From 0f0d39ef81562c75e79176dd3bebb1e491ca39d5 Mon Sep 17 00:00:00 2001 From: Vas Crabb Date: Sun, 7 May 2017 23:18:47 +1000 Subject: Move static data out of devices into the device types. This is a significant change, so please pay attention. The core changes are: * Short name, full name and source file are no longer members of device_t, they are part of the device type * MACHINE_COFIG_START no longer needs a driver class * MACHINE_CONFIG_DERIVED_CLASS is no longer necessary * Specify the state class you want in the GAME/COMP/CONS line * The compiler will work out the base class where the driver init member is declared * There is one static device type object per driver rather than one per machine configuration Use DECLARE_DEVICE_TYPE or DECLARE_DEVICE_TYPE_NS to declare device type. * DECLARE_DEVICE_TYPE forward-declares teh device type and class, and declares extern object finders. * DECLARE_DEVICE_TYPE_NS is for devices classes in namespaces - it doesn't forward-declare the device type. Use DEFINE_DEVICE_TYPE or DEFINE_DEVICE_TYPE_NS to define device types. * These macros declare storage for the static data, and instantiate the device type and device finder templates. The rest of the changes are mostly just moving stuff out of headers that shouldn't be there, renaming stuff for consistency, and scoping stuff down where appropriate. Things I've actually messed with substantially: * More descriptive names for a lot of devices * Untangled the fantasy sound from the driver state, which necessitates breaking up sound/flip writes * Changed DECO BSMT2000 ready callback into a device delegate * Untangled Microprose 3D noise from driver state * Used object finders for CoCo multipak, KC85 D002, and Irem sound subdevices * Started to get TI-99 stuff out of the TI-990 directory and arrange bus devices properly * Started to break out common parts of Samsung ARM SoC devices * Turned some of FM, SID, SCSP DSP, EPIC12 and Voodoo cores into something resmbling C++ * Tried to make Z180 table allocation/setup a bit safer * Converted generic keyboard/terminal to not use WRITE8 - space/offset aren't relevant * Dynamically allocate generic terminal buffer so derived devices (e.g. teleprinter) can specify size * Imporved encapsulation of Z80DART channels * Refactored the SPC7110 bit table generator loop to make it more readable * Added wrappers for SNES PPU operations so members can be made protected * Factored out some boilerplate for YM chips with PSG * toaplan2 gfx * stic/intv resolution * Video System video * Out Run/Y-board sprite alignment * GIC video hookup * Amstrad CPC ROM box members * IQ151 ROM cart region * MSX cart IRQ callback resolution time * SMS passthrough control devices starting subslots I've smoke-tested several drivers, but I've probably missed something. Things I've missed will likely blow up spectacularly with failure to bind errors and the like. Let me know if there's more subtle breakage (could have happened in FM or Voodoo). And can everyone please, please try to keep stuff clean. In particular, please stop polluting the global namespace. Keep things out of headers that don't need to be there, and use things that can be scoped down rather than macros. It feels like an uphill battle trying to get this stuff under control while more of it's added. --- src/devices/bus/a1bus/a1bus.cpp | 36 +- src/devices/bus/a1bus/a1bus.h | 35 +- src/devices/bus/a1bus/a1cassette.cpp | 18 +- src/devices/bus/a1bus/a1cassette.h | 17 +- src/devices/bus/a1bus/a1cffa.cpp | 19 +- src/devices/bus/a1bus/a1cffa.h | 15 +- src/devices/bus/a2bus/a2alfam2.cpp | 12 +- src/devices/bus/a2bus/a2alfam2.h | 28 +- src/devices/bus/a2bus/a2applicard.cpp | 10 +- src/devices/bus/a2bus/a2applicard.h | 13 +- src/devices/bus/a2bus/a2arcadebd.cpp | 11 +- src/devices/bus/a2bus/a2arcadebd.h | 13 +- src/devices/bus/a2bus/a2bus.cpp | 35 +- src/devices/bus/a2bus/a2bus.h | 30 +- src/devices/bus/a2bus/a2cffa.cpp | 12 +- src/devices/bus/a2bus/a2cffa.h | 18 +- src/devices/bus/a2bus/a2corvus.cpp | 10 +- src/devices/bus/a2bus/a2corvus.h | 17 +- src/devices/bus/a2bus/a2diskii.cpp | 20 +- src/devices/bus/a2bus/a2diskii.h | 20 +- src/devices/bus/a2bus/a2diskiing.cpp | 7 +- src/devices/bus/a2bus/a2diskiing.h | 12 +- src/devices/bus/a2bus/a2dx1.cpp | 11 +- src/devices/bus/a2bus/a2dx1.h | 19 +- src/devices/bus/a2bus/a2eauxslot.cpp | 36 +- src/devices/bus/a2bus/a2eauxslot.h | 28 +- src/devices/bus/a2bus/a2echoii.cpp | 10 +- src/devices/bus/a2bus/a2echoii.h | 12 +- src/devices/bus/a2bus/a2eext80col.cpp | 9 +- src/devices/bus/a2bus/a2eext80col.h | 13 +- src/devices/bus/a2bus/a2eramworks3.cpp | 13 +- src/devices/bus/a2bus/a2eramworks3.h | 11 +- src/devices/bus/a2bus/a2estd80col.cpp | 9 +- src/devices/bus/a2bus/a2estd80col.h | 13 +- src/devices/bus/a2bus/a2hsscsi.cpp | 11 +- src/devices/bus/a2bus/a2hsscsi.h | 19 +- src/devices/bus/a2bus/a2mcms.cpp | 23 +- src/devices/bus/a2bus/a2mcms.h | 16 +- src/devices/bus/a2bus/a2memexp.cpp | 12 +- src/devices/bus/a2bus/a2memexp.h | 18 +- src/devices/bus/a2bus/a2midi.cpp | 12 +- src/devices/bus/a2bus/a2midi.h | 13 +- src/devices/bus/a2bus/a2mockingboard.cpp | 16 +- src/devices/bus/a2bus/a2mockingboard.h | 23 +- src/devices/bus/a2bus/a2pic.cpp | 14 +- src/devices/bus/a2bus/a2pic.h | 23 +- src/devices/bus/a2bus/a2sam.cpp | 4 +- src/devices/bus/a2bus/a2sam.h | 12 +- src/devices/bus/a2bus/a2scsi.cpp | 11 +- src/devices/bus/a2bus/a2scsi.h | 19 +- src/devices/bus/a2bus/a2softcard.cpp | 10 +- src/devices/bus/a2bus/a2softcard.h | 11 +- src/devices/bus/a2bus/a2ssc.cpp | 13 +- src/devices/bus/a2bus/a2ssc.h | 15 +- src/devices/bus/a2bus/a2swyft.cpp | 9 +- src/devices/bus/a2bus/a2swyft.h | 13 +- src/devices/bus/a2bus/a2themill.cpp | 10 +- src/devices/bus/a2bus/a2themill.h | 13 +- src/devices/bus/a2bus/a2thunderclock.cpp | 10 +- src/devices/bus/a2bus/a2thunderclock.h | 13 +- src/devices/bus/a2bus/a2ultraterm.cpp | 12 +- src/devices/bus/a2bus/a2ultraterm.h | 28 +- src/devices/bus/a2bus/a2videoterm.cpp | 32 +- src/devices/bus/a2bus/a2videoterm.h | 41 +- src/devices/bus/a2bus/a2vulcan.cpp | 12 +- src/devices/bus/a2bus/a2vulcan.h | 18 +- src/devices/bus/a2bus/a2zipdrive.cpp | 8 +- src/devices/bus/a2bus/a2zipdrive.h | 16 +- src/devices/bus/a2bus/agat7langcard.cpp | 9 +- src/devices/bus/a2bus/agat7langcard.h | 12 +- src/devices/bus/a2bus/agat7ram.cpp | 9 +- src/devices/bus/a2bus/agat7ram.h | 13 +- src/devices/bus/a2bus/corvfdc01.cpp | 17 +- src/devices/bus/a2bus/corvfdc01.h | 15 +- src/devices/bus/a2bus/corvfdc02.cpp | 14 +- src/devices/bus/a2bus/corvfdc02.h | 13 +- src/devices/bus/a2bus/ezcgi.cpp | 30 +- src/devices/bus/a2bus/ezcgi.h | 23 +- src/devices/bus/a2bus/laser128.cpp | 9 +- src/devices/bus/a2bus/laser128.h | 13 +- src/devices/bus/a2bus/mouse.cpp | 8 +- src/devices/bus/a2bus/mouse.h | 5 +- src/devices/bus/a2bus/pc_xporter.cpp | 16 +- src/devices/bus/a2bus/pc_xporter.h | 44 +- src/devices/bus/a2bus/ramcard128k.cpp | 11 +- src/devices/bus/a2bus/ramcard128k.h | 13 +- src/devices/bus/a2bus/ramcard16k.cpp | 9 +- src/devices/bus/a2bus/ramcard16k.h | 13 +- src/devices/bus/a2bus/timemasterho.cpp | 12 +- src/devices/bus/a2bus/timemasterho.h | 13 +- src/devices/bus/a7800/a78_carts.h | 7 +- src/devices/bus/a7800/a78_slot.cpp | 12 +- src/devices/bus/a7800/a78_slot.h | 13 +- src/devices/bus/a7800/cpuwiz.cpp | 22 +- src/devices/bus/a7800/cpuwiz.h | 17 +- src/devices/bus/a7800/hiscore.cpp | 6 +- src/devices/bus/a7800/hiscore.h | 10 +- src/devices/bus/a7800/rom.cpp | 104 +- src/devices/bus/a7800/rom.h | 86 +- src/devices/bus/a7800/xboard.cpp | 27 +- src/devices/bus/a7800/xboard.h | 25 +- src/devices/bus/a800/a800_carts.h | 7 +- src/devices/bus/a800/a800_slot.cpp | 22 +- src/devices/bus/a800/a800_slot.h | 27 +- src/devices/bus/a800/a8sio.cpp | 22 +- src/devices/bus/a800/a8sio.h | 31 +- src/devices/bus/a800/cassette.cpp | 17 +- src/devices/bus/a800/cassette.h | 13 +- src/devices/bus/a800/oss.cpp | 25 +- src/devices/bus/a800/oss.h | 48 +- src/devices/bus/a800/rom.cpp | 62 +- src/devices/bus/a800/rom.h | 93 +- src/devices/bus/a800/sparta.cpp | 10 +- src/devices/bus/a800/sparta.h | 18 +- src/devices/bus/abcbus/abc890.cpp | 98 +- src/devices/bus/abcbus/abc890.h | 59 +- src/devices/bus/abcbus/abcbus.cpp | 12 +- src/devices/bus/abcbus/abcbus.h | 66 +- src/devices/bus/abcbus/fd2.cpp | 60 +- src/devices/bus/abcbus/fd2.h | 20 +- src/devices/bus/abcbus/hdc.cpp | 8 +- src/devices/bus/abcbus/hdc.h | 12 +- src/devices/bus/abcbus/lux10828.cpp | 4 +- src/devices/bus/abcbus/lux10828.h | 12 +- src/devices/bus/abcbus/lux21046.cpp | 144 +- src/devices/bus/abcbus/lux21046.h | 48 +- src/devices/bus/abcbus/lux21056.cpp | 4 +- src/devices/bus/abcbus/lux21056.h | 14 +- src/devices/bus/abcbus/lux4105.cpp | 4 +- src/devices/bus/abcbus/lux4105.h | 13 +- src/devices/bus/abcbus/memcard.cpp | 14 +- src/devices/bus/abcbus/memcard.h | 16 +- src/devices/bus/abcbus/ram.cpp | 14 +- src/devices/bus/abcbus/ram.h | 19 +- src/devices/bus/abcbus/sio.cpp | 4 +- src/devices/bus/abcbus/sio.h | 12 +- src/devices/bus/abcbus/slutprov.cpp | 4 +- src/devices/bus/abcbus/slutprov.h | 12 +- src/devices/bus/abcbus/turbo.cpp | 4 +- src/devices/bus/abcbus/turbo.h | 11 +- src/devices/bus/abcbus/uni800.cpp | 4 +- src/devices/bus/abcbus/uni800.h | 12 +- src/devices/bus/abckb/abc77.cpp | 12 +- src/devices/bus/abckb/abc77.h | 10 +- src/devices/bus/abckb/abc800kb.cpp | 5 +- src/devices/bus/abckb/abc800kb.h | 12 +- src/devices/bus/abckb/abc99.cpp | 4 +- src/devices/bus/abckb/abc99.h | 2 +- src/devices/bus/abckb/abckb.cpp | 4 +- src/devices/bus/abckb/abckb.h | 27 +- src/devices/bus/adam/adamlink.cpp | 6 +- src/devices/bus/adam/adamlink.h | 12 +- src/devices/bus/adam/exp.cpp | 4 +- src/devices/bus/adam/exp.h | 18 +- src/devices/bus/adam/ide.cpp | 4 +- src/devices/bus/adam/ide.h | 12 +- src/devices/bus/adam/ram.cpp | 4 +- src/devices/bus/adam/ram.h | 12 +- src/devices/bus/adamnet/adamnet.cpp | 8 +- src/devices/bus/adamnet/adamnet.h | 18 +- src/devices/bus/adamnet/ddp.cpp | 4 +- src/devices/bus/adamnet/ddp.h | 12 +- src/devices/bus/adamnet/fdc.cpp | 20 +- src/devices/bus/adamnet/fdc.h | 12 +- src/devices/bus/adamnet/kb.cpp | 4 +- src/devices/bus/adamnet/kb.h | 10 +- src/devices/bus/adamnet/printer.cpp | 4 +- src/devices/bus/adamnet/printer.h | 12 +- src/devices/bus/adamnet/spi.cpp | 4 +- src/devices/bus/adamnet/spi.h | 12 +- src/devices/bus/amiga/keyboard/a1200.cpp | 4 +- src/devices/bus/amiga/keyboard/a1200.h | 22 +- src/devices/bus/amiga/keyboard/a500.cpp | 47 +- src/devices/bus/amiga/keyboard/a500.h | 37 +- src/devices/bus/amiga/keyboard/keyboard.cpp | 4 +- src/devices/bus/amiga/keyboard/keyboard.h | 25 +- src/devices/bus/amiga/keyboard/matrix.h | 6 +- src/devices/bus/amiga/zorro/a2052.cpp | 4 +- src/devices/bus/amiga/zorro/a2052.h | 10 +- src/devices/bus/amiga/zorro/a2232.cpp | 4 +- src/devices/bus/amiga/zorro/a2232.h | 10 +- src/devices/bus/amiga/zorro/a590.cpp | 13 +- src/devices/bus/amiga/zorro/a590.h | 21 +- src/devices/bus/amiga/zorro/action_replay.cpp | 17 +- src/devices/bus/amiga/zorro/action_replay.h | 21 +- src/devices/bus/amiga/zorro/buddha.cpp | 4 +- src/devices/bus/amiga/zorro/buddha.h | 10 +- src/devices/bus/amiga/zorro/cards.cpp | 7 + src/devices/bus/amiga/zorro/cards.h | 14 +- src/devices/bus/amiga/zorro/zorro.cpp | 39 +- src/devices/bus/amiga/zorro/zorro.h | 74 +- src/devices/bus/apf/rom.cpp | 18 +- src/devices/bus/apf/rom.h | 27 +- src/devices/bus/apf/slot.cpp | 10 +- src/devices/bus/apf/slot.h | 9 +- src/devices/bus/apricot/expansion/cards.cpp | 1 + src/devices/bus/apricot/expansion/cards.h | 10 +- src/devices/bus/apricot/expansion/expansion.cpp | 18 +- src/devices/bus/apricot/expansion/expansion.h | 47 +- src/devices/bus/apricot/expansion/ram.cpp | 12 +- src/devices/bus/apricot/expansion/ram.h | 14 +- src/devices/bus/apricot/keyboard/hle.cpp | 4 +- src/devices/bus/apricot/keyboard/hle.h | 14 +- src/devices/bus/apricot/keyboard/keyboard.cpp | 4 +- src/devices/bus/apricot/keyboard/keyboard.h | 19 +- src/devices/bus/arcadia/rom.cpp | 14 +- src/devices/bus/arcadia/rom.h | 22 +- src/devices/bus/arcadia/slot.cpp | 10 +- src/devices/bus/arcadia/slot.h | 14 +- src/devices/bus/astrocde/exp.cpp | 8 +- src/devices/bus/astrocde/exp.h | 17 +- src/devices/bus/astrocde/ram.cpp | 46 +- src/devices/bus/astrocde/ram.h | 58 +- src/devices/bus/astrocde/rom.cpp | 22 +- src/devices/bus/astrocde/rom.h | 42 +- src/devices/bus/astrocde/slot.cpp | 10 +- src/devices/bus/astrocde/slot.h | 19 +- src/devices/bus/bbc/1mhzbus/1mhzbus.cpp | 6 +- src/devices/bus/bbc/1mhzbus/1mhzbus.h | 21 +- src/devices/bus/bbc/1mhzbus/opus3.cpp | 6 +- src/devices/bus/bbc/1mhzbus/opus3.h | 10 +- src/devices/bus/bbc/analogue/analogue.cpp | 6 +- src/devices/bus/bbc/analogue/analogue.h | 15 +- src/devices/bus/bbc/analogue/joystick.cpp | 12 +- src/devices/bus/bbc/analogue/joystick.h | 18 +- src/devices/bus/bbc/fdc/acorn.cpp | 10 +- src/devices/bus/bbc/fdc/acorn.h | 14 +- src/devices/bus/bbc/fdc/cumana.cpp | 14 +- src/devices/bus/bbc/fdc/cumana.h | 19 +- src/devices/bus/bbc/fdc/fdc.cpp | 6 +- src/devices/bus/bbc/fdc/fdc.h | 21 +- src/devices/bus/bbc/fdc/opus.cpp | 18 +- src/devices/bus/bbc/fdc/opus.h | 21 +- src/devices/bus/bbc/fdc/watford.cpp | 16 +- src/devices/bus/bbc/fdc/watford.h | 22 +- src/devices/bus/bbc/joyport/joyport.cpp | 6 +- src/devices/bus/bbc/joyport/joyport.h | 14 +- src/devices/bus/bbc/joyport/joystick.cpp | 8 +- src/devices/bus/bbc/joyport/joystick.h | 10 +- src/devices/bus/bbc/tube/tube.cpp | 6 +- src/devices/bus/bbc/tube/tube.h | 19 +- src/devices/bus/bbc/userport/userport.cpp | 6 +- src/devices/bus/bbc/userport/userport.h | 14 +- src/devices/bus/bml3/bml3bus.cpp | 30 +- src/devices/bus/bml3/bml3bus.h | 31 +- src/devices/bus/bml3/bml3kanji.cpp | 4 +- src/devices/bus/bml3/bml3kanji.h | 10 +- src/devices/bus/bml3/bml3mp1802.cpp | 6 +- src/devices/bus/bml3/bml3mp1802.h | 11 +- src/devices/bus/bml3/bml3mp1805.cpp | 4 +- src/devices/bus/bml3/bml3mp1805.h | 10 +- src/devices/bus/bw2/exp.cpp | 4 +- src/devices/bus/bw2/exp.h | 14 +- src/devices/bus/bw2/ramcard.cpp | 4 +- src/devices/bus/bw2/ramcard.h | 10 +- src/devices/bus/c64/16kb.cpp | 4 +- src/devices/bus/c64/16kb.h | 14 +- src/devices/bus/c64/4dxh.cpp | 4 +- src/devices/bus/c64/4dxh.h | 10 +- src/devices/bus/c64/4ksa.cpp | 4 +- src/devices/bus/c64/4ksa.h | 10 +- src/devices/bus/c64/4tba.cpp | 4 +- src/devices/bus/c64/4tba.h | 11 +- src/devices/bus/c64/bn1541.cpp | 4 +- src/devices/bus/c64/bn1541.h | 10 +- src/devices/bus/c64/c128_comal80.cpp | 4 +- src/devices/bus/c64/c128_comal80.h | 10 +- src/devices/bus/c64/c128_partner.cpp | 27 +- src/devices/bus/c64/c128_partner.h | 16 +- src/devices/bus/c64/comal80.cpp | 4 +- src/devices/bus/c64/comal80.h | 10 +- src/devices/bus/c64/cpm.cpp | 4 +- src/devices/bus/c64/cpm.h | 12 +- src/devices/bus/c64/currah_speech.cpp | 4 +- src/devices/bus/c64/currah_speech.h | 10 +- src/devices/bus/c64/dela_ep256.cpp | 4 +- src/devices/bus/c64/dela_ep256.h | 11 +- src/devices/bus/c64/dela_ep64.cpp | 4 +- src/devices/bus/c64/dela_ep64.h | 10 +- src/devices/bus/c64/dela_ep7x8.cpp | 4 +- src/devices/bus/c64/dela_ep7x8.h | 11 +- src/devices/bus/c64/dinamic.cpp | 4 +- src/devices/bus/c64/dinamic.h | 10 +- src/devices/bus/c64/dqbb.cpp | 4 +- src/devices/bus/c64/dqbb.h | 10 +- src/devices/bus/c64/easy_calc_result.cpp | 4 +- src/devices/bus/c64/easy_calc_result.h | 10 +- src/devices/bus/c64/easyflash.cpp | 4 +- src/devices/bus/c64/easyflash.h | 10 +- src/devices/bus/c64/epyx_fast_load.cpp | 4 +- src/devices/bus/c64/epyx_fast_load.h | 10 +- src/devices/bus/c64/exos.cpp | 4 +- src/devices/bus/c64/exos.h | 10 +- src/devices/bus/c64/exp.cpp | 4 +- src/devices/bus/c64/exp.h | 23 +- src/devices/bus/c64/fcc.cpp | 4 +- src/devices/bus/c64/fcc.h | 11 +- src/devices/bus/c64/final.cpp | 4 +- src/devices/bus/c64/final.h | 10 +- src/devices/bus/c64/final3.cpp | 4 +- src/devices/bus/c64/final3.h | 10 +- src/devices/bus/c64/fun_play.cpp | 4 +- src/devices/bus/c64/fun_play.h | 10 +- src/devices/bus/c64/geocable.cpp | 4 +- src/devices/bus/c64/geocable.h | 9 +- src/devices/bus/c64/georam.cpp | 4 +- src/devices/bus/c64/georam.h | 10 +- src/devices/bus/c64/ide64.cpp | 4 +- src/devices/bus/c64/ide64.h | 10 +- src/devices/bus/c64/ieee488.cpp | 4 +- src/devices/bus/c64/ieee488.h | 13 +- src/devices/bus/c64/kingsoft.cpp | 4 +- src/devices/bus/c64/kingsoft.h | 10 +- src/devices/bus/c64/mach5.cpp | 4 +- src/devices/bus/c64/mach5.h | 10 +- src/devices/bus/c64/magic_desk.cpp | 4 +- src/devices/bus/c64/magic_desk.h | 10 +- src/devices/bus/c64/magic_formel.cpp | 4 +- src/devices/bus/c64/magic_formel.h | 10 +- src/devices/bus/c64/magic_voice.cpp | 4 +- src/devices/bus/c64/magic_voice.h | 13 +- src/devices/bus/c64/midi_maplin.cpp | 4 +- src/devices/bus/c64/midi_maplin.h | 10 +- src/devices/bus/c64/midi_namesoft.cpp | 4 +- src/devices/bus/c64/midi_namesoft.h | 10 +- src/devices/bus/c64/midi_passport.cpp | 4 +- src/devices/bus/c64/midi_passport.h | 10 +- src/devices/bus/c64/midi_sci.cpp | 4 +- src/devices/bus/c64/midi_sci.h | 10 +- src/devices/bus/c64/midi_siel.cpp | 4 +- src/devices/bus/c64/midi_siel.h | 10 +- src/devices/bus/c64/mikro_assembler.cpp | 4 +- src/devices/bus/c64/mikro_assembler.h | 10 +- src/devices/bus/c64/multiscreen.cpp | 4 +- src/devices/bus/c64/multiscreen.h | 10 +- src/devices/bus/c64/music64.cpp | 4 +- src/devices/bus/c64/music64.h | 10 +- src/devices/bus/c64/neoram.cpp | 4 +- src/devices/bus/c64/neoram.h | 10 +- src/devices/bus/c64/ocean.cpp | 4 +- src/devices/bus/c64/ocean.h | 10 +- src/devices/bus/c64/pagefox.cpp | 4 +- src/devices/bus/c64/pagefox.h | 10 +- src/devices/bus/c64/partner.cpp | 4 +- src/devices/bus/c64/partner.h | 10 +- src/devices/bus/c64/prophet64.cpp | 4 +- src/devices/bus/c64/prophet64.h | 12 +- src/devices/bus/c64/ps64.cpp | 4 +- src/devices/bus/c64/ps64.h | 10 +- src/devices/bus/c64/reu.cpp | 16 +- src/devices/bus/c64/reu.h | 21 +- src/devices/bus/c64/rex.cpp | 4 +- src/devices/bus/c64/rex.h | 10 +- src/devices/bus/c64/rex_ep256.cpp | 4 +- src/devices/bus/c64/rex_ep256.h | 11 +- src/devices/bus/c64/ross.cpp | 4 +- src/devices/bus/c64/ross.h | 11 +- src/devices/bus/c64/sfx_sound_expander.cpp | 4 +- src/devices/bus/c64/sfx_sound_expander.h | 11 +- src/devices/bus/c64/silverrock.cpp | 4 +- src/devices/bus/c64/silverrock.h | 10 +- src/devices/bus/c64/simons_basic.cpp | 4 +- src/devices/bus/c64/simons_basic.h | 10 +- src/devices/bus/c64/speakeasy.cpp | 16 +- src/devices/bus/c64/speakeasy.h | 18 +- src/devices/bus/c64/stardos.cpp | 4 +- src/devices/bus/c64/stardos.h | 10 +- src/devices/bus/c64/std.cpp | 4 +- src/devices/bus/c64/std.h | 10 +- src/devices/bus/c64/structured_basic.cpp | 4 +- src/devices/bus/c64/structured_basic.h | 11 +- src/devices/bus/c64/super_explode.cpp | 4 +- src/devices/bus/c64/super_explode.h | 10 +- src/devices/bus/c64/super_games.cpp | 4 +- src/devices/bus/c64/super_games.h | 10 +- src/devices/bus/c64/supercpu.cpp | 4 +- src/devices/bus/c64/supercpu.h | 11 +- src/devices/bus/c64/sw8k.cpp | 4 +- src/devices/bus/c64/sw8k.h | 9 +- src/devices/bus/c64/swiftlink.cpp | 4 +- src/devices/bus/c64/swiftlink.h | 10 +- src/devices/bus/c64/system3.cpp | 4 +- src/devices/bus/c64/system3.h | 10 +- src/devices/bus/c64/tdos.cpp | 4 +- src/devices/bus/c64/tdos.h | 10 +- src/devices/bus/c64/turbo232.cpp | 4 +- src/devices/bus/c64/turbo232.h | 10 +- src/devices/bus/c64/user.h | 8 +- src/devices/bus/c64/vizastar.cpp | 4 +- src/devices/bus/c64/vizastar.h | 10 +- src/devices/bus/c64/vw64.cpp | 4 +- src/devices/bus/c64/vw64.h | 10 +- src/devices/bus/c64/warp_speed.cpp | 4 +- src/devices/bus/c64/warp_speed.h | 10 +- src/devices/bus/c64/westermann.cpp | 4 +- src/devices/bus/c64/westermann.h | 10 +- src/devices/bus/c64/xl80.cpp | 4 +- src/devices/bus/c64/xl80.h | 10 +- src/devices/bus/c64/zaxxon.cpp | 4 +- src/devices/bus/c64/zaxxon.h | 10 +- src/devices/bus/cbm2/24k.cpp | 4 +- src/devices/bus/cbm2/24k.h | 10 +- src/devices/bus/cbm2/exp.cpp | 9 +- src/devices/bus/cbm2/exp.h | 14 +- src/devices/bus/cbm2/hrg.cpp | 40 +- src/devices/bus/cbm2/hrg.h | 35 +- src/devices/bus/cbm2/std.cpp | 4 +- src/devices/bus/cbm2/std.h | 10 +- src/devices/bus/cbm2/user.cpp | 4 +- src/devices/bus/cbm2/user.h | 27 +- src/devices/bus/cbmiec/c1526.cpp | 50 +- src/devices/bus/cbmiec/c1526.h | 36 +- src/devices/bus/cbmiec/c1541.cpp | 236 +-- src/devices/bus/cbmiec/c1541.h | 120 +- src/devices/bus/cbmiec/c1571.cpp | 264 ++- src/devices/bus/cbmiec/c1571.h | 49 +- src/devices/bus/cbmiec/c1581.cpp | 87 +- src/devices/bus/cbmiec/c1581.h | 31 +- src/devices/bus/cbmiec/c64_nl10.cpp | 6 +- src/devices/bus/cbmiec/c64_nl10.h | 14 +- src/devices/bus/cbmiec/cbmiec.cpp | 8 +- src/devices/bus/cbmiec/cbmiec.h | 37 +- src/devices/bus/cbmiec/cmdhd.cpp | 4 +- src/devices/bus/cbmiec/cmdhd.h | 16 +- src/devices/bus/cbmiec/diag264_lb_iec.cpp | 6 +- src/devices/bus/cbmiec/diag264_lb_iec.h | 11 +- src/devices/bus/cbmiec/fd2000.cpp | 29 +- src/devices/bus/cbmiec/fd2000.h | 28 +- src/devices/bus/cbmiec/interpod.cpp | 10 +- src/devices/bus/cbmiec/interpod.h | 16 +- src/devices/bus/cbmiec/serialbox.cpp | 4 +- src/devices/bus/cbmiec/serialbox.h | 14 +- src/devices/bus/cbmiec/vic1515.cpp | 28 +- src/devices/bus/cbmiec/vic1515.h | 18 +- src/devices/bus/cbmiec/vic1520.cpp | 26 +- src/devices/bus/cbmiec/vic1520.h | 16 +- src/devices/bus/centronics/comxpl80.cpp | 4 +- src/devices/bus/centronics/comxpl80.h | 10 +- src/devices/bus/centronics/covox.cpp | 8 +- src/devices/bus/centronics/covox.h | 10 +- src/devices/bus/centronics/ctronics.cpp | 4 +- src/devices/bus/centronics/ctronics.h | 80 +- src/devices/bus/centronics/digiblst.cpp | 4 +- src/devices/bus/centronics/digiblst.h | 8 +- src/devices/bus/centronics/dsjoy.cpp | 4 +- src/devices/bus/centronics/dsjoy.h | 8 +- src/devices/bus/centronics/epson_ex800.cpp | 64 +- src/devices/bus/centronics/epson_ex800.h | 16 +- src/devices/bus/centronics/epson_lx800.cpp | 80 +- src/devices/bus/centronics/epson_lx800.h | 19 +- src/devices/bus/centronics/epson_lx810l.cpp | 147 +- src/devices/bus/centronics/epson_lx810l.h | 29 +- src/devices/bus/centronics/nec_p72.cpp | 22 +- src/devices/bus/centronics/nec_p72.h | 22 +- src/devices/bus/centronics/printer.cpp | 4 +- src/devices/bus/centronics/printer.h | 10 +- src/devices/bus/cgenie/expansion/carts.cpp | 4 +- src/devices/bus/cgenie/expansion/carts.h | 12 +- src/devices/bus/cgenie/expansion/expansion.cpp | 30 +- src/devices/bus/cgenie/expansion/expansion.h | 59 +- src/devices/bus/cgenie/expansion/floppy.cpp | 14 +- src/devices/bus/cgenie/expansion/floppy.h | 14 +- src/devices/bus/cgenie/parallel/carts.cpp | 5 +- src/devices/bus/cgenie/parallel/carts.h | 13 +- src/devices/bus/cgenie/parallel/joystick.cpp | 6 +- src/devices/bus/cgenie/parallel/joystick.h | 12 +- src/devices/bus/cgenie/parallel/parallel.cpp | 36 +- src/devices/bus/cgenie/parallel/parallel.h | 43 +- src/devices/bus/cgenie/parallel/printer.cpp | 6 +- src/devices/bus/cgenie/parallel/printer.h | 12 +- src/devices/bus/chanf/rom.cpp | 40 +- src/devices/bus/chanf/rom.h | 22 +- src/devices/bus/chanf/slot.cpp | 10 +- src/devices/bus/chanf/slot.h | 16 +- src/devices/bus/coco/coco_232.cpp | 8 +- src/devices/bus/coco/coco_232.h | 28 +- src/devices/bus/coco/coco_dwsock.cpp | 15 +- src/devices/bus/coco/coco_dwsock.h | 8 +- src/devices/bus/coco/coco_fdc.cpp | 34 +- src/devices/bus/coco/coco_fdc.h | 22 +- src/devices/bus/coco/coco_multi.cpp | 13 +- src/devices/bus/coco/coco_multi.h | 12 +- src/devices/bus/coco/coco_orch90.cpp | 10 +- src/devices/bus/coco/coco_orch90.h | 12 +- src/devices/bus/coco/coco_pak.cpp | 20 +- src/devices/bus/coco/coco_pak.h | 60 +- src/devices/bus/coco/coco_t4426.cpp | 29 +- src/devices/bus/coco/coco_t4426.h | 49 +- src/devices/bus/coco/cococart.cpp | 14 +- src/devices/bus/coco/cococart.h | 18 +- src/devices/bus/coco/dragon_fdc.cpp | 25 +- src/devices/bus/coleco/ctrl.cpp | 7 +- src/devices/bus/coleco/ctrl.h | 25 +- src/devices/bus/coleco/exp.cpp | 7 +- src/devices/bus/coleco/exp.h | 19 +- src/devices/bus/coleco/hand.cpp | 18 +- src/devices/bus/coleco/hand.h | 16 +- src/devices/bus/coleco/sac.cpp | 22 +- src/devices/bus/coleco/sac.h | 16 +- src/devices/bus/coleco/std.cpp | 4 +- src/devices/bus/coleco/std.h | 10 +- src/devices/bus/coleco/xin1.cpp | 4 +- src/devices/bus/coleco/xin1.h | 10 +- src/devices/bus/compis/graphics.cpp | 12 +- src/devices/bus/compis/graphics.h | 29 +- src/devices/bus/compis/hrg.cpp | 42 +- src/devices/bus/compis/hrg.h | 28 +- src/devices/bus/compucolor/floppy.cpp | 20 +- src/devices/bus/compucolor/floppy.h | 22 +- src/devices/bus/comx35/clm.cpp | 4 +- src/devices/bus/comx35/clm.h | 10 +- src/devices/bus/comx35/eprom.cpp | 4 +- src/devices/bus/comx35/eprom.h | 10 +- src/devices/bus/comx35/exp.cpp | 4 +- src/devices/bus/comx35/exp.h | 29 +- src/devices/bus/comx35/expbox.cpp | 4 +- src/devices/bus/comx35/expbox.h | 10 +- src/devices/bus/comx35/fdc.cpp | 4 +- src/devices/bus/comx35/fdc.h | 12 +- src/devices/bus/comx35/joycard.cpp | 4 +- src/devices/bus/comx35/joycard.h | 10 +- src/devices/bus/comx35/printer.cpp | 4 +- src/devices/bus/comx35/printer.h | 13 +- src/devices/bus/comx35/ram.cpp | 4 +- src/devices/bus/comx35/ram.h | 10 +- src/devices/bus/comx35/thermal.cpp | 4 +- src/devices/bus/comx35/thermal.h | 10 +- src/devices/bus/cpc/amdrum.cpp | 4 +- src/devices/bus/cpc/amdrum.h | 10 +- src/devices/bus/cpc/brunword4.cpp | 7 +- src/devices/bus/cpc/brunword4.h | 8 +- src/devices/bus/cpc/cpc_pds.cpp | 7 +- src/devices/bus/cpc/cpc_pds.h | 10 +- src/devices/bus/cpc/cpc_rom.cpp | 44 +- src/devices/bus/cpc/cpc_rom.h | 29 +- src/devices/bus/cpc/cpc_rs232.cpp | 19 +- src/devices/bus/cpc/cpc_rs232.h | 29 +- src/devices/bus/cpc/cpc_ssa1.cpp | 8 +- src/devices/bus/cpc/cpc_ssa1.h | 12 +- src/devices/bus/cpc/cpcexp.cpp | 23 +- src/devices/bus/cpc/cpcexp.h | 46 +- src/devices/bus/cpc/ddi1.cpp | 5 +- src/devices/bus/cpc/ddi1.h | 12 +- src/devices/bus/cpc/doubler.cpp | 5 +- src/devices/bus/cpc/doubler.h | 10 +- src/devices/bus/cpc/hd20.cpp | 5 +- src/devices/bus/cpc/hd20.h | 10 +- src/devices/bus/cpc/magicsound.cpp | 6 +- src/devices/bus/cpc/magicsound.h | 10 +- src/devices/bus/cpc/mface2.cpp | 8 +- src/devices/bus/cpc/mface2.h | 10 +- src/devices/bus/cpc/playcity.cpp | 7 +- src/devices/bus/cpc/playcity.h | 13 +- src/devices/bus/cpc/smartwatch.cpp | 5 +- src/devices/bus/cpc/smartwatch.h | 13 +- src/devices/bus/cpc/symbfac2.cpp | 10 +- src/devices/bus/cpc/symbfac2.h | 13 +- src/devices/bus/cpc/transtape.cpp | 8 +- src/devices/bus/cpc/transtape.h | 10 +- src/devices/bus/crvision/rom.cpp | 35 +- src/devices/bus/crvision/rom.h | 35 +- src/devices/bus/crvision/slot.cpp | 10 +- src/devices/bus/crvision/slot.h | 13 +- src/devices/bus/dmv/dmvbus.cpp | 16 +- src/devices/bus/dmv/dmvbus.h | 24 +- src/devices/bus/dmv/k210.cpp | 17 +- src/devices/bus/dmv/k210.h | 10 +- src/devices/bus/dmv/k220.cpp | 17 +- src/devices/bus/dmv/k220.h | 9 +- src/devices/bus/dmv/k230.cpp | 37 +- src/devices/bus/dmv/k230.h | 19 +- src/devices/bus/dmv/k233.cpp | 12 +- src/devices/bus/dmv/k233.h | 10 +- src/devices/bus/dmv/k801.cpp | 37 +- src/devices/bus/dmv/k801.h | 22 +- src/devices/bus/dmv/k803.cpp | 12 +- src/devices/bus/dmv/k803.h | 10 +- src/devices/bus/dmv/k806.cpp | 19 +- src/devices/bus/dmv/k806.h | 10 +- src/devices/bus/dmv/ram.cpp | 29 +- src/devices/bus/dmv/ram.h | 30 +- src/devices/bus/ecbbus/ecbbus.cpp | 14 +- src/devices/bus/ecbbus/ecbbus.h | 30 +- src/devices/bus/ecbbus/grip.cpp | 93 +- src/devices/bus/ecbbus/grip.h | 12 +- src/devices/bus/econet/e01.cpp | 198 +-- src/devices/bus/econet/e01.h | 43 +- src/devices/bus/econet/econet.cpp | 17 +- src/devices/bus/econet/econet.h | 27 +- src/devices/bus/electron/exp.cpp | 6 +- src/devices/bus/electron/exp.h | 20 +- src/devices/bus/electron/fbjoy.cpp | 8 +- src/devices/bus/electron/fbjoy.h | 10 +- src/devices/bus/electron/m2105.cpp | 20 +- src/devices/bus/electron/m2105.h | 9 +- src/devices/bus/electron/plus3.cpp | 16 +- src/devices/bus/electron/plus3.h | 11 +- src/devices/bus/electron/pwrjoy.cpp | 10 +- src/devices/bus/electron/pwrjoy.h | 11 +- src/devices/bus/ep64/exdos.cpp | 6 +- src/devices/bus/ep64/exdos.h | 13 +- src/devices/bus/ep64/exp.cpp | 4 +- src/devices/bus/ep64/exp.h | 20 +- src/devices/bus/epson_sio/epson_sio.cpp | 11 +- src/devices/bus/epson_sio/epson_sio.h | 13 +- src/devices/bus/epson_sio/pf10.cpp | 4 +- src/devices/bus/epson_sio/pf10.h | 12 +- src/devices/bus/epson_sio/tf20.cpp | 4 +- src/devices/bus/epson_sio/tf20.h | 12 +- src/devices/bus/gameboy/gb_slot.cpp | 51 +- src/devices/bus/gameboy/gb_slot.h | 27 +- src/devices/bus/gameboy/mbc.cpp | 124 +- src/devices/bus/gameboy/mbc.h | 237 +-- src/devices/bus/gameboy/rom.cpp | 44 +- src/devices/bus/gameboy/rom.h | 95 +- src/devices/bus/gamegear/ggext.cpp | 11 +- src/devices/bus/gamegear/ggext.h | 19 +- src/devices/bus/gamegear/smsctrladp.cpp | 5 +- src/devices/bus/gamegear/smsctrladp.h | 10 +- src/devices/bus/gba/gba_slot.cpp | 469 ++++- src/devices/bus/gba/gba_slot.h | 476 +---- src/devices/bus/gba/rom.cpp | 99 +- src/devices/bus/gba/rom.h | 160 +- src/devices/bus/generic/carts.cpp | 3 + src/devices/bus/generic/carts.h | 12 +- src/devices/bus/generic/ram.cpp | 44 +- src/devices/bus/generic/ram.h | 48 +- src/devices/bus/generic/rom.cpp | 21 +- src/devices/bus/generic/rom.h | 27 +- src/devices/bus/generic/slot.cpp | 21 +- src/devices/bus/generic/slot.h | 26 +- src/devices/bus/hp9845_io/98034.cpp | 87 +- src/devices/bus/hp9845_io/98034.h | 34 +- src/devices/bus/hp9845_io/98035.cpp | 82 +- src/devices/bus/hp9845_io/98035.h | 39 +- src/devices/bus/hp9845_io/hp9845_io.cpp | 8 +- src/devices/bus/hp9845_io/hp9845_io.h | 18 +- src/devices/bus/hp_hil/hil_devices.h | 6 +- src/devices/bus/hp_hil/hlekbd.cpp | 10 +- src/devices/bus/hp_hil/hlekbd.h | 11 +- src/devices/bus/hp_hil/hp_hil.cpp | 8 +- src/devices/bus/hp_hil/hp_hil.h | 33 +- src/devices/bus/hp_optroms/hp_optrom.cpp | 13 +- src/devices/bus/hp_optroms/hp_optrom.h | 76 +- src/devices/bus/ieee488/c2031.cpp | 29 +- src/devices/bus/ieee488/c2031.h | 11 +- src/devices/bus/ieee488/c2040.cpp | 242 ++- src/devices/bus/ieee488/c2040.h | 45 +- src/devices/bus/ieee488/c2040fdc.cpp | 74 +- src/devices/bus/ieee488/c2040fdc.h | 30 +- src/devices/bus/ieee488/c8050.cpp | 307 ++-- src/devices/bus/ieee488/c8050.h | 53 +- src/devices/bus/ieee488/c8050fdc.cpp | 80 +- src/devices/bus/ieee488/c8050fdc.h | 34 +- src/devices/bus/ieee488/c8280.cpp | 76 +- src/devices/bus/ieee488/c8280.h | 24 +- src/devices/bus/ieee488/d9060.cpp | 132 +- src/devices/bus/ieee488/d9060.h | 55 +- src/devices/bus/ieee488/hardbox.cpp | 17 +- src/devices/bus/ieee488/hardbox.h | 13 +- src/devices/bus/ieee488/hp9895.cpp | 4 +- src/devices/bus/ieee488/hp9895.h | 18 +- src/devices/bus/ieee488/ieee488.cpp | 38 +- src/devices/bus/ieee488/ieee488.h | 57 +- src/devices/bus/ieee488/shark.cpp | 8 +- src/devices/bus/ieee488/shark.h | 12 +- src/devices/bus/ieee488/softbox.cpp | 19 +- src/devices/bus/ieee488/softbox.h | 13 +- src/devices/bus/imi7000/imi5000h.cpp | 4 +- src/devices/bus/imi7000/imi5000h.h | 11 +- src/devices/bus/imi7000/imi7000.cpp | 15 +- src/devices/bus/imi7000/imi7000.h | 18 +- src/devices/bus/intv/ecs.cpp | 67 +- src/devices/bus/intv/ecs.h | 76 +- src/devices/bus/intv/rom.cpp | 23 +- src/devices/bus/intv/rom.h | 18 +- src/devices/bus/intv/slot.cpp | 11 +- src/devices/bus/intv/slot.h | 20 +- src/devices/bus/intv/voice.cpp | 21 +- src/devices/bus/intv/voice.h | 26 +- src/devices/bus/intv_ctrl/ctrl.cpp | 7 +- src/devices/bus/intv_ctrl/ctrl.h | 12 +- src/devices/bus/intv_ctrl/ecs_ctrl.cpp | 18 +- src/devices/bus/intv_ctrl/ecs_ctrl.h | 24 +- src/devices/bus/intv_ctrl/handctrl.cpp | 16 +- src/devices/bus/intv_ctrl/handctrl.h | 10 +- src/devices/bus/iq151/disc2.cpp | 10 +- src/devices/bus/iq151/disc2.h | 11 +- src/devices/bus/iq151/grafik.cpp | 10 +- src/devices/bus/iq151/grafik.h | 9 +- src/devices/bus/iq151/iq151.cpp | 21 +- src/devices/bus/iq151/iq151.h | 26 +- src/devices/bus/iq151/minigraf.cpp | 9 +- src/devices/bus/iq151/minigraf.h | 10 +- src/devices/bus/iq151/ms151a.cpp | 9 +- src/devices/bus/iq151/ms151a.h | 10 +- src/devices/bus/iq151/rom.cpp | 34 +- src/devices/bus/iq151/rom.h | 26 +- src/devices/bus/iq151/staper.cpp | 14 +- src/devices/bus/iq151/staper.h | 10 +- src/devices/bus/iq151/video32.cpp | 13 +- src/devices/bus/iq151/video32.h | 14 +- src/devices/bus/iq151/video64.cpp | 15 +- src/devices/bus/iq151/video64.h | 14 +- src/devices/bus/isa/3c503.cpp | 10 +- src/devices/bus/isa/3c503.h | 13 +- src/devices/bus/isa/3c505.cpp | 16 +- src/devices/bus/isa/3c505.h | 37 +- src/devices/bus/isa/adlib.cpp | 8 +- src/devices/bus/isa/adlib.h | 10 +- src/devices/bus/isa/aga.cpp | 71 +- src/devices/bus/isa/aga.h | 32 +- src/devices/bus/isa/aha1542.cpp | 4 +- src/devices/bus/isa/aha1542.h | 11 +- src/devices/bus/isa/cga.cpp | 72 +- src/devices/bus/isa/cga.h | 32 +- src/devices/bus/isa/com.cpp | 15 +- src/devices/bus/isa/com.h | 30 +- src/devices/bus/isa/dectalk.cpp | 4 +- src/devices/bus/isa/dectalk.h | 10 +- src/devices/bus/isa/ega.cpp | 18 +- src/devices/bus/isa/ega.h | 165 +- src/devices/bus/isa/fdc.cpp | 24 +- src/devices/bus/isa/fdc.h | 28 +- src/devices/bus/isa/finalchs.cpp | 9 +- src/devices/bus/isa/finalchs.h | 42 +- src/devices/bus/isa/gblaster.cpp | 12 +- src/devices/bus/isa/gblaster.h | 42 +- src/devices/bus/isa/gus.cpp | 29 +- src/devices/bus/isa/gus.h | 82 +- src/devices/bus/isa/hdc.cpp | 51 +- src/devices/bus/isa/hdc.h | 69 +- src/devices/bus/isa/ibm_mfc.cpp | 19 +- src/devices/bus/isa/ibm_mfc.h | 10 +- src/devices/bus/isa/ide.cpp | 10 +- src/devices/bus/isa/ide.h | 10 +- src/devices/bus/isa/isa.cpp | 110 +- src/devices/bus/isa/isa.h | 73 +- src/devices/bus/isa/isa_cards.cpp | 53 + src/devices/bus/isa/isa_cards.h | 60 +- src/devices/bus/isa/lpt.cpp | 4 +- src/devices/bus/isa/lpt.h | 10 +- src/devices/bus/isa/mach32.cpp | 40 +- src/devices/bus/isa/mach32.h | 38 +- src/devices/bus/isa/mc1502_fdc.cpp | 12 +- src/devices/bus/isa/mc1502_fdc.h | 15 +- src/devices/bus/isa/mc1502_rom.cpp | 4 +- src/devices/bus/isa/mc1502_rom.h | 10 +- src/devices/bus/isa/mcd.cpp | 6 +- src/devices/bus/isa/mcd.h | 12 +- src/devices/bus/isa/mda.cpp | 27 +- src/devices/bus/isa/mda.h | 18 +- src/devices/bus/isa/mpu401.cpp | 8 +- src/devices/bus/isa/mpu401.h | 32 +- src/devices/bus/isa/mufdc.cpp | 17 +- src/devices/bus/isa/mufdc.h | 27 +- src/devices/bus/isa/ne1000.cpp | 10 +- src/devices/bus/isa/ne1000.h | 10 +- src/devices/bus/isa/ne2000.cpp | 10 +- src/devices/bus/isa/ne2000.h | 10 +- src/devices/bus/isa/num9rev.cpp | 14 +- src/devices/bus/isa/num9rev.h | 10 +- src/devices/bus/isa/omti8621.cpp | 32 +- src/devices/bus/isa/omti8621.h | 23 +- src/devices/bus/isa/p1_fdc.cpp | 8 +- src/devices/bus/isa/p1_fdc.h | 14 +- src/devices/bus/isa/p1_hdc.cpp | 4 +- src/devices/bus/isa/p1_hdc.h | 12 +- src/devices/bus/isa/p1_rom.cpp | 4 +- src/devices/bus/isa/p1_rom.h | 8 +- src/devices/bus/isa/p1_sound.cpp | 6 +- src/devices/bus/isa/p1_sound.h | 12 +- src/devices/bus/isa/pc1640_iga.cpp | 4 +- src/devices/bus/isa/pc1640_iga.h | 11 +- src/devices/bus/isa/pds.cpp | 8 +- src/devices/bus/isa/pds.h | 29 +- src/devices/bus/isa/pgc.cpp | 15 +- src/devices/bus/isa/pgc.h | 13 +- src/devices/bus/isa/s3virge.cpp | 20 +- src/devices/bus/isa/s3virge.h | 21 +- src/devices/bus/isa/sb16.cpp | 4 +- src/devices/bus/isa/sb16.h | 22 +- src/devices/bus/isa/sblaster.cpp | 36 +- src/devices/bus/isa/sblaster.h | 375 ++-- src/devices/bus/isa/sc499.cpp | 12 +- src/devices/bus/isa/sc499.h | 13 +- src/devices/bus/isa/side116.cpp | 4 +- src/devices/bus/isa/side116.h | 14 +- src/devices/bus/isa/ssi2001.cpp | 4 +- src/devices/bus/isa/ssi2001.h | 16 +- src/devices/bus/isa/stereo_fx.cpp | 4 +- src/devices/bus/isa/stereo_fx.h | 17 +- src/devices/bus/isa/svga_cirrus.cpp | 14 +- src/devices/bus/isa/svga_cirrus.h | 52 +- src/devices/bus/isa/svga_s3.cpp | 28 +- src/devices/bus/isa/svga_s3.h | 98 +- src/devices/bus/isa/svga_trident.cpp | 7 +- src/devices/bus/isa/svga_trident.h | 28 +- src/devices/bus/isa/svga_tseng.cpp | 7 +- src/devices/bus/isa/svga_tseng.h | 30 +- src/devices/bus/isa/trident.cpp | 12 +- src/devices/bus/isa/trident.h | 18 +- src/devices/bus/isa/vga.cpp | 6 +- src/devices/bus/isa/vga.h | 30 +- src/devices/bus/isa/vga_ati.cpp | 21 +- src/devices/bus/isa/vga_ati.h | 76 +- src/devices/bus/isa/wd1002a_wx1.cpp | 6 +- src/devices/bus/isa/wd1002a_wx1.h | 10 +- src/devices/bus/isa/wdxt_gen.cpp | 12 +- src/devices/bus/isa/wdxt_gen.h | 12 +- src/devices/bus/isa/xsu_cards.cpp | 22 +- src/devices/bus/isa/xsu_cards.h | 24 +- src/devices/bus/isa/xtide.cpp | 4 +- src/devices/bus/isa/xtide.h | 16 +- src/devices/bus/isbx/compis_fdc.cpp | 4 +- src/devices/bus/isbx/compis_fdc.h | 10 +- src/devices/bus/isbx/isbc_218a.cpp | 4 +- src/devices/bus/isbx/isbc_218a.h | 10 +- src/devices/bus/isbx/isbx.cpp | 4 +- src/devices/bus/isbx/isbx.h | 25 +- src/devices/bus/kc/d002.cpp | 21 +- src/devices/bus/kc/d002.h | 15 +- src/devices/bus/kc/d004.cpp | 35 +- src/devices/bus/kc/d004.h | 35 +- src/devices/bus/kc/kc.cpp | 27 +- src/devices/bus/kc/kc.h | 34 +- src/devices/bus/kc/ram.cpp | 34 +- src/devices/bus/kc/ram.h | 25 +- src/devices/bus/kc/rom.cpp | 27 +- src/devices/bus/kc/rom.h | 19 +- src/devices/bus/lpci/cirrus.cpp | 20 +- src/devices/bus/lpci/cirrus.h | 17 +- src/devices/bus/lpci/i82371ab.cpp | 6 +- src/devices/bus/lpci/i82371ab.h | 10 +- src/devices/bus/lpci/i82371sb.cpp | 6 +- src/devices/bus/lpci/i82371sb.h | 13 +- src/devices/bus/lpci/i82439tx.cpp | 10 +- src/devices/bus/lpci/i82439tx.h | 13 +- src/devices/bus/lpci/mpc105.cpp | 4 +- src/devices/bus/lpci/mpc105.h | 10 +- src/devices/bus/lpci/northbridge.cpp | 4 +- src/devices/bus/lpci/northbridge.h | 28 +- src/devices/bus/lpci/pci.cpp | 20 +- src/devices/bus/lpci/pci.h | 22 +- src/devices/bus/lpci/southbridge.cpp | 7 +- src/devices/bus/lpci/southbridge.h | 172 +- src/devices/bus/lpci/vt82c505.cpp | 6 +- src/devices/bus/lpci/vt82c505.h | 12 +- src/devices/bus/m5/rom.cpp | 15 +- src/devices/bus/m5/rom.h | 25 +- src/devices/bus/m5/slot.cpp | 10 +- src/devices/bus/m5/slot.h | 15 +- src/devices/bus/macpds/macpds.cpp | 25 +- src/devices/bus/macpds/macpds.h | 34 +- src/devices/bus/macpds/pds_tpdfpd.cpp | 19 +- src/devices/bus/macpds/pds_tpdfpd.h | 57 +- src/devices/bus/megadrive/eeprom.cpp | 70 +- src/devices/bus/megadrive/eeprom.h | 47 +- src/devices/bus/megadrive/ggenie.cpp | 11 +- src/devices/bus/megadrive/ggenie.h | 16 +- src/devices/bus/megadrive/jcart.cpp | 36 +- src/devices/bus/megadrive/jcart.h | 31 +- src/devices/bus/megadrive/md_carts.cpp | 9 + src/devices/bus/megadrive/md_carts.h | 16 +- src/devices/bus/megadrive/md_slot.cpp | 24 +- src/devices/bus/megadrive/md_slot.h | 23 +- src/devices/bus/megadrive/rom.cpp | 194 +-- src/devices/bus/megadrive/rom.h | 236 +-- src/devices/bus/megadrive/sk.cpp | 14 +- src/devices/bus/megadrive/sk.h | 16 +- src/devices/bus/megadrive/stm95.cpp | 24 +- src/devices/bus/megadrive/stm95.h | 51 +- src/devices/bus/megadrive/svp.cpp | 24 +- src/devices/bus/megadrive/svp.h | 22 +- src/devices/bus/midi/midi.cpp | 4 +- src/devices/bus/midi/midi.h | 16 +- src/devices/bus/midi/midiinport.cpp | 4 +- src/devices/bus/midi/midiinport.h | 10 +- src/devices/bus/midi/midioutport.cpp | 4 +- src/devices/bus/midi/midioutport.h | 10 +- src/devices/bus/msx_cart/arc.cpp | 22 +- src/devices/bus/msx_cart/arc.h | 25 +- src/devices/bus/msx_cart/ascii.cpp | 104 +- src/devices/bus/msx_cart/ascii.h | 88 +- src/devices/bus/msx_cart/bm_012.cpp | 18 +- src/devices/bus/msx_cart/bm_012.h | 19 +- src/devices/bus/msx_cart/cartridge.h | 20 +- src/devices/bus/msx_cart/crossblaim.cpp | 22 +- src/devices/bus/msx_cart/crossblaim.h | 24 +- src/devices/bus/msx_cart/disk.cpp | 113 +- src/devices/bus/msx_cart/disk.h | 85 +- src/devices/bus/msx_cart/dooly.cpp | 18 +- src/devices/bus/msx_cart/dooly.h | 24 +- src/devices/bus/msx_cart/fmpac.cpp | 26 +- src/devices/bus/msx_cart/fmpac.h | 25 +- src/devices/bus/msx_cart/fs_sr022.cpp | 16 +- src/devices/bus/msx_cart/fs_sr022.h | 24 +- src/devices/bus/msx_cart/halnote.cpp | 31 +- src/devices/bus/msx_cart/halnote.h | 24 +- src/devices/bus/msx_cart/hfox.cpp | 26 +- src/devices/bus/msx_cart/hfox.h | 22 +- src/devices/bus/msx_cart/holy_quran.cpp | 30 +- src/devices/bus/msx_cart/holy_quran.h | 24 +- src/devices/bus/msx_cart/konami.cpp | 148 +- src/devices/bus/msx_cart/konami.h | 105 +- src/devices/bus/msx_cart/korean.cpp | 85 +- src/devices/bus/msx_cart/korean.h | 68 +- src/devices/bus/msx_cart/majutsushi.cpp | 22 +- src/devices/bus/msx_cart/majutsushi.h | 23 +- src/devices/bus/msx_cart/moonsound.cpp | 50 +- src/devices/bus/msx_cart/moonsound.h | 21 +- src/devices/bus/msx_cart/msx_audio.cpp | 76 +- src/devices/bus/msx_cart/msx_audio.h | 47 +- src/devices/bus/msx_cart/msx_audio_kb.cpp | 37 +- src/devices/bus/msx_cart/msx_audio_kb.h | 27 +- src/devices/bus/msx_cart/msxdos2.cpp | 20 +- src/devices/bus/msx_cart/msxdos2.h | 24 +- src/devices/bus/msx_cart/nomapper.cpp | 12 +- src/devices/bus/msx_cart/nomapper.h | 15 +- src/devices/bus/msx_cart/rtype.cpp | 20 +- src/devices/bus/msx_cart/rtype.h | 24 +- src/devices/bus/msx_cart/super_swangi.cpp | 22 +- src/devices/bus/msx_cart/super_swangi.h | 24 +- src/devices/bus/msx_cart/superloderunner.cpp | 20 +- src/devices/bus/msx_cart/superloderunner.h | 22 +- src/devices/bus/msx_cart/yamaha.cpp | 44 +- src/devices/bus/msx_cart/yamaha.h | 31 +- src/devices/bus/msx_slot/bunsetsu.cpp | 4 +- src/devices/bus/msx_slot/bunsetsu.h | 16 +- src/devices/bus/msx_slot/cartridge.cpp | 17 +- src/devices/bus/msx_slot/cartridge.h | 28 +- src/devices/bus/msx_slot/disk.cpp | 38 +- src/devices/bus/msx_slot/disk.h | 68 +- src/devices/bus/msx_slot/fs4600.cpp | 11 +- src/devices/bus/msx_slot/fs4600.h | 17 +- src/devices/bus/msx_slot/music.cpp | 4 +- src/devices/bus/msx_slot/music.h | 15 +- src/devices/bus/msx_slot/panasonic08.cpp | 4 +- src/devices/bus/msx_slot/panasonic08.h | 22 +- src/devices/bus/msx_slot/ram.cpp | 4 +- src/devices/bus/msx_slot/ram.h | 13 +- src/devices/bus/msx_slot/ram_mm.cpp | 4 +- src/devices/bus/msx_slot/ram_mm.h | 16 +- src/devices/bus/msx_slot/rom.cpp | 8 +- src/devices/bus/msx_slot/rom.h | 16 +- src/devices/bus/msx_slot/slot.h | 8 +- src/devices/bus/msx_slot/sony08.cpp | 4 +- src/devices/bus/msx_slot/sony08.h | 12 +- src/devices/bus/nasbus/avc.cpp | 14 +- src/devices/bus/nasbus/avc.h | 10 +- src/devices/bus/nasbus/cards.cpp | 4 + src/devices/bus/nasbus/cards.h | 11 +- src/devices/bus/nasbus/floppy.cpp | 10 +- src/devices/bus/nasbus/floppy.h | 12 +- src/devices/bus/nasbus/nasbus.cpp | 19 +- src/devices/bus/nasbus/nasbus.h | 45 +- src/devices/bus/neogeo/boot_cthd.cpp | 62 +- src/devices/bus/neogeo/boot_cthd.h | 60 +- src/devices/bus/neogeo/boot_kof10th.cpp | 31 +- src/devices/bus/neogeo/boot_kof10th.h | 28 +- src/devices/bus/neogeo/boot_kof2k2.cpp | 39 +- src/devices/bus/neogeo/boot_kof2k2.h | 32 +- src/devices/bus/neogeo/boot_kof2k3.cpp | 39 +- src/devices/bus/neogeo/boot_kof2k3.h | 32 +- src/devices/bus/neogeo/boot_misc.cpp | 143 +- src/devices/bus/neogeo/boot_misc.h | 108 +- src/devices/bus/neogeo/boot_svc.cpp | 49 +- src/devices/bus/neogeo/boot_svc.h | 38 +- src/devices/bus/neogeo/carts.h | 9 +- src/devices/bus/neogeo/cmc.cpp | 163 +- src/devices/bus/neogeo/cmc.h | 148 +- src/devices/bus/neogeo/fatfury2.cpp | 17 +- src/devices/bus/neogeo/fatfury2.h | 25 +- src/devices/bus/neogeo/kof2k2.cpp | 85 +- src/devices/bus/neogeo/kof2k2.h | 72 +- src/devices/bus/neogeo/kof98.cpp | 19 +- src/devices/bus/neogeo/kof98.h | 28 +- src/devices/bus/neogeo/mslugx.cpp | 17 +- src/devices/bus/neogeo/mslugx.h | 25 +- src/devices/bus/neogeo/pcm2.cpp | 70 +- src/devices/bus/neogeo/pcm2.h | 63 +- src/devices/bus/neogeo/prot_cmc.cpp | 4 +- src/devices/bus/neogeo/prot_cmc.h | 10 +- src/devices/bus/neogeo/prot_cthd.cpp | 7 +- src/devices/bus/neogeo/prot_cthd.h | 12 +- src/devices/bus/neogeo/prot_fatfury2.cpp | 4 +- src/devices/bus/neogeo/prot_fatfury2.h | 16 +- src/devices/bus/neogeo/prot_kof2k2.cpp | 4 +- src/devices/bus/neogeo/prot_kof2k2.h | 14 +- src/devices/bus/neogeo/prot_kof2k3bl.cpp | 7 +- src/devices/bus/neogeo/prot_kof2k3bl.h | 12 +- src/devices/bus/neogeo/prot_kof98.cpp | 7 +- src/devices/bus/neogeo/prot_kof98.h | 12 +- src/devices/bus/neogeo/prot_misc.cpp | 7 +- src/devices/bus/neogeo/prot_misc.h | 10 +- src/devices/bus/neogeo/prot_mslugx.cpp | 7 +- src/devices/bus/neogeo/prot_mslugx.h | 10 +- src/devices/bus/neogeo/prot_pcm2.cpp | 4 +- src/devices/bus/neogeo/prot_pcm2.h | 12 +- src/devices/bus/neogeo/prot_pvc.cpp | 7 +- src/devices/bus/neogeo/prot_pvc.h | 12 +- src/devices/bus/neogeo/prot_sma.cpp | 7 +- src/devices/bus/neogeo/prot_sma.h | 12 +- src/devices/bus/neogeo/pvc.cpp | 70 +- src/devices/bus/neogeo/pvc.h | 63 +- src/devices/bus/neogeo/rom.cpp | 30 +- src/devices/bus/neogeo/rom.h | 34 +- src/devices/bus/neogeo/sbp.cpp | 21 +- src/devices/bus/neogeo/sbp.h | 23 +- src/devices/bus/neogeo/slot.cpp | 10 +- src/devices/bus/neogeo/slot.h | 38 +- src/devices/bus/neogeo/sma.cpp | 90 +- src/devices/bus/neogeo/sma.h | 69 +- src/devices/bus/neogeo_ctrl/ctrl.cpp | 15 +- src/devices/bus/neogeo_ctrl/ctrl.h | 29 +- src/devices/bus/neogeo_ctrl/dial.cpp | 14 +- src/devices/bus/neogeo_ctrl/dial.h | 16 +- src/devices/bus/neogeo_ctrl/irrmaze.cpp | 14 +- src/devices/bus/neogeo_ctrl/irrmaze.h | 18 +- src/devices/bus/neogeo_ctrl/joystick.cpp | 20 +- src/devices/bus/neogeo_ctrl/joystick.h | 18 +- src/devices/bus/neogeo_ctrl/kizuna4p.cpp | 18 +- src/devices/bus/neogeo_ctrl/kizuna4p.h | 11 +- src/devices/bus/neogeo_ctrl/mahjong.cpp | 16 +- src/devices/bus/neogeo_ctrl/mahjong.h | 18 +- src/devices/bus/nes/2a03pur.cpp | 4 +- src/devices/bus/nes/2a03pur.h | 14 +- src/devices/bus/nes/act53.cpp | 8 +- src/devices/bus/nes/act53.h | 20 +- src/devices/bus/nes/aladdin.cpp | 47 +- src/devices/bus/nes/aladdin.h | 31 +- src/devices/bus/nes/ave.cpp | 14 +- src/devices/bus/nes/ave.h | 35 +- src/devices/bus/nes/bandai.cpp | 50 +- src/devices/bus/nes/bandai.h | 60 +- src/devices/bus/nes/benshieng.cpp | 8 +- src/devices/bus/nes/benshieng.h | 14 +- src/devices/bus/nes/bootleg.cpp | 118 +- src/devices/bus/nes/bootleg.h | 201 ++- src/devices/bus/nes/camerica.cpp | 16 +- src/devices/bus/nes/camerica.h | 35 +- src/devices/bus/nes/cne.cpp | 12 +- src/devices/bus/nes/cne.h | 35 +- src/devices/bus/nes/cony.cpp | 34 +- src/devices/bus/nes/cony.h | 34 +- src/devices/bus/nes/datach.cpp | 49 +- src/devices/bus/nes/datach.h | 31 +- src/devices/bus/nes/discrete.cpp | 16 +- src/devices/bus/nes/discrete.h | 41 +- src/devices/bus/nes/disksys.cpp | 17 +- src/devices/bus/nes/disksys.h | 24 +- src/devices/bus/nes/event.cpp | 18 +- src/devices/bus/nes/event.h | 27 +- src/devices/bus/nes/ggenie.cpp | 10 +- src/devices/bus/nes/ggenie.h | 16 +- src/devices/bus/nes/henggedianzi.cpp | 14 +- src/devices/bus/nes/henggedianzi.h | 36 +- src/devices/bus/nes/hes.cpp | 4 +- src/devices/bus/nes/hes.h | 16 +- src/devices/bus/nes/hosenkan.cpp | 20 +- src/devices/bus/nes/hosenkan.h | 20 +- src/devices/bus/nes/irem.cpp | 24 +- src/devices/bus/nes/irem.h | 50 +- src/devices/bus/nes/jaleco.cpp | 86 +- src/devices/bus/nes/jaleco.h | 98 +- src/devices/bus/nes/jy.cpp | 28 +- src/devices/bus/nes/jy.h | 30 +- src/devices/bus/nes/kaiser.cpp | 52 +- src/devices/bus/nes/kaiser.h | 92 +- src/devices/bus/nes/karastudio.cpp | 32 +- src/devices/bus/nes/karastudio.h | 33 +- src/devices/bus/nes/konami.cpp | 38 +- src/devices/bus/nes/konami.h | 71 +- src/devices/bus/nes/legacy.cpp | 20 +- src/devices/bus/nes/legacy.h | 35 +- src/devices/bus/nes/mmc1.cpp | 24 +- src/devices/bus/nes/mmc1.h | 30 +- src/devices/bus/nes/mmc2.cpp | 19 +- src/devices/bus/nes/mmc2.h | 23 +- src/devices/bus/nes/mmc3.cpp | 41 +- src/devices/bus/nes/mmc3.h | 37 +- src/devices/bus/nes/mmc3_clones.cpp | 176 +- src/devices/bus/nes/mmc3_clones.h | 216 ++- src/devices/bus/nes/mmc5.cpp | 16 +- src/devices/bus/nes/mmc5.h | 16 +- src/devices/bus/nes/multigame.cpp | 222 +-- src/devices/bus/nes/multigame.h | 386 ++-- src/devices/bus/nes/namcot.cpp | 48 +- src/devices/bus/nes/namcot.h | 63 +- src/devices/bus/nes/nanjing.cpp | 12 +- src/devices/bus/nes/nanjing.h | 19 +- src/devices/bus/nes/nes_carts.cpp | 55 + src/devices/bus/nes/nes_carts.h | 63 +- src/devices/bus/nes/nes_slot.cpp | 68 +- src/devices/bus/nes/nes_slot.h | 15 +- src/devices/bus/nes/ntdec.cpp | 12 +- src/devices/bus/nes/ntdec.h | 27 +- src/devices/bus/nes/nxrom.cpp | 62 +- src/devices/bus/nes/nxrom.h | 96 +- src/devices/bus/nes/pirate.cpp | 84 +- src/devices/bus/nes/pirate.h | 146 +- src/devices/bus/nes/pt554.cpp | 6 +- src/devices/bus/nes/pt554.h | 12 +- src/devices/bus/nes/racermate.cpp | 8 +- src/devices/bus/nes/racermate.h | 11 +- src/devices/bus/nes/rcm.cpp | 22 +- src/devices/bus/nes/rcm.h | 50 +- src/devices/bus/nes/rexsoft.cpp | 14 +- src/devices/bus/nes/rexsoft.h | 25 +- src/devices/bus/nes/sachen.cpp | 70 +- src/devices/bus/nes/sachen.h | 105 +- src/devices/bus/nes/somari.cpp | 16 +- src/devices/bus/nes/somari.h | 18 +- src/devices/bus/nes/subor.cpp | 20 +- src/devices/bus/nes/subor.h | 28 +- src/devices/bus/nes/sunsoft.cpp | 44 +- src/devices/bus/nes/sunsoft.h | 64 +- src/devices/bus/nes/sunsoft_dcs.cpp | 29 +- src/devices/bus/nes/sunsoft_dcs.h | 33 +- src/devices/bus/nes/taito.cpp | 30 +- src/devices/bus/nes/taito.h | 45 +- src/devices/bus/nes/tengen.cpp | 22 +- src/devices/bus/nes/tengen.h | 34 +- src/devices/bus/nes/txc.cpp | 24 +- src/devices/bus/nes/txc.h | 40 +- src/devices/bus/nes/waixing.cpp | 102 +- src/devices/bus/nes/waixing.h | 123 +- src/devices/bus/nes/zemina.cpp | 4 +- src/devices/bus/nes/zemina.h | 4 +- src/devices/bus/nes_ctrl/4score.cpp | 29 +- src/devices/bus/nes_ctrl/4score.h | 20 +- src/devices/bus/nes_ctrl/arkpaddle.cpp | 28 +- src/devices/bus/nes_ctrl/arkpaddle.h | 21 +- src/devices/bus/nes_ctrl/bcbattle.cpp | 11 +- src/devices/bus/nes_ctrl/bcbattle.h | 17 +- src/devices/bus/nes_ctrl/ctrl.cpp | 9 +- src/devices/bus/nes_ctrl/ctrl.h | 21 +- src/devices/bus/nes_ctrl/fckeybrd.cpp | 4 +- src/devices/bus/nes_ctrl/fckeybrd.h | 12 +- src/devices/bus/nes_ctrl/ftrainer.cpp | 4 +- src/devices/bus/nes_ctrl/ftrainer.h | 12 +- src/devices/bus/nes_ctrl/hori.cpp | 26 +- src/devices/bus/nes_ctrl/hori.h | 18 +- src/devices/bus/nes_ctrl/joypad.cpp | 34 +- src/devices/bus/nes_ctrl/joypad.h | 23 +- src/devices/bus/nes_ctrl/konamihs.cpp | 12 +- src/devices/bus/nes_ctrl/konamihs.h | 12 +- src/devices/bus/nes_ctrl/miracle.cpp | 14 +- src/devices/bus/nes_ctrl/miracle.h | 34 +- src/devices/bus/nes_ctrl/mjpanel.cpp | 4 +- src/devices/bus/nes_ctrl/mjpanel.h | 12 +- src/devices/bus/nes_ctrl/pachinko.cpp | 11 +- src/devices/bus/nes_ctrl/pachinko.h | 12 +- src/devices/bus/nes_ctrl/partytap.cpp | 10 +- src/devices/bus/nes_ctrl/partytap.h | 12 +- src/devices/bus/nes_ctrl/powerpad.cpp | 10 +- src/devices/bus/nes_ctrl/powerpad.h | 10 +- src/devices/bus/nes_ctrl/suborkey.cpp | 4 +- src/devices/bus/nes_ctrl/suborkey.h | 13 +- src/devices/bus/nes_ctrl/zapper.cpp | 12 +- src/devices/bus/nes_ctrl/zapper.h | 11 +- src/devices/bus/newbrain/eim.cpp | 74 +- src/devices/bus/newbrain/eim.h | 20 +- src/devices/bus/newbrain/exp.cpp | 22 +- src/devices/bus/newbrain/exp.h | 34 +- src/devices/bus/newbrain/fdc.cpp | 40 +- src/devices/bus/newbrain/fdc.h | 21 +- src/devices/bus/nubus/nubus.cpp | 43 +- src/devices/bus/nubus/nubus.h | 50 +- src/devices/bus/nubus/nubus_48gc.cpp | 22 +- src/devices/bus/nubus/nubus_48gc.h | 58 +- src/devices/bus/nubus/nubus_asntmc3b.cpp | 16 +- src/devices/bus/nubus/nubus_asntmc3b.h | 50 +- src/devices/bus/nubus/nubus_cb264.cpp | 12 +- src/devices/bus/nubus/nubus_cb264.h | 46 +- src/devices/bus/nubus/nubus_image.cpp | 52 +- src/devices/bus/nubus/nubus_image.h | 59 +- src/devices/bus/nubus/nubus_m2hires.cpp | 19 +- src/devices/bus/nubus/nubus_m2hires.h | 60 +- src/devices/bus/nubus/nubus_m2video.cpp | 19 +- src/devices/bus/nubus/nubus_m2video.h | 59 +- src/devices/bus/nubus/nubus_radiustpd.cpp | 19 +- src/devices/bus/nubus/nubus_radiustpd.h | 59 +- src/devices/bus/nubus/nubus_spec8.cpp | 20 +- src/devices/bus/nubus/nubus_spec8.h | 67 +- src/devices/bus/nubus/nubus_specpdq.cpp | 23 +- src/devices/bus/nubus/nubus_specpdq.h | 65 +- src/devices/bus/nubus/nubus_vikbw.cpp | 12 +- src/devices/bus/nubus/nubus_vikbw.h | 46 +- src/devices/bus/nubus/nubus_wsportrait.cpp | 19 +- src/devices/bus/nubus/nubus_wsportrait.h | 59 +- src/devices/bus/nubus/pds30_30hr.cpp | 19 +- src/devices/bus/nubus/pds30_30hr.h | 59 +- src/devices/bus/nubus/pds30_cb264.cpp | 19 +- src/devices/bus/nubus/pds30_cb264.h | 59 +- src/devices/bus/nubus/pds30_mc30.cpp | 19 +- src/devices/bus/nubus/pds30_mc30.h | 59 +- src/devices/bus/nubus/pds30_procolor816.cpp | 19 +- src/devices/bus/nubus/pds30_procolor816.h | 59 +- src/devices/bus/nubus/pds30_sigmalview.cpp | 19 +- src/devices/bus/nubus/pds30_sigmalview.h | 61 +- src/devices/bus/odyssey2/chess.cpp | 6 +- src/devices/bus/odyssey2/chess.h | 19 +- src/devices/bus/odyssey2/rom.cpp | 24 +- src/devices/bus/odyssey2/rom.h | 27 +- src/devices/bus/odyssey2/slot.cpp | 18 +- src/devices/bus/odyssey2/slot.h | 23 +- src/devices/bus/odyssey2/voice.cpp | 10 +- src/devices/bus/odyssey2/voice.h | 20 +- src/devices/bus/oricext/jasmin.cpp | 6 +- src/devices/bus/oricext/jasmin.h | 22 +- src/devices/bus/oricext/microdisc.cpp | 6 +- src/devices/bus/oricext/microdisc.h | 10 +- src/devices/bus/oricext/oricext.cpp | 8 +- src/devices/bus/oricext/oricext.h | 29 +- src/devices/bus/pc1512/mouse.cpp | 30 +- src/devices/bus/pc1512/mouse.h | 49 +- src/devices/bus/pc_joy/pc_joy.cpp | 8 +- src/devices/bus/pc_joy/pc_joy.h | 23 +- src/devices/bus/pc_joy/pc_joy_sw.cpp | 4 +- src/devices/bus/pc_joy/pc_joy_sw.h | 10 +- src/devices/bus/pc_kbd/ec1841.cpp | 4 +- src/devices/bus/pc_kbd/ec1841.h | 15 +- src/devices/bus/pc_kbd/iskr1030.cpp | 4 +- src/devices/bus/pc_kbd/iskr1030.h | 15 +- src/devices/bus/pc_kbd/keyboards.h | 8 +- src/devices/bus/pc_kbd/keytro.cpp | 15 +- src/devices/bus/pc_kbd/keytro.h | 11 +- src/devices/bus/pc_kbd/msnat.cpp | 87 +- src/devices/bus/pc_kbd/msnat.h | 32 +- src/devices/bus/pc_kbd/pc83.cpp | 4 +- src/devices/bus/pc_kbd/pc83.h | 11 +- src/devices/bus/pc_kbd/pc_kbdc.cpp | 30 +- src/devices/bus/pc_kbd/pc_kbdc.h | 23 +- src/devices/bus/pc_kbd/pcat84.cpp | 16 +- src/devices/bus/pc_kbd/pcat84.h | 17 +- src/devices/bus/pc_kbd/pcxt83.cpp | 4 +- src/devices/bus/pc_kbd/pcxt83.h | 16 +- src/devices/bus/pce/pce_rom.cpp | 25 +- src/devices/bus/pce/pce_rom.h | 40 +- src/devices/bus/pce/pce_slot.cpp | 12 +- src/devices/bus/pce/pce_slot.h | 22 +- src/devices/bus/pet/2joysnd.cpp | 4 +- src/devices/bus/pet/2joysnd.h | 20 +- src/devices/bus/pet/64k.cpp | 4 +- src/devices/bus/pet/64k.h | 14 +- src/devices/bus/pet/c2n.cpp | 31 +- src/devices/bus/pet/c2n.h | 19 +- src/devices/bus/pet/cass.cpp | 8 +- src/devices/bus/pet/cass.h | 32 +- src/devices/bus/pet/cb2snd.cpp | 4 +- src/devices/bus/pet/cb2snd.h | 14 +- src/devices/bus/pet/diag.cpp | 8 +- src/devices/bus/pet/diag.h | 18 +- src/devices/bus/pet/diag264_lb_tape.cpp | 13 +- src/devices/bus/pet/diag264_lb_tape.h | 11 +- src/devices/bus/pet/exp.cpp | 4 +- src/devices/bus/pet/exp.h | 15 +- src/devices/bus/pet/hsg.cpp | 42 +- src/devices/bus/pet/hsg.h | 37 +- src/devices/bus/pet/petuja.cpp | 4 +- src/devices/bus/pet/petuja.h | 10 +- src/devices/bus/pet/superpet.cpp | 4 +- src/devices/bus/pet/superpet.h | 10 +- src/devices/bus/pet/user.cpp | 4 +- src/devices/bus/pet/user.h | 51 +- src/devices/bus/plus4/c1551.cpp | 107 +- src/devices/bus/plus4/c1551.h | 18 +- src/devices/bus/plus4/diag264_lb_user.cpp | 6 +- src/devices/bus/plus4/diag264_lb_user.h | 13 +- src/devices/bus/plus4/exp.cpp | 36 +- src/devices/bus/plus4/exp.h | 27 +- src/devices/bus/plus4/sid.cpp | 4 +- src/devices/bus/plus4/sid.h | 10 +- src/devices/bus/plus4/std.cpp | 4 +- src/devices/bus/plus4/std.h | 13 +- src/devices/bus/plus4/user.h | 8 +- src/devices/bus/pofo/ccm.cpp | 16 +- src/devices/bus/pofo/ccm.h | 33 +- src/devices/bus/pofo/exp.cpp | 22 +- src/devices/bus/pofo/exp.h | 48 +- src/devices/bus/pofo/hpc101.cpp | 18 +- src/devices/bus/pofo/hpc101.h | 19 +- src/devices/bus/pofo/hpc102.cpp | 20 +- src/devices/bus/pofo/hpc102.h | 23 +- src/devices/bus/pofo/hpc104.cpp | 48 +- src/devices/bus/pofo/hpc104.h | 33 +- src/devices/bus/pofo/ram.cpp | 14 +- src/devices/bus/pofo/ram.h | 18 +- src/devices/bus/pofo/rom.cpp | 12 +- src/devices/bus/pofo/rom.h | 18 +- src/devices/bus/psx/analogue.cpp | 44 +- src/devices/bus/psx/analogue.h | 23 +- src/devices/bus/psx/ctlrport.cpp | 35 +- src/devices/bus/psx/ctlrport.h | 22 +- src/devices/bus/psx/memcard.cpp | 8 +- src/devices/bus/psx/memcard.h | 42 +- src/devices/bus/psx/multitap.cpp | 4 +- src/devices/bus/psx/multitap.h | 7 +- src/devices/bus/ql/cst_q_plus4.cpp | 26 +- src/devices/bus/ql/cst_q_plus4.h | 28 +- src/devices/bus/ql/cst_qdisc.cpp | 16 +- src/devices/bus/ql/cst_qdisc.h | 17 +- src/devices/bus/ql/cumana_fdi.cpp | 16 +- src/devices/bus/ql/cumana_fdi.h | 18 +- src/devices/bus/ql/exp.cpp | 12 +- src/devices/bus/ql/exp.h | 41 +- src/devices/bus/ql/kempston_di.cpp | 16 +- src/devices/bus/ql/kempston_di.h | 19 +- src/devices/bus/ql/miracle_gold_card.cpp | 16 +- src/devices/bus/ql/miracle_gold_card.h | 19 +- src/devices/bus/ql/miracle_hd.cpp | 16 +- src/devices/bus/ql/miracle_hd.h | 19 +- src/devices/bus/ql/mp_fdi.cpp | 16 +- src/devices/bus/ql/mp_fdi.h | 21 +- src/devices/bus/ql/opd_basic_master.cpp | 16 +- src/devices/bus/ql/opd_basic_master.h | 20 +- src/devices/bus/ql/pcml_qdisk.cpp | 16 +- src/devices/bus/ql/pcml_qdisk.h | 20 +- src/devices/bus/ql/qubide.cpp | 22 +- src/devices/bus/ql/qubide.h | 19 +- src/devices/bus/ql/rom.cpp | 16 +- src/devices/bus/ql/rom.h | 27 +- src/devices/bus/ql/sandy_superdisk.cpp | 32 +- src/devices/bus/ql/sandy_superdisk.h | 17 +- src/devices/bus/ql/sandy_superqboard.cpp | 85 +- src/devices/bus/ql/sandy_superqboard.h | 48 +- src/devices/bus/ql/std.cpp | 12 +- src/devices/bus/ql/std.h | 18 +- src/devices/bus/ql/trumpcard.cpp | 64 +- src/devices/bus/ql/trumpcard.h | 49 +- src/devices/bus/rs232/ie15.cpp | 5 +- src/devices/bus/rs232/ie15.h | 4 +- src/devices/bus/rs232/keyboard.cpp | 8 +- src/devices/bus/rs232/keyboard.h | 7 +- src/devices/bus/rs232/loopback.cpp | 6 +- src/devices/bus/rs232/loopback.h | 8 +- src/devices/bus/rs232/null_modem.cpp | 4 +- src/devices/bus/rs232/null_modem.h | 12 +- src/devices/bus/rs232/printer.cpp | 4 +- src/devices/bus/rs232/printer.h | 8 +- src/devices/bus/rs232/pty.cpp | 156 +- src/devices/bus/rs232/pty.h | 61 +- src/devices/bus/rs232/rs232.cpp | 20 +- src/devices/bus/rs232/rs232.h | 36 +- src/devices/bus/rs232/ser_mouse.cpp | 12 +- src/devices/bus/rs232/ser_mouse.h | 20 +- src/devices/bus/rs232/sun_kbd.cpp | 4 +- src/devices/bus/rs232/sun_kbd.h | 8 +- src/devices/bus/rs232/terminal.cpp | 4 +- src/devices/bus/rs232/terminal.h | 2 +- src/devices/bus/rs232/xvd701.cpp | 4 +- src/devices/bus/rs232/xvd701.h | 10 +- src/devices/bus/s100/dj2db.cpp | 4 +- src/devices/bus/s100/dj2db.h | 13 +- src/devices/bus/s100/djdma.cpp | 4 +- src/devices/bus/s100/djdma.h | 11 +- src/devices/bus/s100/mm65k16s.cpp | 4 +- src/devices/bus/s100/mm65k16s.h | 11 +- src/devices/bus/s100/nsmdsa.cpp | 4 +- src/devices/bus/s100/nsmdsa.h | 12 +- src/devices/bus/s100/nsmdsad.cpp | 4 +- src/devices/bus/s100/nsmdsad.h | 12 +- src/devices/bus/s100/s100.cpp | 41 +- src/devices/bus/s100/s100.h | 150 +- src/devices/bus/s100/wunderbus.cpp | 4 +- src/devices/bus/s100/wunderbus.h | 11 +- src/devices/bus/sat_ctrl/analog.cpp | 14 +- src/devices/bus/sat_ctrl/analog.h | 11 +- src/devices/bus/sat_ctrl/ctrl.cpp | 7 +- src/devices/bus/sat_ctrl/ctrl.h | 21 +- src/devices/bus/sat_ctrl/joy.cpp | 8 +- src/devices/bus/sat_ctrl/joy.h | 11 +- src/devices/bus/sat_ctrl/joy_md.cpp | 16 +- src/devices/bus/sat_ctrl/joy_md.h | 20 +- src/devices/bus/sat_ctrl/keybd.cpp | 14 +- src/devices/bus/sat_ctrl/keybd.h | 11 +- src/devices/bus/sat_ctrl/mouse.cpp | 12 +- src/devices/bus/sat_ctrl/mouse.h | 11 +- src/devices/bus/sat_ctrl/multitap.cpp | 4 +- src/devices/bus/sat_ctrl/multitap.h | 11 +- src/devices/bus/sat_ctrl/pointer.cpp | 12 +- src/devices/bus/sat_ctrl/pointer.h | 11 +- src/devices/bus/sat_ctrl/racing.cpp | 10 +- src/devices/bus/sat_ctrl/racing.h | 11 +- src/devices/bus/sat_ctrl/segatap.cpp | 4 +- src/devices/bus/sat_ctrl/segatap.h | 11 +- src/devices/bus/saturn/bram.cpp | 28 +- src/devices/bus/saturn/bram.h | 25 +- src/devices/bus/saturn/dram.cpp | 16 +- src/devices/bus/saturn/dram.h | 25 +- src/devices/bus/saturn/rom.cpp | 12 +- src/devices/bus/saturn/rom.h | 23 +- src/devices/bus/saturn/sat_slot.cpp | 17 +- src/devices/bus/saturn/sat_slot.h | 31 +- src/devices/bus/scsi/acb4070.cpp | 4 +- src/devices/bus/scsi/acb4070.h | 10 +- src/devices/bus/scsi/cdu76s.cpp | 4 +- src/devices/bus/scsi/cdu76s.h | 10 +- src/devices/bus/scsi/d9060hd.cpp | 4 +- src/devices/bus/scsi/d9060hd.h | 10 +- src/devices/bus/scsi/omti5100.cpp | 8 +- src/devices/bus/scsi/omti5100.h | 10 +- src/devices/bus/scsi/pc9801_sasi.cpp | 4 +- src/devices/bus/scsi/pc9801_sasi.h | 10 +- src/devices/bus/scsi/s1410.cpp | 4 +- src/devices/bus/scsi/s1410.h | 12 +- src/devices/bus/scsi/sa1403d.cpp | 4 +- src/devices/bus/scsi/sa1403d.h | 10 +- src/devices/bus/scsi/scsi.cpp | 94 +- src/devices/bus/scsi/scsi.h | 154 +- src/devices/bus/scsi/scsicd.cpp | 8 +- src/devices/bus/scsi/scsicd.h | 13 +- src/devices/bus/scsi/scsihd.cpp | 8 +- src/devices/bus/scsi/scsihd.h | 15 +- src/devices/bus/scsi/scsihle.cpp | 4 +- src/devices/bus/scsi/scsihle.h | 13 +- src/devices/bus/scv/rom.cpp | 42 +- src/devices/bus/scv/rom.h | 66 +- src/devices/bus/scv/slot.cpp | 10 +- src/devices/bus/scv/slot.h | 23 +- src/devices/bus/sega8/ccatch.cpp | 5 +- src/devices/bus/sega8/ccatch.h | 13 +- src/devices/bus/sega8/mgear.cpp | 5 +- src/devices/bus/sega8/mgear.h | 13 +- src/devices/bus/sega8/rom.cpp | 126 +- src/devices/bus/sega8/rom.h | 131 +- src/devices/bus/sega8/sega8_slot.cpp | 58 +- src/devices/bus/sega8/sega8_slot.h | 38 +- src/devices/bus/sg1000_exp/fm_unit.cpp | 4 +- src/devices/bus/sg1000_exp/fm_unit.h | 11 +- src/devices/bus/sg1000_exp/sg1000exp.cpp | 8 +- src/devices/bus/sg1000_exp/sg1000exp.h | 24 +- src/devices/bus/sg1000_exp/sk1100.cpp | 4 +- src/devices/bus/sg1000_exp/sk1100.h | 10 +- src/devices/bus/sms_ctrl/graphic.cpp | 6 +- src/devices/bus/sms_ctrl/graphic.h | 10 +- src/devices/bus/sms_ctrl/joypad.cpp | 4 +- src/devices/bus/sms_ctrl/joypad.h | 10 +- src/devices/bus/sms_ctrl/lphaser.cpp | 4 +- src/devices/bus/sms_ctrl/lphaser.h | 10 +- src/devices/bus/sms_ctrl/multitap.cpp | 9 +- src/devices/bus/sms_ctrl/multitap.h | 10 +- src/devices/bus/sms_ctrl/paddle.cpp | 4 +- src/devices/bus/sms_ctrl/paddle.h | 8 +- src/devices/bus/sms_ctrl/rfu.cpp | 6 +- src/devices/bus/sms_ctrl/rfu.h | 10 +- src/devices/bus/sms_ctrl/smsctrl.cpp | 12 +- src/devices/bus/sms_ctrl/smsctrl.h | 25 +- src/devices/bus/sms_ctrl/sports.cpp | 7 +- src/devices/bus/sms_ctrl/sports.h | 10 +- src/devices/bus/sms_ctrl/sportsjp.cpp | 4 +- src/devices/bus/sms_ctrl/sportsjp.h | 10 +- src/devices/bus/sms_exp/gender.cpp | 12 +- src/devices/bus/sms_exp/gender.h | 11 +- src/devices/bus/sms_exp/smsexp.cpp | 63 +- src/devices/bus/sms_exp/smsexp.h | 71 +- src/devices/bus/snes/bsx.cpp | 69 +- src/devices/bus/snes/bsx.h | 96 +- src/devices/bus/snes/event.cpp | 20 +- src/devices/bus/snes/event.h | 27 +- src/devices/bus/snes/rom.cpp | 58 +- src/devices/bus/snes/rom.h | 113 +- src/devices/bus/snes/rom21.cpp | 16 +- src/devices/bus/snes/rom21.h | 33 +- src/devices/bus/snes/sa1.cpp | 19 +- src/devices/bus/snes/sa1.h | 19 +- src/devices/bus/snes/sdd1.cpp | 46 +- src/devices/bus/snes/sdd1.h | 269 ++- src/devices/bus/snes/sfx.cpp | 6 +- src/devices/bus/snes/sfx.h | 19 +- src/devices/bus/snes/sgb.cpp | 12 +- src/devices/bus/snes/sgb.h | 26 +- src/devices/bus/snes/snes_carts.cpp | 13 + src/devices/bus/snes/snes_carts.h | 20 +- src/devices/bus/snes/snes_slot.cpp | 33 +- src/devices/bus/snes/snes_slot.h | 50 +- src/devices/bus/snes/spc7110.cpp | 101 +- src/devices/bus/snes/spc7110.h | 167 +- src/devices/bus/snes/sufami.cpp | 12 +- src/devices/bus/snes/sufami.h | 25 +- src/devices/bus/snes/upd.cpp | 65 +- src/devices/bus/snes/upd.h | 74 +- src/devices/bus/snes_ctrl/bcbattle.cpp | 11 +- src/devices/bus/snes_ctrl/bcbattle.h | 14 +- src/devices/bus/snes_ctrl/ctrl.cpp | 7 +- src/devices/bus/snes_ctrl/ctrl.h | 29 +- src/devices/bus/snes_ctrl/joypad.cpp | 9 +- src/devices/bus/snes_ctrl/joypad.h | 9 +- src/devices/bus/snes_ctrl/miracle.cpp | 14 +- src/devices/bus/snes_ctrl/miracle.h | 37 +- src/devices/bus/snes_ctrl/mouse.cpp | 16 +- src/devices/bus/snes_ctrl/mouse.h | 11 +- src/devices/bus/snes_ctrl/multitap.cpp | 4 +- src/devices/bus/snes_ctrl/multitap.h | 11 +- src/devices/bus/snes_ctrl/pachinko.cpp | 11 +- src/devices/bus/snes_ctrl/pachinko.h | 11 +- src/devices/bus/snes_ctrl/sscope.cpp | 20 +- src/devices/bus/snes_ctrl/sscope.h | 11 +- src/devices/bus/snes_ctrl/twintap.cpp | 9 +- src/devices/bus/snes_ctrl/twintap.h | 9 +- src/devices/bus/spc1000/exp.cpp | 7 +- src/devices/bus/spc1000/exp.h | 27 +- src/devices/bus/spc1000/fdd.cpp | 17 +- src/devices/bus/spc1000/fdd.h | 19 +- src/devices/bus/spc1000/vdp.cpp | 8 +- src/devices/bus/spc1000/vdp.h | 13 +- src/devices/bus/sunkbd/hlekbd.cpp | 62 +- src/devices/bus/sunkbd/hlekbd.h | 26 +- src/devices/bus/sunkbd/sunkbd.cpp | 11 +- src/devices/bus/sunkbd/sunkbd.h | 10 +- src/devices/bus/svi3x8/expander/expander.cpp | 4 +- src/devices/bus/svi3x8/expander/expander.h | 55 +- src/devices/bus/svi3x8/expander/modules.cpp | 4 + src/devices/bus/svi3x8/expander/modules.h | 12 +- src/devices/bus/svi3x8/expander/sv601.cpp | 4 +- src/devices/bus/svi3x8/expander/sv601.h | 10 +- src/devices/bus/svi3x8/expander/sv602.cpp | 4 +- src/devices/bus/svi3x8/expander/sv602.h | 10 +- src/devices/bus/svi3x8/expander/sv603.cpp | 4 +- src/devices/bus/svi3x8/expander/sv603.h | 10 +- src/devices/bus/svi3x8/slot/cards.cpp | 8 + src/devices/bus/svi3x8/slot/cards.h | 15 +- src/devices/bus/svi3x8/slot/slot.cpp | 12 +- src/devices/bus/svi3x8/slot/slot.h | 56 +- src/devices/bus/svi3x8/slot/sv801.cpp | 4 +- src/devices/bus/svi3x8/slot/sv801.h | 12 +- src/devices/bus/svi3x8/slot/sv802.cpp | 4 +- src/devices/bus/svi3x8/slot/sv802.h | 10 +- src/devices/bus/svi3x8/slot/sv803.cpp | 4 +- src/devices/bus/svi3x8/slot/sv803.h | 10 +- src/devices/bus/svi3x8/slot/sv805.cpp | 4 +- src/devices/bus/svi3x8/slot/sv805.h | 10 +- src/devices/bus/svi3x8/slot/sv806.cpp | 4 +- src/devices/bus/svi3x8/slot/sv806.h | 10 +- src/devices/bus/svi3x8/slot/sv807.cpp | 4 +- src/devices/bus/svi3x8/slot/sv807.h | 10 +- src/devices/bus/ti8x/bitsocket.cpp | 4 +- src/devices/bus/ti8x/bitsocket.h | 12 +- src/devices/bus/ti8x/graphlinkhle.cpp | 4 +- src/devices/bus/ti8x/graphlinkhle.h | 14 +- src/devices/bus/ti8x/teeconn.cpp | 4 +- src/devices/bus/ti8x/teeconn.h | 6 +- src/devices/bus/ti8x/ti8x.cpp | 11 +- src/devices/bus/ti8x/ti8x.h | 7 +- src/devices/bus/ti8x/tispeaker.cpp | 8 +- src/devices/bus/ti8x/tispeaker.h | 8 +- src/devices/bus/ti99/colorbus/busmouse.cpp | 68 + src/devices/bus/ti99/colorbus/busmouse.h | 39 + src/devices/bus/ti99/colorbus/colorbus.cpp | 65 + src/devices/bus/ti99/colorbus/colorbus.h | 64 + src/devices/bus/ti99/joyport/handset.cpp | 538 ++++++ src/devices/bus/ti99/joyport/handset.h | 86 + src/devices/bus/ti99/joyport/joyport.cpp | 116 ++ src/devices/bus/ti99/joyport/joyport.h | 87 + src/devices/bus/ti99/joyport/mecmouse.cpp | 207 +++ src/devices/bus/ti99/joyport/mecmouse.h | 48 + src/devices/bus/ti99/peb/bwg.cpp | 729 ++++++++ src/devices/bus/ti99/peb/bwg.h | 142 ++ src/devices/bus/ti99/peb/evpc.cpp | 498 ++++++ src/devices/bus/ti99/peb/evpc.h | 89 + src/devices/bus/ti99/peb/hfdc.cpp | 1115 ++++++++++++ src/devices/bus/ti99/peb/hfdc.h | 190 ++ src/devices/bus/ti99/peb/horizon.cpp | 494 ++++++ src/devices/bus/ti99/peb/horizon.h | 69 + src/devices/bus/ti99/peb/hsgpl.cpp | 717 ++++++++ src/devices/bus/ti99/peb/hsgpl.h | 84 + src/devices/bus/ti99/peb/memex.cpp | 161 ++ src/devices/bus/ti99/peb/memex.h | 45 + src/devices/bus/ti99/peb/myarcmem.cpp | 214 +++ src/devices/bus/ti99/peb/myarcmem.h | 48 + src/devices/bus/ti99/peb/pcode.cpp | 376 ++++ src/devices/bus/ti99/peb/pcode.h | 67 + src/devices/bus/ti99/peb/peribox.cpp | 761 ++++++++ src/devices/bus/ti99/peb/peribox.h | 271 +++ src/devices/bus/ti99/peb/samsmem.cpp | 136 ++ src/devices/bus/ti99/peb/samsmem.h | 49 + src/devices/bus/ti99/peb/spchsyn.cpp | 178 ++ src/devices/bus/ti99/peb/spchsyn.h | 49 + src/devices/bus/ti99/peb/ti_32kmem.cpp | 109 ++ src/devices/bus/ti99/peb/ti_32kmem.h | 42 + src/devices/bus/ti99/peb/ti_fdc.cpp | 481 +++++ src/devices/bus/ti99/peb/ti_fdc.h | 115 ++ src/devices/bus/ti99/peb/ti_rs232.cpp | 1150 ++++++++++++ src/devices/bus/ti99/peb/ti_rs232.h | 162 ++ src/devices/bus/ti99/peb/tn_ide.cpp | 385 ++++ src/devices/bus/ti99/peb/tn_ide.h | 66 + src/devices/bus/ti99/peb/tn_usbsm.cpp | 379 ++++ src/devices/bus/ti99/peb/tn_usbsm.h | 63 + src/devices/bus/ti99_peb/bwg.cpp | 731 -------- src/devices/bus/ti99_peb/bwg.h | 137 -- src/devices/bus/ti99_peb/evpc.cpp | 498 ------ src/devices/bus/ti99_peb/evpc.h | 87 - src/devices/bus/ti99_peb/hfdc.cpp | 1116 ------------ src/devices/bus/ti99_peb/hfdc.h | 185 -- src/devices/bus/ti99_peb/horizon.cpp | 494 ------ src/devices/bus/ti99_peb/horizon.h | 67 - src/devices/bus/ti99_peb/hsgpl.cpp | 717 -------- src/devices/bus/ti99_peb/hsgpl.h | 82 - src/devices/bus/ti99_peb/memex.cpp | 161 -- src/devices/bus/ti99_peb/memex.h | 43 - src/devices/bus/ti99_peb/myarcmem.cpp | 214 --- src/devices/bus/ti99_peb/myarcmem.h | 46 - src/devices/bus/ti99_peb/pcode.cpp | 376 ---- src/devices/bus/ti99_peb/pcode.h | 65 - src/devices/bus/ti99_peb/peribox.cpp | 766 -------- src/devices/bus/ti99_peb/peribox.h | 268 --- src/devices/bus/ti99_peb/samsmem.cpp | 136 -- src/devices/bus/ti99_peb/samsmem.h | 46 - src/devices/bus/ti99_peb/spchsyn.cpp | 177 -- src/devices/bus/ti99_peb/spchsyn.h | 47 - src/devices/bus/ti99_peb/ti_32kmem.cpp | 110 -- src/devices/bus/ti99_peb/ti_32kmem.h | 40 - src/devices/bus/ti99_peb/ti_fdc.cpp | 481 ----- src/devices/bus/ti99_peb/ti_fdc.h | 111 -- src/devices/bus/ti99_peb/ti_rs232.cpp | 1150 ------------ src/devices/bus/ti99_peb/ti_rs232.h | 162 -- src/devices/bus/ti99_peb/tn_ide.cpp | 387 ---- src/devices/bus/ti99_peb/tn_ide.h | 63 - src/devices/bus/ti99_peb/tn_usbsm.cpp | 379 ---- src/devices/bus/ti99_peb/tn_usbsm.h | 61 - src/devices/bus/ti99x/990_dk.cpp | 19 +- src/devices/bus/ti99x/990_dk.h | 35 +- src/devices/bus/ti99x/990_hd.cpp | 7 +- src/devices/bus/ti99x/990_hd.h | 22 +- src/devices/bus/ti99x/990_tap.cpp | 12 +- src/devices/bus/ti99x/990_tap.h | 29 +- src/devices/bus/ti99x/998board.cpp | 58 +- src/devices/bus/ti99x/998board.h | 157 +- src/devices/bus/ti99x/busmouse.cpp | 69 - src/devices/bus/ti99x/busmouse.h | 35 - src/devices/bus/ti99x/colorbus.cpp | 65 - src/devices/bus/ti99x/colorbus.h | 64 - src/devices/bus/ti99x/datamux.cpp | 7 +- src/devices/bus/ti99x/datamux.h | 18 +- src/devices/bus/ti99x/genboard.cpp | 16 +- src/devices/bus/ti99x/genboard.h | 32 +- src/devices/bus/ti99x/gromport.cpp | 342 ++-- src/devices/bus/ti99x/gromport.h | 222 +-- src/devices/bus/ti99x/handset.cpp | 538 ------ src/devices/bus/ti99x/handset.h | 84 - src/devices/bus/ti99x/joyport.cpp | 116 -- src/devices/bus/ti99x/joyport.h | 89 - src/devices/bus/ti99x/mecmouse.cpp | 207 --- src/devices/bus/ti99x/mecmouse.h | 47 - src/devices/bus/ti99x/ti99defs.cpp | 4 +- src/devices/bus/ti99x/ti99defs.h | 39 +- src/devices/bus/tiki100/8088.cpp | 30 +- src/devices/bus/tiki100/8088.h | 17 +- src/devices/bus/tiki100/exp.cpp | 36 +- src/devices/bus/tiki100/exp.h | 83 +- src/devices/bus/tiki100/hdc.cpp | 18 +- src/devices/bus/tiki100/hdc.h | 18 +- src/devices/bus/tvc/hbf.cpp | 10 +- src/devices/bus/tvc/hbf.h | 12 +- src/devices/bus/tvc/tvc.cpp | 11 +- src/devices/bus/tvc/tvc.h | 33 +- src/devices/bus/vboy/rom.cpp | 14 +- src/devices/bus/vboy/rom.h | 25 +- src/devices/bus/vboy/slot.cpp | 11 +- src/devices/bus/vboy/slot.h | 26 +- src/devices/bus/vc4000/rom.cpp | 22 +- src/devices/bus/vc4000/rom.h | 29 +- src/devices/bus/vc4000/slot.cpp | 15 +- src/devices/bus/vc4000/slot.h | 20 +- src/devices/bus/vcs/compumat.cpp | 4 +- src/devices/bus/vcs/compumat.h | 10 +- src/devices/bus/vcs/dpc.cpp | 9 +- src/devices/bus/vcs/dpc.h | 57 +- src/devices/bus/vcs/harmony_melody.cpp | 7 +- src/devices/bus/vcs/harmony_melody.h | 20 +- src/devices/bus/vcs/rom.cpp | 117 +- src/devices/bus/vcs/rom.h | 162 +- src/devices/bus/vcs/scharger.cpp | 8 +- src/devices/bus/vcs/scharger.h | 21 +- src/devices/bus/vcs/vcs_slot.cpp | 8 +- src/devices/bus/vcs/vcs_slot.h | 23 +- src/devices/bus/vcs_ctrl/ctrl.cpp | 4 +- src/devices/bus/vcs_ctrl/ctrl.h | 15 +- src/devices/bus/vcs_ctrl/joybooster.cpp | 4 +- src/devices/bus/vcs_ctrl/joybooster.h | 11 +- src/devices/bus/vcs_ctrl/joystick.cpp | 4 +- src/devices/bus/vcs_ctrl/joystick.h | 10 +- src/devices/bus/vcs_ctrl/keypad.cpp | 7 +- src/devices/bus/vcs_ctrl/keypad.h | 11 +- src/devices/bus/vcs_ctrl/lightpen.cpp | 4 +- src/devices/bus/vcs_ctrl/lightpen.h | 11 +- src/devices/bus/vcs_ctrl/paddles.cpp | 4 +- src/devices/bus/vcs_ctrl/paddles.h | 11 +- src/devices/bus/vcs_ctrl/wheel.cpp | 4 +- src/devices/bus/vcs_ctrl/wheel.h | 11 +- src/devices/bus/vectrex/rom.cpp | 20 +- src/devices/bus/vectrex/rom.h | 36 +- src/devices/bus/vectrex/slot.cpp | 13 +- src/devices/bus/vectrex/slot.h | 25 +- src/devices/bus/vic10/exp.cpp | 17 +- src/devices/bus/vic10/exp.h | 35 +- src/devices/bus/vic10/std.cpp | 5 +- src/devices/bus/vic10/std.h | 11 +- src/devices/bus/vic20/4cga.cpp | 4 +- src/devices/bus/vic20/4cga.h | 10 +- src/devices/bus/vic20/exp.cpp | 15 +- src/devices/bus/vic20/exp.h | 20 +- src/devices/bus/vic20/fe3.cpp | 26 +- src/devices/bus/vic20/fe3.h | 18 +- src/devices/bus/vic20/megacart.cpp | 10 +- src/devices/bus/vic20/megacart.h | 12 +- src/devices/bus/vic20/speakeasy.cpp | 16 +- src/devices/bus/vic20/speakeasy.h | 18 +- src/devices/bus/vic20/std.cpp | 5 +- src/devices/bus/vic20/std.h | 12 +- src/devices/bus/vic20/user.h | 8 +- src/devices/bus/vic20/vic1010.cpp | 20 +- src/devices/bus/vic20/vic1010.h | 31 +- src/devices/bus/vic20/vic1011.cpp | 8 +- src/devices/bus/vic20/vic1011.h | 8 +- src/devices/bus/vic20/vic1110.cpp | 10 +- src/devices/bus/vic20/vic1110.h | 11 +- src/devices/bus/vic20/vic1111.cpp | 8 +- src/devices/bus/vic20/vic1111.h | 12 +- src/devices/bus/vic20/vic1112.cpp | 33 +- src/devices/bus/vic20/vic1112.h | 12 +- src/devices/bus/vic20/vic1210.cpp | 8 +- src/devices/bus/vic20/vic1210.h | 12 +- src/devices/bus/vic20/videopak.cpp | 24 +- src/devices/bus/vic20/videopak.h | 17 +- src/devices/bus/vidbrain/exp.cpp | 4 +- src/devices/bus/vidbrain/exp.h | 24 +- src/devices/bus/vidbrain/money_minder.cpp | 4 +- src/devices/bus/vidbrain/money_minder.h | 11 +- src/devices/bus/vidbrain/std.cpp | 4 +- src/devices/bus/vidbrain/std.h | 11 +- src/devices/bus/vidbrain/timeshare.cpp | 4 +- src/devices/bus/vidbrain/timeshare.h | 11 +- src/devices/bus/vip/byteio.cpp | 9 +- src/devices/bus/vip/byteio.h | 25 +- src/devices/bus/vip/exp.cpp | 4 +- src/devices/bus/vip/exp.h | 39 +- src/devices/bus/vip/vp550.cpp | 4 +- src/devices/bus/vip/vp550.h | 11 +- src/devices/bus/vip/vp570.cpp | 4 +- src/devices/bus/vip/vp570.h | 10 +- src/devices/bus/vip/vp575.cpp | 13 +- src/devices/bus/vip/vp575.h | 23 +- src/devices/bus/vip/vp585.cpp | 7 +- src/devices/bus/vip/vp585.h | 11 +- src/devices/bus/vip/vp590.cpp | 7 +- src/devices/bus/vip/vp590.h | 11 +- src/devices/bus/vip/vp595.cpp | 4 +- src/devices/bus/vip/vp595.h | 11 +- src/devices/bus/vip/vp620.cpp | 8 +- src/devices/bus/vip/vp620.h | 13 +- src/devices/bus/vip/vp700.cpp | 4 +- src/devices/bus/vip/vp700.h | 11 +- src/devices/bus/vme/vme.cpp | 50 +- src/devices/bus/vme/vme.h | 44 +- src/devices/bus/vme/vme_fccpu20.cpp | 35 +- src/devices/bus/vme/vme_fccpu20.h | 128 +- src/devices/bus/vme/vme_fcisio.cpp | 42 +- src/devices/bus/vme/vme_fcisio.h | 16 +- src/devices/bus/vme/vme_fcscsi.cpp | 38 +- src/devices/bus/vme/vme_fcscsi.h | 33 +- src/devices/bus/vme/vme_mvme350.cpp | 14 +- src/devices/bus/vme/vme_mvme350.h | 18 +- src/devices/bus/vme/vme_mzr8105.cpp | 9 +- src/devices/bus/vme/vme_mzr8105.h | 19 +- src/devices/bus/vme/vme_mzr8300.cpp | 17 +- src/devices/bus/vme/vme_mzr8300.h | 16 +- src/devices/bus/vtech/ioexp/carts.cpp | 10 +- src/devices/bus/vtech/ioexp/carts.h | 13 +- src/devices/bus/vtech/ioexp/ioexp.cpp | 28 +- src/devices/bus/vtech/ioexp/ioexp.h | 40 +- src/devices/bus/vtech/ioexp/joystick.cpp | 20 +- src/devices/bus/vtech/ioexp/joystick.h | 14 +- src/devices/bus/vtech/ioexp/printer.cpp | 30 +- src/devices/bus/vtech/ioexp/printer.h | 14 +- src/devices/bus/vtech/memexp/carts.cpp | 25 +- src/devices/bus/vtech/memexp/carts.h | 17 +- src/devices/bus/vtech/memexp/floppy.cpp | 47 +- src/devices/bus/vtech/memexp/floppy.h | 26 +- src/devices/bus/vtech/memexp/memexp.cpp | 30 +- src/devices/bus/vtech/memexp/memexp.h | 60 +- src/devices/bus/vtech/memexp/memory.cpp | 68 +- src/devices/bus/vtech/memexp/memory.h | 40 +- src/devices/bus/vtech/memexp/rs232.cpp | 32 +- src/devices/bus/vtech/memexp/rs232.h | 16 +- src/devices/bus/vtech/memexp/rtty.cpp | 30 +- src/devices/bus/vtech/memexp/rtty.h | 18 +- src/devices/bus/vtech/memexp/wordpro.cpp | 20 +- src/devices/bus/vtech/memexp/wordpro.h | 16 +- src/devices/bus/wangpc/emb.cpp | 7 +- src/devices/bus/wangpc/emb.h | 9 +- src/devices/bus/wangpc/lic.cpp | 4 +- src/devices/bus/wangpc/lic.h | 11 +- src/devices/bus/wangpc/lvc.cpp | 4 +- src/devices/bus/wangpc/lvc.h | 11 +- src/devices/bus/wangpc/mcc.cpp | 4 +- src/devices/bus/wangpc/mcc.h | 11 +- src/devices/bus/wangpc/mvc.cpp | 4 +- src/devices/bus/wangpc/mvc.h | 11 +- src/devices/bus/wangpc/rtc.cpp | 4 +- src/devices/bus/wangpc/rtc.h | 11 +- src/devices/bus/wangpc/tig.cpp | 4 +- src/devices/bus/wangpc/tig.h | 13 +- src/devices/bus/wangpc/wangpc.cpp | 8 +- src/devices/bus/wangpc/wangpc.h | 67 +- src/devices/bus/wangpc/wdc.cpp | 4 +- src/devices/bus/wangpc/wdc.h | 11 +- src/devices/bus/wswan/rom.cpp | 44 +- src/devices/bus/wswan/rom.h | 47 +- src/devices/bus/wswan/slot.cpp | 11 +- src/devices/bus/wswan/slot.h | 25 +- src/devices/bus/x68k/x68k_neptunex.cpp | 10 +- src/devices/bus/x68k/x68k_neptunex.h | 15 +- src/devices/bus/x68k/x68k_scsiext.cpp | 9 +- src/devices/bus/x68k/x68k_scsiext.h | 14 +- src/devices/bus/x68k/x68kexp.cpp | 15 +- src/devices/bus/x68k/x68kexp.h | 27 +- src/devices/bus/z88/flash.cpp | 8 +- src/devices/bus/z88/flash.h | 11 +- src/devices/bus/z88/ram.cpp | 26 +- src/devices/bus/z88/ram.h | 19 +- src/devices/bus/z88/rom.cpp | 22 +- src/devices/bus/z88/rom.h | 17 +- src/devices/bus/z88/z88.cpp | 11 +- src/devices/bus/z88/z88.h | 28 +- src/devices/cpu/8x300/8x300.cpp | 4 +- src/devices/cpu/8x300/8x300.h | 9 +- src/devices/cpu/adsp2100/adsp2100.cpp | 41 +- src/devices/cpu/adsp2100/adsp2100.h | 48 +- src/devices/cpu/alph8201/alph8201.cpp | 20 +- src/devices/cpu/alph8201/alph8201.h | 32 +- src/devices/cpu/alto2/alto2cpu.cpp | 4 +- src/devices/cpu/alto2/alto2cpu.h | 4 +- src/devices/cpu/am29000/am29000.cpp | 4 +- src/devices/cpu/am29000/am29000.h | 12 +- src/devices/cpu/amis2000/amis2000.cpp | 12 +- src/devices/cpu/amis2000/amis2000.h | 42 +- src/devices/cpu/apexc/apexc.cpp | 6 +- src/devices/cpu/apexc/apexc.h | 11 +- src/devices/cpu/arc/arc.cpp | 29 +- src/devices/cpu/arc/arc.h | 15 +- src/devices/cpu/arcompact/arcompact.cpp | 4 +- src/devices/cpu/arcompact/arcompact.h | 10 +- src/devices/cpu/arm/arm.cpp | 26 +- src/devices/cpu/arm/arm.h | 53 +- src/devices/cpu/arm7/arm7.cpp | 39 +- src/devices/cpu/arm7/arm7.h | 31 +- src/devices/cpu/arm7/lpc210x.cpp | 6 +- src/devices/cpu/arm7/lpc210x.h | 31 +- src/devices/cpu/asap/asap.cpp | 28 +- src/devices/cpu/asap/asap.h | 88 +- src/devices/cpu/avr8/avr8.cpp | 50 +- src/devices/cpu/avr8/avr8.h | 23 +- src/devices/cpu/ccpu/ccpu.cpp | 6 +- src/devices/cpu/ccpu/ccpu.h | 51 +- src/devices/cpu/clipper/clipper.cpp | 56 +- src/devices/cpu/clipper/clipper.h | 54 +- src/devices/cpu/cop400/cop400.cpp | 72 +- src/devices/cpu/cop400/cop400.h | 50 +- src/devices/cpu/cosmac/cosmac.cpp | 12 +- src/devices/cpu/cosmac/cosmac.h | 106 +- src/devices/cpu/cp1610/cp1610.cpp | 6 +- src/devices/cpu/cp1610/cp1610.h | 27 +- src/devices/cpu/cubeqcpu/cubeqcpu.cpp | 12 +- src/devices/cpu/cubeqcpu/cubeqcpu.h | 207 +-- src/devices/cpu/dsp16/dsp16.cpp | 4 +- src/devices/cpu/dsp16/dsp16.h | 83 +- src/devices/cpu/dsp32/dsp32.cpp | 6 +- src/devices/cpu/dsp32/dsp32.h | 128 +- src/devices/cpu/dsp56k/dsp56k.cpp | 19 +- src/devices/cpu/dsp56k/dsp56k.h | 17 +- src/devices/cpu/dsp56k/dsp56mem.cpp | 10 +- src/devices/cpu/dsp56k/dsp56mem.h | 10 +- src/devices/cpu/e0c6200/e0c6200.cpp | 8 + src/devices/cpu/e0c6200/e0c6200.h | 16 +- src/devices/cpu/e0c6200/e0c6s46.cpp | 4 +- src/devices/cpu/e0c6200/e0c6s46.h | 46 +- src/devices/cpu/e132xs/32xsdasm.cpp | 5 +- src/devices/cpu/e132xs/32xsdefs.h | 96 + src/devices/cpu/e132xs/e132xs.cpp | 92 +- src/devices/cpu/e132xs/e132xs.h | 247 +-- src/devices/cpu/es5510/es5510.cpp | 115 +- src/devices/cpu/es5510/es5510.h | 10 +- src/devices/cpu/esrip/esrip.cpp | 4 +- src/devices/cpu/esrip/esrip.h | 144 +- src/devices/cpu/f8/f8.cpp | 6 +- src/devices/cpu/f8/f8.h | 33 +- src/devices/cpu/g65816/g65816.cpp | 20 +- src/devices/cpu/g65816/g65816.h | 36 +- src/devices/cpu/h6280/h6280.cpp | 30 +- src/devices/cpu/h6280/h6280.h | 67 +- src/devices/cpu/h8/h8.cpp | 4 +- src/devices/cpu/h8/h8.h | 12 +- src/devices/cpu/h8/h83002.cpp | 4 +- src/devices/cpu/h8/h83002.h | 10 +- src/devices/cpu/h8/h83006.cpp | 42 +- src/devices/cpu/h8/h83006.h | 15 +- src/devices/cpu/h8/h83008.cpp | 8 +- src/devices/cpu/h8/h83008.h | 10 +- src/devices/cpu/h8/h83048.cpp | 53 +- src/devices/cpu/h8/h83048.h | 17 +- src/devices/cpu/h8/h83337.cpp | 44 +- src/devices/cpu/h8/h83337.h | 17 +- src/devices/cpu/h8/h8_adc.cpp | 33 +- src/devices/cpu/h8/h8_adc.h | 24 +- src/devices/cpu/h8/h8_dma.cpp | 8 +- src/devices/cpu/h8/h8_dma.h | 12 +- src/devices/cpu/h8/h8_dtc.cpp | 4 +- src/devices/cpu/h8/h8_dtc.h | 10 +- src/devices/cpu/h8/h8_intc.cpp | 21 +- src/devices/cpu/h8/h8_intc.h | 20 +- src/devices/cpu/h8/h8_port.cpp | 4 +- src/devices/cpu/h8/h8_port.h | 10 +- src/devices/cpu/h8/h8_sci.cpp | 4 +- src/devices/cpu/h8/h8_sci.h | 14 +- src/devices/cpu/h8/h8_timer16.cpp | 22 +- src/devices/cpu/h8/h8_timer16.h | 19 +- src/devices/cpu/h8/h8_timer8.cpp | 14 +- src/devices/cpu/h8/h8_timer8.h | 15 +- src/devices/cpu/h8/h8_watchdog.cpp | 4 +- src/devices/cpu/h8/h8_watchdog.h | 10 +- src/devices/cpu/h8/h8h.cpp | 4 +- src/devices/cpu/h8/h8h.h | 13 +- src/devices/cpu/h8/h8s2000.cpp | 4 +- src/devices/cpu/h8/h8s2000.h | 11 +- src/devices/cpu/h8/h8s2245.cpp | 56 +- src/devices/cpu/h8/h8s2245.h | 19 +- src/devices/cpu/h8/h8s2320.cpp | 92 +- src/devices/cpu/h8/h8s2320.h | 32 +- src/devices/cpu/h8/h8s2357.cpp | 70 +- src/devices/cpu/h8/h8s2357.h | 24 +- src/devices/cpu/h8/h8s2600.cpp | 4 +- src/devices/cpu/h8/h8s2600.h | 13 +- src/devices/cpu/h8/h8s2655.cpp | 46 +- src/devices/cpu/h8/h8s2655.h | 15 +- src/devices/cpu/hcd62121/hcd62121.cpp | 7 +- src/devices/cpu/hcd62121/hcd62121.h | 38 +- src/devices/cpu/hd61700/hd61700.cpp | 35 +- src/devices/cpu/hd61700/hd61700.h | 44 +- src/devices/cpu/hmcs40/hmcs40.cpp | 99 +- src/devices/cpu/hmcs40/hmcs40.h | 149 +- src/devices/cpu/hphybrid/hphybrid.cpp | 17 +- src/devices/cpu/hphybrid/hphybrid.h | 316 ++-- src/devices/cpu/hphybrid/hphybrid_dasm.cpp | 5 +- src/devices/cpu/hphybrid/hphybrid_defs.h | 38 + src/devices/cpu/i386/i386.cpp | 72 +- src/devices/cpu/i386/i386.h | 160 +- src/devices/cpu/i4004/i4004.cpp | 6 +- src/devices/cpu/i4004/i4004.h | 10 +- src/devices/cpu/i8008/i8008.cpp | 14 +- src/devices/cpu/i8008/i8008.h | 28 +- src/devices/cpu/i8085/i8085.cpp | 28 +- src/devices/cpu/i8085/i8085.h | 62 +- src/devices/cpu/i8089/i8089.cpp | 78 +- src/devices/cpu/i8089/i8089.h | 26 +- src/devices/cpu/i8089/i8089_channel.cpp | 52 +- src/devices/cpu/i8089/i8089_channel.h | 18 +- src/devices/cpu/i8089/i8089_ops.cpp | 138 +- src/devices/cpu/i86/i186.cpp | 19 +- src/devices/cpu/i86/i186.h | 25 +- src/devices/cpu/i86/i286.cpp | 4 +- src/devices/cpu/i86/i286.h | 14 +- src/devices/cpu/i86/i86.cpp | 21 +- src/devices/cpu/i86/i86.h | 27 +- src/devices/cpu/i860/i860.cpp | 7 +- src/devices/cpu/i860/i860.h | 59 +- src/devices/cpu/i960/i960.cpp | 11 +- src/devices/cpu/i960/i960.h | 16 +- src/devices/cpu/ie15/ie15.cpp | 11 +- src/devices/cpu/ie15/ie15.h | 34 +- src/devices/cpu/jaguar/jagdasm.cpp | 3 + src/devices/cpu/jaguar/jaguar.cpp | 12 +- src/devices/cpu/jaguar/jaguar.h | 33 +- src/devices/cpu/lc8670/lc8670.cpp | 24 +- src/devices/cpu/lc8670/lc8670.h | 56 +- src/devices/cpu/lh5801/lh5801.cpp | 11 +- src/devices/cpu/lh5801/lh5801.h | 14 +- src/devices/cpu/lr35902/lr35902.cpp | 6 +- src/devices/cpu/lr35902/lr35902.h | 12 +- src/devices/cpu/m37710/m37710.cpp | 20 +- src/devices/cpu/m37710/m37710.h | 20 +- src/devices/cpu/m6502/deco16.cpp | 4 +- src/devices/cpu/m6502/deco16.h | 8 +- src/devices/cpu/m6502/m3745x.cpp | 12 +- src/devices/cpu/m6502/m3745x.h | 20 +- src/devices/cpu/m6502/m4510.cpp | 4 +- src/devices/cpu/m6502/m4510.h | 10 +- src/devices/cpu/m6502/m5074x.cpp | 20 +- src/devices/cpu/m6502/m5074x.h | 26 +- src/devices/cpu/m6502/m6502.cpp | 13 +- src/devices/cpu/m6502/m6502.h | 11 +- src/devices/cpu/m6502/m6504.cpp | 4 +- src/devices/cpu/m6502/m6504.h | 6 +- src/devices/cpu/m6502/m6507.cpp | 4 +- src/devices/cpu/m6502/m6507.h | 8 +- src/devices/cpu/m6502/m6509.cpp | 4 +- src/devices/cpu/m6502/m6509.h | 8 +- src/devices/cpu/m6502/m6510.cpp | 12 +- src/devices/cpu/m6502/m6510.h | 12 +- src/devices/cpu/m6502/m6510t.cpp | 4 +- src/devices/cpu/m6502/m6510t.h | 8 +- src/devices/cpu/m6502/m65c02.cpp | 8 +- src/devices/cpu/m6502/m65c02.h | 12 +- src/devices/cpu/m6502/m65ce02.cpp | 8 +- src/devices/cpu/m6502/m65ce02.h | 12 +- src/devices/cpu/m6502/m65sc02.cpp | 4 +- src/devices/cpu/m6502/m65sc02.h | 8 +- src/devices/cpu/m6502/m740.cpp | 8 +- src/devices/cpu/m6502/m740.h | 79 +- src/devices/cpu/m6502/m7501.cpp | 4 +- src/devices/cpu/m6502/m7501.h | 6 +- src/devices/cpu/m6502/m8502.cpp | 4 +- src/devices/cpu/m6502/m8502.h | 9 +- src/devices/cpu/m6502/n2a03.cpp | 4 +- src/devices/cpu/m6502/n2a03.h | 9 +- src/devices/cpu/m6502/r65c02.cpp | 8 +- src/devices/cpu/m6502/r65c02.h | 12 +- src/devices/cpu/m6800/m6800.cpp | 65 +- src/devices/cpu/m6800/m6800.h | 40 +- src/devices/cpu/m68000/m68000.h | 82 +- src/devices/cpu/m68000/m68kcpu.cpp | 109 +- src/devices/cpu/m68000/m68kcpu.h | 6 +- src/devices/cpu/m6805/m6805.cpp | 35 +- src/devices/cpu/m6805/m6805.h | 16 +- src/devices/cpu/m6805/m68705.cpp | 54 +- src/devices/cpu/m6805/m68705.h | 33 +- src/devices/cpu/m6805/m68hc05.cpp | 38 +- src/devices/cpu/m6805/m68hc05.h | 16 +- src/devices/cpu/m6809/hd6309.cpp | 4 +- src/devices/cpu/m6809/hd6309.h | 10 +- src/devices/cpu/m6809/konami.cpp | 6 +- src/devices/cpu/m6809/konami.h | 10 +- src/devices/cpu/m6809/m6809.cpp | 12 +- src/devices/cpu/m6809/m6809.h | 20 +- src/devices/cpu/mb86233/mb86233.cpp | 13 +- src/devices/cpu/mb86233/mb86233.h | 84 +- src/devices/cpu/mb86235/mb86235.cpp | 7 +- src/devices/cpu/mb86235/mb86235.h | 33 +- src/devices/cpu/mb86235/mb86235defs.h | 21 + src/devices/cpu/mb86235/mb86235drc.cpp | 6 +- src/devices/cpu/mb86235/mb86235fe.cpp | 2 + src/devices/cpu/mb88xx/mb88xx.cpp | 38 +- src/devices/cpu/mb88xx/mb88xx.h | 28 +- src/devices/cpu/mc68hc11/mc68hc11.cpp | 4 +- src/devices/cpu/mc68hc11/mc68hc11.h | 11 +- src/devices/cpu/mcs48/mcs48.cpp | 88 +- src/devices/cpu/mcs48/mcs48.h | 70 +- src/devices/cpu/mcs51/mcs51.cpp | 81 +- src/devices/cpu/mcs51/mcs51.h | 51 +- src/devices/cpu/mcs96/i8x9x.cpp | 12 +- src/devices/cpu/mcs96/i8x9x.h | 14 +- src/devices/cpu/mcs96/i8xc196.cpp | 4 +- src/devices/cpu/mcs96/i8xc196.h | 10 +- src/devices/cpu/mcs96/mcs96.cpp | 7 +- src/devices/cpu/mcs96/mcs96.h | 22 +- src/devices/cpu/melps4/m58846.cpp | 4 +- src/devices/cpu/melps4/m58846.h | 12 +- src/devices/cpu/melps4/melps4.cpp | 25 + src/devices/cpu/melps4/melps4.h | 59 +- src/devices/cpu/minx/minx.cpp | 6 +- src/devices/cpu/minx/minx.h | 11 +- src/devices/cpu/mips/mips3.cpp | 44 +- src/devices/cpu/mips/mips3.h | 90 +- src/devices/cpu/mips/r3000.cpp | 26 +- src/devices/cpu/mips/r3000.h | 60 +- src/devices/cpu/mn10200/mn10200.cpp | 12 +- src/devices/cpu/mn10200/mn10200.h | 54 +- src/devices/cpu/nanoprocessor/nanoprocessor.cpp | 6 +- src/devices/cpu/nanoprocessor/nanoprocessor.h | 32 +- src/devices/cpu/nec/nec.cpp | 22 +- src/devices/cpu/nec/nec.h | 35 +- src/devices/cpu/nec/v25.cpp | 12 +- src/devices/cpu/nec/v25.h | 44 +- src/devices/cpu/nec/v53.cpp | 15 +- src/devices/cpu/nec/v53.h | 114 +- src/devices/cpu/patinhofeio/patinho_feio.cpp | 8 +- src/devices/cpu/patinhofeio/patinhofeio_cpu.h | 19 +- src/devices/cpu/pdp1/pdp1.cpp | 4 +- src/devices/cpu/pdp1/pdp1.h | 10 +- src/devices/cpu/pdp1/tx0.cpp | 22 +- src/devices/cpu/pdp1/tx0.h | 40 +- src/devices/cpu/pic16c5x/pic16c5x.cpp | 38 +- src/devices/cpu/pic16c5x/pic16c5x.h | 46 +- src/devices/cpu/pic16c62x/pic16c62x.cpp | 34 +- src/devices/cpu/pic16c62x/pic16c62x.h | 30 +- src/devices/cpu/powerpc/ppc.h | 37 +- src/devices/cpu/powerpc/ppccom.cpp | 52 +- src/devices/cpu/pps4/pps4.cpp | 39 +- src/devices/cpu/pps4/pps4.h | 26 +- src/devices/cpu/psx/dma.cpp | 8 +- src/devices/cpu/psx/dma.h | 42 +- src/devices/cpu/psx/gte.h | 8 +- src/devices/cpu/psx/irq.cpp | 4 +- src/devices/cpu/psx/irq.h | 10 +- src/devices/cpu/psx/mdec.cpp | 8 +- src/devices/cpu/psx/mdec.h | 22 +- src/devices/cpu/psx/psx.cpp | 34 +- src/devices/cpu/psx/psx.h | 160 +- src/devices/cpu/psx/psxdasm.cpp | 3 + src/devices/cpu/psx/psxdefs.h | 126 ++ src/devices/cpu/psx/rcnt.cpp | 4 +- src/devices/cpu/psx/rcnt.h | 34 +- src/devices/cpu/psx/sio.cpp | 12 +- src/devices/cpu/psx/sio.h | 26 +- src/devices/cpu/rsp/rsp.cpp | 10 +- src/devices/cpu/rsp/rsp.h | 46 +- src/devices/cpu/rsp/rspcp2.cpp | 5 +- src/devices/cpu/rsp/rspcp2d.cpp | 7 +- src/devices/cpu/rsp/rspdefs.h | 32 + src/devices/cpu/rsp/rspdrc.cpp | 7 +- src/devices/cpu/rsp/rspfe.cpp | 3 + src/devices/cpu/s2650/s2650.cpp | 11 +- src/devices/cpu/s2650/s2650.h | 14 +- src/devices/cpu/saturn/satops.hxx | 14 +- src/devices/cpu/saturn/saturn.cpp | 20 +- src/devices/cpu/saturn/saturn.h | 29 +- src/devices/cpu/sc61860/sc61860.cpp | 13 +- src/devices/cpu/sc61860/sc61860.h | 27 +- src/devices/cpu/scmp/scmp.cpp | 45 +- src/devices/cpu/scmp/scmp.h | 44 +- src/devices/cpu/score/score.cpp | 10 +- src/devices/cpu/score/score.h | 14 +- src/devices/cpu/scudsp/scudsp.cpp | 7 +- src/devices/cpu/scudsp/scudsp.h | 39 +- src/devices/cpu/se3208/se3208.cpp | 13 +- src/devices/cpu/se3208/se3208.h | 14 +- src/devices/cpu/sh2/sh2.cpp | 134 +- src/devices/cpu/sh2/sh2.h | 48 +- src/devices/cpu/sh2/sh2comn.cpp | 84 +- src/devices/cpu/sh2/sh2comn.h | 8 +- src/devices/cpu/sh2/sh7604_bus.cpp | 8 +- src/devices/cpu/sh2/sh7604_bus.h | 18 +- src/devices/cpu/sh2/sh7604_sci.cpp | 8 +- src/devices/cpu/sh2/sh7604_sci.h | 44 +- src/devices/cpu/sh2/sh7604_wdt.cpp | 8 +- src/devices/cpu/sh2/sh7604_wdt.h | 18 +- src/devices/cpu/sh4/sh4.cpp | 32 +- src/devices/cpu/sh4/sh4.h | 35 +- src/devices/cpu/sharc/sharc.cpp | 7 +- src/devices/cpu/sharc/sharc.h | 135 +- src/devices/cpu/sm510/kb1013vk1-2.h | 15 +- src/devices/cpu/sm510/kb1013vk1-2core.cpp | 7 +- src/devices/cpu/sm510/sm500.h | 10 +- src/devices/cpu/sm510/sm500core.cpp | 14 +- src/devices/cpu/sm510/sm510.h | 35 +- src/devices/cpu/sm510/sm510core.cpp | 7 +- src/devices/cpu/sm510/sm511core.cpp | 21 +- src/devices/cpu/sm510/sm590.h | 8 +- src/devices/cpu/sm510/sm590core.cpp | 32 +- src/devices/cpu/sm8500/sm8500.cpp | 12 +- src/devices/cpu/sm8500/sm8500.h | 53 +- src/devices/cpu/sparc/mb86901.cpp | 8 +- src/devices/cpu/sparc/sparc.h | 8 +- src/devices/cpu/spc700/spc700.cpp | 10 +- src/devices/cpu/spc700/spc700.h | 14 +- src/devices/cpu/ssem/ssem.cpp | 16 +- src/devices/cpu/ssem/ssem.h | 11 +- src/devices/cpu/ssp1601/ssp1601.cpp | 7 +- src/devices/cpu/ssp1601/ssp1601.h | 37 +- src/devices/cpu/superfx/superfx.cpp | 10 +- src/devices/cpu/superfx/superfx.h | 12 +- src/devices/cpu/t11/t11.cpp | 20 +- src/devices/cpu/t11/t11.h | 19 +- src/devices/cpu/tlcs870/tlcs870.cpp | 10 +- src/devices/cpu/tlcs870/tlcs870.h | 22 +- src/devices/cpu/tlcs90/tlcs90.cpp | 28 +- src/devices/cpu/tlcs90/tlcs90.h | 26 +- src/devices/cpu/tlcs900/tlcs900.cpp | 14 +- src/devices/cpu/tlcs900/tlcs900.h | 107 +- src/devices/cpu/tms1000/tms0270.cpp | 13 +- src/devices/cpu/tms1000/tms0270.h | 16 +- src/devices/cpu/tms1000/tms0970.cpp | 42 +- src/devices/cpu/tms1000/tms0970.h | 21 +- src/devices/cpu/tms1000/tms0980.cpp | 35 +- src/devices/cpu/tms1000/tms0980.h | 15 +- src/devices/cpu/tms1000/tms1000.cpp | 67 +- src/devices/cpu/tms1000/tms1000.h | 27 +- src/devices/cpu/tms1000/tms1100.cpp | 35 +- src/devices/cpu/tms1000/tms1100.h | 20 +- src/devices/cpu/tms1000/tms1400.cpp | 46 +- src/devices/cpu/tms1000/tms1400.h | 24 +- src/devices/cpu/tms1000/tms1k_base.cpp | 21 + src/devices/cpu/tms1000/tms1k_base.h | 40 +- src/devices/cpu/tms1000/tp0320.cpp | 11 +- src/devices/cpu/tms1000/tp0320.h | 10 +- src/devices/cpu/tms32010/tms32010.cpp | 25 +- src/devices/cpu/tms32010/tms32010.h | 23 +- src/devices/cpu/tms32025/tms32025.cpp | 28 +- src/devices/cpu/tms32025/tms32025.h | 19 +- src/devices/cpu/tms32031/tms32031.cpp | 14 +- src/devices/cpu/tms32031/tms32031.h | 40 +- src/devices/cpu/tms32051/tms32051.cpp | 18 +- src/devices/cpu/tms32051/tms32051.h | 16 +- src/devices/cpu/tms32082/tms32082.cpp | 10 +- src/devices/cpu/tms32082/tms32082.h | 12 +- src/devices/cpu/tms34010/34010ops.h | 8 +- src/devices/cpu/tms34010/tms34010.cpp | 81 +- src/devices/cpu/tms34010/tms34010.h | 210 ++- src/devices/cpu/tms57002/tms57002.cpp | 16 +- src/devices/cpu/tms57002/tms57002.h | 10 +- src/devices/cpu/tms7000/tms7000.cpp | 55 +- src/devices/cpu/tms7000/tms7000.h | 62 +- src/devices/cpu/tms9900/ti990_10.cpp | 4 +- src/devices/cpu/tms9900/ti990_10.h | 11 +- src/devices/cpu/tms9900/tms9900.cpp | 8 +- src/devices/cpu/tms9900/tms9900.h | 18 +- src/devices/cpu/tms9900/tms9980a.cpp | 4 +- src/devices/cpu/tms9900/tms9980a.h | 10 +- src/devices/cpu/tms9900/tms9995.cpp | 10 +- src/devices/cpu/tms9900/tms9995.h | 17 +- src/devices/cpu/ucom4/ucom4.cpp | 57 +- src/devices/cpu/ucom4/ucom4.h | 67 +- src/devices/cpu/unsp/unsp.cpp | 9 +- src/devices/cpu/unsp/unsp.h | 11 +- src/devices/cpu/upd7725/upd7725.cpp | 12 +- src/devices/cpu/upd7725/upd7725.h | 44 +- src/devices/cpu/upd7810/upd7810.cpp | 32 +- src/devices/cpu/upd7810/upd7810.h | 77 +- src/devices/cpu/v30mz/v30mz.cpp | 6 +- src/devices/cpu/v30mz/v30mz.h | 10 +- src/devices/cpu/v60/v60.cpp | 31 +- src/devices/cpu/v60/v60.h | 16 +- src/devices/cpu/v810/v810.cpp | 6 +- src/devices/cpu/v810/v810.h | 12 +- src/devices/cpu/z180/z180.cpp | 309 ++-- src/devices/cpu/z180/z180.h | 12 +- src/devices/cpu/z180/z180op.hxx | 10 +- src/devices/cpu/z180/z180ops.h | 14 +- src/devices/cpu/z8/z8.cpp | 26 +- src/devices/cpu/z8/z8.h | 36 +- src/devices/cpu/z80/kl5c80a12.cpp | 4 +- src/devices/cpu/z80/kl5c80a12.h | 11 +- src/devices/cpu/z80/tmpz84c011.cpp | 4 +- src/devices/cpu/z80/tmpz84c011.h | 10 +- src/devices/cpu/z80/tmpz84c015.cpp | 4 +- src/devices/cpu/z80/tmpz84c015.h | 10 +- src/devices/cpu/z80/z80.cpp | 18 +- src/devices/cpu/z80/z80.h | 14 +- src/devices/cpu/z8000/8000dasm.cpp | 22 +- src/devices/cpu/z8000/z8000.cpp | 71 +- src/devices/cpu/z8000/z8000.h | 51 +- src/devices/cpu/z8000/z8000cpu.h | 27 - src/devices/cpu/z8000/z8000ops.hxx | 30 +- src/devices/cpu/z8000/z8000tbl.hxx | 56 +- src/devices/imagedev/bitbngr.cpp | 4 +- src/devices/imagedev/bitbngr.h | 2 +- src/devices/imagedev/cassette.cpp | 4 +- src/devices/imagedev/cassette.h | 8 +- src/devices/imagedev/chd_cd.cpp | 15 +- src/devices/imagedev/chd_cd.h | 14 +- src/devices/imagedev/diablo.cpp | 7 +- src/devices/imagedev/diablo.h | 15 +- src/devices/imagedev/flopdrv.cpp | 37 +- src/devices/imagedev/flopdrv.h | 13 +- src/devices/imagedev/floppy.cpp | 190 +- src/devices/imagedev/floppy.h | 122 +- src/devices/imagedev/harddriv.cpp | 17 +- src/devices/imagedev/harddriv.h | 10 +- src/devices/imagedev/mfmhd.cpp | 24 +- src/devices/imagedev/mfmhd.h | 21 +- src/devices/imagedev/midiin.cpp | 4 +- src/devices/imagedev/midiin.h | 10 +- src/devices/imagedev/midiout.cpp | 4 +- src/devices/imagedev/midiout.h | 8 +- src/devices/imagedev/printer.cpp | 4 +- src/devices/imagedev/printer.h | 10 +- src/devices/imagedev/snapquik.cpp | 18 +- src/devices/imagedev/snapquik.h | 14 +- src/devices/machine/40105.cpp | 4 +- src/devices/machine/40105.h | 17 +- src/devices/machine/53c7xx.cpp | 49 +- src/devices/machine/53c7xx.h | 64 +- src/devices/machine/53c810.cpp | 8 +- src/devices/machine/53c810.h | 40 +- src/devices/machine/64h156.cpp | 42 +- src/devices/machine/64h156.h | 19 +- src/devices/machine/6522via.cpp | 4 +- src/devices/machine/6522via.h | 78 +- src/devices/machine/6525tpi.cpp | 4 +- src/devices/machine/6525tpi.h | 31 +- src/devices/machine/6532riot.cpp | 4 +- src/devices/machine/6532riot.h | 2 +- src/devices/machine/68153bim.cpp | 46 +- src/devices/machine/68153bim.h | 33 +- src/devices/machine/6821pia.cpp | 7 +- src/devices/machine/6821pia.h | 13 +- src/devices/machine/68230pit.cpp | 53 +- src/devices/machine/68230pit.h | 106 +- src/devices/machine/68307.cpp | 145 +- src/devices/machine/68307.h | 131 +- src/devices/machine/68307bus.cpp | 150 +- src/devices/machine/68307bus.h | 20 +- src/devices/machine/68307sim.cpp | 294 ++-- src/devices/machine/68307sim.h | 59 +- src/devices/machine/68307tmu.cpp | 198 ++- src/devices/machine/68307tmu.h | 41 +- src/devices/machine/68340.cpp | 77 +- src/devices/machine/68340.h | 55 +- src/devices/machine/68340dma.cpp | 32 +- src/devices/machine/68340dma.h | 11 +- src/devices/machine/68340ser.cpp | 31 +- src/devices/machine/68340ser.h | 11 +- src/devices/machine/68340sim.cpp | 453 ++--- src/devices/machine/68340sim.h | 56 +- src/devices/machine/68340tmu.cpp | 32 +- src/devices/machine/68340tmu.h | 11 +- src/devices/machine/6840ptm.cpp | 54 +- src/devices/machine/6840ptm.h | 16 +- src/devices/machine/6850acia.cpp | 68 +- src/devices/machine/6850acia.h | 21 +- src/devices/machine/68561mpcc.cpp | 28 +- src/devices/machine/68561mpcc.h | 49 +- src/devices/machine/7200fifo.cpp | 4 +- src/devices/machine/7200fifo.h | 17 +- src/devices/machine/7400.cpp | 4 +- src/devices/machine/7400.h | 19 +- src/devices/machine/7404.cpp | 4 +- src/devices/machine/7404.h | 23 +- src/devices/machine/74123.cpp | 20 +- src/devices/machine/74123.h | 13 +- src/devices/machine/74145.cpp | 4 +- src/devices/machine/74145.h | 32 +- src/devices/machine/74148.cpp | 19 +- src/devices/machine/74148.h | 10 +- src/devices/machine/74153.cpp | 7 +- src/devices/machine/74153.h | 14 +- src/devices/machine/74157.cpp | 12 +- src/devices/machine/74157.h | 18 +- src/devices/machine/74161.cpp | 20 +- src/devices/machine/74161.h | 35 +- src/devices/machine/74175.cpp | 12 +- src/devices/machine/74175.h | 37 +- src/devices/machine/74181.cpp | 4 +- src/devices/machine/74181.h | 11 +- src/devices/machine/7474.cpp | 4 +- src/devices/machine/7474.h | 16 +- src/devices/machine/8042kbdc.cpp | 4 +- src/devices/machine/8042kbdc.h | 36 +- src/devices/machine/82s129.cpp | 12 +- src/devices/machine/82s129.h | 26 +- src/devices/machine/8364_paula.cpp | 15 +- src/devices/machine/8364_paula.h | 19 +- src/devices/machine/8530scc.cpp | 5 +- src/devices/machine/8530scc.h | 10 +- src/devices/machine/aakart.cpp | 8 +- src/devices/machine/aakart.h | 40 +- src/devices/machine/adc0808.cpp | 7 +- src/devices/machine/adc0808.h | 79 +- src/devices/machine/adc083x.cpp | 28 +- src/devices/machine/adc083x.h | 33 +- src/devices/machine/adc1038.cpp | 5 +- src/devices/machine/adc1038.h | 22 +- src/devices/machine/adc1213x.cpp | 19 +- src/devices/machine/adc1213x.h | 28 +- src/devices/machine/aicartc.cpp | 8 +- src/devices/machine/aicartc.h | 25 +- src/devices/machine/akiko.cpp | 4 +- src/devices/machine/akiko.h | 37 +- src/devices/machine/am2847.cpp | 16 +- src/devices/machine/am2847.h | 18 +- src/devices/machine/am53cf96.cpp | 6 +- src/devices/machine/am53cf96.h | 56 +- src/devices/machine/am9517a.cpp | 201 +-- src/devices/machine/am9517a.h | 86 +- src/devices/machine/amigafdc.cpp | 91 +- src/devices/machine/amigafdc.h | 18 +- src/devices/machine/appldriv.cpp | 8 +- src/devices/machine/appldriv.h | 20 +- src/devices/machine/applefdc.cpp | 12 +- src/devices/machine/applefdc.h | 14 +- src/devices/machine/at28c16.cpp | 18 +- src/devices/machine/at28c16.h | 17 +- src/devices/machine/at29x.cpp | 33 +- src/devices/machine/at29x.h | 51 +- src/devices/machine/at45dbxx.cpp | 22 +- src/devices/machine/at45dbxx.h | 22 +- src/devices/machine/at_keybc.cpp | 5 +- src/devices/machine/at_keybc.h | 23 +- src/devices/machine/atadev.cpp | 5 +- src/devices/machine/atadev.h | 17 +- src/devices/machine/ataflash.cpp | 20 +- src/devices/machine/ataflash.h | 23 +- src/devices/machine/atahle.cpp | 7 +- src/devices/machine/atahle.h | 14 +- src/devices/machine/ataintf.cpp | 30 +- src/devices/machine/ataintf.h | 27 +- src/devices/machine/atapicdr.cpp | 12 +- src/devices/machine/atapicdr.h | 19 +- src/devices/machine/atapihle.cpp | 4 +- src/devices/machine/atapihle.h | 17 +- src/devices/machine/autoconfig.h | 8 +- src/devices/machine/ay31015.cpp | 12 +- src/devices/machine/ay31015.h | 52 +- src/devices/machine/bankdev.cpp | 4 +- src/devices/machine/bankdev.h | 12 +- src/devices/machine/bcreader.cpp | 4 +- src/devices/machine/bcreader.h | 8 +- src/devices/machine/buffer.cpp | 6 +- src/devices/machine/buffer.h | 8 +- src/devices/machine/cdp1852.cpp | 7 +- src/devices/machine/cdp1852.h | 22 +- src/devices/machine/cdp1871.cpp | 4 +- src/devices/machine/cdp1871.h | 38 +- src/devices/machine/cdp1879.cpp | 4 +- src/devices/machine/cdp1879.h | 10 +- src/devices/machine/clock.cpp | 4 +- src/devices/machine/clock.h | 10 +- src/devices/machine/com8116.cpp | 17 +- src/devices/machine/com8116.h | 18 +- src/devices/machine/corvushd.cpp | 209 ++- src/devices/machine/corvushd.h | 177 +- src/devices/machine/cr511b.cpp | 4 +- src/devices/machine/cr511b.h | 34 +- src/devices/machine/cr589.cpp | 8 +- src/devices/machine/cr589.h | 11 +- src/devices/machine/cs4031.cpp | 84 +- src/devices/machine/cs4031.h | 37 +- src/devices/machine/cs8221.cpp | 25 +- src/devices/machine/cs8221.h | 11 +- src/devices/machine/cxd1095.cpp | 8 +- src/devices/machine/cxd1095.h | 14 +- src/devices/machine/diablo_hd.cpp | 193 +- src/devices/machine/diablo_hd.h | 19 +- src/devices/machine/dm9334.cpp | 4 +- src/devices/machine/dm9334.h | 29 +- src/devices/machine/dmac.cpp | 134 +- src/devices/machine/dmac.h | 70 +- src/devices/machine/dp8390.cpp | 34 +- src/devices/machine/dp8390.h | 40 +- src/devices/machine/ds1204.cpp | 8 +- src/devices/machine/ds1204.h | 13 +- src/devices/machine/ds1205.cpp | 8 +- src/devices/machine/ds1205.h | 13 +- src/devices/machine/ds128x.cpp | 4 +- src/devices/machine/ds128x.h | 8 +- src/devices/machine/ds1302.cpp | 27 +- src/devices/machine/ds1302.h | 12 +- src/devices/machine/ds1315.cpp | 4 +- src/devices/machine/ds1315.h | 28 +- src/devices/machine/ds1386.cpp | 12 +- src/devices/machine/ds1386.h | 32 +- src/devices/machine/ds2401.cpp | 6 +- src/devices/machine/ds2401.h | 10 +- src/devices/machine/ds2404.cpp | 4 +- src/devices/machine/ds2404.h | 15 +- src/devices/machine/ds75160a.cpp | 4 +- src/devices/machine/ds75160a.h | 18 +- src/devices/machine/ds75161a.cpp | 4 +- src/devices/machine/ds75161a.h | 44 +- src/devices/machine/e0516.cpp | 8 +- src/devices/machine/e0516.h | 15 +- src/devices/machine/e05a03.cpp | 4 +- src/devices/machine/e05a03.h | 22 +- src/devices/machine/e05a30.cpp | 12 +- src/devices/machine/e05a30.h | 29 +- src/devices/machine/eeprom.cpp | 14 +- src/devices/machine/eeprom.h | 16 +- src/devices/machine/eeprompar.cpp | 13 +- src/devices/machine/eeprompar.h | 22 +- src/devices/machine/eepromser.cpp | 174 +- src/devices/machine/eepromser.h | 40 +- src/devices/machine/er2055.cpp | 4 +- src/devices/machine/er2055.h | 11 +- src/devices/machine/f3853.cpp | 15 +- src/devices/machine/f3853.h | 25 +- src/devices/machine/fdc37c665gt.cpp | 4 +- src/devices/machine/fdc37c665gt.h | 8 +- src/devices/machine/fdc_pll.h | 12 +- src/devices/machine/fga002.cpp | 28 +- src/devices/machine/fga002.h | 44 +- src/devices/machine/gayle.cpp | 4 +- src/devices/machine/gayle.h | 30 +- src/devices/machine/gen_latch.cpp | 22 +- src/devices/machine/gen_latch.h | 30 +- src/devices/machine/genpc.cpp | 31 +- src/devices/machine/genpc.h | 20 +- src/devices/machine/gt64xxx.cpp | 309 ++-- src/devices/machine/gt64xxx.h | 170 +- src/devices/machine/hd63450.cpp | 22 +- src/devices/machine/hd63450.h | 77 +- src/devices/machine/hd64610.cpp | 29 +- src/devices/machine/hd64610.h | 15 +- src/devices/machine/hdc92x4.cpp | 41 +- src/devices/machine/hdc92x4.h | 80 +- src/devices/machine/hp_taco.cpp | 86 +- src/devices/machine/hp_taco.h | 47 +- src/devices/machine/i2cmem.cpp | 8 +- src/devices/machine/i2cmem.h | 10 +- src/devices/machine/i6300esb.cpp | 8 +- src/devices/machine/i6300esb.h | 10 +- src/devices/machine/i80130.cpp | 4 +- src/devices/machine/i80130.h | 24 +- src/devices/machine/i8155.cpp | 4 +- src/devices/machine/i8155.h | 24 +- src/devices/machine/i8212.cpp | 27 +- src/devices/machine/i8212.h | 38 +- src/devices/machine/i8214.cpp | 27 +- src/devices/machine/i8214.h | 19 +- src/devices/machine/i82371sb.cpp | 4 +- src/devices/machine/i82371sb.h | 12 +- src/devices/machine/i8243.cpp | 9 +- src/devices/machine/i8243.h | 14 +- src/devices/machine/i82439hx.cpp | 4 +- src/devices/machine/i82439hx.h | 10 +- src/devices/machine/i82439tx.cpp | 4 +- src/devices/machine/i82439tx.h | 10 +- src/devices/machine/i8251.cpp | 29 +- src/devices/machine/i8251.h | 37 +- src/devices/machine/i82541.cpp | 4 +- src/devices/machine/i82541.h | 8 +- src/devices/machine/i8255.cpp | 63 +- src/devices/machine/i8255.h | 25 +- src/devices/machine/i8257.cpp | 30 +- src/devices/machine/i8257.h | 47 +- src/devices/machine/i8271.cpp | 4 +- src/devices/machine/i8271.h | 19 +- src/devices/machine/i8279.cpp | 13 +- src/devices/machine/i8279.h | 26 +- src/devices/machine/i82875p.cpp | 12 +- src/devices/machine/i82875p.h | 16 +- src/devices/machine/i8355.cpp | 16 +- src/devices/machine/i8355.h | 20 +- src/devices/machine/idectrl.cpp | 41 +- src/devices/machine/idectrl.h | 62 +- src/devices/machine/idehd.cpp | 13 +- src/devices/machine/idehd.h | 21 +- src/devices/machine/ie15.cpp | 48 +- src/devices/machine/ie15.h | 13 +- src/devices/machine/ie15_kbd.cpp | 12 +- src/devices/machine/ie15_kbd.h | 70 +- src/devices/machine/im6402.cpp | 34 +- src/devices/machine/im6402.h | 23 +- src/devices/machine/input_merger.cpp | 13 +- src/devices/machine/input_merger.h | 35 +- src/devices/machine/ins8154.cpp | 81 +- src/devices/machine/ins8154.h | 20 +- src/devices/machine/ins8250.cpp | 56 +- src/devices/machine/ins8250.h | 54 +- src/devices/machine/intelfsh.cpp | 140 +- src/devices/machine/intelfsh.h | 93 +- src/devices/machine/jvsdev.cpp | 4 +- src/devices/machine/jvsdev.h | 12 +- src/devices/machine/jvshost.cpp | 4 +- src/devices/machine/jvshost.h | 13 +- src/devices/machine/k033906.cpp | 4 +- src/devices/machine/k033906.h | 11 +- src/devices/machine/k053252.cpp | 4 +- src/devices/machine/k053252.h | 12 +- src/devices/machine/k054321.cpp | 4 +- src/devices/machine/k054321.h | 10 +- src/devices/machine/k056230.cpp | 4 +- src/devices/machine/k056230.h | 12 +- src/devices/machine/kb3600.cpp | 13 +- src/devices/machine/kb3600.h | 50 +- src/devices/machine/keyboard.cpp | 43 +- src/devices/machine/keyboard.h | 70 +- src/devices/machine/keyboard.ipp | 6 +- src/devices/machine/kr2376.cpp | 8 +- src/devices/machine/kr2376.h | 47 +- src/devices/machine/laserdsc.cpp | 20 +- src/devices/machine/laserdsc.h | 37 +- src/devices/machine/latch.cpp | 112 +- src/devices/machine/latch.h | 59 +- src/devices/machine/latch8.cpp | 41 +- src/devices/machine/latch8.h | 77 +- src/devices/machine/lc89510.cpp | 6 +- src/devices/machine/lc89510.h | 10 +- src/devices/machine/ldp1000.cpp | 6 +- src/devices/machine/ldp1000.h | 20 +- src/devices/machine/ldp1450.cpp | 6 +- src/devices/machine/ldp1450.h | 22 +- src/devices/machine/ldpr8210.cpp | 23 +- src/devices/machine/ldpr8210.h | 47 +- src/devices/machine/ldstub.cpp | 16 +- src/devices/machine/ldstub.h | 18 +- src/devices/machine/ldv1000.cpp | 4 +- src/devices/machine/ldv1000.h | 13 +- src/devices/machine/ldvp931.cpp | 4 +- src/devices/machine/ldvp931.h | 11 +- src/devices/machine/legscsi.cpp | 20 +- src/devices/machine/legscsi.h | 12 +- src/devices/machine/lh5810.cpp | 38 +- src/devices/machine/lh5810.h | 45 +- src/devices/machine/linflash.cpp | 28 +- src/devices/machine/linflash.h | 22 +- src/devices/machine/lpc-acpi.cpp | 4 +- src/devices/machine/lpc-acpi.h | 10 +- src/devices/machine/lpc-pit.cpp | 4 +- src/devices/machine/lpc-pit.h | 10 +- src/devices/machine/lpc-rtc.cpp | 4 +- src/devices/machine/lpc-rtc.h | 10 +- src/devices/machine/lpc.cpp | 9 - src/devices/machine/lpc.h | 13 +- src/devices/machine/lpci.cpp | 22 +- src/devices/machine/lpci.h | 10 +- src/devices/machine/m6m80011ap.cpp | 12 +- src/devices/machine/m6m80011ap.h | 44 +- src/devices/machine/mb14241.cpp | 4 +- src/devices/machine/mb14241.h | 14 +- src/devices/machine/mb3773.cpp | 4 +- src/devices/machine/mb3773.h | 13 +- src/devices/machine/mb8421.cpp | 4 +- src/devices/machine/mb8421.h | 14 +- src/devices/machine/mb87078.cpp | 4 +- src/devices/machine/mb87078.h | 15 +- src/devices/machine/mb8795.cpp | 10 +- src/devices/machine/mb8795.h | 15 +- src/devices/machine/mb89352.cpp | 43 +- src/devices/machine/mb89352.h | 51 +- src/devices/machine/mb89363b.cpp | 5 +- src/devices/machine/mb89363b.h | 44 +- src/devices/machine/mb89371.cpp | 6 +- src/devices/machine/mb89371.h | 11 +- src/devices/machine/mc146818.cpp | 33 +- src/devices/machine/mc146818.h | 20 +- src/devices/machine/mc2661.cpp | 24 +- src/devices/machine/mc2661.h | 28 +- src/devices/machine/mc68328.cpp | 376 +++- src/devices/machine/mc68328.h | 761 +++----- src/devices/machine/mc6843.cpp | 92 +- src/devices/machine/mc6843.h | 13 +- src/devices/machine/mc6846.cpp | 59 +- src/devices/machine/mc6846.h | 23 +- src/devices/machine/mc6852.cpp | 36 +- src/devices/machine/mc6852.h | 20 +- src/devices/machine/mc6854.cpp | 115 +- src/devices/machine/mc6854.h | 40 +- src/devices/machine/mc68681.cpp | 41 +- src/devices/machine/mc68681.h | 42 +- src/devices/machine/mc68901.cpp | 151 +- src/devices/machine/mc68901.h | 30 +- src/devices/machine/mccs1850.cpp | 38 +- src/devices/machine/mccs1850.h | 18 +- src/devices/machine/mcf5206e.cpp | 4 +- src/devices/machine/mcf5206e.h | 63 +- src/devices/machine/microtch.cpp | 19 +- src/devices/machine/microtch.h | 18 +- src/devices/machine/mm5740.cpp | 4 +- src/devices/machine/mm5740.h | 85 +- src/devices/machine/mm58167.cpp | 4 +- src/devices/machine/mm58167.h | 12 +- src/devices/machine/mm58274c.cpp | 8 +- src/devices/machine/mm58274c.h | 10 +- src/devices/machine/mm74c922.cpp | 21 +- src/devices/machine/mm74c922.h | 24 +- src/devices/machine/mos6526.cpp | 32 +- src/devices/machine/mos6526.h | 39 +- src/devices/machine/mos6529.cpp | 29 +- src/devices/machine/mos6529.h | 24 +- src/devices/machine/mos6530.cpp | 4 +- src/devices/machine/mos6530.h | 44 +- src/devices/machine/mos6530n.cpp | 345 ++-- src/devices/machine/mos6530n.h | 197 +-- src/devices/machine/mos6551.cpp | 32 +- src/devices/machine/mos6551.h | 20 +- src/devices/machine/mos6702.cpp | 13 +- src/devices/machine/mos6702.h | 17 +- src/devices/machine/mos8706.cpp | 13 +- src/devices/machine/mos8706.h | 15 +- src/devices/machine/mos8722.cpp | 14 +- src/devices/machine/mos8722.h | 22 +- src/devices/machine/mos8726.cpp | 13 +- src/devices/machine/mos8726.h | 16 +- src/devices/machine/mpu401.cpp | 4 +- src/devices/machine/mpu401.h | 28 +- src/devices/machine/msm5832.cpp | 30 +- src/devices/machine/msm5832.h | 18 +- src/devices/machine/msm58321.cpp | 35 +- src/devices/machine/msm58321.h | 16 +- src/devices/machine/msm6242.cpp | 61 +- src/devices/machine/msm6242.h | 36 +- src/devices/machine/msm6253.cpp | 16 +- src/devices/machine/msm6253.h | 32 +- src/devices/machine/ncr5380.cpp | 26 +- src/devices/machine/ncr5380.h | 12 +- src/devices/machine/ncr5380n.cpp | 13 +- src/devices/machine/ncr5380n.h | 14 +- src/devices/machine/ncr5390.cpp | 11 +- src/devices/machine/ncr5390.h | 14 +- src/devices/machine/ncr539x.cpp | 132 +- src/devices/machine/ncr539x.h | 20 +- src/devices/machine/netlist.cpp | 611 ++++--- src/devices/machine/netlist.h | 259 ++- src/devices/machine/nmc9306.cpp | 33 +- src/devices/machine/nmc9306.h | 22 +- src/devices/machine/nsc810.cpp | 90 +- src/devices/machine/nsc810.h | 31 +- src/devices/machine/nscsi_bus.cpp | 20 +- src/devices/machine/nscsi_bus.h | 34 +- src/devices/machine/nscsi_cb.cpp | 4 +- src/devices/machine/nscsi_cb.h | 30 +- src/devices/machine/nscsi_cd.cpp | 4 +- src/devices/machine/nscsi_cd.h | 10 +- src/devices/machine/nscsi_hd.cpp | 8 +- src/devices/machine/nscsi_hd.h | 13 +- src/devices/machine/nscsi_s1410.cpp | 4 +- src/devices/machine/nscsi_s1410.h | 10 +- src/devices/machine/nvram.cpp | 8 +- src/devices/machine/nvram.h | 28 +- src/devices/machine/pc_fdc.cpp | 12 +- src/devices/machine/pc_fdc.h | 24 +- src/devices/machine/pc_lpt.cpp | 4 +- src/devices/machine/pc_lpt.h | 12 +- src/devices/machine/pccard.cpp | 4 +- src/devices/machine/pccard.h | 13 +- src/devices/machine/pcf8593.cpp | 8 +- src/devices/machine/pcf8593.h | 10 +- src/devices/machine/pci-apic.cpp | 4 +- src/devices/machine/pci-apic.h | 10 +- src/devices/machine/pci-ide.cpp | 4 +- src/devices/machine/pci-ide.h | 13 +- src/devices/machine/pci-sata.cpp | 4 +- src/devices/machine/pci-sata.h | 10 +- src/devices/machine/pci-smbus.cpp | 4 +- src/devices/machine/pci-smbus.h | 8 +- src/devices/machine/pci-usb.cpp | 12 +- src/devices/machine/pci-usb.h | 14 +- src/devices/machine/pci.cpp | 37 +- src/devices/machine/pci.h | 67 +- src/devices/machine/pci9050.cpp | 4 +- src/devices/machine/pci9050.h | 18 +- src/devices/machine/pckeybrd.cpp | 81 +- src/devices/machine/pckeybrd.h | 49 +- src/devices/machine/pdc.cpp | 4 +- src/devices/machine/pdc.h | 17 +- src/devices/machine/phi.cpp | 21 +- src/devices/machine/phi.h | 25 +- src/devices/machine/pic8259.cpp | 84 +- src/devices/machine/pic8259.h | 18 +- src/devices/machine/pit8253.cpp | 19 +- src/devices/machine/pit8253.h | 22 +- src/devices/machine/pla.cpp | 23 +- src/devices/machine/pla.h | 67 +- src/devices/machine/r10696.cpp | 17 +- src/devices/machine/r10696.h | 20 +- src/devices/machine/r10788.cpp | 55 +- src/devices/machine/r10788.h | 18 +- src/devices/machine/ra17xx.cpp | 21 +- src/devices/machine/ra17xx.h | 29 +- src/devices/machine/ram.cpp | 8 +- src/devices/machine/ram.h | 17 +- src/devices/machine/rescap.h | 6 +- src/devices/machine/rf5c296.cpp | 4 +- src/devices/machine/rf5c296.h | 10 +- src/devices/machine/roc10937.cpp | 66 +- src/devices/machine/roc10937.h | 65 +- src/devices/machine/rp5c01.cpp | 4 +- src/devices/machine/rp5c01.h | 14 +- src/devices/machine/rp5c15.cpp | 38 +- src/devices/machine/rp5c15.h | 16 +- src/devices/machine/rp5h01.cpp | 4 +- src/devices/machine/rp5h01.h | 20 +- src/devices/machine/rtc4543.cpp | 80 +- src/devices/machine/rtc4543.h | 29 +- src/devices/machine/rtc65271.cpp | 8 +- src/devices/machine/rtc65271.h | 30 +- src/devices/machine/rtc9701.cpp | 18 +- src/devices/machine/rtc9701.h | 59 +- src/devices/machine/s2636.cpp | 6 +- src/devices/machine/s2636.h | 27 +- src/devices/machine/s3520cf.cpp | 7 +- src/devices/machine/s3520cf.h | 47 +- src/devices/machine/s3c2400.cpp | 170 +- src/devices/machine/s3c2400.h | 554 +----- src/devices/machine/s3c2410.cpp | 236 ++- src/devices/machine/s3c2410.h | 649 ++----- src/devices/machine/s3c2440.cpp | 241 ++- src/devices/machine/s3c2440.h | 624 +------ src/devices/machine/s3c24xx.cpp | 190 ++ src/devices/machine/s3c24xx.h | 309 ++++ src/devices/machine/s3c24xx.hxx | 1661 +++++++----------- src/devices/machine/s3c44b0.cpp | 206 ++- src/devices/machine/s3c44b0.h | 845 ++++----- src/devices/machine/scnxx562.cpp | 614 ++++--- src/devices/machine/scnxx562.h | 100 +- src/devices/machine/serflash.cpp | 20 +- src/devices/machine/serflash.h | 43 +- src/devices/machine/smartmed.cpp | 73 +- src/devices/machine/smartmed.h | 231 +-- src/devices/machine/smc91c9x.cpp | 14 +- src/devices/machine/smc91c9x.h | 43 +- src/devices/machine/sonydriv.cpp | 7 +- src/devices/machine/sonydriv.h | 23 +- src/devices/machine/spchrom.cpp | 4 +- src/devices/machine/spchrom.h | 11 +- src/devices/machine/steppers.cpp | 12 +- src/devices/machine/steppers.h | 37 +- src/devices/machine/strata.cpp | 9 +- src/devices/machine/strata.h | 14 +- src/devices/machine/t10mmc.h | 8 +- src/devices/machine/t10sbc.h | 8 +- src/devices/machine/t10spc.h | 10 +- src/devices/machine/tc009xlvc.cpp | 4 +- src/devices/machine/tc009xlvc.h | 33 +- src/devices/machine/terminal.cpp | 54 +- src/devices/machine/terminal.h | 39 +- src/devices/machine/timekpr.cpp | 28 +- src/devices/machine/timekpr.h | 34 +- src/devices/machine/tmc0430.cpp | 8 +- src/devices/machine/tmc0430.h | 20 +- src/devices/machine/tmp68301.cpp | 4 +- src/devices/machine/tmp68301.h | 39 +- src/devices/machine/tms1024.cpp | 21 +- src/devices/machine/tms1024.h | 57 +- src/devices/machine/tms5501.cpp | 4 +- src/devices/machine/tms5501.h | 19 +- src/devices/machine/tms6100.cpp | 22 +- src/devices/machine/tms6100.h | 18 +- src/devices/machine/tms9901.cpp | 275 ++- src/devices/machine/tms9901.h | 141 +- src/devices/machine/tms9902.cpp | 102 +- src/devices/machine/tms9902.h | 90 +- src/devices/machine/upd1990a.cpp | 53 +- src/devices/machine/upd1990a.h | 26 +- src/devices/machine/upd4701.cpp | 7 +- src/devices/machine/upd4701.h | 15 +- src/devices/machine/upd4992.cpp | 7 +- src/devices/machine/upd4992.h | 24 +- src/devices/machine/upd7002.cpp | 4 +- src/devices/machine/upd7002.h | 28 +- src/devices/machine/upd71071.cpp | 534 +++--- src/devices/machine/upd71071.h | 147 +- src/devices/machine/upd765.cpp | 54 +- src/devices/machine/upd765.h | 53 +- src/devices/machine/v3021.cpp | 6 +- src/devices/machine/v3021.h | 33 +- src/devices/machine/vrc4373.cpp | 147 +- src/devices/machine/vrc4373.h | 76 +- src/devices/machine/vrc5074.cpp | 110 +- src/devices/machine/vrc5074.h | 123 +- src/devices/machine/vt82c496.cpp | 6 +- src/devices/machine/vt82c496.h | 11 +- src/devices/machine/vt83c461.cpp | 17 +- src/devices/machine/vt83c461.h | 14 +- src/devices/machine/watchdog.cpp | 10 +- src/devices/machine/watchdog.h | 10 +- src/devices/machine/wd11c00_17.cpp | 75 +- src/devices/machine/wd11c00_17.h | 34 +- src/devices/machine/wd2010.cpp | 105 +- src/devices/machine/wd2010.h | 41 +- src/devices/machine/wd33c93.cpp | 21 +- src/devices/machine/wd33c93.h | 97 +- src/devices/machine/wd7600.cpp | 34 +- src/devices/machine/wd7600.h | 28 +- src/devices/machine/wd_fdc.cpp | 320 ++-- src/devices/machine/wd_fdc.h | 198 +-- src/devices/machine/wozfdc.cpp | 33 +- src/devices/machine/wozfdc.h | 62 +- src/devices/machine/x2212.cpp | 39 +- src/devices/machine/x2212.h | 20 +- src/devices/machine/x76f041.cpp | 4 +- src/devices/machine/x76f041.h | 10 +- src/devices/machine/x76f100.cpp | 4 +- src/devices/machine/x76f100.h | 17 +- src/devices/machine/ym2148.cpp | 6 +- src/devices/machine/ym2148.h | 22 +- src/devices/machine/z80ctc.cpp | 4 +- src/devices/machine/z80ctc.h | 18 +- src/devices/machine/z80dart.cpp | 293 ++-- src/devices/machine/z80dart.h | 127 +- src/devices/machine/z80dma.cpp | 147 +- src/devices/machine/z80dma.h | 23 +- src/devices/machine/z80pio.cpp | 5 +- src/devices/machine/z80pio.h | 25 +- src/devices/machine/z80scc.cpp | 118 +- src/devices/machine/z80scc.h | 120 +- src/devices/machine/z80sio.cpp | 84 +- src/devices/machine/z80sio.h | 215 +-- src/devices/machine/z80sti.cpp | 122 +- src/devices/machine/z80sti.h | 28 +- src/devices/machine/z8536.cpp | 186 +- src/devices/machine/z8536.h | 26 +- src/devices/sound/2203intf.cpp | 73 +- src/devices/sound/2203intf.h | 35 +- src/devices/sound/2608intf.cpp | 77 +- src/devices/sound/2608intf.h | 37 +- src/devices/sound/2610intf.cpp | 88 +- src/devices/sound/2610intf.h | 44 +- src/devices/sound/2612intf.cpp | 53 +- src/devices/sound/2612intf.h | 39 +- src/devices/sound/262intf.cpp | 44 +- src/devices/sound/262intf.h | 37 +- src/devices/sound/315-5641.cpp | 4 +- src/devices/sound/315-5641.h | 19 +- src/devices/sound/3526intf.cpp | 47 +- src/devices/sound/3526intf.h | 32 +- src/devices/sound/3812intf.cpp | 49 +- src/devices/sound/3812intf.h | 31 +- src/devices/sound/8950intf.cpp | 104 +- src/devices/sound/8950intf.h | 70 +- src/devices/sound/ad1848.cpp | 6 +- src/devices/sound/ad1848.h | 29 +- src/devices/sound/aica.cpp | 52 +- src/devices/sound/aica.h | 134 +- src/devices/sound/aicadsp.cpp | 73 +- src/devices/sound/aicadsp.h | 18 +- src/devices/sound/asc.cpp | 45 +- src/devices/sound/asc.h | 65 +- src/devices/sound/astrocde.cpp | 4 +- src/devices/sound/astrocde.h | 25 +- src/devices/sound/awacs.cpp | 11 +- src/devices/sound/awacs.h | 15 +- src/devices/sound/ay8910.cpp | 127 +- src/devices/sound/ay8910.h | 62 +- src/devices/sound/beep.cpp | 12 +- src/devices/sound/beep.h | 12 +- src/devices/sound/bsmt2000.cpp | 43 +- src/devices/sound/bsmt2000.h | 23 +- src/devices/sound/c140.cpp | 30 +- src/devices/sound/c140.h | 122 +- src/devices/sound/c352.cpp | 14 +- src/devices/sound/c352.h | 36 +- src/devices/sound/c6280.cpp | 7 +- src/devices/sound/c6280.h | 18 +- src/devices/sound/cdda.cpp | 8 +- src/devices/sound/cdda.h | 19 +- src/devices/sound/cdp1863.cpp | 18 +- src/devices/sound/cdp1863.h | 12 +- src/devices/sound/cdp1864.cpp | 36 +- src/devices/sound/cdp1864.h | 102 +- src/devices/sound/cdp1869.cpp | 52 +- src/devices/sound/cdp1869.h | 157 +- src/devices/sound/cem3394.cpp | 56 +- src/devices/sound/cem3394.h | 71 +- src/devices/sound/dac.cpp | 4 +- src/devices/sound/dac.h | 116 +- src/devices/sound/dac76.cpp | 4 +- src/devices/sound/dac76.h | 10 +- src/devices/sound/dave.cpp | 8 +- src/devices/sound/dave.h | 14 +- src/devices/sound/digitalk.cpp | 12 +- src/devices/sound/digitalk.h | 30 +- src/devices/sound/disc_cls.h | 8 +- src/devices/sound/disc_dev.h | 8 +- src/devices/sound/disc_flt.h | 8 +- src/devices/sound/disc_mth.h | 8 +- src/devices/sound/disc_wav.h | 8 +- src/devices/sound/discrete.cpp | 13 +- src/devices/sound/discrete.h | 12 +- src/devices/sound/dmadac.cpp | 19 +- src/devices/sound/dmadac.h | 14 +- src/devices/sound/es1373.cpp | 64 +- src/devices/sound/es1373.h | 117 +- src/devices/sound/es5503.cpp | 12 +- src/devices/sound/es5503.h | 18 +- src/devices/sound/es5506.cpp | 36 +- src/devices/sound/es5506.h | 140 +- src/devices/sound/es8712.cpp | 6 +- src/devices/sound/es8712.h | 34 +- src/devices/sound/esqpump.cpp | 21 +- src/devices/sound/esqpump.h | 15 +- src/devices/sound/flt_rc.cpp | 18 +- src/devices/sound/flt_rc.h | 27 +- src/devices/sound/flt_vol.cpp | 6 +- src/devices/sound/flt_vol.h | 14 +- src/devices/sound/fm.cpp | 621 +++---- src/devices/sound/fm.h | 60 +- src/devices/sound/fm2612.cpp | 63 +- src/devices/sound/fmopl.cpp | 2132 ++++++++++++----------- src/devices/sound/fmopl.h | 52 +- src/devices/sound/gaelco.cpp | 26 +- src/devices/sound/gaelco.h | 55 +- src/devices/sound/gb.cpp | 16 +- src/devices/sound/gb.h | 17 +- src/devices/sound/hc55516.cpp | 33 +- src/devices/sound/hc55516.h | 23 +- src/devices/sound/i5000.cpp | 7 +- src/devices/sound/i5000.h | 13 +- src/devices/sound/ics2115.cpp | 14 +- src/devices/sound/ics2115.h | 167 +- src/devices/sound/iremga20.cpp | 4 +- src/devices/sound/iremga20.h | 50 +- src/devices/sound/k005289.cpp | 18 +- src/devices/sound/k005289.h | 27 +- src/devices/sound/k007232.cpp | 10 +- src/devices/sound/k007232.h | 21 +- src/devices/sound/k051649.cpp | 45 +- src/devices/sound/k051649.h | 70 +- src/devices/sound/k053260.cpp | 45 +- src/devices/sound/k053260.h | 56 +- src/devices/sound/k054539.cpp | 13 +- src/devices/sound/k054539.h | 35 +- src/devices/sound/k056800.cpp | 10 +- src/devices/sound/k056800.h | 21 +- src/devices/sound/l7a1045_l6028_dsp_a.cpp | 8 +- src/devices/sound/l7a1045_l6028_dsp_a.h | 42 +- src/devices/sound/lmc1992.cpp | 30 +- src/devices/sound/lmc1992.h | 12 +- src/devices/sound/mas3507d.cpp | 9 +- src/devices/sound/mas3507d.h | 10 +- src/devices/sound/mea8000.cpp | 52 +- src/devices/sound/mea8000.h | 82 +- src/devices/sound/mm5837.cpp | 4 +- src/devices/sound/mm5837.h | 14 +- src/devices/sound/mos6560.cpp | 28 +- src/devices/sound/mos6560.h | 27 +- src/devices/sound/mos6581.cpp | 42 +- src/devices/sound/mos6581.h | 40 +- src/devices/sound/mos7360.cpp | 20 +- src/devices/sound/mos7360.h | 48 +- src/devices/sound/mpeg_audio.h | 8 +- src/devices/sound/msm5205.cpp | 12 +- src/devices/sound/msm5205.h | 71 +- src/devices/sound/msm5232.cpp | 11 +- src/devices/sound/msm5232.h | 72 +- src/devices/sound/multipcm.cpp | 16 +- src/devices/sound/multipcm.h | 18 +- src/devices/sound/n63701x.cpp | 10 +- src/devices/sound/n63701x.h | 47 +- src/devices/sound/namco.cpp | 16 +- src/devices/sound/namco.h | 56 +- src/devices/sound/nes_apu.cpp | 94 +- src/devices/sound/nes_apu.h | 54 +- src/devices/sound/nes_defs.h | 287 ++- src/devices/sound/nile.cpp | 4 +- src/devices/sound/nile.h | 16 +- src/devices/sound/okiadpcm.h | 8 +- src/devices/sound/okim6258.cpp | 16 +- src/devices/sound/okim6258.h | 74 +- src/devices/sound/okim6295.cpp | 4 +- src/devices/sound/okim6295.h | 46 +- src/devices/sound/okim6376.cpp | 56 +- src/devices/sound/okim6376.h | 45 +- src/devices/sound/okim9810.cpp | 30 +- src/devices/sound/okim9810.h | 63 +- src/devices/sound/pcd3311.cpp | 12 +- src/devices/sound/pcd3311.h | 18 +- src/devices/sound/pci-ac97.cpp | 4 +- src/devices/sound/pci-ac97.h | 12 +- src/devices/sound/pokey.cpp | 214 +-- src/devices/sound/pokey.h | 83 +- src/devices/sound/qs1000.cpp | 4 +- src/devices/sound/qs1000.h | 61 +- src/devices/sound/qsound.cpp | 6 +- src/devices/sound/qsound.h | 15 +- src/devices/sound/rf5c400.cpp | 275 ++- src/devices/sound/rf5c400.h | 121 +- src/devices/sound/rf5c68.cpp | 53 +- src/devices/sound/rf5c68.h | 73 +- src/devices/sound/s14001a.cpp | 193 +- src/devices/sound/s14001a.h | 38 +- src/devices/sound/saa1099.cpp | 34 +- src/devices/sound/saa1099.h | 88 +- src/devices/sound/samples.cpp | 21 +- src/devices/sound/samples.h | 38 +- src/devices/sound/sb0400.cpp | 4 +- src/devices/sound/sb0400.h | 8 +- src/devices/sound/scsp.cpp | 41 +- src/devices/sound/scsp.h | 116 +- src/devices/sound/scspdsp.cpp | 397 ++--- src/devices/sound/scspdsp.h | 18 +- src/devices/sound/segapcm.cpp | 4 +- src/devices/sound/segapcm.h | 42 +- src/devices/sound/sid.cpp | 325 ++-- src/devices/sound/sid.h | 24 +- src/devices/sound/side6581.h | 8 +- src/devices/sound/sidenvel.cpp | 7 +- src/devices/sound/sidenvel.h | 8 +- src/devices/sound/sidvoice.cpp | 520 +++--- src/devices/sound/sidvoice.h | 49 +- src/devices/sound/sidw6581.h | 8 +- src/devices/sound/sidw8580.h | 9 +- src/devices/sound/sn76477.cpp | 96 +- src/devices/sound/sn76477.h | 14 +- src/devices/sound/sn76496.cpp | 116 +- src/devices/sound/sn76496.h | 51 +- src/devices/sound/snkwave.cpp | 19 +- src/devices/sound/snkwave.h | 25 +- src/devices/sound/sp0250.cpp | 4 +- src/devices/sound/sp0250.h | 18 +- src/devices/sound/sp0256.cpp | 257 ++- src/devices/sound/sp0256.h | 111 +- src/devices/sound/spkrdev.cpp | 11 +- src/devices/sound/spkrdev.h | 23 +- src/devices/sound/spu.cpp | 54 +- src/devices/sound/spu.h | 47 +- src/devices/sound/spu_tables.cpp | 33 +- src/devices/sound/spureverb.cpp | 20 +- src/devices/sound/spureverb.h | 131 +- src/devices/sound/st0016.cpp | 26 +- src/devices/sound/st0016.h | 24 +- src/devices/sound/t6721a.cpp | 13 +- src/devices/sound/t6721a.h | 20 +- src/devices/sound/t6w28.cpp | 7 +- src/devices/sound/t6w28.h | 14 +- src/devices/sound/tc8830f.cpp | 4 +- src/devices/sound/tc8830f.h | 14 +- src/devices/sound/tiaintf.cpp | 4 +- src/devices/sound/tiaintf.h | 20 +- src/devices/sound/tiasound.cpp | 6 +- src/devices/sound/tiasound.h | 10 +- src/devices/sound/tms3615.cpp | 28 +- src/devices/sound/tms3615.h | 44 +- src/devices/sound/tms36xx.cpp | 36 +- src/devices/sound/tms36xx.h | 50 +- src/devices/sound/tms5110.cpp | 250 +-- src/devices/sound/tms5110.h | 132 +- src/devices/sound/tms5220.cpp | 227 +-- src/devices/sound/tms5220.h | 97 +- src/devices/sound/upd1771.cpp | 21 +- src/devices/sound/upd1771.h | 20 +- src/devices/sound/upd7752.cpp | 12 +- src/devices/sound/upd7752.h | 39 +- src/devices/sound/upd7759.cpp | 21 +- src/devices/sound/upd7759.h | 79 +- src/devices/sound/vlm5030.cpp | 4 +- src/devices/sound/vlm5030.h | 21 +- src/devices/sound/volt_reg.cpp | 5 +- src/devices/sound/volt_reg.h | 14 +- src/devices/sound/votrax.cpp | 4 +- src/devices/sound/votrax.h | 11 +- src/devices/sound/vrc6.cpp | 12 +- src/devices/sound/vrc6.h | 9 +- src/devices/sound/vrender0.cpp | 4 +- src/devices/sound/vrender0.h | 12 +- src/devices/sound/wave.cpp | 9 +- src/devices/sound/wave.h | 13 +- src/devices/sound/x1_010.cpp | 45 +- src/devices/sound/x1_010.h | 24 +- src/devices/sound/ym2151.cpp | 4 +- src/devices/sound/ym2151.h | 14 +- src/devices/sound/ym2413.cpp | 6 +- src/devices/sound/ym2413.h | 15 +- src/devices/sound/ymdeltat.cpp | 283 +-- src/devices/sound/ymdeltat.h | 34 +- src/devices/sound/ymf262.cpp | 69 +- src/devices/sound/ymf262.h | 31 +- src/devices/sound/ymf271.cpp | 4 +- src/devices/sound/ymf271.h | 18 +- src/devices/sound/ymf278b.cpp | 40 +- src/devices/sound/ymf278b.h | 25 +- src/devices/sound/ymz280b.cpp | 48 +- src/devices/sound/ymz280b.h | 26 +- src/devices/sound/ymz770.cpp | 21 +- src/devices/sound/ymz770.h | 65 +- src/devices/sound/zsg2.cpp | 12 +- src/devices/sound/zsg2.h | 14 +- src/devices/video/315_5124.cpp | 76 +- src/devices/video/315_5124.h | 143 +- src/devices/video/315_5313.cpp | 152 +- src/devices/video/315_5313.h | 177 +- src/devices/video/bufsprite.cpp | 35 +- src/devices/video/bufsprite.h | 49 +- src/devices/video/cdp1861.cpp | 40 +- src/devices/video/cdp1861.h | 71 +- src/devices/video/cdp1862.cpp | 6 +- src/devices/video/cdp1862.h | 18 +- src/devices/video/cesblit.cpp | 9 +- src/devices/video/cesblit.h | 14 +- src/devices/video/cgapal.h | 10 +- src/devices/video/clgd542x.cpp | 12 +- src/devices/video/clgd542x.h | 17 +- src/devices/video/crt9007.cpp | 190 +- src/devices/video/crt9007.h | 77 +- src/devices/video/crt9021.cpp | 30 +- src/devices/video/crt9021.h | 29 +- src/devices/video/crt9212.cpp | 35 +- src/devices/video/crt9212.h | 40 +- src/devices/video/crtc_ega.cpp | 14 +- src/devices/video/crtc_ega.h | 73 +- src/devices/video/dl1416.cpp | 26 +- src/devices/video/dl1416.h | 22 +- src/devices/video/dm9368.cpp | 17 +- src/devices/video/dm9368.h | 12 +- src/devices/video/ef9340_1.cpp | 6 +- src/devices/video/ef9340_1.h | 12 +- src/devices/video/ef9345.cpp | 22 +- src/devices/video/ef9345.h | 18 +- src/devices/video/ef9364.cpp | 64 +- src/devices/video/ef9364.h | 23 +- src/devices/video/ef9365.cpp | 156 +- src/devices/video/ef9365.h | 67 +- src/devices/video/ef9369.cpp | 9 +- src/devices/video/ef9369.h | 21 +- src/devices/video/epic12.cpp | 78 +- src/devices/video/epic12.h | 357 ++-- src/devices/video/epic12in.hxx | 14 +- src/devices/video/epic12pixel.hxx | 106 +- src/devices/video/fixfreq.cpp | 47 +- src/devices/video/fixfreq.h | 14 +- src/devices/video/gb_lcd.cpp | 140 +- src/devices/video/gb_lcd.h | 49 +- src/devices/video/gba_lcd.cpp | 4 +- src/devices/video/gba_lcd.h | 31 +- src/devices/video/gf4500.cpp | 6 +- src/devices/video/gf4500.h | 12 +- src/devices/video/gf7600gs.cpp | 4 +- src/devices/video/gf7600gs.h | 10 +- src/devices/video/hd44102.cpp | 52 +- src/devices/video/hd44102.h | 12 +- src/devices/video/hd44352.cpp | 4 +- src/devices/video/hd44352.h | 15 +- src/devices/video/hd44780.cpp | 38 +- src/devices/video/hd44780.h | 30 +- src/devices/video/hd61830.cpp | 95 +- src/devices/video/hd61830.h | 20 +- src/devices/video/hd63484.cpp | 4 +- src/devices/video/hd63484.h | 24 +- src/devices/video/hd66421.cpp | 27 +- src/devices/video/hd66421.h | 26 +- src/devices/video/hlcd0515.cpp | 15 +- src/devices/video/hlcd0515.h | 41 +- src/devices/video/hlcd0538.cpp | 14 +- src/devices/video/hlcd0538.h | 38 +- src/devices/video/hp1ll3.cpp | 96 +- src/devices/video/hp1ll3.h | 104 +- src/devices/video/huc6202.cpp | 32 +- src/devices/video/huc6202.h | 34 +- src/devices/video/huc6260.cpp | 27 +- src/devices/video/huc6260.h | 33 +- src/devices/video/huc6261.cpp | 25 +- src/devices/video/huc6261.h | 19 +- src/devices/video/huc6270.cpp | 47 +- src/devices/video/huc6270.h | 18 +- src/devices/video/huc6271.cpp | 8 +- src/devices/video/huc6271.h | 25 +- src/devices/video/huc6272.cpp | 4 +- src/devices/video/huc6272.h | 34 +- src/devices/video/i8244.cpp | 19 +- src/devices/video/i8244.h | 106 +- src/devices/video/i82730.cpp | 18 +- src/devices/video/i82730.h | 26 +- src/devices/video/i8275.cpp | 61 +- src/devices/video/i8275.h | 30 +- src/devices/video/jangou_blitter.cpp | 4 +- src/devices/video/jangou_blitter.h | 25 +- src/devices/video/m50458.cpp | 10 +- src/devices/video/m50458.h | 32 +- src/devices/video/mb90082.cpp | 8 +- src/devices/video/mb90082.h | 32 +- src/devices/video/mb_vcu.cpp | 4 +- src/devices/video/mb_vcu.h | 13 +- src/devices/video/mc6845.cpp | 96 +- src/devices/video/mc6845.h | 105 +- src/devices/video/mc6847.cpp | 70 +- src/devices/video/mc6847.h | 111 +- src/devices/video/mga2064w.cpp | 4 +- src/devices/video/mga2064w.h | 12 +- src/devices/video/mos6566.cpp | 56 +- src/devices/video/mos6566.h | 61 +- src/devices/video/msm6222b.cpp | 17 +- src/devices/video/msm6222b.h | 27 +- src/devices/video/msm6255.cpp | 9 +- src/devices/video/msm6255.h | 15 +- src/devices/video/pc_vga.cpp | 54 +- src/devices/video/pc_vga.h | 93 +- src/devices/video/pcd8544.cpp | 23 +- src/devices/video/pcd8544.h | 19 +- src/devices/video/poly.h | 98 +- src/devices/video/polylgcy.cpp | 32 +- src/devices/video/polylgcy.h | 24 +- src/devices/video/ppu2c0x.cpp | 70 +- src/devices/video/ppu2c0x.h | 197 ++- src/devices/video/psx.cpp | 115 +- src/devices/video/psx.h | 333 ++-- src/devices/video/ramdac.cpp | 4 +- src/devices/video/ramdac.h | 11 +- src/devices/video/saa5050.cpp | 56 +- src/devices/video/saa5050.h | 33 +- src/devices/video/scn2674.cpp | 225 +-- src/devices/video/scn2674.h | 16 +- src/devices/video/sed1200.cpp | 20 +- src/devices/video/sed1200.h | 20 +- src/devices/video/sed1330.cpp | 177 +- src/devices/video/sed1330.h | 14 +- src/devices/video/sed1520.cpp | 4 +- src/devices/video/sed1520.h | 17 +- src/devices/video/snes_ppu.cpp | 18 +- src/devices/video/snes_ppu.h | 110 +- src/devices/video/sprite.h | 22 +- src/devices/video/t6a04.cpp | 12 +- src/devices/video/t6a04.h | 10 +- src/devices/video/tea1002.cpp | 4 +- src/devices/video/tea1002.h | 9 +- src/devices/video/tlc34076.cpp | 6 +- src/devices/video/tlc34076.h | 34 +- src/devices/video/tms34061.cpp | 21 +- src/devices/video/tms34061.h | 94 +- src/devices/video/tms3556.cpp | 174 +- src/devices/video/tms3556.h | 56 +- src/devices/video/tms9927.cpp | 27 +- src/devices/video/tms9927.h | 34 +- src/devices/video/tms9928a.cpp | 132 +- src/devices/video/tms9928a.h | 66 +- src/devices/video/upd3301.cpp | 77 +- src/devices/video/upd3301.h | 31 +- src/devices/video/upd7220.cpp | 128 +- src/devices/video/upd7220.h | 41 +- src/devices/video/upd7227.cpp | 27 +- src/devices/video/upd7227.h | 15 +- src/devices/video/v9938.cpp | 48 +- src/devices/video/v9938.h | 43 +- src/devices/video/vector.cpp | 4 +- src/devices/video/vector.h | 44 +- src/devices/video/vic4567.cpp | 48 +- src/devices/video/vic4567.h | 108 +- src/devices/video/vooddefs.h | 190 +- src/devices/video/voodoo.cpp | 627 +++---- src/devices/video/voodoo.h | 684 ++++---- src/devices/video/voodoo_pci.cpp | 4 +- src/devices/video/voodoo_pci.h | 12 +- src/devices/video/zeus2.cpp | 6 +- src/devices/video/zeus2.h | 16 +- src/emu/config.cpp | 8 +- src/emu/debug/debugcon.cpp | 2 +- src/emu/devcpu.cpp | 4 +- src/emu/devcpu.h | 2 +- src/emu/device.cpp | 47 +- src/emu/device.h | 127 +- src/emu/drawgfx.cpp | 4 +- src/emu/drivenum.cpp | 2 +- src/emu/driver.cpp | 11 +- src/emu/driver.h | 7 - src/emu/drivers/empty.cpp | 4 +- src/emu/emu.h | 3 + src/emu/emumem.h | 2 +- src/emu/emupal.cpp | 4 +- src/emu/gamedrv.h | 75 +- src/emu/machine.cpp | 4 +- src/emu/machine.h | 6 +- src/emu/mconfig.h | 23 +- src/emu/screen.cpp | 9 +- src/emu/screen.h | 5 +- src/emu/softlist_dev.cpp | 5 +- src/emu/softlist_dev.h | 2 +- src/emu/speaker.cpp | 22 +- src/emu/speaker.h | 5 +- src/emu/tilemap.cpp | 4 +- src/emu/timer.cpp | 4 +- src/emu/validity.cpp | 20 +- src/emu/video.cpp | 4 +- src/frontend/mame/clifront.cpp | 12 +- src/frontend/mame/info.cpp | 10 +- src/frontend/mame/luaengine.cpp | 6 +- src/frontend/mame/mameopts.cpp | 2 +- src/frontend/mame/mameopts.h | 10 +- src/frontend/mame/ui/auditmenu.cpp | 12 +- src/frontend/mame/ui/datmenu.cpp | 2 +- src/frontend/mame/ui/info.cpp | 6 +- src/frontend/mame/ui/inifile.cpp | 2 +- src/frontend/mame/ui/miscmenu.cpp | 4 +- src/frontend/mame/ui/selgame.cpp | 14 +- src/frontend/mame/ui/selmenu.cpp | 2 +- src/frontend/mame/ui/selsoft.cpp | 6 +- src/frontend/mame/ui/simpleselgame.cpp | 6 +- src/lib/netlist/plib/pstring.h | 2 +- src/mame/audio/8080bw.cpp | 4 +- src/mame/audio/alesis.cpp | 8 +- src/mame/audio/arcadia.cpp | 6 +- src/mame/audio/arcadia.h | 11 +- src/mame/audio/atarijsa.cpp | 33 +- src/mame/audio/atarijsa.h | 26 +- src/mame/audio/cage.cpp | 15 +- src/mame/audio/cage.h | 17 +- src/mame/audio/cclimber.cpp | 7 +- src/mame/audio/cclimber.h | 10 +- src/mame/audio/channelf.cpp | 4 +- src/mame/audio/channelf.h | 12 +- src/mame/audio/cinemat.cpp | 2 +- src/mame/audio/cps3.cpp | 12 +- src/mame/audio/cps3.h | 11 +- src/mame/audio/csd.cpp | 4 +- src/mame/audio/csd.h | 6 +- src/mame/audio/dai_snd.cpp | 22 +- src/mame/audio/dai_snd.h | 11 +- src/mame/audio/dcs.cpp | 40 +- src/mame/audio/dcs.h | 36 +- src/mame/audio/decobsmt.cpp | 17 +- src/mame/audio/decobsmt.h | 49 +- src/mame/audio/dsbz80.cpp | 4 +- src/mame/audio/dsbz80.h | 9 +- src/mame/audio/efo_zsu.cpp | 32 +- src/mame/audio/efo_zsu.h | 21 +- src/mame/audio/exidy.cpp | 20 +- src/mame/audio/exidy.h | 16 +- src/mame/audio/exidy440.cpp | 4 +- src/mame/audio/exidy440.h | 73 +- src/mame/audio/galaxian.cpp | 8 +- src/mame/audio/galaxian.h | 13 +- src/mame/audio/gamate.cpp | 9 +- src/mame/audio/gamate.h | 96 + src/mame/audio/geebee.cpp | 4 +- src/mame/audio/geebee.h | 11 +- src/mame/audio/gomoku.cpp | 14 +- src/mame/audio/gomoku.h | 73 + src/mame/audio/gottlieb.cpp | 23 +- src/mame/audio/gottlieb.h | 13 +- src/mame/audio/gridlee.cpp | 4 +- src/mame/audio/harddriv.cpp | 7 +- src/mame/audio/hyprolyb.cpp | 16 +- src/mame/audio/hyprolyb.h | 11 +- src/mame/audio/irem.cpp | 48 +- src/mame/audio/irem.h | 28 +- src/mame/audio/leland.cpp | 43 +- src/mame/audio/leland.h | 135 ++ src/mame/audio/lynx.cpp | 19 +- src/mame/audio/lynx.h | 63 +- src/mame/audio/m72.cpp | 4 +- src/mame/audio/m72.h | 11 +- src/mame/audio/micro3d.cpp | 181 +- src/mame/audio/micro3d.h | 78 + src/mame/audio/midway.cpp | 16 +- src/mame/audio/midway.h | 14 +- src/mame/audio/namco52.cpp | 4 +- src/mame/audio/namco52.h | 12 +- src/mame/audio/namco54.cpp | 4 +- src/mame/audio/namco54.h | 8 +- src/mame/audio/phoenix.cpp | 8 +- src/mame/audio/phoenix.h | 62 + src/mame/audio/pleiads.cpp | 23 +- src/mame/audio/pleiads.h | 89 +- src/mame/audio/polepos.cpp | 11 +- src/mame/audio/rax.cpp | 14 +- src/mame/audio/rax.h | 24 +- src/mame/audio/redbaron.cpp | 11 +- src/mame/audio/redbaron.h | 10 +- src/mame/audio/s11c_bg.cpp | 16 +- src/mame/audio/s11c_bg.h | 14 +- src/mame/audio/scramble.cpp | 9 +- src/mame/audio/segag80r.cpp | 13 +- src/mame/audio/segam1audio.cpp | 11 +- src/mame/audio/segam1audio.h | 14 +- src/mame/audio/segasnd.cpp | 153 +- src/mame/audio/segasnd.h | 187 +- src/mame/audio/seibu.cpp | 12 +- src/mame/audio/seibu.h | 12 +- src/mame/audio/snes_snd.cpp | 6 +- src/mame/audio/snes_snd.h | 71 +- src/mame/audio/snk6502.cpp | 12 +- src/mame/audio/snk6502.h | 86 + src/mame/audio/socrates.cpp | 6 +- src/mame/audio/socrates.h | 10 +- src/mame/audio/special.cpp | 10 +- src/mame/audio/special.h | 14 +- src/mame/audio/svis_snd.cpp | 65 +- src/mame/audio/svis_snd.h | 167 +- src/mame/audio/t5182.cpp | 4 +- src/mame/audio/t5182.h | 10 +- src/mame/audio/taito_en.cpp | 4 +- src/mame/audio/taito_en.h | 9 +- src/mame/audio/taito_zm.cpp | 4 +- src/mame/audio/taito_zm.h | 9 +- src/mame/audio/taitosnd.cpp | 7 +- src/mame/audio/taitosnd.h | 9 +- src/mame/audio/tiamc1.cpp | 6 +- src/mame/audio/tiamc1.h | 67 + src/mame/audio/timeplt.cpp | 10 +- src/mame/audio/timeplt.h | 13 +- src/mame/audio/trackfld.cpp | 10 +- src/mame/audio/trackfld.h | 13 +- src/mame/audio/turrett.cpp | 10 +- src/mame/audio/tvc.cpp | 4 +- src/mame/audio/tvc.h | 14 +- src/mame/audio/tx1.cpp | 16 +- src/mame/audio/vboy.cpp | 6 +- src/mame/audio/vboy.h | 91 +- src/mame/audio/vc4000.cpp | 16 +- src/mame/audio/vc4000.h | 12 +- src/mame/audio/vicdual-97271p.cpp | 4 +- src/mame/audio/vicdual-97271p.h | 8 +- src/mame/audio/warpwarp.cpp | 4 +- src/mame/audio/warpwarp.h | 12 +- src/mame/audio/williams.cpp | 14 +- src/mame/audio/williams.h | 6 +- src/mame/audio/wiping.cpp | 10 +- src/mame/audio/wiping.h | 37 +- src/mame/audio/wpcsnd.cpp | 20 +- src/mame/audio/wpcsnd.h | 12 +- src/mame/audio/wswan.cpp | 4 +- src/mame/audio/wswan.h | 10 +- src/mame/audio/zaccaria.cpp | 26 +- src/mame/audio/zaccaria.h | 43 +- src/mame/drivers/1942.cpp | 4 +- src/mame/drivers/1943.cpp | 2 +- src/mame/drivers/1945kiii.cpp | 15 +- src/mame/drivers/20pacgal.cpp | 8 +- src/mame/drivers/24cdjuke.cpp | 4 +- src/mame/drivers/2mindril.cpp | 2 +- src/mame/drivers/30test.cpp | 6 +- src/mame/drivers/39in1.cpp | 16 +- src/mame/drivers/3do.cpp | 14 +- src/mame/drivers/3x3puzzl.cpp | 10 +- src/mame/drivers/4004clk.cpp | 6 +- src/mame/drivers/40love.cpp | 8 +- src/mame/drivers/4dpi.cpp | 6 +- src/mame/drivers/4enlinea.cpp | 10 +- src/mame/drivers/4enraya.cpp | 6 +- src/mame/drivers/4roses.cpp | 4 +- src/mame/drivers/5clown.cpp | 6 +- src/mame/drivers/68ksbc.cpp | 6 +- src/mame/drivers/8080bw.cpp | 294 ++-- src/mame/drivers/88games.cpp | 8 +- src/mame/drivers/a1supply.cpp | 10 +- src/mame/drivers/a2600.cpp | 10 +- src/mame/drivers/a5105.cpp | 6 +- src/mame/drivers/a51xx.cpp | 8 +- src/mame/drivers/a6809.cpp | 24 +- src/mame/drivers/a7150.cpp | 6 +- src/mame/drivers/a7800.cpp | 16 +- src/mame/drivers/aa310.cpp | 4 +- src/mame/drivers/abc1600.cpp | 14 +- src/mame/drivers/abc80.cpp | 24 +- src/mame/drivers/abc80x.cpp | 60 +- src/mame/drivers/ac1.cpp | 10 +- src/mame/drivers/ace.cpp | 4 +- src/mame/drivers/aceex.cpp | 6 +- src/mame/drivers/acefruit.cpp | 8 +- src/mame/drivers/aces1.cpp | 96 +- src/mame/drivers/acesp.cpp | 2 +- src/mame/drivers/acommand.cpp | 8 +- src/mame/drivers/acrnsys1.cpp | 6 +- src/mame/drivers/actfancr.cpp | 18 +- src/mame/drivers/adam.cpp | 6 +- src/mame/drivers/adp.cpp | 20 +- src/mame/drivers/advision.cpp | 6 +- src/mame/drivers/aeroboto.cpp | 6 +- src/mame/drivers/aerofgt.cpp | 88 +- src/mame/drivers/agat.cpp | 8 +- src/mame/drivers/age_candy.cpp | 4 +- src/mame/drivers/aim65.cpp | 12 +- src/mame/drivers/aim65_40.cpp | 6 +- src/mame/drivers/airbustr.cpp | 10 +- src/mame/drivers/airraid.cpp | 6 +- src/mame/drivers/ajax.cpp | 8 +- src/mame/drivers/akaiax80.cpp | 4 +- src/mame/drivers/albazc.cpp | 4 +- src/mame/drivers/albazg.cpp | 4 +- src/mame/drivers/aleck64.cpp | 22 +- src/mame/drivers/aleisttl.cpp | 6 +- src/mame/drivers/alesis.cpp | 12 +- src/mame/drivers/alesis_qs.cpp | 6 +- src/mame/drivers/alg.cpp | 20 +- src/mame/drivers/alien.cpp | 4 +- src/mame/drivers/aliens.cpp | 16 +- src/mame/drivers/alinvade.cpp | 4 +- src/mame/drivers/allied.cpp | 26 +- src/mame/drivers/alpha68k.cpp | 30 +- src/mame/drivers/alphasma.cpp | 10 +- src/mame/drivers/alphatro.cpp | 4 +- src/mame/drivers/altair.cpp | 8 +- src/mame/drivers/alto2.cpp | 2 +- src/mame/drivers/altos486.cpp | 4 +- src/mame/drivers/altos5.cpp | 10 +- src/mame/drivers/alvg.cpp | 28 +- src/mame/drivers/amaticmg.cpp | 2 +- src/mame/drivers/ambush.cpp | 16 +- src/mame/drivers/amerihok.cpp | 4 +- src/mame/drivers/amico2k.cpp | 6 +- src/mame/drivers/amiga.cpp | 66 +- src/mame/drivers/ampoker2.cpp | 24 +- src/mame/drivers/ampro.cpp | 10 +- src/mame/drivers/amspdwy.cpp | 6 +- src/mame/drivers/amstr_pc.cpp | 23 +- src/mame/drivers/amstrad.cpp | 28 +- src/mame/drivers/amusco.cpp | 8 +- src/mame/drivers/amust.cpp | 12 +- src/mame/drivers/angelkds.cpp | 2 +- src/mame/drivers/anzterm.cpp | 4 +- src/mame/drivers/apc.cpp | 2 +- src/mame/drivers/apexc.cpp | 22 +- src/mame/drivers/apf.cpp | 14 +- src/mame/drivers/apogee.cpp | 6 +- src/mame/drivers/apollo.cpp | 28 +- src/mame/drivers/apple1.cpp | 6 +- src/mame/drivers/apple2.cpp | 38 +- src/mame/drivers/apple2e.cpp | 42 +- src/mame/drivers/apple2gs.cpp | 16 +- src/mame/drivers/apple3.cpp | 6 +- src/mame/drivers/applix.cpp | 8 +- src/mame/drivers/appoooh.cpp | 10 +- src/mame/drivers/apricot.cpp | 10 +- src/mame/drivers/apricotf.cpp | 16 +- src/mame/drivers/apricotp.cpp | 14 +- src/mame/drivers/aquarium.cpp | 4 +- src/mame/drivers/aquarius.cpp | 8 +- src/mame/drivers/arabian.cpp | 6 +- src/mame/drivers/arachnid.cpp | 8 +- src/mame/drivers/arcadecl.cpp | 8 +- src/mame/drivers/arcadia.cpp | 4 +- src/mame/drivers/argo.cpp | 6 +- src/mame/drivers/argox.cpp | 6 +- src/mame/drivers/argus.cpp | 16 +- src/mame/drivers/aristmk4.cpp | 2 +- src/mame/drivers/aristmk5.cpp | 2 +- src/mame/drivers/aristmk6.cpp | 482 ++--- src/mame/drivers/arkanoid.cpp | 58 +- src/mame/drivers/armedf.cpp | 20 +- src/mame/drivers/arsystems.cpp | 40 +- src/mame/drivers/artmagic.cpp | 4 +- src/mame/drivers/ashnojoe.cpp | 4 +- src/mame/drivers/asst128.cpp | 17 +- src/mame/drivers/asterix.cpp | 2 +- src/mame/drivers/asteroid.cpp | 30 +- src/mame/drivers/astinvad.cpp | 14 +- src/mame/drivers/astrafr.cpp | 378 ++-- src/mame/drivers/astrcorp.cpp | 24 +- src/mame/drivers/astrocde.cpp | 26 +- src/mame/drivers/astrof.cpp | 38 +- src/mame/drivers/astrohome.cpp | 10 +- src/mame/drivers/astropc.cpp | 2 +- src/mame/drivers/asuka.cpp | 58 +- src/mame/drivers/at.cpp | 20 +- src/mame/drivers/atari400.cpp | 72 +- src/mame/drivers/atari_s1.cpp | 12 +- src/mame/drivers/atari_s2.cpp | 10 +- src/mame/drivers/atarifb.cpp | 16 +- src/mame/drivers/atarig1.cpp | 8 +- src/mame/drivers/atarig42.cpp | 2 +- src/mame/drivers/atarigt.cpp | 19 +- src/mame/drivers/atarigx2.cpp | 17 +- src/mame/drivers/atarist.cpp | 90 +- src/mame/drivers/atarisy1.cpp | 34 +- src/mame/drivers/atarisy2.cpp | 76 +- src/mame/drivers/atarisy4.cpp | 4 +- src/mame/drivers/atarittl.cpp | 72 +- src/mame/drivers/atetris.cpp | 14 +- src/mame/drivers/atlantis.cpp | 4 +- src/mame/drivers/atm.cpp | 12 +- src/mame/drivers/atom.cpp | 14 +- src/mame/drivers/atpci.cpp | 11 +- src/mame/drivers/atronic.cpp | 62 +- src/mame/drivers/attache.cpp | 6 +- src/mame/drivers/attckufo.cpp | 6 +- src/mame/drivers/atvtrack.cpp | 10 +- src/mame/drivers/aussiebyte.cpp | 6 +- src/mame/drivers/avalnche.cpp | 8 +- src/mame/drivers/avigo.cpp | 14 +- src/mame/drivers/avt.cpp | 12 +- src/mame/drivers/ax20.cpp | 6 +- src/mame/drivers/aztarac.cpp | 4 +- src/mame/drivers/b16.cpp | 6 +- src/mame/drivers/b2m.cpp | 8 +- src/mame/drivers/babbage.cpp | 6 +- src/mame/drivers/backfire.cpp | 2 +- src/mame/drivers/badlands.cpp | 8 +- src/mame/drivers/bagman.cpp | 32 +- src/mame/drivers/bailey.cpp | 8 +- src/mame/drivers/balsente.cpp | 2 +- src/mame/drivers/banctec.cpp | 6 +- src/mame/drivers/bankp.cpp | 6 +- src/mame/drivers/baraduke.cpp | 2 +- src/mame/drivers/barata.cpp | 4 +- src/mame/drivers/barni.cpp | 4 +- src/mame/drivers/bartop52.cpp | 17 +- src/mame/drivers/basic52.cpp | 14 +- src/mame/drivers/batman.cpp | 4 +- src/mame/drivers/battlane.cpp | 8 +- src/mame/drivers/battlera.cpp | 12 +- src/mame/drivers/battlex.cpp | 4 +- src/mame/drivers/battlnts.cpp | 14 +- src/mame/drivers/bbc.cpp | 8 +- src/mame/drivers/bbcbc.cpp | 6 +- src/mame/drivers/bbusters.cpp | 22 +- src/mame/drivers/bcs3.cpp | 12 +- src/mame/drivers/beaminv.cpp | 6 +- src/mame/drivers/beathead.cpp | 4 +- src/mame/drivers/bebox.cpp | 10 +- src/mame/drivers/beehive.cpp | 6 +- src/mame/drivers/beezer.cpp | 8 +- src/mame/drivers/belatra.cpp | 16 +- src/mame/drivers/berzerk.cpp | 14 +- src/mame/drivers/besta.cpp | 25 +- src/mame/drivers/bestleag.cpp | 8 +- src/mame/drivers/beta.cpp | 12 +- src/mame/drivers/bfcobra.cpp | 2 +- src/mame/drivers/bfm_ad5.cpp | 2 +- src/mame/drivers/bfm_sc1.cpp | 4 +- src/mame/drivers/bfm_sc2.cpp | 16 +- src/mame/drivers/bfm_sc4.cpp | 60 +- src/mame/drivers/bfm_sc5.cpp | 2 +- src/mame/drivers/bfm_swp.cpp | 12 +- src/mame/drivers/bfmsys83.cpp | 6 +- src/mame/drivers/bfmsys85.cpp | 4 +- src/mame/drivers/bgt.cpp | 10 +- src/mame/drivers/big10.cpp | 6 +- src/mame/drivers/bigbord2.cpp | 16 +- src/mame/drivers/bigevglf.cpp | 6 +- src/mame/drivers/bigstrkb.cpp | 10 +- src/mame/drivers/binbug.cpp | 28 +- src/mame/drivers/bingo.cpp | 56 +- src/mame/drivers/bingoc.cpp | 4 +- src/mame/drivers/bingoman.cpp | 6 +- src/mame/drivers/bingor.cpp | 16 +- src/mame/drivers/bionicc.cpp | 14 +- src/mame/drivers/bishi.cpp | 10 +- src/mame/drivers/bitgraph.cpp | 10 +- src/mame/drivers/bk.cpp | 12 +- src/mame/drivers/bking.cpp | 8 +- src/mame/drivers/blackt96.cpp | 8 +- src/mame/drivers/bladestl.cpp | 14 +- src/mame/drivers/blitz.cpp | 8 +- src/mame/drivers/blitz68k.cpp | 34 +- src/mame/drivers/blktiger.cpp | 14 +- src/mame/drivers/blmbycar.cpp | 8 +- src/mame/drivers/blockade.cpp | 16 +- src/mame/drivers/blockhl.cpp | 6 +- src/mame/drivers/blockout.cpp | 14 +- src/mame/drivers/bloodbro.cpp | 12 +- src/mame/drivers/blstroid.cpp | 2 +- src/mame/drivers/blueprnt.cpp | 10 +- src/mame/drivers/bmcbowl.cpp | 4 +- src/mame/drivers/bmcpokr.cpp | 10 +- src/mame/drivers/bmjr.cpp | 8 +- src/mame/drivers/bml3.cpp | 10 +- src/mame/drivers/bnstars.cpp | 2 +- src/mame/drivers/bntyhunt.cpp | 4 +- src/mame/drivers/bob85.cpp | 6 +- src/mame/drivers/bogeyman.cpp | 4 +- src/mame/drivers/bombjack.cpp | 8 +- src/mame/drivers/boogwing.cpp | 6 +- src/mame/drivers/bottom9.cpp | 8 +- src/mame/drivers/bowltry.cpp | 4 +- src/mame/drivers/boxer.cpp | 4 +- src/mame/drivers/bpmmicro.cpp | 4 +- src/mame/drivers/br8641.cpp | 4 +- src/mame/drivers/brkthru.cpp | 8 +- src/mame/drivers/bsktball.cpp | 4 +- src/mame/drivers/btime.cpp | 40 +- src/mame/drivers/btoads.cpp | 4 +- src/mame/drivers/bublbobl.cpp | 49 +- src/mame/drivers/buggychl.cpp | 6 +- src/mame/drivers/bullet.cpp | 15 +- src/mame/drivers/busicom.cpp | 6 +- src/mame/drivers/buster.cpp | 4 +- src/mame/drivers/bw12.cpp | 8 +- src/mame/drivers/bw2.cpp | 8 +- src/mame/drivers/bwidow.cpp | 22 +- src/mame/drivers/bwing.cpp | 2 +- src/mame/drivers/by17.cpp | 20 +- src/mame/drivers/by35.cpp | 138 +- src/mame/drivers/by6803.cpp | 50 +- src/mame/drivers/by68701.cpp | 10 +- src/mame/drivers/byvid.cpp | 12 +- src/mame/drivers/bzone.cpp | 14 +- src/mame/drivers/c10.cpp | 6 +- src/mame/drivers/c128.cpp | 42 +- src/mame/drivers/c64.cpp | 52 +- src/mame/drivers/c64dtv.cpp | 4 +- src/mame/drivers/c65.cpp | 2 +- src/mame/drivers/c80.cpp | 6 +- src/mame/drivers/c900.cpp | 13 +- src/mame/drivers/cabal.cpp | 22 +- src/mame/drivers/cabaret.cpp | 2 +- src/mame/drivers/calchase.cpp | 8 +- src/mame/drivers/calomega.cpp | 2 +- src/mame/drivers/calorie.cpp | 4 +- src/mame/drivers/camplynx.cpp | 20 +- src/mame/drivers/canon_s80.cpp | 9 +- src/mame/drivers/canyon.cpp | 6 +- src/mame/drivers/capbowl.cpp | 4 +- src/mame/drivers/capcom.cpp | 2 +- src/mame/drivers/capr1.cpp | 6 +- src/mame/drivers/caprcyc.cpp | 4 +- src/mame/drivers/cardline.cpp | 6 +- src/mame/drivers/carjmbre.cpp | 4 +- src/mame/drivers/carpolo.cpp | 2 +- src/mame/drivers/carrera.cpp | 4 +- src/mame/drivers/casloopy.cpp | 2 +- src/mame/drivers/castle.cpp | 8 +- src/mame/drivers/caswin.cpp | 10 +- src/mame/drivers/cat.cpp | 4 +- src/mame/drivers/cave.cpp | 178 +- src/mame/drivers/cavepc.cpp | 2 +- src/mame/drivers/cb2001.cpp | 6 +- src/mame/drivers/cball.cpp | 4 +- src/mame/drivers/cbasebal.cpp | 4 +- src/mame/drivers/cbm2.cpp | 42 +- src/mame/drivers/cbuster.cpp | 6 +- src/mame/drivers/cc40.cpp | 4 +- src/mame/drivers/ccastles.cpp | 18 +- src/mame/drivers/cchance.cpp | 4 +- src/mame/drivers/cchasm.cpp | 6 +- src/mame/drivers/cclimber.cpp | 52 +- src/mame/drivers/ccs2810.cpp | 21 +- src/mame/drivers/ccs300.cpp | 11 +- src/mame/drivers/cd2650.cpp | 12 +- src/mame/drivers/cdc721.cpp | 4 +- src/mame/drivers/cdi.cpp | 40 +- src/mame/drivers/cedar_magnet.cpp | 8 +- src/mame/drivers/centiped.cpp | 32 +- src/mame/drivers/cesclass.cpp | 10 +- src/mame/drivers/cfx9850.cpp | 4 +- src/mame/drivers/cgc7900.cpp | 6 +- src/mame/drivers/cgenie.cpp | 18 +- src/mame/drivers/chaknpop.cpp | 6 +- src/mame/drivers/cham24.cpp | 2 +- src/mame/drivers/champbas.cpp | 12 +- src/mame/drivers/champbwl.cpp | 8 +- src/mame/drivers/chanbara.cpp | 2 +- src/mame/drivers/chance32.cpp | 8 +- src/mame/drivers/changela.cpp | 4 +- src/mame/drivers/channelf.cpp | 26 +- src/mame/drivers/chaos.cpp | 12 +- src/mame/drivers/cheekyms.cpp | 4 +- src/mame/drivers/chessmst.cpp | 14 +- src/mame/drivers/chesstrv.cpp | 10 +- src/mame/drivers/chexx.cpp | 6 +- src/mame/drivers/chicago.cpp | 6 +- src/mame/drivers/chihiro.cpp | 142 +- src/mame/drivers/chinagat.cpp | 20 +- src/mame/drivers/chinsan.cpp | 6 +- src/mame/drivers/chqflag.cpp | 8 +- src/mame/drivers/chsuper.cpp | 2 +- src/mame/drivers/cidelsa.cpp | 16 +- src/mame/drivers/cinemat.cpp | 48 +- src/mame/drivers/circus.cpp | 18 +- src/mame/drivers/circusc.cpp | 2 +- src/mame/drivers/cischeat.cpp | 28 +- src/mame/drivers/citycon.cpp | 2 +- src/mame/drivers/clayshoo.cpp | 4 +- src/mame/drivers/clcd.cpp | 6 +- src/mame/drivers/cliffhgr.cpp | 14 +- src/mame/drivers/cloak.cpp | 18 +- src/mame/drivers/cloud9.cpp | 6 +- src/mame/drivers/clowndwn.cpp | 4 +- src/mame/drivers/clpoker.cpp | 4 +- src/mame/drivers/clshroad.cpp | 10 +- src/mame/drivers/cm1800.cpp | 23 +- src/mame/drivers/cmi.cpp | 9 +- src/mame/drivers/cmmb.cpp | 4 +- src/mame/drivers/cninja.cpp | 80 +- src/mame/drivers/cntsteer.cpp | 10 +- src/mame/drivers/cobra.cpp | 14 +- src/mame/drivers/coco12.cpp | 20 +- src/mame/drivers/coco3.cpp | 10 +- src/mame/drivers/cocoloco.cpp | 8 +- src/mame/drivers/codata.cpp | 13 +- src/mame/drivers/coinmstr.cpp | 10 +- src/mame/drivers/coinmvga.cpp | 10 +- src/mame/drivers/coleco.cpp | 16 +- src/mame/drivers/combatsc.cpp | 18 +- src/mame/drivers/comebaby.cpp | 4 +- src/mame/drivers/commando.cpp | 2 +- src/mame/drivers/compgolf.cpp | 2 +- src/mame/drivers/compis.cpp | 12 +- src/mame/drivers/compucolor.cpp | 4 +- src/mame/drivers/comquest.cpp | 6 +- src/mame/drivers/comx35.cpp | 18 +- src/mame/drivers/concept.cpp | 6 +- src/mame/drivers/contra.cpp | 22 +- src/mame/drivers/coolpool.cpp | 18 +- src/mame/drivers/coolridr.cpp | 6 +- src/mame/drivers/cop01.cpp | 10 +- src/mame/drivers/cops.cpp | 8 +- src/mame/drivers/copsnrob.cpp | 4 +- src/mame/drivers/corona.cpp | 30 +- src/mame/drivers/cortex.cpp | 6 +- src/mame/drivers/cosmic.cpp | 32 +- src/mame/drivers/cosmicos.cpp | 6 +- src/mame/drivers/cp1.cpp | 6 +- src/mame/drivers/cps1.cpp | 4 +- src/mame/drivers/cps2.cpp | 6 +- src/mame/drivers/cps3.cpp | 16 +- src/mame/drivers/craft.cpp | 4 +- src/mame/drivers/crbaloon.cpp | 6 +- src/mame/drivers/crgolf.cpp | 18 +- src/mame/drivers/crimfght.cpp | 8 +- src/mame/drivers/crospang.cpp | 4 +- src/mame/drivers/crshrace.cpp | 4 +- src/mame/drivers/crvision.cpp | 32 +- src/mame/drivers/crystal.cpp | 14 +- src/mame/drivers/csplayh5.cpp | 2 +- src/mame/drivers/cswat.cpp | 4 +- src/mame/drivers/ct486.cpp | 15 +- src/mame/drivers/cubeqst.cpp | 10 +- src/mame/drivers/cubo.cpp | 2 +- src/mame/drivers/cultures.cpp | 8 +- src/mame/drivers/cupidon.cpp | 18 +- src/mame/drivers/cv1k.cpp | 2 +- src/mame/drivers/cvicny.cpp | 6 +- src/mame/drivers/cvs.cpp | 46 +- src/mame/drivers/cxgz80.cpp | 6 +- src/mame/drivers/cxhumax.cpp | 6 +- src/mame/drivers/cyberbal.cpp | 22 +- src/mame/drivers/cybertnk.cpp | 2 +- src/mame/drivers/cybiko.cpp | 12 +- src/mame/drivers/cyclemb.cpp | 4 +- src/mame/drivers/czk80.cpp | 12 +- src/mame/drivers/d6800.cpp | 6 +- src/mame/drivers/d6809.cpp | 12 +- src/mame/drivers/d9final.cpp | 4 +- src/mame/drivers/dacholer.cpp | 10 +- src/mame/drivers/dai.cpp | 7 +- src/mame/drivers/dai3wksi.cpp | 4 +- src/mame/drivers/dambustr.cpp | 8 +- src/mame/drivers/darius.cpp | 14 +- src/mame/drivers/darkmist.cpp | 2 +- src/mame/drivers/darkseal.cpp | 6 +- src/mame/drivers/daruma.cpp | 6 +- src/mame/drivers/dassault.cpp | 6 +- src/mame/drivers/datum.cpp | 6 +- src/mame/drivers/dblcrown.cpp | 6 +- src/mame/drivers/dblewing.cpp | 4 +- src/mame/drivers/dbz.cpp | 8 +- src/mame/drivers/dccons.cpp | 12 +- src/mame/drivers/dcheese.cpp | 20 +- src/mame/drivers/dcon.cpp | 10 +- src/mame/drivers/dct11em.cpp | 6 +- src/mame/drivers/dday.cpp | 2 +- src/mame/drivers/ddayjlc.cpp | 2 +- src/mame/drivers/ddealer.cpp | 2 +- src/mame/drivers/ddenlovr.cpp | 142 +- src/mame/drivers/ddragon.cpp | 20 +- src/mame/drivers/ddragon3.cpp | 42 +- src/mame/drivers/ddribble.cpp | 12 +- src/mame/drivers/de_2.cpp | 70 +- src/mame/drivers/de_3.cpp | 2 +- src/mame/drivers/de_3b.cpp | 64 +- src/mame/drivers/deadang.cpp | 6 +- src/mame/drivers/dec0.cpp | 28 +- src/mame/drivers/dec8.cpp | 66 +- src/mame/drivers/deco156.cpp | 8 +- src/mame/drivers/deco32.cpp | 40 +- src/mame/drivers/deco_ld.cpp | 12 +- src/mame/drivers/deco_mlc.cpp | 4 +- src/mame/drivers/decocass.cpp | 2 +- src/mame/drivers/dectalk.cpp | 6 +- src/mame/drivers/decwritr.cpp | 6 +- src/mame/drivers/deniam.cpp | 16 +- src/mame/drivers/deshoros.cpp | 4 +- src/mame/drivers/destroyr.cpp | 6 +- src/mame/drivers/dfruit.cpp | 4 +- src/mame/drivers/dgn_beta.cpp | 6 +- src/mame/drivers/dgpix.cpp | 2 +- src/mame/drivers/didact.cpp | 22 +- src/mame/drivers/dietgo.cpp | 4 +- src/mame/drivers/digel804.cpp | 10 +- src/mame/drivers/digijet.cpp | 6 +- src/mame/drivers/dim68k.cpp | 14 +- src/mame/drivers/discoboy.cpp | 4 +- src/mame/drivers/divebomb.cpp | 4 +- src/mame/drivers/diverboy.cpp | 6 +- src/mame/drivers/djboy.cpp | 6 +- src/mame/drivers/djmain.cpp | 2 +- src/mame/drivers/dkong.cpp | 90 +- src/mame/drivers/dlair.cpp | 4 +- src/mame/drivers/dlair2.cpp | 34 +- src/mame/drivers/dm7000.cpp | 14 +- src/mame/drivers/dmax8000.cpp | 8 +- src/mame/drivers/dmndrby.cpp | 8 +- src/mame/drivers/dms5000.cpp | 6 +- src/mame/drivers/dms86.cpp | 18 +- src/mame/drivers/dmv.cpp | 6 +- src/mame/drivers/docastle.cpp | 58 +- src/mame/drivers/dogfgt.cpp | 8 +- src/mame/drivers/dolphunk.cpp | 6 +- src/mame/drivers/dominob.cpp | 6 +- src/mame/drivers/dooyong.cpp | 812 ++++++++- src/mame/drivers/dorachan.cpp | 4 +- src/mame/drivers/dotrikun.cpp | 6 +- src/mame/drivers/dps1.cpp | 8 +- src/mame/drivers/dragon.cpp | 26 +- src/mame/drivers/dragrace.cpp | 4 +- src/mame/drivers/dreambal.cpp | 4 +- src/mame/drivers/dreamwld.cpp | 20 +- src/mame/drivers/drgnmst.cpp | 6 +- src/mame/drivers/dribling.cpp | 8 +- src/mame/drivers/drmicro.cpp | 6 +- src/mame/drivers/drtomy.cpp | 6 +- src/mame/drivers/drw80pkr.cpp | 4 +- src/mame/drivers/dsb46.cpp | 8 +- src/mame/drivers/dual68.cpp | 19 +- src/mame/drivers/dunhuang.cpp | 6 +- src/mame/drivers/dvk_kcgd.cpp | 6 +- src/mame/drivers/dvk_ksm.cpp | 6 +- src/mame/drivers/dwarfd.cpp | 18 +- src/mame/drivers/dynadice.cpp | 2 +- src/mame/drivers/dynax.cpp | 122 +- src/mame/drivers/dynduke.cpp | 18 +- src/mame/drivers/eacc.cpp | 6 +- src/mame/drivers/ec184x.cpp | 16 +- src/mame/drivers/ec65.cpp | 32 +- src/mame/drivers/ecoinf1.cpp | 20 +- src/mame/drivers/ecoinf2.cpp | 24 +- src/mame/drivers/ecoinf3.cpp | 26 +- src/mame/drivers/ecoinfr.cpp | 36 +- src/mame/drivers/egghunt.cpp | 6 +- src/mame/drivers/einstein.cpp | 50 +- src/mame/drivers/electra.cpp | 6 +- src/mame/drivers/electron.cpp | 8 +- src/mame/drivers/elekscmp.cpp | 6 +- src/mame/drivers/elf.cpp | 6 +- src/mame/drivers/elwro800.cpp | 6 +- src/mame/drivers/embargo.cpp | 4 +- src/mame/drivers/enigma2.cpp | 10 +- src/mame/drivers/enmirage.cpp | 59 +- src/mame/drivers/eolith.cpp | 2 +- src/mame/drivers/eolith16.cpp | 4 +- src/mame/drivers/ep64.cpp | 10 +- src/mame/drivers/epos.cpp | 22 +- src/mame/drivers/eprom.cpp | 8 +- src/mame/drivers/equites.cpp | 4 +- src/mame/drivers/ertictac.cpp | 10 +- src/mame/drivers/esd16.cpp | 42 +- src/mame/drivers/esh.cpp | 10 +- src/mame/drivers/espial.cpp | 8 +- src/mame/drivers/esq1.cpp | 18 +- src/mame/drivers/esq5505.cpp | 42 +- src/mame/drivers/esqasr.cpp | 10 +- src/mame/drivers/esqkt.cpp | 4 +- src/mame/drivers/esqmr.cpp | 8 +- src/mame/drivers/esripsys.cpp | 2 +- src/mame/drivers/et3400.cpp | 4 +- src/mame/drivers/eti660.cpp | 10 +- src/mame/drivers/ettrivia.cpp | 24 +- src/mame/drivers/eurocom2.cpp | 37 +- src/mame/drivers/europc.cpp | 9 +- src/mame/drivers/evmbug.cpp | 14 +- src/mame/drivers/excali64.cpp | 10 +- src/mame/drivers/exedexes.cpp | 6 +- src/mame/drivers/exelv.cpp | 26 +- src/mame/drivers/exerion.cpp | 2 +- src/mame/drivers/exidy.cpp | 54 +- src/mame/drivers/exidy440.cpp | 30 +- src/mame/drivers/exidyttl.cpp | 12 +- src/mame/drivers/exp85.cpp | 6 +- src/mame/drivers/expro02.cpp | 64 +- src/mame/drivers/exprraid.cpp | 2 +- src/mame/drivers/exterm.cpp | 4 +- src/mame/drivers/extrema.cpp | 22 +- src/mame/drivers/exzisus.cpp | 8 +- src/mame/drivers/f-32.cpp | 12 +- src/mame/drivers/f1gp.cpp | 12 +- src/mame/drivers/famibox.cpp | 4 +- src/mame/drivers/fantland.cpp | 26 +- src/mame/drivers/fanucs15.cpp | 6 +- src/mame/drivers/fanucspmg.cpp | 8 +- src/mame/drivers/fastfred.cpp | 14 +- src/mame/drivers/fastinvaders.cpp | 6 +- src/mame/drivers/fastlane.cpp | 4 +- src/mame/drivers/fb01.cpp | 6 +- src/mame/drivers/fc100.cpp | 8 +- src/mame/drivers/fccpu20.cpp | 28 +- src/mame/drivers/fccpu30.cpp | 34 +- src/mame/drivers/fcombat.cpp | 2 +- src/mame/drivers/fcrash.cpp | 46 +- src/mame/drivers/feversoc.cpp | 4 +- src/mame/drivers/fgoal.cpp | 6 +- src/mame/drivers/fidel6502.cpp | 114 +- src/mame/drivers/fidel68k.cpp | 20 +- src/mame/drivers/fidelmcs48.cpp | 6 +- src/mame/drivers/fidelz80.cpp | 52 +- src/mame/drivers/finalizr.cpp | 6 +- src/mame/drivers/fireball.cpp | 6 +- src/mame/drivers/firebeat.cpp | 4 +- src/mame/drivers/firefox.cpp | 6 +- src/mame/drivers/firetrap.cpp | 16 +- src/mame/drivers/firetrk.cpp | 8 +- src/mame/drivers/fitfight.cpp | 16 +- src/mame/drivers/fk1.cpp | 6 +- src/mame/drivers/flicker.cpp | 6 +- src/mame/drivers/flipjack.cpp | 4 +- src/mame/drivers/flkatck.cpp | 8 +- src/mame/drivers/flower.cpp | 6 +- src/mame/drivers/flstory.cpp | 20 +- src/mame/drivers/flyball.cpp | 6 +- src/mame/drivers/fm7.cpp | 26 +- src/mame/drivers/fmtowns.cpp | 28 +- src/mame/drivers/foodf.cpp | 10 +- src/mame/drivers/force68k.cpp | 26 +- src/mame/drivers/forte2.cpp | 2 +- src/mame/drivers/fortecar.cpp | 4 +- src/mame/drivers/fp1100.cpp | 4 +- src/mame/drivers/fp200.cpp | 4 +- src/mame/drivers/fp6000.cpp | 6 +- src/mame/drivers/freekick.cpp | 38 +- src/mame/drivers/fresh.cpp | 4 +- src/mame/drivers/fromanc2.cpp | 10 +- src/mame/drivers/fromance.cpp | 28 +- src/mame/drivers/fruitpc.cpp | 4 +- src/mame/drivers/ft68m.cpp | 15 +- src/mame/drivers/fungames.cpp | 8 +- src/mame/drivers/funkball.cpp | 4 +- src/mame/drivers/funkybee.cpp | 10 +- src/mame/drivers/funkyjet.cpp | 4 +- src/mame/drivers/funtech.cpp | 4 +- src/mame/drivers/funworld.cpp | 144 +- src/mame/drivers/funybubl.cpp | 8 +- src/mame/drivers/fuukifg2.cpp | 10 +- src/mame/drivers/fuukifg3.cpp | 8 +- src/mame/drivers/g627.cpp | 2 +- src/mame/drivers/gaelco.cpp | 28 +- src/mame/drivers/gaelco2.cpp | 22 +- src/mame/drivers/gaelco3d.cpp | 4 +- src/mame/drivers/gaelcopc.cpp | 12 +- src/mame/drivers/gaiden.cpp | 44 +- src/mame/drivers/gal3.cpp | 12 +- src/mame/drivers/galaga.cpp | 50 +- src/mame/drivers/galastrm.cpp | 4 +- src/mame/drivers/galaxi.cpp | 12 +- src/mame/drivers/galaxia.cpp | 14 +- src/mame/drivers/galaxian.cpp | 2 +- src/mame/drivers/galaxold.cpp | 70 +- src/mame/drivers/galaxy.cpp | 10 +- src/mame/drivers/galeb.cpp | 6 +- src/mame/drivers/galgame.cpp | 2 +- src/mame/drivers/galgames.cpp | 55 +- src/mame/drivers/galivan.cpp | 26 +- src/mame/drivers/galpani2.cpp | 26 +- src/mame/drivers/galpani3.cpp | 10 +- src/mame/drivers/galpanic.cpp | 10 +- src/mame/drivers/galspnbl.cpp | 8 +- src/mame/drivers/gamate.cpp | 11 +- src/mame/drivers/gambl186.cpp | 8 +- src/mame/drivers/gamecom.cpp | 6 +- src/mame/drivers/gamecstl.cpp | 4 +- src/mame/drivers/gameking.cpp | 6 +- src/mame/drivers/gameplan.cpp | 20 +- src/mame/drivers/gamepock.cpp | 4 +- src/mame/drivers/gammagic.cpp | 8 +- src/mame/drivers/gamtor.cpp | 2 +- src/mame/drivers/gaplus.cpp | 14 +- src/mame/drivers/gatron.cpp | 10 +- src/mame/drivers/gauntlet.cpp | 66 +- src/mame/drivers/gb.cpp | 22 +- src/mame/drivers/gba.cpp | 6 +- src/mame/drivers/gberet.cpp | 10 +- src/mame/drivers/gcpinbal.cpp | 10 +- src/mame/drivers/gei.cpp | 128 +- src/mame/drivers/geneve.cpp | 30 +- src/mame/drivers/geniusiq.cpp | 22 +- src/mame/drivers/genpc.cpp | 14 +- src/mame/drivers/ggconnie.cpp | 8 +- src/mame/drivers/ghosteo.cpp | 8 +- src/mame/drivers/giclassic.cpp | 12 +- src/mame/drivers/gijoe.cpp | 10 +- src/mame/drivers/gimix.cpp | 6 +- src/mame/drivers/ginganin.cpp | 2 +- src/mame/drivers/gizmondo.cpp | 2 +- src/mame/drivers/gkigt.cpp | 22 +- src/mame/drivers/gladiatr.cpp | 8 +- src/mame/drivers/glasgow.cpp | 16 +- src/mame/drivers/glass.cpp | 4 +- src/mame/drivers/globalfr.cpp | 50 +- src/mame/drivers/globalvr.cpp | 24 +- src/mame/drivers/gluck2.cpp | 6 +- src/mame/drivers/gmaster.cpp | 2 +- src/mame/drivers/gng.cpp | 24 +- src/mame/drivers/go2000.cpp | 4 +- src/mame/drivers/goal92.cpp | 6 +- src/mame/drivers/goindol.cpp | 4 +- src/mame/drivers/goldngam.cpp | 8 +- src/mame/drivers/goldnpkr.cpp | 206 +-- src/mame/drivers/goldstar.cpp | 138 +- src/mame/drivers/gomoku.cpp | 7 +- src/mame/drivers/good.cpp | 10 +- src/mame/drivers/goodejan.cpp | 10 +- src/mame/drivers/gotcha.cpp | 8 +- src/mame/drivers/gottlieb.cpp | 8 +- src/mame/drivers/gotya.cpp | 6 +- src/mame/drivers/goupil.cpp | 10 +- src/mame/drivers/gp2x.cpp | 4 +- src/mame/drivers/gp32.cpp | 4 +- src/mame/drivers/gp_1.cpp | 22 +- src/mame/drivers/gp_2.cpp | 32 +- src/mame/drivers/gpworld.cpp | 4 +- src/mame/drivers/gradius3.cpp | 10 +- src/mame/drivers/grchamp.cpp | 4 +- src/mame/drivers/grfd2301.cpp | 4 +- src/mame/drivers/gridlee.cpp | 4 +- src/mame/drivers/groundfx.cpp | 2 +- src/mame/drivers/gstream.cpp | 14 +- src/mame/drivers/gstriker.cpp | 8 +- src/mame/drivers/gsword.cpp | 8 +- src/mame/drivers/gticlub.cpp | 8 +- src/mame/drivers/gts1.cpp | 2 +- src/mame/drivers/gts3.cpp | 2 +- src/mame/drivers/gts3a.cpp | 80 +- src/mame/drivers/gts80.cpp | 50 +- src/mame/drivers/gts80a.cpp | 52 +- src/mame/drivers/gts80b.cpp | 136 +- src/mame/drivers/guab.cpp | 14 +- src/mame/drivers/gumbo.cpp | 18 +- src/mame/drivers/gunbustr.cpp | 8 +- src/mame/drivers/gundealr.cpp | 16 +- src/mame/drivers/gunpey.cpp | 6 +- src/mame/drivers/gunsmoke.cpp | 14 +- src/mame/drivers/gyruss.cpp | 8 +- src/mame/drivers/h19.cpp | 11 +- src/mame/drivers/h8.cpp | 8 +- src/mame/drivers/h89.cpp | 6 +- src/mame/drivers/halleys.cpp | 12 +- src/mame/drivers/hanaawas.cpp | 4 +- src/mame/drivers/hankin.cpp | 12 +- src/mame/drivers/hapyfish.cpp | 5 +- src/mame/drivers/harddriv.cpp | 268 +-- src/mame/drivers/harriet.cpp | 25 +- src/mame/drivers/hazelgr.cpp | 4 +- src/mame/drivers/hazeltin.cpp | 66 +- src/mame/drivers/hcastle.cpp | 12 +- src/mame/drivers/headonb.cpp | 4 +- src/mame/drivers/hec2hrp.cpp | 30 +- src/mame/drivers/hexion.cpp | 10 +- src/mame/drivers/hh_amis2k.cpp | 4 +- src/mame/drivers/hh_cop400.cpp | 46 +- src/mame/drivers/hh_hmcs40.cpp | 162 +- src/mame/drivers/hh_melps4.cpp | 10 +- src/mame/drivers/hh_pic16.cpp | 48 +- src/mame/drivers/hh_sm500.cpp | 6 +- src/mame/drivers/hh_sm510.cpp | 38 +- src/mame/drivers/hh_tms1k.cpp | 270 +-- src/mame/drivers/hh_ucom4.cpp | 88 +- src/mame/drivers/hideseek.cpp | 2 +- src/mame/drivers/higemaru.cpp | 4 +- src/mame/drivers/highvdeo.cpp | 42 +- src/mame/drivers/hikaru.cpp | 18 +- src/mame/drivers/himesiki.cpp | 8 +- src/mame/drivers/hitme.cpp | 14 +- src/mame/drivers/hitpoker.cpp | 2 +- src/mame/drivers/hk68v10.cpp | 6 +- src/mame/drivers/hnayayoi.cpp | 8 +- src/mame/drivers/hng64.cpp | 2 +- src/mame/drivers/holeland.cpp | 14 +- src/mame/drivers/homedata.cpp | 44 +- src/mame/drivers/homelab.cpp | 18 +- src/mame/drivers/homerun.cpp | 8 +- src/mame/drivers/homez80.cpp | 6 +- src/mame/drivers/horizon.cpp | 8 +- src/mame/drivers/hornet.cpp | 6 +- src/mame/drivers/hotblock.cpp | 4 +- src/mame/drivers/hotstuff.cpp | 4 +- src/mame/drivers/hp16500.cpp | 16 +- src/mame/drivers/hp48.cpp | 12 +- src/mame/drivers/hp49gp.cpp | 2 +- src/mame/drivers/hp64k.cpp | 1175 +++++++------ src/mame/drivers/hp9845.cpp | 140 +- src/mame/drivers/hp9k.cpp | 6 +- src/mame/drivers/hp9k_3xx.cpp | 30 +- src/mame/drivers/hp_ipc.cpp | 8 +- src/mame/drivers/hprot1.cpp | 4 +- src/mame/drivers/hpz80unk.cpp | 12 +- src/mame/drivers/ht68k.cpp | 10 +- src/mame/drivers/huebler.cpp | 6 +- src/mame/drivers/hunter2.cpp | 4 +- src/mame/drivers/hvyunit.cpp | 10 +- src/mame/drivers/hx20.cpp | 8 +- src/mame/drivers/hyhoo.cpp | 6 +- src/mame/drivers/hyperscan.cpp | 6 +- src/mame/drivers/hyperspt.cpp | 14 +- src/mame/drivers/hyprduel.cpp | 8 +- src/mame/drivers/i7000.cpp | 5 +- src/mame/drivers/ibm3153.cpp | 6 +- src/mame/drivers/ibm6580.cpp | 6 +- src/mame/drivers/ibmpc.cpp | 14 +- src/mame/drivers/ibmpcjr.cpp | 4 +- src/mame/drivers/icatel.cpp | 6 +- src/mame/drivers/ice_bozopail.cpp | 12 +- src/mame/drivers/ice_tbd.cpp | 8 +- src/mame/drivers/icecold.cpp | 6 +- src/mame/drivers/ichiban.cpp | 4 +- src/mame/drivers/idsa.cpp | 6 +- src/mame/drivers/ie15.cpp | 6 +- src/mame/drivers/if800.cpp | 6 +- src/mame/drivers/igs009.cpp | 6 +- src/mame/drivers/igs011.cpp | 4 +- src/mame/drivers/igs017.cpp | 36 +- src/mame/drivers/igs_fear.cpp | 2 +- src/mame/drivers/igs_m027.cpp | 4 +- src/mame/drivers/igs_m036.cpp | 12 +- src/mame/drivers/igspc.cpp | 6 +- src/mame/drivers/igspoker.cpp | 6 +- src/mame/drivers/ikki.cpp | 6 +- src/mame/drivers/imds.cpp | 12 +- src/mame/drivers/imds2.cpp | 6 +- src/mame/drivers/imolagp.cpp | 8 +- src/mame/drivers/imsai.cpp | 12 +- src/mame/drivers/inder.cpp | 18 +- src/mame/drivers/inderp.cpp | 6 +- src/mame/drivers/indiana.cpp | 10 +- src/mame/drivers/indigo.cpp | 8 +- src/mame/drivers/indy_indigo2.cpp | 36 +- src/mame/drivers/instantm.cpp | 4 +- src/mame/drivers/instruct.cpp | 6 +- src/mame/drivers/interact.cpp | 10 +- src/mame/drivers/interpro.cpp | 4 +- src/mame/drivers/intrscti.cpp | 2 +- src/mame/drivers/intv.cpp | 14 +- src/mame/drivers/inufuku.cpp | 6 +- src/mame/drivers/invqix.cpp | 6 +- src/mame/drivers/ipc.cpp | 16 +- src/mame/drivers/ipds.cpp | 12 +- src/mame/drivers/iq151.cpp | 6 +- src/mame/drivers/iqblock.cpp | 2 +- src/mame/drivers/iris3130.cpp | 4 +- src/mame/drivers/irisha.cpp | 6 +- src/mame/drivers/irobot.cpp | 2 +- src/mame/drivers/ironhors.cpp | 8 +- src/mame/drivers/isbc.cpp | 40 +- src/mame/drivers/isbc8010.cpp | 10 +- src/mame/drivers/isbc8030.cpp | 6 +- src/mame/drivers/iskr103x.cpp | 8 +- src/mame/drivers/istellar.cpp | 6 +- src/mame/drivers/istrebiteli.cpp | 10 +- src/mame/drivers/iteagle.cpp | 36 +- src/mame/drivers/itech32.cpp | 2 +- src/mame/drivers/itech8.cpp | 48 +- src/mame/drivers/itgambl2.cpp | 44 +- src/mame/drivers/itgambl3.cpp | 18 +- src/mame/drivers/itgamble.cpp | 30 +- src/mame/drivers/itt3030.cpp | 45 +- src/mame/drivers/jack.cpp | 2 +- src/mame/drivers/jackal.cpp | 14 +- src/mame/drivers/jackie.cpp | 2 +- src/mame/drivers/jackpool.cpp | 4 +- src/mame/drivers/jade.cpp | 12 +- src/mame/drivers/jaguar.cpp | 14 +- src/mame/drivers/jailbrek.cpp | 8 +- src/mame/drivers/jalmah.cpp | 14 +- src/mame/drivers/jangou.cpp | 38 +- src/mame/drivers/jankenmn.cpp | 6 +- src/mame/drivers/jantotsu.cpp | 6 +- src/mame/drivers/jchan.cpp | 6 +- src/mame/drivers/jclub2.cpp | 28 +- src/mame/drivers/jedi.cpp | 4 +- src/mame/drivers/jeutel.cpp | 11 +- src/mame/drivers/joctronic.cpp | 14 +- src/mame/drivers/jokrwild.cpp | 4 +- src/mame/drivers/jollyjgr.cpp | 2 +- src/mame/drivers/jongkyo.cpp | 2 +- src/mame/drivers/jonos.cpp | 6 +- src/mame/drivers/joystand.cpp | 6 +- src/mame/drivers/jp.cpp | 26 +- src/mame/drivers/jpmimpct.cpp | 38 +- src/mame/drivers/jpmmps.cpp | 418 ++--- src/mame/drivers/jpms80.cpp | 18 +- src/mame/drivers/jpmsru.cpp | 28 +- src/mame/drivers/jpmsys5.cpp | 16 +- src/mame/drivers/jpmsys5sw.cpp | 372 ++-- src/mame/drivers/jpmsys7.cpp | 26 +- src/mame/drivers/jr100.cpp | 8 +- src/mame/drivers/jr200.cpp | 8 +- src/mame/drivers/jrpacman.cpp | 2 +- src/mame/drivers/jtc.cpp | 18 +- src/mame/drivers/jubilee.cpp | 6 +- src/mame/drivers/juicebox.cpp | 2 +- src/mame/drivers/jungleyo.cpp | 6 +- src/mame/drivers/junior.cpp | 23 +- src/mame/drivers/junofrst.cpp | 4 +- src/mame/drivers/jupace.cpp | 6 +- src/mame/drivers/jupiter.cpp | 16 +- src/mame/drivers/jvh.cpp | 4 +- src/mame/drivers/k1003.cpp | 6 +- src/mame/drivers/k28.cpp | 6 +- src/mame/drivers/k8915.cpp | 12 +- src/mame/drivers/kaneko16.cpp | 36 +- src/mame/drivers/kangaroo.cpp | 10 +- src/mame/drivers/karnov.cpp | 24 +- src/mame/drivers/kas89.cpp | 4 +- src/mame/drivers/kaypro.cpp | 26 +- src/mame/drivers/kc.cpp | 14 +- src/mame/drivers/kchamp.cpp | 10 +- src/mame/drivers/kenseim.cpp | 2 +- src/mame/drivers/kickgoal.cpp | 12 +- src/mame/drivers/kim1.cpp | 6 +- src/mame/drivers/kingdrby.cpp | 12 +- src/mame/drivers/kingobox.cpp | 12 +- src/mame/drivers/kingpin.cpp | 6 +- src/mame/drivers/kinst.cpp | 4 +- src/mame/drivers/kissproto.cpp | 4 +- src/mame/drivers/klax.cpp | 16 +- src/mame/drivers/kncljoe.cpp | 8 +- src/mame/drivers/koftball.cpp | 8 +- src/mame/drivers/koikoi.cpp | 4 +- src/mame/drivers/konamigq.cpp | 6 +- src/mame/drivers/konamigv.cpp | 36 +- src/mame/drivers/konamigx.cpp | 2 +- src/mame/drivers/konamim2.cpp | 6 +- src/mame/drivers/konendev.cpp | 2 +- src/mame/drivers/konin.cpp | 6 +- src/mame/drivers/konmedal.cpp | 4 +- src/mame/drivers/kontest.cpp | 4 +- src/mame/drivers/kopunch.cpp | 4 +- src/mame/drivers/kramermc.cpp | 6 +- src/mame/drivers/kron.cpp | 6 +- src/mame/drivers/ksayakyu.cpp | 4 +- src/mame/drivers/ksys573.cpp | 234 +-- src/mame/drivers/kungfur.cpp | 8 +- src/mame/drivers/kurukuru.cpp | 14 +- src/mame/drivers/kyocera.cpp | 28 +- src/mame/drivers/kyugo.cpp | 42 +- src/mame/drivers/labyrunr.cpp | 8 +- src/mame/drivers/ladybug.cpp | 16 +- src/mame/drivers/ladyfrog.cpp | 8 +- src/mame/drivers/laser3k.cpp | 6 +- src/mame/drivers/laserbas.cpp | 8 +- src/mame/drivers/laserbat.cpp | 18 +- src/mame/drivers/lasso.cpp | 16 +- src/mame/drivers/lastbank.cpp | 8 +- src/mame/drivers/lastduel.cpp | 24 +- src/mame/drivers/lastfght.cpp | 2 +- src/mame/drivers/laz_aftrshok.cpp | 8 +- src/mame/drivers/laz_awetoss.cpp | 6 +- src/mame/drivers/laz_ribrac.cpp | 6 +- src/mame/drivers/lazercmd.cpp | 6 +- src/mame/drivers/lb186.cpp | 21 +- src/mame/drivers/lbeach.cpp | 4 +- src/mame/drivers/lc80.cpp | 12 +- src/mame/drivers/lcmate2.cpp | 6 +- src/mame/drivers/ldplayer.cpp | 14 +- src/mame/drivers/leapster.cpp | 6 +- src/mame/drivers/legionna.cpp | 60 +- src/mame/drivers/leland.cpp | 6 +- src/mame/drivers/lemmings.cpp | 6 +- src/mame/drivers/lethal.cpp | 18 +- src/mame/drivers/lethalj.cpp | 24 +- src/mame/drivers/lft.cpp | 17 +- src/mame/drivers/lg-dvd.cpp | 12 +- src/mame/drivers/lgp.cpp | 8 +- src/mame/drivers/liberate.cpp | 4 +- src/mame/drivers/liberatr.cpp | 6 +- src/mame/drivers/limenko.cpp | 16 +- src/mame/drivers/lindbergh.cpp | 40 +- src/mame/drivers/lisa.cpp | 12 +- src/mame/drivers/littlerb.cpp | 4 +- src/mame/drivers/lkage.cpp | 18 +- src/mame/drivers/llc.cpp | 29 +- src/mame/drivers/lockon.cpp | 6 +- src/mame/drivers/lola8a.cpp | 6 +- src/mame/drivers/looping.cpp | 2 +- src/mame/drivers/lordgun.cpp | 16 +- src/mame/drivers/lsasquad.cpp | 10 +- src/mame/drivers/ltcasino.cpp | 8 +- src/mame/drivers/ltd.cpp | 4 +- src/mame/drivers/luckgrln.cpp | 8 +- src/mame/drivers/lucky74.cpp | 16 +- src/mame/drivers/lvcards.cpp | 8 +- src/mame/drivers/lviv.cpp | 6 +- src/mame/drivers/lwings.cpp | 38 +- src/mame/drivers/lwriter.cpp | 6 +- src/mame/drivers/lynx.cpp | 8 +- src/mame/drivers/m10.cpp | 16 +- src/mame/drivers/m107.cpp | 14 +- src/mame/drivers/m14.cpp | 4 +- src/mame/drivers/m20.cpp | 16 +- src/mame/drivers/m24.cpp | 15 +- src/mame/drivers/m5.cpp | 14 +- src/mame/drivers/m52.cpp | 10 +- src/mame/drivers/m57.cpp | 6 +- src/mame/drivers/m58.cpp | 16 +- src/mame/drivers/m62.cpp | 46 +- src/mame/drivers/m63.cpp | 4 +- src/mame/drivers/m6805evs.cpp | 6 +- src/mame/drivers/m68705prg.cpp | 20 +- src/mame/drivers/m72.cpp | 66 +- src/mame/drivers/m79152pc.cpp | 6 +- src/mame/drivers/m79amb.cpp | 2 +- src/mame/drivers/m90.cpp | 38 +- src/mame/drivers/m92.cpp | 4 +- src/mame/drivers/mac.cpp | 106 +- src/mame/drivers/mac128.cpp | 2 +- src/mame/drivers/macp.cpp | 20 +- src/mame/drivers/macpci.cpp | 6 +- src/mame/drivers/macrossp.cpp | 2 +- src/mame/drivers/macs.cpp | 16 +- src/mame/drivers/madalien.cpp | 8 +- src/mame/drivers/madmotor.cpp | 6 +- src/mame/drivers/magic10.cpp | 6 +- src/mame/drivers/magicard.cpp | 4 +- src/mame/drivers/magicfly.cpp | 10 +- src/mame/drivers/magictg.cpp | 6 +- src/mame/drivers/magmax.cpp | 4 +- src/mame/drivers/magnum.cpp | 19 +- src/mame/drivers/magtouch.cpp | 4 +- src/mame/drivers/mainevt.cpp | 20 +- src/mame/drivers/mainsnk.cpp | 6 +- src/mame/drivers/majorpkr.cpp | 4 +- src/mame/drivers/malzak.cpp | 6 +- src/mame/drivers/manohman.cpp | 12 +- src/mame/drivers/mappy.cpp | 78 +- src/mame/drivers/marineb.cpp | 22 +- src/mame/drivers/marinedt.cpp | 4 +- src/mame/drivers/mario.cpp | 12 +- src/mame/drivers/markham.cpp | 4 +- src/mame/drivers/marywu.cpp | 6 +- src/mame/drivers/mastboy.cpp | 10 +- src/mame/drivers/matmania.cpp | 12 +- src/mame/drivers/maxaflex.cpp | 22 +- src/mame/drivers/maygay1b.cpp | 2 +- src/mame/drivers/maygayep.cpp | 2 +- src/mame/drivers/maygaysw.cpp | 22 +- src/mame/drivers/maygayv1.cpp | 2 +- src/mame/drivers/mazerbla.cpp | 6 +- src/mame/drivers/mbc200.cpp | 16 +- src/mame/drivers/mbc55x.cpp | 6 +- src/mame/drivers/mbee.cpp | 12 +- src/mame/drivers/mc10.cpp | 14 +- src/mame/drivers/mc1000.cpp | 6 +- src/mame/drivers/mc1502.cpp | 8 +- src/mame/drivers/mc80.cpp | 10 +- src/mame/drivers/mcatadv.cpp | 14 +- src/mame/drivers/mcb216.cpp | 18 +- src/mame/drivers/mccpm.cpp | 12 +- src/mame/drivers/mcr.cpp | 2 +- src/mame/drivers/mcr3.cpp | 2 +- src/mame/drivers/mcr68.cpp | 2 +- src/mame/drivers/meadows.cpp | 12 +- src/mame/drivers/meadwttl.cpp | 12 +- src/mame/drivers/mediagx.cpp | 2 +- src/mame/drivers/megadriv.cpp | 23 +- src/mame/drivers/megadrvb.cpp | 6 +- src/mame/drivers/megaphx.cpp | 2 +- src/mame/drivers/megaplay.cpp | 16 +- src/mame/drivers/megasys1.cpp | 34 +- src/mame/drivers/megatech.cpp | 14 +- src/mame/drivers/megazone.cpp | 14 +- src/mame/drivers/meijinsn.cpp | 4 +- src/mame/drivers/mekd2.cpp | 6 +- src/mame/drivers/mephisto.cpp | 4 +- src/mame/drivers/mephistp.cpp | 8 +- src/mame/drivers/merit.cpp | 52 +- src/mame/drivers/meritm.cpp | 106 +- src/mame/drivers/mermaid.cpp | 10 +- src/mame/drivers/mes.cpp | 8 +- src/mame/drivers/metalmx.cpp | 2 +- src/mame/drivers/metlclsh.cpp | 4 +- src/mame/drivers/metlfrzr.cpp | 2 +- src/mame/drivers/metro.cpp | 86 +- src/mame/drivers/mexico86.cpp | 14 +- src/mame/drivers/meyc8080.cpp | 12 +- src/mame/drivers/meyc8088.cpp | 4 +- src/mame/drivers/mgames.cpp | 6 +- src/mame/drivers/mgavegas.cpp | 16 +- src/mame/drivers/mgolf.cpp | 4 +- src/mame/drivers/mhavoc.cpp | 12 +- src/mame/drivers/mice.cpp | 19 +- src/mame/drivers/micral.cpp | 6 +- src/mame/drivers/micro20.cpp | 14 +- src/mame/drivers/micro3d.cpp | 13 +- src/mame/drivers/microdec.cpp | 10 +- src/mame/drivers/microkit.cpp | 6 +- src/mame/drivers/micronic.cpp | 6 +- src/mame/drivers/micropin.cpp | 4 +- src/mame/drivers/microtan.cpp | 6 +- src/mame/drivers/microvsn.cpp | 4 +- src/mame/drivers/midas.cpp | 6 +- src/mame/drivers/midqslvr.cpp | 12 +- src/mame/drivers/midtunit.cpp | 2 +- src/mame/drivers/midvunit.cpp | 2 +- src/mame/drivers/midwunit.cpp | 2 +- src/mame/drivers/midxunit.cpp | 2 +- src/mame/drivers/midyunit.cpp | 6 +- src/mame/drivers/midzeus.cpp | 30 +- src/mame/drivers/mikie.cpp | 8 +- src/mame/drivers/mikro80.cpp | 10 +- src/mame/drivers/mikromik.cpp | 12 +- src/mame/drivers/mikrosha.cpp | 8 +- src/mame/drivers/mil4000.cpp | 18 +- src/mame/drivers/mini2440.cpp | 4 +- src/mame/drivers/miniboy7.cpp | 8 +- src/mame/drivers/minicom.cpp | 8 +- src/mame/drivers/miniforce.cpp | 6 +- src/mame/drivers/minitel_2_rpic.cpp | 4 +- src/mame/drivers/minivadr.cpp | 4 +- src/mame/drivers/mirage.cpp | 6 +- src/mame/drivers/mirax.cpp | 4 +- src/mame/drivers/missb2.cpp | 21 +- src/mame/drivers/missile.cpp | 20 +- src/mame/drivers/mitchell.cpp | 22 +- src/mame/drivers/mits680b.cpp | 21 +- src/mame/drivers/mjkjidai.cpp | 6 +- src/mame/drivers/mjsenpu.cpp | 4 +- src/mame/drivers/mjsister.cpp | 4 +- src/mame/drivers/mk1.cpp | 6 +- src/mame/drivers/mk14.cpp | 6 +- src/mame/drivers/mk2.cpp | 6 +- src/mame/drivers/mk85.cpp | 6 +- src/mame/drivers/mk90.cpp | 6 +- src/mame/drivers/mkit09.cpp | 10 +- src/mame/drivers/mlanding.cpp | 8 +- src/mame/drivers/mmagic.cpp | 6 +- src/mame/drivers/mmd1.cpp | 14 +- src/mame/drivers/mmm.cpp | 4 +- src/mame/drivers/mmodular.cpp | 52 +- src/mame/drivers/mod8.cpp | 12 +- src/mame/drivers/model1.cpp | 28 +- src/mame/drivers/model2.cpp | 136 +- src/mame/drivers/model3.cpp | 40 +- src/mame/drivers/modellot.cpp | 10 +- src/mame/drivers/mogura.cpp | 4 +- src/mame/drivers/mole.cpp | 4 +- src/mame/drivers/molecular.cpp | 4 +- src/mame/drivers/momoko.cpp | 8 +- src/mame/drivers/monacogp.cpp | 8 +- src/mame/drivers/monty.cpp | 8 +- src/mame/drivers/monzagp.cpp | 6 +- src/mame/drivers/moo.cpp | 26 +- src/mame/drivers/mosaic.cpp | 8 +- src/mame/drivers/mouser.cpp | 4 +- src/mame/drivers/mpf1.cpp | 12 +- src/mame/drivers/mps1230.cpp | 8 +- src/mame/drivers/mpu12wbk.cpp | 4 +- src/mame/drivers/mpu2.cpp | 6 +- src/mame/drivers/mpu3.cpp | 80 +- src/mame/drivers/mpu4.cpp | 2 +- src/mame/drivers/mpu4dealem.cpp | 4 +- src/mame/drivers/mpu4plasma.cpp | 16 +- src/mame/drivers/mpu4vid.cpp | 110 +- src/mame/drivers/mpu5.cpp | 4 +- src/mame/drivers/mpu5.hxx | 1260 +++++++------- src/mame/drivers/mpz80.cpp | 6 +- src/mame/drivers/mquake.cpp | 2 +- src/mame/drivers/mrdo.cpp | 16 +- src/mame/drivers/mrflea.cpp | 4 +- src/mame/drivers/mrgame.cpp | 8 +- src/mame/drivers/mrjong.cpp | 8 +- src/mame/drivers/ms0515.cpp | 42 +- src/mame/drivers/ms32.cpp | 22 +- src/mame/drivers/ms9540.cpp | 12 +- src/mame/drivers/msbc1.cpp | 6 +- src/mame/drivers/msisaac.cpp | 4 +- src/mame/drivers/mstation.cpp | 6 +- src/mame/drivers/msx.cpp | 500 +++--- src/mame/drivers/mt735.cpp | 4 +- src/mame/drivers/mtouchxl.cpp | 24 +- src/mame/drivers/mtx.cpp | 12 +- src/mame/drivers/mugsmash.cpp | 6 +- src/mame/drivers/multfish.cpp | 230 +-- src/mame/drivers/multfish_boot.cpp | 248 +-- src/mame/drivers/multi16.cpp | 6 +- src/mame/drivers/multi8.cpp | 6 +- src/mame/drivers/multigam.cpp | 16 +- src/mame/drivers/munchmo.cpp | 6 +- src/mame/drivers/murogem.cpp | 10 +- src/mame/drivers/murogmbl.cpp | 4 +- src/mame/drivers/mustache.cpp | 2 +- src/mame/drivers/mvme147.cpp | 18 +- src/mame/drivers/mw18w.cpp | 6 +- src/mame/drivers/mw8080bw.cpp | 60 +- src/mame/drivers/mwarr.cpp | 8 +- src/mame/drivers/mwsub.cpp | 4 +- src/mame/drivers/mx2178.cpp | 12 +- src/mame/drivers/myb3k.cpp | 39 +- src/mame/drivers/mycom.cpp | 10 +- src/mame/drivers/mystston.cpp | 8 +- src/mame/drivers/mystwarr.cpp | 70 +- src/mame/drivers/myvision.cpp | 6 +- src/mame/drivers/mz2000.cpp | 12 +- src/mame/drivers/mz2500.cpp | 8 +- src/mame/drivers/mz3500.cpp | 4 +- src/mame/drivers/mz6500.cpp | 6 +- src/mame/drivers/mz700.cpp | 10 +- src/mame/drivers/mz80.cpp | 8 +- src/mame/drivers/mzr8105.cpp | 6 +- src/mame/drivers/n64.cpp | 6 +- src/mame/drivers/n8080.cpp | 32 +- src/mame/drivers/nakajies.cpp | 18 +- src/mame/drivers/namcofl.cpp | 4 +- src/mame/drivers/namcona1.cpp | 44 +- src/mame/drivers/namconb1.cpp | 6 +- src/mame/drivers/namcond1.cpp | 12 +- src/mame/drivers/namcops2.cpp | 106 +- src/mame/drivers/namcos1.cpp | 2 +- src/mame/drivers/namcos10.cpp | 4 +- src/mame/drivers/namcos11.cpp | 54 +- src/mame/drivers/namcos12.cpp | 4 +- src/mame/drivers/namcos2.cpp | 36 +- src/mame/drivers/namcos21.cpp | 16 +- src/mame/drivers/namcos22.cpp | 4 +- src/mame/drivers/namcos23.cpp | 6 +- src/mame/drivers/namcos86.cpp | 2 +- src/mame/drivers/nanos.cpp | 6 +- src/mame/drivers/naomi.cpp | 32 +- src/mame/drivers/nascom1.cpp | 10 +- src/mame/drivers/naughtyb.cpp | 26 +- src/mame/drivers/nbmj8688.cpp | 84 +- src/mame/drivers/nbmj8891.cpp | 58 +- src/mame/drivers/nbmj8900.cpp | 2 +- src/mame/drivers/nbmj8991.cpp | 34 +- src/mame/drivers/nbmj9195.cpp | 74 +- src/mame/drivers/nc.cpp | 4 +- src/mame/drivers/nemesis.cpp | 66 +- src/mame/drivers/neogeo.cpp | 11 +- src/mame/drivers/neogeocd.cpp | 11 +- src/mame/drivers/neopcb.cpp | 2 +- src/mame/drivers/neoprint.cpp | 15 +- src/mame/drivers/neptunp2.cpp | 4 +- src/mame/drivers/nes.cpp | 56 +- src/mame/drivers/newbrain.cpp | 10 +- src/mame/drivers/news.cpp | 8 +- src/mame/drivers/next.cpp | 20 +- src/mame/drivers/nexus3d.cpp | 6 +- src/mame/drivers/ngen.cpp | 12 +- src/mame/drivers/ngp.cpp | 8 +- src/mame/drivers/nibble.cpp | 6 +- src/mame/drivers/nightgal.cpp | 18 +- src/mame/drivers/ninjakd2.cpp | 10 +- src/mame/drivers/ninjaw.cpp | 14 +- src/mame/drivers/nitedrvr.cpp | 4 +- src/mame/drivers/niyanpai.cpp | 2 +- src/mame/drivers/nmg5.cpp | 4 +- src/mame/drivers/nmk16.cpp | 286 +-- src/mame/drivers/nokia_3310.cpp | 28 +- src/mame/drivers/norautp.cpp | 82 +- src/mame/drivers/notetaker.cpp | 11 +- src/mame/drivers/nova2001.cpp | 22 +- src/mame/drivers/novag6502.cpp | 28 +- src/mame/drivers/novag68k.cpp | 6 +- src/mame/drivers/novagmcs48.cpp | 8 +- src/mame/drivers/nsm.cpp | 4 +- src/mame/drivers/nsmpoker.cpp | 6 +- src/mame/drivers/nss.cpp | 4 +- src/mame/drivers/nwk-tr.cpp | 12 +- src/mame/drivers/nycaptor.cpp | 12 +- src/mame/drivers/nyny.cpp | 8 +- src/mame/drivers/ob68k1a.cpp | 6 +- src/mame/drivers/octopus.cpp | 14 +- src/mame/drivers/odyssey2.cpp | 20 +- src/mame/drivers/offtwall.cpp | 2 +- src/mame/drivers/ohmygod.cpp | 8 +- src/mame/drivers/ojankohs.cpp | 28 +- src/mame/drivers/okean240.cpp | 39 +- src/mame/drivers/olibochu.cpp | 4 +- src/mame/drivers/omegrace.cpp | 2 +- src/mame/drivers/ondra.cpp | 8 +- src/mame/drivers/oneshot.cpp | 10 +- src/mame/drivers/onetwo.cpp | 8 +- src/mame/drivers/onyx.cpp | 12 +- src/mame/drivers/opwolf.cpp | 24 +- src/mame/drivers/orao.cpp | 8 +- src/mame/drivers/orbit.cpp | 4 +- src/mame/drivers/oric.cpp | 20 +- src/mame/drivers/orion.cpp | 22 +- src/mame/drivers/osbexec.cpp | 20 +- src/mame/drivers/osborne1.cpp | 10 +- src/mame/drivers/osi.cpp | 20 +- src/mame/drivers/othello.cpp | 4 +- src/mame/drivers/othunder.cpp | 12 +- src/mame/drivers/otomedius.cpp | 4 +- src/mame/drivers/overdriv.cpp | 8 +- src/mame/drivers/p112.cpp | 6 +- src/mame/drivers/p2000t.cpp | 10 +- src/mame/drivers/p8k.cpp | 22 +- src/mame/drivers/pachifev.cpp | 4 +- src/mame/drivers/pacland.cpp | 12 +- src/mame/drivers/pacman.cpp | 136 +- src/mame/drivers/palm.cpp | 36 +- src/mame/drivers/palmz22.cpp | 4 +- src/mame/drivers/pandoras.cpp | 4 +- src/mame/drivers/pangofun.cpp | 2 +- src/mame/drivers/panicr.cpp | 2 +- src/mame/drivers/paradise.cpp | 6 +- src/mame/drivers/paranoia.cpp | 6 +- src/mame/drivers/parodius.cpp | 10 +- src/mame/drivers/partner.cpp | 10 +- src/mame/drivers/pasha2.cpp | 6 +- src/mame/drivers/paso1600.cpp | 6 +- src/mame/drivers/pasogo.cpp | 7 +- src/mame/drivers/pasopia.cpp | 6 +- src/mame/drivers/pasopia7.cpp | 4 +- src/mame/drivers/pass.cpp | 6 +- src/mame/drivers/pastelg.cpp | 10 +- src/mame/drivers/patapata.cpp | 12 +- src/mame/drivers/patinho_feio.cpp | 30 +- src/mame/drivers/pb1000.cpp | 10 +- src/mame/drivers/pbaction.cpp | 10 +- src/mame/drivers/pc.cpp | 62 +- src/mame/drivers/pc100.cpp | 6 +- src/mame/drivers/pc1500.cpp | 6 +- src/mame/drivers/pc1512.cpp | 30 +- src/mame/drivers/pc2000.cpp | 44 +- src/mame/drivers/pc4.cpp | 6 +- src/mame/drivers/pc6001.cpp | 14 +- src/mame/drivers/pc8001.cpp | 10 +- src/mame/drivers/pc8401a.cpp | 10 +- src/mame/drivers/pc8801.cpp | 38 +- src/mame/drivers/pc88va.cpp | 8 +- src/mame/drivers/pc9801.cpp | 36 +- src/mame/drivers/pcat_dyn.cpp | 6 +- src/mame/drivers/pcat_nit.cpp | 4 +- src/mame/drivers/pcd.cpp | 12 +- src/mame/drivers/pce.cpp | 14 +- src/mame/drivers/pce220.cpp | 14 +- src/mame/drivers/pcfx.cpp | 10 +- src/mame/drivers/pcipc.cpp | 8 +- src/mame/drivers/pcktgal.cpp | 6 +- src/mame/drivers/pcm.cpp | 6 +- src/mame/drivers/pcw.cpp | 14 +- src/mame/drivers/pcw16.cpp | 6 +- src/mame/drivers/pcxt.cpp | 17 +- src/mame/drivers/pda600.cpp | 6 +- src/mame/drivers/pdp1.cpp | 30 +- src/mame/drivers/pdp11.cpp | 18 +- src/mame/drivers/pecom.cpp | 10 +- src/mame/drivers/pegasus.cpp | 8 +- src/mame/drivers/pencil2.cpp | 6 +- src/mame/drivers/pengadvb.cpp | 2 +- src/mame/drivers/pengo.cpp | 18 +- src/mame/drivers/pentagon.cpp | 8 +- src/mame/drivers/peoplepc.cpp | 4 +- src/mame/drivers/peplus.cpp | 2 +- src/mame/drivers/pes.cpp | 10 +- src/mame/drivers/pet.cpp | 84 +- src/mame/drivers/peyper.cpp | 28 +- src/mame/drivers/pg685.cpp | 20 +- src/mame/drivers/pgm.cpp | 2 +- src/mame/drivers/pgm2.cpp | 2 +- src/mame/drivers/pgm3.cpp | 2 +- src/mame/drivers/phc25.cpp | 12 +- src/mame/drivers/phoenix.cpp | 65 +- src/mame/drivers/photon.cpp | 8 +- src/mame/drivers/photon2.cpp | 8 +- src/mame/drivers/photoply.cpp | 2 +- src/mame/drivers/phunsy.cpp | 10 +- src/mame/drivers/piggypas.cpp | 18 +- src/mame/drivers/pimps.cpp | 12 +- src/mame/drivers/pinball2k.cpp | 2 +- src/mame/drivers/pingpong.cpp | 8 +- src/mame/drivers/pinkiri8.cpp | 16 +- src/mame/drivers/pipbug.cpp | 6 +- src/mame/drivers/pipedrm.cpp | 14 +- src/mame/drivers/pipeline.cpp | 4 +- src/mame/drivers/pirates.cpp | 8 +- src/mame/drivers/piratesh.cpp | 6 +- src/mame/drivers/pitagjr.cpp | 6 +- src/mame/drivers/pitnrun.cpp | 6 +- src/mame/drivers/pk8000.cpp | 10 +- src/mame/drivers/pk8020.cpp | 12 +- src/mame/drivers/pkscram.cpp | 2 +- src/mame/drivers/pktgaldx.cpp | 14 +- src/mame/drivers/plan80.cpp | 6 +- src/mame/drivers/play_1.cpp | 12 +- src/mame/drivers/play_2.cpp | 18 +- src/mame/drivers/play_3.cpp | 44 +- src/mame/drivers/playch10.cpp | 4 +- src/mame/drivers/playmark.cpp | 38 +- src/mame/drivers/plus4.cpp | 32 +- src/mame/drivers/pluto5.cpp | 4 +- src/mame/drivers/plygonet.cpp | 10 +- src/mame/drivers/pm68k.cpp | 12 +- src/mame/drivers/pmd85.cpp | 22 +- src/mame/drivers/pmi80.cpp | 6 +- src/mame/drivers/pntnpuzl.cpp | 2 +- src/mame/drivers/pockchal.cpp | 6 +- src/mame/drivers/pocketc.cpp | 46 +- src/mame/drivers/pockstat.cpp | 6 +- src/mame/drivers/pofo.cpp | 12 +- src/mame/drivers/poisk1.cpp | 7 +- src/mame/drivers/pokechmp.cpp | 4 +- src/mame/drivers/pokemini.cpp | 4 +- src/mame/drivers/poker72.cpp | 2 +- src/mame/drivers/polepos.cpp | 26 +- src/mame/drivers/policetr.cpp | 18 +- src/mame/drivers/poly.cpp | 12 +- src/mame/drivers/poly88.cpp | 8 +- src/mame/drivers/poly880.cpp | 6 +- src/mame/drivers/polyplay.cpp | 10 +- src/mame/drivers/pong.cpp | 38 +- src/mame/drivers/poolshrk.cpp | 2 +- src/mame/drivers/pooyan.cpp | 8 +- src/mame/drivers/popeye.cpp | 14 +- src/mame/drivers/popobear.cpp | 6 +- src/mame/drivers/popper.cpp | 6 +- src/mame/drivers/portrait.cpp | 6 +- src/mame/drivers/potgoldu.cpp | 6 +- src/mame/drivers/powerbal.cpp | 10 +- src/mame/drivers/powerins.cpp | 16 +- src/mame/drivers/pp01.cpp | 6 +- src/mame/drivers/ppmast93.cpp | 4 +- src/mame/drivers/prehisle.cpp | 12 +- src/mame/drivers/prestige.cpp | 44 +- src/mame/drivers/primo.cpp | 18 +- src/mame/drivers/pro80.cpp | 6 +- src/mame/drivers/proconn.cpp | 4 +- src/mame/drivers/prodigy.cpp | 12 +- src/mame/drivers/prof180x.cpp | 8 +- src/mame/drivers/prof80.cpp | 6 +- src/mame/drivers/progolf.cpp | 6 +- src/mame/drivers/prophet600.cpp | 2 +- src/mame/drivers/proteus3.cpp | 12 +- src/mame/drivers/ps2.cpp | 22 +- src/mame/drivers/pse.cpp | 16 +- src/mame/drivers/psikyo.cpp | 42 +- src/mame/drivers/psikyo4.cpp | 20 +- src/mame/drivers/psikyosh.cpp | 30 +- src/mame/drivers/psion.cpp | 28 +- src/mame/drivers/psx.cpp | 22 +- src/mame/drivers/psychic5.cpp | 10 +- src/mame/drivers/pt68k4.cpp | 22 +- src/mame/drivers/ptcsol.cpp | 10 +- src/mame/drivers/pturn.cpp | 2 +- src/mame/drivers/puckpkmn.cpp | 6 +- src/mame/drivers/pulsar.cpp | 10 +- src/mame/drivers/punchout.cpp | 18 +- src/mame/drivers/pv1000.cpp | 14 +- src/mame/drivers/pv2000.cpp | 6 +- src/mame/drivers/pv9234.cpp | 22 +- src/mame/drivers/pve500.cpp | 6 +- src/mame/drivers/pwrview.cpp | 4 +- src/mame/drivers/px4.cpp | 4 +- src/mame/drivers/px8.cpp | 6 +- src/mame/drivers/pyl601.cpp | 6 +- src/mame/drivers/pyson.cpp | 8 +- src/mame/drivers/pzletime.cpp | 6 +- src/mame/drivers/qdrmfgp.cpp | 10 +- src/mame/drivers/qix.cpp | 38 +- src/mame/drivers/ql.cpp | 32 +- src/mame/drivers/qtsbc.cpp | 12 +- src/mame/drivers/quakeat.cpp | 4 +- src/mame/drivers/quantum.cpp | 8 +- src/mame/drivers/quasar.cpp | 6 +- src/mame/drivers/queen.cpp | 4 +- src/mame/drivers/quizdna.cpp | 10 +- src/mame/drivers/quizo.cpp | 2 +- src/mame/drivers/quizpani.cpp | 6 +- src/mame/drivers/quizpun2.cpp | 6 +- src/mame/drivers/quizshow.cpp | 2 +- src/mame/drivers/qx10.cpp | 6 +- src/mame/drivers/r2dtank.cpp | 4 +- src/mame/drivers/r2dx_v33.cpp | 8 +- src/mame/drivers/r9751.cpp | 6 +- src/mame/drivers/rabbit.cpp | 2 +- src/mame/drivers/radio86.cpp | 26 +- src/mame/drivers/raiden.cpp | 8 +- src/mame/drivers/raiden2.cpp | 10 +- src/mame/drivers/rainbow.cpp | 20 +- src/mame/drivers/rallyx.cpp | 38 +- src/mame/drivers/rambo.cpp | 6 +- src/mame/drivers/rampart.cpp | 6 +- src/mame/drivers/ramtek.cpp | 18 +- src/mame/drivers/rastan.cpp | 22 +- src/mame/drivers/rastersp.cpp | 6 +- src/mame/drivers/ravens.cpp | 16 +- src/mame/drivers/rbisland.cpp | 12 +- src/mame/drivers/rbmk.cpp | 6 +- src/mame/drivers/rc702.cpp | 12 +- src/mame/drivers/rc759.cpp | 64 +- src/mame/drivers/rcorsair.cpp | 4 +- src/mame/drivers/rd100.cpp | 6 +- src/mame/drivers/rd110.cpp | 4 +- src/mame/drivers/re900.cpp | 8 +- src/mame/drivers/realbrk.cpp | 16 +- src/mame/drivers/redalert.cpp | 16 +- src/mame/drivers/redclash.cpp | 18 +- src/mame/drivers/relief.cpp | 4 +- src/mame/drivers/renegade.cpp | 4 +- src/mame/drivers/replicator.cpp | 6 +- src/mame/drivers/retofinv.cpp | 8 +- src/mame/drivers/rex6000.cpp | 12 +- src/mame/drivers/rgum.cpp | 4 +- src/mame/drivers/risc2500.cpp | 10 +- src/mame/drivers/riscpc.cpp | 24 +- src/mame/drivers/rltennis.cpp | 4 +- src/mame/drivers/rm380z.cpp | 22 +- src/mame/drivers/rmhaihai.cpp | 4 +- src/mame/drivers/rmnimbus.cpp | 14 +- src/mame/drivers/rmt32.cpp | 6 +- src/mame/drivers/rockrage.cpp | 8 +- src/mame/drivers/rocnrope.cpp | 4 +- src/mame/drivers/rohga.cpp | 36 +- src/mame/drivers/rollerg.cpp | 6 +- src/mame/drivers/rollext.cpp | 2 +- src/mame/drivers/rollrace.cpp | 8 +- src/mame/drivers/rotaryf.cpp | 4 +- src/mame/drivers/roul.cpp | 4 +- src/mame/drivers/route16.cpp | 34 +- src/mame/drivers/rowamet.cpp | 4 +- src/mame/drivers/royalmah.cpp | 76 +- src/mame/drivers/rpunch.cpp | 16 +- src/mame/drivers/rsc55.cpp | 4 +- src/mame/drivers/rt1715.cpp | 30 +- src/mame/drivers/runaway.cpp | 6 +- src/mame/drivers/rungun.cpp | 24 +- src/mame/drivers/rvoice.cpp | 12 +- src/mame/drivers/rx78.cpp | 2 +- src/mame/drivers/s11.cpp | 20 +- src/mame/drivers/s11a.cpp | 26 +- src/mame/drivers/s11b.cpp | 110 +- src/mame/drivers/s11c.cpp | 2 +- src/mame/drivers/s3.cpp | 16 +- src/mame/drivers/s4.cpp | 36 +- src/mame/drivers/s6.cpp | 24 +- src/mame/drivers/s6a.cpp | 10 +- src/mame/drivers/s7.cpp | 52 +- src/mame/drivers/s8.cpp | 6 +- src/mame/drivers/s8a.cpp | 4 +- src/mame/drivers/s9.cpp | 18 +- src/mame/drivers/sacstate.cpp | 12 +- src/mame/drivers/safarir.cpp | 6 +- src/mame/drivers/sage2.cpp | 6 +- src/mame/drivers/sam.cpp | 398 ++--- src/mame/drivers/samcoupe.cpp | 6 +- src/mame/drivers/sandscrp.cpp | 10 +- src/mame/drivers/sangho.cpp | 6 +- src/mame/drivers/sanremmg.cpp | 4 +- src/mame/drivers/sanremo.cpp | 6 +- src/mame/drivers/sansa_fuze.cpp | 6 +- src/mame/drivers/sapi1.cpp | 24 +- src/mame/drivers/saturn.cpp | 4 +- src/mame/drivers/sauro.cpp | 12 +- src/mame/drivers/savia84.cpp | 6 +- src/mame/drivers/savquest.cpp | 4 +- src/mame/drivers/sbasketb.cpp | 10 +- src/mame/drivers/sbc6510.cpp | 6 +- src/mame/drivers/sbowling.cpp | 4 +- src/mame/drivers/sbrain.cpp | 6 +- src/mame/drivers/sbrkout.cpp | 10 +- src/mame/drivers/sbugger.cpp | 6 +- src/mame/drivers/sc1.cpp | 6 +- src/mame/drivers/sc2.cpp | 6 +- src/mame/drivers/scm_500.cpp | 4 +- src/mame/drivers/scobra.cpp | 44 +- src/mame/drivers/scorpion.cpp | 14 +- src/mame/drivers/scotrsht.cpp | 4 +- src/mame/drivers/scramble.cpp | 6 +- src/mame/drivers/scregg.cpp | 10 +- src/mame/drivers/scv.cpp | 8 +- src/mame/drivers/scyclone.cpp | 18 +- src/mame/drivers/sderby.cpp | 40 +- src/mame/drivers/sdk80.cpp | 6 +- src/mame/drivers/sdk85.cpp | 6 +- src/mame/drivers/sdk86.cpp | 6 +- src/mame/drivers/seabattl.cpp | 6 +- src/mame/drivers/sealy.cpp | 6 +- src/mame/drivers/seattle.cpp | 2 +- src/mame/drivers/seattlecmp.cpp | 13 +- src/mame/drivers/sega_sawatte.cpp | 4 +- src/mame/drivers/segac2.cpp | 2 +- src/mame/drivers/segacoin.cpp | 4 +- src/mame/drivers/segae.cpp | 24 +- src/mame/drivers/segag80r.cpp | 20 +- src/mame/drivers/segag80v.cpp | 26 +- src/mame/drivers/segahang.cpp | 2 +- src/mame/drivers/segajw.cpp | 4 +- src/mame/drivers/segald.cpp | 14 +- src/mame/drivers/segam1.cpp | 6 +- src/mame/drivers/segaorun.cpp | 2 +- src/mame/drivers/segapico.cpp | 9 +- src/mame/drivers/segapm.cpp | 6 +- src/mame/drivers/segas16a.cpp | 2 +- src/mame/drivers/segas16b.cpp | 14 +- src/mame/drivers/segas18.cpp | 2 +- src/mame/drivers/segas24.cpp | 24 +- src/mame/drivers/segas32.cpp | 108 +- src/mame/drivers/segasp.cpp | 22 +- src/mame/drivers/segaufo.cpp | 16 +- src/mame/drivers/segaxbd.cpp | 162 +- src/mame/drivers/segaybd.cpp | 38 +- src/mame/drivers/seibuspi.cpp | 10 +- src/mame/drivers/seicross.cpp | 16 +- src/mame/drivers/seicupbl.cpp | 10 +- src/mame/drivers/selz80.cpp | 8 +- src/mame/drivers/sengokmj.cpp | 6 +- src/mame/drivers/senjyo.cpp | 16 +- src/mame/drivers/seta.cpp | 208 +-- src/mame/drivers/seta2.cpp | 68 +- src/mame/drivers/sf.cpp | 18 +- src/mame/drivers/sfbonus.cpp | 4 +- src/mame/drivers/sfcbox.cpp | 12 +- src/mame/drivers/sfkick.cpp | 2 +- src/mame/drivers/sg1000.cpp | 28 +- src/mame/drivers/sg1000a.cpp | 8 +- src/mame/drivers/sh4robot.cpp | 6 +- src/mame/drivers/shadfrce.cpp | 10 +- src/mame/drivers/shangha3.cpp | 12 +- src/mame/drivers/shanghai.cpp | 16 +- src/mame/drivers/shangkid.cpp | 18 +- src/mame/drivers/shaolins.cpp | 10 +- src/mame/drivers/shisen.cpp | 12 +- src/mame/drivers/shootout.cpp | 4 +- src/mame/drivers/shougi.cpp | 8 +- src/mame/drivers/shtzone.cpp | 4 +- src/mame/drivers/shuuz.cpp | 8 +- src/mame/drivers/sidearms.cpp | 6 +- src/mame/drivers/sidepckt.cpp | 4 +- src/mame/drivers/sigmab52.cpp | 2 +- src/mame/drivers/sigmab98.cpp | 12 +- src/mame/drivers/silkroad.cpp | 6 +- src/mame/drivers/silvmil.cpp | 6 +- src/mame/drivers/simpl156.cpp | 8 +- src/mame/drivers/simple_st0016.cpp | 12 +- src/mame/drivers/simpsons.cpp | 16 +- src/mame/drivers/sitcom.cpp | 10 +- src/mame/drivers/skeetsht.cpp | 6 +- src/mame/drivers/skimaxx.cpp | 12 +- src/mame/drivers/skullxbo.cpp | 2 +- src/mame/drivers/skyarmy.cpp | 4 +- src/mame/drivers/skydiver.cpp | 4 +- src/mame/drivers/skyfox.cpp | 2 +- src/mame/drivers/skykid.cpp | 2 +- src/mame/drivers/skylncr.cpp | 22 +- src/mame/drivers/skyraid.cpp | 4 +- src/mame/drivers/slapfght.cpp | 22 +- src/mame/drivers/slapshot.cpp | 10 +- src/mame/drivers/slc1.cpp | 6 +- src/mame/drivers/sleic.cpp | 10 +- src/mame/drivers/slicer.cpp | 44 +- src/mame/drivers/sliver.cpp | 8 +- src/mame/drivers/slotcarn.cpp | 10 +- src/mame/drivers/sm1800.cpp | 6 +- src/mame/drivers/sm7238.cpp | 6 +- src/mame/drivers/smc777.cpp | 26 +- src/mame/drivers/sms.cpp | 48 +- src/mame/drivers/sms_bootleg.cpp | 8 +- src/mame/drivers/smsmcorp.cpp | 10 +- src/mame/drivers/snes.cpp | 14 +- src/mame/drivers/snesb.cpp | 12 +- src/mame/drivers/snk.cpp | 120 +- src/mame/drivers/snk6502.cpp | 52 +- src/mame/drivers/snk68.cpp | 28 +- src/mame/drivers/snookr10.cpp | 16 +- src/mame/drivers/snowbros.cpp | 84 +- src/mame/drivers/socrates.cpp | 16 +- src/mame/drivers/softbox.cpp | 12 +- src/mame/drivers/solomon.cpp | 6 +- src/mame/drivers/sonson.cpp | 6 +- src/mame/drivers/sorcerer.cpp | 8 +- src/mame/drivers/sothello.cpp | 6 +- src/mame/drivers/spacefb.cpp | 20 +- src/mame/drivers/spaceg.cpp | 4 +- src/mame/drivers/spartanxtec.cpp | 4 +- src/mame/drivers/spbactn.cpp | 14 +- src/mame/drivers/spc1000.cpp | 8 +- src/mame/drivers/spc1500.cpp | 6 +- src/mame/drivers/spcforce.cpp | 10 +- src/mame/drivers/spdodgeb.cpp | 12 +- src/mame/drivers/spec128.cpp | 10 +- src/mame/drivers/special.cpp | 22 +- src/mame/drivers/spectra.cpp | 4 +- src/mame/drivers/spectrum.cpp | 68 +- src/mame/drivers/speedatk.cpp | 4 +- src/mame/drivers/speedbal.cpp | 2 +- src/mame/drivers/speedspn.cpp | 6 +- src/mame/drivers/speglsht.cpp | 2 +- src/mame/drivers/spiders.cpp | 10 +- src/mame/drivers/spinb.cpp | 10 +- src/mame/drivers/splash.cpp | 28 +- src/mame/drivers/splus.cpp | 4 +- src/mame/drivers/spoker.cpp | 8 +- src/mame/drivers/spool99.cpp | 4 +- src/mame/drivers/sprcros2.cpp | 6 +- src/mame/drivers/sprint2.cpp | 2 +- src/mame/drivers/sprint4.cpp | 6 +- src/mame/drivers/sprint8.cpp | 6 +- src/mame/drivers/spy.cpp | 6 +- src/mame/drivers/spyhuntertec.cpp | 2 +- src/mame/drivers/squale.cpp | 13 +- src/mame/drivers/srmp2.cpp | 28 +- src/mame/drivers/srmp5.cpp | 2 +- src/mame/drivers/srmp6.cpp | 4 +- src/mame/drivers/srumbler.cpp | 10 +- src/mame/drivers/ssem.cpp | 6 +- src/mame/drivers/ssfindo.cpp | 8 +- src/mame/drivers/sshangha.cpp | 4 +- src/mame/drivers/sshot.cpp | 6 +- src/mame/drivers/ssingles.cpp | 2 +- src/mame/drivers/sslam.cpp | 14 +- src/mame/drivers/ssozumo.cpp | 4 +- src/mame/drivers/sspeedr.cpp | 4 +- src/mame/drivers/ssrj.cpp | 4 +- src/mame/drivers/sstrangr.cpp | 6 +- src/mame/drivers/ssv.cpp | 2 +- src/mame/drivers/ssystem3.cpp | 4 +- src/mame/drivers/st17xx.cpp | 24 +- src/mame/drivers/st_mp100.cpp | 26 +- src/mame/drivers/st_mp200.cpp | 46 +- src/mame/drivers/stactics.cpp | 4 +- src/mame/drivers/stadhero.cpp | 4 +- src/mame/drivers/starcrus.cpp | 4 +- src/mame/drivers/starfire.cpp | 2 +- src/mame/drivers/stargame.cpp | 6 +- src/mame/drivers/starshp1.cpp | 6 +- src/mame/drivers/starwars.cpp | 2 +- src/mame/drivers/statriv2.cpp | 32 +- src/mame/drivers/stellafr.cpp | 6 +- src/mame/drivers/stfight.cpp | 4 +- src/mame/drivers/stlforce.cpp | 4 +- src/mame/drivers/stratos.cpp | 2 +- src/mame/drivers/strnskil.cpp | 10 +- src/mame/drivers/studio2.cpp | 24 +- src/mame/drivers/stuntair.cpp | 4 +- src/mame/drivers/stv.cpp | 186 +- src/mame/drivers/su2000.cpp | 4 +- src/mame/drivers/sub.cpp | 4 +- src/mame/drivers/subhuntr.cpp | 4 +- src/mame/drivers/subs.cpp | 4 +- src/mame/drivers/subsino.cpp | 14 +- src/mame/drivers/subsino2.cpp | 14 +- src/mame/drivers/summit.cpp | 4 +- src/mame/drivers/sumt8035.cpp | 6 +- src/mame/drivers/sun1.cpp | 19 +- src/mame/drivers/sun2.cpp | 10 +- src/mame/drivers/sun3.cpp | 18 +- src/mame/drivers/sun3x.cpp | 10 +- src/mame/drivers/sun4.cpp | 28 +- src/mame/drivers/suna16.cpp | 18 +- src/mame/drivers/suna8.cpp | 12 +- src/mame/drivers/supbtime.cpp | 16 +- src/mame/drivers/supdrapo.cpp | 10 +- src/mame/drivers/supduck.cpp | 6 +- src/mame/drivers/super6.cpp | 8 +- src/mame/drivers/super80.cpp | 6 +- src/mame/drivers/superchs.cpp | 4 +- src/mame/drivers/supercrd.cpp | 8 +- src/mame/drivers/superdq.cpp | 8 +- src/mame/drivers/superqix.cpp | 26 +- src/mame/drivers/superslave.cpp | 6 +- src/mame/drivers/supertnk.cpp | 2 +- src/mame/drivers/superwng.cpp | 4 +- src/mame/drivers/supracan.cpp | 6 +- src/mame/drivers/suprgolf.cpp | 10 +- src/mame/drivers/suprloco.cpp | 4 +- src/mame/drivers/suprnova.cpp | 32 +- src/mame/drivers/suprridr.cpp | 4 +- src/mame/drivers/suprslam.cpp | 4 +- src/mame/drivers/supstarf.cpp | 4 +- src/mame/drivers/surpratk.cpp | 8 +- src/mame/drivers/sv8000.cpp | 6 +- src/mame/drivers/svi318.cpp | 12 +- src/mame/drivers/svision.cpp | 14 +- src/mame/drivers/svmu.cpp | 6 +- src/mame/drivers/swtpc.cpp | 21 +- src/mame/drivers/swtpc09.cpp | 16 +- src/mame/drivers/swyft.cpp | 6 +- src/mame/drivers/sym1.cpp | 6 +- src/mame/drivers/symbolics.cpp | 4 +- src/mame/drivers/sys2900.cpp | 4 +- src/mame/drivers/systec.cpp | 12 +- src/mame/drivers/system1.cpp | 126 +- src/mame/drivers/system16.cpp | 70 +- src/mame/drivers/tagteam.cpp | 6 +- src/mame/drivers/tail2nos.cpp | 14 +- src/mame/drivers/taito.cpp | 72 +- src/mame/drivers/taito_b.cpp | 98 +- src/mame/drivers/taito_f2.cpp | 136 +- src/mame/drivers/taito_f3.cpp | 6 +- src/mame/drivers/taito_h.cpp | 22 +- src/mame/drivers/taito_l.cpp | 80 +- src/mame/drivers/taito_o.cpp | 4 +- src/mame/drivers/taito_x.cpp | 28 +- src/mame/drivers/taito_z.cpp | 88 +- src/mame/drivers/taitoair.cpp | 12 +- src/mame/drivers/taitogn.cpp | 58 +- src/mame/drivers/taitojc.cpp | 4 +- src/mame/drivers/taitopjc.cpp | 2 +- src/mame/drivers/taitosj.cpp | 26 +- src/mame/drivers/taitottl.cpp | 12 +- src/mame/drivers/taitotx.cpp | 8 +- src/mame/drivers/taitotz.cpp | 22 +- src/mame/drivers/taitowlf.cpp | 2 +- src/mame/drivers/tamag1.cpp | 4 +- src/mame/drivers/tandy1t.cpp | 29 +- src/mame/drivers/tandy2k.cpp | 14 +- src/mame/drivers/tank8.cpp | 8 +- src/mame/drivers/tankbatt.cpp | 6 +- src/mame/drivers/tankbust.cpp | 4 +- src/mame/drivers/taotaido.cpp | 8 +- src/mame/drivers/tapatune.cpp | 8 +- src/mame/drivers/targeth.cpp | 8 +- src/mame/drivers/tasman.cpp | 12 +- src/mame/drivers/tatsumi.cpp | 16 +- src/mame/drivers/tattack.cpp | 2 +- src/mame/drivers/tavernie.cpp | 18 +- src/mame/drivers/taxidriv.cpp | 4 +- src/mame/drivers/tb303.cpp | 4 +- src/mame/drivers/tbowl.cpp | 12 +- src/mame/drivers/tceptor.cpp | 8 +- src/mame/drivers/tcl.cpp | 2 +- src/mame/drivers/tdv2324.cpp | 6 +- src/mame/drivers/tec1.cpp | 10 +- src/mame/drivers/techno.cpp | 6 +- src/mame/drivers/tecmo.cpp | 22 +- src/mame/drivers/tecmo16.cpp | 12 +- src/mame/drivers/tecmosys.cpp | 6 +- src/mame/drivers/tecnbras.cpp | 6 +- src/mame/drivers/tehkanwc.cpp | 14 +- src/mame/drivers/tek405x.cpp | 14 +- src/mame/drivers/tek410x.cpp | 8 +- src/mame/drivers/tek440x.cpp | 6 +- src/mame/drivers/tekxp33x.cpp | 6 +- src/mame/drivers/tempest.cpp | 14 +- src/mame/drivers/terak.cpp | 6 +- src/mame/drivers/terracre.cpp | 14 +- src/mame/drivers/test_t400.cpp | 8 +- src/mame/drivers/testconsole.cpp | 4 +- src/mame/drivers/tetrisp2.cpp | 30 +- src/mame/drivers/tgtpanic.cpp | 4 +- src/mame/drivers/thayers.cpp | 8 +- src/mame/drivers/thedealr.cpp | 4 +- src/mame/drivers/thedeep.cpp | 6 +- src/mame/drivers/thepit.cpp | 44 +- src/mame/drivers/thief.cpp | 10 +- src/mame/drivers/thomson.cpp | 28 +- src/mame/drivers/thoop2.cpp | 6 +- src/mame/drivers/thunderj.cpp | 2 +- src/mame/drivers/thunderx.cpp | 12 +- src/mame/drivers/ti630.cpp | 6 +- src/mame/drivers/ti74.cpp | 8 +- src/mame/drivers/ti85.cpp | 26 +- src/mame/drivers/ti89.cpp | 14 +- src/mame/drivers/ti990_10.cpp | 8 +- src/mame/drivers/ti990_4.cpp | 18 +- src/mame/drivers/ti99_2.cpp | 8 +- src/mame/drivers/ti99_4p.cpp | 22 +- src/mame/drivers/ti99_4x.cpp | 44 +- src/mame/drivers/ti99_8.cpp | 30 +- src/mame/drivers/tiamc1.cpp | 15 +- src/mame/drivers/ticalc1x.cpp | 56 +- src/mame/drivers/tickee.cpp | 26 +- src/mame/drivers/tigeroad.cpp | 32 +- src/mame/drivers/tiki100.cpp | 8 +- src/mame/drivers/tim011.cpp | 6 +- src/mame/drivers/tim100.cpp | 4 +- src/mame/drivers/timelimt.cpp | 6 +- src/mame/drivers/timeplt.cpp | 16 +- src/mame/drivers/timetrv.cpp | 6 +- src/mame/drivers/tispeak.cpp | 32 +- src/mame/drivers/tispellb.cpp | 12 +- src/mame/drivers/tk2000.cpp | 6 +- src/mame/drivers/tk80.cpp | 16 +- src/mame/drivers/tk80bs.cpp | 12 +- src/mame/drivers/tm990189.cpp | 20 +- src/mame/drivers/tmaster.cpp | 60 +- src/mame/drivers/tmc1800.cpp | 18 +- src/mame/drivers/tmc2000e.cpp | 6 +- src/mame/drivers/tmc600.cpp | 8 +- src/mame/drivers/tmmjprd.cpp | 6 +- src/mame/drivers/tmnt.cpp | 158 +- src/mame/drivers/tmspoker.cpp | 4 +- src/mame/drivers/tnzs.cpp | 94 +- src/mame/drivers/toaplan1.cpp | 78 +- src/mame/drivers/toaplan2.cpp | 220 +-- src/mame/drivers/toki.cpp | 8 +- src/mame/drivers/tomcat.cpp | 4 +- src/mame/drivers/tonton.cpp | 2 +- src/mame/drivers/toobin.cpp | 14 +- src/mame/drivers/topspeed.cpp | 12 +- src/mame/drivers/toratora.cpp | 10 +- src/mame/drivers/tosh1000.cpp | 6 +- src/mame/drivers/tourtabl.cpp | 6 +- src/mame/drivers/tourvis.cpp | 6 +- src/mame/drivers/toypop.cpp | 12 +- src/mame/drivers/tp84.cpp | 14 +- src/mame/drivers/tr606.cpp | 4 +- src/mame/drivers/trackfld.cpp | 30 +- src/mame/drivers/tranz330.cpp | 6 +- src/mame/drivers/travrusa.cpp | 12 +- src/mame/drivers/tricep.cpp | 35 +- src/mame/drivers/triforce.cpp | 134 +- src/mame/drivers/triplhnt.cpp | 2 +- src/mame/drivers/trs80.cpp | 70 +- src/mame/drivers/trs80m2.cpp | 22 +- src/mame/drivers/truco.cpp | 6 +- src/mame/drivers/trucocl.cpp | 5 +- src/mame/drivers/trvmadns.cpp | 6 +- src/mame/drivers/trvquest.cpp | 4 +- src/mame/drivers/tryout.cpp | 2 +- src/mame/drivers/ts802.cpp | 12 +- src/mame/drivers/ts803.cpp | 8 +- src/mame/drivers/ts816.cpp | 12 +- src/mame/drivers/tsamurai.cpp | 32 +- src/mame/drivers/tsispch.cpp | 17 +- src/mame/drivers/ttchamp.cpp | 8 +- src/mame/drivers/tubep.cpp | 18 +- src/mame/drivers/tugboat.cpp | 8 +- src/mame/drivers/tumbleb.cpp | 30 +- src/mame/drivers/tumblep.cpp | 4 +- src/mame/drivers/tunhunt.cpp | 8 +- src/mame/drivers/turbo.cpp | 28 +- src/mame/drivers/turrett.cpp | 13 +- src/mame/drivers/tutankhm.cpp | 6 +- src/mame/drivers/tutor.cpp | 10 +- src/mame/drivers/tv910.cpp | 6 +- src/mame/drivers/tv950.cpp | 6 +- src/mame/drivers/tv990.cpp | 6 +- src/mame/drivers/tvc.cpp | 10 +- src/mame/drivers/tvcapcom.cpp | 4 +- src/mame/drivers/tvgame.cpp | 6 +- src/mame/drivers/twin16.cpp | 38 +- src/mame/drivers/twincobr.cpp | 2 +- src/mame/drivers/twinkle.cpp | 40 +- src/mame/drivers/twins.cpp | 12 +- src/mame/drivers/tx0.cpp | 32 +- src/mame/drivers/tx1.cpp | 16 +- src/mame/drivers/uapce.cpp | 12 +- src/mame/drivers/uknc.cpp | 6 +- src/mame/drivers/ultraman.cpp | 6 +- src/mame/drivers/ultratnk.cpp | 4 +- src/mame/drivers/ultrsprt.cpp | 4 +- src/mame/drivers/umipoker.cpp | 6 +- src/mame/drivers/undrfire.cpp | 14 +- src/mame/drivers/unichamp.cpp | 25 +- src/mame/drivers/unico.cpp | 24 +- src/mame/drivers/unior.cpp | 8 +- src/mame/drivers/unistar.cpp | 6 +- src/mame/drivers/univac.cpp | 6 +- src/mame/drivers/unixpc.cpp | 10 +- src/mame/drivers/unkhorse.cpp | 4 +- src/mame/drivers/upscope.cpp | 2 +- src/mame/drivers/usbilliards.cpp | 6 +- src/mame/drivers/usgames.cpp | 18 +- src/mame/drivers/ut88.cpp | 8 +- src/mame/drivers/uzebox.cpp | 6 +- src/mame/drivers/v1050.cpp | 8 +- src/mame/drivers/v6809.cpp | 16 +- src/mame/drivers/vamphalf.cpp | 60 +- src/mame/drivers/vaportra.cpp | 6 +- src/mame/drivers/vastar.cpp | 12 +- src/mame/drivers/vax11.cpp | 12 +- src/mame/drivers/vball.cpp | 12 +- src/mame/drivers/vboy.cpp | 6 +- src/mame/drivers/vc4000.cpp | 54 +- src/mame/drivers/vcombat.cpp | 8 +- src/mame/drivers/vcs80.cpp | 6 +- src/mame/drivers/vd.cpp | 6 +- src/mame/drivers/vector06.cpp | 20 +- src/mame/drivers/vector4.cpp | 21 +- src/mame/drivers/vectrex.cpp | 8 +- src/mame/drivers/vega.cpp | 2 +- src/mame/drivers/vegaeo.cpp | 2 +- src/mame/drivers/vegas.cpp | 50 +- src/mame/drivers/vendetta.cpp | 24 +- src/mame/drivers/vertigo.cpp | 4 +- src/mame/drivers/vg5k.cpp | 6 +- src/mame/drivers/vgmplay.cpp | 11 +- src/mame/drivers/vic10.cpp | 4 +- src/mame/drivers/vic20.cpp | 12 +- src/mame/drivers/vicdual.cpp | 92 +- src/mame/drivers/victor9k.cpp | 18 +- src/mame/drivers/victory.cpp | 6 +- src/mame/drivers/vidbrain.cpp | 6 +- src/mame/drivers/videopin.cpp | 6 +- src/mame/drivers/videopkr.cpp | 20 +- src/mame/drivers/vigilant.cpp | 42 +- src/mame/drivers/vii.cpp | 10 +- src/mame/drivers/vindictr.cpp | 2 +- src/mame/drivers/vip.cpp | 8 +- src/mame/drivers/viper.cpp | 2 +- src/mame/drivers/vis.cpp | 13 +- src/mame/drivers/vixen.cpp | 6 +- src/mame/drivers/vk100.cpp | 4 +- src/mame/drivers/vlc.cpp | 5 +- src/mame/drivers/volfied.cpp | 14 +- src/mame/drivers/votrpss.cpp | 13 +- src/mame/drivers/votrtnt.cpp | 6 +- src/mame/drivers/voyager.cpp | 2 +- src/mame/drivers/vp101.cpp | 12 +- src/mame/drivers/vpoker.cpp | 8 +- src/mame/drivers/vroulet.cpp | 4 +- src/mame/drivers/vsmilepro.cpp | 6 +- src/mame/drivers/vsnes.cpp | 116 +- src/mame/drivers/vt100.cpp | 26 +- src/mame/drivers/vt220.cpp | 6 +- src/mame/drivers/vt240.cpp | 8 +- src/mame/drivers/vt320.cpp | 12 +- src/mame/drivers/vt520.cpp | 10 +- src/mame/drivers/vta2000.cpp | 6 +- src/mame/drivers/vtech1.cpp | 16 +- src/mame/drivers/vtech2.cpp | 10 +- src/mame/drivers/vulgus.cpp | 8 +- src/mame/drivers/wacky_gator.cpp | 4 +- src/mame/drivers/wallc.cpp | 10 +- src/mame/drivers/wangpc.cpp | 6 +- src/mame/drivers/wardner.cpp | 8 +- src/mame/drivers/warpsped.cpp | 4 +- src/mame/drivers/warpwarp.cpp | 4 +- src/mame/drivers/warriorb.cpp | 14 +- src/mame/drivers/wc90.cpp | 12 +- src/mame/drivers/wc90b.cpp | 10 +- src/mame/drivers/wecleman.cpp | 4 +- src/mame/drivers/welltris.cpp | 8 +- src/mame/drivers/wgp.cpp | 12 +- src/mame/drivers/wheelfir.cpp | 4 +- src/mame/drivers/white_mod.cpp | 308 ++-- src/mame/drivers/whitestar.cpp | 390 ++--- src/mame/drivers/wicat.cpp | 8 +- src/mame/drivers/wico.cpp | 4 +- src/mame/drivers/wildpkr.cpp | 8 +- src/mame/drivers/williams.cpp | 52 +- src/mame/drivers/wink.cpp | 2 +- src/mame/drivers/wiping.cpp | 6 +- src/mame/drivers/witch.cpp | 2 +- src/mame/drivers/wiz.cpp | 20 +- src/mame/drivers/wmg.cpp | 2 +- src/mame/drivers/wms.cpp | 2 +- src/mame/drivers/wolfpack.cpp | 4 +- src/mame/drivers/wpc_95.cpp | 2 +- src/mame/drivers/wpc_an.cpp | 40 +- src/mame/drivers/wpc_dcs.cpp | 2 +- src/mame/drivers/wpc_dot.cpp | 2 +- src/mame/drivers/wpc_flip1.cpp | 2 +- src/mame/drivers/wpc_flip2.cpp | 100 +- src/mame/drivers/wpc_s.cpp | 2 +- src/mame/drivers/wrally.cpp | 12 +- src/mame/drivers/wswan.cpp | 8 +- src/mame/drivers/wwfsstar.cpp | 14 +- src/mame/drivers/wyvernf0.cpp | 4 +- src/mame/drivers/x07.cpp | 2 +- src/mame/drivers/x1.cpp | 8 +- src/mame/drivers/x1twin.cpp | 6 +- src/mame/drivers/x68k.cpp | 26 +- src/mame/drivers/xain.cpp | 12 +- src/mame/drivers/xavix.cpp | 4 +- src/mame/drivers/xbox.cpp | 8 +- src/mame/drivers/xerox820.cpp | 20 +- src/mame/drivers/xexex.cpp | 2 +- src/mame/drivers/xmen.cpp | 28 +- src/mame/drivers/xor100.cpp | 6 +- src/mame/drivers/xorworld.cpp | 2 +- src/mame/drivers/xtheball.cpp | 4 +- src/mame/drivers/xtom3d.cpp | 4 +- src/mame/drivers/xxmissio.cpp | 4 +- src/mame/drivers/xybots.cpp | 2 +- src/mame/drivers/xyonix.cpp | 4 +- src/mame/drivers/yiear.cpp | 6 +- src/mame/drivers/ymmu100.cpp | 9 +- src/mame/drivers/yunsun16.cpp | 22 +- src/mame/drivers/yunsung8.cpp | 14 +- src/mame/drivers/z100.cpp | 10 +- src/mame/drivers/z1013.cpp | 14 +- src/mame/drivers/z80dev.cpp | 6 +- src/mame/drivers/z80ne.cpp | 14 +- src/mame/drivers/z88.cpp | 27 +- src/mame/drivers/z9001.cpp | 22 +- src/mame/drivers/zac2650.cpp | 8 +- src/mame/drivers/zac_1.cpp | 26 +- src/mame/drivers/zac_2.cpp | 84 +- src/mame/drivers/zac_proto.cpp | 8 +- src/mame/drivers/zaccaria.cpp | 10 +- src/mame/drivers/zapcomputer.cpp | 6 +- src/mame/drivers/zaurus.cpp | 14 +- src/mame/drivers/zaxxon.cpp | 26 +- src/mame/drivers/zerozone.cpp | 8 +- src/mame/drivers/zexall.cpp | 6 +- src/mame/drivers/zn.cpp | 214 +-- src/mame/drivers/zodiack.cpp | 12 +- src/mame/drivers/zorba.cpp | 6 +- src/mame/drivers/zr107.cpp | 8 +- src/mame/drivers/zrt80.cpp | 12 +- src/mame/drivers/zsbc3.cpp | 13 +- src/mame/drivers/zwackery.cpp | 6 +- src/mame/drivers/zx.cpp | 4 +- src/mame/etc/template_cpu.cpp | 35 +- src/mame/etc/template_cpu.h | 14 +- src/mame/etc/template_device.cpp | 6 +- src/mame/etc/template_device.h | 18 +- src/mame/etc/template_driver.cpp | 20 +- src/mame/includes/abc1600.h | 10 +- src/mame/includes/abc80.h | 12 +- src/mame/includes/alesis.h | 10 +- src/mame/includes/amiga.h | 10 +- src/mame/includes/apollo.h | 40 +- src/mame/includes/apple3.h | 2 +- src/mame/includes/arcadia.h | 6 +- src/mame/includes/archimds.h | 2 +- src/mame/includes/atarigt.h | 3 +- src/mame/includes/atarigx2.h | 16 +- src/mame/includes/atarist.h | 10 +- src/mame/includes/aussiebyte.h | 2 +- src/mame/includes/b2m.h | 74 +- src/mame/includes/bbc.h | 4 +- src/mame/includes/bfm_sc4.h | 14 +- src/mame/includes/bullet.h | 85 +- src/mame/includes/bw2.h | 10 +- src/mame/includes/capbowl.h | 8 +- src/mame/includes/cidelsa.h | 20 +- src/mame/includes/dgn_beta.h | 2 +- src/mame/includes/dgnalpha.h | 24 +- src/mame/includes/dm7000.h | 10 +- src/mame/includes/dooyong.h | 297 ---- src/mame/includes/einstein.h | 102 +- src/mame/includes/fm7.h | 23 +- src/mame/includes/fmtowns.h | 2 +- src/mame/includes/gamate.h | 100 -- src/mame/includes/gomoku.h | 76 +- src/mame/includes/gridlee.h | 5 +- src/mame/includes/harddriv.h | 80 +- src/mame/includes/hec2hrp.h | 8 +- src/mame/includes/hp48.h | 9 +- src/mame/includes/jpmimpct.h | 2 +- src/mame/includes/jpmsys5.h | 2 +- src/mame/includes/jupiter.h | 18 +- src/mame/includes/kaypro.h | 9 +- src/mame/includes/leland.h | 125 +- src/mame/includes/llc.h | 5 +- src/mame/includes/m5.h | 75 +- src/mame/includes/mario.h | 8 +- src/mame/includes/maygay1b.h | 2 +- src/mame/includes/mbc55x.h | 54 +- src/mame/includes/mbee.h | 4 +- src/mame/includes/micro3d.h | 76 +- src/mame/includes/model1.h | 2 +- src/mame/includes/model2.h | 2 +- src/mame/includes/mpu4.h | 2 +- src/mame/includes/mpz80.h | 10 +- src/mame/includes/n64.h | 10 +- src/mame/includes/namcoic.h | 103 -- src/mame/includes/namcos2.h | 8 +- src/mame/includes/nb1413m3.h | 7 + src/mame/includes/nb1414m4.h | 13 +- src/mame/includes/nes.h | 62 +- src/mame/includes/newbrain.h | 2 +- src/mame/includes/orion.h | 42 +- src/mame/includes/osborne1.h | 2 +- src/mame/includes/partner.h | 12 +- src/mame/includes/patinhofeio.h | 22 +- src/mame/includes/pc1512.h | 2 +- src/mame/includes/pes.h | 2 +- src/mame/includes/phoenix.h | 104 +- src/mame/includes/pk8020.h | 2 +- src/mame/includes/plygonet.h | 8 +- src/mame/includes/polepos.h | 8 +- src/mame/includes/rm380z.h | 13 +- src/mame/includes/rmnimbus.h | 11 +- src/mame/includes/samcoupe.h | 2 +- src/mame/includes/segag80r.h | 9 +- src/mame/includes/segas16b.h | 2 +- src/mame/includes/segas24.h | 6 +- src/mame/includes/segas32.h | 11 +- src/mame/includes/segaxbd.h | 33 +- src/mame/includes/slapstic.h | 30 +- src/mame/includes/snk6502.h | 81 +- src/mame/includes/softbox.h | 2 +- src/mame/includes/special.h | 10 +- src/mame/includes/super6.h | 52 +- src/mame/includes/super80.h | 2 +- src/mame/includes/swtpc09.h | 76 +- src/mame/includes/tandy2k.h | 8 +- src/mame/includes/thomson.h | 10 +- src/mame/includes/tiamc1.h | 76 - src/mame/includes/tiki100.h | 53 +- src/mame/includes/tranz330.h | 2 +- src/mame/includes/trs80.h | 2 +- src/mame/includes/trs80m2.h | 92 +- src/mame/includes/tsispch.h | 31 +- src/mame/includes/turrett.h | 8 +- src/mame/includes/tx1.h | 13 +- src/mame/includes/v1050.h | 13 +- src/mame/includes/vector06.h | 2 +- src/mame/includes/vixen.h | 10 +- src/mame/includes/x1.h | 58 +- src/mame/includes/xbox_pci.h | 4 +- src/mame/includes/xbox_usb.h | 10 +- src/mame/includes/xerox820.h | 59 +- src/mame/includes/xor100.h | 62 +- src/mame/includes/z80ne.h | 10 +- src/mame/includes/zorba.h | 8 +- src/mame/machine/315-5838_317-0229_comp.cpp | 4 +- src/mame/machine/315-5838_317-0229_comp.h | 19 +- src/mame/machine/315-5881_crypt.cpp | 4 +- src/mame/machine/315-5881_crypt.h | 8 +- src/mame/machine/315_5296.cpp | 4 +- src/mame/machine/315_5296.h | 10 +- src/mame/machine/6883sam.cpp | 4 +- src/mame/machine/6883sam.h | 16 +- src/mame/machine/abc1600mac.cpp | 4 +- src/mame/machine/abc1600mac.h | 9 +- src/mame/machine/abc80kb.cpp | 10 +- src/mame/machine/abc80kb.h | 11 +- src/mame/machine/alpha8201.cpp | 8 +- src/mame/machine/alpha8201.h | 8 +- src/mame/machine/amstrad.cpp | 10 +- src/mame/machine/apollo.cpp | 31 +- src/mame/machine/apollo_dbg.h | 8 +- src/mame/machine/apollo_kbd.cpp | 11 +- src/mame/machine/apollo_kbd.h | 12 +- src/mame/machine/apricotkb.cpp | 4 +- src/mame/machine/apricotkb.h | 10 +- src/mame/machine/asic65.cpp | 4 +- src/mame/machine/asic65.h | 12 +- src/mame/machine/at.cpp | 4 +- src/mame/machine/at.h | 2 +- src/mame/machine/atari_vg.cpp | 4 +- src/mame/machine/atari_vg.h | 20 +- src/mame/machine/atarifdc.cpp | 15 +- src/mame/machine/atarifdc.h | 8 +- src/mame/machine/atarigen.cpp | 20 +- src/mame/machine/atarigen.h | 12 +- src/mame/machine/atarixga.cpp | 8 +- src/mame/machine/atarixga.h | 22 +- src/mame/machine/awboard.cpp | 4 +- src/mame/machine/awboard.h | 10 +- src/mame/machine/b2m.cpp | 3 - src/mame/machine/balsente.cpp | 28 +- src/mame/machine/bebox.cpp | 32 +- src/mame/machine/beta.cpp | 7 +- src/mame/machine/beta.h | 17 +- src/mame/machine/bfm_bd1.cpp | 34 +- src/mame/machine/bfm_bd1.h | 17 +- src/mame/machine/bfm_bda.cpp | 28 +- src/mame/machine/bfm_bda.h | 17 +- src/mame/machine/c117.cpp | 4 +- src/mame/machine/c117.h | 8 +- src/mame/machine/cammu.cpp | 22 +- src/mame/machine/cammu.h | 20 +- src/mame/machine/cat702.cpp | 4 +- src/mame/machine/cat702.h | 12 +- src/mame/machine/cdi070.cpp | 7 +- src/mame/machine/cdi070.h | 10 +- src/mame/machine/cdicdic.cpp | 10 +- src/mame/machine/cdicdic.h | 10 +- src/mame/machine/cdislave.cpp | 8 +- src/mame/machine/cdislave.h | 6 +- src/mame/machine/cedar_magnet_board.h | 6 +- src/mame/machine/cedar_magnet_flop.cpp | 4 +- src/mame/machine/cedar_magnet_flop.h | 28 +- src/mame/machine/cedar_magnet_plane.cpp | 6 +- src/mame/machine/cedar_magnet_plane.h | 21 +- src/mame/machine/cedar_magnet_sprite.cpp | 4 +- src/mame/machine/cedar_magnet_sprite.h | 44 +- src/mame/machine/coco_vhd.cpp | 6 +- src/mame/machine/coco_vhd.h | 10 +- src/mame/machine/compiskb.cpp | 4 +- src/mame/machine/compiskb.h | 9 +- src/mame/machine/cuda.cpp | 4 +- src/mame/machine/cuda.h | 2 +- src/mame/machine/dc-ctrl.cpp | 4 +- src/mame/machine/dc-ctrl.h | 10 +- src/mame/machine/dec_lk201.cpp | 4 +- src/mame/machine/dec_lk201.h | 10 +- src/mame/machine/deco104.cpp | 10 +- src/mame/machine/deco104.h | 24 +- src/mame/machine/deco146.cpp | 29 +- src/mame/machine/deco146.h | 32 +- src/mame/machine/deco156.h | 6 + src/mame/machine/deco222.cpp | 8 +- src/mame/machine/deco222.h | 10 +- src/mame/machine/decocass_tape.cpp | 7 +- src/mame/machine/decocass_tape.h | 10 +- src/mame/machine/decocpu6.cpp | 4 +- src/mame/machine/decocpu6.h | 7 +- src/mame/machine/decocpu7.cpp | 4 +- src/mame/machine/decocpu7.h | 8 +- src/mame/machine/decopincpu.cpp | 43 +- src/mame/machine/decopincpu.h | 60 +- src/mame/machine/dmv_keyb.cpp | 4 +- src/mame/machine/dmv_keyb.h | 11 +- src/mame/machine/docg3.cpp | 6 +- src/mame/machine/docg3.h | 15 +- src/mame/machine/egret.cpp | 4 +- src/mame/machine/egret.h | 11 +- src/mame/machine/einstein.cpp | 18 +- src/mame/machine/esqlcd.cpp | 62 +- src/mame/machine/esqlcd.h | 34 +- src/mame/machine/esqpanel.cpp | 22 +- src/mame/machine/esqpanel.h | 93 +- src/mame/machine/esqvfd.cpp | 55 +- src/mame/machine/esqvfd.h | 60 +- src/mame/machine/fd1089.cpp | 15 +- src/mame/machine/fd1089.h | 18 +- src/mame/machine/fd1094.cpp | 7 +- src/mame/machine/fd1094.h | 8 +- src/mame/machine/fm_scsi.cpp | 24 +- src/mame/machine/fm_scsi.h | 32 +- src/mame/machine/fmt_icmem.cpp | 4 +- src/mame/machine/fmt_icmem.h | 13 +- src/mame/machine/gaelco3d.cpp | 32 +- src/mame/machine/gaelco3d.h | 73 +- src/mame/machine/gdrom.cpp | 4 +- src/mame/machine/gdrom.h | 11 +- src/mame/machine/hp48.cpp | 6 +- src/mame/machine/ibm6580_fdc.cpp | 6 +- src/mame/machine/ibm6580_fdc.h | 17 +- src/mame/machine/ibm6580_kbd.cpp | 7 +- src/mame/machine/ibm6580_kbd.h | 17 +- src/mame/machine/igs022.cpp | 4 +- src/mame/machine/igs022.h | 4 +- src/mame/machine/igs025.cpp | 8 +- src/mame/machine/igs025.h | 3 +- src/mame/machine/igs028.cpp | 4 +- src/mame/machine/igs028.h | 4 +- src/mame/machine/inder_sb.cpp | 10 +- src/mame/machine/inder_sb.h | 23 +- src/mame/machine/inder_vid.cpp | 4 +- src/mame/machine/inder_vid.h | 22 +- src/mame/machine/interpro_ioga.cpp | 4 +- src/mame/machine/interpro_ioga.h | 10 +- src/mame/machine/interpro_mcga.cpp | 4 +- src/mame/machine/interpro_mcga.h | 10 +- src/mame/machine/interpro_sga.cpp | 4 +- src/mame/machine/interpro_sga.h | 10 +- src/mame/machine/intv.cpp | 16 +- src/mame/machine/isbc_208.cpp | 7 +- src/mame/machine/isbc_208.h | 13 +- src/mame/machine/isbc_215g.cpp | 4 +- src/mame/machine/isbc_215g.h | 10 +- src/mame/machine/iteagle_fpga.cpp | 24 +- src/mame/machine/iteagle_fpga.h | 14 +- src/mame/machine/jvs13551.cpp | 50 +- src/mame/machine/jvs13551.h | 37 +- src/mame/machine/k573cass.cpp | 44 +- src/mame/machine/k573cass.h | 30 +- src/mame/machine/k573dio.cpp | 4 +- src/mame/machine/k573dio.h | 10 +- src/mame/machine/k573mcr.cpp | 4 +- src/mame/machine/k573mcr.h | 8 +- src/mame/machine/k573msu.cpp | 4 +- src/mame/machine/k573msu.h | 8 +- src/mame/machine/k573npu.cpp | 4 +- src/mame/machine/k573npu.h | 8 +- src/mame/machine/k7659kb.cpp | 4 +- src/mame/machine/k7659kb.h | 11 +- src/mame/machine/kaneko_calc3.cpp | 7 +- src/mame/machine/kaneko_calc3.h | 9 +- src/mame/machine/kaneko_hit.cpp | 4 +- src/mame/machine/kaneko_hit.h | 70 +- src/mame/machine/kaneko_toybox.cpp | 325 +++- src/mame/machine/kaneko_toybox.h | 346 +--- src/mame/machine/kc_keyb.cpp | 12 +- src/mame/machine/kc_keyb.h | 24 +- src/mame/machine/km035.cpp | 4 +- src/mame/machine/km035.h | 10 +- src/mame/machine/konami1.cpp | 4 +- src/mame/machine/konami1.h | 9 +- src/mame/machine/konppc.cpp | 4 +- src/mame/machine/konppc.h | 26 +- src/mame/machine/leland.cpp | 4 +- src/mame/machine/lviv.cpp | 26 +- src/mame/machine/m1comm.cpp | 65 +- src/mame/machine/m1comm.h | 12 +- src/mame/machine/m20_8086.cpp | 4 +- src/mame/machine/m20_8086.h | 14 +- src/mame/machine/m20_kbd.cpp | 4 +- src/mame/machine/m20_kbd.h | 2 +- src/mame/machine/m24_kbd.cpp | 4 +- src/mame/machine/m24_kbd.h | 22 +- src/mame/machine/m24_z8000.cpp | 4 +- src/mame/machine/m24_z8000.h | 19 +- src/mame/machine/m2comm.cpp | 29 +- src/mame/machine/m2comm.h | 14 +- src/mame/machine/m3comm.cpp | 4 +- src/mame/machine/m3comm.h | 10 +- src/mame/machine/mackbd.cpp | 4 +- src/mame/machine/mackbd.h | 11 +- src/mame/machine/macrtc.cpp | 4 +- src/mame/machine/macrtc.h | 10 +- src/mame/machine/maple-dc.cpp | 4 +- src/mame/machine/maple-dc.h | 10 +- src/mame/machine/mapledev.cpp | 2 +- src/mame/machine/mapledev.h | 10 +- src/mame/machine/mathbox.cpp | 4 +- src/mame/machine/mathbox.h | 8 +- src/mame/machine/mc8123.cpp | 6 +- src/mame/machine/mc8123.h | 9 +- src/mame/machine/mega32x.cpp | 36 +- src/mame/machine/mega32x.h | 85 +- src/mame/machine/megacd.cpp | 48 +- src/mame/machine/megacd.h | 244 ++- src/mame/machine/megacdcd.cpp | 127 +- src/mame/machine/megacdcd.h | 236 +-- src/mame/machine/meters.cpp | 6 +- src/mame/machine/meters.h | 19 +- src/mame/machine/micro3d.cpp | 72 +- src/mame/machine/microdrv.cpp | 4 +- src/mame/machine/microdrv.h | 14 +- src/mame/machine/micropolis.cpp | 11 +- src/mame/machine/micropolis.h | 17 +- src/mame/machine/midikbd.cpp | 4 +- src/mame/machine/midikbd.h | 15 +- src/mame/machine/midwayic.cpp | 41 +- src/mame/machine/midwayic.h | 33 +- src/mame/machine/mie.cpp | 8 +- src/mame/machine/mie.h | 14 +- src/mame/machine/mm1kb.cpp | 24 +- src/mame/machine/mm1kb.h | 18 +- src/mame/machine/ms7004.cpp | 4 +- src/mame/machine/ms7004.h | 14 +- src/mame/machine/msx_matsushita.cpp | 4 +- src/mame/machine/msx_matsushita.h | 11 +- src/mame/machine/msx_s1985.cpp | 4 +- src/mame/machine/msx_s1985.h | 8 +- src/mame/machine/msx_systemflags.cpp | 4 +- src/mame/machine/msx_systemflags.h | 8 +- src/mame/machine/n64.cpp | 4 +- src/mame/machine/namco06.cpp | 85 +- src/mame/machine/namco06.h | 66 +- src/mame/machine/namco50.cpp | 4 +- src/mame/machine/namco50.h | 10 +- src/mame/machine/namco51.cpp | 32 +- src/mame/machine/namco51.h | 39 +- src/mame/machine/namco53.cpp | 27 +- src/mame/machine/namco53.h | 33 +- src/mame/machine/namco62.cpp | 24 +- src/mame/machine/namco62.h | 36 +- src/mame/machine/namco_c139.cpp | 4 +- src/mame/machine/namco_c139.h | 8 +- src/mame/machine/namco_c148.cpp | 18 +- src/mame/machine/namco_c148.h | 8 +- src/mame/machine/namco_settings.cpp | 4 +- src/mame/machine/namco_settings.h | 10 +- src/mame/machine/namcoic.cpp | 3 +- src/mame/machine/namcoic.h | 102 ++ src/mame/machine/namcoio.cpp | 130 +- src/mame/machine/namcoio.h | 76 +- src/mame/machine/namcoio_gearbox.cpp | 4 +- src/mame/machine/namcoio_gearbox.h | 8 +- src/mame/machine/namcomcu.cpp | 20 +- src/mame/machine/namcomcu.h | 18 +- src/mame/machine/naomibd.cpp | 4 +- src/mame/machine/naomibd.h | 12 +- src/mame/machine/naomig1.cpp | 6 +- src/mame/machine/naomig1.h | 15 +- src/mame/machine/naomigd.cpp | 4 +- src/mame/machine/naomigd.h | 9 +- src/mame/machine/naomim1.cpp | 6 +- src/mame/machine/naomim1.h | 10 +- src/mame/machine/naomim2.cpp | 8 +- src/mame/machine/naomim2.h | 10 +- src/mame/machine/naomim4.cpp | 4 +- src/mame/machine/naomim4.h | 8 +- src/mame/machine/naomirom.cpp | 6 +- src/mame/machine/naomirom.h | 8 +- src/mame/machine/nb1413m3.cpp | 7 +- src/mame/machine/nb1414m4.cpp | 4 +- src/mame/machine/nes.cpp | 6 +- src/mame/machine/nextkbd.cpp | 4 +- src/mame/machine/nextkbd.h | 16 +- src/mame/machine/nextmo.cpp | 4 +- src/mame/machine/nextmo.h | 12 +- src/mame/machine/ng_memcard.cpp | 8 +- src/mame/machine/ng_memcard.h | 8 +- src/mame/machine/ngen_kb.cpp | 4 +- src/mame/machine/ngen_kb.h | 4 +- src/mame/machine/nmk004.cpp | 14 +- src/mame/machine/nmk004.h | 37 +- src/mame/machine/nmk112.cpp | 4 +- src/mame/machine/nmk112.h | 11 +- src/mame/machine/ns10crypt.cpp | 90 +- src/mame/machine/ns10crypt.h | 75 +- src/mame/machine/ns11prot.cpp | 40 +- src/mame/machine/ns11prot.h | 27 +- src/mame/machine/octo_kbd.cpp | 6 +- src/mame/machine/octo_kbd.h | 10 +- src/mame/machine/pc1512kb.cpp | 52 +- src/mame/machine/pc1512kb.h | 25 +- src/mame/machine/pc9801_118.cpp | 4 +- src/mame/machine/pc9801_118.h | 14 +- src/mame/machine/pc9801_26.cpp | 4 +- src/mame/machine/pc9801_26.h | 14 +- src/mame/machine/pc9801_86.cpp | 4 +- src/mame/machine/pc9801_86.h | 8 +- src/mame/machine/pc9801_cbus.cpp | 6 +- src/mame/machine/pc9801_cbus.h | 14 +- src/mame/machine/pc9801_cd.cpp | 4 +- src/mame/machine/pc9801_cd.h | 8 +- src/mame/machine/pc9801_kbd.cpp | 4 +- src/mame/machine/pc9801_kbd.h | 10 +- src/mame/machine/pcd_kbd.cpp | 4 +- src/mame/machine/pcd_kbd.h | 4 + src/mame/machine/pce220_ser.cpp | 6 +- src/mame/machine/pce220_ser.h | 11 +- src/mame/machine/pce_cd.cpp | 16 +- src/mame/machine/pce_cd.h | 11 +- src/mame/machine/pecom.cpp | 2 +- src/mame/machine/pgmprot_igs025_igs012.cpp | 2 +- src/mame/machine/pgmprot_igs025_igs022.cpp | 2 +- src/mame/machine/pgmprot_igs025_igs028.cpp | 2 +- src/mame/machine/pgmprot_igs027a_type1.cpp | 2 +- src/mame/machine/pgmprot_igs027a_type2.cpp | 2 +- src/mame/machine/pgmprot_igs027a_type3.cpp | 2 +- src/mame/machine/pgmprot_orlegend.cpp | 2 +- src/mame/machine/playch10.cpp | 8 +- src/mame/machine/poly88.cpp | 2 +- src/mame/machine/prof80mmu.cpp | 8 +- src/mame/machine/prof80mmu.h | 13 +- src/mame/machine/psion_pack.cpp | 6 +- src/mame/machine/psion_pack.h | 9 +- src/mame/machine/psxcd.cpp | 4 +- src/mame/machine/psxcd.h | 16 +- src/mame/machine/qimi.cpp | 26 +- src/mame/machine/qimi.h | 20 +- src/mame/machine/qx10kbd.cpp | 4 +- src/mame/machine/qx10kbd.h | 8 +- src/mame/machine/radio86.cpp | 3 +- src/mame/machine/rm380z.cpp | 2 +- src/mame/machine/rmnimbus.cpp | 2 +- src/mame/machine/rmnkbd.cpp | 5 +- src/mame/machine/rmnkbd.h | 1 + src/mame/machine/rx01.cpp | 4 +- src/mame/machine/rx01.h | 10 +- src/mame/machine/s32comm.cpp | 29 +- src/mame/machine/s32comm.h | 16 +- src/mame/machine/segabb.cpp | 4 +- src/mame/machine/segabb.h | 10 +- src/mame/machine/segacrp2_device.cpp | 48 +- src/mame/machine/segacrp2_device.h | 32 +- src/mame/machine/segacrpt_device.cpp | 116 +- src/mame/machine/segacrpt_device.h | 86 +- src/mame/machine/segaic16.cpp | 16 +- src/mame/machine/segaic16.h | 14 +- src/mame/machine/seibucop/seibucop.cpp | 4 +- src/mame/machine/seibucop/seibucop.h | 2 +- src/mame/machine/seicop.cpp | 4 +- src/mame/machine/seicop.h | 10 +- src/mame/machine/sgi.cpp | 4 +- src/mame/machine/sgi.h | 15 +- src/mame/machine/slapstic.cpp | 14 +- src/mame/machine/sms.cpp | 32 +- src/mame/machine/snes.cpp | 58 +- src/mame/machine/st0016.cpp | 74 +- src/mame/machine/st0016.h | 48 +- src/mame/machine/swim.cpp | 4 +- src/mame/machine/swim.h | 8 +- src/mame/machine/swtpc09.cpp | 10 +- src/mame/machine/tait8741.cpp | 16 +- src/mame/machine/tait8741.h | 54 +- src/mame/machine/taito68705interface.cpp | 34 +- src/mame/machine/taito68705interface.h | 26 +- src/mame/machine/taitoio.cpp | 12 +- src/mame/machine/taitoio.h | 47 +- src/mame/machine/tandy2kb.cpp | 4 +- src/mame/machine/tandy2kb.h | 16 +- src/mame/machine/teleprinter.cpp | 30 +- src/mame/machine/teleprinter.h | 22 +- src/mame/machine/thomflop.cpp | 6 +- src/mame/machine/thomson.cpp | 6 +- src/mame/machine/ticket.cpp | 4 +- src/mame/machine/ticket.h | 6 +- src/mame/machine/trs80.cpp | 8 +- src/mame/machine/trs80m2kb.cpp | 4 +- src/mame/machine/trs80m2kb.h | 12 +- src/mame/machine/upd65031.cpp | 4 +- src/mame/machine/upd65031.h | 11 +- src/mame/machine/v1050kb.cpp | 4 +- src/mame/machine/v1050kb.h | 14 +- src/mame/machine/vector06.cpp | 6 +- src/mame/machine/victor9k_fdc.cpp | 180 +- src/mame/machine/victor9k_fdc.h | 29 +- src/mame/machine/victor9k_kb.cpp | 678 +++++++ src/mame/machine/victor9k_kb.h | 84 + src/mame/machine/victor9kb.cpp | 678 ------- src/mame/machine/victor9kb.h | 84 - src/mame/machine/vs9209.cpp | 8 +- src/mame/machine/vs9209.h | 8 +- src/mame/machine/vsnes.cpp | 8 +- src/mame/machine/wangpckb.cpp | 48 +- src/mame/machine/wangpckb.h | 22 +- src/mame/machine/wpc.cpp | 4 +- src/mame/machine/wpc.h | 42 +- src/mame/machine/wpc_lamp.cpp | 4 +- src/mame/machine/wpc_lamp.h | 10 +- src/mame/machine/wpc_out.cpp | 4 +- src/mame/machine/wpc_out.h | 10 +- src/mame/machine/wpc_pic.cpp | 4 +- src/mame/machine/wpc_pic.h | 10 +- src/mame/machine/wpc_shift.cpp | 4 +- src/mame/machine/wpc_shift.h | 8 +- src/mame/machine/x1.cpp | 6 +- src/mame/machine/x68k_hdc.cpp | 75 +- src/mame/machine/x68k_hdc.h | 85 +- src/mame/machine/x68k_kbd.cpp | 4 +- src/mame/machine/x68k_kbd.h | 2 +- src/mame/machine/x820kb.cpp | 44 +- src/mame/machine/x820kb.h | 21 +- src/mame/machine/xbox.cpp | 2 +- src/mame/machine/xbox_pci.cpp | 48 +- src/mame/machine/xbox_usb.cpp | 26 +- src/mame/machine/z80bin.cpp | 2 +- src/mame/machine/z80bin.h | 10 +- src/mame/machine/z80ne.cpp | 54 +- src/mame/machine/znmcu.cpp | 4 +- src/mame/machine/znmcu.h | 20 +- src/mame/machine/zorbakbd.cpp | 12 +- src/mame/machine/zorbakbd.h | 8 +- src/mame/machine/zs01.cpp | 4 +- src/mame/machine/zs01.h | 8 +- src/mame/machine/zx8302.cpp | 10 +- src/mame/machine/zx8302.h | 36 +- src/mame/video/733_asr.cpp | 4 +- src/mame/video/733_asr.h | 30 +- src/mame/video/911_vdt.cpp | 86 +- src/mame/video/911_vdt.h | 80 +- src/mame/video/abc1600.cpp | 4 +- src/mame/video/abc1600.h | 8 +- src/mame/video/agat7.cpp | 5 +- src/mame/video/agat7.h | 13 +- src/mame/video/airraid_dev.cpp | 4 +- src/mame/video/airraid_dev.h | 2 +- src/mame/video/antic.cpp | 335 +++- src/mame/video/antic.h | 452 ++--- src/mame/video/apollo.cpp | 16 +- src/mame/video/apple2.cpp | 4 +- src/mame/video/apple2.h | 2 +- src/mame/video/asterix.cpp | 10 +- src/mame/video/atarimo.cpp | 4 +- src/mame/video/atarimo.h | 8 +- src/mame/video/atarirle.cpp | 4 +- src/mame/video/atarirle.h | 10 +- src/mame/video/avgdvg.cpp | 50 +- src/mame/video/avgdvg.h | 64 +- src/mame/video/aztarac.cpp | 4 +- src/mame/video/bfm_adr2.cpp | 8 +- src/mame/video/bfm_adr2.h | 11 +- src/mame/video/bfm_dm01.cpp | 50 +- src/mame/video/bfm_dm01.h | 29 +- src/mame/video/c45.cpp | 4 +- src/mame/video/c45.h | 28 +- src/mame/video/capbowl.cpp | 6 +- src/mame/video/cchasm.cpp | 2 +- src/mame/video/cinemat.cpp | 16 +- src/mame/video/comx35.cpp | 12 +- src/mame/video/crt.cpp | 4 +- src/mame/video/crt.h | 31 +- src/mame/video/dbz.cpp | 14 +- src/mame/video/decbac06.cpp | 4 +- src/mame/video/decbac06.h | 11 +- src/mame/video/deckarn.cpp | 4 +- src/mame/video/deckarn.h | 8 +- src/mame/video/decmxc06.cpp | 4 +- src/mame/video/decmxc06.h | 12 +- src/mame/video/deco16ic.cpp | 4 +- src/mame/video/deco16ic.h | 8 +- src/mame/video/deco_zoomspr.cpp | 4 +- src/mame/video/deco_zoomspr.h | 8 +- src/mame/video/decocomn.cpp | 4 +- src/mame/video/decocomn.h | 9 +- src/mame/video/decodmd1.cpp | 4 +- src/mame/video/decodmd1.h | 18 +- src/mame/video/decodmd2.cpp | 4 +- src/mame/video/decodmd2.h | 31 +- src/mame/video/decodmd3.cpp | 4 +- src/mame/video/decodmd3.h | 28 +- src/mame/video/decospr.cpp | 4 +- src/mame/video/decospr.h | 11 +- src/mame/video/dooyong.cpp | 552 +----- src/mame/video/dooyong.h | 145 ++ src/mame/video/excellent_spr.cpp | 6 +- src/mame/video/excellent_spr.h | 12 +- src/mame/video/exterm.cpp | 2 +- src/mame/video/fuukifg.cpp | 4 +- src/mame/video/fuukifg.h | 7 +- src/mame/video/gic.cpp | 31 +- src/mame/video/gic.h | 42 +- src/mame/video/gijoe.cpp | 12 +- src/mame/video/gime.cpp | 12 +- src/mame/video/gime.h | 20 +- src/mame/video/gp9001.cpp | 174 +- src/mame/video/gp9001.h | 154 +- src/mame/video/gstriker.cpp | 6 +- src/mame/video/gtia.cpp | 8 +- src/mame/video/gtia.h | 211 +-- src/mame/video/igs017_igs031.cpp | 4 +- src/mame/video/igs017_igs031.h | 46 +- src/mame/video/intv.cpp | 4 +- src/mame/video/itech8.cpp | 14 +- src/mame/video/jalblend.cpp | 6 +- src/mame/video/jalblend.h | 9 +- src/mame/video/k001005.cpp | 6 +- src/mame/video/k001005.h | 38 +- src/mame/video/k001006.cpp | 4 +- src/mame/video/k001006.h | 8 +- src/mame/video/k001604.cpp | 4 +- src/mame/video/k001604.h | 10 +- src/mame/video/k007121.cpp | 6 +- src/mame/video/k007121.h | 11 +- src/mame/video/k007342.cpp | 4 +- src/mame/video/k007342.h | 11 +- src/mame/video/k007420.cpp | 4 +- src/mame/video/k007420.h | 11 +- src/mame/video/k037122.cpp | 4 +- src/mame/video/k037122.h | 11 +- src/mame/video/k051316.cpp | 7 +- src/mame/video/k051316.h | 14 +- src/mame/video/k051733.cpp | 7 +- src/mame/video/k051733.h | 11 +- src/mame/video/k051960.cpp | 7 +- src/mame/video/k051960.h | 14 +- src/mame/video/k052109.cpp | 7 +- src/mame/video/k052109.h | 7 +- src/mame/video/k053244_k053245.cpp | 7 +- src/mame/video/k053244_k053245.h | 15 +- src/mame/video/k053246_k053247_k055673.cpp | 23 +- src/mame/video/k053246_k053247_k055673.h | 20 +- src/mame/video/k053250.cpp | 4 +- src/mame/video/k053250.h | 10 +- src/mame/video/k053250_ps.cpp | 4 +- src/mame/video/k053250_ps.h | 10 +- src/mame/video/k053251.cpp | 7 +- src/mame/video/k053251.h | 26 +- src/mame/video/k053936.cpp | 6 +- src/mame/video/k053936.h | 9 +- src/mame/video/k054000.cpp | 7 +- src/mame/video/k054000.h | 12 +- src/mame/video/k054156_k054157_k056832.cpp | 21 +- src/mame/video/k054156_k054157_k056832.h | 23 +- src/mame/video/k054338.cpp | 8 +- src/mame/video/k054338.h | 10 +- src/mame/video/k055555.cpp | 11 +- src/mame/video/k055555.h | 9 +- src/mame/video/k057714.cpp | 6 +- src/mame/video/k057714.h | 11 +- src/mame/video/k1ge.cpp | 15 +- src/mame/video/k1ge.h | 25 +- src/mame/video/kan_pand.cpp | 4 +- src/mame/video/kan_pand.h | 11 +- src/mame/video/kaneko_grap2.cpp | 4 +- src/mame/video/kaneko_grap2.h | 8 +- src/mame/video/kaneko_spr.cpp | 15 +- src/mame/video/kaneko_spr.h | 15 +- src/mame/video/kaneko_tmap.cpp | 4 +- src/mame/video/kaneko_tmap.h | 31 +- src/mame/video/leland.cpp | 1 + src/mame/video/maria.cpp | 4 +- src/mame/video/maria.h | 10 +- src/mame/video/mb60553.cpp | 38 +- src/mame/video/mb60553.h | 43 +- src/mame/video/mcd212.cpp | 6 +- src/mame/video/mcd212.h | 10 +- src/mame/video/micro3d.cpp | 4 +- src/mame/video/model2.cpp | 2 +- src/mame/video/moo.cpp | 12 +- src/mame/video/ms1_tmap.cpp | 4 +- src/mame/video/ms1_tmap.h | 8 +- src/mame/video/namco_c116.cpp | 4 +- src/mame/video/namco_c116.h | 8 +- src/mame/video/namcofl.cpp | 3 +- src/mame/video/namconb1.cpp | 3 +- src/mame/video/namcos2.cpp | 2 - src/mame/video/namcos21.cpp | 4 +- src/mame/video/neogeo.cpp | 3 + src/mame/video/neogeo_spr.cpp | 19 +- src/mame/video/neogeo_spr.h | 23 +- src/mame/video/nes.cpp | 2 +- src/mame/video/newport.cpp | 4 +- src/mame/video/newport.h | 213 +-- src/mame/video/nick.cpp | 4 +- src/mame/video/nick.h | 2 +- src/mame/video/overdriv.cpp | 10 +- src/mame/video/parodius.cpp | 16 +- src/mame/video/pc080sn.cpp | 4 +- src/mame/video/pc080sn.h | 11 +- src/mame/video/pc090oj.cpp | 4 +- src/mame/video/pc090oj.h | 11 +- src/mame/video/pc_t1t.cpp | 12 +- src/mame/video/pc_t1t.h | 65 +- src/mame/video/pcd.cpp | 12 +- src/mame/video/pcd.h | 18 +- src/mame/video/pecom.cpp | 6 +- src/mame/video/powervr2.cpp | 8 +- src/mame/video/powervr2.h | 10 +- src/mame/video/sega16sp.cpp | 51 +- src/mame/video/sega16sp.h | 28 +- src/mame/video/segag80v.cpp | 2 +- src/mame/video/segahang.cpp | 20 +- src/mame/video/segaic16.cpp | 26 +- src/mame/video/segaic16.h | 143 +- src/mame/video/segaic16_road.cpp | 40 +- src/mame/video/segaic16_road.h | 63 +- src/mame/video/segaic24.cpp | 90 +- src/mame/video/segaic24.h | 28 +- src/mame/video/segaorun.cpp | 40 +- src/mame/video/segas16a.cpp | 18 +- src/mame/video/segas16b.cpp | 16 +- src/mame/video/segas18.cpp | 18 +- src/mame/video/segas24.cpp | 4 +- src/mame/video/segaxbd.cpp | 22 +- src/mame/video/segaybd.cpp | 2 +- src/mame/video/seibu_crtc.cpp | 4 +- src/mame/video/seibu_crtc.h | 20 +- src/mame/video/seta001.cpp | 4 +- src/mame/video/seta001.h | 8 +- src/mame/video/simpsons.cpp | 16 +- src/mame/video/sknsspr.cpp | 6 +- src/mame/video/sknsspr.h | 9 +- src/mame/video/snk6502.cpp | 7 + src/mame/video/snk68_spr.cpp | 4 +- src/mame/video/snk68_spr.h | 9 +- src/mame/video/st0020.cpp | 4 +- src/mame/video/st0020.h | 9 +- src/mame/video/stfight_dev.cpp | 4 +- src/mame/video/stfight_dev.h | 8 +- src/mame/video/stic.cpp | 711 ++++++-- src/mame/video/stic.h | 512 +----- src/mame/video/surpratk.cpp | 16 +- src/mame/video/tc0080vco.cpp | 4 +- src/mame/video/tc0080vco.h | 11 +- src/mame/video/tc0100scn.cpp | 4 +- src/mame/video/tc0100scn.h | 13 +- src/mame/video/tc0110pcr.cpp | 4 +- src/mame/video/tc0110pcr.h | 11 +- src/mame/video/tc0150rod.cpp | 6 +- src/mame/video/tc0150rod.h | 11 +- src/mame/video/tc0180vcu.cpp | 4 +- src/mame/video/tc0180vcu.h | 11 +- src/mame/video/tc0280grd.cpp | 4 +- src/mame/video/tc0280grd.h | 12 +- src/mame/video/tc0360pri.cpp | 4 +- src/mame/video/tc0360pri.h | 11 +- src/mame/video/tc0480scp.cpp | 4 +- src/mame/video/tc0480scp.h | 11 +- src/mame/video/tc0780fpa.cpp | 6 +- src/mame/video/tc0780fpa.h | 11 +- src/mame/video/tecmo_mix.cpp | 4 +- src/mame/video/tecmo_mix.h | 10 +- src/mame/video/tecmo_spr.cpp | 10 +- src/mame/video/tecmo_spr.h | 9 +- src/mame/video/tia.cpp | 20 +- src/mame/video/tia.h | 14 +- src/mame/video/tigeroad_spr.cpp | 4 +- src/mame/video/tigeroad_spr.h | 8 +- src/mame/video/tmc600.cpp | 6 +- src/mame/video/tmnt.cpp | 62 +- src/mame/video/toaplan2.cpp | 28 +- src/mame/video/toaplan_scu.cpp | 6 +- src/mame/video/toaplan_scu.h | 13 +- src/mame/video/uv201.cpp | 4 +- src/mame/video/uv201.h | 7 +- src/mame/video/vendetta.cpp | 14 +- src/mame/video/vertigo.cpp | 2 +- src/mame/video/vicdual-97269pb.cpp | 4 +- src/mame/video/vicdual-97269pb.h | 8 +- src/mame/video/vrender0.cpp | 4 +- src/mame/video/vrender0.h | 58 +- src/mame/video/vs920a.cpp | 26 +- src/mame/video/vs920a.h | 26 +- src/mame/video/vsystem_gga.cpp | 4 +- src/mame/video/vsystem_gga.h | 8 +- src/mame/video/vsystem_spr.cpp | 59 +- src/mame/video/vsystem_spr.h | 65 +- src/mame/video/vsystem_spr2.cpp | 123 +- src/mame/video/vsystem_spr2.h | 76 +- src/mame/video/vtvideo.cpp | 12 +- src/mame/video/vtvideo.h | 20 +- src/mame/video/wpc_dmd.cpp | 4 +- src/mame/video/wpc_dmd.h | 10 +- src/mame/video/wswan.cpp | 6 +- src/mame/video/wswan.h | 10 +- src/mame/video/xexex.cpp | 14 +- src/mame/video/xmen.cpp | 32 +- src/mame/video/ygv608.cpp | 193 +- src/mame/video/ygv608.h | 378 ++-- src/mame/video/zx8301.cpp | 4 +- src/mame/video/zx8301.h | 12 +- src/osd/modules/debugger/osx/errorlogviewer.mm | 2 +- src/osd/modules/debugger/win/logwininfo.cpp | 2 +- src/osd/modules/render/d3d/d3dhlsl.cpp | 2 +- src/osd/sdl/window.cpp | 4 +- src/osd/windows/window.cpp | 4 +- 6328 files changed, 95631 insertions(+), 97828 deletions(-) create mode 100644 src/devices/bus/ti99/colorbus/busmouse.cpp create mode 100644 src/devices/bus/ti99/colorbus/busmouse.h create mode 100644 src/devices/bus/ti99/colorbus/colorbus.cpp create mode 100644 src/devices/bus/ti99/colorbus/colorbus.h create mode 100644 src/devices/bus/ti99/joyport/handset.cpp create mode 100644 src/devices/bus/ti99/joyport/handset.h create mode 100644 src/devices/bus/ti99/joyport/joyport.cpp create mode 100644 src/devices/bus/ti99/joyport/joyport.h create mode 100644 src/devices/bus/ti99/joyport/mecmouse.cpp create mode 100644 src/devices/bus/ti99/joyport/mecmouse.h create mode 100644 src/devices/bus/ti99/peb/bwg.cpp create mode 100644 src/devices/bus/ti99/peb/bwg.h create mode 100644 src/devices/bus/ti99/peb/evpc.cpp create mode 100644 src/devices/bus/ti99/peb/evpc.h create mode 100644 src/devices/bus/ti99/peb/hfdc.cpp create mode 100644 src/devices/bus/ti99/peb/hfdc.h create mode 100644 src/devices/bus/ti99/peb/horizon.cpp create mode 100644 src/devices/bus/ti99/peb/horizon.h create mode 100644 src/devices/bus/ti99/peb/hsgpl.cpp create mode 100644 src/devices/bus/ti99/peb/hsgpl.h create mode 100644 src/devices/bus/ti99/peb/memex.cpp create mode 100644 src/devices/bus/ti99/peb/memex.h create mode 100644 src/devices/bus/ti99/peb/myarcmem.cpp create mode 100644 src/devices/bus/ti99/peb/myarcmem.h create mode 100644 src/devices/bus/ti99/peb/pcode.cpp create mode 100644 src/devices/bus/ti99/peb/pcode.h create mode 100644 src/devices/bus/ti99/peb/peribox.cpp create mode 100644 src/devices/bus/ti99/peb/peribox.h create mode 100644 src/devices/bus/ti99/peb/samsmem.cpp create mode 100644 src/devices/bus/ti99/peb/samsmem.h create mode 100644 src/devices/bus/ti99/peb/spchsyn.cpp create mode 100644 src/devices/bus/ti99/peb/spchsyn.h create mode 100644 src/devices/bus/ti99/peb/ti_32kmem.cpp create mode 100644 src/devices/bus/ti99/peb/ti_32kmem.h create mode 100644 src/devices/bus/ti99/peb/ti_fdc.cpp create mode 100644 src/devices/bus/ti99/peb/ti_fdc.h create mode 100644 src/devices/bus/ti99/peb/ti_rs232.cpp create mode 100644 src/devices/bus/ti99/peb/ti_rs232.h create mode 100644 src/devices/bus/ti99/peb/tn_ide.cpp create mode 100644 src/devices/bus/ti99/peb/tn_ide.h create mode 100644 src/devices/bus/ti99/peb/tn_usbsm.cpp create mode 100644 src/devices/bus/ti99/peb/tn_usbsm.h delete mode 100644 src/devices/bus/ti99_peb/bwg.cpp delete mode 100644 src/devices/bus/ti99_peb/bwg.h delete mode 100644 src/devices/bus/ti99_peb/evpc.cpp delete mode 100644 src/devices/bus/ti99_peb/evpc.h delete mode 100644 src/devices/bus/ti99_peb/hfdc.cpp delete mode 100644 src/devices/bus/ti99_peb/hfdc.h delete mode 100644 src/devices/bus/ti99_peb/horizon.cpp delete mode 100644 src/devices/bus/ti99_peb/horizon.h delete mode 100644 src/devices/bus/ti99_peb/hsgpl.cpp delete mode 100644 src/devices/bus/ti99_peb/hsgpl.h delete mode 100644 src/devices/bus/ti99_peb/memex.cpp delete mode 100644 src/devices/bus/ti99_peb/memex.h delete mode 100644 src/devices/bus/ti99_peb/myarcmem.cpp delete mode 100644 src/devices/bus/ti99_peb/myarcmem.h delete mode 100644 src/devices/bus/ti99_peb/pcode.cpp delete mode 100644 src/devices/bus/ti99_peb/pcode.h delete mode 100644 src/devices/bus/ti99_peb/peribox.cpp delete mode 100644 src/devices/bus/ti99_peb/peribox.h delete mode 100644 src/devices/bus/ti99_peb/samsmem.cpp delete mode 100644 src/devices/bus/ti99_peb/samsmem.h delete mode 100644 src/devices/bus/ti99_peb/spchsyn.cpp delete mode 100644 src/devices/bus/ti99_peb/spchsyn.h delete mode 100644 src/devices/bus/ti99_peb/ti_32kmem.cpp delete mode 100644 src/devices/bus/ti99_peb/ti_32kmem.h delete mode 100644 src/devices/bus/ti99_peb/ti_fdc.cpp delete mode 100644 src/devices/bus/ti99_peb/ti_fdc.h delete mode 100644 src/devices/bus/ti99_peb/ti_rs232.cpp delete mode 100644 src/devices/bus/ti99_peb/ti_rs232.h delete mode 100644 src/devices/bus/ti99_peb/tn_ide.cpp delete mode 100644 src/devices/bus/ti99_peb/tn_ide.h delete mode 100644 src/devices/bus/ti99_peb/tn_usbsm.cpp delete mode 100644 src/devices/bus/ti99_peb/tn_usbsm.h delete mode 100644 src/devices/bus/ti99x/busmouse.cpp delete mode 100644 src/devices/bus/ti99x/busmouse.h delete mode 100644 src/devices/bus/ti99x/colorbus.cpp delete mode 100644 src/devices/bus/ti99x/colorbus.h delete mode 100644 src/devices/bus/ti99x/handset.cpp delete mode 100644 src/devices/bus/ti99x/handset.h delete mode 100644 src/devices/bus/ti99x/joyport.cpp delete mode 100644 src/devices/bus/ti99x/joyport.h delete mode 100644 src/devices/bus/ti99x/mecmouse.cpp delete mode 100644 src/devices/bus/ti99x/mecmouse.h create mode 100644 src/devices/cpu/e132xs/32xsdefs.h create mode 100644 src/devices/cpu/hphybrid/hphybrid_defs.h create mode 100644 src/devices/cpu/mb86235/mb86235defs.h create mode 100644 src/devices/cpu/psx/psxdefs.h create mode 100644 src/devices/cpu/rsp/rspdefs.h delete mode 100644 src/devices/machine/lpc.cpp create mode 100644 src/devices/machine/s3c24xx.cpp create mode 100644 src/devices/machine/s3c24xx.h create mode 100644 src/mame/audio/gamate.h create mode 100644 src/mame/audio/gomoku.h create mode 100644 src/mame/audio/leland.h create mode 100644 src/mame/audio/micro3d.h create mode 100644 src/mame/audio/phoenix.h create mode 100644 src/mame/audio/snk6502.h create mode 100644 src/mame/audio/tiamc1.h delete mode 100644 src/mame/includes/dooyong.h delete mode 100644 src/mame/includes/gamate.h delete mode 100644 src/mame/includes/namcoic.h create mode 100644 src/mame/machine/namcoic.h create mode 100644 src/mame/machine/victor9k_kb.cpp create mode 100644 src/mame/machine/victor9k_kb.h delete mode 100644 src/mame/machine/victor9kb.cpp delete mode 100644 src/mame/machine/victor9kb.h create mode 100644 src/mame/video/dooyong.h (limited to 'src') diff --git a/src/devices/bus/a1bus/a1bus.cpp b/src/devices/bus/a1bus/a1bus.cpp index 39bf0c52489..d1f0bbd7fe0 100644 --- a/src/devices/bus/a1bus/a1bus.cpp +++ b/src/devices/bus/a1bus/a1bus.cpp @@ -14,7 +14,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type A1BUS_SLOT = device_creator; +DEFINE_DEVICE_TYPE(A1BUS_SLOT, a1bus_slot_device, "a1bus_slot", "Apple I Slot") //************************************************************************** // LIVE DEVICE @@ -23,17 +23,16 @@ const device_type A1BUS_SLOT = device_creator; //------------------------------------------------- // a1bus_slot_device - constructor //------------------------------------------------- -a1bus_slot_device::a1bus_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, A1BUS_SLOT, "Apple I Slot", tag, owner, clock, "a1bus_slot", __FILE__), - device_slot_interface(mconfig, *this), - m_a1bus_tag(nullptr), - m_a1bus_slottag(nullptr) +a1bus_slot_device::a1bus_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : a1bus_slot_device(mconfig, A1BUS_SLOT, tag, owner, clock) { } -a1bus_slot_device::a1bus_slot_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_slot_interface(mconfig, *this), m_a1bus_tag(nullptr), m_a1bus_slottag(nullptr) +a1bus_slot_device::a1bus_slot_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) + , device_slot_interface(mconfig, *this) + , m_a1bus_tag(nullptr) + , m_a1bus_slottag(nullptr) { } @@ -59,7 +58,7 @@ void a1bus_slot_device::device_start() // GLOBAL VARIABLES //************************************************************************** -const device_type A1BUS = device_creator; +DEFINE_DEVICE_TYPE(A1BUS, a1bus_device, "a1bus", "Apple I Bus") void a1bus_device::static_set_cputag(device_t &device, const char *tag) { @@ -75,17 +74,18 @@ void a1bus_device::static_set_cputag(device_t &device, const char *tag) // a1bus_device - constructor //------------------------------------------------- -a1bus_device::a1bus_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, A1BUS, "Apple I Bus", tag, owner, clock, "a1bus", __FILE__), m_maincpu(nullptr), - m_out_irq_cb(*this), - m_out_nmi_cb(*this), m_device(nullptr), m_cputag(nullptr) +a1bus_device::a1bus_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : a1bus_device(mconfig, A1BUS, tag, owner, clock) { } -a1bus_device::a1bus_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), m_maincpu(nullptr), - m_out_irq_cb(*this), - m_out_nmi_cb(*this), m_device(nullptr), m_cputag(nullptr) +a1bus_device::a1bus_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) + , m_maincpu(nullptr) + , m_out_irq_cb(*this) + , m_out_nmi_cb(*this) + , m_device(nullptr) + , m_cputag(nullptr) { } //------------------------------------------------- diff --git a/src/devices/bus/a1bus/a1bus.h b/src/devices/bus/a1bus/a1bus.h index 38830940525..320a2d9bc80 100644 --- a/src/devices/bus/a1bus/a1bus.h +++ b/src/devices/bus/a1bus/a1bus.h @@ -6,10 +6,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_BUS_A1BUS_A1BUS_H +#define MAME_BUS_A1BUS_A1BUS_H -#ifndef __A1BUS_H__ -#define __A1BUS_H__ +#pragma once //************************************************************************** @@ -49,20 +49,22 @@ class a1bus_slot_device : public device_t, public: // construction/destruction a1bus_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - a1bus_slot_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - - // device-level overrides - virtual void device_start() override; // inline configuration static void static_set_a1bus_slot(device_t &device, const char *tag, const char *slottag); + protected: + a1bus_slot_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual void device_start() override; + // configuration const char *m_a1bus_tag, *m_a1bus_slottag; }; // device type definition -extern const device_type A1BUS_SLOT; +DECLARE_DEVICE_TYPE(A1BUS_SLOT, a1bus_slot_device) class device_a1bus_card_interface; @@ -72,12 +74,11 @@ class a1bus_device : public device_t public: // construction/destruction a1bus_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - a1bus_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); // inline configuration static void static_set_cputag(device_t &device, const char *tag); - template static devcb_base &set_out_irq_callback(device_t &device, _Object object) { return downcast(device).m_out_irq_cb.set_callback(object); } - template static devcb_base &set_out_nmi_callback(device_t &device, _Object object) { return downcast(device).m_out_nmi_cb.set_callback(object); } + template static devcb_base &set_out_irq_callback(device_t &device, Object &&cb) { return downcast(device).m_out_irq_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_nmi_callback(device_t &device, Object &&cb) { return downcast(device).m_out_nmi_cb.set_callback(std::forward(cb)); } void add_a1bus_card(device_a1bus_card_interface *card); device_a1bus_card_interface *get_a1bus_card(); @@ -92,6 +93,8 @@ public: DECLARE_WRITE_LINE_MEMBER( nmi_w ); protected: + a1bus_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -108,7 +111,7 @@ protected: // device type definition -extern const device_type A1BUS; +DECLARE_DEVICE_TYPE(A1BUS, a1bus_device) // ======================> device_a1bus_card_interface @@ -118,7 +121,6 @@ class device_a1bus_card_interface : public device_slot_card_interface friend class a1bus_device; public: // construction/destruction - device_a1bus_card_interface(const machine_config &mconfig, device_t &device); virtual ~device_a1bus_card_interface(); device_a1bus_card_interface *next() const { return m_next; } @@ -135,10 +137,13 @@ public: // inline configuration static void static_set_a1bus_tag(device_t &device, const char *tag, const char *slottag); -public: + +protected: + device_a1bus_card_interface(const machine_config &mconfig, device_t &device); + a1bus_device *m_a1bus; const char *m_a1bus_tag, *m_a1bus_slottag; device_a1bus_card_interface *m_next; }; -#endif /* __A1BUS_H__ */ +#endif // MAME_BUS_A1BUS_A1BUS_H diff --git a/src/devices/bus/a1bus/a1cassette.cpp b/src/devices/bus/a1bus/a1cassette.cpp index c050a06120e..f7b2012d461 100644 --- a/src/devices/bus/a1bus/a1cassette.cpp +++ b/src/devices/bus/a1bus/a1cassette.cpp @@ -21,7 +21,7 @@ #define CASSETTE_ROM_REGION "casrom" -const device_type A1BUS_CASSETTE = device_creator; +DEFINE_DEVICE_TYPE(A1BUS_CASSETTE, a1bus_cassette_device, "a1cass", "Apple I cassette board") /* sound output */ @@ -57,17 +57,17 @@ const tiny_rom_entry *a1bus_cassette_device::device_rom_region() const // LIVE DEVICE //************************************************************************** -a1bus_cassette_device::a1bus_cassette_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, A1BUS_CASSETTE, "Apple I cassette board", tag, owner, clock, "a1cass", __FILE__), - device_a1bus_card_interface(mconfig, *this), - m_cassette(*this, "cassette"), m_rom(nullptr), m_cassette_output_flipflop(0) +a1bus_cassette_device::a1bus_cassette_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : a1bus_cassette_device(mconfig, A1BUS_CASSETTE, tag, owner, clock) { } -a1bus_cassette_device::a1bus_cassette_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_a1bus_card_interface(mconfig, *this), - m_cassette(*this, "cassette"), m_rom(nullptr), m_cassette_output_flipflop(0) +a1bus_cassette_device::a1bus_cassette_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) + , device_a1bus_card_interface(mconfig, *this) + , m_cassette(*this, "cassette") + , m_rom(nullptr), + m_cassette_output_flipflop(0) { } diff --git a/src/devices/bus/a1bus/a1cassette.h b/src/devices/bus/a1bus/a1cassette.h index 408ae5fe4cf..f674559732c 100644 --- a/src/devices/bus/a1bus/a1cassette.h +++ b/src/devices/bus/a1bus/a1cassette.h @@ -8,8 +8,10 @@ *********************************************************************/ -#ifndef __A1BUS_CASSETTE__ -#define __A1BUS_CASSETTE__ +#ifndef MAME_BUS_A1BUS_A1CASSETTE_H +#define MAME_BUS_A1BUS_A1CASSETTE_H + +#pragma once #include "a1bus.h" #include "imagedev/cassette.h" @@ -25,29 +27,30 @@ class a1bus_cassette_device: public: // construction/destruction a1bus_cassette_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - a1bus_cassette_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); // optional information overrides virtual machine_config_constructor device_mconfig_additions() const override; virtual const tiny_rom_entry *device_rom_region() const override; - optional_device m_cassette; - DECLARE_READ8_MEMBER(cassette_r); DECLARE_WRITE8_MEMBER(cassette_w); protected: + a1bus_cassette_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; virtual void device_reset() override; void cassette_toggle_output(); + optional_device m_cassette; + private: uint8_t *m_rom; int m_cassette_output_flipflop; }; // device type definition -extern const device_type A1BUS_CASSETTE; +DECLARE_DEVICE_TYPE(A1BUS_CASSETTE, a1bus_cassette_device) -#endif /* __A1BUS_CASSETTE__ */ +#endif // MAME_BUS_A1BUS_A1CASSETTE_H diff --git a/src/devices/bus/a1bus/a1cffa.cpp b/src/devices/bus/a1bus/a1cffa.cpp index f53270cd1df..3fb11381e9a 100644 --- a/src/devices/bus/a1bus/a1cffa.cpp +++ b/src/devices/bus/a1bus/a1cffa.cpp @@ -22,7 +22,7 @@ #define CFFA_ROM_REGION "cffa_rom" #define CFFA_ATA_TAG "cffa_ata" -const device_type A1BUS_CFFA = device_creator; +DEFINE_DEVICE_TYPE(A1BUS_CFFA, a1bus_cffa_device, "cffa1", "CFFA Compact Flash for Apple I") MACHINE_CONFIG_FRAGMENT( cffa ) MCFG_ATA_INTERFACE_ADD(CFFA_ATA_TAG, ata_devices, "hdd", nullptr, false) @@ -52,17 +52,18 @@ const tiny_rom_entry *a1bus_cffa_device::device_rom_region() const // LIVE DEVICE //************************************************************************** -a1bus_cffa_device::a1bus_cffa_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, A1BUS_CFFA, "CFFA Compact Flash for Apple I", tag, owner, clock, "cffa1", __FILE__), - device_a1bus_card_interface(mconfig, *this), - m_ata(*this, CFFA_ATA_TAG), m_rom(nullptr), m_lastdata(0), m_writeprotect(false) +a1bus_cffa_device::a1bus_cffa_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : a1bus_cffa_device(mconfig, A1BUS_CFFA, tag, owner, clock) { } -a1bus_cffa_device::a1bus_cffa_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_a1bus_card_interface(mconfig, *this), - m_ata(*this, CFFA_ATA_TAG), m_rom(nullptr), m_lastdata(0), m_writeprotect(false) +a1bus_cffa_device::a1bus_cffa_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) + , device_a1bus_card_interface(mconfig, *this) + , m_ata(*this, CFFA_ATA_TAG) + , m_rom(nullptr) + , m_lastdata(0) + , m_writeprotect(false) { } diff --git a/src/devices/bus/a1bus/a1cffa.h b/src/devices/bus/a1bus/a1cffa.h index 1f7925df0f9..e1114a23f05 100644 --- a/src/devices/bus/a1bus/a1cffa.h +++ b/src/devices/bus/a1bus/a1cffa.h @@ -8,8 +8,10 @@ *********************************************************************/ -#ifndef __A1BUS_CFFA__ -#define __A1BUS_CFFA__ +#ifndef MAME_BUS_A1BUS_A1CFFA_H +#define MAME_BUS_A1BUS_A1CFFA_H + +#pragma once #include "a1bus.h" #include "machine/ataintf.h" @@ -25,21 +27,22 @@ class a1bus_cffa_device: public: // construction/destruction a1bus_cffa_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - a1bus_cffa_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); // optional information overrides virtual machine_config_constructor device_mconfig_additions() const override; virtual const tiny_rom_entry *device_rom_region() const override; - required_device m_ata; - DECLARE_READ8_MEMBER(cffa_r); DECLARE_WRITE8_MEMBER(cffa_w); protected: + a1bus_cffa_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; virtual void device_reset() override; + required_device m_ata; + private: uint8_t *m_rom; uint16_t m_lastdata; @@ -49,4 +52,4 @@ private: // device type definition extern const device_type A1BUS_CFFA; -#endif /* __A1BUS_CFFA__ */ +#endif // MAME_BUS_A1BUS_A1CFFA_H diff --git a/src/devices/bus/a2bus/a2alfam2.cpp b/src/devices/bus/a2bus/a2alfam2.cpp index fc28c7900da..aaf8287cd8f 100644 --- a/src/devices/bus/a2bus/a2alfam2.cpp +++ b/src/devices/bus/a2bus/a2alfam2.cpp @@ -22,8 +22,8 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type A2BUS_ALFAM2 = device_creator; -const device_type A2BUS_AESMS = device_creator; +DEFINE_DEVICE_TYPE(A2BUS_ALFAM2, a2bus_alfam2_device, "a2alfam2", "ALF MC1 / Apple Music II") +DEFINE_DEVICE_TYPE(A2BUS_AESMS, a2bus_aesms_device, "a2aesms", "Applied Engineering Super Music Synthesizer") #define SN1_TAG "sn76489_1" // left #define SN2_TAG "sn76489_2" // center @@ -83,8 +83,8 @@ machine_config_constructor a2bus_aesms_device::device_mconfig_additions() const // LIVE DEVICE //************************************************************************** -a2bus_sn76489_device::a2bus_sn76489_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), +a2bus_sn76489_device::a2bus_sn76489_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), device_a2bus_card_interface(mconfig, *this), m_sn1(*this, SN1_TAG), m_sn2(*this, SN2_TAG), @@ -94,13 +94,13 @@ a2bus_sn76489_device::a2bus_sn76489_device(const machine_config &mconfig, device } a2bus_alfam2_device::a2bus_alfam2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - a2bus_sn76489_device(mconfig, A2BUS_ALFAM2, "ALF MC1 / Apple Music II", tag, owner, clock, "a2alfam2", __FILE__) + a2bus_sn76489_device(mconfig, A2BUS_ALFAM2, tag, owner, clock) { m_has4thsn = false; } a2bus_aesms_device::a2bus_aesms_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - a2bus_sn76489_device(mconfig, A2BUS_AESMS, "Applied Engineering Super Music Synthesizer", tag, owner, clock, "a2aesms", __FILE__) + a2bus_sn76489_device(mconfig, A2BUS_AESMS, tag, owner, clock) { m_has4thsn = true; } diff --git a/src/devices/bus/a2bus/a2alfam2.h b/src/devices/bus/a2bus/a2alfam2.h index b693ebb6a3f..ec98e87095d 100644 --- a/src/devices/bus/a2bus/a2alfam2.h +++ b/src/devices/bus/a2bus/a2alfam2.h @@ -8,8 +8,10 @@ *********************************************************************/ -#ifndef __A2BUS_ALFAM2__ -#define __A2BUS_ALFAM2__ +#ifndef MAME_BUS_A2BUS_A2ALFAM2_H +#define MAME_BUS_A2BUS_A2ALFAM2_H + +#pragma once #include "a2bus.h" #include "sound/sn76496.h" @@ -23,18 +25,13 @@ class a2bus_sn76489_device: public device_a2bus_card_interface { public: - // construction/destruction - a2bus_sn76489_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - // optional information overrides virtual machine_config_constructor device_mconfig_additions() const override; - required_device m_sn1; - required_device m_sn2; - required_device m_sn3; - optional_device m_sn4; - protected: + // construction/destruction + a2bus_sn76489_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; virtual void device_reset() override; @@ -43,6 +40,11 @@ protected: virtual void write_c0nx(address_space &space, uint8_t offset, uint8_t data) override; virtual bool take_c800() override; + required_device m_sn1; + required_device m_sn2; + required_device m_sn3; + optional_device m_sn4; + private: uint8_t m_latch0, m_latch1, m_latch2, m_latch3; @@ -65,7 +67,7 @@ public: }; // device type definition -extern const device_type A2BUS_ALFAM2; -extern const device_type A2BUS_AESMS; +DECLARE_DEVICE_TYPE(A2BUS_ALFAM2, a2bus_alfam2_device) +DECLARE_DEVICE_TYPE(A2BUS_AESMS, a2bus_aesms_device) -#endif /* __A2BUS_ALFAM2__ */ +#endif // MAME_BUS_A2BUS_A2ALFAM2_H diff --git a/src/devices/bus/a2bus/a2applicard.cpp b/src/devices/bus/a2bus/a2applicard.cpp index f24903138dc..a356f8de706 100644 --- a/src/devices/bus/a2bus/a2applicard.cpp +++ b/src/devices/bus/a2bus/a2applicard.cpp @@ -24,7 +24,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type A2BUS_APPLICARD = device_creator; +DEFINE_DEVICE_TYPE(A2BUS_APPLICARD, a2bus_applicard_device, "a2aplcrd", "PCPI Applicard") #define Z80_TAG "z80" #define Z80_ROM_REGION "z80_rom" @@ -75,17 +75,15 @@ const tiny_rom_entry *a2bus_applicard_device::device_rom_region() const // LIVE DEVICE //************************************************************************** -a2bus_applicard_device::a2bus_applicard_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), +a2bus_applicard_device::a2bus_applicard_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), device_a2bus_card_interface(mconfig, *this), m_z80(*this, Z80_TAG), m_bROMAtZ80Zero(false), m_z80stat(false), m_6502stat(false), m_toz80(0), m_to6502(0), m_z80rom(nullptr) { } a2bus_applicard_device::a2bus_applicard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, A2BUS_APPLICARD, "PCPI Applicard", tag, owner, clock, "a2aplcrd", __FILE__), - device_a2bus_card_interface(mconfig, *this), - m_z80(*this, Z80_TAG), m_bROMAtZ80Zero(false), m_z80stat(false), m_6502stat(false), m_toz80(0), m_to6502(0), m_z80rom(nullptr) + a2bus_applicard_device(mconfig, A2BUS_APPLICARD, tag, owner, clock) { } diff --git a/src/devices/bus/a2bus/a2applicard.h b/src/devices/bus/a2bus/a2applicard.h index 89df1bf188e..dfacfbf208f 100644 --- a/src/devices/bus/a2bus/a2applicard.h +++ b/src/devices/bus/a2bus/a2applicard.h @@ -8,8 +8,10 @@ *********************************************************************/ -#ifndef __A2BUS_APPLICARD__ -#define __A2BUS_APPLICARD__ +#ifndef MAME_BUS_A2BUS_A2APPLICARD_H +#define MAME_BUS_A2BUS_A2APPLICARD_H + +#pragma once #include "a2bus.h" @@ -23,7 +25,6 @@ class a2bus_applicard_device: { public: // construction/destruction - a2bus_applicard_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); a2bus_applicard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides @@ -35,6 +36,8 @@ public: DECLARE_WRITE8_MEMBER( z80_io_w ); protected: + a2bus_applicard_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; virtual void device_reset() override; virtual const tiny_rom_entry *device_rom_region() const override; @@ -55,6 +58,6 @@ private: }; // device type definition -extern const device_type A2BUS_APPLICARD; +DECLARE_DEVICE_TYPE(A2BUS_APPLICARD, a2bus_applicard_device) -#endif /* __A2BUS_APPLICARD__ */ +#endif // MAME_BUS_A2BUS_A2APPLICARD_H diff --git a/src/devices/bus/a2bus/a2arcadebd.cpp b/src/devices/bus/a2bus/a2arcadebd.cpp index 68da2e73426..cff4747f223 100644 --- a/src/devices/bus/a2bus/a2arcadebd.cpp +++ b/src/devices/bus/a2bus/a2arcadebd.cpp @@ -30,7 +30,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type A2BUS_ARCADEBOARD = device_creator; +DEFINE_DEVICE_TYPE(A2BUS_ARCADEBOARD, a2bus_arcboard_device, "a2arcbd", "Third Millenium Engineering Arcade Board") MACHINE_CONFIG_FRAGMENT( arcadeboard ) MCFG_DEVICE_ADD( TMS_TAG, TMS9918A, XTAL_10_738635MHz / 2 ) @@ -59,15 +59,12 @@ machine_config_constructor a2bus_arcboard_device::device_mconfig_additions() con //************************************************************************** a2bus_arcboard_device::a2bus_arcboard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, A2BUS_ARCADEBOARD, "Third Millenium Engineering Arcade Board", tag, owner, clock, "a2arcbd", __FILE__), - device_a2bus_card_interface(mconfig, *this), - m_tms(*this, TMS_TAG), - m_ay(*this, AY_TAG) + a2bus_arcboard_device(mconfig, A2BUS_ARCADEBOARD, tag, owner, clock) { } -a2bus_arcboard_device::a2bus_arcboard_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), +a2bus_arcboard_device::a2bus_arcboard_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), device_a2bus_card_interface(mconfig, *this), m_tms(*this, TMS_TAG), m_ay(*this, AY_TAG) diff --git a/src/devices/bus/a2bus/a2arcadebd.h b/src/devices/bus/a2bus/a2arcadebd.h index a57894e5830..dcf303f94ae 100644 --- a/src/devices/bus/a2bus/a2arcadebd.h +++ b/src/devices/bus/a2bus/a2arcadebd.h @@ -8,8 +8,10 @@ *********************************************************************/ -#ifndef __A2BUS_ARCADEBOARD__ -#define __A2BUS_ARCADEBOARD__ +#ifndef MAME_BUS_A2BUS_A2ARCADEBD_H +#define MAME_BUS_A2BUS_A2ARCADEBD_H + +#pragma once #include "a2bus.h" #include "video/tms9928a.h" @@ -26,7 +28,6 @@ class a2bus_arcboard_device: public: // construction/destruction a2bus_arcboard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - a2bus_arcboard_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); // optional information overrides virtual machine_config_constructor device_mconfig_additions() const override; @@ -34,6 +35,8 @@ public: DECLARE_WRITE_LINE_MEMBER( tms_irq_w ); protected: + a2bus_arcboard_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; virtual void device_reset() override; @@ -46,6 +49,6 @@ protected: }; // device type definition -extern const device_type A2BUS_ARCADEBOARD; +DECLARE_DEVICE_TYPE(A2BUS_ARCADEBOARD, a2bus_arcboard_device) -#endif /* __A2BUS_ARCADEBOARD__ */ +#endif // MAME_BUS_A2BUS_A2ARCADEBD_H diff --git a/src/devices/bus/a2bus/a2bus.cpp b/src/devices/bus/a2bus/a2bus.cpp index d271c4e2762..d70b0414b9f 100644 --- a/src/devices/bus/a2bus/a2bus.cpp +++ b/src/devices/bus/a2bus/a2bus.cpp @@ -78,7 +78,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type A2BUS_SLOT = device_creator; +DEFINE_DEVICE_TYPE(A2BUS_SLOT, a2bus_slot_device, "a2bus_slot", "Apple II Slot") //************************************************************************** // LIVE DEVICE @@ -87,15 +87,16 @@ const device_type A2BUS_SLOT = device_creator; //------------------------------------------------- // a2bus_slot_device - constructor //------------------------------------------------- -a2bus_slot_device::a2bus_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, A2BUS_SLOT, "Apple II Slot", tag, owner, clock, "a2bus_slot", __FILE__), - device_slot_interface(mconfig, *this), m_a2bus_tag(nullptr), m_a2bus_slottag(nullptr) +a2bus_slot_device::a2bus_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : a2bus_slot_device(mconfig, A2BUS_SLOT, tag, owner, clock) { } -a2bus_slot_device::a2bus_slot_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_slot_interface(mconfig, *this), m_a2bus_tag(nullptr), m_a2bus_slottag(nullptr) +a2bus_slot_device::a2bus_slot_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) + , device_slot_interface(mconfig, *this) + , m_a2bus_tag(nullptr) + , m_a2bus_slottag(nullptr) { } @@ -121,7 +122,7 @@ void a2bus_slot_device::device_start() // GLOBAL VARIABLES //************************************************************************** -const device_type A2BUS = device_creator; +DEFINE_DEVICE_TYPE(A2BUS, a2bus_device, "a2bus", "Apple II Bus") void a2bus_device::static_set_cputag(device_t &device, const char *tag) { @@ -137,19 +138,17 @@ void a2bus_device::static_set_cputag(device_t &device, const char *tag) // a2bus_device - constructor //------------------------------------------------- -a2bus_device::a2bus_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, A2BUS, "Apple II Bus", tag, owner, clock, "a2bus", __FILE__), m_maincpu(nullptr), m_maincpu_space(nullptr), - m_out_irq_cb(*this), - m_out_nmi_cb(*this), - m_out_inh_cb(*this), m_cputag(nullptr), m_slot_irq_mask(0), m_slot_nmi_mask(0) +a2bus_device::a2bus_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : a2bus_device(mconfig, A2BUS, tag, owner, clock) { } -a2bus_device::a2bus_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), m_maincpu(nullptr), m_maincpu_space(nullptr), - m_out_irq_cb(*this), - m_out_nmi_cb(*this), - m_out_inh_cb(*this), m_cputag(nullptr), m_slot_irq_mask(0), m_slot_nmi_mask(0) +a2bus_device::a2bus_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) + , m_maincpu(nullptr) , m_maincpu_space(nullptr) + , m_out_irq_cb(*this) , m_out_nmi_cb(*this) , m_out_inh_cb(*this) + , m_cputag(nullptr) + , m_slot_irq_mask(0), m_slot_nmi_mask(0) { } //------------------------------------------------- diff --git a/src/devices/bus/a2bus/a2bus.h b/src/devices/bus/a2bus/a2bus.h index 16433f5b814..f76a5e1166c 100644 --- a/src/devices/bus/a2bus/a2bus.h +++ b/src/devices/bus/a2bus/a2bus.h @@ -8,10 +8,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_BUS_A2BUS_A2BUS_H +#define MAME_BUS_A2BUS_A2BUS_H -#ifndef __A2BUS_H__ -#define __A2BUS_H__ +#pragma once // /INH special addresses @@ -63,7 +63,6 @@ class a2bus_slot_device : public device_t, public: // construction/destruction a2bus_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - a2bus_slot_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); // device-level overrides virtual void device_start() override; @@ -71,12 +70,14 @@ public: // inline configuration static void static_set_a2bus_slot(device_t &device, const char *tag, const char *slottag); protected: + a2bus_slot_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // configuration const char *m_a2bus_tag, *m_a2bus_slottag; }; // device type definition -extern const device_type A2BUS_SLOT; +DECLARE_DEVICE_TYPE(A2BUS_SLOT, a2bus_slot_device) class device_a2bus_card_interface; @@ -88,13 +89,12 @@ class a2bus_device : public device_t public: // construction/destruction a2bus_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - a2bus_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); // inline configuration static void static_set_cputag(device_t &device, const char *tag); - template static devcb_base &set_out_irq_callback(device_t &device, _Object object) { return downcast(device).m_out_irq_cb.set_callback(object); } - template static devcb_base &set_out_nmi_callback(device_t &device, _Object object) { return downcast(device).m_out_nmi_cb.set_callback(object); } - template static devcb_base &set_out_inh_callback(device_t &device, _Object object) { return downcast(device).m_out_inh_cb.set_callback(object); } + template static devcb_base &set_out_irq_callback(device_t &device, Object &&cb) { return downcast(device).m_out_irq_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_nmi_callback(device_t &device, Object &&cb) { return downcast(device).m_out_nmi_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_inh_callback(device_t &device, Object &&cb) { return downcast(device).m_out_inh_cb.set_callback(std::forward(cb)); } void add_a2bus_card(int slot, device_a2bus_card_interface *card); device_a2bus_card_interface *get_a2bus_card(int slot); @@ -114,6 +114,8 @@ public: DECLARE_WRITE_LINE_MEMBER( nmi_w ); protected: + a2bus_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -135,7 +137,7 @@ protected: // device type definition -extern const device_type A2BUS; +DECLARE_DEVICE_TYPE(A2BUS, a2bus_device) // ======================> device_a2bus_card_interface @@ -145,7 +147,6 @@ class device_a2bus_card_interface : public device_slot_card_interface friend class a2bus_device; public: // construction/destruction - device_a2bus_card_interface(const machine_config &mconfig, device_t &device); virtual ~device_a2bus_card_interface(); virtual uint8_t read_c0nx(address_space &space, uint8_t offset) { m_device.logerror("a2bus: unhandled read at C0n%x\n", offset); return 0; } // C0nX - /DEVSEL @@ -186,11 +187,14 @@ public: // inline configuration static void static_set_a2bus_tag(device_t &device, const char *tag, const char *slottag); -public: + +protected: + device_a2bus_card_interface(const machine_config &mconfig, device_t &device); + a2bus_device *m_a2bus; const char *m_a2bus_tag, *m_a2bus_slottag; int m_slot; device_a2bus_card_interface *m_next; }; -#endif /* __A2BUS_H__ */ +#endif // MAME_BUS_A2BUS_A2BUS_H diff --git a/src/devices/bus/a2bus/a2cffa.cpp b/src/devices/bus/a2bus/a2cffa.cpp index a37e33d2779..f4d96f6d436 100644 --- a/src/devices/bus/a2bus/a2cffa.cpp +++ b/src/devices/bus/a2bus/a2cffa.cpp @@ -27,8 +27,8 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type A2BUS_CFFA2 = device_creator; -const device_type A2BUS_CFFA2_6502 = device_creator; +DEFINE_DEVICE_TYPE(A2BUS_CFFA2, a2bus_cffa2_device, "a2cffa2", "CFFA2000 Compact Flash (65C02 firmware, www.dreher.net)") +DEFINE_DEVICE_TYPE(A2BUS_CFFA2_6502, a2bus_cffa2_6502_device, "a2cffa02", "CFFA2000 Compact Flash (6502 firmware, www.dreher.net)") #define CFFA2_ROM_REGION "cffa2_rom" #define CFFA2_ATA_TAG "cffa2_ata" @@ -83,21 +83,21 @@ const tiny_rom_entry *a2bus_cffa2_6502_device::device_rom_region() const // LIVE DEVICE //************************************************************************** -a2bus_cffa2000_device::a2bus_cffa2000_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), +a2bus_cffa2000_device::a2bus_cffa2000_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), device_a2bus_card_interface(mconfig, *this), m_ata(*this, CFFA2_ATA_TAG), m_rom(nullptr), m_lastdata(0), m_lastreaddata(0), m_writeprotect(false), m_inwritecycle(false) { } a2bus_cffa2_device::a2bus_cffa2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - a2bus_cffa2000_device(mconfig, A2BUS_CFFA2, "CFFA2000 Compact Flash (65C02 firmware, www.dreher.net)", tag, owner, clock, "a2cffa2", __FILE__), + a2bus_cffa2000_device(mconfig, A2BUS_CFFA2, tag, owner, clock), device_nvram_interface(mconfig, *this) { } a2bus_cffa2_6502_device::a2bus_cffa2_6502_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - a2bus_cffa2000_device(mconfig, A2BUS_CFFA2_6502, "CFFA2000 Compact Flash (6502 firmware, www.dreher.net)", tag, owner, clock, "a2cffa02", __FILE__), + a2bus_cffa2000_device(mconfig, A2BUS_CFFA2_6502, tag, owner, clock), device_nvram_interface(mconfig, *this) { } diff --git a/src/devices/bus/a2bus/a2cffa.h b/src/devices/bus/a2bus/a2cffa.h index 0c7832bbb93..be326ad037b 100644 --- a/src/devices/bus/a2bus/a2cffa.h +++ b/src/devices/bus/a2bus/a2cffa.h @@ -9,8 +9,10 @@ *********************************************************************/ -#ifndef __A2BUS_CFFA2__ -#define __A2BUS_CFFA2__ +#ifndef MAME_BUS_A2BUS_A2CFFA_H +#define MAME_BUS_A2BUS_A2CFFA_H + +#pragma once #include "a2bus.h" #include "machine/ataintf.h" @@ -24,14 +26,14 @@ class a2bus_cffa2000_device: public device_a2bus_card_interface { public: - // construction/destruction - a2bus_cffa2000_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - // optional information overrides virtual machine_config_constructor device_mconfig_additions() const override; virtual const tiny_rom_entry *device_rom_region() const override; protected: + // construction/destruction + a2bus_cffa2000_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; virtual void device_reset() override; @@ -79,7 +81,7 @@ protected: }; // device type definition -extern const device_type A2BUS_CFFA2; -extern const device_type A2BUS_CFFA2_6502; +DECLARE_DEVICE_TYPE(A2BUS_CFFA2, a2bus_cffa2_device) +DECLARE_DEVICE_TYPE(A2BUS_CFFA2_6502, a2bus_cffa2_6502_device) -#endif /* __A2BUS_CFFA2__ */ +#endif // MAME_BUS_A2BUS_A2CFFA_H diff --git a/src/devices/bus/a2bus/a2corvus.cpp b/src/devices/bus/a2bus/a2corvus.cpp index 7c399b215f4..15e734ddfef 100644 --- a/src/devices/bus/a2bus/a2corvus.cpp +++ b/src/devices/bus/a2bus/a2corvus.cpp @@ -52,7 +52,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type A2BUS_CORVUS = device_creator; +DEFINE_DEVICE_TYPE(A2BUS_CORVUS, a2bus_corvus_device, "a2corvus", "Corvus Flat Cable interface") #define CORVUS_ROM_REGION "corvus_rom" #define CORVUS_HD_TAG "corvushd" @@ -101,17 +101,15 @@ const tiny_rom_entry *a2bus_corvus_device::device_rom_region() const // LIVE DEVICE //************************************************************************** -a2bus_corvus_device::a2bus_corvus_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), +a2bus_corvus_device::a2bus_corvus_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), device_a2bus_card_interface(mconfig, *this), m_corvushd(*this, CORVUS_HD_TAG), m_rom(nullptr) { } a2bus_corvus_device::a2bus_corvus_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, A2BUS_CORVUS, "Corvus Flat Cable interface", tag, owner, clock, "a2corvus", __FILE__), - device_a2bus_card_interface(mconfig, *this), - m_corvushd(*this, CORVUS_HD_TAG), m_rom(nullptr) + a2bus_corvus_device(mconfig, A2BUS_CORVUS, tag, owner, clock) { } diff --git a/src/devices/bus/a2bus/a2corvus.h b/src/devices/bus/a2bus/a2corvus.h index a221ef51d45..2a58d280a06 100644 --- a/src/devices/bus/a2bus/a2corvus.h +++ b/src/devices/bus/a2bus/a2corvus.h @@ -9,8 +9,10 @@ *********************************************************************/ -#ifndef __A2BUS_CORVUS__ -#define __A2BUS_CORVUS__ +#ifndef MAME_A2BUS_A2CORVUS_H +#define MAME_A2BUS_A2CORVUS_H + +#pragma once #include "a2bus.h" #include "machine/corvushd.h" @@ -25,16 +27,15 @@ class a2bus_corvus_device: { public: // construction/destruction - a2bus_corvus_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); a2bus_corvus_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual machine_config_constructor device_mconfig_additions() const override; virtual const tiny_rom_entry *device_rom_region() const override; - required_device m_corvushd; - protected: + a2bus_corvus_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; virtual void device_reset() override; @@ -44,11 +45,13 @@ protected: virtual uint8_t read_cnxx(address_space &space, uint8_t offset) override; virtual uint8_t read_c800(address_space &space, uint16_t offset) override; + required_device m_corvushd; + private: uint8_t *m_rom; }; // device type definition -extern const device_type A2BUS_CORVUS; +DECLARE_DEVICE_TYPE(A2BUS_CORVUS, a2bus_corvus_device) -#endif /* __A2BUS_CORVUS__ */ +#endif // MAME_A2BUS_A2CORVUS_H diff --git a/src/devices/bus/a2bus/a2diskii.cpp b/src/devices/bus/a2bus/a2diskii.cpp index a28cc19076b..71f6895ea44 100644 --- a/src/devices/bus/a2bus/a2diskii.cpp +++ b/src/devices/bus/a2bus/a2diskii.cpp @@ -23,9 +23,9 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type A2BUS_DISKII = device_creator; -const device_type A2BUS_IWM_FDC = device_creator; -const device_type A2BUS_AGAT7_FDC = device_creator; +DEFINE_DEVICE_TYPE(A2BUS_DISKII, a2bus_diskii_device, "a2diskii", "Apple Disk II controller") +DEFINE_DEVICE_TYPE(A2BUS_IWM_FDC, a2bus_iwmflop_device, "a2iwm_flop", "Apple IWM floppy card") +DEFINE_DEVICE_TYPE(A2BUS_AGAT7_FDC, a2bus_agat7flop_device, "agat7_flop", "Agat-7 140K floppy card") #define DISKII_ROM_REGION "diskii_rom" #define FDC_TAG "diskii_fdc" @@ -100,25 +100,25 @@ const tiny_rom_entry *a2bus_agat7flop_device::device_rom_region() const // LIVE DEVICE //************************************************************************** -a2bus_floppy_device::a2bus_floppy_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_a2bus_card_interface(mconfig, *this), - m_fdc(*this, FDC_TAG), m_rom(nullptr) +a2bus_floppy_device::a2bus_floppy_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), + device_a2bus_card_interface(mconfig, *this), + m_fdc(*this, FDC_TAG), m_rom(nullptr) { } a2bus_diskii_device::a2bus_diskii_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - a2bus_floppy_device(mconfig, A2BUS_DISKII, "Apple Disk II controller", tag, owner, clock, "a2diskii", __FILE__) + a2bus_floppy_device(mconfig, A2BUS_DISKII, tag, owner, clock) { } a2bus_iwmflop_device::a2bus_iwmflop_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - a2bus_floppy_device(mconfig, A2BUS_IWM_FDC, "Apple IWM floppy card", tag, owner, clock, "a2iwm_flop", __FILE__) + a2bus_floppy_device(mconfig, A2BUS_IWM_FDC, tag, owner, clock) { } a2bus_agat7flop_device::a2bus_agat7flop_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - a2bus_floppy_device(mconfig, A2BUS_AGAT7_FDC, "Agat-7 140K floppy card", tag, owner, clock, "agat7_flop", __FILE__) + a2bus_floppy_device(mconfig, A2BUS_AGAT7_FDC, tag, owner, clock) { } diff --git a/src/devices/bus/a2bus/a2diskii.h b/src/devices/bus/a2bus/a2diskii.h index 9d17757a144..b4367fd0aea 100644 --- a/src/devices/bus/a2bus/a2diskii.h +++ b/src/devices/bus/a2bus/a2diskii.h @@ -8,8 +8,10 @@ *********************************************************************/ -#ifndef __A2BUS_DISKII__ -#define __A2BUS_DISKII__ +#ifndef MAME_BUS_A2BUS_A2DISKII_H +#define MAME_BUS_A2BUS_A2DISKII_H + +#pragma once #include "a2bus.h" #include "machine/applefdc.h" @@ -23,14 +25,14 @@ class a2bus_floppy_device: public device_a2bus_card_interface { public: - // construction/destruction - a2bus_floppy_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - // optional information overrides virtual machine_config_constructor device_mconfig_additions() const override; virtual const tiny_rom_entry *device_rom_region() const override; protected: + // construction/destruction + a2bus_floppy_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; virtual void device_reset() override; @@ -68,8 +70,8 @@ public: }; // device type definition -extern const device_type A2BUS_DISKII; -extern const device_type A2BUS_IWM_FDC; -extern const device_type A2BUS_AGAT7_FDC; +DECLARE_DEVICE_TYPE(A2BUS_DISKII, a2bus_diskii_device) +DECLARE_DEVICE_TYPE(A2BUS_IWM_FDC, a2bus_iwmflop_device) +DECLARE_DEVICE_TYPE(A2BUS_AGAT7_FDC, a2bus_agat7flop_device) -#endif /* __A2BUS_DISKII__ */ +#endif // MAME_BUS_A2BUS_A2DISKII_H diff --git a/src/devices/bus/a2bus/a2diskiing.cpp b/src/devices/bus/a2bus/a2diskiing.cpp index a1ebc3fb3c1..3235f4ec2ba 100644 --- a/src/devices/bus/a2bus/a2diskiing.cpp +++ b/src/devices/bus/a2bus/a2diskiing.cpp @@ -21,7 +21,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type A2BUS_DISKIING = device_creator; +DEFINE_DEVICE_TYPE(A2BUS_DISKIING, a2bus_diskiing_device, "a2diskiing", "Apple Disk II NG controller") #define WOZFDC_TAG "wozfdc" #define DISKII_ROM_REGION "diskii_rom" @@ -69,11 +69,12 @@ const tiny_rom_entry *a2bus_diskiing_device::device_rom_region() const //************************************************************************** a2bus_diskiing_device::a2bus_diskiing_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, A2BUS_DISKIING, "Apple Disk II NG controller", tag, owner, clock, "a2diskiing", __FILE__), + device_t(mconfig, A2BUS_DISKIING, tag, owner, clock), device_a2bus_card_interface(mconfig, *this), m_wozfdc(*this, WOZFDC_TAG), floppy0(*this, "0"), - floppy1(*this, "1"), m_rom(nullptr) + floppy1(*this, "1"), + m_rom(nullptr) { } diff --git a/src/devices/bus/a2bus/a2diskiing.h b/src/devices/bus/a2bus/a2diskiing.h index 76e16818700..68c705435e6 100644 --- a/src/devices/bus/a2bus/a2diskiing.h +++ b/src/devices/bus/a2bus/a2diskiing.h @@ -8,8 +8,10 @@ *********************************************************************/ -#ifndef __A2BUS_DISKIING__ -#define __A2BUS_DISKIING__ +#ifndef MAME_BUS_A2BUS_A2DISKIING_H +#define MAME_BUS_A2BUS_A2DISKIING_H + +#pragma once #include "a2bus.h" #include "imagedev/floppy.h" @@ -45,7 +47,7 @@ protected: virtual uint8_t read_cnxx(address_space &space, uint8_t offset) override; private: - required_device m_wozfdc; + required_device m_wozfdc; required_device floppy0; required_device floppy1; @@ -53,6 +55,6 @@ private: }; // device type definition -extern const device_type A2BUS_DISKIING; +DECLARE_DEVICE_TYPE(A2BUS_DISKIING, a2bus_diskiing_device) -#endif /* __A2BUS_DISKIING__ */ +#endif // MAME_BUS_A2BUS_A2DISKIING_H diff --git a/src/devices/bus/a2bus/a2dx1.cpp b/src/devices/bus/a2bus/a2dx1.cpp index 16b68bb2e81..16ec11d63d0 100644 --- a/src/devices/bus/a2bus/a2dx1.cpp +++ b/src/devices/bus/a2bus/a2dx1.cpp @@ -21,7 +21,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type A2BUS_DX1 = device_creator; +DEFINE_DEVICE_TYPE(A2BUS_DX1, a2bus_dx1_device, "a2dx1", "Decillonix DX-1") MACHINE_CONFIG_FRAGMENT( a2dx1 ) MCFG_SPEAKER_STANDARD_MONO("speaker") @@ -50,8 +50,8 @@ machine_config_constructor a2bus_dx1_device::device_mconfig_additions() const // LIVE DEVICE //************************************************************************** -a2bus_dx1_device::a2bus_dx1_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), +a2bus_dx1_device::a2bus_dx1_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), device_a2bus_card_interface(mconfig, *this), m_dac(*this, "dac"), m_dacvol(*this, "dacvol") @@ -59,10 +59,7 @@ a2bus_dx1_device::a2bus_dx1_device(const machine_config &mconfig, device_type ty } a2bus_dx1_device::a2bus_dx1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, A2BUS_DX1, "Decillonix DX-1", tag, owner, clock, "a2dx1", __FILE__), - device_a2bus_card_interface(mconfig, *this), - m_dac(*this, "dac"), - m_dacvol(*this, "dacvol") + a2bus_dx1_device(mconfig, A2BUS_DX1, tag, owner, clock) { } diff --git a/src/devices/bus/a2bus/a2dx1.h b/src/devices/bus/a2bus/a2dx1.h index a5c60a19ffa..f831e5777a6 100644 --- a/src/devices/bus/a2bus/a2dx1.h +++ b/src/devices/bus/a2bus/a2dx1.h @@ -8,8 +8,10 @@ *********************************************************************/ -#ifndef __A2BUS_DX1__ -#define __A2BUS_DX1__ +#ifndef MAME_BUS_A2BUS_A2DX1_H +#define MAME_BUS_A2BUS_A2DX1_H + +#pragma once #include "a2bus.h" #include "sound/dac.h" @@ -24,25 +26,26 @@ class a2bus_dx1_device: { public: // construction/destruction - a2bus_dx1_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); a2bus_dx1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual machine_config_constructor device_mconfig_additions() const override; - required_device m_dac; - required_device m_dacvol; - protected: + a2bus_dx1_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; // overrides of standard a2bus slot functions virtual uint8_t read_c0nx(address_space &space, uint8_t offset) override; virtual void write_c0nx(address_space &space, uint8_t offset, uint8_t data) override; virtual bool take_c800() override; + + required_device m_dac; + required_device m_dacvol; }; // device type definition -extern const device_type A2BUS_DX1; +DECLARE_DEVICE_TYPE(A2BUS_DX1, a2bus_dx1_device) -#endif /* __A2BUS_DX1__ */ +#endif // MAME_BUS_A2BUS_A2DX1_H diff --git a/src/devices/bus/a2bus/a2eauxslot.cpp b/src/devices/bus/a2bus/a2eauxslot.cpp index 8fc2f7a8137..7e3ba7ca8e3 100644 --- a/src/devices/bus/a2bus/a2eauxslot.cpp +++ b/src/devices/bus/a2bus/a2eauxslot.cpp @@ -16,7 +16,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type A2EAUXSLOT_SLOT = device_creator; +DEFINE_DEVICE_TYPE(A2EAUXSLOT_SLOT, a2eauxslot_slot_device, "a2eauxslot_slot", "Apple IIe AUX Slot") //************************************************************************** // LIVE DEVICE @@ -25,17 +25,16 @@ const device_type A2EAUXSLOT_SLOT = device_creator; //------------------------------------------------- // a2eauxslot_slot_device - constructor //------------------------------------------------- -a2eauxslot_slot_device::a2eauxslot_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, A2EAUXSLOT_SLOT, "Apple IIe AUX Slot", tag, owner, clock, "a2eauxslot_slot", __FILE__), - device_slot_interface(mconfig, *this), - m_a2eauxslot_tag(nullptr), - m_a2eauxslot_slottag(nullptr) +a2eauxslot_slot_device::a2eauxslot_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : a2eauxslot_slot_device(mconfig, A2EAUXSLOT_SLOT, tag, owner, clock) { } -a2eauxslot_slot_device::a2eauxslot_slot_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_slot_interface(mconfig, *this), m_a2eauxslot_tag(nullptr), m_a2eauxslot_slottag(nullptr) +a2eauxslot_slot_device::a2eauxslot_slot_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) + , device_slot_interface(mconfig, *this) + , m_a2eauxslot_tag(nullptr) + , m_a2eauxslot_slottag(nullptr) { } @@ -61,7 +60,7 @@ void a2eauxslot_slot_device::device_start() // GLOBAL VARIABLES //************************************************************************** -const device_type A2EAUXSLOT = device_creator; +DEFINE_DEVICE_TYPE(A2EAUXSLOT, a2eauxslot_device, "a2eauxslot", "Apple IIe AUX Bus") void a2eauxslot_device::static_set_cputag(device_t &device, const char *tag) { @@ -77,17 +76,18 @@ void a2eauxslot_device::static_set_cputag(device_t &device, const char *tag) // a2eauxslot_device - constructor //------------------------------------------------- -a2eauxslot_device::a2eauxslot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, A2EAUXSLOT, "Apple IIe AUX Bus", tag, owner, clock, "a2eauxslot", __FILE__), m_maincpu(nullptr), - m_out_irq_cb(*this), - m_out_nmi_cb(*this), m_device(nullptr), m_cputag(nullptr) +a2eauxslot_device::a2eauxslot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : a2eauxslot_device(mconfig, A2EAUXSLOT, tag, owner, clock) { } -a2eauxslot_device::a2eauxslot_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), m_maincpu(nullptr), - m_out_irq_cb(*this), - m_out_nmi_cb(*this), m_device(nullptr), m_cputag(nullptr) +a2eauxslot_device::a2eauxslot_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) + , m_maincpu(nullptr) + , m_out_irq_cb(*this) + , m_out_nmi_cb(*this) + , m_device(nullptr) + , m_cputag(nullptr) { } //------------------------------------------------- diff --git a/src/devices/bus/a2bus/a2eauxslot.h b/src/devices/bus/a2bus/a2eauxslot.h index e697ae17844..b7c3dec55bd 100644 --- a/src/devices/bus/a2bus/a2eauxslot.h +++ b/src/devices/bus/a2bus/a2eauxslot.h @@ -8,10 +8,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_BUS_A2BUS_A2EAUXSLOT_H +#define MAME_BUS_A2BUS_A2EAUXSLOT_H -#ifndef __A2EAUXSLOT_H__ -#define __A2EAUXSLOT_H__ +#pragma once #include "a2bus.h" @@ -47,20 +47,22 @@ class a2eauxslot_slot_device : public device_t, public: // construction/destruction a2eauxslot_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - a2eauxslot_slot_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); // device-level overrides virtual void device_start() override; // inline configuration static void static_set_a2eauxslot_slot(device_t &device, const char *tag, const char *slottag); + protected: + a2eauxslot_slot_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // configuration const char *m_a2eauxslot_tag, *m_a2eauxslot_slottag; }; // device type definition -extern const device_type A2EAUXSLOT_SLOT; +DECLARE_DEVICE_TYPE(A2EAUXSLOT_SLOT, a2eauxslot_slot_device) class device_a2eauxslot_card_interface; @@ -71,12 +73,11 @@ class a2eauxslot_device : public device_t public: // construction/destruction a2eauxslot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - a2eauxslot_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); // inline configuration static void static_set_cputag(device_t &device, const char *tag); - template static devcb_base &set_out_irq_callback(device_t &device, _Object object) { return downcast(device).m_out_irq_cb.set_callback(object); } - template static devcb_base &set_out_nmi_callback(device_t &device, _Object object) { return downcast(device).m_out_nmi_cb.set_callback(object); } + template static devcb_base &set_out_irq_callback(device_t &device, Object &&cb) { return downcast(device).m_out_irq_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_nmi_callback(device_t &device, Object &&cb) { return downcast(device).m_out_nmi_cb.set_callback(std::forward(cb)); } void add_a2eauxslot_card(device_a2eauxslot_card_interface *card); device_a2eauxslot_card_interface *get_a2eauxslot_card(); @@ -88,6 +89,8 @@ public: DECLARE_WRITE_LINE_MEMBER( nmi_w ); protected: + a2eauxslot_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -105,6 +108,7 @@ protected: // device type definition extern const device_type A2EAUXSLOT; +DECLARE_DEVICE_TYPE(A2EAUXSLOT, a2eauxslot_device) // ======================> device_a2eauxslot_card_interface @@ -114,7 +118,6 @@ class device_a2eauxslot_card_interface : public device_slot_card_interface friend class a2eauxslot_device; public: // construction/destruction - device_a2eauxslot_card_interface(const machine_config &mconfig, device_t &device); virtual ~device_a2eauxslot_card_interface(); virtual uint8_t read_auxram(uint16_t offset) { printf("a2eauxslot: unhandled auxram read @ %04x\n", offset); return 0xff; } @@ -135,11 +138,14 @@ public: // inline configuration static void static_set_a2eauxslot_tag(device_t &device, const char *tag, const char *slottag); -public: + +protected: + device_a2eauxslot_card_interface(const machine_config &mconfig, device_t &device); + a2eauxslot_device *m_a2eauxslot; const char *m_a2eauxslot_tag, *m_a2eauxslot_slottag; int m_slot; device_a2eauxslot_card_interface *m_next; }; -#endif /* __A2EAUXSLOT_H__ */ +#endif // MAME_BUS_A2BUS_A2EAUXSLOT_H diff --git a/src/devices/bus/a2bus/a2echoii.cpp b/src/devices/bus/a2bus/a2echoii.cpp index 3803af3fce4..6ea4ca68e48 100644 --- a/src/devices/bus/a2bus/a2echoii.cpp +++ b/src/devices/bus/a2bus/a2echoii.cpp @@ -21,7 +21,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type A2BUS_ECHOII = device_creator; +DEFINE_DEVICE_TYPE(A2BUS_ECHOII, a2bus_echoii_device, "a2echoii", "Street Electronics Echo II") #define TMS_TAG "tms5220" @@ -49,17 +49,15 @@ machine_config_constructor a2bus_echoii_device::device_mconfig_additions() const // LIVE DEVICE //************************************************************************** -a2bus_echoii_device::a2bus_echoii_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), +a2bus_echoii_device::a2bus_echoii_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), device_a2bus_card_interface(mconfig, *this), m_tms(*this, TMS_TAG) { } a2bus_echoii_device::a2bus_echoii_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, A2BUS_ECHOII, "Street Electronics Echo II", tag, owner, clock, "a2echoii", __FILE__), - device_a2bus_card_interface(mconfig, *this), - m_tms(*this, TMS_TAG) + a2bus_echoii_device(mconfig, A2BUS_ECHOII, tag, owner, clock) { } diff --git a/src/devices/bus/a2bus/a2echoii.h b/src/devices/bus/a2bus/a2echoii.h index 2dcdf849797..d0781e0c4d9 100644 --- a/src/devices/bus/a2bus/a2echoii.h +++ b/src/devices/bus/a2bus/a2echoii.h @@ -8,8 +8,10 @@ *********************************************************************/ -#ifndef __A2BUS_ECHOII__ -#define __A2BUS_ECHOII__ +#ifndef MAME_BUS_A2BUS_A2ECHOII_H +#define MAME_BUS_A2BUS_A2ECHOII_H + +#pragma once #include "a2bus.h" #include "sound/tms5220.h" @@ -24,7 +26,6 @@ class a2bus_echoii_device: { public: // construction/destruction - a2bus_echoii_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); a2bus_echoii_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides @@ -33,6 +34,8 @@ public: required_device m_tms; protected: + a2bus_echoii_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; virtual void device_reset() override; @@ -44,5 +47,6 @@ protected: // device type definition extern const device_type A2BUS_ECHOII; +DECLARE_DEVICE_TYPE(A2BUS_ECHOII, a2bus_echoii_device) -#endif /* __A2BUS_ECHOII__ */ +#endif // MAME_BUS_A2BUS_A2ECHOII_H diff --git a/src/devices/bus/a2bus/a2eext80col.cpp b/src/devices/bus/a2bus/a2eext80col.cpp index d7732804f58..b98d31c0d5c 100644 --- a/src/devices/bus/a2bus/a2eext80col.cpp +++ b/src/devices/bus/a2bus/a2eext80col.cpp @@ -20,20 +20,19 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type A2EAUX_EXT80COL = device_creator; +DEFINE_DEVICE_TYPE(A2EAUX_EXT80COL, a2eaux_ext80col_device, "a2eext80", "Apple IIe Extended 80-Column Card") //************************************************************************** // LIVE DEVICE //************************************************************************** a2eaux_ext80col_device::a2eaux_ext80col_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, A2EAUX_EXT80COL, "Apple IIe Extended 80-Column Card", tag, owner, clock, "a2eext80", __FILE__), - device_a2eauxslot_card_interface(mconfig, *this) + a2eaux_ext80col_device(mconfig, A2EAUX_EXT80COL, tag, owner, clock) { } -a2eaux_ext80col_device::a2eaux_ext80col_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), +a2eaux_ext80col_device::a2eaux_ext80col_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), device_a2eauxslot_card_interface(mconfig, *this) { } diff --git a/src/devices/bus/a2bus/a2eext80col.h b/src/devices/bus/a2bus/a2eext80col.h index 09762dce2cc..2aa89586f5b 100644 --- a/src/devices/bus/a2bus/a2eext80col.h +++ b/src/devices/bus/a2bus/a2eext80col.h @@ -8,8 +8,10 @@ *********************************************************************/ -#ifndef __A2EAUX_EXT80COL__ -#define __A2EAUX_EXT80COL__ +#ifndef MAME_BUS_A2BUS_A2EEXT809COL_H +#define MAME_BUS_A2BUS_A2EEXT809COL_H + +#pragma once #include "a2eauxslot.h" @@ -24,9 +26,10 @@ class a2eaux_ext80col_device: public: // construction/destruction a2eaux_ext80col_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - a2eaux_ext80col_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); protected: + a2eaux_ext80col_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; virtual void device_reset() override; @@ -41,6 +44,6 @@ private: }; // device type definition -extern const device_type A2EAUX_EXT80COL; +DECLARE_DEVICE_TYPE(A2EAUX_EXT80COL, a2eaux_ext80col_device) -#endif /* __A2EAUX_EXT80COL__ */ +#endif // MAME_BUS_A2BUS_A2EEXT809COL_H diff --git a/src/devices/bus/a2bus/a2eramworks3.cpp b/src/devices/bus/a2bus/a2eramworks3.cpp index 587165e81e4..e82225cbd27 100644 --- a/src/devices/bus/a2bus/a2eramworks3.cpp +++ b/src/devices/bus/a2bus/a2eramworks3.cpp @@ -21,22 +21,21 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type A2EAUX_RAMWORKS3 = device_creator; +DEFINE_DEVICE_TYPE(A2EAUX_RAMWORKS3, a2eaux_ramworks3_device, "a2erwks3", "Applied Engineering RamWorks III") //************************************************************************** // LIVE DEVICE //************************************************************************** a2eaux_ramworks3_device::a2eaux_ramworks3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, A2EAUX_RAMWORKS3, "Applied Engineering RamWorks III", tag, owner, clock, "a2erwks3", __FILE__), - device_a2eauxslot_card_interface(mconfig, *this), - m_bank(0) + a2eaux_ramworks3_device(mconfig, A2EAUX_RAMWORKS3, tag, owner, clock) { } -a2eaux_ramworks3_device::a2eaux_ramworks3_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_a2eauxslot_card_interface(mconfig, *this), m_bank(0) +a2eaux_ramworks3_device::a2eaux_ramworks3_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), + device_a2eauxslot_card_interface(mconfig, *this), + m_bank(0) { } diff --git a/src/devices/bus/a2bus/a2eramworks3.h b/src/devices/bus/a2bus/a2eramworks3.h index 75c8872d1cb..f2b327ebfab 100644 --- a/src/devices/bus/a2bus/a2eramworks3.h +++ b/src/devices/bus/a2bus/a2eramworks3.h @@ -8,8 +8,8 @@ *********************************************************************/ -#ifndef __A2EAUX_RAMWORKS3__ -#define __A2EAUX_RAMWORKS3__ +#ifndef MAME_BUS_A2BUS_A2ERAMWORKS3_H +#define MAME_BUS_A2BUS_A2ERAMWORKS3_H #include "a2eauxslot.h" @@ -24,9 +24,10 @@ class a2eaux_ramworks3_device: public: // construction/destruction a2eaux_ramworks3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - a2eaux_ramworks3_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); protected: + a2eaux_ramworks3_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; virtual void device_reset() override; @@ -43,6 +44,6 @@ private: }; // device type definition -extern const device_type A2EAUX_RAMWORKS3; +DECLARE_DEVICE_TYPE(A2EAUX_RAMWORKS3, a2eaux_ramworks3_device) -#endif /* __A2EAUX_RAMWORKS3__ */ +#endif // MAME_BUS_A2BUS_A2ERAMWORKS3_H diff --git a/src/devices/bus/a2bus/a2estd80col.cpp b/src/devices/bus/a2bus/a2estd80col.cpp index a32b6750c77..e5a9741e7a0 100644 --- a/src/devices/bus/a2bus/a2estd80col.cpp +++ b/src/devices/bus/a2bus/a2estd80col.cpp @@ -20,20 +20,19 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type A2EAUX_STD80COL = device_creator; +DEFINE_DEVICE_TYPE(A2EAUX_STD80COL, a2eaux_std80col_device, "a2estd80", "Apple IIe Standard 80-Column Card") //************************************************************************** // LIVE DEVICE //************************************************************************** a2eaux_std80col_device::a2eaux_std80col_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, A2EAUX_STD80COL, "Apple IIe Standard 80-Column Card", tag, owner, clock, "a2estd80", __FILE__), - device_a2eauxslot_card_interface(mconfig, *this) + a2eaux_std80col_device(mconfig, A2EAUX_STD80COL, tag, owner, clock) { } -a2eaux_std80col_device::a2eaux_std80col_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), +a2eaux_std80col_device::a2eaux_std80col_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), device_a2eauxslot_card_interface(mconfig, *this) { } diff --git a/src/devices/bus/a2bus/a2estd80col.h b/src/devices/bus/a2bus/a2estd80col.h index bd483863b1d..6f81860487d 100644 --- a/src/devices/bus/a2bus/a2estd80col.h +++ b/src/devices/bus/a2bus/a2estd80col.h @@ -8,8 +8,10 @@ *********************************************************************/ -#ifndef __A2EAUX_STD80COL__ -#define __A2EAUX_STD80COL__ +#ifndef MAME_BUS_A2BUS_A2ESTD80COL_H +#define MAME_BUS_A2BUS_A2ESTD80COL_H + +#pragma once #include "a2eauxslot.h" @@ -24,9 +26,10 @@ class a2eaux_std80col_device: public: // construction/destruction a2eaux_std80col_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - a2eaux_std80col_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); protected: + a2eaux_std80col_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; virtual void device_reset() override; @@ -41,6 +44,6 @@ private: }; // device type definition -extern const device_type A2EAUX_STD80COL; +DECLARE_DEVICE_TYPE(A2EAUX_STD80COL, a2eaux_std80col_device) -#endif /* __A2EAUX_STD80COL__ */ +#endif // MAME_BUS_A2BUS_A2ESTD80COL_H diff --git a/src/devices/bus/a2bus/a2hsscsi.cpp b/src/devices/bus/a2bus/a2hsscsi.cpp index 7584c73d836..118ad966630 100644 --- a/src/devices/bus/a2bus/a2hsscsi.cpp +++ b/src/devices/bus/a2bus/a2hsscsi.cpp @@ -51,7 +51,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type A2BUS_HSSCSI = device_creator; +DEFINE_DEVICE_TYPE(A2BUS_HSSCSI, a2bus_hsscsi_device, "a2hsscsi", "Apple II High-Speed SCSI Card") #define SCSI_ROM_REGION "scsi_rom" #define SCSI_BUS_TAG "scsibus" @@ -113,8 +113,8 @@ const tiny_rom_entry *a2bus_hsscsi_device::device_rom_region() const // LIVE DEVICE //************************************************************************** -a2bus_hsscsi_device::a2bus_hsscsi_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), +a2bus_hsscsi_device::a2bus_hsscsi_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), device_a2bus_card_interface(mconfig, *this), m_ncr5380(*this, SCSI_5380_TAG), m_scsibus(*this, SCSI_BUS_TAG), m_rom(nullptr), m_rambank(0), m_rombank(0), m_drq(0), m_bank(0), m_816block(false), m_c0ne(0), m_c0nf(0) @@ -122,10 +122,7 @@ a2bus_hsscsi_device::a2bus_hsscsi_device(const machine_config &mconfig, device_t } a2bus_hsscsi_device::a2bus_hsscsi_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, A2BUS_HSSCSI, "Apple II High-Speed SCSI Card", tag, owner, clock, "a2hsscsi", __FILE__), - device_a2bus_card_interface(mconfig, *this), - m_ncr5380(*this, SCSI_5380_TAG), - m_scsibus(*this, SCSI_BUS_TAG), m_rom(nullptr), m_rambank(0), m_rombank(0), m_drq(0), m_bank(0), m_816block(false), m_c0ne(0), m_c0nf(0) + a2bus_hsscsi_device(mconfig, A2BUS_HSSCSI, tag, owner, clock) { } diff --git a/src/devices/bus/a2bus/a2hsscsi.h b/src/devices/bus/a2bus/a2hsscsi.h index 344253cd1ef..c4ff4d0a0b1 100644 --- a/src/devices/bus/a2bus/a2hsscsi.h +++ b/src/devices/bus/a2bus/a2hsscsi.h @@ -8,8 +8,10 @@ *********************************************************************/ -#ifndef __A2BUS_HSSCSI__ -#define __A2BUS_HSSCSI__ +#ifndef MAME_BUS_A2BUS_A2HSSCSI_H +#define MAME_BUS_A2BUS_A2HSSCSI_H + +#pragma once #include "a2bus.h" #include "machine/ncr5380n.h" @@ -24,19 +26,17 @@ class a2bus_hsscsi_device: { public: // construction/destruction - a2bus_hsscsi_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); a2bus_hsscsi_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual machine_config_constructor device_mconfig_additions() const override; virtual const tiny_rom_entry *device_rom_region() const override; - required_device m_ncr5380; - required_device m_scsibus; - DECLARE_WRITE_LINE_MEMBER( drq_w ); protected: + a2bus_hsscsi_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; virtual void device_reset() override; @@ -48,6 +48,9 @@ protected: virtual uint8_t read_c800(address_space &space, uint16_t offset) override; virtual void write_c800(address_space &space, uint16_t offset, uint8_t data) override; + required_device m_ncr5380; + required_device m_scsibus; + private: uint8_t *m_rom; uint8_t m_ram[8192]; // 8 banks of 1024 bytes @@ -59,6 +62,6 @@ private: }; // device type definition -extern const device_type A2BUS_HSSCSI; +DECLARE_DEVICE_TYPE(A2BUS_HSSCSI, a2bus_hsscsi_device) -#endif /* __A2BUS_HSSCSI__ */ +#endif // MAME_BUS_A2BUS_A2HSSCSI_H diff --git a/src/devices/bus/a2bus/a2mcms.cpp b/src/devices/bus/a2bus/a2mcms.cpp index 891bc51c0a0..da2459408a0 100644 --- a/src/devices/bus/a2bus/a2mcms.cpp +++ b/src/devices/bus/a2bus/a2mcms.cpp @@ -23,7 +23,7 @@ enum }; -const device_type MCMS = device_creator; +DEFINE_DEVICE_TYPE(MCMS, mcms_device, "mcmseng", "Mountain Computer Music System engine") /*************************************************************************** PARAMETERS @@ -33,8 +33,8 @@ const device_type MCMS = device_creator; // GLOBAL VARIABLES //************************************************************************** -const device_type A2BUS_MCMS1 = device_creator; -const device_type A2BUS_MCMS2 = device_creator; +DEFINE_DEVICE_TYPE(A2BUS_MCMS1, a2bus_mcms1_device, "a2mcms1", "Mountain Computer Music System (card 1)") +DEFINE_DEVICE_TYPE(A2BUS_MCMS2, a2bus_mcms2_device, "a2mcms2", "Mountain Computer Music System (card 2)") #define ENGINE_TAG "engine" @@ -69,17 +69,15 @@ machine_config_constructor a2bus_mcms1_device::device_mconfig_additions() const // LIVE DEVICE - Card 1 //************************************************************************** -a2bus_mcms1_device::a2bus_mcms1_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), +a2bus_mcms1_device::a2bus_mcms1_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), device_a2bus_card_interface(mconfig, *this), m_mcms(*this, ENGINE_TAG) { } a2bus_mcms1_device::a2bus_mcms1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, A2BUS_MCMS1, "Mountain Computer Music System (card 1)", tag, owner, clock, "a2mcms1", __FILE__), - device_a2bus_card_interface(mconfig, *this), - m_mcms(*this, ENGINE_TAG) + a2bus_mcms1_device(mconfig, A2BUS_MCMS1, tag, owner, clock) { } @@ -150,15 +148,14 @@ WRITE_LINE_MEMBER(a2bus_mcms1_device::irq_w) // LIVE DEVICE - Card 2 //************************************************************************** -a2bus_mcms2_device::a2bus_mcms2_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), +a2bus_mcms2_device::a2bus_mcms2_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), device_a2bus_card_interface(mconfig, *this), m_card1(nullptr), m_engine(nullptr) { } a2bus_mcms2_device::a2bus_mcms2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, A2BUS_MCMS2, "Mountain Computer Music System (card 2)", tag, owner, clock, "a2mcms2", __FILE__), - device_a2bus_card_interface(mconfig, *this), m_card1(nullptr), m_engine(nullptr) + a2bus_mcms2_device(mconfig, A2BUS_MCMS2, tag, owner, clock) { } @@ -214,7 +211,7 @@ void a2bus_mcms2_device::write_cnxx(address_space &space, uint8_t offset, uint8_ */ mcms_device::mcms_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MCMS, "Mountain Computer Music System engine", tag, owner, clock, "msmseng", __FILE__), + : device_t(mconfig, MCMS, tag, owner, clock), device_sound_interface(mconfig, *this), m_write_irq(*this), m_stream(nullptr), m_timer(nullptr), m_clrtimer(nullptr), m_pBusDevice(nullptr), m_enabled(false), m_mastervol(0), m_rand(0) { diff --git a/src/devices/bus/a2bus/a2mcms.h b/src/devices/bus/a2bus/a2mcms.h index 9877b8e945b..e854169bae3 100644 --- a/src/devices/bus/a2bus/a2mcms.h +++ b/src/devices/bus/a2bus/a2mcms.h @@ -10,8 +10,8 @@ *********************************************************************/ -#ifndef __A2BUS_MCMS__ -#define __A2BUS_MCMS__ +#ifndef MAME_BUS_A2BUS_A2MCMS_H +#define MAME_BUS_A2BUS_A2MCMS_H #include "a2bus.h" @@ -64,7 +64,6 @@ class a2bus_mcms1_device: { public: // construction/destruction - a2bus_mcms1_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); a2bus_mcms1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides @@ -78,6 +77,8 @@ public: required_device m_mcms; protected: + a2bus_mcms1_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; virtual void device_reset() override; @@ -95,10 +96,11 @@ class a2bus_mcms2_device: { public: // construction/destruction - a2bus_mcms2_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); a2bus_mcms2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); protected: + a2bus_mcms2_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; virtual void device_reset() override; @@ -114,7 +116,7 @@ private: }; // device type definition -extern const device_type A2BUS_MCMS1; -extern const device_type A2BUS_MCMS2; +DECLARE_DEVICE_TYPE(A2BUS_MCMS1, a2bus_mcms1_device) +DECLARE_DEVICE_TYPE(A2BUS_MCMS2, a2bus_mcms2_device) -#endif /* __A2BUS_MCMS__ */ +#endif // MAME_BUS_A2BUS_A2MCMS_H diff --git a/src/devices/bus/a2bus/a2memexp.cpp b/src/devices/bus/a2bus/a2memexp.cpp index ebd2bb4dc9a..df9d39dbdc8 100644 --- a/src/devices/bus/a2bus/a2memexp.cpp +++ b/src/devices/bus/a2bus/a2memexp.cpp @@ -20,8 +20,8 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type A2BUS_MEMEXP = device_creator; -const device_type A2BUS_RAMFACTOR = device_creator; +DEFINE_DEVICE_TYPE(A2BUS_MEMEXP, a2bus_memexpapple_device, "a2memexp", "Apple II Memory Expansion Card") +DEFINE_DEVICE_TYPE(A2BUS_RAMFACTOR, a2bus_ramfactor_device, "a2ramfac", "Applied Engineering RamFactor") #define MEMEXP_ROM_REGION "memexp_rom" @@ -73,14 +73,14 @@ const tiny_rom_entry *a2bus_ramfactor_device::device_rom_region() const // LIVE DEVICE //************************************************************************** -a2bus_memexp_device::a2bus_memexp_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), +a2bus_memexp_device::a2bus_memexp_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), device_a2bus_card_interface(mconfig, *this), m_isramfactor(false), m_bankhior(0), m_addrmask(0), m_rom(nullptr), m_wptr(0), m_liveptr(0) { } a2bus_memexpapple_device::a2bus_memexpapple_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - a2bus_memexp_device(mconfig, A2BUS_MEMEXP, "Apple II Memory Expansion Card", tag, owner, clock, "a2memexp", __FILE__) + a2bus_memexp_device(mconfig, A2BUS_MEMEXP, tag, owner, clock) { m_isramfactor = false; m_bankhior = 0xf0; @@ -88,7 +88,7 @@ a2bus_memexpapple_device::a2bus_memexpapple_device(const machine_config &mconfig } a2bus_ramfactor_device::a2bus_ramfactor_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - a2bus_memexp_device(mconfig, A2BUS_RAMFACTOR, "Applied Engineering RamFactor", tag, owner, clock, "a2ramfac", __FILE__) + a2bus_memexp_device(mconfig, A2BUS_RAMFACTOR, tag, owner, clock) { m_isramfactor = true; m_bankhior = 0x00; diff --git a/src/devices/bus/a2bus/a2memexp.h b/src/devices/bus/a2bus/a2memexp.h index 554ff0c0c13..d3b4e76ef16 100644 --- a/src/devices/bus/a2bus/a2memexp.h +++ b/src/devices/bus/a2bus/a2memexp.h @@ -8,8 +8,10 @@ *********************************************************************/ -#ifndef __A2BUS_MEMEXP__ -#define __A2BUS_MEMEXP__ +#ifndef MAME_BUS_A2BUS_A2MEMEXP_H +#define MAME_BUS_A2BUS_A2MEMEXP_H + +#pragma once #include "a2bus.h" @@ -22,9 +24,6 @@ class a2bus_memexp_device: public device_a2bus_card_interface { public: - // construction/destruction - a2bus_memexp_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - // optional information overrides virtual machine_config_constructor device_mconfig_additions() const override; virtual const tiny_rom_entry *device_rom_region() const override; @@ -34,6 +33,9 @@ public: int m_addrmask; protected: + // construction/destruction + a2bus_memexp_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; virtual void device_reset() override; @@ -65,7 +67,7 @@ public: }; // device type definition -extern const device_type A2BUS_MEMEXP; -extern const device_type A2BUS_RAMFACTOR; +DECLARE_DEVICE_TYPE(A2BUS_MEMEXP, a2bus_memexpapple_device) +DECLARE_DEVICE_TYPE(A2BUS_RAMFACTOR, a2bus_ramfactor_device) -#endif /* __A2BUS_MEMEXP__ */ +#endif // MAME_BUS_A2BUS_A2MEMEXP_H diff --git a/src/devices/bus/a2bus/a2midi.cpp b/src/devices/bus/a2bus/a2midi.cpp index f8a9df64e8d..eff2cd8bcbf 100644 --- a/src/devices/bus/a2bus/a2midi.cpp +++ b/src/devices/bus/a2bus/a2midi.cpp @@ -22,7 +22,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type A2BUS_MIDI = device_creator; +DEFINE_DEVICE_TYPE(A2BUS_MIDI, a2bus_midi_device, "a2midi", "6850 MIDI card") #define MIDI_PTM_TAG "midi_ptm" #define MIDI_ACIA_TAG "midi_acia" @@ -60,16 +60,12 @@ machine_config_constructor a2bus_midi_device::device_mconfig_additions() const //************************************************************************** a2bus_midi_device::a2bus_midi_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, A2BUS_MIDI, "6850 MIDI card", tag, owner, clock, "a2midi", __FILE__), - device_a2bus_card_interface(mconfig, *this), - m_ptm(*this, MIDI_PTM_TAG), - m_acia(*this, MIDI_ACIA_TAG), m_acia_irq(false), - m_ptm_irq(false) + a2bus_midi_device(mconfig, A2BUS_MIDI, tag, owner, clock) { } -a2bus_midi_device::a2bus_midi_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), +a2bus_midi_device::a2bus_midi_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), device_a2bus_card_interface(mconfig, *this), m_ptm(*this, MIDI_PTM_TAG), m_acia(*this, MIDI_ACIA_TAG), m_acia_irq(false), diff --git a/src/devices/bus/a2bus/a2midi.h b/src/devices/bus/a2bus/a2midi.h index 3442805ed49..7852dbea2f4 100644 --- a/src/devices/bus/a2bus/a2midi.h +++ b/src/devices/bus/a2bus/a2midi.h @@ -8,8 +8,10 @@ *********************************************************************/ -#ifndef __A2BUS_MIDI__ -#define __A2BUS_MIDI__ +#ifndef MAME_BUS_A2BUS_A2MIDI_H +#define MAME_BUS_A2BUS_A2MIDI_H + +#pragma once #include "a2bus.h" #include "machine/6840ptm.h" @@ -26,7 +28,6 @@ class a2bus_midi_device: public: // construction/destruction a2bus_midi_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - a2bus_midi_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); // optional information overrides virtual machine_config_constructor device_mconfig_additions() const override; @@ -36,6 +37,8 @@ public: DECLARE_WRITE_LINE_MEMBER( write_acia_clock ); protected: + a2bus_midi_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; virtual void device_reset() override; @@ -50,6 +53,6 @@ private: }; // device type definition -extern const device_type A2BUS_MIDI; +DECLARE_DEVICE_TYPE(A2BUS_MIDI, a2bus_midi_device) -#endif /* __A2BUS_MIDI__ */ +#endif // MAME_BUS_A2BUS_A2MIDI_H diff --git a/src/devices/bus/a2bus/a2mockingboard.cpp b/src/devices/bus/a2bus/a2mockingboard.cpp index 98c33c6fd09..9492b2f2060 100644 --- a/src/devices/bus/a2bus/a2mockingboard.cpp +++ b/src/devices/bus/a2bus/a2mockingboard.cpp @@ -30,9 +30,9 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type A2BUS_MOCKINGBOARD = device_creator; -const device_type A2BUS_PHASOR = device_creator; -const device_type A2BUS_ECHOPLUS = device_creator; +DEFINE_DEVICE_TYPE(A2BUS_MOCKINGBOARD, a2bus_mockingboard_device, "a2mockbd", "Sweet Micro Systems Mockingboard") +DEFINE_DEVICE_TYPE(A2BUS_PHASOR, a2bus_phasor_device, "a2phasor", "Applied Engineering Phasor") +DEFINE_DEVICE_TYPE(A2BUS_ECHOPLUS, a2bus_echoplus_device, "a2echop", "Street Electronics Echo Plus") MACHINE_CONFIG_FRAGMENT( mockingboard ) MCFG_DEVICE_ADD(VIA1_TAG, VIA6522, 1022727) @@ -121,8 +121,8 @@ machine_config_constructor a2bus_echoplus_device::device_mconfig_additions() con // LIVE DEVICE //************************************************************************** -a2bus_ayboard_device::a2bus_ayboard_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), +a2bus_ayboard_device::a2bus_ayboard_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), device_a2bus_card_interface(mconfig, *this), m_via1(*this, VIA1_TAG), m_via2(*this, VIA2_TAG), @@ -134,21 +134,21 @@ a2bus_ayboard_device::a2bus_ayboard_device(const machine_config &mconfig, device } a2bus_mockingboard_device::a2bus_mockingboard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - a2bus_ayboard_device(mconfig, A2BUS_MOCKINGBOARD, "Sweet Micro Systems Mockingboard", tag, owner, clock, "a2mockbd", __FILE__) + a2bus_ayboard_device(mconfig, A2BUS_MOCKINGBOARD, tag, owner, clock) { m_isPhasor = false; m_PhasorNative = false; } a2bus_phasor_device::a2bus_phasor_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - a2bus_ayboard_device(mconfig, A2BUS_PHASOR, "Applied Engineering Phasor", tag, owner, clock, "a2phasor", __FILE__) + a2bus_ayboard_device(mconfig, A2BUS_PHASOR, tag, owner, clock) { m_isPhasor = true; m_PhasorNative = false; } a2bus_echoplus_device::a2bus_echoplus_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - a2bus_ayboard_device(mconfig, A2BUS_ECHOPLUS, "Street Electronics Echo Plus", tag, owner, clock, "a2echop", __FILE__), + a2bus_ayboard_device(mconfig, A2BUS_ECHOPLUS, tag, owner, clock), m_tms(*this, E2P_TMS_TAG) { m_isPhasor = false; diff --git a/src/devices/bus/a2bus/a2mockingboard.h b/src/devices/bus/a2bus/a2mockingboard.h index 279f06c0110..870e1dd2f15 100644 --- a/src/devices/bus/a2bus/a2mockingboard.h +++ b/src/devices/bus/a2bus/a2mockingboard.h @@ -8,8 +8,8 @@ *********************************************************************/ -#ifndef __A2BUS_MOCKINGBOARD__ -#define __A2BUS_MOCKINGBOARD__ +#ifndef MAME_BUS_A2BUS_A2MOCKINGBOARD_H +#define MAME_BUS_A2BUS_A2MOCKINGBOARD_H #include "a2bus.h" #include "machine/6522via.h" @@ -25,9 +25,6 @@ class a2bus_ayboard_device: public device_a2bus_card_interface { public: - // construction/destruction - a2bus_ayboard_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - // optional information overrides virtual machine_config_constructor device_mconfig_additions() const override; @@ -39,6 +36,9 @@ public: DECLARE_WRITE8_MEMBER(via2_out_b); protected: + // construction/destruction + a2bus_ayboard_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; virtual void device_reset() override; @@ -80,17 +80,18 @@ class a2bus_echoplus_device : public a2bus_ayboard_device public: a2bus_echoplus_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + virtual machine_config_constructor device_mconfig_additions() const override; + +protected: virtual uint8_t read_c0nx(address_space &space, uint8_t offset) override; virtual void write_c0nx(address_space &space, uint8_t offset, uint8_t data) override; required_device m_tms; - - virtual machine_config_constructor device_mconfig_additions() const override; }; // device type definition -extern const device_type A2BUS_MOCKINGBOARD; -extern const device_type A2BUS_PHASOR; -extern const device_type A2BUS_ECHOPLUS; +DECLARE_DEVICE_TYPE(A2BUS_MOCKINGBOARD, a2bus_mockingboard_device) +DECLARE_DEVICE_TYPE(A2BUS_PHASOR, a2bus_phasor_device) +DECLARE_DEVICE_TYPE(A2BUS_ECHOPLUS, a2bus_echoplus_device) -#endif /* __A2BUS_MOCKINGBOARD__ */ +#endif // MAME_BUS_A2BUS_A2MOCKINGBOARD_H diff --git a/src/devices/bus/a2bus/a2pic.cpp b/src/devices/bus/a2bus/a2pic.cpp index d05842a7269..abe7554574f 100644 --- a/src/devices/bus/a2bus/a2pic.cpp +++ b/src/devices/bus/a2bus/a2pic.cpp @@ -19,7 +19,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type A2BUS_PIC = device_creator; +DEFINE_DEVICE_TYPE(A2BUS_PIC, a2bus_pic_device, "a2pic", "Apple Parallel Interface Card") #define PIC_ROM_REGION "pic_rom" #define PIC_CENTRONICS_TAG "pic_ctx" @@ -100,18 +100,12 @@ const tiny_rom_entry *a2bus_pic_device::device_rom_region() const //************************************************************************** a2bus_pic_device::a2bus_pic_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, A2BUS_PIC, "Apple Parallel Interface Card", tag, owner, clock, "a2pic", __FILE__), - device_a2bus_card_interface(mconfig, *this), - m_dsw1(*this, "DSW1"), - m_ctx(*this, PIC_CENTRONICS_TAG), - m_ctx_data_in(*this, "ctx_data_in"), - m_ctx_data_out(*this, "ctx_data_out"), m_rom(nullptr), - m_started(false), m_ack(0), m_irqenable(false), m_autostrobe(false), m_timer(nullptr) + a2bus_pic_device(mconfig, A2BUS_PIC, tag, owner, clock) { } -a2bus_pic_device::a2bus_pic_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), +a2bus_pic_device::a2bus_pic_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), device_a2bus_card_interface(mconfig, *this), m_dsw1(*this, "DSW1"), m_ctx(*this, PIC_CENTRONICS_TAG), diff --git a/src/devices/bus/a2bus/a2pic.h b/src/devices/bus/a2bus/a2pic.h index 83ff5bd2fa4..fbc0c24a97e 100644 --- a/src/devices/bus/a2bus/a2pic.h +++ b/src/devices/bus/a2bus/a2pic.h @@ -8,8 +8,10 @@ *********************************************************************/ -#ifndef __A2BUS_PIC__ -#define __A2BUS_PIC__ +#ifndef MAME_BUS_A2BUS_A2PIC_H +#define MAME_BUS_A2BUS_A2PIC_H + +#pragma once #include "a2bus.h" #include "bus/centronics/ctronics.h" @@ -25,18 +27,17 @@ class a2bus_pic_device: public: // construction/destruction a2bus_pic_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - a2bus_pic_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); // optional information overrides virtual machine_config_constructor device_mconfig_additions() const override; virtual const tiny_rom_entry *device_rom_region() const override; virtual ioport_constructor device_input_ports() const override; - required_ioport m_dsw1; - DECLARE_WRITE_LINE_MEMBER( ack_w ); protected: + a2bus_pic_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; virtual void device_reset() override; virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; @@ -45,13 +46,15 @@ protected: virtual void write_c0nx(address_space &space, uint8_t offset, uint8_t data) override; virtual uint8_t read_cnxx(address_space &space, uint8_t offset) override; + void start_strobe(); + void clear_strobe(); + + required_ioport m_dsw1; + required_device m_ctx; required_device m_ctx_data_in; required_device m_ctx_data_out; - void start_strobe(); - void clear_strobe(); - private: uint8_t *m_rom; bool m_started; @@ -62,6 +65,6 @@ private: }; // device type definition -extern const device_type A2BUS_PIC; +DECLARE_DEVICE_TYPE(A2BUS_PIC, a2bus_pic_device) -#endif /* __A2BUS_PIC__ */ +#endif // MAME_BUS_A2BUS_A2PIC_H diff --git a/src/devices/bus/a2bus/a2sam.cpp b/src/devices/bus/a2bus/a2sam.cpp index 322be844267..3dc70bb326a 100644 --- a/src/devices/bus/a2bus/a2sam.cpp +++ b/src/devices/bus/a2bus/a2sam.cpp @@ -21,7 +21,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type A2BUS_SAM = device_creator; +DEFINE_DEVICE_TYPE(A2BUS_SAM, a2bus_sam_device, "a2sam", "Don't Ask Software SAM") MACHINE_CONFIG_FRAGMENT( a2sam ) MCFG_SPEAKER_STANDARD_MONO("speaker") @@ -49,7 +49,7 @@ machine_config_constructor a2bus_sam_device::device_mconfig_additions() const //************************************************************************** a2bus_sam_device::a2bus_sam_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, A2BUS_SAM, "Don't Ask Software SAM", tag, owner, clock, "a2sam", __FILE__), + device_t(mconfig, A2BUS_SAM, tag, owner, clock), device_a2bus_card_interface(mconfig, *this), m_dac(*this, "dac") { diff --git a/src/devices/bus/a2bus/a2sam.h b/src/devices/bus/a2bus/a2sam.h index 29777e42b60..49e6e40329d 100644 --- a/src/devices/bus/a2bus/a2sam.h +++ b/src/devices/bus/a2bus/a2sam.h @@ -8,8 +8,10 @@ *********************************************************************/ -#ifndef __A2BUS_SAM__ -#define __A2BUS_SAM__ +#ifndef MAME_BUS_A2BUS_A2SAM_H +#define MAME_BUS_A2BUS_A2SAM_H + +#pragma once #include "a2bus.h" #include "sound/dac.h" @@ -29,8 +31,6 @@ public: // optional information overrides virtual machine_config_constructor device_mconfig_additions() const override; - required_device m_dac; - protected: virtual void device_start() override; virtual void device_reset() override; @@ -38,9 +38,11 @@ protected: // overrides of standard a2bus slot functions virtual void write_c0nx(address_space &space, uint8_t offset, uint8_t data) override; virtual bool take_c800() override; + + required_device m_dac; }; // device type definition extern const device_type A2BUS_SAM; -#endif /* __A2BUS_SAM__ */ +#endif // MAME_BUS_A2BUS_A2SAM_H diff --git a/src/devices/bus/a2bus/a2scsi.cpp b/src/devices/bus/a2bus/a2scsi.cpp index 00e0c27bb11..447a5867bb4 100644 --- a/src/devices/bus/a2bus/a2scsi.cpp +++ b/src/devices/bus/a2bus/a2scsi.cpp @@ -44,7 +44,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type A2BUS_SCSI = device_creator; +DEFINE_DEVICE_TYPE(A2BUS_SCSI, a2bus_scsi_device, "a2scsi", "Apple II SCSI Card") #define SCSI_ROM_REGION "scsi_rom" #define SCSI_BUS_TAG "scsibus" @@ -106,8 +106,8 @@ const tiny_rom_entry *a2bus_scsi_device::device_rom_region() const // LIVE DEVICE //************************************************************************** -a2bus_scsi_device::a2bus_scsi_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), +a2bus_scsi_device::a2bus_scsi_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), device_a2bus_card_interface(mconfig, *this), m_ncr5380(*this, SCSI_5380_TAG), m_scsibus(*this, SCSI_BUS_TAG), m_rom(nullptr), m_rambank(0), m_rombank(0), m_drq(0), m_bank(0), m_816block(false) @@ -115,10 +115,7 @@ a2bus_scsi_device::a2bus_scsi_device(const machine_config &mconfig, device_type } a2bus_scsi_device::a2bus_scsi_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, A2BUS_SCSI, "Apple II SCSI Card", tag, owner, clock, "a2scsi", __FILE__), - device_a2bus_card_interface(mconfig, *this), - m_ncr5380(*this, SCSI_5380_TAG), - m_scsibus(*this, SCSI_BUS_TAG), m_rom(nullptr), m_rambank(0), m_rombank(0), m_drq(0), m_bank(0), m_816block(false) + a2bus_scsi_device(mconfig, A2BUS_SCSI, tag, owner, clock) { } diff --git a/src/devices/bus/a2bus/a2scsi.h b/src/devices/bus/a2bus/a2scsi.h index 4d5fac99a20..35e60eaf89e 100644 --- a/src/devices/bus/a2bus/a2scsi.h +++ b/src/devices/bus/a2bus/a2scsi.h @@ -8,8 +8,10 @@ *********************************************************************/ -#ifndef __A2BUS_SCSI__ -#define __A2BUS_SCSI__ +#ifndef MAME_BUS_A2BUS_A2SCSI_H +#define MAME_BUS_A2BUS_A2SCSI_H + +#pragma once #include "a2bus.h" #include "machine/ncr5380n.h" @@ -24,19 +26,17 @@ class a2bus_scsi_device: { public: // construction/destruction - a2bus_scsi_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); a2bus_scsi_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual machine_config_constructor device_mconfig_additions() const override; virtual const tiny_rom_entry *device_rom_region() const override; - required_device m_ncr5380; - required_device m_scsibus; - DECLARE_WRITE_LINE_MEMBER( drq_w ); protected: + a2bus_scsi_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; virtual void device_reset() override; @@ -48,6 +48,9 @@ protected: virtual uint8_t read_c800(address_space &space, uint16_t offset) override; virtual void write_c800(address_space &space, uint16_t offset, uint8_t data) override; + required_device m_ncr5380; + required_device m_scsibus; + private: uint8_t *m_rom; uint8_t m_ram[8192]; // 8 banks of 1024 bytes @@ -58,6 +61,6 @@ private: }; // device type definition -extern const device_type A2BUS_SCSI; +DECLARE_DEVICE_TYPE(A2BUS_SCSI, a2bus_scsi_device) -#endif /* __A2BUS_SCSI__ */ +#endif // MAME_BUS_A2BUS_A2SCSI_H diff --git a/src/devices/bus/a2bus/a2softcard.cpp b/src/devices/bus/a2bus/a2softcard.cpp index 3051755dc0f..1d8cea0121e 100644 --- a/src/devices/bus/a2bus/a2softcard.cpp +++ b/src/devices/bus/a2bus/a2softcard.cpp @@ -20,7 +20,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type A2BUS_SOFTCARD = device_creator; +DEFINE_DEVICE_TYPE(A2BUS_SOFTCARD, a2bus_softcard_device, "a2softcard", "Microsoft SoftCard") #define Z80_TAG "z80" @@ -51,17 +51,15 @@ machine_config_constructor a2bus_softcard_device::device_mconfig_additions() con // LIVE DEVICE //************************************************************************** -a2bus_softcard_device::a2bus_softcard_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), +a2bus_softcard_device::a2bus_softcard_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), device_a2bus_card_interface(mconfig, *this), m_z80(*this, Z80_TAG), m_bEnabled(false), m_FirstZ80Boot(false) { } a2bus_softcard_device::a2bus_softcard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, A2BUS_SOFTCARD, "Microsoft SoftCard", tag, owner, clock, "a2softcard", __FILE__), - device_a2bus_card_interface(mconfig, *this), - m_z80(*this, Z80_TAG), m_bEnabled(false), m_FirstZ80Boot(false) + a2bus_softcard_device(mconfig, A2BUS_SOFTCARD, tag, owner, clock) { } diff --git a/src/devices/bus/a2bus/a2softcard.h b/src/devices/bus/a2bus/a2softcard.h index f8545e1ae6a..025686a6645 100644 --- a/src/devices/bus/a2bus/a2softcard.h +++ b/src/devices/bus/a2bus/a2softcard.h @@ -8,8 +8,8 @@ *********************************************************************/ -#ifndef __A2BUS_SOFTCARD__ -#define __A2BUS_SOFTCARD__ +#ifndef MAME_BUS_A2BUS_A2SOFTCARD_H +#define MAME_BUS_A2BUS_A2SOFTCARD_H #include "a2bus.h" @@ -23,7 +23,6 @@ class a2bus_softcard_device: { public: // construction/destruction - a2bus_softcard_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); a2bus_softcard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides @@ -33,6 +32,8 @@ public: DECLARE_WRITE8_MEMBER( dma_w ); protected: + a2bus_softcard_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; virtual void device_reset() override; @@ -48,6 +49,6 @@ private: }; // device type definition -extern const device_type A2BUS_SOFTCARD; +DECLARE_DEVICE_TYPE(A2BUS_SOFTCARD, a2bus_softcard_device) -#endif /* __A2BUS_SOFTCARD__ */ +#endif // MAME_BUS_A2BUS_A2SOFTCARD_H diff --git a/src/devices/bus/a2bus/a2ssc.cpp b/src/devices/bus/a2bus/a2ssc.cpp index aa8f28f48be..b84a7f26881 100644 --- a/src/devices/bus/a2bus/a2ssc.cpp +++ b/src/devices/bus/a2bus/a2ssc.cpp @@ -21,7 +21,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type A2BUS_SSC = device_creator; +DEFINE_DEVICE_TYPE(A2BUS_SSC, a2bus_ssc_device, "a2ssc", "Apple Super Serial Card") #define SSC_ROM_REGION "ssc_rom" #define SSC_ACIA_TAG "ssc_acia" @@ -129,17 +129,12 @@ const tiny_rom_entry *a2bus_ssc_device::device_rom_region() const //************************************************************************** a2bus_ssc_device::a2bus_ssc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, A2BUS_SSC, "Apple Super Serial Card", tag, owner, clock, "a2ssc", __FILE__), - device_a2bus_card_interface(mconfig, *this), - m_dsw1(*this, "DSW1"), - m_dsw2(*this, "DSW2"), - m_acia(*this, SSC_ACIA_TAG), m_rom(nullptr), - m_started(false) + a2bus_ssc_device(mconfig, A2BUS_SSC, tag, owner, clock) { } -a2bus_ssc_device::a2bus_ssc_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), +a2bus_ssc_device::a2bus_ssc_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), device_a2bus_card_interface(mconfig, *this), m_dsw1(*this, "DSW1"), m_dsw2(*this, "DSW2"), diff --git a/src/devices/bus/a2bus/a2ssc.h b/src/devices/bus/a2bus/a2ssc.h index b130012c52f..fdca90f9346 100644 --- a/src/devices/bus/a2bus/a2ssc.h +++ b/src/devices/bus/a2bus/a2ssc.h @@ -8,8 +8,8 @@ *********************************************************************/ -#ifndef __A2BUS_SSC__ -#define __A2BUS_SSC__ +#ifndef MAME_BUS_A2BUS_A2SSC_H +#define MAME_BUS_A2BUS_A2SSC_H #include "a2bus.h" #include "machine/mos6551.h" @@ -25,18 +25,17 @@ class a2bus_ssc_device: public: // construction/destruction a2bus_ssc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - a2bus_ssc_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); // optional information overrides virtual machine_config_constructor device_mconfig_additions() const override; virtual const tiny_rom_entry *device_rom_region() const override; virtual ioport_constructor device_input_ports() const override; - required_ioport m_dsw1, m_dsw2; - DECLARE_WRITE_LINE_MEMBER( acia_irq_w ); protected: + a2bus_ssc_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; virtual void device_reset() override; @@ -45,6 +44,8 @@ protected: virtual uint8_t read_cnxx(address_space &space, uint8_t offset) override; virtual uint8_t read_c800(address_space &space, uint16_t offset) override; + required_ioport m_dsw1, m_dsw2; + required_device m_acia; private: @@ -53,6 +54,6 @@ private: }; // device type definition -extern const device_type A2BUS_SSC; +DECLARE_DEVICE_TYPE(A2BUS_SSC, a2bus_ssc_device) -#endif /* __A2BUS_SSC__ */ +#endif // MAME_BUS_A2BUS_A2SSC_H diff --git a/src/devices/bus/a2bus/a2swyft.cpp b/src/devices/bus/a2bus/a2swyft.cpp index 8ccdf8bb928..1403120c74c 100644 --- a/src/devices/bus/a2bus/a2swyft.cpp +++ b/src/devices/bus/a2bus/a2swyft.cpp @@ -20,7 +20,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type A2BUS_SWYFT = device_creator; +DEFINE_DEVICE_TYPE(A2BUS_SWYFT, a2bus_swyft_device, "a2swyft", "IAI SwyftCard") #define SWYFT_ROM_REGION "swyft_rom" @@ -45,13 +45,12 @@ const tiny_rom_entry *a2bus_swyft_device::device_rom_region() const //************************************************************************** a2bus_swyft_device::a2bus_swyft_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, A2BUS_SWYFT, "IAI SwyftCard", tag, owner, clock, "a2swyft", __FILE__), - device_a2bus_card_interface(mconfig, *this), m_rom(nullptr), m_rombank(0), m_inh_state(0) + a2bus_swyft_device(mconfig, A2BUS_SWYFT, tag, owner, clock) { } -a2bus_swyft_device::a2bus_swyft_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), +a2bus_swyft_device::a2bus_swyft_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), device_a2bus_card_interface(mconfig, *this), m_rom(nullptr), m_rombank(0), m_inh_state(0) { } diff --git a/src/devices/bus/a2bus/a2swyft.h b/src/devices/bus/a2bus/a2swyft.h index df646038aa9..0215c4623ab 100644 --- a/src/devices/bus/a2bus/a2swyft.h +++ b/src/devices/bus/a2bus/a2swyft.h @@ -8,8 +8,10 @@ *********************************************************************/ -#ifndef __A2BUS_SWYFT__ -#define __A2BUS_SWYFT__ +#ifndef MAME_BUS_A2BUS_A2SWYFT_H +#define MAME_BUS_A2BUS_A2SWYFT_H + +#pragma once #include "a2bus.h" @@ -24,11 +26,12 @@ class a2bus_swyft_device: public: // construction/destruction a2bus_swyft_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - a2bus_swyft_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); virtual const tiny_rom_entry *device_rom_region() const override; protected: + a2bus_swyft_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; virtual void device_reset() override; @@ -46,6 +49,6 @@ private: }; // device type definition -extern const device_type A2BUS_SWYFT; +DECLARE_DEVICE_TYPE(A2BUS_SWYFT, a2bus_swyft_device) -#endif /* __A2BUS_SWYFT__ */ +#endif // MAME_BUS_A2BUS_A2SWYFT_H diff --git a/src/devices/bus/a2bus/a2themill.cpp b/src/devices/bus/a2bus/a2themill.cpp index dd935cf2554..27a3302d625 100644 --- a/src/devices/bus/a2bus/a2themill.cpp +++ b/src/devices/bus/a2bus/a2themill.cpp @@ -36,7 +36,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type A2BUS_THEMILL = device_creator; +DEFINE_DEVICE_TYPE(A2BUS_THEMILL, a2bus_themill_device, "a2themill", "Stellation Two The Mill") #define M6809_TAG "m6809" @@ -67,17 +67,15 @@ machine_config_constructor a2bus_themill_device::device_mconfig_additions() cons // LIVE DEVICE //************************************************************************** -a2bus_themill_device::a2bus_themill_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), +a2bus_themill_device::a2bus_themill_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), device_a2bus_card_interface(mconfig, *this), m_6809(*this, M6809_TAG), m_bEnabled(false), m_flipAddrSpace(false), m_6809Mode(false), m_status(0) { } a2bus_themill_device::a2bus_themill_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, A2BUS_THEMILL, "Stellation Two The Mill", tag, owner, clock, "a2themill", __FILE__), - device_a2bus_card_interface(mconfig, *this), - m_6809(*this, M6809_TAG), m_bEnabled(false), m_flipAddrSpace(false), m_6809Mode(false), m_status(0) + a2bus_themill_device(mconfig, A2BUS_THEMILL, tag, owner, clock) { } diff --git a/src/devices/bus/a2bus/a2themill.h b/src/devices/bus/a2bus/a2themill.h index 67f9bc43c7a..aa0c2f180e2 100644 --- a/src/devices/bus/a2bus/a2themill.h +++ b/src/devices/bus/a2bus/a2themill.h @@ -8,8 +8,10 @@ *********************************************************************/ -#ifndef __A2BUS_THEMILL__ -#define __A2BUS_THEMILL__ +#ifndef MAME_BUS_A2BUS_A2THEMILL_H +#define MAME_BUS_A2BUS_A2THEMILL_H + +#pragma once #include "a2bus.h" @@ -23,7 +25,6 @@ class a2bus_themill_device: { public: // construction/destruction - a2bus_themill_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); a2bus_themill_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides @@ -33,6 +34,8 @@ public: DECLARE_WRITE8_MEMBER( dma_w ); protected: + a2bus_themill_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; virtual void device_reset() override; @@ -51,6 +54,6 @@ private: }; // device type definition -extern const device_type A2BUS_THEMILL; +DECLARE_DEVICE_TYPE(A2BUS_THEMILL, a2bus_themill_device) -#endif /* __A2BUS_THEMILL__ */ +#endif // MAME_BUS_A2BUS_A2THEMILL_H diff --git a/src/devices/bus/a2bus/a2thunderclock.cpp b/src/devices/bus/a2bus/a2thunderclock.cpp index 18a6f22abf1..70642bbdfe8 100644 --- a/src/devices/bus/a2bus/a2thunderclock.cpp +++ b/src/devices/bus/a2bus/a2thunderclock.cpp @@ -36,7 +36,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type A2BUS_THUNDERCLOCK = device_creator; +DEFINE_DEVICE_TYPE(A2BUS_THUNDERCLOCK, a2bus_thunderclock_device, "a2thunpl", "ThunderWare ThunderClock Plus") #define THUNDERCLOCK_ROM_REGION "thunclk_rom" #define THUNDERCLOCK_UPD1990_TAG "thunclk_upd" @@ -77,17 +77,15 @@ const tiny_rom_entry *a2bus_thunderclock_device::device_rom_region() const // LIVE DEVICE //************************************************************************** -a2bus_thunderclock_device::a2bus_thunderclock_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), +a2bus_thunderclock_device::a2bus_thunderclock_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), device_a2bus_card_interface(mconfig, *this), m_upd1990ac(*this, THUNDERCLOCK_UPD1990_TAG), m_rom(nullptr), m_dataout(0) { } a2bus_thunderclock_device::a2bus_thunderclock_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, A2BUS_THUNDERCLOCK, "ThunderWare ThunderClock Plus", tag, owner, clock, "a2thunpl", __FILE__), - device_a2bus_card_interface(mconfig, *this), - m_upd1990ac(*this, THUNDERCLOCK_UPD1990_TAG), m_rom(nullptr), m_dataout(0) + a2bus_thunderclock_device(mconfig, A2BUS_THUNDERCLOCK, tag, owner, clock) { } diff --git a/src/devices/bus/a2bus/a2thunderclock.h b/src/devices/bus/a2bus/a2thunderclock.h index 8188ede7380..5c221151769 100644 --- a/src/devices/bus/a2bus/a2thunderclock.h +++ b/src/devices/bus/a2bus/a2thunderclock.h @@ -8,8 +8,10 @@ *********************************************************************/ -#ifndef __A2BUS_THUNDERCLOCK__ -#define __A2BUS_THUNDERCLOCK__ +#ifndef MAME_BUS_A2BUS_A2THUNDERCLOCK_H +#define MAME_BUS_A2BUS_A2THUNDERCLOCK_H + +#pragma once #include "a2bus.h" #include "machine/upd1990a.h" @@ -24,7 +26,6 @@ class a2bus_thunderclock_device: { public: // construction/destruction - a2bus_thunderclock_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); a2bus_thunderclock_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides @@ -34,6 +35,8 @@ public: DECLARE_WRITE_LINE_MEMBER( upd_dataout_w ); protected: + a2bus_thunderclock_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; virtual void device_reset() override; @@ -51,6 +54,6 @@ private: }; // device type definition -extern const device_type A2BUS_THUNDERCLOCK; +DECLARE_DEVICE_TYPE(A2BUS_THUNDERCLOCK, a2bus_thunderclock_device) -#endif /* __A2BUS_THUNDERCLOCK__ */ +#endif // MAME_BUS_A2BUS_A2THUNDERCLOCK_H diff --git a/src/devices/bus/a2bus/a2ultraterm.cpp b/src/devices/bus/a2bus/a2ultraterm.cpp index 3edeeaf8cdd..8d8a576834a 100644 --- a/src/devices/bus/a2bus/a2ultraterm.cpp +++ b/src/devices/bus/a2bus/a2ultraterm.cpp @@ -40,8 +40,8 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type A2BUS_ULTRATERM = device_creator; -const device_type A2BUS_ULTRATERMENH = device_creator; +DEFINE_DEVICE_TYPE(A2BUS_ULTRATERM, a2bus_ultraterm_device, "a2ulttrm", "Videx UltraTerm (original)") +DEFINE_DEVICE_TYPE(A2BUS_ULTRATERMENH, a2bus_ultratermenh_device, "a2ultrme", "Videx UltraTerm (enhanced //e)") #define ULTRATERM_ROM_REGION "uterm_rom" #define ULTRATERM_GFX_REGION "uterm_gfx" @@ -139,20 +139,20 @@ const tiny_rom_entry *a2bus_ultratermenh_device::device_rom_region() const // LIVE DEVICE //************************************************************************** -a2bus_videx160_device::a2bus_videx160_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), +a2bus_videx160_device::a2bus_videx160_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), device_a2bus_card_interface(mconfig, *this), m_rom(nullptr), m_chrrom(nullptr), m_framecnt(0), m_ctrl1(0), m_ctrl2(0), m_crtc(*this, ULTRATERM_MC6845_NAME), m_rambank(0) { } a2bus_ultraterm_device::a2bus_ultraterm_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - a2bus_videx160_device(mconfig, A2BUS_ULTRATERM, "Videx UltraTerm (original)", tag, owner, clock, "a2ulttrm", __FILE__) + a2bus_videx160_device(mconfig, A2BUS_ULTRATERM, tag, owner, clock) { } a2bus_ultratermenh_device::a2bus_ultratermenh_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - a2bus_videx160_device(mconfig, A2BUS_ULTRATERMENH, "Videx UltraTerm (enhanced //e)", tag, owner, clock, "a2ultrme", __FILE__) + a2bus_videx160_device(mconfig, A2BUS_ULTRATERMENH, tag, owner, clock) { } diff --git a/src/devices/bus/a2bus/a2ultraterm.h b/src/devices/bus/a2bus/a2ultraterm.h index 3d9c3a67a52..73b012b63c3 100644 --- a/src/devices/bus/a2bus/a2ultraterm.h +++ b/src/devices/bus/a2bus/a2ultraterm.h @@ -8,8 +8,10 @@ *********************************************************************/ -#ifndef __A2BUS_ULTRATERM__ -#define __A2BUS_ULTRATERM__ +#ifndef MAME_BUS_A2BUS_A2ULTRATERM_H +#define MAME_BUS_A2BUS_A2ULTRATERM_H + +#pragma once #include "a2bus.h" #include "video/mc6845.h" @@ -23,21 +25,16 @@ class a2bus_videx160_device: public device_a2bus_card_interface { public: - // construction/destruction - a2bus_videx160_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - // optional information overrides virtual machine_config_constructor device_mconfig_additions() const override; DECLARE_WRITE_LINE_MEMBER(vsync_changed); MC6845_UPDATE_ROW(crtc_update_row); - uint8_t *m_rom, *m_chrrom; - uint8_t m_ram[256*16]; - int m_framecnt; - uint8_t m_ctrl1, m_ctrl2; - protected: + // construction/destruction + a2bus_videx160_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; virtual void device_reset() override; @@ -49,6 +46,11 @@ protected: virtual uint8_t read_c800(address_space &space, uint16_t offset) override; virtual void write_c800(address_space &space, uint16_t offset, uint8_t data) override; + uint8_t *m_rom, *m_chrrom; + uint8_t m_ram[256*16]; + int m_framecnt; + uint8_t m_ctrl1, m_ctrl2; + required_device m_crtc; private: @@ -72,7 +74,7 @@ public: }; // device type definition -extern const device_type A2BUS_ULTRATERM; -extern const device_type A2BUS_ULTRATERMENH; +DECLARE_DEVICE_TYPE(A2BUS_ULTRATERM, a2bus_ultraterm_device) +DECLARE_DEVICE_TYPE(A2BUS_ULTRATERMENH, a2bus_ultratermenh_device) -#endif /* __A2BUS_ULTRATERM__ */ +#endif // MAME_BUS_A2BUS_A2ULTRATERM_H diff --git a/src/devices/bus/a2bus/a2videoterm.cpp b/src/devices/bus/a2bus/a2videoterm.cpp index 1cfb4552313..7bcea832ce0 100644 --- a/src/devices/bus/a2bus/a2videoterm.cpp +++ b/src/devices/bus/a2bus/a2videoterm.cpp @@ -36,12 +36,12 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type A2BUS_VIDEOTERM = device_creator; -const device_type A2BUS_IBSAP16 = device_creator; -const device_type A2BUS_IBSAP16ALT = device_creator; -const device_type A2BUS_VTC1 = device_creator; -const device_type A2BUS_VTC2 = device_creator; -const device_type A2BUS_AEVIEWMASTER80 = device_creator; +DEFINE_DEVICE_TYPE(A2BUS_VIDEOTERM, a2bus_videoterm_device, "a2vidtrm", "Videx VideoTerm") +DEFINE_DEVICE_TYPE(A2BUS_IBSAP16, a2bus_ap16_device, "a2ap16", "IBS AP-16 80 column card") +DEFINE_DEVICE_TYPE(A2BUS_IBSAP16ALT, a2bus_ap16alt_device, "a2ap16a", "IBS AP-16 80 column card (alt. version)") +DEFINE_DEVICE_TYPE(A2BUS_VTC1, a2bus_vtc1_device, "a2vtc1", "Unknown VideoTerm clone #1") +DEFINE_DEVICE_TYPE(A2BUS_VTC2, a2bus_vtc2_device, "a2vtc2", "Unknown VideoTerm clone #2") +DEFINE_DEVICE_TYPE(A2BUS_AEVIEWMASTER80, a2bus_aevm80_device, "a2aevm80", "Applied Engineering Viewmaster 80") #define VIDEOTERM_ROM_REGION "vterm_rom" #define VIDEOTERM_GFX_REGION "vterm_gfx" @@ -173,41 +173,41 @@ const tiny_rom_entry *a2bus_aevm80_device::device_rom_region() const // LIVE DEVICE //************************************************************************** -a2bus_videx80_device::a2bus_videx80_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), +a2bus_videx80_device::a2bus_videx80_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), device_a2bus_card_interface(mconfig, *this), m_rom(nullptr), m_chrrom(nullptr), m_framecnt(0), - m_crtc(*this, VIDEOTERM_MC6845_NAME), m_rambank(0), - m_palette(*this, ":palette") + m_crtc(*this, VIDEOTERM_MC6845_NAME), m_palette(*this, ":palette"), + m_rambank(0) { } a2bus_videoterm_device::a2bus_videoterm_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - a2bus_videx80_device(mconfig, A2BUS_VIDEOTERM, "Videx VideoTerm", tag, owner, clock, "a2vidtrm", __FILE__) + a2bus_videx80_device(mconfig, A2BUS_VIDEOTERM, tag, owner, clock) { } a2bus_ap16_device::a2bus_ap16_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - a2bus_videx80_device(mconfig, A2BUS_IBSAP16, "IBS AP-16 80 column card", tag, owner, clock, "a2ap16", __FILE__) + a2bus_videx80_device(mconfig, A2BUS_IBSAP16, tag, owner, clock) { } a2bus_ap16alt_device::a2bus_ap16alt_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - a2bus_videx80_device(mconfig, A2BUS_IBSAP16ALT, "IBS AP-16 80 column card (alt. version)", tag, owner, clock, "a2ap16a", __FILE__) + a2bus_videx80_device(mconfig, A2BUS_IBSAP16ALT, tag, owner, clock) { } a2bus_vtc1_device::a2bus_vtc1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - a2bus_videx80_device(mconfig, A2BUS_VTC1, "Unknown VideoTerm clone #1", tag, owner, clock, "a2vtc1", __FILE__) + a2bus_videx80_device(mconfig, A2BUS_VTC1, tag, owner, clock) { } a2bus_vtc2_device::a2bus_vtc2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - a2bus_videx80_device(mconfig, A2BUS_VTC2, "Unknown VideoTerm clone #2", tag, owner, clock, "a2vtc2", __FILE__) + a2bus_videx80_device(mconfig, A2BUS_VTC2, tag, owner, clock) { } a2bus_aevm80_device::a2bus_aevm80_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - a2bus_videx80_device(mconfig, A2BUS_AEVIEWMASTER80, "Applied Engineering Viewmaster 80", tag, owner, clock, "a2aevm80", __FILE__) + a2bus_videx80_device(mconfig, A2BUS_AEVIEWMASTER80, tag, owner, clock) { } diff --git a/src/devices/bus/a2bus/a2videoterm.h b/src/devices/bus/a2bus/a2videoterm.h index 5f78b7fe91f..f9d407f785a 100644 --- a/src/devices/bus/a2bus/a2videoterm.h +++ b/src/devices/bus/a2bus/a2videoterm.h @@ -8,8 +8,10 @@ *********************************************************************/ -#ifndef __A2BUS_VIDEOTERM__ -#define __A2BUS_VIDEOTERM__ +#ifndef MAME_BUS_A2BUS_A2VIDEOTERM_H +#define MAME_BUS_A2BUS_A2VIDEOTERM_H + +#pragma once #include "a2bus.h" #include "video/mc6845.h" @@ -23,20 +25,16 @@ class a2bus_videx80_device: public device_a2bus_card_interface { public: - // construction/destruction - a2bus_videx80_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - // optional information overrides virtual machine_config_constructor device_mconfig_additions() const override; DECLARE_WRITE_LINE_MEMBER(vsync_changed); MC6845_UPDATE_ROW(crtc_update_row); - uint8_t *m_rom, *m_chrrom; - uint8_t m_ram[512*4]; - int m_framecnt; - protected: + // construction/destruction + a2bus_videx80_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; virtual void device_reset() override; @@ -48,12 +46,15 @@ protected: virtual uint8_t read_c800(address_space &space, uint16_t offset) override; virtual void write_c800(address_space &space, uint16_t offset, uint8_t data) override; + uint8_t *m_rom, *m_chrrom; + uint8_t m_ram[512*4]; + int m_framecnt; + required_device m_crtc; + required_device m_palette; private: int m_rambank; -public: - required_device m_palette; }; class a2bus_videoterm_device : public a2bus_videx80_device @@ -71,6 +72,7 @@ public: virtual const tiny_rom_entry *device_rom_region() const override; +protected: virtual uint8_t read_cnxx(address_space &space, uint8_t offset) override; }; @@ -82,6 +84,7 @@ public: virtual const tiny_rom_entry *device_rom_region() const override; +protected: virtual uint8_t read_cnxx(address_space &space, uint8_t offset) override; }; @@ -110,11 +113,11 @@ public: }; // device type definition -extern const device_type A2BUS_VIDEOTERM; -extern const device_type A2BUS_IBSAP16; -extern const device_type A2BUS_IBSAP16ALT; -extern const device_type A2BUS_VTC1; -extern const device_type A2BUS_VTC2; -extern const device_type A2BUS_AEVIEWMASTER80; - -#endif /* __A2BUS_VIDEOTERM__ */ +DECLARE_DEVICE_TYPE(A2BUS_VIDEOTERM, a2bus_videoterm_device) +DECLARE_DEVICE_TYPE(A2BUS_IBSAP16, a2bus_ap16_device) +DECLARE_DEVICE_TYPE(A2BUS_IBSAP16ALT, a2bus_ap16alt_device) +DECLARE_DEVICE_TYPE(A2BUS_VTC1, a2bus_vtc1_device) +DECLARE_DEVICE_TYPE(A2BUS_VTC2, a2bus_vtc2_device) +DECLARE_DEVICE_TYPE(A2BUS_AEVIEWMASTER80, a2bus_aevm80_device) + +#endif // MAME_BUS_A2BUS_A2VIDEOTERM_H diff --git a/src/devices/bus/a2bus/a2vulcan.cpp b/src/devices/bus/a2bus/a2vulcan.cpp index 585a9eadff0..0e0d24f2464 100644 --- a/src/devices/bus/a2bus/a2vulcan.cpp +++ b/src/devices/bus/a2bus/a2vulcan.cpp @@ -62,8 +62,8 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type A2BUS_VULCAN = device_creator; -const device_type A2BUS_VULCANGOLD = device_creator; +DEFINE_DEVICE_TYPE(A2BUS_VULCAN, a2bus_vulcan_device, "a2vulcan", "Applied Engineering Vulcan IDE controller") +DEFINE_DEVICE_TYPE(A2BUS_VULCANGOLD, a2bus_vulcangold_device, "a2vulgld", "Applied Engineering Vulcan Gold IDE controller") #define VULCAN_ROM_REGION "vulcan_rom" #define VULCAN_ATA_TAG "vulcan_ata" @@ -114,20 +114,20 @@ const tiny_rom_entry *a2bus_vulcangold_device::device_rom_region() const // LIVE DEVICE //************************************************************************** -a2bus_vulcanbase_device::a2bus_vulcanbase_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), +a2bus_vulcanbase_device::a2bus_vulcanbase_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), device_a2bus_card_interface(mconfig, *this), m_ata(*this, VULCAN_ATA_TAG), m_rom(nullptr), m_lastdata(0), m_rombank(0), m_rambank(0), m_last_read_was_0(false) { } a2bus_vulcan_device::a2bus_vulcan_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - a2bus_vulcanbase_device(mconfig, A2BUS_VULCAN, "Applied Engineering Vulcan IDE controller", tag, owner, clock, "a2vulcan", __FILE__) + a2bus_vulcanbase_device(mconfig, A2BUS_VULCAN, tag, owner, clock) { } a2bus_vulcangold_device::a2bus_vulcangold_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - a2bus_vulcanbase_device(mconfig, A2BUS_VULCANGOLD, "Applied Engineering Vulcan Gold IDE controller", tag, owner, clock, "a2vulgld", __FILE__) + a2bus_vulcanbase_device(mconfig, A2BUS_VULCANGOLD, tag, owner, clock) { } diff --git a/src/devices/bus/a2bus/a2vulcan.h b/src/devices/bus/a2bus/a2vulcan.h index bd2acab26b4..ebb3d75f551 100644 --- a/src/devices/bus/a2bus/a2vulcan.h +++ b/src/devices/bus/a2bus/a2vulcan.h @@ -8,8 +8,10 @@ *********************************************************************/ -#ifndef __A2BUS_VULCAN__ -#define __A2BUS_VULCAN__ +#ifndef MAME_BUS_A2BUS_VULCAN_H +#define MAME_BUS_A2BUS_VULCAN_H + +#pragma once #include "a2bus.h" #include "machine/ataintf.h" @@ -23,13 +25,13 @@ class a2bus_vulcanbase_device: public device_a2bus_card_interface { public: - // construction/destruction - a2bus_vulcanbase_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - // optional information overrides virtual machine_config_constructor device_mconfig_additions() const override; protected: + // construction/destruction + a2bus_vulcanbase_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; virtual void device_reset() override; @@ -71,7 +73,7 @@ public: }; // device type definition -extern const device_type A2BUS_VULCAN; -extern const device_type A2BUS_VULCANGOLD; +DECLARE_DEVICE_TYPE(A2BUS_VULCAN, a2bus_vulcan_device) +DECLARE_DEVICE_TYPE(A2BUS_VULCANGOLD, a2bus_vulcangold_device) -#endif /* __A2BUS_VULCAN__ */ +#endif // MAME_BUS_A2BUS_VULCAN_H diff --git a/src/devices/bus/a2bus/a2zipdrive.cpp b/src/devices/bus/a2bus/a2zipdrive.cpp index a3220476cda..4c65ac8ec0f 100644 --- a/src/devices/bus/a2bus/a2zipdrive.cpp +++ b/src/devices/bus/a2bus/a2zipdrive.cpp @@ -28,7 +28,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type A2BUS_ZIPDRIVE = device_creator; +DEFINE_DEVICE_TYPE(A2BUS_ZIPDRIVE, a2bus_zipdrive_device, "a2zipdrv", "Zip Technologies ZipDrive") #define ZIPDRIVE_ROM_REGION "zipdrive_rom" #define ZIPDRIVE_ATA_TAG "zipdrive_ata" @@ -69,15 +69,15 @@ const tiny_rom_entry *a2bus_zipdrivebase_device::device_rom_region() const // LIVE DEVICE //************************************************************************** -a2bus_zipdrivebase_device::a2bus_zipdrivebase_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), +a2bus_zipdrivebase_device::a2bus_zipdrivebase_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), device_a2bus_card_interface(mconfig, *this), m_ata(*this, ZIPDRIVE_ATA_TAG), m_rom(nullptr), m_lastdata(0) { } a2bus_zipdrive_device::a2bus_zipdrive_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - a2bus_zipdrivebase_device(mconfig, A2BUS_ZIPDRIVE, "Zip Technologies ZipDrive", tag, owner, clock, "a2zipdrv", __FILE__) + a2bus_zipdrivebase_device(mconfig, A2BUS_ZIPDRIVE, tag, owner, clock) { } diff --git a/src/devices/bus/a2bus/a2zipdrive.h b/src/devices/bus/a2bus/a2zipdrive.h index 3878c4b7bf0..12b7e6bb574 100644 --- a/src/devices/bus/a2bus/a2zipdrive.h +++ b/src/devices/bus/a2bus/a2zipdrive.h @@ -10,8 +10,10 @@ *********************************************************************/ -#ifndef __A2BUS_ZIPDRIVE__ -#define __A2BUS_ZIPDRIVE__ +#ifndef MAME_BUS_A2BUS_ZIPDRIVE_H +#define MAME_BUS_A2BUS_ZIPDRIVE_H + +#pragma once #include "a2bus.h" #include "machine/ataintf.h" @@ -25,14 +27,14 @@ class a2bus_zipdrivebase_device: public device_a2bus_card_interface { public: - // construction/destruction - a2bus_zipdrivebase_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - // optional information overrides virtual machine_config_constructor device_mconfig_additions() const override; virtual const tiny_rom_entry *device_rom_region() const override; protected: + // construction/destruction + a2bus_zipdrivebase_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; virtual void device_reset() override; @@ -57,6 +59,6 @@ public: }; // device type definition -extern const device_type A2BUS_ZIPDRIVE; +DECLARE_DEVICE_TYPE(A2BUS_ZIPDRIVE, a2bus_zipdrive_device) -#endif /* __A2BUS_ZIPDRIVE__ */ +#endif // MAME_BUS_A2BUS_ZIPDRIVE_H diff --git a/src/devices/bus/a2bus/agat7langcard.cpp b/src/devices/bus/a2bus/agat7langcard.cpp index fba82f8dcd2..9bb00b38c60 100644 --- a/src/devices/bus/a2bus/agat7langcard.cpp +++ b/src/devices/bus/a2bus/agat7langcard.cpp @@ -18,7 +18,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type A2BUS_AGAT7LANGCARD = device_creator; +DEFINE_DEVICE_TYPE(A2BUS_AGAT7LANGCARD, a2bus_agat7langcard_device, "a7lang", "Agat-7 32K Language Card") /*************************************************************************** FUNCTION PROTOTYPES @@ -28,15 +28,14 @@ const device_type A2BUS_AGAT7LANGCARD = device_creator; +DEFINE_DEVICE_TYPE(A2BUS_AGAT7RAM, a2bus_agat7ram_device, "a7ram", "Agat-7 32K RAM Card") /*************************************************************************** FUNCTION PROTOTYPES @@ -28,15 +28,14 @@ const device_type A2BUS_AGAT7RAM = device_creator; // LIVE DEVICE //************************************************************************** -a2bus_agat7ram_device::a2bus_agat7ram_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), +a2bus_agat7ram_device::a2bus_agat7ram_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), device_a2bus_card_interface(mconfig, *this), m_inh_state(0), m_last_offset(0), m_main_bank(0) { } a2bus_agat7ram_device::a2bus_agat7ram_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, A2BUS_AGAT7RAM, "Agat-7 32K RAM Card", tag, owner, clock, "a7ram", __FILE__), - device_a2bus_card_interface(mconfig, *this), m_inh_state(0), m_last_offset(0), m_main_bank(0) + a2bus_agat7ram_device(mconfig, A2BUS_AGAT7RAM, tag, owner, clock) { } diff --git a/src/devices/bus/a2bus/agat7ram.h b/src/devices/bus/a2bus/agat7ram.h index 451efb08e3e..e30aaf7b94b 100644 --- a/src/devices/bus/a2bus/agat7ram.h +++ b/src/devices/bus/a2bus/agat7ram.h @@ -8,8 +8,10 @@ *********************************************************************/ -#ifndef __A2BUS_AGAT7RAM__ -#define __A2BUS_AGAT7RAM__ +#ifndef MAME_BUS_A2BUS_AGAT7RAM_H +#define MAME_BUS_A2BUS_AGAT7RAM_H + +#pragma once #include "emu.h" #include "a2bus.h" @@ -24,10 +26,11 @@ class a2bus_agat7ram_device: { public: // construction/destruction - a2bus_agat7ram_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); a2bus_agat7ram_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); protected: + a2bus_agat7ram_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; virtual void device_reset() override; @@ -50,6 +53,6 @@ private: }; // device type definition -extern const device_type A2BUS_AGAT7RAM; +DECLARE_DEVICE_TYPE(A2BUS_AGAT7RAM, a2bus_agat7ram_device) -#endif /* __A2BUS_AGAT7RAM__ */ +#endif // MAME_BUS_A2BUS_AGAT7RAM_H diff --git a/src/devices/bus/a2bus/corvfdc01.cpp b/src/devices/bus/a2bus/corvfdc01.cpp index e6badc3238a..c69315fabf2 100644 --- a/src/devices/bus/a2bus/corvfdc01.cpp +++ b/src/devices/bus/a2bus/corvfdc01.cpp @@ -22,7 +22,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type A2BUS_CORVFDC01 = device_creator; +DEFINE_DEVICE_TYPE(A2BUS_CORVFDC01, a2bus_corvfdc01_device, "crvfdc01", "Corvus Systems Floppy Controller") #define FDC01_ROM_REGION "fdc01_rom" #define FDC01_FDC_TAG "fdc01_fdc" @@ -111,25 +111,20 @@ const tiny_rom_entry *a2bus_corvfdc01_device::device_rom_region() const // LIVE DEVICE //************************************************************************** -a2bus_corvfdc01_device::a2bus_corvfdc01_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), +a2bus_corvfdc01_device::a2bus_corvfdc01_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), device_a2bus_card_interface(mconfig, *this), m_wdfdc(*this, FDC01_FDC_TAG), m_con1(*this, FDC01_FDC_TAG":0"), m_con2(*this, FDC01_FDC_TAG":1"), m_con3(*this, FDC01_FDC_TAG":2"), - m_con4(*this, FDC01_FDC_TAG":3"), m_rom(nullptr), m_fdc_local_status(0), m_fdc_local_command(0), m_curfloppy(nullptr) + m_con4(*this, FDC01_FDC_TAG":3"), + m_rom(nullptr), m_fdc_local_status(0), m_fdc_local_command(0), m_curfloppy(nullptr) { } a2bus_corvfdc01_device::a2bus_corvfdc01_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, A2BUS_CORVFDC01, "Corvus Systems Floppy Controller", tag, owner, clock, "crvfdc01", __FILE__), - device_a2bus_card_interface(mconfig, *this), - m_wdfdc(*this, FDC01_FDC_TAG), - m_con1(*this, FDC01_FDC_TAG":0"), - m_con2(*this, FDC01_FDC_TAG":1"), - m_con3(*this, FDC01_FDC_TAG":2"), - m_con4(*this, FDC01_FDC_TAG":3"), m_rom(nullptr), m_fdc_local_status(0), m_fdc_local_command(0), m_curfloppy(nullptr) + a2bus_corvfdc01_device(mconfig, A2BUS_CORVFDC01, tag, owner, clock) { } diff --git a/src/devices/bus/a2bus/corvfdc01.h b/src/devices/bus/a2bus/corvfdc01.h index 63953dd0acb..fc5395087de 100644 --- a/src/devices/bus/a2bus/corvfdc01.h +++ b/src/devices/bus/a2bus/corvfdc01.h @@ -8,8 +8,10 @@ *********************************************************************/ -#ifndef __A2BUS_CORVFDC01__ -#define __A2BUS_CORVFDC01__ +#ifndef MAME_BUS_A2BUS_CORVFDC01_H +#define MAME_BUS_A2BUS_CORVFDC01_H + +#pragma once #include "a2bus.h" #include "machine/wd_fdc.h" @@ -25,7 +27,6 @@ class a2bus_corvfdc01_device: { public: // construction/destruction - a2bus_corvfdc01_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); a2bus_corvfdc01_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides @@ -38,6 +39,8 @@ public: DECLARE_FLOPPY_FORMATS(corv_floppy_formats); protected: + a2bus_corvfdc01_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; virtual void device_reset() override; @@ -46,7 +49,7 @@ protected: virtual void write_c0nx(address_space &space, uint8_t offset, uint8_t data) override; virtual uint8_t read_cnxx(address_space &space, uint8_t offset) override; - required_device m_wdfdc; + required_device m_wdfdc; required_device m_con1; required_device m_con2; required_device m_con3; @@ -59,6 +62,6 @@ private: }; // device type definition -extern const device_type A2BUS_CORVFDC01; +DECLARE_DEVICE_TYPE(A2BUS_CORVFDC01, a2bus_corvfdc01_device) -#endif /* __A2BUS_CORVFDC01__ */ +#endif // MAME_BUS_A2BUS_CORVFDC01_H diff --git a/src/devices/bus/a2bus/corvfdc02.cpp b/src/devices/bus/a2bus/corvfdc02.cpp index a65726629cb..f87d793ceb5 100644 --- a/src/devices/bus/a2bus/corvfdc02.cpp +++ b/src/devices/bus/a2bus/corvfdc02.cpp @@ -24,7 +24,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type A2BUS_CORVFDC02 = device_creator; +DEFINE_DEVICE_TYPE(A2BUS_CORVFDC02, a2bus_corvfdc02_device, "crvfdc02", "Corvus Systems Buffered Floppy Controller") #define FDC02_ROM_REGION "fdc02_rom" #define FDC02_FDC_TAG "fdc02_fdc" @@ -81,8 +81,8 @@ const tiny_rom_entry *a2bus_corvfdc02_device::device_rom_region() const // LIVE DEVICE //************************************************************************** -a2bus_corvfdc02_device::a2bus_corvfdc02_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), +a2bus_corvfdc02_device::a2bus_corvfdc02_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), device_a2bus_card_interface(mconfig, *this), m_fdc(*this, FDC02_FDC_TAG), m_con1(*this, FDC02_FDC_TAG":0"), @@ -93,13 +93,7 @@ a2bus_corvfdc02_device::a2bus_corvfdc02_device(const machine_config &mconfig, de } a2bus_corvfdc02_device::a2bus_corvfdc02_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, A2BUS_CORVFDC02, "Corvus Systems Buffered Floppy Controller", tag, owner, clock, "crvfdc02", __FILE__), - device_a2bus_card_interface(mconfig, *this), - m_fdc(*this, FDC02_FDC_TAG), - m_con1(*this, FDC02_FDC_TAG":0"), - m_con2(*this, FDC02_FDC_TAG":1"), - m_con3(*this, FDC02_FDC_TAG":2"), - m_con4(*this, FDC02_FDC_TAG":3"), m_rom(nullptr), m_fdc_local_status(0), m_fdc_local_command(0), m_bufptr(0), m_curfloppy(nullptr), m_in_drq(false), m_timer(nullptr) + a2bus_corvfdc02_device(mconfig, A2BUS_CORVFDC02, tag, owner, clock) { } diff --git a/src/devices/bus/a2bus/corvfdc02.h b/src/devices/bus/a2bus/corvfdc02.h index f6d5d1885ef..089e3c5cc01 100644 --- a/src/devices/bus/a2bus/corvfdc02.h +++ b/src/devices/bus/a2bus/corvfdc02.h @@ -8,8 +8,10 @@ *********************************************************************/ -#ifndef __A2BUS_CORVFDC02__ -#define __A2BUS_CORVFDC02__ +#ifndef MAME_BUS_A2BUS_CORVFDC02_H +#define MAME_BUS_A2BUS_CORVFDC02_H + +#pragma once #include "a2bus.h" #include "machine/upd765.h" @@ -25,7 +27,6 @@ class a2bus_corvfdc02_device: { public: // construction/destruction - a2bus_corvfdc02_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); a2bus_corvfdc02_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides @@ -38,6 +39,8 @@ public: DECLARE_FLOPPY_FORMATS(corv_floppy_formats); protected: + a2bus_corvfdc02_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; virtual void device_reset() override; virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; @@ -64,6 +67,6 @@ private: }; // device type definition -extern const device_type A2BUS_CORVFDC02; +DECLARE_DEVICE_TYPE(A2BUS_CORVFDC02, a2bus_corvfdc02_device) -#endif /* __A2BUS_CORVFDC02__ */ +#endif // MAME_BUS_A2BUS_CORVFDC02_H diff --git a/src/devices/bus/a2bus/ezcgi.cpp b/src/devices/bus/a2bus/ezcgi.cpp index 49cae2b14e8..1fc3ede7399 100644 --- a/src/devices/bus/a2bus/ezcgi.cpp +++ b/src/devices/bus/a2bus/ezcgi.cpp @@ -25,9 +25,9 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type A2BUS_EZCGI = device_creator; -const device_type A2BUS_EZCGI_9938 = device_creator; -const device_type A2BUS_EZCGI_9958 = device_creator; +DEFINE_DEVICE_TYPE(A2BUS_EZCGI, a2bus_ezcgi_device, "a2ezcgi", "E-Z Color Graphics Interface") +DEFINE_DEVICE_TYPE(A2BUS_EZCGI_9938, a2bus_ezcgi_9938_device, "a2ezcgi3", "E-Z Color Graphics Interface (TMS9938)") +DEFINE_DEVICE_TYPE(A2BUS_EZCGI_9958, a2bus_ezcgi_9958_device, "a2ezcgi5", "E-Z Color Graphics Interface (TMS9958)") MACHINE_CONFIG_FRAGMENT( ezcgi ) MCFG_DEVICE_ADD( TMS_TAG, TMS9918A, XTAL_10_738635MHz / 2 ) @@ -97,42 +97,36 @@ machine_config_constructor a2bus_ezcgi_9958_device::device_mconfig_additions() c //************************************************************************** a2bus_ezcgi_device::a2bus_ezcgi_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, A2BUS_EZCGI, "E-Z Color Graphics Interface", tag, owner, clock, "a2ezcgi", __FILE__), - device_a2bus_card_interface(mconfig, *this), - m_tms(*this, TMS_TAG) + a2bus_ezcgi_device(mconfig, A2BUS_EZCGI, tag, owner, clock) { } -a2bus_ezcgi_device::a2bus_ezcgi_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), +a2bus_ezcgi_device::a2bus_ezcgi_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), device_a2bus_card_interface(mconfig, *this), m_tms(*this, TMS_TAG) { } a2bus_ezcgi_9938_device::a2bus_ezcgi_9938_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, A2BUS_EZCGI_9938, "E-Z Color Graphics Interface (TMS9938)", tag, owner, clock, "a2ezcgi3", __FILE__), - device_a2bus_card_interface(mconfig, *this), - m_tms(*this, TMS_TAG) + a2bus_ezcgi_9938_device(mconfig, A2BUS_EZCGI_9938, tag, owner, clock) { } -a2bus_ezcgi_9938_device::a2bus_ezcgi_9938_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), +a2bus_ezcgi_9938_device::a2bus_ezcgi_9938_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), device_a2bus_card_interface(mconfig, *this), m_tms(*this, TMS_TAG) { } a2bus_ezcgi_9958_device::a2bus_ezcgi_9958_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, A2BUS_EZCGI_9958, "E-Z Color Graphics Interface (TMS9958)", tag, owner, clock, "a2ezcgi5", __FILE__), - device_a2bus_card_interface(mconfig, *this), - m_tms(*this, TMS_TAG) + a2bus_ezcgi_9958_device(mconfig, A2BUS_EZCGI_9958, tag, owner, clock) { } -a2bus_ezcgi_9958_device::a2bus_ezcgi_9958_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), +a2bus_ezcgi_9958_device::a2bus_ezcgi_9958_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), device_a2bus_card_interface(mconfig, *this), m_tms(*this, TMS_TAG) { diff --git a/src/devices/bus/a2bus/ezcgi.h b/src/devices/bus/a2bus/ezcgi.h index 095c3da9beb..fe8ded273c3 100644 --- a/src/devices/bus/a2bus/ezcgi.h +++ b/src/devices/bus/a2bus/ezcgi.h @@ -10,8 +10,10 @@ *********************************************************************/ -#ifndef __A2BUS_EZCGI__ -#define __A2BUS_EZCGI__ +#ifndef MAME_BUS_A2BUS_A2EZCGI_H +#define MAME_BUS_A2BUS_A2EZCGI_H + +#pragma once #include "a2bus.h" #include "video/tms9928a.h" @@ -28,7 +30,6 @@ class a2bus_ezcgi_device: public: // construction/destruction a2bus_ezcgi_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - a2bus_ezcgi_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); // optional information overrides virtual machine_config_constructor device_mconfig_additions() const override; @@ -36,6 +37,8 @@ public: DECLARE_WRITE_LINE_MEMBER( tms_irq_w ); protected: + a2bus_ezcgi_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; virtual void device_reset() override; @@ -53,7 +56,6 @@ class a2bus_ezcgi_9938_device: public: // construction/destruction a2bus_ezcgi_9938_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - a2bus_ezcgi_9938_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); // optional information overrides virtual machine_config_constructor device_mconfig_additions() const override; @@ -61,6 +63,8 @@ public: DECLARE_WRITE_LINE_MEMBER( tms_irq_w ); protected: + a2bus_ezcgi_9938_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; virtual void device_reset() override; @@ -78,7 +82,6 @@ class a2bus_ezcgi_9958_device: public: // construction/destruction a2bus_ezcgi_9958_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - a2bus_ezcgi_9958_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); // optional information overrides virtual machine_config_constructor device_mconfig_additions() const override; @@ -86,6 +89,8 @@ public: DECLARE_WRITE_LINE_MEMBER( tms_irq_w ); protected: + a2bus_ezcgi_9958_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; virtual void device_reset() override; @@ -97,8 +102,8 @@ protected: }; // device type definition -extern const device_type A2BUS_EZCGI; -extern const device_type A2BUS_EZCGI_9938; -extern const device_type A2BUS_EZCGI_9958; +DECLARE_DEVICE_TYPE(A2BUS_EZCGI, a2bus_ezcgi_device) +DECLARE_DEVICE_TYPE(A2BUS_EZCGI_9938, a2bus_ezcgi_9938_device) +DECLARE_DEVICE_TYPE(A2BUS_EZCGI_9958, a2bus_ezcgi_9958_device) -#endif /* __A2BUS_EZCGI__ */ +#endif // MAME_BUS_A2BUS_A2EZCGI_H diff --git a/src/devices/bus/a2bus/laser128.cpp b/src/devices/bus/a2bus/laser128.cpp index 4cfe11e52ec..947f9df5b5f 100644 --- a/src/devices/bus/a2bus/laser128.cpp +++ b/src/devices/bus/a2bus/laser128.cpp @@ -19,7 +19,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type A2BUS_LASER128 = device_creator; +DEFINE_DEVICE_TYPE(A2BUS_LASER128, a2bus_laser128_device, "a2laser128", "VTech Laser 128 Internal Device") MACHINE_CONFIG_FRAGMENT( a2laser128 ) MACHINE_CONFIG_END @@ -42,16 +42,15 @@ machine_config_constructor a2bus_laser128_device::device_mconfig_additions() con // LIVE DEVICE //************************************************************************** -a2bus_laser128_device::a2bus_laser128_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), +a2bus_laser128_device::a2bus_laser128_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), device_a2bus_card_interface(mconfig, *this), m_rom(nullptr), m_slot7_bank(0), m_slot7_ram_bank(0) { } a2bus_laser128_device::a2bus_laser128_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, A2BUS_LASER128, "VTech Laser 128 Internal Device", tag, owner, clock, "a2laser128", __FILE__), - device_a2bus_card_interface(mconfig, *this), m_rom(nullptr), m_slot7_bank(0), m_slot7_ram_bank(0) + a2bus_laser128_device(mconfig, A2BUS_LASER128, tag, owner, clock) { } diff --git a/src/devices/bus/a2bus/laser128.h b/src/devices/bus/a2bus/laser128.h index 22733ea94fa..c324911ea37 100644 --- a/src/devices/bus/a2bus/laser128.h +++ b/src/devices/bus/a2bus/laser128.h @@ -8,8 +8,10 @@ *********************************************************************/ -#ifndef __A2BUS_LASER128__ -#define __A2BUS_LASER128__ +#ifndef MAME_BUS_A2BUS_LASER128_H +#define MAME_BUS_A2BUS_LASER128_H + +#pragma once #include "a2bus.h" @@ -23,13 +25,14 @@ class a2bus_laser128_device: { public: // construction/destruction - a2bus_laser128_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); a2bus_laser128_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual machine_config_constructor device_mconfig_additions() const override; protected: + a2bus_laser128_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; virtual void device_reset() override; @@ -48,6 +51,6 @@ private: }; // device type definition -extern const device_type A2BUS_LASER128; +DECLARE_DEVICE_TYPE(A2BUS_LASER128, a2bus_laser128_device) -#endif /* __A2BUS_LASER128__ */ +#endif // MAME_BUS_A2BUS_LASER128_H diff --git a/src/devices/bus/a2bus/mouse.cpp b/src/devices/bus/a2bus/mouse.cpp index c332fce3d65..5380df8894c 100644 --- a/src/devices/bus/a2bus/mouse.cpp +++ b/src/devices/bus/a2bus/mouse.cpp @@ -83,7 +83,7 @@ GLOBAL VARIABLES ***************************************************************************/ -const device_type A2BUS_MOUSE = device_creator; +DEFINE_DEVICE_TYPE(A2BUS_MOUSE, a2bus_mouse_device, "a2mouse", "Apple II Mouse Card") static MACHINE_CONFIG_FRAGMENT( mouse ) MCFG_CPU_ADD(MOUSE_MCU_TAG, M68705P3, 2043600) @@ -161,8 +161,8 @@ const tiny_rom_entry *a2bus_mouse_device::device_rom_region() const LIVE DEVICE ***************************************************************************/ -a2bus_mouse_device::a2bus_mouse_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), +a2bus_mouse_device::a2bus_mouse_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), device_a2bus_card_interface(mconfig, *this), m_pia(*this, MOUSE_PIA_TAG), m_mcu(*this, MOUSE_MCU_TAG), @@ -175,7 +175,7 @@ a2bus_mouse_device::a2bus_mouse_device(const machine_config &mconfig, device_typ } a2bus_mouse_device::a2bus_mouse_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - a2bus_mouse_device(mconfig, A2BUS_MOUSE, "Apple II Mouse Card", tag, owner, clock, "a2mouse", __FILE__) + a2bus_mouse_device(mconfig, A2BUS_MOUSE, tag, owner, clock) { } diff --git a/src/devices/bus/a2bus/mouse.h b/src/devices/bus/a2bus/mouse.h index 97a9c00059b..b20513bc4d0 100644 --- a/src/devices/bus/a2bus/mouse.h +++ b/src/devices/bus/a2bus/mouse.h @@ -11,6 +11,8 @@ #ifndef MAME_DEVICES_A2BUS_MOUSE_H #define MAME_DEVICES_A2BUS_MOUSE_H +#pragma once + #include "a2bus.h" #include "machine/6821pia.h" #include "cpu/m6805/m68705.h" @@ -25,7 +27,6 @@ class a2bus_mouse_device: { public: // construction/destruction - a2bus_mouse_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); a2bus_mouse_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides @@ -45,6 +46,8 @@ public: DECLARE_WRITE8_MEMBER(mcu_port_c_w); protected: + a2bus_mouse_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; virtual void device_reset() override; diff --git a/src/devices/bus/a2bus/pc_xporter.cpp b/src/devices/bus/a2bus/pc_xporter.cpp index 158475219bc..f5f267cd883 100644 --- a/src/devices/bus/a2bus/pc_xporter.cpp +++ b/src/devices/bus/a2bus/pc_xporter.cpp @@ -89,7 +89,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type A2BUS_PCXPORTER = device_creator; +DEFINE_DEVICE_TYPE(A2BUS_PCXPORTER, a2bus_pcxporter_device, "a2pcxport", "Applied Engineering PC Transporter") static ADDRESS_MAP_START( pc_map, AS_PROGRAM, 16, a2bus_pcxporter_device ) ADDRESS_MAP_UNMAP_HIGH @@ -183,8 +183,8 @@ machine_config_constructor a2bus_pcxporter_device::device_mconfig_additions() co // LIVE DEVICE //************************************************************************** -a2bus_pcxporter_device::a2bus_pcxporter_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), +a2bus_pcxporter_device::a2bus_pcxporter_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), device_a2bus_card_interface(mconfig, *this), m_v30(*this, "v30"), m_pic8259(*this, "pic8259"), @@ -197,15 +197,7 @@ a2bus_pcxporter_device::a2bus_pcxporter_device(const machine_config &mconfig, de } a2bus_pcxporter_device::a2bus_pcxporter_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, A2BUS_PCXPORTER, "Applied Engineering PC Transporter", tag, owner, clock, "a2pcxport", __FILE__), - device_a2bus_card_interface(mconfig, *this), - m_v30(*this, "v30"), - m_pic8259(*this, "pic8259"), - m_dma8237(*this, "dma8237"), - m_pit8253(*this, "pit8253"), - m_speaker(*this, "speaker"), - m_isabus(*this, "isa"), - m_pc_kbdc(*this, "pc_kbdc") + a2bus_pcxporter_device(mconfig, A2BUS_PCXPORTER, tag, owner, clock) { } diff --git a/src/devices/bus/a2bus/pc_xporter.h b/src/devices/bus/a2bus/pc_xporter.h index 49221a28ce9..5b990adc5a2 100644 --- a/src/devices/bus/a2bus/pc_xporter.h +++ b/src/devices/bus/a2bus/pc_xporter.h @@ -8,6 +8,9 @@ *********************************************************************/ +#ifndef MAME_BUS_A2BUS_PC_XPORTER_H +#define MAME_BUS_A2BUS_PC_XPORTER_H + #pragma once #include "a2bus.h" @@ -33,7 +36,6 @@ class a2bus_pcxporter_device: { public: // construction/destruction - a2bus_pcxporter_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); a2bus_pcxporter_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides @@ -41,14 +43,6 @@ public: DECLARE_READ16_MEMBER(pc_bios_r); - required_device m_v30; - required_device m_pic8259; - required_device m_dma8237; - required_device m_pit8253; - required_device m_speaker; - required_device m_isabus; - optional_device m_pc_kbdc; - // overrides of standard a2bus slot functions virtual uint8_t read_c0nx(address_space &space, uint8_t offset) override; virtual void write_c0nx(address_space &space, uint8_t offset, uint8_t data) override; @@ -57,16 +51,6 @@ public: virtual uint8_t read_c800(address_space &space, uint16_t offset) override; virtual void write_c800(address_space &space, uint16_t offset, uint8_t data) override; - uint8_t m_u73_q2; - uint8_t m_out1; - int m_dma_channel; - uint8_t m_dma_offset[4]; - uint8_t m_pc_spkrdata; - uint8_t m_pit_out2; - bool m_cur_eop; - - uint8_t m_nmi_enabled; - // interface to the keyboard DECLARE_WRITE_LINE_MEMBER( keyboard_clock_w ); DECLARE_WRITE_LINE_MEMBER( keyboard_data_w ); @@ -98,9 +82,29 @@ public: DECLARE_WRITE8_MEMBER(nmi_enable_w); protected: + a2bus_pcxporter_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; virtual void device_reset() override; + required_device m_v30; + required_device m_pic8259; + required_device m_dma8237; + required_device m_pit8253; + required_device m_speaker; + required_device m_isabus; + optional_device m_pc_kbdc; + + uint8_t m_u73_q2; + uint8_t m_out1; + int m_dma_channel; + uint8_t m_dma_offset[4]; + uint8_t m_pc_spkrdata; + uint8_t m_pit_out2; + bool m_cur_eop; + + uint8_t m_nmi_enabled; + private: uint8_t m_ram[768*1024]; uint8_t m_c800_ram[0x400]; @@ -116,3 +120,5 @@ private: // device type definition extern const device_type A2BUS_PCXPORTER; + +#endif // MAME_BUS_A2BUS_PC_XPORTER_H diff --git a/src/devices/bus/a2bus/ramcard128k.cpp b/src/devices/bus/a2bus/ramcard128k.cpp index 6697c6ac9ab..b98d2edfad9 100644 --- a/src/devices/bus/a2bus/ramcard128k.cpp +++ b/src/devices/bus/a2bus/ramcard128k.cpp @@ -19,7 +19,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type A2BUS_RAMCARD128K = device_creator; +DEFINE_DEVICE_TYPE(A2BUS_RAMCARD128K, a2bus_ssramcard_device, "ssram128", "Saturn Systems 128K Extended Language Card") /*************************************************************************** FUNCTION PROTOTYPES @@ -29,15 +29,14 @@ const device_type A2BUS_RAMCARD128K = device_creator; // LIVE DEVICE //************************************************************************** -a2bus_ssramcard_device::a2bus_ssramcard_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_a2bus_card_interface(mconfig, *this), m_inh_state(0), m_last_offset(0), m_dxxx_bank(0), m_main_bank(0) +a2bus_ssramcard_device::a2bus_ssramcard_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), device_a2bus_card_interface(mconfig, *this), + m_inh_state(0), m_last_offset(0), m_dxxx_bank(0), m_main_bank(0) { } a2bus_ssramcard_device::a2bus_ssramcard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, A2BUS_RAMCARD128K, "Saturn Systems 128K Extended Language Card", tag, owner, clock, "ssram128", __FILE__), - device_a2bus_card_interface(mconfig, *this), m_inh_state(0), m_last_offset(0), m_dxxx_bank(0), m_main_bank(0) + a2bus_ssramcard_device(mconfig, A2BUS_RAMCARD128K, tag, owner, clock) { } diff --git a/src/devices/bus/a2bus/ramcard128k.h b/src/devices/bus/a2bus/ramcard128k.h index 922bebbb730..a6ac119f200 100644 --- a/src/devices/bus/a2bus/ramcard128k.h +++ b/src/devices/bus/a2bus/ramcard128k.h @@ -8,8 +8,10 @@ *********************************************************************/ -#ifndef __A2BUS_RAMCARD128K__ -#define __A2BUS_RAMCARD128K__ +#ifndef MAME_BUS_A2BUS_RAMCARD128K_H +#define MAME_BUS_A2BUS_RAMCARD128K_H + +#pragma once #include "a2bus.h" @@ -23,10 +25,11 @@ class a2bus_ssramcard_device: { public: // construction/destruction - a2bus_ssramcard_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); a2bus_ssramcard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); protected: + a2bus_ssramcard_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; virtual void device_reset() override; @@ -50,6 +53,6 @@ private: }; // device type definition -extern const device_type A2BUS_RAMCARD128K; +DECLARE_DEVICE_TYPE(A2BUS_RAMCARD128K, a2bus_ssramcard_device) -#endif /* __A2BUS_RAMCARD128K__ */ +#endif // MAME_BUS_A2BUS_RAMCARD128K_H diff --git a/src/devices/bus/a2bus/ramcard16k.cpp b/src/devices/bus/a2bus/ramcard16k.cpp index 3feb4a62bd3..d80bc9f4f6c 100644 --- a/src/devices/bus/a2bus/ramcard16k.cpp +++ b/src/devices/bus/a2bus/ramcard16k.cpp @@ -19,7 +19,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type A2BUS_RAMCARD16K = device_creator; +DEFINE_DEVICE_TYPE(A2BUS_RAMCARD16K, a2bus_ramcard_device, "a2ram16k", "Apple II 16K Language Card") /*************************************************************************** FUNCTION PROTOTYPES @@ -29,15 +29,14 @@ const device_type A2BUS_RAMCARD16K = device_creator; // LIVE DEVICE //************************************************************************** -a2bus_ramcard_device::a2bus_ramcard_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), +a2bus_ramcard_device::a2bus_ramcard_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), device_a2bus_card_interface(mconfig, *this), m_inh_state(0), m_prewrite(false), m_dxxx_bank(0) { } a2bus_ramcard_device::a2bus_ramcard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, A2BUS_RAMCARD16K, "Apple II 16K Language Card", tag, owner, clock, "a2ram16k", __FILE__), - device_a2bus_card_interface(mconfig, *this), m_inh_state(0), m_prewrite(false), m_dxxx_bank(0) + a2bus_ramcard_device(mconfig, A2BUS_RAMCARD16K, tag, owner, clock) { } diff --git a/src/devices/bus/a2bus/ramcard16k.h b/src/devices/bus/a2bus/ramcard16k.h index abfceec35d9..43e8ca8b535 100644 --- a/src/devices/bus/a2bus/ramcard16k.h +++ b/src/devices/bus/a2bus/ramcard16k.h @@ -8,8 +8,10 @@ *********************************************************************/ -#ifndef __A2BUS_RAMCARD16K__ -#define __A2BUS_RAMCARD16K__ +#ifndef MAME_BUS_A2BUS_RAMCARD16K_H +#define MAME_BUS_A2BUS_RAMCARD16K_H + +#pragma once #include "a2bus.h" @@ -23,10 +25,11 @@ class a2bus_ramcard_device: { public: // construction/destruction - a2bus_ramcard_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); a2bus_ramcard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); protected: + a2bus_ramcard_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; virtual void device_reset() override; @@ -49,6 +52,6 @@ private: }; // device type definition -extern const device_type A2BUS_RAMCARD16K; +DECLARE_DEVICE_TYPE(A2BUS_RAMCARD16K, a2bus_ramcard_device) -#endif /* __A2BUS_RAMCARD16K__ */ +#endif // MAME_BUS_A2BUS_RAMCARD16K_H diff --git a/src/devices/bus/a2bus/timemasterho.cpp b/src/devices/bus/a2bus/timemasterho.cpp index 7eee31eb768..27951e7d635 100644 --- a/src/devices/bus/a2bus/timemasterho.cpp +++ b/src/devices/bus/a2bus/timemasterho.cpp @@ -46,7 +46,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type A2BUS_TIMEMASTERHO = device_creator; +DEFINE_DEVICE_TYPE(A2BUS_TIMEMASTERHO, a2bus_timemasterho_device, "a2tmstho", "Applied Engineering TimeMaster H.O.") #define TIMEMASTER_ROM_REGION "timemst_rom" #define TIMEMASTER_PIA_TAG "timemst_pia" @@ -122,8 +122,8 @@ const tiny_rom_entry *a2bus_timemasterho_device::device_rom_region() const // LIVE DEVICE //************************************************************************** -a2bus_timemasterho_device::a2bus_timemasterho_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), +a2bus_timemasterho_device::a2bus_timemasterho_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), device_a2bus_card_interface(mconfig, *this), m_pia(*this, TIMEMASTER_PIA_TAG), m_msm5832(*this, TIMEMASTER_M5832_TAG), @@ -133,11 +133,7 @@ a2bus_timemasterho_device::a2bus_timemasterho_device(const machine_config &mconf } a2bus_timemasterho_device::a2bus_timemasterho_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, A2BUS_TIMEMASTERHO, "Applied Engineering TimeMaster H.O.", tag, owner, clock, "a2tmstho", __FILE__), - device_a2bus_card_interface(mconfig, *this), - m_pia(*this, TIMEMASTER_PIA_TAG), - m_msm5832(*this, TIMEMASTER_M5832_TAG), - m_dsw1(*this, "DSW1"), m_rom(nullptr), m_irqa(false), m_irqb(false) + a2bus_timemasterho_device(mconfig, A2BUS_TIMEMASTERHO, tag, owner, clock) { m_started = false; } diff --git a/src/devices/bus/a2bus/timemasterho.h b/src/devices/bus/a2bus/timemasterho.h index c05d95571c7..ad6457ddf03 100644 --- a/src/devices/bus/a2bus/timemasterho.h +++ b/src/devices/bus/a2bus/timemasterho.h @@ -8,8 +8,10 @@ *********************************************************************/ -#ifndef __A2BUS_TIMEMASTERHO__ -#define __A2BUS_TIMEMASTERHO__ +#ifndef MAME_BUS_A2BUS_TIMEMASTERHO_H +#define MAME_BUS_A2BUS_TIMEMASTERHO_H + +#pragma once #include "a2bus.h" #include "machine/6821pia.h" @@ -25,7 +27,6 @@ class a2bus_timemasterho_device: { public: // construction/destruction - a2bus_timemasterho_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); a2bus_timemasterho_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides @@ -39,6 +40,8 @@ public: DECLARE_WRITE_LINE_MEMBER(pia_irqb_w); protected: + a2bus_timemasterho_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; virtual void device_reset() override; @@ -61,6 +64,6 @@ private: }; // device type definition -extern const device_type A2BUS_TIMEMASTERHO; +DECLARE_DEVICE_TYPE(A2BUS_TIMEMASTERHO, a2bus_timemasterho_device) -#endif /* __A2BUS_TIMEMASTERHO__ */ +#endif // MAME_BUS_A2BUS_TIMEMASTERHO_H diff --git a/src/devices/bus/a7800/a78_carts.h b/src/devices/bus/a7800/a78_carts.h index c115d8f45d9..dc9abffbbe2 100644 --- a/src/devices/bus/a7800/a78_carts.h +++ b/src/devices/bus/a7800/a78_carts.h @@ -1,8 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __A78_CARTS_H -#define __A78_CARTS_H +#ifndef MAME_BUS_A7800_A78_CARTS_H +#define MAME_BUS_A7800_A78_CARTS_H +#pragma once #include "rom.h" #include "xboard.h" @@ -36,4 +37,4 @@ SLOT_INTERFACE_END // supported devices SLOT_INTERFACE_EXTERN(a78_cart); -#endif +#endif // MAME_BUS_A7800_A78_CARTS_H diff --git a/src/devices/bus/a7800/a78_slot.cpp b/src/devices/bus/a7800/a78_slot.cpp index 878e5c94dd4..78749155cbb 100644 --- a/src/devices/bus/a7800/a78_slot.cpp +++ b/src/devices/bus/a7800/a78_slot.cpp @@ -33,7 +33,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type A78_CART_SLOT = device_creator; +DEFINE_DEVICE_TYPE(A78_CART_SLOT, a78_cart_slot_device, "a78_cart_slot", "Atari 7800 Cartridge Slot") //------------------------------------------------- @@ -112,10 +112,12 @@ void device_a78_cart_interface::nvram_alloc(uint32_t size) //------------------------------------------------- // a78_cart_slot_device - constructor //------------------------------------------------- -a78_cart_slot_device::a78_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, A78_CART_SLOT, "Atari 7800 Cartridge Slot", tag, owner, clock, "a78_cart_slot", __FILE__), - device_image_interface(mconfig, *this), - device_slot_interface(mconfig, *this), m_cart(nullptr), m_type(0) +a78_cart_slot_device::a78_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, A78_CART_SLOT, tag, owner, clock) + , device_image_interface(mconfig, *this) + , device_slot_interface(mconfig, *this) + , m_cart(nullptr) + , m_type(0) { } diff --git a/src/devices/bus/a7800/a78_slot.h b/src/devices/bus/a7800/a78_slot.h index 7164b579d8d..e498f416e54 100644 --- a/src/devices/bus/a7800/a78_slot.h +++ b/src/devices/bus/a7800/a78_slot.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __A78_SLOT_H -#define __A78_SLOT_H +#ifndef MAME_BUS_A7800_A78_SLOT_H +#define MAME_BUS_A7800_A78_SLOT_H + +#pragma once #include "softlist_dev.h" @@ -43,7 +45,6 @@ class device_a78_cart_interface : public device_slot_card_interface { public: // construction/destruction - device_a78_cart_interface(const machine_config &mconfig, device_t &device); virtual ~device_a78_cart_interface(); // memory accessor @@ -67,6 +68,8 @@ public: uint32_t get_nvram_size() { return m_nvram.size(); } protected: + device_a78_cart_interface(const machine_config &mconfig, device_t &device); + // internal state uint8_t *m_rom; uint32_t m_rom_size; @@ -137,7 +140,7 @@ private: // device type definition -extern const device_type A78_CART_SLOT; +DECLARE_DEVICE_TYPE(A78_CART_SLOT, a78_cart_slot_device) /*************************************************************************** @@ -151,4 +154,4 @@ extern const device_type A78_CART_SLOT; MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, false) -#endif +#endif // MAME_BUS_A7800_A78_SLOT_H diff --git a/src/devices/bus/a7800/cpuwiz.cpp b/src/devices/bus/a7800/cpuwiz.cpp index cc63d13b9c8..69506ae5d84 100644 --- a/src/devices/bus/a7800/cpuwiz.cpp +++ b/src/devices/bus/a7800/cpuwiz.cpp @@ -35,32 +35,32 @@ // constructor //------------------------------------------------- -const device_type A78_ROM_VERSABOARD = device_creator; -const device_type A78_ROM_MEGACART = device_creator; +DEFINE_DEVICE_TYPE(A78_ROM_VERSABOARD, a78_versaboard_device, "a78_versaboard", "Atari 7800 VersaBoard Cart") +DEFINE_DEVICE_TYPE(A78_ROM_MEGACART, a78_megacart_device, "a78_megacart", "Atari 7800 MegaCart+") -const device_type A78_ROM_P450_VB = device_creator; +DEFINE_DEVICE_TYPE(A78_ROM_P450_VB, a78_rom_p450_vb_device, "a78_versapokey", "Atari 7800 VersaBoard + POKEY @ 0x450 Cart") -a78_versaboard_device::a78_versaboard_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : a78_rom_sg_device(mconfig, type, name, tag, owner, clock, shortname, source), m_ram_bank(0) - { +a78_versaboard_device::a78_versaboard_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : a78_rom_sg_device(mconfig, type, tag, owner, clock), m_ram_bank(0) +{ } a78_versaboard_device::a78_versaboard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : a78_rom_sg_device(mconfig, A78_ROM_VERSABOARD, "Atari 7800 VersaBoard Cart", tag, owner, clock, "a78_versaboard", __FILE__), m_ram_bank(0) - { + : a78_versaboard_device(mconfig, A78_ROM_VERSABOARD, tag, owner, clock) +{ } a78_megacart_device::a78_megacart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : a78_versaboard_device(mconfig, A78_ROM_MEGACART, "Atari 7800 MegaCart+", tag, owner, clock, "a78_megacart", __FILE__) + : a78_versaboard_device(mconfig, A78_ROM_MEGACART, tag, owner, clock) { } a78_rom_p450_vb_device::a78_rom_p450_vb_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : a78_versaboard_device(mconfig, A78_ROM_P450_VB, "Atari 7800 VersaBoard + POKEY @ 0x0450 Cart", tag, owner, clock, "a78_versapokey", __FILE__), - m_pokey450(*this, "pokey450") + : a78_versaboard_device(mconfig, A78_ROM_P450_VB, tag, owner, clock) + , m_pokey450(*this, "pokey450") { } diff --git a/src/devices/bus/a7800/cpuwiz.h b/src/devices/bus/a7800/cpuwiz.h index 7d288055aaa..2357064428c 100644 --- a/src/devices/bus/a7800/cpuwiz.h +++ b/src/devices/bus/a7800/cpuwiz.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __A78_CPUWIZ_H -#define __A78_CPUWIZ_H +#ifndef MAME_BUS_A7800_CPUWIZ_H +#define MAME_BUS_A7800_CPUWIZ_H + +#pragma once #include "a78_slot.h" #include "rom.h" @@ -13,7 +15,6 @@ class a78_versaboard_device : public a78_rom_sg_device { public: // construction/destruction - a78_versaboard_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); a78_versaboard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // device-level overrides @@ -25,6 +26,8 @@ public: virtual DECLARE_WRITE8_MEMBER(write_40xx) override; protected: + a78_versaboard_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + int m_ram_bank; }; @@ -66,9 +69,9 @@ protected: // device type definition -extern const device_type A78_ROM_VERSABOARD; -extern const device_type A78_ROM_MEGACART; +DECLARE_DEVICE_TYPE(A78_ROM_VERSABOARD, a78_versaboard_device) +DECLARE_DEVICE_TYPE(A78_ROM_MEGACART, a78_megacart_device) -extern const device_type A78_ROM_P450_VB; +DECLARE_DEVICE_TYPE(A78_ROM_P450_VB, a78_rom_p450_vb_device) -#endif +#endif // MAME_BUS_A7800_CPUWIZ_H diff --git a/src/devices/bus/a7800/hiscore.cpp b/src/devices/bus/a7800/hiscore.cpp index e78147c2f46..2241d092597 100644 --- a/src/devices/bus/a7800/hiscore.cpp +++ b/src/devices/bus/a7800/hiscore.cpp @@ -17,12 +17,12 @@ // constructor //------------------------------------------------- -const device_type A78_HISCORE = device_creator; +DEFINE_DEVICE_TYPE(A78_HISCORE, a78_hiscore_device, "a78_hiscore", "Atari 7800 High Score Cart") a78_hiscore_device::a78_hiscore_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : a78_rom_device(mconfig, A78_HISCORE, "Atari 7800 High Score Cart", tag, owner, clock, "a78_highscore", __FILE__), - m_hscslot(*this, "hsc_slot") + : a78_rom_device(mconfig, A78_HISCORE, tag, owner, clock) + , m_hscslot(*this, "hsc_slot") { } diff --git a/src/devices/bus/a7800/hiscore.h b/src/devices/bus/a7800/hiscore.h index 2ce16b319c6..4f7606a85ff 100644 --- a/src/devices/bus/a7800/hiscore.h +++ b/src/devices/bus/a7800/hiscore.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __A78_HISCORE_H -#define __A78_HISCORE_H +#ifndef MAME_BUS_A7800_HISCORE_H +#define MAME_BUS_A7800_HISCORE_H + +#pragma once #include "a78_slot.h" #include "rom.h" @@ -34,7 +36,7 @@ protected: // device type definition -extern const device_type A78_HISCORE; +DECLARE_DEVICE_TYPE(A78_HISCORE, a78_hiscore_device) -#endif +#endif // MAME_BUS_A7800_HISCORE_H diff --git a/src/devices/bus/a7800/rom.cpp b/src/devices/bus/a7800/rom.cpp index 8604ddf92f5..1b624fdb516 100644 --- a/src/devices/bus/a7800/rom.cpp +++ b/src/devices/bus/a7800/rom.cpp @@ -27,131 +27,131 @@ // constructor //------------------------------------------------- -const device_type A78_ROM = device_creator; -const device_type A78_ROM_SG = device_creator; -const device_type A78_ROM_POKEY = device_creator; -const device_type A78_ROM_SG_POKEY = device_creator; -const device_type A78_ROM_SG_RAM = device_creator; -const device_type A78_ROM_SG9 = device_creator; -const device_type A78_ROM_MRAM = device_creator; -const device_type A78_ROM_ABSOLUTE = device_creator; -const device_type A78_ROM_ACTIVISION = device_creator; +DEFINE_DEVICE_TYPE(A78_ROM, a78_rom_device, "a78_rom", "Atari 7800 ROM Carts w/no Bankswitch") +DEFINE_DEVICE_TYPE(A78_ROM_SG, a78_rom_sg_device, "a78_rom_sg", "Atari 7800 ROM Carts w/SuperGame Bankswitch") +DEFINE_DEVICE_TYPE(A78_ROM_POKEY, a78_rom_pokey_device, "a78_rom_pok", "Atari 7800 ROM Carts w/no Bankswitch + POKEY") +DEFINE_DEVICE_TYPE(A78_ROM_SG_POKEY, a78_rom_sg_pokey_device, "a78_rom_sgp", "Atari 7800 ROM Carts w/SuperGame Bankswitch + POKEY") +DEFINE_DEVICE_TYPE(A78_ROM_SG_RAM, a78_rom_sg_ram_device, "a78_rom_sgr", "Atari 7800 ROM Carts w/SuperGame Bankswitch + RAM") +DEFINE_DEVICE_TYPE(A78_ROM_MRAM, a78_rom_mram_device, "a78_rom_mram", "Atari 7800 ROM Carts + Mirror RAM") +DEFINE_DEVICE_TYPE(A78_ROM_SG9, a78_rom_sg9_device, "a78_rom_sg9", "Atari 7800 ROM Carts w/SuperGame 9Banks") +DEFINE_DEVICE_TYPE(A78_ROM_ABSOLUTE, a78_rom_abs_device, "a78_rom_abs", "Atari 7800 ROM Carts w/Absolute Bankswitch") +DEFINE_DEVICE_TYPE(A78_ROM_ACTIVISION, a78_rom_act_device, "a78_rom_act", "Atari 7800 ROM Carts w/Activision Bankswitch") +DEFINE_DEVICE_TYPE(A78_ROM_P450, a78_rom_p450_device, "a78_p450_t0", "Atari 7800 ROM Carts w/POKEY @ 0x0450") +DEFINE_DEVICE_TYPE(A78_ROM_P450_POKEY, a78_rom_p450_pokey_device, "a78_p450_t1", "Atari 7800 ROM Carts w/no Bankswitch + POKEY + POKEY @ 0x0450") +DEFINE_DEVICE_TYPE(A78_ROM_P450_SG_RAM, a78_rom_p450_sg_ram_device, "a78_p450_t6", "Atari 7800 ROM Carts w/SuperGame Bankswitch + RAM + POKEY @ 0x0450") +DEFINE_DEVICE_TYPE(A78_ROM_P450_SG9, a78_rom_p450_sg9_device, "a78_p450_ta", "Atari 7800 ROM Carts w/SuperGame 9Banks + POKEY @ 0x0450") -const device_type A78_ROM_P450 = device_creator; -const device_type A78_ROM_P450_POKEY = device_creator; -const device_type A78_ROM_P450_SG_RAM = device_creator; -const device_type A78_ROM_P450_SG9 = device_creator; - -a78_rom_device::a78_rom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_a78_cart_interface( mconfig, *this ) +a78_rom_device::a78_rom_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) + , device_a78_cart_interface( mconfig, *this ) { } a78_rom_device::a78_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, A78_ROM, "Atari 7800 ROM Carts w/no Bankswitch", tag, owner, clock, "a78_rom", __FILE__), - device_a78_cart_interface( mconfig, *this ) + : a78_rom_device(mconfig, A78_ROM, tag, owner, clock) { } -a78_rom_pokey_device::a78_rom_pokey_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : a78_rom_device(mconfig, type, name, tag, owner, clock, shortname, source), - m_pokey(*this, "pokey") +a78_rom_pokey_device::a78_rom_pokey_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : a78_rom_device(mconfig, type, tag, owner, clock) + , m_pokey(*this, "pokey") { } a78_rom_pokey_device::a78_rom_pokey_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : a78_rom_device(mconfig, A78_ROM_POKEY, "Atari 7800 ROM Carts w/no Bankswitch + POKEY", tag, owner, clock, "a78_rom_pok", __FILE__), - m_pokey(*this, "pokey") + : a78_rom_pokey_device(mconfig, A78_ROM_POKEY, tag, owner, clock) { } -a78_rom_mram_device::a78_rom_mram_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : a78_rom_device(mconfig, type, name, tag, owner, clock, shortname, source) +a78_rom_mram_device::a78_rom_mram_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : a78_rom_device(mconfig, type, tag, owner, clock) { } a78_rom_mram_device::a78_rom_mram_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : a78_rom_device(mconfig, A78_ROM_MRAM, "Atari 7800 ROM Carts + Mirror RAM", tag, owner, clock, "a78_rom_mram", __FILE__) + : a78_rom_mram_device(mconfig, A78_ROM_MRAM, tag, owner, clock) { } -a78_rom_sg_device::a78_rom_sg_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : a78_rom_device(mconfig, type, name, tag, owner, clock, shortname, source), m_bank(0) - { +a78_rom_sg_device::a78_rom_sg_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : a78_rom_device(mconfig, type, tag, owner, clock) + , m_bank(0) +{ } a78_rom_sg_device::a78_rom_sg_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : a78_rom_device(mconfig, A78_ROM_SG, "Atari 7800 ROM Carts w/SuperGame Bankswitch", tag, owner, clock, "a78_rom_sg", __FILE__), m_bank(0) - { + : a78_rom_sg_device(mconfig, A78_ROM_SG, tag, owner, clock) +{ } a78_rom_sg_pokey_device::a78_rom_sg_pokey_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : a78_rom_sg_device(mconfig, A78_ROM_SG_POKEY, "Atari 7800 ROM Carts w/SuperGame Bankswitch + POKEY", tag, owner, clock, "a78_rom_sgp", __FILE__), - m_pokey(*this, "pokey") + : a78_rom_sg_device(mconfig, A78_ROM_SG_POKEY, tag, owner, clock) + , m_pokey(*this, "pokey") { } -a78_rom_sg_ram_device::a78_rom_sg_ram_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : a78_rom_sg_device(mconfig, type, name, tag, owner, clock, shortname, source) +a78_rom_sg_ram_device::a78_rom_sg_ram_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : a78_rom_sg_device(mconfig, type, tag, owner, clock) { } a78_rom_sg_ram_device::a78_rom_sg_ram_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : a78_rom_sg_device(mconfig, A78_ROM_SG_RAM, "Atari 7800 ROM Carts w/SuperGame Bankswitch + RAM", tag, owner, clock, "a78_rom_sgr", __FILE__) + : a78_rom_sg_ram_device(mconfig, A78_ROM_SG_RAM, tag, owner, clock) { } -a78_rom_sg9_device::a78_rom_sg9_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : a78_rom_sg_device(mconfig, type, name, tag, owner, clock, shortname, source) +a78_rom_sg9_device::a78_rom_sg9_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : a78_rom_sg_device(mconfig, type, tag, owner, clock) { } a78_rom_sg9_device::a78_rom_sg9_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : a78_rom_sg_device(mconfig, A78_ROM_SG9, "Atari 7800 ROM Carts w/SuperGame 9Banks", tag, owner, clock, "a78_rom_sg9", __FILE__) + : a78_rom_sg9_device(mconfig, A78_ROM_SG9, tag, owner, clock) { } a78_rom_abs_device::a78_rom_abs_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : a78_rom_device(mconfig, A78_ROM_ABSOLUTE, "Atari 7800 ROM Carts w/Absolute Bankswitch", tag, owner, clock, "a78_rom_abs", __FILE__), m_bank(0) - { + : a78_rom_device(mconfig, A78_ROM_ABSOLUTE, tag, owner, clock) + , m_bank(0) +{ } a78_rom_act_device::a78_rom_act_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : a78_rom_device(mconfig, A78_ROM_ACTIVISION, "Atari 7800 ROM Carts w/Activision Bankswitch", tag, owner, clock, "a78_rom_act", __FILE__), m_bank(0) - { + : a78_rom_device(mconfig, A78_ROM_ACTIVISION, tag, owner, clock) + , m_bank(0) +{ } a78_rom_p450_device::a78_rom_p450_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : a78_rom_device(mconfig, A78_ROM_P450, "Atari 7800 ROM Carts w/POKEY @ 0x0450", tag, owner, clock, "a78_p450_t0", __FILE__), - m_pokey450(*this, "pokey450") + : a78_rom_device(mconfig, A78_ROM_P450, tag, owner, clock) + , m_pokey450(*this, "pokey450") { } a78_rom_p450_pokey_device::a78_rom_p450_pokey_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : a78_rom_pokey_device(mconfig, A78_ROM_P450_POKEY, "Atari 7800 ROM Carts w/no Bankswitch + POKEY + POKEY @ 0x0450", tag, owner, clock, "a78_p450_t1", __FILE__), - m_pokey450(*this, "pokey450") + : a78_rom_pokey_device(mconfig, A78_ROM_P450_POKEY, tag, owner, clock) + , m_pokey450(*this, "pokey450") { } a78_rom_p450_sg_ram_device::a78_rom_p450_sg_ram_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : a78_rom_sg_ram_device(mconfig, A78_ROM_P450_SG_RAM, "Atari 7800 ROM Carts w/SuperGame Bankswitch + RAM + POKEY @ 0x0450", tag, owner, clock, "a78_p450_t6", __FILE__), - m_pokey450(*this, "pokey450") + : a78_rom_sg_ram_device(mconfig, A78_ROM_P450_SG_RAM, tag, owner, clock) + , m_pokey450(*this, "pokey450") { } a78_rom_p450_sg9_device::a78_rom_p450_sg9_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : a78_rom_sg9_device(mconfig, A78_ROM_P450_SG9, "Atari 7800 ROM Carts w/SuperGame 9Banks + POKEY @ 0x0450", tag, owner, clock, "a78_p450_ta", __FILE__), - m_pokey450(*this, "pokey450") + : a78_rom_sg9_device(mconfig, A78_ROM_P450_SG9, tag, owner, clock) + , m_pokey450(*this, "pokey450") { } diff --git a/src/devices/bus/a7800/rom.h b/src/devices/bus/a7800/rom.h index 5036b530aae..9e9a971e0d5 100644 --- a/src/devices/bus/a7800/rom.h +++ b/src/devices/bus/a7800/rom.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __A78_ROM_H -#define __A78_ROM_H +#ifndef MAME_BUS_A7800_ROM_H +#define MAME_BUS_A7800_ROM_H + +#pragma once #include "a78_slot.h" #include "sound/pokey.h" @@ -14,15 +16,17 @@ class a78_rom_device : public device_t, { public: // construction/destruction - a78_rom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); a78_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + // reading and writing + virtual DECLARE_READ8_MEMBER(read_40xx) override; + +protected: + a78_rom_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; - - // reading and writing - virtual DECLARE_READ8_MEMBER(read_40xx) override; }; @@ -32,7 +36,6 @@ class a78_rom_pokey_device : public a78_rom_device { public: // construction/destruction - a78_rom_pokey_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); a78_rom_pokey_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // device-level overrides @@ -43,6 +46,8 @@ public: virtual DECLARE_WRITE8_MEMBER(write_40xx) override; protected: + a78_rom_pokey_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + required_device m_pokey; }; @@ -53,12 +58,14 @@ class a78_rom_mram_device : public a78_rom_device { public: // construction/destruction - a78_rom_mram_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); a78_rom_mram_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // reading and writing virtual DECLARE_READ8_MEMBER(read_40xx) override; virtual DECLARE_WRITE8_MEMBER(write_40xx) override; + +protected: + a78_rom_mram_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); }; @@ -68,18 +75,19 @@ class a78_rom_sg_device : public a78_rom_device { public: // construction/destruction - a78_rom_sg_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); a78_rom_sg_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - // reading and writing virtual DECLARE_READ8_MEMBER(read_40xx) override; virtual DECLARE_WRITE8_MEMBER(write_40xx) override; protected: + a78_rom_sg_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + int m_bank; }; @@ -110,12 +118,14 @@ class a78_rom_sg_ram_device : public a78_rom_sg_device { public: // construction/destruction - a78_rom_sg_ram_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); a78_rom_sg_ram_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // reading and writing virtual DECLARE_READ8_MEMBER(read_40xx) override; virtual DECLARE_WRITE8_MEMBER(write_40xx) override; + +protected: + a78_rom_sg_ram_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); }; @@ -125,12 +135,14 @@ class a78_rom_sg9_device : public a78_rom_sg_device { public: // construction/destruction - a78_rom_sg9_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); a78_rom_sg9_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // reading and writing virtual DECLARE_READ8_MEMBER(read_40xx) override; virtual DECLARE_WRITE8_MEMBER(write_40xx) override; + +protected: + a78_rom_sg9_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); }; @@ -142,15 +154,15 @@ public: // construction/destruction a78_rom_abs_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - // reading and writing virtual DECLARE_READ8_MEMBER(read_40xx) override; virtual DECLARE_WRITE8_MEMBER(write_40xx) override; protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + int m_bank; }; @@ -163,15 +175,15 @@ public: // construction/destruction a78_rom_act_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - // reading and writing virtual DECLARE_READ8_MEMBER(read_40xx) override; virtual DECLARE_WRITE8_MEMBER(write_40xx) override; protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + int m_bank; }; @@ -258,20 +270,20 @@ protected: // device type definition -extern const device_type A78_ROM; -extern const device_type A78_ROM_SG; -extern const device_type A78_ROM_POKEY; -extern const device_type A78_ROM_SG_POKEY; -extern const device_type A78_ROM_SG_RAM; -extern const device_type A78_ROM_MRAM; -extern const device_type A78_ROM_SG9; -extern const device_type A78_ROM_ABSOLUTE; -extern const device_type A78_ROM_ACTIVISION; +DECLARE_DEVICE_TYPE(A78_ROM, a78_rom_device) +DECLARE_DEVICE_TYPE(A78_ROM_SG, a78_rom_sg_device) +DECLARE_DEVICE_TYPE(A78_ROM_POKEY, a78_rom_pokey_device) +DECLARE_DEVICE_TYPE(A78_ROM_SG_POKEY, a78_rom_sg_pokey_device) +DECLARE_DEVICE_TYPE(A78_ROM_SG_RAM, a78_rom_sg_ram_device) +DECLARE_DEVICE_TYPE(A78_ROM_MRAM, a78_rom_mram_device) +DECLARE_DEVICE_TYPE(A78_ROM_SG9, a78_rom_sg9_device) +DECLARE_DEVICE_TYPE(A78_ROM_ABSOLUTE, a78_rom_abs_device) +DECLARE_DEVICE_TYPE(A78_ROM_ACTIVISION, a78_rom_act_device) // PCB variants with a POKEY at $0450 -extern const device_type A78_ROM_P450; -extern const device_type A78_ROM_P450_POKEY; -extern const device_type A78_ROM_P450_SG_RAM; -extern const device_type A78_ROM_P450_SG9; +DECLARE_DEVICE_TYPE(A78_ROM_P450, a78_rom_p450_device) +DECLARE_DEVICE_TYPE(A78_ROM_P450_POKEY, a78_rom_p450_pokey_device) +DECLARE_DEVICE_TYPE(A78_ROM_P450_SG_RAM, a78_rom_p450_sg_ram_device) +DECLARE_DEVICE_TYPE(A78_ROM_P450_SG9, a78_rom_p450_sg9_device) -#endif +#endif // MAME_BUS_A7800_ROM_H diff --git a/src/devices/bus/a7800/xboard.cpp b/src/devices/bus/a7800/xboard.cpp index 5e3737aee61..c07e85e7cd0 100644 --- a/src/devices/bus/a7800/xboard.cpp +++ b/src/devices/bus/a7800/xboard.cpp @@ -53,30 +53,29 @@ // constructor //------------------------------------------------- -const device_type A78_XBOARD = device_creator; -const device_type A78_XM = device_creator; +DEFINE_DEVICE_TYPE(A78_XBOARD, a78_xboard_device, "a78_xboard", "Atari 7800 XBoarD expansion") +DEFINE_DEVICE_TYPE(A78_XM, a78_xm_device, "a78_xm", "Atari 7800 XM expansion module") -a78_xboard_device::a78_xboard_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : a78_rom_device(mconfig, type, name, tag, owner, clock, shortname, source), - m_xbslot(*this, "xb_slot"), - m_pokey(*this, "xb_pokey"), m_reg(0), m_ram_bank(0) - { +a78_xboard_device::a78_xboard_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : a78_rom_device(mconfig, type, tag, owner, clock) + , m_xbslot(*this, "xb_slot") + , m_pokey(*this, "xb_pokey") + , m_reg(0), m_ram_bank(0) +{ } a78_xboard_device::a78_xboard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : a78_rom_device(mconfig, A78_XBOARD, "Atari 7800 XBoarD expansion", tag, owner, clock, "a78_xboard", __FILE__), - m_xbslot(*this, "xb_slot"), - m_pokey(*this, "xb_pokey"), m_reg(0), m_ram_bank(0) - { + : a78_xboard_device(mconfig, A78_XBOARD, tag, owner, clock) +{ } a78_xm_device::a78_xm_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : a78_xboard_device(mconfig, A78_XM, "Atari 7800 XM expansion module", tag, owner, clock, "a78_xm", __FILE__), - m_ym(*this, "xm_ym2151"), m_ym_enabled(0) - { + : a78_xboard_device(mconfig, A78_XM, tag, owner, clock) + , m_ym(*this, "xm_ym2151"), m_ym_enabled(0) +{ } diff --git a/src/devices/bus/a7800/xboard.h b/src/devices/bus/a7800/xboard.h index 0ab9884a957..514109e6d29 100644 --- a/src/devices/bus/a7800/xboard.h +++ b/src/devices/bus/a7800/xboard.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __A78_XBOARD_H -#define __A78_XBOARD_H +#ifndef MAME_BUS_A7800_XBOARD_H +#define MAME_BUS_A7800_XBOARD_H + +#pragma once #include "a78_slot.h" #include "rom.h" @@ -15,13 +17,10 @@ class a78_xboard_device : public a78_rom_device { public: // construction/destruction - a78_xboard_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); a78_xboard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // device-level overrides - virtual void device_start() override; virtual machine_config_constructor device_mconfig_additions() const override; - virtual void device_reset() override; // reading and writing virtual DECLARE_READ8_MEMBER(read_04xx) override; @@ -30,6 +29,11 @@ public: virtual DECLARE_WRITE8_MEMBER(write_40xx) override; protected: + a78_xboard_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + virtual void device_start() override; + virtual void device_reset() override; + required_device m_xbslot; required_device m_pokey; int m_reg, m_ram_bank; @@ -45,9 +49,7 @@ public: a78_xm_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // device-level overrides - virtual void device_start() override; virtual machine_config_constructor device_mconfig_additions() const override; - virtual void device_reset() override; // reading and writing virtual DECLARE_READ8_MEMBER(read_04xx) override; @@ -57,6 +59,9 @@ public: virtual DECLARE_READ8_MEMBER(read_30xx) override; protected: + virtual void device_start() override; + virtual void device_reset() override; + required_device m_ym; int m_ym_enabled; }; @@ -64,8 +69,8 @@ protected: // device type definition -extern const device_type A78_XBOARD; -extern const device_type A78_XM; +DECLARE_DEVICE_TYPE(A78_XBOARD, a78_xboard_device) +DECLARE_DEVICE_TYPE(A78_XM, a78_xm_device) -#endif +#endif // MAME_BUS_A7800_XBOARD_H diff --git a/src/devices/bus/a800/a800_carts.h b/src/devices/bus/a800/a800_carts.h index c328fa61685..6d6e68ad6c3 100644 --- a/src/devices/bus/a800/a800_carts.h +++ b/src/devices/bus/a800/a800_carts.h @@ -1,8 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __A800_CARTS_H -#define __A800_CARTS_H +#ifndef MAME_BUS_A800_A800_CARTS_H +#define MAME_BUS_A800_A800_CARTS_H +#pragma once #include "rom.h" @@ -46,4 +47,4 @@ static SLOT_INTERFACE_START(a5200_carts) SLOT_INTERFACE_INTERNAL("a5200_bbsb", A5200_ROM_BBSB) SLOT_INTERFACE_END -#endif +#endif // MAME_BUS_A800_A800_CARTS_H diff --git a/src/devices/bus/a800/a800_slot.cpp b/src/devices/bus/a800/a800_slot.cpp index bfe53f72041..9307efaf209 100644 --- a/src/devices/bus/a800/a800_slot.cpp +++ b/src/devices/bus/a800/a800_slot.cpp @@ -29,9 +29,9 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type A800_CART_SLOT = device_creator; -const device_type A5200_CART_SLOT = device_creator; -const device_type XEGS_CART_SLOT = device_creator; +DEFINE_DEVICE_TYPE(A800_CART_SLOT, a800_cart_slot_device, "a800_cart_slot", "Atari 8bit Cartridge Slot") +DEFINE_DEVICE_TYPE(A5200_CART_SLOT, a5200_cart_slot_device, "a5200_cart_slot", "Atari 5200 Cartridge Slot") +DEFINE_DEVICE_TYPE(XEGS_CART_SLOT, xegs_cart_slot_device, "xegs_cart_slot", "Atari XEGS Cartridge Slot") //------------------------------------------------- @@ -101,29 +101,27 @@ void device_a800_cart_interface::nvram_alloc(uint32_t size) //------------------------------------------------- // ****_cart_slot_device - constructor //------------------------------------------------- -a800_cart_slot_device::a800_cart_slot_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, __FILE__), - device_image_interface(mconfig, *this), - device_slot_interface(mconfig, *this), m_cart(nullptr), m_type(0) +a800_cart_slot_device::a800_cart_slot_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), + device_image_interface(mconfig, *this), + device_slot_interface(mconfig, *this), m_cart(nullptr), m_type(0) { } a800_cart_slot_device::a800_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, A800_CART_SLOT, "Atari 8bit Cartridge Slot", tag, owner, clock, "a800_cart_slot", __FILE__), - device_image_interface(mconfig, *this), - device_slot_interface(mconfig, *this), m_cart(nullptr), m_type(0) + a800_cart_slot_device(mconfig, A800_CART_SLOT, tag, owner, clock) { } a5200_cart_slot_device::a5200_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - a800_cart_slot_device(mconfig, A5200_CART_SLOT, "Atari 5200 Cartridge Slot", tag, owner, clock, "a5200_cart_slot", __FILE__) + a800_cart_slot_device(mconfig, A5200_CART_SLOT, tag, owner, clock) { } xegs_cart_slot_device::xegs_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - a800_cart_slot_device(mconfig, XEGS_CART_SLOT, "Atari XEGS Cartridge Slot", tag, owner, clock, "xegs_cart_slot", __FILE__) + a800_cart_slot_device(mconfig, XEGS_CART_SLOT, tag, owner, clock) { } diff --git a/src/devices/bus/a800/a800_slot.h b/src/devices/bus/a800/a800_slot.h index 66d8bb0f745..569d912329c 100644 --- a/src/devices/bus/a800/a800_slot.h +++ b/src/devices/bus/a800/a800_slot.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __A800_SLOT_H -#define __A800_SLOT_H +#ifndef MAME_BUS_A800_A800_SLOT_H +#define MAME_BUS_A800_A800_SLOT_H + +#pragma once #include "softlist_dev.h" @@ -49,7 +51,6 @@ class device_a800_cart_interface : public device_slot_card_interface { public: // construction/destruction - device_a800_cart_interface(const machine_config &mconfig, device_t &device); virtual ~device_a800_cart_interface(); // memory accessor @@ -69,6 +70,8 @@ public: uint32_t get_nvram_size() { return m_nvram.size(); } protected: + device_a800_cart_interface(const machine_config &mconfig, device_t &device); + // internal state uint8_t *m_rom; uint32_t m_rom_size; @@ -87,13 +90,9 @@ class a800_cart_slot_device : public device_t, { public: // construction/destruction - a800_cart_slot_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); a800_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual ~a800_cart_slot_device(); - // device-level overrides - virtual void device_start() override; - // image-level overrides virtual image_init_result call_load() override; virtual void call_unload() override; @@ -121,6 +120,12 @@ public: virtual DECLARE_WRITE8_MEMBER(write_80xx); virtual DECLARE_WRITE8_MEMBER(write_d5xx); +protected: + a800_cart_slot_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual void device_start() override; + private: device_a800_cart_interface* m_cart; int m_type; @@ -161,9 +166,9 @@ public: }; // device type definition -extern const device_type A800_CART_SLOT; -extern const device_type A5200_CART_SLOT; -extern const device_type XEGS_CART_SLOT; +DECLARE_DEVICE_TYPE(A800_CART_SLOT, a800_cart_slot_device) +DECLARE_DEVICE_TYPE(A5200_CART_SLOT, a5200_cart_slot_device) +DECLARE_DEVICE_TYPE(XEGS_CART_SLOT, xegs_cart_slot_device) /*************************************************************************** @@ -185,4 +190,4 @@ extern const device_type XEGS_CART_SLOT; MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, false) -#endif +#endif // MAME_BUS_A800_A800_SLOT_H diff --git a/src/devices/bus/a800/a8sio.cpp b/src/devices/bus/a800/a8sio.cpp index 403ea833bb0..cfbef3b47e4 100644 --- a/src/devices/bus/a800/a8sio.cpp +++ b/src/devices/bus/a800/a8sio.cpp @@ -39,7 +39,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type A8SIO_SLOT = device_creator; +DEFINE_DEVICE_TYPE(A8SIO_SLOT, a8sio_slot_device, "a8sio_slot", "Atari 8 bit SIO Slot") //************************************************************************** // LIVE DEVICE @@ -49,14 +49,13 @@ const device_type A8SIO_SLOT = device_creator; // a8sio_slot_device - constructor //------------------------------------------------- a8sio_slot_device::a8sio_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, A8SIO_SLOT, "Atari 8 bit SIO Slot", tag, owner, clock, "a8sio_slot", __FILE__) - , device_slot_interface(mconfig, *this), m_a8sio_tag(nullptr), m_a8sio_slottag(nullptr) + : a8sio_slot_device(mconfig, A8SIO_SLOT, tag, owner, clock) { } -a8sio_slot_device::a8sio_slot_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_slot_interface(mconfig, *this), m_a8sio_tag(nullptr), m_a8sio_slottag(nullptr) +a8sio_slot_device::a8sio_slot_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), + device_slot_interface(mconfig, *this), m_a8sio_tag(nullptr), m_a8sio_slottag(nullptr) { } @@ -87,7 +86,7 @@ void a8sio_slot_device::device_start() // GLOBAL VARIABLES //************************************************************************** -const device_type A8SIO = device_creator; +DEFINE_DEVICE_TYPE(A8SIO, a8sio_device, "a8sio", "Atari 8 bit SIO") //************************************************************************** @@ -99,15 +98,12 @@ const device_type A8SIO = device_creator; //------------------------------------------------- a8sio_device::a8sio_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, A8SIO, "Atari 8 biot SIO", tag, owner, clock, "a8sio", __FILE__) - , m_out_clock_in_cb(*this) - , m_out_data_in_cb(*this) - , m_out_audio_in_cb(*this), m_device(nullptr) + : a8sio_device(mconfig, A8SIO, tag, owner, clock) { } -a8sio_device::a8sio_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source) +a8sio_device::a8sio_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) , m_out_clock_in_cb(*this) , m_out_data_in_cb(*this) , m_out_audio_in_cb(*this), m_device(nullptr) diff --git a/src/devices/bus/a800/a8sio.h b/src/devices/bus/a800/a8sio.h index 2684a3d3c28..31d853ec633 100644 --- a/src/devices/bus/a800/a8sio.h +++ b/src/devices/bus/a800/a8sio.h @@ -30,10 +30,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_BUS_A800_A8SIO_H +#define MAME_BUS_A800_A8SIO_H -#ifndef __A8SIO_H_ -#define __A8SIO_H_ +#pragma once //************************************************************************** @@ -55,15 +55,16 @@ class a8sio_slot_device : public device_t, public: // construction/destruction a8sio_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - a8sio_slot_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - - // device-level overrides - virtual void device_start() override; // inline configuration static void static_set_a8sio_slot(device_t &device, const char *tag, const char *slottag); protected: + a8sio_slot_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual void device_start() override; + // configuration const char *m_a8sio_tag; const char *m_a8sio_slottag; @@ -71,7 +72,7 @@ protected: // device type definition -extern const device_type A8SIO_SLOT; +DECLARE_DEVICE_TYPE(A8SIO_SLOT, a8sio_slot_device) class device_a8sio_card_interface; @@ -81,12 +82,11 @@ class a8sio_device : public device_t public: // construction/destruction a8sio_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - a8sio_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); // inline configuration - template static devcb_base &set_clock_in_callback(device_t &device, _Object object) { return downcast(device).m_out_clock_in_cb.set_callback(object); } - template static devcb_base &set_data_in_callback(device_t &device, _Object object) { return downcast(device).m_out_data_in_cb.set_callback(object); } - template static devcb_base &set_audio_in_callback(device_t &device, _Object object) { return downcast(device).m_out_audio_in_cb.set_callback(object); } + template static devcb_base &set_clock_in_callback(device_t &device, Object &&cb) { return downcast(device).m_out_clock_in_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_data_in_callback(device_t &device, Object &&cb) { return downcast(device).m_out_data_in_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_audio_in_callback(device_t &device, Object &&cb) { return downcast(device).m_out_audio_in_cb.set_callback(std::forward(cb)); } void add_a8sio_card(device_a8sio_card_interface *card); device_a8sio_card_interface *get_a8sio_card(); @@ -101,6 +101,8 @@ public: DECLARE_WRITE8_MEMBER( audio_in_w ); // pin 11 protected: + a8sio_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -122,7 +124,6 @@ class device_a8sio_card_interface : public device_slot_card_interface friend class a8sio_device; public: // construction/destruction - device_a8sio_card_interface(const machine_config &mconfig, device_t &device); virtual ~device_a8sio_card_interface(); void set_a8sio_device(); @@ -133,6 +134,8 @@ public: virtual DECLARE_WRITE_LINE_MEMBER( motor_w ); public: + device_a8sio_card_interface(const machine_config &mconfig, device_t &device); + a8sio_device *m_a8sio; const char *m_a8sio_tag; const char *m_a8sio_slottag; @@ -141,4 +144,4 @@ public: SLOT_INTERFACE_EXTERN(a8sio_cards); -#endif +#endif // MAME_BUS_A800_A8SIO_H diff --git a/src/devices/bus/a800/cassette.cpp b/src/devices/bus/a800/cassette.cpp index bb35bea187a..bd3ce3a30de 100644 --- a/src/devices/bus/a800/cassette.cpp +++ b/src/devices/bus/a800/cassette.cpp @@ -25,7 +25,7 @@ TODO: // GLOBAL VARIABLES //************************************************************************** -const device_type A8SIO_CASSETTE = device_creator; +DEFINE_DEVICE_TYPE(A8SIO_CASSETTE, a8sio_cassette_device, "a8sio_cass", "Atari 8 bit cassette") const device_timer_id TIMER_CASSETTE_READ = 1; static MACHINE_CONFIG_FRAGMENT( cassette ) @@ -45,19 +45,16 @@ machine_config_constructor a8sio_cassette_device::device_mconfig_additions() con //************************************************************************** a8sio_cassette_device::a8sio_cassette_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, A8SIO_CASSETTE, "Atari 8 bit cassette", tag, owner, clock, "a8sio_cass", __FILE__) - , device_a8sio_card_interface(mconfig, *this) - , m_cassette(*this, "cassette"), m_read_timer(nullptr) - , m_old_cass_signal(0) - , m_signal_count(0) + : a8sio_cassette_device(mconfig, A8SIO_CASSETTE, tag, owner, clock) { } -a8sio_cassette_device::a8sio_cassette_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source) +a8sio_cassette_device::a8sio_cassette_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) , device_a8sio_card_interface(mconfig, *this) - , m_cassette(*this, "cassette"), m_read_timer(nullptr) - , m_old_cass_signal(0) + , m_cassette(*this, "cassette") + , m_read_timer(nullptr) + , m_old_cass_signal(0) , m_signal_count(0) { } diff --git a/src/devices/bus/a800/cassette.h b/src/devices/bus/a800/cassette.h index 72d0f749ccc..0168a4b3a64 100644 --- a/src/devices/bus/a800/cassette.h +++ b/src/devices/bus/a800/cassette.h @@ -11,10 +11,10 @@ Known cassette players: ***************************************************************************/ -#pragma once +#ifndef MAME_BUS_A800_CASSETTE_H +#define MAME_BUS_A800_CASSETTE_H -#ifndef __A8SIO_CASSETTE_H_ -#define __A8SIO_CASSETTE_H_ +#pragma once #include "a8sio.h" @@ -28,7 +28,6 @@ class a8sio_cassette_device public: // construction/destruction a8sio_cassette_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - a8sio_cassette_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); // optional information overrides virtual machine_config_constructor device_mconfig_additions() const override; @@ -36,6 +35,8 @@ public: virtual DECLARE_WRITE_LINE_MEMBER( motor_w ) override; protected: + a8sio_cassette_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; virtual void device_reset() override; virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; @@ -48,7 +49,7 @@ protected: }; // device type definition -extern const device_type A8SIO_CASSETTE; +DECLARE_DEVICE_TYPE(A8SIO_CASSETTE, a8sio_cassette_device) -#endif +#endif // MAME_BUS_A800_CASSETTE_H diff --git a/src/devices/bus/a800/oss.cpp b/src/devices/bus/a800/oss.cpp index 6d0977cfdd3..70a9375ef28 100644 --- a/src/devices/bus/a800/oss.cpp +++ b/src/devices/bus/a800/oss.cpp @@ -15,34 +15,33 @@ // constructor //------------------------------------------------- -const device_type A800_ROM_OSS8K = device_creator; -const device_type A800_ROM_OSS34 = device_creator; -const device_type A800_ROM_OSS43 = device_creator; -const device_type A800_ROM_OSS91 = device_creator; +DEFINE_DEVICE_TYPE(A800_ROM_OSS8K, a800_rom_oss8k_device, "a800_oss8k", "Atari 800 ROM Carts OSS 8K") +DEFINE_DEVICE_TYPE(A800_ROM_OSS34, a800_rom_oss34_device, "a800_034m", "Atari 800 ROM Carts OSS-034M") +DEFINE_DEVICE_TYPE(A800_ROM_OSS43, a800_rom_oss43_device, "a800_043m", "Atari 800 ROM Carts OSS-043M") +DEFINE_DEVICE_TYPE(A800_ROM_OSS91, a800_rom_oss91_device, "a800_m091", "Atari 800 ROM Carts OSS-M091") a800_rom_oss8k_device::a800_rom_oss8k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : a800_rom_device(mconfig, A800_ROM_OSS8K, "Atari 800 ROM Carts OSS 8K", tag, owner, clock, "a800_oss8k", __FILE__), - m_bank(0) - { + : a800_rom_device(mconfig, A800_ROM_OSS8K, tag, owner, clock), m_bank(0) +{ } a800_rom_oss34_device::a800_rom_oss34_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : a800_rom_device(mconfig, A800_ROM_OSS34, "Atari 800 ROM Carts OSS-034M", tag, owner, clock, "a800_034m", __FILE__), m_bank(0) - { + : a800_rom_device(mconfig, A800_ROM_OSS34, tag, owner, clock), m_bank(0) +{ } a800_rom_oss43_device::a800_rom_oss43_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : a800_rom_device(mconfig, A800_ROM_OSS43, "Atari 800 ROM Carts OSS-043M", tag, owner, clock, "a800_043m", __FILE__), m_bank(0) - { + : a800_rom_device(mconfig, A800_ROM_OSS43, tag, owner, clock), m_bank(0) +{ } a800_rom_oss91_device::a800_rom_oss91_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : a800_rom_device(mconfig, A800_ROM_OSS91, "Atari 800 ROM Carts OSS-M091", tag, owner, clock, "a800_m091", __FILE__), m_bank(0) - { + : a800_rom_device(mconfig, A800_ROM_OSS91, tag, owner, clock), m_bank(0) +{ } diff --git a/src/devices/bus/a800/oss.h b/src/devices/bus/a800/oss.h index fef9ab5d939..367bd4f8f8d 100644 --- a/src/devices/bus/a800/oss.h +++ b/src/devices/bus/a800/oss.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __A800_OSS_H -#define __A800_OSS_H +#ifndef MAME_BUS_A800_OSS_H +#define MAME_BUS_A800_OSS_H + +#pragma once #include "rom.h" @@ -14,14 +16,14 @@ public: // construction/destruction a800_rom_oss8k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - virtual DECLARE_READ8_MEMBER(read_80xx) override; virtual DECLARE_WRITE8_MEMBER(write_d5xx) override; protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + int m_bank; }; @@ -34,14 +36,14 @@ public: // construction/destruction a800_rom_oss34_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - virtual DECLARE_READ8_MEMBER(read_80xx) override; virtual DECLARE_WRITE8_MEMBER(write_d5xx) override; protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + int m_bank; }; @@ -54,14 +56,14 @@ public: // construction/destruction a800_rom_oss43_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - virtual DECLARE_READ8_MEMBER(read_80xx) override; virtual DECLARE_WRITE8_MEMBER(write_d5xx) override; protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + int m_bank; }; @@ -74,24 +76,24 @@ public: // construction/destruction a800_rom_oss91_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - virtual DECLARE_READ8_MEMBER(read_80xx) override; virtual DECLARE_WRITE8_MEMBER(write_d5xx) override; protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + int m_bank; }; // device type definition -extern const device_type A800_ROM_OSS8K; -extern const device_type A800_ROM_OSS34; -extern const device_type A800_ROM_OSS43; -extern const device_type A800_ROM_OSS91; +DECLARE_DEVICE_TYPE(A800_ROM_OSS8K, a800_rom_oss8k_device) +DECLARE_DEVICE_TYPE(A800_ROM_OSS34, a800_rom_oss34_device) +DECLARE_DEVICE_TYPE(A800_ROM_OSS43, a800_rom_oss43_device) +DECLARE_DEVICE_TYPE(A800_ROM_OSS91, a800_rom_oss91_device) -#endif +#endif // MAME_BUS_A800_OSS_H diff --git a/src/devices/bus/a800/rom.cpp b/src/devices/bus/a800/rom.cpp index ff7730ecae9..f33c8776d52 100644 --- a/src/devices/bus/a800/rom.cpp +++ b/src/devices/bus/a800/rom.cpp @@ -18,82 +18,86 @@ // constructor //------------------------------------------------- -const device_type A800_ROM = device_creator; -const device_type A800_ROM_BBSB = device_creator; -const device_type A800_ROM_WILLIAMS = device_creator; -const device_type A800_ROM_EXPRESS = device_creator; -const device_type A800_ROM_TURBO = device_creator; -const device_type A800_ROM_TELELINK2 = device_creator; -const device_type A800_ROM_MICROCALC = device_creator; -const device_type XEGS_ROM = device_creator; -const device_type A5200_ROM_2CHIPS = device_creator; -const device_type A5200_ROM_BBSB = device_creator; +DEFINE_DEVICE_TYPE(A800_ROM, a800_rom_device, "a800_rom", "Atari 800 ROM Carts") +DEFINE_DEVICE_TYPE(A800_ROM_BBSB, a800_rom_bbsb_device, "a800_bbsb", "Atari 800 ROM Carts BBSB") +DEFINE_DEVICE_TYPE(A800_ROM_WILLIAMS, a800_rom_williams_device, "a800_williams", "Atari 800 64K ROM Carts Williams") +DEFINE_DEVICE_TYPE(A800_ROM_EXPRESS, a800_rom_express_device, "a800_express", "Atari 800 64K ROM Carts Express/Diamond") +DEFINE_DEVICE_TYPE(A800_ROM_TURBO, a800_rom_turbo_device, "a800_turbo", "Atari 800 64K ROM Carts Turbosoft") +DEFINE_DEVICE_TYPE(A800_ROM_TELELINK2, a800_rom_telelink2_device, "a800_tlink2", "Atari 800 64K ROM Cart Telelink II") +DEFINE_DEVICE_TYPE(A800_ROM_MICROCALC, a800_rom_microcalc_device, "a800_sitsa", "Atari 800 64K ROM Carts SITSA MicroCalc") +DEFINE_DEVICE_TYPE(XEGS_ROM, xegs_rom_device, "a800_xegs", "Atari XEGS 64K ROM Carts") +DEFINE_DEVICE_TYPE(A5200_ROM_2CHIPS, a5200_rom_2chips_device, "a5200_16k2c", "Atari 5200 ROM Cart 16K in 2 Chips") +DEFINE_DEVICE_TYPE(A5200_ROM_BBSB, a5200_rom_bbsb_device, "a5200_bbsb", "Atari 5200 ROM Cart BBSB") -a800_rom_device::a800_rom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_a800_cart_interface( mconfig, *this ) +a800_rom_device::a800_rom_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) + , device_a800_cart_interface( mconfig, *this ) { } a800_rom_device::a800_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, A800_ROM, "Atari 800 ROM Carts", tag, owner, clock, "a800_rom", __FILE__), - device_a800_cart_interface( mconfig, *this ) + : a800_rom_device(mconfig, A800_ROM, tag, owner, clock) { } a800_rom_bbsb_device::a800_rom_bbsb_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : a800_rom_device(mconfig, A800_ROM_BBSB, "Atari 800 ROM Cart BBSB", tag, owner, clock, "a800_bbsb", __FILE__) + : a800_rom_device(mconfig, A800_ROM_BBSB, tag, owner, clock) { } xegs_rom_device::xegs_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : a800_rom_device(mconfig, XEGS_ROM, "Atari XEGS 64K ROM Carts", tag, owner, clock, "a800_xegs", __FILE__), m_bank(0) - { + : a800_rom_device(mconfig, XEGS_ROM, tag, owner, clock) + , m_bank(0) +{ } a800_rom_williams_device::a800_rom_williams_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : a800_rom_device(mconfig, A800_ROM_WILLIAMS, "Atari 800 64K ROM Carts Williams", tag, owner, clock, "a800_williams", __FILE__), m_bank(0) - { + : a800_rom_device(mconfig, A800_ROM_WILLIAMS, tag, owner, clock) + , m_bank(0) +{ } a800_rom_express_device::a800_rom_express_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : a800_rom_device(mconfig, A800_ROM_EXPRESS, "Atari 800 64K ROM Carts Express/Diamond", tag, owner, clock, "a800_express", __FILE__), m_bank(0) - { + : a800_rom_device(mconfig, A800_ROM_EXPRESS, tag, owner, clock) + , m_bank(0) +{ } a800_rom_turbo_device::a800_rom_turbo_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : a800_rom_device(mconfig, A800_ROM_TURBO, "Atari 800 64K ROM Carts Turbosoft", tag, owner, clock, "a800_turbo", __FILE__), m_bank(0) - { + : a800_rom_device(mconfig, A800_ROM_TURBO, tag, owner, clock) + , m_bank(0) +{ } a800_rom_telelink2_device::a800_rom_telelink2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : a800_rom_device(mconfig, A800_ROM_TELELINK2, "Atari 800 64K ROM Cart Telelink II", tag, owner, clock, "a800_tlink2", __FILE__) + : a800_rom_device(mconfig, A800_ROM_TELELINK2, tag, owner, clock) { } a800_rom_microcalc_device::a800_rom_microcalc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : a800_rom_device(mconfig, A800_ROM_MICROCALC, "Atari 800 64K ROM Cart SITSA MicroCalc", tag, owner, clock, "a800_sitsa", __FILE__), m_bank(0) - { + : a800_rom_device(mconfig, A800_ROM_MICROCALC, tag, owner, clock) + , m_bank(0) +{ } a5200_rom_2chips_device::a5200_rom_2chips_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : a800_rom_device(mconfig, A5200_ROM_2CHIPS, "Atari 5200 ROM Cart 16K in 2 Chips", tag, owner, clock, "a5200_16k2c", __FILE__) + : a800_rom_device(mconfig, A5200_ROM_2CHIPS, tag, owner, clock) { } a5200_rom_bbsb_device::a5200_rom_bbsb_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : a800_rom_device(mconfig, A5200_ROM_BBSB, "Atari 5200 ROM Cart BBSB", tag, owner, clock, "a5200_bbsb", __FILE__) + : a800_rom_device(mconfig, A5200_ROM_BBSB, tag, owner, clock) { } diff --git a/src/devices/bus/a800/rom.h b/src/devices/bus/a800/rom.h index e15d5e29a0a..9ba329b3113 100644 --- a/src/devices/bus/a800/rom.h +++ b/src/devices/bus/a800/rom.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __A800_ROM_H -#define __A800_ROM_H +#ifndef MAME_BUS_A800_ROM_H +#define MAME_BUS_A800_ROM_H + +#pragma once #include "a800_slot.h" @@ -13,14 +15,16 @@ class a800_rom_device : public device_t, { public: // construction/destruction - a800_rom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); a800_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + virtual DECLARE_READ8_MEMBER(read_80xx) override; + +protected: + a800_rom_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; - - virtual DECLARE_READ8_MEMBER(read_80xx) override; }; @@ -32,14 +36,14 @@ public: // construction/destruction a800_rom_bbsb_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - virtual DECLARE_READ8_MEMBER(read_80xx) override; virtual DECLARE_WRITE8_MEMBER(write_80xx) override; protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + int m_banks[2]; }; @@ -52,14 +56,14 @@ public: // construction/destruction a800_rom_williams_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - virtual DECLARE_READ8_MEMBER(read_80xx) override; virtual DECLARE_WRITE8_MEMBER(write_d5xx) override; protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + int m_bank; }; @@ -72,14 +76,14 @@ public: // construction/destruction a800_rom_express_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - virtual DECLARE_READ8_MEMBER(read_80xx) override; virtual DECLARE_WRITE8_MEMBER(write_d5xx) override; protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + int m_bank; }; @@ -92,11 +96,12 @@ public: // construction/destruction a800_rom_blizzard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + virtual DECLARE_READ8_MEMBER(read_80xx) override; + +protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; - - virtual DECLARE_READ8_MEMBER(read_80xx) override; }; @@ -108,14 +113,14 @@ public: // construction/destruction a800_rom_turbo_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - virtual DECLARE_READ8_MEMBER(read_80xx) override; virtual DECLARE_WRITE8_MEMBER(write_d5xx) override; protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + int m_bank; }; @@ -143,14 +148,14 @@ public: // construction/destruction a800_rom_microcalc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - virtual DECLARE_READ8_MEMBER(read_80xx) override; virtual DECLARE_WRITE8_MEMBER(write_d5xx) override; protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + int m_bank; }; @@ -195,30 +200,30 @@ public: // construction/destruction a5200_rom_bbsb_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - virtual DECLARE_READ8_MEMBER(read_80xx) override; virtual DECLARE_WRITE8_MEMBER(write_80xx) override; protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + int m_banks[2]; }; // device type definition -extern const device_type A800_ROM; -extern const device_type A800_ROM_BBSB; -extern const device_type A800_ROM_WILLIAMS; -extern const device_type A800_ROM_EXPRESS; -extern const device_type A800_ROM_TURBO; -extern const device_type A800_ROM_TELELINK2; -extern const device_type A800_ROM_MICROCALC; -extern const device_type XEGS_ROM; -extern const device_type A5200_ROM_2CHIPS; -extern const device_type A5200_ROM_BBSB; - - -#endif +DECLARE_DEVICE_TYPE(A800_ROM, a800_rom_device) +DECLARE_DEVICE_TYPE(A800_ROM_BBSB, a800_rom_bbsb_device) +DECLARE_DEVICE_TYPE(A800_ROM_WILLIAMS, a800_rom_williams_device) +DECLARE_DEVICE_TYPE(A800_ROM_EXPRESS, a800_rom_express_device) +DECLARE_DEVICE_TYPE(A800_ROM_TURBO, a800_rom_turbo_device) +DECLARE_DEVICE_TYPE(A800_ROM_TELELINK2, a800_rom_telelink2_device) +DECLARE_DEVICE_TYPE(A800_ROM_MICROCALC, a800_rom_microcalc_device) +DECLARE_DEVICE_TYPE(XEGS_ROM, xegs_rom_device) +DECLARE_DEVICE_TYPE(A5200_ROM_2CHIPS, a5200_rom_2chips_device) +DECLARE_DEVICE_TYPE(A5200_ROM_BBSB, a5200_rom_bbsb_device) + + +#endif // MAME_BUS_A800_ROM_H diff --git a/src/devices/bus/a800/sparta.cpp b/src/devices/bus/a800/sparta.cpp index b02443d6aed..30d76eecc38 100644 --- a/src/devices/bus/a800/sparta.cpp +++ b/src/devices/bus/a800/sparta.cpp @@ -15,14 +15,14 @@ // constructor //------------------------------------------------- -const device_type A800_ROM_SPARTADOS = device_creator; +DEFINE_DEVICE_TYPE(A800_ROM_SPARTADOS, a800_rom_spartados_device, "a800_sparta", "Atari 800 SpartaDOS ROM Carts") a800_rom_spartados_device::a800_rom_spartados_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : a800_rom_device(mconfig, A800_ROM_SPARTADOS, "Atari 800 SpartaDOS ROM Carts", tag, owner, clock, "a800_sparta", __FILE__), - m_bank(0), - m_subslot_enabled(0) - { + : a800_rom_device(mconfig, A800_ROM_SPARTADOS, tag, owner, clock) + , m_bank(0) + , m_subslot_enabled(0) +{ } diff --git a/src/devices/bus/a800/sparta.h b/src/devices/bus/a800/sparta.h index f39aa515cde..614ce86571c 100644 --- a/src/devices/bus/a800/sparta.h +++ b/src/devices/bus/a800/sparta.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __A800_SPARTA_H -#define __A800_SPARTA_H +#ifndef MAME_BUS_A800_SPARTA_H +#define MAME_BUS_A800_SPARTA_H + +#pragma once #include "rom.h" @@ -14,21 +16,21 @@ public: // construction/destruction a800_rom_spartados_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - virtual DECLARE_READ8_MEMBER(read_80xx) override; virtual DECLARE_WRITE8_MEMBER(write_d5xx) override; protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + int m_bank, m_subslot_enabled; }; // device type definition -extern const device_type A800_ROM_SPARTADOS; +DECLARE_DEVICE_TYPE(A800_ROM_SPARTADOS, a800_rom_spartados_device) -#endif +#endif // MAME_BUS_A800_SPARTA_H diff --git a/src/devices/bus/abcbus/abc890.cpp b/src/devices/bus/abcbus/abc890.cpp index 61a56ba0ddd..b0594accc55 100644 --- a/src/devices/bus/abcbus/abc890.cpp +++ b/src/devices/bus/abcbus/abc890.cpp @@ -15,12 +15,12 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type ABC890 = device_creator; -const device_type ABC_EXPANSION_UNIT = device_creator; -const device_type ABC894 = device_creator; -const device_type ABC850 = device_creator; -const device_type ABC852 = device_creator; -const device_type ABC856 = device_creator; +DEFINE_DEVICE_TYPE(ABC_EXPANSION_UNIT, abc_expansion_unit_device, "abcexp", "ABC Expansion Unit") +DEFINE_DEVICE_TYPE(ABC890, abc890_device, "abc890", "ABC 890") +DEFINE_DEVICE_TYPE(ABC894, abc894_device, "abc894", "ABC 894") +DEFINE_DEVICE_TYPE(ABC850, abc850_device, "abc850", "ABC 850") +DEFINE_DEVICE_TYPE(ABC852, abc852_device, "abc852", "ABC 852") +DEFINE_DEVICE_TYPE(ABC856, abc856_device, "abc856", "ABC 856") //------------------------------------------------- @@ -43,7 +43,7 @@ MACHINE_CONFIG_END // machine configurations //------------------------------------------------- -machine_config_constructor abc890_t::device_mconfig_additions() const +machine_config_constructor abc890_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( abc890 ); } @@ -69,7 +69,7 @@ MACHINE_CONFIG_END // machine configurations //------------------------------------------------- -machine_config_constructor abc_expansion_unit_t::device_mconfig_additions() const +machine_config_constructor abc_expansion_unit_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( abc_expansion_unit ); } @@ -91,7 +91,7 @@ MACHINE_CONFIG_END // machine configurations //------------------------------------------------- -machine_config_constructor abc894_t::device_mconfig_additions() const +machine_config_constructor abc894_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( abc894 ); } @@ -118,7 +118,7 @@ MACHINE_CONFIG_END // machine configurations //------------------------------------------------- -machine_config_constructor abc850_t::device_mconfig_additions() const +machine_config_constructor abc850_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( abc850 ); } @@ -145,7 +145,7 @@ MACHINE_CONFIG_END // machine configurations //------------------------------------------------- -machine_config_constructor abc852_t::device_mconfig_additions() const +machine_config_constructor abc852_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( abc852 ); } @@ -172,7 +172,7 @@ MACHINE_CONFIG_END // machine configurations //------------------------------------------------- -machine_config_constructor abc856_t::device_mconfig_additions() const +machine_config_constructor abc856_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( abc856 ); } @@ -184,42 +184,42 @@ machine_config_constructor abc856_t::device_mconfig_additions() const //************************************************************************** //------------------------------------------------- -// abc890_t - constructor +// abc890_device - constructor //------------------------------------------------- -abc890_t::abc890_t(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), +abc890_device::abc890_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), device_abcbus_card_interface(mconfig, *this) { } -abc890_t::abc890_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - abc890_t(mconfig, ABC890, "ABC 890", tag, owner, clock, "abc890", __FILE__) +abc890_device::abc890_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + abc890_device(mconfig, ABC890, tag, owner, clock) { } -abc_expansion_unit_t::abc_expansion_unit_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - abc890_t(mconfig, ABC_EXPANSION_UNIT, "ABC Expansion Unit", tag, owner, clock, "abcexp", __FILE__) +abc_expansion_unit_device::abc_expansion_unit_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + abc890_device(mconfig, ABC_EXPANSION_UNIT, tag, owner, clock) { } -abc894_t::abc894_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - abc890_t(mconfig, ABC894, "ABC 894", tag, owner, clock, "abc894", __FILE__) +abc894_device::abc894_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + abc890_device(mconfig, ABC894, tag, owner, clock) { } -abc850_t::abc850_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - abc890_t(mconfig, ABC850, "ABC 850", tag, owner, clock, "abc850", __FILE__) +abc850_device::abc850_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + abc890_device(mconfig, ABC850, tag, owner, clock) { } -abc852_t::abc852_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - abc890_t(mconfig, ABC852, "ABC 852", tag, owner, clock, "abc852", __FILE__) +abc852_device::abc852_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + abc890_device(mconfig, ABC852, tag, owner, clock) { } -abc856_t::abc856_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - abc890_t(mconfig, ABC856, "ABC 856", tag, owner, clock, "abc856", __FILE__) +abc856_device::abc856_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + abc890_device(mconfig, ABC856, tag, owner, clock) { } @@ -228,7 +228,7 @@ abc856_t::abc856_t(const machine_config &mconfig, const char *tag, device_t *own // device_start - device-specific startup //------------------------------------------------- -void abc890_t::device_start() +void abc890_device::device_start() { } @@ -237,7 +237,7 @@ void abc890_t::device_start() // device_reset - device-specific reset //------------------------------------------------- -void abc890_t::device_reset() +void abc890_device::device_reset() { for (device_t &device : subdevices()) { @@ -250,9 +250,9 @@ void abc890_t::device_reset() // abcbus_cs - card select //------------------------------------------------- -void abc890_t::abcbus_cs(uint8_t data) +void abc890_device::abcbus_cs(uint8_t data) { - for (abcbus_slot_t &slot : abcbus_slot_device_iterator(*this)) + for (abcbus_slot_device &slot : abcbus_slot_device_iterator(*this)) { slot.cs_w(data); } @@ -263,11 +263,11 @@ void abc890_t::abcbus_cs(uint8_t data) // abcbus_inp - input //------------------------------------------------- -uint8_t abc890_t::abcbus_inp() +uint8_t abc890_device::abcbus_inp() { uint8_t data = 0xff; - for (abcbus_slot_t &slot : abcbus_slot_device_iterator(*this)) + for (abcbus_slot_device &slot : abcbus_slot_device_iterator(*this)) { data &= slot.inp_r(); } @@ -280,9 +280,9 @@ uint8_t abc890_t::abcbus_inp() // abcbus_out - output //------------------------------------------------- -void abc890_t::abcbus_out(uint8_t data) +void abc890_device::abcbus_out(uint8_t data) { - for (abcbus_slot_t &slot : abcbus_slot_device_iterator(*this)) + for (abcbus_slot_device &slot : abcbus_slot_device_iterator(*this)) { slot.out_w(data); } @@ -293,11 +293,11 @@ void abc890_t::abcbus_out(uint8_t data) // abcbus_stat - status //------------------------------------------------- -uint8_t abc890_t::abcbus_stat() +uint8_t abc890_device::abcbus_stat() { uint8_t data = 0xff; - for (abcbus_slot_t &slot : abcbus_slot_device_iterator(*this)) + for (abcbus_slot_device &slot : abcbus_slot_device_iterator(*this)) { data &= slot.stat_r(); } @@ -310,9 +310,9 @@ uint8_t abc890_t::abcbus_stat() // abcbus_c1 - command 1 //------------------------------------------------- -void abc890_t::abcbus_c1(uint8_t data) +void abc890_device::abcbus_c1(uint8_t data) { - for (abcbus_slot_t &slot : abcbus_slot_device_iterator(*this)) + for (abcbus_slot_device &slot : abcbus_slot_device_iterator(*this)) { slot.c1_w(data); } @@ -323,9 +323,9 @@ void abc890_t::abcbus_c1(uint8_t data) // abcbus_c2 - command 2 //------------------------------------------------- -void abc890_t::abcbus_c2(uint8_t data) +void abc890_device::abcbus_c2(uint8_t data) { - for (abcbus_slot_t &slot : abcbus_slot_device_iterator(*this)) + for (abcbus_slot_device &slot : abcbus_slot_device_iterator(*this)) { slot.c2_w(data); } @@ -336,9 +336,9 @@ void abc890_t::abcbus_c2(uint8_t data) // abcbus_c3 - command 3 //------------------------------------------------- -void abc890_t::abcbus_c3(uint8_t data) +void abc890_device::abcbus_c3(uint8_t data) { - for (abcbus_slot_t &slot : abcbus_slot_device_iterator(*this)) + for (abcbus_slot_device &slot : abcbus_slot_device_iterator(*this)) { slot.c3_w(data); } @@ -349,9 +349,9 @@ void abc890_t::abcbus_c3(uint8_t data) // abcbus_c4 - command 4 //------------------------------------------------- -void abc890_t::abcbus_c4(uint8_t data) +void abc890_device::abcbus_c4(uint8_t data) { - for (abcbus_slot_t &slot : abcbus_slot_device_iterator(*this)) + for (abcbus_slot_device &slot : abcbus_slot_device_iterator(*this)) { slot.c4_w(data); } @@ -362,11 +362,11 @@ void abc890_t::abcbus_c4(uint8_t data) // abcbus_xmemfl - extended memory read //------------------------------------------------- -uint8_t abc890_t::abcbus_xmemfl(offs_t offset) +uint8_t abc890_device::abcbus_xmemfl(offs_t offset) { uint8_t data = 0xff; - for (abcbus_slot_t &slot : abcbus_slot_device_iterator(*this)) + for (abcbus_slot_device &slot : abcbus_slot_device_iterator(*this)) { data &= slot.xmemfl_r(offset); } @@ -379,9 +379,9 @@ uint8_t abc890_t::abcbus_xmemfl(offs_t offset) // abcbus_xmemw - extended memory write //------------------------------------------------- -void abc890_t::abcbus_xmemw(offs_t offset, uint8_t data) +void abc890_device::abcbus_xmemw(offs_t offset, uint8_t data) { - for (abcbus_slot_t &slot : abcbus_slot_device_iterator(*this)) + for (abcbus_slot_device &slot : abcbus_slot_device_iterator(*this)) { slot.xmemw_w(offset, data); } diff --git a/src/devices/bus/abcbus/abc890.h b/src/devices/bus/abcbus/abc890.h index 0501e1aa44c..2d3aa9e345a 100644 --- a/src/devices/bus/abcbus/abc890.h +++ b/src/devices/bus/abcbus/abc890.h @@ -6,10 +6,10 @@ *********************************************************************/ -#pragma once +#ifndef MAME_BUS_ABCBUS_ABC890_H +#define MAME_BUS_ABCBUS_ABC890_H -#ifndef __ABC890__ -#define __ABC890__ +#pragma once #include "abcbus.h" @@ -19,20 +19,21 @@ // TYPE DEFINITIONS //************************************************************************** -// ======================> abc890_t +// ======================> abc890_device -class abc890_t : public device_t, +class abc890_device : public device_t, public device_abcbus_card_interface { public: // construction/destruction - abc890_t(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - abc890_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + abc890_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual machine_config_constructor device_mconfig_additions() const override; protected: + abc890_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -51,65 +52,65 @@ protected: }; -// ======================> abc_expansion_unit_t +// ======================> abc_expansion_unit_device -class abc_expansion_unit_t : public abc890_t +class abc_expansion_unit_device : public abc890_device { public: // construction/destruction - abc_expansion_unit_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + abc_expansion_unit_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual machine_config_constructor device_mconfig_additions() const override; }; -// ======================> abc894_t +// ======================> abc894_device -class abc894_t : public abc890_t +class abc894_device : public abc890_device { public: // construction/destruction - abc894_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + abc894_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual machine_config_constructor device_mconfig_additions() const override; }; -// ======================> abc850_t +// ======================> abc850_device -class abc850_t : public abc890_t +class abc850_device : public abc890_device { public: // construction/destruction - abc850_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + abc850_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual machine_config_constructor device_mconfig_additions() const override; }; -// ======================> abc852_t +// ======================> abc852_device -class abc852_t : public abc890_t +class abc852_device : public abc890_device { public: // construction/destruction - abc852_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + abc852_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual machine_config_constructor device_mconfig_additions() const override; }; -// ======================> abc856_t +// ======================> abc856_device -class abc856_t : public abc890_t +class abc856_device : public abc890_device { public: // construction/destruction - abc856_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + abc856_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual machine_config_constructor device_mconfig_additions() const override; @@ -117,13 +118,13 @@ public: // device type definition -extern const device_type ABC_EXPANSION_UNIT; -extern const device_type ABC890; -extern const device_type ABC894; -extern const device_type ABC850; -extern const device_type ABC852; -extern const device_type ABC856; +DECLARE_DEVICE_TYPE(ABC_EXPANSION_UNIT, abc_expansion_unit_device) +DECLARE_DEVICE_TYPE(ABC890, abc890_device) +DECLARE_DEVICE_TYPE(ABC894, abc894_device) +DECLARE_DEVICE_TYPE(ABC850, abc850_device) +DECLARE_DEVICE_TYPE(ABC852, abc852_device) +DECLARE_DEVICE_TYPE(ABC856, abc856_device) -#endif +#endif // MAME_BUS_ABCBUS_ABC890_H diff --git a/src/devices/bus/abcbus/abcbus.cpp b/src/devices/bus/abcbus/abcbus.cpp index 855a52824d9..a75a162de0e 100644 --- a/src/devices/bus/abcbus/abcbus.cpp +++ b/src/devices/bus/abcbus/abcbus.cpp @@ -15,7 +15,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type ABCBUS_SLOT = device_creator; +DEFINE_DEVICE_TYPE(ABCBUS_SLOT, abcbus_slot_device, "abcbus_slot", "ABCBUS slot") @@ -30,16 +30,16 @@ const device_type ABCBUS_SLOT = device_creator; device_abcbus_card_interface::device_abcbus_card_interface(const machine_config &mconfig, device_t &device) : device_slot_card_interface(mconfig, device) { - m_slot = dynamic_cast(device.owner()); + m_slot = dynamic_cast(device.owner()); } //------------------------------------------------- -// abcbus_slot_t - constructor +// abcbus_slot_device - constructor //------------------------------------------------- -abcbus_slot_t::abcbus_slot_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, ABCBUS_SLOT, "ABCBUS slot", tag, owner, clock, "abcbus_slot", __FILE__), +abcbus_slot_device::abcbus_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, ABCBUS_SLOT, tag, owner, clock), device_slot_interface(mconfig, *this), m_write_irq(*this), m_write_nmi(*this), @@ -60,7 +60,7 @@ abcbus_slot_t::abcbus_slot_t(const machine_config &mconfig, const char *tag, dev // device_start - device-specific startup //------------------------------------------------- -void abcbus_slot_t::device_start() +void abcbus_slot_device::device_start() { m_card = dynamic_cast(get_card_device()); diff --git a/src/devices/bus/abcbus/abcbus.h b/src/devices/bus/abcbus/abcbus.h index 6e29e4793d1..aee0c75c2fc 100644 --- a/src/devices/bus/abcbus/abcbus.h +++ b/src/devices/bus/abcbus/abcbus.h @@ -120,34 +120,34 @@ #define MCFG_ABCBUS_SLOT_IRQ_CALLBACK(_irq) \ - devcb = &downcast(device)->set_irq_callback(DEVCB_##_irq); + devcb = &downcast(device)->set_irq_callback(DEVCB_##_irq); #define MCFG_ABCBUS_SLOT_NMI_CALLBACK(_nmi) \ - devcb = &downcast(device)->set_nmi_callback(DEVCB_##_nmi); + devcb = &downcast(device)->set_nmi_callback(DEVCB_##_nmi); #define MCFG_ABCBUS_SLOT_RDY_CALLBACK(_rdy) \ - devcb = &downcast(device)->set_rdy_callback(DEVCB_##_rdy); + devcb = &downcast(device)->set_rdy_callback(DEVCB_##_rdy); #define MCFG_ABCBUS_SLOT_RESIN_CALLBACK(_resin) \ - devcb = &downcast(device)->set_resin_callback(DEVCB_##_resin); + devcb = &downcast(device)->set_resin_callback(DEVCB_##_resin); #define MCFG_ABCBUS_SLOT_PREN_CALLBACK(_pren) \ - devcb = &downcast(device)->set_pren_callback(DEVCB_##_pren); + devcb = &downcast(device)->set_pren_callback(DEVCB_##_pren); #define MCFG_ABCBUS_SLOT_TRRQ_CALLBACK(_trrq) \ - devcb = &downcast(device)->set_trrq_callback(DEVCB_##_trrq); + devcb = &downcast(device)->set_trrq_callback(DEVCB_##_trrq); #define MCFG_ABCBUS_SLOT_XINT2_CALLBACK(_xint2) \ - devcb = &downcast(device)->set_xint2_callback(DEVCB_##_xint2); + devcb = &downcast(device)->set_xint2_callback(DEVCB_##_xint2); #define MCFG_ABCBUS_SLOT_XINT3_CALLBACK(_xint3) \ - devcb = &downcast(device)->set_xint3_callback(DEVCB_##_xint3); + devcb = &downcast(device)->set_xint3_callback(DEVCB_##_xint3); #define MCFG_ABCBUS_SLOT_XINT4_CALLBACK(_xint4) \ - devcb = &downcast(device)->set_xint4_callback(DEVCB_##_xint4); + devcb = &downcast(device)->set_xint4_callback(DEVCB_##_xint4); #define MCFG_ABCBUS_SLOT_XINT5_CALLBACK(_xint5) \ - devcb = &downcast(device)->set_xint5_callback(DEVCB_##_xint5); + devcb = &downcast(device)->set_xint5_callback(DEVCB_##_xint5); @@ -157,14 +157,11 @@ // ======================> device_abcbus_card_interface -class abcbus_slot_t; +class abcbus_slot_device; class device_abcbus_card_interface : public device_slot_card_interface { public: - // construction/destruction - device_abcbus_card_interface(const machine_config &mconfig, device_t &device); - // required operation overrides virtual void abcbus_cs(uint8_t data) = 0; @@ -192,30 +189,35 @@ public: virtual int abcbus_xcsb4() { return 1; }; virtual int abcbus_xcsb5() { return 1; }; -public: - abcbus_slot_t *m_slot; +protected: + // construction/destruction + device_abcbus_card_interface(const machine_config &mconfig, device_t &device); + + abcbus_slot_device *m_slot; + + friend class abcbus_slot_device; }; -// ======================> abcbus_slot_t +// ======================> abcbus_slot_device -class abcbus_slot_t : public device_t, +class abcbus_slot_device : public device_t, public device_slot_interface { public: // construction/destruction - abcbus_slot_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - - template devcb_base &set_irq_callback(_irq irq) { return m_write_irq.set_callback(irq); } - template devcb_base &set_nmi_callback(_nmi nmi) { return m_write_nmi.set_callback(nmi); } - template devcb_base &set_rdy_callback(_rdy rdy) { return m_write_rdy.set_callback(rdy); } - template devcb_base &set_resin_callback(_resin resin) { return m_write_resin.set_callback(resin); } - template devcb_base &set_pren_callback(_pren pren) { return m_write_pren.set_callback(pren); } - template devcb_base &set_trrq_callback(_trrq trrq) { return m_write_trrq.set_callback(trrq); } - template devcb_base &set_xint2_callback(_xint2 xint2) { return m_write_xint2.set_callback(xint2); } - template devcb_base &set_xint3_callback(_xint3 xint3) { return m_write_xint3.set_callback(xint3); } - template devcb_base &set_xint4_callback(_xint4 xint4) { return m_write_xint4.set_callback(xint4); } - template devcb_base &set_xint5_callback(_xint5 xint5) { return m_write_xint5.set_callback(xint5); } + abcbus_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + + template devcb_base &set_irq_callback(Object &&cb) { return m_write_irq.set_callback(std::forward(cb)); } + template devcb_base &set_nmi_callback(Object &&cb) { return m_write_nmi.set_callback(std::forward(cb)); } + template devcb_base &set_rdy_callback(Object &&cb) { return m_write_rdy.set_callback(std::forward(cb)); } + template devcb_base &set_resin_callback(Object &&cb) { return m_write_resin.set_callback(std::forward(cb)); } + template devcb_base &set_pren_callback(Object &&cb) { return m_write_pren.set_callback(std::forward(cb)); } + template devcb_base &set_trrq_callback(Object &&cb) { return m_write_trrq.set_callback(std::forward(cb)); } + template devcb_base &set_xint2_callback(Object &&cb) { return m_write_xint2.set_callback(std::forward(cb)); } + template devcb_base &set_xint3_callback(Object &&cb) { return m_write_xint3.set_callback(std::forward(cb)); } + template devcb_base &set_xint4_callback(Object &&cb) { return m_write_xint4.set_callback(std::forward(cb)); } + template devcb_base &set_xint5_callback(Object &&cb) { return m_write_xint5.set_callback(std::forward(cb)); } // computer interface void cs_w(uint8_t data) { if (m_card) m_card->abcbus_cs(data); } @@ -302,7 +304,7 @@ protected: // device type definition -extern const device_type ABCBUS_SLOT; +DECLARE_DEVICE_TYPE(ABCBUS_SLOT, abcbus_slot_device) SLOT_INTERFACE_EXTERN( abc80_cards ); @@ -310,7 +312,7 @@ SLOT_INTERFACE_EXTERN( abcbus_cards ); SLOT_INTERFACE_EXTERN( abc1600bus_cards ); -typedef device_type_iterator abcbus_slot_device_iterator; +typedef device_type_iterator abcbus_slot_device_iterator; #endif // MAME_DEVICES_ABCBUS_ABCBUS_H diff --git a/src/devices/bus/abcbus/fd2.cpp b/src/devices/bus/abcbus/fd2.cpp index 9f2688149e8..9fe4cf08003 100644 --- a/src/devices/bus/abcbus/fd2.cpp +++ b/src/devices/bus/abcbus/fd2.cpp @@ -55,7 +55,7 @@ Notes: // DEVICE DEFINITIONS //************************************************************************** -const device_type ABC_FD2 = device_creator; +DEFINE_DEVICE_TYPE(ABC_FD2, abc_fd2_device, "abc_fd2", "ABC FD2") //------------------------------------------------- @@ -76,7 +76,7 @@ ROM_END // rom_region - device-specific ROM region //------------------------------------------------- -const tiny_rom_entry *abc_fd2_t::device_rom_region() const +const tiny_rom_entry *abc_fd2_device::device_rom_region() const { return ROM_NAME( abc_fd2 ); } @@ -86,7 +86,7 @@ const tiny_rom_entry *abc_fd2_t::device_rom_region() const // status_w - //------------------------------------------------- -WRITE8_MEMBER( abc_fd2_t::status_w ) +WRITE8_MEMBER( abc_fd2_device::status_w ) { /* @@ -114,7 +114,7 @@ WRITE8_MEMBER( abc_fd2_t::status_w ) // ADDRESS_MAP( abc_fd2_mem ) //------------------------------------------------- -static ADDRESS_MAP_START( abc_fd2_mem, AS_PROGRAM, 8, abc_fd2_t ) +static ADDRESS_MAP_START( abc_fd2_mem, AS_PROGRAM, 8, abc_fd2_device ) AM_RANGE(0x0000, 0x03ff) AM_ROM AM_REGION(Z80_TAG, 0) AM_RANGE(0x0800, 0x0bff) AM_RAM ADDRESS_MAP_END @@ -124,10 +124,10 @@ ADDRESS_MAP_END // ADDRESS_MAP( abc_fd2_io ) //------------------------------------------------- -static ADDRESS_MAP_START( abc_fd2_io, AS_IO, 8, abc_fd2_t ) +static ADDRESS_MAP_START( abc_fd2_io, AS_IO, 8, abc_fd2_device ) ADDRESS_MAP_GLOBAL_MASK(0x73) AM_RANGE(0x30, 0x33) AM_DEVREADWRITE(Z80PIO_TAG, z80pio_device, read_alt, write_alt) - AM_RANGE(0x50, 0x53) AM_DEVREADWRITE(FD1771_TAG, fd1771_t, read, write) + AM_RANGE(0x50, 0x53) AM_DEVREADWRITE(FD1771_TAG, fd1771_device, read, write) AM_RANGE(0x60, 0x60) AM_WRITE(status_w) ADDRESS_MAP_END @@ -136,17 +136,17 @@ ADDRESS_MAP_END // Z80PIO //------------------------------------------------- -READ8_MEMBER( abc_fd2_t::pio_pa_r ) +READ8_MEMBER( abc_fd2_device::pio_pa_r ) { return m_data; } -WRITE8_MEMBER( abc_fd2_t::pio_pa_w ) +WRITE8_MEMBER( abc_fd2_device::pio_pa_w ) { m_data = data; } -READ8_MEMBER( abc_fd2_t::pio_pb_r ) +READ8_MEMBER( abc_fd2_device::pio_pb_r ) { /* @@ -172,7 +172,7 @@ READ8_MEMBER( abc_fd2_t::pio_pb_r ) return data; } -WRITE8_MEMBER( abc_fd2_t::pio_pb_w ) +WRITE8_MEMBER( abc_fd2_device::pio_pb_w ) { /* @@ -225,7 +225,7 @@ static SLOT_INTERFACE_START( abc_fd2_floppies ) SLOT_INTERFACE( "525sssd", FLOPPY_525_SSSD ) SLOT_INTERFACE_END -FLOPPY_FORMATS_MEMBER( abc_fd2_t::floppy_formats ) +FLOPPY_FORMATS_MEMBER( abc_fd2_device::floppy_formats ) FLOPPY_ABC_FD2_FORMAT FLOPPY_FORMATS_END @@ -242,18 +242,18 @@ static MACHINE_CONFIG_FRAGMENT( abc_fd2 ) MCFG_DEVICE_ADD(Z80PIO_TAG, Z80PIO, XTAL_4MHz/2) MCFG_Z80PIO_OUT_INT_CB(INPUTLINE(Z80_TAG, INPUT_LINE_IRQ0)) - MCFG_Z80PIO_IN_PA_CB(READ8(abc_fd2_t, pio_pa_r)) - MCFG_Z80PIO_OUT_PA_CB(WRITE8(abc_fd2_t, pio_pa_w)) - MCFG_Z80PIO_IN_PB_CB(READ8(abc_fd2_t, pio_pb_r)) - MCFG_Z80PIO_OUT_PB_CB(WRITE8(abc_fd2_t, pio_pb_w)) + MCFG_Z80PIO_IN_PA_CB(READ8(abc_fd2_device, pio_pa_r)) + MCFG_Z80PIO_OUT_PA_CB(WRITE8(abc_fd2_device, pio_pa_w)) + MCFG_Z80PIO_IN_PB_CB(READ8(abc_fd2_device, pio_pb_r)) + MCFG_Z80PIO_OUT_PB_CB(WRITE8(abc_fd2_device, pio_pb_w)) MCFG_FD1771_ADD(FD1771_TAG, XTAL_4MHz/4) MCFG_WD_FDC_INTRQ_CALLBACK(DEVWRITELINE(Z80PIO_TAG, z80pio_device, pb7_w)) MCFG_WD_FDC_DRQ_CALLBACK(DEVWRITELINE(Z80PIO_TAG, z80pio_device, pb5_w)) MCFG_WD_FDC_HLD_CALLBACK(DEVWRITELINE(Z80PIO_TAG, z80pio_device, pb6_w)) - MCFG_FLOPPY_DRIVE_ADD(FD1771_TAG ":0", abc_fd2_floppies, "525sssd", abc_fd2_t::floppy_formats) - MCFG_FLOPPY_DRIVE_ADD(FD1771_TAG ":1", abc_fd2_floppies, "525sssd", abc_fd2_t::floppy_formats) + MCFG_FLOPPY_DRIVE_ADD(FD1771_TAG ":0", abc_fd2_floppies, "525sssd", abc_fd2_device::floppy_formats) + MCFG_FLOPPY_DRIVE_ADD(FD1771_TAG ":1", abc_fd2_floppies, "525sssd", abc_fd2_device::floppy_formats) MACHINE_CONFIG_END @@ -262,7 +262,7 @@ MACHINE_CONFIG_END // machine configurations //------------------------------------------------- -machine_config_constructor abc_fd2_t::device_mconfig_additions() const +machine_config_constructor abc_fd2_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( abc_fd2 ); } @@ -274,11 +274,11 @@ machine_config_constructor abc_fd2_t::device_mconfig_additions() const //************************************************************************** //------------------------------------------------- -// abc_fd2_t - constructor +// abc_fd2_device - constructor //------------------------------------------------- -abc_fd2_t::abc_fd2_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, ABC_FD2, "ABC FD2", tag, owner, clock, "abc_fd2", __FILE__), +abc_fd2_device::abc_fd2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, ABC_FD2, tag, owner, clock), device_abcbus_card_interface(mconfig, *this), m_maincpu(*this, Z80_TAG), m_pio(*this, Z80PIO_TAG), @@ -295,7 +295,7 @@ abc_fd2_t::abc_fd2_t(const machine_config &mconfig, const char *tag, device_t *o // device_start - device-specific startup //------------------------------------------------- -void abc_fd2_t::device_start() +void abc_fd2_device::device_start() { } @@ -304,7 +304,7 @@ void abc_fd2_t::device_start() // device_reset - device-specific reset //------------------------------------------------- -void abc_fd2_t::device_reset() +void abc_fd2_device::device_reset() { m_cs = false; @@ -325,7 +325,7 @@ void abc_fd2_t::device_reset() // abcbus_cs - //------------------------------------------------- -void abc_fd2_t::abcbus_cs(uint8_t data) +void abc_fd2_device::abcbus_cs(uint8_t data) { m_cs = (data == 0x2d); } @@ -335,7 +335,7 @@ void abc_fd2_t::abcbus_cs(uint8_t data) // abcbus_stat - //------------------------------------------------- -uint8_t abc_fd2_t::abcbus_stat() +uint8_t abc_fd2_device::abcbus_stat() { uint8_t data = 0xff; @@ -352,7 +352,7 @@ uint8_t abc_fd2_t::abcbus_stat() // abcbus_inp - //------------------------------------------------- -uint8_t abc_fd2_t::abcbus_inp() +uint8_t abc_fd2_device::abcbus_inp() { uint8_t data = 0xff; @@ -375,7 +375,7 @@ uint8_t abc_fd2_t::abcbus_inp() // abcbus_out - //------------------------------------------------- -void abc_fd2_t::abcbus_out(uint8_t data) +void abc_fd2_device::abcbus_out(uint8_t data) { if (!m_cs) return; @@ -393,7 +393,7 @@ void abc_fd2_t::abcbus_out(uint8_t data) // abcbus_c1 - //------------------------------------------------- -void abc_fd2_t::abcbus_c1(uint8_t data) +void abc_fd2_device::abcbus_c1(uint8_t data) { if (m_cs) { @@ -407,7 +407,7 @@ void abc_fd2_t::abcbus_c1(uint8_t data) // abcbus_c3 - //------------------------------------------------- -void abc_fd2_t::abcbus_c3(uint8_t data) +void abc_fd2_device::abcbus_c3(uint8_t data) { if (m_cs) { @@ -420,7 +420,7 @@ void abc_fd2_t::abcbus_c3(uint8_t data) // abcbus_xmemfl - //------------------------------------------------- -uint8_t abc_fd2_t::abcbus_xmemfl(offs_t offset) +uint8_t abc_fd2_device::abcbus_xmemfl(offs_t offset) { uint8_t data = 0xff; diff --git a/src/devices/bus/abcbus/fd2.h b/src/devices/bus/abcbus/fd2.h index f82c0fb68d0..37a2be98959 100644 --- a/src/devices/bus/abcbus/fd2.h +++ b/src/devices/bus/abcbus/fd2.h @@ -6,10 +6,10 @@ *********************************************************************/ -#pragma once +#ifndef MAME_BUS_ABCBUS_FD2_H +#define MAME_BUS_ABCBUS_FD2_H -#ifndef __ABC_FD2__ -#define __ABC_FD2__ +#pragma once #include "abcbus.h" #include "cpu/z80/z80.h" @@ -24,14 +24,14 @@ // TYPE DEFINITIONS //************************************************************************** -// ======================> abc_fd2_t +// ======================> abc_fd2_device -class abc_fd2_t : public device_t, +class abc_fd2_device : public device_t, public device_abcbus_card_interface { public: // construction/destruction - abc_fd2_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + abc_fd2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual const tiny_rom_entry *device_rom_region() const override; @@ -63,7 +63,7 @@ protected: private: required_device m_maincpu; required_device m_pio; - required_device m_fdc; + required_device m_fdc; required_device m_floppy0; required_device m_floppy1; required_memory_region m_dos_rom; @@ -75,8 +75,6 @@ private: // device type definition -extern const device_type ABC_FD2; - - +DECLARE_DEVICE_TYPE(ABC_FD2, abc_fd2_device) -#endif +#endif // MAME_BUS_ABCBUS_FD2_H diff --git a/src/devices/bus/abcbus/hdc.cpp b/src/devices/bus/abcbus/hdc.cpp index 9e69ced4ad3..ba27d1cd948 100644 --- a/src/devices/bus/abcbus/hdc.cpp +++ b/src/devices/bus/abcbus/hdc.cpp @@ -24,7 +24,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type ABC_HDC = device_creator; +DEFINE_DEVICE_TYPE(ABC_HDC, abc_hdc_device, "abc_hdc", "ABC HDC") //------------------------------------------------- @@ -113,9 +113,9 @@ machine_config_constructor abc_hdc_device::device_mconfig_additions() const //------------------------------------------------- abc_hdc_device::abc_hdc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, ABC_HDC, "ABC HDC", tag, owner, clock, "abc_hdc", __FILE__), - device_abcbus_card_interface(mconfig, *this), - m_maincpu(*this, Z80_TAG) + : device_t(mconfig, ABC_HDC, tag, owner, clock) + , device_abcbus_card_interface(mconfig, *this) + , m_maincpu(*this, Z80_TAG) { } diff --git a/src/devices/bus/abcbus/hdc.h b/src/devices/bus/abcbus/hdc.h index c0a1350d51e..e9edb3b8d2a 100644 --- a/src/devices/bus/abcbus/hdc.h +++ b/src/devices/bus/abcbus/hdc.h @@ -6,10 +6,10 @@ *********************************************************************/ -#pragma once +#ifndef MAME_BUS_ABCBUS_HDC_H +#define MAME_BUS_ABCBUS_HDC_H -#ifndef __ABC_HDC__ -#define __ABC_HDC__ +#pragma once #include "abcbus.h" #include "cpu/z80/z80.h" @@ -49,8 +49,6 @@ private: // device type definition -extern const device_type ABC_HDC; - - +DECLARE_DEVICE_TYPE(ABC_HDC, abc_hdc_device) -#endif +#endif // MAME_BUS_ABCBUS_HDC_H diff --git a/src/devices/bus/abcbus/lux10828.cpp b/src/devices/bus/abcbus/lux10828.cpp index 42960d2e918..888055886c4 100644 --- a/src/devices/bus/abcbus/lux10828.cpp +++ b/src/devices/bus/abcbus/lux10828.cpp @@ -139,7 +139,7 @@ Notes: // DEVICE DEFINITIONS //************************************************************************** -const device_type LUXOR_55_10828 = device_creator; +DEFINE_DEVICE_TYPE(LUXOR_55_10828, luxor_55_10828_device, "lux10828", "Luxor 55 10828") //------------------------------------------------- @@ -405,7 +405,7 @@ ioport_constructor luxor_55_10828_device::device_input_ports() const //------------------------------------------------- luxor_55_10828_device::luxor_55_10828_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, LUXOR_55_10828, "Luxor 55 10828", tag, owner, clock, "lux10828", __FILE__), + : device_t(mconfig, LUXOR_55_10828, tag, owner, clock), device_abcbus_card_interface(mconfig, *this), m_maincpu(*this, Z80_TAG), m_pio(*this, Z80PIO_TAG), diff --git a/src/devices/bus/abcbus/lux10828.h b/src/devices/bus/abcbus/lux10828.h index 100e32f3f4f..d695c57c19f 100644 --- a/src/devices/bus/abcbus/lux10828.h +++ b/src/devices/bus/abcbus/lux10828.h @@ -6,10 +6,10 @@ *********************************************************************/ -#pragma once +#ifndef MAME_BUS_ABCBUS_LUXOR10828_H +#define MAME_BUS_ABCBUS_LUXOR10828_H -#ifndef __LUXOR_55_10828__ -#define __LUXOR_55_10828__ +#pragma once #include "abcbus.h" #include "cpu/z80/z80.h" @@ -91,7 +91,7 @@ protected: private: required_device m_maincpu; required_device m_pio; - required_device m_fdc; + required_device m_fdc; required_device m_floppy0; required_device m_floppy1; required_ioport m_sw1; @@ -109,6 +109,6 @@ private: // device type definition -extern const device_type LUXOR_55_10828; +DECLARE_DEVICE_TYPE(LUXOR_55_10828, luxor_55_10828_device) -#endif +#endif // MAME_BUS_ABCBUS_LUXOR10828_H diff --git a/src/devices/bus/abcbus/lux21046.cpp b/src/devices/bus/abcbus/lux21046.cpp index 489aac9e92c..86bddaf990e 100644 --- a/src/devices/bus/abcbus/lux21046.cpp +++ b/src/devices/bus/abcbus/lux21046.cpp @@ -94,12 +94,12 @@ Notes: // DEVICE DEFINITIONS //************************************************************************** -const device_type LUXOR_55_21046 = device_creator; -const device_type ABC830 = device_creator; -const device_type ABC832 = device_creator; -const device_type ABC834 = device_creator; -const device_type ABC838 = device_creator; -const device_type ABC850_FLOPPY = device_creator; +DEFINE_DEVICE_TYPE(LUXOR_55_21046, luxor_55_21046_device, "lux21046", "Luxor 55 21046") +DEFINE_DEVICE_TYPE(ABC830, abc830_device, "abc830", "ABC 830") +DEFINE_DEVICE_TYPE(ABC832, abc832_device, "abc832", "ABC 832") +DEFINE_DEVICE_TYPE(ABC834, abc834_device, "abc834", "ABC 834") +DEFINE_DEVICE_TYPE(ABC838, abc838_device, "abc838", "ABC 838") +DEFINE_DEVICE_TYPE(ABC850_FLOPPY, abc850_floppy_device, "abc850flop", "ABC 850 Floppy") //------------------------------------------------- @@ -127,7 +127,7 @@ ROM_END // rom_region - device-specific ROM region //------------------------------------------------- -const tiny_rom_entry *luxor_55_21046_t::device_rom_region() const +const tiny_rom_entry *luxor_55_21046_device::device_rom_region() const { return ROM_NAME( luxor_55_21046 ); } @@ -137,7 +137,7 @@ const tiny_rom_entry *luxor_55_21046_t::device_rom_region() const // ADDRESS_MAP( luxor_55_21046_mem ) //------------------------------------------------- -static ADDRESS_MAP_START( luxor_55_21046_mem, AS_PROGRAM, 8, luxor_55_21046_t ) +static ADDRESS_MAP_START( luxor_55_21046_mem, AS_PROGRAM, 8, luxor_55_21046_device ) ADDRESS_MAP_UNMAP_HIGH ADDRESS_MAP_GLOBAL_MASK(0x3fff) AM_RANGE(0x0000, 0x1fff) AM_ROM AM_REGION(Z80_TAG, 0x2000) // A13 pull-up @@ -149,7 +149,7 @@ ADDRESS_MAP_END // ADDRESS_MAP( luxor_55_21046_io ) //------------------------------------------------- -static ADDRESS_MAP_START( luxor_55_21046_io, AS_IO, 8, luxor_55_21046_t ) +static ADDRESS_MAP_START( luxor_55_21046_io, AS_IO, 8, luxor_55_21046_device ) ADDRESS_MAP_UNMAP_HIGH AM_RANGE(0x0c, 0x0c) AM_MIRROR(0xff03) AM_READ(out_r) AM_RANGE(0x1c, 0x1c) AM_MIRROR(0xff03) AM_WRITE(inp_w) @@ -157,8 +157,8 @@ static ADDRESS_MAP_START( luxor_55_21046_io, AS_IO, 8, luxor_55_21046_t ) AM_RANGE(0x3c, 0x3c) AM_MIRROR(0xff03) AM_WRITE(_9b_w) AM_RANGE(0x4c, 0x4c) AM_MIRROR(0xff03) AM_WRITE(_8a_w) AM_RANGE(0x58, 0x58) AM_MIRROR(0x0007) AM_SELECT(0xff00) AM_READ(_9a_r) - AM_RANGE(0x68, 0x6b) AM_MIRROR(0xff00) AM_DEVREAD(SAB1793_TAG, fd1793_t, read) - AM_RANGE(0x78, 0x7b) AM_MIRROR(0xff00) AM_DEVWRITE(SAB1793_TAG, fd1793_t, write) + AM_RANGE(0x68, 0x6b) AM_MIRROR(0xff00) AM_DEVREAD(SAB1793_TAG, fd1793_device, read) + AM_RANGE(0x78, 0x7b) AM_MIRROR(0xff00) AM_DEVWRITE(SAB1793_TAG, fd1793_device, write) AM_RANGE(0x80, 0x80) AM_MIRROR(0xff77) AM_DEVREADWRITE(Z80DMA_TAG, z80dma_device, read, write) ADDRESS_MAP_END @@ -222,7 +222,7 @@ ADDRESS_MAP_END */ -WRITE_LINE_MEMBER( luxor_55_21046_t::dma_int_w ) +WRITE_LINE_MEMBER( luxor_55_21046_device::dma_int_w ) { m_dma_irq = state; @@ -230,27 +230,27 @@ WRITE_LINE_MEMBER( luxor_55_21046_t::dma_int_w ) m_maincpu->set_input_line(INPUT_LINE_IRQ0, m_fdc_irq || m_dma_irq); } -READ8_MEMBER( luxor_55_21046_t::memory_read_byte ) +READ8_MEMBER( luxor_55_21046_device::memory_read_byte ) { return m_maincpu->space(AS_PROGRAM).read_byte(offset); } -WRITE8_MEMBER( luxor_55_21046_t::memory_write_byte ) +WRITE8_MEMBER( luxor_55_21046_device::memory_write_byte ) { return m_maincpu->space(AS_PROGRAM).write_byte(offset, data); } -READ8_MEMBER( luxor_55_21046_t::io_read_byte ) +READ8_MEMBER( luxor_55_21046_device::io_read_byte ) { return m_maincpu->space(AS_IO).read_byte(offset); } -WRITE8_MEMBER( luxor_55_21046_t::io_write_byte ) +WRITE8_MEMBER( luxor_55_21046_device::io_write_byte ) { return m_maincpu->space(AS_IO).write_byte(offset, data); } -FLOPPY_FORMATS_MEMBER( luxor_55_21046_t::floppy_formats ) +FLOPPY_FORMATS_MEMBER( luxor_55_21046_device::floppy_formats ) FLOPPY_ABC800_FORMAT FLOPPY_FORMATS_END @@ -263,7 +263,7 @@ static SLOT_INTERFACE_START( abc_floppies ) SLOT_INTERFACE( "8dsdd", FLOPPY_8_DSDD ) SLOT_INTERFACE_END -WRITE_LINE_MEMBER( luxor_55_21046_t::fdc_intrq_w ) +WRITE_LINE_MEMBER( luxor_55_21046_device::fdc_intrq_w ) { m_fdc_irq = state; @@ -295,14 +295,14 @@ static MACHINE_CONFIG_FRAGMENT( luxor_55_21046 ) MCFG_DEVICE_ADD(Z80DMA_TAG, Z80DMA, XTAL_16MHz/4) MCFG_Z80DMA_OUT_BUSREQ_CB(INPUTLINE(Z80_TAG, INPUT_LINE_HALT)) - MCFG_Z80DMA_OUT_INT_CB(WRITELINE(luxor_55_21046_t, dma_int_w)) - MCFG_Z80DMA_IN_MREQ_CB(READ8(luxor_55_21046_t, memory_read_byte)) - MCFG_Z80DMA_OUT_MREQ_CB(WRITE8(luxor_55_21046_t, memory_write_byte)) - MCFG_Z80DMA_IN_IORQ_CB(READ8(luxor_55_21046_t, io_read_byte)) - MCFG_Z80DMA_OUT_IORQ_CB(WRITE8(luxor_55_21046_t, io_write_byte)) + MCFG_Z80DMA_OUT_INT_CB(WRITELINE(luxor_55_21046_device, dma_int_w)) + MCFG_Z80DMA_IN_MREQ_CB(READ8(luxor_55_21046_device, memory_read_byte)) + MCFG_Z80DMA_OUT_MREQ_CB(WRITE8(luxor_55_21046_device, memory_write_byte)) + MCFG_Z80DMA_IN_IORQ_CB(READ8(luxor_55_21046_device, io_read_byte)) + MCFG_Z80DMA_OUT_IORQ_CB(WRITE8(luxor_55_21046_device, io_write_byte)) MCFG_FD1793_ADD(SAB1793_TAG, XTAL_16MHz/16) - MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(luxor_55_21046_t, fdc_intrq_w)) + MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(luxor_55_21046_device, fdc_intrq_w)) MCFG_WD_FDC_DRQ_CALLBACK(DEVWRITELINE(Z80DMA_TAG, z80dma_device, rdy_w)) MACHINE_CONFIG_END @@ -312,8 +312,8 @@ MACHINE_CONFIG_END //------------------------------------------------- static MACHINE_CONFIG_DERIVED( abc830, luxor_55_21046 ) - MCFG_FLOPPY_DRIVE_ADD(SAB1793_TAG":0", abc_floppies, "525ssdd", luxor_55_21046_t::floppy_formats) - MCFG_FLOPPY_DRIVE_ADD(SAB1793_TAG":1", abc_floppies, "525ssdd", luxor_55_21046_t::floppy_formats) + MCFG_FLOPPY_DRIVE_ADD(SAB1793_TAG":0", abc_floppies, "525ssdd", luxor_55_21046_device::floppy_formats) + MCFG_FLOPPY_DRIVE_ADD(SAB1793_TAG":1", abc_floppies, "525ssdd", luxor_55_21046_device::floppy_formats) MACHINE_CONFIG_END @@ -322,8 +322,8 @@ MACHINE_CONFIG_END //------------------------------------------------- static MACHINE_CONFIG_DERIVED( abc832, luxor_55_21046 ) - MCFG_FLOPPY_DRIVE_ADD(SAB1793_TAG":0", abc_floppies, "525qd", luxor_55_21046_t::floppy_formats) - MCFG_FLOPPY_DRIVE_ADD(SAB1793_TAG":1", abc_floppies, "525qd", luxor_55_21046_t::floppy_formats) + MCFG_FLOPPY_DRIVE_ADD(SAB1793_TAG":0", abc_floppies, "525qd", luxor_55_21046_device::floppy_formats) + MCFG_FLOPPY_DRIVE_ADD(SAB1793_TAG":1", abc_floppies, "525qd", luxor_55_21046_device::floppy_formats) MACHINE_CONFIG_END @@ -332,8 +332,8 @@ MACHINE_CONFIG_END //------------------------------------------------- static MACHINE_CONFIG_DERIVED( abc838, luxor_55_21046 ) - MCFG_FLOPPY_DRIVE_ADD(SAB1793_TAG":0", abc_floppies, "8dsdd", luxor_55_21046_t::floppy_formats) - MCFG_FLOPPY_DRIVE_ADD(SAB1793_TAG":1", abc_floppies, "8dsdd", luxor_55_21046_t::floppy_formats) + MCFG_FLOPPY_DRIVE_ADD(SAB1793_TAG":0", abc_floppies, "8dsdd", luxor_55_21046_device::floppy_formats) + MCFG_FLOPPY_DRIVE_ADD(SAB1793_TAG":1", abc_floppies, "8dsdd", luxor_55_21046_device::floppy_formats) MACHINE_CONFIG_END @@ -342,8 +342,8 @@ MACHINE_CONFIG_END //------------------------------------------------- static MACHINE_CONFIG_DERIVED( abc850, luxor_55_21046 ) - MCFG_FLOPPY_DRIVE_ADD(SAB1793_TAG":0", abc_floppies, "525qd", luxor_55_21046_t::floppy_formats) - MCFG_FLOPPY_DRIVE_ADD(SAB1793_TAG":1", abc_floppies, nullptr, luxor_55_21046_t::floppy_formats) + MCFG_FLOPPY_DRIVE_ADD(SAB1793_TAG":0", abc_floppies, "525qd", luxor_55_21046_device::floppy_formats) + MCFG_FLOPPY_DRIVE_ADD(SAB1793_TAG":1", abc_floppies, nullptr, luxor_55_21046_device::floppy_formats) MACHINE_CONFIG_END @@ -352,22 +352,22 @@ MACHINE_CONFIG_END // machine configurations //------------------------------------------------- -machine_config_constructor luxor_55_21046_t::device_mconfig_additions() const +machine_config_constructor luxor_55_21046_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( luxor_55_21046 ); } -machine_config_constructor abc830_t::device_mconfig_additions() const +machine_config_constructor abc830_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( abc830 ); } -machine_config_constructor abc832_t::device_mconfig_additions() const +machine_config_constructor abc832_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( abc832 ); } -machine_config_constructor abc834_t::device_mconfig_additions() const +machine_config_constructor abc834_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( abc832 ); } @@ -377,7 +377,7 @@ machine_config_constructor abc838_device::device_mconfig_additions() const return MACHINE_CONFIG_NAME( abc838 ); } -machine_config_constructor abc850_floppy_t::device_mconfig_additions() const +machine_config_constructor abc850_floppy_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( abc850 ); } @@ -703,22 +703,22 @@ INPUT_PORTS_END // input_ports - device-specific input ports //------------------------------------------------- -ioport_constructor luxor_55_21046_t::device_input_ports() const +ioport_constructor luxor_55_21046_device::device_input_ports() const { return INPUT_PORTS_NAME( luxor_55_21046 ); } -ioport_constructor abc830_t::device_input_ports() const +ioport_constructor abc830_device::device_input_ports() const { return INPUT_PORTS_NAME( abc830 ); } -ioport_constructor abc832_t::device_input_ports() const +ioport_constructor abc832_device::device_input_ports() const { return INPUT_PORTS_NAME( abc832 ); } -ioport_constructor abc834_t::device_input_ports() const +ioport_constructor abc834_device::device_input_ports() const { return INPUT_PORTS_NAME( abc834 ); } @@ -728,7 +728,7 @@ ioport_constructor abc838_device::device_input_ports() const return INPUT_PORTS_NAME( abc838 ); } -ioport_constructor abc850_floppy_t::device_input_ports() const +ioport_constructor abc850_floppy_device::device_input_ports() const { return INPUT_PORTS_NAME( abc850 ); } @@ -740,16 +740,16 @@ ioport_constructor abc850_floppy_t::device_input_ports() const //************************************************************************** //------------------------------------------------- -// luxor_55_21046_t - constructor +// luxor_55_21046_device - constructor //------------------------------------------------- -luxor_55_21046_t::luxor_55_21046_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - luxor_55_21046_t(mconfig, LUXOR_55_21046, "Luxor 55 21046", tag, owner, clock, "lux21046", __FILE__) +luxor_55_21046_device::luxor_55_21046_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + luxor_55_21046_device(mconfig, LUXOR_55_21046, tag, owner, clock) { } -luxor_55_21046_t::luxor_55_21046_t(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), +luxor_55_21046_device::luxor_55_21046_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), device_abcbus_card_interface(mconfig, *this), m_maincpu(*this, Z80_TAG), m_dma(*this, Z80DMA_TAG), @@ -771,28 +771,28 @@ luxor_55_21046_t::luxor_55_21046_t(const machine_config &mconfig, device_type ty { } -abc830_t::abc830_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - luxor_55_21046_t(mconfig, ABC830, "ABC 830", tag, owner, clock, "abc830", __FILE__) +abc830_device::abc830_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + luxor_55_21046_device(mconfig, ABC830, tag, owner, clock) { } -abc832_t::abc832_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - luxor_55_21046_t(mconfig, ABC832, "ABC 832", tag, owner, clock, "abc832", __FILE__) +abc832_device::abc832_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + luxor_55_21046_device(mconfig, ABC832, tag, owner, clock) { } -abc834_t::abc834_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - luxor_55_21046_t(mconfig, ABC834, "ABC 834", tag, owner, clock, "abc834", __FILE__) +abc834_device::abc834_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + luxor_55_21046_device(mconfig, ABC834, tag, owner, clock) { } abc838_device::abc838_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - luxor_55_21046_t(mconfig, ABC838, "ABC 838", tag, owner, clock, "abc838", __FILE__) + luxor_55_21046_device(mconfig, ABC838, tag, owner, clock) { } -abc850_floppy_t::abc850_floppy_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - luxor_55_21046_t(mconfig, ABC850_FLOPPY, "ABC 850 floppy", tag, owner, clock, "abc850flop", __FILE__) +abc850_floppy_device::abc850_floppy_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + luxor_55_21046_device(mconfig, ABC850_FLOPPY, tag, owner, clock) { } @@ -801,7 +801,7 @@ abc850_floppy_t::abc850_floppy_t(const machine_config &mconfig, const char *tag, // device_start - device-specific startup //------------------------------------------------- -void luxor_55_21046_t::device_start() +void luxor_55_21046_device::device_start() { // state saving save_item(NAME(m_cs)); @@ -819,7 +819,7 @@ void luxor_55_21046_t::device_start() // device_reset - device-specific reset //------------------------------------------------- -void luxor_55_21046_t::device_reset() +void luxor_55_21046_device::device_reset() { m_cs = false; m_out = 0; @@ -842,7 +842,7 @@ void luxor_55_21046_t::device_reset() // abcbus_cs - //------------------------------------------------- -void luxor_55_21046_t::abcbus_cs(uint8_t data) +void luxor_55_21046_device::abcbus_cs(uint8_t data) { m_cs = (data == m_sw3->read()); } @@ -852,7 +852,7 @@ void luxor_55_21046_t::abcbus_cs(uint8_t data) // abcbus_csb - //------------------------------------------------- -int luxor_55_21046_t::abcbus_csb() +int luxor_55_21046_device::abcbus_csb() { return m_cs ? 0 : 1; } @@ -862,7 +862,7 @@ int luxor_55_21046_t::abcbus_csb() // abcbus_stat - //------------------------------------------------- -uint8_t luxor_55_21046_t::abcbus_stat() +uint8_t luxor_55_21046_device::abcbus_stat() { /* @@ -895,7 +895,7 @@ uint8_t luxor_55_21046_t::abcbus_stat() // abcbus_inp - //------------------------------------------------- -uint8_t luxor_55_21046_t::abcbus_inp() +uint8_t luxor_55_21046_device::abcbus_inp() { uint8_t data = 0xff; @@ -913,7 +913,7 @@ uint8_t luxor_55_21046_t::abcbus_inp() // abcbus_out - //------------------------------------------------- -void luxor_55_21046_t::abcbus_out(uint8_t data) +void luxor_55_21046_device::abcbus_out(uint8_t data) { if (m_cs) { @@ -927,7 +927,7 @@ void luxor_55_21046_t::abcbus_out(uint8_t data) // abcbus_c1 - //------------------------------------------------- -void luxor_55_21046_t::abcbus_c1(uint8_t data) +void luxor_55_21046_device::abcbus_c1(uint8_t data) { if (m_cs) { @@ -941,7 +941,7 @@ void luxor_55_21046_t::abcbus_c1(uint8_t data) // abcbus_c3 - //------------------------------------------------- -void luxor_55_21046_t::abcbus_c3(uint8_t data) +void luxor_55_21046_device::abcbus_c3(uint8_t data) { if (m_cs) { @@ -954,7 +954,7 @@ void luxor_55_21046_t::abcbus_c3(uint8_t data) // abcbus_c4 - //------------------------------------------------- -void luxor_55_21046_t::abcbus_c4(uint8_t data) +void luxor_55_21046_device::abcbus_c4(uint8_t data) { // TODO connected to PAL16R4 pin 2 } @@ -969,7 +969,7 @@ void luxor_55_21046_t::abcbus_c4(uint8_t data) // 3d_r - //------------------------------------------------- -READ8_MEMBER( luxor_55_21046_t::out_r ) +READ8_MEMBER( luxor_55_21046_device::out_r ) { if (m_busy) { @@ -984,7 +984,7 @@ READ8_MEMBER( luxor_55_21046_t::out_r ) // 4d_w - //------------------------------------------------- -WRITE8_MEMBER( luxor_55_21046_t::inp_w ) +WRITE8_MEMBER( luxor_55_21046_device::inp_w ) { if (m_busy) { @@ -999,7 +999,7 @@ WRITE8_MEMBER( luxor_55_21046_t::inp_w ) // 4b_w - //------------------------------------------------- -WRITE8_MEMBER( luxor_55_21046_t::_4b_w ) +WRITE8_MEMBER( luxor_55_21046_device::_4b_w ) { /* @@ -1030,7 +1030,7 @@ WRITE8_MEMBER( luxor_55_21046_t::_4b_w ) // 9b_w - //------------------------------------------------- -WRITE8_MEMBER( luxor_55_21046_t::_9b_w ) +WRITE8_MEMBER( luxor_55_21046_device::_9b_w ) { /* @@ -1070,7 +1070,7 @@ WRITE8_MEMBER( luxor_55_21046_t::_9b_w ) // 8a_w - //------------------------------------------------- -WRITE8_MEMBER( luxor_55_21046_t::_8a_w ) +WRITE8_MEMBER( luxor_55_21046_device::_8a_w ) { /* @@ -1110,7 +1110,7 @@ WRITE8_MEMBER( luxor_55_21046_t::_8a_w ) // 9a_r - //------------------------------------------------- -READ8_MEMBER( luxor_55_21046_t::_9a_r ) +READ8_MEMBER( luxor_55_21046_device::_9a_r ) { /* diff --git a/src/devices/bus/abcbus/lux21046.h b/src/devices/bus/abcbus/lux21046.h index 8feed1090a2..818b31a0718 100644 --- a/src/devices/bus/abcbus/lux21046.h +++ b/src/devices/bus/abcbus/lux21046.h @@ -45,14 +45,14 @@ // TYPE DEFINITIONS //************************************************************************** -// ======================> luxor_55_21046_t +// ======================> luxor_55_21046_device -class luxor_55_21046_t : public device_t, +class luxor_55_21046_device : public device_t, public device_abcbus_card_interface { public: // construction/destruction - luxor_55_21046_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + luxor_55_21046_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual const tiny_rom_entry *device_rom_region() const override; @@ -79,7 +79,7 @@ public: DECLARE_FLOPPY_FORMATS( floppy_formats ); protected: - luxor_55_21046_t(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); + luxor_55_21046_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); // device-level overrides virtual void device_start() override; @@ -98,7 +98,7 @@ protected: private: required_device m_maincpu; required_device m_dma; - required_device m_fdc; + required_device m_fdc; required_device m_floppy0; required_device m_floppy1; floppy_image_device *m_floppy; @@ -117,13 +117,13 @@ private: }; -// ======================> abc830_t +// ======================> abc830_device -class abc830_t : public luxor_55_21046_t +class abc830_device : public luxor_55_21046_device { public: // construction/destruction - abc830_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + abc830_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual machine_config_constructor device_mconfig_additions() const override; @@ -131,13 +131,13 @@ public: }; -// ======================> abc832_t +// ======================> abc832_device -class abc832_t : public luxor_55_21046_t +class abc832_device : public luxor_55_21046_device { public: // construction/destruction - abc832_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + abc832_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual machine_config_constructor device_mconfig_additions() const override; @@ -145,13 +145,13 @@ public: }; -// ======================> abc834_t +// ======================> abc834_device -class abc834_t : public luxor_55_21046_t +class abc834_device : public luxor_55_21046_device { public: // construction/destruction - abc834_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + abc834_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual machine_config_constructor device_mconfig_additions() const override; @@ -161,7 +161,7 @@ public: // ======================> abc838_device -class abc838_device : public luxor_55_21046_t +class abc838_device : public luxor_55_21046_device { public: // construction/destruction @@ -173,13 +173,13 @@ public: }; -// ======================> abc850_floppy_t +// ======================> abc850_floppy_device -class abc850_floppy_t : public luxor_55_21046_t +class abc850_floppy_device : public luxor_55_21046_device { public: // construction/destruction - abc850_floppy_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + abc850_floppy_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual machine_config_constructor device_mconfig_additions() const override; @@ -188,12 +188,12 @@ public: // device type definition -extern const device_type LUXOR_55_21046; -extern const device_type ABC830; -extern const device_type ABC832; -extern const device_type ABC834; -extern const device_type ABC838; -extern const device_type ABC850_FLOPPY; +DECLARE_DEVICE_TYPE(LUXOR_55_21046, luxor_55_21046_device) +DECLARE_DEVICE_TYPE(ABC830, abc830_device) +DECLARE_DEVICE_TYPE(ABC832, abc832_device) +DECLARE_DEVICE_TYPE(ABC834, abc834_device) +DECLARE_DEVICE_TYPE(ABC838, abc838_device) +DECLARE_DEVICE_TYPE(ABC850_FLOPPY, abc850_floppy_device) diff --git a/src/devices/bus/abcbus/lux21056.cpp b/src/devices/bus/abcbus/lux21056.cpp index 1cebd0f9258..7fa81c39667 100644 --- a/src/devices/bus/abcbus/lux21056.cpp +++ b/src/devices/bus/abcbus/lux21056.cpp @@ -94,7 +94,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type LUXOR_55_21056 = device_creator; +DEFINE_DEVICE_TYPE(LUXOR_55_21056, luxor_55_21056_device, "lux21056", "Luxor 55 21056") //------------------------------------------------- @@ -339,7 +339,7 @@ ioport_constructor luxor_55_21056_device::device_input_ports() const //------------------------------------------------- luxor_55_21056_device::luxor_55_21056_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, LUXOR_55_21056, "Luxor 55 21056", tag, owner, clock, "lux21056", __FILE__), + : device_t(mconfig, LUXOR_55_21056, tag, owner, clock), device_abcbus_card_interface(mconfig, *this), m_maincpu(*this, Z80_TAG), m_dma(*this, Z80DMA_TAG), diff --git a/src/devices/bus/abcbus/lux21056.h b/src/devices/bus/abcbus/lux21056.h index d87183e91d3..b79dc547895 100644 --- a/src/devices/bus/abcbus/lux21056.h +++ b/src/devices/bus/abcbus/lux21056.h @@ -6,10 +6,10 @@ *********************************************************************/ -#pragma once +#ifndef MAME_BUS_ABCBUS_LUX21056_H +#define MAME_BUS_ABCBUS_LUX21056_H -#ifndef __LUXOR_55_21056__ -#define __LUXOR_55_21056__ +#pragma once #include "abcbus.h" #include "bus/scsi/scsi.h" @@ -79,7 +79,7 @@ private: required_device m_maincpu; required_device m_dma; - required_device m_sasibus; + required_device m_sasibus; required_device m_sasi_data_out; required_device m_sasi_data_in; required_ioport m_s1; @@ -100,8 +100,6 @@ private: // device type definition -extern const device_type LUXOR_55_21056; - - +DECLARE_DEVICE_TYPE(LUXOR_55_21056, luxor_55_21056_device) -#endif +#endif // MAME_BUS_ABCBUS_LUX21056_H diff --git a/src/devices/bus/abcbus/lux4105.cpp b/src/devices/bus/abcbus/lux4105.cpp index 4ffdf711756..9d7a84e30e0 100644 --- a/src/devices/bus/abcbus/lux4105.cpp +++ b/src/devices/bus/abcbus/lux4105.cpp @@ -25,7 +25,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type LUXOR_4105 = device_creator; +DEFINE_DEVICE_TYPE(LUXOR_4105, luxor_4105_device, "lux4105", "Luxor 4105") WRITE_LINE_MEMBER( luxor_4105_device::write_sasi_bsy ) @@ -176,7 +176,7 @@ inline void luxor_4105_device::update_trrq_int() //------------------------------------------------- luxor_4105_device::luxor_4105_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, LUXOR_4105, "Luxor 4105", tag, owner, clock, "lux4105", __FILE__), + device_t(mconfig, LUXOR_4105, tag, owner, clock), device_abcbus_card_interface(mconfig, *this), m_sasibus(*this, SASIBUS_TAG), m_sasi_data_out(*this, "sasi_data_out"), diff --git a/src/devices/bus/abcbus/lux4105.h b/src/devices/bus/abcbus/lux4105.h index 7c4e7881665..6c81a457b11 100644 --- a/src/devices/bus/abcbus/lux4105.h +++ b/src/devices/bus/abcbus/lux4105.h @@ -6,10 +6,10 @@ *********************************************************************/ -#pragma once +#ifndef MAME_BUS_ABCBUS_LUX4105_H +#define MAME_BUS_ABCBUS_LUX4105_H -#ifndef __LUXOR_4105__ -#define __LUXOR_4105__ +#pragma once #include "abcbus.h" @@ -66,7 +66,7 @@ protected: private: inline void update_trrq_int(); - required_device m_sasibus; + required_device m_sasibus; required_device m_sasi_data_out; required_device m_sasi_data_in; required_ioport m_1e; @@ -84,8 +84,7 @@ private: // device type definition -extern const device_type LUXOR_4105; - +DECLARE_DEVICE_TYPE(LUXOR_4105, luxor_4105_device) -#endif +#endif // MAME_BUS_ABCBUS_LUX4105_H diff --git a/src/devices/bus/abcbus/memcard.cpp b/src/devices/bus/abcbus/memcard.cpp index 32ac9a9cf42..6cdaf7be531 100644 --- a/src/devices/bus/abcbus/memcard.cpp +++ b/src/devices/bus/abcbus/memcard.cpp @@ -63,7 +63,7 @@ Notes: // DEVICE DEFINITIONS //************************************************************************** -const device_type ABC_MEMORY_CARD = device_creator; +DEFINE_DEVICE_TYPE(ABC_MEMORY_CARD, abc_memory_card_device, "abc_mem", "ABC Memory Card") //------------------------------------------------- @@ -95,7 +95,7 @@ ROM_END // rom_region - device-specific ROM region //------------------------------------------------- -const tiny_rom_entry *abc_memory_card_t::device_rom_region() const +const tiny_rom_entry *abc_memory_card_device::device_rom_region() const { return ROM_NAME( abc_dos ); } @@ -107,11 +107,11 @@ const tiny_rom_entry *abc_memory_card_t::device_rom_region() const //************************************************************************** //------------------------------------------------- -// abc_memory_card_t - constructor +// abc_memory_card_device - constructor //------------------------------------------------- -abc_memory_card_t::abc_memory_card_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, ABC_MEMORY_CARD, "ABC Memory Card", tag, owner, clock, "abc_mem", __FILE__), +abc_memory_card_device::abc_memory_card_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, ABC_MEMORY_CARD, tag, owner, clock), device_abcbus_card_interface(mconfig, *this), m_dos_rom(*this, "dos"), m_iec_rom(*this, "iec"), @@ -125,7 +125,7 @@ abc_memory_card_t::abc_memory_card_t(const machine_config &mconfig, const char * // device_start - device-specific startup //------------------------------------------------- -void abc_memory_card_t::device_start() +void abc_memory_card_device::device_start() { } @@ -139,7 +139,7 @@ void abc_memory_card_t::device_start() // abcbus_xmemfl - //------------------------------------------------- -uint8_t abc_memory_card_t::abcbus_xmemfl(offs_t offset) +uint8_t abc_memory_card_device::abcbus_xmemfl(offs_t offset) { uint8_t data = 0xff; diff --git a/src/devices/bus/abcbus/memcard.h b/src/devices/bus/abcbus/memcard.h index 63fc582a48a..3c9f77da89f 100644 --- a/src/devices/bus/abcbus/memcard.h +++ b/src/devices/bus/abcbus/memcard.h @@ -6,10 +6,10 @@ *********************************************************************/ -#pragma once +#ifndef MAME_BUS_ABCBUS_MEMCARD_H +#define MAME_BUS_ABCBUS_MEMCARD_H -#ifndef __ABC_MEMORY_CARD__ -#define __ABC_MEMORY_CARD__ +#pragma once #include "abcbus.h" @@ -19,14 +19,13 @@ // TYPE DEFINITIONS //************************************************************************** -// ======================> abc_memory_card_t +// ======================> abc_memory_card_device -class abc_memory_card_t : public device_t, - public device_abcbus_card_interface +class abc_memory_card_device : public device_t, public device_abcbus_card_interface { public: // construction/destruction - abc_memory_card_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + abc_memory_card_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual const tiny_rom_entry *device_rom_region() const override; @@ -49,7 +48,8 @@ private: // device type definition extern const device_type ABC_MEMORY_CARD; +DECLARE_DEVICE_TYPE(ABC_MEMORY_CARD, abc_memory_card_device) -#endif +#endif // MAME_BUS_ABCBUS_MEMCARD_H diff --git a/src/devices/bus/abcbus/ram.cpp b/src/devices/bus/abcbus/ram.cpp index 07739a75f40..4886f46defa 100644 --- a/src/devices/bus/abcbus/ram.cpp +++ b/src/devices/bus/abcbus/ram.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type ABC80_16KB_RAM_CARD = device_creator; +DEFINE_DEVICE_TYPE(ABC80_16KB_RAM_CARD, abc80_16kb_ram_card_device, "abc80_16kb", "ABC 80 16KB RAM card") @@ -24,11 +24,11 @@ const device_type ABC80_16KB_RAM_CARD = device_creator; //************************************************************************** //------------------------------------------------- -// abc80_16kb_ram_card_t - constructor +// abc80_16kb_ram_card_device - constructor //------------------------------------------------- -abc80_16kb_ram_card_t::abc80_16kb_ram_card_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, ABC80_16KB_RAM_CARD, "ABC 80 16KB RAM card", tag, owner, clock, "abc80_16kb", __FILE__), +abc80_16kb_ram_card_device::abc80_16kb_ram_card_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, ABC80_16KB_RAM_CARD, tag, owner, clock), device_abcbus_card_interface(mconfig, *this), m_ram(*this, "ram") { @@ -39,7 +39,7 @@ abc80_16kb_ram_card_t::abc80_16kb_ram_card_t(const machine_config &mconfig, cons // device_start - device-specific startup //------------------------------------------------- -void abc80_16kb_ram_card_t::device_start() +void abc80_16kb_ram_card_device::device_start() { m_ram.allocate(0x4000); } @@ -54,7 +54,7 @@ void abc80_16kb_ram_card_t::device_start() // abcbus_xmemfl - //------------------------------------------------- -uint8_t abc80_16kb_ram_card_t::abcbus_xmemfl(offs_t offset) +uint8_t abc80_16kb_ram_card_device::abcbus_xmemfl(offs_t offset) { uint8_t data = 0xff; @@ -71,7 +71,7 @@ uint8_t abc80_16kb_ram_card_t::abcbus_xmemfl(offs_t offset) // abcbus_xmemw - //------------------------------------------------- -void abc80_16kb_ram_card_t::abcbus_xmemw(offs_t offset, uint8_t data) +void abc80_16kb_ram_card_device::abcbus_xmemw(offs_t offset, uint8_t data) { if (offset >= 0x8000 && offset < 0xc000) { diff --git a/src/devices/bus/abcbus/ram.h b/src/devices/bus/abcbus/ram.h index eac0283dff0..cddb07182c7 100644 --- a/src/devices/bus/abcbus/ram.h +++ b/src/devices/bus/abcbus/ram.h @@ -6,10 +6,10 @@ *********************************************************************/ -#pragma once +#ifndef MAME_BUS_ABCBUS_RAM_H +#define MAME_BUS_ABCBUS_RAM_H -#ifndef __ABC80_16KB_RAM_CARD__ -#define __ABC80_16KB_RAM_CARD__ +#pragma once #include "abcbus.h" @@ -19,14 +19,13 @@ // TYPE DEFINITIONS //************************************************************************** -// ======================> abc80_16kb_ram_card_t +// ======================> abc80_16kb_ram_card_device -class abc80_16kb_ram_card_t : public device_t, - public device_abcbus_card_interface +class abc80_16kb_ram_card_device : public device_t, public device_abcbus_card_interface { public: // construction/destruction - abc80_16kb_ram_card_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + abc80_16kb_ram_card_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); protected: // device-level overrides @@ -43,8 +42,6 @@ private: // device type definition -extern const device_type ABC80_16KB_RAM_CARD; - - +DECLARE_DEVICE_TYPE(ABC80_16KB_RAM_CARD, abc80_16kb_ram_card_device) -#endif +#endif // MAME_BUS_ABCBUS_RAM_H diff --git a/src/devices/bus/abcbus/sio.cpp b/src/devices/bus/abcbus/sio.cpp index e99d51f61a6..1e39214d12b 100644 --- a/src/devices/bus/abcbus/sio.cpp +++ b/src/devices/bus/abcbus/sio.cpp @@ -48,7 +48,7 @@ Notes: // DEVICE DEFINITIONS //************************************************************************** -const device_type ABC_SIO = device_creator; +DEFINE_DEVICE_TYPE(ABC_SIO, abc_sio_device, "abcsio", "ABC SIO") //------------------------------------------------- @@ -103,7 +103,7 @@ machine_config_constructor abc_sio_device::device_mconfig_additions() const //------------------------------------------------- abc_sio_device::abc_sio_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, ABC_SIO, "ABC SIO", tag, owner, clock, "abcsio", __FILE__), + : device_t(mconfig, ABC_SIO, tag, owner, clock), device_abcbus_card_interface(mconfig, *this), m_ctc(*this, Z80CTC_TAG), m_sio(*this, Z80SIO_TAG), diff --git a/src/devices/bus/abcbus/sio.h b/src/devices/bus/abcbus/sio.h index 3b2abb78157..fffaf89c640 100644 --- a/src/devices/bus/abcbus/sio.h +++ b/src/devices/bus/abcbus/sio.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Curt Coder -#pragma once +#ifndef MAME_BUS_ABCBUS_SIO_H +#define MAME_BUS_ABCBUS_SIO_H -#ifndef __ABC_SIO__ -#define __ABC_SIO__ +#pragma once #include "abcbus.h" #include "machine/z80ctc.h" @@ -45,8 +45,6 @@ private: // device type definition -extern const device_type ABC_SIO; - - +DECLARE_DEVICE_TYPE(ABC_SIO, abc_sio_device) -#endif +#endif // MAME_BUS_ABCBUS_SIO_H diff --git a/src/devices/bus/abcbus/slutprov.cpp b/src/devices/bus/abcbus/slutprov.cpp index 9dead4049f3..3e75dcd577c 100644 --- a/src/devices/bus/abcbus/slutprov.cpp +++ b/src/devices/bus/abcbus/slutprov.cpp @@ -9,7 +9,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type ABC_SLUTPROV = device_creator; +DEFINE_DEVICE_TYPE(ABC_SLUTPROV, abc_slutprov_device, "slutprov", "Slutprov") //------------------------------------------------- @@ -42,7 +42,7 @@ const tiny_rom_entry *abc_slutprov_device::device_rom_region() const //------------------------------------------------- abc_slutprov_device::abc_slutprov_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, ABC_SLUTPROV, "Slutprov", tag, owner, clock, "slutprov", __FILE__), + : device_t(mconfig, ABC_SLUTPROV, tag, owner, clock), device_abcbus_card_interface(mconfig, *this) { } diff --git a/src/devices/bus/abcbus/slutprov.h b/src/devices/bus/abcbus/slutprov.h index e4600eb7059..16f6b0e9f79 100644 --- a/src/devices/bus/abcbus/slutprov.h +++ b/src/devices/bus/abcbus/slutprov.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Curt Coder -#pragma once +#ifndef MAME_BUS_ABCBUS_SLUTPROV_H +#define MAME_BUS_ABCBUS_SLUTPROV_H -#ifndef __ABC_SLUTPROV__ -#define __ABC_SLUTPROV__ +#pragma once #include "abcbus.h" @@ -36,8 +36,6 @@ protected: // device type definition -extern const device_type ABC_SLUTPROV; - - +DECLARE_DEVICE_TYPE(ABC_SLUTPROV, abc_slutprov_device) -#endif +#endif // MAME_BUS_ABCBUS_SLUTPROV_H diff --git a/src/devices/bus/abcbus/turbo.cpp b/src/devices/bus/abcbus/turbo.cpp index d552f8e40e9..c9a30b0a61a 100644 --- a/src/devices/bus/abcbus/turbo.cpp +++ b/src/devices/bus/abcbus/turbo.cpp @@ -23,7 +23,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type TURBO_KONTROLLER = device_creator; +DEFINE_DEVICE_TYPE(TURBO_KONTROLLER, turbo_kontroller_device, "unidisk", "Turbo-Kontroller") //------------------------------------------------- @@ -111,7 +111,7 @@ machine_config_constructor turbo_kontroller_device::device_mconfig_additions() c //------------------------------------------------- turbo_kontroller_device::turbo_kontroller_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, TURBO_KONTROLLER, "Turbo-Kontroller", tag, owner, clock, "unidisk", __FILE__), + : device_t(mconfig, TURBO_KONTROLLER, tag, owner, clock), device_abcbus_card_interface(mconfig, *this), m_maincpu(*this, Z80_TAG) { diff --git a/src/devices/bus/abcbus/turbo.h b/src/devices/bus/abcbus/turbo.h index b6f7a97721c..1204bf7df3e 100644 --- a/src/devices/bus/abcbus/turbo.h +++ b/src/devices/bus/abcbus/turbo.h @@ -6,10 +6,10 @@ *********************************************************************/ -#pragma once +#ifndef MAME_BUS_ABCBUS_TURBO_H +#define MAME_BUS_ABCBUS_TURBO_H -#ifndef __TURBO_KONTROLLER__ -#define __TURBO_KONTROLLER__ +#pragma once #include "abcbus.h" #include "cpu/z80/z80.h" @@ -49,7 +49,6 @@ private: // device type definition extern const device_type TURBO_KONTROLLER; +DECLARE_DEVICE_TYPE(TURBO_KONTROLLER, turbo_kontroller_device) - - -#endif +#endif // MAME_BUS_ABCBUS_TURBO_H diff --git a/src/devices/bus/abcbus/uni800.cpp b/src/devices/bus/abcbus/uni800.cpp index 5bdc0e68661..5e45d3fc30e 100644 --- a/src/devices/bus/abcbus/uni800.cpp +++ b/src/devices/bus/abcbus/uni800.cpp @@ -40,7 +40,7 @@ Notes: // DEVICE DEFINITIONS //************************************************************************** -const device_type ABC_UNI800 = device_creator; +DEFINE_DEVICE_TYPE(ABC_UNI800, abc_uni800_device, "uni800", "UNI-800") //------------------------------------------------- @@ -73,7 +73,7 @@ const tiny_rom_entry *abc_uni800_device::device_rom_region() const //------------------------------------------------- abc_uni800_device::abc_uni800_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, ABC_UNI800, "UNI-800", tag, owner, clock, "uni800", __FILE__), + : device_t(mconfig, ABC_UNI800, tag, owner, clock), device_abcbus_card_interface(mconfig, *this) { } diff --git a/src/devices/bus/abcbus/uni800.h b/src/devices/bus/abcbus/uni800.h index f8754b07aec..c6eb9400d40 100644 --- a/src/devices/bus/abcbus/uni800.h +++ b/src/devices/bus/abcbus/uni800.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Curt Coder -#pragma once +#ifndef MAME_BUS_ABCBUS_UNI800_H +#define MAME_BUS_ABCBUS_UNI800_H -#ifndef __ABC_UNI800__ -#define __ABC_UNI800__ +#pragma once #include "abcbus.h" @@ -36,8 +36,6 @@ protected: // device type definition -extern const device_type ABC_UNI800; - - +DECLARE_DEVICE_TYPE(ABC_UNI800, abc_uni800_device) -#endif +#endif // MAME_BUS_ABCBUS_UNI800_H diff --git a/src/devices/bus/abckb/abc77.cpp b/src/devices/bus/abckb/abc77.cpp index 561085d0488..58236638d74 100644 --- a/src/devices/bus/abckb/abc77.cpp +++ b/src/devices/bus/abckb/abc77.cpp @@ -60,8 +60,8 @@ Notes: // DEVICE DEFINITIONS //************************************************************************** -const device_type ABC77 = device_creator; -const device_type ABC55 = device_creator; +DEFINE_DEVICE_TYPE(ABC77, abc77_device, "abc77", "Luxor ABC 77") +DEFINE_DEVICE_TYPE(ABC55, abc55_device, "abc55", "Luxor ABC 55") //------------------------------------------------- @@ -424,8 +424,8 @@ inline void abc77_device::key_down(int state) // abc77_device - constructor //------------------------------------------------- -abc77_device::abc77_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), +abc77_device::abc77_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), abc_keyboard_interface(mconfig, *this), m_maincpu(*this, I8035_TAG), m_watchdog(*this, "watchdog"), @@ -440,10 +440,10 @@ abc77_device::abc77_device(const machine_config &mconfig, device_type type, cons } abc55_device::abc55_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - abc77_device(mconfig, ABC55, "Luxor ABC 55", tag, owner, clock, "abc55", __FILE__) { } + abc77_device(mconfig, ABC55, tag, owner, clock) { } abc77_device::abc77_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - abc77_device(mconfig, ABC77, "Luxor ABC 77", tag, owner, clock, "abc77", __FILE__) { } + abc77_device(mconfig, ABC77, tag, owner, clock) { } //------------------------------------------------- diff --git a/src/devices/bus/abckb/abc77.h b/src/devices/bus/abckb/abc77.h index 52114de522d..4d07bc1d2a4 100644 --- a/src/devices/bus/abckb/abc77.h +++ b/src/devices/bus/abckb/abc77.h @@ -26,12 +26,10 @@ // ======================> abc77_device -class abc77_device : public device_t, - public abc_keyboard_interface +class abc77_device : public device_t, public abc_keyboard_interface { public: // construction/destruction - abc77_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); abc77_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides @@ -51,6 +49,8 @@ public: DECLARE_WRITE8_MEMBER( j3_w ); protected: + abc77_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -99,8 +99,8 @@ public: // device type definition -extern const device_type ABC77; -extern const device_type ABC55; +DECLARE_DEVICE_TYPE(ABC77, abc77_device) +DECLARE_DEVICE_TYPE(ABC55, abc55_device) #endif // MAME_BUS_ABCKB_ABC77_H diff --git a/src/devices/bus/abckb/abc800kb.cpp b/src/devices/bus/abckb/abc800kb.cpp index 19962ff01f2..a158924ae9e 100644 --- a/src/devices/bus/abckb/abc800kb.cpp +++ b/src/devices/bus/abckb/abc800kb.cpp @@ -85,7 +85,7 @@ XR22-050-3B Pinout // DEVICE DEFINITIONS //************************************************************************** -const device_type ABC800_KEYBOARD = device_creator; +DEFINE_DEVICE_TYPE(ABC800_KEYBOARD, abc800_keyboard_device, "abc800kb", "ABC-800 Keyboard") //------------------------------------------------- @@ -325,7 +325,8 @@ inline void abc800_keyboard_device::key_down(int state) // abc800_keyboard_device - constructor //------------------------------------------------- -abc800_keyboard_device::abc800_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : device_t(mconfig, ABC800_KEYBOARD, "ABC-800 Keyboard", tag, owner, clock, "abc800kb", __FILE__), +abc800_keyboard_device::abc800_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, ABC800_KEYBOARD, tag, owner, clock), abc_keyboard_interface(mconfig, *this), m_maincpu(*this, I8048_TAG), m_x(*this, "X%u", 0), diff --git a/src/devices/bus/abckb/abc800kb.h b/src/devices/bus/abckb/abc800kb.h index d5dabb45ac5..e2bbd460cad 100644 --- a/src/devices/bus/abckb/abc800kb.h +++ b/src/devices/bus/abckb/abc800kb.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_ABCKB_ABC800KB_H +#define MAME_BUS_ABCKB_ABC800KB_H -#ifndef __ABC800_KEYBOARD__ -#define __ABC800_KEYBOARD__ +#pragma once #include "cpu/mcs48/mcs48.h" @@ -71,8 +71,6 @@ private: // device type definition -extern const device_type ABC800_KEYBOARD; - - +DECLARE_DEVICE_TYPE(ABC800_KEYBOARD, abc800_keyboard_device) -#endif +#endif // MAME_BUS_ABCKB_ABC800KB_H diff --git a/src/devices/bus/abckb/abc99.cpp b/src/devices/bus/abckb/abc99.cpp index 0590046e6d0..51d78e85da7 100644 --- a/src/devices/bus/abckb/abc99.cpp +++ b/src/devices/bus/abckb/abc99.cpp @@ -71,7 +71,7 @@ Notes: // DEVICE DEFINITIONS //************************************************************************** -const device_type ABC99 = device_creator; +DEFINE_DEVICE_TYPE(ABC99, abc99_device, "abc99", "Luxor ABC 99") //------------------------------------------------- @@ -479,7 +479,7 @@ inline void abc99_device::scan_mouse() //------------------------------------------------- abc99_device::abc99_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, ABC99, "Luxor ABC 99", tag, owner, clock, "abc99", __FILE__), + device_t(mconfig, ABC99, tag, owner, clock), abc_keyboard_interface(mconfig, *this), m_serial_timer(nullptr), m_mouse_timer(nullptr), m_maincpu(*this, I8035_Z2_TAG), m_mousecpu(*this, I8035_Z5_TAG), diff --git a/src/devices/bus/abckb/abc99.h b/src/devices/bus/abckb/abc99.h index ad421139e7d..b8ec975778c 100644 --- a/src/devices/bus/abckb/abc99.h +++ b/src/devices/bus/abckb/abc99.h @@ -107,7 +107,7 @@ private: // device type definition -extern const device_type ABC99; +DECLARE_DEVICE_TYPE(ABC99, abc99_device) #endif // MAME_BUS_ABCKB_ABC99_H diff --git a/src/devices/bus/abckb/abckb.cpp b/src/devices/bus/abckb/abckb.cpp index fd0478f54ef..3dfb80c04cc 100644 --- a/src/devices/bus/abckb/abckb.cpp +++ b/src/devices/bus/abckb/abckb.cpp @@ -16,7 +16,7 @@ //************************************************************************** // device type definition -const device_type ABC_KEYBOARD_PORT = device_creator; +DEFINE_DEVICE_TYPE(ABC_KEYBOARD_PORT, abc_keyboard_port_device, "abc_keyboard_port", "Luxor ABC keyboard port") @@ -44,7 +44,7 @@ abc_keyboard_interface::abc_keyboard_interface(const machine_config &mconfig, de //------------------------------------------------- abc_keyboard_port_device::abc_keyboard_port_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, ABC_KEYBOARD_PORT, "Luxor ABC keyboard port", tag, owner, clock, "abc_keyboard_port", __FILE__), + device_t(mconfig, ABC_KEYBOARD_PORT, tag, owner, clock), device_slot_interface(mconfig, *this), m_out_rx_handler(*this), m_out_trxc_handler(*this), diff --git a/src/devices/bus/abckb/abckb.h b/src/devices/bus/abckb/abckb.h index e342bf1422f..302c5ef39fd 100644 --- a/src/devices/bus/abckb/abckb.h +++ b/src/devices/bus/abckb/abckb.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_ABCKB_ABCKB_H +#define MAME_BUS_ABCKB_ABCKB_H -#ifndef __ABC_KEYBOARD_PORT__ -#define __ABC_KEYBOARD_PORT__ +#pragma once @@ -39,16 +39,15 @@ class abc_keyboard_interface; -class abc_keyboard_port_device : public device_t, - public device_slot_interface +class abc_keyboard_port_device : public device_t, public device_slot_interface { public: // construction/destruction abc_keyboard_port_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_out_rx_handler(device_t &device, _Object object) { return downcast(device).m_out_rx_handler.set_callback(object); } - template static devcb_base &set_out_trxc_handler(device_t &device, _Object object) { return downcast(device).m_out_trxc_handler.set_callback(object); } - template static devcb_base &set_out_keydown_handler(device_t &device, _Object object) { return downcast(device).m_out_keydown_handler.set_callback(object); } + template static devcb_base &set_out_rx_handler(device_t &device, Object &&cb) { return downcast(device).m_out_rx_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_out_trxc_handler(device_t &device, Object &&cb) { return downcast(device).m_out_trxc_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_out_keydown_handler(device_t &device, Object &&cb) { return downcast(device).m_out_keydown_handler.set_callback(std::forward(cb)); } // computer interface DECLARE_WRITE_LINE_MEMBER( txd_w ); @@ -74,23 +73,21 @@ protected: class abc_keyboard_interface : public device_slot_card_interface { public: + virtual void txd_w(int state) { } + +protected: // construction/destruction abc_keyboard_interface(const machine_config &mconfig, device_t &device); - virtual void txd_w(int state) { }; - -protected: abc_keyboard_port_device *m_slot; }; // device type definition -extern const device_type ABC_KEYBOARD_PORT; +DECLARE_DEVICE_TYPE(ABC_KEYBOARD_PORT, abc_keyboard_port_device) // supported devices SLOT_INTERFACE_EXTERN( abc_keyboard_devices ); - - -#endif +#endif // MAME_BUS_ABCKB_ABCKB_H diff --git a/src/devices/bus/adam/adamlink.cpp b/src/devices/bus/adam/adamlink.cpp index d4144d430e6..f4227273421 100644 --- a/src/devices/bus/adam/adamlink.cpp +++ b/src/devices/bus/adam/adamlink.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type ADAMLINK = device_creator; +DEFINE_DEVICE_TYPE(ADAMLINK, adamlink_device, "adamlink", "AdamLink modem") @@ -28,8 +28,8 @@ const device_type ADAMLINK = device_creator; //------------------------------------------------- adamlink_device::adamlink_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, ADAMLINK, "AdamLink modem", tag, owner, clock, "adamlink", __FILE__), - device_adam_expansion_slot_card_interface(mconfig, *this) + : device_t(mconfig, ADAMLINK, tag, owner, clock) + , device_adam_expansion_slot_card_interface(mconfig, *this) { } diff --git a/src/devices/bus/adam/adamlink.h b/src/devices/bus/adam/adamlink.h index 9897cd83dc1..42fd06490f9 100644 --- a/src/devices/bus/adam/adamlink.h +++ b/src/devices/bus/adam/adamlink.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_ADAM_ADAMLINK_H +#define MAME_BUS_ADAM_ADAMLINK_H -#ifndef __ADAMLINK__ -#define __ADAMLINK__ +#pragma once #include "exp.h" @@ -39,8 +39,6 @@ protected: // device type definition -extern const device_type ADAMLINK; - - +DECLARE_DEVICE_TYPE(ADAMLINK, adamlink_device) -#endif +#endif // MAME_BUS_ADAM_ADAMLINK_H diff --git a/src/devices/bus/adam/exp.cpp b/src/devices/bus/adam/exp.cpp index a7ae7b5a11d..5c4b24481d7 100644 --- a/src/devices/bus/adam/exp.cpp +++ b/src/devices/bus/adam/exp.cpp @@ -23,7 +23,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type ADAM_EXPANSION_SLOT = device_creator; +DEFINE_DEVICE_TYPE(ADAM_EXPANSION_SLOT, adam_expansion_slot_device, "adam_expansion_slot", "ADAM expansion slot") @@ -53,7 +53,7 @@ device_adam_expansion_slot_card_interface::device_adam_expansion_slot_card_inter //------------------------------------------------- adam_expansion_slot_device::adam_expansion_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, ADAM_EXPANSION_SLOT, "ADAM expansion slot", tag, owner, clock, "adam_expansion_slot", __FILE__), + device_t(mconfig, ADAM_EXPANSION_SLOT, tag, owner, clock), device_slot_interface(mconfig, *this), device_image_interface(mconfig, *this), m_write_irq(*this), m_card(nullptr) diff --git a/src/devices/bus/adam/exp.h b/src/devices/bus/adam/exp.h index f0c5ee2d19b..6a856faa826 100644 --- a/src/devices/bus/adam/exp.h +++ b/src/devices/bus/adam/exp.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_ADAM_EXP_H +#define MAME_BUS_ADAM_EXP_H -#ifndef __ADAM_EXPANSION_SLOT__ -#define __ADAM_EXPANSION_SLOT__ +#pragma once #include "softlist_dev.h" @@ -55,7 +55,7 @@ public: adam_expansion_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual ~adam_expansion_slot_device() { } - template static devcb_base &set_irq_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_irq.set_callback(object); } + template static devcb_base &set_irq_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_irq.set_callback(std::forward(cb)); } // computer interface uint8_t bd_r(address_space &space, offs_t offset, uint8_t data, int bmreq, int biorq, int aux_rom_cs, int cas1, int cas2); @@ -98,12 +98,10 @@ class device_adam_expansion_slot_card_interface : public device_slot_card_interf { friend class adam_expansion_slot_device; -public: +protected: // construction/destruction device_adam_expansion_slot_card_interface(const machine_config &mconfig, device_t &device); - virtual ~device_adam_expansion_slot_card_interface() { } -protected: // runtime virtual uint8_t adam_bd_r(address_space &space, offs_t offset, uint8_t data, int bmreq, int biorq, int aux_rom_cs, int cas1, int cas2) { return data; } virtual void adam_bd_w(address_space &space, offs_t offset, uint8_t data, int bmreq, int biorq, int aux_rom_cs, int cas1, int cas2) { } @@ -115,13 +113,11 @@ protected: // device type definition -extern const device_type ADAM_EXPANSION_SLOT; +DECLARE_DEVICE_TYPE(ADAM_EXPANSION_SLOT, adam_expansion_slot_device) SLOT_INTERFACE_EXTERN( adam_slot1_devices ); SLOT_INTERFACE_EXTERN( adam_slot2_devices ); SLOT_INTERFACE_EXTERN( adam_slot3_devices ); - - -#endif +#endif // MAME_BUS_ADAM_EXP_H diff --git a/src/devices/bus/adam/ide.cpp b/src/devices/bus/adam/ide.cpp index b49777663c4..d34fd71e7bb 100644 --- a/src/devices/bus/adam/ide.cpp +++ b/src/devices/bus/adam/ide.cpp @@ -35,7 +35,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type ADAM_IDE = device_creator; +DEFINE_DEVICE_TYPE(ADAM_IDE, powermate_ide_device, "adam_ide", "Powermate HP IDE") //------------------------------------------------- @@ -90,7 +90,7 @@ machine_config_constructor powermate_ide_device::device_mconfig_additions() cons //------------------------------------------------- powermate_ide_device::powermate_ide_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, ADAM_IDE, "Powermate HP IDE", tag, owner, clock, "adam_ide", __FILE__), + : device_t(mconfig, ADAM_IDE, tag, owner, clock), device_adam_expansion_slot_card_interface(mconfig, *this), m_ata(*this, ATA_TAG), m_cent_data_out(*this, "cent_data_out"), m_ata_data(0) diff --git a/src/devices/bus/adam/ide.h b/src/devices/bus/adam/ide.h index 881129f6809..dd17f98ab03 100644 --- a/src/devices/bus/adam/ide.h +++ b/src/devices/bus/adam/ide.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_ADAM_IDE_H +#define MAME_BUS_ADAM_IDE_H -#ifndef __ADAM_IDE__ -#define __ADAM_IDE__ +#pragma once #include "exp.h" #include "machine/ataintf.h" @@ -51,8 +51,6 @@ private: // device type definition -extern const device_type ADAM_IDE; - - +DECLARE_DEVICE_TYPE(ADAM_IDE, powermate_ide_device) -#endif +#endif // MAME_BUS_ADAM_IDE_H diff --git a/src/devices/bus/adam/ram.cpp b/src/devices/bus/adam/ram.cpp index 5f627cd46fc..2a756000dc2 100644 --- a/src/devices/bus/adam/ram.cpp +++ b/src/devices/bus/adam/ram.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type ADAM_RAM = device_creator; +DEFINE_DEVICE_TYPE(ADAM_RAM, adam_ram_expansion_device, "adam_ram", "Adam 64KB RAM expansion") @@ -28,7 +28,7 @@ const device_type ADAM_RAM = device_creator; //------------------------------------------------- adam_ram_expansion_device::adam_ram_expansion_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, ADAM_RAM, "Adam 64KB RAM expansion", tag, owner, clock, "adam_ram", __FILE__), + device_t(mconfig, ADAM_RAM, tag, owner, clock), device_adam_expansion_slot_card_interface(mconfig, *this), m_ram(*this, "ram") { diff --git a/src/devices/bus/adam/ram.h b/src/devices/bus/adam/ram.h index 9dbcba75c03..80ec417f3cc 100644 --- a/src/devices/bus/adam/ram.h +++ b/src/devices/bus/adam/ram.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_ADAM_RAM_H +#define MAME_BUS_ADAM_RAM_H -#ifndef __ADAM_RAM__ -#define __ADAM_RAM__ +#pragma once #include "exp.h" @@ -42,8 +42,6 @@ private: // device type definition -extern const device_type ADAM_RAM; - - +DECLARE_DEVICE_TYPE(ADAM_RAM, adam_ram_expansion_device) -#endif +#endif // MAME_BUS_ADAM_RAM_H diff --git a/src/devices/bus/adamnet/adamnet.cpp b/src/devices/bus/adamnet/adamnet.cpp index 17a38148196..832ea2309c4 100644 --- a/src/devices/bus/adamnet/adamnet.cpp +++ b/src/devices/bus/adamnet/adamnet.cpp @@ -15,8 +15,8 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type ADAMNET = device_creator; -const device_type ADAMNET_SLOT = device_creator; +DEFINE_DEVICE_TYPE(ADAMNET, adamnet_device, "adamnet", "ADAMnet bus") +DEFINE_DEVICE_TYPE(ADAMNET_SLOT, adamnet_slot_device, "adamnet_slot", "ADAMnet slot") @@ -53,7 +53,7 @@ device_adamnet_card_interface::~device_adamnet_card_interface() // adamnet_slot_device - constructor //------------------------------------------------- adamnet_slot_device::adamnet_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, ADAMNET_SLOT, "ADAMnet slot", tag, owner, clock, "adamnet_slot", __FILE__), + device_t(mconfig, ADAMNET_SLOT, tag, owner, clock), device_slot_interface(mconfig, *this), m_bus(nullptr) { } @@ -81,7 +81,7 @@ void adamnet_slot_device::device_start() //------------------------------------------------- adamnet_device::adamnet_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, ADAMNET, "ADAMnet bus", tag, owner, clock, "adamnet", __FILE__), + device_t(mconfig, ADAMNET, tag, owner, clock), m_txd(1), m_reset(CLEAR_LINE) { diff --git a/src/devices/bus/adamnet/adamnet.h b/src/devices/bus/adamnet/adamnet.h index 2fa5c724e22..76e42742f1c 100644 --- a/src/devices/bus/adamnet/adamnet.h +++ b/src/devices/bus/adamnet/adamnet.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_ADAMNET_ADAMNET_H +#define MAME_BUS_ADAMNET_ADAMNET_H -#ifndef __ADAMNET__ -#define __ADAMNET__ +#pragma once @@ -107,24 +107,28 @@ protected: class device_adamnet_card_interface : public device_slot_card_interface { + friend class adamnet_device; + public: // construction/destruction - device_adamnet_card_interface(const machine_config &mconfig, device_t &device); virtual ~device_adamnet_card_interface(); virtual void adamnet_reset_w(int state) = 0; +protected: + device_adamnet_card_interface(const machine_config &mconfig, device_t &device); + adamnet_device *m_bus; }; // device type definitions -extern const device_type ADAMNET; -extern const device_type ADAMNET_SLOT; +DECLARE_DEVICE_TYPE(ADAMNET, adamnet_device) +DECLARE_DEVICE_TYPE(ADAMNET_SLOT, adamnet_slot_device) SLOT_INTERFACE_EXTERN( adamnet_devices ); -#endif +#endif // MAME_BUS_ADAMNET_ADAMNET_H diff --git a/src/devices/bus/adamnet/ddp.cpp b/src/devices/bus/adamnet/ddp.cpp index 27bc97b3816..91b7127041d 100644 --- a/src/devices/bus/adamnet/ddp.cpp +++ b/src/devices/bus/adamnet/ddp.cpp @@ -23,7 +23,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type ADAM_DDP = device_creator; +DEFINE_DEVICE_TYPE(ADAM_DDP, adam_digital_data_pack_device, "adam_ddp", "Adam Digital Data Pack") //------------------------------------------------- @@ -120,7 +120,7 @@ machine_config_constructor adam_digital_data_pack_device::device_mconfig_additio //------------------------------------------------- adam_digital_data_pack_device::adam_digital_data_pack_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, ADAM_DDP, "Adam DDP", tag, owner, clock, "adam_ddp", __FILE__), + : device_t(mconfig, ADAM_DDP, tag, owner, clock), device_adamnet_card_interface(mconfig, *this), m_maincpu(*this, M6801_TAG), m_ddp0(*this, "cassette"), diff --git a/src/devices/bus/adamnet/ddp.h b/src/devices/bus/adamnet/ddp.h index 72fd3a5929c..2ba54d7e006 100644 --- a/src/devices/bus/adamnet/ddp.h +++ b/src/devices/bus/adamnet/ddp.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_ADAMNET_DDP_H +#define MAME_BUS_ADAMNET_DDP_H -#ifndef __ADAM_DDP__ -#define __ADAM_DDP__ +#pragma once #include "adamnet.h" #include "cpu/m6800/m6800.h" @@ -59,8 +59,6 @@ protected: // device type definition -extern const device_type ADAM_DDP; - - +DECLARE_DEVICE_TYPE(ADAM_DDP, adam_digital_data_pack_device) -#endif +#endif // MAME_BUS_ADAMNET_DDP_H diff --git a/src/devices/bus/adamnet/fdc.cpp b/src/devices/bus/adamnet/fdc.cpp index c2cf39ec7f7..437492a814a 100644 --- a/src/devices/bus/adamnet/fdc.cpp +++ b/src/devices/bus/adamnet/fdc.cpp @@ -34,7 +34,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type ADAM_FDC = device_creator; +DEFINE_DEVICE_TYPE(ADAM_FDC, adam_fdc_device, "adam_fdc", "Adam FDC") //------------------------------------------------- @@ -81,16 +81,16 @@ static ADDRESS_MAP_START( adam_fdc_mem, AS_PROGRAM, 8, adam_fdc_device ) AM_RANGE(0x0000, 0x001f) AM_DEVREADWRITE(M6801_TAG, m6801_cpu_device, m6801_io_r, m6801_io_w) AM_RANGE(0x0080, 0x00ff) AM_RAM AM_RANGE(0x0400, 0x07ff) AM_RAM AM_WRITEONLY AM_SHARE("ram") - AM_RANGE(0x0800, 0x0800) AM_MIRROR(0x3ff) AM_DEVREAD(WD2793_TAG, wd2793_t, status_r) + AM_RANGE(0x0800, 0x0800) AM_MIRROR(0x3ff) AM_DEVREAD(WD2793_TAG, wd2793_device, status_r) AM_RANGE(0x1400, 0x17ff) AM_RAM AM_READONLY AM_SHARE("ram") - AM_RANGE(0x1800, 0x1800) AM_MIRROR(0x3ff) AM_DEVWRITE(WD2793_TAG, wd2793_t, cmd_w) - AM_RANGE(0x2800, 0x2800) AM_MIRROR(0x3ff) AM_DEVREAD(WD2793_TAG, wd2793_t, track_r) - AM_RANGE(0x3800, 0x3800) AM_MIRROR(0x3ff) AM_DEVWRITE(WD2793_TAG, wd2793_t, track_w) - AM_RANGE(0x4800, 0x4800) AM_MIRROR(0x3ff) AM_DEVREAD(WD2793_TAG, wd2793_t, sector_r) - AM_RANGE(0x5800, 0x5800) AM_MIRROR(0x3ff) AM_DEVWRITE(WD2793_TAG, wd2793_t, sector_w) - AM_RANGE(0x6800, 0x6800) AM_MIRROR(0x3ff) AM_DEVREAD(WD2793_TAG, wd2793_t, data_r) + AM_RANGE(0x1800, 0x1800) AM_MIRROR(0x3ff) AM_DEVWRITE(WD2793_TAG, wd2793_device, cmd_w) + AM_RANGE(0x2800, 0x2800) AM_MIRROR(0x3ff) AM_DEVREAD(WD2793_TAG, wd2793_device, track_r) + AM_RANGE(0x3800, 0x3800) AM_MIRROR(0x3ff) AM_DEVWRITE(WD2793_TAG, wd2793_device, track_w) + AM_RANGE(0x4800, 0x4800) AM_MIRROR(0x3ff) AM_DEVREAD(WD2793_TAG, wd2793_device, sector_r) + AM_RANGE(0x5800, 0x5800) AM_MIRROR(0x3ff) AM_DEVWRITE(WD2793_TAG, wd2793_device, sector_w) + AM_RANGE(0x6800, 0x6800) AM_MIRROR(0x3ff) AM_DEVREAD(WD2793_TAG, wd2793_device, data_r) AM_RANGE(0x6c00, 0x6fff) AM_READ(data_r) - AM_RANGE(0x7800, 0x7800) AM_MIRROR(0x3ff) AM_DEVWRITE(WD2793_TAG, wd2793_t, data_w) + AM_RANGE(0x7800, 0x7800) AM_MIRROR(0x3ff) AM_DEVWRITE(WD2793_TAG, wd2793_device, data_w) AM_RANGE(0x8000, 0x8fff) AM_MIRROR(0x7000) AM_ROM AM_REGION(M6801_TAG, 0) ADDRESS_MAP_END @@ -179,7 +179,7 @@ ioport_constructor adam_fdc_device::device_input_ports() const //------------------------------------------------- adam_fdc_device::adam_fdc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, ADAM_FDC, "Adam FDC", tag, owner, clock, "adam_fdc", __FILE__), + : device_t(mconfig, ADAM_FDC, tag, owner, clock), device_adamnet_card_interface(mconfig, *this), m_maincpu(*this, M6801_TAG), m_fdc(*this, WD2793_TAG), diff --git a/src/devices/bus/adamnet/fdc.h b/src/devices/bus/adamnet/fdc.h index 48f17b29bb3..b966d938e33 100644 --- a/src/devices/bus/adamnet/fdc.h +++ b/src/devices/bus/adamnet/fdc.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_ADAMNET_FDC_H +#define MAME_BUS_ADAMNET_FDC_H -#ifndef __ADAM_FDC__ -#define __ADAM_FDC__ +#pragma once #include "adamnet.h" #include "cpu/m6800/m6800.h" @@ -53,7 +53,7 @@ protected: virtual void adamnet_reset_w(int state) override; required_device m_maincpu; - required_device m_fdc; + required_device m_fdc; required_device m_floppy0; floppy_image_device *m_floppy; required_shared_ptr m_ram; @@ -62,7 +62,7 @@ protected: // device type definition -extern const device_type ADAM_FDC; +DECLARE_DEVICE_TYPE(ADAM_FDC, adam_fdc_device) -#endif +#endif // MAME_BUS_ADAMNET_FDC_H diff --git a/src/devices/bus/adamnet/kb.cpp b/src/devices/bus/adamnet/kb.cpp index 2f52e88a700..5bdf877e634 100644 --- a/src/devices/bus/adamnet/kb.cpp +++ b/src/devices/bus/adamnet/kb.cpp @@ -23,7 +23,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type ADAM_KB = device_creator; +DEFINE_DEVICE_TYPE(ADAM_KB, adam_keyboard_device, "adam_kb", "Adam keyboard") //------------------------------------------------- @@ -224,7 +224,7 @@ ioport_constructor adam_keyboard_device::device_input_ports() const //------------------------------------------------- adam_keyboard_device::adam_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, ADAM_KB, "Adam keyboard", tag, owner, clock, "adam_kb", __FILE__), + device_t(mconfig, ADAM_KB, tag, owner, clock), device_adamnet_card_interface(mconfig, *this), m_maincpu(*this, M6801_TAG), m_y(*this, "Y%u", 0), diff --git a/src/devices/bus/adamnet/kb.h b/src/devices/bus/adamnet/kb.h index bec487fe260..e438ec17b68 100644 --- a/src/devices/bus/adamnet/kb.h +++ b/src/devices/bus/adamnet/kb.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_ADAMNET_KB_H +#define MAME_BUS_ADAMNET_KB_H -#ifndef __ADAM_KB__ -#define __ADAM_KB__ +#pragma once #include "adamnet.h" #include "cpu/m6800/m6800.h" @@ -58,8 +58,8 @@ protected: // device type definition -extern const device_type ADAM_KB; +DECLARE_DEVICE_TYPE(ADAM_KB, adam_keyboard_device) -#endif +#endif // MAME_BUS_ADAMNET_KB_H diff --git a/src/devices/bus/adamnet/printer.cpp b/src/devices/bus/adamnet/printer.cpp index 6c2a609c1e5..d09f4f1d845 100644 --- a/src/devices/bus/adamnet/printer.cpp +++ b/src/devices/bus/adamnet/printer.cpp @@ -23,7 +23,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type ADAM_PRN = device_creator; +DEFINE_DEVICE_TYPE(ADAM_PRN, adam_printer_device, "adam_prn", "Adam printer") //------------------------------------------------- @@ -102,7 +102,7 @@ machine_config_constructor adam_printer_device::device_mconfig_additions() const //------------------------------------------------- adam_printer_device::adam_printer_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, ADAM_PRN, "Adam printer", tag, owner, clock, "adam_prn", __FILE__), + : device_t(mconfig, ADAM_PRN, tag, owner, clock), device_adamnet_card_interface(mconfig, *this), m_maincpu(*this, M6801_TAG) { diff --git a/src/devices/bus/adamnet/printer.h b/src/devices/bus/adamnet/printer.h index 7c320b5840a..543cbfdded6 100644 --- a/src/devices/bus/adamnet/printer.h +++ b/src/devices/bus/adamnet/printer.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_ADAMNET_PRINTER_H +#define MAME_BUS_ADAMNET_PRINTER_H -#ifndef __ADAM_PRN__ -#define __ADAM_PRN__ +#pragma once #include "adamnet.h" #include "cpu/m6800/m6800.h" @@ -53,8 +53,6 @@ protected: // device type definition -extern const device_type ADAM_PRN; - - +DECLARE_DEVICE_TYPE(ADAM_PRN, adam_printer_device) -#endif +#endif // MAME_BUS_ADAMNET_PRINTER_H diff --git a/src/devices/bus/adamnet/spi.cpp b/src/devices/bus/adamnet/spi.cpp index 1fe2fbaf6cf..ca50e6def20 100644 --- a/src/devices/bus/adamnet/spi.cpp +++ b/src/devices/bus/adamnet/spi.cpp @@ -26,7 +26,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type ADAM_SPI = device_creator; +DEFINE_DEVICE_TYPE(ADAM_SPI, adam_spi_device, "adam_spi", "Adam SPI") //------------------------------------------------- @@ -111,7 +111,7 @@ machine_config_constructor adam_spi_device::device_mconfig_additions() const //------------------------------------------------- adam_spi_device::adam_spi_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, ADAM_SPI, "Adam SPI", tag, owner, clock, "adam_spi", __FILE__), + : device_t(mconfig, ADAM_SPI, tag, owner, clock), device_adamnet_card_interface(mconfig, *this), m_maincpu(*this, M6801_TAG) { diff --git a/src/devices/bus/adamnet/spi.h b/src/devices/bus/adamnet/spi.h index fad035fb686..01e86d5c67f 100644 --- a/src/devices/bus/adamnet/spi.h +++ b/src/devices/bus/adamnet/spi.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_ADAMNET_SPI_H +#define MAME_BUS_ADAMNET_SPI_H -#ifndef __ADAM_SPI__ -#define __ADAM_SPI__ +#pragma once #include "adamnet.h" #include "bus/centronics/ctronics.h" @@ -52,8 +52,6 @@ protected: // device type definition -extern const device_type ADAM_SPI; - - +DECLARE_DEVICE_TYPE(ADAM_SPI, adam_spi_device) -#endif +#endif // MAME_BUS_ADAMNET_SPI_H diff --git a/src/devices/bus/amiga/keyboard/a1200.cpp b/src/devices/bus/amiga/keyboard/a1200.cpp index 3b0278c62cf..e845d8ff582 100644 --- a/src/devices/bus/amiga/keyboard/a1200.cpp +++ b/src/devices/bus/amiga/keyboard/a1200.cpp @@ -23,7 +23,7 @@ // GLOBAL VARIABLES //************************************************************************** -device_type const A1200_KBD = device_creator; +DEFINE_DEVICE_TYPE_NS(A1200_KBD, bus::amiga::keyboard, a1200_kbd_device, "a1200kbd_rb", "Amiga 1200 Keyboard Rev B") @@ -74,7 +74,7 @@ ROM_END //************************************************************************** a1200_kbd_device::a1200_kbd_device(machine_config const &mconfig, char const *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, A1200_KBD, "Amiga 1200 Keyboard Rev B", tag, owner, clock, "a1200kbd_rb", __FILE__) + : device_t(mconfig, A1200_KBD, tag, owner, clock) , device_amiga_keyboard_interface(mconfig, *this) , m_rows(*this, "ROW%u", 0) , m_mpu(*this, "mpu") diff --git a/src/devices/bus/amiga/keyboard/a1200.h b/src/devices/bus/amiga/keyboard/a1200.h index f29689b18e3..3927657174d 100644 --- a/src/devices/bus/amiga/keyboard/a1200.h +++ b/src/devices/bus/amiga/keyboard/a1200.h @@ -1,26 +1,19 @@ // license:BSD-3-Clause -// copyright-holders: Vas Crabb +// copyright-holders:Vas Crabb /*************************************************************************** Amiga 1200 Keyboard ***************************************************************************/ -#ifndef DEVICES_BUS_AMIGA_KEYBOARD_A1200_H -#define DEVICES_BUS_AMIGA_KEYBOARD_A1200_H +#ifndef MAME_BUS_AMIGA_KEYBOARD_A1200_H +#define MAME_BUS_AMIGA_KEYBOARD_A1200_H #pragma once #include "keyboard.h" -//************************************************************************** -// GLOBAL VARIABLES -//************************************************************************** - -extern device_type const A1200_KBD; - - namespace bus { namespace amiga { namespace keyboard { //************************************************************************** @@ -63,4 +56,11 @@ private: } } } // namespace bus::amiga::keyboard -#endif // DEVICES_BUS_AMIGA_KEYBOARD_A1200_H + +//************************************************************************** +// GLOBAL VARIABLES +//************************************************************************** + +DECLARE_DEVICE_TYPE_NS(A1200_KBD, bus::amiga::keyboard, a1200_kbd_device) + +#endif // MAME_BUS_AMIGA_KEYBOARD_A1200_H diff --git a/src/devices/bus/amiga/keyboard/a500.cpp b/src/devices/bus/amiga/keyboard/a500.cpp index b1cd982a780..f00f0970b24 100644 --- a/src/devices/bus/amiga/keyboard/a500.cpp +++ b/src/devices/bus/amiga/keyboard/a500.cpp @@ -20,16 +20,16 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type A500_KBD_US = device_creator; -const device_type A500_KBD_DE = device_creator; -const device_type A500_KBD_FR = device_creator; -const device_type A500_KBD_IT = device_creator; -const device_type A500_KBD_SE = device_creator; -const device_type A500_KBD_ES = device_creator; -const device_type A500_KBD_DK = device_creator; -const device_type A500_KBD_CH = device_creator; -const device_type A500_KBD_NO = device_creator; -const device_type A500_KBD_GB = device_creator; +DEFINE_DEVICE_TYPE_NS(A500_KBD_US, bus::amiga::keyboard, a500_kbd_us_device, "a500_kbd_us", "Amiga 500 Keyboard (U.S./Canada)") +DEFINE_DEVICE_TYPE_NS(A500_KBD_DE, bus::amiga::keyboard, a500_kbd_de_device, "a500_kbd_de", "Amiga 500 Keyboard (Germany/Austria)") +DEFINE_DEVICE_TYPE_NS(A500_KBD_FR, bus::amiga::keyboard, a500_kbd_fr_device, "a500_kbd_fr", "Amiga 500 Keyboard (France/Belgium)") +DEFINE_DEVICE_TYPE_NS(A500_KBD_IT, bus::amiga::keyboard, a500_kbd_it_device, "a500_kbd_it", "Amiga 500 Keyboard (Italy)") +DEFINE_DEVICE_TYPE_NS(A500_KBD_SE, bus::amiga::keyboard, a500_kbd_se_device, "a500_kbd_se", "Amiga 500 Keyboard (Sweden)") +DEFINE_DEVICE_TYPE_NS(A500_KBD_ES, bus::amiga::keyboard, a500_kbd_es_device, "a500_kbd_es", "Amiga 500 Keyboard (Spain)") +DEFINE_DEVICE_TYPE_NS(A500_KBD_DK, bus::amiga::keyboard, a500_kbd_dk_device, "a500_kbd_dk", "Amiga 500 Keyboard (Denmark)") +DEFINE_DEVICE_TYPE_NS(A500_KBD_CH, bus::amiga::keyboard, a500_kbd_ch_device, "a500_kbd_ch", "Amiga 500 Keyboard (Switzerland)") +DEFINE_DEVICE_TYPE_NS(A500_KBD_NO, bus::amiga::keyboard, a500_kbd_no_device, "a500_kbd_no", "Amiga 500 Keyboard (Norway)") +DEFINE_DEVICE_TYPE_NS(A500_KBD_GB, bus::amiga::keyboard, a500_kbd_gb_device, "a500_kbd_gb", "Amiga 500 Keyboard (UK)") namespace bus { namespace amiga { namespace keyboard { @@ -172,11 +172,8 @@ a500_kbd_device::a500_kbd_device( const char *tag, device_t *owner, uint32_t clock, - device_type type, - const char *name, - const char *shortname, - const char *file) : - device_t(mconfig, type, name, tag, owner, clock, shortname, file), + device_type type) : + device_t(mconfig, type, tag, owner, clock), device_amiga_keyboard_interface(mconfig, *this), m_mpu(*this, "ic1"), m_special(*this, "special"), @@ -197,52 +194,52 @@ a500_kbd_device::a500_kbd_device( a500_kbd_us_device::a500_kbd_us_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - a500_kbd_device(mconfig, tag, owner, clock, A500_KBD_US, "Amiga 500 Keyboard (U.S./Canada)", "a500_kbd_us", __FILE__) + a500_kbd_device(mconfig, tag, owner, clock, A500_KBD_US) { } a500_kbd_de_device::a500_kbd_de_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - a500_kbd_device(mconfig, tag, owner, clock, A500_KBD_DE, "Amiga 500 Keyboard (Germany/Austria)", "a500_kbd_de", __FILE__) + a500_kbd_device(mconfig, tag, owner, clock, A500_KBD_DE) { } a500_kbd_fr_device::a500_kbd_fr_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - a500_kbd_device(mconfig, tag, owner, clock, A500_KBD_FR, "Amiga 500 Keyboard (France/Belgium)", "a500_kbd_fr", __FILE__) + a500_kbd_device(mconfig, tag, owner, clock, A500_KBD_FR) { } a500_kbd_it_device::a500_kbd_it_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - a500_kbd_device(mconfig, tag, owner, clock, A500_KBD_IT, "Amiga 500 Keyboard (Italy)", "a500_kbd_it", __FILE__) + a500_kbd_device(mconfig, tag, owner, clock, A500_KBD_IT) { } a500_kbd_se_device::a500_kbd_se_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - a500_kbd_device(mconfig, tag, owner, clock, A500_KBD_SE, "Amiga 500 Keyboard (Sweden/Finland)", "a500_kbd_se", __FILE__) + a500_kbd_device(mconfig, tag, owner, clock, A500_KBD_SE) { } a500_kbd_es_device::a500_kbd_es_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - a500_kbd_device(mconfig, tag, owner, clock, A500_KBD_ES, "Amiga 500 Keyboard (Spain)", "a500_kbd_es", __FILE__) + a500_kbd_device(mconfig, tag, owner, clock, A500_KBD_ES) { } a500_kbd_dk_device::a500_kbd_dk_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - a500_kbd_device(mconfig, tag, owner, clock, A500_KBD_DK, "Amiga 500 Keyboard (Denmark)", "a500_kbd_dk", __FILE__) + a500_kbd_device(mconfig, tag, owner, clock, A500_KBD_DK) { } a500_kbd_ch_device::a500_kbd_ch_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - a500_kbd_device(mconfig, tag, owner, clock, A500_KBD_CH, "Amiga 500 Keyboard (Switzerland)", "a500_kbd_ch", __FILE__) + a500_kbd_device(mconfig, tag, owner, clock, A500_KBD_CH) { } a500_kbd_no_device::a500_kbd_no_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - a500_kbd_device(mconfig, tag, owner, clock, A500_KBD_NO, "Amiga 500 Keyboard (Norway)", "a500_kbd_no", __FILE__) + a500_kbd_device(mconfig, tag, owner, clock, A500_KBD_NO) { } a500_kbd_gb_device::a500_kbd_gb_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - a500_kbd_device(mconfig, tag, owner, clock, A500_KBD_GB, "Amiga 500 Keyboard (UK)", "a500_kbd_gb", __FILE__) + a500_kbd_device(mconfig, tag, owner, clock, A500_KBD_GB) { } diff --git a/src/devices/bus/amiga/keyboard/a500.h b/src/devices/bus/amiga/keyboard/a500.h index 6716622a1e9..3d1a0fb47c9 100644 --- a/src/devices/bus/amiga/keyboard/a500.h +++ b/src/devices/bus/amiga/keyboard/a500.h @@ -27,8 +27,8 @@ ***************************************************************************/ -#ifndef DEVICES_BUS_AMIGA_KEYBOARD_A500_H -#define DEVICES_BUS_AMIGA_KEYBOARD_A500_H +#ifndef MAME_BUS_AMIGA_KEYBOARD_A500_H +#define MAME_BUS_AMIGA_KEYBOARD_A500_H #pragma once @@ -36,19 +36,6 @@ #include "cpu/m6502/m6502.h" -// device type definition -extern const device_type A500_KBD_US; -extern const device_type A500_KBD_DE; -extern const device_type A500_KBD_FR; -extern const device_type A500_KBD_IT; -extern const device_type A500_KBD_SE; -extern const device_type A500_KBD_ES; -extern const device_type A500_KBD_DK; -extern const device_type A500_KBD_CH; -extern const device_type A500_KBD_NO; -extern const device_type A500_KBD_GB; - - namespace bus { namespace amiga { namespace keyboard { //************************************************************************** @@ -85,10 +72,7 @@ protected: const char *tag, device_t *owner, uint32_t clock, - device_type type, - const char *name, - const char *shortname, - const char *file); + device_type type); // device-level overrides virtual const tiny_rom_entry *device_rom_region() const override; @@ -250,4 +234,17 @@ protected: } } } // namespace bus::amiga::keyboard -#endif // DEVICES_BUS_AMIGA_KEYBOARD_A500_H + +// device type definition +DECLARE_DEVICE_TYPE_NS(A500_KBD_US, bus::amiga::keyboard, a500_kbd_us_device) +DECLARE_DEVICE_TYPE_NS(A500_KBD_DE, bus::amiga::keyboard, a500_kbd_de_device) +DECLARE_DEVICE_TYPE_NS(A500_KBD_FR, bus::amiga::keyboard, a500_kbd_fr_device) +DECLARE_DEVICE_TYPE_NS(A500_KBD_IT, bus::amiga::keyboard, a500_kbd_it_device) +DECLARE_DEVICE_TYPE_NS(A500_KBD_SE, bus::amiga::keyboard, a500_kbd_se_device) +DECLARE_DEVICE_TYPE_NS(A500_KBD_ES, bus::amiga::keyboard, a500_kbd_es_device) +DECLARE_DEVICE_TYPE_NS(A500_KBD_DK, bus::amiga::keyboard, a500_kbd_dk_device) +DECLARE_DEVICE_TYPE_NS(A500_KBD_CH, bus::amiga::keyboard, a500_kbd_ch_device) +DECLARE_DEVICE_TYPE_NS(A500_KBD_NO, bus::amiga::keyboard, a500_kbd_no_device) +DECLARE_DEVICE_TYPE_NS(A500_KBD_GB, bus::amiga::keyboard, a500_kbd_gb_device) + +#endif // MAME_BUS_AMIGA_KEYBOARD_A500_H diff --git a/src/devices/bus/amiga/keyboard/keyboard.cpp b/src/devices/bus/amiga/keyboard/keyboard.cpp index 169fbb05448..8d617350296 100644 --- a/src/devices/bus/amiga/keyboard/keyboard.cpp +++ b/src/devices/bus/amiga/keyboard/keyboard.cpp @@ -16,7 +16,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type AMIGA_KEYBOARD_INTERFACE = device_creator; +DEFINE_DEVICE_TYPE(AMIGA_KEYBOARD_INTERFACE, amiga_keyboard_bus_device, "amiga_kbd", "Amiga Keyboard Interface") //************************************************************************** @@ -28,7 +28,7 @@ const device_type AMIGA_KEYBOARD_INTERFACE = device_creator static devcb_base &set_kclk_handler(device_t &device, _Object object) - { return downcast(device).m_kclk_handler.set_callback(object); } + template static devcb_base &set_kclk_handler(device_t &device, Object &&cb) + { return downcast(device).m_kclk_handler.set_callback(std::forward(cb)); } - template static devcb_base &set_kdat_handler(device_t &device, _Object object) - { return downcast(device).m_kdat_handler.set_callback(object); } + template static devcb_base &set_kdat_handler(device_t &device, Object &&cb) + { return downcast(device).m_kdat_handler.set_callback(std::forward(cb)); } - template static devcb_base &set_krst_handler(device_t &device, _Object object) - { return downcast(device).m_krst_handler.set_callback(object); } + template static devcb_base &set_krst_handler(device_t &device, Object &&cb) + { return downcast(device).m_krst_handler.set_callback(std::forward(cb)); } // called from keyboard DECLARE_WRITE_LINE_MEMBER(kclk_w) { m_kclk_handler(state); } @@ -89,19 +89,20 @@ class device_amiga_keyboard_interface : public device_slot_card_interface { public: // construction/destruction - device_amiga_keyboard_interface(const machine_config &mconfig, device_t &device); virtual ~device_amiga_keyboard_interface(); virtual DECLARE_WRITE_LINE_MEMBER(kdat_w) = 0; protected: + device_amiga_keyboard_interface(const machine_config &mconfig, device_t &device); + amiga_keyboard_bus_device *m_host; }; // device type definition -extern const device_type AMIGA_KEYBOARD_INTERFACE; +DECLARE_DEVICE_TYPE(AMIGA_KEYBOARD_INTERFACE, amiga_keyboard_bus_device) // supported devices SLOT_INTERFACE_EXTERN( amiga_keyboard_devices ); -#endif // DEVICES_BUS_AMIGA_KEYBOARD_H +#endif // MAME_BUS_AMIGA_KEYBOARD_H diff --git a/src/devices/bus/amiga/keyboard/matrix.h b/src/devices/bus/amiga/keyboard/matrix.h index aafc2942ce4..9bfa801f9c8 100644 --- a/src/devices/bus/amiga/keyboard/matrix.h +++ b/src/devices/bus/amiga/keyboard/matrix.h @@ -6,8 +6,8 @@ ***************************************************************************/ -#ifndef DEVICES_BUS_AMIGA_KEYBOARD_MATRIX_H -#define DEVICES_BUS_AMIGA_KEYBOARD_MATRIX_H +#ifndef MAME_BUS_AMIGA_KEYBOARD_MATRIX_H +#define MAME_BUS_AMIGA_KEYBOARD_MATRIX_H #pragma once @@ -26,4 +26,4 @@ INPUT_PORTS_EXTERN(matrix_gb); } } } // namespace bus::amiga::keyboard -#endif // DEVICES_BUS_AMIGA_KEYBOARD_MATRIX_H +#endif // MAME_BUS_AMIGA_KEYBOARD_MATRIX_H diff --git a/src/devices/bus/amiga/zorro/a2052.cpp b/src/devices/bus/amiga/zorro/a2052.cpp index d0f777b333b..f2cef15b32e 100644 --- a/src/devices/bus/amiga/zorro/a2052.cpp +++ b/src/devices/bus/amiga/zorro/a2052.cpp @@ -23,7 +23,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type A2052 = device_creator; +DEFINE_DEVICE_TYPE(A2052, a2052_device, "a2052", "CBM A2052 Fast Memory") //------------------------------------------------- // input_ports - device-specific input ports @@ -52,7 +52,7 @@ ioport_constructor a2052_device::device_input_ports() const //------------------------------------------------- a2052_device::a2052_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, A2052, "CBM A2052 Fast Memory", tag, owner, clock, "a2052", __FILE__), + device_t(mconfig, A2052, tag, owner, clock), device_zorro2_card_interface(mconfig, *this), m_config(*this, "config") { diff --git a/src/devices/bus/amiga/zorro/a2052.h b/src/devices/bus/amiga/zorro/a2052.h index 2928420996a..255b459767d 100644 --- a/src/devices/bus/amiga/zorro/a2052.h +++ b/src/devices/bus/amiga/zorro/a2052.h @@ -8,10 +8,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_BUS_AMIGA_ZORRO_A2052_H +#define MAME_BUS_AMIGA_ZORRO_A2052_H -#ifndef __A2052_H__ -#define __A2052_H__ +#pragma once #include "zorro.h" #include "machine/autoconfig.h" @@ -45,6 +45,6 @@ private: }; // device type definition -extern const device_type A2052; +DECLARE_DEVICE_TYPE(A2052, a2052_device) -#endif +#endif // MAME_BUS_AMIGA_ZORRO_A2052_H diff --git a/src/devices/bus/amiga/zorro/a2232.cpp b/src/devices/bus/amiga/zorro/a2232.cpp index 19a8140f609..39521ee8cdc 100644 --- a/src/devices/bus/amiga/zorro/a2232.cpp +++ b/src/devices/bus/amiga/zorro/a2232.cpp @@ -24,7 +24,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type A2232 = device_creator; +DEFINE_DEVICE_TYPE(A2232, a2232_device, "a2232", "CBM A2232 Serial Card") //------------------------------------------------- // machine_config_additions - device-specific @@ -153,7 +153,7 @@ machine_config_constructor a2232_device::device_mconfig_additions() const //------------------------------------------------- a2232_device::a2232_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, A2232, "CBM A2232 Serial Card", tag, owner, clock, "a2232", __FILE__), + device_t(mconfig, A2232, tag, owner, clock), device_zorro2_card_interface(mconfig, *this), m_iocpu(*this, "iocpu"), m_acia_0(*this, "acia_0"), diff --git a/src/devices/bus/amiga/zorro/a2232.h b/src/devices/bus/amiga/zorro/a2232.h index 2c1eb8c46ee..ca08ad3b152 100644 --- a/src/devices/bus/amiga/zorro/a2232.h +++ b/src/devices/bus/amiga/zorro/a2232.h @@ -10,10 +10,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_BUS_AMIGA_ZORRO_A2232_H +#define MAME_BUS_AMIGA_ZORRO_A2232_H -#ifndef __A2232_H__ -#define __A2232_H__ +#pragma once #include "zorro.h" #include "machine/autoconfig.h" @@ -145,6 +145,6 @@ private: }; // device type definition -extern const device_type A2232; +DECLARE_DEVICE_TYPE(A2232, a2232_device) -#endif // __A2232_H__ +#endif // MAME_BUS_AMIGA_ZORRO_A2232_H diff --git a/src/devices/bus/amiga/zorro/a590.cpp b/src/devices/bus/amiga/zorro/a590.cpp index 09c9a3cf73d..dae30858cd5 100644 --- a/src/devices/bus/amiga/zorro/a590.cpp +++ b/src/devices/bus/amiga/zorro/a590.cpp @@ -18,8 +18,8 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type A590 = device_creator; -const device_type A2091 = device_creator; +DEFINE_DEVICE_TYPE(A590, a590_device, "a590", "CBM A590 HD Controller") +DEFINE_DEVICE_TYPE(A2091, a2091_device, "a2091", "CBM A2091 HD Controller") //------------------------------------------------- // input_ports - device-specific input ports @@ -192,9 +192,8 @@ const tiny_rom_entry *dmac_hdc_device::device_rom_region() const // dmac_hdc_device - constructor //------------------------------------------------- -dmac_hdc_device::dmac_hdc_device(const machine_config &mconfig, device_type type, const char *tag, - device_t *owner, uint32_t clock, const char *name, const char *shortname) : - device_t(mconfig, type, name, tag, owner, clock, shortname, __FILE__), +dmac_hdc_device::dmac_hdc_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), m_int6(false), m_dmac(*this, "dmac"), m_wdc(*this, "wd33c93") @@ -202,7 +201,7 @@ dmac_hdc_device::dmac_hdc_device(const machine_config &mconfig, device_type type } a590_device::a590_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - dmac_hdc_device(mconfig, A590, tag, owner, clock, "CBM A590 HD Controller", "a590"), + dmac_hdc_device(mconfig, A590, tag, owner, clock), device_exp_card_interface(mconfig, *this), m_dips(*this, "dips"), m_jp1(*this, "jp1"), @@ -212,7 +211,7 @@ a590_device::a590_device(const machine_config &mconfig, const char *tag, device_ } a2091_device::a2091_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - dmac_hdc_device(mconfig, A2091, tag, owner, clock, "CBM A2091 HD Controller", "a2091"), + dmac_hdc_device(mconfig, A2091, tag, owner, clock), device_zorro2_card_interface(mconfig, *this), m_jp1(*this, "jp1"), m_jp2(*this, "jp2"), diff --git a/src/devices/bus/amiga/zorro/a590.h b/src/devices/bus/amiga/zorro/a590.h index 0e71423b8b7..7fe27c33d60 100644 --- a/src/devices/bus/amiga/zorro/a590.h +++ b/src/devices/bus/amiga/zorro/a590.h @@ -8,10 +8,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_BUS_AMIGA_ZORRO_A590_H +#define MAME_BUS_AMIGA_ZORRO_A590_H -#ifndef __A590_H__ -#define __A590_H__ +#pragma once #include "zorro.h" #include "machine/dmac.h" @@ -27,10 +27,6 @@ class dmac_hdc_device : public device_t { public: - // construction/destruction - dmac_hdc_device(const machine_config &mconfig, device_type type, const char *tag, - device_t *owner, uint32_t clock, const char *name, const char *shortname); - // optional information overrides virtual machine_config_constructor device_mconfig_additions() const override; virtual const tiny_rom_entry *device_rom_region() const override; @@ -42,6 +38,9 @@ public: DECLARE_WRITE_LINE_MEMBER( scsi_irq_w ); protected: + // construction/destruction + dmac_hdc_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -58,7 +57,7 @@ protected: bool m_int6; // sub-devices - required_device m_dmac; + required_device m_dmac; required_device m_wdc; std::vector m_ram; @@ -127,7 +126,7 @@ private: }; // device type definition -extern const device_type A590; -extern const device_type A2091; +DECLARE_DEVICE_TYPE(A590, a590_device) +DECLARE_DEVICE_TYPE(A2091, a2091_device) -#endif +#endif // MAME_BUS_AMIGA_ZORRO_A590_H diff --git a/src/devices/bus/amiga/zorro/action_replay.cpp b/src/devices/bus/amiga/zorro/action_replay.cpp index e60dad68fdf..5f8641bb9bb 100644 --- a/src/devices/bus/amiga/zorro/action_replay.cpp +++ b/src/devices/bus/amiga/zorro/action_replay.cpp @@ -22,9 +22,9 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type ACTION_REPLAY_MK1 = device_creator; -const device_type ACTION_REPLAY_MK2 = device_creator; -const device_type ACTION_REPLAY_MK3 = device_creator; +DEFINE_DEVICE_TYPE(ACTION_REPLAY_MK1, action_replay_mk1_device, "amiga_ar1", "Datel Action Replay MK-I") +DEFINE_DEVICE_TYPE(ACTION_REPLAY_MK2, action_replay_mk2_device, "amiga_ar2", "Datel Action Replay MK-II") +DEFINE_DEVICE_TYPE(ACTION_REPLAY_MK3, action_replay_mk3_device, "amiga_ar3", "Datel Action Replay MK-III") //------------------------------------------------- // input_ports - device-specific input ports @@ -98,26 +98,25 @@ const tiny_rom_entry *action_replay_mk3_device::device_rom_region() const // action_replay_device - constructor //------------------------------------------------- -action_replay_device::action_replay_device(const machine_config &mconfig, device_type type, const char *tag, - device_t *owner, uint32_t clock, const char *name, const char *shortname) : - device_t(mconfig, type, name, tag, owner, clock, shortname, __FILE__), +action_replay_device::action_replay_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), device_exp_card_interface(mconfig, *this), m_button(*this, "freeze") { } action_replay_mk1_device::action_replay_mk1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - action_replay_device(mconfig, ACTION_REPLAY_MK1, tag, owner, clock, "Datel Action Replay MK-I", "amiga_ar1") + action_replay_device(mconfig, ACTION_REPLAY_MK1, tag, owner, clock) { } action_replay_mk2_device::action_replay_mk2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - action_replay_device(mconfig, ACTION_REPLAY_MK2, tag, owner, clock, "Datel Action Replay MK-II", "amiga_ar2") + action_replay_device(mconfig, ACTION_REPLAY_MK2, tag, owner, clock) { } action_replay_mk3_device::action_replay_mk3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - action_replay_device(mconfig, ACTION_REPLAY_MK3, tag, owner, clock, "Datel Action Replay MK-III", "amiga_ar3") + action_replay_device(mconfig, ACTION_REPLAY_MK3, tag, owner, clock) { } diff --git a/src/devices/bus/amiga/zorro/action_replay.h b/src/devices/bus/amiga/zorro/action_replay.h index 9931cdadaad..5dd1e347049 100644 --- a/src/devices/bus/amiga/zorro/action_replay.h +++ b/src/devices/bus/amiga/zorro/action_replay.h @@ -8,10 +8,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_BUS_AMIGA_ZORRO_ACTION_REPLAY_H +#define MAME_BUS_AMIGA_ZORRO_ACTION_REPLAY_H -#ifndef __ACTION_REPLAY_H__ -#define __ACTION_REPLAY_H__ +#pragma once #include "zorro.h" @@ -25,16 +25,15 @@ class action_replay_device : public device_t, public device_exp_card_interface { public: - // construction/destruction - action_replay_device(const machine_config &mconfig, device_type type, const char *tag, - device_t *owner, uint32_t clock, const char *name, const char *shortname); - // optional information overrides virtual ioport_constructor device_input_ports() const override; DECLARE_INPUT_CHANGED_MEMBER( freeze ); protected: + // construction/destruction + action_replay_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -74,8 +73,8 @@ public: }; // device type definition -extern const device_type ACTION_REPLAY_MK1; -extern const device_type ACTION_REPLAY_MK2; -extern const device_type ACTION_REPLAY_MK3; +DECLARE_DEVICE_TYPE(ACTION_REPLAY_MK1, action_replay_mk1_device) +DECLARE_DEVICE_TYPE(ACTION_REPLAY_MK2, action_replay_mk2_device) +DECLARE_DEVICE_TYPE(ACTION_REPLAY_MK3, action_replay_mk3_device) -#endif +#endif // MAME_BUS_AMIGA_ZORRO_ACTION_REPLAY_H diff --git a/src/devices/bus/amiga/zorro/buddha.cpp b/src/devices/bus/amiga/zorro/buddha.cpp index cc363a00d5d..46dfdb6bade 100644 --- a/src/devices/bus/amiga/zorro/buddha.cpp +++ b/src/devices/bus/amiga/zorro/buddha.cpp @@ -36,7 +36,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type BUDDHA = device_creator; +DEFINE_DEVICE_TYPE(BUDDHA, buddha_device, "buddha", "Buddha IDE controller") //------------------------------------------------- // mmio_map - device-specific memory mapped I/O @@ -98,7 +98,7 @@ const tiny_rom_entry *buddha_device::device_rom_region() const //------------------------------------------------- buddha_device::buddha_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, BUDDHA, "Buddha IDE controller", tag, owner, clock, "buddha", __FILE__), + device_t(mconfig, BUDDHA, tag, owner, clock), device_zorro2_card_interface(mconfig, *this), m_ata_0(*this, "ata_0"), m_ata_1(*this, "ata_1"), diff --git a/src/devices/bus/amiga/zorro/buddha.h b/src/devices/bus/amiga/zorro/buddha.h index fd7fb794eaa..cc01864b885 100644 --- a/src/devices/bus/amiga/zorro/buddha.h +++ b/src/devices/bus/amiga/zorro/buddha.h @@ -8,10 +8,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_BUS_AMIGA_ZORRO_BUDDHA_H +#define MAME_BUS_AMIGA_ZORRO_BUDDHA_H -#ifndef __BUDDHA_H__ -#define __BUDDHA_H__ +#pragma once #include "zorro.h" #include "machine/autoconfig.h" @@ -78,6 +78,6 @@ private: }; // device type definition -extern const device_type BUDDHA; +DECLARE_DEVICE_TYPE(BUDDHA, buddha_device) -#endif +#endif // MAME_BUS_AMIGA_ZORRO_BUDDHA_H diff --git a/src/devices/bus/amiga/zorro/cards.cpp b/src/devices/bus/amiga/zorro/cards.cpp index 4647afa9d0a..572ee491d93 100644 --- a/src/devices/bus/amiga/zorro/cards.cpp +++ b/src/devices/bus/amiga/zorro/cards.cpp @@ -9,6 +9,13 @@ #include "emu.h" #include "cards.h" +#include "a2052.h" +#include "a2232.h" +#include "a590.h" +#include "action_replay.h" +#include "buddha.h" + + SLOT_INTERFACE_START( a1000_expansion_cards ) SLOT_INTERFACE_END diff --git a/src/devices/bus/amiga/zorro/cards.h b/src/devices/bus/amiga/zorro/cards.h index 5f025ab08fd..3d1e00935ca 100644 --- a/src/devices/bus/amiga/zorro/cards.h +++ b/src/devices/bus/amiga/zorro/cards.h @@ -21,17 +21,11 @@ ***************************************************************************/ -#pragma once - -#ifndef __CARDS_H__ -#define __CARDS_H__ +#ifndef MAME_BUS_AMIGA_ZORRO_CARDS_H +#define MAME_BUS_AMIGA_ZORRO_CARDS_H +#pragma once -#include "a2052.h" -#include "a2232.h" -#include "a590.h" -#include "action_replay.h" -#include "buddha.h" SLOT_INTERFACE_EXTERN( a1000_expansion_cards ); SLOT_INTERFACE_EXTERN( a500_expansion_cards ); @@ -40,4 +34,4 @@ SLOT_INTERFACE_EXTERN( a2000_expansion_cards ); SLOT_INTERFACE_EXTERN( zorro2_cards ); SLOT_INTERFACE_EXTERN( zorro3_cards ); -#endif // __CARDS_H__ +#endif // MAME_BUS_AMIGA_ZORRO_CARDS_H diff --git a/src/devices/bus/amiga/zorro/zorro.cpp b/src/devices/bus/amiga/zorro/zorro.cpp index 180f6091157..0e29f13893f 100644 --- a/src/devices/bus/amiga/zorro/zorro.cpp +++ b/src/devices/bus/amiga/zorro/zorro.cpp @@ -16,22 +16,19 @@ // ZORRO SLOT DEVICE //************************************************************************** -const device_type ZORRO_SLOT = device_creator; +DEFINE_DEVICE_TYPE(ZORRO_SLOT, zorro_slot_device, "zorro_slot", "Zorro slot") //------------------------------------------------- // zorro_slot_device - constructor //------------------------------------------------- zorro_slot_device::zorro_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, ZORRO_SLOT, "Zorro slot", tag, owner, clock, "zorro_slot", __FILE__), - device_slot_interface(mconfig, *this), - m_zorro_tag(nullptr) + zorro_slot_device(mconfig, ZORRO_SLOT, tag, owner, clock) { } -zorro_slot_device::zorro_slot_device(const machine_config &mconfig, device_type type, const char *name, - const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), +zorro_slot_device::zorro_slot_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), device_slot_interface(mconfig, *this), m_zorro_tag(nullptr) { @@ -68,9 +65,8 @@ void zorro_slot_device::device_start() // exp_slot_device - constructor //------------------------------------------------- -zorro_device::zorro_device(const machine_config &mconfig, device_type type, const char *name, - const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), +zorro_device::zorro_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), m_space(nullptr), m_cputag(nullptr), m_ovr_handler(*this), @@ -115,22 +111,21 @@ WRITE_LINE_MEMBER( zorro_device::int6_w ) { m_int6_handler(state); } // EXPANSION SLOT DEVICE //************************************************************************** -const device_type EXP_SLOT = device_creator; +DEFINE_DEVICE_TYPE(EXP_SLOT, exp_slot_device, "exp_slot", "86-pin expansion slot") //------------------------------------------------- // exp_slot_device - constructor //------------------------------------------------- exp_slot_device::exp_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - zorro_device(mconfig, EXP_SLOT, "86-pin expansion slot", tag, owner, clock, "exp_slot", __FILE__), + zorro_device(mconfig, EXP_SLOT, tag, owner, clock), m_ipl_handler(*this), m_dev(nullptr) { } -exp_slot_device::exp_slot_device(const machine_config &mconfig, device_type type, const char *name, - const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - zorro_device(mconfig, type, name, tag, owner, clock, shortname, source), +exp_slot_device::exp_slot_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + zorro_device(mconfig, type, tag, owner, clock), m_ipl_handler(*this), m_dev(nullptr) { @@ -181,25 +176,19 @@ void exp_slot_device::fc_w(int code) { if (m_dev) m_dev->fc_w(code); } // ZORRO2 DEVICE //************************************************************************** -const device_type ZORRO2 = device_creator; +DEFINE_DEVICE_TYPE(ZORRO2, zorro2_device, "zorro2", "Zorro-II bus") //------------------------------------------------- // zorro2_device - constructor //------------------------------------------------- zorro2_device::zorro2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - zorro_device(mconfig, ZORRO2, "Zorro-II bus", tag, owner, clock, "zorro2", __FILE__), - m_eint1_handler(*this), - m_eint4_handler(*this), - m_eint5_handler(*this), - m_eint7_handler(*this), - m_autoconfig_device(nullptr) + zorro2_device(mconfig, ZORRO2, tag, owner, clock) { } -zorro2_device::zorro2_device(const machine_config &mconfig, device_type type, const char *name, - const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - zorro_device(mconfig, type, name, tag, owner, clock, shortname, source), +zorro2_device::zorro2_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + zorro_device(mconfig, type, tag, owner, clock), m_eint1_handler(*this), m_eint4_handler(*this), m_eint5_handler(*this), diff --git a/src/devices/bus/amiga/zorro/zorro.h b/src/devices/bus/amiga/zorro/zorro.h index 482608d7949..3429f668ff9 100644 --- a/src/devices/bus/amiga/zorro/zorro.h +++ b/src/devices/bus/amiga/zorro/zorro.h @@ -138,10 +138,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_BUS_AMIGA_ZORRO_ZORRO_H +#define MAME_BUS_AMIGA_ZORRO_ZORRO_H -#ifndef __ZORRO_H__ -#define __ZORRO_H__ +#pragma once //************************************************************************** @@ -230,8 +230,6 @@ class zorro_slot_device : public device_t, public device_slot_interface public: // construction/destruction zorro_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - zorro_slot_device(const machine_config &mconfig, device_type type, const char *name, - const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); // device-level overrides virtual void device_start() override; @@ -240,31 +238,29 @@ public: static void set_zorro_slot(device_t &device, device_t *owner, const char *zorro_tag); protected: + zorro_slot_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // configuration const char *m_zorro_tag; }; // device type definition -extern const device_type ZORRO_SLOT; +DECLARE_DEVICE_TYPE(ZORRO_SLOT, zorro_slot_device) // ======================> base zorro bus device class zorro_device : public device_t { public: - // construction/destruction - zorro_device(const machine_config &mconfig, device_type type, const char *name, - const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - // static configuration helpers static void set_cputag(device_t &device, const char *tag); - template static devcb_base &set_int2_handler(device_t &device, _Object object) - { return downcast(device).m_int2_handler.set_callback(object); } - template static devcb_base &set_int6_handler(device_t &device, _Object object) - { return downcast(device).m_int6_handler.set_callback(object); } - template static devcb_base &set_ovr_handler(device_t &device, _Object object) - { return downcast(device).m_ovr_handler.set_callback(object); } + template static devcb_base &set_int2_handler(device_t &device, Object &&cb) + { return downcast(device).m_int2_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_int6_handler(device_t &device, Object &&cb) + { return downcast(device).m_int6_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_ovr_handler(device_t &device, Object &&cb) + { return downcast(device).m_ovr_handler.set_callback(std::forward(cb)); } virtual void add_card(device_zorro_card_interface *card) = 0; @@ -282,6 +278,9 @@ public: address_space *m_space; protected: + // construction/destruction + zorro_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; @@ -300,11 +299,9 @@ class exp_slot_device : public zorro_device public: // construction/destruction exp_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - exp_slot_device(const machine_config &mconfig, device_type type, const char *name, - const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - template static devcb_base &set_ipl_handler(device_t &device, _Object object) - { return downcast(device).m_ipl_handler.set_callback(object); } + template static devcb_base &set_ipl_handler(device_t &device, Object &&cb) + { return downcast(device).m_ipl_handler.set_callback(std::forward(cb)); } // the expansion slot can only have a single card virtual void add_card(device_zorro_card_interface *card) override; @@ -316,6 +313,8 @@ public: virtual void fc_w(int code) override; protected: + exp_slot_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -327,7 +326,7 @@ private: }; // device type definition -extern const device_type EXP_SLOT; +DECLARE_DEVICE_TYPE(EXP_SLOT, exp_slot_device) // ======================> zorro2 slot device @@ -336,18 +335,16 @@ class zorro2_device : public zorro_device public: // construction/destruction zorro2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - zorro2_device(const machine_config &mconfig, device_type type, const char *name, - const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); ~zorro2_device(); - template static devcb_base &set_eint1_handler(device_t &device, _Object object) - { return downcast(device).m_eint1_handler.set_callback(object); } - template static devcb_base &set_eint4_handler(device_t &device, _Object object) - { return downcast(device).m_eint4_handler.set_callback(object); } - template static devcb_base &set_eint5_handler(device_t &device, _Object object) - { return downcast(device).m_eint5_handler.set_callback(object); } - template static devcb_base &set_eint7_handler(device_t &device, _Object object) - { return downcast(device).m_eint7_handler.set_callback(object); } + template static devcb_base &set_eint1_handler(device_t &device, Object &&cb) + { return downcast(device).m_eint1_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_eint4_handler(device_t &device, Object &&cb) + { return downcast(device).m_eint4_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_eint5_handler(device_t &device, Object &&cb) + { return downcast(device).m_eint5_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_eint7_handler(device_t &device, Object &&cb) + { return downcast(device).m_eint7_handler.set_callback(std::forward(cb)); } // the zorro2 bus supports multiple cards virtual void add_card(device_zorro_card_interface *card) override; @@ -364,6 +361,8 @@ public: virtual void fc_w(int code) override; protected: + zorro2_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -381,7 +380,7 @@ private: }; // device type definition -extern const device_type ZORRO2; +DECLARE_DEVICE_TYPE(ZORRO2, zorro2_device) // ======================> base zorro card interface @@ -390,7 +389,6 @@ class device_zorro_card_interface : public device_slot_card_interface { public: // construction/destruction - device_zorro_card_interface(const machine_config &mconfig, device_t &device); virtual ~device_zorro_card_interface(); virtual void set_zorro_device() = 0; @@ -405,6 +403,8 @@ public: virtual DECLARE_WRITE_LINE_MEMBER( cfgin_w ); protected: + device_zorro_card_interface(const machine_config &mconfig, device_t &device); + zorro_device *m_zorro; }; @@ -414,12 +414,13 @@ class device_exp_card_interface : public device_zorro_card_interface { public: // construction/destruction - device_exp_card_interface(const machine_config &mconfig, device_t &device); virtual ~device_exp_card_interface(); virtual void set_zorro_device() override; protected: + device_exp_card_interface(const machine_config &mconfig, device_t &device); + exp_slot_device *m_slot; }; @@ -429,7 +430,6 @@ class device_zorro2_card_interface : public device_zorro_card_interface { public: // construction/destruction - device_zorro2_card_interface(const machine_config &mconfig, device_t &device); virtual ~device_zorro2_card_interface(); virtual void set_zorro_device() override; @@ -438,6 +438,8 @@ public: device_zorro2_card_interface *m_next; protected: + device_zorro2_card_interface(const machine_config &mconfig, device_t &device); + zorro2_device *m_slot; }; @@ -447,4 +449,4 @@ protected: #include "cards.h" -#endif // __ZORRO_H__ +#endif // MAME_BUS_AMIGA_ZORRO_ZORRO_H diff --git a/src/devices/bus/apf/rom.cpp b/src/devices/bus/apf/rom.cpp index 616d4d42146..113e5bf5259 100644 --- a/src/devices/bus/apf/rom.cpp +++ b/src/devices/bus/apf/rom.cpp @@ -17,30 +17,28 @@ // apf_rom_device - constructor //------------------------------------------------- -const device_type APF_ROM_STD = device_creator; -const device_type APF_ROM_BASIC = device_creator; -const device_type APF_ROM_SPACEDST = device_creator; +DEFINE_DEVICE_TYPE(APF_ROM_STD, apf_rom_device, "apf_rom", "APF Standard Carts") +DEFINE_DEVICE_TYPE(APF_ROM_BASIC, apf_basic_device, "apf_basic", "APF BASIC Carts") +DEFINE_DEVICE_TYPE(APF_ROM_SPACEDST, apf_spacedst_device, "apf_spacedst", "APF Space Destroyer Cart") -apf_rom_device::apf_rom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_apf_cart_interface( mconfig, *this ) +apf_rom_device::apf_rom_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock), device_apf_cart_interface(mconfig, *this) { } apf_rom_device::apf_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, APF_ROM_STD, "APF Standard Carts", tag, owner, clock, "apf_rom", __FILE__), - device_apf_cart_interface( mconfig, *this ) + : apf_rom_device(mconfig, APF_ROM_STD, tag, owner, clock) { } apf_basic_device::apf_basic_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : apf_rom_device(mconfig, APF_ROM_BASIC, "APF BASIC Carts", tag, owner, clock, "apf_basic", __FILE__) + : apf_rom_device(mconfig, APF_ROM_BASIC, tag, owner, clock) { } apf_spacedst_device::apf_spacedst_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : apf_rom_device(mconfig, APF_ROM_SPACEDST, "APF Space Destroyer Cart", tag, owner, clock, "apf_spacedst", __FILE__) + : apf_rom_device(mconfig, APF_ROM_SPACEDST, tag, owner, clock) { } diff --git a/src/devices/bus/apf/rom.h b/src/devices/bus/apf/rom.h index 68b9c3bdbd3..89d82f51a99 100644 --- a/src/devices/bus/apf/rom.h +++ b/src/devices/bus/apf/rom.h @@ -1,7 +1,7 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __APF_ROM_H -#define __APF_ROM_H +#ifndef MAME_BUS_APF_ROM_H +#define MAME_BUS_APF_ROM_H #include "slot.h" @@ -13,15 +13,17 @@ class apf_rom_device : public device_t, { public: // construction/destruction - apf_rom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); apf_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override {} - virtual void device_reset() override {} - // reading and writing virtual DECLARE_READ8_MEMBER(read_rom) override; + +protected: + apf_rom_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual void device_start() override { } + virtual void device_reset() override { } }; // ======================> apf_basic_device @@ -51,12 +53,9 @@ public: - - // device type definition -extern const device_type APF_ROM_STD; -extern const device_type APF_ROM_BASIC; -extern const device_type APF_ROM_SPACEDST; - +DECLARE_DEVICE_TYPE(APF_ROM_STD, apf_rom_device) +DECLARE_DEVICE_TYPE(APF_ROM_BASIC, apf_basic_device) +DECLARE_DEVICE_TYPE(APF_ROM_SPACEDST, apf_spacedst_device) -#endif +#endif // MAME_BUS_APF_ROM_H diff --git a/src/devices/bus/apf/slot.cpp b/src/devices/bus/apf/slot.cpp index b4048f70969..871c43e4655 100644 --- a/src/devices/bus/apf/slot.cpp +++ b/src/devices/bus/apf/slot.cpp @@ -15,7 +15,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type APF_CART_SLOT = device_creator; +DEFINE_DEVICE_TYPE(APF_CART_SLOT, apf_cart_slot_device, "apf_cart_slot", "APF Cartridge Slot") //************************************************************************** // APF Cartridges Interface @@ -73,10 +73,10 @@ void device_apf_cart_interface::ram_alloc(uint32_t size) // apf_cart_slot_device - constructor //------------------------------------------------- apf_cart_slot_device::apf_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, APF_CART_SLOT, "APF Cartridge Slot", tag, owner, clock, "apf_cart_slot", __FILE__), - device_image_interface(mconfig, *this), - device_slot_interface(mconfig, *this), - m_type(APF_STD), m_cart(nullptr) + device_t(mconfig, APF_CART_SLOT, tag, owner, clock), + device_image_interface(mconfig, *this), + device_slot_interface(mconfig, *this), + m_type(APF_STD), m_cart(nullptr) { } diff --git a/src/devices/bus/apf/slot.h b/src/devices/bus/apf/slot.h index 501006cc0f8..92ebbe4ad43 100644 --- a/src/devices/bus/apf/slot.h +++ b/src/devices/bus/apf/slot.h @@ -1,7 +1,7 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __APF_SLOT_H -#define __APF_SLOT_H +#ifndef MAME_BUS_APF_SLOT_H +#define MAME_BUS_APF_SLOT_H #include "softlist_dev.h" @@ -101,7 +101,7 @@ protected: // device type definition -extern const device_type APF_CART_SLOT; +DECLARE_DEVICE_TYPE(APF_CART_SLOT, apf_cart_slot_device) /*************************************************************************** @@ -113,4 +113,5 @@ extern const device_type APF_CART_SLOT; #define MCFG_APF_CARTRIDGE_ADD(_tag,_slot_intf,_def_slot) \ MCFG_DEVICE_ADD(_tag, APF_CART_SLOT, 0) \ MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, false) -#endif + +#endif // MAME_BUS_APF_SLOT_H diff --git a/src/devices/bus/apricot/expansion/cards.cpp b/src/devices/bus/apricot/expansion/cards.cpp index 16804f896d8..eb5b71948c0 100644 --- a/src/devices/bus/apricot/expansion/cards.cpp +++ b/src/devices/bus/apricot/expansion/cards.cpp @@ -8,6 +8,7 @@ #include "emu.h" #include "cards.h" +#include "ram.h" SLOT_INTERFACE_START( apricot_expansion_cards ) SLOT_INTERFACE("128k", APRICOT_128K_RAM) diff --git a/src/devices/bus/apricot/expansion/cards.h b/src/devices/bus/apricot/expansion/cards.h index 4d9b73b0b86..36767f81e44 100644 --- a/src/devices/bus/apricot/expansion/cards.h +++ b/src/devices/bus/apricot/expansion/cards.h @@ -6,13 +6,11 @@ ***************************************************************************/ -#pragma once - -#ifndef __APRICOT_CARDS_H__ -#define __APRICOT_CARDS_H__ +#ifndef MAME_BUS_APRICOT_EXPANSION_CARDS_H +#define MAME_BUS_APRICOT_EXPANSION_CARDS_H -#include "ram.h" +#pragma once SLOT_INTERFACE_EXTERN( apricot_expansion_cards ); -#endif // __APRICOT_CARDS_H__ +#endif // MAME_BUS_APRICOT_EXPANSION_CARDS_H diff --git a/src/devices/bus/apricot/expansion/expansion.cpp b/src/devices/bus/apricot/expansion/expansion.cpp index 8f99831b482..b5717d320a5 100644 --- a/src/devices/bus/apricot/expansion/expansion.cpp +++ b/src/devices/bus/apricot/expansion/expansion.cpp @@ -14,21 +14,19 @@ // EXPANSION SLOT DEVICE //************************************************************************** -const device_type APRICOT_EXPANSION_SLOT = device_creator; +DEFINE_DEVICE_TYPE(APRICOT_EXPANSION_SLOT, apricot_expansion_slot_device, "apricot_exp_slot", "Apricot Expansion Slot") //------------------------------------------------- // apricot_expansion_slot_device - constructor //------------------------------------------------- apricot_expansion_slot_device::apricot_expansion_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, APRICOT_EXPANSION_SLOT, "Apricot Expansion Slot", tag, owner, clock, "apricot_exp_slot", __FILE__), - device_slot_interface(mconfig, *this) + apricot_expansion_slot_device(mconfig, APRICOT_EXPANSION_SLOT, tag, owner, clock) { } -apricot_expansion_slot_device::apricot_expansion_slot_device(const machine_config &mconfig, device_type type, const char *name, - const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), +apricot_expansion_slot_device::apricot_expansion_slot_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), device_slot_interface(mconfig, *this) { } @@ -53,14 +51,14 @@ void apricot_expansion_slot_device::device_start() // EXPANSION BUS DEVICE //************************************************************************** -const device_type APRICOT_EXPANSION_BUS = device_creator; +DEFINE_DEVICE_TYPE(APRICOT_EXPANSION_BUS, apricot_expansion_bus_device, "apricot_exp_bus", "Apricot Expansion Bus") //------------------------------------------------- // apricot_expansion_bus_device - constructor //------------------------------------------------- apricot_expansion_bus_device::apricot_expansion_bus_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, APRICOT_EXPANSION_BUS, "Apricot Expansion Bus", tag, owner, clock, "apricot_exp_bus", __FILE__), + device_t(mconfig, APRICOT_EXPANSION_BUS, tag, owner, clock), m_program(nullptr), m_io(nullptr), m_program_iop(nullptr), @@ -174,8 +172,8 @@ void apricot_expansion_bus_device::install_ram(offs_t addrstart, offs_t addrend, device_apricot_expansion_card_interface::device_apricot_expansion_card_interface(const machine_config &mconfig, device_t &device) : device_slot_card_interface(mconfig, device), - m_next(nullptr), - m_bus(nullptr) + m_bus(nullptr), + m_next(nullptr) { } diff --git a/src/devices/bus/apricot/expansion/expansion.h b/src/devices/bus/apricot/expansion/expansion.h index e87bcf355d4..8ea2a850bc3 100644 --- a/src/devices/bus/apricot/expansion/expansion.h +++ b/src/devices/bus/apricot/expansion/expansion.h @@ -41,10 +41,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_BUS_APRICOT_EXPANSION_EXPANSION_H +#define MAME_BUS_APRICOT_EXPANSION_EXPANSION_H -#ifndef __APRICOT_EXPANSION_H__ -#define __APRICOT_EXPANSION_H__ +#pragma once @@ -97,8 +97,9 @@ class apricot_expansion_slot_device : public device_t, public device_slot_interf public: // construction/destruction apricot_expansion_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - apricot_expansion_slot_device(const machine_config &mconfig, device_type type, const char *name, - const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); + +protected: + apricot_expansion_slot_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); // device-level overrides virtual void device_start() override; @@ -117,23 +118,23 @@ public: apricot_expansion_bus_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual ~apricot_expansion_bus_device(); - template static devcb_base &set_dma1_handler(device_t &device, _Object object) - { return downcast(device).m_dma1_handler.set_callback(object); } + template static devcb_base &set_dma1_handler(device_t &device, Object &&cb) + { return downcast(device).m_dma1_handler.set_callback(std::forward(cb)); } - template static devcb_base &set_dma2_handler(device_t &device, _Object object) - { return downcast(device).m_dma2_handler.set_callback(object); } + template static devcb_base &set_dma2_handler(device_t &device, Object &&cb) + { return downcast(device).m_dma2_handler.set_callback(std::forward(cb)); } - template static devcb_base &set_ext1_handler(device_t &device, _Object object) - { return downcast(device).m_ext1_handler.set_callback(object); } + template static devcb_base &set_ext1_handler(device_t &device, Object &&cb) + { return downcast(device).m_ext1_handler.set_callback(std::forward(cb)); } - template static devcb_base &set_ext2_handler(device_t &device, _Object object) - { return downcast(device).m_ext2_handler.set_callback(object); } + template static devcb_base &set_ext2_handler(device_t &device, Object &&cb) + { return downcast(device).m_ext2_handler.set_callback(std::forward(cb)); } - template static devcb_base &set_int2_handler(device_t &device, _Object object) - { return downcast(device).m_int2_handler.set_callback(object); } + template static devcb_base &set_int2_handler(device_t &device, Object &&cb) + { return downcast(device).m_int2_handler.set_callback(std::forward(cb)); } - template static devcb_base &set_int3_handler(device_t &device, _Object object) - { return downcast(device).m_int3_handler.set_callback(object); } + template static devcb_base &set_int3_handler(device_t &device, Object &&cb) + { return downcast(device).m_int3_handler.set_callback(std::forward(cb)); } // inline configuration static void set_cpu_tag(device_t &device, device_t *owner, const char *tag); @@ -178,25 +179,29 @@ private: }; // device type definition -extern const device_type APRICOT_EXPANSION_BUS; +DECLARE_DEVICE_TYPE(APRICOT_EXPANSION_BUS, apricot_expansion_bus_device) // ======================> device_apricot_expansion_card_interface class device_apricot_expansion_card_interface : public device_slot_card_interface { + template friend class simple_list; + public: // construction/destruction - device_apricot_expansion_card_interface(const machine_config &mconfig, device_t &device); virtual ~device_apricot_expansion_card_interface(); void set_bus_device(apricot_expansion_bus_device *bus); device_apricot_expansion_card_interface *next() const { return m_next; } - device_apricot_expansion_card_interface *m_next; protected: + device_apricot_expansion_card_interface(const machine_config &mconfig, device_t &device); + apricot_expansion_bus_device *m_bus; + + device_apricot_expansion_card_interface *m_next; }; @@ -204,4 +209,4 @@ protected: #include "cards.h" -#endif // __APRICOT_EXPANSION_H__ +#endif // MAME_BUS_APRICOT_EXPANSION_EXPANSION_H diff --git a/src/devices/bus/apricot/expansion/ram.cpp b/src/devices/bus/apricot/expansion/ram.cpp index 46a5bee1543..ba9b146522d 100644 --- a/src/devices/bus/apricot/expansion/ram.cpp +++ b/src/devices/bus/apricot/expansion/ram.cpp @@ -14,9 +14,9 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type APRICOT_256K_RAM = device_creator; -const device_type APRICOT_128K_RAM = device_creator; -const device_type APRICOT_512K_RAM = device_creator; +DEFINE_DEVICE_TYPE(APRICOT_256K_RAM, apricot_256k_ram_device, "apricot_256k_ram", "Apricot 256K RAM Expansion Board") +DEFINE_DEVICE_TYPE(APRICOT_128K_RAM, apricot_128k_ram_device, "apricot_128k_ram", "Apricot 128K/512K RAM Expansion Board (128K)") +DEFINE_DEVICE_TYPE(APRICOT_512K_RAM, apricot_512k_ram_device, "apricot_512k_ram", "Apricot 128K/512K RAM Expansion Board (512K)") //************************************************************************** @@ -44,7 +44,7 @@ ioport_constructor apricot_256k_ram_device::device_input_ports() const //------------------------------------------------- apricot_256k_ram_device::apricot_256k_ram_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, APRICOT_256K_RAM, "Apricot 256K RAM Expansion Board", tag, owner, clock, "apricot_256k_ram", __FILE__), + device_t(mconfig, APRICOT_256K_RAM, tag, owner, clock), device_apricot_expansion_card_interface(mconfig, *this), m_sw(*this, "sw") { @@ -98,7 +98,7 @@ ioport_constructor apricot_128k_ram_device::device_input_ports() const //------------------------------------------------- apricot_128k_ram_device::apricot_128k_ram_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, APRICOT_128K_RAM, "Apricot 128/512K RAM Expansion Board (128K)", tag, owner, clock, "apricot_128k_ram", __FILE__), + device_t(mconfig, APRICOT_128K_RAM, tag, owner, clock), device_apricot_expansion_card_interface(mconfig, *this), m_strap(*this, "strap") { @@ -152,7 +152,7 @@ ioport_constructor apricot_512k_ram_device::device_input_ports() const //------------------------------------------------- apricot_512k_ram_device::apricot_512k_ram_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, APRICOT_512K_RAM, "Apricot 128/512K RAM Expansion Board (512K)", tag, owner, clock, "apricot_512k_ram", __FILE__), + device_t(mconfig, APRICOT_512K_RAM, tag, owner, clock), device_apricot_expansion_card_interface(mconfig, *this), m_strap(*this, "strap") { diff --git a/src/devices/bus/apricot/expansion/ram.h b/src/devices/bus/apricot/expansion/ram.h index e9e837b660c..d6692b49ba7 100644 --- a/src/devices/bus/apricot/expansion/ram.h +++ b/src/devices/bus/apricot/expansion/ram.h @@ -6,10 +6,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_BUS_APRICOT_RAM_H +#define MAME_BUS_APRICOT_RAM_H -#ifndef __APRICOT_RAM__ -#define __APRICOT_RAM__ +#pragma once #include "expansion.h" @@ -80,9 +80,9 @@ private: // device type definition -extern const device_type APRICOT_256K_RAM; -extern const device_type APRICOT_128K_RAM; -extern const device_type APRICOT_512K_RAM; +DECLARE_DEVICE_TYPE(APRICOT_256K_RAM, apricot_256k_ram_device) +DECLARE_DEVICE_TYPE(APRICOT_128K_RAM, apricot_128k_ram_device) +DECLARE_DEVICE_TYPE(APRICOT_512K_RAM, apricot_512k_ram_device) -#endif // __APRICOT_RAM__ +#endif // MAME_BUS_APRICOT_RAM_H diff --git a/src/devices/bus/apricot/keyboard/hle.cpp b/src/devices/bus/apricot/keyboard/hle.cpp index 7fef733b134..be7454c0da3 100644 --- a/src/devices/bus/apricot/keyboard/hle.cpp +++ b/src/devices/bus/apricot/keyboard/hle.cpp @@ -58,7 +58,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type APRICOT_KEYBOARD_HLE = device_creator; +DEFINE_DEVICE_TYPE(APRICOT_KEYBOARD_HLE, apricot_keyboard_hle_device, "apricotkb_hle", "Apricot Keyboard (HLE)") //------------------------------------------------- @@ -214,7 +214,7 @@ machine_config_constructor apricot_keyboard_hle_device::device_mconfig_additions //------------------------------------------------- apricot_keyboard_hle_device::apricot_keyboard_hle_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, APRICOT_KEYBOARD_HLE, "Apricot Keyboard (HLE)", tag, owner, clock, "apricotkb_hle", __FILE__), + device_t(mconfig, APRICOT_KEYBOARD_HLE, tag, owner, clock), device_apricot_keyboard_interface(mconfig, *this), device_buffered_serial_interface(mconfig, *this), device_matrix_keyboard_interface(mconfig, *this, "row_0", "row_1", "row_2", "row_3", "row_4", "row_5", "row_6", "row_7", "row_8", "row_9", "row_a", "row_b", "row_c"), diff --git a/src/devices/bus/apricot/keyboard/hle.h b/src/devices/bus/apricot/keyboard/hle.h index 9096c434f65..176a3bfcc22 100644 --- a/src/devices/bus/apricot/keyboard/hle.h +++ b/src/devices/bus/apricot/keyboard/hle.h @@ -6,10 +6,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_BUS_APRICOT_KEYBOARD_HLE_H +#define MAME_BUS_APRICOT_KEYBOARD_HLE_H -#ifndef __APRICOT_KEYBOARD_HLE_H__ -#define __APRICOT_KEYBOARD_HLE_H__ +#pragma once #include "keyboard.h" #include "machine/keyboard.h" @@ -52,8 +52,6 @@ protected: virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; private: - required_device m_rtc; - enum { CMD_REQ_TIME_AND_DATE = 0xe1, CMD_SET_TIME_AND_DATE = 0xe4, @@ -64,12 +62,14 @@ private: ACK_DIAGNOSTICS = 0xfb }; + required_device m_rtc; + int m_rtc_index; }; // device type definition -extern const device_type APRICOT_KEYBOARD_HLE; +DECLARE_DEVICE_TYPE(APRICOT_KEYBOARD_HLE, apricot_keyboard_hle_device) -#endif // __APRICOT_KEYBOARD_HLE_H__ +#endif // MAME_BUS_APRICOT_KEYBOARD_HLE_H diff --git a/src/devices/bus/apricot/keyboard/keyboard.cpp b/src/devices/bus/apricot/keyboard/keyboard.cpp index e406c0c4cd5..87c491b6693 100644 --- a/src/devices/bus/apricot/keyboard/keyboard.cpp +++ b/src/devices/bus/apricot/keyboard/keyboard.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type APRICOT_KEYBOARD_INTERFACE = device_creator; +DEFINE_DEVICE_TYPE(APRICOT_KEYBOARD_INTERFACE, apricot_keyboard_bus_device, "apricot_kbd", "Apricot Keyboard Interface") //************************************************************************** @@ -27,7 +27,7 @@ const device_type APRICOT_KEYBOARD_INTERFACE = device_creator static devcb_base &set_in_handler(device_t &device, _Object object) - { return downcast(device).m_in_handler.set_callback(object); } + template static devcb_base &set_in_handler(device_t &device, Object &&cb) + { return downcast(device).m_in_handler.set_callback(std::forward(cb)); } // called from keyboard DECLARE_WRITE_LINE_MEMBER( in_w ) { m_in_handler(state); } @@ -88,21 +88,22 @@ class device_apricot_keyboard_interface : public device_slot_card_interface { public: // construction/destruction - device_apricot_keyboard_interface(const machine_config &mconfig, device_t &device); virtual ~device_apricot_keyboard_interface(); - virtual void out_w(int state) {}; + virtual void out_w(int state) = 0; protected: + device_apricot_keyboard_interface(const machine_config &mconfig, device_t &device); + apricot_keyboard_bus_device *m_host; }; // device type definition -extern const device_type APRICOT_KEYBOARD_INTERFACE; +DECLARE_DEVICE_TYPE(APRICOT_KEYBOARD_INTERFACE, apricot_keyboard_bus_device) // supported devices SLOT_INTERFACE_EXTERN( apricot_keyboard_devices ); -#endif // __APRICOT_KEYBOARD_H__ +#endif // MAME_BUS_APRICOT_KEYBOARD_KEYBOARD_H diff --git a/src/devices/bus/arcadia/rom.cpp b/src/devices/bus/arcadia/rom.cpp index 73640851160..2221fed2f2c 100644 --- a/src/devices/bus/arcadia/rom.cpp +++ b/src/devices/bus/arcadia/rom.cpp @@ -18,24 +18,22 @@ // arcadia_rom_device - constructor //------------------------------------------------- -const device_type ARCADIA_ROM_STD = device_creator; -const device_type ARCADIA_ROM_GOLF = device_creator; +DEFINE_DEVICE_TYPE(ARCADIA_ROM_STD, arcadia_rom_device, "arcadia_rom", "Emerson Arcadia Standard Carts") +DEFINE_DEVICE_TYPE(ARCADIA_ROM_GOLF, arcadia_golf_device, "arcadia_golf", "Emerson Arcadia Golf Cart") -arcadia_rom_device::arcadia_rom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_arcadia_cart_interface( mconfig, *this ) +arcadia_rom_device::arcadia_rom_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock), device_arcadia_cart_interface(mconfig, *this) { } arcadia_rom_device::arcadia_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, ARCADIA_ROM_STD, "Emerson Arcadia Standard Carts", tag, owner, clock, "arcadia_rom", __FILE__), - device_arcadia_cart_interface( mconfig, *this ) + : arcadia_rom_device(mconfig, ARCADIA_ROM_STD, tag, owner, clock) { } arcadia_golf_device::arcadia_golf_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : arcadia_rom_device(mconfig, ARCADIA_ROM_GOLF, "Emerson Arcadia Golf Cart", tag, owner, clock, "arcadia_golf", __FILE__) + : arcadia_rom_device(mconfig, ARCADIA_ROM_GOLF, tag, owner, clock) { } diff --git a/src/devices/bus/arcadia/rom.h b/src/devices/bus/arcadia/rom.h index ad77caa1bc3..9cacb9b5e6e 100644 --- a/src/devices/bus/arcadia/rom.h +++ b/src/devices/bus/arcadia/rom.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __ARCADIA_ROM_H -#define __ARCADIA_ROM_H +#ifndef MAME_BUS_ARCADIA_ROM_H +#define MAME_BUS_ARCADIA_ROM_H + +#pragma once #include "slot.h" @@ -13,16 +15,18 @@ class arcadia_rom_device : public device_t, { public: // construction/destruction - arcadia_rom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); arcadia_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override {} - virtual void device_reset() override {} - // reading and writing virtual DECLARE_READ8_MEMBER(read_rom) override; virtual DECLARE_READ8_MEMBER(extra_rom) override; + +public: + arcadia_rom_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual void device_start() override { } + virtual void device_reset() override { } }; // ======================> arcadia_golf_device @@ -40,5 +44,7 @@ public: // device type definition extern const device_type ARCADIA_ROM_STD; extern const device_type ARCADIA_ROM_GOLF; +DECLARE_DEVICE_TYPE(ARCADIA_ROM_STD, arcadia_rom_device) +DECLARE_DEVICE_TYPE(ARCADIA_ROM_GOLF, arcadia_golf_device) -#endif +#endif // MAME_BUS_ARCADIA_ROM_H diff --git a/src/devices/bus/arcadia/slot.cpp b/src/devices/bus/arcadia/slot.cpp index d264205a21e..fed92bee9cd 100644 --- a/src/devices/bus/arcadia/slot.cpp +++ b/src/devices/bus/arcadia/slot.cpp @@ -15,7 +15,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type EA2001_CART_SLOT = device_creator; +DEFINE_DEVICE_TYPE(EA2001_CART_SLOT, arcadia_cart_slot_device, "arcadia_cart_slot", "Emerson Arcadia Cartridge Slot") //************************************************************************** // ARCADIA Cartridges Interface @@ -63,10 +63,10 @@ void device_arcadia_cart_interface::rom_alloc(uint32_t size, const char *tag) // arcadia_cart_slot_device - constructor //------------------------------------------------- arcadia_cart_slot_device::arcadia_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, EA2001_CART_SLOT, "Emerson Arcadia Cartridge Slot", tag, owner, clock, "arcadia_cart_slot", __FILE__), - device_image_interface(mconfig, *this), - device_slot_interface(mconfig, *this), - m_type(ARCADIA_STD), m_cart(nullptr) + device_t(mconfig, EA2001_CART_SLOT, tag, owner, clock), + device_image_interface(mconfig, *this), + device_slot_interface(mconfig, *this), + m_type(ARCADIA_STD), m_cart(nullptr) { } diff --git a/src/devices/bus/arcadia/slot.h b/src/devices/bus/arcadia/slot.h index 16af9153a6c..b67912d2cf7 100644 --- a/src/devices/bus/arcadia/slot.h +++ b/src/devices/bus/arcadia/slot.h @@ -1,7 +1,7 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __ARCADIA_SLOT_H -#define __ARCADIA_SLOT_H +#ifndef MAME_BUS_ARCADIA_SLOT_H +#define MAME_BUS_ARCADIA_SLOT_H #include "softlist_dev.h" @@ -54,9 +54,6 @@ public: arcadia_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual ~arcadia_cart_slot_device(); - // device-level overrides - virtual void device_start() override; - // image-level overrides virtual image_init_result call_load() override; virtual void call_unload() override {} @@ -81,6 +78,8 @@ public: virtual DECLARE_READ8_MEMBER(extra_rom); protected: + // device-level overrides + virtual void device_start() override; int m_type; device_arcadia_cart_interface* m_cart; @@ -89,7 +88,7 @@ protected: // device type definition -extern const device_type EA2001_CART_SLOT; +DECLARE_DEVICE_TYPE(EA2001_CART_SLOT, arcadia_cart_slot_device) /*************************************************************************** @@ -101,4 +100,5 @@ extern const device_type EA2001_CART_SLOT; #define MCFG_ARCADIA_CARTRIDGE_ADD(_tag,_slot_intf,_def_slot) \ MCFG_DEVICE_ADD(_tag, EA2001_CART_SLOT, 0) \ MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, false) -#endif + +#endif // MAME_BUS_ARCADIA_SLOT_H diff --git a/src/devices/bus/astrocde/exp.cpp b/src/devices/bus/astrocde/exp.cpp index 3e67050ddc2..40b6fbecbc4 100644 --- a/src/devices/bus/astrocde/exp.cpp +++ b/src/devices/bus/astrocde/exp.cpp @@ -14,7 +14,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type ASTROCADE_EXP_SLOT = device_creator; +DEFINE_DEVICE_TYPE(ASTROCADE_EXP_SLOT, astrocade_exp_device, "astrocade_exp", "Bally Astrocade expansion") device_astrocade_card_interface::device_astrocade_card_interface(const machine_config &mconfig, device_t &device) @@ -36,9 +36,9 @@ device_astrocade_card_interface::~device_astrocade_card_interface() // astrocade_exp_device - constructor //------------------------------------------------- astrocade_exp_device::astrocade_exp_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, ASTROCADE_EXP_SLOT, "Bally Astrocade expansion", tag, owner, clock, "astrocde_exp", __FILE__), - device_slot_interface(mconfig, *this), - m_card_mounted(false), m_card(nullptr) + device_t(mconfig, ASTROCADE_EXP_SLOT, tag, owner, clock), + device_slot_interface(mconfig, *this), + m_card_mounted(false), m_card(nullptr) { } diff --git a/src/devices/bus/astrocde/exp.h b/src/devices/bus/astrocde/exp.h index 110bdaf0367..9be60975ed7 100644 --- a/src/devices/bus/astrocde/exp.h +++ b/src/devices/bus/astrocde/exp.h @@ -1,7 +1,7 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __ASTROCADE_EXP_H -#define __ASTROCADE_EXP_H +#ifndef MAME_BUS_ASTROCADE_EXP_H +#define MAME_BUS_ASTROCADE_EXP_H // ======================> device_astrocade_card_interface @@ -9,19 +9,20 @@ class device_astrocade_card_interface : public device_slot_card_interface { public: // construction/destruction - device_astrocade_card_interface(const machine_config &mconfig, device_t &device); virtual ~device_astrocade_card_interface(); // reading and writing virtual DECLARE_READ8_MEMBER(read) { return 0xff; } - virtual DECLARE_WRITE8_MEMBER(write) {} + virtual DECLARE_WRITE8_MEMBER(write) { } + +protected: + device_astrocade_card_interface(const machine_config &mconfig, device_t &device); }; // ======================> astrocade_exp_device -class astrocade_exp_device : public device_t, - public device_slot_interface +class astrocade_exp_device : public device_t, public device_slot_interface { public: // construction/destruction @@ -45,11 +46,11 @@ protected: // device type definition -extern const device_type ASTROCADE_EXP_SLOT; +DECLARE_DEVICE_TYPE(ASTROCADE_EXP_SLOT, astrocade_exp_device) #define MCFG_ASTROCADE_EXPANSION_SLOT_ADD(_tag, _slot_intf, _def_slot) \ MCFG_DEVICE_ADD(_tag, ASTROCADE_EXP_SLOT, 0) \ MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, false) -#endif +#endif // MAME_BUS_ASTROCADE_EXP_H diff --git a/src/devices/bus/astrocde/ram.cpp b/src/devices/bus/astrocde/ram.cpp index 89d16e6de77..36d1ed9ab77 100644 --- a/src/devices/bus/astrocde/ram.cpp +++ b/src/devices/bus/astrocde/ram.cpp @@ -60,56 +60,54 @@ // astrocade_rom_device - constructor //------------------------------------------------- -const device_type ASTROCADE_BLUERAM_4K = device_creator; -const device_type ASTROCADE_BLUERAM_16K = device_creator; -const device_type ASTROCADE_BLUERAM_32K = device_creator; -const device_type ASTROCADE_VIPER_SYS1 = device_creator; -const device_type ASTROCADE_WHITERAM = device_creator; -const device_type ASTROCADE_RL64RAM = device_creator; +DEFINE_DEVICE_TYPE(ASTROCADE_BLUERAM_4K, astrocade_blueram_4k_device, "astrocade_br4", "Bally Astrocade Blue RAM 4K") +DEFINE_DEVICE_TYPE(ASTROCADE_BLUERAM_16K, astrocade_blueram_16k_device, "astrocade_br16", "Bally Astrocade Blue RAM 16K") +DEFINE_DEVICE_TYPE(ASTROCADE_BLUERAM_32K, astrocade_blueram_32k_device, "astrocade_br32", "Bally Astrocade Blue RAM 32K") +DEFINE_DEVICE_TYPE(ASTROCADE_VIPER_SYS1, astrocade_viper_sys1_device, "astrocade_vs1", "Bally Astrocade Viper System 1") +DEFINE_DEVICE_TYPE(ASTROCADE_WHITERAM, astrocade_whiteram_device, "astrocade_lwr", "Bally Astrocade Lil' White RAM 32K") +DEFINE_DEVICE_TYPE(ASTROCADE_RL64RAM, astrocade_rl64ram_device, "astrocade_rl64", "Bally Astrocade R&L RAM 64K") -astrocade_blueram_4k_device::astrocade_blueram_4k_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_astrocade_card_interface(mconfig, *this), - m_write_prot(*this, "RAM_PROTECT") +astrocade_blueram_4k_device::astrocade_blueram_4k_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock), + device_astrocade_card_interface(mconfig, *this), + m_write_prot(*this, "RAM_PROTECT") { } astrocade_blueram_4k_device::astrocade_blueram_4k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, ASTROCADE_BLUERAM_4K, "Bally Astrocade Blue RAM 4K", tag, owner, clock, "astrocade_br4", __FILE__), - device_astrocade_card_interface(mconfig, *this), - m_write_prot(*this, "RAM_PROTECT") + : astrocade_blueram_4k_device(mconfig, ASTROCADE_BLUERAM_4K, tag, owner, clock) { } astrocade_blueram_16k_device::astrocade_blueram_16k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : astrocade_blueram_4k_device(mconfig, ASTROCADE_BLUERAM_16K, "Bally Astrocade Blue RAM 16K", tag, owner, clock, "astrocade_br16", __FILE__) + : astrocade_blueram_4k_device(mconfig, ASTROCADE_BLUERAM_16K, tag, owner, clock) { } astrocade_blueram_32k_device::astrocade_blueram_32k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : astrocade_blueram_4k_device(mconfig, ASTROCADE_BLUERAM_32K, "Bally Astrocade Blue RAM 32K", tag, owner, clock, "astrocade_br32", __FILE__) + : astrocade_blueram_4k_device(mconfig, ASTROCADE_BLUERAM_32K, tag, owner, clock) { } astrocade_viper_sys1_device::astrocade_viper_sys1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, ASTROCADE_VIPER_SYS1, "Bally Astrocade Viper System 1", tag, owner, clock, "astrocade_vs1", __FILE__), - device_astrocade_card_interface(mconfig, *this), - m_write_prot(*this, "RAM_PROTECT") + : device_t(mconfig, ASTROCADE_VIPER_SYS1, tag, owner, clock), + device_astrocade_card_interface(mconfig, *this), + m_write_prot(*this, "RAM_PROTECT") { } astrocade_whiteram_device::astrocade_whiteram_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, ASTROCADE_WHITERAM, "Bally Astrocade Lil' White RAM 32K", tag, owner, clock, "astrocade_lwr", __FILE__), - device_astrocade_card_interface(mconfig, *this), - m_write_prot(*this, "RAM_PROTECT") + : device_t(mconfig, ASTROCADE_WHITERAM, tag, owner, clock), + device_astrocade_card_interface(mconfig, *this), + m_write_prot(*this, "RAM_PROTECT") { } astrocade_rl64ram_device::astrocade_rl64ram_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, ASTROCADE_RL64RAM, "Bally Astrocade R&L RAM 64K", tag, owner, clock, "astrocade_rl64", __FILE__), - device_astrocade_card_interface(mconfig, *this), - m_write_prot(*this, "RAM_PROTECT") + : device_t(mconfig, ASTROCADE_RL64RAM, tag, owner, clock), + device_astrocade_card_interface(mconfig, *this), + m_write_prot(*this, "RAM_PROTECT") { } diff --git a/src/devices/bus/astrocde/ram.h b/src/devices/bus/astrocde/ram.h index d714c14e3b3..83f9483d2e8 100644 --- a/src/devices/bus/astrocde/ram.h +++ b/src/devices/bus/astrocde/ram.h @@ -1,24 +1,22 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __ASTROCADE_RAM_H -#define __ASTROCADE_RAM_H +#ifndef MAME_BUS_ASTROCADE_RAM_H +#define MAME_BUS_ASTROCADE_RAM_H + +#pragma once #include "exp.h" // ======================> astrocade_blueram_4k_device -class astrocade_blueram_4k_device : public device_t, - public device_astrocade_card_interface +class astrocade_blueram_4k_device : public device_t, public device_astrocade_card_interface { public: // construction/destruction - astrocade_blueram_4k_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); astrocade_blueram_4k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // device-level overrides - virtual void device_start() override { m_ram.resize(0x1000); save_item(NAME(m_ram)); } - virtual void device_reset() override {} virtual ioport_constructor device_input_ports() const override; // reading and writing @@ -26,6 +24,11 @@ public: virtual DECLARE_WRITE8_MEMBER(write) override; protected: + astrocade_blueram_4k_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + virtual void device_start() override { m_ram.resize(0x1000); save_item(NAME(m_ram)); } + virtual void device_reset() override { } + std::vector m_ram; required_ioport m_write_prot; }; @@ -54,22 +57,23 @@ public: // ======================> astrocade_viper_sys1_device -class astrocade_viper_sys1_device : public device_t, - public device_astrocade_card_interface +class astrocade_viper_sys1_device : public device_t, public device_astrocade_card_interface { public: // construction/destruction astrocade_viper_sys1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // device-level overrides - virtual void device_start() override { m_ram.resize(0x4000); save_item(NAME(m_ram)); } - virtual void device_reset() override {} virtual ioport_constructor device_input_ports() const override; // reading and writing virtual DECLARE_READ8_MEMBER(read) override; virtual DECLARE_WRITE8_MEMBER(write) override; +protected: + virtual void device_start() override { m_ram.resize(0x4000); save_item(NAME(m_ram)); } + virtual void device_reset() override { } + private: std::vector m_ram; required_ioport m_write_prot; @@ -77,22 +81,23 @@ private: // ======================> astrocade_whiteram_device -class astrocade_whiteram_device : public device_t, - public device_astrocade_card_interface +class astrocade_whiteram_device : public device_t, public device_astrocade_card_interface { public: // construction/destruction astrocade_whiteram_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // device-level overrides - virtual void device_start() override { m_ram.resize(0x8000); save_item(NAME(m_ram)); } - virtual void device_reset() override {} virtual ioport_constructor device_input_ports() const override; // reading and writing virtual DECLARE_READ8_MEMBER(read) override; virtual DECLARE_WRITE8_MEMBER(write) override; +protected: + virtual void device_start() override { m_ram.resize(0x8000); save_item(NAME(m_ram)); } + virtual void device_reset() override { } + private: std::vector m_ram; required_ioport m_write_prot; @@ -100,22 +105,23 @@ private: // ======================> astrocade_rl64ram_device -class astrocade_rl64ram_device : public device_t, - public device_astrocade_card_interface +class astrocade_rl64ram_device : public device_t, public device_astrocade_card_interface { public: // construction/destruction astrocade_rl64ram_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // device-level overrides - virtual void device_start() override { m_ram.resize(0xb000); save_item(NAME(m_ram)); } - virtual void device_reset() override {} virtual ioport_constructor device_input_ports() const override; // reading and writing virtual DECLARE_READ8_MEMBER(read) override; virtual DECLARE_WRITE8_MEMBER(write) override; +protected: + virtual void device_start() override { m_ram.resize(0xb000); save_item(NAME(m_ram)); } + virtual void device_reset() override { } + private: std::vector m_ram; required_ioport m_write_prot; @@ -124,12 +130,12 @@ private: // device type definition -extern const device_type ASTROCADE_BLUERAM_4K; -extern const device_type ASTROCADE_BLUERAM_16K; -extern const device_type ASTROCADE_BLUERAM_32K; -extern const device_type ASTROCADE_VIPER_SYS1; -extern const device_type ASTROCADE_WHITERAM; -extern const device_type ASTROCADE_RL64RAM; +DECLARE_DEVICE_TYPE(ASTROCADE_BLUERAM_4K, astrocade_blueram_4k_device) +DECLARE_DEVICE_TYPE(ASTROCADE_BLUERAM_16K, astrocade_blueram_16k_device) +DECLARE_DEVICE_TYPE(ASTROCADE_BLUERAM_32K, astrocade_blueram_32k_device) +DECLARE_DEVICE_TYPE(ASTROCADE_VIPER_SYS1, astrocade_viper_sys1_device) +DECLARE_DEVICE_TYPE(ASTROCADE_WHITERAM, astrocade_whiteram_device) +DECLARE_DEVICE_TYPE(ASTROCADE_RL64RAM, astrocade_rl64ram_device) -#endif +#endif // MAME_BUS_ASTROCADE_RAM_H diff --git a/src/devices/bus/astrocde/rom.cpp b/src/devices/bus/astrocde/rom.cpp index c5edddd7d3a..fcebedfc81d 100644 --- a/src/devices/bus/astrocde/rom.cpp +++ b/src/devices/bus/astrocde/rom.cpp @@ -17,31 +17,29 @@ // astrocade_rom_device - constructor //------------------------------------------------- -const device_type ASTROCADE_ROM_STD = device_creator; -const device_type ASTROCADE_ROM_256K = device_creator; -const device_type ASTROCADE_ROM_512K = device_creator; +DEFINE_DEVICE_TYPE(ASTROCADE_ROM_STD, astrocade_rom_device, "astrocade_rom", "Bally Astrocade Standard Carts") +DEFINE_DEVICE_TYPE(ASTROCADE_ROM_256K, astrocade_rom_256k_device, "astrocade_256k", "Bally Astrocade 256K Carts") +DEFINE_DEVICE_TYPE(ASTROCADE_ROM_512K, astrocade_rom_512k_device, "astrocade_512k", "Bally Astrocade 512K Carts") -astrocade_rom_device::astrocade_rom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_astrocade_cart_interface(mconfig, *this) +astrocade_rom_device::astrocade_rom_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock), device_astrocade_cart_interface(mconfig, *this) { } astrocade_rom_device::astrocade_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, ASTROCADE_ROM_STD, "Bally Astrocade Standard Carts", tag, owner, clock, "astrocade_rom", __FILE__), - device_astrocade_cart_interface(mconfig, *this) + : astrocade_rom_device(mconfig, ASTROCADE_ROM_STD, tag, owner, clock) { } astrocade_rom_256k_device::astrocade_rom_256k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : astrocade_rom_device(mconfig, ASTROCADE_ROM_256K, "Bally Astrocade 256K Carts", tag, owner, clock, "astrocade_256k", __FILE__), m_base_bank(0) - { + : astrocade_rom_device(mconfig, ASTROCADE_ROM_256K, tag, owner, clock), m_base_bank(0) +{ } astrocade_rom_512k_device::astrocade_rom_512k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : astrocade_rom_device(mconfig, ASTROCADE_ROM_512K, "Bally Astrocade 512K Carts", tag, owner, clock, "astrocade_512k", __FILE__), m_base_bank(0) - { + : astrocade_rom_device(mconfig, ASTROCADE_ROM_512K, tag, owner, clock), m_base_bank(0) +{ } diff --git a/src/devices/bus/astrocde/rom.h b/src/devices/bus/astrocde/rom.h index 9fa0b20e5fe..0471ada8dd1 100644 --- a/src/devices/bus/astrocde/rom.h +++ b/src/devices/bus/astrocde/rom.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __ASTROCADE_ROM_H -#define __ASTROCADE_ROM_H +#ifndef MAME_BUS_ASTROCADE_ROM_H +#define MAME_BUS_ASTROCADE_ROM_H + +#pragma once #include "slot.h" @@ -13,15 +15,17 @@ class astrocade_rom_device : public device_t, { public: // construction/destruction - astrocade_rom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); astrocade_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override {} - virtual void device_reset() override {} - // reading and writing virtual DECLARE_READ8_MEMBER(read_rom) override; + +protected: + astrocade_rom_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual void device_start() override { } + virtual void device_reset() override { } }; // ======================> astrocade_rom_256k_device @@ -32,13 +36,13 @@ public: // construction/destruction astrocade_rom_256k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual void device_start() override; - virtual void device_reset() override; - // reading and writing virtual DECLARE_READ8_MEMBER(read_rom) override; private: + virtual void device_start() override; + virtual void device_reset() override; + uint8_t m_base_bank; }; @@ -50,24 +54,20 @@ public: // construction/destruction astrocade_rom_512k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual void device_start() override; - virtual void device_reset() override; - // reading and writing virtual DECLARE_READ8_MEMBER(read_rom) override; private: + virtual void device_start() override; + virtual void device_reset() override; + uint8_t m_base_bank; }; - - - // device type definition -extern const device_type ASTROCADE_ROM_STD; -extern const device_type ASTROCADE_ROM_256K; -extern const device_type ASTROCADE_ROM_512K; - +DECLARE_DEVICE_TYPE(ASTROCADE_ROM_STD, astrocade_rom_device) +DECLARE_DEVICE_TYPE(ASTROCADE_ROM_256K, astrocade_rom_256k_device) +DECLARE_DEVICE_TYPE(ASTROCADE_ROM_512K, astrocade_rom_512k_device) -#endif +#endif // MAME_BUS_ASTROCADE_ROM_H diff --git a/src/devices/bus/astrocde/slot.cpp b/src/devices/bus/astrocde/slot.cpp index d997b6454e5..b83b8e576ad 100644 --- a/src/devices/bus/astrocde/slot.cpp +++ b/src/devices/bus/astrocde/slot.cpp @@ -15,7 +15,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type ASTROCADE_CART_SLOT = device_creator; +DEFINE_DEVICE_TYPE(ASTROCADE_CART_SLOT, astrocade_cart_slot_device, "astrocade_cart_slot", "Bally Astrocade Cartridge Slot") //************************************************************************** // Astrocade Cartridges Interface @@ -63,10 +63,10 @@ void device_astrocade_cart_interface::rom_alloc(uint32_t size, const char *tag) // astrocade_cart_slot_device - constructor //------------------------------------------------- astrocade_cart_slot_device::astrocade_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, ASTROCADE_CART_SLOT, "Bally Astrocade Cartridge Slot", tag, owner, clock, "astrocade_cart_slot", __FILE__), - device_image_interface(mconfig, *this), - device_slot_interface(mconfig, *this), - m_type(ASTROCADE_STD), m_cart(nullptr) + device_t(mconfig, ASTROCADE_CART_SLOT, tag, owner, clock), + device_image_interface(mconfig, *this), + device_slot_interface(mconfig, *this), + m_type(ASTROCADE_STD), m_cart(nullptr) { } diff --git a/src/devices/bus/astrocde/slot.h b/src/devices/bus/astrocde/slot.h index 702342aad8c..dc7a2c84ca9 100644 --- a/src/devices/bus/astrocde/slot.h +++ b/src/devices/bus/astrocde/slot.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __ASTROCADE_SLOT_H -#define __ASTROCADE_SLOT_H +#ifndef MAME_BUS_ASTROCADE_SLOT_H +#define MAME_BUS_ASTROCADE_SLOT_H + +#pragma once #include "softlist_dev.h" @@ -26,7 +28,6 @@ class device_astrocade_cart_interface : public device_slot_card_interface { public: // construction/destruction - device_astrocade_cart_interface(const machine_config &mconfig, device_t &device); virtual ~device_astrocade_cart_interface(); // reading and writing @@ -37,6 +38,8 @@ public: uint32_t get_rom_size() { return m_rom_size; } protected: + device_astrocade_cart_interface(const machine_config &mconfig, device_t &device); + // internal state uint8_t *m_rom; uint32_t m_rom_size; @@ -54,9 +57,6 @@ public: astrocade_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual ~astrocade_cart_slot_device(); - // device-level overrides - virtual void device_start() override; - // image-level overrides virtual image_init_result call_load() override; virtual void call_unload() override {} @@ -80,6 +80,8 @@ public: virtual DECLARE_READ8_MEMBER(read_rom); protected: + // device-level overrides + virtual void device_start() override; int m_type; device_astrocade_cart_interface* m_cart; @@ -88,7 +90,7 @@ protected: // device type definition -extern const device_type ASTROCADE_CART_SLOT; +DECLARE_DEVICE_TYPE(ASTROCADE_CART_SLOT, astrocade_cart_slot_device) /*************************************************************************** @@ -100,4 +102,5 @@ extern const device_type ASTROCADE_CART_SLOT; #define MCFG_ASTROCADE_CARTRIDGE_ADD(_tag,_slot_intf,_def_slot) \ MCFG_DEVICE_ADD(_tag, ASTROCADE_CART_SLOT, 0) \ MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, false) -#endif + +#endif // MAME_BUS_ASTROCADE_SLOT_H diff --git a/src/devices/bus/bbc/1mhzbus/1mhzbus.cpp b/src/devices/bus/bbc/1mhzbus/1mhzbus.cpp index 273025a5ce9..a03d3b439ee 100644 --- a/src/devices/bus/bbc/1mhzbus/1mhzbus.cpp +++ b/src/devices/bus/bbc/1mhzbus/1mhzbus.cpp @@ -14,7 +14,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type BBC_1MHZBUS_SLOT = device_creator; +DEFINE_DEVICE_TYPE(BBC_1MHZBUS_SLOT, bbc_1mhzbus_slot_device, "bbc_1mhzbus_slot", "BBC Micro 1MHz Bus port") @@ -52,8 +52,8 @@ device_bbc_1mhzbus_interface::~device_bbc_1mhzbus_interface() //------------------------------------------------- bbc_1mhzbus_slot_device::bbc_1mhzbus_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, BBC_1MHZBUS_SLOT, "BBC Micro 1MHz Bus port", tag, owner, clock, "bbc_1mhzbus_slot", __FILE__), - device_slot_interface(mconfig, *this), + device_t(mconfig, BBC_1MHZBUS_SLOT, tag, owner, clock), + device_slot_interface(mconfig, *this), m_card(nullptr), m_irq_handler(*this), m_nmi_handler(*this) diff --git a/src/devices/bus/bbc/1mhzbus/1mhzbus.h b/src/devices/bus/bbc/1mhzbus/1mhzbus.h index f8b5f4083f9..450e7fd8357 100644 --- a/src/devices/bus/bbc/1mhzbus/1mhzbus.h +++ b/src/devices/bus/bbc/1mhzbus/1mhzbus.h @@ -72,10 +72,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_BBC_1MHZBUS_1MHZBUS_H +#define MAME_BUS_BBC_1MHZBUS_1MHZBUS_H -#ifndef __BBC_1MHZBUS_SLOT__ -#define __BBC_1MHZBUS_SLOT__ +#pragma once @@ -122,11 +122,11 @@ public: virtual ~bbc_1mhzbus_slot_device(); // callbacks - template static devcb_base &set_irq_handler(device_t &device, _Object object) - { return downcast(device).m_irq_handler.set_callback(object); } + template static devcb_base &set_irq_handler(device_t &device, Object &&cb) + { return downcast(device).m_irq_handler.set_callback(std::forward(cb)); } - template static devcb_base &set_nmi_handler(device_t &device, _Object object) - { return downcast(device).m_nmi_handler.set_callback(object); } + template static devcb_base &set_nmi_handler(device_t &device, Object &&cb) + { return downcast(device).m_nmi_handler.set_callback(std::forward(cb)); } DECLARE_WRITE_LINE_MEMBER( irq_w ) { m_irq_handler(state); } DECLARE_WRITE_LINE_MEMBER( nmi_w ) { m_nmi_handler(state); } @@ -150,19 +150,20 @@ class device_bbc_1mhzbus_interface : public device_slot_card_interface { public: // construction/destruction - device_bbc_1mhzbus_interface(const machine_config &mconfig, device_t &device); virtual ~device_bbc_1mhzbus_interface(); protected: + device_bbc_1mhzbus_interface(const machine_config &mconfig, device_t &device); + bbc_1mhzbus_slot_device *m_slot; }; // device type definition -extern const device_type BBC_1MHZBUS_SLOT; +DECLARE_DEVICE_TYPE(BBC_1MHZBUS_SLOT, bbc_1mhzbus_slot_device) SLOT_INTERFACE_EXTERN( bbcb_1mhzbus_devices ); SLOT_INTERFACE_EXTERN( bbcm_1mhzbus_devices ); -#endif +#endif // MAME_BUS_BBC_1MHZBUS_1MHZBUS_H diff --git a/src/devices/bus/bbc/1mhzbus/opus3.cpp b/src/devices/bus/bbc/1mhzbus/opus3.cpp index ca748a4763f..cb2d41d5583 100644 --- a/src/devices/bus/bbc/1mhzbus/opus3.cpp +++ b/src/devices/bus/bbc/1mhzbus/opus3.cpp @@ -45,7 +45,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type BBC_OPUS3 = device_creator; +DEFINE_DEVICE_TYPE(BBC_OPUS3, bbc_opus3_device, "bbc_opus3", "Opus Challenger 3-in-1") //------------------------------------------------- @@ -117,7 +117,7 @@ const tiny_rom_entry *bbc_opus3_device::device_rom_region() const //------------------------------------------------- bbc_opus3_device::bbc_opus3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, BBC_OPUS3, "Opus Challenger 3-in-1", tag, owner, clock, "bbc_opus3", __FILE__), + : device_t(mconfig, BBC_OPUS3, tag, owner, clock), device_bbc_1mhzbus_interface(mconfig, *this), m_dfs_rom(*this, "dfs_rom"), m_ramdisk(*this, "ramdisk"), @@ -136,7 +136,7 @@ void bbc_opus3_device::device_start() address_space& space = machine().device("maincpu")->memory().space(AS_PROGRAM); m_slot = dynamic_cast(owner()); - space.install_readwrite_handler(0xfcf8, 0xfcfb, READ8_DEVICE_DELEGATE(m_fdc, wd1770_t, read), WRITE8_DEVICE_DELEGATE(m_fdc, wd1770_t, write)); + space.install_readwrite_handler(0xfcf8, 0xfcfb, READ8_DEVICE_DELEGATE(m_fdc, wd1770_device, read), WRITE8_DEVICE_DELEGATE(m_fdc, wd1770_device, write)); space.install_write_handler(0xfcfc, 0xfcfc, WRITE8_DELEGATE(bbc_opus3_device, wd1770l_write)); space.install_write_handler(0xfcfe, 0xfcff, WRITE8_DELEGATE(bbc_opus3_device, page_w)); space.install_readwrite_handler(0xfd00, 0xfdff, READ8_DELEGATE(bbc_opus3_device, ramdisk_r), WRITE8_DELEGATE(bbc_opus3_device, ramdisk_w)); diff --git a/src/devices/bus/bbc/1mhzbus/opus3.h b/src/devices/bus/bbc/1mhzbus/opus3.h index b521aa87de2..09139db001b 100644 --- a/src/devices/bus/bbc/1mhzbus/opus3.h +++ b/src/devices/bus/bbc/1mhzbus/opus3.h @@ -7,8 +7,8 @@ **********************************************************************/ -#ifndef __BBC_OPUS3__ -#define __BBC_OPUS3__ +#ifndef MAME_BUS_BBC_1MHZBUS_OPUS3_H +#define MAME_BUS_BBC_1MHZBUS_OPUS3_H #include "1mhzbus.h" #include "machine/ram.h" @@ -48,7 +48,7 @@ protected: private: required_memory_region m_dfs_rom; required_device m_ramdisk; - required_device m_fdc; + required_device m_fdc; required_device m_floppy0; optional_device m_floppy1; @@ -59,7 +59,7 @@ private: // device type definition -extern const device_type BBC_OPUS3; +DECLARE_DEVICE_TYPE(BBC_OPUS3, bbc_opus3_device) -#endif /* __BBC_OPUS3__ */ +#endif // MAME_BUS_BBC_1MHZBUS_OPUS3_H diff --git a/src/devices/bus/bbc/analogue/analogue.cpp b/src/devices/bus/bbc/analogue/analogue.cpp index 726f869771c..5d7f4497d67 100644 --- a/src/devices/bus/bbc/analogue/analogue.cpp +++ b/src/devices/bus/bbc/analogue/analogue.cpp @@ -14,7 +14,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type BBC_ANALOGUE_SLOT = device_creator; +DEFINE_DEVICE_TYPE(BBC_ANALOGUE_SLOT, bbc_analogue_slot_device, "bbc_analogue_slot", "BBC Micro Analogue port") @@ -51,8 +51,8 @@ device_bbc_analogue_interface::~device_bbc_analogue_interface() //------------------------------------------------- bbc_analogue_slot_device::bbc_analogue_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, BBC_ANALOGUE_SLOT, "BBC Micro Analogue port", tag, owner, clock, "bbc_analogue_slot", __FILE__), - device_slot_interface(mconfig, *this) + device_t(mconfig, BBC_ANALOGUE_SLOT, tag, owner, clock), + device_slot_interface(mconfig, *this) { } diff --git a/src/devices/bus/bbc/analogue/analogue.h b/src/devices/bus/bbc/analogue/analogue.h index d63ef808018..6d831c109f8 100644 --- a/src/devices/bus/bbc/analogue/analogue.h +++ b/src/devices/bus/bbc/analogue/analogue.h @@ -26,10 +26,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_BBC_ANALOGUE_ANALOGUE_H +#define MAME_BUS_BBC_ANALOGUE_ANALOGUE_H -#ifndef __BBC_ANALOGUE_SLOT__ -#define __BBC_ANALOGUE_SLOT__ +#pragma once @@ -61,7 +61,6 @@ class bbc_analogue_slot_device : public device_t, public device_slot_interface public: // construction/destruction bbc_analogue_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual ~bbc_analogue_slot_device() {} uint8_t ch_r(int channel); uint8_t pb_r(); @@ -81,21 +80,21 @@ class device_bbc_analogue_interface : public device_slot_card_interface { public: // construction/destruction - device_bbc_analogue_interface(const machine_config &mconfig, device_t &device); virtual ~device_bbc_analogue_interface(); virtual uint8_t ch_r(int channel) { return 0x00; }; virtual uint8_t pb_r() { return 0x30; }; protected: + device_bbc_analogue_interface(const machine_config &mconfig, device_t &device); + bbc_analogue_slot_device *m_slot; }; // device type definition -extern const device_type BBC_ANALOGUE_SLOT; +DECLARE_DEVICE_TYPE(BBC_ANALOGUE_SLOT, bbc_analogue_slot_device) SLOT_INTERFACE_EXTERN( bbc_analogue_devices ); - -#endif +#endif // MAME_BUS_BBC_ANALOGUE_ANALOGUE_H diff --git a/src/devices/bus/bbc/analogue/joystick.cpp b/src/devices/bus/bbc/analogue/joystick.cpp index 8c6aa767af6..e67abff9e22 100644 --- a/src/devices/bus/bbc/analogue/joystick.cpp +++ b/src/devices/bus/bbc/analogue/joystick.cpp @@ -18,8 +18,8 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type BBC_ACORNJOY = device_creator; -const device_type BBC_VOLTMACE3B = device_creator; +DEFINE_DEVICE_TYPE(BBC_ACORNJOY, bbc_acornjoy_device, "bbc_acornjoy", "Acorn Analogue Joysticks") +DEFINE_DEVICE_TYPE(BBC_VOLTMACE3B, bbc_voltmace3b_device, "bbc_voltmace3b", "Voltmace Delta 3b Twin Joysticks") static INPUT_PORTS_START( acornjoy ) @@ -82,8 +82,8 @@ ioport_constructor bbc_voltmace3b_device::device_input_ports() const // bbc_joystick_device - constructor //------------------------------------------------- -bbc_joystick_device::bbc_joystick_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), +bbc_joystick_device::bbc_joystick_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), device_bbc_analogue_interface(mconfig, *this), m_joy(*this, "JOY%u", 0), m_buttons(*this, "BUTTONS") @@ -91,12 +91,12 @@ bbc_joystick_device::bbc_joystick_device(const machine_config &mconfig, device_t } bbc_acornjoy_device::bbc_acornjoy_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - bbc_joystick_device(mconfig, BBC_ACORNJOY, "Acorn Analogue Joysticks", tag, owner, clock, "bbc_acornjoy", __FILE__) + bbc_joystick_device(mconfig, BBC_ACORNJOY, tag, owner, clock) { } bbc_voltmace3b_device::bbc_voltmace3b_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - bbc_joystick_device(mconfig, BBC_VOLTMACE3B, "Voltmace Delta 3b Twin Joysticks", tag, owner, clock, "bbc_voltmace3b", __FILE__) + bbc_joystick_device(mconfig, BBC_VOLTMACE3B, tag, owner, clock) { } diff --git a/src/devices/bus/bbc/analogue/joystick.h b/src/devices/bus/bbc/analogue/joystick.h index bf2b906102a..887e87c74d7 100644 --- a/src/devices/bus/bbc/analogue/joystick.h +++ b/src/devices/bus/bbc/analogue/joystick.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_BBC_ANALOGUE_JOYSTICK_H +#define MAME_BUS_BBC_ANALOGUE_JOYSTICK_H -#ifndef __BBC_JOYSTICK__ -#define __BBC_JOYSTICK__ +#pragma once #include "analogue.h" @@ -24,11 +24,10 @@ class bbc_joystick_device : public device_t, public device_bbc_analogue_interface { -public: +protected: // construction/destruction - bbc_joystick_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); + bbc_joystick_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); -protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -59,8 +58,7 @@ public: // device type definition -extern const device_type BBC_ACORNJOY; -extern const device_type BBC_VOLTMACE3B; - +DECLARE_DEVICE_TYPE(BBC_ACORNJOY, bbc_acornjoy_device) +DECLARE_DEVICE_TYPE(BBC_VOLTMACE3B, bbc_voltmace3b_device) -#endif +#endif // MAME_BUS_BBC_ANALOGUE_JOYSTICK_H diff --git a/src/devices/bus/bbc/fdc/acorn.cpp b/src/devices/bus/bbc/fdc/acorn.cpp index 45a13a5dc18..397f3b9408d 100644 --- a/src/devices/bus/bbc/fdc/acorn.cpp +++ b/src/devices/bus/bbc/fdc/acorn.cpp @@ -15,8 +15,8 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type BBC_ACORN8271 = device_creator; -const device_type BBC_ACORN1770 = device_creator; +DEFINE_DEVICE_TYPE(BBC_ACORN8271, bbc_acorn8271_device, "bbc_acorn8271", "Acorn 8721 FDC") +DEFINE_DEVICE_TYPE(BBC_ACORN1770, bbc_acorn1770_device, "bbc_acorn1770", "Acorn 1770 FDC") //------------------------------------------------- @@ -171,7 +171,7 @@ const tiny_rom_entry *bbc_acorn1770_device::device_rom_region() const //------------------------------------------------- bbc_acorn8271_device::bbc_acorn8271_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, BBC_ACORN8271, "Acorn 8271 FDC", tag, owner, clock, "bbc_acorn8271", __FILE__), + : device_t(mconfig, BBC_ACORN8271, tag, owner, clock), device_bbc_fdc_interface(mconfig, *this), m_dfs_rom(*this, "dfs_rom"), m_fdc(*this, "i8271"), @@ -181,7 +181,7 @@ bbc_acorn8271_device::bbc_acorn8271_device(const machine_config &mconfig, const } bbc_acorn1770_device::bbc_acorn1770_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, BBC_ACORN1770, "Acorn 1770 FDC", tag, owner, clock, "bbc_acorn1770", __FILE__), + : device_t(mconfig, BBC_ACORN1770, tag, owner, clock), device_bbc_fdc_interface(mconfig, *this), m_dfs_rom(*this, "dfs_rom"), m_fdc(*this, "wd1770"), @@ -212,7 +212,7 @@ void bbc_acorn1770_device::device_start() m_slot = dynamic_cast(owner()); space.install_readwrite_handler(0xfe80, 0xfe83, READ8_DELEGATE(bbc_acorn1770_device, wd1770l_read), WRITE8_DELEGATE(bbc_acorn1770_device, wd1770l_write)); - space.install_readwrite_handler(0xfe84, 0xfe9f, READ8_DEVICE_DELEGATE(m_fdc, wd1770_t, read), WRITE8_DEVICE_DELEGATE(m_fdc, wd1770_t, write)); + space.install_readwrite_handler(0xfe84, 0xfe9f, READ8_DEVICE_DELEGATE(m_fdc, wd1770_device, read), WRITE8_DEVICE_DELEGATE(m_fdc, wd1770_device, write)); m_drive_control = 0xfe; } diff --git a/src/devices/bus/bbc/fdc/acorn.h b/src/devices/bus/bbc/fdc/acorn.h index 9e1ded12cfb..30fd049432f 100644 --- a/src/devices/bus/bbc/fdc/acorn.h +++ b/src/devices/bus/bbc/fdc/acorn.h @@ -7,8 +7,10 @@ **********************************************************************/ -#ifndef __BBC_ACORN__ -#define __BBC_ACORN__ +#ifndef MAME_BUS__BBC_FDC_ACORN_H +#define MAME_BUS__BBC_FDC_ACORN_H + +#pragma once #include "fdc.h" #include "machine/i8271.h" @@ -78,7 +80,7 @@ protected: private: required_memory_region m_dfs_rom; - required_device m_fdc; + required_device m_fdc; required_device m_floppy0; optional_device m_floppy1; @@ -87,8 +89,8 @@ private: // device type definition -extern const device_type BBC_ACORN8271; -extern const device_type BBC_ACORN1770; +DECLARE_DEVICE_TYPE(BBC_ACORN8271, bbc_acorn8271_device) +DECLARE_DEVICE_TYPE(BBC_ACORN1770, bbc_acorn1770_device) -#endif /* __BBC_ACORN__ */ +#endif // MAME_BUS__BBC_FDC_ACORN_H diff --git a/src/devices/bus/bbc/fdc/cumana.cpp b/src/devices/bus/bbc/fdc/cumana.cpp index ca36e75a2da..242d8b38a05 100644 --- a/src/devices/bus/bbc/fdc/cumana.cpp +++ b/src/devices/bus/bbc/fdc/cumana.cpp @@ -17,8 +17,8 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type BBC_CUMANA1 = device_creator; -const device_type BBC_CUMANA2 = device_creator; +DEFINE_DEVICE_TYPE(BBC_CUMANA1, bbc_cumana1_device, "bbc_cumana1", "Cumana QFS 8877A FDC") +DEFINE_DEVICE_TYPE(BBC_CUMANA2, bbc_cumana2_device, "bbc_cumana2", "Cumana QFS Issue 2 8877A FDC") //------------------------------------------------- @@ -99,8 +99,8 @@ const tiny_rom_entry *bbc_cumana2_device::device_rom_region() const // bbc_cumanafdc_device - constructor //------------------------------------------------- -bbc_cumanafdc_device::bbc_cumanafdc_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), +bbc_cumanafdc_device::bbc_cumanafdc_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), device_bbc_fdc_interface(mconfig, *this), m_dfs_rom(*this, "dfs_rom"), m_fdc(*this, "mb8877a"), @@ -110,13 +110,13 @@ bbc_cumanafdc_device::bbc_cumanafdc_device(const machine_config &mconfig, device } bbc_cumana1_device::bbc_cumana1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - bbc_cumanafdc_device(mconfig, BBC_CUMANA1, "Cumana QFS 8877A FDC", tag, owner, clock, "bbc_cumana1", __FILE__) + bbc_cumanafdc_device(mconfig, BBC_CUMANA1, tag, owner, clock) { m_invert = true; } bbc_cumana2_device::bbc_cumana2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - bbc_cumanafdc_device(mconfig, BBC_CUMANA2, "Cumana QFS Issue 2 8877A FDC", tag, owner, clock, "bbc_cumana2", __FILE__) + bbc_cumanafdc_device(mconfig, BBC_CUMANA2, tag, owner, clock) { m_invert = false; } @@ -133,7 +133,7 @@ void bbc_cumanafdc_device::device_start() m_slot = dynamic_cast(owner()); space.install_readwrite_handler(0xfe80, 0xfe83, READ8_DELEGATE(bbc_cumanafdc_device, ctrl_r), WRITE8_DELEGATE(bbc_cumanafdc_device, ctrl_w)); - space.install_readwrite_handler(0xfe84, 0xfe9f, READ8_DEVICE_DELEGATE(m_fdc, mb8877_t, read), WRITE8_DEVICE_DELEGATE(m_fdc, mb8877_t, write)); + space.install_readwrite_handler(0xfe84, 0xfe9f, READ8_DEVICE_DELEGATE(m_fdc, mb8877_device, read), WRITE8_DEVICE_DELEGATE(m_fdc, mb8877_device, write)); } //------------------------------------------------- diff --git a/src/devices/bus/bbc/fdc/cumana.h b/src/devices/bus/bbc/fdc/cumana.h index 5bae494f090..465644ba683 100644 --- a/src/devices/bus/bbc/fdc/cumana.h +++ b/src/devices/bus/bbc/fdc/cumana.h @@ -6,9 +6,10 @@ **********************************************************************/ +#ifndef MAME_BUS_BBC_FDC_CUMANA_H +#define MAME_BUS_BBC_FDC_CUMANA_H -#ifndef __BBC_CUMANA__ -#define __BBC_CUMANA__ +#pragma once #include "fdc.h" #include "machine/wd_fdc.h" @@ -25,9 +26,6 @@ class bbc_cumanafdc_device : { public: - // construction/destruction - bbc_cumanafdc_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - DECLARE_FLOPPY_FORMATS(floppy_formats); DECLARE_WRITE_LINE_MEMBER(fdc_intrq_w); @@ -37,6 +35,9 @@ public: DECLARE_WRITE8_MEMBER(ctrl_w); protected: + // construction/destruction + bbc_cumanafdc_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -45,7 +46,7 @@ protected: private: required_memory_region m_dfs_rom; - required_device m_fdc; + required_device m_fdc; required_device m_floppy0; optional_device m_floppy1; @@ -73,8 +74,8 @@ public: // device type definition -extern const device_type BBC_CUMANA1; -extern const device_type BBC_CUMANA2; +DECLARE_DEVICE_TYPE(BBC_CUMANA1, bbc_cumana1_device) +DECLARE_DEVICE_TYPE(BBC_CUMANA2, bbc_cumana2_device) -#endif /* __BBC_CUMANA__ */ +#endif // MAME_BUS_BBC_FDC_CUMANA_H diff --git a/src/devices/bus/bbc/fdc/fdc.cpp b/src/devices/bus/bbc/fdc/fdc.cpp index 58bbfc416e3..bd824459c2d 100644 --- a/src/devices/bus/bbc/fdc/fdc.cpp +++ b/src/devices/bus/bbc/fdc/fdc.cpp @@ -14,7 +14,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type BBC_FDC_SLOT = device_creator; +DEFINE_DEVICE_TYPE(BBC_FDC_SLOT, bbc_fdc_slot_device, "bbc_fdc_slot", "BBC Micro FDC slot") //************************************************************************** @@ -50,8 +50,8 @@ device_bbc_fdc_interface::~device_bbc_fdc_interface() //------------------------------------------------- bbc_fdc_slot_device::bbc_fdc_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, BBC_FDC_SLOT, "BBC Micro FDC slot", tag, owner, clock, "bbc_fdc_slot", __FILE__), - device_slot_interface(mconfig, *this), + device_t(mconfig, BBC_FDC_SLOT, tag, owner, clock), + device_slot_interface(mconfig, *this), m_card(nullptr), m_intrq_handler(*this), m_drq_handler(*this) diff --git a/src/devices/bus/bbc/fdc/fdc.h b/src/devices/bus/bbc/fdc/fdc.h index 186d6497b0e..0aa5a54d15d 100644 --- a/src/devices/bus/bbc/fdc/fdc.h +++ b/src/devices/bus/bbc/fdc/fdc.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_BBC_FDC_FDC_H +#define MAME_BUS_BBC_FDC_FDC_H -#ifndef __BBC_FDC_SLOT__ -#define __BBC_FDC_SLOT__ +#pragma once @@ -44,10 +44,10 @@ public: virtual ~bbc_fdc_slot_device(); // callbacks - template static devcb_base &set_intrq_handler(device_t &device, _Object object) - { return downcast(device).m_intrq_handler.set_callback(object); } - template static devcb_base &set_drq_handler(device_t &device, _Object object) - { return downcast(device).m_drq_handler.set_callback(object); } + template static devcb_base &set_intrq_handler(device_t &device, Object &&cb) + { return downcast(device).m_intrq_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_drq_handler(device_t &device, Object &&cb) + { return downcast(device).m_drq_handler.set_callback(std::forward(cb)); } DECLARE_WRITE_LINE_MEMBER( intrq_w ) { m_intrq_handler(state); } DECLARE_WRITE_LINE_MEMBER( drq_w) { m_drq_handler(state); } @@ -71,18 +71,19 @@ class device_bbc_fdc_interface : public device_slot_card_interface { public: // construction/destruction - device_bbc_fdc_interface(const machine_config &mconfig, device_t &device); virtual ~device_bbc_fdc_interface(); protected: + device_bbc_fdc_interface(const machine_config &mconfig, device_t &device); + bbc_fdc_slot_device *m_slot; }; // device type definition -extern const device_type BBC_FDC_SLOT; +DECLARE_DEVICE_TYPE(BBC_FDC_SLOT, bbc_fdc_slot_device) SLOT_INTERFACE_EXTERN( bbc_fdc_devices ); -#endif +#endif // MAME_BUS_BBC_FDC_FDC_H diff --git a/src/devices/bus/bbc/fdc/opus.cpp b/src/devices/bus/bbc/fdc/opus.cpp index ccc75650925..245b20f9c60 100644 --- a/src/devices/bus/bbc/fdc/opus.cpp +++ b/src/devices/bus/bbc/fdc/opus.cpp @@ -20,9 +20,9 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type BBC_OPUS2791 = device_creator; -const device_type BBC_OPUS2793 = device_creator; -const device_type BBC_OPUS1770 = device_creator; +DEFINE_DEVICE_TYPE(BBC_OPUS2791, bbc_opus2791_device, "bbc_opus2791", "Opus 2791 FDC") +DEFINE_DEVICE_TYPE(BBC_OPUS2793, bbc_opus2793_device, "bbc_opus2793", "Opus 2793 FDC") +DEFINE_DEVICE_TYPE(BBC_OPUS1770, bbc_opus1770_device, "bbc_opus1770", "Opus D-DOS(B) 1770 FDC") //------------------------------------------------- @@ -144,8 +144,8 @@ const tiny_rom_entry *bbc_opus1770_device::device_rom_region() const // bbc_opusfdc_device - constructor //------------------------------------------------- -bbc_opusfdc_device::bbc_opusfdc_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), +bbc_opusfdc_device::bbc_opusfdc_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), device_bbc_fdc_interface(mconfig, *this), m_dfs_rom(*this, "dfs_rom"), m_fdc(*this, "fdc"), @@ -155,17 +155,17 @@ bbc_opusfdc_device::bbc_opusfdc_device(const machine_config &mconfig, device_typ } bbc_opus2791_device::bbc_opus2791_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : bbc_opusfdc_device(mconfig, BBC_OPUS2791, "Opus 2791 FDC", tag, owner, clock, "bbc_opus2791", __FILE__) + : bbc_opusfdc_device(mconfig, BBC_OPUS2791, tag, owner, clock) { } bbc_opus2793_device::bbc_opus2793_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : bbc_opusfdc_device(mconfig, BBC_OPUS2793, "Opus 2793 FDC", tag, owner, clock, "bbc_opus2793", __FILE__) + : bbc_opusfdc_device(mconfig, BBC_OPUS2793, tag, owner, clock) { } bbc_opus1770_device::bbc_opus1770_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : bbc_opusfdc_device(mconfig, BBC_OPUS1770, "Opus D-DOS(B) 1770 FDC", tag, owner, clock, "bbc_opus1770", __FILE__) + : bbc_opusfdc_device(mconfig, BBC_OPUS1770, tag, owner, clock) { } @@ -179,7 +179,7 @@ void bbc_opusfdc_device::device_start() address_space& space = cpu->memory().space(AS_PROGRAM); m_slot = dynamic_cast(owner()); - space.install_readwrite_handler(0xfe80, 0xfe83, READ8_DEVICE_DELEGATE(m_fdc, wd_fdc_t, read), WRITE8_DEVICE_DELEGATE(m_fdc, wd_fdc_t, write)); + space.install_readwrite_handler(0xfe80, 0xfe83, READ8_DEVICE_DELEGATE(m_fdc, wd_fdc_device_base, read), WRITE8_DEVICE_DELEGATE(m_fdc, wd_fdc_device_base, write)); space.install_readwrite_handler(0xfe84, 0xfe84, READ8_DELEGATE(bbc_opusfdc_device, ctrl_r), WRITE8_DELEGATE(bbc_opusfdc_device, ctrl_w)); } diff --git a/src/devices/bus/bbc/fdc/opus.h b/src/devices/bus/bbc/fdc/opus.h index b59291bf205..60deb3cd0af 100644 --- a/src/devices/bus/bbc/fdc/opus.h +++ b/src/devices/bus/bbc/fdc/opus.h @@ -6,9 +6,8 @@ **********************************************************************/ - -#ifndef __BBC_OPUSFDC__ -#define __BBC_OPUSFDC__ +#ifndef MAME_BUS_BBC_FDC_OPUS_H +#define MAME_BUS_BBC_FDC_OPUS_H #include "fdc.h" #include "machine/wd_fdc.h" @@ -25,9 +24,6 @@ class bbc_opusfdc_device: { public: - // construction/destruction - bbc_opusfdc_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - DECLARE_FLOPPY_FORMATS(floppy_formats); DECLARE_WRITE_LINE_MEMBER(fdc_intrq_w); @@ -37,13 +33,16 @@ public: DECLARE_WRITE8_MEMBER(ctrl_w); protected: + // construction/destruction + bbc_opusfdc_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; private: required_memory_region m_dfs_rom; - required_device m_fdc; + required_device m_fdc; required_device m_floppy0; optional_device m_floppy1; @@ -78,8 +77,8 @@ public: }; // device type definition -extern const device_type BBC_OPUS2791; -extern const device_type BBC_OPUS2793; -extern const device_type BBC_OPUS1770; +DECLARE_DEVICE_TYPE(BBC_OPUS2791, bbc_opus2791_device) +DECLARE_DEVICE_TYPE(BBC_OPUS2793, bbc_opus2793_device) +DECLARE_DEVICE_TYPE(BBC_OPUS1770, bbc_opus1770_device) -#endif /* __BBC_OPUSFDC_ */ +#endif // MAME_BUS_BBC_FDC_OPUS_H diff --git a/src/devices/bus/bbc/fdc/watford.cpp b/src/devices/bus/bbc/fdc/watford.cpp index 158e7c9a9c3..b63e1e92f69 100644 --- a/src/devices/bus/bbc/fdc/watford.cpp +++ b/src/devices/bus/bbc/fdc/watford.cpp @@ -19,8 +19,8 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type BBC_WEDDB2 = device_creator; -const device_type BBC_WEDDB3 = device_creator; +DEFINE_DEVICE_TYPE(BBC_WEDDB2, bbc_weddb2_device, "bbc_weddb2", "Watford Electronics DDB2 1772 FDC") +DEFINE_DEVICE_TYPE(BBC_WEDDB3, bbc_weddb3_device, "bbc_weddb3", "Watford Electronics DDB3 1770 FDC") //------------------------------------------------- @@ -114,14 +114,14 @@ const tiny_rom_entry *bbc_weddb3_device::device_rom_region() const // bbc_watfordfdc_device - constructor //------------------------------------------------- -bbc_watfordfdc_device::bbc_watfordfdc_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), +bbc_watfordfdc_device::bbc_watfordfdc_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), device_bbc_fdc_interface(mconfig, *this) { } bbc_weddb2_device::bbc_weddb2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : bbc_watfordfdc_device(mconfig, BBC_WEDDB2, "Watford Electronics DDB2 1772 FDC", tag, owner, clock, "bbc_weddb2", __FILE__), + : bbc_watfordfdc_device(mconfig, BBC_WEDDB2, tag, owner, clock), m_dfs_rom(*this, "dfs_rom"), m_fdc(*this, "wd1772"), m_floppy0(*this, "wd1772:0"), @@ -130,7 +130,7 @@ bbc_weddb2_device::bbc_weddb2_device(const machine_config &mconfig, const char * } bbc_weddb3_device::bbc_weddb3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : bbc_watfordfdc_device(mconfig, BBC_WEDDB3, "Watford Electronics DDB3 1770 FDC", tag, owner, clock, "bbc_weddb3", __FILE__), + : bbc_watfordfdc_device(mconfig, BBC_WEDDB3, tag, owner, clock), m_dfs_rom(*this, "dfs_rom"), m_fdc(*this, "wd1770"), m_floppy0(*this, "wd1770:0"), @@ -149,7 +149,7 @@ void bbc_weddb2_device::device_start() m_slot = dynamic_cast(owner()); space.install_readwrite_handler(0xfe80, 0xfe83, READ8_DELEGATE(bbc_weddb2_device, wd177xl_read), WRITE8_DELEGATE(bbc_weddb2_device, wd177xl_write)); - space.install_readwrite_handler(0xfe84, 0xfe8f, READ8_DEVICE_DELEGATE(m_fdc, wd_fdc_t, read), WRITE8_DEVICE_DELEGATE(m_fdc, wd_fdc_t, write)); + space.install_readwrite_handler(0xfe84, 0xfe8f, READ8_DEVICE_DELEGATE(m_fdc, wd_fdc_device_base, read), WRITE8_DEVICE_DELEGATE(m_fdc, wd_fdc_device_base, write)); } void bbc_weddb3_device::device_start() @@ -159,7 +159,7 @@ void bbc_weddb3_device::device_start() m_slot = dynamic_cast(owner()); space.install_readwrite_handler(0xfe80, 0xfe83, READ8_DELEGATE(bbc_weddb3_device, wd177xl_read), WRITE8_DELEGATE(bbc_weddb3_device, wd177xl_write)); - space.install_readwrite_handler(0xfe84, 0xfe8f, READ8_DEVICE_DELEGATE(m_fdc, wd_fdc_t, read), WRITE8_DEVICE_DELEGATE(m_fdc, wd_fdc_t, write)); + space.install_readwrite_handler(0xfe84, 0xfe8f, READ8_DEVICE_DELEGATE(m_fdc, wd_fdc_device_base, read), WRITE8_DEVICE_DELEGATE(m_fdc, wd_fdc_device_base, write)); } //------------------------------------------------- diff --git a/src/devices/bus/bbc/fdc/watford.h b/src/devices/bus/bbc/fdc/watford.h index 9a29ee79777..09b3a846a9a 100644 --- a/src/devices/bus/bbc/fdc/watford.h +++ b/src/devices/bus/bbc/fdc/watford.h @@ -6,9 +6,10 @@ **********************************************************************/ +#ifndef MAME_BUS_BBC_FDC_WATFORD_H +#define MAME_BUS_BBC_FDC_WATFORD_H -#ifndef __BBC_WATFORD__ -#define __BBC_WATFORD__ +#pragma once #include "fdc.h" #include "machine/wd_fdc.h" @@ -25,13 +26,14 @@ class bbc_watfordfdc_device : { public: - // construction/destruction - bbc_watfordfdc_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - DECLARE_FLOPPY_FORMATS(floppy_formats); DECLARE_WRITE_LINE_MEMBER(fdc_intrq_w); DECLARE_WRITE_LINE_MEMBER(fdc_drq_w); + +protected: + // construction/destruction + bbc_watfordfdc_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); }; class bbc_weddb2_device : public bbc_watfordfdc_device @@ -52,7 +54,7 @@ protected: private: required_memory_region m_dfs_rom; - required_device m_fdc; + required_device m_fdc; required_device m_floppy0; optional_device m_floppy1; @@ -77,7 +79,7 @@ protected: private: required_memory_region m_dfs_rom; - required_device m_fdc; + required_device m_fdc; required_device m_floppy0; optional_device m_floppy1; @@ -86,8 +88,8 @@ private: // device type definition -extern const device_type BBC_WEDDB2; -extern const device_type BBC_WEDDB3; +DECLARE_DEVICE_TYPE(BBC_WEDDB2, bbc_weddb2_device) +DECLARE_DEVICE_TYPE(BBC_WEDDB3, bbc_weddb3_device) -#endif /* __BBC_WATFORD__ */ +#endif // MAME_BUS_BBC_FDC_WATFORD_H diff --git a/src/devices/bus/bbc/joyport/joyport.cpp b/src/devices/bus/bbc/joyport/joyport.cpp index 872aa0cb5f0..d15f0cb6166 100644 --- a/src/devices/bus/bbc/joyport/joyport.cpp +++ b/src/devices/bus/bbc/joyport/joyport.cpp @@ -14,7 +14,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type BBC_JOYPORT_SLOT = device_creator; +DEFINE_DEVICE_TYPE(BBC_JOYPORT_SLOT, bbc_joyport_slot_device, "bbc_joyport_slot", "BBC Master Compact Joystick/Mouse port") //************************************************************************** @@ -50,8 +50,8 @@ device_bbc_joyport_interface::~device_bbc_joyport_interface() //------------------------------------------------- bbc_joyport_slot_device::bbc_joyport_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, BBC_JOYPORT_SLOT, "BBC Master Compact Joystick/Mouse port", tag, owner, clock, "bbc_joyport_slot", __FILE__), - device_slot_interface(mconfig, *this), + device_t(mconfig, BBC_JOYPORT_SLOT, tag, owner, clock), + device_slot_interface(mconfig, *this), m_device(nullptr) { } diff --git a/src/devices/bus/bbc/joyport/joyport.h b/src/devices/bus/bbc/joyport/joyport.h index 158ce1433f7..43de9d7b0c5 100644 --- a/src/devices/bus/bbc/joyport/joyport.h +++ b/src/devices/bus/bbc/joyport/joyport.h @@ -26,10 +26,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_BBC_JOYPORT_JOYPORT_H +#define MAME_BUS_BBC_JOYPORT_JOYPORT_H -#ifndef __COMPACT_JOYPORT__ -#define __COMPACT_JOYPORT__ +#pragma once @@ -54,7 +54,6 @@ class bbc_joyport_slot_device : public device_t, public device_slot_interface public: // construction/destruction bbc_joyport_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual ~bbc_joyport_slot_device() {} uint8_t cb_r(); uint8_t pb_r(); @@ -74,21 +73,22 @@ class device_bbc_joyport_interface : public device_slot_card_interface { public: // construction/destruction - device_bbc_joyport_interface(const machine_config &mconfig, device_t &device); virtual ~device_bbc_joyport_interface(); virtual uint8_t cb_r() { return 0xff; } virtual uint8_t pb_r() { return 0x1f; } protected: + device_bbc_joyport_interface(const machine_config &mconfig, device_t &device); + bbc_joyport_slot_device *m_slot; }; // device type definition -extern const device_type BBC_JOYPORT_SLOT; +DECLARE_DEVICE_TYPE(BBC_JOYPORT_SLOT, bbc_joyport_slot_device) SLOT_INTERFACE_EXTERN( bbc_joyport_devices ); -#endif /* __COMPACT_JOYPORT__ */ +#endif // MAME_BUS_BBC_JOYPORT_JOYPORT_H diff --git a/src/devices/bus/bbc/joyport/joystick.cpp b/src/devices/bus/bbc/joyport/joystick.cpp index d4eecd8acaf..ee02a64a56a 100644 --- a/src/devices/bus/bbc/joyport/joystick.cpp +++ b/src/devices/bus/bbc/joyport/joystick.cpp @@ -13,7 +13,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type BBCMC_JOYSTICK = device_creator; +DEFINE_DEVICE_TYPE(BBCMC_JOYSTICK, bbcmc_joystick_device, "bbcmc_joystick", "Master Compact Joystick") static INPUT_PORTS_START( joystick ) @@ -45,9 +45,9 @@ ioport_constructor bbcmc_joystick_device::device_input_ports() const //------------------------------------------------- bbcmc_joystick_device::bbcmc_joystick_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, BBCMC_JOYSTICK, "Master Compact Joystick", tag, owner, clock, "bbcmc_joystick", __FILE__), - device_bbc_joyport_interface(mconfig, *this), - m_joy(*this, "JOY") + : device_t(mconfig, BBCMC_JOYSTICK, tag, owner, clock) + , device_bbc_joyport_interface(mconfig, *this) + , m_joy(*this, "JOY") { } diff --git a/src/devices/bus/bbc/joyport/joystick.h b/src/devices/bus/bbc/joyport/joystick.h index 4f1c3dba611..bfbc67543df 100644 --- a/src/devices/bus/bbc/joyport/joystick.h +++ b/src/devices/bus/bbc/joyport/joystick.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_BBC_JOYPORT_JOYSTICK_H +#define MAME_BUS_BBC_JOYPORT_JOYSTICK_H -#ifndef __BBCMC_JOYSTICK__ -#define __BBCMC_JOYSTICK__ +#pragma once #include "joyport.h" @@ -45,7 +45,7 @@ private: // device type definition -extern const device_type BBCMC_JOYSTICK; +DECLARE_DEVICE_TYPE(BBCMC_JOYSTICK, bbcmc_joystick_device) -#endif +#endif // MAME_BUS_BBC_JOYPORT_JOYSTICK_H diff --git a/src/devices/bus/bbc/tube/tube.cpp b/src/devices/bus/bbc/tube/tube.cpp index 694cecfc2f3..5404402c0c6 100644 --- a/src/devices/bus/bbc/tube/tube.cpp +++ b/src/devices/bus/bbc/tube/tube.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type BBC_TUBE_SLOT = device_creator; +DEFINE_DEVICE_TYPE(BBC_TUBE_SLOT, bbc_tube_slot_device, "bbc_tube_slot", "BBC Micro Tube port") @@ -53,8 +53,8 @@ device_bbc_tube_interface::~device_bbc_tube_interface() //------------------------------------------------- bbc_tube_slot_device::bbc_tube_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, BBC_TUBE_SLOT, "BBC Micro Tube port", tag, owner, clock, "bbc_tube_slot", __FILE__), - device_slot_interface(mconfig, *this) + device_t(mconfig, BBC_TUBE_SLOT, tag, owner, clock), + device_slot_interface(mconfig, *this) { } diff --git a/src/devices/bus/bbc/tube/tube.h b/src/devices/bus/bbc/tube/tube.h index 0828577de1d..404b9312902 100644 --- a/src/devices/bus/bbc/tube/tube.h +++ b/src/devices/bus/bbc/tube/tube.h @@ -31,10 +31,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_BBC_TUBE_TUBE_H +#define MAME_BUS_BBC_TUBE_TUBE_H -#ifndef __BBC_TUBE_SLOT__ -#define __BBC_TUBE_SLOT__ +#pragma once @@ -66,21 +66,17 @@ class device_bbc_tube_interface; -class bbc_tube_slot_device : public device_t, - public device_slot_interface +class bbc_tube_slot_device : public device_t, public device_slot_interface { public: // construction/destruction bbc_tube_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual ~bbc_tube_slot_device() {} - protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; - device_bbc_tube_interface *m_card; }; @@ -91,19 +87,20 @@ class device_bbc_tube_interface : public device_slot_card_interface { public: // construction/destruction - device_bbc_tube_interface(const machine_config &mconfig, device_t &device); virtual ~device_bbc_tube_interface(); protected: + device_bbc_tube_interface(const machine_config &mconfig, device_t &device); + bbc_tube_slot_device *m_slot; }; // device type definition -extern const device_type BBC_TUBE_SLOT; +DECLARE_DEVICE_TYPE(BBC_TUBE_SLOT, bbc_tube_slot_device) SLOT_INTERFACE_EXTERN( bbc_tube_ext_devices ); SLOT_INTERFACE_EXTERN( bbc_tube_int_devices ); -#endif +#endif // MAME_BUS_BBC_TUBE_TUBE_H diff --git a/src/devices/bus/bbc/userport/userport.cpp b/src/devices/bus/bbc/userport/userport.cpp index ed6858a20a6..51591bbe85e 100644 --- a/src/devices/bus/bbc/userport/userport.cpp +++ b/src/devices/bus/bbc/userport/userport.cpp @@ -14,7 +14,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type BBC_USERPORT_SLOT = device_creator; +DEFINE_DEVICE_TYPE(BBC_USERPORT_SLOT, bbc_userport_device, "bbc_userport_slot", "BBC Micro User port") @@ -52,8 +52,8 @@ device_bbc_userport_interface::~device_bbc_userport_interface() //------------------------------------------------- bbc_userport_device::bbc_userport_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, BBC_USERPORT_SLOT, "BBC Micro User port", tag, owner, clock, "bbc_userport_slot", __FILE__), - device_slot_interface(mconfig, *this), m_device(nullptr) + device_t(mconfig, BBC_USERPORT_SLOT, tag, owner, clock), + device_slot_interface(mconfig, *this), m_device(nullptr) { } diff --git a/src/devices/bus/bbc/userport/userport.h b/src/devices/bus/bbc/userport/userport.h index 6258e57324c..0db9464af32 100644 --- a/src/devices/bus/bbc/userport/userport.h +++ b/src/devices/bus/bbc/userport/userport.h @@ -25,10 +25,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_BBC_USERPORT_USERPORT_H +#define MAME_BUS_BBC_USERPORT_USERPORT_H -#ifndef __BBC_USERPORT_SLOT__ -#define __BBC_USERPORT_SLOT__ +#pragma once //************************************************************************** @@ -43,7 +43,6 @@ class device_bbc_userport_interface : public device_slot_card_interface { public: // construction/destruction - device_bbc_userport_interface(const machine_config &mconfig, device_t &device); virtual ~device_bbc_userport_interface(); virtual uint8_t read_portb() { return 0xff; }; @@ -51,6 +50,8 @@ public: virtual uint8_t read_cb2() { return 0xff; }; protected: + device_bbc_userport_interface(const machine_config &mconfig, device_t &device); + bbc_userport_device *m_slot; }; @@ -62,7 +63,6 @@ class bbc_userport_device : public device_t, public: // construction/destruction bbc_userport_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual ~bbc_userport_device() {} uint8_t read_portb(); uint8_t read_cb1(); @@ -76,7 +76,7 @@ protected: }; // device type definition -extern const device_type BBC_USERPORT_SLOT; +DECLARE_DEVICE_TYPE(BBC_USERPORT_SLOT, bbc_userport_device) //************************************************************************** @@ -100,4 +100,4 @@ extern const device_type BBC_USERPORT_SLOT; SLOT_INTERFACE_EXTERN( bbc_userport_devices ); -#endif +#endif // MAME_BUS_BBC_USERPORT_USERPORT_H diff --git a/src/devices/bus/bml3/bml3bus.cpp b/src/devices/bus/bml3/bml3bus.cpp index 8bbc443672a..fc427756876 100644 --- a/src/devices/bus/bml3/bml3bus.cpp +++ b/src/devices/bus/bml3/bml3bus.cpp @@ -50,7 +50,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type BML3BUS_SLOT = device_creator; +DEFINE_DEVICE_TYPE(BML3BUS_SLOT, bml3bus_slot_device, "bml3bus_slot", "Hitachi MB-6890 Slot") //************************************************************************** // LIVE DEVICE @@ -60,14 +60,13 @@ const device_type BML3BUS_SLOT = device_creator; // bml3bus_slot_device - constructor //------------------------------------------------- bml3bus_slot_device::bml3bus_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, BML3BUS_SLOT, "Hitachi MB-6890 Slot", tag, owner, clock, "bml3bus_slot", __FILE__), - device_slot_interface(mconfig, *this), m_bml3bus_tag(nullptr), m_bml3bus_slottag(nullptr) + bml3bus_slot_device(mconfig, BML3BUS_SLOT, tag, owner, clock) { } -bml3bus_slot_device::bml3bus_slot_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_slot_interface(mconfig, *this), m_bml3bus_tag(nullptr), m_bml3bus_slottag(nullptr) +bml3bus_slot_device::bml3bus_slot_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), + device_slot_interface(mconfig, *this), m_bml3bus_tag(nullptr), m_bml3bus_slottag(nullptr) { } @@ -93,7 +92,7 @@ void bml3bus_slot_device::device_start() // GLOBAL VARIABLES //************************************************************************** -const device_type BML3BUS = device_creator; +DEFINE_DEVICE_TYPE(BML3BUS, bml3bus_device, "bml3bus", "Hitachi MB-6890 Bus") void bml3bus_device::static_set_cputag(device_t &device, const char *tag) { @@ -110,18 +109,17 @@ void bml3bus_device::static_set_cputag(device_t &device, const char *tag) //------------------------------------------------- bml3bus_device::bml3bus_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, BML3BUS, "Hitachi MB-6890 Bus", tag, owner, clock, "bml3bus", __FILE__), m_maincpu(nullptr), - m_out_nmi_cb(*this), - m_out_irq_cb(*this), - m_out_firq_cb(*this), m_cputag(nullptr) + bml3bus_device(mconfig, BML3BUS, tag, owner, clock) { } -bml3bus_device::bml3bus_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), m_maincpu(nullptr), - m_out_nmi_cb(*this), - m_out_irq_cb(*this), - m_out_firq_cb(*this), m_cputag(nullptr) +bml3bus_device::bml3bus_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), + m_maincpu(nullptr), + m_out_nmi_cb(*this), + m_out_irq_cb(*this), + m_out_firq_cb(*this), + m_cputag(nullptr) { } //------------------------------------------------- diff --git a/src/devices/bus/bml3/bml3bus.h b/src/devices/bus/bml3/bml3bus.h index 3b90a25fd60..32046d40f57 100644 --- a/src/devices/bus/bml3/bml3bus.h +++ b/src/devices/bus/bml3/bml3bus.h @@ -8,10 +8,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_BUS_BML3_BML3BUS_H +#define MAME_BUS_BML3_BML3BUS_H -#ifndef __BML3BUS_H__ -#define __BML3BUS_H__ +#pragma once #define BML3BUS_MAX_SLOTS 6 @@ -56,20 +56,22 @@ class bml3bus_slot_device : public device_t, public: // construction/destruction bml3bus_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - bml3bus_slot_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); // device-level overrides virtual void device_start() override; // inline configuration static void static_set_bml3bus_slot(device_t &device, const char *tag, const char *slottag); + protected: + bml3bus_slot_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // configuration const char *m_bml3bus_tag, *m_bml3bus_slottag; }; // device type definition -extern const device_type BML3BUS_SLOT; +DECLARE_DEVICE_TYPE(BML3BUS_SLOT, bml3bus_slot_device) class device_bml3bus_card_interface; @@ -79,13 +81,12 @@ class bml3bus_device : public device_t public: // construction/destruction bml3bus_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - bml3bus_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); // inline configuration static void static_set_cputag(device_t &device, const char *tag); - template static devcb_base &set_out_nmi_callback(device_t &device, _Object object) { return downcast(device).m_out_nmi_cb.set_callback(object); } - template static devcb_base &set_out_irq_callback(device_t &device, _Object object) { return downcast(device).m_out_irq_cb.set_callback(object); } - template static devcb_base &set_out_firq_callback(device_t &device, _Object object) { return downcast(device).m_out_firq_cb.set_callback(object); } + template static devcb_base &set_out_nmi_callback(device_t &device, Object &&cb) { return downcast(device).m_out_nmi_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_irq_callback(device_t &device, Object &&cb) { return downcast(device).m_out_irq_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_firq_callback(device_t &device, Object &&cb) { return downcast(device).m_out_firq_cb.set_callback(std::forward(cb)); } void add_bml3bus_card(int slot, device_bml3bus_card_interface *card); device_bml3bus_card_interface *get_bml3bus_card(int slot); @@ -99,6 +100,8 @@ public: DECLARE_WRITE_LINE_MEMBER( firq_w ); protected: + bml3bus_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -116,7 +119,7 @@ protected: // device type definition -extern const device_type BML3BUS; +DECLARE_DEVICE_TYPE(BML3BUS, bml3bus_device) // ======================> device_bml3bus_card_interface @@ -126,7 +129,6 @@ class device_bml3bus_card_interface : public device_slot_card_interface friend class bml3bus_device; public: // construction/destruction - device_bml3bus_card_interface(const machine_config &mconfig, device_t &device); virtual ~device_bml3bus_card_interface(); device_bml3bus_card_interface *next() const { return m_next; } @@ -142,11 +144,14 @@ public: // inline configuration static void static_set_bml3bus_tag(device_t &device, const char *tag, const char *slottag); -public: + +protected: + device_bml3bus_card_interface(const machine_config &mconfig, device_t &device); + bml3bus_device *m_bml3bus; const char *m_bml3bus_tag, *m_bml3bus_slottag; int m_slot; device_bml3bus_card_interface *m_next; }; -#endif /* __BML3BUS_H__ */ +#endif // MAME_BUS_BML3_BML3BUS_H diff --git a/src/devices/bus/bml3/bml3kanji.cpp b/src/devices/bus/bml3/bml3kanji.cpp index 753b0665f19..a3e214fcab3 100644 --- a/src/devices/bus/bml3/bml3kanji.cpp +++ b/src/devices/bus/bml3/bml3kanji.cpp @@ -20,7 +20,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type BML3BUS_KANJI = device_creator; +DEFINE_DEVICE_TYPE(BML3BUS_KANJI, bml3bus_kanji_device, "bml3kanji", "Hitachi MP-9740 Kanji Character ROM Card") #define KANJI_ROM_REGION "kanji_rom" @@ -73,7 +73,7 @@ WRITE8_MEMBER( bml3bus_kanji_device::bml3_kanji_w ) //************************************************************************** bml3bus_kanji_device::bml3bus_kanji_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, BML3BUS_KANJI, "Hitachi MP-9740 Kanji Character ROM Card", tag, owner, clock, "bml3kanji", __FILE__), + device_t(mconfig, BML3BUS_KANJI, tag, owner, clock), device_bml3bus_card_interface(mconfig, *this), m_kanji_addr(0), m_rom(nullptr) { } diff --git a/src/devices/bus/bml3/bml3kanji.h b/src/devices/bus/bml3/bml3kanji.h index 1472f82d40b..f8ada6a420f 100644 --- a/src/devices/bus/bml3/bml3kanji.h +++ b/src/devices/bus/bml3/bml3kanji.h @@ -8,8 +8,10 @@ *********************************************************************/ -#ifndef __BML3BUS_KANJI__ -#define __BML3BUS_KANJI__ +#ifndef MAME_BUS_BML3_BML3KANJI_H +#define MAME_BUS_BML3_BML3KANJI_H + +#pragma once #include "bml3bus.h" @@ -43,6 +45,6 @@ private: }; // device type definition -extern const device_type BML3BUS_KANJI; +DECLARE_DEVICE_TYPE(BML3BUS_KANJI, bml3bus_kanji_device) -#endif /* __BML3BUS_KANJI__ */ +#endif // MAME_BUS_BML3_BML3KANJI_H diff --git a/src/devices/bus/bml3/bml3mp1802.cpp b/src/devices/bus/bml3/bml3mp1802.cpp index 201e28b87fc..ab51c2dd291 100644 --- a/src/devices/bus/bml3/bml3mp1802.cpp +++ b/src/devices/bus/bml3/bml3mp1802.cpp @@ -21,7 +21,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type BML3BUS_MP1802 = device_creator; +DEFINE_DEVICE_TYPE(BML3BUS_MP1802, bml3bus_mp1802_device, "bml3mp1802", "Hitachi MP-1802 Floppy Controller Card") static SLOT_INTERFACE_START( mp1802_floppies ) SLOT_INTERFACE("dd", FLOPPY_525_DD) @@ -107,7 +107,7 @@ WRITE8_MEMBER( bml3bus_mp1802_device::bml3_mp1802_w) //************************************************************************** bml3bus_mp1802_device::bml3bus_mp1802_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, BML3BUS_MP1802, "Hitachi MP-1802 Floppy Controller Card", tag, owner, clock, "bml3mp1802", __FILE__), + device_t(mconfig, BML3BUS_MP1802, tag, owner, clock), device_bml3bus_card_interface(mconfig, *this), m_fdc(*this, "fdc"), m_floppy0(*this, "fdc:0"), @@ -131,7 +131,7 @@ void bml3bus_mp1802_device::device_start() // install into memory address_space &space_prg = machine().firstcpu->space(AS_PROGRAM); - space_prg.install_readwrite_handler(0xff00, 0xff03, read8_delegate(FUNC(mb8866_t::read),(mb8866_t*)m_fdc), write8_delegate(FUNC(mb8866_t::write),(mb8866_t*)m_fdc)); + space_prg.install_readwrite_handler(0xff00, 0xff03, read8_delegate(FUNC(mb8866_device::read),(mb8866_device*)m_fdc), write8_delegate(FUNC(mb8866_device::write),(mb8866_device*)m_fdc)); space_prg.install_readwrite_handler(0xff04, 0xff04, read8_delegate(FUNC(bml3bus_mp1802_device::bml3_mp1802_r), this), write8_delegate(FUNC(bml3bus_mp1802_device::bml3_mp1802_w), this)); // overwriting the main ROM (rather than using e.g. install_rom) should mean that bank switches for RAM expansion still work... uint8_t *mainrom = device().machine().root_device().memregion("maincpu")->base(); diff --git a/src/devices/bus/bml3/bml3mp1802.h b/src/devices/bus/bml3/bml3mp1802.h index 27e109fc67d..7d519ebca75 100644 --- a/src/devices/bus/bml3/bml3mp1802.h +++ b/src/devices/bus/bml3/bml3mp1802.h @@ -9,8 +9,10 @@ *********************************************************************/ -#ifndef __BML3BUS_MP1802__ -#define __BML3BUS_MP1802__ +#ifndef MAME_BUS_BML3_BML3MP1802_H +#define MAME_BUS_BML3_BML3MP1802_H + +#pragma once #include "bml3bus.h" #include "imagedev/flopdrv.h" @@ -42,7 +44,7 @@ protected: virtual void device_reset() override; private: - required_device m_fdc; + required_device m_fdc; required_device m_floppy0; required_device m_floppy1; required_device m_floppy2; @@ -53,5 +55,6 @@ private: // device type definition extern const device_type BML3BUS_MP1802; +DECLARE_DEVICE_TYPE(BML3BUS_MP1802, bml3bus_mp1802_device) -#endif /* __BML3BUS_MP1802__ */ +#endif // MAME_BUS_BML3_BML3MP1802_H diff --git a/src/devices/bus/bml3/bml3mp1805.cpp b/src/devices/bus/bml3/bml3mp1805.cpp index dc8b9e58551..5e72bd13b26 100644 --- a/src/devices/bus/bml3/bml3mp1805.cpp +++ b/src/devices/bus/bml3/bml3mp1805.cpp @@ -21,7 +21,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type BML3BUS_MP1805 = device_creator; +DEFINE_DEVICE_TYPE(BML3BUS_MP1805, bml3bus_mp1805_device, "bml3mp1805", "Hitachi MP-1805 Floppy Controller Card") static const floppy_interface bml3_mp1805_floppy_interface = { @@ -138,7 +138,7 @@ WRITE8_MEMBER( bml3bus_mp1805_device::bml3_mp1805_w) //************************************************************************** bml3bus_mp1805_device::bml3bus_mp1805_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, BML3BUS_MP1805, "Hitachi MP-1805 Floppy Controller Card", tag, owner, clock, "bml3mp1805", __FILE__), + device_t(mconfig, BML3BUS_MP1805, tag, owner, clock), device_bml3bus_card_interface(mconfig, *this), m_mc6843(*this, "mc6843"), m_rom(nullptr) { diff --git a/src/devices/bus/bml3/bml3mp1805.h b/src/devices/bus/bml3/bml3mp1805.h index 6ea64bc2956..19d8cbdc9fe 100644 --- a/src/devices/bus/bml3/bml3mp1805.h +++ b/src/devices/bus/bml3/bml3mp1805.h @@ -9,8 +9,10 @@ *********************************************************************/ -#ifndef __BML3BUS_MP1805__ -#define __BML3BUS_MP1805__ +#ifndef MAME_BUS_BML3_BML3MP1805_H +#define MAME_BUS_BML3_BML3MP1805_H + +#pragma once #include "bml3bus.h" #include "imagedev/flopdrv.h" @@ -48,6 +50,6 @@ private: }; // device type definition -extern const device_type BML3BUS_MP1805; +DECLARE_DEVICE_TYPE(BML3BUS_MP1805, bml3bus_mp1805_device) -#endif /* __BML3BUS_MP1805__ */ +#endif // MAME_BUS_BML3_BML3MP1805_H diff --git a/src/devices/bus/bw2/exp.cpp b/src/devices/bus/bw2/exp.cpp index 4002d5df709..94e7a616460 100644 --- a/src/devices/bus/bw2/exp.cpp +++ b/src/devices/bus/bw2/exp.cpp @@ -15,7 +15,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type BW2_EXPANSION_SLOT = device_creator; +DEFINE_DEVICE_TYPE(BW2_EXPANSION_SLOT, bw2_expansion_slot_device, "bw2_expansion_slot", "Bondwell 2 expansion port") @@ -53,7 +53,7 @@ device_bw2_expansion_slot_interface::~device_bw2_expansion_slot_interface() //------------------------------------------------- bw2_expansion_slot_device::bw2_expansion_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, BW2_EXPANSION_SLOT, "Bondwell 2 expansion port", tag, owner, clock, "bw2_expansion_slot", __FILE__), + device_t(mconfig, BW2_EXPANSION_SLOT, tag, owner, clock), device_slot_interface(mconfig, *this), m_cart(nullptr) { } diff --git a/src/devices/bus/bw2/exp.h b/src/devices/bus/bw2/exp.h index 1be10d400e7..fe4e51298a2 100644 --- a/src/devices/bus/bw2/exp.h +++ b/src/devices/bus/bw2/exp.h @@ -34,10 +34,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_BW2_EXP_H +#define MAME_BUS_BW2_EXP_H -#ifndef __BW2_EXPANSION_SLOT__ -#define __BW2_EXPANSION_SLOT__ +#pragma once @@ -102,7 +102,6 @@ class device_bw2_expansion_slot_interface : public device_slot_card_interface { public: // construction/destruction - device_bw2_expansion_slot_interface(const machine_config &mconfig, device_t &device); virtual ~device_bw2_expansion_slot_interface(); virtual uint8_t bw2_cd_r(address_space &space, offs_t offset, uint8_t data, int ram2, int ram3, int ram4, int ram5, int ram6) { return data; }; @@ -115,16 +114,17 @@ public: virtual void bw2_modsel_w(address_space &space, offs_t offset, uint8_t data) { } protected: + device_bw2_expansion_slot_interface(const machine_config &mconfig, device_t &device); + bw2_expansion_slot_device *m_slot; }; // device type definition -extern const device_type BW2_EXPANSION_SLOT; +DECLARE_DEVICE_TYPE(BW2_EXPANSION_SLOT, bw2_expansion_slot_device) SLOT_INTERFACE_EXTERN( bw2_expansion_cards ); - -#endif +#endif // MAME_BUS_BW2_EXP_H diff --git a/src/devices/bus/bw2/ramcard.cpp b/src/devices/bus/bw2/ramcard.cpp index 6e66de49933..b59159cd5b1 100644 --- a/src/devices/bus/bw2/ramcard.cpp +++ b/src/devices/bus/bw2/ramcard.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type BW2_RAMCARD = device_creator; +DEFINE_DEVICE_TYPE(BW2_RAMCARD, bw2_ramcard_device, "bw2_ramcard", "Bondwell 2 RAMCARD") //------------------------------------------------- @@ -48,7 +48,7 @@ const tiny_rom_entry *bw2_ramcard_device::device_rom_region() const //------------------------------------------------- bw2_ramcard_device::bw2_ramcard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, BW2_RAMCARD, "RAMCARD", tag, owner, clock, "bw2_ramcard", __FILE__), + : device_t(mconfig, BW2_RAMCARD, tag, owner, clock), device_bw2_expansion_slot_interface(mconfig, *this), m_rom(*this, "ramcard"), m_ram(*this, "ram"), diff --git a/src/devices/bus/bw2/ramcard.h b/src/devices/bus/bw2/ramcard.h index 260dc423e30..9ac2b0433fa 100644 --- a/src/devices/bus/bw2/ramcard.h +++ b/src/devices/bus/bw2/ramcard.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_BW2_RAMCARD_H +#define MAME_BUS_BW2_RAMCARD_H -#ifndef __BW2_RAMCARD__ -#define __BW2_RAMCARD__ +#pragma once #include "exp.h" @@ -51,8 +51,8 @@ private: // device type definition -extern const device_type BW2_RAMCARD; +DECLARE_DEVICE_TYPE(BW2_RAMCARD, bw2_ramcard_device) -#endif +#endif // MAME_BUS_BW2_RAMCARD_H diff --git a/src/devices/bus/c64/16kb.cpp b/src/devices/bus/c64/16kb.cpp index 4c5520950ce..0eaddc9a0f6 100644 --- a/src/devices/bus/c64/16kb.cpp +++ b/src/devices/bus/c64/16kb.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type C64_16KB = device_creator; +DEFINE_DEVICE_TYPE(C64_16KB, c64_16kb_cartridge_device, "c64_16kb", "C64 16KB EPROM cartridge") //------------------------------------------------- @@ -75,7 +75,7 @@ ioport_constructor c64_16kb_cartridge_device::device_input_ports() const //------------------------------------------------- c64_16kb_cartridge_device::c64_16kb_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, C64_16KB, "C64 16KB EPROM cartridge", tag, owner, clock, "c64_16kb", __FILE__), + device_t(mconfig, C64_16KB, tag, owner, clock), device_c64_expansion_card_interface(mconfig, *this), m_sw1(*this, "SW1"), m_low(*this, "roml"), diff --git a/src/devices/bus/c64/16kb.h b/src/devices/bus/c64/16kb.h index 4b688b35a0d..f1685ae5956 100644 --- a/src/devices/bus/c64/16kb.h +++ b/src/devices/bus/c64/16kb.h @@ -6,15 +6,15 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_C64_16KB_H +#define MAME_BUS_C64_16KB_H -#ifndef __C64_16KB__ -#define __C64_16KB__ +#pragma once +#include "exp.h" #include "bus/generic/slot.h" #include "bus/generic/carts.h" -#include "exp.h" @@ -51,8 +51,6 @@ private: // device type definition -extern const device_type C64_16KB; - - +DECLARE_DEVICE_TYPE(C64_16KB, c64_16kb_cartridge_device) -#endif +#endif // MAME_BUS_C64_16KB_H diff --git a/src/devices/bus/c64/4dxh.cpp b/src/devices/bus/c64/4dxh.cpp index 3cd731215fd..4273388543b 100644 --- a/src/devices/bus/c64/4dxh.cpp +++ b/src/devices/bus/c64/4dxh.cpp @@ -17,7 +17,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type C64_4DXH = device_creator; +DEFINE_DEVICE_TYPE(C64_4DXH, c64_4dxh_device, "c64_4dxh", "C64 DXH 4-Player Adapter") //------------------------------------------------- @@ -63,7 +63,7 @@ ioport_constructor c64_4dxh_device::device_input_ports() const //------------------------------------------------- c64_4dxh_device::c64_4dxh_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, C64_4DXH, "C64 DXH 4-Player Adapter", tag, owner, clock, "c64_4dxh", __FILE__), + device_t(mconfig, C64_4DXH, tag, owner, clock), device_pet_user_port_interface(mconfig, *this) { } diff --git a/src/devices/bus/c64/4dxh.h b/src/devices/bus/c64/4dxh.h index 2360307e26b..4f84231bf03 100644 --- a/src/devices/bus/c64/4dxh.h +++ b/src/devices/bus/c64/4dxh.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_C64_4DXH_H +#define MAME_BUS_C64_4DXH_H -#ifndef __C64_4DXH__ -#define __C64_4DXH__ +#pragma once #include "user.h" @@ -43,7 +43,7 @@ protected: // device type definition -extern const device_type C64_4DXH; +DECLARE_DEVICE_TYPE(C64_4DXH, c64_4dxh_device) -#endif +#endif // MAME_BUS_C64_4DXH_H diff --git a/src/devices/bus/c64/4ksa.cpp b/src/devices/bus/c64/4ksa.cpp index a3f47f48405..39a86b6b17c 100644 --- a/src/devices/bus/c64/4ksa.cpp +++ b/src/devices/bus/c64/4ksa.cpp @@ -17,7 +17,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type C64_4KSA = device_creator; +DEFINE_DEVICE_TYPE(C64_4KSA, c64_4ksa_device, "c64_4ksa", "C64 Kingsoft 4-Player Adapter") //------------------------------------------------- @@ -63,7 +63,7 @@ ioport_constructor c64_4ksa_device::device_input_ports() const //------------------------------------------------- c64_4ksa_device::c64_4ksa_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, C64_4KSA, "C64 Kingsoft 4-Player Adapter", tag, owner, clock, "c64_4ksa", __FILE__), + device_t(mconfig, C64_4KSA, tag, owner, clock), device_pet_user_port_interface(mconfig, *this) { } diff --git a/src/devices/bus/c64/4ksa.h b/src/devices/bus/c64/4ksa.h index 7d9594cb4b3..7dc8676a6a8 100644 --- a/src/devices/bus/c64/4ksa.h +++ b/src/devices/bus/c64/4ksa.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_C64_4KSA_H +#define MAME_BUS_C64_4KSA_H -#ifndef __C64_4KSA__ -#define __C64_4KSA__ +#pragma once #include "user.h" @@ -43,7 +43,7 @@ protected: // device type definition -extern const device_type C64_4KSA; +DECLARE_DEVICE_TYPE(C64_4KSA, c64_4ksa_device) -#endif +#endif // MAME_BUS_C64_4KSA_H diff --git a/src/devices/bus/c64/4tba.cpp b/src/devices/bus/c64/4tba.cpp index 7f4adc76bce..4fc58cb0d49 100644 --- a/src/devices/bus/c64/4tba.cpp +++ b/src/devices/bus/c64/4tba.cpp @@ -17,7 +17,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type C64_4TBA = device_creator; +DEFINE_DEVICE_TYPE(C64_4TBA, c64_4tba_device, "c64_4tba", "C64 Tie Break Adapter") //------------------------------------------------- @@ -63,7 +63,7 @@ ioport_constructor c64_4tba_device::device_input_ports() const //------------------------------------------------- c64_4tba_device::c64_4tba_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, C64_4TBA, "C64 Tie Break Adapter", tag, owner, clock, "c64_4tba", __FILE__), + device_t(mconfig, C64_4TBA, tag, owner, clock), device_pet_user_port_interface(mconfig, *this) { } diff --git a/src/devices/bus/c64/4tba.h b/src/devices/bus/c64/4tba.h index 01b185248dd..f96716c4839 100644 --- a/src/devices/bus/c64/4tba.h +++ b/src/devices/bus/c64/4tba.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_C64_4TBA_H +#define MAME_BUS_C64_4TBA_H -#ifndef __C64_4TBA__ -#define __C64_4TBA__ +#pragma once #include "user.h" @@ -43,7 +43,6 @@ protected: // device type definition -extern const device_type C64_4TBA; - +DECLARE_DEVICE_TYPE(C64_4TBA, c64_4tba_device) -#endif +#endif // MAME_BUS_C64_4TBA_H diff --git a/src/devices/bus/c64/bn1541.cpp b/src/devices/bus/c64/bn1541.cpp index bd3fc5a270b..dbb5fc4bb1a 100644 --- a/src/devices/bus/c64/bn1541.cpp +++ b/src/devices/bus/c64/bn1541.cpp @@ -25,7 +25,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type C64_BN1541 = device_creator; +DEFINE_DEVICE_TYPE(C64_BN1541, c64_bn1541_device, "c64_bn1541", "C64 Burst Nibbler 1541/1571 Parallel Cable") @@ -62,7 +62,7 @@ device_c64_floppy_parallel_interface::~device_c64_floppy_parallel_interface() //------------------------------------------------- c64_bn1541_device::c64_bn1541_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, C64_BN1541, "C64 Burst Nibbler 1541/1571 Parallel Cable", tag, owner, clock, "c64_bn1541", __FILE__), + device_t(mconfig, C64_BN1541, tag, owner, clock), device_pet_user_port_interface(mconfig, *this), device_c64_floppy_parallel_interface(mconfig, *this), m_parallel_output(0) { diff --git a/src/devices/bus/c64/bn1541.h b/src/devices/bus/c64/bn1541.h index 9859b272bd7..1865adda460 100644 --- a/src/devices/bus/c64/bn1541.h +++ b/src/devices/bus/c64/bn1541.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_C64_BN1541_H +#define MAME_BUS_C64_BN1541_H -#ifndef __C64_BN1541__ -#define __C64_BN1541__ +#pragma once #include "user.h" @@ -75,7 +75,7 @@ private: // device type definition -extern const device_type C64_BN1541; +DECLARE_DEVICE_TYPE(C64_BN1541, c64_bn1541_device) -#endif +#endif // MAME_BUS_C64_BN1541_H diff --git a/src/devices/bus/c64/c128_comal80.cpp b/src/devices/bus/c64/c128_comal80.cpp index 9f0e8a03954..234a3499a19 100644 --- a/src/devices/bus/c64/c128_comal80.cpp +++ b/src/devices/bus/c64/c128_comal80.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type C128_COMAL80 = device_creator; +DEFINE_DEVICE_TYPE(C128_COMAL80, c128_comal80_cartridge_device, "c128_comal80", "C128 COMAL 80 cartridge") @@ -28,7 +28,7 @@ const device_type C128_COMAL80 = device_creator; //------------------------------------------------- c128_comal80_cartridge_device::c128_comal80_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, C128_COMAL80, "C128 COMAL 80 cartridge", tag, owner, clock, "c128_comal80", __FILE__), + device_t(mconfig, C128_COMAL80, tag, owner, clock), device_c64_expansion_card_interface(mconfig, *this), m_bank(0) { diff --git a/src/devices/bus/c64/c128_comal80.h b/src/devices/bus/c64/c128_comal80.h index 58d92837f11..c141cffb69e 100644 --- a/src/devices/bus/c64/c128_comal80.h +++ b/src/devices/bus/c64/c128_comal80.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_C64_C128_COMAL80_H +#define MAME_BUS_C64_C128_COMAL80_H -#ifndef __C128_COMAL80__ -#define __C128_COMAL80__ +#pragma once #include "exp.h" @@ -44,7 +44,7 @@ private: // device type definition -extern const device_type C128_COMAL80; +DECLARE_DEVICE_TYPE(C128_COMAL80, c128_comal80_cartridge_device) -#endif +#endif // MAME_BUS_C64_C128_COMAL80_H diff --git a/src/devices/bus/c64/c128_partner.cpp b/src/devices/bus/c64/c128_partner.cpp index 3be09f7f258..d5e74cc43cb 100644 --- a/src/devices/bus/c64/c128_partner.cpp +++ b/src/devices/bus/c64/c128_partner.cpp @@ -37,14 +37,14 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type C128_PARTNER = device_creator; +DEFINE_DEVICE_TYPE(C128_PARTNER, c128_partner_cartridge_device, "c128_partner", "PARTNER 128 cartridge") //------------------------------------------------- // INPUT_PORTS( c128_partner ) //------------------------------------------------- -WRITE_LINE_MEMBER( partner128_t::nmi_w ) +WRITE_LINE_MEMBER( c128_partner_cartridge_device::nmi_w ) { if (state) { @@ -54,7 +54,7 @@ WRITE_LINE_MEMBER( partner128_t::nmi_w ) static INPUT_PORTS_START( c128_partner ) PORT_START("NMI") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Menu") PORT_CODE(KEYCODE_END) PORT_WRITE_LINE_DEVICE_MEMBER(DEVICE_SELF, partner128_t, nmi_w) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Menu") PORT_CODE(KEYCODE_END) PORT_WRITE_LINE_DEVICE_MEMBER(DEVICE_SELF, c128_partner_cartridge_device, nmi_w) INPUT_PORTS_END @@ -62,7 +62,7 @@ INPUT_PORTS_END // input_ports - device-specific input ports //------------------------------------------------- -ioport_constructor partner128_t::device_input_ports() const +ioport_constructor c128_partner_cartridge_device::device_input_ports() const { return INPUT_PORTS_NAME( c128_partner ); } @@ -74,13 +74,12 @@ ioport_constructor partner128_t::device_input_ports() const //************************************************************************** //------------------------------------------------- -// partner128_t - constructor +// c128_partner_cartridge_device - constructor //------------------------------------------------- -partner128_t::partner128_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, C128_PARTNER, "PARTNER 128", tag, owner, clock, "c128_partner", __FILE__), +c128_partner_cartridge_device::c128_partner_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, C128_PARTNER, tag, owner, clock), device_c64_expansion_card_interface(mconfig, *this), - //device_vcs_control_port_interface(mconfig, *this), m_ram(*this, "ram"), t_joyb2(nullptr), m_ram_a12_a7(0), m_ls74_cd(0), @@ -95,7 +94,7 @@ partner128_t::partner128_t(const machine_config &mconfig, const char *tag, devic // device_start - device-specific startup //------------------------------------------------- -void partner128_t::device_start() +void c128_partner_cartridge_device::device_start() { // allocate memory m_ram.allocate(0x2000); @@ -117,7 +116,7 @@ void partner128_t::device_start() // device_reset - device-specific reset //------------------------------------------------- -void partner128_t::device_reset() +void c128_partner_cartridge_device::device_reset() { m_ram_a12_a7 = 0; @@ -133,7 +132,7 @@ void partner128_t::device_reset() // device_timer - //------------------------------------------------- -void partner128_t::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) +void c128_partner_cartridge_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) { if (m_ls74_cd) { @@ -148,7 +147,7 @@ void partner128_t::device_timer(emu_timer &timer, device_timer_id id, int param, // c64_cd_r - cartridge data read //------------------------------------------------- -uint8_t partner128_t::c64_cd_r(address_space &space, offs_t offset, uint8_t data, int sphi2, int ba, int roml, int romh, int io1, int io2) +uint8_t c128_partner_cartridge_device::c64_cd_r(address_space &space, offs_t offset, uint8_t data, int sphi2, int ba, int roml, int romh, int io1, int io2) { if (!roml) { @@ -186,7 +185,7 @@ uint8_t partner128_t::c64_cd_r(address_space &space, offs_t offset, uint8_t data // c64_cd_w - cartridge data write //------------------------------------------------- -void partner128_t::c64_cd_w(address_space &space, offs_t offset, uint8_t data, int sphi2, int ba, int roml, int romh, int io1, int io2) +void c128_partner_cartridge_device::c64_cd_w(address_space &space, offs_t offset, uint8_t data, int sphi2, int ba, int roml, int romh, int io1, int io2) { if (!io1) { @@ -236,7 +235,7 @@ void partner128_t::c64_cd_w(address_space &space, offs_t offset, uint8_t data, i // vcs_joy_w - joystick write //------------------------------------------------- -void partner128_t::vcs_joy_w(uint8_t data) +void c128_partner_cartridge_device::vcs_joy_w(uint8_t data) { int joyb2 = BIT(data, 2); diff --git a/src/devices/bus/c64/c128_partner.h b/src/devices/bus/c64/c128_partner.h index f38295f7231..632e526b035 100644 --- a/src/devices/bus/c64/c128_partner.h +++ b/src/devices/bus/c64/c128_partner.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_C64_C128_PARTNER_H +#define MAME_BUS_C64_C128_PARTNER_H -#ifndef __C128_PARTNER__ -#define __C128_PARTNER__ +#pragma once #include "bus/c64/exp.h" #include "bus/vcs_ctrl/ctrl.h" @@ -20,15 +20,15 @@ // TYPE DEFINITIONS //************************************************************************** -// ======================> partner128_t +// ======================> c128_partner_cartridge_device -class partner128_t : public device_t, +class c128_partner_cartridge_device : public device_t, public device_c64_expansion_card_interface //public device_vcs_control_port_interface { public: // construction/destruction - partner128_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + c128_partner_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual ioport_constructor device_input_ports() const override; @@ -61,7 +61,7 @@ private: // device type definition -extern const device_type C128_PARTNER; +DECLARE_DEVICE_TYPE(C128_PARTNER, c128_partner_cartridge_device) -#endif +#endif // MAME_BUS_C64_C128_PARTNER_H diff --git a/src/devices/bus/c64/comal80.cpp b/src/devices/bus/c64/comal80.cpp index f3421510012..24c966eccc1 100644 --- a/src/devices/bus/c64/comal80.cpp +++ b/src/devices/bus/c64/comal80.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type C64_COMAL80 = device_creator; +DEFINE_DEVICE_TYPE(C64_COMAL80, c64_comal80_cartridge_device, "c64_comal80", "C64 COMAL 80 cartridge") @@ -28,7 +28,7 @@ const device_type C64_COMAL80 = device_creator; //------------------------------------------------- c64_comal80_cartridge_device::c64_comal80_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, C64_COMAL80, "C64 COMAL 80 cartridge", tag, owner, clock, "c64_comal80", __FILE__), + device_t(mconfig, C64_COMAL80, tag, owner, clock), device_c64_expansion_card_interface(mconfig, *this), m_bank(0) { diff --git a/src/devices/bus/c64/comal80.h b/src/devices/bus/c64/comal80.h index 349911eb9bb..fb0ceaad303 100644 --- a/src/devices/bus/c64/comal80.h +++ b/src/devices/bus/c64/comal80.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_C64_COMAL80_H +#define MAME_BUS_C64_COMAL80_H -#ifndef __COMAL80__ -#define __COMAL80__ +#pragma once #include "exp.h" @@ -44,7 +44,7 @@ private: // device type definition -extern const device_type C64_COMAL80; +DECLARE_DEVICE_TYPE(C64_COMAL80, c64_comal80_cartridge_device) -#endif +#endif // MAME_BUS_C64_COMAL80_H diff --git a/src/devices/bus/c64/cpm.cpp b/src/devices/bus/c64/cpm.cpp index 8544938255a..c18d0eff286 100644 --- a/src/devices/bus/c64/cpm.cpp +++ b/src/devices/bus/c64/cpm.cpp @@ -33,7 +33,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type C64_CPM = device_creator; +DEFINE_DEVICE_TYPE(C64_CPM, c64_cpm_cartridge_device, "c64_cpm", "C64 CP/M cartridge") //------------------------------------------------- @@ -131,7 +131,7 @@ inline void c64_cpm_cartridge_device::update_signals() //------------------------------------------------- c64_cpm_cartridge_device::c64_cpm_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, C64_CPM, "C64 CP/M cartridge", tag, owner, clock, "c64_cpm", __FILE__), + device_t(mconfig, C64_CPM, tag, owner, clock), device_c64_expansion_card_interface(mconfig, *this), m_maincpu(*this, Z80_TAG), m_enabled(0), diff --git a/src/devices/bus/c64/cpm.h b/src/devices/bus/c64/cpm.h index 603465bae88..88e4c172da8 100644 --- a/src/devices/bus/c64/cpm.h +++ b/src/devices/bus/c64/cpm.h @@ -6,13 +6,13 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_C64_CPM_H +#define MAME_BUS_C64_CPM_H -#ifndef __CPM__ -#define __CPM__ +#pragma once -#include "cpu/z80/z80.h" #include "exp.h" +#include "cpu/z80/z80.h" @@ -58,7 +58,7 @@ private: // device type definition -extern const device_type C64_CPM; +DECLARE_DEVICE_TYPE(C64_CPM, c64_cpm_cartridge_device) -#endif +#endif // MAME_BUS_C64_CPM_H diff --git a/src/devices/bus/c64/currah_speech.cpp b/src/devices/bus/c64/currah_speech.cpp index 7deb76db067..f71b9bcebde 100644 --- a/src/devices/bus/c64/currah_speech.cpp +++ b/src/devices/bus/c64/currah_speech.cpp @@ -85,7 +85,7 @@ Notes: // DEVICE DEFINITIONS //************************************************************************** -const device_type C64_CURRAH_SPEECH = device_creator; +DEFINE_DEVICE_TYPE(C64_CURRAH_SPEECH, c64_currah_speech_cartridge_device, "c64_cs", "C64 Currah Speech") //------------------------------------------------- @@ -157,7 +157,7 @@ void c64_currah_speech_cartridge_device::set_osc1(int voice, int intonation) //------------------------------------------------- c64_currah_speech_cartridge_device::c64_currah_speech_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, C64_CURRAH_SPEECH, "C64 Currah Speech", tag, owner, clock, "c64_cs", __FILE__), + device_t(mconfig, C64_CURRAH_SPEECH, tag, owner, clock), device_c64_expansion_card_interface(mconfig, *this), m_nsp(*this, SP0256_TAG) { diff --git a/src/devices/bus/c64/currah_speech.h b/src/devices/bus/c64/currah_speech.h index e11afc520fc..ce2e31db8e0 100644 --- a/src/devices/bus/c64/currah_speech.h +++ b/src/devices/bus/c64/currah_speech.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_C64_CURRAH_SPEECH_H +#define MAME_BUS_C64_CURRAH_SPEECH_H -#ifndef __CURRAH_SPEECH_64__ -#define __CURRAH_SPEECH_64__ +#pragma once #include "exp.h" @@ -51,7 +51,7 @@ private: // device type definition -extern const device_type C64_CURRAH_SPEECH; +DECLARE_DEVICE_TYPE(C64_CURRAH_SPEECH, c64_currah_speech_cartridge_device) -#endif +#endif // MAME_BUS_C64_CURRAH_SPEECH_H diff --git a/src/devices/bus/c64/dela_ep256.cpp b/src/devices/bus/c64/dela_ep256.cpp index 2dd9c890d44..04bd9137363 100644 --- a/src/devices/bus/c64/dela_ep256.cpp +++ b/src/devices/bus/c64/dela_ep256.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type C64_DELA_EP256 = device_creator; +DEFINE_DEVICE_TYPE(C64_DELA_EP256, c64_dela_ep256_cartridge_device, "delep256", "C64 Dela 256KB EPROM cartridge") //------------------------------------------------- @@ -63,7 +63,7 @@ machine_config_constructor c64_dela_ep256_cartridge_device::device_mconfig_addit //------------------------------------------------- c64_dela_ep256_cartridge_device::c64_dela_ep256_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, C64_DELA_EP256, "C64 Dela 256KB EPROM cartridge", tag, owner, clock, "delep256", __FILE__), + device_t(mconfig, C64_DELA_EP256, tag, owner, clock), device_c64_expansion_card_interface(mconfig, *this) { for (int i = 0; i < 8; i++) diff --git a/src/devices/bus/c64/dela_ep256.h b/src/devices/bus/c64/dela_ep256.h index 5b7c4413f5d..44b154ae50e 100644 --- a/src/devices/bus/c64/dela_ep256.h +++ b/src/devices/bus/c64/dela_ep256.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_C64_DELA_EP256_H +#define MAME_BUS_C64_DELA_EP256_H -#ifndef __DELA_EP256__ -#define __DELA_EP256__ +#pragma once #include "exp.h" @@ -52,8 +52,7 @@ private: // device type definition -extern const device_type C64_DELA_EP256; - +DECLARE_DEVICE_TYPE(C64_DELA_EP256, c64_dela_ep256_cartridge_device) -#endif +#endif // MAME_BUS_C64_DELA_EP256_H diff --git a/src/devices/bus/c64/dela_ep64.cpp b/src/devices/bus/c64/dela_ep64.cpp index 65c371a1f8f..b6812f20bf5 100644 --- a/src/devices/bus/c64/dela_ep64.cpp +++ b/src/devices/bus/c64/dela_ep64.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type C64_DELA_EP64 = device_creator; +DEFINE_DEVICE_TYPE(C64_DELA_EP64, c64_dela_ep64_cartridge_device, "c64_dela_ep64", "C64 Rex 64KB EPROM cartridge") //------------------------------------------------- @@ -50,7 +50,7 @@ machine_config_constructor c64_dela_ep64_cartridge_device::device_mconfig_additi //------------------------------------------------- c64_dela_ep64_cartridge_device::c64_dela_ep64_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, C64_DELA_EP64, "C64 Rex 64KB EPROM cartridge", tag, owner, clock, "c64_dela_ep64", __FILE__), + device_t(mconfig, C64_DELA_EP64, tag, owner, clock), device_c64_expansion_card_interface(mconfig, *this), m_eprom1(*this, "eprom1"), m_eprom2(*this, "eprom2"), m_bank(0), m_reset(0), m_rom0_ce(0), m_rom1_ce(0), m_rom2_ce(0) diff --git a/src/devices/bus/c64/dela_ep64.h b/src/devices/bus/c64/dela_ep64.h index 88b1c91ad89..6e7aad548c8 100644 --- a/src/devices/bus/c64/dela_ep64.h +++ b/src/devices/bus/c64/dela_ep64.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_C64_DELA_EP64_H +#define MAME_BUS_C64_DELA_EP64_H -#ifndef __DELA_EP64__ -#define __DELA_EP64__ +#pragma once #include "bus/generic/slot.h" @@ -56,8 +56,8 @@ private: // device type definition -extern const device_type C64_DELA_EP64; +DECLARE_DEVICE_TYPE(C64_DELA_EP64, c64_dela_ep64_cartridge_device) -#endif +#endif // MAME_BUS_C64_DELA_EP64_H diff --git a/src/devices/bus/c64/dela_ep7x8.cpp b/src/devices/bus/c64/dela_ep7x8.cpp index eae8c4ae34b..0f973004ea4 100644 --- a/src/devices/bus/c64/dela_ep7x8.cpp +++ b/src/devices/bus/c64/dela_ep7x8.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type C64_DELA_EP7X8 = device_creator; +DEFINE_DEVICE_TYPE(C64_DELA_EP7X8, c64_dela_ep7x8_cartridge_device, "c64_dela_ep7x8", "C64 Dela 7x8KB EPROM cartridge") //------------------------------------------------- @@ -60,7 +60,7 @@ machine_config_constructor c64_dela_ep7x8_cartridge_device::device_mconfig_addit //------------------------------------------------- c64_dela_ep7x8_cartridge_device::c64_dela_ep7x8_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, C64_DELA_EP7X8, "C64 Dela 7x8KB EPROM cartridge", tag, owner, clock, "ep7x8", __FILE__), + device_t(mconfig, C64_DELA_EP7X8, tag, owner, clock), device_c64_expansion_card_interface(mconfig, *this), m_eprom1(*this, "rom1"), m_eprom2(*this, "rom2"), diff --git a/src/devices/bus/c64/dela_ep7x8.h b/src/devices/bus/c64/dela_ep7x8.h index a5f3fd5b4ab..e66cc211bc0 100644 --- a/src/devices/bus/c64/dela_ep7x8.h +++ b/src/devices/bus/c64/dela_ep7x8.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_C64_DELA_EP7X8_H +#define MAME_BUS_C64_DELA_EP7X8_H -#ifndef __DELA_EP7X8__ -#define __DELA_EP7X8__ +#pragma once #include "bus/generic/slot.h" @@ -57,8 +57,7 @@ private: // device type definition -extern const device_type C64_DELA_EP7X8; - +DECLARE_DEVICE_TYPE(C64_DELA_EP7X8, c64_dela_ep7x8_cartridge_device) -#endif +#endif // MAME_BUS_C64_DELA_EP7X8_H diff --git a/src/devices/bus/c64/dinamic.cpp b/src/devices/bus/c64/dinamic.cpp index ada3ca405ee..8ab60892263 100644 --- a/src/devices/bus/c64/dinamic.cpp +++ b/src/devices/bus/c64/dinamic.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type C64_DINAMIC = device_creator; +DEFINE_DEVICE_TYPE(C64_DINAMIC, c64_dinamic_cartridge_device, "c64_dinamic", "C64 Dinamic cartridge") @@ -28,7 +28,7 @@ const device_type C64_DINAMIC = device_creator; //------------------------------------------------- c64_dinamic_cartridge_device::c64_dinamic_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, C64_DINAMIC, "C64 Dinamic cartridge", tag, owner, clock, "c64_dinamic", __FILE__), + device_t(mconfig, C64_DINAMIC, tag, owner, clock), device_c64_expansion_card_interface(mconfig, *this), m_bank(0) { diff --git a/src/devices/bus/c64/dinamic.h b/src/devices/bus/c64/dinamic.h index acab7b79563..84bd1503503 100644 --- a/src/devices/bus/c64/dinamic.h +++ b/src/devices/bus/c64/dinamic.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_C64_DINAMIC_H +#define MAME_BUS_C64_DINAMIC_H -#ifndef __DINAMIC__ -#define __DINAMIC__ +#pragma once #include "exp.h" @@ -43,7 +43,7 @@ private: // device type definition -extern const device_type C64_DINAMIC; +DECLARE_DEVICE_TYPE(C64_DINAMIC, c64_dinamic_cartridge_device) -#endif +#endif // MAME_BUS_C64_DINAMIC_H diff --git a/src/devices/bus/c64/dqbb.cpp b/src/devices/bus/c64/dqbb.cpp index 31458acb9a2..b9cb32ce1cc 100644 --- a/src/devices/bus/c64/dqbb.cpp +++ b/src/devices/bus/c64/dqbb.cpp @@ -24,7 +24,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type C64_DQBB = device_creator; +DEFINE_DEVICE_TYPE(C64_DQBB, c64_dqbb_cartridge_device, "c64_dqbb", "C64 Double Quick Brown Box cartridge") @@ -37,7 +37,7 @@ const device_type C64_DQBB = device_creator; //------------------------------------------------- c64_dqbb_cartridge_device::c64_dqbb_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, C64_DQBB, "C64 Double Quick Brown Box cartridge", tag, owner, clock, "c64_dqbb", __FILE__), + device_t(mconfig, C64_DQBB, tag, owner, clock), device_c64_expansion_card_interface(mconfig, *this), device_nvram_interface(mconfig, *this), m_cs(0), diff --git a/src/devices/bus/c64/dqbb.h b/src/devices/bus/c64/dqbb.h index 9a4233dc94e..6c472eb6696 100644 --- a/src/devices/bus/c64/dqbb.h +++ b/src/devices/bus/c64/dqbb.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_C64_DQBB_H +#define MAME_BUS_C64_DQBB_H -#ifndef __DQBB__ -#define __DQBB__ +#pragma once #include "exp.h" @@ -52,7 +52,7 @@ private: // device type definition -extern const device_type C64_DQBB; +DECLARE_DEVICE_TYPE(C64_DQBB, c64_dqbb_cartridge_device) -#endif +#endif // MAME_BUS_C64_DQBB_H diff --git a/src/devices/bus/c64/easy_calc_result.cpp b/src/devices/bus/c64/easy_calc_result.cpp index dd24e20d013..4ddd4cbdac0 100644 --- a/src/devices/bus/c64/easy_calc_result.cpp +++ b/src/devices/bus/c64/easy_calc_result.cpp @@ -36,7 +36,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type C64_EASY_CALC_RESULT = device_creator; +DEFINE_DEVICE_TYPE(C64_EASY_CALC_RESULT, c64_easy_calc_result_cartridge_device, "c64_easy_calc_result", "C64 Easy Calc Result cartridge") @@ -49,7 +49,7 @@ const device_type C64_EASY_CALC_RESULT = device_creator; +DEFINE_DEVICE_TYPE(C64_EASYFLASH, c64_easyflash_cartridge_device, "c64_easyflash", "C64 EasyFlash cartridge") //------------------------------------------------- @@ -82,7 +82,7 @@ ioport_constructor c64_easyflash_cartridge_device::device_input_ports() const //------------------------------------------------- c64_easyflash_cartridge_device::c64_easyflash_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, C64_EASYFLASH, "C64 EasyFlash cartridge", tag, owner, clock, "c64_easyflash", __FILE__), + device_t(mconfig, C64_EASYFLASH, tag, owner, clock), device_c64_expansion_card_interface(mconfig, *this), m_flash_roml(*this, AM29F040_0_TAG), m_flash_romh(*this, AM29F040_1_TAG), diff --git a/src/devices/bus/c64/easyflash.h b/src/devices/bus/c64/easyflash.h index aa28f13d23d..9760a247319 100644 --- a/src/devices/bus/c64/easyflash.h +++ b/src/devices/bus/c64/easyflash.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_C64_EASYFLASH_H +#define MAME_BUS_C64_EASYFLASH_H -#ifndef __EASYFLASH__ -#define __EASYFLASH__ +#pragma once #include "exp.h" @@ -57,7 +57,7 @@ private: // device type definition -extern const device_type C64_EASYFLASH; +DECLARE_DEVICE_TYPE(C64_EASYFLASH, c64_easyflash_cartridge_device) -#endif +#endif // MAME_BUS_C64_EASYFLASH_H diff --git a/src/devices/bus/c64/epyx_fast_load.cpp b/src/devices/bus/c64/epyx_fast_load.cpp index 75e4f7e2a35..d119091555b 100644 --- a/src/devices/bus/c64/epyx_fast_load.cpp +++ b/src/devices/bus/c64/epyx_fast_load.cpp @@ -25,7 +25,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type C64_EPYX_FAST_LOAD = device_creator; +DEFINE_DEVICE_TYPE(C64_EPYX_FAST_LOAD, c64_epyx_fast_load_cartridge_device, "c64_epyx_fast_load", "C64 Epyx Fast Load cartridge") @@ -38,7 +38,7 @@ const device_type C64_EPYX_FAST_LOAD = device_creator; +DEFINE_DEVICE_TYPE(C64_EXOS, c64_exos_cartridge_device, "c64_exos", "C64 ExOS cartridge") @@ -28,7 +28,7 @@ const device_type C64_EXOS = device_creator; //------------------------------------------------- c64_exos_cartridge_device::c64_exos_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, C64_EXOS, "C64 ExOS cartridge", tag, owner, clock, "c64_exos", __FILE__), + device_t(mconfig, C64_EXOS, tag, owner, clock), device_c64_expansion_card_interface(mconfig, *this) { } diff --git a/src/devices/bus/c64/exos.h b/src/devices/bus/c64/exos.h index 76bb85e1a0b..93872e38e7a 100644 --- a/src/devices/bus/c64/exos.h +++ b/src/devices/bus/c64/exos.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_C64_EXOS_H +#define MAME_BUS_C64_EXOS_H -#ifndef __EXOS__ -#define __EXOS__ +#pragma once #include "exp.h" @@ -40,7 +40,7 @@ protected: // device type definition -extern const device_type C64_EXOS; +DECLARE_DEVICE_TYPE(C64_EXOS, c64_exos_cartridge_device) -#endif +#endif // MAME_BUS_C64_EXOS_H diff --git a/src/devices/bus/c64/exp.cpp b/src/devices/bus/c64/exp.cpp index 9b774ec5d7b..c28c10e82f6 100644 --- a/src/devices/bus/c64/exp.cpp +++ b/src/devices/bus/c64/exp.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type C64_EXPANSION_SLOT = device_creator; +DEFINE_DEVICE_TYPE(C64_EXPANSION_SLOT, c64_expansion_slot_device, "c64_expansion_slot", "C64 expansion port") @@ -58,7 +58,7 @@ device_c64_expansion_card_interface::~device_c64_expansion_card_interface() //------------------------------------------------- c64_expansion_slot_device::c64_expansion_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, C64_EXPANSION_SLOT, "C64 expansion port", tag, owner, clock, "c64_expansion_slot", __FILE__), + device_t(mconfig, C64_EXPANSION_SLOT, tag, owner, clock), device_slot_interface(mconfig, *this), device_image_interface(mconfig, *this), m_read_dma_cd(*this), diff --git a/src/devices/bus/c64/exp.h b/src/devices/bus/c64/exp.h index c73b5281ad6..da1dc08fcb6 100644 --- a/src/devices/bus/c64/exp.h +++ b/src/devices/bus/c64/exp.h @@ -31,10 +31,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_C64_EXP_H +#define MAME_BUS_C64_EXP_H -#ifndef __C64_EXPANSION_SLOT__ -#define __C64_EXPANSION_SLOT__ +#pragma once #include "softlist_dev.h" #include "formats/cbm_crt.h" @@ -103,12 +103,12 @@ public: // construction/destruction c64_expansion_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_irq_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_irq.set_callback(object); } - template static devcb_base &set_nmi_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_nmi.set_callback(object); } - template static devcb_base &set_reset_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_reset.set_callback(object); } - template static devcb_base &set_cd_rd_callback(device_t &device, _Object object) { return downcast(device).m_read_dma_cd.set_callback(object); } - template static devcb_base &set_cd_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_dma_cd.set_callback(object); } - template static devcb_base &set_dma_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_dma.set_callback(object); } + template static devcb_base &set_irq_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_irq.set_callback(std::forward(cb)); } + template static devcb_base &set_nmi_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_nmi.set_callback(std::forward(cb)); } + template static devcb_base &set_reset_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_reset.set_callback(std::forward(cb)); } + template static devcb_base &set_cd_rd_callback(device_t &device, Object &&cb) { return downcast(device).m_read_dma_cd.set_callback(std::forward(cb)); } + template static devcb_base &set_cd_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_dma_cd.set_callback(std::forward(cb)); } + template static devcb_base &set_dma_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_dma.set_callback(std::forward(cb)); } // computer interface uint8_t cd_r(address_space &space, offs_t offset, uint8_t data, int sphi2, int ba, int roml, int romh, int io1, int io2); @@ -170,7 +170,6 @@ class device_c64_expansion_card_interface : public device_slot_card_interface public: // construction/destruction - device_c64_expansion_card_interface(const machine_config &mconfig, device_t &device); virtual ~device_c64_expansion_card_interface(); virtual uint8_t c64_cd_r(address_space &space, offs_t offset, uint8_t data, int sphi2, int ba, int roml, int romh, int io1, int io2) { return data; }; @@ -179,6 +178,8 @@ public: virtual int c64_exrom_r(offs_t offset, int sphi2, int ba, int rw) { return m_exrom; } protected: + device_c64_expansion_card_interface(const machine_config &mconfig, device_t &device); + optional_shared_ptr m_roml; optional_shared_ptr m_romh; optional_shared_ptr m_nvram; @@ -191,7 +192,7 @@ protected: // device type definition -extern const device_type C64_EXPANSION_SLOT; +DECLARE_DEVICE_TYPE(C64_EXPANSION_SLOT, c64_expansion_slot_device) SLOT_INTERFACE_EXTERN( c64_expansion_cards ); diff --git a/src/devices/bus/c64/fcc.cpp b/src/devices/bus/c64/fcc.cpp index 8bd0986ff04..c4e98e90738 100644 --- a/src/devices/bus/c64/fcc.cpp +++ b/src/devices/bus/c64/fcc.cpp @@ -37,7 +37,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type C64_FCC = device_creator; +DEFINE_DEVICE_TYPE(C64_FCC, c64_final_chesscard_device, "c64_fcc", "Final ChessCard") //------------------------------------------------- @@ -120,7 +120,7 @@ ioport_constructor c64_final_chesscard_device::device_input_ports() const //------------------------------------------------- c64_final_chesscard_device::c64_final_chesscard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, C64_FCC, "Final ChessCard", tag, owner, clock, "c64_fcc", __FILE__), + device_t(mconfig, C64_FCC, tag, owner, clock), device_c64_expansion_card_interface(mconfig, *this), device_nvram_interface(mconfig, *this), m_maincpu(*this, G65SC02P4_TAG), diff --git a/src/devices/bus/c64/fcc.h b/src/devices/bus/c64/fcc.h index 53573a4ea40..3460738a389 100644 --- a/src/devices/bus/c64/fcc.h +++ b/src/devices/bus/c64/fcc.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_C64_FCC_H +#define MAME_BUS_C64_FCC_H -#ifndef __FCC__ -#define __FCC__ +#pragma once #include "exp.h" #include "cpu/m6502/m65sc02.h" @@ -61,8 +61,7 @@ private: // device type definition -extern const device_type C64_FCC; - +DECLARE_DEVICE_TYPE(C64_FCC, c64_final_chesscard_device) -#endif +#endif // MAME_BUS_C64_FCC_H diff --git a/src/devices/bus/c64/final.cpp b/src/devices/bus/c64/final.cpp index 0c756ddecbd..90be1e6e588 100644 --- a/src/devices/bus/c64/final.cpp +++ b/src/devices/bus/c64/final.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type C64_FINAL = device_creator; +DEFINE_DEVICE_TYPE(C64_FINAL, c64_final_cartridge_device, "c64_final", "C64 Final Cartridge") //------------------------------------------------- @@ -64,7 +64,7 @@ ioport_constructor c64_final_cartridge_device::device_input_ports() const //------------------------------------------------- c64_final_cartridge_device::c64_final_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, C64_FINAL, "C64 Final cartridge", tag, owner, clock, "c64_final", __FILE__), + device_t(mconfig, C64_FINAL, tag, owner, clock), device_c64_expansion_card_interface(mconfig, *this) { } diff --git a/src/devices/bus/c64/final.h b/src/devices/bus/c64/final.h index 4bfe2e96d6d..a8ed113f13b 100644 --- a/src/devices/bus/c64/final.h +++ b/src/devices/bus/c64/final.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_C64_FINAL_H +#define MAME_BUS_C64_FINAL_H -#ifndef __FINAL__ -#define __FINAL__ +#pragma once #include "exp.h" @@ -46,7 +46,7 @@ protected: // device type definition -extern const device_type C64_FINAL; +DECLARE_DEVICE_TYPE(C64_FINAL, c64_final_cartridge_device) -#endif +#endif // MAME_BUS_C64_FINAL_H diff --git a/src/devices/bus/c64/final3.cpp b/src/devices/bus/c64/final3.cpp index 4226cb981c8..9a64e7c4172 100644 --- a/src/devices/bus/c64/final3.cpp +++ b/src/devices/bus/c64/final3.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type C64_FINAL3 = device_creator; +DEFINE_DEVICE_TYPE(C64_FINAL3, c64_final3_cartridge_device, "c64_final3", "C64 Final Cartridge III") //------------------------------------------------- @@ -65,7 +65,7 @@ ioport_constructor c64_final3_cartridge_device::device_input_ports() const //------------------------------------------------- c64_final3_cartridge_device::c64_final3_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, C64_FINAL3, "C64 Final Cartridge III", tag, owner, clock, "c64_final3", __FILE__), + device_t(mconfig, C64_FINAL3, tag, owner, clock), device_c64_expansion_card_interface(mconfig, *this), m_bank(0), m_hidden(0) { } diff --git a/src/devices/bus/c64/final3.h b/src/devices/bus/c64/final3.h index 759bba15514..d424c76537a 100644 --- a/src/devices/bus/c64/final3.h +++ b/src/devices/bus/c64/final3.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_C4_FINAL3_H +#define MAME_BUS_C4_FINAL3_H -#ifndef __FINAL3__ -#define __FINAL3__ +#pragma once #include "exp.h" @@ -50,7 +50,7 @@ private: // device type definition -extern const device_type C64_FINAL3; +DECLARE_DEVICE_TYPE(C64_FINAL3, c64_final3_cartridge_device) -#endif +#endif // MAME_BUS_C4_FINAL3_H diff --git a/src/devices/bus/c64/fun_play.cpp b/src/devices/bus/c64/fun_play.cpp index c675ae763de..b4b7a7285d2 100644 --- a/src/devices/bus/c64/fun_play.cpp +++ b/src/devices/bus/c64/fun_play.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type C64_FUN_PLAY = device_creator; +DEFINE_DEVICE_TYPE(C64_FUN_PLAY, c64_fun_play_cartridge_device, "c64_fun_play", "C64 Fun Play cartridge") @@ -28,7 +28,7 @@ const device_type C64_FUN_PLAY = device_creator; //------------------------------------------------- c64_fun_play_cartridge_device::c64_fun_play_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, C64_FUN_PLAY, "C64 Fun Play cartridge", tag, owner, clock, "c64_fun_play", __FILE__), + device_t(mconfig, C64_FUN_PLAY, tag, owner, clock), device_c64_expansion_card_interface(mconfig, *this), m_bank(0) { diff --git a/src/devices/bus/c64/fun_play.h b/src/devices/bus/c64/fun_play.h index 7fcef385018..ba62626651a 100644 --- a/src/devices/bus/c64/fun_play.h +++ b/src/devices/bus/c64/fun_play.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_C64_FUN_PLAY_H +#define MAME_BUS_C64_FUN_PLAY_H -#ifndef __FUN_PLAY__ -#define __FUN_PLAY__ +#pragma once #include "exp.h" @@ -44,7 +44,7 @@ private: // device type definition -extern const device_type C64_FUN_PLAY; +DECLARE_DEVICE_TYPE(C64_FUN_PLAY, c64_fun_play_cartridge_device) -#endif +#endif // MAME_BUS_C64_FUN_PLAY_H diff --git a/src/devices/bus/c64/geocable.cpp b/src/devices/bus/c64/geocable.cpp index 7640251306f..8859612a4e1 100644 --- a/src/devices/bus/c64/geocable.cpp +++ b/src/devices/bus/c64/geocable.cpp @@ -23,7 +23,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type C64_GEOCABLE = device_creator; +DEFINE_DEVICE_TYPE(C64_GEOCABLE, c64_geocable_device, "c64_geocable", "C64 geoCable") //------------------------------------------------- @@ -57,7 +57,7 @@ machine_config_constructor c64_geocable_device::device_mconfig_additions() const //------------------------------------------------- c64_geocable_device::c64_geocable_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, C64_GEOCABLE, "C64 geoCable", tag, owner, clock, "c64_geocable", __FILE__), + device_t(mconfig, C64_GEOCABLE, tag, owner, clock), device_pet_user_port_interface(mconfig, *this), m_centronics(*this, CENTRONICS_TAG) { diff --git a/src/devices/bus/c64/geocable.h b/src/devices/bus/c64/geocable.h index 5dd56ffa021..7ab6f88d68f 100644 --- a/src/devices/bus/c64/geocable.h +++ b/src/devices/bus/c64/geocable.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_C64_GEOCABLE_H +#define MAME_BUS_C64_GEOCABLE_H -#ifndef __C64_GEOCABLE__ -#define __C64_GEOCABLE__ +#pragma once #include "user.h" @@ -55,6 +55,7 @@ private: // device type definition extern const device_type C64_GEOCABLE; +DECLARE_DEVICE_TYPE(C64_GEOCABLE, c64_geocable_device) -#endif +#endif // MAME_BUS_C64_GEOCABLE_H diff --git a/src/devices/bus/c64/georam.cpp b/src/devices/bus/c64/georam.cpp index c68efcc2a80..e82061df80e 100644 --- a/src/devices/bus/c64/georam.cpp +++ b/src/devices/bus/c64/georam.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type C64_GEORAM = device_creator; +DEFINE_DEVICE_TYPE(C64_GEORAM, c64_georam_cartridge_device, "c64_georam", "C64 GeoRAM cartridge") @@ -28,7 +28,7 @@ const device_type C64_GEORAM = device_creator; //------------------------------------------------- c64_georam_cartridge_device::c64_georam_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, C64_GEORAM, "C64 GeoRAM cartridge", tag, owner, clock, "c64_georam", __FILE__), + device_t(mconfig, C64_GEORAM, tag, owner, clock), device_c64_expansion_card_interface(mconfig, *this), m_ram(*this, "ram"), m_bank(0) diff --git a/src/devices/bus/c64/georam.h b/src/devices/bus/c64/georam.h index ed285ce5221..352ddff6d1b 100644 --- a/src/devices/bus/c64/georam.h +++ b/src/devices/bus/c64/georam.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUC_C64_GEORAM_H +#define MAME_BUC_C64_GEORAM_H -#ifndef __GEORAM__ -#define __GEORAM__ +#pragma once #include "exp.h" @@ -46,7 +46,7 @@ private: // device type definition -extern const device_type C64_GEORAM; +DECLARE_DEVICE_TYPE(C64_GEORAM, c64_georam_cartridge_device) -#endif +#endif // MAME_BUC_C64_GEORAM_H diff --git a/src/devices/bus/c64/ide64.cpp b/src/devices/bus/c64/ide64.cpp index cd49717a148..b9112aa6ba3 100644 --- a/src/devices/bus/c64/ide64.cpp +++ b/src/devices/bus/c64/ide64.cpp @@ -39,7 +39,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type C64_IDE64 = device_creator; +DEFINE_DEVICE_TYPE(C64_IDE64, c64_ide64_cartridge_device, "c64_ide64", "C64 IDE64 cartridge") //------------------------------------------------- @@ -96,7 +96,7 @@ ioport_constructor c64_ide64_cartridge_device::device_input_ports() const //------------------------------------------------- c64_ide64_cartridge_device::c64_ide64_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, C64_IDE64, "C64 IDE64 cartridge", tag, owner, clock, "c64_ide64", __FILE__), + device_t(mconfig, C64_IDE64, tag, owner, clock), device_c64_expansion_card_interface(mconfig, *this), m_flash_rom(*this, AT29C010A_TAG), m_rtc(*this, DS1302_TAG), diff --git a/src/devices/bus/c64/ide64.h b/src/devices/bus/c64/ide64.h index ad7ad042ae9..cacf380f428 100644 --- a/src/devices/bus/c64/ide64.h +++ b/src/devices/bus/c64/ide64.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_C64_IDE64_H +#define MAME_BUS_C64_IDE64_H -#ifndef __IDE64__ -#define __IDE64__ +#pragma once #include "exp.h" @@ -63,7 +63,7 @@ private: // device type definition -extern const device_type C64_IDE64; +DECLARE_DEVICE_TYPE(C64_IDE64, c64_ide64_cartridge_device) -#endif +#endif // MAME_BUS_C64_IDE64_H diff --git a/src/devices/bus/c64/ieee488.cpp b/src/devices/bus/c64/ieee488.cpp index 8e57f6ef007..6282879786d 100644 --- a/src/devices/bus/c64/ieee488.cpp +++ b/src/devices/bus/c64/ieee488.cpp @@ -23,7 +23,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type C64_IEEE488 = device_creator; +DEFINE_DEVICE_TYPE(C64_IEEE488, c64_ieee488_device, "c64_ieee488_device", "C64 IEEE-488 cartridge") //------------------------------------------------- @@ -175,7 +175,7 @@ machine_config_constructor c64_ieee488_device::device_mconfig_additions() const //------------------------------------------------- c64_ieee488_device::c64_ieee488_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, C64_IEEE488, "IEEE-488", tag, owner, clock, "c64_ieee488", __FILE__), + device_t(mconfig, C64_IEEE488, tag, owner, clock), device_c64_expansion_card_interface(mconfig, *this), m_tpi(*this, MOS6525_TAG), m_bus(*this, IEEE488_TAG), diff --git a/src/devices/bus/c64/ieee488.h b/src/devices/bus/c64/ieee488.h index 037f493cb7a..92a7de1f9f1 100644 --- a/src/devices/bus/c64/ieee488.h +++ b/src/devices/bus/c64/ieee488.h @@ -6,14 +6,14 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_C64_IEEE488_H +#define MAME_BUS_C64_IEEE488_H -#ifndef __C64_IEEE488__ -#define __C64_IEEE488__ +#pragma once +#include "exp.h" #include "bus/ieee488/ieee488.h" #include "machine/6525tpi.h" -#include "exp.h" @@ -58,9 +58,8 @@ private: }; - // device type definition -extern const device_type C64_IEEE488; +DECLARE_DEVICE_TYPE(C64_IEEE488, c64_ieee488_device) -#endif +#endif // MAME_BUS_C64_IEEE488_H diff --git a/src/devices/bus/c64/kingsoft.cpp b/src/devices/bus/c64/kingsoft.cpp index 6716028f634..84263b71da7 100644 --- a/src/devices/bus/c64/kingsoft.cpp +++ b/src/devices/bus/c64/kingsoft.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type C64_KINGSOFT = device_creator; +DEFINE_DEVICE_TYPE(C64_KINGSOFT, c64_kingsoft_cartridge_device, "c64_kingsoft", "C64 Kingsoft cartridge") @@ -28,7 +28,7 @@ const device_type C64_KINGSOFT = device_creator; //------------------------------------------------- c64_kingsoft_cartridge_device::c64_kingsoft_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, C64_KINGSOFT, "C64 Kingsoft cartridge", tag, owner, clock, "c64_kingsoft", __FILE__), + device_t(mconfig, C64_KINGSOFT, tag, owner, clock), device_c64_expansion_card_interface(mconfig, *this) { } diff --git a/src/devices/bus/c64/kingsoft.h b/src/devices/bus/c64/kingsoft.h index 039bed77b09..89b2a4e0367 100644 --- a/src/devices/bus/c64/kingsoft.h +++ b/src/devices/bus/c64/kingsoft.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_C64_KINGSOFT_H +#define MAME_BUS_C64_KINGSOFT_H -#ifndef __KINGSOFT__ -#define __KINGSOFT__ +#pragma once #include "exp.h" @@ -42,7 +42,7 @@ protected: // device type definition -extern const device_type C64_KINGSOFT; +DECLARE_DEVICE_TYPE(C64_KINGSOFT, c64_kingsoft_cartridge_device) -#endif +#endif // MAME_BUS_C64_KINGSOFT_H diff --git a/src/devices/bus/c64/mach5.cpp b/src/devices/bus/c64/mach5.cpp index ff16f80ee4f..f312a14e1d4 100644 --- a/src/devices/bus/c64/mach5.cpp +++ b/src/devices/bus/c64/mach5.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type C64_MACH5 = device_creator; +DEFINE_DEVICE_TYPE(C64_MACH5, c64_mach5_cartridge_device, "c64_mach5", "C64 MACH5 cartridge") //------------------------------------------------- @@ -53,7 +53,7 @@ ioport_constructor c64_mach5_cartridge_device::device_input_ports() const //------------------------------------------------- c64_mach5_cartridge_device::c64_mach5_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, C64_MACH5, "C64 MACH5 cartridge", tag, owner, clock, "c64_mach5", __FILE__), + device_t(mconfig, C64_MACH5, tag, owner, clock), device_c64_expansion_card_interface(mconfig, *this), m_s1(*this, "S1"), m_c128(false) { diff --git a/src/devices/bus/c64/mach5.h b/src/devices/bus/c64/mach5.h index f93d23dc51b..affe03a52dc 100644 --- a/src/devices/bus/c64/mach5.h +++ b/src/devices/bus/c64/mach5.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_C64_MACH5_H +#define MAME_BUS_C64_MACH5_H -#ifndef __MACH5__ -#define __MACH5__ +#pragma once #include "exp.h" @@ -48,7 +48,7 @@ private: // device type definition -extern const device_type C64_MACH5; +DECLARE_DEVICE_TYPE(C64_MACH5, c64_mach5_cartridge_device) -#endif +#endif // MAME_BUS_C64_MACH5_H diff --git a/src/devices/bus/c64/magic_desk.cpp b/src/devices/bus/c64/magic_desk.cpp index a1ad9614530..9f72a1f416f 100644 --- a/src/devices/bus/c64/magic_desk.cpp +++ b/src/devices/bus/c64/magic_desk.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type C64_MAGIC_DESK = device_creator; +DEFINE_DEVICE_TYPE(C64_MAGIC_DESK, c64_magic_desk_cartridge_device, "c64_magic_desk", "C64 Magic Desk cartridge") @@ -28,7 +28,7 @@ const device_type C64_MAGIC_DESK = device_creator; +DEFINE_DEVICE_TYPE(C64_MAGIC_FORMEL, c64_magic_formel_cartridge_device, "c64_magic_formel", "C64 Magic Formel cartridge") WRITE8_MEMBER( c64_magic_formel_cartridge_device::pia_pa_w ) @@ -164,7 +164,7 @@ ioport_constructor c64_magic_formel_cartridge_device::device_input_ports() const //------------------------------------------------- c64_magic_formel_cartridge_device::c64_magic_formel_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, C64_MAGIC_FORMEL, "C64 Magic Formel cartridge", tag, owner, clock, "c64_magic_formel", __FILE__), + device_t(mconfig, C64_MAGIC_FORMEL, tag, owner, clock), device_c64_expansion_card_interface(mconfig, *this), m_pia(*this, MC6821_TAG), m_ram(*this, "ram"), diff --git a/src/devices/bus/c64/magic_formel.h b/src/devices/bus/c64/magic_formel.h index 3068a62ec66..687e9c8f935 100644 --- a/src/devices/bus/c64/magic_formel.h +++ b/src/devices/bus/c64/magic_formel.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_C64_MAGIC_FORMEL_H +#define MAME_BUS_C64_MAGIC_FORMEL_H -#ifndef __MAGIC_FORMEL__ -#define __MAGIC_FORMEL__ +#pragma once #include "exp.h" #include "machine/6821pia.h" @@ -64,7 +64,7 @@ private: // device type definition -extern const device_type C64_MAGIC_FORMEL; +DECLARE_DEVICE_TYPE(C64_MAGIC_FORMEL, c64_magic_formel_cartridge_device) -#endif +#endif // MAME_BUS_C64_MAGIC_FORMEL_H diff --git a/src/devices/bus/c64/magic_voice.cpp b/src/devices/bus/c64/magic_voice.cpp index b973f87a0c4..e687a96ccca 100644 --- a/src/devices/bus/c64/magic_voice.cpp +++ b/src/devices/bus/c64/magic_voice.cpp @@ -66,7 +66,7 @@ http://www.stefan-uhlmann.de/cbm/MVM/index.html // DEVICE DEFINITIONS //************************************************************************** -const device_type C64_MAGIC_VOICE = device_creator; +DEFINE_DEVICE_TYPE(C64_MAGIC_VOICE, c64_magic_voice_cartridge_device, "c64_magic_voice", "C64 Magic Voice cartridge") //------------------------------------------------- @@ -265,7 +265,7 @@ machine_config_constructor c64_magic_voice_cartridge_device::device_mconfig_addi //------------------------------------------------- c64_magic_voice_cartridge_device::c64_magic_voice_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, C64_MAGIC_VOICE, "C64 Magic Voice cartridge", tag, owner, clock, "c64_magic_voice", __FILE__), + device_t(mconfig, C64_MAGIC_VOICE, tag, owner, clock), device_c64_expansion_card_interface(mconfig, *this), m_vslsi(*this, T6721A_TAG), m_tpi(*this, MOS6525_TAG), diff --git a/src/devices/bus/c64/magic_voice.h b/src/devices/bus/c64/magic_voice.h index 06bb5df632b..e801da274d6 100644 --- a/src/devices/bus/c64/magic_voice.h +++ b/src/devices/bus/c64/magic_voice.h @@ -6,14 +6,14 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_C64_MAGIC_VOICE_H +#define MAME_BUS_C64_MAGIC_VOICE_H -#ifndef __MAGIC_VOICE__ -#define __MAGIC_VOICE__ +#pragma once +#include "exp.h" #include "machine/40105.h" #include "machine/6525tpi.h" -#include "exp.h" #include "sound/t6721a.h" @@ -72,8 +72,7 @@ private: // device type definition -extern const device_type C64_MAGIC_VOICE; - +DECLARE_DEVICE_TYPE(C64_MAGIC_VOICE, c64_magic_voice_cartridge_device) -#endif +#endif // MAME_BUS_C64_MAGIC_VOICE_H diff --git a/src/devices/bus/c64/midi_maplin.cpp b/src/devices/bus/c64/midi_maplin.cpp index 092c0ff76db..d18e4396a88 100644 --- a/src/devices/bus/c64/midi_maplin.cpp +++ b/src/devices/bus/c64/midi_maplin.cpp @@ -25,7 +25,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type C64_MIDI_MAPLIN = device_creator; +DEFINE_DEVICE_TYPE(C64_MIDI_MAPLIN, c64_maplin_midi_cartridge_device, "c64_midimap", "C64 Maplin MIDI") WRITE_LINE_MEMBER( c64_maplin_midi_cartridge_device::acia_irq_w ) @@ -80,7 +80,7 @@ machine_config_constructor c64_maplin_midi_cartridge_device::device_mconfig_addi //------------------------------------------------- c64_maplin_midi_cartridge_device::c64_maplin_midi_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, C64_MIDI_MAPLIN, "C64 Maplin MIDI", tag, owner, clock, "c64_midimap", __FILE__), + device_t(mconfig, C64_MIDI_MAPLIN, tag, owner, clock), device_c64_expansion_card_interface(mconfig, *this), m_acia(*this, MC6850_TAG) { diff --git a/src/devices/bus/c64/midi_maplin.h b/src/devices/bus/c64/midi_maplin.h index 5608f506989..a9fefd89169 100644 --- a/src/devices/bus/c64/midi_maplin.h +++ b/src/devices/bus/c64/midi_maplin.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_C64_MIDI_MAPLIN_H +#define MAME_BUS_C64_MIDI_MAPLIN_H -#ifndef __C64_MIDI_MAPLIN__ -#define __C64_MIDI_MAPLIN__ +#pragma once #include "exp.h" #include "machine/6850acia.h" @@ -50,7 +50,7 @@ private: // device type definition -extern const device_type C64_MIDI_MAPLIN; +DECLARE_DEVICE_TYPE(C64_MIDI_MAPLIN, c64_maplin_midi_cartridge_device) -#endif +#endif // MAME_BUS_C64_MIDI_MAPLIN_H diff --git a/src/devices/bus/c64/midi_namesoft.cpp b/src/devices/bus/c64/midi_namesoft.cpp index 6ef20e74b41..ca4ce072075 100644 --- a/src/devices/bus/c64/midi_namesoft.cpp +++ b/src/devices/bus/c64/midi_namesoft.cpp @@ -25,7 +25,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type C64_MIDI_NAMESOFT = device_creator; +DEFINE_DEVICE_TYPE(C64_MIDI_NAMESOFT, c64_namesoft_midi_cartridge_device, "c64_midins", "C64 Namesoft MIDI") WRITE_LINE_MEMBER( c64_namesoft_midi_cartridge_device::acia_irq_w ) @@ -80,7 +80,7 @@ machine_config_constructor c64_namesoft_midi_cartridge_device::device_mconfig_ad //------------------------------------------------- c64_namesoft_midi_cartridge_device::c64_namesoft_midi_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, C64_MIDI_NAMESOFT, "C64 Namesoft MIDI", tag, owner, clock, "c64_midins", __FILE__), + device_t(mconfig, C64_MIDI_NAMESOFT, tag, owner, clock), device_c64_expansion_card_interface(mconfig, *this), m_acia(*this, MC6850_TAG) { diff --git a/src/devices/bus/c64/midi_namesoft.h b/src/devices/bus/c64/midi_namesoft.h index d9321d9f217..2b1a77b6e36 100644 --- a/src/devices/bus/c64/midi_namesoft.h +++ b/src/devices/bus/c64/midi_namesoft.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_C64_MIDI_NAMESOFT_H +#define MAME_BUS_C64_MIDI_NAMESOFT_H -#ifndef __C64_MIDI_NAMESOFT__ -#define __C64_MIDI_NAMESOFT__ +#pragma once #include "exp.h" #include "machine/6850acia.h" @@ -50,7 +50,7 @@ private: // device type definition -extern const device_type C64_MIDI_NAMESOFT; +DECLARE_DEVICE_TYPE(C64_MIDI_NAMESOFT, c64_namesoft_midi_cartridge_device) -#endif +#endif // MAME_BUS_C64_MIDI_NAMESOFT_H diff --git a/src/devices/bus/c64/midi_passport.cpp b/src/devices/bus/c64/midi_passport.cpp index 4c229129112..de6a6dea5df 100644 --- a/src/devices/bus/c64/midi_passport.cpp +++ b/src/devices/bus/c64/midi_passport.cpp @@ -26,7 +26,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type C64_MIDI_PASSPORT = device_creator; +DEFINE_DEVICE_TYPE(C64_MIDI_PASSPORT, c64_passport_midi_cartridge_device, "c64_midipp", "C64 Passport MIDI") //------------------------------------------------- @@ -98,7 +98,7 @@ machine_config_constructor c64_passport_midi_cartridge_device::device_mconfig_ad //------------------------------------------------- c64_passport_midi_cartridge_device::c64_passport_midi_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, C64_MIDI_PASSPORT, "C64 Passport MIDI", tag, owner, clock, "c64_midipp", __FILE__), + device_t(mconfig, C64_MIDI_PASSPORT, tag, owner, clock), device_c64_expansion_card_interface(mconfig, *this), m_acia(*this, MC6850_TAG), m_ptm(*this, MC6840_TAG), diff --git a/src/devices/bus/c64/midi_passport.h b/src/devices/bus/c64/midi_passport.h index 995c5b1d6ee..2660a696189 100644 --- a/src/devices/bus/c64/midi_passport.h +++ b/src/devices/bus/c64/midi_passport.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_C64_MIDI_PASSPORT_H +#define MAME_BUS_C64_MIDI_PASSPORT_H -#ifndef __C64_MIDI_PASSPORT__ -#define __C64_MIDI_PASSPORT__ +#pragma once #include "exp.h" #include "machine/6840ptm.h" @@ -56,7 +56,7 @@ private: // device type definition -extern const device_type C64_MIDI_PASSPORT; +DECLARE_DEVICE_TYPE(C64_MIDI_PASSPORT, c64_passport_midi_cartridge_device) -#endif +#endif // MAME_BUS_C64_MIDI_PASSPORT_H diff --git a/src/devices/bus/c64/midi_sci.cpp b/src/devices/bus/c64/midi_sci.cpp index 120dd875be4..82df737966b 100644 --- a/src/devices/bus/c64/midi_sci.cpp +++ b/src/devices/bus/c64/midi_sci.cpp @@ -25,7 +25,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type C64_MIDI_SCI = device_creator; +DEFINE_DEVICE_TYPE(C64_MIDI_SCI, c64_sequential_midi_cartridge_device, "c64_midisci", "C64 Sequential Circuits MIDI") WRITE_LINE_MEMBER( c64_sequential_midi_cartridge_device::acia_irq_w ) @@ -80,7 +80,7 @@ machine_config_constructor c64_sequential_midi_cartridge_device::device_mconfig_ //------------------------------------------------- c64_sequential_midi_cartridge_device::c64_sequential_midi_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, C64_MIDI_SCI, "C64 Sequential Circuits MIDI", tag, owner, clock, "c64_midisci", __FILE__), + device_t(mconfig, C64_MIDI_SCI, tag, owner, clock), device_c64_expansion_card_interface(mconfig, *this), m_acia(*this, MC6850_TAG) { diff --git a/src/devices/bus/c64/midi_sci.h b/src/devices/bus/c64/midi_sci.h index c4f49bb092c..b905784218a 100644 --- a/src/devices/bus/c64/midi_sci.h +++ b/src/devices/bus/c64/midi_sci.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_C64_MIDI_SCI_H +#define MAME_BUS_C64_MIDI_SCI_H -#ifndef __C64_MIDI_SCI__ -#define __C64_MIDI_SCI__ +#pragma once #include "exp.h" #include "machine/6850acia.h" @@ -50,7 +50,7 @@ private: // device type definition -extern const device_type C64_MIDI_SCI; +DECLARE_DEVICE_TYPE(C64_MIDI_SCI, c64_sequential_midi_cartridge_device) -#endif +#endif // MAME_BUS_C64_MIDI_SCI_H diff --git a/src/devices/bus/c64/midi_siel.cpp b/src/devices/bus/c64/midi_siel.cpp index cb1b4e1a9c1..296e0991718 100644 --- a/src/devices/bus/c64/midi_siel.cpp +++ b/src/devices/bus/c64/midi_siel.cpp @@ -25,7 +25,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type C64_MIDI_SIEL = device_creator; +DEFINE_DEVICE_TYPE(C64_MIDI_SIEL, c64_siel_midi_cartridge_device, "c64_midisiel", "C64 Siel MIDI") WRITE_LINE_MEMBER( c64_siel_midi_cartridge_device::acia_irq_w ) @@ -80,7 +80,7 @@ machine_config_constructor c64_siel_midi_cartridge_device::device_mconfig_additi //------------------------------------------------- c64_siel_midi_cartridge_device::c64_siel_midi_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, C64_MIDI_SIEL, "C64 Siel MIDI", tag, owner, clock, "c64_midisiel", __FILE__), + device_t(mconfig, C64_MIDI_SIEL, tag, owner, clock), device_c64_expansion_card_interface(mconfig, *this), m_acia(*this, MC6850_TAG) { diff --git a/src/devices/bus/c64/midi_siel.h b/src/devices/bus/c64/midi_siel.h index 35373dda012..3f647c9a089 100644 --- a/src/devices/bus/c64/midi_siel.h +++ b/src/devices/bus/c64/midi_siel.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_C64_MIDI_SIEL_H +#define MAME_BUS_C64_MIDI_SIEL_H -#ifndef __C64_MIDI_SIEL__ -#define __C64_MIDI_SIEL__ +#pragma once #include "exp.h" #include "machine/6850acia.h" @@ -50,7 +50,7 @@ private: // device type definition -extern const device_type C64_MIDI_SIEL; +DECLARE_DEVICE_TYPE(C64_MIDI_SIEL, c64_siel_midi_cartridge_device) -#endif +#endif // MAME_BUS_C64_MIDI_SIEL_H diff --git a/src/devices/bus/c64/mikro_assembler.cpp b/src/devices/bus/c64/mikro_assembler.cpp index 18f7bcd2772..fe97c9472d7 100644 --- a/src/devices/bus/c64/mikro_assembler.cpp +++ b/src/devices/bus/c64/mikro_assembler.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type C64_MIKRO_ASSEMBLER = device_creator; +DEFINE_DEVICE_TYPE(C64_MIKRO_ASSEMBLER, c64_mikro_assembler_cartridge_device, "c64_mikro_assembler", "C64 Mikro Assembler cartridge") @@ -28,7 +28,7 @@ const device_type C64_MIKRO_ASSEMBLER = device_creator; +DEFINE_DEVICE_TYPE(C64_MULTISCREEN, c64_multiscreen_cartridge_device, "c64_mscr", "C64 Multiscreen cartridge") //------------------------------------------------- @@ -141,7 +141,7 @@ machine_config_constructor c64_multiscreen_cartridge_device::device_mconfig_addi //------------------------------------------------- c64_multiscreen_cartridge_device::c64_multiscreen_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, C64_MULTISCREEN, "C64 Multiscreen cartridge", tag, owner, clock, "c64_mscr", __FILE__), + device_t(mconfig, C64_MULTISCREEN, tag, owner, clock), device_c64_expansion_card_interface(mconfig, *this), m_bank(0) { } diff --git a/src/devices/bus/c64/multiscreen.h b/src/devices/bus/c64/multiscreen.h index c2e79272853..46a72bde046 100644 --- a/src/devices/bus/c64/multiscreen.h +++ b/src/devices/bus/c64/multiscreen.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_C64_MULTISCREEN_H +#define MAME_BUS_C64_MULTISCREEN_H -#ifndef __MULTISCREEN__ -#define __MULTISCREEN__ +#pragma once #include "cpu/m6800/m6800.h" @@ -50,7 +50,7 @@ private: // device type definition -extern const device_type C64_MULTISCREEN; +DECLARE_DEVICE_TYPE(C64_MULTISCREEN, c64_multiscreen_cartridge_device) -#endif +#endif // MAME_BUS_C64_MULTISCREEN_H diff --git a/src/devices/bus/c64/music64.cpp b/src/devices/bus/c64/music64.cpp index 3c886b60935..90f0e478c48 100644 --- a/src/devices/bus/c64/music64.cpp +++ b/src/devices/bus/c64/music64.cpp @@ -37,7 +37,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type C64_MUSIC64 = device_creator; +DEFINE_DEVICE_TYPE(C64_MUSIC64, c64_music64_cartridge_device, "c64_music64", "C64 Music 64 cartridge") //------------------------------------------------- @@ -151,7 +151,7 @@ ioport_constructor c64_music64_cartridge_device::device_input_ports() const //------------------------------------------------- c64_music64_cartridge_device::c64_music64_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, C64_MUSIC64, "C64 Music 64 cartridge", tag, owner, clock, "c64_music64", __FILE__), + device_t(mconfig, C64_MUSIC64, tag, owner, clock), device_c64_expansion_card_interface(mconfig, *this), m_exp(*this, C64_EXPANSION_SLOT_TAG), m_kb(*this, "KB%u", 0) diff --git a/src/devices/bus/c64/music64.h b/src/devices/bus/c64/music64.h index 9de8f992131..eea75aae771 100644 --- a/src/devices/bus/c64/music64.h +++ b/src/devices/bus/c64/music64.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_C64_MUSIC64_H +#define MAME_BUS_C64_MUSIC64_H -#ifndef __MUSIC64__ -#define __MUSIC64__ +#pragma once #include "exp.h" @@ -50,7 +50,7 @@ private: // device type definition -extern const device_type C64_MUSIC64; +DECLARE_DEVICE_TYPE(C64_MUSIC64, c64_music64_cartridge_device) -#endif +#endif // MAME_BUS_C64_MUSIC64_H diff --git a/src/devices/bus/c64/neoram.cpp b/src/devices/bus/c64/neoram.cpp index f0686a9f077..a2576cebeeb 100644 --- a/src/devices/bus/c64/neoram.cpp +++ b/src/devices/bus/c64/neoram.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type C64_NEORAM = device_creator; +DEFINE_DEVICE_TYPE(C64_NEORAM, c64_neoram_cartridge_device, "c64_neoram", "C64 NeoRAM cartridge") @@ -28,7 +28,7 @@ const device_type C64_NEORAM = device_creator; //------------------------------------------------- c64_neoram_cartridge_device::c64_neoram_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, C64_NEORAM, "C64 NeoRAM cartridge", tag, owner, clock, "c64_neoram", __FILE__), + device_t(mconfig, C64_NEORAM, tag, owner, clock), device_c64_expansion_card_interface(mconfig, *this), device_nvram_interface(mconfig, *this), m_bank(0) diff --git a/src/devices/bus/c64/neoram.h b/src/devices/bus/c64/neoram.h index 3890fd6c21e..e75a76cd088 100644 --- a/src/devices/bus/c64/neoram.h +++ b/src/devices/bus/c64/neoram.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_C64_NEORAM_H +#define MAME_BUS_C64_NEORAM_H -#ifndef __NEORAM__ -#define __NEORAM__ +#pragma once #include "exp.h" @@ -50,7 +50,7 @@ private: // device type definition -extern const device_type C64_NEORAM; +DECLARE_DEVICE_TYPE(C64_NEORAM, c64_neoram_cartridge_device) -#endif +#endif // MAME_BUS_C64_NEORAM_H diff --git a/src/devices/bus/c64/ocean.cpp b/src/devices/bus/c64/ocean.cpp index a6d3d17cc1b..6f4fecda52f 100644 --- a/src/devices/bus/c64/ocean.cpp +++ b/src/devices/bus/c64/ocean.cpp @@ -37,7 +37,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type C64_OCEAN = device_creator; +DEFINE_DEVICE_TYPE(C64_OCEAN, c64_ocean_cartridge_device, "c64_ocean", "C64 Ocean cartridge") @@ -50,7 +50,7 @@ const device_type C64_OCEAN = device_creator; //------------------------------------------------- c64_ocean_cartridge_device::c64_ocean_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, C64_OCEAN, "C64 Ocean cartridge", tag, owner, clock, "c64_ocean", __FILE__), + device_t(mconfig, C64_OCEAN, tag, owner, clock), device_c64_expansion_card_interface(mconfig, *this), m_bank(0) { diff --git a/src/devices/bus/c64/ocean.h b/src/devices/bus/c64/ocean.h index b871dfac89e..1af2101b3fa 100644 --- a/src/devices/bus/c64/ocean.h +++ b/src/devices/bus/c64/ocean.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_C64_OCEAN_H +#define MAME_BUS_C64_OCEAN_H -#ifndef __OCEAN__ -#define __OCEAN__ +#pragma once #include "exp.h" @@ -44,7 +44,7 @@ private: // device type definition -extern const device_type C64_OCEAN; +DECLARE_DEVICE_TYPE(C64_OCEAN, c64_ocean_cartridge_device) -#endif +#endif // MAME_BUS_C64_OCEAN_H diff --git a/src/devices/bus/c64/pagefox.cpp b/src/devices/bus/c64/pagefox.cpp index 837e3ada595..975f64d5408 100644 --- a/src/devices/bus/c64/pagefox.cpp +++ b/src/devices/bus/c64/pagefox.cpp @@ -37,7 +37,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type C64_PAGEFOX = device_creator; +DEFINE_DEVICE_TYPE(C64_PAGEFOX, c64_pagefox_cartridge_device, "c64_pagefox", "C64 Pagefox cartridge") @@ -50,7 +50,7 @@ const device_type C64_PAGEFOX = device_creator; //------------------------------------------------- c64_pagefox_cartridge_device::c64_pagefox_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, C64_PAGEFOX, "C64 Pagefox cartridge", tag, owner, clock, "c64_pagefox", __FILE__), + device_t(mconfig, C64_PAGEFOX, tag, owner, clock), device_c64_expansion_card_interface(mconfig, *this), m_ram(*this, "ram"), m_bank(0) { diff --git a/src/devices/bus/c64/pagefox.h b/src/devices/bus/c64/pagefox.h index 2a8702af60b..25eedac9eb0 100644 --- a/src/devices/bus/c64/pagefox.h +++ b/src/devices/bus/c64/pagefox.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_C64_PAGEFOX_H +#define MAME_BUS_C64_PAGEFOX_H -#ifndef __PAGEFOX__ -#define __PAGEFOX__ +#pragma once #include "exp.h" @@ -46,7 +46,7 @@ private: // device type definition -extern const device_type C64_PAGEFOX; +DECLARE_DEVICE_TYPE(C64_PAGEFOX, c64_pagefox_cartridge_device) -#endif +#endif // MAME_BUS_C64_PAGEFOX_H diff --git a/src/devices/bus/c64/partner.cpp b/src/devices/bus/c64/partner.cpp index b431bc02b94..9f198bc1220 100644 --- a/src/devices/bus/c64/partner.cpp +++ b/src/devices/bus/c64/partner.cpp @@ -36,7 +36,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type C64_PARTNER = device_creator; +DEFINE_DEVICE_TYPE(C64_PARTNER, c64_partner_cartridge_device, "c64_partner", "C64 PARTNER 64 cartridge") //------------------------------------------------- @@ -78,7 +78,7 @@ ioport_constructor c64_partner_cartridge_device::device_input_ports() const //------------------------------------------------- c64_partner_cartridge_device::c64_partner_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, C64_PARTNER, "C64 PARTNER 64 cartridge", tag, owner, clock, "c64_partner", __FILE__), + device_t(mconfig, C64_PARTNER, tag, owner, clock), device_c64_expansion_card_interface(mconfig, *this), m_ram(*this, "ram"), m_a0(1), diff --git a/src/devices/bus/c64/partner.h b/src/devices/bus/c64/partner.h index 9e44f0a1e6a..cfd82208a8b 100644 --- a/src/devices/bus/c64/partner.h +++ b/src/devices/bus/c64/partner.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_C64_PARTNER_H +#define MAME_BUS_C64_PARTNER_H -#ifndef __PARTNER__ -#define __PARTNER__ +#pragma once #include "exp.h" @@ -53,7 +53,7 @@ private: // device type definition -extern const device_type C64_PARTNER; +DECLARE_DEVICE_TYPE(C64_PARTNER, c64_partner_cartridge_device) -#endif +#endif // MAME_BUS_C64_PARTNER_H diff --git a/src/devices/bus/c64/prophet64.cpp b/src/devices/bus/c64/prophet64.cpp index 3a02de50eba..3b84ea81a5d 100644 --- a/src/devices/bus/c64/prophet64.cpp +++ b/src/devices/bus/c64/prophet64.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type C64_PROPHET64 = device_creator; +DEFINE_DEVICE_TYPE(C64_PROPHET64, c64_prophet64_cartridge_device, "c64_prophet64", "PROPHET64") @@ -28,7 +28,7 @@ const device_type C64_PROPHET64 = device_creator //------------------------------------------------- c64_prophet64_cartridge_device::c64_prophet64_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, C64_PROPHET64, "PROPHET64", tag, owner, clock, "c64_prophet64", __FILE__), + device_t(mconfig, C64_PROPHET64, tag, owner, clock), device_c64_expansion_card_interface(mconfig, *this), m_bank(0) { diff --git a/src/devices/bus/c64/prophet64.h b/src/devices/bus/c64/prophet64.h index 9c755b1aa97..af7b1c32544 100644 --- a/src/devices/bus/c64/prophet64.h +++ b/src/devices/bus/c64/prophet64.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_C64_PROPHET64_H +#define MAME_BUS_C64_PROPHET64_H -#ifndef __PROPHET64__ -#define __PROPHET64__ +#pragma once #include "exp.h" @@ -43,8 +43,6 @@ private: // device type definition -extern const device_type C64_PROPHET64; - - +DECLARE_DEVICE_TYPE(C64_PROPHET64, c64_prophet64_cartridge_device) -#endif +#endif // MAME_BUS_C64_PROPHET64_H diff --git a/src/devices/bus/c64/ps64.cpp b/src/devices/bus/c64/ps64.cpp index f12ef27280f..9ae20bb4162 100644 --- a/src/devices/bus/c64/ps64.cpp +++ b/src/devices/bus/c64/ps64.cpp @@ -57,7 +57,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type C64_PS64 = device_creator; +DEFINE_DEVICE_TYPE(C64_PS64, c64_ps64_cartridge_device, "c64_ps64", "C64 PS-64") //------------------------------------------------- @@ -102,7 +102,7 @@ machine_config_constructor c64_ps64_cartridge_device::device_mconfig_additions() //------------------------------------------------- c64_ps64_cartridge_device::c64_ps64_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, C64_PS64, "C64 PS-64", tag, owner, clock, "c64_ps64", __FILE__), + device_t(mconfig, C64_PS64, tag, owner, clock), device_c64_expansion_card_interface(mconfig, *this) { } diff --git a/src/devices/bus/c64/ps64.h b/src/devices/bus/c64/ps64.h index f6f7be9ca12..d319cf5e573 100644 --- a/src/devices/bus/c64/ps64.h +++ b/src/devices/bus/c64/ps64.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_C64_PS64_H +#define MAME_BUS_C64_PS64_H -#ifndef __PS64__ -#define __PS64__ +#pragma once #include "exp.h" @@ -45,7 +45,7 @@ protected: // device type definition -extern const device_type C64_PS64; +DECLARE_DEVICE_TYPE(C64_PS64, c64_ps64_cartridge_device) -#endif +#endif // MAME_BUS_C64_PS64_H diff --git a/src/devices/bus/c64/reu.cpp b/src/devices/bus/c64/reu.cpp index 415bc8510db..124a624056f 100644 --- a/src/devices/bus/c64/reu.cpp +++ b/src/devices/bus/c64/reu.cpp @@ -22,9 +22,9 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type C64_REU1700 = device_creator; -const device_type C64_REU1750 = device_creator; -const device_type C64_REU1764 = device_creator; +DEFINE_DEVICE_TYPE(C64_REU1700, c64_reu1700_cartridge_device, "c64_1700reu", "1700 REU") +DEFINE_DEVICE_TYPE(C64_REU1750, c64_reu1750_cartridge_device, "c64_1750reu", "1750 REU") +DEFINE_DEVICE_TYPE(C64_REU1764, c64_reu1764_cartridge_device, "c64_1764reu", "1764 REU") //------------------------------------------------- @@ -59,8 +59,8 @@ machine_config_constructor c64_reu_cartridge_device::device_mconfig_additions() // c64_reu_cartridge_device - constructor //------------------------------------------------- -c64_reu_cartridge_device::c64_reu_cartridge_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, uint32_t variant, int jp1, size_t ram_size, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), +c64_reu_cartridge_device::c64_reu_cartridge_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint32_t variant, int jp1, size_t ram_size) : + device_t(mconfig, type, tag, owner, clock), device_c64_expansion_card_interface(mconfig, *this), m_dmac(*this, MOS8726R1_TAG), m_eprom(*this, "rom"), @@ -72,13 +72,13 @@ c64_reu_cartridge_device::c64_reu_cartridge_device(const machine_config &mconfig } c64_reu1700_cartridge_device::c64_reu1700_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : c64_reu_cartridge_device(mconfig, C64_REU1700, "1700 REU", tag, owner, clock, TYPE_1700, 0, 128 * 1024, "c64_1700reu", __FILE__) { } + : c64_reu_cartridge_device(mconfig, C64_REU1700, tag, owner, clock, TYPE_1700, 0, 128 * 1024) { } c64_reu1750_cartridge_device::c64_reu1750_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : c64_reu_cartridge_device(mconfig, C64_REU1750, "1750 REU", tag, owner, clock, TYPE_1750, 1, 256 * 1024, "c64_1750reu", __FILE__) { } + : c64_reu_cartridge_device(mconfig, C64_REU1750, tag, owner, clock, TYPE_1750, 1, 256 * 1024) { } c64_reu1764_cartridge_device::c64_reu1764_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : c64_reu_cartridge_device(mconfig, C64_REU1764, "1764 REU", tag, owner, clock, TYPE_1764, 1, 512 * 1024, "c64_1764reu", __FILE__) { } + : c64_reu_cartridge_device(mconfig, C64_REU1764, tag, owner, clock, TYPE_1764, 1, 512 * 1024) { } //------------------------------------------------- diff --git a/src/devices/bus/c64/reu.h b/src/devices/bus/c64/reu.h index 66888f87f0d..7ace9c7b2a9 100644 --- a/src/devices/bus/c64/reu.h +++ b/src/devices/bus/c64/reu.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_C64_REU_H +#define MAME_BUS_C64_REU_H -#ifndef __REU__ -#define __REU__ +#pragma once #include "bus/generic/slot.h" @@ -29,9 +29,6 @@ class c64_reu_cartridge_device : public device_t, public device_c64_expansion_card_interface { public: - // construction/destruction - c64_reu_cartridge_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, uint32_t variant, int jp1, size_t ram_size, const char *shortname, const char *source); - // optional information overrides virtual machine_config_constructor device_mconfig_additions() const override; @@ -43,6 +40,9 @@ protected: TYPE_1764 }; + // construction/destruction + c64_reu_cartridge_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint32_t variant, int jp1, size_t ram_size); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -91,10 +91,9 @@ public: // device type definition -extern const device_type C64_REU1700; -extern const device_type C64_REU1750; -extern const device_type C64_REU1764; - +DECLARE_DEVICE_TYPE(C64_REU1700, c64_reu1700_cartridge_device) +DECLARE_DEVICE_TYPE(C64_REU1750, c64_reu1750_cartridge_device) +DECLARE_DEVICE_TYPE(C64_REU1764, c64_reu1764_cartridge_device) -#endif +#endif // MAME_BUS_C64_REU_H diff --git a/src/devices/bus/c64/rex.cpp b/src/devices/bus/c64/rex.cpp index 08b357dbc41..73bcdaf453a 100644 --- a/src/devices/bus/c64/rex.cpp +++ b/src/devices/bus/c64/rex.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type C64_REX = device_creator; +DEFINE_DEVICE_TYPE(C64_REX, c64_rex_cartridge_device, "c64_rex", "C64 Rex cartridge") @@ -28,7 +28,7 @@ const device_type C64_REX = device_creator; //------------------------------------------------- c64_rex_cartridge_device::c64_rex_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, C64_REX, "C64 Rex cartridge", tag, owner, clock, "c64_rex", __FILE__), + device_t(mconfig, C64_REX, tag, owner, clock), device_c64_expansion_card_interface(mconfig, *this) { } diff --git a/src/devices/bus/c64/rex.h b/src/devices/bus/c64/rex.h index 65ea804e159..42d565971ed 100644 --- a/src/devices/bus/c64/rex.h +++ b/src/devices/bus/c64/rex.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_C64_REX_H +#define MAME_BUS_C64_REX_H -#ifndef __REX__ -#define __REX__ +#pragma once #include "exp.h" @@ -40,7 +40,7 @@ protected: // device type definition -extern const device_type C64_REX; +DECLARE_DEVICE_TYPE(C64_REX, c64_rex_cartridge_device) -#endif +#endif // MAME_BUS_C64_REX_H diff --git a/src/devices/bus/c64/rex_ep256.cpp b/src/devices/bus/c64/rex_ep256.cpp index 7c93751ea10..6ba19fd1f2f 100644 --- a/src/devices/bus/c64/rex_ep256.cpp +++ b/src/devices/bus/c64/rex_ep256.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type C64_REX_EP256 = device_creator; +DEFINE_DEVICE_TYPE(C64_REX_EP256, c64_rex_ep256_cartridge_device, "rexexp256", "C64 Rex 256KB EPROM cartridge") //------------------------------------------------- @@ -63,7 +63,7 @@ machine_config_constructor c64_rex_ep256_cartridge_device::device_mconfig_additi //------------------------------------------------- c64_rex_ep256_cartridge_device::c64_rex_ep256_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, C64_REX_EP256, "C64 Rex 256KB EPROM cartridge", tag, owner, clock, "rexep256", __FILE__), + device_t(mconfig, C64_REX_EP256, tag, owner, clock), device_c64_expansion_card_interface(mconfig, *this) { for (int i = 0; i < 8; i++) diff --git a/src/devices/bus/c64/rex_ep256.h b/src/devices/bus/c64/rex_ep256.h index 05859b4fc3e..2d4cb25c95f 100644 --- a/src/devices/bus/c64/rex_ep256.h +++ b/src/devices/bus/c64/rex_ep256.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_C64_REX_EP256_H +#define MAME_BUS_C64_REX_EP256_H -#ifndef __REX_EP256__ -#define __REX_EP256__ +#pragma once #include "bus/generic/slot.h" @@ -52,8 +52,7 @@ private: // device type definition -extern const device_type C64_REX_EP256; - +DECLARE_DEVICE_TYPE(C64_REX_EP256, c64_rex_ep256_cartridge_device) -#endif +#endif // MAME_BUS_C64_REX_EP256_H diff --git a/src/devices/bus/c64/ross.cpp b/src/devices/bus/c64/ross.cpp index add7f50bbe2..827f98f9401 100644 --- a/src/devices/bus/c64/ross.cpp +++ b/src/devices/bus/c64/ross.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type C64_ROSS = device_creator; +DEFINE_DEVICE_TYPE(C64_ROSS, c64_ross_cartridge_device, "c64_ross", "C64 Ross cartridge") @@ -28,7 +28,7 @@ const device_type C64_ROSS = device_creator; //------------------------------------------------- c64_ross_cartridge_device::c64_ross_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, C64_ROSS, "C64 Ross cartridge", tag, owner, clock, "c64_ross", __FILE__), + device_t(mconfig, C64_ROSS, tag, owner, clock), device_c64_expansion_card_interface(mconfig, *this), m_bank(0) { } diff --git a/src/devices/bus/c64/ross.h b/src/devices/bus/c64/ross.h index e6096c1d9bd..c36e616948d 100644 --- a/src/devices/bus/c64/ross.h +++ b/src/devices/bus/c64/ross.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_C64_ROSS_H +#define MAME_BUS_C64_ROSS_H -#ifndef __ROSS__ -#define __ROSS__ +#pragma once #include "exp.h" @@ -44,8 +44,7 @@ private: // device type definition -extern const device_type C64_ROSS; - +DECLARE_DEVICE_TYPE(C64_ROSS, c64_ross_cartridge_device) -#endif +#endif // MAME_BUS_C64_ROSS_H diff --git a/src/devices/bus/c64/sfx_sound_expander.cpp b/src/devices/bus/c64/sfx_sound_expander.cpp index b77dff2d61d..7c721d03b6c 100644 --- a/src/devices/bus/c64/sfx_sound_expander.cpp +++ b/src/devices/bus/c64/sfx_sound_expander.cpp @@ -24,7 +24,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type C64_SFX_SOUND_EXPANDER = device_creator; +DEFINE_DEVICE_TYPE(C64_SFX_SOUND_EXPANDER, c64_sfx_sound_expander_cartridge_device, "c64_sfxse", "C64 SFX Sound Expander cartridge") //------------------------------------------------- @@ -183,7 +183,7 @@ inline offs_t c64_sfx_sound_expander_cartridge_device::get_offset(offs_t offset, //------------------------------------------------- c64_sfx_sound_expander_cartridge_device::c64_sfx_sound_expander_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, C64_SFX_SOUND_EXPANDER, "C64 SFX Sound Expander cartridge", tag, owner, clock, "c64_sfxse", __FILE__), + device_t(mconfig, C64_SFX_SOUND_EXPANDER, tag, owner, clock), device_c64_expansion_card_interface(mconfig, *this), m_opl(*this, YM3526_TAG), m_exp(*this, C64_EXPANSION_SLOT_TAG), diff --git a/src/devices/bus/c64/sfx_sound_expander.h b/src/devices/bus/c64/sfx_sound_expander.h index f0d0e132dd1..8df5a1d6c0a 100644 --- a/src/devices/bus/c64/sfx_sound_expander.h +++ b/src/devices/bus/c64/sfx_sound_expander.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_C64_SFX_SOUND_EXPANDER_H +#define MAME_BUS_C64_SFX_SOUND_EXPANDER_H -#ifndef __SFX_SOUND_EXPANDER__ -#define __SFX_SOUND_EXPANDER__ +#pragma once #include "exp.h" #include "sound/3526intf.h" @@ -56,8 +56,7 @@ private: // device type definition -extern const device_type C64_SFX_SOUND_EXPANDER; - +DECLARE_DEVICE_TYPE(C64_SFX_SOUND_EXPANDER, c64_sfx_sound_expander_cartridge_device) -#endif +#endif // MAME_BUS_C64_SFX_SOUND_EXPANDER_H diff --git a/src/devices/bus/c64/silverrock.cpp b/src/devices/bus/c64/silverrock.cpp index d780445f714..2260b82738a 100644 --- a/src/devices/bus/c64/silverrock.cpp +++ b/src/devices/bus/c64/silverrock.cpp @@ -48,7 +48,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type C64_SILVERROCK = device_creator; +DEFINE_DEVICE_TYPE(C64_SILVERROCK, c64_silverrock_cartridge_device, "c64_silverrock", "C64 SilverRock cartridge") @@ -61,7 +61,7 @@ const device_type C64_SILVERROCK = device_creator; +DEFINE_DEVICE_TYPE(C64_SIMONS_BASIC, c64_simons_basic_cartridge_device, "c64_simons_basic", "C64 Simons' BASIC") @@ -28,7 +28,7 @@ const device_type C64_SIMONS_BASIC = device_creator; +DEFINE_DEVICE_TYPE(C64_SPEAKEASY, c64_speakeasy_cartridge_device, "c64_speakeasy", "PPP Speakeasy 64") //------------------------------------------------- @@ -44,7 +44,7 @@ MACHINE_CONFIG_END // machine configurations //------------------------------------------------- -machine_config_constructor c64_speakeasy_t::device_mconfig_additions() const +machine_config_constructor c64_speakeasy_cartridge_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( speakeasy ); } @@ -56,11 +56,11 @@ machine_config_constructor c64_speakeasy_t::device_mconfig_additions() const //************************************************************************** //------------------------------------------------- -// c64_speakeasy_t - constructor +// c64_speakeasy_cartridge_device - constructor //------------------------------------------------- -c64_speakeasy_t::c64_speakeasy_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, C64_SPEAKEASY, "Speakeasy 64", tag, owner, clock, "speakeasy64", __FILE__), +c64_speakeasy_cartridge_device::c64_speakeasy_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, C64_SPEAKEASY, tag, owner, clock), device_c64_expansion_card_interface(mconfig, *this), m_votrax(*this, SC01A_TAG) { @@ -71,7 +71,7 @@ c64_speakeasy_t::c64_speakeasy_t(const machine_config &mconfig, const char *tag, // device_start - device-specific startup //------------------------------------------------- -void c64_speakeasy_t::device_start() +void c64_speakeasy_cartridge_device::device_start() { } @@ -80,7 +80,7 @@ void c64_speakeasy_t::device_start() // c64_cd_r - cartridge data read //------------------------------------------------- -uint8_t c64_speakeasy_t::c64_cd_r(address_space &space, offs_t offset, uint8_t data, int sphi2, int ba, int roml, int romh, int io1, int io2) +uint8_t c64_speakeasy_cartridge_device::c64_cd_r(address_space &space, offs_t offset, uint8_t data, int sphi2, int ba, int roml, int romh, int io1, int io2) { if (!io1) { @@ -95,7 +95,7 @@ uint8_t c64_speakeasy_t::c64_cd_r(address_space &space, offs_t offset, uint8_t d // c64_cd_w - cartridge data write //------------------------------------------------- -void c64_speakeasy_t::c64_cd_w(address_space &space, offs_t offset, uint8_t data, int sphi2, int ba, int roml, int romh, int io1, int io2) +void c64_speakeasy_cartridge_device::c64_cd_w(address_space &space, offs_t offset, uint8_t data, int sphi2, int ba, int roml, int romh, int io1, int io2) { if (!io1) { diff --git a/src/devices/bus/c64/speakeasy.h b/src/devices/bus/c64/speakeasy.h index 0dee7203789..9ff90a460b9 100644 --- a/src/devices/bus/c64/speakeasy.h +++ b/src/devices/bus/c64/speakeasy.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_C64_SPEAKEASY_H +#define MAME_BUS_C64_SPEAKEASY_H -#ifndef __C64_SPEAKEASY__ -#define __C64_SPEAKEASY__ +#pragma once #include "exp.h" #include "sound/votrax.h" @@ -20,14 +20,13 @@ // TYPE DEFINITIONS //************************************************************************** -// ======================> c64_speakeasy_t +// ======================> c64_speakeasy_cartridge_device -class c64_speakeasy_t : public device_t, - public device_c64_expansion_card_interface +class c64_speakeasy_cartridge_device : public device_t, public device_c64_expansion_card_interface { public: // construction/destruction - c64_speakeasy_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + c64_speakeasy_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual machine_config_constructor device_mconfig_additions() const override; @@ -46,8 +45,7 @@ private: // device type definition -extern const device_type C64_SPEAKEASY; - +DECLARE_DEVICE_TYPE(C64_SPEAKEASY, c64_speakeasy_cartridge_device) -#endif +#endif // MAME_BUS_C64_SPEAKEASY_H diff --git a/src/devices/bus/c64/stardos.cpp b/src/devices/bus/c64/stardos.cpp index 945d089f15d..ce3d19f0b9b 100644 --- a/src/devices/bus/c64/stardos.cpp +++ b/src/devices/bus/c64/stardos.cpp @@ -44,7 +44,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type C64_STARDOS = device_creator; +DEFINE_DEVICE_TYPE(C64_STARDOS, c64_stardos_cartridge_device, "c64_stardos", "C64 StarDOS cartridge") //------------------------------------------------- @@ -114,7 +114,7 @@ void c64_stardos_cartridge_device::charge_io2_capacitor() //------------------------------------------------- c64_stardos_cartridge_device::c64_stardos_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, C64_STARDOS, "C64 StarDOS cartridge", tag, owner, clock, "c64_stardos", __FILE__), + device_t(mconfig, C64_STARDOS, tag, owner, clock), device_c64_expansion_card_interface(mconfig, *this), m_io1_charge(0), m_io2_charge(0) diff --git a/src/devices/bus/c64/stardos.h b/src/devices/bus/c64/stardos.h index 337101c8f7d..d9c8699a991 100644 --- a/src/devices/bus/c64/stardos.h +++ b/src/devices/bus/c64/stardos.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_C4_STARDOS_H +#define MAME_BUS_C4_STARDOS_H -#ifndef __STARDOS__ -#define __STARDOS__ +#pragma once #include "exp.h" @@ -53,7 +53,7 @@ private: // device type definition -extern const device_type C64_STARDOS; +DECLARE_DEVICE_TYPE(C64_STARDOS, c64_stardos_cartridge_device) -#endif +#endif // MAME_BUS_C4_STARDOS_H diff --git a/src/devices/bus/c64/std.cpp b/src/devices/bus/c64/std.cpp index 2b75507d9b6..fac9d021696 100644 --- a/src/devices/bus/c64/std.cpp +++ b/src/devices/bus/c64/std.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type C64_STD = device_creator; +DEFINE_DEVICE_TYPE(C64_STD, c64_standard_cartridge_device, "c64_standard", "C64 standard cartridge") @@ -28,7 +28,7 @@ const device_type C64_STD = device_creator; //------------------------------------------------- c64_standard_cartridge_device::c64_standard_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, C64_STD, "C64 standard cartridge", tag, owner, clock, "c64_standard", __FILE__), + device_t(mconfig, C64_STD, tag, owner, clock), device_c64_expansion_card_interface(mconfig, *this) { } diff --git a/src/devices/bus/c64/std.h b/src/devices/bus/c64/std.h index 22c0d29e171..8a2599fe7bd 100644 --- a/src/devices/bus/c64/std.h +++ b/src/devices/bus/c64/std.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_C64_STD_H +#define MAME_BUS_C64_STD_H -#ifndef __C64_STANDARD_CARTRIDGE__ -#define __C64_STANDARD_CARTRIDGE__ +#pragma once #include "exp.h" @@ -39,7 +39,7 @@ protected: // device type definition -extern const device_type C64_STD; +DECLARE_DEVICE_TYPE(C64_STD, c64_standard_cartridge_device) -#endif +#endif // MAME_BUS_C64_STD_H diff --git a/src/devices/bus/c64/structured_basic.cpp b/src/devices/bus/c64/structured_basic.cpp index 9e5580545df..2f968643b7d 100644 --- a/src/devices/bus/c64/structured_basic.cpp +++ b/src/devices/bus/c64/structured_basic.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type C64_STRUCTURED_BASIC = device_creator; +DEFINE_DEVICE_TYPE(C64_STRUCTURED_BASIC, c64_structured_basic_cartridge_device, "c64_structured_basic", "C64 Structured Basic cartridge") @@ -28,7 +28,7 @@ const device_type C64_STRUCTURED_BASIC = device_creator; +DEFINE_DEVICE_TYPE(C64_SUPER_EXPLODE, c64_super_explode_cartridge_device, "c64_super_explode", "C64 Super Explode! cartridge") @@ -38,7 +38,7 @@ const device_type C64_SUPER_EXPLODE = device_creator; +DEFINE_DEVICE_TYPE(C64_SUPER_GAMES, c64_super_games_cartridge_device, "c64_super_games", "C64 Super Games cartridge") @@ -28,7 +28,7 @@ const device_type C64_SUPER_GAMES = device_creator; +DEFINE_DEVICE_TYPE(C64_SUPERCPU, c64_supercpu_device, "c64_supercpu", "C64 SuperCPU v2 + SuperRAM") //------------------------------------------------- @@ -120,7 +120,7 @@ ioport_constructor c64_supercpu_device::device_input_ports() const //------------------------------------------------- c64_supercpu_device::c64_supercpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, C64_SUPERCPU, "SuperCPU", tag, owner, clock, "c64_supercpu", __FILE__), + device_t(mconfig, C64_SUPERCPU, tag, owner, clock), device_c64_expansion_card_interface(mconfig, *this), m_maincpu(*this, G65816_TAG), m_exp(*this, C64_EXPANSION_SLOT_TAG), diff --git a/src/devices/bus/c64/supercpu.h b/src/devices/bus/c64/supercpu.h index 3db47899c01..c3c0308d471 100644 --- a/src/devices/bus/c64/supercpu.h +++ b/src/devices/bus/c64/supercpu.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_C64_SUPERCPU_H +#define MAME_BUS_C64_SUPERCPU_H -#ifndef __SUPERCPU__ -#define __SUPERCPU__ +#pragma once #include "exp.h" #include "cpu/g65816/g65816.h" @@ -55,8 +55,7 @@ private: // device type definition -extern const device_type C64_SUPERCPU; - +DECLARE_DEVICE_TYPE(C64_SUPERCPU, c64_supercpu_device) -#endif +#endif // MAME_BUS_C64_SUPERCPU_H diff --git a/src/devices/bus/c64/sw8k.cpp b/src/devices/bus/c64/sw8k.cpp index 024d6c0145c..ff0e3310101 100644 --- a/src/devices/bus/c64/sw8k.cpp +++ b/src/devices/bus/c64/sw8k.cpp @@ -38,7 +38,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type C64_SW8K = device_creator; +DEFINE_DEVICE_TYPE(C64_SW8K, c64_switchable_8k_cartridge_device, "c64_sw8k", "C64 Switchable 8K cartridge") //------------------------------------------------- @@ -73,7 +73,7 @@ ioport_constructor c64_switchable_8k_cartridge_device::device_input_ports() cons //------------------------------------------------- c64_switchable_8k_cartridge_device::c64_switchable_8k_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, C64_SW8K, "C64 Switchable 8K cartridge", tag, owner, clock, "c64_sw8k", __FILE__), + device_t(mconfig, C64_SW8K, tag, owner, clock), device_c64_expansion_card_interface(mconfig, *this), m_sw(*this, "SW"), m_bank(0) { diff --git a/src/devices/bus/c64/sw8k.h b/src/devices/bus/c64/sw8k.h index 6217da60d70..10ced77912a 100644 --- a/src/devices/bus/c64/sw8k.h +++ b/src/devices/bus/c64/sw8k.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_C64_SW8K_H +#define MAME_BUS_C64_SW8K_H -#ifndef __C64_SW8K__ -#define __C64_SW8K__ +#pragma once #include "exp.h" @@ -49,6 +49,7 @@ private: // device type definition extern const device_type C64_SW8K; +DECLARE_DEVICE_TYPE(C64_SW8K, c64_switchable_8k_cartridge_device) -#endif +#endif // MAME_BUS_C64_SW8K_H diff --git a/src/devices/bus/c64/swiftlink.cpp b/src/devices/bus/c64/swiftlink.cpp index eeaa9677568..a59c65d5048 100644 --- a/src/devices/bus/c64/swiftlink.cpp +++ b/src/devices/bus/c64/swiftlink.cpp @@ -31,7 +31,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type C64_SWIFTLINK = device_creator; +DEFINE_DEVICE_TYPE(C64_SWIFTLINK, c64_swiftlink_cartridge_device, "c64_swiftlink", "C64 SwiftLink cartridge") //------------------------------------------------- @@ -101,7 +101,7 @@ ioport_constructor c64_swiftlink_cartridge_device::device_input_ports() const //------------------------------------------------- c64_swiftlink_cartridge_device::c64_swiftlink_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, C64_SWIFTLINK, "C64 SwiftLink cartridge", tag, owner, clock, "c64_swiftlink", __FILE__), + device_t(mconfig, C64_SWIFTLINK, tag, owner, clock), device_c64_expansion_card_interface(mconfig, *this), m_acia(*this, MOS6551_TAG), m_io_cs(*this, "CS"), diff --git a/src/devices/bus/c64/swiftlink.h b/src/devices/bus/c64/swiftlink.h index 3cc2ed17165..fba041f1b11 100644 --- a/src/devices/bus/c64/swiftlink.h +++ b/src/devices/bus/c64/swiftlink.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_C64_SWIFTLINK_H +#define MAME_BUS_C64_SWIFTLINK_H -#ifndef __SWIFTLINK__ -#define __SWIFTLINK__ +#pragma once #include "exp.h" @@ -70,7 +70,7 @@ private: // device type definition -extern const device_type C64_SWIFTLINK; +DECLARE_DEVICE_TYPE(C64_SWIFTLINK, c64_swiftlink_cartridge_device) -#endif +#endif // MAME_BUS_C64_SWIFTLINK_H diff --git a/src/devices/bus/c64/system3.cpp b/src/devices/bus/c64/system3.cpp index c7a72e4d4a2..7a1fd54ab3e 100644 --- a/src/devices/bus/c64/system3.cpp +++ b/src/devices/bus/c64/system3.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type C64_SYSTEM3 = device_creator; +DEFINE_DEVICE_TYPE(C64_SYSTEM3, c64_system3_cartridge_device, "c64_system3", "C64 System 3 cartridge") @@ -28,7 +28,7 @@ const device_type C64_SYSTEM3 = device_creator; //------------------------------------------------- c64_system3_cartridge_device::c64_system3_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, C64_SYSTEM3, "C64 System 3 cartridge", tag, owner, clock, "c64_system3", __FILE__), + device_t(mconfig, C64_SYSTEM3, tag, owner, clock), device_c64_expansion_card_interface(mconfig, *this), m_bank(0) { diff --git a/src/devices/bus/c64/system3.h b/src/devices/bus/c64/system3.h index 4f348628222..ff5ed78b53d 100644 --- a/src/devices/bus/c64/system3.h +++ b/src/devices/bus/c64/system3.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_BUS_SYSTEM3_H +#define MAME_BUS_BUS_SYSTEM3_H -#ifndef __SYSTEM3__ -#define __SYSTEM3__ +#pragma once #include "exp.h" @@ -44,7 +44,7 @@ private: // device type definition -extern const device_type C64_SYSTEM3; +DECLARE_DEVICE_TYPE(C64_SYSTEM3, c64_system3_cartridge_device) -#endif +#endif // MAME_BUS_C64_SYSTEM3_H diff --git a/src/devices/bus/c64/tdos.cpp b/src/devices/bus/c64/tdos.cpp index 276a1d8965e..11019901cdd 100644 --- a/src/devices/bus/c64/tdos.cpp +++ b/src/devices/bus/c64/tdos.cpp @@ -146,7 +146,7 @@ BASIC commands (SYS 32768 to activate) // DEVICE DEFINITIONS //************************************************************************** -const device_type C64_TDOS = device_creator; +DEFINE_DEVICE_TYPE(C64_TDOS, c64_tdos_cartridge_device, "c64_tdos", "C64 TDOS cartridge") //------------------------------------------------- @@ -203,7 +203,7 @@ ioport_constructor c64_tdos_cartridge_device::device_input_ports() const //------------------------------------------------- c64_tdos_cartridge_device::c64_tdos_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, C64_TDOS, "C64 TDOS cartridge", tag, owner, clock, "c64_tdos", __FILE__), + device_t(mconfig, C64_TDOS, tag, owner, clock), device_c64_expansion_card_interface(mconfig, *this), m_ssda(*this, MC68A52P_TAG), m_exp(*this, C64_EXPANSION_SLOT_TAG), diff --git a/src/devices/bus/c64/tdos.h b/src/devices/bus/c64/tdos.h index 79fcadd3537..164d2fd5ca0 100644 --- a/src/devices/bus/c64/tdos.h +++ b/src/devices/bus/c64/tdos.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_C64_TDOS_H +#define MAME_BUS_C64_TDOS_H -#ifndef __TDOS__ -#define __TDOS__ +#pragma once #include "exp.h" #include "machine/mc6852.h" @@ -54,7 +54,7 @@ private: // device type definition -extern const device_type C64_TDOS; +DECLARE_DEVICE_TYPE(C64_TDOS, c64_tdos_cartridge_device) -#endif +#endif // MAME_BUS_C64_TDOS_H diff --git a/src/devices/bus/c64/turbo232.cpp b/src/devices/bus/c64/turbo232.cpp index 524cb98a26e..a62c0a58274 100644 --- a/src/devices/bus/c64/turbo232.cpp +++ b/src/devices/bus/c64/turbo232.cpp @@ -30,7 +30,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type C64_TURBO232 = device_creator; +DEFINE_DEVICE_TYPE(C64_TURBO232, c64_turbo232_cartridge_device, "c64_turbo232", "C64 Turbo232 cartridge") //------------------------------------------------- @@ -100,7 +100,7 @@ ioport_constructor c64_turbo232_cartridge_device::device_input_ports() const //------------------------------------------------- c64_turbo232_cartridge_device::c64_turbo232_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, C64_TURBO232, "C64 Turbo232 cartridge", tag, owner, clock, "c64_turbo232", __FILE__), + device_t(mconfig, C64_TURBO232, tag, owner, clock), device_c64_expansion_card_interface(mconfig, *this), m_acia(*this, MOS6551_TAG), m_rs232(*this, RS232_TAG), diff --git a/src/devices/bus/c64/turbo232.h b/src/devices/bus/c64/turbo232.h index c98d9cc10eb..4ca2cb73084 100644 --- a/src/devices/bus/c64/turbo232.h +++ b/src/devices/bus/c64/turbo232.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_C64_TURBO232_H +#define MAME_BUS_C64_TURBO232_H -#ifndef __TURBO232__ -#define __TURBO232__ +#pragma once #include "exp.h" @@ -83,7 +83,7 @@ private: // device type definition -extern const device_type C64_TURBO232; +DECLARE_DEVICE_TYPE(C64_TURBO232, c64_turbo232_cartridge_device) -#endif +#endif // MAME_BUS_C64_TURBO232_H diff --git a/src/devices/bus/c64/user.h b/src/devices/bus/c64/user.h index 52aed6eb972..8e9ecf347b2 100644 --- a/src/devices/bus/c64/user.h +++ b/src/devices/bus/c64/user.h @@ -21,13 +21,13 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_C64_USER_H +#define MAME_BUS_C64_USER_H -#ifndef __C64_USER_PORT__ -#define __C64_USER_PORT__ +#pragma once #include "bus/pet/user.h" SLOT_INTERFACE_EXTERN( c64_user_port_cards ); -#endif +#endif // MAME_BUS_C64_USER_H diff --git a/src/devices/bus/c64/vizastar.cpp b/src/devices/bus/c64/vizastar.cpp index bd16f5b70bb..03043e7de93 100644 --- a/src/devices/bus/c64/vizastar.cpp +++ b/src/devices/bus/c64/vizastar.cpp @@ -47,7 +47,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type C64_VIZASTAR = device_creator; +DEFINE_DEVICE_TYPE(C64_VIZASTAR, c64_vizastar_cartridge_device, "c64_vizastar", "VizaStar 64 XL4") @@ -60,7 +60,7 @@ const device_type C64_VIZASTAR = device_creator; //------------------------------------------------- c64_vizastar_cartridge_device::c64_vizastar_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, C64_VIZASTAR, "VizaStar 64 XL4", tag, owner, clock, "c64_vizastar", __FILE__), + device_t(mconfig, C64_VIZASTAR, tag, owner, clock), device_c64_expansion_card_interface(mconfig, *this) { } diff --git a/src/devices/bus/c64/vizastar.h b/src/devices/bus/c64/vizastar.h index dc541aec89e..95453eb6e38 100644 --- a/src/devices/bus/c64/vizastar.h +++ b/src/devices/bus/c64/vizastar.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_C64_VIZASTAR_H +#define MAME_BUS_C64_VIZASTAR_H -#ifndef __VIZASTAR__ -#define __VIZASTAR__ +#pragma once #include "exp.h" @@ -39,7 +39,7 @@ protected: // device type definition -extern const device_type C64_VIZASTAR; +DECLARE_DEVICE_TYPE(C64_VIZASTAR, c64_vizastar_cartridge_device) -#endif +#endif // MAME_BUS_C64_VIZASTAR_H diff --git a/src/devices/bus/c64/vw64.cpp b/src/devices/bus/c64/vw64.cpp index 794aa210a8f..f6ed996765a 100644 --- a/src/devices/bus/c64/vw64.cpp +++ b/src/devices/bus/c64/vw64.cpp @@ -55,7 +55,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type C64_VW64 = device_creator; +DEFINE_DEVICE_TYPE(C64_VW64, c64_vizawrite_cartridge_device, "c64_vizawrite", "VizaWrite 64") @@ -68,7 +68,7 @@ const device_type C64_VW64 = device_creator; //------------------------------------------------- c64_vizawrite_cartridge_device::c64_vizawrite_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, C64_VW64, "VizaWrite 64", tag, owner, clock, "c64_vizawrite", __FILE__), + device_t(mconfig, C64_VW64, tag, owner, clock), device_c64_expansion_card_interface(mconfig, *this), m_game_timer(nullptr) { } diff --git a/src/devices/bus/c64/vw64.h b/src/devices/bus/c64/vw64.h index a514931d58d..abff81acb4b 100644 --- a/src/devices/bus/c64/vw64.h +++ b/src/devices/bus/c64/vw64.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_C64_VW64_H +#define MAME_BUS_C64_VW64_H -#ifndef __VW64__ -#define __VW64__ +#pragma once #include "exp.h" @@ -45,7 +45,7 @@ private: // device type definition -extern const device_type C64_VW64; +DECLARE_DEVICE_TYPE(C64_VW64, c64_vizawrite_cartridge_device) -#endif +#endif // MAME_BUS_C64_VW64_H diff --git a/src/devices/bus/c64/warp_speed.cpp b/src/devices/bus/c64/warp_speed.cpp index 17ed11be1b3..e9098dadb44 100644 --- a/src/devices/bus/c64/warp_speed.cpp +++ b/src/devices/bus/c64/warp_speed.cpp @@ -49,7 +49,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type C64_WARP_SPEED = device_creator; +DEFINE_DEVICE_TYPE(C64_WARP_SPEED, c64_warp_speed_cartridge_device, "c64_warp_speed", "C64 Warp Speed cartridge") //------------------------------------------------- @@ -87,7 +87,7 @@ ioport_constructor c64_warp_speed_cartridge_device::device_input_ports() const //------------------------------------------------- c64_warp_speed_cartridge_device::c64_warp_speed_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, C64_WARP_SPEED, "C64 Warp Speed cartridge", tag, owner, clock, "c64_warp_speed", __FILE__), + device_t(mconfig, C64_WARP_SPEED, tag, owner, clock), device_c64_expansion_card_interface(mconfig, *this) { } diff --git a/src/devices/bus/c64/warp_speed.h b/src/devices/bus/c64/warp_speed.h index 2a7f2db65c3..7a3b25cecfc 100644 --- a/src/devices/bus/c64/warp_speed.h +++ b/src/devices/bus/c64/warp_speed.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_C64_WARP_SPEED_H +#define MAME_BUS_C64_WARP_SPEED_H -#ifndef __WARP_SPEED__ -#define __WARP_SPEED__ +#pragma once #include "exp.h" @@ -44,7 +44,7 @@ protected: // device type definition -extern const device_type C64_WARP_SPEED; +DECLARE_DEVICE_TYPE(C64_WARP_SPEED, c64_warp_speed_cartridge_device) -#endif +#endif // MAME_BUS_C64_WARP_SPEED_H diff --git a/src/devices/bus/c64/westermann.cpp b/src/devices/bus/c64/westermann.cpp index d977e493cb5..8cb86b39a1c 100644 --- a/src/devices/bus/c64/westermann.cpp +++ b/src/devices/bus/c64/westermann.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type C64_WESTERMANN = device_creator; +DEFINE_DEVICE_TYPE(C64_WESTERMANN, c64_westermann_cartridge_device, "c64_westermann", "C64 Westermann cartridge") @@ -28,7 +28,7 @@ const device_type C64_WESTERMANN = device_creator; +DEFINE_DEVICE_TYPE(C64_XL80, c64_xl80_device, "c64_xl80", "C64 XL 80 cartridge") //------------------------------------------------- @@ -161,7 +161,7 @@ machine_config_constructor c64_xl80_device::device_mconfig_additions() const //------------------------------------------------- c64_xl80_device::c64_xl80_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, C64_XL80, "XL 80", tag, owner, clock, "c64_xl80", __FILE__), + device_t(mconfig, C64_XL80, tag, owner, clock), device_c64_expansion_card_interface(mconfig, *this), m_crtc(*this, HD46505SP_TAG), m_palette(*this, "palette"), diff --git a/src/devices/bus/c64/xl80.h b/src/devices/bus/c64/xl80.h index 8da0a40a78f..ee3e1789fa1 100644 --- a/src/devices/bus/c64/xl80.h +++ b/src/devices/bus/c64/xl80.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_C64_XL80_H +#define MAME_BUS_C64_XL80_H -#ifndef __XL80__ -#define __XL80__ +#pragma once #include "exp.h" @@ -57,7 +57,7 @@ private: // device type definition -extern const device_type C64_XL80; +DECLARE_DEVICE_TYPE(C64_XL80, c64_xl80_device) -#endif +#endif // MAME_BUS_C64_XL80_H diff --git a/src/devices/bus/c64/zaxxon.cpp b/src/devices/bus/c64/zaxxon.cpp index c6e5c1ef749..8de226cfb9d 100644 --- a/src/devices/bus/c64/zaxxon.cpp +++ b/src/devices/bus/c64/zaxxon.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type C64_ZAXXON = device_creator; +DEFINE_DEVICE_TYPE(C64_ZAXXON, c64_zaxxon_cartridge_device, "c64_zaxxon", "C64 Zaxxon cartridge") @@ -28,7 +28,7 @@ const device_type C64_ZAXXON = device_creator; //------------------------------------------------- c64_zaxxon_cartridge_device::c64_zaxxon_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, C64_ZAXXON, "C64 Zaxxon cartridge", tag, owner, clock, "c64_zaxxon", __FILE__), + device_t(mconfig, C64_ZAXXON, tag, owner, clock), device_c64_expansion_card_interface(mconfig, *this), m_bank(0) { diff --git a/src/devices/bus/c64/zaxxon.h b/src/devices/bus/c64/zaxxon.h index b15b0b0b4a5..dafd293081f 100644 --- a/src/devices/bus/c64/zaxxon.h +++ b/src/devices/bus/c64/zaxxon.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_C64_ZAXXON_H +#define MAME_BUS_C64_ZAXXON_H -#ifndef __ZAXXON__ -#define __ZAXXON__ +#pragma once #include "exp.h" @@ -42,7 +42,7 @@ private: // device type definition -extern const device_type C64_ZAXXON; +DECLARE_DEVICE_TYPE(C64_ZAXXON, c64_zaxxon_cartridge_device) -#endif +#endif // MAME_BUS_C64_ZAXXON_H diff --git a/src/devices/bus/cbm2/24k.cpp b/src/devices/bus/cbm2/24k.cpp index e9e94d272a5..9517337f8c1 100644 --- a/src/devices/bus/cbm2/24k.cpp +++ b/src/devices/bus/cbm2/24k.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type CBM2_24K = device_creator; +DEFINE_DEVICE_TYPE(CBM2_24K, cbm2_24k_cartridge_device, "cbm2_24k", "CBM-II 24K RAM/ROM cartridge") @@ -28,7 +28,7 @@ const device_type CBM2_24K = device_creator; //------------------------------------------------- cbm2_24k_cartridge_device::cbm2_24k_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, CBM2_24K, "24K RAM/ROM cartridge", tag, owner, clock, "cbm2_24k", __FILE__), + device_t(mconfig, CBM2_24K, tag, owner, clock), device_cbm2_expansion_card_interface(mconfig, *this), m_ram(*this, "ram") { diff --git a/src/devices/bus/cbm2/24k.h b/src/devices/bus/cbm2/24k.h index 52b75796402..0e40e67d478 100644 --- a/src/devices/bus/cbm2/24k.h +++ b/src/devices/bus/cbm2/24k.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_CBM2_24K_H +#define MAME_BUS_CBM2_24K_H -#ifndef __CBM2_24K_CARTRIDGE__ -#define __CBM2_24K_CARTRIDGE__ +#pragma once #include "exp.h" @@ -41,7 +41,7 @@ protected: // device type definition -extern const device_type CBM2_24K; +DECLARE_DEVICE_TYPE(CBM2_24K, cbm2_24k_cartridge_device) -#endif +#endif // MAME_BUS_CBM2_24K_H diff --git a/src/devices/bus/cbm2/exp.cpp b/src/devices/bus/cbm2/exp.cpp index bd6c2932128..0659fbc93ed 100644 --- a/src/devices/bus/cbm2/exp.cpp +++ b/src/devices/bus/cbm2/exp.cpp @@ -23,7 +23,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type CBM2_EXPANSION_SLOT = device_creator; +DEFINE_DEVICE_TYPE(CBM2_EXPANSION_SLOT, cbm2_expansion_slot_device, "cbm2_expansion_slot", "CBM-II expansion port") @@ -64,9 +64,10 @@ device_cbm2_expansion_card_interface::~device_cbm2_expansion_card_interface() //------------------------------------------------- cbm2_expansion_slot_device::cbm2_expansion_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, CBM2_EXPANSION_SLOT, "CBM-II expansion port", tag, owner, clock, "cbm2_expansion_slot", __FILE__), - device_slot_interface(mconfig, *this), - device_image_interface(mconfig, *this), m_card(nullptr) + device_t(mconfig, CBM2_EXPANSION_SLOT, tag, owner, clock), + device_slot_interface(mconfig, *this), + device_image_interface(mconfig, *this), + m_card(nullptr) { } diff --git a/src/devices/bus/cbm2/exp.h b/src/devices/bus/cbm2/exp.h index 061834b1504..0b6ca30a087 100644 --- a/src/devices/bus/cbm2/exp.h +++ b/src/devices/bus/cbm2/exp.h @@ -24,10 +24,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_CBM2_EXP_H +#define MAME_BUS_CBM2_EXP_H -#ifndef __CBM2_EXPANSION_SLOT__ -#define __CBM2_EXPANSION_SLOT__ +#pragma once #include "softlist_dev.h" @@ -108,13 +108,14 @@ class device_cbm2_expansion_card_interface : public device_slot_card_interface public: // construction/destruction - device_cbm2_expansion_card_interface(const machine_config &mconfig, device_t &device); virtual ~device_cbm2_expansion_card_interface(); virtual uint8_t cbm2_bd_r(address_space &space, offs_t offset, uint8_t data, int csbank1, int csbank2, int csbank3) { return data; }; virtual void cbm2_bd_w(address_space &space, offs_t offset, uint8_t data, int csbank1, int csbank2, int csbank3) { }; protected: + device_cbm2_expansion_card_interface(const machine_config &mconfig, device_t &device); + optional_shared_ptr m_bank1; optional_shared_ptr m_bank2; optional_shared_ptr m_bank3; @@ -124,11 +125,10 @@ protected: // device type definition -extern const device_type CBM2_EXPANSION_SLOT; +DECLARE_DEVICE_TYPE(CBM2_EXPANSION_SLOT, cbm2_expansion_slot_device) SLOT_INTERFACE_EXTERN( cbm2_expansion_cards ); - -#endif +#endif // MAME_BUS_CBM2_EXP_H diff --git a/src/devices/bus/cbm2/hrg.cpp b/src/devices/bus/cbm2/hrg.cpp index cc06bbb7f40..c1c38b958f1 100644 --- a/src/devices/bus/cbm2/hrg.cpp +++ b/src/devices/bus/cbm2/hrg.cpp @@ -38,8 +38,8 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type CBM2_HRG_A = device_creator; -const device_type CBM2_HRG_B = device_creator; +DEFINE_DEVICE_TYPE(CBM2_HRG_A, cbm2_hrg_a_device, "cbm2_hrga", "CBM 500/600/700 High Resolution Graphics (A)") +DEFINE_DEVICE_TYPE(CBM2_HRG_B, cbm2_hrg_b_device, "cbm2_hrgb", "CBM 500/600/700 High Resolution Graphics (B)") //------------------------------------------------- @@ -56,7 +56,7 @@ ROM_END // rom_region - device-specific ROM region //------------------------------------------------- -const tiny_rom_entry *cbm2_hrg_t::device_rom_region() const +const tiny_rom_entry *cbm2_hrg_device::device_rom_region() const { return ROM_NAME( cbm2_hrg ); } @@ -66,7 +66,7 @@ const tiny_rom_entry *cbm2_hrg_t::device_rom_region() const // ADDRESS_MAP( hrg_a_map ) //------------------------------------------------- -static ADDRESS_MAP_START( hrg_a_map, AS_0, 8, cbm2_hrg_a_t ) +static ADDRESS_MAP_START( hrg_a_map, AS_0, 8, cbm2_hrg_a_device ) ADDRESS_MAP_GLOBAL_MASK(0x7fff) AM_RANGE(0x0000, 0x7fff) AM_RAM ADDRESS_MAP_END @@ -76,7 +76,7 @@ ADDRESS_MAP_END // ADDRESS_MAP( hrg_b_map ) //------------------------------------------------- -static ADDRESS_MAP_START( hrg_b_map, AS_0, 8, cbm2_hrg_b_t ) +static ADDRESS_MAP_START( hrg_b_map, AS_0, 8, cbm2_hrg_b_device ) ADDRESS_MAP_GLOBAL_MASK(0x3fff) AM_RANGE(0x0000, 0x3fff) AM_RAM ADDRESS_MAP_END @@ -99,7 +99,7 @@ static MACHINE_CONFIG_FRAGMENT( cbm2_hrg_a ) MCFG_DEVICE_ADDRESS_MAP(AS_0, hrg_a_map) MCFG_EF936X_PALETTE("palette") MCFG_EF936X_BITPLANES_CNT(1); - MCFG_EF936X_DISPLAYMODE(EF936X_512x512_DISPLAY_MODE); + MCFG_EF936X_DISPLAYMODE(DISPLAY_MODE_512x512); MACHINE_CONFIG_END @@ -120,7 +120,7 @@ static MACHINE_CONFIG_FRAGMENT( cbm2_hrg_b ) MCFG_DEVICE_ADDRESS_MAP(AS_0, hrg_b_map) MCFG_EF936X_PALETTE("palette") MCFG_EF936X_BITPLANES_CNT(1); - MCFG_EF936X_DISPLAYMODE(EF936X_512x256_DISPLAY_MODE); + MCFG_EF936X_DISPLAYMODE(DISPLAY_MODE_512x256); MACHINE_CONFIG_END @@ -129,12 +129,12 @@ MACHINE_CONFIG_END // machine configurations //------------------------------------------------- -machine_config_constructor cbm2_hrg_a_t::device_mconfig_additions() const +machine_config_constructor cbm2_hrg_a_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( cbm2_hrg_a ); } -machine_config_constructor cbm2_hrg_b_t::device_mconfig_additions() const +machine_config_constructor cbm2_hrg_b_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( cbm2_hrg_b ); } @@ -146,24 +146,24 @@ machine_config_constructor cbm2_hrg_b_t::device_mconfig_additions() const //************************************************************************** //------------------------------------------------- -// cbm2_hrg_t - constructor +// cbm2_hrg_device - constructor //------------------------------------------------- -cbm2_hrg_t::cbm2_hrg_t(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), +cbm2_hrg_device::cbm2_hrg_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), device_cbm2_expansion_card_interface(mconfig, *this), m_gdc(*this, EF9366_TAG), m_bank3(*this, "bank3") { } -cbm2_hrg_a_t::cbm2_hrg_a_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - cbm2_hrg_t(mconfig, CBM2_HRG_A, "CBM 500/600/700 High Resolution Graphics (A)", tag, owner, clock, "cbm2_hrga", __FILE__) +cbm2_hrg_a_device::cbm2_hrg_a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + cbm2_hrg_device(mconfig, CBM2_HRG_A, tag, owner, clock) { } -cbm2_hrg_b_t::cbm2_hrg_b_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - cbm2_hrg_t(mconfig, CBM2_HRG_B, "CBM 500/600/700 High Resolution Graphics (B)", tag, owner, clock, "cbm2_hrgb", __FILE__) +cbm2_hrg_b_device::cbm2_hrg_b_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + cbm2_hrg_device(mconfig, CBM2_HRG_B, tag, owner, clock) { } @@ -172,7 +172,7 @@ cbm2_hrg_b_t::cbm2_hrg_b_t(const machine_config &mconfig, const char *tag, devic // device_start - device-specific startup //------------------------------------------------- -void cbm2_hrg_t::device_start() +void cbm2_hrg_device::device_start() { } @@ -181,7 +181,7 @@ void cbm2_hrg_t::device_start() // device_reset - device-specific reset //------------------------------------------------- -void cbm2_hrg_t::device_reset() +void cbm2_hrg_device::device_reset() { m_gdc->reset(); } @@ -191,7 +191,7 @@ void cbm2_hrg_t::device_reset() // cbm2_bd_r - cartridge data read //------------------------------------------------- -uint8_t cbm2_hrg_t::cbm2_bd_r(address_space &space, offs_t offset, uint8_t data, int csbank1, int csbank2, int csbank3) +uint8_t cbm2_hrg_device::cbm2_bd_r(address_space &space, offs_t offset, uint8_t data, int csbank1, int csbank2, int csbank3) { if (!csbank3) { @@ -234,7 +234,7 @@ uint8_t cbm2_hrg_t::cbm2_bd_r(address_space &space, offs_t offset, uint8_t data, // cbm2_bd_w - cartridge data write //------------------------------------------------- -void cbm2_hrg_t::cbm2_bd_w(address_space &space, offs_t offset, uint8_t data, int csbank1, int csbank2, int csbank3) +void cbm2_hrg_device::cbm2_bd_w(address_space &space, offs_t offset, uint8_t data, int csbank1, int csbank2, int csbank3) { if (!csbank3) { diff --git a/src/devices/bus/cbm2/hrg.h b/src/devices/bus/cbm2/hrg.h index 72db8dc8564..289ff89a604 100644 --- a/src/devices/bus/cbm2/hrg.h +++ b/src/devices/bus/cbm2/hrg.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_CBM2_HRG_H +#define MAME_BUS_CBM2_HRG_H -#ifndef __CBM2_GRAPHIC__ -#define __CBM2_GRAPHIC__ +#pragma once #include "exp.h" #include "video/ef9365.h" @@ -20,19 +20,19 @@ // TYPE DEFINITIONS //************************************************************************** -// ======================> cbm2_hrg_t +// ======================> cbm2_hrg_device -class cbm2_hrg_t : public device_t, +class cbm2_hrg_device : public device_t, public device_cbm2_expansion_card_interface { public: - // construction/destruction - cbm2_hrg_t(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - // optional information overrides virtual const tiny_rom_entry *device_rom_region() const override; protected: + // construction/destruction + cbm2_hrg_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -47,26 +47,26 @@ private: }; -// ======================> cbm2_hrg_a_t +// ======================> cbm2_hrg_a_device -class cbm2_hrg_a_t : public cbm2_hrg_t +class cbm2_hrg_a_device : public cbm2_hrg_device { public: // construction/destruction - cbm2_hrg_a_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + cbm2_hrg_a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual machine_config_constructor device_mconfig_additions() const override; }; -// ======================> cbm2_hrg_b_t +// ======================> cbm2_hrg_b_device -class cbm2_hrg_b_t : public cbm2_hrg_t +class cbm2_hrg_b_device : public cbm2_hrg_device { public: // construction/destruction - cbm2_hrg_b_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + cbm2_hrg_b_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual machine_config_constructor device_mconfig_additions() const override; @@ -74,9 +74,8 @@ public: // device type definition -extern const device_type CBM2_HRG_A; -extern const device_type CBM2_HRG_B; - +DECLARE_DEVICE_TYPE(CBM2_HRG_A, cbm2_hrg_a_device) +DECLARE_DEVICE_TYPE(CBM2_HRG_B, cbm2_hrg_b_device) -#endif +#endif // MAME_BUS_CBM2_HRG_H diff --git a/src/devices/bus/cbm2/std.cpp b/src/devices/bus/cbm2/std.cpp index d795fd8837a..5087e39cd93 100644 --- a/src/devices/bus/cbm2/std.cpp +++ b/src/devices/bus/cbm2/std.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type CBM2_STD = device_creator; +DEFINE_DEVICE_TYPE(CBM2_STD, cbm2_standard_cartridge_device, "cbm2_standard", "CBM-II standard cartridge") @@ -28,7 +28,7 @@ const device_type CBM2_STD = device_creator; //------------------------------------------------- cbm2_standard_cartridge_device::cbm2_standard_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, CBM2_STD, "CBM-II standard cartridge", tag, owner, clock, "cbm2_standard", __FILE__), + device_t(mconfig, CBM2_STD, tag, owner, clock), device_cbm2_expansion_card_interface(mconfig, *this) { } diff --git a/src/devices/bus/cbm2/std.h b/src/devices/bus/cbm2/std.h index cbfc3f6f5db..beb54e1fb2e 100644 --- a/src/devices/bus/cbm2/std.h +++ b/src/devices/bus/cbm2/std.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_CBM2_STD_H +#define MAME_BUS_CBM2_STD_H -#ifndef __CBM2_STANDARD_CARTRIDGE__ -#define __CBM2_STANDARD_CARTRIDGE__ +#pragma once #include "exp.h" @@ -38,7 +38,7 @@ protected: // device type definition -extern const device_type CBM2_STD; +DECLARE_DEVICE_TYPE(CBM2_STD, cbm2_standard_cartridge_device) -#endif +#endif // MAME_BUS_CBM2_STD_H diff --git a/src/devices/bus/cbm2/user.cpp b/src/devices/bus/cbm2/user.cpp index 118b379abc8..0c54e409901 100644 --- a/src/devices/bus/cbm2/user.cpp +++ b/src/devices/bus/cbm2/user.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type CBM2_USER_PORT = device_creator; +DEFINE_DEVICE_TYPE(CBM2_USER_PORT, cbm2_user_port_device, "cbm2_user_port", "CBM-II user port") @@ -44,7 +44,7 @@ device_cbm2_user_port_interface::device_cbm2_user_port_interface(const machine_c //------------------------------------------------- cbm2_user_port_device::cbm2_user_port_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, CBM2_USER_PORT, "CBM2 user port", tag, owner, clock, "cbm2_user_port", __FILE__), + device_t(mconfig, CBM2_USER_PORT, tag, owner, clock), device_slot_interface(mconfig, *this), m_write_irq(*this), m_write_sp(*this), diff --git a/src/devices/bus/cbm2/user.h b/src/devices/bus/cbm2/user.h index 02b7565b0e7..9c764d7315b 100644 --- a/src/devices/bus/cbm2/user.h +++ b/src/devices/bus/cbm2/user.h @@ -22,10 +22,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_CBM2_USER_H +#define MAME_BUS_CBM2_USER_H -#ifndef __CBM2_USER_PORT__ -#define __CBM2_USER_PORT__ +#pragma once @@ -73,10 +73,6 @@ class cbm2_user_port_device; class device_cbm2_user_port_interface : public device_slot_card_interface { public: - // construction/destruction - device_cbm2_user_port_interface(const machine_config &mconfig, device_t &device); - virtual ~device_cbm2_user_port_interface() { } - virtual uint8_t cbm2_d1_r(address_space &space, offs_t offset) { return 0xff; }; virtual void cbm2_d1_w(address_space &space, offs_t offset, uint8_t data) { }; @@ -93,6 +89,9 @@ public: virtual void cbm2_sp_w(int state) { }; protected: + // construction/destruction + device_cbm2_user_port_interface(const machine_config &mconfig, device_t &device); + cbm2_user_port_device *m_slot; }; @@ -105,12 +104,11 @@ class cbm2_user_port_device : public device_t, public: // construction/destruction cbm2_user_port_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual ~cbm2_user_port_device() { } - template static devcb_base &set_irq_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_irq.set_callback(object); } - template static devcb_base &set_sp_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_sp.set_callback(object); } - template static devcb_base &set_cnt_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_cnt.set_callback(object); } - template static devcb_base &set_flag_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_flag.set_callback(object); } + template static devcb_base &set_irq_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_irq.set_callback(std::forward(cb)); } + template static devcb_base &set_sp_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_sp.set_callback(std::forward(cb)); } + template static devcb_base &set_cnt_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_cnt.set_callback(std::forward(cb)); } + template static devcb_base &set_flag_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_flag.set_callback(std::forward(cb)); } // computer interface DECLARE_READ8_MEMBER( d1_r ) { uint8_t data = 0xff; if (m_card != nullptr) data = m_card->cbm2_d1_r(space, offset); return data; } @@ -145,12 +143,11 @@ protected: // device type definition -extern const device_type CBM2_USER_PORT; +DECLARE_DEVICE_TYPE(CBM2_USER_PORT, cbm2_user_port_device) // slot devices SLOT_INTERFACE_EXTERN( cbm2_user_port_cards ); - -#endif +#endif // MAME_BUS_CBM2_USER_H diff --git a/src/devices/bus/cbmiec/c1526.cpp b/src/devices/bus/cbmiec/c1526.cpp index 4c13a5cb151..db9b513d92b 100644 --- a/src/devices/bus/cbmiec/c1526.cpp +++ b/src/devices/bus/cbmiec/c1526.cpp @@ -23,9 +23,9 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type C1526 = device_creator; +DEFINE_DEVICE_TYPE(C1526, c1526_device, "c1526", "MPS802/C1526 Printer") +DEFINE_DEVICE_TYPE(C4023, c4023_device, "c4023", "C4023 Printer") const device_type MPS802 = C1526; -const device_type C4023 = device_creator; //------------------------------------------------- @@ -49,7 +49,7 @@ ROM_END // rom_region - device-specific ROM region //------------------------------------------------- -const tiny_rom_entry *c1526_t::device_rom_region() const +const tiny_rom_entry *c1526_device::device_rom_region() const { return ROM_NAME( c1526 ); } @@ -69,7 +69,7 @@ ROM_END // rom_region - device-specific ROM region //------------------------------------------------- -const tiny_rom_entry *c4023_t::device_rom_region() const +const tiny_rom_entry *c4023_device::device_rom_region() const { return ROM_NAME( c4023 ); } @@ -79,7 +79,7 @@ const tiny_rom_entry *c4023_t::device_rom_region() const // ADDRESS_MAP( c1526_mem ) //------------------------------------------------- -static ADDRESS_MAP_START( c1526_mem, AS_PROGRAM, 8, c1526_base_t ) +static ADDRESS_MAP_START( c1526_mem, AS_PROGRAM, 8, c1526_device_base ) AM_RANGE(0x0000, 0x1fff) AM_ROM AM_REGION(M6504_TAG, 0) ADDRESS_MAP_END @@ -99,7 +99,7 @@ MACHINE_CONFIG_END // machine configurations //------------------------------------------------- -machine_config_constructor c1526_t::device_mconfig_additions() const +machine_config_constructor c1526_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( c1526 ); } @@ -120,7 +120,7 @@ MACHINE_CONFIG_END // machine configurations //------------------------------------------------- -machine_config_constructor c4023_t::device_mconfig_additions() const +machine_config_constructor c4023_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( c4023 ); } @@ -138,7 +138,7 @@ INPUT_PORTS_END // input_ports - device-specific input ports //------------------------------------------------- -ioport_constructor c1526_t::device_input_ports() const +ioport_constructor c1526_device::device_input_ports() const { return INPUT_PORTS_NAME( c1526 ); } @@ -156,7 +156,7 @@ INPUT_PORTS_END // input_ports - device-specific input ports //------------------------------------------------- -ioport_constructor c4023_t::device_input_ports() const +ioport_constructor c4023_device::device_input_ports() const { return INPUT_PORTS_NAME( c4023 ); } @@ -168,32 +168,32 @@ ioport_constructor c4023_t::device_input_ports() const //************************************************************************** //------------------------------------------------- -// c1526_base_t - constructor +// c1526_device_base - constructor //------------------------------------------------- -c1526_base_t:: c1526_base_t(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source) +c1526_device_base::c1526_device_base(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock) { } //------------------------------------------------- -// c1526_t - constructor +// c1526_device - constructor //------------------------------------------------- -c1526_t::c1526_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - c1526_base_t(mconfig, C1526, "MPS802/C1526 Printer", tag, owner, clock, "c1526", __FILE__), +c1526_device::c1526_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + c1526_device_base(mconfig, C1526, tag, owner, clock), device_cbm_iec_interface(mconfig, *this) { } //------------------------------------------------- -// c4023_t - constructor +// c4023_device - constructor //------------------------------------------------- -c4023_t::c4023_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - c1526_base_t(mconfig, C4023, "C4023 Printer", tag, owner, clock, "c4023", __FILE__), +c4023_device::c4023_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + c1526_device_base(mconfig, C4023, tag, owner, clock), device_ieee488_interface(mconfig, *this) { } @@ -203,7 +203,7 @@ c4023_t::c4023_t(const machine_config &mconfig, const char *tag, device_t *owner // device_start - device-specific startup //------------------------------------------------- -void c1526_base_t::device_start() +void c1526_device_base::device_start() { } @@ -212,7 +212,7 @@ void c1526_base_t::device_start() // device_reset - device-specific reset //------------------------------------------------- -void c1526_base_t::device_reset() +void c1526_device_base::device_reset() { } @@ -221,7 +221,7 @@ void c1526_base_t::device_reset() // cbm_iec_atn - //------------------------------------------------- -void c1526_t::cbm_iec_atn(int state) +void c1526_device::cbm_iec_atn(int state) { } @@ -230,7 +230,7 @@ void c1526_t::cbm_iec_atn(int state) // cbm_iec_data - //------------------------------------------------- -void c1526_t::cbm_iec_data(int state) +void c1526_device::cbm_iec_data(int state) { } @@ -239,7 +239,7 @@ void c1526_t::cbm_iec_data(int state) // cbm_iec_reset - //------------------------------------------------- -void c1526_t::cbm_iec_reset(int state) +void c1526_device::cbm_iec_reset(int state) { if (!state) { @@ -252,7 +252,7 @@ void c1526_t::cbm_iec_reset(int state) // ieee488_atn_w - //------------------------------------------------- -void c4023_t::ieee488_atn(int state) +void c4023_device::ieee488_atn(int state) { } @@ -261,7 +261,7 @@ void c4023_t::ieee488_atn(int state) // ieee488_ifc_w - //------------------------------------------------- -void c4023_t::ieee488_ifc(int state) +void c4023_device::ieee488_ifc(int state) { if (!state) { diff --git a/src/devices/bus/cbmiec/c1526.h b/src/devices/bus/cbmiec/c1526.h index ba528485ac8..9d4d61ec7ae 100644 --- a/src/devices/bus/cbmiec/c1526.h +++ b/src/devices/bus/cbmiec/c1526.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_CBMIEC_C1626_H +#define MAME_BUS_CBMIEC_C1626_H -#ifndef __C1526__ -#define __C1526__ +#pragma once #include "cbmiec.h" #include "bus/ieee488/ieee488.h" @@ -21,29 +21,27 @@ // TYPE DEFINITIONS //************************************************************************** -// ======================> c1526_base_t +// ======================> c1526_device_base -class c1526_base_t : public device_t +class c1526_device_base : public device_t { -public: +protected: // construction/destruction - c1526_base_t(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); + c1526_device_base(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); -protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; }; -// ======================> c1526_t +// ======================> c1526_device -class c1526_t : public c1526_base_t, - public device_cbm_iec_interface +class c1526_device : public c1526_device_base, public device_cbm_iec_interface { public: // construction/destruction - c1526_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + c1526_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual machine_config_constructor device_mconfig_additions() const override; @@ -58,14 +56,13 @@ protected: }; -// ======================> c4023_t +// ======================> c4023_device -class c4023_t : public c1526_base_t, - public device_ieee488_interface +class c4023_device : public c1526_device_base, public device_ieee488_interface { public: // construction/destruction - c4023_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + c4023_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual machine_config_constructor device_mconfig_additions() const override; @@ -80,10 +77,9 @@ protected: // device type definition -extern const device_type C1526; +DECLARE_DEVICE_TYPE(C1526, c1526_device) +DECLARE_DEVICE_TYPE(C4023, c4023_device) extern const device_type MPS802; -extern const device_type C4023; - -#endif +#endif // MAME_BUS_CBMIEC_C1626_H diff --git a/src/devices/bus/cbmiec/c1541.cpp b/src/devices/bus/cbmiec/c1541.cpp index 9955cb5afeb..9bb72cc0745 100644 --- a/src/devices/bus/cbmiec/c1541.cpp +++ b/src/devices/bus/cbmiec/c1541.cpp @@ -161,18 +161,18 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type C1540 = device_creator; -const device_type C1541 = device_creator; -const device_type C1541C = device_creator; -const device_type C1541II = device_creator; -const device_type SX1541 = device_creator; -const device_type FSD1 = device_creator; -const device_type FSD2 = device_creator; -const device_type CSD1 = device_creator; -const device_type C1541_DOLPHIN_DOS = device_creator; -const device_type C1541_PROFESSIONAL_DOS_V1 = device_creator; -const device_type C1541_PROLOGIC_DOS_CLASSIC = device_creator; -const device_type INDUS_GT = device_creator; +DEFINE_DEVICE_TYPE(C1540, c1540_device, "c1540", "C1540") +DEFINE_DEVICE_TYPE(C1541, c1541_device, "c1541", "C1541") +DEFINE_DEVICE_TYPE(C1541C, c1541c_device, "c1541c", "C1541C") +DEFINE_DEVICE_TYPE(C1541II, c1541ii_device, "c1541ii", "C1541-II") +DEFINE_DEVICE_TYPE(SX1541, sx1541_device, "sx1541", "SX1541") +DEFINE_DEVICE_TYPE(FSD1, fsd1_device, "fsd1", "FSD-1") +DEFINE_DEVICE_TYPE(FSD2, fsd2_device, "fsd2", "FSD-2") +DEFINE_DEVICE_TYPE(CSD1, csd1_device, "csd1", "CSD-1") +DEFINE_DEVICE_TYPE(C1541_DOLPHIN_DOS, c1541_dolphin_dos_device, "c1541dd", "C1541 Dolphin-DOS 2.0") +DEFINE_DEVICE_TYPE(C1541_PROFESSIONAL_DOS_V1, c1541_professional_dos_v1_device, "c1541pd", "C1541 Professional-DOS v1") +DEFINE_DEVICE_TYPE(C1541_PROLOGIC_DOS_CLASSIC, c1541_prologic_dos_classic_device, "c1541pdc", "C1541 ProLogic-DOS Classic") +DEFINE_DEVICE_TYPE(INDUS_GT, indus_gt_device, "indusgt", "Indus GT") //------------------------------------------------- @@ -190,7 +190,7 @@ ROM_END // rom_region - device-specific ROM region //------------------------------------------------- -const tiny_rom_entry *c1540_t::device_rom_region() const +const tiny_rom_entry *c1540_device::device_rom_region() const { return ROM_NAME( c1540 ); } @@ -234,7 +234,7 @@ ROM_END // rom_region - device-specific ROM region //------------------------------------------------- -const tiny_rom_entry *c1541_t::device_rom_region() const +const tiny_rom_entry *c1541_device::device_rom_region() const { return ROM_NAME( c1541 ); } @@ -258,7 +258,7 @@ ROM_END // rom_region - device-specific ROM region //------------------------------------------------- -const tiny_rom_entry *c1541c_t::device_rom_region() const +const tiny_rom_entry *c1541c_device::device_rom_region() const { return ROM_NAME( c1541c ); } @@ -284,7 +284,7 @@ ROM_END // rom_region - device-specific ROM region //------------------------------------------------- -const tiny_rom_entry *c1541ii_t::device_rom_region() const +const tiny_rom_entry *c1541ii_device::device_rom_region() const { return ROM_NAME( c1541ii ); } @@ -312,7 +312,7 @@ ROM_END // rom_region - device-specific ROM region //------------------------------------------------- -const tiny_rom_entry *sx1541_t::device_rom_region() const +const tiny_rom_entry *sx1541_device::device_rom_region() const { return ROM_NAME( sx1541 ); } @@ -332,7 +332,7 @@ ROM_END // rom_region - device-specific ROM region //------------------------------------------------- -const tiny_rom_entry *fsd1_t::device_rom_region() const +const tiny_rom_entry *fsd1_device::device_rom_region() const { return ROM_NAME( fsd1 ); } @@ -360,7 +360,7 @@ ROM_END // rom_region - device-specific ROM region //------------------------------------------------- -const tiny_rom_entry *fsd2_t::device_rom_region() const +const tiny_rom_entry *fsd2_device::device_rom_region() const { return ROM_NAME( fsd2 ); } @@ -381,7 +381,7 @@ ROM_END // rom_region - device-specific ROM region //------------------------------------------------- -const tiny_rom_entry *csd1_t::device_rom_region() const +const tiny_rom_entry *csd1_device::device_rom_region() const { return ROM_NAME( csd1 ); } @@ -401,7 +401,7 @@ ROM_END // rom_region - device-specific ROM region //------------------------------------------------- -const tiny_rom_entry *c1541_dolphin_dos_t::device_rom_region() const +const tiny_rom_entry *c1541_dolphin_dos_device::device_rom_region() const { return ROM_NAME( c1541dd ); } @@ -422,7 +422,7 @@ ROM_END // rom_region - device-specific ROM region //------------------------------------------------- -const tiny_rom_entry *c1541_professional_dos_v1_t::device_rom_region() const +const tiny_rom_entry *c1541_professional_dos_v1_device::device_rom_region() const { return ROM_NAME( c1541pd ); } @@ -447,7 +447,7 @@ ROM_END // rom_region - device-specific ROM region //------------------------------------------------- -const tiny_rom_entry *c1541_prologic_dos_classic_t::device_rom_region() const +const tiny_rom_entry *c1541_prologic_dos_classic_device::device_rom_region() const { return ROM_NAME( c1541pdc ); } @@ -471,7 +471,7 @@ ROM_END // rom_region - device-specific ROM region //------------------------------------------------- -const tiny_rom_entry *indus_gt_t::device_rom_region() const +const tiny_rom_entry *indus_gt_device::device_rom_region() const { return ROM_NAME( indusgt ); } @@ -481,7 +481,7 @@ const tiny_rom_entry *indus_gt_t::device_rom_region() const // read - //------------------------------------------------- -READ8_MEMBER( c1541_prologic_dos_classic_t::read ) +READ8_MEMBER( c1541_prologic_dos_classic_device::read ) { return 0; } @@ -491,7 +491,7 @@ READ8_MEMBER( c1541_prologic_dos_classic_t::read ) // write - //------------------------------------------------- -WRITE8_MEMBER( c1541_prologic_dos_classic_t::write ) +WRITE8_MEMBER( c1541_prologic_dos_classic_device::write ) { } @@ -500,7 +500,7 @@ WRITE8_MEMBER( c1541_prologic_dos_classic_t::write ) // ADDRESS_MAP( c1541_mem ) //------------------------------------------------- -static ADDRESS_MAP_START( c1541_mem, AS_PROGRAM, 8, c1541_base_t ) +static ADDRESS_MAP_START( c1541_mem, AS_PROGRAM, 8, c1541_device_base ) AM_RANGE(0x0000, 0x07ff) AM_MIRROR(0x6000) AM_RAM AM_RANGE(0x1800, 0x180f) AM_MIRROR(0x63f0) AM_DEVREADWRITE(M6522_0_TAG, via6522_device, read, write) AM_RANGE(0x1c00, 0x1c0f) AM_MIRROR(0x63f0) AM_DEVREADWRITE(M6522_1_TAG, via6522_device, read, write) @@ -512,7 +512,7 @@ ADDRESS_MAP_END // ADDRESS_MAP( c1541dd_mem ) //------------------------------------------------- -static ADDRESS_MAP_START( c1541dd_mem, AS_PROGRAM, 8, c1541_base_t ) +static ADDRESS_MAP_START( c1541dd_mem, AS_PROGRAM, 8, c1541_device_base ) AM_RANGE(0x0000, 0x07ff) AM_MIRROR(0x6000) AM_RAM AM_RANGE(0x1800, 0x180f) AM_MIRROR(0x63f0) AM_DEVREADWRITE(M6522_0_TAG, via6522_device, read, write) AM_RANGE(0x1c00, 0x1c0f) AM_MIRROR(0x63f0) AM_DEVREADWRITE(M6522_1_TAG, via6522_device, read, write) @@ -525,7 +525,7 @@ ADDRESS_MAP_END // ADDRESS_MAP( c1541pd_mem ) //------------------------------------------------- -static ADDRESS_MAP_START( c1541pd_mem, AS_PROGRAM, 8, c1541_base_t ) +static ADDRESS_MAP_START( c1541pd_mem, AS_PROGRAM, 8, c1541_device_base ) AM_RANGE(0x0000, 0x07ff) AM_MIRROR(0x6000) AM_RAM AM_RANGE(0x1800, 0x180f) AM_MIRROR(0x63f0) AM_DEVREADWRITE(M6522_0_TAG, via6522_device, read, write) AM_RANGE(0x1c00, 0x1c0f) AM_MIRROR(0x63f0) AM_DEVREADWRITE(M6522_1_TAG, via6522_device, read, write) @@ -540,7 +540,7 @@ ADDRESS_MAP_END // ADDRESS_MAP( c1541pdc_mem ) //------------------------------------------------- -static ADDRESS_MAP_START( c1541pdc_mem, AS_PROGRAM, 8, c1541_prologic_dos_classic_t ) +static ADDRESS_MAP_START( c1541pdc_mem, AS_PROGRAM, 8, c1541_prologic_dos_classic_device ) AM_RANGE(0x0000, 0xffff) AM_READWRITE(read, write) /* AM_RANGE(0x0000, 0x07ff) AM_MIRROR(0x6000) AM_RAM AM_SHARE("share1") AM_RANGE(0x1800, 0x180f) AM_MIRROR(0x63f0) AM_DEVREADWRITE(M6522_0_TAG, via6522_device, read, write) @@ -553,20 +553,20 @@ static ADDRESS_MAP_START( c1541pdc_mem, AS_PROGRAM, 8, c1541_prologic_dos_classi ADDRESS_MAP_END -WRITE_LINE_MEMBER( c1541_base_t::via0_irq_w ) +WRITE_LINE_MEMBER( c1541_device_base::via0_irq_w ) { m_via0_irq = state; m_maincpu->set_input_line(INPUT_LINE_IRQ0, (m_via0_irq || m_via1_irq) ? ASSERT_LINE : CLEAR_LINE); } -READ8_MEMBER( c1541_base_t::via0_pa_r ) +READ8_MEMBER( c1541_device_base::via0_pa_r ) { // dummy read to acknowledge ATN IN interrupt return m_parallel_data; } -WRITE8_MEMBER( c1541_base_t::via0_pa_w ) +WRITE8_MEMBER( c1541_device_base::via0_pa_w ) { if (m_other != nullptr) { @@ -574,7 +574,7 @@ WRITE8_MEMBER( c1541_base_t::via0_pa_w ) } } -READ8_MEMBER( c1541_base_t::via0_pb_r ) +READ8_MEMBER( c1541_device_base::via0_pb_r ) { /* @@ -608,7 +608,7 @@ READ8_MEMBER( c1541_base_t::via0_pb_r ) return data; } -WRITE8_MEMBER( c1541_base_t::via0_pb_w ) +WRITE8_MEMBER( c1541_device_base::via0_pb_w ) { /* @@ -635,7 +635,7 @@ WRITE8_MEMBER( c1541_base_t::via0_pb_w ) m_bus->clk_w(this, !BIT(data, 3)); } -WRITE_LINE_MEMBER( c1541_base_t::via0_ca2_w ) +WRITE_LINE_MEMBER( c1541_device_base::via0_ca2_w ) { if (m_other != nullptr) { @@ -643,7 +643,7 @@ WRITE_LINE_MEMBER( c1541_base_t::via0_ca2_w ) } } -READ8_MEMBER( c1541c_t::via0_pa_r ) +READ8_MEMBER( c1541c_device::via0_pa_r ) { /* @@ -664,14 +664,14 @@ READ8_MEMBER( c1541c_t::via0_pa_r ) } -WRITE_LINE_MEMBER( c1541_base_t::via1_irq_w ) +WRITE_LINE_MEMBER( c1541_device_base::via1_irq_w ) { m_via1_irq = state; m_maincpu->set_input_line(INPUT_LINE_IRQ0, (m_via0_irq || m_via1_irq) ? ASSERT_LINE : CLEAR_LINE); } -READ8_MEMBER( c1541_base_t::via1_pb_r ) +READ8_MEMBER( c1541_device_base::via1_pb_r ) { /* @@ -699,7 +699,7 @@ READ8_MEMBER( c1541_base_t::via1_pb_r ) return data; } -WRITE8_MEMBER( c1541_base_t::via1_pb_w ) +WRITE8_MEMBER( c1541_device_base::via1_pb_w ) { /* @@ -734,12 +734,12 @@ WRITE8_MEMBER( c1541_base_t::via1_pb_w ) // C64H156_INTERFACE( ga_intf ) //------------------------------------------------- -WRITE_LINE_MEMBER( c1541_base_t::atn_w ) +WRITE_LINE_MEMBER( c1541_device_base::atn_w ) { set_iec_data(); } -WRITE_LINE_MEMBER( c1541_base_t::byte_w ) +WRITE_LINE_MEMBER( c1541_device_base::byte_w ) { m_maincpu->set_input_line(M6502_SET_OVERFLOW, state); @@ -752,7 +752,7 @@ WRITE_LINE_MEMBER( c1541_base_t::byte_w ) //------------------------------------------------- static SLOT_INTERFACE_START( c1540_floppies ) - SLOT_INTERFACE( "525ssqd", ALPS_3255190x ) + SLOT_INTERFACE( "525ssqd", ALPS_3255190X ) SLOT_INTERFACE_END @@ -760,23 +760,23 @@ SLOT_INTERFACE_END // FLOPPY_FORMATS( floppy_formats ) //------------------------------------------------- -FLOPPY_FORMATS_MEMBER( c1541_base_t::floppy_formats ) +FLOPPY_FORMATS_MEMBER( c1541_device_base::floppy_formats ) FLOPPY_D64_FORMAT, FLOPPY_G64_FORMAT FLOPPY_FORMATS_END -READ8_MEMBER( c1541_prologic_dos_classic_t::pia_r ) +READ8_MEMBER( c1541_prologic_dos_classic_device::pia_r ) { return m_pia->read(space, (offset >> 2) & 0x03); } -WRITE8_MEMBER( c1541_prologic_dos_classic_t::pia_w ) +WRITE8_MEMBER( c1541_prologic_dos_classic_device::pia_w ) { m_pia->write(space, (offset >> 2) & 0x03, data); } -WRITE8_MEMBER( c1541_prologic_dos_classic_t::pia_pa_w ) +WRITE8_MEMBER( c1541_prologic_dos_classic_device::pia_pa_w ) { /* @@ -794,12 +794,12 @@ WRITE8_MEMBER( c1541_prologic_dos_classic_t::pia_pa_w ) */ } -READ8_MEMBER( c1541_prologic_dos_classic_t::pia_pb_r ) +READ8_MEMBER( c1541_prologic_dos_classic_device::pia_pb_r ) { return m_parallel_data; } -WRITE8_MEMBER( c1541_prologic_dos_classic_t::pia_pb_w ) +WRITE8_MEMBER( c1541_prologic_dos_classic_device::pia_pb_w ) { m_parallel_data = data; @@ -817,26 +817,26 @@ static MACHINE_CONFIG_FRAGMENT( c1541 ) MCFG_QUANTUM_PERFECT_CPU(M6502_TAG) MCFG_DEVICE_ADD(M6522_0_TAG, VIA6522, XTAL_16MHz/16) - MCFG_VIA6522_READPA_HANDLER(READ8(c1541_base_t, via0_pa_r)) - MCFG_VIA6522_READPB_HANDLER(READ8(c1541_base_t, via0_pb_r)) - MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(c1541_base_t, via0_pa_w)) - MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(c1541_base_t, via0_pb_w)) - MCFG_VIA6522_CB2_HANDLER(WRITELINE(c1541_base_t, via0_ca2_w)) - MCFG_VIA6522_IRQ_HANDLER(WRITELINE(c1541_base_t, via0_irq_w)) + MCFG_VIA6522_READPA_HANDLER(READ8(c1541_device_base, via0_pa_r)) + MCFG_VIA6522_READPB_HANDLER(READ8(c1541_device_base, via0_pb_r)) + MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(c1541_device_base, via0_pa_w)) + MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(c1541_device_base, via0_pb_w)) + MCFG_VIA6522_CB2_HANDLER(WRITELINE(c1541_device_base, via0_ca2_w)) + MCFG_VIA6522_IRQ_HANDLER(WRITELINE(c1541_device_base, via0_irq_w)) MCFG_DEVICE_ADD(M6522_1_TAG, VIA6522, XTAL_16MHz/16) MCFG_VIA6522_READPA_HANDLER(DEVREAD8(C64H156_TAG, c64h156_device, yb_r)) - MCFG_VIA6522_READPB_HANDLER(READ8(c1541_base_t, via1_pb_r)) + MCFG_VIA6522_READPB_HANDLER(READ8(c1541_device_base, via1_pb_r)) MCFG_VIA6522_WRITEPA_HANDLER(DEVWRITE8(C64H156_TAG, c64h156_device, yb_w)) - MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(c1541_base_t, via1_pb_w)) + MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(c1541_device_base, via1_pb_w)) MCFG_VIA6522_CA2_HANDLER(DEVWRITELINE(C64H156_TAG, c64h156_device, soe_w)) MCFG_VIA6522_CB2_HANDLER(DEVWRITELINE(C64H156_TAG, c64h156_device, oe_w)) - MCFG_VIA6522_IRQ_HANDLER(WRITELINE(c1541_base_t, via1_irq_w)) + MCFG_VIA6522_IRQ_HANDLER(WRITELINE(c1541_device_base, via1_irq_w)) MCFG_DEVICE_ADD(C64H156_TAG, C64H156, XTAL_16MHz) - MCFG_64H156_ATN_CALLBACK(WRITELINE(c1541_base_t, atn_w)) - MCFG_64H156_BYTE_CALLBACK(WRITELINE(c1541_base_t, byte_w)) - MCFG_FLOPPY_DRIVE_ADD(C64H156_TAG":0", c1540_floppies, "525ssqd", c1541_base_t::floppy_formats) + MCFG_64H156_ATN_CALLBACK(WRITELINE(c1541_device_base, atn_w)) + MCFG_64H156_BYTE_CALLBACK(WRITELINE(c1541_device_base, byte_w)) + MCFG_FLOPPY_DRIVE_ADD(C64H156_TAG":0", c1540_floppies, "525ssqd", c1541_device_base::floppy_formats) MACHINE_CONFIG_END @@ -845,7 +845,7 @@ MACHINE_CONFIG_END // machine configurations //------------------------------------------------- -machine_config_constructor c1541_base_t::device_mconfig_additions() const +machine_config_constructor c1541_device_base::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( c1541 ); } @@ -865,7 +865,7 @@ MACHINE_CONFIG_END // machine configurations //------------------------------------------------- -machine_config_constructor c1541c_t::device_mconfig_additions() const +machine_config_constructor c1541c_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( c1541c ); } @@ -888,7 +888,7 @@ MACHINE_CONFIG_END // machine configurations //------------------------------------------------- -machine_config_constructor c1541_dolphin_dos_t::device_mconfig_additions() const +machine_config_constructor c1541_dolphin_dos_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( c1541dd ); } @@ -911,7 +911,7 @@ MACHINE_CONFIG_END // machine configurations //------------------------------------------------- -machine_config_constructor c1541_professional_dos_v1_t::device_mconfig_additions() const +machine_config_constructor c1541_professional_dos_v1_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( c1541pd ); } @@ -928,9 +928,9 @@ static MACHINE_CONFIG_FRAGMENT( c1541pdc ) MCFG_CPU_PROGRAM_MAP(c1541pdc_mem) MCFG_DEVICE_ADD(MC6821_TAG, PIA6821, 0) - MCFG_PIA_READPB_HANDLER(READ8(c1541_prologic_dos_classic_t, pia_pb_r)) - MCFG_PIA_WRITEPA_HANDLER(WRITE8(c1541_prologic_dos_classic_t, pia_pa_w)) - MCFG_PIA_WRITEPB_HANDLER(WRITE8(c1541_prologic_dos_classic_t, pia_pb_w)) + MCFG_PIA_READPB_HANDLER(READ8(c1541_prologic_dos_classic_device, pia_pb_r)) + MCFG_PIA_WRITEPA_HANDLER(WRITE8(c1541_prologic_dos_classic_device, pia_pa_w)) + MCFG_PIA_WRITEPB_HANDLER(WRITE8(c1541_prologic_dos_classic_device, pia_pb_w)) MCFG_PIA_CA2_HANDLER(DEVWRITELINE(CENTRONICS_TAG, centronics_device, write_strobe)) MCFG_CENTRONICS_ADD(CENTRONICS_TAG, centronics_devices, "printer") @@ -944,7 +944,7 @@ MACHINE_CONFIG_END // machine configurations //------------------------------------------------- -machine_config_constructor c1541_prologic_dos_classic_t::device_mconfig_additions() const +machine_config_constructor c1541_prologic_dos_classic_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( c1541pdc ); } @@ -968,7 +968,7 @@ INPUT_PORTS_END // input_ports - device-specific input ports //------------------------------------------------- -ioport_constructor c1541_base_t::device_input_ports() const +ioport_constructor c1541_device_base::device_input_ports() const { return INPUT_PORTS_NAME( c1541 ); } @@ -983,7 +983,7 @@ ioport_constructor c1541_base_t::device_input_ports() const // set_iec_data - //------------------------------------------------- -inline void c1541_base_t::set_iec_data() +inline void c1541_device_base::set_iec_data() { int data = !m_data_out && !m_ga->atn_r(); @@ -997,11 +997,11 @@ inline void c1541_base_t::set_iec_data() //************************************************************************** //------------------------------------------------- -// c1541_base_t - constructor +// c1541_device_base - constructor //------------------------------------------------- -c1541_base_t:: c1541_base_t(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), +c1541_device_base::c1541_device_base(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), device_cbm_iec_interface(mconfig, *this), device_c64_floppy_parallel_interface(mconfig, *this), m_maincpu(*this, M6502_TAG), @@ -1018,91 +1018,91 @@ c1541_base_t:: c1541_base_t(const machine_config &mconfig, device_type type, con //------------------------------------------------- -// c1540_t - constructor +// c1540_device - constructor //------------------------------------------------- -c1540_t::c1540_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : c1541_base_t(mconfig, C1540, "C1540", tag, owner, clock, "c1540", __FILE__) { } +c1540_device::c1540_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : c1541_device_base(mconfig, C1540, tag, owner, clock) { } //------------------------------------------------- -// c1541_t - constructor +// c1541_device - constructor //------------------------------------------------- -c1541_t::c1541_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : c1541_base_t(mconfig, C1541, "C1541", tag, owner, clock, "c1541", __FILE__) { } +c1541_device::c1541_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : c1541_device_base(mconfig, C1541, tag, owner, clock) { } //------------------------------------------------- -// c1541c_t - constructor +// c1541c_device - constructor //------------------------------------------------- -c1541c_t::c1541c_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : c1541_base_t(mconfig, C1541C, "C1541C", tag, owner, clock, "c1541c", __FILE__) { } +c1541c_device::c1541c_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : c1541_device_base(mconfig, C1541C, tag, owner, clock) { } //------------------------------------------------- -// c1541ii_t - constructor +// c1541ii_device - constructor //------------------------------------------------- -c1541ii_t::c1541ii_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : c1541_base_t(mconfig, C1541II, "C1541-II", tag, owner, clock, "c1541ii", __FILE__) { } +c1541ii_device::c1541ii_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : c1541_device_base(mconfig, C1541II, tag, owner, clock) { } //------------------------------------------------- -// sx1541_t - constructor +// sx1541_device - constructor //------------------------------------------------- -sx1541_t::sx1541_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : c1541_base_t(mconfig, SX1541, "SX1541", tag, owner, clock, "sx1541", __FILE__) { } +sx1541_device::sx1541_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : c1541_device_base(mconfig, SX1541, tag, owner, clock) { } //------------------------------------------------- -// fsd1_t - constructor +// fsd1_device - constructor //------------------------------------------------- -fsd1_t::fsd1_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : c1541_base_t(mconfig, FSD1, "FSD-1", tag, owner, clock, "fsd1", __FILE__) { } +fsd1_device::fsd1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : c1541_device_base(mconfig, FSD1, tag, owner, clock) { } //------------------------------------------------- -// fsd2_t - constructor +// fsd2_device - constructor //------------------------------------------------- -fsd2_t::fsd2_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : c1541_base_t(mconfig, FSD2, "FSD-2", tag, owner, clock, "fsd2", __FILE__) { } +fsd2_device::fsd2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : c1541_device_base(mconfig, FSD2, tag, owner, clock) { } //------------------------------------------------- -// csd1_t - constructor +// csd1_device - constructor //------------------------------------------------- -csd1_t::csd1_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : c1541_base_t(mconfig, CSD1, "CSD-1", tag, owner, clock, "csd1", __FILE__) { } +csd1_device::csd1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : c1541_device_base(mconfig, CSD1, tag, owner, clock) { } //------------------------------------------------- -// c1541_dolphin_dos_t - constructor +// c1541_dolphin_dos_device - constructor //------------------------------------------------- -c1541_dolphin_dos_t::c1541_dolphin_dos_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : c1541_base_t(mconfig, C1541_DOLPHIN_DOS, "C1541 Dolphin-DOS 2.0", tag, owner, clock, "c1541dd", __FILE__) { } +c1541_dolphin_dos_device::c1541_dolphin_dos_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : c1541_device_base(mconfig, C1541_DOLPHIN_DOS, tag, owner, clock) { } //------------------------------------------------- -// c1541_professional_dos_v1_t - constructor +// c1541_professional_dos_v1_device - constructor //------------------------------------------------- -c1541_professional_dos_v1_t::c1541_professional_dos_v1_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : c1541_base_t(mconfig, C1541_PROFESSIONAL_DOS_V1, "C1541 Professional-DOS v1", tag, owner, clock, "c1541pd", __FILE__) { } +c1541_professional_dos_v1_device::c1541_professional_dos_v1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : c1541_device_base(mconfig, C1541_PROFESSIONAL_DOS_V1, tag, owner, clock) { } //------------------------------------------------- -// c1541_prologic_dos_classic_t - constructor +// c1541_prologic_dos_classic_device - constructor //------------------------------------------------- -c1541_prologic_dos_classic_t::c1541_prologic_dos_classic_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : c1541_base_t(mconfig, C1541_PROLOGIC_DOS_CLASSIC, "C1541 ProLogic-DOS Classic", tag, owner, clock, "c1541pdc", __FILE__), +c1541_prologic_dos_classic_device::c1541_prologic_dos_classic_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : c1541_device_base(mconfig, C1541_PROLOGIC_DOS_CLASSIC, tag, owner, clock), m_pia(*this, MC6821_TAG), m_cent_data_out(*this, "cent_data_out"), m_mmu_rom(*this, "mmu") @@ -1111,18 +1111,18 @@ c1541_prologic_dos_classic_t::c1541_prologic_dos_classic_t(const machine_config //------------------------------------------------- -// indus_gt_t - constructor +// indus_gt_device - constructor //------------------------------------------------- -indus_gt_t::indus_gt_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : c1541_base_t(mconfig, INDUS_GT, "Indus GT", tag, owner, clock, "indusgt", __FILE__) { } +indus_gt_device::indus_gt_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : c1541_device_base(mconfig, INDUS_GT, tag, owner, clock) { } //------------------------------------------------- // device_start - device-specific startup //------------------------------------------------- -void c1541_base_t::device_start() +void c1541_device_base::device_start() { // install image callbacks m_ga->set_floppy(m_floppy); @@ -1133,9 +1133,9 @@ void c1541_base_t::device_start() save_item(NAME(m_via1_irq)); } -void fsd2_t::device_start() +void fsd2_device::device_start() { - c1541_base_t::device_start(); + c1541_device_base::device_start(); // decrypt ROM uint8_t *rom = memregion(M6502_TAG)->base(); @@ -1153,7 +1153,7 @@ void fsd2_t::device_start() // device_reset - device-specific reset //------------------------------------------------- -void c1541_base_t::device_reset() +void c1541_device_base::device_reset() { m_maincpu->reset(); @@ -1170,7 +1170,7 @@ void c1541_base_t::device_reset() // iec_atn_w - //------------------------------------------------- -void c1541_base_t::cbm_iec_atn(int state) +void c1541_device_base::cbm_iec_atn(int state) { m_via0->write_ca1(!state); m_ga->atni_w(!state); @@ -1183,7 +1183,7 @@ void c1541_base_t::cbm_iec_atn(int state) // iec_reset_w - //------------------------------------------------- -void c1541_base_t::cbm_iec_reset(int state) +void c1541_device_base::cbm_iec_reset(int state) { if (!state) { @@ -1196,7 +1196,7 @@ void c1541_base_t::cbm_iec_reset(int state) // parallel_data_w - //------------------------------------------------- -void c1541_base_t::parallel_data_w(uint8_t data) +void c1541_device_base::parallel_data_w(uint8_t data) { m_parallel_data = data; } @@ -1206,7 +1206,7 @@ void c1541_base_t::parallel_data_w(uint8_t data) // parallel_strobe_w - //------------------------------------------------- -void c1541_base_t::parallel_strobe_w(int state) +void c1541_device_base::parallel_strobe_w(int state) { m_via0->write_cb1(state); } diff --git a/src/devices/bus/cbmiec/c1541.h b/src/devices/bus/cbmiec/c1541.h index 73ceb88eef8..3725da29fa5 100644 --- a/src/devices/bus/cbmiec/c1541.h +++ b/src/devices/bus/cbmiec/c1541.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_CBMIEC_C1541_H +#define MAME_BUS_CBMIEC_C1541_H -#ifndef __C1541__ -#define __C1541__ +#pragma once #include "cbmiec.h" #include "bus/c64/bn1541.h" @@ -33,16 +33,13 @@ // TYPE DEFINITIONS //************************************************************************** -// ======================> c1541_base_t +// ======================> c1541_device_base -class c1541_base_t : public device_t, +class c1541_device_base : public device_t, public device_cbm_iec_interface, public device_c64_floppy_parallel_interface { public: - // construction/destruction - c1541_base_t(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - // optional information overrides virtual machine_config_constructor device_mconfig_additions() const override; virtual ioport_constructor device_input_ports() const override; @@ -62,6 +59,9 @@ public: DECLARE_FLOPPY_FORMATS( floppy_formats ); protected: + // construction/destruction + c1541_device_base(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -98,39 +98,39 @@ protected: }; -// ======================> c1540_t +// ======================> c1540_device -class c1540_t : public c1541_base_t +class c1540_device : public c1541_device_base { public: // construction/destruction - c1540_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + c1540_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual const tiny_rom_entry *device_rom_region() const override; }; -// ======================> c1541_t +// ======================> c1541_device -class c1541_t : public c1541_base_t +class c1541_device : public c1541_device_base { public: // construction/destruction - c1541_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + c1541_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual const tiny_rom_entry *device_rom_region() const override; }; -// ======================> c1541c_t +// ======================> c1541c_device -class c1541c_t : public c1541_base_t +class c1541c_device : public c1541_device_base { public: // construction/destruction - c1541c_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + c1541c_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual const tiny_rom_entry *device_rom_region() const override; @@ -141,52 +141,52 @@ public: }; -// ======================> c1541ii_t +// ======================> c1541ii_device -class c1541ii_t : public c1541_base_t +class c1541ii_device : public c1541_device_base { public: // construction/destruction - c1541ii_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + c1541ii_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual const tiny_rom_entry *device_rom_region() const override; }; -// ======================> sx1541_t +// ======================> sx1541_device -class sx1541_t : public c1541_base_t +class sx1541_device : public c1541_device_base { public: // construction/destruction - sx1541_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + sx1541_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual const tiny_rom_entry *device_rom_region() const override; }; -// ======================> fsd1_t +// ======================> fsd1_device -class fsd1_t : public c1541_base_t +class fsd1_device : public c1541_device_base { public: // construction/destruction - fsd1_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + fsd1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual const tiny_rom_entry *device_rom_region() const override; }; -// ======================> fsd2_t +// ======================> fsd2_device -class fsd2_t : public c1541_base_t +class fsd2_device : public c1541_device_base { public: // construction/destruction - fsd2_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + fsd2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual const tiny_rom_entry *device_rom_region() const override; @@ -196,26 +196,26 @@ public: }; -// ======================> csd1_t +// ======================> csd1_device -class csd1_t : public c1541_base_t +class csd1_device : public c1541_device_base { public: // construction/destruction - csd1_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + csd1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual const tiny_rom_entry *device_rom_region() const override; }; -// ======================> c1541_dolphin_dos_t +// ======================> c1541_dolphin_dos_device -class c1541_dolphin_dos_t : public c1541_base_t +class c1541_dolphin_dos_device : public c1541_device_base { public: // construction/destruction - c1541_dolphin_dos_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + c1541_dolphin_dos_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual const tiny_rom_entry *device_rom_region() const override; @@ -223,13 +223,13 @@ public: }; -// ======================> c1541_professional_dos_v1_t +// ======================> c1541_professional_dos_v1_device -class c1541_professional_dos_v1_t : public c1541_base_t +class c1541_professional_dos_v1_device : public c1541_device_base { public: // construction/destruction - c1541_professional_dos_v1_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + c1541_professional_dos_v1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual const tiny_rom_entry *device_rom_region() const override; @@ -237,13 +237,13 @@ public: }; -// ======================> c1541_prologic_dos_classic_t +// ======================> c1541_prologic_dos_classic_device -class c1541_prologic_dos_classic_t : public c1541_base_t +class c1541_prologic_dos_classic_device : public c1541_device_base { public: // construction/destruction - c1541_prologic_dos_classic_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + c1541_prologic_dos_classic_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual const tiny_rom_entry *device_rom_region() const override; @@ -267,13 +267,13 @@ protected: }; -// ======================> indus_gt_t +// ======================> indus_gt_device -class indus_gt_t : public c1541_base_t +class indus_gt_device : public c1541_device_base { public: // construction/destruction - indus_gt_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + indus_gt_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual const tiny_rom_entry *device_rom_region() const override; @@ -281,19 +281,19 @@ public: // device type definition -extern const device_type C1540; -extern const device_type C1541; -extern const device_type C1541C; -extern const device_type C1541II; -extern const device_type SX1541; -extern const device_type FSD1; -extern const device_type FSD2; -extern const device_type CSD1; -extern const device_type C1541_DOLPHIN_DOS; -extern const device_type C1541_PROFESSIONAL_DOS_V1; -extern const device_type C1541_PROLOGIC_DOS_CLASSIC; -extern const device_type INDUS_GT; - - - -#endif +DECLARE_DEVICE_TYPE(C1540, c1540_device) +DECLARE_DEVICE_TYPE(C1541, c1541_device) +DECLARE_DEVICE_TYPE(C1541C, c1541c_device) +DECLARE_DEVICE_TYPE(C1541II, c1541ii_device) +DECLARE_DEVICE_TYPE(SX1541, sx1541_device) +DECLARE_DEVICE_TYPE(FSD1, fsd1_device) +DECLARE_DEVICE_TYPE(FSD2, fsd2_device) +DECLARE_DEVICE_TYPE(CSD1, csd1_device) +DECLARE_DEVICE_TYPE(C1541_DOLPHIN_DOS, c1541_dolphin_dos_device) +DECLARE_DEVICE_TYPE(C1541_PROFESSIONAL_DOS_V1, c1541_professional_dos_v1_device) +DECLARE_DEVICE_TYPE(C1541_PROLOGIC_DOS_CLASSIC, c1541_prologic_dos_classic_device) +DECLARE_DEVICE_TYPE(INDUS_GT, indus_gt_device) + + + +#endif // MAME_BUS_CBMIEC_C1541_H diff --git a/src/devices/bus/cbmiec/c1571.cpp b/src/devices/bus/cbmiec/c1571.cpp index b1369d3cec9..daa9b9d08c9 100644 --- a/src/devices/bus/cbmiec/c1571.cpp +++ b/src/devices/bus/cbmiec/c1571.cpp @@ -44,10 +44,10 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type C1570 = device_creator; -const device_type C1571 = device_creator; -const device_type C1571CR = device_creator; -const device_type MINI_CHIEF = device_creator; +DEFINE_DEVICE_TYPE(C1570, c1570_device, "c1570", "C1570") +DEFINE_DEVICE_TYPE(C1571, c1571_device, "c1571", "C1571") +DEFINE_DEVICE_TYPE(C1571CR, c1571cr_device, "c1571cr", "C1571CR") +DEFINE_DEVICE_TYPE(MINI_CHIEF, mini_chief_device, "minichif", "ICT Mini Chief") //------------------------------------------------- @@ -64,7 +64,7 @@ ROM_END // rom_region - device-specific ROM region //------------------------------------------------- -const tiny_rom_entry *c1570_t::device_rom_region() const +const tiny_rom_entry *c1570_device::device_rom_region() const { return ROM_NAME( c1570 ); } @@ -90,7 +90,7 @@ ROM_END // rom_region - device-specific ROM region //------------------------------------------------- -const tiny_rom_entry *c1571_t::device_rom_region() const +const tiny_rom_entry *c1571_device::device_rom_region() const { return ROM_NAME( c1571 ); } @@ -114,7 +114,7 @@ ROM_END // rom_region - device-specific ROM region //------------------------------------------------- -const tiny_rom_entry *c1571cr_t::device_rom_region() const +const tiny_rom_entry *c1571cr_device::device_rom_region() const { return ROM_NAME( c1571cr ); } @@ -134,7 +134,7 @@ ROM_END // rom_region - device-specific ROM region //------------------------------------------------- -const tiny_rom_entry *mini_chief_t::device_rom_region() const +const tiny_rom_entry *mini_chief_device::device_rom_region() const { return ROM_NAME( minichief ); } @@ -144,11 +144,11 @@ const tiny_rom_entry *mini_chief_t::device_rom_region() const // ADDRESS_MAP( c1571_mem ) //------------------------------------------------- -static ADDRESS_MAP_START( c1571_mem, AS_PROGRAM, 8, c1571_t ) +static ADDRESS_MAP_START( c1571_mem, AS_PROGRAM, 8, c1571_device ) AM_RANGE(0x0000, 0x07ff) AM_RAM AM_RANGE(0x1800, 0x180f) AM_MIRROR(0x03f0) AM_DEVREADWRITE(M6522_0_TAG, via6522_device, read, write) AM_RANGE(0x1c00, 0x1c0f) AM_MIRROR(0x03f0) AM_READWRITE(via1_r, via1_w) - AM_RANGE(0x2000, 0x2003) AM_MIRROR(0x1ffc) AM_DEVREADWRITE(WD1770_TAG, wd1770_t, read, write) + AM_RANGE(0x2000, 0x2003) AM_MIRROR(0x1ffc) AM_DEVREADWRITE(WD1770_TAG, wd1770_device, read, write) AM_RANGE(0x4000, 0x400f) AM_MIRROR(0x3ff0) AM_DEVREADWRITE(M6526_TAG, mos6526_device, read, write) AM_RANGE(0x8000, 0xffff) AM_ROM AM_REGION(M6502_TAG, 0) ADDRESS_MAP_END @@ -158,11 +158,11 @@ ADDRESS_MAP_END // ADDRESS_MAP( mini_chief_mem ) //------------------------------------------------- -static ADDRESS_MAP_START( mini_chief_mem, AS_PROGRAM, 8, mini_chief_t ) +static ADDRESS_MAP_START( mini_chief_mem, AS_PROGRAM, 8, mini_chief_device ) AM_RANGE(0x0000, 0x07ff) AM_RAM AM_RANGE(0x1800, 0x180f) AM_MIRROR(0x03f0) AM_DEVREADWRITE(M6522_0_TAG, via6522_device, read, write) AM_RANGE(0x1c00, 0x1c0f) AM_MIRROR(0x03f0) AM_READWRITE(via1_r, via1_w) - AM_RANGE(0x2000, 0x2003) AM_MIRROR(0x1ffc) AM_DEVREADWRITE(WD1770_TAG, wd1770_t, read, write) + AM_RANGE(0x2000, 0x2003) AM_MIRROR(0x1ffc) AM_DEVREADWRITE(WD1770_TAG, wd1770_device, read, write) AM_RANGE(0x4000, 0x400f) AM_MIRROR(0xff0) AM_DEVREADWRITE(M6526_TAG, mos6526_device, read, write) AM_RANGE(0x5000, 0x5fff) AM_MIRROR(0x2000) AM_RAM AM_RANGE(0x6000, 0x6fff) AM_RAM @@ -170,14 +170,14 @@ static ADDRESS_MAP_START( mini_chief_mem, AS_PROGRAM, 8, mini_chief_t ) ADDRESS_MAP_END -WRITE_LINE_MEMBER( c1571_t::via0_irq_w ) +WRITE_LINE_MEMBER( c1571_device::via0_irq_w ) { m_via0_irq = state; m_maincpu->set_input_line(INPUT_LINE_IRQ0, (m_via0_irq || m_via1_irq || m_cia_irq) ? ASSERT_LINE : CLEAR_LINE); } -READ8_MEMBER( c1571_t::via0_pa_r ) +READ8_MEMBER( c1571_device::via0_pa_r ) { /* @@ -205,7 +205,7 @@ READ8_MEMBER( c1571_t::via0_pa_r ) return data; } -WRITE8_MEMBER( c1571_t::via0_pa_w ) +WRITE8_MEMBER( c1571_device::via0_pa_w ) { /* @@ -250,7 +250,7 @@ WRITE8_MEMBER( c1571_t::via0_pa_w ) update_iec(); } -WRITE8_MEMBER( c1571cr_t::via0_pa_w ) +WRITE8_MEMBER( c1571cr_device::via0_pa_w ) { /* @@ -287,7 +287,7 @@ WRITE8_MEMBER( c1571cr_t::via0_pa_w ) } } -READ8_MEMBER( c1571_t::via0_pb_r ) +READ8_MEMBER( c1571_device::via0_pb_r ) { /* @@ -321,7 +321,7 @@ READ8_MEMBER( c1571_t::via0_pb_r ) return data; } -WRITE8_MEMBER( c1571_t::via0_pb_w ) +WRITE8_MEMBER( c1571_device::via0_pb_w ) { /* @@ -350,7 +350,7 @@ WRITE8_MEMBER( c1571_t::via0_pb_w ) update_iec(); } -WRITE8_MEMBER( c1571cr_t::via0_pb_w ) +WRITE8_MEMBER( c1571cr_device::via0_pb_w ) { /* @@ -380,7 +380,7 @@ WRITE8_MEMBER( c1571cr_t::via0_pb_w ) } -READ8_MEMBER( c1571_t::via1_r ) +READ8_MEMBER( c1571_device::via1_r ) { uint8_t data = m_via1->read(space, offset); @@ -390,7 +390,7 @@ READ8_MEMBER( c1571_t::via1_r ) return data; } -WRITE8_MEMBER( c1571_t::via1_w ) +WRITE8_MEMBER( c1571_device::via1_w ) { m_via1->write(space, offset, data); @@ -398,14 +398,14 @@ WRITE8_MEMBER( c1571_t::via1_w ) m_ga->ted_w(1); } -WRITE_LINE_MEMBER( c1571_t::via1_irq_w ) +WRITE_LINE_MEMBER( c1571_device::via1_irq_w ) { m_via1_irq = state; m_maincpu->set_input_line(INPUT_LINE_IRQ0, (m_via0_irq || m_via1_irq || m_cia_irq) ? ASSERT_LINE : CLEAR_LINE); } -READ8_MEMBER( c1571_t::via1_pb_r ) +READ8_MEMBER( c1571_device::via1_pb_r ) { /* @@ -433,7 +433,7 @@ READ8_MEMBER( c1571_t::via1_pb_r ) return data; } -WRITE8_MEMBER( c1571_t::via1_pb_w ) +WRITE8_MEMBER( c1571_device::via1_pb_w ) { /* @@ -468,14 +468,14 @@ WRITE8_MEMBER( c1571_t::via1_pb_w ) // MOS6526_INTERFACE( cia_intf ) //------------------------------------------------- -WRITE_LINE_MEMBER( c1571_t::cia_irq_w ) +WRITE_LINE_MEMBER( c1571_device::cia_irq_w ) { m_cia_irq = state; m_maincpu->set_input_line(INPUT_LINE_IRQ0, (m_via0_irq || m_via1_irq || m_cia_irq) ? ASSERT_LINE : CLEAR_LINE); } -WRITE_LINE_MEMBER( c1571_t::cia_pc_w ) +WRITE_LINE_MEMBER( c1571_device::cia_pc_w ) { if (m_other != nullptr) { @@ -483,26 +483,26 @@ WRITE_LINE_MEMBER( c1571_t::cia_pc_w ) } } -WRITE_LINE_MEMBER( c1571_t::cia_cnt_w ) +WRITE_LINE_MEMBER( c1571_device::cia_cnt_w ) { m_cnt_out = state; update_iec(); } -WRITE_LINE_MEMBER( c1571_t::cia_sp_w ) +WRITE_LINE_MEMBER( c1571_device::cia_sp_w ) { m_sp_out = state; update_iec(); } -READ8_MEMBER( c1571_t::cia_pb_r ) +READ8_MEMBER( c1571_device::cia_pb_r ) { return m_parallel_data; } -WRITE8_MEMBER( c1571_t::cia_pb_w ) +WRITE8_MEMBER( c1571_device::cia_pb_w ) { if (m_other != nullptr) { @@ -515,19 +515,19 @@ WRITE8_MEMBER( c1571_t::cia_pb_w ) // MOS6526_INTERFACE( mini_chief_cia_intf ) //------------------------------------------------- -READ8_MEMBER( mini_chief_t::cia_pa_r ) +READ8_MEMBER( mini_chief_device::cia_pa_r ) { // TODO read from ISA bus @ 0x320 | A2 A1 A0 return 0; } -WRITE8_MEMBER( mini_chief_t::cia_pa_w ) +WRITE8_MEMBER( mini_chief_device::cia_pa_w ) { // TODO write to ISA bus @ 0x320 | A2 A1 A0 } -WRITE8_MEMBER( mini_chief_t::cia_pb_w ) +WRITE8_MEMBER( mini_chief_device::cia_pb_w ) { /* @@ -550,7 +550,7 @@ WRITE8_MEMBER( mini_chief_t::cia_pb_w ) // C64H156_INTERFACE( ga_intf ) //------------------------------------------------- -WRITE_LINE_MEMBER( c1571_t::byte_w ) +WRITE_LINE_MEMBER( c1571_device::byte_w ) { m_via1->write_ca1(state); @@ -571,7 +571,7 @@ SLOT_INTERFACE_END // floppy_interface c1571_floppy_interface //------------------------------------------------- -void c1571_t::wpt_callback(floppy_image_device *floppy, int state) +void c1571_device::wpt_callback(floppy_image_device *floppy, int state) { m_via0->write_ca2(!state); } @@ -581,7 +581,7 @@ void c1571_t::wpt_callback(floppy_image_device *floppy, int state) // FLOPPY_FORMATS( floppy_formats ) //------------------------------------------------- -FLOPPY_FORMATS_MEMBER( c1571_t::floppy_formats ) +FLOPPY_FORMATS_MEMBER( c1571_device::floppy_formats ) FLOPPY_D64_FORMAT, FLOPPY_G64_FORMAT, FLOPPY_D71_FORMAT @@ -606,33 +606,33 @@ static MACHINE_CONFIG_FRAGMENT( c1570 ) MCFG_QUANTUM_PERFECT_CPU(M6502_TAG) MCFG_DEVICE_ADD(M6522_0_TAG, VIA6522, XTAL_16MHz/16) - MCFG_VIA6522_READPA_HANDLER(READ8(c1571_t, via0_pa_r)) - MCFG_VIA6522_READPB_HANDLER(READ8(c1571_t, via0_pb_r)) - MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(c1571_t, via0_pa_w)) - MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(c1571_t, via0_pb_w)) - MCFG_VIA6522_IRQ_HANDLER(WRITELINE(c1571_t, via0_irq_w)) + MCFG_VIA6522_READPA_HANDLER(READ8(c1571_device, via0_pa_r)) + MCFG_VIA6522_READPB_HANDLER(READ8(c1571_device, via0_pb_r)) + MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(c1571_device, via0_pa_w)) + MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(c1571_device, via0_pb_w)) + MCFG_VIA6522_IRQ_HANDLER(WRITELINE(c1571_device, via0_irq_w)) MCFG_DEVICE_ADD(M6522_1_TAG, VIA6522, XTAL_16MHz/16) MCFG_VIA6522_READPA_HANDLER(DEVREAD8(C64H156_TAG, c64h156_device, yb_r)) - MCFG_VIA6522_READPB_HANDLER(READ8(c1571_t, via1_pb_r)) + MCFG_VIA6522_READPB_HANDLER(READ8(c1571_device, via1_pb_r)) MCFG_VIA6522_WRITEPA_HANDLER(DEVWRITE8(C64H156_TAG, c64h156_device, yb_w)) - MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(c1571_t, via1_pb_w)) + MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(c1571_device, via1_pb_w)) MCFG_VIA6522_CA2_HANDLER(DEVWRITELINE(C64H156_TAG, c64h156_device, soe_w)) MCFG_VIA6522_CB2_HANDLER(DEVWRITELINE(C64H156_TAG, c64h156_device, oe_w)) - MCFG_VIA6522_IRQ_HANDLER(WRITELINE(c1571_t, via1_irq_w)) + MCFG_VIA6522_IRQ_HANDLER(WRITELINE(c1571_device, via1_irq_w)) MCFG_DEVICE_ADD(M6526_TAG, MOS6526, XTAL_16MHz/16) - MCFG_MOS6526_IRQ_CALLBACK(WRITELINE(c1571_t, cia_irq_w)) - MCFG_MOS6526_CNT_CALLBACK(WRITELINE(c1571_t, cia_cnt_w)) - MCFG_MOS6526_SP_CALLBACK(WRITELINE(c1571_t, cia_sp_w)) - MCFG_MOS6526_PB_INPUT_CALLBACK(READ8(c1571_t, cia_pb_r)) - MCFG_MOS6526_PB_OUTPUT_CALLBACK(WRITE8(c1571_t, cia_pb_w)) - MCFG_MOS6526_PC_CALLBACK(WRITELINE(c1571_t, cia_pc_w)) + MCFG_MOS6526_IRQ_CALLBACK(WRITELINE(c1571_device, cia_irq_w)) + MCFG_MOS6526_CNT_CALLBACK(WRITELINE(c1571_device, cia_cnt_w)) + MCFG_MOS6526_SP_CALLBACK(WRITELINE(c1571_device, cia_sp_w)) + MCFG_MOS6526_PB_INPUT_CALLBACK(READ8(c1571_device, cia_pb_r)) + MCFG_MOS6526_PB_OUTPUT_CALLBACK(WRITE8(c1571_device, cia_pb_w)) + MCFG_MOS6526_PC_CALLBACK(WRITELINE(c1571_device, cia_pc_w)) MCFG_WD1770_ADD(WD1770_TAG, XTAL_16MHz/2) MCFG_DEVICE_ADD(C64H156_TAG, C64H156, XTAL_16MHz) - MCFG_64H156_BYTE_CALLBACK(WRITELINE(c1571_t, byte_w)) - MCFG_FLOPPY_DRIVE_ADD(C64H156_TAG":0", c1571_floppies, "525qd", c1571_t::floppy_formats) + MCFG_64H156_BYTE_CALLBACK(WRITELINE(c1571_device, byte_w)) + MCFG_FLOPPY_DRIVE_ADD(C64H156_TAG":0", c1571_floppies, "525qd", c1571_device::floppy_formats) MACHINE_CONFIG_END @@ -641,7 +641,7 @@ MACHINE_CONFIG_END // machine configurations //------------------------------------------------- -machine_config_constructor c1570_t::device_mconfig_additions() const +machine_config_constructor c1570_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( c1570 ); } @@ -657,33 +657,33 @@ static MACHINE_CONFIG_FRAGMENT( c1571 ) MCFG_QUANTUM_PERFECT_CPU(M6502_TAG) MCFG_DEVICE_ADD(M6522_0_TAG, VIA6522, XTAL_16MHz/16) - MCFG_VIA6522_READPA_HANDLER(READ8(c1571_t, via0_pa_r)) - MCFG_VIA6522_READPB_HANDLER(READ8(c1571_t, via0_pb_r)) - MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(c1571_t, via0_pa_w)) - MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(c1571_t, via0_pb_w)) - MCFG_VIA6522_IRQ_HANDLER(WRITELINE(c1571_t, via0_irq_w)) + MCFG_VIA6522_READPA_HANDLER(READ8(c1571_device, via0_pa_r)) + MCFG_VIA6522_READPB_HANDLER(READ8(c1571_device, via0_pb_r)) + MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(c1571_device, via0_pa_w)) + MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(c1571_device, via0_pb_w)) + MCFG_VIA6522_IRQ_HANDLER(WRITELINE(c1571_device, via0_irq_w)) MCFG_DEVICE_ADD(M6522_1_TAG, VIA6522, XTAL_16MHz/16) MCFG_VIA6522_READPA_HANDLER(DEVREAD8(C64H156_TAG, c64h156_device, yb_r)) - MCFG_VIA6522_READPB_HANDLER(READ8(c1571_t, via1_pb_r)) + MCFG_VIA6522_READPB_HANDLER(READ8(c1571_device, via1_pb_r)) MCFG_VIA6522_WRITEPA_HANDLER(DEVWRITE8(C64H156_TAG, c64h156_device, yb_w)) - MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(c1571_t, via1_pb_w)) + MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(c1571_device, via1_pb_w)) MCFG_VIA6522_CA2_HANDLER(DEVWRITELINE(C64H156_TAG, c64h156_device, soe_w)) MCFG_VIA6522_CB2_HANDLER(DEVWRITELINE(C64H156_TAG, c64h156_device, oe_w)) - MCFG_VIA6522_IRQ_HANDLER(WRITELINE(c1571_t, via1_irq_w)) + MCFG_VIA6522_IRQ_HANDLER(WRITELINE(c1571_device, via1_irq_w)) MCFG_DEVICE_ADD(M6526_TAG, MOS6526, XTAL_16MHz/16) - MCFG_MOS6526_IRQ_CALLBACK(WRITELINE(c1571_t, cia_irq_w)) - MCFG_MOS6526_CNT_CALLBACK(WRITELINE(c1571_t, cia_cnt_w)) - MCFG_MOS6526_SP_CALLBACK(WRITELINE(c1571_t, cia_sp_w)) - MCFG_MOS6526_PB_INPUT_CALLBACK(READ8(c1571_t, cia_pb_r)) - MCFG_MOS6526_PB_OUTPUT_CALLBACK(WRITE8(c1571_t, cia_pb_w)) - MCFG_MOS6526_PC_CALLBACK(WRITELINE(c1571_t, cia_pc_w)) + MCFG_MOS6526_IRQ_CALLBACK(WRITELINE(c1571_device, cia_irq_w)) + MCFG_MOS6526_CNT_CALLBACK(WRITELINE(c1571_device, cia_cnt_w)) + MCFG_MOS6526_SP_CALLBACK(WRITELINE(c1571_device, cia_sp_w)) + MCFG_MOS6526_PB_INPUT_CALLBACK(READ8(c1571_device, cia_pb_r)) + MCFG_MOS6526_PB_OUTPUT_CALLBACK(WRITE8(c1571_device, cia_pb_w)) + MCFG_MOS6526_PC_CALLBACK(WRITELINE(c1571_device, cia_pc_w)) MCFG_WD1770_ADD(WD1770_TAG, XTAL_16MHz/2) MCFG_DEVICE_ADD(C64H156_TAG, C64H156, XTAL_16MHz) - MCFG_64H156_BYTE_CALLBACK(WRITELINE(c1571_t, byte_w)) - MCFG_FLOPPY_DRIVE_ADD(C64H156_TAG":0", c1571_floppies, "525qd", c1571_t::floppy_formats) + MCFG_64H156_BYTE_CALLBACK(WRITELINE(c1571_device, byte_w)) + MCFG_FLOPPY_DRIVE_ADD(C64H156_TAG":0", c1571_floppies, "525qd", c1571_device::floppy_formats) MACHINE_CONFIG_END @@ -692,7 +692,7 @@ MACHINE_CONFIG_END // machine configurations //------------------------------------------------- -machine_config_constructor c1571_t::device_mconfig_additions() const +machine_config_constructor c1571_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( c1571 ); } @@ -708,27 +708,27 @@ static MACHINE_CONFIG_FRAGMENT( c1571cr ) MCFG_QUANTUM_PERFECT_CPU(M6502_TAG) MCFG_DEVICE_ADD(M6522_0_TAG, VIA6522, XTAL_16MHz/16) - MCFG_VIA6522_READPA_HANDLER(READ8(c1571_t, via0_pa_r)) - MCFG_VIA6522_READPB_HANDLER(READ8(c1571_t, via0_pb_r)) - MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(c1571cr_t, via0_pa_w)) - MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(c1571cr_t, via0_pb_w)) - MCFG_VIA6522_IRQ_HANDLER(WRITELINE(c1571_t, via0_irq_w)) + MCFG_VIA6522_READPA_HANDLER(READ8(c1571_device, via0_pa_r)) + MCFG_VIA6522_READPB_HANDLER(READ8(c1571_device, via0_pb_r)) + MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(c1571cr_device, via0_pa_w)) + MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(c1571cr_device, via0_pb_w)) + MCFG_VIA6522_IRQ_HANDLER(WRITELINE(c1571_device, via0_irq_w)) MCFG_DEVICE_ADD(M6522_1_TAG, VIA6522, XTAL_16MHz/16) MCFG_VIA6522_READPA_HANDLER(DEVREAD8(C64H156_TAG, c64h156_device, yb_r)) - MCFG_VIA6522_READPB_HANDLER(READ8(c1571_t, via1_pb_r)) + MCFG_VIA6522_READPB_HANDLER(READ8(c1571_device, via1_pb_r)) MCFG_VIA6522_WRITEPA_HANDLER(DEVWRITE8(C64H156_TAG, c64h156_device, yb_w)) - MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(c1571_t, via1_pb_w)) + MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(c1571_device, via1_pb_w)) MCFG_VIA6522_CA2_HANDLER(DEVWRITELINE(C64H156_TAG, c64h156_device, soe_w)) MCFG_VIA6522_CB2_HANDLER(DEVWRITELINE(C64H156_TAG, c64h156_device, oe_w)) - MCFG_VIA6522_IRQ_HANDLER(WRITELINE(c1571_t, via1_irq_w)) + MCFG_VIA6522_IRQ_HANDLER(WRITELINE(c1571_device, via1_irq_w)) //MCFG_MOS5710_ADD(M5710_TAG, XTAL_16MHz/16, 0) MCFG_WD1770_ADD(WD1770_TAG, XTAL_16MHz/2) MCFG_DEVICE_ADD(C64H156_TAG, C64H156, XTAL_16MHz) - MCFG_64H156_BYTE_CALLBACK(WRITELINE(c1571_t, byte_w)) - MCFG_FLOPPY_DRIVE_ADD(C64H156_TAG":0", c1571_floppies, "525qd", c1571_t::floppy_formats) + MCFG_64H156_BYTE_CALLBACK(WRITELINE(c1571_device, byte_w)) + MCFG_FLOPPY_DRIVE_ADD(C64H156_TAG":0", c1571_floppies, "525qd", c1571_device::floppy_formats) MACHINE_CONFIG_END @@ -737,7 +737,7 @@ MACHINE_CONFIG_END // machine configurations //------------------------------------------------- -machine_config_constructor c1571cr_t::device_mconfig_additions() const +machine_config_constructor c1571cr_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( c1571cr ); } @@ -753,33 +753,33 @@ static MACHINE_CONFIG_FRAGMENT( mini_chief ) MCFG_QUANTUM_PERFECT_CPU(M6502_TAG) MCFG_DEVICE_ADD(M6522_0_TAG, VIA6522, XTAL_16MHz/16) - MCFG_VIA6522_READPA_HANDLER(READ8(c1571_t, via0_pa_r)) - MCFG_VIA6522_READPB_HANDLER(READ8(c1571_t, via0_pb_r)) - MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(c1571_t, via0_pa_w)) - MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(c1571_t, via0_pb_w)) - MCFG_VIA6522_IRQ_HANDLER(WRITELINE(c1571_t, via0_irq_w)) + MCFG_VIA6522_READPA_HANDLER(READ8(c1571_device, via0_pa_r)) + MCFG_VIA6522_READPB_HANDLER(READ8(c1571_device, via0_pb_r)) + MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(c1571_device, via0_pa_w)) + MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(c1571_device, via0_pb_w)) + MCFG_VIA6522_IRQ_HANDLER(WRITELINE(c1571_device, via0_irq_w)) MCFG_DEVICE_ADD(M6522_1_TAG, VIA6522, XTAL_16MHz/16) MCFG_VIA6522_READPA_HANDLER(DEVREAD8(C64H156_TAG, c64h156_device, yb_r)) - MCFG_VIA6522_READPB_HANDLER(READ8(c1571_t, via1_pb_r)) + MCFG_VIA6522_READPB_HANDLER(READ8(c1571_device, via1_pb_r)) MCFG_VIA6522_WRITEPA_HANDLER(DEVWRITE8(C64H156_TAG, c64h156_device, yb_w)) - MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(c1571_t, via1_pb_w)) + MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(c1571_device, via1_pb_w)) MCFG_VIA6522_CA2_HANDLER(DEVWRITELINE(C64H156_TAG, c64h156_device, soe_w)) MCFG_VIA6522_CB2_HANDLER(DEVWRITELINE(C64H156_TAG, c64h156_device, oe_w)) - MCFG_VIA6522_IRQ_HANDLER(WRITELINE(c1571_t, via1_irq_w)) + MCFG_VIA6522_IRQ_HANDLER(WRITELINE(c1571_device, via1_irq_w)) MCFG_DEVICE_ADD(M6526_TAG, MOS6526, XTAL_16MHz/16) - MCFG_MOS6526_IRQ_CALLBACK(WRITELINE(c1571_t, cia_irq_w)) - MCFG_MOS6526_CNT_CALLBACK(WRITELINE(c1571_t, cia_cnt_w)) - MCFG_MOS6526_SP_CALLBACK(WRITELINE(c1571_t, cia_sp_w)) - MCFG_MOS6526_PB_INPUT_CALLBACK(READ8(c1571_t, cia_pb_r)) - MCFG_MOS6526_PB_OUTPUT_CALLBACK(WRITE8(c1571_t, cia_pb_w)) - MCFG_MOS6526_PC_CALLBACK(WRITELINE(c1571_t, cia_pc_w)) + MCFG_MOS6526_IRQ_CALLBACK(WRITELINE(c1571_device, cia_irq_w)) + MCFG_MOS6526_CNT_CALLBACK(WRITELINE(c1571_device, cia_cnt_w)) + MCFG_MOS6526_SP_CALLBACK(WRITELINE(c1571_device, cia_sp_w)) + MCFG_MOS6526_PB_INPUT_CALLBACK(READ8(c1571_device, cia_pb_r)) + MCFG_MOS6526_PB_OUTPUT_CALLBACK(WRITE8(c1571_device, cia_pb_w)) + MCFG_MOS6526_PC_CALLBACK(WRITELINE(c1571_device, cia_pc_w)) MCFG_WD1770_ADD(WD1770_TAG, XTAL_16MHz/2) MCFG_DEVICE_ADD(C64H156_TAG, C64H156, XTAL_16MHz) - MCFG_64H156_BYTE_CALLBACK(WRITELINE(c1571_t, byte_w)) - MCFG_FLOPPY_DRIVE_ADD(C64H156_TAG":0", c1571_floppies, "525qd", c1571_t::floppy_formats) + MCFG_64H156_BYTE_CALLBACK(WRITELINE(c1571_device, byte_w)) + MCFG_FLOPPY_DRIVE_ADD(C64H156_TAG":0", c1571_floppies, "525qd", c1571_device::floppy_formats) MCFG_DEVICE_ADD(ISA_BUS_TAG, ISA8, 0) MCFG_ISA8_CPU(M6502_TAG) @@ -792,7 +792,7 @@ MACHINE_CONFIG_END // machine configurations //------------------------------------------------- -machine_config_constructor mini_chief_t::device_mconfig_additions() const +machine_config_constructor mini_chief_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( mini_chief ); } @@ -816,7 +816,7 @@ INPUT_PORTS_END // input_ports - device-specific input ports //------------------------------------------------- -ioport_constructor c1571_t::device_input_ports() const +ioport_constructor c1571_device::device_input_ports() const { return INPUT_PORTS_NAME( c1571 ); } @@ -828,11 +828,11 @@ ioport_constructor c1571_t::device_input_ports() const //************************************************************************** //------------------------------------------------- -// c1571_t - constructor +// c1571_device - constructor //------------------------------------------------- -c1571_t::c1571_t(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), +c1571_device::c1571_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock), device_cbm_iec_interface(mconfig, *this), device_c64_floppy_parallel_interface(mconfig, *this), m_maincpu(*this, M6502_TAG), @@ -854,56 +854,38 @@ c1571_t::c1571_t(const machine_config &mconfig, device_type type, const char *na { } -c1571_t::c1571_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, C1571, "C1571", tag, owner, clock, "c1571", __FILE__), - device_cbm_iec_interface(mconfig, *this), - device_c64_floppy_parallel_interface(mconfig, *this), - m_maincpu(*this, M6502_TAG), - m_via0(*this, M6522_0_TAG), - m_via1(*this, M6522_1_TAG), - m_cia(*this, M6526_TAG), - m_fdc(*this, WD1770_TAG), - m_ga(*this, C64H156_TAG), - m_floppy(*this, C64H156_TAG":0:525qd"), - m_address(*this, "ADDRESS"), - m_1_2mhz(0), - m_data_out(1), - m_ser_dir(0), - m_sp_out(1), - m_cnt_out(1), - m_via0_irq(CLEAR_LINE), - m_via1_irq(CLEAR_LINE), - m_cia_irq(CLEAR_LINE) +c1571_device::c1571_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : c1571_device(mconfig, C1571, tag, owner, clock) { } //------------------------------------------------- -// c1570_t - constructor +// c1570_device - constructor //------------------------------------------------- -c1570_t::c1570_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : c1571_t(mconfig, C1570, "C1570", tag, owner, clock, "c1570", __FILE__) +c1570_device::c1570_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : c1571_device(mconfig, C1570, tag, owner, clock) { } //------------------------------------------------- -// c1571cr_t - constructor +// c1571cr_device - constructor //------------------------------------------------- -c1571cr_t::c1571cr_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : c1571_t(mconfig, C1571CR, "C1571CR", tag, owner, clock, "c1571cr", __FILE__) +c1571cr_device::c1571cr_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : c1571_device(mconfig, C1571CR, tag, owner, clock) { } //------------------------------------------------- -// mini_chief_t - constructor +// mini_chief_device - constructor //------------------------------------------------- -mini_chief_t::mini_chief_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : c1571_t(mconfig, MINI_CHIEF, "ICT Mini Chief", tag, owner, clock, "minichif", __FILE__) +mini_chief_device::mini_chief_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : c1571_device(mconfig, MINI_CHIEF, tag, owner, clock) { } @@ -912,12 +894,12 @@ mini_chief_t::mini_chief_t(const machine_config &mconfig, const char *tag, devic // device_start - device-specific startup //------------------------------------------------- -void c1571_t::device_start() +void c1571_device::device_start() { // install image callbacks m_ga->set_floppy(m_floppy); //m_fdc->set_floppy(m_floppy); - m_floppy->setup_wpt_cb(floppy_image_device::wpt_cb(&c1571_t::wpt_callback, this)); + m_floppy->setup_wpt_cb(floppy_image_device::wpt_cb(&c1571_device::wpt_callback, this)); // register for state saving save_item(NAME(m_1_2mhz)); @@ -935,7 +917,7 @@ void c1571_t::device_start() // device_reset - device-specific reset //------------------------------------------------- -void c1571_t::device_reset() +void c1571_device::device_reset() { m_maincpu->reset(); @@ -957,7 +939,7 @@ void c1571_t::device_reset() // cbm_iec_srq - //------------------------------------------------- -void c1571_t::cbm_iec_srq(int state) +void c1571_device::cbm_iec_srq(int state) { update_iec(); } @@ -967,7 +949,7 @@ void c1571_t::cbm_iec_srq(int state) // cbm_iec_atn - //------------------------------------------------- -void c1571_t::cbm_iec_atn(int state) +void c1571_device::cbm_iec_atn(int state) { update_iec(); } @@ -977,7 +959,7 @@ void c1571_t::cbm_iec_atn(int state) // cbm_iec_data - //------------------------------------------------- -void c1571_t::cbm_iec_data(int state) +void c1571_device::cbm_iec_data(int state) { update_iec(); } @@ -987,7 +969,7 @@ void c1571_t::cbm_iec_data(int state) // cbm_iec_reset - //------------------------------------------------- -void c1571_t::cbm_iec_reset(int state) +void c1571_device::cbm_iec_reset(int state) { if (!state) { @@ -1000,7 +982,7 @@ void c1571_t::cbm_iec_reset(int state) // parallel_data_w - //------------------------------------------------- -void c1571_t::parallel_data_w(uint8_t data) +void c1571_device::parallel_data_w(uint8_t data) { m_parallel_data = data; } @@ -1010,7 +992,7 @@ void c1571_t::parallel_data_w(uint8_t data) // parallel_strobe_w - //------------------------------------------------- -void c1571_t::parallel_strobe_w(int state) +void c1571_device::parallel_strobe_w(int state) { m_cia->flag_w(state); } @@ -1020,7 +1002,7 @@ void c1571_t::parallel_strobe_w(int state) // update_iec - //------------------------------------------------- -void c1571_t::update_iec() +void c1571_device::update_iec() { m_cia->cnt_w(m_ser_dir || m_bus->srq_r()); m_cia->sp_w(m_ser_dir || m_bus->data_r()); diff --git a/src/devices/bus/cbmiec/c1571.h b/src/devices/bus/cbmiec/c1571.h index 027ab98d242..3bc5b287b98 100644 --- a/src/devices/bus/cbmiec/c1571.h +++ b/src/devices/bus/cbmiec/c1571.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_CBMIEC_C1571_H +#define MAME_BUS_CBMIEC_C1571_H -#ifndef __C1571__ -#define __C1571__ +#pragma once #include "cbmiec.h" #include "bus/c64/bn1541.h" @@ -35,16 +35,13 @@ // TYPE DEFINITIONS //************************************************************************** -// ======================> c1571_t +// ======================> c1571_device -class c1571_t : public device_t, - public device_cbm_iec_interface, - public device_c64_floppy_parallel_interface +class c1571_device : public device_t, public device_cbm_iec_interface, public device_c64_floppy_parallel_interface { public: // construction/destruction - c1571_t(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - c1571_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + c1571_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual const tiny_rom_entry *device_rom_region() const override; @@ -77,6 +74,8 @@ public: void wpt_callback(floppy_image_device *floppy, int state); protected: + c1571_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -103,7 +102,7 @@ protected: required_device m_via0; required_device m_via1; required_device m_cia; - required_device m_fdc; + required_device m_fdc; required_device m_ga; required_device m_floppy; required_ioport m_address; @@ -124,13 +123,13 @@ protected: }; -// ======================> c1570_t +// ======================> c1570_device -class c1570_t : public c1571_t +class c1570_device : public c1571_device { public: // construction/destruction - c1570_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + c1570_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual const tiny_rom_entry *device_rom_region() const override; @@ -138,13 +137,13 @@ public: }; -// ======================> c1571cr_t +// ======================> c1571cr_device -class c1571cr_t : public c1571_t +class c1571cr_device : public c1571_device { public: // construction/destruction - c1571cr_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + c1571cr_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual const tiny_rom_entry *device_rom_region() const override; @@ -155,13 +154,13 @@ public: }; -// ======================> mini_chief_t +// ======================> mini_chief_device -class mini_chief_t : public c1571_t +class mini_chief_device : public c1571_device { public: // construction/destruction - mini_chief_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + mini_chief_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual const tiny_rom_entry *device_rom_region() const override; @@ -174,11 +173,9 @@ public: // device type definition -extern const device_type C1570; -extern const device_type C1571; -extern const device_type C1571CR; -extern const device_type MINI_CHIEF; - - +DECLARE_DEVICE_TYPE(C1570, c1570_device) +DECLARE_DEVICE_TYPE(C1571, c1571_device) +DECLARE_DEVICE_TYPE(C1571CR, c1571cr_device) +DECLARE_DEVICE_TYPE(MINI_CHIEF, mini_chief_device) -#endif +#endif // MAME_BUS_CBMIEC_C1571_H diff --git a/src/devices/bus/cbmiec/c1581.cpp b/src/devices/bus/cbmiec/c1581.cpp index eb48f99141d..28e6a504c47 100644 --- a/src/devices/bus/cbmiec/c1581.cpp +++ b/src/devices/bus/cbmiec/c1581.cpp @@ -33,8 +33,8 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type C1563 = device_creator; -const device_type C1581 = device_creator; +DEFINE_DEVICE_TYPE(C1563, c1563_device, "c1563", "C1563") +DEFINE_DEVICE_TYPE(C1581, c1581_device, "c1581", "C1581") //------------------------------------------------- @@ -59,7 +59,7 @@ ROM_END // rom_region - device-specific ROM region //------------------------------------------------- -const tiny_rom_entry *c1581_t::device_rom_region() const +const tiny_rom_entry *c1581_device::device_rom_region() const { return ROM_NAME( c1581 ); } @@ -79,7 +79,7 @@ ROM_END // rom_region - device-specific ROM region //------------------------------------------------- -const tiny_rom_entry *c1563_t::device_rom_region() const +const tiny_rom_entry *c1563_device::device_rom_region() const { return ROM_NAME( c1563 ); } @@ -89,10 +89,10 @@ const tiny_rom_entry *c1563_t::device_rom_region() const // ADDRESS_MAP( c1581_mem ) //------------------------------------------------- -static ADDRESS_MAP_START( c1581_mem, AS_PROGRAM, 8, c1581_t ) +static ADDRESS_MAP_START( c1581_mem, AS_PROGRAM, 8, c1581_device ) AM_RANGE(0x0000, 0x1fff) AM_MIRROR(0x2000) AM_RAM AM_RANGE(0x4000, 0x400f) AM_MIRROR(0x1ff0) AM_DEVREADWRITE(M8520_TAG, mos8520_device, read, write) - AM_RANGE(0x6000, 0x6003) AM_MIRROR(0x1ffc) AM_DEVREADWRITE(WD1772_TAG, wd1772_t, read, write) + AM_RANGE(0x6000, 0x6003) AM_MIRROR(0x1ffc) AM_DEVREADWRITE(WD1772_TAG, wd1772_device, read, write) AM_RANGE(0x8000, 0xffff) AM_ROM AM_REGION(M6502_TAG, 0) ADDRESS_MAP_END @@ -101,21 +101,21 @@ ADDRESS_MAP_END // MOS8520_INTERFACE( cia_intf ) //------------------------------------------------- -WRITE_LINE_MEMBER( c1581_t::cnt_w ) +WRITE_LINE_MEMBER( c1581_device::cnt_w ) { m_cnt_out = state; update_iec(); } -WRITE_LINE_MEMBER( c1581_t::sp_w ) +WRITE_LINE_MEMBER( c1581_device::sp_w ) { m_sp_out = state; update_iec(); } -READ8_MEMBER( c1581_t::cia_pa_r ) +READ8_MEMBER( c1581_device::cia_pa_r ) { /* @@ -146,7 +146,7 @@ READ8_MEMBER( c1581_t::cia_pa_r ) return data; } -WRITE8_MEMBER( c1581_t::cia_pa_w ) +WRITE8_MEMBER( c1581_device::cia_pa_w ) { /* @@ -176,7 +176,7 @@ WRITE8_MEMBER( c1581_t::cia_pa_w ) machine().output().set_led_value(LED_ACT, BIT(data, 6)); } -READ8_MEMBER( c1581_t::cia_pb_r ) +READ8_MEMBER( c1581_device::cia_pb_r ) { /* @@ -210,7 +210,7 @@ READ8_MEMBER( c1581_t::cia_pb_r ) return data; } -WRITE8_MEMBER( c1581_t::cia_pb_w ) +WRITE8_MEMBER( c1581_device::cia_pb_w ) { /* @@ -253,10 +253,10 @@ SLOT_INTERFACE_END //------------------------------------------------- -// FLOPPY_FORMATS( c1581_t::floppy_formats ) +// FLOPPY_FORMATS( c1581_device::floppy_formats ) //------------------------------------------------- -FLOPPY_FORMATS_MEMBER( c1581_t::floppy_formats ) +FLOPPY_FORMATS_MEMBER( c1581_device::floppy_formats ) FLOPPY_D81_FORMAT FLOPPY_FORMATS_END @@ -271,15 +271,15 @@ static MACHINE_CONFIG_FRAGMENT( c1581 ) MCFG_DEVICE_ADD(M8520_TAG, MOS8520, XTAL_16MHz/8) MCFG_MOS6526_IRQ_CALLBACK(INPUTLINE(M6502_TAG, INPUT_LINE_IRQ0)) - MCFG_MOS6526_CNT_CALLBACK(WRITELINE(c1581_t, cnt_w)) - MCFG_MOS6526_SP_CALLBACK(WRITELINE(c1581_t, sp_w)) - MCFG_MOS6526_PA_INPUT_CALLBACK(READ8(c1581_t, cia_pa_r)) - MCFG_MOS6526_PA_OUTPUT_CALLBACK(WRITE8(c1581_t, cia_pa_w)) - MCFG_MOS6526_PB_INPUT_CALLBACK(READ8(c1581_t, cia_pb_r)) - MCFG_MOS6526_PB_OUTPUT_CALLBACK(WRITE8(c1581_t, cia_pb_w)) + MCFG_MOS6526_CNT_CALLBACK(WRITELINE(c1581_device, cnt_w)) + MCFG_MOS6526_SP_CALLBACK(WRITELINE(c1581_device, sp_w)) + MCFG_MOS6526_PA_INPUT_CALLBACK(READ8(c1581_device, cia_pa_r)) + MCFG_MOS6526_PA_OUTPUT_CALLBACK(WRITE8(c1581_device, cia_pa_w)) + MCFG_MOS6526_PB_INPUT_CALLBACK(READ8(c1581_device, cia_pb_r)) + MCFG_MOS6526_PB_OUTPUT_CALLBACK(WRITE8(c1581_device, cia_pb_w)) MCFG_WD1772_ADD(WD1772_TAG, XTAL_16MHz/2) - MCFG_FLOPPY_DRIVE_ADD(WD1772_TAG":0", c1581_floppies, "35dd", c1581_t::floppy_formats) + MCFG_FLOPPY_DRIVE_ADD(WD1772_TAG":0", c1581_floppies, "35dd", c1581_device::floppy_formats) MACHINE_CONFIG_END @@ -288,7 +288,7 @@ MACHINE_CONFIG_END // machine configurations //------------------------------------------------- -machine_config_constructor c1581_t::device_mconfig_additions() const +machine_config_constructor c1581_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( c1581 ); } @@ -312,7 +312,7 @@ INPUT_PORTS_END // input_ports - device-specific input ports //------------------------------------------------- -ioport_constructor c1581_t::device_input_ports() const +ioport_constructor c1581_device::device_input_ports() const { return INPUT_PORTS_NAME( c1581 ); } @@ -324,11 +324,11 @@ ioport_constructor c1581_t::device_input_ports() const //************************************************************************** //------------------------------------------------- -// c1581_t - constructor +// c1581_device - constructor //------------------------------------------------- -c1581_t::c1581_t(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), +c1581_device::c1581_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock), device_cbm_iec_interface(mconfig, *this), m_maincpu(*this, M6502_TAG), m_cia(*this, M8520_TAG), @@ -343,36 +343,25 @@ c1581_t::c1581_t(const machine_config &mconfig, device_type type, const char *na { } -c1581_t::c1581_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, C1581, "C1581", tag, owner, clock, "c1581", __FILE__), - device_cbm_iec_interface(mconfig, *this), - m_maincpu(*this, M6502_TAG), - m_cia(*this, M8520_TAG), - m_fdc(*this, WD1772_TAG), - m_floppy(*this, WD1772_TAG":0:35dd"), - m_address(*this, "ADDRESS"), - m_data_out(0), - m_atn_ack(0), - m_fast_ser_dir(0), - m_sp_out(1), - m_cnt_out(1) +c1581_device::c1581_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : c1581_device(mconfig, C1581, tag, owner, clock) { } //------------------------------------------------- -// c1563_t - constructor +// c1563_device - constructor //------------------------------------------------- -c1563_t::c1563_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : c1581_t(mconfig, C1563, "C1563", tag, owner, clock, "c1563", __FILE__) { } +c1563_device::c1563_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : c1581_device(mconfig, C1563, tag, owner, clock) { } //------------------------------------------------- // device_start - device-specific startup //------------------------------------------------- -void c1581_t::device_start() +void c1581_device::device_start() { // state saving save_item(NAME(m_data_out)); @@ -387,7 +376,7 @@ void c1581_t::device_start() // device_reset - device-specific reset //------------------------------------------------- -void c1581_t::device_reset() +void c1581_device::device_reset() { m_maincpu->reset(); @@ -408,7 +397,7 @@ void c1581_t::device_reset() // cbm_iec_srq - //------------------------------------------------- -void c1581_t::cbm_iec_srq(int state) +void c1581_device::cbm_iec_srq(int state) { update_iec(); } @@ -418,7 +407,7 @@ void c1581_t::cbm_iec_srq(int state) // cbm_iec_atn - //------------------------------------------------- -void c1581_t::cbm_iec_atn(int state) +void c1581_device::cbm_iec_atn(int state) { update_iec(); } @@ -428,7 +417,7 @@ void c1581_t::cbm_iec_atn(int state) // cbm_iec_data - //------------------------------------------------- -void c1581_t::cbm_iec_data(int state) +void c1581_device::cbm_iec_data(int state) { update_iec(); } @@ -438,7 +427,7 @@ void c1581_t::cbm_iec_data(int state) // cbm_iec_reset - //------------------------------------------------- -void c1581_t::cbm_iec_reset(int state) +void c1581_device::cbm_iec_reset(int state) { if (!state) { @@ -451,7 +440,7 @@ void c1581_t::cbm_iec_reset(int state) // update_iec - //------------------------------------------------- -void c1581_t::update_iec() +void c1581_device::update_iec() { m_cia->cnt_w(m_fast_ser_dir || m_bus->srq_r()); m_cia->sp_w(m_fast_ser_dir || m_bus->data_r()); diff --git a/src/devices/bus/cbmiec/c1581.h b/src/devices/bus/cbmiec/c1581.h index 5f4c9c47437..77d60400e8c 100644 --- a/src/devices/bus/cbmiec/c1581.h +++ b/src/devices/bus/cbmiec/c1581.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_CBMIEC_C1581_H +#define MAME_BUS_CBMIEC_C1581_H -#ifndef __C1581__ -#define __C1581__ +#pragma once #include "cbmiec.h" #include "cpu/m6502/m6502.h" @@ -31,15 +31,13 @@ // TYPE DEFINITIONS //************************************************************************** -// ======================> c1581_t +// ======================> c1581_device -class c1581_t : public device_t, - public device_cbm_iec_interface +class c1581_device : public device_t, public device_cbm_iec_interface { public: // construction/destruction - c1581_t(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - c1581_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + c1581_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual const tiny_rom_entry *device_rom_region() const override; @@ -57,6 +55,8 @@ public: DECLARE_FLOPPY_FORMATS( floppy_formats ); protected: + c1581_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -77,7 +77,7 @@ protected: required_device m_maincpu; required_device m_cia; - required_device m_fdc; + required_device m_fdc; required_device m_floppy; required_ioport m_address; @@ -89,13 +89,13 @@ protected: }; -// ======================> c1563_t +// ======================> c1563_device -class c1563_t : public c1581_t +class c1563_device : public c1581_device { public: // construction/destruction - c1563_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + c1563_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual const tiny_rom_entry *device_rom_region() const override; @@ -103,9 +103,8 @@ public: // device type definition -extern const device_type C1563; -extern const device_type C1581; - +DECLARE_DEVICE_TYPE(C1563, c1563_device) +DECLARE_DEVICE_TYPE(C1581, c1581_device) -#endif +#endif // MAME_BUS_CBMIEC_C1581_H diff --git a/src/devices/bus/cbmiec/c64_nl10.cpp b/src/devices/bus/cbmiec/c64_nl10.cpp index 0288aa2874f..d4ed3467016 100644 --- a/src/devices/bus/cbmiec/c64_nl10.cpp +++ b/src/devices/bus/cbmiec/c64_nl10.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type C64_NL10_INTERFACE = device_creator; +DEFINE_DEVICE_TYPE(C64_NL10_INTERFACE, c64_nl10_interface_device, "c64_nl10", "Star NL-10 C64 Interface Cartridge") //------------------------------------------------- @@ -48,8 +48,8 @@ const tiny_rom_entry *c64_nl10_interface_device::device_rom_region() const //------------------------------------------------- c64_nl10_interface_device::c64_nl10_interface_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, C64_NL10_INTERFACE, "Star NL-10 C64 Interface Cartridge", tag, owner, clock, "c64_nl10", __FILE__), - device_cbm_iec_interface(mconfig, *this) + : device_t(mconfig, C64_NL10_INTERFACE, tag, owner, clock) + , device_cbm_iec_interface(mconfig, *this) { } diff --git a/src/devices/bus/cbmiec/c64_nl10.h b/src/devices/bus/cbmiec/c64_nl10.h index 3d6d1fae895..68f9f135c91 100644 --- a/src/devices/bus/cbmiec/c64_nl10.h +++ b/src/devices/bus/cbmiec/c64_nl10.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_CBMIEC_C64_NL10_H +#define MAME_BUS_CBMIEC_C64_NL10_H -#ifndef __C64_NL10_INTERFACE__ -#define __C64_NL10_INTERFACE__ +#pragma once #include "cbmiec.h" @@ -21,8 +21,7 @@ // ======================> c64_nl10_interface_device -class c64_nl10_interface_device : public device_t, - public device_cbm_iec_interface +class c64_nl10_interface_device : public device_t, public device_cbm_iec_interface { public: // construction/destruction @@ -44,8 +43,7 @@ protected: // device type definition -extern const device_type C64_NL10_INTERFACE; - +DECLARE_DEVICE_TYPE(C64_NL10_INTERFACE, c64_nl10_interface_device) -#endif +#endif // MAME_BUS_CBMIEC_C64_NL10_H diff --git a/src/devices/bus/cbmiec/cbmiec.cpp b/src/devices/bus/cbmiec/cbmiec.cpp index 67276583fae..2ecf86420a3 100644 --- a/src/devices/bus/cbmiec/cbmiec.cpp +++ b/src/devices/bus/cbmiec/cbmiec.cpp @@ -209,8 +209,8 @@ static const char *const SIGNAL_NAME[] = { "SRQ", "ATN", "CLK", "DATA", "RESET" // DEVICE DEFINITIONS //************************************************************************** -const device_type CBM_IEC = device_creator; -const device_type CBM_IEC_SLOT = device_creator; +DEFINE_DEVICE_TYPE(CBM_IEC, cbm_iec_device, "cbm_iec", "CBM IEC bus") +DEFINE_DEVICE_TYPE(CBM_IEC_SLOT, cbm_iec_slot_device, "cbm_iec_slot", "CBM IEC slot") @@ -247,7 +247,7 @@ device_cbm_iec_interface::~device_cbm_iec_interface() //------------------------------------------------- cbm_iec_slot_device::cbm_iec_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, CBM_IEC_SLOT, "CBM IEC slot", tag, owner, clock, "cbm_iec_slot", __FILE__), + device_t(mconfig, CBM_IEC_SLOT, tag, owner, clock), device_slot_interface(mconfig, *this), m_address(0) { } @@ -284,7 +284,7 @@ void cbm_iec_slot_device::device_start() //------------------------------------------------- cbm_iec_device::cbm_iec_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, CBM_IEC, "CBM IEC bus", tag, owner, clock, "cbm_iec", __FILE__), + : device_t(mconfig, CBM_IEC, tag, owner, clock), m_write_srq(*this), m_write_atn(*this), m_write_clk(*this), diff --git a/src/devices/bus/cbmiec/cbmiec.h b/src/devices/bus/cbmiec/cbmiec.h index 20146a78590..6c7d60f471b 100644 --- a/src/devices/bus/cbmiec/cbmiec.h +++ b/src/devices/bus/cbmiec/cbmiec.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_CBMIEC_CBMIEC_H +#define MAME_BUS_CBMIEC_CBMIEC_H -#ifndef __CBM_IEC__ -#define __CBM_IEC__ +#pragma once @@ -77,11 +77,11 @@ public: // construction/destruction cbm_iec_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template devcb_base &set_srq_callback(_write wr) { return m_write_srq.set_callback(wr); } - template devcb_base &set_atn_callback(_write wr) { return m_write_atn.set_callback(wr); } - template devcb_base &set_clk_callback(_write wr) { return m_write_clk.set_callback(wr); } - template devcb_base &set_data_callback(_write wr) { return m_write_data.set_callback(wr); } - template devcb_base &set_reset_callback(_write wr) { return m_write_reset.set_callback(wr); } + template devcb_base &set_srq_callback(Object &&wr) { return m_write_srq.set_callback(std::forward(wr)); } + template devcb_base &set_atn_callback(Object &&wr) { return m_write_atn.set_callback(std::forward(wr)); } + template devcb_base &set_clk_callback(Object &&wr) { return m_write_clk.set_callback(std::forward(wr)); } + template devcb_base &set_data_callback(Object &&wr) { return m_write_data.set_callback(std::forward(wr)); } + template devcb_base &set_reset_callback(Object &&wr) { return m_write_reset.set_callback(std::forward(wr)); } void add_device(cbm_iec_slot_device *slot, device_t *target); @@ -179,18 +179,20 @@ class device_cbm_iec_interface : public device_slot_card_interface public: // construction/destruction - device_cbm_iec_interface(const machine_config &mconfig, device_t &device); virtual ~device_cbm_iec_interface(); device_cbm_iec_interface *next() const { return m_next; } device_cbm_iec_interface *m_next; // optional operation overrides - virtual void cbm_iec_srq(int state) { }; - virtual void cbm_iec_atn(int state) { }; - virtual void cbm_iec_clk(int state) { }; - virtual void cbm_iec_data(int state) { }; - virtual void cbm_iec_reset(int state) { }; + virtual void cbm_iec_srq(int state) { } + virtual void cbm_iec_atn(int state) { } + virtual void cbm_iec_clk(int state) { } + virtual void cbm_iec_data(int state) { } + virtual void cbm_iec_reset(int state) { } + +protected: + device_cbm_iec_interface(const machine_config &mconfig, device_t &device); cbm_iec_device *m_bus; cbm_iec_slot_device *m_slot; @@ -198,12 +200,11 @@ public: // device type definition -extern const device_type CBM_IEC; -extern const device_type CBM_IEC_SLOT; +DECLARE_DEVICE_TYPE(CBM_IEC, cbm_iec_device) +DECLARE_DEVICE_TYPE(CBM_IEC_SLOT, cbm_iec_slot_device) SLOT_INTERFACE_EXTERN( cbm_iec_devices ); - -#endif +#endif // MAME_BUS_CBMIEC_CBMIEC_H diff --git a/src/devices/bus/cbmiec/cmdhd.cpp b/src/devices/bus/cbmiec/cmdhd.cpp index b554c9bda71..247d627ce7a 100644 --- a/src/devices/bus/cbmiec/cmdhd.cpp +++ b/src/devices/bus/cbmiec/cmdhd.cpp @@ -29,7 +29,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type CMD_HD = device_creator; +DEFINE_DEVICE_TYPE(CMD_HD, cmd_hd_device, "cmdhd", "CMD HD") //------------------------------------------------- @@ -111,7 +111,7 @@ machine_config_constructor cmd_hd_device::device_mconfig_additions() const //------------------------------------------------- cmd_hd_device::cmd_hd_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, CMD_HD, "HD", tag, owner, clock, "cmdhd", __FILE__), + : device_t(mconfig, CMD_HD, tag, owner, clock), device_cbm_iec_interface(mconfig, *this), m_maincpu(*this, M6502_TAG), m_scsibus(*this, SCSIBUS_TAG) diff --git a/src/devices/bus/cbmiec/cmdhd.h b/src/devices/bus/cbmiec/cmdhd.h index fc38a89a2cb..e648f379281 100644 --- a/src/devices/bus/cbmiec/cmdhd.h +++ b/src/devices/bus/cbmiec/cmdhd.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_CBMIEC_CMDHD_H +#define MAME_BUS_CBMIEC_CMDHD_H -#ifndef __CMD_HD__ -#define __CMD_HD__ +#pragma once #include "cbmiec.h" #include "cpu/m6502/m6502.h" @@ -34,8 +34,7 @@ // ======================> cmd_hd_device -class cmd_hd_device : public device_t, - public device_cbm_iec_interface +class cmd_hd_device : public device_t, public device_cbm_iec_interface { public: // construction/destruction @@ -59,13 +58,12 @@ protected: void cbm_iec_reset(int state) override; required_device m_maincpu; - required_device m_scsibus; + required_device m_scsibus; }; // device type definition -extern const device_type CMD_HD; - +DECLARE_DEVICE_TYPE(CMD_HD, cmd_hd_device) -#endif +#endif // MAME_BUS_CBMIEC_CMDHD_H diff --git a/src/devices/bus/cbmiec/diag264_lb_iec.cpp b/src/devices/bus/cbmiec/diag264_lb_iec.cpp index 7eb12763ef9..18dac929017 100644 --- a/src/devices/bus/cbmiec/diag264_lb_iec.cpp +++ b/src/devices/bus/cbmiec/diag264_lb_iec.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type DIAG264_SERIAL_LOOPBACK = device_creator; +DEFINE_DEVICE_TYPE(DIAG264_SERIAL_LOOPBACK, diag264_serial_loopback_device, "diag264_serial_loopback", "Diag264 Serial Loopback") @@ -28,8 +28,8 @@ const device_type DIAG264_SERIAL_LOOPBACK = device_creator; -const device_type FD4000 = device_creator; +DEFINE_DEVICE_TYPE(FD2000, fd2000_device, "fd2000", "FD-2000") +DEFINE_DEVICE_TYPE(FD4000, fd4000_device, "fd4000", "FD-4000") //------------------------------------------------- @@ -276,22 +276,17 @@ machine_config_constructor fd2000_device::device_mconfig_additions() const //------------------------------------------------- fd2000_device::fd2000_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, FD2000, "FD-2000", tag, owner, clock, "fd2000", __FILE__), - device_cbm_iec_interface(mconfig, *this), - m_maincpu(*this, G65SC02PI2_TAG), - m_fdc(*this, DP8473V_TAG), - m_floppy0(*this, DP8473V_TAG":0"), - m_variant(TYPE_FD2000) + : fd2000_device(mconfig, FD2000, tag, owner, clock, TYPE_FD2000) { } -fd2000_device::fd2000_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, uint32_t variant, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_cbm_iec_interface(mconfig, *this), - m_maincpu(*this, R65C02P4_TAG), - m_fdc(*this, PC8477AV1_TAG), - m_floppy0(*this, PC8477AV1_TAG":0"), - m_variant(variant) +fd2000_device::fd2000_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint32_t variant) + : device_t(mconfig, type, tag, owner, clock) + , device_cbm_iec_interface(mconfig, *this) + , m_maincpu(*this, R65C02P4_TAG) + , m_fdc(*this, PC8477AV1_TAG) + , m_floppy0(*this, PC8477AV1_TAG":0") + , m_variant(variant) { } @@ -301,7 +296,9 @@ fd2000_device::fd2000_device(const machine_config &mconfig, device_type type, co //------------------------------------------------- fd4000_device::fd4000_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : fd2000_device(mconfig, FD4000, "FD-4000", tag, owner, clock, TYPE_FD4000, "fd4000", __FILE__ ) { } + : fd2000_device(mconfig, FD4000, tag, owner, clock, TYPE_FD4000) +{ +} //------------------------------------------------- diff --git a/src/devices/bus/cbmiec/fd2000.h b/src/devices/bus/cbmiec/fd2000.h index d0cc4585dff..4623a0d8d10 100644 --- a/src/devices/bus/cbmiec/fd2000.h +++ b/src/devices/bus/cbmiec/fd2000.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_CBMIEC_FD2000_H +#define MAME_BUS_CBMIEC_FD2000_H -#ifndef __FD2000__ -#define __FD2000__ +#pragma once #include "cbmiec.h" #include "cpu/m6502/m65c02.h" @@ -39,13 +39,6 @@ class fd2000_device : public device_t, public: // construction/destruction fd2000_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - fd2000_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, uint32_t variant, const char *shortname, const char *source); - - enum - { - TYPE_FD2000, - TYPE_FD4000 - }; // optional information overrides virtual const tiny_rom_entry *device_rom_region() const override; @@ -59,6 +52,14 @@ public: //DECLARE_FLOPPY_FORMATS( floppy_formats ); protected: + enum + { + TYPE_FD2000, + TYPE_FD4000 + }; + + fd2000_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint32_t variant); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -88,9 +89,8 @@ public: // device type definition -extern const device_type FD2000; -extern const device_type FD4000; - +DECLARE_DEVICE_TYPE(FD2000, fd2000_device) +DECLARE_DEVICE_TYPE(FD4000, fd4000_device) -#endif +#endif // MAME_BUS_CBMIEC_FD2000_H diff --git a/src/devices/bus/cbmiec/interpod.cpp b/src/devices/bus/cbmiec/interpod.cpp index 796802ab95e..850f403a122 100644 --- a/src/devices/bus/cbmiec/interpod.cpp +++ b/src/devices/bus/cbmiec/interpod.cpp @@ -76,7 +76,7 @@ Notes: // DEVICE DEFINITIONS //************************************************************************** -const device_type INTERPOD = device_creator; +DEFINE_DEVICE_TYPE(INTERPOD, interpod_device, "interpod", "Interpod") @@ -110,8 +110,8 @@ const tiny_rom_entry *interpod_device::device_rom_region() const //------------------------------------------------- static ADDRESS_MAP_START( interpod_mem, AS_PROGRAM, 8, interpod_device ) - AM_RANGE(0x0000, 0x007f) AM_MIRROR(0x3b80) AM_DEVICE(R6532_TAG, mos6532_t, ram_map) - AM_RANGE(0x0400, 0x041f) AM_MIRROR(0x3be0) AM_DEVICE(R6532_TAG, mos6532_t, io_map) + AM_RANGE(0x0000, 0x007f) AM_MIRROR(0x3b80) AM_DEVICE(R6532_TAG, mos6532_new_device, ram_map) + AM_RANGE(0x0400, 0x041f) AM_MIRROR(0x3be0) AM_DEVICE(R6532_TAG, mos6532_new_device, io_map) AM_RANGE(0x2000, 0x2000) AM_MIRROR(0x9ffe) AM_DEVREADWRITE(MC6850_TAG, acia6850_device, status_r, control_w) AM_RANGE(0x2001, 0x2001) AM_MIRROR(0x9ffe) AM_DEVREADWRITE(MC6850_TAG, acia6850_device, data_r, data_w) AM_RANGE(0x4000, 0x47ff) AM_MIRROR(0xb800) AM_ROM AM_REGION(R6502_TAG, 0) @@ -128,7 +128,7 @@ static MACHINE_CONFIG_FRAGMENT( interpod ) MCFG_CPU_PROGRAM_MAP(interpod_mem) MCFG_DEVICE_ADD(R6522_TAG, VIA6522, 1000000) - MCFG_DEVICE_ADD(R6532_TAG, MOS6532n, 1000000) + MCFG_DEVICE_ADD(R6532_TAG, MOS6532_NEW, 1000000) MCFG_DEVICE_ADD(MC6850_TAG, ACIA6850, 0) MCFG_CBM_IEEE488_ADD(nullptr) @@ -155,7 +155,7 @@ machine_config_constructor interpod_device::device_mconfig_additions() const //------------------------------------------------- interpod_device::interpod_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, INTERPOD, "Interpod", tag, owner, clock, "interpod", __FILE__), + : device_t(mconfig, INTERPOD, tag, owner, clock), device_cbm_iec_interface(mconfig, *this), m_maincpu(*this, R6502_TAG), m_via(*this, R6522_TAG), diff --git a/src/devices/bus/cbmiec/interpod.h b/src/devices/bus/cbmiec/interpod.h index 718479effc7..b33eb8bcd86 100644 --- a/src/devices/bus/cbmiec/interpod.h +++ b/src/devices/bus/cbmiec/interpod.h @@ -6,10 +6,10 @@ *********************************************************************/ -#pragma once +#ifndef MAME_BUS_CBMIEC_INTERPOD_H +#define MAME_BUS_CBMIEC_INTERPOD_H -#ifndef __INTERPOD__ -#define __INTERPOD__ +#pragma once #include "cbmiec.h" #include "bus/ieee488/ieee488.h" @@ -43,8 +43,7 @@ // ======================> interpod_device -class interpod_device : public device_t, - public device_cbm_iec_interface +class interpod_device : public device_t, public device_cbm_iec_interface { public: // construction/destruction @@ -61,15 +60,14 @@ protected: required_device m_maincpu; required_device m_via; - required_device m_riot; + required_device m_riot; required_device m_acia; required_device m_ieee; }; // device type definition -extern const device_type INTERPOD; - +DECLARE_DEVICE_TYPE(INTERPOD, interpod_device) -#endif +#endif // MAME_BUS_CBMIEC_INTERPOD_H diff --git a/src/devices/bus/cbmiec/serialbox.cpp b/src/devices/bus/cbmiec/serialbox.cpp index d47cf61a0dc..1d0ff2e8abb 100644 --- a/src/devices/bus/cbmiec/serialbox.cpp +++ b/src/devices/bus/cbmiec/serialbox.cpp @@ -32,7 +32,7 @@ enum // DEVICE DEFINITIONS //************************************************************************** -const device_type SERIAL_BOX = device_creator; +DEFINE_DEVICE_TYPE(SERIAL_BOX, serial_box_device, "serbox", "Serial Box") //------------------------------------------------- @@ -95,7 +95,7 @@ machine_config_constructor serial_box_device::device_mconfig_additions() const //------------------------------------------------- serial_box_device::serial_box_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, SERIAL_BOX, "Serial Box", tag, owner, clock, "serbox", __FILE__), + : device_t(mconfig, SERIAL_BOX, tag, owner, clock), device_cbm_iec_interface(mconfig, *this), m_maincpu(*this, M6502_TAG) { diff --git a/src/devices/bus/cbmiec/serialbox.h b/src/devices/bus/cbmiec/serialbox.h index be7405a97d3..67fa9feacf5 100644 --- a/src/devices/bus/cbmiec/serialbox.h +++ b/src/devices/bus/cbmiec/serialbox.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_CBMIEC_SERIALBOX_H +#define MAME_BUS_CBMIEC_SERIALBOX_H -#ifndef __SERIAL_BOX__ -#define __SERIAL_BOX__ +#pragma once #include "cpu/m6502/m65c02.h" #include "bus/cbmiec/cbmiec.h" @@ -30,8 +30,7 @@ // ======================> serial_box_device -class serial_box_device : public device_t, - public device_cbm_iec_interface +class serial_box_device : public device_t, public device_cbm_iec_interface { public: // construction/destruction @@ -57,8 +56,7 @@ private: // device type definition -extern const device_type SERIAL_BOX; - +DECLARE_DEVICE_TYPE(SERIAL_BOX, serial_box_device) -#endif +#endif // MAME_BUS_CBMIEC_SERIALBOX_H diff --git a/src/devices/bus/cbmiec/vic1515.cpp b/src/devices/bus/cbmiec/vic1515.cpp index 77157cdea07..289ffeac4e1 100644 --- a/src/devices/bus/cbmiec/vic1515.cpp +++ b/src/devices/bus/cbmiec/vic1515.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type VIC1515 = device_creator; +DEFINE_DEVICE_TYPE(VIC1515, vic1515_device, "vic1515", "VIC-1515") //------------------------------------------------- @@ -32,7 +32,7 @@ ROM_END // rom_region - device-specific ROM region //------------------------------------------------- -const tiny_rom_entry *vic1515_t::device_rom_region() const +const tiny_rom_entry *vic1515_device::device_rom_region() const { return ROM_NAME( vic1515 ); } @@ -42,7 +42,7 @@ const tiny_rom_entry *vic1515_t::device_rom_region() const // ADDRESS_MAP( vic1515_mem ) //------------------------------------------------- -static ADDRESS_MAP_START( vic1515_mem, AS_PROGRAM, 8, vic1515_t ) +static ADDRESS_MAP_START( vic1515_mem, AS_PROGRAM, 8, vic1515_device ) AM_RANGE(0x0000, 0x0fff) AM_ROM AM_REGION("rom", 0) ADDRESS_MAP_END @@ -51,7 +51,7 @@ ADDRESS_MAP_END // ADDRESS_MAP( vic1515_io ) //------------------------------------------------- -static ADDRESS_MAP_START( vic1515_io, AS_IO, 8, vic1515_t ) +static ADDRESS_MAP_START( vic1515_io, AS_IO, 8, vic1515_device ) ADDRESS_MAP_END @@ -71,7 +71,7 @@ MACHINE_CONFIG_END // machine configurations //------------------------------------------------- -machine_config_constructor vic1515_t::device_mconfig_additions() const +machine_config_constructor vic1515_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( vic1515 ); } @@ -94,7 +94,7 @@ INPUT_PORTS_END // input_ports - device-specific input ports //------------------------------------------------- -ioport_constructor vic1515_t::device_input_ports() const +ioport_constructor vic1515_device::device_input_ports() const { return INPUT_PORTS_NAME( vic1515 ); } @@ -106,11 +106,11 @@ ioport_constructor vic1515_t::device_input_ports() const //************************************************************************** //------------------------------------------------- -// vic1515_t - constructor +// vic1515_device - constructor //------------------------------------------------- -vic1515_t::vic1515_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, VIC1515, "VIC-1515", tag, owner, clock, "vic1515", __FILE__), +vic1515_device::vic1515_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, VIC1515, tag, owner, clock), device_cbm_iec_interface(mconfig, *this) { } @@ -120,7 +120,7 @@ vic1515_t::vic1515_t(const machine_config &mconfig, const char *tag, device_t *o // device_start - device-specific startup //------------------------------------------------- -void vic1515_t::device_start() +void vic1515_device::device_start() { } @@ -129,7 +129,7 @@ void vic1515_t::device_start() // device_reset - device-specific reset //------------------------------------------------- -void vic1515_t::device_reset() +void vic1515_device::device_reset() { } @@ -138,7 +138,7 @@ void vic1515_t::device_reset() // cbm_iec_atn - //------------------------------------------------- -void vic1515_t::cbm_iec_atn(int state) +void vic1515_device::cbm_iec_atn(int state) { } @@ -147,7 +147,7 @@ void vic1515_t::cbm_iec_atn(int state) // cbm_iec_data - //------------------------------------------------- -void vic1515_t::cbm_iec_data(int state) +void vic1515_device::cbm_iec_data(int state) { } @@ -156,7 +156,7 @@ void vic1515_t::cbm_iec_data(int state) // cbm_iec_reset - //------------------------------------------------- -void vic1515_t::cbm_iec_reset(int state) +void vic1515_device::cbm_iec_reset(int state) { if (!state) { diff --git a/src/devices/bus/cbmiec/vic1515.h b/src/devices/bus/cbmiec/vic1515.h index 2f511006ed4..ca5452aa35c 100644 --- a/src/devices/bus/cbmiec/vic1515.h +++ b/src/devices/bus/cbmiec/vic1515.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_CBMIEC_VIC1515_H +#define MAME_BUS_CBMIEC_VIC1515_H -#ifndef __VIC1515__ -#define __VIC1515__ +#pragma once #include "cbmiec.h" #include "cpu/mcs48/mcs48.h" @@ -20,14 +20,13 @@ // TYPE DEFINITIONS //************************************************************************** -// ======================> vic1515_t +// ======================> vic1515_device -class vic1515_t : public device_t, - public device_cbm_iec_interface +class vic1515_device : public device_t, public device_cbm_iec_interface { public: // construction/destruction - vic1515_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + vic1515_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual const tiny_rom_entry *device_rom_region() const override; @@ -47,8 +46,7 @@ protected: // device type definition -extern const device_type VIC1515; - +DECLARE_DEVICE_TYPE(VIC1515, vic1515_device) -#endif +#endif // MAME_BUS_CBMIEC_VIC1515_H diff --git a/src/devices/bus/cbmiec/vic1520.cpp b/src/devices/bus/cbmiec/vic1520.cpp index e2275224f1e..f6f412ced18 100644 --- a/src/devices/bus/cbmiec/vic1520.cpp +++ b/src/devices/bus/cbmiec/vic1520.cpp @@ -52,7 +52,7 @@ PD7 Y MOTOR COM D // DEVICE DEFINITIONS //************************************************************************** -const device_type VIC1520 = device_creator; +DEFINE_DEVICE_TYPE(VIC1520, vic1520_device, "vic1520", "VIC-1520") //------------------------------------------------- @@ -72,7 +72,7 @@ ROM_END // rom_region - device-specific ROM region //------------------------------------------------- -const tiny_rom_entry *vic1520_t::device_rom_region() const +const tiny_rom_entry *vic1520_device::device_rom_region() const { return ROM_NAME( vic1520 ); } @@ -82,7 +82,7 @@ const tiny_rom_entry *vic1520_t::device_rom_region() const // ADDRESS_MAP( vic1520_mem ) //------------------------------------------------- -static ADDRESS_MAP_START( vic1520_mem, AS_PROGRAM, 8, vic1520_t ) +static ADDRESS_MAP_START( vic1520_mem, AS_PROGRAM, 8, vic1520_device ) ADDRESS_MAP_GLOBAL_MASK(0xfff) AM_RANGE(0x000, 0x03f) AM_RAM AM_RANGE(0x800, 0xfff) AM_ROM AM_REGION(M6500_1_TAG, 0) @@ -104,7 +104,7 @@ MACHINE_CONFIG_END // machine configurations //------------------------------------------------- -machine_config_constructor vic1520_t::device_mconfig_additions() const +machine_config_constructor vic1520_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( vic1520 ); } @@ -122,7 +122,7 @@ INPUT_PORTS_END // input_ports - device-specific input ports //------------------------------------------------- -ioport_constructor vic1520_t::device_input_ports() const +ioport_constructor vic1520_device::device_input_ports() const { return INPUT_PORTS_NAME( vic1520 ); } @@ -134,11 +134,11 @@ ioport_constructor vic1520_t::device_input_ports() const //************************************************************************** //------------------------------------------------- -// vic1520_t - constructor +// vic1520_device - constructor //------------------------------------------------- -vic1520_t::vic1520_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, VIC1520, "VIC-1520", tag, owner, clock, "vic1520", __FILE__), +vic1520_device::vic1520_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, VIC1520, tag, owner, clock), device_cbm_iec_interface(mconfig, *this) { } @@ -148,7 +148,7 @@ vic1520_t::vic1520_t(const machine_config &mconfig, const char *tag, device_t *o // device_start - device-specific startup //------------------------------------------------- -void vic1520_t::device_start() +void vic1520_device::device_start() { } @@ -157,7 +157,7 @@ void vic1520_t::device_start() // device_reset - device-specific reset //------------------------------------------------- -void vic1520_t::device_reset() +void vic1520_device::device_reset() { } @@ -166,7 +166,7 @@ void vic1520_t::device_reset() // cbm_iec_atn - //------------------------------------------------- -void vic1520_t::cbm_iec_atn(int state) +void vic1520_device::cbm_iec_atn(int state) { } @@ -175,7 +175,7 @@ void vic1520_t::cbm_iec_atn(int state) // cbm_iec_data - //------------------------------------------------- -void vic1520_t::cbm_iec_data(int state) +void vic1520_device::cbm_iec_data(int state) { } @@ -184,7 +184,7 @@ void vic1520_t::cbm_iec_data(int state) // cbm_iec_reset - //------------------------------------------------- -void vic1520_t::cbm_iec_reset(int state) +void vic1520_device::cbm_iec_reset(int state) { if (!state) { diff --git a/src/devices/bus/cbmiec/vic1520.h b/src/devices/bus/cbmiec/vic1520.h index 3f2ec228db1..b39fa85b9b1 100644 --- a/src/devices/bus/cbmiec/vic1520.h +++ b/src/devices/bus/cbmiec/vic1520.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_CBMIEC_VIC1520_H +#define MAME_BUS_CBMIEC_VIC1520_H -#ifndef __VIC1520__ -#define __VIC1520__ +#pragma once #include "cbmiec.h" #include "cpu/m6502/m6502.h" @@ -20,14 +20,13 @@ // TYPE DEFINITIONS //************************************************************************** -// ======================> vic1520_t +// ======================> vic1520_device -class vic1520_t : public device_t, - public device_cbm_iec_interface +class vic1520_device : public device_t, public device_cbm_iec_interface { public: // construction/destruction - vic1520_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + vic1520_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual const tiny_rom_entry *device_rom_region() const override; @@ -50,5 +49,4 @@ protected: extern const device_type VIC1520; - -#endif +#endif // MAME_BUS_CBMIEC_VIC1520_H diff --git a/src/devices/bus/centronics/comxpl80.cpp b/src/devices/bus/centronics/comxpl80.cpp index bdca08de3e6..1faff54acf4 100644 --- a/src/devices/bus/centronics/comxpl80.cpp +++ b/src/devices/bus/centronics/comxpl80.cpp @@ -31,7 +31,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type COMX_PL80 = device_creator; +DEFINE_DEVICE_TYPE(COMX_PL80, comx_pl80_device, "comx_pl80", "COMX PL-80") //------------------------------------------------- @@ -160,7 +160,7 @@ ioport_constructor comx_pl80_device::device_input_ports() const //------------------------------------------------- comx_pl80_device::comx_pl80_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, COMX_PL80, "COMX PL-80", tag, owner, clock, "comx_pl80", __FILE__), + : device_t(mconfig, COMX_PL80, tag, owner, clock), device_centronics_peripheral_interface(mconfig, *this), m_plotter(*this, "gfx1"), m_font(*this, "FONT"), diff --git a/src/devices/bus/centronics/comxpl80.h b/src/devices/bus/centronics/comxpl80.h index 0f648902639..2fbb809fd3b 100644 --- a/src/devices/bus/centronics/comxpl80.h +++ b/src/devices/bus/centronics/comxpl80.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_CENTRONICS_COMXPL80_H +#define MAME_BUS_CENTRONICS_COMXPL80_H -#ifndef __COMX_PL80__ -#define __COMX_PL80__ +#pragma once #include "cpu/m6805/m6805.h" #include "bus/centronics/ctronics.h" @@ -73,8 +73,8 @@ private: // device type definition -extern const device_type COMX_PL80; +DECLARE_DEVICE_TYPE(COMX_PL80, comx_pl80_device) -#endif +#endif // MAME_BUS_CENTRONICS_COMXPL80_H diff --git a/src/devices/bus/centronics/covox.cpp b/src/devices/bus/centronics/covox.cpp index 1caea17daae..ece3068f736 100644 --- a/src/devices/bus/centronics/covox.cpp +++ b/src/devices/bus/centronics/covox.cpp @@ -16,7 +16,7 @@ //************************************************************************** // device type definition -const device_type CENTRONICS_COVOX = device_creator; +DEFINE_DEVICE_TYPE(CENTRONICS_COVOX, centronics_covox_device, "covox", "Covox Speech Thing") static MACHINE_CONFIG_FRAGMENT( covox ) /* sound hardware */ @@ -35,7 +35,7 @@ MACHINE_CONFIG_END //------------------------------------------------- centronics_covox_device::centronics_covox_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, CENTRONICS_COVOX, "Covox Speech Thing", tag, owner, clock, "covox", __FILE__), + : device_t(mconfig, CENTRONICS_COVOX, tag, owner, clock), device_centronics_peripheral_interface( mconfig, *this ), m_dac(*this, "dac"), m_data(0) @@ -68,7 +68,7 @@ void centronics_covox_device::update_dac() //************************************************************************** // device type definition -const device_type CENTRONICS_COVOX_STEREO = device_creator; +DEFINE_DEVICE_TYPE(CENTRONICS_COVOX_STEREO, centronics_covox_stereo_device, "covox_stereo", "Covox (Stereo-in-1)") static MACHINE_CONFIG_FRAGMENT( covox_stereo ) /* sound hardware */ @@ -89,7 +89,7 @@ MACHINE_CONFIG_END //------------------------------------------------- centronics_covox_stereo_device::centronics_covox_stereo_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, CENTRONICS_COVOX_STEREO, "Covox (Stereo-in-1)", tag, owner, clock, "covox_stereo", __FILE__), + : device_t(mconfig, CENTRONICS_COVOX_STEREO, tag, owner, clock), device_centronics_peripheral_interface( mconfig, *this ), m_ldac(*this, "ldac"), m_rdac(*this, "rdac"), diff --git a/src/devices/bus/centronics/covox.h b/src/devices/bus/centronics/covox.h index 48036c05487..969065c117a 100644 --- a/src/devices/bus/centronics/covox.h +++ b/src/devices/bus/centronics/covox.h @@ -6,8 +6,8 @@ ***************************************************************************/ -#ifndef __CENTRONICS_COVOX_H__ -#define __CENTRONICS_COVOX_H__ +#ifndef MAME_BUS_CENTRONICS_COVOX_H +#define MAME_BUS_CENTRONICS_COVOX_H #pragma once @@ -48,7 +48,7 @@ private: }; // device type definition -extern const device_type CENTRONICS_COVOX; +DECLARE_DEVICE_TYPE(CENTRONICS_COVOX, centronics_covox_device) // ======================> centronics_covox_stereo_device @@ -89,6 +89,6 @@ private: }; // device type definition -extern const device_type CENTRONICS_COVOX_STEREO; +DECLARE_DEVICE_TYPE(CENTRONICS_COVOX_STEREO, centronics_covox_stereo_device) -#endif /* __CENTRONICS_COVOX_H__ */ +#endif // MAME_BUS_CENTRONICS_COVOX_H diff --git a/src/devices/bus/centronics/ctronics.cpp b/src/devices/bus/centronics/ctronics.cpp index fd66f57d3ac..6c99dcf0786 100644 --- a/src/devices/bus/centronics/ctronics.cpp +++ b/src/devices/bus/centronics/ctronics.cpp @@ -11,10 +11,10 @@ // class centronics_device -const device_type CENTRONICS = device_creator; +DEFINE_DEVICE_TYPE(CENTRONICS, centronics_device, "centronics", "Centronics") centronics_device::centronics_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, CENTRONICS, "Centronics", tag, owner, clock, "centronics", __FILE__), + : device_t(mconfig, CENTRONICS, tag, owner, clock), device_slot_interface(mconfig, *this), m_strobe_handler(*this), m_data0_handler(*this), diff --git a/src/devices/bus/centronics/ctronics.h b/src/devices/bus/centronics/ctronics.h index 514028f2c6e..62c1cf5a94e 100644 --- a/src/devices/bus/centronics/ctronics.h +++ b/src/devices/bus/centronics/ctronics.h @@ -5,12 +5,11 @@ Centronics printer interface ***************************************************************************/ +#ifndef MAME_BUS_CENTRONICS_CTRONICS_H +#define MAME_BUS_CENTRONICS_CTRONICS_H #pragma once -#ifndef __CTRONICS_H__ -#define __CTRONICS_H__ - #include "machine/buffer.h" #include "machine/latch.h" @@ -91,7 +90,7 @@ MCFG_CENTRONICS_DATA6_HANDLER(DEVWRITELINE(_tag, input_buffer_device, write_bit6)) \ MCFG_CENTRONICS_DATA7_HANDLER(DEVWRITELINE(_tag, input_buffer_device, write_bit7)) -extern const device_type CENTRONICS; +DECLARE_DEVICE_TYPE(CENTRONICS, centronics_device) class device_centronics_peripheral_interface; @@ -103,23 +102,23 @@ class centronics_device : public device_t, public: centronics_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_strobe_handler(device_t &device, _Object object) { return downcast(device).m_strobe_handler.set_callback(object); } - template static devcb_base &set_data0_handler(device_t &device, _Object object) { return downcast(device).m_data0_handler.set_callback(object); } - template static devcb_base &set_data1_handler(device_t &device, _Object object) { return downcast(device).m_data1_handler.set_callback(object); } - template static devcb_base &set_data2_handler(device_t &device, _Object object) { return downcast(device).m_data2_handler.set_callback(object); } - template static devcb_base &set_data3_handler(device_t &device, _Object object) { return downcast(device).m_data3_handler.set_callback(object); } - template static devcb_base &set_data4_handler(device_t &device, _Object object) { return downcast(device).m_data4_handler.set_callback(object); } - template static devcb_base &set_data5_handler(device_t &device, _Object object) { return downcast(device).m_data5_handler.set_callback(object); } - template static devcb_base &set_data6_handler(device_t &device, _Object object) { return downcast(device).m_data6_handler.set_callback(object); } - template static devcb_base &set_data7_handler(device_t &device, _Object object) { return downcast(device).m_data7_handler.set_callback(object); } - template static devcb_base &set_ack_handler(device_t &device, _Object object) { return downcast(device).m_ack_handler.set_callback(object); } - template static devcb_base &set_busy_handler(device_t &device, _Object object) { return downcast(device).m_busy_handler.set_callback(object); } - template static devcb_base &set_perror_handler(device_t &device, _Object object) { return downcast(device).m_perror_handler.set_callback(object); } - template static devcb_base &set_select_handler(device_t &device, _Object object) { return downcast(device).m_select_handler.set_callback(object); } - template static devcb_base &set_autofd_handler(device_t &device, _Object object) { return downcast(device).m_autofd_handler.set_callback(object); } - template static devcb_base &set_fault_handler(device_t &device, _Object object) { return downcast(device).m_fault_handler.set_callback(object); } - template static devcb_base &set_init_handler(device_t &device, _Object object) { return downcast(device).m_init_handler.set_callback(object); } - template static devcb_base &set_select_in_handler(device_t &device, _Object object) { return downcast(device).m_select_in_handler.set_callback(object); } + template static devcb_base &set_strobe_handler(device_t &device, Object &&cb) { return downcast(device).m_strobe_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_data0_handler(device_t &device, Object &&cb) { return downcast(device).m_data0_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_data1_handler(device_t &device, Object &&cb) { return downcast(device).m_data1_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_data2_handler(device_t &device, Object &&cb) { return downcast(device).m_data2_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_data3_handler(device_t &device, Object &&cb) { return downcast(device).m_data3_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_data4_handler(device_t &device, Object &&cb) { return downcast(device).m_data4_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_data5_handler(device_t &device, Object &&cb) { return downcast(device).m_data5_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_data6_handler(device_t &device, Object &&cb) { return downcast(device).m_data6_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_data7_handler(device_t &device, Object &&cb) { return downcast(device).m_data7_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_ack_handler(device_t &device, Object &&cb) { return downcast(device).m_ack_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_busy_handler(device_t &device, Object &&cb) { return downcast(device).m_busy_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_perror_handler(device_t &device, Object &&cb) { return downcast(device).m_perror_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_select_handler(device_t &device, Object &&cb) { return downcast(device).m_select_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_autofd_handler(device_t &device, Object &&cb) { return downcast(device).m_autofd_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_fault_handler(device_t &device, Object &&cb) { return downcast(device).m_fault_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_init_handler(device_t &device, Object &&cb) { return downcast(device).m_init_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_select_in_handler(device_t &device, Object &&cb) { return downcast(device).m_select_in_handler.set_callback(std::forward(cb)); } DECLARE_WRITE_LINE_MEMBER( write_strobe ); DECLARE_WRITE_LINE_MEMBER( write_data0 ); @@ -172,7 +171,6 @@ class device_centronics_peripheral_interface : public device_slot_card_interface friend class centronics_device; public: - device_centronics_peripheral_interface(const machine_config &mconfig, device_t &device); virtual ~device_centronics_peripheral_interface(); DECLARE_WRITE_LINE_MEMBER( output_strobe ) { m_slot->m_strobe_handler(state); } @@ -194,23 +192,25 @@ public: DECLARE_WRITE_LINE_MEMBER( output_select_in ) { m_slot->m_select_in_handler(state); } protected: - virtual DECLARE_WRITE_LINE_MEMBER( input_strobe ) {} - virtual DECLARE_WRITE_LINE_MEMBER( input_data0 ) {} - virtual DECLARE_WRITE_LINE_MEMBER( input_data1 ) {} - virtual DECLARE_WRITE_LINE_MEMBER( input_data2 ) {} - virtual DECLARE_WRITE_LINE_MEMBER( input_data3 ) {} - virtual DECLARE_WRITE_LINE_MEMBER( input_data4 ) {} - virtual DECLARE_WRITE_LINE_MEMBER( input_data5 ) {} - virtual DECLARE_WRITE_LINE_MEMBER( input_data6 ) {} - virtual DECLARE_WRITE_LINE_MEMBER( input_data7 ) {} - virtual DECLARE_WRITE_LINE_MEMBER( input_ack ) {} - virtual DECLARE_WRITE_LINE_MEMBER( input_busy ) {} - virtual DECLARE_WRITE_LINE_MEMBER( input_perror ) {} - virtual DECLARE_WRITE_LINE_MEMBER( input_select ) {} - virtual DECLARE_WRITE_LINE_MEMBER( input_autofd ) {} - virtual DECLARE_WRITE_LINE_MEMBER( input_fault ) {} - virtual DECLARE_WRITE_LINE_MEMBER( input_init ) {} - virtual DECLARE_WRITE_LINE_MEMBER( input_select_in ) {} + device_centronics_peripheral_interface(const machine_config &mconfig, device_t &device); + + virtual DECLARE_WRITE_LINE_MEMBER( input_strobe ) { } + virtual DECLARE_WRITE_LINE_MEMBER( input_data0 ) { } + virtual DECLARE_WRITE_LINE_MEMBER( input_data1 ) { } + virtual DECLARE_WRITE_LINE_MEMBER( input_data2 ) { } + virtual DECLARE_WRITE_LINE_MEMBER( input_data3 ) { } + virtual DECLARE_WRITE_LINE_MEMBER( input_data4 ) { } + virtual DECLARE_WRITE_LINE_MEMBER( input_data5 ) { } + virtual DECLARE_WRITE_LINE_MEMBER( input_data6 ) { } + virtual DECLARE_WRITE_LINE_MEMBER( input_data7 ) { } + virtual DECLARE_WRITE_LINE_MEMBER( input_ack ) { } + virtual DECLARE_WRITE_LINE_MEMBER( input_busy ) { } + virtual DECLARE_WRITE_LINE_MEMBER( input_perror ) { } + virtual DECLARE_WRITE_LINE_MEMBER( input_select ) { } + virtual DECLARE_WRITE_LINE_MEMBER( input_autofd ) { } + virtual DECLARE_WRITE_LINE_MEMBER( input_fault ) { } + virtual DECLARE_WRITE_LINE_MEMBER( input_init ) { } + virtual DECLARE_WRITE_LINE_MEMBER( input_select_in ) { } centronics_device *m_slot; }; @@ -218,4 +218,4 @@ protected: SLOT_INTERFACE_EXTERN( centronics_devices ); -#endif +#endif // MAME_BUS_CENTRONICS_CTRONICS_H diff --git a/src/devices/bus/centronics/digiblst.cpp b/src/devices/bus/centronics/digiblst.cpp index 006fbb5068b..8afbe731960 100644 --- a/src/devices/bus/centronics/digiblst.cpp +++ b/src/devices/bus/centronics/digiblst.cpp @@ -16,7 +16,7 @@ //************************************************************************** // device type definition -const device_type CENTRONICS_DIGIBLASTER = device_creator; +DEFINE_DEVICE_TYPE(CENTRONICS_DIGIBLASTER, centronics_digiblaster_device, "digiblst", "Digiblaster (DIY)") static MACHINE_CONFIG_FRAGMENT( digiblst ) /* sound hardware */ @@ -35,7 +35,7 @@ MACHINE_CONFIG_END //------------------------------------------------- centronics_digiblaster_device::centronics_digiblaster_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, CENTRONICS_DIGIBLASTER, "Digiblaster (DIY)", tag, owner, clock, "digiblst", __FILE__), + : device_t(mconfig, CENTRONICS_DIGIBLASTER, tag, owner, clock), device_centronics_peripheral_interface( mconfig, *this ), m_dac(*this, "dac"), m_data(0) diff --git a/src/devices/bus/centronics/digiblst.h b/src/devices/bus/centronics/digiblst.h index 4b5924b9f55..4521b8a2a6b 100644 --- a/src/devices/bus/centronics/digiblst.h +++ b/src/devices/bus/centronics/digiblst.h @@ -12,8 +12,8 @@ * Created on: 23/08/2014 */ -#ifndef DIGIBLST_H_ -#define DIGIBLST_H_ +#ifndef MAME_BUS_CENTRONICS_DIGIBLST_H +#define MAME_BUS_CENTRONICS_DIGIBLST_H #pragma once @@ -54,7 +54,7 @@ private: }; // device type definition -extern const device_type CENTRONICS_DIGIBLASTER; +DECLARE_DEVICE_TYPE(CENTRONICS_DIGIBLASTER, centronics_digiblaster_device) -#endif /* DIGIBLST_H_ */ +#endif // MAME_BUS_CENTRONICS_DIGIBLST_H diff --git a/src/devices/bus/centronics/dsjoy.cpp b/src/devices/bus/centronics/dsjoy.cpp index 7d1fa9dee78..a9209c264f8 100644 --- a/src/devices/bus/centronics/dsjoy.cpp +++ b/src/devices/bus/centronics/dsjoy.cpp @@ -4,10 +4,10 @@ #include "emu.h" #include "dsjoy.h" -const device_type DEMPA_SHINBUNSHA_JOYSTICK = device_creator; +DEFINE_DEVICE_TYPE(DEMPA_SHINBUNSHA_JOYSTICK, dempa_shinbunsha_joystick_device, "dempa_shinbunsha_joystick", "Dempa Shinbunsha Joystick") dempa_shinbunsha_joystick_device::dempa_shinbunsha_joystick_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, DEMPA_SHINBUNSHA_JOYSTICK, "Dempa Shinbunsha Joystick", tag, owner, clock, "dempa_shinbunsha_joystick", __FILE__), + device_t(mconfig, DEMPA_SHINBUNSHA_JOYSTICK, tag, owner, clock), device_centronics_peripheral_interface( mconfig, *this ), m_lptjoy(*this, "lptjoy"), m_data(0xff), diff --git a/src/devices/bus/centronics/dsjoy.h b/src/devices/bus/centronics/dsjoy.h index 5db48e615fb..bcb91afceed 100644 --- a/src/devices/bus/centronics/dsjoy.h +++ b/src/devices/bus/centronics/dsjoy.h @@ -6,8 +6,8 @@ ***************************************************************************/ -#ifndef __CENTRONICS_DSJOY_H__ -#define __CENTRONICS_DSJOY_H__ +#ifndef MAME_BUS_CENTRONICS_DSJOY_H +#define MAME_BUS_CENTRONICS_DSJOY_H #pragma once @@ -42,6 +42,6 @@ private: }; // device type definition -extern const device_type DEMPA_SHINBUNSHA_JOYSTICK; +DECLARE_DEVICE_TYPE(DEMPA_SHINBUNSHA_JOYSTICK, dempa_shinbunsha_joystick_device) -#endif +#endif // MAME_BUS_CENTRONICS_DSJOY_H diff --git a/src/devices/bus/centronics/epson_ex800.cpp b/src/devices/bus/centronics/epson_ex800.cpp index 6c42844ca79..83c95a59214 100644 --- a/src/devices/bus/centronics/epson_ex800.cpp +++ b/src/devices/bus/centronics/epson_ex800.cpp @@ -171,7 +171,7 @@ TODO: - The UPD7810 core is missing analog port emulation // DEVICE DEFINITIONS //************************************************************************** -const device_type EPSON_EX800 = device_creator; +DEFINE_DEVICE_TYPE(EPSON_EX800, epson_ex800_device, "ex800", "Epson EX-800") //------------------------------------------------- @@ -188,7 +188,7 @@ ROM_END // rom_region - device-specific ROM region //------------------------------------------------- -const tiny_rom_entry *epson_ex800_t::device_rom_region() const +const tiny_rom_entry *epson_ex800_device::device_rom_region() const { return ROM_NAME( ex800 ); } @@ -198,7 +198,7 @@ const tiny_rom_entry *epson_ex800_t::device_rom_region() const // ADDRESS_MAP( ex800_mem ) //------------------------------------------------- -static ADDRESS_MAP_START( ex800_mem, AS_PROGRAM, 8, epson_ex800_t ) +static ADDRESS_MAP_START( ex800_mem, AS_PROGRAM, 8, epson_ex800_device ) AM_RANGE(0x0000, 0x7fff) AM_ROM AM_REGION("maincpu", 0) AM_RANGE(0x8000, 0xbfff) AM_RAM /* external RAM */ AM_RANGE(0xc000, 0xc7ff) AM_MIRROR(0x1800) AM_READWRITE(devsel_r, devsel_w) @@ -219,12 +219,12 @@ static MACHINE_CONFIG_FRAGMENT( epson_ex800 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", UPD7810, 12000000) /* 12 MHz? */ MCFG_CPU_PROGRAM_MAP(ex800_mem) - MCFG_UPD7810_PORTA_READ_CB(READ8(epson_ex800_t, porta_r)) - MCFG_UPD7810_PORTA_WRITE_CB(WRITE8(epson_ex800_t, porta_w)) - MCFG_UPD7810_PORTB_READ_CB(READ8(epson_ex800_t, portb_r)) - MCFG_UPD7810_PORTB_WRITE_CB(WRITE8(epson_ex800_t, portb_w)) - MCFG_UPD7810_PORTC_READ_CB(READ8(epson_ex800_t, portc_r)) - MCFG_UPD7810_PORTC_WRITE_CB(WRITE8(epson_ex800_t, portc_w)) + MCFG_UPD7810_PORTA_READ_CB(READ8(epson_ex800_device, porta_r)) + MCFG_UPD7810_PORTA_WRITE_CB(WRITE8(epson_ex800_device, porta_w)) + MCFG_UPD7810_PORTB_READ_CB(READ8(epson_ex800_device, portb_r)) + MCFG_UPD7810_PORTB_WRITE_CB(WRITE8(epson_ex800_device, portb_w)) + MCFG_UPD7810_PORTC_READ_CB(READ8(epson_ex800_device, portc_r)) + MCFG_UPD7810_PORTC_WRITE_CB(WRITE8(epson_ex800_device, portc_w)) MCFG_DEFAULT_LAYOUT(layout_ex800) @@ -240,14 +240,14 @@ MACHINE_CONFIG_END // machine configurations //------------------------------------------------- -machine_config_constructor epson_ex800_t::device_mconfig_additions() const +machine_config_constructor epson_ex800_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( epson_ex800 ); } /* The ON LINE switch is directly connected to the INT1 input of the CPU */ -INPUT_CHANGED_MEMBER(epson_ex800_t::online_switch) +INPUT_CHANGED_MEMBER(epson_ex800_device::online_switch) { if (newval) { @@ -264,7 +264,7 @@ INPUT_CHANGED_MEMBER(epson_ex800_t::online_switch) INPUT_PORTS_START( epson_ex800 ) PORT_START("ONLISW") PORT_BIT(0xfe, IP_ACTIVE_HIGH, IPT_UNUSED) - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("ON LINE") PORT_CODE(KEYCODE_F9) PORT_CHANGED_MEMBER(DEVICE_SELF, epson_ex800_t, online_switch, nullptr) + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("ON LINE") PORT_CODE(KEYCODE_F9) PORT_CHANGED_MEMBER(DEVICE_SELF, epson_ex800_device, online_switch, nullptr) PORT_START("FEED") PORT_BIT(0xfc, IP_ACTIVE_LOW, IPT_UNUSED) @@ -337,7 +337,7 @@ INPUT_PORTS_END // input_ports - device-specific input ports //------------------------------------------------- -ioport_constructor epson_ex800_t::device_input_ports() const +ioport_constructor epson_ex800_device::device_input_ports() const { return INPUT_PORTS_NAME( epson_ex800 ); } @@ -349,11 +349,11 @@ ioport_constructor epson_ex800_t::device_input_ports() const //************************************************************************** //------------------------------------------------- -// epson_ex800_t - constructor +// epson_ex800_device - constructor //------------------------------------------------- -epson_ex800_t::epson_ex800_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, EPSON_EX800, "Epson EX-800", tag, owner, clock, "ex800", __FILE__), +epson_ex800_device::epson_ex800_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, EPSON_EX800, tag, owner, clock), device_centronics_peripheral_interface(mconfig, *this), m_maincpu(*this, "maincpu"), m_beeper(*this, "beeper"), m_irq_state(0) @@ -365,7 +365,7 @@ epson_ex800_t::epson_ex800_t(const machine_config &mconfig, const char *tag, dev // device_start - device-specific startup //------------------------------------------------- -void epson_ex800_t::device_start() +void epson_ex800_device::device_start() { m_irq_state = ASSERT_LINE; } @@ -375,32 +375,32 @@ void epson_ex800_t::device_start() // device_reset - device-specific reset //------------------------------------------------- -void epson_ex800_t::device_reset() +void epson_ex800_device::device_reset() { /* Setup beep */ m_beeper->set_state(0); } -READ8_MEMBER(epson_ex800_t::porta_r) +READ8_MEMBER(epson_ex800_device::porta_r) { logerror("PA R @%x\n", space.device().safe_pc()); return machine().rand(); } -READ8_MEMBER(epson_ex800_t::portb_r) +READ8_MEMBER(epson_ex800_device::portb_r) { logerror("PB R @%x\n", space.device().safe_pc()); return machine().rand(); } -READ8_MEMBER(epson_ex800_t::portc_r) +READ8_MEMBER(epson_ex800_device::portc_r) { logerror("PC R @%x\n", space.device().safe_pc()); return machine().rand(); } -WRITE8_MEMBER(epson_ex800_t::porta_w) +WRITE8_MEMBER(epson_ex800_device::porta_w) { if (PA6) logerror("BNK0 selected.\n"); if (PA7) logerror("BNK1 selected.\n"); @@ -408,7 +408,7 @@ WRITE8_MEMBER(epson_ex800_t::porta_w) logerror("PA W %x @%x\n", data, space.device().safe_pc()); } -WRITE8_MEMBER(epson_ex800_t::portb_w) +WRITE8_MEMBER(epson_ex800_device::portb_w) { if (data & 3) logerror("PB0/1 Line feed @%x\n", space.device().safe_pc()); @@ -432,7 +432,7 @@ WRITE8_MEMBER(epson_ex800_t::portb_w) // logerror("PB W %x @%x\n", data, space.device().safe_pc()); } -WRITE8_MEMBER(epson_ex800_t::portc_w) +WRITE8_MEMBER(epson_ex800_device::portc_w) { if (data & 0x80) m_beeper->set_state(0); @@ -445,46 +445,46 @@ WRITE8_MEMBER(epson_ex800_t::portc_w) /* Memory mapped I/O access */ -READ8_MEMBER(epson_ex800_t::devsel_r) +READ8_MEMBER(epson_ex800_device::devsel_r) { logerror("DEVSEL R @%x with offset %x\n", space.device().safe_pc(), offset); return machine().rand(); } -WRITE8_MEMBER(epson_ex800_t::devsel_w) +WRITE8_MEMBER(epson_ex800_device::devsel_w) { logerror("DEVSEL W %x @%x with offset %x\n", data, space.device().safe_pc(), offset); } -READ8_MEMBER(epson_ex800_t::gate5a_r) +READ8_MEMBER(epson_ex800_device::gate5a_r) { logerror("GATE5A R @%x with offset %x\n", space.device().safe_pc(), offset); return machine().rand(); } -WRITE8_MEMBER(epson_ex800_t::gate5a_w) +WRITE8_MEMBER(epson_ex800_device::gate5a_w) { logerror("GATE5A W %x @%x with offset %x\n", data, space.device().safe_pc(), offset); } -READ8_MEMBER(epson_ex800_t::iosel_r) +READ8_MEMBER(epson_ex800_device::iosel_r) { logerror("IOSEL R @%x with offset %x\n", space.device().safe_pc(), offset); return machine().rand(); } -WRITE8_MEMBER(epson_ex800_t::iosel_w) +WRITE8_MEMBER(epson_ex800_device::iosel_w) { logerror("IOSEL W %x @%x with offset %x\n", data, space.device().safe_pc(), offset); } -READ8_MEMBER(epson_ex800_t::gate7a_r) +READ8_MEMBER(epson_ex800_device::gate7a_r) { logerror("GATE7A R @%x with offset %x\n", space.device().safe_pc(), offset); return machine().rand(); } -WRITE8_MEMBER(epson_ex800_t::gate7a_w) +WRITE8_MEMBER(epson_ex800_device::gate7a_w) { logerror("GATE7A W %x @%x with offset %x\n", data, space.device().safe_pc(), offset); } diff --git a/src/devices/bus/centronics/epson_ex800.h b/src/devices/bus/centronics/epson_ex800.h index 133bdb39897..453670750d5 100644 --- a/src/devices/bus/centronics/epson_ex800.h +++ b/src/devices/bus/centronics/epson_ex800.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_CENTRONICS_EPSON_EX800_H +#define MAME_BUS_CENTRONICS_EPSON_EX800_H -#ifndef __EPSON_EX800__ -#define __EPSON_EX800__ +#pragma once #include "ctronics.h" #include "cpu/upd7810/upd7810.h" @@ -21,14 +21,14 @@ // TYPE DEFINITIONS //************************************************************************** -// ======================> epson_ex800_t +// ======================> epson_ex800_device -class epson_ex800_t : public device_t, +class epson_ex800_device : public device_t, public device_centronics_peripheral_interface { public: // construction/destruction - epson_ex800_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + epson_ex800_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual const tiny_rom_entry *device_rom_region() const override; @@ -67,8 +67,8 @@ private: // device type definition -extern const device_type EPSON_EX800; +DECLARE_DEVICE_TYPE(EPSON_EX800, epson_ex800_device) -#endif +#endif // MAME_BUS_CENTRONICS_EPSON_EX800_H diff --git a/src/devices/bus/centronics/epson_lx800.cpp b/src/devices/bus/centronics/epson_lx800.cpp index 7870d3c72da..38be060268e 100644 --- a/src/devices/bus/centronics/epson_lx800.cpp +++ b/src/devices/bus/centronics/epson_lx800.cpp @@ -25,7 +25,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type EPSON_LX800 = device_creator; +DEFINE_DEVICE_TYPE(EPSON_LX800, epson_lx800_device, "lx800", "Epson LX-800") //------------------------------------------------- @@ -42,7 +42,7 @@ ROM_END // rom_region - device-specific ROM region //------------------------------------------------- -const tiny_rom_entry *epson_lx800_t::device_rom_region() const +const tiny_rom_entry *epson_lx800_device::device_rom_region() const { return ROM_NAME( lx800 ); } @@ -52,7 +52,7 @@ const tiny_rom_entry *epson_lx800_t::device_rom_region() const // ADDRESS_MAP( lx800_mem ) //------------------------------------------------- -static ADDRESS_MAP_START( lx800_mem, AS_PROGRAM, 8, epson_lx800_t ) +static ADDRESS_MAP_START( lx800_mem, AS_PROGRAM, 8, epson_lx800_device ) AM_RANGE(0x0000, 0x7fff) AM_ROM /* 32k firmware */ AM_RANGE(0x8000, 0x9fff) AM_RAM /* 8k external RAM */ AM_RANGE(0xa000, 0xbfff) AM_NOP /* not used */ @@ -70,17 +70,17 @@ static MACHINE_CONFIG_FRAGMENT( epson_lx800 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", UPD7810, XTAL_14_7456MHz) MCFG_CPU_PROGRAM_MAP(lx800_mem) - MCFG_UPD7810_PORTA_READ_CB(READ8(epson_lx800_t, porta_r)) - MCFG_UPD7810_PORTA_WRITE_CB(WRITE8(epson_lx800_t, porta_w)) + MCFG_UPD7810_PORTA_READ_CB(READ8(epson_lx800_device, porta_r)) + MCFG_UPD7810_PORTA_WRITE_CB(WRITE8(epson_lx800_device, porta_w)) MCFG_UPD7810_PORTB_READ_CB(IOPORT("DIPSW1")) - MCFG_UPD7810_PORTC_READ_CB(READ8(epson_lx800_t, portc_r)) - MCFG_UPD7810_PORTC_WRITE_CB(WRITE8(epson_lx800_t, portc_w)) - MCFG_UPD7810_AN0(READLINE(epson_lx800_t, an0_r)) - MCFG_UPD7810_AN1(READLINE(epson_lx800_t, an1_r)) - MCFG_UPD7810_AN2(READLINE(epson_lx800_t, an2_r)) - MCFG_UPD7810_AN3(READLINE(epson_lx800_t, an3_r)) - MCFG_UPD7810_AN4(READLINE(epson_lx800_t, an4_r)) - MCFG_UPD7810_AN5(READLINE(epson_lx800_t, an5_r)) + MCFG_UPD7810_PORTC_READ_CB(READ8(epson_lx800_device, portc_r)) + MCFG_UPD7810_PORTC_WRITE_CB(WRITE8(epson_lx800_device, portc_w)) + MCFG_UPD7810_AN0(READLINE(epson_lx800_device, an0_r)) + MCFG_UPD7810_AN1(READLINE(epson_lx800_device, an1_r)) + MCFG_UPD7810_AN2(READLINE(epson_lx800_device, an2_r)) + MCFG_UPD7810_AN3(READLINE(epson_lx800_device, an3_r)) + MCFG_UPD7810_AN4(READLINE(epson_lx800_device, an4_r)) + MCFG_UPD7810_AN5(READLINE(epson_lx800_device, an5_r)) MCFG_DEFAULT_LAYOUT(layout_lx800) @@ -91,10 +91,10 @@ static MACHINE_CONFIG_FRAGMENT( epson_lx800 ) /* gate array */ MCFG_DEVICE_ADD("ic3b", E05A03, 0) - MCFG_E05A03_PE_LP_CALLBACK(WRITELINE(epson_lx800_t, paperempty_led_w)) - MCFG_E05A03_RESO_CALLBACK(WRITELINE(epson_lx800_t, reset_w)) - MCFG_E05A03_PE_CALLBACK(WRITELINE(epson_lx800_t, centronics_pe_w)) - MCFG_E05A03_DATA_CALLBACK(READ8(epson_lx800_t, centronics_data_r)) + MCFG_E05A03_PE_LP_CALLBACK(WRITELINE(epson_lx800_device, paperempty_led_w)) + MCFG_E05A03_RESO_CALLBACK(WRITELINE(epson_lx800_device, reset_w)) + MCFG_E05A03_PE_CALLBACK(WRITELINE(epson_lx800_device, centronics_pe_w)) + MCFG_E05A03_DATA_CALLBACK(READ8(epson_lx800_device, centronics_data_r)) MACHINE_CONFIG_END @@ -103,7 +103,7 @@ MACHINE_CONFIG_END // machine configurations //------------------------------------------------- -machine_config_constructor epson_lx800_t::device_mconfig_additions() const +machine_config_constructor epson_lx800_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( epson_lx800 ); } @@ -179,7 +179,7 @@ INPUT_PORTS_END // input_ports - device-specific input ports //------------------------------------------------- -ioport_constructor epson_lx800_t::device_input_ports() const +ioport_constructor epson_lx800_device::device_input_ports() const { return INPUT_PORTS_NAME( epson_lx800 ); } @@ -191,19 +191,19 @@ ioport_constructor epson_lx800_t::device_input_ports() const //************************************************************************** //------------------------------------------------- -// epson_lx800_t - constructor +// epson_lx800_device - constructor //------------------------------------------------- -epson_lx800_t::epson_lx800_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, EPSON_LX800, "Epson LX-800", tag, owner, clock, "lx800", __FILE__), +epson_lx800_device::epson_lx800_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, EPSON_LX800, tag, owner, clock), device_centronics_peripheral_interface(mconfig, *this), m_maincpu(*this, "maincpu"), m_beep(*this, "beeper") { } -epson_lx800_t::epson_lx800_t(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, __FILE__), +epson_lx800_device::epson_lx800_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), device_centronics_peripheral_interface(mconfig, *this), m_maincpu(*this, "maincpu"), m_beep(*this, "beeper") @@ -215,7 +215,7 @@ epson_lx800_t::epson_lx800_t(const machine_config &mconfig, device_type type, co // device_start - device-specific startup //------------------------------------------------- -void epson_lx800_t::device_start() +void epson_lx800_device::device_start() { } @@ -224,7 +224,7 @@ void epson_lx800_t::device_start() // device_reset - device-specific reset //------------------------------------------------- -void epson_lx800_t::device_reset() +void epson_lx800_device::device_reset() { m_beep->set_state(0); } @@ -243,7 +243,7 @@ void epson_lx800_t::device_reset() * PA6 not used * PA7 R P/S P/S signal from the optional interface */ -READ8_MEMBER( epson_lx800_t::porta_r ) +READ8_MEMBER( epson_lx800_device::porta_r ) { uint8_t result = 0; @@ -258,7 +258,7 @@ READ8_MEMBER( epson_lx800_t::porta_r ) return result; } -WRITE8_MEMBER( epson_lx800_t::porta_w ) +WRITE8_MEMBER( epson_lx800_device::porta_w ) { logerror("%s: lx800_porta_w(%02x): %02x\n", machine().describe_context(), offset, data); logerror("--> carriage: %d, paper feed: %d\n", BIT(data, 0), BIT(data, 2)); @@ -273,7 +273,7 @@ WRITE8_MEMBER( epson_lx800_t::porta_w ) * PC6 W FIRE drive pulse width signal * PC7 W BUZZER buzzer signal */ -READ8_MEMBER( epson_lx800_t::portc_r ) +READ8_MEMBER( epson_lx800_device::portc_r ) { uint8_t result = 0; @@ -284,7 +284,7 @@ READ8_MEMBER( epson_lx800_t::portc_r ) return result; } -WRITE8_MEMBER( epson_lx800_t::portc_w ) +WRITE8_MEMBER( epson_lx800_device::portc_w ) { logerror("%s: lx800_portc_w(%02x): %02x\n", machine().describe_context(), offset, data); logerror("--> err: %d, ack: %d, fire: %d, buzzer: %d\n", BIT(data, 4), BIT(data, 5), BIT(data, 6), BIT(data, 7)); @@ -293,32 +293,32 @@ WRITE8_MEMBER( epson_lx800_t::portc_w ) m_beep->set_state(!BIT(data, 7)); } -READ_LINE_MEMBER( epson_lx800_t::an0_r ) +READ_LINE_MEMBER( epson_lx800_device::an0_r ) { return BIT(ioport("DIPSW2")->read(), 0); } -READ_LINE_MEMBER( epson_lx800_t::an1_r ) +READ_LINE_MEMBER( epson_lx800_device::an1_r ) { return BIT(ioport("DIPSW2")->read(), 1); } -READ_LINE_MEMBER( epson_lx800_t::an2_r ) +READ_LINE_MEMBER( epson_lx800_device::an2_r ) { return BIT(ioport("DIPSW2")->read(), 2); } -READ_LINE_MEMBER( epson_lx800_t::an3_r ) +READ_LINE_MEMBER( epson_lx800_device::an3_r ) { return BIT(ioport("DIPSW2")->read(), 3); // can also read an external line AUTO_FEED_XT } -READ_LINE_MEMBER( epson_lx800_t::an4_r ) +READ_LINE_MEMBER( epson_lx800_device::an4_r ) { return 0; // Printer select line (0=always selected) } -READ_LINE_MEMBER( epson_lx800_t::an5_r ) +READ_LINE_MEMBER( epson_lx800_device::an5_r ) { return 1; // Monitors 24v line, should return 4.08 volts } @@ -328,24 +328,24 @@ READ_LINE_MEMBER( epson_lx800_t::an5_r ) GATE ARRAY ***************************************************************************/ -READ8_MEMBER( epson_lx800_t::centronics_data_r ) +READ8_MEMBER( epson_lx800_device::centronics_data_r ) { logerror("centronics: data read\n"); return 0x55; } -WRITE_LINE_MEMBER( epson_lx800_t::centronics_pe_w ) +WRITE_LINE_MEMBER( epson_lx800_device::centronics_pe_w ) { logerror("centronics: pe = %d\n", state); } -WRITE_LINE_MEMBER( epson_lx800_t::paperempty_led_w ) +WRITE_LINE_MEMBER( epson_lx800_device::paperempty_led_w ) { logerror("setting paperout led: %d\n", state); machine().output().set_value("paperout_led", state); } -WRITE_LINE_MEMBER( epson_lx800_t::reset_w ) +WRITE_LINE_MEMBER( epson_lx800_device::reset_w ) { logerror("cpu reset"); m_maincpu->reset(); diff --git a/src/devices/bus/centronics/epson_lx800.h b/src/devices/bus/centronics/epson_lx800.h index 740a9a248d1..2cf67beb9eb 100644 --- a/src/devices/bus/centronics/epson_lx800.h +++ b/src/devices/bus/centronics/epson_lx800.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_CENTRONICS_EPSON_LX800_H +#define MAME_BUS_CENTRONICS_EPSON_LX800_H -#ifndef __EPSON_LX800__ -#define __EPSON_LX800__ +#pragma once #include "ctronics.h" #include "cpu/upd7810/upd7810.h" @@ -22,15 +22,14 @@ // TYPE DEFINITIONS //************************************************************************** -// ======================> epson_lx800_t +// ======================> epson_lx800_device -class epson_lx800_t : public device_t, +class epson_lx800_device : public device_t, public device_centronics_peripheral_interface { public: // construction/destruction - epson_lx800_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - epson_lx800_t(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); + epson_lx800_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual const tiny_rom_entry *device_rom_region() const override; @@ -53,6 +52,8 @@ public: DECLARE_READ_LINE_MEMBER(an5_r); protected: + epson_lx800_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -65,8 +66,8 @@ private: // device type definition -extern const device_type EPSON_LX800; +DECLARE_DEVICE_TYPE(EPSON_LX800, epson_lx800_device) -#endif +#endif // MAME_BUS_CENTRONICS_EPSON_LX800_H diff --git a/src/devices/bus/centronics/epson_lx810l.cpp b/src/devices/bus/centronics/epson_lx810l.cpp index 1d288e41bff..b87609e685a 100644 --- a/src/devices/bus/centronics/epson_lx810l.cpp +++ b/src/devices/bus/centronics/epson_lx810l.cpp @@ -43,8 +43,8 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type EPSON_LX810L = device_creator; -const device_type EPSON_AP2000 = device_creator; +DEFINE_DEVICE_TYPE(EPSON_LX810L, epson_lx810l_device, "lx810l", "Espon LX-810L") +DEFINE_DEVICE_TYPE(EPSON_AP2000, epson_ap2000_device, "ap2000", "Epson ActionPrinter 2000") //------------------------------------------------- @@ -75,7 +75,7 @@ ROM_END // rom_region - device-specific ROM region //------------------------------------------------- -const tiny_rom_entry *epson_lx810l_t::device_rom_region() const +const tiny_rom_entry *epson_lx810l_device::device_rom_region() const { return ROM_NAME( lx810l ); } @@ -85,7 +85,7 @@ const tiny_rom_entry *epson_lx810l_t::device_rom_region() const // rom_region - device-specific ROM region //------------------------------------------------- -const tiny_rom_entry *epson_ap2000_t::device_rom_region() const +const tiny_rom_entry *epson_ap2000_device::device_rom_region() const { return ROM_NAME( ap2000 ); } @@ -95,7 +95,7 @@ const tiny_rom_entry *epson_ap2000_t::device_rom_region() const // ADDRESS_MAP( lx810l_mem ) //------------------------------------------------- -static ADDRESS_MAP_START( lx810l_mem, AS_PROGRAM, 8, epson_lx810l_t ) +static ADDRESS_MAP_START( lx810l_mem, AS_PROGRAM, 8, epson_lx810l_device ) AM_RANGE(0x0000, 0x7fff) AM_ROM /* 32k firmware */ AM_RANGE(0x8000, 0x9fff) AM_RAM /* 8k external RAM */ AM_RANGE(0xa000, 0xbfff) AM_READWRITE(fakemem_r, fakemem_w) /* fake memory, write one, set all */ @@ -113,21 +113,21 @@ static MACHINE_CONFIG_FRAGMENT( epson_lx810l ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", UPD7810, XTAL_14_7456MHz) MCFG_CPU_PROGRAM_MAP(lx810l_mem) - MCFG_UPD7810_PORTA_READ_CB(READ8(epson_lx810l_t, porta_r)) - MCFG_UPD7810_PORTA_WRITE_CB(WRITE8(epson_lx810l_t, porta_w)) - MCFG_UPD7810_PORTB_READ_CB(READ8(epson_lx810l_t, portb_r)) - MCFG_UPD7810_PORTB_WRITE_CB(WRITE8(epson_lx810l_t, portb_w)) - MCFG_UPD7810_PORTC_READ_CB(READ8(epson_lx810l_t, portc_r)) - MCFG_UPD7810_PORTC_WRITE_CB(WRITE8(epson_lx810l_t, portc_w)) - MCFG_UPD7810_AN0(READ8(epson_lx810l_t, an0_r)) - MCFG_UPD7810_AN1(READ8(epson_lx810l_t, an1_r)) - MCFG_UPD7810_AN2(READ8(epson_lx810l_t, an2_r)) - MCFG_UPD7810_AN3(READ8(epson_lx810l_t, an3_r)) - MCFG_UPD7810_AN4(READ8(epson_lx810l_t, an4_r)) - MCFG_UPD7810_AN5(READ8(epson_lx810l_t, an5_r)) - MCFG_UPD7810_AN6(READ8(epson_lx810l_t, an6_r)) - MCFG_UPD7810_AN7(READ8(epson_lx810l_t, an7_r)) - MCFG_UPD7810_CO0(WRITELINE(epson_lx810l_t, co0_w)) + MCFG_UPD7810_PORTA_READ_CB(READ8(epson_lx810l_device, porta_r)) + MCFG_UPD7810_PORTA_WRITE_CB(WRITE8(epson_lx810l_device, porta_w)) + MCFG_UPD7810_PORTB_READ_CB(READ8(epson_lx810l_device, portb_r)) + MCFG_UPD7810_PORTB_WRITE_CB(WRITE8(epson_lx810l_device, portb_w)) + MCFG_UPD7810_PORTC_READ_CB(READ8(epson_lx810l_device, portc_r)) + MCFG_UPD7810_PORTC_WRITE_CB(WRITE8(epson_lx810l_device, portc_w)) + MCFG_UPD7810_AN0(READ8(epson_lx810l_device, an0_r)) + MCFG_UPD7810_AN1(READ8(epson_lx810l_device, an1_r)) + MCFG_UPD7810_AN2(READ8(epson_lx810l_device, an2_r)) + MCFG_UPD7810_AN3(READ8(epson_lx810l_device, an3_r)) + MCFG_UPD7810_AN4(READ8(epson_lx810l_device, an4_r)) + MCFG_UPD7810_AN5(READ8(epson_lx810l_device, an5_r)) + MCFG_UPD7810_AN6(READ8(epson_lx810l_device, an6_r)) + MCFG_UPD7810_AN7(READ8(epson_lx810l_device, an7_r)) + MCFG_UPD7810_CO0(WRITELINE(epson_lx810l_device, co0_w)) MCFG_UPD7810_CO1(DEVWRITELINE("dac", dac_bit_interface, write)) // MCFG_DEFAULT_LAYOUT(layout_lx800) @@ -138,7 +138,7 @@ static MACHINE_CONFIG_FRAGMENT( epson_lx810l ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(PAPER_WIDTH, PAPER_HEIGHT) MCFG_SCREEN_VISIBLE_AREA(0, PAPER_WIDTH-1, 0, PAPER_HEIGHT-1) - MCFG_SCREEN_UPDATE_DRIVER(epson_lx810l_t, screen_update_lx810l) + MCFG_SCREEN_UPDATE_DRIVER(epson_lx810l_device, screen_update_lx810l) /* audio hardware */ MCFG_SPEAKER_STANDARD_MONO("speaker") @@ -148,15 +148,15 @@ static MACHINE_CONFIG_FRAGMENT( epson_lx810l ) /* gate array */ MCFG_DEVICE_ADD("e05a30", E05A30, 0) - MCFG_E05A30_PRINTHEAD_CALLBACK(WRITE16(epson_lx810l_t, printhead)) - MCFG_E05A30_PF_STEPPER_CALLBACK(WRITE8(epson_lx810l_t, pf_stepper)) - MCFG_E05A30_CR_STEPPER_CALLBACK(WRITE8(epson_lx810l_t, cr_stepper)) - MCFG_E05A30_READY_CALLBACK(WRITELINE(epson_lx810l_t, e05a30_ready)) - MCFG_E05A30_CENTRONICS_ACK_CALLBACK(WRITELINE(epson_lx810l_t, e05a30_centronics_ack)) - MCFG_E05A30_CENTRONICS_BUSY_CALLBACK(WRITELINE(epson_lx810l_t, e05a30_centronics_busy)) - MCFG_E05A30_CENTRONICS_PERROR_CALLBACK(WRITELINE(epson_lx810l_t, e05a30_centronics_perror)) - MCFG_E05A30_CENTRONICS_FAULT_CALLBACK(WRITELINE(epson_lx810l_t, e05a30_centronics_fault)) - MCFG_E05A30_CENTRONICS_SELECT_CALLBACK(WRITELINE(epson_lx810l_t, e05a30_centronics_select)) + MCFG_E05A30_PRINTHEAD_CALLBACK(WRITE16(epson_lx810l_device, printhead)) + MCFG_E05A30_PF_STEPPER_CALLBACK(WRITE8(epson_lx810l_device, pf_stepper)) + MCFG_E05A30_CR_STEPPER_CALLBACK(WRITE8(epson_lx810l_device, cr_stepper)) + MCFG_E05A30_READY_CALLBACK(WRITELINE(epson_lx810l_device, e05a30_ready)) + MCFG_E05A30_CENTRONICS_ACK_CALLBACK(WRITELINE(epson_lx810l_device, e05a30_centronics_ack)) + MCFG_E05A30_CENTRONICS_BUSY_CALLBACK(WRITELINE(epson_lx810l_device, e05a30_centronics_busy)) + MCFG_E05A30_CENTRONICS_PERROR_CALLBACK(WRITELINE(epson_lx810l_device, e05a30_centronics_perror)) + MCFG_E05A30_CENTRONICS_FAULT_CALLBACK(WRITELINE(epson_lx810l_device, e05a30_centronics_fault)) + MCFG_E05A30_CENTRONICS_SELECT_CALLBACK(WRITELINE(epson_lx810l_device, e05a30_centronics_select)) /* 256-bit eeprom */ MCFG_EEPROM_SERIAL_93C06_ADD("eeprom") @@ -177,7 +177,7 @@ MACHINE_CONFIG_END // machine configurations //------------------------------------------------- -machine_config_constructor epson_lx810l_t::device_mconfig_additions() const +machine_config_constructor epson_lx810l_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( epson_lx810l ); } @@ -191,7 +191,7 @@ static INPUT_PORTS_START( epson_lx810l ) /* Buttons on printer */ PORT_START("ONLINE") - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("On Line") PORT_CODE(KEYCODE_O) PORT_CHANGED_MEMBER(DEVICE_SELF, epson_lx810l_t, online_sw, nullptr) + PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("On Line") PORT_CODE(KEYCODE_O) PORT_CHANGED_MEMBER(DEVICE_SELF, epson_lx810l_device, online_sw, nullptr) PORT_START("FORMFEED") PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Form Feed") PORT_CODE(KEYCODE_F) PORT_TOGGLE PORT_START("LINEFEED") @@ -265,12 +265,12 @@ INPUT_PORTS_END // input_ports - device-specific input ports //------------------------------------------------- -ioport_constructor epson_lx810l_t::device_input_ports() const +ioport_constructor epson_lx810l_device::device_input_ports() const { return INPUT_PORTS_NAME( epson_lx810l ); } -INPUT_CHANGED_MEMBER(epson_lx810l_t::online_sw) +INPUT_CHANGED_MEMBER(epson_lx810l_device::online_sw) { m_maincpu->set_input_line(UPD7810_INTF2, newval ? CLEAR_LINE : ASSERT_LINE); } @@ -281,31 +281,16 @@ INPUT_CHANGED_MEMBER(epson_lx810l_t::online_sw) //************************************************************************** //------------------------------------------------- -// epson_lx810l_t - constructor +// epson_lx810l_device - constructor //------------------------------------------------- -epson_lx810l_t::epson_lx810l_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, EPSON_LX810L, "Epson LX-810L", tag, owner, clock, "lx810l", __FILE__), - device_centronics_peripheral_interface(mconfig, *this), - m_maincpu(*this, "maincpu"), - m_pf_stepper(*this, "pf_stepper"), - m_cr_stepper(*this, "cr_stepper"), - m_eeprom(*this, "eeprom"), - m_e05a30(*this, "e05a30"), - m_screen(*this, "screen"), - m_93c06_clk(0), - m_93c06_cs(0), - m_printhead(0), - m_pf_pos_abs(1), - m_cr_pos_abs(1), - m_real_cr_pos(1), - m_real_cr_steps(0), - m_real_cr_dir(0), m_fakemem(0) +epson_lx810l_device::epson_lx810l_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + epson_lx810l_device(mconfig, EPSON_LX810L, tag, owner, clock) { } -epson_lx810l_t::epson_lx810l_t(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, __FILE__), +epson_lx810l_device::epson_lx810l_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), device_centronics_peripheral_interface(mconfig, *this), m_maincpu(*this, "maincpu"), m_pf_stepper(*this, "pf_stepper"), @@ -324,8 +309,8 @@ epson_lx810l_t::epson_lx810l_t(const machine_config &mconfig, device_type type, { } -epson_ap2000_t::epson_ap2000_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : epson_lx810l_t(mconfig, EPSON_AP2000, "Epson ActionPrinter 2000", tag, owner, clock, "ap2000", __FILE__) +epson_ap2000_device::epson_ap2000_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : epson_lx810l_device(mconfig, EPSON_AP2000, tag, owner, clock) { } @@ -336,7 +321,7 @@ epson_ap2000_t::epson_ap2000_t(const machine_config &mconfig, const char *tag, d -void epson_lx810l_t::device_start() +void epson_lx810l_device::device_start() { machine().first_screen()->register_screen_bitmap(m_bitmap); m_bitmap.fill(0xffffff); /* Start with a clean white piece of paper */ @@ -347,7 +332,7 @@ void epson_lx810l_t::device_start() // device_reset - device-specific reset //------------------------------------------------- -void epson_lx810l_t::device_reset() +void epson_lx810l_device::device_reset() { } @@ -356,7 +341,7 @@ void epson_lx810l_t::device_reset() // device_timer - device-specific timer //------------------------------------------------- -void epson_lx810l_t::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) +void epson_lx810l_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) { switch (id) { case TIMER_CR: @@ -379,12 +364,12 @@ void epson_lx810l_t::device_timer(emu_timer &timer, device_timer_id id, int para FAKEMEM READ/WRITE ***************************************************************************/ -READ8_MEMBER(epson_lx810l_t::fakemem_r) +READ8_MEMBER(epson_lx810l_device::fakemem_r) { return m_fakemem; } -WRITE8_MEMBER(epson_lx810l_t::fakemem_w) +WRITE8_MEMBER(epson_lx810l_device::fakemem_w) { m_fakemem = data; } @@ -404,7 +389,7 @@ WRITE8_MEMBER(epson_lx810l_t::fakemem_w) * PA6 R Line Feed SWITCH * PA7 R Form Feed SWITCH */ -READ8_MEMBER( epson_lx810l_t::porta_r ) +READ8_MEMBER( epson_lx810l_device::porta_r ) { uint8_t result = 0; uint8_t hp_sensor = m_cr_pos_abs <= 0 ? 0 : 1; @@ -420,7 +405,7 @@ READ8_MEMBER( epson_lx810l_t::porta_r ) return result; } -WRITE8_MEMBER( epson_lx810l_t::porta_w ) +WRITE8_MEMBER( epson_lx810l_device::porta_w ) { LX810LLOG("%s: lx810l_PA_w(%02x): %02x: stepper vref %d\n", machine().describe_context(), offset, data, BIT(data, 3) | (BIT(data, 4)<<1) | (BIT(data, 5)<<2)); } @@ -435,7 +420,7 @@ WRITE8_MEMBER( epson_lx810l_t::porta_w ) * PB6 R DIP1.6 * PB7 R DIP1.7 */ -READ8_MEMBER( epson_lx810l_t::portb_r ) +READ8_MEMBER( epson_lx810l_device::portb_r ) { uint8_t result = ~ioport("DIPSW1")->read(); @@ -451,7 +436,7 @@ READ8_MEMBER( epson_lx810l_t::portb_r ) return result; } -WRITE8_MEMBER( epson_lx810l_t::portb_w ) +WRITE8_MEMBER( epson_lx810l_device::portb_w ) { uint8_t data_in = BIT(data, 1); @@ -472,7 +457,7 @@ WRITE8_MEMBER( epson_lx810l_t::portb_w ) * PC6 W FIRE drive pulse width signal, also E05A30.57 * PC7 W BUZZER buzzer signal */ -READ8_MEMBER( epson_lx810l_t::portc_r ) +READ8_MEMBER( epson_lx810l_device::portc_r ) { uint8_t result = 0; @@ -486,7 +471,7 @@ READ8_MEMBER( epson_lx810l_t::portc_r ) return result; } -WRITE8_MEMBER( epson_lx810l_t::portc_w ) +WRITE8_MEMBER( epson_lx810l_device::portc_w ) { /* ioport("serial")->write(BIT(data, 0)); */ @@ -506,12 +491,12 @@ WRITE8_MEMBER( epson_lx810l_t::portc_w ) GATE ARRAY ***************************************************************************/ -WRITE16_MEMBER( epson_lx810l_t::printhead ) +WRITE16_MEMBER( epson_lx810l_device::printhead ) { m_printhead = data; } -WRITE8_MEMBER( epson_lx810l_t::pf_stepper ) +WRITE8_MEMBER( epson_lx810l_device::pf_stepper ) { int changed = m_pf_stepper->update(data); m_pf_pos_abs = -m_pf_stepper->get_absolute_position(); @@ -525,7 +510,7 @@ WRITE8_MEMBER( epson_lx810l_t::pf_stepper ) LX810LLOG("%s: %s(%02x); abs %d\n", machine().describe_context(), __func__, data, m_pf_pos_abs); } -WRITE8_MEMBER( epson_lx810l_t::cr_stepper ) +WRITE8_MEMBER( epson_lx810l_device::cr_stepper ) { int m_cr_pos_abs_prev = m_cr_pos_abs; @@ -547,7 +532,7 @@ WRITE8_MEMBER( epson_lx810l_t::cr_stepper ) LX810LLOG("%s: %s(%02x); abs %d\n", machine().describe_context(), __func__, data, m_cr_pos_abs); } -WRITE_LINE_MEMBER( epson_lx810l_t::e05a30_ready ) +WRITE_LINE_MEMBER( epson_lx810l_device::e05a30_ready ) { m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE); } @@ -557,7 +542,7 @@ WRITE_LINE_MEMBER( epson_lx810l_t::e05a30_ready ) Video hardware (simulates paper) ***************************************************************************/ -uint32_t epson_lx810l_t::screen_update_lx810l(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) +uint32_t epson_lx810l_device::screen_update_lx810l(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { int scrolly = -bitmap_line(9); copyscrollbitmap(bitmap, m_bitmap, 0, nullptr, 1, &scrolly, cliprect); @@ -573,7 +558,7 @@ uint32_t epson_lx810l_t::screen_update_lx810l(screen_device &screen, bitmap_rgb3 Extended Timer Output ***************************************************************************/ -WRITE_LINE_MEMBER( epson_lx810l_t::co0_w ) +WRITE_LINE_MEMBER( epson_lx810l_device::co0_w ) { /* Printhead is being fired on !state. */ if (!state) { @@ -603,47 +588,47 @@ WRITE_LINE_MEMBER( epson_lx810l_t::co0_w ) ADC ***************************************************************************/ -READ8_MEMBER(epson_lx810l_t::an0_r) +READ8_MEMBER(epson_lx810l_device::an0_r) { uint8_t res = !!(ioport("DIPSW2")->read() & 0x01); return res - 1; /* DIPSW2.1 */ } -READ8_MEMBER(epson_lx810l_t::an1_r) +READ8_MEMBER(epson_lx810l_device::an1_r) { uint8_t res = !!(ioport("DIPSW2")->read() & 0x02); return res - 1; /* DIPSW2.2 */ } -READ8_MEMBER(epson_lx810l_t::an2_r) +READ8_MEMBER(epson_lx810l_device::an2_r) { uint8_t res = !!(ioport("DIPSW2")->read() & 0x04); return res - 1; /* DIPSW2.3 */ } -READ8_MEMBER(epson_lx810l_t::an3_r) +READ8_MEMBER(epson_lx810l_device::an3_r) { uint8_t res = !!(ioport("DIPSW2")->read() & 0x08); return res - 1; /* DIPSW2.4 */ } -READ8_MEMBER(epson_lx810l_t::an4_r) +READ8_MEMBER(epson_lx810l_device::an4_r) { return 0xff; } -READ8_MEMBER(epson_lx810l_t::an5_r) +READ8_MEMBER(epson_lx810l_device::an5_r) { return 0xCB; /* motor voltage, 0xcb = 24V */ } -READ8_MEMBER(epson_lx810l_t::an6_r) +READ8_MEMBER(epson_lx810l_device::an6_r) { uint8_t res = !ioport("LOADEJECT")->read(); return res - 1; } -READ8_MEMBER(epson_lx810l_t::an7_r) +READ8_MEMBER(epson_lx810l_device::an7_r) { return 0xff; } diff --git a/src/devices/bus/centronics/epson_lx810l.h b/src/devices/bus/centronics/epson_lx810l.h index c20041b821e..429266de8e4 100644 --- a/src/devices/bus/centronics/epson_lx810l.h +++ b/src/devices/bus/centronics/epson_lx810l.h @@ -5,10 +5,10 @@ * */ -#pragma once +#ifndef MAME_BUS_CENTRONICS_EPSON_LX810L_H +#define MAME_BUS_CENTRONICS_EPSON_LX810L_H -#ifndef __EPSON_LX810L__ -#define __EPSON_LX810L__ +#pragma once #include "ctronics.h" #include "cpu/upd7810/upd7810.h" @@ -33,18 +33,13 @@ // TYPE DEFINITIONS //************************************************************************** -// ======================> epson_lx810l_t +// ======================> epson_lx810l_device -class epson_lx810l_t : public device_t, - public device_centronics_peripheral_interface +class epson_lx810l_device : public device_t, public device_centronics_peripheral_interface { public: // construction/destruction - epson_lx810l_t(const machine_config &mconfig, const char *tag, - device_t *owner, uint32_t clock); - epson_lx810l_t(const machine_config &mconfig, device_type type, - const char *name, const char *tag, device_t *owner, - uint32_t clock, const char *shortname, const char *source); + epson_lx810l_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual const tiny_rom_entry *device_rom_region() const override; @@ -106,6 +101,8 @@ public: unsigned int bitmap_line(int i) { return ((uabs(m_pf_pos_abs) / 6) + i) % m_bitmap.height(); } protected: + epson_lx810l_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -137,11 +134,11 @@ private: // ======================> epson_ap2000_t -class epson_ap2000_t : public epson_lx810l_t +class epson_ap2000_device : public epson_lx810l_device { public: // construction/destruction - epson_ap2000_t(const machine_config &mconfig, const char *tag, + epson_ap2000_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides @@ -150,7 +147,7 @@ public: // device type definition -extern const device_type EPSON_LX810L; -extern const device_type EPSON_AP2000; +DECLARE_DEVICE_TYPE(EPSON_LX810L, epson_lx810l_device) +DECLARE_DEVICE_TYPE(EPSON_AP2000, epson_ap2000_device) -#endif +#endif // MAME_BUS_CENTRONICS_EPSON_LX810L_H diff --git a/src/devices/bus/centronics/nec_p72.cpp b/src/devices/bus/centronics/nec_p72.cpp index 1e0cbbc985a..f9f8dc6a089 100644 --- a/src/devices/bus/centronics/nec_p72.cpp +++ b/src/devices/bus/centronics/nec_p72.cpp @@ -9,7 +9,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type NEC_P72 = device_creator; +DEFINE_DEVICE_TYPE(NEC_P72, nec_p72_device, "p72", "NEC PinWriter P72") //------------------------------------------------- @@ -26,7 +26,7 @@ ROM_END // rom_region - device-specific ROM region //------------------------------------------------- -const tiny_rom_entry *nec_p72_t::device_rom_region() const +const tiny_rom_entry *nec_p72_device::device_rom_region() const { return ROM_NAME( p72 ); } @@ -36,7 +36,7 @@ const tiny_rom_entry *nec_p72_t::device_rom_region() const // ADDRESS_MAP( p72_mem ) //------------------------------------------------- -static ADDRESS_MAP_START( p72_mem, AS_PROGRAM, 16, nec_p72_t ) +static ADDRESS_MAP_START( p72_mem, AS_PROGRAM, 16, nec_p72_device ) AM_RANGE(0x000000, 0x0fffff) AM_ROM /* 1Mbyte firmware */ //AM_RANGE(0x100000, 0x1fffff) AM_RAM /* 1Mbyte external RAM */ /* TODO might be 2x1Mbit */ // [RH] 29 August 2016: Commented out because the NEC V33 only has 20 address lines, and @@ -60,7 +60,7 @@ MACHINE_CONFIG_END // machine configurations //------------------------------------------------- -machine_config_constructor nec_p72_t::device_mconfig_additions() const +machine_config_constructor nec_p72_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( nec_p72 ); } @@ -70,7 +70,7 @@ machine_config_constructor nec_p72_t::device_mconfig_additions() const // device_start - device-specific startup //------------------------------------------------- -void nec_p72_t::device_start() +void nec_p72_device::device_start() { } @@ -79,18 +79,16 @@ void nec_p72_t::device_start() //************************************************************************** //------------------------------------------------- -// nec_p72_t - constructor +// nec_p72_device - constructor //------------------------------------------------- -nec_p72_t::nec_p72_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, NEC_P72, "NEC PinWrite P72", tag, owner, clock, "p72", __FILE__), - device_centronics_peripheral_interface(mconfig, *this), - m_maincpu(*this, "maincpu") +nec_p72_device::nec_p72_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + nec_p72_device(mconfig, NEC_P72, tag, owner, clock) { } -nec_p72_t::nec_p72_t(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, __FILE__), +nec_p72_device::nec_p72_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), device_centronics_peripheral_interface(mconfig, *this), m_maincpu(*this, "maincpu") { diff --git a/src/devices/bus/centronics/nec_p72.h b/src/devices/bus/centronics/nec_p72.h index 1957dfb40c4..c34e1886c17 100644 --- a/src/devices/bus/centronics/nec_p72.h +++ b/src/devices/bus/centronics/nec_p72.h @@ -1,10 +1,10 @@ // license:BSD-3-Clause // copyright-holders:Ramiro Polla -#pragma once +#ifndef MAME_BUS_CENTRONICS_NEC_P72_H +#define MAME_BUS_CENTRONICS_NEC_P72_H -#ifndef __NEC_P72__ -#define __NEC_P72__ +#pragma once #include "ctronics.h" #include "cpu/nec/nec.h" @@ -13,24 +13,22 @@ // TYPE DEFINITIONS //************************************************************************** -// ======================> nec_p72_t +// ======================> nec_p72_device -class nec_p72_t : public device_t, +class nec_p72_device : public device_t, public device_centronics_peripheral_interface { public: // construction/destruction - nec_p72_t(const machine_config &mconfig, const char *tag, - device_t *owner, uint32_t clock); - nec_p72_t(const machine_config &mconfig, device_type type, - const char *name, const char *tag, device_t *owner, - uint32_t clock, const char *shortname, const char *source); + nec_p72_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual const tiny_rom_entry *device_rom_region() const override; virtual machine_config_constructor device_mconfig_additions() const override; protected: + nec_p72_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; @@ -39,6 +37,6 @@ private: }; // device type definition -extern const device_type NEC_P72; +DECLARE_DEVICE_TYPE(NEC_P72, nec_p72_device) -#endif +#endif // MAME_BUS_CENTRONICS_NEC_P72_H diff --git a/src/devices/bus/centronics/printer.cpp b/src/devices/bus/centronics/printer.cpp index 318ac9bd597..cf7a7dc9e4e 100644 --- a/src/devices/bus/centronics/printer.cpp +++ b/src/devices/bus/centronics/printer.cpp @@ -8,7 +8,7 @@ //************************************************************************** // device type definition -const device_type CENTRONICS_PRINTER = device_creator; +DEFINE_DEVICE_TYPE(CENTRONICS_PRINTER, centronics_printer_device, "centronics_printer", "Centronics Printer") static MACHINE_CONFIG_FRAGMENT( centronics_printer ) @@ -25,7 +25,7 @@ MACHINE_CONFIG_END //------------------------------------------------- centronics_printer_device::centronics_printer_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, CENTRONICS_PRINTER, "Centronics Printer", tag, owner, clock, "centronics_printer", __FILE__), + device_t(mconfig, CENTRONICS_PRINTER, tag, owner, clock), device_centronics_peripheral_interface( mconfig, *this ), m_strobe(0), m_data(0), diff --git a/src/devices/bus/centronics/printer.h b/src/devices/bus/centronics/printer.h index 4c3cfa30393..9e1f358c569 100644 --- a/src/devices/bus/centronics/printer.h +++ b/src/devices/bus/centronics/printer.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:smf -#pragma once +#ifndef MAME_BUS_CENTRONICS_PRINTER_H +#define MAME_BUS_CENTRONICS_PRINTER_H -#ifndef __CENTRONICS_PRINTER_H__ -#define __CENTRONICS_PRINTER_H__ +#pragma once #include "ctronics.h" #include "imagedev/printer.h" @@ -53,6 +53,6 @@ private: }; // device type definition -extern const device_type CENTRONICS_PRINTER; +DECLARE_DEVICE_TYPE(CENTRONICS_PRINTER, centronics_printer_device) -#endif +#endif // MAME_BUS_CENTRONICS_PRINTER_H diff --git a/src/devices/bus/cgenie/expansion/carts.cpp b/src/devices/bus/cgenie/expansion/carts.cpp index 213d7dcdf5e..48779691821 100644 --- a/src/devices/bus/cgenie/expansion/carts.cpp +++ b/src/devices/bus/cgenie/expansion/carts.cpp @@ -8,7 +8,9 @@ #include "emu.h" #include "carts.h" +#include "floppy.h" -SLOT_INTERFACE_START( expansion_slot_carts ) + +SLOT_INTERFACE_START( cg_exp_slot_carts ) SLOT_INTERFACE("floppy", CGENIE_FDC) SLOT_INTERFACE_END diff --git a/src/devices/bus/cgenie/expansion/carts.h b/src/devices/bus/cgenie/expansion/carts.h index 2f26f0a37b1..6f3503bdabf 100644 --- a/src/devices/bus/cgenie/expansion/carts.h +++ b/src/devices/bus/cgenie/expansion/carts.h @@ -6,14 +6,12 @@ ***************************************************************************/ -#pragma once - -#ifndef __CGENIE_EXPANSION_CARTS_H__ -#define __CGENIE_EXPANSION_CARTS_H__ +#ifndef MAME_BUS_CGENIE_EXPANSION_CARTS_H +#define MAME_BUS_CGENIE_EXPANSION_CARTS_H +#pragma once -#include "floppy.h" -SLOT_INTERFACE_EXTERN( expansion_slot_carts ); +SLOT_INTERFACE_EXTERN( cg_exp_slot_carts ); -#endif // __CGENIE_EXPANSION_CARTS_H__ +#endif // MAME_BUS_CGENIE_EXPANSION_CARTS_H diff --git a/src/devices/bus/cgenie/expansion/expansion.cpp b/src/devices/bus/cgenie/expansion/expansion.cpp index ab7e083b84b..366b1513aca 100644 --- a/src/devices/bus/cgenie/expansion/expansion.cpp +++ b/src/devices/bus/cgenie/expansion/expansion.cpp @@ -16,7 +16,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type EXPANSION_SLOT = device_creator; +DEFINE_DEVICE_TYPE(CG_EXP_SLOT, cg_exp_slot_device, "cg_exp_slot", "Colour Genie Expansion Slot") //************************************************************************** @@ -24,11 +24,11 @@ const device_type EXPANSION_SLOT = device_creator; //************************************************************************** //------------------------------------------------- -// expansion_slot_device - constructor +// cg_exp - constructor //------------------------------------------------- -expansion_slot_device::expansion_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, EXPANSION_SLOT, "Expansion Slot", tag, owner, clock, "expansion_slot", __FILE__), +cg_exp_slot_device::cg_exp_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, CG_EXP_SLOT, tag, owner, clock), device_slot_interface(mconfig, *this), m_program(nullptr), m_io(nullptr), @@ -40,10 +40,10 @@ expansion_slot_device::expansion_slot_device(const machine_config &mconfig, cons } //------------------------------------------------- -// expansion_slot_device - destructor +// cg_exp_slot_device - destructor //------------------------------------------------- -expansion_slot_device::~expansion_slot_device() +cg_exp_slot_device::~cg_exp_slot_device() { } @@ -51,7 +51,7 @@ expansion_slot_device::~expansion_slot_device() // device_start - device-specific startup //------------------------------------------------- -void expansion_slot_device::device_start() +void cg_exp_slot_device::device_start() { // resolve callbacks m_int_handler.resolve_safe(); @@ -63,7 +63,7 @@ void expansion_slot_device::device_start() // device_reset - device-specific reset //------------------------------------------------- -void expansion_slot_device::device_reset() +void cg_exp_slot_device::device_reset() { } @@ -71,7 +71,7 @@ void expansion_slot_device::device_reset() // set_program_space - set address space we are attached to //------------------------------------------------- -void expansion_slot_device::set_program_space(address_space *program) +void cg_exp_slot_device::set_program_space(address_space *program) { m_program = program; } @@ -80,7 +80,7 @@ void expansion_slot_device::set_program_space(address_space *program) // set_io_space - set address space we are attached to //------------------------------------------------- -void expansion_slot_device::set_io_space(address_space *io) +void cg_exp_slot_device::set_io_space(address_space *io) { m_io = io; } @@ -91,19 +91,19 @@ void expansion_slot_device::set_io_space(address_space *io) //************************************************************************** //------------------------------------------------- -// device_expansion_interface - constructor +// device_cg_exp_interface - constructor //------------------------------------------------- -device_expansion_interface::device_expansion_interface(const machine_config &mconfig, device_t &device) : +device_cg_exp_interface::device_cg_exp_interface(const machine_config &mconfig, device_t &device) : device_slot_card_interface(mconfig, device) { - m_slot = dynamic_cast(device.owner()); + m_slot = dynamic_cast(device.owner()); } //------------------------------------------------- -// ~device_expansion_interface - destructor +// ~device_cg_exp_interface - destructor //------------------------------------------------- -device_expansion_interface::~device_expansion_interface() +device_cg_exp_interface::~device_cg_exp_interface() { } diff --git a/src/devices/bus/cgenie/expansion/expansion.h b/src/devices/bus/cgenie/expansion/expansion.h index 319f7c4878f..6c752efb331 100644 --- a/src/devices/bus/cgenie/expansion/expansion.h +++ b/src/devices/bus/cgenie/expansion/expansion.h @@ -34,10 +34,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_BUS_CGENIE_EXPANSION_EXPANSION_H +#define MAME_BUS_CGENIE_EXPANSION_EXPANSION_H -#ifndef __CGENIE_EXPANSION_H__ -#define __CGENIE_EXPANSION_H__ +#pragma once @@ -45,45 +45,45 @@ // INTERFACE CONFIGURATION MACROS //************************************************************************** -#define MCFG_EXPANSION_SLOT_ADD(_tag) \ - MCFG_DEVICE_ADD(_tag, EXPANSION_SLOT, 0) \ - MCFG_DEVICE_SLOT_INTERFACE(expansion_slot_carts, nullptr, false) +#define MCFG_CG_EXP_SLOT_ADD(_tag) \ + MCFG_DEVICE_ADD(_tag, CG_EXP_SLOT, 0) \ + MCFG_DEVICE_SLOT_INTERFACE(cg_exp_slot_carts, nullptr, false) -#define MCFG_EXPANSION_SLOT_INT_HANDLER(_devcb) \ - devcb = &expansion_slot_device::set_int_handler(*device, DEVCB_##_devcb); +#define MCFG_CG_EXP_SLOT_INT_HANDLER(_devcb) \ + devcb = &cg_exp_slot_device::set_int_handler(*device, DEVCB_##_devcb); -#define MCFG_EXPANSION_SLOT_NMI_HANDLER(_devcb) \ - devcb = &expansion_slot_device::set_nmi_handler(*device, DEVCB_##_devcb); +#define MCFG_CG_EXP_SLOT_NMI_HANDLER(_devcb) \ + devcb = &cg_exp_slot_device::set_nmi_handler(*device, DEVCB_##_devcb); -#define MCFG_EXPANSION_SLOT_RESET_HANDLER(_devcb) \ - devcb = &expansion_slot_device::set_reset_handler(*device, DEVCB_##_devcb); +#define MCFG_CG_EXP_SLOT_RESET_HANDLER(_devcb) \ + devcb = &cg_exp_slot_device::set_reset_handler(*device, DEVCB_##_devcb); //************************************************************************** // TYPE DEFINITIONS //************************************************************************** -class device_expansion_interface; +class device_cg_exp_interface; -class expansion_slot_device : public device_t, public device_slot_interface +class cg_exp_slot_device : public device_t, public device_slot_interface { public: // construction/destruction - expansion_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual ~expansion_slot_device(); + cg_exp_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + virtual ~cg_exp_slot_device(); void set_program_space(address_space *program); void set_io_space(address_space *io); // callbacks - template static devcb_base &set_int_handler(device_t &device, _Object object) - { return downcast(device).m_int_handler.set_callback(object); } + template static devcb_base &set_int_handler(device_t &device, Object &&cb) + { return downcast(device).m_int_handler.set_callback(std::forward(cb)); } - template static devcb_base &set_nmi_handler(device_t &device, _Object object) - { return downcast(device).m_nmi_handler.set_callback(object); } + template static devcb_base &set_nmi_handler(device_t &device, Object &&cb) + { return downcast(device).m_nmi_handler.set_callback(std::forward(cb)); } - template static devcb_base &set_reset_handler(device_t &device, _Object object) - { return downcast(device).m_reset_handler.set_callback(object); } + template static devcb_base &set_reset_handler(device_t &device, Object &&cb) + { return downcast(device).m_reset_handler.set_callback(std::forward(cb)); } // called from cart device DECLARE_WRITE_LINE_MEMBER( int_w ) { m_int_handler(state); } @@ -98,7 +98,7 @@ protected: virtual void device_start() override; virtual void device_reset() override; - device_expansion_interface *m_cart; + device_cg_exp_interface *m_cart; private: devcb_write_line m_int_handler; @@ -107,21 +107,22 @@ private: }; // class representing interface-specific live expansion device -class device_expansion_interface : public device_slot_card_interface +class device_cg_exp_interface : public device_slot_card_interface { public: // construction/destruction - device_expansion_interface(const machine_config &mconfig, device_t &device); - virtual ~device_expansion_interface(); + virtual ~device_cg_exp_interface(); protected: - expansion_slot_device *m_slot; + device_cg_exp_interface(const machine_config &mconfig, device_t &device); + + cg_exp_slot_device *m_slot; }; // device type definition -extern const device_type EXPANSION_SLOT; +extern const device_type CG_EXP_SLOT; // include here so drivers don't need to #include "carts.h" -#endif // __CGENIE_EXPANSION_H__ +#endif // MAME_BUS_CGENIE_EXPANSION_EXPANSION_H diff --git a/src/devices/bus/cgenie/expansion/floppy.cpp b/src/devices/bus/cgenie/expansion/floppy.cpp index d784f0f8dc1..9179aea9b87 100644 --- a/src/devices/bus/cgenie/expansion/floppy.cpp +++ b/src/devices/bus/cgenie/expansion/floppy.cpp @@ -28,14 +28,14 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type CGENIE_FDC = device_creator; +DEFINE_DEVICE_TYPE(CGENIE_FDC, cgenie_fdc_device, "cgenie_fdc", "Colour Genie FDC") DEVICE_ADDRESS_MAP_START( mmio, 8, cgenie_fdc_device ) AM_RANGE(0xe0, 0xe3) AM_MIRROR(0x10) AM_READWRITE(irq_r, select_w) - AM_RANGE(0xec, 0xec) AM_MIRROR(0x10) AM_DEVREAD("fd1793", fd1793_t, status_r) AM_WRITE(command_w) - AM_RANGE(0xed, 0xed) AM_MIRROR(0x10) AM_DEVREADWRITE("fd1793", fd1793_t, track_r, track_w) - AM_RANGE(0xee, 0xee) AM_MIRROR(0x10) AM_DEVREADWRITE("fd1793", fd1793_t, sector_r, sector_w) - AM_RANGE(0xef, 0xef) AM_MIRROR(0x10) AM_DEVREADWRITE("fd1793", fd1793_t, data_r, data_w) + AM_RANGE(0xec, 0xec) AM_MIRROR(0x10) AM_DEVREAD("fd1793", fd1793_device, status_r) AM_WRITE(command_w) + AM_RANGE(0xed, 0xed) AM_MIRROR(0x10) AM_DEVREADWRITE("fd1793", fd1793_device, track_r, track_w) + AM_RANGE(0xee, 0xee) AM_MIRROR(0x10) AM_DEVREADWRITE("fd1793", fd1793_device, sector_r, sector_w) + AM_RANGE(0xef, 0xef) AM_MIRROR(0x10) AM_DEVREADWRITE("fd1793", fd1793_device, data_r, data_w) ADDRESS_MAP_END FLOPPY_FORMATS_MEMBER( cgenie_fdc_device::floppy_formats ) @@ -105,8 +105,8 @@ machine_config_constructor cgenie_fdc_device::device_mconfig_additions() const //------------------------------------------------- cgenie_fdc_device::cgenie_fdc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, CGENIE_FDC, "Floppy Disc Controller", tag, owner, clock, "cgenie_fdc", __FILE__), - device_expansion_interface(mconfig, *this), + device_t(mconfig, CGENIE_FDC, tag, owner, clock), + device_cg_exp_interface(mconfig, *this), m_fdc(*this, "fd1793"), m_floppy0(*this, "fd1793:0"), m_floppy1(*this, "fd1793:1"), diff --git a/src/devices/bus/cgenie/expansion/floppy.h b/src/devices/bus/cgenie/expansion/floppy.h index 686c1eb3871..b46f2eee796 100644 --- a/src/devices/bus/cgenie/expansion/floppy.h +++ b/src/devices/bus/cgenie/expansion/floppy.h @@ -6,10 +6,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_BUS_CGENIE_EXPANSION_FLOPPY_H +#define MAME_BUS_CGENIE_EXPANSION_FLOPPY_H -#ifndef __CGENIE_EXPANSION_FLOPPY_H__ -#define __CGENIE_EXPANSION_FLOPPY_H__ +#pragma once #include "expansion.h" #include "machine/wd_fdc.h" @@ -22,7 +22,7 @@ // ======================> floppy_controller_device -class cgenie_fdc_device : public device_t, public device_expansion_interface +class cgenie_fdc_device : public device_t, public device_cg_exp_interface { public: // construction/destruction @@ -49,7 +49,7 @@ protected: virtual void device_reset() override; private: - required_device m_fdc; + required_device m_fdc; required_device m_floppy0; required_device m_floppy1; required_device m_floppy2; @@ -68,6 +68,6 @@ private: }; // device type definition -extern const device_type CGENIE_FDC; +DECLARE_DEVICE_TYPE(CGENIE_FDC, cgenie_fdc_device) -#endif // __CGENIE_EXPANSION_FLOPPY_H__ +#endif // MAME_BUS_CGENIE_EXPANSION_FLOPPY_H diff --git a/src/devices/bus/cgenie/parallel/carts.cpp b/src/devices/bus/cgenie/parallel/carts.cpp index 1de5c319105..627d969bd2f 100644 --- a/src/devices/bus/cgenie/parallel/carts.cpp +++ b/src/devices/bus/cgenie/parallel/carts.cpp @@ -8,8 +8,11 @@ #include "emu.h" #include "carts.h" +#include "joystick.h" +#include "printer.h" -SLOT_INTERFACE_START( parallel_slot_carts ) + +SLOT_INTERFACE_START( cg_parallel_slot_carts ) SLOT_INTERFACE("joystick", CGENIE_JOYSTICK) SLOT_INTERFACE("printer", CGENIE_PRINTER) SLOT_INTERFACE_END diff --git a/src/devices/bus/cgenie/parallel/carts.h b/src/devices/bus/cgenie/parallel/carts.h index e654f5bf682..0c893368899 100644 --- a/src/devices/bus/cgenie/parallel/carts.h +++ b/src/devices/bus/cgenie/parallel/carts.h @@ -6,15 +6,12 @@ ***************************************************************************/ -#pragma once - -#ifndef __CGENIE_PARALLEL_CARTS_H__ -#define __CGENIE_PARALLEL_CARTS_H__ +#ifndef MAME_BUS_CGENIE_PARALLEL_CARTS_H +#define MAME_BUS_CGENIE_PARALLEL_CARTS_H +#pragma once -#include "joystick.h" -#include "printer.h" -SLOT_INTERFACE_EXTERN( parallel_slot_carts ); +SLOT_INTERFACE_EXTERN( cg_parallel_slot_carts ); -#endif // __CGENIE_PARALLEL_CARTS_H__ +#endif // MAME_BUS_CGENIE_PARALLEL_CARTS_H diff --git a/src/devices/bus/cgenie/parallel/joystick.cpp b/src/devices/bus/cgenie/parallel/joystick.cpp index 2e54551959a..2be4d5280b5 100644 --- a/src/devices/bus/cgenie/parallel/joystick.cpp +++ b/src/devices/bus/cgenie/parallel/joystick.cpp @@ -23,7 +23,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type CGENIE_JOYSTICK = device_creator; +DEFINE_DEVICE_TYPE(CGENIE_JOYSTICK, cgenie_joystick_device, "cgenie_joystick", "Joystick Interface EG2013") //------------------------------------------------- // input_ports - device-specific input ports @@ -94,8 +94,8 @@ ioport_constructor cgenie_joystick_device::device_input_ports() const //------------------------------------------------- cgenie_joystick_device::cgenie_joystick_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, CGENIE_JOYSTICK, "Joystick Interface EG2013", tag, owner, clock, "cgenie_joystick", __FILE__), - device_parallel_interface(mconfig, *this), + device_t(mconfig, CGENIE_JOYSTICK, tag, owner, clock), + device_cg_parallel_interface(mconfig, *this), m_joy(*this, "JOY.%u", 0), m_keypad(*this, "KEYPAD.%u", 0), m_select(0) diff --git a/src/devices/bus/cgenie/parallel/joystick.h b/src/devices/bus/cgenie/parallel/joystick.h index 6625af5bdff..6a4025ada9f 100644 --- a/src/devices/bus/cgenie/parallel/joystick.h +++ b/src/devices/bus/cgenie/parallel/joystick.h @@ -6,10 +6,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_BUS_CGENIE_PARALLEL_JOYSTICK_H +#define MAME_BUS_CGENIE_PARALLEL_JOYSTICK_H -#ifndef __CGENIE_PARALLEL_JOYSTICK_H__ -#define __CGENIE_PARALLEL_JOYSTICK_H__ +#pragma once #include "parallel.h" @@ -20,7 +20,7 @@ // ======================> cgenie_joystick_device -class cgenie_joystick_device : public device_t, public device_parallel_interface +class cgenie_joystick_device : public device_t, public device_cg_parallel_interface { public: // construction/destruction @@ -42,6 +42,6 @@ private: }; // device type definition -extern const device_type CGENIE_JOYSTICK; +DECLARE_DEVICE_TYPE(CGENIE_JOYSTICK, cgenie_joystick_device) -#endif // __CGENIE_PARALLEL_JOYSTICK_H__ +#endif // MAME_BUS_CGENIE_PARALLEL_JOYSTICK_H diff --git a/src/devices/bus/cgenie/parallel/parallel.cpp b/src/devices/bus/cgenie/parallel/parallel.cpp index 2f993298755..a5072e094ee 100644 --- a/src/devices/bus/cgenie/parallel/parallel.cpp +++ b/src/devices/bus/cgenie/parallel/parallel.cpp @@ -16,7 +16,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type PARALLEL_SLOT = device_creator; +DEFINE_DEVICE_TYPE(CG_PARALLEL_SLOT, cg_parallel_slot_device, "cg_parallel_slot", "Colour Genie Parallel Slot") //************************************************************************** @@ -24,21 +24,21 @@ const device_type PARALLEL_SLOT = device_creator; //************************************************************************** //------------------------------------------------- -// parallel_slot_device - constructor +// cg_parallel_slot_device - constructor //------------------------------------------------- -parallel_slot_device::parallel_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, PARALLEL_SLOT, "Parallel Slot", tag, owner, clock, "parallel_slot", __FILE__), +cg_parallel_slot_device::cg_parallel_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, CG_PARALLEL_SLOT, tag, owner, clock), device_slot_interface(mconfig, *this), m_cart(nullptr) { } //------------------------------------------------- -// parallel_slot_device - destructor +// cg_parallel_slot_device - destructor //------------------------------------------------- -parallel_slot_device::~parallel_slot_device() +cg_parallel_slot_device::~cg_parallel_slot_device() { } @@ -46,16 +46,16 @@ parallel_slot_device::~parallel_slot_device() // device_start - device-specific startup //------------------------------------------------- -void parallel_slot_device::device_start() +void cg_parallel_slot_device::device_start() { - m_cart = dynamic_cast(get_card_device()); + m_cart = dynamic_cast(get_card_device()); } //------------------------------------------------- // device_reset - device-specific reset //------------------------------------------------- -void parallel_slot_device::device_reset() +void cg_parallel_slot_device::device_reset() { } @@ -64,7 +64,7 @@ void parallel_slot_device::device_reset() // I/O PORTS //************************************************************************** -READ8_MEMBER( parallel_slot_device::pa_r ) +READ8_MEMBER( cg_parallel_slot_device::pa_r ) { if (m_cart) return m_cart->pa_r(); @@ -72,13 +72,13 @@ READ8_MEMBER( parallel_slot_device::pa_r ) return 0xff; } -WRITE8_MEMBER( parallel_slot_device::pa_w ) +WRITE8_MEMBER( cg_parallel_slot_device::pa_w ) { if (m_cart) m_cart->pa_w(data); } -READ8_MEMBER( parallel_slot_device::pb_r ) +READ8_MEMBER( cg_parallel_slot_device::pb_r ) { if (m_cart) return m_cart->pb_r(); @@ -86,7 +86,7 @@ READ8_MEMBER( parallel_slot_device::pb_r ) return 0xff; } -WRITE8_MEMBER( parallel_slot_device::pb_w ) +WRITE8_MEMBER( cg_parallel_slot_device::pb_w ) { if (m_cart) m_cart->pb_w(data); @@ -98,19 +98,19 @@ WRITE8_MEMBER( parallel_slot_device::pb_w ) //************************************************************************** //------------------------------------------------- -// device_parallel_interface - constructor +// device_cg_parallel_interface - constructor //------------------------------------------------- -device_parallel_interface::device_parallel_interface(const machine_config &mconfig, device_t &device) : +device_cg_parallel_interface::device_cg_parallel_interface(const machine_config &mconfig, device_t &device) : device_slot_card_interface(mconfig, device) { - m_slot = dynamic_cast(device.owner()); + m_slot = dynamic_cast(device.owner()); } //------------------------------------------------- -// ~device_parallel_interface - destructor +// ~device_cg_parallel_interface - destructor //------------------------------------------------- -device_parallel_interface::~device_parallel_interface() +device_cg_parallel_interface::~device_cg_parallel_interface() { } diff --git a/src/devices/bus/cgenie/parallel/parallel.h b/src/devices/bus/cgenie/parallel/parallel.h index 9f70f4b85ac..9bc8d5665c4 100644 --- a/src/devices/bus/cgenie/parallel/parallel.h +++ b/src/devices/bus/cgenie/parallel/parallel.h @@ -19,10 +19,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_BUS_CGENIE_PARALLEL_PARALLEL_H +#define MAME_BUS_CGENIE_PARALLEL_PARALLEL_H -#ifndef __CGENIE_PARALLEL_H__ -#define __CGENIE_PARALLEL_H__ +#pragma once @@ -30,23 +30,23 @@ // INTERFACE CONFIGURATION MACROS //************************************************************************** -#define MCFG_PARALLEL_SLOT_ADD(_tag) \ - MCFG_DEVICE_ADD(_tag, PARALLEL_SLOT, 0) \ - MCFG_DEVICE_SLOT_INTERFACE(parallel_slot_carts, nullptr, false) +#define MCFG_CG_PARALLEL_SLOT_ADD(_tag) \ + MCFG_DEVICE_ADD(_tag, CG_PARALLEL_SLOT, 0) \ + MCFG_DEVICE_SLOT_INTERFACE(cg_parallel_slot_carts, nullptr, false) //************************************************************************** // TYPE DEFINITIONS //************************************************************************** -class device_parallel_interface; +class device_cg_parallel_interface; -class parallel_slot_device : public device_t, public device_slot_interface +class cg_parallel_slot_device : public device_t, public device_slot_interface { public: // construction/destruction - parallel_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual ~parallel_slot_device(); + cg_parallel_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + virtual ~cg_parallel_slot_device(); // IOA DECLARE_READ8_MEMBER(pa_r); @@ -61,31 +61,32 @@ protected: virtual void device_start() override; virtual void device_reset() override; - device_parallel_interface *m_cart; + device_cg_parallel_interface *m_cart; }; // class representing interface-specific live parallel device -class device_parallel_interface : public device_slot_card_interface +class device_cg_parallel_interface : public device_slot_card_interface { public: // construction/destruction - device_parallel_interface(const machine_config &mconfig, device_t &device); - virtual ~device_parallel_interface(); + virtual ~device_cg_parallel_interface(); - virtual uint8_t pa_r() { return 0xff; }; - virtual void pa_w(uint8_t data) {}; + virtual uint8_t pa_r() { return 0xff; } + virtual void pa_w(uint8_t data) { } - virtual uint8_t pb_r() { return 0xff; }; - virtual void pb_w(uint8_t data) {}; + virtual uint8_t pb_r() { return 0xff; } + virtual void pb_w(uint8_t data) { } protected: - parallel_slot_device *m_slot; + device_cg_parallel_interface(const machine_config &mconfig, device_t &device); + + cg_parallel_slot_device *m_slot; }; // device type definition -extern const device_type PARALLEL_SLOT; +DECLARE_DEVICE_TYPE(CG_PARALLEL_SLOT, cg_parallel_slot_device) // include here so drivers don't need to #include "carts.h" -#endif // __CGENIE_PARALLEL_H__ +#endif // MAME_BUS_CGENIE_PARALLEL_PARALLEL_H diff --git a/src/devices/bus/cgenie/parallel/printer.cpp b/src/devices/bus/cgenie/parallel/printer.cpp index cd798e978d9..f23c2e6de86 100644 --- a/src/devices/bus/cgenie/parallel/printer.cpp +++ b/src/devices/bus/cgenie/parallel/printer.cpp @@ -21,7 +21,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type CGENIE_PRINTER = device_creator; +DEFINE_DEVICE_TYPE(CGENIE_PRINTER, cgenie_printer_device, "cgenie_printer", "Printer Interface EG2012") //------------------------------------------------- // machine_config_additions - device-specific @@ -52,8 +52,8 @@ machine_config_constructor cgenie_printer_device::device_mconfig_additions() con //------------------------------------------------- cgenie_printer_device::cgenie_printer_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, CGENIE_PRINTER, "Printer Interface EG2012", tag, owner, clock, "cgenie_printer", __FILE__), - device_parallel_interface(mconfig, *this), + device_t(mconfig, CGENIE_PRINTER, tag, owner, clock), + device_cg_parallel_interface(mconfig, *this), m_centronics(*this, "centronics"), m_latch(*this, "latch"), m_centronics_busy(0), diff --git a/src/devices/bus/cgenie/parallel/printer.h b/src/devices/bus/cgenie/parallel/printer.h index 313e61d9542..f2a5338be27 100644 --- a/src/devices/bus/cgenie/parallel/printer.h +++ b/src/devices/bus/cgenie/parallel/printer.h @@ -6,10 +6,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_BUS_CGENIE_PARALLEL_PRINTER_H +#define MAME_BUS_CGENIE_PARALLEL_PRINTER_H -#ifndef __CGENIE_PARALLEL_PRINTER_H__ -#define __CGENIE_PARALLEL_PRINTER_H__ +#pragma once #include "parallel.h" #include "bus/centronics/ctronics.h" @@ -21,7 +21,7 @@ // ======================> cgenie_printer_device -class cgenie_printer_device : public device_t, public device_parallel_interface +class cgenie_printer_device : public device_t, public device_cg_parallel_interface { public: // construction/destruction @@ -52,6 +52,6 @@ private: }; // device type definition -extern const device_type CGENIE_PRINTER; +DECLARE_DEVICE_TYPE(CGENIE_PRINTER, cgenie_printer_device) -#endif // __CGENIE_PARALLEL_PRINTER_H__ +#endif // MAME_BUS_CGENIE_PARALLEL_PRINTER_H diff --git a/src/devices/bus/chanf/rom.cpp b/src/devices/bus/chanf/rom.cpp index 35e886aeb0d..3dc509a29d9 100644 --- a/src/devices/bus/chanf/rom.cpp +++ b/src/devices/bus/chanf/rom.cpp @@ -23,49 +23,49 @@ // chanf_rom_device - constructor //------------------------------------------------- -const device_type CHANF_ROM_STD = device_creator; -const device_type CHANF_ROM_MAZE = device_creator; -const device_type CHANF_ROM_HANGMAN = device_creator; -const device_type CHANF_ROM_CHESS = device_creator; -const device_type CHANF_ROM_MULTI_OLD = device_creator; -const device_type CHANF_ROM_MULTI_FINAL = device_creator; +DEFINE_DEVICE_TYPE(CHANF_ROM_STD, chanf_rom_device, "chanf_rom", "Channel F Standard Carts") +DEFINE_DEVICE_TYPE(CHANF_ROM_MAZE, chanf_maze_device, "chanf_maze", "Channel F Maze Cart") +DEFINE_DEVICE_TYPE(CHANF_ROM_HANGMAN, chanf_hangman_device, "chanf_hang", "Channel F Hangman Cart") +DEFINE_DEVICE_TYPE(CHANF_ROM_CHESS, chanf_chess_device, "chanf_chess", "Channel F Chess Cart") +DEFINE_DEVICE_TYPE(CHANF_ROM_MULTI_OLD, chanf_multi_old_device, "chanf_multi_old", "Channel F Multigame (Earlier Version) Cart") +DEFINE_DEVICE_TYPE(CHANF_ROM_MULTI_FINAL, chanf_multi_final_device, "chanf_multi_fin", "Channel F Multigame (Final Version) Cart") -chanf_rom_device::chanf_rom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_channelf_cart_interface( mconfig, *this ), m_addr_latch(0), m_addr(0), m_read_write(0), m_data0(0) - { +chanf_rom_device::chanf_rom_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) + , device_channelf_cart_interface(mconfig, *this) + , m_addr_latch(0), m_addr(0), m_read_write(0), m_data0(0) +{ } chanf_rom_device::chanf_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, CHANF_ROM_STD, "Channel F Standard Carts", tag, owner, clock, "chanf_rom", __FILE__), - device_channelf_cart_interface( mconfig, *this ), m_addr_latch(0), m_addr(0), m_read_write(0), m_data0(0) - { + : chanf_rom_device(mconfig, CHANF_ROM_STD, tag, owner, clock) +{ } chanf_maze_device::chanf_maze_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : chanf_rom_device(mconfig, CHANF_ROM_MAZE, "Channel F Maze Cart", tag, owner, clock, "chanf_maze", __FILE__) + : chanf_rom_device(mconfig, CHANF_ROM_MAZE, tag, owner, clock) { } chanf_hangman_device::chanf_hangman_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : chanf_rom_device(mconfig, CHANF_ROM_HANGMAN, "Channel F Hangman Cart", tag, owner, clock, "chanf_hang", __FILE__) + : chanf_rom_device(mconfig, CHANF_ROM_HANGMAN, tag, owner, clock) { } chanf_chess_device::chanf_chess_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : chanf_rom_device(mconfig, CHANF_ROM_CHESS, "Channel F Chess Cart", tag, owner, clock, "chanf_chess", __FILE__) + : chanf_rom_device(mconfig, CHANF_ROM_CHESS, tag, owner, clock) { } chanf_multi_old_device::chanf_multi_old_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : chanf_rom_device(mconfig, CHANF_ROM_MULTI_OLD, "Channel F Multigame (Earlier Version) Cart", tag, owner, clock, "chanf_multi_old", __FILE__), m_base_bank(0) - { + : chanf_rom_device(mconfig, CHANF_ROM_MULTI_OLD, tag, owner, clock), m_base_bank(0) +{ } chanf_multi_final_device::chanf_multi_final_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : chanf_rom_device(mconfig, CHANF_ROM_MULTI_FINAL, "Channel F Multigame (Final Version) Cart", tag, owner, clock, "chanf_multi_fin", __FILE__), m_base_bank(0), m_half_bank(0) - { + : chanf_rom_device(mconfig, CHANF_ROM_MULTI_FINAL, tag, owner, clock), m_base_bank(0), m_half_bank(0) +{ } diff --git a/src/devices/bus/chanf/rom.h b/src/devices/bus/chanf/rom.h index 7fd8944ba99..bd32f177ff8 100644 --- a/src/devices/bus/chanf/rom.h +++ b/src/devices/bus/chanf/rom.h @@ -1,7 +1,7 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __CHANF_ROM_H -#define __CHANF_ROM_H +#ifndef MAME_BUS_CHANF_ROM_H +#define MAME_BUS_CHANF_ROM_H #include "slot.h" @@ -13,7 +13,6 @@ class chanf_rom_device : public device_t, { public: // construction/destruction - chanf_rom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); chanf_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // device-level overrides @@ -28,8 +27,9 @@ public: // reading and writing virtual DECLARE_READ8_MEMBER(read_rom) override; - protected: + chanf_rom_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // used for RAM chip in Hangman & Maze uint8_t m_latch[2]; // PORT A & PORT B uint16_t m_addr_latch, m_addr; @@ -133,12 +133,12 @@ private: // device type definition -extern const device_type CHANF_ROM_STD; -extern const device_type CHANF_ROM_MAZE; -extern const device_type CHANF_ROM_HANGMAN; -extern const device_type CHANF_ROM_CHESS; -extern const device_type CHANF_ROM_MULTI_OLD; -extern const device_type CHANF_ROM_MULTI_FINAL; +DECLARE_DEVICE_TYPE(CHANF_ROM_STD, chanf_rom_device) +DECLARE_DEVICE_TYPE(CHANF_ROM_MAZE, chanf_maze_device) +DECLARE_DEVICE_TYPE(CHANF_ROM_HANGMAN, chanf_hangman_device) +DECLARE_DEVICE_TYPE(CHANF_ROM_CHESS, chanf_chess_device) +DECLARE_DEVICE_TYPE(CHANF_ROM_MULTI_OLD, chanf_multi_old_device) +DECLARE_DEVICE_TYPE(CHANF_ROM_MULTI_FINAL, chanf_multi_final_device) -#endif +#endif // MAME_BUS_CHANF_ROM_H diff --git a/src/devices/bus/chanf/slot.cpp b/src/devices/bus/chanf/slot.cpp index 1b982151059..d9e1a27d399 100644 --- a/src/devices/bus/chanf/slot.cpp +++ b/src/devices/bus/chanf/slot.cpp @@ -15,7 +15,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type CHANF_CART_SLOT = device_creator; +DEFINE_DEVICE_TYPE(CHANF_CART_SLOT, channelf_cart_slot_device, "chanf_cart_slot", "Fairchild Channel F Cartridge Slot") //************************************************************************** // Channel F cartridges Interface @@ -73,10 +73,10 @@ void device_channelf_cart_interface::ram_alloc(uint32_t size) // channelf_cart_slot_device - constructor //------------------------------------------------- channelf_cart_slot_device::channelf_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, CHANF_CART_SLOT, "Fairchild Channel F Cartridge Slot", tag, owner, clock, "cf_cart_slot", __FILE__), - device_image_interface(mconfig, *this), - device_slot_interface(mconfig, *this), - m_type(CF_CHESS), m_cart(nullptr) + device_t(mconfig, CHANF_CART_SLOT, tag, owner, clock), + device_image_interface(mconfig, *this), + device_slot_interface(mconfig, *this), + m_type(CF_CHESS), m_cart(nullptr) { } diff --git a/src/devices/bus/chanf/slot.h b/src/devices/bus/chanf/slot.h index 798d7c5dc65..289c1b3e600 100644 --- a/src/devices/bus/chanf/slot.h +++ b/src/devices/bus/chanf/slot.h @@ -1,7 +1,7 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __CHANF_SLOT_H -#define __CHANF_SLOT_H +#ifndef MAME_BUS_CHANF_SLOT_H +#define MAME_BUS_CHANF_SLOT_H #include "softlist_dev.h" @@ -29,14 +29,13 @@ class device_channelf_cart_interface : public device_slot_card_interface { public: // device_channelf_cart_interface/destruction - device_channelf_cart_interface(const machine_config &mconfig, device_t &device); virtual ~device_channelf_cart_interface(); // reading and writing virtual DECLARE_READ8_MEMBER(read_rom) { return 0xff; } virtual DECLARE_READ8_MEMBER(read_ram) { return 0xff; } - virtual DECLARE_WRITE8_MEMBER(write_ram) {} - virtual DECLARE_WRITE8_MEMBER(write_bank) {} + virtual DECLARE_WRITE8_MEMBER(write_ram) { } + virtual DECLARE_WRITE8_MEMBER(write_bank) {} void rom_alloc(uint32_t size, const char *tag); void ram_alloc(uint32_t size); @@ -48,6 +47,8 @@ public: void save_ram() { device().save_item(NAME(m_ram)); } protected: + device_channelf_cart_interface(const machine_config &mconfig, device_t &device); + // internal state uint8_t *m_rom; uint32_t m_rom_size; @@ -105,7 +106,7 @@ protected: // device type definition -extern const device_type CHANF_CART_SLOT; +DECLARE_DEVICE_TYPE(CHANF_CART_SLOT, channelf_cart_slot_device) /*************************************************************************** @@ -117,4 +118,5 @@ extern const device_type CHANF_CART_SLOT; #define MCFG_CHANNELF_CARTRIDGE_ADD(_tag,_slot_intf,_def_slot) \ MCFG_DEVICE_ADD(_tag, CHANF_CART_SLOT, 0) \ MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, false) -#endif + +#endif // MAME_BUS_CHANF_SLOT_H diff --git a/src/devices/bus/coco/coco_232.cpp b/src/devices/bus/coco/coco_232.cpp index 8973a36ccf6..431abfa958d 100644 --- a/src/devices/bus/coco/coco_232.cpp +++ b/src/devices/bus/coco/coco_232.cpp @@ -31,7 +31,7 @@ MACHINE_CONFIG_END // GLOBAL VARIABLES //************************************************************************** -const device_type COCO_232 = device_creator; +DEFINE_DEVICE_TYPE(COCO_232, coco_232_device, "coco_232", "CoCo RS-232 PAK") //************************************************************************** // LIVE DEVICE @@ -42,9 +42,9 @@ const device_type COCO_232 = device_creator; //------------------------------------------------- coco_232_device::coco_232_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, COCO_232, "CoCo RS-232 PAK", tag, owner, clock, "coco_232", __FILE__), - device_cococart_interface( mconfig, *this ), - m_uart(*this, UART_TAG) + : device_t(mconfig, COCO_232, tag, owner, clock) + , device_cococart_interface(mconfig, *this) + , m_uart(*this, UART_TAG) { } diff --git a/src/devices/bus/coco/coco_232.h b/src/devices/bus/coco/coco_232.h index 3ff2107985f..6b2a2d9de1e 100644 --- a/src/devices/bus/coco/coco_232.h +++ b/src/devices/bus/coco/coco_232.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Nathan Woods -#pragma once +#ifndef MAME_BUS_COCO_COCO_232_H +#define MAME_BUS_COCO_COCO_232_H -#ifndef __COCO_232_H__ -#define __COCO_232_H__ +#pragma once #include "cococart.h" #include "machine/mos6551.h" @@ -19,23 +19,23 @@ class coco_232_device : public device_cococart_interface { public: - // construction/destruction - coco_232_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + // construction/destruction + coco_232_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; + // optional information overrides + virtual machine_config_constructor device_mconfig_additions() const override; protected: - // device-level overrides - virtual void device_start() override; - virtual DECLARE_READ8_MEMBER(read) override; - virtual DECLARE_WRITE8_MEMBER(write) override; + // device-level overrides + virtual void device_start() override; + virtual DECLARE_READ8_MEMBER(read) override; + virtual DECLARE_WRITE8_MEMBER(write) override; private: // internal state - required_device m_uart; + required_device m_uart; }; // device type definition -extern const device_type COCO_232; +DECLARE_DEVICE_TYPE(COCO_232, coco_232_device) -#endif /* __COCO_232_H__ */ +#endif // MAME_BUS_COCO_COCO_232_H diff --git a/src/devices/bus/coco/coco_dwsock.cpp b/src/devices/bus/coco/coco_dwsock.cpp index 91fa892e950..28914abb994 100644 --- a/src/devices/bus/coco/coco_dwsock.cpp +++ b/src/devices/bus/coco/coco_dwsock.cpp @@ -1,5 +1,8 @@ // license:BSD-3-Clause // copyright-holders:Nathan Woods +#include "emu.h" +#include "coco_dwsock.h" + #include #include #ifdef __GNUC__ @@ -8,16 +11,12 @@ #include #include -#include "emu.h" -#include "osdcore.h" - -#include "coco_dwsock.h" //************************************************************************** // DEVICE DEFINITIONS //************************************************************************** -const device_type COCO_DWSOCK = device_creator; +DEFINE_DEVICE_TYPE(COCO_DWSOCK, beckerport_device, "coco_dwsock", "Virtual Becker Port") //------------------------------------------------- // INPUT_PORTS( coco_drivewire ) @@ -64,8 +63,8 @@ INPUT_CHANGED_MEMBER(beckerport_device::drivewire_port_changed) //------------------------------------------------- beckerport_device::beckerport_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, COCO_DWSOCK, "Virtual Becker Port", tag, owner, clock, "coco_dwsock", __FILE__), m_hostname(nullptr), - m_dwconfigport(*this, DRIVEWIRE_PORT_TAG), m_dwtcpport(0) + : device_t(mconfig, COCO_DWSOCK, tag, owner, clock) + , m_hostname(nullptr), m_dwconfigport(*this, DRIVEWIRE_PORT_TAG), m_dwtcpport(0) { m_head = 0; m_rx_pending = 0; @@ -163,7 +162,7 @@ READ8_MEMBER(beckerport_device::read) fprintf(stderr, "%s: read from bad offset %d\n", __FILE__, offset); } - return (int)data; + return data; } /*------------------------------------------------- diff --git a/src/devices/bus/coco/coco_dwsock.h b/src/devices/bus/coco/coco_dwsock.h index deba649f761..a9ac21a18e4 100644 --- a/src/devices/bus/coco/coco_dwsock.h +++ b/src/devices/bus/coco/coco_dwsock.h @@ -1,7 +1,7 @@ // license:BSD-3-Clause // copyright-holders:Nathan Woods -#ifndef MAME_DEVICES_BUS_COCO_DWSOCKH_H -#define MAME_DEVICES_BUS_COCO_DWSOCKH_H +#ifndef MAME_BUS_COCO_COCO_DWSOCKH_H +#define MAME_BUS_COCO_COCO_DWSOCKH_H #include "osdcore.h" @@ -64,9 +64,9 @@ private: }; // device type definition -extern const device_type COCO_DWSOCK; +DECLARE_DEVICE_TYPE(COCO_DWSOCK, beckerport_device) // device iterator typedef device_type_iterator beckerport_device_iterator; -#endif // MAME_DEVICES_BUS_COCO_DWSOCKH_H +#endif // MAME_BUS_COCO_COCO_DWSOCKH_H diff --git a/src/devices/bus/coco/coco_fdc.cpp b/src/devices/bus/coco/coco_fdc.cpp index 6cb6d6df646..29fdaef874f 100644 --- a/src/devices/bus/coco/coco_fdc.cpp +++ b/src/devices/bus/coco/coco_fdc.cpp @@ -71,11 +71,10 @@ class coco_fdc_device_base : public coco_family_fdc_device_base { -public: +protected: // construction/destruction - coco_fdc_device_base(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); + coco_fdc_device_base(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); -protected: enum class rtc_type { DISTO = 0x00, @@ -94,7 +93,7 @@ protected: rtc_type real_time_clock(); // devices - required_device m_wd17xx; + required_device m_wd17xx; required_device m_ds1315; required_device_array m_floppies; @@ -185,8 +184,8 @@ uint8_t* coco_family_fdc_device_base::get_cart_base() // coco_fdc_device_base - constructor //------------------------------------------------- -coco_fdc_device_base::coco_fdc_device_base(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : coco_family_fdc_device_base(mconfig, type, name, tag, owner, clock, shortname, source) +coco_fdc_device_base::coco_fdc_device_base(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : coco_family_fdc_device_base(mconfig, type, tag, owner, clock) , m_wd17xx(*this, WD_TAG) , m_ds1315(*this, CLOUD9_TAG) , m_floppies(*this, WD_TAG ":%u", 0) @@ -418,7 +417,7 @@ namespace public: // construction/destruction coco_fdc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : coco_fdc_device_base(mconfig, COCO_FDC, "CoCo FDC", tag, owner, clock, "coco_fdc", __FILE__) + : coco_fdc_device_base(mconfig, COCO_FDC, tag, owner, clock) { } @@ -432,7 +431,8 @@ namespace }; } -const device_type COCO_FDC = device_creator; + +DEFINE_DEVICE_TYPE(COCO_FDC, coco_fdc_device, "coco_fdc", "CoCo FDC") //************************************************************************** @@ -454,7 +454,7 @@ namespace public: // construction/destruction coco_fdc_v11_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : coco_fdc_device_base(mconfig, COCO_FDC_V11, "CoCo FDC v1.1", tag, owner, clock, "coco_fdc_v11", __FILE__) + : coco_fdc_device_base(mconfig, COCO_FDC_V11, tag, owner, clock) { } @@ -465,9 +465,9 @@ namespace return ROM_NAME(coco_fdc_v11); } }; -}; +} -const device_type COCO_FDC_V11 = device_creator; +DEFINE_DEVICE_TYPE(COCO_FDC_V11, coco_fdc_v11_device, "coco_fdc_v11", "CoCo FDC v1.1") //************************************************************************** @@ -489,7 +489,7 @@ namespace public: // construction/destruction coco3_hdb1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : coco_fdc_device_base(mconfig, COCO3_HDB1, "CoCo3 HDB-DOS", tag, owner, clock, "coco3_hdb1", __FILE__) + : coco_fdc_device_base(mconfig, COCO3_HDB1, tag, owner, clock) { } @@ -500,9 +500,9 @@ namespace return ROM_NAME(coco3_hdb1); } }; -}; +} -const device_type COCO3_HDB1 = device_creator; +DEFINE_DEVICE_TYPE(COCO3_HDB1, coco3_hdb1_device, "coco3_hdb1", "CoCo3 HDB-DOS") //************************************************************************** // CP400 FDC @@ -520,7 +520,7 @@ namespace public: // construction/destruction cp400_fdc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : coco_fdc_device_base(mconfig, CP400_FDC, "CP400 FDC", tag, owner, clock, "cp400_fdc", __FILE__) + : coco_fdc_device_base(mconfig, CP400_FDC, tag, owner, clock) { } @@ -531,6 +531,6 @@ namespace return ROM_NAME(cp400_fdc); } }; -}; +} -const device_type CP400_FDC = device_creator; +DEFINE_DEVICE_TYPE(CP400_FDC, cp400_fdc_device, "cp400_fdc", "CP400 FDC") diff --git a/src/devices/bus/coco/coco_fdc.h b/src/devices/bus/coco/coco_fdc.h index 4dcd4b7b694..c596dfeef33 100644 --- a/src/devices/bus/coco/coco_fdc.h +++ b/src/devices/bus/coco/coco_fdc.h @@ -8,8 +8,8 @@ *********************************************************************/ -#ifndef MAME_DEVICES_BUS_COCO_FDC_H -#define MAME_DEVICES_BUS_COCO_FDC_H +#ifndef MAME_BUS_COCO_COCO_FDC_H +#define MAME_BUS_COCO_COCO_FDC_H #include "cococart.h" #include "imagedev/floppy.h" @@ -26,20 +26,20 @@ class coco_family_fdc_device_base : public device_cococart_interface { public: - // construction/destruction - coco_family_fdc_device_base(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source) - , device_cococart_interface(mconfig, *this) - { - m_owner = dynamic_cast(owner); - }; - DECLARE_WRITE_LINE_MEMBER(fdc_intrq_w) { m_intrq = state; update_lines(); } DECLARE_WRITE_LINE_MEMBER(fdc_drq_w) { m_drq = state; update_lines(); } DECLARE_FLOPPY_FORMATS(floppy_formats); protected: + // construction/destruction + coco_family_fdc_device_base(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) + , device_cococart_interface(mconfig, *this) + { + m_owner = dynamic_cast(owner); + }; + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -84,4 +84,4 @@ extern const device_type CP400_FDC; extern const device_type DRAGON_FDC; extern const device_type SDTANDY_FDC; -#endif // MAME_DEVICES_BUS_COCO_FDC_H +#endif // MAME_BUS_COCO_COCO_FDC_H diff --git a/src/devices/bus/coco/coco_multi.cpp b/src/devices/bus/coco/coco_multi.cpp index 5e1737d7347..32813925984 100644 --- a/src/devices/bus/coco/coco_multi.cpp +++ b/src/devices/bus/coco/coco_multi.cpp @@ -111,7 +111,7 @@ MACHINE_CONFIG_END // GLOBAL VARIABLES //************************************************************************** -const device_type COCO_MULTIPAK = device_creator; +DEFINE_DEVICE_TYPE(COCO_MULTIPAK, coco_multipak_device, "coco_multipack", "CoCo Multi-Pak Interface") @@ -124,8 +124,9 @@ const device_type COCO_MULTIPAK = device_creator; //------------------------------------------------- coco_multipak_device::coco_multipak_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, COCO_MULTIPAK, "CoCo Multi-Pak Interface", tag, owner, clock, "coco_multipak", __FILE__), - device_cococart_interface( mconfig, *this ), m_select(0) + : device_t(mconfig, COCO_MULTIPAK, tag, owner, clock) + , device_cococart_interface(mconfig, *this) + , m_slots(*this, "slot%u", 1), m_select(0) { } @@ -136,12 +137,6 @@ coco_multipak_device::coco_multipak_device(const machine_config &mconfig, const void coco_multipak_device::device_start() { - // identify slots - m_slots[0] = dynamic_cast(subdevice(SLOT1_TAG)); - m_slots[1] = dynamic_cast(subdevice(SLOT2_TAG)); - m_slots[2] = dynamic_cast(subdevice(SLOT3_TAG)); - m_slots[3] = dynamic_cast(subdevice(SLOT4_TAG)); - // install $FF7F handler write8_delegate wh = write8_delegate(FUNC(coco_multipak_device::ff7f_write), this); machine().device(":maincpu")->memory().space(AS_PROGRAM).install_write_handler(0xFF7F, 0xFF7F, wh); diff --git a/src/devices/bus/coco/coco_multi.h b/src/devices/bus/coco/coco_multi.h index 92f029a5703..e3e9ce850ab 100644 --- a/src/devices/bus/coco/coco_multi.h +++ b/src/devices/bus/coco/coco_multi.h @@ -8,10 +8,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_BUS_COCO_COCO_MULTI_H +#define MAME_BUS_COCO_COCO_MULTI_H -#ifndef __COCO_MULTI_H__ -#define __COCO_MULTI_H__ +#pragma once #include "cococart.h" @@ -61,7 +61,7 @@ protected: private: // device references - std::array m_slots; + required_device_array m_slots; // internal state uint8_t m_select; @@ -82,6 +82,6 @@ private: // device type definition -extern const device_type COCO_MULTIPAK; +DECLARE_DEVICE_TYPE(COCO_MULTIPAK, coco_multipak_device) -#endif /* __COCO_MULTI_H__ */ +#endif // MAME_BUS_COCO_COCO_MULTI_H diff --git a/src/devices/bus/coco/coco_orch90.cpp b/src/devices/bus/coco/coco_orch90.cpp index 1d3ee1c5a94..f1f66367ed6 100644 --- a/src/devices/bus/coco/coco_orch90.cpp +++ b/src/devices/bus/coco/coco_orch90.cpp @@ -32,7 +32,7 @@ MACHINE_CONFIG_END // GLOBAL VARIABLES //************************************************************************** -const device_type COCO_ORCH90 = device_creator; +DEFINE_DEVICE_TYPE(COCO_ORCH90, coco_orch90_device, "coco_orch90", "CoCo Orch-90 PAK") //************************************************************************** // LIVE DEVICE @@ -43,10 +43,10 @@ const device_type COCO_ORCH90 = device_creator; //------------------------------------------------- coco_orch90_device::coco_orch90_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, COCO_ORCH90, "CoCo Orch-90 PAK", tag, owner, clock, "coco_orch90", __FILE__), - device_cococart_interface(mconfig, *this ), - m_ldac(*this, "ldac"), - m_rdac(*this, "rdac") + : device_t(mconfig, COCO_ORCH90, tag, owner, clock) + , device_cococart_interface(mconfig, *this ) + , m_ldac(*this, "ldac") + , m_rdac(*this, "rdac") { } diff --git a/src/devices/bus/coco/coco_orch90.h b/src/devices/bus/coco/coco_orch90.h index 8ef59729ceb..ceed461ba36 100644 --- a/src/devices/bus/coco/coco_orch90.h +++ b/src/devices/bus/coco/coco_orch90.h @@ -1,12 +1,12 @@ // license:BSD-3-Clause // copyright-holders:Nathan Woods -#pragma once +#ifndef MAME_BUS_COCO_COCO_ORCH90_H +#define MAME_BUS_COCO_COCO_ORCH90_H -#ifndef __COCO_ORCH90_H__ -#define __COCO_ORCH90_H__ +#pragma once -#include "sound/dac.h" #include "cococart.h" +#include "sound/dac.h" //************************************************************************** // TYPE DEFINITIONS @@ -36,6 +36,6 @@ private: // device type definition -extern const device_type COCO_ORCH90; +DECLARE_DEVICE_TYPE(COCO_ORCH90, coco_orch90_device) -#endif /* __COCO_ORCH90_H__ */ +#endif // MAME_BUS_COCO_COCO_ORCH90_H diff --git a/src/devices/bus/coco/coco_pak.cpp b/src/devices/bus/coco/coco_pak.cpp index f4efb829c70..97bcaddc6fa 100644 --- a/src/devices/bus/coco/coco_pak.cpp +++ b/src/devices/bus/coco/coco_pak.cpp @@ -43,7 +43,7 @@ INPUT_PORTS_END // GLOBAL VARIABLES //************************************************************************** -const device_type COCO_PAK = device_creator; +DEFINE_DEVICE_TYPE(COCO_PAK, coco_pak_device, "cocopak", "CoCo Program PAK") //************************************************************************** // LIVE DEVICE @@ -52,18 +52,16 @@ const device_type COCO_PAK = device_creator; //------------------------------------------------- // coco_pak_device - constructor //------------------------------------------------- -coco_pak_device::coco_pak_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_cococart_interface( mconfig, *this ), m_cart(nullptr), m_owner(nullptr), - m_autostart(*this, CART_AUTOSTART_TAG) +coco_pak_device::coco_pak_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) + , device_cococart_interface(mconfig, *this) + , m_cart(nullptr), m_owner(nullptr), m_autostart(*this, CART_AUTOSTART_TAG) { } coco_pak_device::coco_pak_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, COCO_PAK, "CoCo Program PAK", tag, owner, clock, "cocopak", __FILE__), - device_cococart_interface( mconfig, *this ), m_cart(nullptr), m_owner(nullptr), - m_autostart(*this, CART_AUTOSTART_TAG) - { + : coco_pak_device(mconfig, COCO_PAK, tag, owner, clock) +{ } //------------------------------------------------- @@ -138,7 +136,7 @@ uint8_t* coco_pak_device::get_cart_base() // GLOBAL VARIABLES //************************************************************************** -const device_type COCO_PAK_BANKED = device_creator; +DEFINE_DEVICE_TYPE(COCO_PAK_BANKED, coco_pak_banked_device, "cocopak_banked", "CoCo Program PAK (Banked)") //************************************************************************** // LIVE DEVICE @@ -149,7 +147,7 @@ const device_type COCO_PAK_BANKED = device_creator; //------------------------------------------------- coco_pak_banked_device::coco_pak_banked_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : coco_pak_device(mconfig, COCO_PAK_BANKED, "CoCo Program PAK (Banked)", tag, owner, clock, "cocopak_banked", __FILE__) + : coco_pak_device(mconfig, COCO_PAK_BANKED, tag, owner, clock) { } diff --git a/src/devices/bus/coco/coco_pak.h b/src/devices/bus/coco/coco_pak.h index f4fd2894681..6c7862da2ac 100644 --- a/src/devices/bus/coco/coco_pak.h +++ b/src/devices/bus/coco/coco_pak.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Nathan Woods -#pragma once +#ifndef MAME_BUS_COCO_COCO_PAK_H +#define MAME_BUS_COCO_COCO_PAK_H -#ifndef __COCO_PAK_H__ -#define __COCO_PAK_H__ +#pragma once #include "cococart.h" @@ -18,50 +18,52 @@ class coco_pak_device : public device_cococart_interface { public: - // construction/destruction - coco_pak_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - coco_pak_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); + // construction/destruction + coco_pak_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + + // optional information overrides + virtual machine_config_constructor device_mconfig_additions() const override; + virtual const tiny_rom_entry *device_rom_region() const override; + virtual ioport_constructor device_input_ports() const override; - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; - virtual const tiny_rom_entry *device_rom_region() const override; - virtual ioport_constructor device_input_ports() const override; + virtual uint8_t* get_cart_base() override; - virtual uint8_t* get_cart_base() override; protected: - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; + coco_pak_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); - // internal state - device_image_interface *m_cart; - cococart_slot_device *m_owner; + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; - optional_ioport m_autostart; + // internal state + device_image_interface *m_cart; + cococart_slot_device *m_owner; + + optional_ioport m_autostart; }; // device type definition -extern const device_type COCO_PAK; +DECLARE_DEVICE_TYPE(COCO_PAK, coco_pak_device) // ======================> coco_pak_banked_device -class coco_pak_banked_device : - public coco_pak_device +class coco_pak_banked_device : public coco_pak_device { public: - // construction/destruction - coco_pak_banked_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + // construction/destruction + coco_pak_banked_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); protected: - // device-level overrides - virtual void device_reset() override; - virtual DECLARE_WRITE8_MEMBER(write) override; + // device-level overrides + virtual void device_reset() override; + virtual DECLARE_WRITE8_MEMBER(write) override; private: - void banked_pak_set_bank(uint32_t bank); + void banked_pak_set_bank(uint32_t bank); }; // device type definition -extern const device_type COCO_PAK_BANKED; -#endif /* __COCO_PAK_H__ */ +DECLARE_DEVICE_TYPE(COCO_PAK_BANKED, coco_pak_banked_device) + +#endif // MAME_BUS_COCO_COCO_PAK_H diff --git a/src/devices/bus/coco/coco_t4426.cpp b/src/devices/bus/coco/coco_t4426.cpp index f76094695bf..aea2403f076 100644 --- a/src/devices/bus/coco/coco_t4426.cpp +++ b/src/devices/bus/coco/coco_t4426.cpp @@ -124,7 +124,7 @@ INPUT_PORTS_END // GLOBAL VARIABLES //************************************************************************** -const device_type COCO_T4426 = device_creator; +DEFINE_DEVICE_TYPE(COCO_T4426, coco_t4426_device, "coco_t4426", "Terco CNC Programming Station 4426 multi cart") //************************************************************************** // LIVE DEVICE @@ -134,27 +134,20 @@ const device_type COCO_T4426 = device_creator; // coco_t4426_device - constructor //------------------------------------------------- -coco_t4426_device::coco_t4426_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source) - ,device_cococart_interface( mconfig, *this ) - ,m_cart(nullptr) - ,m_owner(nullptr) - ,m_select(0) - ,m_autostart(*this, CART_AUTOSTART_TAG) - ,m_uart(*this, UART_TAG) - ,m_pia(*this, PIA_TAG) +coco_t4426_device::coco_t4426_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) + , device_cococart_interface(mconfig, *this) + , m_cart(nullptr) + , m_owner(nullptr) + , m_select(0) + , m_autostart(*this, CART_AUTOSTART_TAG) + , m_uart(*this, UART_TAG) + , m_pia(*this, PIA_TAG) { } coco_t4426_device::coco_t4426_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, COCO_T4426, "Terco CNC Programming Station 4426 multi cart", tag, owner, clock, "coco_t4426", __FILE__) - ,device_cococart_interface( mconfig, *this ) - ,m_cart(nullptr) - ,m_owner(nullptr) - ,m_select(0) - ,m_autostart(*this, CART_AUTOSTART_TAG) - ,m_uart(*this, UART_TAG) - ,m_pia(*this, PIA_TAG) + : coco_t4426_device(mconfig, COCO_T4426, tag, owner, clock) { } diff --git a/src/devices/bus/coco/coco_t4426.h b/src/devices/bus/coco/coco_t4426.h index 92beb845fd2..3d1aafacd7d 100644 --- a/src/devices/bus/coco/coco_t4426.h +++ b/src/devices/bus/coco/coco_t4426.h @@ -20,40 +20,41 @@ class coco_t4426_device : public device_cococart_interface { public: - // construction/destruction - coco_t4426_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - coco_t4426_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + // construction/destruction + coco_t4426_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; - virtual const tiny_rom_entry *device_rom_region() const override; - virtual ioport_constructor device_input_ports() const override; + // optional information overrides + virtual machine_config_constructor device_mconfig_additions() const override; + virtual const tiny_rom_entry *device_rom_region() const override; + virtual ioport_constructor device_input_ports() const override; - virtual uint8_t* get_cart_base() override; - DECLARE_WRITE8_MEMBER( pia_A_w ); + virtual uint8_t* get_cart_base() override; + DECLARE_WRITE8_MEMBER( pia_A_w ); protected: - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; + coco_t4426_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); - // internal state - device_image_interface *m_cart; - cococart_slot_device *m_owner; - uint8_t m_select; + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; - optional_ioport m_autostart; + // internal state + device_image_interface *m_cart; + cococart_slot_device *m_owner; + uint8_t m_select; - virtual DECLARE_READ8_MEMBER(read) override; - virtual DECLARE_WRITE8_MEMBER(write) override; + optional_ioport m_autostart; + + virtual DECLARE_READ8_MEMBER(read) override; + virtual DECLARE_WRITE8_MEMBER(write) override; private: - // internal state - required_device m_uart; - required_device m_pia; + // internal state + required_device m_uart; + required_device m_pia; }; // device type definition -extern const device_type COCO_T4426; +DECLARE_DEVICE_TYPE(COCO_T4426, coco_t4426_device) -#endif /* MAME_BUS_COCO_T4426_H */ +#endif // MAME_BUS_COCO_T4426_H diff --git a/src/devices/bus/coco/cococart.cpp b/src/devices/bus/coco/cococart.cpp index 545c29b408e..db2651e32ee 100644 --- a/src/devices/bus/coco/cococart.cpp +++ b/src/devices/bus/coco/cococart.cpp @@ -23,7 +23,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type COCOCART_SLOT = device_creator; +DEFINE_DEVICE_TYPE(COCOCART_SLOT, cococart_slot_device, "cococart_slot", "CoCo Cartridge Slot") @@ -35,12 +35,12 @@ const device_type COCOCART_SLOT = device_creator; // cococart_slot_device - constructor //------------------------------------------------- cococart_slot_device::cococart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, COCOCART_SLOT, "CoCo Cartridge Slot", tag, owner, clock, "cococart_slot", __FILE__), - device_slot_interface(mconfig, *this), - device_image_interface(mconfig, *this), - m_cart_callback(*this), - m_nmi_callback(*this), - m_halt_callback(*this), m_cart(nullptr) + device_t(mconfig, COCOCART_SLOT, tag, owner, clock), + device_slot_interface(mconfig, *this), + device_image_interface(mconfig, *this), + m_cart_callback(*this), + m_nmi_callback(*this), + m_halt_callback(*this), m_cart(nullptr) { } diff --git a/src/devices/bus/coco/cococart.h b/src/devices/bus/coco/cococart.h index bbb132359b0..1d6049119e7 100644 --- a/src/devices/bus/coco/cococart.h +++ b/src/devices/bus/coco/cococart.h @@ -8,8 +8,10 @@ *********************************************************************/ -#ifndef __COCOCART_H__ -#define __COCOCART_H__ +#ifndef MAME_BUS_COCO_COCOCART_H +#define MAME_BUS_COCO_COCOCART_H + +#pragma once #include "softlist_dev.h" @@ -61,9 +63,9 @@ public: // construction/destruction cococart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &static_set_cart_callback(device_t &device, _Object object) { return downcast(device).m_cart_callback.set_callback(object); } - template static devcb_base &static_set_nmi_callback(device_t &device, _Object object) { return downcast(device).m_nmi_callback.set_callback(object); } - template static devcb_base &static_set_halt_callback(device_t &device, _Object object) { return downcast(device).m_halt_callback.set_callback(object); } + template static devcb_base &static_set_cart_callback(device_t &device, Object &&cb) { return downcast(device).m_cart_callback.set_callback(std::forward(cb)); } + template static devcb_base &static_set_nmi_callback(device_t &device, Object &&cb) { return downcast(device).m_nmi_callback.set_callback(std::forward(cb)); } + template static devcb_base &static_set_halt_callback(device_t &device, Object &&cb) { return downcast(device).m_halt_callback.set_callback(std::forward(cb)); } // device-level overrides virtual void device_start() override; @@ -144,6 +146,7 @@ private: // device type definition extern const device_type COCOCART_SLOT; +DECLARE_DEVICE_TYPE(COCOCART_SLOT, cococart_slot_device) // ======================> device_cococart_interface @@ -151,7 +154,6 @@ class device_cococart_interface : public device_slot_card_interface { public: // construction/destruction - device_cococart_interface(const machine_config &mconfig, device_t &device); virtual ~device_cococart_interface(); virtual DECLARE_READ8_MEMBER(read); @@ -162,6 +164,8 @@ public: void set_cart_base_update(cococart_base_update_delegate update); protected: + device_cococart_interface(const machine_config &mconfig, device_t &device); + void cart_base_changed(void); private: @@ -179,4 +183,4 @@ private: #define MCFG_COCO_CARTRIDGE_REMOVE(_tag) \ MCFG_DEVICE_REMOVE(_tag) -#endif // __COCOCART_H__ +#endif // MAME_BUS_COCO_COCOCART_H diff --git a/src/devices/bus/coco/dragon_fdc.cpp b/src/devices/bus/coco/dragon_fdc.cpp index f6b161ba1f5..9b8a1d61317 100644 --- a/src/devices/bus/coco/dragon_fdc.cpp +++ b/src/devices/bus/coco/dragon_fdc.cpp @@ -91,11 +91,10 @@ namespace { class dragon_fdc_device_base : public coco_family_fdc_device_base { - public: + protected: // construction/destruction - dragon_fdc_device_base(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); + dragon_fdc_device_base(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); - protected: // device-level overrides virtual DECLARE_READ8_MEMBER(read) override; virtual DECLARE_WRITE8_MEMBER(write) override; @@ -104,13 +103,13 @@ namespace private: // device references - required_device m_wd2797; + required_device m_wd2797; required_device_array m_floppies; // methods void dskreg_w(uint8_t data); }; -}; +} /*************************************************************************** LOCAL VARIABLES @@ -144,8 +143,8 @@ MACHINE_CONFIG_END //------------------------------------------------- // dragon_fdc_device_base - constructor //------------------------------------------------- -dragon_fdc_device_base::dragon_fdc_device_base(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : coco_family_fdc_device_base(mconfig, type, name, tag, owner, clock, shortname, source) +dragon_fdc_device_base::dragon_fdc_device_base(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : coco_family_fdc_device_base(mconfig, type, tag, owner, clock) , m_wd2797(*this, WD2797_TAG) , m_floppies(*this, WD2797_TAG ":%u", 0) { @@ -288,7 +287,7 @@ namespace public: // construction/destruction dragon_fdc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : dragon_fdc_device_base(mconfig, DRAGON_FDC, "Dragon FDC", tag, owner, clock, "dragon_fdc", __FILE__) + : dragon_fdc_device_base(mconfig, DRAGON_FDC, tag, owner, clock) { } @@ -299,9 +298,9 @@ namespace return ROM_NAME(dragon_fdc); } }; -}; +} -const device_type DRAGON_FDC = device_creator; +DEFINE_DEVICE_TYPE(DRAGON_FDC, dragon_fdc_device, "dragon_fdc", "Dragon FDC") //************************************************************************** @@ -320,7 +319,7 @@ namespace public: // construction/destruction sdtandy_fdc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : dragon_fdc_device_base(mconfig, SDTANDY_FDC, "SDTANDY FDC", tag, owner, clock, "sdtandy_fdc", __FILE__) + : dragon_fdc_device_base(mconfig, SDTANDY_FDC, tag, owner, clock) { } @@ -331,6 +330,6 @@ namespace return ROM_NAME(sdtandy_fdc); } }; -}; +} -const device_type SDTANDY_FDC = device_creator; +DEFINE_DEVICE_TYPE(SDTANDY_FDC, sdtandy_fdc_device, "sdtandy_fdc", "SDTANDY FDC") diff --git a/src/devices/bus/coleco/ctrl.cpp b/src/devices/bus/coleco/ctrl.cpp index 6553f56b19a..630553998de 100644 --- a/src/devices/bus/coleco/ctrl.cpp +++ b/src/devices/bus/coleco/ctrl.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITION //************************************************************************** -const device_type COLECOVISION_CONTROL_PORT = device_creator; +DEFINE_DEVICE_TYPE(COLECOVISION_CONTROL_PORT, colecovision_control_port_device, "colecovision_control_port", "ColecoVision control port") @@ -46,8 +46,9 @@ device_colecovision_control_port_interface::device_colecovision_control_port_int //------------------------------------------------- colecovision_control_port_device::colecovision_control_port_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, COLECOVISION_CONTROL_PORT, "ColecoVision control port", tag, owner, clock, "colecovision_control_port", __FILE__), - device_slot_interface(mconfig, *this), m_device(nullptr), + device_t(mconfig, COLECOVISION_CONTROL_PORT, tag, owner, clock), + device_slot_interface(mconfig, *this), + m_device(nullptr), m_write_irq(*this) { } diff --git a/src/devices/bus/coleco/ctrl.h b/src/devices/bus/coleco/ctrl.h index 3555e0299e6..df39b41944c 100644 --- a/src/devices/bus/coleco/ctrl.h +++ b/src/devices/bus/coleco/ctrl.h @@ -9,10 +9,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_COLECO_CTRL_H +#define MAME_BUS_COLECO_CTRL_H -#ifndef __COLECOVISION_CONTROL_PORT__ -#define __COLECOVISION_CONTROL_PORT__ +#pragma once @@ -43,15 +43,14 @@ class colecovision_control_port_device; class device_colecovision_control_port_interface : public device_slot_card_interface { public: + virtual uint8_t joy_r() { return 0xff; } + virtual void common0_w(int state) { m_common0 = state; } + virtual void common1_w(int state) { m_common1 = state; } + +protected: // construction/destruction device_colecovision_control_port_interface(const machine_config &mconfig, device_t &device); - virtual ~device_colecovision_control_port_interface() { } - virtual uint8_t joy_r() { return 0xff; }; - virtual void common0_w(int state) { m_common0 = state; }; - virtual void common1_w(int state) { m_common1 = state; }; - -protected: colecovision_control_port_device *m_port; int m_common0; @@ -67,10 +66,9 @@ class colecovision_control_port_device : public device_t, public: // construction/destruction colecovision_control_port_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual ~colecovision_control_port_device() { } // static configuration helpers - template static devcb_base &set_irq_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_irq.set_callback(object); } + template static devcb_base &set_irq_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_irq.set_callback(std::forward(cb)); } // computer interface uint8_t read() { uint8_t data = 0xff; if (exists()) data = m_device->joy_r(); return data; } @@ -95,10 +93,9 @@ private: // device type definition -extern const device_type COLECOVISION_CONTROL_PORT; +DECLARE_DEVICE_TYPE(COLECOVISION_CONTROL_PORT, colecovision_control_port_device) SLOT_INTERFACE_EXTERN( colecovision_control_port_devices ); - -#endif +#endif // MAME_BUS_COLECO_CTRL_H diff --git a/src/devices/bus/coleco/exp.cpp b/src/devices/bus/coleco/exp.cpp index 2eafe5ac05b..b092fd5a49b 100644 --- a/src/devices/bus/coleco/exp.cpp +++ b/src/devices/bus/coleco/exp.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type COLECOVISION_CARTRIDGE_SLOT = device_creator; +DEFINE_DEVICE_TYPE(COLECOVISION_CARTRIDGE_SLOT, colecovision_cartridge_slot_device, "coleco_cartridge_port", "ColecoVision cartridge port") @@ -54,9 +54,10 @@ void device_colecovision_cartridge_interface::rom_alloc(size_t size) //------------------------------------------------- colecovision_cartridge_slot_device::colecovision_cartridge_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, COLECOVISION_CARTRIDGE_SLOT, "ColecoVision cartridge port", tag, owner, clock, "coleco_cartridge_port", __FILE__), + device_t(mconfig, COLECOVISION_CARTRIDGE_SLOT, tag, owner, clock), device_slot_interface(mconfig, *this), - device_image_interface(mconfig, *this), m_card(nullptr) + device_image_interface(mconfig, *this), + m_card(nullptr) { } diff --git a/src/devices/bus/coleco/exp.h b/src/devices/bus/coleco/exp.h index 2c9682381fc..4c4f8db8fa8 100644 --- a/src/devices/bus/coleco/exp.h +++ b/src/devices/bus/coleco/exp.h @@ -25,10 +25,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_COLECO_EXP_H +#define MAME_BUS_COLECO_EXP_H -#ifndef __COLECOVISION_CARTRIDGE_SLOT__ -#define __COLECOVISION_CARTRIDGE_SLOT__ +#pragma once #include "softlist_dev.h" @@ -66,7 +66,6 @@ class colecovision_cartridge_slot_device : public device_t, public: // construction/destruction colecovision_cartridge_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual ~colecovision_cartridge_slot_device() { } // computer interface uint8_t bd_r(address_space &space, offs_t offset, uint8_t data, int _8000, int _a000, int _c000, int _e000); @@ -103,15 +102,14 @@ class device_colecovision_cartridge_interface : public device_slot_card_interfac friend class colecovision_cartridge_slot_device; public: - // construction/destruction - device_colecovision_cartridge_interface(const machine_config &mconfig, device_t &device); - virtual ~device_colecovision_cartridge_interface() { } - virtual uint8_t bd_r(address_space &space, offs_t offset, uint8_t data, int _8000, int _a000, int _c000, int _e000) { return 0xff; } void rom_alloc(size_t size); protected: + // construction/destruction + device_colecovision_cartridge_interface(const machine_config &mconfig, device_t &device); + uint8_t *m_rom; size_t m_rom_size; @@ -120,10 +118,9 @@ protected: // device type definition -extern const device_type COLECOVISION_CARTRIDGE_SLOT; +DECLARE_DEVICE_TYPE(COLECOVISION_CARTRIDGE_SLOT, colecovision_cartridge_slot_device) SLOT_INTERFACE_EXTERN( colecovision_cartridges ); - -#endif +#endif // MAME_BUS_COLECO_EXP_H diff --git a/src/devices/bus/coleco/hand.cpp b/src/devices/bus/coleco/hand.cpp index 9e9f7610dd4..c11652b5ad5 100644 --- a/src/devices/bus/coleco/hand.cpp +++ b/src/devices/bus/coleco/hand.cpp @@ -15,10 +15,10 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type COLECO_HAND_CONTROLLER = device_creator; +DEFINE_DEVICE_TYPE(COLECO_HAND_CONTROLLER, coleco_hand_controller_device, "coleco_hand", "ColecoVision Hand Controller") -CUSTOM_INPUT_MEMBER( coleco_hand_controller_t::keypad_r ) +CUSTOM_INPUT_MEMBER( coleco_hand_controller_device::keypad_r ) { uint8_t data = 0xf; uint16_t keypad = m_io_keypad->read(); @@ -50,7 +50,7 @@ static INPUT_PORTS_START( coleco_hand_controller ) PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_START("COMMON1") - PORT_BIT( 0x0f, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, coleco_hand_controller_t, keypad_r, nullptr) + PORT_BIT( 0x0f, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, coleco_hand_controller_device, keypad_r, nullptr) PORT_BIT( 0x30, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) @@ -75,7 +75,7 @@ INPUT_PORTS_END // input_ports - device-specific input ports //------------------------------------------------- -ioport_constructor coleco_hand_controller_t::device_input_ports() const +ioport_constructor coleco_hand_controller_device::device_input_ports() const { return INPUT_PORTS_NAME( coleco_hand_controller ); } @@ -87,11 +87,11 @@ ioport_constructor coleco_hand_controller_t::device_input_ports() const //************************************************************************** //------------------------------------------------- -// coleco_hand_controller_t - constructor +// coleco_hand_controller_device - constructor //------------------------------------------------- -coleco_hand_controller_t::coleco_hand_controller_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, COLECO_HAND_CONTROLLER, "ColecoVision Hand Controller", tag, owner, clock, "coleco_hand", __FILE__), +coleco_hand_controller_device::coleco_hand_controller_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, COLECO_HAND_CONTROLLER, tag, owner, clock), device_colecovision_control_port_interface(mconfig, *this), m_io_common0(*this, "COMMON0"), m_io_common1(*this, "COMMON1"), @@ -104,7 +104,7 @@ coleco_hand_controller_t::coleco_hand_controller_t(const machine_config &mconfig // device_start - device-specific startup //------------------------------------------------- -void coleco_hand_controller_t::device_start() +void coleco_hand_controller_device::device_start() { // state saving save_item(NAME(m_common0)); @@ -116,7 +116,7 @@ void coleco_hand_controller_t::device_start() // joy_r - joystick read //------------------------------------------------- -uint8_t coleco_hand_controller_t::joy_r() +uint8_t coleco_hand_controller_device::joy_r() { uint8_t data = 0x7f; diff --git a/src/devices/bus/coleco/hand.h b/src/devices/bus/coleco/hand.h index 01e4e928534..f65ad709106 100644 --- a/src/devices/bus/coleco/hand.h +++ b/src/devices/bus/coleco/hand.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_COLECO_HAND_H +#define MAME_BUS_COLECO_HAND_H -#ifndef __COLECO_HAND_CONTROLLER__ -#define __COLECO_HAND_CONTROLLER__ +#pragma once #include "ctrl.h" @@ -19,14 +19,14 @@ // TYPE DEFINITIONS //************************************************************************** -// ======================> coleco_hand_controller_t +// ======================> coleco_hand_controller_device -class coleco_hand_controller_t : public device_t, +class coleco_hand_controller_device : public device_t, public device_colecovision_control_port_interface { public: // construction/destruction - coleco_hand_controller_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + coleco_hand_controller_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual ioport_constructor device_input_ports() const override; @@ -48,7 +48,7 @@ private: // device type definition -extern const device_type COLECO_HAND_CONTROLLER; +DECLARE_DEVICE_TYPE(COLECO_HAND_CONTROLLER, coleco_hand_controller_device) -#endif +#endif // MAME_BUS_COLECO_HAND_H diff --git a/src/devices/bus/coleco/sac.cpp b/src/devices/bus/coleco/sac.cpp index 28835f7ad85..fd016a0dc19 100644 --- a/src/devices/bus/coleco/sac.cpp +++ b/src/devices/bus/coleco/sac.cpp @@ -15,10 +15,10 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type COLECO_SUPER_ACTION_CONTROLLER = device_creator; +DEFINE_DEVICE_TYPE(COLECO_SUPER_ACTION_CONTROLLER, coleco_super_action_controller_device, "coleco_sac", "ColecoVision Super Action Controller") -CUSTOM_INPUT_MEMBER( coleco_super_action_controller_t::keypad_r ) +CUSTOM_INPUT_MEMBER( coleco_super_action_controller_device::keypad_r ) { uint8_t data = 0xf; uint16_t keypad = m_io_keypad->read(); @@ -41,7 +41,7 @@ CUSTOM_INPUT_MEMBER( coleco_super_action_controller_t::keypad_r ) return data; } -INPUT_CHANGED_MEMBER( coleco_super_action_controller_t::slider_w ) +INPUT_CHANGED_MEMBER( coleco_super_action_controller_device::slider_w ) { // TODO } @@ -57,7 +57,7 @@ static INPUT_PORTS_START( coleco_super_action_controller ) PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_START("COMMON1") - PORT_BIT( 0x0f, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, coleco_super_action_controller_t, keypad_r, nullptr) + PORT_BIT( 0x0f, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, coleco_super_action_controller_device, keypad_r, nullptr) PORT_BIT( 0x30, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) @@ -79,7 +79,7 @@ static INPUT_PORTS_START( coleco_super_action_controller ) PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_START("SLIDER") - PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(100) PORT_KEYDELTA(25) PORT_REVERSE PORT_RESET PORT_CHANGED_MEMBER(DEVICE_SELF, coleco_super_action_controller_t, slider_w, nullptr) + PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(100) PORT_KEYDELTA(25) PORT_REVERSE PORT_RESET PORT_CHANGED_MEMBER(DEVICE_SELF, coleco_super_action_controller_device, slider_w, nullptr) INPUT_PORTS_END @@ -87,7 +87,7 @@ INPUT_PORTS_END // input_ports - device-specific input ports //------------------------------------------------- -ioport_constructor coleco_super_action_controller_t::device_input_ports() const +ioport_constructor coleco_super_action_controller_device::device_input_ports() const { return INPUT_PORTS_NAME( coleco_super_action_controller ); } @@ -99,11 +99,11 @@ ioport_constructor coleco_super_action_controller_t::device_input_ports() const //************************************************************************** //------------------------------------------------- -// coleco_super_action_controller_t - constructor +// coleco_super_action_controller_device - constructor //------------------------------------------------- -coleco_super_action_controller_t::coleco_super_action_controller_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, COLECO_SUPER_ACTION_CONTROLLER, "ColecoVision Super Action Controller", tag, owner, clock, "coleco_sac", __FILE__), +coleco_super_action_controller_device::coleco_super_action_controller_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, COLECO_SUPER_ACTION_CONTROLLER, tag, owner, clock), device_colecovision_control_port_interface(mconfig, *this), m_io_common0(*this, "COMMON0"), m_io_common1(*this, "COMMON1"), @@ -116,7 +116,7 @@ coleco_super_action_controller_t::coleco_super_action_controller_t(const machine // device_start - device-specific startup //------------------------------------------------- -void coleco_super_action_controller_t::device_start() +void coleco_super_action_controller_device::device_start() { // state saving save_item(NAME(m_common0)); @@ -128,7 +128,7 @@ void coleco_super_action_controller_t::device_start() // joy_r - joystick read //------------------------------------------------- -uint8_t coleco_super_action_controller_t::joy_r() +uint8_t coleco_super_action_controller_device::joy_r() { uint8_t data = 0x7f; diff --git a/src/devices/bus/coleco/sac.h b/src/devices/bus/coleco/sac.h index 7b6a65b6440..20078e33ef7 100644 --- a/src/devices/bus/coleco/sac.h +++ b/src/devices/bus/coleco/sac.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_COLECO_SAC_H +#define MAME_BUS_COLECO_SAC_H -#ifndef __COLECO_SUPER_ACTION_CONTROLLER__ -#define __COLECO_SUPER_ACTION_CONTROLLER__ +#pragma once #include "ctrl.h" @@ -19,14 +19,14 @@ // TYPE DEFINITIONS //************************************************************************** -// ======================> coleco_super_action_controller_t +// ======================> coleco_super_action_controller_device -class coleco_super_action_controller_t : public device_t, +class coleco_super_action_controller_device : public device_t, public device_colecovision_control_port_interface { public: // construction/destruction - coleco_super_action_controller_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + coleco_super_action_controller_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual ioport_constructor device_input_ports() const override; @@ -49,7 +49,7 @@ private: // device type definition -extern const device_type COLECO_SUPER_ACTION_CONTROLLER; +DECLARE_DEVICE_TYPE(COLECO_SUPER_ACTION_CONTROLLER, coleco_super_action_controller_device) -#endif +#endif // MAME_BUS_COLECO_SAC_H diff --git a/src/devices/bus/coleco/std.cpp b/src/devices/bus/coleco/std.cpp index d6ba16eafa5..ae490dea2e9 100644 --- a/src/devices/bus/coleco/std.cpp +++ b/src/devices/bus/coleco/std.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type COLECOVISION_STANDARD = device_creator; +DEFINE_DEVICE_TYPE(COLECOVISION_STANDARD, colecovision_standard_cartridge_device, "colecovision_standard", "ColecoVision standard cartridge") @@ -28,7 +28,7 @@ const device_type COLECOVISION_STANDARD = device_creator; +DEFINE_DEVICE_TYPE(COLECOVISION_XIN1, colecovision_xin1_cartridge_device, "colecovision_xin1", "ColecoVision X-in-1 cartridge") @@ -28,7 +28,7 @@ const device_type COLECOVISION_XIN1 = device_creator; +DEFINE_DEVICE_TYPE(COMPIS_GRAPHICS_SLOT, compis_graphics_slot_device, "compisgfx_slot", "Compis graphics slot") @@ -30,16 +30,16 @@ const device_type COMPIS_GRAPHICS_SLOT = device_creator; device_compis_graphics_card_interface::device_compis_graphics_card_interface(const machine_config &mconfig, device_t &device) : device_slot_card_interface(mconfig, device) { - m_slot = dynamic_cast(device.owner()); + m_slot = dynamic_cast(device.owner()); } //------------------------------------------------- -// compis_graphics_slot_t - constructor +// compis_graphics_slot_device - constructor //------------------------------------------------- -compis_graphics_slot_t::compis_graphics_slot_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, COMPIS_GRAPHICS_SLOT, "Compis graphics slot", tag, owner, clock, "compisgfx_slot", __FILE__), +compis_graphics_slot_device::compis_graphics_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, COMPIS_GRAPHICS_SLOT, tag, owner, clock), device_slot_interface(mconfig, *this), m_write_dma_request(*this), m_card(nullptr) @@ -51,7 +51,7 @@ compis_graphics_slot_t::compis_graphics_slot_t(const machine_config &mconfig, co // device_start - device-specific startup //------------------------------------------------- -void compis_graphics_slot_t::device_start() +void compis_graphics_slot_device::device_start() { m_card = dynamic_cast(get_card_device()); diff --git a/src/devices/bus/compis/graphics.h b/src/devices/bus/compis/graphics.h index 9985a41738d..f42bb2bdd30 100644 --- a/src/devices/bus/compis/graphics.h +++ b/src/devices/bus/compis/graphics.h @@ -8,10 +8,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_COMPIS_GRAPHICS_H +#define MAME_BUS_COMPIS_GRAPHICS_H -#ifndef __COMPIS_GRAPHICS_SLOT__ -#define __COMPIS_GRAPHICS_SLOT__ +#pragma once @@ -26,7 +26,7 @@ #define MCFG_COMPIS_GRAPHICS_SLOT_DMA_REQUEST_CALLBACK(_dma_request) \ - downcast(device)->set_dma_request_callback(DEVCB_##_dma_request); + downcast(device)->set_dma_request_callback(DEVCB_##_dma_request); @@ -36,14 +36,11 @@ // ======================> device_compis_graphics_card_interface -class compis_graphics_slot_t; +class compis_graphics_slot_device; class device_compis_graphics_card_interface : public device_slot_card_interface { public: - // construction/destruction - device_compis_graphics_card_interface(const machine_config &mconfig, device_t &device); - virtual uint8_t mcs0_r(address_space &space, offs_t offset) { return 0xff; } virtual void mcs0_w(address_space &space, offs_t offset, uint8_t data) { } virtual uint8_t mcs1_r(address_space &space, offs_t offset) { return 0xff; } @@ -56,18 +53,21 @@ public: virtual void dma_ack_w(address_space &space, offs_t offset, uint8_t data) { } protected: - compis_graphics_slot_t *m_slot; + // construction/destruction + device_compis_graphics_card_interface(const machine_config &mconfig, device_t &device); + + compis_graphics_slot_device *m_slot; }; -// ======================> compis_graphics_slot_t +// ======================> compis_graphics_slot_device -class compis_graphics_slot_t : public device_t, +class compis_graphics_slot_device : public device_t, public device_slot_interface { public: // construction/destruction - compis_graphics_slot_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + compis_graphics_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); template void set_dma_request_callback(_dma_request dma_request) { m_write_dma_request.set_callback(dma_request); } @@ -98,11 +98,10 @@ protected: // device type definition -extern const device_type COMPIS_GRAPHICS_SLOT; +DECLARE_DEVICE_TYPE(COMPIS_GRAPHICS_SLOT, compis_graphics_slot_device) SLOT_INTERFACE_EXTERN( compis_graphics_cards ); - -#endif +#endif // MAME_BUS_COMPIS_GRAPHICS_H diff --git a/src/devices/bus/compis/hrg.cpp b/src/devices/bus/compis/hrg.cpp index 052f2d5ee98..7931ee123d9 100644 --- a/src/devices/bus/compis/hrg.cpp +++ b/src/devices/bus/compis/hrg.cpp @@ -24,20 +24,20 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type COMPIS_HRG = device_creator; -const device_type COMPIS_UHRG = device_creator; +DEFINE_DEVICE_TYPE(COMPIS_HRG, compis_hrg_device, "compis_hrg", "Compis HRG") +DEFINE_DEVICE_TYPE(COMPIS_UHRG, compis_uhrg_device, "compis_uhrg", "Compis UHRG") //------------------------------------------------- // ADDRESS_MAP( upd7220_map ) //------------------------------------------------- -static ADDRESS_MAP_START( hrg_map, AS_0, 16, compis_hrg_t ) +static ADDRESS_MAP_START( hrg_map, AS_0, 16, compis_hrg_device ) ADDRESS_MAP_GLOBAL_MASK(0x7fff) AM_RANGE(0x00000, 0x7fff) AM_RAM AM_SHARE("video_ram") ADDRESS_MAP_END -static ADDRESS_MAP_START( uhrg_map, AS_0, 16, compis_uhrg_t ) +static ADDRESS_MAP_START( uhrg_map, AS_0, 16, compis_uhrg_device ) ADDRESS_MAP_GLOBAL_MASK(0x1ffff) AM_RANGE(0x00000, 0x1ffff) AM_RAM AM_SHARE("video_ram") ADDRESS_MAP_END @@ -47,7 +47,7 @@ ADDRESS_MAP_END // UPD7220_DISPLAY_PIXELS_MEMBER( display_pixels ) //------------------------------------------------- -UPD7220_DISPLAY_PIXELS_MEMBER( compis_hrg_t::display_pixels ) +UPD7220_DISPLAY_PIXELS_MEMBER( compis_hrg_device::display_pixels ) { uint16_t i,gfx = m_video_ram[(address & 0x7fff) >> 1]; const pen_t *pen = m_palette->pens(); @@ -61,7 +61,7 @@ UPD7220_DISPLAY_PIXELS_MEMBER( compis_hrg_t::display_pixels ) // UPD7220_DISPLAY_PIXELS_MEMBER( display_pixels ) //------------------------------------------------- -UPD7220_DISPLAY_PIXELS_MEMBER( compis_uhrg_t::display_pixels ) +UPD7220_DISPLAY_PIXELS_MEMBER( compis_uhrg_device::display_pixels ) { uint16_t i,gfx = m_video_ram[(address & 0x1ffff) >> 1]; const pen_t *pen = m_palette->pens(); @@ -86,7 +86,7 @@ static MACHINE_CONFIG_FRAGMENT( hrg ) MCFG_DEVICE_ADD(UPD7220_TAG, UPD7220, 2252500) // unknown clock MCFG_DEVICE_ADDRESS_MAP(AS_0, hrg_map) - MCFG_UPD7220_DISPLAY_PIXELS_CALLBACK_OWNER(compis_hrg_t, display_pixels) + MCFG_UPD7220_DISPLAY_PIXELS_CALLBACK_OWNER(compis_hrg_device, display_pixels) MCFG_VIDEO_SET_SCREEN(SCREEN_TAG) MCFG_PALETTE_ADD_MONOCHROME("palette") @@ -98,7 +98,7 @@ MACHINE_CONFIG_END // machine configurations //------------------------------------------------- -machine_config_constructor compis_hrg_t::device_mconfig_additions() const +machine_config_constructor compis_hrg_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( hrg ); } @@ -119,7 +119,7 @@ static MACHINE_CONFIG_FRAGMENT( uhrg ) MCFG_DEVICE_ADD(UPD7220_TAG, UPD7220, 2252500*2) // unknown clock MCFG_DEVICE_ADDRESS_MAP(AS_0, uhrg_map) - MCFG_UPD7220_DISPLAY_PIXELS_CALLBACK_OWNER(compis_uhrg_t, display_pixels) + MCFG_UPD7220_DISPLAY_PIXELS_CALLBACK_OWNER(compis_uhrg_device, display_pixels) MCFG_VIDEO_SET_SCREEN(SCREEN_TAG) MCFG_PALETTE_ADD_MONOCHROME("palette") @@ -131,7 +131,7 @@ MACHINE_CONFIG_END // machine configurations //------------------------------------------------- -machine_config_constructor compis_uhrg_t::device_mconfig_additions() const +machine_config_constructor compis_uhrg_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( uhrg ); } @@ -143,11 +143,11 @@ machine_config_constructor compis_uhrg_t::device_mconfig_additions() const //************************************************************************** //------------------------------------------------- -// compis_hrg_t - constructor +// compis_hrg_device - constructor //------------------------------------------------- -compis_hrg_t::compis_hrg_t(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), +compis_hrg_device::compis_hrg_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), device_compis_graphics_card_interface(mconfig, *this), m_crtc(*this, UPD7220_TAG), m_palette(*this, "palette"), @@ -155,13 +155,13 @@ compis_hrg_t::compis_hrg_t(const machine_config &mconfig, device_type type, cons { } -compis_hrg_t::compis_hrg_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - compis_hrg_t(mconfig, COMPIS_HRG, "Compis HRG", tag, owner, clock, "compis_hrg", __FILE__) +compis_hrg_device::compis_hrg_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + compis_hrg_device(mconfig, COMPIS_HRG, tag, owner, clock) { } -compis_uhrg_t::compis_uhrg_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - compis_hrg_t(mconfig, COMPIS_UHRG, "Compis UHRG", tag, owner, clock, "compis_uhrg", __FILE__) +compis_uhrg_device::compis_uhrg_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + compis_hrg_device(mconfig, COMPIS_UHRG, tag, owner, clock) { } @@ -170,7 +170,7 @@ compis_uhrg_t::compis_uhrg_t(const machine_config &mconfig, const char *tag, dev // device_start - device-specific startup //------------------------------------------------- -void compis_hrg_t::device_start() +void compis_hrg_device::device_start() { } @@ -179,7 +179,7 @@ void compis_hrg_t::device_start() // device_reset - device-specific reset //------------------------------------------------- -void compis_hrg_t::device_reset() +void compis_hrg_device::device_reset() { } @@ -188,7 +188,7 @@ void compis_hrg_t::device_reset() // pcs6_6_r - //------------------------------------------------- -uint8_t compis_hrg_t::pcs6_6_r(address_space &space, offs_t offset) +uint8_t compis_hrg_device::pcs6_6_r(address_space &space, offs_t offset) { uint8_t data = 0xff; @@ -225,7 +225,7 @@ uint8_t compis_hrg_t::pcs6_6_r(address_space &space, offs_t offset) // pcs6_6_w - //------------------------------------------------- -void compis_hrg_t::pcs6_6_w(address_space &space, offs_t offset, uint8_t data) +void compis_hrg_device::pcs6_6_w(address_space &space, offs_t offset, uint8_t data) { //logerror("%s PCS 6:6 write %04x : %02x\n", machine().describe_context(), offset, data); diff --git a/src/devices/bus/compis/hrg.h b/src/devices/bus/compis/hrg.h index 96ea1db02cb..50dfe882d58 100644 --- a/src/devices/bus/compis/hrg.h +++ b/src/devices/bus/compis/hrg.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_COMPIS_HRG_H +#define MAME_BUS_COMPIS_HRG_H -#ifndef __COMPIS_HRG__ -#define __COMPIS_HRG__ +#pragma once #include "graphics.h" #include "video/upd7220.h" @@ -20,15 +20,14 @@ // TYPE DEFINITIONS //************************************************************************** -// ======================> compis_hrg_t +// ======================> compis_hrg_device -class compis_hrg_t : public device_t, +class compis_hrg_device : public device_t, public device_compis_graphics_card_interface { public: // construction/destruction - compis_hrg_t(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - compis_hrg_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + compis_hrg_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual machine_config_constructor device_mconfig_additions() const override; @@ -36,6 +35,8 @@ public: UPD7220_DISPLAY_PIXELS_MEMBER( display_pixels ); protected: + compis_hrg_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -52,13 +53,13 @@ protected: }; -// ======================> compis_uhrg_t +// ======================> compis_uhrg_device -class compis_uhrg_t : public compis_hrg_t +class compis_uhrg_device : public compis_hrg_device { public: // construction/destruction - compis_uhrg_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + compis_uhrg_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual machine_config_constructor device_mconfig_additions() const override; @@ -68,9 +69,8 @@ public: // device type definition -extern const device_type COMPIS_HRG; -extern const device_type COMPIS_UHRG; - +DECLARE_DEVICE_TYPE(COMPIS_HRG, compis_hrg_device) +DECLARE_DEVICE_TYPE(COMPIS_UHRG, compis_uhrg_device) -#endif +#endif // MAME_BUS_COMPIS_HRG_H diff --git a/src/devices/bus/compucolor/floppy.cpp b/src/devices/bus/compucolor/floppy.cpp index 7c7fa88472b..77e4e0f5d53 100644 --- a/src/devices/bus/compucolor/floppy.cpp +++ b/src/devices/bus/compucolor/floppy.cpp @@ -15,8 +15,8 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type COMPUCOLOR_FLOPPY_PORT = device_creator; -const device_type COMPUCOLOR_FLOPPY = device_creator; +DEFINE_DEVICE_TYPE(COMPUCOLOR_FLOPPY_PORT, compucolor_floppy_port_device, "compclr_flp_port", "Compucolor Floppy Port") +DEFINE_DEVICE_TYPE(COMPUCOLOR_FLOPPY, compucolor_floppy_device, "compclr_flp", "Compucolor floppy") //------------------------------------------------- @@ -86,7 +86,7 @@ device_compucolor_floppy_port_interface::device_compucolor_floppy_port_interface //------------------------------------------------- compucolor_floppy_port_device::compucolor_floppy_port_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : rs232_port_device(mconfig, COMPUCOLOR_FLOPPY_PORT, "Compucolor Floppy Port", tag, owner, clock, "compclr_flp_port", __FILE__), m_dev(nullptr) + : rs232_port_device(mconfig, COMPUCOLOR_FLOPPY_PORT, tag, owner, clock), m_dev(nullptr) { } @@ -96,13 +96,13 @@ compucolor_floppy_port_device::compucolor_floppy_port_device(const machine_confi //------------------------------------------------- compucolor_floppy_device::compucolor_floppy_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, COMPUCOLOR_FLOPPY, "Compucolor floppy", tag, owner, clock, "compclr_flp", __FILE__), - device_compucolor_floppy_port_interface(mconfig, *this), - m_floppy(*this, "floppy:525sssd"), - m_rw(1), - m_stp(0), - m_sel(1), - m_period(attotime::from_hz(9600*8)) + : device_t(mconfig, COMPUCOLOR_FLOPPY, tag, owner, clock) + , device_compucolor_floppy_port_interface(mconfig, *this) + , m_floppy(*this, "floppy:525sssd") + , m_rw(1) + , m_stp(0) + , m_sel(1) + , m_period(attotime::from_hz(9600*8)) { m_owner = dynamic_cast(this->owner()); } diff --git a/src/devices/bus/compucolor/floppy.h b/src/devices/bus/compucolor/floppy.h index 22a716457f3..69c6524ab01 100644 --- a/src/devices/bus/compucolor/floppy.h +++ b/src/devices/bus/compucolor/floppy.h @@ -6,10 +6,10 @@ *********************************************************************/ -#pragma once +#ifndef MAME_BUS_COMPUCOLOR_FLOPPY_H +#define MAME_BUS_COMPUCOLOR_FLOPPY_H -#ifndef __COMPCLR_FLP__ -#define __COMPCLR_FLP__ +#pragma once #include "bus/rs232/rs232.h" #include "formats/ccvf_dsk.h" @@ -36,12 +36,12 @@ class device_compucolor_floppy_port_interface : public device_rs232_port_interface { public: - device_compucolor_floppy_port_interface(const machine_config &mconfig, device_t &device); - virtual ~device_compucolor_floppy_port_interface() { } - virtual void rw_w(int state) = 0; virtual void stepper_w(uint8_t data) = 0; virtual void select_w(int state) = 0; + +protected: + device_compucolor_floppy_port_interface(const machine_config &mconfig, device_t &device); }; @@ -51,7 +51,6 @@ class compucolor_floppy_port_device : public rs232_port_device { public: compucolor_floppy_port_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual ~compucolor_floppy_port_device() { } DECLARE_WRITE_LINE_MEMBER( rw_w ) { if (m_dev) m_dev->rw_w(state); } void stepper_w(uint8_t data) { if (m_dev) m_dev->stepper_w(data); } @@ -69,8 +68,7 @@ private: // ======================> compucolor_floppy_device -class compucolor_floppy_device : public device_t, - public device_compucolor_floppy_port_interface +class compucolor_floppy_device : public device_t, public device_compucolor_floppy_port_interface { public: // construction/destruction @@ -113,11 +111,11 @@ private: // device type definition -extern const device_type COMPUCOLOR_FLOPPY_PORT; -extern const device_type COMPUCOLOR_FLOPPY; +DECLARE_DEVICE_TYPE(COMPUCOLOR_FLOPPY_PORT, compucolor_floppy_port_device) +DECLARE_DEVICE_TYPE(COMPUCOLOR_FLOPPY, compucolor_floppy_device) // slot devices SLOT_INTERFACE_EXTERN( compucolor_floppy_port_devices ); -#endif +#endif // MAME_BUS_COMPUCOLOR_FLOPPY_H diff --git a/src/devices/bus/comx35/clm.cpp b/src/devices/bus/comx35/clm.cpp index 65a0b3fd9c9..0ddd65d5d6c 100644 --- a/src/devices/bus/comx35/clm.cpp +++ b/src/devices/bus/comx35/clm.cpp @@ -64,7 +64,7 @@ Notes: // DEVICE DEFINITIONS //************************************************************************** -const device_type COMX_CLM = device_creator; +DEFINE_DEVICE_TYPE(COMX_CLM, comx_clm_device, "comx_clm", "COMX 80 Column Card") //------------------------------------------------- @@ -175,7 +175,7 @@ machine_config_constructor comx_clm_device::device_mconfig_additions() const //------------------------------------------------- comx_clm_device::comx_clm_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, COMX_CLM, "COMX 80 Column Card", tag, owner, clock, "comx_clm", __FILE__), + device_t(mconfig, COMX_CLM, tag, owner, clock), device_comx_expansion_card_interface(mconfig, *this), device_gfx_interface(mconfig, *this, nullptr, "palette"), m_crtc(*this, MC6845_TAG), diff --git a/src/devices/bus/comx35/clm.h b/src/devices/bus/comx35/clm.h index 7230cece942..4967d386214 100644 --- a/src/devices/bus/comx35/clm.h +++ b/src/devices/bus/comx35/clm.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_COMX35_CLM_H +#define MAME_BUS_COMX35_CLM_H -#ifndef __COMX_CLM__ -#define __COMX_CLM__ +#pragma once #include "exp.h" #include "video/mc6845.h" @@ -57,7 +57,7 @@ private: // device type definition -extern const device_type COMX_CLM; +DECLARE_DEVICE_TYPE(COMX_CLM, comx_clm_device) -#endif +#endif // MAME_BUS_COMX35_CLM_H diff --git a/src/devices/bus/comx35/eprom.cpp b/src/devices/bus/comx35/eprom.cpp index 701a78a9f8b..ab1b2b97504 100644 --- a/src/devices/bus/comx35/eprom.cpp +++ b/src/devices/bus/comx35/eprom.cpp @@ -21,7 +21,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type COMX_EPR = device_creator; +DEFINE_DEVICE_TYPE(COMX_EPR, comx_epr_device, "comx_epr", "COMX-35 F&M EPROM Switchboard") //------------------------------------------------- @@ -58,7 +58,7 @@ const tiny_rom_entry *comx_epr_device::device_rom_region() const //------------------------------------------------- comx_epr_device::comx_epr_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, COMX_EPR, "COMX-35 F&M EPROM Switchboard", tag, owner, clock, "comx_epr", __FILE__), + device_t(mconfig, COMX_EPR, tag, owner, clock), device_comx_expansion_card_interface(mconfig, *this), m_rom(*this, "f800"), m_eprom(*this, "eprom"), diff --git a/src/devices/bus/comx35/eprom.h b/src/devices/bus/comx35/eprom.h index afd0e4e08d9..c6489dfa774 100644 --- a/src/devices/bus/comx35/eprom.h +++ b/src/devices/bus/comx35/eprom.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_COMX35_EPROM_H +#define MAME_BUS_COMX35_EPROM_H -#ifndef __COMX_EPR__ -#define __COMX_EPR__ +#pragma once #include "exp.h" @@ -49,7 +49,7 @@ private: // device type definition -extern const device_type COMX_EPR; +DECLARE_DEVICE_TYPE(COMX_EPR, comx_epr_device) -#endif +#endif // MAME_BUS_COMX35_EPROM_H diff --git a/src/devices/bus/comx35/exp.cpp b/src/devices/bus/comx35/exp.cpp index 8e2aacf910e..8c160829bdc 100644 --- a/src/devices/bus/comx35/exp.cpp +++ b/src/devices/bus/comx35/exp.cpp @@ -14,7 +14,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type COMX_EXPANSION_SLOT = device_creator; +DEFINE_DEVICE_TYPE(COMX_EXPANSION_SLOT, comx_expansion_slot_device, "comx_expansion_slot", "COMX-35 expansion slot") @@ -44,7 +44,7 @@ device_comx_expansion_card_interface::device_comx_expansion_card_interface(const //------------------------------------------------- comx_expansion_slot_device::comx_expansion_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, COMX_EXPANSION_SLOT, "COMX-35 expansion slot", tag, owner, clock, "comx_expansion_slot", __FILE__), + device_t(mconfig, COMX_EXPANSION_SLOT, tag, owner, clock), device_slot_interface(mconfig, *this), m_write_irq(*this), m_card(nullptr) { diff --git a/src/devices/bus/comx35/exp.h b/src/devices/bus/comx35/exp.h index c8bec33960c..c52b7eee849 100644 --- a/src/devices/bus/comx35/exp.h +++ b/src/devices/bus/comx35/exp.h @@ -31,10 +31,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_COMX35_EXP_H +#define MAME_BUS_COMX35_EXP_H -#ifndef __COMX35_EXPANSION_SLOT__ -#define __COMX35_EXPANSION_SLOT__ +#pragma once @@ -75,9 +75,8 @@ class comx_expansion_slot_device : public device_t, public: // construction/destruction comx_expansion_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual ~comx_expansion_slot_device() { } - template static devcb_base &set_irq_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_irq.set_callback(object); } + template static devcb_base &set_irq_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_irq.set_callback(std::forward(cb)); } uint8_t mrd_r(address_space &space, offs_t offset, int *extrom); void mwr_w(address_space &space, offs_t offset, uint8_t data); @@ -109,24 +108,22 @@ class device_comx_expansion_card_interface : public device_slot_card_interface { friend class comx_expansion_slot_device; -public: +protected: // construction/destruction device_comx_expansion_card_interface(const machine_config &mconfig, device_t &device); - virtual ~device_comx_expansion_card_interface() { } -protected: // signals virtual int comx_ef4_r() { return CLEAR_LINE; } - virtual void comx_ds_w(int state) { m_ds = state; }; - virtual void comx_q_w(int state) { }; + virtual void comx_ds_w(int state) { m_ds = state; } + virtual void comx_q_w(int state) { } // memory access - virtual uint8_t comx_mrd_r(address_space &space, offs_t offset, int *extrom) { return 0; }; - virtual void comx_mwr_w(address_space &space, offs_t offset, uint8_t data) { }; + virtual uint8_t comx_mrd_r(address_space &space, offs_t offset, int *extrom) { return 0; } + virtual void comx_mwr_w(address_space &space, offs_t offset, uint8_t data) { } // I/O access - virtual uint8_t comx_io_r(address_space &space, offs_t offset) { return 0; }; - virtual void comx_io_w(address_space &space, offs_t offset, uint8_t data) { }; + virtual uint8_t comx_io_r(address_space &space, offs_t offset) { return 0; } + virtual void comx_io_w(address_space &space, offs_t offset, uint8_t data) { } comx_expansion_slot_device *m_slot; @@ -135,10 +132,10 @@ protected: // device type definition -extern const device_type COMX_EXPANSION_SLOT; +DECLARE_DEVICE_TYPE(COMX_EXPANSION_SLOT, comx_expansion_slot_device) SLOT_INTERFACE_EXTERN( comx_expansion_cards ); -#endif +#endif // MAME_BUS_COMX35_EXP_H diff --git a/src/devices/bus/comx35/expbox.cpp b/src/devices/bus/comx35/expbox.cpp index 51962fb2d39..1eacd1dea5e 100644 --- a/src/devices/bus/comx35/expbox.cpp +++ b/src/devices/bus/comx35/expbox.cpp @@ -66,7 +66,7 @@ Notes: // DEVICE DEFINITIONS //************************************************************************** -const device_type COMX_EB = device_creator; +DEFINE_DEVICE_TYPE(COMX_EB, comx_eb_device, "comx_eb", "COMX-35E Expansion Box") //------------------------------------------------- @@ -131,7 +131,7 @@ machine_config_constructor comx_eb_device::device_mconfig_additions() const //------------------------------------------------- comx_eb_device::comx_eb_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, COMX_EB, "COMX-35E Expansion Box", tag, owner, clock, "comx_eb", __FILE__), + device_t(mconfig, COMX_EB, tag, owner, clock), device_comx_expansion_card_interface(mconfig, *this), m_rom(*this, "e000"), m_select(0) diff --git a/src/devices/bus/comx35/expbox.h b/src/devices/bus/comx35/expbox.h index 00febcb6188..ce266ee0402 100644 --- a/src/devices/bus/comx35/expbox.h +++ b/src/devices/bus/comx35/expbox.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_COMX35_EXPBOX_H +#define MAME_BUS_COMX35_EXPBOX_H -#ifndef __COMX_EB__ -#define __COMX_EB__ +#pragma once #include "exp.h" @@ -71,7 +71,7 @@ private: // device type definition -extern const device_type COMX_EB; +DECLARE_DEVICE_TYPE(COMX_EB, comx_eb_device) -#endif +#endif // MAME_BUS_COMX35_EXPBOX_H diff --git a/src/devices/bus/comx35/fdc.cpp b/src/devices/bus/comx35/fdc.cpp index 8550fe414ec..2c8a8e163cb 100644 --- a/src/devices/bus/comx35/fdc.cpp +++ b/src/devices/bus/comx35/fdc.cpp @@ -58,7 +58,7 @@ Notes: // DEVICE DEFINITIONS //************************************************************************** -const device_type COMX_FD = device_creator; +DEFINE_DEVICE_TYPE(COMX_FD, comx_fd_device, "comx_fd", "COMX FD") //------------------------------------------------- @@ -124,7 +124,7 @@ machine_config_constructor comx_fd_device::device_mconfig_additions() const //------------------------------------------------- comx_fd_device::comx_fd_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, COMX_FD, "COMX FD", tag, owner, clock, "comx_fd", __FILE__), + device_t(mconfig, COMX_FD, tag, owner, clock), device_comx_expansion_card_interface(mconfig, *this), m_fdc(*this, WD1770_TAG), m_floppy0(*this, WD1770_TAG":0"), diff --git a/src/devices/bus/comx35/fdc.h b/src/devices/bus/comx35/fdc.h index ced4a012216..bc23816da98 100644 --- a/src/devices/bus/comx35/fdc.h +++ b/src/devices/bus/comx35/fdc.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_COMX35_FD_H +#define MAME_BUS_COMX35_FD_H -#ifndef __COMX_FD__ -#define __COMX_FD__ +#pragma once #include "exp.h" #include "formats/comx35_dsk.h" @@ -50,7 +50,7 @@ protected: private: // internal state - required_device m_fdc; + required_device m_fdc; required_device m_floppy0; required_device m_floppy1; required_memory_region m_rom; @@ -63,7 +63,7 @@ private: // device type definition -extern const device_type COMX_FD; +DECLARE_DEVICE_TYPE(COMX_FD, comx_fd_device) -#endif +#endif // MAME_BUS_COMX35_FD_H diff --git a/src/devices/bus/comx35/joycard.cpp b/src/devices/bus/comx35/joycard.cpp index 3a7a7b9b311..4c6e46ff06e 100644 --- a/src/devices/bus/comx35/joycard.cpp +++ b/src/devices/bus/comx35/joycard.cpp @@ -22,7 +22,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type COMX_JOY = device_creator; +DEFINE_DEVICE_TYPE(COMX_JOY, comx_joy_device, "comx_joy", "COMX JoyCard") //------------------------------------------------- @@ -68,7 +68,7 @@ ioport_constructor comx_joy_device::device_input_ports() const //------------------------------------------------- comx_joy_device::comx_joy_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, COMX_JOY, "COMX JoyCard", tag, owner, clock, "comx_joy", __FILE__), + device_t(mconfig, COMX_JOY, tag, owner, clock), device_comx_expansion_card_interface(mconfig, *this), m_joy1(*this, "JOY1"), m_joy2(*this, "JOY2") diff --git a/src/devices/bus/comx35/joycard.h b/src/devices/bus/comx35/joycard.h index 567d2434599..e2d6bb40151 100644 --- a/src/devices/bus/comx35/joycard.h +++ b/src/devices/bus/comx35/joycard.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_COMX35_JOYCARD_H +#define MAME_BUS_COMX35_JOYCARD_H -#ifndef __COMX_JOY__ -#define __COMX_JOY__ +#pragma once #include "exp.h" @@ -46,7 +46,7 @@ private: // device type definition -extern const device_type COMX_JOY; +DECLARE_DEVICE_TYPE(COMX_JOY, comx_joy_device) -#endif +#endif // MAME_BUS_COMX35_JOYCARD_H diff --git a/src/devices/bus/comx35/printer.cpp b/src/devices/bus/comx35/printer.cpp index 1a24c93cae6..4a9ced09f17 100644 --- a/src/devices/bus/comx35/printer.cpp +++ b/src/devices/bus/comx35/printer.cpp @@ -24,7 +24,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type COMX_PRN = device_creator; +DEFINE_DEVICE_TYPE(COMX_PRN, comx_prn_device, "comx_prn", "COMX-35 Printer Card") //------------------------------------------------- @@ -88,7 +88,7 @@ machine_config_constructor comx_prn_device::device_mconfig_additions() const //------------------------------------------------- comx_prn_device::comx_prn_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, COMX_PRN, "COMX-35 Printer Card", tag, owner, clock, "comx_prn", __FILE__), + device_t(mconfig, COMX_PRN, tag, owner, clock), device_comx_expansion_card_interface(mconfig, *this), m_centronics(*this, CENTRONICS_TAG), m_cent_data_out(*this, "cent_data_out"), diff --git a/src/devices/bus/comx35/printer.h b/src/devices/bus/comx35/printer.h index 887abaa13d6..b973982b2f3 100644 --- a/src/devices/bus/comx35/printer.h +++ b/src/devices/bus/comx35/printer.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_COMX35_PRINTER_H +#define MAME_BUS_COMX35_PRINTER_H -#ifndef __COMX_PRN__ -#define __COMX_PRN__ +#pragma once #include "exp.h" #include "machine/buffer.h" @@ -23,8 +23,7 @@ // ======================> comx_prn_device -class comx_prn_device : public device_t, - public device_comx_expansion_card_interface +class comx_prn_device : public device_t, public device_comx_expansion_card_interface { public: // construction/destruction @@ -53,7 +52,7 @@ private: // device type definition -extern const device_type COMX_PRN; +DECLARE_DEVICE_TYPE(COMX_PRN, comx_prn_device) -#endif +#endif // MAME_BUS_COMX35_PRINTER_H diff --git a/src/devices/bus/comx35/ram.cpp b/src/devices/bus/comx35/ram.cpp index 89c7bfff728..c09ef729225 100644 --- a/src/devices/bus/comx35/ram.cpp +++ b/src/devices/bus/comx35/ram.cpp @@ -23,7 +23,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type COMX_RAM = device_creator; +DEFINE_DEVICE_TYPE(COMX_RAM, comx_ram_device, "comx_ram", "COMX-35 RAM Card") //************************************************************************** @@ -35,7 +35,7 @@ const device_type COMX_RAM = device_creator; //------------------------------------------------- comx_ram_device::comx_ram_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, COMX_RAM, "COMX-35 RAM Card", tag, owner, clock, "comx_ram", __FILE__), + device_t(mconfig, COMX_RAM, tag, owner, clock), device_comx_expansion_card_interface(mconfig, *this), m_ram(*this, "ram"), m_bank(0) diff --git a/src/devices/bus/comx35/ram.h b/src/devices/bus/comx35/ram.h index fc6af702fa3..251e47e2097 100644 --- a/src/devices/bus/comx35/ram.h +++ b/src/devices/bus/comx35/ram.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_COMX35_RAM_H +#define MAME_BUS_COMX35_RAM_H -#ifndef __COMX_RAM__ -#define __COMX_RAM__ +#pragma once #include "exp.h" @@ -46,7 +46,7 @@ private: // device type definition -extern const device_type COMX_RAM; +DECLARE_DEVICE_TYPE(COMX_RAM, comx_ram_device) -#endif +#endif // MAME_BUS_COMX35_RAM_H diff --git a/src/devices/bus/comx35/thermal.cpp b/src/devices/bus/comx35/thermal.cpp index d08aac2175e..e1d4f0ed8d3 100644 --- a/src/devices/bus/comx35/thermal.cpp +++ b/src/devices/bus/comx35/thermal.cpp @@ -21,7 +21,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type COMX_THM = device_creator; +DEFINE_DEVICE_TYPE(COMX_THM, comx_thm_device, "comx_thm", "COMX-35 Thermal Printer Card") //------------------------------------------------- @@ -53,7 +53,7 @@ const tiny_rom_entry *comx_thm_device::device_rom_region() const //------------------------------------------------- comx_thm_device::comx_thm_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, COMX_THM, "COMX-35 Thermal Printer Card", tag, owner, clock, "comx_thm", __FILE__), + device_t(mconfig, COMX_THM, tag, owner, clock), device_comx_expansion_card_interface(mconfig, *this), m_rom(*this, "c000") { diff --git a/src/devices/bus/comx35/thermal.h b/src/devices/bus/comx35/thermal.h index 08b46ba6945..feb92f7bc45 100644 --- a/src/devices/bus/comx35/thermal.h +++ b/src/devices/bus/comx35/thermal.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_COMX35_THERMAL_H +#define MAME_BUS_COMX35_THERMAL_H -#ifndef __COMX_THM__ -#define __COMX_THM__ +#pragma once #include "exp.h" @@ -47,7 +47,7 @@ private: // device type definition -extern const device_type COMX_THM; +DECLARE_DEVICE_TYPE(COMX_THM, comx_thm_device) -#endif +#endif // MAME_BUS_COMX35_THERMAL_H diff --git a/src/devices/bus/cpc/amdrum.cpp b/src/devices/bus/cpc/amdrum.cpp index 8cc82aea1cb..2cd233a1b9b 100644 --- a/src/devices/bus/cpc/amdrum.cpp +++ b/src/devices/bus/cpc/amdrum.cpp @@ -17,7 +17,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type CPC_AMDRUM = device_creator; +DEFINE_DEVICE_TYPE(CPC_AMDRUM, cpc_amdrum_device, "cpc_amdrum", "Amdrum") static MACHINE_CONFIG_FRAGMENT( cpc_amdrum ) @@ -38,7 +38,7 @@ machine_config_constructor cpc_amdrum_device::device_mconfig_additions() const //************************************************************************** cpc_amdrum_device::cpc_amdrum_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, CPC_AMDRUM, "Amdrum", tag, owner, clock, "cpc_amdrum", __FILE__), + device_t(mconfig, CPC_AMDRUM, tag, owner, clock), device_cpc_expansion_card_interface(mconfig, *this), m_slot(nullptr), m_dac(*this,"dac") diff --git a/src/devices/bus/cpc/amdrum.h b/src/devices/bus/cpc/amdrum.h index f9efb5ce411..6f68a506bd5 100644 --- a/src/devices/bus/cpc/amdrum.h +++ b/src/devices/bus/cpc/amdrum.h @@ -12,8 +12,10 @@ * */ -#ifndef AMDRUM_H_ -#define AMDRUM_H_ +#ifndef MAME_BUS_CPC_AMDRUM_H +#define MAME_BUS_CPC_AMDRUM_H + +#pragma once #include "cpcexp.h" #include "sound/dac.h" @@ -41,7 +43,7 @@ private: }; // device type definition -extern const device_type CPC_AMDRUM; +DECLARE_DEVICE_TYPE(CPC_AMDRUM, cpc_amdrum_device) -#endif /* AMDRUM_H_ */ +#endif // MAME_BUS_CPC_AMDRUM_H diff --git a/src/devices/bus/cpc/brunword4.cpp b/src/devices/bus/cpc/brunword4.cpp index 1118e0c8b61..6d5a7b885d3 100644 --- a/src/devices/bus/cpc/brunword4.cpp +++ b/src/devices/bus/cpc/brunword4.cpp @@ -14,7 +14,7 @@ #include "emu.h" #include "brunword4.h" -const device_type CPC_BRUNWORD_MK4 = device_creator; +DEFINE_DEVICE_TYPE(CPC_BRUNWORD_MK4, cpc_brunword4_device, "cpc_brunword4", "Brunword Elite MK4") ROM_START( cpc_brunword4 ) @@ -64,8 +64,9 @@ const tiny_rom_entry *cpc_brunword4_device::device_rom_region() const } cpc_brunword4_device::cpc_brunword4_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, CPC_BRUNWORD_MK4, "Brunword Elite MK4", tag, owner, clock, "cpc_brunword4", __FILE__), - device_cpc_expansion_card_interface(mconfig, *this), m_slot(nullptr), m_rombank_active(false), m_bank_sel(0) + device_t(mconfig, CPC_BRUNWORD_MK4, tag, owner, clock), + device_cpc_expansion_card_interface(mconfig, *this), + m_slot(nullptr), m_rombank_active(false), m_bank_sel(0) { } diff --git a/src/devices/bus/cpc/brunword4.h b/src/devices/bus/cpc/brunword4.h index 31d8d38beb3..66d5cdebab5 100644 --- a/src/devices/bus/cpc/brunword4.h +++ b/src/devices/bus/cpc/brunword4.h @@ -5,6 +5,10 @@ Brunword MK4 - Word processor ROM / expansion */ +#ifndef MAME_BUS_CPC_BRUNWORD4_H +#define MAME_BUS_CPC_BRUNWORD4_H + +#pragma once #include "cpcexp.h" @@ -34,4 +38,6 @@ private: }; // device type definition -extern const device_type CPC_BRUNWORD_MK4; +DECLARE_DEVICE_TYPE(CPC_BRUNWORD_MK4, cpc_brunword4_device) + +#endif // MAME_BUS_CPC_BRUNWORD4_H diff --git a/src/devices/bus/cpc/cpc_pds.cpp b/src/devices/bus/cpc/cpc_pds.cpp index b9ab288ec9a..3273fcf8f8e 100644 --- a/src/devices/bus/cpc/cpc_pds.cpp +++ b/src/devices/bus/cpc/cpc_pds.cpp @@ -14,7 +14,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type CPC_PDS = device_creator; +DEFINE_DEVICE_TYPE(CPC_PDS, cpc_pds_device, "cpc_pds", "Programmers Development System (CPC Target)") static MACHINE_CONFIG_FRAGMENT( cpc_pds ) @@ -35,8 +35,9 @@ machine_config_constructor cpc_pds_device::device_mconfig_additions() const //************************************************************************** cpc_pds_device::cpc_pds_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, CPC_PDS, "Programmers Development System (CPC Target)", tag, owner, clock, "cpc_pds", __FILE__), - device_cpc_expansion_card_interface(mconfig, *this), m_slot(nullptr), + device_t(mconfig, CPC_PDS, tag, owner, clock), + device_cpc_expansion_card_interface(mconfig, *this), + m_slot(nullptr), m_pio(*this,"pio") { } diff --git a/src/devices/bus/cpc/cpc_pds.h b/src/devices/bus/cpc/cpc_pds.h index 5bc1a87cabc..2da3ac96a01 100644 --- a/src/devices/bus/cpc/cpc_pds.h +++ b/src/devices/bus/cpc/cpc_pds.h @@ -21,8 +21,10 @@ * running the target side */ -#ifndef CPC_PDS_H_ -#define CPC_PDS_H_ +#ifndef MAME_BUS_CPC_CPC_PDS_H +#define MAME_BUS_CPC_CPC_PDS_H + +#pragma once #include "cpcexp.h" #include "machine/z80pio.h" @@ -52,6 +54,6 @@ private: }; // device type definition -extern const device_type CPC_PDS; +DECLARE_DEVICE_TYPE(CPC_PDS, cpc_pds_device) -#endif /* CPC_PDS_H_ */ +#endif // MAME_BUS_CPC_CPC_PDS_H diff --git a/src/devices/bus/cpc/cpc_rom.cpp b/src/devices/bus/cpc/cpc_rom.cpp index 3fa2848aa8c..e3ff29108cc 100644 --- a/src/devices/bus/cpc/cpc_rom.cpp +++ b/src/devices/bus/cpc/cpc_rom.cpp @@ -9,7 +9,7 @@ #include "emu.h" #include "cpc_rom.h" -const device_type CPC_ROM = device_creator; +DEFINE_DEVICE_TYPE(CPC_ROM, cpc_rom_device, "cpc_rom", "CPC ROM Box") SLOT_INTERFACE_EXTERN(cpc_exp_cards); @@ -19,14 +19,14 @@ SLOT_INTERFACE_EXTERN(cpc_exp_cards); // device machine config static MACHINE_CONFIG_FRAGMENT( cpc_rom ) - MCFG_ROMSLOT_ADD("rom1") - MCFG_ROMSLOT_ADD("rom2") - MCFG_ROMSLOT_ADD("rom3") - MCFG_ROMSLOT_ADD("rom4") - MCFG_ROMSLOT_ADD("rom5") - MCFG_ROMSLOT_ADD("rom6") - MCFG_ROMSLOT_ADD("rom7") - MCFG_ROMSLOT_ADD("rom8") + MCFG_CPC_ROMSLOT_ADD("rom1") + MCFG_CPC_ROMSLOT_ADD("rom2") + MCFG_CPC_ROMSLOT_ADD("rom3") + MCFG_CPC_ROMSLOT_ADD("rom4") + MCFG_CPC_ROMSLOT_ADD("rom5") + MCFG_CPC_ROMSLOT_ADD("rom6") + MCFG_CPC_ROMSLOT_ADD("rom7") + MCFG_CPC_ROMSLOT_ADD("rom8") // pass-through MCFG_DEVICE_ADD("exp", CPC_EXPANSION_SLOT, 0) @@ -48,8 +48,9 @@ machine_config_constructor cpc_rom_device::device_mconfig_additions() const //************************************************************************** cpc_rom_device::cpc_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, CPC_ROM, "ROM Box", tag, owner, clock, "cpc_rom", __FILE__), - device_cpc_expansion_card_interface(mconfig, *this) + device_t(mconfig, CPC_ROM, tag, owner, clock), + device_cpc_expansion_card_interface(mconfig, *this), + m_rom(*this, "rom%u", 1) { } @@ -73,23 +74,24 @@ void cpc_rom_device::device_reset() /*** ROM image device ***/ // device type definition -const device_type ROMSLOT = device_creator; +DEFINE_DEVICE_TYPE(CPC_ROMSLOT, cpc_rom_image_device, "cpc_rom_image", "CPC ROM image") //------------------------------------------------- -// rom_image_device - constructor +// cpc_rom_image_device - constructor //------------------------------------------------- -rom_image_device::rom_image_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, ROMSLOT, "ROM image", tag, owner, clock, "rom_image", __FILE__), - device_image_interface(mconfig, *this), m_base(nullptr) +cpc_rom_image_device::cpc_rom_image_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, CPC_ROMSLOT, tag, owner, clock) + , device_image_interface(mconfig, *this) + , m_base(nullptr) { } //------------------------------------------------- -// rom_image_device - destructor +// cpc_rom_image_device - destructor //------------------------------------------------- -rom_image_device::~rom_image_device() +cpc_rom_image_device::~cpc_rom_image_device() { } @@ -97,7 +99,7 @@ rom_image_device::~rom_image_device() // device_start - device-specific startup //------------------------------------------------- -void rom_image_device::device_start() +void cpc_rom_image_device::device_start() { m_base = nullptr; } @@ -105,7 +107,7 @@ void rom_image_device::device_start() /*------------------------------------------------- DEVICE_IMAGE_LOAD( rom ) -------------------------------------------------*/ -image_init_result rom_image_device::call_load() +image_init_result cpc_rom_image_device::call_load() { device_image_interface* image = this; uint64_t size = image->length(); @@ -128,7 +130,7 @@ image_init_result rom_image_device::call_load() /*------------------------------------------------- DEVICE_IMAGE_UNLOAD( rom ) -------------------------------------------------*/ -void rom_image_device::call_unload() +void cpc_rom_image_device::call_unload() { m_base = nullptr; } diff --git a/src/devices/bus/cpc/cpc_rom.h b/src/devices/bus/cpc/cpc_rom.h index 8330e5baf20..979134b60e8 100644 --- a/src/devices/bus/cpc/cpc_rom.h +++ b/src/devices/bus/cpc/cpc_rom.h @@ -6,22 +6,23 @@ * */ -#ifndef CPC_ROM_H_ -#define CPC_ROM_H_ +#ifndef MAME_BUS_CPC_CPC_ROM_H +#define MAME_BUS_CPC_CPC_ROM_H + +#pragma once #include "cpcexp.h" /*** ROM image device ***/ -// ======================> rom_image_device +// ======================> cpc_rom_image_device -class rom_image_device : public device_t, - public device_image_interface +class cpc_rom_image_device : public device_t, public device_image_interface { public: // construction/destruction - rom_image_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual ~rom_image_device(); + cpc_rom_image_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + virtual ~cpc_rom_image_device(); // image-level overrides virtual image_init_result call_load() override; @@ -49,11 +50,11 @@ private: // device type definition -extern const device_type ROMSLOT; +DECLARE_DEVICE_TYPE(CPC_ROMSLOT, cpc_rom_image_device) -#define MCFG_ROMSLOT_ADD(_tag) \ - MCFG_DEVICE_ADD(_tag, ROMSLOT, 0) +#define MCFG_CPC_ROMSLOT_ADD(_tag) \ + MCFG_DEVICE_ADD(_tag, CPC_ROMSLOT, 0) /*** ROM box device ***/ @@ -75,13 +76,11 @@ protected: virtual void device_reset() override; private: - //cpc_expansion_slot_device *m_slot; - - rom_image_device* m_rom[8]; + required_device_array m_rom; }; // device type definition -extern const device_type CPC_ROM; +DECLARE_DEVICE_TYPE(CPC_ROM, cpc_rom_device) -#endif +#endif // MAME_BUS_CPC_CPC_ROM_H diff --git a/src/devices/bus/cpc/cpc_rs232.cpp b/src/devices/bus/cpc/cpc_rs232.cpp index fee168423f0..3122eb1ff75 100644 --- a/src/devices/bus/cpc/cpc_rs232.cpp +++ b/src/devices/bus/cpc/cpc_rs232.cpp @@ -15,8 +15,8 @@ SLOT_INTERFACE_EXTERN(cpc_exp_cards); // DEVICE DEFINITIONS //************************************************************************** -const device_type CPC_RS232 = device_creator; -const device_type CPC_RS232_AMS = device_creator; +DEFINE_DEVICE_TYPE(CPC_RS232, cpc_rs232_device, "cpc_ser", "Pace RS232C interface") +DEFINE_DEVICE_TYPE(CPC_RS232_AMS, cpc_ams_rs232_device, "cpc_serams", "Amstrad RS232C interface") // device machine config static MACHINE_CONFIG_FRAGMENT( cpc_rs232 ) @@ -83,25 +83,22 @@ const tiny_rom_entry *cpc_ams_rs232_device::device_rom_region() const //************************************************************************** cpc_rs232_device::cpc_rs232_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, CPC_RS232, "Pace RS232C interface", tag, owner, clock, "cpc_ser", __FILE__), - device_cpc_expansion_card_interface(mconfig, *this), - m_pit(*this,"pit"), - m_dart(*this,"dart"), - m_rs232(*this,"rs232"), m_slot(nullptr) + cpc_rs232_device(mconfig, CPC_RS232, tag, owner, clock) { } -cpc_rs232_device::cpc_rs232_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), +cpc_rs232_device::cpc_rs232_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), device_cpc_expansion_card_interface(mconfig, *this), m_pit(*this,"pit"), m_dart(*this,"dart"), - m_rs232(*this,"rs232"), m_slot(nullptr) + m_rs232(*this,"rs232"), + m_slot(nullptr) { } cpc_ams_rs232_device::cpc_ams_rs232_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - cpc_rs232_device(mconfig, CPC_RS232_AMS, "Amstrad RS232C interface", tag, owner, clock, "cpc_serams", __FILE__) + cpc_rs232_device(mconfig, CPC_RS232_AMS, tag, owner, clock) { } diff --git a/src/devices/bus/cpc/cpc_rs232.h b/src/devices/bus/cpc/cpc_rs232.h index a55ca23fdf8..d6eb4c92d9b 100644 --- a/src/devices/bus/cpc/cpc_rs232.h +++ b/src/devices/bus/cpc/cpc_rs232.h @@ -6,23 +6,23 @@ * Created on: 22/04/2014 */ -#ifndef CPC_RS232_H_ -#define CPC_RS232_H_ +#ifndef MAME_BUS_CPC_CPC_RS232_H +#define MAME_BUS_CPC_CPC_RS232_H +#pragma once + +#include "cpcexp.h" #include "machine/z80dart.h" #include "machine/pit8253.h" #include "bus/rs232/rs232.h" -#include "cpcexp.h" -class cpc_rs232_device : public device_t, - public device_cpc_expansion_card_interface +class cpc_rs232_device : public device_t, public device_cpc_expansion_card_interface { public: // construction/destruction cpc_rs232_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - cpc_rs232_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - // optional information overrides + // optional information overrides virtual machine_config_constructor device_mconfig_additions() const override; DECLARE_WRITE_LINE_MEMBER(pit_out0_w); @@ -34,15 +34,18 @@ public: DECLARE_READ8_MEMBER(pit_r); DECLARE_WRITE8_MEMBER(pit_w); - required_device m_pit; - required_device m_dart; - required_device m_rs232; protected: + cpc_rs232_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; virtual const tiny_rom_entry *device_rom_region() const override; + required_device m_pit; + required_device m_dart; + required_device m_rs232; + private: cpc_expansion_slot_device *m_slot; }; @@ -58,7 +61,7 @@ protected: }; // device type definition -extern const device_type CPC_RS232; -extern const device_type CPC_RS232_AMS; +DECLARE_DEVICE_TYPE(CPC_RS232, cpc_rs232_device) +DECLARE_DEVICE_TYPE(CPC_RS232_AMS, cpc_ams_rs232_device) -#endif /* CPC_RS232_H_ */ +#endif // MAME_BUS_CPC_CPC_RS232_H diff --git a/src/devices/bus/cpc/cpc_ssa1.cpp b/src/devices/bus/cpc/cpc_ssa1.cpp index af2627e03bb..5e6132dfba0 100644 --- a/src/devices/bus/cpc/cpc_ssa1.cpp +++ b/src/devices/bus/cpc/cpc_ssa1.cpp @@ -19,8 +19,8 @@ SLOT_INTERFACE_EXTERN(cpc_exp_cards); // DEVICE DEFINITIONS //************************************************************************** -const device_type CPC_SSA1 = device_creator; -const device_type CPC_DKSPEECH = device_creator; +DEFINE_DEVICE_TYPE(CPC_SSA1, cpc_ssa1_device, "cpc_ssa1", "Amstrad SSA-1") +DEFINE_DEVICE_TYPE(CPC_DKSPEECH, cpc_dkspeech_device, "cpc_dkspeech", "DK'Tronics Speech Synthesiser") //------------------------------------------------- // device I/O handlers @@ -162,7 +162,7 @@ machine_config_constructor cpc_dkspeech_device::device_mconfig_additions() const //************************************************************************** cpc_ssa1_device::cpc_ssa1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, CPC_SSA1, "SSA-1", tag, owner, clock, "cpc_ssa1", __FILE__), + device_t(mconfig, CPC_SSA1, tag, owner, clock), device_cpc_expansion_card_interface(mconfig, *this), m_slot(nullptr), m_rom(nullptr), m_lrq(1), m_sby(0), m_sp0256_device(*this,"sp0256") @@ -170,7 +170,7 @@ cpc_ssa1_device::cpc_ssa1_device(const machine_config &mconfig, const char *tag, } cpc_dkspeech_device::cpc_dkspeech_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, CPC_DKSPEECH, "DK'Tronics Speech Synthesiser", tag, owner, clock, "cpc_dkspeech", __FILE__), + device_t(mconfig, CPC_DKSPEECH, tag, owner, clock), device_cpc_expansion_card_interface(mconfig, *this), m_slot(nullptr), m_rom(nullptr), m_lrq(1), m_sby(0), m_sp0256_device(*this,"sp0256") diff --git a/src/devices/bus/cpc/cpc_ssa1.h b/src/devices/bus/cpc/cpc_ssa1.h index a8943ec4392..da4aafa5a38 100644 --- a/src/devices/bus/cpc/cpc_ssa1.h +++ b/src/devices/bus/cpc/cpc_ssa1.h @@ -40,8 +40,10 @@ * */ -#ifndef CPC_SSA1_H_ -#define CPC_SSA1_H_ +#ifndef MAME_BUS_CPC_CPC_SSA1_H +#define MAME_BUS_CPC_CPC_SSA1_H + +#pragma once #include "cpcexp.h" @@ -120,8 +122,8 @@ private: }; // device type definition -extern const device_type CPC_SSA1; -extern const device_type CPC_DKSPEECH; +DECLARE_DEVICE_TYPE(CPC_SSA1, cpc_ssa1_device) +DECLARE_DEVICE_TYPE(CPC_DKSPEECH, cpc_dkspeech_device) -#endif /* CPC_SSA1_H_ */ +#endif // MAME_BUS_CPC_CPC_SSA1_H diff --git a/src/devices/bus/cpc/cpcexp.cpp b/src/devices/bus/cpc/cpcexp.cpp index ff1db3d6741..d40af53711c 100644 --- a/src/devices/bus/cpc/cpcexp.cpp +++ b/src/devices/bus/cpc/cpcexp.cpp @@ -16,7 +16,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type CPC_EXPANSION_SLOT = device_creator; +DEFINE_DEVICE_TYPE(CPC_EXPANSION_SLOT, cpc_expansion_slot_device, "cpc_expansion_slot", "Amstrad CPC expansion port") //************************************************************************** @@ -25,8 +25,8 @@ const device_type CPC_EXPANSION_SLOT = device_creator device_cpc_expansion_card_interface::device_cpc_expansion_card_interface(const machine_config &mconfig, device_t &device) - : device_slot_card_interface(mconfig,device), - m_rom_sel(0) + : device_slot_card_interface(mconfig,device) + , m_rom_sel(0) { } @@ -41,14 +41,15 @@ device_cpc_expansion_card_interface::~device_cpc_expansion_card_interface() // LIVE DEVICE //************************************************************************** -cpc_expansion_slot_device::cpc_expansion_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, CPC_EXPANSION_SLOT, "Amstrad CPC expansion port", tag, owner, clock, "cpc_expansion_slot", __FILE__), - device_slot_interface(mconfig, *this), - m_out_irq_cb(*this), - m_out_nmi_cb(*this), - m_out_reset_cb(*this), - m_out_romdis_cb(*this), - m_out_rom_select(*this), m_card(nullptr) +cpc_expansion_slot_device::cpc_expansion_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, CPC_EXPANSION_SLOT, tag, owner, clock) + , device_slot_interface(mconfig, *this) + , m_out_irq_cb(*this) + , m_out_nmi_cb(*this) + , m_out_reset_cb(*this) + , m_out_romdis_cb(*this) + , m_out_rom_select(*this) + , m_card(nullptr) { } diff --git a/src/devices/bus/cpc/cpcexp.h b/src/devices/bus/cpc/cpcexp.h index 9552a4ee803..0f99ea051aa 100644 --- a/src/devices/bus/cpc/cpcexp.h +++ b/src/devices/bus/cpc/cpcexp.h @@ -43,10 +43,10 @@ * */ -#pragma once +#ifndef MAME_BUS_CPC_CPCEXP_H +#define MAME_BUS_CPC_CPCEXP_H -#ifndef CPCEXP_H_ -#define CPCEXP_H_ +#pragma once //************************************************************************** @@ -55,13 +55,6 @@ #define CPC_EXP_SLOT_TAG "cpcexp" -enum -{ - MAP_LOWER = 0, // special lower ROM handling - MAP_UPPER, // special upper ROM handling - MAP_OTHER // custom ROM handling (eg: Brunword MK4) -}; - //************************************************************************** // INTERFACE CONFIGURATION MACROS //************************************************************************** @@ -91,18 +84,27 @@ enum class device_cpc_expansion_card_interface : public device_slot_card_interface { public: + enum + { + MAP_LOWER = 0, // special lower ROM handling + MAP_UPPER, // special upper ROM handling + MAP_OTHER // custom ROM handling (eg: Brunword MK4) + }; + // construction/destruction - device_cpc_expansion_card_interface(const machine_config &mconfig, device_t &device); virtual ~device_cpc_expansion_card_interface(); // reset - virtual void cpc_reset_w() { }; - virtual WRITE_LINE_MEMBER( cursor_w ) { }; - virtual WRITE_LINE_MEMBER( romen_w ) { }; + virtual void cpc_reset_w() { } + virtual WRITE_LINE_MEMBER( cursor_w ) { } + virtual WRITE_LINE_MEMBER( romen_w ) { } void set_rom_bank(uint8_t sel) { m_rom_sel = sel; } // tell device the currently selected ROM uint8_t get_rom_bank() { return m_rom_sel; } - virtual void set_mapping(uint8_t type) { }; + virtual void set_mapping(uint8_t type) { } + +protected: + device_cpc_expansion_card_interface(const machine_config &mconfig, device_t &device); private: uint8_t m_rom_sel; // currently selected ROM @@ -119,11 +121,11 @@ public: cpc_expansion_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual ~cpc_expansion_slot_device(); - template static devcb_base &set_out_irq_callback(device_t &device, _Object object) { return downcast(device).m_out_irq_cb.set_callback(object); } - template static devcb_base &set_out_nmi_callback(device_t &device, _Object object) { return downcast(device).m_out_nmi_cb.set_callback(object); } - template static devcb_base &set_out_reset_callback(device_t &device, _Object object) { return downcast(device).m_out_reset_cb.set_callback(object); } - template static devcb_base &set_out_romdis_callback(device_t &device, _Object object) { return downcast(device).m_out_romdis_cb.set_callback(object); } - template static devcb_base &set_out_rom_select_callback(device_t &device, _Object object) { return downcast(device).m_out_rom_select.set_callback(object); } + template static devcb_base &set_out_irq_callback(device_t &device, Object &&cb) { return downcast(device).m_out_irq_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_nmi_callback(device_t &device, Object &&cb) { return downcast(device).m_out_nmi_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_reset_callback(device_t &device, Object &&cb) { return downcast(device).m_out_reset_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_romdis_callback(device_t &device, Object &&cb) { return downcast(device).m_out_romdis_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_rom_select_callback(device_t &device, Object &&cb) { return downcast(device).m_out_rom_select.set_callback(std::forward(cb)); } DECLARE_WRITE_LINE_MEMBER( irq_w ); DECLARE_WRITE_LINE_MEMBER( nmi_w ); @@ -153,6 +155,6 @@ protected: // device type definition -extern const device_type CPC_EXPANSION_SLOT; +DECLARE_DEVICE_TYPE(CPC_EXPANSION_SLOT, cpc_expansion_slot_device) -#endif /* CPCEXP_H_ */ +#endif // MAME_BUS_CPC_CPCEXP_H diff --git a/src/devices/bus/cpc/ddi1.cpp b/src/devices/bus/cpc/ddi1.cpp index b78caa06129..1ee3ab13d06 100644 --- a/src/devices/bus/cpc/ddi1.cpp +++ b/src/devices/bus/cpc/ddi1.cpp @@ -7,13 +7,14 @@ #include "emu.h" #include "ddi1.h" #include "softlist.h" + SLOT_INTERFACE_EXTERN(cpc_exp_cards); //************************************************************************** // DEVICE DEFINITIONS //************************************************************************** -const device_type CPC_DDI1 = device_creator; +DEFINE_DEVICE_TYPE(CPC_DDI1, cpc_ddi1_device, "cpc_ddi1", "Amstrad DDI-1") static SLOT_INTERFACE_START( ddi1_floppies ) SLOT_INTERFACE( "3ssdd", FLOPPY_3_SSDD ) @@ -62,7 +63,7 @@ machine_config_constructor cpc_ddi1_device::device_mconfig_additions() const //************************************************************************** cpc_ddi1_device::cpc_ddi1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, CPC_DDI1, "DDI-1", tag, owner, clock, "cpc_ddi1", __FILE__), + device_t(mconfig, CPC_DDI1, tag, owner, clock), device_cpc_expansion_card_interface(mconfig, *this), m_slot(nullptr), m_fdc(*this,"upd765"), m_connector(*this,"upd765:0"), m_rom_active(false), m_romen(false) diff --git a/src/devices/bus/cpc/ddi1.h b/src/devices/bus/cpc/ddi1.h index 8d900048b32..37d7cd32e1a 100644 --- a/src/devices/bus/cpc/ddi1.h +++ b/src/devices/bus/cpc/ddi1.h @@ -8,14 +8,15 @@ * */ -#ifndef CPC_DDI1_H_ -#define CPC_DDI1_H_ +#ifndef MAME_BUS_CPC_DDI1_H +#define MAME_BUS_CPC_DDI1_H + +#pragma once #include "cpcexp.h" #include "machine/upd765.h" -class cpc_ddi1_device : public device_t, - public device_cpc_expansion_card_interface +class cpc_ddi1_device : public device_t, public device_cpc_expansion_card_interface { public: // construction/destruction @@ -48,5 +49,6 @@ private: // device type definition extern const device_type CPC_DDI1; +DECLARE_DEVICE_TYPE(CPC_DDI1, cpc_ddi1_device) -#endif /* CPC_DDI1_H_ */ +#endif // MAME_BUS_CPC_DDI1_H diff --git a/src/devices/bus/cpc/doubler.cpp b/src/devices/bus/cpc/doubler.cpp index 5a26931e400..30642445277 100644 --- a/src/devices/bus/cpc/doubler.cpp +++ b/src/devices/bus/cpc/doubler.cpp @@ -8,13 +8,12 @@ #include "emu.h" #include "doubler.h" -SLOT_INTERFACE_EXTERN(cpc_exp_cards); //************************************************************************** // DEVICE DEFINITIONS //************************************************************************** -const device_type CPC_DOUBLER = device_creator; +DEFINE_DEVICE_TYPE(CPC_DOUBLER, cpc_doubler_device, "cpc_doubler", "Draysoft Doubler") static MACHINE_CONFIG_FRAGMENT( cpc_doubler ) @@ -38,7 +37,7 @@ machine_config_constructor cpc_doubler_device::device_mconfig_additions() const //************************************************************************** cpc_doubler_device::cpc_doubler_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, CPC_DOUBLER, "Draysoft Doubler", tag, owner, clock, "cpc_doubler", __FILE__), + device_t(mconfig, CPC_DOUBLER, tag, owner, clock), device_cpc_expansion_card_interface(mconfig, *this), m_slot(nullptr), m_tape(*this,"doubler_tape") { diff --git a/src/devices/bus/cpc/doubler.h b/src/devices/bus/cpc/doubler.h index 673e592470e..03d75a16247 100644 --- a/src/devices/bus/cpc/doubler.h +++ b/src/devices/bus/cpc/doubler.h @@ -8,8 +8,10 @@ * */ -#ifndef DOUBLER_H_ -#define DOUBLER_H_ +#ifndef MAME_BUS_CPC_DOUBLER_H +#define MAME_BUS_CPC_DOUBLER_H + +#pragma once #include "cpcexp.h" #include "imagedev/cassette.h" @@ -39,6 +41,6 @@ private: }; // device type definition -extern const device_type CPC_DOUBLER; +DECLARE_DEVICE_TYPE(CPC_DOUBLER, cpc_doubler_device) -#endif /* DOUBLER_H_ */ +#endif // MAME_BUS_CPC_DOUBLER_H diff --git a/src/devices/bus/cpc/hd20.cpp b/src/devices/bus/cpc/hd20.cpp index 427ef00efd4..5a2a204346e 100644 --- a/src/devices/bus/cpc/hd20.cpp +++ b/src/devices/bus/cpc/hd20.cpp @@ -8,13 +8,12 @@ #include "emu.h" #include "hd20.h" -SLOT_INTERFACE_EXTERN(cpc_exp_cards); //************************************************************************** // DEVICE DEFINITIONS //************************************************************************** -const device_type CPC_HD20 = device_creator; +DEFINE_DEVICE_TYPE(CPC_HD20, cpc_hd20_device, "cpc_hd20", "Dobbertin HD20") static MACHINE_CONFIG_FRAGMENT( cpc_hd20 ) MCFG_DEVICE_ADD("hdc",ST11M_HDC,0) @@ -48,7 +47,7 @@ const tiny_rom_entry *cpc_hd20_device::device_rom_region() const //************************************************************************** cpc_hd20_device::cpc_hd20_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, CPC_HD20, "Dobbertin HD20", tag, owner, clock, "cpc_hd20", __FILE__), + device_t(mconfig, CPC_HD20, tag, owner, clock), device_cpc_expansion_card_interface(mconfig, *this), m_slot(nullptr), m_hdc(*this,"hdc") { diff --git a/src/devices/bus/cpc/hd20.h b/src/devices/bus/cpc/hd20.h index 2837a748b76..e0dd933da73 100644 --- a/src/devices/bus/cpc/hd20.h +++ b/src/devices/bus/cpc/hd20.h @@ -11,8 +11,10 @@ */ -#ifndef HD20_H_ -#define HD20_H_ +#ifndef MAME_BUS_CPC_HD20_H +#define MAME_BUS_CPC_HD20_H + +#pragma once #include "cpcexp.h" #include "bus/isa/hdc.h" @@ -44,6 +46,6 @@ private: }; // device type definition -extern const device_type CPC_HD20; +DECLARE_DEVICE_TYPE(CPC_HD20, cpc_hd20_device) -#endif /* HD20_H_ */ +#endif // MAME_BUS_CPC_HD20_H diff --git a/src/devices/bus/cpc/magicsound.cpp b/src/devices/bus/cpc/magicsound.cpp index 6736f2367dd..c4feaa89f1a 100644 --- a/src/devices/bus/cpc/magicsound.cpp +++ b/src/devices/bus/cpc/magicsound.cpp @@ -13,13 +13,11 @@ #include "speaker.h" -SLOT_INTERFACE_EXTERN(cpc_exp_cards); - //************************************************************************** // DEVICE DEFINITIONS //************************************************************************** -const device_type AL_MAGICSOUND = device_creator; +DEFINE_DEVICE_TYPE(AL_MAGICSOUND, al_magicsound_device, "al_magicsound", "Aleste Magic Sound Board") static MACHINE_CONFIG_FRAGMENT( al_magicsound ) @@ -75,7 +73,7 @@ machine_config_constructor al_magicsound_device::device_mconfig_additions() cons //************************************************************************** al_magicsound_device::al_magicsound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, AL_MAGICSOUND, "Magic Sound Board", tag, owner, clock, "al_magicsound", __FILE__), + device_t(mconfig, AL_MAGICSOUND, tag, owner, clock), device_cpc_expansion_card_interface(mconfig, *this), m_slot(nullptr), m_dac(*this,"dac"), m_dmac(*this,"dmac"), diff --git a/src/devices/bus/cpc/magicsound.h b/src/devices/bus/cpc/magicsound.h index c0d276e5a23..ccb11091988 100644 --- a/src/devices/bus/cpc/magicsound.h +++ b/src/devices/bus/cpc/magicsound.h @@ -22,8 +22,10 @@ * */ -#ifndef MAGICSOUND_H_ -#define MAGICSOUND_H_ +#ifndef MAME_BUS_CPC_MAGICSOUND_H +#define MAME_BUS_CPC_MAGICSOUND_H + +#pragma once #include "cpcexp.h" #include "sound/dmadac.h" @@ -84,7 +86,7 @@ private: }; // device type definition -extern const device_type AL_MAGICSOUND; +DECLARE_DEVICE_TYPE(AL_MAGICSOUND, al_magicsound_device) -#endif /* MAGICSOUND_H_ */ +#endif // MAME_BUS_CPC_MAGICSOUND_H diff --git a/src/devices/bus/cpc/mface2.cpp b/src/devices/bus/cpc/mface2.cpp index 536a0133f56..0db80e55cc0 100644 --- a/src/devices/bus/cpc/mface2.cpp +++ b/src/devices/bus/cpc/mface2.cpp @@ -8,13 +8,14 @@ #include "emu.h" #include "mface2.h" + SLOT_INTERFACE_EXTERN(cpc_exp_cards); //************************************************************************** // DEVICE DEFINITIONS //************************************************************************** -const device_type CPC_MFACE2 = device_creator; +DEFINE_DEVICE_TYPE(CPC_MFACE2, cpc_multiface2_device, "cpc_mface2", "Multiface II") // device machine config static MACHINE_CONFIG_FRAGMENT( cpc_mface2 ) @@ -311,8 +312,9 @@ ioport_constructor cpc_multiface2_device::device_input_ports() const //************************************************************************** cpc_multiface2_device::cpc_multiface2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, CPC_MFACE2, "Multiface II", tag, owner, clock, "cpc_mf2", __FILE__), - device_cpc_expansion_card_interface(mconfig, *this), m_slot(nullptr), m_multiface_ram(nullptr), m_multiface_flags(0), m_romdis(0) + device_t(mconfig, CPC_MFACE2, tag, owner, clock), + device_cpc_expansion_card_interface(mconfig, *this), + m_slot(nullptr), m_multiface_ram(nullptr), m_multiface_flags(0), m_romdis(0) { } diff --git a/src/devices/bus/cpc/mface2.h b/src/devices/bus/cpc/mface2.h index 0df2cbab52c..de41dc97c15 100644 --- a/src/devices/bus/cpc/mface2.h +++ b/src/devices/bus/cpc/mface2.h @@ -17,8 +17,10 @@ * It also monitors all I/O port writes, so that it can restore them when resuming the current application. */ -#ifndef MFACE2_H_ -#define MFACE2_H_ +#ifndef MAME_BUS_CPC_MFACE2_H +#define MAME_BUS_CPC_MFACE2_H + +#pragma once #include "cpcexp.h" @@ -62,6 +64,6 @@ private: }; // device type definition -extern const device_type CPC_MFACE2; +DECLARE_DEVICE_TYPE(CPC_MFACE2, cpc_multiface2_device) -#endif /* MFACE2_H_ */ +#endif // MAME_BUS_CPC_MFACE2_H diff --git a/src/devices/bus/cpc/playcity.cpp b/src/devices/bus/cpc/playcity.cpp index de8da2d8377..d303fc16f0f 100644 --- a/src/devices/bus/cpc/playcity.cpp +++ b/src/devices/bus/cpc/playcity.cpp @@ -21,7 +21,7 @@ SLOT_INTERFACE_EXTERN(cpc_exp_cards); // DEVICE DEFINITIONS //************************************************************************** -const device_type CPC_PLAYCITY = device_creator; +DEFINE_DEVICE_TYPE(CPC_PLAYCITY, cpc_playcity_device, "cpc_playcity", "PlayCity") // device machine config static MACHINE_CONFIG_FRAGMENT( cpc_playcity ) @@ -57,8 +57,9 @@ machine_config_constructor cpc_playcity_device::device_mconfig_additions() const //************************************************************************** cpc_playcity_device::cpc_playcity_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, CPC_PLAYCITY, "PlayCity", tag, owner, clock, "cpc_playcity", __FILE__), - device_cpc_expansion_card_interface(mconfig, *this), m_slot(nullptr), + device_t(mconfig, CPC_PLAYCITY, tag, owner, clock), + device_cpc_expansion_card_interface(mconfig, *this), + m_slot(nullptr), m_ctc(*this,"ctc"), m_ymz1(*this,"ymz_1"), m_ymz2(*this,"ymz_2") diff --git a/src/devices/bus/cpc/playcity.h b/src/devices/bus/cpc/playcity.h index 27f9851bd6f..f7c2162051c 100644 --- a/src/devices/bus/cpc/playcity.h +++ b/src/devices/bus/cpc/playcity.h @@ -14,16 +14,17 @@ * F988 - YMZ294 #2 (left) register select */ -#ifndef CPC_PLAYCITY_H_ -#define CPC_PLAYCITY_H_ +#ifndef MAME_BUS_CPC_PLAYCITY_H +#define MAME_BUS_CPC_PLAYCITY_H + +#pragma once #include "cpcexp.h" #include "sound/ay8910.h" #include "machine/z80ctc.h" -class cpc_playcity_device : public device_t, - public device_cpc_expansion_card_interface +class cpc_playcity_device : public device_t, public device_cpc_expansion_card_interface { public: // construction/destruction @@ -61,7 +62,7 @@ private: }; // device type definition -extern const device_type CPC_PLAYCITY; +DECLARE_DEVICE_TYPE(CPC_PLAYCITY, cpc_playcity_device) -#endif /* CPC_PLAYCITY_H_ */ +#endif // MAME_BUS_CPC_PLAYCITY_H diff --git a/src/devices/bus/cpc/smartwatch.cpp b/src/devices/bus/cpc/smartwatch.cpp index 89805cd607b..cef0a846572 100644 --- a/src/devices/bus/cpc/smartwatch.cpp +++ b/src/devices/bus/cpc/smartwatch.cpp @@ -11,13 +11,12 @@ #include "emu.h" #include "smartwatch.h" -SLOT_INTERFACE_EXTERN(cpc_exp_cards); //************************************************************************** // DEVICE DEFINITIONS //************************************************************************** -const device_type CPC_SMARTWATCH = device_creator; +DEFINE_DEVICE_TYPE(CPC_SMARTWATCH, cpc_smartwatch_device, "cpc_smartwatch", "Dobbertin Smartwatch") static MACHINE_CONFIG_FRAGMENT( cpc_smartwatch ) @@ -45,7 +44,7 @@ const tiny_rom_entry *cpc_smartwatch_device::device_rom_region() const //************************************************************************** cpc_smartwatch_device::cpc_smartwatch_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, CPC_SMARTWATCH, "Dobbertin Smartwatch", tag, owner, clock, "cpc_smartwatch", __FILE__), + device_t(mconfig, CPC_SMARTWATCH, tag, owner, clock), device_cpc_expansion_card_interface(mconfig, *this), m_slot(nullptr), m_rtc(*this,"rtc"), m_bank(nullptr) { diff --git a/src/devices/bus/cpc/smartwatch.h b/src/devices/bus/cpc/smartwatch.h index b27b7b4df67..a555b802553 100644 --- a/src/devices/bus/cpc/smartwatch.h +++ b/src/devices/bus/cpc/smartwatch.h @@ -9,14 +9,15 @@ */ -#ifndef SMARTWATCH_H_ -#define SMARTWATCH_H_ +#ifndef MAME_BUS_CPC_SMARTWATCH_H +#define MAME_BUS_CPC_SMARTWATCH_H + +#pragma once #include "cpcexp.h" #include "machine/ds1315.h" -class cpc_smartwatch_device : public device_t, - public device_cpc_expansion_card_interface +class cpc_smartwatch_device : public device_t, public device_cpc_expansion_card_interface { public: // construction/destruction @@ -41,7 +42,7 @@ private: }; // device type definition -extern const device_type CPC_SMARTWATCH; +DECLARE_DEVICE_TYPE(CPC_SMARTWATCH, cpc_smartwatch_device) -#endif /* SMARTWATCH_H_ */ +#endif // MAME_BUS_CPC_SMARTWATCH_H diff --git a/src/devices/bus/cpc/symbfac2.cpp b/src/devices/bus/cpc/symbfac2.cpp index 049e5f487f2..cba1e4c5003 100644 --- a/src/devices/bus/cpc/symbfac2.cpp +++ b/src/devices/bus/cpc/symbfac2.cpp @@ -21,7 +21,7 @@ #include "symbfac2.h" -const device_type CPC_SYMBIFACE2 = device_creator; +DEFINE_DEVICE_TYPE(CPC_SYMBIFACE2, cpc_symbiface2_device, "cpc_symf2", "SYMBiFACE II") //************************************************************************** // DEVICE CONFIG INTERFACE @@ -73,14 +73,16 @@ ioport_constructor cpc_symbiface2_device::device_input_ports() const //************************************************************************** cpc_symbiface2_device::cpc_symbiface2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, CPC_SYMBIFACE2, "SYMBiFACE II", tag, owner, clock, "cpc_symf2", __FILE__), - device_cpc_expansion_card_interface(mconfig, *this), m_slot(nullptr), + device_t(mconfig, CPC_SYMBIFACE2, tag, owner, clock), + device_cpc_expansion_card_interface(mconfig, *this), + m_slot(nullptr), m_ide(*this,"ide"), m_rtc(*this,"rtc"), m_nvram(*this,"nvram"), m_mouse_x(*this,"sf2_mouse_x"), m_mouse_y(*this,"sf2_mouse_y"), - m_mouse_buttons(*this,"sf2_mouse_buttons"), m_iohigh(false), m_ide_data(0), m_mouse_state(0), m_input_x(0), m_input_y(0), m_4xxx_ptr_r(nullptr), m_4xxx_ptr_w(nullptr), m_6xxx_ptr_r(nullptr), m_6xxx_ptr_w(nullptr) + m_mouse_buttons(*this,"sf2_mouse_buttons"), + m_iohigh(false), m_ide_data(0), m_mouse_state(0), m_input_x(0), m_input_y(0), m_4xxx_ptr_r(nullptr), m_4xxx_ptr_w(nullptr), m_6xxx_ptr_r(nullptr), m_6xxx_ptr_w(nullptr) { } diff --git a/src/devices/bus/cpc/symbfac2.h b/src/devices/bus/cpc/symbfac2.h index a5a568b423f..9144d8a6519 100644 --- a/src/devices/bus/cpc/symbfac2.h +++ b/src/devices/bus/cpc/symbfac2.h @@ -6,13 +6,15 @@ * Created on: 2/08/2014 */ -#ifndef SYMBFAC2_H_ -#define SYMBFAC2_H_ +#ifndef MAME_BUS_CPC_SYMBFAC2_H +#define MAME_BUS_CPC_SYMBFAC2_H +#pragma once + +#include "cpcexp.h" #include "machine/ataintf.h" #include "machine/ds128x.h" #include "machine/nvram.h" -#include "cpcexp.h" class cpc_symbiface2_device : public device_t, public device_cpc_expansion_card_interface @@ -46,6 +48,7 @@ public: PS2_MOUSE_BUTTONS, PS2_MOUSE_SCROLL }; + protected: // device-level overrides virtual void device_start() override; @@ -78,7 +81,7 @@ private: }; // device type definition -extern const device_type CPC_SYMBIFACE2; +DECLARE_DEVICE_TYPE(CPC_SYMBIFACE2, cpc_symbiface2_device) -#endif /* SYMBFAC2_H_ */ +#endif // MAME_BUS_CPC_SYMBFAC2_H diff --git a/src/devices/bus/cpc/transtape.cpp b/src/devices/bus/cpc/transtape.cpp index 231333dd0e6..fbbe3bc464c 100644 --- a/src/devices/bus/cpc/transtape.cpp +++ b/src/devices/bus/cpc/transtape.cpp @@ -10,13 +10,12 @@ #include "emu.h" #include "transtape.h" -SLOT_INTERFACE_EXTERN(cpc_exp_cards); //************************************************************************** // DEVICE DEFINITIONS //************************************************************************** -const device_type CPC_TRANSTAPE = device_creator; +DEFINE_DEVICE_TYPE(CPC_TRANSTAPE, cpc_transtape_device, "cpc_transtape", "Hard Micro Transtape") ROM_START( cpc_transtape ) ROM_REGION( 0x4000, "tt_rom", 0 ) @@ -44,8 +43,9 @@ ioport_constructor cpc_transtape_device::device_input_ports() const //************************************************************************** cpc_transtape_device::cpc_transtape_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, CPC_TRANSTAPE, "HM Transtape", tag, owner, clock, "cpc_transtape", __FILE__), - device_cpc_expansion_card_interface(mconfig, *this), m_slot(nullptr), m_cpu(nullptr), m_space(nullptr), m_ram(nullptr), + device_t(mconfig, CPC_TRANSTAPE, tag, owner, clock), + device_cpc_expansion_card_interface(mconfig, *this), + m_slot(nullptr), m_cpu(nullptr), m_space(nullptr), m_ram(nullptr), m_rom_active(false), m_romen(true), m_output(0) diff --git a/src/devices/bus/cpc/transtape.h b/src/devices/bus/cpc/transtape.h index b8ae9037266..14fd81a0dc1 100644 --- a/src/devices/bus/cpc/transtape.h +++ b/src/devices/bus/cpc/transtape.h @@ -7,8 +7,10 @@ * */ -#ifndef TRANSTAPE_H_ -#define TRANSTAPE_H_ +#ifndef MAME_BUS_CPC_TRANSTAPE_H +#define MAME_BUS_CPC_TRANSTAPE_H + +#pragma once #include "cpcexp.h" @@ -49,6 +51,6 @@ private: }; // device type definition -extern const device_type CPC_TRANSTAPE; +DECLARE_DEVICE_TYPE(CPC_TRANSTAPE, cpc_transtape_device) -#endif /* TRANSTAPE_H_ */ +#endif // MAME_BUS_CPC_TRANSTAPE_H diff --git a/src/devices/bus/crvision/rom.cpp b/src/devices/bus/crvision/rom.cpp index 773eb00472b..fad177683b0 100644 --- a/src/devices/bus/crvision/rom.cpp +++ b/src/devices/bus/crvision/rom.cpp @@ -17,54 +17,53 @@ // crvision_rom_device - constructor //------------------------------------------------- -const device_type CRVISION_ROM_4K = device_creator; -const device_type CRVISION_ROM_6K = device_creator; -const device_type CRVISION_ROM_8K = device_creator; -const device_type CRVISION_ROM_10K = device_creator; -const device_type CRVISION_ROM_12K = device_creator; -const device_type CRVISION_ROM_16K = device_creator; -const device_type CRVISION_ROM_18K = device_creator; +DEFINE_DEVICE_TYPE(CRVISION_ROM_4K, crvision_rom_device, "crvision_4k", "CreatiVision 4K Carts") +DEFINE_DEVICE_TYPE(CRVISION_ROM_6K, crvision_rom6k_device, "crvision_6k", "CreatiVision 6K Carts") +DEFINE_DEVICE_TYPE(CRVISION_ROM_8K, crvision_rom8k_device, "crvision_8k", "CreatiVision 8K Carts") +DEFINE_DEVICE_TYPE(CRVISION_ROM_10K, crvision_rom10k_device, "crvision_10k", "CreatiVision 10K Carts") +DEFINE_DEVICE_TYPE(CRVISION_ROM_12K, crvision_rom12k_device, "crvision_12k", "CreatiVision 12K Carts") +DEFINE_DEVICE_TYPE(CRVISION_ROM_16K, crvision_rom16k_device, "crvision_16k", "CreatiVision 16K Carts") +DEFINE_DEVICE_TYPE(CRVISION_ROM_18K, crvision_rom18k_device, "crvision_18k", "CreatiVision 18K Carts") -crvision_rom_device::crvision_rom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_crvision_cart_interface(mconfig, *this) +crvision_rom_device::crvision_rom_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) + , device_crvision_cart_interface(mconfig, *this) { } crvision_rom_device::crvision_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, CRVISION_ROM_4K, "CreatiVision 4K Carts", tag, owner, clock, "crvision_4k", __FILE__), - device_crvision_cart_interface(mconfig, *this) + : crvision_rom_device(mconfig, CRVISION_ROM_4K, tag, owner, clock) { } crvision_rom6k_device::crvision_rom6k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : crvision_rom_device(mconfig, CRVISION_ROM_6K, "CreatiVision 6K Carts", tag, owner, clock, "crvision_6k", __FILE__) + : crvision_rom_device(mconfig, CRVISION_ROM_6K, tag, owner, clock) { } crvision_rom8k_device::crvision_rom8k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : crvision_rom_device(mconfig, CRVISION_ROM_8K, "CreatiVision 8K Carts", tag, owner, clock, "crvision_8k", __FILE__) + : crvision_rom_device(mconfig, CRVISION_ROM_8K, tag, owner, clock) { } crvision_rom10k_device::crvision_rom10k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : crvision_rom_device(mconfig, CRVISION_ROM_10K, "CreatiVision 10K Carts", tag, owner, clock, "crvision_10k", __FILE__) + : crvision_rom_device(mconfig, CRVISION_ROM_10K, tag, owner, clock) { } crvision_rom12k_device::crvision_rom12k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : crvision_rom_device(mconfig, CRVISION_ROM_12K, "CreatiVision 12K Carts", tag, owner, clock, "crvision_12k", __FILE__) + : crvision_rom_device(mconfig, CRVISION_ROM_12K, tag, owner, clock) { } crvision_rom16k_device::crvision_rom16k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : crvision_rom_device(mconfig, CRVISION_ROM_16K, "CreatiVision 16K Carts", tag, owner, clock, "crvision_16k", __FILE__) + : crvision_rom_device(mconfig, CRVISION_ROM_16K, tag, owner, clock) { } crvision_rom18k_device::crvision_rom18k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : crvision_rom_device(mconfig, CRVISION_ROM_18K, "CreatiVision 18K Carts", tag, owner, clock, "crvision_18k", __FILE__) + : crvision_rom_device(mconfig, CRVISION_ROM_18K, tag, owner, clock) { } diff --git a/src/devices/bus/crvision/rom.h b/src/devices/bus/crvision/rom.h index c557389ec97..cf15b1e4e2a 100644 --- a/src/devices/bus/crvision/rom.h +++ b/src/devices/bus/crvision/rom.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __CRVISION_ROM_H -#define __CRVISION_ROM_H +#ifndef MAME_BUS_CPC_CRVISION_ROM_H +#define MAME_BUS_CPC_CRVISION_ROM_H + +#pragma once #include "slot.h" @@ -13,15 +15,17 @@ class crvision_rom_device : public device_t, { public: // construction/destruction - crvision_rom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); crvision_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + // reading and writing + virtual DECLARE_READ8_MEMBER(read_rom80) override; + +protected: + crvision_rom_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override {} virtual void device_reset() override {} - - // reading and writing - virtual DECLARE_READ8_MEMBER(read_rom80) override; }; // ======================> crvision_rom6k_device @@ -100,17 +104,14 @@ public: }; - - - // device type definition -extern const device_type CRVISION_ROM_4K; -extern const device_type CRVISION_ROM_6K; -extern const device_type CRVISION_ROM_8K; -extern const device_type CRVISION_ROM_10K; -extern const device_type CRVISION_ROM_12K; -extern const device_type CRVISION_ROM_16K; -extern const device_type CRVISION_ROM_18K; +DECLARE_DEVICE_TYPE(CRVISION_ROM_4K, crvision_rom_device) +DECLARE_DEVICE_TYPE(CRVISION_ROM_6K, crvision_rom6k_device) +DECLARE_DEVICE_TYPE(CRVISION_ROM_8K, crvision_rom8k_device) +DECLARE_DEVICE_TYPE(CRVISION_ROM_10K, crvision_rom10k_device) +DECLARE_DEVICE_TYPE(CRVISION_ROM_12K, crvision_rom12k_device) +DECLARE_DEVICE_TYPE(CRVISION_ROM_16K, crvision_rom16k_device) +DECLARE_DEVICE_TYPE(CRVISION_ROM_18K, crvision_rom18k_device) -#endif +#endif // MAME_BUS_CPC_CRVISION_ROM_H diff --git a/src/devices/bus/crvision/slot.cpp b/src/devices/bus/crvision/slot.cpp index 48e0fd719ea..a0398840f00 100644 --- a/src/devices/bus/crvision/slot.cpp +++ b/src/devices/bus/crvision/slot.cpp @@ -15,7 +15,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type CRVISION_CART_SLOT = device_creator; +DEFINE_DEVICE_TYPE(CRVISION_CART_SLOT, crvision_cart_slot_device, "crvision_cart_slot", "CreatiVision Cartridge Slot") //************************************************************************** // CreatiVision Cartridges Interface @@ -63,10 +63,10 @@ void device_crvision_cart_interface::rom_alloc(uint32_t size, const char *tag) // crvision_cart_slot_device - constructor //------------------------------------------------- crvision_cart_slot_device::crvision_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, CRVISION_CART_SLOT, "CreatiVision Cartridge Slot", tag, owner, clock, "crvision_cart_slot", __FILE__), - device_image_interface(mconfig, *this), - device_slot_interface(mconfig, *this), - m_type(CRV_4K), m_cart(nullptr) + device_t(mconfig, CRVISION_CART_SLOT, tag, owner, clock), + device_image_interface(mconfig, *this), + device_slot_interface(mconfig, *this), + m_type(CRV_4K), m_cart(nullptr) { } diff --git a/src/devices/bus/crvision/slot.h b/src/devices/bus/crvision/slot.h index c705d016d1b..bcf841ecfdd 100644 --- a/src/devices/bus/crvision/slot.h +++ b/src/devices/bus/crvision/slot.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __CRVISION_SLOT_H -#define __CRVISION_SLOT_H +#ifndef MAME_BUS_CRVISION_SLOT_H +#define MAME_BUS_CRVISION_SLOT_H + +#pragma once #include "softlist_dev.h" @@ -30,7 +32,6 @@ class device_crvision_cart_interface : public device_slot_card_interface { public: // construction/destruction - device_crvision_cart_interface(const machine_config &mconfig, device_t &device); virtual ~device_crvision_cart_interface(); // reading and writing @@ -42,6 +43,8 @@ public: uint32_t get_rom_size() { return m_rom_size; } protected: + device_crvision_cart_interface(const machine_config &mconfig, device_t &device); + // internal state uint8_t *m_rom; uint32_t m_rom_size; @@ -95,6 +98,7 @@ protected: // device type definition extern const device_type CRVISION_CART_SLOT; +DECLARE_DEVICE_TYPE(CRVISION_CART_SLOT, crvision_cart_slot_device) /*************************************************************************** @@ -106,4 +110,5 @@ extern const device_type CRVISION_CART_SLOT; #define MCFG_CRVISION_CARTRIDGE_ADD(_tag,_slot_intf,_def_slot) \ MCFG_DEVICE_ADD(_tag, CRVISION_CART_SLOT, 0) \ MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, false) -#endif + +#endif // MAME_BUS_CRVISION_SLOT_H diff --git a/src/devices/bus/dmv/dmvbus.cpp b/src/devices/bus/dmv/dmvbus.cpp index 379be49cef2..80cb8ae748c 100644 --- a/src/devices/bus/dmv/dmvbus.cpp +++ b/src/devices/bus/dmv/dmvbus.cpp @@ -162,7 +162,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type DMVCART_SLOT = device_creator; +DEFINE_DEVICE_TYPE(DMVCART_SLOT, dmvcart_slot_device, "dmvcart_slot", "Decision Mate V cartridge slot") //************************************************************************** // DMV cartridge interface @@ -195,13 +195,13 @@ device_dmvslot_interface::~device_dmvslot_interface() // dmvcart_slot_device - constructor //------------------------------------------------- dmvcart_slot_device::dmvcart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, DMVCART_SLOT, "Decision Mate V cartridge slot", tag, owner, clock, "dmvcart_slot", __FILE__), - device_slot_interface(mconfig, *this), - m_prog_read_cb(*this), - m_prog_write_cb(*this), - m_out_int_cb(*this), - m_out_irq_cb(*this), - m_out_thold_cb(*this), m_cart(nullptr) + device_t(mconfig, DMVCART_SLOT, tag, owner, clock), + device_slot_interface(mconfig, *this), + m_prog_read_cb(*this), + m_prog_write_cb(*this), + m_out_int_cb(*this), + m_out_irq_cb(*this), + m_out_thold_cb(*this), m_cart(nullptr) { } diff --git a/src/devices/bus/dmv/dmvbus.h b/src/devices/bus/dmv/dmvbus.h index ab5d152515c..62a1d7254b9 100644 --- a/src/devices/bus/dmv/dmvbus.h +++ b/src/devices/bus/dmv/dmvbus.h @@ -6,8 +6,10 @@ *********************************************************************/ -#ifndef __DMV_CART_H__ -#define __DMV_CART_H__ +#ifndef MAME_BUS_DMV_DMVBUS_H +#define MAME_BUS_DMV_DMVBUS_H + +#pragma once /*************************************************************************** TYPE DEFINITIONS @@ -19,7 +21,6 @@ class device_dmvslot_interface : public device_slot_card_interface { public: // construction/destruction - device_dmvslot_interface(const machine_config &mconfig, device_t &device); virtual ~device_dmvslot_interface(); virtual bool read(offs_t offset, uint8_t &data) { return false; } @@ -45,6 +46,9 @@ public: virtual void irq4_w(int state) { } virtual void irq5_w(int state) { } virtual void irq6_w(int state) { } + +protected: + device_dmvslot_interface(const machine_config &mconfig, device_t &device); }; @@ -58,11 +62,11 @@ public: dmvcart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual ~dmvcart_slot_device(); - template static devcb_base &set_prog_read_callback(device_t &device, _Object object) { return downcast(device).m_prog_read_cb.set_callback(object); } - template static devcb_base &set_prog_write_callback(device_t &device, _Object object) { return downcast(device).m_prog_write_cb.set_callback(object); } - template static devcb_base &set_out_int_callback(device_t &device, _Object object) { return downcast(device).m_out_int_cb.set_callback(object); } - template static devcb_base &set_out_irq_callback(device_t &device, _Object object) { return downcast(device).m_out_irq_cb.set_callback(object); } - template static devcb_base &set_out_thold_callback(device_t &device, _Object object) { return downcast(device).m_out_thold_cb.set_callback(object); } + template static devcb_base &set_prog_read_callback(device_t &device, Object &&cb) { return downcast(device).m_prog_read_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_prog_write_callback(device_t &device, Object &&cb) { return downcast(device).m_prog_write_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_int_callback(device_t &device, Object &&cb) { return downcast(device).m_out_int_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_irq_callback(device_t &device, Object &&cb) { return downcast(device).m_out_irq_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_thold_callback(device_t &device, Object &&cb) { return downcast(device).m_out_thold_cb.set_callback(std::forward(cb)); } // device-level overrides virtual void device_start() override; @@ -99,7 +103,7 @@ public: // device type definition -extern const device_type DMVCART_SLOT; +DECLARE_DEVICE_TYPE(DMVCART_SLOT, dmvcart_slot_device) /*************************************************************************** @@ -119,4 +123,4 @@ extern const device_type DMVCART_SLOT; #define MCFG_DMVCART_SLOT_OUT_THOLD_CB(_devcb) \ devcb = &dmvcart_slot_device::set_out_thold_callback(*device, DEVCB_##_devcb); -#endif /* __DMV_CART_H__ */ +#endif // MAME_BUS_DMV_DMVBUS_H diff --git a/src/devices/bus/dmv/k210.cpp b/src/devices/bus/dmv/k210.cpp index cb3c67a5f4e..d8bc83f88a9 100644 --- a/src/devices/bus/dmv/k210.cpp +++ b/src/devices/bus/dmv/k210.cpp @@ -41,7 +41,7 @@ MACHINE_CONFIG_END // GLOBAL VARIABLES //************************************************************************** -const device_type DMV_K210 = device_creator; +DEFINE_DEVICE_TYPE(DMV_K210, dmv_k210_device, "dmv_k210", "K210 Centronics") //************************************************************************** // LIVE DEVICE @@ -52,13 +52,14 @@ const device_type DMV_K210 = device_creator; //------------------------------------------------- dmv_k210_device::dmv_k210_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, DMV_K210, "K210 Centronics", tag, owner, clock, "dmv_k210", __FILE__), - device_dmvslot_interface( mconfig, *this ), - m_ppi(*this, "ppi8255"), - m_centronics(*this, "centronics"), - m_cent_data_in(*this, "cent_data_in"), - m_cent_data_out(*this, "cent_data_out"), m_bus(nullptr), m_clk1_timer(nullptr), m_portb(0), m_portc(0) - { + : device_t(mconfig, DMV_K210, tag, owner, clock) + , device_dmvslot_interface(mconfig, *this) + , m_ppi(*this, "ppi8255") + , m_centronics(*this, "centronics") + , m_cent_data_in(*this, "cent_data_in") + , m_cent_data_out(*this, "cent_data_out") + , m_bus(nullptr), m_clk1_timer(nullptr), m_portb(0), m_portc(0) +{ } //------------------------------------------------- diff --git a/src/devices/bus/dmv/k210.h b/src/devices/bus/dmv/k210.h index 4c31252218b..dea7863f19a 100644 --- a/src/devices/bus/dmv/k210.h +++ b/src/devices/bus/dmv/k210.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Sandro Ronco -#pragma once +#ifndef MAME_BUS_DMV_K210_H +#define MAME_BUS_DMV_K210_H -#ifndef __DMV_K210_H__ -#define __DMV_K210_H__ +#pragma once #include "dmvbus.h" #include "machine/i8255.h" @@ -65,6 +65,6 @@ private: // device type definition -extern const device_type DMV_K210; +DECLARE_DEVICE_TYPE(DMV_K210, dmv_k210_device) -#endif /* __DMV_K210_H__ */ +#endif // MAME_BUS_DMV_K210_H diff --git a/src/devices/bus/dmv/k220.cpp b/src/devices/bus/dmv/k220.cpp index 9f5ad2dd154..863c5ce3f58 100644 --- a/src/devices/bus/dmv/k220.cpp +++ b/src/devices/bus/dmv/k220.cpp @@ -122,7 +122,7 @@ INPUT_PORTS_END // GLOBAL VARIABLES //************************************************************************** -const device_type DMV_K220 = device_creator; +DEFINE_DEVICE_TYPE(DMV_K220, dmv_k220_device, "dmv_k220", "K220 diagnostic") //************************************************************************** // LIVE DEVICE @@ -133,13 +133,14 @@ const device_type DMV_K220 = device_creator; //------------------------------------------------- dmv_k220_device::dmv_k220_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, DMV_K220, "K220 diagnostic", tag, owner, clock, "dmv_k220", __FILE__), - device_dmvslot_interface( mconfig, *this ), - m_pit(*this, "pit8253"), - m_ppi(*this, "ppi8255"), - m_ram(*this, "ram"), - m_rom(*this, "rom"), m_portc(0) - { + : device_t(mconfig, DMV_K220, tag, owner, clock) + , device_dmvslot_interface(mconfig, *this) + , m_pit(*this, "pit8253") + , m_ppi(*this, "ppi8255") + , m_ram(*this, "ram") + , m_rom(*this, "rom") + , m_portc(0) +{ } //------------------------------------------------- diff --git a/src/devices/bus/dmv/k220.h b/src/devices/bus/dmv/k220.h index 125f317170a..fe71e2311da 100644 --- a/src/devices/bus/dmv/k220.h +++ b/src/devices/bus/dmv/k220.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Sandro Ronco -#pragma once +#ifndef MAME_BUS_DMV_K220_H +#define MAME_BUS_DMV_K220_H -#ifndef __DMV_K220_H__ -#define __DMV_K220_H__ +#pragma once #include "dmvbus.h" #include "machine/i8255.h" @@ -55,5 +55,6 @@ private: // device type definition extern const device_type DMV_K220; +DECLARE_DEVICE_TYPE(DMV_K220, dmv_k220_device) -#endif /* __DMV_K220_H__ */ +#endif // MAME_BUS_DMV_K220_H diff --git a/src/devices/bus/dmv/k230.cpp b/src/devices/bus/dmv/k230.cpp index 4aad694c433..4d6dbe2d5f6 100644 --- a/src/devices/bus/dmv/k230.cpp +++ b/src/devices/bus/dmv/k230.cpp @@ -93,10 +93,10 @@ INPUT_PORTS_END // GLOBAL VARIABLES //************************************************************************** -const device_type DMV_K230 = device_creator; -const device_type DMV_K231 = device_creator; -const device_type DMV_K234 = device_creator; -const device_type DMV_K235 = device_creator; +DEFINE_DEVICE_TYPE(DMV_K230, dmv_k230_device, "dmv_k230", "K230 8088 without interrupt controller") +DEFINE_DEVICE_TYPE(DMV_K231, dmv_k231_device, "dmv_k231", "K231 8088 without interrupt controller") +DEFINE_DEVICE_TYPE(DMV_K234, dmv_k234_device, "dmv_k234", "K234 68008") +DEFINE_DEVICE_TYPE(DMV_K235, dmv_k235_device, "dmv_k235", "K235 8088 with interrupt controller") //************************************************************************** // LIVE DEVICE @@ -107,19 +107,16 @@ const device_type DMV_K235 = device_creator; //------------------------------------------------- dmv_k230_device::dmv_k230_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, DMV_K230, "K230 8088 without interrupt controller", tag, owner, clock, "dmv_k230", __FILE__), - device_dmvslot_interface( mconfig, *this ), - m_maincpu(*this, "maincpu"), - m_rom(*this, "rom"), m_bus(nullptr), m_io(nullptr), m_switch16(0), m_hold(0) - { + : dmv_k230_device(mconfig, DMV_K230, tag, owner, clock) +{ } -dmv_k230_device::dmv_k230_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_dmvslot_interface( mconfig, *this ), - m_maincpu(*this, "maincpu"), - m_rom(*this, "rom"), m_bus(nullptr), m_io(nullptr), m_switch16(0), m_hold(0) - { +dmv_k230_device::dmv_k230_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) + , device_dmvslot_interface(mconfig, *this) + , m_maincpu(*this, "maincpu") + , m_rom(*this, "rom"), m_bus(nullptr), m_io(nullptr), m_switch16(0), m_hold(0) +{ } //------------------------------------------------- @@ -127,7 +124,7 @@ dmv_k230_device::dmv_k230_device(const machine_config &mconfig, device_type type //------------------------------------------------- dmv_k231_device::dmv_k231_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : dmv_k230_device(mconfig, DMV_K231, "K231 8088 without interrupt controller", tag, owner, clock, "dmv_k231", __FILE__) + : dmv_k230_device(mconfig, DMV_K231, tag, owner, clock) { } @@ -136,8 +133,8 @@ dmv_k231_device::dmv_k231_device(const machine_config &mconfig, const char *tag, //------------------------------------------------- dmv_k234_device::dmv_k234_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : dmv_k230_device(mconfig, DMV_K234, "K234 68008", tag, owner, clock, "dmv_k234", __FILE__), m_snr(0) - { + : dmv_k230_device(mconfig, DMV_K234, tag, owner, clock), m_snr(0) +{ } //------------------------------------------------- @@ -145,9 +142,7 @@ dmv_k234_device::dmv_k234_device(const machine_config &mconfig, const char *tag, //------------------------------------------------- dmv_k235_device::dmv_k235_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : dmv_k230_device(mconfig, DMV_K235, "K235 8088 with interrupt controller", tag, owner, clock, "dmv_k235", __FILE__), - m_pic(*this, "pic8259"), - m_dsw(*this, "DSW") + : dmv_k230_device(mconfig, DMV_K235, tag, owner, clock), m_pic(*this, "pic8259"), m_dsw(*this, "DSW") { } diff --git a/src/devices/bus/dmv/k230.h b/src/devices/bus/dmv/k230.h index 1f5da13a87f..9e183b1c997 100644 --- a/src/devices/bus/dmv/k230.h +++ b/src/devices/bus/dmv/k230.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Sandro Ronco -#pragma once +#ifndef MAME_BUS_DMV_K230_H +#define MAME_BUS_DMV_K230_H -#ifndef __DMV_K230_H__ -#define __DMV_K230_H__ +#pragma once #include "dmvbus.h" #include "cpu/i86/i86.h" @@ -28,7 +28,6 @@ class dmv_k230_device : { public: // construction/destruction - dmv_k230_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); dmv_k230_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides @@ -42,6 +41,8 @@ public: DECLARE_READ8_MEMBER(rom_r); protected: + dmv_k230_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -137,9 +138,9 @@ private: }; // device type definition -extern const device_type DMV_K230; -extern const device_type DMV_K231; -extern const device_type DMV_K234; -extern const device_type DMV_K235; +DECLARE_DEVICE_TYPE(DMV_K230, dmv_k230_device) +DECLARE_DEVICE_TYPE(DMV_K231, dmv_k231_device) +DECLARE_DEVICE_TYPE(DMV_K234, dmv_k234_device) +DECLARE_DEVICE_TYPE(DMV_K235, dmv_k235_device) -#endif /* __DMV_K230_H__ */ +#endif // MAME_BUS_DMV_K230_H diff --git a/src/devices/bus/dmv/k233.cpp b/src/devices/bus/dmv/k233.cpp index 129823975a7..2ba68d3f53f 100644 --- a/src/devices/bus/dmv/k233.cpp +++ b/src/devices/bus/dmv/k233.cpp @@ -18,7 +18,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type DMV_K233 = device_creator; +DEFINE_DEVICE_TYPE(DMV_K233, dmv_k233_device, "dmv_k233", "K233 16K Shared RAM") //************************************************************************** // LIVE DEVICE @@ -29,11 +29,11 @@ const device_type DMV_K233 = device_creator; //------------------------------------------------- dmv_k233_device::dmv_k233_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, DMV_K233, "K233 16K Shared RAM", tag, owner, clock, "dmv_k233", __FILE__), - device_dmvslot_interface( mconfig, *this ), - m_enabled(false), - m_ram(nullptr) - { + : device_t(mconfig, DMV_K233, tag, owner, clock) + , device_dmvslot_interface(mconfig, *this) + , m_enabled(false) + , m_ram(nullptr) +{ } //------------------------------------------------- diff --git a/src/devices/bus/dmv/k233.h b/src/devices/bus/dmv/k233.h index 6641f97bf08..8aa2f0d235b 100644 --- a/src/devices/bus/dmv/k233.h +++ b/src/devices/bus/dmv/k233.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Sandro Ronco -#pragma once +#ifndef MAME_BUS_DMV_K233_H +#define MAME_BUS_DMV_K233_H -#ifndef __DMV_K233_H__ -#define __DMV_K233_H__ +#pragma once #include "dmvbus.h" @@ -38,6 +38,6 @@ private: // device type definition -extern const device_type DMV_K233; +DECLARE_DEVICE_TYPE(DMV_K233, dmv_k233_device) -#endif /* __DMV_K233_H__ */ +#endif // MAME_BUS_DMV_K233_H diff --git a/src/devices/bus/dmv/k801.cpp b/src/devices/bus/dmv/k801.cpp index c466e83e121..2a739363465 100644 --- a/src/devices/bus/dmv/k801.cpp +++ b/src/devices/bus/dmv/k801.cpp @@ -98,10 +98,10 @@ INPUT_PORTS_END // GLOBAL VARIABLES //************************************************************************** -const device_type DMV_K801 = device_creator; -const device_type DMV_K211 = device_creator; -const device_type DMV_K212 = device_creator; -const device_type DMV_K213 = device_creator; +DEFINE_DEVICE_TYPE(DMV_K801, dmv_k801_device, "dmv_k801", "K801 RS-232 Switchable Interface") +DEFINE_DEVICE_TYPE(DMV_K211, dmv_k211_device, "dmv_k211", "K211 RS-232 Communications Interface") +DEFINE_DEVICE_TYPE(DMV_K212, dmv_k212_device, "dmv_k212", "K212 RS-232 Printer Interface") +DEFINE_DEVICE_TYPE(DMV_K213, dmv_k213_device, "dmv_k213", "K213 RS-232 Plotter Interface") //************************************************************************** // LIVE DEVICE @@ -112,19 +112,16 @@ const device_type DMV_K213 = device_creator; //------------------------------------------------- dmv_k801_device::dmv_k801_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, DMV_K801, "K801 RS-232 Switchable Interface", tag, owner, clock, "dmv_k801", __FILE__), - device_dmvslot_interface( mconfig, *this ), - m_epci(*this, "epci"), - m_dsw(*this, "DSW"), m_bus(nullptr) - { + : dmv_k801_device(mconfig, DMV_K801, tag, owner, clock) +{ } -dmv_k801_device::dmv_k801_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_dmvslot_interface( mconfig, *this ), - m_epci(*this, "epci"), - m_dsw(*this, "DSW"), m_bus(nullptr) - { +dmv_k801_device::dmv_k801_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock), + device_dmvslot_interface( mconfig, *this ), + m_epci(*this, "epci"), + m_dsw(*this, "DSW"), m_bus(nullptr) +{ } //------------------------------------------------- @@ -132,13 +129,13 @@ dmv_k801_device::dmv_k801_device(const machine_config &mconfig, device_type type //------------------------------------------------- dmv_k211_device::dmv_k211_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : dmv_k801_device(mconfig, DMV_K211, "K211 RS-232 Communications Interface", tag, owner, clock, "dmv_k211", __FILE__) + : dmv_k211_device(mconfig, DMV_K211, tag, owner, clock) { } -dmv_k211_device::dmv_k211_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : dmv_k801_device(mconfig, type, name, tag, owner, clock, shortname, source) +dmv_k211_device::dmv_k211_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : dmv_k801_device(mconfig, type, tag, owner, clock) { } @@ -147,7 +144,7 @@ dmv_k211_device::dmv_k211_device(const machine_config &mconfig, device_type type //------------------------------------------------- dmv_k212_device::dmv_k212_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : dmv_k211_device(mconfig, DMV_K212, "K212 RS-232 Printer Interface", tag, owner, clock, "dmv_k212", __FILE__) + : dmv_k211_device(mconfig, DMV_K212, tag, owner, clock) { } @@ -156,7 +153,7 @@ dmv_k212_device::dmv_k212_device(const machine_config &mconfig, const char *tag, //------------------------------------------------- dmv_k213_device::dmv_k213_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : dmv_k211_device(mconfig, DMV_K213, "K213 RS-232 Plotter Interface", tag, owner, clock, "dmv_k213", __FILE__) + : dmv_k211_device(mconfig, DMV_K213, tag, owner, clock) { } diff --git a/src/devices/bus/dmv/k801.h b/src/devices/bus/dmv/k801.h index a569dc5efab..cad9701e61e 100644 --- a/src/devices/bus/dmv/k801.h +++ b/src/devices/bus/dmv/k801.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Sandro Ronco -#pragma once +#ifndef MAME_BUS_DMV_K801_H +#define MAME_BUS_DMV_K801_H -#ifndef __DMV_K801_H__ -#define __DMV_K801_H__ +#pragma once #include "dmvbus.h" #include "machine/mc2661.h" @@ -23,7 +23,6 @@ class dmv_k801_device : public: // construction/destruction dmv_k801_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - dmv_k801_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); // optional information overrides virtual ioport_constructor device_input_ports() const override; @@ -32,6 +31,8 @@ public: DECLARE_WRITE_LINE_MEMBER(epci_irq_w); protected: + dmv_k801_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -55,13 +56,14 @@ class dmv_k211_device : public: // construction/destruction dmv_k211_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - dmv_k211_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); // optional information overrides virtual ioport_constructor device_input_ports() const override; virtual machine_config_constructor device_mconfig_additions() const override; protected: + dmv_k211_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // dmvcart_interface overrides virtual void io_read(address_space &space, int ifsel, offs_t offset, uint8_t &data) override; virtual void io_write(address_space &space, int ifsel, offs_t offset, uint8_t data) override; @@ -97,9 +99,9 @@ public: // device type definition -extern const device_type DMV_K801; -extern const device_type DMV_K211; -extern const device_type DMV_K212; -extern const device_type DMV_K213; +DECLARE_DEVICE_TYPE(DMV_K801, dmv_k801_device) +DECLARE_DEVICE_TYPE(DMV_K211, dmv_k211_device) +DECLARE_DEVICE_TYPE(DMV_K212, dmv_k212_device) +DECLARE_DEVICE_TYPE(DMV_K213, dmv_k213_device) -#endif /* __DMV_K801_H__ */ +#endif // MAME_BUS_DMV_K801_H diff --git a/src/devices/bus/dmv/k803.cpp b/src/devices/bus/dmv/k803.cpp index be80480bac6..299b0655e40 100644 --- a/src/devices/bus/dmv/k803.cpp +++ b/src/devices/bus/dmv/k803.cpp @@ -38,7 +38,7 @@ INPUT_PORTS_END // GLOBAL VARIABLES //************************************************************************** -const device_type DMV_K803 = device_creator; +DEFINE_DEVICE_TYPE(DMV_K803, dmv_k803_device, "dmv_k803", "K803 RTC") //************************************************************************** @@ -50,11 +50,11 @@ const device_type DMV_K803 = device_creator; //------------------------------------------------- dmv_k803_device::dmv_k803_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, DMV_K803, "K803 RTC", tag, owner, clock, "dmv_k803", __FILE__), - device_dmvslot_interface( mconfig, *this ), - m_rtc(*this, "rtc"), - m_dsw(*this, "DSW"), m_bus(nullptr), m_latch(0), m_rtc_int(0) - { + : device_t(mconfig, DMV_K803, tag, owner, clock), + device_dmvslot_interface( mconfig, *this ), + m_rtc(*this, "rtc"), + m_dsw(*this, "DSW"), m_bus(nullptr), m_latch(0), m_rtc_int(0) +{ } //------------------------------------------------- diff --git a/src/devices/bus/dmv/k803.h b/src/devices/bus/dmv/k803.h index 714c08b1e45..0446a8bbeb4 100644 --- a/src/devices/bus/dmv/k803.h +++ b/src/devices/bus/dmv/k803.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Sandro Ronco -#pragma once +#ifndef MAME_BUS_DMV_K803_H +#define MAME_BUS_DMV_K803_H -#ifndef __DMV_K803_H__ -#define __DMV_K803_H__ +#pragma once #include "dmvbus.h" #include "machine/mm58167.h" @@ -48,6 +48,6 @@ private: // device type definition -extern const device_type DMV_K803; +DECLARE_DEVICE_TYPE(DMV_K803, dmv_k803_device) -#endif /* __DMV_K803_H__ */ +#endif // MAME_BUS_DMV_K803_H diff --git a/src/devices/bus/dmv/k806.cpp b/src/devices/bus/dmv/k806.cpp index 7e4309ac5a9..9d0f986b7f9 100644 --- a/src/devices/bus/dmv/k806.cpp +++ b/src/devices/bus/dmv/k806.cpp @@ -61,7 +61,7 @@ INPUT_PORTS_END // GLOBAL VARIABLES //************************************************************************** -const device_type DMV_K806 = device_creator; +DEFINE_DEVICE_TYPE(DMV_K806, dmv_k806_device, "dmv_k806", "K806 mouse") //************************************************************************** // LIVE DEVICE @@ -72,14 +72,15 @@ const device_type DMV_K806 = device_creator; //------------------------------------------------- dmv_k806_device::dmv_k806_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, DMV_K806, "K806 mouse", tag, owner, clock, "dmv_k806", __FILE__), - device_dmvslot_interface( mconfig, *this ), - m_mcu(*this, "mcu"), - m_jumpers(*this, "JUMPERS"), - m_mouse_buttons(*this, "MOUSE"), - m_mouse_x(*this, "MOUSEX"), - m_mouse_y(*this, "MOUSEY"), m_bus(nullptr) - { + : device_t(mconfig, DMV_K806, tag, owner, clock) + , device_dmvslot_interface( mconfig, *this ) + , m_mcu(*this, "mcu") + , m_jumpers(*this, "JUMPERS") + , m_mouse_buttons(*this, "MOUSE") + , m_mouse_x(*this, "MOUSEX") + , m_mouse_y(*this, "MOUSEY") + , m_bus(nullptr) +{ } //------------------------------------------------- diff --git a/src/devices/bus/dmv/k806.h b/src/devices/bus/dmv/k806.h index 4e1330d5578..bcb41068f82 100644 --- a/src/devices/bus/dmv/k806.h +++ b/src/devices/bus/dmv/k806.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Sandro Ronco -#pragma once +#ifndef MAME_BUS_DMV_K806_H +#define MAME_BUS_DMV_K806_H -#ifndef __DMV_K806_H__ -#define __DMV_K806_H__ +#pragma once #include "dmvbus.h" #include "cpu/mcs48/mcs48.h" @@ -66,6 +66,6 @@ private: // device type definition -extern const device_type DMV_K806; +DECLARE_DEVICE_TYPE(DMV_K806, dmv_k806_device) -#endif /* __DMV_K806_H__ */ +#endif // MAME_BUS_DMV_K806_H diff --git a/src/devices/bus/dmv/ram.cpp b/src/devices/bus/dmv/ram.cpp index b676a7c3148..2e879fc9ce6 100644 --- a/src/devices/bus/dmv/ram.cpp +++ b/src/devices/bus/dmv/ram.cpp @@ -20,22 +20,23 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type DMV_K200 = device_creator; -const device_type DMV_K202 = device_creator; -const device_type DMV_K208 = device_creator; +DEFINE_DEVICE_TYPE(DMV_K200, dmv_k200_device, "dmv_k200", "K200 64K RAM expansion") +DEFINE_DEVICE_TYPE(DMV_K202, dmv_k202_device, "dmv_k202", "K202 192K RAM expansion") +DEFINE_DEVICE_TYPE(DMV_K208, dmv_k208_device, "dmv_k208", "K208 448K RAM expansion") //************************************************************************** // LIVE DEVICE //************************************************************************** //------------------------------------------------- -// dmv_ram_device - constructor +// dmv_ram_device_base - constructor //------------------------------------------------- -dmv_ram_device::dmv_ram_device(const machine_config &mconfig, device_type type, uint32_t size, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_dmvslot_interface( mconfig, *this ), m_ram(nullptr), - m_size(size) +dmv_ram_device_base::dmv_ram_device_base(const machine_config &mconfig, device_type type, uint32_t size, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) + , device_dmvslot_interface(mconfig, *this) + , m_ram(nullptr) + , m_size(size) { } @@ -44,7 +45,7 @@ dmv_ram_device::dmv_ram_device(const machine_config &mconfig, device_type type, //------------------------------------------------- dmv_k200_device::dmv_k200_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : dmv_ram_device(mconfig, DMV_K200, 1, "K200 64K RAM expansion", tag, owner, clock, "dmv_k200", __FILE__) + : dmv_ram_device_base(mconfig, DMV_K200, 1, tag, owner, clock) { } @@ -53,7 +54,7 @@ dmv_k200_device::dmv_k200_device(const machine_config &mconfig, const char *tag, //------------------------------------------------- dmv_k202_device::dmv_k202_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : dmv_ram_device(mconfig, DMV_K202, 3, "K202 192K RAM expansion", tag, owner, clock, "dmv_k202", __FILE__) + : dmv_ram_device_base(mconfig, DMV_K202, 3, tag, owner, clock) { } @@ -62,7 +63,7 @@ dmv_k202_device::dmv_k202_device(const machine_config &mconfig, const char *tag, //------------------------------------------------- dmv_k208_device::dmv_k208_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : dmv_ram_device(mconfig, DMV_K208, 7 , "K208 448K RAM expansion", tag, owner, clock, "dmv_k208", __FILE__) + : dmv_ram_device_base(mconfig, DMV_K208, 7, tag, owner, clock) { } @@ -70,7 +71,7 @@ dmv_k208_device::dmv_k208_device(const machine_config &mconfig, const char *tag, // device_start - device-specific startup //------------------------------------------------- -void dmv_ram_device::device_start() +void dmv_ram_device_base::device_start() { m_ram = machine().memory().region_alloc( "expram", m_size * 0x10000, 1, ENDIANNESS_LITTLE )->base(); } @@ -79,7 +80,7 @@ void dmv_ram_device::device_start() // read //------------------------------------------------- -void dmv_ram_device::ram_read(uint8_t cas, offs_t offset, uint8_t &data) +void dmv_ram_device_base::ram_read(uint8_t cas, offs_t offset, uint8_t &data) { if (cas && cas <= m_size) data = m_ram[((cas - 1) << 16) | (offset & 0xffff)]; @@ -89,7 +90,7 @@ void dmv_ram_device::ram_read(uint8_t cas, offs_t offset, uint8_t &data) // write //------------------------------------------------- -void dmv_ram_device::ram_write(uint8_t cas, offs_t offset, uint8_t data) +void dmv_ram_device_base::ram_write(uint8_t cas, offs_t offset, uint8_t data) { if (cas && cas <= m_size) m_ram[((cas - 1) << 16) | (offset & 0xffff)] = data; diff --git a/src/devices/bus/dmv/ram.h b/src/devices/bus/dmv/ram.h index 783c7bacf42..43e7820a9ca 100644 --- a/src/devices/bus/dmv/ram.h +++ b/src/devices/bus/dmv/ram.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Sandro Ronco -#pragma once +#ifndef MAME_BUS_DMV_RAM_H +#define MAME_BUS_DMV_RAM_H -#ifndef __DMV_RAM_H__ -#define __DMV_RAM_H__ +#pragma once #include "dmvbus.h" @@ -13,15 +13,14 @@ // ======================> -class dmv_ram_device : +class dmv_ram_device_base : public device_t, public device_dmvslot_interface { -public: +protected: // construction/destruction - dmv_ram_device(const machine_config &mconfig, device_type type, uint32_t size, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); + dmv_ram_device_base(const machine_config &mconfig, device_type type, uint32_t size, const char *tag, device_t *owner, uint32_t clock); -protected: // device-level overrides virtual void device_start() override; @@ -35,8 +34,7 @@ private: }; -class dmv_k200_device : - public dmv_ram_device +class dmv_k200_device : public dmv_ram_device_base { public: // construction/destruction @@ -44,8 +42,7 @@ public: }; -class dmv_k202_device : - public dmv_ram_device +class dmv_k202_device : public dmv_ram_device_base { public: // construction/destruction @@ -53,8 +50,7 @@ public: }; -class dmv_k208_device : - public dmv_ram_device +class dmv_k208_device : public dmv_ram_device_base { public: // construction/destruction @@ -63,8 +59,8 @@ public: // device type definition -extern const device_type DMV_K200; -extern const device_type DMV_K202; -extern const device_type DMV_K208; +DECLARE_DEVICE_TYPE(DMV_K200, dmv_k200_device) +DECLARE_DEVICE_TYPE(DMV_K202, dmv_k202_device) +DECLARE_DEVICE_TYPE(DMV_K208, dmv_k208_device) -#endif /* __DMV_RAM_H__ */ +#endif // MAME_BUS_DMV_RAM_H diff --git a/src/devices/bus/ecbbus/ecbbus.cpp b/src/devices/bus/ecbbus/ecbbus.cpp index 0947322dfc7..7649dea491a 100644 --- a/src/devices/bus/ecbbus/ecbbus.cpp +++ b/src/devices/bus/ecbbus/ecbbus.cpp @@ -15,7 +15,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type ECBBUS_SLOT = device_creator; +DEFINE_DEVICE_TYPE(ECBBUS_SLOT, ecbbus_slot_device, "ecbbus_slot", "ECB bus slot") @@ -28,8 +28,9 @@ const device_type ECBBUS_SLOT = device_creator; //------------------------------------------------- ecbbus_slot_device::ecbbus_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, ECBBUS_SLOT, "ECB bus slot", tag, owner, clock, "ecbbus_slot", __FILE__), - device_slot_interface(mconfig, *this), m_bus_tag(nullptr), m_bus_num(0), m_bus(nullptr) + device_t(mconfig, ECBBUS_SLOT, tag, owner, clock), + device_slot_interface(mconfig, *this), + m_bus_tag(nullptr), m_bus_num(0), m_bus(nullptr) { } @@ -63,7 +64,7 @@ void ecbbus_slot_device::device_start() // DEVICE DEFINITIONS //************************************************************************** -const device_type ECBBUS = device_creator; +DEFINE_DEVICE_TYPE(ECBBUS, ecbbus_device, "ecbbus", "ECB bus") @@ -92,12 +93,11 @@ device_ecbbus_card_interface::device_ecbbus_card_interface(const machine_config //------------------------------------------------- ecbbus_device::ecbbus_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, ECBBUS, "ECB bus", tag, owner, clock, "ecbbus", __FILE__), + device_t(mconfig, ECBBUS, tag, owner, clock), m_write_irq(*this), m_write_nmi(*this) { - for (auto & elem : m_ecbbus_device) - elem = nullptr; + std::fill(std::begin(m_ecbbus_device), std::end(m_ecbbus_device), nullptr); } diff --git a/src/devices/bus/ecbbus/ecbbus.h b/src/devices/bus/ecbbus/ecbbus.h index 8fb7e51f893..9a4943e0a19 100644 --- a/src/devices/bus/ecbbus/ecbbus.h +++ b/src/devices/bus/ecbbus/ecbbus.h @@ -42,10 +42,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_ECBBUS_ECBBUS_H +#define MAME_BUS_ECBBUS_ECBBUS_H -#ifndef __ECBBUS__ -#define __ECBBUS__ +#pragma once @@ -56,9 +56,6 @@ #define ECBBUS_TAG "ecbbus" -#define MAX_ECBBUS_SLOTS 16 - - //************************************************************************** // INTERFACE CONFIGURATION MACROS @@ -110,7 +107,7 @@ private: // device type definition -extern const device_type ECBBUS_SLOT; +DECLARE_DEVICE_TYPE(ECBBUS_SLOT, ecbbus_slot_device) // ======================> ecbbus_interface @@ -126,8 +123,8 @@ public: // construction/destruction ecbbus_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_irq_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_irq.set_callback(object); } - template static devcb_base &set_nmi_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_nmi.set_callback(object); } + template static devcb_base &set_irq_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_irq.set_callback(std::forward(cb)); } + template static devcb_base &set_nmi_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_nmi.set_callback(std::forward(cb)); } void add_card(device_ecbbus_card_interface *card, int pos); @@ -145,6 +142,8 @@ protected: virtual void device_start() override; private: + static constexpr unsigned MAX_ECBBUS_SLOTS = 16; + devcb_write_line m_write_irq; devcb_write_line m_write_nmi; @@ -153,7 +152,7 @@ private: // device type definition -extern const device_type ECBBUS; +DECLARE_DEVICE_TYPE(ECBBUS, ecbbus_device) // ======================> device_ecbbus_card_interface @@ -164,17 +163,16 @@ class device_ecbbus_card_interface : public device_slot_card_interface friend class ecbbus_device; public: - // construction/destruction - device_ecbbus_card_interface(const machine_config &mconfig, device_t &device); - virtual ~device_ecbbus_card_interface() { } - // optional operation overrides virtual uint8_t ecbbus_mem_r(offs_t offset) { return 0; }; virtual void ecbbus_mem_w(offs_t offset, uint8_t data) { }; virtual uint8_t ecbbus_io_r(offs_t offset) { return 0; }; virtual void ecbbus_io_w(offs_t offset, uint8_t data) { }; -public: +protected: + // construction/destruction + device_ecbbus_card_interface(const machine_config &mconfig, device_t &device); + ecbbus_slot_device *m_slot; }; @@ -183,4 +181,4 @@ SLOT_INTERFACE_EXTERN( ecbbus_cards ); -#endif +#endif // MAME_BUS_ECBBUS_ECBBUS_H diff --git a/src/devices/bus/ecbbus/grip.cpp b/src/devices/bus/ecbbus/grip.cpp index 3dea8a6b486..6ec37c878fd 100644 --- a/src/devices/bus/ecbbus/grip.cpp +++ b/src/devices/bus/ecbbus/grip.cpp @@ -35,7 +35,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type ECB_GRIP21 = device_creator; +DEFINE_DEVICE_TYPE(ECB_GRIP21, ecb_grip21_device, "ecb_grip21", "Conitec Datensysteme GRIP-2.1") @@ -109,7 +109,7 @@ ROM_END // rom_region - device-specific ROM region //------------------------------------------------- -const tiny_rom_entry *grip_device::device_rom_region() const +const tiny_rom_entry *ecb_grip21_device::device_rom_region() const { return ROM_NAME( grip21 ); } @@ -124,7 +124,7 @@ const tiny_rom_entry *grip_device::device_rom_region() const // ADDRESS_MAP( grip_mem ) //------------------------------------------------- -static ADDRESS_MAP_START( grip_mem, AS_PROGRAM, 8, grip_device ) +static ADDRESS_MAP_START( grip_mem, AS_PROGRAM, 8, ecb_grip21_device ) AM_RANGE(0x0000, 0x3fff) AM_ROM AM_RANGE(0x4000, 0x47ff) AM_RAM AM_RANGE(0x8000, 0xffff) AM_RAMBANK("videoram") @@ -135,7 +135,7 @@ ADDRESS_MAP_END // ADDRESS_MAP( grip_io ) //------------------------------------------------- -static ADDRESS_MAP_START( grip_io, AS_IO, 8, grip_device ) +static ADDRESS_MAP_START( grip_io, AS_IO, 8, ecb_grip21_device ) ADDRESS_MAP_GLOBAL_MASK(0xff) AM_RANGE(0x00, 0x00) AM_READWRITE(cxstb_r, cxstb_w) // AM_RANGE(0x10, 0x10) AM_WRITE(ccon_w) @@ -227,7 +227,7 @@ ADDRESS_MAP_END // mc6845 //------------------------------------------------- -MC6845_UPDATE_ROW( grip_device::crtc_update_row ) +MC6845_UPDATE_ROW( ecb_grip21_device::crtc_update_row ) { for (int column = 0; column < x_count; column++) { @@ -244,7 +244,7 @@ MC6845_UPDATE_ROW( grip_device::crtc_update_row ) } } /* -MC6845_UPDATE_ROW( grip_device::grip5_update_row ) +MC6845_UPDATE_ROW( ecb_grip21_device::grip5_update_row ) { const rgb_t *palette = m_palette->palette()->entry_list_raw(); int column, bit; @@ -264,7 +264,7 @@ MC6845_UPDATE_ROW( grip_device::grip5_update_row ) } } -MC6845_ON_UPDATE_ADDR_CHANGED( grip_device::grip5_addr_changed ) +MC6845_ON_UPDATE_ADDR_CHANGED( ecb_grip21_device::grip5_addr_changed ) { } */ @@ -275,7 +275,7 @@ static const int16_t speaker_levels[] = { -32768, 0, 32767, 0 }; // I8255A interface //------------------------------------------------- -READ8_MEMBER( grip_device::ppi_pa_r ) +READ8_MEMBER( ecb_grip21_device::ppi_pa_r ) { /* @@ -295,7 +295,7 @@ READ8_MEMBER( grip_device::ppi_pa_r ) return m_ppi_pa; } -WRITE8_MEMBER( grip_device::ppi_pa_w ) +WRITE8_MEMBER( ecb_grip21_device::ppi_pa_w ) { /* @@ -315,7 +315,7 @@ WRITE8_MEMBER( grip_device::ppi_pa_w ) m_ppi_pa = data; } -READ8_MEMBER( grip_device::ppi_pb_r ) +READ8_MEMBER( ecb_grip21_device::ppi_pb_r ) { /* @@ -335,7 +335,7 @@ READ8_MEMBER( grip_device::ppi_pb_r ) return m_keydata; } -WRITE8_MEMBER( grip_device::ppi_pc_w ) +WRITE8_MEMBER( ecb_grip21_device::ppi_pc_w ) { /* @@ -371,12 +371,12 @@ WRITE8_MEMBER( grip_device::ppi_pc_w ) // Z80STI_INTERFACE( sti_intf ) //------------------------------------------------- -WRITE_LINE_MEMBER(grip_device::write_centronics_busy) +WRITE_LINE_MEMBER(ecb_grip21_device::write_centronics_busy) { m_centronics_busy = state; } -READ8_MEMBER( grip_device::sti_gpio_r ) +READ8_MEMBER( ecb_grip21_device::sti_gpio_r ) { /* @@ -413,7 +413,7 @@ READ8_MEMBER( grip_device::sti_gpio_r ) return data; } -WRITE_LINE_MEMBER( grip_device::speaker_w ) +WRITE_LINE_MEMBER( ecb_grip21_device::speaker_w ) { int level = state && ((m_vol1 << 1) | m_vol0); @@ -435,7 +435,7 @@ static const z80_daisy_config grip_daisy_chain[] = // ASCII_KEYBOARD_INTERFACE( kb_intf ) //------------------------------------------------- -WRITE8_MEMBER( grip_device::kb_w ) +void ecb_grip21_device::kb_w(uint8_t data) { if (!m_kbf) { @@ -482,33 +482,33 @@ static MACHINE_CONFIG_FRAGMENT( grip ) MCFG_MC6845_ADD(MC6845_TAG, MC6845, SCREEN_TAG, XTAL_16MHz/4) MCFG_MC6845_SHOW_BORDER_AREA(true) MCFG_MC6845_CHAR_WIDTH(8) - MCFG_MC6845_UPDATE_ROW_CB(grip_device, crtc_update_row) + MCFG_MC6845_UPDATE_ROW_CB(ecb_grip21_device, crtc_update_row) MCFG_MC6845_OUT_DE_CB(DEVWRITELINE(Z80STI_TAG, z80sti_device, i1_w)) MCFG_MC6845_OUT_CUR_CB(DEVWRITELINE(Z80STI_TAG, z80sti_device, i1_w)) // MCFG_MC6845_ADD(HD6345_TAG, HD6345, SCREEN_TAG, XTAL_16MHz/4) MCFG_DEVICE_ADD(I8255A_TAG, I8255A, 0) - MCFG_I8255_IN_PORTA_CB(READ8(grip_device, ppi_pa_r)) - MCFG_I8255_OUT_PORTA_CB(WRITE8(grip_device, ppi_pa_w)) - MCFG_I8255_IN_PORTB_CB(READ8(grip_device, ppi_pb_r)) - MCFG_I8255_OUT_PORTC_CB(WRITE8(grip_device, ppi_pc_w)) + MCFG_I8255_IN_PORTA_CB(READ8(ecb_grip21_device, ppi_pa_r)) + MCFG_I8255_OUT_PORTA_CB(WRITE8(ecb_grip21_device, ppi_pa_w)) + MCFG_I8255_IN_PORTB_CB(READ8(ecb_grip21_device, ppi_pb_r)) + MCFG_I8255_OUT_PORTC_CB(WRITE8(ecb_grip21_device, ppi_pc_w)) MCFG_DEVICE_ADD(Z80STI_TAG, Z80STI, XTAL_16MHz/4) MCFG_Z80STI_OUT_INT_CB(INPUTLINE(Z80_TAG, INPUT_LINE_IRQ0)) - MCFG_Z80STI_IN_GPIO_CB(READ8(grip_device, sti_gpio_r)) - MCFG_Z80STI_OUT_TBO_CB(WRITELINE(grip_device, speaker_w)) + MCFG_Z80STI_IN_GPIO_CB(READ8(ecb_grip21_device, sti_gpio_r)) + MCFG_Z80STI_OUT_TBO_CB(WRITELINE(ecb_grip21_device, speaker_w)) MCFG_Z80STI_OUT_TCO_CB(DEVWRITELINE(Z80STI_TAG, z80sti_device, tc_w)) MCFG_Z80STI_OUT_TDO_CB(DEVWRITELINE(Z80STI_TAG, z80sti_device, tc_w)) MCFG_CENTRONICS_ADD(CENTRONICS_TAG, centronics_devices, "printer") - MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(grip_device, write_centronics_busy)) - MCFG_CENTRONICS_FAULT_HANDLER(WRITELINE(grip_device, write_centronics_fault)) + MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(ecb_grip21_device, write_centronics_busy)) + MCFG_CENTRONICS_FAULT_HANDLER(WRITELINE(ecb_grip21_device, write_centronics_fault)) MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", CENTRONICS_TAG) MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0) - MCFG_GENERIC_KEYBOARD_CB(WRITE8(grip_device, kb_w)) + MCFG_GENERIC_KEYBOARD_CB(PUT(ecb_grip21_device, kb_w)) MACHINE_CONFIG_END @@ -517,7 +517,7 @@ MACHINE_CONFIG_END // machine configurations //------------------------------------------------- -machine_config_constructor grip_device::device_mconfig_additions() const +machine_config_constructor ecb_grip21_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( grip ); } @@ -602,7 +602,7 @@ INPUT_PORTS_END // input_ports - device-specific input ports //------------------------------------------------- -ioport_constructor grip_device::device_input_ports() const +ioport_constructor ecb_grip21_device::device_input_ports() const { return INPUT_PORTS_NAME( grip ); } @@ -614,11 +614,11 @@ ioport_constructor grip_device::device_input_ports() const //************************************************************************** //------------------------------------------------- -// grip_device - constructor +// ecb_grip21_device - constructor //------------------------------------------------- -grip_device::grip_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, ECB_GRIP21, "GRIP-2.1", tag, owner, clock, "grip", __FILE__), +ecb_grip21_device::ecb_grip21_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, ECB_GRIP21, tag, owner, clock), device_ecbbus_card_interface(mconfig, *this), m_ppi(*this, I8255A_TAG), m_sti(*this, Z80STI_TAG), @@ -629,7 +629,8 @@ grip_device::grip_device(const machine_config &mconfig, const char *tag, device_ m_video_ram(*this, "video_ram"), m_j3a(*this, "J3A"), m_j3b(*this, "J3B"), - m_j7(*this, "J7"), m_centronics_busy(0), m_centronics_fault(0), m_vol0(0), m_vol1(0), m_ia(0), m_ib(0), m_keydata(0), m_kbf(0), m_lps(0), m_page(0), m_flash(0), m_base(0), m_ppi_pa(0), m_ppi_pc(0), m_kb_timer(nullptr) + m_j7(*this, "J7"), + m_centronics_busy(0), m_centronics_fault(0), m_vol0(0), m_vol1(0), m_ia(0), m_ib(0), m_keydata(0), m_kbf(0), m_lps(0), m_page(0), m_flash(0), m_base(0), m_ppi_pa(0), m_ppi_pc(0), m_kb_timer(nullptr) { } @@ -637,7 +638,7 @@ grip_device::grip_device(const machine_config &mconfig, const char *tag, device_ // device_start - device-specific startup //------------------------------------------------- -void grip_device::device_start() +void ecb_grip21_device::device_start() { // allocate video RAM m_video_ram.allocate(VIDEORAM_SIZE); @@ -663,7 +664,7 @@ void grip_device::device_start() /* void grip5_state::machine_start() { - grip_device::machine_start(); + ecb_grip21_device::machine_start(); // setup ROM banking membank("eprom")->configure_entries(0, 2, memregion(Z80_TAG)->base(), 0x4000); @@ -678,7 +679,7 @@ void grip5_state::machine_start() // device_reset - device-specific reset //------------------------------------------------- -void grip_device::device_reset() +void ecb_grip21_device::device_reset() { m_base = m_j7->read(); m_page = 0; @@ -690,7 +691,7 @@ void grip_device::device_reset() // vol0_w - volume 0 //------------------------------------------------- -WRITE8_MEMBER( grip_device::vol0_w ) +WRITE8_MEMBER( ecb_grip21_device::vol0_w ) { m_vol0 = BIT(data, 7); } @@ -700,7 +701,7 @@ WRITE8_MEMBER( grip_device::vol0_w ) // vol1_w - volume 1 //------------------------------------------------- -WRITE8_MEMBER( grip_device::vol1_w ) +WRITE8_MEMBER( ecb_grip21_device::vol1_w ) { m_vol1 = BIT(data, 7); } @@ -710,7 +711,7 @@ WRITE8_MEMBER( grip_device::vol1_w ) // flash_w - //------------------------------------------------- -WRITE8_MEMBER( grip_device::flash_w ) +WRITE8_MEMBER( ecb_grip21_device::flash_w ) { m_flash = BIT(data, 7); } @@ -720,7 +721,7 @@ WRITE8_MEMBER( grip_device::flash_w ) // page_w - video page select //------------------------------------------------- -WRITE8_MEMBER( grip_device::page_w ) +WRITE8_MEMBER( ecb_grip21_device::page_w ) { m_page = BIT(data, 7); @@ -732,12 +733,12 @@ WRITE8_MEMBER( grip_device::page_w ) // stat_r - //------------------------------------------------- -WRITE_LINE_MEMBER(grip_device::write_centronics_fault) +WRITE_LINE_MEMBER(ecb_grip21_device::write_centronics_fault) { m_centronics_fault = state; } -READ8_MEMBER( grip_device::stat_r ) +READ8_MEMBER( ecb_grip21_device::stat_r ) { /* @@ -795,7 +796,7 @@ READ8_MEMBER( grip_device::stat_r ) // lrs_r - //------------------------------------------------- -READ8_MEMBER( grip_device::lrs_r ) +READ8_MEMBER( ecb_grip21_device::lrs_r ) { m_lps = 0; @@ -807,7 +808,7 @@ READ8_MEMBER( grip_device::lrs_r ) // lrs_w - //------------------------------------------------- -WRITE8_MEMBER( grip_device::lrs_w ) +WRITE8_MEMBER( ecb_grip21_device::lrs_w ) { m_lps = 0; } @@ -817,7 +818,7 @@ WRITE8_MEMBER( grip_device::lrs_w ) // cxstb_r - centronics strobe //------------------------------------------------- -READ8_MEMBER( grip_device::cxstb_r ) +READ8_MEMBER( ecb_grip21_device::cxstb_r ) { m_centronics->write_strobe(0); m_centronics->write_strobe(1); @@ -830,7 +831,7 @@ READ8_MEMBER( grip_device::cxstb_r ) // cxstb_w - centronics strobe //------------------------------------------------- -WRITE8_MEMBER( grip_device::cxstb_w ) +WRITE8_MEMBER( ecb_grip21_device::cxstb_w ) { m_centronics->write_strobe(0); m_centronics->write_strobe(1); @@ -862,7 +863,7 @@ WRITE8_MEMBER( grip5_state::dpage_w ) // ecbbus_io_r - I/O read //------------------------------------------------- -uint8_t grip_device::ecbbus_io_r(offs_t offset) +uint8_t ecb_grip21_device::ecbbus_io_r(offs_t offset) { uint8_t data = 0; @@ -890,7 +891,7 @@ uint8_t grip_device::ecbbus_io_r(offs_t offset) // ecbbus_io_w - I/O write //------------------------------------------------- -void grip_device::ecbbus_io_w(offs_t offset, uint8_t data) +void ecb_grip21_device::ecbbus_io_w(offs_t offset, uint8_t data) { if ((offset & 0xfe) == m_base) { diff --git a/src/devices/bus/ecbbus/grip.h b/src/devices/bus/ecbbus/grip.h index 0dc2d86bf8b..a261b22a557 100644 --- a/src/devices/bus/ecbbus/grip.h +++ b/src/devices/bus/ecbbus/grip.h @@ -28,14 +28,13 @@ // TYPE DEFINITIONS //************************************************************************** -// ======================> grip_device +// ======================> ecb_grip21_device -class grip_device : public device_t, - public device_ecbbus_card_interface +class ecb_grip21_device : public device_t, public device_ecbbus_card_interface { public: // construction/destruction - grip_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + ecb_grip21_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual const tiny_rom_entry *device_rom_region() const override; @@ -58,7 +57,8 @@ public: DECLARE_WRITE8_MEMBER( ppi_pc_w ); DECLARE_READ8_MEMBER( sti_gpio_r ); DECLARE_WRITE_LINE_MEMBER( speaker_w ); - DECLARE_WRITE8_MEMBER( kb_w ); + + void kb_w(uint8_t data); DECLARE_WRITE_LINE_MEMBER( write_centronics_busy ); DECLARE_WRITE_LINE_MEMBER( write_centronics_fault ); @@ -126,6 +126,6 @@ private: // device type definition -extern const device_type ECB_GRIP21; +DECLARE_DEVICE_TYPE(ECB_GRIP21, ecb_grip21_device) #endif // MAME_BUS_ECBBUS_GRIP_H diff --git a/src/devices/bus/econet/e01.cpp b/src/devices/bus/econet/e01.cpp index 80fc8bb3029..675f270e0c9 100644 --- a/src/devices/bus/econet/e01.cpp +++ b/src/devices/bus/econet/e01.cpp @@ -75,11 +75,13 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type E01 = device_creator; -const device_type E01S = device_creator; +DEFINE_DEVICE_TYPE(ECONET_E01, econet_e01_device, "econet_e01", "Acorn FileStore E01") +DEFINE_DEVICE_TYPE(ECONET_E01S, econet_e01s_device, "econet_e01s", "Acorn FileStore E01S") -e01s_device::e01s_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - :e01_device(mconfig, E01S, "Acorn FileStore E01S", tag, owner, clock, "e01s", __FILE__) { m_variant = TYPE_E01S; } +econet_e01s_device::econet_e01s_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : econet_e01_device(mconfig, ECONET_E01S, tag, owner, clock, TYPE_E01S) +{ +} //------------------------------------------------- @@ -113,7 +115,7 @@ ROM_END // rom_region - device-specific ROM region //------------------------------------------------- -const tiny_rom_entry *e01_device::device_rom_region() const +const tiny_rom_entry *econet_e01_device::device_rom_region() const { switch (m_variant) { @@ -131,7 +133,7 @@ const tiny_rom_entry *e01_device::device_rom_region() const // MC146818_INTERFACE( rtc_intf ) //------------------------------------------------- -WRITE_LINE_MEMBER(e01_device::rtc_irq_w) +WRITE_LINE_MEMBER(econet_e01_device::rtc_irq_w) { m_rtc_irq = state; @@ -143,26 +145,26 @@ WRITE_LINE_MEMBER(e01_device::rtc_irq_w) // mc6854_interface adlc_intf //------------------------------------------------- -WRITE_LINE_MEMBER( e01_device::adlc_irq_w ) +WRITE_LINE_MEMBER( econet_e01_device::adlc_irq_w ) { m_adlc_irq = state; update_interrupts(); } -WRITE_LINE_MEMBER( e01_device::econet_data_w ) +WRITE_LINE_MEMBER( econet_e01_device::econet_data_w ) { m_econet->data_w(this, state); } -WRITE_LINE_MEMBER(e01_device::via_irq_w) +WRITE_LINE_MEMBER(econet_e01_device::via_irq_w) { m_via_irq = state; update_interrupts(); } -WRITE_LINE_MEMBER( e01_device::clk_en_w ) +WRITE_LINE_MEMBER( econet_e01_device::clk_en_w ) { m_clk_en = state; } @@ -175,21 +177,21 @@ static SLOT_INTERFACE_START( e01_floppies ) SLOT_INTERFACE( "35dd", FLOPPY_35_DD ) // NEC FD1036 A SLOT_INTERFACE_END -WRITE_LINE_MEMBER( e01_device::fdc_irq_w ) +WRITE_LINE_MEMBER( econet_e01_device::fdc_irq_w ) { m_fdc_irq = state; update_interrupts(); } -WRITE_LINE_MEMBER( e01_device::fdc_drq_w ) +WRITE_LINE_MEMBER( econet_e01_device::fdc_drq_w ) { m_fdc_drq = state; update_interrupts(); } -WRITE_LINE_MEMBER( e01_device::scsi_bsy_w ) +WRITE_LINE_MEMBER( econet_e01_device::scsi_bsy_w ) { m_scsi_ctrl_in->write_bit1(state); @@ -199,7 +201,7 @@ WRITE_LINE_MEMBER( e01_device::scsi_bsy_w ) } } -WRITE_LINE_MEMBER( e01_device::scsi_req_w ) +WRITE_LINE_MEMBER( econet_e01_device::scsi_req_w ) { m_scsi_ctrl_in->write_bit5(state); @@ -217,12 +219,12 @@ WRITE_LINE_MEMBER( e01_device::scsi_req_w ) // ADDRESS_MAP( e01_mem ) //------------------------------------------------- -static ADDRESS_MAP_START( e01_mem, AS_PROGRAM, 8, e01_device ) +static ADDRESS_MAP_START( e01_mem, AS_PROGRAM, 8, econet_e01_device ) AM_RANGE(0x0000, 0xffff) AM_READWRITE(read, write) AM_RANGE(0xfc00, 0xfc00) AM_MIRROR(0x00c3) AM_READWRITE(rtc_address_r, rtc_address_w) AM_RANGE(0xfc04, 0xfc04) AM_MIRROR(0x00c3) AM_READWRITE(rtc_data_r, rtc_data_w) AM_RANGE(0xfc08, 0xfc08) AM_MIRROR(0x00c0) AM_READ(ram_select_r) AM_WRITE(floppy_w) - AM_RANGE(0xfc0c, 0xfc0f) AM_MIRROR(0x00c0) AM_DEVREADWRITE(WD2793_TAG, wd2793_t, read, write) + AM_RANGE(0xfc0c, 0xfc0f) AM_MIRROR(0x00c0) AM_DEVREADWRITE(WD2793_TAG, wd2793_device, read, write) AM_RANGE(0xfc10, 0xfc1f) AM_MIRROR(0x00c0) AM_DEVREADWRITE(R6522_TAG, via6522_device, read, write) AM_RANGE(0xfc20, 0xfc23) AM_MIRROR(0x00c0) AM_DEVREADWRITE(MC6854_TAG, mc6854_device, read, write) AM_RANGE(0xfc24, 0xfc24) AM_MIRROR(0x00c3) AM_READWRITE(network_irq_disable_r, network_irq_disable_w) @@ -245,19 +247,19 @@ static MACHINE_CONFIG_FRAGMENT( e01 ) MCFG_CPU_PROGRAM_MAP(e01_mem) MCFG_MC146818_ADD(HD146818_TAG, XTAL_32_768kHz) - MCFG_MC146818_IRQ_HANDLER(WRITELINE(e01_device, rtc_irq_w)) + MCFG_MC146818_IRQ_HANDLER(WRITELINE(econet_e01_device, rtc_irq_w)) // devices MCFG_DEVICE_ADD(R6522_TAG, VIA6522, XTAL_8MHz / 4) MCFG_VIA6522_WRITEPA_HANDLER(DEVWRITE8("cent_data_out", output_latch_device, write)) - MCFG_VIA6522_IRQ_HANDLER(WRITELINE(e01_device, via_irq_w)) + MCFG_VIA6522_IRQ_HANDLER(WRITELINE(econet_e01_device, via_irq_w)) MCFG_DEVICE_ADD(MC6854_TAG, MC6854, 0) - MCFG_MC6854_OUT_IRQ_CB(WRITELINE(e01_device, adlc_irq_w)) - MCFG_MC6854_OUT_TXD_CB(WRITELINE(e01_device, econet_data_w)) + MCFG_MC6854_OUT_IRQ_CB(WRITELINE(econet_e01_device, adlc_irq_w)) + MCFG_MC6854_OUT_TXD_CB(WRITELINE(econet_e01_device, econet_data_w)) MCFG_WD2793_ADD(WD2793_TAG, XTAL_8MHz/4) - MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(e01_device, fdc_irq_w)) - MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(e01_device, fdc_drq_w)) + MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(econet_e01_device, fdc_irq_w)) + MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(econet_e01_device, fdc_drq_w)) MCFG_FLOPPY_DRIVE_ADD(WD2793_TAG":0", e01_floppies, "35dd", floppy_formats_afs) MCFG_FLOPPY_DRIVE_ADD(WD2793_TAG":1", e01_floppies, "35dd", floppy_formats_afs) MCFG_SOFTWARE_LIST_ADD("flop_ls_e01", "e01_flop") @@ -270,11 +272,11 @@ static MACHINE_CONFIG_FRAGMENT( e01 ) MCFG_DEVICE_ADD(SCSIBUS_TAG, SCSI_PORT, 0) MCFG_SCSI_DATA_INPUT_BUFFER("scsi_data_in") MCFG_SCSI_MSG_HANDLER(DEVWRITELINE("scsi_ctrl_in", input_buffer_device, write_bit0)) - MCFG_SCSI_BSY_HANDLER(WRITELINE(e01_device, scsi_bsy_w)) // bit1 + MCFG_SCSI_BSY_HANDLER(WRITELINE(econet_e01_device, scsi_bsy_w)) // bit1 // bit 2 0 // bit 3 0 // bit 4 NIRQ - MCFG_SCSI_REQ_HANDLER(WRITELINE(e01_device, scsi_req_w)) // bit5 + MCFG_SCSI_REQ_HANDLER(WRITELINE(econet_e01_device, scsi_req_w)) // bit5 MCFG_SCSI_IO_HANDLER(DEVWRITELINE("scsi_ctrl_in", input_buffer_device, write_bit6)) MCFG_SCSI_CD_HANDLER(DEVWRITELINE("scsi_ctrl_in", input_buffer_device, write_bit7)) MCFG_SCSIDEV_ADD(SCSIBUS_TAG ":" SCSI_PORT_DEVICE1, "harddisk", SCSIHD, SCSI_ID_0) @@ -294,7 +296,7 @@ MACHINE_CONFIG_END // machine configurations //------------------------------------------------- -machine_config_constructor e01_device::device_mconfig_additions() const +machine_config_constructor econet_e01_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( e01 ); } @@ -320,7 +322,7 @@ INPUT_PORTS_END // input_ports - device-specific input ports //------------------------------------------------- -ioport_constructor e01_device::device_input_ports() const +ioport_constructor econet_e01_device::device_input_ports() const { return INPUT_PORTS_NAME( e01 ); } @@ -335,7 +337,7 @@ ioport_constructor e01_device::device_input_ports() const // update_interrupts - update interrupt state //------------------------------------------------- -inline void e01_device::update_interrupts() +inline void econet_e01_device::update_interrupts() { int irq = (m_via_irq || (m_hdc_ie & m_hdc_irq) || m_rtc_irq) ? ASSERT_LINE : CLEAR_LINE; int nmi = (m_fdc_irq || m_fdc_drq || (m_adlc_ie & m_adlc_irq)) ? ASSERT_LINE : CLEAR_LINE; @@ -349,7 +351,7 @@ inline void e01_device::update_interrupts() // network_irq_enable - network interrupt enable //------------------------------------------------- -inline void e01_device::network_irq_enable(int enabled) +inline void econet_e01_device::network_irq_enable(int enabled) { m_adlc_ie = enabled; @@ -361,7 +363,7 @@ inline void e01_device::network_irq_enable(int enabled) // hdc_irq_enable - hard disk interrupt enable //------------------------------------------------- -inline void e01_device::hdc_irq_enable(int enabled) +inline void econet_e01_device::hdc_irq_enable(int enabled) { m_hdc_ie = enabled; @@ -375,65 +377,43 @@ inline void e01_device::hdc_irq_enable(int enabled) //************************************************************************** //------------------------------------------------- -// e01_device - constructor -//------------------------------------------------- - -e01_device::e01_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, E01, "Acorn FileStore E01", tag, owner, clock, "e01" , __FILE__), - device_econet_interface(mconfig, *this), - m_maincpu(*this, R65C102_TAG), - m_fdc(*this, WD2793_TAG), - m_adlc(*this, MC6854_TAG), - m_rtc(*this, HD146818_TAG), - m_ram(*this, RAM_TAG), - m_scsibus(*this, SCSIBUS_TAG), - m_scsi_data_out(*this, "scsi_data_out"), - m_scsi_data_in(*this, "scsi_data_in"), - m_scsi_ctrl_in(*this, "scsi_ctrl_in"), - m_floppy0(*this, WD2793_TAG":0"), - m_floppy1(*this, WD2793_TAG":1"), - m_rom(*this, R65C102_TAG), - m_centronics(*this, CENTRONICS_TAG), - m_adlc_ie(0), - m_hdc_ie(0), - m_rtc_irq(CLEAR_LINE), - m_via_irq(CLEAR_LINE), - m_hdc_irq(CLEAR_LINE), - m_fdc_irq(CLEAR_LINE), - m_fdc_drq(CLEAR_LINE), - m_adlc_irq(CLEAR_LINE), - m_clk_en(0), m_ram_en(false), - m_variant(TYPE_E01), m_clk_timer(nullptr) -{ -} - - -e01_device::e01_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_econet_interface(mconfig, *this), - m_maincpu(*this, R65C102_TAG), - m_fdc(*this, WD2793_TAG), - m_adlc(*this, MC6854_TAG), - m_rtc(*this, HD146818_TAG), - m_ram(*this, RAM_TAG), - m_scsibus(*this, SCSIBUS_TAG), - m_scsi_data_out(*this, "scsi_data_out"), - m_scsi_data_in(*this, "scsi_data_in"), - m_scsi_ctrl_in(*this, "scsi_ctrl_in"), - m_floppy0(*this, WD2793_TAG":0"), - m_floppy1(*this, WD2793_TAG":1"), - m_rom(*this, R65C102_TAG), - m_centronics(*this, CENTRONICS_TAG), - m_adlc_ie(0), - m_hdc_ie(0), - m_rtc_irq(CLEAR_LINE), - m_via_irq(CLEAR_LINE), - m_hdc_irq(CLEAR_LINE), - m_fdc_irq(CLEAR_LINE), - m_fdc_drq(CLEAR_LINE), - m_adlc_irq(CLEAR_LINE), - m_clk_en(0), m_ram_en(false), - m_variant(TYPE_E01), m_clk_timer(nullptr) +// econet_e01_device - constructor +//------------------------------------------------- + +econet_e01_device::econet_e01_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : econet_e01_device(mconfig, ECONET_E01, tag, owner, clock, TYPE_E01) +{ +} + + +econet_e01_device::econet_e01_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int variant) + : device_t(mconfig, type, tag, owner, clock) + , device_econet_interface(mconfig, *this) + , m_maincpu(*this, R65C102_TAG) + , m_fdc(*this, WD2793_TAG) + , m_adlc(*this, MC6854_TAG) + , m_rtc(*this, HD146818_TAG) + , m_ram(*this, RAM_TAG) + , m_scsibus(*this, SCSIBUS_TAG) + , m_scsi_data_out(*this, "scsi_data_out") + , m_scsi_data_in(*this, "scsi_data_in") + , m_scsi_ctrl_in(*this, "scsi_ctrl_in") + , m_floppy0(*this, WD2793_TAG":0") + , m_floppy1(*this, WD2793_TAG":1") + , m_rom(*this, R65C102_TAG) + , m_centronics(*this, CENTRONICS_TAG) + , m_adlc_ie(0) + , m_hdc_ie(0) + , m_rtc_irq(CLEAR_LINE) + , m_via_irq(CLEAR_LINE) + , m_hdc_irq(CLEAR_LINE) + , m_fdc_irq(CLEAR_LINE) + , m_fdc_drq(CLEAR_LINE) + , m_adlc_irq(CLEAR_LINE) + , m_clk_en(0) + , m_ram_en(false) + , m_variant(variant) + , m_clk_timer(nullptr) { } @@ -441,7 +421,7 @@ e01_device::e01_device(const machine_config &mconfig, device_type type, const ch // device_start - device-specific startup //------------------------------------------------- -void e01_device::device_start() +void econet_e01_device::device_start() { // allocate timers m_clk_timer = timer_alloc(); @@ -461,7 +441,7 @@ void e01_device::device_start() // device_reset - device-specific reset //------------------------------------------------- -void e01_device::device_reset() +void econet_e01_device::device_reset() { m_clk_timer->adjust(attotime::zero, 0, attotime::from_hz(200000)); m_ram_en = false; @@ -472,7 +452,7 @@ void e01_device::device_reset() // device_timer - handler timer events //------------------------------------------------- -void e01_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) +void econet_e01_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) { if (m_clk_en) { @@ -486,7 +466,7 @@ void e01_device::device_timer(emu_timer &timer, device_timer_id id, int param, v // read - //------------------------------------------------- -READ8_MEMBER( e01_device::read ) +READ8_MEMBER( econet_e01_device::read ) { uint8_t data; @@ -507,7 +487,7 @@ READ8_MEMBER( e01_device::read ) // write - //------------------------------------------------- -WRITE8_MEMBER( e01_device::write ) +WRITE8_MEMBER( econet_e01_device::write ) { m_ram->pointer()[offset] = data; } @@ -517,7 +497,7 @@ WRITE8_MEMBER( e01_device::write ) // eprom_r - ROM/RAM select read //------------------------------------------------- -READ8_MEMBER( e01_device::ram_select_r ) +READ8_MEMBER( econet_e01_device::ram_select_r ) { m_ram_en = true; @@ -529,7 +509,7 @@ READ8_MEMBER( e01_device::ram_select_r ) // floppy_w - floppy control write //------------------------------------------------- -WRITE8_MEMBER( e01_device::floppy_w ) +WRITE8_MEMBER( econet_e01_device::floppy_w ) { /* @@ -577,7 +557,7 @@ WRITE8_MEMBER( e01_device::floppy_w ) // network_irq_disable_r - //------------------------------------------------- -READ8_MEMBER( e01_device::network_irq_disable_r ) +READ8_MEMBER( econet_e01_device::network_irq_disable_r ) { network_irq_enable(0); @@ -589,7 +569,7 @@ READ8_MEMBER( e01_device::network_irq_disable_r ) // network_irq_disable_w - //------------------------------------------------- -WRITE8_MEMBER( e01_device::network_irq_disable_w ) +WRITE8_MEMBER( econet_e01_device::network_irq_disable_w ) { network_irq_enable(0); } @@ -599,7 +579,7 @@ WRITE8_MEMBER( e01_device::network_irq_disable_w ) // network_irq_enable_r - //------------------------------------------------- -READ8_MEMBER( e01_device::network_irq_enable_r ) +READ8_MEMBER( econet_e01_device::network_irq_enable_r ) { network_irq_enable(1); @@ -611,7 +591,7 @@ READ8_MEMBER( e01_device::network_irq_enable_r ) // network_irq_enable_w - //------------------------------------------------- -WRITE8_MEMBER( e01_device::network_irq_enable_w ) +WRITE8_MEMBER( econet_e01_device::network_irq_enable_w ) { network_irq_enable(1); } @@ -621,7 +601,7 @@ WRITE8_MEMBER( e01_device::network_irq_enable_w ) // hdc_data_r - //------------------------------------------------- -READ8_MEMBER( e01_device::hdc_data_r ) +READ8_MEMBER( econet_e01_device::hdc_data_r ) { uint8_t data = m_scsi_data_in->read(); @@ -635,7 +615,7 @@ READ8_MEMBER( e01_device::hdc_data_r ) // hdc_data_w - //------------------------------------------------- -WRITE8_MEMBER( e01_device::hdc_data_w ) +WRITE8_MEMBER( econet_e01_device::hdc_data_w ) { m_scsi_data_out->write(data); @@ -647,7 +627,7 @@ WRITE8_MEMBER( e01_device::hdc_data_w ) // hdc_select_w - //------------------------------------------------- -WRITE8_MEMBER( e01_device::hdc_select_w ) +WRITE8_MEMBER( econet_e01_device::hdc_select_w ) { m_scsibus->write_sel(1); } @@ -657,7 +637,7 @@ WRITE8_MEMBER( e01_device::hdc_select_w ) // hdc_irq_enable_w - //------------------------------------------------- -WRITE8_MEMBER( e01_device::hdc_irq_enable_w ) +WRITE8_MEMBER( econet_e01_device::hdc_irq_enable_w ) { hdc_irq_enable(BIT(data, 0)); } @@ -667,7 +647,7 @@ WRITE8_MEMBER( e01_device::hdc_irq_enable_w ) // rtc_address_r - //------------------------------------------------- -READ8_MEMBER( e01_device::rtc_address_r ) +READ8_MEMBER( econet_e01_device::rtc_address_r ) { return m_rtc->read(space, 0); } @@ -677,7 +657,7 @@ READ8_MEMBER( e01_device::rtc_address_r ) // rtc_address_w - //------------------------------------------------- -WRITE8_MEMBER( e01_device::rtc_address_w ) +WRITE8_MEMBER( econet_e01_device::rtc_address_w ) { m_rtc->write(space, 0, data); } @@ -687,7 +667,7 @@ WRITE8_MEMBER( e01_device::rtc_address_w ) // rtc_data_r - //------------------------------------------------- -READ8_MEMBER( e01_device::rtc_data_r ) +READ8_MEMBER( econet_e01_device::rtc_data_r ) { return m_rtc->read(space, 1); } @@ -697,7 +677,7 @@ READ8_MEMBER( e01_device::rtc_data_r ) // rtc_data_w - //------------------------------------------------- -WRITE8_MEMBER( e01_device::rtc_data_w ) +WRITE8_MEMBER( econet_e01_device::rtc_data_w ) { m_rtc->write(space, 1, data); } @@ -707,7 +687,7 @@ WRITE8_MEMBER( e01_device::rtc_data_w ) // econet_clk_w - //------------------------------------------------- -void e01_device::econet_data(int state) +void econet_e01_device::econet_data(int state) { m_adlc->set_rx(state); } @@ -717,7 +697,7 @@ void e01_device::econet_data(int state) // econet_clk_w - //------------------------------------------------- -void e01_device::econet_clk(int state) +void econet_e01_device::econet_clk(int state) { m_adlc->rxc_w(state); m_adlc->txc_w(state); diff --git a/src/devices/bus/econet/e01.h b/src/devices/bus/econet/e01.h index 4cf86c6cabd..dd9eab8fc4f 100644 --- a/src/devices/bus/econet/e01.h +++ b/src/devices/bus/econet/e01.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_ECONET_E01_H +#define MAME_BUS_ECONET_E01_H -#ifndef __E01__ -#define __E01__ +#pragma once #include "econet.h" #include "bus/centronics/ctronics.h" @@ -24,19 +24,12 @@ #include "machine/wd_fdc.h" #include "formats/afs_dsk.h" -class e01_device : public device_t, +class econet_e01_device : public device_t, public device_econet_interface { public: // construction/destruction - e01_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - e01_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - - enum - { - TYPE_E01 = 0, - TYPE_E01S - }; + econet_e01_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); DECLARE_FLOPPY_FORMATS(floppy_formats_afs); @@ -67,6 +60,14 @@ public: DECLARE_WRITE_LINE_MEMBER( scsi_req_w ); protected: + enum + { + TYPE_E01 = 0, + TYPE_E01S + }; + + econet_e01_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int variant); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -82,11 +83,11 @@ protected: virtual void econet_clk(int state) override; required_device m_maincpu; - required_device m_fdc; + required_device m_fdc; required_device m_adlc; required_device m_rtc; required_device m_ram; - required_device m_scsibus; + required_device m_scsibus; required_device m_scsi_data_out; required_device m_scsi_data_in; required_device m_scsi_ctrl_in; @@ -111,27 +112,27 @@ protected: int m_clk_en; bool m_ram_en; - int m_variant; + const int m_variant; // timers emu_timer *m_clk_timer; }; -// ======================> e01s_device +// ======================> econet_e01s_device -class e01s_device : public e01_device +class econet_e01s_device : public econet_e01_device { public: // construction/destruction - e01s_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + econet_e01s_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; // device type definition -extern const device_type E01; -extern const device_type E01S; +DECLARE_DEVICE_TYPE(ECONET_E01, econet_e01_device) +DECLARE_DEVICE_TYPE(ECONET_E01S, econet_e01s_device) -#endif +#endif // MAME_BUS_ECONET_E01_H diff --git a/src/devices/bus/econet/econet.cpp b/src/devices/bus/econet/econet.cpp index 18e5134f459..e4acfe3c3d6 100644 --- a/src/devices/bus/econet/econet.cpp +++ b/src/devices/bus/econet/econet.cpp @@ -26,8 +26,8 @@ static const char *const SIGNAL_NAME[] = { "CLK", "DATA" }; // DEVICE DEFINITIONS //************************************************************************** -const device_type ECONET = device_creator; -const device_type ECONET_SLOT = device_creator; +DEFINE_DEVICE_TYPE(ECONET, econet_device, "econet", "Econet") +DEFINE_DEVICE_TYPE(ECONET_SLOT, econet_slot_device, "econet_slot", "Econet station") @@ -40,7 +40,7 @@ const device_type ECONET_SLOT = device_creator; //------------------------------------------------- device_econet_interface::device_econet_interface(const machine_config &mconfig, device_t &device) : - device_slot_card_interface(mconfig, device), m_next(nullptr), m_econet(nullptr), m_address(0) + device_slot_card_interface(mconfig, device), m_econet(nullptr), m_address(0), m_next(nullptr) { } @@ -55,8 +55,9 @@ device_econet_interface::device_econet_interface(const machine_config &mconfig, //------------------------------------------------- econet_slot_device::econet_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, ECONET_SLOT, "Econet station", tag, owner, clock, "econet_slot", __FILE__), - device_slot_interface(mconfig, *this), m_address(0), m_econet(nullptr) + device_t(mconfig, ECONET_SLOT, tag, owner, clock), + device_slot_interface(mconfig, *this), + m_address(0), m_econet(nullptr) { } @@ -195,7 +196,7 @@ inline int econet_device::get_signal(int signal) //------------------------------------------------- econet_device::econet_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, ECONET, "Econet", tag, owner, clock, "econet", __FILE__), + device_t(mconfig, ECONET, tag, owner, clock), m_write_clk(*this), m_write_data(*this) { @@ -309,6 +310,6 @@ void econet_device::data_w(device_t *device, int state) #include "e01.h" SLOT_INTERFACE_START( econet_devices ) - SLOT_INTERFACE("e01", E01) - SLOT_INTERFACE("e01s", E01S) + SLOT_INTERFACE("e01", ECONET_E01) + SLOT_INTERFACE("e01s", ECONET_E01S) SLOT_INTERFACE_END diff --git a/src/devices/bus/econet/econet.h b/src/devices/bus/econet/econet.h index e41b5dbf133..1531931f3c2 100644 --- a/src/devices/bus/econet/econet.h +++ b/src/devices/bus/econet/econet.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_ECONET_ECONET_H +#define MAME_BUS_ECONET_ECONET_H -#ifndef __ECONET__ -#define __ECONET__ +#pragma once @@ -57,8 +57,8 @@ public: // construction/destruction econet_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_clk_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_clk.set_callback(object); } - template static devcb_base &set_data_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_data.set_callback(object); } + template static devcb_base &set_clk_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_clk.set_callback(std::forward(cb)); } + template static devcb_base &set_data_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_data.set_callback(std::forward(cb)); } void add_device(device_t *target, int address); @@ -135,30 +135,35 @@ private: class device_econet_interface : public device_slot_card_interface { friend class econet_device; + template friend class simple_list; public: - // construction/destruction - device_econet_interface(const machine_config &mconfig, device_t &device); - virtual ~device_econet_interface() { } - device_econet_interface *next() const { return m_next; } - device_econet_interface *m_next; virtual void econet_clk(int state) = 0; virtual void econet_data(int state) = 0; +protected: + // construction/destruction + device_econet_interface(const machine_config &mconfig, device_t &device); + econet_device *m_econet; uint8_t m_address; + +private: + device_econet_interface *m_next; }; // device type definition extern const device_type ECONET; extern const device_type ECONET_SLOT; +DECLARE_DEVICE_TYPE(ECONET, econet_device) +DECLARE_DEVICE_TYPE(ECONET_SLOT, econet_slot_device) SLOT_INTERFACE_EXTERN( econet_devices ); -#endif +#endif // MAME_BUS_ECONET_ECONET_H diff --git a/src/devices/bus/electron/exp.cpp b/src/devices/bus/electron/exp.cpp index 93175809a57..3bcc1377e19 100644 --- a/src/devices/bus/electron/exp.cpp +++ b/src/devices/bus/electron/exp.cpp @@ -14,7 +14,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type ELECTRON_EXPANSION_SLOT = device_creator; +DEFINE_DEVICE_TYPE(ELECTRON_EXPANSION_SLOT, electron_expansion_slot_device, "electron_expansion_slot", "Acorn Electron Expansion port") //************************************************************************** @@ -50,8 +50,8 @@ device_electron_expansion_interface::~device_electron_expansion_interface() //------------------------------------------------- electron_expansion_slot_device::electron_expansion_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, ELECTRON_EXPANSION_SLOT, "Acorn Electron Expansion port", tag, owner, clock, "electron_expansion_slot", __FILE__), - device_slot_interface(mconfig, *this), + device_t(mconfig, ELECTRON_EXPANSION_SLOT, tag, owner, clock), + device_slot_interface(mconfig, *this), m_card(nullptr), m_irq_handler(*this), m_nmi_handler(*this) diff --git a/src/devices/bus/electron/exp.h b/src/devices/bus/electron/exp.h index a87b1670fcc..57b98aa6d5c 100644 --- a/src/devices/bus/electron/exp.h +++ b/src/devices/bus/electron/exp.h @@ -83,10 +83,10 @@ AC RETURNS (pins 3,4) - adaptor. A total of 6W may be drawn from these lines as **********************************************************************/ -#pragma once +#ifndef MAME_BUS_ELECTRON_EXP_H +#define MAME_BUS_ELECTRON_EXP_H -#ifndef __ELECTRON_EXPANSION_SLOT__ -#define __ELECTRON_EXPANSION_SLOT__ +#pragma once @@ -133,11 +133,11 @@ public: virtual ~electron_expansion_slot_device(); // callbacks - template static devcb_base &set_irq_handler(device_t &device, _Object object) - { return downcast(device).m_irq_handler.set_callback(object); } + template static devcb_base &set_irq_handler(device_t &device, Object &&cb) + { return downcast(device).m_irq_handler.set_callback(std::forward(cb)); } - template static devcb_base &set_nmi_handler(device_t &device, _Object object) - { return downcast(device).m_nmi_handler.set_callback(object); } + template static devcb_base &set_nmi_handler(device_t &device, Object &&cb) + { return downcast(device).m_nmi_handler.set_callback(std::forward(cb)); } DECLARE_WRITE_LINE_MEMBER( irq_w ) { m_irq_handler(state); } DECLARE_WRITE_LINE_MEMBER( nmi_w ) { m_nmi_handler(state); } @@ -161,18 +161,20 @@ class device_electron_expansion_interface : public device_slot_card_interface { public: // construction/destruction - device_electron_expansion_interface(const machine_config &mconfig, device_t &device); virtual ~device_electron_expansion_interface(); protected: + device_electron_expansion_interface(const machine_config &mconfig, device_t &device); + electron_expansion_slot_device *m_slot; }; // device type definition extern const device_type ELECTRON_EXPANSION_SLOT; +DECLARE_DEVICE_TYPE(ELECTRON_EXPANSION_SLOT, electron_expansion_device) SLOT_INTERFACE_EXTERN( electron_expansion_devices ); -#endif +#endif // MAME_BUS_ELECTRON_EXP_H diff --git a/src/devices/bus/electron/fbjoy.cpp b/src/devices/bus/electron/fbjoy.cpp index 532df461f6a..643b697615b 100644 --- a/src/devices/bus/electron/fbjoy.cpp +++ b/src/devices/bus/electron/fbjoy.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type ELECTRON_FBJOY = device_creator; +DEFINE_DEVICE_TYPE(ELECTRON_FBJOY, electron_fbjoy_device, "electron_fbjoy", "First Byte Joystick Interface") static INPUT_PORTS_START( fbjoy ) @@ -47,9 +47,9 @@ ioport_constructor electron_fbjoy_device::device_input_ports() const //------------------------------------------------- electron_fbjoy_device::electron_fbjoy_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, ELECTRON_FBJOY, "First Byte Joystick Interface", tag, owner, clock, "electron_fbjoy", __FILE__), - device_electron_expansion_interface(mconfig, *this), - m_joy(*this, "JOY") + : device_t(mconfig, ELECTRON_FBJOY, tag, owner, clock) + , device_electron_expansion_interface(mconfig, *this) + , m_joy(*this, "JOY") { } diff --git a/src/devices/bus/electron/fbjoy.h b/src/devices/bus/electron/fbjoy.h index 0323f4f4bbf..d532c896d46 100644 --- a/src/devices/bus/electron/fbjoy.h +++ b/src/devices/bus/electron/fbjoy.h @@ -8,10 +8,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_ELECTRON_FBJOY_H +#define MAME_BUS_ELECTRON_FBJOY_H -#ifndef __ELECTRON_FBJOY__ -#define __ELECTRON_FBJOY__ +#pragma once #include "exp.h" @@ -46,7 +46,7 @@ private: // device type definition -extern const device_type ELECTRON_FBJOY; +DECLARE_DEVICE_TYPE(ELECTRON_FBJOY, electron_fbjoy_device) -#endif +#endif // MAME_BUS_ELECTRON_FBJOY_H diff --git a/src/devices/bus/electron/m2105.cpp b/src/devices/bus/electron/m2105.cpp index ba437842a4c..1e3ebc2308a 100644 --- a/src/devices/bus/electron/m2105.cpp +++ b/src/devices/bus/electron/m2105.cpp @@ -16,7 +16,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type ELECTRON_M2105 = device_creator; +DEFINE_DEVICE_TYPE(ELECTRON_M2105, electron_m2105_device, "electron_m2105", "Acorn M2105 Expansion") //------------------------------------------------- @@ -123,15 +123,15 @@ const tiny_rom_entry *electron_m2105_device::device_rom_region() const //------------------------------------------------- electron_m2105_device::electron_m2105_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, ELECTRON_M2105, "Acorn M2105 Expansion", tag, owner, clock, "electron_m2105", __FILE__), - device_electron_expansion_interface(mconfig, *this), - m_exp_rom(*this, "exp_rom"), - m_via6522_0(*this, "via6522_0"), - m_via6522_1(*this, "via6522_1"), - m_duart(*this, "sc2681"), - m_tms(*this, "tms5220"), - m_centronics(*this, "centronics"), - m_irqs(*this, "irqs") + : device_t(mconfig, ELECTRON_M2105, tag, owner, clock) + , device_electron_expansion_interface(mconfig, *this) + , m_exp_rom(*this, "exp_rom") + , m_via6522_0(*this, "via6522_0") + , m_via6522_1(*this, "via6522_1") + , m_duart(*this, "sc2681") + , m_tms(*this, "tms5220") + , m_centronics(*this, "centronics") + , m_irqs(*this, "irqs") { } diff --git a/src/devices/bus/electron/m2105.h b/src/devices/bus/electron/m2105.h index d9d8d5b3aed..94ab1d8ec5f 100644 --- a/src/devices/bus/electron/m2105.h +++ b/src/devices/bus/electron/m2105.h @@ -6,9 +6,10 @@ **********************************************************************/ +#ifndef MAME_BUS_ELECTRON_M2105_M +#define MAME_BUS_ELECTRON_M2105_M -#ifndef __ELECTRON_M2105__ -#define __ELECTRON_M2105__ +#pragma once #include "exp.h" #include "machine/6522via.h" @@ -53,7 +54,7 @@ private: // device type definition -extern const device_type ELECTRON_M2105; +DECLARE_DEVICE_TYPE(ELECTRON_M2105, electron_m2105_device) -#endif /* __ELECTRON_M2105__ */ +#endif // MAME_BUS_ELECTRON_M2105_M diff --git a/src/devices/bus/electron/plus3.cpp b/src/devices/bus/electron/plus3.cpp index 98189b6cae7..46395d81f09 100644 --- a/src/devices/bus/electron/plus3.cpp +++ b/src/devices/bus/electron/plus3.cpp @@ -24,7 +24,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type ELECTRON_PLUS3 = device_creator; +DEFINE_DEVICE_TYPE(ELECTRON_PLUS3, electron_plus3_device, "electron_plus3", "Acorn Plus 3 Disc Expansion") //------------------------------------------------- @@ -102,12 +102,12 @@ const tiny_rom_entry *electron_plus3_device::device_rom_region() const //------------------------------------------------- electron_plus3_device::electron_plus3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, ELECTRON_PLUS3, "Acorn Plus 3 Disc Expansion", tag, owner, clock, "electron_plus3", __FILE__), - device_electron_expansion_interface(mconfig, *this), - m_exp_rom(*this, "exp_rom"), - m_fdc(*this, "fdc"), - m_floppy0(*this, "fdc:0"), - m_floppy1(*this, "fdc:1") + : device_t(mconfig, ELECTRON_PLUS3, tag, owner, clock) + , device_electron_expansion_interface(mconfig, *this) + , m_exp_rom(*this, "exp_rom") + , m_fdc(*this, "fdc") + , m_floppy0(*this, "fdc:0") + , m_floppy1(*this, "fdc:1") { } @@ -121,7 +121,7 @@ void electron_plus3_device::device_start() m_slot = dynamic_cast(owner()); space.install_readwrite_handler(0xfcc0, 0xfcc0, READ8_DELEGATE(electron_plus3_device, wd1770_status_r), WRITE8_DELEGATE(electron_plus3_device, wd1770_status_w)); - space.install_readwrite_handler(0xfcc4, 0xfcc7, READ8_DEVICE_DELEGATE(m_fdc, wd1770_t, read), WRITE8_DEVICE_DELEGATE(m_fdc, wd1770_t, write)); + space.install_readwrite_handler(0xfcc4, 0xfcc7, READ8_DEVICE_DELEGATE(m_fdc, wd1770_device, read), WRITE8_DEVICE_DELEGATE(m_fdc, wd1770_device, write)); } //------------------------------------------------- diff --git a/src/devices/bus/electron/plus3.h b/src/devices/bus/electron/plus3.h index 80aa3ec2320..0fc49206f89 100644 --- a/src/devices/bus/electron/plus3.h +++ b/src/devices/bus/electron/plus3.h @@ -6,9 +6,8 @@ **********************************************************************/ - -#ifndef __ELECTRON_PLUS3__ -#define __ELECTRON_PLUS3__ +#ifndef MAME_BUS_ELECTRON_PLUS3_H +#define MAME_BUS_ELECTRON_PLUS3_H #include "exp.h" #include "machine/wd_fdc.h" @@ -42,7 +41,7 @@ protected: private: required_memory_region m_exp_rom; - required_device m_fdc; + required_device m_fdc; required_device m_floppy0; optional_device m_floppy1; @@ -51,7 +50,7 @@ private: // device type definition -extern const device_type ELECTRON_PLUS3; +DECLARE_DEVICE_TYPE(ELECTRON_PLUS3, electron_plus3_device) -#endif /* __ELECTRON_PLUS3__ */ +#endif // MAME_BUS_ELECTRON_PLUS3_H diff --git a/src/devices/bus/electron/pwrjoy.cpp b/src/devices/bus/electron/pwrjoy.cpp index 02f65b277e9..98d6422cdd8 100644 --- a/src/devices/bus/electron/pwrjoy.cpp +++ b/src/devices/bus/electron/pwrjoy.cpp @@ -13,7 +13,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type ELECTRON_PWRJOY = device_creator; +DEFINE_DEVICE_TYPE(ELECTRON_PWRJOY, electron_pwrjoy_device, "electron_pwrjoy", "Power Software Joystick Interface") ROM_START( pwrjoy ) @@ -56,10 +56,10 @@ const tiny_rom_entry *electron_pwrjoy_device::device_rom_region() const //------------------------------------------------- electron_pwrjoy_device::electron_pwrjoy_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, ELECTRON_PWRJOY, "Power Software Joystick Interface", tag, owner, clock, "electron_pwrjoy", __FILE__), - device_electron_expansion_interface(mconfig, *this), - m_exp_rom(*this, "exp_rom"), - m_joy(*this, "JOY") + : device_t(mconfig, ELECTRON_PWRJOY, tag, owner, clock) + , device_electron_expansion_interface(mconfig, *this) + , m_exp_rom(*this, "exp_rom") + , m_joy(*this, "JOY") { } diff --git a/src/devices/bus/electron/pwrjoy.h b/src/devices/bus/electron/pwrjoy.h index fba6b1b8c1e..1566f21d10d 100644 --- a/src/devices/bus/electron/pwrjoy.h +++ b/src/devices/bus/electron/pwrjoy.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_ELECTRON_PWRJOY_H +#define MAME_BUS_ELECTRON_PWRJOY_H -#ifndef __ELECTRON_PWRJOY__ -#define __ELECTRON_PWRJOY__ +#pragma once #include "exp.h" @@ -46,7 +46,6 @@ private: // device type definition -extern const device_type ELECTRON_PWRJOY; - +DECLARE_DEVICE_TYPE(ELECTRON_PWRJOY, electron_pwrjoy_device) -#endif +#endif // MAME_BUS_ELECTRON_PWRJOY_H diff --git a/src/devices/bus/ep64/exdos.cpp b/src/devices/bus/ep64/exdos.cpp index 9b8d6ea9d48..9a207b31f3b 100644 --- a/src/devices/bus/ep64/exdos.cpp +++ b/src/devices/bus/ep64/exdos.cpp @@ -62,7 +62,7 @@ This PCB plugs into the external expansion connector on the right side of the ma // DEVICE DEFINITIONS //************************************************************************** -const device_type EP64_EXDOS = device_creator; +DEFINE_DEVICE_TYPE(EP64_EXDOS, ep64_exdos_device, "ep64_exdos", "EP64 EXDOS") //------------------------------------------------- @@ -133,7 +133,7 @@ machine_config_constructor ep64_exdos_device::device_mconfig_additions() const //------------------------------------------------- ep64_exdos_device::ep64_exdos_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, EP64_EXDOS, "EXDOS", tag, owner, clock, "ep64_exdos", __FILE__), + device_t(mconfig, EP64_EXDOS, tag, owner, clock), device_ep64_expansion_bus_card_interface(mconfig, *this), m_fdc(*this, WD1770_TAG), m_floppy0(*this, WD1770_TAG":0"), @@ -154,7 +154,7 @@ void ep64_exdos_device::device_start() { m_slot->program().install_rom(0x080000, 0x087fff, m_rom->base()); - m_slot->io().install_readwrite_handler(0x10, 0x13, 0, 0x04, 0, READ8_DEVICE_DELEGATE(m_fdc, wd_fdc_t, read), WRITE8_DEVICE_DELEGATE(m_fdc, wd_fdc_t, write)); + m_slot->io().install_readwrite_handler(0x10, 0x13, 0, 0x04, 0, READ8_DEVICE_DELEGATE(m_fdc, wd_fdc_device_base, read), WRITE8_DEVICE_DELEGATE(m_fdc, wd_fdc_device_base, write)); m_slot->io().install_readwrite_handler(0x18, 0x18, 0, 0x04, 0, READ8_DELEGATE(ep64_exdos_device, read), WRITE8_DELEGATE(ep64_exdos_device, write)); } diff --git a/src/devices/bus/ep64/exdos.h b/src/devices/bus/ep64/exdos.h index a2417e0b1fa..9cb002c7754 100644 --- a/src/devices/bus/ep64/exdos.h +++ b/src/devices/bus/ep64/exdos.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_EP64_EXDOS_H +#define MAME_BUS_EP64_EXDOS_H -#ifndef __EP64_EXDOS__ -#define __EP64_EXDOS__ +#pragma once #include "exp.h" #include "formats/ep64_dsk.h" @@ -45,7 +45,7 @@ protected: virtual void device_reset() override; private: - required_device m_fdc; + required_device m_fdc; required_device m_floppy0; required_device m_floppy1; required_device m_floppy2; @@ -56,8 +56,7 @@ private: // device type definition -extern const device_type EP64_EXDOS; - +DECLARE_DEVICE_TYPE(EP64_EXDOS, ep64_exdos_device) -#endif +#endif // MAME_BUS_EP64_EXDOS_H diff --git a/src/devices/bus/ep64/exp.cpp b/src/devices/bus/ep64/exp.cpp index 028b397b6df..a60c4d386c8 100644 --- a/src/devices/bus/ep64/exp.cpp +++ b/src/devices/bus/ep64/exp.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type EP64_EXPANSION_BUS_SLOT = device_creator; +DEFINE_DEVICE_TYPE(EP64_EXPANSION_BUS_SLOT, ep64_expansion_bus_slot_device, "ep64_expansion_bus_slot", "Enterprise Sixty Four expansion bus slot") @@ -44,7 +44,7 @@ device_ep64_expansion_bus_card_interface::device_ep64_expansion_bus_card_interfa //------------------------------------------------- ep64_expansion_bus_slot_device::ep64_expansion_bus_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, EP64_EXPANSION_BUS_SLOT, "Enterprise Sixty Four expansion bus slot", tag, owner, clock, "ep64_expansion_bus_slot", __FILE__) + : device_t(mconfig, EP64_EXPANSION_BUS_SLOT, tag, owner, clock) , device_slot_interface(mconfig, *this) , m_write_irq(*this) , m_write_nmi(*this) diff --git a/src/devices/bus/ep64/exp.h b/src/devices/bus/ep64/exp.h index 1dd01eb1e5f..d66fd8536b0 100644 --- a/src/devices/bus/ep64/exp.h +++ b/src/devices/bus/ep64/exp.h @@ -42,10 +42,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_EP64_EXP_H +#define MAME_BUS_EP64_EXP_H -#ifndef __EP64_EXPANSION_BUS__ -#define __EP64_EXPANSION_BUS__ +#pragma once #include "sound/dave.h" @@ -99,9 +99,9 @@ public: ep64_expansion_bus_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); static void static_set_dave_tag(device_t &device, const char* tag) { downcast(device).m_dave.set_tag(tag); } - template static devcb_base &set_irq_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_irq.set_callback(object); } - template static devcb_base &set_nmi_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_nmi.set_callback(object); } - template static devcb_base &set_wait_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_wait.set_callback(object); } + template static devcb_base &set_irq_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_irq.set_callback(std::forward(cb)); } + template static devcb_base &set_nmi_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_nmi.set_callback(std::forward(cb)); } + template static devcb_base &set_wait_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_wait.set_callback(std::forward(cb)); } DECLARE_WRITE_LINE_MEMBER( irq_w ) { m_write_irq(state); } DECLARE_WRITE_LINE_MEMBER( nmi_w ) { m_write_nmi(state); } @@ -130,21 +130,19 @@ private: class device_ep64_expansion_bus_card_interface : public device_slot_card_interface { -public: +protected: // construction/destruction device_ep64_expansion_bus_card_interface(const machine_config &mconfig, device_t &device); -protected: ep64_expansion_bus_slot_device *m_slot; }; // device type definition -extern const device_type EP64_EXPANSION_BUS_SLOT; +DECLARE_DEVICE_TYPE(EP64_EXPANSION_BUS_SLOT, ep64_expansion_bus_slot_device) SLOT_INTERFACE_EXTERN( ep64_expansion_bus_cards ); - -#endif +#endif // MAME_BUS_EP64_EXP_H diff --git a/src/devices/bus/epson_sio/epson_sio.cpp b/src/devices/bus/epson_sio/epson_sio.cpp index 6fd316989dc..74e9294d456 100644 --- a/src/devices/bus/epson_sio/epson_sio.cpp +++ b/src/devices/bus/epson_sio/epson_sio.cpp @@ -18,7 +18,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type EPSON_SIO = device_creator; +DEFINE_DEVICE_TYPE(EPSON_SIO, epson_sio_device, "epson_sio", "EPSON SIO port") //************************************************************************** @@ -54,10 +54,11 @@ device_epson_sio_interface::~device_epson_sio_interface() //------------------------------------------------- epson_sio_device::epson_sio_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, EPSON_SIO, "EPSON SIO port", tag, owner, clock, "epson_sio", __FILE__), - device_slot_interface(mconfig, *this), m_cart(nullptr), - m_write_rx(*this), - m_write_pin(*this) + device_t(mconfig, EPSON_SIO, tag, owner, clock), + device_slot_interface(mconfig, *this), + m_cart(nullptr), + m_write_rx(*this), + m_write_pin(*this) { } diff --git a/src/devices/bus/epson_sio/epson_sio.h b/src/devices/bus/epson_sio/epson_sio.h index cd853d950b9..7e1a001c8b1 100644 --- a/src/devices/bus/epson_sio/epson_sio.h +++ b/src/devices/bus/epson_sio/epson_sio.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_EPSON_SIO_EPSON_SIO_H +#define MAME_BUS_EPSON_SIO_EPSON_SIO_H -#ifndef __EPSON_SIO_H__ -#define __EPSON_SIO_H__ +#pragma once @@ -73,23 +73,24 @@ class device_epson_sio_interface : public device_slot_card_interface { public: // construction/destruction - device_epson_sio_interface(const machine_config &mconfig, device_t &device); virtual ~device_epson_sio_interface(); virtual void tx_w(int state) { }; virtual void pout_w(int state) { }; protected: + device_epson_sio_interface(const machine_config &mconfig, device_t &device); + epson_sio_device *m_slot; }; // device type definition -extern const device_type EPSON_SIO; +DECLARE_DEVICE_TYPE(EPSON_SIO, epson_sio_device) // supported devices SLOT_INTERFACE_EXTERN( epson_sio_devices ); -#endif // __EPSON_SIO_H__ +#endif // MAME_BUS_EPSON_SIO_EPSON_SIO_H diff --git a/src/devices/bus/epson_sio/pf10.cpp b/src/devices/bus/epson_sio/pf10.cpp index 0e3bac64c1a..9ece008557a 100644 --- a/src/devices/bus/epson_sio/pf10.cpp +++ b/src/devices/bus/epson_sio/pf10.cpp @@ -18,7 +18,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type EPSON_PF10 = device_creator; +DEFINE_DEVICE_TYPE(EPSON_PF10, epson_pf10_device, "epson_pf10_device", "EPSON PF-10 Portable Floppy Unit") //------------------------------------------------- @@ -93,7 +93,7 @@ machine_config_constructor epson_pf10_device::device_mconfig_additions() const //------------------------------------------------- epson_pf10_device::epson_pf10_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, EPSON_PF10, "EPSON PF-10 Portable Floppy Unit", tag, owner, clock, "epson_pf10", __FILE__), + device_t(mconfig, EPSON_PF10, tag, owner, clock), device_epson_sio_interface(mconfig, *this), m_cpu(*this, "maincpu"), m_fdc(*this, "upd765a"), diff --git a/src/devices/bus/epson_sio/pf10.h b/src/devices/bus/epson_sio/pf10.h index ab89b0fe01c..e3d4f01e69c 100644 --- a/src/devices/bus/epson_sio/pf10.h +++ b/src/devices/bus/epson_sio/pf10.h @@ -8,14 +8,14 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_EPSON_SIO_PF10_H +#define MAME_BUS_EPSON_SIO_PF10_H -#ifndef __PF10_H__ -#define __PF10_H__ +#pragma once +#include "epson_sio.h" #include "cpu/m6800/m6800.h" #include "machine/upd765.h" -#include "epson_sio.h" //************************************************************************** @@ -94,7 +94,7 @@ private: // device type definition -extern const device_type EPSON_PF10; +DECLARE_DEVICE_TYPE(EPSON_PF10, epson_pf10_device) -#endif // __PF10_H__ +#endif // MAME_BUS_EPSON_SIO_PF10_H diff --git a/src/devices/bus/epson_sio/tf20.cpp b/src/devices/bus/epson_sio/tf20.cpp index f1af2da2c74..4b9ce2c1bbb 100644 --- a/src/devices/bus/epson_sio/tf20.cpp +++ b/src/devices/bus/epson_sio/tf20.cpp @@ -23,7 +23,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type EPSON_TF20 = device_creator; +DEFINE_DEVICE_TYPE(EPSON_TF20, epson_tf20_device, "epson_tf20", "EPSON TF-20 Dual Floppy Disk Drive") //------------------------------------------------- // address maps @@ -128,7 +128,7 @@ machine_config_constructor epson_tf20_device::device_mconfig_additions() const //------------------------------------------------- epson_tf20_device::epson_tf20_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, EPSON_TF20, "EPSON TF-20 Dual Floppy Disk Drive", tag, owner, clock, "epson_tf20", __FILE__), + device_t(mconfig, EPSON_TF20, tag, owner, clock), device_epson_sio_interface(mconfig, *this), m_cpu(*this, "19b"), m_ram(*this, "ram"), diff --git a/src/devices/bus/epson_sio/tf20.h b/src/devices/bus/epson_sio/tf20.h index a82f38ce9d3..31c1232c4bb 100644 --- a/src/devices/bus/epson_sio/tf20.h +++ b/src/devices/bus/epson_sio/tf20.h @@ -8,16 +8,16 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_EPSON_SIO_TF20_H +#define MAME_BUS_EPSON_SIO_TF20_H -#ifndef __TF20_H__ -#define __TF20_H__ +#pragma once +#include "epson_sio.h" #include "cpu/z80/z80.h" #include "machine/ram.h" #include "machine/upd765.h" #include "machine/z80dart.h" -#include "epson_sio.h" //************************************************************************** @@ -84,7 +84,7 @@ private: // device type definition -extern const device_type EPSON_TF20; +DECLARE_DEVICE_TYPE(EPSON_TF20, epson_tf20_device) -#endif // __TF20_H__ +#endif // MAME_BUS_EPSON_SIO_TF20_H diff --git a/src/devices/bus/gameboy/gb_slot.cpp b/src/devices/bus/gameboy/gb_slot.cpp index 592ab91a507..5e767119e80 100644 --- a/src/devices/bus/gameboy/gb_slot.cpp +++ b/src/devices/bus/gameboy/gb_slot.cpp @@ -25,8 +25,8 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type GB_CART_SLOT = device_creator; -const device_type MEGADUCK_CART_SLOT = device_creator; +DEFINE_DEVICE_TYPE(GB_CART_SLOT, gb_cart_slot_device, "gb_cart_slot", "Game Boy Cartridge Slot") +DEFINE_DEVICE_TYPE(MEGADUCK_CART_SLOT, megaduck_cart_slot_device, "megaduck_cart_slot", "Megaduck Cartridge Slot") //************************************************************************** // GB cartridges Interface @@ -135,32 +135,33 @@ void device_gb_cart_interface::ram_map_setup(uint8_t banks) //************************************************************************** //------------------------------------------------- -// base_gb_cart_slot_device - constructor +// gb_cart_slot_device_base - constructor //------------------------------------------------- -base_gb_cart_slot_device::base_gb_cart_slot_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_image_interface(mconfig, *this), - device_slot_interface(mconfig, *this), - m_sgb_hack(0), - m_type(GB_MBC_UNKNOWN), m_cart(nullptr) +gb_cart_slot_device_base::gb_cart_slot_device_base(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), + device_image_interface(mconfig, *this), + device_slot_interface(mconfig, *this), + m_sgb_hack(0), + m_type(GB_MBC_UNKNOWN), + m_cart(nullptr) { } gb_cart_slot_device::gb_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - base_gb_cart_slot_device(mconfig, GB_CART_SLOT, "Game Boy Cartridge Slot", tag, owner, clock, "gb_cart_slot", __FILE__) + gb_cart_slot_device_base(mconfig, GB_CART_SLOT, tag, owner, clock) { } megaduck_cart_slot_device::megaduck_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - base_gb_cart_slot_device(mconfig, MEGADUCK_CART_SLOT, "Megaduck Cartridge Slot", tag, owner, clock, "megaduck_cart_slot", __FILE__) + gb_cart_slot_device_base(mconfig, MEGADUCK_CART_SLOT, tag, owner, clock) { } //------------------------------------------------- -// base_gb_cart_slot_device - destructor +// gb_cart_slot_device_base - destructor //------------------------------------------------- -base_gb_cart_slot_device::~base_gb_cart_slot_device() +gb_cart_slot_device_base::~gb_cart_slot_device_base() { } @@ -168,7 +169,7 @@ base_gb_cart_slot_device::~base_gb_cart_slot_device() // device_start - device-specific startup //------------------------------------------------- -void base_gb_cart_slot_device::device_start() +void gb_cart_slot_device_base::device_start() { m_cart = dynamic_cast(get_card_device()); } @@ -246,7 +247,7 @@ static const char *gb_get_slot(int type) -------------------------------------------------*/ -image_init_result base_gb_cart_slot_device::call_load() +image_init_result gb_cart_slot_device_base::call_load() { if (m_cart) { @@ -424,13 +425,13 @@ image_init_result megaduck_cart_slot_device::call_load() call_unload -------------------------------------------------*/ -void base_gb_cart_slot_device::call_unload() +void gb_cart_slot_device_base::call_unload() { if (m_cart && m_cart->get_ram_base() && m_cart->get_ram_size() && m_cart->get_has_battery()) battery_save(m_cart->get_ram_base(), m_cart->get_ram_size()); } -void base_gb_cart_slot_device::setup_ram(uint8_t banks) +void gb_cart_slot_device_base::setup_ram(uint8_t banks) { m_cart->ram_alloc(banks * 0x2000); memset(m_cart->get_ram_base(), 0xff, m_cart->get_ram_size()); @@ -440,7 +441,7 @@ void base_gb_cart_slot_device::setup_ram(uint8_t banks) // This fails to catch Mani 4-in-1 carts... even when they match this, then they have MBC1/3 in the internal header instead of MMM01... -bool base_gb_cart_slot_device::get_mmm01_candidate(const uint8_t *ROM, uint32_t len) +bool gb_cart_slot_device_base::get_mmm01_candidate(const uint8_t *ROM, uint32_t len) { if (len < 0x8147) return false; @@ -463,7 +464,7 @@ bool base_gb_cart_slot_device::get_mmm01_candidate(const uint8_t *ROM, uint32_t return false; } -int base_gb_cart_slot_device::get_cart_type(const uint8_t *ROM, uint32_t len) +int gb_cart_slot_device_base::get_cart_type(const uint8_t *ROM, uint32_t len) { int type = GB_MBC_NONE; @@ -579,7 +580,7 @@ int base_gb_cart_slot_device::get_cart_type(const uint8_t *ROM, uint32_t len) get default card software -------------------------------------------------*/ -std::string base_gb_cart_slot_device::get_default_card_software(get_default_card_software_hook &hook) const +std::string gb_cart_slot_device_base::get_default_card_software(get_default_card_software_hook &hook) const { if (hook.image_file()) { @@ -622,7 +623,7 @@ std::string megaduck_cart_slot_device::get_default_card_software(get_default_car read -------------------------------------------------*/ -READ8_MEMBER(base_gb_cart_slot_device::read_rom) +READ8_MEMBER(gb_cart_slot_device_base::read_rom) { if (m_cart) return m_cart->read_rom(space, offset); @@ -630,7 +631,7 @@ READ8_MEMBER(base_gb_cart_slot_device::read_rom) return 0xff; } -READ8_MEMBER(base_gb_cart_slot_device::read_ram) +READ8_MEMBER(gb_cart_slot_device_base::read_ram) { if (m_cart) return m_cart->read_ram(space, offset); @@ -643,13 +644,13 @@ READ8_MEMBER(base_gb_cart_slot_device::read_ram) write -------------------------------------------------*/ -WRITE8_MEMBER(base_gb_cart_slot_device::write_bank) +WRITE8_MEMBER(gb_cart_slot_device_base::write_bank) { if (m_cart) m_cart->write_bank(space, offset, data); } -WRITE8_MEMBER(base_gb_cart_slot_device::write_ram) +WRITE8_MEMBER(gb_cart_slot_device_base::write_ram) { if (m_cart) m_cart->write_ram(space, offset, data); @@ -660,7 +661,7 @@ WRITE8_MEMBER(base_gb_cart_slot_device::write_ram) Internal header logging -------------------------------------------------*/ -void base_gb_cart_slot_device::internal_header_logging(uint8_t *ROM, uint32_t len) +void gb_cart_slot_device_base::internal_header_logging(uint8_t *ROM, uint32_t len) { static const char *const cart_types[] = { diff --git a/src/devices/bus/gameboy/gb_slot.h b/src/devices/bus/gameboy/gb_slot.h index 9ac41618f82..f3198f8e20c 100644 --- a/src/devices/bus/gameboy/gb_slot.h +++ b/src/devices/bus/gameboy/gb_slot.h @@ -1,7 +1,7 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli, Wilbert Pol -#ifndef __GB_SLOT_H -#define __GB_SLOT_H +#ifndef MAME_BUS_GAMEBOY_GB_SLOT_H +#define MAME_BUS_GAMEBOY_GB_SLOT_H #include "softlist_dev.h" @@ -55,7 +55,6 @@ class device_gb_cart_interface : public device_slot_card_interface { public: // construction/destruction - device_gb_cart_interface(const machine_config &mconfig, device_t &device); virtual ~device_gb_cart_interface(); // reading and writing @@ -82,6 +81,9 @@ public: void save_ram() { device().save_item(NAME(m_ram)); } +protected: + device_gb_cart_interface(const machine_config &mconfig, device_t &device); + // internal state uint8_t *m_rom; uint32_t m_rom_size; @@ -103,16 +105,15 @@ public: }; -// ======================> base_gb_cart_slot_device +// ======================> gb_cart_slot_device_base -class base_gb_cart_slot_device : public device_t, +class gb_cart_slot_device_base : public device_t, public device_image_interface, public device_slot_interface { public: // construction/destruction - base_gb_cart_slot_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - virtual ~base_gb_cart_slot_device(); + virtual ~gb_cart_slot_device_base(); // device-level overrides virtual void device_start() override; @@ -152,6 +153,8 @@ public: protected: + gb_cart_slot_device_base(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // Donkey Kong Land 2 + 3 store SGB border tiles differently... this will be hopefully be removed when SGB is properly emulated! int m_sgb_hack; @@ -161,7 +164,7 @@ protected: // ======================> gb_cart_slot_device -class gb_cart_slot_device : public base_gb_cart_slot_device +class gb_cart_slot_device : public gb_cart_slot_device_base { public: // construction/destruction @@ -171,7 +174,7 @@ public: // ======================> megaduck_cart_slot_device -class megaduck_cart_slot_device : public base_gb_cart_slot_device +class megaduck_cart_slot_device : public gb_cart_slot_device_base { public: // construction/destruction @@ -190,8 +193,8 @@ public: // device type definition -extern const device_type GB_CART_SLOT; -extern const device_type MEGADUCK_CART_SLOT; +DECLARE_DEVICE_TYPE(GB_CART_SLOT, gb_cart_slot_device) +DECLARE_DEVICE_TYPE(MEGADUCK_CART_SLOT, megaduck_cart_slot_device) /*************************************************************************** @@ -209,4 +212,4 @@ extern const device_type MEGADUCK_CART_SLOT; MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, false) -#endif +#endif // MAME_BUS_GAMEBOY_GB_SLOT_H diff --git a/src/devices/bus/gameboy/mbc.cpp b/src/devices/bus/gameboy/mbc.cpp index 6aba03a2124..5bcc83377f3 100644 --- a/src/devices/bus/gameboy/mbc.cpp +++ b/src/devices/bus/gameboy/mbc.cpp @@ -18,133 +18,133 @@ // gb_rom_mbc*_device - constructor //------------------------------------------------- -const device_type GB_ROM_MBC1 = device_creator; -const device_type GB_ROM_MBC2 = device_creator; -const device_type GB_ROM_MBC3 = device_creator; -const device_type GB_ROM_MBC5 = device_creator; -const device_type GB_ROM_MBC6 = device_creator; -const device_type GB_ROM_MBC7 = device_creator; -const device_type GB_ROM_M161 = device_creator; -const device_type GB_ROM_MMM01 = device_creator; -const device_type GB_ROM_SACHEN1 = device_creator; -const device_type GB_ROM_SACHEN2 = device_creator; -const device_type GB_ROM_188IN1 = device_creator; -const device_type GB_ROM_SINTAX = device_creator; -const device_type GB_ROM_CHONGWU = device_creator; -const device_type GB_ROM_LICHENG = device_creator; -const device_type GB_ROM_DIGIMON = device_creator; -const device_type GB_ROM_ROCKMAN8 = device_creator; -const device_type GB_ROM_SM3SP = device_creator; - - -gb_rom_mbc_device::gb_rom_mbc_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_gb_cart_interface( mconfig, *this ), m_ram_enable(0) - { -} - -gb_rom_mbc1_device::gb_rom_mbc1_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : gb_rom_mbc_device(mconfig, type, name, tag, owner, clock, shortname, source), m_mode(MODE_16M_64k), - m_mask(0x1f), - m_shift(0) +DEFINE_DEVICE_TYPE(GB_ROM_MBC1, gb_rom_mbc1_device, "gb_rom_mbc1", "GB MBC1 Carts") +DEFINE_DEVICE_TYPE(GB_ROM_MBC2, gb_rom_mbc2_device, "gb_rom_mbc2", "GB MBC2 Carts") +DEFINE_DEVICE_TYPE(GB_ROM_MBC3, gb_rom_mbc3_device, "gb_rom_mbc3", "GB MBC3 Carts") +DEFINE_DEVICE_TYPE(GB_ROM_MBC5, gb_rom_mbc5_device, "gb_rom_mbc5", "GB MBC5 Carts") +DEFINE_DEVICE_TYPE(GB_ROM_MBC6, gb_rom_mbc6_device, "gb_rom_mbc6", "GB MBC6 Carts") +DEFINE_DEVICE_TYPE(GB_ROM_MBC7, gb_rom_mbc7_device, "gb_rom_mbc7", "GB MBC7 Carts") +DEFINE_DEVICE_TYPE(GB_ROM_M161, gb_rom_m161_device, "gb_rom_m161", "GB M161 Carts") +DEFINE_DEVICE_TYPE(GB_ROM_MMM01, gb_rom_mmm01_device, "gb_rom_mmm01", "GB MMM01 Carts") +DEFINE_DEVICE_TYPE(GB_ROM_SACHEN1, gb_rom_sachen_mmc1_device, "gb_rom_sachen1", "GB Sachen MMC1 Carts") +DEFINE_DEVICE_TYPE(GB_ROM_SACHEN2, gb_rom_sachen_mmc2_device, "gb_rom_sachen2", "GB Sachen MMC2 Carts") +DEFINE_DEVICE_TYPE(GB_ROM_188IN1, gb_rom_188in1_device, "gb_rom_188in1", "GB 188in1") +DEFINE_DEVICE_TYPE(GB_ROM_SINTAX, gb_rom_sintax_device, "gb_rom_sintax", "GB MBC5 Sintax Carts") +DEFINE_DEVICE_TYPE(GB_ROM_CHONGWU, gb_rom_chongwu_device, "gb_rom_chongwu", "GB Chong Wu Xiao Jing Ling") +DEFINE_DEVICE_TYPE(GB_ROM_LICHENG, gb_rom_licheng_device, "gb_rom_licheng", "GB MBC5 Li Cheng Carts") +DEFINE_DEVICE_TYPE(GB_ROM_DIGIMON, gb_rom_digimon_device, "gb_rom_digimon", "GB Digimon") +DEFINE_DEVICE_TYPE(GB_ROM_ROCKMAN8, gb_rom_rockman8_device, "gb_rom_rockman8", "GB MBC1 Rockman 8") +DEFINE_DEVICE_TYPE(GB_ROM_SM3SP, gb_rom_sm3sp_device, "gb_sm3sp", "GB MBC1 Super Mario 3 Special") + + +gb_rom_mbc_device::gb_rom_mbc_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) + , device_gb_cart_interface(mconfig, *this) + , m_ram_enable(0) +{ +} + +gb_rom_mbc1_device::gb_rom_mbc1_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : gb_rom_mbc_device(mconfig, type, tag, owner, clock) + , m_mode(MODE_16M_64k) + , m_mask(0x1f) + , m_shift(0) { } gb_rom_mbc1_device::gb_rom_mbc1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : gb_rom_mbc_device(mconfig, GB_ROM_MBC1, "GB MBC1 Carts", tag, owner, clock, "gb_rom_mbc1", __FILE__), m_mode(MODE_16M_64k), - m_mask(0x1f), - m_shift(0) + : gb_rom_mbc1_device(mconfig, GB_ROM_MBC1, tag, owner, clock) { } gb_rom_mbc2_device::gb_rom_mbc2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : gb_rom_mbc_device(mconfig, GB_ROM_MBC2, "GB MBC2 Carts", tag, owner, clock, "gb_rom_mbc2", __FILE__) + : gb_rom_mbc_device(mconfig, GB_ROM_MBC2, tag, owner, clock) { } gb_rom_mbc3_device::gb_rom_mbc3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : gb_rom_mbc_device(mconfig, GB_ROM_MBC3, "GB MBC3 Carts", tag, owner, clock, "gb_rom_mbc3", __FILE__) + : gb_rom_mbc_device(mconfig, GB_ROM_MBC3, tag, owner, clock) { } -gb_rom_mbc5_device::gb_rom_mbc5_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : gb_rom_mbc_device(mconfig, type, name, tag, owner, clock, shortname, source) +gb_rom_mbc5_device::gb_rom_mbc5_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : gb_rom_mbc_device(mconfig, type, tag, owner, clock) { } gb_rom_mbc5_device::gb_rom_mbc5_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : gb_rom_mbc_device(mconfig, GB_ROM_MBC5, "GB MBC5 Carts", tag, owner, clock, "gb_rom_mbc5", __FILE__) + : gb_rom_mbc5_device(mconfig, GB_ROM_MBC5, tag, owner, clock) { } gb_rom_mbc6_device::gb_rom_mbc6_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : gb_rom_mbc_device(mconfig, GB_ROM_MBC6, "GB MBC6 Carts", tag, owner, clock, "gb_rom_mbc6", __FILE__), m_latch1(0), m_latch2(0), m_bank_4000(0), m_bank_6000(0) - { + : gb_rom_mbc_device(mconfig, GB_ROM_MBC6, tag, owner, clock), m_latch1(0), m_latch2(0), m_bank_4000(0), m_bank_6000(0) +{ } gb_rom_mbc7_device::gb_rom_mbc7_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : gb_rom_mbc_device(mconfig, GB_ROM_MBC7, "GB MBC7 Carts", tag, owner, clock, "gb_rom_mbc7", __FILE__) + : gb_rom_mbc_device(mconfig, GB_ROM_MBC7, tag, owner, clock) { } gb_rom_m161_device::gb_rom_m161_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : gb_rom_mbc_device(mconfig, GB_ROM_M161, "GB M161 Carts", tag, owner, clock, "gb_rom_m161", __FILE__), m_base_bank(0), m_load_disable(0) - { + : gb_rom_mbc_device(mconfig, GB_ROM_M161, tag, owner, clock), m_base_bank(0), m_load_disable(0) +{ } gb_rom_mmm01_device::gb_rom_mmm01_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : gb_rom_mbc_device(mconfig, GB_ROM_MMM01, "GB MMM01 Carts", tag, owner, clock, "gb_rom_mmm01", __FILE__), m_romb(0), m_romb_nwe(0), m_ramb(0), m_ramb_nwe(0), m_mode(0), m_mode_nwe(0), m_map(0), m_mux(0) - { + : gb_rom_mbc_device(mconfig, GB_ROM_MMM01, tag, owner, clock), m_romb(0), m_romb_nwe(0), m_ramb(0), m_ramb_nwe(0), m_mode(0), m_mode_nwe(0), m_map(0), m_mux(0) +{ } gb_rom_sachen_mmc1_device::gb_rom_sachen_mmc1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : gb_rom_mbc_device(mconfig, GB_ROM_SACHEN1, "GB Sachen MMC1 Carts", tag, owner, clock, "gb_rom_sachen1", __FILE__), m_base_bank(0), m_mask(0), m_mode(0), m_unlock_cnt(0) - { + : gb_rom_sachen_mmc1_device(mconfig, GB_ROM_SACHEN1, tag, owner, clock) +{ } -gb_rom_sachen_mmc1_device::gb_rom_sachen_mmc1_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : gb_rom_mbc_device(mconfig, type, name, tag, owner, clock, shortname, source), m_base_bank(0), m_mask(0), m_mode(0), m_unlock_cnt(0) - { +gb_rom_sachen_mmc1_device::gb_rom_sachen_mmc1_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : gb_rom_mbc_device(mconfig, type, tag, owner, clock), m_base_bank(0), m_mask(0), m_mode(0), m_unlock_cnt(0) +{ } gb_rom_sachen_mmc2_device::gb_rom_sachen_mmc2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : gb_rom_sachen_mmc1_device(mconfig, GB_ROM_SACHEN2, "GB Sachen MMC2 Carts", tag, owner, clock, "gb_rom_sachen2", __FILE__) + : gb_rom_sachen_mmc1_device(mconfig, GB_ROM_SACHEN2, tag, owner, clock) { } gb_rom_188in1_device::gb_rom_188in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : gb_rom_mbc1_device(mconfig, GB_ROM_188IN1, "GB 188in1", tag, owner, clock, "gb_rom_188in1", __FILE__), m_game_base(0) - { + : gb_rom_mbc1_device(mconfig, GB_ROM_188IN1, tag, owner, clock), m_game_base(0) +{ } gb_rom_sintax_device::gb_rom_sintax_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : gb_rom_mbc_device(mconfig, GB_ROM_SINTAX, "GB MBC5 Sintax Carts", tag, owner, clock, "gb_rom_sintax", __FILE__), m_bank_mask(0), m_bank(0), m_reg(0), m_currentxor(0), m_xor2(0), m_xor3(0), m_xor4(0), m_xor5(0), m_sintax_mode(0) - { + : gb_rom_mbc_device(mconfig, GB_ROM_SINTAX, tag, owner, clock), m_bank_mask(0), m_bank(0), m_reg(0), m_currentxor(0), m_xor2(0), m_xor3(0), m_xor4(0), m_xor5(0), m_sintax_mode(0) +{ } gb_rom_chongwu_device::gb_rom_chongwu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : gb_rom_mbc5_device(mconfig, GB_ROM_CHONGWU, "GB Chong Wu Xiao Jing Ling", tag, owner, clock, "gb_rom_chongwu", __FILE__), m_protection_checked(0) - { + : gb_rom_mbc5_device(mconfig, GB_ROM_CHONGWU, tag, owner, clock), m_protection_checked(0) +{ } gb_rom_licheng_device::gb_rom_licheng_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : gb_rom_mbc5_device(mconfig, GB_ROM_LICHENG, "GB MBC5 Li Cheng Carts", tag, owner, clock, "gb_rom_licheng", __FILE__) + : gb_rom_mbc5_device(mconfig, GB_ROM_LICHENG, tag, owner, clock) { } gb_rom_digimon_device::gb_rom_digimon_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : gb_rom_mbc5_device(mconfig, GB_ROM_DIGIMON, "GB Digimon", tag, owner, clock, "gb_rom_digimon", __FILE__) + : gb_rom_mbc5_device(mconfig, GB_ROM_DIGIMON, tag, owner, clock) { } gb_rom_rockman8_device::gb_rom_rockman8_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : gb_rom_mbc_device(mconfig, GB_ROM_ROCKMAN8, "GB MBC1 Rockman 8", tag, owner, clock, "gb_rom_rockman8", __FILE__), m_bank_mask(0), m_bank(0), m_reg(0) - { + : gb_rom_mbc_device(mconfig, GB_ROM_ROCKMAN8, tag, owner, clock), m_bank_mask(0), m_bank(0), m_reg(0) +{ } gb_rom_sm3sp_device::gb_rom_sm3sp_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : gb_rom_mbc_device(mconfig, GB_ROM_SM3SP, "GB MBC1 Super Mario 3 Special", tag, owner, clock, "gb_rom_sm3sp", __FILE__), m_bank_mask(0), m_bank(0), m_reg(0), m_mode(0) - { + : gb_rom_mbc_device(mconfig, GB_ROM_SM3SP, tag, owner, clock), m_bank_mask(0), m_bank(0), m_reg(0), m_mode(0) +{ } diff --git a/src/devices/bus/gameboy/mbc.h b/src/devices/bus/gameboy/mbc.h index 4a9b49bd52e..a99f859639b 100644 --- a/src/devices/bus/gameboy/mbc.h +++ b/src/devices/bus/gameboy/mbc.h @@ -1,7 +1,7 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli, Wilbert Pol -#ifndef __GB_MBC_H -#define __GB_MBC_H +#ifndef MAME_BUS_GAMEBOY_MBC_H +#define MAME_BUS_GAMEBOY_MBC_H #include "gb_slot.h" @@ -12,21 +12,22 @@ class gb_rom_mbc_device : public device_t, public device_gb_cart_interface { public: + // reading and writing + virtual DECLARE_READ8_MEMBER(read_rom) override; + virtual DECLARE_READ8_MEMBER(read_ram) override; + virtual DECLARE_WRITE8_MEMBER(write_ram) override; + +protected: // construction/destruction - gb_rom_mbc_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); + gb_rom_mbc_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); // device-level overrides - virtual void device_start() override { shared_start(); }; - virtual void device_reset() override { shared_reset(); }; + virtual void device_start() override { shared_start(); } + virtual void device_reset() override { shared_reset(); } void shared_start(); void shared_reset(); - // reading and writing - virtual DECLARE_READ8_MEMBER(read_rom) override; - virtual DECLARE_READ8_MEMBER(read_ram) override; - virtual DECLARE_WRITE8_MEMBER(write_ram) override; - uint8_t m_ram_enable; }; @@ -36,25 +37,27 @@ class gb_rom_mbc1_device : public gb_rom_mbc_device { public: + // construction/destruction + gb_rom_mbc1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + + virtual DECLARE_READ8_MEMBER(read_rom) override; + virtual DECLARE_WRITE8_MEMBER(write_bank) override; + virtual DECLARE_READ8_MEMBER(read_ram) override; + virtual DECLARE_WRITE8_MEMBER(write_ram) override; + +protected: enum { MODE_16M_64k = 0, /// 16Mbit ROM, 64kBit RAM MODE_4M_256k = 1 /// 4Mbit ROM, 256kBit RAM }; - // construction/destruction - gb_rom_mbc1_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - gb_rom_mbc1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + gb_rom_mbc1_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); // device-level overrides - virtual void device_start() override { shared_start(); save_item(NAME(m_mode)); }; - virtual void device_reset() override { shared_reset(); m_mode = MODE_16M_64k; }; + virtual void device_start() override { shared_start(); save_item(NAME(m_mode)); } + virtual void device_reset() override { shared_reset(); m_mode = MODE_16M_64k; } virtual void set_additional_wirings(uint8_t mask, int shift) override { m_mask = mask; m_shift = shift; } // these get set at cart loading - virtual DECLARE_READ8_MEMBER(read_rom) override; - virtual DECLARE_WRITE8_MEMBER(write_bank) override; - virtual DECLARE_READ8_MEMBER(read_ram) override; - virtual DECLARE_WRITE8_MEMBER(write_ram) override; - uint8_t m_mode, m_mask; int m_shift; }; @@ -67,14 +70,15 @@ public: // construction/destruction gb_rom_mbc2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override { shared_start(); }; - virtual void device_reset() override { shared_reset(); }; - virtual DECLARE_READ8_MEMBER(read_rom) override; virtual DECLARE_WRITE8_MEMBER(write_bank) override; virtual DECLARE_READ8_MEMBER(read_ram) override; virtual DECLARE_WRITE8_MEMBER(write_ram) override; + +protected: + // device-level overrides + virtual void device_start() override { shared_start(); } + virtual void device_reset() override { shared_reset(); } }; // ======================> gb_rom_mbc3_device @@ -85,15 +89,16 @@ public: // construction/destruction gb_rom_mbc3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - virtual DECLARE_READ8_MEMBER(read_rom) override; virtual DECLARE_WRITE8_MEMBER(write_bank) override; virtual DECLARE_READ8_MEMBER(read_ram) override; virtual DECLARE_WRITE8_MEMBER(write_ram) override; +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + private: void update_rtc(); uint8_t m_rtc_regs[5]; @@ -106,17 +111,19 @@ class gb_rom_mbc5_device : public gb_rom_mbc_device { public: // construction/destruction - gb_rom_mbc5_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); gb_rom_mbc5_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override { shared_start(); }; - virtual void device_reset() override { shared_reset(); }; - virtual DECLARE_READ8_MEMBER(read_rom) override; virtual DECLARE_WRITE8_MEMBER(write_bank) override; virtual DECLARE_READ8_MEMBER(read_ram) override; virtual DECLARE_WRITE8_MEMBER(write_ram) override; + +protected: + gb_rom_mbc5_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual void device_start() override { shared_start(); } + virtual void device_reset() override { shared_reset(); } }; // ======================> gb_rom_mbc6_device @@ -127,14 +134,16 @@ public: // construction/destruction gb_rom_mbc6_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - virtual DECLARE_READ8_MEMBER(read_rom) override; virtual DECLARE_WRITE8_MEMBER(write_bank) override; virtual DECLARE_READ8_MEMBER(read_ram) override; virtual DECLARE_WRITE8_MEMBER(write_ram) override; + +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + uint16_t m_latch1, m_latch2; uint8_t m_bank_4000, m_bank_6000; }; @@ -147,14 +156,15 @@ public: // construction/destruction gb_rom_mbc7_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override { shared_start(); }; - virtual void device_reset() override { shared_reset(); }; - virtual DECLARE_READ8_MEMBER(read_rom) override; virtual DECLARE_WRITE8_MEMBER(write_bank) override; virtual DECLARE_READ8_MEMBER(read_ram) override; virtual DECLARE_WRITE8_MEMBER(write_ram) override; + +protected: + // device-level overrides + virtual void device_start() override { shared_start(); } + virtual void device_reset() override { shared_reset(); } }; // ======================> gb_rom_m161_device @@ -162,19 +172,19 @@ public: class gb_rom_m161_device : public gb_rom_mbc_device { public: - // construction/destruction gb_rom_m161_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - virtual DECLARE_READ8_MEMBER(read_rom) override; virtual DECLARE_WRITE8_MEMBER(write_bank) override; virtual DECLARE_READ8_MEMBER(read_ram) override { return 0xff; } virtual DECLARE_WRITE8_MEMBER(write_ram) override { } +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + uint8_t m_base_bank; uint8_t m_load_disable; }; @@ -186,16 +196,17 @@ public: // construction/destruction gb_rom_mmm01_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - // reading and writing virtual DECLARE_READ8_MEMBER(read_rom) override; virtual DECLARE_WRITE8_MEMBER(write_bank) override; virtual DECLARE_READ8_MEMBER(read_ram) override; virtual DECLARE_WRITE8_MEMBER(write_ram) override; +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + uint16_t m_romb; uint8_t m_romb_nwe; uint8_t m_ramb; @@ -211,25 +222,26 @@ public: class gb_rom_sachen_mmc1_device : public gb_rom_mbc_device { public: + // construction/destruction + gb_rom_sachen_mmc1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + virtual DECLARE_READ8_MEMBER(read_rom) override; + virtual DECLARE_WRITE8_MEMBER(write_bank) override; + virtual DECLARE_READ8_MEMBER(read_ram) override { return 0xff; } + virtual DECLARE_WRITE8_MEMBER(write_ram) override { } + +protected: enum { MODE_LOCKED, MODE_UNLOCKED }; - // construction/destruction - gb_rom_sachen_mmc1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - gb_rom_sachen_mmc1_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); + gb_rom_sachen_mmc1_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); // device-level overrides virtual void device_start() override; virtual void device_reset() override; - virtual DECLARE_READ8_MEMBER(read_rom) override; - virtual DECLARE_WRITE8_MEMBER(write_bank) override; - virtual DECLARE_READ8_MEMBER(read_ram) override { return 0xff; } - virtual DECLARE_WRITE8_MEMBER(write_ram) override { } - uint8_t m_base_bank, m_mask, m_mode, m_unlock_cnt; }; @@ -238,24 +250,23 @@ public: class gb_rom_sachen_mmc2_device : public gb_rom_sachen_mmc1_device { public: + // construction/destruction + gb_rom_sachen_mmc2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + + virtual DECLARE_READ8_MEMBER(read_rom) override; + virtual DECLARE_READ8_MEMBER(read_ram) override; + virtual DECLARE_WRITE8_MEMBER(write_ram) override; +protected: enum { MODE_LOCKED_DMG, MODE_LOCKED_CGB, MODE_UNLOCKED }; - // construction/destruction - gb_rom_sachen_mmc2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides virtual void device_start() override; virtual void device_reset() override; - - virtual DECLARE_READ8_MEMBER(read_rom) override; - virtual DECLARE_READ8_MEMBER(read_ram) override; - virtual DECLARE_WRITE8_MEMBER(write_ram) override; - }; // ======================> gb_rom_188in1_device @@ -265,14 +276,15 @@ public: // construction/destruction gb_rom_188in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override { shared_start(); save_item(NAME(m_game_base)); }; - virtual void device_reset() override { shared_reset(); m_game_base = 0; }; - // reading and writing virtual DECLARE_READ8_MEMBER(read_rom) override; virtual DECLARE_WRITE8_MEMBER(write_bank) override; +protected: + // device-level overrides + virtual void device_start() override { shared_start(); save_item(NAME(m_game_base)); } + virtual void device_reset() override { shared_reset(); m_game_base = 0; } + private: uint32_t m_game_base; }; @@ -284,16 +296,18 @@ public: // construction/destruction gb_rom_sintax_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - void set_xor_for_bank(uint8_t bank); - // reading and writing virtual DECLARE_READ8_MEMBER(read_rom) override; virtual DECLARE_WRITE8_MEMBER(write_bank) override; virtual DECLARE_READ8_MEMBER(read_ram) override; virtual DECLARE_WRITE8_MEMBER(write_ram) override; + +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + void set_xor_for_bank(uint8_t bank); + uint8_t m_bank_mask, m_bank, m_reg; uint8_t m_currentxor, m_xor2, m_xor3, m_xor4, m_xor5, m_sintax_mode; @@ -307,11 +321,13 @@ public: // construction/destruction gb_rom_chongwu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + virtual DECLARE_READ8_MEMBER(read_rom) override; + +protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; - virtual DECLARE_READ8_MEMBER(read_rom) override; uint8_t m_protection_checked; }; @@ -334,13 +350,14 @@ public: // construction/destruction gb_rom_digimon_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override { shared_start(); }; - virtual void device_reset() override { shared_reset(); }; - virtual DECLARE_READ8_MEMBER(read_rom) override; virtual DECLARE_WRITE8_MEMBER(write_bank) override; virtual DECLARE_READ8_MEMBER(read_ram) override; + +protected: + // device-level overrides + virtual void device_start() override { shared_start(); } + virtual void device_reset() override { shared_reset(); } virtual DECLARE_WRITE8_MEMBER(write_ram) override; }; @@ -351,15 +368,17 @@ public: // construction/destruction gb_rom_rockman8_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override { shared_start(); }; - virtual void device_reset() override { shared_reset(); }; - // reading and writing virtual DECLARE_READ8_MEMBER(read_rom) override; virtual DECLARE_WRITE8_MEMBER(write_bank) override; virtual DECLARE_READ8_MEMBER(read_ram) override; virtual DECLARE_WRITE8_MEMBER(write_ram) override; + +protected: + // device-level overrides + virtual void device_start() override { shared_start(); } + virtual void device_reset() override { shared_reset(); } + uint8_t m_bank_mask, m_bank, m_reg; }; @@ -370,39 +389,39 @@ public: // construction/destruction gb_rom_sm3sp_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override { shared_start(); }; - virtual void device_reset() override { shared_reset(); }; - // reading and writing virtual DECLARE_READ8_MEMBER(read_rom) override; virtual DECLARE_WRITE8_MEMBER(write_bank) override; virtual DECLARE_READ8_MEMBER(read_ram) override; virtual DECLARE_WRITE8_MEMBER(write_ram) override; + +protected: + // device-level overrides + virtual void device_start() override { shared_start(); } + virtual void device_reset() override { shared_reset(); } + uint8_t m_bank_mask, m_bank, m_reg, m_mode; }; // device type definition -extern const device_type GB_ROM_MBC1; -extern const device_type GB_ROM_MBC1_COL; -extern const device_type GB_ROM_MBC2; -extern const device_type GB_ROM_MBC3; -extern const device_type GB_ROM_MBC4; -extern const device_type GB_ROM_MBC5; -extern const device_type GB_ROM_MBC6; -extern const device_type GB_ROM_MBC7; -extern const device_type GB_ROM_M161; -extern const device_type GB_ROM_MMM01; -extern const device_type GB_ROM_SACHEN1; -extern const device_type GB_ROM_SACHEN2; -extern const device_type GB_ROM_188IN1; -extern const device_type GB_ROM_SINTAX; -extern const device_type GB_ROM_CHONGWU; -extern const device_type GB_ROM_LICHENG; -extern const device_type GB_ROM_DIGIMON; -extern const device_type GB_ROM_ROCKMAN8; -extern const device_type GB_ROM_SM3SP; - -#endif +DECLARE_DEVICE_TYPE(GB_ROM_MBC1, gb_rom_mbc1_device) +DECLARE_DEVICE_TYPE(GB_ROM_MBC2, gb_rom_mbc2_device) +DECLARE_DEVICE_TYPE(GB_ROM_MBC3, gb_rom_mbc3_device) +DECLARE_DEVICE_TYPE(GB_ROM_MBC5, gb_rom_mbc5_device) +DECLARE_DEVICE_TYPE(GB_ROM_MBC6, gb_rom_mbc6_device) +DECLARE_DEVICE_TYPE(GB_ROM_MBC7, gb_rom_mbc7_device) +DECLARE_DEVICE_TYPE(GB_ROM_M161, gb_rom_m161_device) +DECLARE_DEVICE_TYPE(GB_ROM_MMM01, gb_rom_mmm01_device) +DECLARE_DEVICE_TYPE(GB_ROM_SACHEN1, gb_rom_sachen_mmc1_device) +DECLARE_DEVICE_TYPE(GB_ROM_SACHEN2, gb_rom_sachen_mmc2_device) +DECLARE_DEVICE_TYPE(GB_ROM_188IN1, gb_rom_188in1_device) +DECLARE_DEVICE_TYPE(GB_ROM_SINTAX, gb_rom_sintax_device) +DECLARE_DEVICE_TYPE(GB_ROM_CHONGWU, gb_rom_chongwu_device) +DECLARE_DEVICE_TYPE(GB_ROM_LICHENG, gb_rom_licheng_device) +DECLARE_DEVICE_TYPE(GB_ROM_DIGIMON, gb_rom_digimon_device) +DECLARE_DEVICE_TYPE(GB_ROM_ROCKMAN8, gb_rom_rockman8_device) +DECLARE_DEVICE_TYPE(GB_ROM_SM3SP, gb_rom_sm3sp_device) + +#endif // MAME_BUS_GAMEBOY_MBC_H diff --git a/src/devices/bus/gameboy/rom.cpp b/src/devices/bus/gameboy/rom.cpp index f06164426ef..1d907d8db37 100644 --- a/src/devices/bus/gameboy/rom.cpp +++ b/src/devices/bus/gameboy/rom.cpp @@ -19,63 +19,61 @@ // gb_rom_device - constructor //------------------------------------------------- -const device_type GB_STD_ROM = device_creator; -const device_type GB_ROM_TAMA5 = device_creator; -const device_type GB_ROM_WISDOM = device_creator; -const device_type GB_ROM_YONG = device_creator; -const device_type GB_ROM_ATVRAC = device_creator; -const device_type GB_ROM_LASAMA = device_creator; +DEFINE_DEVICE_TYPE(GB_STD_ROM, gb_rom_device, "gb_rom", "GB Carts") +DEFINE_DEVICE_TYPE(GB_ROM_TAMA5, gb_rom_tama5_device, "gb_rom_tama5", "GB Tamagotchi") +DEFINE_DEVICE_TYPE(GB_ROM_WISDOM, gb_rom_wisdom_device, "gb_rom_wisdom", "GB Wisdom Tree Carts") +DEFINE_DEVICE_TYPE(GB_ROM_YONG, gb_rom_yong_device, "gb_rom_yong", "GB Young Yong Carts") +DEFINE_DEVICE_TYPE(GB_ROM_ATVRAC, gb_rom_atvrac_device, "gb_rom_atvrac", "GB ATV Racin'") +DEFINE_DEVICE_TYPE(GB_ROM_LASAMA, gb_rom_lasama_device, "gb_rom_lasama", "GB LaSaMa") -const device_type MEGADUCK_ROM = device_creator; +DEFINE_DEVICE_TYPE(MEGADUCK_ROM, megaduck_rom_device, "megaduck_rom", "MegaDuck Carts") -gb_rom_device::gb_rom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_gb_cart_interface( mconfig, *this ) +gb_rom_device::gb_rom_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) + , device_gb_cart_interface(mconfig, *this) { } gb_rom_device::gb_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, GB_STD_ROM, "GB Carts", tag, owner, clock, "gb_rom", __FILE__), - device_gb_cart_interface( mconfig, *this ) + : gb_rom_device(mconfig, GB_STD_ROM, tag, owner, clock) { } gb_rom_tama5_device::gb_rom_tama5_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : gb_rom_device(mconfig, GB_ROM_TAMA5, "GB Tamagotchi", tag, owner, clock, "gb_rom_tama5", __FILE__), m_tama5_data(0), m_tama5_addr(0), m_tama5_cmd(0), m_rtc_reg(0) - { + : gb_rom_device(mconfig, GB_ROM_TAMA5, tag, owner, clock), m_tama5_data(0), m_tama5_addr(0), m_tama5_cmd(0), m_rtc_reg(0) +{ } gb_rom_wisdom_device::gb_rom_wisdom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : gb_rom_device(mconfig, GB_ROM_WISDOM, "GB Wisdom Tree Carts", tag, owner, clock, "gb_rom_wisdom", __FILE__) + : gb_rom_device(mconfig, GB_ROM_WISDOM, tag, owner, clock) { } gb_rom_yong_device::gb_rom_yong_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : gb_rom_device(mconfig, GB_ROM_YONG, "GB Yong Yong Carts", tag, owner, clock, "gb_rom_yong", __FILE__) + : gb_rom_device(mconfig, GB_ROM_YONG, tag, owner, clock) { } gb_rom_atvrac_device::gb_rom_atvrac_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : gb_rom_device(mconfig, GB_ROM_ATVRAC, "GB ATV Racin'", tag, owner, clock, "gb_rom_atvrac", __FILE__) + : gb_rom_device(mconfig, GB_ROM_ATVRAC, tag, owner, clock) { } gb_rom_lasama_device::gb_rom_lasama_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : gb_rom_device(mconfig, GB_ROM_LASAMA, "GB LaSaMa", tag, owner, clock, "gb_rom_lasama", __FILE__) + : gb_rom_device(mconfig, GB_ROM_LASAMA, tag, owner, clock) { } -megaduck_rom_device::megaduck_rom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_gb_cart_interface( mconfig, *this ) +megaduck_rom_device::megaduck_rom_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) + , device_gb_cart_interface(mconfig, *this) { } megaduck_rom_device::megaduck_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MEGADUCK_ROM, "MegaDuck Carts", tag, owner, clock, "megaduck_rom", __FILE__), - device_gb_cart_interface( mconfig, *this ) + : megaduck_rom_device(mconfig, MEGADUCK_ROM, tag, owner, clock) { } diff --git a/src/devices/bus/gameboy/rom.h b/src/devices/bus/gameboy/rom.h index 99a1602efa9..a5439fba598 100644 --- a/src/devices/bus/gameboy/rom.h +++ b/src/devices/bus/gameboy/rom.h @@ -1,7 +1,7 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli, Wilbert Pol -#ifndef __GB_ROM_H -#define __GB_ROM_H +#ifndef MAME_BUS_GAMEBOY_ROM_H +#define MAME_BUS_GAMEBOY_ROM_H #include "gb_slot.h" @@ -13,20 +13,22 @@ class gb_rom_device : public device_t, { public: // construction/destruction - gb_rom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); gb_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override { shared_start(); }; - virtual void device_reset() override { shared_reset(); }; - - void shared_start(); - void shared_reset(); - // reading and writing virtual DECLARE_READ8_MEMBER(read_rom) override; virtual DECLARE_READ8_MEMBER(read_ram) override; virtual DECLARE_WRITE8_MEMBER(write_ram) override; + +protected: + gb_rom_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual void device_start() override { shared_start(); } + virtual void device_reset() override { shared_reset(); } + + void shared_start(); + void shared_reset(); }; // ======================> gb_rom_tama5_device @@ -36,15 +38,16 @@ public: // construction/destruction gb_rom_tama5_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - // reading and writing virtual DECLARE_READ8_MEMBER(read_rom) override; virtual DECLARE_READ8_MEMBER(read_ram) override; virtual DECLARE_WRITE8_MEMBER(write_ram) override; +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + uint16_t m_tama5_data, m_tama5_addr, m_tama5_cmd; uint8_t m_regs[32]; uint8_t m_rtc_reg; @@ -57,13 +60,14 @@ public: // construction/destruction gb_rom_wisdom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override { shared_start(); }; - virtual void device_reset() override { shared_reset(); }; - // reading and writing virtual DECLARE_READ8_MEMBER(read_rom) override; virtual DECLARE_WRITE8_MEMBER(write_bank) override; + +protected: + // device-level overrides + virtual void device_start() override { shared_start(); } + virtual void device_reset() override { shared_reset(); } }; // ======================> gb_rom_yong_device @@ -73,13 +77,14 @@ public: // construction/destruction gb_rom_yong_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override { shared_start(); }; - virtual void device_reset() override { shared_reset(); }; - // reading and writing virtual DECLARE_READ8_MEMBER(read_rom) override; virtual DECLARE_WRITE8_MEMBER(write_bank) override; + +protected: + // device-level overrides + virtual void device_start() override { shared_start(); } + virtual void device_reset() override { shared_reset(); } }; // ======================> gb_rom_atvrac_device @@ -89,13 +94,14 @@ public: // construction/destruction gb_rom_atvrac_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override { shared_start(); }; - virtual void device_reset() override { shared_reset(); }; - // reading and writing virtual DECLARE_READ8_MEMBER(read_rom) override; virtual DECLARE_WRITE8_MEMBER(write_bank) override; + +protected: + // device-level overrides + virtual void device_start() override { shared_start(); } + virtual void device_reset() override { shared_reset(); } }; // ======================> gb_rom_lasama_device @@ -105,13 +111,14 @@ public: // construction/destruction gb_rom_lasama_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override { shared_start(); }; - virtual void device_reset() override { shared_reset(); }; - // reading and writing virtual DECLARE_READ8_MEMBER(read_rom) override; virtual DECLARE_WRITE8_MEMBER(write_bank) override; + +protected: + // device-level overrides + virtual void device_start() override { shared_start(); } + virtual void device_reset() override { shared_reset(); } }; @@ -121,27 +128,29 @@ class megaduck_rom_device :public device_t, { public: // construction/destruction - megaduck_rom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); megaduck_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - // reading and writing virtual DECLARE_READ8_MEMBER(read_rom) override; virtual DECLARE_WRITE8_MEMBER(write_bank) override; virtual DECLARE_WRITE8_MEMBER(write_ram) override; + +protected: + megaduck_rom_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; }; // device type definition -extern const device_type GB_STD_ROM; -extern const device_type GB_ROM_TAMA5; -extern const device_type GB_ROM_WISDOM; -extern const device_type GB_ROM_YONG; -extern const device_type GB_ROM_ATVRAC; -extern const device_type GB_ROM_LASAMA; +DECLARE_DEVICE_TYPE(GB_STD_ROM, gb_rom_device) +DECLARE_DEVICE_TYPE(GB_ROM_TAMA5, gb_rom_tama5_device) +DECLARE_DEVICE_TYPE(GB_ROM_WISDOM, gb_rom_wisdom_device) +DECLARE_DEVICE_TYPE(GB_ROM_YONG, gb_rom_yong_device) +DECLARE_DEVICE_TYPE(GB_ROM_ATVRAC, gb_rom_atvrac_device) +DECLARE_DEVICE_TYPE(GB_ROM_LASAMA, gb_rom_lasama_device) -extern const device_type MEGADUCK_ROM; +DECLARE_DEVICE_TYPE(MEGADUCK_ROM, megaduck_rom_device) -#endif +#endif // MAME_BUS_GAMEBOY_ROM_H diff --git a/src/devices/bus/gamegear/ggext.cpp b/src/devices/bus/gamegear/ggext.cpp index 3be7f8a1080..4cdd0d59afc 100644 --- a/src/devices/bus/gamegear/ggext.cpp +++ b/src/devices/bus/gamegear/ggext.cpp @@ -18,7 +18,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type GG_EXT_PORT = device_creator; +DEFINE_DEVICE_TYPE(GG_EXT_PORT, gg_ext_port_device, "gg_ext_port", "Game Gear EXT Port") @@ -56,10 +56,11 @@ device_gg_ext_port_interface::~device_gg_ext_port_interface() //------------------------------------------------- gg_ext_port_device::gg_ext_port_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, GG_EXT_PORT, "EXT Port", tag, owner, clock, "gg_ext_port", __FILE__), - device_slot_interface(mconfig, *this), m_device(nullptr), - m_th_pin_handler(*this), - m_pixel_handler(*this) + device_t(mconfig, GG_EXT_PORT, tag, owner, clock), + device_slot_interface(mconfig, *this), + m_device(nullptr), + m_th_pin_handler(*this), + m_pixel_handler(*this) { } diff --git a/src/devices/bus/gamegear/ggext.h b/src/devices/bus/gamegear/ggext.h index cdcbcb0dc00..64ac953b3f4 100644 --- a/src/devices/bus/gamegear/ggext.h +++ b/src/devices/bus/gamegear/ggext.h @@ -10,10 +10,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_GAMEGEAR_GGEXT_H +#define MAME_BUS_GAMEGEAR_GGEXT_H -#ifndef __GG_EXT_PORT__ -#define __GG_EXT_PORT__ +#pragma once @@ -55,9 +55,9 @@ public: virtual ~gg_ext_port_device(); // static configuration helpers - template static devcb_base &set_th_input_handler(device_t &device, _Object object) { return downcast(device).m_th_pin_handler.set_callback(object); } + template static devcb_base &set_th_input_handler(device_t &device, Object &&cb) { return downcast(device).m_th_pin_handler.set_callback(std::forward(cb)); } - template static devcb_base &set_pixel_handler(device_t &device, _Object object) { return downcast(device).m_pixel_handler.set_callback(object); } + template static devcb_base &set_pixel_handler(device_t &device, Object &&cb) { return downcast(device).m_pixel_handler.set_callback(std::forward(cb)); } // Currently, only the support for SMS Controller Adaptor is emulated, // for when SMS Compatibility mode is enabled. In that mode, the 10 pins @@ -100,13 +100,14 @@ class device_gg_ext_port_interface : public device_slot_card_interface { public: // construction/destruction - device_gg_ext_port_interface(const machine_config &mconfig, device_t &device); virtual ~device_gg_ext_port_interface(); - virtual uint8_t peripheral_r() { return 0xff; }; - virtual void peripheral_w(uint8_t data) { }; + virtual uint8_t peripheral_r() { return 0xff; } + virtual void peripheral_w(uint8_t data) { } protected: + device_gg_ext_port_interface(const machine_config &mconfig, device_t &device); + gg_ext_port_device *m_port; }; @@ -118,4 +119,4 @@ extern const device_type GG_EXT_PORT; SLOT_INTERFACE_EXTERN( gg_ext_port_devices ); -#endif +#endif // MAME_BUS_GAMEGEAR_GGEXT_H diff --git a/src/devices/bus/gamegear/smsctrladp.cpp b/src/devices/bus/gamegear/smsctrladp.cpp index e829dd80e5e..cfa70510101 100644 --- a/src/devices/bus/gamegear/smsctrladp.cpp +++ b/src/devices/bus/gamegear/smsctrladp.cpp @@ -16,7 +16,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type SMS_CTRL_ADAPTOR = device_creator; +DEFINE_DEVICE_TYPE(SMS_CTRL_ADAPTOR, sms_ctrl_adaptor_device, "sms_ctrl_adaptor", "SMS Controller Adaptor") //************************************************************************** @@ -28,7 +28,7 @@ const device_type SMS_CTRL_ADAPTOR = device_creator; //------------------------------------------------- sms_ctrl_adaptor_device::sms_ctrl_adaptor_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, SMS_CTRL_ADAPTOR, "SMS Controller Adaptor", tag, owner, clock, "sms_ctrl_adaptor", __FILE__), + device_t(mconfig, SMS_CTRL_ADAPTOR, tag, owner, clock), device_gg_ext_port_interface(mconfig, *this), m_subctrl_port(*this, "ctrl") { @@ -41,7 +41,6 @@ sms_ctrl_adaptor_device::sms_ctrl_adaptor_device(const machine_config &mconfig, void sms_ctrl_adaptor_device::device_start() { - m_subctrl_port->device_start(); } diff --git a/src/devices/bus/gamegear/smsctrladp.h b/src/devices/bus/gamegear/smsctrladp.h index 4a4b9958ef5..8d139eb0371 100644 --- a/src/devices/bus/gamegear/smsctrladp.h +++ b/src/devices/bus/gamegear/smsctrladp.h @@ -7,10 +7,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_GAMEGEAR_SMSCRTLADP_H +#define MAME_BUS_GAMEGEAR_SMSCRTLADP_H -#ifndef __SMS_CTRL_ADAPTOR__ -#define __SMS_CTRL_ADAPTOR__ +#pragma once #include "ggext.h" @@ -49,7 +49,7 @@ private: // device type definition -extern const device_type SMS_CTRL_ADAPTOR; +DECLARE_DEVICE_TYPE(SMS_CTRL_ADAPTOR, sms_ctrl_adaptor_device) -#endif +#endif // MAME_BUS_GAMEGEAR_SMSCRTLADP_H diff --git a/src/devices/bus/gba/gba_slot.cpp b/src/devices/bus/gba/gba_slot.cpp index 9df15197487..07af56d800a 100644 --- a/src/devices/bus/gba/gba_slot.cpp +++ b/src/devices/bus/gba/gba_slot.cpp @@ -12,11 +12,463 @@ #include "emu.h" #include "gba_slot.h" +namespace { + +struct gba_chip_fix_conflict_item +{ + char game_code[5]; + uint32_t chip; +}; + +const gba_chip_fix_conflict_item gba_chip_fix_conflict_list[] = +{ + { "ABFJ", GBA_CHIP_SRAM }, // 0059 - Breath of Fire - Ryuu no Senshi (JPN) + { "AHMJ", GBA_CHIP_EEPROM_4K }, // 0364 - Dai-Mahjong (JPN) + { "A2GJ", GBA_CHIP_EEPROM_64K }, // 0399 - Advance GT2 (JPN) + { "AK9E", GBA_CHIP_EEPROM_4K }, // 0479 - Medabots AX - Rokusho Version (USA) + { "AK8E", GBA_CHIP_EEPROM_4K }, // 0480 - Medabots AX - Metabee Version (USA) + { "AK9P", GBA_CHIP_EEPROM_4K }, // 0515 - Medabots AX - Rokusho Version (EUR) + { "AGIJ", GBA_CHIP_EEPROM_4K }, // 0548 - Medarot G - Kuwagata Version (JPN) + { "A3DJ", GBA_CHIP_EEPROM_4K }, // 0567 - Disney Sports - American Football (JPN) + { "AF7J", GBA_CHIP_EEPROM_64K }, // 0605 - Tokimeki Yume Series 1 - Ohanaya-san ni Narou! (JPN) + { "AH7J", GBA_CHIP_EEPROM_64K }, // 0617 - Nakayoshi Pet Advance Series 1 - Kawaii Hamster (JPN) + { "AGHJ", GBA_CHIP_EEPROM_4K }, // 0620 - Medarot G - Kabuto Version (JPN) + { "AR8E", GBA_CHIP_SRAM }, // 0727 - Rocky (USA) + { "ALUE", GBA_CHIP_EEPROM_4K }, // 0751 - Super Monkey Ball Jr. (USA) + { "A3DE", GBA_CHIP_EEPROM_4K }, // 0800 - Disney Sports - Football (USA) + { "A87J", GBA_CHIP_EEPROM_64K }, // 0817 - Ohanaya-San Monogatari GBA (JPN) + { "A56J", GBA_CHIP_EEPROM_64K }, // 0827 - DokiDoki Cooking Series 1 - Komugi-chan no Happy Cake (JPN) + { "AUSJ", GBA_CHIP_FLASH }, // 0906 - One Piece - Mezase! King of Berries (JPN) + { "ANTJ", GBA_CHIP_SRAM }, // 0950 - Nippon Pro Mahjong Renmei Kounin - Tetsuman Advance (JPN) + { "A8OJ", GBA_CHIP_EEPROM_64K }, // 0988 - DokiDoki Cooking Series 2 - Gourmet Kitchen - Suteki na Obentou (JPN) + { "AK8P", GBA_CHIP_EEPROM_4K }, // 1022 - Medabots AX - Metabee Version (EUR) + { "A6OJ", GBA_CHIP_EEPROM_64K }, // 1092 - Onimusha Tactics (JPN) + { "A6OE", GBA_CHIP_EEPROM_64K }, // 1241 - Onimusha Tactics (USA) + { "A6OP", GBA_CHIP_EEPROM_64K }, // 1288 - Onimusha Tactics (EUR) + { "BKME", GBA_CHIP_EEPROM_4K }, // 1545 - Kim Possible 2 - Drakken's Demise (USA) + { "BDKJ", GBA_CHIP_EEPROM_64K }, // 1555 - Digi Communication 2 in 1 Datou! Black Gemagema Dan (JPN) + { "BR4J", GBA_CHIP_FLASH }, // 1586 - Rockman EXE 4.5 - Real Operation (JPN) + { "BG8J", GBA_CHIP_EEPROM_64K }, // 1853 - Ganbare! Dodge Fighters (JPN) + { "AROP", GBA_CHIP_EEPROM_4K }, // 1862 - Rocky (EUR) +// "A2YE" - 1906 - Top Gun - Combat Zones (USA) - multiple NVRAM chips detected, but none present (protection against emu?) + { "BKMJ", GBA_CHIP_EEPROM_4K }, // 2039 - Kim Possible (JPN) + { "BKEJ", GBA_CHIP_EEPROM_64K }, // 2047 - Konjiki no Gashbell - The Card Battle for GBA (JPN) + { "BKMP", GBA_CHIP_EEPROM_4K }, // 2297 - Kim Possible 2 - Drakken's Demise (EUR) + { "BUHJ", GBA_CHIP_EEPROM_4K }, // 2311 - Ueki no Housoku Shinki Sakuretsu! Nouryokumono Battle (JPN) + { "BYUJ", GBA_CHIP_EEPROM_64K }, // 2322 - Yggdra Union (JPN) +}; + +struct gba_chip_fix_item +{ + char game_code[5]; +}; + +const gba_chip_fix_item gba_chip_fix_eeprom_list[] = +{ + // gba scan no. 7 + { "AKTJ" }, // 0145 - Hello Kitty Collection - Miracle Fashion Maker (JPN) + { "AISP" }, // 0185 - International Superstar Soccer (EUR) + { "AKGP" }, // 0204 - Mech Platoon (EUR) + { "AX2E" }, // 0207 - Dave Mirra Freestyle BMX 2 (USA) + { "AASJ" }, // 0234 - World Advance Soccer - Shouri heno Michi (JPN) + { "AA2J" }, // 0237 - Super Mario World - Super Mario Advance 2 (JPN) + { "AJWJ" }, // 0242 - Jikkyou World Soccer Pocket (JPN) + { "AABE" }, // 0244 - American Bass Challenge (USA) + { "AWXJ" }, // 0254 - ESPN Winter X-Games Snowboarding 2002 (JPN) + { "AALJ" }, // 0259 - Kidou Tenshi Angelic Layer - Misaki to Yume no Tenshi-tachi (JPN) + { "AKGE" }, // 0263 - Mech Platoon (USA) + { "AGLJ" }, // 0273 - Tomato Adventure (JPN) + { "AWIJ" }, // 0274 - Hyper Sports 2002 Winter (JPN) + { "APNJ" }, // 0286 - Pinky Monkey Town (JPN) + { "AA2E" }, // 0288 - Super Mario World - Super Mario Advance 2 (USA) + { "AX2P" }, // 0293 - Dave Mirra Freestyle BMX 2 (EUR) + { "AMGP" }, // 0296 - ESPN Great Outdoor Games - Bass Tournament (EUR) + { "AMHJ" }, // 0308 - Bomberman Max 2 - Bomberman Version (JPN) + { "AGNJ" }, // 0311 - Goemon - New Age Shutsudou! (JPN) + { "AMYJ" }, // 0324 - Bomberman Max 2 - Max Version (JPN) + { "AT3E" }, // 0326 - Tony Hawk's Pro Skater 3 (USA) + { "AHHE" }, // 0327 - High Heat - Major League Baseball 2003 (USA) + { "ANLE" }, // 0328 - NHL 2002 (USA) + { "AAGJ" }, // 0345 - Angelique (JPN) + { "ABJP" }, // 0351 - Broken Sword - The Shadow of the Templars (EUR) + { "AKVJ" }, // 0357 - K-1 Pocket Grand Prix (JPN) + { "AKGJ" }, // 0361 - Kikaika Guntai - Mech Platoon (JPN) + { "ADDJ" }, // 0362 - Diadroids World - Evil Teikoku no Yabou (JPN) + { "ABJE" }, // 0365 - Broken Sword - The Shadow of the Templars (USA) + { "AABP" }, // 0380 - Super Black Bass Advance (EUR) + { "AA2P" }, // 0390 - Super Mario World - Super Mario Advance 2 (EUR) + { "A2GJ" }, // 0399 - Advance GT2 (JPN) + { "AEWJ" }, // 0400 - Ui-Ire - World Soccer Winning Eleven (JPN) + { "ADPJ" }, // 0417 - Doraemon - Dokodemo Walker (JPN) + { "AN5J" }, // 0420 - Kawa no Nushi Tsuri 5 - Fushigi no Mori Kara (JPN) + { "ACBJ" }, // 0421 - Gekitou! Car Battler Go!! (JPN) + { "AHIJ" }, // 0426 - Hitsuji no Kimochi (JPN) + { "ATFP" }, // 0429 - Alex Ferguson's Player Manager 2002 (EUR) + { "AFUJ" }, // 0431 - Youkaidou (JPN) + { "AEPP" }, // 0435 - Sheep (EUR) + { "AMHE" }, // 0442 - Bomberman Max 2 - Blue Advance (USA) + { "AMYE" }, // 0443 - Bomberman Max 2 - Red Advance (USA) + { "AT3F" }, // 0457 - Tony Hawk's Pro Skater 3 (FRA) + { "ARJJ" }, // 0497 - Custom Robo GX (JPN) + { "AFCJ" }, // 0521 - RockMan & Forte (JPN) + { "ANJE" }, // 0528 - Madden NFL 2003 (USA) + { "AN7J" }, // 0533 - Famista Advance (JPN) + { "ATYJ" }, // 0540 - Gambler Densetsu Tetsuya - Yomigaeru Densetsu (JPN) + { "AXBJ" }, // 0551 - Black Matrix Zero (JPN) + { "A3AE" }, // 0580 - Yoshi's Island - Super Mario Advance 3 (USA) + { "A3AJ" }, // 0582 - Super Mario Advance 3 (JPN) + { "AZUJ" }, // 0595 - Street Fighter Zero 3 - Upper (JPN) + { "ALOE" }, // 0600 - The Lord of the Rings - The Fellowship of the Ring (USA) + { "A2SE" }, // 0602 - Spyro 2 - Season of Flame (USA) + { "AF7J" }, // 0605 - Tokimeki Yume Series 1 - Ohanaya-san ni Narou! (JPN) + { "A3AP" }, // 0610 - Yoshi's Island - Super Mario Advance 3 (EUR) + { "AH7J" }, // 0617 - Nakayoshi Pet Advance Series 1 - Kawaii Hamster (JPN) + { "AI7J" }, // 0618 - Nakayoshi Pet Advance Series 2 - Kawaii Koinu (JPN) + { "AN3J" }, // 0619 - Nakayoshi Pet Advance Series 3 - Kawaii Koneko (JPN) + { "AAPJ" }, // 0632 - Metalgun Slinger (JPN) + { "A2JJ" }, // 0643 - J.League - Winning Eleven Advance 2002 (JPN) + { "AHXJ" }, // 0649 - High Heat - Major League Baseball 2003 (JPN) + { "AHAJ" }, // 0651 - Hamster Paradise Advance (JPN) + { "APUJ" }, // 0653 - PukuPuku Tennen Kairanban (JPN) + { "A2SP" }, // 0673 - Spyro 2 - Season of Flame (EUR) + { "AN9J" }, // 0675 - Tales of the World - Narikiri Dungeon 2 (JPN) + { "ACBE" }, // 0683 - Car Battler Joe (USA) + { "AT6E" }, // 0693 - Tony Hawk's Pro Skater 4 (USA) + { "ALOP" }, // 0702 - The Lord of the Rings - The Fellowship of the Ring (EUR) + { "A63J" }, // 0710 - Kawaii Pet Shop Monogatari 3 (JPN) + { "AAXJ" }, // 0748 - Fantastic Maerchen - Cake-yasan Monogatari (JPN) + { "AZLE" }, // 0763 - The Legend of Zelda - A Link to the Past & Four Swords (USA) + { "AZUP" }, // 0765 - Street Fighter Alpha 3 - Upper (EUR) + { "AJKJ" }, // 0769 - Jikkyou World Soccer Pocket 2 (JPN) + { "AB3E" }, // 0781 - Dave Mirra Freestyle BMX 3 (USA) + { "A2IJ" }, // 0791 - Magi Nation (JPN) + { "AK7J" }, // 0792 - Klonoa Heroes - Densetsu no Star Medal (JPN) + { "A2HJ" }, // 0794 - Hajime no Ippo - The Fighting! (JPN) + { "ALNE" }, // 0795 - Lunar Legend (USA) + { "AUCJ" }, // 0808 - Uchuu Daisakusen Choco Vader - Uchuu Kara no Shinryakusha (JPN) + { "A59J" }, // 0809 - Toukon Heat (JPN) + { "ALJE" }, // 0815 - Sea Trader - Rise of Taipan (USA) + { "A87J" }, // 0817 - Ohanaya-San Monogatari GBA (JPN) + { "A56J" }, // 0827 - DokiDoki Cooking Series 1 - Komugi-chan no Happy Cake (JPN) + { "AHZJ" }, // 0830 - Higanbana (JPN) + { "A8BP" }, // 0832 - Medabots - Metabee Version (EUR) + { "A2OJ" }, // 0833 - K-1 Pocket Grand Prix 2 (JPN) + { "AY2P" }, // 0843 - International Superstar Soccer Advance (EUR) + { "ANSJ" }, // 0845 - Marie, Elie & Anis no Atelier - Soyokaze Kara no Dengon (JPN) + { "ACOJ" }, // 0865 - Manga-ka Debut Monogatari (JPN) + { "AZLP" }, // 0870 - The Legend of Zelda - A Link to the Past & Four Swords (EUR) + { "AWKJ" }, // 0879 - Wagamama Fairy Mirumo de Pon! - Ougon Maracas no Densetsu (JPN) + { "AZUE" }, // 0886 - Street Fighter Alpha 3 - Upper (USA) + { "AZLJ" }, // 0887 - Zelda no Densetsu - Kamigami no Triforce & 4tsu no Tsurugi (JPN) + { "A6ME" }, // 0889 - MegaMan & Bass (USA) + { "A64J" }, // 0915 - Shimura Ken no Baka Tonosama (JPN) + { "A9HJ" }, // 0917 - Dragon Quest Monsters - Caravan Heart (JPN) + { "AMHP" }, // 0929 - Bomberman Max 2 - Blue Advance (EUR) + { "AMYP" }, // 0930 - Bomberman Max 2 - Red Advance (EUR) + { "AMGJ" }, // 0943 - Exciting Bass (JPN) + { "A5KJ" }, // 0946 - Medarot 2 Core - Kabuto Version (JPN) + { "A4LJ" }, // 0949 - Sylvania Family 4 - Meguru Kisetsu no Tapestry (JPN) + { "A2VJ" }, // 0955 - Kisekko Gurumi - Chesty to Nuigurumi-tachi no Mahou no Bouken (JPN) + { "A5QJ" }, // 0956 - Medarot 2 Core - Kuwagata Version (JPN) + { "AZBJ" }, // 0958 - Bass Tsuri Shiyouze! (JPN) + { "AO2J" }, // 0961 - Oshare Princess 2 (JPN) + { "AB4J" }, // 0965 - Summon Night - Craft Sword Monogatari (JPN) + { "AZAJ" }, // 0971 - Azumanga Daiou Advance (JPN) + { "AF3J" }, // 0974 - Zero One (JPN) + { "A8OJ" }, // 0988 - DokiDoki Cooking Series 2 - Gourmet Kitchen - Suteki na Obentou (JPN) + { "AT3D" }, // 1016 - Tony Hawk's Pro Skater 3 (GER) + { "A6MP" }, // 1031 - MegaMan & Bass (EUR) + { "ANNJ" }, // 1032 - Gekitou Densetsu Noah - Dream Management (JPN) + { "AFNJ" }, // 1036 - Angel Collection - Mezase! Gakuen no Fashion Leader (JPN) + { "ALFP" }, // 1041 - Dragon Ball Z - The Legacy of Goku II (EUR) + { "A9TJ" }, // 1055 - Metal Max 2 Kai (JPN) + { "ALFE" }, // 1070 - Dragon Ball Z - The Legacy of Goku II (USA) + { "BHCJ" }, // 1074 - Hamster Monogatari Collection (JPN) + { "BKKJ" }, // 1075 - Minna no Shiiku Series - Boku no Kabuto-Kuwagata (JPN) + { "BKIJ" }, // 1083 - Nakayoshi Pet Advance Series 4 - Kawaii Koinu Kogata Inu (JPN) + { "BGBJ" }, // 1084 - Get! - Boku no Mushi Tsukamaete (JPN) + { "A82J" }, // 1085 - Hamster Paradise - Pure Heart (JPN) + { "U3IJ" }, // 1087 - Bokura no Taiyou - Taiyou Action RPG (JPN) + { "A6OJ" }, // 1092 - Onimusha Tactics (JPN) + { "AN8J" }, // 1102 - Tales of Phantasia (JPN) + { "AC4J" }, // 1104 - Meitantei Conan - Nerawareta Tantei (JPN) + { "A8ZJ" }, // 1108 - Shin Megami Tensei Devil Children - Puzzle de Call! (JPN) + { "BGMJ" }, // 1113 - Gensou Maden Saiyuuki - Hangyaku no Toushin-taishi (JPN) + { "BMDE" }, // 1115 - Madden NFL 2004 (USA) + { "BO3J" }, // 1141 - Oshare Princess 3 (JPN) + { "U3IE" }, // 1145 - Boktai - The Sun is in Your Hand (USA) + { "BMRJ" }, // 1194 - Matantei Loki Ragnarok - Gensou no Labyrinth (JPN) + { "BLME" }, // 1204 - Lizzie McGuire (USA) + { "AOWE" }, // 1208 - Spyro - Attack of the Rhynocs (USA) + { "BTOE" }, // 1209 - Tony Hawk's Underground (USA) + { "BFJE" }, // 1212 - Frogger's Journey - The Forgotten Relic (USA) + { "A88P" }, // 1229 - Mario & Luigi - Superstar Saga (EUR) + { "BEYP" }, // 1236 - Beyblade VForce - Ultimate Blader Jam (EUR) + { "A85J" }, // 1239 - Sanrio Puroland All Characters (JPN) + { "BMZJ" }, // 1240 - Zooo (JPN) + { "A6OE" }, // 1241 - Onimusha Tactics (USA) + { "AOWP" }, // 1253 - Spyro Adventure (EUR) + { "A88E" }, // 1260 - Mario & Luigi - Superstar Saga (USA) + { "BEYE" }, // 1262 - Beyblade VForce - Ultimate Blader Jam (USA) + { "BCME" }, // 1264 - CIMA - The Enemy (USA) + { "A88J" }, // 1266 - Mario & Luigi RPG (JPN) + { "A5CP" }, // 1269 - Sim City 2000 (EUR) + { "BGAJ" }, // 1277 - SD Gundam G Generation (JPN) + { "A6OP" }, // 1288 - Onimusha Tactics (EUR) + { "BLMP" }, // 1289 - Lizzie McGuire (EUR) + { "ASIE" }, // 1295 - The Sims - Bustin' Out (USA) + { "BISJ" }, // 1299 - Koinu-Chan no Hajimete no Osanpo - Koinu no Kokoro Ikusei Game (JPN) + { "BK3J" }, // 1305 - Card Captor Sakura - Sakura Card de Mini Game (JPN) + { "A4GJ" }, // 1306 - Konjiki no Gashbell!! - Unare! Yuujou no Zakeru (JPN) + { "BTAJ" }, // 1315 - Astro Boy - Tetsuwan Atom (JPN) + { "BS5J" }, // 1322 - Sylvanian Family - Yousei no Stick to Fushigi no Ki (JPN) + { "A5CE" }, // 1326 - Sim City 2000 (USA) + { "B4PJ" }, // 1342 - The Sims (JPN) + { "BDTJ" }, // 1383 - Downtown - Nekketsu Monogatari EX (JPN) + { "B08J" }, // 1391 - One Piece - Going Baseball (JPN) + { "AWUP" }, // 1394 - Sabre Wulf (EUR) + { "BRPJ" }, // 1421 - Liliput Oukoku (JPN) + { "BPNJ" }, // 1435 - Pika Pika Nurse Monogatari - Nurse Ikusei Game (JPN) + { "BP3J" }, // 1446 - Pia Carrot he Youkoso!! 3.3 (JPN) + { "BKCJ" }, // 1461 - Crayon Shin-Chan - Arashi no Yobu Cinema-Land no Daibouken! (JPN) + { "BGNJ" }, // 1464 - Battle Suit Gundam Seed - Battle Assault (JPN) + { "U3IP" }, // 1465 - Boktai - The Sun is in Your Hand (EUR) + { "BDTE" }, // 1484 - River City Ransom EX (USA) + { "BHTE" }, // 1485 - Harry Potter and the Prisoner of Azkaban (USA) + { "FZLE" }, // 1494 - Classic NES Series - The Legend of Zelda (USA) + { "FEBE" }, // 1499 - Classic NES Series - ExciteBike (USA) + { "BUCE" }, // 1505 - Ultimate Card Games (USA) + { "AWUE" }, // 1511 - Sabre Wulf (USA) + { "B2DP" }, // 1522 - Donkey Kong Country 2 (EUR) + { "BHTJ" }, // 1528 - Harry Potter to Azkaban no Shuujin (JPN) + { "A5SJ" }, // 1534 - Oshare Wanko (JPN) + { "B2DJ" }, // 1541 - Super Donkey Kong 2 (JPN) + { "BTAE" }, // 1551 - Astro Boy - Omega Factor (USA) + { "BKOJ" }, // 1553 - Kaiketsu Zorori to Mahou no Yuuenchi (JPN) + { "BDKJ" }, // 1555 - Digi Communication 2 in 1 Datou! Black Gemagema Dan (JPN) + { "U32J" }, // 1567 - Zoku Bokura no Taiyou - Taiyou Shounen Django (JPN) + { "ALFJ" }, // 1573 - Dragon Ball Z - The Legacy of Goku II - International (JPN) + { "BGHJ" }, // 1575 - Gakkou no Kaidan - Hyakuyobako no Fuuin (JPN) + { "BZOJ" }, // 1576 - Zero One SP (JPN) + { "BDXJ" }, // 1587 - B-Densetsu! Battle B-Daman Moero! B-Kon (JPN) + { "BNBJ" }, // 1589 - Himawari Doubutsu Byouin Pet no Oishasan (JPN) + { "BMFE" }, // 1595 - Madden NFL 2005 (USA) + { "FMRJ" }, // 1599 - Famicom Mini Series 23 - Metroid (JPN) + { "FPTJ" }, // 1600 - Famicom Mini Series 24 - Hikari Shinwa - Palutena no Kagame (JPN) + { "FLBJ" }, // 1601 - Famicom Mini Series 25 - The Legend of Zelda 2 - Link no Bouken (JPN) + { "FSDJ" }, // 1606 - Famicom Mini Series 30 - SD Gundam World - Gachapon Senshi Scramble Wars (JPN) + { "BSKJ" }, // 1611 - Summon Night - Craft Sword Monogatari 2 (JPN) + { "BG3E" }, // 1628 - Dragon Ball Z - Buu's Fury (USA) + { "BECJ" }, // 1644 - Angel Collection 2 - Pichimo ni Narou (JPN) + { "B2TE" }, // 1672 - Tony Hawk's Underground 2 (USA) + { "BTYE" }, // 1689 - Ty the Tasmanian Tiger 2 - Bush Rescue (USA) + { "BT2E" }, // 1695 - Teenage Mutant Ninja Turtles 2 - Battlenexus (USA) + { "U32E" }, // 1697 - Boktai 2 - Solar Boy Django (USA) + { "BFDJ" }, // 1708 - Fruit Mura no Doubutsu Tachi (JPN) + { "BPQJ" }, // 1717 - PukuPuku Tennen Kairanban - Koi no Cupid Daisakusen (JPN) + { "BZMJ" }, // 1721 - The Legend of Zelda - Fushigi no Boushi (JPN) + { "FLBE" }, // 1723 - Classic NES Series - Zelda II - The Adventure of Link (USA) + { "BZMP" }, // 1736 - The Legend of Zelda - The Minish Cap (EUR) + { "B2DE" }, // 1754 - Donkey Kong Country 2 (USA) + { "BT2P" }, // 1758 - Teenage Mutant Ninja Turtles 2 - Battle Nexus (EUR) + { "BB2E" }, // 1759 - Beyblade G-Revolution (USA) + { "BRGE" }, // 1761 - Yu-Yu-Hakusho - Tournament Tactics (USA) + { "BFJJ" }, // 1766 - Frogger - Kodaibunmei no Nazo (JPN) + { "BB2P" }, // 1776 - Beyblade G-Revolution (EUR) + { "BSFJ" }, // 1791 - Sylvania Family - Fashion Designer ni Naritai (JPN) + { "BPIE" }, // 1798 - It's Mr Pants (USA) + { "B3PJ" }, // 1809 - Pukupuku Tennen Kairanban Youkoso Illusion Land (JPN) + { "BHDJ" }, // 1812 - Hello Idol Debut (JPN) + { "BKUJ" }, // 1823 - Shingata Medarot - Kuwagata Version (JPN) + { "BKVJ" }, // 1824 - Shingata Medarot - Kabuto Version (JPN) + { "BLIJ" }, // 1825 - Little Patissier Cake no Oshiro (JPN) + { "B3TJ" }, // 1833 - Tales of the World - Narikiri Dungeon 3 (JPN) + { "B2KJ" }, // 1836 - Kiss x Kiss - Seirei Gakuen (JPN) + { "A9BE" }, // 1837 - Medabots - Rokusho Version (USA) + { "BZME" }, // 1842 - The Legend of Zelda - The Minish Cap (USA) + { "B8MJ" }, // 1845 - Mario Party Advance (JPN) + { "A8BE" }, // 1871 - Medabots - Metabee Version (USA) + { "BTAP" }, // 1879 - Astro Boy - Omega Factor (EUR) + { "FSRJ" }, // 1916 - Famicom Mini Series - Dai 2 Ji Super Robot Taisen (JPN) + { "B8ME" }, // 1931 - Mario Party Advance (USA) + { "BO8K" }, // 1938 - One Piece - Going Baseball Haejeok Yaku (KOR) + { "B4ZJ" }, // 1941 - Rockman Zero 4 (JPN) + { "BQAJ" }, // 1953 - Meitantei Conan Akatsuki no Monument (JPN) + { "BIPJ" }, // 1956 - One Piece - Dragon Dream (JPN) + { "BQBJ" }, // 1970 - Konchu Monster Battle Master (JPN) + { "BQSJ" }, // 1971 - Konchu Monster Battle Stadium (JPN) + { "BWXJ" }, // 1982 - Wanko Mix Chiwanko World (JPN) + { "A9TJ" }, // 1984 - Metal Max 2 - Kai Version (JPN) + { "U32P" }, // 1992 - Boktai 2 - Solar Boy Django (EUR) + { "B4RJ" }, // 2005 - Shikakui Atama wo Marukusuru Advance - Kokugo Sansu Rika Shakai (JPN) + { "B4KJ" }, // 2007 - Shikakui Atama wo Marukusuru Advance - Kanji Keisan (JPN) + { "BFCJ" }, // 2019 - Fantasic Children (JPN) + { "BCSP" }, // 2020 - 2 in 1 - V-Rally 3 - Stuntman (EUR) + { "BM2J" }, // 2024 - Momotarou Densetsu G Gold Deck wo Tsukure! (JPN) + { "BEJJ" }, // 2026 - Erementar Gerad (JPN) + { "B5AP" }, // 2034 - Crash & Spyro - Super Pack Volume 1 (EUR) + { "B52P" }, // 2035 - Crash & Spyro - Super Pack Volume 2 (EUR) + { "BFMJ" }, // 2046 - Futari wa Precure Max Heart Maji! Maji! Fight de IN Janai (JPN) + { "BKEJ" }, // 2047 - Konjiki no Gashbell - The Card Battle for GBA (JPN) + { "U33J" }, // 2048 - Shin Bokura no Taiyou - Gyakushuu no Sabata (JPN) + { "BHFJ" }, // 2050 - Twin Series 4 - Ham Ham Monster EX + Fantasy Puzzle Hamster Monogatari (JPN) + { "BMWJ" }, // 2051 - Twin Series 5 - Wan Wan Meitantei EX + Mahou no Kuni no Keaki-Okusan Monogatari (JPN) + { "BMZP" }, // 2055 - Zooo (EUR) + { "B6ME" }, // 2057 - Madden NFL 06 (USA) + { "BT4E" }, // 2058 - Dragon Ball GT - Transformation (USA) + { "B2OJ" }, // 2071 - Pro Mahjong - Tsuwamono GBA (JPN) + { "BX4E" }, // 2079 - 2 in 1 - Tony Hawk's Underground + Kelly Slater's Pro Surfer (USA) + { "BRLE" }, // 2097 - Rebelstar - Tactical Command (USA) + { "BX5P" }, // 2100 - Rayman - 10th Anniversary (EUR) + { "B4ZP" }, // 2108 - MegaMan Zero 4 (EUR) + { "BX5E" }, // 2123 - Rayman - 10th Anniversary (USA) + { "BGXJ" }, // 2143 - Gunstar Super Heroes (JPN) + { "B4ZE" }, // 2144 - Megaman Zero 4 (USA) + { "B53P" }, // 2164 - Crash & Spyro - Super Pack Volume 3 (EUR) + { "B26E" }, // 2169 - World Poker Tour (USA) + { "BH9E" }, // 2172 - Tony Hawk's American Sk8land (USA) + { "BHGE" }, // 2177 - Gunstar Super Heroes (USA) + { "BCMJ" }, // 2178 - Frontier Stories (JPN) + { "BUZE" }, // 2182 - Ultimate Arcade Games (USA) + { "BTVE" }, // 2198 - Ty the Tasmanian Tiger 3 - Night of the Quinkan (USA) + { "BHGP" }, // 2199 - Gunstar Future Heroes (EUR) + { "BH9X" }, // 2214 - Tony Hawk's American Sk8land (EUR) + { "BWIP" }, // 2231 - Win X Club (EUR) + { "BQTP" }, // 2232 - My Pet Hotel (EUR) + { "B4LJ" }, // 2245 - Sugar Sugar Une - Heart Gaippai! Moegi Gakuen (JPN) + { "B3CJ" }, // 2249 - Summon Night Craft Sword Monogatari - Hajimari no Ishi (JPN) + { "A4GE" }, // 2260 - ZatchBell! - Electric Arena (USA) + { "BLFE" }, // 2264 - 2 in 1 - Dragon Ball Z 1 and 2 (USA) + { "BO2J" }, // 2272 - Ochainu no Bouken Jima (JPN) + { "BWIE" }, // 2276 - WinX Club (USA) + { "BGQE" }, // 2279 - Greg Hastings' Tournament Paintball Max'd (USA) + { "BURE" }, // 2298 - Paws & Claws - Pet Resort (USA) + { "A3AC" }, // 2303 - Yaoxi Dao (CHN) + { "AN8E" }, // 2305 - Tales of Phantasia (USA) + { "BZWJ" }, // 2309 - Akagi (JPN) + { "BT8P" }, // 2316 - Teenage Mutant Ninja Turtles Double Pack (EUR) + { "BYUJ" }, // 2322 - Yggdra Union (JPN) + { "AN3E" }, // 2324 - Catz (USA) + { "AN8P" }, // 2325 - Tales of Phantasia (EUR) + { "AA2C" }, // 2332 - Chaoji Maliou Shijie (CHN) + { "BWOP" }, // 2333 - World Poker Tour (EUR) + { "BKCS" }, // 2334 - Shinchan - Aventuras en Cineland (ESP) + { "BC2J" }, // 2341 - Crayon Shin chan - Densetsu wo Yobu Omake no Miyako Shockgaan (JPN) + { "BUOJ" }, // 2345 - Minna no Soft Series - Numpla Advance (JPN) + { "AN3J" }, // 2347 - Minna no Soft Series - Kawaii Koneko (JPN) + { "BUOE" }, // 2366 - Dr. Sudoku (USA) + { "B8SE" }, // 2368 - Spyro Superpack - Season of Ice + Season of Flame (USA) + { "U32J" }, // 2369 - Zoku Bokura no Taiyou - Taiyou Shounen Django (v01) (JPN) + { "BBMJ" }, // 2388 - B-Legend! Battle B-Daman - Moero! B-Damashi!! (JPN) + { "B53E" }, // 2395 - Crash & Spyro Superpack - Ripto's Rampage + The Cortex Conspiracy (USA) + { "BH9P" }, // 2399 - Tony Hawk's American Sk8land (EUR) + { "BAQP" }, // 2406 - Premier Action Soccer (EUR) + { "AB4E" }, // 2432 - Summon Night - Swordcraft Story (USA) + { "BBYE" }, // 2436 - Barnyard (USA) + { "BDXE" }, // 2438 - Battle B-Daman (USA) + { "B7ME" }, // 2446 - Madden NFL 07 (USA) + { "BUFE" }, // 2447 - 2 Games in 1 - Dragon Ball Z - Buu's Fury + Dragon Ball GT - Transformation (USA) + { "BUOP" }, // 2449 - Dr. Sudoku (EUR) + { "BBYX" }, // 2461 - Barnyard (EUR) + { "BFEE" }, // 2466 - Dogz - Fashion (USA) + { "AN3X" }, // 2468 - Catz (EUR) + { "BBME" }, // 2481 - Battle B-Daman - Fire Spirits (USA) + { "BQZE" }, // 2487 - Avatar - The Last Airbender (USA) + { "BXFE" }, // 2498 - Bratz - Forever Diamondz (USA) + { "BT8E" }, // 2500 - Teenage Mutant Ninja Turtles Double Pack (USA) + { "B3YE" }, // 2504 - The Legend of Spyro - A New Beginning (USA) + { "BSKE" }, // 2505 - Summon Night - Swordcraft Story 2 (USA) + { "BHBP" }, // 2513 - Best Friends - Hunde & Katzen (EUR) + { "B3YP" }, // 2519 - The Legend Of Spyro - A New Beginning (EUR) + { "BXFD" }, // 2520 - Bratz - Forever Diamondz (GER) + { "BRLP" }, // 2532 - Rebelstar - Tactical Command (EUR) + { "BENP" }, // 2560 - Eragon (EUR) + { "BENE" }, // 2561 - Eragon (USA) + { "BYUE" }, // 2573 - Yggdra Union - We'll Never Fight Alone (USA) + { "BFRP" }, // 2588 - My Animal Centre in Africa (EUR) + { "BFQE" }, // 2606 - Mazes of Fate (USA) + { "BQZP" }, // 2607 - Avatar - The Legend of Aang (EUR) + { "BFEP" }, // 2613 - Dogz Fashion (EUR) + { "BC2S" }, // 2631 - Shinchan contra los Munecos de Shock Gahn (ESP) + { "BXFP" }, // 2640 - Bratz - Forever Diamondz (EUR) + { "BEFP" }, // 2652 - Best Friends - My Horse (EUR) + { "BNBE" }, // 2695 - Petz Vet (USA) + { "BIME" }, // 2696 - Dogz 2 (USA) + { "BQTX" }, // 2710 - Mijn Dierenpension (EUR) + { "BIMP" }, // 2720 - Dogz 2 (EUR) + { "BIMX" }, // 2727 - Dogz 2 (EUR) + { "BHUE" }, // 2730 - Horsez (USA) + { "BQTF" }, // 2732 - Lea - Passion Veterinaire (FRA) + { "BJPP" }, // 2770 - Harry Potter Collection (EUR) + { "BEFE" }, // 2772 - Let's Ride - Friends Forever (USA) + { "BHBE" }, // 2774 - Best Friends - Dogs & Cats (USA) + { "BYUP" }, // 2781 - Yggdra Union - We'll Never Fight Alone (EUR) + { "ACOJ" }, // 2787 - Manga-ka Debut Monogatari (v01) (JPN) + { "BFDJ" }, // 2789 - Fruit Mura no Doubutsu Tachi (v02) (JPN) + // gba scan no. 8 + { "AYSJ" }, // 0229 - Gakkou wo Tsukurou!! Advance (JPN) + { "ASNJ" }, // 0260 - Sansara Naga 1x2 (JPN) + { "ACTX" }, // 0265 - Creatures (EUR) + { "ASFJ" }, // 0359 - Slot! Pro Advance - Takarabune & Ooedo Sakurafubuki 2 (JPN) + { "ABGJ" }, // 0404 - Sweet Cookie Pie (JPN) + { "ARNJ" }, // 0615 - Harukanaru Toki no Naka de (JPN) + { "AOPJ" }, // 0646 - Oshare Princess (JPN) + { "AHVJ" }, // 0664 - Nakayoshi Youchien - Sukoyaka Enji Ikusei Game (JPN) + { "AYCE" }, // 0758 - Phantasy Star Collection (USA) + { "AYCP" }, // 0877 - Phantasy Star Collection (EUR) + { "ATBJ" }, // 0948 - Slot! Pro 2 Advance - GoGo Juggler & New Tairyou (JPN) + { "A83J" }, // 1012 - Hamster Monogatari 3 GBA (JPN) + { "AEHJ" }, // 1014 - Puzzle & Tantei Collection (JPN) + { "BWDJ" }, // 1114 - Wan Nyan Doubutsu Byouin (JPN) + { "BKZE" }, // 1138 - Banjo-Kazooie - Grunty's Revenge (USA) + { "FZLJ" }, // 1369 - Famicom Mini Series 5 - Zelda no Denzetsu 1 (JPN) + { "BPVP" }, // 1738 - Pferd & Pony - Mein Pferdehof (EUR) + { "ACTY" }, // 1763 - Creatures (EUR) + { "BITJ" }, // 1811 - Onmyou Taisenki Zeroshik (JPN) + { "BOVJ" }, // 1848 - Bouken-Ou Beet - Busters Road (JPN) + { "BT3J" }, // 1852 - Tantei Jinguuji Saburou Shiroi Kage no Syoujyo (JPN) + { "BG8J" }, // 1853 - Ganbare! Dodge Fighters (JPN) + { "BLDS" }, // 1919 - 2 Games in 1 - Lizzie McGuire - Disney Princesas (ESP) + { "BLDP" }, // 1934 - 2 Games in 1 - Lizzie McGuire - Disney Princess (EUR) + { "B8MP" }, // 1993 - Mario Party Advance (EUR) + { "BYPP" }, // 2155 - Horse & Pony - Let`s Ride 2 (EUR) + { "B8AE" }, // 2174 - Crash Superpack - N-Tranced + Nitro Kart (USA) + { "BL9E" }, // 2329 - Let's Ride! Dreamer (USA) + { "B34E" }, // 2331 - Let's Ride! - Sunshine Stables (USA) + { "BQVP" }, // 2414 - Meine Tierarztpraxis (EUR) + { "BHUP" }, // 2480 - Horse and Pony - My Stud Farm (EUR) + { "BPVX" }, // 2645 - Pippa Funnell - Stable Adventures (EUR) + { "BYPX" }, // 2653 - Pippa Funell 2 (EUR) + { "BQVX" }, // 2711 - Mijn Dierenpraktijk (EUR) + { "BPVY" }, // 2712 - Paard & Pony - Mijn Manege (EUR) + { "BYPY" }, // 2713 - Paard & Pony - Paard in Galop (EUR) + { "B54E" }, // 2757 - Crash & Spyro Superpack - The Huge Adventure + Season of Ice (USA) + // gba scan no. 9 + { "BKZX" }, // 1199 - Banjo-Kazooie - Grunty's Revenge (EUR) + { "BKZI" }, // 1381 - Banjo Kazooie - La Vendetta di Grunty (ITA) + { "BAZJ" }, // 1710 - Akachan Doubutsu Sono (JPN) + { "BKZS" }, // 1883 - Banjo Kazooie - La Venganza de Grunty (ESP) + // gba scan no. 11 + { "A9BP" }, // 0925 - Medabots - Rokusho Version (EUR) + { "A3IJ" }, // bokura no taiyou - taiyou action rpg - kabunushi go-yuutai ban (japan) (demo) +}; + +const gba_chip_fix_item gba_chip_fix_rumble_list[] = +{ + { "KYGP" }, // Yoshi's Universal Gravitation (EUR) + { "KYGE" }, // Yoshi - Topsy-Turvy (USA) + { "KYGJ" }, // Yoshi no Banyuuinryoku (JPN) + { "KHPJ" } // Koro Koro Puzzle - Happy Panechu! (JPN) +}; + +} // anonymous namespace + + //************************************************************************** // GLOBAL VARIABLES //************************************************************************** -const device_type GBA_CART_SLOT = device_creator; +DEFINE_DEVICE_TYPE(GBA_CART_SLOT, gba_cart_slot_device, "gba_cart_slot", "Game Boy Advance Cartridge Slot") //************************************************************************** // GBA cartridges Interface @@ -27,9 +479,9 @@ const device_type GBA_CART_SLOT = device_creator; //------------------------------------------------- device_gba_cart_interface::device_gba_cart_interface(const machine_config &mconfig, device_t &device) - : device_slot_card_interface(mconfig, device), - m_rom(nullptr), - m_rom_size(0) + : device_slot_card_interface(mconfig, device) + , m_rom(nullptr) + , m_rom_size(0) { } @@ -81,10 +533,11 @@ void device_gba_cart_interface::nvram_alloc(uint32_t size) // gba_cart_slot_device - constructor //------------------------------------------------- gba_cart_slot_device::gba_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, GBA_CART_SLOT, "Game Boy Advance Cartridge Slot", tag, owner, clock, "gba_cart_slot", __FILE__), - device_image_interface(mconfig, *this), - device_slot_interface(mconfig, *this), - m_type(GBA_STD), m_cart(nullptr) + device_t(mconfig, GBA_CART_SLOT, tag, owner, clock), + device_image_interface(mconfig, *this), + device_slot_interface(mconfig, *this), + m_type(GBA_STD), + m_cart(nullptr) { } diff --git a/src/devices/bus/gba/gba_slot.h b/src/devices/bus/gba/gba_slot.h index 959f62dd332..d2c042b3ba9 100644 --- a/src/devices/bus/gba/gba_slot.h +++ b/src/devices/bus/gba/gba_slot.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:R. Belmont,Ryan Holtz,Fabio Priuli -#ifndef __GBA_SLOT_H -#define __GBA_SLOT_H +#ifndef MAME_BUS_GBA_GBA_SLOT_H +#define MAME_BUS_GBA_GBA_SLOT_H + +#pragma once #include "softlist_dev.h" @@ -38,7 +40,6 @@ class device_gba_cart_interface : public device_slot_card_interface { public: // construction/destruction - device_gba_cart_interface(const machine_config &mconfig, device_t &device); virtual ~device_gba_cart_interface(); // reading and writing @@ -46,10 +47,10 @@ public: virtual DECLARE_READ32_MEMBER(read_ram) { return 0xffffffff; } virtual DECLARE_READ32_MEMBER(read_gpio) { return 0; } virtual DECLARE_READ32_MEMBER(read_tilt) { return 0xffffffff; } - virtual DECLARE_WRITE32_MEMBER(write_ram) {}; - virtual DECLARE_WRITE32_MEMBER(write_gpio) {}; - virtual DECLARE_WRITE32_MEMBER(write_tilt) {}; - virtual DECLARE_WRITE32_MEMBER(write_mapper) {}; + virtual DECLARE_WRITE32_MEMBER(write_ram) { } + virtual DECLARE_WRITE32_MEMBER(write_gpio) { } + virtual DECLARE_WRITE32_MEMBER(write_tilt) { } + virtual DECLARE_WRITE32_MEMBER(write_mapper) { } void rom_alloc(uint32_t size, const char *tag); void nvram_alloc(uint32_t size); @@ -63,6 +64,9 @@ public: void save_nvram() { device().save_item(NAME(m_nvram)); } +protected: + device_gba_cart_interface(const machine_config &mconfig, device_t &device); + // internal state uint32_t *m_rom; // this points to the cart rom region uint32_t m_rom_size; // this is the actual game size, not the rom region size! @@ -96,8 +100,8 @@ public: void internal_header_logging(uint8_t *ROM, uint32_t len); - void save_nvram() { if (m_cart && m_cart->get_nvram_size()) m_cart->save_nvram(); } - uint32_t get_rom_size() { if (m_cart) return m_cart->get_rom_size(); return 0; } + void save_nvram() { if (m_cart && m_cart->get_nvram_size()) m_cart->save_nvram(); } + uint32_t get_rom_size() { if (m_cart) return m_cart->get_rom_size(); return 0; } virtual iodevice_t image_type() const override { return IO_CARTSLOT; } virtual bool is_readable() const override { return 1; } @@ -125,13 +129,13 @@ public: protected: int m_type; - device_gba_cart_interface* m_cart; + device_gba_cart_interface* m_cart; }; // device type definition -extern const device_type GBA_CART_SLOT; +DECLARE_DEVICE_TYPE(GBA_CART_SLOT, gba_cart_slot_device) /*************************************************************************** @@ -164,452 +168,4 @@ extern const device_type GBA_CART_SLOT; #define GBA_CHIP_EEPROM_4K (1 << 7) -struct gba_chip_fix_conflict_item -{ - char game_code[5]; - uint32_t chip; -}; - -static const gba_chip_fix_conflict_item gba_chip_fix_conflict_list[] = -{ - { "ABFJ", GBA_CHIP_SRAM }, // 0059 - Breath of Fire - Ryuu no Senshi (JPN) - { "AHMJ", GBA_CHIP_EEPROM_4K }, // 0364 - Dai-Mahjong (JPN) - { "A2GJ", GBA_CHIP_EEPROM_64K }, // 0399 - Advance GT2 (JPN) - { "AK9E", GBA_CHIP_EEPROM_4K }, // 0479 - Medabots AX - Rokusho Version (USA) - { "AK8E", GBA_CHIP_EEPROM_4K }, // 0480 - Medabots AX - Metabee Version (USA) - { "AK9P", GBA_CHIP_EEPROM_4K }, // 0515 - Medabots AX - Rokusho Version (EUR) - { "AGIJ", GBA_CHIP_EEPROM_4K }, // 0548 - Medarot G - Kuwagata Version (JPN) - { "A3DJ", GBA_CHIP_EEPROM_4K }, // 0567 - Disney Sports - American Football (JPN) - { "AF7J", GBA_CHIP_EEPROM_64K }, // 0605 - Tokimeki Yume Series 1 - Ohanaya-san ni Narou! (JPN) - { "AH7J", GBA_CHIP_EEPROM_64K }, // 0617 - Nakayoshi Pet Advance Series 1 - Kawaii Hamster (JPN) - { "AGHJ", GBA_CHIP_EEPROM_4K }, // 0620 - Medarot G - Kabuto Version (JPN) - { "AR8E", GBA_CHIP_SRAM }, // 0727 - Rocky (USA) - { "ALUE", GBA_CHIP_EEPROM_4K }, // 0751 - Super Monkey Ball Jr. (USA) - { "A3DE", GBA_CHIP_EEPROM_4K }, // 0800 - Disney Sports - Football (USA) - { "A87J", GBA_CHIP_EEPROM_64K }, // 0817 - Ohanaya-San Monogatari GBA (JPN) - { "A56J", GBA_CHIP_EEPROM_64K }, // 0827 - DokiDoki Cooking Series 1 - Komugi-chan no Happy Cake (JPN) - { "AUSJ", GBA_CHIP_FLASH }, // 0906 - One Piece - Mezase! King of Berries (JPN) - { "ANTJ", GBA_CHIP_SRAM }, // 0950 - Nippon Pro Mahjong Renmei Kounin - Tetsuman Advance (JPN) - { "A8OJ", GBA_CHIP_EEPROM_64K }, // 0988 - DokiDoki Cooking Series 2 - Gourmet Kitchen - Suteki na Obentou (JPN) - { "AK8P", GBA_CHIP_EEPROM_4K }, // 1022 - Medabots AX - Metabee Version (EUR) - { "A6OJ", GBA_CHIP_EEPROM_64K }, // 1092 - Onimusha Tactics (JPN) - { "A6OE", GBA_CHIP_EEPROM_64K }, // 1241 - Onimusha Tactics (USA) - { "A6OP", GBA_CHIP_EEPROM_64K }, // 1288 - Onimusha Tactics (EUR) - { "BKME", GBA_CHIP_EEPROM_4K }, // 1545 - Kim Possible 2 - Drakken's Demise (USA) - { "BDKJ", GBA_CHIP_EEPROM_64K }, // 1555 - Digi Communication 2 in 1 Datou! Black Gemagema Dan (JPN) - { "BR4J", GBA_CHIP_FLASH }, // 1586 - Rockman EXE 4.5 - Real Operation (JPN) - { "BG8J", GBA_CHIP_EEPROM_64K }, // 1853 - Ganbare! Dodge Fighters (JPN) - { "AROP", GBA_CHIP_EEPROM_4K }, // 1862 - Rocky (EUR) -// "A2YE" - 1906 - Top Gun - Combat Zones (USA) - multiple NVRAM chips detected, but none present (protection against emu?) - { "BKMJ", GBA_CHIP_EEPROM_4K }, // 2039 - Kim Possible (JPN) - { "BKEJ", GBA_CHIP_EEPROM_64K }, // 2047 - Konjiki no Gashbell - The Card Battle for GBA (JPN) - { "BKMP", GBA_CHIP_EEPROM_4K }, // 2297 - Kim Possible 2 - Drakken's Demise (EUR) - { "BUHJ", GBA_CHIP_EEPROM_4K }, // 2311 - Ueki no Housoku Shinki Sakuretsu! Nouryokumono Battle (JPN) - { "BYUJ", GBA_CHIP_EEPROM_64K }, // 2322 - Yggdra Union (JPN) -}; - -struct gba_chip_fix_item -{ - char game_code[5]; -}; - -static const gba_chip_fix_item gba_chip_fix_eeprom_list[] = -{ - // gba scan no. 7 - { "AKTJ" }, // 0145 - Hello Kitty Collection - Miracle Fashion Maker (JPN) - { "AISP" }, // 0185 - International Superstar Soccer (EUR) - { "AKGP" }, // 0204 - Mech Platoon (EUR) - { "AX2E" }, // 0207 - Dave Mirra Freestyle BMX 2 (USA) - { "AASJ" }, // 0234 - World Advance Soccer - Shouri heno Michi (JPN) - { "AA2J" }, // 0237 - Super Mario World - Super Mario Advance 2 (JPN) - { "AJWJ" }, // 0242 - Jikkyou World Soccer Pocket (JPN) - { "AABE" }, // 0244 - American Bass Challenge (USA) - { "AWXJ" }, // 0254 - ESPN Winter X-Games Snowboarding 2002 (JPN) - { "AALJ" }, // 0259 - Kidou Tenshi Angelic Layer - Misaki to Yume no Tenshi-tachi (JPN) - { "AKGE" }, // 0263 - Mech Platoon (USA) - { "AGLJ" }, // 0273 - Tomato Adventure (JPN) - { "AWIJ" }, // 0274 - Hyper Sports 2002 Winter (JPN) - { "APNJ" }, // 0286 - Pinky Monkey Town (JPN) - { "AA2E" }, // 0288 - Super Mario World - Super Mario Advance 2 (USA) - { "AX2P" }, // 0293 - Dave Mirra Freestyle BMX 2 (EUR) - { "AMGP" }, // 0296 - ESPN Great Outdoor Games - Bass Tournament (EUR) - { "AMHJ" }, // 0308 - Bomberman Max 2 - Bomberman Version (JPN) - { "AGNJ" }, // 0311 - Goemon - New Age Shutsudou! (JPN) - { "AMYJ" }, // 0324 - Bomberman Max 2 - Max Version (JPN) - { "AT3E" }, // 0326 - Tony Hawk's Pro Skater 3 (USA) - { "AHHE" }, // 0327 - High Heat - Major League Baseball 2003 (USA) - { "ANLE" }, // 0328 - NHL 2002 (USA) - { "AAGJ" }, // 0345 - Angelique (JPN) - { "ABJP" }, // 0351 - Broken Sword - The Shadow of the Templars (EUR) - { "AKVJ" }, // 0357 - K-1 Pocket Grand Prix (JPN) - { "AKGJ" }, // 0361 - Kikaika Guntai - Mech Platoon (JPN) - { "ADDJ" }, // 0362 - Diadroids World - Evil Teikoku no Yabou (JPN) - { "ABJE" }, // 0365 - Broken Sword - The Shadow of the Templars (USA) - { "AABP" }, // 0380 - Super Black Bass Advance (EUR) - { "AA2P" }, // 0390 - Super Mario World - Super Mario Advance 2 (EUR) - { "A2GJ" }, // 0399 - Advance GT2 (JPN) - { "AEWJ" }, // 0400 - Ui-Ire - World Soccer Winning Eleven (JPN) - { "ADPJ" }, // 0417 - Doraemon - Dokodemo Walker (JPN) - { "AN5J" }, // 0420 - Kawa no Nushi Tsuri 5 - Fushigi no Mori Kara (JPN) - { "ACBJ" }, // 0421 - Gekitou! Car Battler Go!! (JPN) - { "AHIJ" }, // 0426 - Hitsuji no Kimochi (JPN) - { "ATFP" }, // 0429 - Alex Ferguson's Player Manager 2002 (EUR) - { "AFUJ" }, // 0431 - Youkaidou (JPN) - { "AEPP" }, // 0435 - Sheep (EUR) - { "AMHE" }, // 0442 - Bomberman Max 2 - Blue Advance (USA) - { "AMYE" }, // 0443 - Bomberman Max 2 - Red Advance (USA) - { "AT3F" }, // 0457 - Tony Hawk's Pro Skater 3 (FRA) - { "ARJJ" }, // 0497 - Custom Robo GX (JPN) - { "AFCJ" }, // 0521 - RockMan & Forte (JPN) - { "ANJE" }, // 0528 - Madden NFL 2003 (USA) - { "AN7J" }, // 0533 - Famista Advance (JPN) - { "ATYJ" }, // 0540 - Gambler Densetsu Tetsuya - Yomigaeru Densetsu (JPN) - { "AXBJ" }, // 0551 - Black Matrix Zero (JPN) - { "A3AE" }, // 0580 - Yoshi's Island - Super Mario Advance 3 (USA) - { "A3AJ" }, // 0582 - Super Mario Advance 3 (JPN) - { "AZUJ" }, // 0595 - Street Fighter Zero 3 - Upper (JPN) - { "ALOE" }, // 0600 - The Lord of the Rings - The Fellowship of the Ring (USA) - { "A2SE" }, // 0602 - Spyro 2 - Season of Flame (USA) - { "AF7J" }, // 0605 - Tokimeki Yume Series 1 - Ohanaya-san ni Narou! (JPN) - { "A3AP" }, // 0610 - Yoshi's Island - Super Mario Advance 3 (EUR) - { "AH7J" }, // 0617 - Nakayoshi Pet Advance Series 1 - Kawaii Hamster (JPN) - { "AI7J" }, // 0618 - Nakayoshi Pet Advance Series 2 - Kawaii Koinu (JPN) - { "AN3J" }, // 0619 - Nakayoshi Pet Advance Series 3 - Kawaii Koneko (JPN) - { "AAPJ" }, // 0632 - Metalgun Slinger (JPN) - { "A2JJ" }, // 0643 - J.League - Winning Eleven Advance 2002 (JPN) - { "AHXJ" }, // 0649 - High Heat - Major League Baseball 2003 (JPN) - { "AHAJ" }, // 0651 - Hamster Paradise Advance (JPN) - { "APUJ" }, // 0653 - PukuPuku Tennen Kairanban (JPN) - { "A2SP" }, // 0673 - Spyro 2 - Season of Flame (EUR) - { "AN9J" }, // 0675 - Tales of the World - Narikiri Dungeon 2 (JPN) - { "ACBE" }, // 0683 - Car Battler Joe (USA) - { "AT6E" }, // 0693 - Tony Hawk's Pro Skater 4 (USA) - { "ALOP" }, // 0702 - The Lord of the Rings - The Fellowship of the Ring (EUR) - { "A63J" }, // 0710 - Kawaii Pet Shop Monogatari 3 (JPN) - { "AAXJ" }, // 0748 - Fantastic Maerchen - Cake-yasan Monogatari (JPN) - { "AZLE" }, // 0763 - The Legend of Zelda - A Link to the Past & Four Swords (USA) - { "AZUP" }, // 0765 - Street Fighter Alpha 3 - Upper (EUR) - { "AJKJ" }, // 0769 - Jikkyou World Soccer Pocket 2 (JPN) - { "AB3E" }, // 0781 - Dave Mirra Freestyle BMX 3 (USA) - { "A2IJ" }, // 0791 - Magi Nation (JPN) - { "AK7J" }, // 0792 - Klonoa Heroes - Densetsu no Star Medal (JPN) - { "A2HJ" }, // 0794 - Hajime no Ippo - The Fighting! (JPN) - { "ALNE" }, // 0795 - Lunar Legend (USA) - { "AUCJ" }, // 0808 - Uchuu Daisakusen Choco Vader - Uchuu Kara no Shinryakusha (JPN) - { "A59J" }, // 0809 - Toukon Heat (JPN) - { "ALJE" }, // 0815 - Sea Trader - Rise of Taipan (USA) - { "A87J" }, // 0817 - Ohanaya-San Monogatari GBA (JPN) - { "A56J" }, // 0827 - DokiDoki Cooking Series 1 - Komugi-chan no Happy Cake (JPN) - { "AHZJ" }, // 0830 - Higanbana (JPN) - { "A8BP" }, // 0832 - Medabots - Metabee Version (EUR) - { "A2OJ" }, // 0833 - K-1 Pocket Grand Prix 2 (JPN) - { "AY2P" }, // 0843 - International Superstar Soccer Advance (EUR) - { "ANSJ" }, // 0845 - Marie, Elie & Anis no Atelier - Soyokaze Kara no Dengon (JPN) - { "ACOJ" }, // 0865 - Manga-ka Debut Monogatari (JPN) - { "AZLP" }, // 0870 - The Legend of Zelda - A Link to the Past & Four Swords (EUR) - { "AWKJ" }, // 0879 - Wagamama Fairy Mirumo de Pon! - Ougon Maracas no Densetsu (JPN) - { "AZUE" }, // 0886 - Street Fighter Alpha 3 - Upper (USA) - { "AZLJ" }, // 0887 - Zelda no Densetsu - Kamigami no Triforce & 4tsu no Tsurugi (JPN) - { "A6ME" }, // 0889 - MegaMan & Bass (USA) - { "A64J" }, // 0915 - Shimura Ken no Baka Tonosama (JPN) - { "A9HJ" }, // 0917 - Dragon Quest Monsters - Caravan Heart (JPN) - { "AMHP" }, // 0929 - Bomberman Max 2 - Blue Advance (EUR) - { "AMYP" }, // 0930 - Bomberman Max 2 - Red Advance (EUR) - { "AMGJ" }, // 0943 - Exciting Bass (JPN) - { "A5KJ" }, // 0946 - Medarot 2 Core - Kabuto Version (JPN) - { "A4LJ" }, // 0949 - Sylvania Family 4 - Meguru Kisetsu no Tapestry (JPN) - { "A2VJ" }, // 0955 - Kisekko Gurumi - Chesty to Nuigurumi-tachi no Mahou no Bouken (JPN) - { "A5QJ" }, // 0956 - Medarot 2 Core - Kuwagata Version (JPN) - { "AZBJ" }, // 0958 - Bass Tsuri Shiyouze! (JPN) - { "AO2J" }, // 0961 - Oshare Princess 2 (JPN) - { "AB4J" }, // 0965 - Summon Night - Craft Sword Monogatari (JPN) - { "AZAJ" }, // 0971 - Azumanga Daiou Advance (JPN) - { "AF3J" }, // 0974 - Zero One (JPN) - { "A8OJ" }, // 0988 - DokiDoki Cooking Series 2 - Gourmet Kitchen - Suteki na Obentou (JPN) - { "AT3D" }, // 1016 - Tony Hawk's Pro Skater 3 (GER) - { "A6MP" }, // 1031 - MegaMan & Bass (EUR) - { "ANNJ" }, // 1032 - Gekitou Densetsu Noah - Dream Management (JPN) - { "AFNJ" }, // 1036 - Angel Collection - Mezase! Gakuen no Fashion Leader (JPN) - { "ALFP" }, // 1041 - Dragon Ball Z - The Legacy of Goku II (EUR) - { "A9TJ" }, // 1055 - Metal Max 2 Kai (JPN) - { "ALFE" }, // 1070 - Dragon Ball Z - The Legacy of Goku II (USA) - { "BHCJ" }, // 1074 - Hamster Monogatari Collection (JPN) - { "BKKJ" }, // 1075 - Minna no Shiiku Series - Boku no Kabuto-Kuwagata (JPN) - { "BKIJ" }, // 1083 - Nakayoshi Pet Advance Series 4 - Kawaii Koinu Kogata Inu (JPN) - { "BGBJ" }, // 1084 - Get! - Boku no Mushi Tsukamaete (JPN) - { "A82J" }, // 1085 - Hamster Paradise - Pure Heart (JPN) - { "U3IJ" }, // 1087 - Bokura no Taiyou - Taiyou Action RPG (JPN) - { "A6OJ" }, // 1092 - Onimusha Tactics (JPN) - { "AN8J" }, // 1102 - Tales of Phantasia (JPN) - { "AC4J" }, // 1104 - Meitantei Conan - Nerawareta Tantei (JPN) - { "A8ZJ" }, // 1108 - Shin Megami Tensei Devil Children - Puzzle de Call! (JPN) - { "BGMJ" }, // 1113 - Gensou Maden Saiyuuki - Hangyaku no Toushin-taishi (JPN) - { "BMDE" }, // 1115 - Madden NFL 2004 (USA) - { "BO3J" }, // 1141 - Oshare Princess 3 (JPN) - { "U3IE" }, // 1145 - Boktai - The Sun is in Your Hand (USA) - { "BMRJ" }, // 1194 - Matantei Loki Ragnarok - Gensou no Labyrinth (JPN) - { "BLME" }, // 1204 - Lizzie McGuire (USA) - { "AOWE" }, // 1208 - Spyro - Attack of the Rhynocs (USA) - { "BTOE" }, // 1209 - Tony Hawk's Underground (USA) - { "BFJE" }, // 1212 - Frogger's Journey - The Forgotten Relic (USA) - { "A88P" }, // 1229 - Mario & Luigi - Superstar Saga (EUR) - { "BEYP" }, // 1236 - Beyblade VForce - Ultimate Blader Jam (EUR) - { "A85J" }, // 1239 - Sanrio Puroland All Characters (JPN) - { "BMZJ" }, // 1240 - Zooo (JPN) - { "A6OE" }, // 1241 - Onimusha Tactics (USA) - { "AOWP" }, // 1253 - Spyro Adventure (EUR) - { "A88E" }, // 1260 - Mario & Luigi - Superstar Saga (USA) - { "BEYE" }, // 1262 - Beyblade VForce - Ultimate Blader Jam (USA) - { "BCME" }, // 1264 - CIMA - The Enemy (USA) - { "A88J" }, // 1266 - Mario & Luigi RPG (JPN) - { "A5CP" }, // 1269 - Sim City 2000 (EUR) - { "BGAJ" }, // 1277 - SD Gundam G Generation (JPN) - { "A6OP" }, // 1288 - Onimusha Tactics (EUR) - { "BLMP" }, // 1289 - Lizzie McGuire (EUR) - { "ASIE" }, // 1295 - The Sims - Bustin' Out (USA) - { "BISJ" }, // 1299 - Koinu-Chan no Hajimete no Osanpo - Koinu no Kokoro Ikusei Game (JPN) - { "BK3J" }, // 1305 - Card Captor Sakura - Sakura Card de Mini Game (JPN) - { "A4GJ" }, // 1306 - Konjiki no Gashbell!! - Unare! Yuujou no Zakeru (JPN) - { "BTAJ" }, // 1315 - Astro Boy - Tetsuwan Atom (JPN) - { "BS5J" }, // 1322 - Sylvanian Family - Yousei no Stick to Fushigi no Ki (JPN) - { "A5CE" }, // 1326 - Sim City 2000 (USA) - { "B4PJ" }, // 1342 - The Sims (JPN) - { "BDTJ" }, // 1383 - Downtown - Nekketsu Monogatari EX (JPN) - { "B08J" }, // 1391 - One Piece - Going Baseball (JPN) - { "AWUP" }, // 1394 - Sabre Wulf (EUR) - { "BRPJ" }, // 1421 - Liliput Oukoku (JPN) - { "BPNJ" }, // 1435 - Pika Pika Nurse Monogatari - Nurse Ikusei Game (JPN) - { "BP3J" }, // 1446 - Pia Carrot he Youkoso!! 3.3 (JPN) - { "BKCJ" }, // 1461 - Crayon Shin-Chan - Arashi no Yobu Cinema-Land no Daibouken! (JPN) - { "BGNJ" }, // 1464 - Battle Suit Gundam Seed - Battle Assault (JPN) - { "U3IP" }, // 1465 - Boktai - The Sun is in Your Hand (EUR) - { "BDTE" }, // 1484 - River City Ransom EX (USA) - { "BHTE" }, // 1485 - Harry Potter and the Prisoner of Azkaban (USA) - { "FZLE" }, // 1494 - Classic NES Series - The Legend of Zelda (USA) - { "FEBE" }, // 1499 - Classic NES Series - ExciteBike (USA) - { "BUCE" }, // 1505 - Ultimate Card Games (USA) - { "AWUE" }, // 1511 - Sabre Wulf (USA) - { "B2DP" }, // 1522 - Donkey Kong Country 2 (EUR) - { "BHTJ" }, // 1528 - Harry Potter to Azkaban no Shuujin (JPN) - { "A5SJ" }, // 1534 - Oshare Wanko (JPN) - { "B2DJ" }, // 1541 - Super Donkey Kong 2 (JPN) - { "BTAE" }, // 1551 - Astro Boy - Omega Factor (USA) - { "BKOJ" }, // 1553 - Kaiketsu Zorori to Mahou no Yuuenchi (JPN) - { "BDKJ" }, // 1555 - Digi Communication 2 in 1 Datou! Black Gemagema Dan (JPN) - { "U32J" }, // 1567 - Zoku Bokura no Taiyou - Taiyou Shounen Django (JPN) - { "ALFJ" }, // 1573 - Dragon Ball Z - The Legacy of Goku II - International (JPN) - { "BGHJ" }, // 1575 - Gakkou no Kaidan - Hyakuyobako no Fuuin (JPN) - { "BZOJ" }, // 1576 - Zero One SP (JPN) - { "BDXJ" }, // 1587 - B-Densetsu! Battle B-Daman Moero! B-Kon (JPN) - { "BNBJ" }, // 1589 - Himawari Doubutsu Byouin Pet no Oishasan (JPN) - { "BMFE" }, // 1595 - Madden NFL 2005 (USA) - { "FMRJ" }, // 1599 - Famicom Mini Series 23 - Metroid (JPN) - { "FPTJ" }, // 1600 - Famicom Mini Series 24 - Hikari Shinwa - Palutena no Kagame (JPN) - { "FLBJ" }, // 1601 - Famicom Mini Series 25 - The Legend of Zelda 2 - Link no Bouken (JPN) - { "FSDJ" }, // 1606 - Famicom Mini Series 30 - SD Gundam World - Gachapon Senshi Scramble Wars (JPN) - { "BSKJ" }, // 1611 - Summon Night - Craft Sword Monogatari 2 (JPN) - { "BG3E" }, // 1628 - Dragon Ball Z - Buu's Fury (USA) - { "BECJ" }, // 1644 - Angel Collection 2 - Pichimo ni Narou (JPN) - { "B2TE" }, // 1672 - Tony Hawk's Underground 2 (USA) - { "BTYE" }, // 1689 - Ty the Tasmanian Tiger 2 - Bush Rescue (USA) - { "BT2E" }, // 1695 - Teenage Mutant Ninja Turtles 2 - Battlenexus (USA) - { "U32E" }, // 1697 - Boktai 2 - Solar Boy Django (USA) - { "BFDJ" }, // 1708 - Fruit Mura no Doubutsu Tachi (JPN) - { "BPQJ" }, // 1717 - PukuPuku Tennen Kairanban - Koi no Cupid Daisakusen (JPN) - { "BZMJ" }, // 1721 - The Legend of Zelda - Fushigi no Boushi (JPN) - { "FLBE" }, // 1723 - Classic NES Series - Zelda II - The Adventure of Link (USA) - { "BZMP" }, // 1736 - The Legend of Zelda - The Minish Cap (EUR) - { "B2DE" }, // 1754 - Donkey Kong Country 2 (USA) - { "BT2P" }, // 1758 - Teenage Mutant Ninja Turtles 2 - Battle Nexus (EUR) - { "BB2E" }, // 1759 - Beyblade G-Revolution (USA) - { "BRGE" }, // 1761 - Yu-Yu-Hakusho - Tournament Tactics (USA) - { "BFJJ" }, // 1766 - Frogger - Kodaibunmei no Nazo (JPN) - { "BB2P" }, // 1776 - Beyblade G-Revolution (EUR) - { "BSFJ" }, // 1791 - Sylvania Family - Fashion Designer ni Naritai (JPN) - { "BPIE" }, // 1798 - It's Mr Pants (USA) - { "B3PJ" }, // 1809 - Pukupuku Tennen Kairanban Youkoso Illusion Land (JPN) - { "BHDJ" }, // 1812 - Hello Idol Debut (JPN) - { "BKUJ" }, // 1823 - Shingata Medarot - Kuwagata Version (JPN) - { "BKVJ" }, // 1824 - Shingata Medarot - Kabuto Version (JPN) - { "BLIJ" }, // 1825 - Little Patissier Cake no Oshiro (JPN) - { "B3TJ" }, // 1833 - Tales of the World - Narikiri Dungeon 3 (JPN) - { "B2KJ" }, // 1836 - Kiss x Kiss - Seirei Gakuen (JPN) - { "A9BE" }, // 1837 - Medabots - Rokusho Version (USA) - { "BZME" }, // 1842 - The Legend of Zelda - The Minish Cap (USA) - { "B8MJ" }, // 1845 - Mario Party Advance (JPN) - { "A8BE" }, // 1871 - Medabots - Metabee Version (USA) - { "BTAP" }, // 1879 - Astro Boy - Omega Factor (EUR) - { "FSRJ" }, // 1916 - Famicom Mini Series - Dai 2 Ji Super Robot Taisen (JPN) - { "B8ME" }, // 1931 - Mario Party Advance (USA) - { "BO8K" }, // 1938 - One Piece - Going Baseball Haejeok Yaku (KOR) - { "B4ZJ" }, // 1941 - Rockman Zero 4 (JPN) - { "BQAJ" }, // 1953 - Meitantei Conan Akatsuki no Monument (JPN) - { "BIPJ" }, // 1956 - One Piece - Dragon Dream (JPN) - { "BQBJ" }, // 1970 - Konchu Monster Battle Master (JPN) - { "BQSJ" }, // 1971 - Konchu Monster Battle Stadium (JPN) - { "BWXJ" }, // 1982 - Wanko Mix Chiwanko World (JPN) - { "A9TJ" }, // 1984 - Metal Max 2 - Kai Version (JPN) - { "U32P" }, // 1992 - Boktai 2 - Solar Boy Django (EUR) - { "B4RJ" }, // 2005 - Shikakui Atama wo Marukusuru Advance - Kokugo Sansu Rika Shakai (JPN) - { "B4KJ" }, // 2007 - Shikakui Atama wo Marukusuru Advance - Kanji Keisan (JPN) - { "BFCJ" }, // 2019 - Fantasic Children (JPN) - { "BCSP" }, // 2020 - 2 in 1 - V-Rally 3 - Stuntman (EUR) - { "BM2J" }, // 2024 - Momotarou Densetsu G Gold Deck wo Tsukure! (JPN) - { "BEJJ" }, // 2026 - Erementar Gerad (JPN) - { "B5AP" }, // 2034 - Crash & Spyro - Super Pack Volume 1 (EUR) - { "B52P" }, // 2035 - Crash & Spyro - Super Pack Volume 2 (EUR) - { "BFMJ" }, // 2046 - Futari wa Precure Max Heart Maji! Maji! Fight de IN Janai (JPN) - { "BKEJ" }, // 2047 - Konjiki no Gashbell - The Card Battle for GBA (JPN) - { "U33J" }, // 2048 - Shin Bokura no Taiyou - Gyakushuu no Sabata (JPN) - { "BHFJ" }, // 2050 - Twin Series 4 - Ham Ham Monster EX + Fantasy Puzzle Hamster Monogatari (JPN) - { "BMWJ" }, // 2051 - Twin Series 5 - Wan Wan Meitantei EX + Mahou no Kuni no Keaki-Okusan Monogatari (JPN) - { "BMZP" }, // 2055 - Zooo (EUR) - { "B6ME" }, // 2057 - Madden NFL 06 (USA) - { "BT4E" }, // 2058 - Dragon Ball GT - Transformation (USA) - { "B2OJ" }, // 2071 - Pro Mahjong - Tsuwamono GBA (JPN) - { "BX4E" }, // 2079 - 2 in 1 - Tony Hawk's Underground + Kelly Slater's Pro Surfer (USA) - { "BRLE" }, // 2097 - Rebelstar - Tactical Command (USA) - { "BX5P" }, // 2100 - Rayman - 10th Anniversary (EUR) - { "B4ZP" }, // 2108 - MegaMan Zero 4 (EUR) - { "BX5E" }, // 2123 - Rayman - 10th Anniversary (USA) - { "BGXJ" }, // 2143 - Gunstar Super Heroes (JPN) - { "B4ZE" }, // 2144 - Megaman Zero 4 (USA) - { "B53P" }, // 2164 - Crash & Spyro - Super Pack Volume 3 (EUR) - { "B26E" }, // 2169 - World Poker Tour (USA) - { "BH9E" }, // 2172 - Tony Hawk's American Sk8land (USA) - { "BHGE" }, // 2177 - Gunstar Super Heroes (USA) - { "BCMJ" }, // 2178 - Frontier Stories (JPN) - { "BUZE" }, // 2182 - Ultimate Arcade Games (USA) - { "BTVE" }, // 2198 - Ty the Tasmanian Tiger 3 - Night of the Quinkan (USA) - { "BHGP" }, // 2199 - Gunstar Future Heroes (EUR) - { "BH9X" }, // 2214 - Tony Hawk's American Sk8land (EUR) - { "BWIP" }, // 2231 - Win X Club (EUR) - { "BQTP" }, // 2232 - My Pet Hotel (EUR) - { "B4LJ" }, // 2245 - Sugar Sugar Une - Heart Gaippai! Moegi Gakuen (JPN) - { "B3CJ" }, // 2249 - Summon Night Craft Sword Monogatari - Hajimari no Ishi (JPN) - { "A4GE" }, // 2260 - ZatchBell! - Electric Arena (USA) - { "BLFE" }, // 2264 - 2 in 1 - Dragon Ball Z 1 and 2 (USA) - { "BO2J" }, // 2272 - Ochainu no Bouken Jima (JPN) - { "BWIE" }, // 2276 - WinX Club (USA) - { "BGQE" }, // 2279 - Greg Hastings' Tournament Paintball Max'd (USA) - { "BURE" }, // 2298 - Paws & Claws - Pet Resort (USA) - { "A3AC" }, // 2303 - Yaoxi Dao (CHN) - { "AN8E" }, // 2305 - Tales of Phantasia (USA) - { "BZWJ" }, // 2309 - Akagi (JPN) - { "BT8P" }, // 2316 - Teenage Mutant Ninja Turtles Double Pack (EUR) - { "BYUJ" }, // 2322 - Yggdra Union (JPN) - { "AN3E" }, // 2324 - Catz (USA) - { "AN8P" }, // 2325 - Tales of Phantasia (EUR) - { "AA2C" }, // 2332 - Chaoji Maliou Shijie (CHN) - { "BWOP" }, // 2333 - World Poker Tour (EUR) - { "BKCS" }, // 2334 - Shinchan - Aventuras en Cineland (ESP) - { "BC2J" }, // 2341 - Crayon Shin chan - Densetsu wo Yobu Omake no Miyako Shockgaan (JPN) - { "BUOJ" }, // 2345 - Minna no Soft Series - Numpla Advance (JPN) - { "AN3J" }, // 2347 - Minna no Soft Series - Kawaii Koneko (JPN) - { "BUOE" }, // 2366 - Dr. Sudoku (USA) - { "B8SE" }, // 2368 - Spyro Superpack - Season of Ice + Season of Flame (USA) - { "U32J" }, // 2369 - Zoku Bokura no Taiyou - Taiyou Shounen Django (v01) (JPN) - { "BBMJ" }, // 2388 - B-Legend! Battle B-Daman - Moero! B-Damashi!! (JPN) - { "B53E" }, // 2395 - Crash & Spyro Superpack - Ripto's Rampage + The Cortex Conspiracy (USA) - { "BH9P" }, // 2399 - Tony Hawk's American Sk8land (EUR) - { "BAQP" }, // 2406 - Premier Action Soccer (EUR) - { "AB4E" }, // 2432 - Summon Night - Swordcraft Story (USA) - { "BBYE" }, // 2436 - Barnyard (USA) - { "BDXE" }, // 2438 - Battle B-Daman (USA) - { "B7ME" }, // 2446 - Madden NFL 07 (USA) - { "BUFE" }, // 2447 - 2 Games in 1 - Dragon Ball Z - Buu's Fury + Dragon Ball GT - Transformation (USA) - { "BUOP" }, // 2449 - Dr. Sudoku (EUR) - { "BBYX" }, // 2461 - Barnyard (EUR) - { "BFEE" }, // 2466 - Dogz - Fashion (USA) - { "AN3X" }, // 2468 - Catz (EUR) - { "BBME" }, // 2481 - Battle B-Daman - Fire Spirits (USA) - { "BQZE" }, // 2487 - Avatar - The Last Airbender (USA) - { "BXFE" }, // 2498 - Bratz - Forever Diamondz (USA) - { "BT8E" }, // 2500 - Teenage Mutant Ninja Turtles Double Pack (USA) - { "B3YE" }, // 2504 - The Legend of Spyro - A New Beginning (USA) - { "BSKE" }, // 2505 - Summon Night - Swordcraft Story 2 (USA) - { "BHBP" }, // 2513 - Best Friends - Hunde & Katzen (EUR) - { "B3YP" }, // 2519 - The Legend Of Spyro - A New Beginning (EUR) - { "BXFD" }, // 2520 - Bratz - Forever Diamondz (GER) - { "BRLP" }, // 2532 - Rebelstar - Tactical Command (EUR) - { "BENP" }, // 2560 - Eragon (EUR) - { "BENE" }, // 2561 - Eragon (USA) - { "BYUE" }, // 2573 - Yggdra Union - We'll Never Fight Alone (USA) - { "BFRP" }, // 2588 - My Animal Centre in Africa (EUR) - { "BFQE" }, // 2606 - Mazes of Fate (USA) - { "BQZP" }, // 2607 - Avatar - The Legend of Aang (EUR) - { "BFEP" }, // 2613 - Dogz Fashion (EUR) - { "BC2S" }, // 2631 - Shinchan contra los Munecos de Shock Gahn (ESP) - { "BXFP" }, // 2640 - Bratz - Forever Diamondz (EUR) - { "BEFP" }, // 2652 - Best Friends - My Horse (EUR) - { "BNBE" }, // 2695 - Petz Vet (USA) - { "BIME" }, // 2696 - Dogz 2 (USA) - { "BQTX" }, // 2710 - Mijn Dierenpension (EUR) - { "BIMP" }, // 2720 - Dogz 2 (EUR) - { "BIMX" }, // 2727 - Dogz 2 (EUR) - { "BHUE" }, // 2730 - Horsez (USA) - { "BQTF" }, // 2732 - Lea - Passion Veterinaire (FRA) - { "BJPP" }, // 2770 - Harry Potter Collection (EUR) - { "BEFE" }, // 2772 - Let's Ride - Friends Forever (USA) - { "BHBE" }, // 2774 - Best Friends - Dogs & Cats (USA) - { "BYUP" }, // 2781 - Yggdra Union - We'll Never Fight Alone (EUR) - { "ACOJ" }, // 2787 - Manga-ka Debut Monogatari (v01) (JPN) - { "BFDJ" }, // 2789 - Fruit Mura no Doubutsu Tachi (v02) (JPN) - // gba scan no. 8 - { "AYSJ" }, // 0229 - Gakkou wo Tsukurou!! Advance (JPN) - { "ASNJ" }, // 0260 - Sansara Naga 1x2 (JPN) - { "ACTX" }, // 0265 - Creatures (EUR) - { "ASFJ" }, // 0359 - Slot! Pro Advance - Takarabune & Ooedo Sakurafubuki 2 (JPN) - { "ABGJ" }, // 0404 - Sweet Cookie Pie (JPN) - { "ARNJ" }, // 0615 - Harukanaru Toki no Naka de (JPN) - { "AOPJ" }, // 0646 - Oshare Princess (JPN) - { "AHVJ" }, // 0664 - Nakayoshi Youchien - Sukoyaka Enji Ikusei Game (JPN) - { "AYCE" }, // 0758 - Phantasy Star Collection (USA) - { "AYCP" }, // 0877 - Phantasy Star Collection (EUR) - { "ATBJ" }, // 0948 - Slot! Pro 2 Advance - GoGo Juggler & New Tairyou (JPN) - { "A83J" }, // 1012 - Hamster Monogatari 3 GBA (JPN) - { "AEHJ" }, // 1014 - Puzzle & Tantei Collection (JPN) - { "BWDJ" }, // 1114 - Wan Nyan Doubutsu Byouin (JPN) - { "BKZE" }, // 1138 - Banjo-Kazooie - Grunty's Revenge (USA) - { "FZLJ" }, // 1369 - Famicom Mini Series 5 - Zelda no Denzetsu 1 (JPN) - { "BPVP" }, // 1738 - Pferd & Pony - Mein Pferdehof (EUR) - { "ACTY" }, // 1763 - Creatures (EUR) - { "BITJ" }, // 1811 - Onmyou Taisenki Zeroshik (JPN) - { "BOVJ" }, // 1848 - Bouken-Ou Beet - Busters Road (JPN) - { "BT3J" }, // 1852 - Tantei Jinguuji Saburou Shiroi Kage no Syoujyo (JPN) - { "BG8J" }, // 1853 - Ganbare! Dodge Fighters (JPN) - { "BLDS" }, // 1919 - 2 Games in 1 - Lizzie McGuire - Disney Princesas (ESP) - { "BLDP" }, // 1934 - 2 Games in 1 - Lizzie McGuire - Disney Princess (EUR) - { "B8MP" }, // 1993 - Mario Party Advance (EUR) - { "BYPP" }, // 2155 - Horse & Pony - Let`s Ride 2 (EUR) - { "B8AE" }, // 2174 - Crash Superpack - N-Tranced + Nitro Kart (USA) - { "BL9E" }, // 2329 - Let's Ride! Dreamer (USA) - { "B34E" }, // 2331 - Let's Ride! - Sunshine Stables (USA) - { "BQVP" }, // 2414 - Meine Tierarztpraxis (EUR) - { "BHUP" }, // 2480 - Horse and Pony - My Stud Farm (EUR) - { "BPVX" }, // 2645 - Pippa Funnell - Stable Adventures (EUR) - { "BYPX" }, // 2653 - Pippa Funell 2 (EUR) - { "BQVX" }, // 2711 - Mijn Dierenpraktijk (EUR) - { "BPVY" }, // 2712 - Paard & Pony - Mijn Manege (EUR) - { "BYPY" }, // 2713 - Paard & Pony - Paard in Galop (EUR) - { "B54E" }, // 2757 - Crash & Spyro Superpack - The Huge Adventure + Season of Ice (USA) - // gba scan no. 9 - { "BKZX" }, // 1199 - Banjo-Kazooie - Grunty's Revenge (EUR) - { "BKZI" }, // 1381 - Banjo Kazooie - La Vendetta di Grunty (ITA) - { "BAZJ" }, // 1710 - Akachan Doubutsu Sono (JPN) - { "BKZS" }, // 1883 - Banjo Kazooie - La Venganza de Grunty (ESP) - // gba scan no. 11 - { "A9BP" }, // 0925 - Medabots - Rokusho Version (EUR) - { "A3IJ" }, // bokura no taiyou - taiyou action rpg - kabunushi go-yuutai ban (japan) (demo) -}; - -static const gba_chip_fix_item gba_chip_fix_rumble_list[] = -{ - { "KYGP" }, // Yoshi's Universal Gravitation (EUR) - { "KYGE" }, // Yoshi - Topsy-Turvy (USA) - { "KYGJ" }, // Yoshi no Banyuuinryoku (JPN) - { "KHPJ" } // Koro Koro Puzzle - Happy Panechu! (JPN) -}; - - -#endif +#endif // MAME_BUS_GBA_GBA_SLOT_H diff --git a/src/devices/bus/gba/rom.cpp b/src/devices/bus/gba/rom.cpp index 78875860300..d6aad07ac0d 100644 --- a/src/devices/bus/gba/rom.cpp +++ b/src/devices/bus/gba/rom.cpp @@ -21,127 +21,122 @@ // gba_rom_device - constructor //------------------------------------------------- -const device_type GBA_ROM_STD = device_creator; -const device_type GBA_ROM_SRAM = device_creator; -const device_type GBA_ROM_DRILLDOZ = device_creator; -const device_type GBA_ROM_WARIOTWS = device_creator; -const device_type GBA_ROM_EEPROM = device_creator; -const device_type GBA_ROM_YOSHIUG = device_creator; -const device_type GBA_ROM_EEPROM64 = device_creator; -const device_type GBA_ROM_BOKTAI = device_creator; -const device_type GBA_ROM_FLASH = device_creator; -const device_type GBA_ROM_FLASH_RTC = device_creator; -const device_type GBA_ROM_FLASH1M = device_creator; -const device_type GBA_ROM_FLASH1M_RTC = device_creator; -const device_type GBA_ROM_3DMATRIX = device_creator; +DEFINE_DEVICE_TYPE(GBA_ROM_STD, gba_rom_device, "gba_rom", "GBA Carts") +DEFINE_DEVICE_TYPE(GBA_ROM_SRAM, gba_rom_sram_device, "gba_rom_sram", "GBA Carts + SRAM") +DEFINE_DEVICE_TYPE(GBA_ROM_DRILLDOZ, gba_rom_drilldoz_device, "gba_rom_drilldoz", "GBA Carts + SRAM + Rumble") +DEFINE_DEVICE_TYPE(GBA_ROM_WARIOTWS, gba_rom_wariotws_device, "gba_rom_wariotws", "GBA Carts + SRAM + Rumble + Gyroscope") +DEFINE_DEVICE_TYPE(GBA_ROM_EEPROM, gba_rom_eeprom_device, "gba_rom_eeprom", "GBA Carts + EEPROM") +DEFINE_DEVICE_TYPE(GBA_ROM_YOSHIUG, gba_rom_yoshiug_device, "gba_rom_yoshiug", "GBA Carts + EEPROM + Tilt Sensor") +DEFINE_DEVICE_TYPE(GBA_ROM_EEPROM64, gba_rom_eeprom64_device, "gba_rom_eeprom64", "GBA Carts + EEPROM 64K") +DEFINE_DEVICE_TYPE(GBA_ROM_BOKTAI, gba_rom_boktai_device, "gba_rom_boktai", "GBA Carts + EEPROM 64K + RTC + Light Sensor") +DEFINE_DEVICE_TYPE(GBA_ROM_FLASH, gba_rom_flash_device, "gba_rom_flash", "GBA Carts + Panasonic Flash") +DEFINE_DEVICE_TYPE(GBA_ROM_FLASH_RTC, gba_rom_flash_rtc_device, "gba_rom_flash_rtc", "GBA Carts + Panasonic Flash + RTC") +DEFINE_DEVICE_TYPE(GBA_ROM_FLASH1M, gba_rom_flash1m_device, "gba_rom_flash1m", "GBA Carts + Sanyo Flash") +DEFINE_DEVICE_TYPE(GBA_ROM_FLASH1M_RTC, gba_rom_flash1m_rtc_device, "gba_rom_flash1m_rtc", "GBA Carts + Sanyo Flash + RTC") +DEFINE_DEVICE_TYPE(GBA_ROM_3DMATRIX, gba_rom_3dmatrix_device, "gba_rom_3dmatrix", "3D Matrix Memory Mapper") -gba_rom_device::gba_rom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_gba_cart_interface( mconfig, *this ) +gba_rom_device::gba_rom_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) + , device_gba_cart_interface(mconfig, *this) { } gba_rom_device::gba_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, GBA_ROM_STD, "GBA Carts", tag, owner, clock, "gba_rom", __FILE__), - device_gba_cart_interface( mconfig, *this ) + : gba_rom_device(mconfig, GBA_ROM_STD, tag, owner, clock) { } -gba_rom_sram_device::gba_rom_sram_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : gba_rom_device(mconfig, type, name, tag, owner, clock, shortname, source) +gba_rom_sram_device::gba_rom_sram_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : gba_rom_device(mconfig, type, tag, owner, clock) { } gba_rom_sram_device::gba_rom_sram_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : gba_rom_device(mconfig, GBA_ROM_SRAM, "GBA Carts + SRAM", tag, owner, clock, "gba_sram", __FILE__) + : gba_rom_sram_device(mconfig, GBA_ROM_SRAM, tag, owner, clock) { } gba_rom_drilldoz_device::gba_rom_drilldoz_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : gba_rom_sram_device(mconfig, GBA_ROM_DRILLDOZ, "GBA Carts + SRAM + Rumble", tag, owner, clock, "gba_drilldoz", __FILE__) + : gba_rom_sram_device(mconfig, GBA_ROM_DRILLDOZ, tag, owner, clock) { } gba_rom_wariotws_device::gba_rom_wariotws_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : gba_rom_sram_device(mconfig, GBA_ROM_WARIOTWS, "GBA Carts + SRAM + Rumble + Gyroscope", tag, owner, clock, "gba_wariotws", __FILE__), - m_gyro_z(*this, "GYROZ") + : gba_rom_sram_device(mconfig, GBA_ROM_WARIOTWS, tag, owner, clock) + , m_gyro_z(*this, "GYROZ") { } -gba_rom_eeprom_device::gba_rom_eeprom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : gba_rom_device(mconfig, type, name, tag, owner, clock, shortname, source) +gba_rom_eeprom_device::gba_rom_eeprom_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : gba_rom_device(mconfig, type, tag, owner, clock) { } gba_rom_eeprom_device::gba_rom_eeprom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : gba_rom_device(mconfig, GBA_ROM_EEPROM, "GBA Carts + EEPROM", tag, owner, clock, "gba_eeprom", __FILE__) + : gba_rom_eeprom_device(mconfig, GBA_ROM_EEPROM, tag, owner, clock) { } gba_rom_yoshiug_device::gba_rom_yoshiug_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : gba_rom_eeprom_device(mconfig, GBA_ROM_YOSHIUG, "GBA Carts + EEPROM + Tilt Sensor", tag, owner, clock, "gba_yoshiug", __FILE__), - m_tilt_x(*this, "TILTX"), - m_tilt_y(*this, "TILTY") + : gba_rom_eeprom_device(mconfig, GBA_ROM_YOSHIUG, tag, owner, clock) + , m_tilt_x(*this, "TILTX") + , m_tilt_y(*this, "TILTY") { } -gba_rom_eeprom64_device::gba_rom_eeprom64_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : gba_rom_device(mconfig, type, name, tag, owner, clock, shortname, source) +gba_rom_eeprom64_device::gba_rom_eeprom64_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : gba_rom_device(mconfig, type, tag, owner, clock) { } gba_rom_eeprom64_device::gba_rom_eeprom64_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : gba_rom_device(mconfig, GBA_ROM_EEPROM64, "GBA Carts + EEPROM 64K", tag, owner, clock, "gba_eeprom64", __FILE__) + : gba_rom_eeprom64_device(mconfig, GBA_ROM_EEPROM64, tag, owner, clock) { } gba_rom_boktai_device::gba_rom_boktai_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : gba_rom_eeprom64_device(mconfig, GBA_ROM_BOKTAI, "GBA Carts + EEPROM 64K + RTC", tag, owner, clock, "gba_boktai", __FILE__), - m_sensor(*this, "LIGHTSENSE") + : gba_rom_eeprom64_device(mconfig, GBA_ROM_BOKTAI, tag, owner, clock) + , m_sensor(*this, "LIGHTSENSE") { } -gba_rom_flash_device::gba_rom_flash_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : gba_rom_device(mconfig, type, name, tag, owner, clock, shortname, source), - m_flash_mask(0), - m_flash(*this, "flash") +gba_rom_flash_device::gba_rom_flash_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : gba_rom_device(mconfig, type, tag, owner, clock) + , m_flash_mask(0) + , m_flash(*this, "flash") { } gba_rom_flash_device::gba_rom_flash_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : gba_rom_device(mconfig, GBA_ROM_FLASH, "GBA Carts + Panasonic Flash", tag, owner, clock, "gba_flash", __FILE__), - m_flash_mask(0), - m_flash(*this, "flash") + : gba_rom_flash_device(mconfig, GBA_ROM_FLASH, tag, owner, clock) { } gba_rom_flash_rtc_device::gba_rom_flash_rtc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : gba_rom_flash_device(mconfig, GBA_ROM_FLASH_RTC, "GBA Carts + Panasonic Flash + RTC", tag, owner, clock, "gba_flash_rtc", __FILE__) + : gba_rom_flash_device(mconfig, GBA_ROM_FLASH_RTC, tag, owner, clock) { } -gba_rom_flash1m_device::gba_rom_flash1m_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : gba_rom_device(mconfig, type, name, tag, owner, clock, shortname, source), - m_flash_mask(0), - m_flash(*this, "flash") +gba_rom_flash1m_device::gba_rom_flash1m_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : gba_rom_device(mconfig, type, tag, owner, clock) + , m_flash_mask(0) + , m_flash(*this, "flash") { } gba_rom_flash1m_device::gba_rom_flash1m_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : gba_rom_device(mconfig, GBA_ROM_FLASH1M, "GBA Carts + Sanyo Flash", tag, owner, clock, "gba_flash1m", __FILE__), - m_flash_mask(0), - m_flash(*this, "flash") + : gba_rom_flash1m_device(mconfig, GBA_ROM_FLASH1M, tag, owner, clock) { } gba_rom_flash1m_rtc_device::gba_rom_flash1m_rtc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : gba_rom_flash1m_device(mconfig, GBA_ROM_FLASH1M_RTC, "GBA Carts + Sanyo Flash + RTC", tag, owner, clock, "gba_flash1m_rtc", __FILE__) + : gba_rom_flash1m_device(mconfig, GBA_ROM_FLASH1M_RTC, tag, owner, clock) { } gba_rom_3dmatrix_device::gba_rom_3dmatrix_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : gba_rom_device(mconfig, GBA_ROM_3DMATRIX, "GBA Carts + 3D Matrix Memory Mapper", tag, owner, clock, "gba_3dmatrix", __FILE__) + : gba_rom_device(mconfig, GBA_ROM_3DMATRIX, tag, owner, clock) { } diff --git a/src/devices/bus/gba/rom.h b/src/devices/bus/gba/rom.h index a7886c79c59..118f075e416 100644 --- a/src/devices/bus/gba/rom.h +++ b/src/devices/bus/gba/rom.h @@ -1,20 +1,15 @@ // license:BSD-3-Clause // copyright-holders:R. Belmont,Ryan Holtz,Fabio Priuli -#ifndef __GBA_ROM_H -#define __GBA_ROM_H +#ifndef MAME_BUS_GBA_ROM_H +#define MAME_BUS_GBA_ROM_H + +#pragma once #include "gba_slot.h" #include "machine/intelfsh.h" // GBA RTC device -enum { - S3511_RTC_IDLE = 0, - S3511_RTC_DATAOUT, - S3511_RTC_DATAIN, - S3511_RTC_COMMAND -}; - class gba_s3511_device { public: @@ -28,6 +23,14 @@ public: void write(uint16_t data, int gpio_dirs); protected: + enum + { + S3511_RTC_IDLE = 0, + S3511_RTC_DATAOUT, + S3511_RTC_DATAIN, + S3511_RTC_COMMAND + }; + int m_phase; uint8_t m_last_val, m_bits, m_command; int m_data_len; @@ -41,18 +44,6 @@ protected: // GBA EEPROM device // TODO: is it possible to merge this with the standard EEPROM devices in the core? -enum -{ - EEP_IDLE = 0, - EEP_COMMAND, - EEP_ADDR, - EEP_AFTERADDR, - EEP_READ, - EEP_WRITE, - EEP_AFTERWRITE, - EEP_READFIRST -}; - class gba_eeprom_device { public: @@ -63,6 +54,18 @@ public: void write(uint32_t data); protected: + enum + { + EEP_IDLE = 0, + EEP_COMMAND, + EEP_ADDR, + EEP_AFTERADDR, + EEP_READ, + EEP_WRITE, + EEP_AFTERWRITE, + EEP_READFIRST + }; + uint8_t *m_data; uint32_t m_data_size; int m_state; @@ -85,13 +88,8 @@ class gba_rom_device : public device_t, { public: // construction/destruction - gba_rom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); gba_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - // reading and writing virtual DECLARE_READ32_MEMBER(read_rom) override { return m_rom[offset]; } @@ -99,7 +97,14 @@ public: virtual DECLARE_WRITE32_MEMBER(write_gpio) override; virtual uint16_t gpio_dev_read(int gpio_dirs) { return 0; } - virtual void gpio_dev_write(uint16_t data, int gpio_dirs) {} + virtual void gpio_dev_write(uint16_t data, int gpio_dirs) { } + +protected: + gba_rom_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; private: uint16_t m_gpio_regs[4]; @@ -113,12 +118,14 @@ class gba_rom_sram_device : public gba_rom_device { public: // construction/destruction - gba_rom_sram_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); gba_rom_sram_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // reading and writing virtual DECLARE_READ32_MEMBER(read_ram) override; virtual DECLARE_WRITE32_MEMBER(write_ram) override; + +protected: + gba_rom_sram_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); }; @@ -145,13 +152,14 @@ public: virtual ioport_constructor device_input_ports() const override; + virtual uint16_t gpio_dev_read(int gpio_dirs) override; + virtual void gpio_dev_write(uint16_t data, int gpio_dirs) override; + +protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; - virtual uint16_t gpio_dev_read(int gpio_dirs) override; - virtual void gpio_dev_write(uint16_t data, int gpio_dirs) override; - private: uint8_t m_last_val; int m_counter; @@ -165,18 +173,20 @@ class gba_rom_flash_device : public gba_rom_device { public: // construction/destruction - gba_rom_flash_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); gba_rom_flash_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // device-level overrides virtual machine_config_constructor device_mconfig_additions() const override; - virtual void device_reset() override; // reading and writing virtual DECLARE_READ32_MEMBER(read_ram) override; virtual DECLARE_WRITE32_MEMBER(write_ram) override; protected: + gba_rom_flash_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + virtual void device_reset() override; + //uint32_t m_flash_size; uint32_t m_flash_mask; required_device m_flash; @@ -192,10 +202,12 @@ public: gba_rom_flash_rtc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // device-level overrides - virtual void device_start() override; virtual uint16_t gpio_dev_read(int gpio_dirs) override; virtual void gpio_dev_write(uint16_t data, int gpio_dirs) override; +protected: + virtual void device_start() override; + private: std::unique_ptr m_rtc; }; @@ -207,18 +219,20 @@ class gba_rom_flash1m_device : public gba_rom_device { public: // construction/destruction - gba_rom_flash1m_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); gba_rom_flash1m_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // device-level overrides virtual machine_config_constructor device_mconfig_additions() const override; - virtual void device_reset() override; // reading and writing virtual DECLARE_READ32_MEMBER(read_ram) override; virtual DECLARE_WRITE32_MEMBER(write_ram) override; protected: + gba_rom_flash1m_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + virtual void device_reset() override; + //uint32_t m_flash_size; uint32_t m_flash_mask; required_device m_flash; @@ -234,10 +248,12 @@ public: gba_rom_flash1m_rtc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // device-level overrides - virtual void device_start() override; virtual uint16_t gpio_dev_read(int gpio_dirs) override; virtual void gpio_dev_write(uint16_t data, int gpio_dirs) override; +protected: + virtual void device_start() override; + private: std::unique_ptr m_rtc; }; @@ -249,16 +265,18 @@ class gba_rom_eeprom_device : public gba_rom_device { public: // construction/destruction - gba_rom_eeprom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); gba_rom_eeprom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - // reading and writing virtual DECLARE_READ32_MEMBER(read_ram) override; virtual DECLARE_WRITE32_MEMBER(write_ram) override; +protected: + gba_rom_eeprom_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual void device_start() override; + private: std::unique_ptr m_eeprom; }; @@ -273,14 +291,16 @@ public: gba_rom_yoshiug_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; virtual ioport_constructor device_input_ports() const override; // reading and writing virtual DECLARE_READ32_MEMBER(read_tilt) override; virtual DECLARE_WRITE32_MEMBER(write_tilt) override; +protected: + virtual void device_start() override; + virtual void device_reset() override; + private: int m_tilt_ready; uint16_t m_xpos, m_ypos; @@ -295,17 +315,18 @@ class gba_rom_eeprom64_device : public gba_rom_device { public: // construction/destruction - gba_rom_eeprom64_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); gba_rom_eeprom64_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - // reading and writing virtual DECLARE_READ32_MEMBER(read_ram) override; virtual DECLARE_WRITE32_MEMBER(write_ram) override; protected: + gba_rom_eeprom64_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual void device_start() override; + std::unique_ptr m_eeprom; }; @@ -319,14 +340,15 @@ public: gba_rom_boktai_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; virtual ioport_constructor device_input_ports() const override; virtual uint16_t gpio_dev_read(int gpio_dirs) override; virtual void gpio_dev_write(uint16_t data, int gpio_dirs) override; private: + virtual void device_start() override; + virtual void device_reset() override; + std::unique_ptr m_rtc; required_ioport m_sensor; uint8_t m_last_val; @@ -342,33 +364,33 @@ public: // construction/destruction gba_rom_3dmatrix_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + // reading and writing + virtual DECLARE_WRITE32_MEMBER(write_mapper) override; + +protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; - // reading and writing - virtual DECLARE_WRITE32_MEMBER(write_mapper) override; - private: uint32_t m_src, m_dst, m_nblock; }; // device type definition -extern const device_type GBA_ROM_STD; -extern const device_type GBA_ROM_SRAM; -extern const device_type GBA_ROM_DRILLDOZ; -extern const device_type GBA_ROM_WARIOTWS; -extern const device_type GBA_ROM_EEPROM; -extern const device_type GBA_ROM_YOSHIUG; -extern const device_type GBA_ROM_EEPROM64; -extern const device_type GBA_ROM_BOKTAI; -extern const device_type GBA_ROM_FLASH; -extern const device_type GBA_ROM_FLASH_RTC; -extern const device_type GBA_ROM_FLASH1M; -extern const device_type GBA_ROM_FLASH1M_RTC; -extern const device_type GBA_ROM_3DMATRIX; - - - -#endif +DECLARE_DEVICE_TYPE(GBA_ROM_STD, gba_rom_device) +DECLARE_DEVICE_TYPE(GBA_ROM_SRAM, gba_rom_sram_device) +DECLARE_DEVICE_TYPE(GBA_ROM_DRILLDOZ, gba_rom_drilldoz_device) +DECLARE_DEVICE_TYPE(GBA_ROM_WARIOTWS, gba_rom_wariotws_device) +DECLARE_DEVICE_TYPE(GBA_ROM_EEPROM, gba_rom_eeprom_device) +DECLARE_DEVICE_TYPE(GBA_ROM_YOSHIUG, gba_rom_yoshiug_device) +DECLARE_DEVICE_TYPE(GBA_ROM_EEPROM64, gba_rom_eeprom64_device) +DECLARE_DEVICE_TYPE(GBA_ROM_BOKTAI, gba_rom_boktai_device) +DECLARE_DEVICE_TYPE(GBA_ROM_FLASH, gba_rom_flash_device) +DECLARE_DEVICE_TYPE(GBA_ROM_FLASH_RTC, gba_rom_flash_rtc_device) +DECLARE_DEVICE_TYPE(GBA_ROM_FLASH1M, gba_rom_flash1m_device) +DECLARE_DEVICE_TYPE(GBA_ROM_FLASH1M_RTC, gba_rom_flash1m_rtc_device) +DECLARE_DEVICE_TYPE(GBA_ROM_3DMATRIX, gba_rom_3dmatrix_device) + + +#endif // MAME_BUS_GBA_ROM_H diff --git a/src/devices/bus/generic/carts.cpp b/src/devices/bus/generic/carts.cpp index b5a7dc7514a..032899823f8 100644 --- a/src/devices/bus/generic/carts.cpp +++ b/src/devices/bus/generic/carts.cpp @@ -9,6 +9,9 @@ #include "emu.h" #include "carts.h" +#include "rom.h" +#include "ram.h" + SLOT_INTERFACE_START(generic_plain_slot) SLOT_INTERFACE_INTERNAL("rom", GENERIC_ROM_PLAIN) diff --git a/src/devices/bus/generic/carts.h b/src/devices/bus/generic/carts.h index e7989272b32..a5b4660b4dc 100644 --- a/src/devices/bus/generic/carts.h +++ b/src/devices/bus/generic/carts.h @@ -6,18 +6,14 @@ **********************************************************************/ -#pragma once - -#ifndef __GENERIC_CARTS_H__ -#define __GENERIC_CARTS_H__ +#ifndef MAME_BUS_GENERIC_CARTS_H +#define MAME_BUS_GENERIC_CARTS_H - -#include "rom.h" -#include "ram.h" +#pragma once SLOT_INTERFACE_EXTERN( generic_plain_slot ); SLOT_INTERFACE_EXTERN( generic_linear_slot ); SLOT_INTERFACE_EXTERN( generic_romram_plain_slot ); -#endif +#endif // MAME_BUS_GENERIC_CARTS_H diff --git a/src/devices/bus/generic/ram.cpp b/src/devices/bus/generic/ram.cpp index 15db67732cc..601db4d0470 100644 --- a/src/devices/bus/generic/ram.cpp +++ b/src/devices/bus/generic/ram.cpp @@ -26,56 +26,56 @@ // constructor //------------------------------------------------- -const device_type GENERIC_RAM_32K_PLAIN = device_creator; -const device_type GENERIC_RAM_64K_PLAIN = device_creator; -const device_type GENERIC_RAM_128K_PLAIN = device_creator; -const device_type GENERIC_RAM_32K_LINEAR = device_creator; -const device_type GENERIC_RAM_64K_LINEAR = device_creator; -const device_type GENERIC_RAM_128K_LINEAR = device_creator; - - -generic_ram_plain_device::generic_ram_plain_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, uint32_t size, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_generic_cart_interface(mconfig, *this), - m_size(size) +DEFINE_DEVICE_TYPE(GENERIC_RAM_32K_PLAIN, generic_ram_32k_plain_device, "generic_ram32p", "Generic RAM 32K (plain mapping)") +DEFINE_DEVICE_TYPE(GENERIC_RAM_64K_PLAIN, generic_ram_64k_plain_device, "generic_ram64p", "Generic RAM 64K (plain mapping)") +DEFINE_DEVICE_TYPE(GENERIC_RAM_128K_PLAIN, generic_ram_128k_plain_device, "generic_ram128p", "Generic RAM 128K (plain mapping)") +DEFINE_DEVICE_TYPE(GENERIC_RAM_32K_LINEAR, generic_ram_32k_linear_device, "generic_ram32l", "Generic RAM 32K (linear mapping)") +DEFINE_DEVICE_TYPE(GENERIC_RAM_64K_LINEAR, generic_ram_64k_linear_device, "generic_ram64l", "Generic RAM 64K (linear mapping)") +DEFINE_DEVICE_TYPE(GENERIC_RAM_128K_LINEAR, generic_ram_128k_linear_device, "generic_ram128l", "Generic RAM 128K (linear mapping)") + + +generic_ram_plain_device::generic_ram_plain_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint32_t size) + : device_t(mconfig, type, tag, owner, clock) + , device_generic_cart_interface(mconfig, *this) + , m_size(size) { } -generic_ram_linear_device::generic_ram_linear_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, uint32_t size, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_generic_cart_interface(mconfig, *this), - m_size(size) +generic_ram_linear_device::generic_ram_linear_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint32_t size) + : device_t(mconfig, type, tag, owner, clock) + , device_generic_cart_interface(mconfig, *this) + , m_size(size) { } generic_ram_32k_plain_device::generic_ram_32k_plain_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : generic_ram_plain_device(mconfig, GENERIC_RAM_32K_PLAIN, "Generic RAM 32K (plain mapping)", tag, owner, clock, 0x8000, "generic_ram32p", __FILE__) + : generic_ram_plain_device(mconfig, GENERIC_RAM_32K_PLAIN, tag, owner, clock, 0x8000) { } generic_ram_64k_plain_device::generic_ram_64k_plain_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : generic_ram_plain_device(mconfig, GENERIC_RAM_64K_PLAIN, "Generic RAM 64K (plain mapping)", tag, owner, clock, 0x10000, "generic_ram64p", __FILE__) + : generic_ram_plain_device(mconfig, GENERIC_RAM_64K_PLAIN, tag, owner, clock, 0x10000) { } generic_ram_128k_plain_device::generic_ram_128k_plain_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : generic_ram_plain_device(mconfig, GENERIC_RAM_128K_PLAIN, "Generic RAM 128K (plain mapping)", tag, owner, clock, 0x20000, "generic_ram128p", __FILE__) + : generic_ram_plain_device(mconfig, GENERIC_RAM_128K_PLAIN, tag, owner, clock, 0x20000) { } generic_ram_32k_linear_device::generic_ram_32k_linear_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : generic_ram_linear_device(mconfig, GENERIC_RAM_32K_LINEAR, "Generic RAM 32K (linear mapping)", tag, owner, clock, 0x8000, "generic_ram32l", __FILE__) + : generic_ram_linear_device(mconfig, GENERIC_RAM_32K_LINEAR, tag, owner, clock, 0x8000) { } generic_ram_64k_linear_device::generic_ram_64k_linear_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : generic_ram_linear_device(mconfig, GENERIC_RAM_64K_LINEAR, "Generic RAM 64K (linear mapping)", tag, owner, clock, 0x10000, "generic_ram64l", __FILE__) + : generic_ram_linear_device(mconfig, GENERIC_RAM_64K_LINEAR, tag, owner, clock, 0x10000) { } generic_ram_128k_linear_device::generic_ram_128k_linear_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : generic_ram_linear_device(mconfig, GENERIC_RAM_128K_LINEAR, "Generic RAM 128K (linear mapping)", tag, owner, clock, 0x20000, "generic_ram128l", __FILE__) + : generic_ram_linear_device(mconfig, GENERIC_RAM_128K_LINEAR, tag, owner, clock, 0x20000) { } diff --git a/src/devices/bus/generic/ram.h b/src/devices/bus/generic/ram.h index 213ed8178db..aa8323ba8af 100644 --- a/src/devices/bus/generic/ram.h +++ b/src/devices/bus/generic/ram.h @@ -1,27 +1,29 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __GENERIC_RAM_H -#define __GENERIC_RAM_H +#ifndef MAME_BUS_GENERIC_RAM_H +#define MAME_BUS_GENERIC_RAM_H + +#pragma once #include "slot.h" // ======================> generic_ram_plain_device -class generic_ram_plain_device : public device_t, - public device_generic_cart_interface +class generic_ram_plain_device : public device_t, public device_generic_cart_interface { public: + // reading and writing + virtual DECLARE_READ8_MEMBER(read_ram) override; + virtual DECLARE_WRITE8_MEMBER(write_ram) override; + +protected: // construction/destruction - generic_ram_plain_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, uint32_t size, const char *shortname, const char *source); + generic_ram_plain_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint32_t size); // device-level overrides virtual void device_start() override; - // reading and writing - virtual DECLARE_READ8_MEMBER(read_ram) override; - virtual DECLARE_WRITE8_MEMBER(write_ram) override; - private: uint32_t m_size; }; @@ -29,20 +31,20 @@ private: // ======================> generic_ram_linear_device -class generic_ram_linear_device : public device_t, - public device_generic_cart_interface +class generic_ram_linear_device : public device_t, public device_generic_cart_interface { public: + // reading and writing + virtual DECLARE_READ8_MEMBER(read_ram) override; + virtual DECLARE_WRITE8_MEMBER(write_ram) override; + +protected: // construction/destruction - generic_ram_linear_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, uint32_t size, const char *shortname, const char *source); + generic_ram_linear_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint32_t size); // device-level overrides virtual void device_start() override; - // reading and writing - virtual DECLARE_READ8_MEMBER(read_ram) override; - virtual DECLARE_WRITE8_MEMBER(write_ram) override; - private: uint32_t m_size; }; @@ -98,12 +100,12 @@ public: // device type definition -extern const device_type GENERIC_RAM_32K_PLAIN; -extern const device_type GENERIC_RAM_64K_PLAIN; -extern const device_type GENERIC_RAM_128K_PLAIN; -extern const device_type GENERIC_RAM_32K_LINEAR; -extern const device_type GENERIC_RAM_64K_LINEAR; -extern const device_type GENERIC_RAM_128K_LINEAR; +DECLARE_DEVICE_TYPE(GENERIC_RAM_32K_PLAIN, generic_ram_32k_plain_device) +DECLARE_DEVICE_TYPE(GENERIC_RAM_64K_PLAIN, generic_ram_64k_plain_device) +DECLARE_DEVICE_TYPE(GENERIC_RAM_128K_PLAIN, generic_ram_128k_plain_device) +DECLARE_DEVICE_TYPE(GENERIC_RAM_32K_LINEAR, generic_ram_32k_linear_device) +DECLARE_DEVICE_TYPE(GENERIC_RAM_64K_LINEAR, generic_ram_64k_linear_device) +DECLARE_DEVICE_TYPE(GENERIC_RAM_128K_LINEAR, generic_ram_128k_linear_device) -#endif +#endif // MAME_BUS_GENERIC_RAM_H diff --git a/src/devices/bus/generic/rom.cpp b/src/devices/bus/generic/rom.cpp index 9a965cc2ccb..3a63b1f90dc 100644 --- a/src/devices/bus/generic/rom.cpp +++ b/src/devices/bus/generic/rom.cpp @@ -26,34 +26,33 @@ // constructor //------------------------------------------------- -const device_type GENERIC_ROM_PLAIN = device_creator; -const device_type GENERIC_ROM_LINEAR = device_creator; -const device_type GENERIC_ROMRAM_PLAIN = device_creator; +DEFINE_DEVICE_TYPE(GENERIC_ROM_PLAIN, generic_rom_plain_device, "generic_rom_plain", "Generic ROM (plain mapping)") +DEFINE_DEVICE_TYPE(GENERIC_ROM_LINEAR, generic_rom_linear_device, "generic_rom_linear", "Generic ROM (linear mapping)") +DEFINE_DEVICE_TYPE(GENERIC_ROMRAM_PLAIN, generic_romram_plain_device, "generic_romram_plain", "Generic ROM + RAM (plain mapping)") -generic_rom_device::generic_rom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_generic_cart_interface(mconfig, *this) +generic_rom_device::generic_rom_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock), device_generic_cart_interface(mconfig, *this) { } -generic_rom_plain_device::generic_rom_plain_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : generic_rom_device(mconfig, type, name, tag, owner, clock, shortname, source) +generic_rom_plain_device::generic_rom_plain_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : generic_rom_device(mconfig, type, tag, owner, clock) { } generic_rom_plain_device::generic_rom_plain_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : generic_rom_device(mconfig, GENERIC_ROM_PLAIN, "Generic ROM (plain mapping)", tag, owner, clock, "generic_rom_plain", __FILE__) + : generic_rom_plain_device(mconfig, GENERIC_ROM_PLAIN, tag, owner, clock) { } generic_rom_linear_device::generic_rom_linear_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : generic_rom_device(mconfig, GENERIC_ROM_LINEAR, "Generic ROM (linear mapping)", tag, owner, clock, "generic_rom_linear", __FILE__) + : generic_rom_device(mconfig, GENERIC_ROM_LINEAR, tag, owner, clock) { } generic_romram_plain_device::generic_romram_plain_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : generic_rom_plain_device(mconfig, GENERIC_ROMRAM_PLAIN, "Generic ROM + RAM (plain mapping)", tag, owner, clock, "generic_romram_plain", __FILE__) + : generic_rom_plain_device(mconfig, GENERIC_ROMRAM_PLAIN, tag, owner, clock) { } diff --git a/src/devices/bus/generic/rom.h b/src/devices/bus/generic/rom.h index 1cf583c0858..2fc1011c25b 100644 --- a/src/devices/bus/generic/rom.h +++ b/src/devices/bus/generic/rom.h @@ -1,22 +1,23 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __GENERIC_ROM_H -#define __GENERIC_ROM_H +#ifndef MAME_BUS_GENERIC_ROM_H +#define MAME_BUS_GENERIC_ROM_H + +#pragma once #include "slot.h" // ======================> generic_rom_device -class generic_rom_device : public device_t, - public device_generic_cart_interface +class generic_rom_device : public device_t, public device_generic_cart_interface { -public: +protected: // construction/destruction - generic_rom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); + generic_rom_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); // device-level overrides - virtual void device_start() override {} + virtual void device_start() override { } }; @@ -26,13 +27,15 @@ class generic_rom_plain_device : public generic_rom_device { public: // construction/destruction - generic_rom_plain_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); generic_rom_plain_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // reading and writing virtual DECLARE_READ8_MEMBER(read_rom) override; virtual DECLARE_READ16_MEMBER(read16_rom) override; virtual DECLARE_READ32_MEMBER(read32_rom) override; + +protected: + generic_rom_plain_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); }; @@ -67,9 +70,9 @@ public: // device type definition -extern const device_type GENERIC_ROM_PLAIN; -extern const device_type GENERIC_ROM_LINEAR; -extern const device_type GENERIC_ROMRAM_PLAIN; +DECLARE_DEVICE_TYPE(GENERIC_ROM_PLAIN, generic_rom_plain_device) +DECLARE_DEVICE_TYPE(GENERIC_ROM_LINEAR, generic_rom_linear_device) +DECLARE_DEVICE_TYPE(GENERIC_ROMRAM_PLAIN, generic_romram_plain_device) -#endif +#endif // MAME_BUS_GENERIC_ROM_H diff --git a/src/devices/bus/generic/slot.cpp b/src/devices/bus/generic/slot.cpp index c7ae4a4bf0c..b2ee9c53f93 100644 --- a/src/devices/bus/generic/slot.cpp +++ b/src/devices/bus/generic/slot.cpp @@ -28,7 +28,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type GENERIC_SOCKET = device_creator; +DEFINE_DEVICE_TYPE(GENERIC_SOCKET, generic_slot_device, "generic_socket", "Generic ROM Socket / RAM Socket / Cartridge Slot") //------------------------------------------------- @@ -85,15 +85,16 @@ void device_generic_cart_interface::ram_alloc(uint32_t size) // generic_slot_device - constructor //------------------------------------------------- generic_slot_device::generic_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, GENERIC_SOCKET, "Generic ROM Socket / RAM Socket / Cartridge Slot", tag, owner, clock, "generic_socket", __FILE__), - device_image_interface(mconfig, *this), - device_slot_interface(mconfig, *this), - m_interface(nullptr), - m_default_card("rom"), - m_extensions("bin"), - m_must_be_loaded(false), - m_width(GENERIC_ROM8_WIDTH), - m_endianness(ENDIANNESS_LITTLE), m_cart(nullptr) + device_t(mconfig, GENERIC_SOCKET, tag, owner, clock), + device_image_interface(mconfig, *this), + device_slot_interface(mconfig, *this), + m_interface(nullptr), + m_default_card("rom"), + m_extensions("bin"), + m_must_be_loaded(false), + m_width(GENERIC_ROM8_WIDTH), + m_endianness(ENDIANNESS_LITTLE), + m_cart(nullptr) { } diff --git a/src/devices/bus/generic/slot.h b/src/devices/bus/generic/slot.h index 014f6ba80fa..c7add69a8bd 100644 --- a/src/devices/bus/generic/slot.h +++ b/src/devices/bus/generic/slot.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __GENERIC_SLOT_H -#define __GENERIC_SLOT_H +#ifndef MAME_BUS_GENERIC_SLOT_H +#define MAME_BUS_GENERIC_SLOT_H + +#pragma once #include "softlist_dev.h" @@ -17,7 +19,6 @@ class device_generic_cart_interface : public device_slot_card_interface { public: // construction/destruction - device_generic_cart_interface(const machine_config &mconfig, device_t &device); virtual ~device_generic_cart_interface(); // reading and writing @@ -40,7 +41,10 @@ public: uint8_t* get_ram_base() { return &m_ram[0]; } uint32_t get_ram_size() { return m_ram.size(); } - void save_ram() { device().save_item(NAME(m_ram)); } + void save_ram() { device().save_item(NAME(m_ram)); } + +protected: + device_generic_cart_interface(const machine_config &mconfig, device_t &device); // internal state uint8_t *m_rom; @@ -144,7 +148,8 @@ public: virtual void rom_alloc(size_t size, int width, endianness_t end) { if (m_cart) m_cart->rom_alloc(size, width, end, tag()); } virtual void ram_alloc(uint32_t size) { if (m_cart) m_cart->ram_alloc(size); } - uint8_t* get_rom_base() { + uint8_t* get_rom_base() + { if (m_cart) { if (!user_loadable()) @@ -154,7 +159,8 @@ public: } return nullptr; } - uint32_t get_rom_size() { + uint32_t get_rom_size() + { if (m_cart) { if (!user_loadable()) @@ -166,10 +172,9 @@ public: } uint8_t* get_ram_base() { if (m_cart) return m_cart->get_ram_base(); return nullptr; } - void save_ram() { if (m_cart && m_cart->get_ram_size()) m_cart->save_ram(); } + void save_ram() { if (m_cart && m_cart->get_ram_size()) m_cart->save_ram(); } protected: - const char *m_interface; const char *m_default_card; const char *m_extensions; @@ -183,7 +188,7 @@ protected: // device type definition -extern const device_type GENERIC_SOCKET; +DECLARE_DEVICE_TYPE(GENERIC_SOCKET, generic_slot_device) /*************************************************************************** @@ -203,4 +208,5 @@ extern const device_type GENERIC_SOCKET; MCFG_DEVICE_ADD(_tag, GENERIC_SOCKET, 0) \ MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _default, false) \ MCFG_GENERIC_INTERFACE(_dev_intf) -#endif + +#endif // MAME_BUS_GENERIC_SLOT_H diff --git a/src/devices/bus/hp9845_io/98034.cpp b/src/devices/bus/hp9845_io/98034.cpp index 3dbae257f9a..c9a2f263259 100644 --- a/src/devices/bus/hp9845_io/98034.cpp +++ b/src/devices/bus/hp9845_io/98034.cpp @@ -18,8 +18,9 @@ #include "coreutil.h" // Debugging -#define VERBOSE 0 -#define LOG(x) do { if (VERBOSE) logerror x; } while (0) +//#define VERBOSE 1 +#include "logmacro.h" + #define BIT_MASK(n) (1U << (n)) @@ -27,15 +28,15 @@ #define BIT_CLR(w , n) ((w) &= ~BIT_MASK(n)) #define BIT_SET(w , n) ((w) |= BIT_MASK(n)) -hp98034_io_card::hp98034_io_card(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : hp9845_io_card_device(mconfig , HP98034_IO_CARD , "HP98034 card" , tag , owner , clock , "hp98034" , __FILE__), +hp98034_io_card_device::hp98034_io_card_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : hp9845_io_card_device(mconfig , HP98034_IO_CARD , tag , owner , clock), m_cpu(*this , "np"), m_sw1(*this , "sw1"), m_ieee488(*this , IEEE488_TAG) { } -hp98034_io_card::~hp98034_io_card() +hp98034_io_card_device::~hp98034_io_card_device() { } @@ -82,12 +83,12 @@ static INPUT_PORTS_START(hp98034_port) PORT_DIPSETTING(0x20 , DEF_STR(Off)) INPUT_PORTS_END -ioport_constructor hp98034_io_card::device_input_ports() const +ioport_constructor hp98034_io_card_device::device_input_ports() const { return INPUT_PORTS_NAME(hp98034_port); } -void hp98034_io_card::device_start() +void hp98034_io_card_device::device_start() { save_item(NAME(m_dc)); save_item(NAME(m_idr)); @@ -99,7 +100,7 @@ void hp98034_io_card::device_start() save_item(NAME(m_data_out)); } -void hp98034_io_card::device_reset() +void hp98034_io_card_device::device_reset() { hp9845_io_card_device::device_reset(); @@ -113,7 +114,7 @@ void hp98034_io_card::device_reset() update_dc(); } -READ16_MEMBER(hp98034_io_card::reg_r) +READ16_MEMBER(hp98034_io_card_device::reg_r) { uint16_t res = m_odr; @@ -136,11 +137,11 @@ READ16_MEMBER(hp98034_io_card::reg_r) // (horrible race conditions lurking...) space.device().execute().yield(); - LOG(("read R%u=%04x\n" , offset + 4 , res)); + LOG("read R%u=%04x\n" , offset + 4 , res); return res; } -WRITE16_MEMBER(hp98034_io_card::reg_w) +WRITE16_MEMBER(hp98034_io_card_device::reg_w) { m_idr = (uint8_t)data; @@ -158,19 +159,19 @@ WRITE16_MEMBER(hp98034_io_card::reg_w) // PPU yields to let NP see FLG=0 immediately // (horrible race conditions lurking...) space.device().execute().yield(); - LOG(("write R%u=%04x\n" , offset + 4 , data)); + LOG("write R%u=%04x\n" , offset + 4 , data); } -WRITE8_MEMBER(hp98034_io_card::dc_w) +WRITE8_MEMBER(hp98034_io_card_device::dc_w) { if (data != m_dc) { - //LOG(("DC=%02x\n" , data)); + //LOG("DC=%02x\n" , data); m_dc = data; update_dc(); } } -READ8_MEMBER(hp98034_io_card::dc_r) +READ8_MEMBER(hp98034_io_card_device::dc_r) { uint8_t res; @@ -184,19 +185,19 @@ READ8_MEMBER(hp98034_io_card::dc_r) return res; } -WRITE8_MEMBER(hp98034_io_card::hpib_data_w) +WRITE8_MEMBER(hp98034_io_card_device::hpib_data_w) { m_data_out = data; update_data_out(); } -WRITE8_MEMBER(hp98034_io_card::hpib_ctrl_w) +WRITE8_MEMBER(hp98034_io_card_device::hpib_ctrl_w) { m_ctrl_out = data; update_ctrl_out(); } -READ8_MEMBER(hp98034_io_card::hpib_ctrl_r) +READ8_MEMBER(hp98034_io_card_device::hpib_ctrl_r) { uint8_t res = 0; @@ -228,39 +229,39 @@ READ8_MEMBER(hp98034_io_card::hpib_ctrl_r) return res; } -READ8_MEMBER(hp98034_io_card::hpib_data_r) +READ8_MEMBER(hp98034_io_card_device::hpib_data_r) { return ~m_ieee488->dio_r(); } -READ8_MEMBER(hp98034_io_card::idr_r) +READ8_MEMBER(hp98034_io_card_device::idr_r) { return m_idr; } -WRITE8_MEMBER(hp98034_io_card::odr_w) +WRITE8_MEMBER(hp98034_io_card_device::odr_w) { m_odr = data; } -READ8_MEMBER(hp98034_io_card::mode_reg_r) +READ8_MEMBER(hp98034_io_card_device::mode_reg_r) { return m_mode_reg; } -WRITE8_MEMBER(hp98034_io_card::mode_reg_clear_w) +WRITE8_MEMBER(hp98034_io_card_device::mode_reg_clear_w) { m_mode_reg = 0xff; m_force_flg = false; update_flg(); } -READ8_MEMBER(hp98034_io_card::switch_r) +READ8_MEMBER(hp98034_io_card_device::switch_r) { return m_sw1->read() | 0xc0; } -IRQ_CALLBACK_MEMBER(hp98034_io_card::irq_callback) +IRQ_CALLBACK_MEMBER(hp98034_io_card_device::irq_callback) { int res = 0xff; @@ -271,12 +272,12 @@ IRQ_CALLBACK_MEMBER(hp98034_io_card::irq_callback) return res; } -WRITE_LINE_MEMBER(hp98034_io_card::ieee488_ctrl_w) +WRITE_LINE_MEMBER(hp98034_io_card_device::ieee488_ctrl_w) { update_clr_hpib(); } -void hp98034_io_card::update_dc(void) +void hp98034_io_card_device::update_dc() { irq_w(!BIT(m_dc , 0)); sts_w(BIT(m_dc , 4)); @@ -284,17 +285,17 @@ void hp98034_io_card::update_dc(void) update_clr_hpib(); } -void hp98034_io_card::update_flg(void) +void hp98034_io_card_device::update_flg() { flg_w(BIT(m_dc , 3) && !m_force_flg); } -void hp98034_io_card::update_np_irq(void) +void hp98034_io_card_device::update_np_irq() { m_cpu->set_input_line(0 , (!m_ieee488->ifc_r() || m_clr_hpib) && BIT(m_dc , HP_NANO_IE_DC)); } -void hp98034_io_card::update_data_out(void) +void hp98034_io_card_device::update_data_out() { if (m_clr_hpib) { m_data_out = 0; @@ -302,7 +303,7 @@ void hp98034_io_card::update_data_out(void) m_ieee488->dio_w(~m_data_out); } -void hp98034_io_card::update_ctrl_out(void) +void hp98034_io_card_device::update_ctrl_out() { if (m_clr_hpib) { m_ieee488->dav_w(1); @@ -321,13 +322,13 @@ void hp98034_io_card::update_ctrl_out(void) m_ieee488->ifc_w(!BIT(m_ctrl_out , 3)); } -void hp98034_io_card::update_clr_hpib(void) +void hp98034_io_card_device::update_clr_hpib() { m_clr_hpib = !m_ieee488->atn_r() && BIT(m_dc , 5); update_data_out(); update_ctrl_out(); update_np_irq(); - LOG(("clr_hpib %d\n" , m_clr_hpib)); + LOG("clr_hpib %d\n" , m_clr_hpib); } ROM_START(hp98034) @@ -335,12 +336,12 @@ ROM_START(hp98034) ROM_LOAD("1816-1242.bin" , 0 , 0x400 , CRC(301a9f5f) SHA1(3d7c1ace38c4d3178fdbf764c044535d9f6ac94f)) ROM_END -static ADDRESS_MAP_START(np_program_map , AS_PROGRAM , 8 , hp98034_io_card) +static ADDRESS_MAP_START(np_program_map , AS_PROGRAM , 8 , hp98034_io_card_device) ADDRESS_MAP_UNMAP_HIGH AM_RANGE(0x000 , 0x3ff) AM_ROM AM_REGION("np" , 0) ADDRESS_MAP_END -static ADDRESS_MAP_START(np_io_map , AS_IO , 8 , hp98034_io_card) +static ADDRESS_MAP_START(np_io_map , AS_IO , 8 , hp98034_io_card_device) ADDRESS_MAP_UNMAP_HIGH AM_RANGE(0 , 0) AM_WRITE(hpib_data_w) AM_RANGE(1 , 1) AM_WRITE(hpib_ctrl_w) @@ -358,25 +359,25 @@ static MACHINE_CONFIG_FRAGMENT(hp98034) MCFG_CPU_ADD("np" , HP_NANOPROCESSOR , 2000000) MCFG_CPU_PROGRAM_MAP(np_program_map) MCFG_CPU_IO_MAP(np_io_map) - MCFG_HP_NANO_DC_CHANGED(WRITE8(hp98034_io_card , dc_w)) - MCFG_HP_NANO_READ_DC_CB(READ8(hp98034_io_card , dc_r)) - MCFG_CPU_IRQ_ACKNOWLEDGE_DRIVER(hp98034_io_card , irq_callback) + MCFG_HP_NANO_DC_CHANGED(WRITE8(hp98034_io_card_device , dc_w)) + MCFG_HP_NANO_READ_DC_CB(READ8(hp98034_io_card_device , dc_r)) + MCFG_CPU_IRQ_ACKNOWLEDGE_DRIVER(hp98034_io_card_device , irq_callback) MCFG_IEEE488_SLOT_ADD("ieee_dev" , 0 , hp_ieee488_devices , nullptr) MCFG_IEEE488_BUS_ADD() - MCFG_IEEE488_IFC_CALLBACK(WRITELINE(hp98034_io_card , ieee488_ctrl_w)) - MCFG_IEEE488_ATN_CALLBACK(WRITELINE(hp98034_io_card , ieee488_ctrl_w)) + MCFG_IEEE488_IFC_CALLBACK(WRITELINE(hp98034_io_card_device , ieee488_ctrl_w)) + MCFG_IEEE488_ATN_CALLBACK(WRITELINE(hp98034_io_card_device , ieee488_ctrl_w)) MACHINE_CONFIG_END -const tiny_rom_entry *hp98034_io_card::device_rom_region() const +const tiny_rom_entry *hp98034_io_card_device::device_rom_region() const { return ROM_NAME(hp98034); } -machine_config_constructor hp98034_io_card::device_mconfig_additions() const +machine_config_constructor hp98034_io_card_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME(hp98034); } // device type definition -const device_type HP98034_IO_CARD = device_creator; +DEFINE_DEVICE_TYPE(HP98034_IO_CARD, hp98034_io_card_device, "hp98034", "HP98034 card") diff --git a/src/devices/bus/hp9845_io/98034.h b/src/devices/bus/hp9845_io/98034.h index bf36dc80380..9d751a29568 100644 --- a/src/devices/bus/hp9845_io/98034.h +++ b/src/devices/bus/hp9845_io/98034.h @@ -8,26 +8,24 @@ *********************************************************************/ -#pragma once +#ifndef MAME_BUS_HP9845_IO_98034_H +#define MAME_BUS_HP9845_IO_98034_H -#ifndef _98034_H_ -#define _98034_H_ +#pragma once #include "hp9845_io.h" #include "cpu/nanoprocessor/nanoprocessor.h" #include "bus/ieee488/ieee488.h" -class hp98034_io_card : public hp9845_io_card_device +class hp98034_io_card_device : public hp9845_io_card_device { public: // construction/destruction - hp98034_io_card(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual ~hp98034_io_card(); + hp98034_io_card_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + virtual ~hp98034_io_card_device(); // device-level overrides virtual ioport_constructor device_input_ports() const override; - virtual void device_start() override; - virtual void device_reset() override; virtual const tiny_rom_entry *device_rom_region() const override; virtual machine_config_constructor device_mconfig_additions() const override; @@ -51,6 +49,10 @@ public: DECLARE_WRITE_LINE_MEMBER(ieee488_ctrl_w); +protected: + virtual void device_start() override; + virtual void device_reset() override; + private: required_device m_cpu; required_ioport m_sw1; @@ -70,16 +72,16 @@ private: uint8_t m_ctrl_out; uint8_t m_data_out; - void update_dc(void); - void update_flg(void); - void update_np_irq(void); - void update_data_out(void); - void update_ctrl_out(void); - void update_clr_hpib(void); + void update_dc(); + void update_flg(); + void update_np_irq(); + void update_data_out(); + void update_ctrl_out(); + void update_clr_hpib(); }; // device type definition -extern const device_type HP98034_IO_CARD; +DECLARE_DEVICE_TYPE(HP98034_IO_CARD, hp98034_io_card_device) -#endif /* _98034_H_ */ +#endif // MAME_BUS_HP9845_IO_98034_H diff --git a/src/devices/bus/hp9845_io/98035.cpp b/src/devices/bus/hp9845_io/98035.cpp index 061d42158a5..74d8639cb45 100644 --- a/src/devices/bus/hp9845_io/98035.cpp +++ b/src/devices/bus/hp9845_io/98035.cpp @@ -142,14 +142,14 @@ static const uint8_t dec_2_seven_segs[] = { 0xc8 // 9 }; -hp98035_io_card::hp98035_io_card(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : hp9845_io_card_device(mconfig , HP98035_IO_CARD , "HP98035 card" , tag , owner , clock , "hp98035" , __FILE__), +hp98035_io_card_device::hp98035_io_card_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : hp9845_io_card_device(mconfig , HP98035_IO_CARD , tag , owner , clock), device_rtc_interface(mconfig , *this), m_cpu(*this , "np") { } -hp98035_io_card::~hp98035_io_card() +hp98035_io_card_device::~hp98035_io_card_device() { } @@ -157,12 +157,12 @@ static INPUT_PORTS_START(hp98035_port) MCFG_HP9845_IO_SC(9) INPUT_PORTS_END -ioport_constructor hp98035_io_card::device_input_ports() const +ioport_constructor hp98035_io_card_device::device_input_ports() const { return INPUT_PORTS_NAME(hp98035_port); } -void hp98035_io_card::device_start() +void hp98035_io_card_device::device_start() { save_item(NAME(m_np_ram)); save_item(NAME(m_ram_addr)); @@ -189,7 +189,7 @@ void hp98035_io_card::device_start() m_clock_timer = timer_alloc(CLOCK_TMR_ID); } -void hp98035_io_card::device_reset() +void hp98035_io_card_device::device_reset() { hp9845_io_card_device::device_reset(); @@ -208,7 +208,7 @@ void hp98035_io_card::device_reset() half_init(); } -void hp98035_io_card::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) +void hp98035_io_card_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) { if (id == MSEC_TMR_ID) { // On real hw there's a full 4-bit decimal counter, but only the LSB is used to @@ -255,7 +255,7 @@ void hp98035_io_card::device_timer(emu_timer &timer, device_timer_id id, int par } } -READ16_MEMBER(hp98035_io_card::reg_r) +READ16_MEMBER(hp98035_io_card_device::reg_r) { uint16_t res; @@ -288,7 +288,7 @@ READ16_MEMBER(hp98035_io_card::reg_r) return res; } -WRITE16_MEMBER(hp98035_io_card::reg_w) +WRITE16_MEMBER(hp98035_io_card_device::reg_w) { bool new_inten; @@ -318,33 +318,33 @@ WRITE16_MEMBER(hp98035_io_card::reg_w) LOG(("write R%u=%04x\n" , offset + 4 , data)); } -WRITE8_MEMBER(hp98035_io_card::ram_addr_w) +WRITE8_MEMBER(hp98035_io_card_device::ram_addr_w) { m_ram_addr = data; } -READ8_MEMBER(hp98035_io_card::ram_data_r) +READ8_MEMBER(hp98035_io_card_device::ram_data_r) { return m_np_ram[ m_ram_addr ]; } -WRITE8_MEMBER(hp98035_io_card::ram_addr_data_w) +WRITE8_MEMBER(hp98035_io_card_device::ram_addr_data_w) { m_ram_addr = data; m_np_ram[ m_ram_addr ] = m_ram_data_in; } -WRITE8_MEMBER(hp98035_io_card::ram_data_w) +WRITE8_MEMBER(hp98035_io_card_device::ram_data_w) { m_ram_data_in = data; } -WRITE8_MEMBER(hp98035_io_card::clock_key_w) +WRITE8_MEMBER(hp98035_io_card_device::clock_key_w) { m_clock_keys = data & 7; } -READ8_MEMBER(hp98035_io_card::clock_digit_r) +READ8_MEMBER(hp98035_io_card_device::clock_digit_r) { switch (m_clock_mux) { case 1: @@ -361,20 +361,20 @@ READ8_MEMBER(hp98035_io_card::clock_digit_r) } } -WRITE8_MEMBER(hp98035_io_card::odr_w) +WRITE8_MEMBER(hp98035_io_card_device::odr_w) { m_odr = data; set_flg(true); } -READ8_MEMBER(hp98035_io_card::idr_r) +READ8_MEMBER(hp98035_io_card_device::idr_r) { set_flg(true); m_idr_full = false; return m_idr; } -READ8_MEMBER(hp98035_io_card::np_status_r) +READ8_MEMBER(hp98035_io_card_device::np_status_r) { // Bit 2 = 0: use US date format uint8_t res = 0x03; @@ -397,13 +397,13 @@ READ8_MEMBER(hp98035_io_card::np_status_r) return res; } -WRITE8_MEMBER(hp98035_io_card::clear_np_irq_w) +WRITE8_MEMBER(hp98035_io_card_device::clear_np_irq_w) { m_np_irq = false; update_dc(); } -READ8_MEMBER(hp98035_io_card::clock_mux_r) +READ8_MEMBER(hp98035_io_card_device::clock_mux_r) { // External input lines are always active (bits 7-4) uint8_t res = 0xf0 | m_clock_mux; @@ -414,13 +414,13 @@ READ8_MEMBER(hp98035_io_card::clock_mux_r) return res; } -WRITE8_MEMBER(hp98035_io_card::set_irq_w) +WRITE8_MEMBER(hp98035_io_card_device::set_irq_w) { m_irq = true; update_irq(); } -READ8_MEMBER(hp98035_io_card::clr_inten_r) +READ8_MEMBER(hp98035_io_card_device::clr_inten_r) { m_intflag = false; m_inten = false; @@ -429,14 +429,14 @@ READ8_MEMBER(hp98035_io_card::clr_inten_r) return 0xff; } -WRITE8_MEMBER(hp98035_io_card::clr_inten_w) +WRITE8_MEMBER(hp98035_io_card_device::clr_inten_w) { m_intflag = false; m_inten = false; update_irq(); } -WRITE8_MEMBER(hp98035_io_card::dc_w) +WRITE8_MEMBER(hp98035_io_card_device::dc_w) { if (data != m_dc) { //LOG(("DC=%02x\n" , data)); @@ -445,7 +445,7 @@ WRITE8_MEMBER(hp98035_io_card::dc_w) } } -void hp98035_io_card::half_init(void) +void hp98035_io_card_device::half_init() { m_inten = false; m_intflag = false; @@ -460,13 +460,13 @@ void hp98035_io_card::half_init(void) regen_clock_image(); } -void hp98035_io_card::set_flg(bool value) +void hp98035_io_card_device::set_flg(bool value) { m_flg = value; flg_w(m_flg); } -void hp98035_io_card::update_irq(void) +void hp98035_io_card_device::update_irq() { if (!m_inten) { m_irq = false; @@ -474,12 +474,12 @@ void hp98035_io_card::update_irq(void) irq_w(m_inten && m_irq); } -void hp98035_io_card::update_dc(void) +void hp98035_io_card_device::update_dc() { m_cpu->set_input_line(0 , m_np_irq && BIT(m_dc , HP_NANO_IE_DC)); } -void hp98035_io_card::set_lhs_digits(unsigned v) +void hp98035_io_card_device::set_lhs_digits(unsigned v) { if (v < 10) { m_clock_segh = false; @@ -490,13 +490,13 @@ void hp98035_io_card::set_lhs_digits(unsigned v) m_clock_digits[ 2 ] = dec_2_seven_segs[ v ]; } -void hp98035_io_card::set_rhs_digits(unsigned v) +void hp98035_io_card_device::set_rhs_digits(unsigned v) { m_clock_digits[ 0 ] = dec_2_seven_segs[ v % 10 ]; m_clock_digits[ 1 ] = dec_2_seven_segs[ v / 10 ]; } -void hp98035_io_card::regen_clock_image(void) +void hp98035_io_card_device::regen_clock_image() { int tmp; bool pm; @@ -566,7 +566,7 @@ void hp98035_io_card::regen_clock_image(void) m_clock_digits[ 1 ] , m_clock_digits[ 0 ])); } -void hp98035_io_card::clock_short_press(void) +void hp98035_io_card_device::clock_short_press() { LOG(("Short press:%u\n" , m_clock_keys)); @@ -676,7 +676,7 @@ void hp98035_io_card::clock_short_press(void) } } -void hp98035_io_card::clock_long_press(void) +void hp98035_io_card_device::clock_long_press() { LOG(("Long press:%u\n" , m_clock_keys)); @@ -710,14 +710,14 @@ void hp98035_io_card::clock_long_press(void) } } -void hp98035_io_card::log_current_time(void) +void hp98035_io_card_device::log_current_time() { LOG(("Time = %d:%d:%d:%d:%d\n" , get_clock_register(RTC_MONTH) , get_clock_register(RTC_DAY) , get_clock_register(RTC_HOUR) , get_clock_register(RTC_MINUTE) , get_clock_register(RTC_SECOND))); } -void hp98035_io_card::rtc_clock_updated(int year, int month, int day, int day_of_week, int hour, int minute, int second) +void hp98035_io_card_device::rtc_clock_updated(int year, int month, int day, int day_of_week, int hour, int minute, int second) { // Do nothing, time is kept in "device_rtc_interface" registers } @@ -727,12 +727,12 @@ ROM_START(hp98035) ROM_LOAD("1818-0469.bin" , 0 , 0x800 , CRC(e16ab3bc) SHA1(34e89a37a2822f27af21969941201317dbff615b)) ROM_END -static ADDRESS_MAP_START(np_program_map , AS_PROGRAM , 8 , hp98035_io_card) +static ADDRESS_MAP_START(np_program_map , AS_PROGRAM , 8 , hp98035_io_card_device) ADDRESS_MAP_UNMAP_HIGH AM_RANGE(0x000 , 0x7ff) AM_ROM AM_REGION("np" , 0) ADDRESS_MAP_END -static ADDRESS_MAP_START(np_io_map , AS_IO , 8 , hp98035_io_card) +static ADDRESS_MAP_START(np_io_map , AS_IO , 8 , hp98035_io_card_device) ADDRESS_MAP_UNMAP_HIGH AM_RANGE(0x0 , 0x0) AM_WRITE(ram_addr_w) AM_RANGE(0x1 , 0x1) AM_READ(ram_data_r) @@ -753,18 +753,18 @@ static MACHINE_CONFIG_FRAGMENT(hp98035) MCFG_CPU_ADD("np" , HP_NANOPROCESSOR , XTAL_1MHz) MCFG_CPU_PROGRAM_MAP(np_program_map) MCFG_CPU_IO_MAP(np_io_map) - MCFG_HP_NANO_DC_CHANGED(WRITE8(hp98035_io_card , dc_w)) + MCFG_HP_NANO_DC_CHANGED(WRITE8(hp98035_io_card_device , dc_w)) MACHINE_CONFIG_END -const tiny_rom_entry *hp98035_io_card::device_rom_region() const +const tiny_rom_entry *hp98035_io_card_device::device_rom_region() const { return ROM_NAME(hp98035); } -machine_config_constructor hp98035_io_card::device_mconfig_additions() const +machine_config_constructor hp98035_io_card_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME(hp98035); } // device type definition -const device_type HP98035_IO_CARD = device_creator; +DEFINE_DEVICE_TYPE(HP98035_IO_CARD, hp98035_io_card_device, "hp98035", "HP98035 card") diff --git a/src/devices/bus/hp9845_io/98035.h b/src/devices/bus/hp9845_io/98035.h index af096b8be93..7bfa8a7db58 100644 --- a/src/devices/bus/hp9845_io/98035.h +++ b/src/devices/bus/hp9845_io/98035.h @@ -8,28 +8,24 @@ *********************************************************************/ -#pragma once +#ifndef MAME_BUS_HP_9845_IO_98035_H +#define MAME_BUS_HP_9845_IO_98035_H -#ifndef _98035_H_ -#define _98035_H_ +#pragma once #include "hp9845_io.h" #include "cpu/nanoprocessor/nanoprocessor.h" #include "dirtc.h" -class hp98035_io_card : public hp9845_io_card_device, - public device_rtc_interface +class hp98035_io_card_device : public hp9845_io_card_device, public device_rtc_interface { public: // construction/destruction - hp98035_io_card(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual ~hp98035_io_card(); + hp98035_io_card_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + virtual ~hp98035_io_card_device(); // device-level overrides virtual ioport_constructor device_input_ports() const override; - virtual void device_start() override; - virtual void device_reset() override; - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; virtual const tiny_rom_entry *device_rom_region() const override; virtual machine_config_constructor device_mconfig_additions() const override; @@ -55,6 +51,11 @@ public: DECLARE_WRITE8_MEMBER(dc_w); +protected: + virtual void device_start() override; + virtual void device_reset() override; + virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + private: required_device m_cpu; @@ -102,21 +103,21 @@ private: uint8_t m_prev_clock_keys; unsigned m_clock_key_cnt; - void half_init(void); + void half_init(); void set_flg(bool value); - void update_irq(void); - void update_dc(void); + void update_irq(); + void update_dc(); void set_lhs_digits(unsigned v); void set_rhs_digits(unsigned v); - void regen_clock_image(void); - void clock_short_press(void); - void clock_long_press(void); - void log_current_time(void); + void regen_clock_image(); + void clock_short_press(); + void clock_long_press(); + void log_current_time(); virtual void rtc_clock_updated(int year, int month, int day, int day_of_week, int hour, int minute, int second) override; }; // device type definition -extern const device_type HP98035_IO_CARD; +DECLARE_DEVICE_TYPE(HP98035_IO_CARD, hp98035_io_card_device) -#endif /* _98035_H_ */ +#endif // MAME_BUS_HP_9845_IO_98035_H diff --git a/src/devices/bus/hp9845_io/hp9845_io.cpp b/src/devices/bus/hp9845_io/hp9845_io.cpp index fa853d66c52..d270ac89e4b 100644 --- a/src/devices/bus/hp9845_io/hp9845_io.cpp +++ b/src/devices/bus/hp9845_io/hp9845_io.cpp @@ -12,13 +12,13 @@ #include "hp9845_io.h" // device type definition -const device_type HP9845_IO_SLOT = device_creator; +DEFINE_DEVICE_TYPE(HP9845_IO_SLOT, hp9845_io_slot_device, "hp9845_io_slot", "HP9845 I/O Slot") // +---------------------+ // |hp9845_io_slot_device| // +---------------------+ hp9845_io_slot_device::hp9845_io_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, HP9845_IO_SLOT, "HP9845 I/O Slot", tag, owner, clock, "hp9845_io_slot", __FILE__), + device_t(mconfig, HP9845_IO_SLOT, tag, owner, clock), device_slot_interface(mconfig, *this), m_irq_cb_func(*this), m_sts_cb_func(*this), @@ -84,8 +84,8 @@ uint8_t hp9845_io_card_device::get_sc(void) return m_select_code_port->read() + HP9845_IO_FIRST_SC; } -hp9845_io_card_device::hp9845_io_card_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), +hp9845_io_card_device::hp9845_io_card_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), device_slot_card_interface(mconfig, *this), m_slot_dev(nullptr), m_select_code_port(*this , "SC"), diff --git a/src/devices/bus/hp9845_io/hp9845_io.h b/src/devices/bus/hp9845_io/hp9845_io.h index 873a062e4b4..0125f1ca833 100644 --- a/src/devices/bus/hp9845_io/hp9845_io.h +++ b/src/devices/bus/hp9845_io/hp9845_io.h @@ -8,10 +8,10 @@ *********************************************************************/ -#pragma once +#ifndef MAME_BUS_HP9845_IO_HP9845_IO_H +#define MAME_BUS_HP9845_IO_HP9845_IO_H -#ifndef _HP9845_IO_H_ -#define _HP9845_IO_H_ +#pragma once #define MCFG_HP9845_IO_SLOT_ADD(_tag) \ @@ -57,9 +57,9 @@ public: virtual void device_start() override; // Callback setups - template static devcb_base &set_irq_cb_func(device_t &device, _Object object) { return downcast(device).m_irq_cb_func.set_callback(object); } - template static devcb_base &set_sts_cb_func(device_t &device, _Object object) { return downcast(device).m_sts_cb_func.set_callback(object); } - template static devcb_base &set_flg_cb_func(device_t &device, _Object object) { return downcast(device).m_flg_cb_func.set_callback(object); } + template static devcb_base &set_irq_cb_func(device_t &device, Object &&cb) { return downcast(device).m_irq_cb_func.set_callback(std::forward(cb)); } + template static devcb_base &set_sts_cb_func(device_t &device, Object &&cb) { return downcast(device).m_sts_cb_func.set_callback(std::forward(cb)); } + template static devcb_base &set_flg_cb_func(device_t &device, Object &&cb) { return downcast(device).m_flg_cb_func.set_callback(std::forward(cb)); } // irq/sts/flg signal handlers void irq_w(uint8_t sc , int state); @@ -90,7 +90,7 @@ public: protected: // construction/destruction - hp9845_io_card_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); + hp9845_io_card_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); virtual ~hp9845_io_card_device(); // device-level overrides @@ -107,8 +107,8 @@ protected: }; // device type definition -extern const device_type HP9845_IO_SLOT; +DECLARE_DEVICE_TYPE(HP9845_IO_SLOT, hp9845_io_slot_devices) SLOT_INTERFACE_EXTERN(hp9845_io_slot_devices); -#endif /* _HP9845_IO_H_ */ +#endif // MAME_BUS_HP9845_IO_HP9845_IO_H diff --git a/src/devices/bus/hp_hil/hil_devices.h b/src/devices/bus/hp_hil/hil_devices.h index 23c0d5ed6ee..01b74af07a4 100644 --- a/src/devices/bus/hp_hil/hil_devices.h +++ b/src/devices/bus/hp_hil/hil_devices.h @@ -6,8 +6,8 @@ ***************************************************************************/ -#ifndef __HP_HIL_DEVICES_H__ -#define __HP_HIL_DEVICES_H__ +#ifndef MAME_BUS_HP_HIL_HIL_DEVICES_H +#define MAME_BUS_HP_HIL_HIL_DEVICES_H #define STR_KBD_HP_46020A "hp_46020a" // ITF Keyboard @@ -22,4 +22,4 @@ SLOT_INTERFACE_EXTERN(hp_hil_devices); -#endif /* __HP_HIL_DEVICES_H__ */ +#endif // MAME_BUS_HP_HIL_HIL_DEVICES_H diff --git a/src/devices/bus/hp_hil/hlekbd.cpp b/src/devices/bus/hp_hil/hlekbd.cpp index 980d373750d..e068e9a0ec5 100644 --- a/src/devices/bus/hp_hil/hlekbd.cpp +++ b/src/devices/bus/hp_hil/hlekbd.cpp @@ -9,11 +9,13 @@ DEVICE TYPE GLOBALS ***************************************************************************/ -device_type const HP_IPC_HLE_KEYBOARD = device_creator; +DEFINE_DEVICE_TYPE_NS(HP_IPC_HLE_KEYBOARD, bus::hp_hil, hle_hp_ipc_device, "hp_ipc_hle_kbd", "HP Integral Keyboard (HLE)") namespace bus { namespace hp_hil { + namespace { + /*************************************************************************** INPUT PORT DEFINITIONS ***************************************************************************/ @@ -228,8 +230,8 @@ INPUT_PORTS_END designated device constructor --------------------------------------------------*/ -hle_device_base::hle_device_base(machine_config const &mconfig, device_type type, char const *name, char const *tag, device_t *owner, uint32_t clock, char const *shortname, char const *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source) +hle_device_base::hle_device_base(machine_config const &mconfig, device_type type, char const *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) , device_hp_hil_interface(mconfig, *this) , device_matrix_keyboard_interface(mconfig, *this, "COL1", "COL2", "COL3", "COL4", "COL5", "COL6", "COL7", "COL8", "COL9", "COL10", "COL11", "COL12", "COL13", "COL14", "COL15") { } @@ -394,7 +396,7 @@ void hle_device_base::key_break(uint8_t row, uint8_t column) --------------------------------------------------*/ hle_hp_ipc_device::hle_hp_ipc_device(machine_config const &mconfig, char const *tag, device_t *owner, uint32_t clock) - : hle_device_base(mconfig, HP_IPC_HLE_KEYBOARD, "HP Integral Keyboard (HLE)", tag, owner, clock, "hp_ipc_hle_kbd", __FILE__) + : hle_device_base(mconfig, HP_IPC_HLE_KEYBOARD, tag, owner, clock) { } diff --git a/src/devices/bus/hp_hil/hlekbd.h b/src/devices/bus/hp_hil/hlekbd.h index 5b72367f010..3c7f3fdda8c 100644 --- a/src/devices/bus/hp_hil/hlekbd.h +++ b/src/devices/bus/hp_hil/hlekbd.h @@ -9,21 +9,19 @@ #include "machine/keyboard.h" -extern device_type const HP_IPC_HLE_KEYBOARD; - - namespace bus { namespace hp_hil { + class hle_device_base : public device_t , public device_hp_hil_interface , protected device_matrix_keyboard_interface<15U> { public: + virtual ~hle_device_base() override; protected: // constructor/destructor - hle_device_base(machine_config const &mconfig, device_type type, char const *name, char const *tag, device_t *owner, uint32_t clock, char const *shortname, char const *source); - virtual ~hle_device_base() override; + hle_device_base(machine_config const &mconfig, device_type type, char const *tag, device_t *owner, uint32_t clock); // device overrides virtual void device_start() override; @@ -57,4 +55,7 @@ public: } } // namespace bus::hp_hil + +DECLARE_DEVICE_TYPE_NS(HP_IPC_HLE_KEYBOARD, bus::hp_hil, hle_hp_ipc_device); + #endif // MAME_DEVICES_HP_HIL_HLEKBD_H diff --git a/src/devices/bus/hp_hil/hp_hil.cpp b/src/devices/bus/hp_hil/hp_hil.cpp index 991cb808667..653e4766842 100644 --- a/src/devices/bus/hp_hil/hp_hil.cpp +++ b/src/devices/bus/hp_hil/hp_hil.cpp @@ -28,7 +28,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type HP_HIL_SLOT = device_creator; +DEFINE_DEVICE_TYPE(HP_HIL_SLOT, hp_hil_slot_device, "hp_hil_slot", "HP-HIL Slot") //************************************************************************** // LIVE DEVICE @@ -38,7 +38,7 @@ const device_type HP_HIL_SLOT = device_creator; // hp_hil_slot_device - constructor //------------------------------------------------- hp_hil_slot_device::hp_hil_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, HP_HIL_SLOT, "HP_HIL_SLOT", tag, owner, clock, "hp_hil_slot", __FILE__) + : device_t(mconfig, HP_HIL_SLOT, tag, owner, clock) , device_slot_interface(mconfig, *this) { } @@ -67,14 +67,14 @@ void hp_hil_slot_device::device_start() // GLOBAL VARIABLES //************************************************************************** -const device_type HP_HIL_MLC = device_creator; +DEFINE_DEVICE_TYPE(HP_HIL_MLC, hp_hil_mlc_device, "hp_hil_mlc", "HP-HIL Master Link Controller") //------------------------------------------------- // hp_hil_mlc_device - constructor //------------------------------------------------- hp_hil_mlc_device::hp_hil_mlc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, HP_HIL_MLC, "HP-HIL Master Link Controller", tag, owner, clock, "hp_hil", __FILE__) + : device_t(mconfig, HP_HIL_MLC, tag, owner, clock) , int_cb(*this) , nmi_cb(*this) { diff --git a/src/devices/bus/hp_hil/hp_hil.h b/src/devices/bus/hp_hil/hp_hil.h index 7b805f1528f..178f512e350 100644 --- a/src/devices/bus/hp_hil/hp_hil.h +++ b/src/devices/bus/hp_hil/hp_hil.h @@ -6,10 +6,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_BUS_HP_HIL_HP_HIL_H +#define MAME_BUS_HP_HIL_HP_HIL_H -#ifndef __HP_HIL_H__ -#define __HP_HIL_H__ +#pragma once #include "emu.h" @@ -97,8 +97,7 @@ //************************************************************************** -class hp_hil_slot_device : public device_t, - public device_slot_interface +class hp_hil_slot_device : public device_t, public device_slot_interface { public: // construction/destruction @@ -118,7 +117,7 @@ protected: // device type definition -extern const device_type HP_HIL_SLOT; +DECLARE_DEVICE_TYPE(HP_HIL_SLOT, hp_hil_slot_device) class device_hp_hil_interface; @@ -130,8 +129,8 @@ public: hp_hil_mlc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); ~hp_hil_mlc_device() { m_device_list.detach_all(); } - template static devcb_base &set_int_callback(device_t &device, _Object object) { return downcast(device).int_cb.set_callback(object); } - template static devcb_base &set_nmi_callback(device_t &device, _Object object) { return downcast(device).nmi_cb.set_callback(object); } + template static devcb_base &set_int_callback(device_t &device, Object &&cb) { return downcast(device).int_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_nmi_callback(device_t &device, Object &&cb) { return downcast(device).nmi_cb.set_callback(std::forward(cb)); } void add_hp_hil_device(device_hp_hil_interface *device); @@ -157,7 +156,7 @@ private: // device type definition -extern const device_type HP_HIL_MLC; +DECLARE_DEVICE_TYPE(HP_HIL_MLC, hp_hil_mlc_device) // ======================> device_hp_hil_interface @@ -165,10 +164,10 @@ extern const device_type HP_HIL_MLC; class device_hp_hil_interface : public device_slot_card_interface { friend class hp_hil_mlc_device; + template friend class simple_list; public: // construction/destruction - device_hp_hil_interface(const machine_config &mconfig, device_t &device); virtual ~device_hp_hil_interface(); device_hp_hil_interface *next() const { return m_next; } @@ -181,20 +180,24 @@ public: virtual void hil_write(uint16_t data) { }; int device_id() { return m_device_id; }; - hp_hil_mlc_device *m_hp_hil_mlc; - device_t *m_hp_hil_mlc_dev; - device_hp_hil_interface *m_next; - protected: + device_hp_hil_interface(const machine_config &mconfig, device_t &device); + virtual void device_reset() { } + hp_hil_mlc_device *m_hp_hil_mlc; + device_t *m_hp_hil_mlc_dev; + hp_hil_slot_device *m_slot; int m_device_id; uint16_t m_device_id16; bool m_powerup; bool m_passthru; + +private: + device_hp_hil_interface *m_next; }; -#endif /* __HP_HIL_H__ */ +#endif // MAME_BUS_HP_HIL_HP_HIL_H diff --git a/src/devices/bus/hp_optroms/hp_optrom.cpp b/src/devices/bus/hp_optroms/hp_optrom.cpp index 0887367f3b3..389293e7fea 100644 --- a/src/devices/bus/hp_optroms/hp_optrom.cpp +++ b/src/devices/bus/hp_optroms/hp_optrom.cpp @@ -13,21 +13,20 @@ #include "softlist.h" #include "cpu/hphybrid/hphybrid.h" -const device_type HP_OPTROM_CART = device_creator; -const device_type HP_OPTROM_SLOT = device_creator; +DEFINE_DEVICE_TYPE(HP_OPTROM_CART, hp_optrom_cart_device, "hp_optrom_cart", "HP9845 optional ROM cartridge") +DEFINE_DEVICE_TYPE(HP_OPTROM_SLOT, hp_optrom_slot_device, "hp_optrom_slot", "HP9845 optional ROM slot") // +---------------------+ // |hp_optrom_cart_device| // +---------------------+ -hp_optrom_cart_device::hp_optrom_cart_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), +hp_optrom_cart_device::hp_optrom_cart_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), device_slot_card_interface(mconfig, *this) { } hp_optrom_cart_device::hp_optrom_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, HP_OPTROM_CART, "HP9845 optional ROM cartridge", tag, owner, clock, "hp_optrom_cart", __FILE__), - device_slot_card_interface(mconfig, *this) + hp_optrom_cart_device(mconfig, HP_OPTROM_CART, tag, owner, clock) { } @@ -35,7 +34,7 @@ hp_optrom_cart_device::hp_optrom_cart_device(const machine_config &mconfig, cons // |hp_optrom_slot_device| // +---------------------+ hp_optrom_slot_device::hp_optrom_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, HP_OPTROM_SLOT, "HP9845 optional ROM Slot", tag, owner, clock, "hp_optrom_slot", __FILE__), + device_t(mconfig, HP_OPTROM_SLOT, tag, owner, clock), device_image_interface(mconfig, *this), device_slot_interface(mconfig, *this), m_cart(nullptr), diff --git a/src/devices/bus/hp_optroms/hp_optrom.h b/src/devices/bus/hp_optroms/hp_optrom.h index 13a550c202d..dfc43021035 100644 --- a/src/devices/bus/hp_optroms/hp_optrom.h +++ b/src/devices/bus/hp_optroms/hp_optrom.h @@ -8,10 +8,10 @@ *********************************************************************/ -#pragma once +#ifndef MAME_BUS_HP_OPTROMS_HP_OPTROM_H +#define MAME_BUS_HP_OPTROMS_HP_OPTROM_H -#ifndef _HP_OPTROM_H_ -#define _HP_OPTROM_H_ +#pragma once #include "softlist_dev.h" @@ -20,12 +20,14 @@ class hp_optrom_cart_device : public device_t, public device_slot_card_interface { public: - // construction/destruction - hp_optrom_cart_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - hp_optrom_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + // construction/destruction + hp_optrom_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + +protected: + hp_optrom_cart_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override {} + // device-level overrides + virtual void device_start() override { } }; class hp_optrom_slot_device : public device_t, @@ -34,40 +36,40 @@ class hp_optrom_slot_device : public device_t, { public: // construction/destruction - hp_optrom_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual ~hp_optrom_slot_device(); - - // device-level overrides - virtual void device_start() override; - - // image-level overrides - virtual image_init_result call_load() override; - virtual void call_unload() override; - virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); } - - virtual iodevice_t image_type() const override { return IO_ROM; } - virtual bool is_readable() const override { return true; } - virtual bool is_writeable() const override { return false; } - virtual bool is_creatable() const override { return false; } - virtual bool must_be_loaded() const override { return false; } - virtual bool is_reset_on_load() const override { return true; } - virtual const char *image_interface() const override { return "hp9845b_rom"; } - virtual const char *file_extensions() const override { return "bin"; } - - // slot interface overrides - virtual std::string get_default_card_software(get_default_card_software_hook &hook) const override; + hp_optrom_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + virtual ~hp_optrom_slot_device(); protected: - hp_optrom_cart_device *m_cart; - std::vector m_content; - offs_t m_base_addr; - offs_t m_end_addr; + // device-level overrides + virtual void device_start() override; + + // image-level overrides + virtual image_init_result call_load() override; + virtual void call_unload() override; + virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); } + + virtual iodevice_t image_type() const override { return IO_ROM; } + virtual bool is_readable() const override { return true; } + virtual bool is_writeable() const override { return false; } + virtual bool is_creatable() const override { return false; } + virtual bool must_be_loaded() const override { return false; } + virtual bool is_reset_on_load() const override { return true; } + virtual const char *image_interface() const override { return "hp9845b_rom"; } + virtual const char *file_extensions() const override { return "bin"; } + + // slot interface overrides + virtual std::string get_default_card_software(get_default_card_software_hook &hook) const override; + + hp_optrom_cart_device *m_cart; + std::vector m_content; + offs_t m_base_addr; + offs_t m_end_addr; }; // device type definition -extern const device_type HP_OPTROM_SLOT; -extern const device_type HP_OPTROM_CART; +DECLARE_DEVICE_TYPE(HP_OPTROM_SLOT, hp_optrom_slot_device) +DECLARE_DEVICE_TYPE(HP_OPTROM_CART, hp_optrom_cart_device) SLOT_INTERFACE_EXTERN(hp_optrom_slot_device); -#endif /* _HP_OPTROM_H_ */ +#endif // MAME_BUS_HP_OPTROMS_HP_OPTROM_H diff --git a/src/devices/bus/ieee488/c2031.cpp b/src/devices/bus/ieee488/c2031.cpp index b23fb0c02d1..f068a5f29f3 100644 --- a/src/devices/bus/ieee488/c2031.cpp +++ b/src/devices/bus/ieee488/c2031.cpp @@ -33,7 +33,7 @@ enum // DEVICE DEFINITIONS //************************************************************************** -const device_type C2031 = device_creator; +DEFINE_DEVICE_TYPE(C2031, c2031_device, "c2031", "Commodore 2031") //------------------------------------------------- @@ -399,19 +399,20 @@ inline int c2031_device::get_device_number() //------------------------------------------------- c2031_device::c2031_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, C2031, "C2031", tag, owner, clock, "c2031", __FILE__), - device_ieee488_interface(mconfig, *this), - m_maincpu(*this, M6502_TAG), - m_via0(*this, M6522_0_TAG), - m_via1(*this, M6522_1_TAG), - m_ga(*this, C64H156_TAG), - m_floppy(*this, C64H156_TAG":0:525ssqd"), - m_address(*this, "ADDRESS"), - m_nrfd_out(1), - m_ndac_out(1), - m_atna(1), m_ifc(0), - m_via0_irq(0), - m_via1_irq(0) + : device_t(mconfig, C2031, tag, owner, clock) + , device_ieee488_interface(mconfig, *this) + , m_maincpu(*this, M6502_TAG) + , m_via0(*this, M6522_0_TAG) + , m_via1(*this, M6522_1_TAG) + , m_ga(*this, C64H156_TAG) + , m_floppy(*this, C64H156_TAG":0:525ssqd") + , m_address(*this, "ADDRESS") + , m_nrfd_out(1) + , m_ndac_out(1) + , m_atna(1) + , m_ifc(0) + , m_via0_irq(0) + , m_via1_irq(0) { } diff --git a/src/devices/bus/ieee488/c2031.h b/src/devices/bus/ieee488/c2031.h index 1b7212e0581..38b102d381a 100644 --- a/src/devices/bus/ieee488/c2031.h +++ b/src/devices/bus/ieee488/c2031.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_IEEE488_C2031_H +#define MAME_BUS_IEEE488_C2031_H -#ifndef __C2031__ -#define __C2031__ +#pragma once #include "ieee488.h" #include "cpu/m6502/m6502.h" @@ -79,8 +79,7 @@ protected: // device type definition -extern const device_type C2031; - +DECLARE_DEVICE_TYPE(C2031, c2031_device) -#endif +#endif // MAME_BUS_IEEE488_C2031_H diff --git a/src/devices/bus/ieee488/c2040.cpp b/src/devices/bus/ieee488/c2040.cpp index f16ba22261a..35bba2028c7 100644 --- a/src/devices/bus/ieee488/c2040.cpp +++ b/src/devices/bus/ieee488/c2040.cpp @@ -70,9 +70,9 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type C2040 = device_creator; -const device_type C3040 = device_creator; -const device_type C4040 = device_creator; +DEFINE_DEVICE_TYPE(C2040, c2040_device, "c2040", "Commodore 2040") +DEFINE_DEVICE_TYPE(C3040, c3040_device, "c3040", "Commodore 3040") +DEFINE_DEVICE_TYPE(C4040, c4040_device, "c4040", "Commodore 4040") //------------------------------------------------- @@ -97,7 +97,7 @@ ROM_END // rom_region - device-specific ROM region //------------------------------------------------- -const tiny_rom_entry *c2040_t::device_rom_region() const +const tiny_rom_entry *c2040_device::device_rom_region() const { return ROM_NAME( c2040 ); } @@ -124,7 +124,7 @@ ROM_END // rom_region - device-specific ROM region //------------------------------------------------- -const tiny_rom_entry *c3040_t::device_rom_region() const +const tiny_rom_entry *c3040_device::device_rom_region() const { return ROM_NAME( c3040 ); } @@ -159,7 +159,7 @@ ROM_END // rom_region - device-specific ROM region //------------------------------------------------- -const tiny_rom_entry *c4040_t::device_rom_region() const +const tiny_rom_entry *c4040_device::device_rom_region() const { return ROM_NAME( c4040 ); } @@ -169,12 +169,12 @@ const tiny_rom_entry *c4040_t::device_rom_region() const // ADDRESS_MAP( c2040_main_mem ) //------------------------------------------------- -static ADDRESS_MAP_START( c2040_main_mem, AS_PROGRAM, 8, c2040_t ) +static ADDRESS_MAP_START( c2040_main_mem, AS_PROGRAM, 8, c2040_device ) ADDRESS_MAP_GLOBAL_MASK(0x7fff) - AM_RANGE(0x0000, 0x007f) AM_MIRROR(0x0100) AM_DEVICE(M6532_0_TAG, mos6532_t, ram_map) - AM_RANGE(0x0080, 0x00ff) AM_MIRROR(0x0100) AM_DEVICE(M6532_1_TAG, mos6532_t, ram_map) - AM_RANGE(0x0200, 0x021f) AM_MIRROR(0x0d60) AM_DEVICE(M6532_0_TAG, mos6532_t, io_map) - AM_RANGE(0x0280, 0x029f) AM_MIRROR(0x0d60) AM_DEVICE(M6532_1_TAG, mos6532_t, io_map) + AM_RANGE(0x0000, 0x007f) AM_MIRROR(0x0100) AM_DEVICE(M6532_0_TAG, mos6532_new_device, ram_map) + AM_RANGE(0x0080, 0x00ff) AM_MIRROR(0x0100) AM_DEVICE(M6532_1_TAG, mos6532_new_device, ram_map) + AM_RANGE(0x0200, 0x021f) AM_MIRROR(0x0d60) AM_DEVICE(M6532_0_TAG, mos6532_new_device, io_map) + AM_RANGE(0x0280, 0x029f) AM_MIRROR(0x0d60) AM_DEVICE(M6532_1_TAG, mos6532_new_device, io_map) AM_RANGE(0x1000, 0x13ff) AM_MIRROR(0x0c00) AM_RAM AM_SHARE("share1") AM_RANGE(0x2000, 0x23ff) AM_MIRROR(0x0c00) AM_RAM AM_SHARE("share2") AM_RANGE(0x3000, 0x33ff) AM_MIRROR(0x0c00) AM_RAM AM_SHARE("share3") @@ -187,11 +187,11 @@ ADDRESS_MAP_END // ADDRESS_MAP( c2040_fdc_mem ) //------------------------------------------------- -static ADDRESS_MAP_START( c2040_fdc_mem, AS_PROGRAM, 8, c2040_t ) +static ADDRESS_MAP_START( c2040_fdc_mem, AS_PROGRAM, 8, c2040_device ) ADDRESS_MAP_GLOBAL_MASK(0x1fff) - AM_RANGE(0x0000, 0x003f) AM_MIRROR(0x0300) AM_DEVICE(M6530_TAG, mos6530_t, ram_map) + AM_RANGE(0x0000, 0x003f) AM_MIRROR(0x0300) AM_DEVICE(M6530_TAG, mos6530_new_device, ram_map) AM_RANGE(0x0040, 0x004f) AM_MIRROR(0x0330) AM_DEVICE(M6522_TAG, via6522_device, map) - AM_RANGE(0x0080, 0x008f) AM_MIRROR(0x0330) AM_DEVICE(M6530_TAG, mos6530_t, io_map) + AM_RANGE(0x0080, 0x008f) AM_MIRROR(0x0330) AM_DEVICE(M6530_TAG, mos6530_new_device, io_map) AM_RANGE(0x0400, 0x07ff) AM_RAM AM_SHARE("share1") AM_RANGE(0x0800, 0x0bff) AM_RAM AM_SHARE("share2") AM_RANGE(0x0c00, 0x0fff) AM_RAM AM_SHARE("share3") @@ -204,7 +204,7 @@ ADDRESS_MAP_END // riot6532 uc1 //------------------------------------------------- -READ8_MEMBER( c2040_t::dio_r ) +READ8_MEMBER( c2040_device::dio_r ) { /* @@ -224,7 +224,7 @@ READ8_MEMBER( c2040_t::dio_r ) return m_bus->dio_r(); } -WRITE8_MEMBER( c2040_t::dio_w ) +WRITE8_MEMBER( c2040_device::dio_w ) { /* @@ -249,7 +249,7 @@ WRITE8_MEMBER( c2040_t::dio_w ) // riot6532 ue1 //------------------------------------------------- -READ8_MEMBER( c2040_t::riot1_pa_r ) +READ8_MEMBER( c2040_device::riot1_pa_r ) { /* @@ -280,7 +280,7 @@ READ8_MEMBER( c2040_t::riot1_pa_r ) return data; } -WRITE8_MEMBER( c2040_t::riot1_pa_w ) +WRITE8_MEMBER( c2040_device::riot1_pa_w ) { /* @@ -315,7 +315,7 @@ WRITE8_MEMBER( c2040_t::riot1_pa_w ) update_ieee_signals(); } -READ8_MEMBER( c2040_t::riot1_pb_r ) +READ8_MEMBER( c2040_device::riot1_pb_r ) { /* @@ -346,7 +346,7 @@ READ8_MEMBER( c2040_t::riot1_pb_r ) return data; } -WRITE8_MEMBER( c2040_t::riot1_pb_w ) +WRITE8_MEMBER( c2040_device::riot1_pb_w ) { /* @@ -374,7 +374,7 @@ WRITE8_MEMBER( c2040_t::riot1_pb_w ) } -WRITE8_MEMBER( c2040_t::via_pb_w ) +WRITE8_MEMBER( c2040_device::via_pb_w ) { /* @@ -418,7 +418,7 @@ SLOT_INTERFACE_END // FLOPPY_FORMATS( floppy_formats ) //------------------------------------------------- -FLOPPY_FORMATS_MEMBER( c2040_t::floppy_formats ) +FLOPPY_FORMATS_MEMBER( c2040_device::floppy_formats ) FLOPPY_C3040_FORMAT, FLOPPY_G64_FORMAT FLOPPY_FORMATS_END @@ -428,7 +428,7 @@ FLOPPY_FORMATS_END // FLOPPY_FORMATS( floppy_formats ) //------------------------------------------------- -FLOPPY_FORMATS_MEMBER( c3040_t::floppy_formats ) +FLOPPY_FORMATS_MEMBER( c3040_device::floppy_formats ) FLOPPY_C3040_FORMAT, FLOPPY_G64_FORMAT FLOPPY_FORMATS_END @@ -438,7 +438,7 @@ FLOPPY_FORMATS_END // FLOPPY_FORMATS( floppy_formats ) //------------------------------------------------- -FLOPPY_FORMATS_MEMBER( c4040_t::floppy_formats ) +FLOPPY_FORMATS_MEMBER( c4040_device::floppy_formats ) FLOPPY_C4040_FORMAT, FLOPPY_G64_FORMAT FLOPPY_FORMATS_END @@ -453,15 +453,15 @@ static MACHINE_CONFIG_FRAGMENT( c2040 ) MCFG_CPU_ADD(M6502_TAG, M6502, XTAL_16MHz/16) MCFG_CPU_PROGRAM_MAP(c2040_main_mem) - MCFG_DEVICE_ADD(M6532_0_TAG, MOS6532n, XTAL_16MHz/16) - MCFG_MOS6530n_IN_PA_CB(READ8(c2040_t, dio_r)) - MCFG_MOS6530n_OUT_PB_CB(WRITE8(c2040_t, dio_w)) + MCFG_DEVICE_ADD(M6532_0_TAG, MOS6532_NEW, XTAL_16MHz/16) + MCFG_MOS6530n_IN_PA_CB(READ8(c2040_device, dio_r)) + MCFG_MOS6530n_OUT_PB_CB(WRITE8(c2040_device, dio_w)) - MCFG_DEVICE_ADD(M6532_1_TAG, MOS6532n, XTAL_16MHz/16) - MCFG_MOS6530n_IN_PA_CB(READ8(c2040_t, riot1_pa_r)) - MCFG_MOS6530n_OUT_PA_CB(WRITE8(c2040_t, riot1_pa_w)) - MCFG_MOS6530n_IN_PB_CB(READ8(c2040_t, riot1_pb_r)) - MCFG_MOS6530n_OUT_PB_CB(WRITE8(c2040_t, riot1_pb_w)) + MCFG_DEVICE_ADD(M6532_1_TAG, MOS6532_NEW, XTAL_16MHz/16) + MCFG_MOS6530n_IN_PA_CB(READ8(c2040_device, riot1_pa_r)) + MCFG_MOS6530n_OUT_PA_CB(WRITE8(c2040_device, riot1_pa_w)) + MCFG_MOS6530n_IN_PB_CB(READ8(c2040_device, riot1_pb_r)) + MCFG_MOS6530n_OUT_PB_CB(WRITE8(c2040_device, riot1_pb_w)) MCFG_MOS6530n_IRQ_CB(INPUTLINE(M6502_TAG, INPUT_LINE_IRQ0)) // controller @@ -469,25 +469,25 @@ static MACHINE_CONFIG_FRAGMENT( c2040 ) MCFG_CPU_PROGRAM_MAP(c2040_fdc_mem) MCFG_DEVICE_ADD(M6522_TAG, VIA6522, XTAL_16MHz/16) - MCFG_VIA6522_READPA_HANDLER(DEVREAD8(FDC_TAG, c2040_fdc_t, read)) - MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(c2040_t, via_pb_w)) - MCFG_VIA6522_CA2_HANDLER(DEVWRITELINE(FDC_TAG, c2040_fdc_t, mode_sel_w)) - MCFG_VIA6522_CB2_HANDLER(DEVWRITELINE(FDC_TAG, c2040_fdc_t, rw_sel_w)) - - MCFG_DEVICE_ADD(M6530_TAG, MOS6530n, XTAL_16MHz/16) - MCFG_MOS6530n_OUT_PA_CB(DEVWRITE8(FDC_TAG, c2040_fdc_t, write)) - MCFG_MOS6530n_OUT_PB0_CB(DEVWRITELINE(FDC_TAG, c2040_fdc_t, drv_sel_w)) - MCFG_MOS6530n_OUT_PB1_CB(DEVWRITELINE(FDC_TAG, c2040_fdc_t, ds0_w)) - MCFG_MOS6530n_OUT_PB2_CB(DEVWRITELINE(FDC_TAG, c2040_fdc_t, ds1_w)) + MCFG_VIA6522_READPA_HANDLER(DEVREAD8(FDC_TAG, c2040_fdc_device, read)) + MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(c2040_device, via_pb_w)) + MCFG_VIA6522_CA2_HANDLER(DEVWRITELINE(FDC_TAG, c2040_fdc_device, mode_sel_w)) + MCFG_VIA6522_CB2_HANDLER(DEVWRITELINE(FDC_TAG, c2040_fdc_device, rw_sel_w)) + + MCFG_DEVICE_ADD(M6530_TAG, MOS6530_NEW, XTAL_16MHz/16) + MCFG_MOS6530n_OUT_PA_CB(DEVWRITE8(FDC_TAG, c2040_fdc_device, write)) + MCFG_MOS6530n_OUT_PB0_CB(DEVWRITELINE(FDC_TAG, c2040_fdc_device, drv_sel_w)) + MCFG_MOS6530n_OUT_PB1_CB(DEVWRITELINE(FDC_TAG, c2040_fdc_device, ds0_w)) + MCFG_MOS6530n_OUT_PB2_CB(DEVWRITELINE(FDC_TAG, c2040_fdc_device, ds1_w)) MCFG_MOS6530n_OUT_PB7_CB(INPUTLINE(M6504_TAG, M6502_IRQ_LINE)) - MCFG_MOS6530n_IN_PB3_CB(DEVREADLINE(FDC_TAG, c2040_fdc_t, wps_r)) + MCFG_MOS6530n_IN_PB3_CB(DEVREADLINE(FDC_TAG, c2040_fdc_device, wps_r)) MCFG_DEVICE_ADD(FDC_TAG, C2040_FDC, XTAL_16MHz) - MCFG_C2040_SYNC_CALLBACK(DEVWRITELINE(M6530_TAG, mos6530_t, pb6_w)) + MCFG_C2040_SYNC_CALLBACK(DEVWRITELINE(M6530_TAG, mos6530_new_device, pb6_w)) MCFG_C2040_READY_CALLBACK(DEVWRITELINE(M6522_TAG, via6522_device, write_ca1)) MCFG_C2040_ERROR_CALLBACK(DEVWRITELINE(M6522_TAG, via6522_device, write_cb1)) - MCFG_FLOPPY_DRIVE_ADD(FDC_TAG":0", c2040_floppies, "525ssqd", c2040_t::floppy_formats) - MCFG_FLOPPY_DRIVE_ADD(FDC_TAG":1", c2040_floppies, "525ssqd", c2040_t::floppy_formats) + MCFG_FLOPPY_DRIVE_ADD(FDC_TAG":0", c2040_floppies, "525ssqd", c2040_device::floppy_formats) + MCFG_FLOPPY_DRIVE_ADD(FDC_TAG":1", c2040_floppies, "525ssqd", c2040_device::floppy_formats) MACHINE_CONFIG_END @@ -496,7 +496,7 @@ MACHINE_CONFIG_END // machine configurations //------------------------------------------------- -machine_config_constructor c2040_t::device_mconfig_additions() const +machine_config_constructor c2040_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( c2040 ); } @@ -511,15 +511,15 @@ static MACHINE_CONFIG_FRAGMENT( c3040 ) MCFG_CPU_ADD(M6502_TAG, M6502, XTAL_16MHz/16) MCFG_CPU_PROGRAM_MAP(c2040_main_mem) - MCFG_DEVICE_ADD(M6532_0_TAG, MOS6532n, XTAL_16MHz/16) - MCFG_MOS6530n_IN_PA_CB(READ8(c2040_t, dio_r)) - MCFG_MOS6530n_OUT_PB_CB(WRITE8(c2040_t, dio_w)) + MCFG_DEVICE_ADD(M6532_0_TAG, MOS6532_NEW, XTAL_16MHz/16) + MCFG_MOS6530n_IN_PA_CB(READ8(c2040_device, dio_r)) + MCFG_MOS6530n_OUT_PB_CB(WRITE8(c2040_device, dio_w)) - MCFG_DEVICE_ADD(M6532_1_TAG, MOS6532n, XTAL_16MHz/16) - MCFG_MOS6530n_IN_PA_CB(READ8(c2040_t, riot1_pa_r)) - MCFG_MOS6530n_OUT_PA_CB(WRITE8(c2040_t, riot1_pa_w)) - MCFG_MOS6530n_IN_PB_CB(READ8(c2040_t, riot1_pb_r)) - MCFG_MOS6530n_OUT_PB_CB(WRITE8(c2040_t, riot1_pb_w)) + MCFG_DEVICE_ADD(M6532_1_TAG, MOS6532_NEW, XTAL_16MHz/16) + MCFG_MOS6530n_IN_PA_CB(READ8(c2040_device, riot1_pa_r)) + MCFG_MOS6530n_OUT_PA_CB(WRITE8(c2040_device, riot1_pa_w)) + MCFG_MOS6530n_IN_PB_CB(READ8(c2040_device, riot1_pb_r)) + MCFG_MOS6530n_OUT_PB_CB(WRITE8(c2040_device, riot1_pb_w)) MCFG_MOS6530n_IRQ_CB(INPUTLINE(M6502_TAG, INPUT_LINE_IRQ0)) // controller @@ -527,25 +527,25 @@ static MACHINE_CONFIG_FRAGMENT( c3040 ) MCFG_CPU_PROGRAM_MAP(c2040_fdc_mem) MCFG_DEVICE_ADD(M6522_TAG, VIA6522, XTAL_16MHz/16) - MCFG_VIA6522_READPA_HANDLER(DEVREAD8(FDC_TAG, c2040_fdc_t, read)) - MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(c2040_t, via_pb_w)) - MCFG_VIA6522_CA2_HANDLER(DEVWRITELINE(FDC_TAG, c2040_fdc_t, mode_sel_w)) - MCFG_VIA6522_CB2_HANDLER(DEVWRITELINE(FDC_TAG, c2040_fdc_t, rw_sel_w)) - - MCFG_DEVICE_ADD(M6530_TAG, MOS6530n, XTAL_16MHz/16) - MCFG_MOS6530n_OUT_PA_CB(DEVWRITE8(FDC_TAG, c2040_fdc_t, write)) - MCFG_MOS6530n_OUT_PB0_CB(DEVWRITELINE(FDC_TAG, c2040_fdc_t, drv_sel_w)) - MCFG_MOS6530n_OUT_PB1_CB(DEVWRITELINE(FDC_TAG, c2040_fdc_t, ds0_w)) - MCFG_MOS6530n_OUT_PB2_CB(DEVWRITELINE(FDC_TAG, c2040_fdc_t, ds1_w)) - MCFG_MOS6530n_IN_PB3_CB(DEVREADLINE(FDC_TAG, c2040_fdc_t, wps_r)) + MCFG_VIA6522_READPA_HANDLER(DEVREAD8(FDC_TAG, c2040_fdc_device, read)) + MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(c2040_device, via_pb_w)) + MCFG_VIA6522_CA2_HANDLER(DEVWRITELINE(FDC_TAG, c2040_fdc_device, mode_sel_w)) + MCFG_VIA6522_CB2_HANDLER(DEVWRITELINE(FDC_TAG, c2040_fdc_device, rw_sel_w)) + + MCFG_DEVICE_ADD(M6530_TAG, MOS6530_NEW, XTAL_16MHz/16) + MCFG_MOS6530n_OUT_PA_CB(DEVWRITE8(FDC_TAG, c2040_fdc_device, write)) + MCFG_MOS6530n_OUT_PB0_CB(DEVWRITELINE(FDC_TAG, c2040_fdc_device, drv_sel_w)) + MCFG_MOS6530n_OUT_PB1_CB(DEVWRITELINE(FDC_TAG, c2040_fdc_device, ds0_w)) + MCFG_MOS6530n_OUT_PB2_CB(DEVWRITELINE(FDC_TAG, c2040_fdc_device, ds1_w)) + MCFG_MOS6530n_IN_PB3_CB(DEVREADLINE(FDC_TAG, c2040_fdc_device, wps_r)) MCFG_MOS6530n_OUT_PB7_CB(INPUTLINE(M6504_TAG, M6502_IRQ_LINE)) MCFG_DEVICE_ADD(FDC_TAG, C2040_FDC, XTAL_16MHz) - MCFG_C2040_SYNC_CALLBACK(DEVWRITELINE(M6530_TAG, mos6530_t, pb6_w)) + MCFG_C2040_SYNC_CALLBACK(DEVWRITELINE(M6530_TAG, mos6530_new_device, pb6_w)) MCFG_C2040_READY_CALLBACK(DEVWRITELINE(M6522_TAG, via6522_device, write_ca1)) MCFG_C2040_ERROR_CALLBACK(DEVWRITELINE(M6522_TAG, via6522_device, write_cb1)) - MCFG_FLOPPY_DRIVE_ADD(FDC_TAG":0", c2040_floppies, "525ssqd", c3040_t::floppy_formats) - MCFG_FLOPPY_DRIVE_ADD(FDC_TAG":1", c2040_floppies, "525ssqd", c3040_t::floppy_formats) + MCFG_FLOPPY_DRIVE_ADD(FDC_TAG":0", c2040_floppies, "525ssqd", c3040_device::floppy_formats) + MCFG_FLOPPY_DRIVE_ADD(FDC_TAG":1", c2040_floppies, "525ssqd", c3040_device::floppy_formats) MACHINE_CONFIG_END @@ -554,7 +554,7 @@ MACHINE_CONFIG_END // machine configurations //------------------------------------------------- -machine_config_constructor c3040_t::device_mconfig_additions() const +machine_config_constructor c3040_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( c3040 ); } @@ -569,15 +569,15 @@ static MACHINE_CONFIG_FRAGMENT( c4040 ) MCFG_CPU_ADD(M6502_TAG, M6502, XTAL_16MHz/16) MCFG_CPU_PROGRAM_MAP(c2040_main_mem) - MCFG_DEVICE_ADD(M6532_0_TAG, MOS6532n, XTAL_16MHz/16) - MCFG_MOS6530n_IN_PA_CB(READ8(c2040_t, dio_r)) - MCFG_MOS6530n_OUT_PB_CB(WRITE8(c2040_t, dio_w)) + MCFG_DEVICE_ADD(M6532_0_TAG, MOS6532_NEW, XTAL_16MHz/16) + MCFG_MOS6530n_IN_PA_CB(READ8(c2040_device, dio_r)) + MCFG_MOS6530n_OUT_PB_CB(WRITE8(c2040_device, dio_w)) - MCFG_DEVICE_ADD(M6532_1_TAG, MOS6532n, XTAL_16MHz/16) - MCFG_MOS6530n_IN_PA_CB(READ8(c2040_t, riot1_pa_r)) - MCFG_MOS6530n_OUT_PA_CB(WRITE8(c2040_t, riot1_pa_w)) - MCFG_MOS6530n_IN_PB_CB(READ8(c2040_t, riot1_pb_r)) - MCFG_MOS6530n_OUT_PB_CB(WRITE8(c2040_t, riot1_pb_w)) + MCFG_DEVICE_ADD(M6532_1_TAG, MOS6532_NEW, XTAL_16MHz/16) + MCFG_MOS6530n_IN_PA_CB(READ8(c2040_device, riot1_pa_r)) + MCFG_MOS6530n_OUT_PA_CB(WRITE8(c2040_device, riot1_pa_w)) + MCFG_MOS6530n_IN_PB_CB(READ8(c2040_device, riot1_pb_r)) + MCFG_MOS6530n_OUT_PB_CB(WRITE8(c2040_device, riot1_pb_w)) MCFG_MOS6530n_IRQ_CB(INPUTLINE(M6502_TAG, INPUT_LINE_IRQ0)) // controller @@ -585,25 +585,25 @@ static MACHINE_CONFIG_FRAGMENT( c4040 ) MCFG_CPU_PROGRAM_MAP(c2040_fdc_mem) MCFG_DEVICE_ADD(M6522_TAG, VIA6522, XTAL_16MHz/16) - MCFG_VIA6522_READPA_HANDLER(DEVREAD8(FDC_TAG, c2040_fdc_t, read)) - MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(c2040_t, via_pb_w)) - MCFG_VIA6522_CA2_HANDLER(DEVWRITELINE(FDC_TAG, c2040_fdc_t, mode_sel_w)) - MCFG_VIA6522_CB2_HANDLER(DEVWRITELINE(FDC_TAG, c2040_fdc_t, rw_sel_w)) - - MCFG_DEVICE_ADD(M6530_TAG, MOS6530n, XTAL_16MHz/16) - MCFG_MOS6530n_OUT_PA_CB(DEVWRITE8(FDC_TAG, c2040_fdc_t, write)) - MCFG_MOS6530n_OUT_PB0_CB(DEVWRITELINE(FDC_TAG, c2040_fdc_t, drv_sel_w)) - MCFG_MOS6530n_OUT_PB1_CB(DEVWRITELINE(FDC_TAG, c2040_fdc_t, ds0_w)) - MCFG_MOS6530n_OUT_PB2_CB(DEVWRITELINE(FDC_TAG, c2040_fdc_t, ds1_w)) - MCFG_MOS6530n_IN_PB3_CB(DEVREADLINE(FDC_TAG, c2040_fdc_t, wps_r)) + MCFG_VIA6522_READPA_HANDLER(DEVREAD8(FDC_TAG, c2040_fdc_device, read)) + MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(c2040_device, via_pb_w)) + MCFG_VIA6522_CA2_HANDLER(DEVWRITELINE(FDC_TAG, c2040_fdc_device, mode_sel_w)) + MCFG_VIA6522_CB2_HANDLER(DEVWRITELINE(FDC_TAG, c2040_fdc_device, rw_sel_w)) + + MCFG_DEVICE_ADD(M6530_TAG, MOS6530_NEW, XTAL_16MHz/16) + MCFG_MOS6530n_OUT_PA_CB(DEVWRITE8(FDC_TAG, c2040_fdc_device, write)) + MCFG_MOS6530n_OUT_PB0_CB(DEVWRITELINE(FDC_TAG, c2040_fdc_device, drv_sel_w)) + MCFG_MOS6530n_OUT_PB1_CB(DEVWRITELINE(FDC_TAG, c2040_fdc_device, ds0_w)) + MCFG_MOS6530n_OUT_PB2_CB(DEVWRITELINE(FDC_TAG, c2040_fdc_device, ds1_w)) + MCFG_MOS6530n_IN_PB3_CB(DEVREADLINE(FDC_TAG, c2040_fdc_device, wps_r)) MCFG_MOS6530n_OUT_PB7_CB(INPUTLINE(M6504_TAG, M6502_IRQ_LINE)) MCFG_DEVICE_ADD(FDC_TAG, C2040_FDC, XTAL_16MHz) - MCFG_C2040_SYNC_CALLBACK(DEVWRITELINE(M6530_TAG, mos6530_t, pb6_w)) + MCFG_C2040_SYNC_CALLBACK(DEVWRITELINE(M6530_TAG, mos6530_new_device, pb6_w)) MCFG_C2040_READY_CALLBACK(DEVWRITELINE(M6522_TAG, via6522_device, write_ca1)) MCFG_C2040_ERROR_CALLBACK(DEVWRITELINE(M6522_TAG, via6522_device, write_cb1)) - MCFG_FLOPPY_DRIVE_ADD(FDC_TAG":0", c2040_floppies, "525ssqd", c4040_t::floppy_formats) - MCFG_FLOPPY_DRIVE_ADD(FDC_TAG":1", c2040_floppies, "525ssqd", c4040_t::floppy_formats) + MCFG_FLOPPY_DRIVE_ADD(FDC_TAG":0", c2040_floppies, "525ssqd", c4040_device::floppy_formats) + MCFG_FLOPPY_DRIVE_ADD(FDC_TAG":1", c2040_floppies, "525ssqd", c4040_device::floppy_formats) MACHINE_CONFIG_END @@ -612,7 +612,7 @@ MACHINE_CONFIG_END // machine configurations //------------------------------------------------- -machine_config_constructor c4040_t::device_mconfig_additions() const +machine_config_constructor c4040_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( c4040 ); } @@ -640,7 +640,7 @@ INPUT_PORTS_END // input_ports - device-specific input ports //------------------------------------------------- -ioport_constructor c2040_t::device_input_ports() const +ioport_constructor c2040_device::device_input_ports() const { return INPUT_PORTS_NAME( c2040 ); } @@ -655,7 +655,7 @@ ioport_constructor c2040_t::device_input_ports() const // update_ieee_signals - //------------------------------------------------- -inline void c2040_t::update_ieee_signals() +inline void c2040_device::update_ieee_signals() { int atn = m_bus->atn_r(); int nrfd = !(!(!(atn && m_atna) && m_rfdo) || !(atn || m_atna)); @@ -672,11 +672,11 @@ inline void c2040_t::update_ieee_signals() //************************************************************************** //------------------------------------------------- -// c2040_t - constructor +// c2040_device - constructor //------------------------------------------------- -c2040_t::c2040_t(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), +c2040_device::c2040_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), device_ieee488_interface(mconfig, *this), m_maincpu(*this, M6502_TAG), m_fdccpu(*this, M6504_TAG), @@ -691,52 +691,42 @@ c2040_t::c2040_t(const machine_config &mconfig, device_type type, const char *na m_address(*this, "ADDRESS"), m_rfdo(1), m_daco(1), - m_atna(1), m_ifc(0) + m_atna(1), + m_ifc(0) { } -c2040_t::c2040_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, C2040, "C2040", tag, owner, clock, "c2040", __FILE__), - device_ieee488_interface(mconfig, *this), - m_maincpu(*this, M6502_TAG), - m_fdccpu(*this, M6504_TAG), - m_riot0(*this, M6532_0_TAG), - m_riot1(*this, M6532_1_TAG), - m_miot(*this, M6530_TAG), - m_via(*this, M6522_TAG), - m_floppy0(*this, FDC_TAG":0:525ssqd"), - m_floppy1(*this, FDC_TAG":1:525ssqd"), - m_fdc(*this, FDC_TAG), - m_gcr(*this, "gcr"), - m_address(*this, "ADDRESS"), - m_rfdo(1), - m_daco(1), - m_atna(1), m_ifc(0) +c2040_device::c2040_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + c2040_device(mconfig, C2040, tag, owner, clock) { } //------------------------------------------------- -// c3040_t - constructor +// c3040_device - constructor //------------------------------------------------- -c3040_t::c3040_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - c2040_t(mconfig, C3040, "C3040", tag, owner, clock, "c3040", __FILE__) { } +c3040_device::c3040_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + c2040_device(mconfig, C3040, tag, owner, clock) +{ +} //------------------------------------------------- -// c4040_t - constructor +// c4040_device - constructor //------------------------------------------------- -c4040_t::c4040_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - c2040_t(mconfig, C4040, "C4040", tag, owner, clock, "c4040", __FILE__) { } +c4040_device::c4040_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + c2040_device(mconfig, C4040, tag, owner, clock) +{ +} //------------------------------------------------- // device_start - device-specific startup //------------------------------------------------- -void c2040_t::device_start() +void c2040_device::device_start() { // install image callbacks m_fdc->set_floppy(m_floppy0, m_floppy1); @@ -753,7 +743,7 @@ void c2040_t::device_start() // device_reset - device-specific reset //------------------------------------------------- -void c2040_t::device_reset() +void c2040_device::device_reset() { m_maincpu->reset(); @@ -780,7 +770,7 @@ void c2040_t::device_reset() // ieee488_atn - //------------------------------------------------- -void c2040_t::ieee488_atn(int state) +void c2040_device::ieee488_atn(int state) { update_ieee_signals(); @@ -792,7 +782,7 @@ void c2040_t::ieee488_atn(int state) // ieee488_ifc - //------------------------------------------------- -void c2040_t::ieee488_ifc(int state) +void c2040_device::ieee488_ifc(int state) { if (!m_ifc && state) { diff --git a/src/devices/bus/ieee488/c2040.h b/src/devices/bus/ieee488/c2040.h index d56da37ea9b..7289c99c43e 100644 --- a/src/devices/bus/ieee488/c2040.h +++ b/src/devices/bus/ieee488/c2040.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_IEEE488_C2040_H +#define MAME_BUS_IEEE488_C2040_H -#ifndef __C2040__ -#define __C2040__ +#pragma once #include "ieee488.h" #include "c2040fdc.h" @@ -24,15 +24,13 @@ // TYPE DEFINITIONS //************************************************************************** -// ======================> c2040_t +// ======================> c2040_device -class c2040_t : public device_t, - public device_ieee488_interface +class c2040_device : public device_t, public device_ieee488_interface { public: // construction/destruction - c2040_t(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - c2040_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + c2040_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual const tiny_rom_entry *device_rom_region() const override; @@ -50,6 +48,8 @@ public: DECLARE_FLOPPY_FORMATS( floppy_formats ); protected: + c2040_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -70,13 +70,13 @@ protected: required_device m_maincpu; required_device m_fdccpu; - required_device m_riot0; - required_device m_riot1; - required_device m_miot; + required_device m_riot0; + required_device m_riot1; + required_device m_miot; required_device m_via; required_device m_floppy0; optional_device m_floppy1; - required_device m_fdc; + required_device m_fdc; required_memory_region m_gcr; required_ioport m_address; @@ -88,13 +88,13 @@ protected: }; -// ======================> c3040_t +// ======================> c3040_device -class c3040_t : public c2040_t +class c3040_device : public c2040_device { public: // construction/destruction - c3040_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + c3040_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual const tiny_rom_entry *device_rom_region() const override; @@ -104,13 +104,13 @@ public: }; -// ======================> c4040_t +// ======================> c4040_device -class c4040_t : public c2040_t +class c4040_device : public c2040_device { public: // construction/destruction - c4040_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + c4040_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual const tiny_rom_entry *device_rom_region() const override; @@ -121,10 +121,9 @@ public: // device type definition -extern const device_type C2040; -extern const device_type C3040; -extern const device_type C4040; - +DECLARE_DEVICE_TYPE(C2040, c2040_device) +DECLARE_DEVICE_TYPE(C3040, c3040_device) +DECLARE_DEVICE_TYPE(C4040, c4040_device) -#endif +#endif // MAME_BUS_IEEE488_C2040_H diff --git a/src/devices/bus/ieee488/c2040fdc.cpp b/src/devices/bus/ieee488/c2040fdc.cpp index 7256457371f..7d99eb780cf 100644 --- a/src/devices/bus/ieee488/c2040fdc.cpp +++ b/src/devices/bus/ieee488/c2040fdc.cpp @@ -38,7 +38,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type C2040_FDC = device_creator; +DEFINE_DEVICE_TYPE(C2040_FDC, c2040_fdc_device, "c2040_fdc", "Commodore 2040 FDC") //------------------------------------------------- @@ -55,7 +55,7 @@ ROM_END // rom_region - device-specific ROM region //------------------------------------------------- -const tiny_rom_entry *c2040_fdc_t::device_rom_region() const +const tiny_rom_entry *c2040_fdc_device::device_rom_region() const { return ROM_NAME( c2040_fdc ); } @@ -67,11 +67,11 @@ const tiny_rom_entry *c2040_fdc_t::device_rom_region() const //************************************************************************** //------------------------------------------------- -// c2040_fdc_t - constructor +// c2040_fdc_device - constructor //------------------------------------------------- -c2040_fdc_t::c2040_fdc_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, C2040_FDC, "C2040 FDC", tag, owner, clock, "c2040fdc", __FILE__), +c2040_fdc_device::c2040_fdc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, C2040_FDC, tag, owner, clock), m_write_sync(*this), m_write_ready(*this), m_write_error(*this), @@ -103,7 +103,7 @@ c2040_fdc_t::c2040_fdc_t(const machine_config &mconfig, const char *tag, device_ // device_start - device-specific startup //------------------------------------------------- -void c2040_fdc_t::device_start() +void c2040_fdc_device::device_start() { // resolve callbacks m_write_sync.resolve_safe(); @@ -132,7 +132,7 @@ void c2040_fdc_t::device_start() // device clock is altered in any way //------------------------------------------------- -void c2040_fdc_t::device_clock_changed() +void c2040_fdc_device::device_clock_changed() { m_period = attotime::from_hz(clock()); } @@ -142,7 +142,7 @@ void c2040_fdc_t::device_clock_changed() // device_reset - device-specific reset //------------------------------------------------- -void c2040_fdc_t::device_reset() +void c2040_fdc_device::device_reset() { live_abort(); } @@ -152,18 +152,18 @@ void c2040_fdc_t::device_reset() // device_timer - handler timer events //------------------------------------------------- -void c2040_fdc_t::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) +void c2040_fdc_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) { live_sync(); live_run(); } -floppy_image_device* c2040_fdc_t::get_floppy() +floppy_image_device* c2040_fdc_device::get_floppy() { return cur_live.drv_sel ? m_floppy1 : m_floppy0; } -void c2040_fdc_t::live_start() +void c2040_fdc_device::live_start() { cur_live.tm = machine().time(); cur_live.state = RUNNING; @@ -185,31 +185,31 @@ void c2040_fdc_t::live_start() live_run(); } -void c2040_fdc_t::checkpoint() +void c2040_fdc_device::checkpoint() { get_next_edge(machine().time()); checkpoint_live = cur_live; } -void c2040_fdc_t::rollback() +void c2040_fdc_device::rollback() { cur_live = checkpoint_live; get_next_edge(cur_live.tm); } -void c2040_fdc_t::start_writing(const attotime &tm) +void c2040_fdc_device::start_writing(const attotime &tm) { cur_live.write_start_time = tm; cur_live.write_position = 0; } -void c2040_fdc_t::stop_writing(const attotime &tm) +void c2040_fdc_device::stop_writing(const attotime &tm) { commit(tm); cur_live.write_start_time = attotime::never; } -bool c2040_fdc_t::write_next_bit(bool bit, const attotime &limit) +bool c2040_fdc_device::write_next_bit(bool bit, const attotime &limit) { if(cur_live.write_start_time.is_never()) { cur_live.write_start_time = cur_live.tm; @@ -228,7 +228,7 @@ bool c2040_fdc_t::write_next_bit(bool bit, const attotime &limit) return false; } -void c2040_fdc_t::commit(const attotime &tm) +void c2040_fdc_device::commit(const attotime &tm) { if(cur_live.write_start_time.is_never() || tm == cur_live.write_start_time || !cur_live.write_position) return; @@ -242,7 +242,7 @@ void c2040_fdc_t::commit(const attotime &tm) cur_live.write_position = 0; } -void c2040_fdc_t::live_delay(int state) +void c2040_fdc_device::live_delay(int state) { cur_live.next_state = state; if(cur_live.tm != machine().time()) @@ -251,7 +251,7 @@ void c2040_fdc_t::live_delay(int state) live_sync(); } -void c2040_fdc_t::live_sync() +void c2040_fdc_device::live_sync() { if(!cur_live.tm.is_never()) { if(cur_live.tm > machine().time()) { @@ -274,7 +274,7 @@ void c2040_fdc_t::live_sync() } } -void c2040_fdc_t::live_abort() +void c2040_fdc_device::live_abort() { if(!cur_live.tm.is_never() && cur_live.tm > machine().time()) { rollback(); @@ -294,7 +294,7 @@ void c2040_fdc_t::live_abort() cur_live.error = 1; } -void c2040_fdc_t::live_run(const attotime &limit) +void c2040_fdc_device::live_run(const attotime &limit) { if(cur_live.state == IDLE || cur_live.next_state != -1) return; @@ -423,14 +423,14 @@ void c2040_fdc_t::live_run(const attotime &limit) } } -void c2040_fdc_t::get_next_edge(const attotime &when) +void c2040_fdc_device::get_next_edge(const attotime &when) { floppy_image_device *floppy = get_floppy(); cur_live.edge = floppy ? floppy->get_next_transition(when) : attotime::never; } -int c2040_fdc_t::get_next_bit(attotime &tm, const attotime &limit) +int c2040_fdc_device::get_next_bit(attotime &tm, const attotime &limit) { attotime next = tm + m_period; @@ -443,7 +443,7 @@ int c2040_fdc_t::get_next_bit(attotime &tm, const attotime &limit) return bit && cur_live.rw_sel; } -READ8_MEMBER( c2040_fdc_t::read ) +READ8_MEMBER( c2040_fdc_device::read ) { uint8_t e = checkpoint_live.e; offs_t i = checkpoint_live.i; @@ -455,7 +455,7 @@ READ8_MEMBER( c2040_fdc_t::read ) return data; } -WRITE8_MEMBER( c2040_fdc_t::write ) +WRITE8_MEMBER( c2040_fdc_device::write ) { if (m_pi != data) { @@ -467,19 +467,19 @@ WRITE8_MEMBER( c2040_fdc_t::write ) } } -WRITE_LINE_MEMBER( c2040_fdc_t::ds0_w ) +WRITE_LINE_MEMBER( c2040_fdc_device::ds0_w ) { m_ds0 = state; } -WRITE_LINE_MEMBER( c2040_fdc_t::ds1_w ) +WRITE_LINE_MEMBER( c2040_fdc_device::ds1_w ) { m_ds1 = state; ds_w(m_ds1 << 1 | m_ds0); } -WRITE_LINE_MEMBER( c2040_fdc_t::drv_sel_w ) +WRITE_LINE_MEMBER( c2040_fdc_device::drv_sel_w ) { if (m_drv_sel != state) { @@ -491,7 +491,7 @@ WRITE_LINE_MEMBER( c2040_fdc_t::drv_sel_w ) } } -WRITE_LINE_MEMBER( c2040_fdc_t::mode_sel_w ) +WRITE_LINE_MEMBER( c2040_fdc_device::mode_sel_w ) { if (m_mode_sel != state) { @@ -503,7 +503,7 @@ WRITE_LINE_MEMBER( c2040_fdc_t::mode_sel_w ) } } -WRITE_LINE_MEMBER( c2040_fdc_t::rw_sel_w ) +WRITE_LINE_MEMBER( c2040_fdc_device::rw_sel_w ) { if (m_rw_sel != state) { @@ -520,7 +520,7 @@ WRITE_LINE_MEMBER( c2040_fdc_t::rw_sel_w ) } } -WRITE_LINE_MEMBER( c2040_fdc_t::mtr0_w ) +WRITE_LINE_MEMBER( c2040_fdc_device::mtr0_w ) { if (m_mtr0 != state) { @@ -542,7 +542,7 @@ WRITE_LINE_MEMBER( c2040_fdc_t::mtr0_w ) } } -WRITE_LINE_MEMBER( c2040_fdc_t::mtr1_w ) +WRITE_LINE_MEMBER( c2040_fdc_device::mtr1_w ) { if (m_mtr1 != state) { @@ -564,7 +564,7 @@ WRITE_LINE_MEMBER( c2040_fdc_t::mtr1_w ) } } -void c2040_fdc_t::stp_w(floppy_image_device *floppy, int mtr, int &old_stp, int stp) +void c2040_fdc_device::stp_w(floppy_image_device *floppy, int mtr, int &old_stp, int stp) { if (mtr) return; @@ -594,7 +594,7 @@ void c2040_fdc_t::stp_w(floppy_image_device *floppy, int mtr, int &old_stp, int old_stp = stp; } -void c2040_fdc_t::stp0_w(int stp) +void c2040_fdc_device::stp0_w(int stp) { if (m_stp0 != stp) { @@ -605,7 +605,7 @@ void c2040_fdc_t::stp0_w(int stp) } } -void c2040_fdc_t::stp1_w(int stp) +void c2040_fdc_device::stp1_w(int stp) { if (m_stp1 != stp) { @@ -616,7 +616,7 @@ void c2040_fdc_t::stp1_w(int stp) } } -void c2040_fdc_t::ds_w(int ds) +void c2040_fdc_device::ds_w(int ds) { if (m_ds != ds) { @@ -628,7 +628,7 @@ void c2040_fdc_t::ds_w(int ds) } } -void c2040_fdc_t::set_floppy(floppy_image_device *floppy0, floppy_image_device *floppy1) +void c2040_fdc_device::set_floppy(floppy_image_device *floppy0, floppy_image_device *floppy1) { m_floppy0 = floppy0; m_floppy1 = floppy1; diff --git a/src/devices/bus/ieee488/c2040fdc.h b/src/devices/bus/ieee488/c2040fdc.h index 45690295b9a..bbbd799182c 100644 --- a/src/devices/bus/ieee488/c2040fdc.h +++ b/src/devices/bus/ieee488/c2040fdc.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_IEEE488_C2040FDC_H +#define MAME_BUS_IEEE488_C2040FDC_H -#ifndef __C2040_FLOPPY__ -#define __C2040_FLOPPY__ +#pragma once #include "formats/c3040_dsk.h" #include "formats/c4040_dsk.h" @@ -24,13 +24,13 @@ //************************************************************************** #define MCFG_C2040_SYNC_CALLBACK(_write) \ - devcb = &c2040_fdc_t::set_sync_wr_callback(*device, DEVCB_##_write); + devcb = &c2040_fdc_device::set_sync_wr_callback(*device, DEVCB_##_write); #define MCFG_C2040_READY_CALLBACK(_write) \ - devcb = &c2040_fdc_t::set_ready_wr_callback(*device, DEVCB_##_write); + devcb = &c2040_fdc_device::set_ready_wr_callback(*device, DEVCB_##_write); #define MCFG_C2040_ERROR_CALLBACK(_write) \ - devcb = &c2040_fdc_t::set_error_wr_callback(*device, DEVCB_##_write); + devcb = &c2040_fdc_device::set_error_wr_callback(*device, DEVCB_##_write); @@ -38,17 +38,17 @@ // TYPE DEFINITIONS //************************************************************************** -// ======================> c2040_fdc_t +// ======================> c2040_fdc_device -class c2040_fdc_t : public device_t +class c2040_fdc_device : public device_t { public: // construction/destruction - c2040_fdc_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + c2040_fdc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_sync_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_sync.set_callback(object); } - template static devcb_base &set_ready_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_ready.set_callback(object); } - template static devcb_base &set_error_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_error.set_callback(object); } + template static devcb_base &set_sync_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_sync.set_callback(std::forward(cb)); } + template static devcb_base &set_ready_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_ready.set_callback(std::forward(cb)); } + template static devcb_base &set_error_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_error.set_callback(std::forward(cb)); } DECLARE_READ8_MEMBER( read ); DECLARE_WRITE8_MEMBER( write ); @@ -161,8 +161,6 @@ protected: // device type definition -extern const device_type C2040_FDC; - - +DECLARE_DEVICE_TYPE(C2040_FDC, c2040_fdc_device) -#endif +#endif // MAME_BUS_IEEE488_C2040FDC_H diff --git a/src/devices/bus/ieee488/c8050.cpp b/src/devices/bus/ieee488/c8050.cpp index 11ea6204870..91118edd649 100644 --- a/src/devices/bus/ieee488/c8050.cpp +++ b/src/devices/bus/ieee488/c8050.cpp @@ -54,10 +54,10 @@ enum // DEVICE DEFINITIONS //************************************************************************** -const device_type C8050 = device_creator; -const device_type C8250 = device_creator; -const device_type C8250LP = device_creator; -const device_type SFD1001 = device_creator; +DEFINE_DEVICE_TYPE(C8050, c8050_device, "c8050", "Commodore 8050") +DEFINE_DEVICE_TYPE(C8250, c8250_device, "c8250", "Commodore 8250") +DEFINE_DEVICE_TYPE(C8250LP, c8250lp_device, "c8250lp", "Commodore 8250LP") +DEFINE_DEVICE_TYPE(SFD1001, sfd1001_device, "sfd10001", "Commodore SFD-1001") //------------------------------------------------- @@ -110,7 +110,7 @@ ROM_END // rom_region - device-specific ROM region //------------------------------------------------- -const tiny_rom_entry *c8050_t::device_rom_region() const +const tiny_rom_entry *c8050_device::device_rom_region() const { return ROM_NAME( c8050 ); } @@ -144,7 +144,7 @@ ROM_END // rom_region - device-specific ROM region //------------------------------------------------- -const tiny_rom_entry *c8250lp_t::device_rom_region() const +const tiny_rom_entry *c8250lp_device::device_rom_region() const { return ROM_NAME( c8250lp ); } @@ -174,7 +174,7 @@ ROM_END // rom_region - device-specific ROM region //------------------------------------------------- -const tiny_rom_entry *sfd1001_t::device_rom_region() const +const tiny_rom_entry *sfd1001_device::device_rom_region() const { return ROM_NAME( sfd1001 ); } @@ -184,11 +184,11 @@ const tiny_rom_entry *sfd1001_t::device_rom_region() const // ADDRESS_MAP( c8050_main_mem ) //------------------------------------------------- -static ADDRESS_MAP_START( c8050_main_mem, AS_PROGRAM, 8, c8050_t ) - AM_RANGE(0x0000, 0x007f) AM_MIRROR(0x0100) AM_DEVICE(M6532_0_TAG, mos6532_t, ram_map) - AM_RANGE(0x0080, 0x00ff) AM_MIRROR(0x0100) AM_DEVICE(M6532_1_TAG, mos6532_t, ram_map) - AM_RANGE(0x0200, 0x021f) AM_MIRROR(0x0d60) AM_DEVICE(M6532_0_TAG, mos6532_t, io_map) - AM_RANGE(0x0280, 0x029f) AM_MIRROR(0x0d60) AM_DEVICE(M6532_1_TAG, mos6532_t, io_map) +static ADDRESS_MAP_START( c8050_main_mem, AS_PROGRAM, 8, c8050_device ) + AM_RANGE(0x0000, 0x007f) AM_MIRROR(0x0100) AM_DEVICE(M6532_0_TAG, mos6532_new_device, ram_map) + AM_RANGE(0x0080, 0x00ff) AM_MIRROR(0x0100) AM_DEVICE(M6532_1_TAG, mos6532_new_device, ram_map) + AM_RANGE(0x0200, 0x021f) AM_MIRROR(0x0d60) AM_DEVICE(M6532_0_TAG, mos6532_new_device, io_map) + AM_RANGE(0x0280, 0x029f) AM_MIRROR(0x0d60) AM_DEVICE(M6532_1_TAG, mos6532_new_device, io_map) AM_RANGE(0x1000, 0x13ff) AM_MIRROR(0x0c00) AM_RAM AM_SHARE("share1") AM_RANGE(0x2000, 0x23ff) AM_MIRROR(0x0c00) AM_RAM AM_SHARE("share2") AM_RANGE(0x3000, 0x33ff) AM_MIRROR(0x0c00) AM_RAM AM_SHARE("share3") @@ -201,16 +201,16 @@ ADDRESS_MAP_END // ADDRESS_MAP( c8050_fdc_mem ) //------------------------------------------------- -static ADDRESS_MAP_START( c8050_fdc_mem, AS_PROGRAM, 8, c8050_t ) +static ADDRESS_MAP_START( c8050_fdc_mem, AS_PROGRAM, 8, c8050_device ) ADDRESS_MAP_GLOBAL_MASK(0x1fff) - AM_RANGE(0x0000, 0x003f) AM_MIRROR(0x0300) AM_DEVICE(M6530_TAG, mos6530_t, ram_map) + AM_RANGE(0x0000, 0x003f) AM_MIRROR(0x0300) AM_DEVICE(M6530_TAG, mos6530_new_device, ram_map) AM_RANGE(0x0040, 0x004f) AM_MIRROR(0x0330) AM_DEVICE(M6522_TAG, via6522_device, map) - AM_RANGE(0x0080, 0x008f) AM_MIRROR(0x0330) AM_DEVICE(M6530_TAG, mos6530_t, io_map) + AM_RANGE(0x0080, 0x008f) AM_MIRROR(0x0330) AM_DEVICE(M6530_TAG, mos6530_new_device, io_map) AM_RANGE(0x0400, 0x07ff) AM_RAM AM_SHARE("share1") AM_RANGE(0x0800, 0x0bff) AM_RAM AM_SHARE("share2") AM_RANGE(0x0c00, 0x0fff) AM_RAM AM_SHARE("share3") AM_RANGE(0x1000, 0x13ff) AM_RAM AM_SHARE("share4") - AM_RANGE(0x1c00, 0x1fff) AM_DEVICE(M6530_TAG, mos6530_t, rom_map) + AM_RANGE(0x1c00, 0x1fff) AM_DEVICE(M6530_TAG, mos6530_new_device, rom_map) ADDRESS_MAP_END @@ -218,11 +218,11 @@ ADDRESS_MAP_END // ADDRESS_MAP( c8250lp_fdc_mem ) //------------------------------------------------- -static ADDRESS_MAP_START( c8250lp_fdc_mem, AS_PROGRAM, 8, c8050_t ) +static ADDRESS_MAP_START( c8250lp_fdc_mem, AS_PROGRAM, 8, c8050_device ) ADDRESS_MAP_GLOBAL_MASK(0x1fff) - AM_RANGE(0x0000, 0x003f) AM_MIRROR(0x0300) AM_DEVICE(M6530_TAG, mos6530_t, ram_map) + AM_RANGE(0x0000, 0x003f) AM_MIRROR(0x0300) AM_DEVICE(M6530_TAG, mos6530_new_device, ram_map) AM_RANGE(0x0040, 0x004f) AM_MIRROR(0x0330) AM_DEVICE(M6522_TAG, via6522_device, map) - AM_RANGE(0x0080, 0x008f) AM_MIRROR(0x0330) AM_DEVICE(M6530_TAG, mos6530_t, io_map) + AM_RANGE(0x0080, 0x008f) AM_MIRROR(0x0330) AM_DEVICE(M6530_TAG, mos6530_new_device, io_map) AM_RANGE(0x0400, 0x07ff) AM_RAM AM_SHARE("share1") AM_RANGE(0x0800, 0x0bff) AM_RAM AM_SHARE("share2") AM_RANGE(0x0c00, 0x0fff) AM_RAM AM_SHARE("share3") @@ -235,11 +235,11 @@ ADDRESS_MAP_END // ADDRESS_MAP( sfd1001_fdc_mem ) //------------------------------------------------- -static ADDRESS_MAP_START( sfd1001_fdc_mem, AS_PROGRAM, 8, c8050_t ) +static ADDRESS_MAP_START( sfd1001_fdc_mem, AS_PROGRAM, 8, c8050_device ) ADDRESS_MAP_GLOBAL_MASK(0x1fff) - AM_RANGE(0x0000, 0x003f) AM_MIRROR(0x0300) AM_DEVICE(M6530_TAG, mos6530_t, ram_map) + AM_RANGE(0x0000, 0x003f) AM_MIRROR(0x0300) AM_DEVICE(M6530_TAG, mos6530_new_device, ram_map) AM_RANGE(0x0040, 0x004f) AM_MIRROR(0x0330) AM_DEVICE(M6522_TAG, via6522_device, map) - AM_RANGE(0x0080, 0x008f) AM_MIRROR(0x0330) AM_DEVICE(M6530_TAG, mos6530_t, io_map) + AM_RANGE(0x0080, 0x008f) AM_MIRROR(0x0330) AM_DEVICE(M6530_TAG, mos6530_new_device, io_map) AM_RANGE(0x0400, 0x07ff) AM_RAM AM_SHARE("share1") AM_RANGE(0x0800, 0x0bff) AM_RAM AM_SHARE("share2") AM_RANGE(0x0c00, 0x0fff) AM_RAM AM_SHARE("share3") @@ -252,7 +252,7 @@ ADDRESS_MAP_END // riot6532 uc1 //------------------------------------------------- -READ8_MEMBER( c8050_t::dio_r ) +READ8_MEMBER( c8050_device::dio_r ) { /* @@ -272,7 +272,7 @@ READ8_MEMBER( c8050_t::dio_r ) return m_bus->dio_r(); } -WRITE8_MEMBER( c8050_t::dio_w ) +WRITE8_MEMBER( c8050_device::dio_w ) { /* @@ -296,7 +296,7 @@ WRITE8_MEMBER( c8050_t::dio_w ) // riot6532 ue1 //------------------------------------------------- -READ8_MEMBER( c8050_t::riot1_pa_r ) +READ8_MEMBER( c8050_device::riot1_pa_r ) { /* @@ -327,7 +327,7 @@ READ8_MEMBER( c8050_t::riot1_pa_r ) return data; } -WRITE8_MEMBER( c8050_t::riot1_pa_w ) +WRITE8_MEMBER( c8050_device::riot1_pa_w ) { /* @@ -362,7 +362,7 @@ WRITE8_MEMBER( c8050_t::riot1_pa_w ) update_ieee_signals(); } -READ8_MEMBER( c8050_t::riot1_pb_r ) +READ8_MEMBER( c8050_device::riot1_pb_r ) { /* @@ -393,7 +393,7 @@ READ8_MEMBER( c8050_t::riot1_pb_r ) return data; } -WRITE8_MEMBER( c8050_t::riot1_pb_w ) +WRITE8_MEMBER( c8050_device::riot1_pb_w ) { /* @@ -420,7 +420,7 @@ WRITE8_MEMBER( c8050_t::riot1_pb_w ) machine().output().set_led_value(LED_ERR, BIT(data, 5)); } -WRITE8_MEMBER( c8050_t::via_pb_w ) +WRITE8_MEMBER( c8050_device::via_pb_w ) { /* @@ -467,7 +467,7 @@ SLOT_INTERFACE_END // FLOPPY_FORMATS( floppy_formats ) //------------------------------------------------- -FLOPPY_FORMATS_MEMBER( c8050_t::floppy_formats ) +FLOPPY_FORMATS_MEMBER( c8050_device::floppy_formats ) FLOPPY_D80_FORMAT FLOPPY_FORMATS_END @@ -494,7 +494,7 @@ SLOT_INTERFACE_END // FLOPPY_FORMATS( floppy_formats ) //------------------------------------------------- -FLOPPY_FORMATS_MEMBER( c8250_t::floppy_formats ) +FLOPPY_FORMATS_MEMBER( c8250_device::floppy_formats ) FLOPPY_D80_FORMAT, FLOPPY_D82_FORMAT FLOPPY_FORMATS_END @@ -504,7 +504,7 @@ FLOPPY_FORMATS_END // FLOPPY_FORMATS( floppy_formats ) //------------------------------------------------- -FLOPPY_FORMATS_MEMBER( c8250lp_t::floppy_formats ) +FLOPPY_FORMATS_MEMBER( c8250lp_device::floppy_formats ) FLOPPY_D80_FORMAT, FLOPPY_D82_FORMAT FLOPPY_FORMATS_END @@ -514,7 +514,7 @@ FLOPPY_FORMATS_END // FLOPPY_FORMATS( floppy_formats ) //------------------------------------------------- -FLOPPY_FORMATS_MEMBER( sfd1001_t::floppy_formats ) +FLOPPY_FORMATS_MEMBER( sfd1001_device::floppy_formats ) FLOPPY_D80_FORMAT, FLOPPY_D82_FORMAT FLOPPY_FORMATS_END @@ -529,15 +529,15 @@ static MACHINE_CONFIG_FRAGMENT( c8050 ) MCFG_CPU_ADD(M6502_TAG, M6502, XTAL_12MHz/12) MCFG_CPU_PROGRAM_MAP(c8050_main_mem) - MCFG_DEVICE_ADD(M6532_0_TAG, MOS6532n, XTAL_12MHz/12) - MCFG_MOS6530n_IN_PA_CB(READ8(c8050_t, dio_r)) - MCFG_MOS6530n_OUT_PB_CB(WRITE8(c8050_t, dio_w)) + MCFG_DEVICE_ADD(M6532_0_TAG, MOS6532_NEW, XTAL_12MHz/12) + MCFG_MOS6530n_IN_PA_CB(READ8(c8050_device, dio_r)) + MCFG_MOS6530n_OUT_PB_CB(WRITE8(c8050_device, dio_w)) - MCFG_DEVICE_ADD(M6532_1_TAG, MOS6532n, XTAL_12MHz/12) - MCFG_MOS6530n_IN_PA_CB(READ8(c8050_t, riot1_pa_r)) - MCFG_MOS6530n_OUT_PA_CB(WRITE8(c8050_t, riot1_pa_w)) - MCFG_MOS6530n_IN_PB_CB(READ8(c8050_t, riot1_pb_r)) - MCFG_MOS6530n_OUT_PB_CB(WRITE8(c8050_t, riot1_pb_w)) + MCFG_DEVICE_ADD(M6532_1_TAG, MOS6532_NEW, XTAL_12MHz/12) + MCFG_MOS6530n_IN_PA_CB(READ8(c8050_device, riot1_pa_r)) + MCFG_MOS6530n_OUT_PA_CB(WRITE8(c8050_device, riot1_pa_w)) + MCFG_MOS6530n_IN_PB_CB(READ8(c8050_device, riot1_pb_r)) + MCFG_MOS6530n_OUT_PB_CB(WRITE8(c8050_device, riot1_pb_w)) MCFG_MOS6530n_IRQ_CB(INPUTLINE(M6502_TAG, INPUT_LINE_IRQ0)) // controller @@ -545,17 +545,17 @@ static MACHINE_CONFIG_FRAGMENT( c8050 ) MCFG_CPU_PROGRAM_MAP(c8050_fdc_mem) MCFG_DEVICE_ADD(M6522_TAG, VIA6522, XTAL_12MHz/12) - MCFG_VIA6522_READPA_HANDLER(DEVREAD8(FDC_TAG, c8050_fdc_t, read)) - MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(c8050_t, via_pb_w)) - MCFG_VIA6522_CA2_HANDLER(DEVWRITELINE(FDC_TAG, c8050_fdc_t, mode_sel_w)) - MCFG_VIA6522_CB2_HANDLER(DEVWRITELINE(FDC_TAG, c8050_fdc_t, rw_sel_w)) - - MCFG_DEVICE_ADD(M6530_TAG, MOS6530n, XTAL_12MHz/12) - MCFG_MOS6530n_OUT_PA_CB(DEVWRITE8(FDC_TAG, c8050_fdc_t, write)) - MCFG_MOS6530n_OUT_PB0_CB(DEVWRITELINE(FDC_TAG, c8050_fdc_t, drv_sel_w)) - MCFG_MOS6530n_OUT_PB1_CB(DEVWRITELINE(FDC_TAG, c8050_fdc_t, ds0_w)) - MCFG_MOS6530n_OUT_PB2_CB(DEVWRITELINE(FDC_TAG, c8050_fdc_t, ds1_w)) - MCFG_MOS6530n_IN_PB3_CB(DEVREADLINE(FDC_TAG, c8050_fdc_t, wps_r)) + MCFG_VIA6522_READPA_HANDLER(DEVREAD8(FDC_TAG, c8050_fdc_device, read)) + MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(c8050_device, via_pb_w)) + MCFG_VIA6522_CA2_HANDLER(DEVWRITELINE(FDC_TAG, c8050_fdc_device, mode_sel_w)) + MCFG_VIA6522_CB2_HANDLER(DEVWRITELINE(FDC_TAG, c8050_fdc_device, rw_sel_w)) + + MCFG_DEVICE_ADD(M6530_TAG, MOS6530_NEW, XTAL_12MHz/12) + MCFG_MOS6530n_OUT_PA_CB(DEVWRITE8(FDC_TAG, c8050_fdc_device, write)) + MCFG_MOS6530n_OUT_PB0_CB(DEVWRITELINE(FDC_TAG, c8050_fdc_device, drv_sel_w)) + MCFG_MOS6530n_OUT_PB1_CB(DEVWRITELINE(FDC_TAG, c8050_fdc_device, ds0_w)) + MCFG_MOS6530n_OUT_PB2_CB(DEVWRITELINE(FDC_TAG, c8050_fdc_device, ds1_w)) + MCFG_MOS6530n_IN_PB3_CB(DEVREADLINE(FDC_TAG, c8050_fdc_device, wps_r)) MCFG_MOS6530n_IN_PB6_CB(VCC) // SINGLE SIDED MCFG_MOS6530n_OUT_PB7_CB(INPUTLINE(M6504_TAG, M6502_IRQ_LINE)) @@ -564,8 +564,8 @@ static MACHINE_CONFIG_FRAGMENT( c8050 ) MCFG_C8050_READY_CALLBACK(DEVWRITELINE(M6522_TAG, via6522_device, write_ca1)) MCFG_C8050_BRDY_CALLBACK(INPUTLINE(M6504_TAG, M6502_SET_OVERFLOW)) MCFG_DEVCB_XOR(1) MCFG_C8050_ERROR_CALLBACK(DEVWRITELINE(M6522_TAG, via6522_device, write_cb1)) - MCFG_FLOPPY_DRIVE_ADD(FDC_TAG ":0", c8050_floppies, "525ssqd", c8050_t::floppy_formats) - MCFG_FLOPPY_DRIVE_ADD(FDC_TAG ":1", c8050_floppies, "525ssqd", c8050_t::floppy_formats) + MCFG_FLOPPY_DRIVE_ADD(FDC_TAG ":0", c8050_floppies, "525ssqd", c8050_device::floppy_formats) + MCFG_FLOPPY_DRIVE_ADD(FDC_TAG ":1", c8050_floppies, "525ssqd", c8050_device::floppy_formats) MACHINE_CONFIG_END @@ -574,7 +574,7 @@ MACHINE_CONFIG_END // machine configurations //------------------------------------------------- -machine_config_constructor c8050_t::device_mconfig_additions() const +machine_config_constructor c8050_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( c8050 ); } @@ -589,15 +589,15 @@ static MACHINE_CONFIG_FRAGMENT( c8250 ) MCFG_CPU_ADD(M6502_TAG, M6502, XTAL_12MHz/12) MCFG_CPU_PROGRAM_MAP(c8050_main_mem) - MCFG_DEVICE_ADD(M6532_0_TAG, MOS6532n, XTAL_12MHz/12) - MCFG_MOS6530n_IN_PA_CB(READ8(c8050_t, dio_r)) - MCFG_MOS6530n_OUT_PB_CB(WRITE8(c8050_t, dio_w)) + MCFG_DEVICE_ADD(M6532_0_TAG, MOS6532_NEW, XTAL_12MHz/12) + MCFG_MOS6530n_IN_PA_CB(READ8(c8050_device, dio_r)) + MCFG_MOS6530n_OUT_PB_CB(WRITE8(c8050_device, dio_w)) - MCFG_DEVICE_ADD(M6532_1_TAG, MOS6532n, XTAL_12MHz/12) - MCFG_MOS6530n_IN_PA_CB(READ8(c8050_t, riot1_pa_r)) - MCFG_MOS6530n_OUT_PA_CB(WRITE8(c8050_t, riot1_pa_w)) - MCFG_MOS6530n_IN_PB_CB(READ8(c8050_t, riot1_pb_r)) - MCFG_MOS6530n_OUT_PB_CB(WRITE8(c8050_t, riot1_pb_w)) + MCFG_DEVICE_ADD(M6532_1_TAG, MOS6532_NEW, XTAL_12MHz/12) + MCFG_MOS6530n_IN_PA_CB(READ8(c8050_device, riot1_pa_r)) + MCFG_MOS6530n_OUT_PA_CB(WRITE8(c8050_device, riot1_pa_w)) + MCFG_MOS6530n_IN_PB_CB(READ8(c8050_device, riot1_pb_r)) + MCFG_MOS6530n_OUT_PB_CB(WRITE8(c8050_device, riot1_pb_w)) MCFG_MOS6530n_IRQ_CB(INPUTLINE(M6502_TAG, INPUT_LINE_IRQ0)) // controller @@ -605,18 +605,18 @@ static MACHINE_CONFIG_FRAGMENT( c8250 ) MCFG_CPU_PROGRAM_MAP(c8050_fdc_mem) MCFG_DEVICE_ADD(M6522_TAG, VIA6522, XTAL_12MHz/12) - MCFG_VIA6522_READPA_HANDLER(DEVREAD8(FDC_TAG, c8050_fdc_t, read)) - MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(c8050_t, via_pb_w)) - MCFG_VIA6522_CA2_HANDLER(DEVWRITELINE(FDC_TAG, c8050_fdc_t, mode_sel_w)) - MCFG_VIA6522_CB2_HANDLER(DEVWRITELINE(FDC_TAG, c8050_fdc_t, rw_sel_w)) - - MCFG_DEVICE_ADD(M6530_TAG, MOS6530n, XTAL_12MHz/12) - MCFG_MOS6530n_OUT_PA_CB(DEVWRITE8(FDC_TAG, c8050_fdc_t, write)) - MCFG_MOS6530n_OUT_PB0_CB(DEVWRITELINE(FDC_TAG, c8050_fdc_t, drv_sel_w)) - MCFG_MOS6530n_OUT_PB1_CB(DEVWRITELINE(FDC_TAG, c8050_fdc_t, ds0_w)) - MCFG_MOS6530n_OUT_PB2_CB(DEVWRITELINE(FDC_TAG, c8050_fdc_t, ds1_w)) - MCFG_MOS6530n_IN_PB3_CB(DEVREADLINE(FDC_TAG, c8050_fdc_t, wps_r)) - MCFG_MOS6530n_OUT_PB4_CB(DEVWRITELINE(FDC_TAG, c8050_fdc_t, odd_hd_w)) + MCFG_VIA6522_READPA_HANDLER(DEVREAD8(FDC_TAG, c8050_fdc_device, read)) + MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(c8050_device, via_pb_w)) + MCFG_VIA6522_CA2_HANDLER(DEVWRITELINE(FDC_TAG, c8050_fdc_device, mode_sel_w)) + MCFG_VIA6522_CB2_HANDLER(DEVWRITELINE(FDC_TAG, c8050_fdc_device, rw_sel_w)) + + MCFG_DEVICE_ADD(M6530_TAG, MOS6530_NEW, XTAL_12MHz/12) + MCFG_MOS6530n_OUT_PA_CB(DEVWRITE8(FDC_TAG, c8050_fdc_device, write)) + MCFG_MOS6530n_OUT_PB0_CB(DEVWRITELINE(FDC_TAG, c8050_fdc_device, drv_sel_w)) + MCFG_MOS6530n_OUT_PB1_CB(DEVWRITELINE(FDC_TAG, c8050_fdc_device, ds0_w)) + MCFG_MOS6530n_OUT_PB2_CB(DEVWRITELINE(FDC_TAG, c8050_fdc_device, ds1_w)) + MCFG_MOS6530n_IN_PB3_CB(DEVREADLINE(FDC_TAG, c8050_fdc_device, wps_r)) + MCFG_MOS6530n_OUT_PB4_CB(DEVWRITELINE(FDC_TAG, c8050_fdc_device, odd_hd_w)) MCFG_MOS6530n_IN_PB6_CB(GND) // DOUBLE SIDED MCFG_MOS6530n_OUT_PB7_CB(INPUTLINE(M6504_TAG, M6502_IRQ_LINE)) @@ -625,8 +625,8 @@ static MACHINE_CONFIG_FRAGMENT( c8250 ) MCFG_C8050_READY_CALLBACK(DEVWRITELINE(M6522_TAG, via6522_device, write_ca1)) MCFG_C8050_BRDY_CALLBACK(INPUTLINE(M6504_TAG, M6502_SET_OVERFLOW)) MCFG_DEVCB_XOR(1) MCFG_C8050_ERROR_CALLBACK(DEVWRITELINE(M6522_TAG, via6522_device, write_cb1)) - MCFG_FLOPPY_DRIVE_ADD(FDC_TAG ":0", c8250_floppies, "525qd", c8250_t::floppy_formats) - MCFG_FLOPPY_DRIVE_ADD(FDC_TAG ":1", c8250_floppies, "525qd", c8250_t::floppy_formats) + MCFG_FLOPPY_DRIVE_ADD(FDC_TAG ":0", c8250_floppies, "525qd", c8250_device::floppy_formats) + MCFG_FLOPPY_DRIVE_ADD(FDC_TAG ":1", c8250_floppies, "525qd", c8250_device::floppy_formats) MACHINE_CONFIG_END @@ -635,7 +635,7 @@ MACHINE_CONFIG_END // machine configurations //------------------------------------------------- -machine_config_constructor c8250_t::device_mconfig_additions() const +machine_config_constructor c8250_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( c8250 ); } @@ -650,15 +650,15 @@ static MACHINE_CONFIG_FRAGMENT( c8250lp ) MCFG_CPU_ADD(M6502_TAG, M6502, XTAL_12MHz/12) MCFG_CPU_PROGRAM_MAP(c8050_main_mem) - MCFG_DEVICE_ADD(M6532_0_TAG, MOS6532n, XTAL_12MHz/12) - MCFG_MOS6530n_IN_PA_CB(READ8(c8050_t, dio_r)) - MCFG_MOS6530n_OUT_PB_CB(WRITE8(c8050_t, dio_w)) + MCFG_DEVICE_ADD(M6532_0_TAG, MOS6532_NEW, XTAL_12MHz/12) + MCFG_MOS6530n_IN_PA_CB(READ8(c8050_device, dio_r)) + MCFG_MOS6530n_OUT_PB_CB(WRITE8(c8050_device, dio_w)) - MCFG_DEVICE_ADD(M6532_1_TAG, MOS6532n, XTAL_12MHz/12) - MCFG_MOS6530n_IN_PA_CB(READ8(c8050_t, riot1_pa_r)) - MCFG_MOS6530n_OUT_PA_CB(WRITE8(c8050_t, riot1_pa_w)) - MCFG_MOS6530n_IN_PB_CB(READ8(c8050_t, riot1_pb_r)) - MCFG_MOS6530n_OUT_PB_CB(WRITE8(c8050_t, riot1_pb_w)) + MCFG_DEVICE_ADD(M6532_1_TAG, MOS6532_NEW, XTAL_12MHz/12) + MCFG_MOS6530n_IN_PA_CB(READ8(c8050_device, riot1_pa_r)) + MCFG_MOS6530n_OUT_PA_CB(WRITE8(c8050_device, riot1_pa_w)) + MCFG_MOS6530n_IN_PB_CB(READ8(c8050_device, riot1_pb_r)) + MCFG_MOS6530n_OUT_PB_CB(WRITE8(c8050_device, riot1_pb_w)) MCFG_MOS6530n_IRQ_CB(INPUTLINE(M6502_TAG, INPUT_LINE_IRQ0)) // controller @@ -666,18 +666,18 @@ static MACHINE_CONFIG_FRAGMENT( c8250lp ) MCFG_CPU_PROGRAM_MAP(c8250lp_fdc_mem) MCFG_DEVICE_ADD(M6522_TAG, VIA6522, XTAL_12MHz/12) - MCFG_VIA6522_READPA_HANDLER(DEVREAD8(FDC_TAG, c8050_fdc_t, read)) - MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(c8050_t, via_pb_w)) - MCFG_VIA6522_CA2_HANDLER(DEVWRITELINE(FDC_TAG, c8050_fdc_t, mode_sel_w)) - MCFG_VIA6522_CB2_HANDLER(DEVWRITELINE(FDC_TAG, c8050_fdc_t, rw_sel_w)) - - MCFG_DEVICE_ADD(M6530_TAG, MOS6530n, XTAL_12MHz/12) - MCFG_MOS6530n_OUT_PA_CB(DEVWRITE8(FDC_TAG, c8050_fdc_t, write)) - MCFG_MOS6530n_OUT_PB0_CB(DEVWRITELINE(FDC_TAG, c8050_fdc_t, drv_sel_w)) - MCFG_MOS6530n_OUT_PB1_CB(DEVWRITELINE(FDC_TAG, c8050_fdc_t, ds0_w)) - MCFG_MOS6530n_OUT_PB2_CB(DEVWRITELINE(FDC_TAG, c8050_fdc_t, ds1_w)) - MCFG_MOS6530n_IN_PB3_CB(DEVREADLINE(FDC_TAG, c8050_fdc_t, wps_r)) - MCFG_MOS6530n_OUT_PB4_CB(DEVWRITELINE(FDC_TAG, c8050_fdc_t, odd_hd_w)) + MCFG_VIA6522_READPA_HANDLER(DEVREAD8(FDC_TAG, c8050_fdc_device, read)) + MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(c8050_device, via_pb_w)) + MCFG_VIA6522_CA2_HANDLER(DEVWRITELINE(FDC_TAG, c8050_fdc_device, mode_sel_w)) + MCFG_VIA6522_CB2_HANDLER(DEVWRITELINE(FDC_TAG, c8050_fdc_device, rw_sel_w)) + + MCFG_DEVICE_ADD(M6530_TAG, MOS6530_NEW, XTAL_12MHz/12) + MCFG_MOS6530n_OUT_PA_CB(DEVWRITE8(FDC_TAG, c8050_fdc_device, write)) + MCFG_MOS6530n_OUT_PB0_CB(DEVWRITELINE(FDC_TAG, c8050_fdc_device, drv_sel_w)) + MCFG_MOS6530n_OUT_PB1_CB(DEVWRITELINE(FDC_TAG, c8050_fdc_device, ds0_w)) + MCFG_MOS6530n_OUT_PB2_CB(DEVWRITELINE(FDC_TAG, c8050_fdc_device, ds1_w)) + MCFG_MOS6530n_IN_PB3_CB(DEVREADLINE(FDC_TAG, c8050_fdc_device, wps_r)) + MCFG_MOS6530n_OUT_PB4_CB(DEVWRITELINE(FDC_TAG, c8050_fdc_device, odd_hd_w)) MCFG_MOS6530n_IN_PB6_CB(GND) // DOUBLE SIDED MCFG_MOS6530n_OUT_PB7_CB(INPUTLINE(M6504_TAG, M6502_IRQ_LINE)) @@ -686,8 +686,8 @@ static MACHINE_CONFIG_FRAGMENT( c8250lp ) MCFG_C8050_READY_CALLBACK(DEVWRITELINE(M6522_TAG, via6522_device, write_ca1)) MCFG_C8050_BRDY_CALLBACK(INPUTLINE(M6504_TAG, M6502_SET_OVERFLOW)) MCFG_DEVCB_XOR(1) MCFG_C8050_ERROR_CALLBACK(DEVWRITELINE(M6522_TAG, via6522_device, write_cb1)) - MCFG_FLOPPY_DRIVE_ADD(FDC_TAG ":0", c8250_floppies, "525qd", c8250lp_t::floppy_formats) - MCFG_FLOPPY_DRIVE_ADD(FDC_TAG ":1", c8250_floppies, "525qd", c8250lp_t::floppy_formats) + MCFG_FLOPPY_DRIVE_ADD(FDC_TAG ":0", c8250_floppies, "525qd", c8250lp_device::floppy_formats) + MCFG_FLOPPY_DRIVE_ADD(FDC_TAG ":1", c8250_floppies, "525qd", c8250lp_device::floppy_formats) MACHINE_CONFIG_END @@ -696,7 +696,7 @@ MACHINE_CONFIG_END // machine configurations //------------------------------------------------- -machine_config_constructor c8250lp_t::device_mconfig_additions() const +machine_config_constructor c8250lp_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( c8250lp ); } @@ -711,15 +711,15 @@ static MACHINE_CONFIG_FRAGMENT( sfd1001 ) MCFG_CPU_ADD(M6502_TAG, M6502, XTAL_12MHz/12) MCFG_CPU_PROGRAM_MAP(c8050_main_mem) - MCFG_DEVICE_ADD(M6532_0_TAG, MOS6532n, XTAL_12MHz/12) - MCFG_MOS6530n_IN_PA_CB(READ8(c8050_t, dio_r)) - MCFG_MOS6530n_OUT_PB_CB(WRITE8(c8050_t, dio_w)) + MCFG_DEVICE_ADD(M6532_0_TAG, MOS6532_NEW, XTAL_12MHz/12) + MCFG_MOS6530n_IN_PA_CB(READ8(c8050_device, dio_r)) + MCFG_MOS6530n_OUT_PB_CB(WRITE8(c8050_device, dio_w)) - MCFG_DEVICE_ADD(M6532_1_TAG, MOS6532n, XTAL_12MHz/12) - MCFG_MOS6530n_IN_PA_CB(READ8(c8050_t, riot1_pa_r)) - MCFG_MOS6530n_OUT_PA_CB(WRITE8(c8050_t, riot1_pa_w)) - MCFG_MOS6530n_IN_PB_CB(READ8(c8050_t, riot1_pb_r)) - MCFG_MOS6530n_OUT_PB_CB(WRITE8(c8050_t, riot1_pb_w)) + MCFG_DEVICE_ADD(M6532_1_TAG, MOS6532_NEW, XTAL_12MHz/12) + MCFG_MOS6530n_IN_PA_CB(READ8(c8050_device, riot1_pa_r)) + MCFG_MOS6530n_OUT_PA_CB(WRITE8(c8050_device, riot1_pa_w)) + MCFG_MOS6530n_IN_PB_CB(READ8(c8050_device, riot1_pb_r)) + MCFG_MOS6530n_OUT_PB_CB(WRITE8(c8050_device, riot1_pb_w)) MCFG_MOS6530n_IRQ_CB(INPUTLINE(M6502_TAG, INPUT_LINE_IRQ0)) // controller @@ -727,17 +727,17 @@ static MACHINE_CONFIG_FRAGMENT( sfd1001 ) MCFG_CPU_PROGRAM_MAP(sfd1001_fdc_mem) MCFG_DEVICE_ADD(M6522_TAG, VIA6522, XTAL_12MHz/12) - MCFG_VIA6522_READPA_HANDLER(DEVREAD8(FDC_TAG, c8050_fdc_t, read)) - MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(c8050_t, via_pb_w)) - MCFG_VIA6522_CA2_HANDLER(DEVWRITELINE(FDC_TAG, c8050_fdc_t, mode_sel_w)) - MCFG_VIA6522_CB2_HANDLER(DEVWRITELINE(FDC_TAG, c8050_fdc_t, rw_sel_w)) - - MCFG_DEVICE_ADD(M6530_TAG, MOS6530n, XTAL_12MHz/12) - MCFG_MOS6530n_OUT_PA_CB(DEVWRITE8(FDC_TAG, c8050_fdc_t, write)) - MCFG_MOS6530n_OUT_PB1_CB(DEVWRITELINE(FDC_TAG, c8050_fdc_t, ds0_w)) - MCFG_MOS6530n_OUT_PB2_CB(DEVWRITELINE(FDC_TAG, c8050_fdc_t, ds1_w)) - MCFG_MOS6530n_IN_PB3_CB(DEVREADLINE(FDC_TAG, c8050_fdc_t, wps_r)) - MCFG_MOS6530n_OUT_PB4_CB(DEVWRITELINE(FDC_TAG, c8050_fdc_t, odd_hd_w)) + MCFG_VIA6522_READPA_HANDLER(DEVREAD8(FDC_TAG, c8050_fdc_device, read)) + MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(c8050_device, via_pb_w)) + MCFG_VIA6522_CA2_HANDLER(DEVWRITELINE(FDC_TAG, c8050_fdc_device, mode_sel_w)) + MCFG_VIA6522_CB2_HANDLER(DEVWRITELINE(FDC_TAG, c8050_fdc_device, rw_sel_w)) + + MCFG_DEVICE_ADD(M6530_TAG, MOS6530_NEW, XTAL_12MHz/12) + MCFG_MOS6530n_OUT_PA_CB(DEVWRITE8(FDC_TAG, c8050_fdc_device, write)) + MCFG_MOS6530n_OUT_PB1_CB(DEVWRITELINE(FDC_TAG, c8050_fdc_device, ds0_w)) + MCFG_MOS6530n_OUT_PB2_CB(DEVWRITELINE(FDC_TAG, c8050_fdc_device, ds1_w)) + MCFG_MOS6530n_IN_PB3_CB(DEVREADLINE(FDC_TAG, c8050_fdc_device, wps_r)) + MCFG_MOS6530n_OUT_PB4_CB(DEVWRITELINE(FDC_TAG, c8050_fdc_device, odd_hd_w)) MCFG_MOS6530n_IN_PB6_CB(GND) // DOUBLE SIDED MCFG_MOS6530n_OUT_PB7_CB(INPUTLINE(M6504_TAG, M6502_IRQ_LINE)) @@ -746,7 +746,7 @@ static MACHINE_CONFIG_FRAGMENT( sfd1001 ) MCFG_C8050_READY_CALLBACK(DEVWRITELINE(M6522_TAG, via6522_device, write_ca1)) MCFG_C8050_BRDY_CALLBACK(INPUTLINE(M6504_TAG, M6502_SET_OVERFLOW)) MCFG_DEVCB_XOR(1) MCFG_C8050_ERROR_CALLBACK(DEVWRITELINE(M6522_TAG, via6522_device, write_cb1)) - MCFG_FLOPPY_DRIVE_ADD(FDC_TAG ":0", sfd1001_floppies, "525qd", sfd1001_t::floppy_formats) + MCFG_FLOPPY_DRIVE_ADD(FDC_TAG ":0", sfd1001_floppies, "525qd", sfd1001_device::floppy_formats) MACHINE_CONFIG_END @@ -755,7 +755,7 @@ MACHINE_CONFIG_END // machine configurations //------------------------------------------------- -machine_config_constructor sfd1001_t::device_mconfig_additions() const +machine_config_constructor sfd1001_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( sfd1001 ); } @@ -783,7 +783,7 @@ INPUT_PORTS_END // input_ports - device-specific input ports //------------------------------------------------- -ioport_constructor c8050_t::device_input_ports() const +ioport_constructor c8050_device::device_input_ports() const { return INPUT_PORTS_NAME( c8050 ); } @@ -798,7 +798,7 @@ ioport_constructor c8050_t::device_input_ports() const // update_ieee_signals - //------------------------------------------------- -inline void c8050_t::update_ieee_signals() +inline void c8050_device::update_ieee_signals() { int atn = m_bus->atn_r(); int nrfd = !(!(!(atn && m_atna) && m_rfdo) || !(atn || m_atna)); @@ -815,11 +815,11 @@ inline void c8050_t::update_ieee_signals() //************************************************************************** //------------------------------------------------- -// c8050_t - constructor +// c8050_device - constructor //------------------------------------------------- -c8050_t::c8050_t(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), +c8050_device::c8050_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), device_ieee488_interface(mconfig, *this), m_maincpu(*this, M6502_TAG), m_fdccpu(*this, M6504_TAG), @@ -833,59 +833,52 @@ c8050_t::c8050_t(const machine_config &mconfig, device_type type, const char *na m_address(*this, "ADDRESS"), m_rfdo(1), m_daco(1), - m_atna(1), m_ifc(0) + m_atna(1), + m_ifc(0) { } -c8050_t::c8050_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, C8050, "C8050", tag, owner, clock, "c8050", __FILE__), - device_ieee488_interface(mconfig, *this), - m_maincpu(*this, M6502_TAG), - m_fdccpu(*this, M6504_TAG), - m_riot0(*this, M6532_0_TAG), - m_riot1(*this, M6532_1_TAG), - m_miot(*this, M6530_TAG), - m_via(*this, M6522_TAG), - m_floppy0(*this, FDC_TAG ":0"), - m_floppy1(*this, FDC_TAG ":1"), - m_fdc(*this, FDC_TAG), - m_address(*this, "ADDRESS"), - m_rfdo(1), - m_daco(1), - m_atna(1), m_ifc(0) +c8050_device::c8050_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + c8050_device(mconfig, C8050, tag, owner, clock) { } //------------------------------------------------- -// c8250_t - constructor +// c8250_device - constructor //------------------------------------------------- -c8250_t::c8250_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - c8050_t(mconfig, C8250, "C8250", tag, owner, clock, "c8250", __FILE__) { } +c8250_device::c8250_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + c8050_device(mconfig, C8250, tag, owner, clock) +{ +} //------------------------------------------------- -// c8250lp_t - constructor +// c8250lp_device - constructor //------------------------------------------------- -c8250lp_t::c8250lp_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - c8050_t(mconfig, C8250LP, "C8250LP", tag, owner, clock, "c8250lp", __FILE__) { } +c8250lp_device::c8250lp_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + c8050_device(mconfig, C8250LP, tag, owner, clock) +{ +} //------------------------------------------------- -// sfd1001_t - constructor +// sfd1001_device - constructor //------------------------------------------------- -sfd1001_t::sfd1001_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - c8050_t(mconfig, SFD1001, "SFD1001", tag, owner, clock, "sfd1001", __FILE__) { } +sfd1001_device::sfd1001_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + c8050_device(mconfig, SFD1001, tag, owner, clock) +{ +} //------------------------------------------------- // device_start - device-specific startup //------------------------------------------------- -void c8050_t::device_start() +void c8050_device::device_start() { // install image callbacks m_fdc->set_floppy(m_floppy0, m_floppy1); @@ -901,7 +894,7 @@ void c8050_t::device_start() // device_reset - device-specific reset //------------------------------------------------- -void c8050_t::device_reset() +void c8050_device::device_reset() { m_maincpu->reset(); @@ -928,7 +921,7 @@ void c8050_t::device_reset() // ieee488_atn - //------------------------------------------------- -void c8050_t::ieee488_atn(int state) +void c8050_device::ieee488_atn(int state) { update_ieee_signals(); @@ -940,7 +933,7 @@ void c8050_t::ieee488_atn(int state) // ieee488_ifc - //------------------------------------------------- -void c8050_t::ieee488_ifc(int state) +void c8050_device::ieee488_ifc(int state) { if (!m_ifc && state) { diff --git a/src/devices/bus/ieee488/c8050.h b/src/devices/bus/ieee488/c8050.h index d1200326aae..c777a2b4b5b 100644 --- a/src/devices/bus/ieee488/c8050.h +++ b/src/devices/bus/ieee488/c8050.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_IEE488_C8050_H +#define MAME_BUS_IEE488_C8050_H -#ifndef __C8050__ -#define __C8050__ +#pragma once #include "ieee488.h" #include "c8050fdc.h" @@ -24,15 +24,13 @@ // TYPE DEFINITIONS //************************************************************************** -// ======================> c8050_t +// ======================> c8050_device -class c8050_t : public device_t, - public device_ieee488_interface +class c8050_device : public device_t, public device_ieee488_interface { public: // construction/destruction - c8050_t(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - c8050_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + c8050_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual const tiny_rom_entry *device_rom_region() const override; @@ -50,6 +48,8 @@ public: DECLARE_FLOPPY_FORMATS( floppy_formats ); protected: + c8050_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -62,13 +62,13 @@ protected: required_device m_maincpu; required_device m_fdccpu; - required_device m_riot0; - required_device m_riot1; - required_device m_miot; + required_device m_riot0; + required_device m_riot1; + required_device m_miot; required_device m_via; required_device m_floppy0; optional_device m_floppy1; - required_device m_fdc; + required_device m_fdc; required_ioport m_address; // IEEE-488 bus @@ -79,13 +79,13 @@ protected: }; -// ======================> c8250_t +// ======================> c8250_device -class c8250_t : public c8050_t +class c8250_device : public c8050_device { public: // construction/destruction - c8250_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + c8250_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual machine_config_constructor device_mconfig_additions() const override; @@ -94,13 +94,13 @@ public: }; -// ======================> c8250lp_t +// ======================> c8250lp_device -class c8250lp_t : public c8050_t +class c8250lp_device : public c8050_device { public: // construction/destruction - c8250lp_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + c8250lp_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual const tiny_rom_entry *device_rom_region() const override; @@ -110,13 +110,13 @@ public: }; -// ======================> sfd1001_t +// ======================> sfd1001_device -class sfd1001_t : public c8050_t +class sfd1001_device : public c8050_device { public: // construction/destruction - sfd1001_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + sfd1001_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual const tiny_rom_entry *device_rom_region() const override; @@ -127,11 +127,10 @@ public: // device type definition -extern const device_type C8050; -extern const device_type C8250; -extern const device_type C8250LP; -extern const device_type SFD1001; - +DECLARE_DEVICE_TYPE(C8050, c8050_device) +DECLARE_DEVICE_TYPE(C8250, c8250_device) +DECLARE_DEVICE_TYPE(C8250LP, c8250lp_device) +DECLARE_DEVICE_TYPE(SFD1001, sfd1001_device) -#endif +#endif // MAME_BUS_IEE488_C8050_H diff --git a/src/devices/bus/ieee488/c8050fdc.cpp b/src/devices/bus/ieee488/c8050fdc.cpp index ae0fe558153..50861316839 100644 --- a/src/devices/bus/ieee488/c8050fdc.cpp +++ b/src/devices/bus/ieee488/c8050fdc.cpp @@ -40,7 +40,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type C8050_FDC = device_creator; +DEFINE_DEVICE_TYPE(C8050_FDC, c8050_fdc_device, "c8050fdc", "Commodore 8050 FDC") //------------------------------------------------- @@ -57,7 +57,7 @@ ROM_END // rom_region - device-specific ROM region //------------------------------------------------- -const tiny_rom_entry *c8050_fdc_t::device_rom_region() const +const tiny_rom_entry *c8050_fdc_device::device_rom_region() const { return ROM_NAME( c8050_fdc ); } @@ -69,11 +69,11 @@ const tiny_rom_entry *c8050_fdc_t::device_rom_region() const //************************************************************************** //------------------------------------------------- -// c8050_fdc_t - constructor +// c8050_fdc_device - constructor //------------------------------------------------- -c8050_fdc_t::c8050_fdc_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, C8050_FDC, "Commodore 8050 FDC", tag, owner, clock, "c8050fdc", __FILE__), +c8050_fdc_device::c8050_fdc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, C8050_FDC, tag, owner, clock), m_write_sync(*this), m_write_ready(*this), m_write_brdy(*this), @@ -103,7 +103,7 @@ c8050_fdc_t::c8050_fdc_t(const machine_config &mconfig, const char *tag, device_ // device_start - device-specific startup //------------------------------------------------- -void c8050_fdc_t::device_start() +void c8050_fdc_device::device_start() { // resolve callbacks m_write_sync.resolve_safe(); @@ -134,7 +134,7 @@ void c8050_fdc_t::device_start() // device_reset - device-specific reset //------------------------------------------------- -void c8050_fdc_t::device_reset() +void c8050_fdc_device::device_reset() { live_abort(); } @@ -144,18 +144,18 @@ void c8050_fdc_t::device_reset() // device_timer - handler timer events //------------------------------------------------- -void c8050_fdc_t::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) +void c8050_fdc_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) { live_sync(); live_run(); } -floppy_image_device* c8050_fdc_t::get_floppy() +floppy_image_device* c8050_fdc_device::get_floppy() { return cur_live.drv_sel ? m_floppy1 : m_floppy0; } -void c8050_fdc_t::stp_w(floppy_image_device *floppy, int mtr, int &old_stp, int stp) +void c8050_fdc_device::stp_w(floppy_image_device *floppy, int mtr, int &old_stp, int stp) { if (mtr) return; @@ -185,7 +185,7 @@ void c8050_fdc_t::stp_w(floppy_image_device *floppy, int mtr, int &old_stp, int old_stp = stp; } -void c8050_fdc_t::stp0_w(int stp) +void c8050_fdc_device::stp0_w(int stp) { if (m_stp0 != stp) { @@ -196,7 +196,7 @@ void c8050_fdc_t::stp0_w(int stp) } } -void c8050_fdc_t::stp1_w(int stp) +void c8050_fdc_device::stp1_w(int stp) { if (m_stp1 != stp) { @@ -207,7 +207,7 @@ void c8050_fdc_t::stp1_w(int stp) } } -void c8050_fdc_t::ds_w(int ds) +void c8050_fdc_device::ds_w(int ds) { if (m_ds != ds) { @@ -220,7 +220,7 @@ void c8050_fdc_t::ds_w(int ds) } } -void c8050_fdc_t::set_floppy(floppy_connector *floppy0, floppy_connector *floppy1) +void c8050_fdc_device::set_floppy(floppy_connector *floppy0, floppy_connector *floppy1) { m_floppy0 = floppy0->get_device(); @@ -229,7 +229,7 @@ void c8050_fdc_t::set_floppy(floppy_connector *floppy0, floppy_connector *floppy } } -void c8050_fdc_t::live_start() +void c8050_fdc_device::live_start() { cur_live.tm = machine().time(); cur_live.state = RUNNING; @@ -251,63 +251,63 @@ void c8050_fdc_t::live_start() live_run(); } -void c8050_fdc_t::pll_reset(const attotime &when) +void c8050_fdc_device::pll_reset(const attotime &when) { cur_pll.reset(when); cur_pll.set_clock(attotime::from_hz(clock() / (16 - m_ds))); } -void c8050_fdc_t::pll_start_writing(const attotime &tm) +void c8050_fdc_device::pll_start_writing(const attotime &tm) { cur_pll.start_writing(tm); pll_reset(cur_live.tm); } -void c8050_fdc_t::pll_commit(floppy_image_device *floppy, const attotime &tm) +void c8050_fdc_device::pll_commit(floppy_image_device *floppy, const attotime &tm) { cur_pll.commit(floppy, tm); } -void c8050_fdc_t::pll_stop_writing(floppy_image_device *floppy, const attotime &tm) +void c8050_fdc_device::pll_stop_writing(floppy_image_device *floppy, const attotime &tm) { cur_pll.stop_writing(floppy, tm); pll_reset(cur_live.tm); } -void c8050_fdc_t::pll_save_checkpoint() +void c8050_fdc_device::pll_save_checkpoint() { checkpoint_pll = cur_pll; } -void c8050_fdc_t::pll_retrieve_checkpoint() +void c8050_fdc_device::pll_retrieve_checkpoint() { cur_pll = checkpoint_pll; } -int c8050_fdc_t::pll_get_next_bit(attotime &tm, floppy_image_device *floppy, const attotime &limit) +int c8050_fdc_device::pll_get_next_bit(attotime &tm, floppy_image_device *floppy, const attotime &limit) { return cur_pll.get_next_bit(tm, floppy, limit); } -bool c8050_fdc_t::pll_write_next_bit(bool bit, attotime &tm, floppy_image_device *floppy, const attotime &limit) +bool c8050_fdc_device::pll_write_next_bit(bool bit, attotime &tm, floppy_image_device *floppy, const attotime &limit) { return cur_pll.write_next_bit(bit, tm, floppy, limit); } -void c8050_fdc_t::checkpoint() +void c8050_fdc_device::checkpoint() { pll_commit(get_floppy(), cur_live.tm); checkpoint_live = cur_live; pll_save_checkpoint(); } -void c8050_fdc_t::rollback() +void c8050_fdc_device::rollback() { cur_live = checkpoint_live; pll_retrieve_checkpoint(); } -void c8050_fdc_t::live_delay(int state) +void c8050_fdc_device::live_delay(int state) { cur_live.next_state = state; if(cur_live.tm != machine().time()) @@ -316,7 +316,7 @@ void c8050_fdc_t::live_delay(int state) live_sync(); } -void c8050_fdc_t::live_sync() +void c8050_fdc_device::live_sync() { if(!cur_live.tm.is_never()) { if(cur_live.tm > machine().time()) { @@ -339,7 +339,7 @@ void c8050_fdc_t::live_sync() } } -void c8050_fdc_t::live_abort() +void c8050_fdc_device::live_abort() { if(!cur_live.tm.is_never() && cur_live.tm > machine().time()) { rollback(); @@ -358,7 +358,7 @@ void c8050_fdc_t::live_abort() cur_live.error = 1; } -void c8050_fdc_t::live_run(const attotime &limit) +void c8050_fdc_device::live_run(const attotime &limit) { if(cur_live.state == IDLE || cur_live.next_state != -1) return; @@ -497,7 +497,7 @@ void c8050_fdc_t::live_run(const attotime &limit) } } -READ8_MEMBER( c8050_fdc_t::read ) +READ8_MEMBER( c8050_fdc_device::read ) { uint8_t e = checkpoint_live.e; offs_t i = checkpoint_live.i; @@ -505,7 +505,7 @@ READ8_MEMBER( c8050_fdc_t::read ) return GCR_DECODE(e, i); } -WRITE8_MEMBER( c8050_fdc_t::write ) +WRITE8_MEMBER( c8050_fdc_device::write ) { if (LOG) logerror("%s %s PI %02x\n", machine().time().as_string(), machine().describe_context(), data); @@ -518,19 +518,19 @@ WRITE8_MEMBER( c8050_fdc_t::write ) } } -WRITE_LINE_MEMBER( c8050_fdc_t::ds0_w ) +WRITE_LINE_MEMBER( c8050_fdc_device::ds0_w ) { m_ds0 = state; } -WRITE_LINE_MEMBER( c8050_fdc_t::ds1_w ) +WRITE_LINE_MEMBER( c8050_fdc_device::ds1_w ) { m_ds1 = state; ds_w(m_ds1 << 1 | m_ds0); } -WRITE_LINE_MEMBER( c8050_fdc_t::drv_sel_w ) +WRITE_LINE_MEMBER( c8050_fdc_device::drv_sel_w ) { if (m_drv_sel != state) { @@ -542,7 +542,7 @@ WRITE_LINE_MEMBER( c8050_fdc_t::drv_sel_w ) } } -WRITE_LINE_MEMBER( c8050_fdc_t::mode_sel_w ) +WRITE_LINE_MEMBER( c8050_fdc_device::mode_sel_w ) { if (m_mode_sel != state) { @@ -554,7 +554,7 @@ WRITE_LINE_MEMBER( c8050_fdc_t::mode_sel_w ) } } -WRITE_LINE_MEMBER( c8050_fdc_t::rw_sel_w ) +WRITE_LINE_MEMBER( c8050_fdc_device::rw_sel_w ) { if (m_rw_sel != state) { @@ -571,7 +571,7 @@ WRITE_LINE_MEMBER( c8050_fdc_t::rw_sel_w ) } } -WRITE_LINE_MEMBER( c8050_fdc_t::mtr0_w ) +WRITE_LINE_MEMBER( c8050_fdc_device::mtr0_w ) { if (m_mtr0 != state) { @@ -593,7 +593,7 @@ WRITE_LINE_MEMBER( c8050_fdc_t::mtr0_w ) } } -WRITE_LINE_MEMBER( c8050_fdc_t::mtr1_w ) +WRITE_LINE_MEMBER( c8050_fdc_device::mtr1_w ) { if (m_mtr1 != state) { @@ -615,7 +615,7 @@ WRITE_LINE_MEMBER( c8050_fdc_t::mtr1_w ) } } -WRITE_LINE_MEMBER( c8050_fdc_t::odd_hd_w ) +WRITE_LINE_MEMBER( c8050_fdc_device::odd_hd_w ) { if (m_odd_hd != state) { @@ -629,7 +629,7 @@ WRITE_LINE_MEMBER( c8050_fdc_t::odd_hd_w ) } } -WRITE_LINE_MEMBER( c8050_fdc_t::pull_sync_w ) +WRITE_LINE_MEMBER( c8050_fdc_device::pull_sync_w ) { if (LOG_MORE) logerror("%s %s PULL SYNC %u\n", machine().time().as_string(), machine().describe_context(), state); } diff --git a/src/devices/bus/ieee488/c8050fdc.h b/src/devices/bus/ieee488/c8050fdc.h index 12cdc0d7def..733100327ba 100644 --- a/src/devices/bus/ieee488/c8050fdc.h +++ b/src/devices/bus/ieee488/c8050fdc.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_IEEE488_C8050FDC_H +#define MAME_BUS_IEEE488_C8050FDC_H -#ifndef __C8050_FLOPPY__ -#define __C8050_FLOPPY__ +#pragma once #include "formats/d80_dsk.h" #include "formats/d82_dsk.h" @@ -23,16 +23,16 @@ //************************************************************************** #define MCFG_C8050_SYNC_CALLBACK(_write) \ - devcb = &c8050_fdc_t::set_sync_wr_callback(*device, DEVCB_##_write); + devcb = &c8050_fdc_device::set_sync_wr_callback(*device, DEVCB_##_write); #define MCFG_C8050_READY_CALLBACK(_write) \ - devcb = &c8050_fdc_t::set_ready_wr_callback(*device, DEVCB_##_write); + devcb = &c8050_fdc_device::set_ready_wr_callback(*device, DEVCB_##_write); #define MCFG_C8050_BRDY_CALLBACK(_write) \ - devcb = &c8050_fdc_t::set_brdy_wr_callback(*device, DEVCB_##_write); + devcb = &c8050_fdc_device::set_brdy_wr_callback(*device, DEVCB_##_write); #define MCFG_C8050_ERROR_CALLBACK(_write) \ - devcb = &c8050_fdc_t::set_error_wr_callback(*device, DEVCB_##_write); + devcb = &c8050_fdc_device::set_error_wr_callback(*device, DEVCB_##_write); @@ -40,18 +40,18 @@ // TYPE DEFINITIONS //************************************************************************** -// ======================> c8050_fdc_t +// ======================> c8050_fdc_device -class c8050_fdc_t : public device_t +class c8050_fdc_device : public device_t { public: // construction/destruction - c8050_fdc_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + c8050_fdc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_sync_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_sync.set_callback(object); } - template static devcb_base &set_ready_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_ready.set_callback(object); } - template static devcb_base &set_brdy_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_brdy.set_callback(object); } - template static devcb_base &set_error_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_error.set_callback(object); } + template static devcb_base &set_sync_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_sync.set_callback(std::forward(cb)); } + template static devcb_base &set_ready_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_ready.set_callback(std::forward(cb)); } + template static devcb_base &set_brdy_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_brdy.set_callback(std::forward(cb)); } + template static devcb_base &set_error_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_error.set_callback(std::forward(cb)); } DECLARE_READ8_MEMBER( read ); DECLARE_WRITE8_MEMBER( write ); @@ -162,8 +162,6 @@ protected: // device type definition -extern const device_type C8050_FDC; - - +DECLARE_DEVICE_TYPE(C8050_FDC, c8050_fdc_device) -#endif +#endif // MAME_BUS_IEEE488_C8050FDC_H diff --git a/src/devices/bus/ieee488/c8280.cpp b/src/devices/bus/ieee488/c8280.cpp index 82fa2e1c4e0..22930d68f39 100644 --- a/src/devices/bus/ieee488/c8280.cpp +++ b/src/devices/bus/ieee488/c8280.cpp @@ -36,7 +36,7 @@ enum // DEVICE DEFINITIONS //************************************************************************** -const device_type C8280 = device_creator; +DEFINE_DEVICE_TYPE(C8280, c8280_device, "c8280", "Commodore 8280") //------------------------------------------------- @@ -63,7 +63,7 @@ ROM_END // rom_region - device-specific ROM region //------------------------------------------------- -const tiny_rom_entry *c8280_t::device_rom_region() const +const tiny_rom_entry *c8280_device::device_rom_region() const { return ROM_NAME( c8280 ); } @@ -73,11 +73,11 @@ const tiny_rom_entry *c8280_t::device_rom_region() const // ADDRESS_MAP( c8280_main_mem ) //------------------------------------------------- -static ADDRESS_MAP_START( c8280_main_mem, AS_PROGRAM, 8, c8280_t ) - AM_RANGE(0x0000, 0x007f) AM_MIRROR(0x100) AM_DEVICE(M6532_0_TAG, mos6532_t, ram_map) - AM_RANGE(0x0080, 0x00ff) AM_MIRROR(0x100) AM_DEVICE(M6532_1_TAG, mos6532_t, ram_map) - AM_RANGE(0x0200, 0x021f) AM_MIRROR(0xd60) AM_DEVICE(M6532_0_TAG, mos6532_t, io_map) - AM_RANGE(0x0280, 0x029f) AM_MIRROR(0xd60) AM_DEVICE(M6532_1_TAG, mos6532_t, io_map) +static ADDRESS_MAP_START( c8280_main_mem, AS_PROGRAM, 8, c8280_device ) + AM_RANGE(0x0000, 0x007f) AM_MIRROR(0x100) AM_DEVICE(M6532_0_TAG, mos6532_new_device, ram_map) + AM_RANGE(0x0080, 0x00ff) AM_MIRROR(0x100) AM_DEVICE(M6532_1_TAG, mos6532_new_device, ram_map) + AM_RANGE(0x0200, 0x021f) AM_MIRROR(0xd60) AM_DEVICE(M6532_0_TAG, mos6532_new_device, io_map) + AM_RANGE(0x0280, 0x029f) AM_MIRROR(0xd60) AM_DEVICE(M6532_1_TAG, mos6532_new_device, io_map) AM_RANGE(0x1000, 0x13ff) AM_MIRROR(0xc00) AM_RAM AM_SHARE("share1") AM_RANGE(0x2000, 0x23ff) AM_MIRROR(0xc00) AM_RAM AM_SHARE("share2") AM_RANGE(0x3000, 0x33ff) AM_MIRROR(0xc00) AM_RAM AM_SHARE("share3") @@ -90,10 +90,10 @@ ADDRESS_MAP_END // ADDRESS_MAP( c8280_fdc_mem ) //------------------------------------------------- -static ADDRESS_MAP_START( c8280_fdc_mem, AS_PROGRAM, 8, c8280_t ) +static ADDRESS_MAP_START( c8280_fdc_mem, AS_PROGRAM, 8, c8280_device ) ADDRESS_MAP_GLOBAL_MASK(0x1fff) AM_RANGE(0x0000, 0x007f) AM_MIRROR(0x300) AM_RAM - AM_RANGE(0x0080, 0x0083) AM_MIRROR(0x37c) AM_DEVREADWRITE(WD1797_TAG, fd1797_t, read, write) + AM_RANGE(0x0080, 0x0083) AM_MIRROR(0x37c) AM_DEVREADWRITE(WD1797_TAG, fd1797_device, read, write) AM_RANGE(0x0400, 0x07ff) AM_RAM AM_SHARE("share1") AM_RANGE(0x0800, 0x0bff) AM_RAM AM_SHARE("share2") AM_RANGE(0x0c00, 0x0fff) AM_RAM AM_SHARE("share3") @@ -107,7 +107,7 @@ ADDRESS_MAP_END // riot6532 0 //------------------------------------------------- -READ8_MEMBER( c8280_t::dio_r ) +READ8_MEMBER( c8280_device::dio_r ) { /* @@ -127,7 +127,7 @@ READ8_MEMBER( c8280_t::dio_r ) return m_bus->dio_r(); } -WRITE8_MEMBER( c8280_t::dio_w ) +WRITE8_MEMBER( c8280_device::dio_w ) { /* @@ -152,7 +152,7 @@ WRITE8_MEMBER( c8280_t::dio_w ) // riot6532 1 //------------------------------------------------- -READ8_MEMBER( c8280_t::riot1_pa_r ) +READ8_MEMBER( c8280_device::riot1_pa_r ) { /* @@ -183,7 +183,7 @@ READ8_MEMBER( c8280_t::riot1_pa_r ) return data; } -WRITE8_MEMBER( c8280_t::riot1_pa_w ) +WRITE8_MEMBER( c8280_device::riot1_pa_w ) { /* @@ -218,7 +218,7 @@ WRITE8_MEMBER( c8280_t::riot1_pa_w ) update_ieee_signals(); } -READ8_MEMBER( c8280_t::riot1_pb_r ) +READ8_MEMBER( c8280_device::riot1_pb_r ) { /* @@ -249,7 +249,7 @@ READ8_MEMBER( c8280_t::riot1_pb_r ) return data; } -WRITE8_MEMBER( c8280_t::riot1_pb_w ) +WRITE8_MEMBER( c8280_device::riot1_pb_w ) { /* @@ -280,7 +280,7 @@ static SLOT_INTERFACE_START( c8280_floppies ) SLOT_INTERFACE( "8dsdd", FLOPPY_8_DSDD ) SLOT_INTERFACE_END -FLOPPY_FORMATS_MEMBER( c8280_t::floppy_formats ) +FLOPPY_FORMATS_MEMBER( c8280_device::floppy_formats ) FLOPPY_C8280_FORMAT FLOPPY_FORMATS_END @@ -293,15 +293,15 @@ static MACHINE_CONFIG_FRAGMENT( c8280 ) MCFG_CPU_ADD(M6502_DOS_TAG, M6502, XTAL_12MHz/8) MCFG_CPU_PROGRAM_MAP(c8280_main_mem) - MCFG_DEVICE_ADD(M6532_0_TAG, MOS6532n, XTAL_12MHz/8) - MCFG_MOS6530n_IN_PA_CB(READ8(c8280_t, dio_r)) - MCFG_MOS6530n_OUT_PB_CB(WRITE8(c8280_t, dio_w)) + MCFG_DEVICE_ADD(M6532_0_TAG, MOS6532_NEW, XTAL_12MHz/8) + MCFG_MOS6530n_IN_PA_CB(READ8(c8280_device, dio_r)) + MCFG_MOS6530n_OUT_PB_CB(WRITE8(c8280_device, dio_w)) - MCFG_DEVICE_ADD(M6532_1_TAG, MOS6532n, XTAL_12MHz/8) - MCFG_MOS6530n_IN_PA_CB(READ8(c8280_t, riot1_pa_r)) - MCFG_MOS6530n_OUT_PA_CB(WRITE8(c8280_t, riot1_pa_w)) - MCFG_MOS6530n_IN_PB_CB(READ8(c8280_t, riot1_pb_r)) - MCFG_MOS6530n_OUT_PB_CB(WRITE8(c8280_t, riot1_pb_w)) + MCFG_DEVICE_ADD(M6532_1_TAG, MOS6532_NEW, XTAL_12MHz/8) + MCFG_MOS6530n_IN_PA_CB(READ8(c8280_device, riot1_pa_r)) + MCFG_MOS6530n_OUT_PA_CB(WRITE8(c8280_device, riot1_pa_w)) + MCFG_MOS6530n_IN_PB_CB(READ8(c8280_device, riot1_pb_r)) + MCFG_MOS6530n_OUT_PB_CB(WRITE8(c8280_device, riot1_pb_w)) MCFG_MOS6530n_IRQ_CB(INPUTLINE(M6502_DOS_TAG, INPUT_LINE_IRQ0)) MCFG_CPU_ADD(M6502_FDC_TAG, M6502, XTAL_12MHz/8) @@ -310,8 +310,8 @@ static MACHINE_CONFIG_FRAGMENT( c8280 ) MCFG_FD1797_ADD(WD1797_TAG, XTAL_12MHz/6) MCFG_WD_FDC_INTRQ_CALLBACK(INPUTLINE(M6502_FDC_TAG, M6502_IRQ_LINE)) MCFG_WD_FDC_DRQ_CALLBACK(INPUTLINE(M6502_FDC_TAG, M6502_SET_OVERFLOW)) - MCFG_FLOPPY_DRIVE_ADD(WD1797_TAG ":0", c8280_floppies, "8dsdd", c8280_t::floppy_formats) - MCFG_FLOPPY_DRIVE_ADD(WD1797_TAG ":1", c8280_floppies, "8dsdd", c8280_t::floppy_formats) + MCFG_FLOPPY_DRIVE_ADD(WD1797_TAG ":0", c8280_floppies, "8dsdd", c8280_device::floppy_formats) + MCFG_FLOPPY_DRIVE_ADD(WD1797_TAG ":1", c8280_floppies, "8dsdd", c8280_device::floppy_formats) MACHINE_CONFIG_END @@ -320,7 +320,7 @@ MACHINE_CONFIG_END // machine configurations //------------------------------------------------- -machine_config_constructor c8280_t::device_mconfig_additions() const +machine_config_constructor c8280_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( c8280 ); } @@ -348,7 +348,7 @@ INPUT_PORTS_END // input_ports - device-specific input ports //------------------------------------------------- -ioport_constructor c8280_t::device_input_ports() const +ioport_constructor c8280_device::device_input_ports() const { return INPUT_PORTS_NAME( c8280 ); } @@ -363,7 +363,7 @@ ioport_constructor c8280_t::device_input_ports() const // update_ieee_signals - //------------------------------------------------- -inline void c8280_t::update_ieee_signals() +inline void c8280_device::update_ieee_signals() { int atn = m_bus->atn_r(); int nrfd = !(!(!(atn && m_atna) && m_rfdo) || !(atn || m_atna)); @@ -380,11 +380,11 @@ inline void c8280_t::update_ieee_signals() //************************************************************************** //------------------------------------------------- -// c8280_t - constructor +// c8280_device - constructor //------------------------------------------------- -c8280_t::c8280_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, C8280, "C8280", tag, owner, clock, "c8280", __FILE__), +c8280_device::c8280_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, C8280, tag, owner, clock), device_ieee488_interface(mconfig, *this), m_maincpu(*this, M6502_DOS_TAG), m_fdccpu(*this, M6502_FDC_TAG), @@ -405,7 +405,7 @@ c8280_t::c8280_t(const machine_config &mconfig, const char *tag, device_t *owner // device_start - device-specific startup //------------------------------------------------- -void c8280_t::device_start() +void c8280_device::device_start() { // state saving save_item(NAME(m_rfdo)); @@ -420,7 +420,7 @@ void c8280_t::device_start() // device_reset - device-specific reset //------------------------------------------------- -void c8280_t::device_reset() +void c8280_device::device_reset() { m_maincpu->reset(); @@ -447,7 +447,7 @@ void c8280_t::device_reset() // ieee488_atn - //------------------------------------------------- -void c8280_t::ieee488_atn(int state) +void c8280_device::ieee488_atn(int state) { update_ieee_signals(); @@ -459,7 +459,7 @@ void c8280_t::ieee488_atn(int state) // ieee488_ifc - //------------------------------------------------- -void c8280_t::ieee488_ifc(int state) +void c8280_device::ieee488_ifc(int state) { if (!m_ifc && state) { @@ -469,7 +469,7 @@ void c8280_t::ieee488_ifc(int state) m_ifc = state; } -READ8_MEMBER( c8280_t::fk5_r ) +READ8_MEMBER( c8280_device::fk5_r ) { /* @@ -494,7 +494,7 @@ READ8_MEMBER( c8280_t::fk5_r ) return data; } -WRITE8_MEMBER( c8280_t::fk5_w ) +WRITE8_MEMBER( c8280_device::fk5_w ) { /* diff --git a/src/devices/bus/ieee488/c8280.h b/src/devices/bus/ieee488/c8280.h index 2a3c1a4f153..8c840d707f5 100644 --- a/src/devices/bus/ieee488/c8280.h +++ b/src/devices/bus/ieee488/c8280.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_IEEE488_C8280_H +#define MAME_BUS_IEEE488_C8280_H -#ifndef __C8280__ -#define __C8280__ +#pragma once #include "ieee488.h" #include "cpu/m6502/m6502.h" @@ -23,14 +23,13 @@ // TYPE DEFINITIONS //************************************************************************** -// ======================> c8280_t +// ======================> c8280_device -class c8280_t : public device_t, - public device_ieee488_interface +class c8280_device : public device_t, public device_ieee488_interface { public: // construction/destruction - c8280_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + c8280_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual const tiny_rom_entry *device_rom_region() const override; @@ -63,9 +62,9 @@ private: required_device m_maincpu; required_device m_fdccpu; - required_device m_riot0; - required_device m_riot1; - required_device m_fdc; + required_device m_riot0; + required_device m_riot1; + required_device m_fdc; required_device m_floppy0; required_device m_floppy1; required_ioport m_address; @@ -82,8 +81,7 @@ private: // device type definition -extern const device_type C8280; - +DECLARE_DEVICE_TYPE(C8280, c8280_device) -#endif +#endif // MAME_BUS_IEEE488_C8280_H diff --git a/src/devices/bus/ieee488/d9060.cpp b/src/devices/bus/ieee488/d9060.cpp index e89dea811eb..a6866ccad2a 100644 --- a/src/devices/bus/ieee488/d9060.cpp +++ b/src/devices/bus/ieee488/d9060.cpp @@ -61,8 +61,8 @@ enum // DEVICE DEFINITIONS //************************************************************************** -const device_type D9060 = device_creator; -const device_type D9090 = device_creator; +DEFINE_DEVICE_TYPE(D9060, d9060_device, "d9060", "Commodore D9060") +DEFINE_DEVICE_TYPE(D9090, d9090_device, "d9090", "Commodore D9090") //------------------------------------------------- @@ -99,7 +99,7 @@ ROM_END // rom_region - device-specific ROM region //------------------------------------------------- -const tiny_rom_entry *d9060_base_t::device_rom_region() const +const tiny_rom_entry *d9060_device_base::device_rom_region() const { return ROM_NAME( d9060 ); } @@ -109,11 +109,11 @@ const tiny_rom_entry *d9060_base_t::device_rom_region() const // ADDRESS_MAP( d9060_main_mem ) //------------------------------------------------- -static ADDRESS_MAP_START( d9060_main_mem, AS_PROGRAM, 8, d9060_base_t ) - AM_RANGE(0x0000, 0x007f) AM_MIRROR(0x0100) AM_DEVICE(M6532_0_TAG, mos6532_t, ram_map) - AM_RANGE(0x0080, 0x00ff) AM_MIRROR(0x0100) AM_DEVICE(M6532_1_TAG, mos6532_t, ram_map) - AM_RANGE(0x0200, 0x021f) AM_MIRROR(0x0d60) AM_DEVICE(M6532_0_TAG, mos6532_t, io_map) - AM_RANGE(0x0280, 0x029f) AM_MIRROR(0x0d60) AM_DEVICE(M6532_1_TAG, mos6532_t, io_map) +static ADDRESS_MAP_START( d9060_main_mem, AS_PROGRAM, 8, d9060_device_base ) + AM_RANGE(0x0000, 0x007f) AM_MIRROR(0x0100) AM_DEVICE(M6532_0_TAG, mos6532_new_device, ram_map) + AM_RANGE(0x0080, 0x00ff) AM_MIRROR(0x0100) AM_DEVICE(M6532_1_TAG, mos6532_new_device, ram_map) + AM_RANGE(0x0200, 0x021f) AM_MIRROR(0x0d60) AM_DEVICE(M6532_0_TAG, mos6532_new_device, io_map) + AM_RANGE(0x0280, 0x029f) AM_MIRROR(0x0d60) AM_DEVICE(M6532_1_TAG, mos6532_new_device, io_map) AM_RANGE(0x1000, 0x13ff) AM_MIRROR(0x0c00) AM_RAM AM_SHARE("share1") AM_RANGE(0x2000, 0x23ff) AM_MIRROR(0x0c00) AM_RAM AM_SHARE("share2") AM_RANGE(0x3000, 0x33ff) AM_MIRROR(0x0c00) AM_RAM AM_SHARE("share3") @@ -126,7 +126,7 @@ ADDRESS_MAP_END // ADDRESS_MAP( d9060_hdc_mem ) //------------------------------------------------- -static ADDRESS_MAP_START( d9060_hdc_mem, AS_PROGRAM, 8, d9060_base_t ) +static ADDRESS_MAP_START( d9060_hdc_mem, AS_PROGRAM, 8, d9060_device_base ) ADDRESS_MAP_GLOBAL_MASK(0x1fff) AM_RANGE(0x0000, 0x007f) AM_MIRROR(0x300) AM_RAM AM_RANGE(0x0080, 0x008f) AM_MIRROR(0x380) AM_DEVREADWRITE(M6522_TAG, via6522_device, read, write) @@ -142,7 +142,7 @@ ADDRESS_MAP_END // riot6532 0 //------------------------------------------------- -READ8_MEMBER( d9060_base_t::dio_r ) +READ8_MEMBER( d9060_device_base::dio_r ) { /* @@ -163,7 +163,7 @@ READ8_MEMBER( d9060_base_t::dio_r ) } -WRITE8_MEMBER( d9060_base_t::dio_w ) +WRITE8_MEMBER( d9060_device_base::dio_w ) { /* @@ -188,7 +188,7 @@ WRITE8_MEMBER( d9060_base_t::dio_w ) // riot6532 1 //------------------------------------------------- -READ8_MEMBER( d9060_base_t::riot1_pa_r ) +READ8_MEMBER( d9060_device_base::riot1_pa_r ) { /* @@ -219,7 +219,7 @@ READ8_MEMBER( d9060_base_t::riot1_pa_r ) return data; } -WRITE8_MEMBER( d9060_base_t::riot1_pa_w ) +WRITE8_MEMBER( d9060_device_base::riot1_pa_w ) { /* @@ -254,7 +254,7 @@ WRITE8_MEMBER( d9060_base_t::riot1_pa_w ) update_ieee_signals(); } -READ8_MEMBER( d9060_base_t::riot1_pb_r ) +READ8_MEMBER( d9060_device_base::riot1_pb_r ) { /* @@ -285,7 +285,7 @@ READ8_MEMBER( d9060_base_t::riot1_pb_r ) return data; } -WRITE8_MEMBER( d9060_base_t::riot1_pb_w ) +WRITE8_MEMBER( d9060_device_base::riot1_pb_w ) { /* @@ -313,7 +313,7 @@ WRITE8_MEMBER( d9060_base_t::riot1_pb_w ) } -WRITE8_MEMBER( d9060_base_t::via_pb_w ) +WRITE8_MEMBER( d9060_device_base::via_pb_w ) { /* @@ -334,12 +334,12 @@ WRITE8_MEMBER( d9060_base_t::via_pb_w ) m_sasibus->write_rst(BIT(data, 1)); } -WRITE_LINE_MEMBER( d9060_base_t::ack_w ) +WRITE_LINE_MEMBER( d9060_device_base::ack_w ) { m_sasibus->write_ack(!state); } -WRITE_LINE_MEMBER( d9060_base_t::enable_w ) +WRITE_LINE_MEMBER( d9060_device_base::enable_w ) { m_enable = state; @@ -353,7 +353,7 @@ WRITE_LINE_MEMBER( d9060_base_t::enable_w ) } } -WRITE8_MEMBER( d9060_base_t::scsi_data_w ) +WRITE8_MEMBER( d9060_device_base::scsi_data_w ) { m_data = data; @@ -373,15 +373,15 @@ static MACHINE_CONFIG_FRAGMENT( d9060 ) MCFG_CPU_ADD(M6502_DOS_TAG, M6502, XTAL_4MHz/4) MCFG_CPU_PROGRAM_MAP(d9060_main_mem) - MCFG_DEVICE_ADD(M6532_0_TAG, MOS6532n, XTAL_4MHz/4) - MCFG_MOS6530n_IN_PA_CB(READ8(d9060_base_t, dio_r)) - MCFG_MOS6530n_OUT_PB_CB(WRITE8(d9060_base_t, dio_w)) + MCFG_DEVICE_ADD(M6532_0_TAG, MOS6532_NEW, XTAL_4MHz/4) + MCFG_MOS6530n_IN_PA_CB(READ8(d9060_device_base, dio_r)) + MCFG_MOS6530n_OUT_PB_CB(WRITE8(d9060_device_base, dio_w)) - MCFG_DEVICE_ADD(M6532_1_TAG, MOS6532n, XTAL_4MHz/4) - MCFG_MOS6530n_IN_PA_CB(READ8(d9060_base_t, riot1_pa_r)) - MCFG_MOS6530n_OUT_PA_CB(WRITE8(d9060_base_t, riot1_pa_w)) - MCFG_MOS6530n_IN_PB_CB(READ8(d9060_base_t, riot1_pb_r)) - MCFG_MOS6530n_OUT_PB_CB(WRITE8(d9060_base_t, riot1_pb_w)) + MCFG_DEVICE_ADD(M6532_1_TAG, MOS6532_NEW, XTAL_4MHz/4) + MCFG_MOS6530n_IN_PA_CB(READ8(d9060_device_base, riot1_pa_r)) + MCFG_MOS6530n_OUT_PA_CB(WRITE8(d9060_device_base, riot1_pa_w)) + MCFG_MOS6530n_IN_PB_CB(READ8(d9060_device_base, riot1_pb_r)) + MCFG_MOS6530n_OUT_PB_CB(WRITE8(d9060_device_base, riot1_pb_w)) MCFG_MOS6530n_IRQ_CB(INPUTLINE(M6502_DOS_TAG, INPUT_LINE_IRQ0)) // controller @@ -389,10 +389,10 @@ static MACHINE_CONFIG_FRAGMENT( d9060 ) MCFG_CPU_PROGRAM_MAP(d9060_hdc_mem) MCFG_DEVICE_ADD(M6522_TAG, VIA6522, XTAL_4MHz/4) - MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(d9060_base_t, scsi_data_w)) - MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(d9060_base_t, via_pb_w)) - MCFG_VIA6522_CA2_HANDLER(WRITELINE(d9060_base_t, ack_w)) - MCFG_VIA6522_CB2_HANDLER(WRITELINE(d9060_base_t, enable_w)) + MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(d9060_device_base, scsi_data_w)) + MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(d9060_device_base, via_pb_w)) + MCFG_VIA6522_CA2_HANDLER(WRITELINE(d9060_device_base, ack_w)) + MCFG_VIA6522_CB2_HANDLER(WRITELINE(d9060_device_base, enable_w)) MCFG_VIA6522_IRQ_HANDLER(INPUTLINE(M6502_HDC_TAG, M6502_IRQ_LINE)) MCFG_DEVICE_ADD(SASIBUS_TAG, SCSI_PORT, 0) @@ -421,7 +421,7 @@ MACHINE_CONFIG_END // machine configurations //------------------------------------------------- -machine_config_constructor d9060_base_t::device_mconfig_additions() const +machine_config_constructor d9060_device_base::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( d9060 ); } @@ -449,7 +449,7 @@ INPUT_PORTS_END // input_ports - device-specific input ports //------------------------------------------------- -ioport_constructor d9060_base_t::device_input_ports() const +ioport_constructor d9060_device_base::device_input_ports() const { return INPUT_PORTS_NAME( d9060 ); } @@ -464,7 +464,7 @@ ioport_constructor d9060_base_t::device_input_ports() const // update_ieee_signals - //------------------------------------------------- -inline void d9060_base_t::update_ieee_signals() +inline void d9060_device_base::update_ieee_signals() { int atn = m_bus->atn_r(); int nrfd = !(!(!(atn && m_atna) && m_rfdo) || !(atn || m_atna)); @@ -481,50 +481,56 @@ inline void d9060_base_t::update_ieee_signals() //************************************************************************** //------------------------------------------------- -// d9060_base_t - constructor -//------------------------------------------------- - -d9060_base_t::d9060_base_t(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, uint32_t variant, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_ieee488_interface(mconfig, *this), - m_maincpu(*this, M6502_DOS_TAG), - m_hdccpu(*this, M6502_HDC_TAG), - m_riot0(*this, M6532_0_TAG), - m_riot1(*this, M6532_1_TAG), - m_via(*this, M6522_TAG), - m_sasibus(*this, SASIBUS_TAG), - m_sasi_data_out(*this, "sasi_data_out"), - m_address(*this, "ADDRESS"), - m_rfdo(1), - m_daco(1), - m_atna(1), m_ifc(0), - m_enable(0), m_data(0), - m_variant(variant) +// d9060_device_base - constructor +//------------------------------------------------- + +d9060_device_base::d9060_device_base(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint32_t variant) + : device_t(mconfig, type, tag, owner, clock) + , device_ieee488_interface(mconfig, *this) + , m_maincpu(*this, M6502_DOS_TAG) + , m_hdccpu(*this, M6502_HDC_TAG) + , m_riot0(*this, M6532_0_TAG) + , m_riot1(*this, M6532_1_TAG) + , m_via(*this, M6522_TAG) + , m_sasibus(*this, SASIBUS_TAG) + , m_sasi_data_out(*this, "sasi_data_out") + , m_address(*this, "ADDRESS") + , m_rfdo(1) + , m_daco(1) + , m_atna(1) + , m_ifc(0) + , m_enable(0) + , m_data(0) + , m_variant(variant) { } //------------------------------------------------- -// d9060_t - constructor +// d9060_device - constructor //------------------------------------------------- -d9060_t::d9060_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : d9060_base_t(mconfig, D9060, "D9060", tag, owner, clock, TYPE_9060, "d9060", __FILE__) { } +d9060_device::d9060_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : d9060_device_base(mconfig, D9060, tag, owner, clock, TYPE_9060) +{ +} //------------------------------------------------- -// d9090_t - constructor +// d9090_device - constructor //------------------------------------------------- -d9090_t::d9090_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : d9060_base_t(mconfig, D9090, "D9090", tag, owner, clock, TYPE_9090, "d9090", __FILE__) { } +d9090_device::d9090_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : d9060_device_base(mconfig, D9090, tag, owner, clock, TYPE_9090) +{ +} //------------------------------------------------- // device_start - device-specific startup //------------------------------------------------- -void d9060_base_t::device_start() +void d9060_device_base::device_start() { // state saving save_item(NAME(m_rfdo)); @@ -541,7 +547,7 @@ void d9060_base_t::device_start() // device_reset - device-specific reset //------------------------------------------------- -void d9060_base_t::device_reset() +void d9060_device_base::device_reset() { m_maincpu->set_input_line(M6502_SET_OVERFLOW, ASSERT_LINE); m_maincpu->set_input_line(M6502_SET_OVERFLOW, CLEAR_LINE); @@ -556,7 +562,7 @@ void d9060_base_t::device_reset() // ieee488_atn - attention //------------------------------------------------- -void d9060_base_t::ieee488_atn(int state) +void d9060_device_base::ieee488_atn(int state) { update_ieee_signals(); @@ -568,7 +574,7 @@ void d9060_base_t::ieee488_atn(int state) // ieee488_ifc - interface clear //------------------------------------------------- -void d9060_base_t::ieee488_ifc(int state) +void d9060_device_base::ieee488_ifc(int state) { if (!m_ifc && state) { diff --git a/src/devices/bus/ieee488/d9060.h b/src/devices/bus/ieee488/d9060.h index 9934c0e0cb0..e58f4c5f01c 100644 --- a/src/devices/bus/ieee488/d9060.h +++ b/src/devices/bus/ieee488/d9060.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_IEEE488_D9060_H +#define MAME_BUS_IEEE488_D9060_H -#ifndef __D9060__ -#define __D9060__ +#pragma once #include "ieee488.h" #include "cpu/m6502/m6502.h" @@ -24,21 +24,11 @@ //************************************************************************** -// ======================> d9060_base_t +// ======================> d9060_device_base -class d9060_base_t : public device_t, - public device_ieee488_interface +class d9060_device_base : public device_t, public device_ieee488_interface { public: - enum - { - TYPE_9060, - TYPE_9090 - }; - - // construction/destruction - d9060_base_t(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, uint32_t variant, const char *shortname, const char *source); - // optional information overrides virtual const tiny_rom_entry *device_rom_region() const override; virtual machine_config_constructor device_mconfig_additions() const override; @@ -57,6 +47,15 @@ public: DECLARE_WRITE8_MEMBER( scsi_data_w ); protected: + enum + { + TYPE_9060, + TYPE_9090 + }; + + // construction/destruction + d9060_device_base(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint32_t variant); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -70,10 +69,10 @@ private: required_device m_maincpu; required_device m_hdccpu; - required_device m_riot0; - required_device m_riot1; + required_device m_riot0; + required_device m_riot1; required_device m_via; - required_device m_sasibus; + required_device m_sasibus; required_device m_sasi_data_out; required_ioport m_address; @@ -91,30 +90,28 @@ private: }; -// ======================> d9060_t +// ======================> d9060_device -class d9060_t : public d9060_base_t +class d9060_device : public d9060_device_base { public: // construction/destruction - d9060_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + d9060_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; -// ======================> d9090_t +// ======================> d9090_device -class d9090_t : public d9060_base_t +class d9090_device : public d9060_device_base { public: // construction/destruction - d9090_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + d9090_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; // device type definition -extern const device_type D9060; -extern const device_type D9090; - - +DECLARE_DEVICE_TYPE(D9060, d9060_device) +DECLARE_DEVICE_TYPE(D9090, d9090_device) -#endif +#endif // MAME_BUS_IEEE488_D9060_H diff --git a/src/devices/bus/ieee488/hardbox.cpp b/src/devices/bus/ieee488/hardbox.cpp index 5aa56ad92d9..0a61dca52a7 100644 --- a/src/devices/bus/ieee488/hardbox.cpp +++ b/src/devices/bus/ieee488/hardbox.cpp @@ -58,7 +58,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type HARDBOX = device_creator; +DEFINE_DEVICE_TYPE(HARDBOX, hardbox_device, "hardbox", "SSE HardBox") //------------------------------------------------- @@ -119,7 +119,7 @@ static ADDRESS_MAP_START( hardbox_io, AS_IO, 8, hardbox_device ) ADDRESS_MAP_GLOBAL_MASK(0xff) AM_RANGE(0x10, 0x13) AM_DEVREADWRITE(I8255_0_TAG, i8255_device, read, write) AM_RANGE(0x14, 0x17) AM_DEVREADWRITE(I8255_1_TAG, i8255_device, read, write) - AM_RANGE(0x18, 0x18) AM_DEVREADWRITE(CORVUS_HDC_TAG, corvus_hdc_t, read, write) + AM_RANGE(0x18, 0x18) AM_DEVREADWRITE(CORVUS_HDC_TAG, corvus_hdc_device, read, write) ADDRESS_MAP_END @@ -232,8 +232,8 @@ READ8_MEMBER( hardbox_device::ppi1_pc_r ) uint8_t status = m_hdc->status_r(space, 0); uint8_t data = 0; - data |= (status & CONTROLLER_BUSY) ? 0 : 0x10; - data |= (status & CONTROLLER_DIRECTION) ? 0 : 0x20; + data |= (status & corvus_hdc_device::CONTROLLER_BUSY) ? 0 : 0x10; + data |= (status & corvus_hdc_device::CONTROLLER_DIRECTION) ? 0 : 0x20; return data; } @@ -348,10 +348,11 @@ ioport_constructor hardbox_device::device_input_ports() const //------------------------------------------------- hardbox_device::hardbox_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, HARDBOX, "HardBox", tag, owner, clock, "hardbox", __FILE__), - device_ieee488_interface(mconfig, *this), - m_maincpu(*this, Z80_TAG), - m_hdc(*this, CORVUS_HDC_TAG), m_ifc(0) + : device_t(mconfig, HARDBOX, tag, owner, clock) + , device_ieee488_interface(mconfig, *this) + , m_maincpu(*this, Z80_TAG) + , m_hdc(*this, CORVUS_HDC_TAG) + , m_ifc(0) { } diff --git a/src/devices/bus/ieee488/hardbox.h b/src/devices/bus/ieee488/hardbox.h index 8ea1acc5445..d10a19c7268 100644 --- a/src/devices/bus/ieee488/hardbox.h +++ b/src/devices/bus/ieee488/hardbox.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_IEEE488_HARDBOX_H +#define MAME_BUS_IEEE488_HARDBOX_H -#ifndef __PET_HARDBOX__ -#define __PET_HARDBOX__ +#pragma once #include "ieee488.h" #include "cpu/z80/z80.h" @@ -64,14 +64,13 @@ private: }; required_device m_maincpu; - required_device m_hdc; + required_device m_hdc; int m_ifc; // Tracks previous state of IEEE-488 IFC line }; // device type definition -extern const device_type HARDBOX; - +DECLARE_DEVICE_TYPE(HARDBOX, hardbox_device) -#endif +#endif // MAME_BUS_IEEE488_HARDBOX_H diff --git a/src/devices/bus/ieee488/hp9895.cpp b/src/devices/bus/ieee488/hp9895.cpp index 131e115f073..6e5e62d6e53 100644 --- a/src/devices/bus/ieee488/hp9895.cpp +++ b/src/devices/bus/ieee488/hp9895.cpp @@ -130,7 +130,7 @@ enum { #define MIN_SYNC_BITS 29 // Number of bits to synchronize // device type definition -const device_type HP9895 = device_creator; +DEFINE_DEVICE_TYPE(HP9895, hp9895_device, "hp9895", "HP9895") // Masks of drive selectors in XV register static const uint8_t xv_drive_masks[] = { @@ -139,7 +139,7 @@ static const uint8_t xv_drive_masks[] = { }; hp9895_device::hp9895_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, HP9895, "HP9895", tag, owner, clock, "hp9895", __FILE__), + : device_t(mconfig, HP9895, tag, owner, clock), device_ieee488_interface(mconfig, *this), m_cpu(*this , "cpu"), m_phi(*this , "phi"), diff --git a/src/devices/bus/ieee488/hp9895.h b/src/devices/bus/ieee488/hp9895.h index 49b99ec0017..001a03abd56 100644 --- a/src/devices/bus/ieee488/hp9895.h +++ b/src/devices/bus/ieee488/hp9895.h @@ -8,10 +8,10 @@ *********************************************************************/ -#pragma once +#ifndef MAME_BUS_IEEE488_HP9895_H +#define MAME_BUS_IEEE488_HP9895_H -#ifndef _HP9895_H_ -#define _HP9895_H_ +#pragma once #include "ieee488.h" #include "cpu/z80/z80.h" @@ -28,9 +28,6 @@ public: // device-level overrides virtual ioport_constructor device_input_ports() const override; - virtual void device_start() override; - virtual void device_reset() override; - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; virtual const tiny_rom_entry *device_rom_region() const override; virtual machine_config_constructor device_mconfig_additions() const override; @@ -82,6 +79,11 @@ public: // Floppy drive interface void floppy_ready_cb(floppy_image_device *floppy , int state); +protected: + virtual void device_start() override; + virtual void device_reset() override; + virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + private: required_device m_cpu; required_device m_phi; @@ -129,6 +131,6 @@ private: }; // device type definition -extern const device_type HP9895; +DECLARE_DEVICE_TYPE(HP9895, hp9895_device) -#endif /* _HP9895_H_ */ +#endif // MAME_BUS_IEEE488_HP9895_H diff --git a/src/devices/bus/ieee488/ieee488.cpp b/src/devices/bus/ieee488/ieee488.cpp index 5b0ba2d9197..e224419c408 100644 --- a/src/devices/bus/ieee488/ieee488.cpp +++ b/src/devices/bus/ieee488/ieee488.cpp @@ -27,11 +27,8 @@ static const char *const SIGNAL_NAME[] = { "EOI", "DAV", "NRFD", "NDAC", "IFC", // DEVICE DEFINITIONS //************************************************************************** -const device_type IEEE488 = device_creator; -const device_type IEEE488_SLOT = device_creator; - -template class device_finder; -template class device_finder; +DEFINE_DEVICE_TYPE(IEEE488, ieee488_device, "ieee488", "IEEE-488 bus") +DEFINE_DEVICE_TYPE(IEEE488_SLOT, ieee488_slot_device, "ieee488_slot", "IEEE-488 slot") @@ -44,7 +41,7 @@ template class device_finder; //------------------------------------------------- device_ieee488_interface::device_ieee488_interface(const machine_config &mconfig, device_t &device) - : device_slot_card_interface(mconfig, device), m_next(nullptr), m_bus(nullptr), m_slot(nullptr) + : device_slot_card_interface(mconfig, device), m_bus(nullptr), m_slot(nullptr), m_next(nullptr) { } @@ -68,8 +65,9 @@ device_ieee488_interface::~device_ieee488_interface() //------------------------------------------------- ieee488_slot_device::ieee488_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, IEEE488_SLOT, "IEEE-488 slot", tag, owner, clock, "ieee488_slot", __FILE__), - device_slot_interface(mconfig, *this), m_address(0) + device_t(mconfig, IEEE488_SLOT, tag, owner, clock), + device_slot_interface(mconfig, *this), + m_address(0) { } @@ -104,17 +102,17 @@ void ieee488_slot_device::device_start() // ieee488_device - constructor //------------------------------------------------- -ieee488_device::ieee488_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, IEEE488, "IEEE-488 bus", tag, owner, clock, "ieee488", __FILE__), - m_write_eoi(*this), - m_write_dav(*this), - m_write_nrfd(*this), - m_write_ndac(*this), - m_write_ifc(*this), - m_write_srq(*this), - m_write_atn(*this), - m_write_ren(*this), - m_dio(0xff) +ieee488_device::ieee488_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, IEEE488, tag, owner, clock), + m_write_eoi(*this), + m_write_dav(*this), + m_write_nrfd(*this), + m_write_ndac(*this), + m_write_ifc(*this), + m_write_srq(*this), + m_write_atn(*this), + m_write_ren(*this), + m_dio(0xff) { for (auto & elem : m_line) { @@ -398,7 +396,7 @@ SLOT_INTERFACE_START( cbm_ieee488_devices ) SLOT_INTERFACE("d9090", D9090) SLOT_INTERFACE("softbox", SOFTBOX) SLOT_INTERFACE("hardbox", HARDBOX) - SLOT_INTERFACE("shark", SHARK) + SLOT_INTERFACE("shark", MSHARK) SLOT_INTERFACE("c4023", C4023) SLOT_INTERFACE_END diff --git a/src/devices/bus/ieee488/ieee488.h b/src/devices/bus/ieee488/ieee488.h index 681dbb8f1fe..c5dbb770e55 100644 --- a/src/devices/bus/ieee488/ieee488.h +++ b/src/devices/bus/ieee488/ieee488.h @@ -7,10 +7,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_IEEE488_IEEE488_H +#define MAME_BUS_IEEE488_IEEE488_H -#ifndef __IEEE488__ -#define __IEEE488__ +#pragma once @@ -91,14 +91,14 @@ public: // construction/destruction ieee488_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template devcb_base &set_eoi_callback(_write wr) { return m_write_eoi.set_callback(wr); } - template devcb_base &set_dav_callback(_write wr) { return m_write_dav.set_callback(wr); } - template devcb_base &set_nrfd_callback(_write wr) { return m_write_nrfd.set_callback(wr); } - template devcb_base &set_ndac_callback(_write wr) { return m_write_ndac.set_callback(wr); } - template devcb_base &set_ifc_callback(_write wr) { return m_write_ifc.set_callback(wr); } - template devcb_base &set_srq_callback(_write wr) { return m_write_srq.set_callback(wr); } - template devcb_base &set_atn_callback(_write wr) { return m_write_atn.set_callback(wr); } - template devcb_base &set_ren_callback(_write wr) { return m_write_ren.set_callback(wr); } + template devcb_base &set_eoi_callback(Object &&cb) { return m_write_eoi.set_callback(std::forward(cb)); } + template devcb_base &set_dav_callback(Object &&cb) { return m_write_dav.set_callback(std::forward(cb)); } + template devcb_base &set_nrfd_callback(Object &&cb) { return m_write_nrfd.set_callback(std::forward(cb)); } + template devcb_base &set_ndac_callback(Object &&cb) { return m_write_ndac.set_callback(std::forward(cb)); } + template devcb_base &set_ifc_callback(Object &&cb) { return m_write_ifc.set_callback(std::forward(cb)); } + template devcb_base &set_srq_callback(Object &&cb) { return m_write_srq.set_callback(std::forward(cb)); } + template devcb_base &set_atn_callback(Object &&cb) { return m_write_atn.set_callback(std::forward(cb)); } + template devcb_base &set_ren_callback(Object &&cb) { return m_write_ren.set_callback(std::forward(cb)); } void add_device(ieee488_slot_device *slot, device_t *target); @@ -216,41 +216,42 @@ protected: class device_ieee488_interface : public device_slot_card_interface { friend class ieee488_device; + template friend class simple_list; public: // construction/destruction - device_ieee488_interface(const machine_config &mconfig, device_t &device); virtual ~device_ieee488_interface(); device_ieee488_interface *next() const { return m_next; } - device_ieee488_interface *m_next; // optional operation overrides - virtual void ieee488_eoi(int state) { }; - virtual void ieee488_dav(int state) { }; - virtual void ieee488_nrfd(int state) { }; - virtual void ieee488_ndac(int state) { }; - virtual void ieee488_ifc(int state) { }; - virtual void ieee488_srq(int state) { }; - virtual void ieee488_atn(int state) { }; - virtual void ieee488_ren(int state) { }; + virtual void ieee488_eoi(int state) { } + virtual void ieee488_dav(int state) { } + virtual void ieee488_nrfd(int state) { } + virtual void ieee488_ndac(int state) { } + virtual void ieee488_ifc(int state) { } + virtual void ieee488_srq(int state) { } + virtual void ieee488_atn(int state) { } + virtual void ieee488_ren(int state) { } + +protected: + device_ieee488_interface(const machine_config &mconfig, device_t &device); ieee488_device *m_bus; ieee488_slot_device *m_slot; + +private: + device_ieee488_interface *m_next; }; // device type definition -extern const device_type IEEE488; -extern const device_type IEEE488_SLOT; - -extern template class device_finder; -extern template class device_finder; +DECLARE_DEVICE_TYPE(IEEE488, ieee488_device) +DECLARE_DEVICE_TYPE(IEEE488_SLOT, ieee488_slot_device) SLOT_INTERFACE_EXTERN( cbm_ieee488_devices ); SLOT_INTERFACE_EXTERN( hp_ieee488_devices ); - -#endif +#endif // MAME_BUS_IEEE488_IEEE488_H diff --git a/src/devices/bus/ieee488/shark.cpp b/src/devices/bus/ieee488/shark.cpp index 10c911cca61..31d747446ab 100644 --- a/src/devices/bus/ieee488/shark.cpp +++ b/src/devices/bus/ieee488/shark.cpp @@ -27,7 +27,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type SHARK = device_creator; +DEFINE_DEVICE_TYPE(MSHARK, mshark_device, "mshark", "Mator SHARK") //------------------------------------------------- @@ -129,9 +129,9 @@ ioport_constructor mshark_device::device_input_ports() const //------------------------------------------------- mshark_device::mshark_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, SHARK, "Mator SHARK", tag, owner, clock, "mshark", __FILE__), - device_ieee488_interface(mconfig, *this), - m_maincpu(*this, I8085_TAG) + : device_t(mconfig, MSHARK, tag, owner, clock) + , device_ieee488_interface(mconfig, *this) + , m_maincpu(*this, I8085_TAG) { } diff --git a/src/devices/bus/ieee488/shark.h b/src/devices/bus/ieee488/shark.h index e7d92a5da4c..5b3893cd910 100644 --- a/src/devices/bus/ieee488/shark.h +++ b/src/devices/bus/ieee488/shark.h @@ -8,10 +8,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_IEEE488_SHARK_H +#define MAME_BUS_IEEE488_SHARK_H -#ifndef __SHARK__ -#define __SHARK__ +#pragma once #include "ieee488.h" @@ -45,8 +45,6 @@ private: // device type definition -extern const device_type SHARK; - - +DECLARE_DEVICE_TYPE(MSHARK, mshark_device) -#endif +#endif // MAME_BUS_IEEE488_SHARK_H diff --git a/src/devices/bus/ieee488/softbox.cpp b/src/devices/bus/ieee488/softbox.cpp index b2086a995b9..3010e87cd21 100644 --- a/src/devices/bus/ieee488/softbox.cpp +++ b/src/devices/bus/ieee488/softbox.cpp @@ -36,7 +36,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type SOFTBOX = device_creator; +DEFINE_DEVICE_TYPE(SOFTBOX, softbox_device, "pet_softbox", "SSE SoftBox") //------------------------------------------------- @@ -89,7 +89,7 @@ static ADDRESS_MAP_START( softbox_io, AS_IO, 8, softbox_device ) AM_RANGE(0x0c, 0x0c) AM_WRITE(dbrg_w) AM_RANGE(0x10, 0x13) AM_DEVREADWRITE(I8255_0_TAG, i8255_device, read, write) AM_RANGE(0x14, 0x17) AM_DEVREADWRITE(I8255_1_TAG, i8255_device, read, write) - AM_RANGE(0x18, 0x18) AM_DEVREADWRITE(CORVUS_HDC_TAG, corvus_hdc_t, read, write) + AM_RANGE(0x18, 0x18) AM_DEVREADWRITE(CORVUS_HDC_TAG, corvus_hdc_device, read, write) ADDRESS_MAP_END @@ -190,8 +190,8 @@ READ8_MEMBER( softbox_device::ppi1_pc_r ) uint8_t status = m_hdc->status_r(space, 0); uint8_t data = 0; - data |= (status & CONTROLLER_BUSY) ? 0 : 0x10; - data |= (status & CONTROLLER_DIRECTION) ? 0 : 0x20; + data |= (status & corvus_hdc_device::CONTROLLER_BUSY) ? 0 : 0x10; + data |= (status & corvus_hdc_device::CONTROLLER_DIRECTION) ? 0 : 0x20; return data; } @@ -328,11 +328,12 @@ ioport_constructor softbox_device::device_input_ports() const //------------------------------------------------- softbox_device::softbox_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, SOFTBOX, "PET SoftBox", tag, owner, clock, "pet_softbox", __FILE__), - device_ieee488_interface(mconfig, *this), - m_maincpu(*this, Z80_TAG), - m_dbrg(*this, COM8116_TAG), - m_hdc(*this, CORVUS_HDC_TAG), m_ifc(0) + : device_t(mconfig, SOFTBOX, tag, owner, clock) + , device_ieee488_interface(mconfig, *this) + , m_maincpu(*this, Z80_TAG) + , m_dbrg(*this, COM8116_TAG) + , m_hdc(*this, CORVUS_HDC_TAG) + , m_ifc(0) { } diff --git a/src/devices/bus/ieee488/softbox.h b/src/devices/bus/ieee488/softbox.h index 9b0d5611c1a..07bb986ba91 100644 --- a/src/devices/bus/ieee488/softbox.h +++ b/src/devices/bus/ieee488/softbox.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_IEEE488_SOFTBOX_H +#define MAME_BUS_IEEE488_SOFTBOX_H -#ifndef __PET_SOFTBOX__ -#define __PET_SOFTBOX__ +#pragma once #include "ieee488.h" #include "bus/rs232/rs232.h" @@ -68,15 +68,14 @@ private: required_device m_maincpu; required_device m_dbrg; - required_device m_hdc; + required_device m_hdc; int m_ifc; // Tracks previous state of IEEE-488 IFC line }; // device type definition -extern const device_type SOFTBOX; - +DECLARE_DEVICE_TYPE(SOFTBOX, softbox_device) -#endif +#endif // MAME_BUS_IEEE488_SOFTBOX_H diff --git a/src/devices/bus/imi7000/imi5000h.cpp b/src/devices/bus/imi7000/imi5000h.cpp index 5d72030ad44..751721d4db7 100644 --- a/src/devices/bus/imi7000/imi5000h.cpp +++ b/src/devices/bus/imi7000/imi5000h.cpp @@ -29,7 +29,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type IMI5000H = device_creator; +DEFINE_DEVICE_TYPE(IMI5000H, imi5000h_device, "imi5000h", "IMI 5000H") //------------------------------------------------- @@ -447,7 +447,7 @@ ioport_constructor imi5000h_device::device_input_ports() const //------------------------------------------------- imi5000h_device::imi5000h_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, IMI5000H, "IMI 5000H", tag, owner, clock, "imi5000h", __FILE__), + device_t(mconfig, IMI5000H, tag, owner, clock), device_imi7000_interface(mconfig, *this), m_maincpu(*this, Z80_TAG), m_ctc(*this, Z80CTC_TAG), diff --git a/src/devices/bus/imi7000/imi5000h.h b/src/devices/bus/imi7000/imi5000h.h index 153ad678d37..89165ef328e 100644 --- a/src/devices/bus/imi7000/imi5000h.h +++ b/src/devices/bus/imi7000/imi5000h.h @@ -8,10 +8,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_IMI7000_IMI5000H_H +#define MAME_BUS_IMI7000_IMI5000H_H -#ifndef __IMI5000H__ -#define __IMI5000H__ +#pragma once #include "imi7000.h" #include "cpu/z80/z80.h" @@ -82,7 +82,6 @@ private: // device type definition extern const device_type IMI5000H; +DECLARE_DEVICE_TYPE(IMI5000H, imi5000h_device) - - -#endif +#endif // MAME_BUS_IMI7000_IMI5000H_H diff --git a/src/devices/bus/imi7000/imi7000.cpp b/src/devices/bus/imi7000/imi7000.cpp index c558770c4f6..95f693a571e 100644 --- a/src/devices/bus/imi7000/imi7000.cpp +++ b/src/devices/bus/imi7000/imi7000.cpp @@ -23,8 +23,8 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type IMI7000_BUS = device_creator; -const device_type IMI7000_SLOT = device_creator; +DEFINE_DEVICE_TYPE(IMI7000_BUS, imi7000_bus_device, "imi7000", "IMI7000 bus") +DEFINE_DEVICE_TYPE(IMI7000_SLOT, imi7000_slot_device, "imi7000_slot", "IMI7000 slot") @@ -51,9 +51,10 @@ device_imi7000_interface::device_imi7000_interface(const machine_config &mconfig // imi7000_slot_device - constructor //------------------------------------------------- -imi7000_slot_device::imi7000_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, IMI7000_SLOT, "IMI 7000 slot", tag, owner, clock, "imi7000_slot", __FILE__), - device_slot_interface(mconfig, *this), m_card(nullptr) +imi7000_slot_device::imi7000_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, IMI7000_SLOT, tag, owner, clock) + , device_slot_interface(mconfig, *this) + , m_card(nullptr) { } @@ -76,8 +77,8 @@ void imi7000_slot_device::device_start() // imi7000_bus_device - constructor //------------------------------------------------- -imi7000_bus_device::imi7000_bus_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, IMI7000_BUS, "IMI 7000 bus", tag, owner, clock, "imi7000", __FILE__) +imi7000_bus_device::imi7000_bus_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, IMI7000_BUS, tag, owner, clock) { } diff --git a/src/devices/bus/imi7000/imi7000.h b/src/devices/bus/imi7000/imi7000.h index 765f2ef5a3f..90b195a2667 100644 --- a/src/devices/bus/imi7000/imi7000.h +++ b/src/devices/bus/imi7000/imi7000.h @@ -26,10 +26,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_IMI7000_IMI7000_H +#define MAME_BUS_IMI7000_IMI7000_H -#ifndef __IMI7000_BUS__ -#define __IMI7000_BUS__ +#pragma once @@ -106,24 +106,20 @@ class device_imi7000_interface : public device_slot_card_interface { friend class imi7000_slot_device; -public: +protected: // construction/destruction device_imi7000_interface(const machine_config &mconfig, device_t &device); - virtual ~device_imi7000_interface() { } -protected: imi7000_slot_device *m_slot; }; // device type definition -extern const device_type IMI7000_BUS; -extern const device_type IMI7000_SLOT; +DECLARE_DEVICE_TYPE(IMI7000_BUS, imi7000_bus_device) +DECLARE_DEVICE_TYPE(IMI7000_SLOT, imi7000_slot_device) // slot interface SLOT_INTERFACE_EXTERN( imi7000_devices ); - - -#endif +#endif // MAME_BUS_IMI7000_IMI7000_H diff --git a/src/devices/bus/intv/ecs.cpp b/src/devices/bus/intv/ecs.cpp index 006de780b73..d591a34f570 100644 --- a/src/devices/bus/intv/ecs.cpp +++ b/src/devices/bus/intv/ecs.cpp @@ -26,10 +26,10 @@ // intv_ecs_device - constructor //------------------------------------------------- -const device_type INTV_ROM_ECS = device_creator; +DEFINE_DEVICE_TYPE(INTV_ROM_ECS, intv_ecs_device, "intv_ecs", "Intellivision ECS Expansion") intv_ecs_device::intv_ecs_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : intv_rom_device(mconfig, INTV_ROM_ECS, "Intellivision ECS Expansion", tag, owner, clock, "intv_ecs", __FILE__), + : intv_rom_device(mconfig, INTV_ROM_ECS, tag, owner, clock), m_snd(*this, "ay8914"), m_subslot(*this, "subslot"), m_voice_enabled(false), @@ -186,3 +186,66 @@ WRITE16_MEMBER(intv_ecs_device::write_ay) if (ACCESSING_BITS_0_7) return m_snd->write(space, offset, data, mem_mask); } + + +READ16_MEMBER(intv_ecs_device::read_rom80) +{ + if (m_ram88_enabled && offset >= 0x800) + return m_subslot->read_ram(space, offset & 0x7ff, mem_mask); + else + return m_subslot->read_rom80(space, offset, mem_mask); +} + + +READ16_MEMBER(intv_ecs_device::read_romd0) +{ + if (m_ramd0_enabled && offset < 0x800) + return m_subslot->read_ram(space, offset, mem_mask); + else + return m_subslot->read_romd0(space, offset, mem_mask); +} + + +WRITE16_MEMBER(intv_ecs_device::write_rom20) +{ + if (offset == 0xfff) + { + if (data == 0x2a50) + m_bank_base[2] = 0; + else if (data == 0x2a51) + m_bank_base[2] = 1; + } +} + +WRITE16_MEMBER(intv_ecs_device::write_rom70) +{ + if (offset == 0xfff) + { + if (data == 0x7a50) + m_bank_base[7] = 0; + else if (data == 0x7a51) + m_bank_base[7] = 1; + } +} + +WRITE16_MEMBER(intv_ecs_device::write_rome0) +{ + if (offset == 0xfff) + { + if (data == 0xea50) + m_bank_base[14] = 0; + else if (data == 0xea51) + m_bank_base[14] = 1; + } +} + +WRITE16_MEMBER(intv_ecs_device::write_romf0) +{ + if (offset == 0xfff) + { + if (data == 0xfa50) + m_bank_base[15] = 0; + else if (data == 0xfa51) + m_bank_base[15] = 1; + } +} diff --git a/src/devices/bus/intv/ecs.h b/src/devices/bus/intv/ecs.h index e4d6867996e..d577ba66250 100644 --- a/src/devices/bus/intv/ecs.h +++ b/src/devices/bus/intv/ecs.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __INTV_ECS_H -#define __INTV_ECS_H +#ifndef MAME_BUS_INTV_ECS_H +#define MAME_BUS_INTV_ECS_H + +#pragma once #include "slot.h" #include "rom.h" @@ -18,8 +20,6 @@ public: intv_ecs_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; virtual machine_config_constructor device_mconfig_additions() const override; virtual const tiny_rom_entry *device_rom_region() const override; @@ -44,66 +44,18 @@ public: virtual DECLARE_READ16_MEMBER(read_rom48) override { return m_subslot->read_rom48(space, offset, mem_mask); } virtual DECLARE_READ16_MEMBER(read_rom50) override { return m_subslot->read_rom50(space, offset, mem_mask); } virtual DECLARE_READ16_MEMBER(read_rom60) override { return m_subslot->read_rom60(space, offset, mem_mask); } - virtual DECLARE_READ16_MEMBER(read_rom80) override - { - if (m_ram88_enabled && offset >= 0x800) - return m_subslot->read_ram(space, offset & 0x7ff, mem_mask); - else - return m_subslot->read_rom80(space, offset, mem_mask); - } + virtual DECLARE_READ16_MEMBER(read_rom80) override; virtual DECLARE_READ16_MEMBER(read_rom90) override { return m_subslot->read_rom90(space, offset, mem_mask); } virtual DECLARE_READ16_MEMBER(read_roma0) override { return m_subslot->read_roma0(space, offset, mem_mask); } virtual DECLARE_READ16_MEMBER(read_romb0) override { return m_subslot->read_romb0(space, offset, mem_mask); } virtual DECLARE_READ16_MEMBER(read_romc0) override { return m_subslot->read_romc0(space, offset, mem_mask); } - virtual DECLARE_READ16_MEMBER(read_romd0) override - { - if (m_ramd0_enabled && offset < 0x800) - return m_subslot->read_ram(space, offset, mem_mask); - else - return m_subslot->read_romd0(space, offset, mem_mask); - } + virtual DECLARE_READ16_MEMBER(read_romd0) override; // paged ROM banking - virtual DECLARE_WRITE16_MEMBER(write_rom20) override - { - if (offset == 0xfff) - { - if (data == 0x2a50) - m_bank_base[2] = 0; - else if (data == 0x2a51) - m_bank_base[2] = 1; - } - } - virtual DECLARE_WRITE16_MEMBER(write_rom70) override - { - if (offset == 0xfff) - { - if (data == 0x7a50) - m_bank_base[7] = 0; - else if (data == 0x7a51) - m_bank_base[7] = 1; - } - } - virtual DECLARE_WRITE16_MEMBER(write_rome0) override - { - if (offset == 0xfff) - { - if (data == 0xea50) - m_bank_base[14] = 0; - else if (data == 0xea51) - m_bank_base[14] = 1; - } - } - virtual DECLARE_WRITE16_MEMBER(write_romf0) override - { - if (offset == 0xfff) - { - if (data == 0xfa50) - m_bank_base[15] = 0; - else if (data == 0xfa51) - m_bank_base[15] = 1; - } - } + virtual DECLARE_WRITE16_MEMBER(write_rom20) override; + virtual DECLARE_WRITE16_MEMBER(write_rom70) override; + virtual DECLARE_WRITE16_MEMBER(write_rome0) override; + virtual DECLARE_WRITE16_MEMBER(write_romf0) override; // RAM passthru write virtual DECLARE_WRITE16_MEMBER(write_88) override { if (m_ram88_enabled) m_subslot->write_ram(space, offset, data, mem_mask); } virtual DECLARE_WRITE16_MEMBER(write_d0) override { if (m_ramd0_enabled) m_subslot->write_ram(space, offset, data, mem_mask); } @@ -113,6 +65,10 @@ public: virtual void late_subslot_setup() override; +protected: + virtual void device_start() override; + virtual void device_reset() override; + private: required_device m_snd; @@ -124,6 +80,6 @@ private: // device type definition -extern const device_type INTV_ROM_ECS; +DECLARE_DEVICE_TYPE(INTV_ROM_ECS, intv_ecs_device) -#endif +#endif // MAME_BUS_INTV_ECS_H diff --git a/src/devices/bus/intv/rom.cpp b/src/devices/bus/intv/rom.cpp index 8fef5d47432..f320d1cae49 100644 --- a/src/devices/bus/intv/rom.cpp +++ b/src/devices/bus/intv/rom.cpp @@ -17,35 +17,34 @@ // intv_rom_device - constructor //------------------------------------------------- -const device_type INTV_ROM_STD = device_creator; -const device_type INTV_ROM_RAM = device_creator; -const device_type INTV_ROM_GFACT = device_creator; -const device_type INTV_ROM_WSMLB = device_creator; +DEFINE_DEVICE_TYPE(INTV_ROM_STD, intv_rom_device, "intv_rom", "Intellivision Standard Carts") +DEFINE_DEVICE_TYPE(INTV_ROM_RAM, intv_ram_device, "intv_ram", "Intellivision Carts w/RAM") +DEFINE_DEVICE_TYPE(INTV_ROM_GFACT, intv_gfact_device, "intv_gfact", "Intellivision Game Factory Cart") +DEFINE_DEVICE_TYPE(INTV_ROM_WSMLB, intv_wsmlb_device, "intv_wsmlb", "Intellivision World Series Baseball Cart") -intv_rom_device::intv_rom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_intv_cart_interface( mconfig, *this ) +intv_rom_device::intv_rom_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) + , device_intv_cart_interface(mconfig, *this) { } intv_rom_device::intv_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, INTV_ROM_STD, "Intellivision Standard Carts", tag, owner, clock, "intv_rom", __FILE__), - device_intv_cart_interface( mconfig, *this ) + : intv_rom_device(mconfig, INTV_ROM_STD, tag, owner, clock) { } intv_ram_device::intv_ram_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : intv_rom_device(mconfig, INTV_ROM_RAM, "Intellivision Carts w/RAM", tag, owner, clock, "intv_ram", __FILE__) + : intv_rom_device(mconfig, INTV_ROM_RAM, tag, owner, clock) { } intv_gfact_device::intv_gfact_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : intv_rom_device(mconfig, INTV_ROM_GFACT, "Intellivision Game Factory Cart", tag, owner, clock, "intv_gfact", __FILE__) + : intv_rom_device(mconfig, INTV_ROM_GFACT, tag, owner, clock) { } intv_wsmlb_device::intv_wsmlb_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : intv_rom_device(mconfig, INTV_ROM_WSMLB, "Intellivision World Series Baseball Cart", tag, owner, clock, "intv_wsmlb", __FILE__) + : intv_rom_device(mconfig, INTV_ROM_WSMLB, tag, owner, clock) { } diff --git a/src/devices/bus/intv/rom.h b/src/devices/bus/intv/rom.h index 1db545b2678..7b83b2709fe 100644 --- a/src/devices/bus/intv/rom.h +++ b/src/devices/bus/intv/rom.h @@ -1,7 +1,7 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __INTV_ROM_H -#define __INTV_ROM_H +#ifndef MAME_BUS_INTV_ROM_H +#define MAME_BUS_INTV_ROM_H #include "slot.h" @@ -13,7 +13,6 @@ class intv_rom_device : public device_t, { public: // construction/destruction - intv_rom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); intv_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // reading and writing @@ -33,6 +32,9 @@ public: virtual DECLARE_READ16_MEMBER(read_rome0) override { return INTV_ROM16_READ(offset + 0xe000); } virtual DECLARE_READ16_MEMBER(read_romf0) override { return INTV_ROM16_READ(offset + 0xf000); } +protected: + intv_rom_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override {} virtual void device_reset() override {} @@ -76,9 +78,9 @@ public: // device type definition -extern const device_type INTV_ROM_STD; -extern const device_type INTV_ROM_RAM; -extern const device_type INTV_ROM_GFACT; -extern const device_type INTV_ROM_WSMLB; +DECLARE_DEVICE_TYPE(INTV_ROM_STD, intv_rom_device) +DECLARE_DEVICE_TYPE(INTV_ROM_RAM, intv_ram_device) +DECLARE_DEVICE_TYPE(INTV_ROM_GFACT, intv_gfact_device) +DECLARE_DEVICE_TYPE(INTV_ROM_WSMLB, intv_wsmlb_device) -#endif +#endif // MAME_BUS_INTV_ROM_H diff --git a/src/devices/bus/intv/slot.cpp b/src/devices/bus/intv/slot.cpp index 99ae2618c7b..d86c8fe91c4 100644 --- a/src/devices/bus/intv/slot.cpp +++ b/src/devices/bus/intv/slot.cpp @@ -86,7 +86,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type INTV_CART_SLOT = device_creator; +DEFINE_DEVICE_TYPE(INTV_CART_SLOT, intv_cart_slot_device, "intv_cart_slot", "Intellivision Cartridge Slot") //************************************************************************** // Intellivision Cartridges Interface @@ -145,10 +145,11 @@ void device_intv_cart_interface::ram_alloc(uint32_t size) // intv_cart_slot_device - constructor //------------------------------------------------- intv_cart_slot_device::intv_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, INTV_CART_SLOT, "Intellivision Cartridge Slot", tag, owner, clock, "intv_cart_slot", __FILE__), - device_image_interface(mconfig, *this), - device_slot_interface(mconfig, *this), - m_type(INTV_STD), m_cart(nullptr) + device_t(mconfig, INTV_CART_SLOT, tag, owner, clock), + device_image_interface(mconfig, *this), + device_slot_interface(mconfig, *this), + m_type(INTV_STD), + m_cart(nullptr) { } diff --git a/src/devices/bus/intv/slot.h b/src/devices/bus/intv/slot.h index 5036c25ecb5..9442160625a 100644 --- a/src/devices/bus/intv/slot.h +++ b/src/devices/bus/intv/slot.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __INTV_SLOT_H -#define __INTV_SLOT_H +#ifndef MAME_BUS_INTV_SLOT_H +#define MAME_BUS_INTV_SLOT_H + +#pragma once #include "softlist_dev.h" @@ -34,7 +36,6 @@ class device_intv_cart_interface : public device_slot_card_interface { public: // construction/destruction - device_intv_cart_interface(const machine_config &mconfig, device_t &device); virtual ~device_intv_cart_interface(); // reading and writing @@ -80,6 +81,8 @@ public: virtual void late_subslot_setup() {} protected: + device_intv_cart_interface(const machine_config &mconfig, device_t &device); + // internal state uint8_t *m_rom; uint32_t m_rom_size; @@ -98,9 +101,6 @@ public: intv_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual ~intv_cart_slot_device(); - // device-level overrides - virtual void device_start() override; - // image-level overrides virtual image_init_result call_load() override; virtual void call_unload() override {} @@ -159,7 +159,9 @@ public: virtual DECLARE_WRITE16_MEMBER(write_rome0) { if (m_cart) m_cart->write_rome0(space, offset, data, mem_mask); } virtual DECLARE_WRITE16_MEMBER(write_romf0) { if (m_cart) m_cart->write_romf0(space, offset, data, mem_mask); } -//protected: +protected: + // device-level overrides + virtual void device_start() override; int m_type; device_intv_cart_interface* m_cart; @@ -168,7 +170,7 @@ public: // device type definition -extern const device_type INTV_CART_SLOT; +DECLARE_DEVICE_TYPE(INTV_CART_SLOT, intv_cart_slot_device) /*************************************************************************** @@ -183,4 +185,4 @@ extern const device_type INTV_CART_SLOT; SLOT_INTERFACE_EXTERN(intv_cart); -#endif +#endif // MAME_BUS_INTV_SLOT_H diff --git a/src/devices/bus/intv/voice.cpp b/src/devices/bus/intv/voice.cpp index b144b0008c4..04fd90f4277 100644 --- a/src/devices/bus/intv/voice.cpp +++ b/src/devices/bus/intv/voice.cpp @@ -20,10 +20,10 @@ // intv_voice_device - constructor //------------------------------------------------- -const device_type INTV_ROM_VOICE = device_creator; +DEFINE_DEVICE_TYPE(INTV_ROM_VOICE, intv_voice_device, "intv_voice", "Intellivision Intellivoice Expansion") intv_voice_device::intv_voice_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : intv_rom_device(mconfig, INTV_ROM_VOICE, "Intellivision Intellivoice Expansion", tag, owner, clock, "intv_voice", __FILE__), + : intv_rom_device(mconfig, INTV_ROM_VOICE, tag, owner, clock), m_speech(*this, "sp0256_speech"), m_subslot(*this, "subslot"), m_ramd0_enabled(false), @@ -123,3 +123,20 @@ WRITE16_MEMBER(intv_voice_device::write_speech) if (ACCESSING_BITS_0_7) return m_speech->spb640_w(space, offset, data, mem_mask); } + + +READ16_MEMBER(intv_voice_device::read_rom80) +{ + if (m_ram88_enabled && offset >= 0x800) + return m_subslot->read_ram(space, offset & 0x7ff, mem_mask); + else + return m_subslot->read_rom80(space, offset, mem_mask); +} + +READ16_MEMBER(intv_voice_device::read_romd0) +{ + if (m_ramd0_enabled && offset < 0x800) + return m_subslot->read_ram(space, offset, mem_mask); + else + return m_subslot->read_romd0(space, offset, mem_mask); +} diff --git a/src/devices/bus/intv/voice.h b/src/devices/bus/intv/voice.h index 133f16c62a6..0cf6a2d433b 100644 --- a/src/devices/bus/intv/voice.h +++ b/src/devices/bus/intv/voice.h @@ -17,7 +17,6 @@ public: intv_voice_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // device-level overrides - virtual void device_start() override; virtual machine_config_constructor device_mconfig_additions() const override; virtual const tiny_rom_entry *device_rom_region() const override; @@ -34,24 +33,12 @@ public: virtual DECLARE_READ16_MEMBER(read_rom50) override { return m_subslot->read_rom50(space, offset, mem_mask); } virtual DECLARE_READ16_MEMBER(read_rom60) override { return m_subslot->read_rom60(space, offset, mem_mask); } virtual DECLARE_READ16_MEMBER(read_rom70) override { return m_subslot->read_rom70(space, offset, mem_mask); } - virtual DECLARE_READ16_MEMBER(read_rom80) override - { - if (m_ram88_enabled && offset >= 0x800) - return m_subslot->read_ram(space, offset & 0x7ff, mem_mask); - else - return m_subslot->read_rom80(space, offset, mem_mask); - } + virtual DECLARE_READ16_MEMBER(read_rom80) override; virtual DECLARE_READ16_MEMBER(read_rom90) override { return m_subslot->read_rom90(space, offset, mem_mask); } virtual DECLARE_READ16_MEMBER(read_roma0) override { return m_subslot->read_roma0(space, offset, mem_mask); } virtual DECLARE_READ16_MEMBER(read_romb0) override { return m_subslot->read_romb0(space, offset, mem_mask); } virtual DECLARE_READ16_MEMBER(read_romc0) override { return m_subslot->read_romc0(space, offset, mem_mask); } - virtual DECLARE_READ16_MEMBER(read_romd0) override - { - if (m_ramd0_enabled && offset < 0x800) - return m_subslot->read_ram(space, offset, mem_mask); - else - return m_subslot->read_romd0(space, offset, mem_mask); - } + virtual DECLARE_READ16_MEMBER(read_romd0) override; virtual DECLARE_READ16_MEMBER(read_rome0) override { return m_subslot->read_rome0(space, offset, mem_mask); } virtual DECLARE_READ16_MEMBER(read_romf0) override { return m_subslot->read_romf0(space, offset, mem_mask); } @@ -63,6 +50,9 @@ public: virtual void late_subslot_setup() override; +protected: + virtual void device_start() override; + private: required_device m_speech; required_device m_subslot; @@ -70,9 +60,7 @@ private: }; - - // device type definition -extern const device_type INTV_ROM_VOICE; +DECLARE_DEVICE_TYPE(INTV_ROM_VOICE, intv_voice_device) -#endif +#endif // MAME_BUS_INTV_SLOT_H diff --git a/src/devices/bus/intv_ctrl/ctrl.cpp b/src/devices/bus/intv_ctrl/ctrl.cpp index 510ac13cba8..01b64ba6aef 100644 --- a/src/devices/bus/intv_ctrl/ctrl.cpp +++ b/src/devices/bus/intv_ctrl/ctrl.cpp @@ -16,7 +16,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type INTV_CONTROL_PORT = device_creator; +DEFINE_DEVICE_TYPE(INTV_CONTROL_PORT, intv_control_port_device, "intv_control_port", "Mattel Intellivision control port") //************************************************************************** @@ -52,8 +52,9 @@ device_intv_control_port_interface::~device_intv_control_port_interface() //------------------------------------------------- intv_control_port_device::intv_control_port_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, INTV_CONTROL_PORT, "Mattel Intellivision control port", tag, owner, clock, "intv_control_port", __FILE__), - device_slot_interface(mconfig, *this), m_device(nullptr) + device_t(mconfig, INTV_CONTROL_PORT, tag, owner, clock), + device_slot_interface(mconfig, *this), + m_device(nullptr) { } diff --git a/src/devices/bus/intv_ctrl/ctrl.h b/src/devices/bus/intv_ctrl/ctrl.h index 0507dbf062d..a46011845f2 100644 --- a/src/devices/bus/intv_ctrl/ctrl.h +++ b/src/devices/bus/intv_ctrl/ctrl.h @@ -6,12 +6,11 @@ **********************************************************************/ +#ifndef MAME_BUS_INTV_CTRL_CTRL_H +#define MAME_BUS_INTV_CTRL_CTRL_H #pragma once -#ifndef __INTV_CONTROL_PORT__ -#define __INTV_CONTROL_PORT__ - //************************************************************************** // TYPE DEFINITIONS @@ -25,12 +24,13 @@ class device_intv_control_port_interface : public device_slot_card_interface { public: // construction/destruction - device_intv_control_port_interface(const machine_config &mconfig, device_t &device); virtual ~device_intv_control_port_interface(); virtual uint8_t read_ctrl() { return 0; }; protected: + device_intv_control_port_interface(const machine_config &mconfig, device_t &device); + intv_control_port_device *m_port; }; @@ -56,7 +56,7 @@ protected: // device type definition -extern const device_type INTV_CONTROL_PORT; +DECLARE_DEVICE_TYPE(INTV_CONTROL_PORT, intv_control_port_device) //************************************************************************** @@ -72,4 +72,4 @@ extern const device_type INTV_CONTROL_PORT; SLOT_INTERFACE_EXTERN( intv_control_port_devices ); -#endif +#endif // MAME_BUS_INTV_CTRL_CTRL_H diff --git a/src/devices/bus/intv_ctrl/ecs_ctrl.cpp b/src/devices/bus/intv_ctrl/ecs_ctrl.cpp index 4b187442585..077c9685c7b 100644 --- a/src/devices/bus/intv_ctrl/ecs_ctrl.cpp +++ b/src/devices/bus/intv_ctrl/ecs_ctrl.cpp @@ -30,7 +30,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type INTVECS_CONTROL_PORT = device_creator; +DEFINE_DEVICE_TYPE(INTVECS_CONTROL_PORT, intvecs_control_port_device, "intvecs_control_port", "Mattel Intellivision ECS control port (HACK)") //************************************************************************** @@ -66,8 +66,8 @@ device_intvecs_control_port_interface::~device_intvecs_control_port_interface() //------------------------------------------------- intvecs_control_port_device::intvecs_control_port_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, INTVECS_CONTROL_PORT, "Mattel Intellivision ECS control port (HACK)", tag, owner, clock, "intvecs_control_port", __FILE__), - device_slot_interface(mconfig, *this), m_device(nullptr) + device_t(mconfig, INTVECS_CONTROL_PORT, tag, owner, clock), + device_slot_interface(mconfig, *this), m_device(nullptr) { } @@ -137,7 +137,7 @@ SLOT_INTERFACE_END // ECS_CTRLS - A pair of hand controllers //------------------------------------------------- -const device_type ECS_CTRLS = device_creator; +DEFINE_DEVICE_TYPE(ECS_CTRLS, intvecs_ctrls_device, "intvecs_ctrls", "Mattel Intellivision ECS Hand Controller x2 (HACK)") static SLOT_INTERFACE_START( intvecs_controller ) SLOT_INTERFACE("handctrl", INTV_HANDCTRL) @@ -155,7 +155,7 @@ machine_config_constructor intvecs_ctrls_device::device_mconfig_additions() cons } intvecs_ctrls_device::intvecs_ctrls_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, ECS_CTRLS, "Mattel Intellivision ECS Hand Controller x2 (HACK)", tag, owner, clock, "intvecs_ctrls", __FILE__), + device_t(mconfig, ECS_CTRLS, tag, owner, clock), device_intvecs_control_port_interface(mconfig, *this), m_hand1(*this, "port1"), m_hand2(*this, "port2") @@ -184,7 +184,7 @@ uint8_t intvecs_ctrls_device::read_portB() // ECS_KEYBD - Keyboard //------------------------------------------------- -const device_type ECS_KEYBD = device_creator; +DEFINE_DEVICE_TYPE(ECS_KEYBD, intvecs_keybd_device, "intvecs_keybd", "Mattel Intellivision ECS Keyboard") static INPUT_PORTS_START( intvecs_keybd ) /* @@ -281,7 +281,7 @@ ioport_constructor intvecs_keybd_device::device_input_ports() const } intvecs_keybd_device::intvecs_keybd_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, ECS_KEYBD, "Mattel Intellivision ECS Keyboard", tag, owner, clock, "intvecs_keybd", __FILE__) + : device_t(mconfig, ECS_KEYBD, tag, owner, clock) , device_intvecs_control_port_interface(mconfig, *this) , m_keybd(*this, "ROW.%u", 0) { @@ -320,7 +320,7 @@ void intvecs_keybd_device::write_portA(uint8_t data) // ECS_SYNTH - Synth //------------------------------------------------- -const device_type ECS_SYNTH = device_creator; +DEFINE_DEVICE_TYPE(ECS_SYNTH, intvecs_synth_device, "intvecs_synth", "Mattel Intellivision ECS Synthesizer") static INPUT_PORTS_START( intvecs_synth ) @@ -414,7 +414,7 @@ ioport_constructor intvecs_synth_device::device_input_ports() const intvecs_synth_device::intvecs_synth_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, ECS_SYNTH, "Mattel Intellivision ECS Synthetizer", tag, owner, clock, "intvecs_synth", __FILE__), + device_t(mconfig, ECS_SYNTH, tag, owner, clock), device_intvecs_control_port_interface(mconfig, *this), m_synth(*this, "SYNTH.%u", 0) { diff --git a/src/devices/bus/intv_ctrl/ecs_ctrl.h b/src/devices/bus/intv_ctrl/ecs_ctrl.h index 02dd10f8e02..5bf1ef69c1f 100644 --- a/src/devices/bus/intv_ctrl/ecs_ctrl.h +++ b/src/devices/bus/intv_ctrl/ecs_ctrl.h @@ -6,11 +6,11 @@ **********************************************************************/ +#ifndef MAME_BUS_INTV_CTRL_ECS_CTRL_H +#define MAME_BUS_INTV_CTRL_ECS_CTRL_H #pragma once -#ifndef __INTVECS_CONTROL_PORT__ -#define __INTVECS_CONTROL_PORT__ #include "bus/intv_ctrl/ctrl.h" #include "bus/intv_ctrl/handctrl.h" @@ -27,14 +27,15 @@ class device_intvecs_control_port_interface : public device_slot_card_interface { public: // construction/destruction - device_intvecs_control_port_interface(const machine_config &mconfig, device_t &device); virtual ~device_intvecs_control_port_interface(); - virtual uint8_t read_portA() { return 0xff; }; - virtual uint8_t read_portB() { return 0xff; }; - virtual void write_portA(uint8_t data) { }; + virtual uint8_t read_portA() { return 0xff; } + virtual uint8_t read_portB() { return 0xff; } + virtual void write_portA(uint8_t data) { } protected: + device_intvecs_control_port_interface(const machine_config &mconfig, device_t &device); + intvecs_control_port_device *m_port; }; @@ -64,7 +65,7 @@ protected: // device type definition -extern const device_type INTVECS_CONTROL_PORT; +DECLARE_DEVICE_TYPE(INTVECS_CONTROL_PORT, intvecs_control_port_device) //************************************************************************** @@ -161,10 +162,9 @@ private: // device type definition -extern const device_type ECS_CTRLS; -extern const device_type ECS_KEYBD; -extern const device_type ECS_SYNTH; - +DECLARE_DEVICE_TYPE(ECS_CTRLS, intvecs_ctrls_device) +DECLARE_DEVICE_TYPE(ECS_KEYBD, intvecs_keybd_device) +DECLARE_DEVICE_TYPE(ECS_SYNTH, intvecs_synth_device) -#endif +#endif // MAME_BUS_INTV_CTRL_ECS_CTRL_H diff --git a/src/devices/bus/intv_ctrl/handctrl.cpp b/src/devices/bus/intv_ctrl/handctrl.cpp index 6208c270ab6..43cdfad91b1 100644 --- a/src/devices/bus/intv_ctrl/handctrl.cpp +++ b/src/devices/bus/intv_ctrl/handctrl.cpp @@ -13,7 +13,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type INTV_HANDCTRL = device_creator; +DEFINE_DEVICE_TYPE(INTV_HANDCTRL, intv_handctrl_device, "intv_handctrl", "Mattel Intellivision Hand Controller") static INPUT_PORTS_START( intv_handctrl ) @@ -87,13 +87,13 @@ ioport_constructor intv_handctrl_device::device_input_ports() const //------------------------------------------------- intv_handctrl_device::intv_handctrl_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, INTV_HANDCTRL, "Mattel Intellivision Hand Controller", tag, owner, clock, "intv_hand", __FILE__), - device_intv_control_port_interface(mconfig, *this), - m_cfg(*this, "OPTIONS"), - m_keypad(*this, "KEYPAD"), - m_disc_dig(*this, "DISC_DG"), - m_disc_anx(*this, "DISC_AN_X"), - m_disc_any(*this, "DISC_AN_Y") + device_t(mconfig, INTV_HANDCTRL, tag, owner, clock), + device_intv_control_port_interface(mconfig, *this), + m_cfg(*this, "OPTIONS"), + m_keypad(*this, "KEYPAD"), + m_disc_dig(*this, "DISC_DG"), + m_disc_anx(*this, "DISC_AN_X"), + m_disc_any(*this, "DISC_AN_Y") { } diff --git a/src/devices/bus/intv_ctrl/handctrl.h b/src/devices/bus/intv_ctrl/handctrl.h index bc15a8c28d3..4aa021c1ff8 100644 --- a/src/devices/bus/intv_ctrl/handctrl.h +++ b/src/devices/bus/intv_ctrl/handctrl.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_INTV_CTRL_HANDCTRL_H +#define MAME_BUS_INTV_CTRL_HANDCTRL_H -#ifndef __INTV_HANDCTRL__ -#define __INTV_HANDCTRL__ +#pragma once #include "ctrl.h" @@ -48,7 +48,7 @@ private: // device type definition -extern const device_type INTV_HANDCTRL; +DECLARE_DEVICE_TYPE(INTV_HANDCTRL, intv_handctrl_device) -#endif +#endif // MAME_BUS_INTV_CTRL_HANDCTRL_H diff --git a/src/devices/bus/iq151/disc2.cpp b/src/devices/bus/iq151/disc2.cpp index 3ce901c61fb..8883a2a8ef5 100644 --- a/src/devices/bus/iq151/disc2.cpp +++ b/src/devices/bus/iq151/disc2.cpp @@ -38,7 +38,7 @@ ROM_END // GLOBAL VARIABLES //************************************************************************** -const device_type IQ151_DISC2 = device_creator; +DEFINE_DEVICE_TYPE(IQ151_DISC2, iq151_disc2_device, "iq151_disc2", "IQ151 Disc2") //************************************************************************** // LIVE DEVICE @@ -49,10 +49,10 @@ const device_type IQ151_DISC2 = device_creator; //------------------------------------------------- iq151_disc2_device::iq151_disc2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, IQ151_DISC2, "IQ151 Disc2", tag, owner, clock, "iq151_disc2", __FILE__), - device_iq151cart_interface( mconfig, *this ), - m_fdc(*this, "fdc"), m_rom(nullptr), m_rom_enabled(false) - { + : device_t(mconfig, IQ151_DISC2, tag, owner, clock) + , device_iq151cart_interface(mconfig, *this) + , m_fdc(*this, "fdc"), m_rom(nullptr), m_rom_enabled(false) +{ } //------------------------------------------------- diff --git a/src/devices/bus/iq151/disc2.h b/src/devices/bus/iq151/disc2.h index fd2eabc4aa7..c7452ef1415 100644 --- a/src/devices/bus/iq151/disc2.h +++ b/src/devices/bus/iq151/disc2.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Sandro Ronco -#pragma once +#ifndef MAME_BUS_IQ151_DISC2_H +#define MAME_BUS_IQ151_DISC2_H -#ifndef __IQ151_DISC2_H__ -#define __IQ151_DISC2_H__ +#pragma once #include "iq151.h" #include "machine/upd765.h" @@ -39,7 +39,6 @@ protected: virtual void io_write(offs_t offset, uint8_t data) override; private: - required_device m_fdc; uint8_t * m_rom; bool m_rom_enabled; @@ -47,6 +46,6 @@ private: // device type definition -extern const device_type IQ151_DISC2; +DECLARE_DEVICE_TYPE(IQ151_DISC2, iq151_disc2_device) -#endif /* __IQ151_DISC2_H__ */ +#endif // MAME_BUS_IQ151_DISC2_H diff --git a/src/devices/bus/iq151/grafik.cpp b/src/devices/bus/iq151/grafik.cpp index 4eda406479f..84c7ea4ee08 100644 --- a/src/devices/bus/iq151/grafik.cpp +++ b/src/devices/bus/iq151/grafik.cpp @@ -28,7 +28,7 @@ MACHINE_CONFIG_END // GLOBAL VARIABLES //************************************************************************** -const device_type IQ151_GRAFIK = device_creator; +DEFINE_DEVICE_TYPE(IQ151_GRAFIK, iq151_grafik_device, "iq151_grafik", "IQ151 grafik") //************************************************************************** // LIVE DEVICE @@ -39,10 +39,10 @@ const device_type IQ151_GRAFIK = device_creator; //------------------------------------------------- iq151_grafik_device::iq151_grafik_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, IQ151_GRAFIK, "IQ151 grafik", tag, owner, clock, "iq151_grafik", __FILE__), - device_iq151cart_interface( mconfig, *this ), - m_ppi8255(*this, "ppi8255"), m_posx(0), m_posy(0), m_all(0), m_pen(0), m_fast(0), m_ev(0), m_ex(0), m_sel(0) - { + : device_t(mconfig, IQ151_GRAFIK, tag, owner, clock) + , device_iq151cart_interface(mconfig, *this) + , m_ppi8255(*this, "ppi8255"), m_posx(0), m_posy(0), m_all(0), m_pen(0), m_fast(0), m_ev(0), m_ex(0), m_sel(0) +{ } //------------------------------------------------- diff --git a/src/devices/bus/iq151/grafik.h b/src/devices/bus/iq151/grafik.h index 87e2e6d6d17..afdb233b4f6 100644 --- a/src/devices/bus/iq151/grafik.h +++ b/src/devices/bus/iq151/grafik.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Sandro Ronco -#pragma once +#ifndef MAME_BUS_IQ151_GRAFIK_H +#define MAME_BUS_IQ151_GRAFIK_H -#ifndef __IQ151_GRAFIK_H__ -#define __IQ151_GRAFIK_H__ +#pragma once #include "iq151.h" #include "machine/i8255.h" @@ -58,5 +58,6 @@ private: // device type definition extern const device_type IQ151_GRAFIK; +DECLARE_DEVICE_TYPE(IQ151_GRAFIK, iq151_grafik_device) -#endif /* __IQ151_GRAFIK_H__ */ +#endif // MAME_BUS_IQ151_GRAFIK_H diff --git a/src/devices/bus/iq151/iq151.cpp b/src/devices/bus/iq151/iq151.cpp index 2b72156dbe9..125ba03a909 100644 --- a/src/devices/bus/iq151/iq151.cpp +++ b/src/devices/bus/iq151/iq151.cpp @@ -20,7 +20,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type IQ151CART_SLOT = device_creator; +DEFINE_DEVICE_TYPE(IQ151CART_SLOT, iq151cart_slot_device, "iq151cart_slot", "IQ151 cartridge slot") //************************************************************************** // IQ151 cartridge interface @@ -53,15 +53,16 @@ device_iq151cart_interface::~device_iq151cart_interface() // iq151cart_slot_device - constructor //------------------------------------------------- iq151cart_slot_device::iq151cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, IQ151CART_SLOT, "IQ151 cartridge slot", tag, owner, clock, "iq151cart_slot", __FILE__), - device_slot_interface(mconfig, *this), - device_image_interface(mconfig, *this), - m_out_irq0_cb(*this), - m_out_irq1_cb(*this), - m_out_irq2_cb(*this), - m_out_irq3_cb(*this), - m_out_irq4_cb(*this), - m_out_drq_cb(*this), m_cart(nullptr) + device_t(mconfig, IQ151CART_SLOT, tag, owner, clock), + device_slot_interface(mconfig, *this), + device_image_interface(mconfig, *this), + m_out_irq0_cb(*this), + m_out_irq1_cb(*this), + m_out_irq2_cb(*this), + m_out_irq3_cb(*this), + m_out_irq4_cb(*this), + m_out_drq_cb(*this), + m_cart(nullptr) { } diff --git a/src/devices/bus/iq151/iq151.h b/src/devices/bus/iq151/iq151.h index 22288e2ccb5..649f397d2b9 100644 --- a/src/devices/bus/iq151/iq151.h +++ b/src/devices/bus/iq151/iq151.h @@ -42,8 +42,10 @@ *********************************************************************/ -#ifndef __IQ151CART_H__ -#define __IQ151CART_H__ +#ifndef MAME_BUS_IQ151_IQ151_H +#define MAME_BUS_IQ151_IQ151_H + +#pragma once #include "softlist_dev.h" @@ -57,7 +59,6 @@ class device_iq151cart_interface : public device_slot_card_interface { public: // construction/destruction - device_iq151cart_interface(const machine_config &mconfig, device_t &device); virtual ~device_iq151cart_interface(); // reading and writing @@ -69,6 +70,9 @@ public: // video update virtual void video_update(bitmap_ind16 &bitmap, const rectangle &cliprect) { } + +protected: + device_iq151cart_interface(const machine_config &mconfig, device_t &device); }; // ======================> iq151cart_slot_device @@ -82,12 +86,12 @@ public: iq151cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual ~iq151cart_slot_device(); - template static devcb_base &set_out_irq0_callback(device_t &device, _Object object) { return downcast(device).m_out_irq0_cb.set_callback(object); } - template static devcb_base &set_out_irq1_callback(device_t &device, _Object object) { return downcast(device).m_out_irq1_cb.set_callback(object); } - template static devcb_base &set_out_irq2_callback(device_t &device, _Object object) { return downcast(device).m_out_irq2_cb.set_callback(object); } - template static devcb_base &set_out_irq3_callback(device_t &device, _Object object) { return downcast(device).m_out_irq3_cb.set_callback(object); } - template static devcb_base &set_out_irq4_callback(device_t &device, _Object object) { return downcast(device).m_out_irq4_cb.set_callback(object); } - template static devcb_base &set_out_drq_callback(device_t &device, _Object object) { return downcast(device).m_out_drq_cb.set_callback(object); } + template static devcb_base &set_out_irq0_callback(device_t &device, Object &&cb) { return downcast(device).m_out_irq0_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_irq1_callback(device_t &device, Object &&cb) { return downcast(device).m_out_irq1_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_irq2_callback(device_t &device, Object &&cb) { return downcast(device).m_out_irq2_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_irq3_callback(device_t &device, Object &&cb) { return downcast(device).m_out_irq3_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_irq4_callback(device_t &device, Object &&cb) { return downcast(device).m_out_irq4_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_drq_callback(device_t &device, Object &&cb) { return downcast(device).m_out_drq_cb.set_callback(std::forward(cb)); } // device-level overrides virtual void device_start() override; @@ -127,7 +131,7 @@ public: // device type definition -extern const device_type IQ151CART_SLOT; +DECLARE_DEVICE_TYPE(IQ151CART_SLOT, iq151cart_slot_device) /*************************************************************************** @@ -152,4 +156,4 @@ extern const device_type IQ151CART_SLOT; #define MCFG_IQ151CART_SLOT_OUT_DRQ_CB(_devcb) \ devcb = &iq151cart_slot_device::set_out_drq_callback(*device, DEVCB_##_devcb); -#endif /* __IQ151CART_H__ */ +#endif // MAME_BUS_IQ151_IQ151_H diff --git a/src/devices/bus/iq151/minigraf.cpp b/src/devices/bus/iq151/minigraf.cpp index 10572aa553c..d5bf2da1f8b 100644 --- a/src/devices/bus/iq151/minigraf.cpp +++ b/src/devices/bus/iq151/minigraf.cpp @@ -37,7 +37,7 @@ ROM_END // GLOBAL VARIABLES //************************************************************************** -const device_type IQ151_MINIGRAF = device_creator; +DEFINE_DEVICE_TYPE(IQ151_MINIGRAF, iq151_minigraf_device, "iq151_minigraf", "IQ151 Minigraf") //************************************************************************** // LIVE DEVICE @@ -48,9 +48,10 @@ const device_type IQ151_MINIGRAF = device_creator; //------------------------------------------------- iq151_minigraf_device::iq151_minigraf_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, IQ151_MINIGRAF, "IQ151 Minigraf", tag, owner, clock, "iq151_minigraf", __FILE__), - device_iq151cart_interface( mconfig, *this ), m_rom(nullptr), m_posx(0), m_posy(0), m_pen(0), m_control(0), m_paper(nullptr) - { + : device_t(mconfig, IQ151_MINIGRAF, tag, owner, clock) + , device_iq151cart_interface(mconfig, *this) + , m_rom(nullptr), m_posx(0), m_posy(0), m_pen(0), m_control(0), m_paper(nullptr) +{ } //------------------------------------------------- diff --git a/src/devices/bus/iq151/minigraf.h b/src/devices/bus/iq151/minigraf.h index 78ba888f4f6..16113288094 100644 --- a/src/devices/bus/iq151/minigraf.h +++ b/src/devices/bus/iq151/minigraf.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Sandro Ronco -#pragma once +#ifndef MAME_BUS_IQ151_MINIGRAF_H +#define MAME_BUS_IQ151_MINIGRAF_H -#ifndef __IQ151_MINIGRAF_H__ -#define __IQ151_MINIGRAF_H__ +#pragma once #include "iq151.h" @@ -50,6 +50,6 @@ private: // device type definition -extern const device_type IQ151_MINIGRAF; +DECLARE_DEVICE_TYPE(IQ151_MINIGRAF, iq151_minigraf_device) -#endif /* __IQ151_MINIGRAF_H__ */ +#endif // MAME_BUS_IQ151_MINIGRAF_H diff --git a/src/devices/bus/iq151/ms151a.cpp b/src/devices/bus/iq151/ms151a.cpp index 12e514b15ac..447c9f0d43a 100644 --- a/src/devices/bus/iq151/ms151a.cpp +++ b/src/devices/bus/iq151/ms151a.cpp @@ -36,7 +36,7 @@ ROM_END // GLOBAL VARIABLES //************************************************************************** -const device_type IQ151_MS151A = device_creator; +DEFINE_DEVICE_TYPE(IQ151_MS151A, iq151_ms151a_device, "iq151_ms15a", "IQ151 MS151A XY plotter") //************************************************************************** // LIVE DEVICE @@ -47,9 +47,10 @@ const device_type IQ151_MS151A = device_creator; //------------------------------------------------- iq151_ms151a_device::iq151_ms151a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, IQ151_MS151A, "IQ151 MS151A", tag, owner, clock, "iq151_ms151a", __FILE__), - device_iq151cart_interface( mconfig, *this ), m_rom(nullptr), m_posx(0), m_posy(0), m_pen(0), m_paper(nullptr) - { + : device_t(mconfig, IQ151_MS151A, tag, owner, clock) + , device_iq151cart_interface(mconfig, *this) + , m_rom(nullptr), m_posx(0), m_posy(0), m_pen(0), m_paper(nullptr) +{ } //------------------------------------------------- diff --git a/src/devices/bus/iq151/ms151a.h b/src/devices/bus/iq151/ms151a.h index a00d541cee8..735729b15f1 100644 --- a/src/devices/bus/iq151/ms151a.h +++ b/src/devices/bus/iq151/ms151a.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Sandro Ronco -#pragma once +#ifndef MAME_BUS_IQ151_MS151A_H +#define MAME_BUS_IQ151_MS151A_H -#ifndef __IQ151_MS151A_H__ -#define __IQ151_MS151A_H__ +#pragma once #include "iq151.h" @@ -50,6 +50,6 @@ private: // device type definition -extern const device_type IQ151_MS151A; +DECLARE_DEVICE_TYPE(IQ151_MS151A, iq151_ms151a_device) -#endif /* __IQ151_MS151A_H__ */ +#endif // MAME_BUS_IQ151_MS151A_H diff --git a/src/devices/bus/iq151/rom.cpp b/src/devices/bus/iq151/rom.cpp index 076efa1f5a2..94658c100db 100644 --- a/src/devices/bus/iq151/rom.cpp +++ b/src/devices/bus/iq151/rom.cpp @@ -27,11 +27,11 @@ ROM_END // GLOBAL VARIABLES //************************************************************************** -const device_type IQ151_BASIC6 = device_creator; -const device_type IQ151_BASICG = device_creator; -const device_type IQ151_AMOS1 = device_creator; -const device_type IQ151_AMOS2 = device_creator; -const device_type IQ151_AMOS3 = device_creator; +DEFINE_DEVICE_TYPE(IQ151_BASIC6, iq151_basic6_device, "iq151_basic6", "IQ151 BASIC6") +DEFINE_DEVICE_TYPE(IQ151_BASICG, iq151_basicg_device, "iq151_basicg", "IQ151 BASICG") +DEFINE_DEVICE_TYPE(IQ151_AMOS1, iq151_amos1_device, "iq151_amos1", "IQ151 AMOS cart 1") +DEFINE_DEVICE_TYPE(IQ151_AMOS2, iq151_amos2_device, "iq151_amos2", "IQ151 AMOS cart 2") +DEFINE_DEVICE_TYPE(IQ151_AMOS3, iq151_amos3_device, "iq151_amos3", "IQ151 AMOS cart 3") //************************************************************************** // LIVE DEVICE @@ -41,9 +41,10 @@ const device_type IQ151_AMOS3 = device_creator; // iq151_rom_device - constructor //------------------------------------------------- -iq151_rom_device::iq151_rom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_iq151cart_interface(mconfig, *this), m_rom(nullptr) +iq151_rom_device::iq151_rom_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), + device_iq151cart_interface(mconfig, *this), + m_rom(*this, "rom") { } @@ -53,7 +54,6 @@ iq151_rom_device::iq151_rom_device(const machine_config &mconfig, device_type ty void iq151_rom_device::device_start() { - m_rom = (uint8_t*)memregion("rom")->base(); } //------------------------------------------------- @@ -84,7 +84,7 @@ uint8_t* iq151_rom_device::get_cart_base() //------------------------------------------------- iq151_basic6_device::iq151_basic6_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : iq151_rom_device(mconfig, IQ151_BASIC6, "IQ151 BASIC6", tag, owner, clock, "iq151_basic6", __FILE__) + : iq151_rom_device(mconfig, IQ151_BASIC6, tag, owner, clock) { } @@ -109,7 +109,7 @@ void iq151_basic6_device::read(offs_t offset, uint8_t &data) //------------------------------------------------- iq151_basicg_device::iq151_basicg_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : iq151_rom_device(mconfig, IQ151_BASICG, "IQ151 BASICG", tag, owner, clock, "iq151_basicg", __FILE__) + : iq151_rom_device(mconfig, IQ151_BASICG, tag, owner, clock) { } @@ -135,8 +135,8 @@ void iq151_basicg_device::read(offs_t offset, uint8_t &data) //------------------------------------------------- iq151_amos1_device::iq151_amos1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : iq151_rom_device(mconfig, IQ151_AMOS1, "IQ151 AMOS cart 1", tag, owner, clock, "iq151_amos1", __FILE__), - m_active(true) + : iq151_rom_device(mconfig, IQ151_AMOS1, tag, owner, clock) + , m_active(true) { } @@ -169,8 +169,8 @@ void iq151_amos1_device::io_write(offs_t offset, uint8_t data) //------------------------------------------------- iq151_amos2_device::iq151_amos2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : iq151_rom_device(mconfig, IQ151_AMOS2, "IQ151 AMOS cart 2", tag, owner, clock, "iq151_amos2", __FILE__), - m_active(false) + : iq151_rom_device(mconfig, IQ151_AMOS2, tag, owner, clock) + , m_active(false) { } @@ -203,8 +203,8 @@ void iq151_amos2_device::io_write(offs_t offset, uint8_t data) //------------------------------------------------- iq151_amos3_device::iq151_amos3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : iq151_rom_device(mconfig, IQ151_AMOS3, "IQ151 AMOS cart 3", tag, owner, clock, "iq151_amos3", __FILE__), - m_active(true) + : iq151_rom_device(mconfig, IQ151_AMOS3, tag, owner, clock) + , m_active(true) { } diff --git a/src/devices/bus/iq151/rom.h b/src/devices/bus/iq151/rom.h index bd17fc4e65e..56544a24d9f 100644 --- a/src/devices/bus/iq151/rom.h +++ b/src/devices/bus/iq151/rom.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Sandro Ronco -#pragma once +#ifndef MAME_BUS_IQ151_ROM_H +#define MAME_BUS_IQ151_ROM_H -#ifndef __IQ151_ROM_H__ -#define __IQ151_ROM_H__ +#pragma once #include "iq151.h" #include "machine/i8255.h" @@ -19,20 +19,20 @@ class iq151_rom_device : public device_iq151cart_interface { public: - // construction/destruction - iq151_rom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - // optional information overrides virtual const tiny_rom_entry *device_rom_region() const override; protected: + // construction/destruction + iq151_rom_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; // iq151cart_interface overrides virtual uint8_t* get_cart_base() override; - uint8_t * m_rom; + required_region_ptr m_rom; }; @@ -120,10 +120,10 @@ protected: // device type definition -extern const device_type IQ151_BASIC6; -extern const device_type IQ151_BASICG; -extern const device_type IQ151_AMOS1; -extern const device_type IQ151_AMOS2; -extern const device_type IQ151_AMOS3; +DECLARE_DEVICE_TYPE(IQ151_BASIC6, iq151_basic6_device) +DECLARE_DEVICE_TYPE(IQ151_BASICG, iq151_basicg_device) +DECLARE_DEVICE_TYPE(IQ151_AMOS1, iq151_amos1_device) +DECLARE_DEVICE_TYPE(IQ151_AMOS2, iq151_amos2_device) +DECLARE_DEVICE_TYPE(IQ151_AMOS3, iq151_amos3_device) -#endif /* __IQ151_ROM_H__ */ +#endif // MAME_BUS_IQ151_ROM_H diff --git a/src/devices/bus/iq151/staper.cpp b/src/devices/bus/iq151/staper.cpp index 692c4e9431a..f04c4302540 100644 --- a/src/devices/bus/iq151/staper.cpp +++ b/src/devices/bus/iq151/staper.cpp @@ -34,7 +34,7 @@ MACHINE_CONFIG_END // GLOBAL VARIABLES //************************************************************************** -const device_type IQ151_STAPER = device_creator; +DEFINE_DEVICE_TYPE(IQ151_STAPER, iq151_staper_device, "iq151_staper", "IQ151 STAPER") //************************************************************************** // LIVE DEVICE @@ -45,11 +45,13 @@ const device_type IQ151_STAPER = device_creator; //------------------------------------------------- iq151_staper_device::iq151_staper_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, IQ151_STAPER, "IQ151 STAPER", tag, owner, clock, "iq151_staper", __FILE__), - device_iq151cart_interface( mconfig, *this ), - m_ppi(*this, "ppi8255"), - m_printer(*this, "printer"), m_printer_timer(nullptr), m_ppi_portc(0) - { + : device_t(mconfig, IQ151_STAPER, tag, owner, clock) + , device_iq151cart_interface(mconfig, *this) + , m_ppi(*this, "ppi8255") + , m_printer(*this, "printer") + , m_printer_timer(nullptr) + , m_ppi_portc(0) +{ } //------------------------------------------------- diff --git a/src/devices/bus/iq151/staper.h b/src/devices/bus/iq151/staper.h index 54bd6823088..65df83e03fd 100644 --- a/src/devices/bus/iq151/staper.h +++ b/src/devices/bus/iq151/staper.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Sandro Ronco -#pragma once +#ifndef MAME_BUS_IQ151_STAPER_H +#define MAME_BUS_IQ151_STAPER_H -#ifndef __IQ151_STAPER_H__ -#define __IQ151_STAPER_H__ +#pragma once #include "iq151.h" #include "machine/i8255.h" @@ -53,6 +53,6 @@ private: // device type definition -extern const device_type IQ151_STAPER; +DECLARE_DEVICE_TYPE(IQ151_STAPER, iq151_staper_device) -#endif /* __IQ151_STAPER_H__ */ +#endif // MAME_BUS_IQ151_STAPER_H diff --git a/src/devices/bus/iq151/video32.cpp b/src/devices/bus/iq151/video32.cpp index b9d4beb92ea..c11e03bafff 100644 --- a/src/devices/bus/iq151/video32.cpp +++ b/src/devices/bus/iq151/video32.cpp @@ -41,7 +41,7 @@ static const gfx_layout iq151_video32_charlayout = // GLOBAL VARIABLES //************************************************************************** -const device_type IQ151_VIDEO32 = device_creator; +DEFINE_DEVICE_TYPE(IQ151_VIDEO32, iq151_video32_device, "iq151_video32", "IQ151 video32") //************************************************************************** // LIVE DEVICE @@ -52,9 +52,11 @@ const device_type IQ151_VIDEO32 = device_creator; //------------------------------------------------- iq151_video32_device::iq151_video32_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, IQ151_VIDEO32, "IQ151 video32", tag, owner, clock, "iq151_video32", __FILE__), - device_gfx_interface(mconfig, *this, nullptr, "^^palette"), - device_iq151cart_interface( mconfig, *this ), m_videoram(nullptr), m_chargen(nullptr) + : device_t(mconfig, IQ151_VIDEO32, tag, owner, clock) + , device_gfx_interface(mconfig, *this, nullptr, "^^palette") + , device_iq151cart_interface(mconfig, *this) + , m_videoram(*this, "videoram") + , m_chargen(*this, "chargen") { } @@ -65,9 +67,6 @@ iq151_video32_device::iq151_video32_device(const machine_config &mconfig, const void iq151_video32_device::device_start() { - m_videoram = (uint8_t*)memregion("videoram")->base(); - m_chargen = (uint8_t*)memregion("chargen")->base(); - set_gfx(0, std::make_unique(palette(), iq151_video32_charlayout, m_chargen, 0, 1, 0)); } diff --git a/src/devices/bus/iq151/video32.h b/src/devices/bus/iq151/video32.h index 8bdd46c671b..9dc32765f6b 100644 --- a/src/devices/bus/iq151/video32.h +++ b/src/devices/bus/iq151/video32.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Sandro Ronco -#pragma once +#ifndef MAME_BUS_IQ151_VIDEO32_H +#define MAME_BUS_IQ151_VIDEO32_H -#ifndef __IQ151_VIDEO32_H__ -#define __IQ151_VIDEO32_H__ +#pragma once #include "iq151.h" @@ -36,12 +36,12 @@ protected: virtual void video_update(bitmap_ind16 &bitmap, const rectangle &cliprect) override; private: - uint8_t * m_videoram; - uint8_t * m_chargen; + required_region_ptr m_videoram; + required_region_ptr m_chargen; }; // device type definition -extern const device_type IQ151_VIDEO32; +DECLARE_DEVICE_TYPE(IQ151_VIDEO32, iq151_video32_device) -#endif /* __IQ151_VIDEO32_H__ */ +#endif // MAME_BUS_IQ151_VIDEO32_H diff --git a/src/devices/bus/iq151/video64.cpp b/src/devices/bus/iq151/video64.cpp index 0ee3b71dd4b..403dc9aa51e 100644 --- a/src/devices/bus/iq151/video64.cpp +++ b/src/devices/bus/iq151/video64.cpp @@ -42,7 +42,7 @@ static const gfx_layout iq151_video64_charlayout = // GLOBAL VARIABLES //************************************************************************** -const device_type IQ151_VIDEO64 = device_creator; +DEFINE_DEVICE_TYPE(IQ151_VIDEO64, iq151_video64_device, "iq151_video64", "IQ151 video64") //************************************************************************** // LIVE DEVICE @@ -53,9 +53,11 @@ const device_type IQ151_VIDEO64 = device_creator; //------------------------------------------------- iq151_video64_device::iq151_video64_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, IQ151_VIDEO64, "IQ151 video64", tag, owner, clock, "iq151_video64", __FILE__), - device_gfx_interface(mconfig, *this, nullptr, "^^palette"), - device_iq151cart_interface( mconfig, *this ), m_videoram(nullptr), m_chargen(nullptr) + : device_t(mconfig, IQ151_VIDEO64, tag, owner, clock) + , device_gfx_interface(mconfig, *this, nullptr, "^^palette") + , device_iq151cart_interface( mconfig, *this ) + , m_videoram(*this, "videoram") + , m_chargen(*this, "chargen") { } @@ -65,10 +67,7 @@ iq151_video64_device::iq151_video64_device(const machine_config &mconfig, const void iq151_video64_device::device_start() { - m_videoram = (uint8_t*)memregion("videoram")->base(); - m_chargen = (uint8_t*)memregion("chargen")->base(); - - set_gfx(0,std::make_unique(palette(), iq151_video64_charlayout, m_chargen, 0, 1, 0)); + set_gfx(0, std::make_unique(palette(), iq151_video64_charlayout, m_chargen, 0, 1, 0)); } //------------------------------------------------- diff --git a/src/devices/bus/iq151/video64.h b/src/devices/bus/iq151/video64.h index 773f71cd7d6..7b152fc8fd6 100644 --- a/src/devices/bus/iq151/video64.h +++ b/src/devices/bus/iq151/video64.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Sandro Ronco -#pragma once +#ifndef MAME_BUS_IQ151_VIDEO64_H +#define MAME_BUS_IQ151_VIDEO64_H -#ifndef __IQ151_VIDEO64_H__ -#define __IQ151_VIDEO64_H__ +#pragma once #include "iq151.h" @@ -37,12 +37,12 @@ protected: virtual void video_update(bitmap_ind16 &bitmap, const rectangle &cliprect) override; private: - uint8_t * m_videoram; - uint8_t * m_chargen; + required_region_ptr m_videoram; + required_region_ptr m_chargen; }; // device type definition -extern const device_type IQ151_VIDEO64; +DECLARE_DEVICE_TYPE(IQ151_VIDEO64, iq151_video64_device) -#endif /* __IQ151_VIDEO64_H__ */ +#endif // MAME_BUS_IQ151_VIDEO64_H diff --git a/src/devices/bus/isa/3c503.cpp b/src/devices/bus/isa/3c503.cpp index 21172ea6ecf..baeed57b6d7 100644 --- a/src/devices/bus/isa/3c503.cpp +++ b/src/devices/bus/isa/3c503.cpp @@ -12,17 +12,17 @@ static MACHINE_CONFIG_FRAGMENT(el2_3c503_config) MCFG_DP8390D_MEM_WRITE_CB(WRITE8(el2_3c503_device, el2_3c503_mem_write)) MACHINE_CONFIG_END -const device_type EL2_3C503 = device_creator; +DEFINE_DEVICE_TYPE(EL2_3C503, el2_3c503_device, "el2_3c503", "3C503 Network Adapter") machine_config_constructor el2_3c503_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME(el2_3c503_config); } el2_3c503_device::el2_3c503_device(const machine_config& mconfig, const char* tag, device_t* owner, uint32_t clock) - : device_t(mconfig, EL2_3C503, "3C503 Network Adapter", tag, owner, clock, "el2_3c503", __FILE__), - device_isa8_card_interface(mconfig, *this), - m_dp8390(*this, "dp8390d"), - m_irq_state(0) + : device_t(mconfig, EL2_3C503, tag, owner, clock) + , device_isa8_card_interface(mconfig, *this) + , m_dp8390(*this, "dp8390d") + , m_irq_state(0) { } diff --git a/src/devices/bus/isa/3c503.h b/src/devices/bus/isa/3c503.h index 06efe90f168..9db5b7c5e70 100644 --- a/src/devices/bus/isa/3c503.h +++ b/src/devices/bus/isa/3c503.h @@ -2,14 +2,15 @@ // copyright-holders:Carl /* 3com Etherlink II 3c503 */ -#ifndef __3C503_H__ -#define __3C503_H__ +#ifndef MAME_BUS_ISA_3C503_H +#define MAME_BUS_ISA_3C503_H + +#pragma once #include "isa.h" #include "machine/dp8390.h" -class el2_3c503_device: public device_t, - public device_isa8_card_interface +class el2_3c503_device : public device_t, public device_isa8_card_interface { public: el2_3c503_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); @@ -58,6 +59,6 @@ private: } m_regs; }; -extern const device_type EL2_3C503; +DECLARE_DEVICE_TYPE(EL2_3C503, el2_3c503_device) -#endif +#endif // MAME_BUS_ISA_3C503_H diff --git a/src/devices/bus/isa/3c505.cpp b/src/devices/bus/isa/3c505.cpp index 3efe0d29213..555aefd9142 100644 --- a/src/devices/bus/isa/3c505.cpp +++ b/src/devices/bus/isa/3c505.cpp @@ -295,30 +295,28 @@ INPUT_PORTS_END IMPLEMENTATION ***************************************************************************/ +constexpr unsigned threecom3c505_device::ETH_BUFFER_SIZE; + // device type definition -const device_type ISA16_3C505 = device_creator ; +DEFINE_DEVICE_TYPE(ISA16_3C505, threecom3c505_device, "3c505", "3Com 3C505 Network Adaptor") //------------------------------------------------- // threecom3c505_device - constructor //------------------------------------------------- threecom3c505_device::threecom3c505_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, ISA16_3C505, "3Com 3C505 Network Adaptor", tag, owner, clock, "3c505", __FILE__), - device_network_interface(mconfig, *this, 10.0f), - device_isa16_card_interface(mconfig, *this), - m_iobase(*this, "IO_BASE"), - m_irqdrq(*this, "IRQ_DRQ"), - m_romopts(*this, "ROM_OPTS"), m_status(0), m_control(0), m_command_index(0), m_command_pending(0), m_wait_for_ack(0), m_wait_for_nak(0), m_rx_data_index(0), m_rx_pending(0), m_tx_data_length(0), m_program_length(0), m_response_length(0), m_response_index(0), m_microcode_version(0), m_microcode_running(0), m_i82586_config(0), irq_state(), m_do_command_timer(nullptr), m_installed(false), m_irq(0), m_drq(0) + : threecom3c505_device(mconfig, ISA16_3C505, tag, owner, clock) { } threecom3c505_device::threecom3c505_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, type, "3Com 3C505 Network Adaptor", tag, owner, clock, "3c505", __FILE__), + : device_t(mconfig, type, tag, owner, clock), device_network_interface(mconfig, *this, 10.0f), device_isa16_card_interface(mconfig, *this), m_iobase(*this, "IO_BASE"), m_irqdrq(*this, "IRQ_DRQ"), - m_romopts(*this, "ROM_OPTS"), m_status(0), m_control(0), m_command_index(0), m_command_pending(0), m_wait_for_ack(0), m_wait_for_nak(0), m_rx_data_index(0), m_rx_pending(0), m_tx_data_length(0), m_program_length(0), m_response_length(0), m_response_index(0), m_microcode_version(0), m_microcode_running(0), m_i82586_config(0), irq_state(), m_do_command_timer(nullptr), m_installed(false), m_irq(0), m_drq(0) + m_romopts(*this, "ROM_OPTS"), + m_status(0), m_control(0), m_command_index(0), m_command_pending(0), m_wait_for_ack(0), m_wait_for_nak(0), m_rx_data_index(0), m_rx_pending(0), m_tx_data_length(0), m_program_length(0), m_response_length(0), m_response_index(0), m_microcode_version(0), m_microcode_running(0), m_i82586_config(0), irq_state(), m_do_command_timer(nullptr), m_installed(false), m_irq(0), m_drq(0) { } diff --git a/src/devices/bus/isa/3c505.h b/src/devices/bus/isa/3c505.h index 13f784aba56..aed8556c0a2 100644 --- a/src/devices/bus/isa/3c505.h +++ b/src/devices/bus/isa/3c505.h @@ -8,21 +8,13 @@ * */ -#pragma once +#ifndef MAME_BUS_ISA_3C505_H +#define MAME_BUS_ISA_3C505_H -#ifndef THREECOM3C505_H_ -#define THREECOM3C505_H_ +#pragma once #include "bus/isa/isa.h" -#define CMD_BUFFER_SIZE 100 -#define ETH_BUFFER_SIZE 2048 -#define PGM_BUFFER_SIZE 0x2000 - -#define ETHERNET_ADDR_SIZE 6 /* size of ethernet addr */ - -#define RX_FIFO_SIZE 32 - // ======================> PCB data structure #pragma pack(1) @@ -123,7 +115,6 @@ class threecom3c505_device: public device_t, public: // construction/destruction threecom3c505_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - threecom3c505_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); // device register I/O virtual DECLARE_READ16_MEMBER(read); @@ -131,13 +122,19 @@ public: static void set_verbose(int on_off); - required_ioport m_iobase; - required_ioport m_irqdrq; - required_ioport m_romopts; - virtual void recv_cb(uint8_t *data, int length) override; protected: + static constexpr unsigned CMD_BUFFER_SIZE = 100; + static constexpr unsigned ETH_BUFFER_SIZE = 2048; + static constexpr unsigned PGM_BUFFER_SIZE = 0x2000; + + static constexpr unsigned ETHERNET_ADDR_SIZE = 6; + + static constexpr unsigned RX_FIFO_SIZE = 32; + + threecom3c505_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual int tx_data(device_t *, const uint8_t *, int); virtual int setfilter(device_t *, int); @@ -148,6 +145,10 @@ protected: virtual void device_start() override; virtual const tiny_rom_entry *device_rom_region() const override; + required_ioport m_iobase; + required_ioport m_irqdrq; + required_ioport m_romopts; + private: // device-level overrides virtual void device_reset() override; @@ -276,6 +277,6 @@ private: }; // device type definition -extern const device_type ISA16_3C505; +DECLARE_DEVICE_TYPE(ISA16_3C505, threecom3c505_device) -#endif /* THREECOM3C505_H_ */ +#endif // MAME_BUS_ISA_3C505_H diff --git a/src/devices/bus/isa/adlib.cpp b/src/devices/bus/isa/adlib.cpp index 4193091f9d2..512d14cdad6 100644 --- a/src/devices/bus/isa/adlib.cpp +++ b/src/devices/bus/isa/adlib.cpp @@ -44,7 +44,7 @@ WRITE8_MEMBER( isa8_adlib_device::ym3812_16_w ) // GLOBAL VARIABLES //************************************************************************** -const device_type ISA8_ADLIB = device_creator; +DEFINE_DEVICE_TYPE(ISA8_ADLIB, isa8_adlib_device, "isa_adlib", "Ad Lib Sound Card") //------------------------------------------------- // machine_config_additions - device-specific @@ -65,9 +65,9 @@ machine_config_constructor isa8_adlib_device::device_mconfig_additions() const //------------------------------------------------- isa8_adlib_device::isa8_adlib_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, ISA8_ADLIB, "Ad Lib Sound Card", tag, owner, clock, "isa_adlib", __FILE__), - device_isa8_card_interface( mconfig, *this ), - m_ym3812(*this, "ym3812") + : device_t(mconfig, ISA8_ADLIB, tag, owner, clock) + , device_isa8_card_interface(mconfig, *this) + , m_ym3812(*this, "ym3812") { } diff --git a/src/devices/bus/isa/adlib.h b/src/devices/bus/isa/adlib.h index 2c871235b76..e91c4f4521d 100644 --- a/src/devices/bus/isa/adlib.h +++ b/src/devices/bus/isa/adlib.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Miodrag Milanovic -#pragma once +#ifndef MAME_BUS_ISA_ADLIB_H +#define MAME_BUS_ISA_ADLIB_H -#ifndef __ISA_ADLIB_H__ -#define __ISA_ADLIB_H__ +#pragma once #include "isa.h" #include "sound/3812intf.h" @@ -38,6 +38,6 @@ private: // device type definition -extern const device_type ISA8_ADLIB; +DECLARE_DEVICE_TYPE(ISA8_ADLIB, isa8_adlib_device) -#endif /* __ISA_ADLIB_H__ */ +#endif // MAME_BUS_ISA_ADLIB_H diff --git a/src/devices/bus/isa/aga.cpp b/src/devices/bus/isa/aga.cpp index ad4269dba8b..5f5430d4d04 100644 --- a/src/devices/bus/isa/aga.cpp +++ b/src/devices/bus/isa/aga.cpp @@ -51,49 +51,36 @@ INPUT_PORTS_END #define CGA_MONITOR (m_cga_config->read()&0x1C) #define CGA_MONITOR_COMPOSITE 0x08 /* Colour composite */ -const device_type ISA8_AGA = device_creator; +DEFINE_DEVICE_TYPE(ISA8_AGA, isa8_aga_device, "aga", "AGA") //------------------------------------------------- // isa8_aga_device - constructor //------------------------------------------------- isa8_aga_device::isa8_aga_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t( mconfig, ISA8_AGA, "AGA", tag, owner, clock, "aga", __FILE__), - device_isa8_card_interface(mconfig, *this), - m_palette(*this, "palette"), - m_mc6845(*this, AGA_MC6845_NAME), - m_cga_config(*this, "cga_config"), - m_update_row_type(-1), - m_mode(), - m_mda_mode_control(0), - m_mda_status(0), - m_mda_chr_gen(nullptr), - m_cga_mode_control(0), - m_cga_color_select(0), - m_cga_status(0), - m_cga_chr_gen(nullptr), - m_framecnt(0), - m_vsync(0), - m_hsync(0), - m_videoram(nullptr) -{ -} - -isa8_aga_device::isa8_aga_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_isa8_card_interface(mconfig, *this), - m_palette(*this, "palette"), - m_mc6845(*this, AGA_MC6845_NAME), - m_cga_config(*this, "cga_config"), - m_update_row_type(-1), m_mode(), - m_mda_mode_control(0), - m_mda_status(0), m_mda_chr_gen(nullptr), - m_cga_mode_control(0), - m_cga_color_select(0), - m_cga_status(0), m_cga_chr_gen(nullptr), - m_framecnt(0), - m_vsync(0), - m_hsync(0), m_videoram(nullptr) + isa8_aga_device(mconfig, ISA8_AGA, tag, owner, clock) +{ +} + +isa8_aga_device::isa8_aga_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), + device_isa8_card_interface(mconfig, *this), + m_palette(*this, "palette"), + m_mc6845(*this, AGA_MC6845_NAME), + m_cga_config(*this, "cga_config"), + m_update_row_type(-1), + m_mode(), + m_mda_mode_control(0), + m_mda_status(0), + m_mda_chr_gen(nullptr), + m_cga_mode_control(0), + m_cga_color_select(0), + m_cga_status(0), + m_cga_chr_gen(nullptr), + m_framecnt(0), + m_vsync(0), + m_hsync(0), + m_videoram(nullptr) { } //------------------------------------------------- @@ -159,17 +146,17 @@ ioport_constructor isa8_aga_device::device_input_ports() const -const device_type ISA8_AGA_PC200 = device_creator; +DEFINE_DEVICE_TYPE(ISA8_AGA_PC200, isa8_aga_pc200_device, "aga_pc200", "AGA PC200") //------------------------------------------------- // isa8_aga_pc200_device - constructor //------------------------------------------------- isa8_aga_pc200_device::isa8_aga_pc200_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - isa8_aga_device( mconfig, ISA8_AGA_PC200, "AGA PC200", tag, owner, clock, "aga_pc200", __FILE__), - m_port8(0), - m_portd(0), - m_porte(0) + isa8_aga_device(mconfig, ISA8_AGA_PC200, tag, owner, clock), + m_port8(0), + m_portd(0), + m_porte(0) { } diff --git a/src/devices/bus/isa/aga.h b/src/devices/bus/isa/aga.h index 371e185bc4c..528fced9bda 100644 --- a/src/devices/bus/isa/aga.h +++ b/src/devices/bus/isa/aga.h @@ -19,8 +19,8 @@ ROM_LOAD("hercules.chr", 0x00000, 0x1000, CRC(7e8c9d76)) */ -#ifndef __ISA_AGA_H__ -#define __ISA_AGA_H__ +#ifndef MAME_BUS_ISA_AGA_H +#define MAME_BUS_ISA_AGA_H #include "isa.h" #include "cga.h" @@ -37,9 +37,6 @@ class isa8_aga_device : public: // construction/destruction isa8_aga_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - isa8_aga_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - // device-level overrides - virtual void device_start() override; // optional information overrides virtual machine_config_constructor device_mconfig_additions() const override; virtual const tiny_rom_entry *device_rom_region() const override; @@ -72,6 +69,11 @@ public: required_device m_palette; required_device m_mc6845; +protected: + isa8_aga_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides + virtual void device_start() override; + required_ioport m_cga_config; int m_update_row_type; @@ -96,7 +98,7 @@ public: }; // device type definition -extern const device_type ISA8_AGA; +DECLARE_DEVICE_TYPE(ISA8_AGA, isa8_aga_device) // ======================> isa8_aga_pc200_device @@ -106,22 +108,24 @@ class isa8_aga_pc200_device : public: // construction/destruction isa8_aga_pc200_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; // optional information overrides virtual const tiny_rom_entry *device_rom_region() const override; - uint8_t m_port8; - uint8_t m_portd; - uint8_t m_porte; - DECLARE_READ8_MEMBER( pc200_videoram_r ); DECLARE_WRITE8_MEMBER( pc200_videoram_w ); DECLARE_WRITE8_MEMBER( pc200_cga_w ); DECLARE_READ8_MEMBER( pc200_cga_r ); + +protected: + // device-level overrides + virtual void device_start() override; + + uint8_t m_port8; + uint8_t m_portd; + uint8_t m_porte; }; // device type definition -extern const device_type ISA8_AGA_PC200; +DECLARE_DEVICE_TYPE(ISA8_AGA_PC200, isa8_aga_pc200_device) -#endif +#endif // MAME_BUS_ISA_AGA_H diff --git a/src/devices/bus/isa/aha1542.cpp b/src/devices/bus/isa/aha1542.cpp index 0ca3b9ca80e..98ae5edb735 100644 --- a/src/devices/bus/isa/aha1542.cpp +++ b/src/devices/bus/isa/aha1542.cpp @@ -134,7 +134,7 @@ #define CMD_EXTBIOS 0x28 // return extended BIOS information #define CMD_MBENABLE 0x29 // set mailbox interface enable -const device_type AHA1542 = device_creator; +DEFINE_DEVICE_TYPE(AHA1542, aha1542_device, "aha1542", "AHA1542 SCSI Controller") #define Z84C0010_TAG "u5" @@ -185,7 +185,7 @@ machine_config_constructor aha1542_device::device_mconfig_additions() const } aha1542_device::aha1542_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, AHA1542, "AHA1542 SCSI Controller", tag, owner, clock, "aha1542", __FILE__ ), + device_t(mconfig, AHA1542, tag, owner, clock), device_isa16_card_interface(mconfig, *this) { } diff --git a/src/devices/bus/isa/aha1542.h b/src/devices/bus/isa/aha1542.h index 703bd48f28b..2b9fd179054 100644 --- a/src/devices/bus/isa/aha1542.h +++ b/src/devices/bus/isa/aha1542.h @@ -10,10 +10,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_AHA1542_H +#define MAME_BUS_AHA1542_H -#ifndef __AHA1542__ -#define __AHA1542__ +#pragma once #include "isa.h" @@ -46,7 +46,6 @@ protected: }; // device type definition +DECLARE_DEVICE_TYPE(AHA1542, aha1542_device) -extern const device_type AHA1542; - -#endif +#endif // MAME_BUS_AHA1542_H diff --git a/src/devices/bus/isa/cga.cpp b/src/devices/bus/isa/cga.cpp index f44cdfb5900..c20fc47f403 100644 --- a/src/devices/bus/isa/cga.cpp +++ b/src/devices/bus/isa/cga.cpp @@ -273,7 +273,7 @@ ROM_END // GLOBAL VARIABLES //************************************************************************** -const device_type ISA8_CGA = device_creator; +DEFINE_DEVICE_TYPE(ISA8_CGA, isa8_cga_device, "cga", "IBM Color/Graphics Monitor Adapter") //------------------------------------------------- // machine_config_additions - device-specific @@ -305,29 +305,18 @@ const tiny_rom_entry *isa8_cga_device::device_rom_region() const //------------------------------------------------- isa8_cga_device::isa8_cga_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, ISA8_CGA, "IBM Color/Graphics Monitor Adapter", tag, owner, clock, "cga", __FILE__), - device_isa8_card_interface(mconfig, *this), - m_cga_config(*this, "cga_config"), m_framecnt(0), m_mode_control(0), m_color_select(0), - m_update_row_type(-1), m_y(0), m_chr_gen_base(nullptr), m_chr_gen(nullptr), m_vsync(0), m_hsync(0), - m_vram_size( 0x4000 ), m_plantronics(0), - m_palette(*this, "palette"), - m_screen(*this, "screen") + isa8_cga_device(mconfig, ISA8_CGA, tag, owner, clock) { - m_chr_gen_offset[0] = m_chr_gen_offset[2] = 0x1800; - m_chr_gen_offset[1] = m_chr_gen_offset[3] = 0x1000; - m_font_selection_mask = 0x01; - m_start_offset = 0; - m_superimpose = false; } -isa8_cga_device::isa8_cga_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_isa8_card_interface(mconfig, *this), - m_cga_config(*this, "cga_config"), m_framecnt(0), m_mode_control(0), m_color_select(0), - m_update_row_type(-1), m_y(0), m_chr_gen_base(nullptr), m_chr_gen(nullptr), m_vsync(0), m_hsync(0), - m_vram_size( 0x4000 ), m_plantronics(0), - m_palette(*this, "palette"), - m_screen(*this, "screen") +isa8_cga_device::isa8_cga_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), + device_isa8_card_interface(mconfig, *this), + m_cga_config(*this, "cga_config"), m_framecnt(0), m_mode_control(0), m_color_select(0), + m_update_row_type(-1), m_y(0), m_chr_gen_base(nullptr), m_chr_gen(nullptr), m_vsync(0), m_hsync(0), + m_vram_size( 0x4000 ), m_plantronics(0), + m_palette(*this, "palette"), + m_screen(*this, "screen") { m_chr_gen_offset[0] = m_chr_gen_offset[2] = 0x1800; m_chr_gen_offset[1] = m_chr_gen_offset[3] = 0x1000; @@ -439,14 +428,14 @@ uint32_t isa8_cga_device::screen_update(screen_device &screen, bitmap_rgb32 &bit } -const device_type ISA8_CGA_POISK2 = device_creator; +DEFINE_DEVICE_TYPE(ISA8_CGA_POISK2, isa8_cga_poisk2_device, "cga_poisk2", "ISA8_CGA_POISK2") //------------------------------------------------- // isa8_cga_poisk2_device - constructor //------------------------------------------------- isa8_cga_poisk2_device::isa8_cga_poisk2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - isa8_cga_device( mconfig, ISA8_CGA_POISK2, "ISA8_CGA_POISK2", tag, owner, clock, "cga_poisk2", __FILE__) + isa8_cga_device(mconfig, ISA8_CGA_POISK2, tag, owner, clock) { m_chr_gen_offset[0] = 0x0000; m_chr_gen_offset[1] = 0x0800; @@ -468,20 +457,19 @@ const tiny_rom_entry *isa8_cga_poisk2_device::device_rom_region() const /* for superimposing CGA over a different source video (i.e. tetriskr) */ -const device_type ISA8_CGA_SUPERIMPOSE = device_creator; +DEFINE_DEVICE_TYPE(ISA8_CGA_SUPERIMPOSE, isa8_cga_superimpose_device, "cga_superimpose", "ISA8_CGA_SUPERIMPOSE") //------------------------------------------------- // isa8_cga_superimpose_device - constructor //------------------------------------------------- isa8_cga_superimpose_device::isa8_cga_superimpose_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - isa8_cga_device( mconfig, ISA8_CGA_SUPERIMPOSE, "ISA8_CGA_SUPERIMPOSE", tag, owner, clock, "cga_superimpose", __FILE__) + isa8_cga_superimpose_device(mconfig, ISA8_CGA_SUPERIMPOSE, tag, owner, clock) { - m_superimpose = true; } -isa8_cga_superimpose_device::isa8_cga_superimpose_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - isa8_cga_device( mconfig, type, name, tag, owner, clock, shortname, source) +isa8_cga_superimpose_device::isa8_cga_superimpose_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + isa8_cga_device(mconfig, type, tag, owner, clock) { m_superimpose = true; } @@ -1538,7 +1526,7 @@ WRITE8_MEMBER( isa8_cga_pc1512_device::vram_w ) } -const device_type ISA8_CGA_PC1512 = device_creator; +DEFINE_DEVICE_TYPE(ISA8_CGA_PC1512, isa8_cga_pc1512_device, "cga_pc1512", "ISA8_CGA_PC1512") const offs_t isa8_cga_pc1512_device::vram_offset[4]= { 0x0000, 0x4000, 0x8000, 0xC000 }; const uint8_t isa8_cga_pc1512_device::mc6845_writeonce_register[31] = @@ -1551,7 +1539,7 @@ const uint8_t isa8_cga_pc1512_device::mc6845_writeonce_register[31] = //------------------------------------------------- isa8_cga_pc1512_device::isa8_cga_pc1512_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - isa8_cga_device( mconfig, ISA8_CGA_PC1512, "ISA8_CGA_PC1512", tag, owner, clock, "cga_pc1512", __FILE__), m_write(0), m_read(0), m_mc6845_address(0) + isa8_cga_device(mconfig, ISA8_CGA_PC1512, tag, owner, clock), m_write(0), m_read(0), m_mc6845_address(0) { m_vram_size = 0x10000; m_chr_gen_offset[0] = 0x0000; @@ -1673,7 +1661,7 @@ READ8_MEMBER( isa8_wyse700_device::io_read ) } -const device_type ISA8_WYSE700 = device_creator; +DEFINE_DEVICE_TYPE(ISA8_WYSE700, isa8_wyse700_device, "wyse700", "Wyse 700") //------------------------------------------------- @@ -1681,7 +1669,7 @@ const device_type ISA8_WYSE700 = device_creator; //------------------------------------------------- isa8_wyse700_device::isa8_wyse700_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - isa8_cga_device( mconfig, ISA8_WYSE700, "Wyse 700", tag, owner, clock, "wyse700", __FILE__), m_bank_offset(0), m_bank_base(0), m_control(0) + isa8_cga_device(mconfig, ISA8_WYSE700, tag, owner, clock), m_bank_offset(0), m_bank_base(0), m_control(0) { m_vram_size = 0x20000; m_start_offset = 0x18000; @@ -1762,14 +1750,14 @@ uint32_t isa8_wyse700_device::screen_update(screen_device &screen, bitmap_rgb32 } -const device_type ISA8_EC1841_0002 = device_creator; +DEFINE_DEVICE_TYPE(ISA8_EC1841_0002, isa8_ec1841_0002_device, "ec1841_0002", "EC 1841.0002 (CGA)") //------------------------------------------------- // isa8_ec1841_0002_device - constructor //------------------------------------------------- isa8_ec1841_0002_device::isa8_ec1841_0002_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - isa8_cga_device( mconfig, ISA8_EC1841_0002, "EC 1841.0002 (CGA)", tag, owner, clock, "ec1841_0002", __FILE__), m_p3df(0) + isa8_cga_device(mconfig, ISA8_EC1841_0002, tag, owner, clock), m_p3df(0) { } @@ -1848,14 +1836,14 @@ READ8_MEMBER( isa8_ec1841_0002_device::io_read ) return data; } -const device_type ISA8_CGA_MC1502 = device_creator; +DEFINE_DEVICE_TYPE(ISA8_CGA_MC1502, isa8_cga_mc1502_device, "cga_mc1502", "MC1502 CGA") //------------------------------------------------- // isa8_cga_mc1502_device - constructor //------------------------------------------------- isa8_cga_mc1502_device::isa8_cga_mc1502_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - isa8_cga_device( mconfig, ISA8_CGA_MC1502, "MC1502 CGA", tag, owner, clock, "cga_mc1502", __FILE__) + isa8_cga_device(mconfig, ISA8_CGA_MC1502, tag, owner, clock) { m_vram_size = 0x8000; m_chr_gen_offset[0] = 0x0000; @@ -1877,14 +1865,14 @@ const tiny_rom_entry *isa8_cga_iskr1031_device::device_rom_region() const return ROM_NAME( cga_iskr1031 ); } -const device_type ISA8_CGA_ISKR1031 = device_creator; +DEFINE_DEVICE_TYPE(ISA8_CGA_ISKR1031, isa8_cga_iskr1031_device, "cga_iskr1031", "Iskra-1031 CGA") //------------------------------------------------- // isa8_cga_iskr1031_device - constructor //------------------------------------------------- isa8_cga_iskr1031_device::isa8_cga_iskr1031_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - isa8_cga_device( mconfig, ISA8_CGA_ISKR1031, "Iskra-1031 CGA", tag, owner, clock, "cga_iskr1031", __FILE__) + isa8_cga_device(mconfig, ISA8_CGA_ISKR1031, tag, owner, clock) { } @@ -1902,14 +1890,14 @@ const tiny_rom_entry *isa8_cga_iskr1030m_device::device_rom_region() const return ROM_NAME( cga_iskr1030m ); } -const device_type ISA8_CGA_ISKR1030M = device_creator; +DEFINE_DEVICE_TYPE(ISA8_CGA_ISKR1030M, isa8_cga_iskr1030m_device, "cga_iskr1030m", "Iskra-1030M CGA") //------------------------------------------------- // isa8_cga_iskr1030m_device - constructor //------------------------------------------------- isa8_cga_iskr1030m_device::isa8_cga_iskr1030m_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - isa8_cga_device( mconfig, ISA8_CGA_ISKR1030M, "Iskra-1030M CGA", tag, owner, clock, "cga_iskr1030m", __FILE__) + isa8_cga_device(mconfig, ISA8_CGA_ISKR1030M, tag, owner, clock) { } @@ -1926,7 +1914,7 @@ const tiny_rom_entry *isa8_cga_mc1502_device::device_rom_region() const return ROM_NAME( mc1502 ); } -const device_type ISA8_CGA_M24 = device_creator; +DEFINE_DEVICE_TYPE(ISA8_CGA_M24, isa8_cga_m24_device, "cga_m24", "Olivetti M24 CGA") static MACHINE_CONFIG_DERIVED( m24, cga ) MCFG_DEVICE_MODIFY(CGA_SCREEN_NAME) @@ -1940,7 +1928,7 @@ machine_config_constructor isa8_cga_m24_device::device_mconfig_additions() const return MACHINE_CONFIG_NAME( m24 ); } isa8_cga_m24_device::isa8_cga_m24_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - isa8_cga_device( mconfig, ISA8_CGA_M24, "Olivetti M24 CGA", tag, owner, clock, "cga_m24", __FILE__), m_mode2(0), m_index(0) + isa8_cga_device(mconfig, ISA8_CGA_M24, tag, owner, clock), m_mode2(0), m_index(0) { m_vram_size = 0x8000; } diff --git a/src/devices/bus/isa/cga.h b/src/devices/bus/isa/cga.h index 2b34695cc83..a8f8b737c93 100644 --- a/src/devices/bus/isa/cga.h +++ b/src/devices/bus/isa/cga.h @@ -1,7 +1,7 @@ // license:BSD-3-Clause // copyright-holders:Wilbert Pol -#ifndef MAME_DEVICE_BUS_ISA_CGA_H -#define MAME_DEVICE_BUS_ISA_CGA_H +#ifndef MAME_BUS_ISA_CGA_H +#define MAME_BUS_ISA_CGA_H #pragma once @@ -28,7 +28,6 @@ class isa8_cga_device : public: // construction/destruction isa8_cga_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - isa8_cga_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); virtual MC6845_UPDATE_ROW( crtc_update_row ); MC6845_UPDATE_ROW( cga_text_inten_update_row ); @@ -48,6 +47,8 @@ public: virtual const tiny_rom_entry *device_rom_region() const override; protected: + isa8_cga_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + required_ioport m_cga_config; // device-level overrides @@ -88,7 +89,7 @@ public: }; // device type definition -extern const device_type ISA8_CGA; +DECLARE_DEVICE_TYPE(ISA8_CGA, isa8_cga_device) // ======================> isa8_cga_superimpose_device @@ -99,11 +100,12 @@ class isa8_cga_superimpose_device : public: // construction/destruction isa8_cga_superimpose_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - isa8_cga_superimpose_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); +protected: + isa8_cga_superimpose_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); }; // device type definition -extern const device_type ISA8_CGA_SUPERIMPOSE; +DECLARE_DEVICE_TYPE(ISA8_CGA_SUPERIMPOSE, isa8_cga_superimpose_device) // ======================> isa8_poisk2_device @@ -119,7 +121,7 @@ public: }; // device type definition -extern const device_type ISA8_CGA_POISK2; +DECLARE_DEVICE_TYPE(ISA8_CGA_POISK2, isa8_cga_poisk2_device) // ======================> isa8_pc1512_device @@ -162,7 +164,7 @@ public: }; // device type definition -extern const device_type ISA8_CGA_PC1512; +DECLARE_DEVICE_TYPE(ISA8_CGA_PC1512, isa8_cga_pc1512_device) // ======================> isa8_wyse700_device @@ -192,7 +194,7 @@ public: }; // device type definition -extern const device_type ISA8_WYSE700; +DECLARE_DEVICE_TYPE(ISA8_WYSE700, isa8_wyse700_device) // ======================> isa8_ec1841_0002_device @@ -218,7 +220,7 @@ public: }; // device type definition -extern const device_type ISA8_EC1841_0002; +DECLARE_DEVICE_TYPE(ISA8_EC1841_0002, isa8_ec1841_0002_device) // ======================> isa8_cga_iskr1031_device @@ -232,7 +234,7 @@ public: }; // device type definition -extern const device_type ISA8_CGA_ISKR1030M; +DECLARE_DEVICE_TYPE(ISA8_CGA_ISKR1030M, isa8_cga_iskr1030m_device) // ======================> isa8_cga_iskr1031_device @@ -246,7 +248,7 @@ public: }; // device type definition -extern const device_type ISA8_CGA_ISKR1031; +DECLARE_DEVICE_TYPE(ISA8_CGA_ISKR1031, isa8_cga_iskr1031_device) // ======================> isa8_cga_mc1502_device @@ -261,7 +263,7 @@ public: }; // device type definition -extern const device_type ISA8_CGA_MC1502; +DECLARE_DEVICE_TYPE(ISA8_CGA_MC1502, isa8_cga_mc1502_device) class isa8_cga_m24_device : @@ -285,6 +287,6 @@ private: }; // device type definition -extern const device_type ISA8_CGA_M24; +DECLARE_DEVICE_TYPE(ISA8_CGA_M24, isa8_cga_m24) -#endif // MAME_DEVICE_BUS_ISA_CGA_H +#endif // MAME_BUS_ISA_CGA_H diff --git a/src/devices/bus/isa/com.cpp b/src/devices/bus/isa/com.cpp index bce1eab2120..dd532542cf7 100644 --- a/src/devices/bus/isa/com.cpp +++ b/src/devices/bus/isa/com.cpp @@ -76,7 +76,7 @@ MACHINE_CONFIG_END // GLOBAL VARIABLES //************************************************************************** -const device_type ISA8_COM = device_creator; +DEFINE_DEVICE_TYPE(ISA8_COM, isa8_com_device, "isa_com", "Communications Adapter PC/XT") //------------------------------------------------- // machine_config_additions - device-specific @@ -97,14 +97,13 @@ machine_config_constructor isa8_com_device::device_mconfig_additions() const //------------------------------------------------- isa8_com_device::isa8_com_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, ISA8_COM, "Communications Adapter PC/XT", tag, owner, clock, "isa_com", __FILE__), - device_isa8_card_interface(mconfig, *this) + isa8_com_device(mconfig, ISA8_COM, tag, owner, clock) { } -isa8_com_device::isa8_com_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_isa8_card_interface(mconfig, *this) +isa8_com_device::isa8_com_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), + device_isa8_card_interface(mconfig, *this) { } @@ -173,7 +172,7 @@ MACHINE_CONFIG_END // GLOBAL VARIABLES //************************************************************************** -const device_type ISA8_COM_AT = device_creator; +DEFINE_DEVICE_TYPE(ISA8_COM_AT, isa8_com_at_device, "isa_com_at", "Communications Adapter") //------------------------------------------------- // machine_config_additions - device-specific @@ -190,6 +189,6 @@ machine_config_constructor isa8_com_at_device::device_mconfig_additions() const //------------------------------------------------- isa8_com_at_device::isa8_com_at_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - isa8_com_device(mconfig, ISA8_COM_AT, "Communications Adapter", tag, owner, clock, "isa_com_at", __FILE__) + isa8_com_device(mconfig, ISA8_COM_AT, tag, owner, clock) { } diff --git a/src/devices/bus/isa/com.h b/src/devices/bus/isa/com.h index ef503bd770d..b0230fbc405 100644 --- a/src/devices/bus/isa/com.h +++ b/src/devices/bus/isa/com.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Carl,Miodrag Milanovic -#pragma once +#ifndef MAME_BUS_ISA_COM_H +#define MAME_BUS_ISA_COM_H -#ifndef __ISA_COM_H__ -#define __ISA_COM_H__ +#pragma once #include "isa.h" @@ -19,23 +19,25 @@ class isa8_com_device : public device_isa8_card_interface { public: - // construction/destruction - isa8_com_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - isa8_com_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); + // construction/destruction + isa8_com_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual machine_config_constructor device_mconfig_additions() const override; DECLARE_WRITE_LINE_MEMBER(pc_com_interrupt_1) { m_isa->irq4_w(state); } DECLARE_WRITE_LINE_MEMBER(pc_com_interrupt_2) { m_isa->irq3_w(state); } + protected: - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; + isa8_com_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; }; // device type definition -extern const device_type ISA8_COM; +DECLARE_DEVICE_TYPE(ISA8_COM, isa8_com_device) // ======================> isa8_com_at_device @@ -43,8 +45,8 @@ class isa8_com_at_device : public isa8_com_device { public: - // construction/destruction - isa8_com_at_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + // construction/destruction + isa8_com_at_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual machine_config_constructor device_mconfig_additions() const override; @@ -52,6 +54,6 @@ public: // device type definition -extern const device_type ISA8_COM_AT; +DECLARE_DEVICE_TYPE(ISA8_COM_AT, isa8_com_at_device) -#endif /* __ISA_COM_H__ */ +#endif // MAME_BUS_ISA_COM_H diff --git a/src/devices/bus/isa/dectalk.cpp b/src/devices/bus/isa/dectalk.cpp index 5995db6b5a2..bc1a767c8a3 100644 --- a/src/devices/bus/isa/dectalk.cpp +++ b/src/devices/bus/isa/dectalk.cpp @@ -7,10 +7,10 @@ #include "speaker.h" -const device_type ISA8_DECTALK = device_creator; +DEFINE_DEVICE_TYPE(ISA8_DECTALK, dectalk_isa_device, "dectalk_isa", "DECTalk-PC") dectalk_isa_device::dectalk_isa_device(const machine_config& mconfig, const char* tag, device_t* owner, uint32_t clock) : - device_t(mconfig, ISA8_DECTALK, "DECTalk-PC", tag, owner, clock, "dectalk_isa", __FILE__), + device_t(mconfig, ISA8_DECTALK, tag, owner, clock), device_isa8_card_interface(mconfig, *this), m_cmd(0), m_stat(0), diff --git a/src/devices/bus/isa/dectalk.h b/src/devices/bus/isa/dectalk.h index cace3a9d488..eaab353afb7 100644 --- a/src/devices/bus/isa/dectalk.h +++ b/src/devices/bus/isa/dectalk.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Carl -#ifndef ISA_DECTALK_H_ -#define ISA_DECTALK_H_ +#ifndef MAME_BUS_ISA_DECTALK_H +#define MAME_BUS_ISA_DECTALK_H + +#pragma once #include "isa.h" #include "sound/dac.h" @@ -50,6 +52,6 @@ private: required_device m_dsp; }; -extern const device_type ISA8_DECTALK; +DECLARE_DEVICE_TYPE(ISA8_DECTALK, dectalk_isa_device) -#endif /* ISA_DECTALK_H_ */ +#endif // MAME_BUS_ISA_DECTALK_H diff --git a/src/devices/bus/isa/ega.cpp b/src/devices/bus/isa/ega.cpp index 9891b37bf6e..440e6a7be05 100644 --- a/src/devices/bus/isa/ega.cpp +++ b/src/devices/bus/isa/ega.cpp @@ -538,7 +538,7 @@ INPUT_PORTS_END // GLOBAL VARIABLES //************************************************************************** -const device_type ISA8_EGA = device_creator; +DEFINE_DEVICE_TYPE(ISA8_EGA, isa8_ega_device, "ega", "IBM Enhanced Graphics Adapter") //------------------------------------------------- @@ -574,18 +574,16 @@ ioport_constructor isa8_ega_device::device_input_ports() const //------------------------------------------------- isa8_ega_device::isa8_ega_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, ISA8_EGA, "IBM Enhanced Graphics Adapter", tag, owner, clock, "ega", __FILE__), - device_isa8_card_interface(mconfig, *this), m_crtc_ega(nullptr), m_vram(nullptr), m_videoram(nullptr), m_charA(nullptr), m_charB(nullptr), - m_misc_output(0), m_feature_control(0), m_frame_cnt(0), m_hsync(0), m_vsync(0), m_vblank(0), m_display_enable(0), m_video_mode(0), - m_palette(*this, "palette") + isa8_ega_device(mconfig, ISA8_EGA, tag, owner, clock) { } -isa8_ega_device::isa8_ega_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_isa8_card_interface(mconfig, *this), m_crtc_ega(nullptr), m_vram(nullptr), m_videoram(nullptr), m_charA(nullptr), m_charB(nullptr), - m_misc_output(0), m_feature_control(0), m_frame_cnt(0), m_hsync(0), m_vsync(0), m_vblank(0), m_display_enable(0), m_video_mode(0), - m_palette(*this, "palette") +isa8_ega_device::isa8_ega_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), + device_isa8_card_interface(mconfig, *this), + m_crtc_ega(nullptr), m_vram(nullptr), m_videoram(nullptr), m_charA(nullptr), m_charB(nullptr), + m_misc_output(0), m_feature_control(0), m_frame_cnt(0), m_hsync(0), m_vsync(0), m_vblank(0), m_display_enable(0), m_video_mode(0), + m_palette(*this, "palette") { } diff --git a/src/devices/bus/isa/ega.h b/src/devices/bus/isa/ega.h index e292c5d5e4f..38310580de4 100644 --- a/src/devices/bus/isa/ega.h +++ b/src/devices/bus/isa/ega.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Wilbert Pol -#pragma once +#ifndef MAME_BUS_ISA_EGA_H +#define MAME_BUS_ISA_EGA_H -#ifndef __ISA_EGA_H__ -#define __ISA_EGA_H__ +#pragma once #include "isa.h" #include "video/crtc_ega.h" @@ -19,92 +19,93 @@ class isa8_ega_device : public device_isa8_card_interface { public: - // construction/destruction - isa8_ega_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - isa8_ega_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; - virtual const tiny_rom_entry *device_rom_region() const override; - virtual ioport_constructor device_input_ports() const override; - - DECLARE_READ8_MEMBER(read); - DECLARE_WRITE8_MEMBER(write); - DECLARE_READ8_MEMBER(pc_ega8_3b0_r); - DECLARE_WRITE8_MEMBER(pc_ega8_3b0_w); - DECLARE_READ8_MEMBER(pc_ega8_3c0_r); - DECLARE_WRITE8_MEMBER(pc_ega8_3c0_w); - DECLARE_READ8_MEMBER(pc_ega8_3d0_r); - DECLARE_WRITE8_MEMBER(pc_ega8_3d0_w); - DECLARE_WRITE_LINE_MEMBER(de_changed); - DECLARE_WRITE_LINE_MEMBER(hsync_changed); - DECLARE_WRITE_LINE_MEMBER(vsync_changed); - DECLARE_WRITE_LINE_MEMBER(vblank_changed); - - CRTC_EGA_ROW_UPDATE(ega_update_row); - CRTC_EGA_ROW_UPDATE(pc_ega_graphics); - CRTC_EGA_ROW_UPDATE(pc_ega_text); + // construction/destruction + isa8_ega_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + + // optional information overrides + virtual machine_config_constructor device_mconfig_additions() const override; + virtual const tiny_rom_entry *device_rom_region() const override; + virtual ioport_constructor device_input_ports() const override; + + DECLARE_READ8_MEMBER(read); + DECLARE_WRITE8_MEMBER(write); + DECLARE_READ8_MEMBER(pc_ega8_3b0_r); + DECLARE_WRITE8_MEMBER(pc_ega8_3b0_w); + DECLARE_READ8_MEMBER(pc_ega8_3c0_r); + DECLARE_WRITE8_MEMBER(pc_ega8_3c0_w); + DECLARE_READ8_MEMBER(pc_ega8_3d0_r); + DECLARE_WRITE8_MEMBER(pc_ega8_3d0_w); + DECLARE_WRITE_LINE_MEMBER(de_changed); + DECLARE_WRITE_LINE_MEMBER(hsync_changed); + DECLARE_WRITE_LINE_MEMBER(vsync_changed); + DECLARE_WRITE_LINE_MEMBER(vblank_changed); + + CRTC_EGA_ROW_UPDATE(ega_update_row); + CRTC_EGA_ROW_UPDATE(pc_ega_graphics); + CRTC_EGA_ROW_UPDATE(pc_ega_text); protected: - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; + isa8_ega_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; - uint8_t alu_op( uint8_t data, uint8_t latch_data ); + uint8_t alu_op( uint8_t data, uint8_t latch_data ); public: - crtc_ega_device *m_crtc_ega; - - void install_banks(); - void change_mode(); - DECLARE_WRITE8_MEMBER(pc_ega8_3X0_w); - DECLARE_READ8_MEMBER(pc_ega8_3X0_r); - - /* Video memory and related variables */ - memory_region *m_vram; - uint8_t *m_plane[4]; - uint8_t m_read_latch[4]; - uint8_t *m_videoram; - uint8_t *m_charA; - uint8_t *m_charB; - - /* Registers */ - uint8_t m_misc_output; - uint8_t m_feature_control; - - /* Attribute registers AR00 - AR14 - */ - struct { - uint8_t index; - uint8_t data[32]; - uint8_t index_write; - } m_attribute; - - /* Sequencer registers SR00 - SR04 - */ - struct { - uint8_t index; - uint8_t data[8]; - } m_sequencer; - - /* Graphics controller registers GR00 - GR08 - */ - struct { - uint8_t index; - uint8_t data[16]; - } m_graphics_controller; - - uint8_t m_frame_cnt; - uint8_t m_hsync; - uint8_t m_vsync; - uint8_t m_vblank; - uint8_t m_display_enable; - int m_video_mode; - required_device m_palette; + crtc_ega_device *m_crtc_ega; + + void install_banks(); + void change_mode(); + DECLARE_WRITE8_MEMBER(pc_ega8_3X0_w); + DECLARE_READ8_MEMBER(pc_ega8_3X0_r); + + /* Video memory and related variables */ + memory_region *m_vram; + uint8_t *m_plane[4]; + uint8_t m_read_latch[4]; + uint8_t *m_videoram; + uint8_t *m_charA; + uint8_t *m_charB; + + /* Registers */ + uint8_t m_misc_output; + uint8_t m_feature_control; + + /* Attribute registers AR00 - AR14 + */ + struct { + uint8_t index; + uint8_t data[32]; + uint8_t index_write; + } m_attribute; + + /* Sequencer registers SR00 - SR04 + */ + struct { + uint8_t index; + uint8_t data[8]; + } m_sequencer; + + /* Graphics controller registers GR00 - GR08 + */ + struct { + uint8_t index; + uint8_t data[16]; + } m_graphics_controller; + + uint8_t m_frame_cnt; + uint8_t m_hsync; + uint8_t m_vsync; + uint8_t m_vblank; + uint8_t m_display_enable; + int m_video_mode; + required_device m_palette; }; // device type definition -extern const device_type ISA8_EGA; +DECLARE_DEVICE_TYPE(ISA8_EGA, isa8_ega_device) -#endif /* __ISA_EGA_H__ */ +#endif // MAME_BUS_ISA_EGA_H diff --git a/src/devices/bus/isa/fdc.cpp b/src/devices/bus/isa/fdc.cpp index 72495c68857..d5516ffad47 100644 --- a/src/devices/bus/isa/fdc.cpp +++ b/src/devices/bus/isa/fdc.cpp @@ -72,8 +72,8 @@ static MACHINE_CONFIG_FRAGMENT( cfg_superio ) MACHINE_CONFIG_END -isa8_fdc_device::isa8_fdc_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), +isa8_fdc_device::isa8_fdc_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), device_isa8_card_interface(mconfig, *this), fdc(*this, "fdc") { @@ -115,7 +115,7 @@ void isa8_fdc_device::eop_w(int state) fdc->tc_w(state == ASSERT_LINE); } -isa8_fdc_xt_device::isa8_fdc_xt_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : isa8_fdc_device(mconfig, ISA8_FDC_XT, "ISA 8bits XT FDC hookup", tag, owner, clock, "isa8_fdc_xt", __FILE__) +isa8_fdc_xt_device::isa8_fdc_xt_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : isa8_fdc_device(mconfig, ISA8_FDC_XT, tag, owner, clock) { } @@ -124,7 +124,7 @@ machine_config_constructor isa8_fdc_xt_device::device_mconfig_additions() const return MACHINE_CONFIG_NAME(cfg_xt); } -isa8_fdc_at_device::isa8_fdc_at_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : isa8_fdc_device(mconfig, ISA8_FDC_AT, "ISA 8bits AT FDC hookup", tag, owner, clock, "isa8_fdc_at", __FILE__) +isa8_fdc_at_device::isa8_fdc_at_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : isa8_fdc_device(mconfig, ISA8_FDC_AT, tag, owner, clock) { } @@ -133,7 +133,7 @@ machine_config_constructor isa8_fdc_at_device::device_mconfig_additions() const return MACHINE_CONFIG_NAME(cfg_at); } -isa8_fdc_smc_device::isa8_fdc_smc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : isa8_fdc_device(mconfig, ISA8_FDC_SMC, "ISA 8bits SMC FDC hookup", tag, owner, clock, "isa8_fdc_smc", __FILE__) +isa8_fdc_smc_device::isa8_fdc_smc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : isa8_fdc_device(mconfig, ISA8_FDC_SMC, tag, owner, clock) { } @@ -142,7 +142,7 @@ machine_config_constructor isa8_fdc_smc_device::device_mconfig_additions() const return MACHINE_CONFIG_NAME(cfg_smc); } -isa8_fdc_ps2_device::isa8_fdc_ps2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : isa8_fdc_device(mconfig, ISA8_FDC_PS2, "ISA 8bits PS/2 FDC hookup", tag, owner, clock, "isa8_fdc_ps2", __FILE__) +isa8_fdc_ps2_device::isa8_fdc_ps2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : isa8_fdc_device(mconfig, ISA8_FDC_PS2, tag, owner, clock) { } @@ -151,7 +151,7 @@ machine_config_constructor isa8_fdc_ps2_device::device_mconfig_additions() const return MACHINE_CONFIG_NAME(cfg_ps2); } -isa8_fdc_superio_device::isa8_fdc_superio_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : isa8_fdc_device(mconfig, ISA8_FDC_SUPERIO, "ISA 8bits SUPERIO FDC hookup", tag, owner, clock, "isa8_fdc_superio", __FILE__) +isa8_fdc_superio_device::isa8_fdc_superio_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : isa8_fdc_device(mconfig, ISA8_FDC_SUPERIO, tag, owner, clock) { } @@ -160,8 +160,8 @@ machine_config_constructor isa8_fdc_superio_device::device_mconfig_additions() c return MACHINE_CONFIG_NAME(cfg_superio); } -const device_type ISA8_FDC_XT = device_creator; -const device_type ISA8_FDC_AT = device_creator; -const device_type ISA8_FDC_SMC = device_creator; -const device_type ISA8_FDC_PS2 = device_creator; -const device_type ISA8_FDC_SUPERIO = device_creator; +DEFINE_DEVICE_TYPE(ISA8_FDC_XT, isa8_fdc_xt_device, "isa8_fdc_xt", "ISA 8bits XT FDC hookup") +DEFINE_DEVICE_TYPE(ISA8_FDC_AT, isa8_fdc_at_device, "isa8_fdc_at", "ISA 8bits AT FDC hookup") +DEFINE_DEVICE_TYPE(ISA8_FDC_SMC, isa8_fdc_smc_device, "isa8_fdc_smc", "ISA 8bits SMC FDC hookup") +DEFINE_DEVICE_TYPE(ISA8_FDC_PS2, isa8_fdc_ps2_device, "isa8_fdc_ps2", "ISA 8bits PS/2 FDC hookup") +DEFINE_DEVICE_TYPE(ISA8_FDC_SUPERIO, isa8_fdc_superio_device, "isa8_fdc_superio", "ISA 8bits SUPERIO FDC hookup") diff --git a/src/devices/bus/isa/fdc.h b/src/devices/bus/isa/fdc.h index bdcebdce2bd..0d9227a04e4 100644 --- a/src/devices/bus/isa/fdc.h +++ b/src/devices/bus/isa/fdc.h @@ -5,10 +5,10 @@ ISA 8 bit Floppy Disk Controller **********************************************************************/ -#pragma once +#ifndef MAME_BUS_ISA_FDC_H +#define MAME_BUS_ISA_FDC_H -#ifndef ISA_FDC_H -#define ISA_FDC_H +#pragma once #include "isa.h" #include "machine/upd765.h" @@ -24,16 +24,14 @@ class isa8_fdc_device : public device_isa8_card_interface { public: - // construction/destruction - isa8_fdc_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - - required_device fdc; - DECLARE_WRITE_LINE_MEMBER( irq_w ); DECLARE_WRITE_LINE_MEMBER( drq_w ); DECLARE_FLOPPY_FORMATS( floppy_formats ); protected: + // construction/destruction + isa8_fdc_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -41,6 +39,8 @@ protected: virtual uint8_t dack_r(int line) override; virtual void dack_w(int line, uint8_t data) override; virtual void eop_w(int state) override; + + required_device fdc; }; class isa8_fdc_xt_device : public isa8_fdc_device { @@ -74,10 +74,10 @@ public: }; // device type definition -extern const device_type ISA8_FDC_XT; -extern const device_type ISA8_FDC_AT; -extern const device_type ISA8_FDC_SMC; -extern const device_type ISA8_FDC_PS2; -extern const device_type ISA8_FDC_SUPERIO; +DECLARE_DEVICE_TYPE(ISA8_FDC_XT, isa8_fdc_xt_device) +DECLARE_DEVICE_TYPE(ISA8_FDC_AT, isa8_fdc_at_device) +DECLARE_DEVICE_TYPE(ISA8_FDC_SMC, isa8_fdc_smc_device) +DECLARE_DEVICE_TYPE(ISA8_FDC_PS2, isa8_fdc_ps2_device) +DECLARE_DEVICE_TYPE(ISA8_FDC_SUPERIO, isa8_fdc_superio_device) -#endif /* ISA_FDC_H */ +#endif // MAME_BUS_ISA_FDC_H diff --git a/src/devices/bus/isa/finalchs.cpp b/src/devices/bus/isa/finalchs.cpp index 00ce6f31a92..00740d9f264 100644 --- a/src/devices/bus/isa/finalchs.cpp +++ b/src/devices/bus/isa/finalchs.cpp @@ -69,7 +69,7 @@ WRITE8_MEMBER( isa8_finalchs_device::finalchs_w ) // GLOBAL VARIABLES //************************************************************************** -const device_type ISA8_FINALCHS = device_creator; +DEFINE_DEVICE_TYPE(ISA8_FINALCHS, isa8_finalchs_device, "isa_finalchs", "Final Chess Card") //------------------------------------------------- // machine_config_additions - device-specific @@ -90,9 +90,10 @@ machine_config_constructor isa8_finalchs_device::device_mconfig_additions() cons //------------------------------------------------- isa8_finalchs_device::isa8_finalchs_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, ISA8_FINALCHS, "Final Chess Card", tag, owner, clock, "finalchs", __FILE__), - device_isa8_card_interface( mconfig, *this ), m_FCH_latch_data(0) - { + : device_t(mconfig, ISA8_FINALCHS, tag, owner, clock) + , device_isa8_card_interface(mconfig, *this) + , m_FCH_latch_data(0) +{ } //------------------------------------------------- diff --git a/src/devices/bus/isa/finalchs.h b/src/devices/bus/isa/finalchs.h index e105a8a0289..f287489cb3f 100644 --- a/src/devices/bus/isa/finalchs.h +++ b/src/devices/bus/isa/finalchs.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Jonathan Gevaryahu -#pragma once +#ifndef MAME_BUS_ISA_FINALCHS_H +#define MAME_BUS_ISA_FINALCHS_H -#ifndef __ISA_FINALCHS_H__ -#define __ISA_FINALCHS_H__ +#pragma once #include "isa.h" @@ -18,32 +18,32 @@ class isa8_finalchs_device : public device_isa8_card_interface { public: - // construction/destruction - isa8_finalchs_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + // construction/destruction + isa8_finalchs_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - DECLARE_READ8_MEMBER(finalchs_r); - DECLARE_WRITE8_MEMBER(finalchs_w); + DECLARE_READ8_MEMBER(finalchs_r); + DECLARE_WRITE8_MEMBER(finalchs_w); - DECLARE_WRITE8_MEMBER( io7ff8_write ); - DECLARE_READ8_MEMBER( io7ff8_read ); - DECLARE_READ8_MEMBER( io6000_read ); - DECLARE_WRITE8_MEMBER( io6000_write ); + DECLARE_WRITE8_MEMBER( io7ff8_write ); + DECLARE_READ8_MEMBER( io7ff8_read ); + DECLARE_READ8_MEMBER( io6000_read ); + DECLARE_WRITE8_MEMBER( io6000_write ); - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; - virtual const tiny_rom_entry *device_rom_region() const override; + // optional information overrides + virtual machine_config_constructor device_mconfig_additions() const override; + virtual const tiny_rom_entry *device_rom_region() const override; protected: - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; private: - // internal state - uint8_t m_FCH_latch_data; + // internal state + uint8_t m_FCH_latch_data; }; // device type definition -extern const device_type ISA8_FINALCHS; +DECLARE_DEVICE_TYPE(ISA8_FINALCHS, isa8_finalchs_device) -#endif /* __ISA_FINALCHS_H__ */ +#endif // MAME_BUS_ISA_FINALCHS_H diff --git a/src/devices/bus/isa/gblaster.cpp b/src/devices/bus/isa/gblaster.cpp index 9ff7d0d9f3c..59cafbd1226 100644 --- a/src/devices/bus/isa/gblaster.cpp +++ b/src/devices/bus/isa/gblaster.cpp @@ -78,7 +78,7 @@ WRITE8_MEMBER( isa8_gblaster_device::detect_w ) // GLOBAL VARIABLES //************************************************************************** -const device_type ISA8_GAME_BLASTER = device_creator; +DEFINE_DEVICE_TYPE(ISA8_GAME_BLASTER, isa8_gblaster_device, "isa_gblaster", "Game Blaster Sound Card") //------------------------------------------------- // machine_config_additions - device-specific @@ -99,11 +99,11 @@ machine_config_constructor isa8_gblaster_device::device_mconfig_additions() cons //------------------------------------------------- isa8_gblaster_device::isa8_gblaster_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, ISA8_GAME_BLASTER, "Game Blaster Sound Card", tag, owner, clock, "isa_gblaster", __FILE__), - device_isa8_card_interface(mconfig, *this), - m_saa1099_1(*this, "saa1099.1"), - m_saa1099_2(*this, "saa1099.2"), - detect_reg(0xFF) + device_t(mconfig, ISA8_GAME_BLASTER, tag, owner, clock), + device_isa8_card_interface(mconfig, *this), + m_saa1099_1(*this, "saa1099.1"), + m_saa1099_2(*this, "saa1099.2"), + detect_reg(0xFF) { } diff --git a/src/devices/bus/isa/gblaster.h b/src/devices/bus/isa/gblaster.h index 43aa55107b6..32cebdaa0ba 100644 --- a/src/devices/bus/isa/gblaster.h +++ b/src/devices/bus/isa/gblaster.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Miodrag Milanovic -#pragma once +#ifndef MAME_BUS_ISA_GBLASTER_H +#define MAME_BUS_ISA_GBLASTER_H -#ifndef __ISA_GAME_BLASTER_H__ -#define __ISA_GAME_BLASTER_H__ +#pragma once #include "isa.h" #include "sound/saa1099.h" @@ -19,30 +19,30 @@ class isa8_gblaster_device : public device_isa8_card_interface { public: - // construction/destruction - isa8_gblaster_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + // construction/destruction + isa8_gblaster_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; + // optional information overrides + virtual machine_config_constructor device_mconfig_additions() const override; - DECLARE_READ8_MEMBER(saa1099_16_r); - DECLARE_WRITE8_MEMBER(saa1099_1_16_w); - DECLARE_WRITE8_MEMBER(saa1099_2_16_w); - DECLARE_READ8_MEMBER(detect_r); - DECLARE_WRITE8_MEMBER(detect_w); + DECLARE_READ8_MEMBER(saa1099_16_r); + DECLARE_WRITE8_MEMBER(saa1099_1_16_w); + DECLARE_WRITE8_MEMBER(saa1099_2_16_w); + DECLARE_READ8_MEMBER(detect_r); + DECLARE_WRITE8_MEMBER(detect_w); protected: - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; private: - // internal state - required_device m_saa1099_1; - required_device m_saa1099_2; - uint8_t detect_reg; + // internal state + required_device m_saa1099_1; + required_device m_saa1099_2; + uint8_t detect_reg; }; // device type definition -extern const device_type ISA8_GAME_BLASTER; +DECLARE_DEVICE_TYPE(ISA8_GAME_BLASTER, isa8_gblaster_device) -#endif /* __ISA_GAME_BLASTER_H__ */ +#endif // MAME_BUS_ISA_GBLASTER_H diff --git a/src/devices/bus/isa/gus.cpp b/src/devices/bus/isa/gus.cpp index a81a2f7a57f..157c1d13ff2 100644 --- a/src/devices/bus/isa/gus.cpp +++ b/src/devices/bus/isa/gus.cpp @@ -15,6 +15,16 @@ #include "speaker.h" +#define IRQ_2XF 0x00 +#define IRQ_MIDI_TRANSMIT 0x01 +#define IRQ_MIDI_RECEIVE 0x02 +#define IRQ_TIMER1 0x04 +#define IRQ_TIMER2 0x08 +#define IRQ_SB 0x10 +#define IRQ_WAVETABLE 0x20 +#define IRQ_VOLUME_RAMP 0x40 +#define IRQ_DRAM_TC_DMA 0x80 + //************************************************************************** // GLOBAL VARIABLES //************************************************************************** @@ -36,8 +46,8 @@ static const uint16_t volume_ramp_table[4] = 1, 8, 64, 512 }; -const device_type GGF1 = device_creator; -const device_type ISA16_GUS = device_creator; +DEFINE_DEVICE_TYPE(GGF1, gf1_device, "gf1", "Gravis GF1") +DEFINE_DEVICE_TYPE(ISA16_GUS, isa16_gus_device, "isa_gus", "Gravis Ultrasound") #ifdef LOG_SOUND FILE* f; @@ -354,8 +364,12 @@ void gf1_device::sound_stream_update(sound_stream &stream, stream_sample_t **inp //------------------------------------------------- gf1_device::gf1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - acia6850_device(mconfig, GGF1, "Gravis GF1", tag, owner, clock, "gf1", __FILE__), - device_sound_interface( mconfig, *this ), m_dma_dram_ctrl(0), m_dma_start_addr(0), m_dram_addr(0), m_timer_ctrl(0), m_timer1_count(0), m_timer2_count(0), m_timer1_value(0), m_timer2_value(0), m_sampling_freq(0), m_sampling_ctrl(0), m_joy_trim_dac(0), m_reset(0), m_active_voices(0), m_irq_source(0), m_stream(nullptr), m_timer1(nullptr), m_timer2(nullptr), m_dmatimer(nullptr), m_voltimer(nullptr), m_current_voice(0), m_current_reg(0), m_adlib_cmd(0), m_mix_ctrl(0), m_gf1_irq(0), m_midi_irq(0), m_dma_channel1(0), m_dma_channel2(0), m_irq_combine(0), m_dma_combine(0), m_adlib_timer_cmd(0), m_adlib_timer1_enable(0), m_adlib_timer2_enable(0), m_adlib_status(0), m_adlib_data(0), m_voice_irq_ptr(0), m_voice_irq_current(0), m_dma_16bit(0), m_statread(0), m_sb_data_2xc(0), m_sb_data_2xe(0), m_reg_ctrl(0), m_fake_adlib_status(0), m_dma_current(0), m_txirq(0), m_rxirq(0), + acia6850_device(mconfig, GGF1, tag, owner, clock), + device_sound_interface(mconfig, *this), + m_dma_dram_ctrl(0), m_dma_start_addr(0), m_dram_addr(0), m_timer_ctrl(0), m_timer1_count(0), m_timer2_count(0), m_timer1_value(0), m_timer2_value(0), m_sampling_freq(0), m_sampling_ctrl(0), m_joy_trim_dac(0), m_reset(0), m_active_voices(0), m_irq_source(0), + m_stream(nullptr), + m_timer1(nullptr), m_timer2(nullptr), m_dmatimer(nullptr), m_voltimer(nullptr), + m_current_voice(0), m_current_reg(0), m_adlib_cmd(0), m_mix_ctrl(0), m_gf1_irq(0), m_midi_irq(0), m_dma_channel1(0), m_dma_channel2(0), m_irq_combine(0), m_dma_combine(0), m_adlib_timer_cmd(0), m_adlib_timer1_enable(0), m_adlib_timer2_enable(0), m_adlib_status(0), m_adlib_data(0), m_voice_irq_ptr(0), m_voice_irq_current(0), m_dma_16bit(0), m_statread(0), m_sb_data_2xc(0), m_sb_data_2xe(0), m_reg_ctrl(0), m_fake_adlib_status(0), m_dma_current(0), m_txirq(0), m_rxirq(0), m_txirq_handler(*this), m_rxirq_handler(*this), m_wave_irq_handler(*this), @@ -1277,9 +1291,10 @@ ioport_constructor isa16_gus_device::device_input_ports() const isa16_gus_device::isa16_gus_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, ISA16_GUS, "Gravis Ultrasound", tag, owner, clock, "isa_gus", __FILE__), - device_isa16_card_interface( mconfig, *this ), - m_gf1(*this, "gf1"), m_irq_status(0) + device_t(mconfig, ISA16_GUS, tag, owner, clock), + device_isa16_card_interface(mconfig, *this), + m_gf1(*this, "gf1"), + m_irq_status(0) { } diff --git a/src/devices/bus/isa/gus.h b/src/devices/bus/isa/gus.h index bf1d1cb852e..fe0103734d5 100644 --- a/src/devices/bus/isa/gus.h +++ b/src/devices/bus/isa/gus.h @@ -37,10 +37,10 @@ * 0x3X6: Data port (write only) */ -#pragma once +#ifndef MAME_BUS_ISA_GUS_H +#define MAME_BUS_ISA_GUS_H -#ifndef __ISA_GUS_H__ -#define __ISA_GUS_H__ +#pragma once #include "isa.h" #include "machine/6850acia.h" @@ -86,53 +86,43 @@ #define GF1_CLOCK 9878400 -#define IRQ_2XF 0x00 -#define IRQ_MIDI_TRANSMIT 0x01 -#define IRQ_MIDI_RECEIVE 0x02 -#define IRQ_TIMER1 0x04 -#define IRQ_TIMER2 0x08 -#define IRQ_SB 0x10 -#define IRQ_WAVETABLE 0x20 -#define IRQ_VOLUME_RAMP 0x40 -#define IRQ_DRAM_TC_DMA 0x80 - -struct gus_voice -{ - uint8_t voice_ctrl; - uint16_t freq_ctrl; - uint32_t start_addr; - uint32_t end_addr; - uint8_t vol_ramp_rate; - uint8_t vol_ramp_start; - uint8_t vol_ramp_end; - uint16_t current_vol; - uint32_t current_addr; - uint8_t pan_position; - uint8_t vol_ramp_ctrl; - uint32_t vol_count; - bool rollover; - int16_t sample; // current sample data -}; - class gf1_device : public acia6850_device, public device_sound_interface { public: + struct gus_voice + { + uint8_t voice_ctrl; + uint16_t freq_ctrl; + uint32_t start_addr; + uint32_t end_addr; + uint8_t vol_ramp_rate; + uint8_t vol_ramp_start; + uint8_t vol_ramp_end; + uint16_t current_vol; + uint32_t current_addr; + uint8_t pan_position; + uint8_t vol_ramp_ctrl; + uint32_t vol_count; + bool rollover; + int16_t sample; // current sample data + }; + // construction/destruction gf1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_txirq_handler(device_t &device, _Object object) { return downcast(device).m_txirq_handler.set_callback(object); } - template static devcb_base &set_rxirq_handler(device_t &device, _Object object) { return downcast(device).m_rxirq_handler.set_callback(object); } - template static devcb_base &set_wave_irq_handler(device_t &device, _Object object) { return downcast(device).m_wave_irq_handler.set_callback(object); } - template static devcb_base &set_ramp_irq_handler(device_t &device, _Object object) { return downcast(device).m_ramp_irq_handler.set_callback(object); } - template static devcb_base &set_timer1_irq_handler(device_t &device, _Object object) { return downcast(device).m_timer1_irq_handler.set_callback(object); } - template static devcb_base &set_timer2_irq_handler(device_t &device, _Object object) { return downcast(device).m_timer2_irq_handler.set_callback(object); } - template static devcb_base &set_sb_irq_handler(device_t &device, _Object object) { return downcast(device).m_sb_irq_handler.set_callback(object); } - template static devcb_base &set_dma_irq_handler(device_t &device, _Object object) { return downcast(device).m_dma_irq_handler.set_callback(object); } - template static devcb_base &set_drq1_handler(device_t &device, _Object object) { return downcast(device).m_drq1_handler.set_callback(object); } - template static devcb_base &set_drq2_handler(device_t &device, _Object object) { return downcast(device).m_drq2_handler.set_callback(object); } - template static devcb_base &set_nmi_handler(device_t &device, _Object object) { return downcast(device).m_nmi_handler.set_callback(object); } + template static devcb_base &set_txirq_handler(device_t &device, Object &&cb) { return downcast(device).m_txirq_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_rxirq_handler(device_t &device, Object &&cb) { return downcast(device).m_rxirq_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_wave_irq_handler(device_t &device, Object &&cb) { return downcast(device).m_wave_irq_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_ramp_irq_handler(device_t &device, Object &&cb) { return downcast(device).m_ramp_irq_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_timer1_irq_handler(device_t &device, Object &&cb) { return downcast(device).m_timer1_irq_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_timer2_irq_handler(device_t &device, Object &&cb) { return downcast(device).m_timer2_irq_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_sb_irq_handler(device_t &device, Object &&cb) { return downcast(device).m_sb_irq_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_dma_irq_handler(device_t &device, Object &&cb) { return downcast(device).m_dma_irq_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_drq1_handler(device_t &device, Object &&cb) { return downcast(device).m_drq1_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_drq2_handler(device_t &device, Object &&cb) { return downcast(device).m_drq2_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_nmi_handler(device_t &device, Object &&cb) { return downcast(device).m_nmi_handler.set_callback(std::forward(cb)); } // current IRQ/DMA channel getters uint8_t gf1_irq() { if(m_gf1_irq != 0) return m_gf1_irq; else return m_midi_irq; } // workaround for win95 loading dumb values @@ -167,6 +157,7 @@ public: virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; +protected: // voice-specific registers gus_voice m_voice[32]; @@ -192,7 +183,6 @@ public: std::vector m_wave_ram; -protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -316,7 +306,7 @@ private: }; // device type definition -extern const device_type GGF1; -extern const device_type ISA16_GUS; +DECLARE_DEVICE_TYPE(GF1, gf1_device) +DECLARE_DEVICE_TYPE(ISA16_GUS, isa16_gus_device) -#endif /* __ISA_GUS_H__ */ +#endif // MAME_BUS_ISA_GUS_H diff --git a/src/devices/bus/isa/hdc.cpp b/src/devices/bus/isa/hdc.cpp index 6efe2dbfde0..52a8bb34e0c 100644 --- a/src/devices/bus/isa/hdc.cpp +++ b/src/devices/bus/isa/hdc.cpp @@ -157,37 +157,36 @@ static INPUT_PORTS_START( isa_hdc ) PORT_DIPSETTING( 0x00, DEF_STR(No) ) INPUT_PORTS_END -const device_type XT_HDC = device_creator; -const device_type EC1841_HDC = device_creator; -const device_type ST11M_HDC = device_creator; +DEFINE_DEVICE_TYPE(XT_HDC, xt_hdc_device, "xt_hdc", "Generic PC-XT Fixed Disk Controller") +DEFINE_DEVICE_TYPE(EC1841_HDC, ec1841_device, "ec1481", "EX1841 Fixed Disk Controller") +DEFINE_DEVICE_TYPE(ST11M_HDC, st11m_device, "st11m", "Seagate ST11M Fixed Disk Controller") xt_hdc_device::xt_hdc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, XT_HDC, "Generic PC-XT Fixed Disk Controller", tag, owner, clock, "xt_hdc", __FILE__), buffer_ptr(nullptr), csb(0), status(0), error(0), m_current_cmd(0), - m_irq_handler(*this), - m_drq_handler(*this), drv(0), timer(nullptr), data_cnt(0), hdc_control(0), hdcdma_src(nullptr), hdcdma_dst(nullptr), hdcdma_read(0), hdcdma_write(0), hdcdma_size(0) + xt_hdc_device(mconfig, XT_HDC, tag, owner, clock) { m_type = STANDARD; } -xt_hdc_device::xt_hdc_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), buffer_ptr(nullptr), csb(0), status(0), error(0), m_type(0), m_current_cmd(0), - m_irq_handler(*this), - m_drq_handler(*this), drv(0), timer(nullptr), data_cnt(0), hdc_control(0), hdcdma_src(nullptr), hdcdma_dst(nullptr), hdcdma_read(0), hdcdma_write(0), hdcdma_size(0) +xt_hdc_device::xt_hdc_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), + buffer_ptr(nullptr), csb(0), status(0), error(0), m_type(0), m_current_cmd(0), + m_irq_handler(*this), + m_drq_handler(*this), drv(0), timer(nullptr), data_cnt(0), hdc_control(0), hdcdma_src(nullptr), hdcdma_dst(nullptr), hdcdma_read(0), hdcdma_write(0), hdcdma_size(0) { } ec1841_device::ec1841_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - xt_hdc_device(mconfig, EC1841_HDC, "EC1841 Fixed Disk Controller", tag, owner, clock, "ec1481", __FILE__), - m_irq_handler(*this), - m_drq_handler(*this) + xt_hdc_device(mconfig, EC1841_HDC, tag, owner, clock), + m_irq_handler(*this), + m_drq_handler(*this) { m_type = EC1841; } st11m_device::st11m_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - xt_hdc_device(mconfig, ST11M_HDC, "Seagate ST11M Fixed Disk Controller", tag, owner, clock, "st11m", __FILE__), - m_irq_handler(*this), - m_drq_handler(*this) + xt_hdc_device(mconfig, ST11M_HDC, tag, owner, clock), + m_irq_handler(*this), + m_drq_handler(*this) { m_type = ST11M; } @@ -928,8 +927,8 @@ void xt_hdc_device::set_ready() // GLOBAL VARIABLES //************************************************************************** -const device_type ISA8_HDC = device_creator; -const device_type ISA8_HDC_EC1841 = device_creator; +DEFINE_DEVICE_TYPE(ISA8_HDC, isa8_hdc_device, "isa_hdc", "Fixed Disk Controller Card") +DEFINE_DEVICE_TYPE(ISA8_HDC_EC1841, isa8_hdc_ec1841_device, "isa_hdc_ec1841", "EC1841 HDC Card") //------------------------------------------------- // machine_config_additions - device-specific @@ -973,22 +972,20 @@ ioport_constructor isa8_hdc_device::device_input_ports() const //------------------------------------------------- isa8_hdc_device::isa8_hdc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, ISA8_HDC, "Fixed Disk Controller Card", tag, owner, clock, "hdc", __FILE__), - device_isa8_card_interface(mconfig, *this), - m_hdc(*this,"hdc"), dip(0) + isa8_hdc_device(mconfig, ISA8_HDC, tag, owner, clock) { } -isa8_hdc_device::isa8_hdc_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_isa8_card_interface(mconfig, *this), - m_hdc(*this,"hdc"), dip(0) +isa8_hdc_device::isa8_hdc_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), + device_isa8_card_interface(mconfig, *this), + m_hdc(*this,"hdc"), dip(0) { } isa8_hdc_ec1841_device::isa8_hdc_ec1841_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - isa8_hdc_device( mconfig, ISA8_HDC_EC1841, "EC1841 HDC", tag, owner, clock, "hdc_ec1841", __FILE__), - m_hdc(*this,"hdc") + isa8_hdc_device( mconfig, ISA8_HDC_EC1841, tag, owner, clock), + m_hdc(*this,"hdc") { } diff --git a/src/devices/bus/isa/hdc.h b/src/devices/bus/isa/hdc.h index 52c190b3796..b631fc91818 100644 --- a/src/devices/bus/isa/hdc.h +++ b/src/devices/bus/isa/hdc.h @@ -5,10 +5,10 @@ ISA 8 bit XT Hard Disk Controller **********************************************************************/ -#pragma once +#ifndef MAME_BUS_ISA_HDC_H +#define MAME_BUS_ISA_HDC_H -#ifndef ISA_HDC_H -#define ISA_HDC_H +#pragma once #include "isa.h" #include "imagedev/harddriv.h" @@ -31,10 +31,9 @@ class xt_hdc_device : public: // construction/destruction xt_hdc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - xt_hdc_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - template static devcb_base &set_irq_handler(device_t &device, _Object object) { return downcast(device).m_irq_handler.set_callback(object); } - template static devcb_base &set_drq_handler(device_t &device, _Object object) { return downcast(device).m_drq_handler.set_callback(object); } + template static devcb_base &set_irq_handler(device_t &device, Object &&cb) { return downcast(device).m_irq_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_drq_handler(device_t &device, Object &&cb) { return downcast(device).m_drq_handler.set_callback(std::forward(cb)); } int dack_r(); int dack_rs(); @@ -53,6 +52,8 @@ public: bool install_rom() { return (m_type != EC1841); } protected: + xt_hdc_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -132,9 +133,9 @@ protected: devcb_write_line m_drq_handler; }; -extern const device_type XT_HDC; -extern const device_type EC1841_HDC; -extern const device_type ST11M_HDC; +DECLARE_DEVICE_TYPE(XT_HDC, xt_hdc_device) +DECLARE_DEVICE_TYPE(EC1841_HDC, ec1841_device) +DECLARE_DEVICE_TYPE(ST11M_HDC, st11m_device) // ======================> isa8_hdc_device @@ -143,30 +144,32 @@ class isa8_hdc_device : public device_isa8_card_interface { public: - // construction/destruction - isa8_hdc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - isa8_hdc_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - - DECLARE_READ8_MEMBER(pc_hdc_r); - DECLARE_WRITE8_MEMBER(pc_hdc_w); - DECLARE_WRITE_LINE_MEMBER(irq_w); - DECLARE_WRITE_LINE_MEMBER(drq_w); - required_device m_hdc; - - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; - virtual const tiny_rom_entry *device_rom_region() const override; - virtual ioport_constructor device_input_ports() const override; + // construction/destruction + isa8_hdc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + + DECLARE_READ8_MEMBER(pc_hdc_r); + DECLARE_WRITE8_MEMBER(pc_hdc_w); + DECLARE_WRITE_LINE_MEMBER(irq_w); + DECLARE_WRITE_LINE_MEMBER(drq_w); + required_device m_hdc; + + // optional information overrides + virtual machine_config_constructor device_mconfig_additions() const override; + virtual const tiny_rom_entry *device_rom_region() const override; + virtual ioport_constructor device_input_ports() const override; + protected: - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; + isa8_hdc_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; public: - virtual uint8_t dack_r(int line) override; - virtual void dack_w(int line,uint8_t data) override; - uint8_t pc_hdc_dipswitch_r(); + virtual uint8_t dack_r(int line) override; + virtual void dack_w(int line,uint8_t data) override; + uint8_t pc_hdc_dipswitch_r(); - int dip; /* dip switches */ + int dip; /* dip switches */ }; @@ -182,7 +185,7 @@ public: }; // device type definition -extern const device_type ISA8_HDC; -extern const device_type ISA8_HDC_EC1841; +DECLARE_DEVICE_TYPE(ISA8_HDC, isa8_hdc_device) +DECLARE_DEVICE_TYPE(ISA8_HDC_EC1841, isa8_hdc_ec1841_device) -#endif /* ISA_HDC_H */ +#endif // MAME_BUS_ISA_HDC_H diff --git a/src/devices/bus/isa/ibm_mfc.cpp b/src/devices/bus/isa/ibm_mfc.cpp index 2b1b5f17fcb..71fb83d93ef 100644 --- a/src/devices/bus/isa/ibm_mfc.cpp +++ b/src/devices/bus/isa/ibm_mfc.cpp @@ -63,7 +63,7 @@ enum // Globals //------------------------------------------------- -const device_type ISA8_IBM_MFC = device_creator; +DEFINE_DEVICE_TYPE(ISA8_IBM_MFC, isa8_ibm_mfc_device, "ibm_mfc", "IBM PC Music Feature Card") //------------------------------------------------- @@ -450,14 +450,15 @@ const tiny_rom_entry *isa8_ibm_mfc_device::device_rom_region() const //------------------------------------------------- isa8_ibm_mfc_device::isa8_ibm_mfc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, ISA8_IBM_MFC, "IBM PC Music Feature Card", tag, owner, clock, "ibm_mfc", __FILE__), - device_isa8_card_interface(mconfig, *this), m_tcr(0), m_pc_ppi_c(0), m_z80_ppi_c(0), m_pc_irq_state(0), m_z80_irq_state(0), - m_cpu(*this, "ibm_mfc"), - m_ym2151(*this, "ym2151"), - m_d8253(*this, "d8253"), - m_d71051(*this, "d71051"), - m_d71055c_0(*this, "d71055c_0"), - m_d71055c_1(*this, "d71055c_1") + device_t(mconfig, ISA8_IBM_MFC, tag, owner, clock), + device_isa8_card_interface(mconfig, *this), + m_tcr(0), m_pc_ppi_c(0), m_z80_ppi_c(0), m_pc_irq_state(0), m_z80_irq_state(0), + m_cpu(*this, "ibm_mfc"), + m_ym2151(*this, "ym2151"), + m_d8253(*this, "d8253"), + m_d71051(*this, "d71051"), + m_d71055c_0(*this, "d71055c_0"), + m_d71055c_1(*this, "d71055c_1") { } diff --git a/src/devices/bus/isa/ibm_mfc.h b/src/devices/bus/isa/ibm_mfc.h index a315a55dc72..019f89d5da2 100644 --- a/src/devices/bus/isa/ibm_mfc.h +++ b/src/devices/bus/isa/ibm_mfc.h @@ -6,10 +6,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_BUS_ISA_IBM_MFC_H +#define MAME_BUS_ISA_IBM_MFC_H -#ifndef __ISA_IBM_MUSIC_FEATURE_CARD_H__ -#define __ISA_IBM_MUSIC_FEATURE_CARD_H__ +#pragma once #include "isa.h" @@ -84,6 +84,6 @@ private: // Device type definition -extern const device_type ISA8_IBM_MFC; +DECLARE_DEVICE_TYPE(ISA8_IBM_MFC, isa8_ibm_mfc_device) -#endif /* __ISA_IBM_MUSIC_FEATURE_CARD_H__ */ +#endif // MAME_BUS_ISA_IBM_MFC_H diff --git a/src/devices/bus/isa/ide.cpp b/src/devices/bus/isa/ide.cpp index d932543a586..0d5ee8cd352 100644 --- a/src/devices/bus/isa/ide.cpp +++ b/src/devices/bus/isa/ide.cpp @@ -73,7 +73,7 @@ INPUT_PORTS_END // GLOBAL VARIABLES //************************************************************************** -const device_type ISA16_IDE = device_creator; +DEFINE_DEVICE_TYPE(ISA16_IDE, isa16_ide_device, "isa_ide", "IDE Fixed Drive Adapter") //------------------------------------------------- // machine_config_additions - device-specific @@ -103,10 +103,10 @@ ioport_constructor isa16_ide_device::device_input_ports() const //------------------------------------------------- isa16_ide_device::isa16_ide_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, ISA16_IDE, "IDE Fixed Drive Adapter", tag, owner, clock, "isa_ide", __FILE__), - device_isa16_card_interface( mconfig, *this ), - m_is_primary(true), - m_ide(*this, "ide") + : device_t(mconfig, ISA16_IDE, tag, owner, clock) + , device_isa16_card_interface(mconfig, *this) + , m_is_primary(true) + , m_ide(*this, "ide") { } diff --git a/src/devices/bus/isa/ide.h b/src/devices/bus/isa/ide.h index 4957890c0ba..6f34b144461 100644 --- a/src/devices/bus/isa/ide.h +++ b/src/devices/bus/isa/ide.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Miodrag Milanovic -#pragma once +#ifndef MAME_BUS_ISA_IDE_H +#define MAME_BUS_ISA_IDE_H -#ifndef __ISA_IDE_H__ -#define __ISA_IDE_H__ +#pragma once #include "isa.h" #include "machine/idectrl.h" @@ -44,6 +44,6 @@ private: // device type definition -extern const device_type ISA16_IDE; +DECLARE_DEVICE_TYPE(ISA16_IDE, isa16_ide_device) -#endif /* __ISA_IDE_H__ */ +#endif // MAME_BUS_ISA_IDE_H diff --git a/src/devices/bus/isa/isa.cpp b/src/devices/bus/isa/isa.cpp index b624df933d5..263d4452f98 100644 --- a/src/devices/bus/isa/isa.cpp +++ b/src/devices/bus/isa/isa.cpp @@ -14,7 +14,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type ISA8_SLOT = device_creator; +DEFINE_DEVICE_TYPE(ISA8_SLOT, isa8_slot_device, "isa8_slot", "8-bit ISA slot") //************************************************************************** // LIVE DEVICE @@ -24,16 +24,14 @@ const device_type ISA8_SLOT = device_creator; // isa8_slot_device - constructor //------------------------------------------------- isa8_slot_device::isa8_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, ISA8_SLOT, "ISA8_SLOT", tag, owner, clock, "isa8_slot", __FILE__), - device_slot_interface(mconfig, *this), - m_owner(nullptr), - m_isa_tag(nullptr) + isa8_slot_device(mconfig, ISA8_SLOT, tag, owner, clock) { } -isa8_slot_device::isa8_slot_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_slot_interface(mconfig, *this), m_owner(nullptr), m_isa_tag(nullptr) +isa8_slot_device::isa8_slot_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), + device_slot_interface(mconfig, *this), + m_owner(nullptr), m_isa_tag(nullptr) { } @@ -64,7 +62,7 @@ void isa8_slot_device::device_start() // GLOBAL VARIABLES //************************************************************************** -const device_type ISA16_SLOT = device_creator; +DEFINE_DEVICE_TYPE(ISA16_SLOT, isa16_slot_device, "isa16_slot", "16-bit ISA slot") //************************************************************************** // LIVE DEVICE @@ -74,7 +72,7 @@ const device_type ISA16_SLOT = device_creator; // isa16_slot_device - constructor //------------------------------------------------- isa16_slot_device::isa16_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - isa8_slot_device(mconfig, ISA16_SLOT, "ISA16_SLOT", tag, owner, clock, "isa16_slot", __FILE__) + isa8_slot_device(mconfig, ISA16_SLOT, tag, owner, clock) { } @@ -100,7 +98,7 @@ void isa16_slot_device::device_start() // GLOBAL VARIABLES //************************************************************************** -const device_type ISA8 = device_creator; +DEFINE_DEVICE_TYPE(ISA8, isa8_device, "isa8", "8-bit ISA bus") void isa8_device::static_set_cputag(device_t &device, const char *tag) { @@ -124,50 +122,30 @@ void isa8_device::static_set_custom_spaces(device_t &device) //------------------------------------------------- isa8_device::isa8_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, ISA8, "ISA8", tag, owner, clock, "isa8", __FILE__), - device_memory_interface(mconfig, *this), - m_program_config("ISA 8-bit program", ENDIANNESS_LITTLE, 8, 24, 0, nullptr), - m_io_config("ISA 8-bit I/O", ENDIANNESS_LITTLE, 8, 16, 0, nullptr), - m_program16_config("ISA 16-bit program", ENDIANNESS_LITTLE, 16, 24, 0, nullptr), - m_io16_config("ISA 16-bit I/O", ENDIANNESS_LITTLE, 16, 16, 0, nullptr), m_maincpu(nullptr), m_iospace(nullptr), m_prgspace(nullptr), - m_out_irq2_cb(*this), - m_out_irq3_cb(*this), - m_out_irq4_cb(*this), - m_out_irq5_cb(*this), - m_out_irq6_cb(*this), - m_out_irq7_cb(*this), - m_out_drq1_cb(*this), - m_out_drq2_cb(*this), - m_out_drq3_cb(*this), m_cputag(nullptr), - m_write_iochck(*this) -{ - for(int i=0;i<8;i++) - { - m_dma_device[i] = nullptr; - m_dma_eop[i] = false; - } - m_nmi_enabled = false; - m_iowidth = m_prgwidth = 0; - m_allocspaces = false; -} - -isa8_device::isa8_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_memory_interface(mconfig, *this), - m_program_config("ISA 8-bit program", ENDIANNESS_LITTLE, 8, 24, 0, nullptr), - m_io_config("ISA 8-bit I/O", ENDIANNESS_LITTLE, 8, 16, 0, nullptr), - m_program16_config("ISA 16-bit program", ENDIANNESS_LITTLE, 16, 24, 0, nullptr), - m_io16_config("ISA 16-bit I/O", ENDIANNESS_LITTLE, 16, 16, 0, nullptr), m_maincpu(nullptr), m_iospace(nullptr), m_prgspace(nullptr), - m_out_irq2_cb(*this), - m_out_irq3_cb(*this), - m_out_irq4_cb(*this), - m_out_irq5_cb(*this), - m_out_irq6_cb(*this), - m_out_irq7_cb(*this), - m_out_drq1_cb(*this), - m_out_drq2_cb(*this), - m_out_drq3_cb(*this), m_cputag(nullptr), - m_write_iochck(*this) + isa8_device(mconfig, ISA8, tag, owner, clock) +{ +} + +isa8_device::isa8_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), + device_memory_interface(mconfig, *this), + m_program_config("ISA 8-bit program", ENDIANNESS_LITTLE, 8, 24, 0, nullptr), + m_io_config("ISA 8-bit I/O", ENDIANNESS_LITTLE, 8, 16, 0, nullptr), + m_program16_config("ISA 16-bit program", ENDIANNESS_LITTLE, 16, 24, 0, nullptr), + m_io16_config("ISA 16-bit I/O", ENDIANNESS_LITTLE, 16, 16, 0, nullptr), + m_maincpu(nullptr), + m_iospace(nullptr), + m_prgspace(nullptr), + m_out_irq2_cb(*this), + m_out_irq3_cb(*this), + m_out_irq4_cb(*this), + m_out_irq5_cb(*this), + m_out_irq6_cb(*this), + m_out_irq7_cb(*this), + m_out_drq1_cb(*this), + m_out_drq2_cb(*this), + m_out_drq3_cb(*this), m_cputag(nullptr), + m_write_iochck(*this) { for(int i=0;i<8;i++) { @@ -444,23 +422,23 @@ void device_isa8_card_interface::set_isa_device() } -const device_type ISA16 = device_creator; +DEFINE_DEVICE_TYPE(ISA16, isa16_device, "isa16", "16-bit ISA bus") //------------------------------------------------- // isa16_device - constructor //------------------------------------------------- isa16_device::isa16_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - isa8_device(mconfig, ISA16, "ISA16", tag, owner, clock, "isa16", __FILE__), - m_out_irq10_cb(*this), - m_out_irq11_cb(*this), - m_out_irq12_cb(*this), - m_out_irq14_cb(*this), - m_out_irq15_cb(*this), - m_out_drq0_cb(*this), - m_out_drq5_cb(*this), - m_out_drq6_cb(*this), - m_out_drq7_cb(*this) + isa8_device(mconfig, ISA16, tag, owner, clock), + m_out_irq10_cb(*this), + m_out_irq11_cb(*this), + m_out_irq12_cb(*this), + m_out_irq14_cb(*this), + m_out_irq15_cb(*this), + m_out_drq0_cb(*this), + m_out_drq5_cb(*this), + m_out_drq6_cb(*this), + m_out_drq7_cb(*this) { } diff --git a/src/devices/bus/isa/isa.h b/src/devices/bus/isa/isa.h index 4ba5b764d24..36e949fc76f 100644 --- a/src/devices/bus/isa/isa.h +++ b/src/devices/bus/isa/isa.h @@ -62,10 +62,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_BUS_ISA_ISA_H +#define MAME_BUS_ISA_ISA_H -#ifndef __ISA_H__ -#define __ISA_H__ +#pragma once @@ -162,21 +162,23 @@ class isa8_slot_device : public device_t, public: // construction/destruction isa8_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - isa8_slot_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); // device-level overrides virtual void device_start() override; // inline configuration static void static_set_isa8_slot(device_t &device, device_t *owner, const char *isa_tag); + protected: + isa8_slot_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // configuration device_t *m_owner; const char *m_isa_tag; }; // device type definition -extern const device_type ISA8_SLOT; +DECLARE_DEVICE_TYPE(ISA8_SLOT, isa8_slot_device) class device_isa8_card_interface; // ======================> isa8_device @@ -186,20 +188,19 @@ class isa8_device : public device_t, public: // construction/destruction isa8_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - isa8_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); // inline configuration static void static_set_cputag(device_t &device, const char *tag); static void static_set_custom_spaces(device_t &device); - template devcb_base &set_iochck_callback(_iochck iochck) { return m_write_iochck.set_callback(iochck); } - template static devcb_base &set_out_irq2_callback(device_t &device, _Object object) { return downcast(device).m_out_irq2_cb.set_callback(object); } - template static devcb_base &set_out_irq3_callback(device_t &device, _Object object) { return downcast(device).m_out_irq3_cb.set_callback(object); } - template static devcb_base &set_out_irq4_callback(device_t &device, _Object object) { return downcast(device).m_out_irq4_cb.set_callback(object); } - template static devcb_base &set_out_irq5_callback(device_t &device, _Object object) { return downcast(device).m_out_irq5_cb.set_callback(object); } - template static devcb_base &set_out_irq6_callback(device_t &device, _Object object) { return downcast(device).m_out_irq6_cb.set_callback(object); } - template static devcb_base &set_out_irq7_callback(device_t &device, _Object object) { return downcast(device).m_out_irq7_cb.set_callback(object); } - template static devcb_base &set_out_drq1_callback(device_t &device, _Object object) { return downcast(device).m_out_drq1_cb.set_callback(object); } - template static devcb_base &set_out_drq2_callback(device_t &device, _Object object) { return downcast(device).m_out_drq2_cb.set_callback(object); } - template static devcb_base &set_out_drq3_callback(device_t &device, _Object object) { return downcast(device).m_out_drq3_cb.set_callback(object); } + template devcb_base &set_iochck_callback(Object &&cb) { return m_write_iochck.set_callback(std::forward(cb)); } + template static devcb_base &set_out_irq2_callback(device_t &device, Object &&cb) { return downcast(device).m_out_irq2_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_irq3_callback(device_t &device, Object &&cb) { return downcast(device).m_out_irq3_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_irq4_callback(device_t &device, Object &&cb) { return downcast(device).m_out_irq4_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_irq5_callback(device_t &device, Object &&cb) { return downcast(device).m_out_irq5_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_irq6_callback(device_t &device, Object &&cb) { return downcast(device).m_out_irq6_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_irq7_callback(device_t &device, Object &&cb) { return downcast(device).m_out_irq7_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_drq1_callback(device_t &device, Object &&cb) { return downcast(device).m_out_drq1_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_drq2_callback(device_t &device, Object &&cb) { return downcast(device).m_out_drq2_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_drq3_callback(device_t &device, Object &&cb) { return downcast(device).m_out_drq3_cb.set_callback(std::forward(cb)); } // for ISA8, put the 8-bit configs in the primary slots and the 16-bit configs in the secondary virtual const address_space_config *memory_space_config(address_spacenum spacenum) const override @@ -260,6 +261,8 @@ public: const address_space_config m_program_config, m_io_config, m_program16_config, m_io16_config; protected: + isa8_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + void install_space(address_spacenum spacenum, offs_t start, offs_t end, read8_delegate rhandler, write8_delegate whandler); // device-level overrides @@ -295,7 +298,7 @@ private: // device type definition -extern const device_type ISA8; +DECLARE_DEVICE_TYPE(ISA8, isa8_device) // ======================> device_isa8_card_interface @@ -303,9 +306,9 @@ extern const device_type ISA8; class device_isa8_card_interface : public device_slot_card_interface { friend class isa8_device; + template friend class simple_list; public: // construction/destruction - device_isa8_card_interface(const machine_config &mconfig, device_t &device); virtual ~device_isa8_card_interface(); device_isa8_card_interface *next() const { return m_next; } @@ -318,9 +321,14 @@ public: // inline configuration static void static_set_isabus(device_t &device, device_t *isa_device); + public: + device_isa8_card_interface(const machine_config &mconfig, device_t &device); + isa8_device *m_isa; device_t *m_isa_dev; + +private: device_isa8_card_interface *m_next; }; @@ -340,7 +348,7 @@ public: // device type definition -extern const device_type ISA16_SLOT; +DECLARE_DEVICE_TYPE(ISA16_SLOT, isa16_slot_device) // ======================> isa16_device class isa16_device : public isa8_device @@ -349,15 +357,15 @@ public: // construction/destruction isa16_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_out_irq10_callback(device_t &device, _Object object) { return downcast(device).m_out_irq10_cb.set_callback(object); } - template static devcb_base &set_out_irq11_callback(device_t &device, _Object object) { return downcast(device).m_out_irq11_cb.set_callback(object); } - template static devcb_base &set_out_irq12_callback(device_t &device, _Object object) { return downcast(device).m_out_irq12_cb.set_callback(object); } - template static devcb_base &set_out_irq14_callback(device_t &device, _Object object) { return downcast(device).m_out_irq14_cb.set_callback(object); } - template static devcb_base &set_out_irq15_callback(device_t &device, _Object object) { return downcast(device).m_out_irq15_cb.set_callback(object); } - template static devcb_base &set_out_drq0_callback(device_t &device, _Object object) { return downcast(device).m_out_drq0_cb.set_callback(object); } - template static devcb_base &set_out_drq5_callback(device_t &device, _Object object) { return downcast(device).m_out_drq5_cb.set_callback(object); } - template static devcb_base &set_out_drq6_callback(device_t &device, _Object object) { return downcast(device).m_out_drq6_cb.set_callback(object); } - template static devcb_base &set_out_drq7_callback(device_t &device, _Object object) { return downcast(device).m_out_drq7_cb.set_callback(object); } + template static devcb_base &set_out_irq10_callback(device_t &device, Object &&cb) { return downcast(device).m_out_irq10_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_irq11_callback(device_t &device, Object &&cb) { return downcast(device).m_out_irq11_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_irq12_callback(device_t &device, Object &&cb) { return downcast(device).m_out_irq12_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_irq14_callback(device_t &device, Object &&cb) { return downcast(device).m_out_irq14_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_irq15_callback(device_t &device, Object &&cb) { return downcast(device).m_out_irq15_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_drq0_callback(device_t &device, Object &&cb) { return downcast(device).m_out_drq0_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_drq5_callback(device_t &device, Object &&cb) { return downcast(device).m_out_drq5_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_drq6_callback(device_t &device, Object &&cb) { return downcast(device).m_out_drq6_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_drq7_callback(device_t &device, Object &&cb) { return downcast(device).m_out_drq7_cb.set_callback(std::forward(cb)); } void install16_device(offs_t start, offs_t end, read16_delegate rhandler, write16_delegate whandler); @@ -418,7 +426,7 @@ private: // device type definition -extern const device_type ISA16; +DECLARE_DEVICE_TYPE(ISA16, isa16_device) // ======================> device_isa16_card_interface @@ -428,13 +436,16 @@ class device_isa16_card_interface : public device_isa8_card_interface friend class isa16_device; public: // construction/destruction - device_isa16_card_interface(const machine_config &mconfig, device_t &device); virtual ~device_isa16_card_interface(); virtual uint16_t dack16_r(int line); virtual void dack16_w(int line,uint16_t data); void set_isa_device(); + +protected: + device_isa16_card_interface(const machine_config &mconfig, device_t &device); + isa16_device *m_isa; }; -#endif /* __ISA_H__ */ +#endif // MAME_BUS_ISA_ISA_H diff --git a/src/devices/bus/isa/isa_cards.cpp b/src/devices/bus/isa/isa_cards.cpp index 53e61c5e72a..218c0231baa 100644 --- a/src/devices/bus/isa/isa_cards.cpp +++ b/src/devices/bus/isa/isa_cards.cpp @@ -9,6 +9,59 @@ #include "emu.h" #include "isa_cards.h" +// video +#include "mda.h" +#include "cga.h" +#include "aga.h" +#include "ega.h" +#include "pgc.h" +#include "vga.h" +#include "vga_ati.h" +#include "svga_cirrus.h" +#include "svga_s3.h" +#include "svga_tseng.h" +#include "svga_trident.h" +#include "num9rev.h" + +// storage +#include "fdc.h" +#include "mufdc.h" +#include "hdc.h" +#include "wdxt_gen.h" +#include "ide.h" +#include "xtide.h" +#include "side116.h" +#include "aha1542.h" +#include "wd1002a_wx1.h" +#include "mcd.h" + +// sound +#include "adlib.h" +#include "gblaster.h" +#include "gus.h" +#include "ibm_mfc.h" +#include "mpu401.h" +#include "sblaster.h" +#include "ssi2001.h" +#include "stereo_fx.h" +#include "dectalk.h" +#include "sb16.h" + +// network +#include "3c503.h" +#include "ne1000.h" +#include "ne2000.h" +#include "3c505.h" + +// communication ports +#include "lpt.h" +#include "com.h" +#include "pds.h" + +// other +#include "finalchs.h" + + SLOT_INTERFACE_START( pc_isa8_cards ) SLOT_INTERFACE("mda", ISA8_MDA) SLOT_INTERFACE("cga", ISA8_CGA) diff --git a/src/devices/bus/isa/isa_cards.h b/src/devices/bus/isa/isa_cards.h index 9699ed4214f..da83f77c5e1 100644 --- a/src/devices/bus/isa/isa_cards.h +++ b/src/devices/bus/isa/isa_cards.h @@ -6,66 +6,14 @@ **********************************************************************/ -#pragma once - -#ifndef __ISA_CARDS_H__ -#define __ISA_CARDS_H__ - - -// video -#include "mda.h" -#include "cga.h" -#include "aga.h" -#include "ega.h" -#include "pgc.h" -#include "vga.h" -#include "vga_ati.h" -#include "svga_cirrus.h" -#include "svga_s3.h" -#include "svga_tseng.h" -#include "svga_trident.h" -#include "num9rev.h" +#ifndef MAME_BUS_ISA_ISA_CARDS_H +#define MAME_BUS_ISA_ISA_CARDS_H -// storage -#include "fdc.h" -#include "mufdc.h" -#include "hdc.h" -#include "wdxt_gen.h" -#include "ide.h" -#include "xtide.h" -#include "side116.h" -#include "aha1542.h" -#include "wd1002a_wx1.h" -#include "mcd.h" - -// sound -#include "adlib.h" -#include "gblaster.h" -#include "gus.h" -#include "ibm_mfc.h" -#include "mpu401.h" -#include "sblaster.h" -#include "ssi2001.h" -#include "stereo_fx.h" -#include "dectalk.h" -#include "sb16.h" - -// network -#include "3c503.h" -#include "ne1000.h" -#include "ne2000.h" -#include "3c505.h" - -// communication ports -#include "lpt.h" -#include "com.h" -#include "pds.h" +#pragma once -// other -#include "finalchs.h" // supported devices SLOT_INTERFACE_EXTERN( pc_isa8_cards ); SLOT_INTERFACE_EXTERN( pc_isa16_cards ); -#endif // __ISA_CARDS_H__ +#endif // MAME_BUS_ISA_ISA_CARDS_H diff --git a/src/devices/bus/isa/lpt.cpp b/src/devices/bus/isa/lpt.cpp index 5f1e0f24917..ce24502432e 100644 --- a/src/devices/bus/isa/lpt.cpp +++ b/src/devices/bus/isa/lpt.cpp @@ -10,10 +10,10 @@ #include "lpt.h" #include "machine/pc_lpt.h" -const device_type ISA8_LPT = device_creator; +DEFINE_DEVICE_TYPE(ISA8_LPT, isa8_lpt_device, "isa_lpt", "Printer Adapter") isa8_lpt_device::isa8_lpt_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, ISA8_LPT, "Printer Adapter", tag, owner, clock, "isa_lpt", __FILE__), + device_t(mconfig, ISA8_LPT, tag, owner, clock), device_isa8_card_interface(mconfig, *this), m_is_primary(false) { diff --git a/src/devices/bus/isa/lpt.h b/src/devices/bus/isa/lpt.h index c559c4df162..4ff3e60a9e2 100644 --- a/src/devices/bus/isa/lpt.h +++ b/src/devices/bus/isa/lpt.h @@ -6,8 +6,10 @@ ***************************************************************************/ -#ifndef __ISA_LPT_H__ -#define __ISA_LPT_H__ +#ifndef MAME_BUS_ISA_LPT_H +#define MAME_BUS_ISA_LPT_H + +#pragma once #include "isa.h" @@ -45,6 +47,6 @@ private: }; // device type definition -extern const device_type ISA8_LPT; +DECLARE_DEVICE_TYPE(ISA8_LPT, isa8_lpt_device) -#endif /* __ISA_LPT_H__ */ +#endif // MAME_BUS_ISA_LPT_H diff --git a/src/devices/bus/isa/mach32.cpp b/src/devices/bus/isa/mach32.cpp index a40503f8769..3035e1f0161 100644 --- a/src/devices/bus/isa/mach32.cpp +++ b/src/devices/bus/isa/mach32.cpp @@ -15,10 +15,10 @@ #include "screen.h" -const device_type ATIMACH32 = device_creator; -const device_type ATIMACH32_8514A = device_creator; -const device_type ATIMACH64 = device_creator; -const device_type ATIMACH64_8514A = device_creator; +DEFINE_DEVICE_TYPE(ATIMACH32, mach32_device, "mach32", "ATi mach32") +DEFINE_DEVICE_TYPE(ATIMACH32_8514A, mach32_8514a_device, "mach32_8514a", "ATi mach32 (2D acceleration module)") +DEFINE_DEVICE_TYPE(ATIMACH64, mach64_device, "mach64", "ATi mach64") +DEFINE_DEVICE_TYPE(ATIMACH64_8514A, mach64_8514a_device, "mach64_8514a", "ATi mach64 (2D acceleration module)") /* @@ -27,30 +27,24 @@ const device_type ATIMACH64_8514A = device_creator; // 8514/A device mach32_8514a_device::mach32_8514a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mach8_device(mconfig, ATIMACH32_8514A, "ATi mach32 (2D acceleration module)", tag, owner, clock, "mach32_8514a", __FILE__), - m_chip_ID(0), - m_membounds(0) + : mach32_8514a_device(mconfig, ATIMACH32_8514A, tag, owner, clock) { } -mach32_8514a_device::mach32_8514a_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : mach8_device(mconfig, type, name, tag, owner, clock, shortname, source), - m_chip_ID(0), - m_membounds(0) +mach32_8514a_device::mach32_8514a_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : mach8_device(mconfig, type, tag, owner, clock), m_chip_ID(0), m_membounds(0) { } // SVGA device mach32_device::mach32_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : ati_vga_device(mconfig, ATIMACH32, "ATi mach32", tag, owner, clock, "mach32", __FILE__), - m_8514a(*this,"8514a") + : mach32_device(mconfig, ATIMACH32, tag, owner, clock) { } -mach32_device::mach32_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : ati_vga_device(mconfig, type, name, tag, owner, clock, shortname, source), - m_8514a(*this,"8514a") +mach32_device::mach32_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : ati_vga_device(mconfig, type, tag, owner, clock), m_8514a(*this,"8514a") { } @@ -100,26 +94,24 @@ void mach32_device::device_reset() // 8514/A device mach64_8514a_device::mach64_8514a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mach32_8514a_device(mconfig, ATIMACH64_8514A, "ATi mach64 (2D acceleration module)", tag, owner, clock, "mach64_8514a", __FILE__) + : mach64_8514a_device(mconfig, ATIMACH64_8514A, tag, owner, clock) { } -mach64_8514a_device::mach64_8514a_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : mach32_8514a_device(mconfig, type, name, tag, owner, clock, shortname, source) +mach64_8514a_device::mach64_8514a_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : mach32_8514a_device(mconfig, type, tag, owner, clock) { } // SVGA device mach64_device::mach64_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mach32_device(mconfig, ATIMACH64, "ATi mach64", tag, owner, clock, "mach64", __FILE__), - m_8514a(*this,"8514a") + : mach64_device(mconfig, ATIMACH64, tag, owner, clock) { } -mach64_device::mach64_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : mach32_device(mconfig, type, name, tag, owner, clock, shortname, source), - m_8514a(*this,"8514a") +mach64_device::mach64_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : mach32_device(mconfig, type, tag, owner, clock), m_8514a(*this, "8514a") { } diff --git a/src/devices/bus/isa/mach32.h b/src/devices/bus/isa/mach32.h index 135d923fc57..f3aba4a911a 100644 --- a/src/devices/bus/isa/mach32.h +++ b/src/devices/bus/isa/mach32.h @@ -6,8 +6,10 @@ * Created on: 16/05/2014 */ -#ifndef MACH32_H_ -#define MACH32_H_ +#ifndef MAME_BUS_ISA_MACH32_H +#define MAME_BUS_ISA_MACH32_H + +#pragma once #include "video/pc_vga.h" #include "machine/eepromser.h" @@ -18,7 +20,6 @@ class mach32_8514a_device : public mach8_device public: // construction/destruction mach32_8514a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - mach32_8514a_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); DECLARE_READ16_MEMBER(mach32_chipid_r) { return m_chip_ID; } DECLARE_WRITE16_MEMBER(mach32_clksel_w) { mach8.clksel = data; } // read only on the mach8 @@ -26,6 +27,8 @@ public: DECLARE_WRITE16_MEMBER(mach32_mem_boundary_w) { m_membounds = data; if(data & 0x10) logerror("ATI: Unimplemented memory boundary activated."); } protected: + mach32_8514a_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; virtual void device_reset() override; virtual void device_config_complete() override; @@ -40,7 +43,6 @@ class mach32_device : public ati_vga_device public: // construction/destruction mach32_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - mach32_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); required_device m_8514a; // provides accelerated 2D drawing, derived from the Mach8 device @@ -120,7 +122,10 @@ public: DECLARE_READ16_MEMBER(mach32_mem_boundary_r) { return m_8514a->mach32_mem_boundary_r(space,offset,mem_mask); } DECLARE_WRITE16_MEMBER(mach32_mem_boundary_w) { m_8514a->mach32_mem_boundary_w(space,offset,data,mem_mask); } // read only on the mach8 DECLARE_READ16_MEMBER(mach32_status_r) { return vga_vblank() << 1; } + protected: + mach32_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -137,9 +142,10 @@ class mach64_8514a_device : public mach32_8514a_device public: // construction/destruction mach64_8514a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - mach64_8514a_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); protected: + mach64_8514a_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; virtual void device_reset() override; virtual void device_config_complete() override; @@ -151,23 +157,25 @@ class mach64_device : public mach32_device public: // construction/destruction mach64_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - mach64_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - required_device m_8514a; // provides accelerated 2D drawing, derived from the Mach8 device - - DECLARE_WRITE16_MEMBER(mach64_config1_w) { } // why does the mach64 BIOS write to these, they are read only on the mach32 and earlier - DECLARE_WRITE16_MEMBER(mach64_config2_w) { } + DECLARE_WRITE16_MEMBER(mach64_config1_w) { } // why does the mach64 BIOS write to these, they are read only on the mach32 and earlier + DECLARE_WRITE16_MEMBER(mach64_config2_w) { } protected: + mach64_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; virtual machine_config_constructor device_mconfig_additions() const override; + + required_device m_8514a; // provides accelerated 2D drawing, derived from the Mach8 device }; + // device type definition -extern const device_type ATIMACH32; -extern const device_type ATIMACH32_8514A; -extern const device_type ATIMACH64; -extern const device_type ATIMACH64_8514A; +DECLARE_DEVICE_TYPE(ATIMACH32, mach32_device) +DECLARE_DEVICE_TYPE(ATIMACH32_8514A, mach32_8514a_device) +DECLARE_DEVICE_TYPE(ATIMACH64, mach64_device) +DECLARE_DEVICE_TYPE(ATIMACH64_8514A, mach64_8514a_device) -#endif /* MACH32_H_ */ +#endif // MAME_BUS_ISA_MACH32_H diff --git a/src/devices/bus/isa/mc1502_fdc.cpp b/src/devices/bus/isa/mc1502_fdc.cpp index b943c1a191b..0ad8f6056f2 100644 --- a/src/devices/bus/isa/mc1502_fdc.cpp +++ b/src/devices/bus/isa/mc1502_fdc.cpp @@ -29,7 +29,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type MC1502_FDC = device_creator; +DEFINE_DEVICE_TYPE(MC1502_FDC, mc1502_fdc_device, "mc1502_fdc", "MC-1502 floppy") FLOPPY_FORMATS_MEMBER( mc1502_fdc_device::floppy_formats ) FLOPPY_PC_FORMAT @@ -204,7 +204,7 @@ WRITE8_MEMBER(mc1502_fdc_device::mc1502_fdc_w) //------------------------------------------------- mc1502_fdc_device::mc1502_fdc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MC1502_FDC, "MC-1502 floppy", tag, owner, clock, "mc1502_fdc", __FILE__) + : device_t(mconfig, MC1502_FDC, tag, owner, clock) , device_isa8_card_interface(mconfig, *this) , m_fdc(*this, "fdc") , motor_on(0) @@ -222,14 +222,14 @@ void mc1502_fdc_device::device_start() // BIOS 5.0-5.2x m_isa->install_device(0x010c, 0x010f, - READ8_DEVICE_DELEGATE(m_fdc, fd1793_t, read), - WRITE8_DEVICE_DELEGATE(m_fdc, fd1793_t, write) ); + READ8_DEVICE_DELEGATE(m_fdc, fd1793_device, read), + WRITE8_DEVICE_DELEGATE(m_fdc, fd1793_device, write) ); m_isa->install_device(0x0100, 0x010b, read8_delegate( FUNC(mc1502_fdc_device::mc1502_fdc_r), this ), write8_delegate( FUNC(mc1502_fdc_device::mc1502_fdc_w), this ) ); // BIOS 5.3x m_isa->install_device(0x0048, 0x004b, - READ8_DEVICE_DELEGATE(m_fdc, fd1793_t, read), - WRITE8_DEVICE_DELEGATE(m_fdc, fd1793_t, write) ); + READ8_DEVICE_DELEGATE(m_fdc, fd1793_device, read), + WRITE8_DEVICE_DELEGATE(m_fdc, fd1793_device, write) ); m_isa->install_device(0x004c, 0x004f, read8_delegate( FUNC(mc1502_fdc_device::mc1502_fdcv2_r), this ), write8_delegate( FUNC(mc1502_fdc_device::mc1502_fdc_w), this ) ); motor_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(mc1502_fdc_device::motor_callback),this)); diff --git a/src/devices/bus/isa/mc1502_fdc.h b/src/devices/bus/isa/mc1502_fdc.h index af8c3ee7d54..0d3b97f326c 100644 --- a/src/devices/bus/isa/mc1502_fdc.h +++ b/src/devices/bus/isa/mc1502_fdc.h @@ -6,14 +6,14 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_ISA_MC1502_FDC_H +#define MAME_BUS_ISA_MC1502_FDC_H -#ifndef __MC1502_FDC__ -#define __MC1502_FDC__ +#pragma once -#include "imagedev/flopdrv.h" #include "isa.h" +#include "imagedev/flopdrv.h" #include "machine/wd_fdc.h" //************************************************************************** @@ -44,7 +44,7 @@ protected: virtual void device_start() override; private: - required_device m_fdc; + required_device m_fdc; int motor_on; emu_timer *motor_timer; @@ -57,7 +57,6 @@ public: // device type definition -extern const device_type MC1502_FDC; - +DECLARE_DEVICE_TYPE(MC1502_FDC, mc1502_fdc_device) -#endif +#endif // MAME_BUS_ISA_MC1502_FDC_H diff --git a/src/devices/bus/isa/mc1502_rom.cpp b/src/devices/bus/isa/mc1502_rom.cpp index d5a5b189ac1..7e612c10832 100644 --- a/src/devices/bus/isa/mc1502_rom.cpp +++ b/src/devices/bus/isa/mc1502_rom.cpp @@ -14,7 +14,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type MC1502_ROM = device_creator; +DEFINE_DEVICE_TYPE(MC1502_ROM, mc1502_rom_device, "mc1502_rom", "MC-1502 ROM cart") //------------------------------------------------- @@ -46,7 +46,7 @@ const tiny_rom_entry *mc1502_rom_device::device_rom_region() const //------------------------------------------------- mc1502_rom_device::mc1502_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MC1502_ROM, "MC-1502 ROM cart", tag, owner, clock, "mc1502_rom", __FILE__) + : device_t(mconfig, MC1502_ROM, tag, owner, clock) , device_isa8_card_interface(mconfig, *this) { } diff --git a/src/devices/bus/isa/mc1502_rom.h b/src/devices/bus/isa/mc1502_rom.h index 193a9bf3274..bbb152df72f 100644 --- a/src/devices/bus/isa/mc1502_rom.h +++ b/src/devices/bus/isa/mc1502_rom.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_ISA_MC1502_ROM_H +#define MAME_BUS_ISA_MC1502_ROM_H -#ifndef __MC1502_ROM__ -#define __MC1502_ROM__ +#pragma once #include "isa.h" @@ -35,7 +35,7 @@ protected: // device type definition -extern const device_type MC1502_ROM; +DECLARE_DEVICE_TYPE(MC1502_ROM, mc1502_rom_device) -#endif +#endif // MAME_BUS_ISA_MC1502_ROM_H diff --git a/src/devices/bus/isa/mcd.cpp b/src/devices/bus/isa/mcd.cpp index d31896f43f0..70e1be82556 100644 --- a/src/devices/bus/isa/mcd.cpp +++ b/src/devices/bus/isa/mcd.cpp @@ -17,7 +17,7 @@ INPUT_PORTS_END // GLOBAL VARIABLES //************************************************************************** -const device_type ISA16_MCD = device_creator; +DEFINE_DEVICE_TYPE(ISA16_MCD, mcd_isa_device, "mcd_isa", "Mitsumi ISA CD-ROM Adapter") //------------------------------------------------- // input_ports - device-specific input ports @@ -37,8 +37,8 @@ ioport_constructor mcd_isa_device::device_input_ports() const //------------------------------------------------- mcd_isa_device::mcd_isa_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - cdrom_image_device(mconfig, ISA16_MCD, "Mitsumi ISA CDROM Adapter", tag, owner, clock, "mcd_isa", __FILE__), - device_isa16_card_interface( mconfig, *this ) + cdrom_image_device(mconfig, ISA16_MCD, tag, owner, clock), + device_isa16_card_interface( mconfig, *this ) { } diff --git a/src/devices/bus/isa/mcd.h b/src/devices/bus/isa/mcd.h index e7a70b598df..a39d08bb142 100644 --- a/src/devices/bus/isa/mcd.h +++ b/src/devices/bus/isa/mcd.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Carl -#pragma once +#ifndef MAME_BUS_ISA_MCD_H +#define MAME_BUS_ISA_MCD_H -#ifndef __MCD_H__ -#define __MCD_H__ +#pragma once #include "isa.h" #include "imagedev/chd_cd.h" @@ -31,10 +31,12 @@ public: DECLARE_WRITE8_MEMBER(cmd_w); DECLARE_WRITE8_MEMBER(reset_w); virtual uint16_t dack16_r(int line) override; + protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; + private: bool read_sector(bool first = false); @@ -113,6 +115,6 @@ private: // device type definition -extern const device_type ISA16_MCD; +DECLARE_DEVICE_TYPE(ISA16_MCD, mcd_isa_device) -#endif +#endif // MAME_BUS_ISA_MCD_H diff --git a/src/devices/bus/isa/mda.cpp b/src/devices/bus/isa/mda.cpp index e311ce1c1ee..f5f520c5c75 100644 --- a/src/devices/bus/isa/mda.cpp +++ b/src/devices/bus/isa/mda.cpp @@ -123,7 +123,7 @@ ROM_END // GLOBAL VARIABLES //************************************************************************** -const device_type ISA8_MDA = device_creator; +DEFINE_DEVICE_TYPE(ISA8_MDA, isa8_mda_device, "isa_ibm_mda", "IBM Monochrome Display adn Printer Adapter") //------------------------------------------------- @@ -154,18 +154,15 @@ const tiny_rom_entry *isa8_mda_device::device_rom_region() const //------------------------------------------------- isa8_mda_device::isa8_mda_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, ISA8_MDA, "IBM Monochrome Display and Printer Adapter", tag, owner, clock, "isa_ibm_mda", __FILE__), - device_isa8_card_interface(mconfig, *this), m_framecnt(0), m_mode_control(0), - m_update_row_type(-1), m_chr_gen(nullptr), m_vsync(0), m_hsync(0), m_pixel(0), - m_palette(*this, "palette") + isa8_mda_device(mconfig, ISA8_MDA, tag, owner, clock) { } -isa8_mda_device::isa8_mda_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_isa8_card_interface(mconfig, *this), m_framecnt(0), m_mode_control(0), - m_update_row_type(-1), m_chr_gen(nullptr), m_vsync(0), m_hsync(0), m_pixel(0), - m_palette(*this, "palette") +isa8_mda_device::isa8_mda_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), + device_isa8_card_interface(mconfig, *this), m_framecnt(0), m_mode_control(0), + m_update_row_type(-1), m_chr_gen(nullptr), m_vsync(0), m_hsync(0), m_pixel(0), + m_palette(*this, "palette") { } @@ -191,7 +188,7 @@ void isa8_mda_device::device_start() m_isa->install_bank(0xb7000, 0xb7fff, "bank_mda", &m_videoram[0]); /* Initialise the mda palette */ - for(int i = 0; i < 4; i++) + for (int i = 0; i < 4; i++) m_palette->set_pen_color(i, rgb_t(mda_palette[i][0], mda_palette[i][1], mda_palette[i][2])); } @@ -561,7 +558,7 @@ ROM_END // GLOBAL VARIABLES //************************************************************************** -const device_type ISA8_HERCULES = device_creator; +DEFINE_DEVICE_TYPE(ISA8_HERCULES, isa8_hercules_device, "isa_hercules", "Hercules Graphics Card") //------------------------------------------------- // machine_config_additions - device-specific @@ -591,7 +588,7 @@ const tiny_rom_entry *isa8_hercules_device::device_rom_region() const //------------------------------------------------- isa8_hercules_device::isa8_hercules_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - isa8_mda_device(mconfig, ISA8_HERCULES, "Hercules Graphics Card", tag, owner, clock, "isa_hercules", __FILE__), m_configuration_switch(0) + isa8_mda_device(mconfig, ISA8_HERCULES, tag, owner, clock), m_configuration_switch(0) { } @@ -779,7 +776,7 @@ MACHINE_CONFIG_FRAGMENT( pcvideo_ec1840_0002 ) MCFG_MC6845_OUT_VSYNC_CB(WRITELINE(isa8_mda_device, vsync_changed)) MACHINE_CONFIG_END -const device_type ISA8_EC1840_0002 = device_creator; +DEFINE_DEVICE_TYPE(ISA8_EC1840_0002, isa8_ec1840_0002_device, "ec1840_0002", "EC1840.0002 (MDA)") //------------------------------------------------- @@ -797,7 +794,7 @@ machine_config_constructor isa8_ec1840_0002_device::device_mconfig_additions() c //------------------------------------------------- isa8_ec1840_0002_device::isa8_ec1840_0002_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - isa8_mda_device( mconfig, ISA8_EC1840_0002, "EC 1840.0002 (MDA)", tag, owner, clock, "ec1840_0002", __FILE__), m_soft_chr_gen(nullptr) + isa8_mda_device(mconfig, ISA8_EC1840_0002, tag, owner, clock), m_soft_chr_gen(nullptr) { } diff --git a/src/devices/bus/isa/mda.h b/src/devices/bus/isa/mda.h index 4632b94dab7..effbf2b59e5 100644 --- a/src/devices/bus/isa/mda.h +++ b/src/devices/bus/isa/mda.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Wilbert Pol, Miodrag Milanovic -#pragma once +#ifndef MAME_BUS_ISA_MDA_H +#define MAME_BUS_ISA_MDA_H -#ifndef __ISA_MDA_H__ -#define __ISA_MDA_H__ +#pragma once #include "isa.h" #include "video/mc6845.h" @@ -22,7 +22,6 @@ public: // construction/destruction isa8_mda_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - isa8_mda_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); // optional information overrides virtual machine_config_constructor device_mconfig_additions() const override; @@ -42,9 +41,12 @@ public: MC6845_UPDATE_ROW( mda_text_blink_update_row ); protected: + isa8_mda_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; + public: int m_framecnt; @@ -61,7 +63,7 @@ public: // device type definition -extern const device_type ISA8_MDA; +DECLARE_DEVICE_TYPE(ISA8_MDA, isa8_mda_device) // ======================> isa8_hercules_device @@ -94,7 +96,7 @@ public: // device type definition -extern const device_type ISA8_HERCULES; +DECLARE_DEVICE_TYPE(ISA8_HERCULES, isa8_hercules_device) // ======================> isa8_ec1840_0002_device @@ -124,6 +126,6 @@ public: }; // device type definition -extern const device_type ISA8_EC1840_0002; +DECLARE_DEVICE_TYPE(ISA8_EC1840_0002, isa8_ec1840_0002_device) -#endif /* __ISA_MDA_H__ */ +#endif // MAME_BUS_ISA_MDA_H diff --git a/src/devices/bus/isa/mpu401.cpp b/src/devices/bus/isa/mpu401.cpp index 2690f6e333f..53a69afd38e 100644 --- a/src/devices/bus/isa/mpu401.cpp +++ b/src/devices/bus/isa/mpu401.cpp @@ -45,7 +45,7 @@ WRITE_LINE_MEMBER( isa8_mpu401_device::mpu_irq_out ) // GLOBAL VARIABLES //************************************************************************** -const device_type ISA8_MPU401 = device_creator; +DEFINE_DEVICE_TYPE(ISA8_MPU401, isa8_mpu401_device, "isa_mpu401", "Roland MPU-401 MIDI Interface (ISA)") //------------------------------------------------- // machine_config_additions - device-specific @@ -67,9 +67,9 @@ machine_config_constructor isa8_mpu401_device::device_mconfig_additions() const //------------------------------------------------- isa8_mpu401_device::isa8_mpu401_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, ISA8_MPU401, "Roland MPU-401 MIDI Interface", tag, owner, clock, "isa_mpu401", __FILE__), - device_isa8_card_interface( mconfig, *this ), - m_mpu401(*this, MPU_CORE_TAG) + : device_t(mconfig, ISA8_MPU401, tag, owner, clock) + , device_isa8_card_interface(mconfig, *this) + , m_mpu401(*this, MPU_CORE_TAG) { } diff --git a/src/devices/bus/isa/mpu401.h b/src/devices/bus/isa/mpu401.h index d0d5c89b346..2daabbac9e7 100644 --- a/src/devices/bus/isa/mpu401.h +++ b/src/devices/bus/isa/mpu401.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:R. Belmont,Kevin Horton -#pragma once +#ifndef MAME_BUS_ISA_MPU401_H +#define MAME_BUS_ISA_MPU401_H -#ifndef __ISA_MPU401_H__ -#define __ISA_MPU401_H__ +#pragma once #include "isa.h" #include "machine/mpu401.h" @@ -19,24 +19,24 @@ class isa8_mpu401_device : public device_isa8_card_interface { public: - // construction/destruction - isa8_mpu401_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + // construction/destruction + isa8_mpu401_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - required_device m_mpu401; + // called back by the MPU401 core to set the IRQ line state + DECLARE_WRITE_LINE_MEMBER(mpu_irq_out); - // called back by the MPU401 core to set the IRQ line state - DECLARE_WRITE_LINE_MEMBER(mpu_irq_out); - - // optional information overrides + // optional information overrides protected: - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - virtual machine_config_constructor device_mconfig_additions() const override; + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + virtual machine_config_constructor device_mconfig_additions() const override; + + required_device m_mpu401; }; // device type definition -extern const device_type ISA8_MPU401; +DECLARE_DEVICE_TYPE(ISA8_MPU401, isa8_mpu401_device) -#endif /* __ISA_MPU401_H__ */ +#endif // MAME_BUS_ISA_MPU401_H diff --git a/src/devices/bus/isa/mufdc.cpp b/src/devices/bus/isa/mufdc.cpp index 3a88ce16ec7..aa35397953b 100644 --- a/src/devices/bus/isa/mufdc.cpp +++ b/src/devices/bus/isa/mufdc.cpp @@ -16,6 +16,7 @@ #include "emu.h" #include "mufdc.h" + #include "formats/naslite_dsk.h" #include "formats/pc_dsk.h" @@ -24,8 +25,8 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type ISA8_FDC344 = device_creator; -const device_type ISA8_FDCMAG = device_creator; +DEFINE_DEVICE_TYPE(ISA8_FDC344, fdc344_device, "fdc344", "Ably-Tech FDC-344") +DEFINE_DEVICE_TYPE(ISA8_FDCMAG, fdcmag_device, "fdcmag", "Magitronic Multi Floppy Controller Card") //------------------------------------------------- // machine_config_additions - device-specific @@ -130,21 +131,21 @@ const tiny_rom_entry *fdcmag_device::device_rom_region() const // mufdc_device - constructor //------------------------------------------------- -mufdc_device::mufdc_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, const char *name, const char *shortname) : - device_t(mconfig, type, name, tag, owner, clock, shortname, __FILE__), - device_isa8_card_interface( mconfig, *this ), +mufdc_device::mufdc_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), + device_isa8_card_interface( mconfig, *this), m_fdc(*this, "fdc"), m_config(*this, "configuration") { } fdc344_device::fdc344_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - mufdc_device(mconfig, ISA8_FDC344, tag, owner, clock, "Ably-Tech FDC-344", "fdc344") + mufdc_device(mconfig, ISA8_FDC344, tag, owner, clock) { } fdcmag_device::fdcmag_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - mufdc_device(mconfig, ISA8_FDCMAG, tag, owner, clock, "Magitronic Multi Floppy Controller Card", "fdcmag") + mufdc_device(mconfig, ISA8_FDCMAG, tag, owner, clock) { } @@ -163,7 +164,7 @@ void mufdc_device::device_start() void mufdc_device::device_reset() { - m_isa->install_rom(this, 0xc8000, 0xc9fff, m_shortname.c_str(), "option"); + m_isa->install_rom(this, 0xc8000, 0xc9fff, shortname(), "option"); m_isa->install_device(0x3f0, 0x3f7, *m_fdc, &pc_fdc_interface::map); m_isa->set_dma_channel(2, this, true); } diff --git a/src/devices/bus/isa/mufdc.h b/src/devices/bus/isa/mufdc.h index 46f46cb5539..3f62b9862ed 100644 --- a/src/devices/bus/isa/mufdc.h +++ b/src/devices/bus/isa/mufdc.h @@ -14,10 +14,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_BUS_ISA_MUFDC_H +#define MAME_BUS_ISA_MUFDC_H -#ifndef __ISA_MUFDC_H__ -#define __ISA_MUFDC_H__ +#pragma once #include "isa.h" #include "imagedev/floppy.h" @@ -30,13 +30,9 @@ // ======================> mufdc_device -class mufdc_device : public device_t, - public device_isa8_card_interface +class mufdc_device : public device_t, public device_isa8_card_interface { public: - // construction/destruction - mufdc_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, const char *name, const char *shortname); - // optional information overrides virtual machine_config_constructor device_mconfig_additions() const override; virtual ioport_constructor device_input_ports() const override; @@ -48,6 +44,9 @@ public: DECLARE_WRITE_LINE_MEMBER( fdc_drq_w ); protected: + // construction/destruction + mufdc_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -69,9 +68,6 @@ public: fdc344_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual const tiny_rom_entry *device_rom_region() const override; - -protected: - virtual void device_config_complete() override { m_shortname = "fdc344"; } }; class fdcmag_device : public mufdc_device @@ -81,13 +77,10 @@ public: fdcmag_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual const tiny_rom_entry *device_rom_region() const override; - -protected: - virtual void device_config_complete() override { m_shortname = "fdcmag"; } }; // device type definition -extern const device_type ISA8_FDC344; -extern const device_type ISA8_FDCMAG; +DECLARE_DEVICE_TYPE(ISA8_FDC344, fdc344_device) +DECLARE_DEVICE_TYPE(ISA8_FDCMAG, fdcmag_device) -#endif +#endif // MAME_BUS_ISA_MUFDC_H diff --git a/src/devices/bus/isa/ne1000.cpp b/src/devices/bus/isa/ne1000.cpp index 4fa63153c30..ad7ce5d8f69 100644 --- a/src/devices/bus/isa/ne1000.cpp +++ b/src/devices/bus/isa/ne1000.cpp @@ -10,18 +10,18 @@ static MACHINE_CONFIG_FRAGMENT(ne1000_config) MCFG_DP8390D_MEM_WRITE_CB(WRITE8(ne1000_device, ne1000_mem_write)) MACHINE_CONFIG_END -const device_type NE1000 = device_creator; +DEFINE_DEVICE_TYPE(NE1000, ne1000_device, "ne1000", "NE1000 Network Adapter") machine_config_constructor ne1000_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME(ne1000_config); } ne1000_device::ne1000_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, NE1000, "NE1000 Network Adapter", tag, owner, clock, "ne1000", __FILE__), - device_isa8_card_interface(mconfig, *this), - m_dp8390(*this, "dp8390d"), + : device_t(mconfig, NE1000, tag, owner, clock), + device_isa8_card_interface(mconfig, *this), + m_dp8390(*this, "dp8390d"), m_irq(0) - { +{ } void ne1000_device::device_start() { diff --git a/src/devices/bus/isa/ne1000.h b/src/devices/bus/isa/ne1000.h index 6aff2bef047..5277b4d61c5 100644 --- a/src/devices/bus/isa/ne1000.h +++ b/src/devices/bus/isa/ne1000.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Carl -#ifndef __NE1000_H__ -#define __NE1000_H__ +#ifndef MAME_BUS_ISA_NE1000_H +#define MAME_BUS_ISA_NE1000_H + +#pragma once // NE1000 is 8bit has 8KB ram; NE2000 is 16bit has 16KB ram @@ -31,6 +33,6 @@ private: uint8_t m_prom[16]; }; -extern const device_type NE1000; +DECLARE_DEVICE_TYPE(NE1000, ne1000_device) -#endif +#endif // MAME_BUS_ISA_NE1000_H diff --git a/src/devices/bus/isa/ne2000.cpp b/src/devices/bus/isa/ne2000.cpp index 82997bb38d0..d348a7fe095 100644 --- a/src/devices/bus/isa/ne2000.cpp +++ b/src/devices/bus/isa/ne2000.cpp @@ -11,17 +11,17 @@ static MACHINE_CONFIG_FRAGMENT(ne2000_config) MCFG_DP8390D_MEM_WRITE_CB(WRITE8(ne2000_device, ne2000_mem_write)) MACHINE_CONFIG_END -const device_type NE2000 = device_creator; +DEFINE_DEVICE_TYPE(NE2000, ne2000_device, "ne2000", "NE2000 Network Adapter") machine_config_constructor ne2000_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME(ne2000_config); } ne2000_device::ne2000_device(const machine_config& mconfig, const char* tag, device_t* owner, uint32_t clock) - : device_t(mconfig, NE2000, "NE2000 Network Adapter", tag, owner, clock, "ne2000", __FILE__), - device_isa16_card_interface(mconfig, *this), - m_dp8390(*this, "dp8390d"), - m_irq(0) + : device_t(mconfig, NE2000, tag, owner, clock), + device_isa16_card_interface(mconfig, *this), + m_dp8390(*this, "dp8390d"), + m_irq(0) { } diff --git a/src/devices/bus/isa/ne2000.h b/src/devices/bus/isa/ne2000.h index e99308749d7..27f3688d1b5 100644 --- a/src/devices/bus/isa/ne2000.h +++ b/src/devices/bus/isa/ne2000.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Carl -#ifndef __NE2000_H__ -#define __NE2000_H__ +#ifndef MAME_BUS_ISA_NE2000_H +#define MAME_BUS_ISA_NE2000_H + +#pragma once #include "isa.h" #include "machine/dp8390.h" @@ -29,6 +31,6 @@ private: uint8_t m_prom[16]; }; -extern const device_type NE2000; +DECLARE_DEVICE_TYPE(NE2000, ne2000_device) -#endif +#endif // MAME_BUS_ISA_NE2000_H diff --git a/src/devices/bus/isa/num9rev.cpp b/src/devices/bus/isa/num9rev.cpp index c2ee133c394..8e0963a0fa8 100644 --- a/src/devices/bus/isa/num9rev.cpp +++ b/src/devices/bus/isa/num9rev.cpp @@ -12,7 +12,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type ISA8_NUM_9_REV = device_creator; +DEFINE_DEVICE_TYPE(ISA8_NUM_9_REV, isa8_number_9_rev_device, "number_9_rev", "Number Nine Revolution 512x32/1024x8") static ADDRESS_MAP_START( upd7220_map, AS_0, 16, isa8_number_9_rev_device ) AM_RANGE(0x00000, 0x3ffff) AM_NOP @@ -80,12 +80,12 @@ machine_config_constructor isa8_number_9_rev_device::device_mconfig_additions() //------------------------------------------------- isa8_number_9_rev_device::isa8_number_9_rev_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, ISA8_NUM_9_REV, "Number Nine Revolution 512x32/1024x8", tag, owner, clock, "number_9_rev", __FILE__), - device_isa8_card_interface(mconfig, *this), - m_upd7220(*this, "upd7220"), - m_palette(*this, "palette"), - m_ram(1024*1024), - m_overlay(1024), m_bank(0), m_mode(0), m_1024(false) + device_t(mconfig, ISA8_NUM_9_REV, tag, owner, clock), + device_isa8_card_interface(mconfig, *this), + m_upd7220(*this, "upd7220"), + m_palette(*this, "palette"), + m_ram(1024*1024), + m_overlay(1024), m_bank(0), m_mode(0), m_1024(false) { } diff --git a/src/devices/bus/isa/num9rev.h b/src/devices/bus/isa/num9rev.h index a7f4d5b39ac..805ee13d449 100644 --- a/src/devices/bus/isa/num9rev.h +++ b/src/devices/bus/isa/num9rev.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Carl -#pragma once +#ifndef MAME_BUS_ISA_NUM9REV_H +#define MAME_BUS_ISA_NUM9REV_H -#ifndef __NUM9REV_H__ -#define __NUM9REV_H__ +#pragma once #include "isa.h" #include "video/upd7220.h" @@ -57,6 +57,6 @@ private: }; // device type definition -extern const device_type ISA8_NUM_9_REV; +DECLARE_DEVICE_TYPE(ISA8_NUM_9_REV, isa8_number_9_rev_device) -#endif /* __NUM9REV_H__ */ +#endif // MAME_BUS_ISA_NUM9REV_H diff --git a/src/devices/bus/isa/omti8621.cpp b/src/devices/bus/isa/omti8621.cpp index 93822d01ae3..1b210ae4c0c 100644 --- a/src/devices/bus/isa/omti8621.cpp +++ b/src/devices/bus/isa/omti8621.cpp @@ -12,10 +12,6 @@ * * http://www.bitsavers.org/pdf/sms/pc/OMTI_AT_Controller_Series_Jan87.pdf */ -#define VERBOSE 0 - -static int verbose = VERBOSE; - #include "emu.h" #include "omti8621.h" #include "image.h" @@ -23,6 +19,10 @@ static int verbose = VERBOSE; #include "formats/naslite_dsk.h" #include "formats/apollo_dsk.h" +#define VERBOSE 0 + +static int verbose = VERBOSE; + #define LOG(x) { logerror ("%s: ", cpu_context(this)); logerror x; logerror ("\n"); } #define LOG1(x) { if (verbose > 0) LOG(x)} #define LOG2(x) { if (verbose > 1) LOG(x)} @@ -45,7 +45,7 @@ static int verbose = VERBOSE; #define OMTI_BIOS_REGION "omti_bios" // forward declaration of image class -extern const device_type OMTI_DISK; +DECLARE_DEVICE_TYPE(OMTI_DISK, omti_disk_image_device) class omti_disk_image_device : public device_t, public device_image_interface @@ -376,30 +376,27 @@ void omti8621_device::device_reset() alternate_track_address[1] = 0; } -const device_type ISA16_OMTI8621 = device_creator; +DEFINE_DEVICE_TYPE(ISA16_OMTI8621, omti8621_pc_device, "omti8621isa", "OMTI 8621 ESDI/floppy controller (ISA)") omti8621_pc_device::omti8621_pc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : omti8621_device(mconfig, ISA16_OMTI8621, "OMTI 8621 ESDI/floppy controller (ISA)", tag, owner, clock, "omti8621isa", __FILE__) + : omti8621_device(mconfig, ISA16_OMTI8621, tag, owner, clock) { } -const device_type ISA16_OMTI8621_APOLLO = device_creator; +DEFINE_DEVICE_TYPE(ISA16_OMTI8621_APOLLO, omti8621_apollo_device, "omti8621ap", "OMTI 8621 ESDI/floppy controller (Apollo)") omti8621_apollo_device::omti8621_apollo_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : omti8621_device(mconfig, ISA16_OMTI8621_APOLLO, "OMTI 8621 ESDI/floppy controller (Apollo)", tag, owner, clock, "omti8621ap", __FILE__) + : omti8621_device(mconfig, ISA16_OMTI8621_APOLLO, tag, owner, clock) { } omti8621_device::omti8621_device( const machine_config &mconfig, device_type type, - const char *name, const char *tag, device_t *owner, - uint32_t clock, - const char *shortname, - const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source) + uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) , device_isa16_card_interface(mconfig, *this) , m_fdc(*this, OMTI_FDC_TAG) , m_iobase(*this, "IO_BASE") @@ -1309,11 +1306,12 @@ void omti8621_device::eop_w(int state) //########################################################################## // device type definition -const device_type OMTI_DISK = device_creator; +DEFINE_DEVICE_TYPE(OMTI_DISK, omti_disk_image_device, "omti_disk_image", "OMTI 8621 ESDI disk") omti_disk_image_device::omti_disk_image_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, OMTI_DISK, "OMTI8621 ESDI disk", tag, owner, clock, "omti_disk_image", __FILE__), - device_image_interface(mconfig, *this), m_type(0), m_cylinders(0), m_heads(0), m_sectors(0), m_sectorbytes(0), m_sector_count(0), m_image(nullptr) + : device_t(mconfig, OMTI_DISK, tag, owner, clock) + , device_image_interface(mconfig, *this) + , m_type(0), m_cylinders(0), m_heads(0), m_sectors(0), m_sectorbytes(0), m_sector_count(0), m_image(nullptr) { } diff --git a/src/devices/bus/isa/omti8621.h b/src/devices/bus/isa/omti8621.h index 2c031f1113e..66f5ad64b73 100644 --- a/src/devices/bus/isa/omti8621.h +++ b/src/devices/bus/isa/omti8621.h @@ -18,9 +18,6 @@ #include "isa.h" #include "machine/pc_fdc.h" -#define OMTI_MAX_LUN 1 -#define CDB_SIZE 10 - /*************************************************************************** FUNCTION PROTOTYPES ***************************************************************************/ @@ -37,24 +34,20 @@ public: static void set_verbose(int on_off); - required_device m_fdc; - required_ioport m_iobase; - required_ioport m_biosopts; - DECLARE_WRITE_LINE_MEMBER( fdc_irq_w ); DECLARE_WRITE_LINE_MEMBER( fdc_drq_w ); DECLARE_FLOPPY_FORMATS( floppy_formats ); protected: + static constexpr unsigned OMTI_MAX_LUN = 1; + static constexpr unsigned CDB_SIZE = 10; + omti8621_device( const machine_config &mconfig, device_type type, - const char *name, const char *tag, device_t *owner, - uint32_t clock, - const char *shortname, - const char *source); + uint32_t clock); // device-level overrides virtual void device_start() override; @@ -70,6 +63,10 @@ protected: void set_interrupt(enum line_state line_state); + required_device m_fdc; + required_ioport m_iobase; + required_ioport m_biosopts; + omti_disk_image_device *our_disks[OMTI_MAX_LUN+1]; private: @@ -141,7 +138,7 @@ public: omti8621_pc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; -extern const device_type ISA16_OMTI8621; +DECLARE_DEVICE_TYPE(ISA16_OMTI8621, omti8621_pc_device) /* ----- omti8621 for apollo device interface ----- */ @@ -156,7 +153,7 @@ protected: virtual const tiny_rom_entry *device_rom_region() const override; }; -extern const device_type ISA16_OMTI8621_APOLLO; +DECLARE_DEVICE_TYPE(ISA16_OMTI8621_APOLLO, omti8621_apollo_device) //############################################################### diff --git a/src/devices/bus/isa/p1_fdc.cpp b/src/devices/bus/isa/p1_fdc.cpp index 27983e5abdd..b2eacdb35e6 100644 --- a/src/devices/bus/isa/p1_fdc.cpp +++ b/src/devices/bus/isa/p1_fdc.cpp @@ -29,7 +29,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type P1_FDC = device_creator; +DEFINE_DEVICE_TYPE(P1_FDC, p1_fdc_device, "p1_fdc", "Poisk-1 floppy B504") FLOPPY_FORMATS_MEMBER( p1_fdc_device::floppy_formats ) FLOPPY_PC_FORMAT @@ -178,7 +178,7 @@ WRITE8_MEMBER(p1_fdc_device::p1_fdc_w) //------------------------------------------------- p1_fdc_device::p1_fdc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, P1_FDC, "Poisk-1 floppy B504", tag, owner, clock, "p1_fdc", __FILE__) + : device_t(mconfig, P1_FDC, tag, owner, clock) , device_isa8_card_interface(mconfig, *this) , m_fdc(*this, "fdc") { @@ -194,8 +194,8 @@ void p1_fdc_device::device_start() set_isa_device(); m_isa->install_rom(this, 0xe0000, 0xe07ff, "XXX", "p1_fdc"); m_isa->install_device(0x00c0, 0x00c3, - READ8_DEVICE_DELEGATE(m_fdc, fd1793_t, read), - WRITE8_DEVICE_DELEGATE(m_fdc, fd1793_t, write) ); + READ8_DEVICE_DELEGATE(m_fdc, fd1793_device, read), + WRITE8_DEVICE_DELEGATE(m_fdc, fd1793_device, write) ); m_isa->install_device(0x00c4, 0x00c7, read8_delegate( FUNC(p1_fdc_device::p1_fdc_r), this ), write8_delegate( FUNC(p1_fdc_device::p1_fdc_w), this ) ); } diff --git a/src/devices/bus/isa/p1_fdc.h b/src/devices/bus/isa/p1_fdc.h index 672d80f7773..81d17bb4bf5 100644 --- a/src/devices/bus/isa/p1_fdc.h +++ b/src/devices/bus/isa/p1_fdc.h @@ -6,14 +6,14 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_ISA_P1_FDC_H +#define MAME_BUS_ISA_P1_FDC_H -#ifndef __P1_FDC__ -#define __P1_FDC__ +#pragma once -#include "imagedev/flopdrv.h" #include "isa.h" +#include "imagedev/flopdrv.h" #include "machine/wd_fdc.h" //************************************************************************** @@ -42,7 +42,7 @@ protected: virtual void device_reset() override; private: - required_device m_fdc; + required_device m_fdc; public: void p1_wd17xx_aux_w(int data); @@ -52,7 +52,7 @@ public: // device type definition -extern const device_type P1_FDC; +DECLARE_DEVICE_TYPE(P1_FDC, p1_fdc_device) -#endif +#endif // MAME_BUS_ISA_P1_FDC_H diff --git a/src/devices/bus/isa/p1_hdc.cpp b/src/devices/bus/isa/p1_hdc.cpp index 206c3c04360..22f60d71d1a 100644 --- a/src/devices/bus/isa/p1_hdc.cpp +++ b/src/devices/bus/isa/p1_hdc.cpp @@ -33,7 +33,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type P1_HDC = device_creator; +DEFINE_DEVICE_TYPE(P1_HDC, p1_hdc_device, "p1_hdc", "Poisk-1 MFM disk B942") static MACHINE_CONFIG_FRAGMENT( hdc_b942 ) MCFG_DEVICE_ADD(KM1809VG7_TAG, WD2010, 5000000) // XXX clock? @@ -121,7 +121,7 @@ WRITE8_MEMBER(p1_hdc_device::p1_HDC_w) //------------------------------------------------- p1_hdc_device::p1_hdc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, P1_HDC, "Poisk-1 MFM disk B942", tag, owner, clock, "p1_hdc", __FILE__) + : device_t(mconfig, P1_HDC, tag, owner, clock) , device_isa8_card_interface(mconfig, *this) , m_hdc(*this, KM1809VG7_TAG) { diff --git a/src/devices/bus/isa/p1_hdc.h b/src/devices/bus/isa/p1_hdc.h index ef3e16c526e..071cbcded95 100644 --- a/src/devices/bus/isa/p1_hdc.h +++ b/src/devices/bus/isa/p1_hdc.h @@ -6,14 +6,14 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_ISA_P1_HDC_H +#define MAME_BUS_ISA_P1_HDC_H -#ifndef __P1_HDC__ -#define __P1_HDC__ +#pragma once -#include "imagedev/harddriv.h" #include "isa.h" +#include "imagedev/harddriv.h" #include "machine/wd2010.h" //************************************************************************** @@ -48,7 +48,7 @@ public: // device type definition -extern const device_type P1_HDC; +DECLARE_DEVICE_TYPE(P1_HDC, p1_hdc_device) -#endif +#endif // MAME_BUS_ISA_P1_HDC_H diff --git a/src/devices/bus/isa/p1_rom.cpp b/src/devices/bus/isa/p1_rom.cpp index b46b495b6a0..d35135f95bc 100644 --- a/src/devices/bus/isa/p1_rom.cpp +++ b/src/devices/bus/isa/p1_rom.cpp @@ -14,7 +14,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type P1_ROM = device_creator; +DEFINE_DEVICE_TYPE(P1_ROM, p1_rom_device, "p1_rom", "Poisk-1 ROM cart") //------------------------------------------------- @@ -51,7 +51,7 @@ const tiny_rom_entry *p1_rom_device::device_rom_region() const //------------------------------------------------- p1_rom_device::p1_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, P1_ROM, "Poisk-1 ROM cart", tag, owner, clock, "p1_rom", __FILE__) + : device_t(mconfig, P1_ROM, tag, owner, clock) , device_isa8_card_interface(mconfig, *this) { } diff --git a/src/devices/bus/isa/p1_rom.h b/src/devices/bus/isa/p1_rom.h index fc88dd08222..f91d048a523 100644 --- a/src/devices/bus/isa/p1_rom.h +++ b/src/devices/bus/isa/p1_rom.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_ISA_P1_ROM_H +#define MAME_BUS_ISA_P1_ROM_H -#ifndef __P1_ROM__ -#define __P1_ROM__ +#pragma once #include "isa.h" @@ -38,4 +38,4 @@ protected: extern const device_type P1_ROM; -#endif +#endif // MAME_BUS_ISA_P1_ROM_H diff --git a/src/devices/bus/isa/p1_sound.cpp b/src/devices/bus/isa/p1_sound.cpp index d0c37039030..103d1b2f6c6 100644 --- a/src/devices/bus/isa/p1_sound.cpp +++ b/src/devices/bus/isa/p1_sound.cpp @@ -22,7 +22,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type P1_SOUND = device_creator; +DEFINE_DEVICE_TYPE(P1_SOUND, p1_sound_device, "p1_sound", "Poisk-1 sound card (B623)") //------------------------------------------------- @@ -93,7 +93,7 @@ machine_config_constructor p1_sound_device::device_mconfig_additions() const //------------------------------------------------- p1_sound_device::p1_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, P1_SOUND, "Poisk-1 sound card (B623)", tag, owner, clock, "p1_sound", __FILE__) + : device_t(mconfig, P1_SOUND, tag, owner, clock) , device_isa8_card_interface(mconfig, *this) , m_dac(*this, "dac") , m_filter(*this, "filter") @@ -207,5 +207,5 @@ void p1_sound_device::device_reset() m_dac_ptr = 0; // 5 kHz lowpass filter. XXX check schematics - m_filter->filter_rc_set_RC(FLT_RC_LOWPASS, 330, 0, 0, CAP_N(100)); + m_filter->filter_rc_set_RC(filter_rc_device::LOWPASS, 330, 0, 0, CAP_N(100)); } diff --git a/src/devices/bus/isa/p1_sound.h b/src/devices/bus/isa/p1_sound.h index 039d5b7868a..aee52304b99 100644 --- a/src/devices/bus/isa/p1_sound.h +++ b/src/devices/bus/isa/p1_sound.h @@ -9,14 +9,14 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_P1_SOUND_H +#define MAME_BUS_P1_SOUND_H -#ifndef __P1_SOUND__ -#define __P1_SOUND__ +#pragma once -#include "bus/midi/midi.h" #include "isa.h" +#include "bus/midi/midi.h" #include "machine/i8251.h" #include "machine/pit8253.h" #include "sound/dac.h" @@ -66,7 +66,7 @@ private: // device type definition -extern const device_type P1_SOUND; +DECLARE_DEVICE_TYPE(P1_SOUND, p1_sound_device) -#endif +#endif // MAME_BUS_P1_SOUND_H diff --git a/src/devices/bus/isa/pc1640_iga.cpp b/src/devices/bus/isa/pc1640_iga.cpp index 69d3e037edf..83accf6794c 100644 --- a/src/devices/bus/isa/pc1640_iga.cpp +++ b/src/devices/bus/isa/pc1640_iga.cpp @@ -36,7 +36,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type ISA8_PC1640_IGA = device_creator; +DEFINE_DEVICE_TYPE(ISA8_PC1640_IGA, isa8_pc1640_iga_device, "pc1640_iga", "Amstrad PC1640 IGA") //------------------------------------------------- @@ -69,7 +69,7 @@ const tiny_rom_entry *isa8_pc1640_iga_device::device_rom_region() const //------------------------------------------------- isa8_pc1640_iga_device::isa8_pc1640_iga_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : isa8_ega_device(mconfig, ISA8_PC1640_IGA, "Amstrad PC1640 IGA", tag, owner, clock, "pc1640_iga", __FILE__) + : isa8_ega_device(mconfig, ISA8_PC1640_IGA, tag, owner, clock) { } diff --git a/src/devices/bus/isa/pc1640_iga.h b/src/devices/bus/isa/pc1640_iga.h index 4e3bf60613d..0cee53d6329 100644 --- a/src/devices/bus/isa/pc1640_iga.h +++ b/src/devices/bus/isa/pc1640_iga.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_ISA_PC1640_IGA_H +#define MAME_BUS_ISA_PC1640_IGA_H -#ifndef __ISA8_PC1640_IGA__ -#define __ISA8_PC1640_IGA__ +#pragma once #include "isa.h" #include "ega.h" @@ -38,8 +38,7 @@ protected: // device type definition -extern const device_type ISA8_PC1640_IGA; - +DECLARE_DEVICE_TYPE(ISA8_PC1640_IGA, isa8_pc1640_iga_device) -#endif +#endif // MAME_BUS_ISA_PC1640_IGA_H diff --git a/src/devices/bus/isa/pds.cpp b/src/devices/bus/isa/pds.cpp index f4567c234e2..2a5c35d2785 100644 --- a/src/devices/bus/isa/pds.cpp +++ b/src/devices/bus/isa/pds.cpp @@ -19,12 +19,12 @@ #include "emu.h" #include "pds.h" -const device_type ISA8_PDS = device_creator; +DEFINE_DEVICE_TYPE(ISA8_PDS, isa8_pds_device, "isa_pds", "Programmers Development System (host)") isa8_pds_device::isa8_pds_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, ISA8_PDS, "Programmers Development System", tag, owner, clock, "isa_pds", __FILE__), - device_isa8_card_interface( mconfig, *this ), - m_ppi(*this,"pds_ppi") + : device_t(mconfig, ISA8_PDS, tag, owner, clock) + , device_isa8_card_interface(mconfig, *this) + , m_ppi(*this,"pds_ppi") { } diff --git a/src/devices/bus/isa/pds.h b/src/devices/bus/isa/pds.h index 1bbcf2007d5..7b92f10350b 100644 --- a/src/devices/bus/isa/pds.h +++ b/src/devices/bus/isa/pds.h @@ -6,8 +6,8 @@ * Created on: 31/01/2014 */ -#ifndef ISA_PDS_H_ -#define ISA_PDS_H_ +#ifndef MAME_BUS_ISA_PDS_H +#define MAME_BUS_ISA_PDS_H #include "isa.h" #include "machine/i8255.h" @@ -17,23 +17,22 @@ class isa8_pds_device : public device_isa8_card_interface { public: - isa8_pds_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + isa8_pds_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - DECLARE_READ8_MEMBER(ppi_r); - DECLARE_WRITE8_MEMBER(ppi_w); + DECLARE_READ8_MEMBER(ppi_r); + DECLARE_WRITE8_MEMBER(ppi_w); - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; - - required_device m_ppi; + // optional information overrides + virtual machine_config_constructor device_mconfig_additions() const override; protected: - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - virtual void device_stop() override; + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + virtual void device_stop() override; + required_device m_ppi; }; -extern const device_type ISA8_PDS; +DECLARE_DEVICE_TYPE(ISA8_PDS, isa8_pds_device) -#endif /* ISA_PDS_H_ */ +#endif // MAME_BUS_ISA_PDS_H diff --git a/src/devices/bus/isa/pgc.cpp b/src/devices/bus/isa/pgc.cpp index 3d004231fbf..261fbc6eda3 100644 --- a/src/devices/bus/isa/pgc.cpp +++ b/src/devices/bus/isa/pgc.cpp @@ -166,7 +166,7 @@ MACHINE_CONFIG_END // GLOBAL VARIABLES //************************************************************************** -const device_type ISA8_PGC = device_creator; +DEFINE_DEVICE_TYPE(ISA8_PGC, isa8_pgc_device, "isa_ibm_pgc", "IBM Professional Graphics Controller") //------------------------------------------------- @@ -206,20 +206,17 @@ ioport_constructor isa8_pgc_device::device_input_ports() const //------------------------------------------------- isa8_pgc_device::isa8_pgc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, ISA8_PGC, "IBM Professional Graphics Controller", tag, owner, clock, "isa_ibm_pgc", __FILE__), - device_isa8_card_interface(mconfig, *this), - m_cpu(*this, "maincpu"), - m_screen(*this, PGC_SCREEN_NAME), - m_palette(*this, "palette"), m_commarea(nullptr), m_vram(nullptr), m_eram(nullptr), m_bitmap(nullptr) + isa8_pgc_device(mconfig, ISA8_PGC, tag, owner, clock) { } -isa8_pgc_device::isa8_pgc_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), +isa8_pgc_device::isa8_pgc_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), device_isa8_card_interface(mconfig, *this), m_cpu(*this, "maincpu"), m_screen(*this, PGC_SCREEN_NAME), - m_palette(*this, "palette"), m_commarea(nullptr), m_vram(nullptr), m_eram(nullptr), m_bitmap(nullptr) + m_palette(*this, "palette"), + m_commarea(nullptr), m_vram(nullptr), m_eram(nullptr), m_bitmap(nullptr) { } diff --git a/src/devices/bus/isa/pgc.h b/src/devices/bus/isa/pgc.h index 37de1f6e260..546c1d24f5a 100644 --- a/src/devices/bus/isa/pgc.h +++ b/src/devices/bus/isa/pgc.h @@ -1,10 +1,10 @@ // license:BSD-3-Clause // copyright-holders:Sergey Svishchev -#pragma once +#ifndef MAME_BUS_ISA_PGC_H +#define MAME_BUS_ISA_PGC_H -#ifndef __ISA_PGC_H__ -#define __ISA_PGC_H__ +#pragma once #include "cpu/i86/i86.h" @@ -23,7 +23,6 @@ class isa8_pgc_device : public: // construction/destruction isa8_pgc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - isa8_pgc_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); // optional information overrides virtual machine_config_constructor device_mconfig_additions() const override; @@ -44,6 +43,8 @@ public: void reset_common(); protected: + isa8_pgc_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -63,6 +64,6 @@ private: // device type definition -extern const device_type ISA8_PGC; +DECLARE_DEVICE_TYPE(ISA8_PGC, isa8_pgc_device) -#endif /* __ISA_PGC_H__ */ +#endif // MAME_BUS_ISA_PGC_H diff --git a/src/devices/bus/isa/s3virge.cpp b/src/devices/bus/isa/s3virge.cpp index b9df7bca59b..27c142036bf 100644 --- a/src/devices/bus/isa/s3virge.cpp +++ b/src/devices/bus/isa/s3virge.cpp @@ -20,32 +20,32 @@ #define CRTC_PORT_ADDR ((vga.miscellaneous_output & 1) ? 0x3d0 : 0x3b0) #define LOG_REG 1 -const device_type S3VIRGE = device_creator; -const device_type S3VIRGEDX = device_creator; -const device_type S3VIRGEDX1 = device_creator; +DEFINE_DEVICE_TYPE(S3VIRGE, s3virge_vga_device, "virge_vga", "S3 86C325") +DEFINE_DEVICE_TYPE(S3VIRGEDX, s3virgedx_vga_device, "virgedx_vga", "S3 86C375") +DEFINE_DEVICE_TYPE(S3VIRGEDX1, s3virgedx_rev1_vga_device, "virgedx_vga_r1", "S3 86C375 (rev 1)") s3virge_vga_device::s3virge_vga_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : s3_vga_device(mconfig, S3VIRGE, "S3 86C325", tag, owner, clock, "virge_vga", __FILE__) + : s3virge_vga_device(mconfig, S3VIRGE, tag, owner, clock) { } -s3virge_vga_device::s3virge_vga_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : s3_vga_device(mconfig, type, name, tag, owner, clock, shortname, source) +s3virge_vga_device::s3virge_vga_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : s3_vga_device(mconfig, type, tag, owner, clock) { } s3virgedx_vga_device::s3virgedx_vga_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : s3virge_vga_device(mconfig, S3VIRGEDX, "S3 86C375", tag, owner, clock, "virgedx_vga", __FILE__) + : s3virgedx_vga_device(mconfig, S3VIRGEDX, tag, owner, clock) { } -s3virgedx_vga_device::s3virgedx_vga_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : s3virge_vga_device(mconfig, type, name, tag, owner, clock, shortname, source) +s3virgedx_vga_device::s3virgedx_vga_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : s3virge_vga_device(mconfig, type, tag, owner, clock) { } s3virgedx_rev1_vga_device::s3virgedx_rev1_vga_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : s3virgedx_vga_device(mconfig, S3VIRGEDX1, "S3 86C375 (rev 1)", tag, owner, clock, "virgedx_r1", __FILE__) + : s3virgedx_vga_device(mconfig, S3VIRGEDX1, tag, owner, clock) { } diff --git a/src/devices/bus/isa/s3virge.h b/src/devices/bus/isa/s3virge.h index cadbcd8ef63..0ee07815092 100644 --- a/src/devices/bus/isa/s3virge.h +++ b/src/devices/bus/isa/s3virge.h @@ -7,8 +7,10 @@ * */ -#ifndef S3VIRGE_H_ -#define S3VIRGE_H_ +#ifndef MAME_BUS_ISA_S3VIRGE_H +#define MAME_BUS_ISA_S3VIRGE_H + +#pragma once #include "video/pc_vga.h" @@ -19,7 +21,6 @@ class s3virge_vga_device : public s3_vga_device public: // construction/destruction s3virge_vga_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - s3virge_vga_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); virtual READ8_MEMBER(port_03b0_r) override; virtual WRITE8_MEMBER(port_03b0_w) override; @@ -31,7 +32,10 @@ public: virtual WRITE8_MEMBER(mem_w) override; ibm8514a_device* get_8514() { fatalerror("s3virge requested non-existant 8514/A device\n"); return nullptr; } + protected: + s3virge_vga_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -51,9 +55,10 @@ class s3virgedx_vga_device : public s3virge_vga_device public: // construction/destruction s3virgedx_vga_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - s3virgedx_vga_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); protected: + s3virgedx_vga_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -74,8 +79,8 @@ protected: }; // device type definition -extern const device_type S3VIRGE; -extern const device_type S3VIRGEDX; -extern const device_type S3VIRGEDX1; +DECLARE_DEVICE_TYPE(S3VIRGE, s3virge_vga_device) +DECLARE_DEVICE_TYPE(S3VIRGEDX, s3virgedx_vga_device) +DECLARE_DEVICE_TYPE(S3VIRGEDX1, s3virgedx_rev1_vga_device) -#endif /* S3VIRGE_H_ */ +#endif // MAME_BUS_ISA_S3VIRGE_H diff --git a/src/devices/bus/isa/sb16.cpp b/src/devices/bus/isa/sb16.cpp index 1c8a9cda8c0..1207b6dfafd 100644 --- a/src/devices/bus/isa/sb16.cpp +++ b/src/devices/bus/isa/sb16.cpp @@ -12,7 +12,7 @@ #include "speaker.h" -const device_type ISA16_SB16 = device_creator; +DEFINE_DEVICE_TYPE(ISA16_SB16, sb16_lle_device, "sb16", "SoundBlaster 16 Audio Adapter LLE") READ8_MEMBER( sb16_lle_device::dsp_data_r ) { @@ -681,7 +681,7 @@ WRITE8_MEMBER( sb16_lle_device::mpu401_w ) } sb16_lle_device::sb16_lle_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, ISA16_SB16, "SoundBlaster 16 Audio Adapter LLE", tag, owner, clock, "sb16", __FILE__), + device_t(mconfig, ISA16_SB16, tag, owner, clock), device_isa16_card_interface(mconfig, *this), m_ldac(*this, "ldac"), m_rdac(*this, "rdac"), diff --git a/src/devices/bus/isa/sb16.h b/src/devices/bus/isa/sb16.h index a8de59fea45..8f02531ae55 100644 --- a/src/devices/bus/isa/sb16.h +++ b/src/devices/bus/isa/sb16.h @@ -1,14 +1,14 @@ // license:BSD-3-Clause // copyright-holders:Carl -#ifndef __SB16__ -#define __SB16__ +#ifndef MAME_BUS_ISA_SB16_H +#define MAME_BUS_ISA_SB16_H #include "isa.h" -#include "sound/dac.h" #include "bus/pc_joy/pc_joy.h" #include "cpu/mcs51/mcs51.h" #include "sound/262intf.h" +#include "sound/dac.h" //********************************************************************* // TYPE DEFINITIONS @@ -16,8 +16,7 @@ // ====================> sb16_device -class sb16_lle_device : public device_t, - public device_isa16_card_interface +class sb16_lle_device : public device_t, public device_isa16_card_interface { public: // construction/destruction @@ -27,11 +26,6 @@ public: virtual const tiny_rom_entry *device_rom_region() const override; virtual machine_config_constructor device_mconfig_additions() const override; - required_device m_ldac; - required_device m_rdac; - required_device m_joy; - required_device m_cpu; - READ8_MEMBER( mpu401_r ); WRITE8_MEMBER( mpu401_w ); @@ -88,6 +82,12 @@ protected: void dack_w(int line, uint8_t data) override; uint16_t dack16_r(int line) override; void dack16_w(int line, uint16_t data) override; + + required_device m_ldac; + required_device m_rdac; + required_device m_joy; + required_device m_cpu; + private: void control_timer(bool start); @@ -116,4 +116,4 @@ private: extern const device_type ISA16_SB16; -#endif +#endif // MAME_BUS_ISA_SB16_H diff --git a/src/devices/bus/isa/sblaster.cpp b/src/devices/bus/isa/sblaster.cpp index 54a861a6526..235c9d92de7 100644 --- a/src/devices/bus/isa/sblaster.cpp +++ b/src/devices/bus/isa/sblaster.cpp @@ -21,6 +21,18 @@ #include "speaker.h" +#define SIXTEENBIT 0x01 +#define STEREO 0x02 +#define SIGNED 0x04 +#define ADPCM2 0x08 +#define ADPCM3 0x10 +#define ADPCM4 0x20 + +#define IRQ_DMA8 0x01 +#define IRQ_DMA16 0x02 +#define IRQ_MPU 0x04 +#define IRQ_ALL 0xff + /* adlib (YM3812/OPL2 chip), part of many many soundcards (soundblaster) @@ -1194,9 +1206,9 @@ ioport_constructor sb16_device::device_input_ports() const // GLOBAL VARIABLES //************************************************************************** -const device_type ISA8_SOUND_BLASTER_1_0 = device_creator; -const device_type ISA8_SOUND_BLASTER_1_5 = device_creator; -const device_type ISA16_SOUND_BLASTER_16 = device_creator; +DEFINE_DEVICE_TYPE(ISA8_SOUND_BLASTER_1_0, isa8_sblaster1_0_device, "isa_sblaster1_0", "Sound Blaster 1.0") +DEFINE_DEVICE_TYPE(ISA8_SOUND_BLASTER_1_5, isa8_sblaster1_5_device, "isa_sblaster1_5", "Sound Blaster 1.5") +DEFINE_DEVICE_TYPE(ISA16_SOUND_BLASTER_16, isa16_sblaster16_device, "isa_sblaster_16", "Sound Blaster 16") //------------------------------------------------- // machine_config_additions - device-specific @@ -1222,8 +1234,8 @@ machine_config_constructor isa16_sblaster16_device::device_mconfig_additions() c // LIVE DEVICE //************************************************************************** -sb_device::sb_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, const char *name, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), +sb_device::sb_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), device_serial_interface(mconfig, *this), m_ldac(*this, "ldac"), m_rdac(*this, "rdac"), @@ -1233,15 +1245,15 @@ sb_device::sb_device(const machine_config &mconfig, device_type type, const char { } -sb8_device::sb8_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, const char *name, const char *shortname, const char *source) : - sb_device(mconfig, type, tag, owner, clock, name, shortname, source), +sb8_device::sb8_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + sb_device(mconfig, type, tag, owner, clock), device_isa8_card_interface(mconfig, *this), m_ym3812(*this, "ym3812") { } -sb16_device::sb16_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, const char *name, const char *shortname, const char *source) : - sb_device(mconfig, type, tag, owner, clock, name, shortname, source), +sb16_device::sb16_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + sb_device(mconfig, type, tag, owner, clock), device_isa16_card_interface(mconfig, *this) { } @@ -1251,19 +1263,19 @@ sb16_device::sb16_device(const machine_config &mconfig, device_type type, const //------------------------------------------------- isa8_sblaster1_0_device::isa8_sblaster1_0_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - sb8_device(mconfig, ISA8_SOUND_BLASTER_1_0, tag, owner, clock, "Sound Blaster 1.0", "isa_sblaster1_0", __FILE__), + sb8_device(mconfig, ISA8_SOUND_BLASTER_1_0, tag, owner, clock), m_saa1099_1(*this, "saa1099.1"), m_saa1099_2(*this, "saa1099.2") { } isa8_sblaster1_5_device::isa8_sblaster1_5_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - sb8_device(mconfig, ISA8_SOUND_BLASTER_1_5, tag, owner, clock, "Sound Blaster 1.5", "isa_sblaster1_5", __FILE__) + sb8_device(mconfig, ISA8_SOUND_BLASTER_1_5, tag, owner, clock) { } isa16_sblaster16_device::isa16_sblaster16_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - sb16_device(mconfig, ISA16_SOUND_BLASTER_16, tag, owner, clock, "Sound Blaster 16", "isa_sblaster_16", __FILE__) + sb16_device(mconfig, ISA16_SOUND_BLASTER_16, tag, owner, clock) { } diff --git a/src/devices/bus/isa/sblaster.h b/src/devices/bus/isa/sblaster.h index 3c4b75b6655..8411a35acac 100644 --- a/src/devices/bus/isa/sblaster.h +++ b/src/devices/bus/isa/sblaster.h @@ -1,258 +1,245 @@ // license:BSD-3-Clause // copyright-holders:R. Belmont, Miodrag Milanovic -#pragma once +#ifndef MAME_BUS_ISA_SBLASTER_H +#define MAME_BUS_ISA_SBLASTER_H -#ifndef __ISA_SOUND_BLASTER_H__ -#define __ISA_SOUND_BLASTER_H__ +#pragma once -#include "bus/midi/midi.h" #include "isa.h" -#include "sound/dac.h" +#include "bus/midi/midi.h" #include "bus/pc_joy/pc_joy.h" #include "sound/3812intf.h" +#include "sound/dac.h" #include "sound/saa1099.h" -#define SIXTEENBIT 0x01 -#define STEREO 0x02 -#define SIGNED 0x04 -#define ADPCM2 0x08 -#define ADPCM3 0x10 -#define ADPCM4 0x20 - -#define IRQ_DMA8 0x01 -#define IRQ_DMA16 0x02 -#define IRQ_MPU 0x04 -#define IRQ_ALL 0xff - //************************************************************************** // TYPE DEFINITIONS //************************************************************************** -struct sb8_dsp_state -{ - uint8_t reset_latch; - uint8_t rbuf_status; - uint8_t wbuf_status; - uint8_t fifo[16],fifo_ptr; - uint8_t fifo_r[52],fifo_r_ptr; - uint16_t version; - uint8_t test_reg; - uint8_t speaker_on; - bool dma_no_irq; - uint32_t prot_count; - int32_t prot_value; - uint32_t frequency; - uint32_t adc_freq; - uint32_t dma_length, dma_transferred; - uint32_t adc_length, adc_transferred; - uint8_t dma_autoinit; - uint8_t data[128], d_wptr, d_rptr; - bool dma_timer_started; - bool dma_throttled; - uint8_t flags; - uint8_t irq_active; - bool adpcm_new_ref; - uint8_t adpcm_ref; - uint8_t adpcm_step; - uint8_t adpcm_count; -}; - -struct sb8_mixer -{ - uint8_t status; - uint8_t main_vol; - uint8_t dac_vol; - uint8_t fm_vol; - uint8_t mic_vol; - uint8_t in_filter; - uint8_t stereo_sel; - uint8_t cd_vol; - uint8_t line_vol; -}; - -struct sb16_mixer -{ - uint8_t data; - uint8_t status; - uint8_t main_vol[2]; - uint8_t dac_vol[2]; - uint8_t fm_vol[2]; - uint8_t cd_vol[2]; - uint8_t line_vol[2]; - uint8_t mic_vol; - uint8_t pc_speaker_vol; - uint8_t output_ctl; - uint8_t input_ctl[2]; - uint8_t input_gain[2]; - uint8_t output_gain[2]; - uint8_t agc; - uint8_t treble[2]; - uint8_t bass[2]; -}; - // ======================> sb_device (parent) class sb_device : public device_t, public device_serial_interface { public: - // construction/destruction - sb_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, const char *name, const char *shortname, const char *source); - - required_device m_ldac; - required_device m_rdac; - required_device m_joy; - required_device m_mdout; - required_ioport m_config; - - void process_fifo(uint8_t cmd); - void queue(uint8_t data); - void queue_r(uint8_t data); - uint8_t dequeue_r(); - - DECLARE_READ8_MEMBER(dsp_reset_r); - DECLARE_WRITE8_MEMBER(dsp_reset_w); - DECLARE_READ8_MEMBER(dsp_data_r); - DECLARE_WRITE8_MEMBER(dsp_data_w); - DECLARE_READ8_MEMBER(dsp_rbuf_status_r); - DECLARE_READ8_MEMBER(dsp_wbuf_status_r); - DECLARE_WRITE8_MEMBER(dsp_rbuf_status_w); - DECLARE_WRITE8_MEMBER(dsp_cmd_w); - - DECLARE_WRITE_LINE_MEMBER( midi_rx_w ) { device_serial_interface::rx_w((uint8_t)state); } + void process_fifo(uint8_t cmd); + void queue(uint8_t data); + void queue_r(uint8_t data); + uint8_t dequeue_r(); + + DECLARE_READ8_MEMBER(dsp_reset_r); + DECLARE_WRITE8_MEMBER(dsp_reset_w); + DECLARE_READ8_MEMBER(dsp_data_r); + DECLARE_WRITE8_MEMBER(dsp_data_w); + DECLARE_READ8_MEMBER(dsp_rbuf_status_r); + DECLARE_READ8_MEMBER(dsp_wbuf_status_r); + DECLARE_WRITE8_MEMBER(dsp_rbuf_status_w); + DECLARE_WRITE8_MEMBER(dsp_cmd_w); + + DECLARE_WRITE_LINE_MEMBER( midi_rx_w ) { device_serial_interface::rx_w((uint8_t)state); } protected: - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - uint8_t dack_r(int line); - void dack_w(int line, uint8_t data); - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; - virtual void drq16_w(int state) { } - virtual void drq_w(int state) { } - virtual void irq_w(int state, int source) { } - virtual void mixer_reset() {} - void adpcm_decode(uint8_t sample, int size); - - // serial overrides - virtual void rcv_complete() override; // Rx completed receiving byte - virtual void tra_complete() override; // Tx completed sending byte - virtual void tra_callback() override; // Tx send bit - - static const int MIDI_RING_SIZE = 2048; - - struct sb8_dsp_state m_dsp; - uint8_t m_dack_out; - void xmit_char(uint8_t data); - bool m_onebyte_midi, m_uart_midi, m_uart_irq, m_mpu_midi; - int m_rx_waiting, m_tx_waiting; - uint8_t m_recvring[MIDI_RING_SIZE]; - uint8_t m_xmitring[MIDI_RING_SIZE]; - int m_xmit_read, m_xmit_write; - int m_recv_read, m_recv_write; - bool m_tx_busy; - - emu_timer *m_timer; + struct sb8_dsp_state + { + uint8_t reset_latch; + uint8_t rbuf_status; + uint8_t wbuf_status; + uint8_t fifo[16],fifo_ptr; + uint8_t fifo_r[52],fifo_r_ptr; + uint16_t version; + uint8_t test_reg; + uint8_t speaker_on; + bool dma_no_irq; + uint32_t prot_count; + int32_t prot_value; + uint32_t frequency; + uint32_t adc_freq; + uint32_t dma_length, dma_transferred; + uint32_t adc_length, adc_transferred; + uint8_t dma_autoinit; + uint8_t data[128], d_wptr, d_rptr; + bool dma_timer_started; + bool dma_throttled; + uint8_t flags; + uint8_t irq_active; + bool adpcm_new_ref; + uint8_t adpcm_ref; + uint8_t adpcm_step; + uint8_t adpcm_count; + }; + + struct sb8_mixer + { + uint8_t status; + uint8_t main_vol; + uint8_t dac_vol; + uint8_t fm_vol; + uint8_t mic_vol; + uint8_t in_filter; + uint8_t stereo_sel; + uint8_t cd_vol; + uint8_t line_vol; + }; + + struct sb16_mixer + { + uint8_t data; + uint8_t status; + uint8_t main_vol[2]; + uint8_t dac_vol[2]; + uint8_t fm_vol[2]; + uint8_t cd_vol[2]; + uint8_t line_vol[2]; + uint8_t mic_vol; + uint8_t pc_speaker_vol; + uint8_t output_ctl; + uint8_t input_ctl[2]; + uint8_t input_gain[2]; + uint8_t output_gain[2]; + uint8_t agc; + uint8_t treble[2]; + uint8_t bass[2]; + }; + + // construction/destruction + sb_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + uint8_t dack_r(int line); + void dack_w(int line, uint8_t data); + virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + virtual void drq16_w(int state) { } + virtual void drq_w(int state) { } + virtual void irq_w(int state, int source) { } + virtual void mixer_reset() {} + void adpcm_decode(uint8_t sample, int size); + + // serial overrides + virtual void rcv_complete() override; // Rx completed receiving byte + virtual void tra_complete() override; // Tx completed sending byte + virtual void tra_callback() override; // Tx send bit + + static constexpr unsigned MIDI_RING_SIZE = 2048; + + required_device m_ldac; + required_device m_rdac; + required_device m_joy; + required_device m_mdout; + required_ioport m_config; + + struct sb8_dsp_state m_dsp; + uint8_t m_dack_out; + void xmit_char(uint8_t data); + bool m_onebyte_midi, m_uart_midi, m_uart_irq, m_mpu_midi; + int m_rx_waiting, m_tx_waiting; + uint8_t m_recvring[MIDI_RING_SIZE]; + uint8_t m_xmitring[MIDI_RING_SIZE]; + int m_xmit_read, m_xmit_write; + int m_recv_read, m_recv_write; + bool m_tx_busy; + + emu_timer *m_timer; }; class sb8_device : public sb_device, public device_isa8_card_interface { public: - // construction/destruction - sb8_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, const char *name, const char *shortname, const char *source); - - DECLARE_READ8_MEMBER(ym3812_16_r); - DECLARE_WRITE8_MEMBER(ym3812_16_w); - virtual ioport_constructor device_input_ports() const override; + DECLARE_READ8_MEMBER(ym3812_16_r); + DECLARE_WRITE8_MEMBER(ym3812_16_w); + virtual ioport_constructor device_input_ports() const override; protected: - virtual void device_start() override; - virtual void drq_w(int state) override; - virtual void irq_w(int state, int source) override; - virtual uint8_t dack_r(int line) override { return sb_device::dack_r(line); } - virtual void dack_w(int line, uint8_t data) override { sb_device::dack_w(line, data); } + // construction/destruction + sb8_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + virtual void device_start() override; + virtual void drq_w(int state) override; + virtual void irq_w(int state, int source) override; + virtual uint8_t dack_r(int line) override { return sb_device::dack_r(line); } + virtual void dack_w(int line, uint8_t data) override { sb_device::dack_w(line, data); } private: - required_device m_ym3812; + required_device m_ym3812; }; class isa8_sblaster1_0_device : public sb8_device { public: - // construction/destruction - isa8_sblaster1_0_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + // construction/destruction + isa8_sblaster1_0_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; + // optional information overrides + virtual machine_config_constructor device_mconfig_additions() const override; - DECLARE_READ8_MEMBER(saa1099_16_r); - DECLARE_WRITE8_MEMBER(saa1099_1_16_w); - DECLARE_WRITE8_MEMBER(saa1099_2_16_w); + DECLARE_READ8_MEMBER(saa1099_16_r); + DECLARE_WRITE8_MEMBER(saa1099_1_16_w); + DECLARE_WRITE8_MEMBER(saa1099_2_16_w); protected: - // device-level overrides - virtual void device_start() override; + // device-level overrides + virtual void device_start() override; private: - // internal state - required_device m_saa1099_1; - required_device m_saa1099_2; - + // internal state + required_device m_saa1099_1; + required_device m_saa1099_2; }; class isa8_sblaster1_5_device : public sb8_device { public: - // construction/destruction - isa8_sblaster1_5_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + // construction/destruction + isa8_sblaster1_5_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; + // optional information overrides + virtual machine_config_constructor device_mconfig_additions() const override; protected: - // device-level overrides - virtual void device_start() override; + // device-level overrides + virtual void device_start() override; }; class sb16_device : public sb_device, public device_isa16_card_interface { public: - // construction/destruction - sb16_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, const char *name, const char *shortname, const char *source); - DECLARE_READ8_MEMBER(mpu401_r); - DECLARE_WRITE8_MEMBER(mpu401_w); - DECLARE_READ8_MEMBER(mixer_r); - DECLARE_WRITE8_MEMBER(mixer_w); - virtual ioport_constructor device_input_ports() const override; + DECLARE_READ8_MEMBER(mpu401_r); + DECLARE_WRITE8_MEMBER(mpu401_w); + DECLARE_READ8_MEMBER(mixer_r); + DECLARE_WRITE8_MEMBER(mixer_w); + virtual ioport_constructor device_input_ports() const override; protected: - virtual void device_start() override; - virtual uint16_t dack16_r(int line) override; - virtual uint8_t dack_r(int line) override { return sb_device::dack_r(line); } - virtual void dack_w(int line, uint8_t data) override { sb_device::dack_w(line, data); } - virtual void dack16_w(int line, uint16_t data) override; - virtual void drq16_w(int state) override; - virtual void drq_w(int state) override; - virtual void irq_w(int state, int source) override; - virtual void mixer_reset() override; - void mixer_set(); - virtual void rcv_complete() override; // Rx completed receiving byte + // construction/destruction + sb16_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; + virtual uint16_t dack16_r(int line) override; + virtual uint8_t dack_r(int line) override { return sb_device::dack_r(line); } + virtual void dack_w(int line, uint8_t data) override { sb_device::dack_w(line, data); } + virtual void dack16_w(int line, uint16_t data) override; + virtual void drq16_w(int state) override; + virtual void drq_w(int state) override; + virtual void irq_w(int state, int source) override; + virtual void mixer_reset() override; + void mixer_set(); + virtual void rcv_complete() override; // Rx completed receiving byte private: - struct sb16_mixer m_mixer; + struct sb16_mixer m_mixer; }; class isa16_sblaster16_device : public sb16_device { public: - // construction/destruction - isa16_sblaster16_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + // construction/destruction + isa16_sblaster16_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; + // optional information overrides + virtual machine_config_constructor device_mconfig_additions() const override; protected: - // device-level overrides - virtual void device_start() override; + // device-level overrides + virtual void device_start() override; }; // device type definition -extern const device_type ISA8_SOUND_BLASTER_1_0; -extern const device_type ISA8_SOUND_BLASTER_1_5; -extern const device_type ISA16_SOUND_BLASTER_16; +DECLARE_DEVICE_TYPE(ISA8_SOUND_BLASTER_1_0, isa8_sblaster1_0_device) +DECLARE_DEVICE_TYPE(ISA8_SOUND_BLASTER_1_5, isa8_sblaster1_5_device) +DECLARE_DEVICE_TYPE(ISA16_SOUND_BLASTER_16, isa16_sblaster16_device) -#endif /* __ISA_SOUND_BLASTER_H__ */ +#endif // MAME_BUS_ISA_SBLASTER_H diff --git a/src/devices/bus/isa/sc499.cpp b/src/devices/bus/isa/sc499.cpp index 8dda45a4535..35f945b9a9c 100644 --- a/src/devices/bus/isa/sc499.cpp +++ b/src/devices/bus/isa/sc499.cpp @@ -28,7 +28,7 @@ static int verbose = VERBOSE; #define LOG3(x) { if (verbose > 2) LOG(x)} #define SC499_CTAPE_TAG "sc499_ctape" -extern const device_type SC499_CTAPE; +DECLARE_DEVICE_TYPE(SC499_CTAPE, sc499_ctape_image_device) static INPUT_PORTS_START( sc499_port ) PORT_START("IO_BASE") @@ -190,7 +190,7 @@ machine_config_constructor sc499_device::device_mconfig_additions() const // DEVICE DEFINITIONS //************************************************************************** -const device_type ISA8_SC499 = device_creator; +DEFINE_DEVICE_TYPE(ISA8_SC499, sc499_device, "sc499", "Archive SC-499") //************************************************************************** // CONSTANTS @@ -313,7 +313,7 @@ const device_type ISA8_SC499 = device_creator; //------------------------------------------------- sc499_device::sc499_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, ISA8_SC499, "Archive SC-499", tag, owner, clock, "sc499", __FILE__), + : device_t(mconfig, ISA8_SC499, tag, owner, clock), device_isa8_card_interface(mconfig, *this), m_iobase(*this, "IO_BASE"), m_irqdrq(*this, "IRQ_DRQ"), m_data(0), m_command(0), m_status(0), m_control(0), m_has_cartridge(0), m_is_writable(0), m_current_command(0), m_first_block_hack(0), m_nasty_readahead(0), m_read_block_pending(0), @@ -1298,11 +1298,11 @@ void sc499_device::block_set_filemark() //########################################################################## -const device_type SC499_CTAPE = device_creator; +DEFINE_DEVICE_TYPE(SC499_CTAPE, sc499_ctape_image_device, "sc499_ctape", "SC-499 Cartridge Tape") sc499_ctape_image_device::sc499_ctape_image_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, SC499_CTAPE, "Cartridge Tape", tag, owner, clock, "sc499_ctape", __FILE__), - device_image_interface(mconfig, *this) + : device_t(mconfig, SC499_CTAPE, tag, owner, clock) + , device_image_interface(mconfig, *this) { } diff --git a/src/devices/bus/isa/sc499.h b/src/devices/bus/isa/sc499.h index d2082dd028a..4f3bd24ab64 100644 --- a/src/devices/bus/isa/sc499.h +++ b/src/devices/bus/isa/sc499.h @@ -8,10 +8,10 @@ * */ -#pragma once +#ifndef MAME_BUS_ISA_SC499_H +#define MAME_BUS_ISA_SC499_H -#ifndef SC499_H_ -#define SC499_H_ +#pragma once #include "bus/isa/isa.h" #include "softlist_dev.h" @@ -52,7 +52,7 @@ public: protected: // device-level overrides - virtual void device_start() override { }; + virtual void device_start() override { } std::vector m_ctape_data; }; @@ -65,6 +65,7 @@ public: // construction/destruction sc499_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); +protected: required_ioport m_iobase; required_ioport m_irqdrq; @@ -154,6 +155,6 @@ private: // device type definition -extern const device_type ISA8_SC499; +DECLARE_DEVICE_TYPE(ISA8_SC499, sc499_device) -#endif /* SC499_H_ */ +#endif // MAME_BUS_ISA_SC499_H diff --git a/src/devices/bus/isa/side116.cpp b/src/devices/bus/isa/side116.cpp index 785703f07f8..290143aa2fc 100644 --- a/src/devices/bus/isa/side116.cpp +++ b/src/devices/bus/isa/side116.cpp @@ -16,7 +16,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type ISA8_SIDE116 = device_creator; +DEFINE_DEVICE_TYPE(ISA8_SIDE116, side116_device, "side116", "Acculogic sIDE-1/16 IDE Disk Controller") //------------------------------------------------- // machine_config_additions - device-specific @@ -88,7 +88,7 @@ const tiny_rom_entry *side116_device::device_rom_region() const //------------------------------------------------- side116_device::side116_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, ISA8_SIDE116, "Acculogic sIDE-1/16 IDE Disk Controller", tag, owner, clock, "side116", __FILE__), + device_t(mconfig, ISA8_SIDE116, tag, owner, clock), device_isa8_card_interface( mconfig, *this ), m_ata(*this, "ata"), m_config(*this, "configuration"), diff --git a/src/devices/bus/isa/side116.h b/src/devices/bus/isa/side116.h index 993d2bef258..00095bf6279 100644 --- a/src/devices/bus/isa/side116.h +++ b/src/devices/bus/isa/side116.h @@ -8,10 +8,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_BUS_ISA_SIDE116_H +#define MAME_BUS_ISA_SIDE116_H -#ifndef __ISA_SIDE116_H__ -#define __ISA_SIDE116_H__ +#pragma once #include "machine/ataintf.h" #include "isa.h" @@ -23,8 +23,7 @@ // ======================> side116_device -class side116_device : public device_t, - public device_isa8_card_interface +class side116_device : public device_t, public device_isa8_card_interface { public: // construction/destruction @@ -43,7 +42,6 @@ protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; - virtual void device_config_complete() override { m_shortname = "side116"; } private: required_device m_ata; @@ -53,6 +51,6 @@ private: // device type definition -extern const device_type ISA8_SIDE116; +DECLARE_DEVICE_TYPE(ISA8_SIDE116, side116_device) -#endif +#endif // MAME_BUS_ISA_SIDE116_H diff --git a/src/devices/bus/isa/ssi2001.cpp b/src/devices/bus/isa/ssi2001.cpp index 1d2669c8420..c673ed21a81 100644 --- a/src/devices/bus/isa/ssi2001.cpp +++ b/src/devices/bus/isa/ssi2001.cpp @@ -8,7 +8,7 @@ #include "speaker.h" -const device_type ISA8_SSI2001 = device_creator; +DEFINE_DEVICE_TYPE(ISA8_SSI2001, ssi2001_device, "ssi2001", "Innovation SSI-2001 Audio Adapter") static MACHINE_CONFIG_FRAGMENT( ssi2001 ) MCFG_SPEAKER_STANDARD_MONO("mono") @@ -23,7 +23,7 @@ machine_config_constructor ssi2001_device::device_mconfig_additions() const } ssi2001_device::ssi2001_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, ISA8_SSI2001, "Innovation SSI-2001 Audio Adapter", tag, owner, clock, "ssi2001", __FILE__), + device_t(mconfig, ISA8_SSI2001, tag, owner, clock), device_isa8_card_interface(mconfig, *this), m_joy(*this, "pc_joy"), m_sid(*this, "sid6581") diff --git a/src/devices/bus/isa/ssi2001.h b/src/devices/bus/isa/ssi2001.h index e141c891bc0..3facf845c03 100644 --- a/src/devices/bus/isa/ssi2001.h +++ b/src/devices/bus/isa/ssi2001.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Carl -#ifndef __SSI2001__ -#define __SSI2001__ +#ifndef MAME_BUS_ISA_SSI2001_H +#define MAME_BUS_ISA_SSI2001_H + +#pragma once #include "isa.h" #include "sound/mos6581.h" @@ -23,17 +25,17 @@ public: // optional information overrides virtual machine_config_constructor device_mconfig_additions() const override; - required_device m_joy; - required_device m_sid; - protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; + + required_device m_joy; + required_device m_sid; }; // device type definition -extern const device_type ISA8_SSI2001; +DECLARE_DEVICE_TYPE(ISA8_SSI2001, ssi2001_device) -#endif +#endif // MAME_BUS_ISA_SSI2001_H diff --git a/src/devices/bus/isa/stereo_fx.cpp b/src/devices/bus/isa/stereo_fx.cpp index 079c4d15b75..fef1737b6b0 100644 --- a/src/devices/bus/isa/stereo_fx.cpp +++ b/src/devices/bus/isa/stereo_fx.cpp @@ -12,7 +12,7 @@ #include "speaker.h" -const device_type ISA8_STEREO_FX = device_creator; +DEFINE_DEVICE_TYPE(ISA8_STEREO_FX, stereo_fx_device, "stereo_fx", "ATi Stereo F/X Audio Adapter") READ8_MEMBER( stereo_fx_device::dev_dsp_data_r ) { @@ -194,7 +194,7 @@ READ8_MEMBER( stereo_fx_device::invalid_r ) } stereo_fx_device::stereo_fx_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, ISA8_STEREO_FX, "ATI Stereo F/X Audio Adapter", tag, owner, clock, "stereo_fx", __FILE__), + device_t(mconfig, ISA8_STEREO_FX, tag, owner, clock), device_isa8_card_interface(mconfig, *this), m_joy(*this, "pc_joy"), m_cpu(*this, "stereo_fx_cpu"), m_data_in(false), m_in_byte(0), m_data_out(false), m_out_byte(0), m_port20(0), m_port00(0), m_timer(nullptr), m_t0(0) diff --git a/src/devices/bus/isa/stereo_fx.h b/src/devices/bus/isa/stereo_fx.h index 5db2e1927c4..738841e9178 100644 --- a/src/devices/bus/isa/stereo_fx.h +++ b/src/devices/bus/isa/stereo_fx.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Carl -#ifndef __STEREO_FX__ -#define __STEREO_FX__ +#ifndef MAME_BUS_ISA_STEREO_FX_H +#define MAME_BUS_ISA_STEREO_FX_H + +#pragma once #include "isa.h" #include "bus/pc_joy/pc_joy.h" @@ -25,9 +27,6 @@ public: virtual const tiny_rom_entry *device_rom_region() const override; virtual machine_config_constructor device_mconfig_additions() const override; - required_device m_joy; - required_device m_cpu; - // mcu ports DECLARE_READ8_MEMBER( dev_dsp_data_r ); DECLARE_WRITE8_MEMBER( dev_dsp_data_w ); @@ -56,6 +55,10 @@ protected: virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; uint8_t dack_r(int line) override; void dack_w(int line, uint8_t data) override; + + required_device m_joy; + required_device m_cpu; + private: // internal state bool m_data_in; @@ -72,6 +75,6 @@ private: // device type definition -extern const device_type ISA8_STEREO_FX; +DECLARE_DEVICE_TYPE(ISA8_STEREO_FX, stereo_fx_device) -#endif +#endif // MAME_BUS_ISA_STEREO_FX_H diff --git a/src/devices/bus/isa/svga_cirrus.cpp b/src/devices/bus/isa/svga_cirrus.cpp index f5f117e76bb..587f578a90f 100644 --- a/src/devices/bus/isa/svga_cirrus.cpp +++ b/src/devices/bus/isa/svga_cirrus.cpp @@ -22,8 +22,8 @@ ROM_END // GLOBAL VARIABLES //************************************************************************** -const device_type ISA16_SVGA_CIRRUS = device_creator; -const device_type ISA16_SVGA_CIRRUS_GD542X = device_creator; +DEFINE_DEVICE_TYPE(ISA16_SVGA_CIRRUS, isa16_svga_cirrus_device, "dm_clgd5430", "Diamond Speedstar Pro SE ISA Graphics Card (BIOS v1.00)") +DEFINE_DEVICE_TYPE(ISA16_SVGA_CIRRUS_GD542X, isa16_svga_cirrus_gd542x_device, "clgd542x", "Generic Cirrus Logic CD542 Graphics Card (BIOS v1.20)") static MACHINE_CONFIG_FRAGMENT( vga_cirrus ) MCFG_SCREEN_ADD("screen", RASTER) @@ -63,8 +63,9 @@ const tiny_rom_entry *isa16_svga_cirrus_device::device_rom_region() const //------------------------------------------------- isa16_svga_cirrus_device::isa16_svga_cirrus_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, ISA16_SVGA_CIRRUS, "Diamond Speedstar Pro SE ISA Graphics Card (BIOS v1.00)", tag, owner, clock, "dm_clgd5430", __FILE__), - device_isa16_card_interface(mconfig, *this), m_vga(nullptr) + device_t(mconfig, ISA16_SVGA_CIRRUS, tag, owner, clock), + device_isa16_card_interface(mconfig, *this), + m_vga(nullptr) { } @@ -149,8 +150,9 @@ const tiny_rom_entry *isa16_svga_cirrus_gd542x_device::device_rom_region() const //------------------------------------------------- isa16_svga_cirrus_gd542x_device::isa16_svga_cirrus_gd542x_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, ISA16_SVGA_CIRRUS_GD542X, "Generic Cirrus Logic GD542x Graphics Card (BIOS v1.20)", tag, owner, clock, "clgd542x", __FILE__), - device_isa16_card_interface(mconfig, *this), m_vga(nullptr) + device_t(mconfig, ISA16_SVGA_CIRRUS_GD542X, tag, owner, clock), + device_isa16_card_interface(mconfig, *this), + m_vga(nullptr) { } diff --git a/src/devices/bus/isa/svga_cirrus.h b/src/devices/bus/isa/svga_cirrus.h index 8207b24252a..3d5f3f5678d 100644 --- a/src/devices/bus/isa/svga_cirrus.h +++ b/src/devices/bus/isa/svga_cirrus.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Barry Rodewald -#pragma once +#ifndef MAME_BUS_ISA_SVGA_CIRRUS_H +#define MAME_BUS_ISA_SVGA_CIRRUS_H -#ifndef __ISA_SVGA_CIRRUS_H__ -#define __ISA_SVGA_CIRRUS_H__ +#pragma once #include "isa.h" #include "video/clgd542x.h" @@ -17,20 +17,20 @@ class isa16_svga_cirrus_device : public device_isa16_card_interface { public: - // construction/destruction - isa16_svga_cirrus_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + // construction/destruction + isa16_svga_cirrus_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; - virtual const tiny_rom_entry *device_rom_region() const override; + // optional information overrides + virtual machine_config_constructor device_mconfig_additions() const override; + virtual const tiny_rom_entry *device_rom_region() const override; - DECLARE_READ8_MEMBER(input_port_0_r); + DECLARE_READ8_MEMBER(input_port_0_r); protected: - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; private: - cirrus_gd5430_device *m_vga; + cirrus_gd5430_device *m_vga; }; class isa16_svga_cirrus_gd542x_device : @@ -38,25 +38,25 @@ class isa16_svga_cirrus_gd542x_device : public device_isa16_card_interface { public: - // construction/destruction - isa16_svga_cirrus_gd542x_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + // construction/destruction + isa16_svga_cirrus_gd542x_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; - virtual const tiny_rom_entry *device_rom_region() const override; + // optional information overrides + virtual machine_config_constructor device_mconfig_additions() const override; + virtual const tiny_rom_entry *device_rom_region() const override; - DECLARE_READ8_MEMBER(input_port_0_r); + DECLARE_READ8_MEMBER(input_port_0_r); protected: - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; private: - cirrus_gd5428_device *m_vga; + cirrus_gd5428_device *m_vga; }; // device type definition -extern const device_type ISA16_SVGA_CIRRUS; -extern const device_type ISA16_SVGA_CIRRUS_GD542X; +DECLARE_DEVICE_TYPE(ISA16_SVGA_CIRRUS, isa16_svga_cirrus_device) +DECLARE_DEVICE_TYPE(ISA16_SVGA_CIRRUS_GD542X, isa16_svga_cirrus_gd542x_device) -#endif /* __ISA_VGA_H__ */ +#endif // MAME_BUS_ISA_SVGA_CIRRUS_H diff --git a/src/devices/bus/isa/svga_s3.cpp b/src/devices/bus/isa/svga_s3.cpp index 1414022b132..cbb74d20a76 100644 --- a/src/devices/bus/isa/svga_s3.cpp +++ b/src/devices/bus/isa/svga_s3.cpp @@ -33,7 +33,7 @@ ROM_END // GLOBAL VARIABLES //************************************************************************** -const device_type ISA16_SVGA_S3 = device_creator; +DEFINE_DEVICE_TYPE(ISA16_SVGA_S3, isa16_svga_s3_device, "s3_764", "Number Nine 9FX Vision 330 (S3 764)") static MACHINE_CONFIG_FRAGMENT( vga_s3 ) @@ -74,8 +74,9 @@ const tiny_rom_entry *isa16_svga_s3_device::device_rom_region() const //------------------------------------------------- isa16_svga_s3_device::isa16_svga_s3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, ISA16_SVGA_S3, "Number Nine 9FX Vision 330 (S3 764) Graphics Card", tag, owner, clock, "s3_764", __FILE__), - device_isa16_card_interface(mconfig, *this), m_vga(nullptr), m_8514(nullptr) + device_t(mconfig, ISA16_SVGA_S3, tag, owner, clock), + device_isa16_card_interface(mconfig, *this), + m_vga(nullptr), m_8514(nullptr) { } @@ -145,7 +146,7 @@ ROM_END // GLOBAL VARIABLES //************************************************************************** -const device_type ISA16_S3VIRGE = device_creator; +DEFINE_DEVICE_TYPE(ISA16_S3VIRGE, isa16_s3virge_device, "s3virge", "S3 ViRGE Graphics Card") static MACHINE_CONFIG_FRAGMENT( vga_s3virge ) @@ -186,8 +187,9 @@ const tiny_rom_entry *isa16_s3virge_device::device_rom_region() const //------------------------------------------------- isa16_s3virge_device::isa16_s3virge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, ISA16_S3VIRGE, "S3 ViRGE Graphics Card", tag, owner, clock, "s3virge", __FILE__), - device_isa16_card_interface(mconfig, *this), m_vga(nullptr) + device_t(mconfig, ISA16_S3VIRGE, tag, owner, clock), + device_isa16_card_interface(mconfig, *this), + m_vga(nullptr) { } @@ -242,7 +244,7 @@ ROM_END // GLOBAL VARIABLES //************************************************************************** -const device_type ISA16_S3VIRGEDX = device_creator; +DEFINE_DEVICE_TYPE(ISA16_S3VIRGEDX, isa16_s3virgedx_device, "s3virgedx", "S3 ViRGE/DX Graphics Card") //------------------------------------------------- @@ -273,8 +275,9 @@ const tiny_rom_entry *isa16_s3virgedx_device::device_rom_region() const //------------------------------------------------- isa16_s3virgedx_device::isa16_s3virgedx_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, ISA16_S3VIRGEDX, "S3 ViRGE/DX Graphics Card", tag, owner, clock, "s3virgedx", __FILE__), - device_isa16_card_interface(mconfig, *this), m_vga(nullptr) + device_t(mconfig, ISA16_S3VIRGEDX, tag, owner, clock), + device_isa16_card_interface(mconfig, *this), + m_vga(nullptr) { } @@ -330,7 +333,7 @@ ROM_END // GLOBAL VARIABLES //************************************************************************** -const device_type ISA16_DMS3D2KPRO = device_creator; +DEFINE_DEVICE_TYPE(ISA16_DMS3D2KPRO, isa16_stealth3d2kpro_device, "dms3d2kp", "Diamond Stealth 3D 2000 Pro") //------------------------------------------------- @@ -361,8 +364,9 @@ const tiny_rom_entry *isa16_stealth3d2kpro_device::device_rom_region() const //------------------------------------------------- isa16_stealth3d2kpro_device::isa16_stealth3d2kpro_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, ISA16_DMS3D2KPRO, "Diamond Stealth 3D 2000 Pro", tag, owner, clock, "dms3d2kp", __FILE__), - device_isa16_card_interface(mconfig, *this), m_vga(nullptr) + device_t(mconfig, ISA16_DMS3D2KPRO, tag, owner, clock), + device_isa16_card_interface(mconfig, *this), + m_vga(nullptr) { } diff --git a/src/devices/bus/isa/svga_s3.h b/src/devices/bus/isa/svga_s3.h index 0bd4cfc48e3..fbfba9bd35b 100644 --- a/src/devices/bus/isa/svga_s3.h +++ b/src/devices/bus/isa/svga_s3.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Barry Rodewald -#pragma once +#ifndef MAME_BUS_ISA_SVGA_S3_H +#define MAME_BUS_ISA_SVGA_S3_H -#ifndef __ISA_SVGA_S3_H__ -#define __ISA_SVGA_S3_H__ +#pragma once #include "isa.h" #include "video/pc_vga.h" @@ -20,21 +20,21 @@ class isa16_svga_s3_device : public device_isa16_card_interface { public: - // construction/destruction - isa16_svga_s3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + // construction/destruction + isa16_svga_s3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; - virtual const tiny_rom_entry *device_rom_region() const override; + // optional information overrides + virtual machine_config_constructor device_mconfig_additions() const override; + virtual const tiny_rom_entry *device_rom_region() const override; - DECLARE_READ8_MEMBER(input_port_0_r); + DECLARE_READ8_MEMBER(input_port_0_r); protected: - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; private: - s3_vga_device *m_vga; - ibm8514a_device *m_8514; + s3_vga_device *m_vga; + ibm8514a_device *m_8514; }; class isa16_s3virge_device : @@ -42,20 +42,20 @@ class isa16_s3virge_device : public device_isa16_card_interface { public: - // construction/destruction - isa16_s3virge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + // construction/destruction + isa16_s3virge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; - virtual const tiny_rom_entry *device_rom_region() const override; + // optional information overrides + virtual machine_config_constructor device_mconfig_additions() const override; + virtual const tiny_rom_entry *device_rom_region() const override; - DECLARE_READ8_MEMBER(input_port_0_r); + DECLARE_READ8_MEMBER(input_port_0_r); protected: - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; private: - s3virge_vga_device *m_vga; + s3virge_vga_device *m_vga; }; class isa16_s3virgedx_device : @@ -63,20 +63,20 @@ class isa16_s3virgedx_device : public device_isa16_card_interface { public: - // construction/destruction - isa16_s3virgedx_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + // construction/destruction + isa16_s3virgedx_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; - virtual const tiny_rom_entry *device_rom_region() const override; + // optional information overrides + virtual machine_config_constructor device_mconfig_additions() const override; + virtual const tiny_rom_entry *device_rom_region() const override; - DECLARE_READ8_MEMBER(input_port_0_r); + DECLARE_READ8_MEMBER(input_port_0_r); protected: - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; private: - s3virgedx_vga_device *m_vga; + s3virgedx_vga_device *m_vga; }; class isa16_stealth3d2kpro_device : @@ -84,27 +84,27 @@ class isa16_stealth3d2kpro_device : public device_isa16_card_interface { public: - // construction/destruction - isa16_stealth3d2kpro_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + // construction/destruction + isa16_stealth3d2kpro_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; - virtual const tiny_rom_entry *device_rom_region() const override; + // optional information overrides + virtual machine_config_constructor device_mconfig_additions() const override; + virtual const tiny_rom_entry *device_rom_region() const override; - DECLARE_READ8_MEMBER(input_port_0_r); + DECLARE_READ8_MEMBER(input_port_0_r); protected: - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; private: - s3virgedx_vga_device *m_vga; + s3virgedx_vga_device *m_vga; }; // device type definition -extern const device_type ISA16_SVGA_S3; -extern const device_type ISA16_S3VIRGE; -extern const device_type ISA16_S3VIRGEDX; -extern const device_type ISA16_DMS3D2KPRO; +DECLARE_DEVICE_TYPE(ISA16_SVGA_S3, isa16_svga_s3_device) +DECLARE_DEVICE_TYPE(ISA16_S3VIRGE, isa16_s3virge_device) +DECLARE_DEVICE_TYPE(ISA16_S3VIRGEDX, isa16_s3virgedx_device) +DECLARE_DEVICE_TYPE(ISA16_DMS3D2KPRO, isa16_stealth3d2kpro_device) -#endif /* __ISA_VGA_H__ */ +#endif // MAME_BUS_ISA_SVGA_S3_H diff --git a/src/devices/bus/isa/svga_trident.cpp b/src/devices/bus/isa/svga_trident.cpp index 505737ec8e6..1c7e8cf7074 100644 --- a/src/devices/bus/isa/svga_trident.cpp +++ b/src/devices/bus/isa/svga_trident.cpp @@ -23,7 +23,7 @@ ROM_END // GLOBAL VARIABLES //************************************************************************** -const device_type ISA16_SVGA_TGUI9680 = device_creator; +DEFINE_DEVICE_TYPE(ISA16_SVGA_TGUI9680, isa16_svga_tgui9680_device, "igui9680", "Trident TGUI9680 Graphics Card (BIOS X5.5 (02) 02/13/96)") static MACHINE_CONFIG_FRAGMENT( vga_trident ) @@ -64,8 +64,9 @@ const tiny_rom_entry *isa16_svga_tgui9680_device::device_rom_region() const //------------------------------------------------- isa16_svga_tgui9680_device::isa16_svga_tgui9680_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, ISA16_SVGA_TGUI9680, "Trident TGUI9680 Graphics Card (BIOS X5.5 (02) 02/13/96)", tag, owner, clock, "tgui9680", __FILE__), - device_isa16_card_interface(mconfig, *this), m_vga(nullptr) + device_t(mconfig, ISA16_SVGA_TGUI9680, tag, owner, clock), + device_isa16_card_interface(mconfig, *this), + m_vga(nullptr) { } diff --git a/src/devices/bus/isa/svga_trident.h b/src/devices/bus/isa/svga_trident.h index 11885c0e048..7cfac58b4f6 100644 --- a/src/devices/bus/isa/svga_trident.h +++ b/src/devices/bus/isa/svga_trident.h @@ -6,8 +6,8 @@ * Created on: 6/09/2014 */ -#ifndef SVGA_TRIDENT_H_ -#define SVGA_TRIDENT_H_ +#ifndef MAME_BUS_ISA_SVGA_TRIDENT_H +#define MAME_BUS_ISA_SVGA_TRIDENT_H #include "isa.h" #include "video/pc_vga.h" @@ -24,25 +24,25 @@ class isa16_svga_tgui9680_device : public device_isa16_card_interface { public: - // construction/destruction - isa16_svga_tgui9680_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + // construction/destruction + isa16_svga_tgui9680_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; - virtual const tiny_rom_entry *device_rom_region() const override; + // optional information overrides + virtual machine_config_constructor device_mconfig_additions() const override; + virtual const tiny_rom_entry *device_rom_region() const override; - DECLARE_READ8_MEMBER(input_port_0_r); + DECLARE_READ8_MEMBER(input_port_0_r); protected: - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; private: - trident_vga_device *m_vga; + trident_vga_device *m_vga; }; // device type definition -extern const device_type ISA16_SVGA_TGUI9680; +DECLARE_DEVICE_TYPE(ISA16_SVGA_TGUI9680, isa16_svga_tgui9680_device) -#endif /* SVGA_TRIDENT_H_ */ +#endif // MAME_BUS_ISA_SVGA_TRIDENT_H diff --git a/src/devices/bus/isa/svga_tseng.cpp b/src/devices/bus/isa/svga_tseng.cpp index 8fa56a6c4ff..2fe25a14514 100644 --- a/src/devices/bus/isa/svga_tseng.cpp +++ b/src/devices/bus/isa/svga_tseng.cpp @@ -22,7 +22,7 @@ ROM_END // GLOBAL VARIABLES //************************************************************************** -const device_type ISA8_SVGA_ET4K = device_creator; +DEFINE_DEVICE_TYPE(ISA8_SVGA_ET4K, isa8_svga_et4k_device, "et4000", "SVGA Tseng ET4000 Graphics Card") static MACHINE_CONFIG_FRAGMENT( vga_tseng ) @@ -63,8 +63,9 @@ const tiny_rom_entry *isa8_svga_et4k_device::device_rom_region() const //------------------------------------------------- isa8_svga_et4k_device::isa8_svga_et4k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, ISA8_SVGA_ET4K, "SVGA Tseng ET4000 Graphics Card", tag, owner, clock, "et4000", __FILE__), - device_isa8_card_interface(mconfig, *this), m_vga(nullptr) + device_t(mconfig, ISA8_SVGA_ET4K, tag, owner, clock), + device_isa8_card_interface(mconfig, *this), + m_vga(nullptr) { } diff --git a/src/devices/bus/isa/svga_tseng.h b/src/devices/bus/isa/svga_tseng.h index 8c39db16fdf..6f430af17d6 100644 --- a/src/devices/bus/isa/svga_tseng.h +++ b/src/devices/bus/isa/svga_tseng.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Barry Rodewald -#pragma once +#ifndef MAME_BUS_ISA_SVGA_TSENG_H +#define MAME_BUS_ISA_SVGA_TSENG_H -#ifndef __ISA_SVGA_ET4K_H__ -#define __ISA_SVGA_ET4K_H__ +#pragma once #include "isa.h" #include "video/pc_vga.h" @@ -19,24 +19,24 @@ class isa8_svga_et4k_device : public device_isa8_card_interface { public: - // construction/destruction - isa8_svga_et4k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + // construction/destruction + isa8_svga_et4k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; - virtual const tiny_rom_entry *device_rom_region() const override; + // optional information overrides + virtual machine_config_constructor device_mconfig_additions() const override; + virtual const tiny_rom_entry *device_rom_region() const override; - DECLARE_READ8_MEMBER(input_port_0_r); + DECLARE_READ8_MEMBER(input_port_0_r); protected: - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; private: - tseng_vga_device *m_vga; + tseng_vga_device *m_vga; }; // device type definition -extern const device_type ISA8_SVGA_ET4K; +DECLARE_DEVICE_TYPE(ISA8_SVGA_ET4K, isa8_svga_et4k_device) -#endif /* __ISA_SVGA_ET4K_H__ */ +#endif // MAME_BUS_ISA_SVGA_TSENG_H diff --git a/src/devices/bus/isa/trident.cpp b/src/devices/bus/isa/trident.cpp index 72ff1f21fbd..287ef49b40a 100644 --- a/src/devices/bus/isa/trident.cpp +++ b/src/devices/bus/isa/trident.cpp @@ -15,27 +15,27 @@ #include "screen.h" -const device_type TRIDENT_VGA = device_creator; -const device_type TVGA9000_VGA = device_creator; +DEFINE_DEVICE_TYPE(TRIDENT_VGA, tgui9860_device, "trident_vga", "Trident TGUI9860") +DEFINE_DEVICE_TYPE(TVGA9000_VGA, tvga9000_device, "tvga9000_vga", "Trident TVGA9000") #define CRTC_PORT_ADDR ((vga.miscellaneous_output&1)?0x3d0:0x3b0) #define LOG (1) #define LOG_ACCEL (1) -trident_vga_device::trident_vga_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : svga_device(mconfig, type, name, tag, owner, clock, shortname, source) +trident_vga_device::trident_vga_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : svga_device(mconfig, type, tag, owner, clock) { } tgui9860_device::tgui9860_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : trident_vga_device(mconfig, TRIDENT_VGA, "Trident TGUI9680", tag, owner, clock, "trident_vga", __FILE__) + : trident_vga_device(mconfig, TRIDENT_VGA, tag, owner, clock) { m_version = 0xd3; // 0xd3 identifies at TGUI9660XGi (set to 0xe3 to identify at TGUI9440AGi) } tvga9000_device::tvga9000_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : trident_vga_device(mconfig, TVGA9000_VGA, "Trident TVGA9000", tag, owner, clock, "tvga9000_vga", __FILE__) + : trident_vga_device(mconfig, TVGA9000_VGA, tag, owner, clock) { m_version = 0x43; } diff --git a/src/devices/bus/isa/trident.h b/src/devices/bus/isa/trident.h index 63ef51aa36a..eadd479f14c 100644 --- a/src/devices/bus/isa/trident.h +++ b/src/devices/bus/isa/trident.h @@ -5,8 +5,10 @@ * */ -#ifndef TRIDENT_H_ -#define TRIDENT_H_ +#ifndef MAME_BUS_ISA_TRIDENT_H +#define MAME_BUS_ISA_TRIDENT_H + +#pragma once #include "video/pc_vga.h" @@ -15,9 +17,6 @@ class trident_vga_device : public svga_device { public: - // construction/destruction - trident_vga_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - virtual READ8_MEMBER(port_03c0_r) override; virtual WRITE8_MEMBER(port_03c0_w) override; virtual READ8_MEMBER(port_03d0_r) override; @@ -38,6 +37,9 @@ public: virtual uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) override; protected: + // construction/destruction + trident_vga_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; virtual void device_reset() override; @@ -160,7 +162,7 @@ public: }; // device type definition -extern const device_type TRIDENT_VGA; -extern const device_type TVGA9000_VGA; +DECLARE_DEVICE_TYPE(TRIDENT_VGA, tgui9860_device) +DECLARE_DEVICE_TYPE(TVGA9000_VGA, tvga9000_device) -#endif /* TRIDENT_H_ */ +#endif // MAME_BUS_ISA_TRIDENT_H diff --git a/src/devices/bus/isa/vga.cpp b/src/devices/bus/isa/vga.cpp index 24c7d457958..d0e49ce0d56 100644 --- a/src/devices/bus/isa/vga.cpp +++ b/src/devices/bus/isa/vga.cpp @@ -19,7 +19,7 @@ ROM_END // GLOBAL VARIABLES //************************************************************************** -const device_type ISA8_VGA = device_creator; +DEFINE_DEVICE_TYPE(ISA8_VGA, isa8_vga_device, "ibm_vga", "IBM VGA Graphics Card") //------------------------------------------------- @@ -50,8 +50,8 @@ const tiny_rom_entry *isa8_vga_device::device_rom_region() const //------------------------------------------------- isa8_vga_device::isa8_vga_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, ISA8_VGA, "IBM VGA Graphics Card", tag, owner, clock, "ibm_vga", __FILE__), - device_isa8_card_interface(mconfig, *this), m_vga(nullptr) + device_t(mconfig, ISA8_VGA, tag, owner, clock), + device_isa8_card_interface(mconfig, *this), m_vga(nullptr) { } diff --git a/src/devices/bus/isa/vga.h b/src/devices/bus/isa/vga.h index 8baf7e0d2fc..3d306be8d6b 100644 --- a/src/devices/bus/isa/vga.h +++ b/src/devices/bus/isa/vga.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Barry Rodewald -#pragma once +#ifndef MAME_BUS_ISA_VGA_H +#define MAME_BUS_ISA_VGA_H -#ifndef __ISA_VGA_H__ -#define __ISA_VGA_H__ +#pragma once #include "isa.h" #include "video/pc_vga.h" @@ -19,24 +19,24 @@ class isa8_vga_device : public device_isa8_card_interface { public: - // construction/destruction - isa8_vga_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + // construction/destruction + isa8_vga_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; - virtual const tiny_rom_entry *device_rom_region() const override; + // optional information overrides + virtual machine_config_constructor device_mconfig_additions() const override; + virtual const tiny_rom_entry *device_rom_region() const override; - DECLARE_READ8_MEMBER(input_port_0_r); + DECLARE_READ8_MEMBER(input_port_0_r); protected: - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; private: - vga_device *m_vga; + vga_device *m_vga; }; // device type definition -extern const device_type ISA8_VGA; +DECLARE_DEVICE_TYPE(ISA8_VGA, isa8_vga_device) -#endif /* __ISA_VGA_H__ */ +#endif // MAME_BUS_ISA_VGA_H diff --git a/src/devices/bus/isa/vga_ati.cpp b/src/devices/bus/isa/vga_ati.cpp index 3452f2eddf3..12a33581c77 100644 --- a/src/devices/bus/isa/vga_ati.cpp +++ b/src/devices/bus/isa/vga_ati.cpp @@ -68,9 +68,9 @@ ROM_END // GLOBAL VARIABLES //************************************************************************** -const device_type ISA16_VGA_GFXULTRA = device_creator; -const device_type ISA16_SVGA_GFXULTRAPRO = device_creator; -const device_type ISA16_SVGA_MACH64 = device_creator; +DEFINE_DEVICE_TYPE(ISA16_VGA_GFXULTRA, isa16_vga_gfxultra_device, "gfxulra", "ATi Graphics Ultra Card") +DEFINE_DEVICE_TYPE(ISA16_SVGA_GFXULTRAPRO, isa16_vga_gfxultrapro_device, "gfxxultrp", "ATi Graphics Ultra Pro Card") +DEFINE_DEVICE_TYPE(ISA16_SVGA_MACH64, isa16_vga_mach64_device, "mach64isa", "ATi mach64 Card") static MACHINE_CONFIG_FRAGMENT( vga_ati ) MCFG_SCREEN_ADD("screen", RASTER) @@ -150,20 +150,23 @@ const tiny_rom_entry *isa16_vga_mach64_device::device_rom_region() const //------------------------------------------------- isa16_vga_gfxultra_device::isa16_vga_gfxultra_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, ISA16_VGA_GFXULTRA, "ATi Graphics Ultra Card", tag, owner, clock, "gfxultra", __FILE__), - device_isa16_card_interface(mconfig, *this), m_vga(nullptr), m_8514(nullptr) + device_t(mconfig, ISA16_VGA_GFXULTRA, tag, owner, clock), + device_isa16_card_interface(mconfig, *this), + m_vga(nullptr), m_8514(nullptr) { } isa16_vga_gfxultrapro_device::isa16_vga_gfxultrapro_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, ISA16_SVGA_GFXULTRAPRO, "ATi Graphics Ultra Pro Card", tag, owner, clock, "gfxultrp", __FILE__), - device_isa16_card_interface(mconfig, *this), m_vga(nullptr) + device_t(mconfig, ISA16_SVGA_GFXULTRAPRO, tag, owner, clock), + device_isa16_card_interface(mconfig, *this), + m_vga(nullptr) { } isa16_vga_mach64_device::isa16_vga_mach64_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, ISA16_SVGA_MACH64, "ATi mach64 Card", tag, owner, clock, "mach64isa", __FILE__), - device_isa16_card_interface(mconfig, *this), m_vga(nullptr) + device_t(mconfig, ISA16_SVGA_MACH64, tag, owner, clock), + device_isa16_card_interface(mconfig, *this), + m_vga(nullptr) { } diff --git a/src/devices/bus/isa/vga_ati.h b/src/devices/bus/isa/vga_ati.h index 1dee4d1e2d2..33cf8718e79 100644 --- a/src/devices/bus/isa/vga_ati.h +++ b/src/devices/bus/isa/vga_ati.h @@ -7,10 +7,10 @@ * * Created on: 9/09/2012 */ -#pragma once +#ifndef MAME_BUS_ISA_VGA_ATI_H +#define MAME_BUS_ISA_VGA_ATI_H -#ifndef ISA_VGA_ATI_H_ -#define ISA_VGA_ATI_H_ +#pragma once #include "isa.h" #include "video/pc_vga.h" @@ -27,21 +27,21 @@ class isa16_vga_gfxultra_device : public device_isa16_card_interface { public: - // construction/destruction - isa16_vga_gfxultra_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + // construction/destruction + isa16_vga_gfxultra_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; - virtual const tiny_rom_entry *device_rom_region() const override; + // optional information overrides + virtual machine_config_constructor device_mconfig_additions() const override; + virtual const tiny_rom_entry *device_rom_region() const override; - DECLARE_READ8_MEMBER(input_port_0_r); + DECLARE_READ8_MEMBER(input_port_0_r); protected: - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; private: - ati_vga_device *m_vga; - mach8_device *m_8514; + ati_vga_device *m_vga; + mach8_device *m_8514; }; class isa16_vga_gfxultrapro_device : @@ -49,20 +49,20 @@ class isa16_vga_gfxultrapro_device : public device_isa16_card_interface { public: - // construction/destruction - isa16_vga_gfxultrapro_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + // construction/destruction + isa16_vga_gfxultrapro_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; - virtual const tiny_rom_entry *device_rom_region() const override; + // optional information overrides + virtual machine_config_constructor device_mconfig_additions() const override; + virtual const tiny_rom_entry *device_rom_region() const override; - DECLARE_READ8_MEMBER(input_port_0_r); + DECLARE_READ8_MEMBER(input_port_0_r); protected: - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; private: - mach32_device *m_vga; + mach32_device *m_vga; }; class isa16_vga_mach64_device : @@ -70,27 +70,27 @@ class isa16_vga_mach64_device : public device_isa16_card_interface { public: - // construction/destruction - isa16_vga_mach64_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + // construction/destruction + isa16_vga_mach64_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; - virtual const tiny_rom_entry *device_rom_region() const override; + // optional information overrides + virtual machine_config_constructor device_mconfig_additions() const override; + virtual const tiny_rom_entry *device_rom_region() const override; - DECLARE_READ8_MEMBER(input_port_0_r); + DECLARE_READ8_MEMBER(input_port_0_r); protected: - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; private: - mach64_device *m_vga; + mach64_device *m_vga; }; // device type definition -extern const device_type ISA16_VGA_GFXULTRA; -extern const device_type ISA16_SVGA_GFXULTRAPRO; -extern const device_type ISA16_SVGA_MACH64; +DECLARE_DEVICE_TYPE(ISA16_VGA_GFXULTRA, isa16_vga_gfxultra_device) +DECLARE_DEVICE_TYPE(ISA16_SVGA_GFXULTRAPRO, isa16_vga_gfxultrapro_device) +DECLARE_DEVICE_TYPE(ISA16_SVGA_MACH64, isa16_vga_mach64_device) -#endif /* ISA_VGA_ATI_H_ */ +#endif // MAME_BUS_ISA_VGA_ATI_H diff --git a/src/devices/bus/isa/wd1002a_wx1.cpp b/src/devices/bus/isa/wd1002a_wx1.cpp index 4ce188fda51..2e86d3b0523 100644 --- a/src/devices/bus/isa/wd1002a_wx1.cpp +++ b/src/devices/bus/isa/wd1002a_wx1.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type ISA8_WD1002A_WX1 = device_creator; +DEFINE_DEVICE_TYPE(ISA8_WD1002A_WX1, isa8_wd1002a_wx1_device, "wd1002a_wx1", "WD1002A-WX1") //------------------------------------------------- @@ -47,8 +47,8 @@ const tiny_rom_entry *isa8_wd1002a_wx1_device::device_rom_region() const //------------------------------------------------- isa8_wd1002a_wx1_device::isa8_wd1002a_wx1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, ISA8_WD1002A_WX1, "WD1002A-WX1", tag, owner, clock, "wd1002a_wx1", __FILE__), - device_isa8_card_interface( mconfig, *this ) + : device_t(mconfig, ISA8_WD1002A_WX1, tag, owner, clock) + , device_isa8_card_interface(mconfig, *this) { } diff --git a/src/devices/bus/isa/wd1002a_wx1.h b/src/devices/bus/isa/wd1002a_wx1.h index a58f75178d7..7a66db54dd5 100644 --- a/src/devices/bus/isa/wd1002a_wx1.h +++ b/src/devices/bus/isa/wd1002a_wx1.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_ISA_WD1002A_WX1_H +#define MAME_BUS_ISA_WD1002A_WX1_H -#ifndef __ISA_WD1002A_WX1__ -#define __ISA_WD1002A_WX1__ +#pragma once #include "isa.h" @@ -39,7 +39,7 @@ protected: // device type definition -extern const device_type ISA8_WD1002A_WX1; +DECLARE_DEVICE_TYPE(ISA8_WD1002A_WX1, isa8_wd1002a_wx1_device) -#endif +#endif // MAME_BUS_ISA_WD1002A_WX1_H diff --git a/src/devices/bus/isa/wdxt_gen.cpp b/src/devices/bus/isa/wdxt_gen.cpp index daef4a36704..8831e42ca19 100644 --- a/src/devices/bus/isa/wdxt_gen.cpp +++ b/src/devices/bus/isa/wdxt_gen.cpp @@ -62,7 +62,7 @@ Notes: // DEVICE DEFINITIONS //************************************************************************** -const device_type ISA8_WDXT_GEN = device_creator; +DEFINE_DEVICE_TYPE(ISA8_WDXT_GEN, wdxt_gen_device, "wdxt_gen", "Western Digital WDXT-GEN (Amstrad PC1512/1640)") //------------------------------------------------- @@ -193,11 +193,11 @@ machine_config_constructor wdxt_gen_device::device_mconfig_additions() const //------------------------------------------------- wdxt_gen_device::wdxt_gen_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, ISA8_WDXT_GEN, "Western Digital WDXT-GEN (Amstrad PC1512/1640)", tag, owner, clock, "wdxt_gen", __FILE__), - device_isa8_card_interface(mconfig, *this), - m_maincpu(*this, WD1015_TAG), - m_host(*this, WD11C00_17_TAG), - m_hdc(*this, WD2010A_TAG) + : device_t(mconfig, ISA8_WDXT_GEN, tag, owner, clock) + , device_isa8_card_interface(mconfig, *this) + , m_maincpu(*this, WD1015_TAG) + , m_host(*this, WD11C00_17_TAG) + , m_hdc(*this, WD2010A_TAG) { } diff --git a/src/devices/bus/isa/wdxt_gen.h b/src/devices/bus/isa/wdxt_gen.h index 5a19cc8542c..cfced925737 100644 --- a/src/devices/bus/isa/wdxt_gen.h +++ b/src/devices/bus/isa/wdxt_gen.h @@ -13,14 +13,14 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_ISA8_WDXT_GEN_H +#define MAME_BUS_ISA8_WDXT_GEN_H -#ifndef __ISA8_WDXT_GEN__ -#define __ISA8_WDXT_GEN__ +#pragma once -#include "cpu/mcs48/mcs48.h" #include "isa.h" +#include "cpu/mcs48/mcs48.h" #include "machine/wd11c00_17.h" #include "machine/wd2010.h" #include "imagedev/harddriv.h" @@ -78,6 +78,6 @@ private: // device type definition -extern const device_type ISA8_WDXT_GEN; +DECLARE_DEVICE_TYPE(ISA8_WDXT_GEN, wdxt_gen_device) -#endif +#endif // MAME_BUS_ISA8_WDXT_GEN_H diff --git a/src/devices/bus/isa/xsu_cards.cpp b/src/devices/bus/isa/xsu_cards.cpp index f7fbc3f6d02..d8839ebd4d9 100644 --- a/src/devices/bus/isa/xsu_cards.cpp +++ b/src/devices/bus/isa/xsu_cards.cpp @@ -7,9 +7,29 @@ **********************************************************************/ #include "emu.h" -#include "isa_cards.h" #include "xsu_cards.h" +#include "cga.h" + +// storage +#include "mc1502_fdc.h" +#include "p1_fdc.h" +#include "p1_hdc.h" + +// misc +#include "mc1502_rom.h" +#include "p1_rom.h" +#include "p1_sound.h" + +// non-native +#include "com.h" +#include "fdc.h" +#include "hdc.h" +#include "lpt.h" +#include "mda.h" +#include "xtide.h" + + SLOT_INTERFACE_START( p1_isa8_cards ) SLOT_INTERFACE("rom", P1_ROM) // B003 SLOT_INTERFACE("fdc", P1_FDC) // B504 diff --git a/src/devices/bus/isa/xsu_cards.h b/src/devices/bus/isa/xsu_cards.h index c2508c7108f..d8b98be154c 100644 --- a/src/devices/bus/isa/xsu_cards.h +++ b/src/devices/bus/isa/xsu_cards.h @@ -6,27 +6,11 @@ **********************************************************************/ -#pragma once - -#ifndef __XSU_CARDS_H__ -#define __XSU_CARDS_H__ - +#ifndef MAME_BUS_ISA_XSU_CARDS_H +#define MAME_BUS_ISA_XSU_CARDS_H -#include "cga.h" -// storage -#include "mc1502_fdc.h" -#include "p1_fdc.h" -#include "p1_hdc.h" - -// misc -#include "mc1502_rom.h" -#include "p1_rom.h" -#include "p1_sound.h" +#pragma once -// non-native -#include "com.h" -#include "xtide.h" -#include "lpt.h" // supported devices SLOT_INTERFACE_EXTERN( p1_isa8_cards ); @@ -34,4 +18,4 @@ SLOT_INTERFACE_EXTERN( mc1502_isa8_cards ); SLOT_INTERFACE_EXTERN( ec184x_isa8_cards ); SLOT_INTERFACE_EXTERN( iskr103x_isa8_cards ); -#endif // __XSU_CARDS_H__ +#endif // MAME_BUS_ISA_XSU_CARDS_H diff --git a/src/devices/bus/isa/xtide.cpp b/src/devices/bus/isa/xtide.cpp index a0e339be11e..6ea02ee3c77 100644 --- a/src/devices/bus/isa/xtide.cpp +++ b/src/devices/bus/isa/xtide.cpp @@ -262,7 +262,7 @@ ROM_END // GLOBAL VARIABLES //************************************************************************** -const device_type ISA8_XTIDE = device_creator; +DEFINE_DEVICE_TYPE(ISA8_XTIDE, xtide_device, "xtide", "XT-IDE Fixed Drive Adapter") //------------------------------------------------- // machine_config_additions - device-specific @@ -301,7 +301,7 @@ const tiny_rom_entry *xtide_device::device_rom_region() const //------------------------------------------------- xtide_device::xtide_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, ISA8_XTIDE, "XT-IDE Fixed Drive Adapter", tag, owner, clock, "isa8_xtide", __FILE__), + : device_t(mconfig, ISA8_XTIDE, tag, owner, clock), device_isa8_card_interface( mconfig, *this ), m_ata(*this, "ata"), m_eeprom(*this, "eeprom"), m_irq_number(0), m_d8_d15_latch(0) diff --git a/src/devices/bus/isa/xtide.h b/src/devices/bus/isa/xtide.h index 0fc61a0d4e2..b78d7bd6229 100644 --- a/src/devices/bus/isa/xtide.h +++ b/src/devices/bus/isa/xtide.h @@ -1,20 +1,19 @@ // license:BSD-3-Clause // copyright-holders:Phill Harvey-Smith -#pragma once +#ifndef MAME_BUS_ISA_XTIDE_H +#define MAME_BUS_ISA_XTIDE_H -#ifndef __XTIDE_H__ -#define __XTIDE_H__ +#pragma once +#include "isa.h" #include "machine/ataintf.h" #include "machine/eeprompar.h" -#include "isa.h" //************************************************************************** // TYPE DEFINITIONS //************************************************************************** -class xtide_device : public device_t, - public device_isa8_card_interface +class xtide_device : public device_t, public device_isa8_card_interface { public: // construction/destruction @@ -33,7 +32,6 @@ protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; - virtual void device_config_complete() override { m_shortname = "xtide"; } private: required_device m_ata; @@ -45,6 +43,6 @@ private: // device type definition -extern const device_type ISA8_XTIDE; +DECLARE_DEVICE_TYPE(ISA8_XTIDE, xtide_device) -#endif /* __XTIDE__ */ +#endif // MAME_BUS_ISA_XTIDE_H diff --git a/src/devices/bus/isbx/compis_fdc.cpp b/src/devices/bus/isbx/compis_fdc.cpp index 6f06976e925..91fedb13fa6 100644 --- a/src/devices/bus/isbx/compis_fdc.cpp +++ b/src/devices/bus/isbx/compis_fdc.cpp @@ -22,7 +22,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type COMPIS_FDC = device_creator; +DEFINE_DEVICE_TYPE(COMPIS_FDC, compis_fdc_device, "compis_fdc", "Compis FDC") //------------------------------------------------- @@ -83,7 +83,7 @@ machine_config_constructor compis_fdc_device::device_mconfig_additions() const //------------------------------------------------- compis_fdc_device::compis_fdc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, COMPIS_FDC, "Compis FDC", tag, owner, clock, "compis_fdc", __FILE__), + device_t(mconfig, COMPIS_FDC, tag, owner, clock), device_isbx_card_interface(mconfig, *this), m_fdc(*this, I8272_TAG), m_floppy0(*this, I8272_TAG":0"), diff --git a/src/devices/bus/isbx/compis_fdc.h b/src/devices/bus/isbx/compis_fdc.h index 0fccc9e9d80..2caf59513d3 100644 --- a/src/devices/bus/isbx/compis_fdc.h +++ b/src/devices/bus/isbx/compis_fdc.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_ISBX_COMPIS_FDC_H +#define MAME_BUS_ISBX_COMPIS_FDC_H -#ifndef __COMPIS_FDC__ -#define __COMPIS_FDC__ +#pragma once #include "isbx.h" #include "formats/cpis_dsk.h" @@ -58,7 +58,7 @@ private: // device type definition -extern const device_type COMPIS_FDC; +DECLARE_DEVICE_TYPE(COMPIS_FDC, compis_fdc_device) -#endif +#endif // MAME_BUS_ISBX_COMPIS_FDC_H diff --git a/src/devices/bus/isbx/isbc_218a.cpp b/src/devices/bus/isbx/isbc_218a.cpp index 4537dbd6261..e174b734f00 100644 --- a/src/devices/bus/isbx/isbc_218a.cpp +++ b/src/devices/bus/isbx/isbc_218a.cpp @@ -22,7 +22,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type ISBC_218A = device_creator; +DEFINE_DEVICE_TYPE(ISBC_218A, isbc_218a_device, "isbc_218a", "ISBX 218a for ISBC") //------------------------------------------------- @@ -82,7 +82,7 @@ machine_config_constructor isbc_218a_device::device_mconfig_additions() const //------------------------------------------------- isbc_218a_device::isbc_218a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, ISBC_218A, "ISBX 218a for ISBC", tag, owner, clock, "isbc_218a", __FILE__), + device_t(mconfig, ISBC_218A, tag, owner, clock), device_isbx_card_interface(mconfig, *this), m_fdc(*this, I8272_TAG), m_floppy0(*this, I8272_TAG":0"), m_reset(false), m_motor(false) diff --git a/src/devices/bus/isbx/isbc_218a.h b/src/devices/bus/isbx/isbc_218a.h index aa12b81aa84..f22391a4c4e 100644 --- a/src/devices/bus/isbx/isbc_218a.h +++ b/src/devices/bus/isbx/isbc_218a.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_ISBX_ISBC_218A_H +#define MAME_BUS_ISBX_ISBC_218A_H -#ifndef __ISBC_218A__ -#define __ISBC_218A__ +#pragma once #include "isbx.h" #include "formats/pc_dsk.h" @@ -60,7 +60,7 @@ private: // device type definition -extern const device_type ISBC_218A; +DECLARE_DEVICE_TYPE(ISBC_218A, isbc_218a_device) -#endif +#endif // MAME_BUS_ISBX_ISBC_218A_H diff --git a/src/devices/bus/isbx/isbx.cpp b/src/devices/bus/isbx/isbx.cpp index 6746969a5b7..ce658e6b1d3 100644 --- a/src/devices/bus/isbx/isbx.cpp +++ b/src/devices/bus/isbx/isbx.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type ISBX_SLOT = device_creator; +DEFINE_DEVICE_TYPE(ISBX_SLOT, isbx_slot_device, "isbx_slot", "iSBX bus slot") @@ -39,7 +39,7 @@ device_isbx_card_interface::device_isbx_card_interface(const machine_config &mco //------------------------------------------------- isbx_slot_device::isbx_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, ISBX_SLOT, "iSBX bus slot", tag, owner, clock, "isbx_slot", __FILE__), + device_t(mconfig, ISBX_SLOT, tag, owner, clock), device_slot_interface(mconfig, *this), m_write_mintr0(*this), m_write_mintr1(*this), diff --git a/src/devices/bus/isbx/isbx.h b/src/devices/bus/isbx/isbx.h index 69e80b1df52..3cd74178228 100644 --- a/src/devices/bus/isbx/isbx.h +++ b/src/devices/bus/isbx/isbx.h @@ -31,10 +31,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_ISBX_ISBX_SLOT_H +#define MAME_BUS_ISBX_ISBX_SLOT_H -#ifndef __ISBX_SLOT__ -#define __ISBX_SLOT__ +#pragma once @@ -73,9 +73,6 @@ class isbx_slot_device; class device_isbx_card_interface : public device_slot_card_interface { public: - // construction/destruction - device_isbx_card_interface(const machine_config &mconfig, device_t &device); - virtual uint8_t mcs0_r(address_space &space, offs_t offset) { return 0xff; } virtual void mcs0_w(address_space &space, offs_t offset, uint8_t data) { } virtual uint8_t mcs1_r(address_space &space, offs_t offset) { return 0xff; } @@ -90,6 +87,9 @@ public: virtual void mclk_w(int state) { } protected: + // construction/destruction + device_isbx_card_interface(const machine_config &mconfig, device_t &device); + isbx_slot_device *m_slot; }; @@ -103,10 +103,10 @@ public: // construction/destruction isbx_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template void set_mintr0_callback(_mintr0 mintr0) { m_write_mintr0.set_callback(mintr0); } - template void set_mintr1_callback(_mintr1 mintr1) { m_write_mintr1.set_callback(mintr1); } - template void set_mdrqt_callback(_mdrqt mdrqt) { m_write_mdrqt.set_callback(mdrqt); } - template void set_mwait_callback(_mwait mwait) { m_write_mwait.set_callback(mwait); } + template void set_mintr0_callback(Object &&cb) { m_write_mintr0.set_callback(std::forward(cb)); } + template void set_mintr1_callback(Object &&cb) { m_write_mintr1.set_callback(std::forward(cb)); } + template void set_mdrqt_callback(Object &&cb) { m_write_mdrqt.set_callback(std::forward(cb)); } + template void set_mwait_callback(Object &&cb) { m_write_mwait.set_callback(std::forward(cb)); } // computer interface DECLARE_READ8_MEMBER( mcs0_r ) { return m_card ? m_card->mcs0_r(space, offset) : 0xff; } @@ -144,11 +144,10 @@ protected: // device type definition -extern const device_type ISBX_SLOT; +DECLARE_DEVICE_TYPE(ISBX_SLOT, isbx_slot_device) SLOT_INTERFACE_EXTERN( isbx_cards ); - -#endif +#endif // MAME_BUS_ISBX_ISBX_SLOT_H diff --git a/src/devices/bus/kc/d002.cpp b/src/devices/bus/kc/d002.cpp index d36ada24b53..ac3928acd6e 100644 --- a/src/devices/bus/kc/d002.cpp +++ b/src/devices/bus/kc/d002.cpp @@ -11,6 +11,11 @@ #include "emu.h" #include "d002.h" +#include "ram.h" +#include "rom.h" +#include "d004.h" + + /*************************************************************************** IMPLEMENTATION ***************************************************************************/ @@ -98,7 +103,7 @@ MACHINE_CONFIG_END // GLOBAL VARIABLES //************************************************************************** -const device_type KC_D002 = device_creator; +DEFINE_DEVICE_TYPE(KC_D002, kc_d002_device, "kc_d002", "D002 Bus Driver") //************************************************************************** // LIVE DEVICE @@ -109,9 +114,11 @@ const device_type KC_D002 = device_creator; //------------------------------------------------- kc_d002_device::kc_d002_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, KC_D002, "D002 Bus Driver", tag, owner, clock, "kc_d002", __FILE__), - device_kcexp_interface( mconfig, *this ), m_slot(nullptr) - { + : device_t(mconfig, KC_D002, tag, owner, clock) + , device_kcexp_interface(mconfig, *this) + , m_slot(nullptr) + , m_expansions(*this, { "m0", "m4", "m8", "mc", "exp" }) +{ } //------------------------------------------------- @@ -121,12 +128,6 @@ kc_d002_device::kc_d002_device(const machine_config &mconfig, const char *tag, d void kc_d002_device::device_start() { m_slot = dynamic_cast(owner()); - - m_expansions[0] = downcast(subdevice("m0")); - m_expansions[1] = downcast(subdevice("m4")); - m_expansions[2] = downcast(subdevice("m8")); - m_expansions[3] = downcast(subdevice("mc")); - m_expansions[4] = downcast(subdevice("exp")); } //------------------------------------------------- diff --git a/src/devices/bus/kc/d002.h b/src/devices/bus/kc/d002.h index 3a93ee8564c..48bd97336b2 100644 --- a/src/devices/bus/kc/d002.h +++ b/src/devices/bus/kc/d002.h @@ -1,14 +1,11 @@ // license:BSD-3-Clause // copyright-holders:Sandro Ronco -#pragma once +#ifndef MAME_BUS_KC_D002_H +#define MAME_BUS_KC_D002_H -#ifndef __KC_D002_H__ -#define __KC_D002_H__ +#pragma once #include "kc.h" -#include "ram.h" -#include "rom.h" -#include "d004.h" //************************************************************************** // TYPE DEFINITIONS @@ -49,11 +46,11 @@ private: kcexp_slot_device *m_slot; // internal state - kcexp_slot_device *m_expansions[5]; + required_device_array m_expansions; }; // device type definition -extern const device_type KC_D002; +DECLARE_DEVICE_TYPE(KC_D002, kc_d002_device) -#endif /* __KC_D002_H__ */ +#endif // MAME_BUS_KC_D002_H diff --git a/src/devices/bus/kc/d004.cpp b/src/devices/bus/kc/d004.cpp index 2afd3ca0422..dafee6a6f4f 100644 --- a/src/devices/bus/kc/d004.cpp +++ b/src/devices/bus/kc/d004.cpp @@ -117,8 +117,8 @@ ROM_END // GLOBAL VARIABLES //************************************************************************** -const device_type KC_D004 = device_creator; -const device_type KC_D004_GIDE = device_creator; +DEFINE_DEVICE_TYPE(KC_D004, kc_d004_device, "kc_d004", "D004 Floppy Disk Interface") +DEFINE_DEVICE_TYPE(KC_D004_GIDE, kc_d004_gide_device, "kc_d004_gide", "D004 Floppy Disk + GIDE Interface") //************************************************************************** // LIVE DEVICE @@ -129,21 +129,22 @@ const device_type KC_D004_GIDE = device_creator; //------------------------------------------------- kc_d004_device::kc_d004_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : kc_d004_device(mconfig, KC_D004, "D004 Floppy Disk Interface", tag, owner, clock, "kc_d004", __FILE__) + : kc_d004_device(mconfig, KC_D004, tag, owner, clock) { } -kc_d004_device::kc_d004_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_kcexp_interface( mconfig, *this ), - m_cpu(*this, Z80_TAG), - m_fdc(*this, UPD765_TAG), - m_floppy0(*this, UPD765_TAG ":0"), - m_floppy1(*this, UPD765_TAG ":1"), - m_floppy2(*this, UPD765_TAG ":2"), - m_floppy3(*this, UPD765_TAG ":3"), - m_koppel_ram(*this, "koppelram"), m_reset_timer(nullptr), m_rom(nullptr), m_rom_base(0), m_enabled(0), m_connected(0), m_floppy(nullptr) - { +kc_d004_device::kc_d004_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock), + device_kcexp_interface( mconfig, *this ), + m_cpu(*this, Z80_TAG), + m_fdc(*this, UPD765_TAG), + m_floppy0(*this, UPD765_TAG ":0"), + m_floppy1(*this, UPD765_TAG ":1"), + m_floppy2(*this, UPD765_TAG ":2"), + m_floppy3(*this, UPD765_TAG ":3"), + m_koppel_ram(*this, "koppelram"), + m_reset_timer(nullptr), m_rom(nullptr), m_rom_base(0), m_enabled(0), m_connected(0), m_floppy(nullptr) +{ } //------------------------------------------------- @@ -375,9 +376,9 @@ WRITE_LINE_MEMBER(kc_d004_device::fdc_irq) //------------------------------------------------- kc_d004_gide_device::kc_d004_gide_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : kc_d004_device(mconfig, KC_D004_GIDE, "D004 Floppy Disk + GIDE Interface", tag, owner, clock, "kc_d004gide", __FILE__), - m_ata(*this, ATA_TAG), m_ata_data(0), m_lh(0) - { + : kc_d004_device(mconfig, KC_D004_GIDE, tag, owner, clock), + m_ata(*this, ATA_TAG), m_ata_data(0), m_lh(0) +{ } //------------------------------------------------- diff --git a/src/devices/bus/kc/d004.h b/src/devices/bus/kc/d004.h index 521289a076d..bbac3463866 100644 --- a/src/devices/bus/kc/d004.h +++ b/src/devices/bus/kc/d004.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Sandro Ronco -#pragma once +#ifndef MAME_BUS_KC_D004_H +#define MAME_BUS_KC_D004_H -#ifndef __KC_D004_H__ -#define __KC_D004_H__ +#pragma once #include "kc.h" #include "machine/z80ctc.h" @@ -26,7 +26,6 @@ class kc_d004_device : public: // construction/destruction kc_d004_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - kc_d004_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); // optional information overrides virtual machine_config_constructor device_mconfig_additions() const override; @@ -34,7 +33,15 @@ public: DECLARE_FLOPPY_FORMATS( floppy_formats ); + DECLARE_READ8_MEMBER(hw_input_gate_r); + DECLARE_WRITE8_MEMBER(fdd_select_w); + DECLARE_WRITE8_MEMBER(hw_terminal_count_w); + + DECLARE_WRITE_LINE_MEMBER( fdc_irq ); + protected: + kc_d004_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -47,13 +54,6 @@ protected: virtual void io_read(offs_t offset, uint8_t &data) override; virtual void io_write(offs_t offset, uint8_t data) override; -public: - DECLARE_READ8_MEMBER(hw_input_gate_r); - DECLARE_WRITE8_MEMBER(fdd_select_w); - DECLARE_WRITE8_MEMBER(hw_terminal_count_w); - - DECLARE_WRITE_LINE_MEMBER( fdc_irq ); - private: static const device_timer_id TIMER_RESET = 0; @@ -91,14 +91,13 @@ public: virtual machine_config_constructor device_mconfig_additions() const override; virtual const tiny_rom_entry *device_rom_region() const override; + DECLARE_READ8_MEMBER(gide_r); + DECLARE_WRITE8_MEMBER(gide_w); + protected: // device-level overrides virtual void device_reset() override; -public: - DECLARE_READ8_MEMBER(gide_r); - DECLARE_WRITE8_MEMBER(gide_w); - private: required_device m_ata; @@ -107,7 +106,7 @@ private: }; // device type definition -extern const device_type KC_D004; -extern const device_type KC_D004_GIDE; +DECLARE_DEVICE_TYPE(KC_D004, kc_d004_device) +DECLARE_DEVICE_TYPE(KC_D004_GIDE, kc_d004_gide_device) -#endif /* __KC_D004_H__ */ +#endif // MAME_BUS_KC_D004_H diff --git a/src/devices/bus/kc/kc.cpp b/src/devices/bus/kc/kc.cpp index 8995aeaa39c..99da30bb188 100644 --- a/src/devices/bus/kc/kc.cpp +++ b/src/devices/bus/kc/kc.cpp @@ -118,8 +118,8 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type KCEXP_SLOT = device_creator; -const device_type KCCART_SLOT = device_creator; +DEFINE_DEVICE_TYPE(KCEXP_SLOT, kcexp_slot_device, "kcexp_slot", "KC85 Expansion Slot") +DEFINE_DEVICE_TYPE(KCCART_SLOT, kccart_slot_device, "kccart_slot", "KC85 Cartridge Slot") //************************************************************************** @@ -153,20 +153,17 @@ device_kcexp_interface::~device_kcexp_interface() // kcexp_slot_device - constructor //------------------------------------------------- kcexp_slot_device::kcexp_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, KCEXP_SLOT, "KC85 Expansion Slot", tag, owner, clock, "kcexp_slot", __FILE__), - device_slot_interface(mconfig, *this), - m_out_irq_cb(*this), - m_out_nmi_cb(*this), - m_out_halt_cb(*this), m_cart(nullptr), m_next_slot_tag(nullptr), m_next_slot(nullptr) + kcexp_slot_device(mconfig, KCEXP_SLOT, tag, owner, clock) { } -kcexp_slot_device::kcexp_slot_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_slot_interface(mconfig, *this), - m_out_irq_cb(*this), - m_out_nmi_cb(*this), - m_out_halt_cb(*this), m_cart(nullptr), m_next_slot_tag(nullptr), m_next_slot(nullptr) +kcexp_slot_device::kcexp_slot_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), + device_slot_interface(mconfig, *this), + m_out_irq_cb(*this), + m_out_nmi_cb(*this), + m_out_halt_cb(*this), + m_cart(nullptr), m_next_slot_tag(nullptr), m_next_slot(nullptr) { } @@ -299,8 +296,8 @@ WRITE_LINE_MEMBER( kcexp_slot_device::meo_w ) // kccart_slot_device - constructor //------------------------------------------------- kccart_slot_device::kccart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - kcexp_slot_device(mconfig, KCCART_SLOT, "KC85 Cartridge Slot", tag, owner, clock, "kccart_slot", __FILE__), - device_image_interface(mconfig, *this) + kcexp_slot_device(mconfig, KCCART_SLOT, tag, owner, clock), + device_image_interface(mconfig, *this) { } diff --git a/src/devices/bus/kc/kc.h b/src/devices/bus/kc/kc.h index 4408b6913c8..a058a80c9af 100644 --- a/src/devices/bus/kc/kc.h +++ b/src/devices/bus/kc/kc.h @@ -8,8 +8,10 @@ *********************************************************************/ -#ifndef __KCEXP_H__ -#define __KCEXP_H__ +#ifndef MAME_BUS_KC_KC_H +#define MAME_BUS_KC_KC_H + +#pragma once #include "softlist_dev.h" @@ -23,7 +25,6 @@ class device_kcexp_interface : public device_slot_card_interface { public: // construction/destruction - device_kcexp_interface(const machine_config &mconfig, device_t &device); virtual ~device_kcexp_interface(); // reading and writing @@ -34,7 +35,10 @@ public: virtual void io_read(offs_t offset, uint8_t &data) { } virtual void io_write(offs_t offset, uint8_t data) { } virtual uint8_t* get_cart_base() { return nullptr; } - virtual DECLARE_WRITE_LINE_MEMBER( mei_w ) { }; + virtual DECLARE_WRITE_LINE_MEMBER( mei_w ) { } + +protected: + device_kcexp_interface(const machine_config &mconfig, device_t &device); }; // ======================> kcexp_slot_device @@ -45,15 +49,11 @@ class kcexp_slot_device : public device_t, public: // construction/destruction kcexp_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - kcexp_slot_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); virtual ~kcexp_slot_device(); - template static devcb_base &set_out_irq_callback(device_t &device, _Object object) { return downcast(device).m_out_irq_cb.set_callback(object); } - template static devcb_base &set_out_nmi_callback(device_t &device, _Object object) { return downcast(device).m_out_nmi_cb.set_callback(object); } - template static devcb_base &set_out_halt_callback(device_t &device, _Object object) { return downcast(device).m_out_halt_cb.set_callback(object); } - - // device-level overrides - virtual void device_start() override; + template static devcb_base &set_out_irq_callback(device_t &device, Object &&cb) { return downcast(device).m_out_irq_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_nmi_callback(device_t &device, Object &&cb) { return downcast(device).m_out_nmi_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_halt_callback(device_t &device, Object &&cb) { return downcast(device).m_out_halt_cb.set_callback(std::forward(cb)); } // inline configuration static void static_set_next_slot(device_t &device, const char *next_module_tag); @@ -72,6 +72,12 @@ public: devcb_write_line m_out_nmi_cb; devcb_write_line m_out_halt_cb; +protected: + kcexp_slot_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual void device_start() override; + device_kcexp_interface* m_cart; const char* m_next_slot_tag; @@ -106,8 +112,8 @@ public: }; // device type definition -extern const device_type KCEXP_SLOT; -extern const device_type KCCART_SLOT; +DECLARE_DEVICE_TYPE(KCEXP_SLOT, kcexp_slot_device) +DECLARE_DEVICE_TYPE(KCCART_SLOT, kccart_slot_device) /*************************************************************************** @@ -147,4 +153,4 @@ extern const device_type KCCART_SLOT; // MCFG_DEVICE_ADD(_tag, KCCART_SLOT, 0) // MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, false) -#endif /* __KCEXP_H__ */ +#endif // MAME_BUS_KC_KC_H diff --git a/src/devices/bus/kc/ram.cpp b/src/devices/bus/kc/ram.cpp index ed55a3a9784..5e69b397508 100644 --- a/src/devices/bus/kc/ram.cpp +++ b/src/devices/bus/kc/ram.cpp @@ -27,12 +27,12 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type KC_M011 = device_creator; -const device_type KC_M022 = device_creator; -const device_type KC_M032 = device_creator; -const device_type KC_M034 = device_creator; -const device_type KC_M035 = device_creator; -const device_type KC_M036 = device_creator; +DEFINE_DEVICE_TYPE(KC_M011, kc_m011_device, "kc_m011", "M011 64KB RAM") +DEFINE_DEVICE_TYPE(KC_M022, kc_m022_device, "kc_m022", "M022 16KB RAM") +DEFINE_DEVICE_TYPE(KC_M032, kc_m032_device, "kc_m032", "M032 256KB segmented RAM") +DEFINE_DEVICE_TYPE(KC_M034, kc_m034_device, "kc_m034", "M034 512KB segmented RAM") +DEFINE_DEVICE_TYPE(KC_M035, kc_m035_device, "kc_m035", "M035 1MB segmented RAM") +DEFINE_DEVICE_TYPE(KC_M036, kc_m036_device, "kc_m036", "M036 128KB segmented RAM") //************************************************************************** // M011 64KB RAM @@ -43,14 +43,14 @@ const device_type KC_M036 = device_creator; //------------------------------------------------- kc_m011_device::kc_m011_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, KC_M011, "M011 64KB RAM", tag, owner, clock, "kc_m011", __FILE__), - device_kcexp_interface( mconfig, *this ), m_slot(nullptr), m_mei(0), m_ram(nullptr), m_enabled(0), m_write_enabled(0), m_base(0), m_segment(0) - { + : kc_m011_device(mconfig, KC_M011, tag, owner, clock) +{ } -kc_m011_device::kc_m011_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_kcexp_interface( mconfig, *this ), m_slot(nullptr), m_mei(0), m_ram(nullptr), m_enabled(0), m_write_enabled(0), m_base(0), m_segment(0) +kc_m011_device::kc_m011_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) + , device_kcexp_interface(mconfig, *this) + , m_slot(nullptr), m_mei(0), m_ram(nullptr), m_enabled(0), m_write_enabled(0), m_base(0), m_segment(0) { } @@ -148,7 +148,7 @@ WRITE_LINE_MEMBER( kc_m011_device::mei_w ) //------------------------------------------------- kc_m022_device::kc_m022_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : kc_m011_device(mconfig, KC_M022, "M022 16KB RAM", tag, owner, clock, "kc_m022", __FILE__) + : kc_m011_device(mconfig, KC_M022, tag, owner, clock) { } @@ -193,7 +193,7 @@ void kc_m022_device::write(offs_t offset, uint8_t data) //------------------------------------------------- kc_m032_device::kc_m032_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : kc_m011_device(mconfig, KC_M032, "M032 256KB segmented RAM", tag, owner, clock, "kc_m032", __FILE__) + : kc_m011_device(mconfig, KC_M032, tag, owner, clock) { } @@ -262,7 +262,7 @@ void kc_m032_device::write(offs_t offset, uint8_t data) //------------------------------------------------- kc_m034_device::kc_m034_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : kc_m011_device(mconfig, KC_M034, "M034 512KB segmented RAM", tag, owner, clock, "kc_m034", __FILE__) + : kc_m011_device(mconfig, KC_M034, tag, owner, clock) { } @@ -331,7 +331,7 @@ void kc_m034_device::write(offs_t offset, uint8_t data) //------------------------------------------------- kc_m035_device::kc_m035_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : kc_m011_device(mconfig, KC_M035, "M035 1MB segmented RAM", tag, owner, clock, "kc_m035", __FILE__) + : kc_m011_device(mconfig, KC_M035, tag, owner, clock) { } @@ -389,7 +389,7 @@ void kc_m035_device::write(offs_t offset, uint8_t data) //------------------------------------------------- kc_m036_device::kc_m036_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : kc_m011_device(mconfig, KC_M036, "M036 128KB segmented RAM", tag, owner, clock, "kc_m036", __FILE__) + : kc_m011_device(mconfig, KC_M036, tag, owner, clock) { } diff --git a/src/devices/bus/kc/ram.h b/src/devices/bus/kc/ram.h index 97e735e64d2..823d32bdb31 100644 --- a/src/devices/bus/kc/ram.h +++ b/src/devices/bus/kc/ram.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Sandro Ronco -#pragma once +#ifndef MAME_BUS_KC_RAM_H +#define MAME_BUS_KC_RAM_H -#ifndef __KC_RAM_H__ -#define __KC_RAM_H__ +#pragma once #include "kc.h" @@ -20,9 +20,10 @@ class kc_m011_device : public: // construction/destruction kc_m011_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - kc_m011_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); protected: + kc_m011_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -169,11 +170,11 @@ private: }; // device type definition -extern const device_type KC_M011; -extern const device_type KC_M022; -extern const device_type KC_M032; -extern const device_type KC_M034; -extern const device_type KC_M035; -extern const device_type KC_M036; - -#endif /* __KC_RAM_H__ */ +DECLARE_DEVICE_TYPE(KC_M011, kc_m011_device) +DECLARE_DEVICE_TYPE(KC_M022, kc_m022_device) +DECLARE_DEVICE_TYPE(KC_M032, kc_m032_device) +DECLARE_DEVICE_TYPE(KC_M034, kc_m034_device) +DECLARE_DEVICE_TYPE(KC_M035, kc_m035_device) +DECLARE_DEVICE_TYPE(KC_M036, kc_m036_device) + +#endif // MAME_BUS_KC_RAM_H diff --git a/src/devices/bus/kc/rom.cpp b/src/devices/bus/kc/rom.cpp index 027b7347398..eca6d6a1907 100644 --- a/src/devices/bus/kc/rom.cpp +++ b/src/devices/bus/kc/rom.cpp @@ -30,9 +30,9 @@ ROM_END // GLOBAL VARIABLES //************************************************************************** -const device_type KC_STANDARD = device_creator; -const device_type KC_M006 = device_creator; -const device_type KC_M033 = device_creator; +DEFINE_DEVICE_TYPE(KC_STANDARD, kc_8k_device, "kc_8k", "Standard 8K ROM module") +DEFINE_DEVICE_TYPE(KC_M006, kc_m006_device, "kc_m006", "M006 BASIC") +DEFINE_DEVICE_TYPE(KC_M033, kc_m033_device, "kc_m033", "M033 TypeStar") //************************************************************************** // LIVE DEVICE @@ -43,15 +43,15 @@ const device_type KC_M033 = device_creator; //------------------------------------------------- kc_8k_device::kc_8k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, KC_STANDARD, "Standard 8K ROM module", tag, owner, clock, "kc_8k", __FILE__), - device_kcexp_interface( mconfig, *this ), m_slot(nullptr), m_mei(0), m_rom(nullptr), m_enabled(0), m_base(0) - { + : kc_8k_device(mconfig, KC_STANDARD, tag, owner, clock) +{ } -kc_8k_device::kc_8k_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_kcexp_interface( mconfig, *this ), m_slot(nullptr), m_mei(0), m_rom(nullptr), m_enabled(0), m_base(0) - { +kc_8k_device::kc_8k_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) + , device_kcexp_interface(mconfig, *this) + , m_slot(nullptr), m_mei(0), m_rom(nullptr), m_enabled(0), m_base(0) +{ } @@ -143,7 +143,7 @@ WRITE_LINE_MEMBER( kc_8k_device::mei_w ) //------------------------------------------------- kc_m006_device::kc_m006_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : kc_8k_device(mconfig, KC_M006, "M006 BASIC", tag, owner, clock, "kc_m006", __FILE__) + : kc_8k_device(mconfig, KC_M006, tag, owner, clock) { } @@ -185,8 +185,9 @@ void kc_m006_device::read(offs_t offset, uint8_t &data) //------------------------------------------------- kc_m033_device::kc_m033_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : kc_8k_device(mconfig, KC_M033, "M033 TypeStar", tag, owner, clock, "kc_m033", __FILE__), m_bank(0) - { + : kc_8k_device(mconfig, KC_M033, tag, owner, clock) + , m_bank(0) +{ } //------------------------------------------------- diff --git a/src/devices/bus/kc/rom.h b/src/devices/bus/kc/rom.h index 9568bcdaea7..024969d68b4 100644 --- a/src/devices/bus/kc/rom.h +++ b/src/devices/bus/kc/rom.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Sandro Ronco -#pragma once +#ifndef MAME_BUS_KC_ROM_H +#define MAME_BUS_KC_ROM_H -#ifndef __KC_ROM_H__ -#define __KC_ROM_H__ +#pragma once #include "kc.h" @@ -20,11 +20,10 @@ class kc_8k_device : public: // construction/destruction kc_8k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - kc_8k_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - - // optional information overrides protected: + kc_8k_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -90,8 +89,8 @@ private: // device type definition -extern const device_type KC_STANDARD; -extern const device_type KC_M006; -extern const device_type KC_M033; +DECLARE_DEVICE_TYPE(KC_STANDARD, kc_8k_device) +DECLARE_DEVICE_TYPE(KC_M006, kc_m006_device) +DECLARE_DEVICE_TYPE(KC_M033, kc_m033_device) -#endif /* __KC_ROM_H__ */ +#endif // MAME_BUS_KC_ROM_H diff --git a/src/devices/bus/lpci/cirrus.cpp b/src/devices/bus/lpci/cirrus.cpp index 611965d0419..ddfe9d81330 100644 --- a/src/devices/bus/lpci/cirrus.cpp +++ b/src/devices/bus/lpci/cirrus.cpp @@ -73,19 +73,19 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type CIRRUS = device_creator; +DEFINE_DEVICE_TYPE(PCI_CIRRUS_SVGA, pci_cirrus_svga_device, "pci_cirrus_svga", "Cirrus SVGA (PCI)") //************************************************************************** // LIVE DEVICE //************************************************************************** //------------------------------------------------- -// cirrus_device - constructor +// pci_cirrus_svga_device - constructor //------------------------------------------------- -cirrus_device::cirrus_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, CIRRUS, "CIRRUS", tag, owner, clock, "cirrus", __FILE__), - pci_device_interface( mconfig, *this ) +pci_cirrus_svga_device::pci_cirrus_svga_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, PCI_CIRRUS_SVGA, tag, owner, clock) + , pci_device_interface( mconfig, *this ) { } @@ -93,7 +93,7 @@ cirrus_device::cirrus_device(const machine_config &mconfig, const char *tag, dev // device_start - device-specific startup //------------------------------------------------- -void cirrus_device::device_start() +void pci_cirrus_svga_device::device_start() { } @@ -101,7 +101,7 @@ void cirrus_device::device_start() // device_reset - device-specific reset //------------------------------------------------- -void cirrus_device::device_reset() +void pci_cirrus_svga_device::device_reset() { } @@ -109,7 +109,7 @@ void cirrus_device::device_reset() // pci_read - implementation of PCI read //------------------------------------------------- -uint32_t cirrus_device::pci_read(pci_bus_device *pcibus, int function, int offset, uint32_t mem_mask) +uint32_t pci_cirrus_svga_device::pci_read(pci_bus_device *pcibus, int function, int offset, uint32_t mem_mask) { uint32_t result = 0; @@ -145,7 +145,7 @@ uint32_t cirrus_device::pci_read(pci_bus_device *pcibus, int function, int offse // pci_write - implementation of PCI write //------------------------------------------------- -void cirrus_device::pci_write(pci_bus_device *pcibus, int function, int offset, uint32_t data, uint32_t mem_mask) +void pci_cirrus_svga_device::pci_write(pci_bus_device *pcibus, int function, int offset, uint32_t data, uint32_t mem_mask) { if (LOG_PCIACCESS) logerror("cirrus5430_pci_write(): function=%d offset=0x%02X data=0x%04X\n", function, offset, data); @@ -157,7 +157,7 @@ void cirrus_device::pci_write(pci_bus_device *pcibus, int function, int offset, * *************************************/ -WRITE8_MEMBER( cirrus_device::cirrus_42E8_w ) +WRITE8_MEMBER( pci_cirrus_svga_device::cirrus_42E8_w ) { if (data & 0x80) machine().device("vga")->reset(); diff --git a/src/devices/bus/lpci/cirrus.h b/src/devices/bus/lpci/cirrus.h index e9c4aeeccd3..22eabaff906 100644 --- a/src/devices/bus/lpci/cirrus.h +++ b/src/devices/bus/lpci/cirrus.h @@ -8,19 +8,20 @@ ***************************************************************************/ -#ifndef CIRRUS_H -#define CIRRUS_H +#ifndef MAME_BUS_LPCI_CIRRUS_H +#define MAME_BUS_LPCI_CIRRUS_H + +#pragma once #include "bus/lpci/pci.h" -// ======================> cirrus_device +// ======================> pci_cirrus_svga_device -class cirrus_device : public device_t, - public pci_device_interface +class pci_cirrus_svga_device : public device_t, public pci_device_interface { public: // construction/destruction - cirrus_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + pci_cirrus_svga_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual uint32_t pci_read(pci_bus_device *pcibus, int function, int offset, uint32_t mem_mask) override; virtual void pci_write(pci_bus_device *pcibus, int function, int offset, uint32_t data, uint32_t mem_mask) override; @@ -35,6 +36,6 @@ protected: // device type definition -extern const device_type CIRRUS; +DECLARE_DEVICE_TYPE(PCI_CIRRUS_SVGA, pci_cirrus_svga_device) -#endif /* CIRRUS_H */ +#endif // MAME_BUS_LPCI_CIRRUS_H diff --git a/src/devices/bus/lpci/i82371ab.cpp b/src/devices/bus/lpci/i82371ab.cpp index 80c711f5f13..1c6d2f0e166 100644 --- a/src/devices/bus/lpci/i82371ab.cpp +++ b/src/devices/bus/lpci/i82371ab.cpp @@ -19,12 +19,12 @@ #include "emu.h" #include "i82371ab.h" -const device_type I82371AB = device_creator; +DEFINE_DEVICE_TYPE(I82371AB, i82371ab_device, "i82371ab", "Intel 82371AB") i82371ab_device::i82371ab_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : southbridge_device(mconfig, I82371AB, "Intel 82371AB", tag, owner, clock, "i82371ab", __FILE__), - pci_device_interface( mconfig, *this ) + : southbridge_device(mconfig, I82371AB, tag, owner, clock) + , pci_device_interface(mconfig, *this) { } diff --git a/src/devices/bus/lpci/i82371ab.h b/src/devices/bus/lpci/i82371ab.h index 637819d9694..dc251bee0bf 100644 --- a/src/devices/bus/lpci/i82371ab.h +++ b/src/devices/bus/lpci/i82371ab.h @@ -8,8 +8,10 @@ ***************************************************************************/ -#ifndef __I82371AB_H__ -#define __I82371AB_H__ +#ifndef MAME_BUS_LPCI_I82371AB_H +#define MAME_BUS_LPCI_I82371AB_H + +#pragma once #include "pci.h" #include "southbridge.h" @@ -48,6 +50,6 @@ private: }; // device type definition -extern const device_type I82371AB; +DECLARE_DEVICE_TYPE(I82371AB, i82371ab_device) -#endif /* __I82371AB_H__ */ +#endif // MAME_BUS_LPCI_I82371AB_H diff --git a/src/devices/bus/lpci/i82371sb.cpp b/src/devices/bus/lpci/i82371sb.cpp index 1193ed8d64e..4b3744721df 100644 --- a/src/devices/bus/lpci/i82371sb.cpp +++ b/src/devices/bus/lpci/i82371sb.cpp @@ -24,12 +24,12 @@ IMPLEMENTATION ***************************************************************************/ -const device_type I82371SB = device_creator; +DEFINE_DEVICE_TYPE(I82371SB, i82371sb_device, "i82371sb", "Intel 82371SB") i82371sb_device::i82371sb_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : southbridge_device(mconfig, I82371SB, "Intel 82371SB", tag, owner, clock, "i82371sb", __FILE__), - pci_device_interface( mconfig, *this ) + : southbridge_device(mconfig, I82371SB, tag, owner, clock) + , pci_device_interface( mconfig, *this ) { } diff --git a/src/devices/bus/lpci/i82371sb.h b/src/devices/bus/lpci/i82371sb.h index 9627e82f8cf..c9d71a817b7 100644 --- a/src/devices/bus/lpci/i82371sb.h +++ b/src/devices/bus/lpci/i82371sb.h @@ -8,16 +8,17 @@ ***************************************************************************/ -#ifndef __I82371SB_H__ -#define __I82371SB_H__ +#ifndef MAME_BUS_LPCI_I82371SB_H +#define MAME_BUS_LPCI_I82371SB_H + +#pragma once #include "pci.h" #include "southbridge.h" // ======================> i82371sb_device -class i82371sb_device : public southbridge_device, - public pci_device_interface +class i82371sb_device : public southbridge_device, public pci_device_interface { public: // construction/destruction @@ -45,6 +46,6 @@ private: // device type definition extern const device_type I82371SB; +DECLARE_DEVICE_TYPE(I82371SB, i82371sb_device) - -#endif /* __I82371SB_H__ */ +#endif // MAME_BUS_LPCI_I82371SB_H diff --git a/src/devices/bus/lpci/i82439tx.cpp b/src/devices/bus/lpci/i82439tx.cpp index 568cba45c08..b4bebc8e233 100644 --- a/src/devices/bus/lpci/i82439tx.cpp +++ b/src/devices/bus/lpci/i82439tx.cpp @@ -13,14 +13,14 @@ IMPLEMENTATION ***************************************************************************/ -const device_type I82439TX = device_creator; +DEFINE_DEVICE_TYPE(I82439TX, i82439tx_device, "i82439tx", "Intel 82439TX") i82439tx_device::i82439tx_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : northbridge_device(mconfig, I82439TX, "Intel 82439TX", tag, owner, clock, "i82439tx", __FILE__), - pci_device_interface( mconfig, *this ), - m_cpu_tag( nullptr ), - m_region_tag( nullptr ), + : northbridge_device(mconfig, I82439TX, tag, owner, clock), + pci_device_interface(mconfig, *this), + m_cpu_tag(nullptr), + m_region_tag(nullptr), m_space(nullptr), m_rom(nullptr) { diff --git a/src/devices/bus/lpci/i82439tx.h b/src/devices/bus/lpci/i82439tx.h index 41626c7f627..e94b95629c0 100644 --- a/src/devices/bus/lpci/i82439tx.h +++ b/src/devices/bus/lpci/i82439tx.h @@ -8,8 +8,10 @@ ***************************************************************************/ -#ifndef __I82439TX_H__ -#define __I82439TX_H__ +#ifndef MAME_BUS_LPCI_I82439TX_H +#define MAME_BUS_LPCI_I82439TX_H + +#pragma once #include "pci.h" #include "northbridge.h" @@ -22,8 +24,7 @@ // ======================> i82439tx_device -class i82439tx_device : public northbridge_device, - public pci_device_interface +class i82439tx_device : public northbridge_device, public pci_device_interface { public: // construction/destruction @@ -54,6 +55,6 @@ private: }; // device type definition -extern const device_type I82439TX; +DECLARE_DEVICE_TYPE(I82439TX, i82439tx_device) -#endif /* __I82439TX_H__ */ +#endif // MAME_BUS_LPCI_I82439TX_H diff --git a/src/devices/bus/lpci/mpc105.cpp b/src/devices/bus/lpci/mpc105.cpp index 45958b4196c..74e11d3f5d5 100644 --- a/src/devices/bus/lpci/mpc105.cpp +++ b/src/devices/bus/lpci/mpc105.cpp @@ -18,7 +18,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type MPC105 = device_creator; +DEFINE_DEVICE_TYPE(MPC105, mpc105_device, "mpc105", "Motorola MPC105") //************************************************************************** @@ -30,7 +30,7 @@ const device_type MPC105 = device_creator; //------------------------------------------------- mpc105_device::mpc105_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MPC105, "MPC105", tag, owner, clock, "mpc105", __FILE__), + : device_t(mconfig, MPC105, tag, owner, clock), pci_device_interface( mconfig, *this ), m_cpu_tag(nullptr), m_bank_base_default(0), diff --git a/src/devices/bus/lpci/mpc105.h b/src/devices/bus/lpci/mpc105.h index abd71070b57..3b3a726c4b1 100644 --- a/src/devices/bus/lpci/mpc105.h +++ b/src/devices/bus/lpci/mpc105.h @@ -8,8 +8,10 @@ ***************************************************************************/ -#ifndef MPC105_H -#define MPC105_H +#ifndef MAME_BUS_LPCI_MPC105_H +#define MAME_BUS_LPCI_MPC105_H + +#pragma once #include "pci.h" @@ -55,6 +57,6 @@ private: // device type definition -extern const device_type MPC105; +DECLARE_DEVICE_TYPE(MPC105, mpc105_device) -#endif /* MPC105_H */ +#endif // MAME_BUS_LPCI_MPC105_H diff --git a/src/devices/bus/lpci/northbridge.cpp b/src/devices/bus/lpci/northbridge.cpp index 7b69334b688..a2b9314b40a 100644 --- a/src/devices/bus/lpci/northbridge.cpp +++ b/src/devices/bus/lpci/northbridge.cpp @@ -13,8 +13,8 @@ // GLOBAL VARIABLES //************************************************************************** -northbridge_device::northbridge_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), +northbridge_device::northbridge_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock), m_maincpu(*this, ":maincpu"), m_ram(*this, ":" RAM_TAG) { diff --git a/src/devices/bus/lpci/northbridge.h b/src/devices/bus/lpci/northbridge.h index 99bf8ad7922..dd557427f16 100644 --- a/src/devices/bus/lpci/northbridge.h +++ b/src/devices/bus/lpci/northbridge.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Miodrag Milanovic -#pragma once +#ifndef MAME_BUS_LPCI_NORTHBRIDGE_H +#define MAME_BUS_LPCI_NORTHBRIDGE_H -#ifndef __NORTHBRIDGE_H__ -#define __NORTHBRIDGE_H__ +#pragma once #include "machine/ram.h" @@ -14,20 +14,18 @@ // ======================> northbridge_device -class northbridge_device : - public device_t +class northbridge_device : public device_t { -public: - // construction/destruction - northbridge_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); protected: - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; -public: - required_device m_maincpu; - required_device m_ram; + // construction/destruction + northbridge_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + required_device m_maincpu; + required_device m_ram; }; -#endif /* __NORTHBRIDGE_H__ */ +#endif // MAME_BUS_LPCI_NORTHBRIDGE_H diff --git a/src/devices/bus/lpci/pci.cpp b/src/devices/bus/lpci/pci.cpp index 19e3d3ed63c..d6c8aef5bba 100644 --- a/src/devices/bus/lpci/pci.cpp +++ b/src/devices/bus/lpci/pci.cpp @@ -80,7 +80,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type PCI_BUS = device_creator; +DEFINE_DEVICE_TYPE(PCI_BUS, pci_bus_device, "pci_bus", "PCI Bus") //************************************************************************** // LIVE DEVICE @@ -90,8 +90,8 @@ const device_type PCI_BUS = device_creator; // pci_bus_device - constructor //------------------------------------------------- pci_bus_device::pci_bus_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, PCI_BUS, "PCI Bus", tag, owner, clock, "pci_bus", __FILE__), m_busnum(0), - m_father(nullptr), m_address(0), m_devicenum(0), m_busnumber(0), m_busnumaddr(nullptr) + device_t(mconfig, PCI_BUS, tag, owner, clock), m_busnum(0), + m_father(nullptr), m_address(0), m_devicenum(0), m_busnumber(0), m_busnumaddr(nullptr) { for (auto & elem : m_devtag) { elem= nullptr; @@ -262,7 +262,7 @@ void pci_bus_device::device_start() for (int i = 0; i < ARRAY_LENGTH(m_devtag); i++) { sprintf(id, "%d", i); - pci_connector *conn = downcast(subdevice(id)); + pci_connector_device *conn = downcast(subdevice(id)); if (conn!=nullptr) m_device[i] = conn->get_device(); else @@ -311,24 +311,24 @@ pci_device_interface::~pci_device_interface() } -const device_type PCI_CONNECTOR = device_creator; +DEFINE_DEVICE_TYPE(PCI_CONNECTOR, pci_connector_device, "pci_connector", "PCI device connector abstraction") -pci_connector::pci_connector(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, PCI_CONNECTOR, "PCI device connector abstraction", tag, owner, clock, "pci_connector", __FILE__), +pci_connector_device::pci_connector_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, PCI_CONNECTOR, tag, owner, clock), device_slot_interface(mconfig, *this) { } -pci_connector::~pci_connector() +pci_connector_device::~pci_connector_device() { } -void pci_connector::device_start() +void pci_connector_device::device_start() { } -pci_device_interface *pci_connector::get_device() +pci_device_interface *pci_connector_device::get_device() { return dynamic_cast(get_card_device()); } diff --git a/src/devices/bus/lpci/pci.h b/src/devices/bus/lpci/pci.h index 4b2ee41e748..f6c30037597 100644 --- a/src/devices/bus/lpci/pci.h +++ b/src/devices/bus/lpci/pci.h @@ -8,8 +8,10 @@ ***************************************************************************/ -#ifndef PCI_H -#define PCI_H +#ifndef MAME_BUS_LPCI_PCI_H +#define MAME_BUS_LPCI_PCI_H + +#pragma once //************************************************************************** // TYPE DEFINITIONS @@ -22,19 +24,21 @@ class pci_device_interface : public device_slot_card_interface { public: // construction/destruction - pci_device_interface(const machine_config &mconfig, device_t &device); virtual ~pci_device_interface(); virtual uint32_t pci_read(pci_bus_device *pcibus, int function, int offset, uint32_t mem_mask) = 0; virtual void pci_write(pci_bus_device *pcibus, int function, int offset, uint32_t data, uint32_t mem_mask) = 0; + +protected: + pci_device_interface(const machine_config &mconfig, device_t &device); }; -class pci_connector: public device_t, +class pci_connector_device : public device_t, public device_slot_interface { public: - pci_connector(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual ~pci_connector(); + pci_connector_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + virtual ~pci_connector_device(); pci_device_interface *get_device(); @@ -42,7 +46,7 @@ protected: virtual void device_start() override; }; -extern const device_type PCI_CONNECTOR; +DECLARE_DEVICE_TYPE(PCI_CONNECTOR, pci_connector_device) // ======================> pci_bus_device @@ -90,7 +94,7 @@ private: }; // device type definition -extern const device_type PCI_BUS; +DECLARE_DEVICE_TYPE(PCI_BUS, pci_bus_device) /*************************************************************************** @@ -108,4 +112,4 @@ extern const device_type PCI_BUS; downcast(device)->set_father(_father_tag); -#endif /* PCI_H */ +#endif // MAME_BUS_LPCI_PCI_H diff --git a/src/devices/bus/lpci/southbridge.cpp b/src/devices/bus/lpci/southbridge.cpp index 362f5053295..7c9720f4068 100644 --- a/src/devices/bus/lpci/southbridge.cpp +++ b/src/devices/bus/lpci/southbridge.cpp @@ -9,6 +9,9 @@ #include "emu.h" #include "southbridge.h" +#include "bus/isa/com.h" +#include "bus/isa/fdc.h" +#include "bus/isa/lpt.h" #include "bus/pc_kbd/keyboards.h" #include "cpu/i386/i386.h" #include "speaker.h" @@ -129,8 +132,8 @@ machine_config_constructor southbridge_device::device_mconfig_additions() const return MACHINE_CONFIG_NAME( southbridge ); } -southbridge_device::southbridge_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), +southbridge_device::southbridge_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock), m_maincpu(*this, ":maincpu"), m_pic8259_master(*this, "pic8259_master"), m_pic8259_slave(*this, "pic8259_slave"), diff --git a/src/devices/bus/lpci/southbridge.h b/src/devices/bus/lpci/southbridge.h index f5e78c1af9e..f1e8fb7571b 100644 --- a/src/devices/bus/lpci/southbridge.h +++ b/src/devices/bus/lpci/southbridge.h @@ -5,6 +5,7 @@ #pragma once +#include "pci.h" #include "machine/ins8250.h" #include "machine/ds128x.h" @@ -13,15 +14,14 @@ #include "machine/ataintf.h" #include "machine/at_keybc.h" +#include "machine/idectrl.h" #include "imagedev/harddriv.h" -#include "pci.h" #include "sound/spkrdev.h" #include "machine/ram.h" #include "machine/nvram.h" #include "bus/isa/isa.h" -#include "bus/isa/isa_cards.h" #include "machine/pc_lpt.h" #include "bus/pc_kbd/pc_kbdc.h" @@ -38,92 +38,92 @@ class southbridge_device : public device_t { public: - // construction/destruction - southbridge_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; - -protected: - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; -public: + DECLARE_READ8_MEMBER(at_page8_r); + DECLARE_WRITE8_MEMBER(at_page8_w); + DECLARE_READ8_MEMBER(at_portb_r); + DECLARE_WRITE8_MEMBER(at_portb_w); + DECLARE_READ8_MEMBER(get_slave_ack); + DECLARE_WRITE_LINE_MEMBER(at_pit8254_out0_changed); + DECLARE_WRITE_LINE_MEMBER(at_pit8254_out1_changed); + DECLARE_WRITE_LINE_MEMBER(at_pit8254_out2_changed); + DECLARE_WRITE_LINE_MEMBER(pc_dma_hrq_changed); + DECLARE_READ8_MEMBER(pc_dma8237_0_dack_r); + DECLARE_READ8_MEMBER(pc_dma8237_1_dack_r); + DECLARE_READ8_MEMBER(pc_dma8237_2_dack_r); + DECLARE_READ8_MEMBER(pc_dma8237_3_dack_r); + DECLARE_READ8_MEMBER(pc_dma8237_5_dack_r); + DECLARE_READ8_MEMBER(pc_dma8237_6_dack_r); + DECLARE_READ8_MEMBER(pc_dma8237_7_dack_r); + DECLARE_WRITE8_MEMBER(pc_dma8237_0_dack_w); + DECLARE_WRITE8_MEMBER(pc_dma8237_1_dack_w); + DECLARE_WRITE8_MEMBER(pc_dma8237_2_dack_w); + DECLARE_WRITE8_MEMBER(pc_dma8237_3_dack_w); + DECLARE_WRITE8_MEMBER(pc_dma8237_5_dack_w); + DECLARE_WRITE8_MEMBER(pc_dma8237_6_dack_w); + DECLARE_WRITE8_MEMBER(pc_dma8237_7_dack_w); + DECLARE_WRITE_LINE_MEMBER(at_dma8237_out_eop); + DECLARE_WRITE_LINE_MEMBER(pc_dack0_w); + DECLARE_WRITE_LINE_MEMBER(pc_dack1_w); + DECLARE_WRITE_LINE_MEMBER(pc_dack2_w); + DECLARE_WRITE_LINE_MEMBER(pc_dack3_w); + DECLARE_WRITE_LINE_MEMBER(pc_dack4_w); + DECLARE_WRITE_LINE_MEMBER(pc_dack5_w); + DECLARE_WRITE_LINE_MEMBER(pc_dack6_w); + DECLARE_WRITE_LINE_MEMBER(pc_dack7_w); + DECLARE_READ8_MEMBER(ide_read_cs1_r); + DECLARE_WRITE8_MEMBER(ide_write_cs1_w); + DECLARE_READ8_MEMBER(ide2_read_cs1_r); + DECLARE_WRITE8_MEMBER(ide2_write_cs1_w); + DECLARE_READ8_MEMBER(at_dma8237_2_r); + DECLARE_WRITE8_MEMBER(at_dma8237_2_w); + DECLARE_READ8_MEMBER(at_keybc_r); + DECLARE_WRITE8_MEMBER(at_keybc_w); + DECLARE_WRITE8_MEMBER(write_rtc); + DECLARE_READ8_MEMBER(pc_dma_read_byte); + DECLARE_WRITE8_MEMBER(pc_dma_write_byte); + DECLARE_READ8_MEMBER(pc_dma_read_word); + DECLARE_WRITE8_MEMBER(pc_dma_write_word); - required_device m_maincpu; - required_device m_pic8259_master; - required_device m_pic8259_slave; - required_device m_dma8237_1; - required_device m_dma8237_2; - required_device m_pit8254; - required_device m_keybc; - required_device m_isabus; - required_device m_speaker; - required_device m_ds12885; - required_device m_pc_kbdc; - required_device m_ide; - required_device m_ide2; - DECLARE_READ8_MEMBER(at_page8_r); - DECLARE_WRITE8_MEMBER(at_page8_w); - DECLARE_READ8_MEMBER(at_portb_r); - DECLARE_WRITE8_MEMBER(at_portb_w); - DECLARE_READ8_MEMBER(get_slave_ack); - DECLARE_WRITE_LINE_MEMBER(at_pit8254_out0_changed); - DECLARE_WRITE_LINE_MEMBER(at_pit8254_out1_changed); - DECLARE_WRITE_LINE_MEMBER(at_pit8254_out2_changed); - DECLARE_WRITE_LINE_MEMBER(pc_dma_hrq_changed); - DECLARE_READ8_MEMBER(pc_dma8237_0_dack_r); - DECLARE_READ8_MEMBER(pc_dma8237_1_dack_r); - DECLARE_READ8_MEMBER(pc_dma8237_2_dack_r); - DECLARE_READ8_MEMBER(pc_dma8237_3_dack_r); - DECLARE_READ8_MEMBER(pc_dma8237_5_dack_r); - DECLARE_READ8_MEMBER(pc_dma8237_6_dack_r); - DECLARE_READ8_MEMBER(pc_dma8237_7_dack_r); - DECLARE_WRITE8_MEMBER(pc_dma8237_0_dack_w); - DECLARE_WRITE8_MEMBER(pc_dma8237_1_dack_w); - DECLARE_WRITE8_MEMBER(pc_dma8237_2_dack_w); - DECLARE_WRITE8_MEMBER(pc_dma8237_3_dack_w); - DECLARE_WRITE8_MEMBER(pc_dma8237_5_dack_w); - DECLARE_WRITE8_MEMBER(pc_dma8237_6_dack_w); - DECLARE_WRITE8_MEMBER(pc_dma8237_7_dack_w); - DECLARE_WRITE_LINE_MEMBER(at_dma8237_out_eop); - DECLARE_WRITE_LINE_MEMBER(pc_dack0_w); - DECLARE_WRITE_LINE_MEMBER(pc_dack1_w); - DECLARE_WRITE_LINE_MEMBER(pc_dack2_w); - DECLARE_WRITE_LINE_MEMBER(pc_dack3_w); - DECLARE_WRITE_LINE_MEMBER(pc_dack4_w); - DECLARE_WRITE_LINE_MEMBER(pc_dack5_w); - DECLARE_WRITE_LINE_MEMBER(pc_dack6_w); - DECLARE_WRITE_LINE_MEMBER(pc_dack7_w); - DECLARE_READ8_MEMBER(ide_read_cs1_r); - DECLARE_WRITE8_MEMBER(ide_write_cs1_w); - DECLARE_READ8_MEMBER(ide2_read_cs1_r); - DECLARE_WRITE8_MEMBER(ide2_write_cs1_w); - DECLARE_READ8_MEMBER(at_dma8237_2_r); - DECLARE_WRITE8_MEMBER(at_dma8237_2_w); - DECLARE_READ8_MEMBER(at_keybc_r); - DECLARE_WRITE8_MEMBER(at_keybc_w); - DECLARE_WRITE8_MEMBER(write_rtc); - DECLARE_READ8_MEMBER(pc_dma_read_byte); - DECLARE_WRITE8_MEMBER(pc_dma_write_byte); - DECLARE_READ8_MEMBER(pc_dma_read_word); - DECLARE_WRITE8_MEMBER(pc_dma_write_word); protected: - uint8_t m_at_spkrdata; - uint8_t m_pit_out2; - int m_dma_channel; - bool m_cur_eop; - uint8_t m_dma_offset[2][4]; - uint8_t m_at_pages[0x10]; - uint16_t m_dma_high_byte; - uint8_t m_at_speaker; - bool m_refresh; - void at_speaker_set_spkrdata(uint8_t data); - - uint8_t m_channel_check; - uint8_t m_nmi_enabled; - - void pc_select_dma_channel(int channel, bool state); + // construction/destruction + southbridge_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // optional information overrides + virtual machine_config_constructor device_mconfig_additions() const override; + + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + + required_device m_maincpu; + required_device m_pic8259_master; + required_device m_pic8259_slave; + required_device m_dma8237_1; + required_device m_dma8237_2; + required_device m_pit8254; + required_device m_keybc; + required_device m_isabus; + required_device m_speaker; + required_device m_ds12885; + required_device m_pc_kbdc; + required_device m_ide; + required_device m_ide2; + + uint8_t m_at_spkrdata; + uint8_t m_pit_out2; + int m_dma_channel; + bool m_cur_eop; + uint8_t m_dma_offset[2][4]; + uint8_t m_at_pages[0x10]; + uint16_t m_dma_high_byte; + uint8_t m_at_speaker; + bool m_refresh; + void at_speaker_set_spkrdata(uint8_t data); + + uint8_t m_channel_check; + uint8_t m_nmi_enabled; + + void pc_select_dma_channel(int channel, bool state); }; #endif // MAME_BUS_LPCI_SOUTHBRIDGE_H diff --git a/src/devices/bus/lpci/vt82c505.cpp b/src/devices/bus/lpci/vt82c505.cpp index d6e2ea56302..a7bad9cc0a2 100644 --- a/src/devices/bus/lpci/vt82c505.cpp +++ b/src/devices/bus/lpci/vt82c505.cpp @@ -14,12 +14,12 @@ IMPLEMENTATION ***************************************************************************/ -const device_type VT82C505 = device_creator; +DEFINE_DEVICE_TYPE(VT82C505, vt82c505_device, "vt82c505_device", "VIA VT82C505 PCI bridge") vt82c505_device::vt82c505_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, VT82C505, "VIA VT82C505 PCI bridge", tag, owner, clock, "vt82c505", __FILE__), - pci_device_interface( mconfig, *this ) + : device_t(mconfig, VT82C505, tag, owner, clock) + , pci_device_interface(mconfig, *this) { } diff --git a/src/devices/bus/lpci/vt82c505.h b/src/devices/bus/lpci/vt82c505.h index 7bd37b568b5..bbe790781d2 100644 --- a/src/devices/bus/lpci/vt82c505.h +++ b/src/devices/bus/lpci/vt82c505.h @@ -6,13 +6,12 @@ */ -#ifndef __VT82C505_H__ -#define __VT82C505_H__ +#ifndef MAME_BUS_LPCI_VT82C505_H +#define MAME_BUS_LPCI_VT82C505_H #include "pci.h" -class vt82c505_device : public device_t, - public pci_device_interface +class vt82c505_device : public device_t, public pci_device_interface { public: // construction/destruction @@ -32,7 +31,6 @@ private: }; // device type definition -extern const device_type VT82C505; +DECLARE_DEVICE_TYPE(VT82C505, vt82c505_device) - -#endif /* __VT82C505_H__ */ +#endif // MAME_BUS_LPCI_VT82C505_H diff --git a/src/devices/bus/m5/rom.cpp b/src/devices/bus/m5/rom.cpp index 7ca9a2400d1..5bb1ee371cc 100644 --- a/src/devices/bus/m5/rom.cpp +++ b/src/devices/bus/m5/rom.cpp @@ -17,25 +17,24 @@ // m5_rom_device - constructor //------------------------------------------------- -const device_type M5_ROM_STD = device_creator; -const device_type M5_ROM_RAM = device_creator; +DEFINE_DEVICE_TYPE(M5_ROM_STD, m5_rom_device, "m5_rom", "M5 Standard ROM Carts") +DEFINE_DEVICE_TYPE(M5_ROM_RAM, m5_ram_device, "m5_ram", "M5 Expansion memory cart") -m5_rom_device::m5_rom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_m5_cart_interface( mconfig, *this ) +m5_rom_device::m5_rom_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) + , device_m5_cart_interface(mconfig, *this) { } m5_rom_device::m5_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, M5_ROM_STD, "M5 Standard ROM Carts", tag, owner, clock, "m5_rom", __FILE__), - device_m5_cart_interface( mconfig, *this ) + : m5_rom_device(mconfig, M5_ROM_STD, tag, owner, clock) { } m5_ram_device::m5_ram_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : m5_rom_device(mconfig, M5_ROM_RAM, "M5 Expansion memory cart", tag, owner, clock, "m5_ram", __FILE__) + : m5_rom_device(mconfig, M5_ROM_RAM, tag, owner, clock) { } diff --git a/src/devices/bus/m5/rom.h b/src/devices/bus/m5/rom.h index bfa40ee08ed..6050920c153 100644 --- a/src/devices/bus/m5/rom.h +++ b/src/devices/bus/m5/rom.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __M5_ROM_H -#define __M5_ROM_H +#ifndef MAME_BUS_M5_ROM_H +#define MAME_BUS_M5_ROM_H + +#pragma once #include "slot.h" @@ -13,7 +15,6 @@ class m5_rom_device : public device_t, { public: // construction/destruction - m5_rom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); m5_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // device-level overrides @@ -22,6 +23,9 @@ public: // reading and writing virtual DECLARE_READ8_MEMBER(read_rom) override; + +protected: + m5_rom_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); }; // ======================> m5_ram_device @@ -32,19 +36,20 @@ public: // construction/destruction m5_ram_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override {} - virtual void device_reset() override {} - // reading and writing virtual DECLARE_READ8_MEMBER(read_ram) override; virtual DECLARE_WRITE8_MEMBER(write_ram) override; + +protected: + // device-level overrides + virtual void device_start() override { } + virtual void device_reset() override { } }; // device type definition -extern const device_type M5_ROM_STD; -extern const device_type M5_ROM_RAM; +DECLARE_DEVICE_TYPE(M5_ROM_STD, m5_rom_device) +DECLARE_DEVICE_TYPE(M5_ROM_RAM, m5_ram_device) -#endif +#endif // MAME_BUS_M5_ROM_H diff --git a/src/devices/bus/m5/slot.cpp b/src/devices/bus/m5/slot.cpp index 71f9fd2c608..cdfb88466e1 100644 --- a/src/devices/bus/m5/slot.cpp +++ b/src/devices/bus/m5/slot.cpp @@ -15,7 +15,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type M5_CART_SLOT = device_creator; +DEFINE_DEVICE_TYPE(M5_CART_SLOT, m5_cart_slot_device, "m5_cart_slot", "M5 Cartridge Slot") //************************************************************************** // M5 Cartridges Interface @@ -73,10 +73,10 @@ void device_m5_cart_interface::ram_alloc(uint32_t size) // m5_cart_slot_device - constructor //------------------------------------------------- m5_cart_slot_device::m5_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, M5_CART_SLOT, "M5 Cartridge Slot", tag, owner, clock, "m5_cart_slot", __FILE__), - device_image_interface(mconfig, *this), - device_slot_interface(mconfig, *this), - m_type(M5_STD), m_cart(nullptr) + device_t(mconfig, M5_CART_SLOT, tag, owner, clock), + device_image_interface(mconfig, *this), + device_slot_interface(mconfig, *this), + m_type(M5_STD), m_cart(nullptr) { } diff --git a/src/devices/bus/m5/slot.h b/src/devices/bus/m5/slot.h index 80735c62154..48cb4d15124 100644 --- a/src/devices/bus/m5/slot.h +++ b/src/devices/bus/m5/slot.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __M5_SLOT_H -#define __M5_SLOT_H +#ifndef MAME_BUS_M5_SLOT_H +#define MAME_BUS_M5_SLOT_H + +#pragma once #include "softlist_dev.h" @@ -30,7 +32,6 @@ class device_m5_cart_interface : public device_slot_card_interface { public: // construction/destruction - device_m5_cart_interface(const machine_config &mconfig, device_t &device); virtual ~device_m5_cart_interface(); // reading and writing @@ -48,6 +49,8 @@ public: void save_ram() { device().save_item(NAME(m_ram)); } protected: + device_m5_cart_interface(const machine_config &mconfig, device_t &device); + // internal state uint8_t *m_rom; uint32_t m_rom_size; @@ -104,7 +107,7 @@ protected: // device type definition -extern const device_type M5_CART_SLOT; +DECLARE_DEVICE_TYPE(M5_CART_SLOT, m5_cart_slot_device) /*************************************************************************** @@ -116,4 +119,6 @@ extern const device_type M5_CART_SLOT; #define MCFG_M5_CARTRIDGE_ADD(_tag,_slot_intf,_def_slot) \ MCFG_DEVICE_ADD(_tag, M5_CART_SLOT, 0) \ MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, false) -#endif + + +#endif // MAME_BUS_M5_SLOT_H diff --git a/src/devices/bus/macpds/macpds.cpp b/src/devices/bus/macpds/macpds.cpp index b28f864bb80..36f6cf90219 100644 --- a/src/devices/bus/macpds/macpds.cpp +++ b/src/devices/bus/macpds/macpds.cpp @@ -16,7 +16,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type MACPDS_SLOT = device_creator; +DEFINE_DEVICE_TYPE(MACPDS_SLOT, macpds_slot_device, "macpds_slot", "Mac 68000 Processor-Direct Slot") //************************************************************************** // LIVE DEVICE @@ -26,16 +26,15 @@ const device_type MACPDS_SLOT = device_creator; // macpds_slot_device - constructor //------------------------------------------------- macpds_slot_device::macpds_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, MACPDS_SLOT, "Mac 68000 Processor-Direct Slot", tag, owner, clock, "macpds_slot", __FILE__), - device_slot_interface(mconfig, *this), - m_macpds_tag(nullptr), - m_macpds_slottag(nullptr) + macpds_slot_device(mconfig, MACPDS_SLOT, tag, owner, clock) { } -macpds_slot_device::macpds_slot_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_slot_interface(mconfig, *this), m_macpds_tag(nullptr), m_macpds_slottag(nullptr) +macpds_slot_device::macpds_slot_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), + device_slot_interface(mconfig, *this), + m_macpds_tag(nullptr), + m_macpds_slottag(nullptr) { } @@ -61,7 +60,7 @@ void macpds_slot_device::device_start() // GLOBAL VARIABLES //************************************************************************** -const device_type MACPDS = device_creator; +DEFINE_DEVICE_TYPE(MACPDS, macpds_device, "macpds", "Mac 68000 Processor-Direct Bus") void macpds_device::static_set_cputag(device_t &device, const char *tag) { @@ -78,12 +77,14 @@ void macpds_device::static_set_cputag(device_t &device, const char *tag) //------------------------------------------------- macpds_device::macpds_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, MACPDS, "MACPDS", tag, owner, clock, "macpds", __FILE__), m_maincpu(nullptr), m_cputag(nullptr) + macpds_device(mconfig, MACPDS, tag, owner, clock) { } -macpds_device::macpds_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), m_maincpu(nullptr), m_cputag(nullptr) +macpds_device::macpds_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), + m_maincpu(nullptr), + m_cputag(nullptr) { } //------------------------------------------------- diff --git a/src/devices/bus/macpds/macpds.h b/src/devices/bus/macpds/macpds.h index 848d5d726f5..fdd62404fac 100644 --- a/src/devices/bus/macpds/macpds.h +++ b/src/devices/bus/macpds/macpds.h @@ -8,10 +8,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_BUS_MACPDS_MACPDS_H +#define MAME_BUS_MACPDS_MACPDS_H -#ifndef __MACPDS_H__ -#define __MACPDS_H__ +#pragma once @@ -51,20 +51,22 @@ class macpds_slot_device : public device_t, public: // construction/destruction macpds_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - macpds_slot_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - - // device-level overrides - virtual void device_start() override; // inline configuration static void static_set_macpds_slot(device_t &device, const char *tag, const char *slottag); + protected: + macpds_slot_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual void device_start() override; + // configuration const char *m_macpds_tag, *m_macpds_slottag; }; // device type definition -extern const device_type MACPDS_SLOT; +DECLARE_DEVICE_TYPE(MACPDS_SLOT, macpds_slot_device) class device_macpds_card_interface; @@ -75,7 +77,6 @@ class macpds_device : public device_t public: // construction/destruction macpds_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - macpds_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); ~macpds_device() { m_device_list.detach_all(); } // inline configuration static void static_set_cputag(device_t &device, const char *tag); @@ -87,6 +88,8 @@ public: void set_irq_line(int line, int state); protected: + macpds_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -100,7 +103,7 @@ protected: // device type definition -extern const device_type MACPDS; +DECLARE_DEVICE_TYPE(MACPDS, macpds_device) // ======================> device_macpds_card_interface @@ -108,9 +111,9 @@ extern const device_type MACPDS; class device_macpds_card_interface : public device_slot_card_interface { friend class macpds_device; + template friend class simple_list; public: // construction/destruction - device_macpds_card_interface(const machine_config &mconfig, device_t &device); virtual ~device_macpds_card_interface(); device_macpds_card_interface *next() const { return m_next; } @@ -123,10 +126,15 @@ public: // inline configuration static void static_set_macpds_tag(device_t &device, const char *tag, const char *slottag); -public: + +protected: + device_macpds_card_interface(const machine_config &mconfig, device_t &device); + macpds_device *m_macpds; const char *m_macpds_tag, *m_macpds_slottag; + +private: device_macpds_card_interface *m_next; }; -#endif /* __MACPDS_H__ */ +#endif // MAME_BUS_MACPDS_MACPDS_H diff --git a/src/devices/bus/macpds/pds_tpdfpd.cpp b/src/devices/bus/macpds/pds_tpdfpd.cpp index 6b3260f74f5..a148c57e639 100644 --- a/src/devices/bus/macpds/pds_tpdfpd.cpp +++ b/src/devices/bus/macpds/pds_tpdfpd.cpp @@ -59,7 +59,7 @@ ROM_END // GLOBAL VARIABLES //************************************************************************** -const device_type PDS_SEDISPLAY = device_creator; +DEFINE_DEVICE_TYPE(PDS_SEDISPLAY, macpds_sedisplay_device, "pds_sefp", "Radius SE Full Page Display") //------------------------------------------------- @@ -90,20 +90,17 @@ const tiny_rom_entry *macpds_sedisplay_device::device_rom_region() const //------------------------------------------------- macpds_sedisplay_device::macpds_sedisplay_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, PDS_SEDISPLAY, "Radius SE Full Page Display", tag, owner, clock, "pds_sefp", __FILE__), - device_video_interface(mconfig, *this), - device_macpds_card_interface(mconfig, *this), m_vram(nullptr), m_vbl_disable(0), m_count(0), m_clutoffs(0), m_timer(nullptr) + macpds_sedisplay_device(mconfig, PDS_SEDISPLAY, tag, owner, clock) { - m_assembled_tag = std::string(tag).append(":").append(SEDISPLAY_SCREEN_NAME); - m_screen_tag = m_assembled_tag.c_str(); } -macpds_sedisplay_device::macpds_sedisplay_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_video_interface(mconfig, *this), - device_macpds_card_interface(mconfig, *this), m_vram(nullptr), m_vbl_disable(0), m_count(0), m_clutoffs(0), m_timer(nullptr) +macpds_sedisplay_device::macpds_sedisplay_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), + device_video_interface(mconfig, *this), + device_macpds_card_interface(mconfig, *this), + m_vram(nullptr), m_vbl_disable(0), m_count(0), m_clutoffs(0), m_timer(nullptr), + m_assembled_tag(util::string_format("%s:%s", tag, SEDISPLAY_SCREEN_NAME)) { - m_assembled_tag = std::string(tag).append(":").append(SEDISPLAY_SCREEN_NAME); m_screen_tag = m_assembled_tag.c_str(); } diff --git a/src/devices/bus/macpds/pds_tpdfpd.h b/src/devices/bus/macpds/pds_tpdfpd.h index 0082df18349..b0111bcef8e 100644 --- a/src/devices/bus/macpds/pds_tpdfpd.h +++ b/src/devices/bus/macpds/pds_tpdfpd.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:R. Belmont -#pragma once +#ifndef MAME_BUS_PDS_TPDFPD_H +#define MAME_BUS_PDS_TPDFPD_H -#ifndef __PDS_SEDISPLAY_H__ -#define __PDS_SEDISPLAY_H__ +#pragma once #include "macpds.h" @@ -19,36 +19,37 @@ class macpds_sedisplay_device : public device_macpds_card_interface { public: - // construction/destruction - macpds_sedisplay_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - macpds_sedisplay_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; - virtual const tiny_rom_entry *device_rom_region() const override; + // construction/destruction + macpds_sedisplay_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); -protected: - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + // optional information overrides + virtual machine_config_constructor device_mconfig_additions() const override; + virtual const tiny_rom_entry *device_rom_region() const override; - DECLARE_READ16_MEMBER(sedisplay_r); - DECLARE_WRITE16_MEMBER(sedisplay_w); - DECLARE_READ16_MEMBER(ramdac_r); - DECLARE_WRITE16_MEMBER(ramdac_w); + uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); -public: - std::unique_ptr m_vram; - uint32_t m_vbl_disable; - uint32_t m_palette[256], m_colors[3], m_count, m_clutoffs; - emu_timer *m_timer; - std::string m_assembled_tag; +protected: + macpds_sedisplay_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + + DECLARE_READ16_MEMBER(sedisplay_r); + DECLARE_WRITE16_MEMBER(sedisplay_w); + DECLARE_READ16_MEMBER(ramdac_r); + DECLARE_WRITE16_MEMBER(ramdac_w); + + std::unique_ptr m_vram; + uint32_t m_vbl_disable; + uint32_t m_palette[256], m_colors[3], m_count, m_clutoffs; + emu_timer *m_timer; + const std::string m_assembled_tag; }; // device type definition -extern const device_type PDS_SEDISPLAY; +DECLARE_DEVICE_TYPE(PDS_SEDISPLAY, macpds_sedisplay_device) -#endif /* __MACPDS_SEDISPLAY_H__ */ +#endif // MAME_BUS_PDS_TPDFPD_H diff --git a/src/devices/bus/megadrive/eeprom.cpp b/src/devices/bus/megadrive/eeprom.cpp index 128de4da279..96b9f0bb335 100644 --- a/src/devices/bus/megadrive/eeprom.cpp +++ b/src/devices/bus/megadrive/eeprom.cpp @@ -51,56 +51,54 @@ // md_rom_device - constructor //------------------------------------------------- -const device_type MD_STD_EEPROM = device_creator; -const device_type MD_EEPROM_NBAJAM = device_creator; -const device_type MD_EEPROM_NBAJAMTE = device_creator; -const device_type MD_EEPROM_NFLQB = device_creator; -const device_type MD_EEPROM_CSLAM = device_creator; -const device_type MD_EEPROM_NHLPA = device_creator; -const device_type MD_EEPROM_BLARA = device_creator; - - -md_std_eeprom_device::md_std_eeprom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_md_cart_interface( mconfig, *this ), - m_i2cmem(*this, "i2cmem"), m_i2c_mem(0), m_i2c_clk(0) - { +DEFINE_DEVICE_TYPE(MD_STD_EEPROM, md_std_eeprom_device, "md_std_eeprom", "MD Standard cart + EEPROM") +DEFINE_DEVICE_TYPE(MD_EEPROM_NBAJAM, md_eeprom_nbajam_device, "md_eeprom_nbajam", "MD NBA Jam") +DEFINE_DEVICE_TYPE(MD_EEPROM_NBAJAMTE, md_eeprom_nbajamte_device, "md_eeprom_nbajamte", "MD NBA Jam TE") // and a few more +DEFINE_DEVICE_TYPE(MD_EEPROM_NFLQB, md_eeprom_nflqb_device, "md_eeprom_nflqb", "MD NFL Quarterback 96") +DEFINE_DEVICE_TYPE(MD_EEPROM_CSLAM, md_eeprom_cslam_device, "md_eeprom_cslam", "MD College Slam") +DEFINE_DEVICE_TYPE(MD_EEPROM_NHLPA, md_eeprom_nhlpa_device, "md_eeprom_nhlpa", "MD NHLPA 93") +DEFINE_DEVICE_TYPE(MD_EEPROM_BLARA, md_eeprom_blara_device, "md_eeprom_blara", "MD Brian Lara") + + +md_std_eeprom_device::md_std_eeprom_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) + , device_md_cart_interface(mconfig, *this) + , m_i2cmem(*this, "i2cmem"), m_i2c_mem(0), m_i2c_clk(0) +{ } md_std_eeprom_device::md_std_eeprom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MD_STD_EEPROM, "MD Standard cart + EEPROM", tag, owner, clock, "md_std_eeprom", __FILE__), - device_md_cart_interface( mconfig, *this ), - m_i2cmem(*this, "i2cmem"), m_i2c_mem(0), m_i2c_clk(0) - { + : md_std_eeprom_device(mconfig, MD_STD_EEPROM, tag, owner, clock) +{ } md_eeprom_nbajam_device::md_eeprom_nbajam_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : md_std_eeprom_device(mconfig, MD_EEPROM_NBAJAM, "MD NBA Jam", tag, owner, clock, "md_eeprom_nbajam", __FILE__) + : md_std_eeprom_device(mconfig, MD_EEPROM_NBAJAM, tag, owner, clock) { } md_eeprom_nbajamte_device::md_eeprom_nbajamte_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : md_std_eeprom_device(mconfig, MD_EEPROM_NBAJAMTE, "MD NBA Jam TE (and a few more)", tag, owner, clock, "md_eeprom_nbajamte", __FILE__) + : md_std_eeprom_device(mconfig, MD_EEPROM_NBAJAMTE, tag, owner, clock) { } -md_eeprom_cslam_device::md_eeprom_cslam_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : md_std_eeprom_device(mconfig, MD_EEPROM_CSLAM, "MD College Slam", tag, owner, clock, "md_eeprom_cslam", __FILE__) +md_eeprom_nflqb_device::md_eeprom_nflqb_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : md_std_eeprom_device(mconfig, MD_EEPROM_NFLQB, tag, owner, clock) { } -md_eeprom_nflqb_device::md_eeprom_nflqb_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : md_std_eeprom_device(mconfig, MD_EEPROM_NFLQB, "MD NFL Quarterback 96", tag, owner, clock, "md_eeprom_nflqb", __FILE__) +md_eeprom_cslam_device::md_eeprom_cslam_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : md_std_eeprom_device(mconfig, MD_EEPROM_CSLAM, tag, owner, clock) { } md_eeprom_nhlpa_device::md_eeprom_nhlpa_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : md_std_eeprom_device(mconfig, MD_EEPROM_NHLPA, "MD NHLPA 93", tag, owner, clock, "md_eeprom_nhlpa", __FILE__) + : md_std_eeprom_device(mconfig, MD_EEPROM_NHLPA, tag, owner, clock) { } md_eeprom_blara_device::md_eeprom_blara_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : md_std_eeprom_device(mconfig, MD_EEPROM_BLARA, "MD Brian Lara", tag, owner, clock, "md_eeprom_blara", __FILE__) + : md_std_eeprom_device(mconfig, MD_EEPROM_BLARA, tag, owner, clock) { } @@ -378,20 +376,20 @@ WRITE16_MEMBER(md_eeprom_blara_device::write) // TEMPORARY ADDITION UNTIL WE FIND OUT WHAT IS MISSING IN THE CORE X24C02 CODE // THIS IS A CUSTOM I2C EEPROM EMULATION THAT ALLOWS NBA JAM TO WORK -const device_type MD_EEPROM_NBAJAM_ALT = device_creator; +DEFINE_DEVICE_TYPE(MD_EEPROM_NBAJAM_ALT, md_eeprom_nbajam_alt_device, "md_eeprom_nbajama", "MD NBA Jam (Alt)") -md_eeprom_nbajam_device_alt::md_eeprom_nbajam_device_alt(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : md_std_eeprom_device(mconfig, MD_EEPROM_NBAJAM_ALT, "MD NBA Jam (Alt)", tag, owner, clock, "md_eeprom_nbajama", __FILE__) +md_eeprom_nbajam_alt_device::md_eeprom_nbajam_alt_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : md_std_eeprom_device(mconfig, MD_EEPROM_NBAJAM_ALT, tag, owner, clock) { } -void md_eeprom_nbajam_device_alt::device_start() +void md_eeprom_nbajam_alt_device::device_start() { eeprom_i2c_init(); } -void md_eeprom_nbajam_device_alt::eeprom_i2c_init() +void md_eeprom_nbajam_alt_device::eeprom_i2c_init() { m_eeprom_cnt = 0; m_eeprom_readwrite = 0; @@ -410,7 +408,7 @@ void md_eeprom_nbajam_device_alt::eeprom_i2c_init() // this is analogous to i2cmem.cpp implementation of write_sda -void md_eeprom_nbajam_device_alt::idle_devsel_check() +void md_eeprom_nbajam_alt_device::idle_devsel_check() { if (m_eeprom_scl) { @@ -431,7 +429,7 @@ void md_eeprom_nbajam_device_alt::idle_devsel_check() } } -void md_eeprom_nbajam_device_alt::eeprom_i2c_update(void) +void md_eeprom_nbajam_alt_device::eeprom_i2c_update(void) { switch (m_eeprom_cur_state) { @@ -574,7 +572,7 @@ void md_eeprom_nbajam_device_alt::eeprom_i2c_update(void) //printf("Write line : status %d SDA %x SCL %x (count %d)\n", m_eeprom_cur_state, m_eeprom_sda, m_eeprom_scl, m_eeprom_cnt); } -uint8_t md_eeprom_nbajam_device_alt::eeprom_i2c_out() +uint8_t md_eeprom_nbajam_alt_device::eeprom_i2c_out() { uint8_t res = m_eeprom_sda; @@ -614,7 +612,7 @@ uint8_t md_eeprom_nbajam_device_alt::eeprom_i2c_out() } -READ16_MEMBER(md_eeprom_nbajam_device_alt::read) +READ16_MEMBER(md_eeprom_nbajam_alt_device::read) { if (offset == 0x200000/2) { @@ -626,7 +624,7 @@ READ16_MEMBER(md_eeprom_nbajam_device_alt::read) return 0xffff; } -WRITE16_MEMBER(md_eeprom_nbajam_device_alt::write) +WRITE16_MEMBER(md_eeprom_nbajam_alt_device::write) { if (offset == 0x200000/2) { diff --git a/src/devices/bus/megadrive/eeprom.h b/src/devices/bus/megadrive/eeprom.h index a99766a8681..aaa4f196fe2 100644 --- a/src/devices/bus/megadrive/eeprom.h +++ b/src/devices/bus/megadrive/eeprom.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __MD_EEPROM_H -#define __MD_EEPROM_H +#ifndef MAME_BUS_MEGADRIVE_EEPROM_H +#define MAME_BUS_MEGADRIVE_EEPROM_H + +#pragma once #include "md_slot.h" #include "machine/i2cmem.h" @@ -18,7 +20,6 @@ class md_std_eeprom_device : public device_t, { public: // construction/destruction - md_std_eeprom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); md_std_eeprom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // device-level overrides @@ -30,6 +31,9 @@ public: virtual DECLARE_READ16_MEMBER(read) override; virtual DECLARE_WRITE16_MEMBER(write) override; +protected: + md_std_eeprom_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + required_device m_i2cmem; uint8_t m_i2c_mem, m_i2c_clk; }; @@ -132,13 +136,13 @@ public: // device type definition -extern const device_type MD_STD_EEPROM; -extern const device_type MD_EEPROM_NBAJAM; -extern const device_type MD_EEPROM_NBAJAMTE; -extern const device_type MD_EEPROM_CSLAM; -extern const device_type MD_EEPROM_NFLQB; -extern const device_type MD_EEPROM_NHLPA; -extern const device_type MD_EEPROM_BLARA; +DECLARE_DEVICE_TYPE(MD_STD_EEPROM, md_std_eeprom_device) +DECLARE_DEVICE_TYPE(MD_EEPROM_NBAJAM, md_eeprom_nbajam_device) +DECLARE_DEVICE_TYPE(MD_EEPROM_NBAJAMTE, md_eeprom_nbajamte_device) +DECLARE_DEVICE_TYPE(MD_EEPROM_CSLAM, md_eeprom_cslam_device) +DECLARE_DEVICE_TYPE(MD_EEPROM_NFLQB, md_eeprom_nflqb_device) +DECLARE_DEVICE_TYPE(MD_EEPROM_NHLPA, md_eeprom_nhlpa_device) +DECLARE_DEVICE_TYPE(MD_EEPROM_BLARA, md_eeprom_blara_device) @@ -155,30 +159,30 @@ enum STATE_I2C_READ_DATA }; -// ======================> md_eeprom_nbajam_device_alt +// ======================> md_eeprom_nbajam_alt_device -class md_eeprom_nbajam_device_alt : public md_std_eeprom_device +class md_eeprom_nbajam_alt_device : public md_std_eeprom_device { public: // construction/destruction - md_eeprom_nbajam_device_alt(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - - // device-level overrides -// virtual machine_config_constructor device_mconfig_additions() const override; - virtual void device_start() override; + md_eeprom_nbajam_alt_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // reading and writing virtual DECLARE_READ16_MEMBER(read) override; virtual DECLARE_WRITE16_MEMBER(write) override; - std::vector m_sram; +protected: + // device-level overrides + virtual void device_start() override; +private: void eeprom_i2c_init(); void idle_devsel_check(); void eeprom_i2c_update(); uint8_t eeprom_i2c_out(); -private: + std::vector m_sram; + // EEPROM runtime vars uint8_t m_eeprom_sda; // current SDA uint8_t m_eeprom_prev_sda; // previous SDA @@ -197,8 +201,7 @@ private: }; -extern const device_type MD_EEPROM_NBAJAM_ALT; - +DECLARE_DEVICE_TYPE(MD_EEPROM_NBAJAM_ALT, md_eeprom_nbajam_alt_device) -#endif +#endif // MAME_BUS_MEGADRIVE_EEPROM_H diff --git a/src/devices/bus/megadrive/ggenie.cpp b/src/devices/bus/megadrive/ggenie.cpp index 0fa81aa1022..a809e0a948d 100644 --- a/src/devices/bus/megadrive/ggenie.cpp +++ b/src/devices/bus/megadrive/ggenie.cpp @@ -29,14 +29,15 @@ // md_rom_device - constructor //------------------------------------------------- -const device_type MD_ROM_GAMEGENIE = device_creator; +DEFINE_DEVICE_TYPE(MD_ROM_GAMEGENIE, md_rom_ggenie_device, "md_ggenie", "MD Game Genie") md_rom_ggenie_device::md_rom_ggenie_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MD_ROM_GAMEGENIE, "MD Game Genie", tag, owner, clock, "md_ggenie", __FILE__), - device_md_cart_interface( mconfig, *this ), - m_exp(*this, "subslot"), m_gg_bypass(0), m_reg_enable(0) - { + : device_t(mconfig, MD_ROM_GAMEGENIE, tag, owner, clock) + , device_md_cart_interface(mconfig, *this) + , m_exp(*this, "subslot") + , m_gg_bypass(0), m_reg_enable(0) +{ } diff --git a/src/devices/bus/megadrive/ggenie.h b/src/devices/bus/megadrive/ggenie.h index 5970ca1d172..49cf1784f64 100644 --- a/src/devices/bus/megadrive/ggenie.h +++ b/src/devices/bus/megadrive/ggenie.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __MD_GGENIE_H -#define __MD_GGENIE_H +#ifndef MAME_BUS_MEGADRIVE_GGENIE_H +#define MAME_BUS_MEGADRIVE_GGENIE_H + +#pragma once #include "md_slot.h" @@ -16,14 +18,16 @@ public: md_rom_ggenie_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; virtual machine_config_constructor device_mconfig_additions() const override; // reading and writing virtual DECLARE_READ16_MEMBER(read) override; virtual DECLARE_WRITE16_MEMBER(write) override; +protected: + virtual void device_start() override; + virtual void device_reset() override; + private: required_device m_exp; uint16_t m_gg_regs[0x20]; @@ -35,6 +39,6 @@ private: // device type definition -extern const device_type MD_ROM_GAMEGENIE; +DECLARE_DEVICE_TYPE(MD_ROM_GAMEGENIE, md_rom_ggenie_device) -#endif +#endif // MAME_BUS_MEGADRIVE_GGENIE_H diff --git a/src/devices/bus/megadrive/jcart.cpp b/src/devices/bus/megadrive/jcart.cpp index 06ed2720eff..d432e8f135b 100644 --- a/src/devices/bus/megadrive/jcart.cpp +++ b/src/devices/bus/megadrive/jcart.cpp @@ -35,43 +35,39 @@ // md_rom_device - constructor //------------------------------------------------- -const device_type MD_JCART = device_creator; -const device_type MD_SEPROM_CODEMAST = device_creator; -const device_type MD_SEPROM_MM96 = device_creator; +DEFINE_DEVICE_TYPE(MD_JCART, md_jcart_device, "md_jcart", "MD J-Cart games") +DEFINE_DEVICE_TYPE(MD_SEPROM_CODEMAST, md_seprom_codemast_device, "md_seprom_codemast", "MD J-Cart games + SEPROM") +DEFINE_DEVICE_TYPE(MD_SEPROM_MM96, md_seprom_mm96_device, "md_seprom_mm96", "MD Micro Machine 96") // Sampras, Super Skidmarks? -md_jcart_device::md_jcart_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_md_cart_interface( mconfig, *this ), - m_jcart3(*this, "JCART3"), - m_jcart4(*this, "JCART4") +md_jcart_device::md_jcart_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) + , device_md_cart_interface(mconfig, *this) + , m_jcart3(*this, "JCART3") + , m_jcart4(*this, "JCART4") { } md_jcart_device::md_jcart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MD_JCART, "MD J-Cart games", tag, owner, clock, "md_jcart", __FILE__), - device_md_cart_interface( mconfig, *this ), - m_jcart3(*this, "JCART3"), - m_jcart4(*this, "JCART4") + : md_jcart_device(mconfig, MD_JCART, tag, owner, clock) { } // Micro Machines 2, Micro Machines Military -md_seprom_codemast_device::md_seprom_codemast_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : md_jcart_device(mconfig, type, name, tag, owner, clock, shortname, source), - m_i2cmem(*this, "i2cmem"), m_i2c_mem(0), m_i2c_clk(0) - { +md_seprom_codemast_device::md_seprom_codemast_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : md_jcart_device(mconfig, type, tag, owner, clock) + , m_i2cmem(*this, "i2cmem"), m_i2c_mem(0), m_i2c_clk(0) +{ } md_seprom_codemast_device::md_seprom_codemast_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : md_jcart_device(mconfig, MD_SEPROM_CODEMAST, "MD J-Cart games + SEPROM", tag, owner, clock, "md_seprom_codemast", __FILE__), - m_i2cmem(*this, "i2cmem"), m_i2c_mem(0), m_i2c_clk(0) - { + : md_seprom_codemast_device(mconfig, MD_SEPROM_CODEMAST, tag, owner, clock) +{ } // Micro Machines 96 md_seprom_mm96_device::md_seprom_mm96_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : md_seprom_codemast_device(mconfig, MD_SEPROM_MM96, "MD Micro Machine 96", tag, owner, clock, "md_seprom_mm96", __FILE__) + : md_seprom_codemast_device(mconfig, MD_SEPROM_MM96, tag, owner, clock) { } diff --git a/src/devices/bus/megadrive/jcart.h b/src/devices/bus/megadrive/jcart.h index 3d2a6c10bd7..1962930d23a 100644 --- a/src/devices/bus/megadrive/jcart.h +++ b/src/devices/bus/megadrive/jcart.h @@ -1,7 +1,7 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __MD_JCART_H -#define __MD_JCART_H +#ifndef MAME_BUS_NEGADRIVE_JCART_H +#define MAME_BUS_NEGADRIVE_JCART_H #include "md_slot.h" #include "machine/i2cmem.h" @@ -18,18 +18,21 @@ class md_jcart_device : public device_t, { public: // construction/destruction - md_jcart_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); md_jcart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; virtual ioport_constructor device_input_ports() const override; // reading and writing virtual DECLARE_READ16_MEMBER(read) override; virtual DECLARE_WRITE16_MEMBER(write) override; +protected: + md_jcart_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + virtual void device_start() override; + virtual void device_reset() override; + required_ioport m_jcart3; required_ioport m_jcart4; @@ -43,18 +46,21 @@ class md_seprom_codemast_device : public md_jcart_device { public: // construction/destruction - md_seprom_codemast_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); md_seprom_codemast_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; virtual machine_config_constructor device_mconfig_additions() const override; // reading and writing virtual DECLARE_READ16_MEMBER(read) override; virtual DECLARE_WRITE16_MEMBER(write) override; +protected: + md_seprom_codemast_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + virtual void device_start() override; + virtual void device_reset() override; + required_device m_i2cmem; private: @@ -75,10 +81,9 @@ public: }; - // device type definition -extern const device_type MD_JCART; -extern const device_type MD_SEPROM_CODEMAST; -extern const device_type MD_SEPROM_MM96; +DECLARE_DEVICE_TYPE(MD_JCART, md_jcart_device) +DECLARE_DEVICE_TYPE(MD_SEPROM_CODEMAST, md_seprom_codemast_device) +DECLARE_DEVICE_TYPE(MD_SEPROM_MM96, md_seprom_mm96_device) -#endif +#endif // MAME_BUS_NEGADRIVE_JCART_H diff --git a/src/devices/bus/megadrive/md_carts.cpp b/src/devices/bus/megadrive/md_carts.cpp index 8c1d5080e1d..30fff82a81e 100644 --- a/src/devices/bus/megadrive/md_carts.cpp +++ b/src/devices/bus/megadrive/md_carts.cpp @@ -9,6 +9,15 @@ #include "emu.h" #include "md_carts.h" +#include "rom.h" +#include "svp.h" +#include "sk.h" +#include "ggenie.h" +#include "eeprom.h" +#include "jcart.h" +#include "stm95.h" + + SLOT_INTERFACE_START(md_cart) SLOT_INTERFACE_INTERNAL("rom", MD_STD_ROM) SLOT_INTERFACE_INTERNAL("rom_svp", MD_ROM_SVP) diff --git a/src/devices/bus/megadrive/md_carts.h b/src/devices/bus/megadrive/md_carts.h index 622c22f784c..7547a015657 100644 --- a/src/devices/bus/megadrive/md_carts.h +++ b/src/devices/bus/megadrive/md_carts.h @@ -6,21 +6,13 @@ **********************************************************************/ -#pragma once - -#ifndef __MD_CARTS_H__ -#define __MD_CARTS_H__ +#ifndef MAME_BUS_MEGADRIVE_MD_CARTS_H +#define MAME_BUS_MEGADRIVE_MD_CARTS_H +#pragma once -#include "rom.h" -#include "svp.h" -#include "sk.h" -#include "ggenie.h" -#include "eeprom.h" -#include "jcart.h" -#include "stm95.h" // supported devices SLOT_INTERFACE_EXTERN(md_cart); -#endif // __MD_CARTS_H__ +#endif // MAME_BUS_MEGADRIVE_MD_CARTS_H diff --git a/src/devices/bus/megadrive/md_slot.cpp b/src/devices/bus/megadrive/md_slot.cpp index 122ab4b6e97..8c62da3861c 100644 --- a/src/devices/bus/megadrive/md_slot.cpp +++ b/src/devices/bus/megadrive/md_slot.cpp @@ -51,9 +51,9 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type MD_CART_SLOT = device_creator; -const device_type PICO_CART_SLOT = device_creator; -const device_type COPERA_CART_SLOT = device_creator; +DEFINE_DEVICE_TYPE(MD_CART_SLOT, md_cart_slot_device, "md_cart_slot", "Mega Drive Cartridge Slot") +DEFINE_DEVICE_TYPE(PICO_CART_SLOT, pico_cart_slot_device, "pico_cart_slot", "Pico Cartridge Slot") +DEFINE_DEVICE_TYPE(COPERA_CART_SLOT, copera_cart_slot_device, "copera_cart_slot", "Copera Cartridge Slot") //************************************************************************** // MD cartridges Interface @@ -160,27 +160,27 @@ uint32_t device_md_cart_interface::get_padded_size(uint32_t size) //------------------------------------------------- // base_md_cart_slot_device - constructor //------------------------------------------------- -base_md_cart_slot_device::base_md_cart_slot_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_image_interface(mconfig, *this), - device_slot_interface(mconfig, *this), - m_type(SEGA_STD), m_cart(nullptr), - m_must_be_loaded(1) +base_md_cart_slot_device::base_md_cart_slot_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), + device_image_interface(mconfig, *this), + device_slot_interface(mconfig, *this), + m_type(SEGA_STD), m_cart(nullptr), + m_must_be_loaded(1) { } md_cart_slot_device::md_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - base_md_cart_slot_device(mconfig, MD_CART_SLOT, "MD Cartridge Slot", tag, owner, clock, "md_cart_slot", __FILE__) + base_md_cart_slot_device(mconfig, MD_CART_SLOT, tag, owner, clock) { } pico_cart_slot_device::pico_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - base_md_cart_slot_device(mconfig, PICO_CART_SLOT, "Pico Cartridge Slot", tag, owner, clock, "pico_cart_slot", __FILE__) + base_md_cart_slot_device(mconfig, PICO_CART_SLOT, tag, owner, clock) { } copera_cart_slot_device::copera_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - base_md_cart_slot_device(mconfig, COPERA_CART_SLOT, "Copera Cartridge Slot", tag, owner, clock, "copera_cart_slot", __FILE__) + base_md_cart_slot_device(mconfig, COPERA_CART_SLOT, tag, owner, clock) { } diff --git a/src/devices/bus/megadrive/md_slot.h b/src/devices/bus/megadrive/md_slot.h index 7c30ad04a2b..78388c4dcbd 100644 --- a/src/devices/bus/megadrive/md_slot.h +++ b/src/devices/bus/megadrive/md_slot.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __MD_SLOT_H -#define __MD_SLOT_H +#ifndef MAME_BUS_MEGADRIVE_MD_SLOT_H +#define MAME_BUS_MEGADRIVE_MD_SLOT_H + +#pragma once #include "softlist_dev.h" @@ -89,9 +91,9 @@ enum class device_md_cart_interface : public device_slot_card_interface { + friend class base_md_cart_slot_device; public: // construction/destruction - device_md_cart_interface(const machine_config &mconfig, device_t &device); virtual ~device_md_cart_interface(); // reading and writing @@ -120,6 +122,9 @@ public: void rom_map_setup(uint32_t size); uint32_t get_padded_size(uint32_t size); +protected: + device_md_cart_interface(const machine_config &mconfig, device_t &device); + int m_nvram_start, m_nvram_end; int m_nvram_active, m_nvram_readonly; @@ -129,7 +134,9 @@ public: int m_nvram_handlers_installed; // internal state +public: // FIXME: this needs to be public becuase the S&K "lock-on" cart is implemented in a really dodgy way uint16_t *m_rom; +protected: uint32_t m_rom_size; std::vector m_nvram; @@ -145,7 +152,7 @@ class base_md_cart_slot_device : public device_t, { public: // construction/destruction - base_md_cart_slot_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); + base_md_cart_slot_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); virtual ~base_md_cart_slot_device(); // device-level overrides @@ -233,9 +240,9 @@ public: // device type definition -extern const device_type MD_CART_SLOT; -extern const device_type PICO_CART_SLOT; -extern const device_type COPERA_CART_SLOT; +DECLARE_DEVICE_TYPE(MD_CART_SLOT, md_cart_slot_device) +DECLARE_DEVICE_TYPE(PICO_CART_SLOT, pico_cart_slot_device) +DECLARE_DEVICE_TYPE(COPERA_CART_SLOT, copera_cart_slot_device) /*************************************************************************** @@ -262,4 +269,4 @@ extern const device_type COPERA_CART_SLOT; static_cast(device)->set_must_be_loaded(false); -#endif +#endif // MAME_BUS_MEGADRIVE_MD_SLOT_H diff --git a/src/devices/bus/megadrive/rom.cpp b/src/devices/bus/megadrive/rom.cpp index bb9e7c4fab0..962033ab5c9 100644 --- a/src/devices/bus/megadrive/rom.cpp +++ b/src/devices/bus/megadrive/rom.cpp @@ -24,226 +24,224 @@ //------------------------------------------------- // BASE CARTS + NVRAM -const device_type MD_STD_ROM = device_creator; -const device_type MD_ROM_SRAM = device_creator; -const device_type MD_ROM_FRAM = device_creator; +DEFINE_DEVICE_TYPE(MD_STD_ROM, md_std_rom_device, "md_std_rom", "MD Standard cart") +DEFINE_DEVICE_TYPE(MD_ROM_SRAM, md_rom_sram_device, "md_rom_sram", "MD Standard cart + SRAM") +DEFINE_DEVICE_TYPE(MD_ROM_FRAM, md_rom_fram_device, "md_rom_fram", "MD Standard cart + FRAM") // BASE CARTS + BANKSWITCH AT RESET -const device_type MD_ROM_CM2IN1 = device_creator; +DEFINE_DEVICE_TYPE(MD_ROM_CM2IN1, md_rom_cm2in1_device, "md_rom_cm2in1", "MD Codemasters 2in1") // BASE CARTS + PROTECTION / BANKSWITCH -const device_type MD_ROM_SSF2 = device_creator; -const device_type MD_ROM_BUGSLIFE = device_creator; -const device_type MD_ROM_SMOUSE = device_creator; -const device_type MD_ROM_SMW64 = device_creator; -const device_type MD_ROM_SMB = device_creator; -const device_type MD_ROM_SMB2 = device_creator; -const device_type MD_ROM_SBUBL = device_creator; -const device_type MD_ROM_RX3 = device_creator; -const device_type MD_ROM_MJLOV = device_creator; -const device_type MD_ROM_CJMJCLUB = device_creator; -const device_type MD_ROM_KOF98 = device_creator; -const device_type MD_ROM_KOF99 = device_creator; -const device_type MD_ROM_SOULB = device_creator; -const device_type MD_ROM_CHINF3 = device_creator; -const device_type MD_ROM_16MJ2 = device_creator; -const device_type MD_ROM_ELFWOR = device_creator; -const device_type MD_ROM_YASECH = device_creator; -const device_type MD_ROM_LION2 = device_creator; -const device_type MD_ROM_LION3 = device_creator; -const device_type MD_ROM_MCPIR = device_creator; -const device_type MD_ROM_POKEA = device_creator; -const device_type MD_ROM_POKESTAD = device_creator; -const device_type MD_ROM_REALTEC = device_creator; -const device_type MD_ROM_REDCL = device_creator; -const device_type MD_ROM_SQUIR = device_creator; -const device_type MD_ROM_TEKKENSP = device_creator; -const device_type MD_ROM_TOPF = device_creator; -const device_type MD_ROM_RADICA = device_creator; -const device_type MD_ROM_BEGGARP = device_creator; -const device_type MD_ROM_WUKONG = device_creator; -const device_type MD_ROM_STARODYS = device_creator; - - -md_std_rom_device::md_std_rom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_md_cart_interface( mconfig, *this ) +DEFINE_DEVICE_TYPE(MD_ROM_SSF2, md_rom_ssf2_device, "md_rom_ssf2", "MD Super SF2") +DEFINE_DEVICE_TYPE(MD_ROM_BUGSLIFE, md_rom_bugslife_device, "md_rom_bugslife", "MD A Bug's Life") +DEFINE_DEVICE_TYPE(MD_ROM_SMOUSE, md_rom_smouse_device, "md_rom_smouse", "MD Huan Le Tao Qi Shu / Smart Mouse") +DEFINE_DEVICE_TYPE(MD_ROM_SMW64, md_rom_smw64_device, "md_rom_smw64", "MD Super Mario World 64") +DEFINE_DEVICE_TYPE(MD_ROM_SMB, md_rom_smb_device, "md_rom_smb", "MD Super Mario Bros.") +DEFINE_DEVICE_TYPE(MD_ROM_SMB2, md_rom_smb2_device, "md_rom_smb2", "MD Super Mario Bros. 2") +DEFINE_DEVICE_TYPE(MD_ROM_SBUBL, md_rom_sbubl_device, "md_rom_sbubl", "MD Super Bubble Bobble") +DEFINE_DEVICE_TYPE(MD_ROM_RX3, md_rom_rx3_device, "md_rom_rx3", "MD Rockman X3") +DEFINE_DEVICE_TYPE(MD_ROM_MJLOV, md_rom_mjlov_device, "md_rom_mjlov", "MD Majiang Qingren / Mahjong Lover") +DEFINE_DEVICE_TYPE(MD_ROM_CJMJCLUB, md_rom_cjmjclub_device, "md_rom_cjmjclub", "MD Chaoji Majiang Club / Super Mahjong Club") +DEFINE_DEVICE_TYPE(MD_ROM_KOF98, md_rom_kof98_device, "md_rom_kof98", "MD KOF 98") +DEFINE_DEVICE_TYPE(MD_ROM_KOF99, md_rom_kof99_device, "md_rom_kof99", "MD KOF 99") // and others +DEFINE_DEVICE_TYPE(MD_ROM_SOULB, md_rom_soulb_device, "md_rom_soulb", "MD Soul Blade") +DEFINE_DEVICE_TYPE(MD_ROM_CHINF3, md_rom_chinf3_device, "md_rom_chinf3", "MD Chinese Fighter 3") +DEFINE_DEVICE_TYPE(MD_ROM_16MJ2, md_rom_16mj2_device, "md_rom_16mj2", "MD 16 Majong Tiles II") +DEFINE_DEVICE_TYPE(MD_ROM_ELFWOR, md_rom_elfwor_device, "md_rom_elfwor", "MD Linghuan Daoshi Super Magician / Elf Wor") +DEFINE_DEVICE_TYPE(MD_ROM_YASECH, md_rom_yasech_device, "md_rom_yasech", "MD Ya Se Chuan Shuo") +DEFINE_DEVICE_TYPE(MD_ROM_LION2, md_rom_lion2_device, "md_rom_lion2", "MD Lion King 2") +DEFINE_DEVICE_TYPE(MD_ROM_LION3, md_rom_lion3_device, "md_rom_lion3", "MD Lion King 3") +DEFINE_DEVICE_TYPE(MD_ROM_MCPIR, md_rom_mcpirate_device, "md_rom_mcpirate", "MD Pirate Multicarts (various)") +DEFINE_DEVICE_TYPE(MD_ROM_POKEA, md_rom_pokea_device, "md_rom_pokea", "MD Pokemon (alt protection)") +DEFINE_DEVICE_TYPE(MD_ROM_POKESTAD, md_rom_pokestad_device, "md_rom_pokestad", "MD Pokemon Stadium") +DEFINE_DEVICE_TYPE(MD_ROM_REALTEC, md_rom_realtec_device, "md_rom_realtec", "MD Realtec") +DEFINE_DEVICE_TYPE(MD_ROM_REDCL, md_rom_redcl_device, "md_rom_redcl", "MD Redcliff") +DEFINE_DEVICE_TYPE(MD_ROM_SQUIR, md_rom_squir_device, "md_rom_squir", "MD Squirrel King") +DEFINE_DEVICE_TYPE(MD_ROM_TEKKENSP, md_rom_tekkensp_device, "md_rom_tekkensp", "MD Tekken Special") +DEFINE_DEVICE_TYPE(MD_ROM_TOPF, md_rom_topf_device, "md_rom_topf", "MD Top Fighter") +DEFINE_DEVICE_TYPE(MD_ROM_RADICA, md_rom_radica_device, "md_rom_radica", "MD Radica TV games") +DEFINE_DEVICE_TYPE(MD_ROM_BEGGARP, md_rom_beggarp_device, "md_rom_beggarp", "MD Beggar Prince") +DEFINE_DEVICE_TYPE(MD_ROM_WUKONG, md_rom_wukong_device, "md_rom_wukong", "MD Legend of Wukong") +DEFINE_DEVICE_TYPE(MD_ROM_STARODYS, md_rom_starodys_device, "md_rom_starodys", "MD Star Odyssey") + + +md_std_rom_device::md_std_rom_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock), device_md_cart_interface(mconfig, *this) { } md_std_rom_device::md_std_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MD_STD_ROM, "MD Standard cart", tag, owner, clock, "md_std_rom", __FILE__), - device_md_cart_interface( mconfig, *this ) + : md_std_rom_device(mconfig, MD_STD_ROM, tag, owner, clock) { } md_rom_sram_device::md_rom_sram_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : md_std_rom_device(mconfig, MD_ROM_SRAM, "MD Standard cart + SRAM", tag, owner, clock, "md_rom_sram", __FILE__) + : md_std_rom_device(mconfig, MD_ROM_SRAM, tag, owner, clock) { } md_rom_fram_device::md_rom_fram_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : md_std_rom_device(mconfig, MD_ROM_FRAM, "MD Standard cart + FRAM", tag, owner, clock, "md_rom_fram", __FILE__) + : md_std_rom_device(mconfig, MD_ROM_FRAM, tag, owner, clock) { } -md_rom_ssf2_device::md_rom_ssf2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : md_std_rom_device(mconfig, MD_ROM_SSF2, "MD Super SF2", tag, owner, clock, "md_rom_ssf2", __FILE__), m_lastoff(0), m_lastdata(0) - { -} - md_rom_cm2in1_device::md_rom_cm2in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : md_std_rom_device(mconfig, MD_ROM_CM2IN1, "MD Codemasters 2in1", tag, owner, clock, "md_rom_cm2in1", __FILE__), m_base(0) - { + : md_std_rom_device(mconfig, MD_ROM_CM2IN1, tag, owner, clock), m_base(0) +{ } -md_rom_mcpirate_device::md_rom_mcpirate_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : md_std_rom_device(mconfig, MD_ROM_MCPIR, "MD Pirate Multicarts (Various)", tag, owner, clock, "md_rom_mcpirate", __FILE__), m_bank(0) - { +md_rom_ssf2_device::md_rom_ssf2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : md_std_rom_device(mconfig, MD_ROM_SSF2, tag, owner, clock), m_lastoff(0), m_lastdata(0) +{ } md_rom_bugslife_device::md_rom_bugslife_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : md_std_rom_device(mconfig, MD_ROM_BUGSLIFE, "MD A Bug's Life", tag, owner, clock, "md_rom_bugslife", __FILE__) + : md_std_rom_device(mconfig, MD_ROM_BUGSLIFE, tag, owner, clock) { } md_rom_smouse_device::md_rom_smouse_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : md_std_rom_device(mconfig, MD_ROM_SMOUSE, "MD Huan Le Tao Qi Shu / Smart Mouse", tag, owner, clock, "md_rom_smouse", __FILE__) + : md_std_rom_device(mconfig, MD_ROM_SMOUSE, tag, owner, clock) { } -md_rom_smb_device::md_rom_smb_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : md_std_rom_device(mconfig, MD_ROM_SMB, "MD Super Mario Bros.", tag, owner, clock, "md_rom_smb", __FILE__) +md_rom_smw64_device::md_rom_smw64_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : md_std_rom_device(mconfig, MD_ROM_SMW64, tag, owner, clock), m_latch0(0), m_latch1(0) { } -md_rom_smb2_device::md_rom_smb2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : md_std_rom_device(mconfig, MD_ROM_SMB2, "MD Super Mario Bros. 2", tag, owner, clock, "md_rom_smb2", __FILE__) +md_rom_smb_device::md_rom_smb_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : md_std_rom_device(mconfig, MD_ROM_SMB, tag, owner, clock) { } -md_rom_smw64_device::md_rom_smw64_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : md_std_rom_device(mconfig, MD_ROM_SMW64, "MD Super Mario World 64", tag, owner, clock, "md_rom_smw64", __FILE__), m_latch0(0), m_latch1(0) - { +md_rom_smb2_device::md_rom_smb2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : md_std_rom_device(mconfig, MD_ROM_SMB2, tag, owner, clock) +{ } md_rom_sbubl_device::md_rom_sbubl_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : md_std_rom_device(mconfig, MD_ROM_SBUBL, "MD Super Bubble Bobble", tag, owner, clock, "md_rom_sbubl", __FILE__) + : md_std_rom_device(mconfig, MD_ROM_SBUBL, tag, owner, clock) { } md_rom_rx3_device::md_rom_rx3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : md_std_rom_device(mconfig, MD_ROM_RX3, "MD Rockman X3", tag, owner, clock, "md_rom_rx3", __FILE__) + : md_std_rom_device(mconfig, MD_ROM_RX3, tag, owner, clock) { } md_rom_mjlov_device::md_rom_mjlov_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : md_std_rom_device(mconfig, MD_ROM_MJLOV, "MD Ma Jiang Qing Ren / Mahjong Lover", tag, owner, clock, "md_rom_mjlov", __FILE__) + : md_std_rom_device(mconfig, MD_ROM_MJLOV, tag, owner, clock) { } md_rom_cjmjclub_device::md_rom_cjmjclub_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : md_std_rom_device(mconfig, MD_ROM_CJMJCLUB, "MD Chaoji Majiang Club / Super Mahjong Club", tag, owner, clock, "md_rom_cjmjclub", __FILE__) + : md_std_rom_device(mconfig, MD_ROM_CJMJCLUB, tag, owner, clock) { } md_rom_kof98_device::md_rom_kof98_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : md_std_rom_device(mconfig, MD_ROM_KOF98, "MD KOF 98", tag, owner, clock, "md_rom_kof98", __FILE__) + : md_std_rom_device(mconfig, MD_ROM_KOF98, tag, owner, clock) { } md_rom_kof99_device::md_rom_kof99_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : md_std_rom_device(mconfig, MD_ROM_KOF99, "MD KOF 99 (and others)", tag, owner, clock, "md_rom_kof99", __FILE__) + : md_std_rom_device(mconfig, MD_ROM_KOF99, tag, owner, clock) { } md_rom_soulb_device::md_rom_soulb_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : md_std_rom_device(mconfig, MD_ROM_SOULB, "MD Soul Blade", tag, owner, clock, "md_rom_soulb", __FILE__) + : md_std_rom_device(mconfig, MD_ROM_SOULB, tag, owner, clock) { } md_rom_chinf3_device::md_rom_chinf3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : md_std_rom_device(mconfig, MD_ROM_CHINF3, "MD Chinese Fighter 3", tag, owner, clock, "md_rom_chinf3", __FILE__), m_bank(0) - { + : md_std_rom_device(mconfig, MD_ROM_CHINF3, tag, owner, clock), m_bank(0) +{ } md_rom_16mj2_device::md_rom_16mj2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : md_std_rom_device(mconfig, MD_ROM_16MJ2, "MD 16 Mahjong Tiles II", tag, owner, clock, "md_rom_16mj2", __FILE__) + : md_std_rom_device(mconfig, MD_ROM_16MJ2, tag, owner, clock) { } md_rom_elfwor_device::md_rom_elfwor_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : md_std_rom_device(mconfig, MD_ROM_ELFWOR, "MD Linghuan Daoshi Super Magician / Elf Wor", tag, owner, clock, "md_rom_elfwor", __FILE__) + : md_std_rom_device(mconfig, MD_ROM_ELFWOR, tag, owner, clock) { } md_rom_yasech_device::md_rom_yasech_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : md_std_rom_device(mconfig, MD_ROM_YASECH, "MD Ya Se Chuan Shuo", tag, owner, clock, "md_rom_yasech", __FILE__) + : md_std_rom_device(mconfig, MD_ROM_YASECH, tag, owner, clock) { } md_rom_lion2_device::md_rom_lion2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : md_std_rom_device(mconfig, MD_ROM_LION2, "MD Lion King 2", tag, owner, clock, "md_rom_lion2", __FILE__), m_prot1_data(0), m_prot2_data(0) - { + : md_std_rom_device(mconfig, MD_ROM_LION2, tag, owner, clock), m_prot1_data(0), m_prot2_data(0) +{ } md_rom_lion3_device::md_rom_lion3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : md_std_rom_device(mconfig, MD_ROM_LION3, "MD Lion King 3", tag, owner, clock, "md_rom_lion3", __FILE__), m_bank(0) - { + : md_std_rom_device(mconfig, MD_ROM_LION3, tag, owner, clock), m_bank(0) +{ +} + +md_rom_mcpirate_device::md_rom_mcpirate_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : md_std_rom_device(mconfig, MD_ROM_MCPIR, tag, owner, clock), m_bank(0) +{ } md_rom_pokea_device::md_rom_pokea_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : md_std_rom_device(mconfig, MD_ROM_POKEA, "MD Pokemon (Alt Protection)", tag, owner, clock, "md_rom_pokea", __FILE__) + : md_std_rom_device(mconfig, MD_ROM_POKEA, tag, owner, clock) { } md_rom_pokestad_device::md_rom_pokestad_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : md_std_rom_device(mconfig, MD_ROM_POKESTAD, "MD Pokemon Stadium", tag, owner, clock, "md_rom_pokestad", __FILE__), m_bank(0) - { + : md_std_rom_device(mconfig, MD_ROM_POKESTAD, tag, owner, clock), m_bank(0) +{ } md_rom_realtec_device::md_rom_realtec_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : md_std_rom_device(mconfig, MD_ROM_REALTEC, "MD Realtec", tag, owner, clock, "md_rom_realtec", __FILE__), m_bank_addr(0), m_bank_size(0), m_old_bank_addr(0) - { + : md_std_rom_device(mconfig, MD_ROM_REALTEC, tag, owner, clock), m_bank_addr(0), m_bank_size(0), m_old_bank_addr(0) +{ } md_rom_redcl_device::md_rom_redcl_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : md_std_rom_device(mconfig, MD_ROM_REDCL, "MD Redcliff", tag, owner, clock, "md_rom_redcl", __FILE__) + : md_std_rom_device(mconfig, MD_ROM_REDCL, tag, owner, clock) { } md_rom_squir_device::md_rom_squir_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : md_std_rom_device(mconfig, MD_ROM_SQUIR, "MD Squirrel King", tag, owner, clock, "md_rom_squir", __FILE__), m_latch(0) - { + : md_std_rom_device(mconfig, MD_ROM_SQUIR, tag, owner, clock), m_latch(0) +{ } md_rom_tekkensp_device::md_rom_tekkensp_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : md_std_rom_device(mconfig, MD_ROM_TEKKENSP, "MD Tekken Special", tag, owner, clock, "md_rom_tekkensp", __FILE__), m_reg(0) - { + : md_std_rom_device(mconfig, MD_ROM_TEKKENSP, tag, owner, clock), m_reg(0) +{ } md_rom_topf_device::md_rom_topf_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : md_std_rom_device(mconfig, MD_ROM_TOPF, "MD Top Fighter", tag, owner, clock, "md_rom_topf", __FILE__), m_latch(0) - { + : md_std_rom_device(mconfig, MD_ROM_TOPF, tag, owner, clock), m_latch(0) +{ } md_rom_radica_device::md_rom_radica_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : md_std_rom_device(mconfig, MD_ROM_RADICA, "MD Radica TV games", tag, owner, clock, "md_rom_radica", __FILE__), m_bank(0) - { + : md_std_rom_device(mconfig, MD_ROM_RADICA, tag, owner, clock), m_bank(0) +{ } md_rom_beggarp_device::md_rom_beggarp_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : md_std_rom_device(mconfig, MD_ROM_BEGGARP, "MD Beggar Prince", tag, owner, clock, "md_rom_beggarp", __FILE__), m_mode(0), m_lock(0) - { + : md_std_rom_device(mconfig, MD_ROM_BEGGARP, tag, owner, clock), m_mode(0), m_lock(0) +{ } md_rom_wukong_device::md_rom_wukong_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : md_std_rom_device(mconfig, MD_ROM_WUKONG, "MD Legend of Wukong", tag, owner, clock, "md_rom_wukong", __FILE__), m_mode(0) - { + : md_std_rom_device(mconfig, MD_ROM_WUKONG, tag, owner, clock), m_mode(0) +{ } md_rom_starodys_device::md_rom_starodys_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : md_std_rom_device(mconfig, MD_ROM_STARODYS, "MD Star Odyssey", tag, owner, clock, "md_rom_starodys", __FILE__), m_mode(0), m_lock(0), m_ram_enable(0), m_base(0) + : md_std_rom_device(mconfig, MD_ROM_STARODYS, tag, owner, clock), m_mode(0), m_lock(0), m_ram_enable(0), m_base(0) { } diff --git a/src/devices/bus/megadrive/rom.h b/src/devices/bus/megadrive/rom.h index a75068c2ae2..8077ad7e0c6 100644 --- a/src/devices/bus/megadrive/rom.h +++ b/src/devices/bus/megadrive/rom.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __MD_ROM_H -#define __MD_ROM_H +#ifndef MAME_BUS_MEGADRIVE_ROM_H +#define MAME_BUS_MEGADRIVE_ROM_H + +#pragma once #include "md_slot.h" @@ -16,15 +18,17 @@ class md_std_rom_device : public device_t, { public: // construction/destruction - md_std_rom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); md_std_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override {}; - // reading and writing - virtual DECLARE_READ16_MEMBER(read) override { if (offset < 0x400000/2) return m_rom[MD_ADDR(offset)]; else return 0xffff; }; - virtual DECLARE_WRITE16_MEMBER(write) override { }; + virtual DECLARE_READ16_MEMBER(read) override { if (offset < 0x400000/2) return m_rom[MD_ADDR(offset)]; else return 0xffff; } + virtual DECLARE_WRITE16_MEMBER(write) override { } + +protected: + md_std_rom_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual void device_start() override { } }; // ======================> md_rom_sram_device @@ -64,14 +68,15 @@ public: // construction/destruction md_rom_ssf2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - // reading and writing virtual DECLARE_READ16_MEMBER(read) override; virtual DECLARE_WRITE16_MEMBER(write_a13) override; +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + private: uint8_t m_bank[16]; int m_lastoff, m_lastdata; @@ -85,13 +90,14 @@ public: // construction/destruction md_rom_cm2in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + // reading and writing + virtual DECLARE_READ16_MEMBER(read) override; + +protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; - // reading and writing - virtual DECLARE_READ16_MEMBER(read) override; - private: int m_base; }; @@ -105,14 +111,15 @@ public: // construction/destruction md_rom_mcpirate_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - // reading and writing virtual DECLARE_READ16_MEMBER(read) override; virtual DECLARE_WRITE16_MEMBER(write_a13) override; +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + private: uint8_t m_bank; }; @@ -138,14 +145,15 @@ public: // construction/destruction md_rom_chinf3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - // reading and writing virtual DECLARE_READ16_MEMBER(read) override; virtual DECLARE_WRITE16_MEMBER(write) override; +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + private: int m_bank; }; @@ -218,14 +226,15 @@ public: // construction/destruction md_rom_lion2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - // reading and writing virtual DECLARE_READ16_MEMBER(read) override; virtual DECLARE_WRITE16_MEMBER(write) override; +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + private: uint16_t m_prot1_data, m_prot2_data; }; @@ -238,14 +247,15 @@ public: // construction/destruction md_rom_lion3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - // reading and writing virtual DECLARE_READ16_MEMBER(read) override; virtual DECLARE_WRITE16_MEMBER(write) override; +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + private: uint8_t m_reg[3]; uint16_t m_bank; @@ -295,14 +305,15 @@ public: // construction/destruction md_rom_pokestad_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - // reading and writing virtual DECLARE_READ16_MEMBER(read) override; virtual DECLARE_WRITE16_MEMBER(write) override; +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + private: uint8_t m_bank; }; @@ -315,14 +326,15 @@ public: // construction/destruction md_rom_realtec_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - // reading and writing virtual DECLARE_READ16_MEMBER(read) override; virtual DECLARE_WRITE16_MEMBER(write) override; +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + private: uint16_t m_bank_addr, m_bank_size, m_old_bank_addr; }; @@ -395,14 +407,15 @@ public: // construction/destruction md_rom_smw64_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - // reading and writing virtual DECLARE_READ16_MEMBER(read) override; virtual DECLARE_WRITE16_MEMBER(write) override; +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + private: uint32_t m_latch0, m_latch1; uint16_t m_reg[6]; @@ -442,14 +455,15 @@ public: // construction/destruction md_rom_squir_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - // reading and writing virtual DECLARE_READ16_MEMBER(read) override; virtual DECLARE_WRITE16_MEMBER(write) override; +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + private: uint16_t m_latch; }; @@ -462,14 +476,15 @@ public: // construction/destruction md_rom_tekkensp_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - // reading and writing virtual DECLARE_READ16_MEMBER(read) override; virtual DECLARE_WRITE16_MEMBER(write) override; +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + private: uint16_t m_reg; }; @@ -482,14 +497,15 @@ public: // construction/destruction md_rom_topf_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - // reading and writing virtual DECLARE_READ16_MEMBER(read) override; virtual DECLARE_WRITE16_MEMBER(write) override; +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + private: uint16_t m_latch; uint8_t m_bank[3]; @@ -503,14 +519,15 @@ public: // construction/destruction md_rom_radica_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - // reading and writing virtual DECLARE_READ16_MEMBER(read) override; virtual DECLARE_READ16_MEMBER(read_a13) override; +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + private: uint8_t m_bank; }; @@ -523,15 +540,16 @@ public: // construction/destruction md_rom_beggarp_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - // reading and writing virtual DECLARE_READ16_MEMBER(read) override; virtual DECLARE_WRITE16_MEMBER(write) override; virtual DECLARE_WRITE16_MEMBER(write_a13) override; +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + private: uint8_t m_mode, m_lock; }; @@ -544,15 +562,16 @@ public: // construction/destruction md_rom_wukong_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - // reading and writing virtual DECLARE_READ16_MEMBER(read) override; virtual DECLARE_WRITE16_MEMBER(write) override; virtual DECLARE_WRITE16_MEMBER(write_a13) override; +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + private: uint8_t m_mode; }; @@ -565,16 +584,17 @@ public: // construction/destruction md_rom_starodys_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - // reading and writing virtual DECLARE_READ16_MEMBER(read) override; virtual DECLARE_WRITE16_MEMBER(write) override; virtual DECLARE_READ16_MEMBER(read_a13) override; virtual DECLARE_WRITE16_MEMBER(write_a13) override; +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + private: uint8_t m_mode, m_lock, m_ram_enable, m_base; }; @@ -582,40 +602,40 @@ private: // device type definition -extern const device_type MD_STD_ROM; -extern const device_type MD_ROM_SRAM; -extern const device_type MD_ROM_FRAM; -extern const device_type MD_ROM_CM2IN1; -extern const device_type MD_ROM_16MJ2; -extern const device_type MD_ROM_BUGSLIFE; -extern const device_type MD_ROM_CHINF3; -extern const device_type MD_ROM_ELFWOR; -extern const device_type MD_ROM_YASECH; -extern const device_type MD_ROM_KOF98; -extern const device_type MD_ROM_KOF99; -extern const device_type MD_ROM_LION2; -extern const device_type MD_ROM_LION3; -extern const device_type MD_ROM_MCPIR; -extern const device_type MD_ROM_MJLOV; -extern const device_type MD_ROM_CJMJCLUB; -extern const device_type MD_ROM_POKEA; -extern const device_type MD_ROM_POKESTAD; -extern const device_type MD_ROM_REALTEC; -extern const device_type MD_ROM_REDCL; -extern const device_type MD_ROM_RX3; -extern const device_type MD_ROM_SBUBL; -extern const device_type MD_ROM_SMB; -extern const device_type MD_ROM_SMB2; -extern const device_type MD_ROM_SMW64; -extern const device_type MD_ROM_SMOUSE; -extern const device_type MD_ROM_SOULB; -extern const device_type MD_ROM_SSF2; -extern const device_type MD_ROM_SQUIR; -extern const device_type MD_ROM_TEKKENSP; -extern const device_type MD_ROM_TOPF; -extern const device_type MD_ROM_RADICA; -extern const device_type MD_ROM_BEGGARP; -extern const device_type MD_ROM_WUKONG; -extern const device_type MD_ROM_STARODYS; - -#endif +DECLARE_DEVICE_TYPE(MD_STD_ROM, md_std_rom_device) +DECLARE_DEVICE_TYPE(MD_ROM_SRAM, md_rom_sram_device) +DECLARE_DEVICE_TYPE(MD_ROM_FRAM, md_rom_fram_device) +DECLARE_DEVICE_TYPE(MD_ROM_CM2IN1, md_rom_cm2in1_device) +DECLARE_DEVICE_TYPE(MD_ROM_SSF2, md_rom_ssf2_device) +DECLARE_DEVICE_TYPE(MD_ROM_BUGSLIFE, md_rom_bugslife_device) +DECLARE_DEVICE_TYPE(MD_ROM_SMOUSE, md_rom_smouse_device) +DECLARE_DEVICE_TYPE(MD_ROM_SMW64, md_rom_smw64_device) +DECLARE_DEVICE_TYPE(MD_ROM_SMB, md_rom_smb_device) +DECLARE_DEVICE_TYPE(MD_ROM_SMB2, md_rom_smb2_device) +DECLARE_DEVICE_TYPE(MD_ROM_SBUBL, md_rom_sbubl_device) +DECLARE_DEVICE_TYPE(MD_ROM_RX3, md_rom_rx3_device) +DECLARE_DEVICE_TYPE(MD_ROM_MJLOV, md_rom_mjlov_device) +DECLARE_DEVICE_TYPE(MD_ROM_CJMJCLUB, md_rom_cjmjclub_device) +DECLARE_DEVICE_TYPE(MD_ROM_KOF98, md_rom_kof98_device) +DECLARE_DEVICE_TYPE(MD_ROM_KOF99, md_rom_kof99_device) +DECLARE_DEVICE_TYPE(MD_ROM_SOULB, md_rom_soulb_device) +DECLARE_DEVICE_TYPE(MD_ROM_CHINF3, md_rom_chinf3_device) +DECLARE_DEVICE_TYPE(MD_ROM_16MJ2, md_rom_16mj2_device) +DECLARE_DEVICE_TYPE(MD_ROM_ELFWOR, md_rom_elfwor_device) +DECLARE_DEVICE_TYPE(MD_ROM_YASECH, md_rom_yasech_device) +DECLARE_DEVICE_TYPE(MD_ROM_LION2, md_rom_lion2_device) +DECLARE_DEVICE_TYPE(MD_ROM_LION3, md_rom_lion3_device) +DECLARE_DEVICE_TYPE(MD_ROM_MCPIR, md_rom_mcpirate_device) +DECLARE_DEVICE_TYPE(MD_ROM_POKEA, md_rom_pokea_device) +DECLARE_DEVICE_TYPE(MD_ROM_POKESTAD, md_rom_pokestad_device) +DECLARE_DEVICE_TYPE(MD_ROM_REALTEC, md_rom_realtec_device) +DECLARE_DEVICE_TYPE(MD_ROM_REDCL, md_rom_redcl_device) +DECLARE_DEVICE_TYPE(MD_ROM_SQUIR, md_rom_squir_device) +DECLARE_DEVICE_TYPE(MD_ROM_TEKKENSP, md_rom_tekkensp_device) +DECLARE_DEVICE_TYPE(MD_ROM_TOPF, md_rom_topf_device) +DECLARE_DEVICE_TYPE(MD_ROM_RADICA, md_rom_radica_device) +DECLARE_DEVICE_TYPE(MD_ROM_BEGGARP, md_rom_beggarp_device) +DECLARE_DEVICE_TYPE(MD_ROM_WUKONG, md_rom_wukong_device) +DECLARE_DEVICE_TYPE(MD_ROM_STARODYS, md_rom_starodys_device) + +#endif // MAME_BUS_MEGADRIVE_ROM_H diff --git a/src/devices/bus/megadrive/sk.cpp b/src/devices/bus/megadrive/sk.cpp index 8260ae4abf4..a186f035c03 100644 --- a/src/devices/bus/megadrive/sk.cpp +++ b/src/devices/bus/megadrive/sk.cpp @@ -24,20 +24,18 @@ // md_rom_device - constructor //------------------------------------------------- -const device_type MD_ROM_SK = device_creator; +DEFINE_DEVICE_TYPE(MD_ROM_SK, md_rom_sk_device, "md_rom_sk", "MD Sonic & Knuckles") -md_rom_sk_device::md_rom_sk_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_md_cart_interface( mconfig, *this ), - m_exp(*this, "subslot") +md_rom_sk_device::md_rom_sk_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) + , device_md_cart_interface(mconfig, *this) + , m_exp(*this, "subslot") { } md_rom_sk_device::md_rom_sk_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MD_ROM_SK, "MD Sonic & Knuckles", tag, owner, clock, "md_rom_sk", __FILE__), - device_md_cart_interface( mconfig, *this ), - m_exp(*this, "subslot") + : md_rom_sk_device(mconfig, MD_ROM_SK, tag, owner, clock) { } diff --git a/src/devices/bus/megadrive/sk.h b/src/devices/bus/megadrive/sk.h index 526a2aa47ea..091fd9325c9 100644 --- a/src/devices/bus/megadrive/sk.h +++ b/src/devices/bus/megadrive/sk.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __MD_SK_H -#define __MD_SK_H +#ifndef MAME_BUS_MEGADRIVE_SK_H +#define MAME_BUS_MEGADRIVE_SK_H + +#pragma once #include "md_slot.h" @@ -13,23 +15,25 @@ class md_rom_sk_device : public device_t, { public: // construction/destruction - md_rom_sk_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); md_rom_sk_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // device-level overrides - virtual void device_start() override; virtual machine_config_constructor device_mconfig_additions() const override; // reading and writing virtual DECLARE_READ16_MEMBER(read) override; virtual DECLARE_WRITE16_MEMBER(write) override; +protected: + md_rom_sk_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; + private: required_device m_exp; }; // device type definition -extern const device_type MD_ROM_SK; +DECLARE_DEVICE_TYPE(MD_ROM_SK, md_rom_sk_device) -#endif +#endif // MAME_BUS_MEGADRIVE_SK_H diff --git a/src/devices/bus/megadrive/stm95.cpp b/src/devices/bus/megadrive/stm95.cpp index 05adacac57f..4f536766b01 100644 --- a/src/devices/bus/megadrive/stm95.cpp +++ b/src/devices/bus/megadrive/stm95.cpp @@ -16,9 +16,9 @@ stm95_eeprom_device::stm95_eeprom_device(running_machine &machine, uint8_t *eeprom) : - stm_state(IDLE), - stream_pos(0), - m_machine(machine) + stm_state(IDLE), + stream_pos(0), + m_machine(machine) { eeprom_data = eeprom; m_machine.save().save_item(latch, "STM95/latch"); @@ -172,25 +172,25 @@ void stm95_eeprom_device::set_sck_line(int state) // md_rom_device - constructor //------------------------------------------------- -const device_type MD_EEPROM_STM95 = device_creator; +DEFINE_DEVICE_TYPE(MD_EEPROM_STM95, md_eeprom_stm95_device, "md_eeprom_stm95", "MD Cart + EEPROM STM95") -md_eeprom_stm95_device::md_eeprom_stm95_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_md_cart_interface( mconfig, *this ), m_rdcnt(0) - { +md_eeprom_stm95_device::md_eeprom_stm95_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) + , device_md_cart_interface(mconfig, *this) + , m_rdcnt(0) +{ } md_eeprom_stm95_device::md_eeprom_stm95_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MD_EEPROM_STM95, "MD Cart + EEPROM STM95", tag, owner, clock, "md_eeprom_stm95", __FILE__), - device_md_cart_interface( mconfig, *this ), m_rdcnt(0) - { + : md_eeprom_stm95_device(mconfig, MD_EEPROM_STM95, tag, owner, clock) +{ } void md_eeprom_stm95_device::device_start() { - nvram_alloc(M95320_SIZE); + nvram_alloc(stm95_eeprom_device::M95320_SIZE); m_stm95 = std::make_unique(machine(), (uint8_t*)get_nvram_base()); save_item(NAME(m_rdcnt)); diff --git a/src/devices/bus/megadrive/stm95.h b/src/devices/bus/megadrive/stm95.h index 1e0561f3fae..c1291e1f12f 100644 --- a/src/devices/bus/megadrive/stm95.h +++ b/src/devices/bus/megadrive/stm95.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli, MetalliC -#ifndef __MD_STM95_H -#define __MD_STM95_H +#ifndef MAME_BUS_MEGADRIVE_STM95_H +#define MAME_BUS_MEGADRIVE_STM95_H + +#pragma once #include "md_slot.h" @@ -12,22 +14,11 @@ /* ST M95320 32Kbit serial EEPROM implementation */ // TO DO: STM95 should be made a separate EEPROM device and this should be merged with md_eeprom.c! -#define M95320_SIZE 0x1000 - -enum STMSTATE -{ - IDLE = 0, - CMD_WRSR, - CMD_RDSR, - M95320_CMD_READ, - CMD_WRITE, - READING, - WRITING -}; - class stm95_eeprom_device { public: + static constexpr unsigned M95320_SIZE = 0x1000; + stm95_eeprom_device(running_machine &machine, uint8_t *eeprom); running_machine &machine() const { return m_machine; } @@ -39,6 +30,17 @@ public: int get_so_line(void); protected: + enum STMSTATE + { + IDLE = 0, + CMD_WRSR, + CMD_RDSR, + M95320_CMD_READ, + CMD_WRITE, + READING, + WRITING + }; + int latch; int reset_line; int sck_line; @@ -55,23 +57,24 @@ protected: // ======================> md_eeprom_stm95_device -class md_eeprom_stm95_device : public device_t, - public device_md_cart_interface +class md_eeprom_stm95_device : public device_t, public device_md_cart_interface { public: // construction/destruction - md_eeprom_stm95_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); md_eeprom_stm95_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - // reading and writing virtual DECLARE_READ16_MEMBER(read) override; virtual DECLARE_READ16_MEMBER(read_a13) override; virtual DECLARE_WRITE16_MEMBER(write_a13) override; +protected: + md_eeprom_stm95_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + private: uint8_t m_bank[3]; int m_rdcnt; @@ -81,6 +84,6 @@ private: // device type definition -extern const device_type MD_EEPROM_STM95; +DECLARE_DEVICE_TYPE(MD_EEPROM_STM95, md_eeprom_stm95_device) -#endif +#endif // MAME_BUS_MEGADRIVE_STM95_H diff --git a/src/devices/bus/megadrive/svp.cpp b/src/devices/bus/megadrive/svp.cpp index 05ac7f024a2..b07f14735d8 100644 --- a/src/devices/bus/megadrive/svp.cpp +++ b/src/devices/bus/megadrive/svp.cpp @@ -34,22 +34,20 @@ // md_rom_device - constructor //------------------------------------------------- -const device_type MD_ROM_SVP = device_creator; - -md_rom_svp_device::md_rom_svp_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_md_cart_interface( mconfig, *this ), - m_svp(*this, "svp"), - m_test_ipt(*this, "MEMORY_TEST"), m_emu_status(0), m_xst(0), m_xst2(0) - { +DEFINE_DEVICE_TYPE(MD_ROM_SVP, md_rom_svp_device, "md_rom_svp", "MD Virtua Racing") + +md_rom_svp_device::md_rom_svp_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) + , device_md_cart_interface(mconfig, *this) + , m_svp(*this, "svp") + , m_test_ipt(*this, "MEMORY_TEST") + , m_emu_status(0), m_xst(0), m_xst2(0) +{ } md_rom_svp_device::md_rom_svp_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MD_ROM_SVP, "MD Virtua Racing", tag, owner, clock, "md_rom_svp", __FILE__), - device_md_cart_interface( mconfig, *this ), - m_svp(*this, "svp"), - m_test_ipt(*this, "MEMORY_TEST"), m_emu_status(0), m_xst(0), m_xst2(0) - { + : md_rom_svp_device(mconfig, MD_ROM_SVP, tag, owner, clock) +{ } diff --git a/src/devices/bus/megadrive/svp.h b/src/devices/bus/megadrive/svp.h index 57aa7713b67..328864d91e6 100644 --- a/src/devices/bus/megadrive/svp.h +++ b/src/devices/bus/megadrive/svp.h @@ -1,7 +1,7 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli,Pierpaolo Prazzoli,Grazvydas Ignotas -#ifndef __MD_SVP_H -#define __MD_SVP_H +#ifndef MAME_BUS_MEGADRIVE_SVP_H +#define MAME_BUS_MEGADRIVE_SVP_H #include "md_slot.h" #include "cpu/ssp1601/ssp1601.h" @@ -17,19 +17,13 @@ class md_rom_svp_device : public device_t, { public: // construction/destruction - md_rom_svp_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); md_rom_svp_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); -//protected: // device-level overrides - virtual void device_start() override; virtual machine_config_constructor device_mconfig_additions() const override; virtual ioport_constructor device_input_ports() const override; virtual void set_bank_to_rom(const char *banktag, uint32_t offset) override; - required_device m_svp; - required_ioport m_test_ipt; - // reading and writing virtual DECLARE_READ16_MEMBER(read) override; virtual DECLARE_WRITE16_MEMBER(write) override; @@ -56,6 +50,14 @@ public: virtual DECLARE_WRITE16_MEMBER(write_pmc); virtual DECLARE_WRITE16_MEMBER(write_al); +protected: + md_rom_svp_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + virtual void device_start() override; + + required_device m_svp; + required_ioport m_test_ipt; + uint32_t pm_io(int reg, int write, uint32_t d); uint32_t m_pmac_read[6]; // read modes/addrs for PM0-PM5 @@ -70,6 +72,6 @@ public: // device type definition -extern const device_type MD_ROM_SVP; +DECLARE_DEVICE_TYPE(MD_ROM_SVP, md_rom_svp_device) -#endif +#endif // MAME_BUS_MEGADRIVE_SVP_H diff --git a/src/devices/bus/midi/midi.cpp b/src/devices/bus/midi/midi.cpp index eb3cd8a2803..baf8cf91a8e 100644 --- a/src/devices/bus/midi/midi.cpp +++ b/src/devices/bus/midi/midi.cpp @@ -3,10 +3,10 @@ #include "emu.h" #include "midi.h" -const device_type MIDI_PORT = device_creator; +DEFINE_DEVICE_TYPE(MIDI_PORT, midi_port_device, "midi_port", "MIDI port") midi_port_device::midi_port_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MIDI_PORT, "Midi Port", tag, owner, clock, "midi_port", __FILE__), + : device_t(mconfig, MIDI_PORT, tag, owner, clock), device_slot_interface(mconfig, *this), m_rxd(0), m_rxd_handler(*this), diff --git a/src/devices/bus/midi/midi.h b/src/devices/bus/midi/midi.h index 2ce2afd1bd7..a14a7b8e627 100644 --- a/src/devices/bus/midi/midi.h +++ b/src/devices/bus/midi/midi.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:R. Belmont -#ifndef __BUS_MIDI_H__ -#define __BUS_MIDI_H__ +#ifndef MAME_BUS_MIDI_MIDI_H +#define MAME_BUS_MIDI_MIDI_H + +#pragma once #define MCFG_MIDI_PORT_ADD(_tag, _slot_intf, _def_slot) \ @@ -23,7 +25,7 @@ public: virtual ~midi_port_device(); // static configuration helpers - template static devcb_base &set_rx_handler(device_t &device, _Object object) { return downcast(device).m_rxd_handler.set_callback(object); } + template static devcb_base &set_rx_handler(device_t &device, Object &&cb) { return downcast(device).m_rxd_handler.set_callback(std::forward(cb)); } DECLARE_WRITE_LINE_MEMBER( write_txd ); @@ -46,19 +48,21 @@ class device_midi_port_interface : public device_slot_card_interface friend class midi_port_device; public: - device_midi_port_interface(const machine_config &mconfig, device_t &device); virtual ~device_midi_port_interface(); - virtual DECLARE_WRITE_LINE_MEMBER( input_txd ) {} + virtual DECLARE_WRITE_LINE_MEMBER( input_txd ) { } DECLARE_WRITE_LINE_MEMBER( output_rxd ) { m_port->m_rxd = state; m_port->m_rxd_handler(state); } protected: + device_midi_port_interface(const machine_config &mconfig, device_t &device); + midi_port_device *m_port; }; extern const device_type MIDI_PORT; +DECLARE_DEVICE_TYPE(MIDI_PORT, midi_port_device) SLOT_INTERFACE_EXTERN(midiin_slot); SLOT_INTERFACE_EXTERN(midiout_slot); -#endif +#endif // MAME_BUS_MIDI_MIDI_H diff --git a/src/devices/bus/midi/midiinport.cpp b/src/devices/bus/midi/midiinport.cpp index 4ad00742af1..cac476ac2f2 100644 --- a/src/devices/bus/midi/midiinport.cpp +++ b/src/devices/bus/midi/midiinport.cpp @@ -11,10 +11,10 @@ #include "emu.h" #include "midiinport.h" -const device_type MIDIIN_PORT = device_creator; +DEFINE_DEVICE_TYPE(MIDIIN_PORT, midiin_port_device, "midiin_port", "MIDI In port") midiin_port_device::midiin_port_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MIDIIN_PORT, "MIDI In port", tag, owner, clock, "midiin_port", __FILE__), + : device_t(mconfig, MIDIIN_PORT, tag, owner, clock), device_midi_port_interface(mconfig, *this), m_midiin(*this, "midiinimg") { diff --git a/src/devices/bus/midi/midiinport.h b/src/devices/bus/midi/midiinport.h index 0f69cb11620..daf3a5cfdb9 100644 --- a/src/devices/bus/midi/midiinport.h +++ b/src/devices/bus/midi/midiinport.h @@ -8,8 +8,10 @@ *********************************************************************/ -#ifndef _MIDIINPORT_H_ -#define _MIDIINPORT_H_ +#ifndef MAME_BUS_MIDI_MIDIINPORT_H +#define MAME_BUS_MIDI_MIDIINPORT_H + +#pragma once #include "midi.h" #include "imagedev/midiin.h" @@ -31,6 +33,6 @@ private: required_device m_midiin; }; -extern const device_type MIDIIN_PORT; +DECLARE_DEVICE_TYPE(MIDIIN_PORT, midiin_port_device) -#endif +#endif // MAME_BUS_MIDI_MIDIINPORT_H diff --git a/src/devices/bus/midi/midioutport.cpp b/src/devices/bus/midi/midioutport.cpp index f9a37ee486d..cf97bfbcb27 100644 --- a/src/devices/bus/midi/midioutport.cpp +++ b/src/devices/bus/midi/midioutport.cpp @@ -11,10 +11,10 @@ #include "emu.h" #include "midioutport.h" -const device_type MIDIOUT_PORT = device_creator; +DEFINE_DEVICE_TYPE(MIDIOUT_PORT, midiout_port_device, "midiout_port", "MIDI Out port") midiout_port_device::midiout_port_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MIDIOUT_PORT, "MIDI Out port", tag, owner, clock, "midiout_port", __FILE__), + : device_t(mconfig, MIDIOUT_PORT, tag, owner, clock), device_midi_port_interface(mconfig, *this), m_midiout(*this, "midioutimg") { diff --git a/src/devices/bus/midi/midioutport.h b/src/devices/bus/midi/midioutport.h index 8fca565f82d..bd594c48732 100644 --- a/src/devices/bus/midi/midioutport.h +++ b/src/devices/bus/midi/midioutport.h @@ -8,8 +8,10 @@ *********************************************************************/ -#ifndef _MIDIOUTPORT_H_ -#define _MIDIOUTPORT_H_ +#ifndef MAME_BUS_MIDI_MIDIOUTPORT_H +#define MAME_BUS_MIDI_MIDIOUTPORT_H + +#pragma once #include "midi.h" #include "imagedev/midiout.h" @@ -31,6 +33,6 @@ private: required_device m_midiout; }; -extern const device_type MIDIOUT_PORT; +DECLARE_DEVICE_TYPE(MIDIOUT_PORT, midiout_port_device) -#endif +#endif // MAME_BUS_MIDI_MIDIOUTPORT_H diff --git a/src/devices/bus/msx_cart/arc.cpp b/src/devices/bus/msx_cart/arc.cpp index b2e0395aadf..3504071ec4c 100644 --- a/src/devices/bus/msx_cart/arc.cpp +++ b/src/devices/bus/msx_cart/arc.cpp @@ -4,33 +4,33 @@ #include "arc.h" -const device_type MSX_CART_ARC = device_creator; +DEFINE_DEVICE_TYPE(MSX_CART_ARC, msx_cart_arc_device, "msx_cart_arc", "MSX Cartridge - Arc") -msx_cart_arc::msx_cart_arc(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MSX_CART_ARC, "MSX Cartridge - Arc", tag, owner, clock, "msx_cart_arc", __FILE__) +msx_cart_arc_device::msx_cart_arc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, MSX_CART_ARC, tag, owner, clock) , msx_cart_interface(mconfig, *this) , m_7f(0) { } -void msx_cart_arc::device_start() +void msx_cart_arc_device::device_start() { // Install IO read/write handlers address_space &space = machine().device("maincpu")->space(AS_IO); - space.install_write_handler(0x7f, 0x7f, write8_delegate(FUNC(msx_cart_arc::io_7f_w), this)); - space.install_read_handler(0x7f, 0x7f, read8_delegate(FUNC(msx_cart_arc::io_7f_r), this)); + space.install_write_handler(0x7f, 0x7f, write8_delegate(FUNC(msx_cart_arc_device::io_7f_w), this)); + space.install_read_handler(0x7f, 0x7f, read8_delegate(FUNC(msx_cart_arc_device::io_7f_r), this)); } -void msx_cart_arc::device_reset() +void msx_cart_arc_device::device_reset() { m_7f = 0; } -void msx_cart_arc::initialize_cartridge() +void msx_cart_arc_device::initialize_cartridge() { if (get_rom_size() != 0x8000) { @@ -39,7 +39,7 @@ void msx_cart_arc::initialize_cartridge() } -READ8_MEMBER(msx_cart_arc::read_cart) +READ8_MEMBER(msx_cart_arc_device::read_cart) { if (offset >= 0x4000 && offset < 0xc000) { @@ -49,7 +49,7 @@ READ8_MEMBER(msx_cart_arc::read_cart) } -WRITE8_MEMBER(msx_cart_arc::io_7f_w) +WRITE8_MEMBER(msx_cart_arc_device::io_7f_w) { if (data == 0x35) { @@ -58,7 +58,7 @@ WRITE8_MEMBER(msx_cart_arc::io_7f_w) } -READ8_MEMBER(msx_cart_arc::io_7f_r) +READ8_MEMBER(msx_cart_arc_device::io_7f_r) { return ((m_7f & 0x03) == 0x03) ? 0xda : 0xff; } diff --git a/src/devices/bus/msx_cart/arc.h b/src/devices/bus/msx_cart/arc.h index 748b225935d..308589961fd 100644 --- a/src/devices/bus/msx_cart/arc.h +++ b/src/devices/bus/msx_cart/arc.h @@ -1,23 +1,20 @@ // license:BSD-3-Clause // copyright-holders:Wilbert Pol -#ifndef __MSX_CART_ARC_H -#define __MSX_CART_ARC_H +#ifndef MAME_BUS_MSX_CART_ARC_H +#define MAME_BUS_MSX_CART_ARC_H + +#pragma once #include "bus/msx_cart/cartridge.h" -extern const device_type MSX_CART_ARC; +DECLARE_DEVICE_TYPE(MSX_CART_ARC, msx_cart_arc_device) -class msx_cart_arc : public device_t - , public msx_cart_interface +class msx_cart_arc_device : public device_t, public msx_cart_interface { public: - msx_cart_arc(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; + msx_cart_arc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual void initialize_cartridge() override; @@ -26,9 +23,13 @@ public: DECLARE_WRITE8_MEMBER(io_7f_w); DECLARE_READ8_MEMBER(io_7f_r); +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + private: uint8_t m_7f; }; - -#endif +#endif // MAME_BUS_MSX_CART_ARC_H diff --git a/src/devices/bus/msx_cart/ascii.cpp b/src/devices/bus/msx_cart/ascii.cpp index 9263ca01b72..c7598a8ccc0 100644 --- a/src/devices/bus/msx_cart/ascii.cpp +++ b/src/devices/bus/msx_cart/ascii.cpp @@ -4,15 +4,15 @@ #include "ascii.h" -const device_type MSX_CART_ASCII8 = device_creator; -const device_type MSX_CART_ASCII16 = device_creator; -const device_type MSX_CART_ASCII8_SRAM = device_creator; -const device_type MSX_CART_ASCII16_SRAM = device_creator; -const device_type MSX_CART_MSXWRITE = device_creator; +DEFINE_DEVICE_TYPE(MSX_CART_ASCII8, msx_cart_ascii8_device, "msx_cart_ascii8", "MSX Cartridge - ASCII8") +DEFINE_DEVICE_TYPE(MSX_CART_ASCII16, msx_cart_ascii16_device, "msx_cart_ascii16", "MSX Cartridge - ASCII16") +DEFINE_DEVICE_TYPE(MSX_CART_ASCII8_SRAM, msx_cart_ascii8_sram_device, "msx_cart_ascii8_sram", "MSX Cartridge - ASCII8 w/SRAM") +DEFINE_DEVICE_TYPE(MSX_CART_ASCII16_SRAM, msx_cart_ascii16_sram_device, "msx_cart_ascii16_sram", "MSX Cartridge - ASCII16 w/SRAM") +DEFINE_DEVICE_TYPE(MSX_CART_MSXWRITE, msx_cart_msxwrite_device, "msx_cart_msxwrite", "MSX Cartridge - MSXWRITE") -msx_cart_ascii8::msx_cart_ascii8(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MSX_CART_ASCII8, "MSX Cartridge - ASCII8", tag, owner, clock, "msx_cart_ascii8", __FILE__) +msx_cart_ascii8_device::msx_cart_ascii8_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, MSX_CART_ASCII8, tag, owner, clock) , msx_cart_interface(mconfig, *this) , m_bank_mask(0) { @@ -24,15 +24,15 @@ msx_cart_ascii8::msx_cart_ascii8(const machine_config &mconfig, const char *tag, } -void msx_cart_ascii8::device_start() +void msx_cart_ascii8_device::device_start() { save_item(NAME(m_selected_bank)); - machine().save().register_postload(save_prepost_delegate(FUNC(msx_cart_ascii8::restore_banks), this)); + machine().save().register_postload(save_prepost_delegate(FUNC(msx_cart_ascii8_device::restore_banks), this)); } -void msx_cart_ascii8::restore_banks() +void msx_cart_ascii8_device::restore_banks() { for (int i = 0; i < 4; i++) { @@ -41,7 +41,7 @@ void msx_cart_ascii8::restore_banks() } -void msx_cart_ascii8::device_reset() +void msx_cart_ascii8_device::device_reset() { for (auto & elem : m_selected_bank) { @@ -50,7 +50,7 @@ void msx_cart_ascii8::device_reset() } -void msx_cart_ascii8::initialize_cartridge() +void msx_cart_ascii8_device::initialize_cartridge() { uint32_t size = get_rom_size(); @@ -72,7 +72,7 @@ void msx_cart_ascii8::initialize_cartridge() } -READ8_MEMBER(msx_cart_ascii8::read_cart) +READ8_MEMBER(msx_cart_ascii8_device::read_cart) { if ( offset >= 0x4000 && offset < 0xC000 ) { @@ -82,7 +82,7 @@ READ8_MEMBER(msx_cart_ascii8::read_cart) } -WRITE8_MEMBER(msx_cart_ascii8::write_cart) +WRITE8_MEMBER(msx_cart_ascii8_device::write_cart) { if (offset >= 0x6000 && offset < 0x8000) { @@ -95,8 +95,8 @@ WRITE8_MEMBER(msx_cart_ascii8::write_cart) -msx_cart_ascii16::msx_cart_ascii16(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MSX_CART_ASCII16, "MSX Cartridge - ASCII16", tag, owner, clock, "msx_cart_ascii16", __FILE__) +msx_cart_ascii16_device::msx_cart_ascii16_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, MSX_CART_ASCII16, tag, owner, clock) , msx_cart_interface(mconfig, *this) , m_bank_mask(0) { @@ -108,15 +108,15 @@ msx_cart_ascii16::msx_cart_ascii16(const machine_config &mconfig, const char *ta } -void msx_cart_ascii16::device_start() +void msx_cart_ascii16_device::device_start() { save_item(NAME(m_selected_bank)); - machine().save().register_postload(save_prepost_delegate(FUNC(msx_cart_ascii16::restore_banks), this)); + machine().save().register_postload(save_prepost_delegate(FUNC(msx_cart_ascii16_device::restore_banks), this)); } -void msx_cart_ascii16::restore_banks() +void msx_cart_ascii16_device::restore_banks() { for (int i = 0; i < 2; i++) { @@ -125,7 +125,7 @@ void msx_cart_ascii16::restore_banks() } -void msx_cart_ascii16::device_reset() +void msx_cart_ascii16_device::device_reset() { for (auto & elem : m_selected_bank) { @@ -134,7 +134,7 @@ void msx_cart_ascii16::device_reset() } -void msx_cart_ascii16::initialize_cartridge() +void msx_cart_ascii16_device::initialize_cartridge() { uint32_t size = get_rom_size(); @@ -156,7 +156,7 @@ void msx_cart_ascii16::initialize_cartridge() } -READ8_MEMBER(msx_cart_ascii16::read_cart) +READ8_MEMBER(msx_cart_ascii16_device::read_cart) { if ( offset >= 0x4000 && offset < 0xC000 ) { @@ -166,7 +166,7 @@ READ8_MEMBER(msx_cart_ascii16::read_cart) } -WRITE8_MEMBER(msx_cart_ascii16::write_cart) +WRITE8_MEMBER(msx_cart_ascii16_device::write_cart) { if (offset >= 0x6000 && offset < 0x6800) { @@ -185,8 +185,8 @@ WRITE8_MEMBER(msx_cart_ascii16::write_cart) -msx_cart_ascii8_sram::msx_cart_ascii8_sram(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MSX_CART_ASCII8_SRAM, "MSX Cartridge - ASCII8 w/SRAM", tag, owner, clock, "msx_cart_ascii8_sram", __FILE__) +msx_cart_ascii8_sram_device::msx_cart_ascii8_sram_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, MSX_CART_ASCII8_SRAM, tag, owner, clock) , msx_cart_interface(mconfig, *this) , m_bank_mask(0) , m_sram_select_mask(0) @@ -199,15 +199,15 @@ msx_cart_ascii8_sram::msx_cart_ascii8_sram(const machine_config &mconfig, const } -void msx_cart_ascii8_sram::device_start() +void msx_cart_ascii8_sram_device::device_start() { save_item(NAME(m_selected_bank)); - machine().save().register_postload(save_prepost_delegate(FUNC(msx_cart_ascii8_sram::restore_banks), this)); + machine().save().register_postload(save_prepost_delegate(FUNC(msx_cart_ascii8_sram_device::restore_banks), this)); } -void msx_cart_ascii8_sram::setup_bank(uint8_t bank) +void msx_cart_ascii8_sram_device::setup_bank(uint8_t bank) { if (m_selected_bank[bank] & ~(m_sram_select_mask | m_bank_mask)) { @@ -226,7 +226,7 @@ void msx_cart_ascii8_sram::setup_bank(uint8_t bank) } -void msx_cart_ascii8_sram::restore_banks() +void msx_cart_ascii8_sram_device::restore_banks() { for (int i = 0; i < 4; i++) { @@ -235,7 +235,7 @@ void msx_cart_ascii8_sram::restore_banks() } -void msx_cart_ascii8_sram::device_reset() +void msx_cart_ascii8_sram_device::device_reset() { for (auto & elem : m_selected_bank) { @@ -244,7 +244,7 @@ void msx_cart_ascii8_sram::device_reset() } -void msx_cart_ascii8_sram::initialize_cartridge() +void msx_cart_ascii8_sram_device::initialize_cartridge() { uint32_t size = get_rom_size(); @@ -272,7 +272,7 @@ void msx_cart_ascii8_sram::initialize_cartridge() } -READ8_MEMBER(msx_cart_ascii8_sram::read_cart) +READ8_MEMBER(msx_cart_ascii8_sram_device::read_cart) { if ( offset >= 0x4000 && offset < 0xC000 ) { @@ -287,7 +287,7 @@ READ8_MEMBER(msx_cart_ascii8_sram::read_cart) } -WRITE8_MEMBER(msx_cart_ascii8_sram::write_cart) +WRITE8_MEMBER(msx_cart_ascii8_sram_device::write_cart) { if (offset >= 0x6000 && offset < 0x8000) { @@ -310,8 +310,8 @@ WRITE8_MEMBER(msx_cart_ascii8_sram::write_cart) -msx_cart_ascii16_sram::msx_cart_ascii16_sram(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MSX_CART_ASCII16_SRAM, "MSX Cartridge - ASCII16 w/SRAM", tag, owner, clock, "msx_cart_ascii16_sram", __FILE__) +msx_cart_ascii16_sram_device::msx_cart_ascii16_sram_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, MSX_CART_ASCII16_SRAM, tag, owner, clock) , msx_cart_interface(mconfig, *this) , m_bank_mask(0) , m_sram_select_mask(0) @@ -324,15 +324,15 @@ msx_cart_ascii16_sram::msx_cart_ascii16_sram(const machine_config &mconfig, cons } -void msx_cart_ascii16_sram::device_start() +void msx_cart_ascii16_sram_device::device_start() { save_item(NAME(m_selected_bank)); - machine().save().register_postload(save_prepost_delegate(FUNC(msx_cart_ascii16_sram::restore_banks), this)); + machine().save().register_postload(save_prepost_delegate(FUNC(msx_cart_ascii16_sram_device::restore_banks), this)); } -void msx_cart_ascii16_sram::setup_bank(uint8_t bank) +void msx_cart_ascii16_sram_device::setup_bank(uint8_t bank) { if (m_selected_bank[bank] & ~(m_sram_select_mask | m_bank_mask)) { @@ -351,7 +351,7 @@ void msx_cart_ascii16_sram::setup_bank(uint8_t bank) } -void msx_cart_ascii16_sram::restore_banks() +void msx_cart_ascii16_sram_device::restore_banks() { for (int i = 0; i < 2; i++) { @@ -360,7 +360,7 @@ void msx_cart_ascii16_sram::restore_banks() } -void msx_cart_ascii16_sram::device_reset() +void msx_cart_ascii16_sram_device::device_reset() { for (auto & elem : m_selected_bank) { @@ -369,7 +369,7 @@ void msx_cart_ascii16_sram::device_reset() } -void msx_cart_ascii16_sram::initialize_cartridge() +void msx_cart_ascii16_sram_device::initialize_cartridge() { uint32_t size = get_rom_size(); @@ -397,7 +397,7 @@ void msx_cart_ascii16_sram::initialize_cartridge() } -READ8_MEMBER(msx_cart_ascii16_sram::read_cart) +READ8_MEMBER(msx_cart_ascii16_sram_device::read_cart) { if ( offset >= 0x4000 && offset < 0xC000 ) { @@ -419,7 +419,7 @@ READ8_MEMBER(msx_cart_ascii16_sram::read_cart) } -WRITE8_MEMBER(msx_cart_ascii16_sram::write_cart) +WRITE8_MEMBER(msx_cart_ascii16_sram_device::write_cart) { if (offset >= 0x6000 && offset < 0x6800) { @@ -445,8 +445,8 @@ WRITE8_MEMBER(msx_cart_ascii16_sram::write_cart) -msx_cart_msxwrite::msx_cart_msxwrite(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MSX_CART_MSXWRITE, "MSX Cartridge - MSXWRITE", tag, owner, clock, "msx_cart_msxwrite", __FILE__) +msx_cart_msxwrite_device::msx_cart_msxwrite_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, MSX_CART_MSXWRITE, tag, owner, clock) , msx_cart_interface(mconfig, *this) , m_bank_mask(0) { @@ -458,15 +458,15 @@ msx_cart_msxwrite::msx_cart_msxwrite(const machine_config &mconfig, const char * } -void msx_cart_msxwrite::device_start() +void msx_cart_msxwrite_device::device_start() { save_item(NAME(m_selected_bank)); - machine().save().register_postload(save_prepost_delegate(FUNC(msx_cart_msxwrite::restore_banks), this)); + machine().save().register_postload(save_prepost_delegate(FUNC(msx_cart_msxwrite_device::restore_banks), this)); } -void msx_cart_msxwrite::restore_banks() +void msx_cart_msxwrite_device::restore_banks() { for (int i = 0; i < 2; i++) { @@ -475,7 +475,7 @@ void msx_cart_msxwrite::restore_banks() } -void msx_cart_msxwrite::device_reset() +void msx_cart_msxwrite_device::device_reset() { for (auto & elem : m_selected_bank) { @@ -484,7 +484,7 @@ void msx_cart_msxwrite::device_reset() } -void msx_cart_msxwrite::initialize_cartridge() +void msx_cart_msxwrite_device::initialize_cartridge() { uint32_t size = get_rom_size(); @@ -506,7 +506,7 @@ void msx_cart_msxwrite::initialize_cartridge() } -READ8_MEMBER(msx_cart_msxwrite::read_cart) +READ8_MEMBER(msx_cart_msxwrite_device::read_cart) { if ( offset >= 0x4000 && offset < 0xC000 ) { @@ -516,7 +516,7 @@ READ8_MEMBER(msx_cart_msxwrite::read_cart) } -WRITE8_MEMBER(msx_cart_msxwrite::write_cart) +WRITE8_MEMBER(msx_cart_msxwrite_device::write_cart) { // The rom writes to 6fff and 7fff for banking, unknown whether // other locations also trigger banking. diff --git a/src/devices/bus/msx_cart/ascii.h b/src/devices/bus/msx_cart/ascii.h index 926560d1bea..2df178dc31d 100644 --- a/src/devices/bus/msx_cart/ascii.h +++ b/src/devices/bus/msx_cart/ascii.h @@ -1,33 +1,35 @@ // license:BSD-3-Clause // copyright-holders:Wilbert Pol -#ifndef __MSX_CART_ASCII_H -#define __MSX_CART_ASCII_H +#ifndef MAME_BUS_MSX_CART_ASCII_H +#define MAME_BUS_MSX_CART_ASCII_H + +#pragma once #include "bus/msx_cart/cartridge.h" -extern const device_type MSX_CART_ASCII8; -extern const device_type MSX_CART_ASCII16; -extern const device_type MSX_CART_ASCII8_SRAM; -extern const device_type MSX_CART_ASCII16_SRAM; -extern const device_type MSX_CART_MSXWRITE; +DECLARE_DEVICE_TYPE(MSX_CART_ASCII8, msx_cart_ascii8_device) +DECLARE_DEVICE_TYPE(MSX_CART_ASCII16, msx_cart_ascii16_device) +DECLARE_DEVICE_TYPE(MSX_CART_ASCII8_SRAM, msx_cart_ascii8_sram_device) +DECLARE_DEVICE_TYPE(MSX_CART_ASCII16_SRAM, msx_cart_ascii16_sram_device) +DECLARE_DEVICE_TYPE(MSX_CART_MSXWRITE, msx_cart_msxwrite_device) -class msx_cart_ascii8 : public device_t - , public msx_cart_interface +class msx_cart_ascii8_device : public device_t, public msx_cart_interface { public: - msx_cart_ascii8(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; + msx_cart_ascii8_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual void initialize_cartridge() override; virtual DECLARE_READ8_MEMBER(read_cart) override; virtual DECLARE_WRITE8_MEMBER(write_cart) override; +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + void restore_banks(); private: @@ -37,21 +39,21 @@ private: }; -class msx_cart_ascii16 : public device_t - , public msx_cart_interface +class msx_cart_ascii16_device : public device_t, public msx_cart_interface { public: - msx_cart_ascii16(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; + msx_cart_ascii16_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual void initialize_cartridge() override; virtual DECLARE_READ8_MEMBER(read_cart) override; virtual DECLARE_WRITE8_MEMBER(write_cart) override; +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + void restore_banks(); private: @@ -61,21 +63,21 @@ private: }; -class msx_cart_ascii8_sram : public device_t - , public msx_cart_interface +class msx_cart_ascii8_sram_device : public device_t, public msx_cart_interface { public: - msx_cart_ascii8_sram(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; + msx_cart_ascii8_sram_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual void initialize_cartridge() override; virtual DECLARE_READ8_MEMBER(read_cart) override; virtual DECLARE_WRITE8_MEMBER(write_cart) override; +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + void restore_banks(); private: @@ -88,21 +90,21 @@ private: }; -class msx_cart_ascii16_sram : public device_t - , public msx_cart_interface +class msx_cart_ascii16_sram_device : public device_t, public msx_cart_interface { public: - msx_cart_ascii16_sram(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; + msx_cart_ascii16_sram_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual void initialize_cartridge() override; virtual DECLARE_READ8_MEMBER(read_cart) override; virtual DECLARE_WRITE8_MEMBER(write_cart) override; +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + void restore_banks(); private: @@ -115,21 +117,21 @@ private: }; -class msx_cart_msxwrite : public device_t - , public msx_cart_interface +class msx_cart_msxwrite_device : public device_t, public msx_cart_interface { public: - msx_cart_msxwrite(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; + msx_cart_msxwrite_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual void initialize_cartridge() override; virtual DECLARE_READ8_MEMBER(read_cart) override; virtual DECLARE_WRITE8_MEMBER(write_cart) override; +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + void restore_banks(); private: @@ -138,4 +140,4 @@ private: uint8_t *m_bank_base[2]; }; -#endif +#endif // MAME_BUS_MSX_CART_ASCII_H diff --git a/src/devices/bus/msx_cart/bm_012.cpp b/src/devices/bus/msx_cart/bm_012.cpp index 77ddcd71a06..e6f56a7b40a 100644 --- a/src/devices/bus/msx_cart/bm_012.cpp +++ b/src/devices/bus/msx_cart/bm_012.cpp @@ -19,11 +19,11 @@ TODO: #include "cpu/z80/z80.h" -const device_type MSX_CART_BM_012 = device_creator; +DEFINE_DEVICE_TYPE(MSX_CART_BM_012, msx_cart_bm_012_device, "msx_cart_bm_012", "MSX Cartridge - BM-012") -msx_cart_bm_012::msx_cart_bm_012(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MSX_CART_BM_012, "MSX Cartridge - BM-012", tag, owner, clock, "msx_cart_bm_012", __FILE__) +msx_cart_bm_012_device::msx_cart_bm_012_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, MSX_CART_BM_012, tag, owner, clock) , msx_cart_interface(mconfig, *this) , m_tmpz84c015af(*this, "tmpz84c015af") , m_bm012_pio(*this, "bm012_pio") @@ -32,7 +32,7 @@ msx_cart_bm_012::msx_cart_bm_012(const machine_config &mconfig, const char *tag, } -static ADDRESS_MAP_START( bm_012_memory_map, AS_PROGRAM, 8, msx_cart_bm_012 ) +static ADDRESS_MAP_START( bm_012_memory_map, AS_PROGRAM, 8, msx_cart_bm_012_device ) AM_RANGE(0x0000, 0x7fff) AM_ROM AM_RANGE(0xe000, 0xffff) AM_RAM ADDRESS_MAP_END @@ -69,7 +69,7 @@ static MACHINE_CONFIG_FRAGMENT( msx_cart_bm_012 ) // MIDI ports MCFG_MIDI_PORT_ADD("mdin", midiin_slot, "midiin") - MCFG_MIDI_RX_HANDLER(WRITELINE(msx_cart_bm_012, midi_in)) + MCFG_MIDI_RX_HANDLER(WRITELINE(msx_cart_bm_012_device, midi_in)) MCFG_MIDI_PORT_ADD("mdthru", midiout_slot, "midiout") @@ -77,7 +77,7 @@ static MACHINE_CONFIG_FRAGMENT( msx_cart_bm_012 ) MACHINE_CONFIG_END -machine_config_constructor msx_cart_bm_012::device_mconfig_additions() const +machine_config_constructor msx_cart_bm_012_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( msx_cart_bm_012 ); } @@ -90,13 +90,13 @@ ROM_START( msx_cart_bm_012 ) ROM_END -const tiny_rom_entry *msx_cart_bm_012::device_rom_region() const +const tiny_rom_entry *msx_cart_bm_012_device::device_rom_region() const { return ROM_NAME( msx_cart_bm_012 ); } -void msx_cart_bm_012::device_start() +void msx_cart_bm_012_device::device_start() { // Install IO read/write handlers address_space &space = machine().device("maincpu")->space(AS_IO); @@ -105,7 +105,7 @@ void msx_cart_bm_012::device_start() } -WRITE_LINE_MEMBER(msx_cart_bm_012::midi_in) +WRITE_LINE_MEMBER(msx_cart_bm_012_device::midi_in) { m_mdthru->write_txd(state); m_tmpz84c015af->rxb_w(state); diff --git a/src/devices/bus/msx_cart/bm_012.h b/src/devices/bus/msx_cart/bm_012.h index 4c526f3ac49..3b8ed797622 100644 --- a/src/devices/bus/msx_cart/bm_012.h +++ b/src/devices/bus/msx_cart/bm_012.h @@ -1,29 +1,32 @@ // license:BSD-3-Clause // copyright-holders:Wilbert Pol -#ifndef __MSX_CART_BM_012_H -#define __MSX_CART_BM_012_H +#ifndef MAME_BUS_MSX_CART_BM_012_H +#define MAME_BUS_MSX_CART_BM_012_H + +#pragma once #include "bus/msx_cart/cartridge.h" #include "cpu/z80/tmpz84c015.h" #include "bus/midi/midi.h" -extern const device_type MSX_CART_BM_012; +DECLARE_DEVICE_TYPE(MSX_CART_BM_012, msx_cart_bm_012_device) -class msx_cart_bm_012 : public device_t - , public msx_cart_interface +class msx_cart_bm_012_device : public device_t, public msx_cart_interface { public: - msx_cart_bm_012(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + msx_cart_bm_012_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // device-level overrides virtual machine_config_constructor device_mconfig_additions() const override; virtual const tiny_rom_entry *device_rom_region() const override; - virtual void device_start() override; DECLARE_WRITE_LINE_MEMBER(midi_in); +protected: + virtual void device_start() override; + private: required_device m_tmpz84c015af; required_device m_bm012_pio; @@ -31,4 +34,4 @@ private: }; -#endif +#endif // MAME_BUS_MSX_CART_BM_012_H diff --git a/src/devices/bus/msx_cart/cartridge.h b/src/devices/bus/msx_cart/cartridge.h index 5025f6cfa2b..c80f2949732 100644 --- a/src/devices/bus/msx_cart/cartridge.h +++ b/src/devices/bus/msx_cart/cartridge.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Wilbert Pol -#ifndef __MSX_CART_CARTRIDGE_H -#define __MSX_CART_CARTRIDGE_H +#ifndef MAME_BUS_MSX_CART_CARTRIDGE_H +#define MAME_BUS_MSX_CART_CARTRIDGE_H + +#pragma once SLOT_INTERFACE_EXTERN(msx_cart); @@ -11,18 +13,16 @@ SLOT_INTERFACE_EXTERN(msx_yamaha_60pin); // 60 pin expansion slots as found in class msx_cart_interface : public device_slot_card_interface { public: - msx_cart_interface(const machine_config &mconfig, device_t &device); - - template void set_out_irq_cb(_Object object) { m_out_irq_cb.set_callback(object); m_out_irq_cb.resolve_safe(); } + template void set_out_irq_cb(Object &&cb) { m_out_irq_cb.set_callback(std::forward(cb)); } // This is called after loading cartridge contents and allows the cartridge // implementation to perform some additional initialization based on the // cartridge contents. - virtual void initialize_cartridge() {} + virtual void initialize_cartridge() { } // reading and writing virtual DECLARE_READ8_MEMBER(read_cart) { return 0xff; } - virtual DECLARE_WRITE8_MEMBER(write_cart) {} + virtual DECLARE_WRITE8_MEMBER(write_cart) { } // ROM/RAM/SRAM management // Mainly used by the cartridge slot when loading images @@ -41,6 +41,10 @@ public: uint32_t get_sram_size() { return m_sram.size(); } protected: + msx_cart_interface(const machine_config &mconfig, device_t &device); + + virtual void interface_pre_start() override { m_out_irq_cb.resolve_safe(); } + std::vector m_rom; std::vector m_ram; std::vector m_rom_vlm5030; @@ -49,4 +53,4 @@ protected: }; -#endif +#endif // MAME_BUS_MSX_CART_CARTRIDGE_H diff --git a/src/devices/bus/msx_cart/crossblaim.cpp b/src/devices/bus/msx_cart/crossblaim.cpp index 97e875c5432..dfd7907ac46 100644 --- a/src/devices/bus/msx_cart/crossblaim.cpp +++ b/src/devices/bus/msx_cart/crossblaim.cpp @@ -3,11 +3,11 @@ #include "emu.h" #include "crossblaim.h" -const device_type MSX_CART_CROSSBLAIM = device_creator; +DEFINE_DEVICE_TYPE(MSX_CART_CROSSBLAIM, msx_cart_crossblaim_device, "msx_cart_crossblaim", "MSX Cartridge Cross Blaim") -msx_cart_crossblaim::msx_cart_crossblaim(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MSX_CART_CROSSBLAIM, "MSX Cartridge - Cross Blaim", tag, owner, clock, "msx_cart_crossblaim", __FILE__) +msx_cart_crossblaim_device::msx_cart_crossblaim_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, MSX_CART_CROSSBLAIM, tag, owner, clock) , msx_cart_interface(mconfig, *this) , m_selected_bank(1) { @@ -18,15 +18,15 @@ msx_cart_crossblaim::msx_cart_crossblaim(const machine_config &mconfig, const ch } -void msx_cart_crossblaim::device_start() +void msx_cart_crossblaim_device::device_start() { save_item(NAME(m_selected_bank)); - machine().save().register_postload(save_prepost_delegate(FUNC(msx_cart_crossblaim::restore_banks), this)); + machine().save().register_postload(save_prepost_delegate(FUNC(msx_cart_crossblaim_device::restore_banks), this)); } -void msx_cart_crossblaim::setup_bank() +void msx_cart_crossblaim_device::setup_bank() { m_bank_base[0] = ( m_selected_bank & 2 ) ? nullptr : get_rom_base() + ( m_selected_bank & 0x03 ) * 0x4000; m_bank_base[2] = get_rom_base() + ( m_selected_bank & 0x03 ) * 0x4000; @@ -34,20 +34,20 @@ void msx_cart_crossblaim::setup_bank() } -void msx_cart_crossblaim::restore_banks() +void msx_cart_crossblaim_device::restore_banks() { m_bank_base[1] = get_rom_base(); setup_bank(); } -void msx_cart_crossblaim::device_reset() +void msx_cart_crossblaim_device::device_reset() { m_selected_bank = 1; } -void msx_cart_crossblaim::initialize_cartridge() +void msx_cart_crossblaim_device::initialize_cartridge() { if (get_rom_size() != 0x10000) { @@ -58,7 +58,7 @@ void msx_cart_crossblaim::initialize_cartridge() } -READ8_MEMBER(msx_cart_crossblaim::read_cart) +READ8_MEMBER(msx_cart_crossblaim_device::read_cart) { uint8_t *bank_base = m_bank_base[offset >> 14]; @@ -71,7 +71,7 @@ READ8_MEMBER(msx_cart_crossblaim::read_cart) } -WRITE8_MEMBER(msx_cart_crossblaim::write_cart) +WRITE8_MEMBER(msx_cart_crossblaim_device::write_cart) { m_selected_bank = data & 3; if (m_selected_bank == 0) diff --git a/src/devices/bus/msx_cart/crossblaim.h b/src/devices/bus/msx_cart/crossblaim.h index 8ee0a0ad6a7..a1321dd06df 100644 --- a/src/devices/bus/msx_cart/crossblaim.h +++ b/src/devices/bus/msx_cart/crossblaim.h @@ -1,29 +1,31 @@ // license:BSD-3-Clause // copyright-holders:Wilbert Pol -#ifndef __MSX_CART_CROSSBLAIM_H -#define __MSX_CART_CROSSBLAIM_H +#ifndef MAME_BUS_MSX_CART_CROSSBLAIM_H +#define MAME_BUS_MSX_CART_CROSSBLAIM_H + +#pragma once #include "bus/msx_cart/cartridge.h" -extern const device_type MSX_CART_CROSSBLAIM; +DECLARE_DEVICE_TYPE(MSX_CART_CROSSBLAIM, msx_cart_crossblaim_device) -class msx_cart_crossblaim : public device_t - , public msx_cart_interface +class msx_cart_crossblaim_device : public device_t, public msx_cart_interface { public: - msx_cart_crossblaim(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; + msx_cart_crossblaim_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual void initialize_cartridge() override; virtual DECLARE_READ8_MEMBER(read_cart) override; virtual DECLARE_WRITE8_MEMBER(write_cart) override; +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + void restore_banks(); private: @@ -34,4 +36,4 @@ private: }; -#endif +#endif // MAME_BUS_MSX_CART_CROSSBLAIM_H diff --git a/src/devices/bus/msx_cart/disk.cpp b/src/devices/bus/msx_cart/disk.cpp index 2355f8959ca..79313b49012 100644 --- a/src/devices/bus/msx_cart/disk.cpp +++ b/src/devices/bus/msx_cart/disk.cpp @@ -105,13 +105,13 @@ #include "formats/msx_dsk.h" #include "softlist.h" -const device_type MSX_CART_VY0010 = device_creator; -const device_type MSX_CART_FSFD1 = device_creator; -const device_type MSX_CART_FSFD1A = device_creator; -const device_type MSX_CART_FSCF351 = device_creator; +DEFINE_DEVICE_TYPE(MSX_CART_VY0010, msx_cart_vy0010_device, "msx_cart_vy0010", "MSX Cartridge - VY0010") +DEFINE_DEVICE_TYPE(MSX_CART_FSFD1, msx_cart_fsfd1_device, "msx_cart_fsfd1", "MSX Cartridge - FS-FD1") +DEFINE_DEVICE_TYPE(MSX_CART_FSFD1A, msx_cart_fsfd1a_device, "msx_cart_fsfd1a", "MSX Cartridge - FS-FD1A") +DEFINE_DEVICE_TYPE(MSX_CART_FSCF351, msx_cart_fscf351_device, "msx_cart_fscf351", "MSX Cartridge - FS-CF351") -FLOPPY_FORMATS_MEMBER( msx_cart_disk::floppy_formats ) +FLOPPY_FORMATS_MEMBER( msx_cart_disk_device::floppy_formats ) FLOPPY_MSX_FORMAT FLOPPY_FORMATS_END @@ -122,8 +122,8 @@ static SLOT_INTERFACE_START( msx_floppies ) SLOT_INTERFACE_END -msx_cart_disk::msx_cart_disk(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname) - : device_t(mconfig, type, name, tag, owner, clock, shortname, __FILE__) +msx_cart_disk_device::msx_cart_disk_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) , msx_cart_interface(mconfig, *this) , m_floppy0(*this, "fdc:0") , m_floppy1(*this, "fdc:1") @@ -132,63 +132,64 @@ msx_cart_disk::msx_cart_disk(const machine_config &mconfig, device_type type, co } -msx_cart_disk_wd::msx_cart_disk_wd(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname) - : msx_cart_disk(mconfig, type, name, tag, owner, clock, shortname) +msx_cart_disk_wd_device::msx_cart_disk_wd_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : msx_cart_disk_device(mconfig, type, tag, owner, clock) , m_fdc(*this, "fdc") { } -msx_cart_disk_type1::msx_cart_disk_type1(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname) - : msx_cart_disk_wd(mconfig, type, name, tag, owner, clock, shortname), m_side_control(0) - , m_control(0) +msx_cart_disk_type1_device::msx_cart_disk_type1_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : msx_cart_disk_wd_device(mconfig, type, tag, owner, clock) + , m_side_control(0) + , m_control(0) { } -msx_cart_disk_type2::msx_cart_disk_type2(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname) - : msx_cart_disk_wd(mconfig, type, name, tag, owner, clock, shortname) +msx_cart_disk_type2_device::msx_cart_disk_type2_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : msx_cart_disk_wd_device(mconfig, type, tag, owner, clock) , m_control(0) { } -msx_cart_vy0010::msx_cart_vy0010(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : msx_cart_disk_type1(mconfig, MSX_CART_VY0010, "MSX Cartridge - VY0010", tag, owner, clock, "msx_cart_vy0010") +msx_cart_vy0010_device::msx_cart_vy0010_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : msx_cart_disk_type1_device(mconfig, MSX_CART_VY0010, tag, owner, clock) { } -msx_cart_fsfd1::msx_cart_fsfd1(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : msx_cart_disk_type1(mconfig, MSX_CART_FSFD1, "MSX Cartridge - FS-FD1", tag, owner, clock, "msx_cart_fsfd1") +msx_cart_fsfd1_device::msx_cart_fsfd1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : msx_cart_disk_type1_device(mconfig, MSX_CART_FSFD1, tag, owner, clock) { } -msx_cart_fscf351::msx_cart_fscf351(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : msx_cart_disk_type2(mconfig, MSX_CART_FSCF351, "MSX Cartridge - FS-CF351", tag, owner, clock, "msx_cart_fscf351") +msx_cart_fscf351_device::msx_cart_fscf351_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : msx_cart_disk_type2_device(mconfig, MSX_CART_FSCF351, tag, owner, clock) { } -msx_cart_disk_tc8566::msx_cart_disk_tc8566(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname) - : msx_cart_disk(mconfig, type, name, tag, owner, clock, shortname) +msx_cart_disk_tc8566_device::msx_cart_disk_tc8566_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : msx_cart_disk_device(mconfig, type, tag, owner, clock) , m_fdc(*this, "fdc") { } -msx_cart_fsfd1a::msx_cart_fsfd1a(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : msx_cart_disk_tc8566(mconfig, MSX_CART_FSFD1A, "MSX Cartridge - FS-FD1A", tag, owner, clock, "msx_cart_fsfd1a") +msx_cart_fsfd1a_device::msx_cart_fsfd1a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : msx_cart_disk_tc8566_device(mconfig, MSX_CART_FSFD1A, tag, owner, clock) { } -void msx_cart_disk::initialize_cartridge() +void msx_cart_disk_device::initialize_cartridge() { if ( get_rom_size() != 0x4000 ) { - fatalerror("msx_cart_disk: Invalid ROM size\n"); + fatalerror("msx_cart_disk_device: Invalid ROM size\n"); } } @@ -202,7 +203,7 @@ static MACHINE_CONFIG_FRAGMENT( vy0010 ) MCFG_WD_FDC_FORCE_READY // Single sided 3.5" floppy drive - MCFG_FLOPPY_DRIVE_ADD("fdc:0", msx_floppies, "35ssdd", msx_cart_disk::floppy_formats) + MCFG_FLOPPY_DRIVE_ADD("fdc:0", msx_floppies, "35ssdd", msx_cart_disk_device::floppy_formats) // Attach software lists // We do not know in what kind of machine the user has inserted the floppy interface @@ -213,7 +214,7 @@ static MACHINE_CONFIG_FRAGMENT( vy0010 ) MACHINE_CONFIG_END -machine_config_constructor msx_cart_vy0010::device_mconfig_additions() const +machine_config_constructor msx_cart_vy0010_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( vy0010 ); } @@ -223,7 +224,7 @@ static MACHINE_CONFIG_FRAGMENT( fsfd1 ) MCFG_WD2793_ADD("fdc", XTAL_4MHz / 4) // Double sided 3.5" floppy drive - MCFG_FLOPPY_DRIVE_ADD("fdc:0", msx_floppies, "35dd", msx_cart_disk::floppy_formats) + MCFG_FLOPPY_DRIVE_ADD("fdc:0", msx_floppies, "35dd", msx_cart_disk_device::floppy_formats) // Attach software lists // We do not know in what kind of machine the user has inserted the floppy interface @@ -234,7 +235,7 @@ static MACHINE_CONFIG_FRAGMENT( fsfd1 ) MACHINE_CONFIG_END -machine_config_constructor msx_cart_fsfd1::device_mconfig_additions() const +machine_config_constructor msx_cart_fsfd1_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( fsfd1 ); } @@ -244,7 +245,7 @@ static MACHINE_CONFIG_FRAGMENT( fsfd1a ) MCFG_TC8566AF_ADD("fdc") // Double sided 3.5" floppy drive - MCFG_FLOPPY_DRIVE_ADD("fdc:0", msx_floppies, "35dd", msx_cart_disk::floppy_formats) + MCFG_FLOPPY_DRIVE_ADD("fdc:0", msx_floppies, "35dd", msx_cart_disk_device::floppy_formats) // Attach software lists // We do not know in what kind of machine the user has inserted the floppy interface @@ -255,7 +256,7 @@ static MACHINE_CONFIG_FRAGMENT( fsfd1a ) MACHINE_CONFIG_END -machine_config_constructor msx_cart_fsfd1a::device_mconfig_additions() const +machine_config_constructor msx_cart_fsfd1a_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( fsfd1a ); } @@ -266,7 +267,7 @@ static MACHINE_CONFIG_FRAGMENT( fscf351 ) MCFG_WD_FDC_FORCE_READY // Double sided 3.5" floppy drive - MCFG_FLOPPY_DRIVE_ADD("fdc:0", msx_floppies, "35dd", msx_cart_disk::floppy_formats) + MCFG_FLOPPY_DRIVE_ADD("fdc:0", msx_floppies, "35dd", msx_cart_disk_device::floppy_formats) // Attach software lists // We do not know in what kind of machine the user has inserted the floppy interface @@ -277,22 +278,22 @@ static MACHINE_CONFIG_FRAGMENT( fscf351 ) MACHINE_CONFIG_END -machine_config_constructor msx_cart_fscf351::device_mconfig_additions() const +machine_config_constructor msx_cart_fscf351_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( fscf351 ); } -void msx_cart_disk_type1::device_start() +void msx_cart_disk_type1_device::device_start() { save_item(NAME(m_side_control)); save_item(NAME(m_control)); - machine().save().register_postload(save_prepost_delegate(FUNC(msx_cart_disk_type1::post_load), this)); + machine().save().register_postload(save_prepost_delegate(FUNC(msx_cart_disk_type1_device::post_load), this)); } -void msx_cart_disk_type1::post_load() +void msx_cart_disk_type1_device::post_load() { uint8_t data = m_control; @@ -303,7 +304,7 @@ void msx_cart_disk_type1::post_load() } -void msx_cart_disk_type1::set_control(uint8_t data) +void msx_cart_disk_type1_device::set_control(uint8_t data) { uint8_t old_m_control = m_control; @@ -340,7 +341,7 @@ void msx_cart_disk_type1::set_control(uint8_t data) } -void msx_cart_disk_type1::set_side_control(uint8_t data) +void msx_cart_disk_type1_device::set_side_control(uint8_t data) { m_side_control = data; @@ -351,13 +352,13 @@ void msx_cart_disk_type1::set_side_control(uint8_t data) } -void msx_cart_disk_type1::device_reset() +void msx_cart_disk_type1_device::device_reset() { m_fdc->dden_w(false); } -READ8_MEMBER(msx_cart_disk_type1::read_cart) +READ8_MEMBER(msx_cart_disk_type1_device::read_cart) { switch (offset) { @@ -398,7 +399,7 @@ READ8_MEMBER(msx_cart_disk_type1::read_cart) } -WRITE8_MEMBER(msx_cart_disk_type1::write_cart) +WRITE8_MEMBER(msx_cart_disk_type1_device::write_cart) { switch (offset) { @@ -433,27 +434,27 @@ WRITE8_MEMBER(msx_cart_disk_type1::write_cart) break; default: - logerror("msx_cart_disk_type1::write_cart: Unmapped write writing %02x to %04x\n", data, offset); + logerror("msx_cart_disk_type1_device::write_cart: Unmapped write writing %02x to %04x\n", data, offset); break; } } -void msx_cart_disk_type2::device_start() +void msx_cart_disk_type2_device::device_start() { save_item(NAME(m_control)); - machine().save().register_postload(save_prepost_delegate(FUNC(msx_cart_disk_type2::post_load), this)); + machine().save().register_postload(save_prepost_delegate(FUNC(msx_cart_disk_type2_device::post_load), this)); } -void msx_cart_disk_type2::device_reset() +void msx_cart_disk_type2_device::device_reset() { m_fdc->dden_w(false); } -void msx_cart_disk_type2::post_load() +void msx_cart_disk_type2_device::post_load() { uint8_t data = m_control; @@ -464,7 +465,7 @@ void msx_cart_disk_type2::post_load() } -void msx_cart_disk_type2::set_control(uint8_t data) +void msx_cart_disk_type2_device::set_control(uint8_t data) { uint8_t old_m_control = m_control; @@ -500,7 +501,7 @@ void msx_cart_disk_type2::set_control(uint8_t data) } -READ8_MEMBER(msx_cart_disk_type2::read_cart) +READ8_MEMBER(msx_cart_disk_type2_device::read_cart) { switch (offset) { @@ -533,7 +534,7 @@ READ8_MEMBER(msx_cart_disk_type2::read_cart) } -WRITE8_MEMBER(msx_cart_disk_type2::write_cart) +WRITE8_MEMBER(msx_cart_disk_type2_device::write_cart) { switch (offset) { @@ -563,7 +564,7 @@ WRITE8_MEMBER(msx_cart_disk_type2::write_cart) break; default: - logerror("msx_cart_disk_type2::write_cart: Unmapped write writing %02x to %04x\n", data, offset); + logerror("msx_cart_disk_type2_device::write_cart: Unmapped write writing %02x to %04x\n", data, offset); break; } } @@ -571,17 +572,17 @@ WRITE8_MEMBER(msx_cart_disk_type2::write_cart) -void msx_cart_fsfd1a::device_start() +void msx_cart_fsfd1a_device::device_start() { } -void msx_cart_fsfd1a::device_reset() +void msx_cart_fsfd1a_device::device_reset() { } -READ8_MEMBER(msx_cart_fsfd1a::read_cart) +READ8_MEMBER(msx_cart_fsfd1a_device::read_cart) { switch (offset) { @@ -602,7 +603,7 @@ READ8_MEMBER(msx_cart_fsfd1a::read_cart) } -WRITE8_MEMBER(msx_cart_fsfd1a::write_cart) +WRITE8_MEMBER(msx_cart_fsfd1a_device::write_cart) { switch (offset) { @@ -622,7 +623,7 @@ WRITE8_MEMBER(msx_cart_fsfd1a::write_cart) break; default: - logerror("msx_cart_fsfd1a::write_cart: Unmapped write writing %02x to %04x\n", data, offset); + logerror("msx_cart_fsfd1a_device::write_cart: Unmapped write writing %02x to %04x\n", data, offset); break; } } diff --git a/src/devices/bus/msx_cart/disk.h b/src/devices/bus/msx_cart/disk.h index 2724ef39d4e..4d8a4d79146 100644 --- a/src/devices/bus/msx_cart/disk.h +++ b/src/devices/bus/msx_cart/disk.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Wilbert Pol -#ifndef __MSX_CART_DISK_H -#define __MSX_CART_DISK_H +#ifndef MAME_BUS_MSX_CART_DISK_H +#define MAME_BUS_MSX_CART_DISK_H + +#pragma once #include "bus/msx_cart/cartridge.h" #include "machine/wd_fdc.h" @@ -10,54 +12,52 @@ #include "imagedev/floppy.h" -extern const device_type MSX_CART_VY0010; -extern const device_type MSX_CART_FSFD1; -extern const device_type MSX_CART_FSFD1A; -extern const device_type MSX_CART_FSCF351; +DECLARE_DEVICE_TYPE(MSX_CART_VY0010, msx_cart_vy0010_device) +DECLARE_DEVICE_TYPE(MSX_CART_FSFD1, msx_cart_fsfd1_device) +DECLARE_DEVICE_TYPE(MSX_CART_FSFD1A, msx_cart_fsfd1a_device) +DECLARE_DEVICE_TYPE(MSX_CART_FSCF351, msx_cart_fscf351_device) -class msx_cart_disk : public device_t - , public msx_cart_interface +class msx_cart_disk_device : public device_t, public msx_cart_interface { public: - msx_cart_disk(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname); - virtual void initialize_cartridge() override; DECLARE_FLOPPY_FORMATS(floppy_formats); protected: + msx_cart_disk_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + required_device m_floppy0; optional_device m_floppy1; floppy_image_device *m_floppy; }; -class msx_cart_disk_wd : public msx_cart_disk +class msx_cart_disk_wd_device : public msx_cart_disk_device { -public: - msx_cart_disk_wd(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname); - protected: - required_device m_fdc; + msx_cart_disk_wd_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + required_device m_fdc; }; -class msx_cart_disk_type1 : public msx_cart_disk_wd +class msx_cart_disk_type1_device : public msx_cart_disk_wd_device { public: - msx_cart_disk_type1(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname); + virtual DECLARE_READ8_MEMBER(read_cart) override; + virtual DECLARE_WRITE8_MEMBER(write_cart) override; + +protected: + msx_cart_disk_type1_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); // device-level overrides virtual void device_start() override; virtual void device_reset() override; - virtual DECLARE_READ8_MEMBER(read_cart) override; - virtual DECLARE_WRITE8_MEMBER(write_cart) override; - void post_load(); -protected: uint8_t m_side_control; uint8_t m_control; @@ -66,77 +66,78 @@ protected: }; -class msx_cart_disk_type2 : public msx_cart_disk_wd +class msx_cart_disk_type2_device : public msx_cart_disk_wd_device { public: - msx_cart_disk_type2(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname); + virtual DECLARE_READ8_MEMBER(read_cart) override; + virtual DECLARE_WRITE8_MEMBER(write_cart) override; + +protected: + msx_cart_disk_type2_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); // device-level overrides virtual void device_start() override; virtual void device_reset() override; - virtual DECLARE_READ8_MEMBER(read_cart) override; - virtual DECLARE_WRITE8_MEMBER(write_cart) override; - void post_load(); -protected: uint8_t m_control; void set_control(uint8_t data); }; -class msx_cart_vy0010 : public msx_cart_disk_type1 +class msx_cart_vy0010_device : public msx_cart_disk_type1_device { public: - msx_cart_vy0010(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + msx_cart_vy0010_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual machine_config_constructor device_mconfig_additions() const override; }; -class msx_cart_fsfd1 : public msx_cart_disk_type1 +class msx_cart_fsfd1_device : public msx_cart_disk_type1_device { public: - msx_cart_fsfd1(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + msx_cart_fsfd1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual machine_config_constructor device_mconfig_additions() const override; }; -class msx_cart_fscf351 : public msx_cart_disk_type2 +class msx_cart_fscf351_device : public msx_cart_disk_type2_device { public: - msx_cart_fscf351(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + msx_cart_fscf351_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual machine_config_constructor device_mconfig_additions() const override; }; -class msx_cart_disk_tc8566 : public msx_cart_disk +class msx_cart_disk_tc8566_device : public msx_cart_disk_device { -public: - msx_cart_disk_tc8566(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname); - protected: + msx_cart_disk_tc8566_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + required_device m_fdc; }; -class msx_cart_fsfd1a : public msx_cart_disk_tc8566 +class msx_cart_fsfd1a_device : public msx_cart_disk_tc8566_device { public: - msx_cart_fsfd1a(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + msx_cart_fsfd1a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; virtual machine_config_constructor device_mconfig_additions() const override; virtual DECLARE_READ8_MEMBER(read_cart) override; virtual DECLARE_WRITE8_MEMBER(write_cart) override; + +protected: + virtual void device_start() override; + virtual void device_reset() override; }; -#endif +#endif // MAME_BUS_MSX_CART_DISK_H diff --git a/src/devices/bus/msx_cart/dooly.cpp b/src/devices/bus/msx_cart/dooly.cpp index 05a29131cea..389e0c3da77 100644 --- a/src/devices/bus/msx_cart/dooly.cpp +++ b/src/devices/bus/msx_cart/dooly.cpp @@ -4,30 +4,30 @@ #include "dooly.h" -const device_type MSX_CART_DOOLY = device_creator; +DEFINE_DEVICE_TYPE(MSX_CART_DOOLY, msx_cart_dooly_device, "msx_cart_dooly", "MSX Cartridge - Dooly") -msx_cart_dooly::msx_cart_dooly(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MSX_CART_DOOLY, "MSX Cartridge - Dooly", tag, owner, clock, "msx_cart_dooly", __FILE__) +msx_cart_dooly_device::msx_cart_dooly_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, MSX_CART_DOOLY, tag, owner, clock) , msx_cart_interface(mconfig, *this) , m_prot(0) { } -void msx_cart_dooly::device_start() +void msx_cart_dooly_device::device_start() { save_item(NAME(m_prot)); } -void msx_cart_dooly::device_reset() +void msx_cart_dooly_device::device_reset() { m_prot = 0; } -void msx_cart_dooly::initialize_cartridge() +void msx_cart_dooly_device::initialize_cartridge() { if (get_rom_size() != 0x8000) { @@ -36,7 +36,7 @@ void msx_cart_dooly::initialize_cartridge() } -READ8_MEMBER(msx_cart_dooly::read_cart) +READ8_MEMBER(msx_cart_dooly_device::read_cart) { if (offset >= 0x4000 && offset < 0xc000) { @@ -54,14 +54,14 @@ READ8_MEMBER(msx_cart_dooly::read_cart) } -WRITE8_MEMBER(msx_cart_dooly::write_cart) +WRITE8_MEMBER(msx_cart_dooly_device::write_cart) { if (offset >= 0x4000 && offset < 0xc000) { m_prot = data & 0x07; if (m_prot != 0 && m_prot != 4) { - logerror("msx_cart_dooly: unhandled write %02x to %04x\n", data, offset); + logerror("msx_cart_dooly_device: unhandled write %02x to %04x\n", data, offset); } } } diff --git a/src/devices/bus/msx_cart/dooly.h b/src/devices/bus/msx_cart/dooly.h index 150d8ad452a..3ef7b365c82 100644 --- a/src/devices/bus/msx_cart/dooly.h +++ b/src/devices/bus/msx_cart/dooly.h @@ -1,32 +1,34 @@ // license:BSD-3-Clause // copyright-holders:Wilbert Pol -#ifndef __MSX_CART_DOOLY_H -#define __MSX_CART_DOOLY_H +#ifndef MAME_BUS_MSX_CART_DOOLY_H +#define MAME_BUS_MSX_CART_DOOLY_H + +#pragma once #include "bus/msx_cart/cartridge.h" -extern const device_type MSX_CART_DOOLY; +DECLARE_DEVICE_TYPE(MSX_CART_DOOLY, msx_cart_dooly_device) -class msx_cart_dooly : public device_t - , public msx_cart_interface +class msx_cart_dooly_device : public device_t, public msx_cart_interface { public: - msx_cart_dooly(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; + msx_cart_dooly_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual void initialize_cartridge() override; virtual DECLARE_READ8_MEMBER(read_cart) override; virtual DECLARE_WRITE8_MEMBER(write_cart) override; +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + private: uint8_t m_prot; }; -#endif +#endif // MAME_BUS_MSX_CART_DOOLY_H diff --git a/src/devices/bus/msx_cart/fmpac.cpp b/src/devices/bus/msx_cart/fmpac.cpp index 3eb388ddb8e..be434e55e41 100644 --- a/src/devices/bus/msx_cart/fmpac.cpp +++ b/src/devices/bus/msx_cart/fmpac.cpp @@ -11,11 +11,11 @@ with: PAC2 BACKUP DATA. We only store the raw sram contents. #include "fmpac.h" #include "speaker.h" -const device_type MSX_CART_FMPAC = device_creator; +DEFINE_DEVICE_TYPE(MSX_CART_FMPAC, msx_cart_fmpac_device, "msx_cart_fmpac", "MSX Cartridge - FM-PAC") -msx_cart_fmpac::msx_cart_fmpac(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MSX_CART_FMPAC, "MSX Cartridge - FM-PAC", tag, owner, clock, "msx_cart_fmpac", __FILE__) +msx_cart_fmpac_device::msx_cart_fmpac_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, MSX_CART_FMPAC, tag, owner, clock) , msx_cart_interface(mconfig, *this) , m_ym2413(*this, "ym2413") , m_selected_bank(0) @@ -37,13 +37,13 @@ static MACHINE_CONFIG_FRAGMENT( fmpac ) MACHINE_CONFIG_END -machine_config_constructor msx_cart_fmpac::device_mconfig_additions() const +machine_config_constructor msx_cart_fmpac_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( fmpac ); } -void msx_cart_fmpac::device_start() +void msx_cart_fmpac_device::device_start() { save_item(NAME(m_selected_bank)); save_item(NAME(m_sram_active)); @@ -52,21 +52,21 @@ void msx_cart_fmpac::device_start() save_item(NAME(m_1fff)); save_item(NAME(m_7ff6)); - machine().save().register_postload(save_prepost_delegate(FUNC(msx_cart_fmpac::restore_banks), this)); + machine().save().register_postload(save_prepost_delegate(FUNC(msx_cart_fmpac_device::restore_banks), this)); // Install IO read/write handlers address_space &space = machine().device("maincpu")->space(AS_IO); - space.install_write_handler(0x7c, 0x7d, write8_delegate(FUNC(msx_cart_fmpac::write_ym2413), this)); + space.install_write_handler(0x7c, 0x7d, write8_delegate(FUNC(msx_cart_fmpac_device::write_ym2413), this)); } -void msx_cart_fmpac::restore_banks() +void msx_cart_fmpac_device::restore_banks() { m_bank_base = get_rom_base() + ( m_selected_bank & 0x03 ) * 0x4000; } -void msx_cart_fmpac::device_reset() +void msx_cart_fmpac_device::device_reset() { m_selected_bank = 0; m_sram_active = false; @@ -77,7 +77,7 @@ void msx_cart_fmpac::device_reset() } -void msx_cart_fmpac::initialize_cartridge() +void msx_cart_fmpac_device::initialize_cartridge() { if ( get_rom_size() != 0x10000 ) { @@ -93,7 +93,7 @@ void msx_cart_fmpac::initialize_cartridge() } -READ8_MEMBER(msx_cart_fmpac::read_cart) +READ8_MEMBER(msx_cart_fmpac_device::read_cart) { if (offset >= 0x4000 && offset < 0x8000) { @@ -122,7 +122,7 @@ READ8_MEMBER(msx_cart_fmpac::read_cart) } -WRITE8_MEMBER(msx_cart_fmpac::write_cart) +WRITE8_MEMBER(msx_cart_fmpac_device::write_cart) { if (offset >= 0x4000 && offset < 0x6000) { @@ -165,7 +165,7 @@ WRITE8_MEMBER(msx_cart_fmpac::write_cart) } -WRITE8_MEMBER(msx_cart_fmpac::write_ym2413) +WRITE8_MEMBER(msx_cart_fmpac_device::write_ym2413) { if (m_opll_active) { diff --git a/src/devices/bus/msx_cart/fmpac.h b/src/devices/bus/msx_cart/fmpac.h index ed75abdbe05..2051cdafa81 100644 --- a/src/devices/bus/msx_cart/fmpac.h +++ b/src/devices/bus/msx_cart/fmpac.h @@ -1,24 +1,23 @@ // license:BSD-3-Clause // copyright-holders:Wilbert Pol -#ifndef __MSX_CART_FMPAC_H -#define __MSX_CART_FMPAC_H +#ifndef MAME_BUS_MSX_CART_FMPAC_H +#define MAME_BUS_MSX_CART_FMPAC_H + +#pragma once #include "bus/msx_cart/cartridge.h" #include "sound/ym2413.h" -extern const device_type MSX_CART_FMPAC; +DECLARE_DEVICE_TYPE(MSX_CART_FMPAC, msx_art_fmpac_device) -class msx_cart_fmpac : public device_t - , public msx_cart_interface +class msx_cart_fmpac_device : public device_t, public msx_cart_interface { public: - msx_cart_fmpac(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + msx_cart_fmpac_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; virtual machine_config_constructor device_mconfig_additions() const override; virtual void initialize_cartridge() override; @@ -26,10 +25,14 @@ public: virtual DECLARE_READ8_MEMBER(read_cart) override; virtual DECLARE_WRITE8_MEMBER(write_cart) override; - void restore_banks(); - DECLARE_WRITE8_MEMBER(write_ym2413); +protected: + virtual void device_start() override; + virtual void device_reset() override; + + void restore_banks(); + private: required_device m_ym2413; @@ -43,4 +46,4 @@ private: }; -#endif +#endif // MAME_BUS_MSX_CART_FMPAC_H diff --git a/src/devices/bus/msx_cart/fs_sr022.cpp b/src/devices/bus/msx_cart/fs_sr022.cpp index 6b7cb69c17a..7e0eac793df 100644 --- a/src/devices/bus/msx_cart/fs_sr022.cpp +++ b/src/devices/bus/msx_cart/fs_sr022.cpp @@ -4,11 +4,11 @@ #include "fs_sr022.h" -const device_type MSX_CART_FS_SR022 = device_creator; +DEFINE_DEVICE_TYPE(MSX_CART_FS_SR022, msx_cart_fs_sr022_device, "msx_cart_fs_sr022", "MSX Cartridge - FS-SR022") -msx_cart_fs_sr022::msx_cart_fs_sr022(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MSX_CART_FS_SR022, "MSX Cartridge - FS-SR022", tag, owner, clock, "msx_cart_fs_sr022", __FILE__) +msx_cart_fs_sr022_device::msx_cart_fs_sr022_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, MSX_CART_FS_SR022, tag, owner, clock) , msx_cart_interface(mconfig, *this) , m_bunsetsu_rom(nullptr) , m_bunsetsu_address(0) @@ -16,19 +16,19 @@ msx_cart_fs_sr022::msx_cart_fs_sr022(const machine_config &mconfig, const char * } -void msx_cart_fs_sr022::device_start() +void msx_cart_fs_sr022_device::device_start() { save_item(NAME(m_bunsetsu_address)); } -void msx_cart_fs_sr022::device_reset() +void msx_cart_fs_sr022_device::device_reset() { m_bunsetsu_address = 0; } -void msx_cart_fs_sr022::initialize_cartridge() +void msx_cart_fs_sr022_device::initialize_cartridge() { if (get_rom_size() != 0x40000) { @@ -38,7 +38,7 @@ void msx_cart_fs_sr022::initialize_cartridge() } -READ8_MEMBER(msx_cart_fs_sr022::read_cart) +READ8_MEMBER(msx_cart_fs_sr022_device::read_cart) { if (offset >= 0x4000 && offset < 0xc000) { @@ -52,7 +52,7 @@ READ8_MEMBER(msx_cart_fs_sr022::read_cart) } -WRITE8_MEMBER(msx_cart_fs_sr022::write_cart) +WRITE8_MEMBER(msx_cart_fs_sr022_device::write_cart) { switch (offset) { diff --git a/src/devices/bus/msx_cart/fs_sr022.h b/src/devices/bus/msx_cart/fs_sr022.h index 8318669d198..bf3259090e1 100644 --- a/src/devices/bus/msx_cart/fs_sr022.h +++ b/src/devices/bus/msx_cart/fs_sr022.h @@ -1,33 +1,35 @@ // license:BSD-3-Clause // copyright-holders:Wilbert Pol -#ifndef __MSX_CART_FS_SR022_H -#define __MSX_CART_FS_SR022_H +#ifndef MAME_BUS_MSX_CART_FS_SR022_H +#define MAME_BUS_MSX_CART_FS_SR022_H + +#pragma once #include "bus/msx_cart/cartridge.h" -extern const device_type MSX_CART_FS_SR022; +DECLARE_DEVICE_TYPE(MSX_CART_FS_SR022, msx_cart_fs_sr022_device) -class msx_cart_fs_sr022 : public device_t - , public msx_cart_interface +class msx_cart_fs_sr022_device : public device_t, public msx_cart_interface { public: - msx_cart_fs_sr022(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; + msx_cart_fs_sr022_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual void initialize_cartridge() override; virtual DECLARE_READ8_MEMBER(read_cart) override; virtual DECLARE_WRITE8_MEMBER(write_cart) override; +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + private: const uint8_t *m_bunsetsu_rom; uint32_t m_bunsetsu_address; }; -#endif +#endif // MAME_BUS_MSX_CART_FS_SR022_H diff --git a/src/devices/bus/msx_cart/halnote.cpp b/src/devices/bus/msx_cart/halnote.cpp index a4a25378d6e..013d2b83680 100644 --- a/src/devices/bus/msx_cart/halnote.cpp +++ b/src/devices/bus/msx_cart/halnote.cpp @@ -4,30 +4,27 @@ #include "halnote.h" -const device_type MSX_CART_HALNOTE = device_creator; +DEFINE_DEVICE_TYPE(MSX_CART_HALNOTE, msx_cart_halnote_device, "msx_cart_halnote", "MSX Cartridge - Halnote") -msx_cart_halnote::msx_cart_halnote(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MSX_CART_HALNOTE, "MSX Cartridge - Halnote", tag, owner, clock, "msx_cart_halnote", __FILE__) +msx_cart_halnote_device::msx_cart_halnote_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, MSX_CART_HALNOTE, tag, owner, clock) , msx_cart_interface(mconfig, *this) + , m_selected_bank{ 0, 0, 0, 0, 0, 0, 0, 0 } + , m_bank_base{ nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr } { - for (int i = 0; i < 8; i++) - { - m_selected_bank[i] = 0; - m_bank_base[i] = nullptr; - } } -void msx_cart_halnote::device_start() +void msx_cart_halnote_device::device_start() { save_item(NAME(m_selected_bank)); - machine().save().register_postload(save_prepost_delegate(FUNC(msx_cart_halnote::restore_banks), this)); + machine().save().register_postload(save_prepost_delegate(FUNC(msx_cart_halnote_device::restore_banks), this)); } -void msx_cart_halnote::map_bank(int bank) +void msx_cart_halnote_device::map_bank(int bank) { if (bank < 2) { @@ -58,7 +55,7 @@ void msx_cart_halnote::map_bank(int bank) } -void msx_cart_halnote::restore_banks() +void msx_cart_halnote_device::restore_banks() { for (int i = 0; i < 8; i++) { @@ -67,7 +64,7 @@ void msx_cart_halnote::restore_banks() } -void msx_cart_halnote::device_reset() +void msx_cart_halnote_device::device_reset() { for (auto & elem : m_selected_bank) { @@ -76,7 +73,7 @@ void msx_cart_halnote::device_reset() } -void msx_cart_halnote::initialize_cartridge() +void msx_cart_halnote_device::initialize_cartridge() { if (get_rom_size() != 0x100000) { @@ -87,7 +84,7 @@ void msx_cart_halnote::initialize_cartridge() } -READ8_MEMBER(msx_cart_halnote::read_cart) +READ8_MEMBER(msx_cart_halnote_device::read_cart) { if (offset >= 0xc000) { @@ -109,7 +106,7 @@ READ8_MEMBER(msx_cart_halnote::read_cart) } -WRITE8_MEMBER(msx_cart_halnote::write_cart) +WRITE8_MEMBER(msx_cart_halnote_device::write_cart) { if (offset < 0x4000) { @@ -153,7 +150,7 @@ WRITE8_MEMBER(msx_cart_halnote::write_cart) break; default: - logerror("msx_cart_halnote: Unhandled write %02x to %04x\n", data, offset); + logerror("msx_cart_halnote_device: Unhandled write %02x to %04x\n", data, offset); break; } } diff --git a/src/devices/bus/msx_cart/halnote.h b/src/devices/bus/msx_cart/halnote.h index 79002eca1bc..ad64d2539ee 100644 --- a/src/devices/bus/msx_cart/halnote.h +++ b/src/devices/bus/msx_cart/halnote.h @@ -1,29 +1,31 @@ // license:BSD-3-Clause // copyright-holders:Wilbert Pol -#ifndef __MSX_CART_HALNOTE_H -#define __MSX_CART_HALNOTE_H +#ifndef MAME_BUS_MSX_CART_HALNOTE_H +#define MAME_BUS_MSX_CART_HALNOTE_H + +#pragma once #include "bus/msx_cart/cartridge.h" -extern const device_type MSX_CART_HALNOTE; +DECLARE_DEVICE_TYPE(MSX_CART_HALNOTE, msx_cart_halnote_device) -class msx_cart_halnote : public device_t - , public msx_cart_interface +class msx_cart_halnote_device : public device_t, public msx_cart_interface { public: - msx_cart_halnote(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; + msx_cart_halnote_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual void initialize_cartridge() override; virtual DECLARE_READ8_MEMBER(read_cart) override; virtual DECLARE_WRITE8_MEMBER(write_cart) override; +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + void restore_banks(); private: @@ -34,4 +36,4 @@ private: }; -#endif +#endif // MAME_BUS_MSX_CART_HALNOTE_H diff --git a/src/devices/bus/msx_cart/hfox.cpp b/src/devices/bus/msx_cart/hfox.cpp index fa8ea7b8870..d7fb793e42d 100644 --- a/src/devices/bus/msx_cart/hfox.cpp +++ b/src/devices/bus/msx_cart/hfox.cpp @@ -4,40 +4,40 @@ #include "hfox.h" -const device_type MSX_CART_HFOX = device_creator; +DEFINE_DEVICE_TYPE(MSX_CART_HFOX, msx_cart_hfox_device, "msx_cart_hfox", "MSX Cartridge - Harry Fox") -msx_cart_hfox::msx_cart_hfox(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MSX_CART_HFOX, "MSX Cartridge - Harry Fox", tag, owner, clock, "msx_cart_hfox", __FILE__) +msx_cart_hfox_device::msx_cart_hfox_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, MSX_CART_HFOX, tag, owner, clock) , msx_cart_interface(mconfig, *this) + , m_selected_bank{ 0, 0 } + , m_bank_base{ nullptr, nullptr } { - m_selected_bank[0] = m_selected_bank[1] = 0; - m_bank_base[0] = m_bank_base[1] = nullptr; } -void msx_cart_hfox::device_start() +void msx_cart_hfox_device::device_start() { save_item(NAME(m_selected_bank)); - machine().save().register_postload(save_prepost_delegate(FUNC(msx_cart_hfox::restore_banks), this)); + machine().save().register_postload(save_prepost_delegate(FUNC(msx_cart_hfox_device::restore_banks), this)); } -void msx_cart_hfox::restore_banks() +void msx_cart_hfox_device::restore_banks() { m_bank_base[0] = get_rom_base() + ((m_selected_bank[0] & 0x01) * 0x8000); m_bank_base[1] = get_rom_base() + ((m_selected_bank[1] & 0x01) * 0x8000) + 0x4000; } -void msx_cart_hfox::device_reset() +void msx_cart_hfox_device::device_reset() { m_selected_bank[0] = m_selected_bank[1] = 0; } -void msx_cart_hfox::initialize_cartridge() +void msx_cart_hfox_device::initialize_cartridge() { if (get_rom_size() < 0x10000) { @@ -48,7 +48,7 @@ void msx_cart_hfox::initialize_cartridge() } -READ8_MEMBER(msx_cart_hfox::read_cart) +READ8_MEMBER(msx_cart_hfox_device::read_cart) { if (offset >= 0x4000 && offset < 0xc000) { @@ -58,7 +58,7 @@ READ8_MEMBER(msx_cart_hfox::read_cart) } -WRITE8_MEMBER(msx_cart_hfox::write_cart) +WRITE8_MEMBER(msx_cart_hfox_device::write_cart) { switch (offset) { @@ -73,7 +73,7 @@ WRITE8_MEMBER(msx_cart_hfox::write_cart) break; default: - logerror("msx_cart_hfox: unhandled write %02x to %04x\n", data, offset); + logerror("msx_cart_hfox_device: unhandled write %02x to %04x\n", data, offset); break; } } diff --git a/src/devices/bus/msx_cart/hfox.h b/src/devices/bus/msx_cart/hfox.h index 7e58a07b10f..debcbc31308 100644 --- a/src/devices/bus/msx_cart/hfox.h +++ b/src/devices/bus/msx_cart/hfox.h @@ -1,29 +1,29 @@ // license:BSD-3-Clause // copyright-holders:Wilbert Pol -#ifndef __MSX_CART_HFOX_H -#define __MSX_CART_HFOX_H +#ifndef MAME_BUS_MSX_CART_HFOX_H +#define MAME_BUS_MSX_CART_HFOX_H #include "bus/msx_cart/cartridge.h" -extern const device_type MSX_CART_HFOX; +DECLARE_DEVICE_TYPE(MSX_CART_HFOX, msx_cart_hfox_device) -class msx_cart_hfox : public device_t - , public msx_cart_interface +class msx_cart_hfox_device : public device_t, public msx_cart_interface { public: - msx_cart_hfox(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; + msx_cart_hfox_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual void initialize_cartridge() override; virtual DECLARE_READ8_MEMBER(read_cart) override; virtual DECLARE_WRITE8_MEMBER(write_cart) override; +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + void restore_banks(); private: @@ -32,4 +32,4 @@ private: }; -#endif +#endif // MAME_BUS_MSX_CART_HFOX_H diff --git a/src/devices/bus/msx_cart/holy_quran.cpp b/src/devices/bus/msx_cart/holy_quran.cpp index 2c6eaca3eb0..c461b83ee16 100644 --- a/src/devices/bus/msx_cart/holy_quran.cpp +++ b/src/devices/bus/msx_cart/holy_quran.cpp @@ -4,20 +4,16 @@ #include "holy_quran.h" -const device_type MSX_CART_HOLY_QURAN = device_creator; +DEFINE_DEVICE_TYPE(MSX_CART_HOLY_QURAN, msx_cart_holy_quran_device, "msx_cart_holy_quran", "MSX Cartridge - Holy Quran") -msx_cart_holy_quran::msx_cart_holy_quran(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MSX_CART_HOLY_QURAN, "MSX Cartridge - Holy Quran", tag, owner, clock, "msx_cart_holy_quran", __FILE__) +msx_cart_holy_quran_device::msx_cart_holy_quran_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, MSX_CART_HOLY_QURAN, tag, owner, clock) , msx_cart_interface(mconfig, *this) + , m_selected_bank{ 0, 0, 0, 0 } + , m_bank_base{ nullptr, nullptr, nullptr, nullptr } , m_decrypt(false) { - for (int i = 0; i < 4; i++) - { - m_selected_bank[i] = 0; - m_bank_base[i] = nullptr; - } - /* protection uses a simple rotation on databus, some lines inverted: D0 D4 D4 D5 D1 ~ D3 D5 ~ D2 @@ -30,16 +26,16 @@ msx_cart_holy_quran::msx_cart_holy_quran(const machine_config &mconfig, const ch } -void msx_cart_holy_quran::device_start() +void msx_cart_holy_quran_device::device_start() { save_item(NAME(m_selected_bank)); save_item(NAME(m_decrypt)); - machine().save().register_postload(save_prepost_delegate(FUNC(msx_cart_holy_quran::restore_banks), this)); + machine().save().register_postload(save_prepost_delegate(FUNC(msx_cart_holy_quran_device::restore_banks), this)); } -void msx_cart_holy_quran::restore_banks() +void msx_cart_holy_quran_device::restore_banks() { m_bank_base[0] = get_rom_base() + (m_selected_bank[0] & 0x7f) * 0x2000; m_bank_base[1] = get_rom_base() + (m_selected_bank[1] & 0x7f) * 0x2000; @@ -48,7 +44,7 @@ void msx_cart_holy_quran::restore_banks() } -void msx_cart_holy_quran::device_reset() +void msx_cart_holy_quran_device::device_reset() { for (auto & elem : m_selected_bank) { @@ -57,7 +53,7 @@ void msx_cart_holy_quran::device_reset() } -void msx_cart_holy_quran::initialize_cartridge() +void msx_cart_holy_quran_device::initialize_cartridge() { if (get_rom_size() != 0x100000) { @@ -68,7 +64,7 @@ void msx_cart_holy_quran::initialize_cartridge() } -READ8_MEMBER(msx_cart_holy_quran::read_cart) +READ8_MEMBER(msx_cart_holy_quran_device::read_cart) { if (offset >= 0x4000 && offset < 0xc000) { @@ -92,7 +88,7 @@ READ8_MEMBER(msx_cart_holy_quran::read_cart) } -WRITE8_MEMBER(msx_cart_holy_quran::write_cart) +WRITE8_MEMBER(msx_cart_holy_quran_device::write_cart) { switch (offset) { @@ -113,7 +109,7 @@ WRITE8_MEMBER(msx_cart_holy_quran::write_cart) restore_banks(); break; default: - logerror("msx_cart_holy_quran: unhandled write %02x to %04x\n", data, offset); + logerror("msx_cart_holy_quran_device: unhandled write %02x to %04x\n", data, offset); break; } } diff --git a/src/devices/bus/msx_cart/holy_quran.h b/src/devices/bus/msx_cart/holy_quran.h index 0b2bd1a06f8..b805282790c 100644 --- a/src/devices/bus/msx_cart/holy_quran.h +++ b/src/devices/bus/msx_cart/holy_quran.h @@ -1,29 +1,31 @@ // license:BSD-3-Clause // copyright-holders:Wilbert Pol -#ifndef __MSX_CART_HOLY_QURAN_H -#define __MSX_CART_HOLY_QURAN_H +#ifndef MAME_BUS_MSX_CART_HOLY_QURAN_H +#define MAME_BUS_MSX_CART_HOLY_QURAN_H + +#pragma once #include "bus/msx_cart/cartridge.h" -extern const device_type MSX_CART_HOLY_QURAN; +DECLARE_DEVICE_TYPE(MSX_CART_HOLY_QURAN, msx_cart_holy_quran_device) -class msx_cart_holy_quran : public device_t - , public msx_cart_interface +class msx_cart_holy_quran_device : public device_t, public msx_cart_interface { public: - msx_cart_holy_quran(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; + msx_cart_holy_quran_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual void initialize_cartridge() override; virtual DECLARE_READ8_MEMBER(read_cart) override; virtual DECLARE_WRITE8_MEMBER(write_cart) override; +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + void restore_banks(); private: @@ -34,4 +36,4 @@ private: }; -#endif +#endif // MAME_BUS_MSX_CART_HOLY_QURAN_H diff --git a/src/devices/bus/msx_cart/konami.cpp b/src/devices/bus/msx_cart/konami.cpp index b082e5c9703..4d7be20e91c 100644 --- a/src/devices/bus/msx_cart/konami.cpp +++ b/src/devices/bus/msx_cart/konami.cpp @@ -7,17 +7,17 @@ #include "speaker.h" -const device_type MSX_CART_KONAMI = device_creator; -const device_type MSX_CART_KONAMI_SCC = device_creator; -const device_type MSX_CART_GAMEMASTER2 = device_creator; -const device_type MSX_CART_SYNTHESIZER = device_creator; -const device_type MSX_CART_SOUND_SNATCHER = device_creator; -const device_type MSX_CART_SOUND_SDSNATCHER = device_creator; -const device_type MSX_CART_KEYBOARD_MASTER = device_creator; +DEFINE_DEVICE_TYPE(MSX_CART_KONAMI, msx_cart_konami_device, "msx_cart_konami", "MSX Cartridge - KONAMI") +DEFINE_DEVICE_TYPE(MSX_CART_KONAMI_SCC, msx_cart_konami_scc_device, "msx_cart_konami_scc", "MSX Cartridge - KONAMI+SCC") +DEFINE_DEVICE_TYPE(MSX_CART_GAMEMASTER2, msx_cart_gamemaster2_device, "msx_cart_gamemaster2", "MSX Cartridge - GAMEMASTER2") +DEFINE_DEVICE_TYPE(MSX_CART_SYNTHESIZER, msx_cart_synthesizer_device, "msx_cart_synthesizer", "MSX Cartridge - Synthesizer") +DEFINE_DEVICE_TYPE(MSX_CART_SOUND_SNATCHER, msx_cart_konami_sound_snatcher_device, "msx_cart_sound_snatcher", "MSX Cartridge - Sound Snatcher") +DEFINE_DEVICE_TYPE(MSX_CART_SOUND_SDSNATCHER, msx_cart_konami_sound_sdsnatcher_device, "msx_cart_sound_sdsnatcher", "MSX Cartridge - Sound SD Snatcher") +DEFINE_DEVICE_TYPE(MSX_CART_KEYBOARD_MASTER, msx_cart_keyboard_master_device, "msx_cart_keyboard_master", "MSX Cartridge - Keyboard Master") -msx_cart_konami::msx_cart_konami(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MSX_CART_KONAMI, "MSX Cartridge - KONAMI", tag, owner, clock, "msx_cart_konami", __FILE__) +msx_cart_konami_device::msx_cart_konami_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, MSX_CART_KONAMI, tag, owner, clock) , msx_cart_interface(mconfig, *this) , m_bank_mask(0) { @@ -32,15 +32,15 @@ msx_cart_konami::msx_cart_konami(const machine_config &mconfig, const char *tag, } -void msx_cart_konami::device_start() +void msx_cart_konami_device::device_start() { save_item(NAME(m_selected_bank)); - machine().save().register_postload(save_prepost_delegate(FUNC(msx_cart_konami::restore_banks), this)); + machine().save().register_postload(save_prepost_delegate(FUNC(msx_cart_konami_device::restore_banks), this)); } -void msx_cart_konami::restore_banks() +void msx_cart_konami_device::restore_banks() { m_bank_base[0] = get_rom_base() + ( m_selected_bank[0] & m_bank_mask ) * 0x2000; m_bank_base[1] = get_rom_base() + ( m_selected_bank[1] & m_bank_mask ) * 0x2000; @@ -53,7 +53,7 @@ void msx_cart_konami::restore_banks() } -void msx_cart_konami::device_reset() +void msx_cart_konami_device::device_reset() { for (int i = 0; i < 4; i++) { @@ -62,7 +62,7 @@ void msx_cart_konami::device_reset() } -void msx_cart_konami::initialize_cartridge() +void msx_cart_konami_device::initialize_cartridge() { uint32_t size = get_rom_size(); @@ -84,13 +84,13 @@ void msx_cart_konami::initialize_cartridge() } -READ8_MEMBER(msx_cart_konami::read_cart) +READ8_MEMBER(msx_cart_konami_device::read_cart) { return m_bank_base[offset >> 13][offset & 0x1fff]; } -WRITE8_MEMBER(msx_cart_konami::write_cart) +WRITE8_MEMBER(msx_cart_konami_device::write_cart) { switch (offset & 0xe000) { @@ -123,8 +123,8 @@ WRITE8_MEMBER(msx_cart_konami::write_cart) -msx_cart_konami_scc::msx_cart_konami_scc(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MSX_CART_KONAMI_SCC, "MSX Cartridge - KONAMI+SCC", tag, owner, clock, "msx_cart_konami_scc", __FILE__) +msx_cart_konami_scc_device::msx_cart_konami_scc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, MSX_CART_KONAMI_SCC, tag, owner, clock) , msx_cart_interface(mconfig, *this) , m_k051649(*this, "k051649") , m_bank_mask(0) @@ -149,22 +149,22 @@ static MACHINE_CONFIG_FRAGMENT( konami_scc ) MACHINE_CONFIG_END -machine_config_constructor msx_cart_konami_scc::device_mconfig_additions() const +machine_config_constructor msx_cart_konami_scc_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( konami_scc ); } -void msx_cart_konami_scc::device_start() +void msx_cart_konami_scc_device::device_start() { save_item(NAME(m_selected_bank)); save_item(NAME(m_scc_active)); - machine().save().register_postload(save_prepost_delegate(FUNC(msx_cart_konami_scc::restore_banks), this)); + machine().save().register_postload(save_prepost_delegate(FUNC(msx_cart_konami_scc_device::restore_banks), this)); } -void msx_cart_konami_scc::restore_banks() +void msx_cart_konami_scc_device::restore_banks() { m_bank_base[0] = get_rom_base() + ( m_selected_bank[2] & m_bank_mask ) * 0x2000; m_bank_base[1] = get_rom_base() + ( m_selected_bank[3] & m_bank_mask ) * 0x2000; @@ -177,7 +177,7 @@ void msx_cart_konami_scc::restore_banks() } -void msx_cart_konami_scc::device_reset() +void msx_cart_konami_scc_device::device_reset() { for (int i = 0; i < 4; i++) { @@ -187,7 +187,7 @@ void msx_cart_konami_scc::device_reset() } -void msx_cart_konami_scc::initialize_cartridge() +void msx_cart_konami_scc_device::initialize_cartridge() { uint32_t size = get_rom_size(); @@ -209,7 +209,7 @@ void msx_cart_konami_scc::initialize_cartridge() } -READ8_MEMBER(msx_cart_konami_scc::read_cart) +READ8_MEMBER(msx_cart_konami_scc_device::read_cart) { if ( m_scc_active && offset >= 0x9800 && offset < 0xa000 ) { @@ -231,7 +231,7 @@ READ8_MEMBER(msx_cart_konami_scc::read_cart) } -WRITE8_MEMBER(msx_cart_konami_scc::write_cart) +WRITE8_MEMBER(msx_cart_konami_scc_device::write_cart) { switch (offset & 0xf800) { @@ -299,8 +299,8 @@ WRITE8_MEMBER(msx_cart_konami_scc::write_cart) -msx_cart_gamemaster2::msx_cart_gamemaster2(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MSX_CART_GAMEMASTER2, "MSX Cartridge - GAMEMASTER2", tag, owner, clock, "msx_cart_gamemaster2", __FILE__) +msx_cart_gamemaster2_device::msx_cart_gamemaster2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, MSX_CART_GAMEMASTER2, tag, owner, clock) , msx_cart_interface(mconfig, *this) { for (auto & elem : m_selected_bank) @@ -314,15 +314,15 @@ msx_cart_gamemaster2::msx_cart_gamemaster2(const machine_config &mconfig, const } -void msx_cart_gamemaster2::device_start() +void msx_cart_gamemaster2_device::device_start() { save_item(NAME(m_selected_bank)); - machine().save().register_postload(save_prepost_delegate(FUNC(msx_cart_gamemaster2::restore_banks), this)); + machine().save().register_postload(save_prepost_delegate(FUNC(msx_cart_gamemaster2_device::restore_banks), this)); } -void msx_cart_gamemaster2::setup_bank(uint8_t bank) +void msx_cart_gamemaster2_device::setup_bank(uint8_t bank) { switch (bank) { @@ -368,7 +368,7 @@ void msx_cart_gamemaster2::setup_bank(uint8_t bank) } -void msx_cart_gamemaster2::restore_banks() +void msx_cart_gamemaster2_device::restore_banks() { m_bank_base[0] = get_rom_base(); m_bank_base[2] = get_rom_base(); @@ -378,7 +378,7 @@ void msx_cart_gamemaster2::restore_banks() } -void msx_cart_gamemaster2::device_reset() +void msx_cart_gamemaster2_device::device_reset() { for (int i = 0; i < 3; i++) { @@ -387,7 +387,7 @@ void msx_cart_gamemaster2::device_reset() } -void msx_cart_gamemaster2::initialize_cartridge() +void msx_cart_gamemaster2_device::initialize_cartridge() { if ( get_rom_size() != 0x20000 ) { @@ -403,7 +403,7 @@ void msx_cart_gamemaster2::initialize_cartridge() } -READ8_MEMBER(msx_cart_gamemaster2::read_cart) +READ8_MEMBER(msx_cart_gamemaster2_device::read_cart) { uint8_t bank = offset >> 13; @@ -437,7 +437,7 @@ READ8_MEMBER(msx_cart_gamemaster2::read_cart) } -WRITE8_MEMBER(msx_cart_gamemaster2::write_cart) +WRITE8_MEMBER(msx_cart_gamemaster2_device::write_cart) { switch (offset & 0xf000) { @@ -469,8 +469,8 @@ WRITE8_MEMBER(msx_cart_gamemaster2::write_cart) -msx_cart_synthesizer::msx_cart_synthesizer(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MSX_CART_SYNTHESIZER, "MSX Cartridge - Synthesizer", tag, owner, clock, "msx_cart_synthesizer", __FILE__) +msx_cart_synthesizer_device::msx_cart_synthesizer_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, MSX_CART_SYNTHESIZER, tag, owner, clock) , msx_cart_interface(mconfig, *this) , m_bank_base(nullptr) , m_dac(*this, "dac") @@ -487,18 +487,18 @@ static MACHINE_CONFIG_FRAGMENT( synthesizer ) MACHINE_CONFIG_END -machine_config_constructor msx_cart_synthesizer::device_mconfig_additions() const +machine_config_constructor msx_cart_synthesizer_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( synthesizer ); } -void msx_cart_synthesizer::device_start() +void msx_cart_synthesizer_device::device_start() { } -void msx_cart_synthesizer::initialize_cartridge() +void msx_cart_synthesizer_device::initialize_cartridge() { if ( get_rom_size() != 0x8000 ) { @@ -509,7 +509,7 @@ void msx_cart_synthesizer::initialize_cartridge() } -READ8_MEMBER(msx_cart_synthesizer::read_cart) +READ8_MEMBER(msx_cart_synthesizer_device::read_cart) { if (offset >= 0x4000 && offset < 0xc000 ) { @@ -519,7 +519,7 @@ READ8_MEMBER(msx_cart_synthesizer::read_cart) } -WRITE8_MEMBER(msx_cart_synthesizer::write_cart) +WRITE8_MEMBER(msx_cart_synthesizer_device::write_cart) { if ((offset & 0xc010) == 0x4000) { @@ -530,8 +530,8 @@ WRITE8_MEMBER(msx_cart_synthesizer::write_cart) -msx_cart_konami_sound::msx_cart_konami_sound(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source) +msx_cart_konami_sound_device::msx_cart_konami_sound_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) , msx_cart_interface(mconfig, *this) , m_k052539(*this, "k052539") , m_scc_active(false) @@ -565,24 +565,24 @@ static MACHINE_CONFIG_FRAGMENT( konami_sound ) MACHINE_CONFIG_END -machine_config_constructor msx_cart_konami_sound::device_mconfig_additions() const +machine_config_constructor msx_cart_konami_sound_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( konami_sound ); } -void msx_cart_konami_sound::device_start() +void msx_cart_konami_sound_device::device_start() { save_item(NAME(m_selected_bank)); save_item(NAME(m_scc_active)); save_item(NAME(m_sccplus_active)); save_item(NAME(m_ram_enabled)); - machine().save().register_postload(save_prepost_delegate(FUNC(msx_cart_konami_sound::restore_banks), this)); + machine().save().register_postload(save_prepost_delegate(FUNC(msx_cart_konami_sound_device::restore_banks), this)); } -void msx_cart_konami_sound::restore_banks() +void msx_cart_konami_sound_device::restore_banks() { for (int i = 0; i < 4; i++) { @@ -591,7 +591,7 @@ void msx_cart_konami_sound::restore_banks() } -void msx_cart_konami_sound::setup_bank(uint8_t bank) +void msx_cart_konami_sound_device::setup_bank(uint8_t bank) { switch (bank) { @@ -618,7 +618,7 @@ void msx_cart_konami_sound::setup_bank(uint8_t bank) } -void msx_cart_konami_sound::device_reset() +void msx_cart_konami_sound_device::device_reset() { for (int i = 0; i < 4; i++) { @@ -630,13 +630,13 @@ void msx_cart_konami_sound::device_reset() } -void msx_cart_konami_sound::initialize_cartridge() +void msx_cart_konami_sound_device::initialize_cartridge() { restore_banks(); } -READ8_MEMBER(msx_cart_konami_sound::read_cart) +READ8_MEMBER(msx_cart_konami_sound_device::read_cart) { if ( m_scc_active && offset >= 0x9800 && offset < 0x9fe0 ) { @@ -684,7 +684,7 @@ READ8_MEMBER(msx_cart_konami_sound::read_cart) } -WRITE8_MEMBER(msx_cart_konami_sound::write_cart) +WRITE8_MEMBER(msx_cart_konami_sound_device::write_cart) { switch (offset & 0xe000) { @@ -826,15 +826,15 @@ WRITE8_MEMBER(msx_cart_konami_sound::write_cart) } -msx_cart_konami_sound_snatcher::msx_cart_konami_sound_snatcher(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : msx_cart_konami_sound(mconfig, MSX_CART_SOUND_SNATCHER, "MSX Cartridge - Sound Snatcher", tag, owner, clock, "msx_cart_sound_snatcher", __FILE__) +msx_cart_konami_sound_snatcher_device::msx_cart_konami_sound_snatcher_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : msx_cart_konami_sound_device(mconfig, MSX_CART_SOUND_SNATCHER, tag, owner, clock) { } -void msx_cart_konami_sound_snatcher::initialize_cartridge() +void msx_cart_konami_sound_snatcher_device::initialize_cartridge() { - msx_cart_konami_sound::initialize_cartridge(); + msx_cart_konami_sound_device::initialize_cartridge(); if (get_ram_size() != 0x10000) { @@ -850,15 +850,15 @@ void msx_cart_konami_sound_snatcher::initialize_cartridge() } -msx_cart_konami_sound_sdsnatcher::msx_cart_konami_sound_sdsnatcher(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : msx_cart_konami_sound(mconfig, MSX_CART_SOUND_SDSNATCHER, "MSX Cartridge - Sound SD Snatcher", tag, owner, clock, "msx_cart_sound_sdsnatcher", __FILE__) +msx_cart_konami_sound_sdsnatcher_device::msx_cart_konami_sound_sdsnatcher_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : msx_cart_konami_sound_device(mconfig, MSX_CART_SOUND_SDSNATCHER, tag, owner, clock) { } -void msx_cart_konami_sound_sdsnatcher::initialize_cartridge() +void msx_cart_konami_sound_sdsnatcher_device::initialize_cartridge() { - msx_cart_konami_sound::initialize_cartridge(); + msx_cart_konami_sound_device::initialize_cartridge(); if (get_ram_size() != 0x10000) { @@ -876,15 +876,15 @@ void msx_cart_konami_sound_sdsnatcher::initialize_cartridge() -msx_cart_keyboard_master::msx_cart_keyboard_master(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MSX_CART_KEYBOARD_MASTER, "MSX Cartridge - Keyboard Master", tag, owner, clock, "msx_cart_keyboard_master", __FILE__) +msx_cart_keyboard_master_device::msx_cart_keyboard_master_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, MSX_CART_KEYBOARD_MASTER, tag, owner, clock) , msx_cart_interface(mconfig, *this) , m_vlm5030(*this, "vlm5030") { } -static ADDRESS_MAP_START( vlm_map, AS_0, 8, msx_cart_keyboard_master ) +static ADDRESS_MAP_START( vlm_map, AS_0, 8, msx_cart_keyboard_master_device ) AM_RANGE(0x0000, 0xffff) AM_READ(read_vlm) ADDRESS_MAP_END @@ -898,23 +898,23 @@ static MACHINE_CONFIG_FRAGMENT( msx_cart_keyboard_master ) MACHINE_CONFIG_END -machine_config_constructor msx_cart_keyboard_master::device_mconfig_additions() const +machine_config_constructor msx_cart_keyboard_master_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( msx_cart_keyboard_master ); } -void msx_cart_keyboard_master::device_start() +void msx_cart_keyboard_master_device::device_start() { // Install IO read/write handlers address_space &space = machine().device("maincpu")->space(AS_IO); space.install_write_handler(0x00, 0x00, write8_delegate(FUNC(vlm5030_device::data_w), m_vlm5030.target())); - space.install_write_handler(0x20, 0x20, write8_delegate(FUNC(msx_cart_keyboard_master::io_20_w), this)); - space.install_read_handler(0x00, 0x00, read8_delegate(FUNC(msx_cart_keyboard_master::io_00_r), this)); + space.install_write_handler(0x20, 0x20, write8_delegate(FUNC(msx_cart_keyboard_master_device::io_20_w), this)); + space.install_read_handler(0x00, 0x00, read8_delegate(FUNC(msx_cart_keyboard_master_device::io_00_r), this)); } -void msx_cart_keyboard_master::initialize_cartridge() +void msx_cart_keyboard_master_device::initialize_cartridge() { if (get_rom_size() != 0x4000) { @@ -923,7 +923,7 @@ void msx_cart_keyboard_master::initialize_cartridge() } -READ8_MEMBER(msx_cart_keyboard_master::read_cart) +READ8_MEMBER(msx_cart_keyboard_master_device::read_cart) { if (offset >= 0x4000 && offset < 0x8000) { @@ -933,13 +933,13 @@ READ8_MEMBER(msx_cart_keyboard_master::read_cart) } -READ8_MEMBER(msx_cart_keyboard_master::read_vlm) +READ8_MEMBER(msx_cart_keyboard_master_device::read_vlm) { return m_rom_vlm5030[offset]; } -WRITE8_MEMBER(msx_cart_keyboard_master::io_20_w) +WRITE8_MEMBER(msx_cart_keyboard_master_device::io_20_w) { m_vlm5030->rst((data & 0x01) ? 1 : 0); m_vlm5030->vcu((data & 0x04) ? 1 : 0); @@ -947,7 +947,7 @@ WRITE8_MEMBER(msx_cart_keyboard_master::io_20_w) } -READ8_MEMBER(msx_cart_keyboard_master::io_00_r) +READ8_MEMBER(msx_cart_keyboard_master_device::io_00_r) { return m_vlm5030->bsy() ? 0x10 : 0x00; } diff --git a/src/devices/bus/msx_cart/konami.h b/src/devices/bus/msx_cart/konami.h index 74400582420..a086e6467a2 100644 --- a/src/devices/bus/msx_cart/konami.h +++ b/src/devices/bus/msx_cart/konami.h @@ -1,7 +1,7 @@ // license:BSD-3-Clause // copyright-holders:Wilbert Pol -#ifndef __MSX_CART_KONAMI_H -#define __MSX_CART_KONAMI_H +#ifndef MAME_BUS_MSX_CART_KONAMI_H +#define MAME_BUS_MSX_CART_KONAMI_H #include "bus/msx_cart/cartridge.h" #include "sound/k051649.h" @@ -9,30 +9,30 @@ #include "sound/dac.h" -extern const device_type MSX_CART_KONAMI; -extern const device_type MSX_CART_KONAMI_SCC; -extern const device_type MSX_CART_GAMEMASTER2; -extern const device_type MSX_CART_SYNTHESIZER; -extern const device_type MSX_CART_SOUND_SNATCHER; -extern const device_type MSX_CART_SOUND_SDSNATCHER; -extern const device_type MSX_CART_KEYBOARD_MASTER; +DECLARE_DEVICE_TYPE(MSX_CART_KONAMI, msx_cart_konami_device) +DECLARE_DEVICE_TYPE(MSX_CART_KONAMI_SCC, msx_cart_konami_scc_device) +DECLARE_DEVICE_TYPE(MSX_CART_GAMEMASTER2, msx_cart_gamemaster2_device) +DECLARE_DEVICE_TYPE(MSX_CART_SYNTHESIZER, msx_cart_synthesizer_device) +DECLARE_DEVICE_TYPE(MSX_CART_SOUND_SNATCHER, msx_cart_konami_sound_snatcher_device) +DECLARE_DEVICE_TYPE(MSX_CART_SOUND_SDSNATCHER, msx_cart_konami_sound_sdsnatcher_device) +DECLARE_DEVICE_TYPE(MSX_CART_KEYBOARD_MASTER, msx_cart_keyboard_master_device) -class msx_cart_konami : public device_t - , public msx_cart_interface +class msx_cart_konami_device : public device_t, public msx_cart_interface { public: - msx_cart_konami(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; + msx_cart_konami_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual void initialize_cartridge() override; virtual DECLARE_READ8_MEMBER(read_cart) override; virtual DECLARE_WRITE8_MEMBER(write_cart) override; +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + void restore_banks(); private: @@ -42,15 +42,11 @@ private: }; -class msx_cart_konami_scc : public device_t - , public msx_cart_interface +class msx_cart_konami_scc_device : public device_t, public msx_cart_interface { public: - msx_cart_konami_scc(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + msx_cart_konami_scc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; virtual machine_config_constructor device_mconfig_additions() const override; virtual void initialize_cartridge() override; @@ -58,6 +54,11 @@ public: virtual DECLARE_READ8_MEMBER(read_cart) override; virtual DECLARE_WRITE8_MEMBER(write_cart) override; +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + void restore_banks(); private: @@ -70,21 +71,21 @@ private: }; -class msx_cart_gamemaster2 : public device_t - , public msx_cart_interface +class msx_cart_gamemaster2_device : public device_t, public msx_cart_interface { public: - msx_cart_gamemaster2(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; + msx_cart_gamemaster2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual void initialize_cartridge() override; virtual DECLARE_READ8_MEMBER(read_cart) override; virtual DECLARE_WRITE8_MEMBER(write_cart) override; +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + void restore_banks(); private: @@ -95,14 +96,11 @@ private: }; -class msx_cart_synthesizer : public device_t - , public msx_cart_interface +class msx_cart_synthesizer_device : public device_t, public msx_cart_interface { public: - msx_cart_synthesizer(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + msx_cart_synthesizer_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual machine_config_constructor device_mconfig_additions() const override; virtual void initialize_cartridge() override; @@ -110,21 +108,19 @@ public: virtual DECLARE_READ8_MEMBER(read_cart) override; virtual DECLARE_WRITE8_MEMBER(write_cart) override; +protected: + // device-level overrides + virtual void device_start() override; + private: uint8_t *m_bank_base; required_device m_dac; }; -class msx_cart_konami_sound : public device_t - , public msx_cart_interface +class msx_cart_konami_sound_device : public device_t, public msx_cart_interface { public: - msx_cart_konami_sound(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; virtual machine_config_constructor device_mconfig_additions() const override; virtual void initialize_cartridge() override; @@ -132,9 +128,15 @@ public: virtual DECLARE_READ8_MEMBER(read_cart) override; virtual DECLARE_WRITE8_MEMBER(write_cart) override; +protected: + msx_cart_konami_sound_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + void restore_banks(); -protected: uint8_t *m_ram_bank[16]; private: @@ -152,34 +154,32 @@ private: }; -class msx_cart_konami_sound_snatcher : public msx_cart_konami_sound +class msx_cart_konami_sound_snatcher_device : public msx_cart_konami_sound_device { public: - msx_cart_konami_sound_snatcher(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + msx_cart_konami_sound_snatcher_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual void initialize_cartridge() override; }; -class msx_cart_konami_sound_sdsnatcher : public msx_cart_konami_sound +class msx_cart_konami_sound_sdsnatcher_device : public msx_cart_konami_sound_device { public: - msx_cart_konami_sound_sdsnatcher(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + msx_cart_konami_sound_sdsnatcher_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual void initialize_cartridge() override; }; -class msx_cart_keyboard_master : public device_t - , public msx_cart_interface +class msx_cart_keyboard_master_device : public device_t, public msx_cart_interface { public: - msx_cart_keyboard_master(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + msx_cart_keyboard_master_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // device-level overrides virtual machine_config_constructor device_mconfig_additions() const override; - virtual void device_start() override; virtual void initialize_cartridge() override; @@ -189,10 +189,13 @@ public: DECLARE_WRITE8_MEMBER(io_20_w); DECLARE_READ8_MEMBER(io_00_r); +protected: + virtual void device_start() override; + private: required_device m_vlm5030; }; -#endif +#endif // MAME_BUS_MSX_CART_KONAMI_H diff --git a/src/devices/bus/msx_cart/korean.cpp b/src/devices/bus/msx_cart/korean.cpp index 8ea5b5cfac3..cfa96ecb7aa 100644 --- a/src/devices/bus/msx_cart/korean.cpp +++ b/src/devices/bus/msx_cart/korean.cpp @@ -3,39 +3,36 @@ #include "emu.h" #include "korean.h" -const device_type MSX_CART_KOREAN_80IN1 = device_creator; -const device_type MSX_CART_KOREAN_90IN1 = device_creator; -const device_type MSX_CART_KOREAN_126IN1 = device_creator; +DEFINE_DEVICE_TYPE(MSX_CART_KOREAN_80IN1, msx_cart_korean_80in1_device, "msx_cart_korean_80in1", "MSX Cartridge - Korean 80-in-1") +DEFINE_DEVICE_TYPE(MSX_CART_KOREAN_90IN1, msx_cart_korean_90in1_device, "msx_cart_korean_90in1", "MSX Cartridge - Korean 90-in-1") +DEFINE_DEVICE_TYPE(MSX_CART_KOREAN_126IN1, msx_cart_korean_126in1_device, "msx_cart_korean_126in1", "MSX Cartridge - Korean 126-in-1") -msx_cart_korean_80in1::msx_cart_korean_80in1(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MSX_CART_KOREAN_80IN1, "MSX Cartridge - Korean 80-in-1", tag, owner, clock, "msx_cart_korean_80in1", __FILE__) +msx_cart_korean_80in1_device::msx_cart_korean_80in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, MSX_CART_KOREAN_80IN1, tag, owner, clock) , msx_cart_interface(mconfig, *this) , m_bank_mask(0) + , m_selected_bank{ 0, 1, 2, 3 } + , m_bank_base{ nullptr, nullptr, nullptr, nullptr } { - for (int i = 0; i < 4; i++) - { - m_selected_bank[i] = i; - m_bank_base[i] = nullptr; - } } -void msx_cart_korean_80in1::device_start() +void msx_cart_korean_80in1_device::device_start() { save_item(NAME(m_selected_bank)); - machine().save().register_postload(save_prepost_delegate(FUNC(msx_cart_korean_80in1::restore_banks), this)); + machine().save().register_postload(save_prepost_delegate(FUNC(msx_cart_korean_80in1_device::restore_banks), this)); } -void msx_cart_korean_80in1::setup_bank(uint8_t bank) +void msx_cart_korean_80in1_device::setup_bank(uint8_t bank) { m_bank_base[bank] = get_rom_base() + ( m_selected_bank[bank] & m_bank_mask ) * 0x2000; } -void msx_cart_korean_80in1::restore_banks() +void msx_cart_korean_80in1_device::restore_banks() { for (int i = 0; i < 4; i++) { @@ -44,7 +41,7 @@ void msx_cart_korean_80in1::restore_banks() } -void msx_cart_korean_80in1::device_reset() +void msx_cart_korean_80in1_device::device_reset() { for (int i = 0; i < 4; i++) { @@ -53,7 +50,7 @@ void msx_cart_korean_80in1::device_reset() } -void msx_cart_korean_80in1::initialize_cartridge() +void msx_cart_korean_80in1_device::initialize_cartridge() { uint32_t size = get_rom_size(); @@ -75,7 +72,7 @@ void msx_cart_korean_80in1::initialize_cartridge() } -READ8_MEMBER(msx_cart_korean_80in1::read_cart) +READ8_MEMBER(msx_cart_korean_80in1_device::read_cart) { if (offset >= 0x4000 && offset < 0xc000) { @@ -86,7 +83,7 @@ READ8_MEMBER(msx_cart_korean_80in1::read_cart) } -WRITE8_MEMBER(msx_cart_korean_80in1::write_cart) +WRITE8_MEMBER(msx_cart_korean_80in1_device::write_cart) { if (offset >= 0x4000 && offset < 0x4004) { @@ -101,32 +98,29 @@ WRITE8_MEMBER(msx_cart_korean_80in1::write_cart) -msx_cart_korean_90in1::msx_cart_korean_90in1(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MSX_CART_KOREAN_90IN1, "MSX Cartridge - Korean 90-in-1", tag, owner, clock, "msx_cart_korean_90in1", __FILE__) +msx_cart_korean_90in1_device::msx_cart_korean_90in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, MSX_CART_KOREAN_90IN1, tag, owner, clock) , msx_cart_interface(mconfig, *this) , m_bank_mask(0) , m_selected_bank(0) + , m_bank_base{ nullptr, nullptr, nullptr, nullptr } { - for (auto & elem : m_bank_base) - { - elem = nullptr; - } } -void msx_cart_korean_90in1::device_start() +void msx_cart_korean_90in1_device::device_start() { save_item(NAME(m_selected_bank)); - machine().save().register_postload(save_prepost_delegate(FUNC(msx_cart_korean_90in1::restore_banks), this)); + machine().save().register_postload(save_prepost_delegate(FUNC(msx_cart_korean_90in1_device::restore_banks), this)); // Install IO read/write handlers address_space &space = machine().device("maincpu")->space(AS_IO); - space.install_write_handler(0x77, 0x77, write8_delegate(FUNC(msx_cart_korean_90in1::banking), this)); + space.install_write_handler(0x77, 0x77, write8_delegate(FUNC(msx_cart_korean_90in1_device::banking), this)); } -void msx_cart_korean_90in1::restore_banks() +void msx_cart_korean_90in1_device::restore_banks() { uint8_t *base = get_rom_base(); @@ -159,13 +153,13 @@ void msx_cart_korean_90in1::restore_banks() } -void msx_cart_korean_90in1::device_reset() +void msx_cart_korean_90in1_device::device_reset() { m_selected_bank = 0; } -void msx_cart_korean_90in1::initialize_cartridge() +void msx_cart_korean_90in1_device::initialize_cartridge() { uint32_t size = get_rom_size(); @@ -187,7 +181,7 @@ void msx_cart_korean_90in1::initialize_cartridge() } -READ8_MEMBER(msx_cart_korean_90in1::read_cart) +READ8_MEMBER(msx_cart_korean_90in1_device::read_cart) { if (offset >= 0x4000 && offset < 0xc000) { @@ -198,7 +192,7 @@ READ8_MEMBER(msx_cart_korean_90in1::read_cart) } -WRITE8_MEMBER(msx_cart_korean_90in1::banking) +WRITE8_MEMBER(msx_cart_korean_90in1_device::banking) { m_selected_bank = data; restore_banks(); @@ -208,34 +202,31 @@ WRITE8_MEMBER(msx_cart_korean_90in1::banking) -msx_cart_korean_126in1::msx_cart_korean_126in1(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MSX_CART_KOREAN_126IN1, "MSX Cartridge - Korean 126-in-1", tag, owner, clock, "msx_cart_korean_126in1", __FILE__) +msx_cart_korean_126in1_device::msx_cart_korean_126in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, MSX_CART_KOREAN_126IN1, tag, owner, clock) , msx_cart_interface(mconfig, *this) , m_bank_mask(0) + , m_selected_bank{ 0, 1 } + , m_bank_base{ nullptr, nullptr } { - for (int i = 0; i < 2; i++) - { - m_selected_bank[i] = i; - m_bank_base[i] = nullptr; - } } -void msx_cart_korean_126in1::device_start() +void msx_cart_korean_126in1_device::device_start() { save_item(NAME(m_selected_bank)); - machine().save().register_postload(save_prepost_delegate(FUNC(msx_cart_korean_126in1::restore_banks), this)); + machine().save().register_postload(save_prepost_delegate(FUNC(msx_cart_korean_126in1_device::restore_banks), this)); } -void msx_cart_korean_126in1::setup_bank(uint8_t bank) +void msx_cart_korean_126in1_device::setup_bank(uint8_t bank) { m_bank_base[bank] = get_rom_base() + ( m_selected_bank[bank] & m_bank_mask ) * 0x4000; } -void msx_cart_korean_126in1::restore_banks() +void msx_cart_korean_126in1_device::restore_banks() { for (int i = 0; i < 2; i++) { @@ -244,7 +235,7 @@ void msx_cart_korean_126in1::restore_banks() } -void msx_cart_korean_126in1::device_reset() +void msx_cart_korean_126in1_device::device_reset() { for (int i = 0; i < 2; i++) { @@ -253,7 +244,7 @@ void msx_cart_korean_126in1::device_reset() } -void msx_cart_korean_126in1::initialize_cartridge() +void msx_cart_korean_126in1_device::initialize_cartridge() { uint32_t size = get_rom_size(); @@ -275,7 +266,7 @@ void msx_cart_korean_126in1::initialize_cartridge() } -READ8_MEMBER(msx_cart_korean_126in1::read_cart) +READ8_MEMBER(msx_cart_korean_126in1_device::read_cart) { if (offset >= 0x4000 && offset < 0xc000) { @@ -286,7 +277,7 @@ READ8_MEMBER(msx_cart_korean_126in1::read_cart) } -WRITE8_MEMBER(msx_cart_korean_126in1::write_cart) +WRITE8_MEMBER(msx_cart_korean_126in1_device::write_cart) { if (offset >= 0x4000 && offset < 0x4002) { diff --git a/src/devices/bus/msx_cart/korean.h b/src/devices/bus/msx_cart/korean.h index 9dd19addf15..b34438da13e 100644 --- a/src/devices/bus/msx_cart/korean.h +++ b/src/devices/bus/msx_cart/korean.h @@ -1,51 +1,47 @@ // license:BSD-3-Clause // copyright-holders:Wilbert Pol -#ifndef __MSX_CART_KOREAN_H -#define __MSX_CART_KOREAN_H +#ifndef MAME_BUS_MSX_CART_KOREAN_H +#define MAME_BUS_MSX_CART_KOREAN_H + +#pragma once #include "bus/msx_cart/cartridge.h" -extern const device_type MSX_CART_KOREAN_80IN1; -extern const device_type MSX_CART_KOREAN_90IN1; -extern const device_type MSX_CART_KOREAN_126IN1; +DECLARE_DEVICE_TYPE(MSX_CART_KOREAN_80IN1, msx_cart_korean_80in1_device) +DECLARE_DEVICE_TYPE(MSX_CART_KOREAN_90IN1, msx_cart_korean_90in1_device) +DECLARE_DEVICE_TYPE(MSX_CART_KOREAN_126IN1, msx_cart_korean_126in1_device) -class msx_cart_korean_80in1 : public device_t - , public msx_cart_interface +class msx_cart_korean_80in1_device : public device_t, public msx_cart_interface { public: - msx_cart_korean_80in1(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; + msx_cart_korean_80in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual void initialize_cartridge() override; virtual DECLARE_READ8_MEMBER(read_cart) override; virtual DECLARE_WRITE8_MEMBER(write_cart) override; - void restore_banks(); +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; private: + void restore_banks(); + void setup_bank(uint8_t bank); + uint8_t m_bank_mask; uint8_t m_selected_bank[4]; uint8_t *m_bank_base[4]; - - void setup_bank(uint8_t bank); }; -class msx_cart_korean_90in1 : public device_t - , public msx_cart_interface +class msx_cart_korean_90in1_device : public device_t, public msx_cart_interface { public: - msx_cart_korean_90in1(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; + msx_cart_korean_90in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual void initialize_cartridge() override; @@ -53,39 +49,43 @@ public: DECLARE_WRITE8_MEMBER(banking); - void restore_banks(); +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; private: + void restore_banks(); + uint8_t m_bank_mask; uint8_t m_selected_bank; uint8_t *m_bank_base[4]; }; -class msx_cart_korean_126in1 : public device_t - , public msx_cart_interface +class msx_cart_korean_126in1_device : public device_t, public msx_cart_interface { public: - msx_cart_korean_126in1(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; + msx_cart_korean_126in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual void initialize_cartridge() override; virtual DECLARE_READ8_MEMBER(read_cart) override; virtual DECLARE_WRITE8_MEMBER(write_cart) override; - void restore_banks(); +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; private: + void restore_banks(); + void setup_bank(uint8_t bank); + uint8_t m_bank_mask; uint8_t m_selected_bank[2]; uint8_t *m_bank_base[2]; - - void setup_bank(uint8_t bank); }; -#endif +#endif // MAME_BUS_MSX_CART_KOREAN_H diff --git a/src/devices/bus/msx_cart/majutsushi.cpp b/src/devices/bus/msx_cart/majutsushi.cpp index 8617860431d..94ac0a41969 100644 --- a/src/devices/bus/msx_cart/majutsushi.cpp +++ b/src/devices/bus/msx_cart/majutsushi.cpp @@ -7,11 +7,11 @@ #include "speaker.h" -const device_type MSX_CART_MAJUTSUSHI = device_creator; +DEFINE_DEVICE_TYPE(MSX_CART_MAJUTSUSHI, msx_cart_majutsushi_device, "msx_cart_majutsushi", "MSX Cartridge - Majutsushi") -msx_cart_majutsushi::msx_cart_majutsushi(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MSX_CART_MAJUTSUSHI, "MSX Cartridge - Majutsushi", tag, owner, clock, "msx_cart_majutsushi", __FILE__) +msx_cart_majutsushi_device::msx_cart_majutsushi_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, MSX_CART_MAJUTSUSHI, tag, owner, clock) , msx_cart_interface(mconfig, *this) , m_dac(*this, "dac") { @@ -35,21 +35,21 @@ static MACHINE_CONFIG_FRAGMENT( majutsushi ) MACHINE_CONFIG_END -machine_config_constructor msx_cart_majutsushi::device_mconfig_additions() const +machine_config_constructor msx_cart_majutsushi_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( majutsushi ); } -void msx_cart_majutsushi::device_start() +void msx_cart_majutsushi_device::device_start() { save_item(NAME(m_selected_bank)); - machine().save().register_postload(save_prepost_delegate(FUNC(msx_cart_majutsushi::restore_banks), this)); + machine().save().register_postload(save_prepost_delegate(FUNC(msx_cart_majutsushi_device::restore_banks), this)); } -void msx_cart_majutsushi::restore_banks() +void msx_cart_majutsushi_device::restore_banks() { m_bank_base[0] = get_rom_base() + ( m_selected_bank[0] & 0x0f ) * 0x2000; m_bank_base[1] = get_rom_base() + ( m_selected_bank[1] & 0x0f ) * 0x2000; @@ -62,7 +62,7 @@ void msx_cart_majutsushi::restore_banks() } -void msx_cart_majutsushi::device_reset() +void msx_cart_majutsushi_device::device_reset() { for (int i = 0; i < 4; i++) { @@ -71,7 +71,7 @@ void msx_cart_majutsushi::device_reset() } -void msx_cart_majutsushi::initialize_cartridge() +void msx_cart_majutsushi_device::initialize_cartridge() { if ( get_rom_size() != 0x20000 ) { @@ -82,13 +82,13 @@ void msx_cart_majutsushi::initialize_cartridge() } -READ8_MEMBER(msx_cart_majutsushi::read_cart) +READ8_MEMBER(msx_cart_majutsushi_device::read_cart) { return m_bank_base[offset >> 13][offset & 0x1fff]; } -WRITE8_MEMBER(msx_cart_majutsushi::write_cart) +WRITE8_MEMBER(msx_cart_majutsushi_device::write_cart) { switch (offset & 0xe000) { diff --git a/src/devices/bus/msx_cart/majutsushi.h b/src/devices/bus/msx_cart/majutsushi.h index 94be25040c3..db45c111383 100644 --- a/src/devices/bus/msx_cart/majutsushi.h +++ b/src/devices/bus/msx_cart/majutsushi.h @@ -1,24 +1,22 @@ // license:BSD-3-Clause // copyright-holders:Wilbert Pol -#ifndef __MSX_CART_MAJUTSUSHI_H -#define __MSX_CART_MAJUTSUSHI_H +#ifndef MAME_BUS_MSX_CART_MAJUTSUSHI_H +#define MAME_BUS_MSX_CART_MAJUTSUSHI_H + +#pragma once #include "bus/msx_cart/cartridge.h" #include "sound/dac.h" -extern const device_type MSX_CART_MAJUTSUSHI; +DECLARE_DEVICE_TYPE(MSX_CART_MAJUTSUSHI, msx_cart_majutsushi_device) -class msx_cart_majutsushi : public device_t - , public msx_cart_interface +class msx_cart_majutsushi_device : public device_t, public msx_cart_interface { public: - msx_cart_majutsushi(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + msx_cart_majutsushi_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; virtual machine_config_constructor device_mconfig_additions() const override; virtual void initialize_cartridge() override; @@ -26,6 +24,11 @@ public: virtual DECLARE_READ8_MEMBER(read_cart) override; virtual DECLARE_WRITE8_MEMBER(write_cart) override; +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + void restore_banks(); private: @@ -36,4 +39,4 @@ private: }; -#endif +#endif // MAME_BUS_MSX_CART_MAJUTSUSHI_H diff --git a/src/devices/bus/msx_cart/moonsound.cpp b/src/devices/bus/msx_cart/moonsound.cpp index 95a212ebb67..ea98a467b77 100644 --- a/src/devices/bus/msx_cart/moonsound.cpp +++ b/src/devices/bus/msx_cart/moonsound.cpp @@ -15,21 +15,21 @@ TODO: #define VERBOSE 0 -#define LOG(x) do { if (VERBOSE) logerror x; } while (0) +#include "logmacro.h" -const device_type MSX_CART_MOONSOUND = device_creator; +DEFINE_DEVICE_TYPE(MSX_CART_MOONSOUND, msx_cart_moonsound_device, "msx_moonsound", "MSX Cartridge - MoonSound") -msx_cart_moonsound::msx_cart_moonsound(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MSX_CART_MOONSOUND, "MSX Cartridge - MoonSound", tag, owner, clock, "msx_moonsound", __FILE__) +msx_cart_moonsound_device::msx_cart_moonsound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, MSX_CART_MOONSOUND, tag, owner, clock) , msx_cart_interface(mconfig, *this) , m_ymf278b(*this, "ymf278b") { } -static ADDRESS_MAP_START( ymf278b_map, AS_0, 8, msx_cart_moonsound ) +static ADDRESS_MAP_START( ymf278b_map, AS_0, 8, msx_cart_moonsound_device ) AM_RANGE(0x000000, 0x1fffff) AM_ROM AM_RANGE(0x200000, 0x3fffff) AM_RAM // 2MB sram for testing ADDRESS_MAP_END @@ -40,7 +40,7 @@ static MACHINE_CONFIG_FRAGMENT( moonsound ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") MCFG_SOUND_ADD("ymf278b", YMF278B, YMF278B_STD_CLOCK) MCFG_DEVICE_ADDRESS_MAP(AS_0, ymf278b_map) - MCFG_YMF278B_IRQ_HANDLER(WRITELINE(msx_cart_moonsound,irq_w)) + MCFG_YMF278B_IRQ_HANDLER(WRITELINE(msx_cart_moonsound_device,irq_w)) MCFG_SOUND_ROUTE(0, "lspeaker", 0.50) MCFG_SOUND_ROUTE(1, "rspeaker", 0.50) MCFG_SOUND_ROUTE(2, "lspeaker", 0.40) @@ -50,7 +50,7 @@ static MACHINE_CONFIG_FRAGMENT( moonsound ) MACHINE_CONFIG_END -machine_config_constructor msx_cart_moonsound::device_mconfig_additions() const +machine_config_constructor msx_cart_moonsound_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( moonsound ); } @@ -62,67 +62,67 @@ ROM_START( msx_cart_moonsound ) ROM_END -const tiny_rom_entry *msx_cart_moonsound::device_rom_region() const +const tiny_rom_entry *msx_cart_moonsound_device::device_rom_region() const { return ROM_NAME( msx_cart_moonsound ); } -void msx_cart_moonsound::device_start() +void msx_cart_moonsound_device::device_start() { m_out_irq_cb.resolve_safe(); // Install IO read/write handlers address_space &space = machine().device("maincpu")->space(AS_IO); - space.install_readwrite_handler(0x7e, 0x7f, read8_delegate(FUNC(msx_cart_moonsound::read_ymf278b_pcm), this), write8_delegate(FUNC(msx_cart_moonsound::write_ymf278b_pcm), this)); - space.install_readwrite_handler(0xc4, 0xc7, read8_delegate(FUNC(msx_cart_moonsound::read_ymf278b_fm), this), write8_delegate(FUNC(msx_cart_moonsound::write_ymf278b_fm), this)); - space.install_read_handler(0xc0, 0xc0, read8_delegate(FUNC(msx_cart_moonsound::read_c0), this)); + space.install_readwrite_handler(0x7e, 0x7f, read8_delegate(FUNC(msx_cart_moonsound_device::read_ymf278b_pcm), this), write8_delegate(FUNC(msx_cart_moonsound_device::write_ymf278b_pcm), this)); + space.install_readwrite_handler(0xc4, 0xc7, read8_delegate(FUNC(msx_cart_moonsound_device::read_ymf278b_fm), this), write8_delegate(FUNC(msx_cart_moonsound_device::write_ymf278b_fm), this)); + space.install_read_handler(0xc0, 0xc0, read8_delegate(FUNC(msx_cart_moonsound_device::read_c0), this)); } -void msx_cart_moonsound::device_reset() +void msx_cart_moonsound_device::device_reset() { } -WRITE_LINE_MEMBER(msx_cart_moonsound::irq_w) +WRITE_LINE_MEMBER(msx_cart_moonsound_device::irq_w) { - LOG(("moonsound: irq state %d\n", state)); + LOG("moonsound: irq state %d\n", state); m_out_irq_cb(state); } -WRITE8_MEMBER(msx_cart_moonsound::write_ymf278b_fm) +WRITE8_MEMBER(msx_cart_moonsound_device::write_ymf278b_fm) { - LOG(("moonsound: write 0x%02x, data 0x%02x\n", 0xc4 + offset, data)); + LOG("moonsound: write 0x%02x, data 0x%02x\n", 0xc4 + offset, data); m_ymf278b->write(space, offset, data); } -READ8_MEMBER(msx_cart_moonsound::read_ymf278b_fm) +READ8_MEMBER(msx_cart_moonsound_device::read_ymf278b_fm) { - LOG(("moonsound: read 0x%02x\n", 0xc4 + offset)); + LOG("moonsound: read 0x%02x\n", 0xc4 + offset); return m_ymf278b->read(space, offset); } -WRITE8_MEMBER(msx_cart_moonsound::write_ymf278b_pcm) +WRITE8_MEMBER(msx_cart_moonsound_device::write_ymf278b_pcm) { - LOG(("moonsound: write 0x%02x, data 0x%02x\n", 0x7e + offset, data)); + LOG("moonsound: write 0x%02x, data 0x%02x\n", 0x7e + offset, data); m_ymf278b->write(space, 4 + offset, data); } -READ8_MEMBER(msx_cart_moonsound::read_ymf278b_pcm) +READ8_MEMBER(msx_cart_moonsound_device::read_ymf278b_pcm) { - LOG(("moonsound: read 0x%02x\n", 0x7e + offset)); + LOG("moonsound: read 0x%02x\n", 0x7e + offset); return m_ymf278b->read(space, 4 + offset); } // For detecting presence of moonsound cartridge -READ8_MEMBER(msx_cart_moonsound::read_c0) +READ8_MEMBER(msx_cart_moonsound_device::read_c0) { - LOG(("moonsound: read 0xc0\n")); + LOG("moonsound: read 0xc0\n"); return 0x00; } diff --git a/src/devices/bus/msx_cart/moonsound.h b/src/devices/bus/msx_cart/moonsound.h index 94adfb6ee6a..1fee19bc133 100644 --- a/src/devices/bus/msx_cart/moonsound.h +++ b/src/devices/bus/msx_cart/moonsound.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Wilbert Pol -#ifndef __MSX_CART_MOONSOUND_H -#define __MSX_CART_MOONSOUND_H +#ifndef MAME_BUS_MSX_CART_MOONSOUND_H +#define MAME_BUS_MSX_CART_MOONSOUND_H + +#pragma once #include "bus/msx_cart/cartridge.h" #include "sound/ymf278b.h" @@ -10,15 +12,11 @@ extern const device_type MSX_CART_MOONSOUND; -class msx_cart_moonsound : public device_t - , public msx_cart_interface +class msx_cart_moonsound_device : public device_t, public msx_cart_interface { public: - msx_cart_moonsound(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + msx_cart_moonsound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; virtual machine_config_constructor device_mconfig_additions() const override; virtual const tiny_rom_entry *device_rom_region() const override; @@ -29,9 +27,14 @@ public: DECLARE_READ8_MEMBER(read_c0); DECLARE_WRITE_LINE_MEMBER(irq_w); +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + private: required_device m_ymf278b; }; -#endif +#endif // MAME_BUS_MSX_CART_MOONSOUND_H diff --git a/src/devices/bus/msx_cart/msx_audio.cpp b/src/devices/bus/msx_cart/msx_audio.cpp index 19a48299e7c..7ed03d4255e 100644 --- a/src/devices/bus/msx_cart/msx_audio.cpp +++ b/src/devices/bus/msx_cart/msx_audio.cpp @@ -67,13 +67,13 @@ and/or http://ngs.no.coocan.jp/doc/wiki.cgi/datapack?page=4.2+MSX-AUDIO+%B3%C8%C #include "speaker.h" -const device_type MSX_CART_MSX_AUDIO_HXMU900 = device_creator; -const device_type MSX_CART_MSX_AUDIO_NMS1205 = device_creator; -const device_type MSX_CART_MSX_AUDIO_FSCA1 = device_creator; +DEFINE_DEVICE_TYPE(MSX_CART_MSX_AUDIO_HXMU900, msx_cart_msx_audio_hxmu900_device, "msx_audio_hxmu900", "MSX Cartridge - MSX-AUDIO HX-MU900") +DEFINE_DEVICE_TYPE(MSX_CART_MSX_AUDIO_NMS1205, msx_cart_msx_audio_nms1205_device, "msx_audio_nms1205", "MSX Cartridge - MSX-AUDIO NMS-1205") +DEFINE_DEVICE_TYPE(MSX_CART_MSX_AUDIO_FSCA1, msx_cart_msx_audio_fsca1_device, "msx_audio_fsca1", "MSX Cartridge - MSX-AUDIO FS-CA1") -msx_cart_msx_audio_hxmu900::msx_cart_msx_audio_hxmu900(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MSX_CART_MSX_AUDIO_HXMU900, "MSX Cartridge - MSX-AUDIO HX-MU900", tag, owner, clock, "msx_audio_hxmu900", __FILE__) +msx_cart_msx_audio_hxmu900_device::msx_cart_msx_audio_hxmu900_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, MSX_CART_MSX_AUDIO_HXMU900, tag, owner, clock) , msx_cart_interface(mconfig, *this) , m_y8950(*this, "y8950") { @@ -92,13 +92,13 @@ static MACHINE_CONFIG_FRAGMENT( msx_audio_hxmu900 ) MACHINE_CONFIG_END -machine_config_constructor msx_cart_msx_audio_hxmu900::device_mconfig_additions() const +machine_config_constructor msx_cart_msx_audio_hxmu900_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( msx_audio_hxmu900 ); } -void msx_cart_msx_audio_hxmu900::device_start() +void msx_cart_msx_audio_hxmu900_device::device_start() { // Install IO read/write handlers address_space &space = machine().device("maincpu")->space(AS_IO); @@ -107,7 +107,7 @@ void msx_cart_msx_audio_hxmu900::device_start() } -void msx_cart_msx_audio_hxmu900::initialize_cartridge() +void msx_cart_msx_audio_hxmu900_device::initialize_cartridge() { if (get_rom_size() < 0x8000) { @@ -116,7 +116,7 @@ void msx_cart_msx_audio_hxmu900::initialize_cartridge() } -READ8_MEMBER(msx_cart_msx_audio_hxmu900::read_cart) +READ8_MEMBER(msx_cart_msx_audio_hxmu900_device::read_cart) { if (offset >= 0x4000 && offset < 0xC000) { @@ -129,8 +129,8 @@ READ8_MEMBER(msx_cart_msx_audio_hxmu900::read_cart) -msx_cart_msx_audio_nms1205::msx_cart_msx_audio_nms1205(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MSX_CART_MSX_AUDIO_NMS1205, "MSX Cartridge - MSX-AUDIO NMS-1205", tag, owner, clock, "msx_audio_nms1205", __FILE__) +msx_cart_msx_audio_nms1205_device::msx_cart_msx_audio_nms1205_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, MSX_CART_MSX_AUDIO_NMS1205, tag, owner, clock) , msx_cart_interface(mconfig, *this) , m_y8950(*this, "y8950") , m_acia6850(*this, "acia6850") @@ -148,7 +148,7 @@ static MACHINE_CONFIG_FRAGMENT( msx_audio_nms1205 ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40) MCFG_Y8950_KEYBOARD_WRITE_HANDLER(DEVWRITE8("kbdc", msx_audio_kbdc_port_device, write)) MCFG_Y8950_KEYBOARD_READ_HANDLER(DEVREAD8("kbdc", msx_audio_kbdc_port_device, read)) - MCFG_Y8950_IRQ_HANDLER(WRITELINE(msx_cart_msx_audio_nms1205, irq_write)) + MCFG_Y8950_IRQ_HANDLER(WRITELINE(msx_cart_msx_audio_nms1205_device, irq_write)) MCFG_MSX_AUDIO_KBDC_PORT_ADD("kbdc", msx_audio_keyboards, nullptr) @@ -157,7 +157,7 @@ static MACHINE_CONFIG_FRAGMENT( msx_audio_nms1205 ) MCFG_ACIA6850_TXD_HANDLER(DEVWRITELINE("mdout", midi_port_device, write_txd)) MCFG_MIDI_PORT_ADD("mdin", midiin_slot, "midiin") - MCFG_MIDI_RX_HANDLER(WRITELINE(msx_cart_msx_audio_nms1205, midi_in)) + MCFG_MIDI_RX_HANDLER(WRITELINE(msx_cart_msx_audio_nms1205_device, midi_in)) MCFG_MIDI_PORT_ADD("mdthru", midiout_slot, "midiout") @@ -165,7 +165,7 @@ static MACHINE_CONFIG_FRAGMENT( msx_audio_nms1205 ) MACHINE_CONFIG_END -machine_config_constructor msx_cart_msx_audio_nms1205::device_mconfig_additions() const +machine_config_constructor msx_cart_msx_audio_nms1205_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( msx_audio_nms1205 ); } @@ -176,13 +176,13 @@ ROM_START( msx_nms1205 ) ROM_END -const tiny_rom_entry *msx_cart_msx_audio_nms1205::device_rom_region() const +const tiny_rom_entry *msx_cart_msx_audio_nms1205_device::device_rom_region() const { return ROM_NAME( msx_nms1205 ); } -WRITE_LINE_MEMBER(msx_cart_msx_audio_nms1205::irq_write) +WRITE_LINE_MEMBER(msx_cart_msx_audio_nms1205_device::irq_write) { // Trigger IRQ on the maincpu // The 8950 seems to trigger an irq on reset, this causes an infinite loop of continuously triggering @@ -192,7 +192,7 @@ WRITE_LINE_MEMBER(msx_cart_msx_audio_nms1205::irq_write) } -WRITE_LINE_MEMBER(msx_cart_msx_audio_nms1205::midi_in) +WRITE_LINE_MEMBER(msx_cart_msx_audio_nms1205_device::midi_in) { // MIDI in signals is sent to both the 6850 and the MIDI thru output port m_acia6850->write_rxd(state); @@ -200,7 +200,7 @@ WRITE_LINE_MEMBER(msx_cart_msx_audio_nms1205::midi_in) } -void msx_cart_msx_audio_nms1205::device_start() +void msx_cart_msx_audio_nms1205_device::device_start() { // Install IO read/write handlers address_space &space = machine().device("maincpu")->space(AS_IO); @@ -213,7 +213,7 @@ void msx_cart_msx_audio_nms1205::device_start() } -void msx_cart_msx_audio_nms1205::initialize_cartridge() +void msx_cart_msx_audio_nms1205_device::initialize_cartridge() { if (get_rom_size() < 0x8000) { @@ -222,7 +222,7 @@ void msx_cart_msx_audio_nms1205::initialize_cartridge() } -READ8_MEMBER(msx_cart_msx_audio_nms1205::read_cart) +READ8_MEMBER(msx_cart_msx_audio_nms1205_device::read_cart) { if (offset >= 0x4000 && offset < 0xC000) { @@ -237,8 +237,8 @@ READ8_MEMBER(msx_cart_msx_audio_nms1205::read_cart) -msx_cart_msx_audio_fsca1::msx_cart_msx_audio_fsca1(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MSX_CART_MSX_AUDIO_FSCA1, "MSX Cartridge - MSX-AUDIO FS-CA1", tag, owner, clock, "msx_audio_fsca1", __FILE__) +msx_cart_msx_audio_fsca1_device::msx_cart_msx_audio_fsca1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, MSX_CART_MSX_AUDIO_FSCA1, tag, owner, clock) , msx_cart_interface(mconfig, *this) , m_y8950(*this, "y8950") , m_io_config(*this, "CONFIG") @@ -256,14 +256,14 @@ static MACHINE_CONFIG_FRAGMENT( msx_audio_fsca1 ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40) MCFG_Y8950_KEYBOARD_WRITE_HANDLER(DEVWRITE8("kbdc", msx_audio_kbdc_port_device, write)) MCFG_Y8950_KEYBOARD_READ_HANDLER(DEVREAD8("kbdc", msx_audio_kbdc_port_device, read)) - MCFG_Y8950_IO_READ_HANDLER(READ8(msx_cart_msx_audio_fsca1, y8950_io_r)) - MCFG_Y8950_IO_WRITE_HANDLER(WRITE8(msx_cart_msx_audio_fsca1, y8950_io_w)) + MCFG_Y8950_IO_READ_HANDLER(READ8(msx_cart_msx_audio_fsca1_device, y8950_io_r)) + MCFG_Y8950_IO_WRITE_HANDLER(WRITE8(msx_cart_msx_audio_fsca1_device, y8950_io_w)) MCFG_MSX_AUDIO_KBDC_PORT_ADD("kbdc", msx_audio_keyboards, nullptr) MACHINE_CONFIG_END -machine_config_constructor msx_cart_msx_audio_fsca1::device_mconfig_additions() const +machine_config_constructor msx_cart_msx_audio_fsca1_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( msx_audio_fsca1 ); } @@ -278,7 +278,7 @@ static INPUT_PORTS_START( msx_audio_fsca1 ) INPUT_PORTS_END -ioport_constructor msx_cart_msx_audio_fsca1::device_input_ports() const +ioport_constructor msx_cart_msx_audio_fsca1_device::device_input_ports() const { return INPUT_PORTS_NAME( msx_audio_fsca1 ); } @@ -289,22 +289,22 @@ ROM_START( msx_fsca1 ) ROM_END -const tiny_rom_entry *msx_cart_msx_audio_fsca1::device_rom_region() const +const tiny_rom_entry *msx_cart_msx_audio_fsca1_device::device_rom_region() const { return ROM_NAME( msx_fsca1 ); } -void msx_cart_msx_audio_fsca1::device_start() +void msx_cart_msx_audio_fsca1_device::device_start() { // Install IO read/write handlers address_space &space = machine().device("maincpu")->space(AS_IO); - space.install_write_handler(0xc0, 0xc3, write8_delegate(FUNC(msx_cart_msx_audio_fsca1::write_y8950), this)); - space.install_read_handler(0xc0, 0xc3, read8_delegate(FUNC(msx_cart_msx_audio_fsca1::read_y8950), this)); + space.install_write_handler(0xc0, 0xc3, write8_delegate(FUNC(msx_cart_msx_audio_fsca1_device::write_y8950), this)); + space.install_read_handler(0xc0, 0xc3, read8_delegate(FUNC(msx_cart_msx_audio_fsca1_device::read_y8950), this)); } -void msx_cart_msx_audio_fsca1::initialize_cartridge() +void msx_cart_msx_audio_fsca1_device::initialize_cartridge() { if (get_rom_size() < 0x20000) { @@ -313,7 +313,7 @@ void msx_cart_msx_audio_fsca1::initialize_cartridge() } -READ8_MEMBER(msx_cart_msx_audio_fsca1::read_cart) +READ8_MEMBER(msx_cart_msx_audio_fsca1_device::read_cart) { if (m_7ffe == 0 && (offset & 0xB000) == 0x3000) { @@ -323,7 +323,7 @@ READ8_MEMBER(msx_cart_msx_audio_fsca1::read_cart) } -WRITE8_MEMBER(msx_cart_msx_audio_fsca1::write_cart) +WRITE8_MEMBER(msx_cart_msx_audio_fsca1_device::write_cart) { if (offset == 0x7ffe) { @@ -343,11 +343,11 @@ WRITE8_MEMBER(msx_cart_msx_audio_fsca1::write_cart) return; } - logerror("msx_cart_msx_audio_fsca1: Unhandled write %02x to %04x\n", data, offset); + logerror("msx_cart_msx_audio_fsca1_device: Unhandled write %02x to %04x\n", data, offset); } -WRITE8_MEMBER(msx_cart_msx_audio_fsca1::write_y8950) +WRITE8_MEMBER(msx_cart_msx_audio_fsca1_device::write_y8950) { if (offset & 2) { @@ -366,7 +366,7 @@ WRITE8_MEMBER(msx_cart_msx_audio_fsca1::write_y8950) } -READ8_MEMBER(msx_cart_msx_audio_fsca1::read_y8950) +READ8_MEMBER(msx_cart_msx_audio_fsca1_device::read_y8950) { if (offset & 2) { @@ -379,13 +379,13 @@ READ8_MEMBER(msx_cart_msx_audio_fsca1::read_y8950) } -WRITE8_MEMBER(msx_cart_msx_audio_fsca1::y8950_io_w) +WRITE8_MEMBER(msx_cart_msx_audio_fsca1_device::y8950_io_w) { logerror("msx_fsca1::y8950_io_w: %02x\n", data); } -READ8_MEMBER(msx_cart_msx_audio_fsca1::y8950_io_r) +READ8_MEMBER(msx_cart_msx_audio_fsca1_device::y8950_io_r) { return m_io_config->read(); } diff --git a/src/devices/bus/msx_cart/msx_audio.h b/src/devices/bus/msx_cart/msx_audio.h index 9de471ce170..02093ce94f4 100644 --- a/src/devices/bus/msx_cart/msx_audio.h +++ b/src/devices/bus/msx_cart/msx_audio.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Wilbert Pol -#ifndef __MSX_CART_MSX_AUDIO_H -#define __MSX_CART_MSX_AUDIO_H +#ifndef MAME_BUS_MSX_CART_MSX_AUDIO_H +#define MAME_BUS_MSX_CART_MSX_AUDIO_H + +#pragma once #include "bus/msx_cart/cartridge.h" #include "sound/8950intf.h" @@ -9,38 +11,37 @@ #include "bus/midi/midi.h" -extern const device_type MSX_CART_MSX_AUDIO_NMS1205; -extern const device_type MSX_CART_MSX_AUDIO_HXMU900; -extern const device_type MSX_CART_MSX_AUDIO_FSCA1; +DECLARE_DEVICE_TYPE(MSX_CART_MSX_AUDIO_HXMU900, msx_cart_msx_audio_hxmu900_device) +DECLARE_DEVICE_TYPE(MSX_CART_MSX_AUDIO_NMS1205, msx_cart_msx_audio_nms1205_device) +DECLARE_DEVICE_TYPE(MSX_CART_MSX_AUDIO_FSCA1, msx_cart_msx_audio_fsca1_device) -class msx_cart_msx_audio_hxmu900 : public device_t - , public msx_cart_interface +class msx_cart_msx_audio_hxmu900_device : public device_t, public msx_cart_interface { public: - msx_cart_msx_audio_hxmu900(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + msx_cart_msx_audio_hxmu900_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // device-level overrides - virtual void device_start() override; virtual machine_config_constructor device_mconfig_additions() const override; virtual void initialize_cartridge() override; virtual DECLARE_READ8_MEMBER(read_cart) override; +protected: + virtual void device_start() override; + private: required_device m_y8950; }; -class msx_cart_msx_audio_nms1205 : public device_t - , public msx_cart_interface +class msx_cart_msx_audio_nms1205_device : public device_t, public msx_cart_interface { public: - msx_cart_msx_audio_nms1205(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + msx_cart_msx_audio_nms1205_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // device-level overrides - virtual void device_start() override; virtual machine_config_constructor device_mconfig_additions() const override; virtual const tiny_rom_entry *device_rom_region() const override; @@ -51,6 +52,9 @@ public: DECLARE_WRITE_LINE_MEMBER(midi_in); DECLARE_WRITE_LINE_MEMBER(irq_write); +protected: + virtual void device_start() override; + private: required_device m_y8950; required_device m_acia6850; @@ -59,14 +63,12 @@ private: }; -class msx_cart_msx_audio_fsca1 : public device_t - , public msx_cart_interface +class msx_cart_msx_audio_fsca1_device : public device_t, public msx_cart_interface { public: - msx_cart_msx_audio_fsca1(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + msx_cart_msx_audio_fsca1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // device-level overrides - virtual void device_start() override; virtual machine_config_constructor device_mconfig_additions() const override; virtual ioport_constructor device_input_ports() const override; virtual const tiny_rom_entry *device_rom_region() const override; @@ -76,12 +78,15 @@ public: virtual DECLARE_READ8_MEMBER(read_cart) override; virtual DECLARE_WRITE8_MEMBER(write_cart) override; - DECLARE_WRITE8_MEMBER(write_y8950); - DECLARE_READ8_MEMBER(read_y8950); - DECLARE_WRITE8_MEMBER(y8950_io_w); DECLARE_READ8_MEMBER(y8950_io_r); +protected: + virtual void device_start() override; + + DECLARE_WRITE8_MEMBER(write_y8950); + DECLARE_READ8_MEMBER(read_y8950); + private: required_device m_y8950; required_ioport m_io_config; @@ -90,4 +95,4 @@ private: uint8_t m_7fff; }; -#endif +#endif // MAME_BUS_MSX_CART_MSX_AUDIO_H diff --git a/src/devices/bus/msx_cart/msx_audio_kb.cpp b/src/devices/bus/msx_cart/msx_audio_kb.cpp index e606e0ffae9..2bfa98758e9 100644 --- a/src/devices/bus/msx_cart/msx_audio_kb.cpp +++ b/src/devices/bus/msx_cart/msx_audio_kb.cpp @@ -4,13 +4,13 @@ #include "msx_audio_kb.h" -const device_type MSX_AUDIO_KBDC_PORT = device_creator; +DEFINE_DEVICE_TYPE(MSX_AUDIO_KBDC_PORT, msx_audio_kbdc_port_device, "msx_audio_kbdc_port", "MSX Audio keyboard connector port") msx_audio_kbdc_port_device::msx_audio_kbdc_port_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MSX_AUDIO_KBDC_PORT, "MSX Audio keyboard connector port", tag, owner, clock, "msx_audio_kbdc_port", __FILE__), - device_slot_interface(mconfig, *this), - m_keyboard(nullptr) + : device_t(mconfig, MSX_AUDIO_KBDC_PORT, tag, owner, clock) + , device_slot_interface(mconfig, *this) + , m_keyboard(nullptr) { } @@ -40,16 +40,15 @@ READ8_MEMBER(msx_audio_kbdc_port_device::read) } -extern const device_type MSX_AUDIO_KB_HXMU901; -extern const device_type MSX_AUDIO_KB_NMS1160; +DECLARE_DEVICE_TYPE(MSX_AUDIO_KB_HXMU901, msx_hxmu901_device) +DECLARE_DEVICE_TYPE(MSX_AUDIO_KB_NMS1160, msx_nms1160_device) -class msx_hxmu901 : public device_t - , public msx_audio_kb_port_interface +class msx_hxmu901_device : public device_t, public msx_audio_kb_port_interface { public: - msx_hxmu901(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MSX_AUDIO_KB_HXMU901, "Toshiba HXMU901", tag, owner, clock, "hxmu901", __FILE__) + msx_hxmu901_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, MSX_AUDIO_KB_HXMU901, tag, owner, clock) , msx_audio_kb_port_interface(mconfig, *this) , m_row(0) , m_keyboard(*this, "KEY.%u", 0) @@ -169,22 +168,22 @@ static INPUT_PORTS_START( hxmu901) INPUT_PORTS_END -ioport_constructor msx_hxmu901::device_input_ports() const +ioport_constructor msx_hxmu901_device::device_input_ports() const { return INPUT_PORTS_NAME( hxmu901 ); } -class msx_nms1160 : public device_t - , public msx_audio_kb_port_interface +class msx_nms1160_device : public device_t, public msx_audio_kb_port_interface { public: - msx_nms1160(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MSX_AUDIO_KB_NMS1160, "Philips NMS-1160", tag, owner, clock, "nms1160", __FILE__) + msx_nms1160_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, MSX_AUDIO_KB_NMS1160, tag, owner, clock) , msx_audio_kb_port_interface(mconfig, *this) , m_row(0) , m_keyboard(*this, "KEY.%u", 0) - { } + { + } virtual ioport_constructor device_input_ports() const override; @@ -298,15 +297,15 @@ static INPUT_PORTS_START( nms1160 ) INPUT_PORTS_END -ioport_constructor msx_nms1160::device_input_ports() const +ioport_constructor msx_nms1160_device::device_input_ports() const { return INPUT_PORTS_NAME( nms1160 ); } -const device_type MSX_AUDIO_KB_HXMU901 = device_creator; -const device_type MSX_AUDIO_KB_NMS1160 = device_creator; +DEFINE_DEVICE_TYPE(MSX_AUDIO_KB_HXMU901, msx_hxmu901_device, "hxmu901", "Toshiba HXMU901") +DEFINE_DEVICE_TYPE(MSX_AUDIO_KB_NMS1160, msx_nms1160_device, "nms1160", "Philips NMS-1160") SLOT_INTERFACE_START( msx_audio_keyboards ) diff --git a/src/devices/bus/msx_cart/msx_audio_kb.h b/src/devices/bus/msx_cart/msx_audio_kb.h index 8759b9200e8..139d78f486b 100644 --- a/src/devices/bus/msx_cart/msx_audio_kb.h +++ b/src/devices/bus/msx_cart/msx_audio_kb.h @@ -1,10 +1,12 @@ // license:BSD-3-Clause // copyright-holders:Wilbert Pol -#ifndef __MSX_AUDIO_KB_H__ -#define __MSX_AUDIO_KB_H__ +#ifndef MAME_BUS_MSX_CART_MSX_AUDIO_KB_H +#define MAME_BUS_MSX_CART_MSX_AUDIO_KB_H +#pragma once -extern const device_type MSX_AUDIO_KBDC_PORT; + +DECLARE_DEVICE_TYPE(MSX_AUDIO_KBDC_PORT, msx_audio_kbdc_port_device) #define MCFG_MSX_AUDIO_KBDC_PORT_ADD(_tag, _slot_intf, _def_slot) \ @@ -15,18 +17,17 @@ extern const device_type MSX_AUDIO_KBDC_PORT; class msx_audio_kb_port_interface : public device_slot_card_interface { public: - // construction/destruction - msx_audio_kb_port_interface(const machine_config &mconfig, device_t &device) - : device_slot_card_interface(mconfig, device) - { }; - virtual DECLARE_READ8_MEMBER(read) { return 0xff; }; - virtual DECLARE_WRITE8_MEMBER(write) { }; + virtual DECLARE_READ8_MEMBER(read) { return 0xff; } + virtual DECLARE_WRITE8_MEMBER(write) { } + +protected: + // construction/destruction + using device_slot_card_interface::device_slot_card_interface; }; -class msx_audio_kbdc_port_device : public device_t, - public device_slot_interface +class msx_audio_kbdc_port_device : public device_t, public device_slot_interface { public: // construction/destruction @@ -39,6 +40,8 @@ public: DECLARE_WRITE8_MEMBER(write); DECLARE_READ8_MEMBER(read); + +protected: msx_audio_kb_port_interface *m_keyboard; }; @@ -46,4 +49,4 @@ public: SLOT_INTERFACE_EXTERN( msx_audio_keyboards ); -#endif +#endif // MAME_BUS_MSX_CART_MSX_AUDIO_KB_H diff --git a/src/devices/bus/msx_cart/msxdos2.cpp b/src/devices/bus/msx_cart/msxdos2.cpp index 3fac4457d63..f4e391f66e9 100644 --- a/src/devices/bus/msx_cart/msxdos2.cpp +++ b/src/devices/bus/msx_cart/msxdos2.cpp @@ -3,11 +3,11 @@ #include "emu.h" #include "msxdos2.h" -const device_type MSX_CART_MSXDOS2 = device_creator; +DEFINE_DEVICE_TYPE(MSX_CART_MSXDOS2, msx_cart_msxdos2_device, "msx_cart_msxdos2", "MSX Cartridge - MSXDOS2") -msx_cart_msxdos2::msx_cart_msxdos2(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MSX_CART_MSXDOS2, "MSX Cartridge - MSXDOS2", tag, owner, clock, "msx_cart_msxdos2", __FILE__) +msx_cart_msxdos2_device::msx_cart_msxdos2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, MSX_CART_MSXDOS2, tag, owner, clock) , msx_cart_interface(mconfig, *this) , m_selected_bank(0) , m_bank_base(nullptr) @@ -15,27 +15,27 @@ msx_cart_msxdos2::msx_cart_msxdos2(const machine_config &mconfig, const char *ta } -void msx_cart_msxdos2::device_start() +void msx_cart_msxdos2_device::device_start() { save_item(NAME(m_selected_bank)); - machine().save().register_postload(save_prepost_delegate(FUNC(msx_cart_msxdos2::restore_banks), this)); + machine().save().register_postload(save_prepost_delegate(FUNC(msx_cart_msxdos2_device::restore_banks), this)); } -void msx_cart_msxdos2::restore_banks() +void msx_cart_msxdos2_device::restore_banks() { m_bank_base = get_rom_base() + ( m_selected_bank & 0x03 ) * 0x4000; } -void msx_cart_msxdos2::device_reset() +void msx_cart_msxdos2_device::device_reset() { m_selected_bank = 0; } -void msx_cart_msxdos2::initialize_cartridge() +void msx_cart_msxdos2_device::initialize_cartridge() { if (get_rom_size() != 0x10000) { @@ -46,7 +46,7 @@ void msx_cart_msxdos2::initialize_cartridge() } -READ8_MEMBER(msx_cart_msxdos2::read_cart) +READ8_MEMBER(msx_cart_msxdos2_device::read_cart) { if (offset >= 0x4000 && offset < 0x8000) { @@ -57,7 +57,7 @@ READ8_MEMBER(msx_cart_msxdos2::read_cart) } -WRITE8_MEMBER(msx_cart_msxdos2::write_cart) +WRITE8_MEMBER(msx_cart_msxdos2_device::write_cart) { if (offset == 0x6000) { diff --git a/src/devices/bus/msx_cart/msxdos2.h b/src/devices/bus/msx_cart/msxdos2.h index 11f2026925b..b30fbb70bd8 100644 --- a/src/devices/bus/msx_cart/msxdos2.h +++ b/src/devices/bus/msx_cart/msxdos2.h @@ -1,29 +1,31 @@ // license:BSD-3-Clause // copyright-holders:Wilbert Pol -#ifndef __MSX_CART_MSXDOS2_H -#define __MSX_CART_MSXDOS2_H +#ifndef MAME_BUS_MSX_CART_MSXDOS2_H +#define MAME_BUS_MSX_CART_MSXDOS2_H + +#pragma once #include "bus/msx_cart/cartridge.h" -extern const device_type MSX_CART_MSXDOS2; +DECLARE_DEVICE_TYPE(MSX_CART_MSXDOS2, msx_cart_msxdos2_device) -class msx_cart_msxdos2 : public device_t - , public msx_cart_interface +class msx_cart_msxdos2_device : public device_t, public msx_cart_interface { public: - msx_cart_msxdos2(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; + msx_cart_msxdos2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual void initialize_cartridge() override; virtual DECLARE_READ8_MEMBER(read_cart) override; virtual DECLARE_WRITE8_MEMBER(write_cart) override; +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + void restore_banks(); private: @@ -32,4 +34,4 @@ private: }; -#endif +#endif // MAME_BUS_MSX_CART_MSXDOS2_H diff --git a/src/devices/bus/msx_cart/nomapper.cpp b/src/devices/bus/msx_cart/nomapper.cpp index 32c49517fa9..5152464cbc4 100644 --- a/src/devices/bus/msx_cart/nomapper.cpp +++ b/src/devices/bus/msx_cart/nomapper.cpp @@ -4,22 +4,22 @@ #include "emu.h" #include "nomapper.h" -const device_type MSX_CART_NOMAPPER = device_creator; +DEFINE_DEVICE_TYPE(MSX_CART_NOMAPPER, msx_cart_nomapper_device, "msx_cart_nomapper", "MSX Cartridge - ROM") -msx_cart_nomapper::msx_cart_nomapper(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MSX_CART_NOMAPPER, "MSX Cartridge - ROM", tag, owner, clock, "msx_cart_nomapper", __FILE__) +msx_cart_nomapper_device::msx_cart_nomapper_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, MSX_CART_NOMAPPER, tag, owner, clock) , msx_cart_interface(mconfig, *this) , m_start_address(0) , m_end_address(0) { } -void msx_cart_nomapper::device_start() +void msx_cart_nomapper_device::device_start() { } -void msx_cart_nomapper::initialize_cartridge() +void msx_cart_nomapper_device::initialize_cartridge() { uint32_t size = get_rom_size(); uint8_t *rom = get_rom_base(); @@ -84,7 +84,7 @@ void msx_cart_nomapper::initialize_cartridge() m_end_address = std::min(m_start_address + size, 0x10000); } -READ8_MEMBER(msx_cart_nomapper::read_cart) +READ8_MEMBER(msx_cart_nomapper_device::read_cart) { if ( offset >= m_start_address && offset < m_end_address ) { diff --git a/src/devices/bus/msx_cart/nomapper.h b/src/devices/bus/msx_cart/nomapper.h index 9a47a2f6e30..7b29b6a69b3 100644 --- a/src/devices/bus/msx_cart/nomapper.h +++ b/src/devices/bus/msx_cart/nomapper.h @@ -1,19 +1,20 @@ // license:BSD-3-Clause // copyright-holders:Wilbert Pol -#ifndef __MSX_CART_NOMAPPER_H -#define __MSX_CART_NOMAPPER_H +#ifndef MAME_BUS_MSX_CART_NOMAPPER_H +#define MAME_BUS_MSX_CART_NOMAPPER_H + +#pragma once #include "bus/msx_cart/cartridge.h" -extern const device_type MSX_CART_NOMAPPER; +DECLARE_DEVICE_TYPE(MSX_CART_NOMAPPER, msx_cart_nomapper_device) -class msx_cart_nomapper : public device_t - , public msx_cart_interface +class msx_cart_nomapper_device : public device_t, public msx_cart_interface { public: - msx_cart_nomapper(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + msx_cart_nomapper_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // device-level overrides virtual void device_start() override; @@ -27,4 +28,4 @@ private: uint32_t m_end_address; }; -#endif +#endif // MAME_BUS_MSX_CART_NOMAPPER_H diff --git a/src/devices/bus/msx_cart/rtype.cpp b/src/devices/bus/msx_cart/rtype.cpp index d6c432a7dd4..3853cfeed9a 100644 --- a/src/devices/bus/msx_cart/rtype.cpp +++ b/src/devices/bus/msx_cart/rtype.cpp @@ -3,11 +3,11 @@ #include "emu.h" #include "rtype.h" -const device_type MSX_CART_RTYPE = device_creator; +DEFINE_DEVICE_TYPE(MSX_CART_RTYPE, msx_cart_rtype_device, "msx_cart_rtype", "MSX Cartridge - R-Type") -msx_cart_rtype::msx_cart_rtype(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MSX_CART_RTYPE, "MSX Cartridge - R-Type", tag, owner, clock, "msx_cart_rtype", __FILE__) +msx_cart_rtype_device::msx_cart_rtype_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, MSX_CART_RTYPE, tag, owner, clock) , msx_cart_interface(mconfig, *this) , m_selected_bank(0) { @@ -18,15 +18,15 @@ msx_cart_rtype::msx_cart_rtype(const machine_config &mconfig, const char *tag, d } -void msx_cart_rtype::device_start() +void msx_cart_rtype_device::device_start() { save_item(NAME(m_selected_bank)); - machine().save().register_postload(save_prepost_delegate(FUNC(msx_cart_rtype::restore_banks), this)); + machine().save().register_postload(save_prepost_delegate(FUNC(msx_cart_rtype_device::restore_banks), this)); } -void msx_cart_rtype::restore_banks() +void msx_cart_rtype_device::restore_banks() { m_bank_base[0] = get_rom_base() + 15 * 0x4000; if (m_selected_bank & 0x10) @@ -37,13 +37,13 @@ void msx_cart_rtype::restore_banks() } -void msx_cart_rtype::device_reset() +void msx_cart_rtype_device::device_reset() { m_selected_bank = 15; } -void msx_cart_rtype::initialize_cartridge() +void msx_cart_rtype_device::initialize_cartridge() { if ( get_rom_size() != 0x80000 && get_rom_size() != 0x60000 ) { @@ -54,7 +54,7 @@ void msx_cart_rtype::initialize_cartridge() } -READ8_MEMBER(msx_cart_rtype::read_cart) +READ8_MEMBER(msx_cart_rtype_device::read_cart) { if (offset >= 0x4000 && offset < 0xc000) { @@ -64,7 +64,7 @@ READ8_MEMBER(msx_cart_rtype::read_cart) } -WRITE8_MEMBER(msx_cart_rtype::write_cart) +WRITE8_MEMBER(msx_cart_rtype_device::write_cart) { if (offset >= 0x7000 && offset < 0x8000) { diff --git a/src/devices/bus/msx_cart/rtype.h b/src/devices/bus/msx_cart/rtype.h index c89570f4cac..435d8666273 100644 --- a/src/devices/bus/msx_cart/rtype.h +++ b/src/devices/bus/msx_cart/rtype.h @@ -1,29 +1,31 @@ // license:BSD-3-Clause // copyright-holders:Wilbert Pol -#ifndef __MSX_CART_RTYPE_H -#define __MSX_CART_RTYPE_H +#ifndef MAME_BUS_MSX_CART_RTYPE_H +#define MAME_BUS_MSX_CART_RTYPE_H + +#pragma once #include "bus/msx_cart/cartridge.h" -extern const device_type MSX_CART_RTYPE; +DECLARE_DEVICE_TYPE(MSX_CART_RTYPE, msx_cart_rtype_device) -class msx_cart_rtype : public device_t - , public msx_cart_interface +class msx_cart_rtype_device : public device_t, public msx_cart_interface { public: - msx_cart_rtype(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; + msx_cart_rtype_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual void initialize_cartridge() override; virtual DECLARE_READ8_MEMBER(read_cart) override; virtual DECLARE_WRITE8_MEMBER(write_cart) override; +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + void restore_banks(); private: @@ -32,4 +34,4 @@ private: }; -#endif +#endif // MAME_BUS_MSX_CART_RTYPE_H diff --git a/src/devices/bus/msx_cart/super_swangi.cpp b/src/devices/bus/msx_cart/super_swangi.cpp index 8983b57e429..75ee75be6a0 100644 --- a/src/devices/bus/msx_cart/super_swangi.cpp +++ b/src/devices/bus/msx_cart/super_swangi.cpp @@ -4,11 +4,11 @@ #include "super_swangi.h" -const device_type MSX_CART_SUPER_SWANGI = device_creator; +DEFINE_DEVICE_TYPE(MSX_CART_SUPER_SWANGI, msx_cart_super_swangi_device, "msx_cart_super_swangi", "MSX Cartridge - Super Swangi") -msx_cart_super_swangi::msx_cart_super_swangi(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MSX_CART_SUPER_SWANGI, "MSX Cartridge - Super Swangi", tag, owner, clock, "msx_cart_super_swangi", __FILE__) +msx_cart_super_swangi_device::msx_cart_super_swangi_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, MSX_CART_SUPER_SWANGI, tag, owner, clock) , msx_cart_interface(mconfig, *this) , m_selected_bank(0) { @@ -16,28 +16,28 @@ msx_cart_super_swangi::msx_cart_super_swangi(const machine_config &mconfig, cons } -void msx_cart_super_swangi::device_start() +void msx_cart_super_swangi_device::device_start() { save_item(NAME(m_selected_bank)); - machine().save().register_postload(save_prepost_delegate(FUNC(msx_cart_super_swangi::restore_banks), this)); + machine().save().register_postload(save_prepost_delegate(FUNC(msx_cart_super_swangi_device::restore_banks), this)); } -void msx_cart_super_swangi::restore_banks() +void msx_cart_super_swangi_device::restore_banks() { m_bank_base[0] = get_rom_base(); m_bank_base[1] = get_rom_base() + (((m_selected_bank >> 1) * 0x4000) & 0xffff); } -void msx_cart_super_swangi::device_reset() +void msx_cart_super_swangi_device::device_reset() { m_selected_bank = 0; } -void msx_cart_super_swangi::initialize_cartridge() +void msx_cart_super_swangi_device::initialize_cartridge() { if (get_rom_size() < 0x10000) { @@ -48,7 +48,7 @@ void msx_cart_super_swangi::initialize_cartridge() } -READ8_MEMBER(msx_cart_super_swangi::read_cart) +READ8_MEMBER(msx_cart_super_swangi_device::read_cart) { if (offset >= 0x4000 && offset < 0xc000) { @@ -58,7 +58,7 @@ READ8_MEMBER(msx_cart_super_swangi::read_cart) } -WRITE8_MEMBER(msx_cart_super_swangi::write_cart) +WRITE8_MEMBER(msx_cart_super_swangi_device::write_cart) { if (offset == 0x8000) { @@ -67,6 +67,6 @@ WRITE8_MEMBER(msx_cart_super_swangi::write_cart) } else { - logerror("msx_cart_super_swangi: unhandled write %02x to %04x\n", data, offset); + logerror("msx_cart_super_swangi_device: unhandled write %02x to %04x\n", data, offset); } } diff --git a/src/devices/bus/msx_cart/super_swangi.h b/src/devices/bus/msx_cart/super_swangi.h index 09619437379..cf3b9f3b7c9 100644 --- a/src/devices/bus/msx_cart/super_swangi.h +++ b/src/devices/bus/msx_cart/super_swangi.h @@ -1,29 +1,31 @@ // license:BSD-3-Clause // copyright-holders:Wilbert Pol -#ifndef __MSX_CART_SUPER_SWANGI_H -#define __MSX_CART_SUPER_SWANGI_H +#ifndef MAME_BUS_MSX_CART_SUPER_SWANGI_H +#define MAME_BUS_MSX_CART_SUPER_SWANGI_H + +#pragma once #include "bus/msx_cart/cartridge.h" -extern const device_type MSX_CART_SUPER_SWANGI; +DECLARE_DEVICE_TYPE(MSX_CART_SUPER_SWANGI, msx_cart_super_swangi_device) -class msx_cart_super_swangi : public device_t - , public msx_cart_interface +class msx_cart_super_swangi_device : public device_t, public msx_cart_interface { public: - msx_cart_super_swangi(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; + msx_cart_super_swangi_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual void initialize_cartridge() override; virtual DECLARE_READ8_MEMBER(read_cart) override; virtual DECLARE_WRITE8_MEMBER(write_cart) override; +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + void restore_banks(); private: @@ -32,4 +34,4 @@ private: }; -#endif +#endif // MAME_BUS_MSX_CART_SUPER_SWANGI_H diff --git a/src/devices/bus/msx_cart/superloderunner.cpp b/src/devices/bus/msx_cart/superloderunner.cpp index 64fd457377a..51289c24f10 100644 --- a/src/devices/bus/msx_cart/superloderunner.cpp +++ b/src/devices/bus/msx_cart/superloderunner.cpp @@ -3,11 +3,11 @@ #include "emu.h" #include "superloderunner.h" -const device_type MSX_CART_SUPERLODERUNNER = device_creator; +DEFINE_DEVICE_TYPE(MSX_CART_SUPERLODERUNNER, msx_cart_superloderunner_device, "msx_cart_superloderunner", "MSX Cartridge - Super Lode Runner") -msx_cart_superloderunner::msx_cart_superloderunner(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MSX_CART_SUPERLODERUNNER, "MSX Cartridge - Super Lode Runner", tag, owner, clock, "msx_cart_superloderunner", __FILE__) +msx_cart_superloderunner_device::msx_cart_superloderunner_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, MSX_CART_SUPERLODERUNNER, tag, owner, clock) , msx_cart_interface(mconfig, *this) , m_selected_bank(0) , m_bank_base(nullptr) @@ -15,25 +15,25 @@ msx_cart_superloderunner::msx_cart_superloderunner(const machine_config &mconfig } -void msx_cart_superloderunner::device_start() +void msx_cart_superloderunner_device::device_start() { save_item(NAME(m_selected_bank)); - machine().save().register_postload(save_prepost_delegate(FUNC(msx_cart_superloderunner::restore_banks), this)); + machine().save().register_postload(save_prepost_delegate(FUNC(msx_cart_superloderunner_device::restore_banks), this)); // Install evil memory write handler address_space &space = machine().device("maincpu")->space(AS_PROGRAM); - space.install_write_handler(0x0000, 0x0000, write8_delegate(FUNC(msx_cart_superloderunner::banking), this)); + space.install_write_handler(0x0000, 0x0000, write8_delegate(FUNC(msx_cart_superloderunner_device::banking), this)); } -void msx_cart_superloderunner::restore_banks() +void msx_cart_superloderunner_device::restore_banks() { m_bank_base = get_rom_base() + (m_selected_bank & 0x0f) * 0x4000; } -void msx_cart_superloderunner::initialize_cartridge() +void msx_cart_superloderunner_device::initialize_cartridge() { if (get_rom_size() != 0x20000) { @@ -44,7 +44,7 @@ void msx_cart_superloderunner::initialize_cartridge() } -READ8_MEMBER(msx_cart_superloderunner::read_cart) +READ8_MEMBER(msx_cart_superloderunner_device::read_cart) { if (offset >= 0x8000 && offset < 0xc000) { @@ -55,7 +55,7 @@ READ8_MEMBER(msx_cart_superloderunner::read_cart) } -WRITE8_MEMBER(msx_cart_superloderunner::banking) +WRITE8_MEMBER(msx_cart_superloderunner_device::banking) { m_selected_bank = data; restore_banks(); diff --git a/src/devices/bus/msx_cart/superloderunner.h b/src/devices/bus/msx_cart/superloderunner.h index 9ca4e49bcd8..b8e73535ebf 100644 --- a/src/devices/bus/msx_cart/superloderunner.h +++ b/src/devices/bus/msx_cart/superloderunner.h @@ -1,22 +1,20 @@ // license:BSD-3-Clause // copyright-holders:Wilbert Pol -#ifndef __MSX_CART_SUPERLODERUNNER_H -#define __MSX_CART_SUPERLODERUNNER_H +#ifndef MAME_BUS_MSX_CART_SUPERLODERUNNER_H +#define MAME_BUS_MSX_CART_SUPERLODERUNNER_H + +#pragma once #include "bus/msx_cart/cartridge.h" -extern const device_type MSX_CART_SUPERLODERUNNER; +DECLARE_DEVICE_TYPE(MSX_CART_SUPERLODERUNNER, msx_cart_superloderunner_device) -class msx_cart_superloderunner : public device_t - , public msx_cart_interface +class msx_cart_superloderunner_device : public device_t, public msx_cart_interface { public: - msx_cart_superloderunner(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - - // device-level overrides - virtual void device_start() override; + msx_cart_superloderunner_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual void initialize_cartridge() override; @@ -24,6 +22,10 @@ public: DECLARE_WRITE8_MEMBER(banking); +protected: + // device-level overrides + virtual void device_start() override; + void restore_banks(); private: @@ -32,4 +34,4 @@ private: }; -#endif +#endif // MAME_BUS_MSX_CART_SUPERLODERUNNER_H diff --git a/src/devices/bus/msx_cart/yamaha.cpp b/src/devices/bus/msx_cart/yamaha.cpp index dff91b2ce54..e8b816f99f0 100644 --- a/src/devices/bus/msx_cart/yamaha.cpp +++ b/src/devices/bus/msx_cart/yamaha.cpp @@ -16,12 +16,12 @@ TODO: #include "speaker.h" -const device_type MSX_CART_SFG01 = device_creator; -const device_type MSX_CART_SFG05 = device_creator; +DEFINE_DEVICE_TYPE(MSX_CART_SFG01, msx_cart_sfg01_device, "msx_cart_sfg01", "MSX Cartridge - SFG01") +DEFINE_DEVICE_TYPE(MSX_CART_SFG05, msx_cart_sfg05_device, "msx_cart_sfg05", "MSX Cartridge - SFG05") -msx_cart_sfg::msx_cart_sfg(const machine_config &mconfig, const device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname) - : device_t(mconfig, type, name, tag, owner, clock, shortname, __FILE__) +msx_cart_sfg_device::msx_cart_sfg_device(const machine_config &mconfig, const device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) , msx_cart_interface(mconfig, *this) , m_region_sfg(*this, "sfg") , m_ym2151(*this, "ym2151") @@ -34,14 +34,14 @@ msx_cart_sfg::msx_cart_sfg(const machine_config &mconfig, const device_type type } -msx_cart_sfg01::msx_cart_sfg01(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : msx_cart_sfg(mconfig, MSX_CART_SFG01, "MSX Cartridge - SFG01", tag, owner, clock, "msx_cart_sfg01") +msx_cart_sfg01_device::msx_cart_sfg01_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : msx_cart_sfg_device(mconfig, MSX_CART_SFG01, tag, owner, clock) { } -msx_cart_sfg05::msx_cart_sfg05(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : msx_cart_sfg(mconfig, MSX_CART_SFG05, "MSX Cartridge - SFG05", tag, owner, clock, "msx_cart_sfg05") +msx_cart_sfg05_device::msx_cart_sfg05_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : msx_cart_sfg_device(mconfig, MSX_CART_SFG05, tag, owner, clock) { } @@ -53,7 +53,7 @@ static MACHINE_CONFIG_FRAGMENT( msx_sfg ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") MCFG_YM2151_ADD("ym2151", XTAL_3_579545MHz) // The SFG01 uses a YM2151, the SFG05 uses a YM2164, input clock comes from the main cpu frequency - MCFG_YM2151_IRQ_HANDLER(WRITELINE(msx_cart_sfg, ym2151_irq_w)) + MCFG_YM2151_IRQ_HANDLER(WRITELINE(msx_cart_sfg_device, ym2151_irq_w)) MCFG_SOUND_ROUTE(0, "lspeaker", 0.80) MCFG_SOUND_ROUTE(1, "rspeaker", 0.80) @@ -61,7 +61,7 @@ static MACHINE_CONFIG_FRAGMENT( msx_sfg ) MCFG_YM2148_TXD_HANDLER(DEVWRITELINE("mdout", midi_port_device, write_txd)) MCFG_YM2148_PORT_WRITE_HANDLER(DEVWRITE8("kbdc", msx_audio_kbdc_port_device, write)) MCFG_YM2148_PORT_READ_HANDLER(DEVREAD8("kbdc", msx_audio_kbdc_port_device, read)) - MCFG_YM2148_IRQ_HANDLER(WRITELINE(msx_cart_sfg,ym2148_irq_w)) + MCFG_YM2148_IRQ_HANDLER(WRITELINE(msx_cart_sfg_device,ym2148_irq_w)) MCFG_MSX_AUDIO_KBDC_PORT_ADD("kbdc", msx_audio_keyboards, nullptr) @@ -72,7 +72,7 @@ static MACHINE_CONFIG_FRAGMENT( msx_sfg ) MACHINE_CONFIG_END -machine_config_constructor msx_cart_sfg::device_mconfig_additions() const +machine_config_constructor msx_cart_sfg_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( msx_sfg ); } @@ -84,7 +84,7 @@ ROM_START( msx_sfg01 ) ROM_END -const tiny_rom_entry *msx_cart_sfg01::device_rom_region() const +const tiny_rom_entry *msx_cart_sfg01_device::device_rom_region() const { return ROM_NAME( msx_sfg01 ); } @@ -96,44 +96,44 @@ ROM_START( msx_sfg05 ) ROM_END -const tiny_rom_entry *msx_cart_sfg05::device_rom_region() const +const tiny_rom_entry *msx_cart_sfg05_device::device_rom_region() const { return ROM_NAME( msx_sfg05 ); } -void msx_cart_sfg::device_start() +void msx_cart_sfg_device::device_start() { // Set rom mask m_rom_mask = m_region_sfg->bytes() - 1; // This should probably moved up in the bus/slot hierarchy for the msx driver cpu_device *maincpu = machine().device("maincpu"); - device_execute_interface::static_set_irq_acknowledge_callback(*maincpu, device_irq_acknowledge_delegate(FUNC(msx_cart_sfg::irq_callback),this)); + device_execute_interface::static_set_irq_acknowledge_callback(*maincpu, device_irq_acknowledge_delegate(FUNC(msx_cart_sfg_device::irq_callback),this)); } -IRQ_CALLBACK_MEMBER(msx_cart_sfg::irq_callback) +IRQ_CALLBACK_MEMBER(msx_cart_sfg_device::irq_callback) { return m_ym2148->get_irq_vector(); } -WRITE_LINE_MEMBER(msx_cart_sfg::ym2151_irq_w) +WRITE_LINE_MEMBER(msx_cart_sfg_device::ym2151_irq_w) { m_ym2151_irq_state = state ? ASSERT_LINE : CLEAR_LINE; check_irq(); } -WRITE_LINE_MEMBER(msx_cart_sfg::ym2148_irq_w) +WRITE_LINE_MEMBER(msx_cart_sfg_device::ym2148_irq_w) { m_ym2148_irq_state = state ? ASSERT_LINE : CLEAR_LINE; check_irq(); } -void msx_cart_sfg::check_irq() +void msx_cart_sfg_device::check_irq() { if (m_ym2151_irq_state != CLEAR_LINE || m_ym2148_irq_state != CLEAR_LINE) { @@ -146,7 +146,7 @@ void msx_cart_sfg::check_irq() } -READ8_MEMBER(msx_cart_sfg::read_cart) +READ8_MEMBER(msx_cart_sfg_device::read_cart) { switch (offset & 0x3fff) { @@ -173,7 +173,7 @@ READ8_MEMBER(msx_cart_sfg::read_cart) } -WRITE8_MEMBER(msx_cart_sfg::write_cart) +WRITE8_MEMBER(msx_cart_sfg_device::write_cart) { switch (offset & 0x3fff) { @@ -201,7 +201,7 @@ WRITE8_MEMBER(msx_cart_sfg::write_cart) break; default: - logerror("msx_cart_sfg::write_cart: write %02x to %04x\n", data, offset); + logerror("msx_cart_sfg_device::write_cart: write %02x to %04x\n", data, offset); break; } } diff --git a/src/devices/bus/msx_cart/yamaha.h b/src/devices/bus/msx_cart/yamaha.h index 60462dd7015..d437aa5424e 100644 --- a/src/devices/bus/msx_cart/yamaha.h +++ b/src/devices/bus/msx_cart/yamaha.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Wilbert Pol -#ifndef __MSX_CART_YAMAHA_H -#define __MSX_CART_YAMAHA_H +#ifndef MAME_BUS_MSX_CART_YAMAHA_H +#define MAME_BUS_MSX_CART_YAMAHA_H + +#pragma once #include "bus/msx_cart/cartridge.h" #include "sound/ym2151.h" @@ -9,19 +11,15 @@ #include "machine/ym2148.h" -extern const device_type MSX_CART_SFG01; -extern const device_type MSX_CART_SFG05; +DECLARE_DEVICE_TYPE(MSX_CART_SFG01, msx_cart_sfg01_device) +DECLARE_DEVICE_TYPE(MSX_CART_SFG05, msx_cart_sfg05_device) -class msx_cart_sfg : public device_t - , public msx_cart_interface +class msx_cart_sfg_device : public device_t, public msx_cart_interface { public: - msx_cart_sfg(const machine_config &mconfig, const device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname); - // device-level overrides virtual machine_config_constructor device_mconfig_additions() const override; - virtual void device_start() override; virtual DECLARE_READ8_MEMBER(read_cart) override; virtual DECLARE_WRITE8_MEMBER(write_cart) override; @@ -29,6 +27,11 @@ public: DECLARE_WRITE_LINE_MEMBER(ym2151_irq_w); DECLARE_WRITE_LINE_MEMBER(ym2148_irq_w); +protected: + msx_cart_sfg_device(const machine_config &mconfig, const device_type type, const char *tag, device_t *owner, uint32_t clock); + + virtual void device_start() override; + IRQ_CALLBACK_MEMBER(irq_callback); private: @@ -44,21 +47,21 @@ private: }; -class msx_cart_sfg01 : public msx_cart_sfg +class msx_cart_sfg01_device : public msx_cart_sfg_device { public: - msx_cart_sfg01(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + msx_cart_sfg01_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual const tiny_rom_entry *device_rom_region() const override; }; -class msx_cart_sfg05 : public msx_cart_sfg +class msx_cart_sfg05_device : public msx_cart_sfg_device { public: - msx_cart_sfg05(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + msx_cart_sfg05_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual const tiny_rom_entry *device_rom_region() const override; }; -#endif +#endif // MAME_BUS_MSX_CART_YAMAHA_H diff --git a/src/devices/bus/msx_slot/bunsetsu.cpp b/src/devices/bus/msx_slot/bunsetsu.cpp index 99da86b1a9a..a2f8a131a54 100644 --- a/src/devices/bus/msx_slot/bunsetsu.cpp +++ b/src/devices/bus/msx_slot/bunsetsu.cpp @@ -8,11 +8,11 @@ #include "bunsetsu.h" -const device_type MSX_SLOT_BUNSETSU = device_creator; +DEFINE_DEVICE_TYPE(MSX_SLOT_BUNSETSU, msx_slot_bunsetsu_device, "msx_slot_bunsetsu", "MSX Internal BUNSETSU") msx_slot_bunsetsu_device::msx_slot_bunsetsu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : msx_slot_rom_device(mconfig, MSX_SLOT_BUNSETSU, "MSX Internal BUNSETSU", tag, owner, clock, "msx_slot_bunsetsu", __FILE__) + : msx_slot_rom_device(mconfig, MSX_SLOT_BUNSETSU, tag, owner, clock) , m_bunsetsu_region(*this, finder_base::DUMMY_TAG, 0x20000) , m_bunsetsu_address(0) { diff --git a/src/devices/bus/msx_slot/bunsetsu.h b/src/devices/bus/msx_slot/bunsetsu.h index eff00928a83..0e340d98ae1 100644 --- a/src/devices/bus/msx_slot/bunsetsu.h +++ b/src/devices/bus/msx_slot/bunsetsu.h @@ -1,19 +1,22 @@ // license:BSD-3-Clause // copyright-holders:Wilbert Pol -#ifndef __MSX_SLOT_BUNSETSU_H -#define __MSX_SLOT_BUNSETSU_H +#ifndef MAME_BUS_MSX_SLOT_BUNSETSU_H +#define MAME_BUS_MSX_SLOT_BUNSETSU_H + +#pragma once #include "bus/msx_slot/slot.h" #include "bus/msx_slot/rom.h" -extern const device_type MSX_SLOT_BUNSETSU; +DECLARE_DEVICE_TYPE(MSX_SLOT_BUNSETSU, msx_slot_bunsetsu_device) #define MCFG_MSX_SLOT_BUNSETSU_ADD(_tag, _startpage, _numpages, _region, _offset, _bunsetsu_region_tag) \ MCFG_MSX_INTERNAL_SLOT_ADD(_tag, MSX_SLOT_BUNSETSU, _startpage, _numpages) \ msx_slot_rom_device::set_rom_start(*device, "^" _region, _offset); \ msx_slot_bunsetsu_device::set_bunsetsu_region_tag(*device, "^" _bunsetsu_region_tag); + class msx_slot_bunsetsu_device : public msx_slot_rom_device { public: @@ -22,15 +25,16 @@ public: // static configuration helpers static void set_bunsetsu_region_tag(device_t &device, const char *tag) { dynamic_cast(device).m_bunsetsu_region.set_tag(tag); } - virtual void device_reset() override; - virtual DECLARE_READ8_MEMBER(read) override; virtual DECLARE_WRITE8_MEMBER(write) override; +protected: + virtual void device_reset() override; + private: required_region_ptr m_bunsetsu_region; uint32_t m_bunsetsu_address; }; -#endif +#endif // MAME_BUS_MSX_SLOT_BUNSETSU_H diff --git a/src/devices/bus/msx_slot/cartridge.cpp b/src/devices/bus/msx_slot/cartridge.cpp index 0feefec646c..34650b5f246 100644 --- a/src/devices/bus/msx_slot/cartridge.cpp +++ b/src/devices/bus/msx_slot/cartridge.cpp @@ -29,23 +29,18 @@ enum }; -const device_type MSX_SLOT_CARTRIDGE = device_creator; -const device_type MSX_SLOT_YAMAHA_EXPANSION = device_creator; +DEFINE_DEVICE_TYPE(MSX_SLOT_CARTRIDGE, msx_slot_cartridge_device, "msx_slot_cartridge", "MSX Cartridge slot") +DEFINE_DEVICE_TYPE(MSX_SLOT_YAMAHA_EXPANSION, msx_slot_yamaha_expansion_device, "msx_slot_yamaha_expansion", "MSX Yamaha Expansion slot") msx_slot_cartridge_device::msx_slot_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MSX_SLOT_CARTRIDGE, "MSX Cartridge slot", tag, owner, clock, "msx_slot_cartridge", __FILE__) - , device_image_interface(mconfig, *this) - , device_slot_interface(mconfig, *this) - , msx_internal_slot_interface() - , m_irq_handler(*this) - , m_cartridge(nullptr) + : msx_slot_cartridge_device(mconfig, MSX_SLOT_CARTRIDGE, tag, owner, clock) { } -msx_slot_cartridge_device::msx_slot_cartridge_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source) +msx_slot_cartridge_device::msx_slot_cartridge_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) , device_image_interface(mconfig, *this) , device_slot_interface(mconfig, *this) , msx_internal_slot_interface() @@ -358,7 +353,7 @@ WRITE8_MEMBER(msx_slot_cartridge_device::write) msx_slot_yamaha_expansion_device::msx_slot_yamaha_expansion_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : msx_slot_cartridge_device(mconfig, MSX_SLOT_YAMAHA_EXPANSION, "MSX Yamaha Expansion slot", tag, owner, clock, "msx_slot_yamaha_expansion", __FILE__) + : msx_slot_cartridge_device(mconfig, MSX_SLOT_YAMAHA_EXPANSION, tag, owner, clock) { } diff --git a/src/devices/bus/msx_slot/cartridge.h b/src/devices/bus/msx_slot/cartridge.h index 88294cb0304..78d6721263d 100644 --- a/src/devices/bus/msx_slot/cartridge.h +++ b/src/devices/bus/msx_slot/cartridge.h @@ -1,15 +1,17 @@ // license:BSD-3-Clause // copyright-holders:Wilbert Pol -#ifndef __MSX_SLOT_CARTRIDGE_H -#define __MSX_SLOT_CARTRIDGE_H +#ifndef MAME_BUS_MSX_SLOT_CARTRIDGE_H +#define MAME_BUS_MSX_SLOT_CARTRIDGE_H + +#pragma once #include "slot.h" #include "bus/msx_cart/cartridge.h" #include "softlist_dev.h" -extern const device_type MSX_SLOT_CARTRIDGE; -extern const device_type MSX_SLOT_YAMAHA_EXPANSION; +DECLARE_DEVICE_TYPE(MSX_SLOT_CARTRIDGE, msx_slot_cartridge_device) +DECLARE_DEVICE_TYPE(MSX_SLOT_YAMAHA_EXPANSION, msx_slot_yamaha_expansion_device) #define MCFG_MSX_SLOT_CARTRIDGE_ADD(_tag, _devcb) \ @@ -31,14 +33,10 @@ class msx_slot_cartridge_device : public device_t { public: // construction/destruction - msx_slot_cartridge_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); msx_slot_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // static configuration helpers - template static devcb_base &set_irq_handler(device_t &device, _Object object) { return downcast(device).m_irq_handler.set_callback(object); } - - // device-level overrides - virtual void device_start() override; + template static devcb_base &set_irq_handler(device_t &device, Object &&cb) { return downcast(device).m_irq_handler.set_callback(std::forward(cb)); } // image-level overrides virtual image_init_result call_load() override; @@ -65,6 +63,11 @@ public: DECLARE_WRITE_LINE_MEMBER(irq_out); protected: + msx_slot_cartridge_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual void device_start() override; + devcb_write_line m_irq_handler; msx_cart_interface *m_cartridge; @@ -78,12 +81,13 @@ public: // construction/destruction msx_slot_yamaha_expansion_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual void device_start() override; - virtual const char *image_interface() const override { return "msx_yamaha_60pin"; } virtual const char *custom_instance_name() const override { return "cartridge60pin"; } virtual const char *custom_brief_instance_name() const override { return "cart60p"; } + +protected: + virtual void device_start() override; }; -#endif +#endif // MAME_BUS_MSX_SLOT_CARTRIDGE_H diff --git a/src/devices/bus/msx_slot/disk.cpp b/src/devices/bus/msx_slot/disk.cpp index 7e3e0370ef1..10a319ca489 100644 --- a/src/devices/bus/msx_slot/disk.cpp +++ b/src/devices/bus/msx_slot/disk.cpp @@ -35,16 +35,16 @@ set on 7FFDH bit 2 always to 0 (some use it as disk change reset) #include "disk.h" -const device_type MSX_SLOT_DISK1 = device_creator; -const device_type MSX_SLOT_DISK2 = device_creator; -const device_type MSX_SLOT_DISK3 = device_creator; -const device_type MSX_SLOT_DISK4 = device_creator; -const device_type MSX_SLOT_DISK5 = device_creator; -const device_type MSX_SLOT_DISK6 = device_creator; +DEFINE_DEVICE_TYPE(MSX_SLOT_DISK1, msx_slot_disk1_device, "msx_slot_disk1", "MSX Internal floppy type 1") +DEFINE_DEVICE_TYPE(MSX_SLOT_DISK2, msx_slot_disk2_device, "msx_slot_disk2", "MSX Internal floppy type 2") +DEFINE_DEVICE_TYPE(MSX_SLOT_DISK3, msx_slot_disk3_device, "msx_slot_disk3", "MSX Internal floppy type 3") +DEFINE_DEVICE_TYPE(MSX_SLOT_DISK4, msx_slot_disk4_device, "msx_slot_disk4", "MSX Internal floppy type 4") +DEFINE_DEVICE_TYPE(MSX_SLOT_DISK5, msx_slot_disk5_device, "msx_slot_disk5", "MSX Internal floppy type 5") +DEFINE_DEVICE_TYPE(MSX_SLOT_DISK6, msx_slot_disk6_device, "msx_slot_disk6", "MSX Internal floppy type 6") -msx_slot_disk_device::msx_slot_disk_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : msx_slot_rom_device(mconfig, type, name, tag, owner, clock, shortname, source) +msx_slot_disk_device::msx_slot_disk_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : msx_slot_rom_device(mconfig, type, tag, owner, clock) , m_floppy0(nullptr) , m_floppy1(nullptr) , m_floppy2(nullptr) @@ -80,8 +80,8 @@ void msx_slot_disk_device::device_start() } -msx_slot_wd_disk_device::msx_slot_wd_disk_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : msx_slot_disk_device(mconfig, type, name, tag, owner, clock, shortname, source) +msx_slot_wd_disk_device::msx_slot_wd_disk_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : msx_slot_disk_device(mconfig, type, tag, owner, clock) , m_fdc(nullptr) { } @@ -91,7 +91,7 @@ void msx_slot_wd_disk_device::device_start() { msx_slot_disk_device::device_start(); - m_fdc = owner()->subdevice(m_fdc_tag); + m_fdc = owner()->subdevice(m_fdc_tag); if (m_fdc == nullptr) { @@ -100,8 +100,8 @@ void msx_slot_wd_disk_device::device_start() } -msx_slot_tc8566_disk_device::msx_slot_tc8566_disk_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : msx_slot_disk_device(mconfig, type, name, tag, owner, clock, shortname, source) +msx_slot_tc8566_disk_device::msx_slot_tc8566_disk_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : msx_slot_disk_device(mconfig, type, tag, owner, clock) , m_fdc(nullptr) { } @@ -122,7 +122,7 @@ void msx_slot_tc8566_disk_device::device_start() msx_slot_disk1_device::msx_slot_disk1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : msx_slot_wd_disk_device(mconfig, MSX_SLOT_DISK1, "MSX Internal floppy type 1", tag, owner, clock, "msx_slot_disk1", __FILE__) + : msx_slot_wd_disk_device(mconfig, MSX_SLOT_DISK1, tag, owner, clock) , m_side_control(0) , m_control(0) { @@ -285,7 +285,7 @@ WRITE8_MEMBER(msx_slot_disk1_device::write) msx_slot_disk2_device::msx_slot_disk2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : msx_slot_wd_disk_device(mconfig, MSX_SLOT_DISK2, "MSX Internal floppy type 2", tag, owner, clock, "msx_slot_disk2", __FILE__) + : msx_slot_wd_disk_device(mconfig, MSX_SLOT_DISK2, tag, owner, clock) , m_control(0) { } @@ -424,7 +424,7 @@ WRITE8_MEMBER(msx_slot_disk2_device::write) msx_slot_disk3_device::msx_slot_disk3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : msx_slot_tc8566_disk_device(mconfig, MSX_SLOT_DISK3, "MSX Internal floppy type 3", tag, owner, clock, "msx_slot_disk3", __FILE__) + : msx_slot_tc8566_disk_device(mconfig, MSX_SLOT_DISK3, tag, owner, clock) { } @@ -470,7 +470,7 @@ READ8_MEMBER(msx_slot_disk3_device::read) msx_slot_disk4_device::msx_slot_disk4_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : msx_slot_tc8566_disk_device(mconfig, MSX_SLOT_DISK4, "MSX Internal floppy type 4", tag, owner, clock, "msx_slot_disk4", __FILE__) + : msx_slot_tc8566_disk_device(mconfig, MSX_SLOT_DISK4, tag, owner, clock) { } @@ -522,7 +522,7 @@ READ8_MEMBER(msx_slot_disk4_device::read) msx_slot_disk5_device::msx_slot_disk5_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : msx_slot_wd_disk_device(mconfig, MSX_SLOT_DISK5, "MSX Internal floppy type 5", tag, owner, clock, "msx_slot_disk5", __FILE__) + : msx_slot_wd_disk_device(mconfig, MSX_SLOT_DISK5, tag, owner, clock) , m_control(0) { } @@ -645,7 +645,7 @@ WRITE8_MEMBER(msx_slot_disk5_device::io_write) msx_slot_disk6_device::msx_slot_disk6_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : msx_slot_wd_disk_device(mconfig, MSX_SLOT_DISK6, "MSX Internal floppy type 6", tag, owner, clock, "msx_slot_disk6", __FILE__) + : msx_slot_wd_disk_device(mconfig, MSX_SLOT_DISK6, tag, owner, clock) , m_side_motor(0) , m_drive_select0(0) , m_drive_select1(0) diff --git a/src/devices/bus/msx_slot/disk.h b/src/devices/bus/msx_slot/disk.h index 11dee498884..5bb99811c81 100644 --- a/src/devices/bus/msx_slot/disk.h +++ b/src/devices/bus/msx_slot/disk.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Wilbert Pol -#ifndef __MSX_SLOT_DISK_H -#define __MSX_SLOT_DISK_H +#ifndef MAME_BUS_MSX_SLOT_DISK_H +#define MAME_BUS_MSX_SLOT_DISK_H + +#pragma once #include "bus/msx_slot/slot.h" #include "bus/msx_slot/rom.h" @@ -12,17 +14,17 @@ /* WD FDC accessed through 7ffx */ -extern const device_type MSX_SLOT_DISK1; +DECLARE_DEVICE_TYPE(MSX_SLOT_DISK1, msx_slot_disk1_device) /* WD FDC accessed through 7fbx */ -extern const device_type MSX_SLOT_DISK2; +DECLARE_DEVICE_TYPE(MSX_SLOT_DISK2, msx_slot_disk2_device) /* TC8566 accessed through 7ff8-7fff */ -extern const device_type MSX_SLOT_DISK3; +DECLARE_DEVICE_TYPE(MSX_SLOT_DISK3, msx_slot_disk3_device) /* TC8566 accessed through 7ff0-7ff7 (used in Turob-R, untested) */ -extern const device_type MSX_SLOT_DISK4; +DECLARE_DEVICE_TYPE(MSX_SLOT_DISK4, msx_slot_disk4_device) /* WD FDC accessed through i/o ports 0xd0-0xd4 */ -extern const device_type MSX_SLOT_DISK5; +DECLARE_DEVICE_TYPE(MSX_SLOT_DISK5, msx_slot_disk5_device) /* WD FDC accessed through 7ff0-7ff? (used in Toshiba HX34) */ -extern const device_type MSX_SLOT_DISK6; +DECLARE_DEVICE_TYPE(MSX_SLOT_DISK6, msx_slot_disk6_device) #define MCFG_MSX_SLOT_DISK1_ADD(_tag, _startpage, _numpages, _region, _offset, _fdc_tag, _floppy0_tag, _floppy1_tag) \ @@ -73,10 +75,6 @@ extern const device_type MSX_SLOT_DISK6; class msx_slot_disk_device : public msx_slot_rom_device { public: - msx_slot_disk_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - - virtual void device_start() override; - // static configuration helpers static void set_fdc_tag(device_t &device, const char *tag) { dynamic_cast(device).m_fdc_tag = tag; } static void set_floppy0_tag(device_t &device, const char *tag) { dynamic_cast(device).m_floppy0_tag = tag; } @@ -85,6 +83,10 @@ public: static void set_floppy3_tag(device_t &device, const char *tag) { dynamic_cast(device).m_floppy3_tag = tag; } protected: + msx_slot_disk_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + virtual void device_start() override; + floppy_connector *m_floppy0; floppy_connector *m_floppy1; floppy_connector *m_floppy2; @@ -101,24 +103,22 @@ protected: class msx_slot_wd_disk_device : public msx_slot_disk_device { -public: - msx_slot_wd_disk_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); +protected: + msx_slot_wd_disk_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); virtual void device_start() override; -protected: - wd_fdc_analog_t *m_fdc; + wd_fdc_analog_device_base *m_fdc; }; class msx_slot_tc8566_disk_device : public msx_slot_disk_device { -public: - msx_slot_tc8566_disk_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); +protected: + msx_slot_tc8566_disk_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); virtual void device_start() override; -protected: tc8566af_device *m_fdc; }; @@ -128,12 +128,13 @@ class msx_slot_disk1_device : public msx_slot_wd_disk_device public: msx_slot_disk1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual void device_start() override; - virtual void device_reset() override; - virtual DECLARE_READ8_MEMBER(read) override; virtual DECLARE_WRITE8_MEMBER(write) override; +protected: + virtual void device_start() override; + virtual void device_reset() override; + void post_load(); private: @@ -150,12 +151,13 @@ class msx_slot_disk2_device : public msx_slot_wd_disk_device public: msx_slot_disk2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual void device_start() override; - virtual void device_reset() override; - virtual DECLARE_READ8_MEMBER(read) override; virtual DECLARE_WRITE8_MEMBER(write) override; +protected: + virtual void device_start() override; + virtual void device_reset() override; + void post_load(); private: @@ -190,12 +192,13 @@ class msx_slot_disk5_device : public msx_slot_wd_disk_device public: msx_slot_disk5_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual void device_start() override; - virtual void device_reset() override; - DECLARE_READ8_MEMBER(io_read); DECLARE_WRITE8_MEMBER(io_write); +protected: + virtual void device_start() override; + virtual void device_reset() override; + void post_load(); private: @@ -210,12 +213,13 @@ class msx_slot_disk6_device : public msx_slot_wd_disk_device public: msx_slot_disk6_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual void device_start() override; - virtual void device_reset() override; - virtual DECLARE_READ8_MEMBER(read) override; virtual DECLARE_WRITE8_MEMBER(write) override; +protected: + virtual void device_start() override; + virtual void device_reset() override; + void post_load(); private: @@ -228,4 +232,4 @@ private: }; -#endif +#endif // MAME_BUS_MSX_SLOT_DISK_H diff --git a/src/devices/bus/msx_slot/fs4600.cpp b/src/devices/bus/msx_slot/fs4600.cpp index 0b15cb77048..3bcdce9f3a5 100644 --- a/src/devices/bus/msx_slot/fs4600.cpp +++ b/src/devices/bus/msx_slot/fs4600.cpp @@ -8,24 +8,21 @@ #include "fs4600.h" -const device_type MSX_SLOT_FS4600 = device_creator; +DEFINE_DEVICE_TYPE(MSX_SLOT_FS4600, msx_slot_fs4600_device, "msx_slot_fs4600", "MSX Internal FS4600 Firmware") msx_slot_fs4600_device::msx_slot_fs4600_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MSX_SLOT_FS4600, "MSX Internal FS4600 Firmware", tag, owner, clock, "msx_slot_fs4600", __FILE__) + : device_t(mconfig, MSX_SLOT_FS4600, tag, owner, clock) , msx_internal_slot_interface() , m_nvram(*this, "nvram") , m_rom_region(*this, finder_base::DUMMY_TAG) , m_region_offset(0) , m_rom(nullptr) + , m_selected_bank{ 0, 0, 0, 0 } + , m_bank_base{ nullptr, nullptr, nullptr, nullptr } , m_sram_address(0) , m_control(0) { - for (int i = 0; i < 4; i++) - { - m_selected_bank[i] = 0; - m_bank_base[i] = nullptr; - } memset(m_sram, 0, sizeof(m_sram)); } diff --git a/src/devices/bus/msx_slot/fs4600.h b/src/devices/bus/msx_slot/fs4600.h index 48f5e142c82..563e7d37535 100644 --- a/src/devices/bus/msx_slot/fs4600.h +++ b/src/devices/bus/msx_slot/fs4600.h @@ -1,21 +1,22 @@ // license:BSD-3-Clause // copyright-holders:Wilbert Pol -#ifndef __MSX_SLOT_FS4600_H -#define __MSX_SLOT_FS4600_H +#ifndef MAME_BUS_MSX_SLOT_FS4600_H +#define MAME_BUS_MSX_SLOT_FS4600_H + +#pragma once #include "slot.h" #include "machine/nvram.h" -extern const device_type MSX_SLOT_FS4600; +DECLARE_DEVICE_TYPE(MSX_SLOT_FS4600, msx_slot_fs4600_device) #define MCFG_MSX_SLOT_FS4600_ADD(_tag, _startpage, _numpages, _region, _offset) \ MCFG_MSX_INTERNAL_SLOT_ADD(_tag, MSX_SLOT_FS4600, _startpage, _numpages) \ msx_slot_fs4600_device::set_rom_start(*device, "^" _region, _offset); -class msx_slot_fs4600_device : public device_t, - public msx_internal_slot_interface +class msx_slot_fs4600_device : public device_t, public msx_internal_slot_interface { public: msx_slot_fs4600_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); @@ -23,12 +24,14 @@ public: // static configuration helpers static void set_rom_start(device_t &device, const char *region, uint32_t offset); - virtual void device_start() override; virtual machine_config_constructor device_mconfig_additions() const override; virtual DECLARE_READ8_MEMBER(read) override; virtual DECLARE_WRITE8_MEMBER(write) override; +protected: + virtual void device_start() override; + void restore_banks(); private: @@ -44,4 +47,4 @@ private: }; -#endif +#endif // MAME_BUS_MSX_SLOT_FS4600_H diff --git a/src/devices/bus/msx_slot/music.cpp b/src/devices/bus/msx_slot/music.cpp index ae11b71df2b..1e526dab7eb 100644 --- a/src/devices/bus/msx_slot/music.cpp +++ b/src/devices/bus/msx_slot/music.cpp @@ -4,11 +4,11 @@ #include "music.h" -const device_type MSX_SLOT_MUSIC = device_creator; +DEFINE_DEVICE_TYPE(MSX_SLOT_MUSIC, msx_slot_music_device, "msx_slot_music", "MSX Internal MSX-MUSIC") msx_slot_music_device::msx_slot_music_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : msx_slot_rom_device(mconfig, MSX_SLOT_MUSIC, "MSX Internal MSX-MUSIC", tag, owner, clock, "msx_slot_music", __FILE__) + : msx_slot_rom_device(mconfig, MSX_SLOT_MUSIC, tag, owner, clock) , m_ym2413(nullptr) , m_ym2413_tag(nullptr) { diff --git a/src/devices/bus/msx_slot/music.h b/src/devices/bus/msx_slot/music.h index d5587c9068c..c7e2a7bafb9 100644 --- a/src/devices/bus/msx_slot/music.h +++ b/src/devices/bus/msx_slot/music.h @@ -1,21 +1,23 @@ // license:BSD-3-Clause // copyright-holders:Wilbert Pol -#ifndef __MSX_SLOT_MUSIC_H -#define __MSX_SLOT_MUSIC_H +#ifndef MAME_BUS_MSX_SLOT_MUSIC_H +#define MAME_BUS_MSX_SLOT_MUSIC_H +#pragma once #include "bus/msx_slot/slot.h" #include "bus/msx_slot/rom.h" #include "sound/ym2413.h" -extern const device_type MSX_SLOT_MUSIC; +DECLARE_DEVICE_TYPE(MSX_SLOT_MUSIC, msx_slot_music_device) #define MCFG_MSX_SLOT_MUSIC_ADD(_tag, _startpage, _numpages, _region, _offset, _ym2413_tag) \ MCFG_MSX_INTERNAL_SLOT_ADD(_tag, MSX_SLOT_MUSIC, _startpage, _numpages) \ msx_slot_rom_device::set_rom_start(*device, "^" _region, _offset); \ msx_slot_music_device::set_ym2413_tag(*device, _ym2413_tag); + class msx_slot_music_device : public msx_slot_rom_device { public: @@ -24,16 +26,17 @@ public: // static configuration helpers static void set_ym2413_tag(device_t &device, const char *tag) { dynamic_cast(device).m_ym2413_tag = tag; } - virtual void device_start() override; - virtual DECLARE_READ8_MEMBER(read) override; DECLARE_WRITE8_MEMBER(write_ym2413); +protected: + virtual void device_start() override; + private: ym2413_device *m_ym2413; const char *m_ym2413_tag; }; -#endif +#endif // MAME_BUS_MSX_SLOT_MUSIC_H diff --git a/src/devices/bus/msx_slot/panasonic08.cpp b/src/devices/bus/msx_slot/panasonic08.cpp index b1f30ca70cc..1e4e1ce6e22 100644 --- a/src/devices/bus/msx_slot/panasonic08.cpp +++ b/src/devices/bus/msx_slot/panasonic08.cpp @@ -13,11 +13,11 @@ Todo: #include "panasonic08.h" -const device_type MSX_SLOT_PANASONIC08 = device_creator; +DEFINE_DEVICE_TYPE(MSX_SLOT_PANASONIC08, msx_slot_panasonic08_device, "msx_slot_panasonic08", "MSX Internal Panasonic08") msx_slot_panasonic08_device::msx_slot_panasonic08_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MSX_SLOT_PANASONIC08, "MSX Internal Panasonic08", tag, owner, clock, "msx_slot_panasonic08", __FILE__) + : device_t(mconfig, MSX_SLOT_PANASONIC08, tag, owner, clock) , msx_internal_slot_interface() , m_nvram(*this, "nvram") , m_rom_region(*this, finder_base::DUMMY_TAG) diff --git a/src/devices/bus/msx_slot/panasonic08.h b/src/devices/bus/msx_slot/panasonic08.h index eb7b058a71c..8318bd124f3 100644 --- a/src/devices/bus/msx_slot/panasonic08.h +++ b/src/devices/bus/msx_slot/panasonic08.h @@ -1,21 +1,22 @@ // license:BSD-3-Clause // copyright-holders:Wilbert Pol -#ifndef __MSX_SLOT_PANASONIC08_H -#define __MSX_SLOT_PANASONIC08_H +#ifndef MAME_BUS_MSX_SLOT_PANASONIC08_H +#define MAME_BUS_MSX_SLOT_PANASONIC08_H + +#pragma once #include "slot.h" #include "machine/nvram.h" -extern const device_type MSX_SLOT_PANASONIC08; +DECLARE_DEVICE_TYPE(MSX_SLOT_PANASONIC08, msx_slot_panasonic08_device) #define MCFG_MSX_SLOT_PANASONIC08_ADD(_tag, _startpage, _numpages, _region, _offset) \ MCFG_MSX_INTERNAL_SLOT_ADD(_tag, MSX_SLOT_PANASONIC08, _startpage, _numpages) \ msx_slot_panasonic08_device::set_rom_start(*device, "^" _region, _offset); -class msx_slot_panasonic08_device : public device_t, - public msx_internal_slot_interface +class msx_slot_panasonic08_device : public device_t, public msx_internal_slot_interface { public: msx_slot_panasonic08_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); @@ -23,15 +24,18 @@ public: // static configuration helpers static void set_rom_start(device_t &device, const char *region, uint32_t offset); - virtual void device_start() override; virtual machine_config_constructor device_mconfig_additions() const override; virtual DECLARE_READ8_MEMBER(read) override; virtual DECLARE_WRITE8_MEMBER(write) override; - void restore_banks(); +protected: + virtual void device_start() override; private: + void restore_banks(); + void map_bank(int bank); + required_device m_nvram; required_memory_region m_rom_region; uint32_t m_region_offset; @@ -40,9 +44,7 @@ private: const uint8_t *m_bank_base[8]; uint8_t m_control; std::vector m_sram; - - void map_bank(int bank); }; -#endif +#endif // MAME_BUS_MSX_SLOT_PANASONIC08_H diff --git a/src/devices/bus/msx_slot/ram.cpp b/src/devices/bus/msx_slot/ram.cpp index e03a8ed4e7c..a113dab1d39 100644 --- a/src/devices/bus/msx_slot/ram.cpp +++ b/src/devices/bus/msx_slot/ram.cpp @@ -4,10 +4,10 @@ #include "emu.h" #include "ram.h" -const device_type MSX_SLOT_RAM = device_creator; +DEFINE_DEVICE_TYPE(MSX_SLOT_RAM, msx_slot_ram_device, "msx_slot_ram", "MSX Internal RAM") msx_slot_ram_device::msx_slot_ram_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MSX_SLOT_RAM, "MSX Internal RAM", tag, owner, clock, "msx_slot_ram", __FILE__) + : device_t(mconfig, MSX_SLOT_RAM, tag, owner, clock) , msx_internal_slot_interface() { } diff --git a/src/devices/bus/msx_slot/ram.h b/src/devices/bus/msx_slot/ram.h index 7e05bb9d46c..6b6ea760e8f 100644 --- a/src/devices/bus/msx_slot/ram.h +++ b/src/devices/bus/msx_slot/ram.h @@ -1,7 +1,7 @@ // license:BSD-3-Clause // copyright-holders:Wilbert Pol -#ifndef __MSX_SLOT_RAM_H -#define __MSX_SLOT_RAM_H +#ifndef MAME_BUS_MSX_SLOT_RAM_H +#define MAME_BUS_MSX_SLOT_RAM_H #include "slot.h" @@ -20,17 +20,18 @@ public: static void force_start_address(device_t &device, uint16_t start) { downcast(device).m_start_address = start; } - virtual void device_start() override; - virtual DECLARE_READ8_MEMBER(read) override; virtual DECLARE_WRITE8_MEMBER(write) override; +protected: + virtual void device_start() override; + private: std::vector m_ram; }; -extern const device_type MSX_SLOT_RAM; +DECLARE_DEVICE_TYPE(MSX_SLOT_RAM, msx_slot_ram_device) -#endif +#endif // MAME_BUS_MSX_SLOT_RAM_H diff --git a/src/devices/bus/msx_slot/ram_mm.cpp b/src/devices/bus/msx_slot/ram_mm.cpp index 75ea33d06c5..1b765c832f2 100644 --- a/src/devices/bus/msx_slot/ram_mm.cpp +++ b/src/devices/bus/msx_slot/ram_mm.cpp @@ -3,10 +3,10 @@ #include "emu.h" #include "ram_mm.h" -const device_type MSX_SLOT_RAM_MM = device_creator; +DEFINE_DEVICE_TYPE(MSX_SLOT_RAM_MM, msx_slot_ram_mm_device, "msx_slot_ram_mm", "MSX Internal Memory Mapped RAM") msx_slot_ram_mm_device::msx_slot_ram_mm_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MSX_SLOT_RAM_MM, "MSX Internal Memory Mapped RAM", tag, owner, clock, "msx_slot_ram_mm", __FILE__) + : device_t(mconfig, MSX_SLOT_RAM_MM, tag, owner, clock) , msx_internal_slot_interface() , m_total_size(0) , m_bank_mask(0) diff --git a/src/devices/bus/msx_slot/ram_mm.h b/src/devices/bus/msx_slot/ram_mm.h index 1350d3c3158..584fc064897 100644 --- a/src/devices/bus/msx_slot/ram_mm.h +++ b/src/devices/bus/msx_slot/ram_mm.h @@ -1,7 +1,7 @@ // license:BSD-3-Clause // copyright-holders:Wilbert Pol -#ifndef __MSX_SLOT_RAM_MM_H -#define __MSX_SLOT_RAM_MM_H +#ifndef MAME_BUS_MSX_SLOT_RAM_MM_H +#define MAME_BUS_MSX_SLOT_RAM_MM_H #include "slot.h" @@ -12,8 +12,7 @@ #define MCFG_MSX_SLOT_RAMM_SET_RAMIO_BITS(_ramio_set_bits) \ msx_slot_ram_mm_device::set_ramio_set_bits(*device, _ramio_set_bits); -class msx_slot_ram_mm_device : public device_t - , public msx_internal_slot_interface +class msx_slot_ram_mm_device : public device_t, public msx_internal_slot_interface { public: msx_slot_ram_mm_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); @@ -21,14 +20,15 @@ public: static void set_total_size(device_t &device, uint32_t total_size) { dynamic_cast(device).m_total_size = total_size; } static void set_ramio_set_bits(device_t &device, uint8_t ramio_set_bits) { dynamic_cast(device).m_ramio_set_bits = ramio_set_bits; } - virtual void device_start() override; - virtual DECLARE_READ8_MEMBER(read) override; virtual DECLARE_WRITE8_MEMBER(write) override; DECLARE_READ8_MEMBER(read_mapper_bank); DECLARE_WRITE8_MEMBER(write_mapper_bank); +protected: + virtual void device_start() override; + void restore_banks(); private: @@ -40,6 +40,6 @@ private: uint8_t m_ramio_set_bits; }; -extern const device_type MSX_SLOT_RAM_MM; +DECLARE_DEVICE_TYPE(MSX_SLOT_RAM_MM, msx_slot_ram_mm_device) -#endif +#endif // MAME_BUS_MSX_SLOT_RAM_MM_H diff --git a/src/devices/bus/msx_slot/rom.cpp b/src/devices/bus/msx_slot/rom.cpp index 46d468b8121..05805412762 100644 --- a/src/devices/bus/msx_slot/rom.cpp +++ b/src/devices/bus/msx_slot/rom.cpp @@ -4,17 +4,17 @@ #include "rom.h" -const device_type MSX_SLOT_ROM = device_creator; +DEFINE_DEVICE_TYPE(MSX_SLOT_ROM, msx_slot_rom_device, "msx_slot_rom", "MSX Internal ROM") msx_slot_rom_device::msx_slot_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : msx_slot_rom_device(mconfig, MSX_SLOT_ROM, "MSX Internal ROM", tag, owner, clock, "msx_slot_rom", __FILE__) + : msx_slot_rom_device(mconfig, MSX_SLOT_ROM, tag, owner, clock) { } -msx_slot_rom_device::msx_slot_rom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source) +msx_slot_rom_device::msx_slot_rom_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) , msx_internal_slot_interface() , m_rom_region(*this, finder_base::DUMMY_TAG) , m_region_offset(0) diff --git a/src/devices/bus/msx_slot/rom.h b/src/devices/bus/msx_slot/rom.h index 09389b80eb4..19081d8d76b 100644 --- a/src/devices/bus/msx_slot/rom.h +++ b/src/devices/bus/msx_slot/rom.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Wilbert Pol -#ifndef __MSX_SLOT_ROM_H -#define __MSX_SLOT_ROM_H +#ifndef MAME_BUS_MSX_SLOT_ROM_H +#define MAME_BUS_MSX_SLOT_ROM_H + +#pragma once #include "slot.h" @@ -13,16 +15,18 @@ class msx_slot_rom_device : public device_t, public msx_internal_slot_interface { public: - msx_slot_rom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); msx_slot_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // static configuration helpers static void set_rom_start(device_t &device, const char *region, uint32_t offset); - virtual void device_start() override; - virtual DECLARE_READ8_MEMBER(read) override; +protected: + msx_slot_rom_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + virtual void device_start() override; + private: required_memory_region m_rom_region; uint32_t m_region_offset; @@ -31,4 +35,4 @@ private: extern const device_type MSX_SLOT_ROM; -#endif +#endif // MAME_BUS_MSX_SLOT_ROM_H diff --git a/src/devices/bus/msx_slot/slot.h b/src/devices/bus/msx_slot/slot.h index b2349fadc30..6a2c7f093d9 100644 --- a/src/devices/bus/msx_slot/slot.h +++ b/src/devices/bus/msx_slot/slot.h @@ -10,8 +10,10 @@ pages; and multiple pieces of rom/ram/components can occur in a single slot. ***********************************************************************************************************/ -#ifndef __MSX_SLOT_SLOT_H -#define __MSX_SLOT_SLOT_H +#ifndef MAME_BUS_MSX_SLOT_SLOT_H +#define MAME_BUS_MSX_SLOT_SLOT_H + +#pragma once #define MCFG_MSX_INTERNAL_SLOT_ADD(_tag, _type, _startpage, _numpages) \ MCFG_DEVICE_ADD(_tag, _type, 0) \ @@ -37,4 +39,4 @@ protected: uint32_t m_end_address; }; -#endif +#endif // MAME_BUS_MSX_SLOT_SLOT_H diff --git a/src/devices/bus/msx_slot/sony08.cpp b/src/devices/bus/msx_slot/sony08.cpp index 4c575c9f94d..966d187e899 100644 --- a/src/devices/bus/msx_slot/sony08.cpp +++ b/src/devices/bus/msx_slot/sony08.cpp @@ -10,11 +10,11 @@ #include "sony08.h" -const device_type MSX_SLOT_SONY08 = device_creator; +DEFINE_DEVICE_TYPE(MSX_SLOT_SONY08, msx_slot_sony08_device, "msx_slot_sony08", "MSX Internal SONY08") msx_slot_sony08_device::msx_slot_sony08_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MSX_SLOT_SONY08, "MSX Internal SONY08", tag, owner, clock, "msx_slot_sony08", __FILE__) + : device_t(mconfig, MSX_SLOT_SONY08, tag, owner, clock) , msx_internal_slot_interface() , m_nvram(*this, "nvram") , m_rom_region(*this, finder_base::DUMMY_TAG) diff --git a/src/devices/bus/msx_slot/sony08.h b/src/devices/bus/msx_slot/sony08.h index e65c398f082..4a3e5a41170 100644 --- a/src/devices/bus/msx_slot/sony08.h +++ b/src/devices/bus/msx_slot/sony08.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Wilbert Pol -#ifndef __MSX_SLOT_SONY08_H -#define __MSX_SLOT_SONY08_H +#ifndef MAME_BUS_MSX_SLOT_SONY08_H +#define MAME_BUS_MSX_SLOT_SONY08_H + +#pragma once #include "slot.h" #include "machine/nvram.h" @@ -23,12 +25,14 @@ public: // static configuration helpers static void set_rom_start(device_t &device, const char *region, uint32_t offset); - virtual void device_start() override; virtual machine_config_constructor device_mconfig_additions() const override; virtual DECLARE_READ8_MEMBER(read) override; virtual DECLARE_WRITE8_MEMBER(write) override; +protected: + virtual void device_start() override; + void restore_banks(); private: @@ -44,4 +48,4 @@ private: }; -#endif +#endif // MAME_BUS_MSX_SLOT_SONY08_H diff --git a/src/devices/bus/nasbus/avc.cpp b/src/devices/bus/nasbus/avc.cpp index 4c7b95abdc9..01fcf5fcf60 100644 --- a/src/devices/bus/nasbus/avc.cpp +++ b/src/devices/bus/nasbus/avc.cpp @@ -16,7 +16,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type NASCOM_AVC = device_creator; +DEFINE_DEVICE_TYPE(NASCOM_AVC, nascom_avc_device, "nascom_avc", "Nascom Advanced Video Card") //------------------------------------------------- // machine_config_additions - device-specific @@ -51,7 +51,7 @@ machine_config_constructor nascom_avc_device::device_mconfig_additions() const //------------------------------------------------- nascom_avc_device::nascom_avc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, NASCOM_AVC, "Nascom Advanced Video Card", tag, owner, clock, "nascom_avc", __FILE__), + device_t(mconfig, NASCOM_AVC, tag, owner, clock), device_nasbus_card_interface(mconfig, *this), m_crtc(*this, "mc6845"), m_palette(*this, "palette"), @@ -82,9 +82,9 @@ void nascom_avc_device::device_start() void nascom_avc_device::device_reset() { - m_nasbus->m_io->install_write_handler(0xb0, 0xb0, write8_delegate(FUNC(mc6845_device::address_w), m_crtc.target())); - m_nasbus->m_io->install_readwrite_handler(0xb1, 0xb1, read8_delegate(FUNC(mc6845_device::register_r), m_crtc.target()), write8_delegate(FUNC(mc6845_device::register_w), m_crtc.target())); - m_nasbus->m_io->install_write_handler(0xb2, 0xb2, write8_delegate(FUNC(nascom_avc_device::control_w), this)); + io_space().install_write_handler(0xb0, 0xb0, write8_delegate(FUNC(mc6845_device::address_w), m_crtc.target())); + io_space().install_readwrite_handler(0xb1, 0xb1, read8_delegate(FUNC(mc6845_device::register_r), m_crtc.target()), write8_delegate(FUNC(mc6845_device::register_w), m_crtc.target())); + io_space().install_write_handler(0xb2, 0xb2, write8_delegate(FUNC(nascom_avc_device::control_w), this)); } @@ -136,11 +136,11 @@ WRITE8_MEMBER( nascom_avc_device::control_w ) if (((m_control & 0x07) == 0) && (data & 0x07)) { m_nasbus->ram_disable_w(0); - m_nasbus->m_program->install_readwrite_handler(0x8000, 0xbfff, read8_delegate(FUNC(nascom_avc_device::vram_r), this), write8_delegate(FUNC(nascom_avc_device::vram_w), this)); + program_space().install_readwrite_handler(0x8000, 0xbfff, read8_delegate(FUNC(nascom_avc_device::vram_r), this), write8_delegate(FUNC(nascom_avc_device::vram_w), this)); } else if ((data & 0x07) == 0) { - m_nasbus->m_program->unmap_readwrite(0x8000, 0xbfff); + program_space().unmap_readwrite(0x8000, 0xbfff); m_nasbus->ram_disable_w(1); } diff --git a/src/devices/bus/nasbus/avc.h b/src/devices/bus/nasbus/avc.h index abe5d1e2da0..b2da174bf87 100644 --- a/src/devices/bus/nasbus/avc.h +++ b/src/devices/bus/nasbus/avc.h @@ -6,10 +6,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_BUS_NASBUS_AVC_H +#define MAME_BUS_NASBUS_AVC_H -#ifndef __NASBUS_AVC_H__ -#define __NASBUS_AVC_H__ +#pragma once #include "nasbus.h" #include "video/mc6845.h" @@ -50,6 +50,6 @@ private: }; // device type definition -extern const device_type NASCOM_AVC; +DECLARE_DEVICE_TYPE(NASCOM_AVC, nascom_avc_device) -#endif // __NASBUS_AVC_H__ +#endif // MAME_BUS_NASBUS_AVC_H diff --git a/src/devices/bus/nasbus/cards.cpp b/src/devices/bus/nasbus/cards.cpp index 9fcc3c3e70a..db6606dad50 100644 --- a/src/devices/bus/nasbus/cards.cpp +++ b/src/devices/bus/nasbus/cards.cpp @@ -9,6 +9,10 @@ #include "emu.h" #include "cards.h" +#include "avc.h" +#include "floppy.h" + + SLOT_INTERFACE_START( nasbus_slot_cards ) SLOT_INTERFACE("avc", NASCOM_AVC) SLOT_INTERFACE("floppy", NASCOM_FDC) diff --git a/src/devices/bus/nasbus/cards.h b/src/devices/bus/nasbus/cards.h index a9fef5c96ab..89179c4a16f 100644 --- a/src/devices/bus/nasbus/cards.h +++ b/src/devices/bus/nasbus/cards.h @@ -6,15 +6,12 @@ ***************************************************************************/ -#pragma once - -#ifndef __NASBUS_CARDS_H__ -#define __NASBUS_CARDS_H__ +#ifndef MAME_BUS_NASBUS_CARDS_H +#define MAME_BUS_NASBUS_CARDS_H +#pragma once -#include "avc.h" -#include "floppy.h" SLOT_INTERFACE_EXTERN( nasbus_slot_cards ); -#endif // __NASBUS_CARDS_H__ +#endif // MAME_BUS_NASBUS_CARDS_H diff --git a/src/devices/bus/nasbus/floppy.cpp b/src/devices/bus/nasbus/floppy.cpp index f75b452f178..dd8c1337069 100644 --- a/src/devices/bus/nasbus/floppy.cpp +++ b/src/devices/bus/nasbus/floppy.cpp @@ -22,7 +22,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type NASCOM_FDC = device_creator; +DEFINE_DEVICE_TYPE(NASCOM_FDC, nascom_fdc_device, "nascom_fdc", "Nascom Floppy Disc Controller") FLOPPY_FORMATS_MEMBER( nascom_fdc_device::floppy_formats ) FLOPPY_NASCOM_FORMAT @@ -62,7 +62,7 @@ machine_config_constructor nascom_fdc_device::device_mconfig_additions() const //------------------------------------------------- nascom_fdc_device::nascom_fdc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, NASCOM_FDC, "Nascom Floppy Disc Controller", tag, owner, clock, "nascom_fdc", __FILE__), + device_t(mconfig, NASCOM_FDC, tag, owner, clock), device_nasbus_card_interface(mconfig, *this), m_fdc(*this, "fd1793"), m_floppy0(*this, "fd1793:0"), @@ -93,9 +93,9 @@ void nascom_fdc_device::device_start() void nascom_fdc_device::device_reset() { - m_nasbus->m_io->install_readwrite_handler(0xe0, 0xe3, read8_delegate(FUNC(fd1793_t::read), m_fdc.target()), write8_delegate(FUNC(fd1793_t::write), m_fdc.target())); - m_nasbus->m_io->install_readwrite_handler(0xe4, 0xe4, read8_delegate(FUNC(nascom_fdc_device::select_r), this), write8_delegate(FUNC(nascom_fdc_device::select_w), this)); - m_nasbus->m_io->install_read_handler(0xe5, 0xe5, read8_delegate(FUNC(nascom_fdc_device::status_r), this)); + io_space().install_readwrite_handler(0xe0, 0xe3, read8_delegate(FUNC(fd1793_device::read), m_fdc.target()), write8_delegate(FUNC(fd1793_device::write), m_fdc.target())); + io_space().install_readwrite_handler(0xe4, 0xe4, read8_delegate(FUNC(nascom_fdc_device::select_r), this), write8_delegate(FUNC(nascom_fdc_device::select_w), this)); + io_space().install_read_handler(0xe5, 0xe5, read8_delegate(FUNC(nascom_fdc_device::status_r), this)); } //------------------------------------------------- diff --git a/src/devices/bus/nasbus/floppy.h b/src/devices/bus/nasbus/floppy.h index 81526a53f88..dbe4635723f 100644 --- a/src/devices/bus/nasbus/floppy.h +++ b/src/devices/bus/nasbus/floppy.h @@ -6,10 +6,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_BUS_NASBUS_FLOPPY_H +#define MAME_BUS_NASBUS_FLOPPY_H -#ifndef __NASBUS_FLOPPY_H__ -#define __NASBUS_FLOPPY_H__ +#pragma once #include "nasbus.h" #include "machine/wd_fdc.h" @@ -42,7 +42,7 @@ protected: private: TIMER_CALLBACK_MEMBER(motor_off); - required_device m_fdc; + required_device m_fdc; required_device m_floppy0; required_device m_floppy1; required_device m_floppy2; @@ -55,6 +55,6 @@ private: }; // device type definition -extern const device_type NASCOM_FDC; +DECLARE_DEVICE_TYPE(NASCOM_FDC, nascom_fdc_device) -#endif // __NASBUS_FLOPPY_H__ +#endif // MAME_BUS_NASBUS_FLOPPY_H diff --git a/src/devices/bus/nasbus/nasbus.cpp b/src/devices/bus/nasbus/nasbus.cpp index f49302d5ab4..dafe56f68ac 100644 --- a/src/devices/bus/nasbus/nasbus.cpp +++ b/src/devices/bus/nasbus/nasbus.cpp @@ -16,22 +16,19 @@ // NASBUS SLOT DEVICE //************************************************************************** -const device_type NASBUS_SLOT = device_creator; +DEFINE_DEVICE_TYPE(NASBUS_SLOT, nasbus_slot_device, "nasbus_slot", "NASBUS Slot") //------------------------------------------------- // nasbus_slot_device - constructor //------------------------------------------------- nasbus_slot_device::nasbus_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, NASBUS_SLOT, "NASBUS Slot", tag, owner, clock, "nasbus_slot", __FILE__), - device_slot_interface(mconfig, *this), - m_nasbus_tag(nullptr) + nasbus_slot_device(mconfig, NASBUS_SLOT, tag, owner, clock) { } -nasbus_slot_device::nasbus_slot_device(const machine_config &mconfig, device_type type, const char *name, - const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), +nasbus_slot_device::nasbus_slot_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), device_slot_interface(mconfig, *this), m_nasbus_tag(nullptr) { @@ -64,14 +61,14 @@ void nasbus_slot_device::device_start() // NASBUS DEVICE //************************************************************************** -const device_type NASBUS = device_creator; +DEFINE_DEVICE_TYPE(NASBUS, nasbus_device, "nasbus", "NASBUS Backplane") //------------------------------------------------- // nasbus_device - constructor //------------------------------------------------- nasbus_device::nasbus_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, NASBUS, "NASBUS Backplane", tag, owner, clock, "nasbus", __FILE__), + device_t(mconfig, NASBUS, tag, owner, clock), m_program(nullptr), m_io(nullptr), m_ram_disable_handler(*this) @@ -147,8 +144,8 @@ WRITE_LINE_MEMBER( nasbus_device::ram_disable_w ) { m_ram_disable_handler(state) device_nasbus_card_interface::device_nasbus_card_interface(const machine_config &mconfig, device_t &device) : device_slot_card_interface(mconfig, device), - m_next(nullptr), - m_nasbus(nullptr) + m_nasbus(nullptr), + m_next(nullptr) { } diff --git a/src/devices/bus/nasbus/nasbus.h b/src/devices/bus/nasbus/nasbus.h index 7d6151d513e..c20445c741c 100644 --- a/src/devices/bus/nasbus/nasbus.h +++ b/src/devices/bus/nasbus/nasbus.h @@ -87,10 +87,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_BUS_NASBUS_NASBUS_H +#define MAME_BUS_NASBUS_NASBUS_H -#ifndef __NASBUS_H__ -#define __NASBUS_H__ +#pragma once @@ -131,34 +131,34 @@ class nasbus_slot_device : public device_t, public device_slot_interface public: // construction/destruction nasbus_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - nasbus_slot_device(const machine_config &mconfig, device_type type, const char *name, - const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - - // device-level overrides - virtual void device_start() override; - // inline configuration static void set_nasbus_slot(device_t &device, device_t *owner, const char *nasbus_tag); protected: + nasbus_slot_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual void device_start() override; + // configuration const char *m_nasbus_tag; }; // device type definition -extern const device_type NASBUS_SLOT; +DECLARE_DEVICE_TYPE(NASBUS_SLOT, nasbus_slot_device) // ======================> nasbus_device class nasbus_device : public device_t { + friend class device_nasbus_card_interface; public: // construction/destruction nasbus_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual ~nasbus_device(); - template static devcb_base &set_ram_disable_handler(device_t &device, _Object object) - { return downcast(device).m_ram_disable_handler.set_callback(object); } + template static devcb_base &set_ram_disable_handler(device_t &device, Object &&cb) + { return downcast(device).m_ram_disable_handler.set_callback(std::forward(cb)); } void add_card(device_nasbus_card_interface *card); @@ -168,42 +168,49 @@ public: // from cards DECLARE_WRITE_LINE_MEMBER( ram_disable_w ); - address_space *m_program; - address_space *m_io; - protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; private: + address_space *m_program; + address_space *m_io; + simple_list m_dev; devcb_write_line m_ram_disable_handler; }; // device type definition -extern const device_type NASBUS; +DECLARE_DEVICE_TYPE(NASBUS, nasbus_device) // ======================> device_nasbus_interface class device_nasbus_card_interface : public device_slot_card_interface { + template friend class simple_list; public: // construction/destruction - device_nasbus_card_interface(const machine_config &mconfig, device_t &device); virtual ~device_nasbus_card_interface(); void set_nasbus_device(nasbus_device *nasbus); device_nasbus_card_interface *next() const { return m_next; } - device_nasbus_card_interface *m_next; protected: + device_nasbus_card_interface(const machine_config &mconfig, device_t &device); + + address_space &program_space() { return *m_nasbus->m_program; } + address_space &io_space() { return *m_nasbus->m_io; } + nasbus_device *m_nasbus; + +private: + device_nasbus_card_interface *m_next; }; // include here so drivers don't need to #include "cards.h" -#endif // __NASBUS_H__ +#endif // MAME_BUS_NASBUS_NASBUS_H diff --git a/src/devices/bus/neogeo/boot_cthd.cpp b/src/devices/bus/neogeo/boot_cthd.cpp index 79189841fdf..360bc937433 100644 --- a/src/devices/bus/neogeo/boot_cthd.cpp +++ b/src/devices/bus/neogeo/boot_cthd.cpp @@ -13,32 +13,33 @@ //------------------------------------------------- -// neogeo_cthd2k3_cart - constructor +// neogeo_cthd2k3_cart_device - constructor //------------------------------------------------- -const device_type NEOGEO_CTHD2K3_CART = device_creator; +DEFINE_DEVICE_TYPE(NEOGEO_CTHD2K3_CART, neogeo_cthd2k3_cart_device, "neocart_ct2k3", "Neo Geo CTHD 2003 Cart") -neogeo_cthd2k3_cart::neogeo_cthd2k3_cart(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint16_t clock, const char *shortname, const char *source) : - neogeo_rom_device(mconfig, type, name, tag, owner, clock, shortname, source), +neogeo_cthd2k3_cart_device::neogeo_cthd2k3_cart_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint16_t clock) : + neogeo_rom_device(mconfig, type, tag, owner, clock), m_prot(*this, "cthd_prot") -{} +{ +} -neogeo_cthd2k3_cart::neogeo_cthd2k3_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint16_t clock) : - neogeo_rom_device(mconfig, NEOGEO_CTHD2K3_CART, "Neo Geo CTHD 2003 Cart", tag, owner, clock, "neocart_ct2k3", __FILE__), - m_prot(*this, "cthd_prot") -{} +neogeo_cthd2k3_cart_device::neogeo_cthd2k3_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint16_t clock) : + neogeo_cthd2k3_cart_device(mconfig, NEOGEO_CTHD2K3_CART, tag, owner, clock) +{ +} //------------------------------------------------- // mapper specific start/reset //------------------------------------------------- -void neogeo_cthd2k3_cart::device_start() +void neogeo_cthd2k3_cart_device::device_start() { } -void neogeo_cthd2k3_cart::device_reset() +void neogeo_cthd2k3_cart_device::device_reset() { } @@ -51,7 +52,7 @@ static MACHINE_CONFIG_FRAGMENT( cthd_cart ) MCFG_CTHD_PROT_ADD("cthd_prot") MACHINE_CONFIG_END -machine_config_constructor neogeo_cthd2k3_cart::device_mconfig_additions() const +machine_config_constructor neogeo_cthd2k3_cart_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( cthd_cart ); } @@ -62,7 +63,7 @@ machine_config_constructor neogeo_cthd2k3_cart::device_mconfig_additions() const **************************************************/ -void neogeo_cthd2k3_cart::decrypt_all(DECRYPT_ALL_PARAMS) +void neogeo_cthd2k3_cart_device::decrypt_all(DECRYPT_ALL_PARAMS) { m_prot->decrypt_cthd2003(spr_region, spr_region_size, audiocpu_region, audio_region_size, fix_region, fix_region_size); m_prot->patch_cthd2003(cpuregion, cpuregion_size); @@ -74,13 +75,14 @@ void neogeo_cthd2k3_cart::decrypt_all(DECRYPT_ALL_PARAMS) **************************************************/ -const device_type NEOGEO_CT2K3SP_CART = device_creator; +DEFINE_DEVICE_TYPE(NEOGEO_CT2K3SP_CART, neogeo_ct2k3sp_cart_device, "neocart_ct2k3sp", "Neo Geo CTHD 2003 Sp Cart") -neogeo_ct2k3sp_cart::neogeo_ct2k3sp_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - neogeo_cthd2k3_cart(mconfig, NEOGEO_CT2K3SP_CART, "Neo Geo CTHD 2003 Sp Cart", tag, owner, clock, "neocart_ct2k3sp", __FILE__) -{} +neogeo_ct2k3sp_cart_device::neogeo_ct2k3sp_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + neogeo_cthd2k3_cart_device(mconfig, NEOGEO_CT2K3SP_CART, tag, owner, clock) +{ +} -void neogeo_ct2k3sp_cart::decrypt_all(DECRYPT_ALL_PARAMS) +void neogeo_ct2k3sp_cart_device::decrypt_all(DECRYPT_ALL_PARAMS) { m_prot->decrypt_ct2k3sp(spr_region, spr_region_size, audiocpu_region, audio_region_size, fix_region, fix_region_size); m_prot->patch_cthd2003(cpuregion, cpuregion_size); @@ -90,13 +92,14 @@ void neogeo_ct2k3sp_cart::decrypt_all(DECRYPT_ALL_PARAMS) ct2k3sa **************************************************/ -const device_type NEOGEO_CT2K3SA_CART = device_creator; +DEFINE_DEVICE_TYPE(NEOGEO_CT2K3SA_CART, neogeo_ct2k3sa_cart_device, "neocart_ct2k3sa", "Neo Geo CTHD 2003 Sp Alt Cart") -neogeo_ct2k3sa_cart::neogeo_ct2k3sa_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - neogeo_cthd2k3_cart(mconfig, NEOGEO_CT2K3SA_CART, "Neo Geo CTHD 2003 Sp Alt Cart", tag, owner, clock, "neocart_ct2k3sa", __FILE__) -{} +neogeo_ct2k3sa_cart_device::neogeo_ct2k3sa_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + neogeo_cthd2k3_cart_device(mconfig, NEOGEO_CT2K3SA_CART, tag, owner, clock) +{ +} -void neogeo_ct2k3sa_cart::decrypt_all(DECRYPT_ALL_PARAMS) +void neogeo_ct2k3sa_cart_device::decrypt_all(DECRYPT_ALL_PARAMS) { m_prot->decrypt_ct2k3sa(spr_region, spr_region_size, audiocpu_region, audio_region_size); m_prot->patch_ct2k3sa(cpuregion, cpuregion_size); @@ -107,15 +110,16 @@ void neogeo_ct2k3sa_cart::decrypt_all(DECRYPT_ALL_PARAMS) matrimbl **************************************************/ -const device_type NEOGEO_MATRIMBL_CART = device_creator; +DEFINE_DEVICE_TYPE(NEOGEO_MATRIMBL_CART, neogeo_matrimbl_cart_device, "neocart_matrimbl", "Neo Geo Matrimelee Bootleg Cart") -neogeo_matrimbl_cart::neogeo_matrimbl_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - neogeo_cthd2k3_cart(mconfig, NEOGEO_MATRIMBL_CART, "Neo Geo Matrimelee Bootleg Cart", tag, owner, clock, "neocart_matrimbl", __FILE__), +neogeo_matrimbl_cart_device::neogeo_matrimbl_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + neogeo_cthd2k3_cart_device(mconfig, NEOGEO_MATRIMBL_CART, tag, owner, clock), m_cmc_prot(*this, "cmc_prot"), m_kof2k2_prot(*this, "kof2k2_prot") -{} +{ +} -void neogeo_matrimbl_cart::decrypt_all(DECRYPT_ALL_PARAMS) +void neogeo_matrimbl_cart_device::decrypt_all(DECRYPT_ALL_PARAMS) { m_kof2k2_prot->matrim_decrypt_68k(cpuregion, cpuregion_size); m_cmc_prot->sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size); // required for text layer @@ -129,7 +133,7 @@ static MACHINE_CONFIG_FRAGMENT( matrimbl_cart ) MCFG_CTHD_PROT_ADD("cthd_prot") MACHINE_CONFIG_END -machine_config_constructor neogeo_matrimbl_cart::device_mconfig_additions() const +machine_config_constructor neogeo_matrimbl_cart_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( matrimbl_cart ); } diff --git a/src/devices/bus/neogeo/boot_cthd.h b/src/devices/bus/neogeo/boot_cthd.h index 7d3bb213b80..1846d1dd744 100644 --- a/src/devices/bus/neogeo/boot_cthd.h +++ b/src/devices/bus/neogeo/boot_cthd.h @@ -1,37 +1,44 @@ // license:BSD-3-Clause // copyright-holders:S. Smith,David Haywood,Fabio Priuli -#ifndef __NEOGEO_BOOTCTHD_H -#define __NEOGEO_BOOTCTHD_H +#ifndef MAME_BUS_NEOGEO_BOOT_CTHD_H +#define MAME_BUS_NEOGEO_BOOT_CTHD_H + +#pragma once #include "slot.h" -#include "rom.h" +#include "prot_cmc.h" #include "prot_cthd.h" +#include "prot_kof2k2.h" +#include "rom.h" -// ======================> neogeo_cthd2k3_cart -class neogeo_cthd2k3_cart : public neogeo_rom_device +// ======================> neogeo_cthd2k3_cart_device + +class neogeo_cthd2k3_cart_device : public neogeo_rom_device { public: // construction/destruction - neogeo_cthd2k3_cart(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint16_t clock, const char *shortname, const char *source); - neogeo_cthd2k3_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint16_t clock); + neogeo_cthd2k3_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint16_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; virtual machine_config_constructor device_mconfig_additions() const override; // reading and writing virtual uint32_t get_bank_base(uint16_t sel) override { return m_prot->get_bank_base(sel); } virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; - virtual int get_fixed_bank_type(void) override { return 0; } + virtual int get_fixed_bank_type() override { return 0; } protected: + neogeo_cthd2k3_cart_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint16_t clock); + + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + required_device m_prot; }; // device type definition -extern const device_type NEOGEO_CTHD2K3_CART; +DECLARE_DEVICE_TYPE(NEOGEO_CTHD2K3_CART, neogeo_cthd2k3_cart_device) @@ -39,45 +46,42 @@ extern const device_type NEOGEO_CTHD2K3_CART; ct2k3sp **************************************************/ -class neogeo_ct2k3sp_cart : public neogeo_cthd2k3_cart +class neogeo_ct2k3sp_cart_device : public neogeo_cthd2k3_cart_device { public: - neogeo_ct2k3sp_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + neogeo_ct2k3sp_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; - virtual int get_fixed_bank_type(void) override { return 0; } + virtual int get_fixed_bank_type() override { return 0; } }; -extern const device_type NEOGEO_CT2K3SP_CART; +DECLARE_DEVICE_TYPE(NEOGEO_CT2K3SP_CART, neogeo_ct2k3sp_cart_device) /************************************************* ct2k3sa **************************************************/ -class neogeo_ct2k3sa_cart : public neogeo_cthd2k3_cart +class neogeo_ct2k3sa_cart_device : public neogeo_cthd2k3_cart_device { public: - neogeo_ct2k3sa_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + neogeo_ct2k3sa_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; - virtual int get_fixed_bank_type(void) override { return 0; } + virtual int get_fixed_bank_type() override { return 0; } }; -extern const device_type NEOGEO_CT2K3SA_CART; +DECLARE_DEVICE_TYPE(NEOGEO_CT2K3SA_CART, neogeo_ct2k3sa_cart_device) /************************************************* matrimbl **************************************************/ -#include "prot_cmc.h" -#include "prot_kof2k2.h" - -class neogeo_matrimbl_cart : public neogeo_cthd2k3_cart +class neogeo_matrimbl_cart_device : public neogeo_cthd2k3_cart_device { public: - neogeo_matrimbl_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + neogeo_matrimbl_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; - virtual int get_fixed_bank_type(void) override { return 2; } + virtual int get_fixed_bank_type() override { return 2; } virtual machine_config_constructor device_mconfig_additions() const override; @@ -86,7 +90,7 @@ private: required_device m_kof2k2_prot; }; -extern const device_type NEOGEO_MATRIMBL_CART; +DECLARE_DEVICE_TYPE(NEOGEO_MATRIMBL_CART, neogeo_matrimbl_cart_device) -#endif +#endif // MAME_BUS_NEOGEO_BOOT_CTHD_H diff --git a/src/devices/bus/neogeo/boot_kof10th.cpp b/src/devices/bus/neogeo/boot_kof10th.cpp index 1ce38f14785..aa42ed9018f 100644 --- a/src/devices/bus/neogeo/boot_kof10th.cpp +++ b/src/devices/bus/neogeo/boot_kof10th.cpp @@ -13,22 +13,23 @@ //------------------------------------------------- -// neogeo_kof10th_cart - constructor +// neogeo_kof10th_cart_device - constructor //------------------------------------------------- -const device_type NEOGEO_KOF10TH_CART = device_creator; +DEFINE_DEVICE_TYPE(NEOGEO_KOF10TH_CART, neogeo_kof10th_cart_device, "neocart_kof10th", "Neo Geo KoF 10th Ann. Bootleg Cart") -neogeo_kof10th_cart::neogeo_kof10th_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint16_t clock) : - neogeo_bootleg_cart(mconfig, NEOGEO_KOF10TH_CART, "Neo Geo KOF 10th Ann Bootleg Cart", tag, owner, clock, "neocart_kof10th", __FILE__) -{} +neogeo_kof10th_cart_device::neogeo_kof10th_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint16_t clock) : + neogeo_bootleg_cart_device(mconfig, NEOGEO_KOF10TH_CART, tag, owner, clock) +{ +} //------------------------------------------------- // mapper specific start/reset //------------------------------------------------- -void neogeo_kof10th_cart::device_start() +void neogeo_kof10th_cart_device::device_start() { save_pointer(NAME(m_fixed), 0x40000); save_item(NAME(m_special_bank)); @@ -36,7 +37,7 @@ void neogeo_kof10th_cart::device_start() save_item(NAME(m_cart_ram2)); } -void neogeo_kof10th_cart::device_reset() +void neogeo_kof10th_cart_device::device_reset() { m_special_bank = 0; memset(m_cart_ram, 0x00, 0x2000); @@ -52,13 +53,13 @@ static MACHINE_CONFIG_FRAGMENT( kof10th_cart ) MCFG_NEOBOOT_PROT_ADD("bootleg_prot") MACHINE_CONFIG_END -machine_config_constructor neogeo_kof10th_cart::device_mconfig_additions() const +machine_config_constructor neogeo_kof10th_cart_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( kof10th_cart ); } -void neogeo_kof10th_cart::decrypt_all(DECRYPT_ALL_PARAMS) +void neogeo_kof10th_cart_device::decrypt_all(DECRYPT_ALL_PARAMS) { m_prot->kof10th_decrypt(cpuregion, cpuregion_size); memcpy(m_cart_ram2, (uint8_t *)cpuregion + 0xe0000, 0x20000); @@ -70,7 +71,7 @@ void neogeo_kof10th_cart::decrypt_all(DECRYPT_ALL_PARAMS) is incomplete, at the moment the S data is copied from the program rom on start-up instead */ -uint32_t neogeo_kof10th_cart::get_bank_base(uint16_t sel) +uint32_t neogeo_kof10th_cart_device::get_bank_base(uint16_t sel) { uint32_t bank = 0x100000 + ((sel & 7) << 20); if (bank >= 0x700000) @@ -78,28 +79,28 @@ uint32_t neogeo_kof10th_cart::get_bank_base(uint16_t sel) return bank; } -uint16_t neogeo_kof10th_cart::get_helper() +uint16_t neogeo_kof10th_cart_device::get_helper() { return m_cart_ram[0xffc]; } -uint32_t neogeo_kof10th_cart::get_special_bank() +uint32_t neogeo_kof10th_cart_device::get_special_bank() { return m_special_bank; } -READ16_MEMBER(neogeo_kof10th_cart::protection_r) +READ16_MEMBER(neogeo_kof10th_cart_device::protection_r) { return m_cart_ram[offset]; } -READ16_MEMBER(neogeo_kof10th_cart::addon_r) +READ16_MEMBER(neogeo_kof10th_cart_device::addon_r) { // printf("kof10th_RAM2_r\n"); return m_cart_ram2[offset]; } -WRITE16_MEMBER(neogeo_kof10th_cart::protection_w) +WRITE16_MEMBER(neogeo_kof10th_cart_device::protection_w) { if (offset < 0x40000/2) { diff --git a/src/devices/bus/neogeo/boot_kof10th.h b/src/devices/bus/neogeo/boot_kof10th.h index 0ba5c0ee2a1..1d246d6f4e1 100644 --- a/src/devices/bus/neogeo/boot_kof10th.h +++ b/src/devices/bus/neogeo/boot_kof10th.h @@ -1,23 +1,22 @@ // license:BSD-3-Clause // copyright-holders:S. Smith,David Haywood,Fabio Priuli -#ifndef __NEOGEO_KOF10TH_H -#define __NEOGEO_KOF10TH_H +#ifndef MAME_BUS_NEOGEO_BOOT_KOF10TH_H +#define MAME_BUS_NEOGEO_BOOT_KOF10TH_H + +#pragma once #include "slot.h" #include "boot_misc.h" #include "prot_misc.h" -// ======================> neogeo_kof10th_cart +// ======================> neogeo_kof10th_cart_device -class neogeo_kof10th_cart : public neogeo_bootleg_cart +class neogeo_kof10th_cart_device : public neogeo_bootleg_cart_device { public: // construction/destruction - neogeo_kof10th_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint16_t clock); + neogeo_kof10th_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint16_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; virtual machine_config_constructor device_mconfig_additions() const override; // reading and writing @@ -29,7 +28,12 @@ public: virtual DECLARE_WRITE16_MEMBER(protection_w) override; virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; - virtual int get_fixed_bank_type(void) override { return 0; } + virtual int get_fixed_bank_type() override { return 0; } + +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; private: uint8_t* m_fixed; @@ -39,8 +43,6 @@ private: }; // device type definition -extern const device_type NEOGEO_KOF10TH_CART; - - +DECLARE_DEVICE_TYPE(NEOGEO_KOF10TH_CART, neogeo_kof10th_cart_device) -#endif +#endif // MAME_BUS_NEOGEO_BOOT_KOF10TH_H diff --git a/src/devices/bus/neogeo/boot_kof2k2.cpp b/src/devices/bus/neogeo/boot_kof2k2.cpp index 522f83e65aa..61876fd02f9 100644 --- a/src/devices/bus/neogeo/boot_kof2k2.cpp +++ b/src/devices/bus/neogeo/boot_kof2k2.cpp @@ -25,17 +25,17 @@ static MACHINE_CONFIG_FRAGMENT( kof2k2mp_cart ) MCFG_PCM2_PROT_ADD("pcm2_prot") MACHINE_CONFIG_END -machine_config_constructor neogeo_kof2002b_cart::device_mconfig_additions() const +machine_config_constructor neogeo_kof2002b_cart_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( kof2k2bl_cart ); } -machine_config_constructor neogeo_kf2k2mp_cart::device_mconfig_additions() const +machine_config_constructor neogeo_kf2k2mp_cart_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( kof2k2mp_cart ); } -machine_config_constructor neogeo_kf2k2mp2_cart::device_mconfig_additions() const +machine_config_constructor neogeo_kf2k2mp2_cart_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( kof2k2mp_cart ); } @@ -44,17 +44,18 @@ machine_config_constructor neogeo_kf2k2mp2_cart::device_mconfig_additions() cons kof2002b **************************************************/ -const device_type NEOGEO_KOF2002B_CART = device_creator; +DEFINE_DEVICE_TYPE(NEOGEO_KOF2002B_CART, neogeo_kof2002b_cart_device, "neocart_kof2002b", "Neo Geo KoF 2002 Bootleg Cart") -neogeo_kof2002b_cart::neogeo_kof2002b_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - neogeo_bootleg_cart(mconfig, NEOGEO_KOF2002B_CART, "Neo Geo KOF 2002 Bootleg Cart", tag, owner, clock, "neocart_kof2002b", __FILE__), +neogeo_kof2002b_cart_device::neogeo_kof2002b_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + neogeo_bootleg_cart_device(mconfig, NEOGEO_KOF2002B_CART, tag, owner, clock), m_cmc_prot(*this, "cmc_prot"), m_pcm2_prot(*this, "pcm2_prot"), m_kof2k2_prot(*this, "kof2k2_prot") -{} +{ +} -void neogeo_kof2002b_cart::decrypt_all(DECRYPT_ALL_PARAMS) +void neogeo_kof2002b_cart_device::decrypt_all(DECRYPT_ALL_PARAMS) { m_kof2k2_prot->kof2002_decrypt_68k(cpuregion, cpuregion_size); m_pcm2_prot->swap(ym_region, ym_region_size, 0); @@ -67,16 +68,17 @@ void neogeo_kof2002b_cart::decrypt_all(DECRYPT_ALL_PARAMS) kf2k2mp **************************************************/ -const device_type NEOGEO_KF2K2MP_CART = device_creator; +DEFINE_DEVICE_TYPE(NEOGEO_KF2K2MP_CART, neogeo_kf2k2mp_cart_device, "neocart_kf2k2mp", "Neo Geo KoF 2002 MP Cart") -neogeo_kf2k2mp_cart::neogeo_kf2k2mp_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - neogeo_bootleg_cart(mconfig, NEOGEO_KF2K2MP_CART, "Neo Geo KOF 2002 MP Cart", tag, owner, clock, "neocart_kf2k2mp", __FILE__), +neogeo_kf2k2mp_cart_device::neogeo_kf2k2mp_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + neogeo_bootleg_cart_device(mconfig, NEOGEO_KF2K2MP_CART, tag, owner, clock), m_cmc_prot(*this, "cmc_prot"), m_pcm2_prot(*this, "pcm2_prot") -{} +{ +} -void neogeo_kf2k2mp_cart::decrypt_all(DECRYPT_ALL_PARAMS) +void neogeo_kf2k2mp_cart_device::decrypt_all(DECRYPT_ALL_PARAMS) { m_prot->kf2k2mp_decrypt(cpuregion, cpuregion_size); m_pcm2_prot->swap(ym_region, ym_region_size, 0); @@ -89,16 +91,17 @@ void neogeo_kf2k2mp_cart::decrypt_all(DECRYPT_ALL_PARAMS) kf2k2mp2 **************************************************/ -const device_type NEOGEO_KF2K2MP2_CART = device_creator; +DEFINE_DEVICE_TYPE(NEOGEO_KF2K2MP2_CART, neogeo_kf2k2mp2_cart_device, "neocart_kf2k2mp2", "Neo Geo KoF 2002 MP2 Cart") -neogeo_kf2k2mp2_cart::neogeo_kf2k2mp2_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - neogeo_bootleg_cart(mconfig, NEOGEO_KF2K2MP2_CART, "Neo Geo KOF 2002 MP2 Cart", tag, owner, clock, "neocart_kf2k2mp2", __FILE__), +neogeo_kf2k2mp2_cart_device::neogeo_kf2k2mp2_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + neogeo_bootleg_cart_device(mconfig, NEOGEO_KF2K2MP2_CART, tag, owner, clock), m_cmc_prot(*this, "cmc_prot"), m_pcm2_prot(*this, "pcm2_prot") -{} +{ +} -void neogeo_kf2k2mp2_cart::decrypt_all(DECRYPT_ALL_PARAMS) +void neogeo_kf2k2mp2_cart_device::decrypt_all(DECRYPT_ALL_PARAMS) { m_prot->kf2k2mp2_px_decrypt(cpuregion, cpuregion_size); m_pcm2_prot->swap(ym_region, ym_region_size, 0); diff --git a/src/devices/bus/neogeo/boot_kof2k2.h b/src/devices/bus/neogeo/boot_kof2k2.h index 11539369d78..6faf1bdbfe3 100644 --- a/src/devices/bus/neogeo/boot_kof2k2.h +++ b/src/devices/bus/neogeo/boot_kof2k2.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:S. Smith,David Haywood,Fabio Priuli -#ifndef __NEOGEO_BOOTKOF2K2_H -#define __NEOGEO_BOOTKOF2K2_H +#ifndef MAME_BUS_NEOGEO_BOOT_KOF2K2_H +#define MAME_BUS_NEOGEO_BOOT_KOF2K2_H + +#pragma once #include "slot.h" #include "boot_misc.h" @@ -15,13 +17,13 @@ kof2002b **************************************************/ -class neogeo_kof2002b_cart : public neogeo_bootleg_cart +class neogeo_kof2002b_cart_device : public neogeo_bootleg_cart_device { public: - neogeo_kof2002b_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + neogeo_kof2002b_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; - virtual int get_fixed_bank_type(void) override { return 0; } + virtual int get_fixed_bank_type() override { return 0; } virtual machine_config_constructor device_mconfig_additions() const override; private: @@ -30,20 +32,20 @@ private: required_device m_kof2k2_prot; }; -extern const device_type NEOGEO_KOF2002B_CART; +DECLARE_DEVICE_TYPE(NEOGEO_KOF2002B_CART, neogeo_kof2002b_cart_device) /************************************************* kf2k2mp **************************************************/ -class neogeo_kf2k2mp_cart : public neogeo_bootleg_cart +class neogeo_kf2k2mp_cart_device : public neogeo_bootleg_cart_device { public: - neogeo_kf2k2mp_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + neogeo_kf2k2mp_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; - virtual int get_fixed_bank_type(void) override { return 0; } + virtual int get_fixed_bank_type() override { return 0; } virtual machine_config_constructor device_mconfig_additions() const override; private: @@ -51,20 +53,20 @@ private: required_device m_pcm2_prot; }; -extern const device_type NEOGEO_KF2K2MP_CART; +DECLARE_DEVICE_TYPE(NEOGEO_KF2K2MP_CART, neogeo_kf2k2mp_cart_device) /************************************************* kf2k2mp2 **************************************************/ -class neogeo_kf2k2mp2_cart : public neogeo_bootleg_cart +class neogeo_kf2k2mp2_cart_device : public neogeo_bootleg_cart_device { public: - neogeo_kf2k2mp2_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + neogeo_kf2k2mp2_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; - virtual int get_fixed_bank_type(void) override { return 0; } + virtual int get_fixed_bank_type() override { return 0; } virtual machine_config_constructor device_mconfig_additions() const override; private: @@ -72,8 +74,8 @@ private: required_device m_pcm2_prot; }; -extern const device_type NEOGEO_KF2K2MP2_CART; +DECLARE_DEVICE_TYPE(NEOGEO_KF2K2MP2_CART, neogeo_kf2k2mp2_cart_device) -#endif +#endif // MAME_BUS_NEOGEO_BOOT_KOF2K2_H diff --git a/src/devices/bus/neogeo/boot_kof2k3.cpp b/src/devices/bus/neogeo/boot_kof2k3.cpp index b5394a3a652..3b37d92f99b 100644 --- a/src/devices/bus/neogeo/boot_kof2k3.cpp +++ b/src/devices/bus/neogeo/boot_kof2k3.cpp @@ -19,17 +19,17 @@ static MACHINE_CONFIG_FRAGMENT( kof2k3bl_cart ) MCFG_KOF2K3BL_PROT_ADD("kof2k3bl_prot") MACHINE_CONFIG_END -machine_config_constructor neogeo_kf2k3bl_cart::device_mconfig_additions() const +machine_config_constructor neogeo_kf2k3bl_cart_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( kof2k3bl_cart ); } -machine_config_constructor neogeo_kf2k3pl_cart::device_mconfig_additions() const +machine_config_constructor neogeo_kf2k3pl_cart_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( kof2k3bl_cart ); } -machine_config_constructor neogeo_kf2k3upl_cart::device_mconfig_additions() const +machine_config_constructor neogeo_kf2k3upl_cart_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( kof2k3bl_cart ); } @@ -38,16 +38,17 @@ machine_config_constructor neogeo_kf2k3upl_cart::device_mconfig_additions() cons kf2k3bl **************************************************/ -const device_type NEOGEO_KF2K3BL_CART = device_creator; +DEFINE_DEVICE_TYPE(NEOGEO_KF2K3BL_CART, neogeo_kf2k3bl_cart_device, "neocart_kf2k3bl", "Neo Geo KoF 2003 Bootleg Cart") -neogeo_kf2k3bl_cart::neogeo_kf2k3bl_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - neogeo_bootleg_cart(mconfig, NEOGEO_KF2K3BL_CART, "Neo Geo KOF 2003 Bootleg Cart", tag, owner, clock, "neocart_kf2k3bl", __FILE__), +neogeo_kf2k3bl_cart_device::neogeo_kf2k3bl_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + neogeo_bootleg_cart_device(mconfig, NEOGEO_KF2K3BL_CART, tag, owner, clock), m_cmc_prot(*this, "cmc_prot"), m_pcm2_prot(*this, "pcm2_prot"), m_kof2k3bl_prot(*this, "kof2k3bl_prot") -{} +{ +} -void neogeo_kf2k3bl_cart::decrypt_all(DECRYPT_ALL_PARAMS) +void neogeo_kf2k3bl_cart_device::decrypt_all(DECRYPT_ALL_PARAMS) { m_cmc_prot->cmc50_gfx_decrypt(spr_region, spr_region_size, KOF2003_GFX_KEY); m_pcm2_prot->swap(ym_region, ym_region_size, 5); @@ -59,16 +60,17 @@ void neogeo_kf2k3bl_cart::decrypt_all(DECRYPT_ALL_PARAMS) kf2k3pl **************************************************/ -const device_type NEOGEO_KF2K3PL_CART = device_creator; +DEFINE_DEVICE_TYPE(NEOGEO_KF2K3PL_CART, neogeo_kf2k3pl_cart_device, "neocart_kf2k3pl", "Neo Geo KoF 2003 PL Cart") -neogeo_kf2k3pl_cart::neogeo_kf2k3pl_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - neogeo_bootleg_cart(mconfig, NEOGEO_KF2K3PL_CART, "Neo Geo KOF 2003 PL Cart", tag, owner, clock, "neocart_kf2k3pl", __FILE__), +neogeo_kf2k3pl_cart_device::neogeo_kf2k3pl_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + neogeo_bootleg_cart_device(mconfig, NEOGEO_KF2K3PL_CART, tag, owner, clock), m_cmc_prot(*this, "cmc_prot"), m_pcm2_prot(*this, "pcm2_prot"), m_kof2k3bl_prot(*this, "kof2k3bl_prot") -{} +{ +} -void neogeo_kf2k3pl_cart::decrypt_all(DECRYPT_ALL_PARAMS) +void neogeo_kf2k3pl_cart_device::decrypt_all(DECRYPT_ALL_PARAMS) { m_cmc_prot->cmc50_gfx_decrypt(spr_region, spr_region_size, KOF2003_GFX_KEY); m_pcm2_prot->swap(ym_region, ym_region_size, 5); @@ -81,16 +83,17 @@ void neogeo_kf2k3pl_cart::decrypt_all(DECRYPT_ALL_PARAMS) kf2k3upl **************************************************/ -const device_type NEOGEO_KF2K3UPL_CART = device_creator; +DEFINE_DEVICE_TYPE(NEOGEO_KF2K3UPL_CART, neogeo_kf2k3upl_cart_device, "neocart_kf2k3upl", "Neo Geo KoF 2003 UPL Cart") -neogeo_kf2k3upl_cart::neogeo_kf2k3upl_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - neogeo_bootleg_cart(mconfig, NEOGEO_KF2K3UPL_CART, "Neo Geo KOF 2003 UPL Cart", tag, owner, clock, "neocart_kf2k3upl", __FILE__), +neogeo_kf2k3upl_cart_device::neogeo_kf2k3upl_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + neogeo_bootleg_cart_device(mconfig, NEOGEO_KF2K3UPL_CART, tag, owner, clock), m_cmc_prot(*this, "cmc_prot"), m_pcm2_prot(*this, "pcm2_prot"), m_kof2k3bl_prot(*this, "kof2k3bl_prot") -{} +{ +} -void neogeo_kf2k3upl_cart::decrypt_all(DECRYPT_ALL_PARAMS) +void neogeo_kf2k3upl_cart_device::decrypt_all(DECRYPT_ALL_PARAMS) { m_cmc_prot->cmc50_gfx_decrypt(spr_region, spr_region_size, KOF2003_GFX_KEY); m_pcm2_prot->swap(ym_region, ym_region_size, 5); diff --git a/src/devices/bus/neogeo/boot_kof2k3.h b/src/devices/bus/neogeo/boot_kof2k3.h index 4b7a0a9e911..631dc14e888 100644 --- a/src/devices/bus/neogeo/boot_kof2k3.h +++ b/src/devices/bus/neogeo/boot_kof2k3.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:S. Smith,David Haywood,Fabio Priuli -#ifndef __NEOGEO_BOOTKOF2K3_H -#define __NEOGEO_BOOTKOF2K3_H +#ifndef MAME_BUS_NEOGEO_BOOT_KOF2K3_H +#define MAME_BUS_NEOGEO_BOOT_KOF2K3_H + +#pragma once #include "slot.h" #include "boot_misc.h" @@ -12,12 +14,12 @@ kf2k3bl **************************************************/ -class neogeo_kf2k3bl_cart : public neogeo_bootleg_cart +class neogeo_kf2k3bl_cart_device : public neogeo_bootleg_cart_device { public: - neogeo_kf2k3bl_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + neogeo_kf2k3bl_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; - virtual int get_fixed_bank_type(void) override { return 0; } + virtual int get_fixed_bank_type() override { return 0; } virtual machine_config_constructor device_mconfig_additions() const override; @@ -32,19 +34,19 @@ private: required_device m_kof2k3bl_prot; }; -extern const device_type NEOGEO_KF2K3BL_CART; +DECLARE_DEVICE_TYPE(NEOGEO_KF2K3BL_CART, neogeo_kf2k3bl_cart_device) /************************************************* kf2k3pl **************************************************/ -class neogeo_kf2k3pl_cart : public neogeo_bootleg_cart +class neogeo_kf2k3pl_cart_device : public neogeo_bootleg_cart_device { public: - neogeo_kf2k3pl_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + neogeo_kf2k3pl_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; - virtual int get_fixed_bank_type(void) override { return 0; } + virtual int get_fixed_bank_type() override { return 0; } virtual machine_config_constructor device_mconfig_additions() const override; @@ -58,19 +60,19 @@ private: required_device m_kof2k3bl_prot; }; -extern const device_type NEOGEO_KF2K3PL_CART; +DECLARE_DEVICE_TYPE(NEOGEO_KF2K3PL_CART, neogeo_kf2k3pl_cart_device) /************************************************* kf2k3upl **************************************************/ -class neogeo_kf2k3upl_cart : public neogeo_bootleg_cart +class neogeo_kf2k3upl_cart_device : public neogeo_bootleg_cart_device { public: - neogeo_kf2k3upl_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + neogeo_kf2k3upl_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; - virtual int get_fixed_bank_type(void) override { return 0; } + virtual int get_fixed_bank_type() override { return 0; } virtual machine_config_constructor device_mconfig_additions() const override; @@ -85,8 +87,8 @@ private: required_device m_kof2k3bl_prot; }; -extern const device_type NEOGEO_KF2K3UPL_CART; +DECLARE_DEVICE_TYPE(NEOGEO_KF2K3UPL_CART, neogeo_kf2k3upl_cart_device) -#endif +#endif // MAME_BUS_NEOGEO_BOOT_KOF2K3_H diff --git a/src/devices/bus/neogeo/boot_misc.cpp b/src/devices/bus/neogeo/boot_misc.cpp index 4740d770729..af41ba0adb3 100644 --- a/src/devices/bus/neogeo/boot_misc.cpp +++ b/src/devices/bus/neogeo/boot_misc.cpp @@ -13,32 +13,33 @@ //------------------------------------------------- -// neogeo_bootleg_cart - constructor +// neogeo_bootleg_cart_device - constructor //------------------------------------------------- -const device_type NEOGEO_BOOTLEG_CART = device_creator; +DEFINE_DEVICE_TYPE(NEOGEO_BOOTLEG_CART, neogeo_bootleg_cart_device, "neocart_boot", "Neo Geo Bootleg Protected Cart") -neogeo_bootleg_cart::neogeo_bootleg_cart(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint16_t clock, const char *shortname, const char *source) : - neogeo_rom_device(mconfig, type, name, tag, owner, clock, shortname, source), +neogeo_bootleg_cart_device::neogeo_bootleg_cart_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint16_t clock) : + neogeo_rom_device(mconfig, type, tag, owner, clock), m_prot(*this, "bootleg_prot") -{} +{ +} -neogeo_bootleg_cart::neogeo_bootleg_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint16_t clock) : - neogeo_rom_device(mconfig, NEOGEO_BOOTLEG_CART, "Neo Geo Bootleg Protected Cart", tag, owner, clock, "neocart_boot", __FILE__), - m_prot(*this, "bootleg_prot") -{} +neogeo_bootleg_cart_device::neogeo_bootleg_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint16_t clock) : + neogeo_bootleg_cart_device(mconfig, NEOGEO_BOOTLEG_CART, tag, owner, clock) +{ +} //------------------------------------------------- // mapper specific start/reset //------------------------------------------------- -void neogeo_bootleg_cart::device_start() +void neogeo_bootleg_cart_device::device_start() { } -void neogeo_bootleg_cart::device_reset() +void neogeo_bootleg_cart_device::device_reset() { } @@ -51,7 +52,7 @@ static MACHINE_CONFIG_FRAGMENT( bootleg_cart ) MCFG_NEOBOOT_PROT_ADD("bootleg_prot") MACHINE_CONFIG_END -machine_config_constructor neogeo_bootleg_cart::device_mconfig_additions() const +machine_config_constructor neogeo_bootleg_cart_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( bootleg_cart ); } @@ -62,14 +63,15 @@ machine_config_constructor neogeo_bootleg_cart::device_mconfig_additions() const garoubl **************************************************/ -const device_type NEOGEO_GAROUBL_CART = device_creator; +DEFINE_DEVICE_TYPE(NEOGEO_GAROUBL_CART, neogeo_garoubl_cart_device, "neocart_garoubl", "Neo Geo Garou Bootleg Cart") -neogeo_garoubl_cart::neogeo_garoubl_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - neogeo_bootleg_cart(mconfig, NEOGEO_GAROUBL_CART, "Neo Geo Garou Bootleg Cart", tag, owner, clock, "neocart_garoubl", __FILE__) -{} +neogeo_garoubl_cart_device::neogeo_garoubl_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + neogeo_bootleg_cart_device(mconfig, NEOGEO_GAROUBL_CART, tag, owner, clock) +{ +} -void neogeo_garoubl_cart::decrypt_all(DECRYPT_ALL_PARAMS) +void neogeo_garoubl_cart_device::decrypt_all(DECRYPT_ALL_PARAMS) { m_prot->sx_decrypt(fix_region, fix_region_size, 2); m_prot->cx_decrypt(spr_region, spr_region_size); @@ -80,14 +82,15 @@ void neogeo_garoubl_cart::decrypt_all(DECRYPT_ALL_PARAMS) kof97oro **************************************************/ -const device_type NEOGEO_KOF97ORO_CART = device_creator; +DEFINE_DEVICE_TYPE(NEOGEO_KOF97ORO_CART, neogeo_kof97oro_cart_device, "neocart_kof97oro", "Neo Geo KoF 97 Orochi Bootleg Cart") -neogeo_kof97oro_cart::neogeo_kof97oro_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - neogeo_bootleg_cart(mconfig, NEOGEO_KOF97ORO_CART, "Neo Geo KOF 97 Orochi Bootleg Cart", tag, owner, clock, "neocart_kof97oro", __FILE__) -{} +neogeo_kof97oro_cart_device::neogeo_kof97oro_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + neogeo_bootleg_cart_device(mconfig, NEOGEO_KOF97ORO_CART, tag, owner, clock) +{ +} -void neogeo_kof97oro_cart::decrypt_all(DECRYPT_ALL_PARAMS) +void neogeo_kof97oro_cart_device::decrypt_all(DECRYPT_ALL_PARAMS) { m_prot->kof97oro_px_decode(cpuregion, cpuregion_size); m_prot->sx_decrypt(fix_region, fix_region_size,1); @@ -99,14 +102,15 @@ void neogeo_kof97oro_cart::decrypt_all(DECRYPT_ALL_PARAMS) kf10thep **************************************************/ -const device_type NEOGEO_KF10THEP_CART = device_creator; +DEFINE_DEVICE_TYPE(NEOGEO_KF10THEP_CART, neogeo_kf10thep_cart_device, "neocart_kf10thep", "Neo Geo KoF 10th Ann. EP Bootleg Cart") -neogeo_kf10thep_cart::neogeo_kf10thep_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - neogeo_bootleg_cart(mconfig, NEOGEO_KF10THEP_CART, "Neo Geo KOF 10th Ann. EP Bootleg Cart", tag, owner, clock, "neocart_kf10thep", __FILE__) -{} +neogeo_kf10thep_cart_device::neogeo_kf10thep_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + neogeo_bootleg_cart_device(mconfig, NEOGEO_KF10THEP_CART, tag, owner, clock) +{ +} -void neogeo_kf10thep_cart::decrypt_all(DECRYPT_ALL_PARAMS) +void neogeo_kf10thep_cart_device::decrypt_all(DECRYPT_ALL_PARAMS) { m_prot->kf10thep_px_decrypt(cpuregion, cpuregion_size); m_prot->sx_decrypt(fix_region, fix_region_size, 1); @@ -117,14 +121,15 @@ void neogeo_kf10thep_cart::decrypt_all(DECRYPT_ALL_PARAMS) kf2k5uni **************************************************/ -const device_type NEOGEO_KF2K5UNI_CART = device_creator; +DEFINE_DEVICE_TYPE(NEOGEO_KF2K5UNI_CART, neogeo_kf2k5uni_cart_device, "neocart_kf2k5uni", "Neo Geo KoF 2005 Unique Bootleg Cart") -neogeo_kf2k5uni_cart::neogeo_kf2k5uni_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - neogeo_bootleg_cart(mconfig, NEOGEO_KF2K5UNI_CART, "Neo Geo KOF 2005 Unique Bootleg Cart", tag, owner, clock, "neocart_kf2k5uni", __FILE__) -{} +neogeo_kf2k5uni_cart_device::neogeo_kf2k5uni_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + neogeo_bootleg_cart_device(mconfig, NEOGEO_KF2K5UNI_CART, tag, owner, clock) +{ +} -void neogeo_kf2k5uni_cart::decrypt_all(DECRYPT_ALL_PARAMS) +void neogeo_kf2k5uni_cart_device::decrypt_all(DECRYPT_ALL_PARAMS) { m_prot->kf2k5uni_px_decrypt(cpuregion, cpuregion_size); m_prot->kf2k5uni_sx_decrypt(fix_region, fix_region_size); @@ -136,14 +141,15 @@ void neogeo_kf2k5uni_cart::decrypt_all(DECRYPT_ALL_PARAMS) kf2k4se **************************************************/ -const device_type NEOGEO_KF2K4SE_CART = device_creator; +DEFINE_DEVICE_TYPE(NEOGEO_KF2K4SE_CART, neogeo_kf2k4se_cart_device, "neocart_kf2k4se", "Neo Geo KoF 2004 SE Bootleg Cart") -neogeo_kf2k4se_cart::neogeo_kf2k4se_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - neogeo_bootleg_cart(mconfig, NEOGEO_KF2K4SE_CART, "Neo Geo KOF 2004 SE Bootleg Cart", tag, owner, clock, "neocart_kf2k4se", __FILE__) -{} +neogeo_kf2k4se_cart_device::neogeo_kf2k4se_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + neogeo_bootleg_cart_device(mconfig, NEOGEO_KF2K4SE_CART, tag, owner, clock) +{ +} -void neogeo_kf2k4se_cart::decrypt_all(DECRYPT_ALL_PARAMS) +void neogeo_kf2k4se_cart_device::decrypt_all(DECRYPT_ALL_PARAMS) { m_prot->decrypt_kof2k4se_68k(cpuregion, cpuregion_size); } @@ -153,13 +159,14 @@ void neogeo_kf2k4se_cart::decrypt_all(DECRYPT_ALL_PARAMS) lans2004 **************************************************/ -const device_type NEOGEO_LANS2004_CART = device_creator; +DEFINE_DEVICE_TYPE(NEOGEO_LANS2004_CART, neogeo_lans2004_cart_device, "neocart_lans2004", "Neo Geo Lansquenet 2004 Bootleg Cart") -neogeo_lans2004_cart::neogeo_lans2004_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - neogeo_bootleg_cart(mconfig, NEOGEO_LANS2004_CART, "Neo Geo Lansquenet 2004 Bootleg Cart", tag, owner, clock, "neocart_lans2004", __FILE__) -{} +neogeo_lans2004_cart_device::neogeo_lans2004_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + neogeo_bootleg_cart_device(mconfig, NEOGEO_LANS2004_CART, tag, owner, clock) +{ +} -void neogeo_lans2004_cart::decrypt_all(DECRYPT_ALL_PARAMS) +void neogeo_lans2004_cart_device::decrypt_all(DECRYPT_ALL_PARAMS) { m_prot->lans2004_decrypt_68k(cpuregion, cpuregion_size); m_prot->lans2004_vx_decrypt(ym_region, ym_region_size); @@ -172,13 +179,14 @@ void neogeo_lans2004_cart::decrypt_all(DECRYPT_ALL_PARAMS) samsho5b **************************************************/ -const device_type NEOGEO_SAMSHO5B_CART = device_creator; +DEFINE_DEVICE_TYPE(NEOGEO_SAMSHO5B_CART, neogeo_samsho5b_cart_device, "neocart_samsho5b", "Neo Geo Samurai Shodown 5 Bootleg Cart") -neogeo_samsho5b_cart::neogeo_samsho5b_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - neogeo_bootleg_cart(mconfig, NEOGEO_SAMSHO5B_CART, "Neo Geo Samurai Shodown 5 Bootleg Cart", tag, owner, clock, "neocart_samsho5b", __FILE__) -{} +neogeo_samsho5b_cart_device::neogeo_samsho5b_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + neogeo_bootleg_cart_device(mconfig, NEOGEO_SAMSHO5B_CART, tag, owner, clock) +{ +} -void neogeo_samsho5b_cart::decrypt_all(DECRYPT_ALL_PARAMS) +void neogeo_samsho5b_cart_device::decrypt_all(DECRYPT_ALL_PARAMS) { m_prot->samsho5b_px_decrypt(cpuregion, cpuregion_size); m_prot->samsho5b_vx_decrypt(ym_region, ym_region_size); @@ -191,14 +199,15 @@ void neogeo_samsho5b_cart::decrypt_all(DECRYPT_ALL_PARAMS) mslug3b6 **************************************************/ -const device_type NEOGEO_MSLUG3B6_CART = device_creator; +DEFINE_DEVICE_TYPE(NEOGEO_MSLUG3B6_CART, neogeo_mslug3b6_cart_device, "neocart_mslug3b6", "Neo Geo Metal Slug 6 Bootleg Cart") -neogeo_mslug3b6_cart::neogeo_mslug3b6_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - neogeo_bootleg_cart(mconfig, NEOGEO_MSLUG3B6_CART, "Neo Geo Metal Slug 6 Bootleg Cart", tag, owner, clock, "neocart_mslug3b6", __FILE__), +neogeo_mslug3b6_cart_device::neogeo_mslug3b6_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + neogeo_bootleg_cart_device(mconfig, NEOGEO_MSLUG3B6_CART, tag, owner, clock), m_cmc_prot(*this, "cmc_prot") -{} +{ +} -void neogeo_mslug3b6_cart::decrypt_all(DECRYPT_ALL_PARAMS) +void neogeo_mslug3b6_cart_device::decrypt_all(DECRYPT_ALL_PARAMS) { m_prot->sx_decrypt(fix_region, fix_region_size, 2); m_cmc_prot->cmc42_gfx_decrypt(spr_region, spr_region_size, MSLUG3_GFX_KEY); @@ -209,7 +218,7 @@ static MACHINE_CONFIG_FRAGMENT( mslug3b6_cart ) MCFG_NEOBOOT_PROT_ADD("bootleg_prot") MACHINE_CONFIG_END -machine_config_constructor neogeo_mslug3b6_cart::device_mconfig_additions() const +machine_config_constructor neogeo_mslug3b6_cart_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( mslug3b6_cart ); } @@ -219,15 +228,16 @@ machine_config_constructor neogeo_mslug3b6_cart::device_mconfig_additions() cons ms5plus **************************************************/ -const device_type NEOGEO_MS5PLUS_CART = device_creator; +DEFINE_DEVICE_TYPE(NEOGEO_MS5PLUS_CART, neogeo_ms5plus_cart_device, "neocart_ms5plus", "Neo Geo Metal Slug 5 Plus Bootleg Cart") -neogeo_ms5plus_cart::neogeo_ms5plus_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - neogeo_bootleg_cart(mconfig, NEOGEO_MS5PLUS_CART, "Neo Geo Metal Slug 5 Plus Bootleg Cart", tag, owner, clock, "neocart_ms5plus", __FILE__), +neogeo_ms5plus_cart_device::neogeo_ms5plus_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + neogeo_bootleg_cart_device(mconfig, NEOGEO_MS5PLUS_CART, tag, owner, clock), m_cmc_prot(*this, "cmc_prot"), m_pcm2_prot(*this, "pcm2_prot") -{} +{ +} -void neogeo_ms5plus_cart::decrypt_all(DECRYPT_ALL_PARAMS) +void neogeo_ms5plus_cart_device::decrypt_all(DECRYPT_ALL_PARAMS) { m_cmc_prot->cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size); m_cmc_prot->cmc50_gfx_decrypt(spr_region, spr_region_size, MSLUG5_GFX_KEY); @@ -241,7 +251,7 @@ static MACHINE_CONFIG_FRAGMENT( ms5plus_cart ) MCFG_PCM2_PROT_ADD("pcm2_prot") MACHINE_CONFIG_END -machine_config_constructor neogeo_ms5plus_cart::device_mconfig_additions() const +machine_config_constructor neogeo_ms5plus_cart_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( ms5plus_cart ); } @@ -251,12 +261,13 @@ machine_config_constructor neogeo_ms5plus_cart::device_mconfig_additions() const kog **************************************************/ -const device_type NEOGEO_KOG_CART = device_creator; +DEFINE_DEVICE_TYPE(NEOGEO_KOG_CART, neogeo_kog_cart_device, "neocart_kog", "Neo Geo King of Gladiators Bootleg Cart") -neogeo_kog_cart::neogeo_kog_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - neogeo_bootleg_cart(mconfig, NEOGEO_KOG_CART, "Neo Geo King of Gladiators Bootleg Cart", tag, owner, clock, "neocart_kog", __FILE__), +neogeo_kog_cart_device::neogeo_kog_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + neogeo_bootleg_cart_device(mconfig, NEOGEO_KOG_CART, tag, owner, clock), m_jumper(*this, "JUMPER") -{} +{ +} static INPUT_PORTS_START( kog ) @@ -269,18 +280,18 @@ static INPUT_PORTS_START( kog ) PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED ) INPUT_PORTS_END -ioport_constructor neogeo_kog_cart::device_input_ports() const +ioport_constructor neogeo_kog_cart_device::device_input_ports() const { return INPUT_PORTS_NAME( kog ); } -READ16_MEMBER(neogeo_kog_cart::protection_r) +READ16_MEMBER(neogeo_kog_cart_device::protection_r) { return m_jumper->read(); } -void neogeo_kog_cart::decrypt_all(DECRYPT_ALL_PARAMS) +void neogeo_kog_cart_device::decrypt_all(DECRYPT_ALL_PARAMS) { m_prot->kog_px_decrypt(cpuregion, cpuregion_size); m_prot->sx_decrypt(fix_region, fix_region_size, 1); diff --git a/src/devices/bus/neogeo/boot_misc.h b/src/devices/bus/neogeo/boot_misc.h index b42da3b4edb..5f625eda2d3 100644 --- a/src/devices/bus/neogeo/boot_misc.h +++ b/src/devices/bus/neogeo/boot_misc.h @@ -1,7 +1,7 @@ // license:BSD-3-Clause // copyright-holders:S. Smith,David Haywood,Fabio Priuli -#ifndef __NEOGEO_BOOTCART_H -#define __NEOGEO_BOOTCART_H +#ifndef MAME_BUS_NEOGEO_BOOT_MISC_H +#define MAME_BUS_NEOGEO_BOOT_MISC_H #include "slot.h" #include "rom.h" @@ -9,146 +9,148 @@ #include "prot_cmc.h" #include "prot_pcm2.h" -// ======================> neogeo_bootleg_cart +// ======================> neogeo_bootleg_cart_device -class neogeo_bootleg_cart : public neogeo_rom_device +class neogeo_bootleg_cart_device : public neogeo_rom_device { public: // construction/destruction - neogeo_bootleg_cart(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint16_t clock, const char *shortname, const char *source); - neogeo_bootleg_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint16_t clock); + neogeo_bootleg_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint16_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; virtual machine_config_constructor device_mconfig_additions() const override; // reading and writing + virtual void decrypt_all(DECRYPT_ALL_PARAMS) override { } + virtual int get_fixed_bank_type() override { return 0; } + +protected: + neogeo_bootleg_cart_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint16_t clock); - virtual void decrypt_all(DECRYPT_ALL_PARAMS) override {} - virtual int get_fixed_bank_type(void) override { return 0; } + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; required_device m_prot; }; // device type definition -extern const device_type NEOGEO_BOOTLEG_CART; +DECLARE_DEVICE_TYPE(NEOGEO_BOOTLEG_CART, neogeo_bootleg_cart_device) /************************************************* garoubl **************************************************/ -class neogeo_garoubl_cart : public neogeo_bootleg_cart +class neogeo_garoubl_cart_device : public neogeo_bootleg_cart_device { public: - neogeo_garoubl_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + neogeo_garoubl_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; - virtual int get_fixed_bank_type(void) override { return 0; } + virtual int get_fixed_bank_type() override { return 0; } }; -extern const device_type NEOGEO_GAROUBL_CART; +DECLARE_DEVICE_TYPE(NEOGEO_GAROUBL_CART, neogeo_garoubl_cart_device) /************************************************* kof97oro **************************************************/ -class neogeo_kof97oro_cart : public neogeo_bootleg_cart +class neogeo_kof97oro_cart_device : public neogeo_bootleg_cart_device { public: - neogeo_kof97oro_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + neogeo_kof97oro_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; - virtual int get_fixed_bank_type(void) override { return 0; } + virtual int get_fixed_bank_type() override { return 0; } }; -extern const device_type NEOGEO_KOF97ORO_CART; +DECLARE_DEVICE_TYPE(NEOGEO_KOF97ORO_CART, neogeo_kof97oro_cart_device) /************************************************* kf10thep **************************************************/ -class neogeo_kf10thep_cart : public neogeo_bootleg_cart +class neogeo_kf10thep_cart_device : public neogeo_bootleg_cart_device { public: - neogeo_kf10thep_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + neogeo_kf10thep_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; - virtual int get_fixed_bank_type(void) override { return 0; } + virtual int get_fixed_bank_type() override { return 0; } }; -extern const device_type NEOGEO_KF10THEP_CART; +DECLARE_DEVICE_TYPE(NEOGEO_KF10THEP_CART, neogeo_kf10thep_cart_device) /************************************************* kf2k5uni **************************************************/ -class neogeo_kf2k5uni_cart : public neogeo_bootleg_cart +class neogeo_kf2k5uni_cart_device : public neogeo_bootleg_cart_device { public: - neogeo_kf2k5uni_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + neogeo_kf2k5uni_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; - virtual int get_fixed_bank_type(void) override { return 0; } + virtual int get_fixed_bank_type() override { return 0; } }; -extern const device_type NEOGEO_KF2K5UNI_CART; +DECLARE_DEVICE_TYPE(NEOGEO_KF2K5UNI_CART, neogeo_kf2k5uni_cart_device) /************************************************* kf2k4se **************************************************/ -class neogeo_kf2k4se_cart : public neogeo_bootleg_cart +class neogeo_kf2k4se_cart_device : public neogeo_bootleg_cart_device { public: - neogeo_kf2k4se_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + neogeo_kf2k4se_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; - virtual int get_fixed_bank_type(void) override { return 0; } + virtual int get_fixed_bank_type() override { return 0; } }; -extern const device_type NEOGEO_KF2K4SE_CART; +DECLARE_DEVICE_TYPE(NEOGEO_KF2K4SE_CART, neogeo_kf2k4se_cart_device) /************************************************* lans2004 **************************************************/ -class neogeo_lans2004_cart : public neogeo_bootleg_cart +class neogeo_lans2004_cart_device : public neogeo_bootleg_cart_device { public: - neogeo_lans2004_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + neogeo_lans2004_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; - virtual int get_fixed_bank_type(void) override { return 0; } + virtual int get_fixed_bank_type() override { return 0; } }; -extern const device_type NEOGEO_LANS2004_CART; +DECLARE_DEVICE_TYPE(NEOGEO_LANS2004_CART, neogeo_lans2004_cart_device) /************************************************* samsho5b **************************************************/ -class neogeo_samsho5b_cart : public neogeo_bootleg_cart +class neogeo_samsho5b_cart_device : public neogeo_bootleg_cart_device { public: - neogeo_samsho5b_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + neogeo_samsho5b_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; - virtual int get_fixed_bank_type(void) override { return 0; } + virtual int get_fixed_bank_type() override { return 0; } }; -extern const device_type NEOGEO_SAMSHO5B_CART; +DECLARE_DEVICE_TYPE(NEOGEO_SAMSHO5B_CART, neogeo_samsho5b_cart_device) /************************************************* mslug3b6 **************************************************/ -class neogeo_mslug3b6_cart : public neogeo_bootleg_cart +class neogeo_mslug3b6_cart_device : public neogeo_bootleg_cart_device { public: - neogeo_mslug3b6_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + neogeo_mslug3b6_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; - virtual int get_fixed_bank_type(void) override { return 0; } + virtual int get_fixed_bank_type() override { return 0; } virtual machine_config_constructor device_mconfig_additions() const override; @@ -156,18 +158,18 @@ private: required_device m_cmc_prot; }; -extern const device_type NEOGEO_MSLUG3B6_CART; +DECLARE_DEVICE_TYPE(NEOGEO_MSLUG3B6_CART, neogeo_mslug3b6_cart_device) /************************************************* ms5plus **************************************************/ -class neogeo_ms5plus_cart : public neogeo_bootleg_cart +class neogeo_ms5plus_cart_device : public neogeo_bootleg_cart_device { public: - neogeo_ms5plus_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + neogeo_ms5plus_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; - virtual int get_fixed_bank_type(void) override { return 1; } + virtual int get_fixed_bank_type() override { return 1; } virtual machine_config_constructor device_mconfig_additions() const override; @@ -179,29 +181,29 @@ private: required_device m_pcm2_prot; }; -extern const device_type NEOGEO_MS5PLUS_CART; +DECLARE_DEVICE_TYPE(NEOGEO_MS5PLUS_CART, neogeo_ms5plus_cart_device) /************************************************* kog **************************************************/ -class neogeo_kog_cart : public neogeo_bootleg_cart +class neogeo_kog_cart_device : public neogeo_bootleg_cart_device { public: - neogeo_kog_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + neogeo_kog_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual ioport_constructor device_input_ports() const override; virtual DECLARE_READ16_MEMBER(protection_r) override; virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; - virtual int get_fixed_bank_type(void) override { return 0; } + virtual int get_fixed_bank_type() override { return 0; } private: required_ioport m_jumper; }; -extern const device_type NEOGEO_KOG_CART; +DECLARE_DEVICE_TYPE(NEOGEO_KOG_CART, neogeo_kog_cart_device) -#endif +#endif // MAME_BUS_NEOGEO_BOOT_MISC_H diff --git a/src/devices/bus/neogeo/boot_svc.cpp b/src/devices/bus/neogeo/boot_svc.cpp index 9f9a9fdce35..c39f4b778d1 100644 --- a/src/devices/bus/neogeo/boot_svc.cpp +++ b/src/devices/bus/neogeo/boot_svc.cpp @@ -16,14 +16,15 @@ svcboot **************************************************/ -const device_type NEOGEO_SVCBOOT_CART = device_creator; +DEFINE_DEVICE_TYPE(NEOGEO_SVCBOOT_CART, neogeo_svcboot_cart_device, "neocart_svcboot", "Neo Geo SVC Bootleg Cart") -neogeo_svcboot_cart::neogeo_svcboot_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - neogeo_bootleg_cart(mconfig, NEOGEO_SVCBOOT_CART, "Neo Geo SVC Bootleg Cart", tag, owner, clock, "neocart_svcboot", __FILE__), +neogeo_svcboot_cart_device::neogeo_svcboot_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + neogeo_bootleg_cart_device(mconfig, NEOGEO_SVCBOOT_CART, tag, owner, clock), m_pvc_prot(*this, "pvc_prot") -{} +{ +} -void neogeo_svcboot_cart::decrypt_all(DECRYPT_ALL_PARAMS) +void neogeo_svcboot_cart_device::decrypt_all(DECRYPT_ALL_PARAMS) { m_prot->svcboot_px_decrypt(cpuregion, cpuregion_size); m_prot->svcboot_cx_decrypt(spr_region, spr_region_size); @@ -34,7 +35,7 @@ static MACHINE_CONFIG_FRAGMENT( svcboot_cart ) MCFG_PVC_PROT_ADD("pvc_prot") MACHINE_CONFIG_END -machine_config_constructor neogeo_svcboot_cart::device_mconfig_additions() const +machine_config_constructor neogeo_svcboot_cart_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( svcboot_cart ); } @@ -44,13 +45,14 @@ machine_config_constructor neogeo_svcboot_cart::device_mconfig_additions() const svcplus **************************************************/ -const device_type NEOGEO_SVCPLUS_CART = device_creator; +DEFINE_DEVICE_TYPE(NEOGEO_SVCPLUS_CART, neogeo_svcplus_cart_device, "neocart_svcplus", "Neo Geo SVC Plus Bootleg Cart") -neogeo_svcplus_cart::neogeo_svcplus_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - neogeo_bootleg_cart(mconfig, NEOGEO_SVCPLUS_CART, "Neo Geo SVC Plus Bootleg Cart", tag, owner, clock, "neocart_svcplus", __FILE__) -{} +neogeo_svcplus_cart_device::neogeo_svcplus_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + neogeo_bootleg_cart_device(mconfig, NEOGEO_SVCPLUS_CART, tag, owner, clock) +{ +} -void neogeo_svcplus_cart::decrypt_all(DECRYPT_ALL_PARAMS) +void neogeo_svcplus_cart_device::decrypt_all(DECRYPT_ALL_PARAMS) { m_prot->svcplus_px_decrypt(cpuregion, cpuregion_size); m_prot->svcboot_cx_decrypt(spr_region, spr_region_size); @@ -63,13 +65,15 @@ void neogeo_svcplus_cart::decrypt_all(DECRYPT_ALL_PARAMS) svcplusa **************************************************/ -const device_type NEOGEO_SVCPLUSA_CART = device_creator; +DEFINE_DEVICE_TYPE(NEOGEO_SVCPLUSA_CART, neogeo_svcplusa_cart_device, "neocart_svcplusa", "Neo Geo SVC Plus Alt Bootleg Cart") + +neogeo_svcplusa_cart_device::neogeo_svcplusa_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + neogeo_bootleg_cart_device(mconfig, NEOGEO_SVCPLUSA_CART, tag, owner, clock) +{ +} -neogeo_svcplusa_cart::neogeo_svcplusa_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - neogeo_bootleg_cart(mconfig, NEOGEO_SVCPLUSA_CART, "Neo Geo SVC Plus Alt Bootleg Cart", tag, owner, clock, "neocart_svcplusa", __FILE__) -{} -void neogeo_svcplusa_cart::decrypt_all(DECRYPT_ALL_PARAMS) +void neogeo_svcplusa_cart_device::decrypt_all(DECRYPT_ALL_PARAMS) { m_prot->svcplusa_px_decrypt(cpuregion, cpuregion_size); m_prot->svcboot_cx_decrypt(spr_region, spr_region_size); @@ -80,14 +84,15 @@ void neogeo_svcplusa_cart::decrypt_all(DECRYPT_ALL_PARAMS) svcsplus **************************************************/ -const device_type NEOGEO_SVCSPLUS_CART = device_creator; +DEFINE_DEVICE_TYPE(NEOGEO_SVCSPLUS_CART, neogeo_svcsplus_cart_device, "neocart_svcsplus", "Neo Geo SVC S.Plus Bootleg Cart") -neogeo_svcsplus_cart::neogeo_svcsplus_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - neogeo_bootleg_cart(mconfig, NEOGEO_SVCSPLUS_CART, "Neo Geo SVC S.Plus Bootleg Cart", tag, owner, clock, "neocart_svcsplus", __FILE__), +neogeo_svcsplus_cart_device::neogeo_svcsplus_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + neogeo_bootleg_cart_device(mconfig, NEOGEO_SVCSPLUS_CART, tag, owner, clock), m_pvc_prot(*this, "pvc_prot") -{} +{ +} -void neogeo_svcsplus_cart::decrypt_all(DECRYPT_ALL_PARAMS) +void neogeo_svcsplus_cart_device::decrypt_all(DECRYPT_ALL_PARAMS) { m_prot->svcsplus_px_decrypt(cpuregion, cpuregion_size); m_prot->sx_decrypt(fix_region, fix_region_size, 2); @@ -101,7 +106,7 @@ static MACHINE_CONFIG_FRAGMENT( svcsplus_cart ) MCFG_PVC_PROT_ADD("pvc_prot") MACHINE_CONFIG_END -machine_config_constructor neogeo_svcsplus_cart::device_mconfig_additions() const +machine_config_constructor neogeo_svcsplus_cart_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( svcsplus_cart ); } diff --git a/src/devices/bus/neogeo/boot_svc.h b/src/devices/bus/neogeo/boot_svc.h index f0c676c8359..42c99e28d27 100644 --- a/src/devices/bus/neogeo/boot_svc.h +++ b/src/devices/bus/neogeo/boot_svc.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:S. Smith,David Haywood,Fabio Priuli -#ifndef __NEOGEO_BOOTSVC_H -#define __NEOGEO_BOOTSVC_H +#ifndef MAME_BUS_NEOGEO_BOOT_SVC_H +#define MAME_BUS_NEOGEO_BOOT_SVC_H + +#pragma once #include "slot.h" #include "boot_misc.h" @@ -12,10 +14,10 @@ svcboot **************************************************/ -class neogeo_svcboot_cart : public neogeo_bootleg_cart +class neogeo_svcboot_cart_device : public neogeo_bootleg_cart_device { public: - neogeo_svcboot_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + neogeo_svcboot_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual machine_config_constructor device_mconfig_additions() const override; @@ -23,52 +25,52 @@ public: virtual DECLARE_READ16_MEMBER(protection_r) override { return m_pvc_prot->protection_r(space, offset, mem_mask); } virtual DECLARE_WRITE16_MEMBER(protection_w) override { m_pvc_prot->protection_w(space, offset, data, mem_mask); } virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; - virtual int get_fixed_bank_type(void) override { return 0; } + virtual int get_fixed_bank_type() override { return 0; } private: required_device m_pvc_prot; }; -extern const device_type NEOGEO_SVCBOOT_CART; +DECLARE_DEVICE_TYPE(NEOGEO_SVCBOOT_CART, neogeo_svcboot_cart_device) /************************************************* svcplus **************************************************/ -class neogeo_svcplus_cart : public neogeo_bootleg_cart +class neogeo_svcplus_cart_device : public neogeo_bootleg_cart_device { public: - neogeo_svcplus_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + neogeo_svcplus_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; - virtual int get_fixed_bank_type(void) override { return 0; } + virtual int get_fixed_bank_type() override { return 0; } }; -extern const device_type NEOGEO_SVCPLUS_CART; +DECLARE_DEVICE_TYPE(NEOGEO_SVCPLUS_CART, neogeo_svcplus_cart_device) /************************************************* svcplusa **************************************************/ -class neogeo_svcplusa_cart : public neogeo_bootleg_cart +class neogeo_svcplusa_cart_device : public neogeo_bootleg_cart_device { public: - neogeo_svcplusa_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + neogeo_svcplusa_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; - virtual int get_fixed_bank_type(void) override { return 0; } + virtual int get_fixed_bank_type() override { return 0; } }; -extern const device_type NEOGEO_SVCPLUSA_CART; +DECLARE_DEVICE_TYPE(NEOGEO_SVCPLUSA_CART, neogeo_svcplusa_cart_device) /************************************************* svcsplus **************************************************/ -class neogeo_svcsplus_cart : public neogeo_bootleg_cart +class neogeo_svcsplus_cart_device : public neogeo_bootleg_cart_device { public: - neogeo_svcsplus_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + neogeo_svcsplus_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual machine_config_constructor device_mconfig_additions() const override; @@ -76,13 +78,13 @@ public: virtual DECLARE_READ16_MEMBER(protection_r) override { return m_pvc_prot->protection_r(space, offset, mem_mask); } virtual DECLARE_WRITE16_MEMBER(protection_w) override { m_pvc_prot->protection_w(space, offset, data, mem_mask); } virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; - virtual int get_fixed_bank_type(void) override { return 0; } + virtual int get_fixed_bank_type() override { return 0; } private: required_device m_pvc_prot; }; -extern const device_type NEOGEO_SVCSPLUS_CART; +DECLARE_DEVICE_TYPE(NEOGEO_SVCSPLUS_CART, neogeo_svcsplus_cart_device) diff --git a/src/devices/bus/neogeo/carts.h b/src/devices/bus/neogeo/carts.h index abc0e0cabd5..f66b881a9b7 100644 --- a/src/devices/bus/neogeo/carts.h +++ b/src/devices/bus/neogeo/carts.h @@ -4,14 +4,13 @@ **********************************************************************/ -#pragma once - -#ifndef __NEOGEO_CARTS_H__ -#define __NEOGEO_CARTS_H__ +#ifndef MAME_BUS_NEOGEO_CARTS_H +#define MAME_BUS_NEOGEO_CARTS_H +#pragma once // supported devices SLOT_INTERFACE_EXTERN(neogeo_cart); -#endif // __NEOGEO_CARTS_H__ +#endif // MAME_BUS_NEOGEO_CARTS_H diff --git a/src/devices/bus/neogeo/cmc.cpp b/src/devices/bus/neogeo/cmc.cpp index a630d9fe0a3..6107676a23c 100644 --- a/src/devices/bus/neogeo/cmc.cpp +++ b/src/devices/bus/neogeo/cmc.cpp @@ -13,32 +13,33 @@ //------------------------------------------------- -// neogeo_cmc_cart - constructor +// neogeo_cmc_cart_device - constructor //------------------------------------------------- -const device_type NEOGEO_CMC_CART = device_creator; +DEFINE_DEVICE_TYPE(NEOGEO_CMC_CART, neogeo_cmc_cart_device, "neocart_cmc", "Neo Geo CMC Cart") -neogeo_cmc_cart::neogeo_cmc_cart(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint16_t clock, const char *shortname, const char *source) : - neogeo_rom_device(mconfig, type, name, tag, owner, clock, shortname, source), - m_prot(*this, "cmc_prot") -{} - -neogeo_cmc_cart::neogeo_cmc_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint16_t clock) : - neogeo_rom_device(mconfig, NEOGEO_CMC_CART, "Neo Geo CMC Cart", tag, owner, clock, "neocart_cmc", __FILE__), +neogeo_cmc_cart_device::neogeo_cmc_cart_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint16_t clock) : + neogeo_rom_device(mconfig, type, tag, owner, clock), m_prot(*this, "cmc_prot") -{} +{ +} + +neogeo_cmc_cart_device::neogeo_cmc_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint16_t clock) : + neogeo_cmc_cart_device(mconfig, NEOGEO_CMC_CART, tag, owner, clock) +{ +} //------------------------------------------------- // mapper specific start/reset //------------------------------------------------- -void neogeo_cmc_cart::device_start() +void neogeo_cmc_cart_device::device_start() { } -void neogeo_cmc_cart::device_reset() +void neogeo_cmc_cart_device::device_reset() { } @@ -47,7 +48,7 @@ static MACHINE_CONFIG_FRAGMENT( cmc_cart ) MCFG_CMC_PROT_ADD("cmc_prot") MACHINE_CONFIG_END -machine_config_constructor neogeo_cmc_cart::device_mconfig_additions() const +machine_config_constructor neogeo_cmc_cart_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( cmc_cart ); } @@ -57,13 +58,14 @@ machine_config_constructor neogeo_cmc_cart::device_mconfig_additions() const zupapa **************************************************/ -const device_type NEOGEO_CMC_ZUPAPA_CART = device_creator; +DEFINE_DEVICE_TYPE(NEOGEO_CMC_ZUPAPA_CART, neogeo_cmc_zupapa_cart_device, "neocart_zupapa", "Neo Geo Zupapa CMC42 Cart") -neogeo_cmc_zupapa_cart::neogeo_cmc_zupapa_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - neogeo_cmc_cart(mconfig, NEOGEO_CMC_ZUPAPA_CART, "Neo Geo Zupapa CMC42 Cart", tag, owner, clock, "neocart_zupapa", __FILE__) -{} +neogeo_cmc_zupapa_cart_device::neogeo_cmc_zupapa_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + neogeo_cmc_cart_device(mconfig, NEOGEO_CMC_ZUPAPA_CART, tag, owner, clock) +{ +} -void neogeo_cmc_zupapa_cart::decrypt_all(DECRYPT_ALL_PARAMS) +void neogeo_cmc_zupapa_cart_device::decrypt_all(DECRYPT_ALL_PARAMS) { m_prot->cmc42_gfx_decrypt(spr_region, spr_region_size, ZUPAPA_GFX_KEY); m_prot->sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size); @@ -74,13 +76,14 @@ void neogeo_cmc_zupapa_cart::decrypt_all(DECRYPT_ALL_PARAMS) mslug3h **************************************************/ -const device_type NEOGEO_CMC_MSLUG3H_CART = device_creator; +DEFINE_DEVICE_TYPE(NEOGEO_CMC_MSLUG3H_CART, neogeo_cmc_mslug3h_cart_device, "neocart_mslug3h", "Neo Geo Metal Slug 3 AES CMC42 Cart") -neogeo_cmc_mslug3h_cart::neogeo_cmc_mslug3h_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - neogeo_cmc_cart(mconfig, NEOGEO_CMC_MSLUG3H_CART, "Neo Geo Metal Slug 3 AES CMC42 Cart", tag, owner, clock, "neocart_mslug3h", __FILE__) -{} +neogeo_cmc_mslug3h_cart_device::neogeo_cmc_mslug3h_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + neogeo_cmc_cart_device(mconfig, NEOGEO_CMC_MSLUG3H_CART, tag, owner, clock) +{ +} -void neogeo_cmc_mslug3h_cart::decrypt_all(DECRYPT_ALL_PARAMS) +void neogeo_cmc_mslug3h_cart_device::decrypt_all(DECRYPT_ALL_PARAMS) { m_prot->cmc42_gfx_decrypt(spr_region, spr_region_size, MSLUG3_GFX_KEY); m_prot->sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size); @@ -91,13 +94,14 @@ void neogeo_cmc_mslug3h_cart::decrypt_all(DECRYPT_ALL_PARAMS) ganryu **************************************************/ -const device_type NEOGEO_CMC_GANRYU_CART = device_creator; +DEFINE_DEVICE_TYPE(NEOGEO_CMC_GANRYU_CART, neogeo_cmc_ganryu_cart_device, "neocart_ganryu", "Neo Geo Ganryu CMC42 Cart") -neogeo_cmc_ganryu_cart::neogeo_cmc_ganryu_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - neogeo_cmc_cart(mconfig, NEOGEO_CMC_GANRYU_CART, "Neo Geo Ganryu CMC42 Cart", tag, owner, clock, "neocart_ganryu", __FILE__) -{} +neogeo_cmc_ganryu_cart_device::neogeo_cmc_ganryu_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + neogeo_cmc_cart_device(mconfig, NEOGEO_CMC_GANRYU_CART, tag, owner, clock) +{ +} -void neogeo_cmc_ganryu_cart::decrypt_all(DECRYPT_ALL_PARAMS) +void neogeo_cmc_ganryu_cart_device::decrypt_all(DECRYPT_ALL_PARAMS) { m_prot->cmc42_gfx_decrypt(spr_region, spr_region_size, GANRYU_GFX_KEY); m_prot->sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size); @@ -108,13 +112,14 @@ void neogeo_cmc_ganryu_cart::decrypt_all(DECRYPT_ALL_PARAMS) s1945p **************************************************/ -const device_type NEOGEO_CMC_S1945P_CART = device_creator; +DEFINE_DEVICE_TYPE(NEOGEO_CMC_S1945P_CART, neogeo_cmc_s1945p_cart_device, "neocart_s1945p", "Neo Geo Strikers 1945 Plus CMC42 Cart") -neogeo_cmc_s1945p_cart::neogeo_cmc_s1945p_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - neogeo_cmc_cart(mconfig, NEOGEO_CMC_S1945P_CART, "Neo Geo Strikers 1945 Plus CMC42 Cart", tag, owner, clock, "neocart_s1945p", __FILE__) -{} +neogeo_cmc_s1945p_cart_device::neogeo_cmc_s1945p_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + neogeo_cmc_cart_device(mconfig, NEOGEO_CMC_S1945P_CART, tag, owner, clock) +{ +} -void neogeo_cmc_s1945p_cart::decrypt_all(DECRYPT_ALL_PARAMS) +void neogeo_cmc_s1945p_cart_device::decrypt_all(DECRYPT_ALL_PARAMS) { m_prot->cmc42_gfx_decrypt(spr_region, spr_region_size, S1945P_GFX_KEY); m_prot->sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size); @@ -124,13 +129,14 @@ void neogeo_cmc_s1945p_cart::decrypt_all(DECRYPT_ALL_PARAMS) preisle2 **************************************************/ -const device_type NEOGEO_CMC_PREISLE2_CART = device_creator; +DEFINE_DEVICE_TYPE(NEOGEO_CMC_PREISLE2_CART, neogeo_cmc_preisle2_cart_device, "neocart_preisle2", "Neo Geo Prehistoric Isle 2 CMC42 Cart") -neogeo_cmc_preisle2_cart::neogeo_cmc_preisle2_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - neogeo_cmc_cart(mconfig, NEOGEO_CMC_PREISLE2_CART, "Neo Geo Prehistorik Isle 2 CMC42 Cart", tag, owner, clock, "neocart_preisle2", __FILE__) -{} +neogeo_cmc_preisle2_cart_device::neogeo_cmc_preisle2_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + neogeo_cmc_cart_device(mconfig, NEOGEO_CMC_PREISLE2_CART, tag, owner, clock) +{ +} -void neogeo_cmc_preisle2_cart::decrypt_all(DECRYPT_ALL_PARAMS) +void neogeo_cmc_preisle2_cart_device::decrypt_all(DECRYPT_ALL_PARAMS) { m_prot->cmc42_gfx_decrypt(spr_region, spr_region_size, PREISLE2_GFX_KEY); m_prot->sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size); @@ -140,13 +146,14 @@ void neogeo_cmc_preisle2_cart::decrypt_all(DECRYPT_ALL_PARAMS) bangbead **************************************************/ -const device_type NEOGEO_CMC_BANGBEAD_CART = device_creator; +DEFINE_DEVICE_TYPE(NEOGEO_CMC_BANGBEAD_CART, neogeo_cmc_bangbead_cart_device, "neocart_bangbead", "Neo Geo Bangbead CMC42 Cart") -neogeo_cmc_bangbead_cart::neogeo_cmc_bangbead_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - neogeo_cmc_cart(mconfig, NEOGEO_CMC_BANGBEAD_CART, "Neo Geo Bangbead CMC42 Cart", tag, owner, clock, "neocart_bangbead", __FILE__) -{} +neogeo_cmc_bangbead_cart_device::neogeo_cmc_bangbead_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + neogeo_cmc_cart_device(mconfig, NEOGEO_CMC_BANGBEAD_CART, tag, owner, clock) +{ +} -void neogeo_cmc_bangbead_cart::decrypt_all(DECRYPT_ALL_PARAMS) +void neogeo_cmc_bangbead_cart_device::decrypt_all(DECRYPT_ALL_PARAMS) { m_prot->cmc42_gfx_decrypt(spr_region, spr_region_size, BANGBEAD_GFX_KEY); m_prot->sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size); @@ -156,13 +163,14 @@ void neogeo_cmc_bangbead_cart::decrypt_all(DECRYPT_ALL_PARAMS) ntd **************************************************/ -const device_type NEOGEO_CMC_NITD_CART = device_creator; +DEFINE_DEVICE_TYPE(NEOGEO_CMC_NITD_CART, neogeo_cmc_nitd_cart_device, "neocart_nitd", "Neo Geo NITD CMC42 Cart") -neogeo_cmc_nitd_cart::neogeo_cmc_nitd_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - neogeo_cmc_cart(mconfig, NEOGEO_CMC_NITD_CART, "Neo Geo NITD CMC42 Cart", tag, owner, clock, "neocart_nitd", __FILE__) -{} +neogeo_cmc_nitd_cart_device::neogeo_cmc_nitd_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + neogeo_cmc_cart_device(mconfig, NEOGEO_CMC_NITD_CART, tag, owner, clock) +{ +} -void neogeo_cmc_nitd_cart::decrypt_all(DECRYPT_ALL_PARAMS) +void neogeo_cmc_nitd_cart_device::decrypt_all(DECRYPT_ALL_PARAMS) { m_prot->cmc42_gfx_decrypt(spr_region, spr_region_size, NITD_GFX_KEY); m_prot->sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size); @@ -173,13 +181,14 @@ void neogeo_cmc_nitd_cart::decrypt_all(DECRYPT_ALL_PARAMS) sengoku3 **************************************************/ -const device_type NEOGEO_CMC_SENGOKU3_CART = device_creator; +DEFINE_DEVICE_TYPE(NEOGEO_CMC_SENGOKU3_CART, neogeo_cmc_sengoku3_cart_device, "neocart_sengoku3", "Neo Geo Sengoku 3 CMC42 Cart") -neogeo_cmc_sengoku3_cart::neogeo_cmc_sengoku3_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - neogeo_cmc_cart(mconfig, NEOGEO_CMC_SENGOKU3_CART, "Neo Geo Sengoku 3 CMC42 Cart", tag, owner, clock, "neocart_sengoku3", __FILE__) -{} +neogeo_cmc_sengoku3_cart_device::neogeo_cmc_sengoku3_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + neogeo_cmc_cart_device(mconfig, NEOGEO_CMC_SENGOKU3_CART, tag, owner, clock) +{ +} -void neogeo_cmc_sengoku3_cart::decrypt_all(DECRYPT_ALL_PARAMS) +void neogeo_cmc_sengoku3_cart_device::decrypt_all(DECRYPT_ALL_PARAMS) { m_prot->cmc42_gfx_decrypt(spr_region, spr_region_size, SENGOKU3_GFX_KEY); m_prot->sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size); @@ -189,13 +198,14 @@ void neogeo_cmc_sengoku3_cart::decrypt_all(DECRYPT_ALL_PARAMS) kof99k **************************************************/ -const device_type NEOGEO_CMC_KOF99K_CART = device_creator; +DEFINE_DEVICE_TYPE(NEOGEO_CMC_KOF99K_CART, neogeo_cmc_kof99k_cart_device, "neocart_kof99k", "Neo Geo KoF 99 Korea CMC42 Cart") -neogeo_cmc_kof99k_cart::neogeo_cmc_kof99k_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - neogeo_cmc_cart(mconfig, NEOGEO_CMC_KOF99K_CART, "Neo Geo KOF 99 Korea CMC42 Cart", tag, owner, clock, "neocart_kof99k", __FILE__) -{} +neogeo_cmc_kof99k_cart_device::neogeo_cmc_kof99k_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + neogeo_cmc_cart_device(mconfig, NEOGEO_CMC_KOF99K_CART, tag, owner, clock) +{ +} -void neogeo_cmc_kof99k_cart::decrypt_all(DECRYPT_ALL_PARAMS) +void neogeo_cmc_kof99k_cart_device::decrypt_all(DECRYPT_ALL_PARAMS) { m_prot->cmc42_gfx_decrypt(spr_region, spr_region_size, KOF99_GFX_KEY); m_prot->sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size); @@ -206,13 +216,14 @@ void neogeo_cmc_kof99k_cart::decrypt_all(DECRYPT_ALL_PARAMS) kof2001 **************************************************/ -const device_type NEOGEO_CMC_KOF2001_CART = device_creator; +DEFINE_DEVICE_TYPE(NEOGEO_CMC_KOF2001_CART, neogeo_cmc_kof2001_cart_device, "neocart_kof2001", "Neo Geo KoF 2001 CMC50 Cart") -neogeo_cmc_kof2001_cart::neogeo_cmc_kof2001_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - neogeo_cmc_cart(mconfig, NEOGEO_CMC_KOF2001_CART, "Neo Geo KOF 2001 CMC50 Cart", tag, owner, clock, "neocart_kof2001", __FILE__) -{} +neogeo_cmc_kof2001_cart_device::neogeo_cmc_kof2001_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + neogeo_cmc_cart_device(mconfig, NEOGEO_CMC_KOF2001_CART, tag, owner, clock) +{ +} -void neogeo_cmc_kof2001_cart::decrypt_all(DECRYPT_ALL_PARAMS) +void neogeo_cmc_kof2001_cart_device::decrypt_all(DECRYPT_ALL_PARAMS) { m_prot->cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region, audio_region_size); m_prot->cmc50_gfx_decrypt(spr_region, spr_region_size, KOF2001_GFX_KEY); @@ -223,13 +234,14 @@ void neogeo_cmc_kof2001_cart::decrypt_all(DECRYPT_ALL_PARAMS) kof2000n **************************************************/ -const device_type NEOGEO_CMC_KOF2000N_CART = device_creator; +DEFINE_DEVICE_TYPE(NEOGEO_CMC_KOF2000N_CART, neogeo_cmc_kof2000n_cart_device, "neocart_kof2000n", "Neo Geo KoF 2000 CMC50 Cart") -neogeo_cmc_kof2000n_cart::neogeo_cmc_kof2000n_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - neogeo_cmc_cart(mconfig, NEOGEO_CMC_KOF2000N_CART, "Neo Geo KOF 2000 CMC50 Cart", tag, owner, clock, "neocart_kof2000n", __FILE__) -{} +neogeo_cmc_kof2000n_cart_device::neogeo_cmc_kof2000n_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + neogeo_cmc_cart_device(mconfig, NEOGEO_CMC_KOF2000N_CART, tag, owner, clock) +{ +} -void neogeo_cmc_kof2000n_cart::decrypt_all(DECRYPT_ALL_PARAMS) +void neogeo_cmc_kof2000n_cart_device::decrypt_all(DECRYPT_ALL_PARAMS) { m_prot->cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region, audio_region_size); m_prot->cmc50_gfx_decrypt(spr_region, spr_region_size, KOF2000_GFX_KEY); @@ -241,24 +253,25 @@ void neogeo_cmc_kof2000n_cart::decrypt_all(DECRYPT_ALL_PARAMS) jockeygp **************************************************/ -const device_type NEOGEO_CMC_JOCKEYGP_CART = device_creator; +DEFINE_DEVICE_TYPE(NEOGEO_CMC_JOCKEYGP_CART, neogeo_cmc_jockeygp_cart_device, "neocart_jockeygp", "Neo Geo Jockey GP CMC50 Cart") -neogeo_cmc_jockeygp_cart::neogeo_cmc_jockeygp_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - neogeo_cmc_cart(mconfig, NEOGEO_CMC_JOCKEYGP_CART, "Neo Geo Jockey GP CMC50 Cart", tag, owner, clock, "neocart_jockeygp", __FILE__) -{} +neogeo_cmc_jockeygp_cart_device::neogeo_cmc_jockeygp_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + neogeo_cmc_cart_device(mconfig, NEOGEO_CMC_JOCKEYGP_CART, tag, owner, clock) +{ +} -void neogeo_cmc_jockeygp_cart::device_start() +void neogeo_cmc_jockeygp_cart_device::device_start() { save_item(NAME(m_ram)); } -void neogeo_cmc_jockeygp_cart::device_reset() +void neogeo_cmc_jockeygp_cart_device::device_reset() { memset(m_ram, 0, 0x2000); } -void neogeo_cmc_jockeygp_cart::decrypt_all(DECRYPT_ALL_PARAMS) +void neogeo_cmc_jockeygp_cart_device::decrypt_all(DECRYPT_ALL_PARAMS) { m_prot->cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region, audio_region_size); m_prot->cmc50_gfx_decrypt(spr_region, spr_region_size, JOCKEYGP_GFX_KEY); diff --git a/src/devices/bus/neogeo/cmc.h b/src/devices/bus/neogeo/cmc.h index 7ee808ad08c..78d0e29326d 100644 --- a/src/devices/bus/neogeo/cmc.h +++ b/src/devices/bus/neogeo/cmc.h @@ -1,200 +1,222 @@ // license:BSD-3-Clause // copyright-holders:S. Smith,David Haywood,Fabio Priuli -#ifndef __NEOGEO_CMC_H -#define __NEOGEO_CMC_H +#ifndef MAME_BUS_NEOGEO_CMC_H +#define MAME_BUS_NEOGEO_CMC_H + +#pragma once #include "slot.h" #include "rom.h" #include "prot_cmc.h" -// ======================> neogeo_cmc_cart +// ======================> neogeo_cmc_cart_device -class neogeo_cmc_cart : public neogeo_rom_device +class neogeo_cmc_cart_device : public neogeo_rom_device { public: // construction/destruction - neogeo_cmc_cart(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint16_t clock, const char *shortname, const char *source); - neogeo_cmc_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint16_t clock); + neogeo_cmc_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint16_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; virtual machine_config_constructor device_mconfig_additions() const override; // reading and writing - virtual void decrypt_all(DECRYPT_ALL_PARAMS) override {} - virtual int get_fixed_bank_type(void) override { return 0; } + virtual void decrypt_all(DECRYPT_ALL_PARAMS) override { } + virtual int get_fixed_bank_type() override { return 0; } - required_device m_prot; -}; +protected: + neogeo_cmc_cart_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint16_t clock); + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + required_device m_prot; +}; // device type definition -extern const device_type NEOGEO_CMC_CART; +DECLARE_DEVICE_TYPE(NEOGEO_CMC_CART, neogeo_cmc_cart_device) /************************************************* zupapa **************************************************/ -class neogeo_cmc_zupapa_cart : public neogeo_cmc_cart +class neogeo_cmc_zupapa_cart_device : public neogeo_cmc_cart_device { public: - neogeo_cmc_zupapa_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + neogeo_cmc_zupapa_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; - virtual int get_fixed_bank_type(void) override { return 1; } + virtual int get_fixed_bank_type() override { return 1; } }; -extern const device_type NEOGEO_CMC_ZUPAPA_CART; + +DECLARE_DEVICE_TYPE(NEOGEO_CMC_ZUPAPA_CART, neogeo_cmc_zupapa_cart_device) + /************************************************* mslug3h **************************************************/ -class neogeo_cmc_mslug3h_cart : public neogeo_cmc_cart +class neogeo_cmc_mslug3h_cart_device : public neogeo_cmc_cart_device { public: - neogeo_cmc_mslug3h_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + neogeo_cmc_mslug3h_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; - virtual int get_fixed_bank_type(void) override { return 1; } + virtual int get_fixed_bank_type() override { return 1; } }; -extern const device_type NEOGEO_CMC_MSLUG3H_CART; + +DECLARE_DEVICE_TYPE(NEOGEO_CMC_MSLUG3H_CART, neogeo_cmc_mslug3h_cart_device) /************************************************* ganryu **************************************************/ -class neogeo_cmc_ganryu_cart : public neogeo_cmc_cart +class neogeo_cmc_ganryu_cart_device : public neogeo_cmc_cart_device { public: - neogeo_cmc_ganryu_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + neogeo_cmc_ganryu_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; - virtual int get_fixed_bank_type(void) override { return 1; } + virtual int get_fixed_bank_type() override { return 1; } }; -extern const device_type NEOGEO_CMC_GANRYU_CART; + +DECLARE_DEVICE_TYPE(NEOGEO_CMC_GANRYU_CART, neogeo_cmc_ganryu_cart_device) + /************************************************* s1945p **************************************************/ -class neogeo_cmc_s1945p_cart : public neogeo_cmc_cart +class neogeo_cmc_s1945p_cart_device : public neogeo_cmc_cart_device { public: - neogeo_cmc_s1945p_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + neogeo_cmc_s1945p_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; - virtual int get_fixed_bank_type(void) override { return 1; } + virtual int get_fixed_bank_type() override { return 1; } }; -extern const device_type NEOGEO_CMC_S1945P_CART; + +DECLARE_DEVICE_TYPE(NEOGEO_CMC_S1945P_CART, neogeo_cmc_s1945p_cart_device) /************************************************* preisle2 **************************************************/ -class neogeo_cmc_preisle2_cart : public neogeo_cmc_cart +class neogeo_cmc_preisle2_cart_device : public neogeo_cmc_cart_device { public: - neogeo_cmc_preisle2_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + neogeo_cmc_preisle2_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; - virtual int get_fixed_bank_type(void) override { return 1; } + virtual int get_fixed_bank_type() override { return 1; } }; -extern const device_type NEOGEO_CMC_PREISLE2_CART; + +DECLARE_DEVICE_TYPE(NEOGEO_CMC_PREISLE2_CART, neogeo_cmc_preisle2_cart_device) + /************************************************* bangbead **************************************************/ -class neogeo_cmc_bangbead_cart : public neogeo_cmc_cart +class neogeo_cmc_bangbead_cart_device : public neogeo_cmc_cart_device { public: - neogeo_cmc_bangbead_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + neogeo_cmc_bangbead_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; - virtual int get_fixed_bank_type(void) override { return 1; } + virtual int get_fixed_bank_type() override { return 1; } }; -extern const device_type NEOGEO_CMC_BANGBEAD_CART; + +DECLARE_DEVICE_TYPE(NEOGEO_CMC_BANGBEAD_CART, neogeo_cmc_bangbead_cart_device) /************************************************* nitd **************************************************/ -class neogeo_cmc_nitd_cart : public neogeo_cmc_cart +class neogeo_cmc_nitd_cart_device : public neogeo_cmc_cart_device { public: - neogeo_cmc_nitd_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + neogeo_cmc_nitd_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; - virtual int get_fixed_bank_type(void) override { return 1; } + virtual int get_fixed_bank_type() override { return 1; } }; -extern const device_type NEOGEO_CMC_NITD_CART; + +DECLARE_DEVICE_TYPE(NEOGEO_CMC_NITD_CART, neogeo_cmc_nitd_cart_device) + /************************************************* sengoku3 **************************************************/ -class neogeo_cmc_sengoku3_cart : public neogeo_cmc_cart +class neogeo_cmc_sengoku3_cart_device : public neogeo_cmc_cart_device { public: - neogeo_cmc_sengoku3_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + neogeo_cmc_sengoku3_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; - virtual int get_fixed_bank_type(void) override { return 1; } + virtual int get_fixed_bank_type() override { return 1; } }; -extern const device_type NEOGEO_CMC_SENGOKU3_CART; + +DECLARE_DEVICE_TYPE(NEOGEO_CMC_SENGOKU3_CART, neogeo_cmc_sengoku3_cart_device) + /************************************************* kof99k **************************************************/ -class neogeo_cmc_kof99k_cart : public neogeo_cmc_cart +class neogeo_cmc_kof99k_cart_device : public neogeo_cmc_cart_device { public: - neogeo_cmc_kof99k_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + neogeo_cmc_kof99k_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; - virtual int get_fixed_bank_type(void) override { return 1; } + virtual int get_fixed_bank_type() override { return 1; } }; -extern const device_type NEOGEO_CMC_KOF99K_CART; + +DECLARE_DEVICE_TYPE(NEOGEO_CMC_KOF99K_CART, neogeo_cmc_kof99k_cart_device) + /************************************************* kof2001 **************************************************/ -class neogeo_cmc_kof2001_cart : public neogeo_cmc_cart +class neogeo_cmc_kof2001_cart_device : public neogeo_cmc_cart_device { public: - neogeo_cmc_kof2001_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + neogeo_cmc_kof2001_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; - virtual int get_fixed_bank_type(void) override { return 1; } + virtual int get_fixed_bank_type() override { return 1; } }; -extern const device_type NEOGEO_CMC_KOF2001_CART; + +DECLARE_DEVICE_TYPE(NEOGEO_CMC_KOF2001_CART, neogeo_cmc_kof2001_cart_device) + /************************************************* kof2000n **************************************************/ -class neogeo_cmc_kof2000n_cart : public neogeo_cmc_cart +class neogeo_cmc_kof2000n_cart_device : public neogeo_cmc_cart_device { public: - neogeo_cmc_kof2000n_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + neogeo_cmc_kof2000n_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; - virtual int get_fixed_bank_type(void) override { return 2; } + virtual int get_fixed_bank_type() override { return 2; } }; -extern const device_type NEOGEO_CMC_KOF2000N_CART; + +DECLARE_DEVICE_TYPE(NEOGEO_CMC_KOF2000N_CART, neogeo_cmc_kof2000n_cart_device) /************************************************* jockeygp **************************************************/ -class neogeo_cmc_jockeygp_cart : public neogeo_cmc_cart +class neogeo_cmc_jockeygp_cart_device : public neogeo_cmc_cart_device { public: - neogeo_cmc_jockeygp_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + neogeo_cmc_jockeygp_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; - virtual int get_fixed_bank_type(void) override { return 1; } + virtual int get_fixed_bank_type() override { return 1; } virtual DECLARE_READ16_MEMBER(ram_r) override { return m_ram[offset]; } virtual DECLARE_WRITE16_MEMBER(ram_w) override { COMBINE_DATA(&m_ram[offset]); } +protected: virtual void device_start() override; virtual void device_reset() override; @@ -202,6 +224,6 @@ private: uint16_t m_ram[0x1000]; }; -extern const device_type NEOGEO_CMC_JOCKEYGP_CART; +DECLARE_DEVICE_TYPE(NEOGEO_CMC_JOCKEYGP_CART, neogeo_cmc_jockeygp_cart_device) -#endif +#endif // MAME_BUS_NEOGEO_CMC_H diff --git a/src/devices/bus/neogeo/fatfury2.cpp b/src/devices/bus/neogeo/fatfury2.cpp index 995d576b5a3..5694ff08224 100644 --- a/src/devices/bus/neogeo/fatfury2.cpp +++ b/src/devices/bus/neogeo/fatfury2.cpp @@ -13,27 +13,28 @@ //------------------------------------------------- -// neogeo_fatfury2_cart - constructor +// neogeo_fatfury2_cart_device - constructor //------------------------------------------------- -const device_type NEOGEO_FATFURY2_CART = device_creator; +DEFINE_DEVICE_TYPE(NEOGEO_FATFURY2_CART, neogeo_fatfury2_cart_device, "neocart_fatfury2", "Neo Geo Fatal Furty 2 Cart") -neogeo_fatfury2_cart::neogeo_fatfury2_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint16_t clock) : - neogeo_rom_device(mconfig, NEOGEO_FATFURY2_CART, "Neo Geo Fatal Fury 2 Cart", tag, owner, clock, "neocart_fatfury2", __FILE__), +neogeo_fatfury2_cart_device::neogeo_fatfury2_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint16_t clock) : + neogeo_rom_device(mconfig, NEOGEO_FATFURY2_CART, tag, owner, clock), m_prot(*this, "fatfury2_prot") -{} +{ +} //------------------------------------------------- // mapper specific start/reset //------------------------------------------------- -void neogeo_fatfury2_cart::device_start() +void neogeo_fatfury2_cart_device::device_start() { } -void neogeo_fatfury2_cart::device_reset() +void neogeo_fatfury2_cart_device::device_reset() { } @@ -46,7 +47,7 @@ static MACHINE_CONFIG_FRAGMENT( fatfury2_cart ) MCFG_FATFURY2_PROT_ADD("fatfury2_prot") MACHINE_CONFIG_END -machine_config_constructor neogeo_fatfury2_cart::device_mconfig_additions() const +machine_config_constructor neogeo_fatfury2_cart_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( fatfury2_cart ); } diff --git a/src/devices/bus/neogeo/fatfury2.h b/src/devices/bus/neogeo/fatfury2.h index 5579fe2b0bb..e49c6011629 100644 --- a/src/devices/bus/neogeo/fatfury2.h +++ b/src/devices/bus/neogeo/fatfury2.h @@ -1,37 +1,40 @@ // license:BSD-3-Clause // copyright-holders:S. Smith,David Haywood,Fabio Priuli -#ifndef __NEOGEO_FATFURY2_H -#define __NEOGEO_FATFURY2_H +#ifndef MAME_BUS_NEOGEO_FATFURY2_H +#define MAME_BUS_NEOGEO_FATFURY2_H + +#pragma once #include "slot.h" #include "rom.h" #include "prot_fatfury2.h" -// ======================> neogeo_fatfury2_cart +// ======================> neogeo_fatfury2_cart_device -class neogeo_fatfury2_cart : public neogeo_rom_device +class neogeo_fatfury2_cart_device : public neogeo_rom_device { public: // construction/destruction - neogeo_fatfury2_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint16_t clock); + neogeo_fatfury2_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint16_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; virtual machine_config_constructor device_mconfig_additions() const override; // reading and writing virtual DECLARE_READ16_MEMBER(protection_r) override { return m_prot->protection_r(space, offset, mem_mask); } virtual DECLARE_WRITE16_MEMBER(protection_w) override { m_prot->protection_w(space, offset, data, mem_mask); } - required_device m_prot; +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + required_device m_prot; }; // device type definition -extern const device_type NEOGEO_FATFURY2_CART; +DECLARE_DEVICE_TYPE(NEOGEO_FATFURY2_CART, neogeo_fatfury2_cart_device) -#endif +#endif // MAME_BUS_NEOGEO_FATFURY2_H diff --git a/src/devices/bus/neogeo/kof2k2.cpp b/src/devices/bus/neogeo/kof2k2.cpp index 50d2cfa94f8..76d11e616e6 100644 --- a/src/devices/bus/neogeo/kof2k2.cpp +++ b/src/devices/bus/neogeo/kof2k2.cpp @@ -13,36 +13,35 @@ //------------------------------------------------- -// neogeo_kof2002_cart - constructor +// neogeo_kof2002_cart_device - constructor //------------------------------------------------- -const device_type NEOGEO_K2K2_CART = device_creator; +DEFINE_DEVICE_TYPE(NEOGEO_K2K2_CART, neogeo_kof2k2type_cart_device, "neocart_k2k2", "Neo Geo KOF2002-Type Cart") -neogeo_kof2k2type_cart::neogeo_kof2k2type_cart(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint16_t clock, const char *shortname, const char *source) : - neogeo_rom_device(mconfig, type, name, tag, owner, clock, shortname, source), +neogeo_kof2k2type_cart_device::neogeo_kof2k2type_cart_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint16_t clock) : + neogeo_rom_device(mconfig, type, tag, owner, clock), m_cmc_prot(*this, "cmc_prot"), m_pcm2_prot(*this, "pcm2_prot"), m_kof2k2_prot(*this, "kof2002_prot") -{} +{ +} -neogeo_kof2k2type_cart::neogeo_kof2k2type_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint16_t clock) : - neogeo_rom_device(mconfig, NEOGEO_K2K2_CART, "Neo Geo KOF2002-Type Cart", tag, owner, clock, "neocart_k2k2", __FILE__), - m_cmc_prot(*this, "cmc_prot"), - m_pcm2_prot(*this, "pcm2_prot"), - m_kof2k2_prot(*this, "kof2002_prot") -{} +neogeo_kof2k2type_cart_device::neogeo_kof2k2type_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint16_t clock) : + neogeo_kof2k2type_cart_device(mconfig, NEOGEO_K2K2_CART, tag, owner, clock) +{ +} //------------------------------------------------- // mapper specific start/reset //------------------------------------------------- -void neogeo_kof2k2type_cart::device_start() +void neogeo_kof2k2type_cart_device::device_start() { } -void neogeo_kof2k2type_cart::device_reset() +void neogeo_kof2k2type_cart_device::device_reset() { } @@ -57,7 +56,7 @@ static MACHINE_CONFIG_FRAGMENT( kof2002_cart ) MCFG_KOF2002_PROT_ADD("kof2002_prot") MACHINE_CONFIG_END -machine_config_constructor neogeo_kof2k2type_cart::device_mconfig_additions() const +machine_config_constructor neogeo_kof2k2type_cart_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( kof2002_cart ); } @@ -67,14 +66,14 @@ machine_config_constructor neogeo_kof2k2type_cart::device_mconfig_additions() co kof2002 **************************************************/ -const device_type NEOGEO_K2K2_KOF2002_CART = device_creator; - -neogeo_kof2002_cart::neogeo_kof2002_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - neogeo_kof2k2type_cart(mconfig, NEOGEO_K2K2_KOF2002_CART, "Neo Geo KOF2002 Cart", tag, owner, clock, "neocart_kof2002", __FILE__) -{} +DEFINE_DEVICE_TYPE(NEOGEO_K2K2_KOF2002_CART, neogeo_kof2002_cart_device, "neocart_kof2002", "Neo Geo KoF 2002 Cart") +neogeo_kof2002_cart_device::neogeo_kof2002_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + neogeo_kof2k2type_cart_device(mconfig, NEOGEO_K2K2_KOF2002_CART, tag, owner, clock) +{ +} -void neogeo_kof2002_cart::decrypt_all(DECRYPT_ALL_PARAMS) +void neogeo_kof2002_cart_device::decrypt_all(DECRYPT_ALL_PARAMS) { m_kof2k2_prot->kof2002_decrypt_68k(cpuregion, cpuregion_size); m_cmc_prot->cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region, audio_region_size); @@ -83,17 +82,18 @@ void neogeo_kof2002_cart::decrypt_all(DECRYPT_ALL_PARAMS) m_pcm2_prot->swap(ym_region, ym_region_size, 0); } -const device_type NEOGEO_K2K2_KF2K2PLS_CART = device_creator; - /************************************************* kf2k2pls **************************************************/ -neogeo_kf2k2pls_cart::neogeo_kf2k2pls_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - neogeo_kof2k2type_cart(mconfig, NEOGEO_K2K2_KF2K2PLS_CART, "Neo Geo KOF2002 Plus Cart", tag, owner, clock, "neocart_kf2k2pls", __FILE__) -{} +DEFINE_DEVICE_TYPE(NEOGEO_K2K2_KF2K2PLS_CART, neogeo_kf2k2pls_cart_device, "neocart_kf2k2pls", "Neo Geo KoF 2002 Plus Cart") -void neogeo_kf2k2pls_cart::decrypt_all(DECRYPT_ALL_PARAMS) +neogeo_kf2k2pls_cart_device::neogeo_kf2k2pls_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + neogeo_kof2k2type_cart_device(mconfig, NEOGEO_K2K2_KF2K2PLS_CART, tag, owner, clock) +{ +} + +void neogeo_kf2k2pls_cart_device::decrypt_all(DECRYPT_ALL_PARAMS) { m_kof2k2_prot->kof2002_decrypt_68k(cpuregion, cpuregion_size); m_cmc_prot->cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region, audio_region_size); @@ -106,13 +106,14 @@ void neogeo_kf2k2pls_cart::decrypt_all(DECRYPT_ALL_PARAMS) matrim **************************************************/ -const device_type NEOGEO_K2K2_MATRIM_CART = device_creator; +DEFINE_DEVICE_TYPE(NEOGEO_K2K2_MATRIM_CART, neogeo_matrim_cart_device, "neocart_matrim", "Neo Geo Matrimelee Cart") -neogeo_matrim_cart::neogeo_matrim_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - neogeo_kof2k2type_cart(mconfig, NEOGEO_K2K2_MATRIM_CART, "Neo Geo Matrimelee Cart", tag, owner, clock, "neocart_matrim", __FILE__) -{} +neogeo_matrim_cart_device::neogeo_matrim_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + neogeo_kof2k2type_cart_device(mconfig, NEOGEO_K2K2_MATRIM_CART, tag, owner, clock) +{ +} -void neogeo_matrim_cart::decrypt_all(DECRYPT_ALL_PARAMS) +void neogeo_matrim_cart_device::decrypt_all(DECRYPT_ALL_PARAMS) { m_kof2k2_prot->matrim_decrypt_68k(cpuregion, cpuregion_size); m_cmc_prot->cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region, audio_region_size); @@ -125,13 +126,14 @@ void neogeo_matrim_cart::decrypt_all(DECRYPT_ALL_PARAMS) samsho5 **************************************************/ -const device_type NEOGEO_K2K2_SAMSHO5_CART = device_creator; +DEFINE_DEVICE_TYPE(NEOGEO_K2K2_SAMSHO5_CART, neogeo_samsho5_cart_device, "neocart_samsho5", "Neo Geo Samurai Shodown 5 Cart") -neogeo_samsho5_cart::neogeo_samsho5_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - neogeo_kof2k2type_cart(mconfig, NEOGEO_K2K2_SAMSHO5_CART, "Neo Geo Samurai Shodown 5 Cart", tag, owner, clock, "neocart_samsho5", __FILE__) -{} +neogeo_samsho5_cart_device::neogeo_samsho5_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + neogeo_kof2k2type_cart_device(mconfig, NEOGEO_K2K2_SAMSHO5_CART, tag, owner, clock) +{ +} -void neogeo_samsho5_cart::decrypt_all(DECRYPT_ALL_PARAMS) +void neogeo_samsho5_cart_device::decrypt_all(DECRYPT_ALL_PARAMS) { m_kof2k2_prot->samsho5_decrypt_68k(cpuregion, cpuregion_size); m_cmc_prot->cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region, audio_region_size); @@ -144,13 +146,14 @@ void neogeo_samsho5_cart::decrypt_all(DECRYPT_ALL_PARAMS) samsh5sp **************************************************/ -const device_type NEOGEO_K2K2_SAMSHO5SP_CART = device_creator; +DEFINE_DEVICE_TYPE(NEOGEO_K2K2_SAMSHO5SP_CART, neogeo_samsho5sp_cart_device, "neocart_samsh5sp", "Neo Geo Samurai Shodown 5 Special Cart") -neogeo_samsho5sp_cart::neogeo_samsho5sp_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - neogeo_kof2k2type_cart(mconfig, NEOGEO_K2K2_SAMSHO5SP_CART, "Neo Geo Samurai Shodown 5 Special Cart", tag, owner, clock, "neocart_samsh5sp", __FILE__) -{} +neogeo_samsho5sp_cart_device::neogeo_samsho5sp_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + neogeo_kof2k2type_cart_device(mconfig, NEOGEO_K2K2_SAMSHO5SP_CART, tag, owner, clock) +{ +} -void neogeo_samsho5sp_cart::decrypt_all(DECRYPT_ALL_PARAMS) +void neogeo_samsho5sp_cart_device::decrypt_all(DECRYPT_ALL_PARAMS) { m_kof2k2_prot->samsh5sp_decrypt_68k(cpuregion, cpuregion_size); m_cmc_prot->cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region, audio_region_size); diff --git a/src/devices/bus/neogeo/kof2k2.h b/src/devices/bus/neogeo/kof2k2.h index 067ffcd38f9..2d14294c3be 100644 --- a/src/devices/bus/neogeo/kof2k2.h +++ b/src/devices/bus/neogeo/kof2k2.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:S. Smith,David Haywood,Fabio Priuli -#ifndef __NEOGEO_KOF2002_H -#define __NEOGEO_KOF2002_H +#ifndef MAME_BUS_NEOGEO_KOF2K2_H +#define MAME_BUS_NEOGEO_KOF2K2_H + +#pragma once #include "slot.h" #include "rom.h" @@ -9,106 +11,106 @@ #include "prot_cmc.h" #include "prot_kof2k2.h" -// ======================> neogeo_kof2002_cart +// ======================> neogeo_kof2002_cart_device -class neogeo_kof2k2type_cart : public neogeo_rom_device +class neogeo_kof2k2type_cart_device : public neogeo_rom_device { public: // construction/destruction - neogeo_kof2k2type_cart(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint16_t clock, const char *shortname, const char *source); - neogeo_kof2k2type_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint16_t clock); - - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; + neogeo_kof2k2type_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint16_t clock); virtual machine_config_constructor device_mconfig_additions() const override; // reading and writing + virtual void decrypt_all(DECRYPT_ALL_PARAMS) override { } + virtual int get_fixed_bank_type() override { return 0; } - virtual void decrypt_all(DECRYPT_ALL_PARAMS) override {} - virtual int get_fixed_bank_type(void) override { return 0; } +protected: + neogeo_kof2k2type_cart_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint16_t clock); + + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; required_device m_cmc_prot; required_device m_pcm2_prot; required_device m_kof2k2_prot; - }; // device type definition -extern const device_type NEOGEO_K2K2_CART; +DECLARE_DEVICE_TYPE(NEOGEO_K2K2_CART, neogeo_kof2k2type_cart_device) /************************************************* kof2002 **************************************************/ -class neogeo_kof2002_cart : public neogeo_kof2k2type_cart +class neogeo_kof2002_cart_device : public neogeo_kof2k2type_cart_device { public: - neogeo_kof2002_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + neogeo_kof2002_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; - virtual int get_fixed_bank_type(void) override { return 0; } + virtual int get_fixed_bank_type() override { return 0; } }; -extern const device_type NEOGEO_K2K2_KOF2002_CART; +DECLARE_DEVICE_TYPE(NEOGEO_K2K2_KOF2002_CART, neogeo_kof2002_cart_device) -class neogeo_kf2k2pls_cart : public neogeo_kof2k2type_cart +class neogeo_kf2k2pls_cart_device : public neogeo_kof2k2type_cart_device { public: - neogeo_kf2k2pls_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + neogeo_kf2k2pls_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; - virtual int get_fixed_bank_type(void) override { return 0; } + virtual int get_fixed_bank_type() override { return 0; } }; -extern const device_type NEOGEO_K2K2_KF2K2PLS_CART; +DECLARE_DEVICE_TYPE(NEOGEO_K2K2_KF2K2PLS_CART, neogeo_kf2k2pls_cart_device) /************************************************* matrim **************************************************/ -class neogeo_matrim_cart : public neogeo_kof2k2type_cart +class neogeo_matrim_cart_device : public neogeo_kof2k2type_cart_device { public: - neogeo_matrim_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + neogeo_matrim_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; - virtual int get_fixed_bank_type(void) override { return 2; } + virtual int get_fixed_bank_type() override { return 2; } }; -extern const device_type NEOGEO_K2K2_MATRIM_CART; +DECLARE_DEVICE_TYPE(NEOGEO_K2K2_MATRIM_CART, neogeo_matrim_cart_device) /************************************************* samsho5 **************************************************/ -class neogeo_samsho5_cart : public neogeo_kof2k2type_cart +class neogeo_samsho5_cart_device : public neogeo_kof2k2type_cart_device { public: - neogeo_samsho5_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + neogeo_samsho5_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; - virtual int get_fixed_bank_type(void) override { return 1; } + virtual int get_fixed_bank_type() override { return 1; } }; -extern const device_type NEOGEO_K2K2_SAMSHO5_CART; +DECLARE_DEVICE_TYPE(NEOGEO_K2K2_SAMSHO5_CART, neogeo_samsho5_cart_device) /************************************************* samsho5sp **************************************************/ -class neogeo_samsho5sp_cart : public neogeo_kof2k2type_cart +class neogeo_samsho5sp_cart_device : public neogeo_kof2k2type_cart_device { public: - neogeo_samsho5sp_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + neogeo_samsho5sp_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; - virtual int get_fixed_bank_type(void) override { return 1; } + virtual int get_fixed_bank_type() override { return 1; } }; -extern const device_type NEOGEO_K2K2_SAMSHO5SP_CART; +DECLARE_DEVICE_TYPE(NEOGEO_K2K2_SAMSHO5SP_CART, neogeo_samsho5sp_cart_device) -#endif +#endif // MAME_BUS_NEOGEO_KOF2K2_H diff --git a/src/devices/bus/neogeo/kof98.cpp b/src/devices/bus/neogeo/kof98.cpp index 0451ee6ae6b..c62d776bac0 100644 --- a/src/devices/bus/neogeo/kof98.cpp +++ b/src/devices/bus/neogeo/kof98.cpp @@ -13,27 +13,28 @@ //------------------------------------------------- -// neogeo_kof98_cart - constructor +// neogeo_kof98_cart_device - constructor //------------------------------------------------- -const device_type NEOGEO_KOF98_CART = device_creator; +DEFINE_DEVICE_TYPE(NEOGEO_KOF98_CART, neogeo_kof98_cart_device, "neocart_kof98", "Neo Geo KoF 98 Cart") -neogeo_kof98_cart::neogeo_kof98_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint16_t clock) : - neogeo_rom_device(mconfig, NEOGEO_KOF98_CART, "Neo Geo KOF 98 Cart", tag, owner, clock, "neocart_kof98", __FILE__), +neogeo_kof98_cart_device::neogeo_kof98_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint16_t clock) : + neogeo_rom_device(mconfig, NEOGEO_KOF98_CART, tag, owner, clock), m_prot(*this, "kof98_prot") -{} +{ +} //------------------------------------------------- // mapper specific start/reset //------------------------------------------------- -void neogeo_kof98_cart::device_start() +void neogeo_kof98_cart_device::device_start() { } -void neogeo_kof98_cart::device_reset() +void neogeo_kof98_cart_device::device_reset() { } @@ -46,12 +47,12 @@ static MACHINE_CONFIG_FRAGMENT( kof98_cart ) MCFG_KOF98_PROT_ADD("kof98_prot") MACHINE_CONFIG_END -machine_config_constructor neogeo_kof98_cart::device_mconfig_additions() const +machine_config_constructor neogeo_kof98_cart_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( kof98_cart ); } -void neogeo_kof98_cart::decrypt_all(DECRYPT_ALL_PARAMS) +void neogeo_kof98_cart_device::decrypt_all(DECRYPT_ALL_PARAMS) { m_prot->decrypt_68k(cpuregion, cpuregion_size); } diff --git a/src/devices/bus/neogeo/kof98.h b/src/devices/bus/neogeo/kof98.h index fba3e40ff38..00ee33326c6 100644 --- a/src/devices/bus/neogeo/kof98.h +++ b/src/devices/bus/neogeo/kof98.h @@ -1,23 +1,22 @@ // license:BSD-3-Clause // copyright-holders:S. Smith,David Haywood,Fabio Priuli -#ifndef __NEOGEO_KOF98_H -#define __NEOGEO_KOF98_H +#ifndef MAME_BUS_NEOGEO_KOF98_H +#define MAME_BUS_NEOGEO_KOF98_H + +#pragma once #include "slot.h" #include "rom.h" #include "prot_kof98.h" -// ======================> neogeo_kof98_cart +// ======================> neogeo_kof98_cart_device -class neogeo_kof98_cart : public neogeo_rom_device +class neogeo_kof98_cart_device : public neogeo_rom_device { public: // construction/destruction - neogeo_kof98_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint16_t clock); + neogeo_kof98_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint16_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; virtual machine_config_constructor device_mconfig_additions() const override; // reading and writing @@ -26,14 +25,15 @@ public: virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; - required_device m_prot; +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + required_device m_prot; }; - - // device type definition -extern const device_type NEOGEO_KOF98_CART; - +DECLARE_DEVICE_TYPE(NEOGEO_KOF98_CART, neogeo_kof98_cart_device) -#endif +#endif // MAME_BUS_NEOGEO_KOF98_H diff --git a/src/devices/bus/neogeo/mslugx.cpp b/src/devices/bus/neogeo/mslugx.cpp index 71af2d783d4..97790e77669 100644 --- a/src/devices/bus/neogeo/mslugx.cpp +++ b/src/devices/bus/neogeo/mslugx.cpp @@ -13,27 +13,28 @@ //------------------------------------------------- -// neogeo_mslugx_cart - constructor +// neogeo_mslugx_cart_device - constructor //------------------------------------------------- -const device_type NEOGEO_MSLUGX_CART = device_creator; +DEFINE_DEVICE_TYPE(NEOGEO_MSLUGX_CART, neogeo_mslugx_cart_device, "neocart_mslugx", "Neo Geo Metal Slug X Cart") -neogeo_mslugx_cart::neogeo_mslugx_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint16_t clock) : - neogeo_rom_device(mconfig, NEOGEO_MSLUGX_CART, "Neo Geo Metal Slug X Cart", tag, owner, clock, "neocart_mslugx", __FILE__), +neogeo_mslugx_cart_device::neogeo_mslugx_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint16_t clock) : + neogeo_rom_device(mconfig, NEOGEO_MSLUGX_CART, tag, owner, clock), m_prot(*this, "mslugx_prot") -{} +{ +} //------------------------------------------------- // mapper specific start/reset //------------------------------------------------- -void neogeo_mslugx_cart::device_start() +void neogeo_mslugx_cart_device::device_start() { } -void neogeo_mslugx_cart::device_reset() +void neogeo_mslugx_cart_device::device_reset() { } @@ -46,7 +47,7 @@ static MACHINE_CONFIG_FRAGMENT( mslugx_cart ) MCFG_MSLUGX_PROT_ADD("mslugx_prot") MACHINE_CONFIG_END -machine_config_constructor neogeo_mslugx_cart::device_mconfig_additions() const +machine_config_constructor neogeo_mslugx_cart_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( mslugx_cart ); } diff --git a/src/devices/bus/neogeo/mslugx.h b/src/devices/bus/neogeo/mslugx.h index 20a144917d9..03d1aaaa21d 100644 --- a/src/devices/bus/neogeo/mslugx.h +++ b/src/devices/bus/neogeo/mslugx.h @@ -1,37 +1,38 @@ // license:BSD-3-Clause // copyright-holders:S. Smith,David Haywood,Fabio Priuli -#ifndef __NEOGEO_MSLUGX_CART_H -#define __NEOGEO_MSLUGX_CART_H +#ifndef MAME_BUS_NEOGEO_MSLUGX_H +#define MAME_BUS_NEOGEO_MSLUGX_H + +#pragma once #include "slot.h" #include "rom.h" #include "prot_mslugx.h" -// ======================> neogeo_mslugx_cart +// ======================> neogeo_mslugx_cart_device -class neogeo_mslugx_cart : public neogeo_rom_device +class neogeo_mslugx_cart_device : public neogeo_rom_device { public: // construction/destruction - neogeo_mslugx_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint16_t clock); + neogeo_mslugx_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint16_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; virtual machine_config_constructor device_mconfig_additions() const override; // reading and writing virtual DECLARE_READ16_MEMBER(protection_r) override { return m_prot->protection_r(space, offset, mem_mask); } virtual DECLARE_WRITE16_MEMBER(protection_w) override { m_prot->protection_w(space, offset, data, mem_mask); } - required_device m_prot; +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + required_device m_prot; }; - // device type definition extern const device_type NEOGEO_MSLUGX_CART; - -#endif +#endif // MAME_BUS_NEOGEO_MSLUGX_H diff --git a/src/devices/bus/neogeo/pcm2.cpp b/src/devices/bus/neogeo/pcm2.cpp index 54ff35b8e33..bbfb8c940a1 100644 --- a/src/devices/bus/neogeo/pcm2.cpp +++ b/src/devices/bus/neogeo/pcm2.cpp @@ -13,34 +13,34 @@ //------------------------------------------------- -// neogeo_pcm2_cart - constructor +// neogeo_pcm2_cart_device - constructor //------------------------------------------------- -const device_type NEOGEO_PCM2_CART = device_creator; +DEFINE_DEVICE_TYPE(NEOGEO_PCM2_CART, neogeo_pcm2_cart_device, "neocart_pcm2", "Neo Geo PCM2 Cart") -neogeo_pcm2_cart::neogeo_pcm2_cart(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint16_t clock, const char *shortname, const char *source) : - neogeo_rom_device(mconfig, type, name, tag, owner, clock, shortname, source), +neogeo_pcm2_cart_device::neogeo_pcm2_cart_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint16_t clock) : + neogeo_rom_device(mconfig, type, tag, owner, clock), m_cmc_prot(*this, "cmc_prot"), m_pcm2_prot(*this, "pcm2_prot") -{} +{ +} -neogeo_pcm2_cart::neogeo_pcm2_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint16_t clock) : - neogeo_rom_device(mconfig, NEOGEO_PCM2_CART, "Neo Geo PCM2 Cart", tag, owner, clock, "neocart_pcm2", __FILE__), - m_cmc_prot(*this, "cmc_prot"), - m_pcm2_prot(*this, "pcm2_prot") -{} +neogeo_pcm2_cart_device::neogeo_pcm2_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint16_t clock) : + neogeo_pcm2_cart_device(mconfig, NEOGEO_PCM2_CART, tag, owner, clock) +{ +} //------------------------------------------------- // mapper specific start/reset //------------------------------------------------- -void neogeo_pcm2_cart::device_start() +void neogeo_pcm2_cart_device::device_start() { } -void neogeo_pcm2_cart::device_reset() +void neogeo_pcm2_cart_device::device_reset() { } @@ -54,7 +54,7 @@ static MACHINE_CONFIG_FRAGMENT( pcm2_cart ) MCFG_PCM2_PROT_ADD("pcm2_prot") MACHINE_CONFIG_END -machine_config_constructor neogeo_pcm2_cart::device_mconfig_additions() const +machine_config_constructor neogeo_pcm2_cart_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( pcm2_cart ); } @@ -64,13 +64,14 @@ machine_config_constructor neogeo_pcm2_cart::device_mconfig_additions() const mslug4 **************************************************/ -const device_type NEOGEO_PCM2_MSLUG4_CART = device_creator; +DEFINE_DEVICE_TYPE(NEOGEO_PCM2_MSLUG4_CART, neogeo_pcm2_mslug4_cart_device, "neocart_mslug4", "Neo Geo Metal Slug 3 PCM2 Cart") -neogeo_pcm2_mslug4_cart::neogeo_pcm2_mslug4_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - neogeo_pcm2_cart(mconfig, NEOGEO_PCM2_MSLUG4_CART, "Neo Geo Metal Slug 4 PCM2 Cart", tag, owner, clock, "neocart_mslug4", __FILE__) -{} +neogeo_pcm2_mslug4_cart_device::neogeo_pcm2_mslug4_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + neogeo_pcm2_cart_device(mconfig, NEOGEO_PCM2_MSLUG4_CART, tag, owner, clock) +{ +} -void neogeo_pcm2_mslug4_cart::decrypt_all(DECRYPT_ALL_PARAMS) +void neogeo_pcm2_mslug4_cart_device::decrypt_all(DECRYPT_ALL_PARAMS) { m_cmc_prot->cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region, audio_region_size); m_cmc_prot->cmc50_gfx_decrypt(spr_region, spr_region_size, MSLUG4_GFX_KEY); @@ -83,13 +84,14 @@ void neogeo_pcm2_mslug4_cart::decrypt_all(DECRYPT_ALL_PARAMS) ms4plus **************************************************/ -const device_type NEOGEO_PCM2_MS4PLUS_CART = device_creator; +DEFINE_DEVICE_TYPE(NEOGEO_PCM2_MS4PLUS_CART, neogeo_pcm2_ms4plus_cart_device, "neocart_ms4plus", "Neo Geo Metal Slug 4 Plus PCM2 Cart") -neogeo_pcm2_ms4plus_cart::neogeo_pcm2_ms4plus_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - neogeo_pcm2_cart(mconfig, NEOGEO_PCM2_MS4PLUS_CART, "Neo Geo Metal Slug 4 Plus PCM2 Cart", tag, owner, clock, "neocart_ms4plus", __FILE__) -{} +neogeo_pcm2_ms4plus_cart_device::neogeo_pcm2_ms4plus_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + neogeo_pcm2_cart_device(mconfig, NEOGEO_PCM2_MS4PLUS_CART, tag, owner, clock) +{ +} -void neogeo_pcm2_ms4plus_cart::decrypt_all(DECRYPT_ALL_PARAMS) +void neogeo_pcm2_ms4plus_cart_device::decrypt_all(DECRYPT_ALL_PARAMS) { m_cmc_prot->cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region, audio_region_size); m_cmc_prot->cmc50_gfx_decrypt(spr_region, spr_region_size, MSLUG4_GFX_KEY); @@ -101,13 +103,14 @@ void neogeo_pcm2_ms4plus_cart::decrypt_all(DECRYPT_ALL_PARAMS) rotd **************************************************/ -const device_type NEOGEO_PCM2_ROTD_CART = device_creator; +DEFINE_DEVICE_TYPE(NEOGEO_PCM2_ROTD_CART, neogeo_pcm2_rotd_cart_device, "neocart_rotd", "Neo Geo Rage of the Dragon PCM2 Cart") -neogeo_pcm2_rotd_cart::neogeo_pcm2_rotd_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - neogeo_pcm2_cart(mconfig, NEOGEO_PCM2_ROTD_CART, "Neo Geo Rage of the Dragon PCM2 Cart", tag, owner, clock, "neocart_rotd", __FILE__) -{} +neogeo_pcm2_rotd_cart_device::neogeo_pcm2_rotd_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + neogeo_pcm2_cart_device(mconfig, NEOGEO_PCM2_ROTD_CART, tag, owner, clock) +{ +} -void neogeo_pcm2_rotd_cart::decrypt_all(DECRYPT_ALL_PARAMS) +void neogeo_pcm2_rotd_cart_device::decrypt_all(DECRYPT_ALL_PARAMS) { m_cmc_prot->cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region, audio_region_size); m_cmc_prot->cmc50_gfx_decrypt(spr_region, spr_region_size, ROTD_GFX_KEY); @@ -119,13 +122,14 @@ void neogeo_pcm2_rotd_cart::decrypt_all(DECRYPT_ALL_PARAMS) pnyaa **************************************************/ -const device_type NEOGEO_PCM2_PNYAA_CART = device_creator; +DEFINE_DEVICE_TYPE(NEOGEO_PCM2_PNYAA_CART, neogeo_pcm2_pnyaa_cart_device, "neocart_pnyaa", "Neo Geo Pnyaa PCM2 Cart") -neogeo_pcm2_pnyaa_cart::neogeo_pcm2_pnyaa_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - neogeo_pcm2_cart(mconfig, NEOGEO_PCM2_PNYAA_CART, "Neo Geo Pnyaa PCM2 Cart", tag, owner, clock, "neocart_pnyaa", __FILE__) -{} +neogeo_pcm2_pnyaa_cart_device::neogeo_pcm2_pnyaa_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + neogeo_pcm2_cart_device(mconfig, NEOGEO_PCM2_PNYAA_CART, tag, owner, clock) +{ +} -void neogeo_pcm2_pnyaa_cart::decrypt_all(DECRYPT_ALL_PARAMS) +void neogeo_pcm2_pnyaa_cart_device::decrypt_all(DECRYPT_ALL_PARAMS) { m_cmc_prot->cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region, audio_region_size); m_cmc_prot->cmc50_gfx_decrypt(spr_region, spr_region_size, PNYAA_GFX_KEY); diff --git a/src/devices/bus/neogeo/pcm2.h b/src/devices/bus/neogeo/pcm2.h index 30d5d627842..dacb2b2de7d 100644 --- a/src/devices/bus/neogeo/pcm2.h +++ b/src/devices/bus/neogeo/pcm2.h @@ -1,100 +1,99 @@ // license:BSD-3-Clause // copyright-holders:S. Smith,David Haywood,Fabio Priuli -#ifndef __NEOGEO_PCM2_H -#define __NEOGEO_PCM2_H +#ifndef MAME_BUS_NEOGEO_PCM2_H +#define MAME_BUS_NEOGEO_PCM2_H #include "slot.h" #include "rom.h" #include "prot_cmc.h" #include "prot_pcm2.h" -// ======================> neogeo_pcm2_cart +// ======================> neogeo_pcm2_cart_device -class neogeo_pcm2_cart : public neogeo_rom_device +class neogeo_pcm2_cart_device : public neogeo_rom_device { public: // construction/destruction - neogeo_pcm2_cart(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint16_t clock, const char *shortname, const char *source); - neogeo_pcm2_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint16_t clock); + neogeo_pcm2_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint16_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; virtual machine_config_constructor device_mconfig_additions() const override; - // reading and writing -// virtual DECLARE_READ16_MEMBER(read_rom) override; + virtual void decrypt_all(DECRYPT_ALL_PARAMS) override { } + virtual int get_fixed_bank_type() override { return 0; } + +protected: + neogeo_pcm2_cart_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint16_t clock); -// virtual void activate_cart(ACTIVATE_CART_PARAMS) override { m_banked_cart->install_banks(machine, maincpu, cpuregion, cpuregion_size); } - virtual void decrypt_all(DECRYPT_ALL_PARAMS) override {} - virtual int get_fixed_bank_type(void) override { return 0; } + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; required_device m_cmc_prot; required_device m_pcm2_prot; }; // device type definition -extern const device_type NEOGEO_PCM2_CART; +DECLARE_DEVICE_TYPE(NEOGEO_PCM2_CART, neogeo_pcm2_cart_device) /************************************************* mslug4 **************************************************/ -class neogeo_pcm2_mslug4_cart : public neogeo_pcm2_cart +class neogeo_pcm2_mslug4_cart_device : public neogeo_pcm2_cart_device { public: - neogeo_pcm2_mslug4_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + neogeo_pcm2_mslug4_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; - virtual int get_fixed_bank_type(void) override { return 1; } + virtual int get_fixed_bank_type() override { return 1; } }; -extern const device_type NEOGEO_PCM2_MSLUG4_CART; +DECLARE_DEVICE_TYPE(NEOGEO_PCM2_MSLUG4_CART, neogeo_pcm2_mslug4_cart_device) /************************************************* ms4plus **************************************************/ -class neogeo_pcm2_ms4plus_cart : public neogeo_pcm2_cart +class neogeo_pcm2_ms4plus_cart_device : public neogeo_pcm2_cart_device { public: - neogeo_pcm2_ms4plus_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + neogeo_pcm2_ms4plus_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; - virtual int get_fixed_bank_type(void) override { return 0; } + virtual int get_fixed_bank_type() override { return 0; } }; -extern const device_type NEOGEO_PCM2_MS4PLUS_CART; +DECLARE_DEVICE_TYPE(NEOGEO_PCM2_MS4PLUS_CART, neogeo_pcm2_ms4plus_cart_device) /************************************************* rotd **************************************************/ -class neogeo_pcm2_rotd_cart : public neogeo_pcm2_cart +class neogeo_pcm2_rotd_cart_device : public neogeo_pcm2_cart_device { public: - neogeo_pcm2_rotd_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + neogeo_pcm2_rotd_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; - virtual int get_fixed_bank_type(void) override { return 1; } + virtual int get_fixed_bank_type() override { return 1; } }; -extern const device_type NEOGEO_PCM2_ROTD_CART; +DECLARE_DEVICE_TYPE(NEOGEO_PCM2_ROTD_CART, neogeo_pcm2_rotd_cart_device) /************************************************* pnyaa **************************************************/ -class neogeo_pcm2_pnyaa_cart : public neogeo_pcm2_cart +class neogeo_pcm2_pnyaa_cart_device : public neogeo_pcm2_cart_device { public: - neogeo_pcm2_pnyaa_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + neogeo_pcm2_pnyaa_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; - virtual int get_fixed_bank_type(void) override { return 1; } + virtual int get_fixed_bank_type() override { return 1; } }; -extern const device_type NEOGEO_PCM2_PNYAA_CART; +DECLARE_DEVICE_TYPE(NEOGEO_PCM2_PNYAA_CART, neogeo_pcm2_pnyaa_cart_device) -#endif +#endif // MAME_BUS_NEOGEO_PCM2_H diff --git a/src/devices/bus/neogeo/prot_cmc.cpp b/src/devices/bus/neogeo/prot_cmc.cpp index 98cc9ce990e..336bb543a21 100644 --- a/src/devices/bus/neogeo/prot_cmc.cpp +++ b/src/devices/bus/neogeo/prot_cmc.cpp @@ -4,11 +4,11 @@ #include "emu.h" #include "prot_cmc.h" -const device_type CMC_PROT = device_creator; +DEFINE_DEVICE_TYPE(NG_CMC_PROT, cmc_prot_device, "ng_cmc_prot", "Neo Geo CMC42/CMC40 Protection") cmc_prot_device::cmc_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, CMC_PROT, "Neo Geo CMC42 & CMC50 Protection", tag, owner, clock, "cmc_prot", __FILE__), + device_t(mconfig, NG_CMC_PROT, tag, owner, clock), type0_t03(nullptr), type0_t12(nullptr), type1_t03(nullptr), diff --git a/src/devices/bus/neogeo/prot_cmc.h b/src/devices/bus/neogeo/prot_cmc.h index 31e4262f70d..46a6a6c6766 100644 --- a/src/devices/bus/neogeo/prot_cmc.h +++ b/src/devices/bus/neogeo/prot_cmc.h @@ -1,16 +1,16 @@ // license:BSD-3-Clause // copyright-holders:S. Smith,David Haywood,Fabio Priuli +#ifndef MAME_BUS_NEOGEO_PROT_CMC_H +#define MAME_BUS_NEOGEO_PROT_CMC_H #pragma once -#ifndef __CMC_PROT__ -#define __CMC_PROT__ -extern const device_type CMC_PROT; +DECLARE_DEVICE_TYPE(NG_CMC_PROT, cmc_prot_device) #define MCFG_CMC_PROT_ADD(_tag) \ - MCFG_DEVICE_ADD(_tag, CMC_PROT, 0) + MCFG_DEVICE_ADD(_tag, NG_CMC_PROT, 0) // cmc42 #define KOF99_GFX_KEY (0x00) @@ -81,4 +81,4 @@ protected: const uint8_t *address_0_7_xor; }; -#endif +#endif // MAME_BUS_NEOGEO_PROT_CMC_H diff --git a/src/devices/bus/neogeo/prot_cthd.cpp b/src/devices/bus/neogeo/prot_cthd.cpp index 226ae50d40b..bb8e9d9ac3f 100644 --- a/src/devices/bus/neogeo/prot_cthd.cpp +++ b/src/devices/bus/neogeo/prot_cthd.cpp @@ -4,12 +4,13 @@ #include "emu.h" #include "prot_cthd.h" -const device_type CTHD_PROT = device_creator; +DEFINE_DEVICE_TYPE(NG_CTHD_PROT, cthd_prot_device, "ng_cthd_prot", "Neo Goe CTHD Protection (bootleg)") cthd_prot_device::cthd_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, CTHD_PROT, "Neo Geo CTHD Protection (Bootleg)", tag, owner, clock, "cthd_prot", __FILE__) -{} + device_t(mconfig, NG_CTHD_PROT, tag, owner, clock) +{ +} void cthd_prot_device::device_start() diff --git a/src/devices/bus/neogeo/prot_cthd.h b/src/devices/bus/neogeo/prot_cthd.h index 69b4dbfa850..455674a56c8 100644 --- a/src/devices/bus/neogeo/prot_cthd.h +++ b/src/devices/bus/neogeo/prot_cthd.h @@ -1,15 +1,15 @@ // license:BSD-3-Clause // copyright-holders:S. Smith,David Haywood,Fabio Priuli -#pragma once +#ifndef MAME_BUS_NEOGEO_PROT_CTHD_H +#define MAME_BUS_NEOGEO_PROT_CTHD_H -#ifndef __CTHD_PROT__ -#define __CTHD_PROT__ +#pragma once -extern const device_type CTHD_PROT; +DECLARE_DEVICE_TYPE(NG_CTHD_PROT, cthd_prot_device) #define MCFG_CTHD_PROT_ADD(_tag) \ - MCFG_DEVICE_ADD(_tag, CTHD_PROT, 0) + MCFG_DEVICE_ADD(_tag, NG_CTHD_PROT, 0) class cthd_prot_device : public device_t @@ -40,4 +40,4 @@ protected: virtual void device_reset() override; }; -#endif +#endif // MAME_BUS_NEOGEO_PROT_CTHD_H diff --git a/src/devices/bus/neogeo/prot_fatfury2.cpp b/src/devices/bus/neogeo/prot_fatfury2.cpp index ccf29bb3484..bfb06765c26 100644 --- a/src/devices/bus/neogeo/prot_fatfury2.cpp +++ b/src/devices/bus/neogeo/prot_fatfury2.cpp @@ -6,11 +6,11 @@ -const device_type FATFURY2_PROT = device_creator; +DEFINE_DEVICE_TYPE(NG_FATFURY2_PROT, fatfury2_prot_device, "ng_fatfury_prot", "Neo Geo Fatal Fury 2 Protection") fatfury2_prot_device::fatfury2_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, FATFURY2_PROT, "Neo Geo Fatal Fury 2 Protection", tag, owner, clock, "fatfury2_prot", __FILE__), + device_t(mconfig, NG_FATFURY2_PROT, tag, owner, clock), m_prot_data(0) { } diff --git a/src/devices/bus/neogeo/prot_fatfury2.h b/src/devices/bus/neogeo/prot_fatfury2.h index daa2d147faf..8c75e7f5d46 100644 --- a/src/devices/bus/neogeo/prot_fatfury2.h +++ b/src/devices/bus/neogeo/prot_fatfury2.h @@ -1,15 +1,15 @@ // license:BSD-3-Clause // copyright-holders:S. Smith,David Haywood,Fabio Priuli -#pragma once +#ifndef MAME_BUS_NEOGEO_PROT_FATFURY2_H +#define MAME_BUS_NEOGEO_PROT_FATFURY2_H -#ifndef __FATFURY2_PROT__ -#define __FATFURY2_PROT__ +#pragma once -extern const device_type FATFURY2_PROT; +DECLARE_DEVICE_TYPE(NG_FATFURY2_PROT, fatfury2_prot_device) #define MCFG_FATFURY2_PROT_ADD(_tag) \ - MCFG_DEVICE_ADD(_tag, FATFURY2_PROT, 0) + MCFG_DEVICE_ADD(_tag, NG_FATFURY2_PROT, 0) class fatfury2_prot_device : public device_t @@ -21,11 +21,11 @@ public: DECLARE_READ16_MEMBER( protection_r ); DECLARE_WRITE16_MEMBER( protection_w ); - uint32_t m_prot_data; - protected: virtual void device_start() override; virtual void device_reset() override; + + uint32_t m_prot_data; }; -#endif +#endif // MAME_BUS_NEOGEO_PROT_FATFURY2_H diff --git a/src/devices/bus/neogeo/prot_kof2k2.cpp b/src/devices/bus/neogeo/prot_kof2k2.cpp index a735a34e52e..75b79172d29 100644 --- a/src/devices/bus/neogeo/prot_kof2k2.cpp +++ b/src/devices/bus/neogeo/prot_kof2k2.cpp @@ -4,11 +4,11 @@ #include "emu.h" #include "prot_kof2k2.h" -const device_type KOF2002_PROT = device_creator; +DEFINE_DEVICE_TYPE(NG_KOF2002_PROT, kof2002_prot_device, "ng_kof2002_prot", "Neo Geo KoF 2002 Protection") kof2002_prot_device::kof2002_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, KOF2002_PROT, "Neo Geo KOF 2002 Protection", tag, owner, clock, "kof2002_prot", __FILE__) + : device_t(mconfig, NG_KOF2002_PROT, tag, owner, clock) { } diff --git a/src/devices/bus/neogeo/prot_kof2k2.h b/src/devices/bus/neogeo/prot_kof2k2.h index f732a1704c0..4eb764f006d 100644 --- a/src/devices/bus/neogeo/prot_kof2k2.h +++ b/src/devices/bus/neogeo/prot_kof2k2.h @@ -2,18 +2,18 @@ // copyright-holders:S. Smith,David Haywood,Fabio Priuli -#pragma once +#ifndef MAME_BUS_NEOGEO_PROT_KOF2K2_H +#define MAME_BUS_NEOGEO_PROT_KOF2K2_H -#ifndef __KOF2K2_PROT__ -#define __KOF2K2_PROT__ +#pragma once -extern const device_type KOF2002_PROT; +DECLARE_DEVICE_TYPE(NG_KOF2002_PROT, kof2002_prot_device) #define MCFG_KOF2002_PROT_ADD(_tag) \ - MCFG_DEVICE_ADD(_tag, KOF2002_PROT, 0) + MCFG_DEVICE_ADD(_tag, NG_KOF2002_PROT, 0) -class kof2002_prot_device : public device_t +class kof2002_prot_device : public device_t { public: // construction/destruction @@ -29,4 +29,4 @@ protected: virtual void device_reset() override; }; -#endif +#endif // MAME_BUS_NEOGEO_PROT_KOF2K2_H diff --git a/src/devices/bus/neogeo/prot_kof2k3bl.cpp b/src/devices/bus/neogeo/prot_kof2k3bl.cpp index bdf46df09c2..5afe9a0e548 100644 --- a/src/devices/bus/neogeo/prot_kof2k3bl.cpp +++ b/src/devices/bus/neogeo/prot_kof2k3bl.cpp @@ -4,12 +4,13 @@ #include "emu.h" #include "prot_kof2k3bl.h" -const device_type KOF2K3BL_PROT = device_creator; +DEFINE_DEVICE_TYPE(NG_KOF2K3BL_PROT, kof2k3bl_prot_device, "ng_kof2k3bl_prot", "Neo Geo KoF 2003 Bootleg Protection") kof2k3bl_prot_device::kof2k3bl_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, KOF2K3BL_PROT, "Neo Geo KOF 2003 Bootleg Protection", tag, owner, clock, "kof2k3bl_prot", __FILE__) -{} + device_t(mconfig, NG_KOF2K3BL_PROT, tag, owner, clock) +{ +} void kof2k3bl_prot_device::device_start() diff --git a/src/devices/bus/neogeo/prot_kof2k3bl.h b/src/devices/bus/neogeo/prot_kof2k3bl.h index 23bba22c89a..8520bd90716 100644 --- a/src/devices/bus/neogeo/prot_kof2k3bl.h +++ b/src/devices/bus/neogeo/prot_kof2k3bl.h @@ -1,15 +1,15 @@ // license:BSD-3-Clause // copyright-holders:S. Smith,David Haywood,Fabio Priuli -#pragma once +#ifndef MAME_BUS_NEOGEO_PROT_KOF2K3BL_H +#define MAME_BUS_NEOGEO_PROT_KOF2K3BL_H -#ifndef __KOF2K3BL_PROT__ -#define __KOF2K3BL_PROT__ +#pragma once -extern const device_type KOF2K3BL_PROT; +DECLARE_DEVICE_TYPE(NG_KOF2K3BL_PROT, kof2k3bl_prot_device) #define MCFG_KOF2K3BL_PROT_ADD(_tag) \ - MCFG_DEVICE_ADD(_tag, KOF2K3BL_PROT, 0) + MCFG_DEVICE_ADD(_tag, NG_KOF2K3BL_PROT, 0) class kof2k3bl_prot_device : public device_t @@ -37,4 +37,4 @@ private: uint16_t m_cartridge_ram[0x1000]; // bootlegs }; -#endif +#endif // MAME_BUS_NEOGEO_PROT_KOF2K3BL_H diff --git a/src/devices/bus/neogeo/prot_kof98.cpp b/src/devices/bus/neogeo/prot_kof98.cpp index bc1d1cb43ba..8003acd9918 100644 --- a/src/devices/bus/neogeo/prot_kof98.cpp +++ b/src/devices/bus/neogeo/prot_kof98.cpp @@ -5,13 +5,14 @@ #include "emu.h" #include "prot_kof98.h" -const device_type KOF98_PROT = device_creator; +DEFINE_DEVICE_TYPE(NG_KOF98_PROT, kof98_prot_device, "ng_kof98_prot", "Neo Geo KoF 98 Protection") kof98_prot_device::kof98_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, KOF98_PROT, "Neo Geo KOF 98 Protection", tag, owner, clock, "kof98_prot", __FILE__), + device_t(mconfig, NG_KOF98_PROT, tag, owner, clock), m_prot_state(0) -{} +{ +} void kof98_prot_device::device_start() diff --git a/src/devices/bus/neogeo/prot_kof98.h b/src/devices/bus/neogeo/prot_kof98.h index 76ed3386db9..ff0783e29ad 100644 --- a/src/devices/bus/neogeo/prot_kof98.h +++ b/src/devices/bus/neogeo/prot_kof98.h @@ -2,15 +2,15 @@ // copyright-holders:S. Smith,David Haywood,Fabio Priuli -#pragma once +#ifndef MAME_BUS_NEOGEO_PROT_KOF98_H +#define MAME_BUS_NEOGEO_PROT_KOF98_H -#ifndef __KOF98_PROT__ -#define __KOF98_PROT__ +#pragma once -extern const device_type KOF98_PROT; +DECLARE_DEVICE_TYPE(NG_KOF98_PROT, kof98_prot_device) #define MCFG_KOF98_PROT_ADD(_tag) \ - MCFG_DEVICE_ADD(_tag, KOF98_PROT, 0) + MCFG_DEVICE_ADD(_tag, NG_KOF98_PROT, 0) class kof98_prot_device : public device_t @@ -30,4 +30,4 @@ protected: virtual void device_reset() override; }; -#endif +#endif // MAME_BUS_NEOGEO_PROT_KOF98_H diff --git a/src/devices/bus/neogeo/prot_misc.cpp b/src/devices/bus/neogeo/prot_misc.cpp index 349d294deb6..54b9c5b8792 100644 --- a/src/devices/bus/neogeo/prot_misc.cpp +++ b/src/devices/bus/neogeo/prot_misc.cpp @@ -23,12 +23,13 @@ #include "prot_misc.h" -const device_type NEOBOOT_PROT = device_creator; +DEFINE_DEVICE_TYPE(NEOBOOT_PROT, neoboot_prot_device, "ngboot_prot", "Neo Geo Bootleg Protection(s)") neoboot_prot_device::neoboot_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, NEOBOOT_PROT, "Neo Geo Bootleg Protection(s)", tag, owner, clock, "ngboot_prot", __FILE__) -{} + device_t(mconfig, NEOBOOT_PROT, tag, owner, clock) +{ +} void neoboot_prot_device::device_start() diff --git a/src/devices/bus/neogeo/prot_misc.h b/src/devices/bus/neogeo/prot_misc.h index 85a22fd638f..f2b0c1f06d6 100644 --- a/src/devices/bus/neogeo/prot_misc.h +++ b/src/devices/bus/neogeo/prot_misc.h @@ -1,12 +1,12 @@ // license:BSD-3-Clause // copyright-holders:S. Smith,David Haywood,Fabio Priuli -#pragma once +#ifndef MAME_BUS_NEOGEO_PROT_MISC_H +#define MAME_BUS_NEOGEO_PROT_MISC_H -#ifndef __NEOBOOT_PROT__ -#define __NEOBOOT_PROT__ +#pragma once -extern const device_type NEOBOOT_PROT; +DECLARE_DEVICE_TYPE(NEOBOOT_PROT, neoboot_prot_device) #define MCFG_NEOBOOT_PROT_ADD(_tag) \ MCFG_DEVICE_ADD(_tag, NEOBOOT_PROT, 0) @@ -62,4 +62,4 @@ protected: virtual void device_reset() override; }; -#endif +#endif // MAME_BUS_NEOGEO_PROT_MISC_H diff --git a/src/devices/bus/neogeo/prot_mslugx.cpp b/src/devices/bus/neogeo/prot_mslugx.cpp index d505fea7df8..cd99a913cef 100644 --- a/src/devices/bus/neogeo/prot_mslugx.cpp +++ b/src/devices/bus/neogeo/prot_mslugx.cpp @@ -4,14 +4,15 @@ #include "emu.h" #include "prot_mslugx.h" -const device_type MSLUGX_PROT = device_creator; +DEFINE_DEVICE_TYPE(NG_MSLUGX_PROT, mslugx_prot_device, "ng_mslugx_prot", "Neo Geo Metal Slug X Protection") mslugx_prot_device::mslugx_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, MSLUGX_PROT, "Neo Geo Metal Slug X Protection", tag, owner, clock, "mslugx_prot", __FILE__), + device_t(mconfig, NG_MSLUGX_PROT, tag, owner, clock), m_counter(0), m_command(0) -{} +{ +} void mslugx_prot_device::device_start() diff --git a/src/devices/bus/neogeo/prot_mslugx.h b/src/devices/bus/neogeo/prot_mslugx.h index a18a2777f5c..91ab71e463d 100644 --- a/src/devices/bus/neogeo/prot_mslugx.h +++ b/src/devices/bus/neogeo/prot_mslugx.h @@ -1,16 +1,16 @@ // license:BSD-3-Clause // copyright-holders:S. Smith,David Haywood,Fabio Priuli +#ifndef MAME_BUS_NEOGEO_PROT_MSLUGX_H +#define MAME_BUS_NEOGEO_PROT_MSLUGX_H #pragma once -#ifndef __MSLUGX_PROT__ -#define __MSLUGX_PROT__ -extern const device_type MSLUGX_PROT; +DECLARE_DEVICE_TYPE(NG_MSLUGX_PROT, mslugx_prot_device) #define MCFG_MSLUGX_PROT_ADD(_tag) \ - MCFG_DEVICE_ADD(_tag, MSLUGX_PROT, 0) + MCFG_DEVICE_ADD(_tag, NG_MSLUGX_PROT, 0) class mslugx_prot_device : public device_t @@ -31,4 +31,4 @@ private: uint16_t m_command; }; -#endif +#endif // MAME_BUS_NEOGEO_PROT_MSLUGX_H diff --git a/src/devices/bus/neogeo/prot_pcm2.cpp b/src/devices/bus/neogeo/prot_pcm2.cpp index 01f56a8fb0a..80fa21eafe0 100644 --- a/src/devices/bus/neogeo/prot_pcm2.cpp +++ b/src/devices/bus/neogeo/prot_pcm2.cpp @@ -6,11 +6,11 @@ #include "prot_pcm2.h" -const device_type PCM2_PROT = device_creator; +DEFINE_DEVICE_TYPE(NG_PCM2_PROT, pcm2_prot_device, "ng_pcm2_prot", "Neo Geo NEOPCM2 Protection") pcm2_prot_device::pcm2_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, PCM2_PROT, "Neo Geo NEOPCM2 Protection", tag, owner, clock, "pcm2_prot", __FILE__) + : device_t(mconfig, NG_PCM2_PROT, tag, owner, clock) { } diff --git a/src/devices/bus/neogeo/prot_pcm2.h b/src/devices/bus/neogeo/prot_pcm2.h index cd06a3e06d8..666b38b4bee 100644 --- a/src/devices/bus/neogeo/prot_pcm2.h +++ b/src/devices/bus/neogeo/prot_pcm2.h @@ -1,19 +1,19 @@ // license:BSD-3-Clause // copyright-holders:S. Smith,David Haywood,Fabio Priuli +#ifndef MAME_BUS_NEOGEO_PROT_PCM2_H +#define MAME_BUS_NEOGEO_PROT_PCM2_H #pragma once -#ifndef __PCM2_PROT__ -#define __PCM2_PROT__ -extern const device_type PCM2_PROT; +DECLARE_DEVICE_TYPE(NG_PCM2_PROT, pcm2_prot_device) #define MCFG_PCM2_PROT_ADD(_tag) \ - MCFG_DEVICE_ADD(_tag, PCM2_PROT, 0) + MCFG_DEVICE_ADD(_tag, NG_PCM2_PROT, 0) -class pcm2_prot_device : public device_t +class pcm2_prot_device : public device_t { public: // construction/destruction @@ -27,4 +27,4 @@ protected: virtual void device_reset() override; }; -#endif +#endif // MAME_BUS_NEOGEO_PROT_PCM2_H diff --git a/src/devices/bus/neogeo/prot_pvc.cpp b/src/devices/bus/neogeo/prot_pvc.cpp index a07af85222d..99c70142222 100644 --- a/src/devices/bus/neogeo/prot_pvc.cpp +++ b/src/devices/bus/neogeo/prot_pvc.cpp @@ -7,12 +7,13 @@ -const device_type PVC_PROT = device_creator; +DEFINE_DEVICE_TYPE(NG_PVC_PROT, pvc_prot_device, "ng_pvc_prot", "Neo Geo PVC Protection") pvc_prot_device::pvc_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, PVC_PROT, "Neo Geo PVC Protection", tag, owner, clock, "pvc_prot", __FILE__) -{} + device_t(mconfig, NG_PVC_PROT, tag, owner, clock) +{ +} void pvc_prot_device::device_start() diff --git a/src/devices/bus/neogeo/prot_pvc.h b/src/devices/bus/neogeo/prot_pvc.h index d5bfee9bf2f..4f7d73f4020 100644 --- a/src/devices/bus/neogeo/prot_pvc.h +++ b/src/devices/bus/neogeo/prot_pvc.h @@ -1,15 +1,15 @@ // license:BSD-3-Clause // copyright-holders:S. Smith,David Haywood,Fabio Priuli -#pragma once +#ifndef MAME_BUS_NEOGEO_PROT_PVC_H +#define MAME_BUS_NEOGEO_PROT_PVC_H -#ifndef __PVC_PROT__ -#define __PVC_PROT__ +#pragma once -extern const device_type PVC_PROT; +DECLARE_DEVICE_TYPE(NG_PVC_PROT, pvc_prot_device) #define MCFG_PVC_PROT_ADD(_tag) \ - MCFG_DEVICE_ADD(_tag, PVC_PROT, 0) + MCFG_DEVICE_ADD(_tag, NG_PVC_PROT, 0) class pvc_prot_device : public device_t @@ -38,4 +38,4 @@ protected: virtual void device_reset() override; }; -#endif +#endif // MAME_BUS_NEOGEO_PROT_PVC_H diff --git a/src/devices/bus/neogeo/prot_sma.cpp b/src/devices/bus/neogeo/prot_sma.cpp index 8c4dfa169d5..1b6e2322cd9 100644 --- a/src/devices/bus/neogeo/prot_sma.cpp +++ b/src/devices/bus/neogeo/prot_sma.cpp @@ -5,13 +5,14 @@ #include "prot_sma.h" -const device_type SMA_PROT = device_creator; +DEFINE_DEVICE_TYPE(NG_SMA_PROT, sma_prot_device, "ng_sma_prot", "Neo Geo SMA Protection") sma_prot_device::sma_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, SMA_PROT, "Neo Geo SMA Protection", tag, owner, clock, "sma_prot", __FILE__), + device_t(mconfig, NG_SMA_PROT, tag, owner, clock), m_sma_rng(0) -{} +{ +} void sma_prot_device::device_start() diff --git a/src/devices/bus/neogeo/prot_sma.h b/src/devices/bus/neogeo/prot_sma.h index 1cb7d7d9e4c..040d03a08d9 100644 --- a/src/devices/bus/neogeo/prot_sma.h +++ b/src/devices/bus/neogeo/prot_sma.h @@ -1,19 +1,19 @@ // license:BSD-3-Clause // copyright-holders:S. Smith,David Haywood,Fabio Priuli +#ifndef MAME_BUS_NEOGEO_PROT_SMA_H +#define MAME_BUS_NEOGEO_PROT_SMA_H #pragma once -#ifndef __SMA_PROT__ -#define __SMA_PROT__ -extern const device_type SMA_PROT; +DECLARE_DEVICE_TYPE(NG_SMA_PROT, sma_prot_device) #define MCFG_SMA_PROT_ADD(_tag) \ - MCFG_DEVICE_ADD(_tag, SMA_PROT, 0) + MCFG_DEVICE_ADD(_tag, NG_SMA_PROT, 0) -class sma_prot_device : public device_t +class sma_prot_device : public device_t { public: // construction/destruction @@ -45,4 +45,4 @@ private: uint16_t m_sma_rng; }; -#endif +#endif // MAME_BUS_NEOGEO_PROT_SMA_H diff --git a/src/devices/bus/neogeo/pvc.cpp b/src/devices/bus/neogeo/pvc.cpp index 4830603b209..870443dca40 100644 --- a/src/devices/bus/neogeo/pvc.cpp +++ b/src/devices/bus/neogeo/pvc.cpp @@ -13,36 +13,35 @@ //------------------------------------------------- -// neogeo_pvc_cart - constructor +// neogeo_pvc_cart_device - constructor //------------------------------------------------- -const device_type NEOGEO_PVC_CART = device_creator; +DEFINE_DEVICE_TYPE(NEOGEO_PVC_CART, neogeo_pvc_cart_device, "neocart_pvc", "Neo Geo PVC Cart") -neogeo_pvc_cart::neogeo_pvc_cart(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint16_t clock, const char *shortname, const char *source) : - neogeo_rom_device(mconfig, type, name, tag, owner, clock, shortname, source), +neogeo_pvc_cart_device::neogeo_pvc_cart_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint16_t clock) : + neogeo_rom_device(mconfig, type, tag, owner, clock), m_cmc_prot(*this, "cmc_prot"), m_pcm2_prot(*this, "pcm2_prot"), m_pvc_prot(*this, "pvc_prot") -{} +{ +} -neogeo_pvc_cart::neogeo_pvc_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint16_t clock) : - neogeo_rom_device(mconfig, NEOGEO_PVC_CART, "Neo Geo PVC Cart", tag, owner, clock, "neocart_pvc", __FILE__), - m_cmc_prot(*this, "cmc_prot"), - m_pcm2_prot(*this, "pcm2_prot"), - m_pvc_prot(*this, "pvc_prot") -{} +neogeo_pvc_cart_device::neogeo_pvc_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint16_t clock) : + neogeo_pvc_cart_device(mconfig, NEOGEO_PVC_CART, tag, owner, clock) +{ +} //------------------------------------------------- // mapper specific start/reset //------------------------------------------------- -void neogeo_pvc_cart::device_start() +void neogeo_pvc_cart_device::device_start() { } -void neogeo_pvc_cart::device_reset() +void neogeo_pvc_cart_device::device_reset() { } @@ -57,7 +56,7 @@ static MACHINE_CONFIG_FRAGMENT( pvc_cart ) MCFG_PVC_PROT_ADD("pvc_prot") MACHINE_CONFIG_END -machine_config_constructor neogeo_pvc_cart::device_mconfig_additions() const +machine_config_constructor neogeo_pvc_cart_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( pvc_cart ); } @@ -69,12 +68,14 @@ machine_config_constructor neogeo_pvc_cart::device_mconfig_additions() const mslug5 **************************************************/ -const device_type NEOGEO_PVC_MSLUG5_CART = device_creator; +DEFINE_DEVICE_TYPE(NEOGEO_PVC_MSLUG5_CART, neogeo_pvc_mslug5_cart_device, "neocart_mslug5", "Neo Geo Metal Slug 5 PVC Cart") -neogeo_pvc_mslug5_cart::neogeo_pvc_mslug5_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - neogeo_pvc_cart(mconfig, NEOGEO_PVC_MSLUG5_CART, "Neo Geo Metal Slug 5 PVC Cart", tag, owner, clock, "neocart_mslug5", __FILE__) {} +neogeo_pvc_mslug5_cart_device::neogeo_pvc_mslug5_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + neogeo_pvc_cart_device(mconfig, NEOGEO_PVC_MSLUG5_CART, tag, owner, clock) +{ +} -void neogeo_pvc_mslug5_cart::decrypt_all(DECRYPT_ALL_PARAMS) +void neogeo_pvc_mslug5_cart_device::decrypt_all(DECRYPT_ALL_PARAMS) { m_pvc_prot->mslug5_decrypt_68k(cpuregion, cpuregion_size); m_pcm2_prot->swap(ym_region, ym_region_size, 2); @@ -87,13 +88,14 @@ void neogeo_pvc_mslug5_cart::decrypt_all(DECRYPT_ALL_PARAMS) svc **************************************************/ -const device_type NEOGEO_PVC_SVC_CART = device_creator; +DEFINE_DEVICE_TYPE(NEOGEO_PVC_SVC_CART, neogeo_pvc_svc_cart_device, "neocart_svc", "Neo Geo SNK vs Capcom PVC Cart") -neogeo_pvc_svc_cart::neogeo_pvc_svc_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - neogeo_pvc_cart(mconfig, NEOGEO_PVC_SVC_CART, "Neo Geo SNK vs Capcom PVC Cart", tag, owner, clock, "neocart_svc", __FILE__) -{} +neogeo_pvc_svc_cart_device::neogeo_pvc_svc_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + neogeo_pvc_cart_device(mconfig, NEOGEO_PVC_SVC_CART, tag, owner, clock) +{ +} -void neogeo_pvc_svc_cart::decrypt_all(DECRYPT_ALL_PARAMS) +void neogeo_pvc_svc_cart_device::decrypt_all(DECRYPT_ALL_PARAMS) { m_pvc_prot->svc_px_decrypt(cpuregion, cpuregion_size); m_pcm2_prot->swap(ym_region, ym_region_size, 3); @@ -107,13 +109,14 @@ void neogeo_pvc_svc_cart::decrypt_all(DECRYPT_ALL_PARAMS) kof2003 **************************************************/ -const device_type NEOGEO_PVC_KOF2003_CART = device_creator; +DEFINE_DEVICE_TYPE(NEOGEO_PVC_KOF2003_CART, neogeo_pvc_kof2003_cart_device, "neocart_kof2003", "Neo Geo KoF 2003 PVC Cart") -neogeo_pvc_kof2003_cart::neogeo_pvc_kof2003_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - neogeo_pvc_cart(mconfig, NEOGEO_PVC_KOF2003_CART, "Neo Geo KOF 2003 PVC Cart", tag, owner, clock, "neocart_kof2003", __FILE__) -{} +neogeo_pvc_kof2003_cart_device::neogeo_pvc_kof2003_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + neogeo_pvc_cart_device(mconfig, NEOGEO_PVC_KOF2003_CART, tag, owner, clock) +{ +} -void neogeo_pvc_kof2003_cart::decrypt_all(DECRYPT_ALL_PARAMS) +void neogeo_pvc_kof2003_cart_device::decrypt_all(DECRYPT_ALL_PARAMS) { m_pvc_prot->kof2003_decrypt_68k(cpuregion, cpuregion_size); m_pcm2_prot->swap(ym_region, ym_region_size, 5); @@ -126,13 +129,14 @@ void neogeo_pvc_kof2003_cart::decrypt_all(DECRYPT_ALL_PARAMS) kof2003h **************************************************/ -const device_type NEOGEO_PVC_KOF2003H_CART = device_creator; +DEFINE_DEVICE_TYPE(NEOGEO_PVC_KOF2003H_CART, neogeo_pvc_kof2003h_cart_device, "neocart_kof2003h", "Neo Geo KoF 2003 AES PVC Cart") -neogeo_pvc_kof2003h_cart::neogeo_pvc_kof2003h_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - neogeo_pvc_cart(mconfig, NEOGEO_PVC_KOF2003H_CART, "Neo Geo KOF 2003 AES PVC Cart", tag, owner, clock, "neocart_kof2003h", __FILE__) -{} +neogeo_pvc_kof2003h_cart_device::neogeo_pvc_kof2003h_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + neogeo_pvc_cart_device(mconfig, NEOGEO_PVC_KOF2003H_CART, tag, owner, clock) +{ +} -void neogeo_pvc_kof2003h_cart::decrypt_all(DECRYPT_ALL_PARAMS) +void neogeo_pvc_kof2003h_cart_device::decrypt_all(DECRYPT_ALL_PARAMS) { m_pvc_prot->kof2003h_decrypt_68k(cpuregion, cpuregion_size); m_pcm2_prot->swap(ym_region, ym_region_size, 5); diff --git a/src/devices/bus/neogeo/pvc.h b/src/devices/bus/neogeo/pvc.h index 064efef717a..89e95bfa59d 100644 --- a/src/devices/bus/neogeo/pvc.h +++ b/src/devices/bus/neogeo/pvc.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:S. Smith,David Haywood,Fabio Priuli -#ifndef __NEOGEO_PVC_H -#define __NEOGEO_PVC_H +#ifndef MAME_BUS_NEOGEO_PVC_H +#define MAME_BUS_NEOGEO_PVC_H + +#pragma once #include "slot.h" #include "rom.h" @@ -9,18 +11,14 @@ #include "prot_cmc.h" #include "prot_pvc.h" -// ======================> neogeo_pvc_cart +// ======================> neogeo_pvc_cart_device -class neogeo_pvc_cart : public neogeo_rom_device +class neogeo_pvc_cart_device : public neogeo_rom_device { public: // construction/destruction - neogeo_pvc_cart(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint16_t clock, const char *shortname, const char *source); - neogeo_pvc_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint16_t clock); + neogeo_pvc_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint16_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; virtual machine_config_constructor device_mconfig_additions() const override; // reading and writing @@ -28,8 +26,15 @@ public: virtual DECLARE_READ16_MEMBER(protection_r) override { return m_pvc_prot->protection_r(space, offset, mem_mask); } virtual DECLARE_WRITE16_MEMBER(protection_w) override { m_pvc_prot->protection_w(space, offset, data, mem_mask); } - virtual void decrypt_all(DECRYPT_ALL_PARAMS) override {} - virtual int get_fixed_bank_type(void) override { return 0; } + virtual void decrypt_all(DECRYPT_ALL_PARAMS) override { } + virtual int get_fixed_bank_type() override { return 0; } + +protected: + neogeo_pvc_cart_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint16_t clock); + + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; required_device m_cmc_prot; required_device m_pcm2_prot; @@ -38,67 +43,67 @@ public: }; // device type definition -extern const device_type NEOGEO_PVC_CART; +DECLARE_DEVICE_TYPE(NEOGEO_PVC_CART, neogeo_pvc_cart_device) /************************************************* mslug5 **************************************************/ -class neogeo_pvc_mslug5_cart : public neogeo_pvc_cart +class neogeo_pvc_mslug5_cart_device : public neogeo_pvc_cart_device { public: - neogeo_pvc_mslug5_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + neogeo_pvc_mslug5_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; - virtual int get_fixed_bank_type(void) override { return 1; } + virtual int get_fixed_bank_type() override { return 1; } }; -extern const device_type NEOGEO_PVC_MSLUG5_CART; +DECLARE_DEVICE_TYPE(NEOGEO_PVC_MSLUG5_CART, neogeo_pvc_mslug5_cart_device) /************************************************* svc **************************************************/ -class neogeo_pvc_svc_cart : public neogeo_pvc_cart +class neogeo_pvc_svc_cart_device : public neogeo_pvc_cart_device { public: - neogeo_pvc_svc_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + neogeo_pvc_svc_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; - virtual int get_fixed_bank_type(void) override { return 2; } + virtual int get_fixed_bank_type() override { return 2; } }; -extern const device_type NEOGEO_PVC_SVC_CART; +DECLARE_DEVICE_TYPE(NEOGEO_PVC_SVC_CART, neogeo_pvc_svc_cart_device) /************************************************* kof2003 **************************************************/ -class neogeo_pvc_kof2003_cart : public neogeo_pvc_cart +class neogeo_pvc_kof2003_cart_device : public neogeo_pvc_cart_device { public: - neogeo_pvc_kof2003_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + neogeo_pvc_kof2003_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; - virtual int get_fixed_bank_type(void) override { return 2; } + virtual int get_fixed_bank_type() override { return 2; } }; -extern const device_type NEOGEO_PVC_KOF2003_CART; +DECLARE_DEVICE_TYPE(NEOGEO_PVC_KOF2003_CART, neogeo_pvc_kof2003_cart_device) /************************************************* kof2003h **************************************************/ -class neogeo_pvc_kof2003h_cart : public neogeo_pvc_cart +class neogeo_pvc_kof2003h_cart_device : public neogeo_pvc_cart_device { public: - neogeo_pvc_kof2003h_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + neogeo_pvc_kof2003h_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; - virtual int get_fixed_bank_type(void) override { return 2; } + virtual int get_fixed_bank_type() override { return 2; } }; -extern const device_type NEOGEO_PVC_KOF2003H_CART; +DECLARE_DEVICE_TYPE(NEOGEO_PVC_KOF2003H_CART, neogeo_pvc_kof2003h_cart_device) -#endif +#endif // MAME_BUS_NEOGEO_PVC_H diff --git a/src/devices/bus/neogeo/rom.cpp b/src/devices/bus/neogeo/rom.cpp index e01bfbe6249..10c61858386 100644 --- a/src/devices/bus/neogeo/rom.cpp +++ b/src/devices/bus/neogeo/rom.cpp @@ -17,18 +17,19 @@ // neogeo_rom_device - constructor //------------------------------------------------- -const device_type NEOGEO_ROM = device_creator; +DEFINE_DEVICE_TYPE(NEOGEO_ROM, neogeo_rom_device, "neocart_rom", "Neo Geo Standard Carts") -neogeo_rom_device::neogeo_rom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint16_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_neogeo_cart_interface(mconfig, *this) -{} +neogeo_rom_device::neogeo_rom_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint16_t clock) : + device_t(mconfig, type, tag, owner, clock), + device_neogeo_cart_interface(mconfig, *this) +{ +} neogeo_rom_device::neogeo_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint16_t clock) : - device_t(mconfig, NEOGEO_ROM, "Neo Geo Standard Carts", tag, owner, clock, "neocart_rom", __FILE__), - device_neogeo_cart_interface(mconfig, *this) -{} + neogeo_rom_device(mconfig, NEOGEO_ROM, tag, owner, clock) +{ +} //------------------------------------------------- @@ -69,19 +70,20 @@ WRITE16_MEMBER(neogeo_rom_device::banksel_w) V-Liner : this is plain NeoGeo cart + RAM **************************************************/ -const device_type NEOGEO_VLINER_CART = device_creator; +DEFINE_DEVICE_TYPE(NEOGEO_VLINER_CART, neogeo_vliner_cart_device, "neocart_vliner", "Neo Geo V-Liner Cart") -neogeo_vliner_cart::neogeo_vliner_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - neogeo_rom_device(mconfig, NEOGEO_VLINER_CART, "Neo Geo V-Liner Cart", tag, owner, clock, "neocart_vliner", __FILE__) -{} +neogeo_vliner_cart_device::neogeo_vliner_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + neogeo_rom_device(mconfig, NEOGEO_VLINER_CART, tag, owner, clock) +{ +} -void neogeo_vliner_cart::device_start() +void neogeo_vliner_cart_device::device_start() { save_item(NAME(m_cart_ram)); } -void neogeo_vliner_cart::device_reset() +void neogeo_vliner_cart_device::device_reset() { memset(m_cart_ram, 0, 0x2000); } diff --git a/src/devices/bus/neogeo/rom.h b/src/devices/bus/neogeo/rom.h index 600db5cc7fe..17efc4da4a7 100644 --- a/src/devices/bus/neogeo/rom.h +++ b/src/devices/bus/neogeo/rom.h @@ -1,33 +1,36 @@ // license:BSD-3-Clause // copyright-holders:S. Smith,David Haywood,Fabio Priuli -#ifndef __NEOGEO_ROM_H -#define __NEOGEO_ROM_H +#ifndef MAME_BUS_NEOGEO_ROM_H +#define MAME_BUS_NEOGEO_ROM_H + +#pragma once #include "slot.h" // ======================> neogeo_rom_device -class neogeo_rom_device : public device_t, - public device_neogeo_cart_interface +class neogeo_rom_device : public device_t, public device_neogeo_cart_interface { public: // construction/destruction - neogeo_rom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint16_t clock, const char *shortname, const char *source); neogeo_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint16_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - // reading and writing virtual DECLARE_READ16_MEMBER(rom_r) override; virtual DECLARE_WRITE16_MEMBER(banksel_w) override; + +protected: + neogeo_rom_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint16_t clock); + + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; }; // device type definition -extern const device_type NEOGEO_ROM; +DECLARE_DEVICE_TYPE(NEOGEO_ROM, neogeo_rom_device) @@ -35,16 +38,17 @@ extern const device_type NEOGEO_ROM; vliner **************************************************/ -class neogeo_vliner_cart : public neogeo_rom_device +class neogeo_vliner_cart_device : public neogeo_rom_device { public: - neogeo_vliner_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + neogeo_vliner_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual DECLARE_READ16_MEMBER(ram_r) override { return m_cart_ram[offset]; } virtual DECLARE_WRITE16_MEMBER(ram_w) override { COMBINE_DATA(&m_cart_ram[offset]); } - virtual int get_fixed_bank_type(void) override { return 0; } + virtual int get_fixed_bank_type() override { return 0; } +protected: virtual void device_start() override; virtual void device_reset() override; @@ -52,7 +56,7 @@ private: uint16_t m_cart_ram[0x1000]; }; -extern const device_type NEOGEO_VLINER_CART; +DECLARE_DEVICE_TYPE(NEOGEO_VLINER_CART, neogeo_vliner_cart_device) -#endif +#endif // MAME_BUS_NEOGEO_ROM_H diff --git a/src/devices/bus/neogeo/sbp.cpp b/src/devices/bus/neogeo/sbp.cpp index 82b6ef897c4..f5c25a2210a 100644 --- a/src/devices/bus/neogeo/sbp.cpp +++ b/src/devices/bus/neogeo/sbp.cpp @@ -14,24 +14,25 @@ #include "emu.h" #include "sbp.h" -const device_type NEOGEO_SBP_CART = device_creator; +DEFINE_DEVICE_TYPE(NEOGEO_SBP_CART, neogeo_sbp_cart_device, "neocart_sbp", "Neo Geo Super Bubble Pop Cart") -neogeo_sbp_cart::neogeo_sbp_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - neogeo_rom_device(mconfig, NEOGEO_SBP_CART, "Neo Geo Super Bubble Pop Cart", tag, owner, clock, "neocart_sbp", __FILE__) -{} +neogeo_sbp_cart_device::neogeo_sbp_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + neogeo_rom_device(mconfig, NEOGEO_SBP_CART, tag, owner, clock) +{ +} -void neogeo_sbp_cart::device_start() +void neogeo_sbp_cart_device::device_start() { } -void neogeo_sbp_cart::device_reset() +void neogeo_sbp_cart_device::device_reset() { } -READ16_MEMBER( neogeo_sbp_cart::protection_r ) +READ16_MEMBER( neogeo_sbp_cart_device::protection_r ) { uint16_t* rom = (get_rom_size()) ? get_rom_base() : get_region_rom_base(); uint16_t origdata = rom[offset + (0x200/2)]; @@ -48,7 +49,7 @@ READ16_MEMBER( neogeo_sbp_cart::protection_r ) } -WRITE16_MEMBER( neogeo_sbp_cart::protection_w ) +WRITE16_MEMBER( neogeo_sbp_cart_device::protection_w ) { int realoffset = 0x200 + (offset * 2); @@ -71,7 +72,7 @@ WRITE16_MEMBER( neogeo_sbp_cart::protection_w ) } -void neogeo_sbp_cart::patch(uint8_t* cpurom, uint32_t cpurom_size) +void neogeo_sbp_cart_device::patch(uint8_t* cpurom, uint32_t cpurom_size) { /* the game code clears the text overlay used ingame immediately after writing it.. why? protection? sloppy code that the hw ignores? imperfect emulation? */ uint16_t* rom = (uint16_t*)cpurom; @@ -81,7 +82,7 @@ void neogeo_sbp_cart::patch(uint8_t* cpurom, uint32_t cpurom_size) rom[0x2a6fc/2] = 0x4e71; } -void neogeo_sbp_cart::decrypt_all(DECRYPT_ALL_PARAMS) +void neogeo_sbp_cart_device::decrypt_all(DECRYPT_ALL_PARAMS) { patch(cpuregion, cpuregion_size); } diff --git a/src/devices/bus/neogeo/sbp.h b/src/devices/bus/neogeo/sbp.h index e6cf0e9aa77..455c7892399 100644 --- a/src/devices/bus/neogeo/sbp.h +++ b/src/devices/bus/neogeo/sbp.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:S. Smith,David Haywood,Fabio Priuli -#pragma once +#ifndef MAME_BUS_NEOGEO_SBP_H +#define MAME_BUS_NEOGEO_SBP_H -#ifndef __NEOGEO_BOOTSBP_H -#define __NEOGEO_BOOTSBP_H +#pragma once #include "slot.h" #include "rom.h" @@ -12,24 +12,25 @@ sbp **************************************************/ -class neogeo_sbp_cart : public neogeo_rom_device +class neogeo_sbp_cart_device : public neogeo_rom_device { public: - neogeo_sbp_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - - virtual void device_start() override; - virtual void device_reset() override; + neogeo_sbp_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual DECLARE_WRITE16_MEMBER(protection_w) override; virtual DECLARE_READ16_MEMBER(protection_r) override; virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; - virtual int get_fixed_bank_type(void) override { return 0; } + virtual int get_fixed_bank_type() override { return 0; } + +protected: + virtual void device_start() override; + virtual void device_reset() override; void patch(uint8_t* cpurom, uint32_t cpurom_size); }; -extern const device_type NEOGEO_SBP_CART; +DECLARE_DEVICE_TYPE(NEOGEO_SBP_CART, neogeo_sbp_cart_device) -#endif +#endif // MAME_BUS_NEOGEO_SBP_H diff --git a/src/devices/bus/neogeo/slot.cpp b/src/devices/bus/neogeo/slot.cpp index 6f014111e9c..df57d410ea7 100644 --- a/src/devices/bus/neogeo/slot.cpp +++ b/src/devices/bus/neogeo/slot.cpp @@ -13,7 +13,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type NEOGEO_CART_SLOT = device_creator; +DEFINE_DEVICE_TYPE(NEOGEO_CART_SLOT, neogeo_cart_slot_device, "neogeo_cart_slot", "Neo Geo Cartridge Slot") //------------------------------------------------- @@ -98,10 +98,10 @@ void device_neogeo_cart_interface::optimize_sprites(uint8_t* region_sprites, uin // neogeo_cart_slot_device - constructor //------------------------------------------------- neogeo_cart_slot_device::neogeo_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint16_t clock) : - device_t(mconfig, NEOGEO_CART_SLOT, "Neo Geo Cartridge Slot", tag, owner, clock, "neogeo_cart_slot", __FILE__), - device_image_interface(mconfig, *this), - device_slot_interface(mconfig, *this), - m_cart(nullptr) + device_t(mconfig, NEOGEO_CART_SLOT, tag, owner, clock), + device_image_interface(mconfig, *this), + device_slot_interface(mconfig, *this), + m_cart(nullptr) { } diff --git a/src/devices/bus/neogeo/slot.h b/src/devices/bus/neogeo/slot.h index 9d1c3cc7424..a90c529eea9 100644 --- a/src/devices/bus/neogeo/slot.h +++ b/src/devices/bus/neogeo/slot.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:S. Smith,David Haywood,Fabio Priuli -#ifndef __NEOGEO_SLOT_H -#define __NEOGEO_SLOT_H +#ifndef MAME_BUS_NEOGEO_SLOT_H +#define MAME_BUS_NEOGEO_SLOT_H + +#pragma once #include "softlist_dev.h" @@ -86,7 +88,6 @@ class device_neogeo_cart_interface : public device_slot_card_interface { public: // construction/destruction - device_neogeo_cart_interface(const machine_config &mconfig, device_t &device); virtual ~device_neogeo_cart_interface(); // reading from ROM @@ -102,7 +103,7 @@ public: virtual uint16_t get_helper() { return 0; } virtual void decrypt_all(DECRYPT_ALL_PARAMS) { }; - virtual int get_fixed_bank_type(void) { return 0; } + virtual int get_fixed_bank_type() { return 0; } void rom_alloc(uint32_t size) { m_rom.resize(size/sizeof(uint16_t)); } uint16_t* get_rom_base() { return m_rom.size() > 0 ? &m_rom[0] : nullptr; } @@ -154,6 +155,8 @@ public: void optimize_sprites(uint8_t* region_sprites, uint32_t region_sprites_size); protected: + device_neogeo_cart_interface(const machine_config &mconfig, device_t &device); + // these are allocated when loading from softlist std::vector m_rom; std::vector m_fixed; @@ -189,9 +192,6 @@ public: neogeo_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint16_t clock); virtual ~neogeo_cart_slot_device(); - // device-level overrides - virtual void device_start() override; - // image-level overrides virtual image_init_result call_load() override; virtual void call_unload() override; @@ -306,17 +306,13 @@ public: return 0; } - uint8_t* get_sprites_opt_base() { - if (m_cart) return m_cart->get_sprites_opt_base(); else return nullptr; - } - uint32_t get_sprites_opt_size() { - if (m_cart) return m_cart->get_sprites_opt_size(); else return 0; - } + uint8_t* get_sprites_opt_base() { return m_cart ? m_cart->get_sprites_opt_base() : nullptr; } + uint32_t get_sprites_opt_size() { return m_cart ? m_cart->get_sprites_opt_size() : 0; } - int get_fixed_bank_type(void) { if (m_cart) return m_cart->get_fixed_bank_type(); return 0; } - uint32_t get_bank_base(uint16_t sel) { if (m_cart) return m_cart->get_bank_base(sel); return 0; } - uint32_t get_special_bank() { if (m_cart) return m_cart->get_special_bank(); return 0; } - uint16_t get_helper() { if (m_cart) return m_cart->get_helper(); return 0; } + int get_fixed_bank_type() { return m_cart ? m_cart->get_fixed_bank_type() : 0; } + uint32_t get_bank_base(uint16_t sel) { return m_cart ? m_cart->get_bank_base(sel) : 0; } + uint32_t get_special_bank() { return m_cart ? m_cart->get_special_bank() : 0; } + uint16_t get_helper() { return m_cart ? m_cart->get_helper() : 0; } void late_decrypt_all() { if (m_cart) m_cart->decrypt_all( (uint8_t*)get_rom_base(), get_rom_size(), @@ -328,6 +324,10 @@ public: get_audiocrypt_base(), get_audiocrypt_size()); } +protected: + // device-level overrides + virtual void device_start() override; + private: int m_type; device_neogeo_cart_interface* m_cart; @@ -335,7 +335,7 @@ private: // device type definition -extern const device_type NEOGEO_CART_SLOT; +DECLARE_DEVICE_TYPE(NEOGEO_CART_SLOT, neogeo_cart_slot_device) /*************************************************************************** @@ -348,4 +348,4 @@ extern const device_type NEOGEO_CART_SLOT; MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, false) -#endif +#endif // MAME_BUS_NEOGEO_SLOT_H diff --git a/src/devices/bus/neogeo/sma.cpp b/src/devices/bus/neogeo/sma.cpp index 4c2beb8c9b4..8f7e1dc015f 100644 --- a/src/devices/bus/neogeo/sma.cpp +++ b/src/devices/bus/neogeo/sma.cpp @@ -12,35 +12,40 @@ #include "sma.h" -//------------------------------------------------- -// neogeo_sma_cart - constructor -//------------------------------------------------- +DEFINE_DEVICE_TYPE(NEOGEO_SMA_CART, neogeo_sma_cart_device, "neocart_sma", "Neo Geo SMA Cart") +DEFINE_DEVICE_TYPE(NEOGEO_SMA_KOF99_CART, neogeo_sma_kof99_cart_device, "neocart_kof99", "Neo Geo KoF 99 SMA Cart") +DEFINE_DEVICE_TYPE(NEOGEO_SMA_GAROU_CART, neogeo_sma_garou_cart_device, "neocart_garou", "Neo Geo Garou SMA Cart") +DEFINE_DEVICE_TYPE(NEOGEO_SMA_GAROUH_CART, neogeo_sma_garouh_cart_device, "neocart_garouh", "Neo Geo Garou AES SMA Cart") +DEFINE_DEVICE_TYPE(NEOGEO_SMA_MSLUG3_CART, neogeo_sma_mslug3_cart_device, "neocart_mslug3", "Neo Geo Metal Slug 3 SMA Cart") +DEFINE_DEVICE_TYPE(NEOGEO_SMA_KOF2000_CART, neogeo_sma_kof2000_cart_device, "neocart_kof2000", "Neo Geo KoF 2000 SMA Cart") -const device_type NEOGEO_SMA_CART = device_creator; +//------------------------------------------------- +// neogeo_sma_cart_device - constructor +//------------------------------------------------- -neogeo_sma_cart::neogeo_sma_cart(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint16_t clock, const char *shortname, const char *source) : - neogeo_rom_device(mconfig, type, name, tag, owner, clock, shortname, source), +neogeo_sma_cart_device::neogeo_sma_cart_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint16_t clock) : + neogeo_rom_device(mconfig, type, tag, owner, clock), m_sma_prot(*this, "sma_prot"), m_cmc_prot(*this, "cmc_prot") -{} +{ +} -neogeo_sma_cart::neogeo_sma_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint16_t clock) : - neogeo_rom_device(mconfig, NEOGEO_SMA_CART, "Neo Geo SMA Cart", tag, owner, clock, "neocart_sma", __FILE__), - m_sma_prot(*this, "sma_prot"), - m_cmc_prot(*this, "cmc_prot") -{} +neogeo_sma_cart_device::neogeo_sma_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint16_t clock) : + neogeo_sma_cart_device(mconfig, NEOGEO_SMA_CART, tag, owner, clock) +{ +} //------------------------------------------------- // mapper specific start/reset //------------------------------------------------- -void neogeo_sma_cart::device_start() +void neogeo_sma_cart_device::device_start() { } -void neogeo_sma_cart::device_reset() +void neogeo_sma_cart_device::device_reset() { } @@ -54,7 +59,7 @@ static MACHINE_CONFIG_FRAGMENT( sma_cart ) MCFG_CMC_PROT_ADD("cmc_prot") MACHINE_CONFIG_END -machine_config_constructor neogeo_sma_cart::device_mconfig_additions() const +machine_config_constructor neogeo_sma_cart_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( sma_cart ); } @@ -64,13 +69,12 @@ machine_config_constructor neogeo_sma_cart::device_mconfig_additions() const kof99 **************************************************/ -const device_type NEOGEO_SMA_KOF99_CART = device_creator; - -neogeo_sma_kof99_cart::neogeo_sma_kof99_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - neogeo_sma_cart(mconfig, NEOGEO_SMA_KOF99_CART, "Neo Geo KOF 99 SMA Cart", tag, owner, clock, "neocart_kof99", __FILE__) -{} +neogeo_sma_kof99_cart_device::neogeo_sma_kof99_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + neogeo_sma_cart_device(mconfig, NEOGEO_SMA_KOF99_CART, tag, owner, clock) +{ +} -void neogeo_sma_kof99_cart::decrypt_all(DECRYPT_ALL_PARAMS) +void neogeo_sma_kof99_cart_device::decrypt_all(DECRYPT_ALL_PARAMS) { m_sma_prot->kof99_decrypt_68k(cpuregion); m_cmc_prot->cmc42_gfx_decrypt(spr_region, spr_region_size, KOF99_GFX_KEY); @@ -82,13 +86,12 @@ void neogeo_sma_kof99_cart::decrypt_all(DECRYPT_ALL_PARAMS) garou **************************************************/ -const device_type NEOGEO_SMA_GAROU_CART = device_creator; - -neogeo_sma_garou_cart::neogeo_sma_garou_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - neogeo_sma_cart(mconfig, NEOGEO_SMA_GAROU_CART, "Neo Geo Garou SMA Cart", tag, owner, clock, "neocart_garou", __FILE__) -{} +neogeo_sma_garou_cart_device::neogeo_sma_garou_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + neogeo_sma_cart_device(mconfig, NEOGEO_SMA_GAROU_CART, tag, owner, clock) +{ +} -void neogeo_sma_garou_cart::decrypt_all(DECRYPT_ALL_PARAMS) +void neogeo_sma_garou_cart_device::decrypt_all(DECRYPT_ALL_PARAMS) { m_sma_prot->garou_decrypt_68k(cpuregion); m_cmc_prot->cmc42_gfx_decrypt(spr_region, spr_region_size, GAROU_GFX_KEY); @@ -100,13 +103,12 @@ void neogeo_sma_garou_cart::decrypt_all(DECRYPT_ALL_PARAMS) garouh **************************************************/ -const device_type NEOGEO_SMA_GAROUH_CART = device_creator; - -neogeo_sma_garouh_cart::neogeo_sma_garouh_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - neogeo_sma_cart(mconfig, NEOGEO_SMA_GAROUH_CART, "Neo Geo Garou AES SMA Cart", tag, owner, clock, "neocart_garouh", __FILE__) -{} +neogeo_sma_garouh_cart_device::neogeo_sma_garouh_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + neogeo_sma_cart_device(mconfig, NEOGEO_SMA_GAROUH_CART, tag, owner, clock) +{ +} -void neogeo_sma_garouh_cart::decrypt_all(DECRYPT_ALL_PARAMS) +void neogeo_sma_garouh_cart_device::decrypt_all(DECRYPT_ALL_PARAMS) { m_sma_prot->garouh_decrypt_68k(cpuregion); m_cmc_prot->cmc42_gfx_decrypt(spr_region, spr_region_size, GAROU_GFX_KEY); @@ -118,13 +120,12 @@ void neogeo_sma_garouh_cart::decrypt_all(DECRYPT_ALL_PARAMS) mslug3 **************************************************/ -const device_type NEOGEO_SMA_MSLUG3_CART = device_creator; - -neogeo_sma_mslug3_cart::neogeo_sma_mslug3_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - neogeo_sma_cart(mconfig, NEOGEO_SMA_MSLUG3_CART, "Neo Geo Metal Slug 3 SMA Cart", tag, owner, clock, "neocart_mslug3", __FILE__) -{} +neogeo_sma_mslug3_cart_device::neogeo_sma_mslug3_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + neogeo_sma_cart_device(mconfig, NEOGEO_SMA_MSLUG3_CART, tag, owner, clock) +{ +} -void neogeo_sma_mslug3_cart::decrypt_all(DECRYPT_ALL_PARAMS) +void neogeo_sma_mslug3_cart_device::decrypt_all(DECRYPT_ALL_PARAMS) { m_sma_prot->mslug3_decrypt_68k(cpuregion); m_cmc_prot->cmc42_gfx_decrypt(spr_region, spr_region_size, MSLUG3_GFX_KEY); @@ -136,13 +137,12 @@ void neogeo_sma_mslug3_cart::decrypt_all(DECRYPT_ALL_PARAMS) kof2000 **************************************************/ -const device_type NEOGEO_SMA_KOF2000_CART = device_creator; - -neogeo_sma_kof2000_cart::neogeo_sma_kof2000_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - neogeo_sma_cart(mconfig, NEOGEO_SMA_KOF2000_CART, "Neo Geo KOF 2000 SMA Cart", tag, owner, clock, "neocart_kof2000", __FILE__) -{} +neogeo_sma_kof2000_cart_device::neogeo_sma_kof2000_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + neogeo_sma_cart_device(mconfig, NEOGEO_SMA_KOF2000_CART, tag, owner, clock) +{ +} -void neogeo_sma_kof2000_cart::decrypt_all(DECRYPT_ALL_PARAMS) +void neogeo_sma_kof2000_cart_device::decrypt_all(DECRYPT_ALL_PARAMS) { m_sma_prot->kof2000_decrypt_68k(cpuregion); m_cmc_prot->cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region, audio_region_size); diff --git a/src/devices/bus/neogeo/sma.h b/src/devices/bus/neogeo/sma.h index 6c1631b4cea..8e9ee1d47a6 100644 --- a/src/devices/bus/neogeo/sma.h +++ b/src/devices/bus/neogeo/sma.h @@ -1,25 +1,21 @@ // license:BSD-3-Clause // copyright-holders:S. Smith,David Haywood,Fabio Priuli -#ifndef __NEOGEO_SMA_H -#define __NEOGEO_SMA_H +#ifndef MAME_BUS_NEOGEO_SMA_H +#define MAME_BUS_NEOGEO_SMA_H #include "slot.h" #include "rom.h" #include "prot_sma.h" #include "prot_cmc.h" -// ======================> neogeo_sma_cart +// ======================> neogeo_sma_cart_device -class neogeo_sma_cart : public neogeo_rom_device +class neogeo_sma_cart_device : public neogeo_rom_device { public: // construction/destruction - neogeo_sma_cart(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint16_t clock, const char *shortname, const char *source); - neogeo_sma_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint16_t clock); + neogeo_sma_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint16_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; virtual machine_config_constructor device_mconfig_additions() const override; // reading and writing @@ -28,96 +24,101 @@ public: virtual uint32_t get_bank_base(uint16_t sel) override { return 0; } virtual void decrypt_all(DECRYPT_ALL_PARAMS) override {} - virtual int get_fixed_bank_type(void) override { return 0; } + virtual int get_fixed_bank_type() override { return 0; } + +protected: + neogeo_sma_cart_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint16_t clock); + + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; required_device m_sma_prot; required_device m_cmc_prot; }; - - // device type definition -extern const device_type NEOGEO_SMA_CART; +DECLARE_DEVICE_TYPE(NEOGEO_SMA_CART, neogeo_sma_cart_device) /************************************************* kof99 **************************************************/ -class neogeo_sma_kof99_cart : public neogeo_sma_cart +class neogeo_sma_kof99_cart_device : public neogeo_sma_cart_device { public: - neogeo_sma_kof99_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + neogeo_sma_kof99_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; - virtual int get_fixed_bank_type(void) override { return 1; } + virtual int get_fixed_bank_type() override { return 1; } virtual uint32_t get_bank_base(uint16_t sel) override { return m_sma_prot->kof99_bank_base(sel); } }; -extern const device_type NEOGEO_SMA_KOF99_CART; +DECLARE_DEVICE_TYPE(NEOGEO_SMA_KOF99_CART, neogeo_sma_kof99_cart_device) /************************************************* garou **************************************************/ -class neogeo_sma_garou_cart : public neogeo_sma_cart +class neogeo_sma_garou_cart_device : public neogeo_sma_cart_device { public: - neogeo_sma_garou_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + neogeo_sma_garou_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; - virtual int get_fixed_bank_type(void) override { return 1; } + virtual int get_fixed_bank_type() override { return 1; } virtual uint32_t get_bank_base(uint16_t sel) override { return m_sma_prot->garou_bank_base(sel); } }; -extern const device_type NEOGEO_SMA_GAROU_CART; +DECLARE_DEVICE_TYPE(NEOGEO_SMA_GAROU_CART, neogeo_sma_garou_cart_device) /************************************************* garouh **************************************************/ -class neogeo_sma_garouh_cart : public neogeo_sma_cart +class neogeo_sma_garouh_cart_device : public neogeo_sma_cart_device { public: - neogeo_sma_garouh_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + neogeo_sma_garouh_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; - virtual int get_fixed_bank_type(void) override { return 1; } + virtual int get_fixed_bank_type() override { return 1; } virtual uint32_t get_bank_base(uint16_t sel) override { return m_sma_prot->garouh_bank_base(sel); } }; -extern const device_type NEOGEO_SMA_GAROUH_CART; +DECLARE_DEVICE_TYPE(NEOGEO_SMA_GAROUH_CART, neogeo_sma_garouh_cart_device) /************************************************* mslug3 **************************************************/ -class neogeo_sma_mslug3_cart : public neogeo_sma_cart +class neogeo_sma_mslug3_cart_device : public neogeo_sma_cart_device { public: - neogeo_sma_mslug3_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + neogeo_sma_mslug3_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; - virtual int get_fixed_bank_type(void) override { return 1; } + virtual int get_fixed_bank_type() override { return 1; } virtual uint32_t get_bank_base(uint16_t sel) override { return m_sma_prot->mslug3_bank_base(sel); } }; -extern const device_type NEOGEO_SMA_MSLUG3_CART; +DECLARE_DEVICE_TYPE(NEOGEO_SMA_MSLUG3_CART, neogeo_sma_mslug3_cart_device) /************************************************* kof2000 **************************************************/ -class neogeo_sma_kof2000_cart : public neogeo_sma_cart +class neogeo_sma_kof2000_cart_device : public neogeo_sma_cart_device { public: - neogeo_sma_kof2000_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + neogeo_sma_kof2000_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual void decrypt_all(DECRYPT_ALL_PARAMS) override; - virtual int get_fixed_bank_type(void) override { return 2; } + virtual int get_fixed_bank_type() override { return 2; } virtual uint32_t get_bank_base(uint16_t sel) override { return m_sma_prot->kof2000_bank_base(sel); } }; -extern const device_type NEOGEO_SMA_KOF2000_CART; +DECLARE_DEVICE_TYPE(NEOGEO_SMA_KOF2000_CART, neogeo_sma_kof2000_cart_device) -#endif +#endif // MAME_BUS_NEOGEO_SMA_H diff --git a/src/devices/bus/neogeo_ctrl/ctrl.cpp b/src/devices/bus/neogeo_ctrl/ctrl.cpp index 870f830c4d1..4fb9914adb8 100644 --- a/src/devices/bus/neogeo_ctrl/ctrl.cpp +++ b/src/devices/bus/neogeo_ctrl/ctrl.cpp @@ -18,6 +18,7 @@ #include "emu.h" #include "ctrl.h" + // slot devices #include "joystick.h" #include "mahjong.h" @@ -30,8 +31,8 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type NEOGEO_CONTROL_PORT = device_creator; -const device_type NEOGEO_CTRL_EDGE_CONNECTOR = device_creator; +DEFINE_DEVICE_TYPE(NEOGEO_CONTROL_PORT, neogeo_control_port_device, "neogeo_control_port", "SNK Neo Geo controller port") +DEFINE_DEVICE_TYPE(NEOGEO_CTRL_EDGE_CONNECTOR, neogeo_ctrl_edge_port_device, "neogeo_ctrl_edge", "SNK Neo Geo Edge Connector (Controller)") //************************************************************************** @@ -86,8 +87,9 @@ device_neogeo_ctrl_edge_interface::~device_neogeo_ctrl_edge_interface() //------------------------------------------------- neogeo_control_port_device::neogeo_control_port_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, NEOGEO_CONTROL_PORT, "SNK Neo Geo control port", tag, owner, clock, "neogeo_control_port", __FILE__), - device_slot_interface(mconfig, *this), m_device(nullptr) + device_t(mconfig, NEOGEO_CONTROL_PORT, tag, owner, clock), + device_slot_interface(mconfig, *this), + m_device(nullptr) { } @@ -140,8 +142,9 @@ void neogeo_control_port_device::write_ctrlsel(uint8_t data) //------------------------------------------------- neogeo_ctrl_edge_port_device::neogeo_ctrl_edge_port_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, NEOGEO_CTRL_EDGE_CONNECTOR, "SNK Neo Geo Edge Connector (Controller)", tag, owner, clock, "neogeo_ctrl_edge", __FILE__), - device_slot_interface(mconfig, *this), m_device(nullptr) + device_t(mconfig, NEOGEO_CTRL_EDGE_CONNECTOR, tag, owner, clock), + device_slot_interface(mconfig, *this), + m_device(nullptr) { } diff --git a/src/devices/bus/neogeo_ctrl/ctrl.h b/src/devices/bus/neogeo_ctrl/ctrl.h index c4450d4a5ee..53ee9c53713 100644 --- a/src/devices/bus/neogeo_ctrl/ctrl.h +++ b/src/devices/bus/neogeo_ctrl/ctrl.h @@ -6,12 +6,11 @@ **********************************************************************/ +#ifndef MAME_BUS_NEOGEO_CTRL_CTRL_H +#define MAME_BUS_NEOGEO_CTRL_CTRL_H #pragma once -#ifndef __NEOGEO_CONTROL_PORT__ -#define __NEOGEO_CONTROL_PORT__ - //************************************************************************** // TYPE DEFINITIONS @@ -26,21 +25,21 @@ class device_neogeo_control_port_interface : public device_slot_card_interface { public: // construction/destruction - device_neogeo_control_port_interface(const machine_config &mconfig, device_t &device); virtual ~device_neogeo_control_port_interface(); - virtual uint8_t read_ctrl() { return 0xff; }; - virtual uint8_t read_start_sel() { return 0xff; }; - virtual void write_ctrlsel(uint8_t data) { }; + virtual uint8_t read_ctrl() { return 0xff; } + virtual uint8_t read_start_sel() { return 0xff; } + virtual void write_ctrlsel(uint8_t data) { } protected: + device_neogeo_control_port_interface(const machine_config &mconfig, device_t &device); + neogeo_control_port_device *m_port; }; // ======================> neogeo_control_port_device -class neogeo_control_port_device : public device_t, - public device_slot_interface +class neogeo_control_port_device : public device_t, public device_slot_interface { public: // construction/destruction @@ -66,7 +65,6 @@ class device_neogeo_ctrl_edge_interface : public device_slot_card_interface { public: // construction/destruction - device_neogeo_ctrl_edge_interface(const machine_config &mconfig, device_t &device); virtual ~device_neogeo_ctrl_edge_interface(); virtual uint8_t read_start_sel() { return 0xff; } @@ -75,13 +73,14 @@ public: virtual void write_ctrlsel(uint8_t data) { } protected: + device_neogeo_ctrl_edge_interface(const machine_config &mconfig, device_t &device); + neogeo_ctrl_edge_port_device *m_port; }; // ======================> neogeo_ctrl_edge_port_device -class neogeo_ctrl_edge_port_device : public device_t, - public device_slot_interface +class neogeo_ctrl_edge_port_device : public device_t, public device_slot_interface { public: // construction/destruction @@ -102,8 +101,8 @@ protected: // device type definition -extern const device_type NEOGEO_CONTROL_PORT; -extern const device_type NEOGEO_CTRL_EDGE_CONNECTOR; +DECLARE_DEVICE_TYPE(NEOGEO_CONTROL_PORT, neogeo_control_port_device) +DECLARE_DEVICE_TYPE(NEOGEO_CTRL_EDGE_CONNECTOR, neogeo_ctrl_edge_port_device) //************************************************************************** @@ -126,4 +125,4 @@ SLOT_INTERFACE_EXTERN( neogeo_arc_edge_fixed ); SLOT_INTERFACE_EXTERN( neogeo_arc_pin15 ); -#endif +#endif // MAME_BUS_NEOGEO_CTRL_CTRL_H diff --git a/src/devices/bus/neogeo_ctrl/dial.cpp b/src/devices/bus/neogeo_ctrl/dial.cpp index 6211a5b9ee1..f8aeb88b1f0 100644 --- a/src/devices/bus/neogeo_ctrl/dial.cpp +++ b/src/devices/bus/neogeo_ctrl/dial.cpp @@ -13,7 +13,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type NEOGEO_DIAL = device_creator; +DEFINE_DEVICE_TYPE(NEOGEO_DIAL, neogeo_dial_device, "neogeo_dial", "SNK Neo Geo Dial Controller") static INPUT_PORTS_START( neogeo_dial ) @@ -62,12 +62,12 @@ ioport_constructor neogeo_dial_device::device_input_ports() const //------------------------------------------------- neogeo_dial_device::neogeo_dial_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, NEOGEO_DIAL, "SNK Neo Geo Dial Controller", tag, owner, clock, "neogeo_dial", __FILE__), - device_neogeo_ctrl_edge_interface(mconfig, *this), - m_joy1(*this, "JOY1"), - m_joy2(*this, "JOY2"), - m_dial1(*this, "DIAL1"), - m_dial2(*this, "DIAL2") + device_t(mconfig, NEOGEO_DIAL, tag, owner, clock), + device_neogeo_ctrl_edge_interface(mconfig, *this), + m_joy1(*this, "JOY1"), + m_joy2(*this, "JOY2"), + m_dial1(*this, "DIAL1"), + m_dial2(*this, "DIAL2") { } diff --git a/src/devices/bus/neogeo_ctrl/dial.h b/src/devices/bus/neogeo_ctrl/dial.h index 9af531b2d6e..d3466025642 100644 --- a/src/devices/bus/neogeo_ctrl/dial.h +++ b/src/devices/bus/neogeo_ctrl/dial.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_NEOGEO_CTRL_DIAL_H +#define MAME_BUS_NEOGEO_CTRL_DIAL_H -#ifndef __NEOGEO_DIAL__ -#define __NEOGEO_DIAL__ +#pragma once #include "ctrl.h" @@ -20,8 +20,7 @@ // ======================> neogeo_dial_device -class neogeo_dial_device : public device_t, - public device_neogeo_ctrl_edge_interface +class neogeo_dial_device : public device_t, public device_neogeo_ctrl_edge_interface { public: // construction/destruction @@ -48,10 +47,7 @@ private: uint8_t m_ctrl_sel; }; - - // device type definition -extern const device_type NEOGEO_DIAL; - +DECLARE_DEVICE_TYPE(NEOGEO_DIAL, neogeo_dial_device) -#endif +#endif // MAME_BUS_NEOGEO_CTRL_DIAL_H diff --git a/src/devices/bus/neogeo_ctrl/irrmaze.cpp b/src/devices/bus/neogeo_ctrl/irrmaze.cpp index 51bc3cb043d..04d70294e5a 100644 --- a/src/devices/bus/neogeo_ctrl/irrmaze.cpp +++ b/src/devices/bus/neogeo_ctrl/irrmaze.cpp @@ -2,7 +2,7 @@ // copyright-holders:Fabio Priuli /********************************************************************** - SNK Neo Geo Irritation Maze Analog Controller emulation + SNK Neo Geo Irritating Maze Trackball Controller emulation **********************************************************************/ @@ -13,7 +13,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type NEOGEO_IRRMAZE = device_creator; +DEFINE_DEVICE_TYPE(NEOGEO_IRRMAZE, neogeo_irrmaze_device, "neogeo_irrmaze", "SNK Neo Geo Irritating Maze Trackball controller") static INPUT_PORTS_START( neogeo_irrmaze ) @@ -51,11 +51,11 @@ ioport_constructor neogeo_irrmaze_device::device_input_ports() const //------------------------------------------------- neogeo_irrmaze_device::neogeo_irrmaze_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, NEOGEO_IRRMAZE, "SNK Neo Geo Irritating Maze Analog Controller", tag, owner, clock, "neogeo_irrmaze", __FILE__), - device_neogeo_ctrl_edge_interface(mconfig, *this), - m_tx(*this, "TRACK_X"), - m_ty(*this, "TRACK_Y"), - m_buttons(*this, "BUTTONS") + device_t(mconfig, NEOGEO_IRRMAZE, tag, owner, clock), + device_neogeo_ctrl_edge_interface(mconfig, *this), + m_tx(*this, "TRACK_X"), + m_ty(*this, "TRACK_Y"), + m_buttons(*this, "BUTTONS") { } diff --git a/src/devices/bus/neogeo_ctrl/irrmaze.h b/src/devices/bus/neogeo_ctrl/irrmaze.h index 33beb1fe10d..855c936ff5c 100644 --- a/src/devices/bus/neogeo_ctrl/irrmaze.h +++ b/src/devices/bus/neogeo_ctrl/irrmaze.h @@ -2,14 +2,14 @@ // copyright-holders:Fabio Priuli /********************************************************************** - SNK Neo Geo Dial controller emulation + SNK Neo Geo Irritating Maze Trackball Controller emulation **********************************************************************/ -#pragma once +#ifndef MAME_BUS_NEOGEO_CTRL_IRRMAZE_H +#define MAME_BUS_NEOGEO_CTRL_IRRMAZE_H -#ifndef __NEOGEO_IRRMAZE__ -#define __NEOGEO_IRRMAZE__ +#pragma once #include "ctrl.h" @@ -18,10 +18,9 @@ // TYPE DEFINITIONS //************************************************************************** -// ======================> neogeo_dial_device +// ======================> neogeo_irrmaze_device -class neogeo_irrmaze_device : public device_t, - public device_neogeo_ctrl_edge_interface +class neogeo_irrmaze_device : public device_t, public device_neogeo_ctrl_edge_interface { public: // construction/destruction @@ -48,9 +47,8 @@ private: }; - // device type definition -extern const device_type NEOGEO_IRRMAZE; +DECLARE_DEVICE_TYPE(NEOGEO_IRRMAZE, neogeo_irrmaze_device) -#endif +#endif // MAME_BUS_NEOGEO_CTRL_IRRMAZE_H diff --git a/src/devices/bus/neogeo_ctrl/joystick.cpp b/src/devices/bus/neogeo_ctrl/joystick.cpp index dabed0aa13e..e854330a452 100644 --- a/src/devices/bus/neogeo_ctrl/joystick.cpp +++ b/src/devices/bus/neogeo_ctrl/joystick.cpp @@ -22,7 +22,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type NEOGEO_JOY = device_creator; +DEFINE_DEVICE_TYPE(NEOGEO_JOY, neogeo_joystick_device, "neogeo_joy", "SNK Neo Geo Joystick") static INPUT_PORTS_START( neogeo_joy ) @@ -61,10 +61,10 @@ ioport_constructor neogeo_joystick_device::device_input_ports() const //------------------------------------------------- neogeo_joystick_device::neogeo_joystick_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, NEOGEO_JOY, "SNK Neo Geo Joystick", tag, owner, clock, "neogeo_joy", __FILE__), - device_neogeo_control_port_interface(mconfig, *this), - m_joy(*this, "JOY"), - m_ss(*this, "START_SELECT") + device_t(mconfig, NEOGEO_JOY, tag, owner, clock), + device_neogeo_control_port_interface(mconfig, *this), + m_joy(*this, "JOY"), + m_ss(*this, "START_SELECT") { } @@ -118,7 +118,7 @@ uint8_t neogeo_joystick_device::read_start_sel() // DEVICE DEFINITIONS //************************************************************************** -const device_type NEOGEO_JOY_AC = device_creator; +DEFINE_DEVICE_TYPE(NEOGEO_JOY_AC, neogeo_joy_ac_device, "neogeo_joyac", "SNK Neo Geo Arcade Joystick") static INPUT_PORTS_START( neogeo_joy_ac ) @@ -162,10 +162,10 @@ ioport_constructor neogeo_joy_ac_device::device_input_ports() const //------------------------------------------------- neogeo_joy_ac_device::neogeo_joy_ac_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, NEOGEO_JOY_AC, "SNK Neo Geo Arcade Joystick", tag, owner, clock, "neogeo_joyac", __FILE__), - device_neogeo_ctrl_edge_interface(mconfig, *this), - m_joy1(*this, "JOY1"), - m_joy2(*this, "JOY2") + device_t(mconfig, NEOGEO_JOY_AC, tag, owner, clock), + device_neogeo_ctrl_edge_interface(mconfig, *this), + m_joy1(*this, "JOY1"), + m_joy2(*this, "JOY2") { } diff --git a/src/devices/bus/neogeo_ctrl/joystick.h b/src/devices/bus/neogeo_ctrl/joystick.h index a78734ab695..9be443077d9 100644 --- a/src/devices/bus/neogeo_ctrl/joystick.h +++ b/src/devices/bus/neogeo_ctrl/joystick.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_NEOGEO_CTRL_JOYSTICK_H +#define MAME_BUS_NEOGEO_CTRL_JOYSTICK_H -#ifndef __NEOGEO_JOYSTICK__ -#define __NEOGEO_JOYSTICK__ +#pragma once #include "ctrl.h" @@ -20,8 +20,7 @@ // ======================> neogeo_joystick_device -class neogeo_joystick_device : public device_t, - public device_neogeo_control_port_interface +class neogeo_joystick_device : public device_t, public device_neogeo_control_port_interface { public: // construction/destruction @@ -47,8 +46,7 @@ private: // ======================> neogeo_joy_ac_device -class neogeo_joy_ac_device : public device_t, - public device_neogeo_ctrl_edge_interface +class neogeo_joy_ac_device : public device_t, public device_neogeo_ctrl_edge_interface { public: // construction/destruction @@ -73,8 +71,8 @@ private: // device type definition -extern const device_type NEOGEO_JOY; -extern const device_type NEOGEO_JOY_AC; +DECLARE_DEVICE_TYPE(NEOGEO_JOY, neogeo_joystick_device) +DECLARE_DEVICE_TYPE(NEOGEO_JOY_AC, neogeo_joy_ac_device) -#endif +#endif // MAME_BUS_NEOGEO_CTRL_JOYSTICK_H diff --git a/src/devices/bus/neogeo_ctrl/kizuna4p.cpp b/src/devices/bus/neogeo_ctrl/kizuna4p.cpp index 72854f62241..0c0420b6f3a 100644 --- a/src/devices/bus/neogeo_ctrl/kizuna4p.cpp +++ b/src/devices/bus/neogeo_ctrl/kizuna4p.cpp @@ -13,7 +13,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type NEOGEO_KIZ4P = device_creator; +DEFINE_DEVICE_TYPE(NEOGEO_KIZ4P, neogeo_kizuna4p_device, "neogeo_kiz4p", "SNK Neo Geo Kizuna 4P Controller") static INPUT_PORTS_START( neogeo_kiz4p ) @@ -86,14 +86,14 @@ ioport_constructor neogeo_kizuna4p_device::device_input_ports() const //------------------------------------------------- neogeo_kizuna4p_device::neogeo_kizuna4p_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, NEOGEO_KIZ4P, "SNK Neo Geo Kizuna 4P Controller", tag, owner, clock, "neogeo_kiz4p", __FILE__), - device_neogeo_ctrl_edge_interface(mconfig, *this), - m_joy1(*this, "JOY1"), - m_joy2(*this, "JOY2"), - m_joy3(*this, "JOY3"), - m_joy4(*this, "JOY4"), - m_ss1(*this, "START13"), - m_ss2(*this, "START24") + device_t(mconfig, NEOGEO_KIZ4P, tag, owner, clock), + device_neogeo_ctrl_edge_interface(mconfig, *this), + m_joy1(*this, "JOY1"), + m_joy2(*this, "JOY2"), + m_joy3(*this, "JOY3"), + m_joy4(*this, "JOY4"), + m_ss1(*this, "START13"), + m_ss2(*this, "START24") { } diff --git a/src/devices/bus/neogeo_ctrl/kizuna4p.h b/src/devices/bus/neogeo_ctrl/kizuna4p.h index c690ce485c7..6f7fd6fcbb9 100644 --- a/src/devices/bus/neogeo_ctrl/kizuna4p.h +++ b/src/devices/bus/neogeo_ctrl/kizuna4p.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_NEOGEO_CTRL_KIZUNA4P_H +#define MAME_BUS_NEOGEO_CTRL_KIZUNA4P_H -#ifndef __NEOGEO_KIZ4P__ -#define __NEOGEO_KIZ4P__ +#pragma once #include "ctrl.h" @@ -52,9 +52,8 @@ private: }; - // device type definition -extern const device_type NEOGEO_KIZ4P; +DECLARE_DEVICE_TYPE(NEOGEO_KIZ4P, neogeo_kizuna4p_device) -#endif +#endif // MAME_BUS_NEOGEO_CTRL_KIZUNA4P_H diff --git a/src/devices/bus/neogeo_ctrl/mahjong.cpp b/src/devices/bus/neogeo_ctrl/mahjong.cpp index 149c252f386..9c818abf4b3 100644 --- a/src/devices/bus/neogeo_ctrl/mahjong.cpp +++ b/src/devices/bus/neogeo_ctrl/mahjong.cpp @@ -13,8 +13,8 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type NEOGEO_MJCTRL_AC = device_creator; -const device_type NEOGEO_MJCTRL = device_creator; +DEFINE_DEVICE_TYPE(NEOGEO_MJCTRL_AC, neogeo_mjctrl_ac_device, "neogeo_mj_ac", "SNK Neo Geo Arcade Mahjong panel") +DEFINE_DEVICE_TYPE(NEOGEO_MJCTRL, neogeo_mjctrl_device, "neogeo_mj", "SNK Neo Geo Mahjong controller") static INPUT_PORTS_START( neogeo_mj_ac ) @@ -94,21 +94,21 @@ ioport_constructor neogeo_mjctrl_device::device_input_ports() const // neogeo_joystick_device - constructor //------------------------------------------------- -neogeo_mjctrl_ac_device::neogeo_mjctrl_ac_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source) +neogeo_mjctrl_ac_device::neogeo_mjctrl_ac_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) , device_neogeo_control_port_interface(mconfig, *this) , m_mjpanel(*this, "MJ.%u", 0) { } neogeo_mjctrl_ac_device::neogeo_mjctrl_ac_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : neogeo_mjctrl_ac_device(mconfig, NEOGEO_MJCTRL_AC, "SNK Neo Geo Arcade Mahjong panel", tag, owner, clock, "neogeo_mjac", __FILE__) + : neogeo_mjctrl_ac_device(mconfig, NEOGEO_MJCTRL_AC, tag, owner, clock) { } -neogeo_mjctrl_device::neogeo_mjctrl_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - neogeo_mjctrl_ac_device(mconfig, NEOGEO_MJCTRL, "SNK Neo Geo Mahjong controller", tag, owner, clock, "neogeo_mjctrl", __FILE__), - m_ss(*this, "START_SELECT") +neogeo_mjctrl_device::neogeo_mjctrl_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : neogeo_mjctrl_ac_device(mconfig, NEOGEO_MJCTRL, tag, owner, clock) + , m_ss(*this, "START_SELECT") { } diff --git a/src/devices/bus/neogeo_ctrl/mahjong.h b/src/devices/bus/neogeo_ctrl/mahjong.h index 48a160f1eec..ff59891dd59 100644 --- a/src/devices/bus/neogeo_ctrl/mahjong.h +++ b/src/devices/bus/neogeo_ctrl/mahjong.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_NEOGEO_CTRL_MAHJONG_H +#define MAME_BUS_NEOGEO_CTRL_MAHJONG_H -#ifndef __NEOGEO_MJCTRL__ -#define __NEOGEO_MJCTRL__ +#pragma once #include "ctrl.h" @@ -20,18 +20,18 @@ // ======================> neogeo_mjctrl_ac_device -class neogeo_mjctrl_ac_device : public device_t, - public device_neogeo_control_port_interface +class neogeo_mjctrl_ac_device : public device_t, public device_neogeo_control_port_interface { public: // construction/destruction - neogeo_mjctrl_ac_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); neogeo_mjctrl_ac_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual ioport_constructor device_input_ports() const override; protected: + neogeo_mjctrl_ac_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -67,8 +67,8 @@ private: // device type definition -extern const device_type NEOGEO_MJCTRL; -extern const device_type NEOGEO_MJCTRL_AC; +DECLARE_DEVICE_TYPE(NEOGEO_MJCTRL_AC, neogeo_mjctrl_ac_device) +DECLARE_DEVICE_TYPE(NEOGEO_MJCTRL, neogeo_mjctrl_device) -#endif +#endif // MAME_BUS_NEOGEO_CTRL_MAHJONG_H diff --git a/src/devices/bus/nes/2a03pur.cpp b/src/devices/bus/nes/2a03pur.cpp index 8382814efe0..43ff34758e7 100644 --- a/src/devices/bus/nes/2a03pur.cpp +++ b/src/devices/bus/nes/2a03pur.cpp @@ -31,11 +31,11 @@ // constructor //------------------------------------------------- -const device_type NES_2A03PURITANS = device_creator; +DEFINE_DEVICE_TYPE(NES_2A03PURITANS, nes_2a03pur_device, "nes_2a03pur", "NES Cart 2A03 Puritans Album PCB") nes_2a03pur_device::nes_2a03pur_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_2A03PURITANS, "NES Cart 2A03 Puritans Album PCB", tag, owner, clock, "nes_2a03pur", __FILE__) + : nes_nrom_device(mconfig, NES_2A03PURITANS, tag, owner, clock) { } diff --git a/src/devices/bus/nes/2a03pur.h b/src/devices/bus/nes/2a03pur.h index 755957c0f95..d17443d8963 100644 --- a/src/devices/bus/nes/2a03pur.h +++ b/src/devices/bus/nes/2a03pur.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __NES_2A03PUR_H -#define __NES_2A03PUR_H +#ifndef MAME_BUS_NES_2A03PUR_H +#define MAME_BUS_NES_2A03PUR_H + +#pragma once #include "nxrom.h" @@ -14,13 +16,15 @@ public: // construction/destruction nes_2a03pur_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_READ8_MEMBER(read_h) override; virtual DECLARE_WRITE8_MEMBER(write_l) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: uint8_t m_reg[8]; }; @@ -30,4 +34,4 @@ private: // device type definition extern const device_type NES_2A03PURITANS; -#endif +#endif // MAME_BUS_NES_2A03PUR_H diff --git a/src/devices/bus/nes/act53.cpp b/src/devices/bus/nes/act53.cpp index 6dce9e066c3..f163be268fd 100644 --- a/src/devices/bus/nes/act53.cpp +++ b/src/devices/bus/nes/act53.cpp @@ -29,13 +29,13 @@ // constructor //------------------------------------------------- -const device_type NES_ACTION53 = device_creator; +DEFINE_DEVICE_TYPE(NES_ACTION53, nes_action53_device, "nes_action53", "NES Cart Action 53 PCB") nes_action53_device::nes_action53_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_ACTION53, "NES Cart Action 53 PCB", tag, owner, clock, "nes_action53", __FILE__), - m_sel(0) - { + : nes_nrom_device(mconfig, NES_ACTION53, tag, owner, clock) + , m_sel(0) +{ } diff --git a/src/devices/bus/nes/act53.h b/src/devices/bus/nes/act53.h index 3d9c8d53155..1f299a5a5da 100644 --- a/src/devices/bus/nes/act53.h +++ b/src/devices/bus/nes/act53.h @@ -1,12 +1,12 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __NES_ACTION53_H -#define __NES_ACTION53_H +#ifndef MAME_BUS_NES_ACT53_H +#define MAME_BUS_NES_ACT53_H #include "nxrom.h" -// ======================> nes_racermate_device +// ======================> nes_action53_device class nes_action53_device : public nes_nrom_device { @@ -14,13 +14,15 @@ public: // construction/destruction nes_action53_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_l) override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: void update_prg(); void update_mirr(); @@ -28,11 +30,7 @@ private: uint8_t m_reg[4]; }; - - - - // device type definition -extern const device_type NES_ACTION53; +DECLARE_DEVICE_TYPE(NES_ACTION53, nes_action53_device) -#endif +#endif // MAME_BUS_NES_ACT53_H diff --git a/src/devices/bus/nes/aladdin.cpp b/src/devices/bus/nes/aladdin.cpp index 1e30880c03f..30adbeca9a0 100644 --- a/src/devices/bus/nes/aladdin.cpp +++ b/src/devices/bus/nes/aladdin.cpp @@ -39,12 +39,12 @@ //------------------------------------------------- aladdin_cart_interface::aladdin_cart_interface(const machine_config &mconfig, device_t &device) - : device_slot_card_interface(mconfig, device), - m_rom(nullptr), - m_rom_size(0), - m_lobank(0), - m_hibank(0), - m_rom_mask(0xff) + : device_slot_card_interface(mconfig, device) + , m_rom(nullptr) + , m_rom_size(0) + , m_lobank(0) + , m_hibank(0) + , m_rom_mask(0xff) { } @@ -64,12 +64,13 @@ READ8_MEMBER(aladdin_cart_interface::read) // sub-cart slot device //------------------------------------------------- -const device_type NES_ALADDIN_SLOT = device_creator; +DEFINE_DEVICE_TYPE(NES_ALADDIN_SLOT, nes_aladdin_slot_device, "nes_ade_slot", "NES Aladdin Deck Enhancer Cartridge Slot") -nes_aladdin_slot_device::nes_aladdin_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, NES_ALADDIN_SLOT, "NES Aladdin Deck Enhancer Cartridge Slot", tag, owner, clock, "nes_ade_slot", __FILE__), - device_image_interface(mconfig, *this), - device_slot_interface(mconfig, *this), m_cart(nullptr) +nes_aladdin_slot_device::nes_aladdin_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, NES_ALADDIN_SLOT, tag, owner, clock) + , device_image_interface(mconfig, *this) + , device_slot_interface(mconfig, *this) + , m_cart(nullptr) { } @@ -172,24 +173,24 @@ ROM_START( ade_rom ) ROM_REGION(0x40000, "aderom", ROMREGION_ERASEFF) ROM_END -const device_type NES_ALGN_ROM = device_creator; -const device_type NES_ALGQ_ROM = device_creator; +DEFINE_DEVICE_TYPE(NES_ALGN_ROM, nes_algn_rom_device, "nes_algn_rom", "NES Aladdin Deck Enhancer ALGN ROM") +DEFINE_DEVICE_TYPE(NES_ALGQ_ROM, nes_algq_rom_device, "nes_algq_rom", "NES Aladdin Deck Enhancer ALGQ ROM") -nes_algn_rom_device::nes_algn_rom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), - aladdin_cart_interface( mconfig, *this ) +nes_algn_rom_device::nes_algn_rom_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) + , aladdin_cart_interface(mconfig, *this) { } nes_algn_rom_device::nes_algn_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, NES_ALGN_ROM, "NES Aladdin Deck Enhancer ALGN ROM", tag, owner, clock, "nes_algn_rom", __FILE__), - aladdin_cart_interface( mconfig, *this ) + : nes_algn_rom_device(mconfig, NES_ALGN_ROM, tag, owner, clock) { } nes_algq_rom_device::nes_algq_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_algn_rom_device(mconfig, NES_ALGQ_ROM, "NES Aladdin Deck Enhancer ALGQ ROM", tag, owner, clock, "nes_algq_rom", __FILE__), m_bank_base(0) - { + : nes_algn_rom_device(mconfig, NES_ALGQ_ROM, tag, owner, clock) + , m_bank_base(0) +{ } void nes_algn_rom_device::device_start() @@ -260,11 +261,11 @@ void nes_algq_rom_device::write_prg(uint32_t offset, uint8_t data) // //----------------------------------------------- -const device_type NES_ALADDIN = device_creator; +DEFINE_DEVICE_TYPE(NES_ALADDIN, nes_aladdin_device, "nes_aladdin", "NES Cart Camerica Aladdin PCB") nes_aladdin_device::nes_aladdin_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_ALADDIN, "NES Cart Camerica Aladdin PCB", tag, owner, clock, "nes_aladdin", __FILE__), - m_subslot(*this, "ade_slot") + : nes_nrom_device(mconfig, NES_ALADDIN, tag, owner, clock) + , m_subslot(*this, "ade_slot") { } diff --git a/src/devices/bus/nes/aladdin.h b/src/devices/bus/nes/aladdin.h index 6384ec0f95a..80262b637d9 100644 --- a/src/devices/bus/nes/aladdin.h +++ b/src/devices/bus/nes/aladdin.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __NES_ALADDIN_H -#define __NES_ALADDIN_H +#ifndef MAME_BUS_NES_ALADDIN_H +#define MAME_BUS_NES_ALADDIN_H + +#pragma once #include "nxrom.h" #include "softlist_dev.h" @@ -19,7 +21,6 @@ class aladdin_cart_interface : public device_slot_card_interface { public: // construction/destruction - aladdin_cart_interface(const machine_config &mconfig, device_t &device); virtual ~aladdin_cart_interface(); // reading and writing @@ -30,6 +31,8 @@ public: virtual void write_prg(uint32_t offset, uint8_t data) { } protected: + aladdin_cart_interface(const machine_config &mconfig, device_t &device); + // internal state uint8_t *m_rom; uint32_t m_rom_size; @@ -38,10 +41,13 @@ protected: // ======================> nes_aladdin_slot_device +class nes_aladdin_device; + class nes_aladdin_slot_device : public device_t, public device_image_interface, public device_slot_interface { + friend class nes_aladdin_device; public: // construction/destruction nes_aladdin_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); @@ -69,11 +75,12 @@ public: virtual DECLARE_READ8_MEMBER(read); void write_prg(uint32_t offset, uint8_t data) { if (m_cart) m_cart->write_prg(offset, data); } +protected: aladdin_cart_interface* m_cart; }; // device type definition -extern const device_type NES_ALADDIN_SLOT; +DECLARE_DEVICE_TYPE(NES_ALADDIN_SLOT, nes_aladdin_slot_device) #define MCFG_ALADDIN_MINICART_ADD(_tag, _slot_intf) \ @@ -94,7 +101,6 @@ class nes_algn_rom_device : public device_t, { public: // construction/destruction - nes_algn_rom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); nes_algn_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides @@ -103,6 +109,8 @@ public: virtual void write_prg(uint32_t offset, uint8_t data) override; protected: + nes_algn_rom_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -129,8 +137,8 @@ protected: }; // device type definition -extern const device_type NES_ALGN_ROM; -extern const device_type NES_ALGQ_ROM; +DECLARE_DEVICE_TYPE(NES_ALGN_ROM, nes_algn_rom_device) +DECLARE_DEVICE_TYPE(NES_ALGQ_ROM, nes_algq_rom_device) //----------------------------------------------- @@ -147,8 +155,6 @@ public: // construction/destruction nes_aladdin_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual machine_config_constructor device_mconfig_additions() const override; virtual DECLARE_READ8_MEMBER(read_h) override; virtual DECLARE_WRITE8_MEMBER(write_h) override; @@ -156,11 +162,14 @@ public: virtual void pcb_reset() override; protected: + // device-level overrides + virtual void device_start() override; + required_device m_subslot; }; // device type definition -extern const device_type NES_ALADDIN; +DECLARE_DEVICE_TYPE(NES_ALADDIN, nes_aladdin_device) -#endif +#endif // MAME_BUS_NES_ALADDIN_H diff --git a/src/devices/bus/nes/ave.cpp b/src/devices/bus/nes/ave.cpp index fcc757b7651..823d66e2e57 100644 --- a/src/devices/bus/nes/ave.cpp +++ b/src/devices/bus/nes/ave.cpp @@ -33,24 +33,24 @@ // constructor //------------------------------------------------- -const device_type NES_NINA001 = device_creator; -const device_type NES_NINA006 = device_creator; -const device_type NES_MAXI15 = device_creator; +DEFINE_DEVICE_TYPE(NES_NINA001, nes_nina001_device, "nes_nina001", "NES Cart AVE Nina-001 PCB") +DEFINE_DEVICE_TYPE(NES_NINA006, nes_nina006_device, "nes_nina006", "NES Cart AVE Nina-006 PCB") +DEFINE_DEVICE_TYPE(NES_MAXI15, nes_maxi15_device, "nes_maxi15", "NES Cart AVE Maxi 15 PCB") nes_nina001_device::nes_nina001_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_NINA001, "NES Cart AVE Nina-001 PCB", tag, owner, clock, "nes_nina001", __FILE__) + : nes_nrom_device(mconfig, NES_NINA001, tag, owner, clock) { } nes_nina006_device::nes_nina006_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_NINA006, "NES Cart AVE Nina-006 PCB", tag, owner, clock, "nes_nina006", __FILE__) + : nes_nrom_device(mconfig, NES_NINA006, tag, owner, clock) { } nes_maxi15_device::nes_maxi15_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_MAXI15, "NES Cart AVE Maxi 15 PCB", tag, owner, clock, "nes_maxi15", __FILE__), m_reg(0), m_bank(0) - { + : nes_nrom_device(mconfig, NES_MAXI15, tag, owner, clock), m_reg(0), m_bank(0) +{ } diff --git a/src/devices/bus/nes/ave.h b/src/devices/bus/nes/ave.h index 7648cc7ce46..5fdd233b3c3 100644 --- a/src/devices/bus/nes/ave.h +++ b/src/devices/bus/nes/ave.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __NES_AVE_H -#define __NES_AVE_H +#ifndef MAME_BUS_NES_AVE_H +#define MAME_BUS_NES_AVE_H + +#pragma once #include "nxrom.h" @@ -14,11 +16,13 @@ public: // construction/destruction nes_nina001_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_m) override; virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; }; @@ -30,11 +34,13 @@ public: // construction/destruction nes_nina006_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_l) override; virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; }; @@ -46,24 +52,25 @@ public: // construction/destruction nes_maxi15_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_READ8_MEMBER(read_h) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: void update_banks(); + uint8_t m_reg, m_bank; }; - - // device type definition -extern const device_type NES_NINA001; -extern const device_type NES_NINA006; -extern const device_type NES_MAXI15; +DECLARE_DEVICE_TYPE(NES_NINA001, nes_nina001_device) +DECLARE_DEVICE_TYPE(NES_NINA006, nes_nina006_device) +DECLARE_DEVICE_TYPE(NES_MAXI15, nes_maxi15_device) -#endif +#endif // MAME_BUS_NES_AVE_H diff --git a/src/devices/bus/nes/bandai.cpp b/src/devices/bus/nes/bandai.cpp index e75b6401205..83ab401022b 100644 --- a/src/devices/bus/nes/bandai.cpp +++ b/src/devices/bus/nes/bandai.cpp @@ -17,7 +17,7 @@ * Bandai Datach Joint ROM System [mapper 157] is emulated in a separate source file to implement also the subslot, but the PCB is basically a Bandai LZ93D50 + 24C02 EEPROM - pcb with added barcode reader and subslot + PCB with added barcode reader and subslot * Bandai Karaoke Studio [mapper 188] is emulated in a separate source file to implement also the subslot and the mic inputs @@ -50,58 +50,56 @@ // constructor //------------------------------------------------- -const device_type NES_OEKAKIDS = device_creator; -const device_type NES_FCG = device_creator; -const device_type NES_LZ93D50 = device_creator; -const device_type NES_LZ93D50_24C01 = device_creator; -const device_type NES_LZ93D50_24C02 = device_creator; -const device_type NES_FJUMP2 = device_creator; +DEFINE_DEVICE_TYPE(NES_OEKAKIDS, nes_oekakids_device, "nes_oeka", "NES Cart Bandai Oeka Kids PCB") +DEFINE_DEVICE_TYPE(NES_FCG, nes_fcg_device, "nes_fcg", "NES Cart Bandai FCG PCB") +DEFINE_DEVICE_TYPE(NES_LZ93D50, nes_lz93d50_device, "nes_lz93d50", "NES Cart Bandai LZ93D50 PCB") +DEFINE_DEVICE_TYPE(NES_LZ93D50_24C01, nes_lz93d50_24c01_device, "nes_lz93d50_ep1", "NES Cart Bandai LZ93D50 + 24C01 PCB") +DEFINE_DEVICE_TYPE(NES_LZ93D50_24C02, nes_lz93d50_24c02_device, "nes_lz93d50_ep2", "NES Cart Bandai LZ93D50 + 24C02 PCB") +DEFINE_DEVICE_TYPE(NES_FJUMP2, nes_fjump2_device, "nes_fjump2", "NES Cart Bandai Famicom Jump II PCB") nes_oekakids_device::nes_oekakids_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_OEKAKIDS, "NES Cart Bandai Oeka Kids PCB", tag, owner, clock, "nes_oeka", __FILE__), m_reg(0), m_latch(0) - { + : nes_nrom_device(mconfig, NES_OEKAKIDS, tag, owner, clock), m_reg(0), m_latch(0) +{ } -nes_fcg_device::nes_fcg_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : nes_nrom_device(mconfig, type, name, tag, owner, clock, shortname, source), m_irq_count(0), m_irq_enable(0), irq_timer(nullptr) - { +nes_fcg_device::nes_fcg_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : nes_nrom_device(mconfig, type, tag, owner, clock), m_irq_count(0), m_irq_enable(0), irq_timer(nullptr) +{ } nes_fcg_device::nes_fcg_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_FCG, "NES Cart Bandai FCG PCB", tag, owner, clock, "nes_fcg", __FILE__), m_irq_count(0), m_irq_enable(0), irq_timer(nullptr) - { + : nes_fcg_device(mconfig, NES_FCG, tag, owner, clock) +{ } -nes_lz93d50_device::nes_lz93d50_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : nes_fcg_device(mconfig, type, name, tag, owner, clock, shortname, source) +nes_lz93d50_device::nes_lz93d50_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : nes_fcg_device(mconfig, type, tag, owner, clock) { } nes_lz93d50_device::nes_lz93d50_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_fcg_device(mconfig, NES_LZ93D50, "NES Cart Bandai LZ93D50 PCB", tag, owner, clock, "nes_lz93d50", __FILE__) + : nes_lz93d50_device(mconfig, NES_LZ93D50, tag, owner, clock) { } -nes_lz93d50_24c01_device::nes_lz93d50_24c01_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : nes_lz93d50_device(mconfig, type, name, tag, owner, clock, shortname, source), - m_i2cmem(*this, "i2cmem"), m_i2c_dir(0) - { +nes_lz93d50_24c01_device::nes_lz93d50_24c01_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : nes_lz93d50_device(mconfig, type, tag, owner, clock), m_i2cmem(*this, "i2cmem"), m_i2c_dir(0) +{ } nes_lz93d50_24c01_device::nes_lz93d50_24c01_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_lz93d50_device(mconfig, NES_LZ93D50_24C01, "NES Cart Bandai LZ93D50 + 24C01 PCB", tag, owner, clock, "nes_lz93d50_ep1", __FILE__), - m_i2cmem(*this, "i2cmem"), m_i2c_dir(0) - { + : nes_lz93d50_24c01_device(mconfig, NES_LZ93D50_24C01, tag, owner, clock) +{ } nes_lz93d50_24c02_device::nes_lz93d50_24c02_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_lz93d50_24c01_device(mconfig, NES_LZ93D50_24C02, "NES Cart Bandai LZ93D50 + 24C02 PCB", tag, owner, clock, "nes_lz93d50_ep2", __FILE__) + : nes_lz93d50_24c01_device(mconfig, NES_LZ93D50_24C02, tag, owner, clock) { } nes_fjump2_device::nes_fjump2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_lz93d50_device(mconfig, NES_FJUMP2, "NES Cart Bandai Famicom Jump II PCB", tag, owner, clock, "nes_fjump2", __FILE__) + : nes_lz93d50_device(mconfig, NES_FJUMP2, tag, owner, clock) { } diff --git a/src/devices/bus/nes/bandai.h b/src/devices/bus/nes/bandai.h index 108c6fb96cc..17a1fed1b79 100644 --- a/src/devices/bus/nes/bandai.h +++ b/src/devices/bus/nes/bandai.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __NES_BANDAI_H -#define __NES_BANDAI_H +#ifndef MAME_BUS_NES_BANDAI_H +#define MAME_BUS_NES_BANDAI_H + +#pragma once #include "nxrom.h" #include "machine/i2cmem.h" @@ -15,8 +17,6 @@ public: // construction/destruction nes_oekakids_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual DECLARE_READ8_MEMBER(nt_r) override; virtual DECLARE_WRITE8_MEMBER(nt_w) override; @@ -26,8 +26,13 @@ public: virtual void ppu_latch(offs_t offset) override; // TODO: add oeka kids controller emulation + protected: + // device-level overrides + virtual void device_start() override; + void update_chr(); + uint8_t m_reg, m_latch; }; @@ -38,11 +43,8 @@ class nes_fcg_device : public nes_nrom_device { public: // construction/destruction - nes_fcg_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); nes_fcg_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; virtual DECLARE_WRITE8_MEMBER(fcg_write); virtual DECLARE_WRITE8_MEMBER(write_m) override; @@ -50,10 +52,16 @@ public: virtual void pcb_reset() override; protected: - uint16_t m_irq_count; + static constexpr device_timer_id TIMER_IRQ = 0; + + nes_fcg_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual void device_start() override; + + uint16_t m_irq_count; int m_irq_enable; - static const device_timer_id TIMER_IRQ = 0; emu_timer *irq_timer; }; @@ -64,11 +72,13 @@ class nes_lz93d50_device : public nes_fcg_device { public: // construction/destruction - nes_lz93d50_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); nes_lz93d50_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // device-level overrides virtual DECLARE_WRITE8_MEMBER(write_h) override { fcg_write(space, offset, data, mem_mask); } + +protected: + nes_lz93d50_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); }; @@ -78,17 +88,20 @@ class nes_lz93d50_24c01_device : public nes_lz93d50_device { public: // construction/destruction - nes_lz93d50_24c01_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); nes_lz93d50_24c01_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual machine_config_constructor device_mconfig_additions() const override; virtual DECLARE_READ8_MEMBER(read_m) override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; +protected: + nes_lz93d50_24c01_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual void device_start() override; + // TODO: fix EEPROM I/O emulation required_device m_i2cmem; uint8_t m_i2c_dir; @@ -116,8 +129,6 @@ public: // construction/destruction nes_fjump2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_READ8_MEMBER(read_m) override; virtual DECLARE_WRITE8_MEMBER(write_m) override; virtual DECLARE_WRITE8_MEMBER(write_h) override; @@ -125,17 +136,20 @@ public: virtual void pcb_reset() override; protected: + // device-level overrides + virtual void device_start() override; + void set_prg(); uint8_t m_reg[5]; }; // device type definition -extern const device_type NES_OEKAKIDS; -extern const device_type NES_FCG; -extern const device_type NES_LZ93D50; -extern const device_type NES_LZ93D50_24C01; -extern const device_type NES_LZ93D50_24C02; -extern const device_type NES_FJUMP2; - -#endif +DECLARE_DEVICE_TYPE(NES_OEKAKIDS, nes_oekakids_device) +DECLARE_DEVICE_TYPE(NES_FCG, nes_fcg_device) +DECLARE_DEVICE_TYPE(NES_LZ93D50, nes_lz93d50_device) +DECLARE_DEVICE_TYPE(NES_LZ93D50_24C01, nes_lz93d50_24c01_device) +DECLARE_DEVICE_TYPE(NES_LZ93D50_24C02, nes_lz93d50_24c02_device) +DECLARE_DEVICE_TYPE(NES_FJUMP2, nes_fjump2_device) + +#endif // MAME_BUS_NES_BANDAI_H diff --git a/src/devices/bus/nes/benshieng.cpp b/src/devices/bus/nes/benshieng.cpp index 0d41c8b3ae0..921d7c5b56f 100644 --- a/src/devices/bus/nes/benshieng.cpp +++ b/src/devices/bus/nes/benshieng.cpp @@ -28,13 +28,13 @@ // constructor //------------------------------------------------- -const device_type NES_BENSHIENG = device_creator; +DEFINE_DEVICE_TYPE(NES_BENSHIENG, nes_benshieng_device, "nes_benshieng", "NES Cart Benshieng PCB") nes_benshieng_device::nes_benshieng_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_BENSHIENG, "NES Cart Benshieng PCB", tag, owner, clock, "nes_benshieng", __FILE__), - m_dipsetting(0) - { + : nes_nrom_device(mconfig, NES_BENSHIENG, tag, owner, clock) + , m_dipsetting(0) +{ } diff --git a/src/devices/bus/nes/benshieng.h b/src/devices/bus/nes/benshieng.h index 1989c26ad15..2cf39af6cf7 100644 --- a/src/devices/bus/nes/benshieng.h +++ b/src/devices/bus/nes/benshieng.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __NES_BENSHIENG_H -#define __NES_BENSHIENG_H +#ifndef MAME_BUS_NES_BENSHIENG_H +#define MAME_BUS_NES_BENSHIENG_H + +#pragma once #include "nxrom.h" @@ -14,12 +16,14 @@ public: // construction/destruction nes_benshieng_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: void update_banks(); uint8_t m_dipsetting; @@ -31,4 +35,4 @@ private: // device type definition extern const device_type NES_BENSHIENG; -#endif +#endif // MAME_BUS_NES_BENSHIENG_H diff --git a/src/devices/bus/nes/bootleg.cpp b/src/devices/bus/nes/bootleg.cpp index f38e92d8e97..d47699a8e57 100644 --- a/src/devices/bus/nes/bootleg.cpp +++ b/src/devices/bus/nes/bootleg.cpp @@ -22,7 +22,7 @@ #include "bootleg.h" #include "cpu/m6502/m6502.h" -#include "video/ppu2c0x.h" // this has to be included so that IRQ functions can access PPU_BOTTOM_VISIBLE_SCANLINE +#include "video/ppu2c0x.h" // this has to be included so that IRQ functions can access ppu2c0x_device::BOTTOM_VISIBLE_SCANLINE #include "screen.h" @@ -39,131 +39,131 @@ // constructor //------------------------------------------------- -const device_type NES_AX5705 = device_creator; -const device_type NES_SC127 = device_creator; -const device_type NES_MARIOBABY = device_creator; -const device_type NES_ASN = device_creator; -const device_type NES_SMB3PIRATE = device_creator; -const device_type NES_BTL_DNINJA = device_creator; -const device_type NES_WHIRLWIND_2706 = device_creator; -const device_type NES_SMB2J = device_creator; -const device_type NES_SMB2JA = device_creator; -const device_type NES_SMB2JB = device_creator; -const device_type NES_09034A = device_creator; -const device_type NES_TOBIDASE = device_creator; -const device_type NES_LH32 = device_creator; -const device_type NES_LH10 = device_creator; -const device_type NES_LH53 = device_creator; -const device_type NES_2708 = device_creator; -const device_type NES_AC08 = device_creator; -const device_type NES_UNL_BB = device_creator; -const device_type NES_MMALEE = device_creator; -const device_type NES_SHUIGUAN = device_creator; -const device_type NES_RT01 = device_creator; +DEFINE_DEVICE_TYPE(NES_AX5705, nes_ax5705_device, "nes_ax5705", "NES Cart AX5705 PCB") +DEFINE_DEVICE_TYPE(NES_SC127, nes_sc127_device, "nes_sc127", "NES Cart SC-127 PCB") +DEFINE_DEVICE_TYPE(NES_MARIOBABY, nes_mbaby_device, "nes_mbaby", "NES Cart Mario Baby Bootleg PCB") +DEFINE_DEVICE_TYPE(NES_ASN, nes_asn_device, "nes_asn", "NES Cart Ai Senshi Nicol Bootleg PCB") +DEFINE_DEVICE_TYPE(NES_SMB3PIRATE, nes_smb3p_device, "nes_smb3p", "NES Cart Super Mario Bros. 3 Pirate PCB") +DEFINE_DEVICE_TYPE(NES_BTL_DNINJA, nes_btl_dn_device, "nes_btl_dn", "NES Cart DragonNinja Pirate PCB") +DEFINE_DEVICE_TYPE(NES_WHIRLWIND_2706, nes_whirl2706_device, "nes_whirl2706", "NES Cart Whilwind 2706 PCB") +DEFINE_DEVICE_TYPE(NES_SMB2J, nes_smb2j_device, "nes_smb2j", "NES Cart Super Mario Bros. 2 Jpn PCB") +DEFINE_DEVICE_TYPE(NES_SMB2JA, nes_smb2ja_device, "nes_smb2ja", "NES Cart Super Mario Bros. 2 Jpn (Alt) PCB") +DEFINE_DEVICE_TYPE(NES_SMB2JB, nes_smb2jb_device, "nes_smb2jb", "NES Cart Super Mario Bros. 2 Jpn (Alt 2) PCB") +DEFINE_DEVICE_TYPE(NES_09034A, nes_09034a_device, "nes_09034a", "NES Cart 09-034A PCB") +DEFINE_DEVICE_TYPE(NES_TOBIDASE, nes_tobidase_device, "nes_tobidase", "NES Cart Tobidase Daisakusen Pirate PCB") +DEFINE_DEVICE_TYPE(NES_LH32, nes_lh32_device, "nes_lh32", "NES Cart LH-32 Pirate PCB") +DEFINE_DEVICE_TYPE(NES_LH10, nes_lh10_device, "nes_lh10", "NES Cart LH-10 Pirate PCB") +DEFINE_DEVICE_TYPE(NES_LH53, nes_lh53_device, "nes_lh53", "NES Cart LH-53 Pirate PCB") +DEFINE_DEVICE_TYPE(NES_2708, nes_2708_device, "nes_2708", "NES Cart BTL-2708 Pirate PCB") +DEFINE_DEVICE_TYPE(NES_AC08, nes_ac08_device, "nes_ac08", "NES Cart AC08 Pirate PCB") +DEFINE_DEVICE_TYPE(NES_UNL_BB, nes_unl_bb_device, "nes_unl_bb", "NES Cart FDS+CHR Pirate PCB") +DEFINE_DEVICE_TYPE(NES_MMALEE, nes_mmalee_device, "nes_mmalee", "NES Cart Super Mario Bros. Malee 2 Pirate PCB") +DEFINE_DEVICE_TYPE(NES_SHUIGUAN, nes_shuiguan_device, "nes_shuiguan", "NES Cart Shui Guan Pipe Pirate PCB") +DEFINE_DEVICE_TYPE(NES_RT01, nes_rt01_device, "nes_rt01", "NES Cart RT-01 PCB") nes_ax5705_device::nes_ax5705_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_AX5705, "NES Cart AX5705 PCB", tag, owner, clock, "nes_ax5705", __FILE__) + : nes_nrom_device(mconfig, NES_AX5705, tag, owner, clock) { } nes_sc127_device::nes_sc127_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_SC127, "NES Cart SC-127 PCB", tag, owner, clock, "nes_sc127", __FILE__), m_irq_count(0), m_irq_enable(0) - { + : nes_nrom_device(mconfig, NES_SC127, tag, owner, clock), m_irq_count(0), m_irq_enable(0) +{ } nes_mbaby_device::nes_mbaby_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_MARIOBABY, "NES Cart Mario Baby Bootleg PCB", tag, owner, clock, "nes_mbaby", __FILE__), m_latch(0), m_irq_enable(0), irq_timer(nullptr) - { + : nes_nrom_device(mconfig, NES_MARIOBABY, tag, owner, clock), m_latch(0), m_irq_enable(0), irq_timer(nullptr) +{ } nes_asn_device::nes_asn_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_ASN, "NES Cart Ai Senshi Nicol Bootleg PCB", tag, owner, clock, "nes_asn", __FILE__), m_latch(0) - { + : nes_nrom_device(mconfig, NES_ASN, tag, owner, clock), m_latch(0) +{ } nes_smb3p_device::nes_smb3p_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_SMB3PIRATE, "NES Cart Super Mario Bros. 3 Pirate PCB", tag, owner, clock, "nes_smb3p", __FILE__), m_irq_count(0), m_irq_enable(0), irq_timer(nullptr) - { + : nes_nrom_device(mconfig, NES_SMB3PIRATE, tag, owner, clock), m_irq_count(0), m_irq_enable(0), irq_timer(nullptr) +{ } nes_btl_dn_device::nes_btl_dn_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_BTL_DNINJA, "NES Cart DragonNinja Pirate PCB", tag, owner, clock, "nes_btl_dn", __FILE__), m_irq_count(0) - { + : nes_nrom_device(mconfig, NES_BTL_DNINJA, tag, owner, clock), m_irq_count(0) +{ } nes_whirl2706_device::nes_whirl2706_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_WHIRLWIND_2706, "NES Cart Whirlwind 2706 PCB", tag, owner, clock, "nes_whirl2706", __FILE__), m_latch(0) - { + : nes_nrom_device(mconfig, NES_WHIRLWIND_2706, tag, owner, clock), m_latch(0) +{ } nes_smb2j_device::nes_smb2j_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_SMB2J, "NES Cart Super Mario Bros. 2 Jpn PCB", tag, owner, clock, "nes_smb2j", __FILE__), m_irq_count(0), m_irq_enable(0), irq_timer(nullptr) - { + : nes_nrom_device(mconfig, NES_SMB2J, tag, owner, clock), m_irq_count(0), m_irq_enable(0), irq_timer(nullptr) +{ } nes_smb2ja_device::nes_smb2ja_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_SMB2JA, "NES Cart Super Mario Bros. 2 Jpn (Alt) PCB", tag, owner, clock, "nes_smb2ja", __FILE__), m_irq_count(0), m_irq_enable(0), irq_timer(nullptr) - { + : nes_nrom_device(mconfig, NES_SMB2JA, tag, owner, clock), m_irq_count(0), m_irq_enable(0), irq_timer(nullptr) +{ } nes_smb2jb_device::nes_smb2jb_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_SMB2JB, "NES Cart Super Mario Bros. 2 Jpn (Alt 2) PCB", tag, owner, clock, "nes_smb2jb", __FILE__), m_irq_count(0), m_irq_enable(0), irq_timer(nullptr) - { + : nes_nrom_device(mconfig, NES_SMB2JB, tag, owner, clock), m_irq_count(0), m_irq_enable(0), irq_timer(nullptr) +{ } nes_09034a_device::nes_09034a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_09034A, "NES Cart 09-034A PCB", tag, owner, clock, "nes_09034a", __FILE__), m_reg(0) - { + : nes_nrom_device(mconfig, NES_09034A, tag, owner, clock), m_reg(0) +{ } nes_tobidase_device::nes_tobidase_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_TOBIDASE, "NES Cart Tobidase Daisakusen Pirate PCB", tag, owner, clock, "nes_tobidase", __FILE__), m_latch(0) - { + : nes_nrom_device(mconfig, NES_TOBIDASE, tag, owner, clock), m_latch(0) +{ } nes_lh32_device::nes_lh32_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_LH32, "NES Cart LH-32 Pirate PCB", tag, owner, clock, "nes_lh32", __FILE__), m_latch(0) - { + : nes_nrom_device(mconfig, NES_LH32, tag, owner, clock), m_latch(0) +{ } nes_lh10_device::nes_lh10_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_LH10, "NES Cart LH-10 Pirate PCB", tag, owner, clock, "nes_lh10", __FILE__), m_latch(0) - { + : nes_nrom_device(mconfig, NES_LH10, tag, owner, clock), m_latch(0) +{ } nes_lh53_device::nes_lh53_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_LH53, "NES Cart LH-53 Pirate PCB", tag, owner, clock, "nes_lh53", __FILE__), m_irq_count(0), m_irq_enable(0), m_reg(0), irq_timer(nullptr) - { + : nes_nrom_device(mconfig, NES_LH53, tag, owner, clock), m_irq_count(0), m_irq_enable(0), m_reg(0), irq_timer(nullptr) +{ } nes_2708_device::nes_2708_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_2708, "NES Cart BTL-2708 Pirate PCB", tag, owner, clock, "nes_2708", __FILE__) + : nes_nrom_device(mconfig, NES_2708, tag, owner, clock) { } nes_ac08_device::nes_ac08_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_AC08, "NES Cart AC08 Pirate PCB", tag, owner, clock, "nes_ac08", __FILE__), m_latch(0) - { + : nes_nrom_device(mconfig, NES_AC08, tag, owner, clock), m_latch(0) +{ } nes_unl_bb_device::nes_unl_bb_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_UNL_BB, "NES Cart FDS+CHR Pirate PCB", tag, owner, clock, "nes_unl_bb", __FILE__) + : nes_nrom_device(mconfig, NES_UNL_BB, tag, owner, clock) { } nes_mmalee_device::nes_mmalee_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_MMALEE, "NES Cart Super Mario Bros. Malee 2 Pirate PCB", tag, owner, clock, "nes_mmalee", __FILE__) + : nes_nrom_device(mconfig, NES_MMALEE, tag, owner, clock) { } nes_shuiguan_device::nes_shuiguan_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_SHUIGUAN, "NES Cart Shui Guan Pipe Pirate PCB", tag, owner, clock, "nes_shuiguan", __FILE__), m_irq_count(0), m_irq_enable(0), irq_timer(nullptr) + : nes_nrom_device(mconfig, NES_SHUIGUAN, tag, owner, clock), m_irq_count(0), m_irq_enable(0), irq_timer(nullptr) { } nes_rt01_device::nes_rt01_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_RT01, "NES Cart RT-01 PCB", tag, owner, clock, "nes_rt01", __FILE__) + : nes_nrom_device(mconfig, NES_RT01, tag, owner, clock) { } @@ -640,7 +640,7 @@ WRITE8_MEMBER(nes_ax5705_device::write_h) void nes_sc127_device::hblank_irq(int scanline, int vblank, int blanked) { - if (scanline < PPU_BOTTOM_VISIBLE_SCANLINE && m_irq_enable) + if (scanline < ppu2c0x_device::BOTTOM_VISIBLE_SCANLINE && m_irq_enable) { m_irq_count--; diff --git a/src/devices/bus/nes/bootleg.h b/src/devices/bus/nes/bootleg.h index 5e2457d2fef..a048f0955d4 100644 --- a/src/devices/bus/nes/bootleg.h +++ b/src/devices/bus/nes/bootleg.h @@ -1,7 +1,7 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __NES_BTL_H -#define __NES_BTL_H +#ifndef MAME_BUS_NES_BOOTLEG_H +#define MAME_BUS_NES_BOOTLEG_H #include "nxrom.h" @@ -14,12 +14,14 @@ public: // construction/destruction nes_ax5705_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: void set_prg(); uint8_t m_mmc_prg_bank[2]; @@ -34,14 +36,15 @@ class nes_sc127_device : public nes_nrom_device public: // construction/destruction nes_sc127_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void hblank_irq(int scanline, int vblank, int blanked) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: uint16_t m_irq_count; int m_irq_enable; @@ -55,20 +58,22 @@ class nes_mbaby_device : public nes_nrom_device public: // construction/destruction nes_mbaby_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - - // device-level overrides - virtual void device_start() override; - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; virtual DECLARE_READ8_MEMBER(read_m) override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + private: + static constexpr device_timer_id TIMER_IRQ = 0; + uint8_t m_latch; int m_irq_enable; - static const device_timer_id TIMER_IRQ = 0; emu_timer *irq_timer; attotime timer_freq; }; @@ -82,13 +87,15 @@ public: // construction/destruction nes_asn_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_READ8_MEMBER(read_m) override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: uint8_t m_latch; }; @@ -102,13 +109,15 @@ public: // construction/destruction nes_smb3p_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + private: uint16_t m_irq_count; int m_irq_enable; @@ -125,14 +134,15 @@ class nes_btl_dn_device : public nes_nrom_device public: // construction/destruction nes_btl_dn_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void hblank_irq(int scanline, int vblank, int blanked) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: uint16_t m_irq_count; }; @@ -146,13 +156,15 @@ public: // construction/destruction nes_whirl2706_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_READ8_MEMBER(read_m) override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: uint8_t m_latch; }; @@ -166,9 +178,6 @@ public: // construction/destruction nes_smb2j_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; virtual DECLARE_READ8_MEMBER(read_l) override; virtual DECLARE_READ8_MEMBER(read_m) override; virtual DECLARE_WRITE8_MEMBER(write_ex) override; @@ -177,6 +186,11 @@ public: virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + private: uint16_t m_irq_count; int m_irq_enable; @@ -193,15 +207,16 @@ class nes_smb2ja_device : public nes_nrom_device public: // construction/destruction nes_smb2ja_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - - // device-level overrides - virtual void device_start() override; - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; virtual DECLARE_READ8_MEMBER(read_m) override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + private: uint16_t m_irq_count; int m_irq_enable; @@ -218,16 +233,17 @@ class nes_smb2jb_device : public nes_nrom_device public: // construction/destruction nes_smb2jb_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - - // device-level overrides - virtual void device_start() override; - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; virtual DECLARE_READ8_MEMBER(read_m) override; virtual DECLARE_WRITE8_MEMBER(write_l) override; virtual DECLARE_WRITE8_MEMBER(write_ex) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + private: uint16_t m_irq_count; int m_irq_enable; @@ -245,13 +261,15 @@ public: // construction/destruction nes_09034a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_ex) override; virtual DECLARE_READ8_MEMBER(read_m) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: uint8_t m_reg; }; @@ -265,13 +283,15 @@ public: // construction/destruction nes_tobidase_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_READ8_MEMBER(read_m) override; virtual DECLARE_WRITE8_MEMBER(write_l) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: uint8_t m_latch; }; @@ -285,8 +305,6 @@ public: // construction/destruction nes_lh32_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_READ8_MEMBER(read_m) override; virtual DECLARE_READ8_MEMBER(read_h) override; virtual DECLARE_WRITE8_MEMBER(write_m) override; @@ -294,6 +312,10 @@ public: virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: uint8_t m_latch; }; @@ -307,14 +329,16 @@ public: // construction/destruction nes_lh10_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_READ8_MEMBER(read_h) override; virtual DECLARE_READ8_MEMBER(read_m) override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: void update_prg(); uint8_t m_latch; @@ -330,9 +354,6 @@ public: // construction/destruction nes_lh53_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; virtual DECLARE_READ8_MEMBER(read_m) override; virtual DECLARE_READ8_MEMBER(read_h) override; virtual DECLARE_WRITE8_MEMBER(write_m) override {} @@ -340,6 +361,11 @@ public: virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + private: uint16_t m_irq_count; int m_irq_enable; @@ -359,8 +385,6 @@ public: // construction/destruction nes_2708_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_READ8_MEMBER(read_m) override; virtual DECLARE_READ8_MEMBER(read_h) override; virtual DECLARE_WRITE8_MEMBER(write_m) override; @@ -368,6 +392,10 @@ public: virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: uint8_t m_reg[2]; }; @@ -380,14 +408,16 @@ public: // nes_ac08_device/destruction nes_ac08_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_READ8_MEMBER(read_m) override; virtual DECLARE_WRITE8_MEMBER(write_ex) override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: uint8_t m_latch; }; @@ -399,14 +429,15 @@ class nes_unl_bb_device : public nes_nrom_device public: // construction/destruction nes_unl_bb_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - - // device-level overrides - virtual void device_start() override; virtual DECLARE_READ8_MEMBER(read_m) override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: uint8_t m_reg[2]; }; @@ -419,12 +450,14 @@ public: // construction/destruction nes_mmalee_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_READ8_MEMBER(read_m) override; virtual DECLARE_WRITE8_MEMBER(write_m) override; virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; }; // ======================> nes_shuiguan_device @@ -435,14 +468,16 @@ public: // construction/destruction nes_shuiguan_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; virtual DECLARE_READ8_MEMBER(read_m) override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + private: uint16_t m_irq_count; int m_irq_enable; @@ -461,37 +496,39 @@ public: // construction/destruction nes_rt01_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_READ8_MEMBER(read_h) override; virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; }; // device type definition -extern const device_type NES_AX5705; -extern const device_type NES_SC127; -extern const device_type NES_MARIOBABY; -extern const device_type NES_ASN; -extern const device_type NES_SMB3PIRATE; -extern const device_type NES_BTL_DNINJA; -extern const device_type NES_WHIRLWIND_2706; -extern const device_type NES_SMB2J; -extern const device_type NES_SMB2JA; -extern const device_type NES_SMB2JB; -extern const device_type NES_09034A; -extern const device_type NES_TOBIDASE; -extern const device_type NES_LH32; -extern const device_type NES_LH10; -extern const device_type NES_LH53; -extern const device_type NES_2708; -extern const device_type NES_AC08; -extern const device_type NES_UNL_BB; -extern const device_type NES_MMALEE; -extern const device_type NES_SHUIGUAN; -extern const device_type NES_RT01; - - -#endif +DECLARE_DEVICE_TYPE(NES_AX5705, nes_ax5705_device) +DECLARE_DEVICE_TYPE(NES_SC127, nes_sc127_device) +DECLARE_DEVICE_TYPE(NES_MARIOBABY, nes_mbaby_device) +DECLARE_DEVICE_TYPE(NES_ASN, nes_asn_device) +DECLARE_DEVICE_TYPE(NES_SMB3PIRATE, nes_smb3p_device) +DECLARE_DEVICE_TYPE(NES_BTL_DNINJA, nes_btl_dn_device) +DECLARE_DEVICE_TYPE(NES_WHIRLWIND_2706, nes_whirl2706_device) +DECLARE_DEVICE_TYPE(NES_SMB2J, nes_smb2j_device) +DECLARE_DEVICE_TYPE(NES_SMB2JA, nes_smb2ja_device) +DECLARE_DEVICE_TYPE(NES_SMB2JB, nes_smb2jb_device) +DECLARE_DEVICE_TYPE(NES_09034A, nes_09034a_device) +DECLARE_DEVICE_TYPE(NES_TOBIDASE, nes_tobidase_device) +DECLARE_DEVICE_TYPE(NES_LH32, nes_lh32_device) +DECLARE_DEVICE_TYPE(NES_LH10, nes_lh10_device) +DECLARE_DEVICE_TYPE(NES_LH53, nes_lh53_device) +DECLARE_DEVICE_TYPE(NES_2708, nes_2708_device) +DECLARE_DEVICE_TYPE(NES_AC08, nes_ac08_device) +DECLARE_DEVICE_TYPE(NES_UNL_BB, nes_unl_bb_device) +DECLARE_DEVICE_TYPE(NES_MMALEE, nes_mmalee_device) +DECLARE_DEVICE_TYPE(NES_SHUIGUAN, nes_shuiguan_device) +DECLARE_DEVICE_TYPE(NES_RT01, nes_rt01_device) + + +#endif // MAME_BUS_NES_BOOTLEG_H diff --git a/src/devices/bus/nes/camerica.cpp b/src/devices/bus/nes/camerica.cpp index ca4e31bc11f..7b9d413f6c9 100644 --- a/src/devices/bus/nes/camerica.cpp +++ b/src/devices/bus/nes/camerica.cpp @@ -41,24 +41,24 @@ // constructor //------------------------------------------------- -const device_type NES_BF9093 = device_creator; -const device_type NES_BF9096 = device_creator; -const device_type NES_GOLDEN5 = device_creator; +DEFINE_DEVICE_TYPE(NES_BF9093, nes_bf9093_device, "nes_bf9093", "NES Cart Camerica BF9093 PCB") +DEFINE_DEVICE_TYPE(NES_BF9096, nes_bf9096_device, "nes_bf9096", "NES Cart Camerica BF9096 PCB") +DEFINE_DEVICE_TYPE(NES_GOLDEN5, nes_golden5_device, "nes_golden5", "NES Cart Camerica Golden 5 PCB") nes_bf9093_device::nes_bf9093_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_BF9093, "NES Cart Camerica BF9093 PCB", tag, owner, clock, "nes_bf9093", __FILE__) + : nes_nrom_device(mconfig, NES_BF9093, tag, owner, clock) { } nes_bf9096_device::nes_bf9096_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_BF9096, "NES Cart Camerica BF9096 PCB", tag, owner, clock, "nes_bf9096", __FILE__), m_bank_base(0), m_latch(0) - { + : nes_nrom_device(mconfig, NES_BF9096, tag, owner, clock), m_bank_base(0), m_latch(0) +{ } nes_golden5_device::nes_golden5_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_GOLDEN5, "NES Cart Camerica Golden 5 PCB", tag, owner, clock, "nes_golden5", __FILE__), m_bank_base(0), m_latch(0) - { + : nes_nrom_device(mconfig, NES_GOLDEN5, tag, owner, clock), m_bank_base(0), m_latch(0) +{ } diff --git a/src/devices/bus/nes/camerica.h b/src/devices/bus/nes/camerica.h index ba3b103b0d5..b7a4782c342 100644 --- a/src/devices/bus/nes/camerica.h +++ b/src/devices/bus/nes/camerica.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __NES_CAMERICA_H -#define __NES_CAMERICA_H +#ifndef MAME_BUS_NES_CAMERICA_H +#define MAME_BUS_NES_CAMERICA_H + +#pragma once #include "nxrom.h" @@ -14,11 +16,13 @@ public: // construction/destruction nes_bf9093_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; }; @@ -30,13 +34,15 @@ public: // construction/destruction nes_bf9096_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual DECLARE_WRITE8_MEMBER(write_m) override { write_h(space, offset, data, mem_mask); } virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: uint8_t m_bank_base, m_latch; }; @@ -50,23 +56,22 @@ public: // construction/destruction nes_golden5_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: uint8_t m_bank_base, m_latch; }; - - - // device type definition -extern const device_type NES_BF9093; -extern const device_type NES_BF9096; -extern const device_type NES_GOLDEN5; +DECLARE_DEVICE_TYPE(NES_BF9093, nes_bf9093_device) +DECLARE_DEVICE_TYPE(NES_BF9096, nes_bf9096_device) +DECLARE_DEVICE_TYPE(NES_GOLDEN5, nes_golden5_device) -#endif +#endif // MAME_BUS_NES_CAMERICA_H diff --git a/src/devices/bus/nes/cne.cpp b/src/devices/bus/nes/cne.cpp index 616814bbdc2..1f0ad793937 100644 --- a/src/devices/bus/nes/cne.cpp +++ b/src/devices/bus/nes/cne.cpp @@ -32,23 +32,23 @@ // constructor //------------------------------------------------- -const device_type NES_CNE_DECATHL = device_creator; -const device_type NES_CNE_FSB = device_creator; -const device_type NES_CNE_SHLZ = device_creator; +DEFINE_DEVICE_TYPE(NES_CNE_DECATHL, nes_cne_decathl_device, "nes_cne_deca", "NES Cart C&E Decathlon PCB") +DEFINE_DEVICE_TYPE(NES_CNE_FSB, nes_cne_fsb_device, "nes_cne_fsb", "NES Cart C&E Feng Shen Bang PCB") +DEFINE_DEVICE_TYPE(NES_CNE_SHLZ, nes_cne_shlz_device, "nes_cne_shlz", "NES Cart C&E Sheng Huo Lie Zhuan PCB") nes_cne_decathl_device::nes_cne_decathl_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_CNE_DECATHL, "NES Cart C&E Decathlon PCB", tag, owner, clock, "nes_cne_deca", __FILE__) + : nes_nrom_device(mconfig, NES_CNE_DECATHL, tag, owner, clock) { } nes_cne_fsb_device::nes_cne_fsb_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_CNE_FSB, "NES Cart C&E Feng Shen Bang PCB", tag, owner, clock, "nes_cne_fsb", __FILE__) + : nes_nrom_device(mconfig, NES_CNE_FSB, tag, owner, clock) { } nes_cne_shlz_device::nes_cne_shlz_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_CNE_SHLZ, "NES Cart C&E Sheng Huo Lie Zhuan PCB", tag, owner, clock, "nes_cne_shlz", __FILE__) + : nes_nrom_device(mconfig, NES_CNE_SHLZ, tag, owner, clock) { } diff --git a/src/devices/bus/nes/cne.h b/src/devices/bus/nes/cne.h index 558067f2862..d5e117c791a 100644 --- a/src/devices/bus/nes/cne.h +++ b/src/devices/bus/nes/cne.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __NES_CNE_H -#define __NES_CNE_H +#ifndef MAME_BUS_NES_CNE_H +#define MAME_BUS_NES_CNE_H + +#pragma once #include "nxrom.h" @@ -14,11 +16,13 @@ public: // construction/destruction nes_cne_decathl_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; }; @@ -30,12 +34,14 @@ public: // construction/destruction nes_cne_fsb_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_READ8_MEMBER(read_m) override; virtual DECLARE_WRITE8_MEMBER(write_m) override; virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; }; @@ -47,20 +53,19 @@ public: // construction/destruction nes_cne_shlz_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_l) override; virtual void pcb_reset() override; -}; - - +protected: + // device-level overrides + virtual void device_start() override; +}; // device type definition -extern const device_type NES_CNE_DECATHL; -extern const device_type NES_CNE_FSB; -extern const device_type NES_CNE_SHLZ; +DECLARE_DEVICE_TYPE(NES_CNE_DECATHL, nes_cne_decathl_device) +DECLARE_DEVICE_TYPE(NES_CNE_FSB, nes_cne_fsb_device) +DECLARE_DEVICE_TYPE(NES_CNE_SHLZ, nes_cne_shlz_device) -#endif +#endif // MAME_BUS_NES_CNE_H diff --git a/src/devices/bus/nes/cony.cpp b/src/devices/bus/nes/cony.cpp index 3dbb66a7fb0..552941a6ac9 100644 --- a/src/devices/bus/nes/cony.cpp +++ b/src/devices/bus/nes/cony.cpp @@ -35,29 +35,29 @@ // constructor //------------------------------------------------- -const device_type NES_CONY = device_creator; -const device_type NES_YOKO = device_creator; - - -nes_cony_device::nes_cony_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : nes_nrom_device(mconfig, type, name, tag, owner, clock, shortname, source), - m_irq_count(0), - m_irq_enable(0), - irq_timer(nullptr), - m_latch1(0), - m_latch2(0), - m_extra1(0) - { +DEFINE_DEVICE_TYPE(NES_CONY, nes_cony_device, "nes_cony", "NES Cart Cony PCB") +DEFINE_DEVICE_TYPE(NES_YOKO, nes_yoko_device, "nes_yoko", "NES Cart Yoko PCB") + + +nes_cony_device::nes_cony_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : nes_nrom_device(mconfig, type, tag, owner, clock) + , m_irq_count(0) + , m_irq_enable(0) + , irq_timer(nullptr) + , m_latch1(0) + , m_latch2(0) + , m_extra1(0) +{ } nes_cony_device::nes_cony_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_CONY, "NES Cart Cony PCB", tag, owner, clock, "nes_cony", __FILE__), m_irq_count(0), m_irq_enable(0), irq_timer(nullptr), m_latch1(0), m_latch2(0), m_extra1(0) - { + : nes_cony_device(mconfig, NES_CONY, tag, owner, clock) +{ } nes_yoko_device::nes_yoko_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_cony_device(mconfig, NES_YOKO, "NES Cart Yoko PCB", tag, owner, clock, "nes_yoko", __FILE__), m_extra2(0) - { + : nes_cony_device(mconfig, NES_YOKO, tag, owner, clock), m_extra2(0) +{ } diff --git a/src/devices/bus/nes/cony.h b/src/devices/bus/nes/cony.h index 406952b69cb..b7b759a7fe1 100644 --- a/src/devices/bus/nes/cony.h +++ b/src/devices/bus/nes/cony.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __NES_CONY_H -#define __NES_CONY_H +#ifndef MAME_BUS_NES_CONY_H +#define MAME_BUS_NES_CONY_H + +#pragma once #include "nxrom.h" @@ -12,12 +14,8 @@ class nes_cony_device : public nes_nrom_device { public: // construction/destruction - nes_cony_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); nes_cony_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; virtual DECLARE_READ8_MEMBER(read_l) override; virtual DECLARE_WRITE8_MEMBER(write_l) override; virtual DECLARE_WRITE8_MEMBER(write_h) override; @@ -25,13 +23,20 @@ public: virtual void pcb_reset() override; protected: + static constexpr device_timer_id TIMER_IRQ = 0; + + nes_cony_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual void device_start() override; + virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + virtual void set_prg(); virtual void set_chr(); uint16_t m_irq_count; int m_irq_enable; - static const device_timer_id TIMER_IRQ = 0; emu_timer *irq_timer; uint8_t m_latch1, m_latch2; @@ -49,14 +54,16 @@ public: // construction/destruction nes_yoko_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_READ8_MEMBER(read_l) override; virtual DECLARE_WRITE8_MEMBER(write_l) override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: virtual void set_prg() override; virtual void set_chr() override; @@ -65,11 +72,8 @@ private: }; - - - // device type definition -extern const device_type NES_CONY; -extern const device_type NES_YOKO; +DECLARE_DEVICE_TYPE(NES_CONY, nes_cony_device) +DECLARE_DEVICE_TYPE(NES_YOKO, nes_yoko_device) -#endif +#endif // MAME_BUS_NES_CONY_H diff --git a/src/devices/bus/nes/datach.cpp b/src/devices/bus/nes/datach.cpp index e0cbe5ffbeb..d1600ec8fb2 100644 --- a/src/devices/bus/nes/datach.cpp +++ b/src/devices/bus/nes/datach.cpp @@ -43,10 +43,10 @@ //------------------------------------------------- datach_cart_interface::datach_cart_interface(const machine_config &mconfig, device_t &device) - : device_slot_card_interface(mconfig, device), - m_i2cmem(*this, "i2cmem"), - m_rom(nullptr), m_bank(0) - { + : device_slot_card_interface(mconfig, device) + , m_i2cmem(*this, "i2cmem") + , m_rom(nullptr), m_bank(0) +{ } datach_cart_interface::~datach_cart_interface() @@ -65,12 +65,13 @@ READ8_MEMBER(datach_cart_interface::read) // sub-cart slot device //------------------------------------------------- -const device_type NES_DATACH_SLOT = device_creator; +DEFINE_DEVICE_TYPE(NES_DATACH_SLOT, nes_datach_slot_device, "nes_datach_slot", "NES Datach Cartridge Slot") -nes_datach_slot_device::nes_datach_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, NES_DATACH_SLOT, "NES Datach Cartridge Slot", tag, owner, clock, "nes_datach_slot", __FILE__), - device_image_interface(mconfig, *this), - device_slot_interface(mconfig, *this), m_cart(nullptr) +nes_datach_slot_device::nes_datach_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, NES_DATACH_SLOT, tag, owner, clock) + , device_image_interface(mconfig, *this) + , device_slot_interface(mconfig, *this) + , m_cart(nullptr) { } @@ -159,23 +160,22 @@ ROM_START( datach_rom ) ROM_REGION(0x40000, "datachrom", ROMREGION_ERASEFF) ROM_END -const device_type NES_DATACH_ROM = device_creator; -const device_type NES_DATACH_24C01 = device_creator; +DEFINE_DEVICE_TYPE(NES_DATACH_ROM, nes_datach_rom_device, "nes_datach_rom", "NES Datach ROM") +DEFINE_DEVICE_TYPE(NES_DATACH_24C01, nes_datach_24c01_device, "nes_datach_ep1", "NES Datach + 24C01 PCB") -nes_datach_rom_device::nes_datach_rom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), - datach_cart_interface( mconfig, *this ) +nes_datach_rom_device::nes_datach_rom_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) + , datach_cart_interface(mconfig, *this) { } nes_datach_rom_device::nes_datach_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, NES_DATACH_ROM, "NES Datach ROM", tag, owner, clock, "nes_datach_rom", __FILE__), - datach_cart_interface( mconfig, *this ) + : nes_datach_rom_device(mconfig, NES_DATACH_ROM, tag, owner, clock) { } nes_datach_24c01_device::nes_datach_24c01_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_datach_rom_device(mconfig, NES_DATACH_24C01, "NES Datach + 24C01 PCB", tag, owner, clock, "nes_datach_ep1", __FILE__) + : nes_datach_rom_device(mconfig, NES_DATACH_24C01, tag, owner, clock) { } @@ -218,15 +218,18 @@ machine_config_constructor nes_datach_24c01_device::device_mconfig_additions() c // //--------------------------------- -const device_type NES_DATACH = device_creator; +DEFINE_DEVICE_TYPE(NES_DATACH, nes_datach_device, "nes_datach", "NES Cart Bandai Datach PCB") nes_datach_device::nes_datach_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_lz93d50_device(mconfig, NES_DATACH, "NES Cart Bandai Datach PCB", tag, owner, clock, "nes_datach", __FILE__), m_datach_latch(0), - m_i2cmem(*this, "i2cmem"), - m_reader(*this, "datach"), - m_subslot(*this, "datach_slot"), m_i2c_dir(0), m_i2c_in_use(0), serial_timer(nullptr) - { + : nes_lz93d50_device(mconfig, NES_DATACH, tag, owner, clock) + , m_datach_latch(0) + , m_i2cmem(*this, "i2cmem") + , m_reader(*this, "datach") + , m_subslot(*this, "datach_slot") + , m_i2c_dir(0), m_i2c_in_use(0) + , serial_timer(nullptr) +{ } diff --git a/src/devices/bus/nes/datach.h b/src/devices/bus/nes/datach.h index 404b86732da..17a3ece97e8 100644 --- a/src/devices/bus/nes/datach.h +++ b/src/devices/bus/nes/datach.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __NES_DATACH_H -#define __NES_DATACH_H +#ifndef MAME_BUS_NES_DATACH_H +#define MAME_BUS_NES_DATACH_H + +#pragma once #include "bandai.h" #include "softlist_dev.h" @@ -20,7 +22,6 @@ class datach_cart_interface : public device_slot_card_interface { public: // construction/destruction - datach_cart_interface(const machine_config &mconfig, device_t &device); virtual ~datach_cart_interface(); // reading and writing @@ -29,9 +30,11 @@ public: uint8_t *get_cart_base() { return m_rom; } void write_prg_bank(uint8_t bank) { m_bank = bank; } +protected: + datach_cart_interface(const machine_config &mconfig, device_t &device); + optional_device m_i2cmem; -protected: // internal state uint8_t *m_rom; // ROM is accessed via two 16K banks, but only the first one can be switched @@ -40,10 +43,13 @@ protected: // ======================> nes_datach_slot_device +class nes_datach_device; + class nes_datach_slot_device : public device_t, public device_image_interface, public device_slot_interface { + friend class nes_datach_device; public: // construction/destruction nes_datach_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); @@ -71,11 +77,12 @@ public: virtual DECLARE_READ8_MEMBER(read); void write_prg_bank(uint8_t bank) { if (m_cart) m_cart->write_prg_bank(bank); } +protected: datach_cart_interface* m_cart; }; // device type definition -extern const device_type NES_DATACH_SLOT; +DECLARE_DEVICE_TYPE(NES_DATACH_SLOT, nes_datach_slot_device) #define MCFG_DATACH_MINICART_ADD(_tag, _slot_intf) \ @@ -91,12 +98,10 @@ extern const device_type NES_DATACH_SLOT; // ======================> nes_datach_rom_device -class nes_datach_rom_device : public device_t, - public datach_cart_interface +class nes_datach_rom_device : public device_t, public datach_cart_interface { public: // construction/destruction - nes_datach_rom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); nes_datach_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides @@ -104,6 +109,8 @@ public: virtual uint8_t* get_cart_base(); protected: + nes_datach_rom_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -122,8 +129,8 @@ public: }; // device type definition -extern const device_type NES_DATACH_ROM; -extern const device_type NES_DATACH_24C01; +DECLARE_DEVICE_TYPE(NES_DATACH_ROM, nes_datach_rom_device) +DECLARE_DEVICE_TYPE(NES_DATACH_24C01, nes_datach_24c01_device) //--------------------------------- @@ -164,6 +171,6 @@ protected: // device type definition -extern const device_type NES_DATACH; +DECLARE_DEVICE_TYPE(NES_DATACH, nes_datach_device) -#endif +#endif // MAME_BUS_NES_DATACH_H diff --git a/src/devices/bus/nes/discrete.cpp b/src/devices/bus/nes/discrete.cpp index 99751d689a1..2e1f6a4c81b 100644 --- a/src/devices/bus/nes/discrete.cpp +++ b/src/devices/bus/nes/discrete.cpp @@ -35,29 +35,29 @@ // constructor //------------------------------------------------- -const device_type NES_74X161X161X32 = device_creator; -const device_type NES_74X139X74 = device_creator; -const device_type NES_74X377 = device_creator; -const device_type NES_74X161X138 = device_creator; +DEFINE_DEVICE_TYPE(NES_74X161X161X32, nes_74x161x161x32_device, "nes_74x161", "NES Cart Discrete Logic (74*161/161/32) PCB") +DEFINE_DEVICE_TYPE(NES_74X139X74, nes_74x139x74_device, "nes_74x139", "NES Cart Discrete Logic (74*139/74) PCB") +DEFINE_DEVICE_TYPE(NES_74X377, nes_74x377_device, "nes_74x377", "NES Cart Discrete Logic (74*377) PCB") +DEFINE_DEVICE_TYPE(NES_74X161X138, nes_74x161x138_device, "nes_bitcorp_dis", "NES Cart Discrete Logic (74*161/138) PCB") nes_74x161x161x32_device::nes_74x161x161x32_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_74X161X161X32, "NES Cart Discrete Logic (74*161/161/32) PCB", tag, owner, clock, "nes_74x161", __FILE__) + : nes_nrom_device(mconfig, NES_74X161X161X32, tag, owner, clock) { } nes_74x139x74_device::nes_74x139x74_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_74X139X74, "NES Cart Discrete Logic (74*139/74) PCB", tag, owner, clock, "nes_74x139", __FILE__) + : nes_nrom_device(mconfig, NES_74X139X74, tag, owner, clock) { } nes_74x377_device::nes_74x377_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_74X377, "NES Cart Discrete Logic (74*377) PCB", tag, owner, clock, "nes_74x377", __FILE__) + : nes_nrom_device(mconfig, NES_74X377, tag, owner, clock) { } nes_74x161x138_device::nes_74x161x138_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_74X161X138, "NES Cart Discrete Logic (74*161/138) PCB", tag, owner, clock, "nes_bitcorp_dis", __FILE__) + : nes_nrom_device(mconfig, NES_74X161X138, tag, owner, clock) { } diff --git a/src/devices/bus/nes/discrete.h b/src/devices/bus/nes/discrete.h index 7448e62b727..51576a77e41 100644 --- a/src/devices/bus/nes/discrete.h +++ b/src/devices/bus/nes/discrete.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __NES_DISCRETE_H -#define __NES_DISCRETE_H +#ifndef MAME_BUS_NES_DISCRETE_H +#define MAME_BUS_NES_DISCRETE_H + +#pragma once #include "nxrom.h" @@ -14,11 +16,13 @@ public: // construction/destruction nes_74x161x161x32_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; }; @@ -30,11 +34,13 @@ public: // construction/destruction nes_74x139x74_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_m) override; virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; }; @@ -46,11 +52,13 @@ public: // construction/destruction nes_74x377_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; }; @@ -62,19 +70,20 @@ public: // construction/destruction nes_74x161x138_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_m) override; virtual void pcb_reset() override; -}; +protected: + // device-level overrides + virtual void device_start() override; +}; // device type definition -extern const device_type NES_74X161X161X32; -extern const device_type NES_74X139X74; -extern const device_type NES_74X377; -extern const device_type NES_74X161X138; +DECLARE_DEVICE_TYPE(NES_74X161X161X32, nes_74x161x161x32_device) +DECLARE_DEVICE_TYPE(NES_74X139X74, nes_74x139x74_device) +DECLARE_DEVICE_TYPE(NES_74X377, nes_74x377_device) +DECLARE_DEVICE_TYPE(NES_74X161X138, nes_74x161x138_device) -#endif +#endif // MAME_BUS_NES_DISCRETE_H diff --git a/src/devices/bus/nes/disksys.cpp b/src/devices/bus/nes/disksys.cpp index 11ad8c7c7a9..24594848e76 100644 --- a/src/devices/bus/nes/disksys.cpp +++ b/src/devices/bus/nes/disksys.cpp @@ -100,15 +100,18 @@ void nes_disksys_device::unload_proc(device_image_interface &image) // //------------------------------------------------ -const device_type NES_DISKSYS = device_creator; +DEFINE_DEVICE_TYPE(NES_DISKSYS, nes_disksys_device, "fc_disksys", "FC RAM Expansion + Disk System PCB") nes_disksys_device::nes_disksys_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_DISKSYS, "FC RAM Expansion + Disk System PCB", tag, owner, clock, "fc_disksys", __FILE__), m_2c33_rom(nullptr), - m_fds_data(nullptr), - m_disk(*this, FLOPPY_0), irq_timer(nullptr), m_irq_count(0), m_irq_count_latch(0), m_irq_enable(0), m_irq_transfer(0), m_fds_motor_on(0), m_fds_door_closed(0), m_fds_current_side(0), m_fds_head_position(0), m_fds_status0(0), m_read_mode(0), m_drive_ready(0), - m_fds_sides(0), m_fds_last_side(0), m_fds_count(0) - { + : nes_nrom_device(mconfig, NES_DISKSYS, tag, owner, clock) + , m_2c33_rom(*this, "drive") + , m_fds_data(nullptr) + , m_disk(*this, FLOPPY_0) + , irq_timer(nullptr) + , m_irq_count(0), m_irq_count_latch(0), m_irq_enable(0), m_irq_transfer(0), m_fds_motor_on(0), m_fds_door_closed(0), m_fds_current_side(0), m_fds_head_position(0), m_fds_status0(0), m_read_mode(0), m_drive_ready(0) + , m_fds_sides(0), m_fds_last_side(0), m_fds_count(0) +{ } @@ -116,8 +119,6 @@ void nes_disksys_device::device_start() { common_start(); - m_2c33_rom = (uint8_t*)memregion("drive")->base(); - m_disk->floppy_install_load_proc(nes_disksys_device::load_proc); m_disk->floppy_install_unload_proc(nes_disksys_device::unload_proc); diff --git a/src/devices/bus/nes/disksys.h b/src/devices/bus/nes/disksys.h index 5f05125061b..863400ebe70 100644 --- a/src/devices/bus/nes/disksys.h +++ b/src/devices/bus/nes/disksys.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __NES_DISKSYS_H -#define __NES_DISKSYS_H +#ifndef MAME_BUS_NES_DISKSYS_H +#define MAME_BUS_NES_DISKSYS_H + +#pragma once #include "nxrom.h" #include "imagedev/flopdrv.h" @@ -15,10 +17,7 @@ public: // construction/destruction nes_disksys_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual machine_config_constructor device_mconfig_additions() const override; - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; virtual const tiny_rom_entry *device_rom_region() const override; virtual DECLARE_READ8_MEMBER(read_ex) override; @@ -33,11 +32,17 @@ public: virtual void hblank_irq(int scanline, int vblank, int blanked) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + + required_region_ptr m_2c33_rom; + +private: static void load_proc(device_image_interface &image, bool is_created); static void unload_proc(device_image_interface &image); -private: - uint8_t *m_2c33_rom; std::unique_ptr m_fds_data; // here, we store a copy of the disk required_device m_disk; @@ -64,8 +69,7 @@ private: }; - // device type definition -extern const device_type NES_DISKSYS; +DECLARE_DEVICE_TYPE(NES_DISKSYS, nes_disksys_device) -#endif +#endif // MAME_BUS_NES_DISKSYS_H diff --git a/src/devices/bus/nes/event.cpp b/src/devices/bus/nes/event.cpp index 2440926cd1a..3f6065f449d 100644 --- a/src/devices/bus/nes/event.cpp +++ b/src/devices/bus/nes/event.cpp @@ -32,18 +32,18 @@ // constructor //------------------------------------------------- -const device_type NES_EVENT = device_creator; +DEFINE_DEVICE_TYPE(NES_EVENT, nes_event_device, "nes_event", "NES Cart Event PCB") nes_event_device::nes_event_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_sxrom_device(mconfig, NES_EVENT, "NES Cart Event PCB", tag, owner, clock, "nes_event", __FILE__), - m_dsw(*this, "DIPSW"), - m_nwc_init(0), - event_timer(nullptr), - m_timer_count(0), - m_timer_on(0), - m_timer_enabled(0) - { + : nes_sxrom_device(mconfig, NES_EVENT, tag, owner, clock) + , m_dsw(*this, "DIPSW") + , m_nwc_init(0) + , event_timer(nullptr) + , m_timer_count(0) + , m_timer_on(0) + , m_timer_enabled(0) +{ } diff --git a/src/devices/bus/nes/event.h b/src/devices/bus/nes/event.h index af154b7fffc..b4b67614b50 100644 --- a/src/devices/bus/nes/event.h +++ b/src/devices/bus/nes/event.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __NES_EVENT_H -#define __NES_EVENT_H +#ifndef MAEM_BUS_NES_EVENT_H +#define MAEM_BUS_NES_EVENT_H + +#pragma once #include "mmc1.h" @@ -14,22 +16,25 @@ public: // construction/destruction nes_event_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; virtual ioport_constructor device_input_ports() const override; - virtual void update_regs(int reg) override; - - required_ioport m_dsw; virtual void pcb_reset() override; protected: + static constexpr device_timer_id TIMER_EVENT = 0; + + // device-level overrides + virtual void device_start() override; + virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + + virtual void update_regs(int reg) override; virtual void set_prg() override; virtual void set_chr() override; + + required_ioport m_dsw; + int m_nwc_init; - static const device_timer_id TIMER_EVENT = 0; emu_timer *event_timer; attotime timer_freq; @@ -39,6 +44,6 @@ protected: // device type definition -extern const device_type NES_EVENT; +DECLARE_DEVICE_TYPE(NES_EVENT, nes_event_device) -#endif +#endif // MAEM_BUS_NES_EVENT_H diff --git a/src/devices/bus/nes/ggenie.cpp b/src/devices/bus/nes/ggenie.cpp index 2064b6e014b..6b6c2c1ecd8 100644 --- a/src/devices/bus/nes/ggenie.cpp +++ b/src/devices/bus/nes/ggenie.cpp @@ -30,14 +30,14 @@ // constructor //------------------------------------------------- -const device_type NES_GGENIE = device_creator; +DEFINE_DEVICE_TYPE(NES_GGENIE, nes_ggenie_device, "nes_ggenie", "NES Cart Game Genie PCB") nes_ggenie_device::nes_ggenie_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_GGENIE, "NES Cart Game Genie PCB", tag, owner, clock, "nes_ggenie", __FILE__), - m_ggslot(*this, "gg_slot"), - m_gg_bypass(0) - { + : nes_nrom_device(mconfig, NES_GGENIE, tag, owner, clock) + , m_ggslot(*this, "gg_slot") + , m_gg_bypass(0) +{ } diff --git a/src/devices/bus/nes/ggenie.h b/src/devices/bus/nes/ggenie.h index 2a1289c4865..761e53f4f51 100644 --- a/src/devices/bus/nes/ggenie.h +++ b/src/devices/bus/nes/ggenie.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __NES_GGENIE_H -#define __NES_GGENIE_H +#ifndef MAME_BUS_NES_GGENIE_H +#define MAME_BUS_NES_GGENIE_H + +#pragma once #include "nxrom.h" @@ -14,8 +16,6 @@ public: // construction/destruction nes_ggenie_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_READ8_MEMBER(read_l) override; virtual DECLARE_READ8_MEMBER(read_m) override; virtual DECLARE_READ8_MEMBER(read_h) override; @@ -38,6 +38,9 @@ public: virtual void pcb_start(running_machine &machine, uint8_t *ciram_ptr, bool cart_mounted) override; private: + // device-level overrides + virtual void device_start() override; + // emulate the Game Genie! required_device m_ggslot; @@ -51,8 +54,7 @@ private: }; - // device type definition -extern const device_type NES_GGENIE; +DECLARE_DEVICE_TYPE(NES_GGENIE, nes_ggenie_device) -#endif +#endif // MAME_BUS_NES_GGENIE_H diff --git a/src/devices/bus/nes/henggedianzi.cpp b/src/devices/bus/nes/henggedianzi.cpp index eb69e5b3d94..0ef0d2b8ab0 100644 --- a/src/devices/bus/nes/henggedianzi.cpp +++ b/src/devices/bus/nes/henggedianzi.cpp @@ -38,24 +38,24 @@ // constructor //------------------------------------------------- -const device_type NES_HENGG_SRICH = device_creator; -const device_type NES_HENGG_XHZS = device_creator; -const device_type NES_HENGG_SHJY3 = device_creator; +DEFINE_DEVICE_TYPE(NES_HENGG_SRICH, nes_hengg_srich_device, "nes_hengg_srich", "NES Cart Henggedianzi Super Rich PCB") +DEFINE_DEVICE_TYPE(NES_HENGG_XHZS, nes_hengg_xhzs_device, "nes_hengg_xhzs", "NES Cart Henggedianzi Xing He Zhan Shi PCB") +DEFINE_DEVICE_TYPE(NES_HENGG_SHJY3, nes_hengg_shjy3_device, "nes_hengg_shjy3", "NES Cart Henggedianzi Shen Hua Jian Yun III PCB") nes_hengg_srich_device::nes_hengg_srich_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_HENGG_SRICH, "NES Cart Henggedianzi Super Rich PCB", tag, owner, clock, "nes_hengg_srich", __FILE__) + : nes_nrom_device(mconfig, NES_HENGG_SRICH, tag, owner, clock) { } nes_hengg_xhzs_device::nes_hengg_xhzs_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_HENGG_XHZS, "NES Cart Henggedianzi Xing He Zhan Shi PCB", tag, owner, clock, "nes_hengg_xhzs", __FILE__) + : nes_nrom_device(mconfig, NES_HENGG_XHZS, tag, owner, clock) { } nes_hengg_shjy3_device::nes_hengg_shjy3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_HENGG_SHJY3, "NES Cart Henggedianzi Shen Hua Jian Yun III PCB", tag, owner, clock, "nes_hengg_shjy3", __FILE__), m_irq_count(0), m_irq_count_latch(0), m_irq_enable(0), m_chr_mode(0) - { + : nes_nrom_device(mconfig, NES_HENGG_SHJY3, tag, owner, clock), m_irq_count(0), m_irq_count_latch(0), m_irq_enable(0), m_chr_mode(0) +{ } diff --git a/src/devices/bus/nes/henggedianzi.h b/src/devices/bus/nes/henggedianzi.h index 59bdf287e78..d74da743425 100644 --- a/src/devices/bus/nes/henggedianzi.h +++ b/src/devices/bus/nes/henggedianzi.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __NES_HENGGEDIANZI_H -#define __NES_HENGGEDIANZI_H +#ifndef MAME_BUS_NES_HENGGEDIANZI_H +#define MAME_BUS_NES_HENGGEDIANZI_H + +#pragma once #include "nxrom.h" @@ -14,11 +16,13 @@ public: // construction/destruction nes_hengg_srich_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; }; @@ -30,12 +34,14 @@ public: // construction/destruction nes_hengg_xhzs_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_l) override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; }; @@ -47,13 +53,15 @@ public: // construction/destruction nes_hengg_shjy3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void hblank_irq(int scanline, int vblank, int blanked) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: void update_banks(); @@ -66,13 +74,9 @@ private: uint8_t m_mmc_extra_bank[8]; }; - - - - // device type definition -extern const device_type NES_HENGG_SRICH; -extern const device_type NES_HENGG_XHZS; -extern const device_type NES_HENGG_SHJY3; +DECLARE_DEVICE_TYPE(NES_HENGG_SRICH, nes_hengg_srich_device) +DECLARE_DEVICE_TYPE(NES_HENGG_XHZS, nes_hengg_xhzs_device) +DECLARE_DEVICE_TYPE(NES_HENGG_SHJY3, nes_hengg_shjy3_device) -#endif +#endif // MAME_BUS_NES_HENGGEDIANZI_H diff --git a/src/devices/bus/nes/hes.cpp b/src/devices/bus/nes/hes.cpp index 25d34fc4677..8d1d3a7a590 100644 --- a/src/devices/bus/nes/hes.cpp +++ b/src/devices/bus/nes/hes.cpp @@ -30,11 +30,11 @@ // constructor //------------------------------------------------- -const device_type NES_HES = device_creator; +DEFINE_DEVICE_TYPE(NES_HES, nes_hes_device, "nes_hes", "NES Cart HES PCB") nes_hes_device::nes_hes_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_HES, "NES Cart HES PCB", tag, owner, clock, "nes_hes", __FILE__) + : nes_nrom_device(mconfig, NES_HES, tag, owner, clock) { } diff --git a/src/devices/bus/nes/hes.h b/src/devices/bus/nes/hes.h index 5cd2ad539b8..d45d20a1a3f 100644 --- a/src/devices/bus/nes/hes.h +++ b/src/devices/bus/nes/hes.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __NES_HES_H -#define __NES_HES_H +#ifndef MAME_BUS_NES_HES_H +#define MAME_BUS_NES_HES_H + +#pragma once #include "nxrom.h" @@ -14,15 +16,17 @@ public: // construction/destruction nes_hes_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_l) override; virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; }; // device type definition -extern const device_type NES_HES; +DECLARE_DEVICE_TYPE(NES_HES, nes_hes_device) -#endif +#endif // MAME_BUS_NES_HES_H diff --git a/src/devices/bus/nes/hosenkan.cpp b/src/devices/bus/nes/hosenkan.cpp index a0eedabcd79..72d47061d43 100644 --- a/src/devices/bus/nes/hosenkan.cpp +++ b/src/devices/bus/nes/hosenkan.cpp @@ -13,7 +13,7 @@ #include "hosenkan.h" #include "cpu/m6502/m6502.h" -#include "video/ppu2c0x.h" // this has to be included so that IRQ functions can access PPU_BOTTOM_VISIBLE_SCANLINE +#include "video/ppu2c0x.h" // this has to be included so that IRQ functions can access ppu2c0x_device::BOTTOM_VISIBLE_SCANLINE #include "screen.h" @@ -30,17 +30,17 @@ // constructor //------------------------------------------------- -const device_type NES_HOSENKAN = device_creator; +DEFINE_DEVICE_TYPE(NES_HOSENKAN, nes_hosenkan_device, "nes_hosenkan", "NES Cart HOSENKAN PCB") nes_hosenkan_device::nes_hosenkan_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_HOSENKAN, "NES Cart HOSENKAN PCB", tag, owner, clock, "nes_hosenkan", __FILE__), - m_irq_count(0), - m_irq_count_latch(0), - m_irq_clear(0), - m_irq_enable(0), - m_latch(0) - { + : nes_nrom_device(mconfig, NES_HOSENKAN, tag, owner, clock) + , m_irq_count(0) + , m_irq_count_latch(0) + , m_irq_clear(0) + , m_irq_enable(0) + , m_latch(0) +{ } @@ -89,7 +89,7 @@ void nes_hosenkan_device::pcb_reset() // same as MMC3! void nes_hosenkan_device::hblank_irq( int scanline, int vblank, int blanked ) { - if (scanline < PPU_BOTTOM_VISIBLE_SCANLINE) + if (scanline < ppu2c0x_device::BOTTOM_VISIBLE_SCANLINE) { int prior_count = m_irq_count; if ((m_irq_count == 0) || m_irq_clear) diff --git a/src/devices/bus/nes/hosenkan.h b/src/devices/bus/nes/hosenkan.h index 0d87cc6acff..153638a9cbe 100644 --- a/src/devices/bus/nes/hosenkan.h +++ b/src/devices/bus/nes/hosenkan.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __NES_HOSENKAN_H -#define __NES_HOSENKAN_H +#ifndef MAME_BUS_NES_HOSENKAN_H +#define MAME_BUS_NES_HOSENKAN_H + +#pragma once #include "nxrom.h" @@ -14,14 +16,15 @@ public: // construction/destruction nes_hosenkan_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; - virtual void hblank_irq(int scanline, int vblank, int blanked) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: uint16_t m_irq_count, m_irq_count_latch; uint8_t m_irq_clear; @@ -30,10 +33,7 @@ private: uint8_t m_latch; }; - - // device type definition -extern const device_type NES_HOSENKAN; - +DECLARE_DEVICE_TYPE(NES_HOSENKAN, nes_hosenkan_device) -#endif +#endif // MAME_BUS_NES_HOSENKAN_H diff --git a/src/devices/bus/nes/irem.cpp b/src/devices/bus/nes/irem.cpp index c780d67315d..17fd84643b7 100644 --- a/src/devices/bus/nes/irem.cpp +++ b/src/devices/bus/nes/irem.cpp @@ -35,36 +35,36 @@ // constructor //------------------------------------------------- -const device_type NES_LROG017 = device_creator; -const device_type NES_HOLYDIVR = device_creator; -const device_type NES_TAM_S1 = device_creator; -const device_type NES_G101 = device_creator; -const device_type NES_H3001 = device_creator; +DEFINE_DEVICE_TYPE(NES_LROG017, nes_lrog017_device, "nes_lrog017", "NES Cart Irem Discrete 74*161/161/21/138 PCB") +DEFINE_DEVICE_TYPE(NES_HOLYDIVR, nes_holydivr_device, "nes_holydivr", "NES Cart Irem Holy Diver PCB") +DEFINE_DEVICE_TYPE(NES_TAM_S1, nes_tam_s1_device, "nes_tam_s1", "NES Cart Irem TAM-S1 PCB") +DEFINE_DEVICE_TYPE(NES_G101, nes_g101_device, "nes_g101", "NES Cart Irem G-101 PCB") +DEFINE_DEVICE_TYPE(NES_H3001, nes_h3001_device, "ns_h3001", "NES Cart Irem H-3001 PCB") nes_lrog017_device::nes_lrog017_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_LROG017, "NES Cart Irem Discrete 74*161/161/21/138 PCB", tag, owner, clock, "nes_lrog017", __FILE__) + : nes_nrom_device(mconfig, NES_LROG017, tag, owner, clock) { } nes_holydivr_device::nes_holydivr_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_HOLYDIVR, "NES Cart Irem Holy Diver PCB", tag, owner, clock, "nes_holydivr", __FILE__) + : nes_nrom_device(mconfig, NES_HOLYDIVR, tag, owner, clock) { } nes_tam_s1_device::nes_tam_s1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_TAM_S1, "NES Cart Irem TAM-S1 PCB", tag, owner, clock, "nes_tam_s1", __FILE__) + : nes_nrom_device(mconfig, NES_TAM_S1, tag, owner, clock) { } nes_g101_device::nes_g101_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_G101, "NES Cart Irem G-101 PCB", tag, owner, clock, "nes_g101", __FILE__), m_latch(0) - { + : nes_nrom_device(mconfig, NES_G101, tag, owner, clock), m_latch(0) +{ } nes_h3001_device::nes_h3001_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_H3001, "NES Cart Irem H-3001 PCB", tag, owner, clock, "nes_h3001", __FILE__), m_irq_count(0), m_irq_count_latch(0), m_irq_enable(0), irq_timer(nullptr) - { + : nes_nrom_device(mconfig, NES_H3001, tag, owner, clock), m_irq_count(0), m_irq_count_latch(0), m_irq_enable(0), irq_timer(nullptr) +{ } diff --git a/src/devices/bus/nes/irem.h b/src/devices/bus/nes/irem.h index 3aef2278957..a50077e70a3 100644 --- a/src/devices/bus/nes/irem.h +++ b/src/devices/bus/nes/irem.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __NES_IREM_H -#define __NES_IREM_H +#ifndef MAME_BUS_NES_IREM_H +#define MAME_BUS_NES_IREM_H + +#pragma once #include "nxrom.h" @@ -14,11 +16,13 @@ public: // construction/destruction nes_lrog017_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; }; @@ -30,11 +34,13 @@ public: // construction/destruction nes_holydivr_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; }; @@ -46,11 +52,13 @@ public: // construction/destruction nes_tam_s1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; }; @@ -62,13 +70,14 @@ public: // construction/destruction nes_g101_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; protected: + // device-level overrides + virtual void device_start() override; + uint8_t m_latch; }; @@ -81,14 +90,15 @@ public: // construction/destruction nes_h3001_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; protected: + // device-level overrides + virtual void device_start() override; + virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + uint16_t m_irq_count, m_irq_count_latch; int m_irq_enable; @@ -96,13 +106,11 @@ protected: emu_timer *irq_timer; }; - - // device type definition -extern const device_type NES_LROG017; -extern const device_type NES_HOLYDIVR; -extern const device_type NES_TAM_S1; -extern const device_type NES_G101; -extern const device_type NES_H3001; +DECLARE_DEVICE_TYPE(NES_LROG017, nes_lrog017_device) +DECLARE_DEVICE_TYPE(NES_HOLYDIVR, nes_holydivr_device) +DECLARE_DEVICE_TYPE(NES_TAM_S1, nes_tam_s1_device) +DECLARE_DEVICE_TYPE(NES_G101, nes_g101_device) +DECLARE_DEVICE_TYPE(NES_H3001, nes_h3001_device) -#endif +#endif // MAME_BUS_NES_IREM_H diff --git a/src/devices/bus/nes/jaleco.cpp b/src/devices/bus/nes/jaleco.cpp index 9a3ca8922fa..f537d75c696 100644 --- a/src/devices/bus/nes/jaleco.cpp +++ b/src/devices/bus/nes/jaleco.cpp @@ -39,104 +39,104 @@ // constructor //------------------------------------------------- -const device_type NES_JF11 = device_creator; -const device_type NES_JF16 = device_creator; -const device_type NES_JF17 = device_creator; -const device_type NES_JF19 = device_creator; -const device_type NES_SS88006 = device_creator; -const device_type NES_JF13 = device_creator; -const device_type NES_JF17_ADPCM = device_creator; -const device_type NES_JF19_ADPCM = device_creator; -const device_type NES_JF23 = device_creator; -const device_type NES_JF24 = device_creator; -const device_type NES_JF29 = device_creator; -const device_type NES_JF33 = device_creator; +DEFINE_DEVICE_TYPE(NES_JF11, nes_jf11_device, "nes_jf11", "NES Cart Jaleco JF-11 PCB") +DEFINE_DEVICE_TYPE(NES_JF13, nes_jf13_device, "nes_jf13", "NES Cart Jaleco JF-13 PCB") +DEFINE_DEVICE_TYPE(NES_JF16, nes_jf16_device, "nes_jf16", "NES Cart Jaleco JF-16 PCB") +DEFINE_DEVICE_TYPE(NES_JF17, nes_jf17_device, "nes_jf17", "NES Cart Jaleco JF-17 PCB") +DEFINE_DEVICE_TYPE(NES_JF17_ADPCM, nes_jf17_adpcm_device, "nes_jf17_pcm", "NES Cart Jaleco JF-17 + ADPCM (Moero!! Pro Tennis) PCB") +DEFINE_DEVICE_TYPE(NES_JF19, nes_jf19_device, "nes_jf19", "NES Cart Jaleco JF-19 (Moero!! Pro Soccer) PCB") +DEFINE_DEVICE_TYPE(NES_JF19_ADPCM, nes_jf19_adpcm_device, "nes_jf19_pcm", "NES Cart Jaleco JF-19 + ADPCM (Moero!! Pro Yakyuu 88) PCB") +DEFINE_DEVICE_TYPE(NES_SS88006, nes_ss88006_device, "nes_ss88006", "NES Cart Jaleco SS88006 PCB") +DEFINE_DEVICE_TYPE(NES_JF23, nes_jf23_device, "nes_jf23", "NES Cart Jaleco JF-23 (Shin Moero Pro Yakyuu) PCB") +DEFINE_DEVICE_TYPE(NES_JF24, nes_jf24_device, "nes_jf24", "NES Cart Jaleco JF-24 (Terao no Dosukoi Oozumou) PCB") +DEFINE_DEVICE_TYPE(NES_JF29, nes_jf29_device, "nes_jf29", "NES Cart Jaleco JF-29 (Moe Pro! '90) PCB") +DEFINE_DEVICE_TYPE(NES_JF33, nes_jf33_device, "nes_jf33", "NES Cart Jaleco JF-33 (Moe Pro! Saikyou-hen) PCB") nes_jf11_device::nes_jf11_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_JF11, "NES Cart Jaleco JF-11 PCB", tag, owner, clock, "nes_jf11", __FILE__) + : nes_nrom_device(mconfig, NES_JF11, tag, owner, clock) { } nes_jf13_device::nes_jf13_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_JF13, "NES Cart Jaleco JF-13 PCB", tag, owner, clock, "nes_jf13", __FILE__), - m_samples(*this, "samples") + : nes_nrom_device(mconfig, NES_JF13, tag, owner, clock) + , m_samples(*this, "samples") { } nes_jf16_device::nes_jf16_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_JF16, "NES Cart Jaleco JF-16 PCB", tag, owner, clock, "nes_jf16", __FILE__) + : nes_nrom_device(mconfig, NES_JF16, tag, owner, clock) { } -nes_jf17_device::nes_jf17_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : nes_nrom_device(mconfig, type, name, tag, owner, clock, shortname, source), m_latch(0) - { +nes_jf17_device::nes_jf17_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : nes_nrom_device(mconfig, type, tag, owner, clock), m_latch(0) +{ } nes_jf17_device::nes_jf17_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_JF17, "NES Cart Jaleco JF-17 PCB", tag, owner, clock, "nes_jf17", __FILE__), m_latch(0) - { + : nes_jf17_device(mconfig, NES_JF17, tag, owner, clock) +{ } nes_jf17_adpcm_device::nes_jf17_adpcm_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_jf17_device(mconfig, NES_JF17_ADPCM, "NES Cart Jaleco JF-17 + ADPCM (Moero!! Pro Tennis) PCB", tag, owner, clock, "nes_jf17_pcm", __FILE__), - m_samples(*this, "samples") + : nes_jf17_device(mconfig, NES_JF17_ADPCM, tag, owner, clock) + , m_samples(*this, "samples") { } -nes_jf19_device::nes_jf19_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : nes_nrom_device(mconfig, type, name, tag, owner, clock, shortname, source) +nes_jf19_device::nes_jf19_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : nes_nrom_device(mconfig, type, tag, owner, clock) { } nes_jf19_device::nes_jf19_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_JF19, "NES Cart Jaleco JF-19 (Moero!! Pro Soccer) PCB", tag, owner, clock, "nes_jf19", __FILE__) + : nes_jf19_device(mconfig, NES_JF19, tag, owner, clock) { } nes_jf19_adpcm_device::nes_jf19_adpcm_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_jf19_device(mconfig, NES_JF19_ADPCM, "NES Cart Jaleco JF-19 + ADPCM (Moero!! Pro Yakyuu 88) PCB", tag, owner, clock, "nes_jf19_pcm", __FILE__), - m_samples(*this, "samples") + : nes_jf19_device(mconfig, NES_JF19_ADPCM, tag, owner, clock) + , m_samples(*this, "samples") { } -nes_ss88006_device::nes_ss88006_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : nes_nrom_device(mconfig, type, name, tag, owner, clock, shortname, source), m_irq_count(0), m_irq_count_latch(0), m_irq_mode(0), m_irq_enable(0), irq_timer(nullptr), m_latch(0) - { +nes_ss88006_device::nes_ss88006_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : nes_nrom_device(mconfig, type, tag, owner, clock), m_irq_count(0), m_irq_count_latch(0), m_irq_mode(0), m_irq_enable(0), irq_timer(nullptr), m_latch(0) +{ } nes_ss88006_device::nes_ss88006_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_SS88006, "NES Cart Jaleco SS88006 PCB", tag, owner, clock, "nes_ss88006", __FILE__), m_irq_count(0), m_irq_count_latch(0), m_irq_mode(0), m_irq_enable(0), irq_timer(nullptr), m_latch(0) - { + : nes_ss88006_device(mconfig, NES_SS88006, tag, owner, clock) +{ } -nes_ss88006_adpcm_device::nes_ss88006_adpcm_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : nes_ss88006_device(mconfig, type, name, tag, owner, clock, shortname, source) +nes_ss88006_adpcm_device::nes_ss88006_adpcm_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : nes_ss88006_device(mconfig, type, tag, owner, clock) { } nes_jf23_device::nes_jf23_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_ss88006_adpcm_device(mconfig, NES_JF23, "NES Cart Jaleco Shin Moero Pro Yakyuu PCB", tag, owner, clock, "nes_jf23", __FILE__), - m_samples(*this, "samples") + : nes_ss88006_adpcm_device(mconfig, NES_JF23, tag, owner, clock) + , m_samples(*this, "samples") { } nes_jf24_device::nes_jf24_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_ss88006_adpcm_device(mconfig, NES_JF24, "NES Cart Jaleco Terao no Dosukoi Oozumou PCB", tag, owner, clock, "nes_jf24", __FILE__), - m_samples(*this, "samples") + : nes_ss88006_adpcm_device(mconfig, NES_JF24, tag, owner, clock) + , m_samples(*this, "samples") { } nes_jf29_device::nes_jf29_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_ss88006_adpcm_device(mconfig, NES_JF29, "NES Cart Jaleco Moe Pro! '90 PCB", tag, owner, clock, "nes_jf29", __FILE__), - m_samples(*this, "samples") + : nes_ss88006_adpcm_device(mconfig, NES_JF29, tag, owner, clock) + , m_samples(*this, "samples") { } nes_jf33_device::nes_jf33_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_ss88006_adpcm_device(mconfig, NES_JF33, "NES Cart Jaleco Moe Pro! Saikyou-hen PCB", tag, owner, clock, "nes_jf33", __FILE__), - m_samples(*this, "samples") + : nes_ss88006_adpcm_device(mconfig, NES_JF33, tag, owner, clock) + , m_samples(*this, "samples") { } diff --git a/src/devices/bus/nes/jaleco.h b/src/devices/bus/nes/jaleco.h index 5ad09a78cba..5fe977bba04 100644 --- a/src/devices/bus/nes/jaleco.h +++ b/src/devices/bus/nes/jaleco.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __NES_JALECO_H -#define __NES_JALECO_H +#ifndef MAME_BUS_NES_JALECO_H +#define MAME_BUS_NES_JALECO_H + +#pragma once #include "nxrom.h" #include "sound/samples.h" @@ -15,11 +17,13 @@ public: // construction/destruction nes_jf11_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_m) override; virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; }; @@ -31,13 +35,15 @@ public: // construction/destruction nes_jf13_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual machine_config_constructor device_mconfig_additions() const override; virtual DECLARE_WRITE8_MEMBER(write_m) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: required_device m_samples; }; @@ -51,11 +57,13 @@ public: // construction/destruction nes_jf16_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; }; @@ -65,16 +73,18 @@ class nes_jf17_device : public nes_nrom_device { public: // construction/destruction - nes_jf17_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); nes_jf17_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; protected: + nes_jf17_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual void device_start() override; + uint8_t m_latch; }; @@ -101,14 +111,17 @@ class nes_jf19_device : public nes_nrom_device { public: // construction/destruction - nes_jf19_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); nes_jf19_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; + +protected: + nes_jf19_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual void device_start() override; }; @@ -134,18 +147,20 @@ class nes_ss88006_device : public nes_nrom_device { public: // construction/destruction - nes_ss88006_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); nes_ss88006_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; virtual DECLARE_WRITE8_MEMBER(ss88006_write); virtual DECLARE_WRITE8_MEMBER(write_h) override { ss88006_write(space, offset, data, mem_mask); } virtual void pcb_reset() override; protected: + nes_ss88006_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual void device_start() override; + virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + uint16_t m_irq_count, m_irq_count_latch; uint8_t m_irq_mode; int m_irq_enable; @@ -164,11 +179,10 @@ protected: class nes_ss88006_adpcm_device : public nes_ss88006_device { -public: +protected: // construction/destruction - nes_ss88006_adpcm_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); + nes_ss88006_adpcm_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides void ss88006_adpcm_write(address_space &space, offs_t offset, uint8_t data, samples_device *dev); }; @@ -184,8 +198,9 @@ public: virtual machine_config_constructor device_mconfig_additions() const override; private: - required_device m_samples; virtual DECLARE_WRITE8_MEMBER(write_h) override { ss88006_adpcm_write(space, offset, data, m_samples); } + + required_device m_samples; }; @@ -200,8 +215,9 @@ public: virtual machine_config_constructor device_mconfig_additions() const override; private: - required_device m_samples; virtual DECLARE_WRITE8_MEMBER(write_h) override { ss88006_adpcm_write(space, offset, data, m_samples); } + + required_device m_samples; }; @@ -216,8 +232,9 @@ public: virtual machine_config_constructor device_mconfig_additions() const override; private: - required_device m_samples; virtual DECLARE_WRITE8_MEMBER(write_h) override { ss88006_adpcm_write(space, offset, data, m_samples); } + + required_device m_samples; }; @@ -232,25 +249,24 @@ public: virtual machine_config_constructor device_mconfig_additions() const override; private: - required_device m_samples; virtual DECLARE_WRITE8_MEMBER(write_h) override { ss88006_adpcm_write(space, offset, data, m_samples); } -}; - + required_device m_samples; +}; // device type definition -extern const device_type NES_JF11; -extern const device_type NES_JF13; -extern const device_type NES_JF16; -extern const device_type NES_JF17; -extern const device_type NES_JF17_ADPCM; -extern const device_type NES_JF19; -extern const device_type NES_JF19_ADPCM; -extern const device_type NES_SS88006; -extern const device_type NES_JF23; -extern const device_type NES_JF24; -extern const device_type NES_JF29; -extern const device_type NES_JF33; - -#endif +DECLARE_DEVICE_TYPE(NES_JF11, nes_jf11_device) +DECLARE_DEVICE_TYPE(NES_JF13, nes_jf13_device) +DECLARE_DEVICE_TYPE(NES_JF16, nes_jf16_device) +DECLARE_DEVICE_TYPE(NES_JF17, nes_jf17_device) +DECLARE_DEVICE_TYPE(NES_JF17_ADPCM, nes_jf17_adpcm_device) +DECLARE_DEVICE_TYPE(NES_JF19, nes_jf19_device) +DECLARE_DEVICE_TYPE(NES_JF19_ADPCM, nes_jf19_adpcm_device) +DECLARE_DEVICE_TYPE(NES_SS88006, nes_ss88006_device) +DECLARE_DEVICE_TYPE(NES_JF23, nes_jf23_device) +DECLARE_DEVICE_TYPE(NES_JF24, nes_jf24_device) +DECLARE_DEVICE_TYPE(NES_JF29, nes_jf29_device) +DECLARE_DEVICE_TYPE(NES_JF33, nes_jf33_device) + +#endif // MAME_BUS_NES_JALECO_H diff --git a/src/devices/bus/nes/jy.cpp b/src/devices/bus/nes/jy.cpp index d7582128e80..38a30848859 100644 --- a/src/devices/bus/nes/jy.cpp +++ b/src/devices/bus/nes/jy.cpp @@ -22,7 +22,7 @@ #include "jy.h" #include "cpu/m6502/m6502.h" -#include "video/ppu2c0x.h" // this has to be included so that IRQ functions can access PPU_BOTTOM_VISIBLE_SCANLINE +#include "video/ppu2c0x.h" // this has to be included so that IRQ functions can access ppu2c0x_device::BOTTOM_VISIBLE_SCANLINE #ifdef NES_PCB_DEBUG #define VERBOSE 1 @@ -37,36 +37,34 @@ // constructor //------------------------------------------------- -const device_type NES_JY_TYPEA = device_creator; -const device_type NES_JY_TYPEB = device_creator; -const device_type NES_JY_TYPEC = device_creator; +DEFINE_DEVICE_TYPE(NES_JY_TYPEA, nes_jy_typea_device, "nes_jya", "NES Cart JY Company Type A PCB") +DEFINE_DEVICE_TYPE(NES_JY_TYPEB, nes_jy_typeb_device, "nes_jyb", "NES Cart JY Company Type B PCB") +DEFINE_DEVICE_TYPE(NES_JY_TYPEC, nes_jy_typec_device, "nes_jyc", "NES Cart JY Company Type C PCB") -nes_jy_typea_device::nes_jy_typea_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : nes_nrom_device(mconfig, type, name, tag, owner, clock, shortname, source), m_latch(0), m_extra_chr_bank(0), m_extra_chr_mask(0), m_bank_6000(0), +nes_jy_typea_device::nes_jy_typea_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : nes_nrom_device(mconfig, type, tag, owner, clock), m_latch(0), m_extra_chr_bank(0), m_extra_chr_mask(0), m_bank_6000(0), m_irq_mode(0), m_irq_count(0), m_irq_prescale(0), m_irq_prescale_mask(0), m_irq_flip(0), m_irq_enable(0), m_irq_up(0), m_irq_down(0), irq_timer(nullptr) - { +{ } nes_jy_typea_device::nes_jy_typea_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_JY_TYPEA, "NES Cart JY Company Type A PCB", tag, owner, clock, "nes_jya", __FILE__), m_latch(0), m_extra_chr_bank(0), - m_extra_chr_mask(0), m_bank_6000(0), m_irq_mode(0), m_irq_count(0), m_irq_prescale(0), m_irq_prescale_mask(0), m_irq_flip(0), m_irq_enable(0), m_irq_up(0), - m_irq_down(0), irq_timer(nullptr) + : nes_nrom_device(mconfig, NES_JY_TYPEA, tag, owner, clock) { } -nes_jy_typeb_device::nes_jy_typeb_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : nes_jy_typea_device(mconfig, type, name, tag, owner, clock, shortname, source) +nes_jy_typeb_device::nes_jy_typeb_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : nes_jy_typea_device(mconfig, type, tag, owner, clock) { } nes_jy_typeb_device::nes_jy_typeb_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_jy_typea_device(mconfig, NES_JY_TYPEB, "NES Cart JY Company Type B PCB", tag, owner, clock, "nes_jyb", __FILE__) + : nes_jy_typeb_device(mconfig, NES_JY_TYPEB, tag, owner, clock) { } nes_jy_typec_device::nes_jy_typec_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_jy_typeb_device(mconfig, NES_JY_TYPEC, "NES Cart JY Company Type C PCB", tag, owner, clock, "nes_jyc", __FILE__) + : nes_jy_typeb_device(mconfig, NES_JY_TYPEC, tag, owner, clock) { } @@ -238,7 +236,7 @@ void nes_jy_typea_device::device_timer(emu_timer &timer, device_timer_id id, int void nes_jy_typea_device::scanline_irq(int scanline, int vblank, int blanked) { - if (scanline < PPU_BOTTOM_VISIBLE_SCANLINE) + if (scanline < ppu2c0x_device::BOTTOM_VISIBLE_SCANLINE) irq_clock(blanked, 1); } diff --git a/src/devices/bus/nes/jy.h b/src/devices/bus/nes/jy.h index 5c835e42a87..80be5d98631 100644 --- a/src/devices/bus/nes/jy.h +++ b/src/devices/bus/nes/jy.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __NES_JY_H -#define __NES_JY_H +#ifndef MAME_BUS_NES_JY_H +#define MAME_BUS_NES_JY_H + +#pragma once #include "nxrom.h" @@ -12,12 +14,8 @@ class nes_jy_typea_device : public nes_nrom_device { public: // construction/destruction - nes_jy_typea_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); nes_jy_typea_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; virtual DECLARE_READ8_MEMBER(read_l) override; virtual DECLARE_READ8_MEMBER(read_m) override; virtual DECLARE_WRITE8_MEMBER(write_l) override; @@ -30,6 +28,12 @@ public: virtual void pcb_reset() override; protected: + nes_jy_typea_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual void device_start() override; + virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + void irq_clock(int blanked, int mode); void update_banks(int reg); void update_prg(); @@ -69,10 +73,11 @@ class nes_jy_typeb_device : public nes_jy_typea_device { public: // construction/destruction - nes_jy_typeb_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); nes_jy_typeb_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); protected: + nes_jy_typeb_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + void update_mirror_typeb(); virtual void update_mirror() override { update_mirror_typeb(); } }; @@ -93,12 +98,9 @@ protected: }; - - - // device type definition -extern const device_type NES_JY_TYPEA; -extern const device_type NES_JY_TYPEB; -extern const device_type NES_JY_TYPEC; +DECLARE_DEVICE_TYPE(NES_JY_TYPEA, nes_jy_typea_device) +DECLARE_DEVICE_TYPE(NES_JY_TYPEB, nes_jy_typeb_device) +DECLARE_DEVICE_TYPE(NES_JY_TYPEC, nes_jy_typec_device) -#endif +#endif // MAME_BUS_NES_JY_H diff --git a/src/devices/bus/nes/kaiser.cpp b/src/devices/bus/nes/kaiser.cpp index 5f6b7776057..5ec2355dba6 100644 --- a/src/devices/bus/nes/kaiser.cpp +++ b/src/devices/bus/nes/kaiser.cpp @@ -48,70 +48,70 @@ // constructor //------------------------------------------------- -const device_type NES_KS7058 = device_creator; -const device_type NES_KS7022 = device_creator; -const device_type NES_KS7032 = device_creator; -const device_type NES_KS202 = device_creator; -const device_type NES_KS7017 = device_creator; -const device_type NES_KS7012 = device_creator; -const device_type NES_KS7013B = device_creator; -const device_type NES_KS7031 = device_creator; -const device_type NES_KS7016 = device_creator; -const device_type NES_KS7037 = device_creator; +DEFINE_DEVICE_TYPE(NES_KS7058, nes_ks7058_device, "nes_ks7058", "NES Cart Kaiser KS-7058 PCB") +DEFINE_DEVICE_TYPE(NES_KS7022, nes_ks7022_device, "nes_ks7022", "NES Cart Kaiser KS-7022 PCB") +DEFINE_DEVICE_TYPE(NES_KS7032, nes_ks7032_device, "nes_ks7032", "NES Cart Kaiser KS-7032 PCB") +DEFINE_DEVICE_TYPE(NES_KS202, nes_ks202_device, "nes_ks202", "NES Cart Kaiser KS-202 PCB") +DEFINE_DEVICE_TYPE(NES_KS7017, nes_ks7017_device, "nes_ks7017", "NES Cart Kaiser KS-7017 PCB") +DEFINE_DEVICE_TYPE(NES_KS7012, nes_ks7012_device, "nes_ks7012", "NES Cart Kaiser KS-7012 PCB") +DEFINE_DEVICE_TYPE(NES_KS7013B, nes_ks7013b_device, "nes_ks7013b", "NES Cart Kaiser KS-7013B PCB") +DEFINE_DEVICE_TYPE(NES_KS7031, nes_ks7031_device, "nes_ks7031", "NES Cart Kaiser KS-7031 PCB") +DEFINE_DEVICE_TYPE(NES_KS7016, nes_ks7016_device, "nes_ks7016", "NES Cart Kaiser KS-7016 PCB") +DEFINE_DEVICE_TYPE(NES_KS7037, nes_ks7037_device, "nes_ks7037", "NES Cart Kaiser KS-7037 PCB") nes_ks7058_device::nes_ks7058_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_KS7058, "NES Cart Kaiser KS-7058 PCB", tag, owner, clock, "nes_ks7058", __FILE__) + : nes_nrom_device(mconfig, NES_KS7058, tag, owner, clock) { } nes_ks7022_device::nes_ks7022_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_KS7022, "NES Cart Kaiser KS-7022 PCB", tag, owner, clock, "nes_ks7022", __FILE__), m_latch(0) - { + : nes_nrom_device(mconfig, NES_KS7022, tag, owner, clock), m_latch(0) +{ } -nes_ks7032_device::nes_ks7032_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : nes_nrom_device(mconfig, type, name, tag, owner, clock, shortname, source), m_latch(0), m_irq_count(0), m_irq_enable(0), irq_timer(nullptr) - { +nes_ks7032_device::nes_ks7032_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : nes_nrom_device(mconfig, type, tag, owner, clock), m_latch(0), m_irq_count(0), m_irq_enable(0), irq_timer(nullptr) +{ } nes_ks7032_device::nes_ks7032_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_KS7032, "NES Cart Kaiser KS-7032 PCB", tag, owner, clock, "nes_ks7032", __FILE__), m_latch(0), m_irq_count(0), m_irq_enable(0), irq_timer(nullptr) - { + : nes_ks7032_device(mconfig, NES_KS7032, tag, owner, clock) +{ } nes_ks202_device::nes_ks202_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_ks7032_device(mconfig, NES_KS202, "NES Cart Kaiser KS-202 PCB", tag, owner, clock, "nes_ks202", __FILE__) + : nes_ks7032_device(mconfig, NES_KS202, tag, owner, clock) { } nes_ks7017_device::nes_ks7017_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_KS7017, "NES Cart Kaiser KS-7017 PCB", tag, owner, clock, "nes_ks7017", __FILE__), m_latch(0), m_irq_count(0), m_irq_status(0), m_irq_enable(0), irq_timer(nullptr) - { + : nes_nrom_device(mconfig, NES_KS7017, tag, owner, clock), m_latch(0), m_irq_count(0), m_irq_status(0), m_irq_enable(0), irq_timer(nullptr) +{ } nes_ks7012_device::nes_ks7012_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_KS7012, "NES Cart Kaiser KS-7012 PCB", tag, owner, clock, "nes_ks7012", __FILE__) + : nes_nrom_device(mconfig, NES_KS7012, tag, owner, clock) { } nes_ks7013b_device::nes_ks7013b_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_KS7013B, "NES Cart Kaiser KS-7013B PCB", tag, owner, clock, "nes_ks7013b", __FILE__) + : nes_nrom_device(mconfig, NES_KS7013B, tag, owner, clock) { } nes_ks7031_device::nes_ks7031_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_KS7031, "NES Cart Kaiser KS-7031 PCB", tag, owner, clock, "nes_ks7031", __FILE__) + : nes_nrom_device(mconfig, NES_KS7031, tag, owner, clock) { } nes_ks7016_device::nes_ks7016_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_KS7016, "NES Cart Kaiser KS-7016 PCB", tag, owner, clock, "nes_ks7016", __FILE__) + : nes_nrom_device(mconfig, NES_KS7016, tag, owner, clock) { } nes_ks7037_device::nes_ks7037_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_KS7037, "NES Cart Kaiser KS-7037 PCB", tag, owner, clock, "nes_ks7037", __FILE__) + : nes_nrom_device(mconfig, NES_KS7037, tag, owner, clock) { } diff --git a/src/devices/bus/nes/kaiser.h b/src/devices/bus/nes/kaiser.h index c6d094d4390..8c544059aa9 100644 --- a/src/devices/bus/nes/kaiser.h +++ b/src/devices/bus/nes/kaiser.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __NES_KAISER_H -#define __NES_KAISER_H +#ifndef MAME_BUS_NES_KAISER_H +#define MAME_BUS_NES_KAISER_H + +#pragma once #include "nxrom.h" @@ -14,11 +16,13 @@ public: // construction/destruction nes_ks7058_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; }; @@ -30,13 +34,15 @@ public: // construction/destruction nes_ks7022_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_READ8_MEMBER(read_h) override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: uint8_t m_latch; }; @@ -48,12 +54,8 @@ class nes_ks7032_device : public nes_nrom_device { public: // construction/destruction - nes_ks7032_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); nes_ks7032_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; virtual DECLARE_READ8_MEMBER(read_m) override; virtual DECLARE_WRITE8_MEMBER(ks7032_write); virtual DECLARE_WRITE8_MEMBER(write_h) override { ks7032_write(space, offset, data, mem_mask); } @@ -61,6 +63,12 @@ public: virtual void pcb_reset() override; protected: + nes_ks7032_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual void device_start() override; + virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + void prg_update(); uint8_t m_latch; @@ -96,15 +104,17 @@ public: // construction/destruction nes_ks7017_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; virtual DECLARE_READ8_MEMBER(read_ex) override; virtual DECLARE_WRITE8_MEMBER(write_ex) override; virtual DECLARE_WRITE8_MEMBER(write_l) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + private: uint8_t m_latch; @@ -125,11 +135,13 @@ public: // construction/destruction nes_ks7012_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; }; // ======================> nes_ks7013b_device @@ -140,12 +152,14 @@ public: // construction/destruction nes_ks7013b_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_m) override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; }; @@ -157,14 +171,16 @@ public: // construction/destruction nes_ks7031_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_READ8_MEMBER(read_m) override; virtual DECLARE_READ8_MEMBER(read_h) override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: uint8_t m_reg[4]; }; @@ -178,13 +194,15 @@ public: // construction/destruction nes_ks7016_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_READ8_MEMBER(read_m) override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: uint8_t m_reg; }; @@ -197,8 +215,6 @@ public: // construction/destruction nes_ks7037_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_READ8_MEMBER(read_m) override; virtual DECLARE_READ8_MEMBER(read_h) override; virtual DECLARE_WRITE8_MEMBER(write_m) override; @@ -206,6 +222,10 @@ public: virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: void update_prg(); uint8_t m_latch; @@ -213,18 +233,16 @@ private: }; - - // device type definition -extern const device_type NES_KS7058; -extern const device_type NES_KS7022; -extern const device_type NES_KS7032; -extern const device_type NES_KS202; -extern const device_type NES_KS7017; -extern const device_type NES_KS7012; -extern const device_type NES_KS7013B; -extern const device_type NES_KS7031; -extern const device_type NES_KS7016; -extern const device_type NES_KS7037; - -#endif +DECLARE_DEVICE_TYPE(NES_KS7058, nes_ks7058_device) +DECLARE_DEVICE_TYPE(NES_KS7022, nes_ks7022_device) +DECLARE_DEVICE_TYPE(NES_KS7032, nes_ks7032_device) +DECLARE_DEVICE_TYPE(NES_KS202, nes_ks202_device) +DECLARE_DEVICE_TYPE(NES_KS7017, nes_ks7017_device) +DECLARE_DEVICE_TYPE(NES_KS7012, nes_ks7012_device) +DECLARE_DEVICE_TYPE(NES_KS7013B, nes_ks7013b_device) +DECLARE_DEVICE_TYPE(NES_KS7031, nes_ks7031_device) +DECLARE_DEVICE_TYPE(NES_KS7016, nes_ks7016_device) +DECLARE_DEVICE_TYPE(NES_KS7037, nes_ks7037_device) + +#endif // MAME_BUS_NES_KAISER_H diff --git a/src/devices/bus/nes/karastudio.cpp b/src/devices/bus/nes/karastudio.cpp index 7ed30571e89..0aae32c0606 100644 --- a/src/devices/bus/nes/karastudio.cpp +++ b/src/devices/bus/nes/karastudio.cpp @@ -51,9 +51,9 @@ //------------------------------------------------- kstudio_cart_interface::kstudio_cart_interface(const machine_config &mconfig, device_t &device) - : device_slot_card_interface(mconfig, device), - m_rom(nullptr), m_bank(0) - { + : device_slot_card_interface(mconfig, device) + , m_rom(nullptr), m_bank(0) +{ } kstudio_cart_interface::~kstudio_cart_interface() @@ -69,12 +69,13 @@ READ8_MEMBER(kstudio_cart_interface::read) // sub-cart slot device //------------------------------------------------- -const device_type NES_KSEXPANSION_SLOT = device_creator; +DEFINE_DEVICE_TYPE(NES_KSEXPANSION_SLOT, nes_kstudio_slot_device, "nes_ks_slot", "NES Karaoke Studio Expansion Slot") -nes_kstudio_slot_device::nes_kstudio_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, NES_KSEXPANSION_SLOT, "NES Karaoke Studio Expansion Slot", tag, owner, clock, "nes_ks_slot", __FILE__), - device_image_interface(mconfig, *this), - device_slot_interface(mconfig, *this), m_cart(nullptr) +nes_kstudio_slot_device::nes_kstudio_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, NES_KSEXPANSION_SLOT, tag, owner, clock) + , device_image_interface(mconfig, *this) + , device_slot_interface(mconfig, *this) + , m_cart(nullptr) { } @@ -142,11 +143,11 @@ ROM_START( ks_exp_rom ) ROM_REGION(0x20000, "exrom", ROMREGION_ERASEFF) ROM_END -const device_type NES_KSEXPANSION_ROM = device_creator; +DEFINE_DEVICE_TYPE(NES_KSEXPANSION_ROM, nes_kstudio_rom_device, "nes_ks_rom", "NES Karaoke Studio Expansion ROM") nes_kstudio_rom_device::nes_kstudio_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, NES_KSEXPANSION_ROM, "NES Karaoke Studio Expansion ROM", tag, owner, clock, "nes_ks_rom", __FILE__), - kstudio_cart_interface( mconfig, *this ) + : device_t(mconfig, NES_KSEXPANSION_ROM, tag, owner, clock) + , kstudio_cart_interface( mconfig, *this ) { } @@ -178,13 +179,14 @@ uint8_t *nes_kstudio_rom_device::get_cart_base() // //------------------------------------------ -const device_type NES_KARAOKESTUDIO = device_creator; +DEFINE_DEVICE_TYPE(NES_KARAOKESTUDIO, nes_karaokestudio_device, "nes_karaoke", "NES Cart Bandai Karaoke Studio PCB") nes_karaokestudio_device::nes_karaokestudio_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_KARAOKESTUDIO, "NES Cart Bandai Karaoke Studio PCB", tag, owner, clock, "nes_karaoke", __FILE__), m_exp_active(0), - m_subslot(*this, "exp_slot"), - m_mic_ipt(*this, "MIC") + : nes_nrom_device(mconfig, NES_KARAOKESTUDIO, tag, owner, clock) + , m_exp_active(0) + , m_subslot(*this, "exp_slot") + , m_mic_ipt(*this, "MIC") { } diff --git a/src/devices/bus/nes/karastudio.h b/src/devices/bus/nes/karastudio.h index a4f8bcdb20e..148c1fd1be1 100644 --- a/src/devices/bus/nes/karastudio.h +++ b/src/devices/bus/nes/karastudio.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __NES_KARASTUDIO_H -#define __NES_KARASTUDIO_H +#ifndef MAME_BUS_NES_KARASTUDIO_H +#define MAME_BUS_NES_KARASTUDIO_H + +#pragma once #include "nxrom.h" #include "softlist_dev.h" @@ -19,7 +21,6 @@ class kstudio_cart_interface : public device_slot_card_interface { public: // construction/destruction - kstudio_cart_interface(const machine_config &mconfig, device_t &device); virtual ~kstudio_cart_interface(); // reading and writing @@ -29,6 +30,8 @@ public: void write_prg_bank(uint8_t bank) { m_bank = bank; } protected: + kstudio_cart_interface(const machine_config &mconfig, device_t &device); + // internal state uint8_t *m_rom; // ROM is accessed via two 16K banks, but only the first one can be switched @@ -37,18 +40,18 @@ protected: // ======================> nes_kstudio_slot_device +class nes_karaokestudio_device; + class nes_kstudio_slot_device : public device_t, public device_image_interface, public device_slot_interface { + friend class nes_karaokestudio_device; public: // construction/destruction nes_kstudio_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual ~nes_kstudio_slot_device(); - // device-level overrides - virtual void device_start() override; - // image-level overrides virtual image_init_result call_load() override; virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); } @@ -68,11 +71,15 @@ public: virtual DECLARE_READ8_MEMBER(read); void write_prg_bank(uint8_t bank) { if (m_cart) m_cart->write_prg_bank(bank); } +protected: + // device-level overrides + virtual void device_start() override; + kstudio_cart_interface* m_cart; }; // device type definition -extern const device_type NES_KSEXPANSION_SLOT; +DECLARE_DEVICE_TYPE(NES_KSEXPANSION_SLOT, nes_kstudio_slot_device) #define MCFG_KSTUDIO_MINICART_ADD(_tag, _slot_intf) \ @@ -106,7 +113,7 @@ protected: }; // device type definition -extern const device_type NES_KSEXPANSION_ROM; +DECLARE_DEVICE_TYPE(NES_KSEXPANSION_ROM, nes_kstudio_rom_device) //------------------------------------------- @@ -123,10 +130,9 @@ public: // construction/destruction nes_karaokestudio_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual ioport_constructor device_input_ports() const override; virtual machine_config_constructor device_mconfig_additions() const override; + virtual DECLARE_READ8_MEMBER(read_m) override; virtual DECLARE_READ8_MEMBER(read_h) override; virtual DECLARE_WRITE8_MEMBER(write_h) override; @@ -134,6 +140,9 @@ public: virtual void pcb_reset() override; protected: + // device-level overrides + virtual void device_start() override; + int m_exp_active; required_device m_subslot; required_ioport m_mic_ipt; @@ -141,6 +150,6 @@ protected: // device type definition -extern const device_type NES_KARAOKESTUDIO; +DECLARE_DEVICE_TYPE(NES_KARAOKESTUDIO, nes_karaokestudio_device) -#endif +#endif // MAME_BUS_NES_KARASTUDIO_H diff --git a/src/devices/bus/nes/konami.cpp b/src/devices/bus/nes/konami.cpp index fd6de204003..c7c10097970 100644 --- a/src/devices/bus/nes/konami.cpp +++ b/src/devices/bus/nes/konami.cpp @@ -43,48 +43,46 @@ // constructor //------------------------------------------------- -const device_type NES_VRC1 = device_creator; -const device_type NES_VRC2 = device_creator; -const device_type NES_VRC3 = device_creator; -const device_type NES_VRC4 = device_creator; -const device_type NES_VRC6 = device_creator; -const device_type NES_VRC7 = device_creator; +DEFINE_DEVICE_TYPE(NES_VRC1, nes_konami_vrc1_device, "nes_vrc1", "NES Cart Konami VRC-1 PCB") +DEFINE_DEVICE_TYPE(NES_VRC2, nes_konami_vrc2_device, "nes_vrc2", "NES Cart Konami VRC-2 PCB") +DEFINE_DEVICE_TYPE(NES_VRC3, nes_konami_vrc3_device, "nes_vrc3", "NES Cart Konami VRC-3 PCB") +DEFINE_DEVICE_TYPE(NES_VRC4, nes_konami_vrc4_device, "nes_vrc4", "NES Cart Konami VRC-4 PCB") +DEFINE_DEVICE_TYPE(NES_VRC6, nes_konami_vrc6_device, "nes_vrc6", "NES Cart Konami VRC-6 PCB") +DEFINE_DEVICE_TYPE(NES_VRC7, nes_konami_vrc7_device, "nes_vrc7", "NES Cart Konami VRC-7 PCB") nes_konami_vrc1_device::nes_konami_vrc1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_VRC1, "NES Cart Konami VRC-1 PCB", tag, owner, clock, "nes_vrc1", __FILE__) + : nes_nrom_device(mconfig, NES_VRC1, tag, owner, clock) { } nes_konami_vrc2_device::nes_konami_vrc2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_VRC2, "NES Cart Konami VRC-2 PCB", tag, owner, clock, "nes_vrc2", __FILE__), m_latch(0) - { + : nes_nrom_device(mconfig, NES_VRC2, tag, owner, clock), m_latch(0) +{ } nes_konami_vrc3_device::nes_konami_vrc3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_VRC3, "NES Cart Konami VRC-3 PCB", tag, owner, clock, "nes_vrc3", __FILE__), m_irq_count(0), m_irq_count_latch(0), m_irq_enable(0), m_irq_enable_latch(0), m_irq_mode(0), irq_timer(nullptr) - { + : nes_nrom_device(mconfig, NES_VRC3, tag, owner, clock), m_irq_count(0), m_irq_count_latch(0), m_irq_enable(0), m_irq_enable_latch(0), m_irq_mode(0), irq_timer(nullptr) +{ } -nes_konami_vrc4_device::nes_konami_vrc4_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : nes_nrom_device(mconfig, type, name, tag, owner, clock, shortname, source), m_latch(0), m_mmc_prg_bank(0), m_irq_count(0), m_irq_count_latch(0), m_irq_enable(0), m_irq_enable_latch(0), m_irq_mode(0), m_irq_prescale(0), irq_timer(nullptr) - { +nes_konami_vrc4_device::nes_konami_vrc4_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : nes_nrom_device(mconfig, type, tag, owner, clock), m_latch(0), m_mmc_prg_bank(0), m_irq_count(0), m_irq_count_latch(0), m_irq_enable(0), m_irq_enable_latch(0), m_irq_mode(0), m_irq_prescale(0), irq_timer(nullptr) +{ } nes_konami_vrc4_device::nes_konami_vrc4_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_VRC4, "NES Cart Konami VRC-4 PCB", tag, owner, clock, "nes_vrc4", __FILE__), m_latch(0), m_mmc_prg_bank(0), m_irq_count(0), m_irq_count_latch(0), m_irq_enable(0), m_irq_enable_latch(0), m_irq_mode(0), m_irq_prescale(0), irq_timer(nullptr) - { + : nes_konami_vrc4_device(mconfig, NES_VRC4, tag, owner, clock) +{ } nes_konami_vrc6_device::nes_konami_vrc6_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_konami_vrc4_device(mconfig, NES_VRC6, "NES Cart Konami VRC-6 PCB", tag, owner, clock, "nes_vrc6", __FILE__), - m_vrc6snd(*this, "vrc6snd") + : nes_konami_vrc4_device(mconfig, NES_VRC6, tag, owner, clock), m_vrc6snd(*this, "vrc6snd") { } nes_konami_vrc7_device::nes_konami_vrc7_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_konami_vrc4_device(mconfig, NES_VRC7, "NES Cart Konami VRC-7 PCB", tag, owner, clock, "nes_vrc7", __FILE__), - m_ym2413(*this, "ym") + : nes_konami_vrc4_device(mconfig, NES_VRC7, tag, owner, clock), m_ym2413(*this, "ym") { } diff --git a/src/devices/bus/nes/konami.h b/src/devices/bus/nes/konami.h index 11a6e943bb3..ce711ef2803 100644 --- a/src/devices/bus/nes/konami.h +++ b/src/devices/bus/nes/konami.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __NES_KONAMI_H -#define __NES_KONAMI_H +#ifndef MAME_BUS_NES_KONAMI_H +#define MAME_BUS_NES_KONAMI_H + +#pragma once #include "nxrom.h" #include "sound/vrc6.h" @@ -16,12 +18,14 @@ public: // construction/destruction nes_konami_vrc1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: uint8_t m_mmc_vrom_bank[2]; }; @@ -35,14 +39,16 @@ public: // construction/destruction nes_konami_vrc2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_READ8_MEMBER(read_m) override; virtual DECLARE_WRITE8_MEMBER(write_m) override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: uint8_t m_mmc_vrom_bank[8]; uint8_t m_latch; @@ -57,19 +63,22 @@ public: // construction/destruction nes_konami_vrc3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + private: + static constexpr device_timer_id TIMER_IRQ = 0; + uint16_t m_irq_count, m_irq_count_latch; int m_irq_enable, m_irq_enable_latch; int m_irq_mode; - static const device_timer_id TIMER_IRQ = 0; emu_timer *irq_timer; }; @@ -80,17 +89,21 @@ class nes_konami_vrc4_device : public nes_nrom_device { public: // construction/destruction - nes_konami_vrc4_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); nes_konami_vrc4_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; protected: + static constexpr device_timer_id TIMER_IRQ = 0; + + nes_konami_vrc4_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual void device_start() override; + + virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; void set_prg(); uint8_t m_mmc_vrom_bank[8]; uint8_t m_latch, m_mmc_prg_bank; @@ -101,7 +114,6 @@ protected: int m_irq_mode; int m_irq_prescale; - static const device_timer_id TIMER_IRQ = 0; emu_timer *irq_timer; }; @@ -114,11 +126,13 @@ public: // construction/destruction nes_konami_vrc6_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual machine_config_constructor device_mconfig_additions() const override; virtual DECLARE_WRITE8_MEMBER(write_h) override; +protected: + // device-level overrides + virtual void device_start() override; + required_device m_vrc6snd; }; @@ -131,25 +145,26 @@ public: // construction/destruction nes_konami_vrc7_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual machine_config_constructor device_mconfig_additions() const override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: required_device m_ym2413; }; - // device type definition -extern const device_type NES_VRC1; -extern const device_type NES_VRC2; -extern const device_type NES_VRC3; -extern const device_type NES_VRC4; -extern const device_type NES_VRC6; -extern const device_type NES_VRC7; - -#endif +DECLARE_DEVICE_TYPE(NES_VRC1, nes_konami_vrc1_device) +DECLARE_DEVICE_TYPE(NES_VRC2, nes_konami_vrc2_device) +DECLARE_DEVICE_TYPE(NES_VRC3, nes_konami_vrc3_device) +DECLARE_DEVICE_TYPE(NES_VRC4, nes_konami_vrc4_device) +DECLARE_DEVICE_TYPE(NES_VRC6, nes_konami_vrc6_device) +DECLARE_DEVICE_TYPE(NES_VRC7, nes_konami_vrc7_device) + +#endif // MAME_BUS_NES_KONAMI_H diff --git a/src/devices/bus/nes/legacy.cpp b/src/devices/bus/nes/legacy.cpp index c5342004351..73528ede404 100644 --- a/src/devices/bus/nes/legacy.cpp +++ b/src/devices/bus/nes/legacy.cpp @@ -34,28 +34,28 @@ // constructor //------------------------------------------------- -const device_type NES_FFE3 = device_creator; -const device_type NES_FFE4 = device_creator; -const device_type NES_FFE8 = device_creator; +DEFINE_DEVICE_TYPE(NES_FFE3, nes_ffe3_device, "nes_ff3", "NES Cart FFE-3 PCB") +DEFINE_DEVICE_TYPE(NES_FFE4, nes_ffe4_device, "nes_ff4", "NES Cart FFE-4 PCB") +DEFINE_DEVICE_TYPE(NES_FFE8, nes_ffe8_device, "nes_ff8", "NES Cart FFE-8 PCB") nes_ffe3_device::nes_ffe3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_FFE3, "NES Cart FFE-3 PCB", tag, owner, clock, "nes_ff3", __FILE__) + : nes_nrom_device(mconfig, NES_FFE3, tag, owner, clock) { } -nes_ffe4_device::nes_ffe4_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : nes_nrom_device(mconfig, type, name, tag, owner, clock, shortname, source), m_irq_count(0), m_irq_enable(0), irq_timer(nullptr), m_latch(0), m_exram_enabled(0), m_exram_bank(0) - { +nes_ffe4_device::nes_ffe4_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : nes_nrom_device(mconfig, type, tag, owner, clock), m_irq_count(0), m_irq_enable(0), irq_timer(nullptr), m_latch(0), m_exram_enabled(0), m_exram_bank(0) +{ } nes_ffe4_device::nes_ffe4_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_FFE4, "NES Cart FFE-4 PCB", tag, owner, clock, "nes_ff4", __FILE__), m_irq_count(0), m_irq_enable(0), irq_timer(nullptr), m_latch(0), m_exram_enabled(0), m_exram_bank(0) - { + : nes_ffe4_device(mconfig, NES_FFE4, tag, owner, clock) +{ } nes_ffe8_device::nes_ffe8_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_ffe4_device(mconfig, NES_FFE8, "NES Cart FFE-8 PCB", tag, owner, clock, "nes_ff8", __FILE__) + : nes_ffe4_device(mconfig, NES_FFE8, tag, owner, clock) { } diff --git a/src/devices/bus/nes/legacy.h b/src/devices/bus/nes/legacy.h index 396eec92b46..91b44e108c0 100644 --- a/src/devices/bus/nes/legacy.h +++ b/src/devices/bus/nes/legacy.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __NES_LEGACY_H -#define __NES_LEGACY_H +#ifndef MAME_BUS_NES_LEGACY_H +#define MAME_BUS_NES_LEGACY_H + +#pragma once #include "nxrom.h" @@ -14,11 +16,13 @@ public: // construction/destruction nes_ffe3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; }; @@ -28,12 +32,8 @@ class nes_ffe4_device : public nes_nrom_device { public: // construction/destruction - nes_ffe4_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); nes_ffe4_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; virtual DECLARE_WRITE8_MEMBER(write_l) override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual DECLARE_READ8_MEMBER(chr_r) override; @@ -42,10 +42,17 @@ public: virtual void pcb_reset() override; protected: + static constexpr device_timer_id TIMER_IRQ = 0; + + nes_ffe4_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual void device_start() override; + virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + uint16_t m_irq_count; int m_irq_enable; - static const device_timer_id TIMER_IRQ = 0; emu_timer *irq_timer; uint8_t m_latch; @@ -71,11 +78,9 @@ public: }; - // device type definition -extern const device_type NES_FFE3; -extern const device_type NES_FFE4; -extern const device_type NES_FFE8; - +DECLARE_DEVICE_TYPE(NES_FFE3, nes_ffe3_device) +DECLARE_DEVICE_TYPE(NES_FFE4, nes_ffe4_device) +DECLARE_DEVICE_TYPE(NES_FFE8, nes_ffe8_device) -#endif +#endif // MAME_BUS_NES_LEGACY_H diff --git a/src/devices/bus/nes/mmc1.cpp b/src/devices/bus/nes/mmc1.cpp index fe1680116af..d324c153782 100644 --- a/src/devices/bus/nes/mmc1.cpp +++ b/src/devices/bus/nes/mmc1.cpp @@ -32,35 +32,35 @@ // constructor //------------------------------------------------- -const device_type NES_SXROM = device_creator; -const device_type NES_SOROM = device_creator; -const device_type NES_SXROM_A = device_creator; -const device_type NES_SOROM_A = device_creator; +DEFINE_DEVICE_TYPE(NES_SXROM, nes_sxrom_device, "nes_sxrom", "NES Cart SxROM (MMC-1) PCB") +DEFINE_DEVICE_TYPE(NES_SOROM, nes_sorom_device, "nes_sorom", "NES Cart SOROM (MMC-1) PCB") +DEFINE_DEVICE_TYPE(NES_SXROM_A, nes_sxrom_a_device, "nes_sxrom_a", "NES Cart SxROM (MMC-1A) PCB") +DEFINE_DEVICE_TYPE(NES_SOROM_A, nes_sorom_a_device, "nes_sorom_a", "NES Cart SOROM (MMC-1A) PCB") -nes_sxrom_device::nes_sxrom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : nes_nrom_device(mconfig, type, name, tag, owner, clock, shortname, source), m_reg_write_enable(0), m_latch(0), m_count(0) - { +nes_sxrom_device::nes_sxrom_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : nes_nrom_device(mconfig, type, tag, owner, clock), m_reg_write_enable(0), m_latch(0), m_count(0) +{ } nes_sxrom_device::nes_sxrom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_SXROM, "NES Cart SxROM (MMC-1) PCB", tag, owner, clock, "nes_sxrom", __FILE__), m_reg_write_enable(0), m_latch(0), m_count(0) - { + : nes_sxrom_device(mconfig, NES_SXROM, tag, owner, clock) +{ } nes_sorom_device::nes_sorom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_sxrom_device(mconfig, NES_SOROM, "NES Cart SOROM (MMC-1) PCB", tag, owner, clock, "nes_sorom", __FILE__) + : nes_sxrom_device(mconfig, NES_SOROM, tag, owner, clock) { } nes_sxrom_a_device::nes_sxrom_a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_sxrom_device(mconfig, NES_SXROM_A, "NES Cart SxROM (MMC-1A) PCB", tag, owner, clock, "nes_sxrom_a", __FILE__) + : nes_sxrom_device(mconfig, NES_SXROM_A, tag, owner, clock) { } nes_sorom_a_device::nes_sorom_a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_sxrom_device(mconfig, NES_SOROM_A, "NES Cart SOROM (MMC-1A) PCB", tag, owner, clock, "nes_sorom_a", __FILE__) + : nes_sxrom_device(mconfig, NES_SOROM_A, tag, owner, clock) { } diff --git a/src/devices/bus/nes/mmc1.h b/src/devices/bus/nes/mmc1.h index 8b30b6f0bbf..dd9ecccac75 100644 --- a/src/devices/bus/nes/mmc1.h +++ b/src/devices/bus/nes/mmc1.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __NES_MMC1_H -#define __NES_MMC1_H +#ifndef MAME_BUS_NES_MMC1_H +#define MAME_BUS_NES_MMC1_H + +#pragma once #include "nxrom.h" @@ -12,20 +14,23 @@ class nes_sxrom_device : public nes_nrom_device { public: // construction/destruction - nes_sxrom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); nes_sxrom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_READ8_MEMBER(read_m) override; virtual DECLARE_WRITE8_MEMBER(write_m) override; virtual DECLARE_WRITE8_MEMBER(write_h) override; - virtual void update_regs(int reg); // this is needed to simplify NES-EVENT pcb implementation, which handle differently some regs! virtual void pcb_reset() override; protected: + nes_sxrom_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual void device_start() override; + TIMER_CALLBACK_MEMBER(resync_callback); + + virtual void update_regs(int reg); // this is needed to simplify NES-EVENT pcb implementation, which handle differently some regs! virtual void set_prg(); virtual void set_chr(); @@ -70,13 +75,10 @@ public: }; - - // device type definition -extern const device_type NES_SXROM; -extern const device_type NES_SOROM; -extern const device_type NES_SXROM_A; -extern const device_type NES_SOROM_A; - +DECLARE_DEVICE_TYPE(NES_SXROM, nes_sxrom_device) +DECLARE_DEVICE_TYPE(NES_SOROM, nes_sorom_device) +DECLARE_DEVICE_TYPE(NES_SXROM_A, nes_sxrom_a_device) +DECLARE_DEVICE_TYPE(NES_SOROM_A, nes_sorom_a_device) -#endif +#endif // MAME_BUS_NES_MMC1_H diff --git a/src/devices/bus/nes/mmc2.cpp b/src/devices/bus/nes/mmc2.cpp index d1871483a68..1055ce98921 100644 --- a/src/devices/bus/nes/mmc2.cpp +++ b/src/devices/bus/nes/mmc2.cpp @@ -28,30 +28,27 @@ // constructor //------------------------------------------------- -const device_type NES_PXROM = device_creator; -const device_type NES_FXROM = device_creator; +DEFINE_DEVICE_TYPE(NES_PXROM, nes_pxrom_device, "nes_pxrom", "NES Cart PxROM (MMC-2) PCB") +DEFINE_DEVICE_TYPE(NES_FXROM, nes_fxrom_device, "nes_fxrom", "NES Cart FxROM (MMC-2) PCB") -nes_pxrom_device::nes_pxrom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : nes_nrom_device(mconfig, type, name, tag, owner, clock, shortname, source), - m_latch1(0), - m_latch2(0) - { +nes_pxrom_device::nes_pxrom_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : nes_nrom_device(mconfig, type, tag, owner, clock), m_latch1(0), m_latch2(0) +{ } nes_pxrom_device::nes_pxrom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_PXROM, "NES Cart PxROM (MMC-2) PCB", tag, owner, clock, "nes_pxrom", __FILE__), m_latch1(0), m_latch2(0) - { + : nes_pxrom_device(mconfig, NES_PXROM, tag, owner, clock) +{ } nes_fxrom_device::nes_fxrom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_pxrom_device(mconfig, NES_FXROM, "NES Cart FxROM (MMC-4) PCB", tag, owner, clock, "nes_fxrom", __FILE__) + : nes_pxrom_device(mconfig, NES_FXROM, tag, owner, clock) { } - void nes_pxrom_device::device_start() { common_start(); diff --git a/src/devices/bus/nes/mmc2.h b/src/devices/bus/nes/mmc2.h index ecdf5e30ed0..cfd81aa87d3 100644 --- a/src/devices/bus/nes/mmc2.h +++ b/src/devices/bus/nes/mmc2.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __NES_MMC2_H -#define __NES_MMC2_H +#ifndef MAME_BUS_NES_MMC2_H +#define MAME_BUS_NES_MMC2_H + +#pragma once #include "nxrom.h" @@ -12,11 +14,8 @@ class nes_pxrom_device : public nes_nrom_device { public: // construction/destruction - nes_pxrom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); nes_pxrom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(pxrom_write); virtual DECLARE_WRITE8_MEMBER(write_h) override { pxrom_write(space, offset, data, mem_mask); } @@ -24,6 +23,11 @@ public: virtual void pcb_reset() override; protected: + nes_pxrom_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual void device_start() override; + uint8_t m_reg[4]; int m_latch1, m_latch2; }; @@ -44,11 +48,8 @@ public: }; - - - // device type definition -extern const device_type NES_PXROM; -extern const device_type NES_FXROM; +DECLARE_DEVICE_TYPE(NES_PXROM, nes_pxrom_device) +DECLARE_DEVICE_TYPE(NES_FXROM, nes_fxrom_device) -#endif +#endif // MAME_BUS_NES_MMC2_H diff --git a/src/devices/bus/nes/mmc3.cpp b/src/devices/bus/nes/mmc3.cpp index 75aa036d39b..ecadb075c8e 100644 --- a/src/devices/bus/nes/mmc3.cpp +++ b/src/devices/bus/nes/mmc3.cpp @@ -29,7 +29,7 @@ #include "mmc3.h" #include "cpu/m6502/m6502.h" -#include "video/ppu2c0x.h" // this has to be included so that IRQ functions can access PPU_BOTTOM_VISIBLE_SCANLINE +#include "video/ppu2c0x.h" // this has to be included so that IRQ functions can access ppu2c0x_device::BOTTOM_VISIBLE_SCANLINE #include "screen.h" @@ -46,48 +46,47 @@ // constructor //------------------------------------------------- -const device_type NES_TXROM = device_creator; -const device_type NES_HKROM = device_creator; -const device_type NES_TXSROM = device_creator; -const device_type NES_TQROM = device_creator; -const device_type NES_QJ_PCB = device_creator; -const device_type NES_ZZ_PCB = device_creator; +DEFINE_DEVICE_TYPE(NES_TXROM, nes_txrom_device, "nes_txrom", "NES Cart TxROM (MMC-3) PCB") +DEFINE_DEVICE_TYPE(NES_HKROM, nes_hkrom_device, "nes_hkrom", "NES Cart HKROM (MMC-6) PCB") +DEFINE_DEVICE_TYPE(NES_TXSROM, nes_txsrom_device, "nes_txsrom", "NES Cart TxSROM PCB") +DEFINE_DEVICE_TYPE(NES_TQROM, nes_tqrom_device, "nes_tqrom", "NES Cart TQROM PCB") +DEFINE_DEVICE_TYPE(NES_QJ_PCB, nes_qj_device, "nes_qj", "NES Cart NES-QJ PCB") +DEFINE_DEVICE_TYPE(NES_ZZ_PCB, nes_zz_device, "nes_zz", "NES Cart PAL-ZZ PCB") -nes_txrom_device::nes_txrom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : nes_nrom_device(mconfig, type, name, tag, owner, clock, shortname, source), m_prg_base(0), m_prg_mask(0), m_chr_base(0), m_chr_mask(0), - m_latch(0), m_wram_protect(0), m_alt_irq(0), m_irq_count(0), m_irq_count_latch(0), m_irq_clear(0), m_irq_enable(0) - { +nes_txrom_device::nes_txrom_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : nes_nrom_device(mconfig, type, tag, owner, clock), m_prg_base(0), m_prg_mask(0), m_chr_base(0), m_chr_mask(0) + , m_latch(0), m_wram_protect(0), m_alt_irq(0), m_irq_count(0), m_irq_count_latch(0), m_irq_clear(0), m_irq_enable(0) +{ } nes_txrom_device::nes_txrom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_TXROM, "NES Cart TxROM (MMC-3) PCB", tag, owner, clock, "nes_txrom", __FILE__), m_prg_base(0), m_prg_mask(0), m_chr_base(0), m_chr_mask(0), - m_latch(0), m_wram_protect(0), m_alt_irq(0), m_irq_count(0), m_irq_count_latch(0), m_irq_clear(0), m_irq_enable(0) - { + : nes_txrom_device(mconfig, NES_TXROM, tag, owner, clock) +{ } nes_hkrom_device::nes_hkrom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_txrom_device(mconfig, NES_HKROM, "NES Cart HKROM (MMC-6) PCB", tag, owner, clock, "nes_hkrom", __FILE__), m_wram_enable(0), m_mmc6_reg(0) - { + : nes_txrom_device(mconfig, NES_HKROM, tag, owner, clock), m_wram_enable(0), m_mmc6_reg(0) +{ } nes_txsrom_device::nes_txsrom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_txrom_device(mconfig, NES_TXSROM, "NES Cart TxSROM PCB", tag, owner, clock, "nes_txsrom", __FILE__) + : nes_txrom_device(mconfig, NES_TXSROM, tag, owner, clock) { } nes_tqrom_device::nes_tqrom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_txrom_device(mconfig, NES_TQROM, "NES Cart TQROM PCB", tag, owner, clock, "nes_tqrom", __FILE__) + : nes_txrom_device(mconfig, NES_TQROM, tag, owner, clock) { } nes_qj_device::nes_qj_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_txrom_device(mconfig, NES_QJ_PCB, "NES Cart NES-QJ PCB", tag, owner, clock, "nes_qj", __FILE__) + : nes_txrom_device(mconfig, NES_QJ_PCB, tag, owner, clock) { } nes_zz_device::nes_zz_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_txrom_device(mconfig, NES_ZZ_PCB, "NES Cart PAL-ZZ PCB", tag, owner, clock, "nes_zz", __FILE__) + : nes_txrom_device(mconfig, NES_ZZ_PCB, tag, owner, clock) { } @@ -192,7 +191,7 @@ void nes_zz_device::pcb_reset() /* Here, IRQ counter decrements every scanline. */ void nes_txrom_device::hblank_irq(int scanline, int vblank, int blanked) { - if (scanline < PPU_BOTTOM_VISIBLE_SCANLINE) + if (scanline < ppu2c0x_device::BOTTOM_VISIBLE_SCANLINE) { int prior_count = m_irq_count; if ((m_irq_count == 0) || m_irq_clear) diff --git a/src/devices/bus/nes/mmc3.h b/src/devices/bus/nes/mmc3.h index 17578b92adf..d16a0000268 100644 --- a/src/devices/bus/nes/mmc3.h +++ b/src/devices/bus/nes/mmc3.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __NES_MMC3_H -#define __NES_MMC3_H +#ifndef MAME_BUS_NES_MMC3_H +#define MAME_BUS_NES_MMC3_H + +#pragma once #include "nxrom.h" @@ -12,11 +14,8 @@ class nes_txrom_device : public nes_nrom_device { public: // construction/destruction - nes_txrom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); nes_txrom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override { mmc3_start(); } virtual DECLARE_READ8_MEMBER(read_m) override; virtual DECLARE_WRITE8_MEMBER(write_m) override; virtual DECLARE_WRITE8_MEMBER(txrom_write); @@ -28,6 +27,11 @@ public: virtual void pcb_reset() override; protected: + nes_txrom_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual void device_start() override { mmc3_start(); } + virtual void set_prg(int prg_base, int prg_mask); virtual void set_chr(uint8_t chr, int chr_base, int chr_mask); void mmc3_start(); @@ -58,8 +62,6 @@ public: // construction/destruction nes_hkrom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_READ8_MEMBER(read_m) override; virtual DECLARE_WRITE8_MEMBER(write_m) override; virtual DECLARE_WRITE8_MEMBER(write_h) override; @@ -67,6 +69,9 @@ public: virtual void pcb_reset() override; protected: + // device-level overrides + virtual void device_start() override; + int m_wram_enable; uint8_t m_mmc6_reg; @@ -133,14 +138,12 @@ public: }; - - // device type definition -extern const device_type NES_TXROM; -extern const device_type NES_HKROM; -extern const device_type NES_TXSROM; -extern const device_type NES_TQROM; -extern const device_type NES_QJ_PCB; -extern const device_type NES_ZZ_PCB; - -#endif +DECLARE_DEVICE_TYPE(NES_TXROM, nes_txrom_device) +DECLARE_DEVICE_TYPE(NES_HKROM, nes_hkrom_device) +DECLARE_DEVICE_TYPE(NES_TXSROM, nes_txsrom_device) +DECLARE_DEVICE_TYPE(NES_TQROM, nes_tqrom_device) +DECLARE_DEVICE_TYPE(NES_QJ_PCB, nes_qj_device) +DECLARE_DEVICE_TYPE(NES_ZZ_PCB, nes_zz_device) + +#endif // MAME_BUS_NES_MMC3_H diff --git a/src/devices/bus/nes/mmc3_clones.cpp b/src/devices/bus/nes/mmc3_clones.cpp index 1485e6411ce..5d776c5d86c 100644 --- a/src/devices/bus/nes/mmc3_clones.cpp +++ b/src/devices/bus/nes/mmc3_clones.cpp @@ -28,221 +28,221 @@ // constructor //------------------------------------------------- -const device_type NES_NITRA = device_creator; -const device_type NES_KS7057 = device_creator; -const device_type NES_SBROS11 = device_creator; -const device_type NES_MALISB = device_creator; -const device_type NES_FAMILY4646 = device_creator; -const device_type NES_PIKAY2K = device_creator; -const device_type NES_8237 = device_creator; -const device_type NES_SG_LIONK = device_creator; -const device_type NES_SG_BOOG = device_creator; -const device_type NES_KASING = device_creator; -const device_type NES_KAY = device_creator; -const device_type NES_H2288 = device_creator; -const device_type NES_6035052 = device_creator; -const device_type NES_TXC_TW = device_creator; -const device_type NES_KOF97 = device_creator; -const device_type NES_KOF96 = device_creator; -const device_type NES_SF3 = device_creator; -const device_type NES_GOUDER = device_creator; -const device_type NES_SA9602B = device_creator; -const device_type NES_SACHEN_SHERO = device_creator; -//const device_type NES_A9746 = device_creator; - -const device_type NES_FK23C = device_creator; -const device_type NES_FK23CA = device_creator; -const device_type NES_S24IN1SC03 = device_creator; -const device_type NES_BMC_15IN1 = device_creator; -const device_type NES_BMC_SBIG7 = device_creator; -const device_type NES_BMC_HIK8 = device_creator; -const device_type NES_BMC_HIK4 = device_creator; -const device_type NES_BMC_MARIO7IN1 = device_creator; -const device_type NES_BMC_GOLD7IN1 = device_creator; -const device_type NES_BMC_GC6IN1 = device_creator; -const device_type NES_BMC_411120C = device_creator; -const device_type NES_BMC_830118C = device_creator; -const device_type NES_PJOY84 = device_creator; -const device_type NES_COOLBOY = device_creator; +DEFINE_DEVICE_TYPE(NES_NITRA, nes_nitra_device, "nes_nitra", "NES Cart Nitra PCB") +DEFINE_DEVICE_TYPE(NES_KS7057, nes_ks7057_device, "nes_ks7057", "NES Cart KS-7057 PCB") +DEFINE_DEVICE_TYPE(NES_SBROS11, nes_sbros11_device, "nes_smb11", "NES Cart SMB 11 PCB") +DEFINE_DEVICE_TYPE(NES_MALISB, nes_malisb_device, "nes_malisb", "NES Cart Mali Spash Bomb PCB") +DEFINE_DEVICE_TYPE(NES_FAMILY4646, nes_family4646_device, "nes_family4646", "NES Cart BMC-FAMILY04646 PCB") +DEFINE_DEVICE_TYPE(NES_PIKAY2K, nes_pikay2k_device, "nes_pikay2k", "NES Cart PIKACHU Y2K PCB") +DEFINE_DEVICE_TYPE(NES_8237, nes_8237_device, "nes_8237", "NES Cart UNL-8237 PCB") +DEFINE_DEVICE_TYPE(NES_SG_LIONK, nes_sglionk_device, "nes_sglionk", "NES Cart SuperGame Lion King PCB") +DEFINE_DEVICE_TYPE(NES_SG_BOOG, nes_sgboog_device, "nes_sgbooger", "NES Cart SuperGame BoogerMan PCB") +DEFINE_DEVICE_TYPE(NES_KASING, nes_kasing_device, "nes_kasing", "NES Cart Kasing PCB") +DEFINE_DEVICE_TYPE(NES_KAY, nes_kay_device, "nes_kay", "NES Cart KAY PCB") +DEFINE_DEVICE_TYPE(NES_H2288, nes_h2288_device, "nes_h2288", "NES Cart H-2288 PCB") +DEFINE_DEVICE_TYPE(NES_6035052, nes_6035052_device, "nes_6035052", "NES Cart UNL-603-5052 PCB") +DEFINE_DEVICE_TYPE(NES_TXC_TW, nes_txc_tw_device, "nes_txc_tw", "NES Cart TXC Thunder Warrior PCB") +DEFINE_DEVICE_TYPE(NES_KOF97, nes_kof97_device, "nes_kof97", "NES Cart KoF 97 PCB") +DEFINE_DEVICE_TYPE(NES_KOF96, nes_kof96_device, "nes_kof96", "NES Cart KoF 96 PCB") +DEFINE_DEVICE_TYPE(NES_SF3, nes_sf3_device, "nes_sf3", "NES Cart Super Fighter III PCB") +DEFINE_DEVICE_TYPE(NES_GOUDER, nes_gouder_device, "nes_gouder", "NES Cart Gouder PCB") +DEFINE_DEVICE_TYPE(NES_SA9602B, nes_sa9602b_device, "nes_sa9602b", "NES Cart SA-9602B PCB") +DEFINE_DEVICE_TYPE(NES_SACHEN_SHERO, nes_sachen_shero_device, "nes_shero", "NES Cart Street Hero PCB") +//DEFINE_DEVICE_TYPE(NES_A9746, nes_a9746_device, "nes_bmc_a9746", "NES Cart A-9746 PCB") + +DEFINE_DEVICE_TYPE(NES_FK23C, nes_fk23c_device, "nes_kf23c", "NES Cart KF23C PCB") +DEFINE_DEVICE_TYPE(NES_FK23CA, nes_fk23ca_device, "nes_kf23ca", "NES Cart KF23CA PCB") +DEFINE_DEVICE_TYPE(NES_S24IN1SC03, nes_s24in1sc03_device, "nes_s24in1c03", "NES Cart Super 24 in 1 SC-03 PCB") +DEFINE_DEVICE_TYPE(NES_BMC_15IN1, nes_bmc_15in1_device, "nes_bmc_15in1", "NES Cart BMC 15 in 1 PCB") +DEFINE_DEVICE_TYPE(NES_BMC_SBIG7, nes_bmc_sbig7_device, "nes_bmc_sbig7", "NES Cart BMC Super BIG 7 in 1 PCB") +DEFINE_DEVICE_TYPE(NES_BMC_HIK8, nes_bmc_hik8_device, "nes_bmc_hik8", "NES Cart BMC HIK 8 in 1 PCB") +DEFINE_DEVICE_TYPE(NES_BMC_HIK4, nes_bmc_hik4_device, "nes_bmc_hik4", "NES Cart BMC HIK 4 in 1 PCB") +DEFINE_DEVICE_TYPE(NES_BMC_MARIO7IN1, nes_bmc_mario7in1_device, "nes_bmc_mario7in1", "NES Cart BMC Mario 7 in 1 PCB") +DEFINE_DEVICE_TYPE(NES_BMC_GOLD7IN1, nes_bmc_gold7in1_device, "nes_bmc_gold7in1", "NES Cart BMC Golden 7 in 1 PCB") +DEFINE_DEVICE_TYPE(NES_BMC_GC6IN1, nes_bmc_gc6in1_device, "nes_bmc_gc6in1", "NES Cart BMC Golden Card 6 in 1 PCB") +DEFINE_DEVICE_TYPE(NES_BMC_411120C, nes_bmc_411120c_device, "nes_bmc_411120c", "NES Cart BMC 411120C PCB") +DEFINE_DEVICE_TYPE(NES_BMC_830118C, nes_bmc_830118c_device, "nes_bmc_830118c", "NES Cart BMC 830118C PCB") +DEFINE_DEVICE_TYPE(NES_PJOY84, nes_pjoy84_device, "nes_pjoy84", "NES Cart Powerjoy 84 PCB") +DEFINE_DEVICE_TYPE(NES_COOLBOY, nes_coolboy_device, "nes_coolboy", "NES Cart CoolBoy PCB") nes_nitra_device::nes_nitra_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_txrom_device(mconfig, NES_NITRA, "NES Cart Nitra PCB", tag, owner, clock, "nes_nitra", __FILE__) + : nes_txrom_device(mconfig, NES_NITRA, tag, owner, clock) { } nes_ks7057_device::nes_ks7057_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_txrom_device(mconfig, NES_KS7057, "NES Cart KS-7057 PCB", tag, owner, clock, "nes_ks7057", __FILE__) + : nes_txrom_device(mconfig, NES_KS7057, tag, owner, clock) { } nes_sbros11_device::nes_sbros11_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_txrom_device(mconfig, NES_SBROS11, "NES Cart SMB 11 PCB", tag, owner, clock, "nes_smb11", __FILE__) + : nes_txrom_device(mconfig, NES_SBROS11, tag, owner, clock) { } nes_malisb_device::nes_malisb_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_txrom_device(mconfig, NES_MALISB, "NES Cart Mali Spash Bomb PCB", tag, owner, clock, "nes_malisb", __FILE__) + : nes_txrom_device(mconfig, NES_MALISB, tag, owner, clock) { } nes_family4646_device::nes_family4646_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_txrom_device(mconfig, NES_FAMILY4646, "NES Cart BMC-FAMILY-4646 PCB", tag, owner, clock, "nes_family4646", __FILE__) + : nes_txrom_device(mconfig, NES_FAMILY4646, tag, owner, clock) { } nes_pikay2k_device::nes_pikay2k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_txrom_device(mconfig, NES_PIKAY2K, "NES Cart PIKACHU Y2K PCB", tag, owner, clock, "nes_pikay2k", __FILE__) + : nes_txrom_device(mconfig, NES_PIKAY2K, tag, owner, clock) { } nes_8237_device::nes_8237_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_txrom_device(mconfig, NES_8237, "NES Cart UNL-8237 PCB", tag, owner, clock, "nes_8237", __FILE__), m_cd_enable(0) - { + : nes_txrom_device(mconfig, NES_8237, tag, owner, clock), m_cd_enable(0) +{ } nes_sglionk_device::nes_sglionk_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_txrom_device(mconfig, NES_SG_LIONK, "NES Cart SuperGame Lion King PCB", tag, owner, clock, "nes_sglionk", __FILE__), m_reg(0), m_reg_enabled(0) - { + : nes_txrom_device(mconfig, NES_SG_LIONK, tag, owner, clock), m_reg(0), m_reg_enabled(0) +{ } nes_sgboog_device::nes_sgboog_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_txrom_device(mconfig, NES_SG_BOOG, "NES Cart SuperGame BoogerMan PCB", tag, owner, clock, "nes_sgbooger", __FILE__), m_mode(0) - { + : nes_txrom_device(mconfig, NES_SG_BOOG, tag, owner, clock), m_mode(0) +{ } nes_kasing_device::nes_kasing_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_txrom_device(mconfig, NES_KASING, "NES Cart Kasing PCB", tag, owner, clock, "nes_kasing", __FILE__), m_reg(0) - { + : nes_txrom_device(mconfig, NES_KASING, tag, owner, clock), m_reg(0) +{ } nes_kay_device::nes_kay_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_txrom_device(mconfig, NES_KAY, "NES Cart KAY PCB", tag, owner, clock, "nes_kay", __FILE__), m_low_reg(0) - { + : nes_txrom_device(mconfig, NES_KAY, tag, owner, clock), m_low_reg(0) +{ } nes_h2288_device::nes_h2288_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_txrom_device(mconfig, NES_H2288, "NES Cart H-2288 PCB", tag, owner, clock, "nes_h2288", __FILE__) + : nes_txrom_device(mconfig, NES_H2288, tag, owner, clock) { } nes_6035052_device::nes_6035052_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_txrom_device(mconfig, NES_6035052, "NES Cart UNL-603-5052 PCB", tag, owner, clock, "nes_6035052", __FILE__), m_prot(0) - { + : nes_txrom_device(mconfig, NES_6035052, tag, owner, clock), m_prot(0) +{ } nes_txc_tw_device::nes_txc_tw_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_txrom_device(mconfig, NES_TXC_TW, "NES Cart TXC Thunder Warrior PCB", tag, owner, clock, "nes_txc_tw", __FILE__) + : nes_txrom_device(mconfig, NES_TXC_TW, tag, owner, clock) { } nes_kof97_device::nes_kof97_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_txrom_device(mconfig, NES_KOF97, "NES Cart KOF 97 PCB", tag, owner, clock, "nes_kof97", __FILE__) + : nes_txrom_device(mconfig, NES_KOF97, tag, owner, clock) { } nes_kof96_device::nes_kof96_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_txrom_device(mconfig, NES_KOF96, "NES Cart KOF 96 PCB", tag, owner, clock, "nes_kof96", __FILE__) + : nes_txrom_device(mconfig, NES_KOF96, tag, owner, clock) { } nes_sf3_device::nes_sf3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_txrom_device(mconfig, NES_SF3, "NES Cart Super Fighter III PCB", tag, owner, clock, "nes_sf3", __FILE__) + : nes_txrom_device(mconfig, NES_SF3, tag, owner, clock) { } nes_gouder_device::nes_gouder_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_txrom_device(mconfig, NES_GOUDER, "NES Cart Gouder PCB", tag, owner, clock, "nes_gouder", __FILE__) + : nes_txrom_device(mconfig, NES_GOUDER, tag, owner, clock) { } nes_sa9602b_device::nes_sa9602b_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_txrom_device(mconfig, NES_SA9602B, "NES Cart SA-9602B PCB", tag, owner, clock, "nes_sa9602b", __FILE__), m_reg(0), m_prg_chip(0) - { + : nes_txrom_device(mconfig, NES_SA9602B, tag, owner, clock), m_reg(0), m_prg_chip(0) +{ } nes_sachen_shero_device::nes_sachen_shero_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_txrom_device(mconfig, NES_SACHEN_SHERO, "NES Cart Street Hero PCB", tag, owner, clock, "nes_shero", __FILE__), m_reg(0) - { + : nes_txrom_device(mconfig, NES_SACHEN_SHERO, tag, owner, clock), m_reg(0) +{ } //nes_a9746_device::nes_a9746_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) -// : nes_txrom_device(mconfig, NES_A9746, "NES Cart A-9746 PCB", tag, owner, clock, "nes_bmc_a9746", __FILE__) +// : nes_txrom_device(mconfig, NES_A9746, tag, owner, clock) //{ //} -nes_fk23c_device::nes_fk23c_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : nes_txrom_device(mconfig, type, name, tag, owner, clock, shortname, source), m_mmc_cmd1(0) - { +nes_fk23c_device::nes_fk23c_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : nes_txrom_device(mconfig, type, tag, owner, clock), m_mmc_cmd1(0) +{ } nes_fk23c_device::nes_fk23c_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_txrom_device(mconfig, NES_FK23C, "NES Cart FK23C PCB", tag, owner, clock, "nes_fk23c", __FILE__), m_mmc_cmd1(0) - { + : nes_fk23c_device(mconfig, NES_FK23C, tag, owner, clock) +{ } nes_fk23ca_device::nes_fk23ca_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_fk23c_device(mconfig, NES_FK23CA, "NES Cart FK23CA PCB", tag, owner, clock, "nes_fk23ca", __FILE__) + : nes_fk23c_device(mconfig, NES_FK23CA, tag, owner, clock) { } nes_s24in1sc03_device::nes_s24in1sc03_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_txrom_device(mconfig, NES_S24IN1SC03, "NES Cart Super 24 in 1 SC-03 PCB", tag, owner, clock, "nes_s24in1c03", __FILE__) + : nes_txrom_device(mconfig, NES_S24IN1SC03, tag, owner, clock) { } nes_bmc_15in1_device::nes_bmc_15in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_txrom_device(mconfig, NES_BMC_15IN1, "NES Cart BMC 15 in 1 PCB", tag, owner, clock, "nes_bmc_15in1", __FILE__) + : nes_txrom_device(mconfig, NES_BMC_15IN1, tag, owner, clock) { } nes_bmc_sbig7_device::nes_bmc_sbig7_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_txrom_device(mconfig, NES_BMC_SBIG7, "NES Cart BMC Super BIG 7 in 1 PCB", tag, owner, clock, "nes_bmc_sbit7", __FILE__) + : nes_txrom_device(mconfig, NES_BMC_SBIG7, tag, owner, clock) { } nes_bmc_hik8_device::nes_bmc_hik8_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_txrom_device(mconfig, NES_BMC_HIK8, "NES Cart BMC Super HIK 8 in 1 PCB", tag, owner, clock, "nes_bmc_hik8", __FILE__), m_count(0) - { + : nes_txrom_device(mconfig, NES_BMC_HIK8, tag, owner, clock), m_count(0) +{ } nes_bmc_hik4_device::nes_bmc_hik4_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_txrom_device(mconfig, NES_BMC_HIK4, "NES Cart BMC Super HIK 4 in 1 PCB", tag, owner, clock, "nes_bmc_hik4", __FILE__) + : nes_txrom_device(mconfig, NES_BMC_HIK4, tag, owner, clock) { } nes_bmc_mario7in1_device::nes_bmc_mario7in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_txrom_device(mconfig, NES_BMC_MARIO7IN1, "NES Cart BMC Mario 7 in 1 PCB", tag, owner, clock, "nes_bmc_mario7in1", __FILE__), m_reg_written(0) - { + : nes_txrom_device(mconfig, NES_BMC_MARIO7IN1, tag, owner, clock), m_reg_written(0) +{ } nes_bmc_gold7in1_device::nes_bmc_gold7in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_txrom_device(mconfig, NES_BMC_GOLD7IN1, "NES Cart BMC Golden 7 in 1 PCB", tag, owner, clock, "nes_bmc_gold7in1", __FILE__), m_reg_written(0) - { + : nes_txrom_device(mconfig, NES_BMC_GOLD7IN1, tag, owner, clock), m_reg_written(0) +{ } nes_bmc_gc6in1_device::nes_bmc_gc6in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_txrom_device(mconfig, NES_BMC_GC6IN1, "NES Cart BMC Golden Card 6 in 1 PCB", tag, owner, clock, "nes_bmc_gc6in1", __FILE__) + : nes_txrom_device(mconfig, NES_BMC_GC6IN1, tag, owner, clock) { } nes_bmc_411120c_device::nes_bmc_411120c_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_txrom_device(mconfig, NES_BMC_411120C, "NES Cart BMC 411120C PCB", tag, owner, clock, "nes_bmc_411120c", __FILE__), m_reg(0) - { + : nes_txrom_device(mconfig, NES_BMC_411120C, tag, owner, clock), m_reg(0) +{ } nes_bmc_830118c_device::nes_bmc_830118c_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_txrom_device(mconfig, NES_BMC_830118C, "NES Cart BMC 830118C PCB", tag, owner, clock, "nes_bmc_830118c", __FILE__), m_reg(0) - { + : nes_txrom_device(mconfig, NES_BMC_830118C, tag, owner, clock), m_reg(0) +{ } nes_pjoy84_device::nes_pjoy84_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_txrom_device(mconfig, NES_PJOY84, "NES Cart Powerjoy 84 PCB", tag, owner, clock, "nes_pjoy84", __FILE__) + : nes_txrom_device(mconfig, NES_PJOY84, tag, owner, clock) { } nes_coolboy_device::nes_coolboy_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_txrom_device(mconfig, NES_COOLBOY, "NES Cart CoolBoy PCB", tag, owner, clock, "nes_coolboy", __FILE__) + : nes_txrom_device(mconfig, NES_COOLBOY, tag, owner, clock) { } diff --git a/src/devices/bus/nes/mmc3_clones.h b/src/devices/bus/nes/mmc3_clones.h index d8b6327d518..82f3daeb16b 100644 --- a/src/devices/bus/nes/mmc3_clones.h +++ b/src/devices/bus/nes/mmc3_clones.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __NES_MMC3_CLONES_H -#define __NES_MMC3_CLONES_H +#ifndef MAME_BUS_NES_MMC3_CLONES_H +#define MAME_BUS_NES_MMC3_CLONES_H + +#pragma once #include "mmc3.h" @@ -83,14 +85,16 @@ public: // construction/destruction nes_pikay2k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_READ8_MEMBER(read_m) override; virtual DECLARE_WRITE8_MEMBER(write_m) override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: uint8_t m_reg[2]; }; @@ -127,13 +131,15 @@ public: // construction/destruction nes_sglionk_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_m) override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: uint8_t m_reg; int m_reg_enabled; @@ -148,8 +154,6 @@ public: // construction/destruction nes_sgboog_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_l) override; virtual DECLARE_WRITE8_MEMBER(write_m) override; virtual DECLARE_WRITE8_MEMBER(write_h) override; @@ -158,6 +162,10 @@ public: virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: virtual void set_prg(int prg_base, int prg_mask) override; uint8_t m_reg[3]; @@ -173,13 +181,15 @@ public: // construction/destruction nes_kasing_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_m) override; virtual void prg_cb(int start, int bank) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: uint8_t m_reg; }; @@ -193,8 +203,6 @@ public: // construction/destruction nes_kay_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_READ8_MEMBER(read_l) override; virtual DECLARE_WRITE8_MEMBER(write_l) override; virtual DECLARE_WRITE8_MEMBER(write_h) override; @@ -203,6 +211,10 @@ public: virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: void update_regs(); uint8_t m_reg[8]; @@ -218,8 +230,6 @@ public: // construction/destruction nes_h2288_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_READ8_MEMBER(read_l) override; virtual DECLARE_WRITE8_MEMBER(write_l) override; virtual DECLARE_WRITE8_MEMBER(write_h) override; @@ -227,6 +237,10 @@ public: virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: uint8_t m_reg[2]; // reg 1 is unused? }; @@ -240,8 +254,6 @@ public: // construction/destruction nes_6035052_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_READ8_MEMBER(read_ex) override; virtual DECLARE_WRITE8_MEMBER(write_ex) override; virtual DECLARE_READ8_MEMBER(read_l) override { return read_ex(space, offset, mem_mask); } @@ -251,6 +263,10 @@ public: virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: uint8_t m_prot; }; @@ -292,8 +308,6 @@ public: // construction/destruction nes_kof96_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_READ8_MEMBER(read_l) override; virtual DECLARE_WRITE8_MEMBER(write_l) override; virtual DECLARE_WRITE8_MEMBER(write_h) override; // offset does not really count for this mapper @@ -302,6 +316,10 @@ public: virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: uint8_t m_reg[4]; }; @@ -331,14 +349,16 @@ public: // construction/destruction nes_gouder_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_READ8_MEMBER(read_l) override; virtual DECLARE_WRITE8_MEMBER(write_l) override; virtual void prg_cb(int start, int bank) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: uint8_t m_reg[5]; }; @@ -352,13 +372,15 @@ public: // construction/destruction nes_sa9602b_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void prg_cb(int start, int bank) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: uint8_t m_reg; int m_prg_chip; @@ -373,14 +395,16 @@ public: // construction/destruction nes_sachen_shero_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_READ8_MEMBER(read_l) override; virtual DECLARE_WRITE8_MEMBER(write_l) override; virtual void chr_cb(int start, int bank, int source) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: uint8_t m_reg; }; @@ -394,12 +418,14 @@ public: // construction/destruction nes_a9746_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset(); +protected: + // device-level overrides + virtual void device_start() override; + private: void update_banks(uint8_t value); uint8_t m_reg[3]; @@ -413,11 +439,8 @@ class nes_fk23c_device : public nes_txrom_device { public: // construction/destruction - nes_fk23c_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); nes_fk23c_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_l) override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void prg_cb(int start, int bank) override; @@ -426,6 +449,11 @@ public: virtual void pcb_reset() override; protected: + nes_fk23c_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual void device_start() override; + void fk23c_set_prg(); void fk23c_set_chr(); uint8_t m_reg[8]; @@ -453,14 +481,16 @@ public: // construction/destruction nes_s24in1sc03_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_l) override; virtual void prg_cb(int start, int bank) override; virtual void chr_cb(int start, int bank, int source) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: uint8_t m_reg[3]; }; @@ -504,12 +534,14 @@ public: // construction/destruction nes_bmc_hik8_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_m) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: uint8_t m_reg[4]; uint8_t m_count; @@ -539,12 +571,14 @@ public: // construction/destruction nes_bmc_mario7in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_m) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: uint8_t m_reg_written; }; @@ -558,12 +592,14 @@ public: // construction/destruction nes_bmc_gold7in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_m) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: uint8_t m_reg_written; }; @@ -577,8 +613,6 @@ public: // construction/destruction nes_bmc_gc6in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_l) override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void prg_cb(int start, int bank) override; @@ -586,6 +620,10 @@ public: virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: uint8_t m_reg[4]; }; @@ -599,14 +637,16 @@ public: // construction/destruction nes_bmc_411120c_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_m) override; virtual void prg_cb(int start, int bank) override; virtual void chr_cb(int start, int bank, int source) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: uint8_t m_reg; }; @@ -620,14 +660,16 @@ public: // construction/destruction nes_bmc_830118c_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_m) override; virtual void prg_cb(int start, int bank) override; virtual void chr_cb(int start, int bank, int source) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: uint8_t m_reg; }; @@ -641,14 +683,16 @@ public: // construction/destruction nes_pjoy84_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_m) override; virtual void prg_cb(int start, int bank) override; virtual void chr_cb(int start, int bank, int source) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: inline void set_base_mask(); uint8_t m_reg[4]; @@ -663,57 +707,51 @@ public: nes_coolboy_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // device-level overrides -// virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_m) override; virtual void prg_cb(int start, int bank) override; virtual void chr_cb(int start, int bank, int source) override; -// virtual void pcb_reset() override; - private: -// inline void set_base_mask(); uint8_t m_reg[4]; }; - - // device type definition -extern const device_type NES_NITRA; -extern const device_type NES_KS7057; -extern const device_type NES_SBROS11; -extern const device_type NES_MALISB; -extern const device_type NES_FAMILY4646; -extern const device_type NES_PIKAY2K; -extern const device_type NES_8237; -extern const device_type NES_SG_LIONK; -extern const device_type NES_SG_BOOG; -extern const device_type NES_KASING; -extern const device_type NES_KAY; -extern const device_type NES_H2288; -extern const device_type NES_6035052; -extern const device_type NES_TXC_TW; -extern const device_type NES_KOF97; -extern const device_type NES_KOF96; -extern const device_type NES_SF3; -extern const device_type NES_GOUDER; -extern const device_type NES_SA9602B; -extern const device_type NES_SACHEN_SHERO; -extern const device_type NES_A9746; - -extern const device_type NES_FK23C; -extern const device_type NES_FK23CA; -extern const device_type NES_S24IN1SC03; -extern const device_type NES_BMC_15IN1; -extern const device_type NES_BMC_SBIG7; -extern const device_type NES_BMC_HIK8; -extern const device_type NES_BMC_HIK4; -extern const device_type NES_BMC_MARIO7IN1; -extern const device_type NES_BMC_GOLD7IN1; -extern const device_type NES_BMC_GC6IN1; -extern const device_type NES_BMC_411120C; -extern const device_type NES_BMC_830118C; -extern const device_type NES_PJOY84; -extern const device_type NES_COOLBOY; - -#endif +DECLARE_DEVICE_TYPE(NES_NITRA, nes_nitra_device) +DECLARE_DEVICE_TYPE(NES_KS7057, nes_ks7057_device) +DECLARE_DEVICE_TYPE(NES_SBROS11, nes_sbros11_device) +DECLARE_DEVICE_TYPE(NES_MALISB, nes_malisb_device) +DECLARE_DEVICE_TYPE(NES_FAMILY4646, nes_family4646_device) +DECLARE_DEVICE_TYPE(NES_PIKAY2K, nes_pikay2k_device) +DECLARE_DEVICE_TYPE(NES_8237, nes_8237_device) +DECLARE_DEVICE_TYPE(NES_SG_LIONK, nes_sglionk_device) +DECLARE_DEVICE_TYPE(NES_SG_BOOG, nes_sgboog_device) +DECLARE_DEVICE_TYPE(NES_KASING, nes_kasing_device) +DECLARE_DEVICE_TYPE(NES_KAY, nes_kay_device) +DECLARE_DEVICE_TYPE(NES_H2288, nes_h2288_device) +DECLARE_DEVICE_TYPE(NES_6035052, nes_6035052_device) +DECLARE_DEVICE_TYPE(NES_TXC_TW, nes_txc_tw_device) +DECLARE_DEVICE_TYPE(NES_KOF97, nes_kof97_device) +DECLARE_DEVICE_TYPE(NES_KOF96, nes_kof96_device) +DECLARE_DEVICE_TYPE(NES_SF3, nes_sf3_device) +DECLARE_DEVICE_TYPE(NES_GOUDER, nes_gouder_device) +DECLARE_DEVICE_TYPE(NES_SA9602B, nes_sa9602b_device) +DECLARE_DEVICE_TYPE(NES_SACHEN_SHERO, nes_sachen_shero_device) +DECLARE_DEVICE_TYPE(NES_A9746, nes_a9746_device) + +DECLARE_DEVICE_TYPE(NES_FK23C, nes_fk23c_device) +DECLARE_DEVICE_TYPE(NES_FK23CA, nes_fk23ca_device) +DECLARE_DEVICE_TYPE(NES_S24IN1SC03, nes_s24in1sc03_device) +DECLARE_DEVICE_TYPE(NES_BMC_15IN1, nes_bmc_15in1_device) +DECLARE_DEVICE_TYPE(NES_BMC_SBIG7, nes_bmc_sbig7_device) +DECLARE_DEVICE_TYPE(NES_BMC_HIK8, nes_bmc_hik8_device) +DECLARE_DEVICE_TYPE(NES_BMC_HIK4, nes_bmc_hik4_device) +DECLARE_DEVICE_TYPE(NES_BMC_MARIO7IN1, nes_bmc_mario7in1_device) +DECLARE_DEVICE_TYPE(NES_BMC_GOLD7IN1, nes_bmc_gold7in1_device) +DECLARE_DEVICE_TYPE(NES_BMC_GC6IN1, nes_bmc_gc6in1_device) +DECLARE_DEVICE_TYPE(NES_BMC_411120C, nes_bmc_411120c_device) +DECLARE_DEVICE_TYPE(NES_BMC_830118C, nes_bmc_830118c_device) +DECLARE_DEVICE_TYPE(NES_PJOY84, nes_pjoy84_device) +DECLARE_DEVICE_TYPE(NES_COOLBOY, nes_coolboy_device) + +#endif // MAME_BUS_NES_MMC3_CLONES_H diff --git a/src/devices/bus/nes/mmc5.cpp b/src/devices/bus/nes/mmc5.cpp index ff0f382626b..327220fdcc5 100644 --- a/src/devices/bus/nes/mmc5.cpp +++ b/src/devices/bus/nes/mmc5.cpp @@ -19,7 +19,7 @@ #include "mmc5.h" #include "cpu/m6502/m6502.h" -#include "video/ppu2c0x.h" // this has to be included so that IRQ functions can access PPU_BOTTOM_VISIBLE_SCANLINE +#include "video/ppu2c0x.h" // this has to be included so that IRQ functions can access ppu2c0x_device::BOTTOM_VISIBLE_SCANLINE #include "sound/nes_apu.h" // temp hack to pass the additional sound regs to APU... @@ -41,15 +41,15 @@ static const int m_mmc5_attrib[4] = {0x00, 0x55, 0xaa, 0xff}; // constructor //------------------------------------------------- -const device_type NES_EXROM = device_creator; +DEFINE_DEVICE_TYPE(NES_EXROM, nes_exrom_device, "nes_exrom", "NES Cart ExROM (MMC-5) PCB") nes_exrom_device::nes_exrom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_EXROM, "NES Cart ExROM (MMC-5) PCB", tag, owner, clock, "nes_exrom", __FILE__), m_irq_count(0), - m_irq_status(0), m_irq_enable(0), m_mult1(0), m_mult2(0), m_mmc5_scanline(0), m_vrom_page_a(0), m_vrom_page_b(0), m_floodtile(0), m_floodattr(0), - m_prg_mode(0), m_chr_mode(0), m_wram_protect_1(0), m_wram_protect_2(0), m_exram_control(0), m_wram_base(0), m_last_chr(0), m_ex1_chr(0), - m_split_chr(0), m_ex1_bank(0), m_high_chr(0), m_split_scr(0), m_split_rev(0), m_split_ctrl(0), m_split_yst(0), m_split_bank(0), m_vcount(0) - { + : nes_nrom_device(mconfig, NES_EXROM, tag, owner, clock), m_irq_count(0) + , m_irq_status(0), m_irq_enable(0), m_mult1(0), m_mult2(0), m_mmc5_scanline(0), m_vrom_page_a(0), m_vrom_page_b(0), m_floodtile(0), m_floodattr(0) + , m_prg_mode(0), m_chr_mode(0), m_wram_protect_1(0), m_wram_protect_2(0), m_exram_control(0), m_wram_base(0), m_last_chr(0), m_ex1_chr(0) + , m_split_chr(0), m_ex1_bank(0), m_high_chr(0), m_split_scr(0), m_split_rev(0), m_split_ctrl(0), m_split_yst(0), m_split_bank(0), m_vcount(0) +{ } @@ -245,7 +245,7 @@ void nes_exrom_device::hblank_irq(int scanline, int vblank, int blanked ) // "In Frame" flag if (scanline == 0) m_irq_status |= 0x40; - else if (scanline > PPU_BOTTOM_VISIBLE_SCANLINE) + else if (scanline > ppu2c0x_device::BOTTOM_VISIBLE_SCANLINE) m_irq_status &= ~0x40; } diff --git a/src/devices/bus/nes/mmc5.h b/src/devices/bus/nes/mmc5.h index 1ca0dd1cd88..d677b875771 100644 --- a/src/devices/bus/nes/mmc5.h +++ b/src/devices/bus/nes/mmc5.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __NES_MMC5_H -#define __NES_MMC5_H +#ifndef MAME_BUS_NES_MMC5_H +#define MAME_BUS_NES_MMC5_H + +#pragma once #include "nxrom.h" @@ -14,8 +16,6 @@ public: // construction/destruction nes_exrom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_READ8_MEMBER(read_l) override; virtual DECLARE_READ8_MEMBER(read_m) override; virtual DECLARE_READ8_MEMBER(read_h) override; @@ -31,6 +31,9 @@ public: virtual void pcb_reset() override; protected: + // device-level overrides + virtual void device_start() override; + void set_mirror(int page, int src); void update_prg(); @@ -86,8 +89,7 @@ protected: }; - // device type definition -extern const device_type NES_EXROM; +DECLARE_DEVICE_TYPE(NES_EXROM, nes_exrom_device) -#endif +#endif // MAME_BUS_NES_MMC5_H diff --git a/src/devices/bus/nes/multigame.cpp b/src/devices/bus/nes/multigame.cpp index 0f01641de1a..6971e68ac61 100644 --- a/src/devices/bus/nes/multigame.cpp +++ b/src/devices/bus/nes/multigame.cpp @@ -28,288 +28,288 @@ // constructor //------------------------------------------------- -const device_type NES_ACTION52 = device_creator; -const device_type NES_CALTRON6IN1 = device_creator; -const device_type NES_RUMBLESTATION = device_creator; -const device_type NES_SVISION16 = device_creator; -const device_type NES_N625092 = device_creator; -const device_type NES_A65AS = device_creator; -const device_type NES_T262 = device_creator; -const device_type NES_NOVEL1 = device_creator; -const device_type NES_NOVEL2 = device_creator; -const device_type NES_STUDYNGAME = device_creator; -const device_type NES_SUPERGUN20IN1 = device_creator; -const device_type NES_VT5201 = device_creator; -const device_type NES_810544C = device_creator; -const device_type NES_NTD03 = device_creator; -const device_type NES_BMC_GB63 = device_creator; -const device_type NES_BMC_GKA = device_creator; -const device_type NES_BMC_GKB = device_creator; -const device_type NES_BMC_WS = device_creator; -const device_type NES_BMC_11160 = device_creator; -const device_type NES_BMC_G146 = device_creator; -const device_type NES_BMC_8157 = device_creator; -const device_type NES_BMC_HIK300 = device_creator; -const device_type NES_BMC_S700 = device_creator; -const device_type NES_BMC_BALL11 = device_creator; -const device_type NES_BMC_22GAMES = device_creator; -const device_type NES_BMC_64Y2K = device_creator; -const device_type NES_BMC_12IN1 = device_creator; -const device_type NES_BMC_20IN1 = device_creator; -const device_type NES_BMC_21IN1 = device_creator; -const device_type NES_BMC_31IN1 = device_creator; -const device_type NES_BMC_35IN1 = device_creator; -const device_type NES_BMC_36IN1 = device_creator; -const device_type NES_BMC_64IN1 = device_creator; -const device_type NES_BMC_70IN1 = device_creator; -const device_type NES_BMC_72IN1 = device_creator; -const device_type NES_BMC_76IN1 = device_creator; -const device_type NES_BMC_110IN1 = device_creator; -const device_type NES_BMC_150IN1 = device_creator; -const device_type NES_BMC_190IN1 = device_creator; -const device_type NES_BMC_800IN1 = device_creator; -const device_type NES_BMC_1200IN1 = device_creator; -const device_type NES_BMC_GOLD150 = device_creator; -const device_type NES_BMC_GOLD260 = device_creator; -const device_type NES_BMC_CH001 = device_creator; -const device_type NES_BMC_SUPER22 = device_creator; -const device_type NES_BMC_4IN1RESET = device_creator; -const device_type NES_BMC_42IN1RESET = device_creator; +DEFINE_DEVICE_TYPE(NES_ACTION52, nes_action52_device, "nes_action52", "NES Cart Action 52 PCB") +DEFINE_DEVICE_TYPE(NES_CALTRON6IN1, nes_caltron_device, "nes_caltron", "NES Cart Caltron 6 in 1 PCB") +DEFINE_DEVICE_TYPE(NES_RUMBLESTATION, nes_rumblestat_device, "nes_rumblestat", "NES Cart Rumblestation PCB") +DEFINE_DEVICE_TYPE(NES_SVISION16, nes_svision16_device, "nes_svision16", "NES Cart Supervision 16 in 1 PCB") +DEFINE_DEVICE_TYPE(NES_N625092, nes_n625092_device, "nes_n625092", "NES Cart N625092 PCB") +DEFINE_DEVICE_TYPE(NES_A65AS, nes_a65as_device, "nes_a65as", "NES Cart A65AS PCB") +DEFINE_DEVICE_TYPE(NES_T262, nes_t262_device, "nes_t262", "NES Cart T-262 PCB") +DEFINE_DEVICE_TYPE(NES_NOVEL1, nes_novel1_device, "nes_novel1", "NES Cart Novel Diamond Type 1 PCB") +DEFINE_DEVICE_TYPE(NES_NOVEL2, nes_novel2_device, "nes_novel2", "NES Cart Novel Diamond Type 2 PCB") +DEFINE_DEVICE_TYPE(NES_STUDYNGAME, nes_studyngame_device, "nes_studyngame", "NES Cart Study n Game PCB") +DEFINE_DEVICE_TYPE(NES_SUPERGUN20IN1, nes_sgun20in1_device, "nes_sgun20in1", "NES Cart Supergun 20 in 1 PCB") +DEFINE_DEVICE_TYPE(NES_VT5201, nes_vt5201_device, "nes_vt5201", "NES Cart VT5201 PCB") +DEFINE_DEVICE_TYPE(NES_810544C, nes_810544c_device, "nes_810544c", "NES Cart 810544-C-A1 PCB") +DEFINE_DEVICE_TYPE(NES_NTD03, nes_ntd03_device, "nes_ntd03", "NES Cart NTD-03 PCB") +DEFINE_DEVICE_TYPE(NES_BMC_GB63, nes_bmc_gb63_device, "nes_bmc_gb63", "NES Cart BMC Ghostbusters 63 in 1 PCB") +DEFINE_DEVICE_TYPE(NES_BMC_GKA, nes_bmc_gka_device, "nes_bmc_gka", "NES Cart BMC GK-A PCB") +DEFINE_DEVICE_TYPE(NES_BMC_GKB, nes_bmc_gkb_device, "nes_bmc_gkb", "NES Cart BMC GK-B PCB") +DEFINE_DEVICE_TYPE(NES_BMC_WS, nes_bmc_ws_device, "nes_bmc_ws", "NES Cart BMC WS PCB") +DEFINE_DEVICE_TYPE(NES_BMC_11160, nes_bmc_11160_device, "nes_bmc_1160", "NES Cart BMC-1160 PCB") +DEFINE_DEVICE_TYPE(NES_BMC_G146, nes_bmc_g146_device, "nes_bmc_g146", "NES Cart BMC-G-146 PCB") +DEFINE_DEVICE_TYPE(NES_BMC_8157, nes_bmc_8157_device, "nes_bmc_8157", "NES Cart BMC-8157 PCB") +DEFINE_DEVICE_TYPE(NES_BMC_HIK300, nes_bmc_hik300_device, "nes_bmc_hik300", "NES Cart BMC HIK 300 in 1 PCB") +DEFINE_DEVICE_TYPE(NES_BMC_S700, nes_bmc_s700_device, "nes_bmc_s700", "NES Cart BMC Super 700 in 1 PCB") +DEFINE_DEVICE_TYPE(NES_BMC_BALL11, nes_bmc_ball11_device, "nes_bmc_ball11", "NES Cart BMC Ball 11 in 1 PCB") +DEFINE_DEVICE_TYPE(NES_BMC_22GAMES, nes_bmc_22games_device, "nes_bmc_22games", "NES Cart BMC 22 Games PCB") +DEFINE_DEVICE_TYPE(NES_BMC_64Y2K, nes_bmc_64y2k_device, "nes_bmc_64y2k", "NES Cart BMC 64 in 1 Y2K PCB") +DEFINE_DEVICE_TYPE(NES_BMC_12IN1, nes_bmc_12in1_device, "nes_bmc_12in1", "NES Cart BMC 12 in 1 PCB") +DEFINE_DEVICE_TYPE(NES_BMC_20IN1, nes_bmc_20in1_device, "nes_bmc_20in1", "NES Cart BMC 20 in 1 PCB") +DEFINE_DEVICE_TYPE(NES_BMC_21IN1, nes_bmc_21in1_device, "nes_bmc_21in1", "NES Cart BMC 21 in 1 PCB") +DEFINE_DEVICE_TYPE(NES_BMC_31IN1, nes_bmc_31in1_device, "nes_bmc_31in1", "NES Cart BMC 31 in 1 PCB") +DEFINE_DEVICE_TYPE(NES_BMC_35IN1, nes_bmc_35in1_device, "nes_bmc_35in1", "NES Cart BMC 35 in 1 PCB") +DEFINE_DEVICE_TYPE(NES_BMC_36IN1, nes_bmc_36in1_device, "nes_bmc_36in1", "NES Cart BMC 36 in 1 PCB") +DEFINE_DEVICE_TYPE(NES_BMC_64IN1, nes_bmc_64in1_device, "nes_bmc_64in1", "NES Cart BMC 64 in 1 PCB") +DEFINE_DEVICE_TYPE(NES_BMC_70IN1, nes_bmc_70in1_device, "nes_bmc_70in1", "NES Cart BMC 70 in 1 PCB") +DEFINE_DEVICE_TYPE(NES_BMC_72IN1, nes_bmc_72in1_device, "nes_bmc_72in1", "NES Cart BMC 72 in 1 PCB") +DEFINE_DEVICE_TYPE(NES_BMC_76IN1, nes_bmc_76in1_device, "nes_bmc_76in1", "NES Cart BMC 76 in 1 PCB") +DEFINE_DEVICE_TYPE(NES_BMC_110IN1, nes_bmc_110in1_device, "nes_bmc_110in1", "NES Cart BMC 110 in 1 PCB") +DEFINE_DEVICE_TYPE(NES_BMC_150IN1, nes_bmc_150in1_device, "nes_bmc_150in1", "NES Cart BMC 150 in 1 PCB") +DEFINE_DEVICE_TYPE(NES_BMC_190IN1, nes_bmc_190in1_device, "nes_bmc_190in1", "NES Cart BMC 190 in 1 PCB") +DEFINE_DEVICE_TYPE(NES_BMC_800IN1, nes_bmc_800in1_device, "nes_bmc_800in1", "NES Cart BMC 800 in 1 PCB") +DEFINE_DEVICE_TYPE(NES_BMC_1200IN1, nes_bmc_1200in1_device, "nes_bmc_1200in1", "NES Cart BMC 1200 in 1 PCB") +DEFINE_DEVICE_TYPE(NES_BMC_GOLD150, nes_bmc_gold150_device, "nes_bmc_gold150", "NES Cart BMC Golden 150 in 1 PCB") +DEFINE_DEVICE_TYPE(NES_BMC_GOLD260, nes_bmc_gold260_device, "nes_bmc_gold260", "NES Cart BMC Golden 260 in 1 PCB") +DEFINE_DEVICE_TYPE(NES_BMC_CH001, nes_bmc_ch001_device, "nes_bmc_ch001", "NES Cart BMC CH-001 PCB") +DEFINE_DEVICE_TYPE(NES_BMC_SUPER22, nes_bmc_super22_device, "nes_bmc_super22", "NES Cart BMC Super 22 Games PCB") +DEFINE_DEVICE_TYPE(NES_BMC_4IN1RESET, nes_bmc_4in1reset_device, "nes_bmc_4in1reset", "NES Cart BMC 4 in 1 (Reset Based) PCB") +DEFINE_DEVICE_TYPE(NES_BMC_42IN1RESET, nes_bmc_42in1reset_device, "nes_bmc_42in1reset", "NES Cart BMC 42 in 1 (Reset Based) PCB") nes_action52_device::nes_action52_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_ACTION52, "NES Cart Action 52 PCB", tag, owner, clock, "nes_action52", __FILE__) + : nes_nrom_device(mconfig, NES_ACTION52, tag, owner, clock) { } nes_caltron_device::nes_caltron_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_CALTRON6IN1, "NES Cart Caltron 6 in 1 PCB", tag, owner, clock, "nes_caltron", __FILE__), m_latch(0) - { + : nes_nrom_device(mconfig, NES_CALTRON6IN1, tag, owner, clock), m_latch(0) +{ } nes_rumblestat_device::nes_rumblestat_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_RUMBLESTATION, "NES Cart Rumblestation PCB", tag, owner, clock, "nes_rumblestat", __FILE__), m_prg(0), m_chr(0) - { + : nes_nrom_device(mconfig, NES_RUMBLESTATION, tag, owner, clock), m_prg(0), m_chr(0) +{ } nes_svision16_device::nes_svision16_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_SVISION16, "NES Cart Supervision 16 in 1 PCB", tag, owner, clock, "nes_svision16", __FILE__), m_latch1(0), m_latch2(0) - { + : nes_nrom_device(mconfig, NES_SVISION16, tag, owner, clock), m_latch1(0), m_latch2(0) +{ } nes_n625092_device::nes_n625092_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_N625092, "NES Cart N625092 PCB", tag, owner, clock, "nes_n625092", __FILE__), m_latch1(0), m_latch2(0) - { + : nes_nrom_device(mconfig, NES_N625092, tag, owner, clock), m_latch1(0), m_latch2(0) +{ } nes_a65as_device::nes_a65as_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_A65AS, "NES Cart A65AS PCB", tag, owner, clock, "nes_a65as", __FILE__) + : nes_nrom_device(mconfig, NES_A65AS, tag, owner, clock) { } nes_t262_device::nes_t262_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_T262, "NES Cart T-262 PCB", tag, owner, clock, "nes_t262", __FILE__), m_latch1(0), m_latch2(0) - { + : nes_nrom_device(mconfig, NES_T262, tag, owner, clock), m_latch1(0), m_latch2(0) +{ } nes_novel1_device::nes_novel1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_NOVEL1, "NES Cart Novel Diamond Type 1 PCB", tag, owner, clock, "nes_novel1", __FILE__) + : nes_nrom_device(mconfig, NES_NOVEL1, tag, owner, clock) { } nes_novel2_device::nes_novel2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_NOVEL2, "NES Cart Novel Diamond Type 2 PCB", tag, owner, clock, "nes_novel2", __FILE__) + : nes_nrom_device(mconfig, NES_NOVEL2, tag, owner, clock) { } nes_studyngame_device::nes_studyngame_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_STUDYNGAME, "NES Cart Study n Game PCB", tag, owner, clock, "nes_studyngame", __FILE__) + : nes_nrom_device(mconfig, NES_STUDYNGAME, tag, owner, clock) { } nes_sgun20in1_device::nes_sgun20in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_SUPERGUN20IN1, "NES Cart Supergun 20 in 1 PCB", tag, owner, clock, "nes_sgun20in1", __FILE__) + : nes_nrom_device(mconfig, NES_SUPERGUN20IN1, tag, owner, clock) { } nes_vt5201_device::nes_vt5201_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_VT5201, "NES Cart VT5201 PCB", tag, owner, clock, "nes_vt5201", __FILE__), m_latch(0), m_dipsetting(0) - { + : nes_nrom_device(mconfig, NES_VT5201, tag, owner, clock), m_latch(0), m_dipsetting(0) +{ } nes_810544c_device::nes_810544c_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_810544C, "NES Cart 810544-C-A1 PCB", tag, owner, clock, "nes_810544c", __FILE__) + : nes_nrom_device(mconfig, NES_810544C, tag, owner, clock) { } nes_ntd03_device::nes_ntd03_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_NTD03, "NES Cart NTD-03 PCB", tag, owner, clock, "nes_ntd03", __FILE__) + : nes_nrom_device(mconfig, NES_NTD03, tag, owner, clock) { } nes_bmc_gb63_device::nes_bmc_gb63_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_BMC_GB63, "NES Cart BMC Ghostbusters 63 in 1 PCB", tag, owner, clock, "nes_bmc_gb63", __FILE__), m_latch(0), m_dipsetting(0), m_vram_disable(0) - { + : nes_nrom_device(mconfig, NES_BMC_GB63, tag, owner, clock), m_latch(0), m_dipsetting(0), m_vram_disable(0) +{ } nes_bmc_gka_device::nes_bmc_gka_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_BMC_GKA, "NES Cart BMC GK-A PCB", tag, owner, clock, "nes_bmc_gka", __FILE__), m_latch1(0), m_latch2(0) - { + : nes_nrom_device(mconfig, NES_BMC_GKA, tag, owner, clock), m_latch1(0), m_latch2(0) +{ } nes_bmc_gkb_device::nes_bmc_gkb_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_BMC_GKB, "NES Cart BMC GK-B PCB", tag, owner, clock, "nes_bmc_gkb", __FILE__) + : nes_nrom_device(mconfig, NES_BMC_GKB, tag, owner, clock) { } nes_bmc_ws_device::nes_bmc_ws_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_BMC_WS, "NES Cart BMC WS PCB", tag, owner, clock, "nes_bmc_ws", __FILE__), m_latch(0) - { + : nes_nrom_device(mconfig, NES_BMC_WS, tag, owner, clock), m_latch(0) +{ } nes_bmc_11160_device::nes_bmc_11160_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_BMC_11160, "NES Cart BMC-11160 PCB", tag, owner, clock, "nes_bmc_11160", __FILE__) + : nes_nrom_device(mconfig, NES_BMC_11160, tag, owner, clock) { } nes_bmc_g146_device::nes_bmc_g146_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_BMC_G146, "NES Cart BMC-G-146 PCB", tag, owner, clock, "nes_bmc_g146", __FILE__) + : nes_nrom_device(mconfig, NES_BMC_G146, tag, owner, clock) { } nes_bmc_8157_device::nes_bmc_8157_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_BMC_8157, "NES Cart BMC-8157 PCB", tag, owner, clock, "nes_bmc_8157", __FILE__) + : nes_nrom_device(mconfig, NES_BMC_8157, tag, owner, clock) { } nes_bmc_hik300_device::nes_bmc_hik300_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_BMC_HIK300, "NES Cart BMC HIK 300 in 1 PCB", tag, owner, clock, "nes_bmc_hik300", __FILE__) + : nes_nrom_device(mconfig, NES_BMC_HIK300, tag, owner, clock) { } nes_bmc_s700_device::nes_bmc_s700_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_BMC_S700, "NES Cart BMC Super 700 in 1 PCB", tag, owner, clock, "nes_bmc_s700", __FILE__) + : nes_nrom_device(mconfig, NES_BMC_S700, tag, owner, clock) { } nes_bmc_ball11_device::nes_bmc_ball11_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_BMC_BALL11, "NES Cart BMC Ball 11 in 1 PCB", tag, owner, clock, "nes_bmc_ball11", __FILE__) + : nes_nrom_device(mconfig, NES_BMC_BALL11, tag, owner, clock) { } nes_bmc_22games_device::nes_bmc_22games_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_BMC_22GAMES, "NES Cart BMC 22 Games PCB", tag, owner, clock, "nes_bmc_22games", __FILE__) + : nes_nrom_device(mconfig, NES_BMC_22GAMES, tag, owner, clock) { } nes_bmc_64y2k_device::nes_bmc_64y2k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_BMC_64Y2K, "NES Cart BMC 64 in 1 Y2K PCB", tag, owner, clock, "nes_bmc_64y2k", __FILE__) + : nes_nrom_device(mconfig, NES_BMC_64Y2K, tag, owner, clock) { } nes_bmc_12in1_device::nes_bmc_12in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_BMC_12IN1, "NES Cart BMC 12 in 1 PCB", tag, owner, clock, "nes_bmc_12in1", __FILE__) + : nes_nrom_device(mconfig, NES_BMC_12IN1, tag, owner, clock) { } nes_bmc_20in1_device::nes_bmc_20in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_BMC_20IN1, "NES Cart BMC 20 in 1 PCB", tag, owner, clock, "nes_bmc_20in1", __FILE__) + : nes_nrom_device(mconfig, NES_BMC_20IN1, tag, owner, clock) { } nes_bmc_21in1_device::nes_bmc_21in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_BMC_21IN1, "NES Cart BMC 21 in 1 PCB", tag, owner, clock, "nes_bmc_21in1", __FILE__) + : nes_nrom_device(mconfig, NES_BMC_21IN1, tag, owner, clock) { } nes_bmc_31in1_device::nes_bmc_31in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_BMC_31IN1, "NES Cart BMC 31 in 1 PCB", tag, owner, clock, "nes_bmc_31in1", __FILE__) + : nes_nrom_device(mconfig, NES_BMC_31IN1, tag, owner, clock) { } nes_bmc_35in1_device::nes_bmc_35in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_BMC_35IN1, "NES Cart BMC 35 in 1 PCB", tag, owner, clock, "nes_bmc_35in1", __FILE__) + : nes_nrom_device(mconfig, NES_BMC_35IN1, tag, owner, clock) { } nes_bmc_36in1_device::nes_bmc_36in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_BMC_36IN1, "NES Cart BMC 36 in 1 PCB", tag, owner, clock, "nes_bmc_36in1", __FILE__) + : nes_nrom_device(mconfig, NES_BMC_36IN1, tag, owner, clock) { } nes_bmc_64in1_device::nes_bmc_64in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_BMC_64IN1, "NES Cart BMC 64 in 1 PCB", tag, owner, clock, "nes_bmc_64in1", __FILE__) + : nes_nrom_device(mconfig, NES_BMC_64IN1, tag, owner, clock) { } nes_bmc_70in1_device::nes_bmc_70in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_BMC_70IN1, "NES Cart BMC 70 in 1 PCB", tag, owner, clock, "nes_bmc_70in1", __FILE__), m_mode(0) - { + : nes_nrom_device(mconfig, NES_BMC_70IN1, tag, owner, clock), m_mode(0) +{ } nes_bmc_72in1_device::nes_bmc_72in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_BMC_72IN1, "NES Cart BMC 72 in 1 PCB", tag, owner, clock, "nes_bmc_72in1", __FILE__) + : nes_nrom_device(mconfig, NES_BMC_72IN1, tag, owner, clock) { } nes_bmc_76in1_device::nes_bmc_76in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_BMC_76IN1, "NES Cart BMC 76 in 1 PCB", tag, owner, clock, "nes_bmc_76in1", __FILE__), m_latch1(0), m_latch2(0) - { + : nes_nrom_device(mconfig, NES_BMC_76IN1, tag, owner, clock), m_latch1(0), m_latch2(0) +{ } nes_bmc_110in1_device::nes_bmc_110in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_BMC_110IN1, "NES Cart BMC 110 in 1 PCB", tag, owner, clock, "nes_bmc_110in1", __FILE__) + : nes_nrom_device(mconfig, NES_BMC_110IN1, tag, owner, clock) { } nes_bmc_150in1_device::nes_bmc_150in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_BMC_150IN1, "NES Cart BMC 150 in 1 PCB", tag, owner, clock, "nes_bmc_150in1", __FILE__) + : nes_nrom_device(mconfig, NES_BMC_150IN1, tag, owner, clock) { } nes_bmc_190in1_device::nes_bmc_190in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_BMC_190IN1, "NES Cart BMC 190 in 1 PCB", tag, owner, clock, "nes_bmc_190in1", __FILE__) + : nes_nrom_device(mconfig, NES_BMC_190IN1, tag, owner, clock) { } nes_bmc_800in1_device::nes_bmc_800in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_BMC_800IN1, "NES Cart BMC 800 in 1 PCB", tag, owner, clock, "nes_bmc_800in1", __FILE__), m_mode(0) - { + : nes_nrom_device(mconfig, NES_BMC_800IN1, tag, owner, clock), m_mode(0) +{ } nes_bmc_1200in1_device::nes_bmc_1200in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_BMC_1200IN1, "NES Cart BMC 1200 in 1 PCB", tag, owner, clock, "nes_bmc_1200in1", __FILE__), m_vram_protect(0) - { + : nes_nrom_device(mconfig, NES_BMC_1200IN1, tag, owner, clock), m_vram_protect(0) +{ } nes_bmc_gold150_device::nes_bmc_gold150_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_BMC_GOLD150, "NES Cart BMC Golden 150 in 1 PCB", tag, owner, clock, "nes_bmc_gold150", __FILE__), m_latch(0) - { + : nes_nrom_device(mconfig, NES_BMC_GOLD150, tag, owner, clock), m_latch(0) +{ } nes_bmc_gold260_device::nes_bmc_gold260_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_BMC_GOLD260, "NES Cart BMC Golden 260 in 1 PCB", tag, owner, clock, "nes_bmc_gold260", __FILE__) + : nes_nrom_device(mconfig, NES_BMC_GOLD260, tag, owner, clock) { } nes_bmc_ch001_device::nes_bmc_ch001_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_BMC_CH001, "NES Cart BMC CH-001 PCB", tag, owner, clock, "nes_bmc_ch001", __FILE__), m_latch(0) - { + : nes_nrom_device(mconfig, NES_BMC_CH001, tag, owner, clock), m_latch(0) +{ } nes_bmc_super22_device::nes_bmc_super22_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_BMC_SUPER22, "NES Cart BMC Super 22 Games PCB", tag, owner, clock, "nes_bmc_super22", __FILE__) + : nes_nrom_device(mconfig, NES_BMC_SUPER22, tag, owner, clock) { } nes_bmc_4in1reset_device::nes_bmc_4in1reset_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_BMC_4IN1RESET, "NES Cart BMC 4 in 1 (Reset Based) PCB", tag, owner, clock, "nes_bmc_4in1reset", __FILE__), m_latch(0) - { + : nes_nrom_device(mconfig, NES_BMC_4IN1RESET, tag, owner, clock), m_latch(0) +{ } nes_bmc_42in1reset_device::nes_bmc_42in1reset_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_BMC_42IN1RESET, "NES Cart BMC 42 in 1 (Reset Based) PCB", tag, owner, clock, "nes_bmc_42in1reset", __FILE__), m_latch(0) - { + : nes_nrom_device(mconfig, NES_BMC_42IN1RESET, tag, owner, clock), m_latch(0) +{ } diff --git a/src/devices/bus/nes/multigame.h b/src/devices/bus/nes/multigame.h index 65c803910e8..e88ec21be58 100644 --- a/src/devices/bus/nes/multigame.h +++ b/src/devices/bus/nes/multigame.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __NES_MULTIGAME_H -#define __NES_MULTIGAME_H +#ifndef MAME_BUS_NES_MULTIGAME_H +#define MAME_BUS_NES_MULTIGAME_H + +#pragma once #include "nxrom.h" @@ -14,11 +16,13 @@ public: // construction/destruction nes_action52_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; }; @@ -30,13 +34,15 @@ public: // construction/destruction nes_caltron_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_m) override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: uint8_t m_latch; }; @@ -50,13 +56,15 @@ public: // construction/destruction nes_rumblestat_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_m) override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: uint8_t m_prg, m_chr; }; @@ -70,14 +78,16 @@ public: // construction/destruction nes_svision16_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_READ8_MEMBER(read_m) override; virtual DECLARE_WRITE8_MEMBER(write_m) override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: void update_prg(); uint8_t m_latch1, m_latch2; @@ -92,12 +102,14 @@ public: // construction/destruction nes_n625092_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: void set_prg(uint8_t reg1, uint8_t reg2); uint8_t m_latch1, m_latch2; @@ -112,11 +124,13 @@ public: // construction/destruction nes_a65as_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; }; @@ -128,12 +142,14 @@ public: // construction/destruction nes_t262_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: uint8_t m_latch1, m_latch2; }; @@ -147,11 +163,13 @@ public: // construction/destruction nes_novel1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; }; @@ -163,11 +181,13 @@ public: // construction/destruction nes_novel2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; }; @@ -179,11 +199,13 @@ public: // construction/destruction nes_studyngame_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; }; @@ -195,11 +217,13 @@ public: // construction/destruction nes_sgun20in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; }; @@ -211,13 +235,15 @@ public: // construction/destruction nes_vt5201_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_READ8_MEMBER(read_h) override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: uint8_t m_latch, m_dipsetting; }; @@ -231,11 +257,13 @@ public: // construction/destruction nes_810544c_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; }; @@ -247,11 +275,13 @@ public: // construction/destruction nes_ntd03_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; }; @@ -263,14 +293,16 @@ public: // construction/destruction nes_bmc_gb63_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_READ8_MEMBER(read_h) override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual DECLARE_WRITE8_MEMBER(chr_w) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: void update_banks(); uint8_t m_latch, m_dipsetting; @@ -286,12 +318,14 @@ public: // construction/destruction nes_bmc_gka_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: uint8_t m_latch1, m_latch2; }; @@ -305,11 +339,13 @@ public: // construction/destruction nes_bmc_gkb_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; }; @@ -321,12 +357,14 @@ public: // construction/destruction nes_bmc_ws_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_m) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: uint8_t m_latch; }; @@ -340,11 +378,13 @@ public: // construction/destruction nes_bmc_11160_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; }; @@ -356,11 +396,13 @@ public: // construction/destruction nes_bmc_g146_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; }; @@ -372,12 +414,14 @@ public: // construction/destruction nes_bmc_8157_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_READ8_MEMBER(read_h) override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; }; @@ -389,11 +433,13 @@ public: // construction/destruction nes_bmc_hik300_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; }; @@ -405,11 +451,13 @@ public: // construction/destruction nes_bmc_s700_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; }; @@ -421,13 +469,15 @@ public: // construction/destruction nes_bmc_ball11_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_m) override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: void set_banks(); uint8_t m_reg[2]; @@ -442,11 +492,13 @@ public: // construction/destruction nes_bmc_22games_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; }; @@ -458,13 +510,15 @@ public: // construction/destruction nes_bmc_64y2k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_l) override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: void set_prg(); uint8_t m_reg[4]; @@ -479,12 +533,14 @@ public: // construction/destruction nes_bmc_12in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: void update_banks(); uint8_t m_reg[3]; @@ -499,11 +555,13 @@ public: // construction/destruction nes_bmc_20in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; }; @@ -515,11 +573,13 @@ public: // construction/destruction nes_bmc_21in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; }; @@ -531,11 +591,13 @@ public: // construction/destruction nes_bmc_31in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; }; @@ -547,11 +609,13 @@ public: // construction/destruction nes_bmc_35in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; }; @@ -563,11 +627,13 @@ public: // construction/destruction nes_bmc_36in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; }; @@ -579,11 +645,13 @@ public: // construction/destruction nes_bmc_64in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; }; @@ -595,13 +663,15 @@ public: // construction/destruction nes_bmc_70in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_READ8_MEMBER(read_h) override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: uint8_t m_mode; uint8_t m_reg[2]; @@ -616,11 +686,13 @@ public: // construction/destruction nes_bmc_72in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; }; @@ -632,12 +704,14 @@ public: // construction/destruction nes_bmc_76in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: uint8_t m_latch1, m_latch2; }; @@ -651,11 +725,13 @@ public: // construction/destruction nes_bmc_110in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; }; @@ -667,11 +743,13 @@ public: // construction/destruction nes_bmc_150in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; }; @@ -683,11 +761,13 @@ public: // construction/destruction nes_bmc_190in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; }; @@ -699,13 +779,15 @@ public: // construction/destruction nes_bmc_800in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_READ8_MEMBER(read_h) override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: uint8_t m_mode; uint8_t m_reg[2]; @@ -720,13 +802,15 @@ public: // construction/destruction nes_bmc_1200in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual DECLARE_WRITE8_MEMBER(chr_w) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: uint8_t m_vram_protect; }; @@ -740,13 +824,15 @@ public: // construction/destruction nes_bmc_gold150_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_READ8_MEMBER(read_h) override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: uint8_t m_latch; }; @@ -760,11 +846,13 @@ public: // construction/destruction nes_bmc_gold260_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; }; @@ -776,13 +864,15 @@ public: // construction/destruction nes_bmc_ch001_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_READ8_MEMBER(read_h) override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: uint8_t m_latch; }; @@ -796,11 +886,13 @@ public: // construction/destruction nes_bmc_super22_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; }; @@ -812,9 +904,11 @@ public: // construction/destruction nes_bmc_4in1reset_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + virtual void pcb_reset() override; + +protected: // device-level overrides virtual void device_start() override; - virtual void pcb_reset() override; private: int m_latch; @@ -828,67 +922,67 @@ public: // construction/destruction nes_bmc_42in1reset_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: int m_latch; uint8_t m_reg[2]; }; - // device type definition -extern const device_type NES_ACTION52; -extern const device_type NES_CALTRON6IN1; -extern const device_type NES_RUMBLESTATION; -extern const device_type NES_SVISION16; -extern const device_type NES_N625092; -extern const device_type NES_A65AS; -extern const device_type NES_T262; -extern const device_type NES_NOVEL1; -extern const device_type NES_NOVEL2; -extern const device_type NES_STUDYNGAME; -extern const device_type NES_SUPERGUN20IN1; -extern const device_type NES_VT5201; -extern const device_type NES_810544C; -extern const device_type NES_NTD03; -extern const device_type NES_BMC_GB63; -extern const device_type NES_BMC_GKA; -extern const device_type NES_BMC_GKB; -extern const device_type NES_BMC_WS; -extern const device_type NES_BMC_11160; -extern const device_type NES_BMC_G146; -extern const device_type NES_BMC_8157; -extern const device_type NES_BMC_HIK300; -extern const device_type NES_BMC_S700; -extern const device_type NES_BMC_BALL11; -extern const device_type NES_BMC_22GAMES; -extern const device_type NES_BMC_64Y2K; -extern const device_type NES_BMC_12IN1; -extern const device_type NES_BMC_20IN1; -extern const device_type NES_BMC_21IN1; -extern const device_type NES_BMC_31IN1; -extern const device_type NES_BMC_35IN1; -extern const device_type NES_BMC_36IN1; -extern const device_type NES_BMC_64IN1; -extern const device_type NES_BMC_70IN1; -extern const device_type NES_BMC_72IN1; -extern const device_type NES_BMC_76IN1; -extern const device_type NES_BMC_110IN1; -extern const device_type NES_BMC_150IN1; -extern const device_type NES_BMC_190IN1; -extern const device_type NES_BMC_800IN1; -extern const device_type NES_BMC_1200IN1; -extern const device_type NES_BMC_GOLD150; -extern const device_type NES_BMC_GOLD260; -extern const device_type NES_BMC_CH001; -extern const device_type NES_BMC_SUPER22; -extern const device_type NES_BMC_4IN1RESET; -extern const device_type NES_BMC_42IN1RESET; - - -#endif +DECLARE_DEVICE_TYPE(NES_ACTION52, nes_action52_device) +DECLARE_DEVICE_TYPE(NES_CALTRON6IN1, nes_caltron_device) +DECLARE_DEVICE_TYPE(NES_RUMBLESTATION, nes_rumblestat_device) +DECLARE_DEVICE_TYPE(NES_SVISION16, nes_svision16_device) +DECLARE_DEVICE_TYPE(NES_N625092, nes_n625092_device) +DECLARE_DEVICE_TYPE(NES_A65AS, nes_a65as_device) +DECLARE_DEVICE_TYPE(NES_T262, nes_t262_device) +DECLARE_DEVICE_TYPE(NES_NOVEL1, nes_novel1_device) +DECLARE_DEVICE_TYPE(NES_NOVEL2, nes_novel2_device) +DECLARE_DEVICE_TYPE(NES_STUDYNGAME, nes_studyngame_device) +DECLARE_DEVICE_TYPE(NES_SUPERGUN20IN1, nes_sgun20in1_device) +DECLARE_DEVICE_TYPE(NES_VT5201, nes_vt5201_device) +DECLARE_DEVICE_TYPE(NES_810544C, nes_810544c_device) +DECLARE_DEVICE_TYPE(NES_NTD03, nes_ntd03_device) +DECLARE_DEVICE_TYPE(NES_BMC_GB63, nes_bmc_gb63_device) +DECLARE_DEVICE_TYPE(NES_BMC_GKA, nes_bmc_gka_device) +DECLARE_DEVICE_TYPE(NES_BMC_GKB, nes_bmc_gkb_device) +DECLARE_DEVICE_TYPE(NES_BMC_WS, nes_bmc_ws_device) +DECLARE_DEVICE_TYPE(NES_BMC_11160, nes_bmc_11160_device) +DECLARE_DEVICE_TYPE(NES_BMC_G146, nes_bmc_g146_device) +DECLARE_DEVICE_TYPE(NES_BMC_8157, nes_bmc_8157_device) +DECLARE_DEVICE_TYPE(NES_BMC_HIK300, nes_bmc_hik300_device) +DECLARE_DEVICE_TYPE(NES_BMC_S700, nes_bmc_s700_device) +DECLARE_DEVICE_TYPE(NES_BMC_BALL11, nes_bmc_ball11_device) +DECLARE_DEVICE_TYPE(NES_BMC_22GAMES, nes_bmc_22games_device) +DECLARE_DEVICE_TYPE(NES_BMC_64Y2K, nes_bmc_64y2k_device) +DECLARE_DEVICE_TYPE(NES_BMC_12IN1, nes_bmc_12in1_device) +DECLARE_DEVICE_TYPE(NES_BMC_20IN1, nes_bmc_20in1_device) +DECLARE_DEVICE_TYPE(NES_BMC_21IN1, nes_bmc_21in1_device) +DECLARE_DEVICE_TYPE(NES_BMC_31IN1, nes_bmc_31in1_device) +DECLARE_DEVICE_TYPE(NES_BMC_35IN1, nes_bmc_35in1_device) +DECLARE_DEVICE_TYPE(NES_BMC_36IN1, nes_bmc_36in1_device) +DECLARE_DEVICE_TYPE(NES_BMC_64IN1, nes_bmc_64in1_device) +DECLARE_DEVICE_TYPE(NES_BMC_70IN1, nes_bmc_70in1_device) +DECLARE_DEVICE_TYPE(NES_BMC_72IN1, nes_bmc_72in1_device) +DECLARE_DEVICE_TYPE(NES_BMC_76IN1, nes_bmc_76in1_device) +DECLARE_DEVICE_TYPE(NES_BMC_110IN1, nes_bmc_110in1_device) +DECLARE_DEVICE_TYPE(NES_BMC_150IN1, nes_bmc_150in1_device) +DECLARE_DEVICE_TYPE(NES_BMC_190IN1, nes_bmc_190in1_device) +DECLARE_DEVICE_TYPE(NES_BMC_800IN1, nes_bmc_800in1_device) +DECLARE_DEVICE_TYPE(NES_BMC_1200IN1, nes_bmc_1200in1_device) +DECLARE_DEVICE_TYPE(NES_BMC_GOLD150, nes_bmc_gold150_device) +DECLARE_DEVICE_TYPE(NES_BMC_GOLD260, nes_bmc_gold260_device) +DECLARE_DEVICE_TYPE(NES_BMC_CH001, nes_bmc_ch001_device) +DECLARE_DEVICE_TYPE(NES_BMC_SUPER22, nes_bmc_super22_device) +DECLARE_DEVICE_TYPE(NES_BMC_4IN1RESET, nes_bmc_4in1reset_device) +DECLARE_DEVICE_TYPE(NES_BMC_42IN1RESET, nes_bmc_42in1reset_device) + +#endif // MAME_BUS_NES_MULTIGAME_H diff --git a/src/devices/bus/nes/namcot.cpp b/src/devices/bus/nes/namcot.cpp index edb1eff11e5..59778cbbaea 100644 --- a/src/devices/bus/nes/namcot.cpp +++ b/src/devices/bus/nes/namcot.cpp @@ -41,52 +41,52 @@ // constructor //------------------------------------------------- -const device_type NES_NAMCOT3433 = device_creator; -const device_type NES_NAMCOT3446 = device_creator; -const device_type NES_NAMCOT3425 = device_creator; -const device_type NES_NAMCOT175 = device_creator; -const device_type NES_NAMCOT340 = device_creator; -const device_type NES_NAMCOT163 = device_creator; +DEFINE_DEVICE_TYPE(NES_NAMCOT3433, nes_namcot3433_device, "nes_namcot3433", "NES Cart Namcot 3433 & 3443 / DxROM PCB") +DEFINE_DEVICE_TYPE(NES_NAMCOT3446, nes_namcot3446_device, "nes_namcot3446", "NES Cart Namcot 3446 PCB") +DEFINE_DEVICE_TYPE(NES_NAMCOT3425, nes_namcot3425_device, "nes_namcot3425", "NES Cart Namcot 3425 PCB") +DEFINE_DEVICE_TYPE(NES_NAMCOT340, nes_namcot340_device, "nes_namcot340", "NES Cart Namcot 340 PCB") +DEFINE_DEVICE_TYPE(NES_NAMCOT175, nes_namcot175_device, "nes_namcot175", "NES Cart Namcot 175 PCB") +DEFINE_DEVICE_TYPE(NES_NAMCOT163, nes_namcot163_device, "nes_namcot163", "NES Cart Namcot 163 PCB") -nes_namcot3433_device::nes_namcot3433_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : nes_nrom_device(mconfig, type, name, tag, owner, clock, shortname, source), m_latch(0) - { +nes_namcot3433_device::nes_namcot3433_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : nes_nrom_device(mconfig, type, tag, owner, clock), m_latch(0) +{ } nes_namcot3433_device::nes_namcot3433_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_NAMCOT3433, "NES Cart Namcot 3433 & 3443 / DxROM PCB", tag, owner, clock, "nes_namcot3433", __FILE__), m_latch(0) - { + : nes_nrom_device(mconfig, NES_NAMCOT3433, tag, owner, clock), m_latch(0) +{ } nes_namcot3446_device::nes_namcot3446_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_NAMCOT3446, "NES Cart Namcot 3446 PCB", tag, owner, clock, "nes_namcot3446", __FILE__), m_latch(0) - { + : nes_nrom_device(mconfig, NES_NAMCOT3446, tag, owner, clock), m_latch(0) +{ } nes_namcot3425_device::nes_namcot3425_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_NAMCOT3425, "NES Cart Namcot 3425 PCB", tag, owner, clock, "nes_namcot3425", __FILE__), m_latch(0) - { + : nes_nrom_device(mconfig, NES_NAMCOT3425, tag, owner, clock), m_latch(0) +{ } -nes_namcot340_device::nes_namcot340_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : nes_nrom_device(mconfig, type, name, tag, owner, clock, shortname, source), m_irq_count(0), m_irq_enable(0), irq_timer(nullptr) - { +nes_namcot340_device::nes_namcot340_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : nes_nrom_device(mconfig, type, tag, owner, clock), m_irq_count(0), m_irq_enable(0), irq_timer(nullptr) +{ } nes_namcot340_device::nes_namcot340_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_NAMCOT340, "NES Cart Namcot 340 PCB", tag, owner, clock, "nes_namcot340", __FILE__), m_irq_count(0), m_irq_enable(0), irq_timer(nullptr) - { + : nes_namcot340_device(mconfig, NES_NAMCOT340, tag, owner, clock) +{ } nes_namcot175_device::nes_namcot175_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_namcot340_device(mconfig, NES_NAMCOT175, "NES Cart Namcot 175 PCB", tag, owner, clock, "nes_namcot175", __FILE__), m_wram_protect(0) - { + : nes_namcot340_device(mconfig, NES_NAMCOT175, tag, owner, clock), m_wram_protect(0) +{ } nes_namcot163_device::nes_namcot163_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_namcot340_device(mconfig, NES_NAMCOT163, "NES Cart Namcot 163 PCB", tag, owner, clock, "nes_namcot163", __FILE__), m_wram_protect(0), m_latch(0), m_chr_bank(0) - { + : nes_namcot340_device(mconfig, NES_NAMCOT163, tag, owner, clock), m_wram_protect(0), m_latch(0), m_chr_bank(0) +{ } diff --git a/src/devices/bus/nes/namcot.h b/src/devices/bus/nes/namcot.h index bb65a0c8953..a4ab64084e1 100644 --- a/src/devices/bus/nes/namcot.h +++ b/src/devices/bus/nes/namcot.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __NES_NAMCOT_H -#define __NES_NAMCOT_H +#ifndef MAME_BUS_NES_NAMCOT_H +#define MAME_BUS_NES_NAMCOT_H + +#pragma once #include "nxrom.h" @@ -12,16 +14,19 @@ class nes_namcot3433_device : public nes_nrom_device { public: // construction/destruction - nes_namcot3433_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); nes_namcot3433_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(dxrom_write); virtual DECLARE_WRITE8_MEMBER(write_h) override { dxrom_write(space, offset, data, mem_mask); } virtual void pcb_reset() override; +protected: + nes_namcot3433_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual void device_start() override; + private: uint8_t m_latch; }; @@ -35,12 +40,14 @@ public: // construction/destruction nes_namcot3446_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: uint8_t m_latch; }; @@ -54,12 +61,14 @@ public: // construction/destruction nes_namcot3425_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: uint8_t m_latch; uint8_t m_reg[4]; @@ -72,12 +81,8 @@ class nes_namcot340_device : public nes_nrom_device { public: // construction/destruction - nes_namcot340_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); nes_namcot340_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; virtual DECLARE_READ8_MEMBER(n340_loread); virtual DECLARE_WRITE8_MEMBER(n340_lowrite); virtual DECLARE_WRITE8_MEMBER(n340_hiwrite); @@ -88,10 +93,17 @@ public: virtual void pcb_reset() override; protected: + static constexpr device_timer_id TIMER_IRQ = 0; + + nes_namcot340_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual void device_start() override; + virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + uint16_t m_irq_count; int m_irq_enable; - static const device_timer_id TIMER_IRQ = 0; emu_timer *irq_timer; // Namcot-163 chip contains 8K of internal ram, possibly battery backed up (not emulated yet) @@ -129,8 +141,6 @@ public: // construction/destruction nes_namcot163_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_READ8_MEMBER(read_l) override; virtual DECLARE_READ8_MEMBER(read_m) override; virtual DECLARE_WRITE8_MEMBER(write_l) override; @@ -143,6 +153,10 @@ public: virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: void set_mirror(uint8_t page, uint8_t data); @@ -151,13 +165,12 @@ private: }; - // device type definition -extern const device_type NES_NAMCOT3433; -extern const device_type NES_NAMCOT3446; -extern const device_type NES_NAMCOT3425; -extern const device_type NES_NAMCOT175; -extern const device_type NES_NAMCOT340; -extern const device_type NES_NAMCOT163; - -#endif +DECLARE_DEVICE_TYPE(NES_NAMCOT3433, nes_namcot3433_device) +DECLARE_DEVICE_TYPE(NES_NAMCOT3446, nes_namcot3446_device) +DECLARE_DEVICE_TYPE(NES_NAMCOT3425, nes_namcot3425_device) +DECLARE_DEVICE_TYPE(NES_NAMCOT340, nes_namcot340_device) +DECLARE_DEVICE_TYPE(NES_NAMCOT175, nes_namcot175_device) +DECLARE_DEVICE_TYPE(NES_NAMCOT163, nes_namcot163_device) + +#endif // MAME_BUS_NES_NAMCOT_H diff --git a/src/devices/bus/nes/nanjing.cpp b/src/devices/bus/nes/nanjing.cpp index 8acc871f81c..77a699f7a7c 100644 --- a/src/devices/bus/nes/nanjing.cpp +++ b/src/devices/bus/nes/nanjing.cpp @@ -30,15 +30,15 @@ // constructor //------------------------------------------------- -const device_type NES_NANJING = device_creator; +DEFINE_DEVICE_TYPE(NES_NANJING, nes_nanjing_device, "nes_nanjing", "NES Cart Nanjing PCB") nes_nanjing_device::nes_nanjing_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_NANJING, "NES Cart Nanjing PCB", tag, owner, clock, "nes_nanjing", __FILE__), - m_count(0), - m_latch1(0), - m_latch2(0) - { + : nes_nrom_device(mconfig, NES_NANJING, tag, owner, clock) + , m_count(0) + , m_latch1(0) + , m_latch2(0) +{ } diff --git a/src/devices/bus/nes/nanjing.h b/src/devices/bus/nes/nanjing.h index c7f886ba107..f7a7d508f5f 100644 --- a/src/devices/bus/nes/nanjing.h +++ b/src/devices/bus/nes/nanjing.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __NES_NANJING_H -#define __NES_NANJING_H +#ifndef MAME_BUS_NES_NANJING_H +#define MAME_BUS_NES_NANJING_H + +#pragma once #include "nxrom.h" @@ -14,14 +16,16 @@ public: // construction/destruction nes_nanjing_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_READ8_MEMBER(read_l) override; virtual DECLARE_WRITE8_MEMBER(write_l) override; virtual void hblank_irq(int scanline, int vblank, int blanked) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: uint8_t m_count; uint8_t m_reg[2]; @@ -29,10 +33,7 @@ private: }; - - - // device type definition -extern const device_type NES_NANJING; +DECLARE_DEVICE_TYPE(NES_NANJING, nes_nanjing_device) -#endif +#endif // MAME_BUS_NES_NANJING_H diff --git a/src/devices/bus/nes/nes_carts.cpp b/src/devices/bus/nes/nes_carts.cpp index 95cce71afaf..a2434621b4c 100644 --- a/src/devices/bus/nes/nes_carts.cpp +++ b/src/devices/bus/nes/nes_carts.cpp @@ -9,6 +9,61 @@ #include "emu.h" #include "nes_carts.h" +// official PCBs +#include "nxrom.h" +#include "mmc1.h" +#include "mmc2.h" +#include "mmc3.h" +#include "mmc5.h" +#include "bandai.h" +#include "datach.h" +#include "discrete.h" +#include "disksys.h" +#include "event.h" +#include "irem.h" +#include "jaleco.h" +#include "karastudio.h" +#include "konami.h" +#include "namcot.h" +#include "pt554.h" +#include "sunsoft.h" +#include "sunsoft_dcs.h" +#include "taito.h" +// unlicensed/bootleg/pirate PCBs +#include "2a03pur.h" +#include "act53.h" +#include "aladdin.h" +#include "ave.h" +#include "benshieng.h" +#include "camerica.h" +#include "cne.h" +#include "cony.h" +#include "ggenie.h" +#include "hes.h" +#include "henggedianzi.h" +#include "hosenkan.h" +#include "jy.h" +#include "kaiser.h" +#include "legacy.h" +#include "nanjing.h" +#include "ntdec.h" +#include "racermate.h" +#include "rcm.h" +#include "rexsoft.h" +#include "sachen.h" +#include "somari.h" +#include "subor.h" +#include "tengen.h" +#include "txc.h" +#include "waixing.h" +#include "zemina.h" +// misc unlicensed/bootleg/pirate PCBs +#include "bootleg.h" +#include "multigame.h" +#include "pirate.h" +#include "mmc3_clones.h" + + SLOT_INTERFACE_START(nes_cart) // HROM, NROM, RROM, SROM & STROM SLOT_INTERFACE_INTERNAL("nrom", NES_NROM) diff --git a/src/devices/bus/nes/nes_carts.h b/src/devices/bus/nes/nes_carts.h index 85bc4b429fb..421a5b12386 100644 --- a/src/devices/bus/nes/nes_carts.h +++ b/src/devices/bus/nes/nes_carts.h @@ -6,69 +6,14 @@ **********************************************************************/ -#pragma once - -#ifndef __NES_CARTS_H__ -#define __NES_CARTS_H__ +#ifndef MAME_BUS_NES_NES_CARTS_H +#define MAME_BUS_NES_NES_CARTS_H - -// official PCBs -#include "nxrom.h" -#include "mmc1.h" -#include "mmc2.h" -#include "mmc3.h" -#include "mmc5.h" -#include "bandai.h" -#include "datach.h" -#include "discrete.h" -#include "disksys.h" -#include "event.h" -#include "irem.h" -#include "jaleco.h" -#include "karastudio.h" -#include "konami.h" -#include "namcot.h" -#include "pt554.h" -#include "sunsoft.h" -#include "sunsoft_dcs.h" -#include "taito.h" -// unlicensed/bootleg/pirate PCBs -#include "2a03pur.h" -#include "act53.h" -#include "aladdin.h" -#include "ave.h" -#include "benshieng.h" -#include "camerica.h" -#include "cne.h" -#include "cony.h" -#include "ggenie.h" -#include "hes.h" -#include "henggedianzi.h" -#include "hosenkan.h" -#include "jy.h" -#include "kaiser.h" -#include "legacy.h" -#include "nanjing.h" -#include "ntdec.h" -#include "racermate.h" -#include "rcm.h" -#include "rexsoft.h" -#include "sachen.h" -#include "somari.h" -#include "subor.h" -#include "tengen.h" -#include "txc.h" -#include "waixing.h" -#include "zemina.h" -// misc unlicensed/bootleg/pirate PCBs -#include "bootleg.h" -#include "multigame.h" -#include "pirate.h" -#include "mmc3_clones.h" +#pragma once // supported devices SLOT_INTERFACE_EXTERN(nes_cart); SLOT_INTERFACE_EXTERN(disksys_only); -#endif // __NES_CARTS_H__ +#endif // MAME_BUS_NES_NES_CARTS_H diff --git a/src/devices/bus/nes/nes_slot.cpp b/src/devices/bus/nes/nes_slot.cpp index 530287142e7..b8f99355faa 100644 --- a/src/devices/bus/nes/nes_slot.cpp +++ b/src/devices/bus/nes/nes_slot.cpp @@ -93,7 +93,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type NES_CART_SLOT = device_creator; +DEFINE_DEVICE_TYPE(NES_CART_SLOT, nes_cart_slot_device, "nes_cart_slot", "NES Cartridge Slot") //************************************************************************** @@ -105,31 +105,32 @@ const device_type NES_CART_SLOT = device_creator; //------------------------------------------------- device_nes_cart_interface::device_nes_cart_interface(const machine_config &mconfig, device_t &device) - : device_slot_card_interface(mconfig, device), - m_prg(nullptr), - m_vrom(nullptr), - m_ciram(nullptr), - m_prg_size(0), - m_vrom_size(0), m_maincpu(nullptr), - m_mapper_sram(nullptr), - m_mapper_sram_size(0), - m_ce_mask(0), - m_ce_state(0), - m_vrc_ls_prg_a(0), - m_vrc_ls_prg_b(0), - m_vrc_ls_chr(0), - m_mirroring(PPU_MIRROR_NONE), - m_pcb_ctrl_mirror(false), - m_four_screen_vram(false), - m_has_trainer(false), - m_x1_005_alt_mirroring(false), - m_bus_conflict(true), - m_open_bus(0), - m_prg_chunks(0), - m_prg_mask(0xffff), - m_chr_source(CHRRAM), - m_vrom_chunks(0), - m_vram_chunks(0) + : device_slot_card_interface(mconfig, device) + , m_prg(nullptr) + , m_vrom(nullptr) + , m_ciram(nullptr) + , m_prg_size(0) + , m_vrom_size(0) + , m_maincpu(nullptr) + , m_mapper_sram(nullptr) + , m_mapper_sram_size(0) + , m_ce_mask(0) + , m_ce_state(0) + , m_vrc_ls_prg_a(0) + , m_vrc_ls_prg_b(0) + , m_vrc_ls_chr(0) + , m_mirroring(PPU_MIRROR_NONE) + , m_pcb_ctrl_mirror(false) + , m_four_screen_vram(false) + , m_has_trainer(false) + , m_x1_005_alt_mirroring(false) + , m_bus_conflict(true) + , m_open_bus(0) + , m_prg_chunks(0) + , m_prg_mask(0xffff) + , m_chr_source(CHRRAM) + , m_vrom_chunks(0) + , m_vram_chunks(0) { } @@ -742,13 +743,14 @@ void device_nes_cart_interface::nes_banks_restore() //------------------------------------------------- // nes_cart_slot_device - constructor //------------------------------------------------- -nes_cart_slot_device::nes_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, NES_CART_SLOT, "NES Cartridge Slot", tag, owner, clock, "nes_cart_slot", __FILE__), - device_image_interface(mconfig, *this), - device_slot_interface(mconfig, *this), - m_crc_hack(0), m_cart(nullptr), - m_pcb_id(NO_BOARD), - m_must_be_loaded(1) +nes_cart_slot_device::nes_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, NES_CART_SLOT, tag, owner, clock) + , device_image_interface(mconfig, *this) + , device_slot_interface(mconfig, *this) + , m_crc_hack(0) + , m_cart(nullptr) + , m_pcb_id(NO_BOARD) + , m_must_be_loaded(1) { } diff --git a/src/devices/bus/nes/nes_slot.h b/src/devices/bus/nes/nes_slot.h index b8829fd4768..82876ce15a5 100644 --- a/src/devices/bus/nes/nes_slot.h +++ b/src/devices/bus/nes/nes_slot.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __NES_SLOT_H__ -#define __NES_SLOT_H__ +#ifndef MAME_BUS_NES_NES_SLOT_H +#define MAME_BUS_NES_NES_SLOT_H + +#pragma once #include "softlist_dev.h" @@ -161,7 +163,6 @@ class device_nes_cart_interface : public device_slot_card_interface { public: // construction/destruction - device_nes_cart_interface(const machine_config &mconfig, device_t &device); virtual ~device_nes_cart_interface(); // reading and writing @@ -230,6 +231,7 @@ public: uint8_t account_bus_conflict(uint32_t offset, uint8_t data); protected: + device_nes_cart_interface(const machine_config &mconfig, device_t &device); // internal state uint8_t *m_prg; @@ -396,15 +398,14 @@ public: void set_must_be_loaded(bool _must_be_loaded) { m_must_be_loaded = _must_be_loaded; } - //private: - +//private: device_nes_cart_interface* m_cart; int m_pcb_id; bool m_must_be_loaded; }; // device type definition -extern const device_type NES_CART_SLOT; +DECLARE_DEVICE_TYPE(NES_CART_SLOT, nes_cart_slot_device) /*************************************************************************** @@ -429,4 +430,4 @@ extern const device_type NES_CART_SLOT; MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, true) \ MCFG_NES_CARTRIDGE_NOT_MANDATORY -#endif +#endif // MAME_BUS_NES_NES_SLOT_H diff --git a/src/devices/bus/nes/ntdec.cpp b/src/devices/bus/nes/ntdec.cpp index a2547a97185..5ea3458e8f3 100644 --- a/src/devices/bus/nes/ntdec.cpp +++ b/src/devices/bus/nes/ntdec.cpp @@ -34,18 +34,18 @@ // constructor //------------------------------------------------- -const device_type NES_NTDEC_ASDER = device_creator; -const device_type NES_NTDEC_FH = device_creator; +DEFINE_DEVICE_TYPE(NES_NTDEC_ASDER, nes_ntdec_asder_device, "nes_ntdec_asder", "NES Cart NTDEC Asder PCB") +DEFINE_DEVICE_TYPE(NES_NTDEC_FH, nes_ntdec_fh_device, "nes_fh_asder", "NES Cart NTDEC Fighting Hero PCB") nes_ntdec_asder_device::nes_ntdec_asder_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_NTDEC_ASDER, "NES Cart NTDEC Asder PCB", tag, owner, clock, "nes_ntdec_asder", __FILE__), - m_latch(0) - { + : nes_nrom_device(mconfig, NES_NTDEC_ASDER, tag, owner, clock) + , m_latch(0) +{ } nes_ntdec_fh_device::nes_ntdec_fh_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_NTDEC_FH, "NES Cart NTDEC Fighting Hero PCB", tag, owner, clock, "nes_ntdec_fh", __FILE__) + : nes_nrom_device(mconfig, NES_NTDEC_FH, tag, owner, clock) { } diff --git a/src/devices/bus/nes/ntdec.h b/src/devices/bus/nes/ntdec.h index daa7ba8acdf..1e5e8ef6cbb 100644 --- a/src/devices/bus/nes/ntdec.h +++ b/src/devices/bus/nes/ntdec.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __NES_NTDEC_H -#define __NES_NTDEC_H +#ifndef MAME_BUS_NES_NTDEC_H +#define MAME_BUS_NES_NTDEC_H + +#pragma once #include "nxrom.h" @@ -14,12 +16,14 @@ public: // construction/destruction nes_ntdec_asder_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: uint8_t m_latch; }; @@ -33,19 +37,18 @@ public: // construction/destruction nes_ntdec_fh_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_m) override; virtual void pcb_reset() override; -}; - - +protected: + // device-level overrides + virtual void device_start() override; +}; // device type definition -extern const device_type NES_NTDEC_ASDER; -extern const device_type NES_NTDEC_FH; +DECLARE_DEVICE_TYPE(NES_NTDEC_ASDER, nes_ntdec_asder_device) +DECLARE_DEVICE_TYPE(NES_NTDEC_FH, nes_ntdec_fh_device) -#endif +#endif // MAME_BUS_NES_NTDEC_H diff --git a/src/devices/bus/nes/nxrom.cpp b/src/devices/bus/nes/nxrom.cpp index 6996fe50faa..e78fd6d1527 100644 --- a/src/devices/bus/nes/nxrom.cpp +++ b/src/devices/bus/nes/nxrom.cpp @@ -45,89 +45,87 @@ // constructor //------------------------------------------------- -const device_type NES_NROM = device_creator; -const device_type NES_NROM368 = device_creator; -const device_type NES_FCBASIC = device_creator; -const device_type NES_AXROM = device_creator; -const device_type NES_BXROM = device_creator; -const device_type NES_CNROM = device_creator; -const device_type NES_CPROM = device_creator; -const device_type NES_GXROM = device_creator; -const device_type NES_UXROM = device_creator; -const device_type NES_UXROM_CC = device_creator; -const device_type NES_UN1ROM = device_creator; -const device_type NES_NOCHR = device_creator; +DEFINE_DEVICE_TYPE(NES_NROM, nes_nrom_device, "nes_nrom", "NES Cart NROM PCB") +DEFINE_DEVICE_TYPE(NES_NROM368, nes_nrom368_device, "nes_nrom368", "NES Cart NROM-368 PCB") +DEFINE_DEVICE_TYPE(NES_FCBASIC, nes_fcbasic_device, "nes_fcbasic", "NES Cart Famicom BASIC PCB") +DEFINE_DEVICE_TYPE(NES_AXROM, nes_axrom_device, "nes_axrom", "NES Cart AxROM PCB") +DEFINE_DEVICE_TYPE(NES_BXROM, nes_bxrom_device, "nes_bxrom", "NES Cart BxROM PCB") +DEFINE_DEVICE_TYPE(NES_CNROM, nes_cnrom_device, "nes_cnrom", "NES Cart CNROM PCB") +DEFINE_DEVICE_TYPE(NES_CPROM, nes_cprom_device, "nes_cprom", "NES Cart CPROM PCB") +DEFINE_DEVICE_TYPE(NES_GXROM, nes_gxrom_device, "nes_gxrom", "NES Cart GxROM PCB") +DEFINE_DEVICE_TYPE(NES_UXROM, nes_uxrom_device, "nes_uxrom", "NES Cart UxROM PCB") +DEFINE_DEVICE_TYPE(NES_UXROM_CC, nes_uxrom_cc_device, "nes_uxrom_cc", "NES Cart UNROM M5 (Crazy Climber) PCB") +DEFINE_DEVICE_TYPE(NES_UN1ROM, nes_un1rom_device, "nes_un1rom", "NES Cart UN1ROM PCB") +DEFINE_DEVICE_TYPE(NES_NOCHR, nes_nochr_device, "nes_nochr", "NES Cart NoCash NOCHR PCB") -nes_nrom_device::nes_nrom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_nes_cart_interface( mconfig, *this ) +nes_nrom_device::nes_nrom_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock), device_nes_cart_interface(mconfig, *this) { } nes_nrom_device::nes_nrom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, NES_NROM, "NES Cart NROM PCB", tag, owner, clock, "nes_nrom", __FILE__), - device_nes_cart_interface( mconfig, *this ) + : nes_nrom_device(mconfig, NES_NROM, tag, owner, clock) { } nes_nrom368_device::nes_nrom368_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_NROM368, "NES Cart NROM-368 PCB", tag, owner, clock, "nes_nrom368", __FILE__) + : nes_nrom_device(mconfig, NES_NROM368, tag, owner, clock) { } nes_fcbasic_device::nes_fcbasic_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_FCBASIC, "NES Cart Famicom BASIC PCB", tag, owner, clock, "nes_fcbasic", __FILE__) + : nes_nrom_device(mconfig, NES_FCBASIC, tag, owner, clock) { } nes_axrom_device::nes_axrom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_AXROM, "NES Cart AxROM PCB", tag, owner, clock, "nes_axrom", __FILE__) + : nes_nrom_device(mconfig, NES_AXROM, tag, owner, clock) { } nes_bxrom_device::nes_bxrom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_BXROM, "NES Cart BxROM PCB", tag, owner, clock, "nes_bxrom", __FILE__) + : nes_nrom_device(mconfig, NES_BXROM, tag, owner, clock) { } -nes_cnrom_device::nes_cnrom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : nes_nrom_device(mconfig, type, name, tag, owner, clock, shortname, source), m_chr_open_bus(0) - { +nes_cnrom_device::nes_cnrom_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : nes_nrom_device(mconfig, type, tag, owner, clock), m_chr_open_bus(0) +{ } nes_cnrom_device::nes_cnrom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_CNROM, "NES Cart CNROM PCB", tag, owner, clock, "nes_cnrom", __FILE__), m_chr_open_bus(0) - { + : nes_cnrom_device(mconfig, NES_CNROM, tag, owner, clock) +{ } nes_cprom_device::nes_cprom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_CPROM, "NES Cart CPROM PCB", tag, owner, clock, "nes_cprom", __FILE__) + : nes_nrom_device(mconfig, NES_CPROM, tag, owner, clock) { } nes_gxrom_device::nes_gxrom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_GXROM, "NES Cart GxROM PCB", tag, owner, clock, "nes_gxrom", __FILE__) + : nes_nrom_device(mconfig, NES_GXROM, tag, owner, clock) { } nes_uxrom_device::nes_uxrom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_UXROM, "NES Cart UxROM PCB", tag, owner, clock, "nes_uxrom", __FILE__) + : nes_nrom_device(mconfig, NES_UXROM, tag, owner, clock) { } nes_uxrom_cc_device::nes_uxrom_cc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_UXROM_CC, "NES Cart UNROM M5 PCB (Crazy Climber)", tag, owner, clock, "nes_uxrom_cc", __FILE__) + : nes_nrom_device(mconfig, NES_UXROM_CC, tag, owner, clock) { } nes_un1rom_device::nes_un1rom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_UN1ROM, "NES Cart UN1ROM PCB", tag, owner, clock, "nes_un1rom", __FILE__) + : nes_nrom_device(mconfig, NES_UN1ROM, tag, owner, clock) { } nes_nochr_device::nes_nochr_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_NOCHR, "NES Cart NoCash NOCHR PCB", tag, owner, clock, "nes_nochr", __FILE__) + : nes_nrom_device(mconfig, NES_NOCHR, tag, owner, clock) { } diff --git a/src/devices/bus/nes/nxrom.h b/src/devices/bus/nes/nxrom.h index c4f112bb68e..721ed5b5e98 100644 --- a/src/devices/bus/nes/nxrom.h +++ b/src/devices/bus/nes/nxrom.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __NES_MMCX_H -#define __NES_MMCX_H +#ifndef MAME_BUS_NES_NXROM_H +#define MAME_BUS_NES_NXROM_H + +#pragma once #include "nes_slot.h" #include "sound/samples.h" @@ -9,18 +11,19 @@ // ======================> nes_nrom_device -class nes_nrom_device : public device_t, - public device_nes_cart_interface +class nes_nrom_device : public device_t, public device_nes_cart_interface { public: // construction/destruction - nes_nrom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); nes_nrom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual void device_start() override { common_start(); } - virtual void pcb_reset() override; +protected: + nes_nrom_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + virtual void device_start() override { common_start(); } + void common_start(); }; @@ -59,11 +62,13 @@ public: // construction/destruction nes_axrom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; }; @@ -75,11 +80,13 @@ public: // construction/destruction nes_bxrom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; }; @@ -89,16 +96,19 @@ class nes_cnrom_device : public nes_nrom_device { public: // construction/destruction - nes_cnrom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); nes_cnrom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_READ8_MEMBER(chr_r) override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; +protected: + nes_cnrom_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual void device_start() override; + private: uint8_t m_chr_open_bus; }; @@ -112,11 +122,13 @@ public: // construction/destruction nes_cprom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; }; @@ -128,11 +140,13 @@ public: // construction/destruction nes_gxrom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; }; @@ -144,11 +158,13 @@ public: // construction/destruction nes_uxrom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; }; @@ -160,11 +176,13 @@ public: // construction/destruction nes_uxrom_cc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; }; @@ -176,11 +194,13 @@ public: // construction/destruction nes_un1rom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; }; @@ -200,17 +220,17 @@ public: // device type definition -extern const device_type NES_NROM; -extern const device_type NES_NROM368; -extern const device_type NES_FCBASIC; -extern const device_type NES_AXROM; -extern const device_type NES_BXROM; -extern const device_type NES_CNROM; -extern const device_type NES_CPROM; -extern const device_type NES_GXROM; -extern const device_type NES_UXROM; -extern const device_type NES_UXROM_CC; -extern const device_type NES_UN1ROM; -extern const device_type NES_NOCHR; - -#endif +DECLARE_DEVICE_TYPE(NES_NROM, nes_nrom_device) +DECLARE_DEVICE_TYPE(NES_NROM368, nes_nrom368_device) +DECLARE_DEVICE_TYPE(NES_FCBASIC, nes_fcbasic_device) +DECLARE_DEVICE_TYPE(NES_AXROM, nes_axrom_device) +DECLARE_DEVICE_TYPE(NES_BXROM, nes_bxrom_device) +DECLARE_DEVICE_TYPE(NES_CNROM, nes_cnrom_device) +DECLARE_DEVICE_TYPE(NES_CPROM, nes_cprom_device) +DECLARE_DEVICE_TYPE(NES_GXROM, nes_gxrom_device) +DECLARE_DEVICE_TYPE(NES_UXROM, nes_uxrom_device) +DECLARE_DEVICE_TYPE(NES_UXROM_CC, nes_uxrom_cc_device) +DECLARE_DEVICE_TYPE(NES_UN1ROM, nes_un1rom_device) +DECLARE_DEVICE_TYPE(NES_NOCHR, nes_nochr_device) + +#endif // MAME_BUS_NES_NXROM_H diff --git a/src/devices/bus/nes/pirate.cpp b/src/devices/bus/nes/pirate.cpp index cded3deb09d..573b1d38ce7 100644 --- a/src/devices/bus/nes/pirate.cpp +++ b/src/devices/bus/nes/pirate.cpp @@ -18,7 +18,7 @@ #include "pirate.h" #include "cpu/m6502/m6502.h" -#include "video/ppu2c0x.h" // this has to be included so that IRQ functions can access PPU_BOTTOM_VISIBLE_SCANLINE +#include "video/ppu2c0x.h" // this has to be included so that IRQ functions can access ppu2c0x_device::BOTTOM_VISIBLE_SCANLINE #include "screen.h" @@ -35,96 +35,96 @@ // constructor //------------------------------------------------- -const device_type NES_AGCI_50282 = device_creator; -const device_type NES_DREAMTECH01 = device_creator; -const device_type NES_FUKUTAKE = device_creator; -const device_type NES_FUTUREMEDIA = device_creator; -const device_type NES_MAGSERIES = device_creator; -const device_type NES_DAOU306 = device_creator; -const device_type NES_CC21 = device_creator; -const device_type NES_XIAOZY = device_creator; -const device_type NES_EDU2K = device_creator; -const device_type NES_T230 = device_creator; -const device_type NES_MK2 = device_creator; -const device_type NES_WHERO = device_creator; -const device_type NES_43272 = device_creator; -const device_type NES_TF1201 = device_creator; -const device_type NES_CITYFIGHT = device_creator; +DEFINE_DEVICE_TYPE(NES_AGCI_50282, nes_agci_device, "nes_agci50282", "NES Cart AGCI 50282 PCB") +DEFINE_DEVICE_TYPE(NES_DREAMTECH01, nes_dreamtech_device, "nes_dreamtech", "NES Cart Dreamtech01 PCB") +DEFINE_DEVICE_TYPE(NES_FUKUTAKE, nes_fukutake_device, "nes_futuremedia", "NES Cart Fukutake Study Box PCB") +DEFINE_DEVICE_TYPE(NES_FUTUREMEDIA, nes_futuremedia_device, "nes_fukutake", "NES Cart FutureMedia PCB") +DEFINE_DEVICE_TYPE(NES_MAGSERIES, nes_magseries_device, "nes_magseries", "NES Cart Magical Series PCB") +DEFINE_DEVICE_TYPE(NES_DAOU306, nes_daou306_device, "nes_daou306", "NES Cart Daou 306 PCB") +DEFINE_DEVICE_TYPE(NES_CC21, nes_cc21_device, "nes_cc21", "NES Cart CC-21 PCB") +DEFINE_DEVICE_TYPE(NES_XIAOZY, nes_xiaozy_device, "nes_xiaozy", "NES Cart Xiao Zhuan Yuan PCB") +DEFINE_DEVICE_TYPE(NES_EDU2K, nes_edu2k_device, "nes_edu2k", "NES Cart Educational Computer 2000 PCB") +DEFINE_DEVICE_TYPE(NES_T230, nes_t230_device, "nes_t230", "NES Cart T-230 PCB") +DEFINE_DEVICE_TYPE(NES_MK2, nes_mk2_device, "nes_mk2", "NES Cart Mortal Kombat 2 PCB") +DEFINE_DEVICE_TYPE(NES_WHERO, nes_whero_device, "nes_whero", "NES Cart World Heroes PCB") +DEFINE_DEVICE_TYPE(NES_43272, nes_43272_device, "nes_43272", "NES Cart UNL-43272 PCB") +DEFINE_DEVICE_TYPE(NES_TF1201, nes_tf1201_device, "nes_tf1201", "NES Cart UNL-TF1201 PCB") +DEFINE_DEVICE_TYPE(NES_CITYFIGHT, nes_cityfight_device, "nes_cityfight", "NES Cart City Fighter PCB") nes_agci_device::nes_agci_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_AGCI_50282, "NES Cart AGCI 50282 PCB", tag, owner, clock, "nes_agci50282", __FILE__) + : nes_nrom_device(mconfig, NES_AGCI_50282, tag, owner, clock) { } nes_dreamtech_device::nes_dreamtech_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_DREAMTECH01, "NES Cart Dreamtech01 PCB", tag, owner, clock, "nes_dreamtech", __FILE__) + : nes_nrom_device(mconfig, NES_DREAMTECH01, tag, owner, clock) { } nes_fukutake_device::nes_fukutake_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_FUKUTAKE, "NES Cart Fukutake Study Box PCB", tag, owner, clock, "nes_fukutake", __FILE__), m_latch(0) - { + : nes_nrom_device(mconfig, NES_FUKUTAKE, tag, owner, clock), m_latch(0) +{ } nes_futuremedia_device::nes_futuremedia_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_FUTUREMEDIA, "NES Cart FutureMedia PCB", tag, owner, clock, "nes_futuremedia", __FILE__), m_irq_count(0), m_irq_count_latch(0), m_irq_clear(0), m_irq_enable(0) - { + : nes_nrom_device(mconfig, NES_FUTUREMEDIA, tag, owner, clock), m_irq_count(0), m_irq_count_latch(0), m_irq_clear(0), m_irq_enable(0) +{ } nes_magseries_device::nes_magseries_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_MAGSERIES, "NES Cart Magical Series PCB", tag, owner, clock, "nes_magseries", __FILE__) + : nes_nrom_device(mconfig, NES_MAGSERIES, tag, owner, clock) { } nes_daou306_device::nes_daou306_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_DAOU306, "NES Cart Daou 306 PCB", tag, owner, clock, "nes_daou306", __FILE__) + : nes_nrom_device(mconfig, NES_DAOU306, tag, owner, clock) { } nes_cc21_device::nes_cc21_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_CC21, "NES Cart CC-21 PCB", tag, owner, clock, "nes_cc21", __FILE__) + : nes_nrom_device(mconfig, NES_CC21, tag, owner, clock) { } nes_xiaozy_device::nes_xiaozy_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_XIAOZY, "NES Cart Xiao Zhuan Yuan PCB", tag, owner, clock, "nes_xiaozy", __FILE__) + : nes_nrom_device(mconfig, NES_XIAOZY, tag, owner, clock) { } nes_edu2k_device::nes_edu2k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_EDU2K, "NES Cart Educational Computer 2000 PCB", tag, owner, clock, "nes_edu2k", __FILE__), m_latch(0) - { + : nes_nrom_device(mconfig, NES_EDU2K, tag, owner, clock) +{ } nes_t230_device::nes_t230_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_T230, "NES Cart T-230 PCB", tag, owner, clock, "nes_t230", __FILE__), m_irq_count(0), m_irq_count_latch(0), m_irq_mode(0), m_irq_enable(0), m_irq_enable_latch(0) - { + : nes_nrom_device(mconfig, NES_T230, tag, owner, clock), m_irq_count(0), m_irq_count_latch(0), m_irq_mode(0), m_irq_enable(0), m_irq_enable_latch(0) +{ } nes_mk2_device::nes_mk2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_MK2, "NES Cart Mortal Kombat 2 PCB", tag, owner, clock, "nes_mk2", __FILE__), m_irq_count(0), m_irq_count_latch(0), m_irq_clear(0), m_irq_enable(0) - { + : nes_nrom_device(mconfig, NES_MK2, tag, owner, clock), m_irq_count(0), m_irq_count_latch(0), m_irq_clear(0), m_irq_enable(0) +{ } nes_whero_device::nes_whero_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_WHERO, "NES Cart World Heroes PCB", tag, owner, clock, "nes_whero", __FILE__), m_reg(0), m_irq_count(0), m_irq_count_latch(0), m_irq_enable(0), m_irq_enable_latch(0) - { + : nes_nrom_device(mconfig, NES_WHERO, tag, owner, clock), m_reg(0), m_irq_count(0), m_irq_count_latch(0), m_irq_enable(0), m_irq_enable_latch(0) +{ } nes_43272_device::nes_43272_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_43272, "NES Cart UNL-43272 PCB", tag, owner, clock, "nes_43272", __FILE__), m_latch(0) - { + : nes_nrom_device(mconfig, NES_43272, tag, owner, clock), m_latch(0) +{ } nes_tf1201_device::nes_tf1201_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_TF1201, "NES Cart UNL-TF1201 PCB", tag, owner, clock, "nes_tf1201", __FILE__), m_prg(0), m_swap(0), m_irq_count(0), m_irq_enable(0), m_irq_enable_latch(0) - { + : nes_nrom_device(mconfig, NES_TF1201, tag, owner, clock), m_prg(0), m_swap(0), m_irq_count(0), m_irq_enable(0), m_irq_enable_latch(0) +{ } nes_cityfight_device::nes_cityfight_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_CITYFIGHT, "NES Cart City Fighter PCB", tag, owner, clock, "nes_cityfight", __FILE__), m_prg_reg(0), m_prg_mode(0), m_irq_count(0), m_irq_enable(0), irq_timer(nullptr) - { + : nes_nrom_device(mconfig, NES_CITYFIGHT, tag, owner, clock), m_prg_reg(0), m_prg_mode(0), m_irq_count(0), m_irq_enable(0), irq_timer(nullptr) +{ } @@ -530,7 +530,7 @@ READ8_MEMBER(nes_fukutake_device::read_m) void nes_futuremedia_device::hblank_irq(int scanline, int vblank, int blanked) { - // if (scanline < PPU_BOTTOM_VISIBLE_SCANLINE) + // if (scanline < ppu2c0x_device::BOTTOM_VISIBLE_SCANLINE) { if (m_irq_enable && m_irq_count) { @@ -853,7 +853,7 @@ WRITE8_MEMBER(nes_t230_device::write_h) // Same IRQ as MMC3 void nes_mk2_device::hblank_irq( int scanline, int vblank, int blanked ) { - if (scanline < PPU_BOTTOM_VISIBLE_SCANLINE) + if (scanline < ppu2c0x_device::BOTTOM_VISIBLE_SCANLINE) { int prior_count = m_irq_count; if ((m_irq_count == 0) || m_irq_clear) diff --git a/src/devices/bus/nes/pirate.h b/src/devices/bus/nes/pirate.h index b17ce1ada9d..91424d32e25 100644 --- a/src/devices/bus/nes/pirate.h +++ b/src/devices/bus/nes/pirate.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __NES_PIR_H -#define __NES_PIR_H +#ifndef MAME_BUS_NES_PIRATE_H +#define MAME_BUS_NES_PIRATE_H + +#pragma once #include "nxrom.h" @@ -14,11 +16,13 @@ public: // construction/destruction nes_agci_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; }; @@ -30,11 +34,13 @@ public: // construction/destruction nes_dreamtech_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_l) override; virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; }; @@ -46,8 +52,6 @@ public: // construction/destruction nes_fukutake_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_READ8_MEMBER(read_l) override; virtual DECLARE_READ8_MEMBER(read_m) override; virtual DECLARE_WRITE8_MEMBER(write_l) override; @@ -55,6 +59,10 @@ public: virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: uint8_t m_latch; uint8_t m_ram[0xb00]; @@ -69,13 +77,15 @@ public: // construction/destruction nes_futuremedia_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void hblank_irq(int scanline, int vblank, int blanked) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: uint16_t m_irq_count, m_irq_count_latch; uint8_t m_irq_clear; @@ -91,11 +101,13 @@ public: // construction/destruction nes_magseries_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; }; @@ -107,12 +119,14 @@ public: // construction/destruction nes_daou306_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: uint8_t m_reg[16]; }; @@ -126,11 +140,13 @@ public: // construction/destruction nes_cc21_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; }; @@ -142,11 +158,13 @@ public: // construction/destruction nes_xiaozy_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_l) override; virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; }; @@ -158,14 +176,16 @@ public: // construction/destruction nes_edu2k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_READ8_MEMBER(read_m) override; virtual DECLARE_WRITE8_MEMBER(write_m) override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: uint8_t m_latch; }; @@ -179,13 +199,15 @@ public: // construction/destruction nes_t230_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void hblank_irq(int scanline, int vblank, int blanked) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: uint16_t m_irq_count, m_irq_count_latch; uint8_t m_irq_mode; @@ -203,13 +225,15 @@ public: // construction/destruction nes_mk2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_m) override; virtual void hblank_irq(int scanline, int vblank, int blanked) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: uint16_t m_irq_count, m_irq_count_latch; uint8_t m_irq_clear; @@ -225,13 +249,15 @@ public: // construction/destruction nes_whero_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void hblank_irq(int scanline, int vblank, int blanked) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: uint8_t m_reg; uint8_t m_mmc_vrom_bank[8]; @@ -250,13 +276,15 @@ public: // construction/destruction nes_43272_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_READ8_MEMBER(read_h) override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: uint16_t m_latch; }; @@ -270,13 +298,15 @@ public: // construction/destruction nes_tf1201_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void hblank_irq(int scanline, int vblank, int blanked) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: void update_prg(); uint8_t m_prg, m_swap; @@ -295,20 +325,24 @@ public: // construction/destruction nes_cityfight_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + private: + static constexpr device_timer_id TIMER_IRQ = 0; + void update_prg(); + uint8_t m_prg_reg, m_prg_mode; uint16_t m_irq_count; int m_irq_enable; - static const device_timer_id TIMER_IRQ = 0; emu_timer *irq_timer; uint8_t m_mmc_vrom_bank[8]; @@ -325,13 +359,15 @@ public: // construction/destruction nes_fujiya_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(read_m) override; virtual DECLARE_WRITE8_MEMBER(write_m) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: uint8_t m_latch; }; @@ -339,23 +375,21 @@ private: // device type definition -extern const device_type NES_AGCI_50282; -extern const device_type NES_DREAMTECH01; -extern const device_type NES_FUKUTAKE; -extern const device_type NES_FUTUREMEDIA; -extern const device_type NES_MAGSERIES; -extern const device_type NES_DAOU306; -extern const device_type NES_SUBOR0; -extern const device_type NES_SUBOR1; -extern const device_type NES_CC21; -extern const device_type NES_XIAOZY; -extern const device_type NES_EDU2K; -extern const device_type NES_T230; -extern const device_type NES_MK2; -extern const device_type NES_WHERO; -extern const device_type NES_43272; -extern const device_type NES_TF1201; -extern const device_type NES_CITYFIGHT; -extern const device_type NES_FUJIYA; - -#endif +DECLARE_DEVICE_TYPE(NES_AGCI_50282, nes_agci_device) +DECLARE_DEVICE_TYPE(NES_DREAMTECH01, nes_dreamtech_device) +DECLARE_DEVICE_TYPE(NES_FUKUTAKE, nes_fukutake_device) +DECLARE_DEVICE_TYPE(NES_FUTUREMEDIA, nes_futuremedia_device) +DECLARE_DEVICE_TYPE(NES_MAGSERIES, nes_magseries_device) +DECLARE_DEVICE_TYPE(NES_DAOU306, nes_daou306_device) +DECLARE_DEVICE_TYPE(NES_CC21, nes_cc21_device) +DECLARE_DEVICE_TYPE(NES_XIAOZY, nes_xiaozy_device) +DECLARE_DEVICE_TYPE(NES_EDU2K, nes_edu2k_device) +DECLARE_DEVICE_TYPE(NES_T230, nes_t230_device) +DECLARE_DEVICE_TYPE(NES_MK2, nes_mk2_device) +DECLARE_DEVICE_TYPE(NES_WHERO, nes_whero_device) +DECLARE_DEVICE_TYPE(NES_43272, nes_43272_device) +DECLARE_DEVICE_TYPE(NES_TF1201, nes_tf1201_device) +DECLARE_DEVICE_TYPE(NES_CITYFIGHT, nes_cityfight_device) +//DECLARE_DEVICE_TYPE(NES_FUJIYA, nes_fujiya_device) + +#endif // MAME_BUS_NES_PIRATE_H diff --git a/src/devices/bus/nes/pt554.cpp b/src/devices/bus/nes/pt554.cpp index a12d3e63145..86a510866f4 100644 --- a/src/devices/bus/nes/pt554.cpp +++ b/src/devices/bus/nes/pt554.cpp @@ -32,12 +32,12 @@ // constructor //------------------------------------------------- -const device_type NES_BANDAI_PT554 = device_creator; +DEFINE_DEVICE_TYPE(NES_BANDAI_PT554, nes_bandai_pt554_device, "nes_bandai_pt554", "NES Cart Bandai BT-554 PCB") nes_bandai_pt554_device::nes_bandai_pt554_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_cnrom_device(mconfig, NES_BANDAI_PT554, "NES Cart Bandai PT-554 PCB", tag, owner, clock, "nes_bandai_pt554", __FILE__), - m_samples(*this, "samples") + : nes_cnrom_device(mconfig, NES_BANDAI_PT554, tag, owner, clock) + , m_samples(*this, "samples") { } diff --git a/src/devices/bus/nes/pt554.h b/src/devices/bus/nes/pt554.h index 2dc1fe6f6f0..95947c26ef7 100644 --- a/src/devices/bus/nes/pt554.h +++ b/src/devices/bus/nes/pt554.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __NES_PT554_H -#define __NES_PT554_H +#ifndef MAME_BUS_NES_PT554_H +#define MAME_BUS_NES_PT554_H + +#pragma once #include "nxrom.h" @@ -23,9 +25,7 @@ private: }; - - // device type definition -extern const device_type NES_BANDAI_PT554; +DECLARE_DEVICE_TYPE(NES_BANDAI_PT554, nes_bandai_pt554_device) -#endif +#endif // MAME_BUS_NES_PT554_H diff --git a/src/devices/bus/nes/racermate.cpp b/src/devices/bus/nes/racermate.cpp index 680433e4ed4..5b578da0e09 100644 --- a/src/devices/bus/nes/racermate.cpp +++ b/src/devices/bus/nes/racermate.cpp @@ -32,13 +32,13 @@ // constructor //------------------------------------------------- -const device_type NES_RACERMATE = device_creator; +DEFINE_DEVICE_TYPE(NES_RACERMATE, nes_racermate_device, "nes_racermate", "NES Cart Racermate PCB") nes_racermate_device::nes_racermate_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_RACERMATE, "NES Cart Racermate PCB", tag, owner, clock, "nes_racermate", __FILE__), - m_latch(0) - { + : nes_nrom_device(mconfig, NES_RACERMATE, tag, owner, clock) + , m_latch(0) +{ } diff --git a/src/devices/bus/nes/racermate.h b/src/devices/bus/nes/racermate.h index da7a5f5174b..5366ec1a6ea 100644 --- a/src/devices/bus/nes/racermate.h +++ b/src/devices/bus/nes/racermate.h @@ -1,7 +1,7 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __NES_RACERMATE_H -#define __NES_RACERMATE_H +#ifndef MAME_BUS_NES_RACERMATE_H +#define MAME_BUS_NES_RACERMATE_H #include "nxrom.h" @@ -26,10 +26,7 @@ private: }; - - - // device type definition -extern const device_type NES_RACERMATE; +DECLARE_DEVICE_TYPE(NES_RACERMATE, nes_racermate_device) -#endif +#endif // MAME_BUS_NES_RACERMATE_H diff --git a/src/devices/bus/nes/rcm.cpp b/src/devices/bus/nes/rcm.cpp index aedda67cc46..f1800712765 100644 --- a/src/devices/bus/nes/rcm.cpp +++ b/src/devices/bus/nes/rcm.cpp @@ -39,36 +39,36 @@ // constructor //------------------------------------------------- -const device_type NES_GS2015 = device_creator; -const device_type NES_GS2004 = device_creator; -const device_type NES_GS2013 = device_creator; -const device_type NES_TF9IN1 = device_creator; -const device_type NES_3DBLOCK = device_creator; +DEFINE_DEVICE_TYPE(NES_GS2015, nes_gs2015_device, "nes_g2015", "NES Cart RCM GS-2015 PCB") +DEFINE_DEVICE_TYPE(NES_GS2004, nes_gs2004_device, "nes_g2004", "NES Cart RCM GS-2004 PCB") +DEFINE_DEVICE_TYPE(NES_GS2013, nes_gs2013_device, "nes_g2013", "NES Cart RCM GS-2013 PCB") +DEFINE_DEVICE_TYPE(NES_TF9IN1, nes_tf9_device, "nes_tetrisfam", "NES Cart RCM Tetris Family 9 in 1 PCB") +DEFINE_DEVICE_TYPE(NES_3DBLOCK, nes_3dblock_device, "nes_3dblock", "NES Cart RCM 3D Block PCB") nes_gs2015_device::nes_gs2015_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_GS2015, "NES Cart RCM GS-2015 PCB", tag, owner, clock, "nes_gs2015", __FILE__) + : nes_nrom_device(mconfig, NES_GS2015, tag, owner, clock) { } nes_gs2004_device::nes_gs2004_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_GS2004, "NES Cart RCM GS-2004 PCB", tag, owner, clock, "nes_gs2004", __FILE__) + : nes_nrom_device(mconfig, NES_GS2004, tag, owner, clock) { } nes_gs2013_device::nes_gs2013_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_GS2013, "NES Cart RCM GS-2013 PCB", tag, owner, clock, "nes_gs2013", __FILE__) + : nes_nrom_device(mconfig, NES_GS2013, tag, owner, clock) { } nes_tf9_device::nes_tf9_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_TF9IN1, "NES Cart RCM Tetris Family 9 in 1 PCB", tag, owner, clock, "nes_tetrisfam", __FILE__) + : nes_nrom_device(mconfig, NES_TF9IN1, tag, owner, clock) { } nes_3dblock_device::nes_3dblock_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_3DBLOCK, "NES Cart RCM 3D Block PCB", tag, owner, clock, "nes_3dblock", __FILE__), m_irq_count(0) - { + : nes_nrom_device(mconfig, NES_3DBLOCK, tag, owner, clock), m_irq_count(0) +{ } diff --git a/src/devices/bus/nes/rcm.h b/src/devices/bus/nes/rcm.h index d7858cbdb53..f37a6074432 100644 --- a/src/devices/bus/nes/rcm.h +++ b/src/devices/bus/nes/rcm.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __NES_RCM_H -#define __NES_RCM_H +#ifndef MAME_BUS_NES_RCM_H +#define MAME_BUS_NES_RCM_H + +#pragma once #include "nxrom.h" @@ -14,13 +16,15 @@ public: // construction/destruction nes_gs2015_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_READ8_MEMBER(read_l) override { return read_m(space, offset, mem_mask); } virtual DECLARE_READ8_MEMBER(read_m) override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; }; @@ -32,11 +36,13 @@ public: // construction/destruction nes_gs2004_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; }; @@ -48,11 +54,13 @@ public: // construction/destruction nes_gs2013_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; }; @@ -64,11 +72,13 @@ public: // construction/destruction nes_tf9_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; }; @@ -80,26 +90,26 @@ public: // construction/destruction nes_3dblock_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_l) override; virtual void hblank_irq(int scanline, int vblank, int blanked) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: uint8_t m_reg[4]; uint8_t m_irq_count; }; - - // device type definition -extern const device_type NES_GS2015; -extern const device_type NES_GS2004; -extern const device_type NES_GS2013; -extern const device_type NES_TF9IN1; -extern const device_type NES_3DBLOCK; +DECLARE_DEVICE_TYPE(NES_GS2015, nes_gs2015_device) +DECLARE_DEVICE_TYPE(NES_GS2004, nes_gs2004_device) +DECLARE_DEVICE_TYPE(NES_GS2013, nes_gs2013_device) +DECLARE_DEVICE_TYPE(NES_TF9IN1, nes_tf9_device) +DECLARE_DEVICE_TYPE(NES_3DBLOCK, nes_3dblock_device) -#endif +#endif // MAME_BUS_NES_RCM_H diff --git a/src/devices/bus/nes/rexsoft.cpp b/src/devices/bus/nes/rexsoft.cpp index 9aaaed7721b..300bd07f96e 100644 --- a/src/devices/bus/nes/rexsoft.cpp +++ b/src/devices/bus/nes/rexsoft.cpp @@ -35,19 +35,19 @@ // constructor //------------------------------------------------- -const device_type NES_REX_DBZ5 = device_creator; -const device_type NES_REX_SL1632 = device_creator; +DEFINE_DEVICE_TYPE(NES_REX_DBZ5, nes_rex_dbz5_device, "nes_rex_dbz5", "NES Cart Rex Soft DragonBall Z V PCB") +DEFINE_DEVICE_TYPE(NES_REX_SL1632, nes_rex_sl1632_device, "nes_rex_sl1632", "NES Cart Rex Soft SL-1632 PCB") nes_rex_dbz5_device::nes_rex_dbz5_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_txrom_device(mconfig, NES_REX_DBZ5, "NES Cart Rex Soft DragonBall Z V PCB", tag, owner, clock, "nes_rex_dbz5", __FILE__), - m_extra(0) - { + : nes_txrom_device(mconfig, NES_REX_DBZ5, tag, owner, clock) + , m_extra(0) +{ } nes_rex_sl1632_device::nes_rex_sl1632_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_txrom_device(mconfig, NES_REX_SL1632, "NES Cart Rex Soft SL-1632 PCB", tag, owner, clock, "nes_rex_sl1632", __FILE__), m_mode(0), m_mirror(0) - { + : nes_txrom_device(mconfig, NES_REX_SL1632, tag, owner, clock), m_mode(0), m_mirror(0) +{ } diff --git a/src/devices/bus/nes/rexsoft.h b/src/devices/bus/nes/rexsoft.h index 996b22baf13..61fe876633a 100644 --- a/src/devices/bus/nes/rexsoft.h +++ b/src/devices/bus/nes/rexsoft.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __NES_REXSOFT_H -#define __NES_REXSOFT_H +#ifndef MAME_BUS_NES_REXSOFT_H +#define MAME_BUS_NES_REXSOFT_H + +#pragma once #include "mmc3.h" @@ -14,8 +16,6 @@ public: // construction/destruction nes_rex_dbz5_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_READ8_MEMBER(read_l) override; virtual DECLARE_READ8_MEMBER(read_m) override { return read_l(space, offset, mem_mask); } virtual DECLARE_WRITE8_MEMBER(write_l) override; @@ -23,6 +23,10 @@ public: virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: uint8_t m_extra; }; @@ -36,13 +40,14 @@ public: // construction/destruction nes_rex_sl1632_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; protected: + // device-level overrides + virtual void device_start() override; + virtual void set_prg(int prg_base, int prg_mask) override; virtual void set_chr(uint8_t chr, int chr_base, int chr_mask) override; @@ -52,10 +57,8 @@ protected: - - // device type definition -extern const device_type NES_REX_DBZ5; -extern const device_type NES_REX_SL1632; +DECLARE_DEVICE_TYPE(NES_REX_DBZ5, nes_rex_dbz5_device) +DECLARE_DEVICE_TYPE(NES_REX_SL1632, nes_rex_sl1632_device) -#endif +#endif // MAME_BUS_NES_REXSOFT_H diff --git a/src/devices/bus/nes/sachen.cpp b/src/devices/bus/nes/sachen.cpp index 317f2e7e78c..369c4cde885 100644 --- a/src/devices/bus/nes/sachen.cpp +++ b/src/devices/bus/nes/sachen.cpp @@ -44,99 +44,99 @@ // constructor //------------------------------------------------- -const device_type NES_SACHEN_SA009 = device_creator; -const device_type NES_SACHEN_SA0036 = device_creator; -const device_type NES_SACHEN_SA0037 = device_creator; -const device_type NES_SACHEN_SA72007 = device_creator; -const device_type NES_SACHEN_SA72008 = device_creator; -const device_type NES_SACHEN_TCA01 = device_creator; -const device_type NES_SACHEN_TCU01 = device_creator; -const device_type NES_SACHEN_TCU02 = device_creator; -const device_type NES_SACHEN_74X374 = device_creator; -const device_type NES_SACHEN_74X374_ALT = device_creator; -const device_type NES_SACHEN_8259A = device_creator; -const device_type NES_SACHEN_8259B = device_creator; -const device_type NES_SACHEN_8259C = device_creator; -const device_type NES_SACHEN_8259D = device_creator; +DEFINE_DEVICE_TYPE(NES_SACHEN_SA009, nes_sachen_sa009_device, "nes_sa009", "NES Cart Sachen SA009 PCB") +DEFINE_DEVICE_TYPE(NES_SACHEN_SA0036, nes_sachen_sa0036_device, "nes_sa0036", "NES Cart Sachen SA0036 PCB") +DEFINE_DEVICE_TYPE(NES_SACHEN_SA0037, nes_sachen_sa0037_device, "nes_sa0037", "NES Cart Sachen SA0037 PCB") +DEFINE_DEVICE_TYPE(NES_SACHEN_SA72007, nes_sachen_sa72007_device, "nes_sa72007", "NES Cart Sachen SA72007 PCB") +DEFINE_DEVICE_TYPE(NES_SACHEN_SA72008, nes_sachen_sa72008_device, "nes_sa72008", "NES Cart Sachen SA72008 PCB") +DEFINE_DEVICE_TYPE(NES_SACHEN_TCA01, nes_sachen_tca01_device, "nes_tca01", "NES Cart Sachen TCA-01 PCB") +DEFINE_DEVICE_TYPE(NES_SACHEN_TCU01, nes_sachen_tcu01_device, "nes_tcu01", "NES Cart Sachen TCU-01 PCB") +DEFINE_DEVICE_TYPE(NES_SACHEN_TCU02, nes_sachen_tcu02_device, "nes_tcu02", "NES Cart Sachen TCU-02 PCB") +DEFINE_DEVICE_TYPE(NES_SACHEN_74X374, nes_sachen_74x374_device, "nes_s74x374", "NES Cart Sachen 74*374 PCB") +DEFINE_DEVICE_TYPE(NES_SACHEN_74X374_ALT, nes_sachen_74x374_alt_device, "nes_s74x374a", "NES Cart Sachen 74*374 Alt PCB") +DEFINE_DEVICE_TYPE(NES_SACHEN_8259A, nes_sachen_8259a_device, "nes_s8259a", "NES Cart Sachen 8259A PCB") +DEFINE_DEVICE_TYPE(NES_SACHEN_8259B, nes_sachen_8259b_device, "nes_s8259b", "NES Cart Sachen 8259B PCB") +DEFINE_DEVICE_TYPE(NES_SACHEN_8259C, nes_sachen_8259c_device, "nes_s8259c", "NES Cart Sachen 8259C PCB") +DEFINE_DEVICE_TYPE(NES_SACHEN_8259D, nes_sachen_8259d_device, "nes_s8259d", "NES Cart Sachen 8259D PCB") nes_sachen_sa009_device::nes_sachen_sa009_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_SACHEN_SA009, "NES Cart Sachen SA009 PCB", tag, owner, clock, "nes_sa009", __FILE__) + : nes_nrom_device(mconfig, NES_SACHEN_SA009, tag, owner, clock) { } nes_sachen_sa0036_device::nes_sachen_sa0036_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_SACHEN_SA0036, "NES Cart Sachen sa0036 PCB", tag, owner, clock, "nes_sa0036", __FILE__) + : nes_nrom_device(mconfig, NES_SACHEN_SA0036, tag, owner, clock) { } nes_sachen_sa0037_device::nes_sachen_sa0037_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_SACHEN_SA0037, "NES Cart Sachen sa0037 PCB", tag, owner, clock, "nes_sa0037", __FILE__) + : nes_nrom_device(mconfig, NES_SACHEN_SA0037, tag, owner, clock) { } nes_sachen_sa72007_device::nes_sachen_sa72007_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_SACHEN_SA72007, "NES Cart Sachen SA72007 PCB", tag, owner, clock, "nes_sa72007", __FILE__) + : nes_nrom_device(mconfig, NES_SACHEN_SA72007, tag, owner, clock) { } nes_sachen_sa72008_device::nes_sachen_sa72008_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_SACHEN_SA72008, "NES Cart Sachen SA72008 PCB", tag, owner, clock, "nes_sa72008", __FILE__) + : nes_nrom_device(mconfig, NES_SACHEN_SA72008, tag, owner, clock) { } nes_sachen_tca01_device::nes_sachen_tca01_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_SACHEN_TCA01, "NES Cart Sachen TCA-01 PCB", tag, owner, clock, "nes_tca01", __FILE__) + : nes_nrom_device(mconfig, NES_SACHEN_TCA01, tag, owner, clock) { } nes_sachen_tcu01_device::nes_sachen_tcu01_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_SACHEN_TCU01, "NES Cart Sachen TCU-01 PCB", tag, owner, clock, "nes_tcu01", __FILE__) + : nes_nrom_device(mconfig, NES_SACHEN_TCU01, tag, owner, clock) { } nes_sachen_tcu02_device::nes_sachen_tcu02_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_SACHEN_TCU02, "NES Cart Sachen TCU-02 PCB", tag, owner, clock, "nes_tcu02", __FILE__), m_latch(0) - { + : nes_nrom_device(mconfig, NES_SACHEN_TCU02, tag, owner, clock), m_latch(0) +{ } -nes_sachen_74x374_device::nes_sachen_74x374_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : nes_nrom_device(mconfig, type, name, tag, owner, clock, shortname, source), m_latch(0), m_mmc_vrom_bank(0) - { +nes_sachen_74x374_device::nes_sachen_74x374_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : nes_nrom_device(mconfig, type, tag, owner, clock), m_latch(0), m_mmc_vrom_bank(0) +{ } nes_sachen_74x374_device::nes_sachen_74x374_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_SACHEN_74X374, "NES Cart Sachen 74*374 PCB", tag, owner, clock, "nes_s74x34", __FILE__), m_latch(0), m_mmc_vrom_bank(0) - { + : nes_sachen_74x374_device(mconfig, NES_SACHEN_74X374, tag, owner, clock) +{ } nes_sachen_74x374_alt_device::nes_sachen_74x374_alt_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_sachen_74x374_device(mconfig, NES_SACHEN_74X374_ALT, "NES Cart Sachen 74*374 Alt PCB", tag, owner, clock, "nes_s74x34a", __FILE__) + : nes_sachen_74x374_device(mconfig, NES_SACHEN_74X374_ALT, tag, owner, clock) { } -nes_sachen_8259a_device::nes_sachen_8259a_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : nes_sachen_74x374_device(mconfig, type, name, tag, owner, clock, shortname, source) +nes_sachen_8259a_device::nes_sachen_8259a_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : nes_sachen_74x374_device(mconfig, type, tag, owner, clock) { } nes_sachen_8259a_device::nes_sachen_8259a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_sachen_74x374_device(mconfig, NES_SACHEN_8259A, "NES Cart Sachen 8259A PCB", tag, owner, clock, "nes_s8259a", __FILE__) + : nes_sachen_8259a_device(mconfig, NES_SACHEN_8259A, tag, owner, clock) { } nes_sachen_8259b_device::nes_sachen_8259b_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_sachen_8259a_device(mconfig, NES_SACHEN_8259B, "NES Cart Sachen 8259B PCB", tag, owner, clock, "nes_s8259b", __FILE__) + : nes_sachen_8259a_device(mconfig, NES_SACHEN_8259B, tag, owner, clock) { } nes_sachen_8259c_device::nes_sachen_8259c_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_sachen_8259a_device(mconfig, NES_SACHEN_8259C, "NES Cart Sachen 8259C PCB", tag, owner, clock, "nes_s8259c", __FILE__) + : nes_sachen_8259a_device(mconfig, NES_SACHEN_8259C, tag, owner, clock) { } nes_sachen_8259d_device::nes_sachen_8259d_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_sachen_8259a_device(mconfig, NES_SACHEN_8259D, "NES Cart Sachen 8259D PCB", tag, owner, clock, "nes_s8259d", __FILE__) + : nes_sachen_8259a_device(mconfig, NES_SACHEN_8259D, tag, owner, clock) { } diff --git a/src/devices/bus/nes/sachen.h b/src/devices/bus/nes/sachen.h index 2c309a55a06..cfec9363bdc 100644 --- a/src/devices/bus/nes/sachen.h +++ b/src/devices/bus/nes/sachen.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __NES_SACHEN_H -#define __NES_SACHEN_H +#ifndef MAME_BUS_NES_SACHEN_H +#define MAME_BUS_NES_SACHEN_H + +#pragma once #include "nxrom.h" @@ -14,11 +16,13 @@ public: // construction/destruction nes_sachen_sa009_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_l) override; virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; }; @@ -30,11 +34,13 @@ public: // construction/destruction nes_sachen_sa0036_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; }; @@ -46,11 +52,13 @@ public: // construction/destruction nes_sachen_sa0037_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; }; @@ -62,11 +70,13 @@ public: // construction/destruction nes_sachen_sa72007_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_l) override; virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; }; @@ -78,11 +88,13 @@ public: // construction/destruction nes_sachen_sa72008_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_l) override; virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; }; @@ -94,11 +106,13 @@ public: // construction/destruction nes_sachen_tca01_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_READ8_MEMBER(read_l) override; virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; }; @@ -110,13 +124,15 @@ public: // construction/destruction nes_sachen_tcu01_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_l) override; virtual DECLARE_WRITE8_MEMBER(write_m) override { write_l(space, (offset + 0x100) & 0xfff, data, mem_mask); } virtual DECLARE_WRITE8_MEMBER(write_h) override { write_l(space, (offset + 0x100) & 0xfff, data, mem_mask); } virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; }; @@ -128,13 +144,15 @@ public: // construction/destruction nes_sachen_tcu02_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_READ8_MEMBER(read_l) override; virtual DECLARE_WRITE8_MEMBER(write_l) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: uint8_t m_latch; }; @@ -146,17 +164,19 @@ class nes_sachen_74x374_device : public nes_nrom_device { public: // construction/destruction - nes_sachen_74x374_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); nes_sachen_74x374_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_READ8_MEMBER(read_l) override; virtual DECLARE_WRITE8_MEMBER(write_l) override; virtual void pcb_reset() override; protected: + nes_sachen_74x374_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual void device_start() override; + void set_mirror(uint8_t nt); uint8_t m_latch, m_mmc_vrom_bank; }; @@ -182,17 +202,19 @@ class nes_sachen_8259a_device : public nes_sachen_74x374_device { public: // construction/destruction - nes_sachen_8259a_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); nes_sachen_8259a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_l) override; virtual DECLARE_WRITE8_MEMBER(write_m) override { write_l(space, (offset + 0x100) & 0xfff, data, mem_mask); } virtual void pcb_reset() override; protected: + nes_sachen_8259a_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual void device_start() override; + virtual void chr_update(); uint8_t m_reg[8]; }; @@ -239,23 +261,20 @@ protected: }; - - - // device type definition -extern const device_type NES_SACHEN_SA009; -extern const device_type NES_SACHEN_SA0036; -extern const device_type NES_SACHEN_SA0037; -extern const device_type NES_SACHEN_SA72007; -extern const device_type NES_SACHEN_SA72008; -extern const device_type NES_SACHEN_TCA01; -extern const device_type NES_SACHEN_TCU01; -extern const device_type NES_SACHEN_TCU02; -extern const device_type NES_SACHEN_74X374; -extern const device_type NES_SACHEN_74X374_ALT; -extern const device_type NES_SACHEN_8259A; -extern const device_type NES_SACHEN_8259B; -extern const device_type NES_SACHEN_8259C; -extern const device_type NES_SACHEN_8259D; - -#endif +DECLARE_DEVICE_TYPE(NES_SACHEN_SA009, nes_sachen_sa009_device) +DECLARE_DEVICE_TYPE(NES_SACHEN_SA0036, nes_sachen_sa0036_device) +DECLARE_DEVICE_TYPE(NES_SACHEN_SA0037, nes_sachen_sa0037_device) +DECLARE_DEVICE_TYPE(NES_SACHEN_SA72007, nes_sachen_sa72007_device) +DECLARE_DEVICE_TYPE(NES_SACHEN_SA72008, nes_sachen_sa72008_device) +DECLARE_DEVICE_TYPE(NES_SACHEN_TCA01, nes_sachen_tca01_device) +DECLARE_DEVICE_TYPE(NES_SACHEN_TCU01, nes_sachen_tcu01_device) +DECLARE_DEVICE_TYPE(NES_SACHEN_TCU02, nes_sachen_tcu02_device) +DECLARE_DEVICE_TYPE(NES_SACHEN_74X374, nes_sachen_74x374_device) +DECLARE_DEVICE_TYPE(NES_SACHEN_74X374_ALT, nes_sachen_74x374_alt_device) +DECLARE_DEVICE_TYPE(NES_SACHEN_8259A, nes_sachen_8259a_device) +DECLARE_DEVICE_TYPE(NES_SACHEN_8259B, nes_sachen_8259b_device) +DECLARE_DEVICE_TYPE(NES_SACHEN_8259C, nes_sachen_8259c_device) +DECLARE_DEVICE_TYPE(NES_SACHEN_8259D, nes_sachen_8259d_device) + +#endif // MAME_BUS_NES_SACHEN_H diff --git a/src/devices/bus/nes/somari.cpp b/src/devices/bus/nes/somari.cpp index b1f172567fe..b738ad671e8 100644 --- a/src/devices/bus/nes/somari.cpp +++ b/src/devices/bus/nes/somari.cpp @@ -36,17 +36,17 @@ // constructor //------------------------------------------------- -const device_type NES_SOMARI = device_creator; +DEFINE_DEVICE_TYPE(NES_SOMARI, nes_somari_device, "nes_somari", "NES Cart Team Somari PCB") nes_somari_device::nes_somari_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_txrom_device(mconfig, NES_SOMARI, "NES Cart Team Somari PCB", tag, owner, clock, "nes_somari", __FILE__), - m_board_mode(0), - m_mmc3_mirror_reg(0), - m_count(0), - m_mmc1_latch(0), - m_vrc_mirror_reg(0) - { + : nes_txrom_device(mconfig, NES_SOMARI, tag, owner, clock) + , m_board_mode(0) + , m_mmc3_mirror_reg(0) + , m_count(0) + , m_mmc1_latch(0) + , m_vrc_mirror_reg(0) +{ } diff --git a/src/devices/bus/nes/somari.h b/src/devices/bus/nes/somari.h index 6ccb8b73867..7b5d2920923 100644 --- a/src/devices/bus/nes/somari.h +++ b/src/devices/bus/nes/somari.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __NES_SOMARI_H -#define __NES_SOMARI_H +#ifndef MAME_BUS_NES_SOMARI_H +#define MAME_BUS_NES_SOMARI_H + +#pragma once #include "mmc3.h" @@ -14,8 +16,6 @@ public: // construction/destruction nes_somari_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_l) override { write_m(space, offset + 0x100, data, mem_mask); } virtual DECLARE_WRITE8_MEMBER(write_m) override; virtual DECLARE_WRITE8_MEMBER(mmc1_w); @@ -24,6 +24,11 @@ public: virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; + private: void update_prg(); void update_chr(); @@ -47,8 +52,7 @@ private: }; - // device type definition -extern const device_type NES_SOMARI; +DECLARE_DEVICE_TYPE(NES_SOMARI, nes_somari_device) -#endif +#endif // MAME_BUS_NES_SOMARI_H diff --git a/src/devices/bus/nes/subor.cpp b/src/devices/bus/nes/subor.cpp index 7d32104456a..c15e8761112 100644 --- a/src/devices/bus/nes/subor.cpp +++ b/src/devices/bus/nes/subor.cpp @@ -28,9 +28,9 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type NES_SUBOR0 = device_creator; -const device_type NES_SUBOR1 = device_creator; -const device_type NES_SUBOR2 = device_creator; +DEFINE_DEVICE_TYPE(NES_SUBOR0, nes_subor0_device, "nes_subor0", "NES Cart Subor Type 0 PCB") +DEFINE_DEVICE_TYPE(NES_SUBOR1, nes_subor1_device, "nes_subor1", "NES Cart Subor Type 1 PCB") +DEFINE_DEVICE_TYPE(NES_SUBOR2, nes_subor2_device, "nes_subor2", "NES Cart Subor Type 2 PCB") //************************************************************************** // LIVE DEVICE @@ -41,7 +41,7 @@ const device_type NES_SUBOR2 = device_creator; //------------------------------------------------- nes_subor0_device::nes_subor0_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_SUBOR0, "NES Cart Subor Type 0 PCB", tag, owner, clock, "nes_subor0", __FILE__) + : nes_nrom_device(mconfig, NES_SUBOR0, tag, owner, clock) { } @@ -50,7 +50,7 @@ nes_subor0_device::nes_subor0_device(const machine_config &mconfig, const char * //------------------------------------------------- nes_subor1_device::nes_subor1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_SUBOR1, "NES Cart Subor Type 1 PCB", tag, owner, clock, "nes_subor1", __FILE__) + : nes_nrom_device(mconfig, NES_SUBOR1, tag, owner, clock) { } @@ -59,11 +59,11 @@ nes_subor1_device::nes_subor1_device(const machine_config &mconfig, const char * //------------------------------------------------- nes_subor2_device::nes_subor2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_SUBOR2, "NES Cart Subor Type 2 PCB", tag, owner, clock, "nes_subor2", __FILE__), - m_switch_reg(0), - m_bank_reg(0), - m_chr_banking(0), - m_page(0) + : nes_nrom_device(mconfig, NES_SUBOR2, tag, owner, clock) + , m_switch_reg(0) + , m_bank_reg(0) + , m_chr_banking(0) + , m_page(0) { } diff --git a/src/devices/bus/nes/subor.h b/src/devices/bus/nes/subor.h index 77839add137..93e542cf481 100644 --- a/src/devices/bus/nes/subor.h +++ b/src/devices/bus/nes/subor.h @@ -3,6 +3,8 @@ #ifndef MAME_BUS_NES_SUBOR_H #define MAME_BUS_NES_SUBOR_H +#pragma once + #include "nxrom.h" //************************************************************************** @@ -18,12 +20,14 @@ public: // construction/destruction nes_subor0_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: uint8_t m_reg[4]; }; @@ -37,12 +41,14 @@ public: // construction/destruction nes_subor1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: uint8_t m_reg[4]; }; @@ -56,8 +62,6 @@ public: // construction/destruction nes_subor2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_READ8_MEMBER(nt_r) override; virtual DECLARE_WRITE8_MEMBER(write_l) override; virtual DECLARE_READ8_MEMBER(read_l) override; @@ -65,14 +69,18 @@ public: virtual void ppu_latch(offs_t offset) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: void update_banks(); uint8_t m_switch_reg, m_bank_reg, m_chr_banking, m_page; }; // device type definition -extern const device_type NES_SUBOR0; -extern const device_type NES_SUBOR1; -extern const device_type NES_SUBOR2; +DECLARE_DEVICE_TYPE(NES_SUBOR0, nes_subor0_device) +DECLARE_DEVICE_TYPE(NES_SUBOR1, nes_subor1_device) +DECLARE_DEVICE_TYPE(NES_SUBOR2, nes_subor2_device) -#endif /* MAME_BUS_NES_SUBOR_H */ +#endif // MAME_BUS_NES_SUBOR_H diff --git a/src/devices/bus/nes/sunsoft.cpp b/src/devices/bus/nes/sunsoft.cpp index 2394d67dad8..e35604256bd 100644 --- a/src/devices/bus/nes/sunsoft.cpp +++ b/src/devices/bus/nes/sunsoft.cpp @@ -42,52 +42,52 @@ // constructor //------------------------------------------------- -const device_type NES_SUNSOFT_1 = device_creator; -const device_type NES_SUNSOFT_2 = device_creator; -const device_type NES_SUNSOFT_3 = device_creator; -const device_type NES_SUNSOFT_4 = device_creator; -const device_type NES_SUNSOFT_FME7 = device_creator; -const device_type NES_SUNSOFT_5 = device_creator; +DEFINE_DEVICE_TYPE(NES_SUNSOFT_1, nes_sunsoft_1_device, "nes_sun1", "NES Cart Sunsoft 1 PCB") +DEFINE_DEVICE_TYPE(NES_SUNSOFT_2, nes_sunsoft_2_device, "nes_sun2", "NES Cart Sunsoft 2 PCB") +DEFINE_DEVICE_TYPE(NES_SUNSOFT_3, nes_sunsoft_3_device, "nes_sun3", "NES Cart Sunsoft 3 PCB") +DEFINE_DEVICE_TYPE(NES_SUNSOFT_4, nes_sunsoft_4_device, "nes_sun4", "NES Cart Sunsoft 4 PCB") +DEFINE_DEVICE_TYPE(NES_SUNSOFT_FME7, nes_sunsoft_fme7_device, "nes_fme7", "NES Cart Sunsoft FME7 PCB") +DEFINE_DEVICE_TYPE(NES_SUNSOFT_5, nes_sunsoft_5_device, "nes_sun5", "NES Cart Sunsoft 5A/5B PCB") nes_sunsoft_1_device::nes_sunsoft_1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_SUNSOFT_1, "NES Cart Sunsoft 1 PCB", tag, owner, clock, "nes_sun1", __FILE__) + : nes_nrom_device(mconfig, NES_SUNSOFT_1, tag, owner, clock) { } nes_sunsoft_2_device::nes_sunsoft_2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_SUNSOFT_2, "NES Cart Sunsoft 2 PCB", tag, owner, clock, "nes_sun2", __FILE__) + : nes_nrom_device(mconfig, NES_SUNSOFT_2, tag, owner, clock) { } nes_sunsoft_3_device::nes_sunsoft_3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_SUNSOFT_3, "NES Cart Sunsoft 3 PCB", tag, owner, clock, "nes_sun3", __FILE__), m_irq_count(0), m_irq_enable(0), m_irq_toggle(0), irq_timer(nullptr) - { + : nes_nrom_device(mconfig, NES_SUNSOFT_3, tag, owner, clock), m_irq_count(0), m_irq_enable(0), m_irq_toggle(0), irq_timer(nullptr) +{ } -nes_sunsoft_4_device::nes_sunsoft_4_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : nes_nrom_device(mconfig, type, name, tag, owner, clock, shortname, source), m_reg(0), m_latch1(0), m_latch2(0), m_wram_enable(0) - { +nes_sunsoft_4_device::nes_sunsoft_4_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : nes_nrom_device(mconfig, type, tag, owner, clock), m_reg(0), m_latch1(0), m_latch2(0), m_wram_enable(0) +{ } nes_sunsoft_4_device::nes_sunsoft_4_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_SUNSOFT_4, "NES Cart Sunsoft 4 PCB", tag, owner, clock, "nes_sun4", __FILE__), m_reg(0), m_latch1(0), m_latch2(0), m_wram_enable(0) - { + : nes_sunsoft_4_device(mconfig, NES_SUNSOFT_4, tag, owner, clock) +{ } -nes_sunsoft_fme7_device::nes_sunsoft_fme7_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : nes_nrom_device(mconfig, type, name, tag, owner, clock, shortname, source), m_irq_count(0), m_irq_enable(0), irq_timer(nullptr), m_latch(0), m_wram_bank(0) - { +nes_sunsoft_fme7_device::nes_sunsoft_fme7_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : nes_nrom_device(mconfig, type, tag, owner, clock), m_irq_count(0), m_irq_enable(0), irq_timer(nullptr), m_latch(0), m_wram_bank(0) +{ } nes_sunsoft_fme7_device::nes_sunsoft_fme7_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_SUNSOFT_FME7, "NES Cart Sunsoft FME7 PCB", tag, owner, clock, "nes_fme7", __FILE__), m_irq_count(0), m_irq_enable(0), irq_timer(nullptr), m_latch(0), m_wram_bank(0) - { + : nes_sunsoft_fme7_device(mconfig, NES_SUNSOFT_FME7, tag, owner, clock) +{ } nes_sunsoft_5_device::nes_sunsoft_5_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_sunsoft_fme7_device(mconfig, NES_SUNSOFT_5, "NES Cart Sunsoft 5A/5B PCB", tag, owner, clock, "nes_sun5", __FILE__), - m_ym2149(*this, "ay") + : nes_sunsoft_fme7_device(mconfig, NES_SUNSOFT_5, tag, owner, clock) + , m_ym2149(*this, "ay") { } diff --git a/src/devices/bus/nes/sunsoft.h b/src/devices/bus/nes/sunsoft.h index 9a0d7561b9c..0c4728627e4 100644 --- a/src/devices/bus/nes/sunsoft.h +++ b/src/devices/bus/nes/sunsoft.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __NES_SUNSOFT_H -#define __NES_SUNSOFT_H +#ifndef MAME_BUS_NES_SUNSOFT_H +#define MAME_BUS_NES_SUNSOFT_H + +#pragma once #include "nxrom.h" #include "sound/ay8910.h" @@ -15,11 +17,13 @@ public: // construction/destruction nes_sunsoft_1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_m) override; virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; }; @@ -31,11 +35,13 @@ public: // construction/destruction nes_sunsoft_2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; }; @@ -47,13 +53,14 @@ public: // construction/destruction nes_sunsoft_3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; private: uint16_t m_irq_count; int m_irq_enable, m_irq_toggle; @@ -69,11 +76,8 @@ class nes_sunsoft_4_device : public nes_nrom_device { public: // construction/destruction - nes_sunsoft_4_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); nes_sunsoft_4_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_READ8_MEMBER(read_m) override; virtual DECLARE_WRITE8_MEMBER(write_m) override; virtual DECLARE_WRITE8_MEMBER(sun4_write); @@ -82,7 +86,13 @@ public: virtual void pcb_reset() override; protected: + nes_sunsoft_4_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual void device_start() override; + void sun4_mirror(int mirror, int mirr0, int mirr1); + int m_reg, m_latch1, m_latch2, m_wram_enable; }; @@ -92,12 +102,8 @@ class nes_sunsoft_fme7_device : public nes_nrom_device { public: // construction/destruction - nes_sunsoft_fme7_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); nes_sunsoft_fme7_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; virtual DECLARE_READ8_MEMBER(read_m) override; virtual DECLARE_WRITE8_MEMBER(write_m) override; virtual DECLARE_WRITE8_MEMBER(fme7_write); @@ -105,6 +111,13 @@ public: virtual void pcb_reset() override; +protected: + nes_sunsoft_fme7_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual void device_start() override; + virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + private: uint16_t m_irq_count; int m_irq_enable; @@ -133,15 +146,12 @@ private: required_device m_ym2149; }; - - - // device type definition -extern const device_type NES_SUNSOFT_1; -extern const device_type NES_SUNSOFT_2; -extern const device_type NES_SUNSOFT_3; -extern const device_type NES_SUNSOFT_4; -extern const device_type NES_SUNSOFT_FME7; -extern const device_type NES_SUNSOFT_5; - -#endif +DECLARE_DEVICE_TYPE(NES_SUNSOFT_1, nes_sunsoft_1_device) +DECLARE_DEVICE_TYPE(NES_SUNSOFT_2, nes_sunsoft_2_device) +DECLARE_DEVICE_TYPE(NES_SUNSOFT_3, nes_sunsoft_3_device) +DECLARE_DEVICE_TYPE(NES_SUNSOFT_4, nes_sunsoft_4_device) +DECLARE_DEVICE_TYPE(NES_SUNSOFT_FME7, nes_sunsoft_fme7_device) +DECLARE_DEVICE_TYPE(NES_SUNSOFT_5, nes_sunsoft_4_device) + +#endif // MAME_BUS_NES_SUNSOFT_H diff --git a/src/devices/bus/nes/sunsoft_dcs.cpp b/src/devices/bus/nes/sunsoft_dcs.cpp index 829a2e10982..c88bdce67d8 100644 --- a/src/devices/bus/nes/sunsoft_dcs.cpp +++ b/src/devices/bus/nes/sunsoft_dcs.cpp @@ -35,8 +35,8 @@ //------------------------------------------------- ntb_cart_interface::ntb_cart_interface(const machine_config &mconfig, device_t &device) - : device_slot_card_interface(mconfig, device), - m_rom(nullptr) + : device_slot_card_interface(mconfig, device) + , m_rom(nullptr) { } @@ -48,12 +48,13 @@ ntb_cart_interface::~ntb_cart_interface() // sub-cart slot device //------------------------------------------------- -const device_type NES_NTB_SLOT = device_creator; +DEFINE_DEVICE_TYPE(NES_NTB_SLOT, nes_ntb_slot_device, "nes_ntb_slot", "NES NTB Cartridge Slot") -nes_ntb_slot_device::nes_ntb_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, NES_NTB_SLOT, "NES NTB Cartridge Slot", tag, owner, clock, "nes_ntb_slot", __FILE__), - device_image_interface(mconfig, *this), - device_slot_interface(mconfig, *this), m_cart(nullptr) +nes_ntb_slot_device::nes_ntb_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, NES_NTB_SLOT, tag, owner, clock) + , device_image_interface(mconfig, *this) + , device_slot_interface(mconfig, *this) + , m_cart(nullptr) { } @@ -120,11 +121,11 @@ ROM_START( ntb_rom ) ROM_REGION(0x4000, "ntbrom", ROMREGION_ERASEFF) ROM_END -const device_type NES_NTB_ROM = device_creator; +DEFINE_DEVICE_TYPE(NES_NTB_ROM, nes_ntb_rom_device, "nes_ntbrom", "NES NTB ROM") nes_ntb_rom_device::nes_ntb_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, NES_NTB_ROM, "NES NTB ROM", tag, owner, clock, "nes_ntbrom", __FILE__), - ntb_cart_interface( mconfig, *this ) + : device_t(mconfig, NES_NTB_ROM, tag, owner, clock) + , ntb_cart_interface(mconfig, *this) { } @@ -153,13 +154,13 @@ uint8_t *nes_ntb_rom_device::get_cart_base() // //------------------------------------------------ -const device_type NES_SUNSOFT_DCS = device_creator; +DEFINE_DEVICE_TYPE(NES_SUNSOFT_DCS, nes_sunsoft_dcs_device, "nes_dcs", "NES Cart Sunsoft DCS PCB") nes_sunsoft_dcs_device::nes_sunsoft_dcs_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_sunsoft_4_device(mconfig, NES_SUNSOFT_DCS, "NES Cart Sunsoft DCS PCB", tag, owner, clock, "nes_dcs", __FILE__), m_timer_on(0), m_exrom_enable(0), - m_subslot(*this, "ntb_slot"), ntb_enable_timer(nullptr) - { + : nes_sunsoft_4_device(mconfig, NES_SUNSOFT_DCS, tag, owner, clock), m_timer_on(0), m_exrom_enable(0) + , m_subslot(*this, "ntb_slot"), ntb_enable_timer(nullptr) +{ } diff --git a/src/devices/bus/nes/sunsoft_dcs.h b/src/devices/bus/nes/sunsoft_dcs.h index 479f27aa39e..4b564a20f07 100644 --- a/src/devices/bus/nes/sunsoft_dcs.h +++ b/src/devices/bus/nes/sunsoft_dcs.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __NES_SUNSOFT_DCS_H -#define __NES_SUNSOFT_DCS_H +#ifndef MAME_BUS_NES_SUNSOFT_DCS_H +#define MAME_BUS_NES_SUNSOFT_DCS_H + +#pragma once #include "sunsoft.h" #include "softlist_dev.h" @@ -19,7 +21,6 @@ class ntb_cart_interface : public device_slot_card_interface { public: // construction/destruction - ntb_cart_interface(const machine_config &mconfig, device_t &device); virtual ~ntb_cart_interface(); // reading and writing @@ -28,16 +29,21 @@ public: uint8_t *get_cart_base() { return m_rom; } protected: + ntb_cart_interface(const machine_config &mconfig, device_t &device); + // internal state uint8_t *m_rom; }; // ======================> nes_ntb_slot_device +class nes_sunsoft_dcs_device; + class nes_ntb_slot_device : public device_t, public device_image_interface, public device_slot_interface { + friend class nes_sunsoft_dcs_device; public: // construction/destruction nes_ntb_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); @@ -64,11 +70,12 @@ public: virtual DECLARE_READ8_MEMBER(read); +protected: ntb_cart_interface* m_cart; }; // device type definition -extern const device_type NES_NTB_SLOT; +DECLARE_DEVICE_TYPE(NES_NTB_SLOT, nes_ntb_slot_device) #define MCFG_NTB_MINICART_ADD(_tag, _slot_intf) \ @@ -101,7 +108,7 @@ protected: }; // device type definition -extern const device_type NES_NTB_ROM; +DECLARE_DEVICE_TYPE(NES_NTB_ROM, nes_ntb_rom_device) @@ -121,10 +128,7 @@ public: // construction/destruction nes_sunsoft_dcs_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual machine_config_constructor device_mconfig_additions() const override; - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; virtual DECLARE_READ8_MEMBER(read_m) override; virtual DECLARE_READ8_MEMBER(read_h) override; virtual DECLARE_WRITE8_MEMBER(write_m) override; @@ -132,18 +136,23 @@ public: virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + private: + static constexpr device_timer_id TIMER_PROTECT = 0; + int m_timer_on, m_exrom_enable; required_device m_subslot; - static const device_timer_id TIMER_PROTECT = 0; emu_timer *ntb_enable_timer; attotime timer_freq; }; - // device type definition -extern const device_type NES_SUNSOFT_DCS; +DECLARE_DEVICE_TYPE(NES_SUNSOFT_DCS, nes_sunsoft_dcs_device) -#endif +#endif // MAME_BUS_NES_SUNSOFT_DCS_H diff --git a/src/devices/bus/nes/taito.cpp b/src/devices/bus/nes/taito.cpp index b417f6dcc3a..e0b6f836a1c 100644 --- a/src/devices/bus/nes/taito.cpp +++ b/src/devices/bus/nes/taito.cpp @@ -25,7 +25,7 @@ #include "taito.h" #include "cpu/m6502/m6502.h" -#include "video/ppu2c0x.h" // this has to be included so that IRQ functions can access PPU_BOTTOM_VISIBLE_SCANLINE +#include "video/ppu2c0x.h" // this has to be included so that IRQ functions can access ppu2c0x_device::BOTTOM_VISIBLE_SCANLINE #ifdef NES_PCB_DEBUG @@ -41,35 +41,35 @@ // constructor //------------------------------------------------- -const device_type NES_TC0190FMC = device_creator; -const device_type NES_TC0190FMC_PAL16R4 = device_creator; -const device_type NES_X1_005 = device_creator; -const device_type NES_X1_017 = device_creator; +DEFINE_DEVICE_TYPE(NES_TC0190FMC, nes_tc0190fmc_device, "nes_tc0190fmc", "NES Cart Taito TC0190FMC PCB") +DEFINE_DEVICE_TYPE(NES_TC0190FMC_PAL16R4, nes_tc0190fmc_pal16r4_device, "nes_tc0190pal", "NES Cart Taito TC0190FMC + PAL16R4 PCB") +DEFINE_DEVICE_TYPE(NES_X1_005, nes_x1_005_device, "nes_x1_005", "NES Cart Taito X1-005 PCB") +DEFINE_DEVICE_TYPE(NES_X1_017, nes_x1_017_device, "nes_x1_017", "NES Cart Taito X1-017 PCB") -nes_tc0190fmc_device::nes_tc0190fmc_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : nes_nrom_device(mconfig, type, name, tag, owner, clock, shortname, source) +nes_tc0190fmc_device::nes_tc0190fmc_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : nes_nrom_device(mconfig, type, tag, owner, clock) { } nes_tc0190fmc_device::nes_tc0190fmc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_TC0190FMC, "NES Cart Taito TC0190FMC PCB", tag, owner, clock, "nes_tc0190fmc", __FILE__) + : nes_tc0190fmc_device(mconfig, NES_TC0190FMC, tag, owner, clock) { } nes_tc0190fmc_pal16r4_device::nes_tc0190fmc_pal16r4_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_tc0190fmc_device(mconfig, NES_TC0190FMC_PAL16R4, "NES Cart Taito TC0190FMC + PAL16R4 PCB", tag, owner, clock, "nes_tc0190pal", __FILE__), m_irq_count(0), m_irq_count_latch(0), m_irq_enable(0) - { + : nes_tc0190fmc_device(mconfig, NES_TC0190FMC_PAL16R4, tag, owner, clock), m_irq_count(0), m_irq_count_latch(0), m_irq_enable(0) +{ } nes_x1_005_device::nes_x1_005_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_X1_005, "NES Cart Taito X1-005 PCB", tag, owner, clock, "nes_x1_005", __FILE__), m_latch(0) - { + : nes_nrom_device(mconfig, NES_X1_005, tag, owner, clock), m_latch(0) +{ } nes_x1_017_device::nes_x1_017_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_X1_017, "NES Cart Taito X1-017 PCB", tag, owner, clock, "nes_x1_017", __FILE__), m_latch(0) - { + : nes_nrom_device(mconfig, NES_X1_017, tag, owner, clock), m_latch(0) +{ } @@ -228,7 +228,7 @@ WRITE8_MEMBER(nes_tc0190fmc_device::tc0190fmc_write) void nes_tc0190fmc_pal16r4_device::hblank_irq( int scanline, int vblank, int blanked ) { - if (scanline < PPU_BOTTOM_VISIBLE_SCANLINE) + if (scanline < ppu2c0x_device::BOTTOM_VISIBLE_SCANLINE) { int prior_count = m_irq_count; if (m_irq_count == 0) diff --git a/src/devices/bus/nes/taito.h b/src/devices/bus/nes/taito.h index 8d33ecd4c5e..8f3ccb2a8ee 100644 --- a/src/devices/bus/nes/taito.h +++ b/src/devices/bus/nes/taito.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __NES_TAITO_H -#define __NES_TAITO_H +#ifndef MAME_BUS_NES_TAITO_H +#define MAME_BUS_NES_TAITO_H + +#pragma once #include "nxrom.h" @@ -12,15 +14,18 @@ class nes_tc0190fmc_device : public nes_nrom_device { public: // construction/destruction - nes_tc0190fmc_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); nes_tc0190fmc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(tc0190fmc_write); virtual DECLARE_WRITE8_MEMBER(write_h) override { tc0190fmc_write(space, offset, data, mem_mask); } virtual void pcb_reset() override; + +protected: + nes_tc0190fmc_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual void device_start() override; }; @@ -32,13 +37,15 @@ public: // construction/destruction nes_tc0190fmc_pal16r4_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void hblank_irq(int scanline, int vblank, int blanked) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: uint16_t m_irq_count, m_irq_count_latch; int m_irq_enable; @@ -53,13 +60,15 @@ public: // construction/destruction nes_x1_005_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_READ8_MEMBER(read_m) override; virtual DECLARE_WRITE8_MEMBER(write_m) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: uint8_t m_latch; // Taito X1-005 chip contains 80 bytes of internal ram, possibly battery backed up @@ -75,13 +84,15 @@ public: // construction/destruction nes_x1_017_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_READ8_MEMBER(read_m) override; virtual DECLARE_WRITE8_MEMBER(write_m) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: void set_chr(); uint8_t m_latch; @@ -92,13 +103,11 @@ private: }; - - // device type definition -extern const device_type NES_TC0190FMC; -extern const device_type NES_TC0190FMC_PAL16R4; -extern const device_type NES_X1_005; -extern const device_type NES_X1_017; +DECLARE_DEVICE_TYPE(NES_TC0190FMC, nes_tc0190fmc_device) +DECLARE_DEVICE_TYPE(NES_TC0190FMC_PAL16R4, nes_tc0190fmc_pal16r4_device) +DECLARE_DEVICE_TYPE(NES_X1_005, nes_x1_005_device) +DECLARE_DEVICE_TYPE(NES_X1_017, nes_x1_017_device) -#endif +#endif // MAME_BUS_NES_TAITO_H diff --git a/src/devices/bus/nes/tengen.cpp b/src/devices/bus/nes/tengen.cpp index 24c8843637f..7b171e77311 100644 --- a/src/devices/bus/nes/tengen.cpp +++ b/src/devices/bus/nes/tengen.cpp @@ -22,7 +22,7 @@ #include "tengen.h" #include "cpu/m6502/m6502.h" -#include "video/ppu2c0x.h" // this has to be included so that IRQ functions can access PPU_BOTTOM_VISIBLE_SCANLINE +#include "video/ppu2c0x.h" // this has to be included so that IRQ functions can access ppu2c0x_device::BOTTOM_VISIBLE_SCANLINE #ifdef NES_PCB_DEBUG @@ -38,28 +38,28 @@ // constructor //------------------------------------------------- -const device_type NES_TENGEN_800008 = device_creator; -const device_type NES_TENGEN_800032 = device_creator; -const device_type NES_TENGEN_800037 = device_creator; +DEFINE_DEVICE_TYPE(NES_TENGEN_800008, nes_tengen008_device, "nes_tengen008", "NES Cart Tengen 800008 PCB") +DEFINE_DEVICE_TYPE(NES_TENGEN_800032, nes_tengen032_device, "nes_tengen032", "NES Cart Tengen 800032 PCB") +DEFINE_DEVICE_TYPE(NES_TENGEN_800037, nes_tengen037_device, "nes_tengen037", "NES Cart Tengen 800037 PCB") nes_tengen008_device::nes_tengen008_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_TENGEN_800008, "NES Cart Tengen 800008 PCB", tag, owner, clock, "nes_tengen008", __FILE__) + : nes_nrom_device(mconfig, NES_TENGEN_800008, tag, owner, clock) { } -nes_tengen032_device::nes_tengen032_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : nes_nrom_device(mconfig, type, name, tag, owner, clock, shortname, source), m_irq_count(0), m_irq_count_latch(0), m_irq_mode(0), m_irq_reset(0), m_irq_enable(0), m_latch(0), irq_timer(nullptr) - { +nes_tengen032_device::nes_tengen032_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : nes_nrom_device(mconfig, type, tag, owner, clock), m_irq_count(0), m_irq_count_latch(0), m_irq_mode(0), m_irq_reset(0), m_irq_enable(0), m_latch(0), irq_timer(nullptr) +{ } nes_tengen032_device::nes_tengen032_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_TENGEN_800032, "NES Cart Tengen 800032 PCB", tag, owner, clock, "nes_tengen032", __FILE__), m_irq_count(0), m_irq_count_latch(0), m_irq_mode(0), m_irq_reset(0), m_irq_enable(0), m_latch(0), irq_timer(nullptr) + : nes_tengen032_device(mconfig, NES_TENGEN_800032, tag, owner, clock) { } nes_tengen037_device::nes_tengen037_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_tengen032_device(mconfig, NES_TENGEN_800037, "NES Cart Tengen 800037 PCB", tag, owner, clock, "nes_tengen037", __FILE__) + : nes_tengen032_device(mconfig, NES_TENGEN_800037, tag, owner, clock) { } @@ -195,7 +195,7 @@ void nes_tengen032_device::hblank_irq(int scanline, int vblank, int blanked) { if (!m_irq_mode) // we are in scanline mode! { - if (scanline < PPU_BOTTOM_VISIBLE_SCANLINE) + if (scanline < ppu2c0x_device::BOTTOM_VISIBLE_SCANLINE) { irq_clock(blanked); } diff --git a/src/devices/bus/nes/tengen.h b/src/devices/bus/nes/tengen.h index 3fb9cba0c88..dce41f4fbb4 100644 --- a/src/devices/bus/nes/tengen.h +++ b/src/devices/bus/nes/tengen.h @@ -1,7 +1,7 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __NES_TENGEN_H -#define __NES_TENGEN_H +#ifndef MAME_BUS_NES_TENGEN_H +#define MAME_BUS_NES_TENGEN_H #include "nxrom.h" @@ -14,11 +14,13 @@ public: // construction/destruction nes_tengen008_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; }; @@ -28,20 +30,23 @@ class nes_tengen032_device : public nes_nrom_device { public: // construction/destruction - nes_tengen032_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); nes_tengen032_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; virtual DECLARE_WRITE8_MEMBER(tengen032_write); virtual DECLARE_WRITE8_MEMBER(write_h) override { tengen032_write(space, offset, data, mem_mask); } - virtual void chr_cb(int start, int bank, int source); virtual void hblank_irq(int scanline, int vblank, int blanked) override; virtual void pcb_reset() override; protected: + nes_tengen032_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual void device_start() override; + virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + + virtual void chr_cb(int start, int bank, int source); + void set_prg(); void set_chr(); void irq_clock(int blanked); @@ -77,12 +82,9 @@ protected: }; - - - // device type definition -extern const device_type NES_TENGEN_800008; -extern const device_type NES_TENGEN_800032; -extern const device_type NES_TENGEN_800037; +DECLARE_DEVICE_TYPE(NES_TENGEN_800008, nes_tengen008_device) +DECLARE_DEVICE_TYPE(NES_TENGEN_800032, nes_tengen032_device) +DECLARE_DEVICE_TYPE(NES_TENGEN_800037, nes_tengen037_device) -#endif +#endif // MAME_BUS_NES_TENGEN_H diff --git a/src/devices/bus/nes/txc.cpp b/src/devices/bus/nes/txc.cpp index c6c4b6b9ad1..f3ab8efc5f9 100644 --- a/src/devices/bus/nes/txc.cpp +++ b/src/devices/bus/nes/txc.cpp @@ -37,40 +37,40 @@ // constructor //------------------------------------------------- -const device_type NES_TXC_22211 = device_creator; -const device_type NES_TXC_DUMARACING = device_creator; -const device_type NES_TXC_MJBLOCK = device_creator; -const device_type NES_TXC_STRIKEW = device_creator; -const device_type NES_TXC_COMMANDOS = device_creator; +DEFINE_DEVICE_TYPE(NES_TXC_22211, nes_txc_22211_device, "nes_txc_22211", "NES Cart TXC 22211 PCB") +DEFINE_DEVICE_TYPE(NES_TXC_DUMARACING, nes_txc_dumarc_device, "nes_txc_dumarc", "NES Cart TXC Du Ma Racing PCB") +DEFINE_DEVICE_TYPE(NES_TXC_MJBLOCK, nes_txc_mjblock_device, "nes_txc_mjblock", "NES Cart TXC Mahjong Block PCB") +DEFINE_DEVICE_TYPE(NES_TXC_STRIKEW, nes_txc_strikew_device, "nes_txc_strikew", "NES Cart TXC Strike Wolf PCB") +DEFINE_DEVICE_TYPE(NES_TXC_COMMANDOS, nes_txc_commandos_device, "nes_txc_comm", "NES Cart TXC Cart Commandos PCB") // and others -nes_txc_22211_device::nes_txc_22211_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : nes_nrom_device(mconfig, type, name, tag, owner, clock, shortname, source) +nes_txc_22211_device::nes_txc_22211_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : nes_nrom_device(mconfig, type, tag, owner, clock) { } nes_txc_22211_device::nes_txc_22211_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_TXC_22211, "NES Cart TXC 22211 PCB", tag, owner, clock, "nes_txc_22211", __FILE__) + : nes_nrom_device(mconfig, NES_TXC_22211, tag, owner, clock) { } nes_txc_dumarc_device::nes_txc_dumarc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_txc_22211_device(mconfig, NES_TXC_DUMARACING, "NES Cart TXC Du Ma Racing PCB", tag, owner, clock, "nes_dumarc", __FILE__) + : nes_txc_22211_device(mconfig, NES_TXC_DUMARACING, tag, owner, clock) { } nes_txc_mjblock_device::nes_txc_mjblock_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_txc_22211_device(mconfig, NES_TXC_MJBLOCK, "NES Cart TXC Mahjong Block PCB", tag, owner, clock, "nes_mjblock", __FILE__) + : nes_txc_22211_device(mconfig, NES_TXC_MJBLOCK, tag, owner, clock) { } nes_txc_strikew_device::nes_txc_strikew_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_TXC_STRIKEW, "NES Cart Strike Wolf PCB", tag, owner, clock, "nes_txc_strikew", __FILE__) + : nes_nrom_device(mconfig, NES_TXC_STRIKEW, tag, owner, clock) { } nes_txc_commandos_device::nes_txc_commandos_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_TXC_COMMANDOS, "NES Cart Commandos (and others) PCB", tag, owner, clock, "nes_txc_comm", __FILE__) + : nes_nrom_device(mconfig, NES_TXC_COMMANDOS, tag, owner, clock) { } diff --git a/src/devices/bus/nes/txc.h b/src/devices/bus/nes/txc.h index b8c11dddd20..efc32b58368 100644 --- a/src/devices/bus/nes/txc.h +++ b/src/devices/bus/nes/txc.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __NES_TXC_H -#define __NES_TXC_H +#ifndef MAME_BUS_NES_TXC_H +#define MAME_BUS_NES_TXC_H + +#pragma once #include "nxrom.h" @@ -12,11 +14,8 @@ class nes_txc_22211_device : public nes_nrom_device { public: // construction/destruction - nes_txc_22211_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); nes_txc_22211_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_READ8_MEMBER(read_l) override; virtual DECLARE_WRITE8_MEMBER(write_l) override; virtual DECLARE_WRITE8_MEMBER(write_h) override; @@ -24,6 +23,11 @@ public: virtual void pcb_reset() override; protected: + nes_txc_22211_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual void device_start() override; + uint8_t m_reg[4]; }; @@ -62,11 +66,13 @@ public: // construction/destruction nes_txc_strikew_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; }; @@ -78,22 +84,22 @@ public: // construction/destruction nes_txc_commandos_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_READ8_MEMBER(read_l) override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; -}; - +protected: + // device-level overrides + virtual void device_start() override; +}; // device type definition -extern const device_type NES_TXC_22211; -extern const device_type NES_TXC_DUMARACING; -extern const device_type NES_TXC_MJBLOCK; -extern const device_type NES_TXC_STRIKEW; -extern const device_type NES_TXC_COMMANDOS; +DECLARE_DEVICE_TYPE(NES_TXC_22211, nes_txc_22211_device) +DECLARE_DEVICE_TYPE(NES_TXC_DUMARACING, nes_txc_dumarac_device) +DECLARE_DEVICE_TYPE(NES_TXC_MJBLOCK, nes_txc_mjblock_device) +DECLARE_DEVICE_TYPE(NES_TXC_STRIKEW, nes_txc_strikew_device) +DECLARE_DEVICE_TYPE(NES_TXC_COMMANDOS, nes_txc_commandos_device) -#endif +#endif // MAME_BUS_NES_TXC_H diff --git a/src/devices/bus/nes/waixing.cpp b/src/devices/bus/nes/waixing.cpp index fd343d910e3..f4d9c338f48 100644 --- a/src/devices/bus/nes/waixing.cpp +++ b/src/devices/bus/nes/waixing.cpp @@ -33,141 +33,141 @@ // constructor //------------------------------------------------- -const device_type NES_WAIXING_A = device_creator; -const device_type NES_WAIXING_A1 = device_creator; -const device_type NES_WAIXING_B = device_creator; -const device_type NES_WAIXING_C = device_creator; -const device_type NES_WAIXING_D = device_creator; -const device_type NES_WAIXING_E = device_creator; -const device_type NES_WAIXING_F = device_creator; -const device_type NES_WAIXING_G = device_creator; -const device_type NES_WAIXING_H = device_creator; -const device_type NES_WAIXING_H1 = device_creator; -const device_type NES_WAIXING_I = device_creator; -const device_type NES_WAIXING_J = device_creator; -const device_type NES_WAIXING_SH2 = device_creator; -const device_type NES_WAIXING_SEC = device_creator; -const device_type NES_WAIXING_SGZ = device_creator; -const device_type NES_WAIXING_SGZLZ = device_creator; -const device_type NES_WAIXING_FFV = device_creator; -const device_type NES_WAIXING_WXZS = device_creator; -const device_type NES_WAIXING_DQ8 = device_creator; -const device_type NES_WAIXING_WXZS2 = device_creator; -const device_type NES_WAIXING_FS304 = device_creator; - - -nes_waixing_a_device::nes_waixing_a_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : nes_txrom_device(mconfig, type, name, tag, owner, clock, shortname, source) +DEFINE_DEVICE_TYPE(NES_WAIXING_A, nes_waixing_a_device, "nes_waixing_a", "NES Cart Waixing Type A PCB") +DEFINE_DEVICE_TYPE(NES_WAIXING_A1, nes_waixing_a1_device, "nes_waixing_a1", "NES Cart Waixing Type A (Alt) PCB") +DEFINE_DEVICE_TYPE(NES_WAIXING_B, nes_waixing_b_device, "nes_waixing_b", "NES Cart Waixing Type B PCB") +DEFINE_DEVICE_TYPE(NES_WAIXING_C, nes_waixing_c_device, "nes_waixing_c", "NES Cart Waixing Type C PCB") +DEFINE_DEVICE_TYPE(NES_WAIXING_D, nes_waixing_d_device, "nes_waixing_d", "NES Cart Waixing Type D PCB") +DEFINE_DEVICE_TYPE(NES_WAIXING_E, nes_waixing_e_device, "nes_waixing_e", "NES Cart Waixing Type E PCB") +DEFINE_DEVICE_TYPE(NES_WAIXING_F, nes_waixing_f_device, "nes_waixing_f", "NES Cart Waixing Type F PCB") +DEFINE_DEVICE_TYPE(NES_WAIXING_G, nes_waixing_g_device, "nes_waixing_g", "NES Cart Waixing Type G PCB") +DEFINE_DEVICE_TYPE(NES_WAIXING_H, nes_waixing_h_device, "nes_waixing_h", "NES Cart Waixing Type H PCB") +DEFINE_DEVICE_TYPE(NES_WAIXING_H1, nes_waixing_h1_device, "nes_waixing_h1", "NES Cart Waixing Type H (Alt) PCB") +DEFINE_DEVICE_TYPE(NES_WAIXING_I, nes_waixing_i_device, "nes_waixing_i", "NES Cart Waixing Type I PCB") +DEFINE_DEVICE_TYPE(NES_WAIXING_J, nes_waixing_j_device, "nes_waixing_j", "NES Cart Waixing Type J PCB") +DEFINE_DEVICE_TYPE(NES_WAIXING_SH2, nes_waixing_sh2_device, "nes_waixing_sh2", "NES Cart Waixing SH2 PCB") +DEFINE_DEVICE_TYPE(NES_WAIXING_SEC, nes_waixing_sec_device, "nes_waixing_sec", "NES Cart Waixing Security Chip PCB") +DEFINE_DEVICE_TYPE(NES_WAIXING_SGZ, nes_waixing_sgz_device, "nes_waixing_sgz", "NES Cart Waixing San Guo Zhi PCB") +DEFINE_DEVICE_TYPE(NES_WAIXING_SGZLZ, nes_waixing_sgzlz_device, "nes_waixing_sgzlz", "NES Cart Waixing San Guo Zhong Lie Zhuan PCB") +DEFINE_DEVICE_TYPE(NES_WAIXING_FFV, nes_waixing_ffv_device, "nes_waixing_ffv", "NES Cart Waixing Final Fantasy V PCB") +DEFINE_DEVICE_TYPE(NES_WAIXING_WXZS, nes_waixing_wxzs_device, "nes_waixing_wxzs", "NES Cart Waixing Wai Xing Zhan Shi PCB") +DEFINE_DEVICE_TYPE(NES_WAIXING_DQ8, nes_waixing_dq8_device, "nes_waixing_dq8", "NES Cart Waixing Dragon Quest VIII PCB") +DEFINE_DEVICE_TYPE(NES_WAIXING_WXZS2, nes_waixing_wxzs2_device, "nes_waixing_wxzs2", "NES Cart Waixing Wai Xing Zhan Shi 2 PCB") +DEFINE_DEVICE_TYPE(NES_WAIXING_FS304, nes_waixing_fs304_device, "nes_waixing_fs304", "NES Cart Waixing FS-304 PCB") + + +nes_waixing_a_device::nes_waixing_a_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : nes_txrom_device(mconfig, type, tag, owner, clock) { } nes_waixing_a_device::nes_waixing_a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_txrom_device(mconfig, NES_WAIXING_A, "NES Cart Waixing Type A PCB", tag, owner, clock, "nes_waixing_a", __FILE__) + : nes_waixing_a_device(mconfig, NES_WAIXING_A, tag, owner, clock) { } nes_waixing_a1_device::nes_waixing_a1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_waixing_a_device(mconfig, NES_WAIXING_A1, "NES Cart Waixing Type A (Alt) PCB", tag, owner, clock, "nes_waixing_a1", __FILE__) + : nes_waixing_a_device(mconfig, NES_WAIXING_A1, tag, owner, clock) { } nes_waixing_b_device::nes_waixing_b_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_waixing_a_device(mconfig, NES_WAIXING_B, "NES Cart Waixing Type B PCB", tag, owner, clock, "nes_waixing_b", __FILE__) + : nes_waixing_a_device(mconfig, NES_WAIXING_B, tag, owner, clock) { } nes_waixing_c_device::nes_waixing_c_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_waixing_a_device(mconfig, NES_WAIXING_C, "NES Cart Waixing Type C PCB", tag, owner, clock, "nes_waixing_c", __FILE__) + : nes_waixing_a_device(mconfig, NES_WAIXING_C, tag, owner, clock) { } nes_waixing_d_device::nes_waixing_d_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_waixing_a_device(mconfig, NES_WAIXING_D, "NES Cart Waixing Type D PCB", tag, owner, clock, "nes_waixing_d", __FILE__) + : nes_waixing_a_device(mconfig, NES_WAIXING_D, tag, owner, clock) { } nes_waixing_e_device::nes_waixing_e_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_waixing_a_device(mconfig, NES_WAIXING_E, "NES Cart Waixing Type E PCB", tag, owner, clock, "nes_waixing_e", __FILE__) + : nes_waixing_a_device(mconfig, NES_WAIXING_E, tag, owner, clock) { } nes_waixing_f_device::nes_waixing_f_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_waixing_a_device(mconfig, NES_WAIXING_F, "NES Cart Waixing Type F PCB", tag, owner, clock, "nes_waixing_f", __FILE__) + : nes_waixing_a_device(mconfig, NES_WAIXING_F, tag, owner, clock) { } nes_waixing_g_device::nes_waixing_g_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_waixing_a_device(mconfig, NES_WAIXING_G, "NES Cart Waixing Type G PCB", tag, owner, clock, "nes_waixing_g", __FILE__) + : nes_waixing_a_device(mconfig, NES_WAIXING_G, tag, owner, clock) { } -nes_waixing_h_device::nes_waixing_h_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : nes_txrom_device(mconfig, type, name, tag, owner, clock, shortname, source) +nes_waixing_h_device::nes_waixing_h_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : nes_txrom_device(mconfig, type, tag, owner, clock) { } nes_waixing_h_device::nes_waixing_h_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_txrom_device(mconfig, NES_WAIXING_H, "NES Cart Waixing Type H PCB", tag, owner, clock, "nes_waixing_h", __FILE__) + : nes_waixing_h_device(mconfig, NES_WAIXING_H, tag, owner, clock) { } nes_waixing_h1_device::nes_waixing_h1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_waixing_h_device(mconfig, NES_WAIXING_H1, "NES Cart Waixing Type H (Alt) PCB", tag, owner, clock, "nes_waixing_h1", __FILE__) + : nes_waixing_h_device(mconfig, NES_WAIXING_H1, tag, owner, clock) { } nes_waixing_i_device::nes_waixing_i_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_waixing_a_device(mconfig, NES_WAIXING_I, "NES Cart Waixing Type I PCB", tag, owner, clock, "nes_waixing_i", __FILE__) + : nes_waixing_a_device(mconfig, NES_WAIXING_I, tag, owner, clock) { } nes_waixing_j_device::nes_waixing_j_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_waixing_a_device(mconfig, NES_WAIXING_J, "NES Cart Waixing Type J PCB", tag, owner, clock, "nes_waixing_j", __FILE__) + : nes_waixing_a_device(mconfig, NES_WAIXING_J, tag, owner, clock) { } nes_waixing_sh2_device::nes_waixing_sh2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_txrom_device(mconfig, NES_WAIXING_SH2, "NES Cart Waixing SH2 PCB", tag, owner, clock, "nes_waixing_sh2", __FILE__) + : nes_txrom_device(mconfig, NES_WAIXING_SH2, tag, owner, clock) { } nes_waixing_sec_device::nes_waixing_sec_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_txrom_device(mconfig, NES_WAIXING_SEC, "NES Cart Waixing Security Chip PCB", tag, owner, clock, "nes_waixing_sec", __FILE__), m_reg(0) - { + : nes_txrom_device(mconfig, NES_WAIXING_SEC, tag, owner, clock), m_reg(0) +{ } nes_waixing_sgz_device::nes_waixing_sgz_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_WAIXING_SGZ, "NES Cart Waixing San Guo Zhi PCB", tag, owner, clock, "nes_waixing_sgz", __FILE__), m_irq_count(0), m_irq_count_latch(0), m_irq_enable(0), m_irq_enable_latch(0) - { + : nes_nrom_device(mconfig, NES_WAIXING_SGZ, tag, owner, clock), m_irq_count(0), m_irq_count_latch(0), m_irq_enable(0), m_irq_enable_latch(0) +{ } nes_waixing_sgzlz_device::nes_waixing_sgzlz_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_WAIXING_SGZLZ, "NES Cart Waixing San Guo Zhong Lie Zhuan PCB", tag, owner, clock, "nes_waixing_sgzlz", __FILE__), m_reg{} - { + : nes_nrom_device(mconfig, NES_WAIXING_SGZLZ, tag, owner, clock), m_reg{ 0, 0, 0, 0 } +{ } nes_waixing_ffv_device::nes_waixing_ffv_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_WAIXING_FFV, "NES Cart Waixing Final Fantasy V PCB", tag, owner, clock, "nes_waixing_ffv", __FILE__) + : nes_nrom_device(mconfig, NES_WAIXING_FFV, tag, owner, clock) { } nes_waixing_wxzs_device::nes_waixing_wxzs_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_WAIXING_WXZS, "NES Cart Waixing Wai Xing Zhan Shi PCB", tag, owner, clock, "nes_waixing_wxzs", __FILE__) + : nes_nrom_device(mconfig, NES_WAIXING_WXZS, tag, owner, clock) { } nes_waixing_dq8_device::nes_waixing_dq8_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_WAIXING_DQ8, "NES Cart Waixing Dragon Quest VIII PCB", tag, owner, clock, "nes_waixing_dq8", __FILE__) + : nes_nrom_device(mconfig, NES_WAIXING_DQ8, tag, owner, clock) { } nes_waixing_wxzs2_device::nes_waixing_wxzs2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_WAIXING_WXZS2, "NES Cart Waixing Wai Xing Zhan Shi 2 PCB", tag, owner, clock, "nes_waixing_wxzs2", __FILE__) + : nes_nrom_device(mconfig, NES_WAIXING_WXZS2, tag, owner, clock) { } nes_waixing_fs304_device::nes_waixing_fs304_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_WAIXING_FS304, "NES Cart Waixing FS-304 PCB", tag, owner, clock, "nes_waixing_fs304", __FILE__) + : nes_nrom_device(mconfig, NES_WAIXING_FS304, tag, owner, clock) { } diff --git a/src/devices/bus/nes/waixing.h b/src/devices/bus/nes/waixing.h index dd53d109e73..5488973a14c 100644 --- a/src/devices/bus/nes/waixing.h +++ b/src/devices/bus/nes/waixing.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __NES_WAIXING_H -#define __NES_WAIXING_H +#ifndef MAME_BUS_NES_WAIXING_H +#define MAME_BUS_NES_WAIXING_H + +#pragma once #include "mmc3.h" @@ -12,11 +14,8 @@ class nes_waixing_a_device : public nes_txrom_device { public: // construction/destruction - nes_waixing_a_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); nes_waixing_a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_READ8_MEMBER(read_l) override; virtual DECLARE_WRITE8_MEMBER(write_l) override; virtual DECLARE_WRITE8_MEMBER(waixing_write); @@ -26,7 +25,13 @@ public: virtual void pcb_reset() override; protected: + nes_waixing_a_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual void device_start() override; + void set_mirror(uint8_t nt); + uint8_t mapper_ram[0x400]; }; @@ -109,6 +114,7 @@ public: virtual void chr_cb(int start, int bank, int source) override; virtual void pcb_reset() override; + private: virtual void set_prg(int prg_base, int prg_mask) override; }; @@ -139,14 +145,17 @@ class nes_waixing_h_device : public nes_txrom_device { public: // construction/destruction - nes_waixing_h_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); nes_waixing_h_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void chr_cb(int start, int bank, int source) override; // This PCB does not have 1K of internal RAM, so it's not derived from nes_waixing_a_device!! + +protected: + nes_waixing_h_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual DECLARE_WRITE8_MEMBER(write_h) override; }; @@ -185,13 +194,14 @@ public: // construction/destruction nes_waixing_j_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; protected: + // device-level overrides + virtual void device_start() override; + virtual void set_prg(int prg_base, int prg_mask) override; uint8_t m_reg[4]; }; @@ -225,8 +235,6 @@ public: // construction/destruction nes_waixing_sec_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_l) override; virtual void prg_cb(int start, int bank) override; virtual void chr_cb(int start, int bank, int source) override; @@ -234,6 +242,9 @@ public: virtual void pcb_reset() override; protected: + // device-level overrides + virtual void device_start() override; + uint8_t m_reg; }; @@ -246,14 +257,15 @@ public: // construction/destruction nes_waixing_sgz_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void hblank_irq(int scanline, int vblank, int blanked) override; virtual void pcb_reset() override; protected: + // device-level overrides + virtual void device_start() override; + uint16_t m_irq_count, m_irq_count_latch; int m_irq_enable, m_irq_enable_latch; @@ -269,13 +281,14 @@ public: // construction/destruction nes_waixing_sgzlz_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_l) override; virtual void pcb_reset() override; protected: + // device-level overrides + virtual void device_start() override; + uint8_t m_reg[4]; }; @@ -288,13 +301,14 @@ public: // construction/destruction nes_waixing_ffv_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_l) override; virtual void pcb_reset() override; protected: + // device-level overrides + virtual void device_start() override; + uint8_t m_reg[2]; }; @@ -307,11 +321,13 @@ public: // construction/destruction nes_waixing_wxzs_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; }; @@ -323,11 +339,13 @@ public: // construction/destruction nes_waixing_dq8_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; }; @@ -339,11 +357,13 @@ public: // construction/destruction nes_waixing_wxzs2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; + +protected: + // device-level overrides + virtual void device_start() override; }; @@ -355,42 +375,39 @@ public: // construction/destruction nes_waixing_fs304_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_l) override; virtual void pcb_reset() override; protected: + // device-level overrides + virtual void device_start() override; + uint8_t m_reg[4]; }; - - - // device type definition -extern const device_type NES_WAIXING_A; -extern const device_type NES_WAIXING_A1; -extern const device_type NES_WAIXING_B; -extern const device_type NES_WAIXING_C; -extern const device_type NES_WAIXING_D; -extern const device_type NES_WAIXING_E; -extern const device_type NES_WAIXING_F; -extern const device_type NES_WAIXING_G; -extern const device_type NES_WAIXING_H; -extern const device_type NES_WAIXING_H1; -extern const device_type NES_WAIXING_I; -extern const device_type NES_WAIXING_J; -extern const device_type NES_WAIXING_SH2; -extern const device_type NES_WAIXING_SEC; -extern const device_type NES_WAIXING_SGZ; -extern const device_type NES_WAIXING_SGZLZ; -extern const device_type NES_WAIXING_FFV; -extern const device_type NES_WAIXING_WXZS; -extern const device_type NES_WAIXING_DQ8; -extern const device_type NES_WAIXING_WXZS2; -extern const device_type NES_WAIXING_FS304; - - -#endif +DECLARE_DEVICE_TYPE(NES_WAIXING_A, nes_waixing_a_device) +DECLARE_DEVICE_TYPE(NES_WAIXING_A1, nes_waixing_a1_device) +DECLARE_DEVICE_TYPE(NES_WAIXING_B, nes_waixing_b_device) +DECLARE_DEVICE_TYPE(NES_WAIXING_C, nes_waixing_c_device) +DECLARE_DEVICE_TYPE(NES_WAIXING_D, nes_waixing_d_device) +DECLARE_DEVICE_TYPE(NES_WAIXING_E, nes_waixing_e_device) +DECLARE_DEVICE_TYPE(NES_WAIXING_F, nes_waixing_f_device) +DECLARE_DEVICE_TYPE(NES_WAIXING_G, nes_waixing_g_device) +DECLARE_DEVICE_TYPE(NES_WAIXING_H, nes_waixing_h_device) +DECLARE_DEVICE_TYPE(NES_WAIXING_H1, nes_waixing_h1_device) +DECLARE_DEVICE_TYPE(NES_WAIXING_I, nes_waixing_i_device) +DECLARE_DEVICE_TYPE(NES_WAIXING_J, nes_waixing_j_device) +DECLARE_DEVICE_TYPE(NES_WAIXING_SH2, nes_waixing_sh2_device) +DECLARE_DEVICE_TYPE(NES_WAIXING_SEC, nes_waixing_sec_device) +DECLARE_DEVICE_TYPE(NES_WAIXING_SGZ, nes_waixing_sgz_device) +DECLARE_DEVICE_TYPE(NES_WAIXING_SGZLZ, nes_waixing_sgzlz_device) +DECLARE_DEVICE_TYPE(NES_WAIXING_FFV, nes_waixing_ffv_device) +DECLARE_DEVICE_TYPE(NES_WAIXING_WXZS, nes_waixing_wxzs_device) +DECLARE_DEVICE_TYPE(NES_WAIXING_DQ8, nes_waixing_dq8_device) +DECLARE_DEVICE_TYPE(NES_WAIXING_WXZS2, nes_waixing_wxzs2_device) +DECLARE_DEVICE_TYPE(NES_WAIXING_FS304, nes_waixing_fs304_device) + +#endif // MAME_BUS_NES_WAIXING_H diff --git a/src/devices/bus/nes/zemina.cpp b/src/devices/bus/nes/zemina.cpp index 2328b7485a8..bb4b3b61bc0 100644 --- a/src/devices/bus/nes/zemina.cpp +++ b/src/devices/bus/nes/zemina.cpp @@ -21,7 +21,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type NES_ZEMINA = device_creator; +DEFINE_DEVICE_TYPE(NES_ZEMINA, nes_zemina_device, "nes_zemina", "NES Cart Zemina PCB") //************************************************************************** // LIVE DEVICE @@ -32,7 +32,7 @@ const device_type NES_ZEMINA = device_creator; //------------------------------------------------- nes_zemina_device::nes_zemina_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nes_nrom_device(mconfig, NES_ZEMINA, "NES Cart Zemina PCB", tag, owner, clock, "nes_zemina", __FILE__) + : nes_nrom_device(mconfig, NES_ZEMINA, tag, owner, clock) { } diff --git a/src/devices/bus/nes/zemina.h b/src/devices/bus/nes/zemina.h index d52f2db803c..87d170d053d 100644 --- a/src/devices/bus/nes/zemina.h +++ b/src/devices/bus/nes/zemina.h @@ -26,6 +26,6 @@ public: }; // device type definition -extern const device_type NES_ZEMINA; +DECLARE_DEVICE_TYPE(NES_ZEMINA, nes_zemina_device) -#endif /* MAME_BUS_NES_ZEMINA_H */ +#endif // MAME_BUS_NES_ZEMINA_H diff --git a/src/devices/bus/nes_ctrl/4score.cpp b/src/devices/bus/nes_ctrl/4score.cpp index ee2dc33db49..d786124d1a5 100644 --- a/src/devices/bus/nes_ctrl/4score.cpp +++ b/src/devices/bus/nes_ctrl/4score.cpp @@ -37,8 +37,8 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type NES_4SCORE_P1P3 = device_creator; -const device_type NES_4SCORE_P2P4 = device_creator; +DEFINE_DEVICE_TYPE(NES_4SCORE_P1P3, nes_4score_p1p3_device, "nes_4score_p1p3", "Nintendo Four Score Adapter P1/P3") +DEFINE_DEVICE_TYPE(NES_4SCORE_P2P4, nes_4score_p2p4_device, "nes_4score_p2p4", "Nintendo Four Score Adapter P2/P4") static INPUT_PORTS_START( nes_4score_p1p3 ) @@ -111,23 +111,24 @@ ioport_constructor nes_4score_p2p4_device::device_input_ports() const // nes_4score_device - constructor //------------------------------------------------- -nes_4score_device::nes_4score_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_nes_control_port_interface(mconfig, *this), m_latch(0) - { +nes_4score_device::nes_4score_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) + , device_nes_control_port_interface(mconfig, *this) + , m_latch(0) +{ } -nes_4score_p1p3_device::nes_4score_p1p3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - nes_4score_device(mconfig, NES_4SCORE_P1P3, "Nintendo Four Score Adapter P1/P3", tag, owner, clock, "nes_4score_p1p3", __FILE__), - m_joypad1(*this, "PAD1"), - m_joypad3(*this, "PAD3") +nes_4score_p1p3_device::nes_4score_p1p3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : nes_4score_device(mconfig, NES_4SCORE_P1P3, tag, owner, clock) + , m_joypad1(*this, "PAD1") + , m_joypad3(*this, "PAD3") { } -nes_4score_p2p4_device::nes_4score_p2p4_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - nes_4score_device(mconfig, NES_4SCORE_P2P4, "Nintendo Four Score Adapter P2/P4", tag, owner, clock, "nes_4score_p2p4", __FILE__), - m_joypad2(*this, "PAD2"), - m_joypad4(*this, "PAD4") +nes_4score_p2p4_device::nes_4score_p2p4_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : nes_4score_device(mconfig, NES_4SCORE_P2P4, tag, owner, clock) + , m_joypad2(*this, "PAD2") + , m_joypad4(*this, "PAD4") { } diff --git a/src/devices/bus/nes_ctrl/4score.h b/src/devices/bus/nes_ctrl/4score.h index 2e8fee5cc60..c69249b5511 100644 --- a/src/devices/bus/nes_ctrl/4score.h +++ b/src/devices/bus/nes_ctrl/4score.h @@ -6,14 +6,14 @@ **********************************************************************/ -#pragma once - -#ifndef __NES_FOURSCORE__ -#define __NES_FOURSCORE__ +#ifndef MAME_BUS_NES_CTRL_4SCORE_H +#define MAME_BUS_NES_CTRL_4SCORE_H +#pragma once #include "ctrl.h" + //************************************************************************** // TYPE DEFINITIONS //************************************************************************** @@ -23,18 +23,16 @@ class nes_4score_device : public device_t, public device_nes_control_port_interface { -public: +protected: // construction/destruction - nes_4score_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); + nes_4score_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); -protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; virtual uint8_t read_bit0() override; -protected: uint32_t m_latch; }; @@ -76,8 +74,8 @@ private: // device type definition -extern const device_type NES_4SCORE_P1P3; -extern const device_type NES_4SCORE_P2P4; +DECLARE_DEVICE_TYPE(NES_4SCORE_P1P3, nes_4score_p1p3_device) +DECLARE_DEVICE_TYPE(NES_4SCORE_P2P4, nes_4score_p2p4_device) -#endif +#endif // MAME_BUS_NES_CTRL_4SCORE_H diff --git a/src/devices/bus/nes_ctrl/arkpaddle.cpp b/src/devices/bus/nes_ctrl/arkpaddle.cpp index e4b24692fb1..8cd2cfea3c4 100644 --- a/src/devices/bus/nes_ctrl/arkpaddle.cpp +++ b/src/devices/bus/nes_ctrl/arkpaddle.cpp @@ -14,8 +14,8 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type NES_ARKPADDLE = device_creator; -const device_type NES_ARKPADDLE_FC = device_creator; +DEFINE_DEVICE_TYPE(NES_ARKPADDLE, nes_vaus_device, "nes_vaus", "NES Arkanoid Vaus Controller") +DEFINE_DEVICE_TYPE(NES_ARKPADDLE_FC, nes_vausfc_device, "nes_vausfc", "FC Arkanoid Vaus Controller") static INPUT_PORTS_START( arkanoid_paddle ) @@ -45,24 +45,22 @@ ioport_constructor nes_vaus_device::device_input_ports() const // nes_vaus_device - constructor //------------------------------------------------- -nes_vaus_device::nes_vaus_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_nes_control_port_interface(mconfig, *this), - m_paddle(*this, "PADDLE"), - m_button(*this, "BUTTON"), m_start_conv(0), m_latch(0) - { +nes_vaus_device::nes_vaus_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) + , device_nes_control_port_interface(mconfig, *this) + , m_paddle(*this, "PADDLE") + , m_button(*this, "BUTTON") + , m_start_conv(0), m_latch(0) +{ } -nes_vaus_device::nes_vaus_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, NES_ARKPADDLE, "NES Arkanoid Vaus Controller", tag, owner, clock, "nes_vaus", __FILE__), - device_nes_control_port_interface(mconfig, *this), - m_paddle(*this, "PADDLE"), - m_button(*this, "BUTTON"), m_start_conv(0), m_latch(0) +nes_vaus_device::nes_vaus_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : nes_vaus_device(mconfig, NES_ARKPADDLE, tag, owner, clock) { } -nes_vausfc_device::nes_vausfc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - nes_vaus_device(mconfig, NES_ARKPADDLE_FC, "FC Arkanoid Vaus Controller", tag, owner, clock, "nes_vausfc", __FILE__) +nes_vausfc_device::nes_vausfc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : nes_vaus_device(mconfig, NES_ARKPADDLE_FC, tag, owner, clock) { } diff --git a/src/devices/bus/nes_ctrl/arkpaddle.h b/src/devices/bus/nes_ctrl/arkpaddle.h index 5a7eba03f02..cdd6255792b 100644 --- a/src/devices/bus/nes_ctrl/arkpaddle.h +++ b/src/devices/bus/nes_ctrl/arkpaddle.h @@ -7,32 +7,32 @@ **********************************************************************/ -#pragma once - -#ifndef __NES_ARKPADDLE__ -#define __NES_ARKPADDLE__ +#ifndef MAME_BUS_NES_CTRL_ARKPADDLE_H +#define MAME_BUS_NES_CTRL_ARKPADDLE_H +#pragma once #include "ctrl.h" + //************************************************************************** // TYPE DEFINITIONS //************************************************************************** // ======================> nes_vaus_device -class nes_vaus_device : public device_t, - public device_nes_control_port_interface +class nes_vaus_device : public device_t, public device_nes_control_port_interface { public: // construction/destruction - nes_vaus_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); nes_vaus_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual ioport_constructor device_input_ports() const override; protected: + nes_vaus_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -62,8 +62,7 @@ protected: // device type definition -extern const device_type NES_ARKPADDLE; -extern const device_type NES_ARKPADDLE_FC; - +DECLARE_DEVICE_TYPE(NES_ARKPADDLE, nes_vaus_device) +DECLARE_DEVICE_TYPE(NES_ARKPADDLE_FC, nes_vausfc_device) -#endif +#endif // MAME_BUS_NES_CTRL_ARKPADDLE_H diff --git a/src/devices/bus/nes_ctrl/bcbattle.cpp b/src/devices/bus/nes_ctrl/bcbattle.cpp index 54cf48ce61f..478b6b88699 100644 --- a/src/devices/bus/nes_ctrl/bcbattle.cpp +++ b/src/devices/bus/nes_ctrl/bcbattle.cpp @@ -17,7 +17,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type NES_BARCODE_BATTLER = device_creator; +DEFINE_DEVICE_TYPE(NES_BARCODE_BATTLER, nes_bcbattle_device, "nes_bcbattle", "Epoch Barcode Battler (FC)") MACHINE_CONFIG_FRAGMENT( nes_battler ) @@ -82,10 +82,11 @@ void nes_bcbattle_device::device_timer(emu_timer &timer, device_timer_id id, int // nes_bcbattle_device - constructor //------------------------------------------------- -nes_bcbattle_device::nes_bcbattle_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, NES_BARCODE_BATTLER, "Epoch Barcode Battler (FC)", tag, owner, clock, "nes_bcbattle", __FILE__), - device_nes_control_port_interface(mconfig, *this), - m_reader(*this, "battler"), m_pending_code(0), m_new_code(0), m_transmitting(0), m_cur_bit(0), m_cur_byte(0), battler_timer(nullptr) +nes_bcbattle_device::nes_bcbattle_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, NES_BARCODE_BATTLER, tag, owner, clock) + , device_nes_control_port_interface(mconfig, *this) + , m_reader(*this, "battler") + , m_pending_code(0), m_new_code(0), m_transmitting(0), m_cur_bit(0), m_cur_byte(0), battler_timer(nullptr) { } diff --git a/src/devices/bus/nes_ctrl/bcbattle.h b/src/devices/bus/nes_ctrl/bcbattle.h index db0299bd9ec..f485d9c6b35 100644 --- a/src/devices/bus/nes_ctrl/bcbattle.h +++ b/src/devices/bus/nes_ctrl/bcbattle.h @@ -6,15 +6,15 @@ **********************************************************************/ -#pragma once - -#ifndef __NES_BCBATTLE__ -#define __NES_BCBATTLE__ +#ifndef MAME_BUS_NES_CTRL_BCBATTLE_H +#define MAME_BUS_NES_CTRL_BCBATTLE_H +#pragma once #include "ctrl.h" #include "machine/bcreader.h" + //************************************************************************** // TYPE DEFINITIONS //************************************************************************** @@ -28,18 +28,19 @@ public: // construction/destruction nes_bcbattle_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; virtual machine_config_constructor device_mconfig_additions() const override; protected: + static constexpr device_timer_id TIMER_BATTLER = 1; + // device-level overrides virtual void device_start() override; virtual void device_reset() override; + virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; virtual uint8_t read_exp(offs_t offset) override; int read_current_bit(); - static const device_timer_id TIMER_BATTLER = 1; required_device m_reader; uint8_t m_current_barcode[20]; int m_pending_code, m_new_code, m_transmitting, m_cur_bit, m_cur_byte; @@ -47,6 +48,6 @@ protected: }; // device type definition -extern const device_type NES_BARCODE_BATTLER; +DECLARE_DEVICE_TYPE(NES_BARCODE_BATTLER, nes_bcbattle_device) -#endif +#endif // MAME_BUS_NES_CTRL_BCBATTLE_H diff --git a/src/devices/bus/nes_ctrl/ctrl.cpp b/src/devices/bus/nes_ctrl/ctrl.cpp index ec439f91dbd..ef491efc889 100644 --- a/src/devices/bus/nes_ctrl/ctrl.cpp +++ b/src/devices/bus/nes_ctrl/ctrl.cpp @@ -64,7 +64,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type NES_CONTROL_PORT = device_creator; +DEFINE_DEVICE_TYPE(NES_CONTROL_PORT, nes_control_port_device, "nes_control_port", "Nintendo NES/FC control port") @@ -77,7 +77,7 @@ const device_type NES_CONTROL_PORT = device_creator; //------------------------------------------------- device_nes_control_port_interface::device_nes_control_port_interface(const machine_config &mconfig, device_t &device) : - device_slot_card_interface(mconfig, device) + device_slot_card_interface(mconfig, device) { m_port = dynamic_cast(device.owner()); } @@ -102,8 +102,9 @@ device_nes_control_port_interface::~device_nes_control_port_interface() //------------------------------------------------- nes_control_port_device::nes_control_port_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, NES_CONTROL_PORT, "Nintendo NES/FC control port", tag, owner, clock, "nes_control_port", __FILE__), - device_slot_interface(mconfig, *this), m_device(nullptr) + device_t(mconfig, NES_CONTROL_PORT, tag, owner, clock), + device_slot_interface(mconfig, *this), + m_device(nullptr) { } diff --git a/src/devices/bus/nes_ctrl/ctrl.h b/src/devices/bus/nes_ctrl/ctrl.h index 54faa60aa90..6442f6d2709 100644 --- a/src/devices/bus/nes_ctrl/ctrl.h +++ b/src/devices/bus/nes_ctrl/ctrl.h @@ -10,10 +10,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_NES_CTRL_CTRL_H +#define MAME_BUS_NES_CTRL_CTRL_H -#ifndef __NES_CONTROL_PORT__ -#define __NES_CONTROL_PORT__ +#pragma once //************************************************************************** @@ -28,15 +28,16 @@ class device_nes_control_port_interface : public device_slot_card_interface { public: // construction/destruction - device_nes_control_port_interface(const machine_config &mconfig, device_t &device); virtual ~device_nes_control_port_interface(); - virtual uint8_t read_bit0() { return 0; }; - virtual uint8_t read_bit34() { return 0; }; - virtual uint8_t read_exp(offs_t offset) { return 0; }; - virtual void write(uint8_t data) { }; + virtual uint8_t read_bit0() { return 0; } + virtual uint8_t read_bit34() { return 0; } + virtual uint8_t read_exp(offs_t offset) { return 0; } + virtual void write(uint8_t data) { } protected: + device_nes_control_port_interface(const machine_config &mconfig, device_t &device); + nes_control_port_device *m_port; }; @@ -72,7 +73,7 @@ protected: // device type definition -extern const device_type NES_CONTROL_PORT; +DECLARE_DEVICE_TYPE(NES_CONTROL_PORT, nes_control_port_device) //************************************************************************** @@ -99,4 +100,4 @@ SLOT_INTERFACE_EXTERN( fc_control_port2_devices ); SLOT_INTERFACE_EXTERN( fc_expansion_devices ); -#endif +#endif // MAME_BUS_NES_CTRL_CTRL_H diff --git a/src/devices/bus/nes_ctrl/fckeybrd.cpp b/src/devices/bus/nes_ctrl/fckeybrd.cpp index 27582ac1f76..bc8bfbe98de 100644 --- a/src/devices/bus/nes_ctrl/fckeybrd.cpp +++ b/src/devices/bus/nes_ctrl/fckeybrd.cpp @@ -13,7 +13,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type NES_FCKEYBOARD = device_creator; +DEFINE_DEVICE_TYPE(NES_FCKEYBOARD, nes_fckeybrd_device, "nes_fckeybrd", "Nintendo Family Computer Keyboard Component") static INPUT_PORTS_START( fc_keyboard ) @@ -146,7 +146,7 @@ machine_config_constructor nes_fckeybrd_device::device_mconfig_additions() const //------------------------------------------------- nes_fckeybrd_device::nes_fckeybrd_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, NES_FCKEYBOARD, "Nintendo Family Computer Keyboard Component", tag, owner, clock, "nes_fckeybrd", __FILE__) + : device_t(mconfig, NES_FCKEYBOARD, tag, owner, clock) , device_nes_control_port_interface(mconfig, *this) , m_cassette(*this, "tape") , m_kbd(*this, "FCKEY.%u", 0) diff --git a/src/devices/bus/nes_ctrl/fckeybrd.h b/src/devices/bus/nes_ctrl/fckeybrd.h index 73fc33cb980..5859a792ae6 100644 --- a/src/devices/bus/nes_ctrl/fckeybrd.h +++ b/src/devices/bus/nes_ctrl/fckeybrd.h @@ -6,15 +6,15 @@ **********************************************************************/ -#pragma once - -#ifndef __NES_FCKEYBRD__ -#define __NES_FCKEYBRD__ +#ifndef MAME_BUS_NES_CTRL_FCKEYBOARD_H +#define MAME_BUS_NES_CTRL_FCKEYBOARD_H +#pragma once #include "ctrl.h" #include "imagedev/cassette.h" + //************************************************************************** // TYPE DEFINITIONS //************************************************************************** @@ -47,7 +47,7 @@ private: // device type definition -extern const device_type NES_FCKEYBOARD; +DECLARE_DEVICE_TYPE(NES_FCKEYBOARD, nes_fckeybrd_device) -#endif +#endif // MAME_BUS_NES_CTRL_FCKEYBOARD_H diff --git a/src/devices/bus/nes_ctrl/ftrainer.cpp b/src/devices/bus/nes_ctrl/ftrainer.cpp index bb9b5ad0f9f..06f4aaf4f3c 100644 --- a/src/devices/bus/nes_ctrl/ftrainer.cpp +++ b/src/devices/bus/nes_ctrl/ftrainer.cpp @@ -13,7 +13,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type NES_FTRAINER = device_creator; +DEFINE_DEVICE_TYPE(NES_FTRAINER, nes_ftrainer_device, "nes_famtrain", "Bandai Family Trainer") static INPUT_PORTS_START( nes_joypad ) @@ -85,7 +85,7 @@ ioport_constructor nes_ftrainer_device::device_input_ports() const //------------------------------------------------- nes_ftrainer_device::nes_ftrainer_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, NES_FTRAINER, "Bandai Family Trainer", tag, owner, clock, "nes_famtrain", __FILE__) + : device_t(mconfig, NES_FTRAINER, tag, owner, clock) , device_nes_control_port_interface(mconfig, *this) , m_trainer(*this, "FT_COL.%u", 0) , m_row_scan(0) diff --git a/src/devices/bus/nes_ctrl/ftrainer.h b/src/devices/bus/nes_ctrl/ftrainer.h index 76999eea959..d72077c93a2 100644 --- a/src/devices/bus/nes_ctrl/ftrainer.h +++ b/src/devices/bus/nes_ctrl/ftrainer.h @@ -6,14 +6,14 @@ **********************************************************************/ -#pragma once - -#ifndef __NES_FTRAINER__ -#define __NES_FTRAINER__ +#ifndef MAME_BUS_NES_CTRL_FTRAINER_H +#define MAME_BUS_NES_CTRL_FTRAINER_H +#pragma once #include "ctrl.h" + //************************************************************************** // TYPE DEFINITIONS //************************************************************************** @@ -44,7 +44,7 @@ private: // device type definition -extern const device_type NES_FTRAINER; +DECLARE_DEVICE_TYPE(NES_FTRAINER, nes_ftrainer_device) -#endif +#endif // MAME_BUS_NES_CTRL_FTRAINER_H diff --git a/src/devices/bus/nes_ctrl/hori.cpp b/src/devices/bus/nes_ctrl/hori.cpp index 32c088e8954..8869e7df481 100644 --- a/src/devices/bus/nes_ctrl/hori.cpp +++ b/src/devices/bus/nes_ctrl/hori.cpp @@ -27,8 +27,8 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type NES_HORITWIN = device_creator; -const device_type NES_HORI4P = device_creator; +DEFINE_DEVICE_TYPE(NES_HORITWIN, nes_horitwin_device, "nes_horitwin", "FC Hori Twin Adapter") +DEFINE_DEVICE_TYPE(NES_HORI4P, nes_hori4p_device, "nes_hori4p", "FC Hori 4P Adapter") static INPUT_PORTS_START( nes_hori4p ) @@ -91,21 +91,21 @@ machine_config_constructor nes_hori4p_device::device_mconfig_additions() const //------------------------------------------------- nes_horitwin_device::nes_horitwin_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, NES_HORITWIN, "Hori Twin Adapter", tag, owner, clock, "nes_horitwin", __FILE__), - device_nes_control_port_interface(mconfig, *this), - m_port1(*this, "port1"), - m_port2(*this, "port2") + device_t(mconfig, NES_HORITWIN, tag, owner, clock), + device_nes_control_port_interface(mconfig, *this), + m_port1(*this, "port1"), + m_port2(*this, "port2") { } nes_hori4p_device::nes_hori4p_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, NES_HORI4P, "Hori 4P Adapter", tag, owner, clock, "nes_hori4p", __FILE__), - device_nes_control_port_interface(mconfig, *this), - m_port1(*this, "port1"), - m_port2(*this, "port2"), - m_port3(*this, "port3"), - m_port4(*this, "port4"), - m_cfg(*this, "CONFIG") + device_t(mconfig, NES_HORI4P, tag, owner, clock), + device_nes_control_port_interface(mconfig, *this), + m_port1(*this, "port1"), + m_port2(*this, "port2"), + m_port3(*this, "port3"), + m_port4(*this, "port4"), + m_cfg(*this, "CONFIG") { } diff --git a/src/devices/bus/nes_ctrl/hori.h b/src/devices/bus/nes_ctrl/hori.h index e490f232365..6fb7d9c1eee 100644 --- a/src/devices/bus/nes_ctrl/hori.h +++ b/src/devices/bus/nes_ctrl/hori.h @@ -6,14 +6,14 @@ **********************************************************************/ -#pragma once - -#ifndef __NES_HORI__ -#define __NES_HORI__ +#ifndef MAME_BUS_NES_CTRL_HORI_H +#define MAME_BUS_NES_CTRL_HORI_H +#pragma once #include "ctrl.h" + //************************************************************************** // TYPE DEFINITIONS //************************************************************************** @@ -31,7 +31,7 @@ public: protected: // device-level overrides - virtual void device_start() override {} + virtual void device_start() override { } virtual uint8_t read_exp(offs_t offset) override; virtual void write(uint8_t data) override; @@ -55,7 +55,7 @@ public: protected: // device-level overrides - virtual void device_start() override {} + virtual void device_start() override { } virtual uint8_t read_exp(offs_t offset) override; virtual void write(uint8_t data) override; @@ -70,8 +70,8 @@ private: // device type definition -extern const device_type NES_HORITWIN; -extern const device_type NES_HORI4P; +DECLARE_DEVICE_TYPE(NES_HORITWIN, nes_horitwin_device) +DECLARE_DEVICE_TYPE(NES_HORI4P, nes_hori4p_device) -#endif +#endif // MAME_BUS_NES_CTRL_HORI_H diff --git a/src/devices/bus/nes_ctrl/joypad.cpp b/src/devices/bus/nes_ctrl/joypad.cpp index a67bd9bb98a..ec3d54ebb7e 100644 --- a/src/devices/bus/nes_ctrl/joypad.cpp +++ b/src/devices/bus/nes_ctrl/joypad.cpp @@ -34,11 +34,11 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type NES_JOYPAD = device_creator; -const device_type NES_FCPAD_P2 = device_creator; -const device_type NES_CCPAD_LEFT = device_creator; -const device_type NES_CCPAD_RIGHT = device_creator; -const device_type NES_ARCSTICK = device_creator; +DEFINE_DEVICE_TYPE(NES_JOYPAD, nes_joypad_device, "nes_joypad", "Nintendo NES / FC Control Pad") +DEFINE_DEVICE_TYPE(NES_FCPAD_P2, nes_fcpad2_device, "nes_fcpad2", "Nintendo Family Computer P2 Pad") +DEFINE_DEVICE_TYPE(NES_CCPAD_LEFT, nes_ccpadl_device, "nes_ccpadl", "FC Crazy Climber Left Pad") +DEFINE_DEVICE_TYPE(NES_CCPAD_RIGHT, nes_ccpadr_device, "nes_ccpadr", "FC Crazy Climber Right Pad") +DEFINE_DEVICE_TYPE(NES_ARCSTICK, nes_arcstick_device, "nes_arcstick", "Nintendo Family Computer Arcade Stick") static INPUT_PORTS_START( nes_joypad ) @@ -174,39 +174,37 @@ machine_config_constructor nes_arcstick_device::device_mconfig_additions() const // nes_joypad_device - constructor //------------------------------------------------- -nes_joypad_device::nes_joypad_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_nes_control_port_interface(mconfig, *this), - m_joypad(*this, "JOYPAD"), m_latch(0) +nes_joypad_device::nes_joypad_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), + device_nes_control_port_interface(mconfig, *this), + m_joypad(*this, "JOYPAD"), m_latch(0) { } nes_joypad_device::nes_joypad_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, NES_JOYPAD, "Nintendo NES / FC Control Pad", tag, owner, clock, "nes_joypad", __FILE__), - device_nes_control_port_interface(mconfig, *this), - m_joypad(*this, "JOYPAD"), m_latch(0) + nes_joypad_device(mconfig, NES_JOYPAD, tag, owner, clock) { } nes_fcpad2_device::nes_fcpad2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - nes_joypad_device(mconfig, NES_FCPAD_P2, "Nintendo Family Computer P2 Pad", tag, owner, clock, "nes_fcpad2", __FILE__) + nes_joypad_device(mconfig, NES_FCPAD_P2, tag, owner, clock) { } nes_ccpadl_device::nes_ccpadl_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - nes_joypad_device(mconfig, NES_CCPAD_LEFT, "FC Crazy Climber Left Pad", tag, owner, clock, "nes_ccpadl", __FILE__) + nes_joypad_device(mconfig, NES_CCPAD_LEFT, tag, owner, clock) { } nes_ccpadr_device::nes_ccpadr_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - nes_joypad_device(mconfig, NES_CCPAD_RIGHT, "FC Crazy Climber Right Pad", tag, owner, clock, "nes_ccpadr", __FILE__) + nes_joypad_device(mconfig, NES_CCPAD_RIGHT, tag, owner, clock) { } nes_arcstick_device::nes_arcstick_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - nes_joypad_device(mconfig, NES_ARCSTICK, "Nintendo Family Computer Arcade Stick", tag, owner, clock, "nes_arcstick", __FILE__), - m_daisychain(*this, "subexp"), - m_cfg(*this, "CONFIG") + nes_joypad_device(mconfig, NES_ARCSTICK, tag, owner, clock), + m_daisychain(*this, "subexp"), + m_cfg(*this, "CONFIG") { } diff --git a/src/devices/bus/nes_ctrl/joypad.h b/src/devices/bus/nes_ctrl/joypad.h index c7accb6db8a..bfee068f81d 100644 --- a/src/devices/bus/nes_ctrl/joypad.h +++ b/src/devices/bus/nes_ctrl/joypad.h @@ -6,14 +6,14 @@ **********************************************************************/ -#pragma once - -#ifndef __NES_JOYPAD__ -#define __NES_JOYPAD__ +#ifndef MAME_BUS_NES_CTRL_JOYPAD_H +#define MAME_BUS_NES_CTRL_JOYPAD_H +#pragma once #include "ctrl.h" + //************************************************************************** // TYPE DEFINITIONS //************************************************************************** @@ -25,12 +25,13 @@ class nes_joypad_device : public device_t, { public: // construction/destruction - nes_joypad_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); nes_joypad_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual ioport_constructor device_input_ports() const override; protected: + nes_joypad_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -101,10 +102,10 @@ protected: // device type definition -extern const device_type NES_JOYPAD; -extern const device_type NES_FCPAD_P2; -extern const device_type NES_CCPAD_LEFT; -extern const device_type NES_CCPAD_RIGHT; -extern const device_type NES_ARCSTICK; +DECLARE_DEVICE_TYPE(NES_JOYPAD, nes_joypad_device) +DECLARE_DEVICE_TYPE(NES_FCPAD_P2, nes_fcpad2_device) +DECLARE_DEVICE_TYPE(NES_CCPAD_LEFT, nes_ccpadl_device) +DECLARE_DEVICE_TYPE(NES_CCPAD_RIGHT, nes_ccpadr_device) +DECLARE_DEVICE_TYPE(NES_ARCSTICK, nes_arcstick_device) -#endif +#endif // MAME_BUS_NES_CTRL_JOYPAD_H diff --git a/src/devices/bus/nes_ctrl/konamihs.cpp b/src/devices/bus/nes_ctrl/konamihs.cpp index 00b39b25b53..9522f5e3c2b 100644 --- a/src/devices/bus/nes_ctrl/konamihs.cpp +++ b/src/devices/bus/nes_ctrl/konamihs.cpp @@ -13,7 +13,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type NES_KONAMIHS = device_creator; +DEFINE_DEVICE_TYPE(NES_KONAMIHS, nes_konamihs_device, "nes_konamihs", "Konami Hyper Shot Controller") static INPUT_PORTS_START( nes_konamihs ) @@ -44,10 +44,12 @@ ioport_constructor nes_konamihs_device::device_input_ports() const //------------------------------------------------- nes_konamihs_device::nes_konamihs_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, NES_KONAMIHS, "Konami Hyper Shot Controller", tag, owner, clock, "nes_konamihs", __FILE__), - device_nes_control_port_interface(mconfig, *this), - m_ipt_p1(*this, "P1"), - m_ipt_p2(*this, "P2"), m_latch_p1(0), m_latch_p2(0) + device_t(mconfig, NES_KONAMIHS, tag, owner, clock), + device_nes_control_port_interface(mconfig, *this), + m_ipt_p1(*this, "P1"), + m_ipt_p2(*this, "P2"), + m_latch_p1(0), + m_latch_p2(0) { } diff --git a/src/devices/bus/nes_ctrl/konamihs.h b/src/devices/bus/nes_ctrl/konamihs.h index cc6156baa8b..4d8b480968b 100644 --- a/src/devices/bus/nes_ctrl/konamihs.h +++ b/src/devices/bus/nes_ctrl/konamihs.h @@ -6,14 +6,14 @@ **********************************************************************/ -#pragma once - -#ifndef __NES_KONAMIHS__ -#define __NES_KONAMIHS__ +#ifndef MAME_BUS_NES_CTRL_KONAMIHS_H +#define MAME_BUS_NES_CTRL_KONAMIHS_H +#pragma once #include "ctrl.h" + //************************************************************************** // TYPE DEFINITIONS //************************************************************************** @@ -43,6 +43,6 @@ protected: }; // device type definition -extern const device_type NES_KONAMIHS; +DECLARE_DEVICE_TYPE(NES_KONAMIHS, nes_konamihs_device) -#endif +#endif // MAME_BUS_NES_CTRL_KONAMIHS_H diff --git a/src/devices/bus/nes_ctrl/miracle.cpp b/src/devices/bus/nes_ctrl/miracle.cpp index c4dd099ede4..c24b39386ab 100644 --- a/src/devices/bus/nes_ctrl/miracle.cpp +++ b/src/devices/bus/nes_ctrl/miracle.cpp @@ -19,7 +19,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type NES_MIRACLE = device_creator; +DEFINE_DEVICE_TYPE(NES_MIRACLE, nes_miracle_device, "nes_miracle", "NES Miracle Piano Controller") MACHINE_CONFIG_FRAGMENT( nes_miracle ) @@ -60,12 +60,12 @@ void nes_miracle_device::device_timer(emu_timer &timer, device_timer_id id, int //------------------------------------------------- nes_miracle_device::nes_miracle_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, NES_MIRACLE, "Miracle Piano Controller", tag, owner, clock, "nes_miracle", __FILE__), - device_serial_interface(mconfig, *this), - device_nes_control_port_interface(mconfig, *this), - m_midiin(*this, "mdin"), - m_midiout(*this, "mdout"), strobe_timer(nullptr), m_strobe_on(0), m_midi_mode(0), m_sent_bits(0), m_strobe_clock(0), - m_data_sent(0), m_xmit_read(0), m_xmit_write(0), m_recv_read(0), m_recv_write(0), m_tx_busy(false), m_read_status(false), m_status_bit(false) + device_t(mconfig, NES_MIRACLE, tag, owner, clock), + device_serial_interface(mconfig, *this), + device_nes_control_port_interface(mconfig, *this), + m_midiin(*this, "mdin"), + m_midiout(*this, "mdout"), strobe_timer(nullptr), m_strobe_on(0), m_midi_mode(0), m_sent_bits(0), m_strobe_clock(0), + m_data_sent(0), m_xmit_read(0), m_xmit_write(0), m_recv_read(0), m_recv_write(0), m_tx_busy(false), m_read_status(false), m_status_bit(false) { } diff --git a/src/devices/bus/nes_ctrl/miracle.h b/src/devices/bus/nes_ctrl/miracle.h index 167f35b6118..5e8944ae828 100644 --- a/src/devices/bus/nes_ctrl/miracle.h +++ b/src/devices/bus/nes_ctrl/miracle.h @@ -6,15 +6,15 @@ **********************************************************************/ -#pragma once - -#ifndef __NES_MIRACLE__ -#define __NES_MIRACLE__ +#ifndef MAME_BUS_NES_CTRL_MIRACLE_H +#define MAME_BUS_NES_CTRL_MIRACLE_H +#pragma once #include "ctrl.h" #include "bus/midi/midi.h" + //************************************************************************** // TYPE DEFINITIONS //************************************************************************** @@ -26,33 +26,33 @@ class nes_miracle_device : public device_t, public device_nes_control_port_interface { public: - static const int XMIT_RING_SIZE = 64; - static const int RECV_RING_SIZE = 64; - // construction/destruction nes_miracle_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; virtual machine_config_constructor device_mconfig_additions() const override; - // serial overrides - virtual void rcv_complete() override; // Rx completed receiving byte - virtual void tra_complete() override; // Tx completed sending byte - virtual void tra_callback() override; // Tx send bit - - void xmit_char(uint8_t data); - required_device m_midiin, m_midiout; protected: + static constexpr int XMIT_RING_SIZE = 64; + static constexpr int RECV_RING_SIZE = 64; + static constexpr device_timer_id TIMER_STROBE_ON = 0; + // device-level overrides virtual void device_start() override; virtual void device_reset() override; + // serial overrides + virtual void rcv_complete() override; // Rx completed receiving byte + virtual void tra_complete() override; // Tx completed sending byte + virtual void tra_callback() override; // Tx send bit + + void xmit_char(uint8_t data); + virtual uint8_t read_bit0() override; virtual void write(uint8_t data) override; - static const device_timer_id TIMER_STROBE_ON = 0; emu_timer *strobe_timer; int m_strobe_on, m_midi_mode, m_sent_bits; @@ -65,6 +65,6 @@ protected: }; // device type definition -extern const device_type NES_MIRACLE; +DECLARE_DEVICE_TYPE(NES_MIRACLE, nes_miracle_device) -#endif +#endif // MAME_BUS_NES_CTRL_MIRACLE_H diff --git a/src/devices/bus/nes_ctrl/mjpanel.cpp b/src/devices/bus/nes_ctrl/mjpanel.cpp index fded1549ca5..e667487dac5 100644 --- a/src/devices/bus/nes_ctrl/mjpanel.cpp +++ b/src/devices/bus/nes_ctrl/mjpanel.cpp @@ -13,7 +13,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type NES_MJPANEL = device_creator; +DEFINE_DEVICE_TYPE(NES_MJPANEL, nes_mjpanel_device, "nes_mjpanel", "Famicom Mahjong Panel") static INPUT_PORTS_START( nes_mjpanel ) @@ -71,7 +71,7 @@ ioport_constructor nes_mjpanel_device::device_input_ports() const //------------------------------------------------- nes_mjpanel_device::nes_mjpanel_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, NES_MJPANEL, "Famicom Mahjong Panel", tag, owner, clock, "nes_mjpanel", __FILE__) + : device_t(mconfig, NES_MJPANEL, tag, owner, clock) , device_nes_control_port_interface(mconfig, *this) , m_panel(*this, "MJPANEL.%u", 0) , m_latch(0) diff --git a/src/devices/bus/nes_ctrl/mjpanel.h b/src/devices/bus/nes_ctrl/mjpanel.h index 7580ef400b2..1a18bf0b19c 100644 --- a/src/devices/bus/nes_ctrl/mjpanel.h +++ b/src/devices/bus/nes_ctrl/mjpanel.h @@ -6,14 +6,14 @@ **********************************************************************/ -#pragma once - -#ifndef __NES_MJPANEL__ -#define __NES_MJPANEL__ +#ifndef MAME_BUS_NES_CTRL_MJPANEL_H +#define MAME_BUS_NES_CTRL_MJPANEL_H +#pragma once #include "ctrl.h" + //************************************************************************** // TYPE DEFINITIONS //************************************************************************** @@ -44,7 +44,7 @@ private: // device type definition -extern const device_type NES_MJPANEL; +DECLARE_DEVICE_TYPE(NES_MJPANEL, nes_mjpanel_device) -#endif +#endif // MAME_BUS_NES_CTRL_MJPANEL_H diff --git a/src/devices/bus/nes_ctrl/pachinko.cpp b/src/devices/bus/nes_ctrl/pachinko.cpp index 9a82d894b6f..d8aa81e3091 100644 --- a/src/devices/bus/nes_ctrl/pachinko.cpp +++ b/src/devices/bus/nes_ctrl/pachinko.cpp @@ -13,7 +13,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type NES_PACHINKO = device_creator; +DEFINE_DEVICE_TYPE(NES_PACHINKO, nes_pachinko_device, "nes_pachinko", "Famicom Pachinko Controller") static INPUT_PORTS_START( nes_pachinko ) @@ -49,10 +49,11 @@ ioport_constructor nes_pachinko_device::device_input_ports() const //------------------------------------------------- nes_pachinko_device::nes_pachinko_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, NES_PACHINKO, "Famicom Pachinko Controller", tag, owner, clock, "nes_pachinko", __FILE__), - device_nes_control_port_interface(mconfig, *this), - m_joypad(*this, "JOYPAD"), - m_trigger(*this, "TRIGGER"), m_latch(0) + device_t(mconfig, NES_PACHINKO, tag, owner, clock), + device_nes_control_port_interface(mconfig, *this), + m_joypad(*this, "JOYPAD"), + m_trigger(*this, "TRIGGER"), + m_latch(0) { } diff --git a/src/devices/bus/nes_ctrl/pachinko.h b/src/devices/bus/nes_ctrl/pachinko.h index 2f982108bb2..f4f7feae596 100644 --- a/src/devices/bus/nes_ctrl/pachinko.h +++ b/src/devices/bus/nes_ctrl/pachinko.h @@ -6,14 +6,14 @@ **********************************************************************/ -#pragma once - -#ifndef __NES_PACHINKO__ -#define __NES_PACHINKO__ +#ifndef MAME_BUS_NES_CTRL_PACHINKO_H +#define MAME_BUS_NES_CTRL_PACHINKO_H +#pragma once #include "ctrl.h" + //************************************************************************** // TYPE DEFINITIONS //************************************************************************** @@ -43,6 +43,6 @@ protected: }; // device type definition -extern const device_type NES_PACHINKO; +DECLARE_DEVICE_TYPE(NES_PACHINKO, nes_pachinko_device) -#endif +#endif // MAME_BUS_NES_CTRL_PACHINKO_H diff --git a/src/devices/bus/nes_ctrl/partytap.cpp b/src/devices/bus/nes_ctrl/partytap.cpp index 6a0b3c9880c..b9029ab2f3a 100644 --- a/src/devices/bus/nes_ctrl/partytap.cpp +++ b/src/devices/bus/nes_ctrl/partytap.cpp @@ -13,7 +13,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type NES_PARTYTAP = device_creator; +DEFINE_DEVICE_TYPE(NES_PARTYTAP, nes_partytap_device, "nes_partytap", "Yonezawa Party Tap Controller") static INPUT_PORTS_START( nes_partytap ) @@ -45,9 +45,11 @@ ioport_constructor nes_partytap_device::device_input_ports() const //------------------------------------------------- nes_partytap_device::nes_partytap_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, NES_PARTYTAP, "Yonezawa Party Tap Controller", tag, owner, clock, "nes_partytap", __FILE__), - device_nes_control_port_interface(mconfig, *this), - m_inputs(*this, "INPUTS"), m_mode(0), m_latch(0) + device_t(mconfig, NES_PARTYTAP, tag, owner, clock), + device_nes_control_port_interface(mconfig, *this), + m_inputs(*this, "INPUTS"), + m_mode(0), + m_latch(0) { } diff --git a/src/devices/bus/nes_ctrl/partytap.h b/src/devices/bus/nes_ctrl/partytap.h index f2f3257cf2a..c3da2278aed 100644 --- a/src/devices/bus/nes_ctrl/partytap.h +++ b/src/devices/bus/nes_ctrl/partytap.h @@ -6,14 +6,14 @@ **********************************************************************/ -#pragma once - -#ifndef __NES_PARTYTAP__ -#define __NES_PARTYTAP__ +#ifndef MAME_BUS_NES_CTRL_PARTYTAP_H +#define MAME_BUS_NES_CTRL_PARTYTAP_H +#pragma once #include "ctrl.h" + //************************************************************************** // TYPE DEFINITIONS //************************************************************************** @@ -43,6 +43,6 @@ protected: }; // device type definition -extern const device_type NES_PARTYTAP; +DECLARE_DEVICE_TYPE(NES_PARTYTAP, nes_partytap_device) -#endif +#endif // MAME_BUS_NES_CTRL_PARTYTAP_H diff --git a/src/devices/bus/nes_ctrl/powerpad.cpp b/src/devices/bus/nes_ctrl/powerpad.cpp index 4db046c029c..40a31ba89bc 100644 --- a/src/devices/bus/nes_ctrl/powerpad.cpp +++ b/src/devices/bus/nes_ctrl/powerpad.cpp @@ -13,7 +13,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type NES_POWERPAD = device_creator; +DEFINE_DEVICE_TYPE(NES_POWERPAD, nes_powerpad_device, "nes_powerpad", "Bandai Power Pad") static INPUT_PORTS_START( nes_powerpad ) @@ -79,10 +79,10 @@ ioport_constructor nes_powerpad_device::device_input_ports() const //------------------------------------------------- nes_powerpad_device::nes_powerpad_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, NES_POWERPAD, "Bandai Power Pad", tag, owner, clock, "nes_powerpad", __FILE__), - device_nes_control_port_interface(mconfig, *this), - m_ipt1(*this, "POWERPAD1"), - m_ipt2(*this, "POWERPAD2") + device_t(mconfig, NES_POWERPAD, tag, owner, clock), + device_nes_control_port_interface(mconfig, *this), + m_ipt1(*this, "POWERPAD1"), + m_ipt2(*this, "POWERPAD2") { } diff --git a/src/devices/bus/nes_ctrl/powerpad.h b/src/devices/bus/nes_ctrl/powerpad.h index 3204f8450fe..fb4de2517e9 100644 --- a/src/devices/bus/nes_ctrl/powerpad.h +++ b/src/devices/bus/nes_ctrl/powerpad.h @@ -6,14 +6,14 @@ **********************************************************************/ -#pragma once - -#ifndef __NES_POWERPAD__ -#define __NES_POWERPAD__ +#ifndef MAME_BUS_NES_CTRL_POWERPAD_H +#define MAME_BUS_NES_CTRL_POWERPAD_H +#pragma once #include "ctrl.h" + //************************************************************************** // TYPE DEFINITIONS //************************************************************************** @@ -48,4 +48,4 @@ private: extern const device_type NES_POWERPAD; -#endif +#endif // MAME_BUS_NES_CTRL_POWERPAD_H diff --git a/src/devices/bus/nes_ctrl/suborkey.cpp b/src/devices/bus/nes_ctrl/suborkey.cpp index a19b215bb85..ce752762913 100644 --- a/src/devices/bus/nes_ctrl/suborkey.cpp +++ b/src/devices/bus/nes_ctrl/suborkey.cpp @@ -13,7 +13,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type NES_SUBORKEYBOARD = device_creator; +DEFINE_DEVICE_TYPE(NES_SUBORKEYBOARD, nes_suborkey_device, "nes_suborkey", "Subor FC Keyboard") static INPUT_PORTS_START( fc_suborkey ) @@ -162,7 +162,7 @@ ioport_constructor nes_suborkey_device::device_input_ports() const //------------------------------------------------- nes_suborkey_device::nes_suborkey_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, NES_SUBORKEYBOARD, "Subor FC Keyboard", tag, owner, clock, "nes_suborkey", __FILE__) + : device_t(mconfig, NES_SUBORKEYBOARD, tag, owner, clock) , device_nes_control_port_interface(mconfig, *this) , m_kbd(*this, "SUBOR.%u", 0) , m_fck_scan(0) diff --git a/src/devices/bus/nes_ctrl/suborkey.h b/src/devices/bus/nes_ctrl/suborkey.h index c8150ddb512..a25324142d6 100644 --- a/src/devices/bus/nes_ctrl/suborkey.h +++ b/src/devices/bus/nes_ctrl/suborkey.h @@ -6,14 +6,14 @@ **********************************************************************/ -#pragma once - -#ifndef __NES_SUBORKEY__ -#define __NES_SUBORKEY__ +#ifndef MAME_BUS_NES_CTRL_SUBORKEY_H +#define MAME_BUS_NES_CTRL_SUBORKEY_H +#pragma once #include "ctrl.h" + //************************************************************************** // TYPE DEFINITIONS //************************************************************************** @@ -44,7 +44,6 @@ private: // device type definition -extern const device_type NES_SUBORKEYBOARD; - +DECLARE_DEVICE_TYPE(NES_SUBORKEYBOARD, nes_suborkey_device) -#endif +#endif // MAME_BUS_NES_CTRL_SUBORKEY_H diff --git a/src/devices/bus/nes_ctrl/zapper.cpp b/src/devices/bus/nes_ctrl/zapper.cpp index a1c8efe32dc..0996c893f0f 100644 --- a/src/devices/bus/nes_ctrl/zapper.cpp +++ b/src/devices/bus/nes_ctrl/zapper.cpp @@ -13,7 +13,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type NES_ZAPPER = device_creator; +DEFINE_DEVICE_TYPE(NES_ZAPPER, nes_zapper_device, "nes_zapper", "Nintendo Zapper Lightgun") static INPUT_PORTS_START( nes_zapper ) @@ -46,11 +46,11 @@ ioport_constructor nes_zapper_device::device_input_ports() const //------------------------------------------------- nes_zapper_device::nes_zapper_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, NES_ZAPPER, "Nintendo Zapper Lightgun", tag, owner, clock, "nes_zapper", __FILE__), - device_nes_control_port_interface(mconfig, *this), - m_lightx(*this, "ZAPPER_X"), - m_lighty(*this, "ZAPPER_Y"), - m_trigger(*this, "ZAPPER_T") + device_t(mconfig, NES_ZAPPER, tag, owner, clock), + device_nes_control_port_interface(mconfig, *this), + m_lightx(*this, "ZAPPER_X"), + m_lighty(*this, "ZAPPER_Y"), + m_trigger(*this, "ZAPPER_T") { } diff --git a/src/devices/bus/nes_ctrl/zapper.h b/src/devices/bus/nes_ctrl/zapper.h index 79826d69637..5ae68fd0a6e 100644 --- a/src/devices/bus/nes_ctrl/zapper.h +++ b/src/devices/bus/nes_ctrl/zapper.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_NES_CTRL_ZAPPER +#define MAME_BUS_NES_CTRL_ZAPPER -#ifndef __NES_ZAPPER__ -#define __NES_ZAPPER__ +#pragma once #include "ctrl.h" @@ -45,7 +45,6 @@ private: // device type definition -extern const device_type NES_ZAPPER; - +DECLARE_DEVICE_TYPE(NES_ZAPPER, nes_zapper_device) -#endif +#endif // MAME_BUS_NES_CTRL_ZAPPER diff --git a/src/devices/bus/newbrain/eim.cpp b/src/devices/bus/newbrain/eim.cpp index 906b8d4d144..e1a70e6f682 100644 --- a/src/devices/bus/newbrain/eim.cpp +++ b/src/devices/bus/newbrain/eim.cpp @@ -37,7 +37,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type NEWBRAIN_EIM = device_creator; +DEFINE_DEVICE_TYPE(NEWBRAIN_EIM, newbrain_eim_device, "newbrain_eim", "NewBrain EIM") //------------------------------------------------- @@ -57,7 +57,7 @@ ROM_END // rom_region - device-specific ROM region //------------------------------------------------- -const tiny_rom_entry *newbrain_eim_t::device_rom_region() const +const tiny_rom_entry *newbrain_eim_device::device_rom_region() const { return ROM_NAME( newbrain_eim ); } @@ -72,24 +72,24 @@ static MACHINE_CONFIG_FRAGMENT( newbrain_eim ) MCFG_DEVICE_ADD(Z80CTC_TAG, Z80CTC, XTAL_16MHz/8) MCFG_Z80CTC_ZC0_CB(DEVWRITELINE(MC6850_TAG, acia6850_device, write_rxc)) MCFG_Z80CTC_ZC1_CB(DEVWRITELINE(MC6850_TAG, acia6850_device, write_txc)) - MCFG_Z80CTC_ZC2_CB(WRITELINE(newbrain_eim_t, ctc_z2_w)) + MCFG_Z80CTC_ZC2_CB(WRITELINE(newbrain_eim_device, ctc_z2_w)) - MCFG_TIMER_DRIVER_ADD_PERIODIC("z80ctc_c2", newbrain_eim_t, ctc_c2_tick, attotime::from_hz(XTAL_16MHz/4/13)) + MCFG_TIMER_DRIVER_ADD_PERIODIC("z80ctc_c2", newbrain_eim_device, ctc_c2_tick, attotime::from_hz(XTAL_16MHz/4/13)) MCFG_DEVICE_ADD(ADC0809_TAG, ADC0808, 500000) - MCFG_ADC0808_OUT_EOC_CB(WRITELINE(newbrain_eim_t, adc_eoc_w)) - MCFG_ADC0808_IN_VREF_POS_CB(newbrain_eim_t, adc_vref_pos_r) - MCFG_ADC0808_IN_VREF_NEG_CB(newbrain_eim_t, adc_vref_neg_r) - MCFG_ADC0808_IN_IN_0_CB(newbrain_eim_t, adc_input_r) - MCFG_ADC0808_IN_IN_1_CB(newbrain_eim_t, adc_input_r) - MCFG_ADC0808_IN_IN_2_CB(newbrain_eim_t, adc_input_r) - MCFG_ADC0808_IN_IN_3_CB(newbrain_eim_t, adc_input_r) - MCFG_ADC0808_IN_IN_4_CB(newbrain_eim_t, adc_input_r) - MCFG_ADC0808_IN_IN_5_CB(newbrain_eim_t, adc_input_r) - MCFG_ADC0808_IN_IN_6_CB(newbrain_eim_t, adc_input_r) - MCFG_ADC0808_IN_IN_7_CB(newbrain_eim_t, adc_input_r) + MCFG_ADC0808_OUT_EOC_CB(WRITELINE(newbrain_eim_device, adc_eoc_w)) + MCFG_ADC0808_IN_VREF_POS_CB(newbrain_eim_device, adc_vref_pos_r) + MCFG_ADC0808_IN_VREF_NEG_CB(newbrain_eim_device, adc_vref_neg_r) + MCFG_ADC0808_IN_IN_0_CB(newbrain_eim_device, adc_input_r) + MCFG_ADC0808_IN_IN_1_CB(newbrain_eim_device, adc_input_r) + MCFG_ADC0808_IN_IN_2_CB(newbrain_eim_device, adc_input_r) + MCFG_ADC0808_IN_IN_3_CB(newbrain_eim_device, adc_input_r) + MCFG_ADC0808_IN_IN_4_CB(newbrain_eim_device, adc_input_r) + MCFG_ADC0808_IN_IN_5_CB(newbrain_eim_device, adc_input_r) + MCFG_ADC0808_IN_IN_6_CB(newbrain_eim_device, adc_input_r) + MCFG_ADC0808_IN_IN_7_CB(newbrain_eim_device, adc_input_r) MCFG_DEVICE_ADD(MC6850_TAG, ACIA6850, 0) - MCFG_ACIA6850_IRQ_HANDLER(WRITELINE(newbrain_eim_t, acia_interrupt)) + MCFG_ACIA6850_IRQ_HANDLER(WRITELINE(newbrain_eim_device, acia_interrupt)) MCFG_RS232_PORT_ADD(RS232_TAG, default_rs232_devices, nullptr) MCFG_NEWBRAIN_EXPANSION_SLOT_ADD(NEWBRAIN_EXPANSION_SLOT_TAG, XTAL_16MHz/8, newbrain_expansion_cards, "fdc") @@ -105,7 +105,7 @@ MACHINE_CONFIG_END // machine configurations //------------------------------------------------- -machine_config_constructor newbrain_eim_t::device_mconfig_additions() const +machine_config_constructor newbrain_eim_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( newbrain_eim ); } @@ -117,11 +117,11 @@ machine_config_constructor newbrain_eim_t::device_mconfig_additions() const //************************************************************************** //------------------------------------------------- -// newbrain_eim_t - constructor +// newbrain_eim_device - constructor //------------------------------------------------- -newbrain_eim_t::newbrain_eim_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, NEWBRAIN_EIM, "Newbrain EIM", tag, owner, clock, "newbrain_eim", __FILE__), +newbrain_eim_device::newbrain_eim_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, NEWBRAIN_EIM, tag, owner, clock), device_newbrain_expansion_slot_interface(mconfig, *this), m_ctc(*this, Z80CTC_TAG), m_acia(*this, MC6850_TAG), @@ -136,7 +136,7 @@ newbrain_eim_t::newbrain_eim_t(const machine_config &mconfig, const char *tag, d // device_start - device-specific startup //------------------------------------------------- -void newbrain_eim_t::device_start() +void newbrain_eim_device::device_start() { // state saving save_item(NAME(m_aciaint)); @@ -148,7 +148,7 @@ void newbrain_eim_t::device_start() // device_reset - device-specific reset //------------------------------------------------- -void newbrain_eim_t::device_reset() +void newbrain_eim_device::device_reset() { } @@ -157,7 +157,7 @@ void newbrain_eim_t::device_reset() // mreq_r - memory request read //------------------------------------------------- -uint8_t newbrain_eim_t::mreq_r(address_space &space, offs_t offset, uint8_t data, bool &romov, int &exrm, bool &raminh) +uint8_t newbrain_eim_device::mreq_r(address_space &space, offs_t offset, uint8_t data, bool &romov, int &exrm, bool &raminh) { return m_exp->mreq_r(space, offset, data, romov, exrm, raminh); } @@ -167,7 +167,7 @@ uint8_t newbrain_eim_t::mreq_r(address_space &space, offs_t offset, uint8_t data // mreq_w - memory request write //------------------------------------------------- -void newbrain_eim_t::mreq_w(address_space &space, offs_t offset, uint8_t data, bool &romov, int &exrm, bool &raminh) +void newbrain_eim_device::mreq_w(address_space &space, offs_t offset, uint8_t data, bool &romov, int &exrm, bool &raminh) { m_exp->mreq_w(space, offset, data, romov, exrm, raminh); } @@ -177,7 +177,7 @@ void newbrain_eim_t::mreq_w(address_space &space, offs_t offset, uint8_t data, b // iorq_r - I/O request read //------------------------------------------------- -uint8_t newbrain_eim_t::iorq_r(address_space &space, offs_t offset, uint8_t data, bool &prtov) +uint8_t newbrain_eim_device::iorq_r(address_space &space, offs_t offset, uint8_t data, bool &prtov) { return m_exp->iorq_r(space, offset, data, prtov); } @@ -187,7 +187,7 @@ uint8_t newbrain_eim_t::iorq_r(address_space &space, offs_t offset, uint8_t data // iorq_w - I/O request write //------------------------------------------------- -void newbrain_eim_t::iorq_w(address_space &space, offs_t offset, uint8_t data, bool &prtov) +void newbrain_eim_device::iorq_w(address_space &space, offs_t offset, uint8_t data, bool &prtov) { m_exp->iorq_w(space, offset, data, prtov); } @@ -197,7 +197,7 @@ void newbrain_eim_t::iorq_w(address_space &space, offs_t offset, uint8_t data, b // anout_r - //------------------------------------------------- -READ8_MEMBER( newbrain_eim_t::anout_r ) +READ8_MEMBER( newbrain_eim_device::anout_r ) { return 0xff; } @@ -207,7 +207,7 @@ READ8_MEMBER( newbrain_eim_t::anout_r ) // anout_w - //------------------------------------------------- -WRITE8_MEMBER( newbrain_eim_t::anout_w ) +WRITE8_MEMBER( newbrain_eim_device::anout_w ) { } @@ -216,7 +216,7 @@ WRITE8_MEMBER( newbrain_eim_t::anout_w ) // anin_r - //------------------------------------------------- -READ8_MEMBER( newbrain_eim_t::anin_r ) +READ8_MEMBER( newbrain_eim_device::anin_r ) { return 0; } @@ -226,7 +226,7 @@ READ8_MEMBER( newbrain_eim_t::anin_r ) // anio_w - //------------------------------------------------- -WRITE8_MEMBER( newbrain_eim_t::anio_w ) +WRITE8_MEMBER( newbrain_eim_device::anio_w ) { } @@ -235,7 +235,7 @@ WRITE8_MEMBER( newbrain_eim_t::anio_w ) // adc_eoc_w - //------------------------------------------------- -WRITE_LINE_MEMBER( newbrain_eim_t::adc_eoc_w ) +WRITE_LINE_MEMBER( newbrain_eim_device::adc_eoc_w ) { m_anint = state; } @@ -245,7 +245,7 @@ WRITE_LINE_MEMBER( newbrain_eim_t::adc_eoc_w ) // adc_vref_pos_r - //------------------------------------------------- -ADC0808_ANALOG_READ_CB( newbrain_eim_t::adc_vref_pos_r ) +ADC0808_ANALOG_READ_CB( newbrain_eim_device::adc_vref_pos_r ) { return 5.0; } @@ -255,7 +255,7 @@ ADC0808_ANALOG_READ_CB( newbrain_eim_t::adc_vref_pos_r ) // adc_vref_neg_r - //------------------------------------------------- -ADC0808_ANALOG_READ_CB( newbrain_eim_t::adc_vref_neg_r ) +ADC0808_ANALOG_READ_CB( newbrain_eim_device::adc_vref_neg_r ) { return 0.0; } @@ -265,7 +265,7 @@ ADC0808_ANALOG_READ_CB( newbrain_eim_t::adc_vref_neg_r ) // adc_input_r - //------------------------------------------------- -ADC0808_ANALOG_READ_CB( newbrain_eim_t::adc_input_r ) +ADC0808_ANALOG_READ_CB( newbrain_eim_device::adc_input_r ) { return 0.0; } @@ -275,7 +275,7 @@ ADC0808_ANALOG_READ_CB( newbrain_eim_t::adc_input_r ) // acia_interrupt - //------------------------------------------------- -WRITE_LINE_MEMBER( newbrain_eim_t::acia_interrupt ) +WRITE_LINE_MEMBER( newbrain_eim_device::acia_interrupt ) { m_aciaint = state; } @@ -285,7 +285,7 @@ WRITE_LINE_MEMBER( newbrain_eim_t::acia_interrupt ) // ctc_z2_w - //------------------------------------------------- -WRITE_LINE_MEMBER( newbrain_eim_t::ctc_z2_w ) +WRITE_LINE_MEMBER( newbrain_eim_device::ctc_z2_w ) { // connected to CTC channel 0/1 clock inputs m_ctc->trg0(state); @@ -297,7 +297,7 @@ WRITE_LINE_MEMBER( newbrain_eim_t::ctc_z2_w ) // adc_input_r - //------------------------------------------------- -TIMER_DEVICE_CALLBACK_MEMBER(newbrain_eim_t::ctc_c2_tick) +TIMER_DEVICE_CALLBACK_MEMBER(newbrain_eim_device::ctc_c2_tick) { m_ctc->trg2(1); m_ctc->trg2(0); diff --git a/src/devices/bus/newbrain/eim.h b/src/devices/bus/newbrain/eim.h index 58024f60cf4..a2406303d9c 100644 --- a/src/devices/bus/newbrain/eim.h +++ b/src/devices/bus/newbrain/eim.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_NEWBRAIN_EIM_H +#define MAME_BUS_NEWBRAIN_EIM_H -#ifndef __NEWBRAIN_EIM__ -#define __NEWBRAIN_EIM__ +#pragma once #include "exp.h" #include "bus/rs232/rs232.h" @@ -24,14 +24,13 @@ // TYPE DEFINITIONS //************************************************************************** -// ======================> newbrain_eim_t +// ======================> newbrain_eim_device -class newbrain_eim_t : public device_t, - public device_newbrain_expansion_slot_interface +class newbrain_eim_device : public device_t, public device_newbrain_expansion_slot_interface { public: // construction/destruction - newbrain_eim_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + newbrain_eim_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual const tiny_rom_entry *device_rom_region() const override; @@ -65,7 +64,7 @@ protected: private: required_device m_ctc; required_device m_acia; - required_device m_exp; + required_device m_exp; required_memory_region m_rom; optional_shared_ptr m_ram; @@ -76,7 +75,6 @@ private: // device type definition extern const device_type NEWBRAIN_EIM; +DECLARE_DEVICE_TYPE(NEWBRAIN_EIM, newbrain_eim_device) - - -#endif +#endif // MAME_BUS_NEWBRAIN_EIM_H diff --git a/src/devices/bus/newbrain/exp.cpp b/src/devices/bus/newbrain/exp.cpp index 9e8c989e982..7a27758764a 100644 --- a/src/devices/bus/newbrain/exp.cpp +++ b/src/devices/bus/newbrain/exp.cpp @@ -15,7 +15,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type NEWBRAIN_EXPANSION_SLOT = device_creator; +DEFINE_DEVICE_TYPE(NEWBRAIN_EXPANSION_SLOT, newbrain_expansion_slot_device, "newbrain_expansion_slot", "NewBrain expansion port") @@ -30,7 +30,7 @@ const device_type NEWBRAIN_EXPANSION_SLOT = device_creator(device.owner()); + m_slot = dynamic_cast(device.owner()); } @@ -40,11 +40,11 @@ device_newbrain_expansion_slot_interface::device_newbrain_expansion_slot_interfa //************************************************************************** //------------------------------------------------- -// newbrain_expansion_slot_t - constructor +// newbrain_expansion_slot_device - constructor //------------------------------------------------- -newbrain_expansion_slot_t::newbrain_expansion_slot_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, NEWBRAIN_EXPANSION_SLOT, "NewBrain expansion port", tag, owner, clock, "newbrain_expansion_slot", __FILE__), +newbrain_expansion_slot_device::newbrain_expansion_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, NEWBRAIN_EXPANSION_SLOT, tag, owner, clock), device_slot_interface(mconfig, *this), m_card(nullptr) { } @@ -54,7 +54,7 @@ newbrain_expansion_slot_t::newbrain_expansion_slot_t(const machine_config &mconf // device_start - device-specific startup //------------------------------------------------- -void newbrain_expansion_slot_t::device_start() +void newbrain_expansion_slot_device::device_start() { m_card = dynamic_cast(get_card_device()); } @@ -64,7 +64,7 @@ void newbrain_expansion_slot_t::device_start() // device_reset - device-specific reset //------------------------------------------------- -void newbrain_expansion_slot_t::device_reset() +void newbrain_expansion_slot_device::device_reset() { if (m_card != nullptr) { @@ -77,7 +77,7 @@ void newbrain_expansion_slot_t::device_reset() // mreq_r - memory request read //------------------------------------------------- -uint8_t newbrain_expansion_slot_t::mreq_r(address_space &space, offs_t offset, uint8_t data, bool &romov, int &exrm, bool &raminh) +uint8_t newbrain_expansion_slot_device::mreq_r(address_space &space, offs_t offset, uint8_t data, bool &romov, int &exrm, bool &raminh) { if (m_card != nullptr) { @@ -92,7 +92,7 @@ uint8_t newbrain_expansion_slot_t::mreq_r(address_space &space, offs_t offset, u // mreq_w - memory request write //------------------------------------------------- -void newbrain_expansion_slot_t::mreq_w(address_space &space, offs_t offset, uint8_t data, bool &romov, int &exrm, bool &raminh) +void newbrain_expansion_slot_device::mreq_w(address_space &space, offs_t offset, uint8_t data, bool &romov, int &exrm, bool &raminh) { if (m_card != nullptr) { @@ -105,7 +105,7 @@ void newbrain_expansion_slot_t::mreq_w(address_space &space, offs_t offset, uint // iorq_r - I/O request read //------------------------------------------------- -uint8_t newbrain_expansion_slot_t::iorq_r(address_space &space, offs_t offset, uint8_t data, bool &prtov) +uint8_t newbrain_expansion_slot_device::iorq_r(address_space &space, offs_t offset, uint8_t data, bool &prtov) { if (m_card != nullptr) { @@ -120,7 +120,7 @@ uint8_t newbrain_expansion_slot_t::iorq_r(address_space &space, offs_t offset, u // iorq_w - I/O request write //------------------------------------------------- -void newbrain_expansion_slot_t::iorq_w(address_space &space, offs_t offset, uint8_t data, bool &prtov) +void newbrain_expansion_slot_device::iorq_w(address_space &space, offs_t offset, uint8_t data, bool &prtov) { if (m_card != nullptr) { diff --git a/src/devices/bus/newbrain/exp.h b/src/devices/bus/newbrain/exp.h index 0c07190bdf0..219c819d575 100644 --- a/src/devices/bus/newbrain/exp.h +++ b/src/devices/bus/newbrain/exp.h @@ -34,10 +34,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_NEWBRAIN_EXP_H +#define MAME_BUS_NEWBRAIN_EXP_H -#ifndef __NEWBRAIN_EXPANSION_SLOT__ -#define __NEWBRAIN_EXPANSION_SLOT__ +#pragma once @@ -64,17 +64,16 @@ // TYPE DEFINITIONS //************************************************************************** -// ======================> newbrain_expansion_slot_t +// ======================> newbrain_expansion_slot_device class device_newbrain_expansion_slot_interface; -class newbrain_expansion_slot_t : public device_t, +class newbrain_expansion_slot_device : public device_t, public device_slot_interface { public: // construction/destruction - newbrain_expansion_slot_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual ~newbrain_expansion_slot_t() { } + newbrain_expansion_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // computer interface uint8_t mreq_r(address_space &space, offs_t offset, uint8_t data, bool &romov, int &exrm, bool &raminh); @@ -98,29 +97,28 @@ protected: class device_newbrain_expansion_slot_interface : public device_slot_card_interface { public: - // construction/destruction - device_newbrain_expansion_slot_interface(const machine_config &mconfig, device_t &device); - virtual ~device_newbrain_expansion_slot_interface() { } - // memory access - virtual uint8_t mreq_r(address_space &space, offs_t offset, uint8_t data, bool &romov, int &exrm, bool &raminh) { return data; }; - virtual void mreq_w(address_space &space, offs_t offset, uint8_t data, bool &romov, int &exrm, bool &raminh) { }; + virtual uint8_t mreq_r(address_space &space, offs_t offset, uint8_t data, bool &romov, int &exrm, bool &raminh) { return data; } + virtual void mreq_w(address_space &space, offs_t offset, uint8_t data, bool &romov, int &exrm, bool &raminh) { } // I/O access - virtual uint8_t iorq_r(address_space &space, offs_t offset, uint8_t data, bool &prtov) { return data; }; - virtual void iorq_w(address_space &space, offs_t offset, uint8_t data, bool &prtov) { }; + virtual uint8_t iorq_r(address_space &space, offs_t offset, uint8_t data, bool &prtov) { return data; } + virtual void iorq_w(address_space &space, offs_t offset, uint8_t data, bool &prtov) { } protected: - newbrain_expansion_slot_t *m_slot; + // construction/destruction + device_newbrain_expansion_slot_interface(const machine_config &mconfig, device_t &device); + + newbrain_expansion_slot_device *m_slot; }; // device type definition -extern const device_type NEWBRAIN_EXPANSION_SLOT; +DECLARE_DEVICE_TYPE(NEWBRAIN_EXPANSION_SLOT, newbrain_expansion_slot_device) SLOT_INTERFACE_EXTERN( newbrain_expansion_cards ); -#endif +#endif // MAME_BUS_NEWBRAIN_EXP_H diff --git a/src/devices/bus/newbrain/fdc.cpp b/src/devices/bus/newbrain/fdc.cpp index b63d7ddffa8..4618588353a 100644 --- a/src/devices/bus/newbrain/fdc.cpp +++ b/src/devices/bus/newbrain/fdc.cpp @@ -35,7 +35,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type NEWBRAIN_FDC = device_creator; +DEFINE_DEVICE_TYPE(NEWBRAIN_FDC, newbrain_fdc_device, "newbrain_fdc", "NewBrain FDC") //------------------------------------------------- @@ -59,7 +59,7 @@ ROM_END // rom_region - device-specific ROM region //------------------------------------------------- -const tiny_rom_entry *newbrain_fdc_t::device_rom_region() const +const tiny_rom_entry *newbrain_fdc_device::device_rom_region() const { return ROM_NAME( newbrain_fdc ); } @@ -69,7 +69,7 @@ const tiny_rom_entry *newbrain_fdc_t::device_rom_region() const // ADDRESS_MAP( newbrain_fdc_mem ) //------------------------------------------------- -static ADDRESS_MAP_START( newbrain_fdc_mem, AS_PROGRAM, 8, newbrain_fdc_t ) +static ADDRESS_MAP_START( newbrain_fdc_mem, AS_PROGRAM, 8, newbrain_fdc_device ) ADDRESS_MAP_UNMAP_HIGH AM_RANGE(0x0000, 0x1fff) AM_ROM ADDRESS_MAP_END @@ -79,7 +79,7 @@ ADDRESS_MAP_END // ADDRESS_MAP( newbrain_fdc_io ) //------------------------------------------------- -static ADDRESS_MAP_START( newbrain_fdc_io, AS_IO, 8, newbrain_fdc_t ) +static ADDRESS_MAP_START( newbrain_fdc_io, AS_IO, 8, newbrain_fdc_device ) ADDRESS_MAP_UNMAP_HIGH ADDRESS_MAP_GLOBAL_MASK(0x71) AM_RANGE(0x00, 0x01) AM_MIRROR(0x10) AM_DEVICE(UPD765_TAG, upd765a_device, map) @@ -107,7 +107,7 @@ static MACHINE_CONFIG_FRAGMENT( newbrain_fdc ) MCFG_CPU_IO_MAP(newbrain_fdc_io) MCFG_UPD765A_ADD(UPD765_TAG, false, true) - MCFG_UPD765_INTRQ_CALLBACK(WRITELINE(newbrain_fdc_t, fdc_int_w)) + MCFG_UPD765_INTRQ_CALLBACK(WRITELINE(newbrain_fdc_device, fdc_int_w)) MCFG_FLOPPY_DRIVE_ADD(UPD765_TAG ":0", newbrain_floppies, "525dd", floppy_image_device::default_floppy_formats) MCFG_FLOPPY_DRIVE_ADD(UPD765_TAG ":1", newbrain_floppies, "525dd", floppy_image_device::default_floppy_formats) @@ -123,7 +123,7 @@ MACHINE_CONFIG_END // machine configurations //------------------------------------------------- -machine_config_constructor newbrain_fdc_t::device_mconfig_additions() const +machine_config_constructor newbrain_fdc_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( newbrain_fdc ); } @@ -134,11 +134,11 @@ machine_config_constructor newbrain_fdc_t::device_mconfig_additions() const //************************************************************************** //------------------------------------------------- -// newbrain_fdc_t - constructor +// newbrain_fdc_device - constructor //------------------------------------------------- -newbrain_fdc_t::newbrain_fdc_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, NEWBRAIN_FDC, "NewBrain FDC", tag, owner, clock, "newbrain_fdc", __FILE__), +newbrain_fdc_device::newbrain_fdc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, NEWBRAIN_FDC, tag, owner, clock), device_newbrain_expansion_slot_interface(mconfig, *this), m_maincpu(*this, Z80_TAG), m_fdc(*this, UPD765_TAG), @@ -155,7 +155,7 @@ newbrain_fdc_t::newbrain_fdc_t(const machine_config &mconfig, const char *tag, d // device_start - device-specific startup //------------------------------------------------- -void newbrain_fdc_t::device_start() +void newbrain_fdc_device::device_start() { save_item(NAME(m_paging)); save_item(NAME(m_ma16)); @@ -170,7 +170,7 @@ void newbrain_fdc_t::device_start() // device_reset - device-specific reset //------------------------------------------------- -void newbrain_fdc_t::device_reset() +void newbrain_fdc_device::device_reset() { m_maincpu->reset(); @@ -184,7 +184,7 @@ void newbrain_fdc_t::device_reset() // mreq_r - memory request read //------------------------------------------------- -uint8_t newbrain_fdc_t::mreq_r(address_space &space, offs_t offset, uint8_t data, bool &romov, int &exrm, bool &raminh) +uint8_t newbrain_fdc_device::mreq_r(address_space &space, offs_t offset, uint8_t data, bool &romov, int &exrm, bool &raminh) { return m_exp->mreq_r(space, offset, data, romov, exrm, raminh); } @@ -194,7 +194,7 @@ uint8_t newbrain_fdc_t::mreq_r(address_space &space, offs_t offset, uint8_t data // mreq_w - memory request write //------------------------------------------------- -void newbrain_fdc_t::mreq_w(address_space &space, offs_t offset, uint8_t data, bool &romov, int &exrm, bool &raminh) +void newbrain_fdc_device::mreq_w(address_space &space, offs_t offset, uint8_t data, bool &romov, int &exrm, bool &raminh) { m_exp->mreq_w(space, offset, data, romov, exrm, raminh); } @@ -204,7 +204,7 @@ void newbrain_fdc_t::mreq_w(address_space &space, offs_t offset, uint8_t data, b // iorq_r - I/O request read //------------------------------------------------- -uint8_t newbrain_fdc_t::iorq_r(address_space &space, offs_t offset, uint8_t data, bool &prtov) +uint8_t newbrain_fdc_device::iorq_r(address_space &space, offs_t offset, uint8_t data, bool &prtov) { return m_exp->iorq_r(space, offset, data, prtov); } @@ -214,7 +214,7 @@ uint8_t newbrain_fdc_t::iorq_r(address_space &space, offs_t offset, uint8_t data // iorq_w - I/O request write //------------------------------------------------- -void newbrain_fdc_t::iorq_w(address_space &space, offs_t offset, uint8_t data, bool &prtov) +void newbrain_fdc_device::iorq_w(address_space &space, offs_t offset, uint8_t data, bool &prtov) { m_exp->iorq_w(space, offset, data, prtov); @@ -229,7 +229,7 @@ void newbrain_fdc_t::iorq_w(address_space &space, offs_t offset, uint8_t data, b // moton - floppy motor on //------------------------------------------------- -void newbrain_fdc_t::moton(int state) +void newbrain_fdc_device::moton(int state) { if (m_floppy0->get_device()) m_floppy0->get_device()->mon_w(!state); if (m_floppy1->get_device()) m_floppy1->get_device()->mon_w(!state); @@ -242,7 +242,7 @@ void newbrain_fdc_t::moton(int state) // fdc_int_w - //------------------------------------------------- -WRITE_LINE_MEMBER( newbrain_fdc_t::fdc_int_w ) +WRITE_LINE_MEMBER( newbrain_fdc_device::fdc_int_w ) { m_fdc_int = state; } @@ -252,7 +252,7 @@ WRITE_LINE_MEMBER( newbrain_fdc_t::fdc_int_w ) // fdc_auxiliary_w - //------------------------------------------------- -WRITE8_MEMBER( newbrain_fdc_t::fdc_auxiliary_w ) +WRITE8_MEMBER( newbrain_fdc_device::fdc_auxiliary_w ) { /* @@ -286,7 +286,7 @@ WRITE8_MEMBER( newbrain_fdc_t::fdc_auxiliary_w ) // fdc_control_r - //------------------------------------------------- -READ8_MEMBER( newbrain_fdc_t::fdc_control_r ) +READ8_MEMBER( newbrain_fdc_device::fdc_control_r ) { /* @@ -311,7 +311,7 @@ READ8_MEMBER( newbrain_fdc_t::fdc_control_r ) // io_dec_w - 0x20f //------------------------------------------------- -WRITE8_MEMBER( newbrain_fdc_t::io_dec_w ) +WRITE8_MEMBER( newbrain_fdc_device::io_dec_w ) { /* diff --git a/src/devices/bus/newbrain/fdc.h b/src/devices/bus/newbrain/fdc.h index b34e88441ee..c429d8ea447 100644 --- a/src/devices/bus/newbrain/fdc.h +++ b/src/devices/bus/newbrain/fdc.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_NEWBRAIN_FDC_H +#define MAME_BUS_NEWBRAIN_FDC_H -#ifndef __NEWBRAIN_FDC__ -#define __NEWBRAIN_FDC__ +#pragma once #include "exp.h" #include "cpu/z80/z80.h" @@ -21,14 +21,13 @@ // TYPE DEFINITIONS //************************************************************************** -// ======================> newbrain_fdc_t +// ======================> newbrain_fdc_device -class newbrain_fdc_t : public device_t, - public device_newbrain_expansion_slot_interface +class newbrain_fdc_device : public device_t, public device_newbrain_expansion_slot_interface { public: // construction/destruction - newbrain_fdc_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + newbrain_fdc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual const tiny_rom_entry *device_rom_region() const override; @@ -57,7 +56,7 @@ private: required_device m_floppy1; required_device m_floppy2; required_device m_floppy3; - required_device m_exp; + required_device m_exp; void moton(int state); @@ -71,8 +70,6 @@ private: // device type definition -extern const device_type NEWBRAIN_FDC; - - +DECLARE_DEVICE_TYPE(NEWBRAIN_FDC, newbrain_fdc_device) -#endif +#endif // MAME_BUS_NEWBRAIN_FDC_H diff --git a/src/devices/bus/nubus/nubus.cpp b/src/devices/bus/nubus/nubus.cpp index 2f21a63cf00..d94154244ae 100644 --- a/src/devices/bus/nubus/nubus.cpp +++ b/src/devices/bus/nubus/nubus.cpp @@ -16,7 +16,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type NUBUS_SLOT = device_creator; +DEFINE_DEVICE_TYPE(NUBUS_SLOT, nubus_slot_device, "nubus_slot", "NuBus slot") //************************************************************************** // LIVE DEVICE @@ -26,16 +26,15 @@ const device_type NUBUS_SLOT = device_creator; // nubus_slot_device - constructor //------------------------------------------------- nubus_slot_device::nubus_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, NUBUS_SLOT, "NUBUS_SLOT", tag, owner, clock, "nubus_slot", __FILE__), - device_slot_interface(mconfig, *this), - m_nubus_tag(nullptr), - m_nubus_slottag(nullptr) + nubus_slot_device(mconfig, NUBUS_SLOT, tag, owner, clock) { } -nubus_slot_device::nubus_slot_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_slot_interface(mconfig, *this), m_nubus_tag(nullptr), m_nubus_slottag(nullptr) +nubus_slot_device::nubus_slot_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), + device_slot_interface(mconfig, *this), + m_nubus_tag(nullptr), + m_nubus_slottag(nullptr) { } @@ -61,7 +60,7 @@ void nubus_slot_device::device_start() // GLOBAL VARIABLES //************************************************************************** -const device_type NUBUS = device_creator; +DEFINE_DEVICE_TYPE(NUBUS, nubus_device, "nubus", "NuBus") void nubus_device::static_set_cputag(device_t &device, const char *tag) { @@ -78,24 +77,20 @@ void nubus_device::static_set_cputag(device_t &device, const char *tag) //------------------------------------------------- nubus_device::nubus_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, NUBUS, "NUBUS", tag, owner, clock, "nubus", __FILE__), m_maincpu(nullptr), - m_out_irq9_cb(*this), - m_out_irqa_cb(*this), - m_out_irqb_cb(*this), - m_out_irqc_cb(*this), - m_out_irqd_cb(*this), - m_out_irqe_cb(*this), m_cputag(nullptr) + nubus_device(mconfig, NUBUS, tag, owner, clock) { } -nubus_device::nubus_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), m_maincpu(nullptr), - m_out_irq9_cb(*this), - m_out_irqa_cb(*this), - m_out_irqb_cb(*this), - m_out_irqc_cb(*this), - m_out_irqd_cb(*this), - m_out_irqe_cb(*this), m_cputag(nullptr) +nubus_device::nubus_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), + m_maincpu(nullptr), + m_out_irq9_cb(*this), + m_out_irqa_cb(*this), + m_out_irqb_cb(*this), + m_out_irqc_cb(*this), + m_out_irqd_cb(*this), + m_out_irqe_cb(*this), + m_cputag(nullptr) { } //------------------------------------------------- diff --git a/src/devices/bus/nubus/nubus.h b/src/devices/bus/nubus/nubus.h index 4697432e16e..8cc1a3bbbf2 100644 --- a/src/devices/bus/nubus/nubus.h +++ b/src/devices/bus/nubus/nubus.h @@ -8,10 +8,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_BUS_NUBUS_NUBUS_H +#define MAME_BUS_NUBUS_NUBUS_H -#ifndef __NUBUS_H__ -#define __NUBUS_H__ +#pragma once @@ -58,26 +58,26 @@ class nubus_device; -class nubus_slot_device : public device_t, - public device_slot_interface +class nubus_slot_device : public device_t, public device_slot_interface { public: // construction/destruction nubus_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - nubus_slot_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - - // device-level overrides - virtual void device_start() override; // inline configuration static void static_set_nubus_slot(device_t &device, const char *tag, const char *slottag); protected: + nubus_slot_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual void device_start() override; + // configuration const char *m_nubus_tag, *m_nubus_slottag; }; // device type definition -extern const device_type NUBUS_SLOT; +DECLARE_DEVICE_TYPE(NUBUS_SLOT, nubus_slot_device) class device_nubus_card_interface; @@ -87,17 +87,16 @@ class nubus_device : public device_t public: // construction/destruction nubus_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - nubus_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); ~nubus_device() { m_device_list.detach_all(); } // inline configuration static void static_set_cputag(device_t &device, const char *tag); - template static devcb_base &set_out_irq9_callback(device_t &device, _Object object) { return downcast(device).m_out_irq9_cb.set_callback(object); } - template static devcb_base &set_out_irqa_callback(device_t &device, _Object object) { return downcast(device).m_out_irqa_cb.set_callback(object); } - template static devcb_base &set_out_irqb_callback(device_t &device, _Object object) { return downcast(device).m_out_irqb_cb.set_callback(object); } - template static devcb_base &set_out_irqc_callback(device_t &device, _Object object) { return downcast(device).m_out_irqc_cb.set_callback(object); } - template static devcb_base &set_out_irqd_callback(device_t &device, _Object object) { return downcast(device).m_out_irqd_cb.set_callback(object); } - template static devcb_base &set_out_irqe_callback(device_t &device, _Object object) { return downcast(device).m_out_irqe_cb.set_callback(object); } + template static devcb_base &set_out_irq9_callback(device_t &device, Object &&cb) { return downcast(device).m_out_irq9_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_irqa_callback(device_t &device, Object &&cb) { return downcast(device).m_out_irqa_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_irqb_callback(device_t &device, Object &&cb) { return downcast(device).m_out_irqb_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_irqc_callback(device_t &device, Object &&cb) { return downcast(device).m_out_irqc_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_irqd_callback(device_t &device, Object &&cb) { return downcast(device).m_out_irqd_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_irqe_callback(device_t &device, Object &&cb) { return downcast(device).m_out_irqe_cb.set_callback(std::forward(cb)); } void add_nubus_card(device_nubus_card_interface *card); void install_device(offs_t start, offs_t end, read8_delegate rhandler, write8_delegate whandler, uint32_t mask=0xffffffff); @@ -116,6 +115,8 @@ public: DECLARE_WRITE_LINE_MEMBER( irqe_w ); protected: + nubus_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -136,7 +137,7 @@ protected: // device type definition -extern const device_type NUBUS; +DECLARE_DEVICE_TYPE(NUBUS, nubus_device) // ======================> device_nubus_card_interface @@ -144,9 +145,9 @@ extern const device_type NUBUS; class device_nubus_card_interface : public device_slot_card_interface { friend class nubus_device; + template friend class simple_list; public: // construction/destruction - device_nubus_card_interface(const machine_config &mconfig, device_t &device); virtual ~device_nubus_card_interface(); device_nubus_card_interface *next() const { return m_next; } @@ -165,12 +166,17 @@ public: // inline configuration static void static_set_nubus_tag(device_t &device, const char *tag, const char *slottag); -public: + +protected: + device_nubus_card_interface(const machine_config &mconfig, device_t &device); + nubus_device *m_nubus; const char *m_nubus_tag, *m_nubus_slottag; int m_slot; - device_nubus_card_interface *m_next; std::vector m_declaration_rom; + +private: + device_nubus_card_interface *m_next; }; -#endif /* __NUBUS_H__ */ +#endif // MAME_BUS_NUBUS_NUBUS_H diff --git a/src/devices/bus/nubus/nubus_48gc.cpp b/src/devices/bus/nubus/nubus_48gc.cpp index 2be716827f1..7d7be92216d 100644 --- a/src/devices/bus/nubus/nubus_48gc.cpp +++ b/src/devices/bus/nubus/nubus_48gc.cpp @@ -41,8 +41,8 @@ ROM_END // GLOBAL VARIABLES //************************************************************************** -const device_type NUBUS_48GC = device_creator; -const device_type NUBUS_824GC = device_creator; +DEFINE_DEVICE_TYPE(NUBUS_48GC, nubus_48gc_device, "nb_48gc", "Apple 4*8 video card") +DEFINE_DEVICE_TYPE(NUBUS_824GC, nubus_824gc_device, "nb_824gc", "Apple 8*24 video card") //------------------------------------------------- @@ -77,25 +77,25 @@ const tiny_rom_entry *nubus_824gc_device::device_rom_region() const // jmfb_device - constructor //------------------------------------------------- -jmfb_device::jmfb_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_video_interface(mconfig, *this), - device_nubus_card_interface(mconfig, *this), m_screen(nullptr), m_timer(nullptr), m_mode(0), m_vbl_disable(0), m_toggle(0), m_stride(0), m_base(0), m_count(0), m_clutoffs(0), m_xres(0), m_yres(0), m_is824(false) +jmfb_device::jmfb_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, bool is824) : + device_t(mconfig, type, tag, owner, clock), + device_video_interface(mconfig, *this), + device_nubus_card_interface(mconfig, *this), + m_screen(nullptr), m_timer(nullptr), m_mode(0), m_vbl_disable(0), m_toggle(0), m_stride(0), m_base(0), m_count(0), m_clutoffs(0), m_xres(0), m_yres(0), + m_is824(is824), + m_assembled_tag(util::string_format("%s:%s", tag, GC48_SCREEN_NAME)) { - m_assembled_tag = std::string(tag).append(":").append(GC48_SCREEN_NAME); m_screen_tag = m_assembled_tag.c_str(); } nubus_48gc_device::nubus_48gc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - jmfb_device(mconfig, NUBUS_48GC, "Apple 4*8 video card", tag, owner, clock, "nb_48gc", __FILE__) + jmfb_device(mconfig, NUBUS_48GC, tag, owner, clock, false) { - m_is824 = false; } nubus_824gc_device::nubus_824gc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - jmfb_device(mconfig, NUBUS_824GC, "Apple 8*24 video card", tag, owner, clock, "nb_824gc", __FILE__) + jmfb_device(mconfig, NUBUS_824GC, tag, owner, clock, true) { - m_is824 = true; } //------------------------------------------------- diff --git a/src/devices/bus/nubus/nubus_48gc.h b/src/devices/bus/nubus/nubus_48gc.h index e2c86050731..604b4d351d8 100644 --- a/src/devices/bus/nubus/nubus_48gc.h +++ b/src/devices/bus/nubus/nubus_48gc.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:R. Belmont -#pragma once +#ifndef MAME_BUS_NUBUS_NUBUS_48GC_H +#define MAME_BUS_NUBUS_NUBUS_48GC_H -#ifndef __NUBUS_48GC_H__ -#define __NUBUS_48GC_H__ +#pragma once #include "nubus.h" @@ -19,34 +19,34 @@ class jmfb_device : public device_nubus_card_interface { public: - // construction/destruction - jmfb_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; - virtual const tiny_rom_entry *device_rom_region() const override; - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + // optional information overrides + virtual machine_config_constructor device_mconfig_additions() const override; + virtual const tiny_rom_entry *device_rom_region() const override; - uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); + uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); - screen_device *m_screen; - emu_timer *m_timer; protected: - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; + // construction/destruction + jmfb_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, bool is824); - DECLARE_READ32_MEMBER(mac_48gc_r); - DECLARE_WRITE32_MEMBER(mac_48gc_w); + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; -public: - std::vector m_vram; - uint32_t m_mode, m_vbl_disable, m_toggle, m_stride, m_base; - uint32_t m_palette[256], m_colors[3], m_count, m_clutoffs; - uint32_t m_registers[0x100]; - int m_xres, m_yres; - bool m_is824; - std::string m_assembled_tag; + DECLARE_READ32_MEMBER(mac_48gc_r); + DECLARE_WRITE32_MEMBER(mac_48gc_w); + + screen_device *m_screen; + emu_timer *m_timer; + + std::vector m_vram; + uint32_t m_mode, m_vbl_disable, m_toggle, m_stride, m_base; + uint32_t m_palette[256], m_colors[3], m_count, m_clutoffs; + uint32_t m_registers[0x100]; + int m_xres, m_yres; + const bool m_is824; + const std::string m_assembled_tag; }; class nubus_48gc_device : public jmfb_device @@ -63,7 +63,7 @@ public: }; // device type definition -extern const device_type NUBUS_48GC; -extern const device_type NUBUS_824GC; +DECLARE_DEVICE_TYPE(NUBUS_48GC, nubus_48gc_device) +DECLARE_DEVICE_TYPE(NUBUS_824GC, nubus_824gc_device) -#endif /* __NUBUS_48GC_H__ */ +#endif /// MAME_BUS_NUBUS_NUBUS_48GC_H diff --git a/src/devices/bus/nubus/nubus_asntmc3b.cpp b/src/devices/bus/nubus/nubus_asntmc3b.cpp index d7e45e10f18..91427858b32 100644 --- a/src/devices/bus/nubus/nubus_asntmc3b.cpp +++ b/src/devices/bus/nubus/nubus_asntmc3b.cpp @@ -40,8 +40,8 @@ ROM_END // GLOBAL VARIABLES //************************************************************************** -const device_type NUBUS_ASNTMC3NB = device_creator; -const device_type NUBUS_APPLEENET = device_creator; +DEFINE_DEVICE_TYPE(NUBUS_ASNTMC3NB, nubus_asntmc3nb_device, "nb_amc3b", "Asante MC3NB Ethernet card") +DEFINE_DEVICE_TYPE(NUBUS_APPLEENET, nubus_appleenet_device, "nb_aenet", "Apple NuBus Ethernet card") //------------------------------------------------- @@ -76,20 +76,20 @@ const tiny_rom_entry *nubus_appleenet_device::device_rom_region() const // nubus_mac8390_device - constructor //------------------------------------------------- -nubus_mac8390_device::nubus_mac8390_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_nubus_card_interface(mconfig, *this), - m_dp83902(*this, MAC8390_839X) +nubus_mac8390_device::nubus_mac8390_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), + device_nubus_card_interface(mconfig, *this), + m_dp83902(*this, MAC8390_839X) { } nubus_asntmc3nb_device::nubus_asntmc3nb_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - nubus_mac8390_device(mconfig, NUBUS_ASNTMC3NB, "Asante MC3NB Ethernet card", tag, owner, clock, "nb_amc3b", __FILE__) + nubus_mac8390_device(mconfig, NUBUS_ASNTMC3NB, tag, owner, clock) { } nubus_appleenet_device::nubus_appleenet_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - nubus_mac8390_device(mconfig, NUBUS_APPLEENET, "Apple NuBus Ethernet card", tag, owner, clock, "nb_aenet", __FILE__) + nubus_mac8390_device(mconfig, NUBUS_APPLEENET, tag, owner, clock) { } diff --git a/src/devices/bus/nubus/nubus_asntmc3b.h b/src/devices/bus/nubus/nubus_asntmc3b.h index 3c66d884bb1..55fe2a5e1a0 100644 --- a/src/devices/bus/nubus/nubus_asntmc3b.h +++ b/src/devices/bus/nubus/nubus_asntmc3b.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:R. Belmont -#pragma once +#ifndef MAME_BUS_NUBUS_NUBUS_ASNTMC3B_H +#define MAME_BUS_NUBUS_NUBUS_ASNTMC3B_H -#ifndef __NUBUS_ASNTMC3B_H__ -#define __NUBUS_ASNTMC3B_H__ +#pragma once #include "nubus.h" #include "machine/dp8390.h" @@ -19,32 +19,32 @@ class nubus_mac8390_device : public device_nubus_card_interface { public: - // construction/destruction - nubus_mac8390_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; - virtual const tiny_rom_entry *device_rom_region() const override; + // optional information overrides + virtual machine_config_constructor device_mconfig_additions() const override; + virtual const tiny_rom_entry *device_rom_region() const override; - void dp_irq_w(int state); - DECLARE_READ8_MEMBER(dp_mem_read); - DECLARE_WRITE8_MEMBER(dp_mem_write); + void dp_irq_w(int state); + DECLARE_READ8_MEMBER(dp_mem_read); + DECLARE_WRITE8_MEMBER(dp_mem_write); protected: - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; + // construction/destruction + nubus_mac8390_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; - DECLARE_READ8_MEMBER(asntm3b_ram_r); - DECLARE_WRITE8_MEMBER(asntm3b_ram_w); - DECLARE_READ32_MEMBER(en_r); - DECLARE_WRITE32_MEMBER(en_w); + DECLARE_READ8_MEMBER(asntm3b_ram_r); + DECLARE_WRITE8_MEMBER(asntm3b_ram_w); + DECLARE_READ32_MEMBER(en_r); + DECLARE_WRITE32_MEMBER(en_w); - required_device m_dp83902; + required_device m_dp83902; private: - uint8_t m_ram[0x20000]; - uint8_t m_prom[16]; + uint8_t m_ram[0x20000]; + uint8_t m_prom[16]; }; class nubus_asntmc3nb_device : public nubus_mac8390_device @@ -61,7 +61,7 @@ public: }; // device type definition -extern const device_type NUBUS_ASNTMC3NB; -extern const device_type NUBUS_APPLEENET; +DECLARE_DEVICE_TYPE(NUBUS_ASNTMC3NB, nubus_asntmc3nb_device) +DECLARE_DEVICE_TYPE(NUBUS_APPLEENET, nubus_appleenet_device) -#endif /* __NUBUS_ASNTMC3B_H__ */ +#endif // MAME_BUS_NUBUS_NUBUS_ASNTMC3B_H diff --git a/src/devices/bus/nubus/nubus_cb264.cpp b/src/devices/bus/nubus/nubus_cb264.cpp index 65f0a49d80c..d3be5575a92 100644 --- a/src/devices/bus/nubus/nubus_cb264.cpp +++ b/src/devices/bus/nubus/nubus_cb264.cpp @@ -40,7 +40,7 @@ ROM_END // GLOBAL VARIABLES //************************************************************************** -const device_type NUBUS_CB264 = device_creator; +DEFINE_DEVICE_TYPE(NUBUS_CB264, nubus_cb264_device, "nb_c264", "RasterOps ColorBoard 264 video card") //------------------------------------------------- @@ -71,14 +71,14 @@ const tiny_rom_entry *nubus_cb264_device::device_rom_region() const //------------------------------------------------- nubus_cb264_device::nubus_cb264_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, NUBUS_CB264, "RasterOps ColorBoard 264 video card", tag, owner, clock, "nb_cb264", __FILE__), - device_nubus_card_interface(mconfig, *this), m_cb264_mode(0), m_cb264_vbl_disable(0), m_cb264_toggle(0), m_count(0), m_clutoffs(0) + nubus_cb264_device(mconfig, NUBUS_CB264, tag, owner, clock) { } -nubus_cb264_device::nubus_cb264_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_nubus_card_interface(mconfig, *this), m_cb264_mode(0), m_cb264_vbl_disable(0), m_cb264_toggle(0), m_count(0), m_clutoffs(0) +nubus_cb264_device::nubus_cb264_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), + device_nubus_card_interface(mconfig, *this), + m_cb264_mode(0), m_cb264_vbl_disable(0), m_cb264_toggle(0), m_count(0), m_clutoffs(0) { } diff --git a/src/devices/bus/nubus/nubus_cb264.h b/src/devices/bus/nubus/nubus_cb264.h index c5b2c2b02b8..82c0181a27f 100644 --- a/src/devices/bus/nubus/nubus_cb264.h +++ b/src/devices/bus/nubus/nubus_cb264.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:R. Belmont -#pragma once +#ifndef MAME_BUS_NUBUS_NUBUS_CB264_H +#define MAME_BUS_NUBUS_NUBUS_CB264_H -#ifndef __NUBUS_CB264_H__ -#define __NUBUS_CB264_H__ +#pragma once #include "nubus.h" @@ -18,33 +18,35 @@ class nubus_cb264_device : public device_nubus_card_interface { public: - // construction/destruction - nubus_cb264_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - nubus_cb264_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); + // construction/destruction + nubus_cb264_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; - virtual const tiny_rom_entry *device_rom_region() const override; + // optional information overrides + virtual machine_config_constructor device_mconfig_additions() const override; + virtual const tiny_rom_entry *device_rom_region() const override; + + uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); - uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); protected: - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; + nubus_cb264_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; - DECLARE_READ32_MEMBER(cb264_r); - DECLARE_WRITE32_MEMBER(cb264_w); - DECLARE_READ32_MEMBER(cb264_ramdac_r); - DECLARE_WRITE32_MEMBER(cb264_ramdac_w); + DECLARE_READ32_MEMBER(cb264_r); + DECLARE_WRITE32_MEMBER(cb264_w); + DECLARE_READ32_MEMBER(cb264_ramdac_r); + DECLARE_WRITE32_MEMBER(cb264_ramdac_w); public: - std::vector m_vram; - uint32_t m_cb264_mode, m_cb264_vbl_disable, m_cb264_toggle; - uint32_t m_palette[256], m_colors[3], m_count, m_clutoffs; + std::vector m_vram; + uint32_t m_cb264_mode, m_cb264_vbl_disable, m_cb264_toggle; + uint32_t m_palette[256], m_colors[3], m_count, m_clutoffs; }; // device type definition -extern const device_type NUBUS_CB264; +DECLARE_DEVICE_TYPE(NUBUS_CB264, nubus_cb264_device) -#endif /* __NUBUS_CB264_H__ */ +#endif // MAME_BUS_NUBUS_NUBUS_CB264_H diff --git a/src/devices/bus/nubus/nubus_image.cpp b/src/devices/bus/nubus/nubus_image.cpp index eeb3a9f895f..0a0c7a44735 100644 --- a/src/devices/bus/nubus/nubus_image.cpp +++ b/src/devices/bus/nubus/nubus_image.cpp @@ -17,19 +17,10 @@ #define MESSIMG_DISK_SECTOR_SIZE (512) -// on big-endian, these are NOPs. (TODO: hey, where did WORDS_BIGENDIAN go since the GENie transition?!) -#if defined(__ppc__) || defined (__PPC__) || defined(__ppc64__) || defined(__PPC64__) -static uint32_t ni_htonl(uint32_t x) { return x; } -static uint32_t ni_ntohl(uint32_t x) { return x; } -#else -static uint32_t ni_htonl(uint32_t x) { return flipendian_int32(x); } -static uint32_t ni_ntohl(uint32_t x) { return flipendian_int32(x); } -#endif +// nubus_image_device::messimg_disk_image_device -// messimg_disk_image_device - -class messimg_disk_image_device : public device_t, +class nubus_image_device::messimg_disk_image_device : public device_t, public device_image_interface { public: @@ -63,11 +54,12 @@ public: // device type definition -const device_type MESSIMG_DISK = device_creator; +DEFINE_DEVICE_TYPE_NS(MESSIMG_DISK, nubus_image_device, messimg_disk_image_device, "messimg_disk_image", "Mac image") -messimg_disk_image_device::messimg_disk_image_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MESSIMG_DISK, "Mac image", tag, owner, clock, "messimg_disk_image", __FILE__), - device_image_interface(mconfig, *this), m_size(0), m_data(nullptr), m_ejected(false) +nubus_image_device::messimg_disk_image_device::messimg_disk_image_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, MESSIMG_DISK, tag, owner, clock), + device_image_interface(mconfig, *this), + m_size(0), m_data(nullptr), m_ejected(false) { } @@ -76,7 +68,7 @@ messimg_disk_image_device::messimg_disk_image_device(const machine_config &mconf device start callback -------------------------------------------------*/ -void messimg_disk_image_device::device_start() +void nubus_image_device::messimg_disk_image_device::device_start() { m_data = nullptr; @@ -86,7 +78,7 @@ void messimg_disk_image_device::device_start() } } -image_init_result messimg_disk_image_device::call_load() +image_init_result nubus_image_device::messimg_disk_image_device::call_load() { fseek(0, SEEK_END); m_size = (uint32_t)ftell(); @@ -105,7 +97,7 @@ image_init_result messimg_disk_image_device::call_load() return image_init_result::PASS; } -void messimg_disk_image_device::call_unload() +void nubus_image_device::messimg_disk_image_device::call_unload() { // TODO: track dirty sectors and only write those fseek(0, SEEK_SET); @@ -118,7 +110,7 @@ void messimg_disk_image_device::call_unload() device reset callback -------------------------------------------------*/ -void messimg_disk_image_device::device_reset() +void nubus_image_device::messimg_disk_image_device::device_reset() { } @@ -135,7 +127,7 @@ ROM_END // GLOBAL VARIABLES //************************************************************************** -const device_type NUBUS_IMAGE = device_creator; +DEFINE_DEVICE_TYPE(NUBUS_IMAGE, nubus_image_device, "nb_image", "NuBus Disk Image Pseudo-Card") //------------------------------------------------- @@ -166,14 +158,14 @@ const tiny_rom_entry *nubus_image_device::device_rom_region() const //------------------------------------------------- nubus_image_device::nubus_image_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, NUBUS_IMAGE, "Disk Image Pseudo-Card", tag, owner, clock, "nb_image", __FILE__), - device_nubus_card_interface(mconfig, *this), m_image(nullptr) + nubus_image_device(mconfig, NUBUS_IMAGE, tag, owner, clock) { } -nubus_image_device::nubus_image_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_nubus_card_interface(mconfig, *this), m_image(nullptr) +nubus_image_device::nubus_image_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), + device_nubus_card_interface(mconfig, *this), + m_image(nullptr) { } @@ -327,7 +319,7 @@ WRITE32_MEMBER( nubus_image_device::file_data_w ) data = ((data & 0xff) << 24) | ((data & 0xff00) << 8) | ((data & 0xff0000) >> 8) | ((data & 0xff000000) >> 24); if(filectx.fd) { - //data = ni_ntohl(data); + //data = big_endianize_int32(data); if((filectx.bytecount + count) > filectx.filelen) count = filectx.filelen - filectx.bytecount; filectx.fd->write(&data, filectx.bytecount, count, actualcount); filectx.bytecount += actualcount; @@ -348,7 +340,7 @@ READ32_MEMBER( nubus_image_device::file_data_r ) if(actual < sizeof(ret)) { filectx.fd.reset(); } - return ni_htonl(ret); + return big_endianize_int32(ret); } return 0; } @@ -356,7 +348,7 @@ READ32_MEMBER( nubus_image_device::file_data_r ) WRITE32_MEMBER( nubus_image_device::file_len_w ) { data = ((data & 0xff) << 24) | ((data & 0xff00) << 8) | ((data & 0xff0000) >> 8) | ((data & 0xff000000) >> 24); - filectx.filelen = ni_ntohl(data); + filectx.filelen = big_endianize_int32(data); } READ32_MEMBER( nubus_image_device::file_len_r ) @@ -366,12 +358,12 @@ READ32_MEMBER( nubus_image_device::file_len_r ) WRITE32_MEMBER( nubus_image_device::file_name_w ) { - ((uint32_t*)(filectx.filename))[offset] = ni_ntohl(data); + ((uint32_t*)(filectx.filename))[offset] = big_endianize_int32(data); } READ32_MEMBER( nubus_image_device::file_name_r ) { uint32_t ret; - ret = ni_htonl(((uint32_t*)(filectx.filename))[offset]); + ret = big_endianize_int32(((uint32_t*)(filectx.filename))[offset]); return ret; } diff --git a/src/devices/bus/nubus/nubus_image.h b/src/devices/bus/nubus/nubus_image.h index 543ae8d3781..b12da43dc36 100644 --- a/src/devices/bus/nubus/nubus_image.h +++ b/src/devices/bus/nubus/nubus_image.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:R. Belmont -#pragma once +#ifndef MAME_BUS_NUBUS_NUBUS_IMAGE_H +#define MAME_BUS_NUBUS_NUBUS_IMAGE_H -#ifndef __NUBUS_IMAGE_H__ -#define __NUBUS_IMAGE_H__ +#pragma once #include "nubus.h" #include "osdcore.h" @@ -11,17 +11,6 @@ //************************************************************************** // TYPE DEFINITIONS //************************************************************************** -class messimg_disk_image_device; - -struct nbfilectx { - uint32_t curcmd; - uint8_t filename[128]; - uint8_t curdir[1024]; - osd::directory::ptr dirp; - osd_file::ptr fd; - uint64_t filelen; - uint32_t bytecount; -}; // ======================> nubus_image_device @@ -30,15 +19,39 @@ class nubus_image_device : public device_nubus_card_interface { public: + class messimg_disk_image_device; + // construction/destruction nubus_image_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - nubus_image_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); // optional information overrides virtual machine_config_constructor device_mconfig_additions() const override; virtual const tiny_rom_entry *device_rom_region() const override; protected: + enum + { + kFileCmdGetDir = 1, + kFileCmdSetDir, + kFileCmdGetFirstListing, + kFileCmdGetNextListing, + kFileCmdGetFile, + kFileCmdPutFile + }; + + struct nbfilectx + { + uint32_t curcmd; + uint8_t filename[128]; + uint8_t curdir[1024]; + osd::directory::ptr dirp; + osd_file::ptr fd; + uint64_t filelen; + uint32_t bytecount; + }; + + nubus_image_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -58,22 +71,12 @@ protected: DECLARE_READ32_MEMBER(file_name_r); DECLARE_WRITE32_MEMBER(file_name_w); -public: messimg_disk_image_device *m_image; - struct nbfilectx filectx; + nbfilectx filectx; }; // device type definition -extern const device_type NUBUS_IMAGE; - -enum { - kFileCmdGetDir = 1, - kFileCmdSetDir, - kFileCmdGetFirstListing, - kFileCmdGetNextListing, - kFileCmdGetFile, - kFileCmdPutFile -}; +DECLARE_DEVICE_TYPE(NUBUS_IMAGE, nubus_image_device) -#endif /* __NUBUS_IMAGE_H__ */ +#endif // MAME_BUS_NUBUS_NUBUS_IMAGE_H diff --git a/src/devices/bus/nubus/nubus_m2hires.cpp b/src/devices/bus/nubus/nubus_m2hires.cpp index 823a1d063e2..99315db8e03 100644 --- a/src/devices/bus/nubus/nubus_m2hires.cpp +++ b/src/devices/bus/nubus/nubus_m2hires.cpp @@ -36,7 +36,7 @@ ROM_END // GLOBAL VARIABLES //************************************************************************** -const device_type NUBUS_M2HIRES = device_creator; +DEFINE_DEVICE_TYPE(NUBUS_M2HIRES, nubus_m2hires_device, "nb_m2hr", "Macintosh II Hi-Resolution video card") //------------------------------------------------- @@ -67,20 +67,17 @@ const tiny_rom_entry *nubus_m2hires_device::device_rom_region() const //------------------------------------------------- nubus_m2hires_device::nubus_m2hires_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, NUBUS_M2HIRES, "Macintosh II Hi-Resolution video card", tag, owner, clock, "nb_m2hr", __FILE__), - device_video_interface(mconfig, *this), - device_nubus_card_interface(mconfig, *this), m_vram32(nullptr), m_mode(0), m_vbl_disable(0), m_toggle(0), m_count(0), m_clutoffs(0), m_timer(nullptr) + nubus_m2hires_device(mconfig, NUBUS_M2HIRES, tag, owner, clock) { - m_assembled_tag = std::string(tag).append(":").append(M2HIRES_SCREEN_NAME); - m_screen_tag = m_assembled_tag.c_str(); } -nubus_m2hires_device::nubus_m2hires_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_video_interface(mconfig, *this), - device_nubus_card_interface(mconfig, *this), m_vram32(nullptr), m_mode(0), m_vbl_disable(0), m_toggle(0), m_count(0), m_clutoffs(0), m_timer(nullptr) +nubus_m2hires_device::nubus_m2hires_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), + device_video_interface(mconfig, *this), + device_nubus_card_interface(mconfig, *this), + m_vram32(nullptr), m_mode(0), m_vbl_disable(0), m_toggle(0), m_count(0), m_clutoffs(0), m_timer(nullptr), + m_assembled_tag(util::string_format("%s:%s", tag, M2HIRES_SCREEN_NAME)) { - m_assembled_tag = std::string(tag).append(":").append(M2HIRES_SCREEN_NAME); m_screen_tag = m_assembled_tag.c_str(); } diff --git a/src/devices/bus/nubus/nubus_m2hires.h b/src/devices/bus/nubus/nubus_m2hires.h index cc766ae9d18..1e8f7c92290 100644 --- a/src/devices/bus/nubus/nubus_m2hires.h +++ b/src/devices/bus/nubus/nubus_m2hires.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:R. Belmont -#pragma once +#ifndef MAME_BUS_NUBUS_NUBUS_M2HIRES_H +#define MAME_BUS_NUBUS_NUBUS_M2HIRES_H -#ifndef __NUBUS_M2HIRES_H__ -#define __NUBUS_M2HIRES_H__ +#pragma once #include "nubus.h" @@ -19,37 +19,37 @@ class nubus_m2hires_device : public device_nubus_card_interface { public: - // construction/destruction - nubus_m2hires_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - nubus_m2hires_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); + // construction/destruction + nubus_m2hires_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; - virtual const tiny_rom_entry *device_rom_region() const override; - - uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); -protected: - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + // optional information overrides + virtual machine_config_constructor device_mconfig_additions() const override; + virtual const tiny_rom_entry *device_rom_region() const override; - DECLARE_READ32_MEMBER(m2hires_r); - DECLARE_WRITE32_MEMBER(m2hires_w); - DECLARE_READ32_MEMBER(vram_r); - DECLARE_WRITE32_MEMBER(vram_w); + uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); -public: - std::vector m_vram; - uint32_t *m_vram32; - uint32_t m_mode, m_vbl_disable, m_toggle; - uint32_t m_palette[256], m_colors[3], m_count, m_clutoffs; - emu_timer *m_timer; - std::string m_assembled_tag; +protected: + nubus_m2hires_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + + DECLARE_READ32_MEMBER(m2hires_r); + DECLARE_WRITE32_MEMBER(m2hires_w); + DECLARE_READ32_MEMBER(vram_r); + DECLARE_WRITE32_MEMBER(vram_w); + + std::vector m_vram; + uint32_t *m_vram32; + uint32_t m_mode, m_vbl_disable, m_toggle; + uint32_t m_palette[256], m_colors[3], m_count, m_clutoffs; + emu_timer *m_timer; + const std::string m_assembled_tag; }; - // device type definition -extern const device_type NUBUS_M2HIRES; +DECLARE_DEVICE_TYPE(NUBUS_M2HIRES, nubus_m2hires_device) -#endif /* __NUBUS_M2HIRES_H__ */ +#endif // MAME_BUS_NUBUS_NUBUS_M2HIRES_H diff --git a/src/devices/bus/nubus/nubus_m2video.cpp b/src/devices/bus/nubus/nubus_m2video.cpp index bfaafc7f932..8eb6808f8d6 100644 --- a/src/devices/bus/nubus/nubus_m2video.cpp +++ b/src/devices/bus/nubus/nubus_m2video.cpp @@ -38,7 +38,7 @@ ROM_END // GLOBAL VARIABLES //************************************************************************** -const device_type NUBUS_M2VIDEO = device_creator; +DEFINE_DEVICE_TYPE(NUBUS_M2VIDEO, nubus_m2video_device, "nb_m2vc", "Macintosh II Video Card") //------------------------------------------------- @@ -69,20 +69,17 @@ const tiny_rom_entry *nubus_m2video_device::device_rom_region() const //------------------------------------------------- nubus_m2video_device::nubus_m2video_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, NUBUS_M2VIDEO, "Macintosh II Video Card", tag, owner, clock, "nb_m2vc", __FILE__), - device_video_interface(mconfig, *this), - device_nubus_card_interface(mconfig, *this), m_vram32(nullptr), m_mode(0), m_vbl_disable(0), m_toggle(0), m_count(0), m_clutoffs(0), m_timer(nullptr) + nubus_m2video_device(mconfig, NUBUS_M2VIDEO, tag, owner, clock) { - m_assembled_tag = std::string(tag).append(":").append(M2VIDEO_SCREEN_NAME); - m_screen_tag = m_assembled_tag.c_str(); } -nubus_m2video_device::nubus_m2video_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_video_interface(mconfig, *this), - device_nubus_card_interface(mconfig, *this), m_vram32(nullptr), m_mode(0), m_vbl_disable(0), m_toggle(0), m_count(0), m_clutoffs(0), m_timer(nullptr) +nubus_m2video_device::nubus_m2video_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), + device_video_interface(mconfig, *this), + device_nubus_card_interface(mconfig, *this), + m_vram32(nullptr), m_mode(0), m_vbl_disable(0), m_toggle(0), m_count(0), m_clutoffs(0), m_timer(nullptr), + m_assembled_tag(util::string_format("%s:%s", tag, M2VIDEO_SCREEN_NAME)) { - m_assembled_tag = std::string(tag).append(":").append(M2VIDEO_SCREEN_NAME); m_screen_tag = m_assembled_tag.c_str(); } diff --git a/src/devices/bus/nubus/nubus_m2video.h b/src/devices/bus/nubus/nubus_m2video.h index abf6056f5e2..10d2e9067c9 100644 --- a/src/devices/bus/nubus/nubus_m2video.h +++ b/src/devices/bus/nubus/nubus_m2video.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:R. Belmont -#pragma once +#ifndef MAME_BUS_NUBUS_NUBUS_M2VIDEO_H +#define MAME_BUS_NUBUS_NUBUS_M2VIDEO_H -#ifndef __NUBUS_M2VIDEO_H__ -#define __NUBUS_M2VIDEO_H__ +#pragma once #include "nubus.h" @@ -19,37 +19,38 @@ class nubus_m2video_device : public device_nubus_card_interface { public: - // construction/destruction - nubus_m2video_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - nubus_m2video_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; - virtual const tiny_rom_entry *device_rom_region() const override; + // construction/destruction + nubus_m2video_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); -protected: - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + // optional information overrides + virtual machine_config_constructor device_mconfig_additions() const override; + virtual const tiny_rom_entry *device_rom_region() const override; - DECLARE_READ32_MEMBER(m2video_r); - DECLARE_WRITE32_MEMBER(m2video_w); - DECLARE_READ32_MEMBER(vram_r); - DECLARE_WRITE32_MEMBER(vram_w); + uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); -public: - std::vector m_vram; - uint32_t *m_vram32; - uint32_t m_mode, m_vbl_disable, m_toggle; - uint32_t m_palette[256], m_colors[3], m_count, m_clutoffs; - emu_timer *m_timer; - std::string m_assembled_tag; +protected: + nubus_m2video_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + + DECLARE_READ32_MEMBER(m2video_r); + DECLARE_WRITE32_MEMBER(m2video_w); + DECLARE_READ32_MEMBER(vram_r); + DECLARE_WRITE32_MEMBER(vram_w); + + std::vector m_vram; + uint32_t *m_vram32; + uint32_t m_mode, m_vbl_disable, m_toggle; + uint32_t m_palette[256], m_colors[3], m_count, m_clutoffs; + emu_timer *m_timer; + const std::string m_assembled_tag; }; // device type definition -extern const device_type NUBUS_M2VIDEO; +DECLARE_DEVICE_TYPE(NUBUS_M2VIDEO, nubus_m2video_device) -#endif /* __NUBUS_M2VIDEO_H__ */ +#endif // MAME_BUS_NUBUS_NUBUS_M2VIDEO_H diff --git a/src/devices/bus/nubus/nubus_radiustpd.cpp b/src/devices/bus/nubus/nubus_radiustpd.cpp index f3028bdc598..d1087527019 100644 --- a/src/devices/bus/nubus/nubus_radiustpd.cpp +++ b/src/devices/bus/nubus/nubus_radiustpd.cpp @@ -37,7 +37,7 @@ ROM_END // GLOBAL VARIABLES //************************************************************************** -const device_type NUBUS_RADIUSTPD = device_creator; +DEFINE_DEVICE_TYPE(NUBUS_RADIUSTPD, nubus_radiustpd_device, "nb_rtpd", "Radius Two Page Display video card") //------------------------------------------------- @@ -68,20 +68,17 @@ const tiny_rom_entry *nubus_radiustpd_device::device_rom_region() const //------------------------------------------------- nubus_radiustpd_device::nubus_radiustpd_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, NUBUS_RADIUSTPD, "Radius Two Page Display video card", tag, owner, clock, "nb_rtpd", __FILE__), - device_video_interface(mconfig, *this), - device_nubus_card_interface(mconfig, *this), m_vram32(nullptr), m_mode(0), m_vbl_disable(0), m_toggle(0), m_count(0), m_clutoffs(0), m_timer(nullptr) + nubus_radiustpd_device(mconfig, NUBUS_RADIUSTPD, tag, owner, clock) { - m_assembled_tag = std::string(tag).append(":").append(RADIUSTPD_SCREEN_NAME); - m_screen_tag = m_assembled_tag.c_str(); } -nubus_radiustpd_device::nubus_radiustpd_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_video_interface(mconfig, *this), - device_nubus_card_interface(mconfig, *this), m_vram32(nullptr), m_mode(0), m_vbl_disable(0), m_toggle(0), m_count(0), m_clutoffs(0), m_timer(nullptr) +nubus_radiustpd_device::nubus_radiustpd_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), + device_video_interface(mconfig, *this), + device_nubus_card_interface(mconfig, *this), + m_vram32(nullptr), m_mode(0), m_vbl_disable(0), m_toggle(0), m_count(0), m_clutoffs(0), m_timer(nullptr), + m_assembled_tag(util::string_format("%s:%s", tag, RADIUSTPD_SCREEN_NAME)) { - m_assembled_tag = std::string(tag).append(":").append(RADIUSTPD_SCREEN_NAME); m_screen_tag = m_assembled_tag.c_str(); } diff --git a/src/devices/bus/nubus/nubus_radiustpd.h b/src/devices/bus/nubus/nubus_radiustpd.h index 02f257c290e..7566c281ea9 100644 --- a/src/devices/bus/nubus/nubus_radiustpd.h +++ b/src/devices/bus/nubus/nubus_radiustpd.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:R. Belmont -#pragma once +#ifndef MAME_BUS_NUBUS_NUBUS_RADIUSTPD_H +#define MAME_BUS_NUBUS_NUBUS_RADIUSTPD_H -#ifndef __NUBUS_RADIUSTPD_H__ -#define __NUBUS_RADIUSTPD_H__ +#pragma once #include "nubus.h" @@ -19,37 +19,38 @@ class nubus_radiustpd_device : public device_nubus_card_interface { public: - // construction/destruction - nubus_radiustpd_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - nubus_radiustpd_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; - virtual const tiny_rom_entry *device_rom_region() const override; + // construction/destruction + nubus_radiustpd_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); -protected: - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + // optional information overrides + virtual machine_config_constructor device_mconfig_additions() const override; + virtual const tiny_rom_entry *device_rom_region() const override; - DECLARE_READ32_MEMBER(radiustpd_r); - DECLARE_WRITE32_MEMBER(radiustpd_w); - DECLARE_READ32_MEMBER(vram_r); - DECLARE_WRITE32_MEMBER(vram_w); + uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); -public: - std::vector m_vram; - uint32_t *m_vram32; - uint32_t m_mode, m_vbl_disable, m_toggle; - uint32_t m_palette[256], m_colors[3], m_count, m_clutoffs; - emu_timer *m_timer; - std::string m_assembled_tag; +protected: + nubus_radiustpd_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + + DECLARE_READ32_MEMBER(radiustpd_r); + DECLARE_WRITE32_MEMBER(radiustpd_w); + DECLARE_READ32_MEMBER(vram_r); + DECLARE_WRITE32_MEMBER(vram_w); + + std::vector m_vram; + uint32_t *m_vram32; + uint32_t m_mode, m_vbl_disable, m_toggle; + uint32_t m_palette[256], m_colors[3], m_count, m_clutoffs; + emu_timer *m_timer; + const std::string m_assembled_tag; }; // device type definition -extern const device_type NUBUS_RADIUSTPD; +DECLARE_DEVICE_TYPE(NUBUS_RADIUSTPD, nubus_radiustpd_device) -#endif /* __NUBUS_RADIUSTPD_H__ */ +#endif // MAME_BUS_NUBUS_NUBUS_RADIUSTPD_H diff --git a/src/devices/bus/nubus/nubus_spec8.cpp b/src/devices/bus/nubus/nubus_spec8.cpp index d294a1df8f7..18d5294569e 100644 --- a/src/devices/bus/nubus/nubus_spec8.cpp +++ b/src/devices/bus/nubus/nubus_spec8.cpp @@ -40,7 +40,7 @@ ROM_END // GLOBAL VARIABLES //************************************************************************** -const device_type NUBUS_SPEC8S3 = device_creator; +DEFINE_DEVICE_TYPE(NUBUS_SPEC8S3, nubus_spec8s3_device, "nb_sp8s3", "SuperMac Spectrum/8 Series III video card") //------------------------------------------------- @@ -71,20 +71,18 @@ const tiny_rom_entry *nubus_spec8s3_device::device_rom_region() const //------------------------------------------------- nubus_spec8s3_device::nubus_spec8s3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, NUBUS_SPEC8S3, "SuperMac Spectrum/8 Series III video card", tag, owner, clock, "nb_sp8s3", __FILE__), - device_video_interface(mconfig, *this), - device_nubus_card_interface(mconfig, *this), m_vram32(nullptr), m_mode(0), m_vbl_disable(0), m_count(0), m_clutoffs(0), m_timer(nullptr), m_vbl_pending(false), m_parameter(0) + nubus_spec8s3_device(mconfig, NUBUS_SPEC8S3, tag, owner, clock) { - m_assembled_tag = std::string(tag).append(":").append(SPEC8S3_SCREEN_NAME); - m_screen_tag = m_assembled_tag.c_str(); } -nubus_spec8s3_device::nubus_spec8s3_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_video_interface(mconfig, *this), - device_nubus_card_interface(mconfig, *this), m_vram32(nullptr), m_mode(0), m_vbl_disable(0), m_count(0), m_clutoffs(0), m_timer(nullptr), m_vbl_pending(false), m_parameter(0) +nubus_spec8s3_device::nubus_spec8s3_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), + device_video_interface(mconfig, *this), + device_nubus_card_interface(mconfig, *this), + m_vram32(nullptr), m_mode(0), m_vbl_disable(0), m_count(0), m_clutoffs(0), m_timer(nullptr), + m_assembled_tag(util::string_format("%s:%s", tag, SPEC8S3_SCREEN_NAME)), + m_vbl_pending(false), m_parameter(0) { - m_assembled_tag = std::string(tag).append(":").append(SPEC8S3_SCREEN_NAME); m_screen_tag = m_assembled_tag.c_str(); } diff --git a/src/devices/bus/nubus/nubus_spec8.h b/src/devices/bus/nubus/nubus_spec8.h index 6716115db05..95f707d7df3 100644 --- a/src/devices/bus/nubus/nubus_spec8.h +++ b/src/devices/bus/nubus/nubus_spec8.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:R. Belmont -#pragma once +#ifndef MAME_BUS_NUBUS_NUBUS_SPEC8_H +#define MAME_BUS_NUBUS_NUBUS_SPEC8_H -#ifndef __NUBUS_SPEC8S3_H__ -#define __NUBUS_SPEC8S3_H__ +#pragma once #include "nubus.h" @@ -19,45 +19,46 @@ class nubus_spec8s3_device : public device_nubus_card_interface { public: - // construction/destruction - nubus_spec8s3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - nubus_spec8s3_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); + // construction/destruction + nubus_spec8s3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + + // optional information overrides + virtual machine_config_constructor device_mconfig_additions() const override; + virtual const tiny_rom_entry *device_rom_region() const override; + virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; - virtual const tiny_rom_entry *device_rom_region() const override; - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); - uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); protected: - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; + nubus_spec8s3_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); - DECLARE_READ32_MEMBER(spec8s3_r); - DECLARE_WRITE32_MEMBER(spec8s3_w); - DECLARE_READ32_MEMBER(vram_r); - DECLARE_WRITE32_MEMBER(vram_w); + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; -public: - std::vector m_vram; - uint32_t *m_vram32; - uint32_t m_mode, m_vbl_disable; - uint32_t m_palette[256], m_colors[3], m_count, m_clutoffs; - emu_timer *m_timer; - std::string m_assembled_tag; + DECLARE_READ32_MEMBER(spec8s3_r); + DECLARE_WRITE32_MEMBER(spec8s3_w); + DECLARE_READ32_MEMBER(vram_r); + DECLARE_WRITE32_MEMBER(vram_w); + + std::vector m_vram; + uint32_t *m_vram32; + uint32_t m_mode, m_vbl_disable; + uint32_t m_palette[256], m_colors[3], m_count, m_clutoffs; + emu_timer *m_timer; + const std::string m_assembled_tag; private: - //uint32_t m_7xxxxx_regs[0x100000/4]; - //int m_width, m_height, m_patofsx, m_patofsy; - //uint32_t m_vram_addr, m_vram_src; - //uint8_t m_fillbytes[256]; - bool m_vbl_pending; - int m_parameter; + //uint32_t m_7xxxxx_regs[0x100000/4]; + //int m_width, m_height, m_patofsx, m_patofsy; + //uint32_t m_vram_addr, m_vram_src; + //uint8_t m_fillbytes[256]; + bool m_vbl_pending; + int m_parameter; }; // device type definition -extern const device_type NUBUS_SPEC8S3; +DECLARE_DEVICE_TYPE(NUBUS_SPEC8S3, nubus_spec8s3_device) -#endif /* __NUBUS_SPEC8S3_H__ */ +#endif // MAME_BUS_NUBUS_NUBUS_SPEC8_H diff --git a/src/devices/bus/nubus/nubus_specpdq.cpp b/src/devices/bus/nubus/nubus_specpdq.cpp index de267c7400b..98ef658d187 100644 --- a/src/devices/bus/nubus/nubus_specpdq.cpp +++ b/src/devices/bus/nubus/nubus_specpdq.cpp @@ -54,7 +54,7 @@ ROM_END // GLOBAL VARIABLES //************************************************************************** -const device_type NUBUS_SPECPDQ = device_creator; +DEFINE_DEVICE_TYPE(NUBUS_SPECPDQ, nubus_specpdq_device, "nb_spdq", "SuperMac Spectrum PDQ video card") //------------------------------------------------- @@ -85,22 +85,19 @@ const tiny_rom_entry *nubus_specpdq_device::device_rom_region() const //------------------------------------------------- nubus_specpdq_device::nubus_specpdq_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, NUBUS_SPECPDQ, "SuperMac Spectrum PDQ video card", tag, owner, clock, "nb_spdq", __FILE__), - device_video_interface(mconfig, *this), - device_nubus_card_interface(mconfig, *this), m_vram32(nullptr), m_mode(0), m_vbl_disable(0), m_count(0), m_clutoffs(0), m_timer(nullptr), m_width(0), m_height(0), m_patofsx(0), m_patofsy(0), m_vram_addr(0), m_vram_src(0), - m_palette(*this, "palette") + nubus_specpdq_device(mconfig, NUBUS_SPECPDQ, tag, owner, clock) { - m_assembled_tag = std::string(tag).append(":").append(SPECPDQ_SCREEN_NAME); - m_screen_tag = m_assembled_tag.c_str(); } -nubus_specpdq_device::nubus_specpdq_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_video_interface(mconfig, *this), - device_nubus_card_interface(mconfig, *this), m_vram32(nullptr), m_mode(0), m_vbl_disable(0), m_count(0), m_clutoffs(0), m_timer(nullptr), m_width(0), m_height(0), m_patofsx(0), m_patofsy(0), m_vram_addr(0), m_vram_src(0), - m_palette(*this, "palette") +nubus_specpdq_device::nubus_specpdq_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), + device_video_interface(mconfig, *this), + device_nubus_card_interface(mconfig, *this), + m_vram32(nullptr), m_mode(0), m_vbl_disable(0), m_count(0), m_clutoffs(0), m_timer(nullptr), + m_assembled_tag(util::string_format("%s:%s", tag, SPECPDQ_SCREEN_NAME)), + m_width(0), m_height(0), m_patofsx(0), m_patofsy(0), m_vram_addr(0), m_vram_src(0), + m_palette(*this, "palette") { - m_assembled_tag = std::string(tag).append(":").append(SPECPDQ_SCREEN_NAME); m_screen_tag = m_assembled_tag.c_str(); } diff --git a/src/devices/bus/nubus/nubus_specpdq.h b/src/devices/bus/nubus/nubus_specpdq.h index a327ed51d3b..153badb8f55 100644 --- a/src/devices/bus/nubus/nubus_specpdq.h +++ b/src/devices/bus/nubus/nubus_specpdq.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:R. Belmont -#pragma once +#ifndef MAME_BUS_NUBUS_NUBUS_SPECPDQ_H +#define MAME_BUS_NUBUS_NUBUS_SPECPDQ_H -#ifndef __NUBUS_SPECPDQ_H__ -#define __NUBUS_SPECPDQ_H__ +#pragma once #include "nubus.h" @@ -19,44 +19,45 @@ class nubus_specpdq_device : public device_nubus_card_interface { public: - // construction/destruction - nubus_specpdq_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - nubus_specpdq_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); + // construction/destruction + nubus_specpdq_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + + // optional information overrides + virtual machine_config_constructor device_mconfig_additions() const override; + virtual const tiny_rom_entry *device_rom_region() const override; + virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; - virtual const tiny_rom_entry *device_rom_region() const override; - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); - uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); protected: - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; + nubus_specpdq_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); - DECLARE_READ32_MEMBER(specpdq_r); - DECLARE_WRITE32_MEMBER(specpdq_w); - DECLARE_READ32_MEMBER(vram_r); - DECLARE_WRITE32_MEMBER(vram_w); + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; -public: - std::vector m_vram; - uint32_t *m_vram32; - uint32_t m_mode, m_vbl_disable; - uint32_t m_palette_val[256], m_colors[3], m_count, m_clutoffs; - emu_timer *m_timer; - std::string m_assembled_tag; + DECLARE_READ32_MEMBER(specpdq_r); + DECLARE_WRITE32_MEMBER(specpdq_w); + DECLARE_READ32_MEMBER(vram_r); + DECLARE_WRITE32_MEMBER(vram_w); + + std::vector m_vram; + uint32_t *m_vram32; + uint32_t m_mode, m_vbl_disable; + uint32_t m_palette_val[256], m_colors[3], m_count, m_clutoffs; + emu_timer *m_timer; + const std::string m_assembled_tag; private: - uint32_t m_7xxxxx_regs[0x100000/4]; - int m_width, m_height, m_patofsx, m_patofsy; - uint32_t m_vram_addr, m_vram_src; - uint8_t m_fillbytes[256]; - required_device m_palette; + uint32_t m_7xxxxx_regs[0x100000/4]; + int m_width, m_height, m_patofsx, m_patofsy; + uint32_t m_vram_addr, m_vram_src; + uint8_t m_fillbytes[256]; + required_device m_palette; }; // device type definition -extern const device_type NUBUS_SPECPDQ; +DECLARE_DEVICE_TYPE(NUBUS_SPECPDQ, nubus_specpdq_device) -#endif /* __NUBUS_SPECPDQ_H__ */ +#endif // MAME_BUS_NUBUS_NUBUS_SPECPDQ_H diff --git a/src/devices/bus/nubus/nubus_vikbw.cpp b/src/devices/bus/nubus/nubus_vikbw.cpp index ed901d672c8..a17da037ad1 100644 --- a/src/devices/bus/nubus/nubus_vikbw.cpp +++ b/src/devices/bus/nubus/nubus_vikbw.cpp @@ -36,7 +36,7 @@ ROM_END // GLOBAL VARIABLES //************************************************************************** -const device_type NUBUS_VIKBW = device_creator; +DEFINE_DEVICE_TYPE(NUBUS_VIKBW, nubus_vikbw_device, "nb_vikbw", "Moniterm Viking video card") //------------------------------------------------- @@ -67,14 +67,14 @@ const tiny_rom_entry *nubus_vikbw_device::device_rom_region() const //------------------------------------------------- nubus_vikbw_device::nubus_vikbw_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, NUBUS_VIKBW, "Moniterm Viking video card", tag, owner, clock, "nb_vikbw", __FILE__), - device_nubus_card_interface(mconfig, *this), m_vbl_disable(0) + nubus_vikbw_device(mconfig, NUBUS_VIKBW, tag, owner, clock) { } -nubus_vikbw_device::nubus_vikbw_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_nubus_card_interface(mconfig, *this), m_vbl_disable(0) +nubus_vikbw_device::nubus_vikbw_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), + device_nubus_card_interface(mconfig, *this), + m_vbl_disable(0) { } diff --git a/src/devices/bus/nubus/nubus_vikbw.h b/src/devices/bus/nubus/nubus_vikbw.h index 071c122025e..fdafbeda6b5 100644 --- a/src/devices/bus/nubus/nubus_vikbw.h +++ b/src/devices/bus/nubus/nubus_vikbw.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:R. Belmont -#pragma once +#ifndef MAME_BUS_NUBUS_VIKBW_H +#define MAME_BUS_NUBUS_VIKBW_H -#ifndef __NUBUS_VIKBW_H__ -#define __NUBUS_VIKBW_H__ +#pragma once #include "nubus.h" @@ -18,32 +18,32 @@ class nubus_vikbw_device : public device_nubus_card_interface { public: - // construction/destruction - nubus_vikbw_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - nubus_vikbw_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); + // construction/destruction + nubus_vikbw_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + + // optional information overrides + virtual machine_config_constructor device_mconfig_additions() const override; + virtual const tiny_rom_entry *device_rom_region() const override; - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; - virtual const tiny_rom_entry *device_rom_region() const override; + uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); - uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); protected: - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; + nubus_vikbw_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); - DECLARE_READ32_MEMBER(viking_ack_r); - DECLARE_WRITE32_MEMBER(viking_ack_w); - DECLARE_READ32_MEMBER(viking_enable_r); - DECLARE_WRITE32_MEMBER(viking_disable_w); + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; -public: - std::vector m_vram; - uint32_t m_vbl_disable, m_palette[2]; -}; + DECLARE_READ32_MEMBER(viking_ack_r); + DECLARE_WRITE32_MEMBER(viking_ack_w); + DECLARE_READ32_MEMBER(viking_enable_r); + DECLARE_WRITE32_MEMBER(viking_disable_w); + std::vector m_vram; + uint32_t m_vbl_disable, m_palette[2]; +}; // device type definition -extern const device_type NUBUS_VIKBW; +DECLARE_DEVICE_TYPE(NUBUS_VIKBW, nubus_vikbw_device) -#endif /* __NUBUS_VIKBW_H__ */ +#endif // MAME_BUS_NUBUS_VIKBW_H diff --git a/src/devices/bus/nubus/nubus_wsportrait.cpp b/src/devices/bus/nubus/nubus_wsportrait.cpp index e231f7c44e0..c37cdf79d0f 100644 --- a/src/devices/bus/nubus/nubus_wsportrait.cpp +++ b/src/devices/bus/nubus/nubus_wsportrait.cpp @@ -39,7 +39,7 @@ ROM_END // GLOBAL VARIABLES //************************************************************************** -const device_type NUBUS_WSPORTRAIT = device_creator; +DEFINE_DEVICE_TYPE(NUBUS_WSPORTRAIT, nubus_wsportrait_device, "nb_wspt", "Macintosh II Portrait Video Card") //------------------------------------------------- @@ -70,20 +70,17 @@ const tiny_rom_entry *nubus_wsportrait_device::device_rom_region() const //------------------------------------------------- nubus_wsportrait_device::nubus_wsportrait_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, NUBUS_WSPORTRAIT, "Macintosh II Portrait Video Card", tag, owner, clock, "nb_wspt", __FILE__), - device_video_interface(mconfig, *this), - device_nubus_card_interface(mconfig, *this), m_vram32(nullptr), m_mode(0), m_vbl_disable(0), m_toggle(0), m_count(0), m_clutoffs(0), m_timer(nullptr) + nubus_wsportrait_device(mconfig, NUBUS_WSPORTRAIT, tag, owner, clock) { - m_assembled_tag = std::string(tag).append(":").append(WSPORTRAIT_SCREEN_NAME); - m_screen_tag = m_assembled_tag.c_str(); } -nubus_wsportrait_device::nubus_wsportrait_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_video_interface(mconfig, *this), - device_nubus_card_interface(mconfig, *this), m_vram32(nullptr), m_mode(0), m_vbl_disable(0), m_toggle(0), m_count(0), m_clutoffs(0), m_timer(nullptr) +nubus_wsportrait_device::nubus_wsportrait_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), + device_video_interface(mconfig, *this), + device_nubus_card_interface(mconfig, *this), + m_vram32(nullptr), m_mode(0), m_vbl_disable(0), m_toggle(0), m_count(0), m_clutoffs(0), m_timer(nullptr), + m_assembled_tag(util::string_format("%s:%s", tag, WSPORTRAIT_SCREEN_NAME)) { - m_assembled_tag = std::string(tag).append(":").append(WSPORTRAIT_SCREEN_NAME); m_screen_tag = m_assembled_tag.c_str(); } diff --git a/src/devices/bus/nubus/nubus_wsportrait.h b/src/devices/bus/nubus/nubus_wsportrait.h index 09ae98f1db2..86d79ab5d1d 100644 --- a/src/devices/bus/nubus/nubus_wsportrait.h +++ b/src/devices/bus/nubus/nubus_wsportrait.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:R. Belmont -#pragma once +#ifndef MAME_BUS_NUBUS_WSPORTRAIT_H +#define MAME_BUS_NUBUS_WSPORTRAIT_H -#ifndef __NUBUS_WSPORTRAIT_H__ -#define __NUBUS_WSPORTRAIT_H__ +#pragma once #include "nubus.h" @@ -19,37 +19,38 @@ class nubus_wsportrait_device : public device_nubus_card_interface { public: - // construction/destruction - nubus_wsportrait_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - nubus_wsportrait_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; - virtual const tiny_rom_entry *device_rom_region() const override; + // construction/destruction + nubus_wsportrait_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); -protected: - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + // optional information overrides + virtual machine_config_constructor device_mconfig_additions() const override; + virtual const tiny_rom_entry *device_rom_region() const override; - DECLARE_READ32_MEMBER(wsportrait_r); - DECLARE_WRITE32_MEMBER(wsportrait_w); - DECLARE_READ32_MEMBER(vram_r); - DECLARE_WRITE32_MEMBER(vram_w); + uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); -public: - std::vector m_vram; - uint32_t *m_vram32; - uint32_t m_mode, m_vbl_disable, m_toggle; - uint32_t m_palette[256], m_colors[3], m_count, m_clutoffs; - emu_timer *m_timer; - std::string m_assembled_tag; +protected: + nubus_wsportrait_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + + DECLARE_READ32_MEMBER(wsportrait_r); + DECLARE_WRITE32_MEMBER(wsportrait_w); + DECLARE_READ32_MEMBER(vram_r); + DECLARE_WRITE32_MEMBER(vram_w); + + std::vector m_vram; + uint32_t *m_vram32; + uint32_t m_mode, m_vbl_disable, m_toggle; + uint32_t m_palette[256], m_colors[3], m_count, m_clutoffs; + emu_timer *m_timer; + const std::string m_assembled_tag; }; // device type definition -extern const device_type NUBUS_WSPORTRAIT; +DECLARE_DEVICE_TYPE(NUBUS_WSPORTRAIT, nubus_wsportrait_device) -#endif /* __NUBUS_M2HIRES_H__ */ +#endif // MAME_BUS_NUBUS_WSPORTRAIT_H diff --git a/src/devices/bus/nubus/pds30_30hr.cpp b/src/devices/bus/nubus/pds30_30hr.cpp index 228055037aa..08ac27391c2 100644 --- a/src/devices/bus/nubus/pds30_30hr.cpp +++ b/src/devices/bus/nubus/pds30_30hr.cpp @@ -39,7 +39,7 @@ ROM_END // GLOBAL VARIABLES //************************************************************************** -const device_type PDS030_XCEED30HR = device_creator; +DEFINE_DEVICE_TYPE(PDS030_XCEED30HR, nubus_xceed30hr_device, "pd3_30hr", "Micron/XCEED Technology Color 30HR") //------------------------------------------------- @@ -70,20 +70,17 @@ const tiny_rom_entry *nubus_xceed30hr_device::device_rom_region() const //------------------------------------------------- nubus_xceed30hr_device::nubus_xceed30hr_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, PDS030_XCEED30HR, "Micron/XCEED Technology Color 30HR", tag, owner, clock, "pd3_30hr", __FILE__), - device_video_interface(mconfig, *this), - device_nubus_card_interface(mconfig, *this), m_vram32(nullptr), m_mode(0), m_vbl_disable(0), m_toggle(0), m_count(0), m_clutoffs(0), m_timer(nullptr) + nubus_xceed30hr_device(mconfig, PDS030_XCEED30HR, tag, owner, clock) { - m_assembled_tag = std::string(tag).append(":").append(XCEED30HR_SCREEN_NAME); - m_screen_tag = m_assembled_tag.c_str(); } -nubus_xceed30hr_device::nubus_xceed30hr_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_video_interface(mconfig, *this), - device_nubus_card_interface(mconfig, *this), m_vram32(nullptr), m_mode(0), m_vbl_disable(0), m_toggle(0), m_count(0), m_clutoffs(0), m_timer(nullptr) +nubus_xceed30hr_device::nubus_xceed30hr_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), + device_video_interface(mconfig, *this), + device_nubus_card_interface(mconfig, *this), + m_vram32(nullptr), m_mode(0), m_vbl_disable(0), m_toggle(0), m_count(0), m_clutoffs(0), m_timer(nullptr), + m_assembled_tag(util::string_format("%s:%s", tag, XCEED30HR_SCREEN_NAME)) { - m_assembled_tag = std::string(tag).append(":").append(XCEED30HR_SCREEN_NAME); m_screen_tag = m_assembled_tag.c_str(); } diff --git a/src/devices/bus/nubus/pds30_30hr.h b/src/devices/bus/nubus/pds30_30hr.h index eb038d791bf..17800579cfc 100644 --- a/src/devices/bus/nubus/pds30_30hr.h +++ b/src/devices/bus/nubus/pds30_30hr.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:R. Belmont -#pragma once +#ifndef MAME_BUS_NUBUS_PDS30_30HR_H +#define MAME_BUS_NUBUS_PDS30_30HR_H -#ifndef __NUBUS_XCEED30HR_H__ -#define __NUBUS_XCEED30HR_H__ +#pragma once #include "nubus.h" @@ -19,37 +19,38 @@ class nubus_xceed30hr_device : public device_nubus_card_interface { public: - // construction/destruction - nubus_xceed30hr_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - nubus_xceed30hr_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; - virtual const tiny_rom_entry *device_rom_region() const override; + // construction/destruction + nubus_xceed30hr_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); -protected: - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + // optional information overrides + virtual machine_config_constructor device_mconfig_additions() const override; + virtual const tiny_rom_entry *device_rom_region() const override; - DECLARE_READ32_MEMBER(xceed30hr_r); - DECLARE_WRITE32_MEMBER(xceed30hr_w); - DECLARE_READ32_MEMBER(vram_r); - DECLARE_WRITE32_MEMBER(vram_w); + uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); -public: - std::vector m_vram; - uint32_t *m_vram32; - uint32_t m_mode, m_vbl_disable, m_toggle; - uint32_t m_palette[256], m_colors[3], m_count, m_clutoffs; - emu_timer *m_timer; - std::string m_assembled_tag; +protected: + nubus_xceed30hr_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + + DECLARE_READ32_MEMBER(xceed30hr_r); + DECLARE_WRITE32_MEMBER(xceed30hr_w); + DECLARE_READ32_MEMBER(vram_r); + DECLARE_WRITE32_MEMBER(vram_w); + + std::vector m_vram; + uint32_t *m_vram32; + uint32_t m_mode, m_vbl_disable, m_toggle; + uint32_t m_palette[256], m_colors[3], m_count, m_clutoffs; + emu_timer *m_timer; + const std::string m_assembled_tag; }; // device type definition -extern const device_type PDS030_XCEED30HR; +DECLARE_DEVICE_TYPE(PDS030_XCEED30HR, nubus_xceed30hr_device) -#endif /* __NUBUS_XCEED30HR_H__ */ +#endif // MAME_BUS_NUBUS_PDS30_30HR_H diff --git a/src/devices/bus/nubus/pds30_cb264.cpp b/src/devices/bus/nubus/pds30_cb264.cpp index 7c192b7dff6..47b2f15728a 100644 --- a/src/devices/bus/nubus/pds30_cb264.cpp +++ b/src/devices/bus/nubus/pds30_cb264.cpp @@ -32,7 +32,7 @@ ROM_END // GLOBAL VARIABLES //************************************************************************** -const device_type PDS030_CB264SE30 = device_creator; +DEFINE_DEVICE_TYPE(PDS030_CB264SE30, nubus_cb264se30_device, "pd3_c264", "RasterOps Colorboard 264/SE30") //------------------------------------------------- @@ -63,20 +63,17 @@ const tiny_rom_entry *nubus_cb264se30_device::device_rom_region() const //------------------------------------------------- nubus_cb264se30_device::nubus_cb264se30_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, PDS030_CB264SE30, "RasterOps Colorboard 264/SE30", tag, owner, clock, "pd3_c264", __FILE__), - device_video_interface(mconfig, *this), - device_nubus_card_interface(mconfig, *this), m_vram32(nullptr), m_mode(0), m_vbl_disable(0), m_toggle(0), m_count(0), m_clutoffs(0), m_timer(nullptr) + nubus_cb264se30_device(mconfig, PDS030_CB264SE30, tag, owner, clock) { - m_assembled_tag = std::string(tag).append(":").append(CB264SE30_SCREEN_NAME); - m_screen_tag = m_assembled_tag.c_str(); } -nubus_cb264se30_device::nubus_cb264se30_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_video_interface(mconfig, *this), - device_nubus_card_interface(mconfig, *this), m_vram32(nullptr), m_mode(0), m_vbl_disable(0), m_toggle(0), m_count(0), m_clutoffs(0), m_timer(nullptr) +nubus_cb264se30_device::nubus_cb264se30_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), + device_video_interface(mconfig, *this), + device_nubus_card_interface(mconfig, *this), + m_vram32(nullptr), m_mode(0), m_vbl_disable(0), m_toggle(0), m_count(0), m_clutoffs(0), m_timer(nullptr), + m_assembled_tag(util::string_format("%s:%s", tag, CB264SE30_SCREEN_NAME)) { - m_assembled_tag = std::string(tag).append(":").append(CB264SE30_SCREEN_NAME); m_screen_tag = m_assembled_tag.c_str(); } diff --git a/src/devices/bus/nubus/pds30_cb264.h b/src/devices/bus/nubus/pds30_cb264.h index 5038660d31e..cf760ccb7fb 100644 --- a/src/devices/bus/nubus/pds30_cb264.h +++ b/src/devices/bus/nubus/pds30_cb264.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:R. Belmont -#pragma once +#ifndef MAME_BUS_NUBUS_PDS30_CB264_H +#define MAME_BUS_NUBUS_PDS30_CB264_H -#ifndef __NUBUS_CB264SE30_H__ -#define __NUBUS_CB264SE30_H__ +#pragma once #include "nubus.h" @@ -19,37 +19,38 @@ class nubus_cb264se30_device : public device_nubus_card_interface { public: - // construction/destruction - nubus_cb264se30_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - nubus_cb264se30_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; - virtual const tiny_rom_entry *device_rom_region() const override; + // construction/destruction + nubus_cb264se30_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); -protected: - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + // optional information overrides + virtual machine_config_constructor device_mconfig_additions() const override; + virtual const tiny_rom_entry *device_rom_region() const override; - DECLARE_READ32_MEMBER(cb264se30_r); - DECLARE_WRITE32_MEMBER(cb264se30_w); - DECLARE_READ32_MEMBER(vram_r); - DECLARE_WRITE32_MEMBER(vram_w); + uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); -public: - std::vector m_vram; - uint32_t *m_vram32; - uint32_t m_mode, m_vbl_disable, m_toggle; - uint32_t m_palette[256], m_colors[3], m_count, m_clutoffs; - emu_timer *m_timer; - std::string m_assembled_tag; +protected: + nubus_cb264se30_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + + DECLARE_READ32_MEMBER(cb264se30_r); + DECLARE_WRITE32_MEMBER(cb264se30_w); + DECLARE_READ32_MEMBER(vram_r); + DECLARE_WRITE32_MEMBER(vram_w); + + std::vector m_vram; + uint32_t *m_vram32; + uint32_t m_mode, m_vbl_disable, m_toggle; + uint32_t m_palette[256], m_colors[3], m_count, m_clutoffs; + emu_timer *m_timer; + const std::string m_assembled_tag; }; // device type definition -extern const device_type PDS030_CB264SE30; +DECLARE_DEVICE_TYPE(PDS030_CB264SE30, nubus_cb264se30_device) -#endif /* __NUBUS_CB264SE30_H__ */ +#endif // MAME_BUS_NUBUS_PDS30_CB264_H diff --git a/src/devices/bus/nubus/pds30_mc30.cpp b/src/devices/bus/nubus/pds30_mc30.cpp index aaf61c68d3f..237a1df571f 100644 --- a/src/devices/bus/nubus/pds30_mc30.cpp +++ b/src/devices/bus/nubus/pds30_mc30.cpp @@ -35,7 +35,7 @@ ROM_END // GLOBAL VARIABLES //************************************************************************** -const device_type PDS030_XCEEDMC30 = device_creator; +DEFINE_DEVICE_TYPE(PDS030_XCEEDMC30, nubus_xceedmc30_device, "pd3_mclr", "Micron/XCEED Technology MacroColor 30") //------------------------------------------------- @@ -66,20 +66,17 @@ const tiny_rom_entry *nubus_xceedmc30_device::device_rom_region() const //------------------------------------------------- nubus_xceedmc30_device::nubus_xceedmc30_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, PDS030_XCEEDMC30, "Micron/XCEED Technology MacroColor 30", tag, owner, clock, "pd3_mclr", __FILE__), - device_video_interface(mconfig, *this), - device_nubus_card_interface(mconfig, *this), m_vram32(nullptr), m_mode(0), m_vbl_disable(0), m_toggle(0), m_count(0), m_clutoffs(0), m_timer(nullptr) + nubus_xceedmc30_device(mconfig, PDS030_XCEEDMC30, tag, owner, clock) { - m_assembled_tag = std::string(tag).append(":").append(XCEEDMC30_SCREEN_NAME); - m_screen_tag = m_assembled_tag.c_str(); } -nubus_xceedmc30_device::nubus_xceedmc30_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_video_interface(mconfig, *this), - device_nubus_card_interface(mconfig, *this), m_vram32(nullptr), m_mode(0), m_vbl_disable(0), m_toggle(0), m_count(0), m_clutoffs(0), m_timer(nullptr) +nubus_xceedmc30_device::nubus_xceedmc30_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), + device_video_interface(mconfig, *this), + device_nubus_card_interface(mconfig, *this), + m_vram32(nullptr), m_mode(0), m_vbl_disable(0), m_toggle(0), m_count(0), m_clutoffs(0), m_timer(nullptr), + m_assembled_tag(util::string_format("%s:%s", tag, XCEEDMC30_SCREEN_NAME)) { - m_assembled_tag = std::string(tag).append(":").append(XCEEDMC30_SCREEN_NAME); m_screen_tag = m_assembled_tag.c_str(); } diff --git a/src/devices/bus/nubus/pds30_mc30.h b/src/devices/bus/nubus/pds30_mc30.h index 834231ff7cb..ddf27ce50bc 100644 --- a/src/devices/bus/nubus/pds30_mc30.h +++ b/src/devices/bus/nubus/pds30_mc30.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:R. Belmont -#pragma once +#ifndef MAME_BUS_NUBUS_PDS30_MC30_H +#define MAME_BUS_NUBUS_PDS30_MC30_H -#ifndef __NUBUS_XCEEDMC30_H__ -#define __NUBUS_XCEEDMC30_H__ +#pragma once #include "nubus.h" @@ -19,37 +19,38 @@ class nubus_xceedmc30_device : public device_nubus_card_interface { public: - // construction/destruction - nubus_xceedmc30_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - nubus_xceedmc30_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; - virtual const tiny_rom_entry *device_rom_region() const override; + // construction/destruction + nubus_xceedmc30_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); -protected: - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + // optional information overrides + virtual machine_config_constructor device_mconfig_additions() const override; + virtual const tiny_rom_entry *device_rom_region() const override; - DECLARE_READ32_MEMBER(xceedmc30_r); - DECLARE_WRITE32_MEMBER(xceedmc30_w); - DECLARE_READ32_MEMBER(vram_r); - DECLARE_WRITE32_MEMBER(vram_w); + uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); -public: - std::vector m_vram; - uint32_t *m_vram32; - uint32_t m_mode, m_vbl_disable, m_toggle; - uint32_t m_palette[256], m_colors[3], m_count, m_clutoffs; - emu_timer *m_timer; - std::string m_assembled_tag; +protected: + nubus_xceedmc30_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + + DECLARE_READ32_MEMBER(xceedmc30_r); + DECLARE_WRITE32_MEMBER(xceedmc30_w); + DECLARE_READ32_MEMBER(vram_r); + DECLARE_WRITE32_MEMBER(vram_w); + + std::vector m_vram; + uint32_t *m_vram32; + uint32_t m_mode, m_vbl_disable, m_toggle; + uint32_t m_palette[256], m_colors[3], m_count, m_clutoffs; + emu_timer *m_timer; + const std::string m_assembled_tag; }; // device type definition -extern const device_type PDS030_XCEEDMC30; +DECLARE_DEVICE_TYPE(PDS030_XCEEDMC30, nubus_xceedmc30_device) -#endif /* __NUBUS_XCEEDMC30_H__ */ +#endif // MAME_BUS_NUBUS_PDS30_MC30_H diff --git a/src/devices/bus/nubus/pds30_procolor816.cpp b/src/devices/bus/nubus/pds30_procolor816.cpp index fc7ef895227..11358165761 100644 --- a/src/devices/bus/nubus/pds30_procolor816.cpp +++ b/src/devices/bus/nubus/pds30_procolor816.cpp @@ -38,7 +38,7 @@ ROM_END // GLOBAL VARIABLES //************************************************************************** -const device_type PDS030_PROCOLOR816 = device_creator; +DEFINE_DEVICE_TYPE(PDS030_PROCOLOR816, nubus_procolor816_device, "pd3_pc16", "Lapis ProColor Server 8*16") //------------------------------------------------- @@ -69,20 +69,17 @@ const tiny_rom_entry *nubus_procolor816_device::device_rom_region() const //------------------------------------------------- nubus_procolor816_device::nubus_procolor816_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, PDS030_PROCOLOR816, "Lapis ProColor Server 8*16", tag, owner, clock, "pd3_pc16", __FILE__), - device_video_interface(mconfig, *this), - device_nubus_card_interface(mconfig, *this), m_vram32(nullptr), m_mode(0), m_vbl_disable(0), m_toggle(0), m_count(0), m_clutoffs(0), m_timer(nullptr) + nubus_procolor816_device(mconfig, PDS030_PROCOLOR816, tag, owner, clock) { - m_assembled_tag = std::string(tag).append(":").append(PROCOLOR816_SCREEN_NAME); - m_screen_tag = m_assembled_tag.c_str(); } -nubus_procolor816_device::nubus_procolor816_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_video_interface(mconfig, *this), - device_nubus_card_interface(mconfig, *this), m_vram32(nullptr), m_mode(0), m_vbl_disable(0), m_toggle(0), m_count(0), m_clutoffs(0), m_timer(nullptr) +nubus_procolor816_device::nubus_procolor816_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), + device_video_interface(mconfig, *this), + device_nubus_card_interface(mconfig, *this), + m_vram32(nullptr), m_mode(0), m_vbl_disable(0), m_toggle(0), m_count(0), m_clutoffs(0), m_timer(nullptr), + m_assembled_tag(util::string_format("%s:%s", tag, PROCOLOR816_SCREEN_NAME)) { - m_assembled_tag = std::string(tag).append(":").append(PROCOLOR816_SCREEN_NAME); m_screen_tag = m_assembled_tag.c_str(); } diff --git a/src/devices/bus/nubus/pds30_procolor816.h b/src/devices/bus/nubus/pds30_procolor816.h index 84f34dc1ca4..e7145127ef8 100644 --- a/src/devices/bus/nubus/pds30_procolor816.h +++ b/src/devices/bus/nubus/pds30_procolor816.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:R. Belmont -#pragma once +#ifndef MAME_BUS_NUBUS_PDS30_PROCOLOR816_H +#define MAME_BUS_NUBUS_PDS30_PROCOLOR816_H -#ifndef __NUBUS_PROCOLOR816_H__ -#define __NUBUS_PROCOLOR816_H__ +#pragma once #include "nubus.h" @@ -19,37 +19,38 @@ class nubus_procolor816_device : public device_nubus_card_interface { public: - // construction/destruction - nubus_procolor816_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - nubus_procolor816_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; - virtual const tiny_rom_entry *device_rom_region() const override; + // construction/destruction + nubus_procolor816_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); -protected: - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + // optional information overrides + virtual machine_config_constructor device_mconfig_additions() const override; + virtual const tiny_rom_entry *device_rom_region() const override; - DECLARE_READ32_MEMBER(procolor816_r); - DECLARE_WRITE32_MEMBER(procolor816_w); - DECLARE_READ32_MEMBER(vram_r); - DECLARE_WRITE32_MEMBER(vram_w); + uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); -public: - std::vector m_vram; - uint32_t *m_vram32; - uint32_t m_mode, m_vbl_disable, m_toggle; - uint32_t m_palette[256], m_colors[3], m_count, m_clutoffs; - emu_timer *m_timer; - std::string m_assembled_tag; +protected: + nubus_procolor816_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + + DECLARE_READ32_MEMBER(procolor816_r); + DECLARE_WRITE32_MEMBER(procolor816_w); + DECLARE_READ32_MEMBER(vram_r); + DECLARE_WRITE32_MEMBER(vram_w); + + std::vector m_vram; + uint32_t *m_vram32; + uint32_t m_mode, m_vbl_disable, m_toggle; + uint32_t m_palette[256], m_colors[3], m_count, m_clutoffs; + emu_timer *m_timer; + const std::string m_assembled_tag; }; // device type definition -extern const device_type PDS030_PROCOLOR816; +DECLARE_DEVICE_TYPE(PDS030_PROCOLOR816, nubus_procolor816_device) -#endif /* __NUBUS_PROCOLOR816_H__ */ +#endif // MAME_BUS_NUBUS_PDS30_PROCOLOR816_H diff --git a/src/devices/bus/nubus/pds30_sigmalview.cpp b/src/devices/bus/nubus/pds30_sigmalview.cpp index 58e04bd8c8a..6c4269f5f0a 100644 --- a/src/devices/bus/nubus/pds30_sigmalview.cpp +++ b/src/devices/bus/nubus/pds30_sigmalview.cpp @@ -32,7 +32,7 @@ ROM_END // GLOBAL VARIABLES //************************************************************************** -const device_type PDS030_LVIEW = device_creator; +DEFINE_DEVICE_TYPE(PDS030_LVIEW, nubus_lview_device, "pd3_lviw", "Sigma Designs L-View") //------------------------------------------------- @@ -63,20 +63,17 @@ const tiny_rom_entry *nubus_lview_device::device_rom_region() const //------------------------------------------------- nubus_lview_device::nubus_lview_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, PDS030_LVIEW, "Sigma Designs L-View", tag, owner, clock, "pd3_lviw", __FILE__), - device_video_interface(mconfig, *this), - device_nubus_card_interface(mconfig, *this), m_vram32(nullptr), m_vbl_disable(0), m_toggle(0), m_timer(nullptr), m_protstate(0) + nubus_lview_device(mconfig, PDS030_LVIEW, tag, owner, clock) { - m_assembled_tag = std::string(tag).append(":").append(LVIEW_SCREEN_NAME); - m_screen_tag = m_assembled_tag.c_str(); } -nubus_lview_device::nubus_lview_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_video_interface(mconfig, *this), - device_nubus_card_interface(mconfig, *this), m_vram32(nullptr), m_vbl_disable(0), m_toggle(0), m_timer(nullptr), m_protstate(0) +nubus_lview_device::nubus_lview_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), + device_video_interface(mconfig, *this), + device_nubus_card_interface(mconfig, *this), + m_vram32(nullptr), m_vbl_disable(0), m_toggle(0), m_timer(nullptr), m_protstate(0), + m_assembled_tag(util::string_format("%s:%s", tag, LVIEW_SCREEN_NAME)) { - m_assembled_tag = std::string(tag).append(":").append(LVIEW_SCREEN_NAME); m_screen_tag = m_assembled_tag.c_str(); } diff --git a/src/devices/bus/nubus/pds30_sigmalview.h b/src/devices/bus/nubus/pds30_sigmalview.h index 918af8f4c68..9dd6bf522da 100644 --- a/src/devices/bus/nubus/pds30_sigmalview.h +++ b/src/devices/bus/nubus/pds30_sigmalview.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:R. Belmont -#pragma once +#ifndef MAME_BUS_NUBUS_PDS30_SIGMALVIEW_H +#define MAME_BUS_NUBUS_PDS30_SIGMALVIEW_H -#ifndef __NUBUS_LVIEW_H__ -#define __NUBUS_LVIEW_H__ +#pragma once #include "nubus.h" @@ -19,38 +19,39 @@ class nubus_lview_device : public device_nubus_card_interface { public: - // construction/destruction - nubus_lview_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - nubus_lview_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; - virtual const tiny_rom_entry *device_rom_region() const override; + // construction/destruction + nubus_lview_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); -protected: - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + // optional information overrides + virtual machine_config_constructor device_mconfig_additions() const override; + virtual const tiny_rom_entry *device_rom_region() const override; - DECLARE_READ32_MEMBER(lview_r); - DECLARE_WRITE32_MEMBER(lview_w); - DECLARE_READ32_MEMBER(vram_r); - DECLARE_WRITE32_MEMBER(vram_w); + uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); -public: - std::vector m_vram; - uint32_t *m_vram32; - uint32_t m_vbl_disable, m_toggle; - uint32_t m_palette[256]; - emu_timer *m_timer; - int m_protstate; - std::string m_assembled_tag; +protected: + nubus_lview_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + + DECLARE_READ32_MEMBER(lview_r); + DECLARE_WRITE32_MEMBER(lview_w); + DECLARE_READ32_MEMBER(vram_r); + DECLARE_WRITE32_MEMBER(vram_w); + + std::vector m_vram; + uint32_t *m_vram32; + uint32_t m_vbl_disable, m_toggle; + uint32_t m_palette[256]; + emu_timer *m_timer; + int m_protstate; + const std::string m_assembled_tag; }; // device type definition -extern const device_type PDS030_LVIEW; +DECLARE_DEVICE_TYPE(PDS030_LVIEW, nubus_lview_device) -#endif /* __NUBUS_LVIEW_H__ */ +#endif // MAME_BUS_NUBUS_PDS30_SIGMALVIEW_H diff --git a/src/devices/bus/odyssey2/chess.cpp b/src/devices/bus/odyssey2/chess.cpp index c67856fbcaa..d339a8453ba 100644 --- a/src/devices/bus/odyssey2/chess.cpp +++ b/src/devices/bus/odyssey2/chess.cpp @@ -19,12 +19,12 @@ // o2_chess_device - constructor //------------------------------------------------- -const device_type O2_ROM_CHESS = device_creator; +DEFINE_DEVICE_TYPE(O2_ROM_CHESS, o2_chess_device, "o2_chess", "Odyssey 2 Videopac Chess Module") o2_chess_device::o2_chess_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : o2_rom_device(mconfig, O2_ROM_CHESS, "Odyssey 2 BASIC Carts", tag, owner, clock, "o2_chess", __FILE__), - m_cpu(*this, "subcpu") + : o2_rom_device(mconfig, O2_ROM_CHESS, tag, owner, clock) + , m_cpu(*this, "subcpu") { } diff --git a/src/devices/bus/odyssey2/chess.h b/src/devices/bus/odyssey2/chess.h index 86c5822decf..9e5275b4214 100644 --- a/src/devices/bus/odyssey2/chess.h +++ b/src/devices/bus/odyssey2/chess.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __O2_CHESS_H -#define __O2_CHESS_H +#ifndef MAME_BUS_ODYSSEY2_CHESS_H +#define MAME_BUS_ODYSSEY2_CHESS_H + +#pragma once #include "slot.h" #include "rom.h" @@ -12,21 +14,18 @@ class o2_chess_device : public o2_rom_device { - virtual machine_config_constructor device_mconfig_additions() const override; -// virtual const rom_entry *device_rom_region() const; - public: // construction/destruction o2_chess_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + virtual machine_config_constructor device_mconfig_additions() const override; +// virtual const rom_entry *device_rom_region() const; + private: required_device m_cpu; }; - - // device type definition -extern const device_type O2_ROM_CHESS; - +DECLARE_DEVICE_TYPE(O2_ROM_CHESS, o2_chess_device) -#endif +#endif // MAME_BUS_ODYSSEY2_CHESS_H diff --git a/src/devices/bus/odyssey2/rom.cpp b/src/devices/bus/odyssey2/rom.cpp index 7a073e7fb19..a7b705308fd 100644 --- a/src/devices/bus/odyssey2/rom.cpp +++ b/src/devices/bus/odyssey2/rom.cpp @@ -17,32 +17,30 @@ // o2_rom_device - constructor //------------------------------------------------- -const device_type O2_ROM_STD = device_creator; -const device_type O2_ROM_12K = device_creator; -const device_type O2_ROM_16K = device_creator; +DEFINE_DEVICE_TYPE(O2_ROM_STD, o2_rom_device, "o2_rom", "Odyssey 2 Standard Carts") +DEFINE_DEVICE_TYPE(O2_ROM_12K, o2_rom12_device, "o2_rom12", "Odyssey 2 12K Carts") +DEFINE_DEVICE_TYPE(O2_ROM_16K, o2_rom16_device, "o2_rom16", "Odyssey 2 16K Carts") -o2_rom_device::o2_rom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_o2_cart_interface(mconfig, *this), - m_bank_base(0) +o2_rom_device::o2_rom_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) + , device_o2_cart_interface(mconfig, *this) + , m_bank_base(0) { } o2_rom_device::o2_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, O2_ROM_STD, "Odyssey 2 Standard Carts", tag, owner, clock, "o2_rom", __FILE__), - device_o2_cart_interface( mconfig, *this ), - m_bank_base(0) - { + : o2_rom_device(mconfig, O2_ROM_STD, tag, owner, clock) +{ } o2_rom12_device::o2_rom12_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : o2_rom_device(mconfig, O2_ROM_12K, "Odyssey 2 12K Carts", tag, owner, clock, "o2_rom12", __FILE__) + : o2_rom_device(mconfig, O2_ROM_12K, tag, owner, clock) { } o2_rom16_device::o2_rom16_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : o2_rom_device(mconfig, O2_ROM_16K, "Odyssey 2 16K Carts", tag, owner, clock, "o2_rom16", __FILE__) + : o2_rom_device(mconfig, O2_ROM_16K, tag, owner, clock) { } diff --git a/src/devices/bus/odyssey2/rom.h b/src/devices/bus/odyssey2/rom.h index d3931e96b88..823b47462c7 100644 --- a/src/devices/bus/odyssey2/rom.h +++ b/src/devices/bus/odyssey2/rom.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __O2_ROM_H -#define __O2_ROM_H +#ifndef MAME_BUS_ODYSSEY2_ROM_H +#define MAME_BUS_ODYSSEY2_ROM_H + +#pragma once #include "slot.h" @@ -13,13 +15,8 @@ class o2_rom_device : public device_t, { public: // construction/destruction - o2_rom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); o2_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - // reading and writing virtual DECLARE_READ8_MEMBER(read_rom04) override; virtual DECLARE_READ8_MEMBER(read_rom0c) override; @@ -27,6 +24,12 @@ public: virtual void write_bank(int bank) override; protected: + o2_rom_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + int m_bank_base; }; @@ -57,11 +60,9 @@ public: }; - // device type definition -extern const device_type O2_ROM_STD; -extern const device_type O2_ROM_12K; -extern const device_type O2_ROM_16K; - +DECLARE_DEVICE_TYPE(O2_ROM_STD, o2_rom_device) +DECLARE_DEVICE_TYPE(O2_ROM_12K, o2_rom12_device) +DECLARE_DEVICE_TYPE(O2_ROM_16K, o2_rom16_device) -#endif +#endif // MAME_BUS_ODYSSEY2_ROM_H diff --git a/src/devices/bus/odyssey2/slot.cpp b/src/devices/bus/odyssey2/slot.cpp index b9c8b90f445..b75ccdb92e2 100644 --- a/src/devices/bus/odyssey2/slot.cpp +++ b/src/devices/bus/odyssey2/slot.cpp @@ -15,7 +15,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type O2_CART_SLOT = device_creator; +DEFINE_DEVICE_TYPE(O2_CART_SLOT, o2_cart_slot_device, "o2_cart_slot", "Odyssey 2 Cartridge Slot") //************************************************************************** // Odyssey 2 Cartridges Interface @@ -26,9 +26,9 @@ const device_type O2_CART_SLOT = device_creator; //------------------------------------------------- device_o2_cart_interface::device_o2_cart_interface(const machine_config &mconfig, device_t &device) - : device_slot_card_interface(mconfig, device), - m_rom(nullptr), - m_rom_size(0) + : device_slot_card_interface(mconfig, device) + , m_rom(nullptr) + , m_rom_size(0) { } @@ -72,11 +72,11 @@ void device_o2_cart_interface::ram_alloc(uint32_t size) //------------------------------------------------- // o2_cart_slot_device - constructor //------------------------------------------------- -o2_cart_slot_device::o2_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, O2_CART_SLOT, "Odyssey 2 Cartridge Slot", tag, owner, clock, "o2_cart_slot", __FILE__), - device_image_interface(mconfig, *this), - device_slot_interface(mconfig, *this), - m_type(O2_STD), m_cart(nullptr) +o2_cart_slot_device::o2_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, O2_CART_SLOT, tag, owner, clock) + , device_image_interface(mconfig, *this) + , device_slot_interface(mconfig, *this) + , m_type(O2_STD), m_cart(nullptr) { } diff --git a/src/devices/bus/odyssey2/slot.h b/src/devices/bus/odyssey2/slot.h index 284300072ad..992d55abad5 100644 --- a/src/devices/bus/odyssey2/slot.h +++ b/src/devices/bus/odyssey2/slot.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __O2_SLOT_H -#define __O2_SLOT_H +#ifndef MAME_BUS_ODYSSEY2_SLOT_H +#define MAME_BUS_ODYSSEY2_SLOT_H + +#pragma once #include "softlist_dev.h" @@ -28,15 +30,14 @@ class device_o2_cart_interface : public device_slot_card_interface { public: // construction/destruction - device_o2_cart_interface(const machine_config &mconfig, device_t &device); virtual ~device_o2_cart_interface(); // reading and writing virtual DECLARE_READ8_MEMBER(read_rom04) { return 0xff; } virtual DECLARE_READ8_MEMBER(read_rom0c) { return 0xff; } - virtual void write_bank(int bank) {} + virtual void write_bank(int bank) { } - virtual DECLARE_WRITE8_MEMBER(io_write) {} + virtual DECLARE_WRITE8_MEMBER(io_write) { } virtual DECLARE_READ_LINE_MEMBER(t0_read) { return 0; } void rom_alloc(uint32_t size, const char *tag); @@ -47,6 +48,8 @@ public: uint32_t get_ram_size() { return m_ram.size(); } protected: + device_o2_cart_interface(const machine_config &mconfig, device_t &device); + // internal state uint8_t *m_rom; uint32_t m_rom_size; @@ -70,7 +73,7 @@ public: // image-level overrides virtual image_init_result call_load() override; - virtual void call_unload() override {} + virtual void call_unload() override { } virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); } int get_type() { return m_type; } @@ -98,13 +101,11 @@ public: protected: int m_type; - device_o2_cart_interface* m_cart; + device_o2_cart_interface* m_cart; }; - - // device type definition -extern const device_type O2_CART_SLOT; +DECLARE_DEVICE_TYPE(O2_CART_SLOT, o2_cart_slot_device) /*************************************************************************** @@ -119,4 +120,4 @@ extern const device_type O2_CART_SLOT; SLOT_INTERFACE_EXTERN(o2_cart); -#endif +#endif // MAME_BUS_ODYSSEY2_SLOT_H diff --git a/src/devices/bus/odyssey2/voice.cpp b/src/devices/bus/odyssey2/voice.cpp index 7303e0a1939..6dd099968a2 100644 --- a/src/devices/bus/odyssey2/voice.cpp +++ b/src/devices/bus/odyssey2/voice.cpp @@ -21,14 +21,14 @@ // o2_voice_device - constructor //------------------------------------------------- -const device_type O2_ROM_VOICE = device_creator; +DEFINE_DEVICE_TYPE(O2_ROM_VOICE, o2_voice_device, "o2_voice", "Odyssey 2 The Voice Passthrough Cart") o2_voice_device::o2_voice_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : o2_rom_device(mconfig, O2_ROM_VOICE, "Odyssey 2 The Voice Passthrough Cart", tag, owner, clock, "o2_voice", __FILE__), - m_speech(*this, "sp0256_speech"), - m_subslot(*this, "subslot"), - m_lrq_state(0) + : o2_rom_device(mconfig, O2_ROM_VOICE, tag, owner, clock) + , m_speech(*this, "sp0256_speech") + , m_subslot(*this, "subslot") + , m_lrq_state(0) { } diff --git a/src/devices/bus/odyssey2/voice.h b/src/devices/bus/odyssey2/voice.h index 5262350823a..42550739843 100644 --- a/src/devices/bus/odyssey2/voice.h +++ b/src/devices/bus/odyssey2/voice.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __O2_VOICE_H -#define __O2_VOICE_H +#ifndef MAME_BUS_ODYSSEY2_VOICE_H +#define MAME_BUS_ODYSSEY2_VOICE_H + +#pragma once #include "slot.h" #include "rom.h" @@ -16,10 +18,6 @@ public: // construction/destruction o2_voice_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override {} - virtual machine_config_constructor device_mconfig_additions() const override; virtual const tiny_rom_entry *device_rom_region() const override; @@ -33,6 +31,11 @@ public: virtual DECLARE_WRITE8_MEMBER(io_write) override; virtual DECLARE_READ_LINE_MEMBER(t0_read) override { return m_speech->lrq_r() ? 0 : 1; } +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override { } + private: required_device m_speech; required_device m_subslot; @@ -41,10 +44,7 @@ private: }; - - // device type definition extern const device_type O2_ROM_VOICE; - -#endif +#endif // MAME_BUS_ODYSSEY2_VOICE_H diff --git a/src/devices/bus/oricext/jasmin.cpp b/src/devices/bus/oricext/jasmin.cpp index 686ead3cc5d..6f5543e82a3 100644 --- a/src/devices/bus/oricext/jasmin.cpp +++ b/src/devices/bus/oricext/jasmin.cpp @@ -4,7 +4,7 @@ #include "jasmin.h" #include "formats/oric_dsk.h" -const device_type JASMIN = device_creator; +DEFINE_DEVICE_TYPE(JASMIN, jasmin_device, "jasmin", "Jasmin floppy drive interface") ROM_START( jasmin ) ROM_REGION( 0x800, "jasmin", 0 ) @@ -35,7 +35,7 @@ INPUT_PORTS_START( jasmin ) INPUT_PORTS_END DEVICE_ADDRESS_MAP_START(map, 8, jasmin_device) - AM_RANGE(0x3f4, 0x3f7) AM_DEVREADWRITE("fdc", wd1770_t, read, write) + AM_RANGE(0x3f4, 0x3f7) AM_DEVREADWRITE("fdc", wd1770_device, read, write) AM_RANGE(0x3f8, 0x3f8) AM_WRITE(side_sel_w) AM_RANGE(0x3f9, 0x3f9) AM_WRITE(fdc_reset_w) AM_RANGE(0x3fa, 0x3fa) AM_WRITE(ram_access_w) @@ -44,7 +44,7 @@ DEVICE_ADDRESS_MAP_START(map, 8, jasmin_device) ADDRESS_MAP_END jasmin_device::jasmin_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - oricext_device(mconfig, JASMIN, "Jasmin floppy drive interface", tag, owner, clock, "jasmin", __FILE__), + oricext_device(mconfig, JASMIN, tag, owner, clock), fdc(*this, "fdc"), side_sel(false), fdc_reset(false), ram_access(false), rom_access(false), jasmin_rom(nullptr), cur_floppy(nullptr) { } diff --git a/src/devices/bus/oricext/jasmin.h b/src/devices/bus/oricext/jasmin.h index 8b4047be695..dc1dd9456ed 100644 --- a/src/devices/bus/oricext/jasmin.h +++ b/src/devices/bus/oricext/jasmin.h @@ -1,13 +1,15 @@ // license:BSD-3-Clause // copyright-holders:Olivier Galibert -#ifndef __JASMIN_H__ -#define __JASMIN_H__ +#ifndef MAME_BUS_ORICEXT_JASMIN_H +#define MAME_BUS_ORICEXT_JASMIN_H + +#pragma once #include "oricext.h" #include "imagedev/floppy.h" #include "machine/wd_fdc.h" -extern const device_type JASMIN; +DECLARE_DEVICE_TYPE(JASMIN, jasmin_device) class jasmin_device : public oricext_device { @@ -25,12 +27,6 @@ public: DECLARE_WRITE8_MEMBER(select_w); protected: - required_device fdc; - - bool side_sel, fdc_reset, ram_access, rom_access, select[4]; - uint8_t *jasmin_rom; - floppy_image_device *cur_floppy, *floppies[4]; - virtual void device_start() override; virtual void device_reset() override; const tiny_rom_entry *device_rom_region() const override; @@ -38,6 +34,12 @@ protected: virtual ioport_constructor device_input_ports() const override; void remap(); + + required_device fdc; + + bool side_sel, fdc_reset, ram_access, rom_access, select[4]; + uint8_t *jasmin_rom; + floppy_image_device *cur_floppy, *floppies[4]; }; -#endif +#endif // MAME_BUS_ORICEXT_JASMIN_H diff --git a/src/devices/bus/oricext/microdisc.cpp b/src/devices/bus/oricext/microdisc.cpp index c6607ba18fc..780c876e977 100644 --- a/src/devices/bus/oricext/microdisc.cpp +++ b/src/devices/bus/oricext/microdisc.cpp @@ -4,7 +4,7 @@ #include "microdisc.h" #include "formats/oric_dsk.h" -const device_type MICRODISC = device_creator; +DEFINE_DEVICE_TYPE(MICRODISC, microdisc_device, "microdisc", "Microdisc floppy drive interface") ROM_START( microdisc ) ROM_REGION( 0x2000, "microdisc", 0 ) @@ -33,13 +33,13 @@ static MACHINE_CONFIG_FRAGMENT( microdisc ) MACHINE_CONFIG_END DEVICE_ADDRESS_MAP_START(map, 8, microdisc_device) - AM_RANGE(0x310, 0x313) AM_DEVREADWRITE("fdc", fd1793_t, read, write) + AM_RANGE(0x310, 0x313) AM_DEVREADWRITE("fdc", fd1793_device, read, write) AM_RANGE(0x314, 0x314) AM_READWRITE(port_314_r, port_314_w) AM_RANGE(0x318, 0x318) AM_READ(port_318_r) ADDRESS_MAP_END microdisc_device::microdisc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - oricext_device(mconfig, MICRODISC, "Microdisc floppy drive interface", tag, owner, clock, "microdisc", __FILE__), + oricext_device(mconfig, MICRODISC, tag, owner, clock), fdc(*this, "fdc"), microdisc_rom(nullptr), port_314(0), intrq_state(false), drq_state(false), hld_state(false) { } diff --git a/src/devices/bus/oricext/microdisc.h b/src/devices/bus/oricext/microdisc.h index c4cc450db4f..18980a7f167 100644 --- a/src/devices/bus/oricext/microdisc.h +++ b/src/devices/bus/oricext/microdisc.h @@ -1,13 +1,13 @@ // license:BSD-3-Clause // copyright-holders:Olivier Galibert -#ifndef __MICRODISC_H__ -#define __MICRODISC_H__ +#ifndef MAME_BUS_ORICEXT_MICRODISC_H +#define MAME_BUS_ORICEXT_MICRODISC_H #include "oricext.h" #include "imagedev/floppy.h" #include "machine/wd_fdc.h" -extern const device_type MICRODISC; +DECLARE_DEVICE_TYPE(MICRODISC, microdisc_device) class microdisc_device : public oricext_device { @@ -36,7 +36,7 @@ protected: P_EPROM = 0x80 }; - required_device fdc; + required_device fdc; uint8_t *microdisc_rom; floppy_image_device *floppies[4]; @@ -51,4 +51,4 @@ protected: void remap(); }; -#endif +#endif // MAME_BUS_ORICEXT_MICRODISC_H diff --git a/src/devices/bus/oricext/oricext.cpp b/src/devices/bus/oricext/oricext.cpp index 981507572ef..feb7f821c69 100644 --- a/src/devices/bus/oricext/oricext.cpp +++ b/src/devices/bus/oricext/oricext.cpp @@ -5,10 +5,10 @@ #include "jasmin.h" #include "microdisc.h" -const device_type ORICEXT_CONNECTOR = device_creator; +DEFINE_DEVICE_TYPE(ORICEXT_CONNECTOR, oricext_connector, "oricext_connector", "ORIC extension connector") oricext_connector::oricext_connector(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, ORICEXT_CONNECTOR, "ORIC extension connector", tag, owner, clock, "oricext_connector", __FILE__), + device_t(mconfig, ORICEXT_CONNECTOR, tag, owner, clock), device_slot_interface(mconfig, *this), irq_handler(*this), cputag(nullptr) @@ -41,8 +41,8 @@ void oricext_connector::device_config_complete() dev->set_cputag(cputag); } -oricext_device::oricext_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), +oricext_device::oricext_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), device_slot_card_interface(mconfig, *this), cputag(nullptr), cpu(nullptr), diff --git a/src/devices/bus/oricext/oricext.h b/src/devices/bus/oricext/oricext.h index 608e631a33c..6dc84ed2599 100644 --- a/src/devices/bus/oricext/oricext.h +++ b/src/devices/bus/oricext/oricext.h @@ -6,8 +6,10 @@ ***************************************************************************/ -#ifndef __ORICEXT_H__ -#define __ORICEXT_H__ +#ifndef MAME_BUS_ORICEXT_ORICEXT_H +#define MAME_BUS_ORICEXT_ORICEXT_H + +#pragma once #include "cpu/m6502/m6502.h" @@ -20,45 +22,46 @@ class oricext_device; -class oricext_connector: public device_t, - public device_slot_interface +class oricext_connector: public device_t, public device_slot_interface { public: oricext_connector(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual ~oricext_connector(); void set_cputag(const char *tag); - template static devcb_base &set_irq_handler(device_t &device, _Object object) { return downcast(device).irq_handler.set_callback(object); } + template static devcb_base &set_irq_handler(device_t &device, Object &&cb) { return downcast(device).irq_handler.set_callback(std::forward(cb)); } void irq_w(int state); protected: - devcb_write_line irq_handler; - const char *cputag; virtual void device_start() override; virtual void device_config_complete() override; + + devcb_write_line irq_handler; + const char *cputag; }; class oricext_device : public device_t, public device_slot_card_interface { public: - oricext_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - void set_cputag(const char *tag); DECLARE_WRITE_LINE_MEMBER(irq_w); protected: + oricext_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + virtual void device_start() override; + const char *cputag; m6502_device *cpu; oricext_connector *connector; memory_bank *bank_c000_r, *bank_e000_r, *bank_f800_r, *bank_c000_w, *bank_e000_w, *bank_f800_w; uint8_t *rom, *ram; uint8_t junk_read[8192], junk_write[8192]; - - virtual void device_start() override; }; -extern const device_type ORICEXT_CONNECTOR; +DECLARE_DEVICE_TYPE(ORICEXT_CONNECTOR, oricext_connector) + SLOT_INTERFACE_EXTERN( oricext_intf ); -#endif /* __ORICEXT_H__ */ +#endif // MAME_BUS_ORICEXT_ORICEXT_H diff --git a/src/devices/bus/pc1512/mouse.cpp b/src/devices/bus/pc1512/mouse.cpp index 3029110de6e..04d688765a8 100644 --- a/src/devices/bus/pc1512/mouse.cpp +++ b/src/devices/bus/pc1512/mouse.cpp @@ -15,8 +15,8 @@ // DEVICE DEFINITION //************************************************************************** -const device_type PC1512_MOUSE_PORT = device_creator; -const device_type PC1512_MOUSE = device_creator; +DEFINE_DEVICE_TYPE(PC1512_MOUSE_PORT, pc1512_mouse_port_device, "pc1512_mouse_port", "Amstrad PC1512 mouse port") +DEFINE_DEVICE_TYPE(PC1512_MOUSE, pc1512_mouse_device, "pc1512_mouse", "Amstrad PC1512 mouse") @@ -31,7 +31,7 @@ const device_type PC1512_MOUSE = device_creator; device_pc1512_mouse_port_interface::device_pc1512_mouse_port_interface(const machine_config &mconfig, device_t &device) : device_slot_card_interface(mconfig, device) { - m_port = dynamic_cast(device.owner()); + m_port = dynamic_cast(device.owner()); } @@ -41,11 +41,11 @@ device_pc1512_mouse_port_interface::device_pc1512_mouse_port_interface(const mac //************************************************************************** //------------------------------------------------- -// pc1512_mouse_port_t - constructor +// pc1512_mouse_port_device - constructor //------------------------------------------------- -pc1512_mouse_port_t::pc1512_mouse_port_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, PC1512_MOUSE_PORT, "Amstrad PC1512 mouse port", tag, owner, clock, "pc1512_mouse_port", __FILE__), +pc1512_mouse_port_device::pc1512_mouse_port_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, PC1512_MOUSE_PORT, tag, owner, clock), device_slot_interface(mconfig, *this), m_write_x(*this), m_write_y(*this), @@ -55,8 +55,8 @@ pc1512_mouse_port_t::pc1512_mouse_port_t(const machine_config &mconfig, const ch { } -pc1512_mouse_t::pc1512_mouse_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, PC1512_MOUSE, "Amstrad PC1512 mouse", tag, owner, clock, "pc1512_mouse", __FILE__), +pc1512_mouse_device::pc1512_mouse_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, PC1512_MOUSE, tag, owner, clock), device_pc1512_mouse_port_interface(mconfig, *this) { } @@ -66,7 +66,7 @@ pc1512_mouse_t::pc1512_mouse_t(const machine_config &mconfig, const char *tag, d // device_start - device-specific startup //------------------------------------------------- -void pc1512_mouse_port_t::device_start() +void pc1512_mouse_port_device::device_start() { m_device = dynamic_cast(get_card_device()); @@ -77,7 +77,7 @@ void pc1512_mouse_port_t::device_start() m_write_m2.resolve_safe(); } -void pc1512_mouse_t::device_start() +void pc1512_mouse_device::device_start() { } @@ -88,14 +88,14 @@ void pc1512_mouse_t::device_start() static INPUT_PORTS_START( mouse ) PORT_START("MOUSEB") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_NAME("Left Mouse Button") PORT_CODE(MOUSECODE_BUTTON1) PORT_CHANGED_MEMBER(DEVICE_SELF, pc1512_mouse_t, mouse_button_1_changed, 0) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_NAME("Right Mouse Button") PORT_CODE(MOUSECODE_BUTTON2) PORT_CHANGED_MEMBER(DEVICE_SELF, pc1512_mouse_t, mouse_button_2_changed, 0) + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_NAME("Left Mouse Button") PORT_CODE(MOUSECODE_BUTTON1) PORT_CHANGED_MEMBER(DEVICE_SELF, pc1512_mouse_device, mouse_button_1_changed, 0) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_NAME("Right Mouse Button") PORT_CODE(MOUSECODE_BUTTON2) PORT_CHANGED_MEMBER(DEVICE_SELF, pc1512_mouse_device, mouse_button_2_changed, 0) PORT_START("MOUSEX") - PORT_BIT( 0xff, 0x00, IPT_MOUSE_X ) PORT_SENSITIVITY(100) PORT_KEYDELTA(5) PORT_MINMAX(0, 255) PORT_PLAYER(1) PORT_CHANGED_MEMBER(DEVICE_SELF, pc1512_mouse_t, mouse_x_changed, 0) + PORT_BIT( 0xff, 0x00, IPT_MOUSE_X ) PORT_SENSITIVITY(100) PORT_KEYDELTA(5) PORT_MINMAX(0, 255) PORT_PLAYER(1) PORT_CHANGED_MEMBER(DEVICE_SELF, pc1512_mouse_device, mouse_x_changed, 0) PORT_START("MOUSEY") - PORT_BIT( 0xff, 0x00, IPT_MOUSE_Y ) PORT_SENSITIVITY(100) PORT_KEYDELTA(5) PORT_MINMAX(0, 255) PORT_PLAYER(1) PORT_CHANGED_MEMBER(DEVICE_SELF, pc1512_mouse_t, mouse_y_changed, 0) + PORT_BIT( 0xff, 0x00, IPT_MOUSE_Y ) PORT_SENSITIVITY(100) PORT_KEYDELTA(5) PORT_MINMAX(0, 255) PORT_PLAYER(1) PORT_CHANGED_MEMBER(DEVICE_SELF, pc1512_mouse_device, mouse_y_changed, 0) INPUT_PORTS_END @@ -103,7 +103,7 @@ INPUT_PORTS_END // input_ports - device-specific input ports //------------------------------------------------- -ioport_constructor pc1512_mouse_t::device_input_ports() const +ioport_constructor pc1512_mouse_device::device_input_ports() const { return INPUT_PORTS_NAME( mouse ); } diff --git a/src/devices/bus/pc1512/mouse.h b/src/devices/bus/pc1512/mouse.h index dd89ae97277..f94984ab979 100644 --- a/src/devices/bus/pc1512/mouse.h +++ b/src/devices/bus/pc1512/mouse.h @@ -18,10 +18,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_PC1512_MOUSE_H +#define MAME_BUS_PC1512_MOUSE_H -#ifndef __PC1512_MOUSE_PORT__ -#define __PC1512_MOUSE_PORT__ +#pragma once @@ -37,16 +37,16 @@ MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, false) #define MCFG_PC1512_MOUSE_PORT_X_CB(_write) \ - devcb = &pc1512_mouse_port_t::set_x_wr_callback(*device, DEVCB_##_write); + devcb = &pc1512_mouse_port_device::set_x_wr_callback(*device, DEVCB_##_write); #define MCFG_PC1512_MOUSE_PORT_Y_CB(_write) \ - devcb = &pc1512_mouse_port_t::set_y_wr_callback(*device, DEVCB_##_write); + devcb = &pc1512_mouse_port_device::set_y_wr_callback(*device, DEVCB_##_write); #define MCFG_PC1512_MOUSE_PORT_M1_CB(_write) \ - devcb = &pc1512_mouse_port_t::set_m1_wr_callback(*device, DEVCB_##_write); + devcb = &pc1512_mouse_port_device::set_m1_wr_callback(*device, DEVCB_##_write); #define MCFG_PC1512_MOUSE_PORT_M2_CB(_write) \ - devcb = &pc1512_mouse_port_t::set_m2_wr_callback(*device, DEVCB_##_write); + devcb = &pc1512_mouse_port_device::set_m2_wr_callback(*device, DEVCB_##_write); @@ -54,7 +54,7 @@ // TYPE DEFINITIONS //************************************************************************** -class pc1512_mouse_port_t; +class pc1512_mouse_port_device; // ======================> device_pc1512_mouse_port_interface @@ -63,28 +63,28 @@ class device_pc1512_mouse_port_interface : public device_slot_card_interface { public: // construction/destruction - device_pc1512_mouse_port_interface(const machine_config &mconfig, device_t &device); virtual ~device_pc1512_mouse_port_interface() { } protected: - pc1512_mouse_port_t *m_port; + device_pc1512_mouse_port_interface(const machine_config &mconfig, device_t &device); + + pc1512_mouse_port_device *m_port; }; -// ======================> pc1512_mouse_port_t +// ======================> pc1512_mouse_port_device -class pc1512_mouse_port_t : public device_t, - public device_slot_interface +class pc1512_mouse_port_device : public device_t, public device_slot_interface { public: // construction/destruction - pc1512_mouse_port_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + pc1512_mouse_port_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // static configuration helpers - template static devcb_base &set_x_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_x.set_callback(object); } - template static devcb_base &set_y_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_y.set_callback(object); } - template static devcb_base &set_m1_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_m1.set_callback(object); } - template static devcb_base &set_m2_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_m2.set_callback(object); } + template static devcb_base &set_x_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_x.set_callback(std::forward(cb)); } + template static devcb_base &set_y_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_y.set_callback(std::forward(cb)); } + template static devcb_base &set_m1_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_m1.set_callback(std::forward(cb)); } + template static devcb_base &set_m2_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_m2.set_callback(std::forward(cb)); } // peripheral interface void x_w(uint8_t data) { m_write_x(data); } @@ -105,14 +105,13 @@ protected: }; -// ======================> pc1512_mouse_t +// ======================> pc1512_mouse_device -class pc1512_mouse_t : public device_t, - public device_pc1512_mouse_port_interface +class pc1512_mouse_device : public device_t, public device_pc1512_mouse_port_interface { public: // construction/destruction - pc1512_mouse_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + pc1512_mouse_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual ioport_constructor device_input_ports() const override; @@ -129,11 +128,11 @@ protected: // device type definition -extern const device_type PC1512_MOUSE_PORT; -extern const device_type PC1512_MOUSE; +DECLARE_DEVICE_TYPE(PC1512_MOUSE_PORT, pc1512_mouse_port_device) +DECLARE_DEVICE_TYPE(PC1512_MOUSE, pc1512_mouse_device) // slot devices SLOT_INTERFACE_EXTERN( pc1512_mouse_port_devices ); -#endif +#endif // MAME_BUS_PC1512_MOUSE_H diff --git a/src/devices/bus/pc_joy/pc_joy.cpp b/src/devices/bus/pc_joy/pc_joy.cpp index 925968d9a9e..e71395e84fe 100644 --- a/src/devices/bus/pc_joy/pc_joy.cpp +++ b/src/devices/bus/pc_joy/pc_joy.cpp @@ -12,10 +12,10 @@ #include "pc_joy.h" #include "pc_joy_sw.h" -const device_type PC_JOY = device_creator; +DEFINE_DEVICE_TYPE(PC_JOY, pc_joy_device, "pc_joy", "PC joystick port") pc_joy_device::pc_joy_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, PC_JOY, "PC joystick port", tag, owner, clock, "pc_joy", __FILE__), + device_t(mconfig, PC_JOY, tag, owner, clock), device_slot_interface(mconfig, *this), m_dev(nullptr) { @@ -78,10 +78,10 @@ ioport_constructor pc_basic_joy_device::device_input_ports() const return INPUT_PORTS_NAME( pc_joystick ); } -const device_type PC_BASIC_JOY = device_creator; +DEFINE_DEVICE_TYPE(PC_BASIC_JOY, pc_basic_joy_device, "pc_basic_joy", "PC basic joystick") pc_basic_joy_device::pc_basic_joy_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, PC_BASIC_JOY, "PC basic joystick", tag, owner, clock, "basic_joy", __FILE__), + device_t(mconfig, PC_BASIC_JOY, tag, owner, clock), device_pc_joy_interface(mconfig, *this), m_btn(*this, "btn"), m_x1(*this, "x1"), diff --git a/src/devices/bus/pc_joy/pc_joy.h b/src/devices/bus/pc_joy/pc_joy.h index 4b819ddcc09..39a32816a82 100644 --- a/src/devices/bus/pc_joy/pc_joy.h +++ b/src/devices/bus/pc_joy/pc_joy.h @@ -8,8 +8,10 @@ * *************************************************************************/ -#ifndef PC_JOY_H -#define PC_JOY_H +#ifndef MAME_BUS_PC_JOY_PC_JOY_H +#define MAME_BUS_PC_JOY_PC_JOY_H + +#pragma once #define MCFG_PC_JOY_ADD(_tag) \ @@ -18,10 +20,9 @@ SLOT_INTERFACE_EXTERN(pc_joysticks); -class device_pc_joy_interface: public device_slot_card_interface +class device_pc_joy_interface : public device_slot_card_interface { public: - device_pc_joy_interface(const machine_config &mconfig, device_t &device); virtual ~device_pc_joy_interface(); virtual uint8_t x1(int delta) { return 0; } @@ -30,25 +31,29 @@ public: virtual uint8_t y2(int delta) { return 0; } virtual uint8_t btn() { return 0xf; } virtual void port_write() { } + +protected: + device_pc_joy_interface(const machine_config &mconfig, device_t &device); }; -class pc_joy_device : public device_t, - public device_slot_interface +class pc_joy_device : public device_t, public device_slot_interface { public: pc_joy_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); DECLARE_READ8_MEMBER(joy_port_r); DECLARE_WRITE8_MEMBER(joy_port_w); + protected: virtual void device_start() override { m_stime = machine().time(); } virtual void device_config_complete() override; + private: attotime m_stime; device_pc_joy_interface *m_dev; }; -extern const device_type PC_JOY; +DECLARE_DEVICE_TYPE(PC_JOY, pc_joy_device) class pc_basic_joy_device : public device_t, public device_pc_joy_interface @@ -64,7 +69,7 @@ public: virtual uint8_t btn() override { return m_btn->read(); } protected: - virtual void device_start() override {} + virtual void device_start() override { } private: required_ioport m_btn; @@ -74,4 +79,4 @@ private: required_ioport m_y2; }; -#endif /* PC_JOY_H */ +#endif // MAME_BUS_PC_JOY_PC_JOY_H diff --git a/src/devices/bus/pc_joy/pc_joy_sw.cpp b/src/devices/bus/pc_joy/pc_joy_sw.cpp index 817798ff383..0fbe1e67e45 100644 --- a/src/devices/bus/pc_joy/pc_joy_sw.cpp +++ b/src/devices/bus/pc_joy/pc_joy_sw.cpp @@ -5,10 +5,10 @@ #include "emu.h" #include "pc_joy_sw.h" -const device_type PC_MSSW_PAD = device_creator; +DEFINE_DEVICE_TYPE(PC_MSSW_PAD, pc_mssw_pad_device, "mssw_pad", "Microsoft Sidewinder Pad") pc_mssw_pad_device::pc_mssw_pad_device(const machine_config& mconfig, const char* tag, device_t* owner, uint32_t clock) : - device_t(mconfig, PC_MSSW_PAD, "Microsoft Sidewinder Pad", tag, owner, clock, "mssw_pad", __FILE__), + device_t(mconfig, PC_MSSW_PAD, tag, owner, clock), device_pc_joy_interface(mconfig, *this), m_btn1(*this, "btn1"), m_btn2(*this, "btn2"), diff --git a/src/devices/bus/pc_joy/pc_joy_sw.h b/src/devices/bus/pc_joy/pc_joy_sw.h index c36c564d8e5..cb76b268a36 100644 --- a/src/devices/bus/pc_joy/pc_joy_sw.h +++ b/src/devices/bus/pc_joy/pc_joy_sw.h @@ -1,7 +1,7 @@ // license:BSD-3-Clause // copyright-holders:Carl -#ifndef PC_JOY_SW_H_ -#define PC_JOY_SW_H_ +#ifndef MAME_BUS_PC_JOY_PC_JOY_SW_H +#define MAME_BUS_PC_JOY_PC_JOY_SW_H #include "pc_joy.h" @@ -18,8 +18,8 @@ public: protected: virtual void device_start() override; - virtual void device_timer(emu_timer &timer, device_timer_id tid, int param, void *ptr) override; virtual void device_reset() override; + virtual void device_timer(emu_timer &timer, device_timer_id tid, int param, void *ptr) override; private: required_ioport m_btn1; @@ -33,6 +33,6 @@ private: bool m_active; }; -extern const device_type PC_MSSW_PAD; +DECLARE_DEVICE_TYPE(PC_MSSW_PAD, pc_mssw_pad_device) -#endif /* PC_JOY_SW_H_ */ +#endif // MAME_BUS_PC_JOY_PC_JOY_SW_H diff --git a/src/devices/bus/pc_kbd/ec1841.cpp b/src/devices/bus/pc_kbd/ec1841.cpp index 55ce89d3f6f..19ca2f5338a 100644 --- a/src/devices/bus/pc_kbd/ec1841.cpp +++ b/src/devices/bus/pc_kbd/ec1841.cpp @@ -39,7 +39,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type PC_KBD_EC_1841 = device_creator; +DEFINE_DEVICE_TYPE(PC_KBD_EC_1841, ec_1841_keyboard_device, "kb_ec1841", "EC-1841 Keyboard") //------------------------------------------------- @@ -274,7 +274,7 @@ ioport_constructor ec_1841_keyboard_device::device_input_ports() const //------------------------------------------------- ec_1841_keyboard_device::ec_1841_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, PC_KBD_EC_1841, "EC-1841 Keyboard", tag, owner, clock, "kb_ec1841", __FILE__), + : device_t(mconfig, PC_KBD_EC_1841, tag, owner, clock), device_pc_kbd_interface(mconfig, *this), m_maincpu(*this, I8048_TAG), m_kbd(*this, "MD%02u", 0), diff --git a/src/devices/bus/pc_kbd/ec1841.h b/src/devices/bus/pc_kbd/ec1841.h index 6b381439202..401452ac019 100644 --- a/src/devices/bus/pc_kbd/ec1841.h +++ b/src/devices/bus/pc_kbd/ec1841.h @@ -6,13 +6,13 @@ *********************************************************************/ -#pragma once +#ifndef MAME_BUS_PC_KBD_EC1841_H +#define MAME_BUS_PC_KBD_EC1841_H -#ifndef __PC_KBD_EC_1841__ -#define __PC_KBD_EC_1841__ +#pragma once -#include "cpu/mcs48/mcs48.h" #include "pc_kbdc.h" +#include "cpu/mcs48/mcs48.h" @@ -22,8 +22,7 @@ // ======================> ec_1841_keyboard_device -class ec_1841_keyboard_device : public device_t, - public device_pc_kbd_interface +class ec_1841_keyboard_device : public device_t, public device_pc_kbd_interface { public: // construction/destruction @@ -61,6 +60,6 @@ private: // device type definition -extern const device_type PC_KBD_EC_1841; +DECLARE_DEVICE_TYPE(PC_KBD_EC_1841, ec_1841_keyboard_device) -#endif +#endif // MAME_BUS_PC_KBD_EC1841_H diff --git a/src/devices/bus/pc_kbd/iskr1030.cpp b/src/devices/bus/pc_kbd/iskr1030.cpp index 1720b08f2b8..64f0c078bbb 100644 --- a/src/devices/bus/pc_kbd/iskr1030.cpp +++ b/src/devices/bus/pc_kbd/iskr1030.cpp @@ -34,7 +34,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type PC_KBD_ISKR_1030 = device_creator; +DEFINE_DEVICE_TYPE(PC_KBD_ISKR_1030, iskr_1030_keyboard_device, "kb_iskr1030", "Iskra-1030 Keyboard") //------------------------------------------------- @@ -262,7 +262,7 @@ ioport_constructor iskr_1030_keyboard_device::device_input_ports() const //------------------------------------------------- iskr_1030_keyboard_device::iskr_1030_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, PC_KBD_ISKR_1030, "Iskra-1030 Keyboard", tag, owner, clock, "kb_iskr1030", __FILE__), + : device_t(mconfig, PC_KBD_ISKR_1030, tag, owner, clock), device_pc_kbd_interface(mconfig, *this), m_maincpu(*this, I8048_TAG), m_md00(*this, "MD00"), diff --git a/src/devices/bus/pc_kbd/iskr1030.h b/src/devices/bus/pc_kbd/iskr1030.h index eb47dcbe6dc..3dd0f670479 100644 --- a/src/devices/bus/pc_kbd/iskr1030.h +++ b/src/devices/bus/pc_kbd/iskr1030.h @@ -6,13 +6,13 @@ *********************************************************************/ -#pragma once +#ifndef MAME_BUS_PC_KBD_ISKR1030_H +#define MAME_BUS_PC_KBD_ISKR1030_H -#ifndef __PC_KBD_ISKR_1030__ -#define __PC_KBD_ISKR_1030__ +#pragma once -#include "cpu/mcs48/mcs48.h" #include "pc_kbdc.h" +#include "cpu/mcs48/mcs48.h" #include "machine/rescap.h" @@ -23,8 +23,7 @@ // ======================> iskr_1030_keyboard_device -class iskr_1030_keyboard_device : public device_t, - public device_pc_kbd_interface +class iskr_1030_keyboard_device : public device_t, public device_pc_kbd_interface { public: // construction/destruction @@ -87,6 +86,6 @@ private: // device type definition -extern const device_type PC_KBD_ISKR_1030; +DECLARE_DEVICE_TYPE(PC_KBD_ISKR_1030, iskr_1030_keyboard_device) -#endif +#endif // MAME_BUS_PC_KBD_ISKR1030_H diff --git a/src/devices/bus/pc_kbd/keyboards.h b/src/devices/bus/pc_kbd/keyboards.h index cd88f8b1096..a2a375f96ed 100644 --- a/src/devices/bus/pc_kbd/keyboards.h +++ b/src/devices/bus/pc_kbd/keyboards.h @@ -6,8 +6,10 @@ ***************************************************************************/ -#ifndef __PC_KEYBOARDS_H__ -#define __PC_KEYBOARDS_H__ +#ifndef MAME_BUS_PC_KBD_KEYBOARDS_H +#define MAME_BUS_PC_KBD_KEYBOARDS_H + +#pragma once // PC XT protocol keyboards @@ -28,4 +30,4 @@ SLOT_INTERFACE_EXTERN(pc_xt_keyboards); SLOT_INTERFACE_EXTERN(pc_at_keyboards); -#endif /* __KB_KEYBOARDS_H__ */ +#endif // MAME_BUS_PC_KBD_KEYBOARDS_H diff --git a/src/devices/bus/pc_kbd/keytro.cpp b/src/devices/bus/pc_kbd/keytro.cpp index 7c7d30ed53a..f7311bfec9f 100644 --- a/src/devices/bus/pc_kbd/keytro.cpp +++ b/src/devices/bus/pc_kbd/keytro.cpp @@ -336,8 +336,8 @@ ROM_END // GLOBAL VARIABLES //************************************************************************** -const device_type PC_KBD_KEYTRONIC_PC3270 = device_creator; -const device_type PC_KBD_KEYTRONIC_PC3270_AT = device_creator; +DEFINE_DEVICE_TYPE(PC_KBD_KEYTRONIC_PC3270, pc_kbd_keytronic_pc3270_device, "keytronic_pc3270", "Keytronic PC3270") +DEFINE_DEVICE_TYPE(PC_KBD_KEYTRONIC_PC3270_AT, pc_kbd_keytronic_pc3270_at_device, "keytronic_pc3270_at", "Keytronic PC3270 AT") /***************************************************************************** @@ -378,7 +378,7 @@ ROM_END pc_kbd_keytronic_pc3270_device::pc_kbd_keytronic_pc3270_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - pc_kbd_keytronic_pc3270_device(mconfig, PC_KBD_KEYTRONIC_PC3270, "Keytronic PC3270", tag, owner, clock, "keytronic_pc3270", __FILE__) + pc_kbd_keytronic_pc3270_device(mconfig, PC_KBD_KEYTRONIC_PC3270, tag, owner, clock) { } @@ -386,13 +386,10 @@ pc_kbd_keytronic_pc3270_device::pc_kbd_keytronic_pc3270_device(const machine_con pc_kbd_keytronic_pc3270_device::pc_kbd_keytronic_pc3270_device( machine_config const &mconfig, device_type type, - char const *name, char const *tag, device_t *owner, - uint32_t clock, - char const *shortname, - char const *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), + uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), device_pc_kbd_interface(mconfig, *this), m_cpu(*this, "kb_keytr"), m_p1(0), m_p1_data(0), m_p2(0), m_p3(0), m_last_write_addr(0) { @@ -400,7 +397,7 @@ pc_kbd_keytronic_pc3270_device::pc_kbd_keytronic_pc3270_device( pc_kbd_keytronic_pc3270_at_device::pc_kbd_keytronic_pc3270_at_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - pc_kbd_keytronic_pc3270_device(mconfig, PC_KBD_KEYTRONIC_PC3270_AT, "Keytronic PC3270 AT", tag, owner, clock, "keytronic_pc3270_at", __FILE__) + pc_kbd_keytronic_pc3270_device(mconfig, PC_KBD_KEYTRONIC_PC3270_AT, tag, owner, clock) { } diff --git a/src/devices/bus/pc_kbd/keytro.h b/src/devices/bus/pc_kbd/keytro.h index 11970b71884..6043b21b110 100644 --- a/src/devices/bus/pc_kbd/keytro.h +++ b/src/devices/bus/pc_kbd/keytro.h @@ -9,6 +9,8 @@ #ifndef MAME_BUS_PC_KBD_KEYTRO_H #define MAME_BUS_PC_KBD_KEYTRO_H +#pragma once + #include "pc_kbdc.h" //************************************************************************** @@ -47,12 +49,9 @@ protected: pc_kbd_keytronic_pc3270_device( machine_config const &mconfig, device_type type, - char const *name, char const *tag, device_t *owner, - uint32_t clock, - char const *shortname, - char const *source); + uint32_t clock); // device-level overrides virtual void device_start() override; @@ -77,7 +76,7 @@ public: // device type definition -extern const device_type PC_KBD_KEYTRONIC_PC3270; -extern const device_type PC_KBD_KEYTRONIC_PC3270_AT; +DECLARE_DEVICE_TYPE(PC_KBD_KEYTRONIC_PC3270, pc_kbd_keytronic_pc3270_device) +DECLARE_DEVICE_TYPE(PC_KBD_KEYTRONIC_PC3270_AT, pc_kbd_keytronic_pc3270_at_device) #endif // MAME_BUS_PC_KBD_KEYTRO_H diff --git a/src/devices/bus/pc_kbd/msnat.cpp b/src/devices/bus/pc_kbd/msnat.cpp index 734ae193b9e..b191904bd06 100644 --- a/src/devices/bus/pc_kbd/msnat.cpp +++ b/src/devices/bus/pc_kbd/msnat.cpp @@ -194,7 +194,7 @@ INPUT_PORTS_END // GLOBAL VARIABLES //************************************************************************** -const device_type PC_KBD_MICROSOFT_NATURAL = device_creator; +DEFINE_DEVICE_TYPE(PC_KBD_MICROSOFT_NATURAL, pc_kbd_microsoft_natural_device, "kb_ms_natural", "Microsoft Natural Keyboard") /***************************************************************************** ADDRESS MAPS @@ -229,25 +229,12 @@ ROM_END pc_kbd_microsoft_natural_device::pc_kbd_microsoft_natural_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, PC_KBD_MICROSOFT_NATURAL, "Microsoft Natural Keyboard", tag, owner, clock, "ms_natural", __FILE__) + : device_t(mconfig, PC_KBD_MICROSOFT_NATURAL, tag, owner, clock) , device_pc_kbd_interface(mconfig, *this) , m_cpu(*this, "ms_natrl_cpu") - , m_p2_0(*this, "P2.0") - , m_p2_1(*this, "P2.1") - , m_p2_2(*this, "P2.2") - , m_p2_3(*this, "P2.3") - , m_p2_4(*this, "P2.4") - , m_p2_5(*this, "P2.5") - , m_p2_6(*this, "P2.6") - , m_p2_7(*this, "P2.7") - , m_p1_0(*this, "P1.0") - , m_p1_1(*this, "P1.1") - , m_p1_2(*this, "P1.2") - , m_p1_3(*this, "P1.3") - , m_p1_4(*this, "P1.4") - , m_p1_5(*this, "P1.5") - , m_p1_6(*this, "P1.6") - , m_p1_7(*this, "P1.7"), m_p0(0), m_p1(0), m_p2(0), m_p3(0) + , m_p2_r(*this, "P2.%u", 0) + , m_p1_r(*this, "P1.%u", 0) + , m_p0(0), m_p1(0), m_p2(0), m_p3(0) { } @@ -321,84 +308,52 @@ READ8_MEMBER( pc_kbd_microsoft_natural_device::p0_read ) logerror("%s: P0 read. P1 = %02x, P2 = %02x\n", tag(), m_p1, m_p2 ); if ( ! ( m_p2 & 0x01 ) ) - { - data &= m_p2_0->read(); - } + data &= m_p2_r[0]->read(); if ( ! ( m_p2 & 0x02 ) ) - { - data &= m_p2_1->read(); - } + data &= m_p2_r[1]->read(); if ( ! ( m_p2 & 0x04 ) ) - { - data &= m_p2_2->read(); - } + data &= m_p2_r[2]->read(); if ( ! ( m_p2 & 0x08 ) ) - { - data &= m_p2_3->read(); - } + data &= m_p2_r[3]->read(); if ( ! ( m_p2 & 0x10 ) ) - { - data &= m_p2_4->read(); - } + data &= m_p2_r[4]->read(); if ( ! ( m_p2 & 0x20 ) ) - { - data &= m_p2_5->read(); - } + data &= m_p2_r[5]->read(); if ( ! ( m_p2 & 0x40 ) ) - { - data &= m_p2_6->read(); - } + data &= m_p2_r[6]->read(); if ( ! ( m_p2 & 0x80 ) ) - { - data &= m_p2_7->read(); - } + data &= m_p2_r[7]->read(); if ( ! ( m_p1 & 0x01 ) ) - { - data &= m_p1_0->read(); - } + data &= m_p1_r[0]->read(); if ( ! ( m_p1 & 0x02 ) ) - { - data &= m_p1_1->read(); - } + data &= m_p1_r[1]->read(); if ( ! ( m_p1 & 0x04 ) ) - { - data &= m_p1_2->read(); - } + data &= m_p1_r[2]->read(); if ( ! ( m_p1 & 0x08 ) ) - { - data &= m_p1_3->read(); - } + data &= m_p1_r[3]->read(); if ( ! ( m_p1 & 0x10 ) ) - { - data &= m_p1_4->read(); - } + data &= m_p1_r[4]->read(); if ( ! ( m_p1 & 0x20 ) ) - { - data &= m_p1_5->read(); - } + data &= m_p1_r[5]->read(); if ( ! ( m_p1 & 0x40 ) ) - { - data &= m_p1_6->read(); - } + data &= m_p1_r[6]->read(); if ( ! ( m_p1 & 0x80 ) ) - { - data &= m_p1_7->read(); - } + data &= m_p1_r[7]->read(); return data; } diff --git a/src/devices/bus/pc_kbd/msnat.h b/src/devices/bus/pc_kbd/msnat.h index c3c8eaa5c99..0b0f240b646 100644 --- a/src/devices/bus/pc_kbd/msnat.h +++ b/src/devices/bus/pc_kbd/msnat.h @@ -6,8 +6,10 @@ ***************************************************************************/ -#ifndef __KB_MSNAT_H__ -#define __KB_MSNAT_H__ +#ifndef MAME_BUS_PC_KB_MSNAT_H +#define MAME_BUS_PC_KB_MSNAT_H + +#pragma once #include "pc_kbdc.h" @@ -22,8 +24,6 @@ public: // construction/destruction pc_kbd_microsoft_natural_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - required_device m_cpu; - // optional information overrides virtual machine_config_constructor device_mconfig_additions() const override; virtual ioport_constructor device_input_ports() const override; @@ -40,27 +40,15 @@ public: DECLARE_WRITE8_MEMBER(p3_write); protected: - required_ioport m_p2_0; - required_ioport m_p2_1; - required_ioport m_p2_2; - required_ioport m_p2_3; - required_ioport m_p2_4; - required_ioport m_p2_5; - required_ioport m_p2_6; - required_ioport m_p2_7; - required_ioport m_p1_0; - required_ioport m_p1_1; - required_ioport m_p1_2; - required_ioport m_p1_3; - required_ioport m_p1_4; - required_ioport m_p1_5; - required_ioport m_p1_6; - required_ioport m_p1_7; - // device-level overrides virtual void device_start() override; virtual void device_reset() override; + required_device m_cpu; + + required_ioport_array<8> m_p2_r; + required_ioport_array<8> m_p1_r; + uint8_t m_p0; uint8_t m_p1; uint8_t m_p2; @@ -71,4 +59,4 @@ protected: // device type definition extern const device_type PC_KBD_MICROSOFT_NATURAL; -#endif /* __KB_MSNAT_H__ */ +#endif // MAME_BUS_PC_KB_MSNAT_H diff --git a/src/devices/bus/pc_kbd/pc83.cpp b/src/devices/bus/pc_kbd/pc83.cpp index 33f59c9eb16..89dccb844a0 100644 --- a/src/devices/bus/pc_kbd/pc83.cpp +++ b/src/devices/bus/pc_kbd/pc83.cpp @@ -23,7 +23,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type PC_KBD_IBM_PC_83 = device_creator; +DEFINE_DEVICE_TYPE(PC_KBD_IBM_PC_83, ibm_pc_83_keyboard_device, "kb_pc83", "IBM PC Keyboard") //------------------------------------------------- @@ -241,7 +241,7 @@ ioport_constructor ibm_pc_83_keyboard_device::device_input_ports() const //------------------------------------------------- ibm_pc_83_keyboard_device::ibm_pc_83_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, PC_KBD_IBM_PC_83, "IBM PC Keyboard", tag, owner, clock, "kb_pc83", __FILE__), + device_t(mconfig, PC_KBD_IBM_PC_83, tag, owner, clock), device_pc_kbd_interface(mconfig, *this), m_maincpu(*this, I8048_TAG), m_dr(*this, "DR%02u", 0), diff --git a/src/devices/bus/pc_kbd/pc83.h b/src/devices/bus/pc_kbd/pc83.h index 9d1fc24c47f..a9718fc40de 100644 --- a/src/devices/bus/pc_kbd/pc83.h +++ b/src/devices/bus/pc_kbd/pc83.h @@ -6,10 +6,10 @@ *********************************************************************/ -#pragma once +#ifndef MAME_BUS_PC_KBD_PC83_H +#define MAME_BUS_PC_KBD_PC83_H -#ifndef __PC_KBD_IBM_PC_83__ -#define __PC_KBD_IBM_PC_83__ +#pragma once #include "cpu/mcs48/mcs48.h" #include "pc_kbdc.h" @@ -58,8 +58,7 @@ private: // device type definition -extern const device_type PC_KBD_IBM_PC_83; - +DECLARE_DEVICE_TYPE(PC_KBD_IBM_PC_83, ibm_pc_83_keyboard_device) -#endif +#endif // MAME_BUS_PC_KBD_PC83_H diff --git a/src/devices/bus/pc_kbd/pc_kbdc.cpp b/src/devices/bus/pc_kbd/pc_kbdc.cpp index fd87cca47fc..7fc1ed0419a 100644 --- a/src/devices/bus/pc_kbd/pc_kbdc.cpp +++ b/src/devices/bus/pc_kbd/pc_kbdc.cpp @@ -21,7 +21,7 @@ The following basic program can be useful for identifying scancodes: // GLOBAL VARIABLES //************************************************************************** -const device_type PC_KBDC_SLOT = device_creator; +DEFINE_DEVICE_TYPE(PC_KBDC_SLOT, pc_kbdc_slot_device, "pc_kbdc_slot", "PC keyboard port") //************************************************************************** // LIVE DEVICE @@ -31,8 +31,8 @@ const device_type PC_KBDC_SLOT = device_creator; // pc_kbdc_slot_device - constructor //------------------------------------------------- pc_kbdc_slot_device::pc_kbdc_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, PC_KBDC_SLOT, "PC_KBDC_SLOT", tag, owner, clock, "pc_kbdc_slot", __FILE__), - device_slot_interface(mconfig, *this), + device_t(mconfig, PC_KBDC_SLOT, tag, owner, clock), + device_slot_interface(mconfig, *this), m_kbdc_device(nullptr) { } @@ -63,21 +63,21 @@ void pc_kbdc_slot_device::device_start() // GLOBAL VARIABLES //************************************************************************** -const device_type PC_KBDC = device_creator; +DEFINE_DEVICE_TYPE(PC_KBDC, pc_kbdc_device, "pc_kbdc", "PC KBDC") //------------------------------------------------- // pc_kbdc_device - constructor //------------------------------------------------- pc_kbdc_device::pc_kbdc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, PC_KBDC, "PC_KBDC", tag, owner, clock, "pc_kbdc", __FILE__), - m_out_clock_cb(*this), - m_out_data_cb(*this), - m_clock_state(-1), - m_data_state(-1), m_mb_clock_state(0), m_mb_data_state(0), - m_kb_clock_state(1), - m_kb_data_state(1), - m_keyboard( nullptr ) + device_t(mconfig, PC_KBDC, tag, owner, clock), + m_out_clock_cb(*this), + m_out_data_cb(*this), + m_clock_state(-1), + m_data_state(-1), m_mb_clock_state(0), m_mb_data_state(0), + m_kb_clock_state(1), + m_kb_data_state(1), + m_keyboard( nullptr ) { } @@ -193,9 +193,9 @@ WRITE_LINE_MEMBER( pc_kbdc_device::data_write_from_kb ) //------------------------------------------------- device_pc_kbd_interface::device_pc_kbd_interface(const machine_config &mconfig, device_t &device) - : device_slot_card_interface(mconfig, device), - m_pc_kbdc(nullptr), - m_pc_kbdc_tag(nullptr), m_next(nullptr) + : device_slot_card_interface(mconfig, device) + , m_pc_kbdc(nullptr) + , m_pc_kbdc_tag(nullptr) { } diff --git a/src/devices/bus/pc_kbd/pc_kbdc.h b/src/devices/bus/pc_kbd/pc_kbdc.h index de8cadad147..5b72ef6cd64 100644 --- a/src/devices/bus/pc_kbd/pc_kbdc.h +++ b/src/devices/bus/pc_kbd/pc_kbdc.h @@ -10,10 +10,10 @@ set the data line and then set the clock line. ***************************************************************************/ -#pragma once +#ifndef MAME_BUS_PC_KBD_PC_KBDC_H +#define MAME_BUS_PC_KBD_PC_KBDC_H -#ifndef __PC_KBDC_H__ -#define __PC_KBDC_H__ +#pragma once //************************************************************************** @@ -48,6 +48,7 @@ public: // inline configuration static void static_set_pc_kbdc_slot(device_t &device, device_t *kbdc_device); + protected: // configuration device_t *m_kbdc_device; @@ -55,19 +56,19 @@ protected: // device type definition -extern const device_type PC_KBDC_SLOT; +DECLARE_DEVICE_TYPE(PC_KBDC_SLOT, pc_kbdc_slot_device) class device_pc_kbd_interface; -class pc_kbdc_device : public device_t +class pc_kbdc_device : public device_t { public: // construction/destruction pc_kbdc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_out_clock_callback(device_t &device, _Object object) { return downcast(device).m_out_clock_cb.set_callback(object); } - template static devcb_base &set_out_data_callback(device_t &device, _Object object) { return downcast(device).m_out_data_cb.set_callback(object); } + template static devcb_base &set_out_clock_callback(device_t &device, Object &&cb) { return downcast(device).m_out_clock_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_data_callback(device_t &device, Object &&cb) { return downcast(device).m_out_data_cb.set_callback(std::forward(cb)); } void set_keyboard(device_pc_kbd_interface *keyboard); @@ -103,7 +104,7 @@ protected: // device type definition -extern const device_type PC_KBDC; +DECLARE_DEVICE_TYPE(PC_KBDC, pc_kbdc_device) // ======================> device_pc_pbd_interface @@ -116,8 +117,6 @@ public: device_pc_kbd_interface(const machine_config &mconfig, device_t &device); virtual ~device_pc_kbd_interface(); - device_pc_kbd_interface *next() const { return m_next; } - void set_pc_kbdc_device(); int clock_signal() { return m_pc_kbdc ? m_pc_kbdc->clock_signal() : 1; } @@ -132,11 +131,11 @@ public: // inline configuration static void static_set_pc_kbdc(device_t &device, device_t *kbdc_device); +protected: pc_kbdc_device *m_pc_kbdc; const char *m_pc_kbdc_tag; - device_pc_kbd_interface *m_next; }; -#endif /* __PC_KBDC_H__ */ +#endif // MAME_BUS_PC_KBD_PC_KBDC_H diff --git a/src/devices/bus/pc_kbd/pcat84.cpp b/src/devices/bus/pc_kbd/pcat84.cpp index 0456d7c31fb..4f00bc984b5 100644 --- a/src/devices/bus/pc_kbd/pcat84.cpp +++ b/src/devices/bus/pc_kbd/pcat84.cpp @@ -41,8 +41,8 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type PC_KBD_IBM_PC_AT_84 = device_creator; -const device_type PC_KBD_IBM_3270PC_122 = device_creator; +DEFINE_DEVICE_TYPE(PC_KBD_IBM_PC_AT_84, ibm_pc_at_84_keyboard_device, "kb_pcat84", "IBM PC/AT Keyboard") +DEFINE_DEVICE_TYPE(PC_KBD_IBM_3270PC_122, ibm_3270pc_122_keyboard_device, "kb_3270pc", "IBM 3270PC Keyboard") //------------------------------------------------- @@ -347,8 +347,8 @@ ioport_constructor ibm_3270pc_122_keyboard_device::device_input_ports() const // ibm_pc_at_84_keyboard_device - constructor //------------------------------------------------- -ibm_pc_at_84_keyboard_device::ibm_pc_at_84_keyboard_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), +ibm_pc_at_84_keyboard_device::ibm_pc_at_84_keyboard_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), device_pc_kbd_interface(mconfig, *this), m_maincpu(*this, I8048_TAG), m_dr(*this, "DR%02u", 0), @@ -362,10 +362,14 @@ ibm_pc_at_84_keyboard_device::ibm_pc_at_84_keyboard_device(const machine_config } ibm_pc_at_84_keyboard_device::ibm_pc_at_84_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - ibm_pc_at_84_keyboard_device(mconfig, PC_KBD_IBM_PC_AT_84, "IBM PC/AT Keyboard", tag, owner, clock, "kb_pcat84", __FILE__) { } + ibm_pc_at_84_keyboard_device(mconfig, PC_KBD_IBM_PC_AT_84, tag, owner, clock) +{ +} ibm_3270pc_122_keyboard_device::ibm_3270pc_122_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - ibm_pc_at_84_keyboard_device(mconfig, PC_KBD_IBM_3270PC_122, "IBM 3270PC Keyboard", tag, owner, clock, "kb_3270pc", __FILE__) { } + ibm_pc_at_84_keyboard_device(mconfig, PC_KBD_IBM_3270PC_122, tag, owner, clock) +{ +} //------------------------------------------------- diff --git a/src/devices/bus/pc_kbd/pcat84.h b/src/devices/bus/pc_kbd/pcat84.h index 98b3bb628f1..e15d5624af1 100644 --- a/src/devices/bus/pc_kbd/pcat84.h +++ b/src/devices/bus/pc_kbd/pcat84.h @@ -6,10 +6,10 @@ *********************************************************************/ -#pragma once +#ifndef MAME_BUS_PC_KBD_PCAT84_H +#define MAME_BUS_PC_KBD_PCAT84_H -#ifndef __PC_KBD_IBM_PC_AT_84__ -#define __PC_KBD_IBM_PC_AT_84__ +#pragma once #include "cpu/mcs48/mcs48.h" #include "pc_kbdc.h" @@ -28,7 +28,6 @@ class ibm_pc_at_84_keyboard_device : public device_t, { public: // construction/destruction - ibm_pc_at_84_keyboard_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); ibm_pc_at_84_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides @@ -45,6 +44,8 @@ public: DECLARE_READ_LINE_MEMBER( t1_r ); protected: + ibm_pc_at_84_keyboard_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -90,9 +91,7 @@ public: // device type definition -extern const device_type PC_KBD_IBM_PC_AT_84; -extern const device_type PC_KBD_IBM_3270PC_122; - - +DECLARE_DEVICE_TYPE(PC_KBD_IBM_PC_AT_84, ibm_pc_at_84_keyboard_device) +DECLARE_DEVICE_TYPE(PC_KBD_IBM_3270PC_122, ibm_3270pc_122_keyboard_device) -#endif +#endif // MAME_BUS_PC_KBD_PCAT84_H diff --git a/src/devices/bus/pc_kbd/pcxt83.cpp b/src/devices/bus/pc_kbd/pcxt83.cpp index 6d8cb97a9fb..e76b5054904 100644 --- a/src/devices/bus/pc_kbd/pcxt83.cpp +++ b/src/devices/bus/pc_kbd/pcxt83.cpp @@ -33,7 +33,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type PC_KBD_IBM_PC_XT_83 = device_creator; +DEFINE_DEVICE_TYPE(PC_KBD_IBM_PC_XT_83, ibm_pc_xt_83_keyboard_device, "kb_pcxt83", "IBM PC/XT Keyboard") //------------------------------------------------- @@ -241,7 +241,7 @@ ioport_constructor ibm_pc_xt_83_keyboard_device::device_input_ports() const //------------------------------------------------- ibm_pc_xt_83_keyboard_device::ibm_pc_xt_83_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, PC_KBD_IBM_PC_XT_83, "IBM PC/XT Keyboard", tag, owner, clock, "kb_pcxt83", __FILE__), + : device_t(mconfig, PC_KBD_IBM_PC_XT_83, tag, owner, clock), device_pc_kbd_interface(mconfig, *this), m_maincpu(*this, I8048_TAG), m_md(*this, "MD%02u", 0), diff --git a/src/devices/bus/pc_kbd/pcxt83.h b/src/devices/bus/pc_kbd/pcxt83.h index 034b0499e26..932d766106e 100644 --- a/src/devices/bus/pc_kbd/pcxt83.h +++ b/src/devices/bus/pc_kbd/pcxt83.h @@ -6,13 +6,13 @@ *********************************************************************/ -#pragma once +#ifndef MAME_BUS_PC_KBD_PCXT83_H +#define MAME_BUS_PC_KBD_PCXT83_H -#ifndef __PC_KBD_IBM_PC_XT_83__ -#define __PC_KBD_IBM_PC_XT_83__ +#pragma once -#include "cpu/mcs48/mcs48.h" #include "pc_kbdc.h" +#include "cpu/mcs48/mcs48.h" #include "machine/rescap.h" @@ -23,8 +23,7 @@ // ======================> ibm_pc_xt_83_keyboard_device -class ibm_pc_xt_83_keyboard_device : public device_t, - public device_pc_kbd_interface +class ibm_pc_xt_83_keyboard_device : public device_t, public device_pc_kbd_interface { public: // construction/destruction @@ -64,8 +63,7 @@ private: // device type definition -extern const device_type PC_KBD_IBM_PC_XT_83; - +DECLARE_DEVICE_TYPE(PC_KBD_IBM_PC_XT_83, ibm_pc_xt_83_keyboard_device) -#endif +#endif // MAME_BUS_PC_KBD_PCXT83_H diff --git a/src/devices/bus/pce/pce_rom.cpp b/src/devices/bus/pce/pce_rom.cpp index 1608b1cbb0e..ac837917a34 100644 --- a/src/devices/bus/pce/pce_rom.cpp +++ b/src/devices/bus/pce/pce_rom.cpp @@ -17,37 +17,36 @@ // pce_rom_device - constructor //------------------------------------------------- -const device_type PCE_ROM_STD = device_creator; -const device_type PCE_ROM_CDSYS3 = device_creator; -const device_type PCE_ROM_POPULOUS = device_creator; -const device_type PCE_ROM_SF2 = device_creator; +DEFINE_DEVICE_TYPE(PCE_ROM_STD, pce_rom_device, "pce_rom", "PCE/TG16 Carts") +DEFINE_DEVICE_TYPE(PCE_ROM_CDSYS3, pce_cdsys3_device, "pce_cdsys3", "PCE/TG16 CD-System Cart v3.00") +DEFINE_DEVICE_TYPE(PCE_ROM_POPULOUS, pce_populous_device, "pce_populous", "PCE Populous Cart") +DEFINE_DEVICE_TYPE(PCE_ROM_SF2, pce_sf2_device, "pce_sf2", "PCE Street Fighters 2 Cart") -pce_rom_device::pce_rom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_pce_cart_interface( mconfig, *this ) +pce_rom_device::pce_rom_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) + , device_pce_cart_interface( mconfig, *this ) { } pce_rom_device::pce_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, PCE_ROM_STD, "PCE & TG16 Carts", tag, owner, clock, "pce_rom", __FILE__), - device_pce_cart_interface( mconfig, *this ) + : pce_rom_device(mconfig, PCE_ROM_STD, tag, owner, clock) { } pce_cdsys3_device::pce_cdsys3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : pce_rom_device(mconfig, PCE_ROM_CDSYS3, "PCE & TG16 CD-System Cart v3.00", tag, owner, clock, "pce_cdsys3", __FILE__) + : pce_rom_device(mconfig, PCE_ROM_CDSYS3, tag, owner, clock) { } pce_populous_device::pce_populous_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : pce_rom_device(mconfig, PCE_ROM_POPULOUS, "PCE Populous Cart", tag, owner, clock, "pce_populous", __FILE__) + : pce_rom_device(mconfig, PCE_ROM_POPULOUS, tag, owner, clock) { } pce_sf2_device::pce_sf2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : pce_rom_device(mconfig, PCE_ROM_SF2, "PCE Street Fighters 2 Cart", tag, owner, clock, "pce_sf2", __FILE__), m_bank_base(0) - { + : pce_rom_device(mconfig, PCE_ROM_SF2, tag, owner, clock), m_bank_base(0) +{ } diff --git a/src/devices/bus/pce/pce_rom.h b/src/devices/bus/pce/pce_rom.h index 9dd69e7fd6b..addbfc1fa3e 100644 --- a/src/devices/bus/pce/pce_rom.h +++ b/src/devices/bus/pce/pce_rom.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __PCE_ROM_H -#define __PCE_ROM_H +#ifndef MAME_BUS_PCE_PCE_ROM_H +#define MAME_BUS_PCE_PCE_ROM_H + +#pragma once #include "pce_slot.h" @@ -13,15 +15,17 @@ class pce_rom_device : public device_t, { public: // construction/destruction - pce_rom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); pce_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override {} - virtual void device_reset() override {} - // reading and writing virtual DECLARE_READ8_MEMBER(read_cart) override; + +protected: + pce_rom_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual void device_start() override { } + virtual void device_reset() override { } }; // ======================> pce_cdsys3_device @@ -60,26 +64,24 @@ public: // construction/destruction pce_sf2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - // reading and writing virtual DECLARE_READ8_MEMBER(read_cart) override; virtual DECLARE_WRITE8_MEMBER(write_cart) override; +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + private: uint8_t m_bank_base; }; - // device type definition -extern const device_type PCE_ROM_STD; -extern const device_type PCE_ROM_CDSYS3; -extern const device_type PCE_ROM_POPULOUS; -extern const device_type PCE_ROM_SF2; - - +DECLARE_DEVICE_TYPE(PCE_ROM_STD, pce_rom_device) +DECLARE_DEVICE_TYPE(PCE_ROM_CDSYS3, pce_cdsys3_device) +DECLARE_DEVICE_TYPE(PCE_ROM_POPULOUS, pce_populous_device) +DECLARE_DEVICE_TYPE(PCE_ROM_SF2, pce_sf2_device) -#endif +#endif // MAME_BUS_PCE_PCE_ROM_H diff --git a/src/devices/bus/pce/pce_slot.cpp b/src/devices/bus/pce/pce_slot.cpp index fb9676a22fc..973d2c58759 100644 --- a/src/devices/bus/pce/pce_slot.cpp +++ b/src/devices/bus/pce/pce_slot.cpp @@ -19,7 +19,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type PCE_CART_SLOT = device_creator; +DEFINE_DEVICE_TYPE(PCE_CART_SLOT, pce_cart_slot_device, "pce_cart_slot", "PCE/TG16 Cartridge Slot") //************************************************************************** // PCE cartridges Interface @@ -136,11 +136,11 @@ void device_pce_cart_interface::rom_map_setup(uint32_t size) // pce_cart_slot_device - constructor //------------------------------------------------- pce_cart_slot_device::pce_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, PCE_CART_SLOT, "PCE & TG16 Cartridge Slot", tag, owner, clock, "pce_cart_slot", __FILE__), - device_image_interface(mconfig, *this), - device_slot_interface(mconfig, *this), - m_interface("pce_cart"), - m_type(PCE_STD), m_cart(nullptr) + device_t(mconfig, PCE_CART_SLOT, tag, owner, clock), + device_image_interface(mconfig, *this), + device_slot_interface(mconfig, *this), + m_interface("pce_cart"), + m_type(PCE_STD), m_cart(nullptr) { } diff --git a/src/devices/bus/pce/pce_slot.h b/src/devices/bus/pce/pce_slot.h index 3aa6b3593dd..77d5a82d0b3 100644 --- a/src/devices/bus/pce/pce_slot.h +++ b/src/devices/bus/pce/pce_slot.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __PCE_SLOT_H -#define __PCE_SLOT_H +#ifndef MAME_BUS_PCE_PCE_SLOT_H +#define MAME_BUS_PCE_PCE_SLOT_H + +#pragma once #include "softlist_dev.h" @@ -28,7 +30,6 @@ class device_pce_cart_interface : public device_slot_card_interface { public: // construction/destruction - device_pce_cart_interface(const machine_config &mconfig, device_t &device); virtual ~device_pce_cart_interface(); // reading and writing @@ -42,13 +43,16 @@ public: uint32_t get_rom_size() { return m_rom_size; } uint32_t get_ram_size() { return m_ram.size(); } + void rom_map_setup(uint32_t size); + +protected: + device_pce_cart_interface(const machine_config &mconfig, device_t &device); + // internal state uint8_t *m_rom; uint32_t m_rom_size; std::vector m_ram; - void rom_map_setup(uint32_t size); - uint8_t rom_bank_map[8]; // 128K chunks of rom }; @@ -95,18 +99,16 @@ public: virtual DECLARE_READ8_MEMBER(read_cart); virtual DECLARE_WRITE8_MEMBER(write_cart); - protected: - const char *m_interface; int m_type; - device_pce_cart_interface* m_cart; + device_pce_cart_interface *m_cart; }; // device type definition -extern const device_type PCE_CART_SLOT; +DECLARE_DEVICE_TYPE(PCE_CART_SLOT, pce_cart_slot_device) /*************************************************************************** @@ -126,4 +128,4 @@ extern const device_type PCE_CART_SLOT; static_cast(device)->set_intf("tg16_cart"); -#endif +#endif // MAME_BUS_PCE_PCE_SLOT_H diff --git a/src/devices/bus/pet/2joysnd.cpp b/src/devices/bus/pet/2joysnd.cpp index 8c1bc4bfbda..49dae0378b6 100644 --- a/src/devices/bus/pet/2joysnd.cpp +++ b/src/devices/bus/pet/2joysnd.cpp @@ -57,7 +57,7 @@ Connections // DEVICE DEFINITIONS //************************************************************************** -const device_type PET_USERPORT_JOYSTICK_AND_SOUND_DEVICE = device_creator; +DEFINE_DEVICE_TYPE(PET_USERPORT_JOYSTICK_AND_SOUND_DEVICE, pet_userport_joystick_and_sound_device, "2joysnd", "PET Dual Joysticks and Sound") MACHINE_CONFIG_FRAGMENT( 2joysnd ) MCFG_SPEAKER_STANDARD_MONO("speaker") @@ -114,7 +114,7 @@ machine_config_constructor pet_userport_joystick_and_sound_device::device_mconfi //------------------------------------------------- pet_userport_joystick_and_sound_device::pet_userport_joystick_and_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, PET_USERPORT_JOYSTICK_AND_SOUND_DEVICE, "Dual Joysticks and Sound", tag, owner, clock, "2joysnd", __FILE__), + device_t(mconfig, PET_USERPORT_JOYSTICK_AND_SOUND_DEVICE, tag, owner, clock), device_pet_user_port_interface(mconfig, *this), m_dac(*this, "dac"), m_up1(1), diff --git a/src/devices/bus/pet/2joysnd.h b/src/devices/bus/pet/2joysnd.h index 715d426a1b2..0f4d5a6e2f1 100644 --- a/src/devices/bus/pet/2joysnd.h +++ b/src/devices/bus/pet/2joysnd.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_PET_2JOYSND_H +#define MAME_BUS_PET_2JOYSND_H -#ifndef __2JOYSND__ -#define __2JOYSND__ +#pragma once #include "user.h" @@ -22,8 +22,7 @@ // ======================> pet_userport_joystick_and_sound_device -class pet_userport_joystick_and_sound_device : public device_t, - public device_pet_user_port_interface +class pet_userport_joystick_and_sound_device : public device_t, public device_pet_user_port_interface { public: // construction/destruction @@ -36,8 +35,6 @@ public: virtual DECLARE_WRITE_LINE_MEMBER( input_m ) override; - required_device m_dac; - // device_pet_user_port_interface overrides WRITE_LINE_MEMBER( write_up1 ) { m_up1 = state; update_port1(); } WRITE_LINE_MEMBER( write_down1 ) { m_down1 = state; update_port1(); } @@ -46,26 +43,27 @@ public: WRITE_LINE_MEMBER( write_down2 ) { m_down2 = state; update_port2(); } WRITE_LINE_MEMBER( write_fire2 ) { m_fire2 = state; update_port2(); } - - protected: // device-level overrides virtual void device_start() override; void update_port1(); void update_port2(); + + required_device m_dac; + int m_up1; int m_down1; int m_fire1; int m_up2; int m_down2; int m_fire2; - }; // device type definition extern const device_type PET_USERPORT_JOYSTICK_AND_SOUND_DEVICE; +DECLARE_DEVICE_TYPE(PET_USERPORT_JOYSTICK_AND_SOUND_DEVICE, pet_userport_joystick_and_sound_device) -#endif +#endif // MAME_BUS_PET_2JOYSND_H diff --git a/src/devices/bus/pet/64k.cpp b/src/devices/bus/pet/64k.cpp index 1c1a79b1bf2..34249220f3e 100644 --- a/src/devices/bus/pet/64k.cpp +++ b/src/devices/bus/pet/64k.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type PET_64K = device_creator; +DEFINE_DEVICE_TYPE(PET_64K, pet_64k_expansion_device, "pet_64k", "PET 64KB RAM") @@ -77,7 +77,7 @@ inline void pet_64k_expansion_device::write_ram(offs_t offset, uint8_t data) //------------------------------------------------- pet_64k_expansion_device::pet_64k_expansion_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, PET_64K, "PET 64KB RAM", tag, owner, clock, "pet_64k", __FILE__), + device_t(mconfig, PET_64K, tag, owner, clock), device_pet_expansion_card_interface(mconfig, *this), m_ram(*this, "ram"), m_ctrl(0) diff --git a/src/devices/bus/pet/64k.h b/src/devices/bus/pet/64k.h index ddb42f02d5c..82f50cab77a 100644 --- a/src/devices/bus/pet/64k.h +++ b/src/devices/bus/pet/64k.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_PET_64K_H +#define MAME_BUS_PET_64K_H -#ifndef __PET_64K__ -#define __PET_64K__ +#pragma once #include "exp.h" @@ -21,8 +21,7 @@ // ======================> pet_64k_expansion_device -class pet_64k_expansion_device : public device_t, - public device_pet_expansion_card_interface +class pet_64k_expansion_device : public device_t, public device_pet_expansion_card_interface { public: // construction/destruction @@ -49,7 +48,6 @@ private: // device type definition -extern const device_type PET_64K; - +DECLARE_DEVICE_TYPE(PET_64K, pet_64k_expansion_device) -#endif +#endif // MAME_BUS_PET_64K_H diff --git a/src/devices/bus/pet/c2n.cpp b/src/devices/bus/pet/c2n.cpp index 6276aab8fd4..5c03217c7ac 100644 --- a/src/devices/bus/pet/c2n.cpp +++ b/src/devices/bus/pet/c2n.cpp @@ -15,9 +15,9 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type C2N = device_creator; -const device_type C1530 = device_creator; -const device_type C1531 = device_creator; +DEFINE_DEVICE_TYPE(C2N, c2n_device, "c2n", "Commodore C2N Datassette") +DEFINE_DEVICE_TYPE(C1530, c1530_device, "c1530", "Commodore 1530 Datassette") +DEFINE_DEVICE_TYPE(C1531, c1531_device, "c1531", "Commodore 1531 Datassette") //------------------------------------------------- @@ -52,20 +52,17 @@ machine_config_constructor c2n_device::device_mconfig_additions() const // c2n_device - constructor //------------------------------------------------- -c2n_device::c2n_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_pet_datassette_port_interface(mconfig, *this), - m_cassette(*this, "cassette"), - m_motor(false), - m_read_timer(nullptr) +c2n_device::c2n_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) + , device_pet_datassette_port_interface(mconfig, *this) + , m_cassette(*this, "cassette") + , m_motor(false) + , m_read_timer(nullptr) { } c2n_device::c2n_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, C2N, "C2N Datassette", tag, owner, clock, "c2n", __FILE__), - device_pet_datassette_port_interface(mconfig, *this), - m_cassette(*this, "cassette"), - m_motor(false), m_read_timer(nullptr) + : c2n_device(mconfig, C2N, tag, owner, clock) { } @@ -75,7 +72,9 @@ c2n_device::c2n_device(const machine_config &mconfig, const char *tag, device_t //------------------------------------------------- c1530_device::c1530_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : c2n_device(mconfig, C1530, "C1530 Datassette", tag, owner, clock, "c1530", __FILE__) { } + : c2n_device(mconfig, C1530, tag, owner, clock) +{ +} //------------------------------------------------- @@ -83,7 +82,9 @@ c1530_device::c1530_device(const machine_config &mconfig, const char *tag, devic //------------------------------------------------- c1531_device::c1531_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : c2n_device(mconfig, C1531, "C1531 Datassette", tag, owner, clock, "c1531", __FILE__) { } + : c2n_device(mconfig, C1531, tag, owner, clock) +{ +} //------------------------------------------------- diff --git a/src/devices/bus/pet/c2n.h b/src/devices/bus/pet/c2n.h index 4260ed8d64c..9ba47475815 100644 --- a/src/devices/bus/pet/c2n.h +++ b/src/devices/bus/pet/c2n.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_PET_C2N_H +#define MAME_BUS_PET_C2N_H -#ifndef __C2N__ -#define __C2N__ +#pragma once #include "cass.h" #include "formats/cbm_tap.h" @@ -28,13 +28,14 @@ class c2n_device : public device_t, { public: // construction/destruction - c2n_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); c2n_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual machine_config_constructor device_mconfig_additions() const override; protected: + c2n_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; @@ -76,10 +77,8 @@ public: // device type definition -extern const device_type C2N; -extern const device_type C1530; -extern const device_type C1531; - - +DECLARE_DEVICE_TYPE(C2N, c2n_device) +DECLARE_DEVICE_TYPE(C1530, c1530_device) +DECLARE_DEVICE_TYPE(C1531, c1531_device) -#endif +#endif // MAME_BUS_PET_C2N_H diff --git a/src/devices/bus/pet/cass.cpp b/src/devices/bus/pet/cass.cpp index fc9f5ded21c..67e600d71a7 100644 --- a/src/devices/bus/pet/cass.cpp +++ b/src/devices/bus/pet/cass.cpp @@ -15,7 +15,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type PET_DATASSETTE_PORT = device_creator; +DEFINE_DEVICE_TYPE(PET_DATASSETTE_PORT, pet_datassette_port_device, "pet_datassette_port", "Commodore Datasette Port") @@ -53,7 +53,7 @@ device_pet_datassette_port_interface::~device_pet_datassette_port_interface() //------------------------------------------------- pet_datassette_port_device::pet_datassette_port_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, PET_DATASSETTE_PORT, "Datassette Port", tag, owner, clock, "pet_datassette_port", __FILE__), + device_t(mconfig, PET_DATASSETTE_PORT, tag, owner, clock), device_slot_interface(mconfig, *this), m_read_handler(*this), m_cart(nullptr) { @@ -90,6 +90,10 @@ WRITE_LINE_MEMBER( pet_datassette_port_device::motor_w ) { if (m_cart != nullptr WRITE_LINE_MEMBER( pet_datassette_port_device::read_w ) { m_read_handler(state); } +// slot devices +#include "c2n.h" +#include "diag264_lb_tape.h" + //------------------------------------------------- // SLOT_INTERFACE( cbm_datassette_devices ) //------------------------------------------------- diff --git a/src/devices/bus/pet/cass.h b/src/devices/bus/pet/cass.h index 78eb8fd7332..d5c40c37181 100644 --- a/src/devices/bus/pet/cass.h +++ b/src/devices/bus/pet/cass.h @@ -15,10 +15,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_PET_CASS_H +#define MAME_BUS_PET_CASS_H -#ifndef __PET_DATASSETTE_PORT__ -#define __PET_DATASSETTE_PORT__ +#pragma once @@ -51,8 +51,7 @@ class device_pet_datassette_port_interface; -class pet_datassette_port_device : public device_t, - public device_slot_interface +class pet_datassette_port_device : public device_t, public device_slot_interface { public: // construction/destruction @@ -60,7 +59,7 @@ public: virtual ~pet_datassette_port_device(); // static configuration helpers - template static devcb_base &set_read_handler(device_t &device, _Object object) { return downcast(device).m_read_handler.set_callback(object); } + template static devcb_base &set_read_handler(device_t &device, Object &&cb) { return downcast(device).m_read_handler.set_callback(std::forward(cb)); } // computer interface DECLARE_READ_LINE_MEMBER( read ); @@ -88,29 +87,24 @@ class device_pet_datassette_port_interface : public device_slot_card_interface { public: // construction/destruction - device_pet_datassette_port_interface(const machine_config &mconfig, device_t &device); virtual ~device_pet_datassette_port_interface(); - virtual int datassette_read() { return 1; }; - virtual void datassette_write(int state) { }; - virtual int datassette_sense() { return 1; }; - virtual void datassette_motor(int state) { }; + virtual int datassette_read() { return 1; } + virtual void datassette_write(int state) { } + virtual int datassette_sense() { return 1; } + virtual void datassette_motor(int state) { } protected: + device_pet_datassette_port_interface(const machine_config &mconfig, device_t &device); + pet_datassette_port_device *m_slot; }; // device type definition -extern const device_type PET_DATASSETTE_PORT; - +DECLARE_DEVICE_TYPE(PET_DATASSETTE_PORT, pet_datassette_port_device) -// slot devices -#include "c2n.h" -#include "diag264_lb_tape.h" SLOT_INTERFACE_EXTERN( cbm_datassette_devices ); - - -#endif +#endif // MAME_BUS_PET_CASS_H diff --git a/src/devices/bus/pet/cb2snd.cpp b/src/devices/bus/pet/cb2snd.cpp index 5dc3bd1823f..8822af3d086 100644 --- a/src/devices/bus/pet/cb2snd.cpp +++ b/src/devices/bus/pet/cb2snd.cpp @@ -19,7 +19,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type PET_USERPORT_CB2_SOUND_DEVICE = device_creator; +DEFINE_DEVICE_TYPE(PET_USERPORT_CB2_SOUND_DEVICE, pet_userport_cb2_sound_device, "petucb2", "PET Userport 'CB2 Sound' Device") MACHINE_CONFIG_FRAGMENT( cb2snd ) MCFG_SPEAKER_STANDARD_MONO("speaker") @@ -47,7 +47,7 @@ machine_config_constructor pet_userport_cb2_sound_device::device_mconfig_additio //------------------------------------------------- pet_userport_cb2_sound_device::pet_userport_cb2_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, PET_USERPORT_CB2_SOUND_DEVICE, "PET Userport 'CB2 Sound' Device", tag, owner, clock, "petucb2", __FILE__), + device_t(mconfig, PET_USERPORT_CB2_SOUND_DEVICE, tag, owner, clock), device_pet_user_port_interface(mconfig, *this), m_dac(*this, "dac") { diff --git a/src/devices/bus/pet/cb2snd.h b/src/devices/bus/pet/cb2snd.h index 9788431052c..86c48422421 100644 --- a/src/devices/bus/pet/cb2snd.h +++ b/src/devices/bus/pet/cb2snd.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_PET_CB2SND_H +#define MAME_BUS_PET_CB2SND_H -#ifndef __PETUSER_CB2__ -#define __PETUSER_CB2__ +#pragma once #include "user.h" #include "sound/dac.h" @@ -29,15 +29,15 @@ public: virtual DECLARE_WRITE_LINE_MEMBER( input_m ) override; - required_device m_dac; - protected: // device-level overrides virtual void device_start() override; + + required_device m_dac; }; // device type definition -extern const device_type PET_USERPORT_CB2_SOUND_DEVICE; +DECLARE_DEVICE_TYPE(PET_USERPORT_CB2_SOUND_DEVICE, pet_userport_cb2_sound_device) -#endif +#endif // MAME_BUS_PET_CB2SND_H diff --git a/src/devices/bus/pet/diag.cpp b/src/devices/bus/pet/diag.cpp index 27a318f2e3e..42e915e6d19 100644 --- a/src/devices/bus/pet/diag.cpp +++ b/src/devices/bus/pet/diag.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type PET_USERPORT_DIAGNOSTIC_CONNECTOR = device_creator; +DEFINE_DEVICE_TYPE(PET_USERPORT_DIAGNOSTIC_CONNECTOR, pet_userport_diagnostic_connector_device, "pet_user_diag", "PET Userport Diagnostic Connector") @@ -27,8 +27,8 @@ const device_type PET_USERPORT_DIAGNOSTIC_CONNECTOR = device_creator pet_userport_diagnostic_connector_t +// ======================> pet_userport_diagnostic_connector_device -class pet_userport_diagnostic_connector_t : public device_t, - public device_pet_user_port_interface +class pet_userport_diagnostic_connector_device : public device_t, public device_pet_user_port_interface { public: // construction/destruction - pet_userport_diagnostic_connector_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + pet_userport_diagnostic_connector_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // device_pet_user_port_interface overrides virtual DECLARE_WRITE_LINE_MEMBER( input_2 ) override { output_b(state); } @@ -50,7 +49,6 @@ protected: // device type definition -extern const device_type PET_USERPORT_DIAGNOSTIC_CONNECTOR; - +DECLARE_DEVICE_TYPE(PET_USERPORT_DIAGNOSTIC_CONNECTOR, pet_userport_diagnostic_connector_device) -#endif +#endif // MAME_BUS_PET_DIAG_H diff --git a/src/devices/bus/pet/diag264_lb_tape.cpp b/src/devices/bus/pet/diag264_lb_tape.cpp index 214fee34be3..afe5efab4dd 100644 --- a/src/devices/bus/pet/diag264_lb_tape.cpp +++ b/src/devices/bus/pet/diag264_lb_tape.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type DIAG264_CASSETTE_LOOPBACK = device_creator; +DEFINE_DEVICE_TYPE(DIAG264_CASSETTE_LOOPBACK, diag264_cassette_loopback_device, "diag264_loopback_cassette", "Diag264 Cassette Loopback") @@ -28,11 +28,12 @@ const device_type DIAG264_CASSETTE_LOOPBACK = device_creator; +DEFINE_DEVICE_TYPE(PET_EXPANSION_SLOT, pet_expansion_slot_device, "pet_expansion_slot", "PET memory expansion port") @@ -36,7 +36,7 @@ const device_type PET_EXPANSION_SLOT = device_creator //------------------------------------------------- pet_expansion_slot_device::pet_expansion_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, PET_EXPANSION_SLOT, "PET memory expansion port", tag, owner, clock, "pet_expansion_slot", __FILE__), + device_t(mconfig, PET_EXPANSION_SLOT, tag, owner, clock), device_slot_interface(mconfig, *this), m_card(nullptr), m_read_dma(*this), m_write_dma(*this) diff --git a/src/devices/bus/pet/exp.h b/src/devices/bus/pet/exp.h index c94062b519f..8cc12b6a7ed 100644 --- a/src/devices/bus/pet/exp.h +++ b/src/devices/bus/pet/exp.h @@ -8,10 +8,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_PET_EXP_H +#define MAME_BUS_PET_EXP_H -#ifndef __PET_EXPANSION_SLOT__ -#define __PET_EXPANSION_SLOT__ +#pragma once @@ -112,10 +112,11 @@ class device_pet_expansion_card_interface : public device_slot_card_interface public: // construction/destruction - device_pet_expansion_card_interface(const machine_config &mconfig, device_t &device); virtual ~device_pet_expansion_card_interface(); protected: + device_pet_expansion_card_interface(const machine_config &mconfig, device_t &device); + // runtime virtual int pet_norom_r(address_space &space, offs_t offset, int sel) { return 1; } virtual uint8_t pet_bd_r(address_space &space, offs_t offset, uint8_t data, int &sel) { return data; }; @@ -128,11 +129,9 @@ protected: // device type definition -extern const device_type PET_EXPANSION_SLOT; +DECLARE_DEVICE_TYPE(PET_EXPANSION_SLOT, pet_expansion_slot_device) SLOT_INTERFACE_EXTERN( pet_expansion_cards ); - - -#endif +#endif // MAME_BUS_PET_EXP_H diff --git a/src/devices/bus/pet/hsg.cpp b/src/devices/bus/pet/hsg.cpp index cc1e8606b11..15fd9e50a84 100644 --- a/src/devices/bus/pet/hsg.cpp +++ b/src/devices/bus/pet/hsg.cpp @@ -38,8 +38,8 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type CBM8000_HSG_A = device_creator; -const device_type CBM8000_HSG_B = device_creator; +DEFINE_DEVICE_TYPE(CBM8000_HSG_A, cbm8000_hsg_a_device, "cbm8000_hsg_a", "CBM 8000 High Speed Graphics (A)") +DEFINE_DEVICE_TYPE(CBM8000_HSG_B, cbm8000_hsg_b_device, "cbm8000_hsg_b", "CBM 8000 High Speed Graphics (B)") //------------------------------------------------- @@ -59,7 +59,7 @@ ROM_END // rom_region - device-specific ROM region //------------------------------------------------- -const tiny_rom_entry *cbm8000_hsg_t::device_rom_region() const +const tiny_rom_entry *cbm8000_hsg_device::device_rom_region() const { return ROM_NAME( cbm8000_hsg ); } @@ -69,7 +69,7 @@ const tiny_rom_entry *cbm8000_hsg_t::device_rom_region() const // ADDRESS_MAP( hsg_a_map ) //------------------------------------------------- -static ADDRESS_MAP_START( hsg_a_map, AS_0, 8, cbm8000_hsg_a_t ) +static ADDRESS_MAP_START( hsg_a_map, AS_0, 8, cbm8000_hsg_a_device ) ADDRESS_MAP_GLOBAL_MASK(0x7fff) AM_RANGE(0x0000, 0x7fff) AM_RAM ADDRESS_MAP_END @@ -79,7 +79,7 @@ ADDRESS_MAP_END // ADDRESS_MAP( hsg_b_map ) //------------------------------------------------- -static ADDRESS_MAP_START( hsg_b_map, AS_0, 8, cbm8000_hsg_b_t ) +static ADDRESS_MAP_START( hsg_b_map, AS_0, 8, cbm8000_hsg_b_device ) ADDRESS_MAP_GLOBAL_MASK(0x3fff) AM_RANGE(0x0000, 0x3fff) AM_RAM ADDRESS_MAP_END @@ -102,7 +102,7 @@ static MACHINE_CONFIG_FRAGMENT( cbm8000_hsg_a ) MCFG_DEVICE_ADDRESS_MAP(AS_0, hsg_a_map) MCFG_EF936X_PALETTE("palette") MCFG_EF936X_BITPLANES_CNT(1); - MCFG_EF936X_DISPLAYMODE(EF936X_512x512_DISPLAY_MODE); + MCFG_EF936X_DISPLAYMODE(DISPLAY_MODE_512x512); MACHINE_CONFIG_END @@ -123,7 +123,7 @@ static MACHINE_CONFIG_FRAGMENT( cbm8000_hsg_b ) MCFG_DEVICE_ADDRESS_MAP(AS_0, hsg_b_map) MCFG_EF936X_PALETTE("palette") MCFG_EF936X_BITPLANES_CNT(1); - MCFG_EF936X_DISPLAYMODE(EF936X_512x256_DISPLAY_MODE); + MCFG_EF936X_DISPLAYMODE(DISPLAY_MODE_512x256); MACHINE_CONFIG_END @@ -132,12 +132,12 @@ MACHINE_CONFIG_END // machine configurations //------------------------------------------------- -machine_config_constructor cbm8000_hsg_a_t::device_mconfig_additions() const +machine_config_constructor cbm8000_hsg_a_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( cbm8000_hsg_a ); } -machine_config_constructor cbm8000_hsg_b_t::device_mconfig_additions() const +machine_config_constructor cbm8000_hsg_b_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( cbm8000_hsg_b ); } @@ -149,11 +149,11 @@ machine_config_constructor cbm8000_hsg_b_t::device_mconfig_additions() const //************************************************************************** //------------------------------------------------- -// cbm8000_hsg_t - constructor +// cbm8000_hsg_device - constructor //------------------------------------------------- -cbm8000_hsg_t::cbm8000_hsg_t(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), +cbm8000_hsg_device::cbm8000_hsg_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), device_pet_expansion_card_interface(mconfig, *this), m_gdc(*this, EF9365_TAG), m_9000(*this, "9000"), @@ -161,13 +161,13 @@ cbm8000_hsg_t::cbm8000_hsg_t(const machine_config &mconfig, device_type type, co { } -cbm8000_hsg_a_t::cbm8000_hsg_a_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - cbm8000_hsg_t(mconfig, CBM8000_HSG_A, "CBM 8000 High Speed Graphics (A)", tag, owner, clock, "cbm8000_hsg_a", __FILE__) +cbm8000_hsg_a_device::cbm8000_hsg_a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + cbm8000_hsg_device(mconfig, CBM8000_HSG_A, tag, owner, clock) { } -cbm8000_hsg_b_t::cbm8000_hsg_b_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - cbm8000_hsg_t(mconfig, CBM8000_HSG_B, "CBM 8000 High Speed Graphics (B)", tag, owner, clock, "cbm8000_hsg_b", __FILE__) +cbm8000_hsg_b_device::cbm8000_hsg_b_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + cbm8000_hsg_device(mconfig, CBM8000_HSG_B, tag, owner, clock) { } @@ -176,7 +176,7 @@ cbm8000_hsg_b_t::cbm8000_hsg_b_t(const machine_config &mconfig, const char *tag, // device_start - device-specific startup //------------------------------------------------- -void cbm8000_hsg_t::device_start() +void cbm8000_hsg_device::device_start() { } @@ -185,7 +185,7 @@ void cbm8000_hsg_t::device_start() // device_reset - device-specific reset //------------------------------------------------- -void cbm8000_hsg_t::device_reset() +void cbm8000_hsg_device::device_reset() { m_gdc->reset(); } @@ -195,7 +195,7 @@ void cbm8000_hsg_t::device_reset() // pet_norom_r - NO ROM read //------------------------------------------------- -int cbm8000_hsg_t::pet_norom_r(address_space &space, offs_t offset, int sel) +int cbm8000_hsg_device::pet_norom_r(address_space &space, offs_t offset, int sel) { return !(offset >= 0x9000 && offset < 0xaf00); } @@ -205,7 +205,7 @@ int cbm8000_hsg_t::pet_norom_r(address_space &space, offs_t offset, int sel) // pet_bd_r - buffered data read //------------------------------------------------- -uint8_t cbm8000_hsg_t::pet_bd_r(address_space &space, offs_t offset, uint8_t data, int &sel) +uint8_t cbm8000_hsg_device::pet_bd_r(address_space &space, offs_t offset, uint8_t data, int &sel) { switch (sel) { @@ -254,7 +254,7 @@ uint8_t cbm8000_hsg_t::pet_bd_r(address_space &space, offs_t offset, uint8_t dat // pet_bd_w - buffered data write //------------------------------------------------- -void cbm8000_hsg_t::pet_bd_w(address_space &space, offs_t offset, uint8_t data, int &sel) +void cbm8000_hsg_device::pet_bd_w(address_space &space, offs_t offset, uint8_t data, int &sel) { if (offset == 0xaf00) { diff --git a/src/devices/bus/pet/hsg.h b/src/devices/bus/pet/hsg.h index e0809290a77..0582f48d53f 100644 --- a/src/devices/bus/pet/hsg.h +++ b/src/devices/bus/pet/hsg.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_PET_HSG_H +#define MAME_BUS_PET_HSG_H -#ifndef __CBM8000_HSG__ -#define __CBM8000_HSG__ +#pragma once #include "exp.h" #include "video/ef9365.h" @@ -20,15 +20,11 @@ // TYPE DEFINITIONS //************************************************************************** -// ======================> cbm8000_hsg_t +// ======================> cbm8000_hsg_device -class cbm8000_hsg_t : public device_t, - public device_pet_expansion_card_interface +class cbm8000_hsg_device : public device_t, public device_pet_expansion_card_interface { public: - // construction/destruction - cbm8000_hsg_t(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - // optional information overrides virtual const tiny_rom_entry *device_rom_region() const override; @@ -38,6 +34,9 @@ public: virtual void pet_bd_w(address_space &space, offs_t offset, uint8_t data, int &sel) override; protected: + // construction/destruction + cbm8000_hsg_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -49,26 +48,26 @@ private: }; -// ======================> cbm8000_hsg_a_t +// ======================> cbm8000_hsg_a_device -class cbm8000_hsg_a_t : public cbm8000_hsg_t +class cbm8000_hsg_a_device : public cbm8000_hsg_device { public: // construction/destruction - cbm8000_hsg_a_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + cbm8000_hsg_a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual machine_config_constructor device_mconfig_additions() const override; }; -// ======================> cbm8000_hsg_b_t +// ======================> cbm8000_hsg_b_device -class cbm8000_hsg_b_t : public cbm8000_hsg_t +class cbm8000_hsg_b_device : public cbm8000_hsg_device { public: // construction/destruction - cbm8000_hsg_b_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + cbm8000_hsg_b_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual machine_config_constructor device_mconfig_additions() const override; @@ -76,9 +75,7 @@ public: // device type definition -extern const device_type CBM8000_HSG_A; -extern const device_type CBM8000_HSG_B; - - +DECLARE_DEVICE_TYPE(CBM8000_HSG_A, cbm8000_hsg_a_device) +DECLARE_DEVICE_TYPE(CBM8000_HSG_B, cbm8000_hsg_b_device) -#endif +#endif // MAME_BUS_PET_HSG_H diff --git a/src/devices/bus/pet/petuja.cpp b/src/devices/bus/pet/petuja.cpp index a4e11d2aa3d..aee8c2a1f0f 100644 --- a/src/devices/bus/pet/petuja.cpp +++ b/src/devices/bus/pet/petuja.cpp @@ -17,7 +17,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type PET_USERPORT_JOYSTICK_ADAPTER = device_creator; +DEFINE_DEVICE_TYPE(PET_USERPORT_JOYSTICK_ADAPTER, pet_userport_joystick_adapter_device, "petuja", "PET Userport Joystick Adapter") //------------------------------------------------- @@ -61,7 +61,7 @@ ioport_constructor pet_userport_joystick_adapter_device::device_input_ports() co //------------------------------------------------- pet_userport_joystick_adapter_device::pet_userport_joystick_adapter_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, PET_USERPORT_JOYSTICK_ADAPTER, "PET Userport Joystick Adapter", tag, owner, clock, "petuja", __FILE__), + device_t(mconfig, PET_USERPORT_JOYSTICK_ADAPTER, tag, owner, clock), device_pet_user_port_interface(mconfig, *this), m_up1(1), m_down1(1), diff --git a/src/devices/bus/pet/petuja.h b/src/devices/bus/pet/petuja.h index fc1670dc202..b268c0d1519 100644 --- a/src/devices/bus/pet/petuja.h +++ b/src/devices/bus/pet/petuja.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_PET_PETUJA_H +#define MAME_BUS_PET_PETUJA_H -#ifndef __PETUJA__ -#define __PETUJA__ +#pragma once #include "user.h" @@ -56,7 +56,7 @@ protected: // device type definition -extern const device_type PET_USERPORT_JOYSTICK_ADAPTER; +DECLARE_DEVICE_TYPE(PET_USERPORT_JOYSTICK_ADAPTER, pet_userport_joystick_adapter_device) -#endif +#endif // MAME_BUS_PET_PETUJA_H diff --git a/src/devices/bus/pet/superpet.cpp b/src/devices/bus/pet/superpet.cpp index 77a9f65cad0..87783f39d41 100644 --- a/src/devices/bus/pet/superpet.cpp +++ b/src/devices/bus/pet/superpet.cpp @@ -28,7 +28,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type SUPERPET = device_creator; +DEFINE_DEVICE_TYPE(SUPERPET, superpet_device, "pet_superpet", "Commodore SuperPET") //------------------------------------------------- @@ -176,7 +176,7 @@ inline bool superpet_device::is_ram_writable() //------------------------------------------------- superpet_device::superpet_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, SUPERPET, "SuperPET", tag, owner, clock, "pet_superpet", __FILE__), + device_t(mconfig, SUPERPET, tag, owner, clock), device_pet_expansion_card_interface(mconfig, *this), m_maincpu(*this, M6809_TAG), m_acia(*this, MOS6551_TAG), diff --git a/src/devices/bus/pet/superpet.h b/src/devices/bus/pet/superpet.h index 74caac39d73..bf0d4d79a59 100644 --- a/src/devices/bus/pet/superpet.h +++ b/src/devices/bus/pet/superpet.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_PET_SUPERPET_H +#define MAME_BUS_PET_SUPERPET_H -#ifndef __SUPERPET__ -#define __SUPERPET__ +#pragma once #include "exp.h" #include "machine/mos6551.h" @@ -74,7 +74,7 @@ private: // device type definition -extern const device_type SUPERPET; +DECLARE_DEVICE_TYPE(SUPERPET, superpet_device) -#endif +#endif // MAME_BUS_PET_SUPERPET_H diff --git a/src/devices/bus/pet/user.cpp b/src/devices/bus/pet/user.cpp index 0fdda61ca9a..95b98bad5bf 100644 --- a/src/devices/bus/pet/user.cpp +++ b/src/devices/bus/pet/user.cpp @@ -11,10 +11,10 @@ // class pet_user_port_device -const device_type PET_USER_PORT = device_creator; +DEFINE_DEVICE_TYPE(PET_USER_PORT, pet_user_port_device, "pet_user_port", "PET user port") pet_user_port_device::pet_user_port_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, PET_USER_PORT, "PET user port", tag, owner, clock, "pet_user_port", __FILE__), + device_t(mconfig, PET_USER_PORT, tag, owner, clock), device_slot_interface(mconfig, *this), m_2_handler(*this), m_3_handler(*this), diff --git a/src/devices/bus/pet/user.h b/src/devices/bus/pet/user.h index f2889ec346d..52568776882 100644 --- a/src/devices/bus/pet/user.h +++ b/src/devices/bus/pet/user.h @@ -21,10 +21,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_PET_USER_H +#define MAME_BUS_PET_USER_H -#ifndef __PET_USER_PORT__ -#define __PET_USER_PORT__ +#pragma once @@ -90,7 +90,7 @@ devcb = &pet_user_port_device::set_m_handler(*device, DEVCB_##_devcb); -extern const device_type PET_USER_PORT; +DECLARE_DEVICE_TYPE(PET_USER_PORT, pet_user_port_device) class device_pet_user_port_interface; @@ -102,25 +102,25 @@ class pet_user_port_device : public device_t, public: pet_user_port_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_2_handler(device_t &device, _Object object) { return downcast(device).m_2_handler.set_callback(object); } - template static devcb_base &set_3_handler(device_t &device, _Object object) { return downcast(device).m_3_handler.set_callback(object); } - template static devcb_base &set_4_handler(device_t &device, _Object object) { return downcast(device).m_4_handler.set_callback(object); } - template static devcb_base &set_5_handler(device_t &device, _Object object) { return downcast(device).m_5_handler.set_callback(object); } - template static devcb_base &set_6_handler(device_t &device, _Object object) { return downcast(device).m_6_handler.set_callback(object); } - template static devcb_base &set_7_handler(device_t &device, _Object object) { return downcast(device).m_7_handler.set_callback(object); } - template static devcb_base &set_8_handler(device_t &device, _Object object) { return downcast(device).m_8_handler.set_callback(object); } - template static devcb_base &set_9_handler(device_t &device, _Object object) { return downcast(device).m_9_handler.set_callback(object); } - template static devcb_base &set_10_handler(device_t &device, _Object object) { return downcast(device).m_10_handler.set_callback(object); } - template static devcb_base &set_b_handler(device_t &device, _Object object) { return downcast(device).m_b_handler.set_callback(object); } - template static devcb_base &set_c_handler(device_t &device, _Object object) { return downcast(device).m_c_handler.set_callback(object); } - template static devcb_base &set_d_handler(device_t &device, _Object object) { return downcast(device).m_d_handler.set_callback(object); } - template static devcb_base &set_e_handler(device_t &device, _Object object) { return downcast(device).m_e_handler.set_callback(object); } - template static devcb_base &set_f_handler(device_t &device, _Object object) { return downcast(device).m_f_handler.set_callback(object); } - template static devcb_base &set_h_handler(device_t &device, _Object object) { return downcast(device).m_h_handler.set_callback(object); } - template static devcb_base &set_j_handler(device_t &device, _Object object) { return downcast(device).m_j_handler.set_callback(object); } - template static devcb_base &set_k_handler(device_t &device, _Object object) { return downcast(device).m_k_handler.set_callback(object); } - template static devcb_base &set_l_handler(device_t &device, _Object object) { return downcast(device).m_l_handler.set_callback(object); } - template static devcb_base &set_m_handler(device_t &device, _Object object) { return downcast(device).m_m_handler.set_callback(object); } + template static devcb_base &set_2_handler(device_t &device, Object &&cb) { return downcast(device).m_2_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_3_handler(device_t &device, Object &&cb) { return downcast(device).m_3_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_4_handler(device_t &device, Object &&cb) { return downcast(device).m_4_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_5_handler(device_t &device, Object &&cb) { return downcast(device).m_5_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_6_handler(device_t &device, Object &&cb) { return downcast(device).m_6_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_7_handler(device_t &device, Object &&cb) { return downcast(device).m_7_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_8_handler(device_t &device, Object &&cb) { return downcast(device).m_8_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_9_handler(device_t &device, Object &&cb) { return downcast(device).m_9_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_10_handler(device_t &device, Object &&cb) { return downcast(device).m_10_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_b_handler(device_t &device, Object &&cb) { return downcast(device).m_b_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_c_handler(device_t &device, Object &&cb) { return downcast(device).m_c_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_d_handler(device_t &device, Object &&cb) { return downcast(device).m_d_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_e_handler(device_t &device, Object &&cb) { return downcast(device).m_e_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_f_handler(device_t &device, Object &&cb) { return downcast(device).m_f_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_h_handler(device_t &device, Object &&cb) { return downcast(device).m_h_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_j_handler(device_t &device, Object &&cb) { return downcast(device).m_j_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_k_handler(device_t &device, Object &&cb) { return downcast(device).m_k_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_l_handler(device_t &device, Object &&cb) { return downcast(device).m_l_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_m_handler(device_t &device, Object &&cb) { return downcast(device).m_m_handler.set_callback(std::forward(cb)); } DECLARE_WRITE_LINE_MEMBER( write_2 ); DECLARE_WRITE_LINE_MEMBER( write_3 ); @@ -177,7 +177,6 @@ class device_pet_user_port_interface : public device_slot_card_interface friend class pet_user_port_device; public: - device_pet_user_port_interface(const machine_config &mconfig, device_t &device); virtual ~device_pet_user_port_interface(); DECLARE_WRITE_LINE_MEMBER( output_2 ) { m_slot->m_2_handler(state); } @@ -201,6 +200,8 @@ public: DECLARE_WRITE_LINE_MEMBER( output_m ) { m_slot->m_m_handler(state); } protected: + device_pet_user_port_interface(const machine_config &mconfig, device_t &device); + virtual DECLARE_WRITE_LINE_MEMBER( input_2 ) {} virtual DECLARE_WRITE_LINE_MEMBER( input_3 ) {} virtual DECLARE_WRITE_LINE_MEMBER( input_4 ) {} @@ -227,4 +228,4 @@ protected: SLOT_INTERFACE_EXTERN( pet_user_port_cards ); -#endif +#endif // MAME_BUS_PET_USER_H diff --git a/src/devices/bus/plus4/c1551.cpp b/src/devices/bus/plus4/c1551.cpp index 208337fec4a..052c47c2a85 100644 --- a/src/devices/bus/plus4/c1551.cpp +++ b/src/devices/bus/plus4/c1551.cpp @@ -27,7 +27,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type C1551 = device_creator; +DEFINE_DEVICE_TYPE(C1551, c1551_device, "c1551", "Commodore 1551") //------------------------------------------------- @@ -47,7 +47,7 @@ ROM_END // rom_region - device-specific ROM region //------------------------------------------------- -const tiny_rom_entry *c1551_t::device_rom_region() const +const tiny_rom_entry *c1551_device::device_rom_region() const { return ROM_NAME( c1551 ); } @@ -57,7 +57,7 @@ const tiny_rom_entry *c1551_t::device_rom_region() const // M6510_INTERFACE( cpu_intf ) //------------------------------------------------- -READ8_MEMBER( c1551_t::port_r ) +READ8_MEMBER( c1551_device::port_r ) { /* @@ -85,7 +85,7 @@ READ8_MEMBER( c1551_t::port_r ) return data; } -WRITE8_MEMBER( c1551_t::port_w ) +WRITE8_MEMBER( c1551_device::port_w ) { /* @@ -120,7 +120,7 @@ WRITE8_MEMBER( c1551_t::port_w ) // tpi6525_interface tpi0_intf //------------------------------------------------- -READ8_MEMBER( c1551_t::tcbm_data_r ) +READ8_MEMBER( c1551_device::tcbm_data_r ) { /* @@ -140,7 +140,7 @@ READ8_MEMBER( c1551_t::tcbm_data_r ) return m_tcbm_data; } -WRITE8_MEMBER( c1551_t::tcbm_data_w ) +WRITE8_MEMBER( c1551_device::tcbm_data_w ) { /* @@ -160,7 +160,7 @@ WRITE8_MEMBER( c1551_t::tcbm_data_w ) m_tcbm_data = data; } -READ8_MEMBER( c1551_t::tpi0_r ) +READ8_MEMBER( c1551_device::tpi0_r ) { uint8_t data = m_tpi0->read(space, offset); @@ -170,7 +170,7 @@ READ8_MEMBER( c1551_t::tpi0_r ) return data; } -WRITE8_MEMBER( c1551_t::tpi0_w ) +WRITE8_MEMBER( c1551_device::tpi0_w ) { m_tpi0->write(space, offset, data); @@ -178,7 +178,7 @@ WRITE8_MEMBER( c1551_t::tpi0_w ) m_ga->ted_w(1); } -READ8_MEMBER( c1551_t::tpi0_pc_r ) +READ8_MEMBER( c1551_device::tpi0_pc_r ) { /* @@ -209,7 +209,7 @@ READ8_MEMBER( c1551_t::tpi0_pc_r ) return data; } -WRITE8_MEMBER( c1551_t::tpi0_pc_w ) +WRITE8_MEMBER( c1551_device::tpi0_pc_w ) { /* @@ -243,7 +243,7 @@ WRITE8_MEMBER( c1551_t::tpi0_pc_w ) // tpi6525_interface tpi1_intf //------------------------------------------------- -READ8_MEMBER( c1551_t::tpi1_pb_r ) +READ8_MEMBER( c1551_device::tpi1_pb_r ) { /* @@ -263,7 +263,7 @@ READ8_MEMBER( c1551_t::tpi1_pb_r ) return m_status & 0x03; } -READ8_MEMBER( c1551_t::tpi1_pc_r ) +READ8_MEMBER( c1551_device::tpi1_pc_r ) { /* @@ -288,7 +288,7 @@ READ8_MEMBER( c1551_t::tpi1_pc_r ) return data; } -WRITE8_MEMBER( c1551_t::tpi1_pc_w ) +WRITE8_MEMBER( c1551_device::tpi1_pc_w ) { /* @@ -313,7 +313,7 @@ WRITE8_MEMBER( c1551_t::tpi1_pc_w ) // ADDRESS_MAP( c1551_mem ) //------------------------------------------------- -static ADDRESS_MAP_START( c1551_mem, AS_PROGRAM, 8, c1551_t ) +static ADDRESS_MAP_START( c1551_mem, AS_PROGRAM, 8, c1551_device ) AM_RANGE(0x0000, 0x07ff) AM_MIRROR(0x0800) AM_RAM AM_RANGE(0x4000, 0x4007) AM_MIRROR(0x3ff8) AM_READWRITE(tpi0_r, tpi0_w) AM_RANGE(0xc000, 0xffff) AM_ROM AM_REGION(M6510T_TAG, 0) @@ -333,7 +333,7 @@ SLOT_INTERFACE_END // FLOPPY_FORMATS( floppy_formats ) //------------------------------------------------- -FLOPPY_FORMATS_MEMBER( c1551_t::floppy_formats ) +FLOPPY_FORMATS_MEMBER( c1551_device::floppy_formats ) FLOPPY_D64_FORMAT, FLOPPY_G64_FORMAT FLOPPY_FORMATS_END @@ -346,27 +346,27 @@ FLOPPY_FORMATS_END static MACHINE_CONFIG_FRAGMENT( c1551 ) MCFG_CPU_ADD(M6510T_TAG, M6510T, XTAL_16MHz/8) MCFG_CPU_PROGRAM_MAP(c1551_mem) - MCFG_M6510T_PORT_CALLBACKS(READ8(c1551_t, port_r), WRITE8(c1551_t, port_w)) + MCFG_M6510T_PORT_CALLBACKS(READ8(c1551_device, port_r), WRITE8(c1551_device, port_w)) MCFG_QUANTUM_PERFECT_CPU(M6510T_TAG) MCFG_PLS100_ADD(PLA_TAG) MCFG_DEVICE_ADD(M6523_0_TAG, TPI6525, 0) - MCFG_TPI6525_IN_PA_CB(READ8(c1551_t, tcbm_data_r)) - MCFG_TPI6525_OUT_PA_CB(WRITE8(c1551_t, tcbm_data_w)) + MCFG_TPI6525_IN_PA_CB(READ8(c1551_device, tcbm_data_r)) + MCFG_TPI6525_OUT_PA_CB(WRITE8(c1551_device, tcbm_data_w)) MCFG_TPI6525_IN_PB_CB(DEVREAD8(C64H156_TAG, c64h156_device, yb_r)) MCFG_TPI6525_OUT_PB_CB(DEVWRITE8(C64H156_TAG, c64h156_device, yb_w)) - MCFG_TPI6525_IN_PC_CB(READ8(c1551_t, tpi0_pc_r)) - MCFG_TPI6525_OUT_PC_CB(WRITE8(c1551_t, tpi0_pc_w)) + MCFG_TPI6525_IN_PC_CB(READ8(c1551_device, tpi0_pc_r)) + MCFG_TPI6525_OUT_PC_CB(WRITE8(c1551_device, tpi0_pc_w)) MCFG_DEVICE_ADD(M6523_1_TAG, TPI6525, 0) - MCFG_TPI6525_IN_PA_CB(READ8(c1551_t, tcbm_data_r)) - MCFG_TPI6525_OUT_PA_CB(WRITE8(c1551_t, tcbm_data_w)) - MCFG_TPI6525_IN_PB_CB(READ8(c1551_t, tpi1_pb_r)) - MCFG_TPI6525_IN_PC_CB(READ8(c1551_t, tpi1_pc_r)) - MCFG_TPI6525_OUT_PC_CB(WRITE8(c1551_t, tpi1_pc_w)) + MCFG_TPI6525_IN_PA_CB(READ8(c1551_device, tcbm_data_r)) + MCFG_TPI6525_OUT_PA_CB(WRITE8(c1551_device, tcbm_data_w)) + MCFG_TPI6525_IN_PB_CB(READ8(c1551_device, tpi1_pb_r)) + MCFG_TPI6525_IN_PC_CB(READ8(c1551_device, tpi1_pc_r)) + MCFG_TPI6525_OUT_PC_CB(WRITE8(c1551_device, tpi1_pc_w)) MCFG_DEVICE_ADD(C64H156_TAG, C64H156, XTAL_16MHz) MCFG_64H156_BYTE_CALLBACK(DEVWRITELINE(C64H156_TAG, c64h156_device, atni_w)) - MCFG_FLOPPY_DRIVE_ADD(C64H156_TAG":0", c1551_floppies, "525ssqd", c1551_t::floppy_formats) + MCFG_FLOPPY_DRIVE_ADD(C64H156_TAG":0", c1551_floppies, "525ssqd", c1551_device::floppy_formats) MCFG_PLUS4_PASSTHRU_EXPANSION_SLOT_ADD() MACHINE_CONFIG_END @@ -377,7 +377,7 @@ MACHINE_CONFIG_END // machine configurations //------------------------------------------------- -machine_config_constructor c1551_t::device_mconfig_additions() const +machine_config_constructor c1551_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( c1551 ); } @@ -399,7 +399,7 @@ INPUT_PORTS_END // input_ports - device-specific input ports //------------------------------------------------- -ioport_constructor c1551_t::device_input_ports() const +ioport_constructor c1551_device::device_input_ports() const { return INPUT_PORTS_NAME( c1551 ); } @@ -411,25 +411,26 @@ ioport_constructor c1551_t::device_input_ports() const //************************************************************************** //------------------------------------------------- -// c1551_t - constructor -//------------------------------------------------- - -c1551_t::c1551_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, C1551, "C1551", tag, owner, clock, "c1551", __FILE__), - device_plus4_expansion_card_interface(mconfig, *this), - m_maincpu(*this, M6510T_TAG), - m_tpi0(*this, M6523_0_TAG), - m_tpi1(*this, M6523_1_TAG), - m_ga(*this, C64H156_TAG), - m_pla(*this, PLA_TAG), - m_floppy(*this, C64H156_TAG":0:525ssqd"), - m_exp(*this, PLUS4_EXPANSION_SLOT_TAG), - m_jp1(*this, "JP1"), - m_tcbm_data(0xff), - m_status(1), - m_dav(1), - m_ack(1), - m_dev(0), m_irq_timer(nullptr) +// c1551_device - constructor +//------------------------------------------------- + +c1551_device::c1551_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, C1551, tag, owner, clock) + , device_plus4_expansion_card_interface(mconfig, *this) + , m_maincpu(*this, M6510T_TAG) + , m_tpi0(*this, M6523_0_TAG) + , m_tpi1(*this, M6523_1_TAG) + , m_ga(*this, C64H156_TAG) + , m_pla(*this, PLA_TAG) + , m_floppy(*this, C64H156_TAG":0:525ssqd") + , m_exp(*this, PLUS4_EXPANSION_SLOT_TAG) + , m_jp1(*this, "JP1") + , m_tcbm_data(0xff) + , m_status(1) + , m_dav(1) + , m_ack(1) + , m_dev(0) + , m_irq_timer(nullptr) { } @@ -438,7 +439,7 @@ c1551_t::c1551_t(const machine_config &mconfig, const char *tag, device_t *owner // device_start - device-specific startup //------------------------------------------------- -void c1551_t::device_start() +void c1551_device::device_start() { // allocate timers m_irq_timer = timer_alloc(); @@ -460,7 +461,7 @@ void c1551_t::device_start() // device_reset - device-specific reset //------------------------------------------------- -void c1551_t::device_reset() +void c1551_device::device_reset() { m_maincpu->reset(); @@ -480,7 +481,7 @@ void c1551_t::device_reset() // device_timer - handler timer events //------------------------------------------------- -void c1551_t::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) +void c1551_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) { m_maincpu->set_input_line(M6502_IRQ_LINE, param); @@ -501,7 +502,7 @@ void c1551_t::device_timer(emu_timer &timer, device_timer_id id, int param, void // tpi1_selected - //------------------------------------------------- -bool c1551_t::tpi1_selected(offs_t offset) +bool c1551_device::tpi1_selected(offs_t offset) { #ifdef PLA_DUMPED int mux = 0, ras = 0, phi0 = 0, f7 = 0; @@ -525,7 +526,7 @@ bool c1551_t::tpi1_selected(offs_t offset) // plus4_cd_r - cartridge data read //------------------------------------------------- -uint8_t c1551_t::plus4_cd_r(address_space &space, offs_t offset, uint8_t data, int ba, int cs0, int c1l, int c2l, int cs1, int c1h, int c2h) +uint8_t c1551_device::plus4_cd_r(address_space &space, offs_t offset, uint8_t data, int ba, int cs0, int c1l, int c2l, int cs1, int c1h, int c2h) { data = m_exp->cd_r(space, offset, data, ba, cs0, c1l, c2l, cs1, c1h, c2h); @@ -542,7 +543,7 @@ uint8_t c1551_t::plus4_cd_r(address_space &space, offs_t offset, uint8_t data, i // plus4_cd_w - cartridge data write //------------------------------------------------- -void c1551_t::plus4_cd_w(address_space &space, offs_t offset, uint8_t data, int ba, int cs0, int c1l, int c2l, int cs1, int c1h, int c2h) +void c1551_device::plus4_cd_w(address_space &space, offs_t offset, uint8_t data, int ba, int cs0, int c1l, int c2l, int cs1, int c1h, int c2h) { if (tpi1_selected(offset)) { diff --git a/src/devices/bus/plus4/c1551.h b/src/devices/bus/plus4/c1551.h index 07f2e5596ee..ae749c0e056 100644 --- a/src/devices/bus/plus4/c1551.h +++ b/src/devices/bus/plus4/c1551.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_PLUS4_C1551_H +#define MAME_BUS_PLUS4_C1551_H -#ifndef __C1551__ -#define __C1551__ +#pragma once #include "exp.h" #include "cpu/m6502/m6510t.h" @@ -23,14 +23,13 @@ // TYPE DEFINITIONS //************************************************************************** -// ======================> c1551_t +// ======================> c1551_device -class c1551_t : public device_t, - public device_plus4_expansion_card_interface +class c1551_device : public device_t, public device_plus4_expansion_card_interface { public: // construction/destruction - c1551_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + c1551_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual const tiny_rom_entry *device_rom_region() const override; @@ -96,7 +95,6 @@ private: // device type definition extern const device_type C1551; +DECLARE_DEVICE_TYPE(C1551, c1551_device) - - -#endif +#endif // MAME_BUS_PLUS4_C1551_H diff --git a/src/devices/bus/plus4/diag264_lb_user.cpp b/src/devices/bus/plus4/diag264_lb_user.cpp index d3978801a88..a8e4dc32b8c 100644 --- a/src/devices/bus/plus4/diag264_lb_user.cpp +++ b/src/devices/bus/plus4/diag264_lb_user.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type DIAG264_USER_PORT_LOOPBACK = device_creator; +DEFINE_DEVICE_TYPE(DIAG264_USER_PORT_LOOPBACK, diag264_user_port_loopback_device, "diag264_user_port_loopback", "Diag264 User Port Loopback") @@ -28,8 +28,8 @@ const device_type DIAG264_USER_PORT_LOOPBACK = device_creator diag264_user_port_loopback_device -class diag264_user_port_loopback_device : public device_t, - public device_pet_user_port_interface +class diag264_user_port_loopback_device : public device_t, public device_pet_user_port_interface { public: // construction/destruction @@ -53,6 +52,6 @@ protected: }; // device type definition -extern const device_type DIAG264_USER_PORT_LOOPBACK; +DECLARE_DEVICE_TYPE(DIAG264_USER_PORT_LOOPBACK, diag264_user_port_loopback_device) -#endif +#endif // MAME_BUS_PLUS4_DIAG264_LB_USER_H diff --git a/src/devices/bus/plus4/exp.cpp b/src/devices/bus/plus4/exp.cpp index 261dc556e60..0a868747088 100644 --- a/src/devices/bus/plus4/exp.cpp +++ b/src/devices/bus/plus4/exp.cpp @@ -23,7 +23,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type PLUS4_EXPANSION_SLOT = device_creator; +DEFINE_DEVICE_TYPE(PLUS4_EXPANSION_SLOT, plus4_expansion_slot_device, "plus4_expansion_slot", "Plus/4 Expansion Port") @@ -35,16 +35,16 @@ const device_type PLUS4_EXPANSION_SLOT = device_creator(device.owner()); } @@ -69,13 +69,13 @@ device_plus4_expansion_card_interface::~device_plus4_expansion_card_interface() //------------------------------------------------- plus4_expansion_slot_device::plus4_expansion_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, PLUS4_EXPANSION_SLOT, "Expansion Port", tag, owner, clock, "plus4_expansion_slot", __FILE__), - device_slot_interface(mconfig, *this), - device_image_interface(mconfig, *this), - m_write_irq(*this), - m_read_dma_cd(*this), - m_write_dma_cd(*this), - m_write_aec(*this), m_card(nullptr) + device_t(mconfig, PLUS4_EXPANSION_SLOT, tag, owner, clock), + device_slot_interface(mconfig, *this), + device_image_interface(mconfig, *this), + m_write_irq(*this), + m_read_dma_cd(*this), + m_write_dma_cd(*this), + m_write_aec(*this), m_card(nullptr) { } diff --git a/src/devices/bus/plus4/exp.h b/src/devices/bus/plus4/exp.h index 319f07ba6fa..294c108d8f4 100644 --- a/src/devices/bus/plus4/exp.h +++ b/src/devices/bus/plus4/exp.h @@ -34,10 +34,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_PLUS4_EXP_H +#define MAME_BUS_PLUS4_EXP_H -#ifndef __PLUS4_EXPANSION_SLOT__ -#define __PLUS4_EXPANSION_SLOT__ +#pragma once #include "softlist_dev.h" @@ -96,10 +96,10 @@ public: // construction/destruction plus4_expansion_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_irq_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_irq.set_callback(object); } - template static devcb_base &set_cd_rd_callback(device_t &device, _Object object) { return downcast(device).m_read_dma_cd.set_callback(object); } - template static devcb_base &set_cd_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_dma_cd.set_callback(object); } - template static devcb_base &set_aec_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_aec.set_callback(object); } + template static devcb_base &set_irq_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_irq.set_callback(std::forward(cb)); } + template static devcb_base &set_cd_rd_callback(device_t &device, Object &&cb) { return downcast(device).m_read_dma_cd.set_callback(std::forward(cb)); } + template static devcb_base &set_cd_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_dma_cd.set_callback(std::forward(cb)); } + template static devcb_base &set_aec_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_aec.set_callback(std::forward(cb)); } // computer interface uint8_t cd_r(address_space &space, offs_t offset, uint8_t data, int ba, int cs0, int c1l, int c2l, int cs1, int c1h, int c2h); @@ -151,14 +151,15 @@ class device_plus4_expansion_card_interface : public device_slot_card_interface public: // construction/destruction - device_plus4_expansion_card_interface(const machine_config &mconfig, device_t &device); virtual ~device_plus4_expansion_card_interface(); // runtime - virtual uint8_t plus4_cd_r(address_space &space, offs_t offset, uint8_t data, int ba, int cs0, int c1l, int c2l, int cs1, int c1h, int c2h) { return data; }; - virtual void plus4_cd_w(address_space &space, offs_t offset, uint8_t data, int ba, int cs0, int c1l, int c2l, int cs1, int c1h, int c2h) { }; + virtual uint8_t plus4_cd_r(address_space &space, offs_t offset, uint8_t data, int ba, int cs0, int c1l, int c2l, int cs1, int c1h, int c2h) { return data; } + virtual void plus4_cd_w(address_space &space, offs_t offset, uint8_t data, int ba, int cs0, int c1l, int c2l, int cs1, int c1h, int c2h) { } protected: + device_plus4_expansion_card_interface(const machine_config &mconfig, device_t &device); + optional_shared_ptr m_c1l; optional_shared_ptr m_c1h; optional_shared_ptr m_c2l; @@ -174,11 +175,9 @@ protected: // device type definition -extern const device_type PLUS4_EXPANSION_SLOT; +DECLARE_DEVICE_TYPE(PLUS4_EXPANSION_SLOT, plus4_expansion_slot_device) SLOT_INTERFACE_EXTERN( plus4_expansion_cards ); - - -#endif +#endif // MAME_BUS_PLUS4_EXP_H diff --git a/src/devices/bus/plus4/sid.cpp b/src/devices/bus/plus4/sid.cpp index 00a2ec25cbe..269446d86a7 100644 --- a/src/devices/bus/plus4/sid.cpp +++ b/src/devices/bus/plus4/sid.cpp @@ -37,7 +37,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type PLUS4_SID = device_creator; +DEFINE_DEVICE_TYPE(PLUS4_SID, plus4_sid_cartridge_device, "plus4_sid", "Plus/4 SID cartridge") //------------------------------------------------- @@ -94,7 +94,7 @@ machine_config_constructor plus4_sid_cartridge_device::device_mconfig_additions( //------------------------------------------------- plus4_sid_cartridge_device::plus4_sid_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, PLUS4_SID, "Plus/4 SID cartridge", tag, owner, clock, "plus4_sid", __FILE__), + device_t(mconfig, PLUS4_SID, tag, owner, clock), device_plus4_expansion_card_interface(mconfig, *this), m_sid(*this, MOS8580_TAG), m_joy(*this, CONTROL1_TAG) diff --git a/src/devices/bus/plus4/sid.h b/src/devices/bus/plus4/sid.h index 31fa52eaf83..9136e0abc5b 100644 --- a/src/devices/bus/plus4/sid.h +++ b/src/devices/bus/plus4/sid.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_PLUS4_SID_H +#define MAME_BUS_PLUS4_SID_H -#ifndef __PLUS4_SID_CARTRIDGE__ -#define __PLUS4_SID_CARTRIDGE__ +#pragma once #include "exp.h" #include "bus/vcs_ctrl/ctrl.h" @@ -51,7 +51,7 @@ private: // device type definition -extern const device_type PLUS4_SID; +DECLARE_DEVICE_TYPE(PLUS4_SID, plus4_sid_cartridge_device) -#endif +#endif // MAME_BUS_PLUS4_SID_H diff --git a/src/devices/bus/plus4/std.cpp b/src/devices/bus/plus4/std.cpp index 781bb9f0d92..835ecac7d4a 100644 --- a/src/devices/bus/plus4/std.cpp +++ b/src/devices/bus/plus4/std.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type PLUS4_STD = device_creator; +DEFINE_DEVICE_TYPE(PLUS4_STD, plus4_standard_cartridge_device, "plus4_standard", "Plus/4 standard cartridge") @@ -28,7 +28,7 @@ const device_type PLUS4_STD = device_creator; //------------------------------------------------- plus4_standard_cartridge_device::plus4_standard_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, PLUS4_STD, "Plus/4 standard cartridge", tag, owner, clock, "plus4_standard", __FILE__), + device_t(mconfig, PLUS4_STD, tag, owner, clock), device_plus4_expansion_card_interface(mconfig, *this) { } diff --git a/src/devices/bus/plus4/std.h b/src/devices/bus/plus4/std.h index fb60a81b5eb..d154f0bcadc 100644 --- a/src/devices/bus/plus4/std.h +++ b/src/devices/bus/plus4/std.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_PLUS4_STD_H +#define MAME_BUS_PLUS4_STD_H -#ifndef __PLUS4_STANDARD_CARTRIDGE__ -#define __PLUS4_STANDARD_CARTRIDGE__ +#pragma once #include "exp.h" @@ -34,13 +34,10 @@ protected: // device_plus4_expansion_card_interface overrides virtual uint8_t plus4_cd_r(address_space &space, offs_t offset, uint8_t data, int ba, int cs0, int c1l, int c2l, int cs1, int c1h, int c2h) override; - - }; // device type definition -extern const device_type PLUS4_STD; - +DECLARE_DEVICE_TYPE(PLUS4_STD, plus4_standard_cartridge_device) -#endif +#endif // MAME_BUS_PLUS4_STD_H diff --git a/src/devices/bus/plus4/user.h b/src/devices/bus/plus4/user.h index abf4a909ccb..8aac44235de 100644 --- a/src/devices/bus/plus4/user.h +++ b/src/devices/bus/plus4/user.h @@ -21,13 +21,13 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_PLUS4_USER_H +#define MAME_BUS_PLUS4_USER_H -#ifndef __PLUS4_USER_PORT__ -#define __PLUS4_USER_PORT__ +#pragma once #include "bus/vic20/user.h" SLOT_INTERFACE_EXTERN( plus4_user_port_cards ); -#endif +#endif // MAME_BUS_PLUS4_USER_H diff --git a/src/devices/bus/pofo/ccm.cpp b/src/devices/bus/pofo/ccm.cpp index e31a1eefc97..9619be68712 100644 --- a/src/devices/bus/pofo/ccm.cpp +++ b/src/devices/bus/pofo/ccm.cpp @@ -15,7 +15,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type PORTFOLIO_MEMORY_CARD_SLOT = device_creator; +DEFINE_DEVICE_TYPE(PORTFOLIO_MEMORY_CARD_SLOT, portfolio_memory_card_slot_device, "portfolio_ccm_slot", "Atari Portfolio memory card port") @@ -32,7 +32,7 @@ device_portfolio_memory_card_slot_interface::device_portfolio_memory_card_slot_i m_rom(*this, "rom"), m_nvram(*this, "nvram") { - m_slot = dynamic_cast(device.owner()); + m_slot = dynamic_cast(device.owner()); } @@ -42,11 +42,11 @@ device_portfolio_memory_card_slot_interface::device_portfolio_memory_card_slot_i //************************************************************************** //------------------------------------------------- -// portfolio_memory_card_slot_t - constructor +// portfolio_memory_card_slot_device - constructor //------------------------------------------------- -portfolio_memory_card_slot_t::portfolio_memory_card_slot_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, PORTFOLIO_MEMORY_CARD_SLOT, "Atari Portfolio memory card port", tag, owner, clock, "portfolio_ccm_slot", __FILE__), +portfolio_memory_card_slot_device::portfolio_memory_card_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, PORTFOLIO_MEMORY_CARD_SLOT, tag, owner, clock), device_slot_interface(mconfig, *this), device_image_interface(mconfig, *this), m_card(nullptr) @@ -58,7 +58,7 @@ portfolio_memory_card_slot_t::portfolio_memory_card_slot_t(const machine_config // device_start - device-specific startup //------------------------------------------------- -void portfolio_memory_card_slot_t::device_start() +void portfolio_memory_card_slot_device::device_start() { m_card = dynamic_cast(get_card_device()); } @@ -68,7 +68,7 @@ void portfolio_memory_card_slot_t::device_start() // call_load - //------------------------------------------------- -image_init_result portfolio_memory_card_slot_t::call_load() +image_init_result portfolio_memory_card_slot_device::call_load() { if (m_card) { @@ -90,7 +90,7 @@ image_init_result portfolio_memory_card_slot_t::call_load() // get_default_card_software - //------------------------------------------------- -std::string portfolio_memory_card_slot_t::get_default_card_software(get_default_card_software_hook &hook) const +std::string portfolio_memory_card_slot_device::get_default_card_software(get_default_card_software_hook &hook) const { return software_get_default_slot("rom"); } diff --git a/src/devices/bus/pofo/ccm.h b/src/devices/bus/pofo/ccm.h index c960b8eed98..ac57eb143c7 100644 --- a/src/devices/bus/pofo/ccm.h +++ b/src/devices/bus/pofo/ccm.h @@ -43,10 +43,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_POFO_CCM_H +#define MAME_BUS_POFO_CCM_H -#ifndef __PORTFOLIO_MEMORY_CARD_SLOT__ -#define __PORTFOLIO_MEMORY_CARD_SLOT__ +#pragma once #include "softlist_dev.h" @@ -77,40 +77,38 @@ // ======================> device_portfolio_memory_card_slot_interface -class portfolio_memory_card_slot_t; +class portfolio_memory_card_slot_device; class device_portfolio_memory_card_slot_interface : public device_slot_card_interface { - friend class portfolio_memory_card_slot_t; + friend class portfolio_memory_card_slot_device; public: - // construction/destruction - device_portfolio_memory_card_slot_interface(const machine_config &mconfig, device_t &device); - virtual ~device_portfolio_memory_card_slot_interface() { } - virtual bool cdet() { return 1; } - virtual uint8_t nrdi_r(address_space &space, offs_t offset) { return 0xff; }; - virtual void nwri_w(address_space &space, offs_t offset, uint8_t data) { }; + virtual uint8_t nrdi_r(address_space &space, offs_t offset) { return 0xff; } + virtual void nwri_w(address_space &space, offs_t offset, uint8_t data) { } protected: + // construction/destruction + device_portfolio_memory_card_slot_interface(const machine_config &mconfig, device_t &device); + optional_shared_ptr m_rom; optional_shared_ptr m_nvram; - portfolio_memory_card_slot_t *m_slot; + portfolio_memory_card_slot_device *m_slot; }; -// ======================> portfolio_memory_card_slot_t +// ======================> portfolio_memory_card_slot_device -class portfolio_memory_card_slot_t : public device_t, +class portfolio_memory_card_slot_device : public device_t, public device_slot_interface, public device_image_interface { public: // construction/destruction - portfolio_memory_card_slot_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual ~portfolio_memory_card_slot_t() { } + portfolio_memory_card_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // computer interface bool cdet_r() { return (m_card != nullptr) ? m_card->cdet() : 1; } @@ -145,10 +143,11 @@ protected: // device type definition extern const device_type PORTFOLIO_MEMORY_CARD_SLOT; +DECLARE_DEVICE_TYPE(PORTFOLIO_MEMORY_CARD_SLOT, portfolio_memory_card_slot_device) SLOT_INTERFACE_EXTERN( portfolio_memory_cards ); -#endif +#endif // MAME_BUS_POFO_CCM_H diff --git a/src/devices/bus/pofo/exp.cpp b/src/devices/bus/pofo/exp.cpp index c8f5733fe2c..37991dd8989 100644 --- a/src/devices/bus/pofo/exp.cpp +++ b/src/devices/bus/pofo/exp.cpp @@ -15,7 +15,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type PORTFOLIO_EXPANSION_SLOT = device_creator; +DEFINE_DEVICE_TYPE(PORTFOLIO_EXPANSION_SLOT, portfolio_expansion_slot_device, "portfolio_expansion_slot", "Atari Portfolio expansion port") @@ -30,7 +30,7 @@ const device_type PORTFOLIO_EXPANSION_SLOT = device_creator(device.owner()); + m_slot = dynamic_cast(device.owner()); } WRITE_LINE_MEMBER( device_portfolio_expansion_slot_interface::eint_w ) { m_slot->eint_w(state); } @@ -44,11 +44,11 @@ WRITE_LINE_MEMBER( device_portfolio_expansion_slot_interface::wake_w ) { m_slot- //************************************************************************** //------------------------------------------------- -// portfolio_expansion_slot_t - constructor +// portfolio_expansion_slot_device - constructor //------------------------------------------------- -portfolio_expansion_slot_t::portfolio_expansion_slot_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, PORTFOLIO_EXPANSION_SLOT, "Atari Portfolio expansion port", tag, owner, clock, "portfolio_expansion_slot", __FILE__), +portfolio_expansion_slot_device::portfolio_expansion_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, PORTFOLIO_EXPANSION_SLOT, tag, owner, clock), device_slot_interface(mconfig, *this), m_write_eint(*this), m_write_nmio(*this), @@ -62,7 +62,7 @@ portfolio_expansion_slot_t::portfolio_expansion_slot_t(const machine_config &mco // device_start - device-specific startup //------------------------------------------------- -void portfolio_expansion_slot_t::device_start() +void portfolio_expansion_slot_device::device_start() { m_card = dynamic_cast(get_card_device()); @@ -77,7 +77,7 @@ void portfolio_expansion_slot_t::device_start() // device_reset - device-specific reset //------------------------------------------------- -void portfolio_expansion_slot_t::device_reset() +void portfolio_expansion_slot_device::device_reset() { if (m_card != nullptr) { @@ -97,8 +97,8 @@ void portfolio_expansion_slot_t::device_reset() #include "hpc104.h" SLOT_INTERFACE_START( portfolio_expansion_cards ) - SLOT_INTERFACE("lpt", HPC101) - SLOT_INTERFACE("uart", HPC102) - SLOT_INTERFACE("ram", HPC104) - SLOT_INTERFACE("ram2", HPC104_2) + SLOT_INTERFACE("lpt", POFO_HPC101) + SLOT_INTERFACE("uart", POFO_HPC102) + SLOT_INTERFACE("ram", POFO_HPC104) + SLOT_INTERFACE("ram2", POFO_HPC104_2) SLOT_INTERFACE_END diff --git a/src/devices/bus/pofo/exp.h b/src/devices/bus/pofo/exp.h index 51bb16c71f4..27f882d2603 100644 --- a/src/devices/bus/pofo/exp.h +++ b/src/devices/bus/pofo/exp.h @@ -39,10 +39,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_POFO_EXP_H +#define MAME_BUS_POFO_EXP_H -#ifndef __PORTFOLIO_EXPANSION_SLOT__ -#define __PORTFOLIO_EXPANSION_SLOT__ +#pragma once @@ -64,13 +64,13 @@ MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, false) #define MCFG_PORTFOLIO_EXPANSION_SLOT_EINT_CALLBACK(_write) \ - devcb = &portfolio_expansion_slot_t::set_eint_wr_callback(*device, DEVCB_##_write); + devcb = &portfolio_expansion_slot_device::set_eint_wr_callback(*device, DEVCB_##_write); #define MCFG_PORTFOLIO_EXPANSION_SLOT_NMIO_CALLBACK(_write) \ - devcb = &portfolio_expansion_slot_t::set_nmio_wr_callback(*device, DEVCB_##_write); + devcb = &portfolio_expansion_slot_device::set_nmio_wr_callback(*device, DEVCB_##_write); #define MCFG_PORTFOLIO_EXPANSION_SLOT_WAKE_CALLBACK(_write) \ - devcb = &portfolio_expansion_slot_t::set_wake_wr_callback(*device, DEVCB_##_write); + devcb = &portfolio_expansion_slot_device::set_wake_wr_callback(*device, DEVCB_##_write); @@ -80,15 +80,11 @@ // ======================> device_portfolio_expansion_slot_interface -class portfolio_expansion_slot_t; +class portfolio_expansion_slot_device; class device_portfolio_expansion_slot_interface : public device_slot_card_interface { public: - // construction/destruction - device_portfolio_expansion_slot_interface(const machine_config &mconfig, device_t &device); - virtual ~device_portfolio_expansion_slot_interface() { } - virtual bool nmd1() { return 1; } virtual bool pdet() { return 0; } virtual bool cdet() { return 1; } @@ -96,33 +92,34 @@ public: virtual uint8_t iack_r() { return 0xff; } virtual uint8_t eack_r() { return 0xff; } - virtual uint8_t nrdi_r(address_space &space, offs_t offset, uint8_t data, bool iom, bool bcom, bool ncc1) { return data; }; - virtual void nwri_w(address_space &space, offs_t offset, uint8_t data, bool iom, bool bcom, bool ncc1) { }; + virtual uint8_t nrdi_r(address_space &space, offs_t offset, uint8_t data, bool iom, bool bcom, bool ncc1) { return data; } + virtual void nwri_w(address_space &space, offs_t offset, uint8_t data, bool iom, bool bcom, bool ncc1) { } - virtual WRITE_LINE_MEMBER( iint_w ) { }; + virtual WRITE_LINE_MEMBER( iint_w ) { } DECLARE_WRITE_LINE_MEMBER( eint_w ); DECLARE_WRITE_LINE_MEMBER( nmio_w ); DECLARE_WRITE_LINE_MEMBER( wake_w ); protected: - portfolio_expansion_slot_t *m_slot; + // construction/destruction + device_portfolio_expansion_slot_interface(const machine_config &mconfig, device_t &device); + + portfolio_expansion_slot_device *m_slot; }; -// ======================> portfolio_expansion_slot_t +// ======================> portfolio_expansion_slot_device -class portfolio_expansion_slot_t : public device_t, - public device_slot_interface +class portfolio_expansion_slot_device : public device_t, public device_slot_interface { public: // construction/destruction - portfolio_expansion_slot_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual ~portfolio_expansion_slot_t() { } + portfolio_expansion_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_eint_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_eint.set_callback(object); } - template static devcb_base &set_nmio_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_nmio.set_callback(object); } - template static devcb_base &set_wake_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_wake.set_callback(object); } + template static devcb_base &set_eint_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_eint.set_callback(std::forward(cb)); } + template static devcb_base &set_nmio_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_nmio.set_callback(std::forward(cb)); } + template static devcb_base &set_wake_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_wake.set_callback(std::forward(cb)); } // computer interface bool nmd1_r() { return (m_card != nullptr) ? m_card->nmd1() : 1; } @@ -157,10 +154,9 @@ protected: // device type definition extern const device_type PORTFOLIO_EXPANSION_SLOT; +DECLARE_DEVICE_TYPE(PORTFOLIO_EXPANSION_SLOT, portfolio_expansion_slot_device) SLOT_INTERFACE_EXTERN( portfolio_expansion_cards ); - - -#endif +#endif // MAME_BUS_POFO_EXP_H diff --git a/src/devices/bus/pofo/hpc101.cpp b/src/devices/bus/pofo/hpc101.cpp index 8d106f00a37..f5511c3963b 100644 --- a/src/devices/bus/pofo/hpc101.cpp +++ b/src/devices/bus/pofo/hpc101.cpp @@ -26,7 +26,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type HPC101 = device_creator; +DEFINE_DEVICE_TYPE(POFO_HPC101, pofo_hpc101_device, "pofo_hpc101", "Atari Portfolio HPC-101") //------------------------------------------------- @@ -62,7 +62,7 @@ MACHINE_CONFIG_END // machine configurations //------------------------------------------------- -machine_config_constructor hpc101_t::device_mconfig_additions() const +machine_config_constructor pofo_hpc101_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( hpc101 ); } @@ -73,11 +73,11 @@ machine_config_constructor hpc101_t::device_mconfig_additions() const //************************************************************************** //------------------------------------------------- -// hpc101_t - constructor +// pofo_hpc101_device - constructor //------------------------------------------------- -hpc101_t::hpc101_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, HPC101, "Atari Portfolio HPC-101", tag, owner, clock, "hpc101", __FILE__), +pofo_hpc101_device::pofo_hpc101_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, POFO_HPC101, tag, owner, clock), device_portfolio_expansion_slot_interface(mconfig, *this), m_ppi(*this, M82C55A_TAG) { @@ -88,7 +88,7 @@ hpc101_t::hpc101_t(const machine_config &mconfig, const char *tag, device_t *own // device_start - device-specific startup //------------------------------------------------- -void hpc101_t::device_start() +void pofo_hpc101_device::device_start() { } @@ -97,7 +97,7 @@ void hpc101_t::device_start() // device_reset - device-specific reset //------------------------------------------------- -void hpc101_t::device_reset() +void pofo_hpc101_device::device_reset() { m_ppi->reset(); } @@ -107,7 +107,7 @@ void hpc101_t::device_reset() // nrdi_r - read //------------------------------------------------- -uint8_t hpc101_t::nrdi_r(address_space &space, offs_t offset, uint8_t data, bool iom, bool bcom, bool ncc1) +uint8_t pofo_hpc101_device::nrdi_r(address_space &space, offs_t offset, uint8_t data, bool iom, bool bcom, bool ncc1) { if (!bcom) { @@ -130,7 +130,7 @@ uint8_t hpc101_t::nrdi_r(address_space &space, offs_t offset, uint8_t data, bool // nwri_w - write //------------------------------------------------- -void hpc101_t::nwri_w(address_space &space, offs_t offset, uint8_t data, bool iom, bool bcom, bool ncc1) +void pofo_hpc101_device::nwri_w(address_space &space, offs_t offset, uint8_t data, bool iom, bool bcom, bool ncc1) { if (!bcom) { diff --git a/src/devices/bus/pofo/hpc101.h b/src/devices/bus/pofo/hpc101.h index 9a700be92b9..f5cc803b5bb 100644 --- a/src/devices/bus/pofo/hpc101.h +++ b/src/devices/bus/pofo/hpc101.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_POFO_HPC101_H +#define MAME_BUS_POFO_HPC101_H -#ifndef __HPC101__ -#define __HPC101__ +#pragma once #include "exp.h" #include "bus/centronics/ctronics.h" @@ -21,14 +21,13 @@ // TYPE DEFINITIONS //************************************************************************** -// ======================> hpc101_t +// ======================> pofo_hpc101_device -class hpc101_t : public device_t, - public device_portfolio_expansion_slot_interface +class pofo_hpc101_device : public device_t, public device_portfolio_expansion_slot_interface { public: // construction/destruction - hpc101_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + pofo_hpc101_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual machine_config_constructor device_mconfig_additions() const override; @@ -50,8 +49,6 @@ private: // device type definition -extern const device_type HPC101; - - +DECLARE_DEVICE_TYPE(POFO_HPC101, pofo_hpc101_device) -#endif +#endif // MAME_BUS_POFO_HPC101_H diff --git a/src/devices/bus/pofo/hpc102.cpp b/src/devices/bus/pofo/hpc102.cpp index 72c886b32d3..45dfb9e3c13 100644 --- a/src/devices/bus/pofo/hpc102.cpp +++ b/src/devices/bus/pofo/hpc102.cpp @@ -26,7 +26,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type HPC102 = device_creator; +DEFINE_DEVICE_TYPE(POFO_HPC102, pofo_hpc102_device, "pofo_hpc102", "Atari Portfolio HPC-102") //------------------------------------------------- @@ -54,7 +54,7 @@ MACHINE_CONFIG_END // machine configurations //------------------------------------------------- -machine_config_constructor hpc102_t::device_mconfig_additions() const +machine_config_constructor pofo_hpc102_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( hpc102 ); } @@ -65,11 +65,11 @@ machine_config_constructor hpc102_t::device_mconfig_additions() const //************************************************************************** //------------------------------------------------- -// hpc102_t - constructor +// pofo_hpc102_device - constructor //------------------------------------------------- -hpc102_t::hpc102_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, HPC102, "Atari Portfolio HPC-102", tag, owner, clock, "hpc102", __FILE__), +pofo_hpc102_device::pofo_hpc102_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, POFO_HPC102, tag, owner, clock), device_portfolio_expansion_slot_interface(mconfig, *this), m_uart(*this, M82C50A_TAG) { @@ -80,7 +80,7 @@ hpc102_t::hpc102_t(const machine_config &mconfig, const char *tag, device_t *own // device_start - device-specific startup //------------------------------------------------- -void hpc102_t::device_start() +void pofo_hpc102_device::device_start() { } @@ -89,7 +89,7 @@ void hpc102_t::device_start() // device_reset - device-specific reset //------------------------------------------------- -void hpc102_t::device_reset() +void pofo_hpc102_device::device_reset() { m_uart->reset(); } @@ -99,7 +99,7 @@ void hpc102_t::device_reset() // eack_r - external interrupt acknowledge //------------------------------------------------- -uint8_t hpc102_t::eack_r() +uint8_t pofo_hpc102_device::eack_r() { return m_vector; } @@ -109,7 +109,7 @@ uint8_t hpc102_t::eack_r() // nrdi_r - read //------------------------------------------------- -uint8_t hpc102_t::nrdi_r(address_space &space, offs_t offset, uint8_t data, bool iom, bool bcom, bool ncc1) +uint8_t pofo_hpc102_device::nrdi_r(address_space &space, offs_t offset, uint8_t data, bool iom, bool bcom, bool ncc1) { if (!bcom) { @@ -132,7 +132,7 @@ uint8_t hpc102_t::nrdi_r(address_space &space, offs_t offset, uint8_t data, bool // nwri_w - write //------------------------------------------------- -void hpc102_t::nwri_w(address_space &space, offs_t offset, uint8_t data, bool iom, bool bcom, bool ncc1) +void pofo_hpc102_device::nwri_w(address_space &space, offs_t offset, uint8_t data, bool iom, bool bcom, bool ncc1) { if (!bcom) { diff --git a/src/devices/bus/pofo/hpc102.h b/src/devices/bus/pofo/hpc102.h index e492e6cdc38..e0ba50074e4 100644 --- a/src/devices/bus/pofo/hpc102.h +++ b/src/devices/bus/pofo/hpc102.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_POFO_HPC102_H +#define MAME_BUS_POFO_HPC102_H -#ifndef __HPC102__ -#define __HPC102__ +#pragma once #include "exp.h" #include "bus/rs232/rs232.h" @@ -21,14 +21,13 @@ // TYPE DEFINITIONS //************************************************************************** -// ======================> hpc102_t +// ======================> pofo_hpc102_device -class hpc102_t : public device_t, - public device_portfolio_expansion_slot_interface +class pofo_hpc102_device : public device_t, public device_portfolio_expansion_slot_interface { public: // construction/destruction - hpc102_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + pofo_hpc102_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual machine_config_constructor device_mconfig_additions() const override; @@ -54,12 +53,6 @@ private: // device type definition -extern const device_type HPC102; - - - -#endif -/* - +DECLARE_DEVICE_TYPE(POFO_HPC102, pofo_hpc102_device) -*/ +#endif // MAME_BUS_POFO_HPC102_H diff --git a/src/devices/bus/pofo/hpc104.cpp b/src/devices/bus/pofo/hpc104.cpp index 050fdc2bb6c..7c22c9b6625 100644 --- a/src/devices/bus/pofo/hpc104.cpp +++ b/src/devices/bus/pofo/hpc104.cpp @@ -23,8 +23,8 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type HPC104 = device_creator; -const device_type HPC104_2 = device_creator; +DEFINE_DEVICE_TYPE(POFO_HPC104, pofo_hpc104_device, "pofo_hpc104", "Atari Portfolio HPC-104") +DEFINE_DEVICE_TYPE(POFO_HPC104_2, pofo_hpc104_2_device, "pofo_hpc104_2", "Atari Portfolio HPC-104 (Unit 2)") //------------------------------------------------- @@ -35,9 +35,9 @@ static MACHINE_CONFIG_FRAGMENT( hpc104 ) MCFG_PORTFOLIO_MEMORY_CARD_SLOT_ADD(PORTFOLIO_MEMORY_CARD_SLOT_B_TAG, portfolio_memory_cards, nullptr) MCFG_PORTFOLIO_EXPANSION_SLOT_ADD(PORTFOLIO_EXPANSION_SLOT_TAG, XTAL_4_9152MHz, portfolio_expansion_cards, nullptr) - MCFG_PORTFOLIO_EXPANSION_SLOT_EINT_CALLBACK(DEVWRITELINE(DEVICE_SELF_OWNER, portfolio_expansion_slot_t, eint_w)) - MCFG_PORTFOLIO_EXPANSION_SLOT_NMIO_CALLBACK(DEVWRITELINE(DEVICE_SELF_OWNER, portfolio_expansion_slot_t, nmio_w)) - MCFG_PORTFOLIO_EXPANSION_SLOT_WAKE_CALLBACK(DEVWRITELINE(DEVICE_SELF_OWNER, portfolio_expansion_slot_t, wake_w)) + MCFG_PORTFOLIO_EXPANSION_SLOT_EINT_CALLBACK(DEVWRITELINE(DEVICE_SELF_OWNER, portfolio_expansion_slot_device, eint_w)) + MCFG_PORTFOLIO_EXPANSION_SLOT_NMIO_CALLBACK(DEVWRITELINE(DEVICE_SELF_OWNER, portfolio_expansion_slot_device, nmio_w)) + MCFG_PORTFOLIO_EXPANSION_SLOT_WAKE_CALLBACK(DEVWRITELINE(DEVICE_SELF_OWNER, portfolio_expansion_slot_device, wake_w)) MACHINE_CONFIG_END @@ -46,7 +46,7 @@ MACHINE_CONFIG_END // machine configurations //------------------------------------------------- -machine_config_constructor hpc104_t::device_mconfig_additions() const +machine_config_constructor pofo_hpc104_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( hpc104 ); } @@ -68,7 +68,7 @@ INPUT_PORTS_END // input_ports - device-specific input ports //------------------------------------------------- -ioport_constructor hpc104_t::device_input_ports() const +ioport_constructor pofo_hpc104_device::device_input_ports() const { return INPUT_PORTS_NAME( hpc104 ); } @@ -90,7 +90,7 @@ INPUT_PORTS_END // input_ports - device-specific input ports //------------------------------------------------- -ioport_constructor hpc104_2_t::device_input_ports() const +ioport_constructor pofo_hpc104_2_device::device_input_ports() const { return INPUT_PORTS_NAME( hpc104_2 ); } @@ -102,11 +102,11 @@ ioport_constructor hpc104_2_t::device_input_ports() const //************************************************************************** //------------------------------------------------- -// hpc104_t - constructor +// pofo_hpc104_device - constructor //------------------------------------------------- -hpc104_t::hpc104_t(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), +pofo_hpc104_device::pofo_hpc104_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), device_portfolio_expansion_slot_interface(mconfig, *this), device_nvram_interface(mconfig, *this), m_ccm(*this, PORTFOLIO_MEMORY_CARD_SLOT_B_TAG), @@ -116,31 +116,27 @@ hpc104_t::hpc104_t(const machine_config &mconfig, device_type type, const char * { } -hpc104_t::hpc104_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, HPC104, "Atari Portfolio HPC-104", tag, owner, clock, "hpc104", __FILE__), - device_portfolio_expansion_slot_interface(mconfig, *this), - device_nvram_interface(mconfig, *this), - m_ccm(*this, PORTFOLIO_MEMORY_CARD_SLOT_B_TAG), - m_exp(*this, PORTFOLIO_EXPANSION_SLOT_TAG), - m_nvram(*this, "nvram"), - m_io_sw1(*this, "SW1") +pofo_hpc104_device::pofo_hpc104_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + pofo_hpc104_device(mconfig, POFO_HPC104, tag, owner, clock) { } //------------------------------------------------- -// hpc104_2_t - constructor +// pofo_hpc104_2_device - constructor //------------------------------------------------- -hpc104_2_t::hpc104_2_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - hpc104_t(mconfig, HPC104_2, "Atari Portfolio HPC-104 (Unit 2)", tag, owner, clock, "hpc104_2", __FILE__) { } +pofo_hpc104_2_device::pofo_hpc104_2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + pofo_hpc104_device(mconfig, POFO_HPC104_2, tag, owner, clock) +{ +} //------------------------------------------------- // device_start - device-specific startup //------------------------------------------------- -void hpc104_t::device_start() +void pofo_hpc104_device::device_start() { // allocate memory m_nvram.allocate(0x40000); @@ -151,7 +147,7 @@ void hpc104_t::device_start() // device_reset - device-specific reset //------------------------------------------------- -void hpc104_t::device_reset() +void pofo_hpc104_device::device_reset() { m_sw1 = BIT(m_io_sw1->read(), 0); } @@ -161,7 +157,7 @@ void hpc104_t::device_reset() // nrdi_r - read //------------------------------------------------- -uint8_t hpc104_t::nrdi_r(address_space &space, offs_t offset, uint8_t data, bool iom, bool bcom, bool ncc1) +uint8_t pofo_hpc104_device::nrdi_r(address_space &space, offs_t offset, uint8_t data, bool iom, bool bcom, bool ncc1) { data = m_exp->nrdi_r(space, offset, data, iom, bcom, m_ncc1_out || ncc1); @@ -198,7 +194,7 @@ uint8_t hpc104_t::nrdi_r(address_space &space, offs_t offset, uint8_t data, bool // nwri_w - write //------------------------------------------------- -void hpc104_t::nwri_w(address_space &space, offs_t offset, uint8_t data, bool iom, bool bcom, bool ncc1) +void pofo_hpc104_device::nwri_w(address_space &space, offs_t offset, uint8_t data, bool iom, bool bcom, bool ncc1) { m_exp->nwri_w(space, offset, data, iom, bcom, m_ncc1_out || ncc1); diff --git a/src/devices/bus/pofo/hpc104.h b/src/devices/bus/pofo/hpc104.h index 38337f5ed35..50350490785 100644 --- a/src/devices/bus/pofo/hpc104.h +++ b/src/devices/bus/pofo/hpc104.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_POFO_HPC104_H +#define MAME_BUS_POFO_HPC104_H -#ifndef __HPC104__ -#define __HPC104__ +#pragma once #include "exp.h" #include "bus/pofo/ccm.h" @@ -21,22 +21,23 @@ // TYPE DEFINITIONS //************************************************************************** -// ======================> hpc104_t +// ======================> pofo_hpc104_device -class hpc104_t : public device_t, +class pofo_hpc104_device : public device_t, public device_portfolio_expansion_slot_interface, public device_nvram_interface { public: // construction/destruction - hpc104_t(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - hpc104_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + pofo_hpc104_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual machine_config_constructor device_mconfig_additions() const override; virtual ioport_constructor device_input_ports() const override; protected: + pofo_hpc104_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -55,8 +56,8 @@ protected: virtual WRITE_LINE_MEMBER( iint_w ) override { m_exp->iint_w(state); } private: - required_device m_ccm; - required_device m_exp; + required_device m_ccm; + required_device m_exp; optional_shared_ptr m_nvram; required_ioport m_io_sw1; @@ -65,13 +66,13 @@ private: }; -// ======================> hpc104_2_t +// ======================> pofo_hpc104_2_device -class hpc104_2_t : public hpc104_t +class pofo_hpc104_2_device : public pofo_hpc104_device { public: // construction/destruction - hpc104_2_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + pofo_hpc104_2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual ioport_constructor device_input_ports() const override; @@ -79,9 +80,7 @@ public: // device type definition -extern const device_type HPC104; -extern const device_type HPC104_2; - - +DECLARE_DEVICE_TYPE(POFO_HPC104, pofo_hpc104_device) +DECLARE_DEVICE_TYPE(POFO_HPC104_2, pofo_hpc104_2_device) -#endif +#endif // MAME_BUS_POFO_HPC104_H diff --git a/src/devices/bus/pofo/ram.cpp b/src/devices/bus/pofo/ram.cpp index 79d2a87ad0e..6ef861a0b5d 100644 --- a/src/devices/bus/pofo/ram.cpp +++ b/src/devices/bus/pofo/ram.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type PORTFOLIO_RAM_CARD = device_creator; +DEFINE_DEVICE_TYPE(PORTFOLIO_RAM_CARD, portfolio_ram_card_device, "portfolio_ram_card", "Atari Portfolio RAM card") //************************************************************************** @@ -23,11 +23,11 @@ const device_type PORTFOLIO_RAM_CARD = device_creator; //************************************************************************** //------------------------------------------------- -// portfolio_ram_card_t - constructor +// portfolio_ram_card_device - constructor //------------------------------------------------- -portfolio_ram_card_t::portfolio_ram_card_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, PORTFOLIO_RAM_CARD, "Atari Portfolio RAM card", tag, owner, clock, "portfolio_ram_card", __FILE__), +portfolio_ram_card_device::portfolio_ram_card_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, PORTFOLIO_RAM_CARD, tag, owner, clock), device_portfolio_memory_card_slot_interface(mconfig, *this), device_nvram_interface(mconfig, *this) { @@ -38,7 +38,7 @@ portfolio_ram_card_t::portfolio_ram_card_t(const machine_config &mconfig, const // device_start - device-specific startup //------------------------------------------------- -void portfolio_ram_card_t::device_start() +void portfolio_ram_card_device::device_start() { m_nvram.allocate(0x20000); } @@ -48,7 +48,7 @@ void portfolio_ram_card_t::device_start() // nrdi_r - read //------------------------------------------------- -uint8_t portfolio_ram_card_t::nrdi_r(address_space &space, offs_t offset) +uint8_t portfolio_ram_card_device::nrdi_r(address_space &space, offs_t offset) { return m_nvram[offset]; } @@ -58,7 +58,7 @@ uint8_t portfolio_ram_card_t::nrdi_r(address_space &space, offs_t offset) // nwri_w - write //------------------------------------------------- -void portfolio_ram_card_t::nwri_w(address_space &space, offs_t offset, uint8_t data) +void portfolio_ram_card_device::nwri_w(address_space &space, offs_t offset, uint8_t data) { m_nvram[offset] = data; } diff --git a/src/devices/bus/pofo/ram.h b/src/devices/bus/pofo/ram.h index 25ee7f837f9..9d126b51a2c 100644 --- a/src/devices/bus/pofo/ram.h +++ b/src/devices/bus/pofo/ram.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_POFO_RAM_H +#define MAME_BUS_POFO_RAM_H -#ifndef __PORTFOLIO_RAM_CARD__ -#define __PORTFOLIO_RAM_CARD__ +#pragma once #include "ccm.h" #include "machine/nvram.h" @@ -20,15 +20,15 @@ // TYPE DEFINITIONS //************************************************************************** -// ======================> portfolio_ram_card_t +// ======================> portfolio_ram_card_device -class portfolio_ram_card_t : public device_t, +class portfolio_ram_card_device : public device_t, public device_portfolio_memory_card_slot_interface, public device_nvram_interface { public: // construction/destruction - portfolio_ram_card_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + portfolio_ram_card_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); protected: // device-level overrides @@ -48,8 +48,6 @@ protected: // device type definition -extern const device_type PORTFOLIO_RAM_CARD; - - +DECLARE_DEVICE_TYPE(PORTFOLIO_RAM_CARD, portfolio_ram_card_device) -#endif +#endif // MAME_BUS_POFO_RAM_H diff --git a/src/devices/bus/pofo/rom.cpp b/src/devices/bus/pofo/rom.cpp index b3862b15753..8155444783a 100644 --- a/src/devices/bus/pofo/rom.cpp +++ b/src/devices/bus/pofo/rom.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type PORTFOLIO_ROM_CARD = device_creator; +DEFINE_DEVICE_TYPE(PORTFOLIO_ROM_CARD, portfolio_rom_card_device, "portfolio_rom_card", "Atari Portfolio ROM card") //************************************************************************** @@ -23,11 +23,11 @@ const device_type PORTFOLIO_ROM_CARD = device_creator; //************************************************************************** //------------------------------------------------- -// portfolio_rom_card_t - constructor +// portfolio_rom_card_device - constructor //------------------------------------------------- -portfolio_rom_card_t::portfolio_rom_card_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, PORTFOLIO_ROM_CARD, "Atari Portfolio ROM card", tag, owner, clock, "portfolio_rom_card", __FILE__), +portfolio_rom_card_device::portfolio_rom_card_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, PORTFOLIO_ROM_CARD, tag, owner, clock), device_portfolio_memory_card_slot_interface(mconfig, *this) { } @@ -37,7 +37,7 @@ portfolio_rom_card_t::portfolio_rom_card_t(const machine_config &mconfig, const // device_start - device-specific startup //------------------------------------------------- -void portfolio_rom_card_t::device_start() +void portfolio_rom_card_device::device_start() { } @@ -46,7 +46,7 @@ void portfolio_rom_card_t::device_start() // nrdi_r - read //------------------------------------------------- -uint8_t portfolio_rom_card_t::nrdi_r(address_space &space, offs_t offset) +uint8_t portfolio_rom_card_device::nrdi_r(address_space &space, offs_t offset) { return m_rom[offset]; } diff --git a/src/devices/bus/pofo/rom.h b/src/devices/bus/pofo/rom.h index f8b7841f0cd..eab0ff1fde4 100644 --- a/src/devices/bus/pofo/rom.h +++ b/src/devices/bus/pofo/rom.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_POFO_ROM_H +#define MAME_BUS_POFO_ROM_H -#ifndef __PORTFOLIO_ROM_CARD__ -#define __PORTFOLIO_ROM_CARD__ +#pragma once #include "ccm.h" @@ -19,14 +19,14 @@ // TYPE DEFINITIONS //************************************************************************** -// ======================> portfolio_rom_card_t +// ======================> portfolio_rom_card_device -class portfolio_rom_card_t : public device_t, +class portfolio_rom_card_device : public device_t, public device_portfolio_memory_card_slot_interface { public: // construction/destruction - portfolio_rom_card_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + portfolio_rom_card_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); protected: // device-level overrides @@ -40,8 +40,6 @@ protected: // device type definition -extern const device_type PORTFOLIO_ROM_CARD; - - +DECLARE_DEVICE_TYPE(PORTFOLIO_ROM_CARD, portfolio_rom_card_device) -#endif +#endif // MAME_BUS_POFO_ROM_H diff --git a/src/devices/bus/psx/analogue.cpp b/src/devices/bus/psx/analogue.cpp index cea69c2f930..aa181ddf9dc 100644 --- a/src/devices/bus/psx/analogue.cpp +++ b/src/devices/bus/psx/analogue.cpp @@ -3,37 +3,35 @@ #include "emu.h" #include "analogue.h" -const device_type PSX_ANALOG_JOYSTICK = device_creator; -const device_type PSX_DUALSHOCK = device_creator; +DEFINE_DEVICE_TYPE(PSX_DUALSHOCK, psx_dualshock_device, "psx_dualshock_pad", "Playstation Dualshock Pad") +DEFINE_DEVICE_TYPE(PSX_ANALOG_JOYSTICK, psx_analog_joystick_device, "psx_analog_joystick", "Playstation Analog Joystick") -psx_analog_controller_device::psx_analog_controller_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_psx_controller_interface(mconfig, *this), - m_type(), - m_confmode(false), - m_analogmode(false), - m_analoglock(false), - m_temp(0), - m_cmd(0), - m_pad0(*this, "PSXPAD0"), - m_pad1(*this, "PSXPAD1"), - m_rstickx(*this, "PSXRSTICKX"), - m_rsticky(*this, "PSXRSTICKY"), - m_lstickx(*this, "PSXLSTICKX"), - m_lsticky(*this, "PSXLSTICKY") +psx_analog_controller_device::psx_analog_controller_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, model mod) : + device_t(mconfig, type, tag, owner, clock), + device_psx_controller_interface(mconfig, *this), + m_model(mod), + m_confmode(false), + m_analogmode(false), + m_analoglock(false), + m_temp(0), + m_cmd(0), + m_pad0(*this, "PSXPAD0"), + m_pad1(*this, "PSXPAD1"), + m_rstickx(*this, "PSXRSTICKX"), + m_rsticky(*this, "PSXRSTICKY"), + m_lstickx(*this, "PSXLSTICKX"), + m_lsticky(*this, "PSXLSTICKY") { } psx_dualshock_device::psx_dualshock_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - psx_analog_controller_device(mconfig, PSX_DUALSHOCK, "Playstation Dualshock Pad", tag, owner, clock, "psx_dualshock_pad", __FILE__) + psx_analog_controller_device(mconfig, PSX_DUALSHOCK, tag, owner, clock, model::DUALSHOCK) { - m_type = DUALSHOCK; } psx_analog_joystick_device::psx_analog_joystick_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - psx_analog_controller_device(mconfig, PSX_ANALOG_JOYSTICK, "Playstation Analog Joystick", tag, owner, clock, "psx_analog_joystick", __FILE__) + psx_analog_controller_device(mconfig, PSX_ANALOG_JOYSTICK, tag, owner, clock, model::JOYSTICK) { - m_type = JOYSTICK; } void psx_analog_controller_device::device_reset() @@ -52,7 +50,7 @@ uint8_t psx_analog_controller_device::pad_data(int count, bool analog) { case 2: data = m_pad0->read(); - if(!analog || (m_type == JOYSTICK)) + if (!analog || (m_model == model::JOYSTICK)) data |= 6; // l3/r3 break; case 3: @@ -169,7 +167,7 @@ bool psx_analog_controller_device::get_pad(int count, uint8_t *odata, uint8_t id switch(count) { case 0: - if(m_type == JOYSTICK) + if(m_model == model::JOYSTICK) *odata = 0x53; else *odata = 0x73; diff --git a/src/devices/bus/psx/analogue.h b/src/devices/bus/psx/analogue.h index 4a52a0cb80e..7809f12ecd0 100644 --- a/src/devices/bus/psx/analogue.h +++ b/src/devices/bus/psx/analogue.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Carl -#ifndef PSXANALOG_H_ -#define PSXANALOG_H_ +#ifndef MAME_BUS_PSX_ANALOGUE_H +#define MAME_BUS_PSX_ANALOGUE_H + +#pragma once #include "ctlrport.h" @@ -12,21 +14,22 @@ class psx_analog_controller_device : public device_t, public device_psx_controller_interface { public: - psx_analog_controller_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - virtual ioport_constructor device_input_ports() const override; DECLARE_INPUT_CHANGED_MEMBER(change_mode); protected: + enum class model { JOYSTICK, DUALSHOCK }; + + psx_analog_controller_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, model mod); + + virtual void device_start() override { } virtual void device_reset() override; - virtual void device_start() override {} - enum { - JOYSTICK, - DUALSHOCK - } m_type; + private: virtual bool get_pad(int count, uint8_t *odata, uint8_t idata) override; uint8_t pad_data(int count, bool analog); + const model m_model; + bool m_confmode; bool m_analogmode; bool m_analoglock; @@ -54,4 +57,4 @@ public: psx_analog_joystick_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; -#endif /* PSXANALOG_H_ */ +#endif // MAME_BUS_PSX_ANALOGUE_H diff --git a/src/devices/bus/psx/ctlrport.cpp b/src/devices/bus/psx/ctlrport.cpp index 5ca35dc27ec..b125617cc41 100644 --- a/src/devices/bus/psx/ctlrport.cpp +++ b/src/devices/bus/psx/ctlrport.cpp @@ -7,14 +7,16 @@ #include "analogue.h" #include "multitap.h" -const device_type PSX_CONTROLLER_PORT = device_creator; +DEFINE_DEVICE_TYPE(PSX_CONTROLLER_PORT, psx_controller_port_device, "psx_controller_port", "Playstation Controller Port") +DEFINE_DEVICE_TYPE(PSXCONTROLLERPORTS, psxcontrollerports_device, "psxcontrollerports", "Playstation Controller Bus") +DEFINE_DEVICE_TYPE(PSX_STANDARD_CONTROLLER, psx_standard_controller_device, "psx_standard_controller", "Playstation Standard Controller") psx_controller_port_device::psx_controller_port_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, PSX_CONTROLLER_PORT, "Playstation Controller Port", tag, owner, clock, "psx_controller_port", __FILE__), - device_slot_interface(mconfig, *this), - m_tx(false), - m_dev(nullptr), - m_card(*this, "card") + device_t(mconfig, PSX_CONTROLLER_PORT, tag, owner, clock), + device_slot_interface(mconfig, *this), + m_tx(false), + m_dev(nullptr), + m_card(*this, "card") { } @@ -40,10 +42,9 @@ void psx_controller_port_device::disable_card(bool state) m_card->disable(state); } -const device_type PSXCONTROLLERPORTS = device_creator; - -psxcontrollerports_device::psxcontrollerports_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, PSXCONTROLLERPORTS, "PSXCONTROLLERPORTS", tag, owner, clock, "psxcontrollerports", __FILE__), m_port0(nullptr), m_port1(nullptr), +psxcontrollerports_device::psxcontrollerports_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, PSXCONTROLLERPORTS, tag, owner, clock), + m_port0(nullptr), m_port1(nullptr), m_dsr_handler(*this), m_rxd_handler(*this) { @@ -100,8 +101,8 @@ void psxcontrollerports_device::ack() } device_psx_controller_interface::device_psx_controller_interface(const machine_config &mconfig, device_t &device) : - device_slot_card_interface(mconfig, device), m_odata(0), m_idata(0), m_bit(0), m_count(0), m_memcard(false), m_clock(false), m_sel(false), - m_ack(true), m_rx(false), m_ack_timer(nullptr), m_owner(nullptr) + device_slot_card_interface(mconfig, device), m_odata(0), m_idata(0), m_bit(0), m_count(0), m_memcard(false), m_clock(false), m_sel(false), + m_ack(true), m_rx(false), m_ack_timer(nullptr), m_owner(nullptr) { } @@ -172,13 +173,11 @@ void device_psx_controller_interface::sel_w(bool state) { m_sel = state; } -const device_type PSX_STANDARD_CONTROLLER = device_creator; - psx_standard_controller_device::psx_standard_controller_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, PSX_STANDARD_CONTROLLER, "Playstation Standard Controller", tag, owner, clock, "psx_standard_controller", __FILE__), - device_psx_controller_interface(mconfig, *this), - m_pad0(*this,"PSXPAD0"), - m_pad1(*this,"PSXPAD1") + device_t(mconfig, PSX_STANDARD_CONTROLLER, tag, owner, clock), + device_psx_controller_interface(mconfig, *this), + m_pad0(*this, "PSXPAD0"), + m_pad1(*this, "PSXPAD1") { } diff --git a/src/devices/bus/psx/ctlrport.h b/src/devices/bus/psx/ctlrport.h index 24a72de1439..04afc2e2e85 100644 --- a/src/devices/bus/psx/ctlrport.h +++ b/src/devices/bus/psx/ctlrport.h @@ -1,9 +1,10 @@ // license:BSD-3-Clause // copyright-holders:Carl +#ifndef MAME_BUS_PSX_CTLRPORT_H +#define MAME_BUS_PSX_CTLRPORT_H + #pragma once -#ifndef __PSXCPORT_H__ -#define __PSXCPORT_H__ #include "memcard.h" @@ -13,9 +14,9 @@ SLOT_INTERFACE_EXTERN(psx_controllers); -extern const device_type PSXCONTROLLERPORTS; -extern const device_type PSX_CONTROLLER_PORT; -extern const device_type PSX_STANDARD_CONTROLLER; +DECLARE_DEVICE_TYPE(PSXCONTROLLERPORTS, psxcontrollerports_device) +DECLARE_DEVICE_TYPE(PSX_CONTROLLER_PORT, psx_controller_port_device) +DECLARE_DEVICE_TYPE(PSX_STANDARD_CONTROLLER, psx_standard_controller_device) class psx_controller_port_device; @@ -23,7 +24,6 @@ class device_psx_controller_interface : public device_slot_card_interface { friend class psx_multitap_device; public: - device_psx_controller_interface(const machine_config &mconfig, device_t &device); virtual ~device_psx_controller_interface(); void clock_w(bool state) { if(!m_clock && !m_sel && state && !m_memcard) do_pad(); m_clock = state; } @@ -33,6 +33,8 @@ public: bool ack_r() { return m_ack; } protected: + device_psx_controller_interface(const machine_config &mconfig, device_t &device); + virtual void interface_pre_reset() override; virtual void interface_pre_start() override; @@ -89,10 +91,11 @@ class psxcontrollerports_device : public device_t { public: psxcontrollerports_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + void ack(); - template static devcb_base &set_dsr_handler(device_t &device, _Object object) { return downcast(device).m_dsr_handler.set_callback(object); } - template static devcb_base &set_rxd_handler(device_t &device, _Object object) { return downcast(device).m_rxd_handler.set_callback(object); } + template static devcb_base &set_dsr_handler(device_t &device, Object &&cb) { return downcast(device).m_dsr_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_rxd_handler(device_t &device, Object &&cb) { return downcast(device).m_rxd_handler.set_callback(std::forward(cb)); } DECLARE_WRITE_LINE_MEMBER(write_sck); DECLARE_WRITE_LINE_MEMBER(write_dtr); @@ -142,4 +145,5 @@ private: device_psx_controller_interface *m_dev; required_device m_card; }; -#endif + +#endif // MAME_BUS_PSX_CTLRPORT_H diff --git a/src/devices/bus/psx/memcard.cpp b/src/devices/bus/psx/memcard.cpp index d7ba400e98a..7f53c69dcfa 100644 --- a/src/devices/bus/psx/memcard.cpp +++ b/src/devices/bus/psx/memcard.cpp @@ -21,10 +21,10 @@ // // -static const int block_size = 128; -static const int card_size = block_size * 1024; +static constexpr int block_size = 128; +static constexpr int card_size = block_size * 1024; -const device_type PSXCARD = device_creator; +DEFINE_DEVICE_TYPE(PSXCARD, psxcard_device, "psxcard", "Sony PSX Memory Card") enum transfer_states { @@ -42,7 +42,7 @@ enum transfer_states }; psxcard_device::psxcard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, PSXCARD, "Sony PSX Memory Card", tag, owner, clock, "psxcard", __FILE__), + : device_t(mconfig, PSXCARD, tag, owner, clock), device_image_interface(mconfig, *this), pkt_ptr(0), pkt_sz(0), diff --git a/src/devices/bus/psx/memcard.h b/src/devices/bus/psx/memcard.h index e8abc232f5b..51ac4f044ba 100644 --- a/src/devices/bus/psx/memcard.h +++ b/src/devices/bus/psx/memcard.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Carl,psxAuthor,R. Belmont -#pragma once +#ifndef MAME_BUS_PSX_MEMCARD_H +#define MAME_BUS_PSX_MEMCARD_H -#ifndef _PSXCARD_ -#define _PSXCARD_ +#pragma once class psx_controller_port_device; @@ -31,7 +31,23 @@ public: void disable(bool state) { m_disabled = state; if(state) unload(); } + void clock_w(bool state) { if(!m_clock && !m_sel && state && !m_pad) do_card(); m_clock = state; } + void sel_w(bool state); + bool rx_r() { return m_rx; } + bool ack_r() { return m_ack; } + +protected: + virtual void device_start() override; + virtual void device_reset() override; + private: + void read_card(const unsigned short addr, unsigned char *buf); + void write_card(const unsigned short addr, unsigned char *buf); + unsigned char checksum_data(const unsigned char *buf, const unsigned int sz); + void do_card(); + bool transfer(uint8_t to, uint8_t *from); + void ack_timer(void *ptr, int param); + unsigned char pkt[0x8b], pkt_ptr, pkt_sz, cmd; unsigned short addr; int state; @@ -50,25 +66,9 @@ private: emu_timer *m_ack_timer; psx_controller_port_device *m_owner; - - void read_card(const unsigned short addr, unsigned char *buf); - void write_card(const unsigned short addr, unsigned char *buf); - unsigned char checksum_data(const unsigned char *buf, const unsigned int sz); - void do_card(); - bool transfer(uint8_t to, uint8_t *from); - void ack_timer(void *ptr, int param); - -public: - virtual void device_start() override; - virtual void device_reset() override; - - void clock_w(bool state) { if(!m_clock && !m_sel && state && !m_pad) do_card(); m_clock = state; } - void sel_w(bool state); - bool rx_r() { return m_rx; } - bool ack_r() { return m_ack; } }; // device type definition -extern const device_type PSXCARD; +DECLARE_DEVICE_TYPE(PSXCARD, psxcard_device) -#endif +#endif // MAME_BUS_PSX_MEMCARD_H diff --git a/src/devices/bus/psx/multitap.cpp b/src/devices/bus/psx/multitap.cpp index 2c70a6dc9e0..fbe47e8cf4f 100644 --- a/src/devices/bus/psx/multitap.cpp +++ b/src/devices/bus/psx/multitap.cpp @@ -5,10 +5,10 @@ #include "emu.h" #include "multitap.h" -const device_type PSX_MULTITAP = device_creator; +DEFINE_DEVICE_TYPE(PSX_MULTITAP, psx_multitap_device, "psx_multitap", "Playstation Multitap") psx_multitap_device::psx_multitap_device(const machine_config& mconfig, const char* tag, device_t* owner, uint32_t clock) : - device_t(mconfig, PSX_MULTITAP, "Playstation Multitap", tag, owner, clock, "psx_multitap", __FILE__), + device_t(mconfig, PSX_MULTITAP, tag, owner, clock), device_psx_controller_interface(mconfig, *this), m_activeport(0), m_singlemode(false), diff --git a/src/devices/bus/psx/multitap.h b/src/devices/bus/psx/multitap.h index c826edef8c3..9c03d803181 100644 --- a/src/devices/bus/psx/multitap.h +++ b/src/devices/bus/psx/multitap.h @@ -1,7 +1,7 @@ // license:BSD-3-Clause // copyright-holders:Carl -#ifndef PSXMULTITAP_H_ -#define PSXMULTITAP_H_ +#ifndef MAME_BUS_PSX_MULTITAP_H +#define MAME_BUS_PSX_MULTITAP_H #include "ctlrport.h" @@ -18,7 +18,6 @@ protected: virtual void device_start() override; virtual void device_stop() override { device_psx_controller_interface::m_owner->disable_card(false); } virtual void device_reset() override { device_psx_controller_interface::m_owner->disable_card(true); } - virtual void device_config_complete() override { m_shortname = "psx_multitap"; } virtual void interface_pre_reset() override; private: @@ -40,4 +39,4 @@ private: extern const device_type PSX_MULTITAP; -#endif /* PSXMULTITAP_H_ */ +#endif // MAME_BUS_PSX_MULTITAP_H diff --git a/src/devices/bus/ql/cst_q_plus4.cpp b/src/devices/bus/ql/cst_q_plus4.cpp index 30f3b15c8ac..b3b892e6c05 100644 --- a/src/devices/bus/ql/cst_q_plus4.cpp +++ b/src/devices/bus/ql/cst_q_plus4.cpp @@ -23,7 +23,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type CST_Q_PLUS4 = device_creator; +DEFINE_DEVICE_TYPE(CST_Q_PLUS4, cst_q_plus4_device, "ql_qplus4", "CST Q+4") //------------------------------------------------- @@ -40,7 +40,7 @@ ROM_END // rom_region - device-specific ROM region //------------------------------------------------- -const tiny_rom_entry *cst_q_plus4_t::device_rom_region() const +const tiny_rom_entry *cst_q_plus4_device::device_rom_region() const { return ROM_NAME( cst_q_plus4 ); } @@ -54,16 +54,16 @@ static MACHINE_CONFIG_FRAGMENT( cst_q_plus4 ) MCFG_DEVICE_ADD(MC6821_TAG, PIA6821, 0) MCFG_QL_EXPANSION_SLOT_ADD("exp1", ql_expansion_cards, nullptr) - MCFG_QL_EXPANSION_SLOT_EXTINTL_CALLBACK(WRITELINE(cst_q_plus4_t, exp1_extintl_w)) + MCFG_QL_EXPANSION_SLOT_EXTINTL_CALLBACK(WRITELINE(cst_q_plus4_device, exp1_extintl_w)) MCFG_QL_EXPANSION_SLOT_ADD("exp2", ql_expansion_cards, nullptr) - MCFG_QL_EXPANSION_SLOT_EXTINTL_CALLBACK(WRITELINE(cst_q_plus4_t, exp2_extintl_w)) + MCFG_QL_EXPANSION_SLOT_EXTINTL_CALLBACK(WRITELINE(cst_q_plus4_device, exp2_extintl_w)) MCFG_QL_EXPANSION_SLOT_ADD("exp3", ql_expansion_cards, nullptr) - MCFG_QL_EXPANSION_SLOT_EXTINTL_CALLBACK(WRITELINE(cst_q_plus4_t, exp3_extintl_w)) + MCFG_QL_EXPANSION_SLOT_EXTINTL_CALLBACK(WRITELINE(cst_q_plus4_device, exp3_extintl_w)) MCFG_QL_EXPANSION_SLOT_ADD("exp4", ql_expansion_cards, nullptr) - MCFG_QL_EXPANSION_SLOT_EXTINTL_CALLBACK(WRITELINE(cst_q_plus4_t, exp4_extintl_w)) + MCFG_QL_EXPANSION_SLOT_EXTINTL_CALLBACK(WRITELINE(cst_q_plus4_device, exp4_extintl_w)) MACHINE_CONFIG_END @@ -72,7 +72,7 @@ MACHINE_CONFIG_END // machine configurations //------------------------------------------------- -machine_config_constructor cst_q_plus4_t::device_mconfig_additions() const +machine_config_constructor cst_q_plus4_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( cst_q_plus4 ); } @@ -84,11 +84,11 @@ machine_config_constructor cst_q_plus4_t::device_mconfig_additions() const //************************************************************************** //------------------------------------------------- -// cst_q_plus4_t - constructor +// cst_q_plus4_device - constructor //------------------------------------------------- -cst_q_plus4_t::cst_q_plus4_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, CST_Q_PLUS4, "CST Q+4", tag, owner, clock, "ql_qplus4", __FILE__), +cst_q_plus4_device::cst_q_plus4_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, CST_Q_PLUS4, tag, owner, clock), device_ql_expansion_card_interface(mconfig, *this), m_exp1(*this, "exp1"), m_exp2(*this, "exp2"), @@ -107,7 +107,7 @@ cst_q_plus4_t::cst_q_plus4_t(const machine_config &mconfig, const char *tag, dev // device_start - device-specific startup //------------------------------------------------- -void cst_q_plus4_t::device_start() +void cst_q_plus4_device::device_start() { } @@ -116,7 +116,7 @@ void cst_q_plus4_t::device_start() // read - //------------------------------------------------- -uint8_t cst_q_plus4_t::read(address_space &space, offs_t offset, uint8_t data) +uint8_t cst_q_plus4_device::read(address_space &space, offs_t offset, uint8_t data) { if (offset >= 0xc000 && offset < 0xc200) { @@ -136,7 +136,7 @@ uint8_t cst_q_plus4_t::read(address_space &space, offs_t offset, uint8_t data) // write - //------------------------------------------------- -void cst_q_plus4_t::write(address_space &space, offs_t offset, uint8_t data) +void cst_q_plus4_device::write(address_space &space, offs_t offset, uint8_t data) { m_exp1->write(space, offset, data); m_exp2->write(space, offset, data); diff --git a/src/devices/bus/ql/cst_q_plus4.h b/src/devices/bus/ql/cst_q_plus4.h index 8ac923d3856..a9e5261bce7 100644 --- a/src/devices/bus/ql/cst_q_plus4.h +++ b/src/devices/bus/ql/cst_q_plus4.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_QL_CST_Q_PLUS4_H +#define MAME_BUS_QL_CST_Q_PLUS4_H -#ifndef __CST_Q_PLUS4__ -#define __CST_Q_PLUS4__ +#pragma once #include "exp.h" #include "machine/6821pia.h" @@ -20,14 +20,13 @@ // TYPE DEFINITIONS //************************************************************************** -// ======================> cst_q_plus4_t +// ======================> cst_q_plus4_device -class cst_q_plus4_t : public device_t, - public device_ql_expansion_card_interface +class cst_q_plus4_device : public device_t, public device_ql_expansion_card_interface { public: // construction/destruction - cst_q_plus4_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + cst_q_plus4_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual const tiny_rom_entry *device_rom_region() const override; @@ -49,10 +48,10 @@ protected: private: void update_extintl() { m_slot->extintl_w(m_exp1_extinl || m_exp2_extinl || m_exp3_extinl || m_exp4_extinl); } - required_device m_exp1; - required_device m_exp2; - required_device m_exp3; - required_device m_exp4; + required_device m_exp1; + required_device m_exp2; + required_device m_exp3; + required_device m_exp4; required_memory_region m_rom; int m_exp1_extinl; @@ -62,10 +61,7 @@ private: }; - // device type definition -extern const device_type CST_Q_PLUS4; - - +DECLARE_DEVICE_TYPE(CST_Q_PLUS4, cst_q_plus4_device) -#endif +#endif // MAME_BUS_QL_CST_Q_PLUS4_H diff --git a/src/devices/bus/ql/cst_qdisc.cpp b/src/devices/bus/ql/cst_qdisc.cpp index db18cd6241b..8cca3bdb838 100644 --- a/src/devices/bus/ql/cst_qdisc.cpp +++ b/src/devices/bus/ql/cst_qdisc.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type CST_QL_DISC_INTERFACE = device_creator; +DEFINE_DEVICE_TYPE(CST_QL_DISC_INTERFACE, cst_ql_disc_interface_device, "ql_qldisc", "CST QL Disc Interface") //------------------------------------------------- @@ -36,7 +36,7 @@ ROM_END // rom_region - device-specific ROM region //------------------------------------------------- -const tiny_rom_entry *cst_ql_disc_interface_t::device_rom_region() const +const tiny_rom_entry *cst_ql_disc_interface_device::device_rom_region() const { return ROM_NAME( cst_ql_disc_interface ); } @@ -48,11 +48,11 @@ const tiny_rom_entry *cst_ql_disc_interface_t::device_rom_region() const //************************************************************************** //------------------------------------------------- -// cst_ql_disc_interface_t - constructor +// cst_ql_disc_interface_device - constructor //------------------------------------------------- -cst_ql_disc_interface_t::cst_ql_disc_interface_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, CST_QL_DISC_INTERFACE, "CST QL Disc Interface", tag, owner, clock, "ql_qdisc", __FILE__), +cst_ql_disc_interface_device::cst_ql_disc_interface_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, CST_QL_DISC_INTERFACE, tag, owner, clock), device_ql_expansion_card_interface(mconfig, *this) { } @@ -62,7 +62,7 @@ cst_ql_disc_interface_t::cst_ql_disc_interface_t(const machine_config &mconfig, // device_start - device-specific startup //------------------------------------------------- -void cst_ql_disc_interface_t::device_start() +void cst_ql_disc_interface_device::device_start() { } @@ -71,7 +71,7 @@ void cst_ql_disc_interface_t::device_start() // read - //------------------------------------------------- -uint8_t cst_ql_disc_interface_t::read(address_space &space, offs_t offset, uint8_t data) +uint8_t cst_ql_disc_interface_device::read(address_space &space, offs_t offset, uint8_t data) { return data; } @@ -81,6 +81,6 @@ uint8_t cst_ql_disc_interface_t::read(address_space &space, offs_t offset, uint8 // write - //------------------------------------------------- -void cst_ql_disc_interface_t::write(address_space &space, offs_t offset, uint8_t data) +void cst_ql_disc_interface_device::write(address_space &space, offs_t offset, uint8_t data) { } diff --git a/src/devices/bus/ql/cst_qdisc.h b/src/devices/bus/ql/cst_qdisc.h index fc156e4a6b9..e4c4dc6343d 100644 --- a/src/devices/bus/ql/cst_qdisc.h +++ b/src/devices/bus/ql/cst_qdisc.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_QL_CST_QDISC_H +#define MAME_BUS_QL_CST_QDISC_H -#ifndef __CST_QL_DISC_INTERFACE__ -#define __CST_QL_DISC_INTERFACE__ +#pragma once #include "exp.h" @@ -19,14 +19,14 @@ // TYPE DEFINITIONS //************************************************************************** -// ======================> cst_ql_disc_interface_t +// ======================> cst_ql_disc_interface_device -class cst_ql_disc_interface_t : public device_t, +class cst_ql_disc_interface_device : public device_t, public device_ql_expansion_card_interface { public: // construction/destruction - cst_ql_disc_interface_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + cst_ql_disc_interface_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual const tiny_rom_entry *device_rom_region() const override; @@ -44,7 +44,6 @@ protected: // device type definition extern const device_type CST_QL_DISC_INTERFACE; +DECLARE_DEVICE_TYPE(CST_QL_DISC_INTERFACE, cst_ql_disc_interface_device) - - -#endif +#endif // MAME_BUS_QL_CST_QDISC_H diff --git a/src/devices/bus/ql/cumana_fdi.cpp b/src/devices/bus/ql/cumana_fdi.cpp index f43844223da..21f07fa75ee 100644 --- a/src/devices/bus/ql/cumana_fdi.cpp +++ b/src/devices/bus/ql/cumana_fdi.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type CUMANA_FLOPPY_DISK_INTERFACE = device_creator; +DEFINE_DEVICE_TYPE(CUMANA_FLOPPY_DISK_INTERFACE, cumana_floppy_disk_interface_device, "ql_cumanafdi", "Cumana Floppy Disk Interface") //------------------------------------------------- @@ -36,7 +36,7 @@ ROM_END // rom_region - device-specific ROM region //------------------------------------------------- -const tiny_rom_entry *cumana_floppy_disk_interface_t::device_rom_region() const +const tiny_rom_entry *cumana_floppy_disk_interface_device::device_rom_region() const { return ROM_NAME( cumana_floppy_disk_interface ); } @@ -48,11 +48,11 @@ const tiny_rom_entry *cumana_floppy_disk_interface_t::device_rom_region() const //************************************************************************** //------------------------------------------------- -// cumana_floppy_disk_interface_t - constructor +// cumana_floppy_disk_interface_device - constructor //------------------------------------------------- -cumana_floppy_disk_interface_t::cumana_floppy_disk_interface_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, CUMANA_FLOPPY_DISK_INTERFACE, "Cumana Floppy Disk Interface", tag, owner, clock, "ql_cumanafdi", __FILE__), +cumana_floppy_disk_interface_device::cumana_floppy_disk_interface_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, CUMANA_FLOPPY_DISK_INTERFACE, tag, owner, clock), device_ql_expansion_card_interface(mconfig, *this) { } @@ -62,7 +62,7 @@ cumana_floppy_disk_interface_t::cumana_floppy_disk_interface_t(const machine_con // device_start - device-specific startup //------------------------------------------------- -void cumana_floppy_disk_interface_t::device_start() +void cumana_floppy_disk_interface_device::device_start() { } @@ -71,7 +71,7 @@ void cumana_floppy_disk_interface_t::device_start() // read - //------------------------------------------------- -uint8_t cumana_floppy_disk_interface_t::read(address_space &space, offs_t offset, uint8_t data) +uint8_t cumana_floppy_disk_interface_device::read(address_space &space, offs_t offset, uint8_t data) { return data; } @@ -81,6 +81,6 @@ uint8_t cumana_floppy_disk_interface_t::read(address_space &space, offs_t offset // write - //------------------------------------------------- -void cumana_floppy_disk_interface_t::write(address_space &space, offs_t offset, uint8_t data) +void cumana_floppy_disk_interface_device::write(address_space &space, offs_t offset, uint8_t data) { } diff --git a/src/devices/bus/ql/cumana_fdi.h b/src/devices/bus/ql/cumana_fdi.h index 2531735cb2c..a0da6952cab 100644 --- a/src/devices/bus/ql/cumana_fdi.h +++ b/src/devices/bus/ql/cumana_fdi.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_QL_CUMANA_FDI_H +#define MAME_BUS_QL_CUMANA_FDI_H -#ifndef __CUMANA_FLOPPY_DISK_INTERFACE__ -#define __CUMANA_FLOPPY_DISK_INTERFACE__ +#pragma once #include "exp.h" @@ -21,12 +21,11 @@ // ======================> cumana_floppy_disk_interface_t -class cumana_floppy_disk_interface_t : public device_t, - public device_ql_expansion_card_interface +class cumana_floppy_disk_interface_device : public device_t, public device_ql_expansion_card_interface { public: // construction/destruction - cumana_floppy_disk_interface_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + cumana_floppy_disk_interface_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual const tiny_rom_entry *device_rom_region() const override; @@ -41,10 +40,7 @@ protected: }; - // device type definition -extern const device_type CUMANA_FLOPPY_DISK_INTERFACE; - - +DECLARE_DEVICE_TYPE(CUMANA_FLOPPY_DISK_INTERFACE, cumana_floppy_disk_interface_device) -#endif +#endif // MAME_BUS_QL_CUMANA_FDI_H diff --git a/src/devices/bus/ql/exp.cpp b/src/devices/bus/ql/exp.cpp index 2794b252b44..89c73d4a08a 100644 --- a/src/devices/bus/ql/exp.cpp +++ b/src/devices/bus/ql/exp.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type QL_EXPANSION_SLOT = device_creator; +DEFINE_DEVICE_TYPE(QL_EXPANSION_SLOT, ql_expansion_slot_device, "ql_expansion_slot", "QL expansion port") @@ -31,7 +31,7 @@ device_ql_expansion_card_interface::device_ql_expansion_card_interface(const mac device_slot_card_interface(mconfig, device), m_romoeh(0) { - m_slot = dynamic_cast(device.owner()); + m_slot = dynamic_cast(device.owner()); } @@ -41,11 +41,11 @@ device_ql_expansion_card_interface::device_ql_expansion_card_interface(const mac //************************************************************************** //------------------------------------------------- -// ql_expansion_slot_t - constructor +// ql_expansion_slot_device - constructor //------------------------------------------------- -ql_expansion_slot_t::ql_expansion_slot_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, QL_EXPANSION_SLOT, "QL expansion port", tag, owner, clock, "ql_expansion_slot", __FILE__), +ql_expansion_slot_device::ql_expansion_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, QL_EXPANSION_SLOT, tag, owner, clock), device_slot_interface(mconfig, *this), m_write_ipl0l(*this), m_write_ipl1l(*this), @@ -59,7 +59,7 @@ ql_expansion_slot_t::ql_expansion_slot_t(const machine_config &mconfig, const ch // device_start - device-specific startup //------------------------------------------------- -void ql_expansion_slot_t::device_start() +void ql_expansion_slot_device::device_start() { m_card = dynamic_cast(get_card_device()); diff --git a/src/devices/bus/ql/exp.h b/src/devices/bus/ql/exp.h index 76b628df406..43c6c6e7edc 100644 --- a/src/devices/bus/ql/exp.h +++ b/src/devices/bus/ql/exp.h @@ -42,11 +42,10 @@ **********************************************************************/ -#pragma once - -#ifndef __QL_EXPANSION_SLOT__ -#define __QL_EXPANSION_SLOT__ +#ifndef MAME_BUS_QL_EXP_H +#define MAME_BUS_QL_EXP_H +#pragma once @@ -60,16 +59,16 @@ #define MCFG_QL_EXPANSION_SLOT_IPL0L_CALLBACK(_write) \ - devcb = &ql_expansion_slot_t::set_ipl0l_wr_callback(*device, DEVCB_##_write); + devcb = &ql_expansion_slot_device::set_ipl0l_wr_callback(*device, DEVCB_##_write); #define MCFG_QL_EXPANSION_SLOT_IPL1L_CALLBACK(_write) \ - devcb = &ql_expansion_slot_t::set_ipl1l_wr_callback(*device, DEVCB_##_write); + devcb = &ql_expansion_slot_device::set_ipl1l_wr_callback(*device, DEVCB_##_write); #define MCFG_QL_EXPANSION_SLOT_BERRL_CALLBACK(_write) \ - devcb = &ql_expansion_slot_t::set_berrl_wr_callback(*device, DEVCB_##_write); + devcb = &ql_expansion_slot_device::set_berrl_wr_callback(*device, DEVCB_##_write); #define MCFG_QL_EXPANSION_SLOT_EXTINTL_CALLBACK(_write) \ - devcb = &ql_expansion_slot_t::set_extintl_wr_callback(*device, DEVCB_##_write); + devcb = &ql_expansion_slot_device::set_extintl_wr_callback(*device, DEVCB_##_write); @@ -79,11 +78,11 @@ // ======================> device_ql_expansion_card_interface -class ql_expansion_slot_t; +class ql_expansion_slot_device; class device_ql_expansion_card_interface : public device_slot_card_interface { - friend class ql_expansion_slot_t; + friend class ql_expansion_slot_device; public: // construction/destruction @@ -94,25 +93,24 @@ public: virtual void write(address_space &space, offs_t offset, uint8_t data) { } protected: - ql_expansion_slot_t *m_slot; + ql_expansion_slot_device *m_slot; int m_romoeh; }; -// ======================> ql_expansion_slot_t +// ======================> ql_expansion_slot_device -class ql_expansion_slot_t : public device_t, - public device_slot_interface +class ql_expansion_slot_device : public device_t, public device_slot_interface { public: // construction/destruction - ql_expansion_slot_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + ql_expansion_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_ipl0l_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_ipl0l.set_callback(object); } - template static devcb_base &set_ipl1l_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_ipl1l.set_callback(object); } - template static devcb_base &set_berrl_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_berrl.set_callback(object); } - template static devcb_base &set_extintl_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_extintl.set_callback(object); } + template static devcb_base &set_ipl0l_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_ipl0l.set_callback(std::forward(cb)); } + template static devcb_base &set_ipl1l_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_ipl1l.set_callback(std::forward(cb)); } + template static devcb_base &set_berrl_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_berrl.set_callback(std::forward(cb)); } + template static devcb_base &set_extintl_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_extintl.set_callback(std::forward(cb)); } // computer interface uint8_t read(address_space &space, offs_t offset, uint8_t data) { if (m_card) data = m_card->read(space, offset, data); return data; } @@ -140,11 +138,10 @@ protected: // device type definition -extern const device_type QL_EXPANSION_SLOT; +DECLARE_DEVICE_TYPE(QL_EXPANSION_SLOT, ql_expansion_slot_device) SLOT_INTERFACE_EXTERN( ql_expansion_cards ); - -#endif +#endif // MAME_BUS_QL_EXP_H diff --git a/src/devices/bus/ql/kempston_di.cpp b/src/devices/bus/ql/kempston_di.cpp index 4430c07b3a2..171c5788f06 100644 --- a/src/devices/bus/ql/kempston_di.cpp +++ b/src/devices/bus/ql/kempston_di.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type KEMPSTON_DISK_INTERFACE = device_creator; +DEFINE_DEVICE_TYPE(KEMPSTON_DISK_INTERFACE, kempston_disk_interface_device, "ql_kdi", "Kempston Disk Interface") //------------------------------------------------- @@ -34,7 +34,7 @@ ROM_END // rom_region - device-specific ROM region //------------------------------------------------- -const tiny_rom_entry *kempston_disk_interface_t::device_rom_region() const +const tiny_rom_entry *kempston_disk_interface_device::device_rom_region() const { return ROM_NAME( kempston_disk_system ); } @@ -46,11 +46,11 @@ const tiny_rom_entry *kempston_disk_interface_t::device_rom_region() const //************************************************************************** //------------------------------------------------- -// kempston_disk_interface_t - constructor +// kempston_disk_interface_device - constructor //------------------------------------------------- -kempston_disk_interface_t::kempston_disk_interface_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, KEMPSTON_DISK_INTERFACE, "Kempston Disk Interface", tag, owner, clock, "ql_kdi", __FILE__), +kempston_disk_interface_device::kempston_disk_interface_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, KEMPSTON_DISK_INTERFACE, tag, owner, clock), device_ql_expansion_card_interface(mconfig, *this) { } @@ -60,7 +60,7 @@ kempston_disk_interface_t::kempston_disk_interface_t(const machine_config &mconf // device_start - device-specific startup //------------------------------------------------- -void kempston_disk_interface_t::device_start() +void kempston_disk_interface_device::device_start() { } @@ -69,7 +69,7 @@ void kempston_disk_interface_t::device_start() // read - //------------------------------------------------- -uint8_t kempston_disk_interface_t::read(address_space &space, offs_t offset, uint8_t data) +uint8_t kempston_disk_interface_device::read(address_space &space, offs_t offset, uint8_t data) { return data; } @@ -79,6 +79,6 @@ uint8_t kempston_disk_interface_t::read(address_space &space, offs_t offset, uin // write - //------------------------------------------------- -void kempston_disk_interface_t::write(address_space &space, offs_t offset, uint8_t data) +void kempston_disk_interface_device::write(address_space &space, offs_t offset, uint8_t data) { } diff --git a/src/devices/bus/ql/kempston_di.h b/src/devices/bus/ql/kempston_di.h index 8a16bfdee0a..e37c3d7f6b7 100644 --- a/src/devices/bus/ql/kempston_di.h +++ b/src/devices/bus/ql/kempston_di.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_QQL_KEMPSTON_DI_H +#define MAME_BUS_QQL_KEMPSTON_DI_H -#ifndef __KEMPSTON_DISK_INTERFACE__ -#define __KEMPSTON_DISK_INTERFACE__ +#pragma once #include "exp.h" @@ -19,14 +19,13 @@ // TYPE DEFINITIONS //************************************************************************** -// ======================> kempston_disk_interface_t +// ======================> kempston_disk_interface_device -class kempston_disk_interface_t : public device_t, - public device_ql_expansion_card_interface +class kempston_disk_interface_device : public device_t, public device_ql_expansion_card_interface { public: // construction/destruction - kempston_disk_interface_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + kempston_disk_interface_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual const tiny_rom_entry *device_rom_region() const override; @@ -41,10 +40,8 @@ protected: }; - // device type definition -extern const device_type KEMPSTON_DISK_INTERFACE; - +DECLARE_DEVICE_TYPE(KEMPSTON_DISK_INTERFACE, kempston_disk_interface_device) -#endif +#endif // MAME_BUS_QQL_KEMPSTON_DI_H diff --git a/src/devices/bus/ql/miracle_gold_card.cpp b/src/devices/bus/ql/miracle_gold_card.cpp index 167955ac4cf..626824a1eb0 100644 --- a/src/devices/bus/ql/miracle_gold_card.cpp +++ b/src/devices/bus/ql/miracle_gold_card.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type MIRACLE_GOLD_CARD = device_creator; +DEFINE_DEVICE_TYPE(MIRACLE_GOLD_CARD, miracle_gold_card_device, "ql_gold", "Miracle Gold Card") //------------------------------------------------- @@ -36,7 +36,7 @@ ROM_END // rom_region - device-specific ROM region //------------------------------------------------- -const tiny_rom_entry *miracle_gold_card_t::device_rom_region() const +const tiny_rom_entry *miracle_gold_card_device::device_rom_region() const { return ROM_NAME( miracle_gold_card ); } @@ -48,11 +48,11 @@ const tiny_rom_entry *miracle_gold_card_t::device_rom_region() const //************************************************************************** //------------------------------------------------- -// miracle_gold_card_t - constructor +// miracle_gold_card_device - constructor //------------------------------------------------- -miracle_gold_card_t::miracle_gold_card_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, MIRACLE_GOLD_CARD, "Miracle Gold Card", tag, owner, clock, "ql_gold", __FILE__), +miracle_gold_card_device::miracle_gold_card_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, MIRACLE_GOLD_CARD, tag, owner, clock), device_ql_expansion_card_interface(mconfig, *this) { } @@ -62,7 +62,7 @@ miracle_gold_card_t::miracle_gold_card_t(const machine_config &mconfig, const ch // device_start - device-specific startup //------------------------------------------------- -void miracle_gold_card_t::device_start() +void miracle_gold_card_device::device_start() { } @@ -71,7 +71,7 @@ void miracle_gold_card_t::device_start() // read - //------------------------------------------------- -uint8_t miracle_gold_card_t::read(address_space &space, offs_t offset, uint8_t data) +uint8_t miracle_gold_card_device::read(address_space &space, offs_t offset, uint8_t data) { return data; } @@ -81,6 +81,6 @@ uint8_t miracle_gold_card_t::read(address_space &space, offs_t offset, uint8_t d // write - //------------------------------------------------- -void miracle_gold_card_t::write(address_space &space, offs_t offset, uint8_t data) +void miracle_gold_card_device::write(address_space &space, offs_t offset, uint8_t data) { } diff --git a/src/devices/bus/ql/miracle_gold_card.h b/src/devices/bus/ql/miracle_gold_card.h index 0d8404ca07b..feea55de78c 100644 --- a/src/devices/bus/ql/miracle_gold_card.h +++ b/src/devices/bus/ql/miracle_gold_card.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_QL_MIRACLE_GOLD_CARD_H +#define MAME_BUS_QL_MIRACLE_GOLD_CARD_H -#ifndef __MIRACLE_GOLD_CARD__ -#define __MIRACLE_GOLD_CARD__ +#pragma once #include "exp.h" @@ -19,14 +19,13 @@ // TYPE DEFINITIONS //************************************************************************** -// ======================> miracle_gold_card_t +// ======================> miracle_gold_card_device -class miracle_gold_card_t : public device_t, - public device_ql_expansion_card_interface +class miracle_gold_card_device : public device_t, public device_ql_expansion_card_interface { public: // construction/destruction - miracle_gold_card_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + miracle_gold_card_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual const tiny_rom_entry *device_rom_region() const override; @@ -43,8 +42,6 @@ protected: // device type definition -extern const device_type MIRACLE_GOLD_CARD; - - +DECLARE_DEVICE_TYPE(MIRACLE_GOLD_CARD, miracle_gold_card_device) -#endif +#endif // MAME_BUS_QL_MIRACLE_GOLD_CARD_H diff --git a/src/devices/bus/ql/miracle_hd.cpp b/src/devices/bus/ql/miracle_hd.cpp index 040c3c691cc..ab6381adc78 100644 --- a/src/devices/bus/ql/miracle_hd.cpp +++ b/src/devices/bus/ql/miracle_hd.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type MIRACLE_HARD_DISK = device_creator; +DEFINE_DEVICE_TYPE(MIRACLE_HARD_DISK, miracle_hard_disk_device, "ql_mhd", "Miracle Hard Disk") //------------------------------------------------- @@ -34,7 +34,7 @@ ROM_END // rom_region - device-specific ROM region //------------------------------------------------- -const tiny_rom_entry *miracle_hard_disk_t::device_rom_region() const +const tiny_rom_entry *miracle_hard_disk_device::device_rom_region() const { return ROM_NAME( miracle_hard_disk ); } @@ -46,11 +46,11 @@ const tiny_rom_entry *miracle_hard_disk_t::device_rom_region() const //************************************************************************** //------------------------------------------------- -// miracle_hard_disk_t - constructor +// miracle_hard_disk_device - constructor //------------------------------------------------- -miracle_hard_disk_t::miracle_hard_disk_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, MIRACLE_HARD_DISK, "Miracle Hard Disk", tag, owner, clock, "ql_mhd", __FILE__), +miracle_hard_disk_device::miracle_hard_disk_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, MIRACLE_HARD_DISK, tag, owner, clock), device_ql_rom_cartridge_card_interface(mconfig, *this) { } @@ -60,7 +60,7 @@ miracle_hard_disk_t::miracle_hard_disk_t(const machine_config &mconfig, const ch // device_start - device-specific startup //------------------------------------------------- -void miracle_hard_disk_t::device_start() +void miracle_hard_disk_device::device_start() { } @@ -69,7 +69,7 @@ void miracle_hard_disk_t::device_start() // read - //------------------------------------------------- -uint8_t miracle_hard_disk_t::read(address_space &space, offs_t offset, uint8_t data) +uint8_t miracle_hard_disk_device::read(address_space &space, offs_t offset, uint8_t data) { return data; } @@ -79,6 +79,6 @@ uint8_t miracle_hard_disk_t::read(address_space &space, offs_t offset, uint8_t d // write - //------------------------------------------------- -void miracle_hard_disk_t::write(address_space &space, offs_t offset, uint8_t data) +void miracle_hard_disk_device::write(address_space &space, offs_t offset, uint8_t data) { } diff --git a/src/devices/bus/ql/miracle_hd.h b/src/devices/bus/ql/miracle_hd.h index 10bbe9051a4..0bcd260bb87 100644 --- a/src/devices/bus/ql/miracle_hd.h +++ b/src/devices/bus/ql/miracle_hd.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_QL_MIRACLE_HD +#define MAME_BUS_QL_MIRACLE_HD -#ifndef __MIRACLE_HARD_DISK__ -#define __MIRACLE_HARD_DISK__ +#pragma once #include "rom.h" @@ -19,14 +19,14 @@ // TYPE DEFINITIONS //************************************************************************** -// ======================> miracle_hard_disk_t +// ======================> miracle_hard_disk_device -class miracle_hard_disk_t : public device_t, +class miracle_hard_disk_device : public device_t, public device_ql_rom_cartridge_card_interface { public: // construction/destruction - miracle_hard_disk_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + miracle_hard_disk_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual const tiny_rom_entry *device_rom_region() const override; @@ -41,10 +41,7 @@ protected: }; - // device type definition -extern const device_type MIRACLE_HARD_DISK; - - +DECLARE_DEVICE_TYPE(MIRACLE_HARD_DISK, miracle_hard_disk_device) -#endif +#endif // MAME_BUS_QL_MIRACLE_HD diff --git a/src/devices/bus/ql/mp_fdi.cpp b/src/devices/bus/ql/mp_fdi.cpp index 2aac9dd094c..dc35760c5f3 100644 --- a/src/devices/bus/ql/mp_fdi.cpp +++ b/src/devices/bus/ql/mp_fdi.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type MICRO_PERIPHERALS_FLOPPY_DISK_INTERFACE = device_creator; +DEFINE_DEVICE_TYPE(MICRO_PERIPHERALS_FLOPPY_DISK_INTERFACE, micro_peripherals_floppy_disk_interface_device, "ql_mpfdi", "Micro Peripherals Floppy Disk Interface") //------------------------------------------------- @@ -34,7 +34,7 @@ ROM_END // rom_region - device-specific ROM region //------------------------------------------------- -const tiny_rom_entry *micro_peripherals_floppy_disk_interface_t::device_rom_region() const +const tiny_rom_entry *micro_peripherals_floppy_disk_interface_device::device_rom_region() const { return ROM_NAME( micro_peripherals_floppy_disk_interface ); } @@ -46,11 +46,11 @@ const tiny_rom_entry *micro_peripherals_floppy_disk_interface_t::device_rom_regi //************************************************************************** //------------------------------------------------- -// micro_peripherals_floppy_disk_interface_t - constructor +// micro_peripherals_floppy_disk_interface_device - constructor //------------------------------------------------- -micro_peripherals_floppy_disk_interface_t::micro_peripherals_floppy_disk_interface_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, MICRO_PERIPHERALS_FLOPPY_DISK_INTERFACE, "Micro Peripherals Floppy Disk Interface", tag, owner, clock, "ql_mpfdi", __FILE__), +micro_peripherals_floppy_disk_interface_device::micro_peripherals_floppy_disk_interface_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, MICRO_PERIPHERALS_FLOPPY_DISK_INTERFACE, tag, owner, clock), device_ql_expansion_card_interface(mconfig, *this) { } @@ -60,7 +60,7 @@ micro_peripherals_floppy_disk_interface_t::micro_peripherals_floppy_disk_interfa // device_start - device-specific startup //------------------------------------------------- -void micro_peripherals_floppy_disk_interface_t::device_start() +void micro_peripherals_floppy_disk_interface_device::device_start() { } @@ -69,7 +69,7 @@ void micro_peripherals_floppy_disk_interface_t::device_start() // read - //------------------------------------------------- -uint8_t micro_peripherals_floppy_disk_interface_t::read(address_space &space, offs_t offset, uint8_t data) +uint8_t micro_peripherals_floppy_disk_interface_device::read(address_space &space, offs_t offset, uint8_t data) { return data; } @@ -79,6 +79,6 @@ uint8_t micro_peripherals_floppy_disk_interface_t::read(address_space &space, of // write - //------------------------------------------------- -void micro_peripherals_floppy_disk_interface_t::write(address_space &space, offs_t offset, uint8_t data) +void micro_peripherals_floppy_disk_interface_device::write(address_space &space, offs_t offset, uint8_t data) { } diff --git a/src/devices/bus/ql/mp_fdi.h b/src/devices/bus/ql/mp_fdi.h index 8ea642ea26d..9939e540ba7 100644 --- a/src/devices/bus/ql/mp_fdi.h +++ b/src/devices/bus/ql/mp_fdi.h @@ -6,27 +6,25 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_QL_MP_FDI_H +#define MAME_BUS_QL_MP_FDI_H -#ifndef __MICRO_PERIPHERALS_FLOPPY_DISK_INTERFACE__ -#define __MICRO_PERIPHERALS_FLOPPY_DISK_INTERFACE__ +#pragma once #include "exp.h" - //************************************************************************** // TYPE DEFINITIONS //************************************************************************** -// ======================> micro_peripherals_floppy_disk_interface_t +// ======================> micro_peripherals_floppy_disk_interface_device -class micro_peripherals_floppy_disk_interface_t : public device_t, - public device_ql_expansion_card_interface +class micro_peripherals_floppy_disk_interface_device : public device_t, public device_ql_expansion_card_interface { public: // construction/destruction - micro_peripherals_floppy_disk_interface_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + micro_peripherals_floppy_disk_interface_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual const tiny_rom_entry *device_rom_region() const override; @@ -41,10 +39,7 @@ protected: }; - // device type definition -extern const device_type MICRO_PERIPHERALS_FLOPPY_DISK_INTERFACE; - - +DECLARE_DEVICE_TYPE(MICRO_PERIPHERALS_FLOPPY_DISK_INTERFACE, micro_peripherals_floppy_disk_interface_device) -#endif +#endif // MAME_BUS_QL_MP_FDI_H diff --git a/src/devices/bus/ql/opd_basic_master.cpp b/src/devices/bus/ql/opd_basic_master.cpp index 8cefd393ade..015fca91a37 100644 --- a/src/devices/bus/ql/opd_basic_master.cpp +++ b/src/devices/bus/ql/opd_basic_master.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type OPD_BASIC_MASTER = device_creator; +DEFINE_DEVICE_TYPE(OPD_BASIC_MASTER, opd_basic_master_device, "ql_opdbm", "OPD Basic Master") //------------------------------------------------- @@ -32,7 +32,7 @@ ROM_END // rom_region - device-specific ROM region //------------------------------------------------- -const tiny_rom_entry *opd_basic_master_t::device_rom_region() const +const tiny_rom_entry *opd_basic_master_device::device_rom_region() const { return ROM_NAME( opd_basic_master ); } @@ -44,11 +44,11 @@ const tiny_rom_entry *opd_basic_master_t::device_rom_region() const //************************************************************************** //------------------------------------------------- -// opd_basic_master_t - constructor +// opd_basic_master_device - constructor //------------------------------------------------- -opd_basic_master_t::opd_basic_master_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, OPD_BASIC_MASTER, "OPD Basic Master", tag, owner, clock, "ql_opdbm", __FILE__), +opd_basic_master_device::opd_basic_master_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, OPD_BASIC_MASTER, tag, owner, clock), device_ql_expansion_card_interface(mconfig, *this) { } @@ -58,7 +58,7 @@ opd_basic_master_t::opd_basic_master_t(const machine_config &mconfig, const char // device_start - device-specific startup //------------------------------------------------- -void opd_basic_master_t::device_start() +void opd_basic_master_device::device_start() { } @@ -67,7 +67,7 @@ void opd_basic_master_t::device_start() // read - //------------------------------------------------- -uint8_t opd_basic_master_t::read(address_space &space, offs_t offset, uint8_t data) +uint8_t opd_basic_master_device::read(address_space &space, offs_t offset, uint8_t data) { return data; } @@ -77,6 +77,6 @@ uint8_t opd_basic_master_t::read(address_space &space, offs_t offset, uint8_t da // write - //------------------------------------------------- -void opd_basic_master_t::write(address_space &space, offs_t offset, uint8_t data) +void opd_basic_master_device::write(address_space &space, offs_t offset, uint8_t data) { } diff --git a/src/devices/bus/ql/opd_basic_master.h b/src/devices/bus/ql/opd_basic_master.h index 3611cfa11f1..d22b50eff8c 100644 --- a/src/devices/bus/ql/opd_basic_master.h +++ b/src/devices/bus/ql/opd_basic_master.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_QL_OPD_BASIC_MASTER_H +#define MAME_BUS_QL_OPD_BASIC_MASTER_H -#ifndef __OPD_BASIC_MASTER__ -#define __OPD_BASIC_MASTER__ +#pragma once #include "exp.h" @@ -19,14 +19,13 @@ // TYPE DEFINITIONS //************************************************************************** -// ======================> opd_basic_master_t +// ======================> opd_basic_master_device -class opd_basic_master_t : public device_t, - public device_ql_expansion_card_interface +class opd_basic_master_device : public device_t, public device_ql_expansion_card_interface { public: // construction/destruction - opd_basic_master_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + opd_basic_master_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual const tiny_rom_entry *device_rom_region() const override; @@ -41,10 +40,7 @@ protected: }; - // device type definition -extern const device_type OPD_BASIC_MASTER; - - +DECLARE_DEVICE_TYPE(OPD_BASIC_MASTER, opd_basic_master_device) -#endif +#endif // MAME_BUS_QL_OPD_BASIC_MASTER_H diff --git a/src/devices/bus/ql/pcml_qdisk.cpp b/src/devices/bus/ql/pcml_qdisk.cpp index 1307f024047..2159dafab9f 100644 --- a/src/devices/bus/ql/pcml_qdisk.cpp +++ b/src/devices/bus/ql/pcml_qdisk.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type PCML_Q_DISK_INTERFACE = device_creator; +DEFINE_DEVICE_TYPE(PCML_Q_DISK_INTERFACE, pcml_q_disk_interface_device, "ql_pcmlqdi", "PCML Q+ Disk Interface") //------------------------------------------------- @@ -34,7 +34,7 @@ ROM_END // rom_region - device-specific ROM region //------------------------------------------------- -const tiny_rom_entry *pcml_q_disk_interface_t::device_rom_region() const +const tiny_rom_entry *pcml_q_disk_interface_device::device_rom_region() const { return ROM_NAME( pcml_q_disk_interface ); } @@ -46,11 +46,11 @@ const tiny_rom_entry *pcml_q_disk_interface_t::device_rom_region() const //************************************************************************** //------------------------------------------------- -// pcml_q_disk_interface_t - constructor +// pcml_q_disk_interface_device - constructor //------------------------------------------------- -pcml_q_disk_interface_t::pcml_q_disk_interface_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, PCML_Q_DISK_INTERFACE, "PCML Q+ Disk Interface", tag, owner, clock, "ql_pcmlqdi", __FILE__), +pcml_q_disk_interface_device::pcml_q_disk_interface_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, PCML_Q_DISK_INTERFACE, tag, owner, clock), device_ql_expansion_card_interface(mconfig, *this) { } @@ -60,7 +60,7 @@ pcml_q_disk_interface_t::pcml_q_disk_interface_t(const machine_config &mconfig, // device_start - device-specific startup //------------------------------------------------- -void pcml_q_disk_interface_t::device_start() +void pcml_q_disk_interface_device::device_start() { } @@ -69,7 +69,7 @@ void pcml_q_disk_interface_t::device_start() // read - //------------------------------------------------- -uint8_t pcml_q_disk_interface_t::read(address_space &space, offs_t offset, uint8_t data) +uint8_t pcml_q_disk_interface_device::read(address_space &space, offs_t offset, uint8_t data) { return data; } @@ -79,6 +79,6 @@ uint8_t pcml_q_disk_interface_t::read(address_space &space, offs_t offset, uint8 // write - //------------------------------------------------- -void pcml_q_disk_interface_t::write(address_space &space, offs_t offset, uint8_t data) +void pcml_q_disk_interface_device::write(address_space &space, offs_t offset, uint8_t data) { } diff --git a/src/devices/bus/ql/pcml_qdisk.h b/src/devices/bus/ql/pcml_qdisk.h index 120787eebd2..e9904df6eb0 100644 --- a/src/devices/bus/ql/pcml_qdisk.h +++ b/src/devices/bus/ql/pcml_qdisk.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_QL_PCML_QDISK_H +#define MAME_BUS_QL_PCML_QDISK_H -#ifndef __PCML_Q_DISK_INTERFACE__ -#define __PCML_Q_DISK_INTERFACE__ +#pragma once #include "exp.h" @@ -19,14 +19,13 @@ // TYPE DEFINITIONS //************************************************************************** -// ======================> pcml_q_disk_interface_t +// ======================> pcml_q_disk_interface_device -class pcml_q_disk_interface_t : public device_t, - public device_ql_expansion_card_interface +class pcml_q_disk_interface_device : public device_t, public device_ql_expansion_card_interface { public: // construction/destruction - pcml_q_disk_interface_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + pcml_q_disk_interface_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual const tiny_rom_entry *device_rom_region() const override; @@ -41,10 +40,7 @@ protected: }; - // device type definition -extern const device_type PCML_Q_DISK_INTERFACE; - - +DECLARE_DEVICE_TYPE(PCML_Q_DISK_INTERFACE, pcml_q_disk_interface_device) -#endif +#endif // MAME_BUS_QL_PCML_QDISK_H diff --git a/src/devices/bus/ql/qubide.cpp b/src/devices/bus/ql/qubide.cpp index 30591d96aab..d529fe96ac5 100644 --- a/src/devices/bus/ql/qubide.cpp +++ b/src/devices/bus/ql/qubide.cpp @@ -55,7 +55,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type QUBIDE = device_creator; +DEFINE_DEVICE_TYPE(QUBIDE, qubide_device, "ql_qubide", "QubIDE") //------------------------------------------------- @@ -82,7 +82,7 @@ ROM_END // rom_region - device-specific ROM region //------------------------------------------------- -const tiny_rom_entry *qubide_t::device_rom_region() const +const tiny_rom_entry *qubide_device::device_rom_region() const { return ROM_NAME( qubide ); } @@ -102,7 +102,7 @@ MACHINE_CONFIG_END // machine configurations //------------------------------------------------- -machine_config_constructor qubide_t::device_mconfig_additions() const +machine_config_constructor qubide_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( qubide ); } @@ -154,7 +154,7 @@ INPUT_PORTS_END // input_ports - device-specific input ports //------------------------------------------------- -ioport_constructor qubide_t::device_input_ports() const +ioport_constructor qubide_device::device_input_ports() const { return INPUT_PORTS_NAME( qubide ); } @@ -166,11 +166,11 @@ ioport_constructor qubide_t::device_input_ports() const //************************************************************************** //------------------------------------------------- -// qubide_t - constructor +// qubide_device - constructor //------------------------------------------------- -qubide_t::qubide_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, QUBIDE, "QubIDE", tag, owner, clock, "ql_qubide", __FILE__), +qubide_device::qubide_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, QUBIDE, tag, owner, clock), device_ql_expansion_card_interface(mconfig, *this), m_ata(*this, "ata"), m_rom(*this, "rom"), @@ -185,7 +185,7 @@ qubide_t::qubide_t(const machine_config &mconfig, const char *tag, device_t *own // device_start - device-specific startup //------------------------------------------------- -void qubide_t::device_start() +void qubide_device::device_start() { } @@ -194,7 +194,7 @@ void qubide_t::device_start() // device_reset - device-specific reset //------------------------------------------------- -void qubide_t::device_reset() +void qubide_device::device_reset() { int j1_j5 = m_j1_j5->read(); @@ -211,7 +211,7 @@ void qubide_t::device_reset() // read - //------------------------------------------------- -uint8_t qubide_t::read(address_space &space, offs_t offset, uint8_t data) +uint8_t qubide_device::read(address_space &space, offs_t offset, uint8_t data) { if ((offset & 0xfc000) == m_base) { @@ -256,7 +256,7 @@ uint8_t qubide_t::read(address_space &space, offs_t offset, uint8_t data) // write - //------------------------------------------------- -void qubide_t::write(address_space &space, offs_t offset, uint8_t data) +void qubide_device::write(address_space &space, offs_t offset, uint8_t data) { if ((offset & 0xfc000) == m_base) { diff --git a/src/devices/bus/ql/qubide.h b/src/devices/bus/ql/qubide.h index 9ebbdaa95e5..2dd652d58a9 100644 --- a/src/devices/bus/ql/qubide.h +++ b/src/devices/bus/ql/qubide.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_QL_QUBIDE_H +#define MAME_BUS_QL_QUBIDE_H -#ifndef __QUBIDE__ -#define __QUBIDE__ +#pragma once #include "exp.h" #include "machine/ataintf.h" @@ -20,14 +20,13 @@ // TYPE DEFINITIONS //************************************************************************** -// ======================> qubide_t +// ======================> qubide_device -class qubide_t : public device_t, - public device_ql_expansion_card_interface +class qubide_device : public device_t, public device_ql_expansion_card_interface { public: // construction/destruction - qubide_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + qubide_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual const tiny_rom_entry *device_rom_region() const override; @@ -55,8 +54,6 @@ private: // device type definition -extern const device_type QUBIDE; - - +DECLARE_DEVICE_TYPE(QUBIDE, qubide_device) -#endif +#endif // MAME_BUS_QL_QUBIDE_H diff --git a/src/devices/bus/ql/rom.cpp b/src/devices/bus/ql/rom.cpp index 08258e5b679..27d46b5c47b 100644 --- a/src/devices/bus/ql/rom.cpp +++ b/src/devices/bus/ql/rom.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type QL_ROM_CARTRIDGE_SLOT = device_creator; +DEFINE_DEVICE_TYPE(QL_ROM_CARTRIDGE_SLOT, ql_rom_cartridge_slot_device, "ql_rom_cartridge_slot", "QL ROM cartridge slot") @@ -32,7 +32,7 @@ device_ql_rom_cartridge_card_interface::device_ql_rom_cartridge_card_interface(c m_rom(*this, "rom"), m_romoeh(0) { - m_slot = dynamic_cast(device.owner()); + m_slot = dynamic_cast(device.owner()); } @@ -51,11 +51,11 @@ device_ql_rom_cartridge_card_interface::~device_ql_rom_cartridge_card_interface( //************************************************************************** //------------------------------------------------- -// ql_rom_cartridge_slot_t - constructor +// ql_rom_cartridge_slot_device - constructor //------------------------------------------------- -ql_rom_cartridge_slot_t::ql_rom_cartridge_slot_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, QL_ROM_CARTRIDGE_SLOT, "QL ROM cartridge slot", tag, owner, clock, "ql_rom_cartridge_slot", __FILE__), +ql_rom_cartridge_slot_device::ql_rom_cartridge_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, QL_ROM_CARTRIDGE_SLOT, tag, owner, clock), device_slot_interface(mconfig, *this), device_image_interface(mconfig, *this), m_card(nullptr) { @@ -66,7 +66,7 @@ ql_rom_cartridge_slot_t::ql_rom_cartridge_slot_t(const machine_config &mconfig, // device_start - device-specific startup //------------------------------------------------- -void ql_rom_cartridge_slot_t::device_start() +void ql_rom_cartridge_slot_device::device_start() { m_card = dynamic_cast(get_card_device()); } @@ -76,7 +76,7 @@ void ql_rom_cartridge_slot_t::device_start() // call_load - //------------------------------------------------- -image_init_result ql_rom_cartridge_slot_t::call_load() +image_init_result ql_rom_cartridge_slot_device::call_load() { if (m_card) { @@ -103,7 +103,7 @@ image_init_result ql_rom_cartridge_slot_t::call_load() // get_default_card_software - //------------------------------------------------- -std::string ql_rom_cartridge_slot_t::get_default_card_software(get_default_card_software_hook &hook) const +std::string ql_rom_cartridge_slot_device::get_default_card_software(get_default_card_software_hook &hook) const { return software_get_default_slot("standard"); } diff --git a/src/devices/bus/ql/rom.h b/src/devices/bus/ql/rom.h index 826235b2be6..72b4d75dc2f 100644 --- a/src/devices/bus/ql/rom.h +++ b/src/devices/bus/ql/rom.h @@ -25,10 +25,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_QL_ROM_H +#define MAME_BUS_QL_ROM_H -#ifndef __QL_ROM_CARTRIDGE_SLOT__ -#define __QL_ROM_CARTRIDGE_SLOT__ +#pragma once #include "softlist_dev.h" @@ -49,15 +49,14 @@ // ======================> device_ql_rom_cartridge_card_interface -class ql_rom_cartridge_slot_t; +class ql_rom_cartridge_slot_device; class device_ql_rom_cartridge_card_interface : public device_slot_card_interface { - friend class ql_rom_cartridge_slot_t; + friend class ql_rom_cartridge_slot_device; public: // construction/destruction - device_ql_rom_cartridge_card_interface(const machine_config &mconfig, device_t &device); virtual ~device_ql_rom_cartridge_card_interface(); virtual void romoeh_w(int state) { m_romoeh = state; } @@ -65,7 +64,9 @@ public: virtual void write(address_space &space, offs_t offset, uint8_t data) { } protected: - ql_rom_cartridge_slot_t *m_slot; + device_ql_rom_cartridge_card_interface(const machine_config &mconfig, device_t &device); + + ql_rom_cartridge_slot_device *m_slot; optional_shared_ptr m_rom; @@ -73,15 +74,15 @@ protected: }; -// ======================> ql_rom_cartridge_slot_t +// ======================> ql_rom_cartridge_slot_device -class ql_rom_cartridge_slot_t : public device_t, +class ql_rom_cartridge_slot_device : public device_t, public device_slot_interface, public device_image_interface { public: // construction/destruction - ql_rom_cartridge_slot_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + ql_rom_cartridge_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // computer interface uint8_t read(address_space &space, offs_t offset, uint8_t data) { if (m_card) data = m_card->read(space, offset, data); return data; } @@ -114,10 +115,8 @@ protected: // device type definition -extern const device_type QL_ROM_CARTRIDGE_SLOT; +DECLARE_DEVICE_TYPE(QL_ROM_CARTRIDGE_SLOT, ql_rom_cartridge_slot_device) SLOT_INTERFACE_EXTERN( ql_rom_cartridge_cards ); - - -#endif +#endif // MAME_BUS_QL_ROM_H diff --git a/src/devices/bus/ql/sandy_superdisk.cpp b/src/devices/bus/ql/sandy_superdisk.cpp index f04c1edaa8d..6448d93fc47 100644 --- a/src/devices/bus/ql/sandy_superdisk.cpp +++ b/src/devices/bus/ql/sandy_superdisk.cpp @@ -25,7 +25,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type SANDY_SUPER_DISK = device_creator; +DEFINE_DEVICE_TYPE(SANDY_SUPER_DISK, sandy_super_disk_device, "ql_sdisk", "Sandy Super Disk") //------------------------------------------------- @@ -42,7 +42,7 @@ ROM_END // rom_region - device-specific ROM region //------------------------------------------------- -const tiny_rom_entry *sandy_super_disk_t::device_rom_region() const +const tiny_rom_entry *sandy_super_disk_device::device_rom_region() const { return ROM_NAME( sandy_super_disk ); } @@ -61,7 +61,7 @@ SLOT_INTERFACE_END // FLOPPY_FORMATS( floppy_formats ) //------------------------------------------------- -FLOPPY_FORMATS_MEMBER( sandy_super_disk_t::floppy_formats ) +FLOPPY_FORMATS_MEMBER( sandy_super_disk_device::floppy_formats ) FLOPPY_QL_FORMAT FLOPPY_FORMATS_END @@ -70,7 +70,7 @@ FLOPPY_FORMATS_END // centronics //------------------------------------------------- -WRITE_LINE_MEMBER( sandy_super_disk_t::busy_w ) +WRITE_LINE_MEMBER( sandy_super_disk_device::busy_w ) { m_busy = state; check_interrupt(); @@ -83,11 +83,11 @@ WRITE_LINE_MEMBER( sandy_super_disk_t::busy_w ) static MACHINE_CONFIG_FRAGMENT( sandy_super_disk ) MCFG_DEVICE_ADD(WD1772_TAG, WD1772, 8000000) - MCFG_FLOPPY_DRIVE_ADD(WD1772_TAG":0", sandy_super_disk_floppies, "35dd", sandy_super_disk_t::floppy_formats) - MCFG_FLOPPY_DRIVE_ADD(WD1772_TAG":1", sandy_super_disk_floppies, nullptr, sandy_super_disk_t::floppy_formats) + MCFG_FLOPPY_DRIVE_ADD(WD1772_TAG":0", sandy_super_disk_floppies, "35dd", sandy_super_disk_device::floppy_formats) + MCFG_FLOPPY_DRIVE_ADD(WD1772_TAG":1", sandy_super_disk_floppies, nullptr, sandy_super_disk_device::floppy_formats) MCFG_CENTRONICS_ADD(CENTRONICS_TAG, centronics_devices, "printer") - MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(sandy_super_disk_t, busy_w)) + MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(sandy_super_disk_device, busy_w)) MCFG_CENTRONICS_OUTPUT_LATCH_ADD(TTL74273_TAG, CENTRONICS_TAG) MACHINE_CONFIG_END @@ -97,7 +97,7 @@ MACHINE_CONFIG_END // machine configurations //------------------------------------------------- -machine_config_constructor sandy_super_disk_t::device_mconfig_additions() const +machine_config_constructor sandy_super_disk_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( sandy_super_disk ); } @@ -109,11 +109,11 @@ machine_config_constructor sandy_super_disk_t::device_mconfig_additions() const //************************************************************************** //------------------------------------------------- -// sandy_super_disk_t - constructor +// sandy_super_disk_device - constructor //------------------------------------------------- -sandy_super_disk_t::sandy_super_disk_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, SANDY_SUPER_DISK, "Sandy Super Disk", tag, owner, clock, "ql_sdisk", __FILE__), +sandy_super_disk_device::sandy_super_disk_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, SANDY_SUPER_DISK, tag, owner, clock), device_ql_expansion_card_interface(mconfig, *this), m_fdc(*this, WD1772_TAG), m_floppy0(*this, WD1772_TAG":0"), @@ -130,7 +130,7 @@ sandy_super_disk_t::sandy_super_disk_t(const machine_config &mconfig, const char // device_start - device-specific startup //------------------------------------------------- -void sandy_super_disk_t::device_start() +void sandy_super_disk_device::device_start() { // state saving save_item(NAME(m_busy)); @@ -142,7 +142,7 @@ void sandy_super_disk_t::device_start() // device_reset - device-specific reset //------------------------------------------------- -void sandy_super_disk_t::device_reset() +void sandy_super_disk_device::device_reset() { m_fdc->reset(); m_fdc->set_floppy(nullptr); @@ -157,7 +157,7 @@ void sandy_super_disk_t::device_reset() // read - //------------------------------------------------- -uint8_t sandy_super_disk_t::read(address_space &space, offs_t offset, uint8_t data) +uint8_t sandy_super_disk_device::read(address_space &space, offs_t offset, uint8_t data) { if ((offset & 0xf0000) == 0xc0000) { @@ -203,7 +203,7 @@ uint8_t sandy_super_disk_t::read(address_space &space, offs_t offset, uint8_t da // write - //------------------------------------------------- -void sandy_super_disk_t::write(address_space &space, offs_t offset, uint8_t data) +void sandy_super_disk_device::write(address_space &space, offs_t offset, uint8_t data) { if ((offset & 0xf0000) == 0xc0000) { @@ -268,7 +268,7 @@ void sandy_super_disk_t::write(address_space &space, offs_t offset, uint8_t data } } -void sandy_super_disk_t::check_interrupt() +void sandy_super_disk_device::check_interrupt() { int extint = m_fd6 && m_busy; diff --git a/src/devices/bus/ql/sandy_superdisk.h b/src/devices/bus/ql/sandy_superdisk.h index fe44b921bf6..1de35cba958 100644 --- a/src/devices/bus/ql/sandy_superdisk.h +++ b/src/devices/bus/ql/sandy_superdisk.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_QL_SANDY_SUPERDISK_H +#define MAME_BUS_QL_SANDY_SUPERDISK_H -#ifndef __SANDY_SUPER_DISK__ -#define __SANDY_SUPER_DISK__ +#pragma once #include "exp.h" #include "bus/centronics/ctronics.h" @@ -24,12 +24,11 @@ // ======================> sandy_super_disk_device -class sandy_super_disk_t : public device_t, - public device_ql_expansion_card_interface +class sandy_super_disk_device : public device_t, public device_ql_expansion_card_interface { public: // construction/destruction - sandy_super_disk_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + sandy_super_disk_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual const tiny_rom_entry *device_rom_region() const override; @@ -51,7 +50,7 @@ protected: private: void check_interrupt(); - required_device m_fdc; + required_device m_fdc; required_device m_floppy0; required_device m_floppy1; required_device m_centronics; @@ -64,7 +63,7 @@ private: // device type definition -extern const device_type SANDY_SUPER_DISK; +DECLARE_DEVICE_TYPE(SANDY_SUPER_DISK, sandy_super_disk_device) -#endif +#endif // MAME_BUS_QL_SANDY_SUPERDISK_H diff --git a/src/devices/bus/ql/sandy_superqboard.cpp b/src/devices/bus/ql/sandy_superqboard.cpp index c3eeb342e18..7f73692accb 100644 --- a/src/devices/bus/ql/sandy_superqboard.cpp +++ b/src/devices/bus/ql/sandy_superqboard.cpp @@ -25,10 +25,10 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type SANDY_SUPERQBOARD = device_creator; -const device_type SANDY_SUPERQBOARD_512K = device_creator; -const device_type SANDY_SUPERQMOUSE = device_creator; -const device_type SANDY_SUPERQMOUSE_512K = device_creator; +DEFINE_DEVICE_TYPE(SANDY_SUPERQBOARD, sandy_superqboard_device, "ql_sqboard256", "Sandy SuperQBoard 256K") +DEFINE_DEVICE_TYPE(SANDY_SUPERQBOARD_512K, sandy_superqboard_512k_device, "ql_sqboard512", "Sandy SuperQBoard 512K") +DEFINE_DEVICE_TYPE(SANDY_SUPERQMOUSE, sandy_superqmouse_device, "ql_sqmouse", "Sandy SuperQMouse") +DEFINE_DEVICE_TYPE(SANDY_SUPERQMOUSE_512K, sandy_superqmouse_512k_device, "ql_sqmouse512", "Sandy SuperQMouse 512K") //------------------------------------------------- @@ -54,7 +54,7 @@ ROM_END // rom_region - device-specific ROM region //------------------------------------------------- -const tiny_rom_entry *sandy_superqboard_t::device_rom_region() const +const tiny_rom_entry *sandy_superqboard_device::device_rom_region() const { return ROM_NAME( sandy_superqboard ); } @@ -74,7 +74,7 @@ SLOT_INTERFACE_END // FLOPPY_FORMATS( floppy_formats ) //------------------------------------------------- -FLOPPY_FORMATS_MEMBER( sandy_superqboard_t::floppy_formats ) +FLOPPY_FORMATS_MEMBER( sandy_superqboard_device::floppy_formats ) FLOPPY_QL_FORMAT FLOPPY_FORMATS_END @@ -83,7 +83,7 @@ FLOPPY_FORMATS_END // centronics //------------------------------------------------- -WRITE_LINE_MEMBER( sandy_superqboard_t::busy_w ) +WRITE_LINE_MEMBER( sandy_superqboard_device::busy_w ) { if (state) { @@ -104,11 +104,11 @@ WRITE_LINE_MEMBER( sandy_superqboard_t::busy_w ) static MACHINE_CONFIG_FRAGMENT( sandy_superqboard ) MCFG_DEVICE_ADD(WD1772_TAG, WD1772, XTAL_16MHz/2) - MCFG_FLOPPY_DRIVE_ADD(WD1772_TAG":0", sandy_superqboard_floppies, "35hd", sandy_superqboard_t::floppy_formats) - MCFG_FLOPPY_DRIVE_ADD(WD1772_TAG":1", sandy_superqboard_floppies, nullptr, sandy_superqboard_t::floppy_formats) + MCFG_FLOPPY_DRIVE_ADD(WD1772_TAG":0", sandy_superqboard_floppies, "35hd", sandy_superqboard_device::floppy_formats) + MCFG_FLOPPY_DRIVE_ADD(WD1772_TAG":1", sandy_superqboard_floppies, nullptr, sandy_superqboard_device::floppy_formats) MCFG_CENTRONICS_ADD(CENTRONICS_TAG, centronics_devices, "printer") - MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(sandy_superqboard_t, busy_w)) + MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(sandy_superqboard_device, busy_w)) MCFG_CENTRONICS_OUTPUT_LATCH_ADD(TTL74273_TAG, CENTRONICS_TAG) MACHINE_CONFIG_END @@ -118,7 +118,7 @@ MACHINE_CONFIG_END // machine configurations //------------------------------------------------- -machine_config_constructor sandy_superqboard_t::device_mconfig_additions() const +machine_config_constructor sandy_superqboard_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( sandy_superqboard ); } @@ -128,7 +128,7 @@ machine_config_constructor sandy_superqboard_t::device_mconfig_additions() const // INPUT_CHANGED_MEMBER( mouse_x_changed ) //------------------------------------------------- -INPUT_CHANGED_MEMBER( sandy_superqboard_t::mouse_x_changed ) +INPUT_CHANGED_MEMBER( sandy_superqboard_device::mouse_x_changed ) { if (newval < oldval) { @@ -149,7 +149,7 @@ INPUT_CHANGED_MEMBER( sandy_superqboard_t::mouse_x_changed ) // INPUT_CHANGED_MEMBER( mouse_y_changed ) //------------------------------------------------- -INPUT_CHANGED_MEMBER( sandy_superqboard_t::mouse_y_changed ) +INPUT_CHANGED_MEMBER( sandy_superqboard_device::mouse_y_changed ) { if (newval < oldval) { @@ -172,10 +172,10 @@ INPUT_CHANGED_MEMBER( sandy_superqboard_t::mouse_y_changed ) INPUT_PORTS_START( sandy_superqmouse ) PORT_START("mouse_x") - PORT_BIT( 0xff, 0x00, IPT_MOUSE_X ) PORT_SENSITIVITY(50) PORT_KEYDELTA(5) PORT_MINMAX(0, 255) PORT_CHANGED_MEMBER(DEVICE_SELF, sandy_superqboard_t, mouse_x_changed, nullptr) + PORT_BIT( 0xff, 0x00, IPT_MOUSE_X ) PORT_SENSITIVITY(50) PORT_KEYDELTA(5) PORT_MINMAX(0, 255) PORT_CHANGED_MEMBER(DEVICE_SELF, sandy_superqboard_device, mouse_x_changed, nullptr) PORT_START("mouse_y") - PORT_BIT( 0xff, 0x00, IPT_MOUSE_Y ) PORT_SENSITIVITY(50) PORT_KEYDELTA(5) PORT_MINMAX(0, 255) PORT_CHANGED_MEMBER(DEVICE_SELF, sandy_superqboard_t, mouse_y_changed, nullptr) + PORT_BIT( 0xff, 0x00, IPT_MOUSE_Y ) PORT_SENSITIVITY(50) PORT_KEYDELTA(5) PORT_MINMAX(0, 255) PORT_CHANGED_MEMBER(DEVICE_SELF, sandy_superqboard_device, mouse_y_changed, nullptr) PORT_START("mouse_buttons") PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("Middle Mouse Button") PORT_CODE(MOUSECODE_BUTTON3) @@ -188,7 +188,7 @@ INPUT_PORTS_END // input_ports - device-specific input ports //------------------------------------------------- -ioport_constructor sandy_superqmouse_t::device_input_ports() const +ioport_constructor sandy_superqmouse_device::device_input_ports() const { return INPUT_PORTS_NAME( sandy_superqmouse ); } @@ -198,7 +198,7 @@ ioport_constructor sandy_superqmouse_t::device_input_ports() const // input_ports - device-specific input ports //------------------------------------------------- -ioport_constructor sandy_superqmouse_512k_t::device_input_ports() const +ioport_constructor sandy_superqmouse_512k_device::device_input_ports() const { return INPUT_PORTS_NAME( sandy_superqmouse ); } @@ -210,29 +210,16 @@ ioport_constructor sandy_superqmouse_512k_t::device_input_ports() const //************************************************************************** //------------------------------------------------- -// sandy_superqboard_t - constructor +// sandy_superqboard_device - constructor //------------------------------------------------- -sandy_superqboard_t::sandy_superqboard_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, SANDY_SUPERQBOARD, "Sandy SuperQBoard 256K", tag, owner, clock, "ql_sqboard256", __FILE__), - device_ql_expansion_card_interface(mconfig, *this), - m_fdc(*this, WD1772_TAG), - m_floppy0(*this, WD1772_TAG":0"), - m_floppy1(*this, WD1772_TAG":1"), - m_centronics(*this, CENTRONICS_TAG), - m_latch(*this, TTL74273_TAG), - m_rom(*this, "rom"), - m_ram(*this, "ram"), - m_buttons(*this, "mouse_buttons"), - m_ram_size(256*1024), - m_fd6(0), - m_fd7(0), - m_status(0) +sandy_superqboard_device::sandy_superqboard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + sandy_superqboard_device(mconfig, SANDY_SUPERQBOARD, tag, owner, clock, 256*1024) { } -sandy_superqboard_t::sandy_superqboard_t(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source, int ram_size) : - device_t(mconfig, type, name, tag, owner, clock, shortname, __FILE__), +sandy_superqboard_device::sandy_superqboard_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int ram_size) : + device_t(mconfig, type, tag, owner, clock), device_ql_expansion_card_interface(mconfig, *this), m_fdc(*this, WD1772_TAG), m_floppy0(*this, WD1772_TAG":0"), @@ -249,21 +236,27 @@ sandy_superqboard_t::sandy_superqboard_t(const machine_config &mconfig, device_t { } -sandy_superqboard_512k_t::sandy_superqboard_512k_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : sandy_superqboard_t(mconfig, SANDY_SUPERQBOARD_512K, "Sandy SuperQBoard 512K", tag, owner, clock, "ql_sqboard512", __FILE__, 512*1024) { } +sandy_superqboard_512k_device::sandy_superqboard_512k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : sandy_superqboard_device(mconfig, SANDY_SUPERQBOARD_512K, tag, owner, clock, 512*1024) +{ +} -sandy_superqmouse_t::sandy_superqmouse_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : sandy_superqboard_t(mconfig, SANDY_SUPERQMOUSE, "Sandy SuperQMouse", tag, owner, clock, "ql_sqmouse", __FILE__, 256*1024) { } +sandy_superqmouse_device::sandy_superqmouse_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : sandy_superqboard_device(mconfig, SANDY_SUPERQMOUSE, tag, owner, clock, 256*1024) +{ +} -sandy_superqmouse_512k_t::sandy_superqmouse_512k_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : sandy_superqboard_t(mconfig, SANDY_SUPERQMOUSE_512K, "Sandy SuperQMouse 512K", tag, owner, clock, "ql_sqmouse512", __FILE__, 512*1024) { } +sandy_superqmouse_512k_device::sandy_superqmouse_512k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : sandy_superqboard_device(mconfig, SANDY_SUPERQMOUSE_512K, tag, owner, clock, 512*1024) +{ +} //------------------------------------------------- // device_start - device-specific startup //------------------------------------------------- -void sandy_superqboard_t::device_start() +void sandy_superqboard_device::device_start() { // allocate memory m_ram.allocate(m_ram_size); @@ -279,7 +272,7 @@ void sandy_superqboard_t::device_start() // device_reset - device-specific reset //------------------------------------------------- -void sandy_superqboard_t::device_reset() +void sandy_superqboard_device::device_reset() { m_fdc->reset(); m_fdc->set_floppy(nullptr); @@ -300,7 +293,7 @@ void sandy_superqboard_t::device_reset() // read - //------------------------------------------------- -uint8_t sandy_superqboard_t::read(address_space &space, offs_t offset, uint8_t data) +uint8_t sandy_superqboard_device::read(address_space &space, offs_t offset, uint8_t data) { if ((offset & 0xf0000) == 0xc0000) { @@ -360,7 +353,7 @@ uint8_t sandy_superqboard_t::read(address_space &space, offs_t offset, uint8_t d // write - //------------------------------------------------- -void sandy_superqboard_t::write(address_space &space, offs_t offset, uint8_t data) +void sandy_superqboard_device::write(address_space &space, offs_t offset, uint8_t data) { if ((offset & 0xf0000) == 0xc0000) { @@ -444,7 +437,7 @@ void sandy_superqboard_t::write(address_space &space, offs_t offset, uint8_t dat } } -void sandy_superqboard_t::check_interrupt() +void sandy_superqboard_device::check_interrupt() { bool busy_int = m_fd6 && (m_status & ST_BUSY); bool mouse_int = m_fd7 && (m_status & (ST_Y_INT | ST_X_INT)); diff --git a/src/devices/bus/ql/sandy_superqboard.h b/src/devices/bus/ql/sandy_superqboard.h index a1982c38ede..7c18f96421d 100644 --- a/src/devices/bus/ql/sandy_superqboard.h +++ b/src/devices/bus/ql/sandy_superqboard.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_QL_SANDY_SUPERQBOARD_H +#define MAME_BUS_QL_SANDY_SUPERQBOARD_H -#ifndef __SANDY_SUPERQBOARD__ -#define __SANDY_SUPERQBOARD__ +#pragma once #include "exp.h" #include "bus/centronics/ctronics.h" @@ -22,15 +22,13 @@ // TYPE DEFINITIONS //************************************************************************** -// ======================> sandy_superqboard_t +// ======================> sandy_superqboard_device -class sandy_superqboard_t : public device_t, - public device_ql_expansion_card_interface +class sandy_superqboard_device : public device_t, public device_ql_expansion_card_interface { public: // construction/destruction - sandy_superqboard_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - sandy_superqboard_t(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source, int ram_size); + sandy_superqboard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual const tiny_rom_entry *device_rom_region() const override; @@ -44,6 +42,8 @@ public: DECLARE_INPUT_CHANGED_MEMBER( mouse_y_changed ); protected: + sandy_superqboard_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int ram_size); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -67,7 +67,7 @@ private: void check_interrupt(); - required_device m_fdc; + required_device m_fdc; required_device m_floppy0; required_device m_floppy1; required_device m_centronics; @@ -84,36 +84,36 @@ private: }; -// ======================> sandy_superqboard_512k_t +// ======================> sandy_superqboard_512k_device -class sandy_superqboard_512k_t : public sandy_superqboard_t +class sandy_superqboard_512k_device : public sandy_superqboard_device { public: // construction/destruction - sandy_superqboard_512k_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + sandy_superqboard_512k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; -// ======================> sandy_superqmouse_t +// ======================> sandy_superqmouse_device -class sandy_superqmouse_t : public sandy_superqboard_t +class sandy_superqmouse_device : public sandy_superqboard_device { public: // construction/destruction - sandy_superqmouse_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + sandy_superqmouse_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual ioport_constructor device_input_ports() const override; }; -// ======================> sandy_superqmouse_512k_t +// ======================> sandy_superqmouse_512k_device -class sandy_superqmouse_512k_t : public sandy_superqboard_t +class sandy_superqmouse_512k_device : public sandy_superqboard_device { public: // construction/destruction - sandy_superqmouse_512k_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + sandy_superqmouse_512k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual ioport_constructor device_input_ports() const override; @@ -121,11 +121,9 @@ public: // device type definition -extern const device_type SANDY_SUPERQBOARD; -extern const device_type SANDY_SUPERQBOARD_512K; -extern const device_type SANDY_SUPERQMOUSE; -extern const device_type SANDY_SUPERQMOUSE_512K; - - +DECLARE_DEVICE_TYPE(SANDY_SUPERQBOARD, sandy_superqboard_device) +DECLARE_DEVICE_TYPE(SANDY_SUPERQBOARD_512K, sandy_superqboard_512k_device) +DECLARE_DEVICE_TYPE(SANDY_SUPERQMOUSE, sandy_superqmouse_device) +DECLARE_DEVICE_TYPE(SANDY_SUPERQMOUSE_512K, sandy_superqmouse_512k_device) -#endif +#endif // MAME_BUS_QL_SANDY_SUPERQBOARD_H diff --git a/src/devices/bus/ql/std.cpp b/src/devices/bus/ql/std.cpp index 8fc5424cf63..5e13a0ff32f 100644 --- a/src/devices/bus/ql/std.cpp +++ b/src/devices/bus/ql/std.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type QL_STANDARD_ROM_CARTRIDGE = device_creator; +DEFINE_DEVICE_TYPE(QL_STANDARD_ROM_CARTRIDGE, ql_standard_rom_cartridge_device, "ql_standard", "QL standard ROM cartridge") @@ -24,11 +24,11 @@ const device_type QL_STANDARD_ROM_CARTRIDGE = device_creator ql_standard_rom_cartridge_t +// ======================> ql_standard_rom_cartridge_device -class ql_standard_rom_cartridge_t : public device_t, - public device_ql_rom_cartridge_card_interface +class ql_standard_rom_cartridge_device : public device_t, public device_ql_rom_cartridge_card_interface { public: // construction/destruction - ql_standard_rom_cartridge_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + ql_standard_rom_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); protected: // device-level overrides @@ -38,7 +37,6 @@ protected: // device type definition -extern const device_type QL_STANDARD_ROM_CARTRIDGE; - +DECLARE_DEVICE_TYPE(QL_STANDARD_ROM_CARTRIDGE, ql_standard_rom_cartridge_device) -#endif +#endif // MAME_BUS_QL_STD_H diff --git a/src/devices/bus/ql/trumpcard.cpp b/src/devices/bus/ql/trumpcard.cpp index be3ae9baa76..c4f764fa74c 100644 --- a/src/devices/bus/ql/trumpcard.cpp +++ b/src/devices/bus/ql/trumpcard.cpp @@ -23,10 +23,10 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type QL_TRUMP_CARD = device_creator; -const device_type QL_TRUMP_CARD_256K = device_creator; -const device_type QL_TRUMP_CARD_512K = device_creator; -const device_type QL_TRUMP_CARD_768K = device_creator; +DEFINE_DEVICE_TYPE(QL_TRUMP_CARD, ql_trump_card_device, "ql_trump", "QL Trump Card") +DEFINE_DEVICE_TYPE(QL_TRUMP_CARD_256K, ql_trump_card_256k_device, "ql_trump256", "QL Trump Card 256K") +DEFINE_DEVICE_TYPE(QL_TRUMP_CARD_512K, ql_trump_card_512k_device, "ql_trump512", "QL Trump Card 512K") +DEFINE_DEVICE_TYPE(QL_TRUMP_CARD_768K, ql_trump_card_768k_device, "ql_trump768", "QL Trump Card 768K") //------------------------------------------------- @@ -57,7 +57,7 @@ ROM_END // rom_region - device-specific ROM region //------------------------------------------------- -const tiny_rom_entry *ql_trump_card_t::device_rom_region() const +const tiny_rom_entry *ql_trump_card_device::device_rom_region() const { return ROM_NAME( ql_trump_card ); } @@ -76,7 +76,7 @@ SLOT_INTERFACE_END // FLOPPY_FORMATS( floppy_formats ) //------------------------------------------------- -FLOPPY_FORMATS_MEMBER( ql_trump_card_t::floppy_formats ) +FLOPPY_FORMATS_MEMBER( ql_trump_card_device::floppy_formats ) FLOPPY_QL_FORMAT FLOPPY_FORMATS_END @@ -87,8 +87,8 @@ FLOPPY_FORMATS_END static MACHINE_CONFIG_FRAGMENT( ql_trump_card ) MCFG_DEVICE_ADD(WD1772_TAG, WD1772, 8000000) - MCFG_FLOPPY_DRIVE_ADD(WD1772_TAG":0", ql_trump_card_floppies, "35dd", ql_trump_card_t::floppy_formats) - MCFG_FLOPPY_DRIVE_ADD(WD1772_TAG":1", ql_trump_card_floppies, nullptr, ql_trump_card_t::floppy_formats) + MCFG_FLOPPY_DRIVE_ADD(WD1772_TAG":0", ql_trump_card_floppies, "35dd", ql_trump_card_device::floppy_formats) + MCFG_FLOPPY_DRIVE_ADD(WD1772_TAG":1", ql_trump_card_floppies, nullptr, ql_trump_card_device::floppy_formats) MACHINE_CONFIG_END @@ -97,7 +97,7 @@ MACHINE_CONFIG_END // machine configurations //------------------------------------------------- -machine_config_constructor ql_trump_card_t::device_mconfig_additions() const +machine_config_constructor ql_trump_card_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( ql_trump_card ); } @@ -109,48 +109,48 @@ machine_config_constructor ql_trump_card_t::device_mconfig_additions() const //************************************************************************** //------------------------------------------------- -// ql_trump_card_t - constructor +// ql_trump_card_device - constructor //------------------------------------------------- -ql_trump_card_t::ql_trump_card_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, QL_TRUMP_CARD, "QL Trump Card", tag, owner, clock, "ql_trump", __FILE__), - device_ql_expansion_card_interface(mconfig, *this), - m_fdc(*this, WD1772_TAG), - m_floppy0(*this, WD1772_TAG":0"), - m_floppy1(*this, WD1772_TAG":1"), - m_rom(*this, "rom"), - m_ram(*this, "ram"), - m_ram_size(0), m_rom_en(false) +ql_trump_card_device::ql_trump_card_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + ql_trump_card_device(mconfig, QL_TRUMP_CARD, tag, owner, clock, 0) { } -ql_trump_card_t::ql_trump_card_t(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source, int ram_size) : - device_t(mconfig, type, name, tag, owner, clock, shortname, __FILE__), +ql_trump_card_device::ql_trump_card_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int ram_size) : + device_t(mconfig, type, tag, owner, clock), device_ql_expansion_card_interface(mconfig, *this), m_fdc(*this, WD1772_TAG), m_floppy0(*this, WD1772_TAG":0"), m_floppy1(*this, WD1772_TAG":1"), m_rom(*this, "rom"), m_ram(*this, "ram"), - m_ram_size(ram_size), m_rom_en(false) + m_ram_size(ram_size), + m_rom_en(false) { } -ql_trump_card_256k_t::ql_trump_card_256k_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : ql_trump_card_t(mconfig, QL_TRUMP_CARD_256K, "QL Trump Card 256K", tag, owner, clock, "ql_trump256", __FILE__, 256*1024) { } +ql_trump_card_256k_device::ql_trump_card_256k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : ql_trump_card_device(mconfig, QL_TRUMP_CARD_256K, tag, owner, clock, 256*1024) +{ +} -ql_trump_card_512k_t::ql_trump_card_512k_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : ql_trump_card_t(mconfig, QL_TRUMP_CARD_512K, "QL Trump Card 512K", tag, owner, clock, "ql_trump512", __FILE__, 512*1024) { } +ql_trump_card_512k_device::ql_trump_card_512k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : ql_trump_card_device(mconfig, QL_TRUMP_CARD_512K, tag, owner, clock, 512*1024) +{ +} -ql_trump_card_768k_t::ql_trump_card_768k_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : ql_trump_card_t(mconfig, QL_TRUMP_CARD_768K, "QL Trump Card 768K", tag, owner, clock, "ql_trump768", __FILE__, 768*1024) { } +ql_trump_card_768k_device::ql_trump_card_768k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : ql_trump_card_device(mconfig, QL_TRUMP_CARD_768K, tag, owner, clock, 768*1024) +{ +} //------------------------------------------------- // device_start - device-specific startup //------------------------------------------------- -void ql_trump_card_t::device_start() +void ql_trump_card_device::device_start() { // allocate memory m_ram.allocate(m_ram_size); @@ -164,7 +164,7 @@ void ql_trump_card_t::device_start() // device_reset - device-specific reset //------------------------------------------------- -void ql_trump_card_t::device_reset() +void ql_trump_card_device::device_reset() { m_fdc->set_floppy(nullptr); m_fdc->dden_w(0); @@ -177,7 +177,7 @@ void ql_trump_card_t::device_reset() // read - //------------------------------------------------- -uint8_t ql_trump_card_t::read(address_space &space, offs_t offset, uint8_t data) +uint8_t ql_trump_card_device::read(address_space &space, offs_t offset, uint8_t data) { if (offset >= 0xc000 && offset < 0x10000) { @@ -230,7 +230,7 @@ uint8_t ql_trump_card_t::read(address_space &space, offs_t offset, uint8_t data) // write - //------------------------------------------------- -void ql_trump_card_t::write(address_space &space, offs_t offset, uint8_t data) +void ql_trump_card_device::write(address_space &space, offs_t offset, uint8_t data) { if (offset >= 0x1c000 && offset <= 0x1c003) { diff --git a/src/devices/bus/ql/trumpcard.h b/src/devices/bus/ql/trumpcard.h index 631b584c9f1..ff19af0bf07 100644 --- a/src/devices/bus/ql/trumpcard.h +++ b/src/devices/bus/ql/trumpcard.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_QL_TRUMPCARD_H +#define MAME_BUS_QL_TRUMPCARD_H -#ifndef __QL_TRUMP_CARD__ -#define __QL_TRUMP_CARD__ +#pragma once #include "exp.h" #include "machine/wd_fdc.h" @@ -21,15 +21,13 @@ // TYPE DEFINITIONS //************************************************************************** -// ======================> ql_trump_card_t +// ======================> ql_trump_card_device -class ql_trump_card_t : public device_t, - public device_ql_expansion_card_interface +class ql_trump_card_device : public device_t, public device_ql_expansion_card_interface { public: // construction/destruction - ql_trump_card_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ql_trump_card_t(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source, int ram_size); + ql_trump_card_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual const tiny_rom_entry *device_rom_region() const override; @@ -38,6 +36,8 @@ public: DECLARE_FLOPPY_FORMATS( floppy_formats ); protected: + ql_trump_card_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int ram_size); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -47,7 +47,7 @@ protected: virtual void write(address_space &space, offs_t offset, uint8_t data) override; private: - required_device m_fdc; + required_device m_fdc; required_device m_floppy0; required_device m_floppy1; required_memory_region m_rom; @@ -58,43 +58,40 @@ private: }; -// ======================> ql_trump_card_256k_t +// ======================> ql_trump_card_256k_device -class ql_trump_card_256k_t : public ql_trump_card_t +class ql_trump_card_256k_device : public ql_trump_card_device { public: // construction/destruction - ql_trump_card_256k_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + ql_trump_card_256k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; -// ======================> ql_trump_card_512k_t +// ======================> ql_trump_card_512k_device -class ql_trump_card_512k_t : public ql_trump_card_t +class ql_trump_card_512k_device : public ql_trump_card_device { public: // construction/destruction - ql_trump_card_512k_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + ql_trump_card_512k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; -// ======================> ql_trump_card_768k_t +// ======================> ql_trump_card_768k_device -class ql_trump_card_768k_t : public ql_trump_card_t +class ql_trump_card_768k_device : public ql_trump_card_device { public: // construction/destruction - ql_trump_card_768k_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + ql_trump_card_768k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; - // device type definition -extern const device_type QL_TRUMP_CARD; -extern const device_type QL_TRUMP_CARD_256K; -extern const device_type QL_TRUMP_CARD_512K; -extern const device_type QL_TRUMP_CARD_768K; - - +DECLARE_DEVICE_TYPE(QL_TRUMP_CARD, ql_trump_card_device) +DECLARE_DEVICE_TYPE(QL_TRUMP_CARD_256K, ql_trump_card_256k_device) +DECLARE_DEVICE_TYPE(QL_TRUMP_CARD_512K, ql_trump_card_512k_device) +DECLARE_DEVICE_TYPE(QL_TRUMP_CARD_768K, ql_trump_card_768k_device) -#endif +#endif // MAME_BUS_QL_TRUMPCARD_H diff --git a/src/devices/bus/rs232/ie15.cpp b/src/devices/bus/rs232/ie15.cpp index c37c39f4569..74387086782 100644 --- a/src/devices/bus/rs232/ie15.cpp +++ b/src/devices/bus/rs232/ie15.cpp @@ -5,7 +5,7 @@ #include "ie15.h" ie15_terminal_device::ie15_terminal_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : ie15_device(mconfig, SERIAL_TERMINAL_IE15, "IE15 Terminal", tag, owner, clock, "ie15_terminal", __FILE__) + : ie15_device(mconfig, SERIAL_TERMINAL_IE15, tag, owner, clock) , device_rs232_port_interface(mconfig, *this) , m_rs232_txbaud(*this, "RS232_TXBAUD") , m_rs232_rxbaud(*this, "RS232_RXBAUD") @@ -87,5 +87,4 @@ void ie15_terminal_device::device_timer(emu_timer &timer, device_timer_id id, in ie15_device::device_timer(timer, id, param, ptr); } -const device_type SERIAL_TERMINAL_IE15 = device_creator; - +DEFINE_DEVICE_TYPE(SERIAL_TERMINAL_IE15, ie15_terminal_device, "ie15_terminal", "IE15 Terminal") diff --git a/src/devices/bus/rs232/ie15.h b/src/devices/bus/rs232/ie15.h index 281a842b634..c5c7ba3f6de 100644 --- a/src/devices/bus/rs232/ie15.h +++ b/src/devices/bus/rs232/ie15.h @@ -4,6 +4,8 @@ #ifndef MAME_BUS_RS232_IE15_H #define MAME_BUS_RS232_IE15_H +#pragma once + #include "rs232.h" #include "machine/ie15.h" @@ -37,6 +39,6 @@ private: required_ioport m_rs232_stopbits; }; -extern const device_type SERIAL_TERMINAL_IE15; +DECLARE_DEVICE_TYPE(SERIAL_TERMINAL_IE15, ie15_terminal_device) #endif // MAME_BUS_RS232_IE15_H diff --git a/src/devices/bus/rs232/keyboard.cpp b/src/devices/bus/rs232/keyboard.cpp index 4d234ef1576..17c6d4fa066 100644 --- a/src/devices/bus/rs232/keyboard.cpp +++ b/src/devices/bus/rs232/keyboard.cpp @@ -16,12 +16,12 @@ INPUT_PORTS_END } // anonymous namespace serial_keyboard_device::serial_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : serial_keyboard_device(mconfig, SERIAL_KEYBOARD, "Serial Keyboard", tag, owner, clock, "serial_keyboard", __FILE__) + : serial_keyboard_device(mconfig, SERIAL_KEYBOARD, tag, owner, clock) { } -serial_keyboard_device::serial_keyboard_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : generic_keyboard_device(mconfig, type, name, tag, owner, clock, shortname, source) +serial_keyboard_device::serial_keyboard_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : generic_keyboard_device(mconfig, type, tag, owner, clock) , device_buffered_serial_interface(mconfig, *this) , device_rs232_port_interface(mconfig, *this) , m_rs232_txbaud(*this, "RS232_TXBAUD") @@ -100,4 +100,4 @@ void serial_keyboard_device::received_byte(uint8_t byte) { } -const device_type SERIAL_KEYBOARD = device_creator; +DEFINE_DEVICE_TYPE(SERIAL_KEYBOARD, serial_keyboard_device, "serial_keyboard", "Serial Keyboard") diff --git a/src/devices/bus/rs232/keyboard.h b/src/devices/bus/rs232/keyboard.h index 7592dcd2ed5..33b848dc126 100644 --- a/src/devices/bus/rs232/keyboard.h +++ b/src/devices/bus/rs232/keyboard.h @@ -5,6 +5,8 @@ #pragma once +#pragma once + #include "rs232.h" #include "machine/keyboard.h" @@ -15,7 +17,6 @@ class serial_keyboard_device { public: serial_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - serial_keyboard_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); virtual ioport_constructor device_input_ports() const override; @@ -24,6 +25,8 @@ public: DECLARE_WRITE_LINE_MEMBER(update_serial); protected: + serial_keyboard_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; virtual void device_reset() override; virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; @@ -40,6 +43,6 @@ private: required_ioport m_rs232_stopbits; }; -extern const device_type SERIAL_KEYBOARD; +DECLARE_DEVICE_TYPE(SERIAL_KEYBOARD, serial_keyboard_device) #endif // MAME_BUS_RS232_KEYBOARD_H diff --git a/src/devices/bus/rs232/loopback.cpp b/src/devices/bus/rs232/loopback.cpp index cba8acf944c..ff462a8a982 100644 --- a/src/devices/bus/rs232/loopback.cpp +++ b/src/devices/bus/rs232/loopback.cpp @@ -4,11 +4,11 @@ #include "emu.h" #include "loopback.h" -const device_type RS232_LOOPBACK = device_creator; +DEFINE_DEVICE_TYPE(RS232_LOOPBACK, rs232_loopback_device, "rs232_loopback", "RS232 Loopback") rs232_loopback_device::rs232_loopback_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, RS232_LOOPBACK, "RS232 Loopback", tag, owner, clock, "rs232_loopback", __FILE__), - device_rs232_port_interface(mconfig, *this) + : device_t(mconfig, RS232_LOOPBACK, tag, owner, clock) + , device_rs232_port_interface(mconfig, *this) { } diff --git a/src/devices/bus/rs232/loopback.h b/src/devices/bus/rs232/loopback.h index 25de18df2a9..7c78a6317ad 100644 --- a/src/devices/bus/rs232/loopback.h +++ b/src/devices/bus/rs232/loopback.h @@ -1,8 +1,10 @@ // license:BSD-3-Clause // copyright-holders:smf -#ifndef RS232_LOOPBACK_H_ -#define RS232_LOOPBACK_H_ +#ifndef MAME_BUS_RS232_LOOPBACK_H +#define MAME_BUS_RS232_LOOPBACK_H + +#pragma once #include "rs232.h" @@ -22,4 +24,4 @@ protected: extern const device_type RS232_LOOPBACK; -#endif +#endif // MAME_BUS_RS232_LOOPBACK_H diff --git a/src/devices/bus/rs232/null_modem.cpp b/src/devices/bus/rs232/null_modem.cpp index 9baa1ef7435..bec7b68016f 100644 --- a/src/devices/bus/rs232/null_modem.cpp +++ b/src/devices/bus/rs232/null_modem.cpp @@ -4,7 +4,7 @@ #include "null_modem.h" null_modem_device::null_modem_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, NULL_MODEM, "Null Modem", tag, owner, clock, "null_modem", __FILE__), + : device_t(mconfig, NULL_MODEM, tag, owner, clock), device_serial_interface(mconfig, *this), device_rs232_port_interface(mconfig, *this), m_stream(*this, "stream"), @@ -138,4 +138,4 @@ void null_modem_device::rcv_complete() m_stream->output(get_received_char()); } -const device_type NULL_MODEM = device_creator; +DEFINE_DEVICE_TYPE(NULL_MODEM, null_modem_device, "null_modem", "RS232 Null Modem") diff --git a/src/devices/bus/rs232/null_modem.h b/src/devices/bus/rs232/null_modem.h index 3568b313cbc..39ecd9a129c 100644 --- a/src/devices/bus/rs232/null_modem.h +++ b/src/devices/bus/rs232/null_modem.h @@ -1,7 +1,7 @@ // license:BSD-3-Clause // copyright-holders:smf,Carl -#ifndef NULL_MODEM_H_ -#define NULL_MODEM_H_ +#ifndef MAME_BUS_RS232_NULL_MODEM_H +#define MAME_BUS_RS232_NULL_MODEM_H #include "rs232.h" #include "imagedev/bitbngr.h" @@ -30,9 +30,9 @@ protected: virtual void rcv_complete() override; private: - void queue(); + static constexpr int TIMER_POLL = 1; - static const int TIMER_POLL = 1; + void queue(); required_device m_stream; @@ -51,6 +51,6 @@ private: int m_rts; }; -extern const device_type NULL_MODEM; +DECLARE_DEVICE_TYPE(NULL_MODEM, null_modem_device) -#endif +#endif // MAME_BUS_RS232_NULL_MODEM_H diff --git a/src/devices/bus/rs232/printer.cpp b/src/devices/bus/rs232/printer.cpp index ef4f8ef9c38..d3a1d45c3a6 100644 --- a/src/devices/bus/rs232/printer.cpp +++ b/src/devices/bus/rs232/printer.cpp @@ -4,7 +4,7 @@ #include "printer.h" serial_printer_device::serial_printer_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, SERIAL_PRINTER, "Serial Printer", tag, owner, clock, "serial_printer", __FILE__), + : device_t(mconfig, SERIAL_PRINTER, tag, owner, clock), device_serial_interface(mconfig, *this), device_rs232_port_interface(mconfig, *this), m_printer(*this, "printer"), @@ -83,4 +83,4 @@ void serial_printer_device::rcv_complete() m_printer->output(get_received_char()); } -const device_type SERIAL_PRINTER = device_creator; +DEFINE_DEVICE_TYPE(SERIAL_PRINTER, serial_printer_device, "serial_printer", "Serial Printer") diff --git a/src/devices/bus/rs232/printer.h b/src/devices/bus/rs232/printer.h index 9380bf58fed..800003a7760 100644 --- a/src/devices/bus/rs232/printer.h +++ b/src/devices/bus/rs232/printer.h @@ -1,7 +1,7 @@ // license:BSD-3-Clause // copyright-holders:smf -#ifndef __RS232_PRINTER_H__ -#define __RS232_PRINTER_H__ +#ifndef MAME_BUS_RS232_PRINTER_H +#define MAME_BUS_RS232_PRINTER_H #pragma once @@ -39,6 +39,6 @@ private: required_ioport m_rs232_stopbits; }; -extern const device_type SERIAL_PRINTER; +DECLARE_DEVICE_TYPE(SERIAL_PRINTER, serial_printer_device) -#endif +#endif // MAME_BUS_RS232_PRINTER_H diff --git a/src/devices/bus/rs232/pty.cpp b/src/devices/bus/rs232/pty.cpp index 38d7c5f88e7..a324e532fb6 100644 --- a/src/devices/bus/rs232/pty.cpp +++ b/src/devices/bus/rs232/pty.cpp @@ -2,139 +2,141 @@ // copyright-holders:F. Ulivi // #include "emu.h" -#include #include "pty.h" -static const int TIMER_POLL = 1; +#include + + +static constexpr int TIMER_POLL = 1; pseudo_terminal_device::pseudo_terminal_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, PSEUDO_TERMINAL, "Pseudo terminal", tag, owner, clock, "pseudo_terminal", __FILE__), - device_serial_interface(mconfig, *this), - device_rs232_port_interface(mconfig, *this), - device_pty_interface(mconfig, *this), - m_rs232_txbaud(*this, "RS232_TXBAUD"), - m_rs232_rxbaud(*this, "RS232_RXBAUD"), - m_rs232_startbits(*this, "RS232_STARTBITS"), - m_rs232_databits(*this, "RS232_DATABITS"), - m_rs232_parity(*this, "RS232_PARITY"), - m_rs232_stopbits(*this, "RS232_STOPBITS"), - m_input_count(0), - m_input_index(0), - m_timer_poll(nullptr) + device_t(mconfig, PSEUDO_TERMINAL, tag, owner, clock), + device_serial_interface(mconfig, *this), + device_rs232_port_interface(mconfig, *this), + device_pty_interface(mconfig, *this), + m_rs232_txbaud(*this, "RS232_TXBAUD"), + m_rs232_rxbaud(*this, "RS232_RXBAUD"), + m_rs232_startbits(*this, "RS232_STARTBITS"), + m_rs232_databits(*this, "RS232_DATABITS"), + m_rs232_parity(*this, "RS232_PARITY"), + m_rs232_stopbits(*this, "RS232_STOPBITS"), + m_input_count(0), + m_input_index(0), + m_timer_poll(nullptr) { } WRITE_LINE_MEMBER(pseudo_terminal_device::update_serial) { - int startbits = convert_startbits(m_rs232_startbits->read()); - int databits = convert_databits(m_rs232_databits->read()); - parity_t parity = convert_parity(m_rs232_parity->read()); - stop_bits_t stopbits = convert_stopbits(m_rs232_stopbits->read()); + int startbits = convert_startbits(m_rs232_startbits->read()); + int databits = convert_databits(m_rs232_databits->read()); + parity_t parity = convert_parity(m_rs232_parity->read()); + stop_bits_t stopbits = convert_stopbits(m_rs232_stopbits->read()); - set_data_frame(startbits, databits, parity, stopbits); + set_data_frame(startbits, databits, parity, stopbits); - int txbaud = convert_baud(m_rs232_txbaud->read()); - set_tra_rate(txbaud); + int txbaud = convert_baud(m_rs232_txbaud->read()); + set_tra_rate(txbaud); - int rxbaud = convert_baud(m_rs232_rxbaud->read()); - set_rcv_rate(rxbaud); + int rxbaud = convert_baud(m_rs232_rxbaud->read()); + set_rcv_rate(rxbaud); - output_rxd(1); + output_rxd(1); - // TODO: make this configurable - output_dcd(0); - output_dsr(0); - output_cts(0); + // TODO: make this configurable + output_dcd(0); + output_dsr(0); + output_cts(0); } static INPUT_PORTS_START(pseudo_terminal) - MCFG_RS232_BAUD("RS232_TXBAUD", RS232_BAUD_9600, "TX Baud", pseudo_terminal_device, update_serial) - MCFG_RS232_BAUD("RS232_RXBAUD", RS232_BAUD_9600, "RX Baud", pseudo_terminal_device, update_serial) - MCFG_RS232_STARTBITS("RS232_STARTBITS", RS232_STARTBITS_1, "Start Bits", pseudo_terminal_device, update_serial) - MCFG_RS232_DATABITS("RS232_DATABITS", RS232_DATABITS_8, "Data Bits", pseudo_terminal_device, update_serial) - MCFG_RS232_PARITY("RS232_PARITY", RS232_PARITY_NONE, "Parity", pseudo_terminal_device, update_serial) - MCFG_RS232_STOPBITS("RS232_STOPBITS", RS232_STOPBITS_1, "Stop Bits", pseudo_terminal_device, update_serial) + MCFG_RS232_BAUD("RS232_TXBAUD", RS232_BAUD_9600, "TX Baud", pseudo_terminal_device, update_serial) + MCFG_RS232_BAUD("RS232_RXBAUD", RS232_BAUD_9600, "RX Baud", pseudo_terminal_device, update_serial) + MCFG_RS232_STARTBITS("RS232_STARTBITS", RS232_STARTBITS_1, "Start Bits", pseudo_terminal_device, update_serial) + MCFG_RS232_DATABITS("RS232_DATABITS", RS232_DATABITS_8, "Data Bits", pseudo_terminal_device, update_serial) + MCFG_RS232_PARITY("RS232_PARITY", RS232_PARITY_NONE, "Parity", pseudo_terminal_device, update_serial) + MCFG_RS232_STOPBITS("RS232_STOPBITS", RS232_STOPBITS_1, "Stop Bits", pseudo_terminal_device, update_serial) INPUT_PORTS_END ioport_constructor pseudo_terminal_device::device_input_ports() const { - return INPUT_PORTS_NAME(pseudo_terminal); + return INPUT_PORTS_NAME(pseudo_terminal); } void pseudo_terminal_device::device_start() { - m_timer_poll = timer_alloc(TIMER_POLL); + m_timer_poll = timer_alloc(TIMER_POLL); - open(); + open(); } void pseudo_terminal_device::device_stop() { - close(); + close(); } void pseudo_terminal_device::device_reset() { - update_serial(0); - queue(); + update_serial(0); + queue(); } void pseudo_terminal_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) { - switch (id) - { - case TIMER_POLL: - queue(); - break; + switch (id) + { + case TIMER_POLL: + queue(); + break; - default: - device_serial_interface::device_timer(timer, id, param, ptr); - } + default: + device_serial_interface::device_timer(timer, id, param, ptr); + } } void pseudo_terminal_device::tra_callback() { - output_rxd(transmit_register_get_data_bit()); + output_rxd(transmit_register_get_data_bit()); } void pseudo_terminal_device::tra_complete() { - queue(); + queue(); } void pseudo_terminal_device::rcv_complete() { - receive_register_extract(); - write(get_received_char()); + receive_register_extract(); + write(get_received_char()); } void pseudo_terminal_device::queue(void) { - if (is_transmit_register_empty()) + if (is_transmit_register_empty()) + { + if (m_input_index == m_input_count) + { + m_input_index = 0; + int tmp = read(m_input_buffer , sizeof(m_input_buffer)); + if (tmp > 0) { + m_input_count = tmp; + } else { + m_input_count = 0; + } + } + + if (m_input_count != 0) + { + transmit_register_setup(m_input_buffer[ m_input_index++ ]); + + m_timer_poll->adjust(attotime::never); + } + else { - if (m_input_index == m_input_count) - { - m_input_index = 0; - int tmp = read(m_input_buffer , sizeof(m_input_buffer)); - if (tmp > 0) { - m_input_count = tmp; - } else { - m_input_count = 0; - } - } - - if (m_input_count != 0) - { - transmit_register_setup(m_input_buffer[ m_input_index++ ]); - - m_timer_poll->adjust(attotime::never); - } - else - { - int txbaud = convert_baud(m_rs232_txbaud->read()); - m_timer_poll->adjust(attotime::from_hz(txbaud)); - } + int txbaud = convert_baud(m_rs232_txbaud->read()); + m_timer_poll->adjust(attotime::from_hz(txbaud)); } + } } -const device_type PSEUDO_TERMINAL = device_creator; +DEFINE_DEVICE_TYPE(PSEUDO_TERMINAL, pseudo_terminal_device, "pseudo_terminal", "Pseudo terminal") diff --git a/src/devices/bus/rs232/pty.h b/src/devices/bus/rs232/pty.h index ada2bdd0698..8c4c9c69a91 100644 --- a/src/devices/bus/rs232/pty.h +++ b/src/devices/bus/rs232/pty.h @@ -1,8 +1,9 @@ // license:BSD-3-Clause // copyright-holders:F. Ulivi -// -#ifndef _RS232_PTY_H_ -#define _RS232_PTY_H_ +#ifndef MAME_BUS_RS232_PTY_H +#define MAME_BUS_RS232_PTY_H + +#pragma once #include "rs232.h" @@ -12,41 +13,39 @@ class pseudo_terminal_device : public device_t, public device_pty_interface { public: - pseudo_terminal_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + pseudo_terminal_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE_LINE_MEMBER( input_txd ) override { - device_serial_interface::rx_w(state); - } + virtual DECLARE_WRITE_LINE_MEMBER( input_txd ) override { device_serial_interface::rx_w(state); } - DECLARE_WRITE_LINE_MEMBER(update_serial); + DECLARE_WRITE_LINE_MEMBER(update_serial); protected: - virtual ioport_constructor device_input_ports() const override; - virtual void device_start() override; - virtual void device_stop() override; - virtual void device_reset() override; - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + virtual ioport_constructor device_input_ports() const override; + virtual void device_start() override; + virtual void device_stop() override; + virtual void device_reset() override; + virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; - virtual void tra_callback() override; - virtual void tra_complete() override; - virtual void rcv_complete() override; + virtual void tra_callback() override; + virtual void tra_complete() override; + virtual void rcv_complete() override; private: - required_ioport m_rs232_txbaud; - required_ioport m_rs232_rxbaud; - required_ioport m_rs232_startbits; - required_ioport m_rs232_databits; - required_ioport m_rs232_parity; - required_ioport m_rs232_stopbits; - - uint8_t m_input_buffer[ 1024 ]; - uint32_t m_input_count; - uint32_t m_input_index; - emu_timer *m_timer_poll; - - void queue(void); + void queue(void); + + required_ioport m_rs232_txbaud; + required_ioport m_rs232_rxbaud; + required_ioport m_rs232_startbits; + required_ioport m_rs232_databits; + required_ioport m_rs232_parity; + required_ioport m_rs232_stopbits; + + uint8_t m_input_buffer[ 1024 ]; + uint32_t m_input_count; + uint32_t m_input_index; + emu_timer *m_timer_poll; }; -extern const device_type PSEUDO_TERMINAL; +DECLARE_DEVICE_TYPE(PSEUDO_TERMINAL, pseudo_terminal_device) -#endif /* _RS232_PTY_H_ */ +#endif // MAME_BUS_RS232_PTY_H diff --git a/src/devices/bus/rs232/rs232.cpp b/src/devices/bus/rs232/rs232.cpp index 5672d1b1dc1..ddac39b5764 100644 --- a/src/devices/bus/rs232/rs232.cpp +++ b/src/devices/bus/rs232/rs232.cpp @@ -3,27 +3,15 @@ #include "emu.h" #include "rs232.h" -const device_type RS232_PORT = device_creator; +DEFINE_DEVICE_TYPE(RS232_PORT, rs232_port_device, "rs232", "RS232 Port") rs232_port_device::rs232_port_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, RS232_PORT, "RS232 Port", tag, owner, clock, "rs232", __FILE__), - device_slot_interface(mconfig, *this), - m_rxd(0), - m_dcd(0), - m_dsr(0), - m_ri(0), - m_cts(0), - m_rxd_handler(*this), - m_dcd_handler(*this), - m_dsr_handler(*this), - m_ri_handler(*this), - m_cts_handler(*this), - m_dev(nullptr) + rs232_port_device(mconfig, RS232_PORT, tag, owner, clock) { } -rs232_port_device::rs232_port_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), +rs232_port_device::rs232_port_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock), device_slot_interface(mconfig, *this), m_rxd(0), m_dcd(0), diff --git a/src/devices/bus/rs232/rs232.h b/src/devices/bus/rs232/rs232.h index caaa0606b20..395bf2b72cc 100644 --- a/src/devices/bus/rs232/rs232.h +++ b/src/devices/bus/rs232/rs232.h @@ -1,7 +1,7 @@ // license:BSD-3-Clause // copyright-holders:smf,Vas Crabb -#ifndef MAME_BUS_RS232_H -#define MAME_BUS_RS232_H +#ifndef MAME_BUS_RS232_RS232_H +#define MAME_BUS_RS232_RS232_H #pragma once @@ -117,15 +117,14 @@ class rs232_port_device : public device_t, public: rs232_port_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - rs232_port_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); virtual ~rs232_port_device(); // static configuration helpers - template static devcb_base &set_rxd_handler(device_t &device, _Object object) { return downcast(device).m_rxd_handler.set_callback(object); } - template static devcb_base &set_dcd_handler(device_t &device, _Object object) { return downcast(device).m_dcd_handler.set_callback(object); } - template static devcb_base &set_dsr_handler(device_t &device, _Object object) { return downcast(device).m_dsr_handler.set_callback(object); } - template static devcb_base &set_ri_handler(device_t &device, _Object object) { return downcast(device).m_ri_handler.set_callback(object); } - template static devcb_base &set_cts_handler(device_t &device, _Object object) { return downcast(device).m_cts_handler.set_callback(object); } + template static devcb_base &set_rxd_handler(device_t &device, Object &&cb) { return downcast(device).m_rxd_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_dcd_handler(device_t &device, Object &&cb) { return downcast(device).m_dcd_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_dsr_handler(device_t &device, Object &&cb) { return downcast(device).m_dsr_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_ri_handler(device_t &device, Object &&cb) { return downcast(device).m_ri_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_cts_handler(device_t &device, Object &&cb) { return downcast(device).m_cts_handler.set_callback(std::forward(cb)); } DECLARE_WRITE_LINE_MEMBER( write_txd ); DECLARE_WRITE_LINE_MEMBER( write_dtr ); @@ -139,6 +138,8 @@ public: DECLARE_READ_LINE_MEMBER( cts_r ) { return m_cts; } protected: + rs232_port_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; virtual void device_config_complete() override; @@ -163,13 +164,12 @@ class device_rs232_port_interface : public device_slot_card_interface friend class rs232_port_device; public: - device_rs232_port_interface(const machine_config &mconfig, device_t &device); virtual ~device_rs232_port_interface(); - virtual DECLARE_WRITE_LINE_MEMBER( input_txd ) {} - virtual DECLARE_WRITE_LINE_MEMBER( input_dtr ) {} - virtual DECLARE_WRITE_LINE_MEMBER( input_rts ) {} - virtual DECLARE_WRITE_LINE_MEMBER( input_etc ) {} + virtual DECLARE_WRITE_LINE_MEMBER( input_txd ) { } + virtual DECLARE_WRITE_LINE_MEMBER( input_dtr ) { } + virtual DECLARE_WRITE_LINE_MEMBER( input_rts ) { } + virtual DECLARE_WRITE_LINE_MEMBER( input_etc ) { } DECLARE_WRITE_LINE_MEMBER( output_rxd ) { m_port->m_rxd = state; m_port->m_rxd_handler(state); } DECLARE_WRITE_LINE_MEMBER( output_dcd ) { m_port->m_dcd = state; m_port->m_dcd_handler(state); } @@ -178,6 +178,8 @@ public: DECLARE_WRITE_LINE_MEMBER( output_cts ) { m_port->m_cts = state; m_port->m_cts_handler(state); } protected: + device_rs232_port_interface(const machine_config &mconfig, device_t &device); + rs232_port_device *m_port; static int convert_baud(uint8_t baud) @@ -265,8 +267,8 @@ public: } protected: - buffered_rs232_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source) + buffered_rs232_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) , device_buffered_serial_interface(mconfig, *this) , device_rs232_port_interface(mconfig, *this) { @@ -285,8 +287,8 @@ protected: using device_buffered_serial_interface::device_timer; }; -extern const device_type RS232_PORT; +DECLARE_DEVICE_TYPE(RS232_PORT, rs232_port_device) SLOT_INTERFACE_EXTERN( default_rs232_devices ); -#endif // MAME_BUS_RS232_H +#endif // MAME_BUS_RS232_RS232_H diff --git a/src/devices/bus/rs232/ser_mouse.cpp b/src/devices/bus/rs232/ser_mouse.cpp index 508e4072741..d84f9a4d5f3 100644 --- a/src/devices/bus/rs232/ser_mouse.cpp +++ b/src/devices/bus/rs232/ser_mouse.cpp @@ -12,8 +12,8 @@ #include "ser_mouse.h" -serial_mouse_device::serial_mouse_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), +serial_mouse_device::serial_mouse_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock), device_rs232_port_interface(mconfig, *this), device_serial_interface(mconfig, *this), m_dtr(1), @@ -29,17 +29,17 @@ serial_mouse_device::serial_mouse_device(const machine_config &mconfig, device_t { } -const device_type MSFT_SERIAL_MOUSE = device_creator; +DEFINE_DEVICE_TYPE(MSFT_SERIAL_MOUSE, microsoft_mouse_device, "microsoft_mouse", "Microsoft Serial Mouse") microsoft_mouse_device::microsoft_mouse_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : serial_mouse_device(mconfig, MSFT_SERIAL_MOUSE, "Microsoft Serial Mouse", tag, owner, clock, "microsoft_mouse", __FILE__) + : serial_mouse_device(mconfig, MSFT_SERIAL_MOUSE, tag, owner, clock) { } -const device_type MSYSTEM_SERIAL_MOUSE = device_creator; +DEFINE_DEVICE_TYPE(MSYSTEM_SERIAL_MOUSE, mouse_systems_mouse_device, "mouse_systems_mouse", "Mouse Systems Serial Mouse") mouse_systems_mouse_device::mouse_systems_mouse_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : serial_mouse_device(mconfig, MSYSTEM_SERIAL_MOUSE, "Mouse Systems Serial Mouse", tag, owner, clock, "mouse_systems_mouse", __FILE__) + : serial_mouse_device(mconfig, MSYSTEM_SERIAL_MOUSE, tag, owner, clock) { } diff --git a/src/devices/bus/rs232/ser_mouse.h b/src/devices/bus/rs232/ser_mouse.h index 0e001916d83..28d6e73d0d3 100644 --- a/src/devices/bus/rs232/ser_mouse.h +++ b/src/devices/bus/rs232/ser_mouse.h @@ -6,8 +6,8 @@ * ****************************************************************************/ -#ifndef SER_MOUSE_H_ -#define SER_MOUSE_H_ +#ifndef MAME_BUS_RS232_SER_MOUSE_H +#define MAME_BUS_RS232_SER_MOUSE_H #include "rs232.h" @@ -17,13 +17,14 @@ class serial_mouse_device : public device_serial_interface { public: - serial_mouse_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - virtual ioport_constructor device_input_ports() const override; protected: + serial_mouse_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + virtual void mouse_trans(int dx, int dy, int nb, int mbc) = 0; virtual void set_frame() = 0; void set_mouse_enable(bool state); @@ -35,10 +36,13 @@ protected: virtual WRITE_LINE_MEMBER(input_dtr) override; virtual WRITE_LINE_MEMBER(input_rts) override; + int m_dtr; int m_rts; private: + void check_state() { set_mouse_enable(!m_dtr && !m_rts); } + uint8_t m_queue[256]; uint8_t m_head, m_tail, m_mb; @@ -48,8 +52,6 @@ private: required_ioport m_x; required_ioport m_y; required_ioport m_btn; - - void check_state() { set_mouse_enable(!m_dtr && !m_rts); } }; class microsoft_mouse_device : public serial_mouse_device @@ -64,7 +66,7 @@ protected: virtual void mouse_trans(int dx, int dy, int nb, int mbc) override; }; -extern const device_type MSFT_SERIAL_MOUSE; +DECLARE_DEVICE_TYPE(MSFT_SERIAL_MOUSE, microsoft_mouse_device) class mouse_systems_mouse_device : public serial_mouse_device { @@ -76,6 +78,6 @@ protected: virtual void mouse_trans(int dx, int dy, int nb, int mbc) override; }; -extern const device_type MSYSTEM_SERIAL_MOUSE; +DECLARE_DEVICE_TYPE(MSYSTEM_SERIAL_MOUSE, mouse_systems_mouse_device) -#endif /* SER_MOUSE_H_ */ +#endif // MAME_BUS_RS232_SER_MOUSE_H diff --git a/src/devices/bus/rs232/sun_kbd.cpp b/src/devices/bus/rs232/sun_kbd.cpp index a5e851c8d15..7e427efa78a 100644 --- a/src/devices/bus/rs232/sun_kbd.cpp +++ b/src/devices/bus/rs232/sun_kbd.cpp @@ -2,7 +2,7 @@ #include "sun_kbd.h" -device_type const SUN_KBD_ADAPTOR = device_creator; +DEFINE_DEVICE_TYPE(SUN_KBD_ADAPTOR, sun_keyboard_adaptor_device, "sunkbd_adaptor", "Sun Keyboard Adaptor") namespace { @@ -18,7 +18,7 @@ sun_keyboard_adaptor_device::sun_keyboard_adaptor_device( char const *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, SUN_KBD_ADAPTOR, "Sun Keyboard Adaptor", tag, owner, clock, "sunkbd_adaptor", __FILE__) + : device_t(mconfig, SUN_KBD_ADAPTOR, tag, owner, clock) , device_rs232_port_interface(mconfig, *this) , m_keyboard_port(*this, "keyboard") { diff --git a/src/devices/bus/rs232/sun_kbd.h b/src/devices/bus/rs232/sun_kbd.h index 8154eaca57d..681bd5a9781 100644 --- a/src/devices/bus/rs232/sun_kbd.h +++ b/src/devices/bus/rs232/sun_kbd.h @@ -1,7 +1,7 @@ // license:BSD-3-Clause // copyright-holders:Vas Crabb -#ifndef MAME_DEVICES_RS232_SUN_KBD_H -#define MAME_DEVICES_RS232_SUN_KBD_H +#ifndef MAME_BUS_RS232_SUN_KBD_H +#define MAME_BUS_RS232_SUN_KBD_H #pragma once @@ -9,7 +9,7 @@ #include "bus/sunkbd/sunkbd.h" -extern device_type const SUN_KBD_ADAPTOR; +DECLARE_DEVICE_TYPE(SUN_KBD_ADAPTOR, sun_keyboard_adaptor_device) class sun_keyboard_adaptor_device : public device_t, public device_rs232_port_interface @@ -30,4 +30,4 @@ private: required_device m_keyboard_port; }; -#endif // MAME_DEVICES_RS232_SUN_KBD_H +#endif // MAME_BUS_RS232_SUN_KBD_H diff --git a/src/devices/bus/rs232/terminal.cpp b/src/devices/bus/rs232/terminal.cpp index 5835500b5fb..6d28eee7a0b 100644 --- a/src/devices/bus/rs232/terminal.cpp +++ b/src/devices/bus/rs232/terminal.cpp @@ -4,7 +4,7 @@ #include "terminal.h" serial_terminal_device::serial_terminal_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : generic_terminal_device(mconfig, SERIAL_TERMINAL, "Serial Terminal", tag, owner, clock, "serial_terminal", __FILE__) + : generic_terminal_device(mconfig, SERIAL_TERMINAL, tag, owner, clock, TERMINAL_WIDTH, TERMINAL_HEIGHT) , device_buffered_serial_interface(mconfig, *this) , device_rs232_port_interface(mconfig, *this) , m_rs232_txbaud(*this, "RS232_TXBAUD") @@ -93,4 +93,4 @@ void serial_terminal_device::received_byte(uint8_t byte) term_write(byte); } -const device_type SERIAL_TERMINAL = device_creator; +DEFINE_DEVICE_TYPE(SERIAL_TERMINAL, serial_terminal_device, "serial_terminal", "Serial Terminal") diff --git a/src/devices/bus/rs232/terminal.h b/src/devices/bus/rs232/terminal.h index d9c788a1284..e58b882a96d 100644 --- a/src/devices/bus/rs232/terminal.h +++ b/src/devices/bus/rs232/terminal.h @@ -38,6 +38,6 @@ private: required_ioport m_rs232_stopbits; }; -extern const device_type SERIAL_TERMINAL; +DECLARE_DEVICE_TYPE(SERIAL_TERMINAL, serial_terminal_device) #endif // MAME_BUS_RS232_TERMINAL_H diff --git a/src/devices/bus/rs232/xvd701.cpp b/src/devices/bus/rs232/xvd701.cpp index 6b94b0e2cb6..f6f88186044 100644 --- a/src/devices/bus/rs232/xvd701.cpp +++ b/src/devices/bus/rs232/xvd701.cpp @@ -4,7 +4,7 @@ #include "xvd701.h" jvc_xvd701_device::jvc_xvd701_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, JVC_XVD701, "JVC XV-D701", tag, owner, clock, "xvd701", __FILE__), + : device_t(mconfig, JVC_XVD701, tag, owner, clock), device_serial_interface(mconfig, *this), device_rs232_port_interface(mconfig, *this), m_response_index(0), @@ -150,4 +150,4 @@ void jvc_xvd701_device::rcv_complete() } } -const device_type JVC_XVD701 = device_creator; +DEFINE_DEVICE_TYPE(JVC_XVD701, jvc_xvd701_device, "xvd701", "JVC XV-D701") diff --git a/src/devices/bus/rs232/xvd701.h b/src/devices/bus/rs232/xvd701.h index 9c3c361b050..b1a73455d3f 100644 --- a/src/devices/bus/rs232/xvd701.h +++ b/src/devices/bus/rs232/xvd701.h @@ -1,7 +1,7 @@ // license:BSD-3-Clause // copyright-holders:smf -#ifndef JVC_XV701_H_ -#define JVC_XV701_H_ +#ifndef MAME_BUS_RS232_XVD701_H +#define MAME_BUS_RS232_XVD701_H #include "rs232.h" @@ -25,7 +25,7 @@ protected: virtual void rcv_complete() override; private: - static const int TIMER_RESPONSE = 1; + static constexpr int TIMER_RESPONSE = 1; void send_response(); unsigned char sum(unsigned char *buffer, int length); @@ -36,6 +36,6 @@ private: emu_timer *m_timer_response; }; -extern const device_type JVC_XVD701; +DECLARE_DEVICE_TYPE(JVC_XVD701, jvc_xvd701_device) -#endif +#endif // MAME_BUS_RS232_XVD701_H diff --git a/src/devices/bus/s100/dj2db.cpp b/src/devices/bus/s100/dj2db.cpp index f83d7e3a420..f68a879d033 100644 --- a/src/devices/bus/s100/dj2db.cpp +++ b/src/devices/bus/s100/dj2db.cpp @@ -33,7 +33,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type S100_DJ2DB = device_creator; +DEFINE_DEVICE_TYPE(S100_DJ2DB, s100_dj2db_device, "s100_sj2db", "Morrow Disk Jockey 2D/B") //------------------------------------------------- @@ -252,7 +252,7 @@ ioport_constructor s100_dj2db_device::device_input_ports() const //------------------------------------------------- s100_dj2db_device::s100_dj2db_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, S100_DJ2DB, "DJ2DB", tag, owner, clock, "dj2db", __FILE__), + device_t(mconfig, S100_DJ2DB, tag, owner, clock), device_s100_card_interface(mconfig, *this), m_fdc(*this, MB8866_TAG), m_dbrg(*this, BR1941_TAG), diff --git a/src/devices/bus/s100/dj2db.h b/src/devices/bus/s100/dj2db.h index 19f611a5f07..8614a12f34d 100644 --- a/src/devices/bus/s100/dj2db.h +++ b/src/devices/bus/s100/dj2db.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_S100_DJ2DB_H +#define MAME_BUS_S100_DJ2DB_H -#ifndef __S100_DJ2DB__ -#define __S100_DJ2DB__ +#pragma once #include "s100.h" #include "machine/com8116.h" @@ -54,7 +54,7 @@ protected: private: // internal state - required_device m_fdc; + required_device m_fdc; required_device m_dbrg; required_device m_floppy0; required_device m_floppy1; @@ -81,7 +81,6 @@ private: // device type definition -extern const device_type S100_DJ2DB; - +DECLARE_DEVICE_TYPE(S100_DJ2DB, s100_dj2db_device) -#endif +#endif // MAME_BUS_S100_DJ2DB_H diff --git a/src/devices/bus/s100/djdma.cpp b/src/devices/bus/s100/djdma.cpp index ef6b93353a3..c1d04275779 100644 --- a/src/devices/bus/s100/djdma.cpp +++ b/src/devices/bus/s100/djdma.cpp @@ -23,7 +23,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type S100_DJDMA = device_creator; +DEFINE_DEVICE_TYPE(S100_DJDMA, s100_djdma_device, "s100_djdma", "Morrow Disk Jockey/DMA") //------------------------------------------------- @@ -104,7 +104,7 @@ machine_config_constructor s100_djdma_device::device_mconfig_additions() const //------------------------------------------------- s100_djdma_device::s100_djdma_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, S100_DJDMA, "DJDMA", tag, owner, clock, "djdma", __FILE__), + device_t(mconfig, S100_DJDMA, tag, owner, clock), device_s100_card_interface(mconfig, *this) { } diff --git a/src/devices/bus/s100/djdma.h b/src/devices/bus/s100/djdma.h index 083b1a5b05b..3e25ee93f77 100644 --- a/src/devices/bus/s100/djdma.h +++ b/src/devices/bus/s100/djdma.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_S100_DJDMA_H +#define MAME_BUS_S100_DJDMA_H -#ifndef __S100_DJDMA__ -#define __S100_DJDMA__ +#pragma once #include "s100.h" #include "cpu/z80/z80.h" @@ -41,7 +41,6 @@ protected: // device type definition -extern const device_type S100_DJDMA; - +DECLARE_DEVICE_TYPE(S100_DJDMA, s100_djdma_device) -#endif +#endif // MAME_BUS_S100_DJDMA_H diff --git a/src/devices/bus/s100/mm65k16s.cpp b/src/devices/bus/s100/mm65k16s.cpp index 4026d17385e..2cc3edabb58 100644 --- a/src/devices/bus/s100/mm65k16s.cpp +++ b/src/devices/bus/s100/mm65k16s.cpp @@ -22,7 +22,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type S100_MM65K16S = device_creator; +DEFINE_DEVICE_TYPE(S100_MM65K16S, s100_mm65k16s_device, "s100_mm65k16s", "Morrow MM65K16S") //------------------------------------------------- @@ -203,7 +203,7 @@ ioport_constructor s100_mm65k16s_device::device_input_ports() const //------------------------------------------------- s100_mm65k16s_device::s100_mm65k16s_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, S100_MM65K16S, "MM65K16S", tag, owner, clock, "mm65k16s", __FILE__), + device_t(mconfig, S100_MM65K16S, tag, owner, clock), device_s100_card_interface(mconfig, *this), m_ram(*this, "ram") { diff --git a/src/devices/bus/s100/mm65k16s.h b/src/devices/bus/s100/mm65k16s.h index 82028856c05..e46d13f955e 100644 --- a/src/devices/bus/s100/mm65k16s.h +++ b/src/devices/bus/s100/mm65k16s.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_S100_MM65K16S_H +#define MAME_BUS_S100_MM65K16S_H -#ifndef __S100_MM65K16S__ -#define __S100_MM65K16S__ +#pragma once #include "s100.h" @@ -48,7 +48,6 @@ private: // device type definition -extern const device_type S100_MM65K16S; - +DECLARE_DEVICE_TYPE(S100_MM65K16S, s100_mm65k16s_device) -#endif +#endif // MAME_BUS_S100_MM65K16S_H diff --git a/src/devices/bus/s100/nsmdsa.cpp b/src/devices/bus/s100/nsmdsa.cpp index 956dc3b081e..495026c0f37 100644 --- a/src/devices/bus/s100/nsmdsa.cpp +++ b/src/devices/bus/s100/nsmdsa.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type S100_MDS_A = device_creator; +DEFINE_DEVICE_TYPE(S100_MDS_A, s100_mds_a_device, "s100_nsmdsa", "North Star MDS-A") //------------------------------------------------- @@ -83,7 +83,7 @@ machine_config_constructor s100_mds_a_device::device_mconfig_additions() const //------------------------------------------------- s100_mds_a_device::s100_mds_a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, S100_MDS_A, "MDS-A", tag, owner, clock, "nsmdsa", __FILE__), + device_t(mconfig, S100_MDS_A, tag, owner, clock), device_s100_card_interface(mconfig, *this), m_floppy0(*this, "floppy0"), m_floppy1(*this, "floppy1"), diff --git a/src/devices/bus/s100/nsmdsa.h b/src/devices/bus/s100/nsmdsa.h index 875b62b4ca0..3bf167732b6 100644 --- a/src/devices/bus/s100/nsmdsa.h +++ b/src/devices/bus/s100/nsmdsa.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_S100_NSMDSA_H +#define MAME_BUS_S100_NSMDSA_H -#ifndef __S100_MDS_A__ -#define __S100_MDS_A__ +#pragma once #include "s100.h" #include "imagedev/floppy.h" @@ -50,8 +50,6 @@ private: // device type definition -extern const device_type S100_MDS_A; - - +DECLARE_DEVICE_TYPE(S100_MDS_A, s100_mds_a_device) -#endif +#endif // MAME_BUS_S100_NSMDSA_H diff --git a/src/devices/bus/s100/nsmdsad.cpp b/src/devices/bus/s100/nsmdsad.cpp index 4cb2da40d0f..69b98dbef0a 100644 --- a/src/devices/bus/s100/nsmdsad.cpp +++ b/src/devices/bus/s100/nsmdsad.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type S100_MDS_AD = device_creator; +DEFINE_DEVICE_TYPE(S100_MDS_AD, s100_mds_ad_device, "s100_nsmdsad", "North Star MDS-A-D") //------------------------------------------------- @@ -84,7 +84,7 @@ machine_config_constructor s100_mds_ad_device::device_mconfig_additions() const //------------------------------------------------- s100_mds_ad_device::s100_mds_ad_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, S100_MDS_AD, "MDS-A-D", tag, owner, clock, "nsmdsad", __FILE__), + device_t(mconfig, S100_MDS_AD, tag, owner, clock), device_s100_card_interface(mconfig, *this), m_floppy0(*this, "floppy0"), m_floppy1(*this, "floppy1"), diff --git a/src/devices/bus/s100/nsmdsad.h b/src/devices/bus/s100/nsmdsad.h index 54794e906c6..0affdd595c8 100644 --- a/src/devices/bus/s100/nsmdsad.h +++ b/src/devices/bus/s100/nsmdsad.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_S100_NSMDSAD_H +#define MAME_BUS_S100_NSMDSAD_H -#ifndef __S100_MDS_AD__ -#define __S100_MDS_AD__ +#pragma once #include "s100.h" #include "imagedev/floppy.h" @@ -51,8 +51,6 @@ private: // device type definition -extern const device_type S100_MDS_AD; - - +DECLARE_DEVICE_TYPE(S100_MDS_AD, s100_mds_ad_device) -#endif +#endif // MAME_BUS_S100_NSMDSAD_H diff --git a/src/devices/bus/s100/s100.cpp b/src/devices/bus/s100/s100.cpp index 628daf29222..079d41a7a18 100644 --- a/src/devices/bus/s100/s100.cpp +++ b/src/devices/bus/s100/s100.cpp @@ -14,8 +14,8 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type S100_BUS = device_creator; -const device_type S100_SLOT = device_creator; +DEFINE_DEVICE_TYPE(S100_BUS, s100_bus_device, "s100_bus", "S100 bus") +DEFINE_DEVICE_TYPE(S100_SLOT, s100_slot_device, "s100_slot", "S100 slot") @@ -27,8 +27,8 @@ const device_type S100_SLOT = device_creator; // device_s100_card_interface - constructor //------------------------------------------------- -device_s100_card_interface::device_s100_card_interface(const machine_config &mconfig, device_t &device) - : device_slot_card_interface(mconfig, device), +device_s100_card_interface::device_s100_card_interface(const machine_config &mconfig, device_t &device) : + device_slot_card_interface(mconfig, device), m_bus(nullptr), m_next(nullptr) { @@ -36,11 +36,12 @@ device_s100_card_interface::device_s100_card_interface(const machine_config &mco //------------------------------------------------- -// s100_slot_t - constructor +// s100_slot_device - constructor //------------------------------------------------- -s100_slot_t::s100_slot_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, S100_SLOT, "S100 slot", tag, owner, clock, "s100_slot", __FILE__), - device_slot_interface(mconfig, *this), m_bus(nullptr) +s100_slot_device::s100_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, S100_SLOT, tag, owner, clock), + device_slot_interface(mconfig, *this), + m_bus(nullptr) { } @@ -49,20 +50,20 @@ s100_slot_t::s100_slot_t(const machine_config &mconfig, const char *tag, device_ // device_start - device-specific startup //------------------------------------------------- -void s100_slot_t::device_start() +void s100_slot_device::device_start() { - m_bus = machine().device(S100_TAG); + m_bus = machine().device(S100_TAG); device_s100_card_interface *dev = dynamic_cast(get_card_device()); if (dev) m_bus->add_card(dev); } //------------------------------------------------- -// s100_bus_t - constructor +// s100_bus_device - constructor //------------------------------------------------- -s100_bus_t::s100_bus_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, S100_BUS, "S100", tag, owner, clock, "s100", __FILE__), +s100_bus_device::s100_bus_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, S100_BUS, tag, owner, clock), m_write_irq(*this), m_write_nmi(*this), m_write_vi0(*this), @@ -88,7 +89,7 @@ s100_bus_t::s100_bus_t(const machine_config &mconfig, const char *tag, device_t // device_start - device-specific startup //------------------------------------------------- -void s100_bus_t::device_start() +void s100_bus_device::device_start() { // resolve callbacks m_write_irq.resolve_safe(); @@ -115,7 +116,7 @@ void s100_bus_t::device_start() // device_reset - device-specific reset //------------------------------------------------- -void s100_bus_t::device_reset() +void s100_bus_device::device_reset() { } @@ -124,7 +125,7 @@ void s100_bus_t::device_reset() // add_card - add card //------------------------------------------------- -void s100_bus_t::add_card(device_s100_card_interface *card) +void s100_bus_device::add_card(device_s100_card_interface *card) { card->m_bus = this; m_device_list.append(*card); @@ -135,7 +136,7 @@ void s100_bus_t::add_card(device_s100_card_interface *card) // smemr_r - memory read //------------------------------------------------- -READ8_MEMBER( s100_bus_t::smemr_r ) +READ8_MEMBER( s100_bus_device::smemr_r ) { uint8_t data = 0; @@ -155,7 +156,7 @@ READ8_MEMBER( s100_bus_t::smemr_r ) // mwrt_w - memory write //------------------------------------------------- -WRITE8_MEMBER( s100_bus_t::mwrt_w ) +WRITE8_MEMBER( s100_bus_device::mwrt_w ) { device_s100_card_interface *entry = m_device_list.first(); @@ -171,7 +172,7 @@ WRITE8_MEMBER( s100_bus_t::mwrt_w ) // sinp_r - I/O read //------------------------------------------------- -READ8_MEMBER( s100_bus_t::sinp_r ) +READ8_MEMBER( s100_bus_device::sinp_r ) { uint8_t data = 0; @@ -191,7 +192,7 @@ READ8_MEMBER( s100_bus_t::sinp_r ) // sout_w - I/O write //------------------------------------------------- -WRITE8_MEMBER( s100_bus_t::sout_w ) +WRITE8_MEMBER( s100_bus_device::sout_w ) { device_s100_card_interface *entry = m_device_list.first(); diff --git a/src/devices/bus/s100/s100.h b/src/devices/bus/s100/s100.h index 44f2d642770..a4eef9f5f83 100644 --- a/src/devices/bus/s100/s100.h +++ b/src/devices/bus/s100/s100.h @@ -59,10 +59,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_S100_S100_H +#define MAME_BUS_S100_S100_H -#ifndef __S100__ -#define __S100__ +#pragma once @@ -88,55 +88,55 @@ #define MCFG_S100_IRQ_CALLBACK(_write) \ - devcb = &s100_bus_t::set_irq_wr_callback(*device, DEVCB_##_write); + devcb = &s100_bus_device::set_irq_wr_callback(*device, DEVCB_##_write); #define MCFG_S100_NMI_CALLBACK(_write) \ - devcb = &s100_bus_t::set_nmi_wr_callback(*device, DEVCB_##_write); + devcb = &s100_bus_device::set_nmi_wr_callback(*device, DEVCB_##_write); #define MCFG_S100_VI0_CALLBACK(_write) \ - devcb = &s100_bus_t::set_vi0_wr_callback(*device, DEVCB_##_write); + devcb = &s100_bus_device::set_vi0_wr_callback(*device, DEVCB_##_write); #define MCFG_S100_VI1_CALLBACK(_write) \ - devcb = &s100_bus_t::set_vi1_wr_callback(*device, DEVCB_##_write); + devcb = &s100_bus_device::set_vi1_wr_callback(*device, DEVCB_##_write); #define MCFG_S100_VI2_CALLBACK(_write) \ - devcb = &s100_bus_t::set_vi2_wr_callback(*device, DEVCB_##_write); + devcb = &s100_bus_device::set_vi2_wr_callback(*device, DEVCB_##_write); #define MCFG_S100_VI3_CALLBACK(_write) \ - devcb = &s100_bus_t::set_vi3_wr_callback(*device, DEVCB_##_write); + devcb = &s100_bus_device::set_vi3_wr_callback(*device, DEVCB_##_write); #define MCFG_S100_VI4_CALLBACK(_write) \ - devcb = &s100_bus_t::set_vi4_wr_callback(*device, DEVCB_##_write); + devcb = &s100_bus_device::set_vi4_wr_callback(*device, DEVCB_##_write); #define MCFG_S100_VI5_CALLBACK(_write) \ - devcb = &s100_bus_t::set_vi5_wr_callback(*device, DEVCB_##_write); + devcb = &s100_bus_device::set_vi5_wr_callback(*device, DEVCB_##_write); #define MCFG_S100_VI6_CALLBACK(_write) \ - devcb = &s100_bus_t::set_vi6_wr_callback(*device, DEVCB_##_write); + devcb = &s100_bus_device::set_vi6_wr_callback(*device, DEVCB_##_write); #define MCFG_S100_VI7_CALLBACK(_write) \ - devcb = &s100_bus_t::set_vi7_wr_callback(*device, DEVCB_##_write); + devcb = &s100_bus_device::set_vi7_wr_callback(*device, DEVCB_##_write); #define MCFG_S100_DMA0_CALLBACK(_write) \ - devcb = &s100_bus_t::set_dma0_wr_callback(*device, DEVCB_##_write); + devcb = &s100_bus_device::set_dma0_wr_callback(*device, DEVCB_##_write); #define MCFG_S100_DMA1_CALLBACK(_write) \ - devcb = &s100_bus_t::set_dma1_wr_callback(*device, DEVCB_##_write); + devcb = &s100_bus_device::set_dma1_wr_callback(*device, DEVCB_##_write); #define MCFG_S100_DMA2_CALLBACK(_write) \ - devcb = &s100_bus_t::set_dma2_wr_callback(*device, DEVCB_##_write); + devcb = &s100_bus_device::set_dma2_wr_callback(*device, DEVCB_##_write); #define MCFG_S100_DMA3_CALLBACK(_write) \ - devcb = &s100_bus_t::set_dma3_wr_callback(*device, DEVCB_##_write); + devcb = &s100_bus_device::set_dma3_wr_callback(*device, DEVCB_##_write); #define MCFG_S100_RDY_CALLBACK(_write) \ - devcb = &s100_bus_t::set_rdy_wr_callback(*device, DEVCB_##_write); + devcb = &s100_bus_device::set_rdy_wr_callback(*device, DEVCB_##_write); #define MCFG_S100_HOLD_CALLBACK(_write) \ - devcb = &s100_bus_t::set_hold_wr_callback(*device, DEVCB_##_write); + devcb = &s100_bus_device::set_hold_wr_callback(*device, DEVCB_##_write); #define MCFG_S100_ERROR_CALLBACK(_write) \ - devcb = &s100_bus_t::set_error_wr_callback(*device, DEVCB_##_write); + devcb = &s100_bus_device::set_error_wr_callback(*device, DEVCB_##_write); @@ -144,43 +144,40 @@ // TYPE DEFINITIONS //************************************************************************** -class s100_bus_t; +class s100_bus_device; // ======================> device_s100_card_interface class device_s100_card_interface : public device_slot_card_interface { - friend class s100_bus_t; + friend class s100_bus_device; + template friend class simple_list; public: - // construction/destruction - device_s100_card_interface(const machine_config &mconfig, device_t &device); - virtual ~device_s100_card_interface() { } - device_s100_card_interface *next() const { return m_next; } // interrupts - virtual void s100_int_w(int state) { }; - virtual void s100_nmi_w(int state) { }; - virtual uint8_t s100_sinta_r(offs_t offset) { return 0; }; + virtual void s100_int_w(int state) { } + virtual void s100_nmi_w(int state) { } + virtual uint8_t s100_sinta_r(offs_t offset) { return 0; } // vectored interrupts - virtual void s100_vi0_w(int state) { }; - virtual void s100_vi1_w(int state) { }; - virtual void s100_vi2_w(int state) { }; - virtual void s100_vi3_w(int state) { }; - virtual void s100_vi4_w(int state) { }; - virtual void s100_vi5_w(int state) { }; - virtual void s100_vi6_w(int state) { }; - virtual void s100_vi7_w(int state) { }; + virtual void s100_vi0_w(int state) { } + virtual void s100_vi1_w(int state) { } + virtual void s100_vi2_w(int state) { } + virtual void s100_vi3_w(int state) { } + virtual void s100_vi4_w(int state) { } + virtual void s100_vi5_w(int state) { } + virtual void s100_vi6_w(int state) { } + virtual void s100_vi7_w(int state) { } // memory access - virtual uint8_t s100_smemr_r(address_space &space, offs_t offset) { return 0; }; - virtual void s100_mwrt_w(address_space &space, offs_t offset, uint8_t data) { }; + virtual uint8_t s100_smemr_r(address_space &space, offs_t offset) { return 0; } + virtual void s100_mwrt_w(address_space &space, offs_t offset, uint8_t data) { } // I/O access - virtual uint8_t s100_sinp_r(address_space &space, offs_t offset) { return 0; }; - virtual void s100_sout_w(address_space &space, offs_t offset, uint8_t data) { }; + virtual uint8_t s100_sinp_r(address_space &space, offs_t offset) { return 0; } + virtual void s100_sout_w(address_space &space, offs_t offset, uint8_t data) { } // configuration access virtual void s100_phlda_w(int state) { } @@ -194,39 +191,44 @@ public: virtual void s100_reset_w(int state) { } virtual void s100_slave_clr_w(int state) { } -public: - s100_bus_t *m_bus; +protected: + // construction/destruction + device_s100_card_interface(const machine_config &mconfig, device_t &device); + + s100_bus_device *m_bus; + +private: device_s100_card_interface *m_next; }; -// ======================> s100_bus_t +// ======================> s100_bus_device -class s100_bus_t : public device_t +class s100_bus_device : public device_t { public: // construction/destruction - s100_bus_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~s100_bus_t() { m_device_list.detach_all(); } - - template static devcb_base &set_irq_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_irq.set_callback(object); } - template static devcb_base &set_nmi_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_nmi.set_callback(object); } - template static devcb_base &set_vi0_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_vi0.set_callback(object); } - template static devcb_base &set_vi1_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_vi1.set_callback(object); } - template static devcb_base &set_vi2_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_vi2.set_callback(object); } - template static devcb_base &set_vi3_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_vi3.set_callback(object); } - template static devcb_base &set_vi4_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_vi4.set_callback(object); } - template static devcb_base &set_vi5_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_vi5.set_callback(object); } - template static devcb_base &set_vi6_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_vi6.set_callback(object); } - template static devcb_base &set_vi7_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_vi7.set_callback(object); } - template static devcb_base &set_dma0_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_dma0.set_callback(object); } - template static devcb_base &set_dma1_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_dma1.set_callback(object); } - template static devcb_base &set_dma2_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_dma2.set_callback(object); } - template static devcb_base &set_dma3_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_dma3.set_callback(object); } - template static devcb_base &set_rdy_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_rdy.set_callback(object); } - template static devcb_base &set_hold_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_hold.set_callback(object); } - template static devcb_base &set_error_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_error.set_callback(object); } + s100_bus_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + ~s100_bus_device() { m_device_list.detach_all(); } + + template static devcb_base &set_irq_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_irq.set_callback(std::forward(cb)); } + template static devcb_base &set_nmi_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_nmi.set_callback(std::forward(cb)); } + template static devcb_base &set_vi0_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_vi0.set_callback(std::forward(cb)); } + template static devcb_base &set_vi1_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_vi1.set_callback(std::forward(cb)); } + template static devcb_base &set_vi2_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_vi2.set_callback(std::forward(cb)); } + template static devcb_base &set_vi3_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_vi3.set_callback(std::forward(cb)); } + template static devcb_base &set_vi4_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_vi4.set_callback(std::forward(cb)); } + template static devcb_base &set_vi5_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_vi5.set_callback(std::forward(cb)); } + template static devcb_base &set_vi6_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_vi6.set_callback(std::forward(cb)); } + template static devcb_base &set_vi7_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_vi7.set_callback(std::forward(cb)); } + template static devcb_base &set_dma0_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_dma0.set_callback(std::forward(cb)); } + template static devcb_base &set_dma1_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_dma1.set_callback(std::forward(cb)); } + template static devcb_base &set_dma2_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_dma2.set_callback(std::forward(cb)); } + template static devcb_base &set_dma3_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_dma3.set_callback(std::forward(cb)); } + template static devcb_base &set_rdy_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_rdy.set_callback(std::forward(cb)); } + template static devcb_base &set_hold_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_hold.set_callback(std::forward(cb)); } + template static devcb_base &set_error_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_error.set_callback(std::forward(cb)); } void add_card(device_s100_card_interface *card); @@ -282,29 +284,25 @@ private: }; -// ======================> s100_slot_t +// ======================> s100_slot_device -class s100_slot_t : public device_t, - public device_slot_interface +class s100_slot_device : public device_t, public device_slot_interface { public: // construction/destruction - s100_slot_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + s100_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // device-level overrides virtual void device_start() override; private: - s100_bus_t *m_bus; + s100_bus_device *m_bus; }; // device type definition -extern const device_type S100_BUS; -extern const device_type S100_SLOT; - - - +DECLARE_DEVICE_TYPE(S100_BUS, s100_bus_device) +DECLARE_DEVICE_TYPE(S100_SLOT, s100_slot_device) -#endif +#endif // MAME_BUS_S100_S100_H diff --git a/src/devices/bus/s100/wunderbus.cpp b/src/devices/bus/s100/wunderbus.cpp index 09ee10d71e1..dd89f1c5d52 100644 --- a/src/devices/bus/s100/wunderbus.cpp +++ b/src/devices/bus/s100/wunderbus.cpp @@ -31,7 +31,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type S100_WUNDERBUS = device_creator; +DEFINE_DEVICE_TYPE(S100_WUNDERBUS, s100_wunderbus_device, "s100_wunderbus", "Morrow Winderbus I/O") //------------------------------------------------- @@ -238,7 +238,7 @@ ioport_constructor s100_wunderbus_device::device_input_ports() const //------------------------------------------------- s100_wunderbus_device::s100_wunderbus_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, S100_WUNDERBUS, "Wunderbus I/O", tag, owner, clock, "s100_wunderbus", __FILE__), + device_t(mconfig, S100_WUNDERBUS, tag, owner, clock), device_s100_card_interface(mconfig, *this), m_pic(*this, I8259A_TAG), m_ace1(*this, INS8250_1_TAG), diff --git a/src/devices/bus/s100/wunderbus.h b/src/devices/bus/s100/wunderbus.h index 5d2e37ed48b..4b1d5554e06 100644 --- a/src/devices/bus/s100/wunderbus.h +++ b/src/devices/bus/s100/wunderbus.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_S100_WUNDERBUS_H +#define MAME_BUS_S100_WUNDERBUS_H -#ifndef __S100_WUNDERBUS__ -#define __S100_WUNDERBUS__ +#pragma once #include "s100.h" #include "machine/ins8250.h" @@ -66,7 +66,6 @@ private: // device type definition -extern const device_type S100_WUNDERBUS; - +DECLARE_DEVICE_TYPE(S100_WUNDERBUS, s100_wunderbus_device) -#endif +#endif // MAME_BUS_S100_WUNDERBUS_H diff --git a/src/devices/bus/sat_ctrl/analog.cpp b/src/devices/bus/sat_ctrl/analog.cpp index 1ac30a9bd3a..6e513b18d47 100644 --- a/src/devices/bus/sat_ctrl/analog.cpp +++ b/src/devices/bus/sat_ctrl/analog.cpp @@ -13,7 +13,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type SATURN_ANALOG = device_creator; +DEFINE_DEVICE_TYPE(SATURN_ANALOG, saturn_analog_device, "saturn_analog", "Sega Saturn Analog Controller") static INPUT_PORTS_START( saturn_analog ) @@ -64,12 +64,12 @@ ioport_constructor saturn_analog_device::device_input_ports() const //------------------------------------------------- saturn_analog_device::saturn_analog_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, SATURN_ANALOG, "Sega Saturn Analog Controller", tag, owner, clock, "saturn_analog", __FILE__), - device_saturn_control_port_interface(mconfig, *this), - m_joy(*this, "JOY"), - m_anx(*this, "ANALOG_X"), - m_any(*this, "ANALOG_Y"), - m_anz(*this, "ANALOG_Z") + device_t(mconfig, SATURN_ANALOG, tag, owner, clock), + device_saturn_control_port_interface(mconfig, *this), + m_joy(*this, "JOY"), + m_anx(*this, "ANALOG_X"), + m_any(*this, "ANALOG_Y"), + m_anz(*this, "ANALOG_Z") { m_ctrl_id = 0x15; } diff --git a/src/devices/bus/sat_ctrl/analog.h b/src/devices/bus/sat_ctrl/analog.h index ec3d211a059..d86313e59a1 100644 --- a/src/devices/bus/sat_ctrl/analog.h +++ b/src/devices/bus/sat_ctrl/analog.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_SAT_CTRL_ANALOG_H +#define MAME_BUS_SAT_CTRL_ANALOG_H -#ifndef __SATURN_ANALOG__ -#define __SATURN_ANALOG__ +#pragma once #include "ctrl.h" @@ -49,7 +49,6 @@ private: // device type definition -extern const device_type SATURN_ANALOG; - +DECLARE_DEVICE_TYPE(SATURN_ANALOG, saturn_analog_device) -#endif +#endif // MAME_BUS_SAT_CTRL_ANALOG_H diff --git a/src/devices/bus/sat_ctrl/ctrl.cpp b/src/devices/bus/sat_ctrl/ctrl.cpp index 24239d0c67f..93a09176aa4 100644 --- a/src/devices/bus/sat_ctrl/ctrl.cpp +++ b/src/devices/bus/sat_ctrl/ctrl.cpp @@ -8,6 +8,7 @@ #include "emu.h" #include "ctrl.h" + // slot devices #include "analog.h" #include "joy.h" @@ -24,7 +25,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type SATURN_CONTROL_PORT = device_creator; +DEFINE_DEVICE_TYPE(SATURN_CONTROL_PORT, saturn_control_port_device, "saturn_control_port", "Sega Saturn controller port") //************************************************************************** @@ -60,8 +61,8 @@ device_saturn_control_port_interface::~device_saturn_control_port_interface() //------------------------------------------------- saturn_control_port_device::saturn_control_port_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, SATURN_CONTROL_PORT, "Sega Saturn control port", tag, owner, clock, "saturn_control_port", __FILE__), - device_slot_interface(mconfig, *this), m_device(nullptr) + device_t(mconfig, SATURN_CONTROL_PORT, tag, owner, clock), + device_slot_interface(mconfig, *this), m_device(nullptr) { } diff --git a/src/devices/bus/sat_ctrl/ctrl.h b/src/devices/bus/sat_ctrl/ctrl.h index 3a03cd2234e..13e30459c01 100644 --- a/src/devices/bus/sat_ctrl/ctrl.h +++ b/src/devices/bus/sat_ctrl/ctrl.h @@ -7,10 +7,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_SAT_CTRL_CTRL_H +#define MAME_BUS_SAT_CTRL_CTRL_H -#ifndef __SATURN_CONTROL_PORT__ -#define __SATURN_CONTROL_PORT__ +#pragma once //************************************************************************** @@ -25,15 +25,16 @@ class device_saturn_control_port_interface : public device_slot_card_interface { public: // construction/destruction - device_saturn_control_port_interface(const machine_config &mconfig, device_t &device); virtual ~device_saturn_control_port_interface(); - virtual uint16_t read_direct() { return 0; }; - virtual uint8_t read_ctrl(uint8_t offset) { return 0; }; - virtual uint8_t read_status() { return 0xf0; }; - virtual uint8_t read_id(int idx) { return 0xff; }; + virtual uint16_t read_direct() { return 0; } + virtual uint8_t read_ctrl(uint8_t offset) { return 0; } + virtual uint8_t read_status() { return 0xf0; } + virtual uint8_t read_id(int idx) { return 0xff; } protected: + device_saturn_control_port_interface(const machine_config &mconfig, device_t &device); + uint8_t m_ctrl_id; saturn_control_port_device *m_port; }; @@ -62,7 +63,7 @@ protected: // device type definition -extern const device_type SATURN_CONTROL_PORT; +DECLARE_DEVICE_TYPE(SATURN_CONTROL_PORT, saturn_control_port_device) //************************************************************************** @@ -78,4 +79,4 @@ SLOT_INTERFACE_EXTERN( saturn_controls ); SLOT_INTERFACE_EXTERN( saturn_joys ); -#endif +#endif // MAME_BUS_SAT_CTRL_CTRL_H diff --git a/src/devices/bus/sat_ctrl/joy.cpp b/src/devices/bus/sat_ctrl/joy.cpp index cabc0438304..f44b0f6b4ee 100644 --- a/src/devices/bus/sat_ctrl/joy.cpp +++ b/src/devices/bus/sat_ctrl/joy.cpp @@ -13,7 +13,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type SATURN_JOY = device_creator; +DEFINE_DEVICE_TYPE(SATURN_JOY, saturn_joy_device, "saturn_joy", "Sega Saturn Joypad") static INPUT_PORTS_START( saturn_joy ) @@ -55,9 +55,9 @@ ioport_constructor saturn_joy_device::device_input_ports() const //------------------------------------------------- saturn_joy_device::saturn_joy_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, SATURN_JOY, "Sega Saturn Joypad", tag, owner, clock, "saturn_joy", __FILE__), - device_saturn_control_port_interface(mconfig, *this), - m_joy(*this, "JOY") + device_t(mconfig, SATURN_JOY, tag, owner, clock), + device_saturn_control_port_interface(mconfig, *this), + m_joy(*this, "JOY") { m_ctrl_id = 0x02; } diff --git a/src/devices/bus/sat_ctrl/joy.h b/src/devices/bus/sat_ctrl/joy.h index 6a9b4ca24f7..b4e124fc034 100644 --- a/src/devices/bus/sat_ctrl/joy.h +++ b/src/devices/bus/sat_ctrl/joy.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_SAT_CTRL_JOY_H +#define MAME_BUS_SAT_CTRL_JOY_H -#ifndef __SATURN_JOY__ -#define __SATURN_JOY__ +#pragma once #include "ctrl.h" @@ -47,7 +47,6 @@ private: // device type definition -extern const device_type SATURN_JOY; - +DECLARE_DEVICE_TYPE(SATURN_JOY, saturn_joy_device) -#endif +#endif // MAME_BUS_SAT_CTRL_JOY_H diff --git a/src/devices/bus/sat_ctrl/joy_md.cpp b/src/devices/bus/sat_ctrl/joy_md.cpp index bb6f076b127..987dffcf528 100644 --- a/src/devices/bus/sat_ctrl/joy_md.cpp +++ b/src/devices/bus/sat_ctrl/joy_md.cpp @@ -13,8 +13,8 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type SATURN_JOYMD3B = device_creator; -const device_type SATURN_JOYMD6B = device_creator; +DEFINE_DEVICE_TYPE(SATURN_JOYMD3B, saturn_joymd3b_device, "saturn_md3b", "Sega Saturn Joypad MD 3buttons") +DEFINE_DEVICE_TYPE(SATURN_JOYMD6B, saturn_joymd6b_device, "saturn_md6b", "Sega Saturn Joypad MD 6buttons") static INPUT_PORTS_START( saturn_md3b ) PORT_START("JOY") @@ -71,18 +71,18 @@ ioport_constructor saturn_joymd6b_device::device_input_ports() const //------------------------------------------------- saturn_joymd3b_device::saturn_joymd3b_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, SATURN_JOYMD3B, "Sega Saturn Joypad MD 3buttons", tag, owner, clock, "saturn_md3b", __FILE__), - device_saturn_control_port_interface(mconfig, *this), - m_joy(*this, "JOY") + device_t(mconfig, SATURN_JOYMD3B, tag, owner, clock), + device_saturn_control_port_interface(mconfig, *this), + m_joy(*this, "JOY") { m_ctrl_id = 0xe1; } saturn_joymd6b_device::saturn_joymd6b_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, SATURN_JOYMD6B, "Sega Saturn Joypad MD 6buttons", tag, owner, clock, "saturn_md6b", __FILE__), - device_saturn_control_port_interface(mconfig, *this), - m_joy(*this, "JOY") + device_t(mconfig, SATURN_JOYMD6B, tag, owner, clock), + device_saturn_control_port_interface(mconfig, *this), + m_joy(*this, "JOY") { m_ctrl_id = 0xe2; } diff --git a/src/devices/bus/sat_ctrl/joy_md.h b/src/devices/bus/sat_ctrl/joy_md.h index 5649e5579fc..845c6bce9da 100644 --- a/src/devices/bus/sat_ctrl/joy_md.h +++ b/src/devices/bus/sat_ctrl/joy_md.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_SAT_CTRL_JOY_MD_H +#define MAME_BUS_SAT_CTRL_JOY_MD_H -#ifndef __SATURN_MDJOY__ -#define __SATURN_MDJOY__ +#pragma once #include "ctrl.h" @@ -32,8 +32,8 @@ public: protected: // device-level overrides - virtual void device_start() override {}; - virtual void device_reset() override {}; + virtual void device_start() override { } + virtual void device_reset() override { } // device_saturn_control_port_interface overrides virtual uint8_t read_ctrl(uint8_t offset) override; @@ -59,8 +59,8 @@ public: protected: // device-level overrides - virtual void device_start() override {}; - virtual void device_reset() override {}; + virtual void device_start() override { } + virtual void device_reset() override { } // device_saturn_control_port_interface overrides virtual uint8_t read_ctrl(uint8_t offset) override; @@ -73,8 +73,8 @@ private: // device type definition -extern const device_type SATURN_JOYMD3B; -extern const device_type SATURN_JOYMD6B; +DECLARE_DEVICE_TYPE(SATURN_JOYMD3B, saturn_joymd3b_device) +DECLARE_DEVICE_TYPE(SATURN_JOYMD6B, saturn_joymd6b_device) -#endif +#endif // MAME_BUS_SAT_CTRL_JOY_MD_H diff --git a/src/devices/bus/sat_ctrl/keybd.cpp b/src/devices/bus/sat_ctrl/keybd.cpp index 6d11b798c9f..be8803e479f 100644 --- a/src/devices/bus/sat_ctrl/keybd.cpp +++ b/src/devices/bus/sat_ctrl/keybd.cpp @@ -13,10 +13,10 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type SATURN_KEYBD = device_creator; +DEFINE_DEVICE_TYPE(SATURN_KEYBD, saturn_keybd_device, "saturn_keybd", "Sega Saturn Keyboard") -static INPUT_PORTS_START( saturn_joy ) +static INPUT_PORTS_START( saturn_keybd ) // TODO: there's no info about the keycode used on Saturn keyboard, the following is trial & error with Game Basic software PORT_START("KEY.0") // 0x00 - 0x07 PORT_BIT(0x01,IP_ACTIVE_HIGH,IPT_UNUSED) @@ -194,7 +194,7 @@ INPUT_PORTS_END ioport_constructor saturn_keybd_device::device_input_ports() const { - return INPUT_PORTS_NAME( saturn_joy ); + return INPUT_PORTS_NAME( saturn_keybd ); } @@ -207,10 +207,10 @@ ioport_constructor saturn_keybd_device::device_input_ports() const //------------------------------------------------- saturn_keybd_device::saturn_keybd_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, SATURN_KEYBD, "Sega Saturn Keyboard", tag, owner, clock, "saturn_keybd", __FILE__), - device_saturn_control_port_interface(mconfig, *this), - m_key(*this, "KEY.%u", 0), - m_key_s1(*this, "KEYS_1") + device_t(mconfig, SATURN_KEYBD, tag, owner, clock), + device_saturn_control_port_interface(mconfig, *this), + m_key(*this, "KEY.%u", 0), + m_key_s1(*this, "KEYS_1") { m_ctrl_id = 0x34; } diff --git a/src/devices/bus/sat_ctrl/keybd.h b/src/devices/bus/sat_ctrl/keybd.h index f3d6b5c6b48..dafb932974c 100644 --- a/src/devices/bus/sat_ctrl/keybd.h +++ b/src/devices/bus/sat_ctrl/keybd.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_SAT_CTRL_KEYBD_H +#define MAME_BUS_SAT_CTRL_KEYBD_H -#ifndef __SATURN_KEYBD__ -#define __SATURN_KEYBD__ +#pragma once #include "ctrl.h" @@ -55,7 +55,6 @@ private: }; // device type definition -extern const device_type SATURN_KEYBD; - +DECLARE_DEVICE_TYPE(SATURN_KEYBD, saturn_keybd_device) -#endif +#endif // MAME_BUS_SAT_CTRL_KEYBD_H diff --git a/src/devices/bus/sat_ctrl/mouse.cpp b/src/devices/bus/sat_ctrl/mouse.cpp index 957a3ce2d81..acef9feb8fd 100644 --- a/src/devices/bus/sat_ctrl/mouse.cpp +++ b/src/devices/bus/sat_ctrl/mouse.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type SATURN_MOUSE = device_creator; +DEFINE_DEVICE_TYPE(SATURN_MOUSE, saturn_mouse_device, "saturn_mouse", "Sega Saturn Mouse") static INPUT_PORTS_START( saturn_mouse ) @@ -52,11 +52,11 @@ ioport_constructor saturn_mouse_device::device_input_ports() const //------------------------------------------------- saturn_mouse_device::saturn_mouse_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, SATURN_MOUSE, "Sega Saturn Mouse", tag, owner, clock, "saturn_mouse", __FILE__), - device_saturn_control_port_interface(mconfig, *this), - m_pointx(*this, "MOUSE_X"), - m_pointy(*this, "MOUSE_Y"), - m_buttons(*this, "BUTTONS") + device_t(mconfig, SATURN_MOUSE, tag, owner, clock), + device_saturn_control_port_interface(mconfig, *this), + m_pointx(*this, "MOUSE_X"), + m_pointy(*this, "MOUSE_Y"), + m_buttons(*this, "BUTTONS") { m_ctrl_id = 0xe3; } diff --git a/src/devices/bus/sat_ctrl/mouse.h b/src/devices/bus/sat_ctrl/mouse.h index c30b011a6db..2b896ca6b49 100644 --- a/src/devices/bus/sat_ctrl/mouse.h +++ b/src/devices/bus/sat_ctrl/mouse.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_SAT_CTRL_MOUSE_H +#define MAME_BUS_SAT_CTRL_MOUSE_H -#ifndef __SATURN_MOUSE__ -#define __SATURN_MOUSE__ +#pragma once #include "ctrl.h" @@ -48,7 +48,6 @@ private: // device type definition -extern const device_type SATURN_MOUSE; - +DECLARE_DEVICE_TYPE(SATURN_MOUSE, saturn_mouse_device) -#endif +#endif // MAME_BUS_SAT_CTRL_MOUSE_H diff --git a/src/devices/bus/sat_ctrl/multitap.cpp b/src/devices/bus/sat_ctrl/multitap.cpp index 8ab7f675e61..bb42e179d5c 100644 --- a/src/devices/bus/sat_ctrl/multitap.cpp +++ b/src/devices/bus/sat_ctrl/multitap.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type SATURN_MULTITAP = device_creator; +DEFINE_DEVICE_TYPE(SATURN_MULTITAP, saturn_multitap_device, "saturn_multitap", "Sega Saturn Multitap") //************************************************************************** @@ -27,7 +27,7 @@ const device_type SATURN_MULTITAP = device_creator; //------------------------------------------------- saturn_multitap_device::saturn_multitap_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, SATURN_MULTITAP, "Sega Saturn Multitap", tag, owner, clock, "saturn_multitap", __FILE__), + device_t(mconfig, SATURN_MULTITAP, tag, owner, clock), device_saturn_control_port_interface(mconfig, *this), m_subctrl1_port(*this, "ctrl1"), m_subctrl2_port(*this, "ctrl2"), diff --git a/src/devices/bus/sat_ctrl/multitap.h b/src/devices/bus/sat_ctrl/multitap.h index 646a03478af..ac77e73989a 100644 --- a/src/devices/bus/sat_ctrl/multitap.h +++ b/src/devices/bus/sat_ctrl/multitap.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_SAT_CTRL_MULTITAP_H +#define MAME_BUS_SAT_CTRL_MULTITAP_H -#ifndef __SATURN_MULTITAP__ -#define __SATURN_MULTITAP__ +#pragma once #include "ctrl.h" @@ -53,7 +53,6 @@ private: // device type definition -extern const device_type SATURN_MULTITAP; - +DECLARE_DEVICE_TYPE(SATURN_MULTITAP, saturn_multitap_device) -#endif +#endif // MAME_BUS_SAT_CTRL_MULTITAP_H diff --git a/src/devices/bus/sat_ctrl/pointer.cpp b/src/devices/bus/sat_ctrl/pointer.cpp index 11c73615b45..10eceae1a2d 100644 --- a/src/devices/bus/sat_ctrl/pointer.cpp +++ b/src/devices/bus/sat_ctrl/pointer.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type SATURN_TRACK = device_creator; +DEFINE_DEVICE_TYPE(SATURN_TRACK, saturn_track_device, "saturn_track", "Sega Saturn Pointing Controller / Trackball") static INPUT_PORTS_START( saturn_track ) @@ -52,11 +52,11 @@ ioport_constructor saturn_track_device::device_input_ports() const //------------------------------------------------- saturn_track_device::saturn_track_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, SATURN_TRACK, "Sega Saturn Pointing Controller / Trackball", tag, owner, clock, "saturn_track", __FILE__), - device_saturn_control_port_interface(mconfig, *this), - m_pointx(*this, "POINT_X"), - m_pointy(*this, "POINT_Y"), - m_buttons(*this, "BUTTONS") + device_t(mconfig, SATURN_TRACK, tag, owner, clock), + device_saturn_control_port_interface(mconfig, *this), + m_pointx(*this, "POINT_X"), + m_pointy(*this, "POINT_Y"), + m_buttons(*this, "BUTTONS") { m_ctrl_id = 0x23; } diff --git a/src/devices/bus/sat_ctrl/pointer.h b/src/devices/bus/sat_ctrl/pointer.h index f2ed9e47779..869455706ef 100644 --- a/src/devices/bus/sat_ctrl/pointer.h +++ b/src/devices/bus/sat_ctrl/pointer.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_SAT_CTRL_POINTER_H +#define MAME_BUS_SAT_CTRL_POINTER_H -#ifndef __SATURN_TRACK__ -#define __SATURN_TRACK__ +#pragma once #include "ctrl.h" @@ -48,7 +48,6 @@ private: // device type definition -extern const device_type SATURN_TRACK; - +DECLARE_DEVICE_TYPE(SATURN_TRACK, saturn_track_device) -#endif +#endif // MAME_BUS_SAT_CTRL_POINTER_H diff --git a/src/devices/bus/sat_ctrl/racing.cpp b/src/devices/bus/sat_ctrl/racing.cpp index fac3d6506f2..91444de2b6a 100644 --- a/src/devices/bus/sat_ctrl/racing.cpp +++ b/src/devices/bus/sat_ctrl/racing.cpp @@ -13,7 +13,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type SATURN_WHEEL = device_creator; +DEFINE_DEVICE_TYPE(SATURN_WHEEL, saturn_wheel_device, "saturn_racing", "Sega Saturn Racing Wheel") static INPUT_PORTS_START( saturn_racing ) @@ -58,10 +58,10 @@ ioport_constructor saturn_wheel_device::device_input_ports() const //------------------------------------------------- saturn_wheel_device::saturn_wheel_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, SATURN_WHEEL, "Sega Saturn Racing Wheel", tag, owner, clock, "saturn_racing", __FILE__), - device_saturn_control_port_interface(mconfig, *this), - m_joy(*this, "JOY"), - m_anx(*this, "ANALOG_X") + device_t(mconfig, SATURN_WHEEL, tag, owner, clock), + device_saturn_control_port_interface(mconfig, *this), + m_joy(*this, "JOY"), + m_anx(*this, "ANALOG_X") { m_ctrl_id = 0x13; } diff --git a/src/devices/bus/sat_ctrl/racing.h b/src/devices/bus/sat_ctrl/racing.h index 93186b797cf..9f426c9ef51 100644 --- a/src/devices/bus/sat_ctrl/racing.h +++ b/src/devices/bus/sat_ctrl/racing.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_SAT_CTRL_RACING_H +#define MAME_BUS_SAT_CTRL_RACING_H -#ifndef __SATURN_RACING__ -#define __SATURN_RACING__ +#pragma once #include "ctrl.h" @@ -47,7 +47,6 @@ private: // device type definition -extern const device_type SATURN_WHEEL; - +DECLARE_DEVICE_TYPE(SATURN_WHEEL, saturn_wheel_device) -#endif +#endif // MAME_BUS_SAT_CTRL_RACING_H diff --git a/src/devices/bus/sat_ctrl/segatap.cpp b/src/devices/bus/sat_ctrl/segatap.cpp index 480b9b91da5..f3121cfedf2 100644 --- a/src/devices/bus/sat_ctrl/segatap.cpp +++ b/src/devices/bus/sat_ctrl/segatap.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type SATURN_SEGATAP = device_creator; +DEFINE_DEVICE_TYPE(SATURN_SEGATAP, saturn_segatap_device, "saturn_segatap", "saturn_segatap_device") //************************************************************************** @@ -27,7 +27,7 @@ const device_type SATURN_SEGATAP = device_creator; //------------------------------------------------- saturn_segatap_device::saturn_segatap_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, SATURN_SEGATAP, "Sega Saturn SegaTap", tag, owner, clock, "saturn_segatap", __FILE__), + device_t(mconfig, SATURN_SEGATAP, tag, owner, clock), device_saturn_control_port_interface(mconfig, *this), m_subctrl1_port(*this, "ctrl1"), m_subctrl2_port(*this, "ctrl2"), diff --git a/src/devices/bus/sat_ctrl/segatap.h b/src/devices/bus/sat_ctrl/segatap.h index 6508eb5d245..151eebd24a1 100644 --- a/src/devices/bus/sat_ctrl/segatap.h +++ b/src/devices/bus/sat_ctrl/segatap.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_SAT_CTRL_SEGATAP_H +#define MAME_BUS_SAT_CTRL_SEGATAP_H -#ifndef __SATURN_SEGATAP__ -#define __SATURN_SEGATAP__ +#pragma once #include "ctrl.h" @@ -51,7 +51,6 @@ private: // device type definition -extern const device_type SATURN_SEGATAP; - +DECLARE_DEVICE_TYPE(SATURN_SEGATAP, saturn_segatap_device) -#endif +#endif // MAME_BUS_SAT_CTRL_SEGATAP_H diff --git a/src/devices/bus/saturn/bram.cpp b/src/devices/bus/saturn/bram.cpp index 9178f1210ee..cdcc7ad4376 100644 --- a/src/devices/bus/saturn/bram.cpp +++ b/src/devices/bus/saturn/bram.cpp @@ -15,41 +15,37 @@ // constructor //------------------------------------------------- -const device_type SATURN_BRAM_4MB = device_creator; -const device_type SATURN_BRAM_8MB = device_creator; -const device_type SATURN_BRAM_16MB = device_creator; -const device_type SATURN_BRAM_32MB = device_creator; +DEFINE_DEVICE_TYPE(SATURN_BRAM_4MB, saturn_bram4mb_device, "sat_bram_4mb", "Saturn Battery RAM 4Mbit Cart") +DEFINE_DEVICE_TYPE(SATURN_BRAM_8MB, saturn_bram8mb_device, "sat_bram_8mb", "Saturn Battery RAM 8Mbit Cart") +DEFINE_DEVICE_TYPE(SATURN_BRAM_16MB, saturn_bram16mb_device, "sat_bram_16mb", "Saturn Battery RAM 16Mbit Cart") +DEFINE_DEVICE_TYPE(SATURN_BRAM_32MB, saturn_bram32mb_device, "sat_bram_32mb", "Saturn Battery RAM 32Mbit Cart") -saturn_bram_device::saturn_bram_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_sat_cart_interface( mconfig, *this ), - device_nvram_interface(mconfig, *this) +saturn_bram_device::saturn_bram_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int cart_type) + : device_t(mconfig, type, tag, owner, clock) + , device_sat_cart_interface(mconfig, *this, cart_type) + , device_nvram_interface(mconfig, *this) { } saturn_bram4mb_device::saturn_bram4mb_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : saturn_bram_device(mconfig, SATURN_BRAM_4MB, "Saturn Battery RAM 4Mbit Cart", tag, owner, clock, "sat_bram_4mb", __FILE__) + : saturn_bram_device(mconfig, SATURN_BRAM_4MB, tag, owner, clock, 0x21) { - m_cart_type = 0x21; } saturn_bram8mb_device::saturn_bram8mb_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : saturn_bram_device(mconfig, SATURN_BRAM_8MB, "Saturn Battery RAM 8Mbit Cart", tag, owner, clock, "sat_bram_8mb", __FILE__) + : saturn_bram_device(mconfig, SATURN_BRAM_8MB, tag, owner, clock, 0x22) { - m_cart_type = 0x22; } saturn_bram16mb_device::saturn_bram16mb_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : saturn_bram_device(mconfig, SATURN_BRAM_16MB, "Saturn Battery RAM 16Mbit Cart", tag, owner, clock, "sat_bram_16mb", __FILE__) + : saturn_bram_device(mconfig, SATURN_BRAM_16MB, tag, owner, clock, 0x23) { - m_cart_type = 0x23; } saturn_bram32mb_device::saturn_bram32mb_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : saturn_bram_device(mconfig, SATURN_BRAM_32MB, "Saturn Battery RAM 32Mbit Cart", tag, owner, clock, "sat_bram_32mb", __FILE__) + : saturn_bram_device(mconfig, SATURN_BRAM_32MB, tag, owner, clock, 0x24) { - m_cart_type = 0x24; } diff --git a/src/devices/bus/saturn/bram.h b/src/devices/bus/saturn/bram.h index 7a96d11706f..a295bc78333 100644 --- a/src/devices/bus/saturn/bram.h +++ b/src/devices/bus/saturn/bram.h @@ -1,7 +1,7 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __SAT_BRAM_H -#define __SAT_BRAM_H +#ifndef MAME_BUS_SATURN_BRAM_H +#define MAME_BUS_SATURN_BRAM_H #include "sat_slot.h" @@ -13,8 +13,13 @@ class saturn_bram_device : public device_t, public device_nvram_interface { public: + // reading and writing + virtual DECLARE_READ32_MEMBER(read_ext_bram) override; + virtual DECLARE_WRITE32_MEMBER(write_ext_bram) override; + +protected: // construction/destruction - saturn_bram_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); + saturn_bram_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int cart_type); // device-level overrides virtual void device_start() override; @@ -24,10 +29,6 @@ public: virtual void nvram_default() override; virtual void nvram_read(emu_file &file) override { if (!m_ext_bram.empty()) file.read(&m_ext_bram[0], m_ext_bram.size()); } virtual void nvram_write(emu_file &file) override { if (!m_ext_bram.empty()) file.write(&m_ext_bram[0], m_ext_bram.size()); } - - // reading and writing - virtual DECLARE_READ32_MEMBER(read_ext_bram) override; - virtual DECLARE_WRITE32_MEMBER(write_ext_bram) override; }; class saturn_bram4mb_device : public saturn_bram_device @@ -61,9 +62,9 @@ public: // device type definition -extern const device_type SATURN_BRAM_4MB; -extern const device_type SATURN_BRAM_8MB; -extern const device_type SATURN_BRAM_16MB; -extern const device_type SATURN_BRAM_32MB; +DECLARE_DEVICE_TYPE(SATURN_BRAM_4MB, saturn_bram4mb_device) +DECLARE_DEVICE_TYPE(SATURN_BRAM_8MB, saturn_bram8mb_device) +DECLARE_DEVICE_TYPE(SATURN_BRAM_16MB, saturn_bram16mb_device) +DECLARE_DEVICE_TYPE(SATURN_BRAM_32MB, saturn_bram32mb_device) -#endif +#endif // MAME_BUS_SATURN_BRAM_H diff --git a/src/devices/bus/saturn/dram.cpp b/src/devices/bus/saturn/dram.cpp index 6255f97b6d6..6d574dc28e3 100644 --- a/src/devices/bus/saturn/dram.cpp +++ b/src/devices/bus/saturn/dram.cpp @@ -15,26 +15,24 @@ // constructor //------------------------------------------------- -const device_type SATURN_DRAM_8MB = device_creator; -const device_type SATURN_DRAM_32MB = device_creator; +DEFINE_DEVICE_TYPE(SATURN_DRAM_8MB, saturn_dram8mb_device, "sat_dram_8mb", "Saturn Data RAM 8Mbit Cart") +DEFINE_DEVICE_TYPE(SATURN_DRAM_32MB, saturn_dram32mb_device, "sat_dram_32mb", "Saturn Data RAM 32Mbit Cart") -saturn_dram_device::saturn_dram_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_sat_cart_interface( mconfig, *this ) +saturn_dram_device::saturn_dram_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int cart_type) + : device_t(mconfig, type, tag, owner, clock) + , device_sat_cart_interface(mconfig, *this, cart_type) { } saturn_dram8mb_device::saturn_dram8mb_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : saturn_dram_device(mconfig, SATURN_DRAM_8MB, "Saturn Data RAM 8Mbit Cart", tag, owner, clock, "sat_dram_8mb", __FILE__) + : saturn_dram_device(mconfig, SATURN_DRAM_8MB, tag, owner, clock, 0x5a) { - m_cart_type = 0x5a; } saturn_dram32mb_device::saturn_dram32mb_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : saturn_dram_device(mconfig, SATURN_DRAM_32MB, "Saturn Data RAM 32Mbit Cart", tag, owner, clock, "sat_dram_32mb", __FILE__) + : saturn_dram_device(mconfig, SATURN_DRAM_32MB, tag, owner, clock, 0x5c) { - m_cart_type = 0x5c; } diff --git a/src/devices/bus/saturn/dram.h b/src/devices/bus/saturn/dram.h index 3cf89b50093..1bef596993a 100644 --- a/src/devices/bus/saturn/dram.h +++ b/src/devices/bus/saturn/dram.h @@ -1,7 +1,7 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __SAT_DRAM_H -#define __SAT_DRAM_H +#ifndef MAME_BUS_SATURN_DRAM_H +#define MAME_BUS_SATURN_DRAM_H #include "sat_slot.h" @@ -12,18 +12,19 @@ class saturn_dram_device : public device_t, public device_sat_cart_interface { public: - // construction/destruction - saturn_dram_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - // reading and writing virtual DECLARE_READ32_MEMBER(read_ext_dram0) override; virtual DECLARE_READ32_MEMBER(read_ext_dram1) override; virtual DECLARE_WRITE32_MEMBER(write_ext_dram0) override; virtual DECLARE_WRITE32_MEMBER(write_ext_dram1) override; + +protected: + // construction/destruction + saturn_dram_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int cart_type); + + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; }; class saturn_dram8mb_device : public saturn_dram_device @@ -43,7 +44,7 @@ public: // device type definition -extern const device_type SATURN_DRAM_8MB; -extern const device_type SATURN_DRAM_32MB; +DECLARE_DEVICE_TYPE(SATURN_DRAM_8MB, saturn_dram8mb_device) +DECLARE_DEVICE_TYPE(SATURN_DRAM_32MB, saturn_dram32mb_device) -#endif +#endif // MAME_BUS_SATURN_DRAM_H diff --git a/src/devices/bus/saturn/rom.cpp b/src/devices/bus/saturn/rom.cpp index 152eeb18f87..1421018c298 100644 --- a/src/devices/bus/saturn/rom.cpp +++ b/src/devices/bus/saturn/rom.cpp @@ -15,20 +15,18 @@ // saturn_rom_device - constructor //------------------------------------------------- -const device_type SATURN_ROM = device_creator; +DEFINE_DEVICE_TYPE(SATURN_ROM, saturn_rom_device, "sat_rom", "Saturn ROM Carts") -saturn_rom_device::saturn_rom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_sat_cart_interface( mconfig, *this ) +saturn_rom_device::saturn_rom_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int cart_type) + : device_t(mconfig, type, tag, owner, clock) + , device_sat_cart_interface(mconfig, *this, cart_type) { } saturn_rom_device::saturn_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, SATURN_ROM, "Saturn ROM Carts", tag, owner, clock, "sat_rom", __FILE__), - device_sat_cart_interface( mconfig, *this ) + : saturn_rom_device(mconfig, SATURN_ROM, tag, owner, clock, 0xff) // actually not clear if ROM carts have a type ID like DRAM/BRAM carts { - m_cart_type = 0xff; // actually not clear if ROM carts have a type ID like DRAM/BRAM carts } diff --git a/src/devices/bus/saturn/rom.h b/src/devices/bus/saturn/rom.h index 8f377bf2164..0fc8f2ecbea 100644 --- a/src/devices/bus/saturn/rom.h +++ b/src/devices/bus/saturn/rom.h @@ -1,33 +1,32 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __SAT_ROM_H -#define __SAT_ROM_H +#ifndef MAME_BUS_SATURN_ROM_H +#define MAME_BUS_SATURN_ROM_H #include "sat_slot.h" // ======================> saturn_rom_device -class saturn_rom_device : public device_t, - public device_sat_cart_interface +class saturn_rom_device : public device_t, public device_sat_cart_interface { public: // construction/destruction - saturn_rom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); saturn_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + // reading and writing + virtual DECLARE_READ32_MEMBER(read_rom) override; + +protected: + saturn_rom_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int cart_type); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; - - // reading and writing - virtual DECLARE_READ32_MEMBER(read_rom) override; }; - // device type definition -extern const device_type SATURN_ROM; - +DECLARE_DEVICE_TYPE(SATURN_ROM, saturn_rom_device) -#endif +#endif // MAME_BUS_SATURN_ROM_H diff --git a/src/devices/bus/saturn/sat_slot.cpp b/src/devices/bus/saturn/sat_slot.cpp index c46aa995d5f..13f69c8ba92 100644 --- a/src/devices/bus/saturn/sat_slot.cpp +++ b/src/devices/bus/saturn/sat_slot.cpp @@ -29,17 +29,18 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type SATURN_CART_SLOT = device_creator; +DEFINE_DEVICE_TYPE(SATURN_CART_SLOT, sat_cart_slot_device, "sat_cart_slot", "Saturn Cartridge Slot") //------------------------------------------------- // device_sat_cart_interface - constructor //------------------------------------------------- -device_sat_cart_interface::device_sat_cart_interface(const machine_config &mconfig, device_t &device) - : device_slot_card_interface(mconfig, device), m_cart_type(0), - m_rom(nullptr), - m_rom_size(0) +device_sat_cart_interface::device_sat_cart_interface(const machine_config &mconfig, device_t &device, int cart_type) : + device_slot_card_interface(mconfig, device), + m_cart_type(cart_type), + m_rom(nullptr), + m_rom_size(0) { } @@ -102,9 +103,9 @@ void device_sat_cart_interface::dram1_alloc(uint32_t size) // sat_cart_slot_device - constructor //------------------------------------------------- sat_cart_slot_device::sat_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, SATURN_CART_SLOT, "Saturn Cartridge Slot", tag, owner, clock, "sat_cart_slot", __FILE__), - device_image_interface(mconfig, *this), - device_slot_interface(mconfig, *this), m_cart(nullptr) + device_t(mconfig, SATURN_CART_SLOT, tag, owner, clock), + device_image_interface(mconfig, *this), + device_slot_interface(mconfig, *this), m_cart(nullptr) { } diff --git a/src/devices/bus/saturn/sat_slot.h b/src/devices/bus/saturn/sat_slot.h index 9148397e512..4d94ea472d6 100644 --- a/src/devices/bus/saturn/sat_slot.h +++ b/src/devices/bus/saturn/sat_slot.h @@ -1,7 +1,7 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __SAT_SLOT_H -#define __SAT_SLOT_H +#ifndef MAME_BUS_SATURN_SAT_SLOT_H +#define MAME_BUS_SATURN_SAT_SLOT_H #include "softlist_dev.h" @@ -16,23 +16,20 @@ class device_sat_cart_interface : public device_slot_card_interface { public: - // construction/destruction - device_sat_cart_interface(const machine_config &mconfig, device_t &device); virtual ~device_sat_cart_interface(); // reading from ROM virtual DECLARE_READ32_MEMBER(read_rom) { return 0xffffffff; } // reading and writing to Extended DRAM chips virtual DECLARE_READ32_MEMBER(read_ext_dram0) { return 0xffffffff; } - virtual DECLARE_WRITE32_MEMBER(write_ext_dram0) {} + virtual DECLARE_WRITE32_MEMBER(write_ext_dram0) { } virtual DECLARE_READ32_MEMBER(read_ext_dram1) { return 0xffffffff; } - virtual DECLARE_WRITE32_MEMBER(write_ext_dram1) {} + virtual DECLARE_WRITE32_MEMBER(write_ext_dram1) { } // reading and writing to Extended BRAM chip virtual DECLARE_READ32_MEMBER(read_ext_bram) { return 0xffffffff; } - virtual DECLARE_WRITE32_MEMBER(write_ext_bram) {} - - virtual int get_cart_type() { return m_cart_type; }; + virtual DECLARE_WRITE32_MEMBER(write_ext_bram) { } + int get_cart_type() const { return m_cart_type; } void rom_alloc(uint32_t size, const char *tag); void bram_alloc(uint32_t size); @@ -48,7 +45,10 @@ public: uint32_t get_ext_bram_size() { return m_ext_bram.size(); } protected: - int m_cart_type; + // construction/destruction + device_sat_cart_interface(const machine_config &mconfig, device_t &device, int cart_type); + + const int m_cart_type; // internal state uint32_t *m_rom; @@ -70,9 +70,6 @@ public: sat_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual ~sat_cart_slot_device(); - // device-level overrides - virtual void device_start() override; - // image-level overrides virtual image_init_result call_load() override; virtual void call_unload() override; @@ -101,13 +98,17 @@ public: virtual DECLARE_READ32_MEMBER(read_ext_bram); virtual DECLARE_WRITE32_MEMBER(write_ext_bram); +protected: + // device-level overrides + virtual void device_start() override; + private: device_sat_cart_interface* m_cart; }; // device type definition -extern const device_type SATURN_CART_SLOT; +DECLARE_DEVICE_TYPE(SATURN_CART_SLOT, sat_cart_slot_device) /*************************************************************************** @@ -121,4 +122,4 @@ extern const device_type SATURN_CART_SLOT; MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, false) -#endif +#endif // MAME_BUS_SATURN_SAT_SLOT_H diff --git a/src/devices/bus/scsi/acb4070.cpp b/src/devices/bus/scsi/acb4070.cpp index ddaccb9422f..0b9e67b438f 100644 --- a/src/devices/bus/scsi/acb4070.cpp +++ b/src/devices/bus/scsi/acb4070.cpp @@ -9,10 +9,10 @@ #include "acb4070.h" // device type definition -const device_type ACB4070 = device_creator; +DEFINE_DEVICE_TYPE(ACB4070, acb4070_device, "acb4070", "ACB4070") acb4070_device::acb4070_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : scsihd_device(mconfig, ACB4070, "ACB4070", tag, owner, clock, "acb4070", __FILE__) + : scsihd_device(mconfig, ACB4070, tag, owner, clock) { } diff --git a/src/devices/bus/scsi/acb4070.h b/src/devices/bus/scsi/acb4070.h index b983aad0477..848798152a5 100644 --- a/src/devices/bus/scsi/acb4070.h +++ b/src/devices/bus/scsi/acb4070.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:smf -#pragma once +#ifndef MAME_BUS_SCSI_ACB4070_H +#define MAME_BUS_SCSI_ACB4070_H -#ifndef __ACB4070__ -#define __ACB4070__ +#pragma once #include "scsihd.h" @@ -42,6 +42,6 @@ private: }; // device type definition -extern const device_type ACB4070; +DECLARE_DEVICE_TYPE(ACB4070, acb4070_device) -#endif +#endif // MAME_BUS_SCSI_ACB4070_H diff --git a/src/devices/bus/scsi/cdu76s.cpp b/src/devices/bus/scsi/cdu76s.cpp index f0de47e0da3..231445f1077 100644 --- a/src/devices/bus/scsi/cdu76s.cpp +++ b/src/devices/bus/scsi/cdu76s.cpp @@ -40,9 +40,9 @@ void sony_cdu76s_device::ReadData( uint8_t *data, int dataLength ) } // device type definition -const device_type CDU76S = device_creator; +DEFINE_DEVICE_TYPE(CDU76S, sony_cdu76s_device, "cdu76s", "Sony CDU-76S") sony_cdu76s_device::sony_cdu76s_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - scsicd_device(mconfig, CDU76S, "Sony CDU-76S", tag, owner, clock, "cdu76s", __FILE__) + scsicd_device(mconfig, CDU76S, tag, owner, clock) { } diff --git a/src/devices/bus/scsi/cdu76s.h b/src/devices/bus/scsi/cdu76s.h index 0449254b958..2e91525bfdc 100644 --- a/src/devices/bus/scsi/cdu76s.h +++ b/src/devices/bus/scsi/cdu76s.h @@ -8,10 +8,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_BUS_SCSI_CDU76S_H +#define MAME_BUS_SCSI_CDU76S_H -#ifndef __CDU76S_H__ -#define __CDU76S_H__ +#pragma once #include "scsicd.h" #include "machine/t10mmc.h" @@ -26,6 +26,6 @@ public: }; // device type definition -extern const device_type CDU76S; +DECLARE_DEVICE_TYPE(CDU76S, sony_cdu76s_device) -#endif +#endif // MAME_BUS_SCSI_CDU76S_H diff --git a/src/devices/bus/scsi/d9060hd.cpp b/src/devices/bus/scsi/d9060hd.cpp index 3f3b4a70ce1..1d7ee7e503d 100644 --- a/src/devices/bus/scsi/d9060hd.cpp +++ b/src/devices/bus/scsi/d9060hd.cpp @@ -9,10 +9,10 @@ #include "d9060hd.h" // device type definition -const device_type D9060HD = device_creator; +DEFINE_DEVICE_TYPE(D9060HD, d9060hd_device, "d9060hd", "D9060HD") d9060hd_device::d9060hd_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : scsihd_device(mconfig, D9060HD, "D9060HD", tag, owner, clock, "d9060hd", __FILE__) + : scsihd_device(mconfig, D9060HD, tag, owner, clock) { } diff --git a/src/devices/bus/scsi/d9060hd.h b/src/devices/bus/scsi/d9060hd.h index 979538a0b14..3e7140e74cd 100644 --- a/src/devices/bus/scsi/d9060hd.h +++ b/src/devices/bus/scsi/d9060hd.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:smf -#pragma once +#ifndef MAME_BUS_SCSI_D9060HD_H +#define MAME_BUS_SCSI_D9060HD_H -#ifndef __D9060HD__ -#define __D9060HD__ +#pragma once #include "scsihd.h" @@ -17,6 +17,6 @@ public: }; // device type definition -extern const device_type D9060HD; +DECLARE_DEVICE_TYPE(D9060HD, d9060hd_device) -#endif +#endif // MAME_BUS_SCSI_D9060HD_H diff --git a/src/devices/bus/scsi/omti5100.cpp b/src/devices/bus/scsi/omti5100.cpp index 3dfcc783341..07f0bb7e881 100644 --- a/src/devices/bus/scsi/omti5100.cpp +++ b/src/devices/bus/scsi/omti5100.cpp @@ -10,7 +10,7 @@ #define OMTI_READ_DATA_BUFFER 0xec #define OMTI_ASSIGN_DISK_PARAM 0xc2 -const device_type OMTI5100 = device_creator; +DEFINE_DEVICE_TYPE(OMTI5100, omti5100_device, "omti5100", "OMTI 5100") #if 0 ROM_START( omti5100 ) @@ -25,9 +25,9 @@ const tiny_rom_entry *omti5100_device::device_rom_region() const #endif omti5100_device::omti5100_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : scsihd_device(mconfig, OMTI5100, "OMTI 5100", tag, owner, clock, "omti5100", __FILE__), - m_image0(*this, "image0"), - m_image1(*this, "image1") + : scsihd_device(mconfig, OMTI5100, tag, owner, clock) + , m_image0(*this, "image0") + , m_image1(*this, "image1") { } diff --git a/src/devices/bus/scsi/omti5100.h b/src/devices/bus/scsi/omti5100.h index 24c1b74ddc3..c17d5bc4558 100644 --- a/src/devices/bus/scsi/omti5100.h +++ b/src/devices/bus/scsi/omti5100.h @@ -1,7 +1,7 @@ // license:BSD-3-Clause // copyright-holders:smf -#ifndef OMTI5100_H_ -#define OMTI5100_H_ +#ifndef MAME_BUS_SCSI_OMTI5100_H +#define MAME_BUS_SCSI_OMTI5100_H #include "scsi.h" #include "scsihd.h" @@ -18,6 +18,8 @@ public: virtual void ExecCommand() override; virtual void ReadData( uint8_t *data, int dataLength ) override; virtual void WriteData( uint8_t *data, int dataLength ) override; + +protected: void device_start() override; private: @@ -26,6 +28,6 @@ private: hard_disk_info m_param[2]; }; -extern const device_type OMTI5100; +DECLARE_DEVICE_TYPE(OMTI5100, omti5100_device) -#endif /* OMTI5100_H_ */ +#endif // MAME_BUS_SCSI_OMTI5100_H diff --git a/src/devices/bus/scsi/pc9801_sasi.cpp b/src/devices/bus/scsi/pc9801_sasi.cpp index 29d30b48589..b7c93f98094 100644 --- a/src/devices/bus/scsi/pc9801_sasi.cpp +++ b/src/devices/bus/scsi/pc9801_sasi.cpp @@ -5,10 +5,10 @@ #define SASI_CMD_SPECIFY 0xc2 // according to x68k_hdc.c -const device_type PC9801_SASI = device_creator; +DEFINE_DEVICE_TYPE(PC9801_SASI, pc9801_sasi_device, "pc9801_sasi", "PC9801 SASI Controller") pc9801_sasi_device::pc9801_sasi_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : scsihd_device(mconfig, PC9801_SASI, "PC-9801 SASI Controller", tag, owner, clock, "pc9801_sasi", __FILE__) + : scsihd_device(mconfig, PC9801_SASI, tag, owner, clock) { } diff --git a/src/devices/bus/scsi/pc9801_sasi.h b/src/devices/bus/scsi/pc9801_sasi.h index 1cbd9eb72af..773de463c61 100644 --- a/src/devices/bus/scsi/pc9801_sasi.h +++ b/src/devices/bus/scsi/pc9801_sasi.h @@ -1,11 +1,11 @@ // license:BSD-3-Clause // copyright-holders:smf -#ifndef PC9801_SASI_H_ -#define PC9801_SASI_H_ +#ifndef MAME_BUS_SCSI_PC9801_SASI_H +#define MAME_BUS_SCSI_PC9801_SASI_H #include "scsihd.h" -class pc9801_sasi_device : public scsihd_device +class pc9801_sasi_device : public scsihd_device { public: // construction/destruction @@ -15,6 +15,6 @@ public: }; // device type definition -extern const device_type PC9801_SASI; +DECLARE_DEVICE_TYPE(PC9801_SASI, pc9801_sasi_device) -#endif /* PC9801_SASI_H_ */ +#endif // MAME_BUS_SCSI_PC9801_SASI_H diff --git a/src/devices/bus/scsi/s1410.cpp b/src/devices/bus/scsi/s1410.cpp index df49859b844..a4a8a65c047 100644 --- a/src/devices/bus/scsi/s1410.cpp +++ b/src/devices/bus/scsi/s1410.cpp @@ -102,7 +102,7 @@ Notes: // DEVICE DEFINITIONS //************************************************************************** -const device_type S1410 = device_creator; +DEFINE_DEVICE_TYPE(S1410, s1410_device, "s1410", "Xebec S1410") //------------------------------------------------- // ROM( s1410 ) @@ -194,7 +194,7 @@ machine_config_constructor s1410_device::device_mconfig_additions() const //------------------------------------------------- s1410_device::s1410_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : scsihd_device(mconfig, S1410, "Xebec S1410", tag, owner, clock, "s1410", __FILE__) + : scsihd_device(mconfig, S1410, tag, owner, clock) { } diff --git a/src/devices/bus/scsi/s1410.h b/src/devices/bus/scsi/s1410.h index d76686529bf..456f55a6ea2 100644 --- a/src/devices/bus/scsi/s1410.h +++ b/src/devices/bus/scsi/s1410.h @@ -6,14 +6,14 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_SCSI_S1410_H +#define MAME_BUS_SCSI_S1410_H -#ifndef __S1410__ -#define __S1410__ +#pragma once #include "scsihd.h" -class s1410_device : public scsihd_device +class s1410_device : public scsihd_device { public: // construction/destruction @@ -30,6 +30,6 @@ public: // device type definition -extern const device_type S1410; +DECLARE_DEVICE_TYPE(S1410, s1410_device) -#endif +#endif // MAME_BUS_SCSI_S1410_H diff --git a/src/devices/bus/scsi/sa1403d.cpp b/src/devices/bus/scsi/sa1403d.cpp index 76587f9f0ab..f8f0d7041b7 100644 --- a/src/devices/bus/scsi/sa1403d.cpp +++ b/src/devices/bus/scsi/sa1403d.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type SA1403D = device_creator; +DEFINE_DEVICE_TYPE(SA1403D, sa1403d_device, "sa1403d", "Shugart SA1403D") //------------------------------------------------- @@ -124,7 +124,7 @@ ioport_constructor sa1403d_device::device_input_ports() const //------------------------------------------------- sa1403d_device::sa1403d_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : scsihd_device(mconfig, SA1403D, "Shugart SA1403D", tag, owner, clock, "sa1403d", __FILE__) + : scsihd_device(mconfig, SA1403D, tag, owner, clock) { } diff --git a/src/devices/bus/scsi/sa1403d.h b/src/devices/bus/scsi/sa1403d.h index 3299527a8f8..ea3d37d3d02 100644 --- a/src/devices/bus/scsi/sa1403d.h +++ b/src/devices/bus/scsi/sa1403d.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_SCSI_SA1403D_H +#define MAME_BUS_SCSI_SA1403D_H -#ifndef __SA1403D__ -#define __SA1403D__ +#pragma once #include "scsihd.h" #include "imagedev/harddriv.h" @@ -31,6 +31,6 @@ public: // device type definition -extern const device_type SA1403D; +DECLARE_DEVICE_TYPE(SA1403D, sa1403d_device) -#endif +#endif // MAME_BUS_SCSI_SA1403D_H diff --git a/src/devices/bus/scsi/scsi.cpp b/src/devices/bus/scsi/scsi.cpp index 73118ee35ed..5cbd6eaf060 100644 --- a/src/devices/bus/scsi/scsi.cpp +++ b/src/devices/bus/scsi/scsi.cpp @@ -4,8 +4,8 @@ #include "emu.h" #include "scsi.h" -SCSI_PORT_DEVICE::SCSI_PORT_DEVICE(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, SCSI_PORT, "SCSI Port", tag, owner, clock, "scsi", __FILE__), +scsi_port_device::scsi_port_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, SCSI_PORT, tag, owner, clock), m_bsy_handler(*this), m_sel_handler(*this), m_cd_handler(*this), @@ -71,12 +71,12 @@ static MACHINE_CONFIG_FRAGMENT( scsi_port ) MCFG_DEVICE_ADD( SCSI_PORT_DEVICE7, SCSI_PORT_SLOT, 0 ) MACHINE_CONFIG_END -machine_config_constructor SCSI_PORT_DEVICE::device_mconfig_additions() const +machine_config_constructor scsi_port_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( scsi_port ); } -void SCSI_PORT_DEVICE::device_start() +void scsi_port_device::device_start() { const char *deviceName[] = { @@ -93,7 +93,7 @@ void SCSI_PORT_DEVICE::device_start() for (int i = 0; i < 7; i++) { - SCSI_PORT_SLOT_device *slot = subdevice(deviceName[i]); + scsi_port_slot_device *slot = subdevice(deviceName[i]); m_slot[i] = slot; if (slot != nullptr) @@ -138,7 +138,7 @@ void SCSI_PORT_DEVICE::device_start() m_rst_handler(0); } -void SCSI_PORT_DEVICE::update_bsy() +void scsi_port_device::update_bsy() { int bsy = m_bsy_in; for (int i = 0; i < m_device_count; i++) @@ -160,7 +160,7 @@ void SCSI_PORT_DEVICE::update_bsy() } } -void SCSI_PORT_DEVICE::update_sel() +void scsi_port_device::update_sel() { int sel = m_sel_in; for (int i = 0; i < m_device_count; i++) @@ -182,7 +182,7 @@ void SCSI_PORT_DEVICE::update_sel() } } -void SCSI_PORT_DEVICE::update_cd() +void scsi_port_device::update_cd() { int cd = m_cd_in; for (int i = 0; i < m_device_count; i++) @@ -204,7 +204,7 @@ void SCSI_PORT_DEVICE::update_cd() } } -void SCSI_PORT_DEVICE::update_io() +void scsi_port_device::update_io() { int io = m_io_in; for (int i = 0; i < m_device_count; i++) @@ -226,7 +226,7 @@ void SCSI_PORT_DEVICE::update_io() } } -void SCSI_PORT_DEVICE::update_msg() +void scsi_port_device::update_msg() { int msg = m_msg_in; for (int i = 0; i < m_device_count; i++) @@ -248,7 +248,7 @@ void SCSI_PORT_DEVICE::update_msg() } } -void SCSI_PORT_DEVICE::update_req() +void scsi_port_device::update_req() { int req = m_req_in; for (int i = 0; i < m_device_count; i++) @@ -270,7 +270,7 @@ void SCSI_PORT_DEVICE::update_req() } } -void SCSI_PORT_DEVICE::update_ack() +void scsi_port_device::update_ack() { int ack = m_ack_in; for (int i = 0; i < m_device_count; i++) @@ -292,7 +292,7 @@ void SCSI_PORT_DEVICE::update_ack() } } -void SCSI_PORT_DEVICE::update_atn() +void scsi_port_device::update_atn() { int atn = m_atn_in; for (int i = 0; i < m_device_count; i++) @@ -314,7 +314,7 @@ void SCSI_PORT_DEVICE::update_atn() } } -void SCSI_PORT_DEVICE::update_rst() +void scsi_port_device::update_rst() { int rst = m_rst_in; for (int i = 0; i < m_device_count; i++) @@ -336,7 +336,7 @@ void SCSI_PORT_DEVICE::update_rst() } } -void SCSI_PORT_DEVICE::update_data0() +void scsi_port_device::update_data0() { int data0 = m_data0_in; for (int i = 0; i < m_device_count; i++) @@ -358,7 +358,7 @@ void SCSI_PORT_DEVICE::update_data0() } } -void SCSI_PORT_DEVICE::update_data1() +void scsi_port_device::update_data1() { int data1 = m_data1_in; for (int i = 0; i < m_device_count; i++) @@ -380,7 +380,7 @@ void SCSI_PORT_DEVICE::update_data1() } } -void SCSI_PORT_DEVICE::update_data2() +void scsi_port_device::update_data2() { int data2 = m_data2_in; for (int i = 0; i < m_device_count; i++) @@ -402,7 +402,7 @@ void SCSI_PORT_DEVICE::update_data2() } } -void SCSI_PORT_DEVICE::update_data3() +void scsi_port_device::update_data3() { int data3 = m_data3_in; for (int i = 0; i < m_device_count; i++) @@ -424,7 +424,7 @@ void SCSI_PORT_DEVICE::update_data3() } } -void SCSI_PORT_DEVICE::update_data4() +void scsi_port_device::update_data4() { int data4 = m_data4_in; for (int i = 0; i < m_device_count; i++) @@ -446,7 +446,7 @@ void SCSI_PORT_DEVICE::update_data4() } } -void SCSI_PORT_DEVICE::update_data5() +void scsi_port_device::update_data5() { int data5 = m_data5_in; for (int i = 0; i < m_device_count; i++) @@ -468,7 +468,7 @@ void SCSI_PORT_DEVICE::update_data5() } } -void SCSI_PORT_DEVICE::update_data6() +void scsi_port_device::update_data6() { int data6 = m_data6_in; for (int i = 0; i < m_device_count; i++) @@ -490,7 +490,7 @@ void SCSI_PORT_DEVICE::update_data6() } } -void SCSI_PORT_DEVICE::update_data7() +void scsi_port_device::update_data7() { int data7 = m_data7_in; for (int i = 0; i < m_device_count; i++) @@ -512,7 +512,7 @@ void SCSI_PORT_DEVICE::update_data7() } } -WRITE_LINE_MEMBER( SCSI_PORT_DEVICE::write_bsy ) +WRITE_LINE_MEMBER( scsi_port_device::write_bsy ) { if (m_bsy_in != state) { @@ -521,7 +521,7 @@ WRITE_LINE_MEMBER( SCSI_PORT_DEVICE::write_bsy ) } } -WRITE_LINE_MEMBER( SCSI_PORT_DEVICE::write_sel ) +WRITE_LINE_MEMBER( scsi_port_device::write_sel ) { if (m_sel_in != state) { @@ -530,7 +530,7 @@ WRITE_LINE_MEMBER( SCSI_PORT_DEVICE::write_sel ) } } -WRITE_LINE_MEMBER( SCSI_PORT_DEVICE::write_cd ) +WRITE_LINE_MEMBER( scsi_port_device::write_cd ) { if (m_cd_in != state) { @@ -539,7 +539,7 @@ WRITE_LINE_MEMBER( SCSI_PORT_DEVICE::write_cd ) } } -WRITE_LINE_MEMBER( SCSI_PORT_DEVICE::write_io ) +WRITE_LINE_MEMBER( scsi_port_device::write_io ) { if (m_io_in != state) { @@ -548,7 +548,7 @@ WRITE_LINE_MEMBER( SCSI_PORT_DEVICE::write_io ) } } -WRITE_LINE_MEMBER( SCSI_PORT_DEVICE::write_msg ) +WRITE_LINE_MEMBER( scsi_port_device::write_msg ) { if (m_msg_in != state) { @@ -557,7 +557,7 @@ WRITE_LINE_MEMBER( SCSI_PORT_DEVICE::write_msg ) } } -WRITE_LINE_MEMBER( SCSI_PORT_DEVICE::write_req ) +WRITE_LINE_MEMBER( scsi_port_device::write_req ) { if (m_req_in != state) { @@ -566,7 +566,7 @@ WRITE_LINE_MEMBER( SCSI_PORT_DEVICE::write_req ) } } -WRITE_LINE_MEMBER( SCSI_PORT_DEVICE::write_ack ) +WRITE_LINE_MEMBER( scsi_port_device::write_ack ) { if (m_ack_in != state) { @@ -575,7 +575,7 @@ WRITE_LINE_MEMBER( SCSI_PORT_DEVICE::write_ack ) } } -WRITE_LINE_MEMBER( SCSI_PORT_DEVICE::write_atn ) +WRITE_LINE_MEMBER( scsi_port_device::write_atn ) { if (m_atn_in != state) { @@ -584,7 +584,7 @@ WRITE_LINE_MEMBER( SCSI_PORT_DEVICE::write_atn ) } } -WRITE_LINE_MEMBER( SCSI_PORT_DEVICE::write_rst ) +WRITE_LINE_MEMBER( scsi_port_device::write_rst ) { if (m_rst_in != state) { @@ -593,7 +593,7 @@ WRITE_LINE_MEMBER( SCSI_PORT_DEVICE::write_rst ) } } -WRITE_LINE_MEMBER( SCSI_PORT_DEVICE::write_data0 ) +WRITE_LINE_MEMBER( scsi_port_device::write_data0 ) { if (m_data0_in != state) { @@ -602,7 +602,7 @@ WRITE_LINE_MEMBER( SCSI_PORT_DEVICE::write_data0 ) } } -WRITE_LINE_MEMBER( SCSI_PORT_DEVICE::write_data1 ) +WRITE_LINE_MEMBER( scsi_port_device::write_data1 ) { if (m_data1_in != state) { @@ -611,7 +611,7 @@ WRITE_LINE_MEMBER( SCSI_PORT_DEVICE::write_data1 ) } } -WRITE_LINE_MEMBER( SCSI_PORT_DEVICE::write_data2 ) +WRITE_LINE_MEMBER( scsi_port_device::write_data2 ) { if (m_data2_in != state) { @@ -620,7 +620,7 @@ WRITE_LINE_MEMBER( SCSI_PORT_DEVICE::write_data2 ) } } -WRITE_LINE_MEMBER( SCSI_PORT_DEVICE::write_data3 ) +WRITE_LINE_MEMBER( scsi_port_device::write_data3 ) { if (m_data3_in != state) { @@ -629,7 +629,7 @@ WRITE_LINE_MEMBER( SCSI_PORT_DEVICE::write_data3 ) } } -WRITE_LINE_MEMBER( SCSI_PORT_DEVICE::write_data4 ) +WRITE_LINE_MEMBER( scsi_port_device::write_data4 ) { if (m_data4_in != state) { @@ -638,7 +638,7 @@ WRITE_LINE_MEMBER( SCSI_PORT_DEVICE::write_data4 ) } } -WRITE_LINE_MEMBER( SCSI_PORT_DEVICE::write_data5 ) +WRITE_LINE_MEMBER( scsi_port_device::write_data5 ) { if (m_data5_in != state) { @@ -647,7 +647,7 @@ WRITE_LINE_MEMBER( SCSI_PORT_DEVICE::write_data5 ) } } -WRITE_LINE_MEMBER( SCSI_PORT_DEVICE::write_data6 ) +WRITE_LINE_MEMBER( scsi_port_device::write_data6 ) { if (m_data6_in != state) { @@ -656,7 +656,7 @@ WRITE_LINE_MEMBER( SCSI_PORT_DEVICE::write_data6 ) } } -WRITE_LINE_MEMBER( SCSI_PORT_DEVICE::write_data7 ) +WRITE_LINE_MEMBER( scsi_port_device::write_data7 ) { if (m_data7_in != state) { @@ -665,10 +665,10 @@ WRITE_LINE_MEMBER( SCSI_PORT_DEVICE::write_data7 ) } } -const device_type SCSI_PORT = device_creator; +DEFINE_DEVICE_TYPE(SCSI_PORT, scsi_port_device, "scsi", "SCSI Port") -SCSI_PORT_SLOT_device::SCSI_PORT_SLOT_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, SCSI_PORT_SLOT, "SCSI Connector", tag, owner, clock, "scsi_slot", __FILE__), +scsi_port_slot_device::scsi_port_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, SCSI_PORT_SLOT, tag, owner, clock), device_slot_interface(mconfig, *this), m_dev(nullptr), m_bsy(0), @@ -688,24 +688,24 @@ SCSI_PORT_SLOT_device::SCSI_PORT_SLOT_device(const machine_config &mconfig, cons m_data6(0), m_data7(0) { - m_port = dynamic_cast(device().owner()); + m_port = dynamic_cast(device().owner()); } -void SCSI_PORT_SLOT_device::device_config_complete() +void scsi_port_slot_device::device_config_complete() { m_dev = dynamic_cast(get_card_device()); } -void SCSI_PORT_SLOT_device::device_start() +void scsi_port_slot_device::device_start() { } -const device_type SCSI_PORT_SLOT = device_creator; +DEFINE_DEVICE_TYPE(SCSI_PORT_SLOT, scsi_port_slot_device, "scsi_slot", "SCSI Connector") scsi_port_interface::scsi_port_interface(const machine_config &mconfig, device_t &device) : device_slot_card_interface(mconfig, device) { - m_slot = dynamic_cast(device.owner()); + m_slot = dynamic_cast(device.owner()); } scsi_port_interface::~scsi_port_interface() diff --git a/src/devices/bus/scsi/scsi.h b/src/devices/bus/scsi/scsi.h index af362522c2d..7868b7f3777 100644 --- a/src/devices/bus/scsi/scsi.h +++ b/src/devices/bus/scsi/scsi.h @@ -1,10 +1,10 @@ // license:BSD-3-Clause // copyright-holders:smf -#pragma once +#ifndef MAME_BUS_SCSI_SCSI_H +#define MAME_BUS_SCSI_SCSI_H -#ifndef _SCSI_H_ -#define _SCSI_H_ +#pragma once #include "machine/buffer.h" #include "machine/latch.h" @@ -18,66 +18,66 @@ #define SCSI_PORT_DEVICE7 "7" #define MCFG_SCSI_BSY_HANDLER(_devcb) \ - devcb = &SCSI_PORT_DEVICE::set_bsy_handler(*device, DEVCB_##_devcb); + devcb = &scsi_port_device::set_bsy_handler(*device, DEVCB_##_devcb); #define MCFG_SCSI_SEL_HANDLER(_devcb) \ - devcb = &SCSI_PORT_DEVICE::set_sel_handler(*device, DEVCB_##_devcb); + devcb = &scsi_port_device::set_sel_handler(*device, DEVCB_##_devcb); #define MCFG_SCSI_CD_HANDLER(_devcb) \ - devcb = &SCSI_PORT_DEVICE::set_cd_handler(*device, DEVCB_##_devcb); + devcb = &scsi_port_device::set_cd_handler(*device, DEVCB_##_devcb); #define MCFG_SCSI_IO_HANDLER(_devcb) \ - devcb = &SCSI_PORT_DEVICE::set_io_handler(*device, DEVCB_##_devcb); + devcb = &scsi_port_device::set_io_handler(*device, DEVCB_##_devcb); #define MCFG_SCSI_MSG_HANDLER(_devcb) \ - devcb = &SCSI_PORT_DEVICE::set_msg_handler(*device, DEVCB_##_devcb); + devcb = &scsi_port_device::set_msg_handler(*device, DEVCB_##_devcb); #define MCFG_SCSI_REQ_HANDLER(_devcb) \ - devcb = &SCSI_PORT_DEVICE::set_req_handler(*device, DEVCB_##_devcb); + devcb = &scsi_port_device::set_req_handler(*device, DEVCB_##_devcb); #define MCFG_SCSI_ACK_HANDLER(_devcb) \ - devcb = &SCSI_PORT_DEVICE::set_ack_handler(*device, DEVCB_##_devcb); + devcb = &scsi_port_device::set_ack_handler(*device, DEVCB_##_devcb); #define MCFG_SCSI_ATN_HANDLER(_devcb) \ - devcb = &SCSI_PORT_DEVICE::set_atn_handler(*device, DEVCB_##_devcb); + devcb = &scsi_port_device::set_atn_handler(*device, DEVCB_##_devcb); #define MCFG_SCSI_RST_HANDLER(_devcb) \ - devcb = &SCSI_PORT_DEVICE::set_rst_handler(*device, DEVCB_##_devcb); + devcb = &scsi_port_device::set_rst_handler(*device, DEVCB_##_devcb); #define MCFG_SCSI_DATA0_HANDLER(_devcb) \ - devcb = &SCSI_PORT_DEVICE::set_data0_handler(*device, DEVCB_##_devcb); + devcb = &scsi_port_device::set_data0_handler(*device, DEVCB_##_devcb); #define MCFG_SCSI_DATA1_HANDLER(_devcb) \ - devcb = &SCSI_PORT_DEVICE::set_data1_handler(*device, DEVCB_##_devcb); + devcb = &scsi_port_device::set_data1_handler(*device, DEVCB_##_devcb); #define MCFG_SCSI_DATA2_HANDLER(_devcb) \ - devcb = &SCSI_PORT_DEVICE::set_data2_handler(*device, DEVCB_##_devcb); + devcb = &scsi_port_device::set_data2_handler(*device, DEVCB_##_devcb); #define MCFG_SCSI_DATA3_HANDLER(_devcb) \ - devcb = &SCSI_PORT_DEVICE::set_data3_handler(*device, DEVCB_##_devcb); + devcb = &scsi_port_device::set_data3_handler(*device, DEVCB_##_devcb); #define MCFG_SCSI_DATA4_HANDLER(_devcb) \ - devcb = &SCSI_PORT_DEVICE::set_data4_handler(*device, DEVCB_##_devcb); + devcb = &scsi_port_device::set_data4_handler(*device, DEVCB_##_devcb); #define MCFG_SCSI_DATA5_HANDLER(_devcb) \ - devcb = &SCSI_PORT_DEVICE::set_data5_handler(*device, DEVCB_##_devcb); + devcb = &scsi_port_device::set_data5_handler(*device, DEVCB_##_devcb); #define MCFG_SCSI_DATA6_HANDLER(_devcb) \ - devcb = &SCSI_PORT_DEVICE::set_data6_handler(*device, DEVCB_##_devcb); + devcb = &scsi_port_device::set_data6_handler(*device, DEVCB_##_devcb); #define MCFG_SCSI_DATA7_HANDLER(_devcb) \ - devcb = &SCSI_PORT_DEVICE::set_data7_handler(*device, DEVCB_##_devcb); + devcb = &scsi_port_device::set_data7_handler(*device, DEVCB_##_devcb); #define MCFG_SCSI_OUTPUT_LATCH_ADD(_tag, scsi_port_tag) \ MCFG_DEVICE_ADD(_tag, OUTPUT_LATCH, 0) \ - MCFG_OUTPUT_LATCH_BIT0_HANDLER(DEVWRITELINE(scsi_port_tag, SCSI_PORT_DEVICE, write_data0)) \ - MCFG_OUTPUT_LATCH_BIT1_HANDLER(DEVWRITELINE(scsi_port_tag, SCSI_PORT_DEVICE, write_data1)) \ - MCFG_OUTPUT_LATCH_BIT2_HANDLER(DEVWRITELINE(scsi_port_tag, SCSI_PORT_DEVICE, write_data2)) \ - MCFG_OUTPUT_LATCH_BIT3_HANDLER(DEVWRITELINE(scsi_port_tag, SCSI_PORT_DEVICE, write_data3)) \ - MCFG_OUTPUT_LATCH_BIT4_HANDLER(DEVWRITELINE(scsi_port_tag, SCSI_PORT_DEVICE, write_data4)) \ - MCFG_OUTPUT_LATCH_BIT5_HANDLER(DEVWRITELINE(scsi_port_tag, SCSI_PORT_DEVICE, write_data5)) \ - MCFG_OUTPUT_LATCH_BIT6_HANDLER(DEVWRITELINE(scsi_port_tag, SCSI_PORT_DEVICE, write_data6)) \ - MCFG_OUTPUT_LATCH_BIT7_HANDLER(DEVWRITELINE(scsi_port_tag, SCSI_PORT_DEVICE, write_data7)) + MCFG_OUTPUT_LATCH_BIT0_HANDLER(DEVWRITELINE(scsi_port_tag, scsi_port_device, write_data0)) \ + MCFG_OUTPUT_LATCH_BIT1_HANDLER(DEVWRITELINE(scsi_port_tag, scsi_port_device, write_data1)) \ + MCFG_OUTPUT_LATCH_BIT2_HANDLER(DEVWRITELINE(scsi_port_tag, scsi_port_device, write_data2)) \ + MCFG_OUTPUT_LATCH_BIT3_HANDLER(DEVWRITELINE(scsi_port_tag, scsi_port_device, write_data3)) \ + MCFG_OUTPUT_LATCH_BIT4_HANDLER(DEVWRITELINE(scsi_port_tag, scsi_port_device, write_data4)) \ + MCFG_OUTPUT_LATCH_BIT5_HANDLER(DEVWRITELINE(scsi_port_tag, scsi_port_device, write_data5)) \ + MCFG_OUTPUT_LATCH_BIT6_HANDLER(DEVWRITELINE(scsi_port_tag, scsi_port_device, write_data6)) \ + MCFG_OUTPUT_LATCH_BIT7_HANDLER(DEVWRITELINE(scsi_port_tag, scsi_port_device, write_data7)) #define MCFG_SCSI_DATA_INPUT_BUFFER(_tag) \ MCFG_SCSI_DATA0_HANDLER(DEVWRITELINE(_tag, input_buffer_device, write_bit0)) \ @@ -89,34 +89,34 @@ MCFG_SCSI_DATA6_HANDLER(DEVWRITELINE(_tag, input_buffer_device, write_bit6)) \ MCFG_SCSI_DATA7_HANDLER(DEVWRITELINE(_tag, input_buffer_device, write_bit7)) -class SCSI_PORT_SLOT_device; +class scsi_port_slot_device; class scsi_port_interface; -class SCSI_PORT_DEVICE : public device_t +class scsi_port_device : public device_t { friend class scsi_port_interface; public: // construction/destruction - SCSI_PORT_DEVICE(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - - template static devcb_base &set_bsy_handler(device_t &device, _Object object) { return downcast(device).m_bsy_handler.set_callback(object); } - template static devcb_base &set_sel_handler(device_t &device, _Object object) { return downcast(device).m_sel_handler.set_callback(object); } - template static devcb_base &set_cd_handler(device_t &device, _Object object) { return downcast(device).m_cd_handler.set_callback(object); } - template static devcb_base &set_io_handler(device_t &device, _Object object) { return downcast(device).m_io_handler.set_callback(object); } - template static devcb_base &set_msg_handler(device_t &device, _Object object) { return downcast(device).m_msg_handler.set_callback(object); } - template static devcb_base &set_req_handler(device_t &device, _Object object) { return downcast(device).m_req_handler.set_callback(object); } - template static devcb_base &set_ack_handler(device_t &device, _Object object) { return downcast(device).m_ack_handler.set_callback(object); } - template static devcb_base &set_atn_handler(device_t &device, _Object object) { return downcast(device).m_atn_handler.set_callback(object); } - template static devcb_base &set_rst_handler(device_t &device, _Object object) { return downcast(device).m_rst_handler.set_callback(object); } - template static devcb_base &set_data0_handler(device_t &device, _Object object) { return downcast(device).m_data0_handler.set_callback(object); } - template static devcb_base &set_data1_handler(device_t &device, _Object object) { return downcast(device).m_data1_handler.set_callback(object); } - template static devcb_base &set_data2_handler(device_t &device, _Object object) { return downcast(device).m_data2_handler.set_callback(object); } - template static devcb_base &set_data3_handler(device_t &device, _Object object) { return downcast(device).m_data3_handler.set_callback(object); } - template static devcb_base &set_data4_handler(device_t &device, _Object object) { return downcast(device).m_data4_handler.set_callback(object); } - template static devcb_base &set_data5_handler(device_t &device, _Object object) { return downcast(device).m_data5_handler.set_callback(object); } - template static devcb_base &set_data6_handler(device_t &device, _Object object) { return downcast(device).m_data6_handler.set_callback(object); } - template static devcb_base &set_data7_handler(device_t &device, _Object object) { return downcast(device).m_data7_handler.set_callback(object); } + scsi_port_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + + template static devcb_base &set_bsy_handler(device_t &device, Object &&cb) { return downcast(device).m_bsy_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_sel_handler(device_t &device, Object &&cb) { return downcast(device).m_sel_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_cd_handler(device_t &device, Object &&cb) { return downcast(device).m_cd_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_io_handler(device_t &device, Object &&cb) { return downcast(device).m_io_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_msg_handler(device_t &device, Object &&cb) { return downcast(device).m_msg_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_req_handler(device_t &device, Object &&cb) { return downcast(device).m_req_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_ack_handler(device_t &device, Object &&cb) { return downcast(device).m_ack_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_atn_handler(device_t &device, Object &&cb) { return downcast(device).m_atn_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_rst_handler(device_t &device, Object &&cb) { return downcast(device).m_rst_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_data0_handler(device_t &device, Object &&cb) { return downcast(device).m_data0_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_data1_handler(device_t &device, Object &&cb) { return downcast(device).m_data1_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_data2_handler(device_t &device, Object &&cb) { return downcast(device).m_data2_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_data3_handler(device_t &device, Object &&cb) { return downcast(device).m_data3_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_data4_handler(device_t &device, Object &&cb) { return downcast(device).m_data4_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_data5_handler(device_t &device, Object &&cb) { return downcast(device).m_data5_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_data6_handler(device_t &device, Object &&cb) { return downcast(device).m_data6_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_data7_handler(device_t &device, Object &&cb) { return downcast(device).m_data7_handler.set_callback(std::forward(cb)); } DECLARE_WRITE_LINE_MEMBER( write_bsy ); DECLARE_WRITE_LINE_MEMBER( write_sel ); @@ -178,7 +178,7 @@ private: devcb_write_line m_data6_handler; devcb_write_line m_data7_handler; - SCSI_PORT_SLOT_device *m_slot[7]; + scsi_port_slot_device *m_slot[7]; int m_device_count; int m_bsy_in; @@ -221,17 +221,17 @@ extern const device_type SCSI_PORT; class scsi_port_interface; -class SCSI_PORT_SLOT_device : public device_t, +class scsi_port_slot_device : public device_t, public device_slot_interface { - friend class SCSI_PORT_DEVICE; + friend class scsi_port_device; friend class scsi_port_interface; public: - SCSI_PORT_SLOT_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + scsi_port_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); scsi_port_interface *dev() { return m_dev; } - SCSI_PORT_DEVICE *port() { return m_port; } + scsi_port_device *port() { return m_port; } protected: // device-level overrides @@ -240,7 +240,7 @@ protected: protected: scsi_port_interface *m_dev; - SCSI_PORT_DEVICE *m_port; + scsi_port_device *m_port; int m_bsy; int m_sel; @@ -261,31 +261,30 @@ protected: int m_data7; }; -extern const device_type SCSI_PORT_SLOT; +DECLARE_DEVICE_TYPE(SCSI_PORT_SLOT, scsi_port_slot_device) class scsi_port_interface : public device_slot_card_interface { public: - scsi_port_interface(const machine_config &mconfig, device_t &device); virtual ~scsi_port_interface(); - virtual DECLARE_WRITE_LINE_MEMBER( input_bsy ) {} - virtual DECLARE_WRITE_LINE_MEMBER( input_sel ) {} - virtual DECLARE_WRITE_LINE_MEMBER( input_cd ) {} - virtual DECLARE_WRITE_LINE_MEMBER( input_io ) {} - virtual DECLARE_WRITE_LINE_MEMBER( input_msg ) {} - virtual DECLARE_WRITE_LINE_MEMBER( input_req ) {} - virtual DECLARE_WRITE_LINE_MEMBER( input_ack ) {} - virtual DECLARE_WRITE_LINE_MEMBER( input_atn ) {} - virtual DECLARE_WRITE_LINE_MEMBER( input_rst ) {} - virtual DECLARE_WRITE_LINE_MEMBER( input_data0 ) {} - virtual DECLARE_WRITE_LINE_MEMBER( input_data1 ) {} - virtual DECLARE_WRITE_LINE_MEMBER( input_data2 ) {} - virtual DECLARE_WRITE_LINE_MEMBER( input_data3 ) {} - virtual DECLARE_WRITE_LINE_MEMBER( input_data4 ) {} - virtual DECLARE_WRITE_LINE_MEMBER( input_data5 ) {} - virtual DECLARE_WRITE_LINE_MEMBER( input_data6 ) {} - virtual DECLARE_WRITE_LINE_MEMBER( input_data7 ) {} + virtual DECLARE_WRITE_LINE_MEMBER( input_bsy ) { } + virtual DECLARE_WRITE_LINE_MEMBER( input_sel ) { } + virtual DECLARE_WRITE_LINE_MEMBER( input_cd ) { } + virtual DECLARE_WRITE_LINE_MEMBER( input_io ) { } + virtual DECLARE_WRITE_LINE_MEMBER( input_msg ) { } + virtual DECLARE_WRITE_LINE_MEMBER( input_req ) { } + virtual DECLARE_WRITE_LINE_MEMBER( input_ack ) { } + virtual DECLARE_WRITE_LINE_MEMBER( input_atn ) { } + virtual DECLARE_WRITE_LINE_MEMBER( input_rst ) { } + virtual DECLARE_WRITE_LINE_MEMBER( input_data0 ) { } + virtual DECLARE_WRITE_LINE_MEMBER( input_data1 ) { } + virtual DECLARE_WRITE_LINE_MEMBER( input_data2 ) { } + virtual DECLARE_WRITE_LINE_MEMBER( input_data3 ) { } + virtual DECLARE_WRITE_LINE_MEMBER( input_data4 ) { } + virtual DECLARE_WRITE_LINE_MEMBER( input_data5 ) { } + virtual DECLARE_WRITE_LINE_MEMBER( input_data6 ) { } + virtual DECLARE_WRITE_LINE_MEMBER( input_data7 ) { } DECLARE_WRITE_LINE_MEMBER( output_bsy ) { if (m_slot->m_bsy != state) { m_slot->m_bsy = state; m_slot->port()->update_bsy(); } } DECLARE_WRITE_LINE_MEMBER( output_sel ) { if (m_slot->m_sel != state) { m_slot->m_sel = state; m_slot->port()->update_sel(); } } @@ -305,8 +304,11 @@ public: DECLARE_WRITE_LINE_MEMBER( output_data6 ) { if (m_slot->m_data6 != state) { m_slot->m_data6 = state; m_slot->port()->update_data6(); } } DECLARE_WRITE_LINE_MEMBER( output_data7 ) { if (m_slot->m_data7 != state) { m_slot->m_data7 = state; m_slot->port()->update_data7(); } } +protected: + scsi_port_interface(const machine_config &mconfig, device_t &device); + private: - SCSI_PORT_SLOT_device *m_slot; + scsi_port_slot_device *m_slot; }; -#endif +#endif // MAME_BUS_SCSI_SCSI_H diff --git a/src/devices/bus/scsi/scsicd.cpp b/src/devices/bus/scsi/scsicd.cpp index 2c995bc54a3..93bd9750e8e 100644 --- a/src/devices/bus/scsi/scsicd.cpp +++ b/src/devices/bus/scsi/scsicd.cpp @@ -10,15 +10,15 @@ #include "scsicd.h" // device type definition -const device_type SCSICD = device_creator; +DEFINE_DEVICE_TYPE(SCSICD, scsicd_device, "scsicd", "SCSI CD") scsicd_device::scsicd_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - scsihle_device(mconfig, SCSICD, "SCSI CD", tag, owner, clock, "scsicd", __FILE__) + scsicd_device(mconfig, SCSICD, tag, owner, clock) { } -scsicd_device::scsicd_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - scsihle_device(mconfig, type, name, tag, owner, clock, shortname, source) +scsicd_device::scsicd_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + scsihle_device(mconfig, type, tag, owner, clock) { } diff --git a/src/devices/bus/scsi/scsicd.h b/src/devices/bus/scsi/scsicd.h index c7c2f377e50..b9dba1db6d9 100644 --- a/src/devices/bus/scsi/scsicd.h +++ b/src/devices/bus/scsi/scsicd.h @@ -6,26 +6,25 @@ ***************************************************************************/ -#ifndef _SCSICD_H_ -#define _SCSICD_H_ +#ifndef MAME_BUS_SCSI_SCSICD_H +#define MAME_BUS_SCSI_SCSICD_H #include "scsihle.h" #include "machine/t10mmc.h" -class scsicd_device : public scsihle_device, - public t10mmc +class scsicd_device : public scsihle_device, public t10mmc { public: // construction/destruction scsicd_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - scsicd_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); virtual machine_config_constructor device_mconfig_additions() const override; protected: + scsicd_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); virtual void device_start() override; }; // device type definition -extern const device_type SCSICD; +DECLARE_DEVICE_TYPE(SCSICD, scsicd_device) -#endif +#endif // MAME_BUS_SCSI_SCSICD_H diff --git a/src/devices/bus/scsi/scsihd.cpp b/src/devices/bus/scsi/scsihd.cpp index b8aae0aa48e..a0868659772 100644 --- a/src/devices/bus/scsi/scsihd.cpp +++ b/src/devices/bus/scsi/scsihd.cpp @@ -10,15 +10,15 @@ #include "scsihd.h" // device type definition -const device_type SCSIHD = device_creator; +DEFINE_DEVICE_TYPE(SCSIHD, scsihd_device, "scsihd", "SCSI HD") scsihd_device::scsihd_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : scsihle_device(mconfig, SCSIHD, "SCSI HD", tag, owner, clock, "scsihd", __FILE__) + : scsihd_device(mconfig, SCSIHD, tag, owner, clock) { } -scsihd_device::scsihd_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - scsihle_device(mconfig, type, name, tag, owner, clock, shortname, source) +scsihd_device::scsihd_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + scsihle_device(mconfig, type, tag, owner, clock) { } diff --git a/src/devices/bus/scsi/scsihd.h b/src/devices/bus/scsi/scsihd.h index 1a312a79216..21517c8bbf7 100644 --- a/src/devices/bus/scsi/scsihd.h +++ b/src/devices/bus/scsi/scsihd.h @@ -6,26 +6,27 @@ ***************************************************************************/ -#ifndef _SCSIHD_H_ -#define _SCSIHD_H_ +#ifndef MAME_BUS_SCSI_SCSIHD_H +#define MAME_BUS_SCSI_SCSIHD_H + +#pragma once #include "scsihle.h" #include "machine/t10sbc.h" -class scsihd_device : public scsihle_device, - public t10sbc +class scsihd_device : public scsihle_device, public t10sbc { public: // construction/destruction scsihd_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - scsihd_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); virtual machine_config_constructor device_mconfig_additions() const override; protected: + scsihd_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); virtual void device_start() override; }; // device type definition -extern const device_type SCSIHD; +DECLARE_DEVICE_TYPE(SCSIHD, scsihd_device) -#endif +#endif // MAME_BUS_SCSI_SCSIHD_H diff --git a/src/devices/bus/scsi/scsihle.cpp b/src/devices/bus/scsi/scsihle.cpp index 27c1a567b62..ed63dae450e 100644 --- a/src/devices/bus/scsi/scsihle.cpp +++ b/src/devices/bus/scsi/scsihle.cpp @@ -11,8 +11,8 @@ Base class for HLE'd SCSI devices. #include "emu.h" #include "scsihle.h" -scsihle_device::scsihle_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), +scsihle_device::scsihle_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), scsi_port_interface(mconfig, *this), m_scsi_id(*this, "SCSI_ID"), req_timer(nullptr), diff --git a/src/devices/bus/scsi/scsihle.h b/src/devices/bus/scsi/scsihle.h index 72537d3b3b0..bce047ae474 100644 --- a/src/devices/bus/scsi/scsihle.h +++ b/src/devices/bus/scsi/scsihle.h @@ -8,8 +8,8 @@ Base class for HLE'd SCSI devices. */ -#ifndef _SCSIHLE_H_ -#define _SCSIHLE_H_ +#ifndef MAME_BUS_SCSI_SCSIHLE_H +#define MAME_BUS_SCSI_SCSIHLE_H #include "scsi.h" #include "machine/t10spc.h" @@ -21,9 +21,6 @@ class scsihle_device : public device_t, public virtual t10spc { public: - // construction/destruction - scsihle_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - virtual int GetDeviceID(); // hack for legacy_scsi_host_adapter::get_device virtual DECLARE_WRITE_LINE_MEMBER( input_sel ) override; @@ -39,6 +36,9 @@ public: virtual DECLARE_WRITE_LINE_MEMBER( input_data7 ) override { if (state) m_input_data |= 0x80; else m_input_data &= ~0x80; } protected: + // construction/destruction + scsihle_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual ioport_constructor device_input_ports() const override; virtual void device_start() override; @@ -89,4 +89,5 @@ extern const input_device_default DEVICE_INPUT_DEFAULTS_NAME(SCSI_ID_7)[]; MCFG_SLOT_OPTION_ADD( _option, _type ) \ MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS( _option, _id ) \ MCFG_SLOT_DEFAULT_OPTION( _option ) -#endif + +#endif // MAME_BUS_SCSI_SCSIHLE_H diff --git a/src/devices/bus/scv/rom.cpp b/src/devices/bus/scv/rom.cpp index 2507219be4a..be0dc7aea2c 100644 --- a/src/devices/bus/scv/rom.cpp +++ b/src/devices/bus/scv/rom.cpp @@ -17,55 +17,53 @@ // scv_rom_device - constructor //------------------------------------------------- -const device_type SCV_ROM8K = device_creator; -const device_type SCV_ROM16K = device_creator; -const device_type SCV_ROM32K = device_creator; -const device_type SCV_ROM32K_RAM8K = device_creator; -const device_type SCV_ROM64K = device_creator; -const device_type SCV_ROM128K = device_creator; -const device_type SCV_ROM128K_RAM4K = device_creator; +DEFINE_DEVICE_TYPE(SCV_ROM8K, scv_rom8_device, "scv_rom8", "SCV 8K Carts") +DEFINE_DEVICE_TYPE(SCV_ROM16K, scv_rom16_device, "scv_rom16", "SCV 16K Carts") +DEFINE_DEVICE_TYPE(SCV_ROM32K, scv_rom32_device, "scv_rom32", "SCV 32K Carts") +DEFINE_DEVICE_TYPE(SCV_ROM32K_RAM8K, scv_rom32ram8_device, "scv_rom32_ram8", "SCV 32K + RAM 8K Carts") +DEFINE_DEVICE_TYPE(SCV_ROM64K, scv_rom64_device, "scv_rom64", "SCV 64K Carts") +DEFINE_DEVICE_TYPE(SCV_ROM128K, scv_rom128_device, "scv_rom128", "SCV 128K Carts") +DEFINE_DEVICE_TYPE(SCV_ROM128K_RAM4K, scv_rom128ram4_device, "scv_rom128_ram4", "SCV 128K + RAM 4K Carts") -scv_rom8_device::scv_rom8_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_scv_cart_interface( mconfig, *this ) +scv_rom8_device::scv_rom8_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock), device_scv_cart_interface(mconfig, *this) { } scv_rom8_device::scv_rom8_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, SCV_ROM8K, "SCV 8K Carts", tag, owner, clock, "scv_rom8", __FILE__), - device_scv_cart_interface( mconfig, *this ) + : scv_rom8_device(mconfig, SCV_ROM8K, tag, owner, clock) { } scv_rom16_device::scv_rom16_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : scv_rom8_device(mconfig, SCV_ROM16K, "SCV 16K Carts", tag, owner, clock, "scv_rom16", __FILE__) + : scv_rom8_device(mconfig, SCV_ROM16K, tag, owner, clock) { } scv_rom32_device::scv_rom32_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : scv_rom8_device(mconfig, SCV_ROM32K, "SCV 32K Carts", tag, owner, clock, "scv_rom32", __FILE__) + : scv_rom8_device(mconfig, SCV_ROM32K, tag, owner, clock) { } scv_rom32ram8_device::scv_rom32ram8_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : scv_rom8_device(mconfig, SCV_ROM32K_RAM8K, "SCV 32K + RAM 8K Carts", tag, owner, clock, "scv_rom32_ram8", __FILE__), m_ram_enabled(0) - { + : scv_rom8_device(mconfig, SCV_ROM32K_RAM8K, tag, owner, clock), m_ram_enabled(0) +{ } scv_rom64_device::scv_rom64_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : scv_rom8_device(mconfig, SCV_ROM64K, "SCV 64K Carts", tag, owner, clock, "scv_rom64", __FILE__), m_bank_base(0) - { + : scv_rom8_device(mconfig, SCV_ROM64K, tag, owner, clock), m_bank_base(0) +{ } scv_rom128_device::scv_rom128_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : scv_rom8_device(mconfig, SCV_ROM128K, "SCV 128K Carts", tag, owner, clock, "scv_rom128", __FILE__), m_bank_base(0) - { + : scv_rom8_device(mconfig, SCV_ROM128K, tag, owner, clock), m_bank_base(0) +{ } scv_rom128ram4_device::scv_rom128ram4_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : scv_rom8_device(mconfig, SCV_ROM128K_RAM4K, "SCV 128K + RAM 4K Carts", tag, owner, clock, "scv_rom128_ram4", __FILE__), m_bank_base(0), m_ram_enabled(0) - { + : scv_rom8_device(mconfig, SCV_ROM128K_RAM4K, tag, owner, clock), m_bank_base(0), m_ram_enabled(0) +{ } diff --git a/src/devices/bus/scv/rom.h b/src/devices/bus/scv/rom.h index 40a56ec5ce0..4a6b90b39a1 100644 --- a/src/devices/bus/scv/rom.h +++ b/src/devices/bus/scv/rom.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __SCV_ROM_H -#define __SCV_ROM_H +#ifndef MAME_BUS_SCV_ROM_H +#define MAME_BUS_SCV_ROM_H + +#pragma once #include "slot.h" @@ -13,15 +15,17 @@ class scv_rom8_device : public device_t, { public: // construction/destruction - scv_rom8_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); scv_rom8_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override {} - virtual void device_reset() override {} - // reading and writing virtual DECLARE_READ8_MEMBER(read_cart) override; + +protected: + scv_rom8_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual void device_start() override { } + virtual void device_reset() override { } }; // ======================> scv_rom16_device @@ -58,15 +62,16 @@ public: // construction/destruction scv_rom32ram8_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - // reading and writing virtual DECLARE_READ8_MEMBER(read_cart) override; virtual DECLARE_WRITE8_MEMBER(write_cart) override; virtual DECLARE_WRITE8_MEMBER(write_bank) override; +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + private: uint8_t m_ram_enabled; }; @@ -101,14 +106,15 @@ public: // construction/destruction scv_rom128_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - // reading and writing virtual DECLARE_READ8_MEMBER(read_cart) override; virtual DECLARE_WRITE8_MEMBER(write_bank) override; +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + private: uint8_t m_bank_base; }; @@ -122,30 +128,28 @@ public: // construction/destruction scv_rom128ram4_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - // reading and writing virtual DECLARE_READ8_MEMBER(read_cart) override; virtual DECLARE_WRITE8_MEMBER(write_cart) override; virtual DECLARE_WRITE8_MEMBER(write_bank) override; +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + private: uint8_t m_bank_base, m_ram_enabled; }; - // device type definition -extern const device_type SCV_ROM8K; -extern const device_type SCV_ROM16K; -extern const device_type SCV_ROM32K; -extern const device_type SCV_ROM32K_RAM8K; -extern const device_type SCV_ROM64K; -extern const device_type SCV_ROM128K; -extern const device_type SCV_ROM128K_RAM4K; - - - -#endif +DECLARE_DEVICE_TYPE(SCV_ROM8K, scv_rom8_device) +DECLARE_DEVICE_TYPE(SCV_ROM16K, scv_rom16_device) +DECLARE_DEVICE_TYPE(SCV_ROM32K, scv_rom32_device) +DECLARE_DEVICE_TYPE(SCV_ROM32K_RAM8K, scv_rom32ram8_device) +DECLARE_DEVICE_TYPE(SCV_ROM64K, scv_rom64_device) +DECLARE_DEVICE_TYPE(SCV_ROM128K, scv_rom128_device) +DECLARE_DEVICE_TYPE(SCV_ROM128K_RAM4K, scv_rom128ram4_device) + +#endif // MAME_BUS_SCV_ROM_H diff --git a/src/devices/bus/scv/slot.cpp b/src/devices/bus/scv/slot.cpp index 953cfd95af8..c95f872089a 100644 --- a/src/devices/bus/scv/slot.cpp +++ b/src/devices/bus/scv/slot.cpp @@ -15,7 +15,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type SCV_CART_SLOT = device_creator; +DEFINE_DEVICE_TYPE(SCV_CART_SLOT, scv_cart_slot_device, "scv_cart_slot", "SCV Cartridge Slot") //************************************************************************** // SCV cartridges Interface @@ -73,10 +73,10 @@ void device_scv_cart_interface::ram_alloc(uint32_t size) // scv_cart_slot_device - constructor //------------------------------------------------- scv_cart_slot_device::scv_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, SCV_CART_SLOT, "SCV Cartridge Slot", tag, owner, clock, "scv_cart_slot", __FILE__), - device_image_interface(mconfig, *this), - device_slot_interface(mconfig, *this), - m_type(SCV_8K), m_cart(nullptr) + device_t(mconfig, SCV_CART_SLOT, tag, owner, clock), + device_image_interface(mconfig, *this), + device_slot_interface(mconfig, *this), + m_type(SCV_8K), m_cart(nullptr) { } diff --git a/src/devices/bus/scv/slot.h b/src/devices/bus/scv/slot.h index 6f926b96559..5dc3ec6e5b7 100644 --- a/src/devices/bus/scv/slot.h +++ b/src/devices/bus/scv/slot.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __SCV_SLOT_H -#define __SCV_SLOT_H +#ifndef MAME_BUS_SCV_SLOT_H +#define MAME_BUS_SCV_SLOT_H + +#pragma once #include "softlist_dev.h" @@ -30,13 +32,12 @@ class device_scv_cart_interface : public device_slot_card_interface { public: // construction/destruction - device_scv_cart_interface(const machine_config &mconfig, device_t &device); virtual ~device_scv_cart_interface(); // reading and writing virtual DECLARE_READ8_MEMBER(read_cart) { return 0xff; } - virtual DECLARE_WRITE8_MEMBER(write_cart) {} - virtual DECLARE_WRITE8_MEMBER(write_bank) {} + virtual DECLARE_WRITE8_MEMBER(write_cart) { } + virtual DECLARE_WRITE8_MEMBER(write_bank) { } void rom_alloc(uint32_t size, const char *tag); void ram_alloc(uint32_t size); @@ -48,6 +49,8 @@ public: void save_ram() { device().save_item(NAME(m_ram)); } protected: + device_scv_cart_interface(const machine_config &mconfig, device_t &device); + // internal state uint8_t *m_rom; uint32_t m_rom_size; @@ -66,9 +69,6 @@ public: scv_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual ~scv_cart_slot_device(); - // device-level overrides - virtual void device_start() override; - // image-level overrides virtual image_init_result call_load() override; virtual void call_unload() override {} @@ -97,6 +97,8 @@ public: virtual DECLARE_WRITE8_MEMBER(write_bank); protected: + // device-level overrides + virtual void device_start() override; int m_type; device_scv_cart_interface* m_cart; @@ -105,7 +107,7 @@ protected: // device type definition -extern const device_type SCV_CART_SLOT; +DECLARE_DEVICE_TYPE(SCV_CART_SLOT, scv_cart_slot_device) /*************************************************************************** @@ -117,4 +119,5 @@ extern const device_type SCV_CART_SLOT; #define MCFG_SCV_CARTRIDGE_ADD(_tag,_slot_intf,_def_slot) \ MCFG_DEVICE_ADD(_tag, SCV_CART_SLOT, 0) \ MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, false) -#endif + +#endif // MAME_BUS_SCV_SLOT_H diff --git a/src/devices/bus/sega8/ccatch.cpp b/src/devices/bus/sega8/ccatch.cpp index b8a8ffd3263..4f30ea15767 100644 --- a/src/devices/bus/sega8/ccatch.cpp +++ b/src/devices/bus/sega8/ccatch.cpp @@ -19,13 +19,12 @@ // constructors //------------------------------------------------- -const device_type SEGA8_ROM_CARDCATCH = device_creator; +DEFINE_DEVICE_TYPE(SEGA8_ROM_CARDCATCH, sega8_cardcatch_device, "sega8_ccatch", "SG-1000 Card Catcher Cart") sega8_cardcatch_device::sega8_cardcatch_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : sega8_rom_device(mconfig, SEGA8_ROM_CARDCATCH, "SG-1000 Card Catcher Cart", tag, owner, clock, "sega8_ccatch", __FILE__), - m_card(*this, "cardslot") + : sega8_rom_device(mconfig, SEGA8_ROM_CARDCATCH, tag, owner, clock), m_card(*this, "cardslot") { } diff --git a/src/devices/bus/sega8/ccatch.h b/src/devices/bus/sega8/ccatch.h index 138f39dba9b..ecbc4cfd367 100644 --- a/src/devices/bus/sega8/ccatch.h +++ b/src/devices/bus/sega8/ccatch.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __SEGA8_CCATCH_H -#define __SEGA8_CCATCH_H +#ifndef MAME_BUS_SEGA8_CCATCH_H +#define MAME_BUS_SEGA8_CCATCH_H + +#pragma once #include "sega8_slot.h" #include "rom.h" @@ -26,10 +28,7 @@ protected: }; - - - // device type definition -extern const device_type SEGA8_ROM_CARDCATCH; +DECLARE_DEVICE_TYPE(SEGA8_ROM_CARDCATCH, sega8_cardcatch_device) -#endif +#endif // MAME_BUS_SEGA8_CCATCH_H diff --git a/src/devices/bus/sega8/mgear.cpp b/src/devices/bus/sega8/mgear.cpp index 4cf05b340ec..97c7ee1d51c 100644 --- a/src/devices/bus/sega8/mgear.cpp +++ b/src/devices/bus/sega8/mgear.cpp @@ -21,11 +21,10 @@ // constructors //------------------------------------------------- -const device_type SEGA8_ROM_MGEAR = device_creator; +DEFINE_DEVICE_TYPE(SEGA8_ROM_MGEAR, sega8_mgear_device, "sega8_mgear", "Master Gear Converter") sega8_mgear_device::sega8_mgear_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : sega8_rom_device(mconfig, SEGA8_ROM_MGEAR, "Master Gear Converter", tag, owner, clock, "sega8_mgear", __FILE__), - m_subslot(*this, "subslot") + : sega8_rom_device(mconfig, SEGA8_ROM_MGEAR, tag, owner, clock), m_subslot(*this, "subslot") { } diff --git a/src/devices/bus/sega8/mgear.h b/src/devices/bus/sega8/mgear.h index 0544fd74741..e109df58e73 100644 --- a/src/devices/bus/sega8/mgear.h +++ b/src/devices/bus/sega8/mgear.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __SEGA8_MGEAR_H -#define __SEGA8_MGEAR_H +#ifndef MAME_BUS_SEGA8_MGEAR_H +#define MAME_BUS_SEGA8_MGEAR_H + +#pragma once #include "sega8_slot.h" #include "rom.h" @@ -23,7 +25,7 @@ public: virtual DECLARE_READ8_MEMBER(read_cart) override { return m_subslot->read_cart(space, offset); } virtual DECLARE_WRITE8_MEMBER(write_cart) override { m_subslot->write_cart(space, offset, data); } virtual DECLARE_WRITE8_MEMBER(write_mapper) override { m_subslot->write_mapper(space, offset, data); } - virtual int get_lphaser_xoffs() override { return m_subslot->m_cart ? m_subslot->m_cart->get_lphaser_xoffs() : -1; } + virtual int get_lphaser_xoffs() override { return m_subslot->get_lphaser_xoffs(); } virtual machine_config_constructor device_mconfig_additions() const override; @@ -33,7 +35,6 @@ protected: // device type definition -extern const device_type SEGA8_ROM_MGEAR; - +DECLARE_DEVICE_TYPE(SEGA8_ROM_MGEAR, sega8_mgear_device) -#endif +#endif // MAME_BUS_SEGA8_MGEAR_H diff --git a/src/devices/bus/sega8/rom.cpp b/src/devices/bus/sega8/rom.cpp index 7ef04ca9c79..f5a154308f7 100644 --- a/src/devices/bus/sega8/rom.cpp +++ b/src/devices/bus/sega8/rom.cpp @@ -19,87 +19,89 @@ // Base cart type shared across SG-1000, SG-1000 Mark II, SG-1000 Mark III, SMS, GG // even if in sg1000 rom banks are never changed and ram is never enabled -const device_type SEGA8_ROM_STD = device_creator; +DEFINE_DEVICE_TYPE(SEGA8_ROM_STD, sega8_rom_device, "sega8_rom", "SG-1000, SMS & GG Carts") // Specific SG-1000 MkI - MkII cart types -const device_type SEGA8_ROM_OTHELLO = device_creator; -const device_type SEGA8_ROM_CASTLE = device_creator; -const device_type SEGA8_ROM_BASIC_L3 = device_creator; -const device_type SEGA8_ROM_MUSIC_EDITOR = device_creator; -const device_type SEGA8_ROM_TEREBI = device_creator; -const device_type SEGA8_ROM_DAHJEE_TYPEA = device_creator; -const device_type SEGA8_ROM_DAHJEE_TYPEB = device_creator; +DEFINE_DEVICE_TYPE(SEGA8_ROM_OTHELLO, sega8_othello_device, "sega8_othello", "SG-1000 Othello Cart") +DEFINE_DEVICE_TYPE(SEGA8_ROM_CASTLE, sega8_castle_device, "sega8_castle", "SG-1000 The Castle Cart") +DEFINE_DEVICE_TYPE(SEGA8_ROM_BASIC_L3, sega8_basic_l3_device, "sega8_basicl3", "SC-3000 BASIC Level III Cart") +DEFINE_DEVICE_TYPE(SEGA8_ROM_MUSIC_EDITOR, sega8_music_editor_device, "sega8_music", "SC-3000 Music Editor Cart") +DEFINE_DEVICE_TYPE(SEGA8_ROM_TEREBI, sega8_terebi_device, "sega8_terebi", "SG-1000 Terebi Oekaki Cart") +DEFINE_DEVICE_TYPE(SEGA8_ROM_DAHJEE_TYPEA, sega8_dahjee_typea_device, "sega8_dahjeea", "SG-1000 Dahjee RAM expansion + Cart (Type A)") +DEFINE_DEVICE_TYPE(SEGA8_ROM_DAHJEE_TYPEB, sega8_dahjee_typeb_device, "sega8_dahjeeb", "SG-1000 Dahjee RAM expansion + Cart (Type B)") // Specific SG-1000 MkIII - SMS - GG cart types -const device_type SEGA8_ROM_EEPROM = device_creator; -const device_type SEGA8_ROM_CODEMASTERS = device_creator; -const device_type SEGA8_ROM_4PAK = device_creator; -const device_type SEGA8_ROM_ZEMINA = device_creator; -const device_type SEGA8_ROM_NEMESIS = device_creator; -const device_type SEGA8_ROM_JANGGUN = device_creator; -const device_type SEGA8_ROM_HICOM = device_creator; -const device_type SEGA8_ROM_KOREAN = device_creator; -const device_type SEGA8_ROM_KOREAN_NB = device_creator; -const device_type SEGA8_ROM_SEOJIN = device_creator; +DEFINE_DEVICE_TYPE(SEGA8_ROM_EEPROM, sega8_eeprom_device, "sega8_eeprom", "GG Carts + EEPROM") +DEFINE_DEVICE_TYPE(SEGA8_ROM_CODEMASTERS, sega8_codemasters_device, "sega8_codemasters", "Mark III, SMS & GG Codemasters Carts") +DEFINE_DEVICE_TYPE(SEGA8_ROM_4PAK, sega8_4pak_device, "sega8_4pak", "SMS 4-Pak Cart") +DEFINE_DEVICE_TYPE(SEGA8_ROM_ZEMINA, sega8_zemina_device, "sega8_zemina", "SMS Zemina Carts") +DEFINE_DEVICE_TYPE(SEGA8_ROM_NEMESIS, sega8_nemesis_device, "sega8_nemesis", "SMS Nemesis Cart") +DEFINE_DEVICE_TYPE(SEGA8_ROM_JANGGUN, sega8_janggun_device, "sega8_janggun", "SMS Janggun Cart") +DEFINE_DEVICE_TYPE(SEGA8_ROM_HICOM, sega8_hicom_device, "sega8_hicom", "SMS Hi-Com Carts") +DEFINE_DEVICE_TYPE(SEGA8_ROM_KOREAN, sega8_korean_device, "sega8_korean", "SMS Korean Carts") +DEFINE_DEVICE_TYPE(SEGA8_ROM_KOREAN_NB, sega8_korean_nb_device, "sega8_korean_nb", "SMS Korean No-Bank Mapper Carts") +DEFINE_DEVICE_TYPE(SEGA8_ROM_SEOJIN, sega8_seojin_device, "sega8_seojin", "SMS Seo Jin Multi-cart") -sega8_rom_device::sega8_rom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_sega8_cart_interface( mconfig, *this ), m_ram_base(0), m_ram_enabled(0) - { +sega8_rom_device::sega8_rom_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) + , device_sega8_cart_interface(mconfig, *this) + , m_ram_base(0) + , m_ram_enabled(0) +{ } sega8_rom_device::sega8_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, SEGA8_ROM_STD, "Mark III, SMS & GG Carts", tag, owner, clock, "sega8_rom", __FILE__), - device_sega8_cart_interface( mconfig, *this ), m_ram_base(0), m_ram_enabled(0) - { + : sega8_rom_device(mconfig, SEGA8_ROM_STD, tag, owner, clock) +{ } sega8_othello_device::sega8_othello_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : sega8_rom_device(mconfig, SEGA8_ROM_OTHELLO, "SG-1000 Othello Cart", tag, owner, clock, "sega8_othello", __FILE__) + : sega8_rom_device(mconfig, SEGA8_ROM_OTHELLO, tag, owner, clock) { } sega8_castle_device::sega8_castle_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : sega8_rom_device(mconfig, SEGA8_ROM_CASTLE, "SG-1000 The Castle Cart", tag, owner, clock, "sega8_castle", __FILE__) + : sega8_rom_device(mconfig, SEGA8_ROM_CASTLE, tag, owner, clock) { } sega8_basic_l3_device::sega8_basic_l3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : sega8_rom_device(mconfig, SEGA8_ROM_BASIC_L3, "SC-3000 BASIC Level III Cart", tag, owner, clock, "sega8_basicl3", __FILE__) + : sega8_rom_device(mconfig, SEGA8_ROM_BASIC_L3, tag, owner, clock) { } sega8_music_editor_device::sega8_music_editor_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : sega8_rom_device(mconfig, SEGA8_ROM_MUSIC_EDITOR, "SC-3000 Music Editor Cart", tag, owner, clock, "sega8_music", __FILE__) + : sega8_rom_device(mconfig, SEGA8_ROM_MUSIC_EDITOR, tag, owner, clock) { } sega8_terebi_device::sega8_terebi_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : sega8_rom_device(mconfig, SEGA8_ROM_TEREBI, "SG-1000 Terebi Oekaki Cart", tag, owner, clock, "sega8_terebi", __FILE__), - m_tvdraw_x(*this, "TVDRAW_X"), - m_tvdraw_y(*this, "TVDRAW_Y"), - m_tvdraw_pen(*this, "TVDRAW_PEN"), m_tvdraw_data(0) - { + : sega8_rom_device(mconfig, SEGA8_ROM_TEREBI, tag, owner, clock) + , m_tvdraw_x(*this, "TVDRAW_X") + , m_tvdraw_y(*this, "TVDRAW_Y") + , m_tvdraw_pen(*this, "TVDRAW_PEN") + , m_tvdraw_data(0) +{ } sega8_dahjee_typea_device::sega8_dahjee_typea_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : sega8_rom_device(mconfig, SEGA8_ROM_DAHJEE_TYPEA, "SG-1000 Dahjee RAM expansion + Cart (Type A)", tag, owner, clock, "sega8_dahjeea", __FILE__) + : sega8_rom_device(mconfig, SEGA8_ROM_DAHJEE_TYPEA, tag, owner, clock) { } sega8_dahjee_typeb_device::sega8_dahjee_typeb_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : sega8_rom_device(mconfig, SEGA8_ROM_DAHJEE_TYPEB, "SG-1000 Dahjee RAM expansion + Cart (Type B)", tag, owner, clock, "sega8_dahjeeb", __FILE__) + : sega8_rom_device(mconfig, SEGA8_ROM_DAHJEE_TYPEB, tag, owner, clock) { } @@ -107,72 +109,78 @@ sega8_dahjee_typeb_device::sega8_dahjee_typeb_device(const machine_config &mconf sega8_eeprom_device::sega8_eeprom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, SEGA8_ROM_EEPROM, "GG Carts + EEPROM", tag, owner, clock, "sega8_eeprom", __FILE__), - device_sega8_cart_interface( mconfig, *this ), - m_eeprom(*this, "eeprom"), m_93c46_enabled(0), m_93c46_lines(0) - { + : device_t(mconfig, SEGA8_ROM_EEPROM, tag, owner, clock) + , device_sega8_cart_interface(mconfig, *this) + , m_eeprom(*this, "eeprom") + , m_93c46_enabled(0) + , m_93c46_lines(0) +{ } sega8_codemasters_device::sega8_codemasters_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, SEGA8_ROM_CODEMASTERS, "Mark III, SMS & GG Codemasters Carts", tag, owner, clock, "sega8_codemasters", __FILE__), - device_sega8_cart_interface( mconfig, *this ), m_ram_base(0), m_ram_enabled(0) - { + : device_t(mconfig, SEGA8_ROM_CODEMASTERS, tag, owner, clock) + , device_sega8_cart_interface(mconfig, *this) + , m_ram_base(0) + , m_ram_enabled(0) +{ } sega8_4pak_device::sega8_4pak_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : sega8_rom_device(mconfig, SEGA8_ROM_4PAK, "SMS 4-Pak Cart", tag, owner, clock, "sega8_4pak", __FILE__) + : sega8_rom_device(mconfig, SEGA8_ROM_4PAK, tag, owner, clock) { } -sega8_zemina_device::sega8_zemina_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_sega8_cart_interface( mconfig, *this ), m_ram_base(0), m_ram_enabled(0) - { +sega8_zemina_device::sega8_zemina_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) + , device_sega8_cart_interface(mconfig, *this) + , m_ram_base(0) + , m_ram_enabled(0) +{ } sega8_zemina_device::sega8_zemina_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, SEGA8_ROM_ZEMINA, "SMS Zemina Carts", tag, owner, clock, "sega8_zemina", __FILE__), - device_sega8_cart_interface( mconfig, *this ), m_ram_base(0), m_ram_enabled(0) - { + : sega8_zemina_device(mconfig, SEGA8_ROM_ZEMINA, tag, owner, clock) +{ } sega8_nemesis_device::sega8_nemesis_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : sega8_zemina_device(mconfig, SEGA8_ROM_NEMESIS, "SMS Nemesis Cart", tag, owner, clock, "sega8_nemesis", __FILE__) + : sega8_zemina_device(mconfig, SEGA8_ROM_NEMESIS, tag, owner, clock) { } sega8_janggun_device::sega8_janggun_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, SEGA8_ROM_JANGGUN, "SMS Janggun Cart", tag, owner, clock, "sega8_janggun", __FILE__), - device_sega8_cart_interface( mconfig, *this ) + : device_t(mconfig, SEGA8_ROM_JANGGUN, tag, owner, clock) + , device_sega8_cart_interface(mconfig, *this) { } sega8_hicom_device::sega8_hicom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : sega8_rom_device(mconfig, SEGA8_ROM_HICOM, "SMS Hi-Com Carts", tag, owner, clock, "sega8_hicom", __FILE__), m_rom_bank_base(0) - { + : sega8_rom_device(mconfig, SEGA8_ROM_HICOM, tag, owner, clock) + , m_rom_bank_base(0) +{ } sega8_korean_device::sega8_korean_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : sega8_rom_device(mconfig, SEGA8_ROM_KOREAN, "SMS Korean Carts", tag, owner, clock, "sega8_korean", __FILE__) + : sega8_rom_device(mconfig, SEGA8_ROM_KOREAN, tag, owner, clock) { } sega8_korean_nb_device::sega8_korean_nb_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : sega8_rom_device(mconfig, SEGA8_ROM_KOREAN_NB, "SMS Korean No-Bank Mapper Carts", tag, owner, clock, "sega8_korean_nb", __FILE__) + : sega8_rom_device(mconfig, SEGA8_ROM_KOREAN_NB, tag, owner, clock) { } sega8_seojin_device::sega8_seojin_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : sega8_rom_device(mconfig, SEGA8_ROM_SEOJIN, "SMS Seo Jin Multi-cart", tag, owner, clock, "sega8_seojin", __FILE__) + : sega8_rom_device(mconfig, SEGA8_ROM_SEOJIN, tag, owner, clock) { } diff --git a/src/devices/bus/sega8/rom.h b/src/devices/bus/sega8/rom.h index a4b7df2599b..9e97e40f45f 100644 --- a/src/devices/bus/sega8/rom.h +++ b/src/devices/bus/sega8/rom.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __SEGA8_ROM_H -#define __SEGA8_ROM_H +#ifndef MAME_BUS_SEGA8_ROM_H +#define MAME_BUS_SEGA8_ROM_H + +#pragma once #include "sega8_slot.h" #include "machine/eepromser.h" @@ -13,13 +15,8 @@ class sega8_rom_device : public device_t, { public: // construction/destruction - sega8_rom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); sega8_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - virtual void late_bank_setup() override; // reading and writing @@ -28,6 +25,12 @@ public: virtual DECLARE_WRITE8_MEMBER(write_mapper) override; protected: + sega8_rom_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + uint8_t m_rom_bank_base[3]; uint8_t m_ram_base; int m_ram_enabled; @@ -47,7 +50,7 @@ public: // reading and writing virtual DECLARE_READ8_MEMBER(read_cart) override; virtual DECLARE_WRITE8_MEMBER(write_cart) override; - virtual DECLARE_WRITE8_MEMBER(write_mapper) override {} + virtual DECLARE_WRITE8_MEMBER(write_mapper) override { } }; @@ -62,7 +65,7 @@ public: // reading and writing virtual DECLARE_READ8_MEMBER(read_cart) override; virtual DECLARE_WRITE8_MEMBER(write_cart) override; - virtual DECLARE_WRITE8_MEMBER(write_mapper) override {} + virtual DECLARE_WRITE8_MEMBER(write_mapper) override { } }; @@ -77,7 +80,7 @@ public: // reading and writing virtual DECLARE_READ8_MEMBER(read_cart) override; virtual DECLARE_WRITE8_MEMBER(write_cart) override; - virtual DECLARE_WRITE8_MEMBER(write_mapper) override {} + virtual DECLARE_WRITE8_MEMBER(write_mapper) override { } // has internal RAM which overwrites the system one! virtual DECLARE_READ8_MEMBER(read_ram) override; @@ -96,7 +99,7 @@ public: // reading and writing virtual DECLARE_READ8_MEMBER(read_cart) override; virtual DECLARE_WRITE8_MEMBER(write_cart) override; - virtual DECLARE_WRITE8_MEMBER(write_mapper) override {} + virtual DECLARE_WRITE8_MEMBER(write_mapper) override { } // has internal RAM which overwrites the system one! virtual DECLARE_READ8_MEMBER(read_ram) override; @@ -113,9 +116,7 @@ public: sega8_terebi_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // device-level overrides - virtual void device_start() override; virtual ioport_constructor device_input_ports() const override; - virtual void device_reset() override; required_ioport m_tvdraw_x; required_ioport m_tvdraw_y; @@ -124,9 +125,12 @@ public: // reading and writing virtual DECLARE_READ8_MEMBER(read_cart) override; virtual DECLARE_WRITE8_MEMBER(write_cart) override; - virtual DECLARE_WRITE8_MEMBER(write_mapper) override {} + virtual DECLARE_WRITE8_MEMBER(write_mapper) override { } protected: + virtual void device_start() override; + virtual void device_reset() override; + uint8_t m_tvdraw_data; }; @@ -142,7 +146,7 @@ public: // reading and writing virtual DECLARE_READ8_MEMBER(read_cart) override; virtual DECLARE_WRITE8_MEMBER(write_cart) override; - virtual DECLARE_WRITE8_MEMBER(write_mapper) override {} + virtual DECLARE_WRITE8_MEMBER(write_mapper) override { } // has internal RAM which overwrites the system one! virtual DECLARE_READ8_MEMBER(read_ram) override; @@ -160,8 +164,8 @@ public: // reading and writing virtual DECLARE_READ8_MEMBER(read_cart) override; - virtual DECLARE_WRITE8_MEMBER(write_cart) override {} - virtual DECLARE_WRITE8_MEMBER(write_mapper) override {} + virtual DECLARE_WRITE8_MEMBER(write_cart) override { } + virtual DECLARE_WRITE8_MEMBER(write_mapper) override { } // has internal RAM which overwrites the system one! virtual DECLARE_READ8_MEMBER(read_ram) override; @@ -181,9 +185,7 @@ public: sega8_eeprom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // device-level overrides - virtual void device_start() override; virtual machine_config_constructor device_mconfig_additions() const override; - virtual void device_reset() override; virtual void late_bank_setup() override; @@ -193,6 +195,9 @@ public: virtual DECLARE_WRITE8_MEMBER(write_mapper) override; protected: + virtual void device_start() override; + virtual void device_reset() override; + uint8_t m_rom_bank_base[3]; required_device m_eeprom; @@ -210,10 +215,6 @@ public: // construction/destruction sega8_codemasters_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - virtual void late_bank_setup() override; // reading and writing @@ -222,6 +223,10 @@ public: // no mapper write for this! protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + uint8_t m_rom_bank_base[3]; uint8_t m_ram_base; int m_ram_enabled; @@ -236,14 +241,15 @@ public: // construction/destruction sega8_4pak_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - // reading and writing virtual DECLARE_READ8_MEMBER(read_cart) override; virtual DECLARE_WRITE8_MEMBER(write_cart) override; +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + private: uint8_t m_reg[3]; }; @@ -256,13 +262,8 @@ class sega8_zemina_device : public device_t, { public: // construction/destruction - sega8_zemina_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); sega8_zemina_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - virtual void late_bank_setup() override; // reading and writing @@ -271,6 +272,12 @@ public: // no mapper write for this! protected: + sega8_zemina_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + uint8_t m_rom_bank_base[6]; uint8_t m_ram_base; int m_ram_enabled; @@ -298,9 +305,6 @@ public: // construction/destruction sega8_janggun_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override { save_item(NAME(m_rom_bank_base)); } - virtual void late_bank_setup() override; // reading and writing @@ -309,6 +313,9 @@ public: virtual DECLARE_WRITE8_MEMBER(write_mapper) override; protected: + // device-level overrides + virtual void device_start() override { save_item(NAME(m_rom_bank_base)); } + uint8_t m_rom_bank_base[6]; }; @@ -321,9 +328,6 @@ public: // construction/destruction sega8_hicom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override { save_item(NAME(m_rom_bank_base)); } - virtual void late_bank_setup() override; // reading and writing @@ -332,6 +336,9 @@ public: virtual DECLARE_WRITE8_MEMBER(write_mapper) override; protected: + // device-level overrides + virtual void device_start() override { save_item(NAME(m_rom_bank_base)); } + uint8_t m_rom_bank_base; }; @@ -373,10 +380,6 @@ public: // construction/destruction sega8_seojin_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - // reading and writing virtual DECLARE_READ8_MEMBER(read_cart) override; virtual DECLARE_WRITE8_MEMBER(write_cart) override; @@ -385,29 +388,33 @@ public: virtual DECLARE_WRITE8_MEMBER(write_ram) override; protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + uint8_t m_gamesel; uint8_t m_readxor; }; // device type definition -extern const device_type SEGA8_ROM_STD; -extern const device_type SEGA8_ROM_OTHELLO; -extern const device_type SEGA8_ROM_CASTLE; -extern const device_type SEGA8_ROM_BASIC_L3; -extern const device_type SEGA8_ROM_MUSIC_EDITOR; -extern const device_type SEGA8_ROM_DAHJEE_TYPEA; -extern const device_type SEGA8_ROM_DAHJEE_TYPEB; -extern const device_type SEGA8_ROM_EEPROM; -extern const device_type SEGA8_ROM_TEREBI; -extern const device_type SEGA8_ROM_CODEMASTERS; -extern const device_type SEGA8_ROM_4PAK; -extern const device_type SEGA8_ROM_ZEMINA; -extern const device_type SEGA8_ROM_NEMESIS; -extern const device_type SEGA8_ROM_JANGGUN; -extern const device_type SEGA8_ROM_HICOM; -extern const device_type SEGA8_ROM_KOREAN; -extern const device_type SEGA8_ROM_KOREAN_NB; -extern const device_type SEGA8_ROM_SEOJIN; - -#endif +DECLARE_DEVICE_TYPE(SEGA8_ROM_STD, sega8_rom_device) +DECLARE_DEVICE_TYPE(SEGA8_ROM_OTHELLO, sega8_othello_device) +DECLARE_DEVICE_TYPE(SEGA8_ROM_CASTLE, sega8_castle_device) +DECLARE_DEVICE_TYPE(SEGA8_ROM_BASIC_L3, sega8_basic_l3_device) +DECLARE_DEVICE_TYPE(SEGA8_ROM_MUSIC_EDITOR, sega8_music_editor_device) +DECLARE_DEVICE_TYPE(SEGA8_ROM_DAHJEE_TYPEA, sega8_dahjee_typea_device) +DECLARE_DEVICE_TYPE(SEGA8_ROM_DAHJEE_TYPEB, sega8_dahjee_typeb_device) +DECLARE_DEVICE_TYPE(SEGA8_ROM_EEPROM, sega8_eeprom_device) +DECLARE_DEVICE_TYPE(SEGA8_ROM_TEREBI, sega8_terebi_device) +DECLARE_DEVICE_TYPE(SEGA8_ROM_CODEMASTERS, sega8_codemasters_device) +DECLARE_DEVICE_TYPE(SEGA8_ROM_4PAK, sega8_4pak_device) +DECLARE_DEVICE_TYPE(SEGA8_ROM_ZEMINA, sega8_zemina_device) +DECLARE_DEVICE_TYPE(SEGA8_ROM_NEMESIS, sega8_nemesis_device) +DECLARE_DEVICE_TYPE(SEGA8_ROM_JANGGUN, sega8_janggun_device) +DECLARE_DEVICE_TYPE(SEGA8_ROM_HICOM, sega8_hicom_device) +DECLARE_DEVICE_TYPE(SEGA8_ROM_KOREAN, sega8_korean_device) +DECLARE_DEVICE_TYPE(SEGA8_ROM_KOREAN_NB, sega8_korean_nb_device) +DECLARE_DEVICE_TYPE(SEGA8_ROM_SEOJIN, sega8_seojin_device) + +#endif // MAME_BUS_SEGA8_ROM_H diff --git a/src/devices/bus/sega8/sega8_slot.cpp b/src/devices/bus/sega8/sega8_slot.cpp index 7c870c9ccb2..484eb8b8b5a 100644 --- a/src/devices/bus/sega8/sega8_slot.cpp +++ b/src/devices/bus/sega8/sega8_slot.cpp @@ -30,15 +30,15 @@ #include "sega8_slot.h" #define VERBOSE 0 -#define LOG(x) do { if (VERBOSE) logerror x; } while (0) +#include "logmacro.h" //************************************************************************** // GLOBAL VARIABLES //************************************************************************** -const device_type SEGA8_CART_SLOT = device_creator; -const device_type SEGA8_CARD_SLOT = device_creator; +DEFINE_DEVICE_TYPE(SEGA8_CART_SLOT, sega8_cart_slot_device, "sega8_cart_slot", "Sega Master System / Game Gear / SG-1000 Cartridge Slot") +DEFINE_DEVICE_TYPE(SEGA8_CARD_SLOT, sega8_card_slot_device, "sega8_card_slot", "Sega Master System / Game Gear / SG-1000 Card Slot") //************************************************************************** @@ -50,14 +50,14 @@ const device_type SEGA8_CARD_SLOT = device_creator; //------------------------------------------------- device_sega8_cart_interface::device_sega8_cart_interface(const machine_config &mconfig, device_t &device) - : device_slot_card_interface(mconfig, device), - m_rom(nullptr), - m_rom_size(0), - m_rom_page_count(0), - has_battery(false), - m_late_battery_enable(false), - m_lphaser_xoffs(-1), - m_sms_mode(0) + : device_slot_card_interface(mconfig, device) + , m_rom(nullptr) + , m_rom_size(0) + , m_rom_page_count(0) + , has_battery(false) + , m_late_battery_enable(false) + , m_lphaser_xoffs(-1) + , m_sms_mode(0) { } @@ -107,32 +107,26 @@ void device_sega8_cart_interface::ram_alloc(uint32_t size) // sega8_cart_slot_device - constructor //------------------------------------------------- -sega8_cart_slot_device::sega8_cart_slot_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, bool is_card, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_image_interface(mconfig, *this), - device_slot_interface(mconfig, *this), - m_type(SEGA8_BASE_ROM), - m_must_be_loaded(false), - m_interface("sms_cart"), - m_extensions("bin"), m_cart(nullptr) +sega8_cart_slot_device::sega8_cart_slot_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, bool is_card) + : device_t(mconfig, type, tag, owner, clock) + , device_image_interface(mconfig, *this) + , device_slot_interface(mconfig, *this) + , m_type(SEGA8_BASE_ROM) + , m_must_be_loaded(false) + , m_is_card(is_card) + , m_interface("sms_cart") + , m_extensions("bin") + , m_cart(nullptr) { - m_is_card = is_card; } -sega8_cart_slot_device::sega8_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, SEGA8_CART_SLOT, "Sega Master System / Game Gear / SG1000 Cartridge Slot", tag, owner, clock, "sega8_cart_slot", __FILE__), - device_image_interface(mconfig, *this), - device_slot_interface(mconfig, *this), - m_type(SEGA8_BASE_ROM), - m_must_be_loaded(false), - m_is_card(false), - m_interface("sms_cart"), - m_extensions("bin"), m_cart(nullptr) +sega8_cart_slot_device::sega8_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : sega8_cart_slot_device(mconfig, SEGA8_CART_SLOT, tag, owner, clock, false) { } -sega8_card_slot_device::sega8_card_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - sega8_cart_slot_device(mconfig, SEGA8_CARD_SLOT, "Sega Master System / Game Gear / SG1000 Card Slot", tag, owner, clock, true, "sega8_card_slot", __FILE__) +sega8_card_slot_device::sega8_card_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : sega8_cart_slot_device(mconfig, SEGA8_CARD_SLOT, tag, owner, clock, true) { } @@ -503,7 +497,7 @@ int sega8_cart_slot_device::get_cart_type(const uint8_t *ROM, uint32_t len) cons } } - LOG(("Mapper test: _0002 = %d, _8000 = %d, _a000 = %d, _ffff = %d\n", _0002, _8000, _a000, _ffff)); + LOG("Mapper test: _0002 = %d, _8000 = %d, _a000 = %d, _ffff = %d\n", _0002, _8000, _a000, _ffff); // 2 is a security measure, although tests on existing ROM showed it was not needed if (len > 0x10000 && (_0002 > _ffff + 2 || (_0002 > 0 && _ffff == 0))) diff --git a/src/devices/bus/sega8/sega8_slot.h b/src/devices/bus/sega8/sega8_slot.h index ca9ad1f1dba..fa26d4bed72 100644 --- a/src/devices/bus/sega8/sega8_slot.h +++ b/src/devices/bus/sega8/sega8_slot.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __SEGA8_SLOT_H -#define __SEGA8_SLOT_H +#ifndef MAME_BUS_SEGA8_SLOT_H +#define MAME_BUS_SEGA8_SLOT_H + +#pragma once #include "softlist_dev.h" @@ -34,8 +36,8 @@ enum }; -extern const device_type SEGA8_CART_SLOT; -extern const device_type SEGA8_CARD_SLOT; +DECLARE_DEVICE_TYPE(SEGA8_CART_SLOT, sega8_cart_slot_device) +DECLARE_DEVICE_TYPE(SEGA8_CARD_SLOT, sega8_card_slot_device) // ======================> device_sega8_cart_interface @@ -44,22 +46,21 @@ class device_sega8_cart_interface : public device_slot_card_interface { public: // construction/destruction - device_sega8_cart_interface(const machine_config &mconfig, device_t &device); virtual ~device_sega8_cart_interface(); // reading and writing virtual DECLARE_READ8_MEMBER(read_cart) { return 0xff; } - virtual DECLARE_WRITE8_MEMBER(write_cart) {} - virtual DECLARE_WRITE8_MEMBER(write_mapper) {} + virtual DECLARE_WRITE8_MEMBER(write_cart) { } + virtual DECLARE_WRITE8_MEMBER(write_mapper) { } virtual int get_lphaser_xoffs() { return m_lphaser_xoffs; } // a few carts (for SG1000) acts as a RAM expansion, taking control of the system RAM in 0xc000-0xffff virtual DECLARE_READ8_MEMBER(read_ram) { return 0xff; } - virtual DECLARE_WRITE8_MEMBER(write_ram) {} + virtual DECLARE_WRITE8_MEMBER(write_ram) { } void rom_alloc(uint32_t size, const char *tag); void ram_alloc(uint32_t size); - virtual void late_bank_setup() {} + virtual void late_bank_setup() { } void set_has_battery(bool val) { has_battery = val; } bool get_has_battery() { return has_battery; } @@ -77,7 +78,9 @@ public: void save_ram() { device().save_item(NAME(m_ram)); } -//private: +protected: + device_sega8_cart_interface(const machine_config &mconfig, device_t &device); + // internal state uint8_t *m_rom; uint32_t m_rom_size; @@ -103,13 +106,9 @@ class sega8_cart_slot_device : public device_t, { public: // construction/destruction - sega8_cart_slot_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, bool is_card, const char *shortname, const char *source); sega8_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual ~sega8_cart_slot_device(); - // device-level overrides - virtual void device_start() override; - // image-level overrides virtual image_init_result call_load() override; virtual void call_unload() override; @@ -150,8 +149,15 @@ public: virtual DECLARE_READ8_MEMBER(read_ram); virtual DECLARE_WRITE8_MEMBER(write_ram); + int get_lphaser_xoffs() { return m_cart ? m_cart->get_lphaser_xoffs() : -1; } + int get_sms_mode() { return m_cart->get_sms_mode(); } + +protected: + sega8_cart_slot_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, bool is_card); + + // device-level overrides + virtual void device_start() override; -//protected: int m_type; bool m_must_be_loaded, m_is_card; const char *m_interface; @@ -242,4 +248,4 @@ SLOT_INTERFACE_EXTERN( sg1000mk3_cart ); SLOT_INTERFACE_EXTERN( sms_cart ); SLOT_INTERFACE_EXTERN( gg_cart ); -#endif +#endif // MAME_BUS_SEGA8_SLOT_H diff --git a/src/devices/bus/sg1000_exp/fm_unit.cpp b/src/devices/bus/sg1000_exp/fm_unit.cpp index d4798944d58..d305fd281ca 100644 --- a/src/devices/bus/sg1000_exp/fm_unit.cpp +++ b/src/devices/bus/sg1000_exp/fm_unit.cpp @@ -47,7 +47,7 @@ SMS version is not playing PSG sound on his Mark III with the FM unit. // DEVICE DEFINITIONS //************************************************************************** -const device_type SEGA_FM_UNIT = device_creator; +DEFINE_DEVICE_TYPE(SEGA_FM_UNIT, sega_fm_unit_device, "sega_fm_unit", "SG-1000 FM Sound Unit") static MACHINE_CONFIG_FRAGMENT( fm_config ) @@ -74,7 +74,7 @@ machine_config_constructor sega_fm_unit_device::device_mconfig_additions() const //------------------------------------------------- sega_fm_unit_device::sega_fm_unit_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, SEGA_FM_UNIT, "Sega FM Sound Unit", tag, owner, clock, "sega_fm_unit", __FILE__), + device_t(mconfig, SEGA_FM_UNIT, tag, owner, clock), device_sg1000_expansion_slot_interface(mconfig, *this), m_ym(*this, "ym2413"), m_psg(*this, ":segapsg"), diff --git a/src/devices/bus/sg1000_exp/fm_unit.h b/src/devices/bus/sg1000_exp/fm_unit.h index 17dadf0d142..4206462da87 100644 --- a/src/devices/bus/sg1000_exp/fm_unit.h +++ b/src/devices/bus/sg1000_exp/fm_unit.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_SG1000_EXP_FM_UNIT_H +#define MAME_BUS_SG1000_EXP_FM_UNIT_H -#ifndef __SEGA_FM_UNIT__ -#define __SEGA_FM_UNIT__ +#pragma once #include "sound/ym2413.h" @@ -52,7 +52,6 @@ private: // device type definition -extern const device_type SEGA_FM_UNIT; - +DECLARE_DEVICE_TYPE(SEGA_FM_UNIT, sega_fm_unit_device) -#endif +#endif // MAME_BUS_SG1000_EXP_FM_UNIT_H diff --git a/src/devices/bus/sg1000_exp/sg1000exp.cpp b/src/devices/bus/sg1000_exp/sg1000exp.cpp index d926a4b7a3a..8c8bc53f6a4 100644 --- a/src/devices/bus/sg1000_exp/sg1000exp.cpp +++ b/src/devices/bus/sg1000_exp/sg1000exp.cpp @@ -8,6 +8,7 @@ #include "emu.h" #include "sg1000exp.h" + // slot devices #include "sk1100.h" #include "fm_unit.h" @@ -18,7 +19,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type SG1000_EXPANSION_SLOT = device_creator; +DEFINE_DEVICE_TYPE(SG1000_EXPANSION_SLOT, sg1000_expansion_slot_device, "sg1000_expansion_slot", "Sega SG-1000 expansion slot") @@ -55,8 +56,9 @@ device_sg1000_expansion_slot_interface::~device_sg1000_expansion_slot_interface( //------------------------------------------------- sg1000_expansion_slot_device::sg1000_expansion_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, SG1000_EXPANSION_SLOT, "Sega SG-1000 expansion slot", tag, owner, clock, "sg1000_expansion_slot", __FILE__), - device_slot_interface(mconfig, *this), m_device(nullptr) + device_t(mconfig, SG1000_EXPANSION_SLOT, tag, owner, clock), + device_slot_interface(mconfig, *this), + m_device(nullptr) { } diff --git a/src/devices/bus/sg1000_exp/sg1000exp.h b/src/devices/bus/sg1000_exp/sg1000exp.h index 328f12e269c..ce8ae982980 100644 --- a/src/devices/bus/sg1000_exp/sg1000exp.h +++ b/src/devices/bus/sg1000_exp/sg1000exp.h @@ -9,10 +9,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_SG1000_EXP_SG1000EXP_H +#define MAME_BUS_SG1000_EXP_SG1000EXP_H -#ifndef __SG1000_EXPANSION_SLOT__ -#define __SG1000_EXPANSION_SLOT__ +#pragma once @@ -37,8 +37,7 @@ class device_sg1000_expansion_slot_interface; -class sg1000_expansion_slot_device : public device_t, - public device_slot_interface +class sg1000_expansion_slot_device : public device_t, public device_slot_interface { public: // construction/destruction @@ -66,25 +65,26 @@ class device_sg1000_expansion_slot_interface : public device_slot_card_interface { public: // construction/destruction - device_sg1000_expansion_slot_interface(const machine_config &mconfig, device_t &device); virtual ~device_sg1000_expansion_slot_interface(); - virtual DECLARE_READ8_MEMBER(peripheral_r) { return 0xff; }; - virtual DECLARE_WRITE8_MEMBER(peripheral_w) { }; + virtual DECLARE_READ8_MEMBER(peripheral_r) { return 0xff; } + virtual DECLARE_WRITE8_MEMBER(peripheral_w) { } - virtual bool is_readable(uint8_t offset) { return true; }; - virtual bool is_writeable(uint8_t offset) { return true; }; + virtual bool is_readable(uint8_t offset) { return true; } + virtual bool is_writeable(uint8_t offset) { return true; } protected: + device_sg1000_expansion_slot_interface(const machine_config &mconfig, device_t &device); + sg1000_expansion_slot_device *m_port; }; // device type definition -extern const device_type SG1000_EXPANSION_SLOT; +DECLARE_DEVICE_TYPE(SG1000_EXPANSION_SLOT, sg1000_expansion_slot_device) SLOT_INTERFACE_EXTERN( sg1000_expansion_devices ); -#endif +#endif // MAME_BUS_SG1000_EXP_SG1000EXP_H diff --git a/src/devices/bus/sg1000_exp/sk1100.cpp b/src/devices/bus/sg1000_exp/sk1100.cpp index 10df8f00ee1..3ae5a6ac7c1 100644 --- a/src/devices/bus/sg1000_exp/sk1100.cpp +++ b/src/devices/bus/sg1000_exp/sk1100.cpp @@ -27,7 +27,7 @@ TODO: // DEVICE DEFINITIONS //************************************************************************** -const device_type SEGA_SK1100 = device_creator; +DEFINE_DEVICE_TYPE(SEGA_SK1100, sega_sk1100_device, "sega_sk1100", "Sega SK-1100 Keyboard") /*------------------------------------------------- @@ -188,7 +188,7 @@ machine_config_constructor sega_sk1100_device::device_mconfig_additions() const //------------------------------------------------- sega_sk1100_device::sega_sk1100_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, SEGA_SK1100, "Sega SK-1100 Keyboard", tag, owner, clock, "sega_sk1100", __FILE__), + device_t(mconfig, SEGA_SK1100, tag, owner, clock), device_sg1000_expansion_slot_interface(mconfig, *this), m_cassette(*this, "cassette"), m_ppi(*this, UPD9255_0_TAG), diff --git a/src/devices/bus/sg1000_exp/sk1100.h b/src/devices/bus/sg1000_exp/sk1100.h index 29aa91c3074..1679e5aea27 100644 --- a/src/devices/bus/sg1000_exp/sk1100.h +++ b/src/devices/bus/sg1000_exp/sk1100.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_SG1000_EXP_SK1100_H +#define MAME_BUS_SG1000_EXP_SK1100_H -#ifndef __SEGA_SK1100__ -#define __SEGA_SK1100__ +#pragma once #include "sg1000exp.h" @@ -64,7 +64,7 @@ private: // device type definition -extern const device_type SEGA_SK1100; +DECLARE_DEVICE_TYPE(SEGA_SK1100, sega_sk1100_device) -#endif +#endif // MAME_BUS_SG1000_EXP_SK1100_H diff --git a/src/devices/bus/sms_ctrl/graphic.cpp b/src/devices/bus/sms_ctrl/graphic.cpp index 6aba4cdcbfb..1ada76748e7 100644 --- a/src/devices/bus/sms_ctrl/graphic.cpp +++ b/src/devices/bus/sms_ctrl/graphic.cpp @@ -28,7 +28,7 @@ Then 2 nibbles are read to form a byte (first high nibble, then low nibble) indi whether the pen is on the graphic board, a value of FD, FE, or FF used for this. For any other value the following 2 bytes are not read. Then 2 nibbles are read to form a byte containing the absolute X coordinate. -THen 2 nibbles are read to form a byte containing the absolute Y coordiante. +Then 2 nibbles are read to form a byte containing the absolute Y coordiante. **********************************************************************/ @@ -41,7 +41,7 @@ THen 2 nibbles are read to form a byte containing the absolute Y coordiante. // DEVICE DEFINITIONS //************************************************************************** -const device_type SMS_GRAPHIC = device_creator; +DEFINE_DEVICE_TYPE(SMS_GRAPHIC, sms_graphic_device, "sms_graphic", "Sega SMS Graphic Board") static INPUT_PORTS_START( sms_graphic ) @@ -77,7 +77,7 @@ ioport_constructor sms_graphic_device::device_input_ports() const //------------------------------------------------- sms_graphic_device::sms_graphic_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, SMS_GRAPHIC, "Sega SMS Graphic Board", tag, owner, clock, "sms_graphic", __FILE__) + : device_t(mconfig, SMS_GRAPHIC, tag, owner, clock) , device_sms_control_port_interface(mconfig, *this) , m_buttons(*this, "BUTTONS") , m_x(*this, "X") diff --git a/src/devices/bus/sms_ctrl/graphic.h b/src/devices/bus/sms_ctrl/graphic.h index 921e96b75d6..036f4660033 100644 --- a/src/devices/bus/sms_ctrl/graphic.h +++ b/src/devices/bus/sms_ctrl/graphic.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_SMS_CTRL_GRAPHIC_H +#define MAME_BUS_SMS_CTRL_GRAPHIC_H -#ifndef __SMS_GRAPHIC__ -#define __SMS_GRAPHIC__ +#pragma once #include "smsctrl.h" @@ -52,7 +52,7 @@ private: // device type definition -extern const device_type SMS_GRAPHIC; +DECLARE_DEVICE_TYPE(SMS_GRAPHIC, sms_graphic_device) -#endif +#endif // MAME_BUS_SMS_CTRL_GRAPHIC_H diff --git a/src/devices/bus/sms_ctrl/joypad.cpp b/src/devices/bus/sms_ctrl/joypad.cpp index 2de1d1b13df..4cd664a952e 100644 --- a/src/devices/bus/sms_ctrl/joypad.cpp +++ b/src/devices/bus/sms_ctrl/joypad.cpp @@ -30,7 +30,7 @@ Release data from the Sega Retro project: // DEVICE DEFINITIONS //************************************************************************** -const device_type SMS_JOYPAD = device_creator; +DEFINE_DEVICE_TYPE(SMS_JOYPAD, sms_joypad_device, "sms_joypad", "Sega SMS Control Pad") static INPUT_PORTS_START( sms_joypad ) @@ -66,7 +66,7 @@ ioport_constructor sms_joypad_device::device_input_ports() const //------------------------------------------------- sms_joypad_device::sms_joypad_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, SMS_JOYPAD, "Sega SMS Control Pad", tag, owner, clock, "sms_joypad", __FILE__), + device_t(mconfig, SMS_JOYPAD, tag, owner, clock), device_sms_control_port_interface(mconfig, *this), m_joypad(*this, "JOYPAD") { diff --git a/src/devices/bus/sms_ctrl/joypad.h b/src/devices/bus/sms_ctrl/joypad.h index 10bff08c5b0..60b4fe9f4c0 100644 --- a/src/devices/bus/sms_ctrl/joypad.h +++ b/src/devices/bus/sms_ctrl/joypad.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_SMS_CTRL_JOYPAD_H +#define MAME_BUS_SMS_CTRL_JOYPAD_H -#ifndef __SMS_JOYPAD__ -#define __SMS_JOYPAD__ +#pragma once #include "smsctrl.h" @@ -45,7 +45,7 @@ private: // device type definition -extern const device_type SMS_JOYPAD; +DECLARE_DEVICE_TYPE(SMS_JOYPAD, sms_joypad_device) -#endif +#endif // MAME_BUS_SMS_CTRL_JOYPAD_H diff --git a/src/devices/bus/sms_ctrl/lphaser.cpp b/src/devices/bus/sms_ctrl/lphaser.cpp index a6fec3a798f..264f74151a1 100644 --- a/src/devices/bus/sms_ctrl/lphaser.cpp +++ b/src/devices/bus/sms_ctrl/lphaser.cpp @@ -29,7 +29,7 @@ Notes: // DEVICE DEFINITIONS //************************************************************************** -const device_type SMS_LIGHT_PHASER = device_creator; +DEFINE_DEVICE_TYPE(SMS_LIGHT_PHASER, sms_light_phaser_device, "sms_light_phaser", "Sega SMS Light Phaser") #define LGUN_RADIUS 6 @@ -84,7 +84,7 @@ ioport_constructor sms_light_phaser_device::device_input_ports() const //------------------------------------------------- sms_light_phaser_device::sms_light_phaser_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, SMS_LIGHT_PHASER, "Sega SMS Light Phaser", tag, owner, clock, "sms_light_phaser", __FILE__), + device_t(mconfig, SMS_LIGHT_PHASER, tag, owner, clock), device_video_interface(mconfig, *this), device_sms_control_port_interface(mconfig, *this), m_lphaser_pins(*this, "CTRL_PORT"), diff --git a/src/devices/bus/sms_ctrl/lphaser.h b/src/devices/bus/sms_ctrl/lphaser.h index 8d25f9fe34f..c9d145f861b 100644 --- a/src/devices/bus/sms_ctrl/lphaser.h +++ b/src/devices/bus/sms_ctrl/lphaser.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_SMS_CTRL_LPHASER_H +#define MAME_BUS_SMS_CTRL_LPHASER_H -#ifndef __SMS_LIGHT_PHASER__ -#define __SMS_LIGHT_PHASER__ +#pragma once #include "smsctrl.h" @@ -62,7 +62,7 @@ private: // device type definition -extern const device_type SMS_LIGHT_PHASER; +DECLARE_DEVICE_TYPE(SMS_LIGHT_PHASER, sms_light_phaser_device) -#endif +#endif // MAME_BUS_SMS_CTRL_LPHASER_H diff --git a/src/devices/bus/sms_ctrl/multitap.cpp b/src/devices/bus/sms_ctrl/multitap.cpp index 355b05ffb46..b85207c0695 100644 --- a/src/devices/bus/sms_ctrl/multitap.cpp +++ b/src/devices/bus/sms_ctrl/multitap.cpp @@ -17,7 +17,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type SMS_MULTITAP = device_creator; +DEFINE_DEVICE_TYPE(SMS_MULTITAP, sms_multitap_device, "sms_multitap", "Sega SMS Multitap") //************************************************************************** @@ -29,7 +29,7 @@ const device_type SMS_MULTITAP = device_creator; //------------------------------------------------- sms_multitap_device::sms_multitap_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, SMS_MULTITAP, "Sega SMS Multitap", tag, owner, clock, "sms_multitap", __FILE__), + device_t(mconfig, SMS_MULTITAP, tag, owner, clock), device_sms_control_port_interface(mconfig, *this), m_subctrl1_port(*this, "ctrl1"), m_subctrl2_port(*this, "ctrl2"), @@ -49,11 +49,6 @@ void sms_multitap_device::device_start() { save_item(NAME(m_read_state)); save_item(NAME(m_last_data)); - - m_subctrl1_port->device_start(); - m_subctrl2_port->device_start(); - m_subctrl3_port->device_start(); - m_subctrl4_port->device_start(); } diff --git a/src/devices/bus/sms_ctrl/multitap.h b/src/devices/bus/sms_ctrl/multitap.h index 534d2f7ccf9..ad57e269237 100644 --- a/src/devices/bus/sms_ctrl/multitap.h +++ b/src/devices/bus/sms_ctrl/multitap.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_SMS_CTRL_MULTITAP_H +#define MAME_BUS_SMS_CTRL_MULTITAP_H -#ifndef __SMS_MULTITAP__ -#define __SMS_MULTITAP__ +#pragma once #include "smsctrl.h" @@ -52,7 +52,7 @@ private: // device type definition -extern const device_type SMS_MULTITAP; +DECLARE_DEVICE_TYPE(SMS_MULTITAP, sms_multitap_device) -#endif +#endif // MAME_BUS_SMS_CTRL_MULTITAP_H diff --git a/src/devices/bus/sms_ctrl/paddle.cpp b/src/devices/bus/sms_ctrl/paddle.cpp index dbda3fe9740..f19da195186 100644 --- a/src/devices/bus/sms_ctrl/paddle.cpp +++ b/src/devices/bus/sms_ctrl/paddle.cpp @@ -32,7 +32,7 @@ Notes: // DEVICE DEFINITIONS //************************************************************************** -const device_type SMS_PADDLE = device_creator; +DEFINE_DEVICE_TYPE(SMS_PADDLE, sms_paddle_device, "sms_paddle", "Sega SMS Paddle") // time interval not verified // Player 2 of Galactic Protector is the most sensible to this timming. @@ -91,7 +91,7 @@ ioport_constructor sms_paddle_device::device_input_ports() const //------------------------------------------------- sms_paddle_device::sms_paddle_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, SMS_PADDLE, "Sega SMS Paddle", tag, owner, clock, "sms_paddle", __FILE__), + device_t(mconfig, SMS_PADDLE, tag, owner, clock), device_sms_control_port_interface(mconfig, *this), m_paddle_pins(*this, "CTRL_PORT"), m_paddle_x(*this, "PADDLE_X"), diff --git a/src/devices/bus/sms_ctrl/paddle.h b/src/devices/bus/sms_ctrl/paddle.h index 12134943208..5c302e6b71e 100644 --- a/src/devices/bus/sms_ctrl/paddle.h +++ b/src/devices/bus/sms_ctrl/paddle.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_SMS_CTRL_PADDLE_H +#define MAME_BUS_SMS_CTRL_PADDLE_H -#ifndef __SMS_PADDLE__ -#define __SMS_PADDLE__ +#pragma once #include "smsctrl.h" @@ -56,4 +56,4 @@ private: extern const device_type SMS_PADDLE; -#endif +#endif // MAME_BUS_SMS_CTRL_PADDLE_H diff --git a/src/devices/bus/sms_ctrl/rfu.cpp b/src/devices/bus/sms_ctrl/rfu.cpp index 434995a6fa7..125c0f5caf6 100644 --- a/src/devices/bus/sms_ctrl/rfu.cpp +++ b/src/devices/bus/sms_ctrl/rfu.cpp @@ -28,7 +28,7 @@ Notes: // DEVICE DEFINITIONS //************************************************************************** -const device_type SMS_RAPID_FIRE = device_creator; +DEFINE_DEVICE_TYPE(SMS_RAPID_FIRE, sms_rapid_fire_device, "sms_rapid_fire", "Sega SMS Rapid Fire Unit") // time interval not verified #define RAPID_FIRE_INTERVAL attotime::from_hz(10) @@ -64,7 +64,7 @@ ioport_constructor sms_rapid_fire_device::device_input_ports() const //------------------------------------------------- sms_rapid_fire_device::sms_rapid_fire_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, SMS_RAPID_FIRE, "Sega SMS Rapid Fire", tag, owner, clock, "sms_rapid_fire", __FILE__), + device_t(mconfig, SMS_RAPID_FIRE, tag, owner, clock), device_sms_control_port_interface(mconfig, *this), m_rfire_sw(*this, "rfu_sw"), m_subctrl_port(*this, "ctrl"), @@ -84,8 +84,6 @@ void sms_rapid_fire_device::device_start() save_item(NAME(m_start_time)); save_item(NAME(m_read_state)); - - m_subctrl_port->device_start(); } diff --git a/src/devices/bus/sms_ctrl/rfu.h b/src/devices/bus/sms_ctrl/rfu.h index 32ae2d9b554..d40259aea09 100644 --- a/src/devices/bus/sms_ctrl/rfu.h +++ b/src/devices/bus/sms_ctrl/rfu.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_SMS_CTRL_RFU_H +#define MAME_BUS_SMS_CTRL_RFU_H -#ifndef __SMS_RAPID_FIRE__ -#define __SMS_RAPID_FIRE__ +#pragma once #include "smsctrl.h" @@ -55,7 +55,7 @@ private: // device type definition -extern const device_type SMS_RAPID_FIRE; +DECLARE_DEVICE_TYPE(SMS_RAPID_FIRE, sms_rapid_fire_device) -#endif +#endif // MAME_BUS_SMS_CTRL_RFU_H diff --git a/src/devices/bus/sms_ctrl/smsctrl.cpp b/src/devices/bus/sms_ctrl/smsctrl.cpp index 0967ae723c3..6d760f9bf93 100644 --- a/src/devices/bus/sms_ctrl/smsctrl.cpp +++ b/src/devices/bus/sms_ctrl/smsctrl.cpp @@ -8,6 +8,7 @@ #include "emu.h" #include "smsctrl.h" + // slot devices #include "joypad.h" #include "lphaser.h" @@ -24,7 +25,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type SMS_CONTROL_PORT = device_creator; +DEFINE_DEVICE_TYPE(SMS_CONTROL_PORT, sms_control_port_device, "sms_control_port", "Sega SMS controller port") @@ -62,10 +63,11 @@ device_sms_control_port_interface::~device_sms_control_port_interface() //------------------------------------------------- sms_control_port_device::sms_control_port_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, SMS_CONTROL_PORT, "Sega SMS control port", tag, owner, clock, "sms_control_port", __FILE__), - device_slot_interface(mconfig, *this), m_device(nullptr), - m_th_pin_handler(*this), - m_pixel_handler(*this) + device_t(mconfig, SMS_CONTROL_PORT, tag, owner, clock), + device_slot_interface(mconfig, *this), + m_device(nullptr), + m_th_pin_handler(*this), + m_pixel_handler(*this) { } diff --git a/src/devices/bus/sms_ctrl/smsctrl.h b/src/devices/bus/sms_ctrl/smsctrl.h index 457f758391b..f1dd5404408 100644 --- a/src/devices/bus/sms_ctrl/smsctrl.h +++ b/src/devices/bus/sms_ctrl/smsctrl.h @@ -9,12 +9,10 @@ **********************************************************************/ -#pragma once - -#ifndef __SMS_CONTROL_PORT__ -#define __SMS_CONTROL_PORT__ - +#ifndef MAME_BUS_SMS_CTRL_SMSCTRL_H +#define MAME_BUS_SMS_CTRL_SMSCTRL_H +#pragma once //************************************************************************** @@ -54,9 +52,9 @@ public: virtual ~sms_control_port_device(); // static configuration helpers - template static devcb_base &set_th_input_handler(device_t &device, _Object object) { return downcast(device).m_th_pin_handler.set_callback(object); } + template static devcb_base &set_th_input_handler(device_t &device, Object &&cb) { return downcast(device).m_th_pin_handler.set_callback(std::forward(cb)); } - template static devcb_base &set_pixel_handler(device_t &device, _Object object) { return downcast(device).m_pixel_handler.set_callback(object); } + template static devcb_base &set_pixel_handler(device_t &device, Object &&cb) { return downcast(device).m_pixel_handler.set_callback(std::forward(cb)); } // Physical DE-9 connector interface @@ -77,7 +75,7 @@ public: void th_pin_w(int state); uint32_t pixel_r(); -//protected: +protected: // device-level overrides virtual void device_start() override; @@ -96,22 +94,23 @@ class device_sms_control_port_interface : public device_slot_card_interface { public: // construction/destruction - device_sms_control_port_interface(const machine_config &mconfig, device_t &device); virtual ~device_sms_control_port_interface(); - virtual uint8_t peripheral_r() { return 0xff; }; - virtual void peripheral_w(uint8_t data) { }; + virtual uint8_t peripheral_r() { return 0xff; } + virtual void peripheral_w(uint8_t data) { } protected: + device_sms_control_port_interface(const machine_config &mconfig, device_t &device); + sms_control_port_device *m_port; }; // device type definition -extern const device_type SMS_CONTROL_PORT; +DECLARE_DEVICE_TYPE(SMS_CONTROL_PORT, sms_control_port_device) SLOT_INTERFACE_EXTERN( sms_control_port_devices ); -#endif +#endif // MAME_BUS_SMS_CTRL_SMSCTRL_H diff --git a/src/devices/bus/sms_ctrl/sports.cpp b/src/devices/bus/sms_ctrl/sports.cpp index 02e2f614bdc..cd814ff14cc 100644 --- a/src/devices/bus/sms_ctrl/sports.cpp +++ b/src/devices/bus/sms_ctrl/sports.cpp @@ -47,7 +47,7 @@ Notes: // DEVICE DEFINITIONS //************************************************************************** -const device_type SMS_SPORTS_PAD = device_creator; +DEFINE_DEVICE_TYPE(SMS_SPORTS_PAD, sms_sports_pad_device, "sms_sports_pad", "Sega SMS Sports Pad (US)") // time interval not verified #define SPORTS_PAD_INTERVAL attotime::from_hz(XTAL_10_738635MHz/3/512) @@ -161,7 +161,7 @@ ioport_constructor sms_sports_pad_device::device_input_ports() const //------------------------------------------------- sms_sports_pad_device::sms_sports_pad_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, SMS_SPORTS_PAD, "Sega SMS Sports Pad US", tag, owner, clock, "sms_sports_pad", __FILE__), + device_t(mconfig, SMS_SPORTS_PAD, tag, owner, clock), device_sms_control_port_interface(mconfig, *this), m_sports_in(*this, "SPORTS_IN"), m_sports_out(*this, "SPORTS_OUT"), @@ -171,7 +171,8 @@ sms_sports_pad_device::sms_sports_pad_device(const machine_config &mconfig, cons m_th_pin_state(0), m_x_axis_reset_value(0x80), // value 0x80 helps when start playing paddle games. m_y_axis_reset_value(0x80), - m_interval(SPORTS_PAD_INTERVAL), m_sportspad_timer(nullptr) + m_interval(SPORTS_PAD_INTERVAL), + m_sportspad_timer(nullptr) { } diff --git a/src/devices/bus/sms_ctrl/sports.h b/src/devices/bus/sms_ctrl/sports.h index bad15dc1ec0..6644541f36a 100644 --- a/src/devices/bus/sms_ctrl/sports.h +++ b/src/devices/bus/sms_ctrl/sports.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_SMS_CTRL_SPORTS_H +#define MAME_BUS_SMS_CTRL_SPORTS_H -#ifndef __SMS_SPORTS_PAD__ -#define __SMS_SPORTS_PAD__ +#pragma once #include "smsctrl.h" @@ -63,7 +63,7 @@ private: // device type definition -extern const device_type SMS_SPORTS_PAD; +DECLARE_DEVICE_TYPE(SMS_SPORTS_PAD, sms_sports_pad_device) -#endif +#endif // MAME_BUS_SMS_CTRL_SPORTS_H diff --git a/src/devices/bus/sms_ctrl/sportsjp.cpp b/src/devices/bus/sms_ctrl/sportsjp.cpp index 9cf326009fa..62903aac179 100644 --- a/src/devices/bus/sms_ctrl/sportsjp.cpp +++ b/src/devices/bus/sms_ctrl/sportsjp.cpp @@ -50,7 +50,7 @@ Notes: // DEVICE DEFINITIONS //************************************************************************** -const device_type SMS_SPORTS_PAD_JP = device_creator; +DEFINE_DEVICE_TYPE(SMS_SPORTS_PAD_JP, sms_sports_pad_jp_device, "sms_sports_pad_jp", "Sega SMS Sports Pad (JP)") // time interval not verified #define SPORTS_PAD_JP_INTERVAL attotime::from_hz(20000) @@ -104,7 +104,7 @@ ioport_constructor sms_sports_pad_jp_device::device_input_ports() const //------------------------------------------------- sms_sports_pad_jp_device::sms_sports_pad_jp_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, SMS_SPORTS_PAD_JP, "Sega SMS Sports Pad JP", tag, owner, clock, "sms_sports_pad_jp", __FILE__), + device_t(mconfig, SMS_SPORTS_PAD_JP, tag, owner, clock), device_sms_control_port_interface(mconfig, *this), m_sports_jp_in(*this, "SPORTS_JP_IN"), m_sports_jp_bt(*this, "SPORTS_JP_BT"), diff --git a/src/devices/bus/sms_ctrl/sportsjp.h b/src/devices/bus/sms_ctrl/sportsjp.h index 76b5697fbfc..92ee2ccd70c 100644 --- a/src/devices/bus/sms_ctrl/sportsjp.h +++ b/src/devices/bus/sms_ctrl/sportsjp.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_SMS_CTROL_SPORTSJP_H +#define MAME_BUS_SMS_CTROL_SPORTSJP_H -#ifndef __SMS_SPORTS_PAD_JP__ -#define __SMS_SPORTS_PAD_JP__ +#pragma once #include "smsctrl.h" @@ -58,7 +58,7 @@ private: // device type definition -extern const device_type SMS_SPORTS_PAD_JP; +DECLARE_DEVICE_TYPE(SMS_SPORTS_PAD_JP, sms_sports_pad_jp_device) -#endif +#endif // MAME_BUS_SMS_CTROL_SPORTSJP_H diff --git a/src/devices/bus/sms_exp/gender.cpp b/src/devices/bus/sms_exp/gender.cpp index 0b1356db592..77dd7970de9 100644 --- a/src/devices/bus/sms_exp/gender.cpp +++ b/src/devices/bus/sms_exp/gender.cpp @@ -22,7 +22,7 @@ real hardware, when run plugged-in to the SMS expansion slot. // DEVICE DEFINITIONS //************************************************************************** -const device_type SMS_GENDER_ADAPTER = device_creator; +DEFINE_DEVICE_TYPE(SMS_GENDER_ADAPTER, sms_gender_adapter_device, "sms_gender_adapter", "SMSPower Gender Adapter") @@ -35,7 +35,7 @@ const device_type SMS_GENDER_ADAPTER = device_creator //------------------------------------------------- sms_gender_adapter_device::sms_gender_adapter_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, SMS_GENDER_ADAPTER, "Gender Adapter", tag, owner, clock, "sms_gender_adapter", __FILE__), + device_t(mconfig, SMS_GENDER_ADAPTER, tag, owner, clock), device_sms_expansion_slot_interface(mconfig, *this), m_subslot(*this, "subslot") { @@ -48,8 +48,7 @@ sms_gender_adapter_device::sms_gender_adapter_device(const machine_config &mconf void sms_gender_adapter_device::device_start() { - if (m_subslot->m_cart) - m_subslot->m_cart->save_ram(); + m_subslot->save_ram(); } @@ -69,10 +68,7 @@ READ8_MEMBER(sms_gender_adapter_device::read_ram) int sms_gender_adapter_device::get_lphaser_xoffs() { - if (m_subslot->m_cart) - return m_subslot->m_cart->get_lphaser_xoffs(); - else - return 0; + return m_subslot->get_lphaser_xoffs(); } diff --git a/src/devices/bus/sms_exp/gender.h b/src/devices/bus/sms_exp/gender.h index 431b356a7d2..8fb3175d18a 100644 --- a/src/devices/bus/sms_exp/gender.h +++ b/src/devices/bus/sms_exp/gender.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_SMS_EXP_GENDER_H +#define MAME_BUS_SMS_EXP_GENDER_H -#ifndef __SMS_GENDER_ADAPTER__ -#define __SMS_GENDER_ADAPTER__ +#pragma once #include "smsexp.h" @@ -50,7 +50,6 @@ private: // device type definition -extern const device_type SMS_GENDER_ADAPTER; - +DECLARE_DEVICE_TYPE(SMS_GENDER_ADAPTER, sms_gender_adapter_device) -#endif +#endif // MAME_BUS_SMS_EXP_GENDER_H diff --git a/src/devices/bus/sms_exp/smsexp.cpp b/src/devices/bus/sms_exp/smsexp.cpp index 12e4ebcc48d..89cdf8083a8 100644 --- a/src/devices/bus/sms_exp/smsexp.cpp +++ b/src/devices/bus/sms_exp/smsexp.cpp @@ -9,13 +9,17 @@ #include "emu.h" #include "smsexp.h" +// slot devices +#include "gender.h" + + //************************************************************************** // GLOBAL VARIABLES //************************************************************************** -const device_type SMS_EXPANSION_SLOT = device_creator; +DEFINE_DEVICE_TYPE(SMS_EXPANSION_SLOT, sms_expansion_slot_device, "sms_expansion_slot", "Sega SMS expansion slot") @@ -52,8 +56,9 @@ device_sms_expansion_slot_interface::~device_sms_expansion_slot_interface() //------------------------------------------------- sms_expansion_slot_device::sms_expansion_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, SMS_EXPANSION_SLOT, "Sega SMS expansion slot", tag, owner, clock, "sms_expansion_slot", __FILE__), - device_slot_interface(mconfig, *this), m_device(nullptr) + device_t(mconfig, SMS_EXPANSION_SLOT, tag, owner, clock), + device_slot_interface(mconfig, *this), + m_device(nullptr) { } @@ -77,58 +82,6 @@ void sms_expansion_slot_device::device_start() } -//------------------------------------------------- -// read -//------------------------------------------------- - -READ8_MEMBER(sms_expansion_slot_device::read) -{ - if (m_device) - return m_device->read(space, offset); - else - return 0xff; -} - -READ8_MEMBER(sms_expansion_slot_device::read_ram) -{ - if (m_device) - return m_device->read_ram(space, offset); - else - return 0xff; -} - -int sms_expansion_slot_device::get_lphaser_xoffs() -{ - if (m_device) - return m_device->get_lphaser_xoffs(); - else - return 0; -} - - -//------------------------------------------------- -// write -//------------------------------------------------- - -WRITE8_MEMBER(sms_expansion_slot_device::write_mapper) -{ - if (m_device) - m_device->write_mapper(space, offset, data); -} - -WRITE8_MEMBER(sms_expansion_slot_device::write) -{ - if (m_device) - m_device->write(space, offset, data); -} - -WRITE8_MEMBER(sms_expansion_slot_device::write_ram) -{ - if (m_device) - m_device->write_ram(space, offset, data); -} - - //------------------------------------------------- // SLOT_INTERFACE( sms_expansion_devices ) //------------------------------------------------- diff --git a/src/devices/bus/sms_exp/smsexp.h b/src/devices/bus/sms_exp/smsexp.h index 6203380fc2f..5ea8a344384 100644 --- a/src/devices/bus/sms_exp/smsexp.h +++ b/src/devices/bus/sms_exp/smsexp.h @@ -9,10 +9,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_SMS_EXP_SMSEXP_H +#define MAME_BUS_SMS_EXP_SMSEXP_H -#ifndef __SMS_EXPANSION_SLOT__ -#define __SMS_EXPANSION_SLOT__ +#pragma once @@ -31,64 +31,63 @@ // TYPE DEFINITIONS //************************************************************************** -// ======================> sms_expansion_slot_device - -class device_sms_expansion_slot_interface; +// ======================> device_sms_expansion_slot_interface -class sms_expansion_slot_device : public device_t, - public device_slot_interface +// class representing interface-specific live sms_expansion card +class device_sms_expansion_slot_interface : public device_slot_card_interface { public: // construction/destruction - sms_expansion_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual ~sms_expansion_slot_device(); + virtual ~device_sms_expansion_slot_interface(); // reading and writing - DECLARE_READ8_MEMBER(read); - DECLARE_WRITE8_MEMBER(write); - DECLARE_WRITE8_MEMBER(write_mapper); - DECLARE_READ8_MEMBER(read_ram); - DECLARE_WRITE8_MEMBER(write_ram); + virtual DECLARE_READ8_MEMBER(read) { return 0xff; } + virtual DECLARE_WRITE8_MEMBER(write) { } + virtual DECLARE_WRITE8_MEMBER(write_mapper) { } + virtual DECLARE_READ8_MEMBER(read_ram) { return 0xff; } + virtual DECLARE_WRITE8_MEMBER(write_ram) { } - int get_lphaser_xoffs(); - - device_sms_expansion_slot_interface *m_device; + virtual int get_lphaser_xoffs() { return 0; } protected: - // device-level overrides - virtual void device_start() override; + device_sms_expansion_slot_interface(const machine_config &mconfig, device_t &device); }; -// ======================> device_sms_expansion_slot_interface +// ======================> sms_expansion_slot_device -// class representing interface-specific live sms_expansion card -class device_sms_expansion_slot_interface : public device_slot_card_interface +class sms_expansion_slot_device : public device_t, + public device_slot_interface { public: // construction/destruction - device_sms_expansion_slot_interface(const machine_config &mconfig, device_t &device); - virtual ~device_sms_expansion_slot_interface(); + sms_expansion_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + virtual ~sms_expansion_slot_device(); // reading and writing - virtual DECLARE_READ8_MEMBER(read) { return 0xff; }; - virtual DECLARE_WRITE8_MEMBER(write) { }; - virtual DECLARE_WRITE8_MEMBER(write_mapper) {}; - virtual DECLARE_READ8_MEMBER(read_ram) { return 0xff; }; - virtual DECLARE_WRITE8_MEMBER(write_ram) { }; + DECLARE_READ8_MEMBER(read) { return m_device ? m_device->read(space, offset, mem_mask) : 0xff; } + DECLARE_WRITE8_MEMBER(write) { if (m_device) m_device->write(space, offset, data, mem_mask); } + DECLARE_WRITE8_MEMBER(write_mapper) { if (m_device) m_device->write_mapper(space, offset, data, mem_mask); } + DECLARE_READ8_MEMBER(read_ram) { return m_device ? m_device->read_ram(space, offset, mem_mask) : 0xff; } + DECLARE_WRITE8_MEMBER(write_ram) { if (m_device) m_device->write_ram(space, offset, data, mem_mask); } - virtual int get_lphaser_xoffs() { return 0; }; + int get_lphaser_xoffs() { return m_device ? m_device->get_lphaser_xoffs() : 0; } + + bool device_present() const { return bool(m_device); } + +protected: + // device-level overrides + virtual void device_start() override; + + device_sms_expansion_slot_interface *m_device; }; // device type definition -extern const device_type SMS_EXPANSION_SLOT; - +DECLARE_DEVICE_TYPE(SMS_EXPANSION_SLOT, sms_expansion_slot_device) -// slot devices -#include "gender.h" SLOT_INTERFACE_EXTERN( sms_expansion_devices ); -#endif +#endif // MAME_BUS_SMS_EXP_SMSEXP_H diff --git a/src/devices/bus/snes/bsx.cpp b/src/devices/bus/snes/bsx.cpp index a81aeac02b6..984d0a04f45 100644 --- a/src/devices/bus/snes/bsx.cpp +++ b/src/devices/bus/snes/bsx.cpp @@ -18,59 +18,52 @@ // sns_rom_bsx_device - constructor //------------------------------------------------- -const device_type SNS_ROM_BSX = device_creator; -const device_type SNS_LOROM_BSX = device_creator; -const device_type SNS_HIROM_BSX = device_creator; -const device_type SNS_BSMEMPAK = device_creator; - - -sns_rom_bsx_device::sns_rom_bsx_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : sns_rom_device(mconfig, type, name, tag, owner, clock, shortname, source), - m_base_unit(nullptr), - access_00_1f(0), - access_80_9f(0), - access_40_4f(0), - access_50_5f(0), - access_60_6f(0), - rom_access(0), - m_slot(*this, "bs_slot") +DEFINE_DEVICE_TYPE(SNS_ROM_BSX, sns_rom_bsx_device, "sns_rom_bsx", "SNES BS-X Cart") +DEFINE_DEVICE_TYPE(SNS_LOROM_BSX, sns_rom_bsxlo_device, "sns_rom_bsxlo", "SNES Cart (LoROM) + BS-X slot") +DEFINE_DEVICE_TYPE(SNS_HIROM_BSX, sns_rom_bsxhi_device, "sns_rom_bsxhi", "SNES Cart (HiROM) + BS-X slot") +DEFINE_DEVICE_TYPE(SNS_BSMEMPAK, sns_rom_bsmempak_device, "sns_bsmempak", "SNES BS-X Memory packs") + + +sns_rom_bsx_device::sns_rom_bsx_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : sns_rom_device(mconfig, type, tag, owner, clock) + , m_base_unit(nullptr) + , access_00_1f(0) + , access_80_9f(0) + , access_40_4f(0) + , access_50_5f(0) + , access_60_6f(0) + , rom_access(0) + , m_slot(*this, "bs_slot") { } sns_rom_bsx_device::sns_rom_bsx_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : sns_rom_device(mconfig, SNS_ROM_BSX, "SNES BS-X Cart", tag, owner, clock, "sns_rom_bsx", __FILE__), - m_base_unit(nullptr), - access_00_1f(0), - access_80_9f(0), - access_40_4f(0), - access_50_5f(0), - access_60_6f(0), - rom_access(0), - m_slot(*this, "bs_slot") + : sns_rom_bsx_device(mconfig, SNS_ROM_BSX, tag, owner, clock) { } sns_rom_bsxlo_device::sns_rom_bsxlo_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : sns_rom_device(mconfig, SNS_LOROM_BSX, "SNES Cart (LoROM) + BS-X slot", tag, owner, clock, "sns_rom_bsxlo", __FILE__), - m_slot(*this, "bs_slot") + : sns_rom_device(mconfig, SNS_LOROM_BSX, tag, owner, clock) + , m_slot(*this, "bs_slot") { } sns_rom_bsxhi_device::sns_rom_bsxhi_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : sns_rom21_device(mconfig, SNS_HIROM_BSX, "SNES Cart (HiROM) + BS-X slot", tag, owner, clock, "sns_rom_bsxhi", __FILE__), - m_slot(*this, "bs_slot") + : sns_rom21_device(mconfig, SNS_HIROM_BSX, tag, owner, clock) + , m_slot(*this, "bs_slot") { } sns_rom_bsmempak_device::sns_rom_bsmempak_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : sns_rom_device(mconfig, SNS_BSMEMPAK, "SNES BS-X Memory packs", tag, owner, clock, "sns_bsmempak", __FILE__), m_command(0), m_write_old(0), m_write_new(0), m_flash_enable(0), m_read_enable(0), m_write_enable(0) - { + : sns_rom_device(mconfig, SNS_BSMEMPAK, tag, owner, clock) + , m_command(0), m_write_old(0), m_write_new(0), m_flash_enable(0), m_read_enable(0), m_write_enable(0) +{ } void sns_rom_bsx_device::device_start() { - m_base_unit = std::make_unique(machine()); + m_base_unit = std::make_unique(machine()); m_base_unit->init(); memset(m_cart_regs, 0x00, sizeof(m_cart_regs)); @@ -126,8 +119,8 @@ void sns_rom_bsmempak_device::device_reset() // BS-X Base Unit emulation, to be device-fied ? -BSX_base::BSX_base(running_machine &machine) - : r2192_minute(0), m_machine(machine) +sns_rom_bsx_device::bsx_base::bsx_base(running_machine &machine) + : r2192_minute(0), m_machine(machine) { m_machine.save().save_item(regs, "SNES_BSX/regs"); m_machine.save().save_item(r2192_counter, "SNES_BSX/r2192_counter"); @@ -135,9 +128,9 @@ BSX_base::BSX_base(running_machine &machine) m_machine.save().save_item(r2192_second, "SNES_BSX/r2192_second"); } -void BSX_base::init() +void sns_rom_bsx_device::bsx_base::init() { - memset(regs, 0x00, sizeof(regs)); + std::fill(std::begin(regs), std::end(regs), 0); r2192_counter = 0; r2192_hour = 0; r2192_minute = 0; @@ -145,7 +138,7 @@ void BSX_base::init() } -uint8_t BSX_base::read(uint32_t offset) +uint8_t sns_rom_bsx_device::bsx_base::read(uint32_t offset) { offset &= 0xffff; if (offset < 0x2188 || offset >= 0x21a0) @@ -207,7 +200,7 @@ uint8_t BSX_base::read(uint32_t offset) } -void BSX_base::write(uint32_t offset, uint8_t data) +void sns_rom_bsx_device::bsx_base::write(uint32_t offset, uint8_t data) { offset &= 0xffff; if (offset < 0x2188 || offset >= 0x21a0) diff --git a/src/devices/bus/snes/bsx.h b/src/devices/bus/snes/bsx.h index 677b81808dc..926959a7b32 100644 --- a/src/devices/bus/snes/bsx.h +++ b/src/devices/bus/snes/bsx.h @@ -1,45 +1,22 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __SNS_BSX_H -#define __SNS_BSX_H +#ifndef MAME_BUS_SNES_BSX_H +#define MAME_BUS_SNES_BSX_H + +#pragma once #include "snes_slot.h" #include "rom.h" #include "rom21.h" -class BSX_base -{ -public: - BSX_base(running_machine &machine); - running_machine &machine() const { return m_machine; } - - void init(); - uint8_t read(uint32_t offset); - void write(uint32_t offset, uint8_t data); - -private: - // regs - uint8_t regs[0x18]; // 0x2188-0x219f - - // counter + clock - uint8_t r2192_counter; - uint8_t r2192_hour, r2192_minute, r2192_second; - - running_machine& m_machine; -}; - // ======================> sns_rom_bsx_device class sns_rom_bsx_device : public sns_rom_device { public: // construction/destruction - sns_rom_bsx_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); sns_rom_bsx_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; virtual machine_config_constructor device_mconfig_additions() const override; // additional reading and writing @@ -50,8 +27,38 @@ public: virtual DECLARE_READ8_MEMBER(chip_read) override; virtual DECLARE_WRITE8_MEMBER(chip_write) override; +protected: + class bsx_base + { + public: + bsx_base(running_machine &machine); + running_machine &machine() const { return m_machine; } + + void init(); + uint8_t read(uint32_t offset); + void write(uint32_t offset, uint8_t data); + + private: + // regs + uint8_t regs[0x18]; // 0x2188-0x219f + + // counter + clock + uint8_t r2192_counter; + uint8_t r2192_hour, r2192_minute, r2192_second; + + running_machine& m_machine; + }; + + sns_rom_bsx_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + + void access_update(); + // base regs - std::unique_ptr m_base_unit; + std::unique_ptr m_base_unit; // cart regs uint8_t m_cart_regs[16]; @@ -61,8 +68,6 @@ public: uint8_t access_50_5f; // 1 = NOTHING, 0 = PRAM uint8_t access_60_6f; // 1 = PRAM, 0 = NOTHING uint8_t rom_access; // 2 = HiROM, 1 = LoROM, 0 = PRAM - void access_update(); - uint8_t m_pram[0x80000]; @@ -78,14 +83,16 @@ public: // construction/destruction sns_rom_bsxlo_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual machine_config_constructor device_mconfig_additions() const override; // additional reading and writing virtual DECLARE_READ8_MEMBER(read_l) override; virtual DECLARE_READ8_MEMBER(read_h) override; +protected: + // device-level overrides + virtual void device_start() override; + private: required_device m_slot; }; @@ -98,14 +105,16 @@ public: // construction/destruction sns_rom_bsxhi_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual machine_config_constructor device_mconfig_additions() const override; // additional reading and writing virtual DECLARE_READ8_MEMBER(read_l) override; virtual DECLARE_READ8_MEMBER(read_h) override; +protected: + // device-level overrides + virtual void device_start() override; + private: required_device m_slot; }; @@ -119,10 +128,6 @@ public: // construction/destruction sns_rom_bsmempak_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - // additional reading and writing virtual DECLARE_READ8_MEMBER(read_l) override; virtual DECLARE_READ8_MEMBER(read_h) override; @@ -131,6 +136,11 @@ public: // virtual DECLARE_READ8_MEMBER(chip_read); // virtual DECLARE_WRITE8_MEMBER(chip_write); +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + // flash regs uint32_t m_command; uint8_t m_write_old; @@ -143,9 +153,9 @@ public: // device type definition -extern const device_type SNS_ROM_BSX; -extern const device_type SNS_LOROM_BSX; -extern const device_type SNS_HIROM_BSX; -extern const device_type SNS_BSMEMPAK; +DECLARE_DEVICE_TYPE(SNS_ROM_BSX, sns_rom_bsx_device) +DECLARE_DEVICE_TYPE(SNS_LOROM_BSX, sns_rom_bsxlo_device) +DECLARE_DEVICE_TYPE(SNS_HIROM_BSX, sns_rom_bsxhi_device) +DECLARE_DEVICE_TYPE(SNS_BSMEMPAK, sns_rom_bsmempak_device) -#endif +#endif // MAME_BUS_SNES_BSX_H diff --git a/src/devices/bus/snes/event.cpp b/src/devices/bus/snes/event.cpp index 6b65443ab11..9d87ac8c72e 100644 --- a/src/devices/bus/snes/event.cpp +++ b/src/devices/bus/snes/event.cpp @@ -17,19 +17,19 @@ // sns_rom_device - constructor //------------------------------------------------- -const device_type SNS_PFEST94 = device_creator; +DEFINE_DEVICE_TYPE(SNS_PFEST94, sns_pfest94_device, "sns_pfest94", "SNES Powerfest '94") sns_pfest94_device::sns_pfest94_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, SNS_PFEST94, "SNES Powerfest '94", tag, owner, clock, "sns_pfest94", __FILE__), - device_sns_cart_interface(mconfig, *this), - m_upd7725(*this, "dsp"), - m_dsw(*this, "DIPSW"), - m_base_bank(0), - m_mask(0), - m_status(0), - m_count(0), - pfest94_timer(nullptr) + : device_t(mconfig, SNS_PFEST94, tag, owner, clock) + , device_sns_cart_interface(mconfig, *this) + , m_upd7725(*this, "dsp") + , m_dsw(*this, "DIPSW") + , m_base_bank(0) + , m_mask(0) + , m_status(0) + , m_count(0) + , pfest94_timer(nullptr) { } diff --git a/src/devices/bus/snes/event.h b/src/devices/bus/snes/event.h index 4703ed9b2cf..dc20096ef67 100644 --- a/src/devices/bus/snes/event.h +++ b/src/devices/bus/snes/event.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __SNS_EVENT_H -#define __SNS_EVENT_H +#ifndef MAME_BUS_SNES_EVENT_H +#define MAME_BUS_SNES_EVENT_H + +#pragma once #include "snes_slot.h" #include "cpu/upd7725/upd7725.h" @@ -16,16 +18,10 @@ public: // construction/destruction sns_pfest94_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; virtual machine_config_constructor device_mconfig_additions() const override; virtual ioport_constructor device_input_ports() const override; - required_device m_upd7725; - required_ioport m_dsw; - virtual void speedup_addon_bios_access() override; // reading and writing @@ -37,6 +33,16 @@ public: virtual DECLARE_READ32_MEMBER(necdsp_prg_r); virtual DECLARE_READ16_MEMBER(necdsp_data_r); +protected: + static constexpr device_timer_id TIMER_EVENT = 0; + + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + + required_device m_upd7725; + required_ioport m_dsw; + private: uint8_t m_base_bank; uint8_t m_mask; @@ -46,12 +52,11 @@ private: std::vector m_dsp_prg; std::vector m_dsp_data; - static const device_timer_id TIMER_EVENT = 0; emu_timer *pfest94_timer; }; // device type definition -extern const device_type SNS_PFEST94; +DECLARE_DEVICE_TYPE(SNS_PFEST94, sns_pfest94_device) -#endif +#endif // MAME_BUS_SNES_EVENT_H diff --git a/src/devices/bus/snes/rom.cpp b/src/devices/bus/snes/rom.cpp index 9cd44aa7d41..628ab1a212d 100644 --- a/src/devices/bus/snes/rom.cpp +++ b/src/devices/bus/snes/rom.cpp @@ -15,79 +15,77 @@ // sns_rom_device - constructor //------------------------------------------------- -const device_type SNS_LOROM = device_creator; -const device_type SNS_LOROM_OBC1 = device_creator; +DEFINE_DEVICE_TYPE(SNS_LOROM, sns_rom_device, "sns_rom", "SNES Cart (LoROM)") +DEFINE_DEVICE_TYPE(SNS_LOROM_OBC1, sns_rom_obc1_device, "sns_rom_obc1", "SNES Cart (LoROM) + OBC-1") // LoROM pirate carts with protection -const device_type SNS_LOROM_POKEMON = device_creator; -const device_type SNS_LOROM_TEKKEN2 = device_creator; -const device_type SNS_LOROM_SOULBLAD = device_creator; -const device_type SNS_LOROM_BANANA = device_creator; -const device_type SNS_LOROM_BUGSLIFE = device_creator; +DEFINE_DEVICE_TYPE(SNS_LOROM_POKEMON, sns_rom_pokemon_device, "sns_rom_pokemon", "SNES Pirate Carts with Protection") +DEFINE_DEVICE_TYPE(SNS_LOROM_TEKKEN2, sns_rom_tekken2_device, "sns_rom_tekken2", "SNES Tekken 2") +DEFINE_DEVICE_TYPE(SNS_LOROM_SOULBLAD, sns_rom_soulblad_device, "sns_rom_soulblad", "SNES Sound Blade") +DEFINE_DEVICE_TYPE(SNS_LOROM_BANANA, sns_rom_banana_device, "sns_rom_banana", "SNES Banana de Pijamas") +DEFINE_DEVICE_TYPE(SNS_LOROM_BUGSLIFE, sns_rom_bugs_device, "sns_rom_bugslife", "SNES A Bug's Life") // LoROM pirate multicarts -const device_type SNS_LOROM_MCPIR1 = device_creator; -const device_type SNS_LOROM_MCPIR2 = device_creator; -const device_type SNS_LOROM_20COL = device_creator; +DEFINE_DEVICE_TYPE(SNS_LOROM_MCPIR1, sns_rom_mcpirate1_device, "sns_rom_mcpirate1", "SNES Pirate Multigame Carts Type 1") +DEFINE_DEVICE_TYPE(SNS_LOROM_MCPIR2, sns_rom_mcpirate2_device, "sns_rom_mcpirate2", "SNES Pirate Multigame Carts Type 2") +DEFINE_DEVICE_TYPE(SNS_LOROM_20COL, sns_rom_20col_device, "sns_rom_20col", "SNES Super 20 Collection") -sns_rom_device::sns_rom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_sns_cart_interface( mconfig, *this ) +sns_rom_device::sns_rom_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock), device_sns_cart_interface(mconfig, *this) { } sns_rom_device::sns_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, SNS_LOROM, "SNES Cart (LoROM)", tag, owner, clock, "sns_rom", __FILE__), - device_sns_cart_interface( mconfig, *this ) + : sns_rom_device(mconfig, SNS_LOROM, tag, owner, clock) { } sns_rom_obc1_device::sns_rom_obc1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : sns_rom_device(mconfig, SNS_LOROM_OBC1, "SNES Cart (LoROM) + OBC-1", tag, owner, clock, "sns_rom_obc1", __FILE__), m_address(0), m_offset(0), m_shift(0) - { + : sns_rom_device(mconfig, SNS_LOROM_OBC1, tag, owner, clock), m_address(0), m_offset(0), m_shift(0) +{ } // Pirate LoROM 'mappers' sns_rom_pokemon_device::sns_rom_pokemon_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : sns_rom_device(mconfig, SNS_LOROM_POKEMON, "SNES Pirate Carts with Protection", tag, owner, clock, "sns_rom_pokemon", __FILE__), m_latch(0) - { + : sns_rom_device(mconfig, SNS_LOROM_POKEMON, tag, owner, clock), m_latch(0) +{ } sns_rom_tekken2_device::sns_rom_tekken2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : sns_rom_device(mconfig, SNS_LOROM_TEKKEN2, "SNES Tekken 2", tag, owner, clock, "sns_rom_tekken2", __FILE__), m_prot(0) - { + : sns_rom_device(mconfig, SNS_LOROM_TEKKEN2, tag, owner, clock), m_prot(0) +{ } sns_rom_soulblad_device::sns_rom_soulblad_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : sns_rom_device(mconfig, SNS_LOROM_SOULBLAD, "SNES Soul Blade", tag, owner, clock, "sns_rom_soulblad", __FILE__) + : sns_rom_device(mconfig, SNS_LOROM_SOULBLAD, tag, owner, clock) { } sns_rom_banana_device::sns_rom_banana_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : sns_rom_device(mconfig, SNS_LOROM_BANANA, "SNES Banana de Pijamas", tag, owner, clock, "sns_rom_banana", __FILE__) + : sns_rom_device(mconfig, SNS_LOROM_BANANA, tag, owner, clock) { } sns_rom_bugs_device::sns_rom_bugs_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : sns_rom_device(mconfig, SNS_LOROM_BUGSLIFE, "SNES A Bug's Life", tag, owner, clock, "sns_rom_bugslife", __FILE__) + : sns_rom_device(mconfig, SNS_LOROM_BUGSLIFE, tag, owner, clock) { } // Multigame LoROM 'mappers' sns_rom_mcpirate1_device::sns_rom_mcpirate1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : sns_rom_device(mconfig, SNS_LOROM_MCPIR1, "SNES Pirate Multigame Carts Type 1", tag, owner, clock, "sns_rom_mcpirate1", __FILE__), m_base_bank(0) - { + : sns_rom_device(mconfig, SNS_LOROM_MCPIR1, tag, owner, clock), m_base_bank(0) +{ } sns_rom_mcpirate2_device::sns_rom_mcpirate2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : sns_rom_device(mconfig, SNS_LOROM_MCPIR2, "SNES Pirate Multigame Carts Type 2", tag, owner, clock, "sns_rom_mcpirate2", __FILE__), m_base_bank(0) - { + : sns_rom_device(mconfig, SNS_LOROM_MCPIR2, tag, owner, clock), m_base_bank(0) +{ } sns_rom_20col_device::sns_rom_20col_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : sns_rom_device(mconfig, SNS_LOROM_20COL, "SNES Super 20 Collection", tag, owner, clock, "sns_rom_20col", __FILE__), m_base_bank(0) - { + : sns_rom_device(mconfig, SNS_LOROM_20COL, tag, owner, clock), m_base_bank(0) +{ } diff --git a/src/devices/bus/snes/rom.h b/src/devices/bus/snes/rom.h index ddd73ab33da..9e95e4b8e00 100644 --- a/src/devices/bus/snes/rom.h +++ b/src/devices/bus/snes/rom.h @@ -1,27 +1,30 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __SNS_ROM_H -#define __SNS_ROM_H +#ifndef MAME_BUS_SNES_ROM_H +#define MAME_BUS_SNES_ROM_H + +#pragma once #include "snes_slot.h" // ======================> sns_rom_device -class sns_rom_device : public device_t, - public device_sns_cart_interface +class sns_rom_device : public device_t, public device_sns_cart_interface { public: // construction/destruction - sns_rom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); sns_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - // reading and writing virtual DECLARE_READ8_MEMBER(read_l) override; virtual DECLARE_READ8_MEMBER(read_h) override; + +protected: + sns_rom_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual void device_start() override; }; // ======================> sns_rom_obc1_device @@ -32,14 +35,15 @@ public: // construction/destruction sns_rom_obc1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - // additional reading and writing virtual DECLARE_READ8_MEMBER(chip_read) override; virtual DECLARE_WRITE8_MEMBER(chip_write) override; +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + int m_address; int m_offset; int m_shift; @@ -56,13 +60,15 @@ public: // construction/destruction sns_rom_pokemon_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + // reading and writing + virtual DECLARE_READ8_MEMBER(chip_read) override; // protection device + virtual DECLARE_WRITE8_MEMBER(chip_write) override; // protection device + +protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; - // reading and writing - virtual DECLARE_READ8_MEMBER(chip_read) override; // protection device - virtual DECLARE_WRITE8_MEMBER(chip_write) override; // protection device uint8_t m_latch; }; @@ -74,14 +80,15 @@ public: // construction/destruction sns_rom_tekken2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - // reading and writing virtual DECLARE_READ8_MEMBER(chip_read) override; // protection device virtual DECLARE_WRITE8_MEMBER(chip_write) override; // protection device +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + void update_prot(uint32_t offset); // bit0-3 prot value, bit4 direction, bit5 function @@ -109,14 +116,16 @@ public: // construction/destruction sns_rom_mcpirate1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - // reading and writing virtual DECLARE_READ8_MEMBER(read_l) override; virtual DECLARE_READ8_MEMBER(read_h) override; virtual DECLARE_WRITE8_MEMBER(chip_write) override; // bankswitch device + +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + uint8_t m_base_bank; }; @@ -128,14 +137,16 @@ public: // construction/destruction sns_rom_mcpirate2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - // reading and writing virtual DECLARE_READ8_MEMBER(read_l) override; virtual DECLARE_READ8_MEMBER(read_h) override; virtual DECLARE_WRITE8_MEMBER(chip_write) override; // bankswitch device + +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + uint8_t m_base_bank; }; @@ -147,13 +158,15 @@ public: // construction/destruction sns_rom_20col_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - // reading and writing virtual DECLARE_READ8_MEMBER(read_l) override; virtual DECLARE_READ8_MEMBER(read_h) override; virtual DECLARE_WRITE8_MEMBER(chip_write) override; // bankswitch device + +protected: + // device-level overrides + virtual void device_start() override; + uint8_t m_base_bank; }; @@ -165,13 +178,15 @@ public: // construction/destruction sns_rom_banana_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + // reading and writing + virtual DECLARE_READ8_MEMBER(chip_read) override; // protection device + virtual DECLARE_WRITE8_MEMBER(chip_write) override; // protection device + +protected: // device-level overrides // virtual void device_start(); // virtual void device_reset(); - // reading and writing - virtual DECLARE_READ8_MEMBER(chip_read) override; // protection device - virtual DECLARE_WRITE8_MEMBER(chip_write) override; // protection device uint8_t m_latch[16]; }; @@ -183,27 +198,29 @@ public: // construction/destruction sns_rom_bugs_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + // reading and writing + virtual DECLARE_READ8_MEMBER(chip_read) override; // protection device + virtual DECLARE_WRITE8_MEMBER(chip_write) override; // protection device + +protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; - // reading and writing - virtual DECLARE_READ8_MEMBER(chip_read) override; // protection device - virtual DECLARE_WRITE8_MEMBER(chip_write) override; // protection device uint8_t m_latch[0x800]; }; // device type definition -extern const device_type SNS_LOROM; -extern const device_type SNS_LOROM_OBC1; -extern const device_type SNS_LOROM_POKEMON; -extern const device_type SNS_LOROM_TEKKEN2; -extern const device_type SNS_LOROM_SOULBLAD; -extern const device_type SNS_LOROM_MCPIR1; -extern const device_type SNS_LOROM_MCPIR2; -extern const device_type SNS_LOROM_20COL; -extern const device_type SNS_LOROM_BANANA; -extern const device_type SNS_LOROM_BUGSLIFE; - -#endif +DECLARE_DEVICE_TYPE(SNS_LOROM, sns_rom_device) +DECLARE_DEVICE_TYPE(SNS_LOROM_OBC1, sns_rom_obc1_device) +DECLARE_DEVICE_TYPE(SNS_LOROM_POKEMON, sns_rom_pokemon_device) +DECLARE_DEVICE_TYPE(SNS_LOROM_TEKKEN2, sns_rom_tekken2_device) +DECLARE_DEVICE_TYPE(SNS_LOROM_SOULBLAD, sns_rom_soulblad_device) +DECLARE_DEVICE_TYPE(SNS_LOROM_MCPIR1, sns_rom_mcpirate1_device) +DECLARE_DEVICE_TYPE(SNS_LOROM_MCPIR2, sns_rom_mcpirate2_device) +DECLARE_DEVICE_TYPE(SNS_LOROM_20COL, sns_rom_20col_device) +DECLARE_DEVICE_TYPE(SNS_LOROM_BANANA, sns_rom_banana_device) +DECLARE_DEVICE_TYPE(SNS_LOROM_BUGSLIFE, sns_rom_bugs_device) + +#endif // MAME_BUS_SNES_ROM_H diff --git a/src/devices/bus/snes/rom21.cpp b/src/devices/bus/snes/rom21.cpp index d4a555da852..91c61394688 100644 --- a/src/devices/bus/snes/rom21.cpp +++ b/src/devices/bus/snes/rom21.cpp @@ -15,25 +15,23 @@ // sns_rom_device - constructor //------------------------------------------------- -const device_type SNS_HIROM = device_creator; -const device_type SNS_HIROM_SRTC = device_creator; +DEFINE_DEVICE_TYPE(SNS_HIROM, sns_rom21_device, "sns_rom21", "SNES Cart (HiROM)") +DEFINE_DEVICE_TYPE(SNS_HIROM_SRTC, sns_rom21_srtc_device, "sns_rom21_rtc", "SNES Cart (HiROM) + S-RTC") -sns_rom21_device::sns_rom21_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_sns_cart_interface( mconfig, *this ) +sns_rom21_device::sns_rom21_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock), device_sns_cart_interface( mconfig, *this ) { } sns_rom21_device::sns_rom21_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, SNS_HIROM, "SNES Cart (HiROM)", tag, owner, clock, "sns_rom21", __FILE__), - device_sns_cart_interface( mconfig, *this ) + : sns_rom21_device(mconfig, SNS_HIROM, tag, owner, clock) { } sns_rom21_srtc_device::sns_rom21_srtc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : sns_rom21_device(mconfig, SNS_HIROM_SRTC, "SNES Cart (HiROM) + S-RTC", tag, owner, clock, "sns_rom21_srtc", __FILE__), m_mode(0), m_index(0) - { + : sns_rom21_device(mconfig, SNS_HIROM_SRTC, tag, owner, clock), m_mode(0), m_index(0) +{ } diff --git a/src/devices/bus/snes/rom21.h b/src/devices/bus/snes/rom21.h index befd130f02f..545e2457ef3 100644 --- a/src/devices/bus/snes/rom21.h +++ b/src/devices/bus/snes/rom21.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __SNS_ROM21_H -#define __SNS_ROM21_H +#ifndef MAME_BUS_SNES_ROM21_H +#define MAME_BUS_SNES_ROM21_H + +#pragma once #include "snes_slot.h" @@ -13,16 +15,18 @@ class sns_rom21_device : public device_t, { public: // construction/destruction - sns_rom21_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); sns_rom21_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - // reading and writing virtual DECLARE_READ8_MEMBER(read_l) override; virtual DECLARE_READ8_MEMBER(read_h) override; + +protected: + sns_rom21_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; }; // ======================> sns_rom21_srtc_device @@ -33,14 +37,11 @@ public: // construction/destruction sns_rom21_srtc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - // reading and writing virtual DECLARE_READ8_MEMBER(chip_read) override; virtual DECLARE_WRITE8_MEMBER(chip_write) override; +protected: // S-RTC specific variables enum { @@ -50,6 +51,10 @@ public: RTCM_Write }; + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + void update_time(); uint8_t srtc_weekday(uint32_t year, uint32_t month, uint32_t day); @@ -61,7 +66,7 @@ public: // device type definition -extern const device_type SNS_HIROM; -extern const device_type SNS_HIROM_SRTC; +DECLARE_DEVICE_TYPE(SNS_HIROM, sns_rom21_device) +DECLARE_DEVICE_TYPE(SNS_HIROM_SRTC, sns_rom21_srtc_device) -#endif +#endif // MAME_BUS_SNES_ROM21_H diff --git a/src/devices/bus/snes/sa1.cpp b/src/devices/bus/snes/sa1.cpp index f74ebe4409a..5020aec1613 100644 --- a/src/devices/bus/snes/sa1.cpp +++ b/src/devices/bus/snes/sa1.cpp @@ -82,14 +82,23 @@ // constructor //------------------------------------------------- -const device_type SNS_LOROM_SA1 = device_creator; +DEFINE_DEVICE_TYPE(SNS_LOROM_SA1, sns_sa1_device, "sns_rom_sa1", "SNES Cart + SA-1") sns_sa1_device::sns_sa1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, SNS_LOROM_SA1, "SNES Cart + SA-1", tag, owner, clock, "sns_rom_sa1", __FILE__), - device_sns_cart_interface( mconfig, *this ), - m_sa1(*this, "sa1cpu"), m_sa1_ctrl(0), m_scpu_sie(0), m_sa1_reset(0), m_sa1_nmi(0), m_sa1_irq(0), m_scpu_ctrl(0), m_sa1_sie(0), m_irq_vector(0), m_nmi_vector(0), m_hcount(0), m_vcount(0), m_bank_c_hi(0), m_bank_c_rom(0), m_bank_d_hi(0), m_bank_d_rom(0), m_bank_e_hi(0), m_bank_e_rom(0), m_bank_f_hi(0), m_bank_f_rom(0), m_bwram_snes(0), m_bwram_sa1(0), m_bwram_sa1_source(0), m_bwram_sa1_format(0), m_bwram_write_snes(0), m_bwram_write_sa1(0), m_bwpa_sa1(0), m_iram_write_snes(0), m_iram_write_sa1(0), m_dma_ctrl(0), m_dma_ccparam(0), m_src_addr(0), m_dst_addr(0), m_dma_cnt(0), m_math_ctlr(0), m_math_overflow(0), m_math_a(0), m_math_b(0), m_math_res(0), m_vda(0), m_vbit(0), m_vlen(0), m_drm(0), m_scpu_flags(0), m_sa1_flags(0), m_hcr(0), m_vcr(0) - { + : device_t(mconfig, SNS_LOROM_SA1, tag, owner, clock) + , device_sns_cart_interface(mconfig, *this) + , m_sa1(*this, "sa1cpu") + , m_sa1_ctrl(0), m_scpu_sie(0), m_sa1_reset(0), m_sa1_nmi(0), m_sa1_irq(0), m_scpu_ctrl(0), m_sa1_sie(0) + , m_irq_vector(0), m_nmi_vector(0) + , m_hcount(0), m_vcount(0) + , m_bank_c_hi(0), m_bank_c_rom(0), m_bank_d_hi(0), m_bank_d_rom(0), m_bank_e_hi(0), m_bank_e_rom(0), m_bank_f_hi(0), m_bank_f_rom(0) + , m_bwram_snes(0), m_bwram_sa1(0), m_bwram_sa1_source(0), m_bwram_sa1_format(0), m_bwram_write_snes(0), m_bwram_write_sa1(0), m_bwpa_sa1(0) + , m_iram_write_snes(0), m_iram_write_sa1(0) + , m_dma_ctrl(0), m_dma_ccparam(0), m_src_addr(0), m_dst_addr(0), m_dma_cnt(0) + , m_math_ctlr(0), m_math_overflow(0), m_math_a(0), m_math_b(0), m_math_res(0) + , m_vda(0), m_vbit(0), m_vlen(0), m_drm(0), m_scpu_flags(0), m_sa1_flags(0), m_hcr(0), m_vcr(0) +{ } diff --git a/src/devices/bus/snes/sa1.h b/src/devices/bus/snes/sa1.h index bcd5b6503cc..978505438ee 100644 --- a/src/devices/bus/snes/sa1.h +++ b/src/devices/bus/snes/sa1.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli, R. Belmont -#ifndef __SNS_SA1_H -#define __SNS_SA1_H +#ifndef MAME_BUS_SNES_SA1_H +#define MAME_BUS_SNES_SA1_H + +#pragma once #include "snes_slot.h" #include "cpu/g65816/g65816.h" @@ -16,10 +18,7 @@ public: // construction/destruction sns_sa1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual machine_config_constructor device_mconfig_additions() const override; - virtual void device_reset() override; // reading and writing virtual DECLARE_READ8_MEMBER(read_l) override; @@ -36,8 +35,12 @@ public: DECLARE_WRITE8_MEMBER(sa1_lo_w); DECLARE_WRITE8_MEMBER(sa1_hi_w); -private: +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; +private: uint8_t var_length_read(address_space &space, uint32_t offset); void dma_transfer(address_space &space); void dma_cctype1_transfer(address_space &space); @@ -108,6 +111,6 @@ private: // device type definition -extern const device_type SNS_LOROM_SA1; +DECLARE_DEVICE_TYPE(SNS_LOROM_SA1, sns_sa1_device) -#endif +#endif // MAME_BUS_SNES_SA1_H diff --git a/src/devices/bus/snes/sdd1.cpp b/src/devices/bus/snes/sdd1.cpp index cddff2082f4..e6f0ee179d2 100644 --- a/src/devices/bus/snes/sdd1.cpp +++ b/src/devices/bus/snes/sdd1.cpp @@ -20,13 +20,13 @@ // Input Manager -void SDD1_IM::IM_prepareDecomp(uint32_t in_buf) +void sns_rom_sdd1_device::SDD1_IM::IM_prepareDecomp(uint32_t in_buf) { m_byte_ptr = in_buf; m_bit_count = 4; } -uint8_t SDD1_IM::IM_getCodeword(uint8_t *ROM, uint32_t *mmc, const uint8_t code_len) +uint8_t sns_rom_sdd1_device::SDD1_IM::IM_getCodeword(uint8_t *ROM, uint32_t *mmc, const uint8_t code_len) { uint8_t codeword = ROM[SSD1_ADD(m_byte_ptr)] << m_bit_count; @@ -49,9 +49,9 @@ uint8_t SDD1_IM::IM_getCodeword(uint8_t *ROM, uint32_t *mmc, const uint8_t code_ // GCD -void SDD1_GCD::GCD_getRunCount(uint8_t *ROM, uint32_t *mmc, uint8_t code_num, uint8_t* MPScount, uint8_t* LPSind) +void sns_rom_sdd1_device::SDD1_GCD::GCD_getRunCount(uint8_t *ROM, uint32_t *mmc, uint8_t code_num, uint8_t* MPScount, uint8_t* LPSind) { - const uint8_t run_count[] = + static constexpr uint8_t run_count[] = { 0x00, 0x00, 0x01, 0x00, 0x03, 0x01, 0x02, 0x00, 0x07, 0x03, 0x05, 0x01, 0x06, 0x02, 0x04, 0x00, @@ -102,13 +102,13 @@ void SDD1_GCD::GCD_getRunCount(uint8_t *ROM, uint32_t *mmc, uint8_t code_num, ui // BG -void SDD1_BG::BG_prepareDecomp() +void sns_rom_sdd1_device::SDD1_BG::BG_prepareDecomp() { m_MPScount = 0; m_LPSind = 0; } -uint8_t SDD1_BG::BG_getBit(uint8_t *ROM, uint32_t *mmc, uint8_t* endOfRun) +uint8_t sns_rom_sdd1_device::SDD1_BG::BG_getBit(uint8_t *ROM, uint32_t *mmc, uint8_t* endOfRun) { uint8_t bit; @@ -149,7 +149,7 @@ struct SDD1_PEM_state uint8_t nextIfLPS; }; -static const SDD1_PEM_state PEM_evolution_table[33] = +static constexpr SDD1_PEM_state PEM_evolution_table[33] = { { 0,25,25}, { 0, 2, 1}, @@ -186,7 +186,7 @@ static const SDD1_PEM_state PEM_evolution_table[33] = { 7,24,22} }; -void SDD1_PEM::PEM_prepareDecomp() +void sns_rom_sdd1_device::SDD1_PEM::PEM_prepareDecomp() { for (auto & elem : m_contextInfo) { @@ -195,7 +195,7 @@ void SDD1_PEM::PEM_prepareDecomp() } } -uint8_t SDD1_PEM::PEM_getBit(uint8_t *ROM, uint32_t *mmc, uint8_t context) +uint8_t sns_rom_sdd1_device::SDD1_PEM::PEM_getBit(uint8_t *ROM, uint32_t *mmc, uint8_t context) { uint8_t endOfRun; uint8_t bit; @@ -228,7 +228,7 @@ uint8_t SDD1_PEM::PEM_getBit(uint8_t *ROM, uint32_t *mmc, uint8_t context) // CM -void SDD1_CM::CM_prepareDecomp(uint8_t *ROM, uint32_t *mmc, uint32_t first_byte) +void sns_rom_sdd1_device::SDD1_CM::CM_prepareDecomp(uint8_t *ROM, uint32_t *mmc, uint32_t first_byte) { int32_t i = 0; m_bitplanesInfo = ROM[SSD1_ADD(first_byte)] & 0xc0; @@ -252,7 +252,7 @@ void SDD1_CM::CM_prepareDecomp(uint8_t *ROM, uint32_t *mmc, uint32_t first_byte) } } -uint8_t SDD1_CM::CM_getBit(uint8_t *ROM, uint32_t *mmc) +uint8_t sns_rom_sdd1_device::SDD1_CM::CM_getBit(uint8_t *ROM, uint32_t *mmc) { uint8_t currContext; uint16_t *context_bits; @@ -309,14 +309,14 @@ uint8_t SDD1_CM::CM_getBit(uint8_t *ROM, uint32_t *mmc) // OL -void SDD1_OL::OL_prepareDecomp(uint8_t *ROM, uint32_t *mmc, uint32_t first_byte, uint16_t out_len, uint8_t *out_buf) +void sns_rom_sdd1_device::SDD1_OL::OL_prepareDecomp(uint8_t *ROM, uint32_t *mmc, uint32_t first_byte, uint16_t out_len, uint8_t *out_buf) { m_bitplanesInfo = ROM[SSD1_ADD(first_byte)] & 0xc0; m_length = out_len; m_buffer = out_buf; } -void SDD1_OL::OL_launch(uint8_t *ROM, uint32_t *mmc) +void sns_rom_sdd1_device::SDD1_OL::OL_launch(uint8_t *ROM, uint32_t *mmc) { uint8_t i; uint8_t register1, register2 = 0; @@ -366,7 +366,7 @@ void SDD1_OL::OL_launch(uint8_t *ROM, uint32_t *mmc) // S-DD1 -SDD1_emu::SDD1_emu(running_machine &machine) +sns_rom_sdd1_device::SDD1_emu::SDD1_emu(running_machine &machine) : m_machine(machine) { m_IM = std::make_unique(); @@ -385,7 +385,7 @@ SDD1_emu::SDD1_emu(running_machine &machine) m_OL = std::make_unique(m_CM.get()); } -void SDD1_emu::SDD1emu_decompress(uint8_t *ROM, uint32_t *mmc, uint32_t in_buf, uint16_t out_len, uint8_t *out_buf) +void sns_rom_sdd1_device::SDD1_emu::SDD1emu_decompress(uint8_t *ROM, uint32_t *mmc, uint32_t in_buf, uint16_t out_len, uint8_t *out_buf) { m_IM->IM_prepareDecomp(in_buf); m_BG0->BG_prepareDecomp(); @@ -408,19 +408,19 @@ void SDD1_emu::SDD1emu_decompress(uint8_t *ROM, uint32_t *mmc, uint32_t in_buf, // sns_rom_sdd1_device - constructor //------------------------------------------------- -const device_type SNS_LOROM_SDD1 = device_creator; +DEFINE_DEVICE_TYPE(SNS_LOROM_SDD1, sns_rom_sdd1_device, "sns_rom_sdd1", "SNES Cart + S-DD1") -sns_rom_sdd1_device::sns_rom_sdd1_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_sns_cart_interface( mconfig, *this ), m_sdd1_enable(0), m_xfer_enable(0), m_sdd1emu(nullptr) - { +sns_rom_sdd1_device::sns_rom_sdd1_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) + , device_sns_cart_interface(mconfig, *this) + , m_sdd1_enable(0), m_xfer_enable(0), m_sdd1emu(nullptr) +{ } sns_rom_sdd1_device::sns_rom_sdd1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, SNS_LOROM_SDD1, "SNES Cart + S-DD1", tag, owner, clock, "sns_rom_sdd1", __FILE__), - device_sns_cart_interface( mconfig, *this ), m_sdd1_enable(0), m_xfer_enable(0), m_sdd1emu(nullptr) - { + : sns_rom_sdd1_device(mconfig, SNS_LOROM_SDD1, tag, owner, clock) +{ } diff --git a/src/devices/bus/snes/sdd1.h b/src/devices/bus/snes/sdd1.h index 244c552f101..6265e630bdc 100644 --- a/src/devices/bus/snes/sdd1.h +++ b/src/devices/bus/snes/sdd1.h @@ -1,174 +1,163 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __SNS_SDD1_H -#define __SNS_SDD1_H +#ifndef MAME_BUS_SNES_SDD1_H +#define MAME_BUS_SNES_SDD1_H -#include "snes_slot.h" +#pragma once -// misc classes for the S-DD1 +#include "snes_slot.h" -class SDD1_IM //Input Manager -{ -public: - SDD1_IM(): - m_byte_ptr(0), - m_bit_count(0) - { } - uint32_t m_byte_ptr; - uint8_t m_bit_count; - void IM_prepareDecomp(uint32_t in_buf); - uint8_t IM_getCodeword(uint8_t *ROM, uint32_t *mmc, const uint8_t code_len); -}; +// ======================> sns_rom_sdd1_device -class SDD1_GCD //Golomb-Code Decoder +class sns_rom_sdd1_device : public device_t, + public device_sns_cart_interface { public: - SDD1_GCD(SDD1_IM* associatedIM) - : m_IM(associatedIM) { } - - SDD1_IM* m_IM; - - void GCD_getRunCount(uint8_t *ROM, uint32_t *mmc, uint8_t code_num, uint8_t* MPScount, uint8_t* LPSind); -}; + // construction/destruction + sns_rom_sdd1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); -class SDD1_BG // Bits Generator -{ -public: - SDD1_BG(SDD1_GCD* associatedGCD, uint8_t code) - : m_code_num(code), - m_MPScount(0), - m_LPSind(0), - m_GCD(associatedGCD) - { - } + // reading and writing + virtual DECLARE_READ8_MEMBER(read_l) override; + virtual DECLARE_READ8_MEMBER(read_h) override; + virtual DECLARE_READ8_MEMBER(read_ram) override; + virtual DECLARE_WRITE8_MEMBER(write_ram) override; + virtual DECLARE_READ8_MEMBER(chip_read) override; + virtual DECLARE_WRITE8_MEMBER(chip_write) override; - uint8_t m_code_num; - uint8_t m_MPScount; - uint8_t m_LPSind; - SDD1_GCD* m_GCD; +protected: + sns_rom_sdd1_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); - void BG_prepareDecomp(); - uint8_t BG_getBit(uint8_t *ROM, uint32_t *mmc, uint8_t* endOfRun); -} ; + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; -struct SDD1_PEM_ContextInfo -{ - uint8_t status; - uint8_t MPS; -}; + // misc classes for the S-DD1 -class SDD1_PEM //Probability Estimation Module -{ -public: - SDD1_PEM( - SDD1_BG* associatedBG0, SDD1_BG* associatedBG1, - SDD1_BG* associatedBG2, SDD1_BG* associatedBG3, - SDD1_BG* associatedBG4, SDD1_BG* associatedBG5, - SDD1_BG* associatedBG6, SDD1_BG* associatedBG7) + class SDD1_IM //Input Manager { - m_BG[0] = associatedBG0; - m_BG[1] = associatedBG1; - m_BG[2] = associatedBG2; - m_BG[3] = associatedBG3; - m_BG[4] = associatedBG4; - m_BG[5] = associatedBG5; - m_BG[6] = associatedBG6; - m_BG[7] = associatedBG7; - } + public: + SDD1_IM() { } - SDD1_PEM_ContextInfo m_contextInfo[32]; - SDD1_BG* m_BG[8]; + void IM_prepareDecomp(uint32_t in_buf); + uint8_t IM_getCodeword(uint8_t *ROM, uint32_t *mmc, const uint8_t code_len); - void PEM_prepareDecomp(); - uint8_t PEM_getBit(uint8_t *ROM, uint32_t *mmc, uint8_t context); -} ; + uint32_t m_byte_ptr = 0; + uint8_t m_bit_count = 0; + }; + class SDD1_GCD //Golomb-Code Decoder + { + public: + SDD1_GCD(SDD1_IM* associatedIM) : m_IM(associatedIM) { } -class SDD1_CM -{ -public: - SDD1_CM(SDD1_PEM* associatedPEM) - : m_bitplanesInfo(0), m_contextBitsInfo(0), m_bit_number(0), m_currBitplane(0), m_PEM(associatedPEM) { } + void GCD_getRunCount(uint8_t *ROM, uint32_t *mmc, uint8_t code_num, uint8_t* MPScount, uint8_t* LPSind); - uint8_t m_bitplanesInfo; - uint8_t m_contextBitsInfo; - uint8_t m_bit_number; - uint8_t m_currBitplane; - uint16_t m_prevBitplaneBits[8]; - SDD1_PEM* m_PEM; + SDD1_IM* m_IM; + }; - void CM_prepareDecomp(uint8_t *ROM, uint32_t *mmc, uint32_t first_byte); - uint8_t CM_getBit(uint8_t *ROM, uint32_t *mmc); -} ; + class SDD1_BG // Bits Generator + { + public: + SDD1_BG(SDD1_GCD* associatedGCD, uint8_t code) : m_code_num(code), m_GCD(associatedGCD) { } + void BG_prepareDecomp(); + uint8_t BG_getBit(uint8_t *ROM, uint32_t *mmc, uint8_t* endOfRun); -class SDD1_OL -{ -public: - SDD1_OL(SDD1_CM* associatedCM) - : m_bitplanesInfo(0), m_length(0), m_buffer(nullptr), m_CM(associatedCM) { } + uint8_t m_code_num; + uint8_t m_MPScount = 0; + uint8_t m_LPSind = 0; + SDD1_GCD* m_GCD; + }; - uint8_t m_bitplanesInfo; - uint16_t m_length; - uint8_t* m_buffer; - SDD1_CM* m_CM; + struct SDD1_PEM_ContextInfo + { + uint8_t status; + uint8_t MPS; + }; - void OL_prepareDecomp(uint8_t *ROM, uint32_t *mmc, uint32_t first_byte, uint16_t out_len, uint8_t *out_buf); - void OL_launch(uint8_t *ROM, uint32_t *mmc); -} ; + class SDD1_PEM //Probability Estimation Module + { + public: + SDD1_PEM( + SDD1_BG* associatedBG0, + SDD1_BG* associatedBG1, + SDD1_BG* associatedBG2, + SDD1_BG* associatedBG3, + SDD1_BG* associatedBG4, + SDD1_BG* associatedBG5, + SDD1_BG* associatedBG6, + SDD1_BG* associatedBG7) + : m_BG{ associatedBG0, associatedBG1, associatedBG2, associatedBG3, associatedBG4, associatedBG5, associatedBG6, associatedBG7 } + { + } + + void PEM_prepareDecomp(); + uint8_t PEM_getBit(uint8_t *ROM, uint32_t *mmc, uint8_t context); + + SDD1_PEM_ContextInfo m_contextInfo[32]; + SDD1_BG* m_BG[8]; + }; + + + class SDD1_CM + { + public: + SDD1_CM(SDD1_PEM* associatedPEM) : m_PEM(associatedPEM) { } -class SDD1_emu -{ -public: - SDD1_emu(running_machine &machine); - - running_machine &machine() const { return m_machine; } - - std::unique_ptr m_IM; - std::unique_ptr m_GCD; - std::unique_ptr m_BG0; - std::unique_ptr m_BG1; - std::unique_ptr m_BG2; - std::unique_ptr m_BG3; - std::unique_ptr m_BG4; - std::unique_ptr m_BG5; - std::unique_ptr m_BG6; - std::unique_ptr m_BG7; - std::unique_ptr m_PEM; - std::unique_ptr m_CM; - std::unique_ptr m_OL; - - void SDD1emu_decompress(uint8_t *ROM, uint32_t *mmc, uint32_t in_buf, uint16_t out_len, uint8_t *out_buf); - -private: - running_machine& m_machine; -}; + void CM_prepareDecomp(uint8_t *ROM, uint32_t *mmc, uint32_t first_byte); + uint8_t CM_getBit(uint8_t *ROM, uint32_t *mmc); + uint8_t m_bitplanesInfo = 0; + uint8_t m_contextBitsInfo = 0; + uint8_t m_bit_number = 0; + uint8_t m_currBitplane = 0; + uint16_t m_prevBitplaneBits[8]; + SDD1_PEM* m_PEM; + }; -// ======================> sns_rom_sdd1_device + class SDD1_OL + { + public: + SDD1_OL(SDD1_CM* associatedCM) : m_CM(associatedCM) { } -class sns_rom_sdd1_device : public device_t, - public device_sns_cart_interface -{ -public: - // construction/destruction - sns_rom_sdd1_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - sns_rom_sdd1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + void OL_prepareDecomp(uint8_t *ROM, uint32_t *mmc, uint32_t first_byte, uint16_t out_len, uint8_t *out_buf); + void OL_launch(uint8_t *ROM, uint32_t *mmc); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; + uint8_t m_bitplanesInfo = 0; + uint16_t m_length = 0; + uint8_t* m_buffer = nullptr; + SDD1_CM* m_CM; + }; - // reading and writing - virtual DECLARE_READ8_MEMBER(read_l) override; - virtual DECLARE_READ8_MEMBER(read_h) override; - virtual DECLARE_READ8_MEMBER(read_ram) override; - virtual DECLARE_WRITE8_MEMBER(write_ram) override; - virtual DECLARE_READ8_MEMBER(chip_read) override; - virtual DECLARE_WRITE8_MEMBER(chip_write) override; + class SDD1_emu + { + public: + SDD1_emu(running_machine &machine); + + running_machine &machine() const { return m_machine; } + + void SDD1emu_decompress(uint8_t *ROM, uint32_t *mmc, uint32_t in_buf, uint16_t out_len, uint8_t *out_buf); + + std::unique_ptr m_IM; + std::unique_ptr m_GCD; + std::unique_ptr m_BG0; + std::unique_ptr m_BG1; + std::unique_ptr m_BG2; + std::unique_ptr m_BG3; + std::unique_ptr m_BG4; + std::unique_ptr m_BG5; + std::unique_ptr m_BG6; + std::unique_ptr m_BG7; + std::unique_ptr m_PEM; + std::unique_ptr m_CM; + std::unique_ptr m_OL; + + private: + running_machine& m_machine; + }; uint8_t read_helper(uint32_t offset); @@ -195,6 +184,6 @@ public: // device type definition -extern const device_type SNS_LOROM_SDD1; +DECLARE_DEVICE_TYPE(SNS_LOROM_SDD1, sns_rom_sdd1_device) -#endif +#endif // MAME_BUS_SNES_SDD1_H diff --git a/src/devices/bus/snes/sfx.cpp b/src/devices/bus/snes/sfx.cpp index 090408c77f4..baae513cc10 100644 --- a/src/devices/bus/snes/sfx.cpp +++ b/src/devices/bus/snes/sfx.cpp @@ -15,12 +15,12 @@ // sns_rom_superfx_device - constructor //------------------------------------------------- -const device_type SNS_LOROM_SUPERFX = device_creator; +DEFINE_DEVICE_TYPE(SNS_LOROM_SUPERFX, sns_rom_superfx_device, "sns_rom_superfx", "SNES Cart (LoROM) + SuperFX") sns_rom_superfx_device::sns_rom_superfx_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : sns_rom_device(mconfig, SNS_LOROM_SUPERFX, "SNES Cart (LoROM) + SuperFX", tag, owner, clock, "sns_rom_superfx", __FILE__), - m_superfx(*this, "superfx") + : sns_rom_device(mconfig, SNS_LOROM_SUPERFX, tag, owner, clock) + , m_superfx(*this, "superfx") { } diff --git a/src/devices/bus/snes/sfx.h b/src/devices/bus/snes/sfx.h index 678b09b5e1c..2eead080a0b 100644 --- a/src/devices/bus/snes/sfx.h +++ b/src/devices/bus/snes/sfx.h @@ -1,7 +1,7 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __SNS_SFX_H -#define __SNS_SFX_H +#ifndef MAME_BUS_SNES_SFX_H +#define MAME_BUS_SNES_SFX_H #include "snes_slot.h" #include "rom.h" @@ -16,13 +16,8 @@ public: // construction/destruction sns_rom_superfx_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; virtual machine_config_constructor device_mconfig_additions() const override; - required_device m_superfx; - // additional reading and writing virtual DECLARE_READ8_MEMBER(read_l) override; virtual DECLARE_READ8_MEMBER(read_h) override; @@ -39,12 +34,18 @@ public: virtual DECLARE_WRITE8_MEMBER(superfx_w_bank3); virtual DECLARE_WRITE_LINE_MEMBER(snes_extern_irq_w); +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + + required_device m_superfx; uint8_t sfx_ram[0x200000]; }; // device type definition -extern const device_type SNS_LOROM_SUPERFX; +DECLARE_DEVICE_TYPE(SNS_LOROM_SUPERFX, sns_rom_superfx_device) -#endif +#endif // MAME_BUS_SNES_SFX_H diff --git a/src/devices/bus/snes/sgb.cpp b/src/devices/bus/snes/sgb.cpp index bbf3e804a2a..fd40d7e03b5 100644 --- a/src/devices/bus/snes/sgb.cpp +++ b/src/devices/bus/snes/sgb.cpp @@ -19,12 +19,12 @@ // sns_rom_sgb_device - constructor //------------------------------------------------- -const device_type SNS_LOROM_SUPERGB = device_creator; -const device_type SNS_LOROM_SUPERGB2 = device_creator; +DEFINE_DEVICE_TYPE(SNS_LOROM_SUPERGB, sns_rom_sgb1_device, "sns_rom_sgb", "SNES Super Game Boy Cart") +DEFINE_DEVICE_TYPE(SNS_LOROM_SUPERGB2, sns_rom_sgb2_device, "sns_rom_sgb2", "SNES Super Game Boy 2 Cart") -sns_rom_sgb_device::sns_rom_sgb_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : sns_rom_device(mconfig, type, name, tag, owner, clock, shortname, source), +sns_rom_sgb_device::sns_rom_sgb_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : sns_rom_device(mconfig, type, tag, owner, clock), m_sgb_cpu(*this, "sgb_cpu"), m_sgb_apu(*this, "sgb_apu"), m_sgb_ppu(*this, "sgb_ppu"), @@ -48,13 +48,13 @@ sns_rom_sgb_device::sns_rom_sgb_device(const machine_config &mconfig, device_typ sns_rom_sgb1_device::sns_rom_sgb1_device(const machine_config& mconfig, const char* tag, device_t* owner, uint32_t clock) : - sns_rom_sgb_device(mconfig, SNS_LOROM_SUPERGB, "SNES Super Game Boy Cart", tag, owner, clock, "sns_rom_sgb", __FILE__) + sns_rom_sgb_device(mconfig, SNS_LOROM_SUPERGB, tag, owner, clock) { } sns_rom_sgb2_device::sns_rom_sgb2_device(const machine_config& mconfig, const char* tag, device_t* owner, uint32_t clock) : - sns_rom_sgb_device(mconfig, SNS_LOROM_SUPERGB2, "SNES Super Game Boy 2 Cart", tag, owner, clock, "sns_rom_sgb2", __FILE__) + sns_rom_sgb_device(mconfig, SNS_LOROM_SUPERGB2, tag, owner, clock) { } diff --git a/src/devices/bus/snes/sgb.h b/src/devices/bus/snes/sgb.h index 69c3d1ed59d..4c0a038bbb1 100644 --- a/src/devices/bus/snes/sgb.h +++ b/src/devices/bus/snes/sgb.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __SNS_SGB_H -#define __SNS_SGB_H +#ifndef MAME_BUS_SNES_SGB_H +#define MAME_BUS_SNES_SGB_H + +#pragma once #include "snes_slot.h" #include "rom.h" @@ -19,13 +21,6 @@ class sns_rom_sgb_device : public sns_rom_device { public: - // construction/destruction - sns_rom_sgb_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - // reading and writing virtual DECLARE_READ8_MEMBER(read_l) override; virtual DECLARE_READ8_MEMBER(read_h) override; @@ -45,6 +40,13 @@ public: virtual DECLARE_WRITE8_MEMBER(gb_timer_callback); protected: + // construction/destruction + sns_rom_sgb_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + required_device m_sgb_cpu; required_device m_sgb_apu; required_device m_sgb_ppu; @@ -99,7 +101,7 @@ public: }; // device type definition -extern const device_type SNS_LOROM_SUPERGB; -extern const device_type SNS_LOROM_SUPERGB2; +DECLARE_DEVICE_TYPE(SNS_LOROM_SUPERGB, sns_rom_sgb1_device) +DECLARE_DEVICE_TYPE(SNS_LOROM_SUPERGB2, sns_rom_sgb2_device) -#endif +#endif // MAME_BUS_SNES_SGB_H diff --git a/src/devices/bus/snes/snes_carts.cpp b/src/devices/bus/snes/snes_carts.cpp index 32c7ad5f875..a450b7fe4c0 100644 --- a/src/devices/bus/snes/snes_carts.cpp +++ b/src/devices/bus/snes/snes_carts.cpp @@ -9,6 +9,19 @@ #include "emu.h" #include "snes_carts.h" +#include "rom.h" +#include "rom21.h" +#include "bsx.h" +#include "sa1.h" +#include "sdd1.h" +#include "sfx.h" +#include "sgb.h" +#include "spc7110.h" +#include "sufami.h" +#include "upd.h" +#include "event.h" + + SLOT_INTERFACE_START(snes_cart) SLOT_INTERFACE_INTERNAL("lorom", SNS_LOROM) SLOT_INTERFACE_INTERNAL("lorom_bsx", SNS_LOROM_BSX) // LoROM + BS-X slot - unsupported diff --git a/src/devices/bus/snes/snes_carts.h b/src/devices/bus/snes/snes_carts.h index eb5460b3e22..9778bba903f 100644 --- a/src/devices/bus/snes/snes_carts.h +++ b/src/devices/bus/snes/snes_carts.h @@ -6,25 +6,13 @@ **********************************************************************/ -#pragma once - -#ifndef __SNES_CARTS_H__ -#define __SNES_CARTS_H__ +#ifndef MAME_BUS_SNES_SNES_CARTS_H +#define MAME_BUS_SNES_SNES_CARTS_H +#pragma once -#include "rom.h" -#include "rom21.h" -#include "bsx.h" -#include "sa1.h" -#include "sdd1.h" -#include "sfx.h" -#include "sgb.h" -#include "spc7110.h" -#include "sufami.h" -#include "upd.h" -#include "event.h" // supported devices SLOT_INTERFACE_EXTERN(snes_cart); -#endif // __SNES_CARTS_H__ +#endif // MAME_BUS_SNES_SNES_CARTS_H diff --git a/src/devices/bus/snes/snes_slot.cpp b/src/devices/bus/snes/snes_slot.cpp index 1c62a1f8909..ac4a9d5c9bb 100644 --- a/src/devices/bus/snes/snes_slot.cpp +++ b/src/devices/bus/snes/snes_slot.cpp @@ -56,9 +56,9 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type SNS_CART_SLOT = device_creator; -const device_type SNS_SUFAMI_CART_SLOT = device_creator; -const device_type SNS_BSX_CART_SLOT = device_creator; +DEFINE_DEVICE_TYPE(SNS_CART_SLOT, sns_cart_slot_device, "sns_cart_slot", "SNES Cartridge Slot") +DEFINE_DEVICE_TYPE(SNS_SUFAMI_CART_SLOT, sns_sufami_cart_slot_device, "sns_sufami_cart_slot", "SNES Sufami Turbo Cartridge Slot") +DEFINE_DEVICE_TYPE(SNS_BSX_CART_SLOT, sns_bsx_cart_slot_device, "sns_bsx_cart_slot", "SNES BS-X Cartridge Slot") //************************************************************************** // SNES Cartridge Interface @@ -68,10 +68,10 @@ const device_type SNS_BSX_CART_SLOT = device_creator; // device_sns_cart_interface - constructor //------------------------------------------------- -device_sns_cart_interface::device_sns_cart_interface(const machine_config &mconfig, device_t &device) - : device_slot_card_interface(mconfig, device), - m_rom(nullptr), - m_rom_size(0) +device_sns_cart_interface::device_sns_cart_interface(const machine_config &mconfig, device_t &device) : + device_slot_card_interface(mconfig, device), + m_rom(nullptr), + m_rom_size(0) { } @@ -172,27 +172,28 @@ void device_sns_cart_interface::rom_map_setup(uint32_t size) //------------------------------------------------- // base_sns_cart_slot_device - constructor //------------------------------------------------- -base_sns_cart_slot_device::base_sns_cart_slot_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_image_interface(mconfig, *this), - device_slot_interface(mconfig, *this), - m_addon(ADDON_NONE), - m_type(SNES_MODE20), m_cart(nullptr) +base_sns_cart_slot_device::base_sns_cart_slot_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), + device_image_interface(mconfig, *this), + device_slot_interface(mconfig, *this), + m_addon(ADDON_NONE), + m_type(SNES_MODE20), + m_cart(nullptr) { } sns_cart_slot_device::sns_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - base_sns_cart_slot_device(mconfig, SNS_CART_SLOT, "SNES Cartridge Slot", tag, owner, clock, "sns_cart_slot", __FILE__) + base_sns_cart_slot_device(mconfig, SNS_CART_SLOT, tag, owner, clock) { } sns_sufami_cart_slot_device::sns_sufami_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - base_sns_cart_slot_device(mconfig, SNS_SUFAMI_CART_SLOT, "SNES Sufami Turbo Cartridge Slot", tag, owner, clock, "sns_sufami_cart_slot", __FILE__) + base_sns_cart_slot_device(mconfig, SNS_SUFAMI_CART_SLOT, tag, owner, clock) { } sns_bsx_cart_slot_device::sns_bsx_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - base_sns_cart_slot_device(mconfig, SNS_BSX_CART_SLOT, "SNES BS-X Cartridge Slot", tag, owner, clock, "sns_bsx_cart_slot", __FILE__) + base_sns_cart_slot_device(mconfig, SNS_BSX_CART_SLOT, tag, owner, clock) { } diff --git a/src/devices/bus/snes/snes_slot.h b/src/devices/bus/snes/snes_slot.h index 16ac7e49016..20f35fdad24 100644 --- a/src/devices/bus/snes/snes_slot.h +++ b/src/devices/bus/snes/snes_slot.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __SNS_SLOT_H -#define __SNS_SLOT_H +#ifndef MAME_BUS_SNES_SNES_SLOT_H +#define MAME_BUS_SNES_SNES_SLOT_H + +#pragma once #include "softlist_dev.h" @@ -102,37 +104,39 @@ class device_sns_cart_interface : public device_slot_card_interface { public: // construction/destruction - device_sns_cart_interface(const machine_config &mconfig, device_t &device); virtual ~device_sns_cart_interface(); // reading and writing virtual DECLARE_READ8_MEMBER(read_l) { return 0xff; } // ROM access in range [00-7f] virtual DECLARE_READ8_MEMBER(read_h) { return 0xff; } // ROM access in range [80-ff] virtual DECLARE_READ8_MEMBER(read_ram) { if (!m_nvram.empty()) return m_nvram[offset & (m_nvram.size()-1)]; else return 0xff; } // NVRAM access - virtual DECLARE_WRITE8_MEMBER(write_l) {} // used by carts with subslots - virtual DECLARE_WRITE8_MEMBER(write_h) {} // used by carts with subslots + virtual DECLARE_WRITE8_MEMBER(write_l) { } // used by carts with subslots + virtual DECLARE_WRITE8_MEMBER(write_h) { } // used by carts with subslots virtual DECLARE_WRITE8_MEMBER(write_ram) { if (!m_nvram.empty()) m_nvram[offset & (m_nvram.size()-1)] = data; } // NVRAM access virtual DECLARE_READ8_MEMBER(chip_read) { return 0xff; } - virtual DECLARE_WRITE8_MEMBER(chip_write) {} - virtual void speedup_addon_bios_access() {}; + virtual DECLARE_WRITE8_MEMBER(chip_write) { } + virtual void speedup_addon_bios_access() {} void rom_alloc(uint32_t size, const char *tag); void nvram_alloc(uint32_t size); void rtc_ram_alloc(uint32_t size); void addon_bios_alloc(uint32_t size); - uint8_t* get_rom_base() { return m_rom; }; - uint8_t* get_nvram_base() { return &m_nvram[0]; }; - uint8_t* get_addon_bios_base() { return &m_bios[0]; }; - uint8_t* get_rtc_ram_base() { return &m_rtc_ram[0]; }; - uint32_t get_rom_size() { return m_rom_size; }; - uint32_t get_nvram_size() { return m_nvram.size(); }; - uint32_t get_addon_bios_size() { return m_bios.size(); }; - uint32_t get_rtc_ram_size() { return m_rtc_ram.size(); }; + uint8_t* get_rom_base() { return m_rom; } + uint8_t* get_nvram_base() { return &m_nvram[0]; } + uint8_t* get_addon_bios_base() { return &m_bios[0]; } + uint8_t* get_rtc_ram_base() { return &m_rtc_ram[0]; } + uint32_t get_rom_size() { return m_rom_size; } + uint32_t get_nvram_size() { return m_nvram.size(); } + uint32_t get_addon_bios_size() { return m_bios.size(); } + uint32_t get_rtc_ram_size() { return m_rtc_ram.size(); } void rom_map_setup(uint32_t size); void save_nvram() { device().save_item(NAME(m_nvram)); } void save_rtc_ram() { device().save_item(NAME(m_rtc_ram)); } +protected: + device_sns_cart_interface(const machine_config &mconfig, device_t &device); + // internal state uint8_t *m_rom; uint32_t m_rom_size; @@ -152,7 +156,6 @@ class base_sns_cart_slot_device : public device_t, { public: // construction/destruction - base_sns_cart_slot_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); virtual ~base_sns_cart_slot_device(); // device-level overrides @@ -208,11 +211,14 @@ public: int m_type; device_sns_cart_interface* m_cart; + +protected: + base_sns_cart_slot_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); }; // ======================> sns_cart_slot_device -class sns_cart_slot_device : public base_sns_cart_slot_device +class sns_cart_slot_device : public base_sns_cart_slot_device { public: // construction/destruction @@ -223,7 +229,7 @@ public: // ======================> sns_sufami_cart_slot_device -class sns_sufami_cart_slot_device : public base_sns_cart_slot_device +class sns_sufami_cart_slot_device : public base_sns_cart_slot_device { public: // construction/destruction @@ -247,9 +253,9 @@ public: // device type definition -extern const device_type SNS_CART_SLOT; -extern const device_type SNS_SUFAMI_CART_SLOT; -extern const device_type SNS_BSX_CART_SLOT; +DECLARE_DEVICE_TYPE(SNS_CART_SLOT, sns_cart_slot_device) +DECLARE_DEVICE_TYPE(SNS_SUFAMI_CART_SLOT, sns_sufami_cart_slot_device) +DECLARE_DEVICE_TYPE(SNS_BSX_CART_SLOT, sns_bsx_cart_slot_device) /*************************************************************************** @@ -272,4 +278,4 @@ extern const device_type SNS_BSX_CART_SLOT; MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, false) -#endif +#endif // MAME_BUS_SNES_SNES_SLOT_H diff --git a/src/devices/bus/snes/spc7110.cpp b/src/devices/bus/snes/spc7110.cpp index 61cc7ed99c7..a88c06e9250 100644 --- a/src/devices/bus/snes/spc7110.cpp +++ b/src/devices/bus/snes/spc7110.cpp @@ -16,34 +16,52 @@ #include "spc7110.h" +namespace { + +enum RTC_State +{ + RTCS_Inactive, + RTCS_ModeSelect, + RTCS_IndexSelect, + RTCS_Write +}; + +enum RTC_Mode +{ + RTCM_Linear = 0x03, + RTCM_Indexed = 0x0c +}; + +} // anonymous namespace + //------------------------------------------------- // constructor //------------------------------------------------- -const device_type SNS_HIROM_SPC7110 = device_creator; -const device_type SNS_HIROM_SPC7110_RTC = device_creator; +DEFINE_DEVICE_TYPE(SNS_HIROM_SPC7110, sns_rom_spc7110_device, "sns_rom_spc7110", "SNES Cart + SPC7110") +DEFINE_DEVICE_TYPE(SNS_HIROM_SPC7110_RTC, sns_rom_spc7110rtc_device, "sns_rom_spc7110rtc", "SNES Cart + SPC7110 + RTC") -sns_rom_spc7110_device::sns_rom_spc7110_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : sns_rom21_device(mconfig, type, name, tag, owner, clock, shortname, source), m_r4801(0), m_r4802(0), m_r4803(0), m_r4804(0), m_r4805(0), m_r4806(0), m_r4807(0), - m_r4808(0), m_r4809(0), m_r480a(0), m_r480b(0), m_r480c(0), m_decomp(nullptr), m_r4811(0), m_r4812(0), m_r4813(0), m_r4814(0), m_r4815(0), m_r4816(0), m_r4817(0), m_r4818(0), - m_r481x(0), m_r4814_latch(0), m_r4815_latch(0), m_r4820(0), m_r4821(0), m_r4822(0), m_r4823(0), m_r4824(0), m_r4825(0), m_r4826(0), m_r4827(0), m_r4828(0), m_r4829(0), m_r482a(0), - m_r482b(0), m_r482c(0), m_r482d(0), m_r482e(0), m_r482f(0), m_r4830(0), m_r4831(0), m_r4832(0), m_r4833(0), m_r4834(0), m_dx_offset(0), m_ex_offset(0), m_fx_offset(0), m_r4840(0), - m_r4841(0), m_r4842(0), m_rtc_state(0), m_rtc_mode(0), m_rtc_index(0), m_rtc_offset(0) - { +sns_rom_spc7110_device::sns_rom_spc7110_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : sns_rom21_device(mconfig, type, tag, owner, clock) + , m_r4801(0), m_r4802(0), m_r4803(0), m_r4804(0), m_r4805(0), m_r4806(0), m_r4807(0), m_r4808(0), m_r4809(0), m_r480a(0), m_r480b(0), m_r480c(0) + , m_decomp(nullptr) + , m_r4811(0), m_r4812(0), m_r4813(0), m_r4814(0), m_r4815(0), m_r4816(0), m_r4817(0), m_r4818(0), m_r481x(0), m_r4814_latch(0), m_r4815_latch(0) + , m_r4820(0), m_r4821(0), m_r4822(0), m_r4823(0), m_r4824(0), m_r4825(0), m_r4826(0), m_r4827(0), m_r4828(0), m_r4829(0), m_r482a(0), m_r482b(0), m_r482c(0), m_r482d(0), m_r482e(0), m_r482f(0) + , m_r4830(0), m_r4831(0), m_r4832(0), m_r4833(0), m_r4834(0) + , m_dx_offset(0), m_ex_offset(0), m_fx_offset(0) + , m_r4840(0), m_r4841(0), m_r4842(0) + , m_rtc_state(0), m_rtc_mode(0), m_rtc_index(0), m_rtc_offset(0) +{ } sns_rom_spc7110_device::sns_rom_spc7110_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : sns_rom21_device(mconfig, SNS_HIROM_SPC7110, "SNES Cart + SPC-7110", tag, owner, clock, "sns_rom_spc7110", __FILE__), m_r4801(0), m_r4802(0), m_r4803(0), m_r4804(0), m_r4805(0), m_r4806(0), m_r4807(0), - m_r4808(0), m_r4809(0), m_r480a(0), m_r480b(0), m_r480c(0), m_decomp(nullptr), m_r4811(0), m_r4812(0), m_r4813(0), m_r4814(0), m_r4815(0), m_r4816(0), m_r4817(0), m_r4818(0), - m_r481x(0), m_r4814_latch(0), m_r4815_latch(0), m_r4820(0), m_r4821(0), m_r4822(0), m_r4823(0), m_r4824(0), m_r4825(0), m_r4826(0), m_r4827(0), m_r4828(0), m_r4829(0), m_r482a(0), - m_r482b(0), m_r482c(0), m_r482d(0), m_r482e(0), m_r482f(0), m_r4830(0), m_r4831(0), m_r4832(0), m_r4833(0), m_r4834(0), m_dx_offset(0), m_ex_offset(0), m_fx_offset(0), m_r4840(0), - m_r4841(0), m_r4842(0), m_rtc_state(0), m_rtc_mode(0), m_rtc_index(0), m_rtc_offset(0) + : sns_rom_spc7110_device(mconfig, SNS_HIROM_SPC7110, tag, owner, clock) { } sns_rom_spc7110rtc_device::sns_rom_spc7110rtc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : sns_rom_spc7110_device(mconfig, SNS_HIROM_SPC7110_RTC, "SNES Cart + SPC-7110 + RTC", tag, owner, clock, "sns_rom_spc7110rtc", __FILE__) + : sns_rom_spc7110_device(mconfig, SNS_HIROM_SPC7110_RTC, tag, owner, clock) { } @@ -297,30 +315,21 @@ static const uint8_t spc7110_mode2_context_table[32][2] = { 31, 31 }, }; -SPC7110_Decomp::SPC7110_Decomp(running_machine &machine) - : m_machine(machine) +sns_rom_spc7110_device::SPC7110_Decomp::SPC7110_Decomp(running_machine &machine) : m_machine(machine) { m_decomp_buffer = std::make_unique(SPC7110_DECOMP_BUFFER_SIZE); reset(); - for (int i = 0; i < 256; i++) + for (uint32_t i = 0; i < 256; i++) { -#define map(x, y) (((i >> x) & 1) << y) //2x8-bit - m_morton16[1][i] = map(7, 15) + map(6, 7) + map(5, 14) + map(4, 6) - + map(3, 13) + map(2, 5) + map(1, 12) + map(0, 4); - m_morton16[0][i] = map(7, 11) + map(6, 3) + map(5, 10) + map(4, 2) - + map(3, 9) + map(2, 1) + map(1, 8) + map(0, 0); + m_morton16[0][i] = (bitswap<4>(i, 7, 5, 3, 1) << 8) | (bitswap<4>(i, 6, 4, 2, 0) << 0); + m_morton16[1][i] = m_morton16[0][i] << 4; //4x8-bit - m_morton32[3][i] = map(7, 31) + map(6, 23) + map(5, 15) + map(4, 7) - + map(3, 30) + map(2, 22) + map(1, 14) + map(0, 6); - m_morton32[2][i] = map(7, 29) + map(6, 21) + map(5, 13) + map(4, 5) - + map(3, 28) + map(2, 20) + map(1, 12) + map(0, 4); - m_morton32[1][i] = map(7, 27) + map(6, 19) + map(5, 11) + map(4, 3) - + map(3, 26) + map(2, 18) + map(1, 10) + map(0, 2); - m_morton32[0][i] = map(7, 25) + map(6, 17) + map(5, 9) + map(4, 1) - + map(3, 24) + map(2, 16) + map(1, 8) + map(0, 0); -#undef map + m_morton32[0][i] = (bitswap<2>(i, 7, 3) << 24) | (bitswap<2>(i, 6, 2) << 16) | (bitswap<2>(i, 5, 1) << 8) | (bitswap<2>(i, 4, 0) << 0); + m_morton32[1][i] = m_morton32[0][i] << 2; + m_morton32[2][i] = m_morton32[0][i] << 4; + m_morton32[3][i] = m_morton32[0][i] << 6; } m_machine.save().save_item(m_decomp_mode, "SNES_SPC7110/m_decomp_mode"); @@ -368,7 +377,7 @@ SPC7110_Decomp::SPC7110_Decomp(running_machine &machine) m_machine.save().save_item(m_m2_in_count, "SNES_SPC7110/m_m2_in_count"); } -void SPC7110_Decomp::reset() +void sns_rom_spc7110_device::SPC7110_Decomp::reset() { //mode 3 is invalid; this is treated as a special case to always return 0x00 //set to mode 3 so that reading decomp port before starting first decomp will return 0x00 @@ -379,7 +388,7 @@ void SPC7110_Decomp::reset() m_decomp_buffer_length = 0; } -void SPC7110_Decomp::init(running_machine &machine, uint8_t *ROM, uint32_t len, uint32_t mode, uint32_t offset, uint32_t index) +void sns_rom_spc7110_device::SPC7110_Decomp::init(running_machine &machine, uint8_t *ROM, uint32_t len, uint32_t mode, uint32_t offset, uint32_t index) { m_decomp_mode = mode; m_decomp_offset = offset; @@ -409,7 +418,7 @@ void SPC7110_Decomp::init(running_machine &machine, uint8_t *ROM, uint32_t len, } } -uint8_t SPC7110_Decomp::read(uint8_t *ROM, uint32_t len) +uint8_t sns_rom_spc7110_device::SPC7110_Decomp::read(uint8_t *ROM, uint32_t len) { uint8_t data; @@ -441,14 +450,14 @@ uint8_t SPC7110_Decomp::read(uint8_t *ROM, uint32_t len) return data; } -void SPC7110_Decomp::write(uint8_t data) +void sns_rom_spc7110_device::SPC7110_Decomp::write(uint8_t data) { m_decomp_buffer[m_decomp_buffer_wroffset++] = data; m_decomp_buffer_wroffset &= SPC7110_DECOMP_BUFFER_SIZE - 1; m_decomp_buffer_length++; } -uint8_t SPC7110_Decomp::dataread(uint8_t *ROM, uint32_t len) +uint8_t sns_rom_spc7110_device::SPC7110_Decomp::dataread(uint8_t *ROM, uint32_t len) { uint32_t size = len - 0x100000; while (m_decomp_offset >= size) @@ -458,7 +467,7 @@ uint8_t SPC7110_Decomp::dataread(uint8_t *ROM, uint32_t len) return ROM[0x100000 + m_decomp_offset++]; } -void SPC7110_Decomp::mode0(uint8_t init, uint8_t *ROM, uint32_t len) +void sns_rom_spc7110_device::SPC7110_Decomp::mode0(uint8_t init, uint8_t *ROM, uint32_t len) { if (init == 1) { @@ -543,7 +552,7 @@ void SPC7110_Decomp::mode0(uint8_t init, uint8_t *ROM, uint32_t len) } } -void SPC7110_Decomp::mode1(uint8_t init, uint8_t *ROM, uint32_t len) +void sns_rom_spc7110_device::SPC7110_Decomp::mode1(uint8_t init, uint8_t *ROM, uint32_t len) { if (init == 1) { @@ -704,7 +713,7 @@ void SPC7110_Decomp::mode1(uint8_t init, uint8_t *ROM, uint32_t len) } } -void SPC7110_Decomp::mode2(uint8_t init, uint8_t *ROM, uint32_t len) +void sns_rom_spc7110_device::SPC7110_Decomp::mode2(uint8_t init, uint8_t *ROM, uint32_t len) { if (init == 1) { @@ -882,27 +891,27 @@ void SPC7110_Decomp::mode2(uint8_t init, uint8_t *ROM, uint32_t len) } } -uint8_t SPC7110_Decomp::probability(uint32_t n) +uint8_t sns_rom_spc7110_device::SPC7110_Decomp::probability(uint32_t n) { return spc7110_evolution_table[m_context[n].index][0]; } -uint8_t SPC7110_Decomp::next_lps(uint32_t n) +uint8_t sns_rom_spc7110_device::SPC7110_Decomp::next_lps(uint32_t n) { return spc7110_evolution_table[m_context[n].index][1]; } -uint8_t SPC7110_Decomp::next_mps(uint32_t n) +uint8_t sns_rom_spc7110_device::SPC7110_Decomp::next_mps(uint32_t n) { return spc7110_evolution_table[m_context[n].index][2]; } -uint8_t SPC7110_Decomp::toggle_invert(uint32_t n) +uint8_t sns_rom_spc7110_device::SPC7110_Decomp::toggle_invert(uint32_t n) { return spc7110_evolution_table[m_context[n].index][3]; } -uint32_t SPC7110_Decomp::morton_2x8(uint32_t data) +uint32_t sns_rom_spc7110_device::SPC7110_Decomp::morton_2x8(uint32_t data) { //reverse morton lookup: de-interleave two 8-bit values //15, 13, 11, 9, 7, 5, 3, 1 -> 15- 8 @@ -910,7 +919,7 @@ uint32_t SPC7110_Decomp::morton_2x8(uint32_t data) return m_morton16[0][(data >> 0) & 255] + m_morton16[1][(data >> 8) & 255]; } -uint32_t SPC7110_Decomp::morton_4x8(uint32_t data) +uint32_t sns_rom_spc7110_device::SPC7110_Decomp::morton_4x8(uint32_t data) { //reverse morton lookup: de-interleave four 8-bit values //31, 27, 23, 19, 15, 11, 7, 3 -> 31-24 diff --git a/src/devices/bus/snes/spc7110.h b/src/devices/bus/snes/spc7110.h index 90274f551a9..249944c8ae7 100644 --- a/src/devices/bus/snes/spc7110.h +++ b/src/devices/bus/snes/spc7110.h @@ -1,100 +1,22 @@ // license:GPL-2.0+ // copyright-holders:Fabio Priuli, byuu -#ifndef __SNS_SPC7110_H -#define __SNS_SPC7110_H +#ifndef MAME_BUS_SNES_SPC7110_H +#define MAME_BUS_SNES_SPC7110_H + +#pragma once #include "snes_slot.h" #include "rom21.h" -enum RTC_State -{ - RTCS_Inactive, - RTCS_ModeSelect, - RTCS_IndexSelect, - RTCS_Write -}; - -enum RTC_Mode -{ - RTCM_Linear = 0x03, - RTCM_Indexed = 0x0c -}; - -class SPC7110_Decomp -{ -public: - SPC7110_Decomp(running_machine &machine); - - running_machine &machine() const { return m_machine; } - - void init(running_machine &machine, uint8_t *ROM, uint32_t len, uint32_t mode, uint32_t offset, uint32_t index); - void reset(); - - uint8_t read(uint8_t *ROM, uint32_t len); - void write(uint8_t data); - void mode0(uint8_t init, uint8_t *ROM, uint32_t len); - void mode1(uint8_t init, uint8_t *ROM, uint32_t len); - void mode2(uint8_t init, uint8_t *ROM, uint32_t len); - -private: - - uint8_t dataread(uint8_t *ROM, uint32_t len); - uint8_t probability(uint32_t n); - uint8_t next_lps(uint32_t n); - uint8_t next_mps(uint32_t n); - uint8_t toggle_invert(uint32_t n); - uint32_t morton_2x8(uint32_t data); - uint32_t morton_4x8(uint32_t data); - - uint32_t m_decomp_mode; - uint32_t m_decomp_offset; - - std::unique_ptr m_decomp_buffer; - uint32_t m_decomp_buffer_rdoffset; - uint32_t m_decomp_buffer_wroffset; - uint32_t m_decomp_buffer_length; - - struct ContextState - { - uint8_t index; - uint8_t invert; - } m_context[32]; - - uint32_t m_morton16[2][256]; - uint32_t m_morton32[4][256]; - - // mode 0 vars - uint8_t m_m0_val, m_m0_in, m_m0_span; - int32_t m_m0_out, m_m0_inverts, m_m0_lps, m_m0_in_count; - - // mode 1 vars - int32_t m_m1_pixelorder[4], m_m1_realorder[4]; - uint8_t m_m1_in, m_m1_val, m_m1_span; - int32_t m_m1_out, m_m1_inverts, m_m1_lps, m_m1_in_count; - - // mode 2 vars - int32_t m_m2_pixelorder[16], m_m2_realorder[16]; - uint8_t m_m2_bitplanebuffer[16], m_m2_buffer_index; - uint8_t m_m2_in, m_m2_val, m_m2_span; - int32_t m_m2_out0, m_m2_out1, m_m2_inverts, m_m2_lps, m_m2_in_count; - - running_machine& m_machine; - //uint32_t m_rom_size; -}; - // ======================> sns_rom_spc7110_device class sns_rom_spc7110_device : public sns_rom21_device { public: // construction/destruction - sns_rom_spc7110_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); sns_rom_spc7110_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - // reading and writing virtual DECLARE_READ8_MEMBER(read_l) override; virtual DECLARE_READ8_MEMBER(read_h) override; @@ -104,6 +26,74 @@ public: virtual DECLARE_READ8_MEMBER(chip_read) override; virtual DECLARE_WRITE8_MEMBER(chip_write) override; +protected: + sns_rom_spc7110_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual void device_start() override; + + class SPC7110_Decomp + { + public: + SPC7110_Decomp(running_machine &machine); + + running_machine &machine() const { return m_machine; } + + void init(running_machine &machine, uint8_t *ROM, uint32_t len, uint32_t mode, uint32_t offset, uint32_t index); + void reset(); + + uint8_t read(uint8_t *ROM, uint32_t len); + void write(uint8_t data); + void mode0(uint8_t init, uint8_t *ROM, uint32_t len); + void mode1(uint8_t init, uint8_t *ROM, uint32_t len); + void mode2(uint8_t init, uint8_t *ROM, uint32_t len); + + private: + + uint8_t dataread(uint8_t *ROM, uint32_t len); + uint8_t probability(uint32_t n); + uint8_t next_lps(uint32_t n); + uint8_t next_mps(uint32_t n); + uint8_t toggle_invert(uint32_t n); + uint32_t morton_2x8(uint32_t data); + uint32_t morton_4x8(uint32_t data); + + uint32_t m_decomp_mode; + uint32_t m_decomp_offset; + + std::unique_ptr m_decomp_buffer; + uint32_t m_decomp_buffer_rdoffset; + uint32_t m_decomp_buffer_wroffset; + uint32_t m_decomp_buffer_length; + + struct ContextState + { + uint8_t index; + uint8_t invert; + } m_context[32]; + + uint32_t m_morton16[2][256]; + uint32_t m_morton32[4][256]; + + // mode 0 vars + uint8_t m_m0_val, m_m0_in, m_m0_span; + int32_t m_m0_out, m_m0_inverts, m_m0_lps, m_m0_in_count; + + // mode 1 vars + int32_t m_m1_pixelorder[4], m_m1_realorder[4]; + uint8_t m_m1_in, m_m1_val, m_m1_span; + int32_t m_m1_out, m_m1_inverts, m_m1_lps, m_m1_in_count; + + // mode 2 vars + int32_t m_m2_pixelorder[16], m_m2_realorder[16]; + uint8_t m_m2_bitplanebuffer[16], m_m2_buffer_index; + uint8_t m_m2_in, m_m2_val, m_m2_span; + int32_t m_m2_out0, m_m2_out1, m_m2_inverts, m_m2_lps, m_m2_in_count; + + running_machine& m_machine; + //uint32_t m_rom_size; + }; + void spc7110_start(); uint32_t spc7110_datarom_addr(uint32_t addr, uint32_t len); uint32_t spc7110_data_pointer(); @@ -206,9 +196,6 @@ public: // construction/destruction sns_rom_spc7110rtc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - // reading and writing // we just use the spc7110 ones for the moment, pending the split of regs 0x4840-0x4842 (RTC) from the base add-on @@ -217,10 +204,14 @@ public: // virtual DECLARE_READ8_MEMBER(chip_read); // virtual DECLARE_WRITE8_MEMBER(chip_write); + +protected: + // device-level overrides + virtual void device_start() override; }; // device type definition -extern const device_type SNS_HIROM_SPC7110; -extern const device_type SNS_HIROM_SPC7110_RTC; +DECLARE_DEVICE_TYPE(SNS_HIROM_SPC7110, sns_rom_spc7110_device) +DECLARE_DEVICE_TYPE(SNS_HIROM_SPC7110_RTC, sns_rom_spc7110rtc_device) -#endif +#endif // MAME_BUS_SNES_SPC7110_H diff --git a/src/devices/bus/snes/sufami.cpp b/src/devices/bus/snes/sufami.cpp index 782e8669f13..4e4180cc758 100644 --- a/src/devices/bus/snes/sufami.cpp +++ b/src/devices/bus/snes/sufami.cpp @@ -20,19 +20,19 @@ // sns_rom_sufami_device - constructor //------------------------------------------------- -const device_type SNS_LOROM_SUFAMI = device_creator; -const device_type SNS_STROM = device_creator; +DEFINE_DEVICE_TYPE(SNS_LOROM_SUFAMI, sns_rom_sufami_device, "sns_rom_sufami", "SNES Sufami Turbo Cart") +DEFINE_DEVICE_TYPE(SNS_STROM, sns_rom_strom_device, "sns_strom", "SNES Sufami Turbo Minicart") sns_rom_sufami_device::sns_rom_sufami_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : sns_rom_device(mconfig, SNS_LOROM_SUFAMI, "SNES Sufami Turbo Cart", tag, owner, clock, "sns_rom_sufami", __FILE__), - m_slot1(*this, "st_slot1"), - m_slot2(*this, "st_slot2") + : sns_rom_device(mconfig, SNS_LOROM_SUFAMI, tag, owner, clock) + , m_slot1(*this, "st_slot1") + , m_slot2(*this, "st_slot2") { } sns_rom_strom_device::sns_rom_strom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : sns_rom_device(mconfig, SNS_STROM, "SNES Sufami Turbo Minicart", tag, owner, clock, "sns_strom", __FILE__) + : sns_rom_device(mconfig, SNS_STROM, tag, owner, clock) { } diff --git a/src/devices/bus/snes/sufami.h b/src/devices/bus/snes/sufami.h index b00c8c8ed07..b9712e6cf43 100644 --- a/src/devices/bus/snes/sufami.h +++ b/src/devices/bus/snes/sufami.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __SNS_SUFAMI_H -#define __SNS_SUFAMI_H +#ifndef MAME_BUS_SNES_SUFAMI_H +#define MAME_BUS_SNES_SUFAMI_H + +#pragma once #include "snes_slot.h" #include "rom.h" @@ -15,8 +17,6 @@ public: // construction/destruction sns_rom_sufami_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual machine_config_constructor device_mconfig_additions() const override; // additional reading and writing @@ -25,6 +25,10 @@ public: virtual DECLARE_WRITE8_MEMBER(write_l) override; virtual DECLARE_WRITE8_MEMBER(write_h) override; +protected: + // device-level overrides + virtual void device_start() override; + private: required_device m_slot1; required_device m_slot2; @@ -38,16 +42,17 @@ public: // construction/destruction sns_rom_strom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - // additional reading and writing virtual DECLARE_READ8_MEMBER(read_l) override; + +protected: + // device-level overrides + virtual void device_start() override; }; // device type definition -extern const device_type SNS_LOROM_SUFAMI; -extern const device_type SNS_STROM; +DECLARE_DEVICE_TYPE(SNS_LOROM_SUFAMI, sns_rom_sufami_device) +DECLARE_DEVICE_TYPE(SNS_STROM, sns_rom_strom_device) -#endif +#endif // MAME_BUS_SNES_SUFAMI_H diff --git a/src/devices/bus/snes/upd.cpp b/src/devices/bus/snes/upd.cpp index 86dd2ef49f4..ba7290da5a7 100644 --- a/src/devices/bus/snes/upd.cpp +++ b/src/devices/bus/snes/upd.cpp @@ -26,49 +26,44 @@ inline uint16_t get_data(uint8_t *CPU, uint32_t addr) // constructor //------------------------------------------------- -const device_type SNS_LOROM_NECDSP = device_creator; -const device_type SNS_HIROM_NECDSP = device_creator; -const device_type SNS_LOROM_SETA10 = device_creator; -const device_type SNS_LOROM_SETA11 = device_creator; +DEFINE_DEVICE_TYPE(SNS_LOROM_NECDSP, sns_rom20_necdsp_device, "sns_rom_necdsp", "SNES Cart (LoROM) + NEC DSP") +DEFINE_DEVICE_TYPE(SNS_HIROM_NECDSP, sns_rom21_necdsp_device, "sns_rom21_necdsp", "SNES Cart (HiROM) + NEC DSP") +DEFINE_DEVICE_TYPE(SNS_LOROM_SETA10, sns_rom_seta10dsp_device, "sns_rom_seta10", "SNES Cart (LoROM) + Seta ST010 DSP") +DEFINE_DEVICE_TYPE(SNS_LOROM_SETA11, sns_rom_seta11dsp_device, "sns_rom_seta11", "SNES Cart (LoROM) + Seta ST011 DSP") -sns_rom20_necdsp_device::sns_rom20_necdsp_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : sns_rom_device(mconfig, type, name, tag, owner, clock, shortname, source), - m_upd7725(*this, "dsp") +sns_rom20_necdsp_device::sns_rom20_necdsp_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : sns_rom_device(mconfig, type, tag, owner, clock), m_upd7725(*this, "dsp") { } sns_rom20_necdsp_device::sns_rom20_necdsp_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : sns_rom_device(mconfig, SNS_LOROM_NECDSP, "SNES Cart (LoROM) + NEC DSP", tag, owner, clock, "sns_rom_necdsp", __FILE__), - m_upd7725(*this, "dsp") + : sns_rom20_necdsp_device(mconfig, SNS_LOROM_NECDSP, tag, owner, clock) { } -sns_rom21_necdsp_device::sns_rom21_necdsp_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : sns_rom21_device(mconfig, type, name, tag, owner, clock, shortname, source), - m_upd7725(*this, "dsp") +sns_rom21_necdsp_device::sns_rom21_necdsp_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : sns_rom21_device(mconfig, type, tag, owner, clock), m_upd7725(*this, "dsp") { } sns_rom21_necdsp_device::sns_rom21_necdsp_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : sns_rom21_device(mconfig, SNS_HIROM_NECDSP, "SNES Cart (HiROM) + NEC DSP", tag, owner, clock, "sns_rom21_necdsp", __FILE__), - m_upd7725(*this, "dsp") + : sns_rom21_necdsp_device(mconfig, SNS_HIROM_NECDSP, tag, owner, clock) { } -sns_rom_setadsp_device::sns_rom_setadsp_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : sns_rom_device(mconfig, type, name, tag, owner, clock, shortname, source), - m_upd96050(*this, "dsp") +sns_rom_setadsp_device::sns_rom_setadsp_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : sns_rom_device(mconfig, type, tag, owner, clock), m_upd96050(*this, "dsp") { } sns_rom_seta10dsp_device::sns_rom_seta10dsp_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : sns_rom_setadsp_device(mconfig, SNS_LOROM_SETA10, "SNES Cart (LoROM) + Seta ST010 DSP", tag, owner, clock, "sns_rom_seta10", __FILE__) + : sns_rom_setadsp_device(mconfig, SNS_LOROM_SETA10, tag, owner, clock) { } sns_rom_seta11dsp_device::sns_rom_seta11dsp_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : sns_rom_setadsp_device(mconfig, SNS_LOROM_SETA11, "SNES Cart (LoROM) + Seta ST011 DSP", tag, owner, clock, "sns_rom_seta11", __FILE__) + : sns_rom_setadsp_device(mconfig, SNS_LOROM_SETA11, tag, owner, clock) { } @@ -398,53 +393,53 @@ void sns_rom_setadsp_device::speedup_addon_bios_access() // Legacy versions including DSP dump roms, in order to support faulty dumps missing DSP data... -const device_type SNS_LOROM_NECDSP1_LEG = device_creator; -const device_type SNS_LOROM_NECDSP1B_LEG = device_creator; -const device_type SNS_LOROM_NECDSP2_LEG = device_creator; -const device_type SNS_LOROM_NECDSP3_LEG = device_creator; -const device_type SNS_LOROM_NECDSP4_LEG = device_creator; -const device_type SNS_HIROM_NECDSP1_LEG = device_creator; -const device_type SNS_LOROM_SETA10_LEG = device_creator; -const device_type SNS_LOROM_SETA11_LEG = device_creator; +DEFINE_DEVICE_TYPE(SNS_LOROM_NECDSP1_LEG, sns_rom20_necdsp1_legacy_device, "sns_dsp1leg", "SNES Cart (LoROM) + NEC DSP1 Legacy") +DEFINE_DEVICE_TYPE(SNS_LOROM_NECDSP1B_LEG, sns_rom20_necdsp1b_legacy_device, "sns_dsp1bleg", "SNES Cart (LoROM) + NEC DSP1B Legacy") +DEFINE_DEVICE_TYPE(SNS_LOROM_NECDSP2_LEG, sns_rom20_necdsp2_legacy_device, "sns_dsp2leg", "SNES Cart (LoROM) + NEC DSP2 Legacy") +DEFINE_DEVICE_TYPE(SNS_LOROM_NECDSP3_LEG, sns_rom20_necdsp3_legacy_device, "sns_dsp3leg", "SNES Cart (LoROM) + NEC DSP3 Legacy") +DEFINE_DEVICE_TYPE(SNS_LOROM_NECDSP4_LEG, sns_rom20_necdsp4_legacy_device, "sns_dsp4leg", "SNES Cart (LoROM) + NEC DSP4 Legacy") +DEFINE_DEVICE_TYPE(SNS_HIROM_NECDSP1_LEG, sns_rom21_necdsp1_legacy_device, "sns_dsp1leg_hi", "SNES Cart (HiROM) + NEC DSP1 Legacy") +DEFINE_DEVICE_TYPE(SNS_LOROM_SETA10_LEG, sns_rom_seta10dsp_legacy_device, "sns_seta10leg", "SNES Cart (LoROM) + SETA ST010 DSP Legacy") +DEFINE_DEVICE_TYPE(SNS_LOROM_SETA11_LEG, sns_rom_seta11dsp_legacy_device, "sns_seta11leg", "SNES Cart (LoROM) + SETA ST011 DSP Legacy") sns_rom20_necdsp1_legacy_device::sns_rom20_necdsp1_legacy_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : sns_rom20_necdsp_device(mconfig, SNS_LOROM_NECDSP1_LEG, "SNES Cart (LoROM) + NEC DSP1 Legacy", tag, owner, clock, "dsp1leg", __FILE__) + : sns_rom20_necdsp_device(mconfig, SNS_LOROM_NECDSP1_LEG, tag, owner, clock) { } sns_rom20_necdsp1b_legacy_device::sns_rom20_necdsp1b_legacy_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : sns_rom20_necdsp_device(mconfig, SNS_LOROM_NECDSP1B_LEG, "SNES Cart (LoROM) + NEC DSP1B Legacy", tag, owner, clock, "dsp1bleg", __FILE__) + : sns_rom20_necdsp_device(mconfig, SNS_LOROM_NECDSP1B_LEG, tag, owner, clock) { } sns_rom20_necdsp2_legacy_device::sns_rom20_necdsp2_legacy_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : sns_rom20_necdsp_device(mconfig, SNS_LOROM_NECDSP2_LEG, "SNES Cart (LoROM) + NEC DSP2 Legacy", tag, owner, clock, "dsp2leg", __FILE__) + : sns_rom20_necdsp_device(mconfig, SNS_LOROM_NECDSP2_LEG, tag, owner, clock) { } sns_rom20_necdsp3_legacy_device::sns_rom20_necdsp3_legacy_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : sns_rom20_necdsp_device(mconfig, SNS_LOROM_NECDSP3_LEG, "SNES Cart (LoROM) + NEC DSP3 Legacy", tag, owner, clock, "dsp3leg", __FILE__) + : sns_rom20_necdsp_device(mconfig, SNS_LOROM_NECDSP3_LEG, tag, owner, clock) { } sns_rom20_necdsp4_legacy_device::sns_rom20_necdsp4_legacy_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : sns_rom20_necdsp_device(mconfig, SNS_LOROM_NECDSP4_LEG, "SNES Cart (LoROM) + NEC DSP4 Legacy", tag, owner, clock, "dsp4leg", __FILE__) + : sns_rom20_necdsp_device(mconfig, SNS_LOROM_NECDSP4_LEG, tag, owner, clock) { } sns_rom21_necdsp1_legacy_device::sns_rom21_necdsp1_legacy_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : sns_rom21_necdsp_device(mconfig, SNS_HIROM_NECDSP1_LEG, "SNES Cart (HiROM) + NEC DSP1 Legacy", tag, owner, clock, "dsp1leg_hi", __FILE__) + : sns_rom21_necdsp_device(mconfig, SNS_HIROM_NECDSP1_LEG, tag, owner, clock) { } sns_rom_seta10dsp_legacy_device::sns_rom_seta10dsp_legacy_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : sns_rom_setadsp_device(mconfig, SNS_LOROM_SETA10_LEG, "SNES Cart (LoROM) + Seta ST010 DSP Legacy", tag, owner, clock, "seta10leg", __FILE__) + : sns_rom_setadsp_device(mconfig, SNS_LOROM_SETA10_LEG, tag, owner, clock) { } sns_rom_seta11dsp_legacy_device::sns_rom_seta11dsp_legacy_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : sns_rom_setadsp_device(mconfig, SNS_LOROM_SETA11_LEG, "SNES Cart (LoROM) + Seta ST011 DSP Legacy", tag, owner, clock, "seta11leg", __FILE__) + : sns_rom_setadsp_device(mconfig, SNS_LOROM_SETA11_LEG, tag, owner, clock) { } diff --git a/src/devices/bus/snes/upd.h b/src/devices/bus/snes/upd.h index fa0d4dcb2ff..161441d8bdd 100644 --- a/src/devices/bus/snes/upd.h +++ b/src/devices/bus/snes/upd.h @@ -1,29 +1,27 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __SNS_UPD_H -#define __SNS_UPD_H +#ifndef MAME_BUS_SNES_UPD_H +#define MAME_BUS_SNES_UPD_H + +#pragma once #include "snes_slot.h" #include "rom.h" #include "rom21.h" #include "cpu/upd7725/upd7725.h" -// ======================> sns_rom_necdsp_device +// ======================> sns_rom20_necdsp_device class sns_rom20_necdsp_device : public sns_rom_device { public: // construction/destruction - sns_rom20_necdsp_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); sns_rom20_necdsp_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides virtual void device_start() override; virtual machine_config_constructor device_mconfig_additions() const override; virtual void speedup_addon_bios_access() override; - required_device m_upd7725; - // additional reading and writing virtual DECLARE_READ8_MEMBER(chip_read) override; virtual DECLARE_WRITE8_MEMBER(chip_write) override; @@ -31,6 +29,12 @@ public: virtual DECLARE_READ32_MEMBER(necdsp_prg_r); virtual DECLARE_READ16_MEMBER(necdsp_data_r); +protected: + sns_rom20_necdsp_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + required_device m_upd7725; + std::vector m_dsp_prg; std::vector m_dsp_data; }; @@ -41,16 +45,11 @@ class sns_rom21_necdsp_device : public sns_rom21_device { public: // construction/destruction - sns_rom21_necdsp_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); sns_rom21_necdsp_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual machine_config_constructor device_mconfig_additions() const override; virtual void speedup_addon_bios_access() override; - required_device m_upd7725; - // additional reading and writing virtual DECLARE_READ8_MEMBER(chip_read) override; virtual DECLARE_WRITE8_MEMBER(chip_write) override; @@ -58,6 +57,14 @@ public: virtual DECLARE_READ32_MEMBER(necdsp_prg_r); virtual DECLARE_READ16_MEMBER(necdsp_data_r); +protected: + sns_rom21_necdsp_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual void device_start() override; + + required_device m_upd7725; + std::vector m_dsp_prg; std::vector m_dsp_data; }; @@ -67,15 +74,8 @@ public: class sns_rom_setadsp_device : public sns_rom_device { public: - // construction/destruction - sns_rom_setadsp_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - - // device-level overrides - virtual void device_start() override; virtual void speedup_addon_bios_access() override; - required_device m_upd96050; - // additional reading and writing virtual DECLARE_READ8_MEMBER(chip_read) override; virtual DECLARE_WRITE8_MEMBER(chip_write) override; @@ -83,6 +83,15 @@ public: virtual DECLARE_READ32_MEMBER(setadsp_prg_r); virtual DECLARE_READ16_MEMBER(setadsp_data_r); +protected: + // construction/destruction + sns_rom_setadsp_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual void device_start() override; + + required_device m_upd96050; + std::vector m_dsp_prg; std::vector m_dsp_data; }; @@ -113,11 +122,10 @@ public: // device type definition -extern const device_type SNS_LOROM_NECDSP; -extern const device_type SNS_HIROM_NECDSP; -extern const device_type SNS_LOROM_SETA10; -extern const device_type SNS_LOROM_SETA11; - +DECLARE_DEVICE_TYPE(SNS_LOROM_NECDSP, sns_rom20_necdsp_device) +DECLARE_DEVICE_TYPE(SNS_HIROM_NECDSP, sns_rom21_necdsp_device) +DECLARE_DEVICE_TYPE(SNS_LOROM_SETA10, sns_rom_seta10dsp_device) +DECLARE_DEVICE_TYPE(SNS_LOROM_SETA11, sns_rom_seta11dsp_device) @@ -211,13 +219,13 @@ public: virtual const tiny_rom_entry *device_rom_region() const override; }; -extern const device_type SNS_LOROM_NECDSP1_LEG; -extern const device_type SNS_LOROM_NECDSP1B_LEG; -extern const device_type SNS_LOROM_NECDSP2_LEG; -extern const device_type SNS_LOROM_NECDSP3_LEG; -extern const device_type SNS_LOROM_NECDSP4_LEG; -extern const device_type SNS_HIROM_NECDSP1_LEG; -extern const device_type SNS_LOROM_SETA10_LEG; -extern const device_type SNS_LOROM_SETA11_LEG; +DECLARE_DEVICE_TYPE(SNS_LOROM_NECDSP1_LEG, sns_rom20_necdsp1_legacy_device) +DECLARE_DEVICE_TYPE(SNS_LOROM_NECDSP1B_LEG, sns_rom20_necdsp1b_legacy_device) +DECLARE_DEVICE_TYPE(SNS_LOROM_NECDSP2_LEG, sns_rom20_necdsp2_legacy_device) +DECLARE_DEVICE_TYPE(SNS_LOROM_NECDSP3_LEG, sns_rom20_necdsp3_legacy_device) +DECLARE_DEVICE_TYPE(SNS_LOROM_NECDSP4_LEG, sns_rom20_necdsp4_legacy_device) +DECLARE_DEVICE_TYPE(SNS_HIROM_NECDSP1_LEG, sns_rom21_necdsp1_legacy_device) +DECLARE_DEVICE_TYPE(SNS_LOROM_SETA10_LEG, sns_rom_seta10dsp_legacy_device) +DECLARE_DEVICE_TYPE(SNS_LOROM_SETA11_LEG, sns_rom_seta11dsp_legacy_device) -#endif +#endif // MAME_BUS_SNES_UPD_H diff --git a/src/devices/bus/snes_ctrl/bcbattle.cpp b/src/devices/bus/snes_ctrl/bcbattle.cpp index 0195bf0fe6b..435a3a6d3c3 100644 --- a/src/devices/bus/snes_ctrl/bcbattle.cpp +++ b/src/devices/bus/snes_ctrl/bcbattle.cpp @@ -17,7 +17,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type SNES_BARCODE_BATTLER = device_creator; +DEFINE_DEVICE_TYPE(SNES_BARCODE_BATTLER, snes_bcbattle_device, "snes_bcbattle", "Epoch Barcode Battler (SFC)") MACHINE_CONFIG_FRAGMENT( snes_battler ) @@ -83,9 +83,12 @@ void snes_bcbattle_device::device_timer(emu_timer &timer, device_timer_id id, in //------------------------------------------------- snes_bcbattle_device::snes_bcbattle_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, SNES_BARCODE_BATTLER, "Epoch Barcode Battler (SFC)", tag, owner, clock, "snes_bcbattle", __FILE__), - device_snes_control_port_interface(mconfig, *this), - m_reader(*this, "battler"), m_pending_code(0), m_new_code(0), m_transmitting(0), m_cur_bit(0), m_cur_byte(0), battler_timer(nullptr), m_strobe(0), m_idx(0) + device_t(mconfig, SNES_BARCODE_BATTLER, tag, owner, clock), + device_snes_control_port_interface(mconfig, *this), + m_reader(*this, "battler"), + m_pending_code(0), m_new_code(0), m_transmitting(0), m_cur_bit(0), m_cur_byte(0), + battler_timer(nullptr), + m_strobe(0), m_idx(0) { } diff --git a/src/devices/bus/snes_ctrl/bcbattle.h b/src/devices/bus/snes_ctrl/bcbattle.h index 7fde5b0e54b..91d7eb8d76b 100644 --- a/src/devices/bus/snes_ctrl/bcbattle.h +++ b/src/devices/bus/snes_ctrl/bcbattle.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_SNES_CTRL_BCBATTLE_H +#define MAME_BUS_SNES_CTRL_BCBATTLE_H -#ifndef __SNES_BCBATTLE__ -#define __SNES_BCBATTLE__ +#pragma once #include "ctrl.h" @@ -28,13 +28,13 @@ public: // construction/destruction snes_bcbattle_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; virtual machine_config_constructor device_mconfig_additions() const override; protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; + virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; virtual uint8_t read_pin4() override; virtual void write_strobe(uint8_t data) override; @@ -43,8 +43,8 @@ protected: int read_current_bit(); private: + static constexpr device_timer_id TIMER_BATTLER = 1; - static const device_timer_id TIMER_BATTLER = 1; required_device m_reader; uint8_t m_current_barcode[20]; int m_pending_code, m_new_code, m_transmitting, m_cur_bit, m_cur_byte; @@ -54,6 +54,6 @@ private: }; // device type definition -extern const device_type SNES_BARCODE_BATTLER; +DECLARE_DEVICE_TYPE(SNES_BARCODE_BATTLER, snes_bcbattle_device) -#endif +#endif // MAME_BUS_SNES_CTRL_BCBATTLE_H diff --git a/src/devices/bus/snes_ctrl/ctrl.cpp b/src/devices/bus/snes_ctrl/ctrl.cpp index 53383c13ce7..b0cf145072f 100644 --- a/src/devices/bus/snes_ctrl/ctrl.cpp +++ b/src/devices/bus/snes_ctrl/ctrl.cpp @@ -8,6 +8,7 @@ #include "emu.h" #include "ctrl.h" + // slot devices #include "bcbattle.h" #include "joypad.h" @@ -23,7 +24,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type SNES_CONTROL_PORT = device_creator; +DEFINE_DEVICE_TYPE(SNES_CONTROL_PORT, snes_control_port_device, "snes_control_port", "Nintendo SNES / SFC controller port") //************************************************************************** @@ -59,8 +60,8 @@ device_snes_control_port_interface::~device_snes_control_port_interface() //------------------------------------------------- snes_control_port_device::snes_control_port_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, SNES_CONTROL_PORT, "Nintendo SNES / SFC control port", tag, owner, clock, "snes_control_port", __FILE__), - device_slot_interface(mconfig, *this), m_device(nullptr) + device_t(mconfig, SNES_CONTROL_PORT, tag, owner, clock), + device_slot_interface(mconfig, *this), m_device(nullptr) { } diff --git a/src/devices/bus/snes_ctrl/ctrl.h b/src/devices/bus/snes_ctrl/ctrl.h index 86fb8229945..0d4839980c1 100644 --- a/src/devices/bus/snes_ctrl/ctrl.h +++ b/src/devices/bus/snes_ctrl/ctrl.h @@ -6,12 +6,11 @@ **********************************************************************/ +#ifndef MAME_BUS_SNES_CTRL_CTRL_H +#define MAME_BUS_SNES_CTRL_CTRL_H #pragma once -#ifndef __SNES_CONTROL_PORT__ -#define __SNES_CONTROL_PORT__ - //************************************************************************** // TYPE DEFINITIONS @@ -28,11 +27,11 @@ public: device_snes_control_port_interface(const machine_config &mconfig, device_t &device); virtual ~device_snes_control_port_interface(); - virtual uint8_t read_pin4() { return 0; }; - virtual uint8_t read_pin5() { return 0; }; - virtual void write_pin6(uint8_t data) { }; - virtual void write_strobe(uint8_t data) { }; - virtual void port_poll() { }; + virtual uint8_t read_pin4() { return 0; } + virtual uint8_t read_pin5() { return 0; } + virtual void write_pin6(uint8_t data) { } + virtual void write_strobe(uint8_t data) { } + virtual void port_poll() { } protected: snes_control_port_device *m_port; @@ -46,8 +45,7 @@ typedef device_delegate snesctrl_gunlatch_delegate; // ======================> snes_control_port_device -class snes_control_port_device : public device_t, - public device_slot_interface +class snes_control_port_device : public device_t, public device_slot_interface { public: // construction/destruction @@ -63,19 +61,22 @@ public: void write_strobe(uint8_t data); void port_poll(); - snesctrl_onscreen_delegate m_onscreen_cb; - snesctrl_gunlatch_delegate m_gunlatch_cb; + bool onscreen_cb(int16_t x, int16_t y) { return m_onscreen_cb.isnull() ? true : m_onscreen_cb(x, y); } + void gunlatch_cb(int16_t x, int16_t y) { if (!m_gunlatch_cb.isnull()) m_gunlatch_cb(x, y); } protected: // device-level overrides virtual void device_start() override; + snesctrl_onscreen_delegate m_onscreen_cb; + snesctrl_gunlatch_delegate m_gunlatch_cb; + device_snes_control_port_interface *m_device; }; // device type definition -extern const device_type SNES_CONTROL_PORT; +DECLARE_DEVICE_TYPE(SNES_CONTROL_PORT, snes_control_port_device) //************************************************************************** @@ -96,4 +97,4 @@ extern const device_type SNES_CONTROL_PORT; SLOT_INTERFACE_EXTERN( snes_control_port_devices ); -#endif +#endif // MAME_BUS_SNES_CTRL_CTRL_H diff --git a/src/devices/bus/snes_ctrl/joypad.cpp b/src/devices/bus/snes_ctrl/joypad.cpp index b31e8e1d36d..359cb4cec53 100644 --- a/src/devices/bus/snes_ctrl/joypad.cpp +++ b/src/devices/bus/snes_ctrl/joypad.cpp @@ -13,7 +13,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type SNES_JOYPAD = device_creator; +DEFINE_DEVICE_TYPE(SNES_JOYPAD, snes_joypad_device, "snes_joypad", "Nintendo SNES / SFC Control Pad") static INPUT_PORTS_START( snes_joypad ) @@ -54,9 +54,10 @@ ioport_constructor snes_joypad_device::device_input_ports() const //------------------------------------------------- snes_joypad_device::snes_joypad_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, SNES_JOYPAD, "Nintendo SNES / SFC Control Pad", tag, owner, clock, "snes_joypad", __FILE__), - device_snes_control_port_interface(mconfig, *this), - m_joypad(*this, "JOYPAD"), m_strobe(0), m_latch(0) + device_t(mconfig, SNES_JOYPAD, tag, owner, clock), + device_snes_control_port_interface(mconfig, *this), + m_joypad(*this, "JOYPAD"), + m_strobe(0), m_latch(0) { } diff --git a/src/devices/bus/snes_ctrl/joypad.h b/src/devices/bus/snes_ctrl/joypad.h index e2ec9759c45..b28fd5054a2 100644 --- a/src/devices/bus/snes_ctrl/joypad.h +++ b/src/devices/bus/snes_ctrl/joypad.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_SNES_CTRL_JOYPAD_H +#define MAME_BUS_SNES_CTRL_JOYPAD_H -#ifndef __SNES_JOYPAD__ -#define __SNES_JOYPAD__ +#pragma once #include "ctrl.h" @@ -50,5 +50,4 @@ private: // device type definition extern const device_type SNES_JOYPAD; - -#endif +#endif // MAME_BUS_SNES_CTRL_JOYPAD_H diff --git a/src/devices/bus/snes_ctrl/miracle.cpp b/src/devices/bus/snes_ctrl/miracle.cpp index 94e4e567e91..23b5e6eb1ba 100644 --- a/src/devices/bus/snes_ctrl/miracle.cpp +++ b/src/devices/bus/snes_ctrl/miracle.cpp @@ -20,7 +20,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type SNES_MIRACLE = device_creator; +DEFINE_DEVICE_TYPE(SNES_MIRACLE, snes_miracle_device, "snes_miracle", "Miracle Piano SNES Cable") MACHINE_CONFIG_FRAGMENT( snes_miracle ) @@ -61,11 +61,13 @@ void snes_miracle_device::device_timer(emu_timer &timer, device_timer_id id, int //------------------------------------------------- snes_miracle_device::snes_miracle_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, SNES_MIRACLE, "Miracle Piano SNES Cable", tag, owner, clock, "snes_miracle", __FILE__), - device_serial_interface(mconfig, *this), - device_snes_control_port_interface(mconfig, *this), - m_midiin(*this, "mdin"), - m_midiout(*this, "mdout"), strobe_timer(nullptr), m_strobe_on(0), m_midi_mode(0), m_sent_bits(0), m_strobe_clock(0), + device_t(mconfig, SNES_MIRACLE, tag, owner, clock), + device_serial_interface(mconfig, *this), + device_snes_control_port_interface(mconfig, *this), + m_midiin(*this, "mdin"), + m_midiout(*this, "mdout"), + strobe_timer(nullptr), + m_strobe_on(0), m_midi_mode(0), m_sent_bits(0), m_strobe_clock(0), m_data_sent(0), m_xmit_read(0), m_xmit_write(0), m_recv_read(0), m_recv_write(0), m_tx_busy(false), m_read_status(false), m_status_bit(false) { } diff --git a/src/devices/bus/snes_ctrl/miracle.h b/src/devices/bus/snes_ctrl/miracle.h index 2e9a4f1373e..d7907840262 100644 --- a/src/devices/bus/snes_ctrl/miracle.h +++ b/src/devices/bus/snes_ctrl/miracle.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_SNES_CTRL_MIRACLE_H +#define MAME_BUS_SNES_CTRL_MIRACLE_H -#ifndef __SNES_MIRACLE__ -#define __SNES_MIRACLE__ +#pragma once #include "ctrl.h" @@ -26,34 +26,35 @@ class snes_miracle_device : public device_t, public device_snes_control_port_interface { public: - static const int XMIT_RING_SIZE = 64; - static const int RECV_RING_SIZE = 64; - // construction/destruction snes_miracle_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; virtual machine_config_constructor device_mconfig_additions() const override; - // serial overrides - virtual void rcv_complete() override; // Rx completed receiving byte - virtual void tra_complete() override; // Tx completed sending byte - virtual void tra_callback() override; // Tx send bit - - void xmit_char(uint8_t data); +protected: + static constexpr device_timer_id TIMER_STROBE_ON = 0; - required_device m_midiin, m_midiout; + static constexpr int XMIT_RING_SIZE = 64; + static constexpr int RECV_RING_SIZE = 64; -protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; + virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + + // serial overrides + virtual void rcv_complete() override; // Rx completed receiving byte + virtual void tra_complete() override; // Tx completed sending byte + virtual void tra_callback() override; // Tx send bit uint8_t read_pin4() override; void write_pin6(uint8_t data) override; void write_strobe(uint8_t data) override; - static const device_timer_id TIMER_STROBE_ON = 0; + void xmit_char(uint8_t data); + + required_device m_midiin, m_midiout; + emu_timer *strobe_timer; int m_strobe_on, m_midi_mode, m_sent_bits; @@ -66,6 +67,6 @@ protected: }; // device type definition -extern const device_type SNES_MIRACLE; +DECLARE_DEVICE_TYPE(SNES_MIRACLE, snes_miracle_device) -#endif +#endif // MAME_BUS_SNES_CTRL_MIRACLE_H diff --git a/src/devices/bus/snes_ctrl/mouse.cpp b/src/devices/bus/snes_ctrl/mouse.cpp index acd8892518f..add94382437 100644 --- a/src/devices/bus/snes_ctrl/mouse.cpp +++ b/src/devices/bus/snes_ctrl/mouse.cpp @@ -13,7 +13,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type SNES_MOUSE = device_creator; +DEFINE_DEVICE_TYPE(SNES_MOUSE, snes_mouse_device, "snes_mouse", "Nintendo SNES / SFC Mouse Controller") static INPUT_PORTS_START( snes_mouse ) @@ -60,12 +60,14 @@ ioport_constructor snes_mouse_device::device_input_ports() const //------------------------------------------------- snes_mouse_device::snes_mouse_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, SNES_MOUSE, "Nintendo SNES / SFC Mouse Controller", tag, owner, clock, "snes_mouse", __FILE__), - device_snes_control_port_interface(mconfig, *this), - m_buttons(*this, "BUTTONS"), - m_xaxis(*this, "MOUSE_X"), - m_yaxis(*this, "MOUSE_Y"), m_strobe(0), m_idx(0), m_latch(0), m_x(0), m_y(0), m_oldx(0), m_oldy(0), m_deltax(0), - m_deltay(0), m_speed(0), m_dirx(0), m_diry(0) + device_t(mconfig, SNES_MOUSE, tag, owner, clock), + device_snes_control_port_interface(mconfig, *this), + m_buttons(*this, "BUTTONS"), + m_xaxis(*this, "MOUSE_X"), + m_yaxis(*this, "MOUSE_Y"), + m_strobe(0), m_idx(0), m_latch(0), + m_x(0), m_y(0), m_oldx(0), m_oldy(0), + m_deltax(0), m_deltay(0), m_speed(0), m_dirx(0), m_diry(0) { } diff --git a/src/devices/bus/snes_ctrl/mouse.h b/src/devices/bus/snes_ctrl/mouse.h index 13d2b3e33d6..cd6f3839950 100644 --- a/src/devices/bus/snes_ctrl/mouse.h +++ b/src/devices/bus/snes_ctrl/mouse.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_SNES_CTRL_MOUSE_H +#define MAME_BUS_SNES_CTRL_MOUSE_H -#ifndef __SNES_MOUSE__ -#define __SNES_MOUSE__ +#pragma once #include "ctrl.h" @@ -56,7 +56,6 @@ private: // device type definition -extern const device_type SNES_MOUSE; - +DECLARE_DEVICE_TYPE(SNES_MOUSE, snes_mouse_device) -#endif +#endif // MAME_BUS_SNES_CTRL_MOUSE_H diff --git a/src/devices/bus/snes_ctrl/multitap.cpp b/src/devices/bus/snes_ctrl/multitap.cpp index 0639e24c8db..d4a120d242f 100644 --- a/src/devices/bus/snes_ctrl/multitap.cpp +++ b/src/devices/bus/snes_ctrl/multitap.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type SNES_MULTITAP = device_creator; +DEFINE_DEVICE_TYPE(SNES_MULTITAP, snes_multitap_device, "snes_multitap", "Nintendo SNES / SFC Multitap Adapter") static INPUT_PORTS_START( snes_multitap ) @@ -69,7 +69,7 @@ machine_config_constructor snes_multitap_device::device_mconfig_additions() cons //------------------------------------------------- snes_multitap_device::snes_multitap_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, SNES_MULTITAP, "Nintendo SNES / SFC Multitap Adapter", tag, owner, clock, "snes_multitap", __FILE__), + device_t(mconfig, SNES_MULTITAP, tag, owner, clock), device_snes_control_port_interface(mconfig, *this), m_port1(*this, "port1"), m_port2(*this, "port2"), diff --git a/src/devices/bus/snes_ctrl/multitap.h b/src/devices/bus/snes_ctrl/multitap.h index f217f882aa5..b2f222c54ec 100644 --- a/src/devices/bus/snes_ctrl/multitap.h +++ b/src/devices/bus/snes_ctrl/multitap.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_SNES_CTRL_MULTITAP_H +#define MAME_BUS_SNES_CTRL_MULTITAP_H -#ifndef __SNES_MULTITAP__ -#define __SNES_MULTITAP__ +#pragma once #include "ctrl.h" @@ -54,7 +54,6 @@ private: // device type definition -extern const device_type SNES_MULTITAP; - +DECLARE_DEVICE_TYPE(SNES_MULTITAP, snes_multitap_device) -#endif +#endif // MAME_BUS_SNES_CTRL_MULTITAP_H diff --git a/src/devices/bus/snes_ctrl/pachinko.cpp b/src/devices/bus/snes_ctrl/pachinko.cpp index d80b862fb33..44d81066d83 100644 --- a/src/devices/bus/snes_ctrl/pachinko.cpp +++ b/src/devices/bus/snes_ctrl/pachinko.cpp @@ -13,7 +13,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type SNES_PACHINKO = device_creator; +DEFINE_DEVICE_TYPE(SNES_PACHINKO, snes_pachinko_device, "snes_pachinko", "Sunsoft Pachinko Controller") static INPUT_PORTS_START( snes_pachinko ) @@ -46,10 +46,11 @@ ioport_constructor snes_pachinko_device::device_input_ports() const //------------------------------------------------- snes_pachinko_device::snes_pachinko_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, SNES_PACHINKO, "Sunsoft Pachinko Controller", tag, owner, clock, "snes_pachinko", __FILE__), - device_snes_control_port_interface(mconfig, *this), - m_dial(*this, "DIAL"), - m_button(*this, "BUTTON"), m_strobe(0), m_latch(0) + device_t(mconfig, SNES_PACHINKO, tag, owner, clock), + device_snes_control_port_interface(mconfig, *this), + m_dial(*this, "DIAL"), + m_button(*this, "BUTTON"), + m_strobe(0), m_latch(0) { } diff --git a/src/devices/bus/snes_ctrl/pachinko.h b/src/devices/bus/snes_ctrl/pachinko.h index 1bd1e1fb185..0fffa05767a 100644 --- a/src/devices/bus/snes_ctrl/pachinko.h +++ b/src/devices/bus/snes_ctrl/pachinko.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_SNES_CTRL_PACHINKO_H +#define MAME_BUS_SNES_CTRL_PACHINKO_H -#ifndef __SNES_PACHINKO__ -#define __SNES_PACHINKO__ +#pragma once #include "ctrl.h" @@ -49,7 +49,6 @@ private: // device type definition -extern const device_type SNES_PACHINKO; - +DECLARE_DEVICE_TYPE(SNES_PACHINKO, snes_pachinko_device) -#endif +#endif // MAME_BUS_SNES_CTRL_PACHINKO_H diff --git a/src/devices/bus/snes_ctrl/sscope.cpp b/src/devices/bus/snes_ctrl/sscope.cpp index 9b7ee0c053f..71a049adb82 100644 --- a/src/devices/bus/snes_ctrl/sscope.cpp +++ b/src/devices/bus/snes_ctrl/sscope.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type SNES_SUPERSCOPE = device_creator; +DEFINE_DEVICE_TYPE(SNES_SUPERSCOPE, snes_sscope_device, "snes_sscope", "Nintendo SNES / SFC SuperScope") static INPUT_PORTS_START( snes_sscope ) @@ -55,11 +55,12 @@ ioport_constructor snes_sscope_device::device_input_ports() const //------------------------------------------------- snes_sscope_device::snes_sscope_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, SNES_SUPERSCOPE, "Nintendo SNES / SFC SuperScope", tag, owner, clock, "snes_sscope", __FILE__), - device_snes_control_port_interface(mconfig, *this), - m_buttons(*this, "BUTTONS"), - m_xaxis(*this, "SSX"), - m_yaxis(*this, "SSY"), m_strobe(0), m_idx(0), m_latch(0), m_x(0), m_y(0), m_turbo_lock(0), m_pause_lock(0), m_fire_lock(0) + device_t(mconfig, SNES_SUPERSCOPE, tag, owner, clock), + device_snes_control_port_interface(mconfig, *this), + m_buttons(*this, "BUTTONS"), + m_xaxis(*this, "SSX"), + m_yaxis(*this, "SSY"), + m_strobe(0), m_idx(0), m_latch(0), m_x(0), m_y(0), m_turbo_lock(0), m_pause_lock(0), m_fire_lock(0) { } @@ -114,8 +115,7 @@ void snes_sscope_device::port_poll() m_latch &= 0x04; // 2. set onscreen/offscreen - if (!m_port->m_onscreen_cb.isnull()) - m_latch |= (m_port->m_onscreen_cb(m_x, m_y) ? 0x00 : 0x40); + m_latch |= m_port->onscreen_cb(m_x, m_y) ? 0x00 : 0x40; // 3. pause is a button that is always edge sensitive if (BIT(input, 3) && !m_pause_lock) @@ -152,8 +152,8 @@ void snes_sscope_device::port_poll() // Notice that this only works in Port2 because its IOBit pin is connected to bit7 of the IO Port, while Port1 // has IOBit pin connected to bit6 of the IO Port, and the latter is not detected by the H/V Counters. In other // words, you can connect SuperScope to Port1, but there is no way SNES could detect its on-screen position - if ((m_latch & 0x03) && !(m_latch & 0x40) && !m_port->m_gunlatch_cb.isnull()) - m_port->m_gunlatch_cb(m_x, m_y); + if ((m_latch & 0x03) && !(m_latch & 0x40)) + m_port->gunlatch_cb(m_x, m_y); } //------------------------------------------------- diff --git a/src/devices/bus/snes_ctrl/sscope.h b/src/devices/bus/snes_ctrl/sscope.h index e073800b23f..b81afda179d 100644 --- a/src/devices/bus/snes_ctrl/sscope.h +++ b/src/devices/bus/snes_ctrl/sscope.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_SNES_CTRL_SUPERSCOPE_H +#define MAME_BUS_SNES_CTRL_SUPERSCOPE_H -#ifndef __SNES_SUPERSCOPE__ -#define __SNES_SUPERSCOPE__ +#pragma once #include "ctrl.h" @@ -53,7 +53,6 @@ private: // device type definition -extern const device_type SNES_SUPERSCOPE; - +DECLARE_DEVICE_TYPE(SNES_SUPERSCOPE, snes_sscope_device) -#endif +#endif // MAME_BUS_SNES_CTRL_SUPERSCOPE_H diff --git a/src/devices/bus/snes_ctrl/twintap.cpp b/src/devices/bus/snes_ctrl/twintap.cpp index ef4bdc8e260..25327786b10 100644 --- a/src/devices/bus/snes_ctrl/twintap.cpp +++ b/src/devices/bus/snes_ctrl/twintap.cpp @@ -20,7 +20,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type SNES_TWINTAP = device_creator; +DEFINE_DEVICE_TYPE(SNES_TWINTAP, snes_twintap_device, "snes_twintap", "Yonezawa Twin Tap Controller") static INPUT_PORTS_START( snes_twintap ) @@ -51,9 +51,10 @@ ioport_constructor snes_twintap_device::device_input_ports() const //------------------------------------------------- snes_twintap_device::snes_twintap_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, SNES_TWINTAP, "Yonezawa Twin Tap Controller", tag, owner, clock, "snes_twintap", __FILE__), - device_snes_control_port_interface(mconfig, *this), - m_inputs(*this, "INPUTS"), m_strobe(0), m_latch(0) + device_t(mconfig, SNES_TWINTAP, tag, owner, clock), + device_snes_control_port_interface(mconfig, *this), + m_inputs(*this, "INPUTS"), + m_strobe(0), m_latch(0) { } diff --git a/src/devices/bus/snes_ctrl/twintap.h b/src/devices/bus/snes_ctrl/twintap.h index f45c46f2cbf..9da70e50b11 100644 --- a/src/devices/bus/snes_ctrl/twintap.h +++ b/src/devices/bus/snes_ctrl/twintap.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_SNES_CTRL_TWINTAP_H +#define MAME_BUS_SNES_CTRL_TWINTAP_H -#ifndef __SNES_TWINTAP__ -#define __SNES_TWINTAP__ +#pragma once #include "ctrl.h" @@ -50,5 +50,4 @@ private: // device type definition extern const device_type SNES_TWINTAP; - -#endif +#endif // MAME_BUS_SNES_CTRL_TWINTAP_H diff --git a/src/devices/bus/spc1000/exp.cpp b/src/devices/bus/spc1000/exp.cpp index c0f8d6555fb..5a987845a43 100644 --- a/src/devices/bus/spc1000/exp.cpp +++ b/src/devices/bus/spc1000/exp.cpp @@ -14,7 +14,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type SPC1000_EXP_SLOT = device_creator; +DEFINE_DEVICE_TYPE(SPC1000_EXP_SLOT, spc1000_exp_device, "spc1000_exp", "Samsung SPC-1000 expansion") device_spc1000_card_interface::device_spc1000_card_interface(const machine_config &mconfig, device_t &device) @@ -36,8 +36,9 @@ device_spc1000_card_interface::~device_spc1000_card_interface() // spc1000_exp_device - constructor //------------------------------------------------- spc1000_exp_device::spc1000_exp_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, SPC1000_EXP_SLOT, "Samsung SPC-1000 expansion", tag, owner, clock, "spc1000_exp", __FILE__), - device_slot_interface(mconfig, *this), m_card(nullptr) + device_t(mconfig, SPC1000_EXP_SLOT, tag, owner, clock), + device_slot_interface(mconfig, *this), + m_card(nullptr) { } diff --git a/src/devices/bus/spc1000/exp.h b/src/devices/bus/spc1000/exp.h index 1e63ff4a57d..b281e7a560c 100644 --- a/src/devices/bus/spc1000/exp.h +++ b/src/devices/bus/spc1000/exp.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __SCP1000_SLOT_H -#define __SCP1000_SLOT_H +#ifndef MAME_BUS_SPC1000_EXP_H +#define MAME_BUS_SPC1000_EXP_H + +#pragma once // ======================> device_spc1000_card_interface @@ -9,40 +11,39 @@ class device_spc1000_card_interface : public device_slot_card_interface { public: // construction/destruction - device_spc1000_card_interface(const machine_config &mconfig, device_t &device); virtual ~device_spc1000_card_interface(); // reading and writing virtual DECLARE_READ8_MEMBER(read) { return 0xff; } - virtual DECLARE_WRITE8_MEMBER(write) {} + virtual DECLARE_WRITE8_MEMBER(write) { } + +protected: + device_spc1000_card_interface(const machine_config &mconfig, device_t &device); }; // ======================> spc1000_exp_device -class spc1000_exp_device : public device_t, - public device_slot_interface +class spc1000_exp_device : public device_t, public device_slot_interface { public: // construction/destruction spc1000_exp_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual ~spc1000_exp_device(); - // device-level overrides - virtual void device_start() override; - // reading and writing virtual DECLARE_READ8_MEMBER(read); virtual DECLARE_WRITE8_MEMBER(write); protected: + // device-level overrides + virtual void device_start() override; - device_spc1000_card_interface* m_card; + device_spc1000_card_interface* m_card; }; - // device type definition -extern const device_type SPC1000_EXP_SLOT; +DECLARE_DEVICE_TYPE(SPC1000_EXP_SLOT, spc1000_exp_device) -#endif +#endif // MAME_BUS_SPC1000_EXP_H diff --git a/src/devices/bus/spc1000/fdd.cpp b/src/devices/bus/spc1000/fdd.cpp index b724538c9da..2f266449041 100644 --- a/src/devices/bus/spc1000/fdd.cpp +++ b/src/devices/bus/spc1000/fdd.cpp @@ -124,7 +124,7 @@ const tiny_rom_entry *spc1000_fdd_exp_device::device_rom_region() const // GLOBAL VARIABLES //************************************************************************** -const device_type SPC1000_FDD_EXP = device_creator; +DEFINE_DEVICE_TYPE(SPC1000_FDD_EXP, spc1000_fdd_exp_device, "spc1000_fdd_exp", "SPC1000 FDD expansion") //************************************************************************** // LIVE DEVICE @@ -134,13 +134,14 @@ const device_type SPC1000_FDD_EXP = device_creator; // spc1000_fdd_exp_device - constructor //------------------------------------------------- -spc1000_fdd_exp_device::spc1000_fdd_exp_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, SPC1000_FDD_EXP, "SPC1000 FDD expansion", tag, owner, clock, "spc1000_fdd_exp", __FILE__), - device_spc1000_card_interface(mconfig, *this), - m_cpu(*this, "fdccpu"), - m_fdc(*this, "upd765"), - m_pio(*this, "d8255_master"), m_fd0(nullptr), m_fd1(nullptr), m_timer_tc(nullptr), m_i8255_0_pc(0), m_i8255_1_pc(0), m_i8255_portb(0) - { +spc1000_fdd_exp_device::spc1000_fdd_exp_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, SPC1000_FDD_EXP, tag, owner, clock), + device_spc1000_card_interface(mconfig, *this), + m_cpu(*this, "fdccpu"), + m_fdc(*this, "upd765"), + m_pio(*this, "d8255_master"), + m_fd0(nullptr), m_fd1(nullptr), m_timer_tc(nullptr), m_i8255_0_pc(0), m_i8255_1_pc(0), m_i8255_portb(0) +{ } diff --git a/src/devices/bus/spc1000/fdd.h b/src/devices/bus/spc1000/fdd.h index b52d6091cba..007ca775467 100644 --- a/src/devices/bus/spc1000/fdd.h +++ b/src/devices/bus/spc1000/fdd.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __SPC1000_FDD_H__ -#define __SPC1000_FDD_H__ +#ifndef MAME_BUS_SPC1000_FDD_H +#define MAME_BUS_SPC1000_FDD_H + +#pragma once #include "exp.h" #include "cpu/z80/z80.h" @@ -14,8 +16,7 @@ // ======================> spc1000_fdd_exp_device -class spc1000_fdd_exp_device : public device_t, - public device_spc1000_card_interface +class spc1000_fdd_exp_device : public device_t, public device_spc1000_card_interface { public: // construction/destruction @@ -29,6 +30,7 @@ public: // device-level overrides virtual void device_start() override; virtual void device_reset() override; + virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; virtual DECLARE_READ8_MEMBER(read) override; virtual DECLARE_WRITE8_MEMBER(write) override; @@ -40,6 +42,8 @@ public: DECLARE_WRITE8_MEMBER(i8255_c_w); private: + static constexpr device_timer_id TIMER_TC = 0; + // internal state required_device m_cpu; required_device m_fdc; @@ -53,13 +57,10 @@ private: uint8_t m_i8255_0_pc; uint8_t m_i8255_1_pc; uint8_t m_i8255_portb; - - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; - static const device_timer_id TIMER_TC = 0; }; // device type definition -extern const device_type SPC1000_FDD_EXP; +DECLARE_DEVICE_TYPE(SPC1000_FDD_EXP, spc1000_fdd_exp_device) -#endif /* __SPC1000_FDD_H__ */ +#endif // MAME_BUS_SPC1000_FDD_H diff --git a/src/devices/bus/spc1000/vdp.cpp b/src/devices/bus/spc1000/vdp.cpp index 70a2c497e3d..06189f6f171 100644 --- a/src/devices/bus/spc1000/vdp.cpp +++ b/src/devices/bus/spc1000/vdp.cpp @@ -42,7 +42,7 @@ machine_config_constructor spc1000_vdp_exp_device::device_mconfig_additions() co // GLOBAL VARIABLES //************************************************************************** -const device_type SPC1000_VDP_EXP = device_creator; +DEFINE_DEVICE_TYPE(SPC1000_VDP_EXP, spc1000_vdp_exp_device, "spc1000_vdp_exp", "SPC1000 VDP expansion") //************************************************************************** // LIVE DEVICE @@ -53,9 +53,9 @@ const device_type SPC1000_VDP_EXP = device_creator; //------------------------------------------------- spc1000_vdp_exp_device::spc1000_vdp_exp_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, SPC1000_VDP_EXP, "SPC1000 VDP expansion", tag, owner, clock, "spc1000_vdp_exp", __FILE__), - device_spc1000_card_interface(mconfig, *this), - m_vdp(*this, "tms") + : device_t(mconfig, SPC1000_VDP_EXP, tag, owner, clock) + , device_spc1000_card_interface(mconfig, *this) + , m_vdp(*this, "tms") { } diff --git a/src/devices/bus/spc1000/vdp.h b/src/devices/bus/spc1000/vdp.h index 0c22dcbcfc0..4619f719ece 100644 --- a/src/devices/bus/spc1000/vdp.h +++ b/src/devices/bus/spc1000/vdp.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __SPC1000_VDP_H__ -#define __SPC1000_VDP_H__ +#ifndef MAME_BUS_SPC1000_VDP_H +#define MAME_BUS_SPC1000_VDP_H + +#pragma once #include "exp.h" #include "video/tms9928a.h" @@ -13,8 +15,7 @@ // ======================> spc1000_vdp_exp_device -class spc1000_vdp_exp_device : public device_t, - public device_spc1000_card_interface +class spc1000_vdp_exp_device : public device_t, public device_spc1000_card_interface { public: // construction/destruction @@ -40,6 +41,6 @@ private: // device type definition -extern const device_type SPC1000_VDP_EXP; +DECLARE_DEVICE_TYPE(SPC1000_VDP_EXP, spc1000_vdp_exp_device) -#endif /* __SPC1000_VDP_H__ */ +#endif // MAME_BUS_SPC1000_VDP_H diff --git a/src/devices/bus/sunkbd/hlekbd.cpp b/src/devices/bus/sunkbd/hlekbd.cpp index 101546ba6fa..5e08710b120 100644 --- a/src/devices/bus/sunkbd/hlekbd.cpp +++ b/src/devices/bus/sunkbd/hlekbd.cpp @@ -87,7 +87,7 @@ Type 5 US UNIX layout: - 76 xx 05 06 08 0a 0c 0e 10 11 12 07 09 0b 16 17 15 2d 02 04 30 + 76 0f 05 06 08 0a 0c 0e 10 11 12 07 09 0b 16 17 15 2d 02 04 30 01 03 1d 1e 1f 20 21 22 23 24 25 26 27 28 29 58 2a 2c 34 60 62 2e 2f 47 19 1a 35 36 37 38 39 3a 3b 3c 3d 3e 3f 40 41 2b 42 4a 7b 44 45 46 @@ -95,7 +95,7 @@ 48 49 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 14 70 71 72 5f 61 77 13 78 79 7a 43 0d 18 1b 1c 5e 32 5a - xx is a blank key + 0f is a blank key backspace immediately above return backslash and backtick/tilde at top right of main area control on home row, caps lock at bottom left corner of main area @@ -136,16 +136,17 @@ DEVICE TYPE GLOBALS ***************************************************************************/ -device_type const SUN_TYPE3_HLE_KEYBOARD = device_creator; -device_type const SUN_TYPE4_HLE_KEYBOARD = device_creator; -device_type const SUN_TYPE5_HLE_KEYBOARD = device_creator; -device_type const SUN_TYPE5_GB_HLE_KEYBOARD = device_creator; -device_type const SUN_TYPE5_SE_HLE_KEYBOARD = device_creator; -device_type const SUN_TYPE5_JP_HLE_KEYBOARD = device_creator; +DEFINE_DEVICE_TYPE_NS(SUN_TYPE3_HLE_KEYBOARD, bus::sunkbd, hle_type3_device, "kbd_type3_hle", "Sun Type 3 Keyboard (HLE)") +DEFINE_DEVICE_TYPE_NS(SUN_TYPE4_HLE_KEYBOARD, bus::sunkbd, hle_type4_device, "kbd_type4_hle", "Sun Type 4 Keyboard (HLE)") +DEFINE_DEVICE_TYPE_NS(SUN_TYPE5_HLE_KEYBOARD, bus::sunkbd, hle_type5_device, "kbd_type5_hle_us", "Sun Type 5 Keyboard (U.S.A. - HLE)") +DEFINE_DEVICE_TYPE_NS(SUN_TYPE5_GB_HLE_KEYBOARD, bus::sunkbd, hle_type5_gb_device, "kbd_type5_hle_gb", "Sun Type 5 Keyboard (Great Britain - HLE)") +DEFINE_DEVICE_TYPE_NS(SUN_TYPE5_SE_HLE_KEYBOARD, bus::sunkbd, hle_type5_se_device, "kbd_type5_hle_se", "Sun Type 5 Keyboard (Sweden - HLE)") +DEFINE_DEVICE_TYPE_NS(SUN_TYPE5_JP_HLE_KEYBOARD, bus::sunkbd, hle_type5_jp_device, "kbd_type5_hle_jp", "Sun Type 5 Keyboard (Japan - HLE)") namespace bus { namespace sunkbd { + namespace { /*************************************************************************** INPUT PORT DEFINITIONS @@ -421,9 +422,9 @@ INPUT_PORTS_START( basic_jp ) PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_BACKSLASH2) PORT_CHAR('\\') PORT_CHAR('_') PORT_MODIFY("ROW7") - PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Kakutei") - PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Henkan") - PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Nihongo On-Off") PORT_CODE(KEYCODE_MENU) + PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Kakutei") // 確定 + PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Henkan") // å¤‰æ› + PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Nihongo On-Off") PORT_CODE(KEYCODE_MENU) // 日本語 On-Off INPUT_PORTS_END @@ -723,7 +724,7 @@ INPUT_PORTS_START( hle_type5_jp_device ) TYPE5_DIPS(0x11) PORT_MODIFY("ROW0") - PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Kana") PORT_CODE(KEYCODE_RALT) + PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Kana") PORT_CODE(KEYCODE_RALT) // ã‹ãª INPUT_PORTS_END @@ -754,13 +755,10 @@ MACHINE_CONFIG_END hle_device_base::hle_device_base( machine_config const &mconfig, device_type type, - char const *name, char const *tag, device_t *owner, - uint32_t clock, - char const *shortname, - char const *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source) + uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) , device_buffered_serial_interface(mconfig, *this) , device_sun_keyboard_port_interface(mconfig, *this) , device_matrix_keyboard_interface(mconfig, *this, "ROW0", "ROW1", "ROW2", "ROW3", "ROW4", "ROW5", "ROW6", "ROW7") @@ -1083,12 +1081,9 @@ hle_type3_device::hle_type3_device( : hle_device_base( mconfig, SUN_TYPE3_HLE_KEYBOARD, - "Sun Type 3 Keyboard (HLE)", tag, owner, - clock, - "type3_hle_kbd", - __FILE__) + clock) { } @@ -1134,12 +1129,9 @@ hle_type4_device::hle_type4_device( : hle_type4_device_base( mconfig, SUN_TYPE4_HLE_KEYBOARD, - "Sun Type 4 Keyboard (HLE)", tag, owner, - clock, - "type4_hle_kbd", - __FILE__) + clock) { } @@ -1173,12 +1165,9 @@ hle_type5_device::hle_type5_device( : hle_type4_device_base( mconfig, SUN_TYPE5_HLE_KEYBOARD, - "Sun Type 5 Keyboard (U.S.A. - HLE)", tag, owner, - clock, - "type5_hle_kbd", - __FILE__) + clock) { } @@ -1212,12 +1201,9 @@ hle_type5_gb_device::hle_type5_gb_device( : hle_type4_device_base( mconfig, SUN_TYPE5_GB_HLE_KEYBOARD, - "Sun Type 5 Keyboard (Great Britain - HLE)", tag, owner, - clock, - "type5_gb_hle_kbd", - __FILE__) + clock) { } @@ -1251,12 +1237,9 @@ hle_type5_se_device::hle_type5_se_device( : hle_type4_device_base( mconfig, SUN_TYPE5_SE_HLE_KEYBOARD, - "Sun Type 5 Keyboard (Sweden - HLE)", tag, owner, - clock, - "type5_se_hle_kbd", - __FILE__) + clock) { } @@ -1290,12 +1273,9 @@ hle_type5_jp_device::hle_type5_jp_device( : hle_type4_device_base( mconfig, SUN_TYPE5_JP_HLE_KEYBOARD, - "Sun Type 5 Keyboard (Japan - HLE)", tag, owner, - clock, - "type5_jp_hle_kbd", - __FILE__) + clock) { } diff --git a/src/devices/bus/sunkbd/hlekbd.h b/src/devices/bus/sunkbd/hlekbd.h index 059c18caf06..0a3fea3938c 100644 --- a/src/devices/bus/sunkbd/hlekbd.h +++ b/src/devices/bus/sunkbd/hlekbd.h @@ -10,15 +10,8 @@ #include "sound/beep.h" -extern device_type const SUN_TYPE3_HLE_KEYBOARD; -extern device_type const SUN_TYPE4_HLE_KEYBOARD; -extern device_type const SUN_TYPE5_HLE_KEYBOARD; -extern device_type const SUN_TYPE5_GB_HLE_KEYBOARD; -extern device_type const SUN_TYPE5_SE_HLE_KEYBOARD; -extern device_type const SUN_TYPE5_JP_HLE_KEYBOARD; - - namespace bus { namespace sunkbd { + class hle_device_base : public device_t , public device_buffered_serial_interface<16U> @@ -26,6 +19,8 @@ class hle_device_base , protected device_matrix_keyboard_interface<8U> { public: + virtual ~hle_device_base() override; + virtual machine_config_constructor device_mconfig_additions() const override; virtual DECLARE_WRITE_LINE_MEMBER( input_txd ) override; @@ -34,13 +29,10 @@ protected: // constructor/destructor hle_device_base( machine_config const &mconfig, - device_type type, char const *name, + device_type type, char const *tag, device_t *owner, - uint32_t clock, - char const *shortname, - char const *source); - virtual ~hle_device_base() override; + uint32_t clock); // device overrides virtual void device_start() override; @@ -204,4 +196,12 @@ public: } } // namespace bus::sunkbd + +DECLARE_DEVICE_TYPE_NS(SUN_TYPE3_HLE_KEYBOARD, bus::sunkbd, hle_type3_device) +DECLARE_DEVICE_TYPE_NS(SUN_TYPE4_HLE_KEYBOARD, bus::sunkbd, hle_type4_device) +DECLARE_DEVICE_TYPE_NS(SUN_TYPE5_HLE_KEYBOARD, bus::sunkbd, hle_type5_device) +DECLARE_DEVICE_TYPE_NS(SUN_TYPE5_GB_HLE_KEYBOARD, bus::sunkbd, hle_type5_gb_device) +DECLARE_DEVICE_TYPE_NS(SUN_TYPE5_SE_HLE_KEYBOARD, bus::sunkbd, hle_type5_se_device) +DECLARE_DEVICE_TYPE_NS(SUN_TYPE5_JP_HLE_KEYBOARD, bus::sunkbd, hle_type5_jp_device) + #endif // MAME_DEVICES_SUNKBD_HLEKBD_H diff --git a/src/devices/bus/sunkbd/sunkbd.cpp b/src/devices/bus/sunkbd/sunkbd.cpp index c6d43e0751d..55ccea6f5e9 100644 --- a/src/devices/bus/sunkbd/sunkbd.cpp +++ b/src/devices/bus/sunkbd/sunkbd.cpp @@ -5,7 +5,7 @@ #include "sunkbd.h" -device_type const SUNKBD_PORT = device_creator; +DEFINE_DEVICE_TYPE(SUNKBD_PORT, sun_keyboard_port_device, "sunkbd", "Sun Keyboard Port") int const device_sun_keyboard_port_interface::START_BIT_COUNT; @@ -21,7 +21,7 @@ sun_keyboard_port_device::sun_keyboard_port_device( char const *tag, device_t *owner, uint32_t clock) - : sun_keyboard_port_device(mconfig, SUNKBD_PORT, "Sun Keyboard Port", tag, owner, clock, "sunkbd", __FILE__) + : sun_keyboard_port_device(mconfig, SUNKBD_PORT, tag, owner, clock) { } @@ -29,13 +29,10 @@ sun_keyboard_port_device::sun_keyboard_port_device( sun_keyboard_port_device::sun_keyboard_port_device( machine_config const &mconfig, device_type type, - char const *name, char const *tag, device_t *owner, - uint32_t clock, - char const *shortname, - char const *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source) + uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) , device_slot_interface(mconfig, *this) , m_rxd(0) , m_rxd_handler(*this) diff --git a/src/devices/bus/sunkbd/sunkbd.h b/src/devices/bus/sunkbd/sunkbd.h index 2e270812f18..67634efb57e 100644 --- a/src/devices/bus/sunkbd/sunkbd.h +++ b/src/devices/bus/sunkbd/sunkbd.h @@ -1,7 +1,7 @@ // license:BSD-3-Clause // copyright-holders:Vas Crabb -#ifndef MAME_DEVICES_SUNKBD_SUNKBD_H -#define MAME_DEVICES_SUNKBD_SUNKBD_H +#ifndef MAME_BUS_SUNKBD_SUNKBD_H +#define MAME_BUS_SUNKBD_SUNKBD_H #pragma once @@ -27,14 +27,14 @@ public: virtual ~sun_keyboard_port_device(); // static configuration helpers - template static devcb_base &set_rxd_handler(device_t &device, Object object) { return downcast(device).m_rxd_handler.set_callback(object); } + template static devcb_base &set_rxd_handler(device_t &device, Object &&cb) { return downcast(device).m_rxd_handler.set_callback(std::forward(cb)); } DECLARE_WRITE_LINE_MEMBER( write_txd ); DECLARE_READ_LINE_MEMBER( rxd_r ) { return m_rxd; } protected: - sun_keyboard_port_device(machine_config const &mconfig, device_type type, char const *name, char const *tag, device_t *owner, uint32_t clock, char const *shortname, char const *source); + sun_keyboard_port_device(machine_config const &mconfig, device_type type, char const *tag, device_t *owner, uint32_t clock); virtual void device_start() override; virtual void device_config_complete() override; @@ -72,7 +72,7 @@ protected: }; -extern device_type const SUNKBD_PORT; +DECLARE_DEVICE_TYPE(SUNKBD_PORT, sun_keyboard_port_device) SLOT_INTERFACE_EXTERN( default_sun_keyboard_devices ); diff --git a/src/devices/bus/svi3x8/expander/expander.cpp b/src/devices/bus/svi3x8/expander/expander.cpp index 6b54b620f6f..481789516ff 100644 --- a/src/devices/bus/svi3x8/expander/expander.cpp +++ b/src/devices/bus/svi3x8/expander/expander.cpp @@ -16,7 +16,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type SVI_EXPANDER = device_creator; +DEFINE_DEVICE_TYPE(SVI_EXPANDER, svi_expander_device, "svi_expander", "SVI 318/328 Expander Bus") //************************************************************************** @@ -28,7 +28,7 @@ const device_type SVI_EXPANDER = device_creator; //------------------------------------------------- svi_expander_device::svi_expander_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, SVI_EXPANDER, "SVI 318/328 Expander Bus", tag, owner, clock, "svi_expander", __FILE__), + device_t(mconfig, SVI_EXPANDER, tag, owner, clock), device_slot_interface(mconfig, *this), m_module(nullptr), m_int_handler(*this), diff --git a/src/devices/bus/svi3x8/expander/expander.h b/src/devices/bus/svi3x8/expander/expander.h index 853b2c1f50f..262d2a8ea77 100644 --- a/src/devices/bus/svi3x8/expander/expander.h +++ b/src/devices/bus/svi3x8/expander/expander.h @@ -34,10 +34,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_BUS_SVI3X8_EXPANDER_EXPANDER_H +#define MAME_BUS_SVI3X8_EXPANDER_EXPANDER_H -#ifndef __SVI3X8_EXPANDER_H__ -#define __SVI3X8_EXPANDER_H__ +#pragma once @@ -86,26 +86,26 @@ public: virtual ~svi_expander_device(); // callbacks - template static devcb_base &set_int_handler(device_t &device, _Object object) - { return downcast(device).m_int_handler.set_callback(object); } + template static devcb_base &set_int_handler(device_t &device, Object &&cb) + { return downcast(device).m_int_handler.set_callback(std::forward(cb)); } - template static devcb_base &set_romdis_handler(device_t &device, _Object object) - { return downcast(device).m_romdis_handler.set_callback(object); } + template static devcb_base &set_romdis_handler(device_t &device, Object &&cb) + { return downcast(device).m_romdis_handler.set_callback(std::forward(cb)); } - template static devcb_base &set_ramdis_handler(device_t &device, _Object object) - { return downcast(device).m_ramdis_handler.set_callback(object); } + template static devcb_base &set_ramdis_handler(device_t &device, Object &&cb) + { return downcast(device).m_ramdis_handler.set_callback(std::forward(cb)); } - template static devcb_base &set_ctrl1_handler(device_t &device, _Object object) - { return downcast(device).m_ctrl1_handler.set_callback(object); } + template static devcb_base &set_ctrl1_handler(device_t &device, Object &&cb) + { return downcast(device).m_ctrl1_handler.set_callback(std::forward(cb)); } - template static devcb_base &set_ctrl2_handler(device_t &device, _Object object) - { return downcast(device).m_ctrl2_handler.set_callback(object); } + template static devcb_base &set_ctrl2_handler(device_t &device, Object &&cb) + { return downcast(device).m_ctrl2_handler.set_callback(std::forward(cb)); } - template static devcb_base &set_excsr_handler(device_t &device, _Object object) - { return downcast(device).m_excsr_handler.set_callback(object); } + template static devcb_base &set_excsr_handler(device_t &device, Object &&cb) + { return downcast(device).m_excsr_handler.set_callback(std::forward(cb)); } - template static devcb_base &set_excsw_handler(device_t &device, _Object object) - { return downcast(device).m_excsw_handler.set_callback(object); } + template static devcb_base &set_excsw_handler(device_t &device, Object &&cb) + { return downcast(device).m_excsw_handler.set_callback(std::forward(cb)); } // called from cart device DECLARE_WRITE_LINE_MEMBER( int_w ) { m_int_handler(state); } @@ -152,20 +152,21 @@ class device_svi_expander_interface : public device_slot_card_interface { public: // construction/destruction - device_svi_expander_interface(const machine_config &mconfig, device_t &device); virtual ~device_svi_expander_interface(); - virtual DECLARE_READ8_MEMBER( mreq_r ) { return 0xff; }; - virtual DECLARE_WRITE8_MEMBER( mreq_w ){}; - virtual DECLARE_READ8_MEMBER( iorq_r ) { return 0xff; }; - virtual DECLARE_WRITE8_MEMBER( iorq_w ){}; + virtual DECLARE_READ8_MEMBER( mreq_r ) { return 0xff; } + virtual DECLARE_WRITE8_MEMBER( mreq_w ) { } + virtual DECLARE_READ8_MEMBER( iorq_r ) { return 0xff; } + virtual DECLARE_WRITE8_MEMBER( iorq_w ) { } - virtual void bk21_w(int state) {}; - virtual void bk22_w(int state) {}; - virtual void bk31_w(int state) {}; - virtual void bk32_w(int state) {}; + virtual void bk21_w(int state) { } + virtual void bk22_w(int state) { } + virtual void bk31_w(int state) { } + virtual void bk32_w(int state) { } protected: + device_svi_expander_interface(const machine_config &mconfig, device_t &device); + svi_expander_device *m_expander; }; @@ -175,4 +176,4 @@ extern const device_type SVI_EXPANDER; // include here so drivers don't need to #include "modules.h" -#endif // __SVI3X8_EXPANDER_H__ +#endif // MAME_BUS_SVI3X8_EXPANDER_EXPANDER_H diff --git a/src/devices/bus/svi3x8/expander/modules.cpp b/src/devices/bus/svi3x8/expander/modules.cpp index 04ba3635d4f..1fde553ae63 100644 --- a/src/devices/bus/svi3x8/expander/modules.cpp +++ b/src/devices/bus/svi3x8/expander/modules.cpp @@ -9,6 +9,10 @@ #include "emu.h" #include "modules.h" +#include "sv601.h" +#include "sv602.h" +#include "sv603.h" + SLOT_INTERFACE_START( svi_expander_modules ) SLOT_INTERFACE("sv601", SV601) SLOT_INTERFACE("sv602", SV602) diff --git a/src/devices/bus/svi3x8/expander/modules.h b/src/devices/bus/svi3x8/expander/modules.h index 7391d55dc66..2534b7713f1 100644 --- a/src/devices/bus/svi3x8/expander/modules.h +++ b/src/devices/bus/svi3x8/expander/modules.h @@ -6,15 +6,11 @@ ***************************************************************************/ -#pragma once - -#ifndef __SVI_EXPANDER_MODULES_H__ -#define __SVI_EXPANDER_MODULES_H__ +#ifndef MAME_BUS_SVI3X8_EXPANDER_MODULES_H +#define MAME_BUS_SVI3X8_EXPANDER_MODULES_H -#include "sv601.h" -#include "sv602.h" -#include "sv603.h" +#pragma once SLOT_INTERFACE_EXTERN( svi_expander_modules ); -#endif // __SVI_EXPANDER_MODULES_H__ +#endif // MAME_BUS_SVI3X8_EXPANDER_MODULES_H diff --git a/src/devices/bus/svi3x8/expander/sv601.cpp b/src/devices/bus/svi3x8/expander/sv601.cpp index e7fe68b608b..ee7c2b78a23 100644 --- a/src/devices/bus/svi3x8/expander/sv601.cpp +++ b/src/devices/bus/svi3x8/expander/sv601.cpp @@ -14,7 +14,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type SV601 = device_creator; +DEFINE_DEVICE_TYPE(SV601, sv601_device, "sv601", "SV-601 Super Expander") //------------------------------------------------- // machine_config_additions - device-specific @@ -50,7 +50,7 @@ machine_config_constructor sv601_device::device_mconfig_additions() const //------------------------------------------------- sv601_device::sv601_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, SV601, "SV-601 Super Expander", tag, owner, clock, "sv601", __FILE__), + device_t(mconfig, SV601, tag, owner, clock), device_svi_expander_interface(mconfig, *this), m_slotbus(*this, "slotbus") { diff --git a/src/devices/bus/svi3x8/expander/sv601.h b/src/devices/bus/svi3x8/expander/sv601.h index 796b9da51b2..6689694c960 100644 --- a/src/devices/bus/svi3x8/expander/sv601.h +++ b/src/devices/bus/svi3x8/expander/sv601.h @@ -6,10 +6,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_BUS_SVI3X8_EXPANDER_SV601_H +#define MAME_BUS_SVI3X8_EXPANDER_SV601_H -#ifndef __SVI3X8_EXPANDER_SV601_H__ -#define __SVI3X8_EXPANDER_SV601_H__ +#pragma once #include "expander.h" #include "bus/svi3x8/slot/slot.h" @@ -52,6 +52,6 @@ private: }; // device type definition -extern const device_type SV601; +DECLARE_DEVICE_TYPE(SV601, sv601_device) -#endif // __SVI3X8_EXPANDER_SV601_H__ +#endif // MAME_BUS_SVI3X8_EXPANDER_SV601_H diff --git a/src/devices/bus/svi3x8/expander/sv602.cpp b/src/devices/bus/svi3x8/expander/sv602.cpp index 119ec066544..c8d96b17ddc 100644 --- a/src/devices/bus/svi3x8/expander/sv602.cpp +++ b/src/devices/bus/svi3x8/expander/sv602.cpp @@ -14,7 +14,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type SV602 = device_creator; +DEFINE_DEVICE_TYPE(SV602, sv602_device, "sv602", "SV-602 Single Slot Expander") //------------------------------------------------- // machine_config_additions - device-specific @@ -44,7 +44,7 @@ machine_config_constructor sv602_device::device_mconfig_additions() const //------------------------------------------------- sv602_device::sv602_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, SV602, "SV-602 Single Slot Expander", tag, owner, clock, "sv602", __FILE__), + device_t(mconfig, SV602, tag, owner, clock), device_svi_expander_interface(mconfig, *this), m_slotbus(*this, "slotbus") { diff --git a/src/devices/bus/svi3x8/expander/sv602.h b/src/devices/bus/svi3x8/expander/sv602.h index 2855f11e991..041202e2a0c 100644 --- a/src/devices/bus/svi3x8/expander/sv602.h +++ b/src/devices/bus/svi3x8/expander/sv602.h @@ -6,10 +6,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_BUS_SVI3X8_EXPANDER_SV602_H +#define MAME_BUS_SVI3X8_EXPANDER_SV602_H -#ifndef __SVI3X8_EXPANDER_SV602_H__ -#define __SVI3X8_EXPANDER_SV602_H__ +#pragma once #include "expander.h" #include "bus/svi3x8/slot/slot.h" @@ -52,6 +52,6 @@ private: }; // device type definition -extern const device_type SV602; +DECLARE_DEVICE_TYPE(SV602, sv602_device) -#endif // __SVI3X8_EXPANDER_SV602_H__ +#endif // MAME_BUS_SVI3X8_EXPANDER_SV602_H diff --git a/src/devices/bus/svi3x8/expander/sv603.cpp b/src/devices/bus/svi3x8/expander/sv603.cpp index c0e4e16fdd2..31d1f3e630b 100644 --- a/src/devices/bus/svi3x8/expander/sv603.cpp +++ b/src/devices/bus/svi3x8/expander/sv603.cpp @@ -17,7 +17,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type SV603 = device_creator; +DEFINE_DEVICE_TYPE(SV603, sv603_device, "sv603", "SV-603 Coleco Game Adapter") //------------------------------------------------- // rom_region - device-specific ROM region @@ -80,7 +80,7 @@ DEVICE_IMAGE_LOAD_MEMBER( sv603_device, cartridge ) //------------------------------------------------- sv603_device::sv603_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, SV603, "SV-603 Coleco Game Adapter", tag, owner, clock, "sv603", __FILE__), + device_t(mconfig, SV603, tag, owner, clock), device_svi_expander_interface(mconfig, *this), m_bios(*this, "bios"), m_snd(*this, "snd"), diff --git a/src/devices/bus/svi3x8/expander/sv603.h b/src/devices/bus/svi3x8/expander/sv603.h index 584560ea5e3..68e72ddd46a 100644 --- a/src/devices/bus/svi3x8/expander/sv603.h +++ b/src/devices/bus/svi3x8/expander/sv603.h @@ -6,10 +6,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_BUS_SVI3X8_EXPANDER_SV603_H +#define MAME_BUS_SVI3X8_EXPANDER_SV603_H -#ifndef __SVI3X8_EXPANDER_SV603_H__ -#define __SVI3X8_EXPANDER_SV603_H__ +#pragma once #include "expander.h" #include "sound/sn76496.h" @@ -50,6 +50,6 @@ private: }; // device type definition -extern const device_type SV603; +DECLARE_DEVICE_TYPE(SV603, sv603_device) -#endif // __SVI3X8_EXPANDER_SV603_H__ +#endif // MAME_BUS_SVI3X8_EXPANDER_SV603_H diff --git a/src/devices/bus/svi3x8/slot/cards.cpp b/src/devices/bus/svi3x8/slot/cards.cpp index 6a51e28a8d1..5d0192f91ea 100644 --- a/src/devices/bus/svi3x8/slot/cards.cpp +++ b/src/devices/bus/svi3x8/slot/cards.cpp @@ -9,6 +9,14 @@ #include "emu.h" #include "cards.h" +#include "sv801.h" +#include "sv802.h" +#include "sv803.h" +#include "sv805.h" +#include "sv806.h" +#include "sv807.h" + + SLOT_INTERFACE_START( svi_slot_cards ) SLOT_INTERFACE("sv801", SV801) SLOT_INTERFACE("sv802", SV802) diff --git a/src/devices/bus/svi3x8/slot/cards.h b/src/devices/bus/svi3x8/slot/cards.h index 9ceeccbd840..6bca329078b 100644 --- a/src/devices/bus/svi3x8/slot/cards.h +++ b/src/devices/bus/svi3x8/slot/cards.h @@ -6,19 +6,12 @@ ***************************************************************************/ -#pragma once - -#ifndef __SVI3X8_SLOT_CARDS_H__ -#define __SVI3X8_SLOT_CARDS_H__ +#ifndef MAME_BUS_SVI3X8_SLOT_CARDS_H +#define MAME_BUS_SVI3X8_SLOT_CARDS_H -#include "sv801.h" -#include "sv802.h" -#include "sv803.h" -#include "sv805.h" -#include "sv806.h" -#include "sv807.h" +#pragma once SLOT_INTERFACE_EXTERN( svi_slot_cards ); SLOT_INTERFACE_EXTERN( sv602_slot_cards ); -#endif // __SVI3X8_SLOT_CARDS_H__ +#endif // MAME_BUS_SVI3X8_SLOT_CARDS_H diff --git a/src/devices/bus/svi3x8/slot/slot.cpp b/src/devices/bus/svi3x8/slot/slot.cpp index 8294369bb55..c8e35ec9c92 100644 --- a/src/devices/bus/svi3x8/slot/slot.cpp +++ b/src/devices/bus/svi3x8/slot/slot.cpp @@ -14,14 +14,14 @@ // SLOT BUS DEVICE //************************************************************************** -const device_type SVI_SLOT_BUS = device_creator; +DEFINE_DEVICE_TYPE(SVI_SLOT_BUS, svi_slot_bus_device, "svislotbus", "SVI Slot Bus") //------------------------------------------------- // svi_slot_bus_device - constructor //------------------------------------------------- svi_slot_bus_device::svi_slot_bus_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, SVI_SLOT_BUS, "SVI Slot Bus", tag, owner, clock, "svislotbus", __FILE__), + device_t(mconfig, SVI_SLOT_BUS, tag, owner, clock), m_int_handler(*this), m_romdis_handler(*this), m_ramdis_handler(*this) @@ -198,14 +198,14 @@ WRITE_LINE_MEMBER( svi_slot_bus_device::bk32_w ) // SVI SLOT DEVICE //************************************************************************** -const device_type SVI_SLOT = device_creator; +DEFINE_DEVICE_TYPE(SVI_SLOT, svi_slot_device, "svislot", "SVI Slot") //------------------------------------------------- // svi_slot_device - constructor //------------------------------------------------- svi_slot_device::svi_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, SVI_SLOT, "SVI Slot", tag, owner, clock, "svislot", __FILE__), + device_t(mconfig, SVI_SLOT, tag, owner, clock), device_slot_interface(mconfig, *this), m_bus_tag(nullptr) { @@ -256,8 +256,8 @@ void svi_slot_device::device_reset() device_svi_slot_interface::device_svi_slot_interface(const machine_config &mconfig, device_t &device) : device_slot_card_interface(mconfig, device), - m_next(nullptr), - m_bus(nullptr) + m_bus(nullptr), + m_next(nullptr) { } diff --git a/src/devices/bus/svi3x8/slot/slot.h b/src/devices/bus/svi3x8/slot/slot.h index a76a514c2f1..f8c6e52314d 100644 --- a/src/devices/bus/svi3x8/slot/slot.h +++ b/src/devices/bus/svi3x8/slot/slot.h @@ -34,10 +34,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_BUS_SVI3X8_SLOT_SLOT_H +#define MAME_BUS_SVI3X8_SLOT_SLOT_H -#ifndef __SVI3X8_SLOT_H__ -#define __SVI3X8_SLOT_H__ +#pragma once @@ -79,18 +79,14 @@ public: virtual ~svi_slot_bus_device(); // callbacks - template static devcb_base &set_int_handler(device_t &device, _Object object) - { return downcast(device).m_int_handler.set_callback(object); } + template static devcb_base &set_int_handler(device_t &device, Object &&cb) + { return downcast(device).m_int_handler.set_callback(std::forward(cb)); } - template static devcb_base &set_romdis_handler(device_t &device, _Object object) - { return downcast(device).m_romdis_handler.set_callback(object); } + template static devcb_base &set_romdis_handler(device_t &device, Object &&cb) + { return downcast(device).m_romdis_handler.set_callback(std::forward(cb)); } - template static devcb_base &set_ramdis_handler(device_t &device, _Object object) - { return downcast(device).m_ramdis_handler.set_callback(object); } - - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; + template static devcb_base &set_ramdis_handler(device_t &device, Object &&cb) + { return downcast(device).m_ramdis_handler.set_callback(std::forward(cb)); } void add_card(device_svi_slot_interface *card); @@ -111,6 +107,10 @@ public: DECLARE_WRITE_LINE_MEMBER( bk32_w ); private: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + simple_list m_dev; devcb_write_line m_int_handler; @@ -119,7 +119,7 @@ private: }; // device type definition -extern const device_type SVI_SLOT_BUS; +DECLARE_DEVICE_TYPE(SVI_SLOT_BUS, svi_slot_bus_device) // ======================> svi_slot_device @@ -142,37 +142,41 @@ protected: }; // device type definition -extern const device_type SVI_SLOT; +DECLARE_DEVICE_TYPE(SVI_SLOT, svi_slot_device) // ======================> svi_slot_device class device_svi_slot_interface : public device_slot_card_interface { + template friend class simple_list; public: // construction/destruction - device_svi_slot_interface(const machine_config &mconfig, device_t &device); virtual ~device_svi_slot_interface(); void set_bus_device(svi_slot_bus_device *bus); device_svi_slot_interface *next() const { return m_next; } - device_svi_slot_interface *m_next; - virtual DECLARE_READ8_MEMBER( mreq_r ) { return 0xff; }; - virtual DECLARE_WRITE8_MEMBER( mreq_w ) {}; - virtual DECLARE_READ8_MEMBER( iorq_r ) { return 0xff; }; - virtual DECLARE_WRITE8_MEMBER( iorq_w ) {}; + virtual DECLARE_READ8_MEMBER( mreq_r ) { return 0xff; } + virtual DECLARE_WRITE8_MEMBER( mreq_w ) { } + virtual DECLARE_READ8_MEMBER( iorq_r ) { return 0xff; } + virtual DECLARE_WRITE8_MEMBER( iorq_w ) { } - virtual DECLARE_WRITE_LINE_MEMBER( bk21_w ) {}; - virtual DECLARE_WRITE_LINE_MEMBER( bk22_w ) {}; - virtual DECLARE_WRITE_LINE_MEMBER( bk31_w ) {}; - virtual DECLARE_WRITE_LINE_MEMBER( bk32_w ) {}; + virtual DECLARE_WRITE_LINE_MEMBER( bk21_w ) { } + virtual DECLARE_WRITE_LINE_MEMBER( bk22_w ) { } + virtual DECLARE_WRITE_LINE_MEMBER( bk31_w ) { } + virtual DECLARE_WRITE_LINE_MEMBER( bk32_w ) { } protected: + device_svi_slot_interface(const machine_config &mconfig, device_t &device); + svi_slot_bus_device *m_bus; + +private: + device_svi_slot_interface *m_next; }; // include here so drivers don't need to #include "cards.h" -#endif // __SVI3X8_SLOT_H__ +#endif // MAME_BUS_SVI3X8_SLOT_SLOT_H diff --git a/src/devices/bus/svi3x8/slot/sv801.cpp b/src/devices/bus/svi3x8/slot/sv801.cpp index 32234dc2a61..d6a29c3b14b 100644 --- a/src/devices/bus/svi3x8/slot/sv801.cpp +++ b/src/devices/bus/svi3x8/slot/sv801.cpp @@ -16,7 +16,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type SV801 = device_creator; +DEFINE_DEVICE_TYPE(SV801, sv801_device, "sv801", "SV-801 Disk Controller") //------------------------------------------------- // machine_config_additions - device-specific @@ -57,7 +57,7 @@ machine_config_constructor sv801_device::device_mconfig_additions() const //------------------------------------------------- sv801_device::sv801_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, SV801, "SV-801 Disk Controller", tag, owner, clock, "sv801", __FILE__), + device_t(mconfig, SV801, tag, owner, clock), device_svi_slot_interface(mconfig, *this), m_fdc(*this, "fdc"), m_floppy0(*this, "fdc:0"), diff --git a/src/devices/bus/svi3x8/slot/sv801.h b/src/devices/bus/svi3x8/slot/sv801.h index 229fb6995ab..3bed726e725 100644 --- a/src/devices/bus/svi3x8/slot/sv801.h +++ b/src/devices/bus/svi3x8/slot/sv801.h @@ -6,10 +6,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_BUS_SVI3X8_SLOT_SV801_H +#define MAME_BUS_SVI3X8_SLOT_SV801_H -#ifndef __SVI3X8_SLOT_SV801_H__ -#define __SVI3X8_SLOT_SV801_H__ +#pragma once #include "slot.h" #include "machine/wd_fdc.h" @@ -44,7 +44,7 @@ protected: private: DECLARE_WRITE8_MEMBER( motor_w ); - required_device m_fdc; + required_device m_fdc; required_device m_floppy0; required_device m_floppy1; @@ -55,6 +55,6 @@ private: }; // device type definition -extern const device_type SV801; +DECLARE_DEVICE_TYPE(SV801, sv801_device) -#endif // __SVI3X8_SLOT_SV801_H__ +#endif // MAME_BUS_SVI3X8_SLOT_SV801_H diff --git a/src/devices/bus/svi3x8/slot/sv802.cpp b/src/devices/bus/svi3x8/slot/sv802.cpp index 49b4847ae37..b79544b6325 100644 --- a/src/devices/bus/svi3x8/slot/sv802.cpp +++ b/src/devices/bus/svi3x8/slot/sv802.cpp @@ -14,7 +14,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type SV802 = device_creator; +DEFINE_DEVICE_TYPE(SV802, sv802_device, "sv802", "SV-802 Centronics Printer Interface") //------------------------------------------------- // machine_config_additions - device-specific @@ -43,7 +43,7 @@ machine_config_constructor sv802_device::device_mconfig_additions() const //------------------------------------------------- sv802_device::sv802_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, SV802, "SV-802 Centronics Printer Interface", tag, owner, clock, "sv802", __FILE__), + device_t(mconfig, SV802, tag, owner, clock), device_svi_slot_interface(mconfig, *this), m_centronics(*this, "centronics"), m_cent_data_out(*this, "cent_data_out"), diff --git a/src/devices/bus/svi3x8/slot/sv802.h b/src/devices/bus/svi3x8/slot/sv802.h index 8d7bf241d24..a38b9f34a18 100644 --- a/src/devices/bus/svi3x8/slot/sv802.h +++ b/src/devices/bus/svi3x8/slot/sv802.h @@ -6,10 +6,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_BUS_SVI3X8_SLOT_SV802_H +#define MAME_BUS_SVI3X8_SLOT_SV802_H -#ifndef __SVI3X8_SLOT_SV802_H__ -#define __SVI3X8_SLOT_SV802_H__ +#pragma once #include "slot.h" #include "machine/buffer.h" @@ -45,6 +45,6 @@ private: }; // device type definition -extern const device_type SV802; +DECLARE_DEVICE_TYPE(SV802, sv802_device) -#endif // __SVI3X8_SLOT_SV802_H__ +#endif // MAME_BUS_SVI3X8_SLOT_SV802_H diff --git a/src/devices/bus/svi3x8/slot/sv803.cpp b/src/devices/bus/svi3x8/slot/sv803.cpp index b67764ddd24..c5e53572d30 100644 --- a/src/devices/bus/svi3x8/slot/sv803.cpp +++ b/src/devices/bus/svi3x8/slot/sv803.cpp @@ -14,7 +14,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type SV803 = device_creator; +DEFINE_DEVICE_TYPE(SV803, sv803_device, "sv803", "SV-803 16k RAM Cartridge") //************************************************************************** @@ -26,7 +26,7 @@ const device_type SV803 = device_creator; //------------------------------------------------- sv803_device::sv803_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, SV803, "SV-803 16k RAM Cartridge", tag, owner, clock, "sv803", __FILE__), + device_t(mconfig, SV803, tag, owner, clock), device_svi_slot_interface(mconfig, *this) { m_ram = std::make_unique(0x4000); diff --git a/src/devices/bus/svi3x8/slot/sv803.h b/src/devices/bus/svi3x8/slot/sv803.h index d07da2ce404..6fd1d2b635a 100644 --- a/src/devices/bus/svi3x8/slot/sv803.h +++ b/src/devices/bus/svi3x8/slot/sv803.h @@ -6,10 +6,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_BUS_SVI3X8_SLOT_SV803_H +#define MAME_BUS_SVI3X8_SLOT_SV803_H -#ifndef __SVI3X8_SLOT_SV803_H__ -#define __SVI3X8_SLOT_SV803_H__ +#pragma once #include "slot.h" @@ -38,6 +38,6 @@ private: }; // device type definition -extern const device_type SV803; +DECLARE_DEVICE_TYPE(SV803, sv803_device) -#endif // __SVI3X8_SLOT_SV803_H__ +#endif // MAME_BUS_SVI3X8_SLOT_SV803_H diff --git a/src/devices/bus/svi3x8/slot/sv805.cpp b/src/devices/bus/svi3x8/slot/sv805.cpp index b681d8d1cc6..4edf33e3423 100644 --- a/src/devices/bus/svi3x8/slot/sv805.cpp +++ b/src/devices/bus/svi3x8/slot/sv805.cpp @@ -14,7 +14,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type SV805 = device_creator; +DEFINE_DEVICE_TYPE(SV805, sv805_device, "sv805", "SV-805 RS-232 Interface") //------------------------------------------------- // machine_config_additions - device-specific @@ -50,7 +50,7 @@ machine_config_constructor sv805_device::device_mconfig_additions() const //------------------------------------------------- sv805_device::sv805_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, SV805, "SV-805 RS-232 Interface", tag, owner, clock, "sv805", __FILE__), + device_t(mconfig, SV805, tag, owner, clock), device_svi_slot_interface(mconfig, *this), m_uart(*this, "uart"), m_rs232(*this, "rs232") diff --git a/src/devices/bus/svi3x8/slot/sv805.h b/src/devices/bus/svi3x8/slot/sv805.h index 8cc9008772d..1a0d6eb4253 100644 --- a/src/devices/bus/svi3x8/slot/sv805.h +++ b/src/devices/bus/svi3x8/slot/sv805.h @@ -6,10 +6,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_BUS_SVI3X8_SLOT_SV805_H +#define MAME_BUS_SVI3X8_SLOT_SV805_H -#ifndef __SVI3X8_SLOT_SV805_H__ -#define __SVI3X8_SLOT_SV805_H__ +#pragma once #include "slot.h" #include "machine/ins8250.h" @@ -43,6 +43,6 @@ private: }; // device type definition -extern const device_type SV805; +DECLARE_DEVICE_TYPE(SV805, sv805_device) -#endif // __SVI3X8_SLOT_SV805_H__ +#endif // MAME_BUS_SVI3X8_SLOT_SV805_H diff --git a/src/devices/bus/svi3x8/slot/sv806.cpp b/src/devices/bus/svi3x8/slot/sv806.cpp index c4ff1cc6c62..63eb700b624 100644 --- a/src/devices/bus/svi3x8/slot/sv806.cpp +++ b/src/devices/bus/svi3x8/slot/sv806.cpp @@ -16,7 +16,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type SV806 = device_creator; +DEFINE_DEVICE_TYPE(SV806, sv806_device, "sv806", "SV-806 80 Column Cartridge") //------------------------------------------------- // rom_region - device-specific ROM region @@ -68,7 +68,7 @@ machine_config_constructor sv806_device::device_mconfig_additions() const //------------------------------------------------- sv806_device::sv806_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, SV806, "SV-806 80 Column Cartridge", tag, owner, clock, "sv806", __FILE__), + device_t(mconfig, SV806, tag, owner, clock), device_svi_slot_interface(mconfig, *this), m_crtc(*this, "crtc"), m_palette(*this, "palette"), diff --git a/src/devices/bus/svi3x8/slot/sv806.h b/src/devices/bus/svi3x8/slot/sv806.h index f37ce5d75f8..4dd7006c3b1 100644 --- a/src/devices/bus/svi3x8/slot/sv806.h +++ b/src/devices/bus/svi3x8/slot/sv806.h @@ -6,10 +6,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_BUS_SVI3X8_SLOT_SV806_H +#define MAME_BUS_SVI3X8_SLOT_SV806_H -#ifndef __SVI3X8_SLOT_SV806_H__ -#define __SVI3X8_SLOT_SV806_H__ +#pragma once #include "slot.h" #include "video/mc6845.h" @@ -49,6 +49,6 @@ private: }; // device type definition -extern const device_type SV806; +DECLARE_DEVICE_TYPE(SV806, sv806_device) -#endif // __SVI3X8_SLOT_SV806_H__ +#endif // MAME_BUS_SVI3X8_SLOT_SV806_H diff --git a/src/devices/bus/svi3x8/slot/sv807.cpp b/src/devices/bus/svi3x8/slot/sv807.cpp index 0511b2373ab..565154a6e7d 100644 --- a/src/devices/bus/svi3x8/slot/sv807.cpp +++ b/src/devices/bus/svi3x8/slot/sv807.cpp @@ -28,7 +28,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type SV807 = device_creator; +DEFINE_DEVICE_TYPE(SV807, sv807_device, "sv807", "SV-807 64k RAM Cartridge") //------------------------------------------------- // input_ports - device-specific input ports @@ -77,7 +77,7 @@ ioport_constructor sv807_device::device_input_ports() const //------------------------------------------------- sv807_device::sv807_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, SV807, "SV-807 64k RAM Cartridge", tag, owner, clock, "sv807", __FILE__), + device_t(mconfig, SV807, tag, owner, clock), device_svi_slot_interface(mconfig, *this), m_switch(*this, "S"), m_bk21(1), m_bk22(1), m_bk31(1), m_bk32(1) diff --git a/src/devices/bus/svi3x8/slot/sv807.h b/src/devices/bus/svi3x8/slot/sv807.h index 8dee492b837..e3f12201d37 100644 --- a/src/devices/bus/svi3x8/slot/sv807.h +++ b/src/devices/bus/svi3x8/slot/sv807.h @@ -6,10 +6,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_BUS_SVI3X8_SLOT_SV807_H +#define MAME_BUS_SVI3X8_SLOT_SV807_H -#ifndef __SVI3X8_SLOT_SV807_H__ -#define __SVI3X8_SLOT_SV807_H__ +#pragma once #include "slot.h" @@ -54,6 +54,6 @@ private: }; // device type definition -extern const device_type SV807; +DECLARE_DEVICE_TYPE(SV807, sv807_device) -#endif // __SVI3X8_SLOT_SV807_H__ +#endif // MAME_BUS_SVI3X8_SLOT_SV807_H diff --git a/src/devices/bus/ti8x/bitsocket.cpp b/src/devices/bus/ti8x/bitsocket.cpp index f712665d190..06c931eff6f 100644 --- a/src/devices/bus/ti8x/bitsocket.cpp +++ b/src/devices/bus/ti8x/bitsocket.cpp @@ -5,7 +5,7 @@ #include "bitsocket.h" -device_type const TI8X_BIT_SOCKET = device_creator; +DEFINE_DEVICE_TYPE_NS(TI8X_BIT_SOCKET, bus::ti8x, bit_socket_device, "ti8x_bitsock", "TI-8x Bit Socket") namespace bus { namespace ti8x { @@ -24,7 +24,7 @@ bit_socket_device::bit_socket_device( char const *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, TI8X_BIT_SOCKET, "TI-8x Bit Socket", tag, owner, clock, "ti8xbitsock", __FILE__) + : device_t(mconfig, TI8X_BIT_SOCKET, tag, owner, clock) , device_ti8x_link_port_interface(mconfig, *this) , m_stream(*this, "stream") , m_poll_timer(nullptr) diff --git a/src/devices/bus/ti8x/bitsocket.h b/src/devices/bus/ti8x/bitsocket.h index de4ff6ca060..1d1f37c0add 100644 --- a/src/devices/bus/ti8x/bitsocket.h +++ b/src/devices/bus/ti8x/bitsocket.h @@ -9,8 +9,8 @@ bit 1 = set tip bit 2 = set ring */ -#ifndef MAME_DEVICES_BUS_TI8X_BITSOCKET_H -#define MAME_DEVICES_BUS_TI8X_BITSOCKET_H +#ifndef MAME_BUS_TI8X_BITSOCKET_H +#define MAME_BUS_TI8X_BITSOCKET_H #pragma once @@ -19,9 +19,6 @@ #include "imagedev/bitbngr.h" -extern device_type const TI8X_BIT_SOCKET; - - namespace bus { namespace ti8x { class bit_socket_device @@ -52,4 +49,7 @@ private: } } // namespace bus::ti8x -#endif // MAME_DEVICES_BUS_TI8X_BITSOCKET_H + +DECLARE_DEVICE_TYPE_NS(TI8X_BIT_SOCKET, bus::ti8x, bit_socket_device) + +#endif // MAME_BUS_TI8X_BITSOCKET_H diff --git a/src/devices/bus/ti8x/graphlinkhle.cpp b/src/devices/bus/ti8x/graphlinkhle.cpp index 7a5adb60725..a47f7ef5341 100644 --- a/src/devices/bus/ti8x/graphlinkhle.cpp +++ b/src/devices/bus/ti8x/graphlinkhle.cpp @@ -5,7 +5,7 @@ #include "graphlinkhle.h" -device_type const TI8X_GRAPH_LINK_HLE = device_creator; +DEFINE_DEVICE_TYPE_NS(TI8X_GRAPH_LINK_HLE, bus::ti8x, graph_link_hle_device, "tii8x_glinkhle", "TI-Graph Link (grey, HLE)") namespace bus { namespace ti8x { @@ -25,7 +25,7 @@ graph_link_hle_device::graph_link_hle_device( char const *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, TI8X_GRAPH_LINK_HLE, "TI-Graph Link (grey, HLE)", tag, owner, clock, "glinkhle", __FILE__) + : device_t(mconfig, TI8X_GRAPH_LINK_HLE, tag, owner, clock) , device_ti8x_link_port_byte_interface(mconfig, *this) , device_serial_interface(mconfig, *this) , m_serial_port(*this, "rs232") diff --git a/src/devices/bus/ti8x/graphlinkhle.h b/src/devices/bus/ti8x/graphlinkhle.h index c0fef8cfbb9..6959d5b336e 100644 --- a/src/devices/bus/ti8x/graphlinkhle.h +++ b/src/devices/bus/ti8x/graphlinkhle.h @@ -9,10 +9,10 @@ The buffer is there so that if you connect two emulated calculators together with these it has some chance of working. The receiving calculator can't slow the sending calculator down like it would be able - to in real life, so you get inevitable overruns without the buffer. + to in real life, so you inevitably get overruns without the buffer. */ -#ifndef MAME_DEVICES_BUS_TI8X_GRAPHLINKHLE_H -#define MAME_DEVICES_BUS_TI8X_GRAPHLINKHLE_H +#ifndef MAME_BUS_TI8X_GRAPHLINKHLE_H +#define MAME_BUS_TI8X_GRAPHLINKHLE_H #pragma once @@ -23,9 +23,6 @@ #include -extern device_type const TI8X_GRAPH_LINK_HLE; - - namespace bus { namespace ti8x { class graph_link_hle_device @@ -63,4 +60,7 @@ private: } } // namespace bus::ti8x -#endif // MAME_DEVICES_BUS_TI8X_GRAPHLINKHLE_H + +DECLARE_DEVICE_TYPE_NS(TI8X_GRAPH_LINK_HLE, bus::ti8x, graph_link_hle_device) + +#endif // MAME_BUS_TI8X_GRAPHLINKHLE_H diff --git a/src/devices/bus/ti8x/teeconn.cpp b/src/devices/bus/ti8x/teeconn.cpp index d2d1ffbc3db..afe368ff203 100644 --- a/src/devices/bus/ti8x/teeconn.cpp +++ b/src/devices/bus/ti8x/teeconn.cpp @@ -5,7 +5,7 @@ #include "teeconn.h" -device_type const TI8X_TEE_CONNECTOR = device_creator; +DEFINE_DEVICE_TYPE_NS(TI8X_TEE_CONNECTOR, bus::ti8x, tee_connector_device, "it8x_tconn", "TI-8x T-connector") namespace bus { namespace ti8x { @@ -30,7 +30,7 @@ tee_connector_device::tee_connector_device( char const *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, TI8X_TEE_CONNECTOR, "T-connector", tag, owner, clock, "ti8xtconn", __FILE__) + : device_t(mconfig, TI8X_TEE_CONNECTOR, tag, owner, clock) , device_ti8x_link_port_interface(mconfig, *this) , m_port_a(*this, "a") , m_port_b(*this, "b") diff --git a/src/devices/bus/ti8x/teeconn.h b/src/devices/bus/ti8x/teeconn.h index 3c6beb31b46..50d9c87c37e 100644 --- a/src/devices/bus/ti8x/teeconn.h +++ b/src/devices/bus/ti8x/teeconn.h @@ -11,9 +11,6 @@ #include "ti8x.h" -extern device_type const TI8X_TEE_CONNECTOR; - - namespace bus { namespace ti8x { class tee_connector_device : public device_t, public device_ti8x_link_port_interface @@ -42,4 +39,7 @@ protected: } } // namespace bus::ti8x + +DECLARE_DEVICE_TYPE_NS(TI8X_TEE_CONNECTOR, bus::ti8x, tee_connector_device) + #endif // MAME_DEVICES_BUS_TI8X_TEECONN_H diff --git a/src/devices/bus/ti8x/ti8x.cpp b/src/devices/bus/ti8x/ti8x.cpp index 0fa99837288..528b1dc6c39 100644 --- a/src/devices/bus/ti8x/ti8x.cpp +++ b/src/devices/bus/ti8x/ti8x.cpp @@ -17,7 +17,7 @@ -device_type const TI8X_LINK_PORT = device_creator; +DEFINE_DEVICE_TYPE(TI8X_LINK_PORT, ti8x_link_port_device, "ti8x_link_port", "TI-8x Link Port") ti8x_link_port_device::ti8x_link_port_device( @@ -25,7 +25,7 @@ ti8x_link_port_device::ti8x_link_port_device( char const *tag, device_t *owner, uint32_t clock) - : ti8x_link_port_device(mconfig, TI8X_LINK_PORT, "TI-8x Link Port", tag, owner, clock, "ti8xlink", __FILE__) + : ti8x_link_port_device(mconfig, TI8X_LINK_PORT, tag, owner, clock) { } @@ -33,13 +33,10 @@ ti8x_link_port_device::ti8x_link_port_device( ti8x_link_port_device::ti8x_link_port_device( machine_config const &mconfig, device_type type, - char const *name, char const *tag, device_t *owner, - uint32_t clock, - char const *shortname, - char const *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source) + uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) , device_slot_interface(mconfig, *this) , m_tip_handler(*this) , m_ring_handler(*this) diff --git a/src/devices/bus/ti8x/ti8x.h b/src/devices/bus/ti8x/ti8x.h index fdb998cb66c..5a21a4abc17 100644 --- a/src/devices/bus/ti8x/ti8x.h +++ b/src/devices/bus/ti8x/ti8x.h @@ -39,7 +39,7 @@ -extern device_type const TI8X_LINK_PORT; +DECLARE_DEVICE_TYPE(TI8X_LINK_PORT, ti8x_link_port_device) #define MCFG_TI8X_LINK_PORT_ADD(tag, slot_intf, def_slot) \ @@ -77,12 +77,9 @@ protected: ti8x_link_port_device( machine_config const &mconfig, device_type type, - char const *name, char const *tag, device_t *owner, - u32 clock, - char const *shortname, - char const *source); + u32 clock); virtual void device_start() override; virtual void device_config_complete() override; diff --git a/src/devices/bus/ti8x/tispeaker.cpp b/src/devices/bus/ti8x/tispeaker.cpp index 0b916e1c4d9..952bbc5cca7 100644 --- a/src/devices/bus/ti8x/tispeaker.cpp +++ b/src/devices/bus/ti8x/tispeaker.cpp @@ -7,8 +7,8 @@ #include "speaker.h" -device_type const TI8X_SPEAKER_STEREO = device_creator; -device_type const TI8X_SPEAKER_MONO = device_creator; +DEFINE_DEVICE_TYPE_NS(TI8X_SPEAKER_STEREO, bus::ti8x, stereo_speaker_device, "ti8x_stspkr", "TI-8x Speaker (Stereo)") +DEFINE_DEVICE_TYPE_NS(TI8X_SPEAKER_MONO, bus::ti8x, mono_speaker_device, "ti8x_mspkr", "TI-8x Speaker (Mono)") namespace bus { namespace ti8x { @@ -41,7 +41,7 @@ stereo_speaker_device::stereo_speaker_device( char const *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, TI8X_SPEAKER_STEREO, "TI-8x Speaker (Stereo)", tag, owner, clock, "ti8xstspkr", __FILE__) + : device_t(mconfig, TI8X_SPEAKER_STEREO, tag, owner, clock) , device_ti8x_link_port_interface(mconfig, *this) , m_left_speaker(*this, "lspkr") , m_right_speaker(*this, "rspkr") @@ -78,7 +78,7 @@ mono_speaker_device::mono_speaker_device( char const *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, TI8X_SPEAKER_MONO, "TI-8x Speaker (Mono)", tag, owner, clock, "ti8xmspkr", __FILE__) + : device_t(mconfig, TI8X_SPEAKER_MONO, tag, owner, clock) , device_ti8x_link_port_interface(mconfig, *this) , m_speaker(*this, "spkr") , m_tip_state(true) diff --git a/src/devices/bus/ti8x/tispeaker.h b/src/devices/bus/ti8x/tispeaker.h index 308b316b3bf..1ee519f87e7 100644 --- a/src/devices/bus/ti8x/tispeaker.h +++ b/src/devices/bus/ti8x/tispeaker.h @@ -9,10 +9,6 @@ #include "sound/spkrdev.h" -extern device_type const TI8X_SPEAKER_STEREO; -extern device_type const TI8X_SPEAKER_MONO; - - namespace bus { namespace ti8x { class stereo_speaker_device : public device_t, public device_ti8x_link_port_interface @@ -52,4 +48,8 @@ private: } } // namespace bus::ti8x + +DECLARE_DEVICE_TYPE_NS(TI8X_SPEAKER_STEREO, bus::ti8x, stereo_speaker_device) +DECLARE_DEVICE_TYPE_NS(TI8X_SPEAKER_MONO, bus::ti8x, mono_speaker_device) + #endif // MAME_DEVICES_BUS_TI8X_TISPEAKER_H diff --git a/src/devices/bus/ti99/colorbus/busmouse.cpp b/src/devices/bus/ti99/colorbus/busmouse.cpp new file mode 100644 index 00000000000..305e1eba702 --- /dev/null +++ b/src/devices/bus/ti99/colorbus/busmouse.cpp @@ -0,0 +1,68 @@ +// license:LGPL-2.1+ +// copyright-holders:Michael Zapf +/**************************************************************************** + + Mouse for use with the v9938 color bus + + Used with the Geneve 9640 and 80 column cards (like the EVPC) + for the TI-99/4A + + Michael Zapf, 2017-03-18 + +*****************************************************************************/ + +#include "emu.h" +#include "busmouse.h" + +geneve_busmouse_device::geneve_busmouse_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, TI99_BUSMOUSE, tag, owner, clock), device_ti99_colorbus_interface(mconfig, *this) + , m_buttons(*this, "MOUSEBUT"), m_xaxis(*this, "MOUSEX"), m_yaxis(*this, "MOUSEY") +{ +} + +void geneve_busmouse_device::poll(int& delta_x, int& delta_y, int& buttons) +{ + buttons = m_buttons->read(); + int const new_mx = m_xaxis->read(); + int const new_my = m_yaxis->read(); + + /* compute x delta */ + delta_x = new_mx - m_last_mx; + m_last_mx = new_mx; + + /* compute y delta */ + delta_y = new_my - m_last_my; + m_last_my = new_my; +} + +void geneve_busmouse_device::device_start() +{ + save_item(NAME(m_last_mx)); + save_item(NAME(m_last_my)); +} + +void geneve_busmouse_device::device_reset() +{ + m_last_mx = 0; + m_last_my = 0; +} + +INPUT_PORTS_START( busmouse ) + PORT_START("MOUSEX") /* Mouse - X AXIS */ + PORT_BIT( 0xffff, 0x00, IPT_MOUSE_X) PORT_SENSITIVITY(50) PORT_KEYDELTA(0) PORT_PLAYER(1) + + PORT_START("MOUSEY") /* Mouse - Y AXIS */ + PORT_BIT( 0xffff, 0x00, IPT_MOUSE_Y) PORT_SENSITIVITY(50) PORT_KEYDELTA(0) PORT_PLAYER(1) + + PORT_START("MOUSEBUT") /* mouse buttons */ + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_NAME("Left mouse button") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_NAME("Right mouse button") + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON3) PORT_NAME("Middle mouse button") +INPUT_PORTS_END + +ioport_constructor geneve_busmouse_device::device_input_ports() const +{ + return INPUT_PORTS_NAME( busmouse ); +} + +DEFINE_DEVICE_TYPE(TI99_BUSMOUSE, geneve_busmouse_device, "ti99_busmouse", "Geneve Bus Mouse") diff --git a/src/devices/bus/ti99/colorbus/busmouse.h b/src/devices/bus/ti99/colorbus/busmouse.h new file mode 100644 index 00000000000..15570ff2a4a --- /dev/null +++ b/src/devices/bus/ti99/colorbus/busmouse.h @@ -0,0 +1,39 @@ +// license:LGPL-2.1+ +// copyright-holders:Michael Zapf +/**************************************************************************** + + Mouse for use with the v9938 color bus + + Used with the Geneve 9640 and 80 column cards (like the EVPC) + + Michael Zapf, 2017-03-18 + +*****************************************************************************/ + +#ifndef MAME_BUS_TI99_COLORBUS_BUSMOUSE_H +#define MAME_BUS_TI99_COLORBUS_BUSMOUSE_H + +#pragma once + +#include "colorbus.h" + +DECLARE_DEVICE_TYPE(TI99_BUSMOUSE, geneve_busmouse_device) + +class geneve_busmouse_device : public device_t, public device_ti99_colorbus_interface +{ +public: + geneve_busmouse_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + void poll(int& delta_x, int& delta_y, int& buttons) override; + +protected: + virtual void device_start() override; + virtual void device_reset() override; + virtual ioport_constructor device_input_ports() const override; + +private: + required_ioport m_buttons, m_xaxis, m_yaxis; + int m_last_mx; + int m_last_my; +}; + +#endif // MAME_BUS_TI99_COLORBUS_BUSMOUSE_H diff --git a/src/devices/bus/ti99/colorbus/colorbus.cpp b/src/devices/bus/ti99/colorbus/colorbus.cpp new file mode 100644 index 00000000000..f157d564861 --- /dev/null +++ b/src/devices/bus/ti99/colorbus/colorbus.cpp @@ -0,0 +1,65 @@ +// license:LGPL-2.1+ +// copyright-holders:Michael Zapf +/**************************************************************************** + + v9938 Color bus + + The color bus runs from the v9938 video processor to some external device + like a mouse or a lightpen. + + The Geneve mouse offers three buttons, of which the leftmost one is not + connected to the v9938; the color bus implementation on the Geneve board + offers a separate line going to the 9901. + + Michael Zapf + + March 2017 + +*****************************************************************************/ + +#include "emu.h" +#include "colorbus.h" +#include "busmouse.h" +#include "bus/ti99x/ti99defs.h" + +ti99_colorbus_device::ti99_colorbus_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, TI99_COLORBUS, tag, owner, clock), + device_slot_interface(mconfig, *this), + m_connected(nullptr), + m_v9938(*owner, VDP_TAG), + m_left_button_pressed(false) +{ +} + +void ti99_colorbus_device::poll() +{ + int delta_x, delta_y, buttons; + + // only middle and right button go to V9938 + m_connected->poll(delta_x, delta_y, buttons); + m_v9938->update_mouse_state(delta_x, delta_y, buttons & 0x03); + m_left_button_pressed = (buttons & 0x04)!=0; +} + +line_state ti99_colorbus_device::left_button() +{ + return m_left_button_pressed? ASSERT_LINE : CLEAR_LINE; +} + +void ti99_colorbus_device::device_config_complete() +{ + m_connected = dynamic_cast(subdevices().first()); +} + +/*****************************************************************************/ + +void device_ti99_colorbus_interface::interface_config_complete() +{ + m_colorbus = downcast(device().owner()); +} + +SLOT_INTERFACE_START( ti99_colorbus_port ) + SLOT_INTERFACE("busmouse", TI99_BUSMOUSE) +SLOT_INTERFACE_END + +DEFINE_DEVICE_TYPE(TI99_COLORBUS, ti99_colorbus_device, "ti99_colorbus", "v9938 Color bus") diff --git a/src/devices/bus/ti99/colorbus/colorbus.h b/src/devices/bus/ti99/colorbus/colorbus.h new file mode 100644 index 00000000000..74d939e77d7 --- /dev/null +++ b/src/devices/bus/ti99/colorbus/colorbus.h @@ -0,0 +1,64 @@ +// license:LGPL-2.1+ +// copyright-holders:Michael Zapf +/**************************************************************************** + + v9938 color bus + + Used with the Geneve 9640 and 80 column cards (like the EVPC) + for the TI-99/4A + + Michael Zapf, 2017-03-18 + +*****************************************************************************/ + +#ifndef MAME_BUS_TI99_COLORBUS_COLORBUS_H +#define MAME_BUS_TI99_COLORBUS_COLORBUS_H + +#pragma once + +#include "video/v9938.h" + +DECLARE_DEVICE_TYPE(TI99_COLORBUS, ti99_colorbus_device) + +/******************************************************************** + Common parent class of all devices attached to the color bus +********************************************************************/ +class device_ti99_colorbus_interface : public device_slot_card_interface +{ +public: + virtual void poll(int& delta_x, int& delta_y, int& buttons) = 0; + +protected: + using device_slot_card_interface::device_slot_card_interface; + + virtual void interface_config_complete() override; + ti99_colorbus_device* m_colorbus = nullptr; +}; + +/******************************************************************** + Color bus port +********************************************************************/ +class ti99_colorbus_device : public device_t, public device_slot_interface +{ +public: + ti99_colorbus_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + line_state left_button(); // left button is not connected to the V9938 but to a TMS9901 pin + void poll(); + +protected: + void device_start() override { } + void device_config_complete() override; + +private: + device_ti99_colorbus_interface* m_connected; + required_device m_v9938; + bool m_left_button_pressed; +}; + +SLOT_INTERFACE_EXTERN(ti99_colorbus_port); + +#define MCFG_COLORBUS_MOUSE_ADD( _tag ) \ + MCFG_DEVICE_ADD(_tag, TI99_COLORBUS, 0) \ + MCFG_DEVICE_SLOT_INTERFACE(ti99_colorbus_port, "busmouse", false) + +#endif // MAME_BUS_TI99_COLORBUS_COLORBUS_H diff --git a/src/devices/bus/ti99/joyport/handset.cpp b/src/devices/bus/ti99/joyport/handset.cpp new file mode 100644 index 00000000000..8e2833e2c84 --- /dev/null +++ b/src/devices/bus/ti99/joyport/handset.cpp @@ -0,0 +1,538 @@ +// license:LGPL-2.1+ +// copyright-holders:Michael Zapf +/**************************************************************************** + + TI-99/4 Handset support (TI99/4 only) + + The ti99/4 was intended to support some so-called "IR remote handsets". + This feature was canceled at the last minute (reportedly ten minutes before + the introductory press conference in June 1979), but the first thousands of + 99/4 units had the required port, and the support code was seemingly not + deleted from ROMs until the introduction of the ti99/4a in 1981. You could + connect up to 4 20-key keypads, and up to 4 joysticks with a maximum + resolution of 15 levels on each axis. + + The keyboard DSR was able to couple two 20-key keypads together to emulate + a full 40-key keyboard. Keyboard modes 0, 1 and 2 would select either the + console keyboard with its two wired remote controllers (i.e. joysticks), or + remote handsets 1 and 2 with their associated IR remote controllers (i.e. + joysticks), according to which was currently active. + + Originally written by R. Nabet + + ************************************************** + + TI-99/4(A) Twin Joystick + + This file also contains the implementation of the twin joystick; + actually, no big deal, as it contains no logic but only switches. + + ************************************************** + + Michael Zapf + 2010-10-24 Rewriten as device + + January 2012: Rewritten as class + +*****************************************************************************/ + +#include "emu.h" +#include "handset.h" +#include "machine/tms9901.h" + +#define LOG logerror +#define VERBOSE 1 + +static const char *const joynames[2][4] = +{ + { "JOY0", "JOY2", "JOY4", "JOY6" }, // X axis + { "JOY1", "JOY3", "JOY5", "JOY7" } // Y axis +}; + +static const char *const keynames[] = { "KP0", "KP1", "KP2", "KP3", "KP4" }; + +ti99_handset_device::ti99_handset_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, TI99_HANDSET, tag, owner, clock), device_ti99_joyport_interface(mconfig, *this), m_ack(0), m_clock_high(false), m_buf(0), m_buflen(0), m_delay_timer(nullptr) +{ +} + +#define POLL_TIMER 1 +#define DELAY_TIMER 2 + +/*****************************************************************************/ + +/* + Return the status of the handset via the joystick port. + B = bus + C = clock + I = int (neg logic) + + answer = |0|I|C|1|B|B|B|B| +*/ +uint8_t ti99_handset_device::read_dev() +{ + return (m_buf & 0xf) | 0x10 | (m_clock_high? 0x20:0) | ( m_buflen==3? 0x00:0x40); +} + +void ti99_handset_device::write_dev(uint8_t data) +{ + if (VERBOSE>7) LOG("ti99_handset_device: Set ack %d\n", data); + set_acknowledge(data); +} + +/* + Handle data acknowledge sent by the ti-99/4 handset ISR (through tms9901 + line P0). This function is called by a delayed timer 30us after the state + of P0 is changed, because, in one occasion, the ISR asserts the line before + it reads the data, so we need to delay the acknowledge process. +*/ +void ti99_handset_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) +{ + m_clock_high = !m_clock_high; + m_buf >>= 4; + m_buflen--; + + // Clear the INT12 line + m_joyport->set_interrupt(CLEAR_LINE); + + if (m_buflen == 1) + { + // Unless I am missing something, the third and last nibble of the + // message is not acknowledged by the DSR in any way, and the first nibble + // of next message is not requested for either, so we need to decide on + // our own when we can post a new event. Currently, we wait for 1000us + // after the DSR acknowledges the second nybble. + m_delay_timer->adjust(attotime::from_usec(1000)); + } + + if (m_buflen == 0) + /* See if we need to post a new event */ + do_task(); +} + +/* + Handler for tms9901 P0 pin (handset data acknowledge) +*/ +void ti99_handset_device::set_acknowledge(int data) +{ + if ((m_buflen !=0) && (data != m_ack)) + { + m_ack = data; + if ((data!=0) == m_clock_high) + { + // I don't know what the real delay is, but 30us apears to be enough + m_delay_timer->adjust(attotime::from_usec(30)); + } + } +} + +/* + post_message() + + Post a 12-bit message: trigger an interrupt on the tms9901, and store the + message in the I/R receiver buffer so that the handset ISR will read this + message. + + message: 12-bit message to post (only the 12 LSBits are meaningful) +*/ +void ti99_handset_device::post_message(int message) +{ + /* post message and assert interrupt */ + m_clock_high = true; + m_buf = ~message; + m_buflen = 3; + if (VERBOSE>5) LOG("ti99_handset_device: trigger interrupt\n"); + m_joyport->set_interrupt(ASSERT_LINE); +} + +/* + poll_keyboard() + Poll the current state of one given handset keypad. + num: number of the keypad to poll (0-3) + Returns true if the handset state has changed and a message was posted. +*/ +bool ti99_handset_device::poll_keyboard(int num) +{ + uint32_t key_buf; + uint8_t current_key; + int i; + + /* read current key state */ + key_buf = (ioport(keynames[num])->read() | (ioport(keynames[num + 1])->read() << 16) ) >> (4*num); + + // If a key was previously pressed, this key was not shift, and this key is + // still down, then don't change the current key press. + if (previous_key[num] !=0 && (previous_key[num] != 0x24) + && (key_buf & (1 << (previous_key[num] & 0x1f)))) + { + /* check the shift modifier state */ + if (((previous_key[num] & 0x20) != 0) == ((key_buf & 0x0008) != 0)) + /* the shift modifier state has not changed */ + return false; + else + { + // The shift modifier state has changed: we need to update the + // keyboard state + if (key_buf & 0x0008) + { /* shift has been pressed down */ + previous_key[num] = current_key = previous_key[num] | 0x20; + } + else + { + previous_key[num] = current_key = previous_key[num] & ~0x20; + } + /* post message */ + post_message((((unsigned)current_key) << 4) | (num << 1)); + return true; + } + } + + current_key = 0; /* default value if no key is down */ + for (i=0; i<20; i++) + { + if (key_buf & (1 << i)) + { + current_key = i + 1; + if (key_buf & 0x0008) + current_key |= 0x20; /* set shift flag */ + + if (current_key != 0x24) + // If this is the shift key, any other key we may find will + // have higher priority; otherwise, we may exit the loop and keep + // the key we have just found. + break; + } + } + + if (current_key != previous_key[num]) + { + previous_key[num] = current_key; + + /* post message */ + post_message((((unsigned) current_key) << 4) | (num << 1)); + return true; + } + return false; +} + +/* + poll_joystick() + + Poll the current state of one given handset joystick. + num: number of the joystick to poll (0-3) + Returns true if the handset state has changed and a message was posted. +*/ +bool ti99_handset_device::poll_joystick(int num) +{ + uint8_t current_joy; + int current_joy_x, current_joy_y; + int message; + /* read joystick position */ + current_joy_x = ioport(joynames[0][num])->read(); + current_joy_y = ioport(joynames[1][num])->read(); + + /* compare with last saved position */ + current_joy = current_joy_x | (current_joy_y << 4); + if (current_joy != previous_joy[num]) + { + /* save position */ + previous_joy[num] = current_joy; + + /* transform position to signed quantity */ + current_joy_x -= 7; + current_joy_y -= 7; + + message = 0; + + /* set sign */ + // note that we set the sign if the joystick position is 0 to work + // around a bug in the ti99/4 ROMs + if (current_joy_x <= 0) + { + message |= 0x040; + current_joy_x = - current_joy_x; + } + + if (current_joy_y <= 0) + { + message |= 0x400; + current_joy_y = - current_joy_y; + } + + /* convert absolute values to Gray code and insert in message */ + if (current_joy_x & 4) + current_joy_x ^= 3; + if (current_joy_x & 2) + current_joy_x ^= 1; + message |= current_joy_x << 3; + + if (current_joy_y & 4) + current_joy_y ^= 3; + if (current_joy_y & 2) + current_joy_y ^= 1; + message |= current_joy_y << 7; + + /* set joystick address */ + message |= (num << 1) | 0x1; + + /* post message */ + post_message(message); + return true; + } + return false; +} + +/* + ti99_handset_task() + Manage handsets, posting an event if the state of any handset has changed. +*/ +void ti99_handset_device::do_task() +{ + int i; + + if (m_buflen == 0) + { + /* poll every handset */ + for (i=0; i < MAX_HANDSETS; i++) + if (poll_joystick(i)==true) return; + for (i=0; i < MAX_HANDSETS; i++) + if (poll_keyboard(i)==true) return; + } + else if (m_buflen == 3) + { /* update messages after they have been posted */ + if (m_buf & 1) + { /* keyboard */ + poll_keyboard((~(m_buf >> 1)) & 0x3); + } + else + { /* joystick */ + poll_joystick((~(m_buf >> 1)) & 0x3); + } + } +} + +void ti99_handset_device::pulse_clock() +{ + logerror("handset: pulse_clock\n"); + do_task(); +} + +void ti99_handset_device::device_start() +{ + m_delay_timer = timer_alloc(DELAY_TIMER); + save_item(NAME(m_ack)); + save_item(NAME(m_clock_high)); + save_item(NAME(m_buf)); + save_item(NAME(m_buflen)); + save_pointer(NAME(previous_joy), MAX_HANDSETS); + save_pointer(NAME(previous_key), MAX_HANDSETS); +} + +void ti99_handset_device::device_reset() +{ + if (VERBOSE>5) LOG("ti99_handset_device: Reset\n"); + m_delay_timer->enable(true); + m_buf = 0; + m_buflen = 0; + m_clock_high = false; + m_ack = 0; +} + +#define JOYSTICK_DELTA 10 +#define JOYSTICK_SENSITIVITY 100 + +INPUT_PORTS_START( handset ) + /* 13 pseudo-ports for IR remote handsets */ + + /* 8 pseudo-ports for the 4 IR joysticks */ + PORT_START("JOY0") /* joystick 1, X axis */ + PORT_BIT( 0xf, 0x7, IPT_AD_STICK_X) PORT_SENSITIVITY(JOYSTICK_SENSITIVITY) PORT_KEYDELTA(JOYSTICK_DELTA) PORT_MINMAX(0,0xe) PORT_PLAYER(1) + + PORT_START("JOY1") /* joystick 1, Y axis */ + PORT_BIT( 0xf, 0x7, IPT_AD_STICK_Y) PORT_SENSITIVITY(JOYSTICK_SENSITIVITY) PORT_KEYDELTA(JOYSTICK_DELTA) PORT_MINMAX(0,0xe) PORT_PLAYER(1) PORT_REVERSE + + PORT_START("JOY2") /* joystick 2, X axis */ + PORT_BIT( 0xf, 0x7, IPT_AD_STICK_X) PORT_SENSITIVITY(JOYSTICK_SENSITIVITY) PORT_KEYDELTA(JOYSTICK_DELTA) PORT_MINMAX(0,0xe) PORT_PLAYER(2) + + PORT_START("JOY3") /* joystick 2, Y axis */ + PORT_BIT( 0xf, 0x7, IPT_AD_STICK_Y) PORT_SENSITIVITY(JOYSTICK_SENSITIVITY) PORT_KEYDELTA(JOYSTICK_DELTA) PORT_MINMAX(0,0xe) PORT_PLAYER(2) PORT_REVERSE + + PORT_START("JOY4") /* joystick 3, X axis */ + PORT_BIT( 0xf, 0x7, IPT_AD_STICK_X) PORT_SENSITIVITY(JOYSTICK_SENSITIVITY) PORT_KEYDELTA(JOYSTICK_DELTA) PORT_MINMAX(0,0xe) PORT_PLAYER(3) + + PORT_START("JOY5") /* joystick 3, Y axis */ + PORT_BIT( 0xf, 0x7, IPT_AD_STICK_Y) PORT_SENSITIVITY(JOYSTICK_SENSITIVITY) PORT_KEYDELTA(JOYSTICK_DELTA) PORT_MINMAX(0,0xe) PORT_PLAYER(3) PORT_REVERSE + + PORT_START("JOY6") /* joystick 4, X axis */ + PORT_BIT( 0xf, 0x7, IPT_AD_STICK_X) PORT_SENSITIVITY(JOYSTICK_SENSITIVITY) PORT_KEYDELTA(JOYSTICK_DELTA) PORT_MINMAX(0,0xe) PORT_PLAYER(4) + + PORT_START("JOY7") /* joystick 4, Y axis */ + PORT_BIT( 0xf, 0x7, IPT_AD_STICK_Y) PORT_SENSITIVITY(JOYSTICK_SENSITIVITY) PORT_KEYDELTA(JOYSTICK_DELTA) PORT_MINMAX(0,0xe) PORT_PLAYER(4) PORT_REVERSE + + /* 5 pseudo-ports for the 4 IR remote keypads */ + PORT_START("KP0") /* keypad 1, keys 1 to 16 */ + PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1: CLR") PORT_CODE(KEYCODE_1) PORT_PLAYER(1) + PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1: GO") PORT_CODE(KEYCODE_Q) PORT_PLAYER(1) + PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1: SET") PORT_CODE(KEYCODE_SPACE) PORT_PLAYER(1) + PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1: NEXT") PORT_CODE(KEYCODE_LSHIFT) PORT_PLAYER(1) + PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1: 7") PORT_CODE(KEYCODE_2) PORT_PLAYER(1) + PORT_BIT(0x0020, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1: 4") PORT_CODE(KEYCODE_W) PORT_PLAYER(1) + PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1: 1") PORT_CODE(KEYCODE_A) PORT_PLAYER(1) + PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1: STOP") PORT_CODE(KEYCODE_Z) PORT_PLAYER(1) + PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1: 8") PORT_CODE(KEYCODE_3) PORT_PLAYER(1) + PORT_BIT(0x0200, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1: 5") PORT_CODE(KEYCODE_E) PORT_PLAYER(1) + PORT_BIT(0x0400, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1: 2") PORT_CODE(KEYCODE_S) PORT_PLAYER(1) + PORT_BIT(0x0800, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1: 0") PORT_CODE(KEYCODE_X) PORT_PLAYER(1) + PORT_BIT(0x1000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1: 9") PORT_CODE(KEYCODE_4) PORT_PLAYER(1) + PORT_BIT(0x2000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1: 6") PORT_CODE(KEYCODE_R) PORT_PLAYER(1) + PORT_BIT(0x4000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1: 3") PORT_CODE(KEYCODE_D) PORT_PLAYER(1) + PORT_BIT(0x8000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1: E =") PORT_CODE(KEYCODE_C) PORT_PLAYER(1) + + PORT_START("KP1") /* keypad 1, keys 17 to 20 */ + PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1: (div)") PORT_CODE(KEYCODE_5) PORT_PLAYER(1) + PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1: (mul)") PORT_CODE(KEYCODE_T) PORT_PLAYER(1) + PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1: NO -") PORT_CODE(KEYCODE_F) PORT_PLAYER(1) + PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1: YES +") PORT_CODE(KEYCODE_V) PORT_PLAYER(1) + /* keypad 2, keys 1 to 12 */ + PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2: CLR") PORT_CODE(KEYCODE_6) PORT_PLAYER(2) + PORT_BIT(0x0020, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2: GO") PORT_CODE(KEYCODE_Y) PORT_PLAYER(2) + PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2: SET") PORT_CODE(KEYCODE_G) PORT_PLAYER(2) + PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2: NEXT") PORT_CODE(KEYCODE_B) PORT_PLAYER(2) + PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2: 7") PORT_CODE(KEYCODE_7) PORT_PLAYER(2) + PORT_BIT(0x0200, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2: 4") PORT_CODE(KEYCODE_U) PORT_PLAYER(2) + PORT_BIT(0x0400, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2: 1") PORT_CODE(KEYCODE_H) PORT_PLAYER(2) + PORT_BIT(0x0800, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2: STOP") PORT_CODE(KEYCODE_N) PORT_PLAYER(2) + PORT_BIT(0x1000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2: 8") PORT_CODE(KEYCODE_8) PORT_PLAYER(2) + PORT_BIT(0x2000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2: 5") PORT_CODE(KEYCODE_I) PORT_PLAYER(2) + PORT_BIT(0x4000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2: 2") PORT_CODE(KEYCODE_J) PORT_PLAYER(2) + PORT_BIT(0x8000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2: 0") PORT_CODE(KEYCODE_M) PORT_PLAYER(2) + + PORT_START("KP2") /* keypad 2, keys 13 to 20 */ + PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2: 9") PORT_CODE(KEYCODE_9) PORT_PLAYER(2) + PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2: 6") PORT_CODE(KEYCODE_O) PORT_PLAYER(2) + PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2: 3") PORT_CODE(KEYCODE_K) PORT_PLAYER(2) + PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2: E =") PORT_CODE(KEYCODE_STOP) PORT_PLAYER(2) + PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2: (div)") PORT_CODE(KEYCODE_0) PORT_PLAYER(2) + PORT_BIT(0x0020, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2: (mul)") PORT_CODE(KEYCODE_P) PORT_PLAYER(2) + PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2: NO -") PORT_CODE(KEYCODE_L) PORT_PLAYER(2) + PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2: YES +") PORT_CODE(KEYCODE_ENTER) PORT_PLAYER(2) + /* keypad 3, keys 1 to 8 */ + PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3: CLR") PORT_CODE(KEYCODE_1) PORT_PLAYER(3) + PORT_BIT(0x0200, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3: GO") PORT_CODE(KEYCODE_Q) PORT_PLAYER(3) + PORT_BIT(0x0400, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3: SET") PORT_CODE(KEYCODE_SPACE) PORT_PLAYER(3) + PORT_BIT(0x0800, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3: NEXT") PORT_CODE(KEYCODE_LSHIFT) PORT_PLAYER(3) + PORT_BIT(0x1000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3: 7") PORT_CODE(KEYCODE_2) PORT_PLAYER(3) + PORT_BIT(0x2000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3: 4") PORT_CODE(KEYCODE_W) PORT_PLAYER(3) + PORT_BIT(0x4000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3: 1") PORT_CODE(KEYCODE_A) PORT_PLAYER(3) + PORT_BIT(0x8000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3: STOP") PORT_CODE(KEYCODE_Z) PORT_PLAYER(3) + + PORT_START("KP3") /* keypad 3, keys 9 to 20 */ + PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3: 8") PORT_CODE(KEYCODE_3) PORT_PLAYER(3) + PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3: 5") PORT_CODE(KEYCODE_E) PORT_PLAYER(3) + PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3: 2") PORT_CODE(KEYCODE_S) PORT_PLAYER(3) + PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3: 0") PORT_CODE(KEYCODE_X) PORT_PLAYER(3) + PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3: 9") PORT_CODE(KEYCODE_4) PORT_PLAYER(3) + PORT_BIT(0x0020, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3: 6") PORT_CODE(KEYCODE_R) PORT_PLAYER(3) + PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3: 3") PORT_CODE(KEYCODE_D) PORT_PLAYER(3) + PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3: E =") PORT_CODE(KEYCODE_C) PORT_PLAYER(3) + PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3: (div)") PORT_CODE(KEYCODE_5) PORT_PLAYER(3) + PORT_BIT(0x0200, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3: (mul)") PORT_CODE(KEYCODE_T) PORT_PLAYER(3) + PORT_BIT(0x0400, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3: NO -") PORT_CODE(KEYCODE_F) PORT_PLAYER(3) + PORT_BIT(0x0800, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3: YES +") PORT_CODE(KEYCODE_V) PORT_PLAYER(3) + /* keypad 4, keys 1 to 4 */ + PORT_BIT(0x1000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4: CLR") PORT_CODE(KEYCODE_6) PORT_PLAYER(4) + PORT_BIT(0x2000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4: GO") PORT_CODE(KEYCODE_Y) PORT_PLAYER(4) + PORT_BIT(0x4000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4: SET") PORT_CODE(KEYCODE_G) PORT_PLAYER(4) + PORT_BIT(0x8000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4: NEXT") PORT_CODE(KEYCODE_B) PORT_PLAYER(4) + + PORT_START("KP4") /* keypad 4, keys 5 to 20 */ + PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4: 7") PORT_CODE(KEYCODE_7) PORT_PLAYER(4) + PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4: 4") PORT_CODE(KEYCODE_U) PORT_PLAYER(4) + PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4: 1") PORT_CODE(KEYCODE_H) PORT_PLAYER(4) + PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4: STOP") PORT_CODE(KEYCODE_N) PORT_PLAYER(4) + PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4: 8") PORT_CODE(KEYCODE_8) PORT_PLAYER(4) + PORT_BIT(0x0020, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4: 5") PORT_CODE(KEYCODE_I) PORT_PLAYER(4) + PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4: 2") PORT_CODE(KEYCODE_J) PORT_PLAYER(4) + PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4: 0") PORT_CODE(KEYCODE_M) PORT_PLAYER(4) + PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4: 9") PORT_CODE(KEYCODE_9) PORT_PLAYER(4) + PORT_BIT(0x0200, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4: 6") PORT_CODE(KEYCODE_O) PORT_PLAYER(4) + PORT_BIT(0x0400, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4: 3") PORT_CODE(KEYCODE_K) PORT_PLAYER(4) + PORT_BIT(0x0800, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4: E =") PORT_CODE(KEYCODE_STOP) PORT_PLAYER(4) + PORT_BIT(0x1000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4: (div)") PORT_CODE(KEYCODE_0) PORT_PLAYER(4) + PORT_BIT(0x2000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4: (mul)") PORT_CODE(KEYCODE_P) PORT_PLAYER(4) + PORT_BIT(0x4000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4: NO -") PORT_CODE(KEYCODE_L) PORT_PLAYER(4) + PORT_BIT(0x8000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4: YES +") PORT_CODE(KEYCODE_ENTER) PORT_PLAYER(4) +INPUT_PORTS_END + +ioport_constructor ti99_handset_device::device_input_ports() const +{ + return INPUT_PORTS_NAME( handset ); +} + +DEFINE_DEVICE_TYPE(TI99_HANDSET, ti99_handset_device, "ti99_handset", "TI-99/4 IR handset") + +/****************************************************************************** + Twin Joystick +******************************************************************************/ + +/* col 6: "wired handset 1" (= joystick 1) */ +/* col 7: "wired handset 2" (= joystick 2) */ + +INPUT_PORTS_START( joysticks ) + PORT_START("JOY1") + PORT_BIT(0xE0, IP_ACTIVE_LOW, IPT_UNUSED) + PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP/*, "(1UP)", CODE_NONE, OSD_JOY_UP*/) PORT_PLAYER(1) + PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN/*, "(1DOWN)", CODE_NONE, OSD_JOY_DOWN, 0*/) PORT_PLAYER(1) + PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT/*, "(1RIGHT)", CODE_NONE, OSD_JOY_RIGHT, 0*/) PORT_PLAYER(1) + PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT/*, "(1LEFT)", CODE_NONE, OSD_JOY_LEFT, 0*/) PORT_PLAYER(1) + PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_BUTTON1/*, "(1FIRE)", CODE_NONE, OSD_JOY_FIRE, 0*/) PORT_PLAYER(1) + + PORT_START("JOY2") + PORT_BIT(0xE0, IP_ACTIVE_LOW, IPT_UNUSED) + PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP/*, "(2UP)", CODE_NONE, OSD_JOY2_UP, 0*/) PORT_PLAYER(2) + PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN/*, "(2DOWN)", CODE_NONE, OSD_JOY2_DOWN, 0*/) PORT_PLAYER(2) + PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT/*, "(2RIGHT)", CODE_NONE, OSD_JOY2_RIGHT, 0*/) PORT_PLAYER(2) + PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT/*, "(2LEFT)", CODE_NONE, OSD_JOY2_LEFT, 0*/) PORT_PLAYER(2) + PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_BUTTON1/*, "(2FIRE)", CODE_NONE, OSD_JOY2_FIRE, 0*/) PORT_PLAYER(2) +INPUT_PORTS_END + +ti99_twin_joystick_device::ti99_twin_joystick_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, TI99_JOYSTICK, tag, owner, clock), device_ti99_joyport_interface(mconfig, *this), m_joystick(0) +{ +} + +void ti99_twin_joystick_device::device_start() +{ + save_item(NAME(m_joystick)); +} + +/* + Return the status of the joysticks. + + answer = |0|0|0|U|D|R|L|B| +*/ +uint8_t ti99_twin_joystick_device::read_dev() +{ + uint8_t value; + if (m_joystick==1) value = ioport("JOY1")->read(); + else + { + if (m_joystick==2) value = ioport("JOY2")->read(); + else value = 0xff; + } + if (VERBOSE>6) LOG("ti99_twin_joystick_device: joy%d = %02x\n", m_joystick, value); + return value; +} + +void ti99_twin_joystick_device::write_dev(uint8_t data) +{ + if (VERBOSE>7) LOG("ti99_twin_joystick_device: Select joystick %d\n", data); + m_joystick = data & 0x03; +} + +ioport_constructor ti99_twin_joystick_device::device_input_ports() const +{ + return INPUT_PORTS_NAME( joysticks ); +} + +DEFINE_DEVICE_TYPE(TI99_JOYSTICK, ti99_twin_joystick_device, "ti99_twinjoy", "TI-99/4(A) Twin Joysticks") diff --git a/src/devices/bus/ti99/joyport/handset.h b/src/devices/bus/ti99/joyport/handset.h new file mode 100644 index 00000000000..043c426e50c --- /dev/null +++ b/src/devices/bus/ti99/joyport/handset.h @@ -0,0 +1,86 @@ +// license:LGPL-2.1+ +// copyright-holders:Michael Zapf +/**************************************************************************** + + TI-99/4 handset + See handset.c for documentation. + + This file also contains the implementation of the twin joystick; + actually, no big deal, as it contains no logic but only switches. + + Michael Zapf, October 2010 + February 2012: Rewritten as class + June 2012: Added joystick + +*****************************************************************************/ + +#ifndef MAME_BUS_TI99_JOYPORT_HANDSET_H +#define MAME_BUS_TI99_JOYPORT_HANDSET_H + +#pragma once + +#include "joyport.h" + +DECLARE_DEVICE_TYPE(TI99_HANDSET, ti99_handset_device) + +class ti99_handset_device : public device_t, public device_ti99_joyport_interface +{ +public: + ti99_handset_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + + uint8_t read_dev() override; + void write_dev(uint8_t data) override; + + void pulse_clock() override; + +protected: + virtual void device_start() override; + virtual void device_reset() override; + virtual ioport_constructor device_input_ports() const override; + + virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + +private: + static constexpr unsigned MAX_HANDSETS = 4; + + void do_task(); + void post_message(int message); + bool poll_keyboard(int num); + bool poll_joystick(int num); + void set_acknowledge(int data); + + int m_ack; + bool m_clock_high; + int m_buf; + int m_buflen; + uint8_t previous_joy[MAX_HANDSETS]; + uint8_t previous_key[MAX_HANDSETS]; + + emu_timer *m_delay_timer; +}; + +/****************************************************************************/ + +DECLARE_DEVICE_TYPE(TI99_JOYSTICK, ti99_twin_joystick_device) + +class ti99_twin_joystick_device : public device_t, public device_ti99_joyport_interface +{ +public: + ti99_twin_joystick_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; + + uint8_t read_dev() override; + void write_dev(uint8_t data) override; + +protected: + virtual ioport_constructor device_input_ports() const override; + +private: + // Which joystick is selected? + // In reality this is no latch but GND is put on one of the selector lines + // and then routed back to the port via the joystick + int m_joystick; +}; + + +#endif // MAME_BUS_TI99_JOYPORT_HANDSET_H diff --git a/src/devices/bus/ti99/joyport/joyport.cpp b/src/devices/bus/ti99/joyport/joyport.cpp new file mode 100644 index 00000000000..d41a005258c --- /dev/null +++ b/src/devices/bus/ti99/joyport/joyport.cpp @@ -0,0 +1,116 @@ +// license:LGPL-2.1+ +// copyright-holders:Michael Zapf +/**************************************************************************** + + Joystick port + + Now explicitly implemented as a slot device + A joystick port allows for plugging in digital devices like joysticks or + a Mechatronics mouse, and the TI-99/4 (prototype) also offered IR handsets + driven over this port. The 99/4 had an additional line for triggering an + interrupt. + + +-----------+ + | 1 2 3 4 5 | + \ 6 7 8 9 / + +-------+ + + Getting the joystick directions and button is pretty simple: The TMS9901 in + the TI console lowers the select line, and the joystick shorts a line for + the respective action. The lines go back to the inputs of the TMS9901. + + pin 1 nc + 2 select joystick 2 + 3 up + 4 button + 5 left + 6 nc + 7 select joystick 1 + 8 down + 9 right + + Michael Zapf + + June 2012 + +*****************************************************************************/ + +#include "emu.h" +#include "joyport.h" +#include "handset.h" +#include "mecmouse.h" + +ti99_joyport_device::ti99_joyport_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, TI99_JOYPORT, tag, owner, clock), + device_slot_interface(mconfig, *this), + m_interrupt(*this), m_connected(nullptr) +{ +} + +/* + Reads a value from the port. +*/ +uint8_t ti99_joyport_device::read_port() +{ + return m_connected->read_dev(); +} + +/* + This is used to select the device at the port. The device should keep this + value until read() is called. +*/ +void ti99_joyport_device::write_port(int data) +{ + m_connected->write_dev(data); +} + +/* + This is only used for the handset device of the TI-99/4. It is driven by the VDP interrupt. +*/ +void ti99_joyport_device::pulse_clock() +{ + m_connected->pulse_clock(); +} + +/* + Propagate the interrupt to the defined target. Only used for the handset + at the prototype 99/4. +*/ +WRITE_LINE_MEMBER( ti99_joyport_device::set_interrupt ) +{ + m_interrupt(state); +} + +void ti99_joyport_device::device_start() +{ + m_interrupt.resolve(); +} + +void ti99_joyport_device::device_config_complete() +{ + m_connected = dynamic_cast(subdevices().first()); +} + +/*****************************************************************************/ + +void device_ti99_joyport_interface::interface_config_complete() +{ + m_joyport = downcast(device().owner()); +} + +SLOT_INTERFACE_START( ti99_joystick_port ) + SLOT_INTERFACE("twinjoy", TI99_JOYSTICK) + SLOT_INTERFACE("mecmouse", TI99_MECMOUSE) +SLOT_INTERFACE_END + +SLOT_INTERFACE_START( ti99_joystick_port_gen ) + SLOT_INTERFACE("twinjoy", TI99_JOYSTICK) +SLOT_INTERFACE_END + +SLOT_INTERFACE_START( ti99_joystick_port_994 ) + SLOT_INTERFACE("twinjoy", TI99_JOYSTICK) + SLOT_INTERFACE("mecmouse", TI99_MECMOUSE) + SLOT_INTERFACE("handset", TI99_HANDSET) +SLOT_INTERFACE_END + +DEFINE_DEVICE_TYPE(TI99_JOYPORT, ti99_joyport_device, "ti99_joyport", "TI-99 Joystick port") diff --git a/src/devices/bus/ti99/joyport/joyport.h b/src/devices/bus/ti99/joyport/joyport.h new file mode 100644 index 00000000000..789732ec1dd --- /dev/null +++ b/src/devices/bus/ti99/joyport/joyport.h @@ -0,0 +1,87 @@ +// license:LGPL-2.1+ +// copyright-holders:Michael Zapf +/**************************************************************************** + + Joystick port + + Now explicitly implemented as a slot device + A joystick port allows for plugging in a single or twin joystick, or + a Mechatronics mouse. + + The TI-99/4 also offers an infrared handset, connected to this port. For + this reason we also need an interrupt line. + + Michael Zapf + + June 2012 + +*****************************************************************************/ + +#ifndef MAME_BUS_TI99_JOYPORT_JOYPORT_H +#define MAME_BUS_TI99_JOYPORT_JOYPORT_H + +#pragma once + + +DECLARE_DEVICE_TYPE(TI99_JOYPORT, ti99_joyport_device) + +/******************************************************************** + Common parent class of all devices attached to the joystick port +********************************************************************/ +class device_ti99_joyport_interface : public device_slot_card_interface +{ +public: + virtual uint8_t read_dev() = 0; + virtual void write_dev(uint8_t data) = 0; + virtual void pulse_clock() { } + +protected: + using device_slot_card_interface::device_slot_card_interface; + + virtual void interface_config_complete() override; + ti99_joyport_device* m_joyport = nullptr; +}; + +/******************************************************************** + Joystick port +********************************************************************/ +class ti99_joyport_device : public device_t, public device_slot_interface +{ +public: + ti99_joyport_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + uint8_t read_port(); + void write_port(int data); + void set_interrupt(int state); + void pulse_clock(); + + template static devcb_base &static_set_int_callback(device_t &device, Object &&cb) { return downcast(device).m_interrupt.set_callback(std::forward(cb)); } + +protected: + void device_start() override; + void device_config_complete() override; + +private: + devcb_write_line m_interrupt; + device_ti99_joyport_interface* m_connected; +}; + +SLOT_INTERFACE_EXTERN(ti99_joystick_port); +SLOT_INTERFACE_EXTERN(ti99_joystick_port_994); +SLOT_INTERFACE_EXTERN(ti99_joystick_port_gen); + +#define MCFG_JOYPORT_INT_HANDLER( _intcallb ) \ + devcb = &ti99_joyport_device::static_set_int_callback( *device, DEVCB_##_intcallb ); + +#define MCFG_GENEVE_JOYPORT_ADD( _tag ) \ + MCFG_DEVICE_ADD(_tag, TI99_JOYPORT, 0) \ + MCFG_DEVICE_SLOT_INTERFACE(ti99_joystick_port_gen, "twinjoy", false) + +#define MCFG_TI_JOYPORT4A_ADD( _tag ) \ + MCFG_DEVICE_ADD(_tag, TI99_JOYPORT, 0) \ + MCFG_DEVICE_SLOT_INTERFACE(ti99_joystick_port, "twinjoy", false) + +#define MCFG_TI_JOYPORT4_ADD( _tag ) \ + MCFG_DEVICE_ADD(_tag, TI99_JOYPORT, 0) \ + MCFG_DEVICE_SLOT_INTERFACE(ti99_joystick_port_994, "twinjoy", false) + +#endif // MAME_BUS_TI99_JOYPORT_JOYPORT_H diff --git a/src/devices/bus/ti99/joyport/mecmouse.cpp b/src/devices/bus/ti99/joyport/mecmouse.cpp new file mode 100644 index 00000000000..75466df7844 --- /dev/null +++ b/src/devices/bus/ti99/joyport/mecmouse.cpp @@ -0,0 +1,207 @@ +// license:LGPL-2.1+ +// copyright-holders:Michael Zapf +/**************************************************************************** + + TI-99 Mechatronic mouse with adapter + + The Mechatronic mouse is connected to the joystick port and occupies + both joystick select lines and the switch lines. From these five + lines, left/right/down are used for the motion (i.e. 3 motion steps + for positive and four for negative motion and one for rest), + the fire line is used for the secondary mouse button, and the up + line is used for the primary button. + The mouse motion is delivered by the same lines for both directions; + this requires swapping the axes. According to the source code of + the accompanying mouse driver, the readout of the current axis is + done by selecting joystick 1, then joystick 2. The axis swapping is + achieved by selecting stick 1 again. When selecting stick 2, the + second axis is seen on the input lines. + Interrupting this sequence will lead to swapped axes. This is + prevented by resetting the toggle when the mouse is deselected + (neither 1 nor 2 are selected). + + The joystick lines are selected as follows: + TI-99/4: Stick 1: P4=1, P3=0, P2=1 (5) + Stick 2: P4=1, P3=1, P2=0 (6) + + TI-99/4A: Stick 1: P4=1, P3=1, P2=0 (6) + Stick 2: P4=1, P3=1, P2=1 (7) + + TI-99/8: Stick 1: P3=1, P2=1, P1=1, P0=0 (14) + Stick 2: P3=1, P2=1, P1=1, P0=1 (15) + + Geneve: n/a, has own mouse handling via v9938 + + As we can only deliver at max 3 steps positive and 4 steps negative, + we split the delta so that subsequent queries add up to the actual + delta. That is, one delta of +10 yields a 3+3+3+1. + + mecmouse_x holds the current delta to be counted down for x + (y accordingly) + + mecmouse_x_buf is the current step count reported to CRU + + Michael Zapf, 2008-01-22 + + 2010-10-22 Rewriten as device + February 2012: Rewritten as class + +*****************************************************************************/ + +#include "emu.h" +#include "mecmouse.h" + +#define POLL_TIMER 1 + +ti99_mecmouse_device::ti99_mecmouse_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, TI99_MECMOUSE, tag, owner, clock), device_ti99_joyport_interface(mconfig, *this), m_last_select(0), m_read_y_axis(false), m_x(0), m_y(0), m_x_buf(0), m_y_buf(0), m_last_mx(0), m_last_my(0), m_poll_timer(nullptr) +{ +} + + +uint8_t ti99_mecmouse_device::read_dev() +{ + int answer; + int buttons = ioport("MOUSE0")->read() & 3; + + answer = (m_read_y_axis? m_y_buf : m_x_buf) << 1; + + if ((buttons & 1)==0) + /* action button */ + answer |= 0x01; + if ((buttons & 2)==0) + /* home button */ + answer |= 0x10; + + // answer: |0|0|0|B2|V|V|V|B1| + + return answer; +} + +/* + Used to select lines. data = 0x01 (Joy1), 0x02 (Joy2) +*/ +void ti99_mecmouse_device::write_dev(uint8_t data) +{ + if (data == 0x02) { + if (m_last_select == 0x01) { + if (!m_read_y_axis) + { + /* Sample x motion. */ + if (m_x < -4) + m_x_buf = -4; + else if (m_x > 3) + m_x_buf = 3; + else + m_x_buf = m_x; + m_x -= m_x_buf; + m_x_buf = (m_x_buf-1) & 7; + } + else + { + /* Sample y motion. */ + if (m_y < -4) + m_y_buf = -4; + else if (m_y > 3) + m_y_buf = 3; + else + m_y_buf = m_y; + m_y -= m_y_buf; + m_y_buf = (m_y_buf-1) & 7; + } + } + m_last_select = data; + } + else if (data == 0x01) + { + if (m_last_select == 0x02) + { + /* Swap the axes. */ + m_read_y_axis = !m_read_y_axis; + } + m_last_select = data; + } + else + { + // Reset the axis toggle when the mouse is deselected + m_read_y_axis = false; + } +} + +void ti99_mecmouse_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) +{ + // Poll the movement + int new_mx, new_my; + int delta_x, delta_y; + + new_mx = ioport("MOUSEX")->read(); + new_my = ioport("MOUSEY")->read(); + + // compute x delta + delta_x = new_mx - m_last_mx; + + // Prevent unplausible values at startup. + if (delta_x > 10000 || delta_x<-10000) delta_x = 0; + + m_last_mx = new_mx; + + // compute y delta + delta_y = new_my - m_last_my; + + if (delta_y > 10000 || delta_y<-10000) delta_y = 0; + + m_last_my = new_my; + + // update state + m_x += delta_x; + m_y += delta_y; +} + +void ti99_mecmouse_device::device_start() +{ + m_poll_timer = timer_alloc(POLL_TIMER); + // The poll time cannot depend on the console settings, since the TI-99/4A + // has no clock line on the joystick port. The rate is not mentioned in + // the specs; however, if it is too low, the mouse pointer will do jumps + m_poll_timer->adjust(attotime::from_hz(100), 0, attotime::from_hz(100)); + + save_item(NAME(m_last_select)); + save_item(NAME(m_read_y_axis)); + save_item(NAME(m_x)); + save_item(NAME(m_y)); + save_item(NAME(m_x_buf)); + save_item(NAME(m_y_buf)); + save_item(NAME(m_last_mx)); + save_item(NAME(m_last_my)); +} + +void ti99_mecmouse_device::device_reset() +{ + m_poll_timer->enable(true); + m_last_select = 0; + m_read_y_axis = false; + m_x = 0; + m_y = 0; + m_last_mx = 0; + m_last_my = 0; +} + +INPUT_PORTS_START( mecmouse ) + /* 3 ports for mouse */ + PORT_START("MOUSEX") /* Mouse - X AXIS */ + PORT_BIT( 0xffff, 0x00, IPT_MOUSE_X) PORT_SENSITIVITY(50) PORT_KEYDELTA(0) PORT_PLAYER(1) + + PORT_START("MOUSEY") /* Mouse - Y AXIS */ + PORT_BIT( 0xffff, 0x00, IPT_MOUSE_Y) PORT_SENSITIVITY(50) PORT_KEYDELTA(0) PORT_PLAYER(1) + + PORT_START("MOUSE0") /* Mouse - buttons */ + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_NAME("Mouse Button 1") PORT_PLAYER(1) + PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_NAME("Mouse Button 2") PORT_PLAYER(1) +INPUT_PORTS_END + +ioport_constructor ti99_mecmouse_device::device_input_ports() const +{ + return INPUT_PORTS_NAME( mecmouse ); +} + +DEFINE_DEVICE_TYPE(TI99_MECMOUSE, ti99_mecmouse_device, "ti99_mecmouse", "TI-99 Mechatronics Mouse") diff --git a/src/devices/bus/ti99/joyport/mecmouse.h b/src/devices/bus/ti99/joyport/mecmouse.h new file mode 100644 index 00000000000..f73a86c5f53 --- /dev/null +++ b/src/devices/bus/ti99/joyport/mecmouse.h @@ -0,0 +1,48 @@ +// license:LGPL-2.1+ +// copyright-holders:Michael Zapf +/**************************************************************************** + + TI-99 Mechatronic mouse with adapter + See mecmouse.c for documentation + + Michael Zapf + October 2010 + January 2012: rewritten as class + +*****************************************************************************/ + +#ifndef MAME_BUS_TI99_JOYPORT_MECMOUSE_H +#define MAME_BUS_TI99_JOYPORT_MECMOUSE_H + +#include "joyport.h" + +DECLARE_DEVICE_TYPE(TI99_MECMOUSE, ti99_mecmouse_device) + +class ti99_mecmouse_device : public device_t, public device_ti99_joyport_interface +{ +public: + ti99_mecmouse_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + + uint8_t read_dev() override; + void write_dev(uint8_t data) override; + +protected: + virtual void device_start() override; + virtual void device_reset() override; + virtual ioport_constructor device_input_ports() const override; + virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + +private: + int m_last_select; + bool m_read_y_axis; + int m_x; + int m_y; + int m_x_buf; + int m_y_buf; + int m_last_mx; + int m_last_my; + + emu_timer *m_poll_timer; +}; + +#endif // MAME_BUS_TI99_JOYPORT_MECMOUSE_H diff --git a/src/devices/bus/ti99/peb/bwg.cpp b/src/devices/bus/ti99/peb/bwg.cpp new file mode 100644 index 00000000000..a7993501d2b --- /dev/null +++ b/src/devices/bus/ti99/peb/bwg.cpp @@ -0,0 +1,729 @@ +// license:LGPL-2.1+ +// copyright-holders:Michael Zapf +/******************************************************************************* + SNUG BwG Disk Controller + Based on WD1773 + Double Density, Double-sided + + * Supports Double Density. + * As this card includes its own RAM, it does not need to allocate a portion + of VDP RAM to store I/O buffers. + * Includes a MM58274C RTC. + * Support an additional floppy drive, for a total of 4 floppies. + + Reference: + * BwG Disketten-Controller: Beschreibung der DSR (Description of the DSR) + + + +------------------------+ + | 32 KiB EPROM | --- 1 of 4 pages--> 4000 +------------------+ + | | | DSR space | + +------------------------+ | (Driver) | + | 2 KiB RAM | --- 1 of 2 pages--> 5c00 +------------------+ + +------------------------+ | RAM buffer | + 5fe0 +------------------+ + | RTC or WD1773 | + 5fff +------------------+ + + Michael Zapf, September 2010 + January 2012: rewritten as class (MZ) + February 2014: rewritten for new floppy subsystem (MZ) + + Known issues (Feb 2014): + + - The BwG controller cannot run with the Geneve or other non-9900 computers. + The reason for that is the wait state logic. It assumes that when + executing MOVB @>5FF6,*R2, first a value from 5FF7 is attempted to be read, + just as the TI console does. In that case, wait states are inserted if + necessary. The Geneve, however, will try to read a single byte from 5FF6 + only and therefore circumvent the wait state generation. This is in fact + not an emulation glitch but the behavior of the real expansion card. + + +*******************************************************************************/ + +#include "emu.h" +#include "bwg.h" +#include "formats/ti99_dsk.h" + +// ---------------------------------- +// Flags for debugging + +// Show read and write accesses +#define TRACE_RW 0 + +// Show CRU bit accesses +#define TRACE_CRU 0 + +// Show ready line activity +#define TRACE_READY 0 + +// Show detailed signal activity +#define TRACE_SIGNALS 0 + +// Show sector data +#define TRACE_DATA 0 + +// Show address bus operations +#define TRACE_ADDRESS 0 + +// Show address bus operations +#define TRACE_MOTOR 0 + +// ---------------------------------- + +#define MOTOR_TIMER 1 +#define CLOCK_TAG "mm58274c" +#define FDC_TAG "wd1773" + +#define BUFFER "ram" + +/* + Modern implementation +*/ + +snug_bwg_device::snug_bwg_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : ti_expansion_card_device(mconfig, TI99_BWG, tag, owner, clock), + m_DRQ(), m_IRQ(), m_dip1(0), m_dip2(0), m_dip34(0), m_ram_page(0), + m_rom_page(0), m_WAITena(false), m_inDsrArea(false), m_WDsel(false), + m_WDsel0(false), m_RTCsel(false), m_lastK(false), m_dataregLB(false), + m_rtc_enabled(false), m_MOTOR_ON(), m_lastval(0), m_address(0), + m_DSEL(0), m_SIDSEL(), m_motor_on_timer(nullptr), m_dsrrom(nullptr), + m_buffer_ram(*this, BUFFER), m_current_floppy(nullptr), + m_wd1773(*this, FDC_TAG), + m_clock(*this, CLOCK_TAG) { } + +/* + Operate the wait state logic. +*/ +void snug_bwg_device::operate_ready_line() +{ + // This is the wait state logic + if (TRACE_SIGNALS) logerror("bwg: address=%04x, DRQ=%d, INTRQ=%d, MOTOR=%d\n", m_address & 0xffff, m_DRQ, m_IRQ, m_MOTOR_ON); + line_state nready = (m_dataregLB && // Are we accessing 5ff7 + m_WAITena && // and the wait state generation is active (SBO 2) + (m_DRQ==CLEAR_LINE) && // and we are waiting for a byte + (m_IRQ==CLEAR_LINE) && // and there is no interrupt yet + (m_MOTOR_ON==ASSERT_LINE) // and the motor is turning? + )? ASSERT_LINE : CLEAR_LINE; // In that case, clear READY and thus trigger wait states + + if (TRACE_READY) if (nready==ASSERT_LINE) logerror("bwg: READY line = %d\n", (nready==CLEAR_LINE)? 1:0); + m_slot->set_ready((nready==CLEAR_LINE)? ASSERT_LINE : CLEAR_LINE); +} + +/* + Callbacks from the WD1773 chip +*/ +WRITE_LINE_MEMBER( snug_bwg_device::fdc_irq_w ) +{ + if (TRACE_SIGNALS) logerror("bwg: set intrq = %d\n", state); + m_IRQ = (line_state)state; + // Unlike the TI FDC, the BwG does not set the INTB line. Anyway, no one cares. + // We need to explicitly set the READY line to release the datamux + operate_ready_line(); +} + +WRITE_LINE_MEMBER( snug_bwg_device::fdc_drq_w ) +{ + if (TRACE_SIGNALS) logerror("bwg: set drq = %d\n", state); + m_DRQ = (line_state)state; + + // We need to explicitly set the READY line to release the datamux + operate_ready_line(); +} + +SETADDRESS_DBIN_MEMBER( snug_bwg_device::setaddress_dbin ) +{ + // Do not allow setaddress for debugger + if (machine().side_effect_disabled()) return; + + // Selection login in the PAL and some circuits on the board + + // Is the card being selected? + m_address = offset; + m_inDsrArea = ((m_address & m_select_mask)==m_select_value); + + if (!m_inDsrArea) return; + + if (TRACE_ADDRESS) logerror("bwg: set address = %04x\n", offset & 0xffff); + + // Is the WD chip on the card being selected? + // We need the even and odd addresses for the wait state generation, + // but only the even addresses when we access it + m_WDsel0 = m_inDsrArea && !m_rtc_enabled + && ((state==ASSERT_LINE && ((m_address & 0x1ff8)==0x1ff0)) // read + || (state==CLEAR_LINE && ((m_address & 0x1ff8)==0x1ff8))); // write + + m_WDsel = m_WDsel0 && WORD_ALIGNED(m_address); + + // Is the RTC selected on the card? (even addr) + m_RTCsel = m_inDsrArea && m_rtc_enabled && ((m_address & 0x1fe1)==0x1fe0); + + // RTC disabled: + // 5c00 - 5fef: RAM + // 5ff0 - 5fff: Controller (f0 = status, f2 = track, f4 = sector, f6 = data) + + // RTC enabled: + // 5c00 - 5fdf: RAM + // 5fe0 - 5fff: Clock (even addr) + + // Is RAM selected? We just check for the last 1K and let the RTC or WD + // just take control before + m_lastK = m_inDsrArea && ((m_address & 0x1c00)==0x1c00); + + // Is the data register port of the WD being selected? + // In fact, the address to read the data from is 5FF6, but the TI-99 datamux + // fetches both bytes from 5FF7 and 5FF6, the odd one first. The BwG uses + // the odd address to operate the READY line + m_dataregLB = m_WDsel0 && ((m_address & 0x07)==0x07); + + // Clear or assert the outgoing READY line + operate_ready_line(); +} + +/* + Access for debugger. This is a stripped-down version of the + main methods below. We only allow ROM and RAM access. +*/ +void snug_bwg_device::debug_read(offs_t offset, uint8_t* value) +{ + if (((offset & m_select_mask)==m_select_value) && m_selected) + { + if ((offset & 0x1c00)==0x1c00) + { + if ((offset & 0x1fe0)!=0x1fe0) + *value = m_buffer_ram->pointer()[(m_ram_page<<10) | (offset & 0x03ff)]; + } + else + *value = m_dsrrom[(m_rom_page<<13) | (offset & 0x1fff)]; + } +} + +void snug_bwg_device::debug_write(offs_t offset, uint8_t data) +{ + if (((offset & m_select_mask)==m_select_value) && m_selected) + { + if (((offset & 0x1c00)==0x1c00) && ((offset & 0x1fe0)!=0x1fe0)) + m_buffer_ram->pointer()[(m_ram_page<<10) | (m_address & 0x03ff)] = data; + } +} + +/* + Read a byte from ROM, RAM, FDC, or RTC. See setaddress_dbin for selection + logic. +*/ +READ8Z_MEMBER(snug_bwg_device::readz) +{ + if (machine().side_effect_disabled()) + { + debug_read(offset, value); + return; + } + + if (m_inDsrArea && m_selected) + { + // 010x xxxx xxxx xxxx + if (m_lastK) + { + // ...1 11xx xxxx xxxx + if (m_rtc_enabled) + { + if (m_RTCsel) + { + // .... ..11 111x xxx0 + *value = m_clock->read(space, (m_address & 0x001e) >> 1); + if (TRACE_RW) logerror("bwg: read RTC: %04x -> %02x\n", m_address & 0xffff, *value); + } + else + { + *value = m_buffer_ram->pointer()[(m_ram_page<<10) | (m_address & 0x03ff)]; + if (TRACE_RW) logerror("bwg: read ram: %04x (page %d)-> %02x\n", m_address & 0xffff, m_ram_page, *value); + } + } + else + { + if (m_WDsel) + { + // .... ..11 1111 0xx0 + // Note that the value is inverted again on the board, + // so we can drop the inversion + *value = m_wd1773->gen_r((m_address >> 1)&0x03); + if (TRACE_RW) logerror("bwg: read FDC: %04x -> %02x\n", m_address & 0xffff, *value); + if (TRACE_DATA) + { + if ((m_address & 0xffff)==0x5ff6) logerror("%02x ", *value); + else logerror("\n%04x: %02x", m_address&0xffff, *value); + } + } + else + { + *value = m_buffer_ram->pointer()[(m_ram_page<<10) | (m_address & 0x03ff)]; + if (TRACE_RW) logerror("bwg: read ram: %04x (page %d)-> %02x\n", m_address & 0xffff, m_ram_page, *value); + } + } + } + else + { + *value = m_dsrrom[(m_rom_page<<13) | (m_address & 0x1fff)]; + if (TRACE_RW) logerror("bwg: read dsr: %04x (page %d)-> %02x\n", m_address & 0xffff, m_rom_page, *value); + } + } +} + +/* + Write a byte + 4000 - 5bff: ROM, ignore write (4 banks) + + rtc disabled: + 5c00 - 5fef: RAM + 5ff0 - 5fff: Controller (f8 = command, fa = track, fc = sector, fe = data) + + rtc enabled: + 5c00 - 5fdf: RAM + 5fe0 - 5fff: Clock (even addr) +*/ +WRITE8_MEMBER(snug_bwg_device::write) +{ + if (machine().side_effect_disabled()) + { + debug_write(offset, data); + return; + } + + if (m_inDsrArea && m_selected) + { + if (m_lastK) + { + if (m_rtc_enabled) + { + if (m_RTCsel) + { + // .... ..11 111x xxx0 + if (TRACE_RW) logerror("bwg: write RTC: %04x <- %02x\n", m_address & 0xffff, data); + m_clock->write(space, (m_address & 0x001e) >> 1, data); + } + else + { + if (TRACE_RW) logerror("bwg: write ram: %04x (page %d) <- %02x\n", m_address & 0xffff, m_ram_page, data); + m_buffer_ram->pointer()[(m_ram_page<<10) | (m_address & 0x03ff)] = data; + } + } + else + { + if (m_WDsel) + { + // .... ..11 1111 1xx0 + // Note that the value is inverted again on the board, + // so we can drop the inversion + if (TRACE_RW) logerror("bwg: write FDC: %04x <- %02x\n", m_address & 0xffff, data); + m_wd1773->gen_w((m_address >> 1)&0x03, data); + } + else + { + if (TRACE_RW) logerror("bwg: write ram: %04x (page %d) <- %02x\n", m_address & 0xffff, m_ram_page, data); + m_buffer_ram->pointer()[(m_ram_page<<10) | (m_address & 0x03ff)] = data; + } + } + } + } +} + +/* + CRU read handler. *=inverted. + bit 0: DSK4 connected* + bit 1: DSK1 connected* + bit 2: DSK2 connected* + bit 3: DSK3 connected* + bit 4: Dip 1 + bit 5: Dip 2 + bit 6: Dip 3 + bit 7: Dip 4 +*/ +READ8Z_MEMBER(snug_bwg_device::crureadz) +{ + uint8_t reply; + + if ((offset & 0xff00)==m_cru_base) + { + if ((offset & 0x00ff)==0) + { + // Check what drives are not connected + reply = ((m_floppy[0] != nullptr)? 0 : 0x02) // DSK1 + | ((m_floppy[1] != nullptr)? 0 : 0x04) // DSK2 + | ((m_floppy[2] != nullptr)? 0 : 0x08) // DSK3 + | ((m_floppy[3] != nullptr)? 0 : 0x01); // DSK4 + + // DIP switches for step and date/time display + if (m_dip1 != 0) reply |= 0x10; + if (m_dip2 != 0) reply |= 0x20; + + // DIP switches for drive range selection + // 00 = only DSK1; 01 = DSK1+DSK2, 10=DSK1+DSK2+DSK3, 11=all + reply |= (m_dip34 << 6); + + // Invert all + *value = ~reply; + } + else + *value = 0; + if (TRACE_CRU) logerror("bwg: Read CRU = %02x\n", *value); + } +} + +WRITE8_MEMBER(snug_bwg_device::cruwrite) +{ +// int drive, drivebit; + + if ((offset & 0xff00)==m_cru_base) + { + int bit = (offset >> 1) & 0x0f; + switch (bit) + { + case 0: + /* (De)select the card. Indicated by a LED on the board. */ + m_selected = (data != 0); + if (TRACE_CRU) logerror("bwg: Map DSR (bit 0) = %d\n", m_selected); + break; + + case 1: + // Activate motor + if (data==1 && m_lastval==0) + { // on rising edge, set motor_running for 4.23s + if (TRACE_CRU) logerror("bwg: trigger motor (bit 1)\n"); + set_floppy_motors_running(true); + } + m_lastval = data; + break; + + case 2: + /* Set disk ready/hold (bit 2) */ + // 0: ignore IRQ and DRQ + // 1: TMS9900 is stopped until IRQ or DRQ are set + // OR the motor stops rotating - rotates for 4.23s after write + // to CRU bit 1 + if (TRACE_CRU) logerror("bwg: arm wait state logic (bit 2) = %d\n", data); + m_WAITena = (data != 0); + break; + + case 3: + // Load disk heads (HLT pin) (bit 3). Not implemented. + if (TRACE_CRU) logerror("bwg: set head load (bit 3) = %d\n", data); + break; + + case 4: + // Select drive 0-2 (DSK1-DSK3) (bits 4-6) + m_DSEL = (data != 0)? (m_DSEL | 0x01) : (m_DSEL & 0xfe); + set_drive(); + break; + case 5: + m_DSEL = (data != 0)? (m_DSEL | 0x02) : (m_DSEL & 0xfd); + set_drive(); + break; + case 6: + m_DSEL = (data != 0)? (m_DSEL | 0x04) : (m_DSEL & 0xfb); + set_drive(); + break; + + case 7: + // Select side of disk (bit 7) + m_SIDSEL = (data==1)? ASSERT_LINE : CLEAR_LINE; + if (TRACE_CRU) logerror("bwg: set side (bit 7) = %d\n", data); + if (m_current_floppy != nullptr) m_current_floppy->ss_w(data); + break; + + case 8: + // Select drive 3 (DSK4) (bit 8) */ + m_DSEL = (data != 0)? (m_DSEL | 0x08) : (m_DSEL & 0xf7); + set_drive(); + break; + + case 10: + /* double density enable (active low) */ + if (TRACE_CRU) logerror("bwg: set double density (bit 10) = %d\n", data); + m_wd1773->dden_w(data != 0); + break; + + case 11: + /* EPROM A13 */ + if (data != 0) + m_rom_page |= 1; + else + m_rom_page &= 0xfe; // 11111110 + if (TRACE_CRU) logerror("bwg: set ROM page (bit 11) = %d, page = %d\n", bit, m_rom_page); + break; + + case 13: + /* RAM A10 */ + m_ram_page = data; + if (TRACE_CRU) logerror("bwg: set RAM page (bit 13) = %d, page = %d\n", bit, m_ram_page); + break; + + case 14: + /* Override FDC with RTC (active high) */ + if (TRACE_CRU) logerror("bwg: turn on RTC (bit 14) = %d\n", data); + m_rtc_enabled = (data != 0); + break; + + case 15: + /* EPROM A14 */ + if (data != 0) + m_rom_page |= 2; + else + m_rom_page &= 0xfd; // 11111101 + if (TRACE_CRU) logerror("bwg: set ROM page (bit 15) = %d, page = %d\n", bit, m_rom_page); + break; + + case 9: + case 12: + /* Unused (bit 3, 9 & 12) */ + if (TRACE_CRU) logerror("bwg: set unknown bit %d = %d\n", bit, data); + break; + } + } +} + +/* + Set the current drive. See also ti_fdc.c +*/ +void snug_bwg_device::set_drive() +{ + if (TRACE_CRU) logerror("bwg: new DSEL = %d\n", m_DSEL); + + if ((m_DSEL != 0) && (m_DSEL != 1) && (m_DSEL != 2) && (m_DSEL != 4) && (m_DSEL != 8)) + { + logerror("bwg: Warning - multiple drives selected\n"); + } + + // The schematics do not reveal any countermeasures against multiple selection + // so we assume that the highest value wins. + + int bits = m_DSEL & 0x0f; + int i = -1; + + while (bits != 0) + { + bits >>= 1; + i++; + } + if (i != -1) + { + m_current_floppy = m_floppy[i]; + if (TRACE_CRU) logerror("bwg: Selected floppy %d\n", i); + } + else + { + m_current_floppy = nullptr; + if (TRACE_CRU) logerror("bwg: All drives deselected\n"); + } + m_wd1773->set_floppy(m_current_floppy); +} + +/* + Monoflop has gone back to the OFF state. +*/ +void snug_bwg_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) +{ + set_floppy_motors_running(false); +} + +/* + All floppy motors are operated by the same line. +*/ +void snug_bwg_device::set_floppy_motors_running(bool run) +{ + if (run) + { + if (TRACE_MOTOR) + if (m_MOTOR_ON==CLEAR_LINE) logerror("bwg: Motor START\n"); + m_MOTOR_ON = ASSERT_LINE; + m_motor_on_timer->adjust(attotime::from_msec(4230)); + } + else + { + if (TRACE_MOTOR) + if (m_MOTOR_ON==ASSERT_LINE) logerror("bwg: Motor STOP\n"); + m_MOTOR_ON = CLEAR_LINE; + } + + // The motor-on line is connected to pin 20 which is falsely called "MO" + // in the schematics; should be called "READY" as we are using the WD1773. + m_wd1773->set_force_ready(run); + + // Set all motors + for (auto & elem : m_floppy) + if (elem != nullptr) elem->mon_w((run)? 0 : 1); + + // The motor-on line also connects to the wait state logic + operate_ready_line(); +} + +void snug_bwg_device::device_start() +{ + logerror("bwg: BWG start\n"); + m_dsrrom = memregion(DSRROM)->base(); + m_motor_on_timer = timer_alloc(MOTOR_TIMER); + m_cru_base = 0x1100; + + save_item(NAME(m_DRQ)); + save_item(NAME(m_IRQ)); + save_item(NAME(m_dip1)); + save_item(NAME(m_dip2)); + save_item(NAME(m_dip34)); + save_item(NAME(m_ram_page)); + save_item(NAME(m_rom_page)); + save_item(NAME(m_WAITena)); + save_item(NAME(m_inDsrArea)); + save_item(NAME(m_WDsel)); + save_item(NAME(m_WDsel0)); + save_item(NAME(m_RTCsel)); + save_item(NAME(m_lastK)); + save_item(NAME(m_dataregLB)); + save_item(NAME(m_rtc_enabled)); + save_item(NAME(m_MOTOR_ON)); + save_item(NAME(m_lastval)); + save_item(NAME(m_address)); + save_item(NAME(m_DSEL)); + save_item(NAME(m_SIDSEL)); +} + +void snug_bwg_device::device_reset() +{ + logerror("bwg: BWG reset\n"); + + if (m_genmod) + { + m_select_mask = 0x1fe000; + m_select_value = 0x174000; + } + else + { + m_select_mask = 0x7e000; + m_select_value = 0x74000; + } + + m_lastval = 0; + + m_DRQ = CLEAR_LINE; + m_IRQ = CLEAR_LINE; + m_MOTOR_ON = CLEAR_LINE; + + m_SIDSEL = CLEAR_LINE; + + m_wd1773->set_force_ready(false); + + m_DSEL = 0; + m_WAITena = false; + m_selected = false; + m_rtc_enabled = false; + m_dataregLB = false; + m_lastK = false; + m_RTCsel = false; + m_inDsrArea = false; + m_address = 0; + m_WDsel = false; + m_WDsel0 = false; + + for (int i=0; i < 4; i++) + { + if (m_floppy[i] != nullptr) + logerror("bwg: Connector %d with %s\n", i, m_floppy[i]->name()); + else + logerror("bwg: Connector %d has no floppy attached\n", i); + } + + m_wd1773->set_floppy(m_current_floppy = m_floppy[0]); + + m_dip1 = ioport("BWGDIP1")->read(); + m_dip2 = ioport("BWGDIP2")->read(); + m_dip34 = ioport("BWGDIP34")->read(); + + m_rom_page = 0; + m_ram_page = 0; +} + +void snug_bwg_device::device_config_complete() +{ + for (auto & elem : m_floppy) + elem = nullptr; + + // Seems to be null when doing a "-listslots" + if (subdevice("0")!=nullptr) m_floppy[0] = static_cast(subdevice("0")->subdevices().first()); + if (subdevice("1")!=nullptr) m_floppy[1] = static_cast(subdevice("1")->subdevices().first()); + if (subdevice("2")!=nullptr) m_floppy[2] = static_cast(subdevice("2")->subdevices().first()); + if (subdevice("3")!=nullptr) m_floppy[3] = static_cast(subdevice("3")->subdevices().first()); +} + +INPUT_PORTS_START( bwg_fdc ) + PORT_START( "BWGDIP1" ) + PORT_DIPNAME( 0x01, 0x00, "BwG step rate" ) + PORT_DIPSETTING( 0x00, "6 ms") + PORT_DIPSETTING( 0x01, "20 ms") + + PORT_START( "BWGDIP2" ) + PORT_DIPNAME( 0x01, 0x00, "BwG date/time display" ) + PORT_DIPSETTING( 0x00, "Hide") + PORT_DIPSETTING( 0x01, "Show") + + PORT_START( "BWGDIP34" ) + PORT_DIPNAME( 0x03, 0x03, "BwG drives" ) + PORT_DIPSETTING( 0x00, "DSK1 only") + PORT_DIPSETTING( 0x01, "DSK1-DSK2") + PORT_DIPSETTING( 0x02, "DSK1-DSK3") + PORT_DIPSETTING( 0x03, "DSK1-DSK4") +INPUT_PORTS_END + +FLOPPY_FORMATS_MEMBER(snug_bwg_device::floppy_formats) + FLOPPY_TI99_SDF_FORMAT, + FLOPPY_TI99_TDF_FORMAT +FLOPPY_FORMATS_END + +static SLOT_INTERFACE_START( bwg_floppies ) + SLOT_INTERFACE( "525dd", FLOPPY_525_DD ) // 40 tracks + SLOT_INTERFACE( "525qd", FLOPPY_525_QD ) // 80 tracks + SLOT_INTERFACE( "35dd", FLOPPY_35_DD ) // 80 tracks +SLOT_INTERFACE_END + +MACHINE_CONFIG_FRAGMENT( bwg_fdc ) + MCFG_WD1773_ADD(FDC_TAG, XTAL_8MHz) + MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(snug_bwg_device, fdc_irq_w)) + MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(snug_bwg_device, fdc_drq_w)) + + MCFG_DEVICE_ADD(CLOCK_TAG, MM58274C, 0) + MCFG_MM58274C_MODE24(1) // 24 hour + MCFG_MM58274C_DAY1(0) // sunday + + MCFG_FLOPPY_DRIVE_ADD("0", bwg_floppies, "525dd", snug_bwg_device::floppy_formats) + MCFG_FLOPPY_DRIVE_SOUND(true) + MCFG_FLOPPY_DRIVE_ADD("1", bwg_floppies, "525dd", snug_bwg_device::floppy_formats) + MCFG_FLOPPY_DRIVE_SOUND(true) + MCFG_FLOPPY_DRIVE_ADD("2", bwg_floppies, nullptr, snug_bwg_device::floppy_formats) + MCFG_FLOPPY_DRIVE_SOUND(true) + MCFG_FLOPPY_DRIVE_ADD("3", bwg_floppies, nullptr, snug_bwg_device::floppy_formats) + MCFG_FLOPPY_DRIVE_SOUND(true) + + MCFG_RAM_ADD(BUFFER) + MCFG_RAM_DEFAULT_SIZE("2K") + MCFG_RAM_DEFAULT_VALUE(0) +MACHINE_CONFIG_END + +ROM_START( bwg_fdc ) + ROM_REGION(0x8000, DSRROM, 0) + ROM_LOAD("bwg_dsr.u15", 0x0000, 0x8000, CRC(06f1ec89) SHA1(6ad77033ed268f986d9a5439e65f7d391c4b7651)) /* BwG disk DSR ROM */ +ROM_END + +machine_config_constructor snug_bwg_device::device_mconfig_additions() const +{ + return MACHINE_CONFIG_NAME( bwg_fdc ); +} + +ioport_constructor snug_bwg_device::device_input_ports() const +{ + return INPUT_PORTS_NAME( bwg_fdc ); +} + +const tiny_rom_entry *snug_bwg_device::device_rom_region() const +{ + return ROM_NAME( bwg_fdc ); +} + +DEFINE_DEVICE_TYPE(TI99_BWG, snug_bwg_device, "ti99_bwg", "SNUG BwG Floppy Controller") diff --git a/src/devices/bus/ti99/peb/bwg.h b/src/devices/bus/ti99/peb/bwg.h new file mode 100644 index 00000000000..de202241519 --- /dev/null +++ b/src/devices/bus/ti99/peb/bwg.h @@ -0,0 +1,142 @@ +// license:LGPL-2.1+ +// copyright-holders:Michael Zapf +/**************************************************************************** + + SNUG BwG Disk Controller + Based on WD1770 + Double Density, Double-sided + + Michael Zapf, September 2010 + February 2012: Rewritten as class + +*****************************************************************************/ + +#ifndef MAME_BUS_TI99_PED_BWG_H +#define MAME_BUS_TI99_PED_BWG_H + +#pragma once + +#include "peribox.h" +#include "imagedev/flopdrv.h" +#include "machine/mm58274c.h" +#include "machine/wd_fdc.h" +#include "machine/ram.h" + +DECLARE_DEVICE_TYPE(TI99_BWG, snug_bwg_device) + +class snug_bwg_device : public ti_expansion_card_device +{ +public: + snug_bwg_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + + DECLARE_READ8Z_MEMBER(readz) override; + DECLARE_WRITE8_MEMBER(write) override; + DECLARE_SETADDRESS_DBIN_MEMBER(setaddress_dbin) override; + + DECLARE_READ8Z_MEMBER(crureadz) override; + DECLARE_WRITE8_MEMBER(cruwrite) override; + + DECLARE_FLOPPY_FORMATS( floppy_formats ); + + DECLARE_WRITE_LINE_MEMBER( fdc_irq_w ); + DECLARE_WRITE_LINE_MEMBER( fdc_drq_w ); + +protected: + void device_start() override; + void device_reset() override; + void device_config_complete() override; + + const tiny_rom_entry *device_rom_region() const override; + machine_config_constructor device_mconfig_additions() const override; + ioport_constructor device_input_ports() const override; + +private: + void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + + // Debugger accessors + void debug_read(offs_t offset, uint8_t* value); + void debug_write(offs_t offset, uint8_t data); + + // Wait state logic + void operate_ready_line(); + + // Set the current floppy + void set_drive(); + + // Operate the floppy motors + void set_floppy_motors_running(bool run); + + // Holds the status of the DRQ and IRQ lines. + int m_DRQ, m_IRQ; + + // DIP switch state + int m_dip1, m_dip2, m_dip34; + + // Page selection for ROM and RAM + int m_ram_page; // 0-1 + int m_rom_page; // 0-3 + + // When true, the READY line will be cleared (create wait states) when + // waiting for data from the controller. + bool m_WAITena; + + // Address in card area + bool m_inDsrArea; + + // WD selected + bool m_WDsel, m_WDsel0; + + // RTC selected + bool m_RTCsel; + + // last 1K area selected + bool m_lastK; + + // Data register +1 selected + bool m_dataregLB; + + // Indicates whether the clock is mapped into the address space. + bool m_rtc_enabled; + + // Signal motor_on. When true, makes all drives turning. + int m_MOTOR_ON; + + // Needed for triggering the motor monoflop + uint8_t m_lastval; + + // Recent address + int m_address; + + /* Indicates which drive has been selected. Values are 0, 1, 2, and 4. */ + // 000 = no drive + // 001 = drive 1 + // 010 = drive 2 + // 100 = drive 3 + int m_DSEL; + + // Signal SIDSEL. 0 or 1, indicates the selected head. + int m_SIDSEL; + + // count 4.23s from rising edge of motor_on + emu_timer* m_motor_on_timer; + + // DSR ROM + uint8_t* m_dsrrom; + + // Buffer RAM + required_device m_buffer_ram; + + // Link to the attached floppy drives + floppy_image_device* m_floppy[4]; + + // Currently selected floppy drive + floppy_image_device* m_current_floppy; + + // Link to the WD1773 controller on the board. + required_device m_wd1773; + + // Link to the real-time clock on the board. + required_device m_clock; +}; + +#endif // MAME_BUS_TI99_PED_BWG_H diff --git a/src/devices/bus/ti99/peb/evpc.cpp b/src/devices/bus/ti99/peb/evpc.cpp new file mode 100644 index 00000000000..b8cc021765e --- /dev/null +++ b/src/devices/bus/ti99/peb/evpc.cpp @@ -0,0 +1,498 @@ +// license:LGPL-2.1+ +// copyright-holders:Michael Zapf +/**************************************************************************** + SNUG Enhanced Video Processor Card (EVPC) + + This is an expansion card with an own v9938 video processor on board. + Later releases (EVPC2) can also be equipped with a v9958. + + The EVPC is intended to be used + 1. with the TI-99/4A console + 2. with the SGCPU + + For option 1, the console-internal VDP (TMS9928A) must be removed. This, + however, raises a problem, because the video interrupt must now be send + from the EVPC in the Peripheral Expansion Box to the console, but there is + no line in the PEB cable for this purpose. + + To solve this issue, a separate cable is led from the EVPC to the console + which delivers the video interrupt, and also the GROM clock which is also + lost due to the removal of the internal VDP. + + The SGCPU requires this card, as it does not offer any video processor. + In this configuration, the video interrupt cable is not required. + + Also, the SGCPU does not offer a socket for the sound chip of the TI + console, and accordingly, the EVPC also gives the sound chip a new home. + Thus we assume that in the TI console (option 1) the sound chip has + also been removed. + + Important note: The DSR (firmware) of the EVPC expects a memory expansion + to be present; otherwise, the configuration (using CALL EVPC) will crash. + There is no warning if the 32K expansion is not present. + + Michael Zapf + +*****************************************************************************/ + +#include "emu.h" +#include "evpc.h" +#include "speaker.h" + +#define EVPC_CRU_BASE 0x1400 + +#define TRACE_ADDRESS 0 +#define TRACE_CRU 0 +#define TRACE_MEM 0 + +#define NOVRAM_SIZE 256 + +snug_enhanced_video_device::snug_enhanced_video_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : ti_expansion_card_device(mconfig, TI99_EVPC, tag, owner, clock), + device_nvram_interface(mconfig, *this), + m_dsr_page(0), + m_inDsrArea(false), + m_novram_accessed(false), + m_palette_accessed(false), + m_RAMEN(false), + m_sound_accessed(false), + m_video_accessed(false), + m_intlevel(0), + m_dsrrom(nullptr), + m_novram(nullptr), + m_video(*this, VDP_TAG), + m_sound(*this, TISOUNDCHIP_TAG), + m_colorbus(*this, COLORBUS_TAG) +{ +} + +SETADDRESS_DBIN_MEMBER( snug_enhanced_video_device::setaddress_dbin ) +{ + // Do not allow setaddress for the debugger. It will mess up the + // setaddress/memory access pairs when the CPU enters wait states. + if (machine().side_effect_disabled()) return; + + if (TRACE_ADDRESS) logerror("set address %04x, %s\n", offset, (state==ASSERT_LINE)? "read" : "write"); + + m_address = offset; + bool reading = (state==ASSERT_LINE); + int offbase = (m_address & 0xfc01); + + // Sound + m_sound_accessed = ((m_address & 0xff01)==0x8400) && !reading; + + // Video space + // 8800 / 8802 / 8804 / 8806 + // 8c00 / 8c02 / 8c04 / 8c06 + // + // Bits 1000 1w00 0000 0xx0 + // Mask 1111 1000 0000 0001 + m_video_accessed = ((offbase==0x8800) && reading) || ((offbase==0x8c00) && !reading); + + // Read a byte in evpc DSR space + // 0x4000 - 0x5eff DSR (paged) + // 0x5f00 - 0x5fef NOVRAM + // 0x5ff0 - 0x5fff Palette + m_inDsrArea = ((m_address & 0xe000)==0x4000); + m_novram_accessed = ((m_address & 0xff00)==0x5f00); + m_palette_accessed = ((m_address & 0xfff0)==0x5ff0); + + // Note that we check the selection in reverse order so that the overlap is avoided +} + +//------------------------------------------------- +// nvram_default - called to initialize NVRAM to +// its default state +//------------------------------------------------- + +void snug_enhanced_video_device::nvram_default() +{ + memset(m_novram.get(), 0, NOVRAM_SIZE); +} + +//------------------------------------------------- +// nvram_read - called to read NVRAM from the +// .nv file +//------------------------------------------------- + +void snug_enhanced_video_device::nvram_read(emu_file &file) +{ + file.read(m_novram.get(), NOVRAM_SIZE); +} + +//------------------------------------------------- +// nvram_write - called to write NVRAM to the +// .nv file +//------------------------------------------------- + +void snug_enhanced_video_device::nvram_write(emu_file &file) +{ + file.write(m_novram.get(), NOVRAM_SIZE); +} + +/* + Read a byte in evpc DSR space, NOVRAM, Palette, or video + 0x4000 - 0x5eff DSR (paged) + 0x5f00 - 0x5fef NOVRAM + 0x5ff0 - 0x5fff Palette (5ff0, 5ff2, 5ff4, 5ff6) +*/ +READ8Z_MEMBER(snug_enhanced_video_device::readz) +{ + if (m_selected && m_inDsrArea) + { + if (m_palette_accessed) + { + switch (m_address & 0x000f) + { + case 0: + // Palette Read Address Register + *value = m_palette.write_index; + break; + + case 2: + // Palette Read Color Value + if (m_palette.read) + { + switch (m_palette.state) + { + case 0: + *value = m_palette.color[m_palette.read_index].red; + break; + case 1: + *value = m_palette.color[m_palette.read_index].green; + break; + case 2: + *value = m_palette.color[m_palette.read_index].blue; + break; + } + m_palette.state++; + if (m_palette.state == 3) + { + m_palette.state = 0; + m_palette.read_index++; + } + } + break; + + case 4: + // Palette Read Pixel Mask + *value = m_palette.mask; + break; + case 6: + // Palette Read Address Register for Color Value + if (m_palette.read) + *value = 0; + else + *value = 3; + break; + } + return; + } + + if (m_novram_accessed && m_RAMEN) + { + // NOVRAM + *value = m_novram[offset & 0x00ff]; + return; + } + + // DSR space + *value = m_dsrrom[(offset & 0x1fff) | (m_dsr_page<<13)]; + return; + } + + if (m_video_accessed) + { + *value = m_video->read(space, m_address>>1); + } +} + +/* + Write a byte in evpc DSR space + 0x4000 - 0x5eff DSR (paged) + 0x5f00 - 0x5fef NOVRAM + 0x5ff0 - 0x5fff Palette (5ff8, 5ffa, 5ffc, 5ffe) +*/ +WRITE8_MEMBER(snug_enhanced_video_device::write) +{ + if (m_selected && m_inDsrArea) + { + if (m_palette_accessed) + { + // Palette + if (TRACE_MEM) logerror("palette write %04x <- %02x\n", offset&0xffff, data); + switch (m_address & 0x000f) + { + case 0x08: + // Palette Write Address Register + if (TRACE_MEM) logerror("EVPC palette address write (for write access)\n"); + m_palette.write_index = data; + m_palette.state = 0; + m_palette.read = 0; + break; + + case 0x0a: + // Palette Write Color Value + if (TRACE_MEM) logerror("EVPC palette color write\n"); + if (!m_palette.read) + { + switch (m_palette.state) + { + case 0: + m_palette.color[m_palette.write_index].red = data; + break; + case 1: + m_palette.color[m_palette.write_index].green = data; + break; + case 2: + m_palette.color[m_palette.write_index].blue = data; + break; + } + m_palette.state++; + if (m_palette.state == 3) + { + m_palette.state = 0; + m_palette.write_index++; + } + //evpc_palette.dirty = 1; + } + break; + + case 0x0c: + // Palette Write Pixel Mask + if (TRACE_MEM) logerror("EVPC palette mask write\n"); + m_palette.mask = data; + break; + + case 0x0e: + // Palette Write Address Register for Color Value + if (TRACE_MEM) logerror("EVPC palette address write (for read access)\n"); + m_palette.read_index = data; + m_palette.state = 0; + m_palette.read = 1; + break; + + } + return; + } + + if (m_novram_accessed && m_RAMEN) + { + // NOVRAM + m_novram[offset & 0x00ff] = data; + return; + } + } + + if (m_video_accessed) + { + m_video->write(space, m_address>>1, data); + } + + if (m_sound_accessed) + { + m_sound->write(space, 0, data); + } +} + +/* + The CRU read handler. Read EVPC DIP switches + 0: Video timing (PAL/NTSC) + 1: - + 2: charset + 3: RAM shift + 4: - + 5: - + 6: - + 7: DIP or NOVRAM + Logic is inverted +*/ +READ8Z_MEMBER(snug_enhanced_video_device::crureadz) +{ + if ((offset & 0xff00)==EVPC_CRU_BASE) + { + if ((offset & 0x00f0)==0) // offset 0 delivers bits 0-7 (address 00-0f) + { + *value = ~(ioport("EVPC-SW1")->read() | (ioport("EVPC-SW3")->read()<<2) + | (ioport("EVPC-SW4")->read()<<3) | (ioport("EVPC-SW8")->read()<<7)); + } + } +} + +/* + The CRU write handler. + Bit 0: Turn on DSR ROM + Bit 1: DSR page select (bit 0) + Bit 2: - + Bit 3: RAM enable + Bit 4: DSR page select (bit 2) + Bit 5: DSR page select (bit 1) + Bit 6: - + Bit 7: - +*/ +WRITE8_MEMBER(snug_enhanced_video_device::cruwrite) +{ + if ((offset & 0xff00)==EVPC_CRU_BASE) + { + int bit = (offset >> 1) & 0x0f; + switch (bit) + { + case 0: + m_selected = (data!=0); + if (TRACE_CRU) logerror("Map DSR = %d\n", m_selected); + break; + + case 1: + if (data!=0) + m_dsr_page |= 1; + else + m_dsr_page &= ~1; + break; + + case 3: + m_RAMEN = (data!=0); + break; + + case 4: + if (data!=0) + m_dsr_page |= 4; + else + m_dsr_page &= ~4; + break; + + case 5: + if (data!=0) + m_dsr_page |= 2; + else + m_dsr_page &= ~2; + break; + + case 2: + case 6: + case 7: + break; + } + } +} + +/* + READY line for the sound chip +*/ +WRITE_LINE_MEMBER( snug_enhanced_video_device::ready_line ) +{ + m_slot->set_ready(state); +} + +void snug_enhanced_video_device::device_start() +{ + m_dsrrom = memregion(DSRROM)->base(); + m_novram = std::make_unique(NOVRAM_SIZE); + m_console_conn = downcast(machine().device(EVPC_CONN_TAG)); + save_item(NAME(m_address)); + save_item(NAME(m_dsr_page)); + save_item(NAME(m_inDsrArea)); + save_item(NAME(m_novram_accessed)); + save_item(NAME(m_palette_accessed)); + save_item(NAME(m_RAMEN)); + save_item(NAME(m_sound_accessed)); + save_item(NAME(m_video_accessed)); + save_item(NAME(m_intlevel)); +} + +void snug_enhanced_video_device::device_reset() +{ + m_select_mask = 0x7e000; + m_select_value = 0x74000; + m_dsr_page = 0; + m_RAMEN = false; + m_selected = false; +} + +void snug_enhanced_video_device::device_stop() +{ + m_novram = nullptr; +} + +/* + This is the extra cable running from the EVPC card right into the TI console. + It delivers the VDP interrupt and the GROM clock. + + For the SGCPU, the signal is delivered by the LCP line. +*/ +WRITE_LINE_MEMBER( snug_enhanced_video_device::video_interrupt_in ) +{ + // This method is frequently called without level change, so we only + // react on changes + if (state != m_intlevel) + { + m_intlevel = state; + if (m_console_conn != nullptr) m_console_conn->vclock_line(state); + else m_slot->lcp_line(state); + + if (state!=0) m_colorbus->poll(); + } +} + +ROM_START( ti99_evpc ) + ROM_REGION(0x10000, DSRROM, 0) + ROM_LOAD("evpc_dsr.u21", 0, 0x10000, CRC(a062b75d) SHA1(6e8060f86e3bb9c36f244d88825e3fe237bfe9a9)) /* evpc DSR ROM */ +ROM_END + +MACHINE_CONFIG_FRAGMENT( ti99_evpc ) + // video hardware + MCFG_V9938_ADD(VDP_TAG, SCREEN_TAG, 0x20000, XTAL_21_4772MHz) /* typical 9938 clock, not verified */ + MCFG_V99X8_INTERRUPT_CALLBACK(WRITELINE(snug_enhanced_video_device, video_interrupt_in)) + MCFG_V99X8_SCREEN_ADD_NTSC(SCREEN_TAG, VDP_TAG, XTAL_21_4772MHz) + + // Sound hardware + MCFG_SPEAKER_STANDARD_MONO("sound_out") + MCFG_SOUND_ADD(TISOUNDCHIP_TAG, SN94624, 3579545/8) /* 3.579545 MHz */ + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "sound_out", 0.75) + MCFG_SN76496_READY_HANDLER( WRITELINE(snug_enhanced_video_device, ready_line) ) + + // Mouse connected to the color bus of the v9938 + MCFG_COLORBUS_MOUSE_ADD( COLORBUS_TAG ) + +MACHINE_CONFIG_END + +/* + Input ports for the EPVC +*/ +INPUT_PORTS_START( ti99_evpc ) + PORT_START( "EVPC-SW1" ) + PORT_DIPNAME( 0x01, 0x00, "EVPC video mode" ) PORT_CONDITION( "EVPC-SW8", 0x01, EQUALS, 0x00 ) + PORT_DIPSETTING( 0x00, "PAL" ) + PORT_DIPSETTING( 0x01, "NTSC" ) + + PORT_START( "EVPC-SW3" ) + PORT_DIPNAME( 0x01, 0x00, "EVPC charset" ) PORT_CONDITION( "EVPC-SW8", 0x01, EQUALS, 0x00 ) + PORT_DIPSETTING( 0x00, DEF_STR( International )) + PORT_DIPSETTING( 0x01, DEF_STR( German )) + + PORT_START( "EVPC-SW4" ) + PORT_DIPNAME( 0x01, 0x00, "EVPC VDP RAM" ) PORT_CONDITION( "EVPC-SW8", 0x01, EQUALS, 0x00 ) + PORT_DIPSETTING( 0x00, "shifted" ) + PORT_DIPSETTING( 0x01, "not shifted" ) + + PORT_START( "EVPC-SW8" ) + PORT_DIPNAME( 0x01, 0x00, "EVPC Configuration" ) + PORT_DIPSETTING( 0x00, "DIP" ) + PORT_DIPSETTING( 0x01, "NOVRAM" ) +INPUT_PORTS_END + +const tiny_rom_entry *snug_enhanced_video_device::device_rom_region() const +{ + return ROM_NAME( ti99_evpc ); +} + +ioport_constructor snug_enhanced_video_device::device_input_ports() const +{ + return INPUT_PORTS_NAME(ti99_evpc); +} + +machine_config_constructor snug_enhanced_video_device::device_mconfig_additions() const +{ + return MACHINE_CONFIG_NAME( ti99_evpc ); +} + +DEFINE_DEVICE_TYPE(TI99_EVPC, snug_enhanced_video_device, "ti99_evpc", "SNUG Enhanced Video Processor Card") diff --git a/src/devices/bus/ti99/peb/evpc.h b/src/devices/bus/ti99/peb/evpc.h new file mode 100644 index 00000000000..bb53e285a28 --- /dev/null +++ b/src/devices/bus/ti99/peb/evpc.h @@ -0,0 +1,89 @@ +// license:LGPL-2.1+ +// copyright-holders:Michael Zapf +/**************************************************************************** + + SNUG Enhanced Video Processor Card (evpc) + See evpc.c for documentation. + + Michael Zapf + + October 2010: Rewritten as device + February 2012: Rewritten as class + +*****************************************************************************/ + +#ifndef MAME_BUS_TI99_PEB_EVPC_H +#define MAME_BUS_TI99_PEB_EVPC_H + +#pragma once + +#include "peribox.h" +#include "video/v9938.h" +#include "sound/sn76496.h" +#include "bus/ti99x/ti99defs.h" +#include "bus/ti99/colorbus/colorbus.h" + +DECLARE_DEVICE_TYPE(TI99_EVPC, snug_enhanced_video_device) + +class snug_enhanced_video_device : public ti_expansion_card_device, public device_nvram_interface +{ +public: + snug_enhanced_video_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + DECLARE_READ8Z_MEMBER(readz) override; + DECLARE_WRITE8_MEMBER(write) override; + DECLARE_SETADDRESS_DBIN_MEMBER(setaddress_dbin) override; + + DECLARE_WRITE_LINE_MEMBER( ready_line ); + + DECLARE_READ8Z_MEMBER(crureadz) override; + DECLARE_WRITE8_MEMBER(cruwrite) override; + DECLARE_WRITE_LINE_MEMBER( video_interrupt_in ); + + TIMER_DEVICE_CALLBACK_MEMBER( hblank_interrupt ); + +protected: + struct evpc_palette + { + uint8_t read_index, write_index, mask; + int read; + int state; + struct { uint8_t red, green, blue; } color[0x100]; + //int dirty; + }; + + void device_start() override; + void device_reset() override; + void device_stop() override; + + virtual const tiny_rom_entry *device_rom_region() const override; + virtual ioport_constructor device_input_ports() const override; + machine_config_constructor device_mconfig_additions() const override; + + void nvram_default() override; + void nvram_read(emu_file &file) override; + void nvram_write(emu_file &file) override; + +private: + int m_address; + int m_dsr_page; + bool m_inDsrArea; + bool m_novram_accessed; + bool m_palette_accessed; + bool m_RAMEN; + bool m_sound_accessed; + bool m_video_accessed; + + int m_intlevel; + + uint8_t* m_dsrrom; + + std::unique_ptr m_novram; // NOVRAM area + + evpc_palette m_palette; + required_device m_video; + required_device m_sound; + required_device m_colorbus; + evpc_clock_connector* m_console_conn; +}; + +#endif // MAME_BUS_TI99_PEB_EVPC_H diff --git a/src/devices/bus/ti99/peb/hfdc.cpp b/src/devices/bus/ti99/peb/hfdc.cpp new file mode 100644 index 00000000000..a4067c6bd12 --- /dev/null +++ b/src/devices/bus/ti99/peb/hfdc.cpp @@ -0,0 +1,1115 @@ +// license:LGPL-2.1+ +// copyright-holders:Michael Zapf +/**************************************************************************** + + Myarc Hard and Floppy Disk Controller ("HFDC") + + The HFDC is based on the HDC9234 controller chip from Standard + Microsystems Corporation (SMC). It can work with up to three MFM hard disk + drives and up to four floppy disk drives. + + Data flow is detached from the main CPU. The HDC transfers data to/from + the drives using direct memory access to attached memory circuits. That + is, to write a sector on a drive the CPU must set up the contents in the + memory, then initiate a sector write operation. + + The advantage is a much higher data rate (in particular important when + working with hard disks) with less load for the main CPU. Also, we do not + need a READY line control (as seen with the WD17xx-based controllers). + Any kinds of asynchronous events are propagated via INTA* (configurable + to INTB*). + + Most of the control logic is hidden in the custom Gate Array chip. We do + not have details on its contents, but the specifications in the HFDC manual + and in the schematics are sufficient to create a (functionally) proper + emulation. + + The HDC9234 can also control tape drives. In early HFDC controller card + layouts, a socket for connecting a drive is available. However, there + never was a support from the DSR (firmware), so this feature was eliminated + in later releases. + + DIP switches + - Settings for step rate and track count for each floppy drive (DSK1-DSK4) + - CRU base address. Note that only on all other addresses than 1100, the + floppy drives are labeled DSK5-DSK8 by the card software. + + + Components + + HDC 9234 - Universal Disk Controller + FDC 9216 - Floppy disk data separator (8 MHz, divider is set by CD0 and CD1) + HDC 92C26 - MFM hard disk data separator (10 MHz, also used for 9234) + HDC 9223 - Analog data separator support + DS 1000-50 - Delay circuit + MM 58274BN - Real time clock + HM 6264-LP15 - SRAM 8K x 8 (may also be 32K x 8) + 27C128 - EPROM 16K x 8 + + References: + [1] Myarc Inc.: Hard and Floppy Disk Controller / Users Manual + + Michael Zapf + July 2015 + +*****************************************************************************/ + +#include "emu.h" +#include "hfdc.h" +#include "formats/mfm_hd.h" +#include "formats/ti99_dsk.h" // Format + +#define BUFFER "ram" +#define FDC_TAG "hdc9234" +#define CLOCK_TAG "mm58274c" + +#define MOTOR_TIMER 1 + +#define TAPE_ADDR 0x0fc0 +#define HDC_R_ADDR 0x0fd0 +#define HDC_W_ADDR 0x0fd2 +#define CLK_ADDR 0x0fe0 +#define RAM_ADDR 0x1000 + +#define TRACE_EMU 0 +#define TRACE_CRU 0 +#define TRACE_COMP 0 +#define TRACE_RAM 0 +#define TRACE_ROM 0 +#define TRACE_LINES 0 +#define TRACE_MOTOR 0 +#define TRACE_DMA 0 +#define TRACE_INT 0 + +// ========================================================================= + +/* + Constructor for the HFDC card. +*/ +myarc_hfdc_device::myarc_hfdc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : ti_expansion_card_device(mconfig, TI99_HFDC, tag, owner, clock), m_motor_on_timer(nullptr), + m_hdc9234(*this, FDC_TAG), + m_clock(*this, CLOCK_TAG), m_current_floppy(nullptr), + m_current_harddisk(nullptr), m_see_switches(false), + m_irq(), m_dip(), m_motor_running(false), + m_inDsrArea(false), m_HDCsel(false), m_RTCsel(false), + m_tapesel(false), m_RAMsel(false), m_ROMsel(false), m_address(0), + m_wait_for_hd1(false), m_dsrrom(nullptr), m_rom_page(0), + m_buffer_ram(*this, BUFFER), m_status_latch(0), m_dma_address(0), + m_output1_latch(0), m_output2_latch(0), m_lastval(0), m_MOTOR_ON(), m_readyflags(0) +{ +} + +SETADDRESS_DBIN_MEMBER( myarc_hfdc_device::setaddress_dbin ) +{ + // Do not allow setaddress for the debugger. It will mess up the + // setaddress/memory access pairs when the CPU enters wait states. + if (machine().side_effect_disabled()) return; + + // Selection login in the PAL and some circuits on the board + + // Is the card being selected? + // Area = 4000-5fff + // 010x xxxx xxxx xxxx + m_address = offset; + + m_inDsrArea = ((m_address & m_select_mask)==m_select_value); + + if (!m_inDsrArea) return; + + // Is the HDC chip on the card being selected? + // HDC9234: read: 4fd0,4 (mirror 8,c) + // HDC9234: write: 4fd2,6 (mirror a,e) + // read: ...0 1111 1101 xx00 + // write: ...0 1111 1101 xx10 + + m_HDCsel = m_inDsrArea && + ((state==ASSERT_LINE && ((m_address & 0x1ff3)==HDC_R_ADDR)) // read + || (state==CLEAR_LINE && ((m_address & 0x1ff3)==HDC_W_ADDR))); // write + + // Is the tape selected? + // ...0 1111 1100 xxxx + m_tapesel = m_inDsrArea && ((m_address & 0x1ff0)==TAPE_ADDR); + + // Is the RTC selected on the card? (even addr) + // ...0 1111 111x xxx0 + m_RTCsel = m_inDsrArea && ((m_address & 0x1fe1)==CLK_ADDR); + + // Is RAM selected? + // ...1 xxxx xxxx xxxx + m_RAMsel = m_inDsrArea && ((m_address & 0x1000)==RAM_ADDR); + + // Is ROM selected? + // not 0100 1111 11xx xxxx + m_ROMsel = m_inDsrArea && !m_RAMsel && !((m_address & 0x0fc0)==0x0fc0); +} + +/* + Access for debugger. This is a stripped-down version of the + main methods below. We only allow ROM and RAM access. +*/ +void myarc_hfdc_device::debug_read(offs_t offset, uint8_t* value) +{ + if (((offset & m_select_mask)==m_select_value) && m_selected) + { + if ((offset & 0x1000)==RAM_ADDR) + { + int bank = (offset & 0x0c00) >> 10; + *value = m_buffer_ram->pointer()[(m_ram_page[bank]<<10) | (offset & 0x03ff)]; + } + else + { + if ((offset & 0x0fc0)!=0x0fc0) + { + *value = m_dsrrom[(m_rom_page << 12) | (offset & 0x0fff)]; + } + } + } +} + +void myarc_hfdc_device::debug_write(offs_t offset, uint8_t data) +{ + if (((offset & m_select_mask)==m_select_value) && m_selected) + { + if ((offset & 0x1000)==RAM_ADDR) + { + int bank = (offset & 0x0c00) >> 10; + m_buffer_ram->pointer()[(m_ram_page[bank]<<10) | (m_address & 0x03ff)] = data; + } + } +} + +/* + Read a byte from the memory address space of the HFDC + + 0x4000 - 0x4fbf one of four possible ROM pages + 0x4fc0 - 0x4fcf Tape control (only available in prototype HFDC models) + 0x4fd0 - 0x4fdf HDC 9234 ports + 0x4fe0 - 0x4fff RTC chip ports + + 0x5000 - 0x53ff static RAM page 0x08 + 0x5400 - 0x57ff static RAM page any of 32 pages + 0x5800 - 0x5bff static RAM page any of 32 pages + 0x5c00 - 0x5fff static RAM page any of 32 pages + + HFDC manual, p. 44 +*/ +READ8Z_MEMBER(myarc_hfdc_device::readz) +{ + if (machine().side_effect_disabled()) + { + debug_read(offset, value); + return; + } + + if (m_inDsrArea && m_selected) + { + if (m_tapesel) + { + logerror("Tape support not available on this HFDC version (access to address %04x)\n", m_address & 0xffff); + return; + } + + if (m_HDCsel) + { + *value = m_hdc9234->read(space, (m_address>>2)&1, 0xff); + if (TRACE_COMP) logerror("%04x[HDC] -> %02x\n", m_address & 0xffff, *value); + return; + } + + if (m_RTCsel) + { + *value = m_clock->read(space, (m_address & 0x001e) >> 1); + if (TRACE_COMP) logerror("%04x[CLK] -> %02x\n", m_address & 0xffff, *value); + return; + } + + if (m_RAMsel) + { + // 0101 00xx xxxx xxxx static 0x08 + // 0101 01xx xxxx xxxx bank 1 + // 0101 10xx xxxx xxxx bank 2 + // 0101 11xx xxxx xxxx bank 3 + int bank = (m_address & 0x0c00) >> 10; + + // If a DMA is in progress, do not respond + if (m_dip == CLEAR_LINE) *value = m_buffer_ram->pointer()[(m_ram_page[bank]<<10) | (m_address & 0x03ff)]; + if (TRACE_RAM) + { + if (WORD_ALIGNED(m_address)) + { + int valword = (((*value) << 8) | m_buffer_ram->pointer()[(m_ram_page[bank]<<10) | ((m_address+1) & 0x03ff)])&0xffff; + logerror("%04x[%02x] -> %04x\n", m_address & 0xffff, m_ram_page[bank], valword); + } + } + return; + } + + if (m_ROMsel) + { + *value = m_dsrrom[(m_rom_page << 12) | (m_address & 0x0fff)]; + if (TRACE_ROM) + { + if (WORD_ALIGNED(m_address)) + { + int valword = (((*value) << 8) | m_dsrrom[(m_rom_page << 12) | ((m_address + 1) & 0x0fff)])&0xffff; + logerror("%04x[%02x] -> %04x\n", m_address & 0xffff, m_rom_page, valword); + } + } + return; + } + } +} + +/* + Write a byte to the memory address space of the HFDC + + 0x4fc0 - 0x4fcf Tape control (only available in prototype HFDC models) + 0x4fd0 - 0x4fdf HDC 9234 ports + 0x4fe0 - 0x4fff RTC chip ports + + 0x5000 - 0x53ff static RAM page 0x08 + 0x5400 - 0x57ff static RAM page any of 32 pages + 0x5800 - 0x5bff static RAM page any of 32 pages + 0x5c00 - 0x5fff static RAM page any of 32 pages +*/ +WRITE8_MEMBER( myarc_hfdc_device::write ) +{ + if (machine().side_effect_disabled()) + { + debug_write(offset, data); + return; + } + + if (m_inDsrArea && m_selected) + { + if (m_tapesel) + { + logerror("Tape support not available on this HFDC version (write access to address %04x: %02x)\n", m_address & 0xffff, data); + return; + } + + if (m_HDCsel) + { + if (TRACE_COMP) logerror("%04x[HDC] <- %02x\n", m_address & 0xffff, data); + m_hdc9234->write(space, (m_address>>2)&1, data, 0xff); + return; + } + + if (m_RTCsel) + { + if (TRACE_COMP) logerror("%04x[CLK] <- %02x\n", m_address & 0xffff, data); + m_clock->write(space, (m_address & 0x001e) >> 1, data); + return; + } + + if (m_RAMsel) + { + // 0101 00xx xxxx xxxx static 0x08 + // 0101 01xx xxxx xxxx bank 1 + // 0101 10xx xxxx xxxx bank 2 + // 0101 11xx xxxx xxxx bank 3 + int bank = (m_address & 0x0c00) >> 10; + if (TRACE_RAM) logerror("%04x[%02x] <- %02x\n", m_address & 0xffff, m_ram_page[bank], data); + + // When a DMA is in progress, do not change anything + if (m_dip == CLEAR_LINE) m_buffer_ram->pointer()[(m_ram_page[bank]<<10) | (m_address & 0x03ff)] = data; + return; + } + // The rest is ROM + if (m_ROMsel) + { + if (TRACE_ROM) logerror("Ignoring write ROM %04x[%02x]: %02x\n", m_address & 0xffff, m_rom_page, data); + } + } +} + +/* + Read a set of 8 bits in the CRU space of the HFDC + There are two banks, according to the state of m_see_switches + + m_see_switches == true: + + 7 6 5 4 3 2 1 0 CRU bit + +-----+-----+-----+-----+-----+-----+-----+-----+ + |DIP5*|DIP6*|DIP7*|DIP8*|DIP1*|DIP2*|DIP3*|DIP4*| + +-----+-----+-----+-----+-----+-----+-----+-----+ + | DSK3 | DSK4 | DSK1 | DSK2 | + +-----+-----+-----+-----+-----+-----+-----+-----+ + + Settings for DSKn: (n=1..4) + + DIP(2n-1) DIP(2n) Tracks Step(ms) Sectors (256 byte) + off off 40 16 18/16/9 + on off 40 8 18/16/9 + off on 80/40 2 18/16/9 + on on 80 2 36 + + Inverted logic: switch=on means a 0 bit, off is a 1 bit when read by the CRU + + Caution: The last setting is declared as "future expansion" and is + locked to a 1.44 MiB capacity. No lower formats can be used. + + --- + + m_see_switches == false: + + 7 6 5 4 3 2 1 0 + +-----+-----+-----+-----+-----+-----+-----+-----+ + | 0 | 0 | 0 | 0 | WAIT| MON*| DIP | IRQ | + +-----+-----+-----+-----+-----+-----+-----+-----+ + + WAIT = Wait for WDS1 to become ready + MON* = Motor on + DIP = DMA in progress + IRQ = Interrupt request + --- + 0 on all other locations +*/ +READ8Z_MEMBER(myarc_hfdc_device::crureadz) +{ + uint8_t reply; + if ((offset & 0xff00)==m_cru_base) + { + if ((offset & 0x00ff)==0) // CRU bits 0-7 + { + if (m_see_switches) + { + reply = ~(ioport("HFDCDIP")->read()); + } + else + { + reply = 0; + if (m_irq == ASSERT_LINE) reply |= 0x01; + if (m_dip == ASSERT_LINE) reply |= 0x02; + if (!m_motor_running) reply |= 0x04; + if (m_wait_for_hd1) reply |= 0x08; + } + *value = reply; + } + else // CRU bits 8+ + { + *value = 0; + } + + if (TRACE_CRU) logerror("CRU %04x -> %02x\n", offset & 0xffff, *value); + } +} + +/* + Set a bit in the CRU space of the HFDC + + 7 6 5 4 3 2 1 0 + +-----+-----+-----+-----+-----+-----+-----+-----+ + | - | - | - | ROM1| ROM0| MON | RES*| SEL | + | | | | CSEL| CD1 | CD0 | | | + +-----+-----+-----+-----+-----+-----+-----+-----+ + + 17 16 15 14 13 12 11 10 F E D C B A 9 8 + +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+ + | RAM page select @5C00 | RAM page select @5800 | RAM page select @5400 | - | + +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+ + + SEL = Select card (and map ROM into address space) + RES* = Reset controller + MON = Motor on / same line goes to CD0 input of floppy separator + ROM bank select: bank 0..3; bit 3 = MSB, 4 = LSB + RAM bank select: bank 0..31; bit 9 = LSB (accordingly for other two areas) + CD0 and CD1 are Clock Divider selections for the Floppy Data Separator (FDC9216) + CSEL = CRU input select (m_see_switches) + + HFDC manual p. 43 +*/ +WRITE8_MEMBER(myarc_hfdc_device::cruwrite) +{ + if ((offset & 0xff00)==m_cru_base) + { + if (TRACE_CRU) logerror("CRU %04x <- %d\n", offset & 0xffff, data); + + int bit = (offset >> 1) & 0x1f; + + // Handle the page selects right here + if (bit >= 0x09 && bit < 0x18) + { + if (data) + // we leave index 0 unchanged; modify indices 1-3 + m_ram_page[(bit-4)/5] |= 1 << ((bit-9)%5); + else + m_ram_page[(bit-4)/5] &= ~(1 << ((bit-9)%5)); + + if (TRACE_CRU) + { + if (bit==0x0d) logerror("RAM page @5400 = %d\n", m_ram_page[1]); + if (bit==0x12) logerror("RAM page @5800 = %d\n", m_ram_page[2]); + if (bit==0x17) logerror("RAM page @5C00 = %d\n", m_ram_page[3]); + } + return; + } + + switch (bit) + { + case 0: + { + bool turnOn = (data!=0); + // Avoid too many meaningless log outputs + if (TRACE_CRU) if (m_selected != turnOn) logerror("card %s\n", turnOn? "selected" : "unselected"); + m_selected = turnOn; + break; + } + case 1: + if (TRACE_CRU) if (data==0) logerror("trigger HDC reset\n"); + m_hdc9234->reset((data == 0)? ASSERT_LINE : CLEAR_LINE); + break; + + case 2: + m_hdc9234->set_clock_divider(0, data); + + // Activate motor + // When 1, let motor run continuously. When 0, a simple monoflop circuit keeps the line active for another 4 sec + if (data==1) + { + m_motor_on_timer->reset(); + set_floppy_motors_running(true); + } + else + { + m_motor_on_timer->adjust(attotime::from_msec(4230)); + } + m_lastval = data; + break; + + case 3: + m_hdc9234->set_clock_divider(1, data); + m_rom_page = (data != 0)? (m_rom_page | 2) : (m_rom_page & 0xfd); + if (TRACE_CRU) logerror("ROM page = %d\n", m_rom_page); + break; + + case 4: + m_see_switches = (data != 0); + m_rom_page = (data != 0)? (m_rom_page | 1) : (m_rom_page & 0xfe); + if (TRACE_CRU) logerror("ROM page = %d, see_switches = %d\n", m_rom_page, m_see_switches); + break; + + default: + logerror("Attempt to set undefined CRU bit %d\n", bit); + } + } +} + +/* + Monoflop has gone back to the OFF state. +*/ +void myarc_hfdc_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) +{ + set_floppy_motors_running(false); +} + +/* + This is called back from the floppy when an index hole is passing by. +*/ +void myarc_hfdc_device::floppy_index_callback(floppy_image_device *floppy, int state) +{ + if (TRACE_LINES) if (state==1) logerror("Floppy index pulse\n"); + // m_status_latch = (state==ASSERT_LINE)? (m_status_latch | hdc92x4_device::DS_INDEX) : (m_status_latch & ~hdc92x4_device::DS_INDEX); + set_bits(m_status_latch, hdc92x4_device::DS_INDEX, (state==ASSERT_LINE)); + signal_drive_status(); +} + +/* + This is called back from the hard disk when an index hole is passing by. +*/ +void myarc_hfdc_device::harddisk_index_callback(mfm_harddisk_device *harddisk, int state) +{ + if (TRACE_LINES) if (state==1) logerror("HD index pulse\n"); + set_bits(m_status_latch, hdc92x4_device::DS_INDEX, (state==ASSERT_LINE)); + signal_drive_status(); +} + +/* + This is called back from the hard disk when READY becomes asserted. +*/ +void myarc_hfdc_device::harddisk_ready_callback(mfm_harddisk_device *harddisk, int state) +{ + if (TRACE_LINES) logerror("HD READY = %d\n", state); + set_bits(m_status_latch, hdc92x4_device::DS_READY, (state==ASSERT_LINE)); + signal_drive_status(); +} + +/* + This is called back from the hard disk when seek_complete becomes asserted. +*/ +void myarc_hfdc_device::harddisk_skcom_callback(mfm_harddisk_device *harddisk, int state) +{ + if (TRACE_LINES) logerror("HD seek complete = %d\n", state); + set_bits(m_status_latch, hdc92x4_device::DS_SKCOM, (state==ASSERT_LINE)); + signal_drive_status(); +} + +void myarc_hfdc_device::set_bits(uint8_t& byte, int mask, bool set) +{ + if (set) byte |= mask; + else byte &= ~mask; +} + +/* + Maps the set bit to an index. The rightmost 1 bit is significant. When no + bit is set, returns -1. +*/ +int myarc_hfdc_device::bit_to_index(int value) +{ + if (value & 0x01) return 0; + if (value & 0x02) return 1; + if (value & 0x04) return 2; + if (value & 0x08) return 3; + return -1; +} + +/* + Notify the controller about the status change +*/ +void myarc_hfdc_device::signal_drive_status() +{ + uint8_t reply = 0; + // Status byte as defined by HDC9234 + // +------+------+------+------+------+------+------+------+ + // | ECC |Index | SeekC| Tr00 | User | WrPrt| Ready|Fault | + // +------+------+------+------+------+------+------+------+ + // + // Set by HFDC + // 74LS240 is used for driving the lines; it also inverts the inputs + // If no hard drive or floppy is connected, all lines are 0 + // +------+------+------+------+------+------+------+------+ + // | 0 | Index| SeekC| Tr00 | 0 | WrPrt| Ready|Fault | + // +------+------+------+------+------+------+------+------+ + // + // Ready = /WDS.ready* | DSK + // SeekComplete = /WDS.seekComplete* | DSK + + // If DSK is selected, set Ready and SeekComplete to 1 + if ((m_output1_latch & 0x10)!=0) + { + reply |= 0x22; + + // Check for TRK00* + if ((m_current_floppy != nullptr) && (!m_current_floppy->trk00_r())) + reply |= hdc92x4_device::DS_TRK00; + } + else + { + if ((m_output1_latch & 0xe0)!=0) + { + if (m_current_harddisk != nullptr) + { + if (m_current_harddisk->ready_r()==ASSERT_LINE) + { + m_status_latch |= hdc92x4_device::DS_READY; + set_bits(m_status_latch, hdc92x4_device::DS_SKCOM, m_current_harddisk->seek_complete_r()==ASSERT_LINE); + set_bits(m_status_latch, hdc92x4_device::DS_TRK00, m_current_harddisk->trk00_r()==ASSERT_LINE); + } + } + // If WDS is selected but not connected, WDS.ready* and WDS.seekComplete* are 1, so Ready=SeekComplete=0 + else set_bits(m_status_latch, hdc92x4_device::DS_READY | hdc92x4_device::DS_SKCOM, false); + } + } + + reply |= m_status_latch; + + m_hdc9234->auxbus_in(reply); +} + +/* + When the HDC outputs a byte via its AB (auxiliary bus), we need to latch it. + The target of the transfer is determined by two control lines (S1,S0). + (0,0) = input drive status + (0,1) = DMA address + (1,0) = OUTPUT1 + (1,1) = OUTPUT2 +*/ +WRITE8_MEMBER( myarc_hfdc_device::auxbus_out ) +{ + int index; + switch (offset) + { + case hdc92x4_device::INPUT_STATUS: + logerror("Invalid operation: S0=S1=0, but tried to write (expected: read drive status)\n"); + break; + + case hdc92x4_device::OUTPUT_DMA_ADDR: + // Value is dma address byte. Shift previous contents to the left. + // The value is latched inside the Gate Array. + m_dma_address = ((m_dma_address << 8) + (data&0xff))&0xffffff; + if (TRACE_DMA) logerror("Setting DMA address; current value = %06x\n", m_dma_address); + break; + + case hdc92x4_device::OUTPUT_1: + // value is output1 + // The HFDC interprets the value as follows: + // WDS = Winchester Drive System, old name for hard disk + // +------+------+------+------+------+------+------+------+ + // | WDS3 | WDS2 | WDS1 | DSKx | x=4 | x=3 | x=2 | x=1 | + // +------+------+------+------+------+------+------+------+ + // Accordingly, drive 0 is always the floppy; selected by the low nibble + + m_output1_latch = data; + + if ((data & 0x10) != 0) connect_floppy_unit(bit_to_index(data & 0x0f)); // Floppy selected + else + { + index = bit_to_index((data>>4) & 0x0f); + + if (index > 0) connect_harddisk_unit(index-1); // HD selected; index >= 1 + else + { + disconnect_floppy_drives(); + disconnect_hard_drives(); + + // Turn off READY and SEEK COMPLETE + set_bits(m_status_latch, hdc92x4_device::DS_READY | hdc92x4_device::DS_SKCOM, false); + } + } + break; + + case hdc92x4_device::OUTPUT_2: + // value is output2 + // DS3* = /WDS3 + // WCur = Reduced Write Current + // Dir = Step direction + // Step = Step pulse + // Head = Selected head number (floppy: 0000 or 0001) + // +------+------+------+------+------+------+------+------+ + // | DS3* | WCur | Dir | Step | Head | + // +------+------+------+------+------+------+------+------+ + m_output2_latch = data; + + // Output the step pulse to the selected floppy drive + if (m_current_floppy != nullptr) + { + m_current_floppy->ss_w(data & 0x01); + m_current_floppy->dir_w((data & 0x20)==0); + m_current_floppy->stp_w((data & 0x10)==0); + } + + if (m_current_harddisk != nullptr) + { + // Dir = 0 -> outward + m_current_harddisk->direction_in_w((data & 0x20)? ASSERT_LINE : CLEAR_LINE); + m_current_harddisk->step_w((data & 0x10)? ASSERT_LINE : CLEAR_LINE); + m_current_harddisk->headsel_w(data & 0x0f); + } + + // We are pushing the drive status after OUTPUT2 + signal_drive_status(); + break; + } +} + +enum +{ + HFDC_FLOPPY = 1, + HFDC_HARDDISK = 2 +}; + +void myarc_hfdc_device::connect_floppy_unit(int index) +{ + // Check if we have a new floppy + if (m_floppy_unit[index] != m_current_floppy) + { + // Clear all latched flags from other drives + m_status_latch = 0; + disconnect_floppy_drives(); + if (TRACE_LINES) logerror("Select floppy drive DSK%d\n", index+1); + + // Connect new drive + m_current_floppy = m_floppy_unit[index]; + + // We don't use the READY line of floppy drives. + // READY is asserted when DSKx = 1 + // The controller fetches the state with the auxbus access + if (TRACE_LINES) logerror("Connect index callback DSK%d\n", index+1); + if (m_current_floppy != nullptr) + m_current_floppy->setup_index_pulse_cb(floppy_image_device::index_pulse_cb(&myarc_hfdc_device::floppy_index_callback, this)); + else + logerror("Connection to DSK%d failed because no drive is connected\n", index+1); + m_hdc9234->connect_floppy_drive(m_floppy_unit[index]); + } + + // We can only run a floppy or a harddisk at a time, not both + disconnect_hard_drives(); +} + +void myarc_hfdc_device::connect_harddisk_unit(int index) +{ + if (m_harddisk_unit[index] != m_current_harddisk) + { + // Clear all latched flags form other drives + m_status_latch = 0; + disconnect_hard_drives(); + if (TRACE_LINES) logerror("Select hard disk WDS%d\n", index+1); + + // Connect new drive + m_current_harddisk = m_harddisk_unit[index]; + + if (TRACE_LINES) logerror("Connect index callback WDS%d\n", index+1); + if (m_current_harddisk != nullptr) + { + m_current_harddisk->setup_index_pulse_cb(mfm_harddisk_device::index_pulse_cb(&myarc_hfdc_device::harddisk_index_callback, this)); + m_current_harddisk->setup_ready_cb(mfm_harddisk_device::ready_cb(&myarc_hfdc_device::harddisk_ready_callback, this)); + m_current_harddisk->setup_seek_complete_cb(mfm_harddisk_device::seek_complete_cb(&myarc_hfdc_device::harddisk_skcom_callback, this)); + } + else + logerror("Connection to WDS%d failed because no drive is connected\n", index+1); + m_hdc9234->connect_hard_drive(m_current_harddisk); + } + + // We can only run a floppy or a harddisk at a time, not both + disconnect_floppy_drives(); +} + +void myarc_hfdc_device::disconnect_floppy_drives() +{ + if (TRACE_LINES) logerror("Unselect floppy drives\n"); + // Disconnect current floppy + if (m_current_floppy != nullptr) + { + m_current_floppy->setup_index_pulse_cb(floppy_image_device::index_pulse_cb()); + m_current_floppy = nullptr; + } +} + +void myarc_hfdc_device::disconnect_hard_drives() +{ + if (TRACE_LINES) logerror("Unselect hard drives\n"); + if (m_current_harddisk != nullptr) + { + m_current_harddisk->setup_index_pulse_cb(mfm_harddisk_device::index_pulse_cb()); + m_current_harddisk->setup_seek_complete_cb(mfm_harddisk_device::seek_complete_cb()); + m_current_harddisk = nullptr; + } +} + +/* + All floppy motors are operated by the same line. +*/ +void myarc_hfdc_device::set_floppy_motors_running(bool run) +{ + if (run) + { + if (TRACE_MOTOR) + if (m_MOTOR_ON==CLEAR_LINE) logerror("Motor START\n"); + m_MOTOR_ON = ASSERT_LINE; + } + else + { + if (TRACE_MOTOR) + if (m_MOTOR_ON==ASSERT_LINE) logerror("Motor STOP\n"); + m_MOTOR_ON = CLEAR_LINE; + } + + // Set all motors + for (auto & elem : m_floppy_unit) + if (elem != nullptr) elem->mon_w((run)? 0 : 1); +} + +/* + Called whenever the state of the HDC9234 interrupt pin changes. +*/ +WRITE_LINE_MEMBER( myarc_hfdc_device::intrq_w ) +{ + m_irq = (line_state)state; + if (TRACE_INT) logerror("INT pin from controller = %d, propagating to INTA*\n", state); + + // Set INTA* + // Signal from SMC is active high, INTA* is active low; board inverts signal + // Anyway, we stay with ASSERT_LINE and CLEAR_LINE + m_slot->set_inta(state); +} + +/* + Called whenever the HDC9234 desires bus access to the buffer RAM. The + controller expects a call to dmarq in 1 byte time. +*/ +WRITE_LINE_MEMBER( myarc_hfdc_device::dmarq_w ) +{ + if (TRACE_DMA) logerror("DMARQ pin from controller = %d\n", state); + if (state == ASSERT_LINE) + { + m_hdc9234->dmaack(ASSERT_LINE); + } +} + +/* + Called whenever the state of the HDC9234 DMA in progress changes. +*/ +WRITE_LINE_MEMBER( myarc_hfdc_device::dip_w ) +{ + m_dip = (line_state)state; +} + +/* + Read a byte from the onboard SRAM. This is called from the HDC9234. +*/ +READ8_MEMBER( myarc_hfdc_device::read_buffer ) +{ + if (TRACE_DMA) logerror("Read access to onboard SRAM at %04x\n", m_dma_address); + if (m_dma_address > 0x8000) logerror("Read access beyond RAM size: %06x\n", m_dma_address); + uint8_t value = m_buffer_ram->pointer()[m_dma_address & 0x7fff]; + m_dma_address = (m_dma_address+1) & 0x7fff; + return value; +} + +/* + Write a byte to the onboard SRAM. This is called from the HDC9234. +*/ +WRITE8_MEMBER( myarc_hfdc_device::write_buffer ) +{ + if (TRACE_DMA) logerror("Write access to onboard SRAM at %04x: %02x\n", m_dma_address, data); + if (m_dma_address > 0x8000) logerror("Write access beyond RAM size: %06x\n", m_dma_address); + m_buffer_ram->pointer()[m_dma_address & 0x7fff] = data; + m_dma_address = (m_dma_address+1) & 0x7fff; +} + +void myarc_hfdc_device::device_start() +{ + m_dsrrom = memregion(DSRROM)->base(); + m_motor_on_timer = timer_alloc(MOTOR_TIMER); + // The HFDC does not use READY; it has on-board RAM for DMA + m_current_floppy = nullptr; + m_current_harddisk = nullptr; + + // Parent class members + save_item(NAME(m_senila)); + save_item(NAME(m_senilb)); + save_item(NAME(m_selected)); + save_item(NAME(m_genmod)); + save_item(NAME(m_cru_base)); + save_item(NAME(m_select_mask)); + save_item(NAME(m_select_value)); + + // Own members + save_item(NAME(m_see_switches)); + save_item(NAME(m_irq)); + save_item(NAME(m_dip)); + save_item(NAME(m_motor_running)); + save_item(NAME(m_inDsrArea)); + save_item(NAME(m_HDCsel)); + save_item(NAME(m_RTCsel)); + save_item(NAME(m_tapesel)); + save_item(NAME(m_RAMsel)); + save_item(NAME(m_ROMsel)); + save_item(NAME(m_address)); + save_item(NAME(m_wait_for_hd1)); + save_item(NAME(m_rom_page)); + save_pointer(NAME(m_ram_page),4); + save_item(NAME(m_status_latch)); + save_item(NAME(m_dma_address)); + save_item(NAME(m_output1_latch)); + save_item(NAME(m_output2_latch)); + save_item(NAME(m_lastval)); + save_item(NAME(m_MOTOR_ON)); + save_item(NAME(m_readyflags)); +} + +void myarc_hfdc_device::device_reset() +{ + // The GenMOD mod; our implementation automagically adapts all cards + if (m_genmod) + { + m_select_mask = 0x1fe000; + m_select_value = 0x174000; + } + else + { + m_select_mask = 0x7e000; + m_select_value = 0x74000; + } + + m_cru_base = ioport("CRUHFDC")->read(); + m_wait_for_hd1 = ioport("WAITHD1")->read(); + + // Resetting values + m_rom_page = 0; + + m_ram_page[0] = 0x08; // static page 0x08 + for (int i=1; i < 4; i++) m_ram_page[i] = 0; + + m_output1_latch = m_output2_latch = 0; + + m_status_latch = 0x00; + + m_dip = m_irq = CLEAR_LINE; + m_see_switches = false; + m_motor_running = false; + m_selected = false; + m_lastval = 0; + m_readyflags = 0; + + for (int i=0; i < 4; i++) + { + if (m_floppy_unit[i] != nullptr) + logerror("FD connector %d with %s\n", i+1, m_floppy_unit[i]->name()); + else + logerror("FD connector %d has no floppy attached\n", i+1); + } + + for (int i=0; i < 3; i++) + { + if (m_harddisk_unit[i] != nullptr) + logerror("HD connector %d with %s\n", i+1, m_harddisk_unit[i]->name()); + else + logerror("HD connector %d has no drive attached\n", i+1); + } + + // Disconnect all units + disconnect_floppy_drives(); + disconnect_hard_drives(); +} + +void myarc_hfdc_device::device_config_complete() +{ + for (int i=0; i < 3; i++) + { + m_floppy_unit[i] = nullptr; + m_harddisk_unit[i] = nullptr; + } + m_floppy_unit[3] = nullptr; + + // Seems to be null when doing a "-listslots" + if (subdevice("f1")!=nullptr) + { + m_floppy_unit[0] = static_cast(subdevice("f1"))->get_device(); + m_floppy_unit[1] = static_cast(subdevice("f2"))->get_device(); + m_floppy_unit[2] = static_cast(subdevice("f3"))->get_device(); + m_floppy_unit[3] = static_cast(subdevice("f4"))->get_device(); + + m_harddisk_unit[0] = static_cast(subdevice("h1"))->get_device(); + m_harddisk_unit[1] = static_cast(subdevice("h2"))->get_device(); + m_harddisk_unit[2] = static_cast(subdevice("h3"))->get_device(); + } +} + +/* + The HFDC controller can be configured for different CRU base addresses, + but DSK1-DSK4 are only available for CRU 1100. For all other addresses, + the drives 1 to 4 are renamed to DSK5-DSK8 (see [1] p. 7). +*/ +INPUT_PORTS_START( ti99_hfdc ) + PORT_START( "WAITHD1" ) + PORT_DIPNAME( 0x01, 0x00, "HFDC Wait for HD1" ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x01, DEF_STR( On ) ) + + PORT_START( "CRUHFDC" ) + PORT_DIPNAME( 0x1f00, 0x1100, "HFDC CRU base" ) + PORT_DIPSETTING( 0x1000, "1000" ) + PORT_DIPSETTING( 0x1100, "1100" ) + PORT_DIPSETTING( 0x1200, "1200" ) + PORT_DIPSETTING( 0x1300, "1300" ) + PORT_DIPSETTING( 0x1400, "1400" ) + PORT_DIPSETTING( 0x1500, "1500" ) + PORT_DIPSETTING( 0x1600, "1600" ) + PORT_DIPSETTING( 0x1700, "1700" ) + PORT_DIPSETTING( 0x1800, "1800" ) + PORT_DIPSETTING( 0x1900, "1900" ) + PORT_DIPSETTING( 0x1a00, "1A00" ) + PORT_DIPSETTING( 0x1b00, "1B00" ) + PORT_DIPSETTING( 0x1c00, "1C00" ) + PORT_DIPSETTING( 0x1d00, "1D00" ) + PORT_DIPSETTING( 0x1e00, "1E00" ) + PORT_DIPSETTING( 0x1f00, "1F00" ) + + PORT_START( "HFDCDIP" ) + PORT_DIPNAME( 0x0c, 0x08, "HFDC drive 1 config" ) + PORT_DIPSETTING( 0x00, "40 track, 16 ms") + PORT_DIPSETTING( 0x08, "40 track, 8 ms") + PORT_DIPSETTING( 0x04, "80 track, 2 ms") + PORT_DIPSETTING( 0x0c, "80 track HD, 2 ms") + PORT_DIPNAME( 0x03, 0x02, "HFDC drive 2 config" ) + PORT_DIPSETTING( 0x00, "40 track, 16 ms") + PORT_DIPSETTING( 0x02, "40 track, 8 ms") + PORT_DIPSETTING( 0x01, "80 track, 2 ms") + PORT_DIPSETTING( 0x03, "80 track HD, 2 ms") + PORT_DIPNAME( 0xc0, 0x80, "HFDC drive 3 config" ) + PORT_DIPSETTING( 0x00, "40 track, 16 ms") + PORT_DIPSETTING( 0x80, "40 track, 8 ms") + PORT_DIPSETTING( 0x40, "80 track, 2 ms") + PORT_DIPSETTING( 0xc0, "80 track HD, 2 ms") + PORT_DIPNAME( 0x30, 0x20, "HFDC drive 4 config" ) + PORT_DIPSETTING( 0x00, "40 track, 16 ms") + PORT_DIPSETTING( 0x20, "40 track, 8 ms") + PORT_DIPSETTING( 0x10, "80 track, 2 ms") + PORT_DIPSETTING( 0x30, "80 track HD, 2 ms") +INPUT_PORTS_END + +FLOPPY_FORMATS_MEMBER(myarc_hfdc_device::floppy_formats) + FLOPPY_TI99_SDF_FORMAT, + FLOPPY_TI99_TDF_FORMAT +FLOPPY_FORMATS_END + +static SLOT_INTERFACE_START( hfdc_floppies ) + SLOT_INTERFACE( "525dd", FLOPPY_525_DD ) // 40 tracks + SLOT_INTERFACE( "525qd", FLOPPY_525_QD ) // 80 tracks + SLOT_INTERFACE( "35dd", FLOPPY_35_DD ) // 80 tracks + SLOT_INTERFACE( "35hd", FLOPPY_35_HD ) // 80 tracks 1.4 MiB +SLOT_INTERFACE_END + +static SLOT_INTERFACE_START( hfdc_harddisks ) + SLOT_INTERFACE( "generic", MFMHD_GENERIC ) // Generic hard disk (self-adapting to image) + SLOT_INTERFACE( "st213", MFMHD_ST213 ) // Seagate ST-213 (10 MB) + SLOT_INTERFACE( "st225", MFMHD_ST225 ) // Seagate ST-225 (20 MB) + SLOT_INTERFACE( "st251", MFMHD_ST251 ) // Seagate ST-251 (40 MB) +SLOT_INTERFACE_END + +MACHINE_CONFIG_FRAGMENT( ti99_hfdc ) + MCFG_DEVICE_ADD(FDC_TAG, HDC9234, 0) + MCFG_HDC92X4_INTRQ_CALLBACK(WRITELINE(myarc_hfdc_device, intrq_w)) + MCFG_HDC92X4_DIP_CALLBACK(WRITELINE(myarc_hfdc_device, dip_w)) + MCFG_HDC92X4_AUXBUS_OUT_CALLBACK(WRITE8(myarc_hfdc_device, auxbus_out)) + MCFG_HDC92X4_DMARQ_CALLBACK(WRITELINE(myarc_hfdc_device, dmarq_w)) + MCFG_HDC92X4_DMA_IN_CALLBACK(READ8(myarc_hfdc_device, read_buffer)) + MCFG_HDC92X4_DMA_OUT_CALLBACK(WRITE8(myarc_hfdc_device, write_buffer)) + + MCFG_FLOPPY_DRIVE_ADD("f1", hfdc_floppies, "525dd", myarc_hfdc_device::floppy_formats) + MCFG_FLOPPY_DRIVE_SOUND(true) + MCFG_FLOPPY_DRIVE_ADD("f2", hfdc_floppies, "525dd", myarc_hfdc_device::floppy_formats) + MCFG_FLOPPY_DRIVE_SOUND(true) + MCFG_FLOPPY_DRIVE_ADD("f3", hfdc_floppies, nullptr, myarc_hfdc_device::floppy_formats) + MCFG_FLOPPY_DRIVE_SOUND(true) + MCFG_FLOPPY_DRIVE_ADD("f4", hfdc_floppies, nullptr, myarc_hfdc_device::floppy_formats) + MCFG_FLOPPY_DRIVE_SOUND(true) + + // NB: Hard disks don't go without image (other than floppy drives) + MCFG_MFM_HARDDISK_CONN_ADD("h1", hfdc_harddisks, nullptr, MFM_BYTE, 3000, 20, MFMHD_GEN_FORMAT) + MCFG_MFM_HARDDISK_CONN_ADD("h2", hfdc_harddisks, nullptr, MFM_BYTE, 2000, 20, MFMHD_GEN_FORMAT) + MCFG_MFM_HARDDISK_CONN_ADD("h3", hfdc_harddisks, nullptr, MFM_BYTE, 2000, 20, MFMHD_GEN_FORMAT) + + MCFG_DEVICE_ADD(CLOCK_TAG, MM58274C, 0) + MCFG_MM58274C_MODE24(1) // 24 hour + MCFG_MM58274C_DAY1(0) // sunday + + MCFG_RAM_ADD(BUFFER) + MCFG_RAM_DEFAULT_SIZE("32K") + MCFG_RAM_DEFAULT_VALUE(0) +MACHINE_CONFIG_END + +ROM_START( ti99_hfdc ) + ROM_REGION(0x4000, DSRROM, 0) + ROM_LOAD("hfdc_dsr.u34", 0x0000, 0x4000, CRC(66fbe0ed) SHA1(11df2ecef51de6f543e4eaf8b2529d3e65d0bd59)) /* HFDC disk DSR ROM */ +ROM_END + + +machine_config_constructor myarc_hfdc_device::device_mconfig_additions() const +{ + return MACHINE_CONFIG_NAME( ti99_hfdc ); +} + +const tiny_rom_entry *myarc_hfdc_device::device_rom_region() const +{ + return ROM_NAME( ti99_hfdc ); +} + +ioport_constructor myarc_hfdc_device::device_input_ports() const +{ + return INPUT_PORTS_NAME( ti99_hfdc ); +} + +DEFINE_DEVICE_TYPE(TI99_HFDC, myarc_hfdc_device, "ti99_hfdc", "Myarc Hard and Floppy Disk Controller") diff --git a/src/devices/bus/ti99/peb/hfdc.h b/src/devices/bus/ti99/peb/hfdc.h new file mode 100644 index 00000000000..c1bec7e014b --- /dev/null +++ b/src/devices/bus/ti99/peb/hfdc.h @@ -0,0 +1,190 @@ +// license:LGPL-2.1+ +// copyright-holders:Michael Zapf +/**************************************************************************** + + Myarc Hard and Floppy Disk Controller + See hfdc.c for documentation + + January 2012: rewritten as class + June 2014: rewritten for modern floppy implementation + + Michael Zapf + July 2015 + +****************************************************************************/ + +#ifndef MAME_BUS_TI99_PEB_HFDC_H +#define MAME_BUS_TI99_PEB_HFDC_H + +#pragma once + +#include "peribox.h" + +#include "imagedev/floppy.h" +#include "imagedev/mfmhd.h" + +#include "machine/mm58274c.h" +#include "machine/hdc92x4.h" +#include "machine/ram.h" + +extern const device_type TI99_HFDC; + +/* + Implementation for modern floppy system. +*/ +class myarc_hfdc_device : public ti_expansion_card_device +{ +public: + myarc_hfdc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + + DECLARE_READ8Z_MEMBER(readz) override; + DECLARE_WRITE8_MEMBER(write) override; + DECLARE_SETADDRESS_DBIN_MEMBER(setaddress_dbin) override; + DECLARE_READ8Z_MEMBER(crureadz) override; + DECLARE_WRITE8_MEMBER(cruwrite) override; + + DECLARE_WRITE_LINE_MEMBER( dmarq_w ); + DECLARE_WRITE_LINE_MEMBER( intrq_w ); + DECLARE_WRITE_LINE_MEMBER( dip_w ); + DECLARE_WRITE8_MEMBER( auxbus_out ); + DECLARE_READ8_MEMBER( read_buffer ); + DECLARE_WRITE8_MEMBER( write_buffer ); + + DECLARE_FLOPPY_FORMATS( floppy_formats ); + +protected: + void device_config_complete() override; + +private: + void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + void device_start() override; + void device_reset() override; + + const tiny_rom_entry *device_rom_region() const override; + machine_config_constructor device_mconfig_additions() const override; + ioport_constructor device_input_ports() const override; + + // Debug accessors + void debug_read(offs_t offset, uint8_t* value); + void debug_write(offs_t offset, uint8_t data); + + // Callbacks for the index hole and seek complete + void floppy_index_callback(floppy_image_device *floppy, int state); + void harddisk_index_callback(mfm_harddisk_device *harddisk, int state); + void harddisk_ready_callback(mfm_harddisk_device *harddisk, int state); + void harddisk_skcom_callback(mfm_harddisk_device *harddisk, int state); + + // Operate the floppy motors + void set_floppy_motors_running(bool run); + + // Connect floppy drives + void connect_floppy_unit(int index); + + // Connect harddisk drives + void connect_harddisk_unit(int index); + + // Disconnect drives + void disconnect_floppy_drives(); + void disconnect_hard_drives(); + + // Pushes the drive status to the HDC + void signal_drive_status(); + + // Motor monoflop (4.23 sec) + emu_timer* m_motor_on_timer; + + // HDC9234 controller on the board + required_device m_hdc9234; + + // Clock chip on the board + required_device m_clock; + + // Link to the attached floppy drives + floppy_image_device* m_floppy_unit[4]; + + // Link to the attached hard disks + mfm_harddisk_device* m_harddisk_unit[3]; + + // Currently selected floppy drive + floppy_image_device* m_current_floppy; + + // Currently selected hard drive + mfm_harddisk_device* m_current_harddisk; + + // True: Access to DIP switch settings, false: access to line states + bool m_see_switches; + + // IRQ state + int m_irq; + + // DMA in Progress state + int m_dip; + + // When true, motor monoflop is high + bool m_motor_running; + + // Address in card area + bool m_inDsrArea; + + // HDC selected + bool m_HDCsel; + + // RTC selected + bool m_RTCsel; + + // Tape selected + bool m_tapesel; + + // RAM selected + bool m_RAMsel; + + // RAM selected + bool m_ROMsel; + + // Recent address + int m_address; + + // Wait for HD. This was an addition in later cards. + bool m_wait_for_hd1; + + // Device Service Routine ROM (firmware) + uint8_t* m_dsrrom; + + // ROM banks. + int m_rom_page; + + // HFDC on-board SRAM (8K or 32K) + required_device m_buffer_ram; + + // RAM page registers + int m_ram_page[4]; + + // Drive status latch (STB0) + uint8_t m_status_latch; + + // DMA address latch (in Gate Array) (STB1) + uint32_t m_dma_address; + + // Output 1 latch (STB2) + uint8_t m_output1_latch; + + // Output 2 latch (STB3) + uint8_t m_output2_latch; + + // Needed for triggering the motor monoflop + uint8_t m_lastval; + + // Signal motor_on. When true, makes all drives turning. + int m_MOTOR_ON; + + // Calculates the index from the bit + int bit_to_index(int value); + + // Utility function to set or unset bits in a byte + void set_bits(uint8_t& byte, int mask, bool set); + + // Joined ready line towards the controller + int m_readyflags; +}; + +#endif // MAME_BUS_TI99_PEB_HFDC_H diff --git a/src/devices/bus/ti99/peb/horizon.cpp b/src/devices/bus/ti99/peb/horizon.cpp new file mode 100644 index 00000000000..aaf2f37b65d --- /dev/null +++ b/src/devices/bus/ti99/peb/horizon.cpp @@ -0,0 +1,494 @@ +// license:LGPL-2.1+ +// copyright-holders:Michael Zapf +/**************************************************************************** + + Horizon Ramdisk + + This emulation realizes the latest development, the HRD 4000, which could + host up to 16 MiB of SRAM. Real cards rarely had more than 1.5 MiB since + the SRAM used on the card is rather expensive. + + The SRAM is buffered with a battery pack. Also, there is an option for + an additional 32 KiB of unbuffered memory. + + The driver (ROS) of the ramdisk is stored in another buffered 8 KiB SRAM. + + The Horizon RAMdisk comes with a disk containing the ROS and a configuration + program (CFG). The latest version is ROS 8.14. + + Technical details: + + In the tradition (Horizon) mode, memory is organized as 2 KiB pages. The + pages are selected via CRU bits and visible in the address area 5800 - 5fff. + The area 4000-57ff is occupied by the ROS. As with all peripheral cards, + the 4000-5fff area requires a CRU bit to be set (usually bit 0 of this + card's CRU base). + + Next releases of the HRD included new modes. The RAMBO (RAM Block operator) + mode gathers four pages to a single 8 KiB page that is visible in the + area 6000-7fff (cartridge space). Note that due to a possible design glitch, + each RAMBO page n covers Horizon pages 4n, 4n+2, 4n+1, 4n+3 in this sequence. + We emulate this by swapping two CRU lines. + + The RAMDisk may be split in two separate drives, which is called the + Phoenix extension. This is particularly important for use in the Geneve. + As a bootable drive, the RAMdisk must not + exceed 256 KiB; consequently, the RAM area is split, and one part realizes + the boot drive while the other is still available for data. Also, there + is a mechanism for selecting the parts of the card: The TI setting allows + to select two CRU addresses, one for each part. In the Geneve mode, only + one CRU address is used (1400 or 1600), and the part is selected by the + fact that one disk uses CRU bits higher than 8, while the other uses the + bits lower than 8. + + The card is able to handle 128K*8 and 512K*8 SRAM chips, allowing a total + of 16 MiB memory space. Unfortunately, a bug causes the configuration + program to crash when used with more than 2 MiB. Although the card was + quite popular, this bug was not found because most cards were sold with + less than 2 MiB onboard. As the community is still alive we can hope for + a fix for this problem; so we make the size configurable. + +*****************************************************************************/ + +#include "emu.h" +#include "horizon.h" + +#define RAMREGION "ram32k" +#define ROSREGION "ros8k" +#define NVRAMREGION "nvram" + +#define MAXSIZE 16777216 +#define ROSSIZE 8192 + +#define TRACE_CONFIG 0 +#define TRACE_READ 0 +#define TRACE_WRITE 0 +#define TRACE_CRU 0 + +horizon_ramdisk_device::horizon_ramdisk_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) +: ti_expansion_card_device(mconfig, TI99_HORIZON, tag, owner, clock), + device_nvram_interface(mconfig, *this), + m_ram(*this, RAMREGION), + m_nvram(*this, NVRAMREGION), + m_ros(*this, ROSREGION), + m_select6_value(0), + m_select_all(0), + m_page(0), + m_cru_horizon(0), + m_cru_phoenix(0), + m_timode(false), + m_32k_installed(false), + m_split_mode(false), + m_rambo_mode(false), + m_hideswitch(false), + m_use_rambo(false) +{ +} + +//------------------------------------------------- +// nvram_default - called to initialize NVRAM to +// its default state +//------------------------------------------------- + +void horizon_ramdisk_device::nvram_default() +{ + int size = 2097152*(1 << ioport("HORIZONSIZE")->read()); + memset(m_nvram->pointer(), 0, size); + memset(m_ros->pointer(), 0, ROSSIZE); +} + +//------------------------------------------------- +// nvram_read - called to read NVRAM from the +// .nv file +//------------------------------------------------- + +void horizon_ramdisk_device::nvram_read(emu_file &file) +{ + int size = 2097152*(1 << ioport("HORIZONSIZE")->read()); + + // NVRAM plus ROS + uint8_t* buffer = global_alloc_array_clear(MAXSIZE + ROSSIZE); + + memset(m_nvram->pointer(), 0, size); + memset(m_ros->pointer(), 0, ROSSIZE); + + // We assume the last 8K is ROS + int filesize = file.read(buffer, MAXSIZE+ROSSIZE); + int nvramsize = filesize - ROSSIZE; + + // If there is a reasonable size + if (nvramsize >= 0) + { + // Copy from buffer to NVRAM and ROS + memcpy(m_nvram->pointer(), buffer, nvramsize); + memcpy(m_ros->pointer(), buffer + nvramsize, ROSSIZE); + } + + global_free_array(buffer); +} + +//------------------------------------------------- +// nvram_write - called to write NVRAM to the +// .nv file +//------------------------------------------------- + +void horizon_ramdisk_device::nvram_write(emu_file &file) +{ + int nvramsize = 2097152*(1 << ioport("HORIZONSIZE")->read()); + + uint8_t* buffer = global_alloc_array_clear(nvramsize + ROSSIZE); + memcpy(buffer, m_nvram->pointer(), nvramsize); + memcpy(buffer + nvramsize, m_ros->pointer(), ROSSIZE); + + file.write(buffer, nvramsize + ROSSIZE); +} + +READ8Z_MEMBER(horizon_ramdisk_device::readz) +{ + // 32K expansion + // According to the manual, "this memory is not affected by the HIDE switch" + if (m_32k_installed) + { + switch((offset & 0xe000)>>13) + { + case 1: // 2000-3fff + *value = m_ram->pointer()[offset & 0x1fff]; + return; + case 5: // a000-bfff + *value = m_ram->pointer()[(offset & 0x1fff) | 0x2000]; + return; + case 6: // c000-dfff + *value = m_ram->pointer()[(offset & 0x1fff) | 0x4000]; + return; + case 7: // e000-ffff + *value = m_ram->pointer()[(offset & 0x1fff) | 0x6000]; + return; + default: + break; + } + } + + if (m_hideswitch) return; + + // I think RAMBO mode does not need the card to be selected + if (!m_selected && !m_rambo_mode) return; + + if (!m_rambo_mode) + { + if ((offset & m_select_mask) == m_select_value) + { + if ((offset & 0x1800) == 0x1800) + { + // NVRAM page of size 2 KiB + *value = m_nvram->pointer()[(m_page << 11)|(offset & 0x07ff)]; + if (TRACE_READ) logerror("offset=%04x, page=%04x -> %02x\n", offset&0xffff, m_page, *value); + } + else + { + // ROS + *value = m_ros->pointer()[offset & 0x1fff]; + if (TRACE_READ) logerror("offset=%04x (ROS) -> %02x\n", offset&0xffff, *value); + } + } + } + else + { + if ((offset & m_select_mask)==m_select_value) + { + *value = m_ros->pointer()[offset & 0x1fff]; + if (TRACE_READ) logerror("offset=%04x (Rambo) -> %02x\n", offset&0xffff, *value); + } + if ((offset & m_select_mask)==m_select6_value) + { + // In RAMBO mode the page numbers are multiples of 4 + // (encompassing 4 Horizon pages) + // We clear away the rightmost two bits + *value = m_nvram->pointer()[((m_page&0xfffc)<<11) | (offset & 0x1fff)]; + if (TRACE_READ) logerror("offset=%04x, page=%04x (Rambo) -> %02x\n", offset&0xffff, m_page, *value); + } + } +} + +WRITE8_MEMBER(horizon_ramdisk_device::write) +{ + // 32K expansion + // According to the manual, "this memory is not affected by the HIDE switch" + if (m_32k_installed) + { + switch((offset & 0xe000)>>13) + { + case 1: // 2000-3fff + m_ram->pointer()[offset & 0x1fff] = data; + return; + case 5: // a000-bfff + m_ram->pointer()[(offset & 0x1fff) | 0x2000] = data; + return; + case 6: // c000-dfff + m_ram->pointer()[(offset & 0x1fff) | 0x4000] = data; + return; + case 7: // e000-ffff + m_ram->pointer()[(offset & 0x1fff) | 0x6000] = data; + return; + default: + break; + } + } + + if (m_hideswitch) return; + + // I think RAMBO mode does not need the card to be selected + if (!m_selected && !m_rambo_mode) return; + + if (!m_rambo_mode) + { + if ((offset & m_select_mask) == m_select_value) + { + if ((offset & 0x1800) == 0x1800) + { + // NVRAM page of size 2 KiB + m_nvram->pointer()[(m_page << 11)|(offset & 0x07ff)] = data; + if (TRACE_WRITE) logerror("offset=%04x, page=%04x <- %02x\n", offset&0xffff, m_page, data); + } + else + { + // ROS + m_ros->pointer()[offset & 0x1fff] = data; + if (TRACE_WRITE) logerror("offset=%04x (ROS) <- %02x\n", offset&0xffff, data); + } + } + } + else + { + if ((offset & m_select_mask)==m_select_value) + { + m_ros->pointer()[offset & 0x1fff] = data; + if (TRACE_WRITE) logerror("offset=%04x (Rambo) <- %02x\n", offset&0xffff, data); + } + if ((offset & m_select_mask)==m_select6_value) + { + // In RAMBO mode the page numbers are multiples of 4 + // (encompassing 4 Horizon pages) + // We clear away the rightmost two bits + m_nvram->pointer()[((m_page&0xfffc)<<11) | (offset & 0x1fff)] = data; + if (TRACE_WRITE) logerror("offset=%04x, page=%04x (Rambo) <- %02x\n", offset&0xffff, m_page, data); + } + } +} + +READ8Z_MEMBER(horizon_ramdisk_device::crureadz) +{ + // There is no CRU read operation for the Horizon. + return; +} + +void horizon_ramdisk_device::setbit(int& page, int pattern, bool set) +{ + if (set) + { + page |= pattern; + } + else + { + page &= ~pattern; + } +} + +WRITE8_MEMBER(horizon_ramdisk_device::cruwrite) +{ + int size = ioport("HORIZONSIZE")->read(); + int split_bit = size + 10; + int splitpagebit = 0x0200 << size; + + if (((offset & 0xff00)==m_cru_horizon)||((offset & 0xff00)==m_cru_phoenix)) + { + int bit = (offset >> 1) & 0x0f; + if (TRACE_CRU) logerror("CRU write bit %d <- %d\n", bit, data); + switch (bit) + { + case 0: + m_selected = (data!=0); + if (TRACE_CRU) logerror("Activate ROS = %d\n", m_selected); + break; + case 1: + // Swap the lines so that the access with RAMBO is consistent + if (!m_rambo_mode) setbit(m_page, 0x0002, data!=0); + break; + case 2: + // Swap the lines so that the access with RAMBO is consistent + if (!m_rambo_mode) setbit(m_page, 0x0001, data!=0); + break; + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + setbit(m_page, 0x0001 << (bit-1), data!=0); + break; + case 14: + break; + case 15: + if (m_use_rambo) + { + m_rambo_mode = (data != 0); + if (TRACE_CRU) logerror("RAMBO = %d\n", m_rambo_mode); + } + break; + + default: // bits 10-13 + if (bit != split_bit || !m_split_mode) + { + if (bit <= split_bit) setbit(m_page, 0x0200<<(bit-10), data!=0); + } + break; + } + + if (m_split_mode) + { + if (m_timode) + { + // In TI mode, switch between both RAMDisks using the CRU address + setbit(m_page, splitpagebit, ((offset & 0xff00)==m_cru_phoenix)); + } + else + { + // In Geneve mode, switch between both RAMdisks by + // using the bit number of the last CRU access + setbit(m_page, splitpagebit, (bit>7)); + } + } + } +} + +void horizon_ramdisk_device::device_start(void) +{ + m_cru_horizon = 0; + m_cru_phoenix = 0; + + save_item(NAME(m_select6_value)); + save_item(NAME(m_select_all)); + save_item(NAME(m_page)); + save_item(NAME(m_cru_horizon)); + save_item(NAME(m_cru_phoenix)); + save_item(NAME(m_timode)); + save_item(NAME(m_32k_installed)); + save_item(NAME(m_split_mode)); + save_item(NAME(m_rambo_mode)); + save_item(NAME(m_hideswitch)); + save_item(NAME(m_use_rambo)); +} + +void horizon_ramdisk_device::device_reset(void) +{ + if (m_genmod) + { + m_select_mask = 0x1fe000; + m_select_value = 0x174000; + m_select6_value = 0x176000; + m_select_all = 0x170000; + } + else + { + m_select_mask = 0x7e000; + m_select_value = 0x74000; + m_select6_value = 0x76000; + m_select_all = 0x70000; + } + + m_cru_horizon = ioport("CRUHOR")->read(); + m_cru_phoenix = ioport("CRUPHOE")->read(); + + m_32k_installed = (ioport("HORIZON32")->read()!=0); + + m_split_mode = (ioport("HORIZONDUAL")->read()!=0); + m_timode = (ioport("HORIZONDUAL")->read()==1); + + m_rambo_mode = false; + m_hideswitch = (ioport("HORIZONACT")->read()!=0); + + m_use_rambo = (ioport("RAMBO")->read()!=0); + + m_page = 0; + m_selected = false; +} + +INPUT_CHANGED_MEMBER( horizon_ramdisk_device::hs_changed ) +{ + if (TRACE_CONFIG) logerror("hideswitch changed %d\n", newval); + m_hideswitch = (newval!=0); +} + +/* + Input ports for the Horizon +*/ +INPUT_PORTS_START( horizon ) + PORT_START( "CRUHOR" ) + PORT_DIPNAME( 0x1f00, 0x1200, "Horizon CRU base" ) + PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x1000, "1000" ) + PORT_DIPSETTING( 0x1200, "1200" ) + PORT_DIPSETTING( 0x1400, "1400" ) + PORT_DIPSETTING( 0x1500, "1500" ) + PORT_DIPSETTING( 0x1600, "1600" ) + PORT_DIPSETTING( 0x1700, "1700" ) + + PORT_START( "CRUPHOE" ) + PORT_DIPNAME( 0x1f00, 0x0000, "Phoenix CRU base" ) + PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x1400, "1400" ) + PORT_DIPSETTING( 0x1600, "1600" ) + + PORT_START( "HORIZONDUAL" ) + PORT_DIPNAME( 0x03, 0x00, "Horizon ramdisk split" ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x01, "TI mode" ) + PORT_DIPSETTING( 0x02, "Geneve mode" ) + + PORT_START( "HORIZONACT" ) + PORT_DIPNAME( 0x01, 0x00, "Horizon hideswitch" ) PORT_CHANGED_MEMBER(DEVICE_SELF, horizon_ramdisk_device, hs_changed, nullptr) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x01, DEF_STR( On ) ) + + PORT_START( "HORIZON32" ) + PORT_CONFNAME( 0x01, 0x00, "Horizon 32 KiB upgrade" ) + PORT_CONFSETTING( 0x00, DEF_STR( Off )) + PORT_CONFSETTING( 0x01, DEF_STR( On )) + + PORT_START( "RAMBO" ) + PORT_CONFNAME( 0x01, 0x01, "Horizon RAMBO" ) + PORT_CONFSETTING( 0x00, DEF_STR( Off )) + PORT_CONFSETTING( 0x01, DEF_STR( On )) + + PORT_START( "HORIZONSIZE" ) + PORT_CONFNAME( 0x03, 0x00, "Horizon size" ) + PORT_CONFSETTING( 0x00, "2 MiB") + PORT_CONFSETTING( 0x01, "4 MiB") + PORT_CONFSETTING( 0x02, "8 MiB") + PORT_CONFSETTING( 0x03, "16 MiB") + +INPUT_PORTS_END + +MACHINE_CONFIG_FRAGMENT( horizon ) + MCFG_RAM_ADD(NVRAMREGION) + MCFG_RAM_DEFAULT_SIZE("16M") + + MCFG_RAM_ADD(ROSREGION) + MCFG_RAM_DEFAULT_SIZE("8k") + + MCFG_RAM_ADD(RAMREGION) + MCFG_RAM_DEFAULT_SIZE("32k") + MCFG_RAM_DEFAULT_VALUE(0) +MACHINE_CONFIG_END + +machine_config_constructor horizon_ramdisk_device::device_mconfig_additions() const +{ + return MACHINE_CONFIG_NAME( horizon ); +} + +ioport_constructor horizon_ramdisk_device::device_input_ports() const +{ + return INPUT_PORTS_NAME(horizon); +} + +DEFINE_DEVICE_TYPE(TI99_HORIZON, horizon_ramdisk_device, "ti99_horizon", "Horizon 4000 Ramdisk") diff --git a/src/devices/bus/ti99/peb/horizon.h b/src/devices/bus/ti99/peb/horizon.h new file mode 100644 index 00000000000..d3a5f23817c --- /dev/null +++ b/src/devices/bus/ti99/peb/horizon.h @@ -0,0 +1,69 @@ +// license:LGPL-2.1+ +// copyright-holders:Michael Zapf +/**************************************************************************** + + Horizon Ramdisk + See horizon.c for documentation + + Michael Zapf + + February 2012 + +*****************************************************************************/ + +#ifndef MAME_BUS_TI99_PEB_HORIZON_H +#define MAME_BUS_TI99_PEB_HORIZON_H + +#pragma once + +#include "peribox.h" +#include "machine/ram.h" + +DECLARE_DEVICE_TYPE(TI99_HORIZON, horizon_ramdisk_device) + +class horizon_ramdisk_device : public ti_expansion_card_device, public device_nvram_interface +{ +public: + horizon_ramdisk_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + DECLARE_READ8Z_MEMBER(readz) override; + DECLARE_WRITE8_MEMBER(write) override; + + DECLARE_READ8Z_MEMBER(crureadz) override; + DECLARE_WRITE8_MEMBER(cruwrite) override; + + DECLARE_INPUT_CHANGED_MEMBER( hs_changed ); + +protected: + void device_start() override; + void device_reset() override; + + machine_config_constructor device_mconfig_additions() const override; + virtual ioport_constructor device_input_ports() const override; + + void nvram_default() override; + void nvram_read(emu_file &file) override; + void nvram_write(emu_file &file) override; + +private: + void setbit(int& page, int pattern, bool set); + + required_device m_ram; + required_device m_nvram; + required_device m_ros; + + int m_select6_value; + int m_select_all; + + int m_page; + + int m_cru_horizon; + int m_cru_phoenix; + bool m_timode; + bool m_32k_installed; + bool m_split_mode; + bool m_rambo_mode; + bool m_hideswitch; + bool m_use_rambo; +}; + +#endif // MAME_BUS_TI99_PEB_HORIZON_H diff --git a/src/devices/bus/ti99/peb/hsgpl.cpp b/src/devices/bus/ti99/peb/hsgpl.cpp new file mode 100644 index 00000000000..4858e5e1059 --- /dev/null +++ b/src/devices/bus/ti99/peb/hsgpl.cpp @@ -0,0 +1,717 @@ +// license:LGPL-2.1+ +// copyright-holders:Michael Zapf +/**************************************************************************** + + SNUG HSGPL card emulation. + + The HSGPL card is a card for the peripheral expansion box which simulates + 16 banks of 64 KiB GROM space, using flash memory to keep data persistent. + + Main usage: + - store cartridges in the card for quick selection + - replace the console GROMs, thus making it possible to patch or enhance the + console operating system + - provide necessary ROMs for the SGCPU (aka TI-99/4P) + + (So for using the ti99_4p emulation, you MUST have a properly set up HSGPL + card. The best way to get this done is to prepare this card within the + ti99_4ev emulation, then copy the contents to the ti99_4p nvram directory.) + + The card does not contain real GROM circuits, and accordingly, we do not + use the grom emulation. The logic on the board, mainly contained in the + MACH chip, simulates GROM behavior. With the possibility to upload data + into the simulated GROMs, we can also enjoy GRAM behavior, although real + GRAMs are not known to have become available ever. + + Contents: + + Supports 16 banks of 8 GROMs (8kbytes each) with 16 associated banks of + 32kbytes (8kbytes*4) of module ROM, 2 banks of 8 GRAMs with 2 associated + banks of 32 kbytes of RAM, and 512kbytes of DSR. Roms are implemented with + 512kbyte EEPROMs (1 for DSR, 2 for GROMs, 1 for cartridge ROM). RAM is + implemented with 128kbyte SRAMs (1 for GRAM, 1 for cartridge RAM - only the + first 64kbytes of the cartridge RAM chip is used). + + CRU bits: + Name Equates Meaning + >0 DEN DSRENA DSR Enable + >1 GRMENA GRMENA Enable GRAM instead of GROM in banks 0 and 1 + >2 BNKINH* BNKENA Disable banking + >3 PG0 PG0 + >4 PG1 PG1 + >5 PG2 PG2 Paging-Bits for DSR-area + >6 PG3 PG3 + >7 PG4 PG4 + >8 PG5 PG5 + >9 CRDENA CRDENA Activate memory areas of HSGPL (i.e. enable HSGPL GROM and ROM6 ports) + >A WRIENA WRIENA write enable for RAM and GRAM (and flash GROM!) + >B SCENA SCARTE Activate SuperCart-banking + >C LEDENA LEDENA turn LED on + >D - - free + >E MBXENA MBXENA Activate MBX-Banking + >F RAMENA RAMENA Enable RAM6000 instead of ROM6000 in banks 0 and 1 + + + Direct access ports for all memory areas (the original manual says + >9880->989C and >9C80->9C9C for ROM6000, but this is clearly incorrect): + + Module bank Read Write Read ROM6000 Write ROM6000 + GROM GROM + 0 >9800 >9C00 >9860 Offset >0000 >9C60 Offset >0000 + 1 >9804 >9C04 >9860 Offset >8000 >9C60 Offset >8000 + 2 >9808 >9C08 >9864 Offset >0000 >9C64 Offset >0000 + 3 >980C >9C0C >9864 Offset >8000 >9C64 Offset >8000 + 4 >9810 >9C10 >9868 Offset >0000 >9C68 Offset >0000 + 5 >9814 >9C14 >9868 Offset >8000 >9C68 Offset >8000 + 6 >9818 >9C18 >986C Offset >0000 >9C6C Offset >0000 + 7 >981C >9C1C >986C Offset >8000 >9C6C Offset >8000 + 8 >9820 >9C20 >9870 Offset >0000 >9C70 Offset >0000 + 9 >9824 >9C24 >9870 Offset >8000 >9C70 Offset >8000 + 10 >9828 >9C28 >9874 Offset >0000 >9C74 Offset >0000 + 11 >982C >9C2C >9874 Offset >8000 >9C74 Offset >8000 + 12 >9830 >9C30 >9878 Offset >0000 >9C78 Offset >0000 + 13 >9834 >9C34 >9878 Offset >8000 >9C78 Offset >8000 + 14 >9838 >9C38 >987C Offset >0000 >9C7C Offset >0000 + 15 >983C >9C3C >987C Offset >8000 >9C7C Offset >8000 + + Module bank Read Write Read RAM6000 Write RAM6000 + GRAM GRAM + 16 (Ram) >9880 >9C80 >98C0 Offset >0000 >9CC0 Offset >0000 + 17 (Ram) >9884 >9C84 >98C0 Offset >8000 >9CC0 Offset >8000 + + DSR bank Read Write + 0 - 7 >9840 >9C40 + 8 - 15 >9844 >9C44 + 16 - 23 >9848 >9C48 + 24 - 31 >984C >9C4C + 32 - 39 >9850 >9C50 + 40 - 47 >9854 >9C54 + 48 - 55 >9858 >9C58 + 56 - 63 >985C >9C5C + + Notes: + 1. The bank numbering of the modules is not exactly the GROM bank numbering. + The first 16 banks are numbered as expected, but bank 16 is DSR bank 0-7, + bank 23 is DSR bank 56-63, bank 24 is ROM6000 of module bank 0, bank 31 is + ROM6000 of module bank 25, and finally bank 32 and 33 and the GRAM banks, + and bank 48 and 49 are the RAM banks. + Only accesses to the GROM/GRAM addresses will change the module bank. + + 2. Writing only works for areas set up as RAM. To write to the + FEEPROMs, you must used the algorithm specified by their respective + manufacturer. + + CRDENA: This flag is used to turn on and off the HSGPL. It is used in + particular at start-up when the DSR detects a cartridge in the + cartridge slot. In that case the memory locations 6000-7fff must be + deactivated on the HSGPL, or it would cause a collision with the + cartridge. However, CRDENA must not completely turn off the HSGPL, or the + console will not start up at all. At least GROMs 0, 1, and 2 must remain + active. + The technical specifications are not clear enough at this point. + + Raphael Nabet, 2003. + + Michael Zapf + October 2010: Rewritten as device + February 2012: Rewritten as class + +*****************************************************************************/ + +#include "emu.h" +#include "hsgpl.h" + +#define CRU_BASE 0x1B00 +#define SUPERCART_BASE 0x0800 + +#define TRACE_PORT 0 +#define TRACE_DSR 0 +#define TRACE_BANKING 0 +#define TRACE_CRU 0 +#define TRACE_ADDRESS 0 +#define TRACE_READ 0 +#define TRACE_WRITE 0 +#define TRACE_IGNORE 0 + +#define RAM6_TAG "cartram128k" +#define GRAM_TAG "gram128k" + +#define DSR_EEPROM "u9_dsr" +#define GROM_B_EEPROM "u4_grom" +#define GROM_A_EEPROM "u1_grom" +#define ROM6_EEPROM "u6_rom6" + +snug_high_speed_gpl_device::snug_high_speed_gpl_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : ti_expansion_card_device(mconfig, TI99_HSGPL, tag, owner, clock), + m_dsr_eeprom(*this, DSR_EEPROM), + m_rom6_eeprom(*this, ROM6_EEPROM), + m_grom_a_eeprom(*this, GROM_A_EEPROM), + m_grom_b_eeprom(*this, GROM_B_EEPROM), + m_ram6_memory(*this, RAM6_TAG), + m_gram_memory(*this, GRAM_TAG), + m_dsr_enabled(false), + m_gram_enabled(false), + m_bank_inhibit(false), + m_dsr_page(0), + m_card_enabled(false), + m_write_enabled(false), + m_supercart_enabled(false), + m_led_on(false), + m_mbx_enabled(false), + m_ram_enabled(false), + m_flash_mode(false), + m_current_grom_port(0), + m_current_bank(0), + m_module_bank(0), + m_waddr_LSB(false), + m_raddr_LSB(false), + m_grom_address(0) +{ +} + +/* + Read hsgpl CRU interface. None here. +*/ +READ8Z_MEMBER(snug_high_speed_gpl_device::crureadz) +{ + return; +} + +/* + Write hsgpl CRU interface +*/ +WRITE8_MEMBER(snug_high_speed_gpl_device::cruwrite) +{ + // SuperCart handling - see gromport.c + if (m_supercart_enabled && ((offset & 0xfff0)==SUPERCART_BASE)) + { + if (data != 0) + { + if (TRACE_CRU) logerror("Supercart cru setting %04x\n", offset); + m_current_bank = (offset-0x0802)>>2; + } + return; + } + + // Common CRU handling + if ((offset & 0xff00)==CRU_BASE) + { + int bit = (offset >> 1) & 0x0f; + switch (bit) + { + case 0: + m_dsr_enabled = (data != 0); + if (TRACE_CRU) logerror("Set dsr_enabled=%x\n", data); + break; + case 1: + m_gram_enabled = (data != 0); + if (TRACE_CRU) logerror("Set gram_enabled=%x\n", data); + break; + case 2: + m_bank_inhibit = (data != 0); + if (TRACE_CRU) logerror("Set bank_inhibit=%x\n", data); + break; + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + if (data) + m_dsr_page |= (1 << (bit-3)); + else + m_dsr_page &= ~(1 << (bit-3)); + if (TRACE_CRU) logerror("Set dsr_page=%d\n", m_dsr_page); + break; + case 9: + m_card_enabled = data; + if (TRACE_CRU) logerror("Set card_enabled=%x\n", data); + break; + case 10: + m_write_enabled = data; + if (TRACE_CRU) logerror("Set write_enabled=%x\n", data); + break; + case 11: + m_supercart_enabled = data; + // CHECK: Do we have to reset the bank? + if (TRACE_CRU) logerror("Set supercart_enabled=%x\n", data); + break; + case 12: + m_led_on = data; + if (TRACE_CRU) logerror("Set led_on=%x\n", data); + break; + case 13: + break; + case 14: + m_mbx_enabled = data; + if (TRACE_CRU) logerror("Set mbx_enabled=%x\n", data); + break; + case 15: + m_ram_enabled = data; + if (TRACE_CRU) logerror("Set ram_enabled=%x\n", data); + break; + } + } +} + +/* + Memory read +*/ +READ8Z_MEMBER(snug_high_speed_gpl_device::readz) +{ + if ((offset & 0x7e000)==0x74000) + { + dsrspace_readz(space, offset & 0xffff, value, mem_mask); + } + + if ((offset & 0x7e000)==0x76000) + { + cartspace_readz(space, offset & 0xffff, value, mem_mask); + } + + // 1001 1wbb bbbb bba0 + if ((offset & 0x7fc01)==0x79800) + { + grom_readz(space, offset & 0xffff, value, mem_mask); + } +} + +/* + Memory write +*/ +WRITE8_MEMBER(snug_high_speed_gpl_device::write) +{ + if ((offset & 0x7e000)==0x76000) + { + cartspace_write(space, offset & 0xffff, data, mem_mask); + } + + // 1001 1wbb bbbb bba0 + if ((offset & 0x7fc01)==0x79c00) + { + grom_write(space, offset & 0xffff, data, mem_mask); + } +} + +/* + Specific read access: dsrspace +*/ +void snug_high_speed_gpl_device::dsrspace_readz(address_space& space, offs_t offset, uint8_t* value, uint8_t mem_mask) +{ + if (m_dsr_enabled) + { + *value = m_dsr_eeprom->read(space, (offset & 0x1fff) | (m_dsr_page<<13), mem_mask); + if (TRACE_READ) logerror("read dsr %04x[%02x] -> %02x\n", offset, m_dsr_page, *value); + } +} + +/* + Specific read access: cartspace +*/ +void snug_high_speed_gpl_device::cartspace_readz(address_space& space, offs_t offset, uint8_t* value, uint8_t mem_mask) +{ + if (!m_card_enabled || m_flash_mode) + { + if (TRACE_IGNORE) logerror("cartridge space read ignored (enable=%d, flash_mode=%d)\n", m_card_enabled, m_flash_mode); + return; + } + + if (m_module_bank < 16) + { + *value = m_rom6_eeprom->read(space, (offset & 0x1fff) | (m_current_bank<<13) | (m_current_grom_port<<15), mem_mask); + if (TRACE_READ) logerror("cartridge space read %04x -> %02x\n", offset, *value); + } + else + { + if (m_module_bank==16 || m_module_bank==17) + { + *value = m_ram6_memory->pointer()[(offset & 0x1fff) | (m_current_bank<<13) | ((m_module_bank & 0x000f)<<15)]; + } + else + { + logerror("unknown 0x6000 port\n"); + } + } +} + +/* + Specific read access: grom + Although we have a complete emulation of a GROM circuit, we need to re-implement + it here - which is indeed closer to reality, since the real HSGPL also + emulates GROM instead of using proper ones. +*/ +void snug_high_speed_gpl_device::grom_readz(address_space& space, offs_t offset, uint8_t* value, uint8_t mem_mask) +{ + if (machine().side_effect_disabled()) return; + + //activedevice_adjust_icount(-4); + + // 1001 10bb bbbb bba0 + int port = (offset & 0x3fc) >> 2; + + if (offset & 2) + { // Read GPL address. This must be available even when the rest + // of the card is offline (card_enabled=0). + m_waddr_LSB = false; + + if (m_raddr_LSB) + { + *value = ((m_grom_address + 1) & 0xff); + m_raddr_LSB = false; + } + else + { + *value = ((m_grom_address + 1) >> 8) & 0xff; + m_raddr_LSB = true; + } + } + else + { /* read GPL data */ + bool bNew = (port != m_current_grom_port); + m_current_grom_port = port; + + // It is not clear what effect a CRDENA=0 really has. + // At least GROMs 0-2 must remain visible, or the console will lock up. + if (m_card_enabled || m_grom_address < 0x6000) + { + if ((port < 2) && (m_gram_enabled)) + { + *value = m_gram_memory->pointer()[m_grom_address | (port<<16)]; + m_module_bank = port + 16; + if (TRACE_PORT) if (bNew) logerror("GRAM read access at %04x (GRMENA=1) - switch to bank %d\n", offset & 0xffff, m_module_bank); + } + else + { + if (port < 8) + { + if (!m_flash_mode) + { + *value = m_grom_a_eeprom->read(space, m_grom_address | (port<<16), mem_mask); + m_module_bank = port; + if (TRACE_PORT) if (bNew) logerror("GROM read access at %04x - switch to bank %d\n", offset & 0xffff, m_module_bank); + } + } + else + { + if (port < 16) + { + *value = m_grom_b_eeprom->read(space, m_grom_address | ((port-8)<<16), mem_mask); + m_module_bank = port; + if (TRACE_PORT) if (bNew) logerror("GROM read access at %04x - switch to bank %d\n", offset & 0xffff, m_module_bank); + } + else + { + if (port < 24) + { + // 9840-985c + // DSR banks 0-63 (8 KiB per bank, 8 banks per port) + *value = m_dsr_eeprom->read(space, m_grom_address | ((port-16)<<16), mem_mask); + // Don't change the module port + if (TRACE_DSR) if (bNew) logerror("read access to DSR bank %d-%d (%04x)\n", (port-16)<<3, ((port-16)<<3)+7, offset); + } + else + { + if (port < 32) + { + // 9860-987c (ports 24-31) + // Each ROM6 is available as 4 (sub)banks (switchable via 6000, 6002, 6004, 6006) + // Accordingly, each port has two complete sets + *value = m_rom6_eeprom->read(space, m_grom_address | ((port-24)<<16), mem_mask); + if (TRACE_PORT) if (bNew) logerror("ROM6 read access for module bank %d-%d (%04x)\n", (port-24)<<1, ((port-24)<<1)+1, offset & 0xffff); + } + else + { + // 9880, 9884 + if (port==32 || port==33) + { + *value = m_gram_memory->pointer()[m_grom_address | ((port-32)<<16)]; + m_module_bank = port - 16; + if (TRACE_PORT) if (bNew) logerror("GRAM read access at %04x - switch to bank %d\n", offset & 0xffff, m_module_bank); + } + else + { + if (port==48 || port==49) + { +// *value = m_ram6_memory->pointer()[m_grom_address]; + *value = m_ram6_memory->pointer()[m_grom_address | ((port-48)<<16)]; + if (TRACE_PORT) if (bNew) logerror("RAM read access at %04x\n", offset & 0xffff); + } + else + { + logerror("Attempt to read from undefined port 0x%0x; ignored.\n", port); + } + } + } + } + } + } + } + } + // The address auto-increment should be done even when the card is + // offline + if (TRACE_ADDRESS) logerror("HSGPL GROM address %04x\n", m_grom_address); + m_grom_address++; + m_raddr_LSB = m_waddr_LSB = false; + } +} + +/* + Specific write access: cartspace +*/ +void snug_high_speed_gpl_device::cartspace_write(address_space& space, offs_t offset, uint8_t data, uint8_t mem_mask) +{ + if (!m_card_enabled || m_flash_mode) + { + if (TRACE_IGNORE) logerror("write ignored: card_enabled=%d, flash_mode=%d\n", m_card_enabled, m_flash_mode); + return; + } + + if (TRACE_WRITE) logerror("cartridge space write %04x <- %02x\n", offset, data); + + if (!m_bank_inhibit && (m_module_bank < 16)) + { + if ((offset & 1) == 0) + { + if ((offset & 0x9ff0)!=0) logerror("unplausible ROM6 write: %04x <- %02x\n", offset, data); + m_current_bank = (offset>>1) & 3; + if (TRACE_BANKING) logerror("select bank %d\n", m_current_bank); + } + return; /* right??? */ + } + + if ((m_mbx_enabled) && (offset==0x6ffe)) + { /* MBX: mapper at 0x6ffe */ + m_current_bank = data & 0x03; + if (TRACE_BANKING) logerror("select bank MBX %d\n", m_current_bank); + return; + } + + // MBX: RAM in 0x6c00-0x6ffd (it is unclear whether the MBX RAM area is + // enabled/disabled by the wriena bit). I guess RAM is unpaged, but it is + // not implemented + if ((m_write_enabled) || ((m_mbx_enabled) && ((offset & 0xfc00)==0x6c00))) + { + if ((m_module_bank < 2) && (m_ram_enabled)) + { + m_ram6_memory->pointer()[(offset & 0x1fff) | (m_current_bank<<13) | (m_module_bank<<15) ] = data; + } + else + { // keep in mind that these lines are also reached for port < 2 + // and !ram_enabled + if (m_module_bank < 16) + { + logerror("invalid write %04x <- %02x\n", offset, data); + // feeprom is normally written to using GPL ports, and I don't know + // whether writing through >6000 page is enabled +/* + at29c040a_w(feeprom_rom6, 1 + 2*offset + 0x2000*hsgpl.cur_bank + 0x8000*port, data); + at29c040a_w(feeprom_rom6, 2*offset + 0x2000*hsgpl.cur_bank + 0x8000*port, data >> 8); +*/ + } + else + { + if (m_module_bank==16 || m_module_bank==17) + { + m_ram6_memory->pointer()[(offset & 0x1fff) | (m_current_bank<<13) | ((m_module_bank-16)<<15)] = data; + } + else + { + logerror("unknown 0x6000 port\n"); + } + } + } + } +} + +/* + Specific write access: grom_write +*/ +void snug_high_speed_gpl_device::grom_write(address_space& space, offs_t offset, uint8_t data, uint8_t mem_mask) +{ + if (machine().side_effect_disabled()) return; + + //activedevice_adjust_icount(-4); + + // 1001 11bb bbbb bba0 + int port = (offset & 0x3fc) >> 2; + + if (offset & 2) + { // Write GPL address. This must be available even when the rest + // of the card is offline (card_enabled=0). + m_raddr_LSB = false; + + if (m_waddr_LSB) + { + m_grom_address = (m_grom_address & 0xFF00) | data; + m_waddr_LSB = false; + } + else + { + m_grom_address = (data << 8) | (m_grom_address & 0xFF); + m_waddr_LSB = true; + } + } + else + { + bool bNew = (port != m_current_grom_port); + m_current_grom_port = port; + // It is not clear what effect a CRDENA=0 really has. + // At least GROMs 0-2 must remain visible, or the console will lock up. + if (m_card_enabled || m_grom_address < 0x6000) + { + /* write GPL data */ + if (m_write_enabled) + { + if ((port < 2) && (m_gram_enabled)) + { + m_gram_memory->pointer()[m_grom_address | (port<<16)] = data; + m_module_bank = port + 16; + if (TRACE_PORT) if (bNew) logerror("GRAM write access at %04x (GRMENA=1) - switch to bank %d\n", offset & 0xffff, port); + } + else + { + if (port < 8) + { + m_grom_a_eeprom->write(space, m_grom_address | (port<<16), data, mem_mask); + m_module_bank = port; + if (TRACE_PORT) if (bNew) logerror("GROM write access at %04x - switch to bank %d\n", offset & 0xffff, port); + } + else + { + if (port < 16) + { + m_grom_b_eeprom->write(space, m_grom_address | ((port-8)<<16), data, mem_mask); + m_module_bank = port; + if (TRACE_PORT) if (bNew) logerror("GROM write access at %04x - switch to bank %d\n", offset & 0xffff, port); + } + else + { + if (port < 24) + { + m_dsr_eeprom->write(space, m_grom_address | ((port-16)<<16), data, mem_mask); + if (TRACE_DSR) if (bNew) logerror("write access to DSR bank %d-%d (%04x)\n", (port-16)<<3, ((port-16)<<3)+7, offset); + } + else + { + if (port < 32) + { + m_rom6_eeprom->write(space, m_grom_address | ((port-24)<<16), data, mem_mask); + if (TRACE_PORT) if (bNew) logerror("ROM6 write access for module bank %d-%d (%04x)\n", (port-24)<<1, ((port-24)<<1)+1,offset & 0xffff); + } + else + { + if (port==32 || port==33) + { + m_gram_memory->pointer()[m_grom_address | ((port-32)<<16)] = data; + m_module_bank = port - 16; + if (TRACE_PORT) if (bNew) logerror("GRAM write access at %04x - switch to bank %d\n", offset & 0xffff, m_module_bank); + } + else + { + if (port==48 || port==49) + { +// m_ram6_memory->pointer()[m_grom_address] = data; + m_ram6_memory->pointer()[m_grom_address | ((port-48)<<16)] = data; + if (TRACE_PORT) if (bNew) logerror("RAM write access at %04x\n", offset & 0xffff); + } + else + { + logerror("Attempt to write to undefined port; ignored.\n"); + } + } + } + } + } + } + } + } + } + // The address auto-increment should be done even when the card is + // offline + m_grom_address++; + m_raddr_LSB = m_waddr_LSB = false; + } +} + + +void snug_high_speed_gpl_device::device_start() +{ + save_item(NAME(m_dsr_enabled)); + save_item(NAME(m_gram_enabled)); + save_item(NAME(m_bank_inhibit)); + save_item(NAME(m_dsr_page)); + save_item(NAME(m_card_enabled)); + save_item(NAME(m_write_enabled)); + save_item(NAME(m_supercart_enabled)); + save_item(NAME(m_led_on)); + save_item(NAME(m_mbx_enabled)); + save_item(NAME(m_ram_enabled)); + save_item(NAME(m_flash_mode)); + save_item(NAME(m_current_grom_port)); + save_item(NAME(m_current_bank)); + save_item(NAME(m_module_bank)); + save_item(NAME(m_waddr_LSB)); + save_item(NAME(m_raddr_LSB)); + save_item(NAME(m_grom_address)); +} + +void snug_high_speed_gpl_device::device_reset() +{ + logerror("reset\n"); + m_dsr_enabled = false; + m_gram_enabled = false; + m_bank_inhibit = false; + m_dsr_page = 0; + m_card_enabled = true; // important, assumed to be enabled by default + m_write_enabled = false; + m_supercart_enabled = false; + m_led_on = false; + m_mbx_enabled = false; + m_ram_enabled = false; + m_flash_mode = (ioport("HSGPLMODE")->read()==0); + + m_current_grom_port = 0; + m_current_bank = 0; + + m_waddr_LSB = false; + m_raddr_LSB = false; + m_grom_address = 0; + m_module_bank = 0; +} + +void snug_high_speed_gpl_device::device_stop() +{ +} + +// Flash setting is used to flash an empty HSGPL DSR ROM +INPUT_PORTS_START( ti99_hsgpl) + PORT_START( "HSGPLMODE" ) + PORT_DIPNAME( 0x01, 0x01, "HSGPL mode" ) + PORT_DIPSETTING( 0x00, "Flash" ) + PORT_DIPSETTING( 0x01, "Normal" ) +INPUT_PORTS_END + +MACHINE_CONFIG_FRAGMENT( ti99_hsgpl ) + MCFG_AT29C040A_ADD( DSR_EEPROM ) + MCFG_AT29C040A_ADD( GROM_B_EEPROM ) + MCFG_AT29C040A_ADD( GROM_A_EEPROM ) + MCFG_AT29C040A_ADD( ROM6_EEPROM ) + MCFG_RAM_ADD(RAM6_TAG) + MCFG_RAM_DEFAULT_SIZE("128k") + MCFG_RAM_DEFAULT_VALUE(0) + MCFG_RAM_ADD(GRAM_TAG) + MCFG_RAM_DEFAULT_SIZE("128k") + MCFG_RAM_DEFAULT_VALUE(0) +MACHINE_CONFIG_END + +machine_config_constructor snug_high_speed_gpl_device::device_mconfig_additions() const +{ + return MACHINE_CONFIG_NAME( ti99_hsgpl ); +} + +ioport_constructor snug_high_speed_gpl_device::device_input_ports() const +{ + return INPUT_PORTS_NAME(ti99_hsgpl); +} + +DEFINE_DEVICE_TYPE(TI99_HSGPL, snug_high_speed_gpl_device, "ti99_hsgpl", "SNUG High-speed GPL card") diff --git a/src/devices/bus/ti99/peb/hsgpl.h b/src/devices/bus/ti99/peb/hsgpl.h new file mode 100644 index 00000000000..33a6456b2d1 --- /dev/null +++ b/src/devices/bus/ti99/peb/hsgpl.h @@ -0,0 +1,84 @@ +// license:LGPL-2.1+ +// copyright-holders:Michael Zapf +/**************************************************************************** + + SNUG HSGPL card emulation. + See hsgpl.c for documentation + + Original code by Raphael Nabet, 2003. + + Michael Zapf + October 2010: Rewritten as device + February 2012: Rewritten as class + +*****************************************************************************/ + +#ifndef MAME_BUS_TI99_PEB_HSGPL_H +#define MAME_BUS_TI99_PEB_HSGPL_H + +#pragma once + +#include "peribox.h" +#include "machine/at29x.h" +#include "machine/ram.h" + +DECLARE_DEVICE_TYPE(TI99_HSGPL, snug_high_speed_gpl_device) + +class snug_high_speed_gpl_device : public ti_expansion_card_device +{ +public: + snug_high_speed_gpl_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + DECLARE_READ8Z_MEMBER(readz) override; + DECLARE_WRITE8_MEMBER(write) override; + + DECLARE_READ8Z_MEMBER(crureadz) override; + DECLARE_WRITE8_MEMBER(cruwrite) override; + +protected: + virtual void device_start() override; + virtual void device_reset() override; + virtual void device_stop() override; + virtual ioport_constructor device_input_ports() const override; + + virtual machine_config_constructor device_mconfig_additions() const override; + +private: + required_device m_dsr_eeprom; + required_device m_rom6_eeprom; + required_device m_grom_a_eeprom; + required_device m_grom_b_eeprom; + + required_device m_ram6_memory; + required_device m_gram_memory; + + void dsrspace_readz(address_space& space, offs_t offset, uint8_t* value, uint8_t mem_mask); + void cartspace_readz(address_space& space, offs_t offset, uint8_t* value, uint8_t mem_mask); + void grom_readz(address_space& space, offs_t offset, uint8_t* value, uint8_t mem_mask); + + void cartspace_write(address_space& space, offs_t offset, uint8_t data, uint8_t mem_mask); + void grom_write(address_space& space, offs_t offset, uint8_t data, uint8_t mem_mask); + + bool m_dsr_enabled; + bool m_gram_enabled; + bool m_bank_inhibit; + int m_dsr_page; + bool m_card_enabled; + bool m_write_enabled; + bool m_supercart_enabled; + bool m_led_on; + bool m_mbx_enabled; + bool m_ram_enabled; + bool m_flash_mode; + + int m_current_grom_port; + int m_current_bank; + + int m_module_bank; + + // GROM emulation + bool m_waddr_LSB; + bool m_raddr_LSB; + int m_grom_address; +}; + +#endif // MAME_BUS_TI99_PEB_HSGPL_H diff --git a/src/devices/bus/ti99/peb/memex.cpp b/src/devices/bus/ti99/peb/memex.cpp new file mode 100644 index 00000000000..2951c0cefdf --- /dev/null +++ b/src/devices/bus/ti99/peb/memex.cpp @@ -0,0 +1,161 @@ +// license:LGPL-2.1+ +// copyright-holders:Michael Zapf +/*************************************************************************** + + Geneve "Memex" memory expansion + may be used together with the GenMod feature to expand the memory to the + full 2 MiB range. + + Michael Zapf + February 2011 + February 2012: rewritten as class + +****************************************************************************/ + +#include "emu.h" +#include "memex.h" + +#define RAMREGION "ram2meg" +#define TRACE_CONFIG 0 + +enum +{ + MDIP1 = 0x01, + MDIP2 = 0x02, + MDIP3 = 0x04, + MDIP4 = 0x08, + MDIP5 = 0x10, + MDIP6 = 0x20, + MDIP7 = 0x40, + MDIP8 = 0x80 +}; + +geneve_memex_device::geneve_memex_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : ti_expansion_card_device(mconfig, TI99_MEMEX, tag, owner, clock), + m_ram(*this, RAMREGION) +{ +} + +bool geneve_memex_device::access_enabled(offs_t offset) +{ + // 1 0111 .... .... .... .... p-box address block 0xxx ... fxxx + // first two bits are AME, AMD bits available on Genmod only + // if AMD, AME are not available we assume AMD=0, AME=1 + // must be set on the Geneve board + // Some traditional cards will not decode the AMx lines, so + // we may have to lock out those areas + int page = (offset >> 13)&0xff; + + // SW2: 10xxx010 locked when SW2=off + // 10111010 locked when SW2=on + if (page == 0xba) return false; + if ((page & 0xc7)==0x82 && ((m_switches & MDIP2)==0)) + { + if (TRACE_CONFIG) logerror("memex blocks page %02x; dip2=%d\n", page, (m_switches & MDIP2)!=0); + return false; + } + + // Switch page + // SW3: 111010xx enabled for SWx=0,blocked for SWx=1 + // SW4: 111011xx + // SW5: 111100xx + // SW6: 111101xx + // SW7: 111110xx + // SW8: 111111xx + + if (page >= 0xe8 && page <= 0xff) + { + return ((m_switches & (4<< (((page>>2) & 0x0f)-10))) == 0); + } + return true; +} + +/* + Memory read. The memory is at locations 0x000000-0x1fffff. Some of these + regions are hidden by onboard devices of the Geneve. We must block some + areas which would otherwise interfere with peripheral cards. + + Note that the incomplete decoding of the standard Geneve must be + considered. +*/ +READ8Z_MEMBER( geneve_memex_device::readz ) +{ + /* If not Genmod, add the upper two address bits 10 */ + if (!m_genmod) offset |= 0x100000; + + // The card is accessed for all addresses in the address space + if (access_enabled(offset)) + *value = m_ram->pointer()[offset]; +} + +/* + Memory write +*/ +WRITE8_MEMBER( geneve_memex_device::write ) +{ + /* If not Genmod, add the upper two address bits 10 */ + if (!m_genmod) offset |= 0x100000; + + // The card is accessed for all addresses in the address space + if (access_enabled(offset)) + m_ram->pointer()[offset] = data; +} + +/**************************************************************************/ + +void geneve_memex_device::device_start() +{ + save_item(NAME(m_switches)); +} + +void geneve_memex_device::device_reset() +{ + m_switches = ioport("MEMEXDIPS")->read(); + if (TRACE_CONFIG) logerror("memex dips = %02x\n", m_switches); +} + +INPUT_PORTS_START( memex ) + PORT_START( "MEMEXDIPS" ) + PORT_DIPNAME( MDIP1, MDIP1, "MEMEX SW1" ) + PORT_DIPSETTING( 0x00, "LED half-bright for 0 WS") + PORT_DIPSETTING( MDIP1, "LED full-bright") + PORT_DIPNAME( MDIP2, 0x00, "MEMEX SW2" ) + PORT_DIPSETTING( 0x00, "Lock out all BA mirrors") + PORT_DIPSETTING( MDIP2, "Lock out page BA only") + PORT_DIPNAME( MDIP3, 0x00, "MEMEX SW3" ) + PORT_DIPSETTING( 0x00, "Enable pages E8-EB") + PORT_DIPSETTING( MDIP3, "Lock out pages E8-EB") + PORT_DIPNAME( MDIP4, 0x00, "MEMEX SW4" ) + PORT_DIPSETTING( 0x00, "Enable pages EC-EF") + PORT_DIPSETTING( MDIP4, "Lock out pages EC-EF") + PORT_DIPNAME( MDIP5, 0x00, "MEMEX SW5" ) + PORT_DIPSETTING( 0x00, "Enable pages F0-F3") + PORT_DIPSETTING( MDIP5, "Lock out pages F0-F3") + PORT_DIPNAME( MDIP6, 0x00, "MEMEX SW6" ) + PORT_DIPSETTING( 0x00, "Enable pages F4-F7") + PORT_DIPSETTING( MDIP6, "Lock out pages F4-F7") + PORT_DIPNAME( MDIP7, 0x00, "MEMEX SW7" ) + PORT_DIPSETTING( 0x00, "Enable pages F8-FB") + PORT_DIPSETTING( MDIP7, "Lock out pages F8-FB") + PORT_DIPNAME( MDIP8, 0x00, "MEMEX SW8" ) + PORT_DIPSETTING( 0x00, "Enable pages FC-FF") + PORT_DIPSETTING( MDIP8, "Lock out pages FC-FF") +INPUT_PORTS_END + +MACHINE_CONFIG_FRAGMENT( memex ) + MCFG_RAM_ADD(RAMREGION) + MCFG_RAM_DEFAULT_SIZE("2M") + MCFG_RAM_DEFAULT_VALUE(0) +MACHINE_CONFIG_END + +machine_config_constructor geneve_memex_device::device_mconfig_additions() const +{ + return MACHINE_CONFIG_NAME( memex ); +} + +ioport_constructor geneve_memex_device::device_input_ports() const +{ + return INPUT_PORTS_NAME( memex ); +} + +DEFINE_DEVICE_TYPE(TI99_MEMEX, geneve_memex_device, "ti99_memex", "Geneve memory expansion card") diff --git a/src/devices/bus/ti99/peb/memex.h b/src/devices/bus/ti99/peb/memex.h new file mode 100644 index 00000000000..12a9d47b9cb --- /dev/null +++ b/src/devices/bus/ti99/peb/memex.h @@ -0,0 +1,45 @@ +// license:LGPL-2.1+ +// copyright-holders:Michael Zapf +/**************************************************************************** + + Geneve "Memex" memory expansion + See memex.c for documentation + + Michael Zapf, February 2011 + February 2012: Rewritten as class + +*****************************************************************************/ + +#ifndef MAME_BUS_TI99_PEB_MEMEX_H +#define MAME_BUS_TI99_PEB_MEMEX_H + +#pragma once + +#include "peribox.h" +#include "machine/ram.h" + +DECLARE_DEVICE_TYPE(TI99_MEMEX, geneve_memex_device) + +class geneve_memex_device : public ti_expansion_card_device +{ +public: + geneve_memex_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + DECLARE_READ8Z_MEMBER(readz) override; + DECLARE_WRITE8_MEMBER(write) override; + + DECLARE_READ8Z_MEMBER(crureadz) override { } + DECLARE_WRITE8_MEMBER(cruwrite) override { } + +protected: + void device_start() override; + void device_reset() override; + machine_config_constructor device_mconfig_additions() const override; + virtual ioport_constructor device_input_ports() const override; + +private: + bool access_enabled(offs_t offset); + required_device m_ram; + uint8_t m_switches; +}; + +#endif // MAME_BUS_TI99_PEB_MEMEX_H diff --git a/src/devices/bus/ti99/peb/myarcmem.cpp b/src/devices/bus/ti99/peb/myarcmem.cpp new file mode 100644 index 00000000000..f6e1e4b1c16 --- /dev/null +++ b/src/devices/bus/ti99/peb/myarcmem.cpp @@ -0,0 +1,214 @@ +// license:LGPL-2.1+ +// copyright-holders:Michael Zapf +/**************************************************************************** + + TI-99 Myarc memory expansion MEXP-1 + + The card features 128 KiB of RAM, not buffered. In the TI-99/4A address + space, RAM is located at 2000-3fff and a000-ffff (32 KiB). Using the CRU + interface, four banks of 32K each can be made visible in this area. + + We also emulate the 512 KiB version of this card; it works in the same way + but offers two more CRU bits for a total of 16 banks of 32 KiB RAM. + + Beside the RAM, the card also contains ROM with a DSR (Device service + routine, TI's term for the firmware). This 8 KiB ROM allows for + testing and partitioning the card, and it introduces new devices which + are make available to BASIC programs, like a RAMdisk device. + + There also was a 32 KiB version which did not contain a DSR; thus, it was + equivalent to a standard TI 32 KiB memory expansion and is not emulated + here. + + The firmware to be used with this card is a version that is tailored to + work with Myarc Extended Basic II. + + Michael Zapf + February 2012: rewritten as a class, adding DSR support + +****************************************************************************/ +#include "emu.h" +#include "myarcmem.h" + +/* This card has two CRU bases where it answers. */ +#define MYARCMEM_CRU_BASE1 0x1000 +#define MYARCMEM_CRU_BASE2 0x1900 + +enum +{ + SIZE_128, + SIZE_512 +}; + +myarc_memory_expansion_device::myarc_memory_expansion_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : ti_expansion_card_device(mconfig, TI99_MYARCMEM, tag, owner, clock), + m_ram(*this, RAM_TAG), + m_dsrrom(nullptr), m_bank(0), m_size(0) +{ +} + +int myarc_memory_expansion_device::get_base(int offset) +{ + int base; + if (m_size == SIZE_128) + { + base = ((m_bank & 0x03) << 15); + } + else + { + base = (m_bank << 15); + } + base |= (offset & 0x1fff); + return base; +} + +/* + Memory read access. + RAM is at 2000-3fff, a000-ffff; + ROM is at 4000-5fff (if CRU bit 0 is set) +*/ +READ8Z_MEMBER(myarc_memory_expansion_device::readz) +{ + int base = get_base(offset); + + switch((offset & 0xe000)>>13) + { + case 1: + *value = m_ram->pointer()[base]; + break; + case 2: + if (m_selected) *value = m_dsrrom[offset & 0x1fff]; + break; + case 5: + *value = m_ram->pointer()[base | 0x2000]; + break; + case 6: + *value = m_ram->pointer()[base | 0x4000]; + break; + case 7: + *value = m_ram->pointer()[base | 0x6000]; + break; + default: + break; + } +} + +/* + Memory write access. DSRROM does not allow writing. +*/ +WRITE8_MEMBER(myarc_memory_expansion_device::write) +{ + int base = get_base(offset); + + switch((offset & 0xe000)>>13) + { + case 1: + m_ram->pointer()[base] = data; + break; + case 5: + m_ram->pointer()[base | 0x2000] = data; + break; + case 6: + m_ram->pointer()[base | 0x4000] = data; + break; + case 7: + m_ram->pointer()[base | 0x6000] = data; + break; + default: + break; + } +} + +/* + CRU read. None here. +*/ +READ8Z_MEMBER(myarc_memory_expansion_device::crureadz) +{ +} + +/* + CRU write. Bit 0 turns on the DSR (firmware), bits 1-3 are used to select + one of several 32K RAM banks. + + Select bits + 1000 = DSRROM seen on 4000-5fff (128, 512K) + 1002 = bit 0 of RAM bank value (128, 512K) + 1004 = bit 1 of RAM bank value (128, 512K) + 1006 = bit 2 of RAM bank value (512K) + 1008 = bit 3 of RAM bank value (512K) +*/ +WRITE8_MEMBER(myarc_memory_expansion_device::cruwrite) +{ + if (((offset & 0xff00)==MYARCMEM_CRU_BASE1)||((offset & 0xff00)==MYARCMEM_CRU_BASE2)) + { + if ((offset & 0x000e)==0) + { + // Turn on/off DSR + m_selected = (data!=0); + } + else + { + // xxxx xxxx xxxx 0010 + // xxxx xxxx xxxx 0100 + // xxxx xxxx xxxx 0110 + // xxxx xxxx xxxx 1000 + int bankbit = 1 << (((offset & 0x000e)>>1)-1); + + if (data==0) + m_bank &= ~bankbit; + else + m_bank |= bankbit; + } + } +} + +void myarc_memory_expansion_device::device_start() +{ + m_dsrrom = memregion(DSRROM)->base(); + save_item(NAME(m_bank)); + save_item(NAME(m_size)); +} + +void myarc_memory_expansion_device::device_reset() +{ + m_size = ioport("SIZE")->read(); + + // Resetting values + m_bank = 0; + m_selected = false; +} + +INPUT_PORTS_START( myarc_exp ) + PORT_START( "SIZE" ) + PORT_CONFNAME( 0x01, SIZE_512, "Myarc memory card size" ) + PORT_CONFSETTING( SIZE_128, "128 KiB") + PORT_CONFSETTING( SIZE_512, "512 KiB") +INPUT_PORTS_END + +ROM_START( myarc_exp ) + ROM_REGION(0x2000, DSRROM, 0) + ROM_LOAD("myarc512k_xb2_dsr.bin", 0x0000, 0x2000, CRC(41fbb96d) SHA1(4dc7fdfa46842957bcbb0cf2c37764e4bb6d877a)) /* DSR for Ramdisk etc. */ +ROM_END + +MACHINE_CONFIG_FRAGMENT( myarc_exp ) + MCFG_RAM_ADD(RAM_TAG) + MCFG_RAM_DEFAULT_SIZE("512k") + MCFG_RAM_DEFAULT_VALUE(0) +MACHINE_CONFIG_END + +machine_config_constructor myarc_memory_expansion_device::device_mconfig_additions() const +{ + return MACHINE_CONFIG_NAME( myarc_exp ); +} + +const tiny_rom_entry *myarc_memory_expansion_device::device_rom_region() const +{ + return ROM_NAME( myarc_exp ); +} + +ioport_constructor myarc_memory_expansion_device::device_input_ports() const +{ + return INPUT_PORTS_NAME(myarc_exp); +} + +DEFINE_DEVICE_TYPE(TI99_MYARCMEM, myarc_memory_expansion_device, "ti99_myarcmem", "Myarc Memory expansion card MEXP-1") diff --git a/src/devices/bus/ti99/peb/myarcmem.h b/src/devices/bus/ti99/peb/myarcmem.h new file mode 100644 index 00000000000..e2cf05d8660 --- /dev/null +++ b/src/devices/bus/ti99/peb/myarcmem.h @@ -0,0 +1,48 @@ +// license:LGPL-2.1+ +// copyright-holders:Michael Zapf +/**************************************************************************** + + TI-99 Myarc memory expansion + See myarcmem.c for documentation + + Michael Zapf, September 2010 + February 2012: Rewritten as class + +*****************************************************************************/ + +#ifndef MAME_BUS_TI99_PEB_MYARCMEM_H +#define MAME_BUS_TI99_PEB_MYARCMEM_H + +#pragma once + +#include "peribox.h" +#include "machine/ram.h" + +DECLARE_DEVICE_TYPE(TI99_MYARCMEM, myarc_memory_expansion_device) + +class myarc_memory_expansion_device : public ti_expansion_card_device +{ +public: + myarc_memory_expansion_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + DECLARE_READ8Z_MEMBER(readz) override; + DECLARE_WRITE8_MEMBER(write) override; + + DECLARE_READ8Z_MEMBER(crureadz) override; + DECLARE_WRITE8_MEMBER(cruwrite) override; + +protected: + void device_start() override; + void device_reset() override; + const tiny_rom_entry *device_rom_region() const override; + ioport_constructor device_input_ports() const override; + machine_config_constructor device_mconfig_additions() const override; + +private: + int get_base(int offset); + required_device m_ram; + uint8_t* m_dsrrom; + int m_bank; + int m_size; +}; + +#endif // MAME_BUS_TI99_PEB_MYARCMEM_H diff --git a/src/devices/bus/ti99/peb/pcode.cpp b/src/devices/bus/ti99/peb/pcode.cpp new file mode 100644 index 00000000000..b8896ffff1c --- /dev/null +++ b/src/devices/bus/ti99/peb/pcode.cpp @@ -0,0 +1,376 @@ +// license:LGPL-2.1+ +// copyright-holders:Michael Zapf +/**************************************************************************** + + TI-99 P-Code Card emulation. + + The P-Code card is part of the UCSD p-System support for the TI-99 + computer family. This system is a comprehensive development system for + creating, running, and debugging programs written in UCSD Pascal. + + The complete system consists of + - P-Code card, plugged into the Peripheral Expansion Box (PEB) + - Software on disk: + + PHD5063: UCSD p-System Compiler + + PHD5064: UCSD p-System Assembler/Linker + + PHD5065: UCSD p-System Editor/Filer (2 disks) + + The card has a switch on the circuit board extending outside the PEB + which allows to turn off the card without removing it. Unlike other + expansion cards for the TI system, the P-Code card immediately takes + over control after the system is turned on. + + When the p-System is booted, the screen turns cyan and remains empty. + There are two beeps, a pause for about 15 seconds, another three beeps, + and then a welcome text is displayed with a one-line menu at the screen + top. (Delay times seem unrealistically short; the manual says + 30-60 seconds. To be checked.) + Many of the functions require one of the disks be inserted in one + of the disk drives. You can leave the p-System by waiting for the menu + to appear, and typing H (halt). This returns you to the Master Title + Screen, and the card is inactive until the system is reset. + + The P-Code card contains the P-Code interpreter which is somewhat + comparable to today's Java virtual machine. Programs written for the + p-System are interchangeable between different platforms. + + On the P-Code card we find 12 KiB of ROM, visible in the DSR memory area + (>4000 to >5FFF). The first 4 KiB (>4000->4FFF) are from the 4732 ROM, + the second and third 4 KiB (>5000->5FFF) are from a 4764 ROM, switched + by setting the CRU bit 4 to 1 on the CRU base >1F00. + + CRU base >1F00 + Bit 0: Activate card + Bit 4: Select bank 2 of the 4764 ROM (0 = bank 1) + Bit 7: May be connected to an indicator LED which is by default + wired to bit 0 (on the PCB) + + The lines are used in a slightly uncommon way: the three bits of the + CRU bit address are A8, A13, and A14 (A15=LSB). Hence, bit 4 is at + address >1F80, and bit 7 is at address >1F86. These bits are purely + write-only. + + Moreover, the card contains 48 KiB of GROM memory, occupying the address + space from G>0000 to G>FFFF in portions of 6KiB at every 8KiB boundary. + + Another specialty of the card is that the GROM contents are accessed via + another GROM base address than what is used in the console: + - >5BFC = read GROM data + - >5BFE = read GROM address + - >5FFC = write GROM data + - >5FFE = write GROM address + + This makes the GROM memory "private" to the card; together with the + rest of the ROM space the ports become invisible when the card is + deactivated. + + Michael Zapf + + July 2009: First version + September 2010: Rewritten as device + February 2012: Rewritten as class + +*****************************************************************************/ + +#include "emu.h" +#include "pcode.h" + +#define PCODE_GROM_TAG "pcode_grom" +#define PCODE_ROM_TAG "pcode_rom" + +#define PGROM0_TAG "grom0" +#define PGROM1_TAG "grom1" +#define PGROM2_TAG "grom2" +#define PGROM3_TAG "grom3" +#define PGROM4_TAG "grom4" +#define PGROM5_TAG "grom5" +#define PGROM6_TAG "grom6" +#define PGROM7_TAG "grom7" +#define ACTIVE_TAG "ACTIVE" + +#define CRU_BASE 0x1f00 + +#define TRACE_ROM 0 +#define TRACE_GROM 0 +#define TRACE_CRU 0 +#define TRACE_SWITCH 0 + +ti_pcode_card_device::ti_pcode_card_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : ti_expansion_card_device(mconfig, TI99_P_CODE, tag, owner, clock), + m_rom(nullptr), + m_bank_select(0), + m_active(false), + m_clock_count(0), + m_clockhigh(false), + m_inDsrArea(false), + m_isrom0(false), + m_isrom12(false), + m_isgrom(false), + m_address(0) +{ +} + +SETADDRESS_DBIN_MEMBER( ti_pcode_card_device::setaddress_dbin ) +{ + m_address = offset; + m_inDsrArea = ((m_address & m_select_mask)==m_select_value); + + line_state a14 = ((m_address & 2)!=0)? ASSERT_LINE : CLEAR_LINE; + + m_isrom0 = ((m_address & 0xf000)==0x4000); + m_isrom12 = ((m_address & 0xf000)==0x5000); + + // Valid access (GROM write with DBIN=0 or read with DBIN=1) + bool validaccess = (state==CLEAR_LINE || (m_address & 0x0400)==0); + + // GROM access 0101 1011 1111 1100 + m_isgrom = ((m_address & 0xfbfd)==0x5bfc) && validaccess; + + if (validaccess) + { + int lines = (state==ASSERT_LINE)? 1 : 0; + if (a14==ASSERT_LINE) lines |= 2; + line_state select = m_isgrom? ASSERT_LINE : CLEAR_LINE; + + // always deliver to GROM so that the select line may be cleared + for (int i=0; i < 8; i++) + m_grom[i]->set_lines(space, lines, select); + } +} + +void ti_pcode_card_device::debugger_read(address_space& space, uint16_t offset, uint8_t& value) +{ + // The debuger does not call setaddress + if (m_active && ((offset & m_select_mask)==m_select_value)) + { + bool isrom0 = ((offset & 0xf000)==0x4000); + bool isrom12 = ((offset & 0xf000)==0x5000); + if (isrom0) value = m_rom[m_address & 0x0fff]; + else + if (isrom12) value = m_rom[(m_bank_select<<12) | (offset & 0x0fff)]; + } +} + +READ8Z_MEMBER( ti_pcode_card_device::readz ) +{ + // Care for debugger + if (machine().side_effect_disabled()) + { + debugger_read(space, offset, *value); + } + + if (m_active && m_inDsrArea && m_selected) + { + if (m_isrom0) + { + *value = m_rom[m_address & 0x0fff]; + if (TRACE_ROM) logerror("Read from rom %04x: %02x\n", offset&0xffff, *value); + } + else + { + if (m_isgrom) + { + for (auto& elem : m_grom) elem->readz(space, m_address, value); + if (TRACE_GROM) logerror("Read from grom %04x: %02x\n", m_address&0xffff, *value); + } + else + { + if (m_isrom12) + { + // Accesses ROM 4764 (2*4K) + // We have two banks here which are activated according + // to the setting of CRU bit 4 + // Bank 0 is the ROM above + // 0001 xxxx xxxx xxxx Bank 1 + // 0010 xxxx xxxx xxxx Bank 2 + *value = m_rom[(m_bank_select<<12) | (m_address & 0x0fff)]; + if (TRACE_ROM) logerror("Read from rom %04x (%02x): %02x\n", m_address&0xffff, m_bank_select, *value); + } + } + } + } +} + +/* + Write a byte in P-Code ROM space. This is only used for setting the + GROM address. +*/ +WRITE8_MEMBER( ti_pcode_card_device::write ) +{ + if (machine().side_effect_disabled()) return; + if (m_active && m_isgrom && m_selected) + { + for (auto & elem : m_grom) elem->write(space, m_address, data); + } +} + +/* + Common READY* line from the GROMs. +*/ +WRITE_LINE_MEMBER( ti_pcode_card_device::ready_line ) +{ + m_slot->set_ready(state); +} + +/* + CLKOUT line from the CPU. This line is divided by 8 to generate a 375 Khz + clock input for the GROMs, which are thus running at a lower rate than + those in the console driven by the VDP (477 kHz). +*/ +WRITE_LINE_MEMBER( ti_pcode_card_device::clock_in) +{ + m_clock_count = (m_clock_count+1) & 0x03; // four pulses high, four pulses low + if (m_clock_count==0) + { + // Toggle + m_clockhigh = !m_clockhigh; + for (auto & elem : m_grom) elem->gclock_in(m_clockhigh? ASSERT_LINE : CLEAR_LINE); + } +} + +/* + CRU read handler. The P-Code card does not offer CRU read lines, so + we just ignore any request. (Note that CRU lines are not like memory; you + may be able to write to them, but not necessarily read them again.) +*/ +READ8Z_MEMBER(ti_pcode_card_device::crureadz) +{ +} + +/* + The CRU write handler. + Bit 0 = activate card + Bit 4 = select second bank of high ROM. + + Somewhat uncommon, the CRU address is created from address lines + A8, A13, and A14 so bit 0 is at 0x1f00, but bit 4 is at 0x1f80. Accordingly, + bit 7 would be 0x1f86 but it is not used. +*/ +WRITE8_MEMBER(ti_pcode_card_device::cruwrite) +{ + if ((offset & 0xff00)==CRU_BASE) + { + int addr = offset & 0x00ff; + + if (addr==0) + m_selected = (data != 0); + + if (addr==0x80) // Bit 4 is on address line 8 + { + m_bank_select = (data+1); // we're calling this bank 1 and bank 2 + if (TRACE_CRU) logerror("Select rom bank %d\n", m_bank_select); + } + } +} + +void ti_pcode_card_device::device_start() +{ + m_grom[0] = downcast(subdevice(PGROM0_TAG)); + m_grom[1] = downcast(subdevice(PGROM1_TAG)); + m_grom[2] = downcast(subdevice(PGROM2_TAG)); + m_grom[3] = downcast(subdevice(PGROM3_TAG)); + m_grom[4] = downcast(subdevice(PGROM4_TAG)); + m_grom[5] = downcast(subdevice(PGROM5_TAG)); + m_grom[6] = downcast(subdevice(PGROM6_TAG)); + m_grom[7] = downcast(subdevice(PGROM7_TAG)); + m_rom = memregion(PCODE_ROM_TAG)->base(); + + save_item(NAME(m_bank_select)); + save_item(NAME(m_active)); + save_item(NAME(m_clock_count)); + save_item(NAME(m_clockhigh)); + save_item(NAME(m_inDsrArea)); + save_item(NAME(m_isrom0)); + save_item(NAME(m_isrom12)); + save_item(NAME(m_isgrom)); + save_item(NAME(m_address)); +} + +void ti_pcode_card_device::device_reset() +{ + if (m_genmod) + { + m_select_mask = 0x1fe000; + m_select_value = 0x174000; + } + else + { + m_select_mask = 0x7e000; + m_select_value = 0x74000; + } + m_bank_select = 1; + m_selected = false; + m_clock_count = 0; + m_clockhigh = false; + + m_active = ioport(ACTIVE_TAG)->read(); + + m_isrom0 = false; + m_isrom12 = false; + m_isgrom = false; + m_address = 0; +} + +void ti_pcode_card_device::device_config_complete() +{ +} + +INPUT_CHANGED_MEMBER( ti_pcode_card_device::switch_changed ) +{ + if (TRACE_SWITCH) logerror("Switch changed to %d\n", newval); + m_active = (newval != 0); +} + + +MACHINE_CONFIG_FRAGMENT( ti99_pcode ) + MCFG_GROM_ADD( PGROM0_TAG, 0, PCODE_GROM_TAG, 0x0000, WRITELINE(ti_pcode_card_device, ready_line)) + MCFG_GROM_ADD( PGROM1_TAG, 1, PCODE_GROM_TAG, 0x2000, WRITELINE(ti_pcode_card_device, ready_line)) + MCFG_GROM_ADD( PGROM2_TAG, 2, PCODE_GROM_TAG, 0x4000, WRITELINE(ti_pcode_card_device, ready_line)) + MCFG_GROM_ADD( PGROM3_TAG, 3, PCODE_GROM_TAG, 0x6000, WRITELINE(ti_pcode_card_device, ready_line)) + MCFG_GROM_ADD( PGROM4_TAG, 4, PCODE_GROM_TAG, 0x8000, WRITELINE(ti_pcode_card_device, ready_line)) + MCFG_GROM_ADD( PGROM5_TAG, 5, PCODE_GROM_TAG, 0xa000, WRITELINE(ti_pcode_card_device, ready_line)) + MCFG_GROM_ADD( PGROM6_TAG, 6, PCODE_GROM_TAG, 0xc000, WRITELINE(ti_pcode_card_device, ready_line)) + MCFG_GROM_ADD( PGROM7_TAG, 7, PCODE_GROM_TAG, 0xe000, WRITELINE(ti_pcode_card_device, ready_line)) +MACHINE_CONFIG_END + +INPUT_PORTS_START( ti99_pcode ) + PORT_START( ACTIVE_TAG ) + PORT_DIPNAME( 0x01, 0x00, "P-Code activation switch" ) PORT_CHANGED_MEMBER(DEVICE_SELF, ti_pcode_card_device, switch_changed, nullptr) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x01, DEF_STR( On ) ) +INPUT_PORTS_END + +ROM_START( ti99_pcode ) + ROM_REGION(0x10000, PCODE_GROM_TAG, 0) + // The order of the GROMs with respect to the socket number is not guaranteed to be correct + // as all GROMs are connected in parallel and dumped in-system + ROM_LOAD("pcode_grom0.u11", 0x0000, 0x1800, CRC(505e5df0) SHA1(66911fba7599c64981180f8a673581f4b05941ff)) + ROM_LOAD("pcode_grom1.u13", 0x2000, 0x1800, CRC(63b546d5) SHA1(3d830c8bdac102275ec0702eff1ebf4b67484f52)) + ROM_LOAD("pcode_grom2.u14", 0x4000, 0x1800, CRC(28821e5c) SHA1(c147bd5d8d624caa690284bfc253c6699e3518d4)) + ROM_LOAD("pcode_grom3.u16", 0x6000, 0x1800, CRC(1db4a4a5) SHA1(f7a0ba8050f00ccc1ee328c66df5cc4269748ced)) + ROM_LOAD("pcode_grom4.u19", 0x8000, 0x1800, CRC(9618eb9b) SHA1(1f223f3febcb93e648cefe49c83bfeac802be9d6)) + ROM_LOAD("pcode_grom5.u20", 0xa000, 0x1800, CRC(c47efe6d) SHA1(f5b56c7de1cb1e7345a0716d35f00a3a9722febe)) + ROM_LOAD("pcode_grom6.u21", 0xc000, 0x1800, CRC(06a34c93) SHA1(56172c56afa3868f2098328f81881022230d949d)) + ROM_LOAD("pcode_grom7.u22", 0xe000, 0x1800, CRC(a09ca8d9) SHA1(2ea33d875f9c8e7c00df023a0d8d4461d50f0a87)) + + ROM_REGION(0x3000, PCODE_ROM_TAG, 0) + ROM_LOAD("pcode_rom0.u1", 0x0000, 0x1000, CRC(3881d5b0) SHA1(a60e0468bb15ff72f97cf6e80979ca8c11ed0426)) /* TI P-Code card rom4732 */ + ROM_LOAD("pcode_rom1.u18", 0x1000, 0x2000, CRC(46a06b8b) SHA1(24e2608179921aef312cdee6f455e3f46deb30d0)) /* TI P-Code card rom4764 */ +ROM_END + +machine_config_constructor ti_pcode_card_device::device_mconfig_additions() const +{ + return MACHINE_CONFIG_NAME( ti99_pcode ); +} + +const tiny_rom_entry *ti_pcode_card_device::device_rom_region() const +{ + return ROM_NAME( ti99_pcode ); +} + +ioport_constructor ti_pcode_card_device::device_input_ports() const +{ + return INPUT_PORTS_NAME( ti99_pcode ); +} + +DEFINE_DEVICE_TYPE(TI99_P_CODE, ti_pcode_card_device, "ti99_pcode", "TI-99 P-Code Card") diff --git a/src/devices/bus/ti99/peb/pcode.h b/src/devices/bus/ti99/peb/pcode.h new file mode 100644 index 00000000000..088ca1ae4b3 --- /dev/null +++ b/src/devices/bus/ti99/peb/pcode.h @@ -0,0 +1,67 @@ +// license:LGPL-2.1+ +// copyright-holders:Michael Zapf +/**************************************************************************** + + TI-99 P-Code Card emulation. + See p_code.c for documentation + + Michael Zapf + July 2009 + Revised July 2010 + February 2012: Rewritten as class + +*****************************************************************************/ + +#ifndef MAME_BUS_TI99_PEB_PCODE_H +#define MAME_BUS_TI99_PEB_PCODE_H + +#pragma once + +#include "peribox.h" +#include "machine/tmc0430.h" + +DECLARE_DEVICE_TYPE(TI99_P_CODE, ti_pcode_card_device) + +class ti_pcode_card_device : public ti_expansion_card_device +{ +public: + ti_pcode_card_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + DECLARE_READ8Z_MEMBER(readz) override; + DECLARE_WRITE8_MEMBER(write) override; + DECLARE_READ8Z_MEMBER(crureadz) override; + DECLARE_WRITE8_MEMBER(cruwrite) override; + DECLARE_SETADDRESS_DBIN_MEMBER(setaddress_dbin) override; + + DECLARE_WRITE_LINE_MEMBER(clock_in) override; + + DECLARE_WRITE_LINE_MEMBER( ready_line ); + DECLARE_INPUT_CHANGED_MEMBER( switch_changed ); + +protected: + virtual void device_start() override; + virtual void device_reset() override; + virtual void device_config_complete() override; + virtual const tiny_rom_entry *device_rom_region() const override; + virtual machine_config_constructor device_mconfig_additions() const override; + virtual ioport_constructor device_input_ports() const override; + +private: + void debugger_read(address_space& space, uint16_t addr, uint8_t& value); + tmc0430_device* m_grom[8]; + uint8_t* m_rom; + int m_bank_select; + bool m_active; + int m_clock_count; + bool m_clockhigh; + + // Address in card area + bool m_inDsrArea; + bool m_isrom0; + bool m_isrom12; + bool m_isgrom; + + // Recent address + int m_address; +}; + +#endif // MAME_BUS_TI99_PEB_PCODE_H diff --git a/src/devices/bus/ti99/peb/peribox.cpp b/src/devices/bus/ti99/peb/peribox.cpp new file mode 100644 index 00000000000..add22015f2d --- /dev/null +++ b/src/devices/bus/ti99/peb/peribox.cpp @@ -0,0 +1,761 @@ +// license:LGPL-2.1+ +// copyright-holders:Michael Zapf +/**************************************************************************** + + Peripheral expansion system + + The ti-99/4, ti-99/4a, ti computer 99/8, myarc geneve, and snug sgcpu + 99/4p systems all feature a bus connector that enables the connection of + extension cards. (Although the hexbus is the preferred bus to add + additional peripherals to a ti-99/8, ti-99/8 is believed to be compatible + with the older PEB system.) In the case of the TI consoles, this bus + connector is located on the right side of the console. + + While a few extension cards connect to the side bus connector of the + ti-99/4(a) console directly, most extension cards were designed to be + inserted in a PEB instead. The PEB (Peripheral Expansion Box) is a big box + with power supply, a few bus drivers, and several card slots, that + connects to the ti-99/4(a) side port. The reason for using a PEB is that + daisy-chaining many modules caused the system to be unreliable due to the + noise produced by the successive contacts. (As a matter of fact, TI + initially released most of its extension cards as side bus units, but when + the design proved to be unreliable, the PEB was introduced. The TI speech + synthesizer was the only TI extension that remained on the side bus after + the introduction of the PEB, probably because TI wanted the speech + synthesizer to be a cheap extension, and the PEB was not cheap.) + + + =================## connection cable to console + || + || + +--------------+----+----+----+----+----+----+----+----+------------+ + | | S | S | S | S | S | S | S | S x passthru | + | | L | L | L | L | L | L | L | L x for cable | + | Power | O | O | O | O | O | O | O | O x | + | unit | T | T | T | T | T | T | T | T | | + | and | | | | | | | | | Floppy | + | ventilation | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | drive | + | | | | | | | | | | compartment| + | | | | | | | | | | | + | | | | | | | | | | 1 full hgt | + | | | | | | | | |LED | or 2 "slim"| + | +----+----+----+----+----+----+----+-|--+ (half-hgt) | + | : | seen from above | | | | | | + +--------------+-O----O----O----O----O----O----O----O---------------+ + + All slots are connected in parallel with all signal lines. The cards + must be equipped with bus drivers (244/245) and are usually activated + by turning a CRU bit on (except for the memory expansions which are + always active). + + This is emulation in exactly the same way. The data coming from the + console is propagated to all slots, and each card decides whether to + react or not. Similarly, for read operations, all cards are checked, + and only the active cards actually put a value on the data bus + (we do this using the bus8z_device; see ti99defs.h). + + Slot 1 is usually reserved for the "Flex cable interface" when connecting + a TI-99/4(A)/8 console. Also, the Geneve is put into slot 1. We therefore + do not offer peb:slot1. Slot 8 is usually used for floppy controllers + as there is a passthrough for cables. + + + Slots: + + REAR + +8V 1||2 +8V + GND 3||4 READY + GND 5||6 RESET* + GND 7||8 SCLK + BOOTPG* 9||10 AUDIO + RDBENA* 11||12 PCBEN + HOLD* 13||14 IAQHDA + SENILA* 15||16 SENILB* + INTA* 17||18 INTB* + D7 19||20 GND + D5 21||22 D6 + D3 23||24 D4 + D1 25||26 D2 + GND 27||28 D0 + A14 29||30 A15/CRUOUT + A12 31||32 A13 + A10 33||34 A11 + A8 35||36 A9 + A6 37||38 A7 + A4 39||40 A5 + A2 41||42 A3 + A0 43||44 A1 + AMB 45||46 AMA + GND 47||48 AMC + GND 49||50 CLKOUT* +CRUCLK* 51||52 DBIN + GND 53||54 WE* + CRUIN 55||56 MEMEN* + -16V 57||58 -16V + +16V 59||60 +16V + FRONT + + < from box to console + > from console into box + + READYA < System ready (goes to READY, 10K pull-up to +5V) A low level puts the cpu on hold. + RESET* > System reset (active low) + SCLK nc System clock (not connected in interface card) + LCP* nc CPU indicator 1=TI99 0=2nd generation (not connected in interface card) + BOOTPG* nc ? + AUDIO < Input audio (to AUDIOIN in console) + RDBENA* < Active low: enable flex cable data bus drivers (1K pull-up) + PCBEN H PCB enable for burn-in (always High) + HOLD* H Active low CPU hold request (always High) + IAQHDA nc IAQ [or] HOLDA (logical or) + SENILA* H(>) Interrupt level A sense enable (always High) + SENILB* H(>) Interrupt level B sense enable (always High) + INTA* < Interrupt level A (active low, goes to EXTINT*) + INTB* nc Interrupt level B (not used) + LOAD* nc Unmaskable interrupt (not carried by interface cable/card) + D0-D7 <> Data bus (D0 most significant) + A0-A15 > Address bus (A0 most sig; A15 also used as CRUOUT) + AMA/B/C H Extra address bits (always high for TI-99/4x, but used with SGCPU and Geneve) + CLKOUT* > Inverted PHI3 clock, from TIM9904 clock generator + CRUCLK* > Inverted CRU clock, from TMS9900 CRUCLK pin + DBIN > Active high = read memory. Drives the data bus buffers. + WE* > Write Enable pulse (derived from TMS9900 WE* pin) + CRUIN < CRU input bit to TMS9900 + MEMEN* > Memory access enable (active low) + + The SENILx lines are somewhat obscure, since there have never been hardware + or software that made practical use of them. The intended use can be guessed + from some few traditional cards (like the TI RS232) which indeed have + connections. + + With SENILA* asserted (low), a value shall be put on the data bus, + representing the interrupt status bits. It can also be used to determine + the source of the interrupt: The RS232 card (in its standard configuration) + uses the data bus bits 0 and 1 for its two UARTs, while in the second + configuration, it uses bits 4 and 5. + + SENILB* / INTB* was planned to be used with disk controllers. The PHP1240 disk + controller puts the value of INTB* on D0 when SENILB* gets active (low) which + reflects the INTRQ output pin of the WD1771. This signal is not used, however. + Instead, the disk controller combines DRQ and IRQ and makes use of a READY/HOLD + control of the CPU. + + Obviously, SENILA* and SENILB* should never be active at the same time, and + neither should any memory access to a card be active at the same time, for in + both cases, data bus lines may be set to different levels simultaneously. One + possible application case is to turn off all cards in the box, assert SENILA*, + and then do a read access in the memory area of any card in the P-Box (e.g. + 0x4000-0x5fff). Another possiblity is that the currently active card simply + does not respond to a certain memory access, and in this case the status bits + can be read. + + Also note that the SENILx lines access all cards in parallel, meaning that there + must be an agreement which cards may use which bits on the data bus. The lines + do not depend on the card being active at that time. + + Emulation architecture + + console ---- peribox --+ [-- slot1 (always occupied by console connector) ] + | + +--- slot2 --- card + | + +--- slot3 --- card + : + +--- slot8 --- card (usually some floppy controller) + + We have an instance of peribox_device which contains 7 slots + (peribox_slot_device) which are subclasses of device_slot_interface. + Each slot may host one of several cards (ti_expansion_card_device), + which are subclassed from device_slot_card_interface. + + For bus8z_device consult ti99defs.h + --------------------- + + June 2010: Reimplemented using device structure (MZ) + January 2012: Reimplemented as class (MZ) + +*****************************************************************************/ + +#include "emu.h" +#include "peribox.h" + +// The cards +#include "ti_32kmem.h" +#include "ti_fdc.h" +#include "bwg.h" +#include "hfdc.h" +#include "pcode.h" +#include "myarcmem.h" +#include "samsmem.h" +#include "tn_ide.h" +#include "tn_usbsm.h" +#include "evpc.h" +#include "hsgpl.h" +#include "ti_rs232.h" +#include "spchsyn.h" +#include "memex.h" +#include "horizon.h" + +/* + Debugging flags. Set to 0 or 1. +*/ +// Show interrupt line activity +#define TRACE_INT 0 + +// Show ready line activity +#define TRACE_READY 0 + +// Show emulation details +#define TRACE_EMU 1 + +#define PEBSLOT2 "slot2" +#define PEBSLOT3 "slot3" +#define PEBSLOT4 "slot4" +#define PEBSLOT5 "slot5" +#define PEBSLOT6 "slot6" +#define PEBSLOT7 "slot7" +#define PEBSLOT8 "slot8" + +peribox_device::peribox_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : peribox_device(mconfig, PERIBOX, tag, owner, clock) +{ + // The address prefix is actually created by the "Flex cable interface" + // which sits in slot 1. + m_address_prefix = 0x70000; +} + +/* + Constructor called from subclasses. +*/ +peribox_device::peribox_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : bus8z_device(mconfig, type, tag, owner, clock), + m_console_inta(*this), + m_console_intb(*this), + m_sgcpu_lcp(*this), + m_datamux_ready(*this), + m_inta_flag(0), m_intb_flag(0), m_ready_flag(0), m_address_prefix(0), m_msast(false), m_memen(false) +{ + for (int i=2; i <= 8; i++) m_slot[i] = nullptr; +} + +READ8Z_MEMBER(peribox_device::readz) +{ + for (int i=2; i <= 8; i++) + { + if (m_slot[i]!=nullptr) m_slot[i]->readz(space, offset | m_address_prefix, value, mem_mask); + } +} + +WRITE8_MEMBER(peribox_device::write) +{ + for (int i=2; i <= 8; i++) + { + if (m_slot[i]!=nullptr) m_slot[i]->write(space, offset | m_address_prefix, data, mem_mask); + } +} + +SETADDRESS_DBIN_MEMBER(peribox_device::setaddress_dbin) +{ + // Ignore the address when the TI-99/8 transmits the high-order 8 bits + if (!m_memen) return; + + for (int i=2; i <= 8; i++) + { + if (m_slot[i]!=nullptr) m_slot[i]->setaddress_dbin(space, offset | m_address_prefix, state); + } +} + +READ8Z_MEMBER(peribox_device::crureadz) +{ + for (int i=2; i <= 8; i++) + { + if (m_slot[i]!=nullptr) m_slot[i]->crureadz(space, offset, value); + } +} + +WRITE8_MEMBER(peribox_device::cruwrite) +{ + for (int i=2; i <= 8; i++) + { + if (m_slot[i]!=nullptr) m_slot[i]->cruwrite(space, offset, data); + } +} + +/* + And here are finally the two mythical lines SENILA* and SENILB*; mythical + since there is no report of any software that ever used them. +*/ +WRITE_LINE_MEMBER(peribox_device::senila) +{ + for (int i=2; i <= 8; i++) + { + if (m_slot[i]!=nullptr) m_slot[i]->senila(state); + } +} + +WRITE_LINE_MEMBER(peribox_device::senilb) +{ + for (int i=2; i <= 8; i++) + { + if (m_slot[i]!=nullptr) m_slot[i]->senilb(state); + } +} + +/* + MEMEN input. Used to start the external memory access cycle. +*/ +WRITE_LINE_MEMBER(peribox_device::memen_in) +{ + m_memen = (state==ASSERT_LINE); +} + +/* + MSAST input. Defined by TI-99/8; we ignore this part in the PEB. +*/ +WRITE_LINE_MEMBER(peribox_device::msast_in) +{ + m_msast = (state==ASSERT_LINE); +} + +/* + CLKOUT line +*/ + +WRITE_LINE_MEMBER(peribox_device::clock_in) +{ + for (int i=2; i <= 8; i++) + { + if (m_slot[i]!=nullptr) m_slot[i]->clock_in(state); + } +} + +/* + The Genmod modification is only of interest for the Geneve. It requires + to modify the decoding of each single card. +*/ +INPUT_CHANGED_MEMBER( peribox_device::genmod_changed ) +{ + set_genmod(newval==1); +} + +void peribox_device::set_genmod(bool set) +{ + for (int i=2; i <= 8; i++) + { + if (m_slot[i]!=nullptr) m_slot[i]->set_genmod(set); + } +} + +/* + The INTA*, INTB*, and READY* lines are connected to each PEB card and are + pulled up when inactive. If any card asserts the line (pulling down), the + line state goes down. So we must keep a record which cards pull down the + line. + + (We're doing a kind of wired-AND here.) +*/ +void peribox_device::inta_join(int slot, int state) +{ + if (TRACE_INT) logerror("%s: propagating INTA from slot %d to console: %d\n", tag(), slot, state); + if (state==ASSERT_LINE) + m_inta_flag |= (1 << slot); + else + m_inta_flag &= ~(1 << slot); + + m_console_inta((m_inta_flag != 0)? ASSERT_LINE : CLEAR_LINE); +} + +void peribox_device::intb_join(int slot, int state) +{ + if (TRACE_INT) logerror("%s: propagating INTB from slot %d to console: %d\n", tag(), slot, state); + if (state==ASSERT_LINE) + m_intb_flag |= (1 << slot); + else + m_intb_flag &= ~(1 << slot); + + m_console_intb((m_intb_flag != 0)? ASSERT_LINE : CLEAR_LINE); +} + +void peribox_device::lcp_join(int slot, int state) +{ + if (TRACE_INT) logerror("%s: propagating LCP from slot %d to SGCPU: %d\n", tag(), slot, state); + if (state==ASSERT_LINE) + m_lcp_flag |= (1 << slot); + else + m_lcp_flag &= ~(1 << slot); + + m_sgcpu_lcp((m_lcp_flag != 0)? ASSERT_LINE : CLEAR_LINE); +} + +/* + When any device pulls down READY, READY goes down. +*/ +void peribox_device::ready_join(int slot, int state) +{ + if (TRACE_READY) logerror("%s: Incoming READY=%d from slot %d\n", tag(), state, slot); + // We store the inverse state + if (state==CLEAR_LINE) + m_ready_flag |= (1 << slot); + else + m_ready_flag &= ~(1 << slot); + + m_datamux_ready((m_ready_flag != 0)? CLEAR_LINE : ASSERT_LINE); +} + +void peribox_device::set_slot_loaded(int slot, peribox_slot_device* slotdev) +{ + m_slot[slot] = slotdev; +} + +void peribox_device::device_start() +{ + if (TRACE_EMU) logerror("%s: started\n", tag()); + + // Resolve the callback lines to the console + m_console_inta.resolve(); + m_console_intb.resolve(); + m_sgcpu_lcp.resolve(); + m_datamux_ready.resolve(); + + if (TRACE_EMU) + { + logerror("%s: AMA/B/C address prefix set to %05x\n", tag(), m_address_prefix); + for (int i=2; i < 9; i++) + { + logerror("%s: Slot %d = %s\n", tag(), i, (m_slot[i] != nullptr)? m_slot[i]->m_card->tag() : "EMPTY"); + } + } + + save_item(NAME(m_inta_flag)); + save_item(NAME(m_intb_flag)); + save_item(NAME(m_lcp_flag)); + save_item(NAME(m_ready_flag)); + save_item(NAME(m_msast)); + save_item(NAME(m_memen)); +} + +void peribox_device::device_config_complete() +{ + m_inta_flag = 0; + m_intb_flag = 0; + m_lcp_flag = 0; + m_ready_flag = 0; +} + +SLOT_INTERFACE_START( peribox_slot ) + SLOT_INTERFACE("32kmem", TI99_32KMEM) + SLOT_INTERFACE("myarcmem", TI99_MYARCMEM) + SLOT_INTERFACE("samsmem", TI99_SAMSMEM) + SLOT_INTERFACE("pcode", TI99_P_CODE) + SLOT_INTERFACE("hsgpl", TI99_HSGPL) + SLOT_INTERFACE("tirs232", TI99_RS232) + SLOT_INTERFACE("speech", TI99_SPEECH) + SLOT_INTERFACE("horizon", TI99_HORIZON) + SLOT_INTERFACE("ide", TI99_IDE) + SLOT_INTERFACE("usbsm", TI99_USBSM) + SLOT_INTERFACE("bwg", TI99_BWG) + SLOT_INTERFACE("hfdc", TI99_HFDC) + SLOT_INTERFACE("tifdc", TI99_FDC) +SLOT_INTERFACE_END + +MACHINE_CONFIG_FRAGMENT( peribox_device ) + MCFG_PERIBOX_SLOT_ADD( PEBSLOT2, peribox_slot ) + MCFG_PERIBOX_SLOT_ADD( PEBSLOT3, peribox_slot ) + MCFG_PERIBOX_SLOT_ADD( PEBSLOT4, peribox_slot ) + MCFG_PERIBOX_SLOT_ADD( PEBSLOT5, peribox_slot ) + MCFG_PERIBOX_SLOT_ADD( PEBSLOT6, peribox_slot ) + MCFG_PERIBOX_SLOT_ADD( PEBSLOT7, peribox_slot ) + MCFG_PERIBOX_SLOT_ADD( PEBSLOT8, peribox_slot ) +MACHINE_CONFIG_END + +machine_config_constructor peribox_device::device_mconfig_additions() const +{ + return MACHINE_CONFIG_NAME( peribox_device ); +} + +/**************************************************************************** + A variant of the box used for the Geneve. +*****************************************************************************/ + +peribox_gen_device::peribox_gen_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : peribox_device(mconfig, PERIBOX_GEN, tag, owner, clock) +{ + // The Geneve sits in slot 1; there is no prefix here - it can control + // a maximum address space of 512 KiB in the box. With the Genmod + // modification, the full 2 MiB space is available. + m_address_prefix = 0x00000; +} + +// The BwG controller will not run with the Geneve due to its wait state +// logic (see bwg.c) + +SLOT_INTERFACE_START( peribox_slotg ) + SLOT_INTERFACE("memex", TI99_MEMEX) + SLOT_INTERFACE("tirs232", TI99_RS232) + SLOT_INTERFACE("speech", TI99_SPEECH) + SLOT_INTERFACE("horizon", TI99_HORIZON) + SLOT_INTERFACE("ide", TI99_IDE) + SLOT_INTERFACE("usbsm", TI99_USBSM) + SLOT_INTERFACE("tifdc", TI99_FDC) + SLOT_INTERFACE("hfdc", TI99_HFDC) +SLOT_INTERFACE_END + +MACHINE_CONFIG_FRAGMENT( peribox_gen_device ) + MCFG_PERIBOX_SLOT_ADD( PEBSLOT2, peribox_slotg ) + MCFG_PERIBOX_SLOT_ADD( PEBSLOT3, peribox_slotg ) + MCFG_PERIBOX_SLOT_ADD( PEBSLOT4, peribox_slotg ) + MCFG_PERIBOX_SLOT_ADD( PEBSLOT5, peribox_slotg ) + MCFG_PERIBOX_SLOT_ADD( PEBSLOT6, peribox_slotg ) + MCFG_PERIBOX_SLOT_ADD( PEBSLOT7, peribox_slotg ) + MCFG_PERIBOX_SLOT_ADD( PEBSLOT8, peribox_slotg ) +MACHINE_CONFIG_END + +machine_config_constructor peribox_gen_device::device_mconfig_additions() const +{ + return MACHINE_CONFIG_NAME( peribox_gen_device ); +} + +/**************************************************************************** + A variant of the box used for the TI-99/8 +*****************************************************************************/ + +peribox_998_device::peribox_998_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : peribox_device(mconfig, PERIBOX_998, tag, owner, clock) +{ + m_address_prefix = 0x70000; +} + +// The BwG controller will not run with the TI-99/8 for the same reason why +// it won't work with the Geneve. +// We don't have many options here. The P-Box is not the prefered device for +// the 99/8; it was intended to use the Hexbus interface. None of the memory +// expansions are really supposed to work here. +SLOT_INTERFACE_START( peribox_slot998 ) + SLOT_INTERFACE("ide", TI99_IDE) + SLOT_INTERFACE("usbsm", TI99_USBSM) + SLOT_INTERFACE("tirs232", TI99_RS232) + SLOT_INTERFACE("tifdc", TI99_FDC) + SLOT_INTERFACE("hfdc", TI99_HFDC) +SLOT_INTERFACE_END + +MACHINE_CONFIG_FRAGMENT( peribox_998_device ) + MCFG_PERIBOX_SLOT_ADD( PEBSLOT2, peribox_slot998 ) + MCFG_PERIBOX_SLOT_ADD( PEBSLOT3, peribox_slot998 ) + MCFG_PERIBOX_SLOT_ADD( PEBSLOT4, peribox_slot998 ) + MCFG_PERIBOX_SLOT_ADD( PEBSLOT5, peribox_slot998 ) + MCFG_PERIBOX_SLOT_ADD( PEBSLOT6, peribox_slot998 ) + MCFG_PERIBOX_SLOT_ADD( PEBSLOT7, peribox_slot998 ) + MCFG_PERIBOX_SLOT_ADD( PEBSLOT8, peribox_slot998 ) +MACHINE_CONFIG_END + +machine_config_constructor peribox_998_device::device_mconfig_additions() const +{ + return MACHINE_CONFIG_NAME( peribox_998_device ); +} + +/**************************************************************************** + A variant of the box used for the SGCPU (aka TI-99/4P). +*****************************************************************************/ + +peribox_sg_device::peribox_sg_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) +: peribox_device(mconfig, PERIBOX_SG, tag, owner, clock) +{ + m_address_prefix = 0x70000; +} + +SLOT_INTERFACE_START( peribox_slotp ) + SLOT_INTERFACE("pcode", TI99_P_CODE) + SLOT_INTERFACE("tirs232", TI99_RS232) + SLOT_INTERFACE("speech", TI99_SPEECH) + SLOT_INTERFACE("myarcmem", TI99_MYARCMEM) + SLOT_INTERFACE("samsmem", TI99_SAMSMEM) + SLOT_INTERFACE("horizon", TI99_HORIZON) + SLOT_INTERFACE("ide", TI99_IDE) + SLOT_INTERFACE("usbsm", TI99_USBSM) + SLOT_INTERFACE("bwg", TI99_BWG) + SLOT_INTERFACE("hfdc", TI99_HFDC) + SLOT_INTERFACE("tifdc", TI99_FDC) +SLOT_INTERFACE_END + +SLOT_INTERFACE_START( peribox_ev_slot ) + SLOT_INTERFACE("evpc", TI99_EVPC) +SLOT_INTERFACE_END + +SLOT_INTERFACE_START( peribox_hs_slot ) + SLOT_INTERFACE("hsgpl", TI99_HSGPL) +SLOT_INTERFACE_END + +MACHINE_CONFIG_FRAGMENT( peribox_sg_device ) + MCFG_PERIBOX_SLOT_ADD_DEF( PEBSLOT2, peribox_ev_slot, "evpc" ) + MCFG_PERIBOX_SLOT_ADD_DEF( PEBSLOT3, peribox_hs_slot, "hsgpl" ) + MCFG_PERIBOX_SLOT_ADD( PEBSLOT4, peribox_slotp ) + MCFG_PERIBOX_SLOT_ADD( PEBSLOT5, peribox_slotp ) + MCFG_PERIBOX_SLOT_ADD( PEBSLOT6, peribox_slotp ) + MCFG_PERIBOX_SLOT_ADD( PEBSLOT7, peribox_slotp ) + MCFG_PERIBOX_SLOT_ADD( PEBSLOT8, peribox_slotp ) +MACHINE_CONFIG_END + +machine_config_constructor peribox_sg_device::device_mconfig_additions() const +{ + return MACHINE_CONFIG_NAME( peribox_sg_device ); +} + +/**************************************************************************** + Another variant of the box; used for the TI with EVPC. The EVPC is + obviously required. +*****************************************************************************/ + +peribox_ev_device::peribox_ev_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : peribox_device(mconfig, PERIBOX_EV, tag, owner, clock) +{ + m_address_prefix = 0x70000; +} + +MACHINE_CONFIG_FRAGMENT( peribox_ev_device ) + MCFG_PERIBOX_SLOT_ADD_DEF( PEBSLOT2, peribox_ev_slot, "evpc" ) + MCFG_PERIBOX_SLOT_ADD( PEBSLOT3, peribox_slot ) + MCFG_PERIBOX_SLOT_ADD( PEBSLOT4, peribox_slot ) + MCFG_PERIBOX_SLOT_ADD( PEBSLOT5, peribox_slot ) + MCFG_PERIBOX_SLOT_ADD( PEBSLOT6, peribox_slot ) + MCFG_PERIBOX_SLOT_ADD( PEBSLOT7, peribox_slot ) + MCFG_PERIBOX_SLOT_ADD( PEBSLOT8, peribox_slot ) +MACHINE_CONFIG_END + +machine_config_constructor peribox_ev_device::device_mconfig_additions() const +{ + return MACHINE_CONFIG_NAME( peribox_ev_device ); +} + +/*************************************************************************** + Implementation of a slot within the box. +****************************************************************************/ + +int peribox_slot_device::get_index_from_tagname() +{ + const char *mytag = tag(); + int maxlen = strlen(mytag); + int i; + for (i=maxlen-1; i >=0; i--) + if (mytag[i] < 48 || mytag[i] > 57) break; + + return atoi(mytag+i+1); +} + +peribox_slot_device::peribox_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : bus8z_device(mconfig, PERIBOX_SLOT, tag, owner, clock), device_slot_interface(mconfig, *this), m_card(nullptr), m_slotnumber(0) +{ +} + +READ8Z_MEMBER(peribox_slot_device::readz) +{ + m_card->readz(space, offset, value, mem_mask); +} + +WRITE8_MEMBER(peribox_slot_device::write) +{ + m_card->write(space, offset, data, mem_mask); +} + +SETADDRESS_DBIN_MEMBER(peribox_slot_device::setaddress_dbin) +{ + m_card->setaddress_dbin(space, offset, state); +} + +READ8Z_MEMBER(peribox_slot_device::crureadz) +{ + m_card->crureadz(space, offset, value); +} + +WRITE8_MEMBER(peribox_slot_device::cruwrite) +{ + m_card->cruwrite(space, offset, data); +} + +WRITE_LINE_MEMBER( peribox_slot_device::senila ) +{ + m_card->set_senila(state); +} + +WRITE_LINE_MEMBER( peribox_slot_device::senilb ) +{ + m_card->set_senilb(state); +} + +WRITE_LINE_MEMBER( peribox_slot_device::clock_in ) +{ + m_card->clock_in(state); +} + +/* + Genmod support +*/ +void peribox_slot_device::set_genmod(bool set) +{ + m_card->m_genmod = set; +} + +void peribox_slot_device::device_start() +{ +} + +void peribox_slot_device::device_config_complete() +{ + m_slotnumber = get_index_from_tagname(); + device_t *carddev = subdevices().first(); + peribox_device *peb = static_cast(owner()); + if (carddev != nullptr) + { + peb->set_slot_loaded(m_slotnumber, this); + m_card = static_cast(carddev); + } + else + { + peb->set_slot_loaded(m_slotnumber, nullptr); + m_card = nullptr; + } +} + +/* + Delivers the drives that are installed in the box. Called from a card. +*/ +device_t* peribox_slot_device::get_drive(const char* name) +{ + return owner()->subdevice(name); +} + +/* + These methods are called from the expansion cards. They add the + slot number to identify the slot to the box. +*/ +WRITE_LINE_MEMBER( peribox_slot_device::set_inta ) +{ + peribox_device *peb = static_cast(owner()); + peb->inta_join(m_slotnumber, state); +} + +WRITE_LINE_MEMBER( peribox_slot_device::set_intb ) +{ + peribox_device *peb = static_cast(owner()); + peb->intb_join(m_slotnumber, state); +} + +WRITE_LINE_MEMBER( peribox_slot_device::lcp_line ) +{ + peribox_device *peb = static_cast(owner()); + peb->lcp_join(m_slotnumber, state); +} + +WRITE_LINE_MEMBER( peribox_slot_device::set_ready ) +{ + peribox_device *peb = static_cast(owner()); + peb->ready_join(m_slotnumber, state); +} + +/***************************************************************************/ +DEFINE_DEVICE_TYPE(PERIBOX, peribox_device, "peribox", "Peripheral expansion box") +DEFINE_DEVICE_TYPE(PERIBOX_SLOT, peribox_slot_device, "peribox_slot", "TI P-Box slot") + +DEFINE_DEVICE_TYPE(PERIBOX_EV, peribox_ev_device, "peribox_ev", "Peripheral expansion box EVPC") +DEFINE_DEVICE_TYPE(PERIBOX_SG, peribox_sg_device, "peribox_sg", "Peripheral expansion box SGCPU") +DEFINE_DEVICE_TYPE(PERIBOX_GEN, peribox_gen_device, "peribox_gen", "Peripheral expansion box Geneve") +DEFINE_DEVICE_TYPE(PERIBOX_998, peribox_998_device, "peribox_998", "Peripheral expansion box 99/8") diff --git a/src/devices/bus/ti99/peb/peribox.h b/src/devices/bus/ti99/peb/peribox.h new file mode 100644 index 00000000000..8bea48c7612 --- /dev/null +++ b/src/devices/bus/ti99/peb/peribox.h @@ -0,0 +1,271 @@ +// license:LGPL-2.1+ +// copyright-holders:Michael Zapf +/**************************************************************************** + + Peripheral expansion box + See peribox.c for documentation + + Michael Zapf + + February 2012: Rewritten as class + +*****************************************************************************/ + +#ifndef MAME_BUS_TI99_PEB_PERIBOX_H +#define MAME_BUS_TI99_PEB_PERIBOX_H + +#pragma once + +#include "bus/ti99x/ti99defs.h" + +DECLARE_DEVICE_TYPE(PERIBOX, peribox_device) +DECLARE_DEVICE_TYPE(PERIBOX_SLOT, peribox_slot_device) + +DECLARE_DEVICE_TYPE(PERIBOX_EV, peribox_ev_device) +DECLARE_DEVICE_TYPE(PERIBOX_SG, peribox_sg_device) +DECLARE_DEVICE_TYPE(PERIBOX_GEN, peribox_gen_device) +DECLARE_DEVICE_TYPE(PERIBOX_998, peribox_998_device) + +class ti_expansion_card_device; + +/***************************************************************************** + The overall Peripheral Expansion Box. + See ti99defs.h for bus8z_device +******************************************************************************/ + +class peribox_device : public bus8z_device +{ + friend class peribox_slot_device; +public: + peribox_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + + template static devcb_base &static_set_inta_callback(device_t &device, Object &&cb) { return downcast(device).m_console_inta.set_callback(std::forward(cb)); } + template static devcb_base &static_set_intb_callback(device_t &device, Object &&cb) { return downcast(device).m_console_intb.set_callback(std::forward(cb)); } + template static devcb_base &static_set_ready_callback(device_t &device, Object &&cb) { return downcast(device).m_datamux_ready.set_callback(std::forward(cb)); } + template static devcb_base &static_set_lcp_callback(device_t &device, Object &&cb) { return downcast(device).m_sgcpu_lcp.set_callback(std::forward(cb)); } + + // Next eight methods are called from the console + DECLARE_READ8Z_MEMBER(readz) override; + DECLARE_WRITE8_MEMBER(write) override; + DECLARE_SETADDRESS_DBIN_MEMBER(setaddress_dbin) override; + + DECLARE_READ8Z_MEMBER(crureadz); + DECLARE_WRITE8_MEMBER(cruwrite); + DECLARE_WRITE_LINE_MEMBER(senila); + DECLARE_WRITE_LINE_MEMBER(senilb); + + DECLARE_WRITE_LINE_MEMBER( memen_in ); + DECLARE_WRITE_LINE_MEMBER( msast_in ); + + DECLARE_WRITE_LINE_MEMBER( clock_in ); + + // Part of configuration + void set_prefix(int prefix) { m_address_prefix = prefix; } + + // Genmod support + DECLARE_INPUT_CHANGED_MEMBER( genmod_changed ); + void set_genmod(bool set); + +protected: + peribox_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + virtual void device_start() override; + virtual void device_config_complete() override; + + virtual machine_config_constructor device_mconfig_additions() const override; + + // Next three methods call back the console + devcb_write_line m_console_inta; // INTA line (Box to console) + devcb_write_line m_console_intb; // INTB line + devcb_write_line m_sgcpu_lcp; // For EVPC with SGCPU only + devcb_write_line m_datamux_ready; // READY line (to the datamux) + + void set_slot_loaded(int slot, peribox_slot_device* slotdev); + peribox_slot_device *m_slot[9]; // for the sake of simplicity we donate the first two positions (0,1) + + // Propagators for the slot signals. All signals are active low, and + // if any one slot asserts the line, the joint line is asserted. + void inta_join(int slot, int state); + void intb_join(int slot, int state); + void lcp_join(int slot, int state); + void ready_join(int slot, int state); + + int m_inta_flag; + int m_intb_flag; + int m_lcp_flag; + int m_ready_flag; + + // The TI-99/4(A) Flex Cable Interface (slot 1) pulls up the AMA/AMB/AMC lines to 1/1/1. + int m_address_prefix; + + // Most significant address byte strobe. Defined by TI-99/8. + bool m_msast; + + // Memory enable. + bool m_memen; +}; + +/************************************************************************ + Specific Box compositions +************************************************************************/ +/* + Variation for EVPC. We'd like to offer the EVPC slot device only if + we started the ti99_4ev driver. +*/ +class peribox_ev_device : public peribox_device +{ +public: + peribox_ev_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + +protected: + virtual machine_config_constructor device_mconfig_additions() const override; +}; + +/* + Variation for SGCPU (TI-99/4P). We put the EVPC and the HSGPL in slots 2 and 3. +*/ +class peribox_sg_device : public peribox_device +{ +public: + peribox_sg_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + +protected: + virtual machine_config_constructor device_mconfig_additions() const override; +}; + +/* + Variation for Geneve. +*/ +class peribox_gen_device : public peribox_device +{ +public: + peribox_gen_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + +protected: + virtual machine_config_constructor device_mconfig_additions() const override; +}; + +/* + Variation for TI-99/8 +*/ +class peribox_998_device : public peribox_device +{ +public: + peribox_998_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + +protected: + virtual machine_config_constructor device_mconfig_additions() const override; +}; + +/***************************************************************************** + A single slot in the box. +******************************************************************************/ + +class peribox_slot_device : public bus8z_device, public device_slot_interface +{ + friend class peribox_device; +public: + peribox_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + + // Called from the box (direction to card) + DECLARE_READ8Z_MEMBER(readz) override; + DECLARE_WRITE8_MEMBER(write) override; + DECLARE_SETADDRESS_DBIN_MEMBER(setaddress_dbin) override; + + DECLARE_WRITE_LINE_MEMBER(senila); + DECLARE_WRITE_LINE_MEMBER(senilb); + DECLARE_WRITE_LINE_MEMBER(clock_in); + + // Called from the card (direction to box) + DECLARE_WRITE_LINE_MEMBER( set_inta ); + DECLARE_WRITE_LINE_MEMBER( set_intb ); + DECLARE_WRITE_LINE_MEMBER( lcp_line ); + DECLARE_WRITE_LINE_MEMBER( set_ready ); + + DECLARE_READ8Z_MEMBER(crureadz); + DECLARE_WRITE8_MEMBER(cruwrite); + + // called from the box itself + void set_genmod(bool set); + + device_t* get_drive(const char* name); + +protected: + void device_start() override; + void device_config_complete() override; + +private: + int get_index_from_tagname(); + ti_expansion_card_device *m_card; + int m_slotnumber; +}; + + +/***************************************************************************** + The parent class for all expansion cards. +******************************************************************************/ + +class ti_expansion_card_device : public bus8z_device, public device_slot_card_interface +{ + friend class peribox_slot_device; + +public: + virtual DECLARE_READ8Z_MEMBER(crureadz) = 0; + virtual DECLARE_WRITE8_MEMBER(cruwrite) = 0; + + void set_senila(int state) { m_senila = state; } + void set_senilb(int state) { m_senilb = state; } + + virtual DECLARE_WRITE_LINE_MEMBER(clock_in) { } + +protected: + ti_expansion_card_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : bus8z_device(mconfig, type, tag, owner, clock) + , device_slot_card_interface(mconfig, *this) + , m_selected(false), m_cru_base(0), m_select_mask(0), m_select_value(0) + { + m_slot = static_cast(owner); + m_senila = CLEAR_LINE; + m_senilb = CLEAR_LINE; + m_genmod = false; + } + + peribox_slot_device *m_slot; // using a link to the slot for callbacks + int m_senila; + int m_senilb; + + // When true, card is accessible. Indicated by a LED. + bool m_selected; + + // When true, GenMod is selected. Modified by peribox_slot_device. + bool m_genmod; + + // CRU base. Used to configure the address by which a card is selected. + int m_cru_base; + + // Used to decide whether this card has been selected. + int m_select_mask; + int m_select_value; +}; + +#define MCFG_PERIBOX_SLOT_ADD(_tag, _slot_intf) \ + MCFG_DEVICE_ADD(_tag, PERIBOX_SLOT, 0) \ + MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, nullptr, false) + +#define MCFG_PERIBOX_SLOT_ADD_DEF(_tag, _slot_intf, _default) \ + MCFG_DEVICE_ADD(_tag, PERIBOX_SLOT, 0) \ + MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _default, false) + +#define MCFG_PERIBOX_INTA_HANDLER( _inta ) \ + devcb = &peribox_device::static_set_inta_callback( *device, DEVCB_##_inta ); + +#define MCFG_PERIBOX_INTB_HANDLER( _intb ) \ + devcb = &peribox_device::static_set_intb_callback( *device, DEVCB_##_intb ); + +#define MCFG_PERIBOX_READY_HANDLER( _ready ) \ + devcb = &peribox_device::static_set_ready_callback( *device, DEVCB_##_ready ); + +#define MCFG_PERIBOX_LCP_HANDLER( _lcp ) \ + devcb = &peribox_device::static_set_lcp_callback( *device, DEVCB_##_lcp ); + +#endif // MAME_BUS_TI99_PEB_PERIBOX_H diff --git a/src/devices/bus/ti99/peb/samsmem.cpp b/src/devices/bus/ti99/peb/samsmem.cpp new file mode 100644 index 00000000000..dc4e1694822 --- /dev/null +++ b/src/devices/bus/ti99/peb/samsmem.cpp @@ -0,0 +1,136 @@ +// license:LGPL-2.1+ +// copyright-holders:Michael Zapf +/**************************************************************************** + + TI-99 SuperAMS Memory Expansion Card. Uses a 74LS612 memory mapper. + The card can be equipped with up to 1 MiB of static CMOS memory; it is + not buffered, however. + + SAMS organizes memory in 4 KiB blocks which are mapped into the address + space by a memory mapper. The mapper can be configured via a sequence of + addresses at 4000, 4002, ..., 401e, which correspond to memory locations + 0000-0fff, 1000-1fff, ..., f000-ffff. + + According to a software distribution disk from the South West 99ers group, + the predecessor of this card was the Asgard Expanded Memory System (AEMS). + Although some documentation and software was available for it, it was never + built. Instead, a simpler memory card called the Asgard Memory System (AMS) + was built. The South West 99ers group built a better version of this card + called the Super AMS. Any documentation and software containing a reference + to the AEMS are applicable to either AMS or SAMS. + + Michael Zapf + +*****************************************************************************/ + +#include "emu.h" +#include "samsmem.h" + +#define SAMS_CRU_BASE 0x1e00 + +sams_memory_expansion_device::sams_memory_expansion_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : ti_expansion_card_device(mconfig, TI99_SAMSMEM, tag, owner, clock), + m_ram(*this, RAM_TAG), + m_map_mode(false), m_access_mapper(false) +{ +} + +/* + Memory read. The SAMS card has two address areas: The memory is at locations + 0x2000-0x3fff and 0xa000-0xffff, and the mapper area is at 0x4000-0x401e + (only even addresses). +*/ +READ8Z_MEMBER(sams_memory_expansion_device::readz) +{ + int base; + + if (m_access_mapper && ((offset & 0xe000)==0x4000)) + { + *value = m_mapper[(offset>>1)&0x000f]; + } + + if (((offset & 0xe000)==0x2000) || ((offset & 0xe000)==0xa000) || ((offset & 0xe000)==0xc000) || ((offset & 0xe000)==0xe000)) + { + if (!m_map_mode) + { + // transparent mode + *value = m_ram->pointer()[offset & 0xffff]; + } + else + { + base = (m_mapper[(offset & 0xf000)>>12] << 12); + *value = m_ram->pointer()[base | (offset & 0x0fff)]; + } + } +} + +WRITE8_MEMBER(sams_memory_expansion_device::write) +{ + int base; + + if (m_access_mapper && ((offset & 0xe000)==0x4000)) + { + m_mapper[(offset>>1)&0x000f] = data; + } + + if (((offset & 0xe000)==0x2000) || ((offset & 0xe000)==0xa000) || ((offset & 0xe000)==0xc000) || ((offset & 0xe000)==0xe000)) + { + if (!m_map_mode) + { + // transparent mode + m_ram->pointer()[offset & 0xffff] = data; + } + else + { + base = (m_mapper[(offset & 0xf000)>>12] << 12); + m_ram->pointer()[base | (offset & 0x0fff)] = data; + } + } +} + +/* + CRU read. None here. +*/ +READ8Z_MEMBER(sams_memory_expansion_device::crureadz) +{ +} + +/* + CRU write. Turns on the mapper and allows to change it. +*/ +WRITE8_MEMBER(sams_memory_expansion_device::cruwrite) +{ + if ((offset & 0xff00)==SAMS_CRU_BASE) + { + if ((offset & 0x000e)==0) m_access_mapper = (data!=0); + if ((offset & 0x000e)==2) m_map_mode = (data!=0); + } +} + +MACHINE_CONFIG_FRAGMENT( sams_mem ) + MCFG_RAM_ADD(RAM_TAG) + MCFG_RAM_DEFAULT_SIZE("1M") + MCFG_RAM_DEFAULT_VALUE(0) +MACHINE_CONFIG_END + +machine_config_constructor sams_memory_expansion_device::device_mconfig_additions() const +{ + return MACHINE_CONFIG_NAME( sams_mem ); +} + +void sams_memory_expansion_device::device_start() +{ + save_pointer(NAME(m_mapper),16); + save_item(NAME(m_map_mode)); + save_item(NAME(m_mapper)); +} + +void sams_memory_expansion_device::device_reset() +{ + // Resetting values + m_map_mode = false; + m_access_mapper = false; + for (auto & elem : m_mapper) elem = 0; +} + +DEFINE_DEVICE_TYPE(TI99_SAMSMEM, sams_memory_expansion_device, "ti99_sams", "SuperAMS memory expansion card") diff --git a/src/devices/bus/ti99/peb/samsmem.h b/src/devices/bus/ti99/peb/samsmem.h new file mode 100644 index 00000000000..0166ad66acb --- /dev/null +++ b/src/devices/bus/ti99/peb/samsmem.h @@ -0,0 +1,49 @@ +// license:LGPL-2.1+ +// copyright-holders:Michael Zapf +/**************************************************************************** + + TI-99 SuperAMS memory expansion + See samsmem.c for documentation + + Michael Zapf + September 2010 + + February 2012: Rewritten as class + +*****************************************************************************/ + +#ifndef MAME_BUS_TI99_PEB_SAMSMEM_H +#define MAME_BUS_TI99_PEB_SAMSMEM_H + +#pragma once + +#include "peribox.h" +#include "machine/ram.h" + +DECLARE_DEVICE_TYPE(TI99_SAMSMEM, sams_memory_expansion_device) + +class sams_memory_expansion_device : public ti_expansion_card_device +{ +public: + sams_memory_expansion_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + DECLARE_READ8Z_MEMBER(readz) override; + DECLARE_WRITE8_MEMBER(write) override; + + DECLARE_READ8Z_MEMBER(crureadz) override; + DECLARE_WRITE8_MEMBER(cruwrite) override; + + machine_config_constructor device_mconfig_additions() const override; + +protected: + void device_start() override; + void device_reset() override; + +private: + // Console RAM + required_device m_ram; + int m_mapper[16]; + bool m_map_mode; + bool m_access_mapper; +}; + +#endif // MAME_BUS_TI99_PEB_SAMSMEM_H diff --git a/src/devices/bus/ti99/peb/spchsyn.cpp b/src/devices/bus/ti99/peb/spchsyn.cpp new file mode 100644 index 00000000000..916f9d98be8 --- /dev/null +++ b/src/devices/bus/ti99/peb/spchsyn.cpp @@ -0,0 +1,178 @@ +// license:LGPL-2.1+ +// copyright-holders:Michael Zapf +/**************************************************************************** + + TI-99 Speech synthesizer + + We emulate the Speech Synthesizer plugged onto a P-Box adapter. The original + Speech Synthesizer device was provided as a box to be plugged into the + right side of the console. In order to be used with Geneve and SGCPU, the + speech synthesizer must be moved into the Peripheral Box. + + The Speech Synthesizer used for the TI was the CD2501E, AKA TMS5200, + (internal name TMC0285), a predecessor of the TMS5220 which was used in + other commercial products. + + Note that this adapter also contains the speech roms. + + Michael Zapf + + February 2012: Rewritten as class + +*****************************************************************************/ + +#include "emu.h" +#include "spchsyn.h" + +#include "machine/spchrom.h" +#include "sound/wave.h" +#include "speaker.h" + + +#define TRACE_MEM 0 +#define TRACE_ADDR 0 +#define TRACE_READY 0 + +/****************************************************************************/ + +ti_speech_synthesizer_device::ti_speech_synthesizer_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : ti_expansion_card_device(mconfig, TI99_SPEECH, tag, owner, clock), + m_vsp(nullptr), m_reading(false), m_sbe(false) +{ +} + +/* + Memory read +*/ + +READ8Z_MEMBER( ti_speech_synthesizer_device::readz ) +{ + if (machine().side_effect_disabled()) return; + + if (m_sbe) + { + *value = m_vsp->status_r(space, 0, 0xff) & 0xff; + if (TRACE_MEM) logerror("read value = %02x\n", *value); + // We should clear the lines at this point. The TI-99/4A clears the + // lines by setting the address bus to a different value, but the + // Geneve may behave differently. This may not 100% reflect the real + // situation, but it ensures a safe processing. + m_vsp->combined_rsq_wsq_w(space, 0, ~0); + } +} + +/* + Memory write +*/ +WRITE8_MEMBER( ti_speech_synthesizer_device::write ) +{ + if (machine().side_effect_disabled()) return; + + if (m_sbe) + { + if (TRACE_MEM) logerror("write value = %02x\n", data); + m_vsp->data_w(space, 0, data); + // Note that we must NOT clear the lines here. Find the lines in the + // READY callback below. + } +} + +SETADDRESS_DBIN_MEMBER( ti_speech_synthesizer_device::setaddress_dbin ) +{ + // 1001 00xx xxxx xxx0 DBIN=1 + // 1001 01xx xxxx xxx0 DBIN=0 + // 1111 1000 0000 0001 mask + m_space = &space; + m_reading = (state==ASSERT_LINE); + + bool valid = (((offset & 0x0400)==0) == m_reading); + m_sbe = ((offset & m_select_mask)==m_select_value) && valid; + + if (m_sbe) + { + if (TRACE_ADDR) logerror("set address = %04x, dbin = %d\n", offset, state); + + // Caution: In the current tms5220 emulation, care must be taken + // to clear one line before asserting the other line, or otherwise + // both RS* and WS* are active, which is illegal. + // Alternatively, we'll use the combined settings method + + m_vsp->combined_rsq_wsq_w(space, 0, m_reading ? ~tms5220_device::RS : ~tms5220_device::WS); + } + else + // If other address, turn off RS* and WS* (negative logic!) + m_vsp->combined_rsq_wsq_w(space, 0, ~0); +} + +/****************************************************************************/ + +WRITE_LINE_MEMBER( ti_speech_synthesizer_device::speech_ready ) +{ + // The TMS5200 implementation uses true/false, not ASSERT/CLEAR semantics + // and we have to adapt a /READY to a READY line. + // The real synthesizer board uses a transistor for that purpose. + m_slot->set_ready((state==0)? ASSERT_LINE : CLEAR_LINE); + if (TRACE_READY) logerror("READY = %d\n", (state==0)); + + if ((state==0) && !m_reading) + // Clear the lines only when we are done with writing. + m_vsp->combined_rsq_wsq_w(*m_space, 0, ~0); +} + +void ti_speech_synthesizer_device::device_start() +{ + m_vsp = subdevice("speechsyn"); + // Need to configure the speech ROM for inverse bit order + speechrom_device* mem = subdevice("vsm"); + mem->set_reverse_bit_order(true); + + // We don't need to save m_space because the calling method + // combined_rsq_wsq_w only needs the address space formally. + save_item(NAME(m_reading)); + save_item(NAME(m_sbe)); +} + +void ti_speech_synthesizer_device::device_reset() +{ + if (m_genmod) + { + m_select_mask = 0x1ff801; + m_select_value = 0x179000; + } + else + { + m_select_mask = 0x7f801; + m_select_value = 0x79000; + } + + m_reading = false; + m_sbe = false; +} + +MACHINE_CONFIG_FRAGMENT( ti99_speech ) + MCFG_DEVICE_ADD("vsm", SPEECHROM, 0) + + MCFG_SPEAKER_STANDARD_MONO("mono") + MCFG_SOUND_ADD("speechsyn", CD2501E, 640000L) + MCFG_TMS52XX_READYQ_HANDLER(WRITELINE(ti_speech_synthesizer_device, speech_ready)) + MCFG_TMS52XX_SPEECHROM("vsm") + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) +MACHINE_CONFIG_END + +ROM_START( ti99_speech ) + ROM_REGION(0x8000, "vsm", 0) + ROM_LOAD("cd2325a.u2a", 0x0000, 0x4000, CRC(1f58b571) SHA1(0ef4f178716b575a1c0c970c56af8a8d97561ffe)) // at location u2, bottom of stack + ROM_LOAD("cd2326a.u2b", 0x4000, 0x4000, CRC(65d00401) SHA1(a367242c2c96cebf0e2bf21862f3f6734b2b3020)) // at location u2, top of stack +ROM_END + +machine_config_constructor ti_speech_synthesizer_device::device_mconfig_additions() const +{ + return MACHINE_CONFIG_NAME( ti99_speech ); +} + +const tiny_rom_entry *ti_speech_synthesizer_device::device_rom_region() const +{ + return ROM_NAME( ti99_speech ); +} + +DEFINE_DEVICE_TYPE(TI99_SPEECH, ti_speech_synthesizer_device, "ti99_speech", "TI-99 Speech synthesizer (on adapter card)") diff --git a/src/devices/bus/ti99/peb/spchsyn.h b/src/devices/bus/ti99/peb/spchsyn.h new file mode 100644 index 00000000000..5edf4bffc45 --- /dev/null +++ b/src/devices/bus/ti99/peb/spchsyn.h @@ -0,0 +1,49 @@ +// license:LGPL-2.1+ +// copyright-holders:Michael Zapf +/**************************************************************************** + + TI-99 Speech Synthesizer + See spchsyn.c for documentation + + Michael Zapf, October 2010 + February 2012: Rewritten as class + +*****************************************************************************/ + +#ifndef MAME_BUS_TI99_PEB_SPCHSYN_H +#define MAME_BUS_TI99_PEB_SPCHSYN_H + +#pragma once + +#include "peribox.h" +#include "sound/tms5220.h" + +DECLARE_DEVICE_TYPE(TI99_SPEECH, ti_speech_synthesizer_device) + +class ti_speech_synthesizer_device : public ti_expansion_card_device +{ +public: + ti_speech_synthesizer_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + DECLARE_READ8Z_MEMBER(readz) override; + DECLARE_WRITE8_MEMBER(write) override; + DECLARE_SETADDRESS_DBIN_MEMBER(setaddress_dbin) override; + + DECLARE_READ8Z_MEMBER(crureadz) override { } + DECLARE_WRITE8_MEMBER(cruwrite) override { } + + DECLARE_WRITE_LINE_MEMBER( speech_ready ); + +protected: + virtual void device_start() override; + virtual void device_reset() override; + virtual const tiny_rom_entry *device_rom_region() const override; + virtual machine_config_constructor device_mconfig_additions() const override; + +private: + address_space* m_space; + cd2501e_device* m_vsp; + bool m_reading; + bool m_sbe; // Signal "Speech block enable" +}; + +#endif // MAME_BUS_TI99_PEB_SPCHSYN_H diff --git a/src/devices/bus/ti99/peb/ti_32kmem.cpp b/src/devices/bus/ti99/peb/ti_32kmem.cpp new file mode 100644 index 00000000000..26a3986d3ce --- /dev/null +++ b/src/devices/bus/ti99/peb/ti_32kmem.cpp @@ -0,0 +1,109 @@ +// license:LGPL-2.1+ +// copyright-holders:Michael Zapf +/**************************************************************************** + + TI-99 32 KiB Memory Expansion Card + This is a fairly simple memory expansion for the TI-99/4A, adding + unbuffered 32 KiB. Yet it was a very popular card since it was + required for any kind of advanced programming beyond the console BASIC. + + As a peripheral box card, it is connected via the 8-bit multiplexed data bus. + Later, modifications of the console became increasingly popular which + avoided the bus multiplex so that the full 16bit access was possible. + This helped to noticeably speed up the system. + + The memory is available on the addresses + + 0x2000 - 0x3fff ("low memory") + 0xa000 - 0xffff ("high memory") + + The console TI BASIC is not able to access the memory expansion, but + Extended Basic (available as a cartridge) makes use of it. + + Michael Zapf + February 2012: Rewritten as class + + References + [1] Michael L. Bunyard: Hardware Manual for the Texas Instruments 99/4A Home Computer, chapter 8 + +*****************************************************************************/ + +#include "emu.h" +#include "ti_32kmem.h" + +#define RAMREGION "ram32k" + +ti_32k_expcard_device::ti_32k_expcard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : ti_expansion_card_device(mconfig, TI99_32KMEM, tag, owner, clock), + m_ram(*this, RAMREGION) +{ +} + +READ8Z_MEMBER(ti_32k_expcard_device::readz) +{ + uint8_t val = 0; + /* + The problem for mapping the memory into the address space is that + we have a block at 2000-3FFF and another one at A000-FFFF. The trick + is to calculate a bank number in a way to get subsequent address + This is done in a PAL on the expansion board [1]. + + S AB + 0000: 000x -> 0 xx + 2000: 001x -> 1 01 + 4000: 010x -> 0 xx + 6000: 011x -> 0 xx + 8000: 100x -> 0 xx + A000: 101x -> 1 00 + C000: 110x -> 1 11 + E000: 111x -> 1 10 + + select = A0*A1 + /A1*A2 (A0 = MSB) + A = A1 + B = A0 nand A2 + */ + + bool select = ((offset & 0xfc000)==0x7c000) | ((offset & 0xf6000)==0x72000); // PAL output pin 14 [1] + + if (select) + { + // address = 0abx xxxx xxxx xxxx + int bank = (offset & 0x4000) | ((((offset & 0x8000)>>2) & (offset & 0x2000)) ^ 0x2000); + val = m_ram->pointer()[bank | (offset & 0x1fff)]; + + // On powerup we find a FF00FF00... pattern in RAM + if ((offset & 1)==0) val = ~val; + *value = val; + } +} + +WRITE8_MEMBER(ti_32k_expcard_device::write) +{ + bool select = ((offset & 0xfc000)==0x7c000) | ((offset & 0xf6000)==0x72000); // PAL output pin 14 [1] + + if (select) + { + // address = 0abx xxxx xxxx xxxx + int bank = (offset & 0x4000) | ((((offset & 0x8000)>>2) & (offset & 0x2000)) ^ 0x2000); + if ((offset & 1)==0) data = ~data; + m_ram->pointer()[bank | (offset & 0x1fff)] = data; + } +} + + +void ti_32k_expcard_device::device_start() +{ +} + +MACHINE_CONFIG_FRAGMENT( mem32k ) + MCFG_RAM_ADD(RAMREGION) + MCFG_RAM_DEFAULT_SIZE("32k") + MCFG_RAM_DEFAULT_VALUE(0) +MACHINE_CONFIG_END + +machine_config_constructor ti_32k_expcard_device::device_mconfig_additions() const +{ + return MACHINE_CONFIG_NAME( mem32k ); +} + +DEFINE_DEVICE_TYPE(TI99_32KMEM, ti_32k_expcard_device, "ti99_32kmem", "TI-99 32KiB memory expansion card") diff --git a/src/devices/bus/ti99/peb/ti_32kmem.h b/src/devices/bus/ti99/peb/ti_32kmem.h new file mode 100644 index 00000000000..a8548bb9090 --- /dev/null +++ b/src/devices/bus/ti99/peb/ti_32kmem.h @@ -0,0 +1,42 @@ +// license:LGPL-2.1+ +// copyright-holders:Michael Zapf +/**************************************************************************** + + TI-99 32K memory expansion + See ti32kmem.c for documentation + + Michael Zapf + + February 2012: Rewritten as class + +*****************************************************************************/ + +#ifndef MAME_BUS_TI99_PEB_TI_32KMEM_H +#define MAME_BUS_TI99_PEB_TI_32KMEM_H + +#pragma once + +#include "peribox.h" +#include "machine/ram.h" + +DECLARE_DEVICE_TYPE(TI99_32KMEM, ti_32k_expcard_device) + +class ti_32k_expcard_device : public ti_expansion_card_device +{ +public: + ti_32k_expcard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + DECLARE_READ8Z_MEMBER(readz) override; + DECLARE_WRITE8_MEMBER(write) override; + + DECLARE_READ8Z_MEMBER(crureadz) override { } + DECLARE_WRITE8_MEMBER(cruwrite) override { } + +protected: + void device_start() override; + machine_config_constructor device_mconfig_additions() const override; + +private: + required_device m_ram; +}; + +#endif // MAME_BUS_TI99_PEB_TI_32KMEM_H diff --git a/src/devices/bus/ti99/peb/ti_fdc.cpp b/src/devices/bus/ti99/peb/ti_fdc.cpp new file mode 100644 index 00000000000..5ed580f1473 --- /dev/null +++ b/src/devices/bus/ti99/peb/ti_fdc.cpp @@ -0,0 +1,481 @@ +// license:LGPL-2.1+ +// copyright-holders:Michael Zapf +/**************************************************************************** + + TI-99 Standard Floppy Disk Controller Card + Based on WD1771 + Single Density, Double-sided + + Michael Zapf + September 2010 + January 2012: rewritten as class (MZ) + +****************************************************************************/ + +#include "emu.h" +#include "ti_fdc.h" +#include "formats/ti99_dsk.h" + +// ---------------------------------- +// Flags for debugging + +// Show read and write accesses +#define TRACE_RW 0 + +// Show CRU bit accesses +#define TRACE_CRU 0 + +// Show ready line activity +#define TRACE_READY 0 + +// Show detailed signal activity +#define TRACE_SIGNALS 0 + +// Show sector data +#define TRACE_DATA 0 + +// Show address bus operations +#define TRACE_ADDRESS 0 + +// Show address bus operations +#define TRACE_MOTOR 0 + +// ---------------------------------- +#define FDC_TAG "fd1771" +#define MOTOR_TIMER 1 +#define NONE -1 + +#define TI_FDC_TAG "ti_dssd_controller" + +ti_fdc_device::ti_fdc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : ti_expansion_card_device(mconfig, TI99_FDC, tag, owner, clock), + m_address(0), + m_DRQ(0), + m_IRQ(0), + m_lastval(0), + m_DVENA(0), + m_inDsrArea(false), + m_WAITena(false), + m_WDsel(false), + m_DSEL(0), + m_SIDSEL(0), + m_motor_on_timer(nullptr), + m_fd1771(*this, FDC_TAG), + m_dsrrom(nullptr), + m_current(NONE), + m_debug_dataout(false) +{ +} + +/* + Operate the wait state logic. +*/ +void ti_fdc_device::operate_ready_line() +{ + // This is the wait state logic + if (TRACE_SIGNALS) logerror("tifdc: address=%04x, DRQ=%d, INTRQ=%d, MOTOR=%d\n", m_address & 0xffff, m_DRQ, m_IRQ, m_DVENA); + line_state nready = (m_WDsel && // Are we accessing 5ffx (even addr)? + m_WAITena && // and the wait state generation is active (SBO 2) + (m_DRQ==CLEAR_LINE) && // and we are waiting for a byte + (m_IRQ==CLEAR_LINE) && // and there is no interrupt yet + (m_DVENA==ASSERT_LINE) // and the motor is turning? + )? ASSERT_LINE : CLEAR_LINE; // In that case, clear READY and thus trigger wait states + + if (TRACE_READY) logerror("tifdc: READY line = %d\n", (nready==CLEAR_LINE)? 1:0); + m_slot->set_ready((nready==CLEAR_LINE)? ASSERT_LINE : CLEAR_LINE); +} + +/* + * Callbacks from the FD1771 chip + */ +WRITE_LINE_MEMBER( ti_fdc_device::fdc_irq_w ) +{ + m_IRQ = state? ASSERT_LINE : CLEAR_LINE; + if (TRACE_SIGNALS) logerror("tifdc: INTRQ callback = %d\n", m_IRQ); + operate_ready_line(); +} + +WRITE_LINE_MEMBER( ti_fdc_device::fdc_drq_w ) +{ + m_DRQ = state? ASSERT_LINE : CLEAR_LINE; + if (TRACE_SIGNALS) logerror("tifdc: DRQ callback = %d\n", m_DRQ); + operate_ready_line(); +} + +// bool ti_fdc_device::dvena_r() +// { +// if (TRACE_SIGNALS) logerror("tifdc: reading DVENA = %d\n", m_DVENA); +// return (m_DVENA==ASSERT_LINE); +// } + +SETADDRESS_DBIN_MEMBER( ti_fdc_device::setaddress_dbin ) +{ + // Selection login in the PAL and some circuits on the board + + // Is the card being selected? + m_address = offset; + m_inDsrArea = ((m_address & m_select_mask)==m_select_value); + + if (!m_inDsrArea || !m_selected) return; + + if (TRACE_ADDRESS) logerror("tifdc: set address = %04x\n", offset & 0xffff); + + // Is the WD chip on the card being selected? + m_WDsel = m_inDsrArea && ((m_address & 0x1ff1)==0x1ff0); + + // Clear or assert the outgoing READY line + operate_ready_line(); +} + +/* + Access for debugger. This is a stripped-down version of the + main methods below. We only allow ROM access. +*/ +void ti_fdc_device::debug_read(offs_t offset, uint8_t* value) +{ + if (((offset & m_select_mask)==m_select_value) && m_selected) + { + if ((offset & 0x1ff1)!=0x1ff0) + *value = m_dsrrom[offset & 0x1fff]; + } +} + +READ8Z_MEMBER(ti_fdc_device::readz) +{ + if (machine().side_effect_disabled()) + { + debug_read(offset, value); + return; + } + + if (m_inDsrArea && m_selected) + { + // Read ports of 1771 are mapped to 5FF0,2,4,6: 0101 1111 1111 0xx0 + // Note that incoming/outgoing data are inverted for FD1771 + uint8_t reply = 0; + + if (m_WDsel && ((m_address & 9)==0)) + { + if (!machine().side_effect_disabled()) reply = m_fd1771->gen_r((offset >> 1)&0x03); + if (TRACE_DATA) + { + if ((m_address & 0xffff)==0x5ff6) + { + if (!m_debug_dataout) logerror("tifdc: Read data = "); + m_debug_dataout = true; + logerror("%02x ", ~reply & 0xff); + } + else + { + if (m_debug_dataout) logerror("\n"); + m_debug_dataout = false; + } + } + } + else + { + reply = m_dsrrom[m_address & 0x1fff]; + } + *value = reply; + if (TRACE_RW) logerror("tifdc: %04x -> %02x\n", offset & 0xffff, *value); + } +} + +WRITE8_MEMBER(ti_fdc_device::write) +{ + if (machine().side_effect_disabled()) return; + + if (m_inDsrArea && m_selected) + { + // Write ports of 1771 are mapped to 5FF8,A,C,E: 0101 1111 1111 1xx0 + // This is important for the TI console: The TMS9900 CPU always performs a + // read operation before the write operation, and if we did not use + // different read and write ports, it would attempt to read from the + // controller before passing a command or data + // to it. In the best case, nothing happens; in the worst case, status + // flags may be reset by the read operation. + + // Note that incoming/outgoing data are inverted for FD1771 + if (TRACE_RW) logerror("tifdc: %04x <- %02x\n", offset & 0xffff, ~data & 0xff); + if (m_WDsel && ((m_address & 9)==8)) + { + // As this is a memory-mapped access we must prevent the debugger + // from messing with the operation + if (!machine().side_effect_disabled()) m_fd1771->gen_w((offset >> 1)&0x03, data); + } + } +} + +/* + CRU read access + + 7 6 5 4 3 2 1 0 + +-----+-----+-----+------+-----+-----+-----+-----+ + | Side| 1 | 0 |DVENA*| DSK3| DSK2| DSK1| HLD | + +-----+-----+-----+------+-----+-----+-----+-----+ + + We have only 8 bits for query; within this implementation this means + we only use the base address (offset 0). +*/ +READ8Z_MEMBER(ti_fdc_device::crureadz) +{ + if ((offset & 0xff00)==m_cru_base) + { + uint8_t reply = 0; + if ((offset & 0x07) == 0) + { + // Selected drive + reply |= ((m_DSEL)<<1); + // The DVENA state is returned as inverted + if (m_DVENA==CLEAR_LINE) reply |= 0x10; + // Always 1 + reply |= 0x40; + // Selected side + if (m_SIDSEL==ASSERT_LINE) reply |= 0x80; + } + *value = reply; + if (TRACE_CRU) logerror("tifdc: Read CRU = %02x\n", *value); + } +} + +WRITE8_MEMBER(ti_fdc_device::cruwrite) +{ + if ((offset & 0xff00)==m_cru_base) + { + int bit = (offset >> 1) & 0x07; + switch (bit) + { + case 0: + // (De)select the card. Indicated by a LED on the board. + m_selected = (data!=0); + if (TRACE_CRU) logerror("tifdc: Map DSR (bit 0) = %d\n", m_selected); + break; + + case 1: + // Activate motor + if (data==1 && m_lastval==0) + { // On rising edge, set motor_running for 4.23s + if (TRACE_CRU) logerror("tifdc: trigger motor (bit 1)\n"); + set_floppy_motors_running(true); + } + m_lastval = data; + break; + + case 2: + // Set disk ready/hold (bit 2) + // 0: ignore IRQ and DRQ + // 1: TMS9900 is stopped until IRQ or DRQ are set + // OR the motor stops rotating - rotates for 4.23s after write + // to CRU bit 1 + m_WAITena = (data != 0); + if (TRACE_CRU) logerror("tifdc: arm wait state logic (bit 2) = %d\n", data); + break; + + case 3: + // Load disk heads (HLT pin) (bit 3). Not implemented. + if (TRACE_CRU) logerror("tifdc: set head load (bit 3) = %d\n", data); + break; + + case 4: + m_DSEL = (data != 0)? (m_DSEL | 0x01) : (m_DSEL & 0xfe); + set_drive(); + break; + case 5: + m_DSEL = (data != 0)? (m_DSEL | 0x02) : (m_DSEL & 0xfd); + set_drive(); + break; + case 6: + m_DSEL = (data != 0)? (m_DSEL | 0x04) : (m_DSEL & 0xfb); + set_drive(); + break; + + case 7: + // Select side of disk (bit 7) + m_SIDSEL = (data==1)? ASSERT_LINE : CLEAR_LINE; + if (TRACE_CRU) logerror("tifdc: set side (bit 7) = %d\n", data); + if (m_current != NONE) m_floppy[m_current]->ss_w(data); + break; + + default: + break; + } + } +} + +void ti_fdc_device::set_drive() +{ + switch (m_DSEL) + { + case 0: + m_current = NONE; + if (TRACE_CRU) logerror("tifdc: all drives deselected\n"); + break; + case 1: + m_current = 0; + break; + case 2: + m_current = 1; + break; + case 3: + // The schematics do not reveal any countermeasures against multiple selection + // so we assume that the highest value wins. + m_current = 1; + logerror("tifdc: Warning - multiple drives selected\n"); + break; + case 4: + m_current = 2; + break; + default: + m_current = 2; + logerror("tifdc: Warning - multiple drives selected\n"); + break; + } + if (TRACE_CRU) logerror("tifdc: new DSEL = %d\n", m_DSEL); + + m_fd1771->set_floppy((m_current == NONE)? nullptr : m_floppy[m_current]); +} + +/* + Monoflop has gone back to the OFF state. +*/ +void ti_fdc_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) +{ + set_floppy_motors_running(false); +} + +/* + All floppy motors are operated by the same line. +*/ +void ti_fdc_device::set_floppy_motors_running(bool run) +{ + if (run) + { + if (TRACE_MOTOR) + if (m_DVENA==CLEAR_LINE) logerror("tifdc: Motor START\n"); + m_DVENA = ASSERT_LINE; + m_motor_on_timer->adjust(attotime::from_msec(4230)); + } + else + { + if (TRACE_MOTOR) + if (m_DVENA==ASSERT_LINE) logerror("tifdc: Motor STOP\n"); + m_DVENA = CLEAR_LINE; + } + + // The monoflop is connected to the READY line + m_fd1771->set_force_ready(run); + + // Set all motors + for (auto & elem : m_floppy) + if (elem != nullptr) elem->mon_w((run)? 0 : 1); + + // The motor-on line also connects to the wait state logic + operate_ready_line(); +} + +void ti_fdc_device::device_start() +{ + logerror("tifdc: TI FDC start\n"); + m_dsrrom = memregion(DSRROM)->base(); + m_motor_on_timer = timer_alloc(MOTOR_TIMER); + m_cru_base = 0x1100; + // In case we implement a callback after all: + // m_fd1771->setup_ready_cb(wd_fdc_device::rline_cb(&ti_fdc_device::dvena_r, this)); + + save_item(NAME(m_address)); + save_item(NAME(m_DRQ)); + save_item(NAME(m_IRQ)); + save_item(NAME(m_lastval)); + save_item(NAME(m_DVENA)); + save_item(NAME(m_inDsrArea)); + save_item(NAME(m_WAITena)); + save_item(NAME(m_WDsel)); + save_item(NAME(m_DSEL)); + save_item(NAME(m_SIDSEL)); + save_item(NAME(m_current)); +} + +void ti_fdc_device::device_reset() +{ + logerror("tifdc: TI FDC reset\n"); + m_lastval = 0; + if (m_genmod) + { + m_select_mask = 0x1fe000; + m_select_value = 0x174000; + } + else + { + m_select_mask = 0x7e000; + m_select_value = 0x74000; + } + m_DRQ = CLEAR_LINE; + m_IRQ = CLEAR_LINE; + m_DVENA = CLEAR_LINE; + m_fd1771->set_force_ready(false); + + m_DSEL = 0; + m_WAITena = false; + m_selected = false; + m_debug_dataout = false; + m_inDsrArea = false; + m_WDsel = false; + + for (int i=0; i < 3; i++) + { + if (m_floppy[i] != nullptr) + logerror("tifdc: Connector %d with %s\n", i, m_floppy[i]->name()); + else + logerror("tifdc: No floppy attached to connector %d\n", i); + } + + m_current = 0; + m_fd1771->set_floppy(m_floppy[m_current]); +} + +void ti_fdc_device::device_config_complete() +{ + // Seems to be null when doing a "-listslots" + if (subdevice("0")!=nullptr) m_floppy[0] = static_cast(subdevice("0")->subdevices().first()); + if (subdevice("1")!=nullptr) m_floppy[1] = static_cast(subdevice("1")->subdevices().first()); + if (subdevice("2")!=nullptr) m_floppy[2] = static_cast(subdevice("2")->subdevices().first()); +} + +FLOPPY_FORMATS_MEMBER(ti_fdc_device::floppy_formats) + FLOPPY_TI99_SDF_FORMAT, + FLOPPY_TI99_TDF_FORMAT +FLOPPY_FORMATS_END + +static SLOT_INTERFACE_START( tifdc_floppies ) + SLOT_INTERFACE( "525dd", FLOPPY_525_DD ) +SLOT_INTERFACE_END + +MACHINE_CONFIG_FRAGMENT( ti_fdc ) + MCFG_FD1771_ADD(FDC_TAG, XTAL_1MHz) + MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(ti_fdc_device, fdc_irq_w)) + MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(ti_fdc_device, fdc_drq_w)) + MCFG_FLOPPY_DRIVE_ADD("0", tifdc_floppies, "525dd", ti_fdc_device::floppy_formats) + MCFG_FLOPPY_DRIVE_SOUND(true) + MCFG_FLOPPY_DRIVE_ADD("1", tifdc_floppies, "525dd", ti_fdc_device::floppy_formats) + MCFG_FLOPPY_DRIVE_SOUND(true) + MCFG_FLOPPY_DRIVE_ADD("2", tifdc_floppies, nullptr, ti_fdc_device::floppy_formats) + MCFG_FLOPPY_DRIVE_SOUND(true) +MACHINE_CONFIG_END + +ROM_START( ti_fdc ) + ROM_REGION(0x2000, DSRROM, 0) + ROM_LOAD("fdc_dsr.u26", 0x0000, 0x1000, CRC(693c6b6e) SHA1(0c24fb4944843ad3f08b0b139244a6bb05e1c6c2)) /* TI disk DSR ROM first 4K */ + ROM_LOAD("fdc_dsr.u27", 0x1000, 0x1000, CRC(2c921087) SHA1(3646c3bcd2dce16b918ee01ea65312f36ae811d2)) /* TI disk DSR ROM second 4K */ +ROM_END + +machine_config_constructor ti_fdc_device::device_mconfig_additions() const +{ + return MACHINE_CONFIG_NAME( ti_fdc ); +} + +const tiny_rom_entry *ti_fdc_device::device_rom_region() const +{ + return ROM_NAME( ti_fdc ); +} + +DEFINE_DEVICE_TYPE(TI99_FDC, ti_fdc_device, "ti99_fdc", "TI-99 Standard DSSD Floppy Controller") diff --git a/src/devices/bus/ti99/peb/ti_fdc.h b/src/devices/bus/ti99/peb/ti_fdc.h new file mode 100644 index 00000000000..4df43c7832e --- /dev/null +++ b/src/devices/bus/ti99/peb/ti_fdc.h @@ -0,0 +1,115 @@ +// license:LGPL-2.1+ +// copyright-holders:Michael Zapf +/**************************************************************************** + + TI-99 Standard Floppy Disk Controller Card + See ti_fdc.c for documentation + + Michael Zapf + + September 2010 + January 2012: rewritten as class (MZ) + +****************************************************************************/ +#ifndef MAME_BUS_TI99_PEB_TI_FDC_H +#define MAME_BUS_TI99_PEB_TI_FDC_H + +#pragma once + +#include "peribox.h" +#include "machine/wd_fdc.h" +#include "imagedev/floppy.h" + +DECLARE_DEVICE_TYPE(TI99_FDC, ti_fdc_device) + +class ti_fdc_device : public ti_expansion_card_device +{ +public: + ti_fdc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + DECLARE_READ8Z_MEMBER(readz) override; + DECLARE_WRITE8_MEMBER(write) override; + DECLARE_SETADDRESS_DBIN_MEMBER(setaddress_dbin) override; + + DECLARE_READ8Z_MEMBER(crureadz) override; + DECLARE_WRITE8_MEMBER(cruwrite) override; + + DECLARE_FLOPPY_FORMATS( floppy_formats ); + + DECLARE_WRITE_LINE_MEMBER( fdc_irq_w ); + DECLARE_WRITE_LINE_MEMBER( fdc_drq_w ); + // bool dvena_r(); + +protected: + void device_start() override; + void device_reset() override; + void device_config_complete() override; + + const tiny_rom_entry *device_rom_region() const override; + machine_config_constructor device_mconfig_additions() const override; + + void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + +private: + // For debugger access + void debug_read(offs_t offset, uint8_t* value); + + // Wait state logic + void operate_ready_line(); + + // Set the current floppy + void set_drive(); + + // Operate the floppy motors + void set_floppy_motors_running(bool run); + + // Recent address + int m_address; + + // Holds the status of the DRQ and IRQ lines. + int m_DRQ, m_IRQ; + + // Needed for triggering the motor monoflop + uint8_t m_lastval; + + // Signal DVENA. When true, makes some drive turning. + int m_DVENA; + + // Set when address is in card area + bool m_inDsrArea; + + // When true the CPU is halted while DRQ/IRQ are true. + bool m_WAITena; + + // WD chip selected + bool m_WDsel; + + // Indicates which drive has been selected. Values are 0, 1, 2, and 4. + // 000 = no drive + // 001 = drive 1 + // 010 = drive 2 + // 100 = drive 3 + int m_DSEL; + + // Signal SIDSEL. 0 or 1, indicates the selected head. + int m_SIDSEL; + + // count 4.23s from rising edge of motor_on + emu_timer* m_motor_on_timer; + + // Link to the FDC1771 controller on the board. + required_device m_fd1771; + + // DSR ROM + uint8_t* m_dsrrom; + + // Link to the attached floppy drives + floppy_image_device* m_floppy[3]; + + // Currently selected floppy drive + int m_current; + + // Debugging + bool m_debug_dataout; +}; + +#endif // MAME_BUS_TI99_PEB_TI_FDC_H diff --git a/src/devices/bus/ti99/peb/ti_rs232.cpp b/src/devices/bus/ti99/peb/ti_rs232.cpp new file mode 100644 index 00000000000..c3a25ecd009 --- /dev/null +++ b/src/devices/bus/ti99/peb/ti_rs232.cpp @@ -0,0 +1,1150 @@ +// license:LGPL-2.1+ +// copyright-holders:Michael Zapf +/**************************************************************************** + + TI-99 RS232 and Parallel interface card + + TI99 RS232 card ('rs232') + TMS9902 ('rs232:tms9902_0') + TMS9902 ('rs232:tms9902_1') + TI99 RS232 attached serial device ('rs232:serdev0') + TI99 RS232 attached serial device ('rs232:serdev1') + TI99 PIO attached parallel device ('rs232:piodev') + + Currently this emulation does not directly interact with the serial + interface on the host computer. However, using a socket connection it is + possible to attach an external bridge which interacts with a real UART. + + TI RS232 card wiring + -------------------- + The card uses this wiring (inverters not included) + + +-----+ Pins of the connector + | 9902| (common naming) + | RIN |---<------- 2 (TD) + | XOUT|--->------- 3 (RD) + | RTS |--->------- 8 (DCD) + | CTS |-<-+------- 20 (DTR) + | DSR |-<-+ H--> 6 (DSR) + +-----+ +-----> 5 (CTS) + / + +-----+ / + | CRU |--+ + +-----+ + + This wiring is typical for a DCE, not a DTE. The TI RS232 was obviously + designed to look like a modem. The advantage is that you can use the same + cables for connecting a modem to the RS232 interface or for connecting + a second TI via its interface. To connect to a DTE you can use a 1-1 + wiring cable (1 on 1, 2 on 2 ...) + + The TI manual for the RS232 card suggests the following cables: + + TI RS232 - Modem or other TI RS232 + 2 -----<----- 3 + 3 ----->----- 2 + 6 ----->---- 20 (crossover cable) + 20 -----<----- 6 + + TI RS232 - Terminal (DTE) + 2 ----<------ 2 + 3 ---->------ 3 + 5 ---->------ 5 + 6 ---->------ 6 (1-1 cable) + 8 ---->------ 8 + 20 ----<------20 + + If we want to use a PC serial interface to play the role of the TI + interface we have to map the TI wiring to a suitable wiring for PC + interfaces which are designed as DTEs. This is achieved by the functions + map_lines_in, map_lines_out. + + Note that we now have to swap the cable types: Use a 1-1 cable to connect + another TI or a modem on the other end, and use a crossover cable for + another PC (the usual way of connecting). + + RS232 Over IP protocol + ---------------------- + This implementation can make use of such an external bridge. Normal data + are forwarded to the bridge and back, while line control is organized via + special byte sequences. These sequences are introduced by a 0x1B byte (ESC). + + The protocol has two modes: normal and escape + + normal mode: transmit byte (!= 0x1b) unchanged + escape mode: entered by ESC, bytes following: + ESC = plain ESC byte + length byte[length] = control sequence (length != 0x1b) + + byte[]: + All configuration settings are related to a specified UART; UARTs may + differ in their capabilities and may require specific settings + (e.g. the TMS9902 specifies the line speed by a clock ratio, while + others may have indexed, fixed rates or use integers) + + (x=unused) + + 1ccc xaaa = configuration of parameter ccc; UART type aaa + 1111 xaaa rrrr rrrr rrrr 0000 = config receive rate on aaa + 1110 xaaa rrrr rrrr rrrr 0000 = config transmit rate on aaa + 1101 xaaa xxxx xxbb = config databits bb (00=5 ... 11=8) + 1100 xaaa xxxx xxss = config stop bits ss (00=1.5, 01=2, 1x=1) + 1011 xaaa xxxx xxpp = config parity pp (1x=enable, x1=odd) + + 00ab cdef = line state of RTS=a, CTS=b, DSR=c, DCD=d, DTR=e, RI=f + 01gh i000 = exception g=BRK, h=FRMERR, i=PARERR + + The protocol changes back to normal mode after transmitting the control + sequence. + + Michael Zapf + February 2012: Rewritten as class + +*****************************************************************************/ + +#include "emu.h" +#include "ti_rs232.h" + +#define SENILA_0_BIT 0x80 +#define SENILA_1_BIT 0x40 + +#define RECV_MODE_NORMAL 1 +#define RECV_MODE_ESC 2 +#define RECV_MODE_ESC_LINES 3 + +#define TRACE_LINES 0 +#define TRACE_SETTING 0 +#define TRACE_STATE 0 +#define TRACE_MAP 0 +#define TRACE_IN 0 +#define TRACE_OUT 0 +#define TRACE_ILA 0 + +#define ESC 0x1b + +ti_rs232_pio_device::ti_rs232_pio_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : ti_expansion_card_device(mconfig, TI99_RS232, tag, owner, clock), m_piodev(nullptr), m_dsrrom(nullptr), m_pio_direction_in(false), m_pio_handshakeout(false), m_pio_handshakein(false), m_pio_spareout(false), m_pio_sparein(false), m_flag0(false), m_led(false), m_pio_out_buffer(0), m_pio_in_buffer(0), m_pio_readable(false), m_pio_writable(false), m_pio_write(false), m_ila(0) +{ +} + + +/**************************************************************************/ +/* Ports */ + +ti_rs232_attached_device::ti_rs232_attached_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, TI99_RS232_DEV, tag, owner, clock), + device_image_interface(mconfig, *this) +{ +} + +ti_pio_attached_device::ti_pio_attached_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, TI99_PIO_DEV, tag, owner, clock), + device_image_interface(mconfig, *this) +{ +} + +void ti_rs232_attached_device::device_start() +{ +} + +void ti_pio_attached_device::device_start() +{ +} + +/* + Find the index of the image name. We assume the format + , i.e. the number is the longest string from the right + which can be interpreted as a number. +*/ +int ti_rs232_attached_device::get_index_from_tagname() +{ + const char *mytag = tag(); + int maxlen = strlen(mytag); + int i; + for (i=maxlen-1; i >=0; i--) + if (mytag[i] < 48 || mytag[i] > 57) break; + + return atoi(mytag+i+1); +} + +/* + Initialize rs232 unit and open image +*/ +image_init_result ti_rs232_attached_device::call_load() +{ + tms9902_device* tms9902; + + int devnumber = get_index_from_tagname(); + if (devnumber==0) + { + tms9902 = siblingdevice("tms9902_0"); + // Turn on polling + tms9902->set_clock(true); + } + else if (devnumber==1) + { + tms9902 = siblingdevice("tms9902_1"); + // Turn on polling + tms9902->set_clock(true); + } + else + { + logerror("Could not find device tag number\n"); + return image_init_result::FAIL; + } + + // The following line may cause trouble in the init phase + // card->incoming_dtr(devnumber, (m_file!=nullptr)? ASSERT_LINE : CLEAR_LINE); + + return image_init_result::PASS; // OK +} + +void ti_rs232_attached_device::call_unload() +{ + tms9902_device* tms9902; + + int devnumber = get_index_from_tagname(); + if (devnumber==0) + { + tms9902 = siblingdevice("tms9902_0"); + // Turn off polling + tms9902->set_clock(false); + } + else if (devnumber==1) + { + tms9902 = siblingdevice("tms9902_1"); + // Turn off polling + tms9902->set_clock(false); + } +} + +/* + Initialize pio unit and open image +*/ +image_init_result ti_pio_attached_device::call_load() +{ + ti_rs232_pio_device* card = static_cast(owner()); + + // tell whether the image is readable + card->m_pio_readable = true; + // tell whether the image is writable + card->m_pio_writable = !is_readonly(); + + if (card->m_pio_write && card->m_pio_writable) + card->m_pio_handshakein = false; // receiver ready + else + card->m_pio_handshakein = true; + + return image_init_result::PASS; // OK +} + +/* + close a pio image +*/ +void ti_pio_attached_device::call_unload() +{ + ti_rs232_pio_device* card = static_cast(owner()); + + card->m_pio_writable = false; + card->m_pio_handshakein = true; /* receiver not ready */ + card->m_pio_sparein = false; +} + +/****************************************************************************/ + +/* + CRU read +*/ +READ8Z_MEMBER(ti_rs232_pio_device::crureadz) +{ + if ((offset & 0xff00)==m_cru_base) + { + if ((offset & 0x00c0)==0x0000) + { + uint8_t reply = 0x00; + if (m_pio_direction_in) reply |= 0x02; + if (m_pio_handshakein) reply |= 0x04; + if (m_pio_sparein) reply |= 0x08; + if (m_flag0) reply |= 0x10; + // The CTS line is realized as CRU bits + // Mind that this line is handled as an output going to the remote CTS + if ((m_signals[0] & tms9902_device::CTS)!=0) reply |= 0x20; + if ((m_signals[1] & tms9902_device::CTS)!=0) reply |= 0x40; + if (m_led) reply |= 0x80; + *value = reply; + return; + } + if ((offset & 0x00c0)==0x0040) + { + *value = m_uart[0]->cruread(space, offset>>4, 0xff); + return; + } + if ((offset & 0x00c0)==0x0080) + { + *value = m_uart[1]->cruread(space, offset>>4, 0xff); + return; + } + } +} + +/* + CRU write +*/ +WRITE8_MEMBER(ti_rs232_pio_device::cruwrite) +{ + if ((offset & 0xff00)==m_cru_base) + { + if ((offset & 0x00c0)==0x0040) + { + m_uart[0]->cruwrite(space, offset>>1, data, 0xff); + return; + } + if ((offset & 0x00c0)==0x0080) + { + m_uart[1]->cruwrite(space, offset>>1, data, 0xff); + return; + } + + device_image_interface *image = dynamic_cast(m_piodev); + + int bit = (offset & 0x00ff)>>1; + switch (bit) + { + case 0: + m_selected = (data!=0); + break; + + case 1: + m_pio_direction_in = (data!=0); + break; + + case 2: + if ((data!=0) != m_pio_handshakeout) + { + m_pio_handshakeout = (data!=0); + if (m_pio_write && m_pio_writable && (!m_pio_direction_in)) + { /* PIO in output mode */ + if (!m_pio_handshakeout) + { /* write data strobe */ + /* write data and acknowledge */ + uint8_t buf = m_pio_out_buffer; + int ret = image->fwrite(&buf, 1); + if (ret) + m_pio_handshakein = 1; + } + else + { + /* end strobe */ + /* we can write some data: set receiver ready */ + m_pio_handshakein = 0; + } + } + if ((!m_pio_write) && m_pio_readable /*&& pio_direction_in*/) + { /* PIO in input mode */ + if (!m_pio_handshakeout) + { /* receiver ready */ + /* send data and strobe */ + uint8_t buf; + if (image->fread(&buf, 1)) + m_pio_in_buffer = buf; + m_pio_handshakein = 0; + } + else + { + /* data acknowledge */ + /* we can send some data: set transmitter ready */ + m_pio_handshakein = 1; + } + } + } + break; + + case 3: + m_pio_spareout = (data!=0); + break; + + case 4: + m_flag0 = (data!=0); + break; + + case 5: + // Set the CTS line for RS232/1 + if (TRACE_LINES) logerror("(1/3) Setting CTS* via CRU to %d\n", data); + output_line_state(0, tms9902_device::CTS, (data==0)? tms9902_device::CTS : 0); + break; + + case 6: + // Set the CTS line for RS232/2 + if (TRACE_LINES) logerror("(2/4) Setting CTS* via CRU to %d\n", data); + output_line_state(1, tms9902_device::CTS, (data==0)? tms9902_device::CTS : 0); + break; + + case 7: + m_led = (data!=0); + break; + } + return; + } +} + +/* + Memory read +*/ +READ8Z_MEMBER( ti_rs232_pio_device::readz ) +{ + if (m_senila==ASSERT_LINE) + { + if (TRACE_ILA) logerror("Sensing ILA\n"); + *value = m_ila; + // The card ROM must be unselected, or we get two values + // on the data bus + + // Not sure whether this is correct; there is no software that makes + // use of it + m_ila = 0; + } + if (((offset & m_select_mask)==m_select_value) && m_selected) + { + if ((offset & 0x1000)==0x0000) + { + *value = m_dsrrom[offset&0x0fff]; + } + else + { + *value = m_pio_direction_in ? m_pio_in_buffer : m_pio_out_buffer; + } + } +} + +/* + Memory write +*/ +WRITE8_MEMBER( ti_rs232_pio_device::write ) +{ + if (((offset & m_select_mask)==m_select_value) && m_selected) + { + if ((offset & 0x1001)==0x1000) + { + m_pio_out_buffer = data; + } + } +} + +/**************************************************************************/ + +/* + The DTR line of the interface card is wired to the CTS and DSR + of the UART. +*/ +void ti_rs232_pio_device::incoming_dtr(int uartind, line_state value) +{ + if (TRACE_LINES) logerror("(RS232/%d) Incoming DTR = %d\n", uartind+1, (value==ASSERT_LINE)? 1:0); + + m_uart[uartind]->rcv_cts(value); + m_uart[uartind]->rcv_dsr(value); +} + +/* + Data transmission +*/ +void ti_rs232_pio_device::transmit_data(int uartind, uint8_t value) +{ + uint8_t buf = value; + + device_image_interface *serial; + serial = dynamic_cast(m_serdev[uartind]); + if (!serial->exists()) + { + logerror("(RS232/%d) No serial output attached\n", uartind+1); + return; + } + + // Send a double ESC if this is not a control operation + if (buf==0x1b) + { + if (TRACE_OUT) logerror("(RS232/%d) send ESC (requires another ESC)\n", uartind+1); + serial->fwrite(&buf, 1); + } + if (TRACE_OUT) + { + char cbuf = (buf < 0x20 || buf > 0x7e)? '.' : (char)buf; + logerror("(RS232/%d) send %c <%02x>\n", uartind+1, cbuf, buf); + } + serial->fwrite(&buf, 1); +} + +/* + Map the DCE-like wiring to a DTE-like wiring and vice versa (mapping==0) + No handshake + + Emulated PC serial + TI RS232 interface + XOUT 2 TXD ----->-----( 3) ---> TXD + RIN 3 RXD -----<-----( 2) <--- RXD + CRU 5 CTS -| |-( 8) <--- DCD (cable) + +12V 6 DSR ----->-----(20) ---> DTR + RTS 8 DCD ----->-----( 4) ---> RTS + DSR+CTS 20 DTR -----<-----( 6) <--- DSR + |-( 5) <--- CTS + + Alternative mapping: (mapping==1) + RTS/CTS handshake + + Emulated PC serial + TI RS232 interface + XOUT 2 TXD ----->-----( 3) ---> TXD + RIN 3 RXD -----<-----( 2) <--- RXD + CRU 5 CTS ----->-----( 4) ---> RTS + +12V 6 DSR -| |-( 6) <--- DSR + RTS 8 DCD ----->-----(20) ---> DTR + DSR+CTS 20 DTR -----<-----( 8) <--- DCD + |-( 5) <--- CTS + + Yet another mapping: (mapping==2) + CRU-based handshake + + Emulated PC serial + TI RS232 interface + XOUT 2 TXD ----->-----( 3) ---> TXD + RIN 3 RXD -----<-----( 2) <--- RXD + CRU 5 CTS ----->-----(20) ---> DTR + +12V 6 DSR -| |-( 6) <--- DSR + RTS 8 DCD ----->-----( 4) ---> RTS + DSR+CTS 20 DTR -----<-----( 5) <--- CTS (cable) + |-( 8) <--- DCD + +*/ +uint8_t ti_rs232_pio_device::map_lines_out(int uartind, uint8_t value) +{ + uint8_t ret = 0; + int mapping = ioport("SERIALMAP")->read(); + + // 00ab cdef = setting line RTS=a, CTS=b, DSR=c, DCD=d, DTR=e, RI=f + + if (TRACE_LINES) logerror("(RS232/%d) out connector pins = 0x%02x; translate for DTE\n", uartind+1, value); + + if (value & tms9902_device::BRK) + { + if (TRACE_MAP) logerror("(RS232/%d) Sending BRK\n", uartind+1); + ret |= tms9902_device::EXCEPT | tms9902_device::BRK; + } + + if (mapping==0) + { + // V1 + if (value & tms9902_device::CTS) + { + if (TRACE_MAP) logerror("(RS232/%d) Cannot map CTS line, ignoring\n", uartind+1); + } + if (value & tms9902_device::DSR) + { + ret |= tms9902_device::DTR; + if (TRACE_MAP) logerror("(RS232/%d) Setting DTR line\n", uartind+1); + } + if (value & tms9902_device::DCD) + { + ret |= tms9902_device::RTS; + if (TRACE_MAP) logerror("(RS232/%d) Setting RTS line\n", uartind+1); + } + } + else + { + if (mapping==1) + { + // V2 + if (value & tms9902_device::CTS) + { + ret |= tms9902_device::RTS; + if (TRACE_MAP) logerror("(RS232/%d) Setting RTS line\n", uartind+1); + } + if (value & tms9902_device::DCD) + { + ret |= tms9902_device::DTR; + if (TRACE_MAP) logerror("(RS232/%d) Setting DTR line\n", uartind+1); + } + } + else + { + // v3 + if (value & tms9902_device::CTS) + { + ret |= tms9902_device::DTR; + if (TRACE_MAP) logerror("(RS232/%d) Setting DTR line\n", uartind+1); + } + if (value & tms9902_device::DSR) + { + if (TRACE_MAP) logerror("(RS232/%d) Cannot map DSR line, ignoring\n", uartind+1); + } + if (value & tms9902_device::DCD) + { + ret |= tms9902_device::RTS; + if (TRACE_MAP) logerror("(RS232/%d) Setting RTS line\n", uartind+1); + } + } + } + + return ret; +} + +uint8_t ti_rs232_pio_device::map_lines_in(int uartind, uint8_t value) +{ + uint8_t ret = 0; + int mapping = ioport("SERIALMAP")->read(); + + // 00ab cdef = setting line RTS=a, CTS=b, DSR=c, DCD=d, DTR=e, RI=f + + if (TRACE_LINES) logerror("(RS232/%d) in connector pins = 0x%02x; translate from DTE\n", uartind+1, value); + + if (value & tms9902_device::BRK) + { + if (TRACE_MAP) logerror("(RS232/%d) Getting BRK\n", uartind+1); + ret |= tms9902_device::EXCEPT | tms9902_device::BRK; + } + + if (mapping==0) + { + // V1 + if (value & tms9902_device::CTS) + { + if (TRACE_MAP) logerror("(RS232/%d) Cannot map CTS line, ignoring\n", uartind+1); + } + if (value & tms9902_device::DSR) + { + ret |= tms9902_device::DTR; + if (TRACE_MAP) logerror("(RS232/%d) Setting DTR line\n", uartind+1); + } + if (value & tms9902_device::DCD) + { + if (TRACE_MAP) logerror("(RS232/%d) Cannot map DCD line, ignoring\n", uartind+1); + } + } + else + { + if (mapping==1) + { + if (value & tms9902_device::DCD) + { + ret |= tms9902_device::DTR; + if (TRACE_MAP) logerror("(RS232/%d) Setting DTR line\n", uartind+1); + } + if (value & tms9902_device::DSR) + { + if (TRACE_MAP) logerror("(RS232/%d) Cannot map DSR line, ignoring\n", uartind+1); + } + if (value & tms9902_device::CTS) + { + if (TRACE_MAP) logerror("(RS232/%d) Cannot map CTS line, ignoring\n", uartind+1); + } + } + else + { + if (value & tms9902_device::CTS) + { + ret |= tms9902_device::DTR; + if (TRACE_MAP) logerror("(RS232/%d) Setting DTR line\n", uartind+1); + } + if (value & tms9902_device::DSR) + { + if (TRACE_MAP) logerror("(RS232/%d) Cannot map DSR line, ignoring\n", uartind+1); + } + if (value & tms9902_device::DCD) + { + if (TRACE_MAP) logerror("(RS232/%d) Cannot map DCD line, ignoring\n", uartind+1); + } + } + } + + return ret; +} +/* + Receive a character or a line state from the remote site. This method + is called by a timer with some sufficiently high polling frequency. Note + that the control lines are not subject to baud rates. + The higher polling frequency will cause overloads in the TMS9902 which has + a one-byte buffer only: Since the data source (e.g. the PC UART and the + socket connection) may be buffered, we may get a cluster of bytes in rapid + succession. In order to avoid this, this function uses the parameter + "baudpoll" which is the ratio of the characters/second and the polling + frequency. (char/sec is baud rate divided by 10.) + Whenever we receive a character that is passed to the UART, we have to + pause for 1/baudpoll iterations before getting the next byte from the + data source. + + FIXME: This may fail when the emulated system tries to stop the remote + system by deactivating RTS or DTR, but there are still incoming + bytes in the socket or PC UART buffer. The buffered bytes may then cause + an overflow in the emulated UART, since the application program expects + the remote system to stop sending instantly. + The only way to handle this is to mirror the activity within the serial + bridge: Whenever a RTS=0 or DTR=0 is transmitted to the remote site, the + serial bridge must stop delivering data bytes until the handshake opens the + channel again. +*/ +void ti_rs232_pio_device::receive_data_or_line_state(int uartind) +{ + device_image_interface *serial; + uint8_t buffer; + + serial = dynamic_cast(m_serdev[uartind]); + + if (!serial->exists()) + { + logerror("(RS232/%d) No serial input attached\n", uartind+1); + return; + } + + double baudpoll = m_uart[uartind]->get_baudpoll(); + + // If more than the minimum waiting time since the last data byte has + // elapsed, we can get a new value. + if (m_time_hold[uartind] > 1.0) + { + // Buffer empty? + if (m_bufpos[uartind] == m_buflen[uartind]) + { + // Get all out of sdlsocket + m_buflen[uartind] = serial->fread(m_recvbuf[uartind].get(), 512); + m_bufpos[uartind] = 0; + if (m_buflen[uartind]==0) return; + } + buffer = m_recvbuf[uartind][m_bufpos[uartind]++]; + } + else + { + // number of polls has not yet elapsed; we have to wait. + m_time_hold[uartind] += baudpoll; + return; + } + + char cbuf = (buffer < 0x20 || buffer > 0x7e)? '.' : (char)buffer; + + // No config parameters here, only data or line setting + switch (m_recv_mode[uartind]) + { + case RECV_MODE_NORMAL: + if (buffer==0x1b) + { + if (TRACE_IN) logerror("(RS232/%d) Received: %c <%02x>, switch to ESC mode\n", uartind+1, cbuf, buffer); + m_recv_mode[uartind] = RECV_MODE_ESC; + } + else + { + if (TRACE_IN) logerror("(RS232/%d) Received: %c <%02x>, pass to UART\n", uartind+1, cbuf, buffer); + m_uart[uartind]->rcv_data(buffer); + m_time_hold[uartind] = 0.0; + } + break; + case RECV_MODE_ESC: + if (buffer==0x1b) + { + m_recv_mode[uartind] = RECV_MODE_NORMAL; + if (TRACE_STATE) logerror("(RS232/%d) Received another ESC, passing to UART, leaving ESC mode\n", uartind+1); + m_uart[uartind]->rcv_data(buffer); + m_time_hold[uartind] = 0.0; + } + else + { + // the byte in buffer is the length byte + if (TRACE_STATE) logerror("(RS232/%d) Received length byte <%02x> in ESC mode\n", uartind+1, buffer); + if (buffer != 1) + { + logerror("(RS232/%d) ** ERROR: Expected length byte 1 but got 0x%02x, leaving ESC mode.\n", uartind+1, buffer); + m_recv_mode[uartind] = RECV_MODE_NORMAL; + } + else + m_recv_mode[uartind] = RECV_MODE_ESC_LINES; + } + break; + + case RECV_MODE_ESC_LINES: + // Map the real serial interface lines to our emulated connector + // The mapping is the same for both directions, so we use the same function + if (buffer & tms9902_device::EXCEPT) + { + // Exception states: BRK, FRMERR, PARERR + if (TRACE_LINES) logerror("(RS232/%d) Received BRK or ERROR <%02x>\n", uartind+1, buffer); + m_uart[uartind]->rcv_break(((buffer & tms9902_device::BRK)!=0)); + + if (buffer & tms9902_device::FRMERR) m_uart[uartind]->rcv_framing_error(); + if (buffer & tms9902_device::PARERR) m_uart[uartind]->rcv_parity_error(); + } + else + { + buffer = map_lines_in(uartind, buffer); + if (TRACE_LINES) logerror("(RS232/%d) Received (remapped) <%02x> in ESC mode\n", uartind+1, buffer); + + // The DTR line on the RS232 connector of the board is wired to both the + // CTS and the DSR pin of the TMS9902 + // Apart from the data line, DTR is the only input line + incoming_dtr(uartind, (buffer & tms9902_device::DTR)? ASSERT_LINE : CLEAR_LINE); + } + + m_recv_mode[uartind] = RECV_MODE_NORMAL; + break; + + default: + logerror("(RS232/%d) Unknown mode: %d\n", uartind+1, m_recv_mode[uartind]); + } +} + +/* + Control operations like configuration or line changes +*/ +void ti_rs232_pio_device::configure_interface(int uartind, int type, int value) +{ + uint8_t bufctrl[4]; + device_image_interface *serial; + uint8_t esc = ESC; + + serial = dynamic_cast(m_serdev[uartind]); + + if (!serial->exists()) + { + logerror("(RS232/%d) No serial output attached\n", uartind+1); + return; + } + + serial->fwrite(&esc, 1); + bufctrl[0] = 0x02; + bufctrl[1] = tms9902_device::CONFIG | tms9902_device::TYPE_TMS9902; + + switch (type) { + case tms9902_device::RATERECV: + if (TRACE_SETTING) logerror("(RS232/%d) Send receive rate %04x\n", uartind+1, value); + // value has 12 bits + // 1ccc xaaa = config adapter type a + // 1111 xaaa rrrr rrrr rrrr 0000 = config receive rate on a + // 1110 xaaa rrrr rrrr rrrr 0000 = config transmit rate on a + bufctrl[0] = 0x03; // length + bufctrl[1] |= tms9902_device::RATERECV; + bufctrl[2] = (value & 0x0ff0)>>4; + bufctrl[3] = (value & 0x0f)<<4; + break; + case tms9902_device::RATEXMIT: + if (TRACE_SETTING) logerror("(RS232/%d) Send transmit rate %04x\n", uartind+1, value); + bufctrl[0] = 0x03; // length + bufctrl[1] |= tms9902_device::RATEXMIT; + bufctrl[2] = (value & 0x0ff0)>>4; + bufctrl[3] = (value & 0x0f)<<4; + break; + case tms9902_device::STOPBITS: + if (TRACE_SETTING) logerror("(RS232/%d) Send stop bit config %02x\n", uartind+1, value&0x03); + bufctrl[1] |= tms9902_device::STOPBITS; + bufctrl[2] = (value & 0x03); + break; + case tms9902_device::DATABITS: + if (TRACE_SETTING) logerror("(RS232/%d) Send data bit config %02x\n", uartind+1, value&0x03); + bufctrl[1] |= tms9902_device::DATABITS; + bufctrl[2] = (value & 0x03); + break; + case tms9902_device::PARITY: + if (TRACE_SETTING) logerror("(RS232/%d) Send parity config %02x\n", uartind+1, value&0x03); + bufctrl[1] |= tms9902_device::PARITY; + bufctrl[2] = (value & 0x03); + break; + default: + logerror("(RS232/%d) Error - unknown config type %02x\n", uartind+1, type); + } + + serial->fwrite(bufctrl, bufctrl[0]+1); +} + +void ti_rs232_pio_device::set_bit(int uartind, int line, int value) +{ + if (TRACE_LINES) + { + switch (line) + { + case tms9902_device::CTS: logerror("(RS232/%d) Set CTS(out)=%s\n", uartind+1, (value!=0)? "asserted" : "cleared"); break; + case tms9902_device::DCD: logerror("(RS232/%d) Set DCD(out)=%s\n", uartind+1, (value!=0)? "asserted" : "cleared"); break; + case tms9902_device::BRK: logerror("(RS232/%d) Set BRK(out)=%s\n", uartind+1, (value!=0)? "asserted" : "cleared"); break; + } + } + + if (value!=0) m_signals[uartind] |= line; + else m_signals[uartind] &= ~line; +} + +/* + Line changes +*/ +void ti_rs232_pio_device::output_exception(int uartind, int param, uint8_t value) +{ + device_image_interface *serial; + uint8_t bufctrl[2]; + uint8_t esc = ESC; + + serial = dynamic_cast(m_serdev[uartind]); + + if (!serial->exists()) + { + logerror("(RS232/%d) No serial output attached\n", uartind+1); + return; + } + + serial->fwrite(&esc, 1); + + bufctrl[0] = 1; + // 0100 0xxv = exception xx: 02=BRK, 04=FRMERR, 06=PARERR; v=0,1 (only for BRK) + // BRK is the only output exception + bufctrl[1] = tms9902_device::EXCEPT | param | (value&1); + serial->fwrite(bufctrl, 2); +} + +/* + Line changes +*/ +void ti_rs232_pio_device::output_line_state(int uartind, int mask, uint8_t value) +{ + device_image_interface *serial; + uint8_t bufctrl[2]; + uint8_t esc = ESC; + + serial = dynamic_cast(m_serdev[uartind]); + + if (!serial->exists()) + { + logerror("(RS232/%d) No serial output attached\n", uartind+1); + return; + } + + // Send ESC to serial bridge + serial->fwrite(&esc, 1); + + // Length 1 + bufctrl[0] = 1; + + // 01ab cdef = setting line RTS=a, CTS=b, DSR=c, DCD=d, DTR=e, RI=f + + // The CTS line (coming from a CRU bit) is connected to the CTS pin + if (mask & tms9902_device::CTS) set_bit(uartind, tms9902_device::CTS, value & tms9902_device::CTS); + + // The RTS line (from 9902) is connected to the DCD pin + if (mask & tms9902_device::RTS) set_bit(uartind, tms9902_device::DCD, value & tms9902_device::RTS); + + // The DSR pin is hardwired to +5V + set_bit(uartind, tms9902_device::DSR, 1); + + // As of here, the lines are set according to the schematics of the + // serial interface. + + // Now translate the signals of the board to those of a DTE-like device + // so that we can pass the signal to the real PC serial interface + // (can be imagined as if we emulated the cable) + bufctrl[1] = map_lines_out(uartind, m_signals[uartind]); + serial->fwrite(bufctrl, 2); +} + +/*********************************************************************** + callbacks +************************************************************************/ +/* + Propagates the /INT signal of the UARTs to the /INT line of the pbox. +*/ +WRITE_LINE_MEMBER( ti_rs232_pio_device::int0_callback ) +{ + int senila_bit = SENILA_0_BIT; + + if (state==ASSERT_LINE) m_ila |= senila_bit; + else m_ila &= ~senila_bit; + + m_slot->set_inta(state); +} + +WRITE_LINE_MEMBER( ti_rs232_pio_device::int1_callback ) +{ + int senila_bit = SENILA_1_BIT; + + if (state==ASSERT_LINE) m_ila |= senila_bit; + else m_ila &= ~senila_bit; + + m_slot->set_inta(state); +} + +/* + Called from the UART when it wants to receive a character + However, characters are not passed to it at this point + Instead, we check for signal line change or data transmission + and call the respective function +*/ +WRITE_LINE_MEMBER( ti_rs232_pio_device::rcv0_callback ) +{ + receive_data_or_line_state(0); +} + +WRITE_LINE_MEMBER( ti_rs232_pio_device::rcv1_callback ) +{ + receive_data_or_line_state(1); +} + +WRITE8_MEMBER( ti_rs232_pio_device::xmit0_callback ) +{ + transmit_data(0, data); +} + +WRITE8_MEMBER( ti_rs232_pio_device::xmit1_callback ) +{ + transmit_data(1, data); +} + +void ti_rs232_pio_device::ctrl_callback(int uartind, int offset, uint8_t data) +{ + if ((offset & tms9902_device::CONFIG)!=0) + { + // We cannot pass the configuration data as they need more than 8 bits. + // Could be done by a write16 function as well. + configure_interface(uartind, data, m_uart[uartind]->get_config_value()); + } + else + { + if ((offset & tms9902_device::EXCEPT)!=0) + { + output_exception(uartind, offset & ~tms9902_device::EXCEPT, data); + } + else + { + output_line_state(uartind, offset, data); + } + } +} + +WRITE8_MEMBER( ti_rs232_pio_device::ctrl0_callback ) +{ + ctrl_callback(0, offset, data); +} + +WRITE8_MEMBER( ti_rs232_pio_device::ctrl1_callback ) +{ + ctrl_callback(1, offset, data); +} + +void ti_rs232_pio_device::device_start() +{ + m_dsrrom = memregion(DSRROM)->base(); + m_uart[0] = subdevice("tms9902_0"); + m_uart[1] = subdevice("tms9902_1"); + m_serdev[0] = subdevice("serdev0"); + m_serdev[1] = subdevice("serdev1"); + m_piodev = subdevice("piodev"); + // Prepare the receive buffers + m_recvbuf[0] = std::make_unique(512); + m_recvbuf[1] = std::make_unique(512); + m_pio_write = true; // required for call_load of pio_attached_device + m_pio_writable = false; + m_pio_handshakein = false; + + // We don't save the receive buffers for persistent state + save_pointer(NAME(m_signals),2); + save_pointer(NAME(m_recv_mode),2); + save_pointer(NAME(m_time_hold),2); + save_item(NAME(m_pio_direction_in)); + save_item(NAME(m_pio_handshakeout)); + save_item(NAME(m_pio_handshakein)); + save_item(NAME(m_pio_spareout)); + save_item(NAME(m_pio_sparein)); + save_item(NAME(m_flag0)); + save_item(NAME(m_led)); + save_item(NAME(m_pio_out_buffer)); + save_item(NAME(m_pio_in_buffer)); + save_item(NAME(m_pio_readable)); + save_item(NAME(m_pio_writable)); + save_item(NAME(m_pio_write)); + save_item(NAME(m_ila)); +} + +void ti_rs232_pio_device::device_stop() +{ + m_recvbuf[0] = nullptr; + m_recvbuf[1] = nullptr; +} + +void ti_rs232_pio_device::device_reset() +{ + m_pio_direction_in = false; + m_pio_handshakeout = false; + m_pio_spareout = false; + m_flag0 = false; + + set_bit(0, tms9902_device::CTS, 0); + set_bit(1, tms9902_device::CTS, 0); + + m_led = false; + m_recv_mode[0] = RECV_MODE_NORMAL; + m_recv_mode[1] = RECV_MODE_NORMAL; + + m_bufpos[0] = m_bufpos[1] = m_buflen[0] = m_buflen[1] = 0; + + if (m_genmod) + { + m_select_mask = 0x1fe000; + m_select_value = 0x174000; + } + else + { + m_select_mask = 0x7e000; + m_select_value = 0x74000; + } + + m_selected = false; + + m_cru_base = (ioport("CRURS232")->read()==0)? 0x1300 : 0x1500; + + m_time_hold[0] = m_time_hold[1] = 0.0; + + // Both DTRs are pulled up + incoming_dtr(0, ASSERT_LINE); + incoming_dtr(1, ASSERT_LINE); +} + +static MACHINE_CONFIG_FRAGMENT( ti_rs232 ) + MCFG_DEVICE_ADD("tms9902_0", TMS9902, 3000000) + MCFG_TMS9902_INT_CB(WRITELINE(ti_rs232_pio_device, int0_callback)) /* called when interrupt pin state changes */ + MCFG_TMS9902_RCV_CB(WRITELINE(ti_rs232_pio_device, rcv0_callback)) /* called when a character is received */ + MCFG_TMS9902_XMIT_CB(WRITE8(ti_rs232_pio_device, xmit0_callback)) /* called when a character is transmitted */ + MCFG_TMS9902_CTRL_CB(WRITE8(ti_rs232_pio_device, ctrl0_callback)) + MCFG_DEVICE_ADD("tms9902_1", TMS9902, 3000000) + MCFG_TMS9902_INT_CB(WRITELINE(ti_rs232_pio_device, int1_callback)) /* called when interrupt pin state changes */ + MCFG_TMS9902_RCV_CB(WRITELINE(ti_rs232_pio_device, rcv1_callback)) /* called when a character is received */ + MCFG_TMS9902_XMIT_CB(WRITE8(ti_rs232_pio_device, xmit1_callback)) /* called when a character is transmitted */ + MCFG_TMS9902_CTRL_CB(WRITE8(ti_rs232_pio_device, ctrl1_callback)) + MCFG_DEVICE_ADD("serdev0", TI99_RS232_DEV, 0) + MCFG_DEVICE_ADD("serdev1", TI99_RS232_DEV, 0) + MCFG_DEVICE_ADD("piodev", TI99_PIO_DEV, 0) +MACHINE_CONFIG_END + +ROM_START( ti_rs232 ) + ROM_REGION(0x1000, DSRROM, 0) + ROM_LOAD("rs232pio_dsr.u1", 0x0000, 0x1000, CRC(eab382fb) SHA1(ee609a18a21f1a3ddab334e8798d5f2a0fcefa91)) /* TI rs232 DSR ROM */ +ROM_END + +INPUT_PORTS_START( ti_rs232 ) + PORT_START( "CRURS232" ) + PORT_DIPNAME( 0x01, 0x00, "TI-RS232 CRU base" ) + PORT_DIPSETTING( 0x00, "1300" ) + PORT_DIPSETTING( 0x00, "1500" ) + + PORT_START( "SERIALMAP" ) + PORT_CONFNAME( 0x03, 0x00, "Serial cable pin mapping" ) + PORT_CONFSETTING( 0x00, "6-20" ) + PORT_CONFSETTING( 0x01, "8-20" ) + PORT_CONFSETTING( 0x02, "5-20" ) +INPUT_PORTS_END + +machine_config_constructor ti_rs232_pio_device::device_mconfig_additions() const +{ + return MACHINE_CONFIG_NAME( ti_rs232 ); +} + +const tiny_rom_entry *ti_rs232_pio_device::device_rom_region() const +{ + return ROM_NAME( ti_rs232 ); +} + +ioport_constructor ti_rs232_pio_device::device_input_ports() const +{ + return INPUT_PORTS_NAME(ti_rs232); +} + +DEFINE_DEVICE_TYPE(TI99_RS232, ti_rs232_pio_device, "ti99_rs232", "TI-99 RS232/PIO interface") +DEFINE_DEVICE_TYPE(TI99_RS232_DEV, ti_rs232_attached_device, "ti99_rs232_atttached", "TI-99 Serial attached device") +DEFINE_DEVICE_TYPE(TI99_PIO_DEV, ti_pio_attached_device, "ti99_pio_attached", "TI-99 Parallel attached device") diff --git a/src/devices/bus/ti99/peb/ti_rs232.h b/src/devices/bus/ti99/peb/ti_rs232.h new file mode 100644 index 00000000000..6f246363323 --- /dev/null +++ b/src/devices/bus/ti99/peb/ti_rs232.h @@ -0,0 +1,162 @@ +// license:LGPL-2.1+ +// copyright-holders:Michael Zapf +/**************************************************************************** + + TI-99 Serial and parallel interface card + See ti_rs232.c for documentation + + Michael Zapf + February 2012: Rewritten as class + +*****************************************************************************/ + +#ifndef MAME_BUS_TI99_PEB_TI_RS232_H +#define MAME_BUS_TI99_PEB_TI_RS232_H + +#pragma once + +#include "peribox.h" +#include "machine/tms9902.h" + +DECLARE_DEVICE_TYPE(TI99_RS232, ti_rs232_pio_device) +DECLARE_DEVICE_TYPE(TI99_RS232_DEV, ti_rs232_attached_device) +DECLARE_DEVICE_TYPE(TI99_PIO_DEV, ti_pio_attached_device) + + +class ti_rs232_pio_device : public ti_expansion_card_device +{ + friend class ti_pio_attached_device; + friend class ti_rs232_attached_device; + +public: + ti_rs232_pio_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + DECLARE_READ8Z_MEMBER(readz) override; + DECLARE_WRITE8_MEMBER(write) override; + + DECLARE_READ8Z_MEMBER(crureadz) override; + DECLARE_WRITE8_MEMBER(cruwrite) override; + + DECLARE_WRITE_LINE_MEMBER( int0_callback ); + DECLARE_WRITE_LINE_MEMBER( int1_callback ); + DECLARE_WRITE_LINE_MEMBER( rcv0_callback ); + DECLARE_WRITE_LINE_MEMBER( rcv1_callback ); + DECLARE_WRITE8_MEMBER( xmit0_callback ); + DECLARE_WRITE8_MEMBER( xmit1_callback ); + DECLARE_WRITE8_MEMBER( ctrl0_callback ); + DECLARE_WRITE8_MEMBER( ctrl1_callback ); + +protected: + virtual void device_start() override; + virtual void device_reset() override; + virtual void device_stop() override; + virtual const tiny_rom_entry *device_rom_region() const override; + virtual machine_config_constructor device_mconfig_additions() const override; + virtual ioport_constructor device_input_ports() const override; + +private: + void incoming_dtr(int uartind, line_state value); + void transmit_data(int uartind, uint8_t value); + uint8_t map_lines_out(int uartind, uint8_t value); + uint8_t map_lines_in(int uartind, uint8_t value); + void receive_data_or_line_state(int uartind); + void set_bit(int uartind, int line, int value); + + void configure_interface(int uartind, int type, int value); + void output_line_state(int uartind, int mask, uint8_t value); + void output_exception(int uartind, int param, uint8_t value); + void ctrl_callback(int uartind, int type, uint8_t data); + + // UART chips + tms9902_device* m_uart[2]; + // Connected images (file or socket connection) that represent the + // devices that are connected to the serial adapters + ti_rs232_attached_device* m_serdev[2]; + // Connected image (file) that represents the device connected to the + // parallel interface + ti_pio_attached_device* m_piodev; + uint8_t* m_dsrrom; + + // Input buffer for each UART. We have to copy the contents of sdlsocket here + // because the buffer in corefile will be lost on the next write operation + std::unique_ptr m_recvbuf[2]; + int m_bufpos[2], m_buflen[2]; + + // Latches the state of the output lines for UART0/UART1 + uint8_t m_signals[2]; + int m_recv_mode[2]; // May be NORMAL or ESC + + // Baud rate management + // not part of the real device, but required for the connection to the + // real UART + double m_time_hold[2]; + + // PIO flags + bool m_pio_direction_in; // a.k.a. PIOOC pio in output mode if 0 + bool m_pio_handshakeout; + bool m_pio_handshakein; + bool m_pio_spareout; + bool m_pio_sparein; + bool m_flag0; // spare + bool m_led; // a.k.a. flag3 + int m_pio_out_buffer; + int m_pio_in_buffer; + bool m_pio_readable; + bool m_pio_writable; + bool m_pio_write; // true if image is to be written to + + /* Keeps the value put on the bus when SENILA becomes active. */ + uint8_t m_ila; +}; + +/****************************************************************************/ + +/* + Defines the serial serdev. "TI99 RS232 attached serial device" +*/ +class ti_rs232_attached_device : public device_t, public device_image_interface +{ +public: + ti_rs232_attached_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + + iodevice_t image_type() const override { return IO_SERIAL; } + bool is_readable() const override { return true; } + bool is_writeable() const override { return true; } + bool is_creatable() const override { return true; } + bool must_be_loaded() const override { return false; } + bool is_reset_on_load() const override { return false; } + const char *image_interface() const override { return ""; } + const char *file_extensions() const override { return ""; } + +protected: + virtual void device_start() override; + image_init_result call_load() override; + void call_unload() override; + +private: + int get_index_from_tagname(); +}; + +/* + Defines the PIO (parallel IO) "TI99 PIO attached device" +*/ +class ti_pio_attached_device : public device_t, public device_image_interface +{ +public: + ti_pio_attached_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + + iodevice_t image_type() const override { return IO_PARALLEL; } + bool is_readable() const override { return true; } + bool is_writeable() const override { return true; } + bool is_creatable() const override { return true; } + bool must_be_loaded() const override { return false; } + bool is_reset_on_load() const override { return false; } + const char *image_interface() const override { return ""; } + const char *file_extensions() const override { return ""; } + +protected: + virtual void device_start() override; + image_init_result call_load() override; + void call_unload() override; +}; + +#endif // MAME_BUS_TI99_PEB_TI_RS232_H diff --git a/src/devices/bus/ti99/peb/tn_ide.cpp b/src/devices/bus/ti99/peb/tn_ide.cpp new file mode 100644 index 00000000000..e4bd1864b5c --- /dev/null +++ b/src/devices/bus/ti99/peb/tn_ide.cpp @@ -0,0 +1,385 @@ +// license:LGPL-2.1+ +// copyright-holders:Michael Zapf +/**************************************************************************** + + Thierry Nouspikel's IDE card emulation + + This card is just a prototype. It has been designed by Thierry Nouspikel, + and its description was published in 2001. The card has been revised in + 2004. + + The specs have been published in . + + The IDE interface is quite simple, since it only implements PIO transfer. + The card includes a clock chip to timestamp files, and an SRAM for the DSR. + It should be possible to use a battery backed DSR SRAM, but since the clock + chip includes 4kb of battery-backed RAM, a bootstrap loader can be saved in + the clock SRAM in order to load the DSR from the HD when the computer + starts. + + Raphael Nabet, 2002-2004. + + Michael Zapf + September 2010: Rewritten as device + February 2012: Rewritten as class + + FIXME: Completely untested and likely to be broken + +*****************************************************************************/ + +#include "emu.h" +#include "tn_ide.h" + +#define CRU_BASE 0x1000 + +#define RAMREGION "ram" + +/* previously 0xff */ +#define PAGE_MASK 0x3f + +enum +{ + cru_reg_page_switching = 0x04, + cru_reg_page_0 = 0x08, + /*cru_reg_rambo = 0x10,*/ /* not emulated */ + cru_reg_wp = 0x20, + cru_reg_int_en = 0x40, + cru_reg_reset = 0x80 +}; + +nouspikel_ide_interface_device::nouspikel_ide_interface_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : ti_expansion_card_device(mconfig, TI99_IDE, tag, owner, clock), m_ata_irq(false), + m_cru_register(0), m_rtc(nullptr), + m_ata(*this, "ata"), m_clk_irq(false), m_sram_enable(false), + m_sram_enable_dip(false), m_cur_page(0), m_tms9995_mode(false), + m_input_latch(0), m_output_latch(0), m_ram(*this, RAMREGION) +{ +} + +/* + CRU read +*/ +READ8Z_MEMBER(nouspikel_ide_interface_device::crureadz) +{ + uint8_t reply = 0; + if ((offset & 0xff00)==m_cru_base) + { + int bit = (offset >> 4) & 7; + + if (bit==0) + { + reply = m_cru_register & 0x30; + reply |= 8; /* IDE bus IORDY always set */ + if (!m_clk_irq) + reply |= 4; + if (m_sram_enable_dip) + reply |= 2; + if (!m_ata_irq) + reply |= 1; + } + *value = reply; + } +} + +/* + CRU write +*/ +WRITE8_MEMBER(nouspikel_ide_interface_device::cruwrite) +{ + if ((offset & 0xff00)==m_cru_base) + { + int bit = (offset >>1) & 7; + switch (bit) + { + case 0: + m_selected = (data!=0); + + case 1: // enable SRAM or registers in 0x4000-0x40ff + m_sram_enable = (data!=0); + break; + + case 2: // enable SRAM page switching + case 3: // force SRAM page 0 + case 4: // enable SRAM in 0x6000-0x7000 ("RAMBO" mode) + case 5: // write-protect RAM + case 6: // irq and reset enable + case 7: // reset drive + if (data!=0) + m_cru_register |= 1 << bit; + else + m_cru_register &= ~(1 << bit); + + if (bit == 6) + m_slot->set_inta((m_cru_register & cru_reg_int_en) && m_ata_irq); + + if ((bit == 6) || (bit == 7)) + if ((m_cru_register & cru_reg_int_en) && !(m_cru_register & cru_reg_reset)) + m_ata->reset(); + break; + } + } +} + +/* + Memory read +*/ +READ8Z_MEMBER(nouspikel_ide_interface_device::readz) +{ + uint8_t reply = 0; + if (machine().side_effect_disabled()) return; + + if (((offset & m_select_mask)==m_select_value) && m_selected) + { + int addr = offset & 0x1fff; + + if ((addr <= 0xff) && (m_sram_enable == m_sram_enable_dip)) + { /* registers */ + switch ((addr >> 5) & 0x3) + { + case 0: /* RTC RAM */ + if (addr & 0x80) + /* RTC RAM page register */ + reply = m_rtc->xram_r(machine().dummy_space(), (addr & 0x1f) | 0x20); + else + /* RTC RAM read */ + reply = m_rtc->xram_r(machine().dummy_space(), addr); + break; + case 1: /* RTC registers */ + if (addr & 0x10) + /* register data */ + reply = m_rtc->rtc_r(machine().dummy_space(), 1); + else + /* register select */ + reply = m_rtc->rtc_r(machine().dummy_space(), 0); + break; + case 2: /* IDE registers set 1 (CS1Fx) */ + if (m_tms9995_mode ? (!(addr & 1)) : (addr & 1)) + { /* first read triggers 16-bit read cycle */ + m_input_latch = (! (addr & 0x10)) ? m_ata->read_cs0(space, (addr >> 1) & 0x7, 0xffff) : 0; + } + + /* return latched input */ + /*reply = (addr & 1) ? input_latch : (input_latch >> 8);*/ + /* return latched input - bytes are swapped in 2004 IDE card */ + reply = ((addr & 1) ? (m_input_latch >> 8) : m_input_latch) & 0xff; + break; + case 3: /* IDE registers set 2 (CS3Fx) */ + if (m_tms9995_mode ? (!(addr & 1)) : (addr & 1)) + { /* first read triggers 16-bit read cycle */ + m_input_latch = (! (addr & 0x10)) ? m_ata->read_cs1(space, (addr >> 1) & 0x7, 0xffff) : 0; + } + + /* return latched input */ + /*reply = (addr & 1) ? input_latch : (input_latch >> 8);*/ + /* return latched input - bytes are swapped in 2004 IDE card */ + reply = ((addr & 1) ? (m_input_latch >> 8) : m_input_latch) & 0xff; + break; + } + } + else + { /* sram */ + if ((m_cru_register & cru_reg_page_0) || (addr >= 0x1000)) + reply = m_ram->pointer()[addr+0x2000 * m_cur_page]; + else + reply = m_ram->pointer()[addr]; + } + *value = reply; + } +} + +/* + Memory write. The controller is 16 bit, so we need to demultiplex again. +*/ +WRITE8_MEMBER(nouspikel_ide_interface_device::write) +{ + if (machine().side_effect_disabled()) return; + + if (((offset & m_select_mask)==m_select_value) && m_selected) + { + if (m_cru_register & cru_reg_page_switching) + { + m_cur_page = (offset >> 1) & PAGE_MASK; + } + + int addr = offset & 0x1fff; + + if ((addr <= 0xff) && (m_sram_enable == m_sram_enable_dip)) + { /* registers */ + switch ((addr >> 5) & 0x3) + { + case 0: /* RTC RAM */ + if (addr & 0x80) + /* RTC RAM page register */ + m_rtc->xram_w(machine().dummy_space(), (addr & 0x1f) | 0x20, data); + else + /* RTC RAM write */ + m_rtc->xram_w(machine().dummy_space(), addr, data); + break; + case 1: /* RTC registers */ + if (addr & 0x10) + /* register data */ + m_rtc->rtc_w(machine().dummy_space(), 1, data); + else + /* register select */ + m_rtc->rtc_w(machine().dummy_space(), 0, data); + break; + case 2: /* IDE registers set 1 (CS1Fx) */ +/* + if (addr & 1) + m_output_latch = (m_output_latch & 0xff00) | data; + else + m_output_latch = (m_output_latch & 0x00ff) | (data << 8); +*/ + /* latch write - bytes are swapped in 2004 IDE card */ + if (addr & 1) + m_output_latch = (m_output_latch & 0x00ff) | (data << 8); + else + m_output_latch = (m_output_latch & 0xff00) | data; + + if (m_tms9995_mode ? (addr & 1) : (!(addr & 1))) + { /* second write triggers 16-bit write cycle */ + m_ata->write_cs0(space, (addr >> 1) & 0x7, m_output_latch, 0xffff); + } + break; + case 3: /* IDE registers set 2 (CS3Fx) */ +/* + if (addr & 1) + m_output_latch = (m_output_latch & 0xff00) | data; + else + m_output_latch = (m_output_latch & 0x00ff) | (data << 8); +*/ + /* latch write - bytes are swapped in 2004 IDE card */ + if (addr & 1) + m_output_latch = (m_output_latch & 0x00ff) | (data << 8); + else + m_output_latch = (m_output_latch & 0xff00) | data; + + if (m_tms9995_mode ? (addr & 1) : (!(addr & 1))) + { /* second write triggers 16-bit write cycle */ + m_ata->write_cs1(space, (addr >> 1) & 0x7, m_output_latch, 0xffff); + } + break; + } + } + else + { /* sram */ + if (! (m_cru_register & cru_reg_wp)) + { + if ((m_cru_register & cru_reg_page_0) || (addr >= 0x1000)) + m_ram->pointer()[addr+0x2000 * m_cur_page] = data; + else + m_ram->pointer()[addr] = data; + } + } + } +} + +void nouspikel_ide_interface_device::do_inta(int state) +{ + m_slot->set_inta(state); +} + +/* + ti99_ide_interrupt() + IDE interrupt callback +*/ +WRITE_LINE_MEMBER(nouspikel_ide_interface_device::ide_interrupt_callback) +{ + m_ata_irq = state; + if (m_cru_register & cru_reg_int_en) + do_inta(state); +} + +/* + clk_interrupt_callback() + clock interrupt callback +*/ +WRITE_LINE_MEMBER(nouspikel_ide_interface_device::clock_interrupt_callback) +{ + m_clk_irq = (state!=0); + m_slot->set_inta(state); +} + +void nouspikel_ide_interface_device::device_start() +{ + m_rtc = subdevice("ide_rtc"); + m_sram_enable_dip = false; // TODO: what is this? + + save_item(NAME(m_ata_irq)); + save_item(NAME(m_cru_register)); + save_item(NAME(m_clk_irq)); + save_item(NAME(m_sram_enable)); + save_item(NAME(m_sram_enable_dip)); + save_item(NAME(m_cur_page)); + save_item(NAME(m_tms9995_mode)); + save_item(NAME(m_input_latch)); + save_item(NAME(m_output_latch)); +} + +void nouspikel_ide_interface_device::device_reset() +{ + m_cur_page = 0; + m_sram_enable = false; + m_cru_register = 0; + + if (m_genmod) + { + m_select_mask = 0x1fe000; + m_select_value = 0x174000; + } + else + { + m_select_mask = 0x7e000; + m_select_value = 0x74000; + } + m_selected = false; + + m_cru_base = ioport("CRUIDE")->read(); + m_clk_irq = false; + + m_tms9995_mode = false; // (device->type()==TMS9995); +} + +MACHINE_CONFIG_FRAGMENT( tn_ide ) + MCFG_DEVICE_ADD( "ide_rtc", RTC65271, 0 ) + MCFG_RTC65271_INTERRUPT_CB(WRITELINE(nouspikel_ide_interface_device, clock_interrupt_callback)) + MCFG_ATA_INTERFACE_ADD( "ata", ata_devices, "hdd", nullptr, false) + MCFG_ATA_INTERFACE_IRQ_HANDLER(WRITELINE(nouspikel_ide_interface_device, ide_interrupt_callback)) + + MCFG_RAM_ADD(RAMREGION) + MCFG_RAM_DEFAULT_SIZE("512K") + MCFG_RAM_DEFAULT_VALUE(0) +MACHINE_CONFIG_END + +INPUT_PORTS_START( tn_ide ) + PORT_START( "CRUIDE" ) + PORT_DIPNAME( 0x1f00, 0x1000, "IDE CRU base" ) + PORT_DIPSETTING( 0x1000, "1000" ) + PORT_DIPSETTING( 0x1100, "1100" ) + PORT_DIPSETTING( 0x1200, "1200" ) + PORT_DIPSETTING( 0x1300, "1300" ) + PORT_DIPSETTING( 0x1400, "1400" ) + PORT_DIPSETTING( 0x1500, "1500" ) + PORT_DIPSETTING( 0x1600, "1600" ) + PORT_DIPSETTING( 0x1700, "1700" ) + PORT_DIPSETTING( 0x1800, "1800" ) + PORT_DIPSETTING( 0x1900, "1900" ) + PORT_DIPSETTING( 0x1a00, "1A00" ) + PORT_DIPSETTING( 0x1b00, "1B00" ) + PORT_DIPSETTING( 0x1c00, "1C00" ) + PORT_DIPSETTING( 0x1d00, "1D00" ) + PORT_DIPSETTING( 0x1e00, "1E00" ) + PORT_DIPSETTING( 0x1f00, "1F00" ) +INPUT_PORTS_END + +machine_config_constructor nouspikel_ide_interface_device::device_mconfig_additions() const +{ + return MACHINE_CONFIG_NAME( tn_ide ); +} + +ioport_constructor nouspikel_ide_interface_device::device_input_ports() const +{ + return INPUT_PORTS_NAME(tn_ide); +} + +DEFINE_DEVICE_TYPE(TI99_IDE, nouspikel_ide_interface_device, "ti99_ide", "Nouspikel IDE interface card") diff --git a/src/devices/bus/ti99/peb/tn_ide.h b/src/devices/bus/ti99/peb/tn_ide.h new file mode 100644 index 00000000000..edef805b2f1 --- /dev/null +++ b/src/devices/bus/ti99/peb/tn_ide.h @@ -0,0 +1,66 @@ +// license:LGPL-2.1+ +// copyright-holders:Michael Zapf +/**************************************************************************** + + Nouspikel IDE controller card + See tn_ide.c for documentation + + Michael Zapf + + February 2012: Rewritten as class + +*****************************************************************************/ + +#ifndef MAME_BUS_TI99_PEB_TN_IDE_H +#define MAME_BUS_TI99_PEB_TN_IDE_H + +#pragma once + +#include "peribox.h" +#include "machine/ataintf.h" +#include "machine/ram.h" +#include "machine/rtc65271.h" + +DECLARE_DEVICE_TYPE(TI99_IDE, nouspikel_ide_interface_device) + +class nouspikel_ide_interface_device : public ti_expansion_card_device +{ +public: + nouspikel_ide_interface_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + DECLARE_READ8Z_MEMBER(readz) override; + DECLARE_WRITE8_MEMBER(write) override; + + DECLARE_READ8Z_MEMBER(crureadz) override; + DECLARE_WRITE8_MEMBER(cruwrite) override; + + void do_inta(int state); + bool m_ata_irq; + int m_cru_register; + + DECLARE_WRITE_LINE_MEMBER(clock_interrupt_callback); + DECLARE_WRITE_LINE_MEMBER(ide_interrupt_callback); + +protected: + virtual void device_start() override; + virtual void device_reset() override; + virtual machine_config_constructor device_mconfig_additions() const override; + virtual ioport_constructor device_input_ports() const override; + +private: + rtc65271_device* m_rtc; + required_device m_ata; + + bool m_clk_irq; + bool m_sram_enable; + bool m_sram_enable_dip; + int m_cur_page; + + bool m_tms9995_mode; + + uint16_t m_input_latch; + uint16_t m_output_latch; + + required_device m_ram; +}; + +#endif // MAME_BUS_TI99_PEB_TN_IDE_H diff --git a/src/devices/bus/ti99/peb/tn_usbsm.cpp b/src/devices/bus/ti99/peb/tn_usbsm.cpp new file mode 100644 index 00000000000..8dda313e122 --- /dev/null +++ b/src/devices/bus/ti99/peb/tn_usbsm.cpp @@ -0,0 +1,379 @@ +// license:LGPL-2.1+ +// copyright-holders:Michael Zapf +/**************************************************************************** + + Thierry Nouspikel's USB-SmartMedia card emulation + + This card features three USB ports (two host and one device) and a + SmartMedia interface. The original prototype was designed by Thierry + Nouspikel, and its description was published in 2003; a small series of + approximately 100 printed-circuit boards was ordered shortly afterwards + by various TI users. + + The specs have been published in . + + The USB interface uses a Philips ISP1161A USB controller that supports + USB 2.0 full-speed (12 Mbit/s) and low-speed (1.5 Mbit/s) I/O (high speed + (480 Mbits/sec) is not supported, but it is hardly a problem since TI99 is + too slow to take advantage from high speed). The SmartMedia interface uses + a few TTL buffers. The card also includes an 8MByte StrataFlash FEEPROM + and 1MByte of SRAM for DSR use. + + The card has a 8-bit->16-bit demultiplexer that can be set-up to assume + either that the LSByte of a word is accessed first or that the MSByte of a word + is accessed first. The former is true with ti-99/4(a), the latter with the + tms9995 CPU used by Geneve and ti-99/8. + + TODO: + * Test SmartMedia support + * Implement USB controller and assorted USB devices + * Save DSR FEEPROM to disk + + Original code by Raphael Nabet, 2004. + + Michael Zapf + September 2010: Rewritten as device + February 2012: Rewritten as class + + FIXME: Completely untested and likely to be broken + +*****************************************************************************/ + +#include "emu.h" +#include "tn_usbsm.h" + +#define STRATA_TAG "strata" + +#define RAM1_TAG "ram512k_lb" +#define RAM2_TAG "ram512k_hb" + +enum +{ + IO_REGS_ENABLE = 0x02, + INT_ENABLE = 0x04, + SM_ENABLE = 0x08, + FEEPROM_WRITE_ENABLE = 0x10 +}; + +nouspikel_usb_smartmedia_device::nouspikel_usb_smartmedia_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : ti_expansion_card_device(mconfig, TI99_USBSM, tag, owner, clock), + m_feeprom_page(0), + m_sram_page(0), + m_cru_register(0), + m_tms9995_mode(false), + m_enable_io(false), + m_enable_int(false), + m_enable_sm(false), + m_write_flash(false), + m_input_latch(0), + m_output_latch(0), + m_ram_lb(*this, RAM1_TAG), + m_ram_hb(*this, RAM2_TAG), + m_smartmedia(*this, "smartmedia"), + m_flash(*this, STRATA_TAG) +{ +} + +/* + CRU read +*/ +READ8Z_MEMBER(nouspikel_usb_smartmedia_device::crureadz) +{ + if ((offset & 0xff00)==m_cru_base) + { + uint8_t reply = 0; + offset &= 3; + + if (offset == 0) + { + // bit + // 0 >1x00 0: USB Host controller requests interrupt. + // 1 >1x02 0: USB Device controller requests interrupt. + // 2 >1x04 1: USB Host controller suspended. + // 3 >1x06 1: USB Device controller suspended. + // 4 >1x08 0: Strata FEEPROM is busy. + // 1: Strata FEEPROM is ready. + // 5 >1x0A 0: SmartMedia card is busy. + // 1: SmartMedia card absent or ready. + // 6 >1x0C 0: No SmartMedia card present. + // 1: A card is in the connector. + // 7 >1x0E 0: SmartMedia card is protected. + // 1: Card absent or not protected. + + reply = 0x33; + if (!m_smartmedia->is_present()) + reply |= 0xc0; + else if (!m_smartmedia->is_protected()) + reply |= 0x80; + } + *value = reply; + } +} + +/* + CRU write +*/ +WRITE8_MEMBER(nouspikel_usb_smartmedia_device::cruwrite) +{ + if ((offset & 0xff00)==m_cru_base) + { + int bit = (offset >> 1) & 0x1f; + + switch (bit) + { + case 0: + m_selected = data; + break; + case 1: + // enable I/O registers + m_enable_io = data; + break; + case 2: + // enable interrupts + m_enable_int = data; + break; + case 3: + // enable SmartMedia card + m_enable_sm = data; + break; + case 4: + // enable FEEPROM writes (and disable reads) + m_write_flash = data; + break; + case 5: /* FEEPROM page */ + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + if (data) + m_feeprom_page |= 1 << (bit-5); + else + m_feeprom_page &= ~ (1 << (bit-5)); + break; + + case 16: /* SRAM page */ + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 23: + if (data) + m_sram_page |= 1 << (bit-16); + else + m_sram_page &= ~ (1 << (bit-16)); + break; + } + } +} + +/* + Memory read + TODO: Check whether AMA/B/C is actually checked +*/ +READ8Z_MEMBER(nouspikel_usb_smartmedia_device::readz) +{ + if (machine().side_effect_disabled()) return; + + if (((offset & m_select_mask)==m_select_value) && m_selected) + { + if (m_tms9995_mode ? (!(offset & 1)) : (offset & 1)) + { + // first read triggers 16-bit read cycle + + if (offset < 0x5000) + { + // 0x4000-0x4fff range + if (m_enable_io && (offset >= 0x4ff0)) + { + // SmartMedia interface (4ff0-4ff7) + if ((offset & 8) == 0) + m_input_latch = m_smartmedia->data_r() << 8; + } + else + { + // FEEPROM + if (!m_write_flash) + m_input_latch = m_flash->read16(space, (offset>>1)&0xffff); + } + } + else + { + // 0x5000-0x5fff range + if (m_enable_io && (offset >= 0x5ff0)) + { + // USB controller. Not implemented. + logerror("tn_usbsm: Reading from USB\n"); + } + else + { + // SRAM + int ramaddr = m_sram_page*0x800+((offset>>1)&0x07ff); + m_input_latch = ((m_ram_hb->pointer()[ramaddr] & 0xff) << 8) | (m_ram_lb->pointer()[ramaddr] & 0xff); + } + } + } + + // return latched input + *value = ((offset & 1) ? (m_input_latch) : (m_input_latch >> 8)) & 0xff; + } +} + +/* + Memory write. The controller is 16 bit, so we need to demultiplex again. +*/ +WRITE8_MEMBER(nouspikel_usb_smartmedia_device::write) +{ + if (machine().side_effect_disabled()) return; + + if (((offset & m_select_mask)==m_select_value) && m_selected) + { + /* latch write */ + if (offset & 1) + m_output_latch = (m_output_latch & 0xff00) | data; + else + m_output_latch = (m_output_latch & 0x00ff) | (data << 8); + + if ((m_tms9995_mode)? (offset & 1) : (!(offset & 1))) + { + // second write triggers 16-bit write cycle + if (offset < 0x5000) + { + // 0x4000-0x4fff range + if (m_enable_io && (offset >= 0x4ff0)) + { + // SmartMedia interface + switch (offset & 3) + { + case 0: + m_smartmedia->data_w(m_output_latch >> 8); + break; + case 1: + m_smartmedia->address_w(m_output_latch >> 8); + break; + case 2: + m_smartmedia->command_w(m_output_latch >> 8); + break; + case 3: + /* bogus, don't use(?) */ + break; + } + } + else + { // FEEPROM + if (m_write_flash) + m_flash->write16(space, (offset>>1)&0xffff, m_output_latch); + } + } + else + { /* 0x5000-0x5fff range */ + if (m_enable_io && (offset >= 0x5ff0)) + { + // USB controller. Not implemented. + logerror("tn_usbsm: Writing to USB controller.\n"); + } + else + { // SRAM + int ramaddr = m_sram_page*0x800+((offset>>1)&0x07ff); + m_ram_lb->pointer()[ramaddr] = (m_output_latch & 0xff); + m_ram_hb->pointer()[ramaddr] = (m_output_latch >> 8) & 0xff; + } + } + } + } +} + +void nouspikel_usb_smartmedia_device::device_start() +{ + save_item(NAME(m_feeprom_page)); + save_item(NAME(m_sram_page)); + save_item(NAME(m_cru_register)); + save_item(NAME(m_tms9995_mode)); + save_item(NAME(m_enable_io)); + save_item(NAME(m_enable_int)); + save_item(NAME(m_enable_sm)); + save_item(NAME(m_write_flash)); + save_item(NAME(m_input_latch)); + save_item(NAME(m_output_latch)); +} + +void nouspikel_usb_smartmedia_device::device_reset() +{ + m_feeprom_page = 0; + m_sram_page = 0; + m_cru_register = 0; + m_tms9995_mode = (ioport("BYTEORDER")->read() == 0x01); + m_enable_io = false; + m_enable_int = false; + m_enable_sm = false; + m_write_flash = false; + + if (m_genmod) + { + m_select_mask = 0x1fe000; + m_select_value = 0x174000; + } + else + { + m_select_mask = 0x7e000; + m_select_value = 0x74000; + } + m_selected = false; + + m_cru_base = ioport("CRUUSBSM")->read(); +} + +INPUT_PORTS_START( tn_usbsm ) + PORT_START( "CRUUSBSM" ) + PORT_DIPNAME( 0x1f00, 0x1600, "USB/Smartmedia CRU base" ) + PORT_DIPSETTING( 0x1000, "1000" ) + PORT_DIPSETTING( 0x1100, "1100" ) + PORT_DIPSETTING( 0x1200, "1200" ) + PORT_DIPSETTING( 0x1300, "1300" ) + PORT_DIPSETTING( 0x1400, "1400" ) + PORT_DIPSETTING( 0x1500, "1500" ) + PORT_DIPSETTING( 0x1600, "1600" ) + PORT_DIPSETTING( 0x1700, "1700" ) + PORT_DIPSETTING( 0x1800, "1800" ) + PORT_DIPSETTING( 0x1900, "1900" ) + PORT_DIPSETTING( 0x1a00, "1A00" ) + PORT_DIPSETTING( 0x1b00, "1B00" ) + PORT_DIPSETTING( 0x1c00, "1C00" ) + PORT_DIPSETTING( 0x1d00, "1D00" ) + PORT_DIPSETTING( 0x1e00, "1E00" ) + PORT_DIPSETTING( 0x1f00, "1F00" ) + PORT_START( "BYTEORDER" ) + PORT_DIPNAME( 0x01, 0x00, "Multiplex mode" ) + PORT_DIPSETTING( 0x00, "TI mode") + PORT_DIPSETTING( 0x01, "Geneve mode") +INPUT_PORTS_END + +MACHINE_CONFIG_FRAGMENT( tn_usbsm ) + MCFG_DEVICE_ADD("smartmedia", SMARTMEDIA, 0) + MCFG_STRATAFLASH_ADD(STRATA_TAG) + MCFG_RAM_ADD(RAM1_TAG) + MCFG_RAM_DEFAULT_SIZE("512k") + MCFG_RAM_DEFAULT_VALUE(0) + MCFG_RAM_ADD(RAM2_TAG) + MCFG_RAM_DEFAULT_SIZE("512k") + MCFG_RAM_DEFAULT_VALUE(0) +MACHINE_CONFIG_END + +machine_config_constructor nouspikel_usb_smartmedia_device::device_mconfig_additions() const +{ + return MACHINE_CONFIG_NAME( tn_usbsm ); +} + +ioport_constructor nouspikel_usb_smartmedia_device::device_input_ports() const +{ + return INPUT_PORTS_NAME(tn_usbsm); +} + +DEFINE_DEVICE_TYPE(TI99_USBSM, nouspikel_usb_smartmedia_device, "ti99_usbsm", "Nouspikel USB/Smartmedia card") diff --git a/src/devices/bus/ti99/peb/tn_usbsm.h b/src/devices/bus/ti99/peb/tn_usbsm.h new file mode 100644 index 00000000000..285533a572e --- /dev/null +++ b/src/devices/bus/ti99/peb/tn_usbsm.h @@ -0,0 +1,63 @@ +// license:LGPL-2.1+ +// copyright-holders:Michael Zapf +/**************************************************************************** + + Nouspikel USB / SmartMedia interface card + See tn_usbsm.c for documentation + + Michael Zapf + + February 2012: Rewritten as class + +*****************************************************************************/ + +#ifndef MAME_BUS_TI99_PEB_TN_USBSM_H +#define MAME_BUS_TI99_PEB_TN_USBSM_H + +#pragma once + +#include "peribox.h" +#include "machine/smartmed.h" +#include "machine/strata.h" +#include "machine/ram.h" + +DECLARE_DEVICE_TYPE(TI99_USBSM, nouspikel_usb_smartmedia_device) + +class nouspikel_usb_smartmedia_device : public ti_expansion_card_device +{ +public: + nouspikel_usb_smartmedia_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + DECLARE_READ8Z_MEMBER(readz) override; + DECLARE_WRITE8_MEMBER(write) override; + + DECLARE_READ8Z_MEMBER(crureadz) override; + DECLARE_WRITE8_MEMBER(cruwrite) override; + +protected: + virtual void device_start() override; + virtual void device_reset() override; + virtual machine_config_constructor device_mconfig_additions() const override; + virtual ioport_constructor device_input_ports() const override; + +private: + + int m_feeprom_page; + int m_sram_page; + int m_cru_register; + bool m_tms9995_mode; + + bool m_enable_io; + bool m_enable_int; + bool m_enable_sm; + bool m_write_flash; + + uint16_t m_input_latch; + uint16_t m_output_latch; + + required_device m_ram_lb; + required_device m_ram_hb; + required_device m_smartmedia; + required_device m_flash; +}; + +#endif // MAME_BUS_TI99_PEB_TN_USBSM_H diff --git a/src/devices/bus/ti99_peb/bwg.cpp b/src/devices/bus/ti99_peb/bwg.cpp deleted file mode 100644 index 0da1717e169..00000000000 --- a/src/devices/bus/ti99_peb/bwg.cpp +++ /dev/null @@ -1,731 +0,0 @@ -// license:LGPL-2.1+ -// copyright-holders:Michael Zapf -/******************************************************************************* - SNUG BwG Disk Controller - Based on WD1773 - Double Density, Double-sided - - * Supports Double Density. - * As this card includes its own RAM, it does not need to allocate a portion - of VDP RAM to store I/O buffers. - * Includes a MM58274C RTC. - * Support an additional floppy drive, for a total of 4 floppies. - - Reference: - * BwG Disketten-Controller: Beschreibung der DSR (Description of the DSR) - - - +------------------------+ - | 32 KiB EPROM | --- 1 of 4 pages--> 4000 +------------------+ - | | | DSR space | - +------------------------+ | (Driver) | - | 2 KiB RAM | --- 1 of 2 pages--> 5c00 +------------------+ - +------------------------+ | RAM buffer | - 5fe0 +------------------+ - | RTC or WD1773 | - 5fff +------------------+ - - Michael Zapf, September 2010 - January 2012: rewritten as class (MZ) - February 2014: rewritten for new floppy subsystem (MZ) - - Known issues (Feb 2014): - - - The BwG controller cannot run with the Geneve or other non-9900 computers. - The reason for that is the wait state logic. It assumes that when - executing MOVB @>5FF6,*R2, first a value from 5FF7 is attempted to be read, - just as the TI console does. In that case, wait states are inserted if - necessary. The Geneve, however, will try to read a single byte from 5FF6 - only and therefore circumvent the wait state generation. This is in fact - not an emulation glitch but the behavior of the real expansion card. - - -*******************************************************************************/ - -#include "emu.h" -#include "peribox.h" -#include "bwg.h" -#include "formats/ti99_dsk.h" -#include "imagedev/flopdrv.h" - -// ---------------------------------- -// Flags for debugging - -// Show read and write accesses -#define TRACE_RW 0 - -// Show CRU bit accesses -#define TRACE_CRU 0 - -// Show ready line activity -#define TRACE_READY 0 - -// Show detailed signal activity -#define TRACE_SIGNALS 0 - -// Show sector data -#define TRACE_DATA 0 - -// Show address bus operations -#define TRACE_ADDRESS 0 - -// Show address bus operations -#define TRACE_MOTOR 0 - -// ---------------------------------- - -#define MOTOR_TIMER 1 -#define CLOCK_TAG "mm58274c" -#define FDC_TAG "wd1773" - -#define BUFFER "ram" - -/* - Modern implementation -*/ - -snug_bwg_device::snug_bwg_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : ti_expansion_card_device(mconfig, TI99_BWG, "SNUG BwG Floppy Controller", tag, owner, clock, "ti99_bwg", __FILE__), - m_DRQ(), m_IRQ(), m_dip1(0), m_dip2(0), m_dip34(0), m_ram_page(0), - m_rom_page(0), m_WAITena(false), m_inDsrArea(false), m_WDsel(false), - m_WDsel0(false), m_RTCsel(false), m_lastK(false), m_dataregLB(false), - m_rtc_enabled(false), m_MOTOR_ON(), m_lastval(0), m_address(0), - m_DSEL(0), m_SIDSEL(), m_motor_on_timer(nullptr), m_dsrrom(nullptr), - m_buffer_ram(*this, BUFFER), m_current_floppy(nullptr), - m_wd1773(*this, FDC_TAG), - m_clock(*this, CLOCK_TAG) { } - -/* - Operate the wait state logic. -*/ -void snug_bwg_device::operate_ready_line() -{ - // This is the wait state logic - if (TRACE_SIGNALS) logerror("bwg: address=%04x, DRQ=%d, INTRQ=%d, MOTOR=%d\n", m_address & 0xffff, m_DRQ, m_IRQ, m_MOTOR_ON); - line_state nready = (m_dataregLB && // Are we accessing 5ff7 - m_WAITena && // and the wait state generation is active (SBO 2) - (m_DRQ==CLEAR_LINE) && // and we are waiting for a byte - (m_IRQ==CLEAR_LINE) && // and there is no interrupt yet - (m_MOTOR_ON==ASSERT_LINE) // and the motor is turning? - )? ASSERT_LINE : CLEAR_LINE; // In that case, clear READY and thus trigger wait states - - if (TRACE_READY) if (nready==ASSERT_LINE) logerror("bwg: READY line = %d\n", (nready==CLEAR_LINE)? 1:0); - m_slot->set_ready((nready==CLEAR_LINE)? ASSERT_LINE : CLEAR_LINE); -} - -/* - Callbacks from the WD1773 chip -*/ -WRITE_LINE_MEMBER( snug_bwg_device::fdc_irq_w ) -{ - if (TRACE_SIGNALS) logerror("bwg: set intrq = %d\n", state); - m_IRQ = (line_state)state; - // Unlike the TI FDC, the BwG does not set the INTB line. Anyway, no one cares. - // We need to explicitly set the READY line to release the datamux - operate_ready_line(); -} - -WRITE_LINE_MEMBER( snug_bwg_device::fdc_drq_w ) -{ - if (TRACE_SIGNALS) logerror("bwg: set drq = %d\n", state); - m_DRQ = (line_state)state; - - // We need to explicitly set the READY line to release the datamux - operate_ready_line(); -} - -SETADDRESS_DBIN_MEMBER( snug_bwg_device::setaddress_dbin ) -{ - // Do not allow setaddress for debugger - if (machine().side_effect_disabled()) return; - - // Selection login in the PAL and some circuits on the board - - // Is the card being selected? - m_address = offset; - m_inDsrArea = ((m_address & m_select_mask)==m_select_value); - - if (!m_inDsrArea) return; - - if (TRACE_ADDRESS) logerror("bwg: set address = %04x\n", offset & 0xffff); - - // Is the WD chip on the card being selected? - // We need the even and odd addresses for the wait state generation, - // but only the even addresses when we access it - m_WDsel0 = m_inDsrArea && !m_rtc_enabled - && ((state==ASSERT_LINE && ((m_address & 0x1ff8)==0x1ff0)) // read - || (state==CLEAR_LINE && ((m_address & 0x1ff8)==0x1ff8))); // write - - m_WDsel = m_WDsel0 && WORD_ALIGNED(m_address); - - // Is the RTC selected on the card? (even addr) - m_RTCsel = m_inDsrArea && m_rtc_enabled && ((m_address & 0x1fe1)==0x1fe0); - - // RTC disabled: - // 5c00 - 5fef: RAM - // 5ff0 - 5fff: Controller (f0 = status, f2 = track, f4 = sector, f6 = data) - - // RTC enabled: - // 5c00 - 5fdf: RAM - // 5fe0 - 5fff: Clock (even addr) - - // Is RAM selected? We just check for the last 1K and let the RTC or WD - // just take control before - m_lastK = m_inDsrArea && ((m_address & 0x1c00)==0x1c00); - - // Is the data register port of the WD being selected? - // In fact, the address to read the data from is 5FF6, but the TI-99 datamux - // fetches both bytes from 5FF7 and 5FF6, the odd one first. The BwG uses - // the odd address to operate the READY line - m_dataregLB = m_WDsel0 && ((m_address & 0x07)==0x07); - - // Clear or assert the outgoing READY line - operate_ready_line(); -} - -/* - Access for debugger. This is a stripped-down version of the - main methods below. We only allow ROM and RAM access. -*/ -void snug_bwg_device::debug_read(offs_t offset, uint8_t* value) -{ - if (((offset & m_select_mask)==m_select_value) && m_selected) - { - if ((offset & 0x1c00)==0x1c00) - { - if ((offset & 0x1fe0)!=0x1fe0) - *value = m_buffer_ram->pointer()[(m_ram_page<<10) | (offset & 0x03ff)]; - } - else - *value = m_dsrrom[(m_rom_page<<13) | (offset & 0x1fff)]; - } -} - -void snug_bwg_device::debug_write(offs_t offset, uint8_t data) -{ - if (((offset & m_select_mask)==m_select_value) && m_selected) - { - if (((offset & 0x1c00)==0x1c00) && ((offset & 0x1fe0)!=0x1fe0)) - m_buffer_ram->pointer()[(m_ram_page<<10) | (m_address & 0x03ff)] = data; - } -} - -/* - Read a byte from ROM, RAM, FDC, or RTC. See setaddress_dbin for selection - logic. -*/ -READ8Z_MEMBER(snug_bwg_device::readz) -{ - if (machine().side_effect_disabled()) - { - debug_read(offset, value); - return; - } - - if (m_inDsrArea && m_selected) - { - // 010x xxxx xxxx xxxx - if (m_lastK) - { - // ...1 11xx xxxx xxxx - if (m_rtc_enabled) - { - if (m_RTCsel) - { - // .... ..11 111x xxx0 - *value = m_clock->read(space, (m_address & 0x001e) >> 1); - if (TRACE_RW) logerror("bwg: read RTC: %04x -> %02x\n", m_address & 0xffff, *value); - } - else - { - *value = m_buffer_ram->pointer()[(m_ram_page<<10) | (m_address & 0x03ff)]; - if (TRACE_RW) logerror("bwg: read ram: %04x (page %d)-> %02x\n", m_address & 0xffff, m_ram_page, *value); - } - } - else - { - if (m_WDsel) - { - // .... ..11 1111 0xx0 - // Note that the value is inverted again on the board, - // so we can drop the inversion - *value = m_wd1773->gen_r((m_address >> 1)&0x03); - if (TRACE_RW) logerror("bwg: read FDC: %04x -> %02x\n", m_address & 0xffff, *value); - if (TRACE_DATA) - { - if ((m_address & 0xffff)==0x5ff6) logerror("%02x ", *value); - else logerror("\n%04x: %02x", m_address&0xffff, *value); - } - } - else - { - *value = m_buffer_ram->pointer()[(m_ram_page<<10) | (m_address & 0x03ff)]; - if (TRACE_RW) logerror("bwg: read ram: %04x (page %d)-> %02x\n", m_address & 0xffff, m_ram_page, *value); - } - } - } - else - { - *value = m_dsrrom[(m_rom_page<<13) | (m_address & 0x1fff)]; - if (TRACE_RW) logerror("bwg: read dsr: %04x (page %d)-> %02x\n", m_address & 0xffff, m_rom_page, *value); - } - } -} - -/* - Write a byte - 4000 - 5bff: ROM, ignore write (4 banks) - - rtc disabled: - 5c00 - 5fef: RAM - 5ff0 - 5fff: Controller (f8 = command, fa = track, fc = sector, fe = data) - - rtc enabled: - 5c00 - 5fdf: RAM - 5fe0 - 5fff: Clock (even addr) -*/ -WRITE8_MEMBER(snug_bwg_device::write) -{ - if (machine().side_effect_disabled()) - { - debug_write(offset, data); - return; - } - - if (m_inDsrArea && m_selected) - { - if (m_lastK) - { - if (m_rtc_enabled) - { - if (m_RTCsel) - { - // .... ..11 111x xxx0 - if (TRACE_RW) logerror("bwg: write RTC: %04x <- %02x\n", m_address & 0xffff, data); - m_clock->write(space, (m_address & 0x001e) >> 1, data); - } - else - { - if (TRACE_RW) logerror("bwg: write ram: %04x (page %d) <- %02x\n", m_address & 0xffff, m_ram_page, data); - m_buffer_ram->pointer()[(m_ram_page<<10) | (m_address & 0x03ff)] = data; - } - } - else - { - if (m_WDsel) - { - // .... ..11 1111 1xx0 - // Note that the value is inverted again on the board, - // so we can drop the inversion - if (TRACE_RW) logerror("bwg: write FDC: %04x <- %02x\n", m_address & 0xffff, data); - m_wd1773->gen_w((m_address >> 1)&0x03, data); - } - else - { - if (TRACE_RW) logerror("bwg: write ram: %04x (page %d) <- %02x\n", m_address & 0xffff, m_ram_page, data); - m_buffer_ram->pointer()[(m_ram_page<<10) | (m_address & 0x03ff)] = data; - } - } - } - } -} - -/* - CRU read handler. *=inverted. - bit 0: DSK4 connected* - bit 1: DSK1 connected* - bit 2: DSK2 connected* - bit 3: DSK3 connected* - bit 4: Dip 1 - bit 5: Dip 2 - bit 6: Dip 3 - bit 7: Dip 4 -*/ -READ8Z_MEMBER(snug_bwg_device::crureadz) -{ - uint8_t reply; - - if ((offset & 0xff00)==m_cru_base) - { - if ((offset & 0x00ff)==0) - { - // Check what drives are not connected - reply = ((m_floppy[0] != nullptr)? 0 : 0x02) // DSK1 - | ((m_floppy[1] != nullptr)? 0 : 0x04) // DSK2 - | ((m_floppy[2] != nullptr)? 0 : 0x08) // DSK3 - | ((m_floppy[3] != nullptr)? 0 : 0x01); // DSK4 - - // DIP switches for step and date/time display - if (m_dip1 != 0) reply |= 0x10; - if (m_dip2 != 0) reply |= 0x20; - - // DIP switches for drive range selection - // 00 = only DSK1; 01 = DSK1+DSK2, 10=DSK1+DSK2+DSK3, 11=all - reply |= (m_dip34 << 6); - - // Invert all - *value = ~reply; - } - else - *value = 0; - if (TRACE_CRU) logerror("bwg: Read CRU = %02x\n", *value); - } -} - -WRITE8_MEMBER(snug_bwg_device::cruwrite) -{ -// int drive, drivebit; - - if ((offset & 0xff00)==m_cru_base) - { - int bit = (offset >> 1) & 0x0f; - switch (bit) - { - case 0: - /* (De)select the card. Indicated by a LED on the board. */ - m_selected = (data != 0); - if (TRACE_CRU) logerror("bwg: Map DSR (bit 0) = %d\n", m_selected); - break; - - case 1: - // Activate motor - if (data==1 && m_lastval==0) - { // on rising edge, set motor_running for 4.23s - if (TRACE_CRU) logerror("bwg: trigger motor (bit 1)\n"); - set_floppy_motors_running(true); - } - m_lastval = data; - break; - - case 2: - /* Set disk ready/hold (bit 2) */ - // 0: ignore IRQ and DRQ - // 1: TMS9900 is stopped until IRQ or DRQ are set - // OR the motor stops rotating - rotates for 4.23s after write - // to CRU bit 1 - if (TRACE_CRU) logerror("bwg: arm wait state logic (bit 2) = %d\n", data); - m_WAITena = (data != 0); - break; - - case 3: - // Load disk heads (HLT pin) (bit 3). Not implemented. - if (TRACE_CRU) logerror("bwg: set head load (bit 3) = %d\n", data); - break; - - case 4: - // Select drive 0-2 (DSK1-DSK3) (bits 4-6) - m_DSEL = (data != 0)? (m_DSEL | 0x01) : (m_DSEL & 0xfe); - set_drive(); - break; - case 5: - m_DSEL = (data != 0)? (m_DSEL | 0x02) : (m_DSEL & 0xfd); - set_drive(); - break; - case 6: - m_DSEL = (data != 0)? (m_DSEL | 0x04) : (m_DSEL & 0xfb); - set_drive(); - break; - - case 7: - // Select side of disk (bit 7) - m_SIDSEL = (data==1)? ASSERT_LINE : CLEAR_LINE; - if (TRACE_CRU) logerror("bwg: set side (bit 7) = %d\n", data); - if (m_current_floppy != nullptr) m_current_floppy->ss_w(data); - break; - - case 8: - // Select drive 3 (DSK4) (bit 8) */ - m_DSEL = (data != 0)? (m_DSEL | 0x08) : (m_DSEL & 0xf7); - set_drive(); - break; - - case 10: - /* double density enable (active low) */ - if (TRACE_CRU) logerror("bwg: set double density (bit 10) = %d\n", data); - m_wd1773->dden_w(data != 0); - break; - - case 11: - /* EPROM A13 */ - if (data != 0) - m_rom_page |= 1; - else - m_rom_page &= 0xfe; // 11111110 - if (TRACE_CRU) logerror("bwg: set ROM page (bit 11) = %d, page = %d\n", bit, m_rom_page); - break; - - case 13: - /* RAM A10 */ - m_ram_page = data; - if (TRACE_CRU) logerror("bwg: set RAM page (bit 13) = %d, page = %d\n", bit, m_ram_page); - break; - - case 14: - /* Override FDC with RTC (active high) */ - if (TRACE_CRU) logerror("bwg: turn on RTC (bit 14) = %d\n", data); - m_rtc_enabled = (data != 0); - break; - - case 15: - /* EPROM A14 */ - if (data != 0) - m_rom_page |= 2; - else - m_rom_page &= 0xfd; // 11111101 - if (TRACE_CRU) logerror("bwg: set ROM page (bit 15) = %d, page = %d\n", bit, m_rom_page); - break; - - case 9: - case 12: - /* Unused (bit 3, 9 & 12) */ - if (TRACE_CRU) logerror("bwg: set unknown bit %d = %d\n", bit, data); - break; - } - } -} - -/* - Set the current drive. See also ti_fdc.c -*/ -void snug_bwg_device::set_drive() -{ - if (TRACE_CRU) logerror("bwg: new DSEL = %d\n", m_DSEL); - - if ((m_DSEL != 0) && (m_DSEL != 1) && (m_DSEL != 2) && (m_DSEL != 4) && (m_DSEL != 8)) - { - logerror("bwg: Warning - multiple drives selected\n"); - } - - // The schematics do not reveal any countermeasures against multiple selection - // so we assume that the highest value wins. - - int bits = m_DSEL & 0x0f; - int i = -1; - - while (bits != 0) - { - bits >>= 1; - i++; - } - if (i != -1) - { - m_current_floppy = m_floppy[i]; - if (TRACE_CRU) logerror("bwg: Selected floppy %d\n", i); - } - else - { - m_current_floppy = nullptr; - if (TRACE_CRU) logerror("bwg: All drives deselected\n"); - } - m_wd1773->set_floppy(m_current_floppy); -} - -/* - Monoflop has gone back to the OFF state. -*/ -void snug_bwg_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) -{ - set_floppy_motors_running(false); -} - -/* - All floppy motors are operated by the same line. -*/ -void snug_bwg_device::set_floppy_motors_running(bool run) -{ - if (run) - { - if (TRACE_MOTOR) - if (m_MOTOR_ON==CLEAR_LINE) logerror("bwg: Motor START\n"); - m_MOTOR_ON = ASSERT_LINE; - m_motor_on_timer->adjust(attotime::from_msec(4230)); - } - else - { - if (TRACE_MOTOR) - if (m_MOTOR_ON==ASSERT_LINE) logerror("bwg: Motor STOP\n"); - m_MOTOR_ON = CLEAR_LINE; - } - - // The motor-on line is connected to pin 20 which is falsely called "MO" - // in the schematics; should be called "READY" as we are using the WD1773. - m_wd1773->set_force_ready(run); - - // Set all motors - for (auto & elem : m_floppy) - if (elem != nullptr) elem->mon_w((run)? 0 : 1); - - // The motor-on line also connects to the wait state logic - operate_ready_line(); -} - -void snug_bwg_device::device_start(void) -{ - logerror("bwg: BWG start\n"); - m_dsrrom = memregion(DSRROM)->base(); - m_motor_on_timer = timer_alloc(MOTOR_TIMER); - m_cru_base = 0x1100; - - save_item(NAME(m_DRQ)); - save_item(NAME(m_IRQ)); - save_item(NAME(m_dip1)); - save_item(NAME(m_dip2)); - save_item(NAME(m_dip34)); - save_item(NAME(m_ram_page)); - save_item(NAME(m_rom_page)); - save_item(NAME(m_WAITena)); - save_item(NAME(m_inDsrArea)); - save_item(NAME(m_WDsel)); - save_item(NAME(m_WDsel0)); - save_item(NAME(m_RTCsel)); - save_item(NAME(m_lastK)); - save_item(NAME(m_dataregLB)); - save_item(NAME(m_rtc_enabled)); - save_item(NAME(m_MOTOR_ON)); - save_item(NAME(m_lastval)); - save_item(NAME(m_address)); - save_item(NAME(m_DSEL)); - save_item(NAME(m_SIDSEL)); -} - -void snug_bwg_device::device_reset() -{ - logerror("bwg: BWG reset\n"); - - if (m_genmod) - { - m_select_mask = 0x1fe000; - m_select_value = 0x174000; - } - else - { - m_select_mask = 0x7e000; - m_select_value = 0x74000; - } - - m_lastval = 0; - - m_DRQ = CLEAR_LINE; - m_IRQ = CLEAR_LINE; - m_MOTOR_ON = CLEAR_LINE; - - m_SIDSEL = CLEAR_LINE; - - m_wd1773->set_force_ready(false); - - m_DSEL = 0; - m_WAITena = false; - m_selected = false; - m_rtc_enabled = false; - m_dataregLB = false; - m_lastK = false; - m_RTCsel = false; - m_inDsrArea = false; - m_address = 0; - m_WDsel = false; - m_WDsel0 = false; - - for (int i=0; i < 4; i++) - { - if (m_floppy[i] != nullptr) - logerror("bwg: Connector %d with %s\n", i, m_floppy[i]->name()); - else - logerror("bwg: Connector %d has no floppy attached\n", i); - } - - m_wd1773->set_floppy(m_current_floppy = m_floppy[0]); - - m_dip1 = ioport("BWGDIP1")->read(); - m_dip2 = ioport("BWGDIP2")->read(); - m_dip34 = ioport("BWGDIP34")->read(); - - m_rom_page = 0; - m_ram_page = 0; -} - -void snug_bwg_device::device_config_complete() -{ - for (auto & elem : m_floppy) - elem = nullptr; - - // Seems to be null when doing a "-listslots" - if (subdevice("0")!=nullptr) m_floppy[0] = static_cast(subdevice("0")->subdevices().first()); - if (subdevice("1")!=nullptr) m_floppy[1] = static_cast(subdevice("1")->subdevices().first()); - if (subdevice("2")!=nullptr) m_floppy[2] = static_cast(subdevice("2")->subdevices().first()); - if (subdevice("3")!=nullptr) m_floppy[3] = static_cast(subdevice("3")->subdevices().first()); -} - -INPUT_PORTS_START( bwg_fdc ) - PORT_START( "BWGDIP1" ) - PORT_DIPNAME( 0x01, 0x00, "BwG step rate" ) - PORT_DIPSETTING( 0x00, "6 ms") - PORT_DIPSETTING( 0x01, "20 ms") - - PORT_START( "BWGDIP2" ) - PORT_DIPNAME( 0x01, 0x00, "BwG date/time display" ) - PORT_DIPSETTING( 0x00, "Hide") - PORT_DIPSETTING( 0x01, "Show") - - PORT_START( "BWGDIP34" ) - PORT_DIPNAME( 0x03, 0x03, "BwG drives" ) - PORT_DIPSETTING( 0x00, "DSK1 only") - PORT_DIPSETTING( 0x01, "DSK1-DSK2") - PORT_DIPSETTING( 0x02, "DSK1-DSK3") - PORT_DIPSETTING( 0x03, "DSK1-DSK4") -INPUT_PORTS_END - -FLOPPY_FORMATS_MEMBER(snug_bwg_device::floppy_formats) - FLOPPY_TI99_SDF_FORMAT, - FLOPPY_TI99_TDF_FORMAT -FLOPPY_FORMATS_END - -static SLOT_INTERFACE_START( bwg_floppies ) - SLOT_INTERFACE( "525dd", FLOPPY_525_DD ) // 40 tracks - SLOT_INTERFACE( "525qd", FLOPPY_525_QD ) // 80 tracks - SLOT_INTERFACE( "35dd", FLOPPY_35_DD ) // 80 tracks -SLOT_INTERFACE_END - -MACHINE_CONFIG_FRAGMENT( bwg_fdc ) - MCFG_WD1773_ADD(FDC_TAG, XTAL_8MHz) - MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(snug_bwg_device, fdc_irq_w)) - MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(snug_bwg_device, fdc_drq_w)) - - MCFG_DEVICE_ADD(CLOCK_TAG, MM58274C, 0) - MCFG_MM58274C_MODE24(1) // 24 hour - MCFG_MM58274C_DAY1(0) // sunday - - MCFG_FLOPPY_DRIVE_ADD("0", bwg_floppies, "525dd", snug_bwg_device::floppy_formats) - MCFG_FLOPPY_DRIVE_SOUND(true) - MCFG_FLOPPY_DRIVE_ADD("1", bwg_floppies, "525dd", snug_bwg_device::floppy_formats) - MCFG_FLOPPY_DRIVE_SOUND(true) - MCFG_FLOPPY_DRIVE_ADD("2", bwg_floppies, nullptr, snug_bwg_device::floppy_formats) - MCFG_FLOPPY_DRIVE_SOUND(true) - MCFG_FLOPPY_DRIVE_ADD("3", bwg_floppies, nullptr, snug_bwg_device::floppy_formats) - MCFG_FLOPPY_DRIVE_SOUND(true) - - MCFG_RAM_ADD(BUFFER) - MCFG_RAM_DEFAULT_SIZE("2K") - MCFG_RAM_DEFAULT_VALUE(0) -MACHINE_CONFIG_END - -ROM_START( bwg_fdc ) - ROM_REGION(0x8000, DSRROM, 0) - ROM_LOAD("bwg_dsr.u15", 0x0000, 0x8000, CRC(06f1ec89) SHA1(6ad77033ed268f986d9a5439e65f7d391c4b7651)) /* BwG disk DSR ROM */ -ROM_END - -machine_config_constructor snug_bwg_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( bwg_fdc ); -} - -ioport_constructor snug_bwg_device::device_input_ports() const -{ - return INPUT_PORTS_NAME( bwg_fdc ); -} - -const tiny_rom_entry *snug_bwg_device::device_rom_region() const -{ - return ROM_NAME( bwg_fdc ); -} - -const device_type TI99_BWG = device_creator; diff --git a/src/devices/bus/ti99_peb/bwg.h b/src/devices/bus/ti99_peb/bwg.h deleted file mode 100644 index cdebe19bad0..00000000000 --- a/src/devices/bus/ti99_peb/bwg.h +++ /dev/null @@ -1,137 +0,0 @@ -// license:LGPL-2.1+ -// copyright-holders:Michael Zapf -/**************************************************************************** - - SNUG BwG Disk Controller - Based on WD1770 - Double Density, Double-sided - - Michael Zapf, September 2010 - February 2012: Rewritten as class - -*****************************************************************************/ - -#ifndef __BWG__ -#define __BWG__ - -#include "imagedev/flopdrv.h" -#include "machine/mm58274c.h" -#include "machine/wd_fdc.h" -#include "machine/ram.h" - -extern const device_type TI99_BWG; - -class snug_bwg_device : public ti_expansion_card_device -{ -public: - snug_bwg_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - DECLARE_READ8Z_MEMBER(readz) override; - DECLARE_WRITE8_MEMBER(write) override; - DECLARE_SETADDRESS_DBIN_MEMBER(setaddress_dbin) override; - - DECLARE_READ8Z_MEMBER(crureadz) override; - DECLARE_WRITE8_MEMBER(cruwrite) override; - - DECLARE_FLOPPY_FORMATS( floppy_formats ); - - DECLARE_WRITE_LINE_MEMBER( fdc_irq_w ); - DECLARE_WRITE_LINE_MEMBER( fdc_drq_w ); - -protected: - void device_start() override; - void device_reset() override; - void device_config_complete() override; - - const tiny_rom_entry *device_rom_region() const override; - machine_config_constructor device_mconfig_additions() const override; - ioport_constructor device_input_ports() const override; - -private: - void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; - - // Debugger accessors - void debug_read(offs_t offset, uint8_t* value); - void debug_write(offs_t offset, uint8_t data); - - // Wait state logic - void operate_ready_line(); - - // Set the current floppy - void set_drive(); - - // Holds the status of the DRQ and IRQ lines. - int m_DRQ, m_IRQ; - - // DIP switch state - int m_dip1, m_dip2, m_dip34; - - // Page selection for ROM and RAM - int m_ram_page; // 0-1 - int m_rom_page; // 0-3 - - // Operate the floppy motors - void set_floppy_motors_running(bool run); - - // When true, the READY line will be cleared (create wait states) when - // waiting for data from the controller. - bool m_WAITena; - - // Address in card area - bool m_inDsrArea; - - // WD selected - bool m_WDsel, m_WDsel0; - - // RTC selected - bool m_RTCsel; - - // last 1K area selected - bool m_lastK; - - // Data register +1 selected - bool m_dataregLB; - - // Indicates whether the clock is mapped into the address space. - bool m_rtc_enabled; - - // Signal motor_on. When true, makes all drives turning. - int m_MOTOR_ON; - - // Needed for triggering the motor monoflop - uint8_t m_lastval; - - // Recent address - int m_address; - - /* Indicates which drive has been selected. Values are 0, 1, 2, and 4. */ - // 000 = no drive - // 001 = drive 1 - // 010 = drive 2 - // 100 = drive 3 - int m_DSEL; - - // Signal SIDSEL. 0 or 1, indicates the selected head. - int m_SIDSEL; - - // count 4.23s from rising edge of motor_on - emu_timer* m_motor_on_timer; - - // DSR ROM - uint8_t* m_dsrrom; - - // Buffer RAM - required_device m_buffer_ram; - - // Link to the attached floppy drives - floppy_image_device* m_floppy[4]; - - // Currently selected floppy drive - floppy_image_device* m_current_floppy; - - // Link to the WD1773 controller on the board. - required_device m_wd1773; - - // Link to the real-time clock on the board. - required_device m_clock; -}; -#endif diff --git a/src/devices/bus/ti99_peb/evpc.cpp b/src/devices/bus/ti99_peb/evpc.cpp deleted file mode 100644 index c1657072cc8..00000000000 --- a/src/devices/bus/ti99_peb/evpc.cpp +++ /dev/null @@ -1,498 +0,0 @@ -// license:LGPL-2.1+ -// copyright-holders:Michael Zapf -/**************************************************************************** - SNUG Enhanced Video Processor Card (EVPC) - - This is an expansion card with an own v9938 video processor on board. - Later releases (EVPC2) can also be equipped with a v9958. - - The EVPC is intended to be used - 1. with the TI-99/4A console - 2. with the SGCPU - - For option 1, the console-internal VDP (TMS9928A) must be removed. This, - however, raises a problem, because the video interrupt must now be send - from the EVPC in the Peripheral Expansion Box to the console, but there is - no line in the PEB cable for this purpose. - - To solve this issue, a separate cable is led from the EVPC to the console - which delivers the video interrupt, and also the GROM clock which is also - lost due to the removal of the internal VDP. - - The SGCPU requires this card, as it does not offer any video processor. - In this configuration, the video interrupt cable is not required. - - Also, the SGCPU does not offer a socket for the sound chip of the TI - console, and accordingly, the EVPC also gives the sound chip a new home. - Thus we assume that in the TI console (option 1) the sound chip has - also been removed. - - Important note: The DSR (firmware) of the EVPC expects a memory expansion - to be present; otherwise, the configuration (using CALL EVPC) will crash. - There is no warning if the 32K expansion is not present. - - Michael Zapf - -*****************************************************************************/ - -#include "emu.h" -#include "evpc.h" -#include "speaker.h" - -#define EVPC_CRU_BASE 0x1400 - -#define TRACE_ADDRESS 0 -#define TRACE_CRU 0 -#define TRACE_MEM 0 - -#define NOVRAM_SIZE 256 - -snug_enhanced_video_device::snug_enhanced_video_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) -: ti_expansion_card_device(mconfig, TI99_EVPC, "SNUG Enhanced Video Processor Card", tag, owner, clock, "ti99_evpc", __FILE__), - device_nvram_interface(mconfig, *this), - m_dsr_page(0), - m_inDsrArea(false), - m_novram_accessed(false), - m_palette_accessed(false), - m_RAMEN(false), - m_sound_accessed(false), - m_video_accessed(false), - m_intlevel(0), - m_dsrrom(nullptr), - m_novram(nullptr), - m_video(*this, VDP_TAG), - m_sound(*this, TISOUNDCHIP_TAG), - m_colorbus(*this, COLORBUS_TAG) -{ -} - -SETADDRESS_DBIN_MEMBER( snug_enhanced_video_device::setaddress_dbin ) -{ - // Do not allow setaddress for the debugger. It will mess up the - // setaddress/memory access pairs when the CPU enters wait states. - if (machine().side_effect_disabled()) return; - - if (TRACE_ADDRESS) logerror("set address %04x, %s\n", offset, (state==ASSERT_LINE)? "read" : "write"); - - m_address = offset; - bool reading = (state==ASSERT_LINE); - int offbase = (m_address & 0xfc01); - - // Sound - m_sound_accessed = ((m_address & 0xff01)==0x8400) && !reading; - - // Video space - // 8800 / 8802 / 8804 / 8806 - // 8c00 / 8c02 / 8c04 / 8c06 - // - // Bits 1000 1w00 0000 0xx0 - // Mask 1111 1000 0000 0001 - m_video_accessed = ((offbase==0x8800) && reading) || ((offbase==0x8c00) && !reading); - - // Read a byte in evpc DSR space - // 0x4000 - 0x5eff DSR (paged) - // 0x5f00 - 0x5fef NOVRAM - // 0x5ff0 - 0x5fff Palette - m_inDsrArea = ((m_address & 0xe000)==0x4000); - m_novram_accessed = ((m_address & 0xff00)==0x5f00); - m_palette_accessed = ((m_address & 0xfff0)==0x5ff0); - - // Note that we check the selection in reverse order so that the overlap is avoided -} - -//------------------------------------------------- -// nvram_default - called to initialize NVRAM to -// its default state -//------------------------------------------------- - -void snug_enhanced_video_device::nvram_default() -{ - memset(m_novram.get(), 0, NOVRAM_SIZE); -} - -//------------------------------------------------- -// nvram_read - called to read NVRAM from the -// .nv file -//------------------------------------------------- - -void snug_enhanced_video_device::nvram_read(emu_file &file) -{ - file.read(m_novram.get(), NOVRAM_SIZE); -} - -//------------------------------------------------- -// nvram_write - called to write NVRAM to the -// .nv file -//------------------------------------------------- - -void snug_enhanced_video_device::nvram_write(emu_file &file) -{ - file.write(m_novram.get(), NOVRAM_SIZE); -} - -/* - Read a byte in evpc DSR space, NOVRAM, Palette, or video - 0x4000 - 0x5eff DSR (paged) - 0x5f00 - 0x5fef NOVRAM - 0x5ff0 - 0x5fff Palette (5ff0, 5ff2, 5ff4, 5ff6) -*/ -READ8Z_MEMBER(snug_enhanced_video_device::readz) -{ - if (m_selected && m_inDsrArea) - { - if (m_palette_accessed) - { - switch (m_address & 0x000f) - { - case 0: - // Palette Read Address Register - *value = m_palette.write_index; - break; - - case 2: - // Palette Read Color Value - if (m_palette.read) - { - switch (m_palette.state) - { - case 0: - *value = m_palette.color[m_palette.read_index].red; - break; - case 1: - *value = m_palette.color[m_palette.read_index].green; - break; - case 2: - *value = m_palette.color[m_palette.read_index].blue; - break; - } - m_palette.state++; - if (m_palette.state == 3) - { - m_palette.state = 0; - m_palette.read_index++; - } - } - break; - - case 4: - // Palette Read Pixel Mask - *value = m_palette.mask; - break; - case 6: - // Palette Read Address Register for Color Value - if (m_palette.read) - *value = 0; - else - *value = 3; - break; - } - return; - } - - if (m_novram_accessed && m_RAMEN) - { - // NOVRAM - *value = m_novram[offset & 0x00ff]; - return; - } - - // DSR space - *value = m_dsrrom[(offset & 0x1fff) | (m_dsr_page<<13)]; - return; - } - - if (m_video_accessed) - { - *value = m_video->read(space, m_address>>1); - } -} - -/* - Write a byte in evpc DSR space - 0x4000 - 0x5eff DSR (paged) - 0x5f00 - 0x5fef NOVRAM - 0x5ff0 - 0x5fff Palette (5ff8, 5ffa, 5ffc, 5ffe) -*/ -WRITE8_MEMBER(snug_enhanced_video_device::write) -{ - if (m_selected && m_inDsrArea) - { - if (m_palette_accessed) - { - // Palette - if (TRACE_MEM) logerror("palette write %04x <- %02x\n", offset&0xffff, data); - switch (m_address & 0x000f) - { - case 0x08: - // Palette Write Address Register - if (TRACE_MEM) logerror("EVPC palette address write (for write access)\n"); - m_palette.write_index = data; - m_palette.state = 0; - m_palette.read = 0; - break; - - case 0x0a: - // Palette Write Color Value - if (TRACE_MEM) logerror("EVPC palette color write\n"); - if (!m_palette.read) - { - switch (m_palette.state) - { - case 0: - m_palette.color[m_palette.write_index].red = data; - break; - case 1: - m_palette.color[m_palette.write_index].green = data; - break; - case 2: - m_palette.color[m_palette.write_index].blue = data; - break; - } - m_palette.state++; - if (m_palette.state == 3) - { - m_palette.state = 0; - m_palette.write_index++; - } - //evpc_palette.dirty = 1; - } - break; - - case 0x0c: - // Palette Write Pixel Mask - if (TRACE_MEM) logerror("EVPC palette mask write\n"); - m_palette.mask = data; - break; - - case 0x0e: - // Palette Write Address Register for Color Value - if (TRACE_MEM) logerror("EVPC palette address write (for read access)\n"); - m_palette.read_index = data; - m_palette.state = 0; - m_palette.read = 1; - break; - - } - return; - } - - if (m_novram_accessed && m_RAMEN) - { - // NOVRAM - m_novram[offset & 0x00ff] = data; - return; - } - } - - if (m_video_accessed) - { - m_video->write(space, m_address>>1, data); - } - - if (m_sound_accessed) - { - m_sound->write(space, 0, data); - } -} - -/* - The CRU read handler. Read EVPC DIP switches - 0: Video timing (PAL/NTSC) - 1: - - 2: charset - 3: RAM shift - 4: - - 5: - - 6: - - 7: DIP or NOVRAM - Logic is inverted -*/ -READ8Z_MEMBER(snug_enhanced_video_device::crureadz) -{ - if ((offset & 0xff00)==EVPC_CRU_BASE) - { - if ((offset & 0x00f0)==0) // offset 0 delivers bits 0-7 (address 00-0f) - { - *value = ~(ioport("EVPC-SW1")->read() | (ioport("EVPC-SW3")->read()<<2) - | (ioport("EVPC-SW4")->read()<<3) | (ioport("EVPC-SW8")->read()<<7)); - } - } -} - -/* - The CRU write handler. - Bit 0: Turn on DSR ROM - Bit 1: DSR page select (bit 0) - Bit 2: - - Bit 3: RAM enable - Bit 4: DSR page select (bit 2) - Bit 5: DSR page select (bit 1) - Bit 6: - - Bit 7: - -*/ -WRITE8_MEMBER(snug_enhanced_video_device::cruwrite) -{ - if ((offset & 0xff00)==EVPC_CRU_BASE) - { - int bit = (offset >> 1) & 0x0f; - switch (bit) - { - case 0: - m_selected = (data!=0); - if (TRACE_CRU) logerror("Map DSR = %d\n", m_selected); - break; - - case 1: - if (data!=0) - m_dsr_page |= 1; - else - m_dsr_page &= ~1; - break; - - case 3: - m_RAMEN = (data!=0); - break; - - case 4: - if (data!=0) - m_dsr_page |= 4; - else - m_dsr_page &= ~4; - break; - - case 5: - if (data!=0) - m_dsr_page |= 2; - else - m_dsr_page &= ~2; - break; - - case 2: - case 6: - case 7: - break; - } - } -} - -/* - READY line for the sound chip -*/ -WRITE_LINE_MEMBER( snug_enhanced_video_device::ready_line ) -{ - m_slot->set_ready(state); -} - -void snug_enhanced_video_device::device_start() -{ - m_dsrrom = memregion(DSRROM)->base(); - m_novram = std::make_unique(NOVRAM_SIZE); - m_console_conn = downcast(machine().device(EVPC_CONN_TAG)); - save_item(NAME(m_address)); - save_item(NAME(m_dsr_page)); - save_item(NAME(m_inDsrArea)); - save_item(NAME(m_novram_accessed)); - save_item(NAME(m_palette_accessed)); - save_item(NAME(m_RAMEN)); - save_item(NAME(m_sound_accessed)); - save_item(NAME(m_video_accessed)); - save_item(NAME(m_intlevel)); -} - -void snug_enhanced_video_device::device_reset() -{ - m_select_mask = 0x7e000; - m_select_value = 0x74000; - m_dsr_page = 0; - m_RAMEN = false; - m_selected = false; -} - -void snug_enhanced_video_device::device_stop() -{ - m_novram = nullptr; -} - -/* - This is the extra cable running from the EVPC card right into the TI console. - It delivers the VDP interrupt and the GROM clock. - - For the SGCPU, the signal is delivered by the LCP line. -*/ -WRITE_LINE_MEMBER( snug_enhanced_video_device::video_interrupt_in ) -{ - // This method is frequently called without level change, so we only - // react on changes - if (state != m_intlevel) - { - m_intlevel = state; - if (m_console_conn != nullptr) m_console_conn->vclock_line(state); - else m_slot->lcp_line(state); - - if (state!=0) m_colorbus->poll(); - } -} - -ROM_START( ti99_evpc ) - ROM_REGION(0x10000, DSRROM, 0) - ROM_LOAD("evpc_dsr.u21", 0, 0x10000, CRC(a062b75d) SHA1(6e8060f86e3bb9c36f244d88825e3fe237bfe9a9)) /* evpc DSR ROM */ -ROM_END - -MACHINE_CONFIG_FRAGMENT( ti99_evpc ) - // video hardware - MCFG_V9938_ADD(VDP_TAG, SCREEN_TAG, 0x20000, XTAL_21_4772MHz) /* typical 9938 clock, not verified */ - MCFG_V99X8_INTERRUPT_CALLBACK(WRITELINE(snug_enhanced_video_device, video_interrupt_in)) - MCFG_V99X8_SCREEN_ADD_NTSC(SCREEN_TAG, VDP_TAG, XTAL_21_4772MHz) - - // Sound hardware - MCFG_SPEAKER_STANDARD_MONO("sound_out") - MCFG_SOUND_ADD(TISOUNDCHIP_TAG, SN94624, 3579545/8) /* 3.579545 MHz */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "sound_out", 0.75) - MCFG_SN76496_READY_HANDLER( WRITELINE(snug_enhanced_video_device, ready_line) ) - - // Mouse connected to the color bus of the v9938 - MCFG_COLORBUS_MOUSE_ADD( COLORBUS_TAG ) - -MACHINE_CONFIG_END - -/* - Input ports for the EPVC -*/ -INPUT_PORTS_START( ti99_evpc ) - PORT_START( "EVPC-SW1" ) - PORT_DIPNAME( 0x01, 0x00, "EVPC video mode" ) PORT_CONDITION( "EVPC-SW8", 0x01, EQUALS, 0x00 ) - PORT_DIPSETTING( 0x00, "PAL" ) - PORT_DIPSETTING( 0x01, "NTSC" ) - - PORT_START( "EVPC-SW3" ) - PORT_DIPNAME( 0x01, 0x00, "EVPC charset" ) PORT_CONDITION( "EVPC-SW8", 0x01, EQUALS, 0x00 ) - PORT_DIPSETTING( 0x00, DEF_STR( International )) - PORT_DIPSETTING( 0x01, DEF_STR( German )) - - PORT_START( "EVPC-SW4" ) - PORT_DIPNAME( 0x01, 0x00, "EVPC VDP RAM" ) PORT_CONDITION( "EVPC-SW8", 0x01, EQUALS, 0x00 ) - PORT_DIPSETTING( 0x00, "shifted" ) - PORT_DIPSETTING( 0x01, "not shifted" ) - - PORT_START( "EVPC-SW8" ) - PORT_DIPNAME( 0x01, 0x00, "EVPC Configuration" ) - PORT_DIPSETTING( 0x00, "DIP" ) - PORT_DIPSETTING( 0x01, "NOVRAM" ) -INPUT_PORTS_END - -const tiny_rom_entry *snug_enhanced_video_device::device_rom_region() const -{ - return ROM_NAME( ti99_evpc ); -} - -ioport_constructor snug_enhanced_video_device::device_input_ports() const -{ - return INPUT_PORTS_NAME(ti99_evpc); -} - -machine_config_constructor snug_enhanced_video_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( ti99_evpc ); -} - -const device_type TI99_EVPC = device_creator; diff --git a/src/devices/bus/ti99_peb/evpc.h b/src/devices/bus/ti99_peb/evpc.h deleted file mode 100644 index 989a048d05b..00000000000 --- a/src/devices/bus/ti99_peb/evpc.h +++ /dev/null @@ -1,87 +0,0 @@ -// license:LGPL-2.1+ -// copyright-holders:Michael Zapf -/**************************************************************************** - - SNUG Enhanced Video Processor Card (evpc) - See evpc.c for documentation. - - Michael Zapf - - October 2010: Rewritten as device - February 2012: Rewritten as class - -*****************************************************************************/ - -#ifndef __EVPC__ -#define __EVPC__ - -#include "peribox.h" -#include "video/v9938.h" -#include "sound/sn76496.h" -#include "bus/ti99x/ti99defs.h" -#include "bus/ti99x/colorbus.h" - -extern const device_type TI99_EVPC; - -struct evpc_palette -{ - uint8_t read_index, write_index, mask; - int read; - int state; - struct { uint8_t red, green, blue; } color[0x100]; - //int dirty; -}; - -class snug_enhanced_video_device : public ti_expansion_card_device, public device_nvram_interface -{ -public: - snug_enhanced_video_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - DECLARE_READ8Z_MEMBER(readz) override; - DECLARE_WRITE8_MEMBER(write) override; - DECLARE_SETADDRESS_DBIN_MEMBER(setaddress_dbin) override; - - DECLARE_WRITE_LINE_MEMBER( ready_line ); - - DECLARE_READ8Z_MEMBER(crureadz) override; - DECLARE_WRITE8_MEMBER(cruwrite) override; - DECLARE_WRITE_LINE_MEMBER( video_interrupt_in ); - - TIMER_DEVICE_CALLBACK_MEMBER( hblank_interrupt ); - -protected: - void device_start(void) override; - void device_reset(void) override; - void device_stop(void) override; - - virtual const tiny_rom_entry *device_rom_region() const override; - virtual ioport_constructor device_input_ports() const override; - machine_config_constructor device_mconfig_additions() const override; - - void nvram_default() override; - void nvram_read(emu_file &file) override; - void nvram_write(emu_file &file) override; - -private: - int m_address; - int m_dsr_page; - bool m_inDsrArea; - bool m_novram_accessed; - bool m_palette_accessed; - bool m_RAMEN; - bool m_sound_accessed; - bool m_video_accessed; - - int m_intlevel; - - uint8_t* m_dsrrom; - - std::unique_ptr m_novram; // NOVRAM area - - evpc_palette m_palette; - required_device m_video; - required_device m_sound; - required_device m_colorbus; - evpc_clock_connector* m_console_conn; -}; - -#endif diff --git a/src/devices/bus/ti99_peb/hfdc.cpp b/src/devices/bus/ti99_peb/hfdc.cpp deleted file mode 100644 index f719d633a5e..00000000000 --- a/src/devices/bus/ti99_peb/hfdc.cpp +++ /dev/null @@ -1,1116 +0,0 @@ -// license:LGPL-2.1+ -// copyright-holders:Michael Zapf -/**************************************************************************** - - Myarc Hard and Floppy Disk Controller ("HFDC") - - The HFDC is based on the HDC9234 controller chip from Standard - Microsystems Corporation (SMC). It can work with up to three MFM hard disk - drives and up to four floppy disk drives. - - Data flow is detached from the main CPU. The HDC transfers data to/from - the drives using direct memory access to attached memory circuits. That - is, to write a sector on a drive the CPU must set up the contents in the - memory, then initiate a sector write operation. - - The advantage is a much higher data rate (in particular important when - working with hard disks) with less load for the main CPU. Also, we do not - need a READY line control (as seen with the WD17xx-based controllers). - Any kinds of asynchronous events are propagated via INTA* (configurable - to INTB*). - - Most of the control logic is hidden in the custom Gate Array chip. We do - not have details on its contents, but the specifications in the HFDC manual - and in the schematics are sufficient to create a (functionally) proper - emulation. - - The HDC9234 can also control tape drives. In early HFDC controller card - layouts, a socket for connecting a drive is available. However, there - never was a support from the DSR (firmware), so this feature was eliminated - in later releases. - - DIP switches - - Settings for step rate and track count for each floppy drive (DSK1-DSK4) - - CRU base address. Note that only on all other addresses than 1100, the - floppy drives are labeled DSK5-DSK8 by the card software. - - - Components - - HDC 9234 - Universal Disk Controller - FDC 9216 - Floppy disk data separator (8 MHz, divider is set by CD0 and CD1) - HDC 92C26 - MFM hard disk data separator (10 MHz, also used for 9234) - HDC 9223 - Analog data separator support - DS 1000-50 - Delay circuit - MM 58274BN - Real time clock - HM 6264-LP15 - SRAM 8K x 8 (may also be 32K x 8) - 27C128 - EPROM 16K x 8 - - References: - [1] Myarc Inc.: Hard and Floppy Disk Controller / Users Manual - - Michael Zapf - July 2015 - -*****************************************************************************/ - -#include "emu.h" -#include "peribox.h" -#include "hfdc.h" -#include "formats/mfm_hd.h" -#include "formats/ti99_dsk.h" // Format - -#define BUFFER "ram" -#define FDC_TAG "hdc9234" -#define CLOCK_TAG "mm58274c" - -#define MOTOR_TIMER 1 - -#define TAPE_ADDR 0x0fc0 -#define HDC_R_ADDR 0x0fd0 -#define HDC_W_ADDR 0x0fd2 -#define CLK_ADDR 0x0fe0 -#define RAM_ADDR 0x1000 - -#define TRACE_EMU 0 -#define TRACE_CRU 0 -#define TRACE_COMP 0 -#define TRACE_RAM 0 -#define TRACE_ROM 0 -#define TRACE_LINES 0 -#define TRACE_MOTOR 0 -#define TRACE_DMA 0 -#define TRACE_INT 0 - -// ========================================================================= - -/* - Constructor for the HFDC card. -*/ -myarc_hfdc_device::myarc_hfdc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : ti_expansion_card_device(mconfig, TI99_HFDC, "Myarc Hard and Floppy Disk Controller", tag, owner, clock, "ti99_hfdc", __FILE__), m_motor_on_timer(nullptr), - m_hdc9234(*this, FDC_TAG), - m_clock(*this, CLOCK_TAG), m_current_floppy(nullptr), - m_current_harddisk(nullptr), m_see_switches(false), - m_irq(), m_dip(), m_motor_running(false), - m_inDsrArea(false), m_HDCsel(false), m_RTCsel(false), - m_tapesel(false), m_RAMsel(false), m_ROMsel(false), m_address(0), - m_wait_for_hd1(false), m_dsrrom(nullptr), m_rom_page(0), - m_buffer_ram(*this, BUFFER), m_status_latch(0), m_dma_address(0), - m_output1_latch(0), m_output2_latch(0), m_lastval(0), m_MOTOR_ON(), m_readyflags(0) -{ -} - -SETADDRESS_DBIN_MEMBER( myarc_hfdc_device::setaddress_dbin ) -{ - // Do not allow setaddress for the debugger. It will mess up the - // setaddress/memory access pairs when the CPU enters wait states. - if (machine().side_effect_disabled()) return; - - // Selection login in the PAL and some circuits on the board - - // Is the card being selected? - // Area = 4000-5fff - // 010x xxxx xxxx xxxx - m_address = offset; - - m_inDsrArea = ((m_address & m_select_mask)==m_select_value); - - if (!m_inDsrArea) return; - - // Is the HDC chip on the card being selected? - // HDC9234: read: 4fd0,4 (mirror 8,c) - // HDC9234: write: 4fd2,6 (mirror a,e) - // read: ...0 1111 1101 xx00 - // write: ...0 1111 1101 xx10 - - m_HDCsel = m_inDsrArea && - ((state==ASSERT_LINE && ((m_address & 0x1ff3)==HDC_R_ADDR)) // read - || (state==CLEAR_LINE && ((m_address & 0x1ff3)==HDC_W_ADDR))); // write - - // Is the tape selected? - // ...0 1111 1100 xxxx - m_tapesel = m_inDsrArea && ((m_address & 0x1ff0)==TAPE_ADDR); - - // Is the RTC selected on the card? (even addr) - // ...0 1111 111x xxx0 - m_RTCsel = m_inDsrArea && ((m_address & 0x1fe1)==CLK_ADDR); - - // Is RAM selected? - // ...1 xxxx xxxx xxxx - m_RAMsel = m_inDsrArea && ((m_address & 0x1000)==RAM_ADDR); - - // Is ROM selected? - // not 0100 1111 11xx xxxx - m_ROMsel = m_inDsrArea && !m_RAMsel && !((m_address & 0x0fc0)==0x0fc0); -} - -/* - Access for debugger. This is a stripped-down version of the - main methods below. We only allow ROM and RAM access. -*/ -void myarc_hfdc_device::debug_read(offs_t offset, uint8_t* value) -{ - if (((offset & m_select_mask)==m_select_value) && m_selected) - { - if ((offset & 0x1000)==RAM_ADDR) - { - int bank = (offset & 0x0c00) >> 10; - *value = m_buffer_ram->pointer()[(m_ram_page[bank]<<10) | (offset & 0x03ff)]; - } - else - { - if ((offset & 0x0fc0)!=0x0fc0) - { - *value = m_dsrrom[(m_rom_page << 12) | (offset & 0x0fff)]; - } - } - } -} - -void myarc_hfdc_device::debug_write(offs_t offset, uint8_t data) -{ - if (((offset & m_select_mask)==m_select_value) && m_selected) - { - if ((offset & 0x1000)==RAM_ADDR) - { - int bank = (offset & 0x0c00) >> 10; - m_buffer_ram->pointer()[(m_ram_page[bank]<<10) | (m_address & 0x03ff)] = data; - } - } -} - -/* - Read a byte from the memory address space of the HFDC - - 0x4000 - 0x4fbf one of four possible ROM pages - 0x4fc0 - 0x4fcf Tape control (only available in prototype HFDC models) - 0x4fd0 - 0x4fdf HDC 9234 ports - 0x4fe0 - 0x4fff RTC chip ports - - 0x5000 - 0x53ff static RAM page 0x08 - 0x5400 - 0x57ff static RAM page any of 32 pages - 0x5800 - 0x5bff static RAM page any of 32 pages - 0x5c00 - 0x5fff static RAM page any of 32 pages - - HFDC manual, p. 44 -*/ -READ8Z_MEMBER(myarc_hfdc_device::readz) -{ - if (machine().side_effect_disabled()) - { - debug_read(offset, value); - return; - } - - if (m_inDsrArea && m_selected) - { - if (m_tapesel) - { - logerror("Tape support not available on this HFDC version (access to address %04x)\n", m_address & 0xffff); - return; - } - - if (m_HDCsel) - { - *value = m_hdc9234->read(space, (m_address>>2)&1, 0xff); - if (TRACE_COMP) logerror("%04x[HDC] -> %02x\n", m_address & 0xffff, *value); - return; - } - - if (m_RTCsel) - { - *value = m_clock->read(space, (m_address & 0x001e) >> 1); - if (TRACE_COMP) logerror("%04x[CLK] -> %02x\n", m_address & 0xffff, *value); - return; - } - - if (m_RAMsel) - { - // 0101 00xx xxxx xxxx static 0x08 - // 0101 01xx xxxx xxxx bank 1 - // 0101 10xx xxxx xxxx bank 2 - // 0101 11xx xxxx xxxx bank 3 - int bank = (m_address & 0x0c00) >> 10; - - // If a DMA is in progress, do not respond - if (m_dip == CLEAR_LINE) *value = m_buffer_ram->pointer()[(m_ram_page[bank]<<10) | (m_address & 0x03ff)]; - if (TRACE_RAM) - { - if (WORD_ALIGNED(m_address)) - { - int valword = (((*value) << 8) | m_buffer_ram->pointer()[(m_ram_page[bank]<<10) | ((m_address+1) & 0x03ff)])&0xffff; - logerror("%04x[%02x] -> %04x\n", m_address & 0xffff, m_ram_page[bank], valword); - } - } - return; - } - - if (m_ROMsel) - { - *value = m_dsrrom[(m_rom_page << 12) | (m_address & 0x0fff)]; - if (TRACE_ROM) - { - if (WORD_ALIGNED(m_address)) - { - int valword = (((*value) << 8) | m_dsrrom[(m_rom_page << 12) | ((m_address + 1) & 0x0fff)])&0xffff; - logerror("%04x[%02x] -> %04x\n", m_address & 0xffff, m_rom_page, valword); - } - } - return; - } - } -} - -/* - Write a byte to the memory address space of the HFDC - - 0x4fc0 - 0x4fcf Tape control (only available in prototype HFDC models) - 0x4fd0 - 0x4fdf HDC 9234 ports - 0x4fe0 - 0x4fff RTC chip ports - - 0x5000 - 0x53ff static RAM page 0x08 - 0x5400 - 0x57ff static RAM page any of 32 pages - 0x5800 - 0x5bff static RAM page any of 32 pages - 0x5c00 - 0x5fff static RAM page any of 32 pages -*/ -WRITE8_MEMBER( myarc_hfdc_device::write ) -{ - if (machine().side_effect_disabled()) - { - debug_write(offset, data); - return; - } - - if (m_inDsrArea && m_selected) - { - if (m_tapesel) - { - logerror("Tape support not available on this HFDC version (write access to address %04x: %02x)\n", m_address & 0xffff, data); - return; - } - - if (m_HDCsel) - { - if (TRACE_COMP) logerror("%04x[HDC] <- %02x\n", m_address & 0xffff, data); - m_hdc9234->write(space, (m_address>>2)&1, data, 0xff); - return; - } - - if (m_RTCsel) - { - if (TRACE_COMP) logerror("%04x[CLK] <- %02x\n", m_address & 0xffff, data); - m_clock->write(space, (m_address & 0x001e) >> 1, data); - return; - } - - if (m_RAMsel) - { - // 0101 00xx xxxx xxxx static 0x08 - // 0101 01xx xxxx xxxx bank 1 - // 0101 10xx xxxx xxxx bank 2 - // 0101 11xx xxxx xxxx bank 3 - int bank = (m_address & 0x0c00) >> 10; - if (TRACE_RAM) logerror("%04x[%02x] <- %02x\n", m_address & 0xffff, m_ram_page[bank], data); - - // When a DMA is in progress, do not change anything - if (m_dip == CLEAR_LINE) m_buffer_ram->pointer()[(m_ram_page[bank]<<10) | (m_address & 0x03ff)] = data; - return; - } - // The rest is ROM - if (m_ROMsel) - { - if (TRACE_ROM) logerror("Ignoring write ROM %04x[%02x]: %02x\n", m_address & 0xffff, m_rom_page, data); - } - } -} - -/* - Read a set of 8 bits in the CRU space of the HFDC - There are two banks, according to the state of m_see_switches - - m_see_switches == true: - - 7 6 5 4 3 2 1 0 CRU bit - +-----+-----+-----+-----+-----+-----+-----+-----+ - |DIP5*|DIP6*|DIP7*|DIP8*|DIP1*|DIP2*|DIP3*|DIP4*| - +-----+-----+-----+-----+-----+-----+-----+-----+ - | DSK3 | DSK4 | DSK1 | DSK2 | - +-----+-----+-----+-----+-----+-----+-----+-----+ - - Settings for DSKn: (n=1..4) - - DIP(2n-1) DIP(2n) Tracks Step(ms) Sectors (256 byte) - off off 40 16 18/16/9 - on off 40 8 18/16/9 - off on 80/40 2 18/16/9 - on on 80 2 36 - - Inverted logic: switch=on means a 0 bit, off is a 1 bit when read by the CRU - - Caution: The last setting is declared as "future expansion" and is - locked to a 1.44 MiB capacity. No lower formats can be used. - - --- - - m_see_switches == false: - - 7 6 5 4 3 2 1 0 - +-----+-----+-----+-----+-----+-----+-----+-----+ - | 0 | 0 | 0 | 0 | WAIT| MON*| DIP | IRQ | - +-----+-----+-----+-----+-----+-----+-----+-----+ - - WAIT = Wait for WDS1 to become ready - MON* = Motor on - DIP = DMA in progress - IRQ = Interrupt request - --- - 0 on all other locations -*/ -READ8Z_MEMBER(myarc_hfdc_device::crureadz) -{ - uint8_t reply; - if ((offset & 0xff00)==m_cru_base) - { - if ((offset & 0x00ff)==0) // CRU bits 0-7 - { - if (m_see_switches) - { - reply = ~(ioport("HFDCDIP")->read()); - } - else - { - reply = 0; - if (m_irq == ASSERT_LINE) reply |= 0x01; - if (m_dip == ASSERT_LINE) reply |= 0x02; - if (!m_motor_running) reply |= 0x04; - if (m_wait_for_hd1) reply |= 0x08; - } - *value = reply; - } - else // CRU bits 8+ - { - *value = 0; - } - - if (TRACE_CRU) logerror("CRU %04x -> %02x\n", offset & 0xffff, *value); - } -} - -/* - Set a bit in the CRU space of the HFDC - - 7 6 5 4 3 2 1 0 - +-----+-----+-----+-----+-----+-----+-----+-----+ - | - | - | - | ROM1| ROM0| MON | RES*| SEL | - | | | | CSEL| CD1 | CD0 | | | - +-----+-----+-----+-----+-----+-----+-----+-----+ - - 17 16 15 14 13 12 11 10 F E D C B A 9 8 - +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+ - | RAM page select @5C00 | RAM page select @5800 | RAM page select @5400 | - | - +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+ - - SEL = Select card (and map ROM into address space) - RES* = Reset controller - MON = Motor on / same line goes to CD0 input of floppy separator - ROM bank select: bank 0..3; bit 3 = MSB, 4 = LSB - RAM bank select: bank 0..31; bit 9 = LSB (accordingly for other two areas) - CD0 and CD1 are Clock Divider selections for the Floppy Data Separator (FDC9216) - CSEL = CRU input select (m_see_switches) - - HFDC manual p. 43 -*/ -WRITE8_MEMBER(myarc_hfdc_device::cruwrite) -{ - if ((offset & 0xff00)==m_cru_base) - { - if (TRACE_CRU) logerror("CRU %04x <- %d\n", offset & 0xffff, data); - - int bit = (offset >> 1) & 0x1f; - - // Handle the page selects right here - if (bit >= 0x09 && bit < 0x18) - { - if (data) - // we leave index 0 unchanged; modify indices 1-3 - m_ram_page[(bit-4)/5] |= 1 << ((bit-9)%5); - else - m_ram_page[(bit-4)/5] &= ~(1 << ((bit-9)%5)); - - if (TRACE_CRU) - { - if (bit==0x0d) logerror("RAM page @5400 = %d\n", m_ram_page[1]); - if (bit==0x12) logerror("RAM page @5800 = %d\n", m_ram_page[2]); - if (bit==0x17) logerror("RAM page @5C00 = %d\n", m_ram_page[3]); - } - return; - } - - switch (bit) - { - case 0: - { - bool turnOn = (data!=0); - // Avoid too many meaningless log outputs - if (TRACE_CRU) if (m_selected != turnOn) logerror("card %s\n", turnOn? "selected" : "unselected"); - m_selected = turnOn; - break; - } - case 1: - if (TRACE_CRU) if (data==0) logerror("trigger HDC reset\n"); - m_hdc9234->reset((data == 0)? ASSERT_LINE : CLEAR_LINE); - break; - - case 2: - m_hdc9234->set_clock_divider(0, data); - - // Activate motor - // When 1, let motor run continuously. When 0, a simple monoflop circuit keeps the line active for another 4 sec - if (data==1) - { - m_motor_on_timer->reset(); - set_floppy_motors_running(true); - } - else - { - m_motor_on_timer->adjust(attotime::from_msec(4230)); - } - m_lastval = data; - break; - - case 3: - m_hdc9234->set_clock_divider(1, data); - m_rom_page = (data != 0)? (m_rom_page | 2) : (m_rom_page & 0xfd); - if (TRACE_CRU) logerror("ROM page = %d\n", m_rom_page); - break; - - case 4: - m_see_switches = (data != 0); - m_rom_page = (data != 0)? (m_rom_page | 1) : (m_rom_page & 0xfe); - if (TRACE_CRU) logerror("ROM page = %d, see_switches = %d\n", m_rom_page, m_see_switches); - break; - - default: - logerror("Attempt to set undefined CRU bit %d\n", bit); - } - } -} - -/* - Monoflop has gone back to the OFF state. -*/ -void myarc_hfdc_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) -{ - set_floppy_motors_running(false); -} - -/* - This is called back from the floppy when an index hole is passing by. -*/ -void myarc_hfdc_device::floppy_index_callback(floppy_image_device *floppy, int state) -{ - if (TRACE_LINES) if (state==1) logerror("Floppy index pulse\n"); - // m_status_latch = (state==ASSERT_LINE)? (m_status_latch | HDC_DS_INDEX) : (m_status_latch & ~HDC_DS_INDEX); - set_bits(m_status_latch, HDC_DS_INDEX, (state==ASSERT_LINE)); - signal_drive_status(); -} - -/* - This is called back from the hard disk when an index hole is passing by. -*/ -void myarc_hfdc_device::harddisk_index_callback(mfm_harddisk_device *harddisk, int state) -{ - if (TRACE_LINES) if (state==1) logerror("HD index pulse\n"); - set_bits(m_status_latch, HDC_DS_INDEX, (state==ASSERT_LINE)); - signal_drive_status(); -} - -/* - This is called back from the hard disk when READY becomes asserted. -*/ -void myarc_hfdc_device::harddisk_ready_callback(mfm_harddisk_device *harddisk, int state) -{ - if (TRACE_LINES) logerror("HD READY = %d\n", state); - set_bits(m_status_latch, HDC_DS_READY, (state==ASSERT_LINE)); - signal_drive_status(); -} - -/* - This is called back from the hard disk when seek_complete becomes asserted. -*/ -void myarc_hfdc_device::harddisk_skcom_callback(mfm_harddisk_device *harddisk, int state) -{ - if (TRACE_LINES) logerror("HD seek complete = %d\n", state); - set_bits(m_status_latch, HDC_DS_SKCOM, (state==ASSERT_LINE)); - signal_drive_status(); -} - -void myarc_hfdc_device::set_bits(uint8_t& byte, int mask, bool set) -{ - if (set) byte |= mask; - else byte &= ~mask; -} - -/* - Maps the set bit to an index. The rightmost 1 bit is significant. When no - bit is set, returns -1. -*/ -int myarc_hfdc_device::bit_to_index(int value) -{ - if (value & 0x01) return 0; - if (value & 0x02) return 1; - if (value & 0x04) return 2; - if (value & 0x08) return 3; - return -1; -} - -/* - Notify the controller about the status change -*/ -void myarc_hfdc_device::signal_drive_status() -{ - uint8_t reply = 0; - // Status byte as defined by HDC9234 - // +------+------+------+------+------+------+------+------+ - // | ECC |Index | SeekC| Tr00 | User | WrPrt| Ready|Fault | - // +------+------+------+------+------+------+------+------+ - // - // Set by HFDC - // 74LS240 is used for driving the lines; it also inverts the inputs - // If no hard drive or floppy is connected, all lines are 0 - // +------+------+------+------+------+------+------+------+ - // | 0 | Index| SeekC| Tr00 | 0 | WrPrt| Ready|Fault | - // +------+------+------+------+------+------+------+------+ - // - // Ready = /WDS.ready* | DSK - // SeekComplete = /WDS.seekComplete* | DSK - - // If DSK is selected, set Ready and SeekComplete to 1 - if ((m_output1_latch & 0x10)!=0) - { - reply |= 0x22; - - // Check for TRK00* - if ((m_current_floppy != nullptr) && (!m_current_floppy->trk00_r())) - reply |= HDC_DS_TRK00; - } - else - { - if ((m_output1_latch & 0xe0)!=0) - { - if (m_current_harddisk != nullptr) - { - if (m_current_harddisk->ready_r()==ASSERT_LINE) - { - m_status_latch |= HDC_DS_READY; - set_bits(m_status_latch, HDC_DS_SKCOM, m_current_harddisk->seek_complete_r()==ASSERT_LINE); - set_bits(m_status_latch, HDC_DS_TRK00, m_current_harddisk->trk00_r()==ASSERT_LINE); - } - } - // If WDS is selected but not connected, WDS.ready* and WDS.seekComplete* are 1, so Ready=SeekComplete=0 - else set_bits(m_status_latch, HDC_DS_READY | HDC_DS_SKCOM, false); - } - } - - reply |= m_status_latch; - - m_hdc9234->auxbus_in(reply); -} - -/* - When the HDC outputs a byte via its AB (auxiliary bus), we need to latch it. - The target of the transfer is determined by two control lines (S1,S0). - (0,0) = input drive status - (0,1) = DMA address - (1,0) = OUTPUT1 - (1,1) = OUTPUT2 -*/ -WRITE8_MEMBER( myarc_hfdc_device::auxbus_out ) -{ - int index; - switch (offset) - { - case HDC_INPUT_STATUS: - logerror("Invalid operation: S0=S1=0, but tried to write (expected: read drive status)\n"); - break; - - case HDC_OUTPUT_DMA_ADDR: - // Value is dma address byte. Shift previous contents to the left. - // The value is latched inside the Gate Array. - m_dma_address = ((m_dma_address << 8) + (data&0xff))&0xffffff; - if (TRACE_DMA) logerror("Setting DMA address; current value = %06x\n", m_dma_address); - break; - - case HDC_OUTPUT_1: - // value is output1 - // The HFDC interprets the value as follows: - // WDS = Winchester Drive System, old name for hard disk - // +------+------+------+------+------+------+------+------+ - // | WDS3 | WDS2 | WDS1 | DSKx | x=4 | x=3 | x=2 | x=1 | - // +------+------+------+------+------+------+------+------+ - // Accordingly, drive 0 is always the floppy; selected by the low nibble - - m_output1_latch = data; - - if ((data & 0x10) != 0) connect_floppy_unit(bit_to_index(data & 0x0f)); // Floppy selected - else - { - index = bit_to_index((data>>4) & 0x0f); - - if (index > 0) connect_harddisk_unit(index-1); // HD selected; index >= 1 - else - { - disconnect_floppy_drives(); - disconnect_hard_drives(); - - // Turn off READY and SEEK COMPLETE - set_bits(m_status_latch, HDC_DS_READY | HDC_DS_SKCOM, false); - } - } - break; - - case HDC_OUTPUT_2: - // value is output2 - // DS3* = /WDS3 - // WCur = Reduced Write Current - // Dir = Step direction - // Step = Step pulse - // Head = Selected head number (floppy: 0000 or 0001) - // +------+------+------+------+------+------+------+------+ - // | DS3* | WCur | Dir | Step | Head | - // +------+------+------+------+------+------+------+------+ - m_output2_latch = data; - - // Output the step pulse to the selected floppy drive - if (m_current_floppy != nullptr) - { - m_current_floppy->ss_w(data & 0x01); - m_current_floppy->dir_w((data & 0x20)==0); - m_current_floppy->stp_w((data & 0x10)==0); - } - - if (m_current_harddisk != nullptr) - { - // Dir = 0 -> outward - m_current_harddisk->direction_in_w((data & 0x20)? ASSERT_LINE : CLEAR_LINE); - m_current_harddisk->step_w((data & 0x10)? ASSERT_LINE : CLEAR_LINE); - m_current_harddisk->headsel_w(data & 0x0f); - } - - // We are pushing the drive status after OUTPUT2 - signal_drive_status(); - break; - } -} - -enum -{ - HFDC_FLOPPY = 1, - HFDC_HARDDISK = 2 -}; - -void myarc_hfdc_device::connect_floppy_unit(int index) -{ - // Check if we have a new floppy - if (m_floppy_unit[index] != m_current_floppy) - { - // Clear all latched flags from other drives - m_status_latch = 0; - disconnect_floppy_drives(); - if (TRACE_LINES) logerror("Select floppy drive DSK%d\n", index+1); - - // Connect new drive - m_current_floppy = m_floppy_unit[index]; - - // We don't use the READY line of floppy drives. - // READY is asserted when DSKx = 1 - // The controller fetches the state with the auxbus access - if (TRACE_LINES) logerror("Connect index callback DSK%d\n", index+1); - if (m_current_floppy != nullptr) - m_current_floppy->setup_index_pulse_cb(floppy_image_device::index_pulse_cb(&myarc_hfdc_device::floppy_index_callback, this)); - else - logerror("Connection to DSK%d failed because no drive is connected\n", index+1); - m_hdc9234->connect_floppy_drive(m_floppy_unit[index]); - } - - // We can only run a floppy or a harddisk at a time, not both - disconnect_hard_drives(); -} - -void myarc_hfdc_device::connect_harddisk_unit(int index) -{ - if (m_harddisk_unit[index] != m_current_harddisk) - { - // Clear all latched flags form other drives - m_status_latch = 0; - disconnect_hard_drives(); - if (TRACE_LINES) logerror("Select hard disk WDS%d\n", index+1); - - // Connect new drive - m_current_harddisk = m_harddisk_unit[index]; - - if (TRACE_LINES) logerror("Connect index callback WDS%d\n", index+1); - if (m_current_harddisk != nullptr) - { - m_current_harddisk->setup_index_pulse_cb(mfm_harddisk_device::index_pulse_cb(&myarc_hfdc_device::harddisk_index_callback, this)); - m_current_harddisk->setup_ready_cb(mfm_harddisk_device::ready_cb(&myarc_hfdc_device::harddisk_ready_callback, this)); - m_current_harddisk->setup_seek_complete_cb(mfm_harddisk_device::seek_complete_cb(&myarc_hfdc_device::harddisk_skcom_callback, this)); - } - else - logerror("Connection to WDS%d failed because no drive is connected\n", index+1); - m_hdc9234->connect_hard_drive(m_current_harddisk); - } - - // We can only run a floppy or a harddisk at a time, not both - disconnect_floppy_drives(); -} - -void myarc_hfdc_device::disconnect_floppy_drives() -{ - if (TRACE_LINES) logerror("Unselect floppy drives\n"); - // Disconnect current floppy - if (m_current_floppy != nullptr) - { - m_current_floppy->setup_index_pulse_cb(floppy_image_device::index_pulse_cb()); - m_current_floppy = nullptr; - } -} - -void myarc_hfdc_device::disconnect_hard_drives() -{ - if (TRACE_LINES) logerror("Unselect hard drives\n"); - if (m_current_harddisk != nullptr) - { - m_current_harddisk->setup_index_pulse_cb(mfm_harddisk_device::index_pulse_cb()); - m_current_harddisk->setup_seek_complete_cb(mfm_harddisk_device::seek_complete_cb()); - m_current_harddisk = nullptr; - } -} - -/* - All floppy motors are operated by the same line. -*/ -void myarc_hfdc_device::set_floppy_motors_running(bool run) -{ - if (run) - { - if (TRACE_MOTOR) - if (m_MOTOR_ON==CLEAR_LINE) logerror("Motor START\n"); - m_MOTOR_ON = ASSERT_LINE; - } - else - { - if (TRACE_MOTOR) - if (m_MOTOR_ON==ASSERT_LINE) logerror("Motor STOP\n"); - m_MOTOR_ON = CLEAR_LINE; - } - - // Set all motors - for (auto & elem : m_floppy_unit) - if (elem != nullptr) elem->mon_w((run)? 0 : 1); -} - -/* - Called whenever the state of the HDC9234 interrupt pin changes. -*/ -WRITE_LINE_MEMBER( myarc_hfdc_device::intrq_w ) -{ - m_irq = (line_state)state; - if (TRACE_INT) logerror("INT pin from controller = %d, propagating to INTA*\n", state); - - // Set INTA* - // Signal from SMC is active high, INTA* is active low; board inverts signal - // Anyway, we stay with ASSERT_LINE and CLEAR_LINE - m_slot->set_inta(state); -} - -/* - Called whenever the HDC9234 desires bus access to the buffer RAM. The - controller expects a call to dmarq in 1 byte time. -*/ -WRITE_LINE_MEMBER( myarc_hfdc_device::dmarq_w ) -{ - if (TRACE_DMA) logerror("DMARQ pin from controller = %d\n", state); - if (state == ASSERT_LINE) - { - m_hdc9234->dmaack(ASSERT_LINE); - } -} - -/* - Called whenever the state of the HDC9234 DMA in progress changes. -*/ -WRITE_LINE_MEMBER( myarc_hfdc_device::dip_w ) -{ - m_dip = (line_state)state; -} - -/* - Read a byte from the onboard SRAM. This is called from the HDC9234. -*/ -READ8_MEMBER( myarc_hfdc_device::read_buffer ) -{ - if (TRACE_DMA) logerror("Read access to onboard SRAM at %04x\n", m_dma_address); - if (m_dma_address > 0x8000) logerror("Read access beyond RAM size: %06x\n", m_dma_address); - uint8_t value = m_buffer_ram->pointer()[m_dma_address & 0x7fff]; - m_dma_address = (m_dma_address+1) & 0x7fff; - return value; -} - -/* - Write a byte to the onboard SRAM. This is called from the HDC9234. -*/ -WRITE8_MEMBER( myarc_hfdc_device::write_buffer ) -{ - if (TRACE_DMA) logerror("Write access to onboard SRAM at %04x: %02x\n", m_dma_address, data); - if (m_dma_address > 0x8000) logerror("Write access beyond RAM size: %06x\n", m_dma_address); - m_buffer_ram->pointer()[m_dma_address & 0x7fff] = data; - m_dma_address = (m_dma_address+1) & 0x7fff; -} - -void myarc_hfdc_device::device_start() -{ - m_dsrrom = memregion(DSRROM)->base(); - m_motor_on_timer = timer_alloc(MOTOR_TIMER); - // The HFDC does not use READY; it has on-board RAM for DMA - m_current_floppy = nullptr; - m_current_harddisk = nullptr; - - // Parent class members - save_item(NAME(m_senila)); - save_item(NAME(m_senilb)); - save_item(NAME(m_selected)); - save_item(NAME(m_genmod)); - save_item(NAME(m_cru_base)); - save_item(NAME(m_select_mask)); - save_item(NAME(m_select_value)); - - // Own members - save_item(NAME(m_see_switches)); - save_item(NAME(m_irq)); - save_item(NAME(m_dip)); - save_item(NAME(m_motor_running)); - save_item(NAME(m_inDsrArea)); - save_item(NAME(m_HDCsel)); - save_item(NAME(m_RTCsel)); - save_item(NAME(m_tapesel)); - save_item(NAME(m_RAMsel)); - save_item(NAME(m_ROMsel)); - save_item(NAME(m_address)); - save_item(NAME(m_wait_for_hd1)); - save_item(NAME(m_rom_page)); - save_pointer(NAME(m_ram_page),4); - save_item(NAME(m_status_latch)); - save_item(NAME(m_dma_address)); - save_item(NAME(m_output1_latch)); - save_item(NAME(m_output2_latch)); - save_item(NAME(m_lastval)); - save_item(NAME(m_MOTOR_ON)); - save_item(NAME(m_readyflags)); -} - -void myarc_hfdc_device::device_reset() -{ - // The GenMOD mod; our implementation automagically adapts all cards - if (m_genmod) - { - m_select_mask = 0x1fe000; - m_select_value = 0x174000; - } - else - { - m_select_mask = 0x7e000; - m_select_value = 0x74000; - } - - m_cru_base = ioport("CRUHFDC")->read(); - m_wait_for_hd1 = ioport("WAITHD1")->read(); - - // Resetting values - m_rom_page = 0; - - m_ram_page[0] = 0x08; // static page 0x08 - for (int i=1; i < 4; i++) m_ram_page[i] = 0; - - m_output1_latch = m_output2_latch = 0; - - m_status_latch = 0x00; - - m_dip = m_irq = CLEAR_LINE; - m_see_switches = false; - m_motor_running = false; - m_selected = false; - m_lastval = 0; - m_readyflags = 0; - - for (int i=0; i < 4; i++) - { - if (m_floppy_unit[i] != nullptr) - logerror("FD connector %d with %s\n", i+1, m_floppy_unit[i]->name()); - else - logerror("FD connector %d has no floppy attached\n", i+1); - } - - for (int i=0; i < 3; i++) - { - if (m_harddisk_unit[i] != nullptr) - logerror("HD connector %d with %s\n", i+1, m_harddisk_unit[i]->name()); - else - logerror("HD connector %d has no drive attached\n", i+1); - } - - // Disconnect all units - disconnect_floppy_drives(); - disconnect_hard_drives(); -} - -void myarc_hfdc_device::device_config_complete() -{ - for (int i=0; i < 3; i++) - { - m_floppy_unit[i] = nullptr; - m_harddisk_unit[i] = nullptr; - } - m_floppy_unit[3] = nullptr; - - // Seems to be null when doing a "-listslots" - if (subdevice("f1")!=nullptr) - { - m_floppy_unit[0] = static_cast(subdevice("f1"))->get_device(); - m_floppy_unit[1] = static_cast(subdevice("f2"))->get_device(); - m_floppy_unit[2] = static_cast(subdevice("f3"))->get_device(); - m_floppy_unit[3] = static_cast(subdevice("f4"))->get_device(); - - m_harddisk_unit[0] = static_cast(subdevice("h1"))->get_device(); - m_harddisk_unit[1] = static_cast(subdevice("h2"))->get_device(); - m_harddisk_unit[2] = static_cast(subdevice("h3"))->get_device(); - } -} - -/* - The HFDC controller can be configured for different CRU base addresses, - but DSK1-DSK4 are only available for CRU 1100. For all other addresses, - the drives 1 to 4 are renamed to DSK5-DSK8 (see [1] p. 7). -*/ -INPUT_PORTS_START( ti99_hfdc ) - PORT_START( "WAITHD1" ) - PORT_DIPNAME( 0x01, 0x00, "HFDC Wait for HD1" ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x01, DEF_STR( On ) ) - - PORT_START( "CRUHFDC" ) - PORT_DIPNAME( 0x1f00, 0x1100, "HFDC CRU base" ) - PORT_DIPSETTING( 0x1000, "1000" ) - PORT_DIPSETTING( 0x1100, "1100" ) - PORT_DIPSETTING( 0x1200, "1200" ) - PORT_DIPSETTING( 0x1300, "1300" ) - PORT_DIPSETTING( 0x1400, "1400" ) - PORT_DIPSETTING( 0x1500, "1500" ) - PORT_DIPSETTING( 0x1600, "1600" ) - PORT_DIPSETTING( 0x1700, "1700" ) - PORT_DIPSETTING( 0x1800, "1800" ) - PORT_DIPSETTING( 0x1900, "1900" ) - PORT_DIPSETTING( 0x1a00, "1A00" ) - PORT_DIPSETTING( 0x1b00, "1B00" ) - PORT_DIPSETTING( 0x1c00, "1C00" ) - PORT_DIPSETTING( 0x1d00, "1D00" ) - PORT_DIPSETTING( 0x1e00, "1E00" ) - PORT_DIPSETTING( 0x1f00, "1F00" ) - - PORT_START( "HFDCDIP" ) - PORT_DIPNAME( 0x0c, 0x08, "HFDC drive 1 config" ) - PORT_DIPSETTING( 0x00, "40 track, 16 ms") - PORT_DIPSETTING( 0x08, "40 track, 8 ms") - PORT_DIPSETTING( 0x04, "80 track, 2 ms") - PORT_DIPSETTING( 0x0c, "80 track HD, 2 ms") - PORT_DIPNAME( 0x03, 0x02, "HFDC drive 2 config" ) - PORT_DIPSETTING( 0x00, "40 track, 16 ms") - PORT_DIPSETTING( 0x02, "40 track, 8 ms") - PORT_DIPSETTING( 0x01, "80 track, 2 ms") - PORT_DIPSETTING( 0x03, "80 track HD, 2 ms") - PORT_DIPNAME( 0xc0, 0x80, "HFDC drive 3 config" ) - PORT_DIPSETTING( 0x00, "40 track, 16 ms") - PORT_DIPSETTING( 0x80, "40 track, 8 ms") - PORT_DIPSETTING( 0x40, "80 track, 2 ms") - PORT_DIPSETTING( 0xc0, "80 track HD, 2 ms") - PORT_DIPNAME( 0x30, 0x20, "HFDC drive 4 config" ) - PORT_DIPSETTING( 0x00, "40 track, 16 ms") - PORT_DIPSETTING( 0x20, "40 track, 8 ms") - PORT_DIPSETTING( 0x10, "80 track, 2 ms") - PORT_DIPSETTING( 0x30, "80 track HD, 2 ms") -INPUT_PORTS_END - -FLOPPY_FORMATS_MEMBER(myarc_hfdc_device::floppy_formats) - FLOPPY_TI99_SDF_FORMAT, - FLOPPY_TI99_TDF_FORMAT -FLOPPY_FORMATS_END - -static SLOT_INTERFACE_START( hfdc_floppies ) - SLOT_INTERFACE( "525dd", FLOPPY_525_DD ) // 40 tracks - SLOT_INTERFACE( "525qd", FLOPPY_525_QD ) // 80 tracks - SLOT_INTERFACE( "35dd", FLOPPY_35_DD ) // 80 tracks - SLOT_INTERFACE( "35hd", FLOPPY_35_HD ) // 80 tracks 1.4 MiB -SLOT_INTERFACE_END - -static SLOT_INTERFACE_START( hfdc_harddisks ) - SLOT_INTERFACE( "generic", MFMHD_GENERIC ) // Generic hard disk (self-adapting to image) - SLOT_INTERFACE( "st213", MFMHD_ST213 ) // Seagate ST-213 (10 MB) - SLOT_INTERFACE( "st225", MFMHD_ST225 ) // Seagate ST-225 (20 MB) - SLOT_INTERFACE( "st251", MFMHD_ST251 ) // Seagate ST-251 (40 MB) -SLOT_INTERFACE_END - -MACHINE_CONFIG_FRAGMENT( ti99_hfdc ) - MCFG_DEVICE_ADD(FDC_TAG, HDC9234, 0) - MCFG_HDC92X4_INTRQ_CALLBACK(WRITELINE(myarc_hfdc_device, intrq_w)) - MCFG_HDC92X4_DIP_CALLBACK(WRITELINE(myarc_hfdc_device, dip_w)) - MCFG_HDC92X4_AUXBUS_OUT_CALLBACK(WRITE8(myarc_hfdc_device, auxbus_out)) - MCFG_HDC92X4_DMARQ_CALLBACK(WRITELINE(myarc_hfdc_device, dmarq_w)) - MCFG_HDC92X4_DMA_IN_CALLBACK(READ8(myarc_hfdc_device, read_buffer)) - MCFG_HDC92X4_DMA_OUT_CALLBACK(WRITE8(myarc_hfdc_device, write_buffer)) - - MCFG_FLOPPY_DRIVE_ADD("f1", hfdc_floppies, "525dd", myarc_hfdc_device::floppy_formats) - MCFG_FLOPPY_DRIVE_SOUND(true) - MCFG_FLOPPY_DRIVE_ADD("f2", hfdc_floppies, "525dd", myarc_hfdc_device::floppy_formats) - MCFG_FLOPPY_DRIVE_SOUND(true) - MCFG_FLOPPY_DRIVE_ADD("f3", hfdc_floppies, nullptr, myarc_hfdc_device::floppy_formats) - MCFG_FLOPPY_DRIVE_SOUND(true) - MCFG_FLOPPY_DRIVE_ADD("f4", hfdc_floppies, nullptr, myarc_hfdc_device::floppy_formats) - MCFG_FLOPPY_DRIVE_SOUND(true) - - // NB: Hard disks don't go without image (other than floppy drives) - MCFG_MFM_HARDDISK_CONN_ADD("h1", hfdc_harddisks, nullptr, MFM_BYTE, 3000, 20, MFMHD_GEN_FORMAT) - MCFG_MFM_HARDDISK_CONN_ADD("h2", hfdc_harddisks, nullptr, MFM_BYTE, 2000, 20, MFMHD_GEN_FORMAT) - MCFG_MFM_HARDDISK_CONN_ADD("h3", hfdc_harddisks, nullptr, MFM_BYTE, 2000, 20, MFMHD_GEN_FORMAT) - - MCFG_DEVICE_ADD(CLOCK_TAG, MM58274C, 0) - MCFG_MM58274C_MODE24(1) // 24 hour - MCFG_MM58274C_DAY1(0) // sunday - - MCFG_RAM_ADD(BUFFER) - MCFG_RAM_DEFAULT_SIZE("32K") - MCFG_RAM_DEFAULT_VALUE(0) -MACHINE_CONFIG_END - -ROM_START( ti99_hfdc ) - ROM_REGION(0x4000, DSRROM, 0) - ROM_LOAD("hfdc_dsr.u34", 0x0000, 0x4000, CRC(66fbe0ed) SHA1(11df2ecef51de6f543e4eaf8b2529d3e65d0bd59)) /* HFDC disk DSR ROM */ -ROM_END - - -machine_config_constructor myarc_hfdc_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( ti99_hfdc ); -} - -const tiny_rom_entry *myarc_hfdc_device::device_rom_region() const -{ - return ROM_NAME( ti99_hfdc ); -} - -ioport_constructor myarc_hfdc_device::device_input_ports() const -{ - return INPUT_PORTS_NAME( ti99_hfdc ); -} - -const device_type TI99_HFDC = device_creator; diff --git a/src/devices/bus/ti99_peb/hfdc.h b/src/devices/bus/ti99_peb/hfdc.h deleted file mode 100644 index 5824bd5471a..00000000000 --- a/src/devices/bus/ti99_peb/hfdc.h +++ /dev/null @@ -1,185 +0,0 @@ -// license:LGPL-2.1+ -// copyright-holders:Michael Zapf -/**************************************************************************** - - Myarc Hard and Floppy Disk Controller - See hfdc.c for documentation - - January 2012: rewritten as class - June 2014: rewritten for modern floppy implementation - - Michael Zapf - July 2015 - -****************************************************************************/ - -#ifndef __HFDC__ -#define __HFDC__ - -#include "imagedev/floppy.h" -#include "imagedev/mfmhd.h" - -#include "machine/mm58274c.h" -#include "machine/hdc92x4.h" -#include "machine/ram.h" - -extern const device_type TI99_HFDC; - -/* - Implementation for modern floppy system. -*/ -class myarc_hfdc_device : public ti_expansion_card_device -{ -public: - myarc_hfdc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - - DECLARE_READ8Z_MEMBER(readz) override; - DECLARE_WRITE8_MEMBER(write) override; - DECLARE_SETADDRESS_DBIN_MEMBER(setaddress_dbin) override; - DECLARE_READ8Z_MEMBER(crureadz) override; - DECLARE_WRITE8_MEMBER(cruwrite) override; - - DECLARE_WRITE_LINE_MEMBER( dmarq_w ); - DECLARE_WRITE_LINE_MEMBER( intrq_w ); - DECLARE_WRITE_LINE_MEMBER( dip_w ); - DECLARE_WRITE8_MEMBER( auxbus_out ); - DECLARE_READ8_MEMBER( read_buffer ); - DECLARE_WRITE8_MEMBER( write_buffer ); - - DECLARE_FLOPPY_FORMATS( floppy_formats ); - -protected: - void device_config_complete() override; - -private: - void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; - void device_start() override; - void device_reset() override; - - const tiny_rom_entry *device_rom_region() const override; - machine_config_constructor device_mconfig_additions() const override; - ioport_constructor device_input_ports() const override; - - // Debug accessors - void debug_read(offs_t offset, uint8_t* value); - void debug_write(offs_t offset, uint8_t data); - - // Callbacks for the index hole and seek complete - void floppy_index_callback(floppy_image_device *floppy, int state); - void harddisk_index_callback(mfm_harddisk_device *harddisk, int state); - void harddisk_ready_callback(mfm_harddisk_device *harddisk, int state); - void harddisk_skcom_callback(mfm_harddisk_device *harddisk, int state); - - // Operate the floppy motors - void set_floppy_motors_running(bool run); - - // Connect floppy drives - void connect_floppy_unit(int index); - - // Connect harddisk drives - void connect_harddisk_unit(int index); - - // Disconnect drives - void disconnect_floppy_drives(); - void disconnect_hard_drives(); - - // Pushes the drive status to the HDC - void signal_drive_status(); - - // Motor monoflop (4.23 sec) - emu_timer* m_motor_on_timer; - - // HDC9234 controller on the board - required_device m_hdc9234; - - // Clock chip on the board - required_device m_clock; - - // Link to the attached floppy drives - floppy_image_device* m_floppy_unit[4]; - - // Link to the attached hard disks - mfm_harddisk_device* m_harddisk_unit[3]; - - // Currently selected floppy drive - floppy_image_device* m_current_floppy; - - // Currently selected hard drive - mfm_harddisk_device* m_current_harddisk; - - // True: Access to DIP switch settings, false: access to line states - bool m_see_switches; - - // IRQ state - int m_irq; - - // DMA in Progress state - int m_dip; - - // When true, motor monoflop is high - bool m_motor_running; - - // Address in card area - bool m_inDsrArea; - - // HDC selected - bool m_HDCsel; - - // RTC selected - bool m_RTCsel; - - // Tape selected - bool m_tapesel; - - // RAM selected - bool m_RAMsel; - - // RAM selected - bool m_ROMsel; - - // Recent address - int m_address; - - // Wait for HD. This was an addition in later cards. - bool m_wait_for_hd1; - - // Device Service Routine ROM (firmware) - uint8_t* m_dsrrom; - - // ROM banks. - int m_rom_page; - - // HFDC on-board SRAM (8K or 32K) - required_device m_buffer_ram; - - // RAM page registers - int m_ram_page[4]; - - // Drive status latch (STB0) - uint8_t m_status_latch; - - // DMA address latch (in Gate Array) (STB1) - uint32_t m_dma_address; - - // Output 1 latch (STB2) - uint8_t m_output1_latch; - - // Output 2 latch (STB3) - uint8_t m_output2_latch; - - // Needed for triggering the motor monoflop - uint8_t m_lastval; - - // Signal motor_on. When true, makes all drives turning. - int m_MOTOR_ON; - - // Calculates the index from the bit - int bit_to_index(int value); - - // Utility function to set or unset bits in a byte - void set_bits(uint8_t& byte, int mask, bool set); - - // Joined ready line towards the controller - int m_readyflags; -}; -#endif diff --git a/src/devices/bus/ti99_peb/horizon.cpp b/src/devices/bus/ti99_peb/horizon.cpp deleted file mode 100644 index 434fcdf2c6a..00000000000 --- a/src/devices/bus/ti99_peb/horizon.cpp +++ /dev/null @@ -1,494 +0,0 @@ -// license:LGPL-2.1+ -// copyright-holders:Michael Zapf -/**************************************************************************** - - Horizon Ramdisk - - This emulation realizes the latest development, the HRD 4000, which could - host up to 16 MiB of SRAM. Real cards rarely had more than 1.5 MiB since - the SRAM used on the card is rather expensive. - - The SRAM is buffered with a battery pack. Also, there is an option for - an additional 32 KiB of unbuffered memory. - - The driver (ROS) of the ramdisk is stored in another buffered 8 KiB SRAM. - - The Horizon RAMdisk comes with a disk containing the ROS and a configuration - program (CFG). The latest version is ROS 8.14. - - Technical details: - - In the tradition (Horizon) mode, memory is organized as 2 KiB pages. The - pages are selected via CRU bits and visible in the address area 5800 - 5fff. - The area 4000-57ff is occupied by the ROS. As with all peripheral cards, - the 4000-5fff area requires a CRU bit to be set (usually bit 0 of this - card's CRU base). - - Next releases of the HRD included new modes. The RAMBO (RAM Block operator) - mode gathers four pages to a single 8 KiB page that is visible in the - area 6000-7fff (cartridge space). Note that due to a possible design glitch, - each RAMBO page n covers Horizon pages 4n, 4n+2, 4n+1, 4n+3 in this sequence. - We emulate this by swapping two CRU lines. - - The RAMDisk may be split in two separate drives, which is called the - Phoenix extension. This is particularly important for use in the Geneve. - As a bootable drive, the RAMdisk must not - exceed 256 KiB; consequently, the RAM area is split, and one part realizes - the boot drive while the other is still available for data. Also, there - is a mechanism for selecting the parts of the card: The TI setting allows - to select two CRU addresses, one for each part. In the Geneve mode, only - one CRU address is used (1400 or 1600), and the part is selected by the - fact that one disk uses CRU bits higher than 8, while the other uses the - bits lower than 8. - - The card is able to handle 128K*8 and 512K*8 SRAM chips, allowing a total - of 16 MiB memory space. Unfortunately, a bug causes the configuration - program to crash when used with more than 2 MiB. Although the card was - quite popular, this bug was not found because most cards were sold with - less than 2 MiB onboard. As the community is still alive we can hope for - a fix for this problem; so we make the size configurable. - -*****************************************************************************/ - -#include "emu.h" -#include "horizon.h" - -#define RAMREGION "ram32k" -#define ROSREGION "ros8k" -#define NVRAMREGION "nvram" - -#define MAXSIZE 16777216 -#define ROSSIZE 8192 - -#define TRACE_CONFIG 0 -#define TRACE_READ 0 -#define TRACE_WRITE 0 -#define TRACE_CRU 0 - -horizon_ramdisk_device::horizon_ramdisk_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) -: ti_expansion_card_device(mconfig, TI99_HORIZON, "Horizon 4000 Ramdisk", tag, owner, clock,"ti99_horizon",__FILE__), - device_nvram_interface(mconfig, *this), - m_ram(*this, RAMREGION), - m_nvram(*this, NVRAMREGION), - m_ros(*this, ROSREGION), - m_select6_value(0), - m_select_all(0), - m_page(0), - m_cru_horizon(0), - m_cru_phoenix(0), - m_timode(false), - m_32k_installed(false), - m_split_mode(false), - m_rambo_mode(false), - m_hideswitch(false), - m_use_rambo(false) -{ -} - -//------------------------------------------------- -// nvram_default - called to initialize NVRAM to -// its default state -//------------------------------------------------- - -void horizon_ramdisk_device::nvram_default() -{ - int size = 2097152*(1 << ioport("HORIZONSIZE")->read()); - memset(m_nvram->pointer(), 0, size); - memset(m_ros->pointer(), 0, ROSSIZE); -} - -//------------------------------------------------- -// nvram_read - called to read NVRAM from the -// .nv file -//------------------------------------------------- - -void horizon_ramdisk_device::nvram_read(emu_file &file) -{ - int size = 2097152*(1 << ioport("HORIZONSIZE")->read()); - - // NVRAM plus ROS - uint8_t* buffer = global_alloc_array_clear(MAXSIZE + ROSSIZE); - - memset(m_nvram->pointer(), 0, size); - memset(m_ros->pointer(), 0, ROSSIZE); - - // We assume the last 8K is ROS - int filesize = file.read(buffer, MAXSIZE+ROSSIZE); - int nvramsize = filesize - ROSSIZE; - - // If there is a reasonable size - if (nvramsize >= 0) - { - // Copy from buffer to NVRAM and ROS - memcpy(m_nvram->pointer(), buffer, nvramsize); - memcpy(m_ros->pointer(), buffer + nvramsize, ROSSIZE); - } - - global_free_array(buffer); -} - -//------------------------------------------------- -// nvram_write - called to write NVRAM to the -// .nv file -//------------------------------------------------- - -void horizon_ramdisk_device::nvram_write(emu_file &file) -{ - int nvramsize = 2097152*(1 << ioport("HORIZONSIZE")->read()); - - uint8_t* buffer = global_alloc_array_clear(nvramsize + ROSSIZE); - memcpy(buffer, m_nvram->pointer(), nvramsize); - memcpy(buffer + nvramsize, m_ros->pointer(), ROSSIZE); - - file.write(buffer, nvramsize + ROSSIZE); -} - -READ8Z_MEMBER(horizon_ramdisk_device::readz) -{ - // 32K expansion - // According to the manual, "this memory is not affected by the HIDE switch" - if (m_32k_installed) - { - switch((offset & 0xe000)>>13) - { - case 1: // 2000-3fff - *value = m_ram->pointer()[offset & 0x1fff]; - return; - case 5: // a000-bfff - *value = m_ram->pointer()[(offset & 0x1fff) | 0x2000]; - return; - case 6: // c000-dfff - *value = m_ram->pointer()[(offset & 0x1fff) | 0x4000]; - return; - case 7: // e000-ffff - *value = m_ram->pointer()[(offset & 0x1fff) | 0x6000]; - return; - default: - break; - } - } - - if (m_hideswitch) return; - - // I think RAMBO mode does not need the card to be selected - if (!m_selected && !m_rambo_mode) return; - - if (!m_rambo_mode) - { - if ((offset & m_select_mask) == m_select_value) - { - if ((offset & 0x1800) == 0x1800) - { - // NVRAM page of size 2 KiB - *value = m_nvram->pointer()[(m_page << 11)|(offset & 0x07ff)]; - if (TRACE_READ) logerror("offset=%04x, page=%04x -> %02x\n", offset&0xffff, m_page, *value); - } - else - { - // ROS - *value = m_ros->pointer()[offset & 0x1fff]; - if (TRACE_READ) logerror("offset=%04x (ROS) -> %02x\n", offset&0xffff, *value); - } - } - } - else - { - if ((offset & m_select_mask)==m_select_value) - { - *value = m_ros->pointer()[offset & 0x1fff]; - if (TRACE_READ) logerror("offset=%04x (Rambo) -> %02x\n", offset&0xffff, *value); - } - if ((offset & m_select_mask)==m_select6_value) - { - // In RAMBO mode the page numbers are multiples of 4 - // (encompassing 4 Horizon pages) - // We clear away the rightmost two bits - *value = m_nvram->pointer()[((m_page&0xfffc)<<11) | (offset & 0x1fff)]; - if (TRACE_READ) logerror("offset=%04x, page=%04x (Rambo) -> %02x\n", offset&0xffff, m_page, *value); - } - } -} - -WRITE8_MEMBER(horizon_ramdisk_device::write) -{ - // 32K expansion - // According to the manual, "this memory is not affected by the HIDE switch" - if (m_32k_installed) - { - switch((offset & 0xe000)>>13) - { - case 1: // 2000-3fff - m_ram->pointer()[offset & 0x1fff] = data; - return; - case 5: // a000-bfff - m_ram->pointer()[(offset & 0x1fff) | 0x2000] = data; - return; - case 6: // c000-dfff - m_ram->pointer()[(offset & 0x1fff) | 0x4000] = data; - return; - case 7: // e000-ffff - m_ram->pointer()[(offset & 0x1fff) | 0x6000] = data; - return; - default: - break; - } - } - - if (m_hideswitch) return; - - // I think RAMBO mode does not need the card to be selected - if (!m_selected && !m_rambo_mode) return; - - if (!m_rambo_mode) - { - if ((offset & m_select_mask) == m_select_value) - { - if ((offset & 0x1800) == 0x1800) - { - // NVRAM page of size 2 KiB - m_nvram->pointer()[(m_page << 11)|(offset & 0x07ff)] = data; - if (TRACE_WRITE) logerror("offset=%04x, page=%04x <- %02x\n", offset&0xffff, m_page, data); - } - else - { - // ROS - m_ros->pointer()[offset & 0x1fff] = data; - if (TRACE_WRITE) logerror("offset=%04x (ROS) <- %02x\n", offset&0xffff, data); - } - } - } - else - { - if ((offset & m_select_mask)==m_select_value) - { - m_ros->pointer()[offset & 0x1fff] = data; - if (TRACE_WRITE) logerror("offset=%04x (Rambo) <- %02x\n", offset&0xffff, data); - } - if ((offset & m_select_mask)==m_select6_value) - { - // In RAMBO mode the page numbers are multiples of 4 - // (encompassing 4 Horizon pages) - // We clear away the rightmost two bits - m_nvram->pointer()[((m_page&0xfffc)<<11) | (offset & 0x1fff)] = data; - if (TRACE_WRITE) logerror("offset=%04x, page=%04x (Rambo) <- %02x\n", offset&0xffff, m_page, data); - } - } -} - -READ8Z_MEMBER(horizon_ramdisk_device::crureadz) -{ - // There is no CRU read operation for the Horizon. - return; -} - -void horizon_ramdisk_device::setbit(int& page, int pattern, bool set) -{ - if (set) - { - page |= pattern; - } - else - { - page &= ~pattern; - } -} - -WRITE8_MEMBER(horizon_ramdisk_device::cruwrite) -{ - int size = ioport("HORIZONSIZE")->read(); - int split_bit = size + 10; - int splitpagebit = 0x0200 << size; - - if (((offset & 0xff00)==m_cru_horizon)||((offset & 0xff00)==m_cru_phoenix)) - { - int bit = (offset >> 1) & 0x0f; - if (TRACE_CRU) logerror("CRU write bit %d <- %d\n", bit, data); - switch (bit) - { - case 0: - m_selected = (data!=0); - if (TRACE_CRU) logerror("Activate ROS = %d\n", m_selected); - break; - case 1: - // Swap the lines so that the access with RAMBO is consistent - if (!m_rambo_mode) setbit(m_page, 0x0002, data!=0); - break; - case 2: - // Swap the lines so that the access with RAMBO is consistent - if (!m_rambo_mode) setbit(m_page, 0x0001, data!=0); - break; - case 3: - case 4: - case 5: - case 6: - case 7: - case 8: - case 9: - setbit(m_page, 0x0001 << (bit-1), data!=0); - break; - case 14: - break; - case 15: - if (m_use_rambo) - { - m_rambo_mode = (data != 0); - if (TRACE_CRU) logerror("RAMBO = %d\n", m_rambo_mode); - } - break; - - default: // bits 10-13 - if (bit != split_bit || !m_split_mode) - { - if (bit <= split_bit) setbit(m_page, 0x0200<<(bit-10), data!=0); - } - break; - } - - if (m_split_mode) - { - if (m_timode) - { - // In TI mode, switch between both RAMDisks using the CRU address - setbit(m_page, splitpagebit, ((offset & 0xff00)==m_cru_phoenix)); - } - else - { - // In Geneve mode, switch between both RAMdisks by - // using the bit number of the last CRU access - setbit(m_page, splitpagebit, (bit>7)); - } - } - } -} - -void horizon_ramdisk_device::device_start(void) -{ - m_cru_horizon = 0; - m_cru_phoenix = 0; - - save_item(NAME(m_select6_value)); - save_item(NAME(m_select_all)); - save_item(NAME(m_page)); - save_item(NAME(m_cru_horizon)); - save_item(NAME(m_cru_phoenix)); - save_item(NAME(m_timode)); - save_item(NAME(m_32k_installed)); - save_item(NAME(m_split_mode)); - save_item(NAME(m_rambo_mode)); - save_item(NAME(m_hideswitch)); - save_item(NAME(m_use_rambo)); -} - -void horizon_ramdisk_device::device_reset(void) -{ - if (m_genmod) - { - m_select_mask = 0x1fe000; - m_select_value = 0x174000; - m_select6_value = 0x176000; - m_select_all = 0x170000; - } - else - { - m_select_mask = 0x7e000; - m_select_value = 0x74000; - m_select6_value = 0x76000; - m_select_all = 0x70000; - } - - m_cru_horizon = ioport("CRUHOR")->read(); - m_cru_phoenix = ioport("CRUPHOE")->read(); - - m_32k_installed = (ioport("HORIZON32")->read()!=0); - - m_split_mode = (ioport("HORIZONDUAL")->read()!=0); - m_timode = (ioport("HORIZONDUAL")->read()==1); - - m_rambo_mode = false; - m_hideswitch = (ioport("HORIZONACT")->read()!=0); - - m_use_rambo = (ioport("RAMBO")->read()!=0); - - m_page = 0; - m_selected = false; -} - -INPUT_CHANGED_MEMBER( horizon_ramdisk_device::hs_changed ) -{ - if (TRACE_CONFIG) logerror("hideswitch changed %d\n", newval); - m_hideswitch = (newval!=0); -} - -/* - Input ports for the Horizon -*/ -INPUT_PORTS_START( horizon ) - PORT_START( "CRUHOR" ) - PORT_DIPNAME( 0x1f00, 0x1200, "Horizon CRU base" ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x1000, "1000" ) - PORT_DIPSETTING( 0x1200, "1200" ) - PORT_DIPSETTING( 0x1400, "1400" ) - PORT_DIPSETTING( 0x1500, "1500" ) - PORT_DIPSETTING( 0x1600, "1600" ) - PORT_DIPSETTING( 0x1700, "1700" ) - - PORT_START( "CRUPHOE" ) - PORT_DIPNAME( 0x1f00, 0x0000, "Phoenix CRU base" ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x1400, "1400" ) - PORT_DIPSETTING( 0x1600, "1600" ) - - PORT_START( "HORIZONDUAL" ) - PORT_DIPNAME( 0x03, 0x00, "Horizon ramdisk split" ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x01, "TI mode" ) - PORT_DIPSETTING( 0x02, "Geneve mode" ) - - PORT_START( "HORIZONACT" ) - PORT_DIPNAME( 0x01, 0x00, "Horizon hideswitch" ) PORT_CHANGED_MEMBER(DEVICE_SELF, horizon_ramdisk_device, hs_changed, nullptr) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x01, DEF_STR( On ) ) - - PORT_START( "HORIZON32" ) - PORT_CONFNAME( 0x01, 0x00, "Horizon 32 KiB upgrade" ) - PORT_CONFSETTING( 0x00, DEF_STR( Off )) - PORT_CONFSETTING( 0x01, DEF_STR( On )) - - PORT_START( "RAMBO" ) - PORT_CONFNAME( 0x01, 0x01, "Horizon RAMBO" ) - PORT_CONFSETTING( 0x00, DEF_STR( Off )) - PORT_CONFSETTING( 0x01, DEF_STR( On )) - - PORT_START( "HORIZONSIZE" ) - PORT_CONFNAME( 0x03, 0x00, "Horizon size" ) - PORT_CONFSETTING( 0x00, "2 MiB") - PORT_CONFSETTING( 0x01, "4 MiB") - PORT_CONFSETTING( 0x02, "8 MiB") - PORT_CONFSETTING( 0x03, "16 MiB") - -INPUT_PORTS_END - -MACHINE_CONFIG_FRAGMENT( horizon ) - MCFG_RAM_ADD(NVRAMREGION) - MCFG_RAM_DEFAULT_SIZE("16M") - - MCFG_RAM_ADD(ROSREGION) - MCFG_RAM_DEFAULT_SIZE("8k") - - MCFG_RAM_ADD(RAMREGION) - MCFG_RAM_DEFAULT_SIZE("32k") - MCFG_RAM_DEFAULT_VALUE(0) -MACHINE_CONFIG_END - -machine_config_constructor horizon_ramdisk_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( horizon ); -} - -ioport_constructor horizon_ramdisk_device::device_input_ports() const -{ - return INPUT_PORTS_NAME(horizon); -} - -const device_type TI99_HORIZON = device_creator; diff --git a/src/devices/bus/ti99_peb/horizon.h b/src/devices/bus/ti99_peb/horizon.h deleted file mode 100644 index 4cbc4d4a2fd..00000000000 --- a/src/devices/bus/ti99_peb/horizon.h +++ /dev/null @@ -1,67 +0,0 @@ -// license:LGPL-2.1+ -// copyright-holders:Michael Zapf -/**************************************************************************** - - Horizon Ramdisk - See horizon.c for documentation - - Michael Zapf - - February 2012 - -*****************************************************************************/ - -#ifndef __HORIZON__ -#define __HORIZON__ - -#include "peribox.h" -#include "machine/ram.h" - -extern const device_type TI99_HORIZON; - -class horizon_ramdisk_device : public ti_expansion_card_device, public device_nvram_interface -{ -public: - horizon_ramdisk_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - DECLARE_READ8Z_MEMBER(readz) override; - DECLARE_WRITE8_MEMBER(write) override; - - DECLARE_READ8Z_MEMBER(crureadz) override; - DECLARE_WRITE8_MEMBER(cruwrite) override; - - DECLARE_INPUT_CHANGED_MEMBER( hs_changed ); - -protected: - void device_start() override; - void device_reset() override; - - machine_config_constructor device_mconfig_additions() const override; - virtual ioport_constructor device_input_ports() const override; - - void nvram_default() override; - void nvram_read(emu_file &file) override; - void nvram_write(emu_file &file) override; - -private: - void setbit(int& page, int pattern, bool set); - - required_device m_ram; - required_device m_nvram; - required_device m_ros; - - int m_select6_value; - int m_select_all; - - int m_page; - - int m_cru_horizon; - int m_cru_phoenix; - bool m_timode; - bool m_32k_installed; - bool m_split_mode; - bool m_rambo_mode; - bool m_hideswitch; - bool m_use_rambo; -}; - -#endif diff --git a/src/devices/bus/ti99_peb/hsgpl.cpp b/src/devices/bus/ti99_peb/hsgpl.cpp deleted file mode 100644 index 1e72f640869..00000000000 --- a/src/devices/bus/ti99_peb/hsgpl.cpp +++ /dev/null @@ -1,717 +0,0 @@ -// license:LGPL-2.1+ -// copyright-holders:Michael Zapf -/**************************************************************************** - - SNUG HSGPL card emulation. - - The HSGPL card is a card for the peripheral expansion box which simulates - 16 banks of 64 KiB GROM space, using flash memory to keep data persistent. - - Main usage: - - store cartridges in the card for quick selection - - replace the console GROMs, thus making it possible to patch or enhance the - console operating system - - provide necessary ROMs for the SGCPU (aka TI-99/4P) - - (So for using the ti99_4p emulation, you MUST have a properly set up HSGPL - card. The best way to get this done is to prepare this card within the - ti99_4ev emulation, then copy the contents to the ti99_4p nvram directory.) - - The card does not contain real GROM circuits, and accordingly, we do not - use the grom emulation. The logic on the board, mainly contained in the - MACH chip, simulates GROM behavior. With the possibility to upload data - into the simulated GROMs, we can also enjoy GRAM behavior, although real - GRAMs are not known to have become available ever. - - Contents: - - Supports 16 banks of 8 GROMs (8kbytes each) with 16 associated banks of - 32kbytes (8kbytes*4) of module ROM, 2 banks of 8 GRAMs with 2 associated - banks of 32 kbytes of RAM, and 512kbytes of DSR. Roms are implemented with - 512kbyte EEPROMs (1 for DSR, 2 for GROMs, 1 for cartridge ROM). RAM is - implemented with 128kbyte SRAMs (1 for GRAM, 1 for cartridge RAM - only the - first 64kbytes of the cartridge RAM chip is used). - - CRU bits: - Name Equates Meaning - >0 DEN DSRENA DSR Enable - >1 GRMENA GRMENA Enable GRAM instead of GROM in banks 0 and 1 - >2 BNKINH* BNKENA Disable banking - >3 PG0 PG0 - >4 PG1 PG1 - >5 PG2 PG2 Paging-Bits for DSR-area - >6 PG3 PG3 - >7 PG4 PG4 - >8 PG5 PG5 - >9 CRDENA CRDENA Activate memory areas of HSGPL (i.e. enable HSGPL GROM and ROM6 ports) - >A WRIENA WRIENA write enable for RAM and GRAM (and flash GROM!) - >B SCENA SCARTE Activate SuperCart-banking - >C LEDENA LEDENA turn LED on - >D - - free - >E MBXENA MBXENA Activate MBX-Banking - >F RAMENA RAMENA Enable RAM6000 instead of ROM6000 in banks 0 and 1 - - - Direct access ports for all memory areas (the original manual says - >9880->989C and >9C80->9C9C for ROM6000, but this is clearly incorrect): - - Module bank Read Write Read ROM6000 Write ROM6000 - GROM GROM - 0 >9800 >9C00 >9860 Offset >0000 >9C60 Offset >0000 - 1 >9804 >9C04 >9860 Offset >8000 >9C60 Offset >8000 - 2 >9808 >9C08 >9864 Offset >0000 >9C64 Offset >0000 - 3 >980C >9C0C >9864 Offset >8000 >9C64 Offset >8000 - 4 >9810 >9C10 >9868 Offset >0000 >9C68 Offset >0000 - 5 >9814 >9C14 >9868 Offset >8000 >9C68 Offset >8000 - 6 >9818 >9C18 >986C Offset >0000 >9C6C Offset >0000 - 7 >981C >9C1C >986C Offset >8000 >9C6C Offset >8000 - 8 >9820 >9C20 >9870 Offset >0000 >9C70 Offset >0000 - 9 >9824 >9C24 >9870 Offset >8000 >9C70 Offset >8000 - 10 >9828 >9C28 >9874 Offset >0000 >9C74 Offset >0000 - 11 >982C >9C2C >9874 Offset >8000 >9C74 Offset >8000 - 12 >9830 >9C30 >9878 Offset >0000 >9C78 Offset >0000 - 13 >9834 >9C34 >9878 Offset >8000 >9C78 Offset >8000 - 14 >9838 >9C38 >987C Offset >0000 >9C7C Offset >0000 - 15 >983C >9C3C >987C Offset >8000 >9C7C Offset >8000 - - Module bank Read Write Read RAM6000 Write RAM6000 - GRAM GRAM - 16 (Ram) >9880 >9C80 >98C0 Offset >0000 >9CC0 Offset >0000 - 17 (Ram) >9884 >9C84 >98C0 Offset >8000 >9CC0 Offset >8000 - - DSR bank Read Write - 0 - 7 >9840 >9C40 - 8 - 15 >9844 >9C44 - 16 - 23 >9848 >9C48 - 24 - 31 >984C >9C4C - 32 - 39 >9850 >9C50 - 40 - 47 >9854 >9C54 - 48 - 55 >9858 >9C58 - 56 - 63 >985C >9C5C - - Notes: - 1. The bank numbering of the modules is not exactly the GROM bank numbering. - The first 16 banks are numbered as expected, but bank 16 is DSR bank 0-7, - bank 23 is DSR bank 56-63, bank 24 is ROM6000 of module bank 0, bank 31 is - ROM6000 of module bank 25, and finally bank 32 and 33 and the GRAM banks, - and bank 48 and 49 are the RAM banks. - Only accesses to the GROM/GRAM addresses will change the module bank. - - 2. Writing only works for areas set up as RAM. To write to the - FEEPROMs, you must used the algorithm specified by their respective - manufacturer. - - CRDENA: This flag is used to turn on and off the HSGPL. It is used in - particular at start-up when the DSR detects a cartridge in the - cartridge slot. In that case the memory locations 6000-7fff must be - deactivated on the HSGPL, or it would cause a collision with the - cartridge. However, CRDENA must not completely turn off the HSGPL, or the - console will not start up at all. At least GROMs 0, 1, and 2 must remain - active. - The technical specifications are not clear enough at this point. - - Raphael Nabet, 2003. - - Michael Zapf - October 2010: Rewritten as device - February 2012: Rewritten as class - -*****************************************************************************/ - -#include "emu.h" -#include "hsgpl.h" - -#define CRU_BASE 0x1B00 -#define SUPERCART_BASE 0x0800 - -#define TRACE_PORT 0 -#define TRACE_DSR 0 -#define TRACE_BANKING 0 -#define TRACE_CRU 0 -#define TRACE_ADDRESS 0 -#define TRACE_READ 0 -#define TRACE_WRITE 0 -#define TRACE_IGNORE 0 - -#define RAM6_TAG "cartram128k" -#define GRAM_TAG "gram128k" - -#define DSR_EEPROM "u9_dsr" -#define GROM_B_EEPROM "u4_grom" -#define GROM_A_EEPROM "u1_grom" -#define ROM6_EEPROM "u6_rom6" - -snug_high_speed_gpl_device::snug_high_speed_gpl_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : ti_expansion_card_device(mconfig, TI99_HSGPL, "SNUG High-speed GPL card", tag, owner, clock, "ti99_hsgpl", __FILE__), - m_dsr_eeprom(*this, DSR_EEPROM), - m_rom6_eeprom(*this, ROM6_EEPROM), - m_grom_a_eeprom(*this, GROM_A_EEPROM), - m_grom_b_eeprom(*this, GROM_B_EEPROM), - m_ram6_memory(*this, RAM6_TAG), - m_gram_memory(*this, GRAM_TAG), - m_dsr_enabled(false), - m_gram_enabled(false), - m_bank_inhibit(false), - m_dsr_page(0), - m_card_enabled(false), - m_write_enabled(false), - m_supercart_enabled(false), - m_led_on(false), - m_mbx_enabled(false), - m_ram_enabled(false), - m_flash_mode(false), - m_current_grom_port(0), - m_current_bank(0), - m_module_bank(0), - m_waddr_LSB(false), - m_raddr_LSB(false), - m_grom_address(0) -{ -} - -/* - Read hsgpl CRU interface. None here. -*/ -READ8Z_MEMBER(snug_high_speed_gpl_device::crureadz) -{ - return; -} - -/* - Write hsgpl CRU interface -*/ -WRITE8_MEMBER(snug_high_speed_gpl_device::cruwrite) -{ - // SuperCart handling - see gromport.c - if (m_supercart_enabled && ((offset & 0xfff0)==SUPERCART_BASE)) - { - if (data != 0) - { - if (TRACE_CRU) logerror("Supercart cru setting %04x\n", offset); - m_current_bank = (offset-0x0802)>>2; - } - return; - } - - // Common CRU handling - if ((offset & 0xff00)==CRU_BASE) - { - int bit = (offset >> 1) & 0x0f; - switch (bit) - { - case 0: - m_dsr_enabled = (data != 0); - if (TRACE_CRU) logerror("Set dsr_enabled=%x\n", data); - break; - case 1: - m_gram_enabled = (data != 0); - if (TRACE_CRU) logerror("Set gram_enabled=%x\n", data); - break; - case 2: - m_bank_inhibit = (data != 0); - if (TRACE_CRU) logerror("Set bank_inhibit=%x\n", data); - break; - case 3: - case 4: - case 5: - case 6: - case 7: - case 8: - if (data) - m_dsr_page |= (1 << (bit-3)); - else - m_dsr_page &= ~(1 << (bit-3)); - if (TRACE_CRU) logerror("Set dsr_page=%d\n", m_dsr_page); - break; - case 9: - m_card_enabled = data; - if (TRACE_CRU) logerror("Set card_enabled=%x\n", data); - break; - case 10: - m_write_enabled = data; - if (TRACE_CRU) logerror("Set write_enabled=%x\n", data); - break; - case 11: - m_supercart_enabled = data; - // CHECK: Do we have to reset the bank? - if (TRACE_CRU) logerror("Set supercart_enabled=%x\n", data); - break; - case 12: - m_led_on = data; - if (TRACE_CRU) logerror("Set led_on=%x\n", data); - break; - case 13: - break; - case 14: - m_mbx_enabled = data; - if (TRACE_CRU) logerror("Set mbx_enabled=%x\n", data); - break; - case 15: - m_ram_enabled = data; - if (TRACE_CRU) logerror("Set ram_enabled=%x\n", data); - break; - } - } -} - -/* - Memory read -*/ -READ8Z_MEMBER(snug_high_speed_gpl_device::readz) -{ - if ((offset & 0x7e000)==0x74000) - { - dsrspace_readz(space, offset & 0xffff, value, mem_mask); - } - - if ((offset & 0x7e000)==0x76000) - { - cartspace_readz(space, offset & 0xffff, value, mem_mask); - } - - // 1001 1wbb bbbb bba0 - if ((offset & 0x7fc01)==0x79800) - { - grom_readz(space, offset & 0xffff, value, mem_mask); - } -} - -/* - Memory write -*/ -WRITE8_MEMBER(snug_high_speed_gpl_device::write) -{ - if ((offset & 0x7e000)==0x76000) - { - cartspace_write(space, offset & 0xffff, data, mem_mask); - } - - // 1001 1wbb bbbb bba0 - if ((offset & 0x7fc01)==0x79c00) - { - grom_write(space, offset & 0xffff, data, mem_mask); - } -} - -/* - Specific read access: dsrspace -*/ -void snug_high_speed_gpl_device::dsrspace_readz(address_space& space, offs_t offset, uint8_t* value, uint8_t mem_mask) -{ - if (m_dsr_enabled) - { - *value = m_dsr_eeprom->read(space, (offset & 0x1fff) | (m_dsr_page<<13), mem_mask); - if (TRACE_READ) logerror("read dsr %04x[%02x] -> %02x\n", offset, m_dsr_page, *value); - } -} - -/* - Specific read access: cartspace -*/ -void snug_high_speed_gpl_device::cartspace_readz(address_space& space, offs_t offset, uint8_t* value, uint8_t mem_mask) -{ - if (!m_card_enabled || m_flash_mode) - { - if (TRACE_IGNORE) logerror("cartridge space read ignored (enable=%d, flash_mode=%d)\n", m_card_enabled, m_flash_mode); - return; - } - - if (m_module_bank < 16) - { - *value = m_rom6_eeprom->read(space, (offset & 0x1fff) | (m_current_bank<<13) | (m_current_grom_port<<15), mem_mask); - if (TRACE_READ) logerror("cartridge space read %04x -> %02x\n", offset, *value); - } - else - { - if (m_module_bank==16 || m_module_bank==17) - { - *value = m_ram6_memory->pointer()[(offset & 0x1fff) | (m_current_bank<<13) | ((m_module_bank & 0x000f)<<15)]; - } - else - { - logerror("unknown 0x6000 port\n"); - } - } -} - -/* - Specific read access: grom - Although we have a complete emulation of a GROM circuit, we need to re-implement - it here - which is indeed closer to reality, since the real HSGPL also - emulates GROM instead of using proper ones. -*/ -void snug_high_speed_gpl_device::grom_readz(address_space& space, offs_t offset, uint8_t* value, uint8_t mem_mask) -{ - if (machine().side_effect_disabled()) return; - - //activedevice_adjust_icount(-4); - - // 1001 10bb bbbb bba0 - int port = (offset & 0x3fc) >> 2; - - if (offset & 2) - { // Read GPL address. This must be available even when the rest - // of the card is offline (card_enabled=0). - m_waddr_LSB = false; - - if (m_raddr_LSB) - { - *value = ((m_grom_address + 1) & 0xff); - m_raddr_LSB = false; - } - else - { - *value = ((m_grom_address + 1) >> 8) & 0xff; - m_raddr_LSB = true; - } - } - else - { /* read GPL data */ - bool bNew = (port != m_current_grom_port); - m_current_grom_port = port; - - // It is not clear what effect a CRDENA=0 really has. - // At least GROMs 0-2 must remain visible, or the console will lock up. - if (m_card_enabled || m_grom_address < 0x6000) - { - if ((port < 2) && (m_gram_enabled)) - { - *value = m_gram_memory->pointer()[m_grom_address | (port<<16)]; - m_module_bank = port + 16; - if (TRACE_PORT) if (bNew) logerror("GRAM read access at %04x (GRMENA=1) - switch to bank %d\n", offset & 0xffff, m_module_bank); - } - else - { - if (port < 8) - { - if (!m_flash_mode) - { - *value = m_grom_a_eeprom->read(space, m_grom_address | (port<<16), mem_mask); - m_module_bank = port; - if (TRACE_PORT) if (bNew) logerror("GROM read access at %04x - switch to bank %d\n", offset & 0xffff, m_module_bank); - } - } - else - { - if (port < 16) - { - *value = m_grom_b_eeprom->read(space, m_grom_address | ((port-8)<<16), mem_mask); - m_module_bank = port; - if (TRACE_PORT) if (bNew) logerror("GROM read access at %04x - switch to bank %d\n", offset & 0xffff, m_module_bank); - } - else - { - if (port < 24) - { - // 9840-985c - // DSR banks 0-63 (8 KiB per bank, 8 banks per port) - *value = m_dsr_eeprom->read(space, m_grom_address | ((port-16)<<16), mem_mask); - // Don't change the module port - if (TRACE_DSR) if (bNew) logerror("read access to DSR bank %d-%d (%04x)\n", (port-16)<<3, ((port-16)<<3)+7, offset); - } - else - { - if (port < 32) - { - // 9860-987c (ports 24-31) - // Each ROM6 is available as 4 (sub)banks (switchable via 6000, 6002, 6004, 6006) - // Accordingly, each port has two complete sets - *value = m_rom6_eeprom->read(space, m_grom_address | ((port-24)<<16), mem_mask); - if (TRACE_PORT) if (bNew) logerror("ROM6 read access for module bank %d-%d (%04x)\n", (port-24)<<1, ((port-24)<<1)+1, offset & 0xffff); - } - else - { - // 9880, 9884 - if (port==32 || port==33) - { - *value = m_gram_memory->pointer()[m_grom_address | ((port-32)<<16)]; - m_module_bank = port - 16; - if (TRACE_PORT) if (bNew) logerror("GRAM read access at %04x - switch to bank %d\n", offset & 0xffff, m_module_bank); - } - else - { - if (port==48 || port==49) - { -// *value = m_ram6_memory->pointer()[m_grom_address]; - *value = m_ram6_memory->pointer()[m_grom_address | ((port-48)<<16)]; - if (TRACE_PORT) if (bNew) logerror("RAM read access at %04x\n", offset & 0xffff); - } - else - { - logerror("Attempt to read from undefined port 0x%0x; ignored.\n", port); - } - } - } - } - } - } - } - } - // The address auto-increment should be done even when the card is - // offline - if (TRACE_ADDRESS) logerror("HSGPL GROM address %04x\n", m_grom_address); - m_grom_address++; - m_raddr_LSB = m_waddr_LSB = false; - } -} - -/* - Specific write access: cartspace -*/ -void snug_high_speed_gpl_device::cartspace_write(address_space& space, offs_t offset, uint8_t data, uint8_t mem_mask) -{ - if (!m_card_enabled || m_flash_mode) - { - if (TRACE_IGNORE) logerror("write ignored: card_enabled=%d, flash_mode=%d\n", m_card_enabled, m_flash_mode); - return; - } - - if (TRACE_WRITE) logerror("cartridge space write %04x <- %02x\n", offset, data); - - if (!m_bank_inhibit && (m_module_bank < 16)) - { - if ((offset & 1) == 0) - { - if ((offset & 0x9ff0)!=0) logerror("unplausible ROM6 write: %04x <- %02x\n", offset, data); - m_current_bank = (offset>>1) & 3; - if (TRACE_BANKING) logerror("select bank %d\n", m_current_bank); - } - return; /* right??? */ - } - - if ((m_mbx_enabled) && (offset==0x6ffe)) - { /* MBX: mapper at 0x6ffe */ - m_current_bank = data & 0x03; - if (TRACE_BANKING) logerror("select bank MBX %d\n", m_current_bank); - return; - } - - // MBX: RAM in 0x6c00-0x6ffd (it is unclear whether the MBX RAM area is - // enabled/disabled by the wriena bit). I guess RAM is unpaged, but it is - // not implemented - if ((m_write_enabled) || ((m_mbx_enabled) && ((offset & 0xfc00)==0x6c00))) - { - if ((m_module_bank < 2) && (m_ram_enabled)) - { - m_ram6_memory->pointer()[(offset & 0x1fff) | (m_current_bank<<13) | (m_module_bank<<15) ] = data; - } - else - { // keep in mind that these lines are also reached for port < 2 - // and !ram_enabled - if (m_module_bank < 16) - { - logerror("invalid write %04x <- %02x\n", offset, data); - // feeprom is normally written to using GPL ports, and I don't know - // whether writing through >6000 page is enabled -/* - at29c040a_w(feeprom_rom6, 1 + 2*offset + 0x2000*hsgpl.cur_bank + 0x8000*port, data); - at29c040a_w(feeprom_rom6, 2*offset + 0x2000*hsgpl.cur_bank + 0x8000*port, data >> 8); -*/ - } - else - { - if (m_module_bank==16 || m_module_bank==17) - { - m_ram6_memory->pointer()[(offset & 0x1fff) | (m_current_bank<<13) | ((m_module_bank-16)<<15)] = data; - } - else - { - logerror("unknown 0x6000 port\n"); - } - } - } - } -} - -/* - Specific write access: grom_write -*/ -void snug_high_speed_gpl_device::grom_write(address_space& space, offs_t offset, uint8_t data, uint8_t mem_mask) -{ - if (machine().side_effect_disabled()) return; - - //activedevice_adjust_icount(-4); - - // 1001 11bb bbbb bba0 - int port = (offset & 0x3fc) >> 2; - - if (offset & 2) - { // Write GPL address. This must be available even when the rest - // of the card is offline (card_enabled=0). - m_raddr_LSB = false; - - if (m_waddr_LSB) - { - m_grom_address = (m_grom_address & 0xFF00) | data; - m_waddr_LSB = false; - } - else - { - m_grom_address = (data << 8) | (m_grom_address & 0xFF); - m_waddr_LSB = true; - } - } - else - { - bool bNew = (port != m_current_grom_port); - m_current_grom_port = port; - // It is not clear what effect a CRDENA=0 really has. - // At least GROMs 0-2 must remain visible, or the console will lock up. - if (m_card_enabled || m_grom_address < 0x6000) - { - /* write GPL data */ - if (m_write_enabled) - { - if ((port < 2) && (m_gram_enabled)) - { - m_gram_memory->pointer()[m_grom_address | (port<<16)] = data; - m_module_bank = port + 16; - if (TRACE_PORT) if (bNew) logerror("GRAM write access at %04x (GRMENA=1) - switch to bank %d\n", offset & 0xffff, port); - } - else - { - if (port < 8) - { - m_grom_a_eeprom->write(space, m_grom_address | (port<<16), data, mem_mask); - m_module_bank = port; - if (TRACE_PORT) if (bNew) logerror("GROM write access at %04x - switch to bank %d\n", offset & 0xffff, port); - } - else - { - if (port < 16) - { - m_grom_b_eeprom->write(space, m_grom_address | ((port-8)<<16), data, mem_mask); - m_module_bank = port; - if (TRACE_PORT) if (bNew) logerror("GROM write access at %04x - switch to bank %d\n", offset & 0xffff, port); - } - else - { - if (port < 24) - { - m_dsr_eeprom->write(space, m_grom_address | ((port-16)<<16), data, mem_mask); - if (TRACE_DSR) if (bNew) logerror("write access to DSR bank %d-%d (%04x)\n", (port-16)<<3, ((port-16)<<3)+7, offset); - } - else - { - if (port < 32) - { - m_rom6_eeprom->write(space, m_grom_address | ((port-24)<<16), data, mem_mask); - if (TRACE_PORT) if (bNew) logerror("ROM6 write access for module bank %d-%d (%04x)\n", (port-24)<<1, ((port-24)<<1)+1,offset & 0xffff); - } - else - { - if (port==32 || port==33) - { - m_gram_memory->pointer()[m_grom_address | ((port-32)<<16)] = data; - m_module_bank = port - 16; - if (TRACE_PORT) if (bNew) logerror("GRAM write access at %04x - switch to bank %d\n", offset & 0xffff, m_module_bank); - } - else - { - if (port==48 || port==49) - { -// m_ram6_memory->pointer()[m_grom_address] = data; - m_ram6_memory->pointer()[m_grom_address | ((port-48)<<16)] = data; - if (TRACE_PORT) if (bNew) logerror("RAM write access at %04x\n", offset & 0xffff); - } - else - { - logerror("Attempt to write to undefined port; ignored.\n"); - } - } - } - } - } - } - } - } - } - // The address auto-increment should be done even when the card is - // offline - m_grom_address++; - m_raddr_LSB = m_waddr_LSB = false; - } -} - - -void snug_high_speed_gpl_device::device_start() -{ - save_item(NAME(m_dsr_enabled)); - save_item(NAME(m_gram_enabled)); - save_item(NAME(m_bank_inhibit)); - save_item(NAME(m_dsr_page)); - save_item(NAME(m_card_enabled)); - save_item(NAME(m_write_enabled)); - save_item(NAME(m_supercart_enabled)); - save_item(NAME(m_led_on)); - save_item(NAME(m_mbx_enabled)); - save_item(NAME(m_ram_enabled)); - save_item(NAME(m_flash_mode)); - save_item(NAME(m_current_grom_port)); - save_item(NAME(m_current_bank)); - save_item(NAME(m_module_bank)); - save_item(NAME(m_waddr_LSB)); - save_item(NAME(m_raddr_LSB)); - save_item(NAME(m_grom_address)); -} - -void snug_high_speed_gpl_device::device_reset() -{ - logerror("reset\n"); - m_dsr_enabled = false; - m_gram_enabled = false; - m_bank_inhibit = false; - m_dsr_page = 0; - m_card_enabled = true; // important, assumed to be enabled by default - m_write_enabled = false; - m_supercart_enabled = false; - m_led_on = false; - m_mbx_enabled = false; - m_ram_enabled = false; - m_flash_mode = (ioport("HSGPLMODE")->read()==0); - - m_current_grom_port = 0; - m_current_bank = 0; - - m_waddr_LSB = false; - m_raddr_LSB = false; - m_grom_address = 0; - m_module_bank = 0; -} - -void snug_high_speed_gpl_device::device_stop() -{ -} - -// Flash setting is used to flash an empty HSGPL DSR ROM -INPUT_PORTS_START( ti99_hsgpl) - PORT_START( "HSGPLMODE" ) - PORT_DIPNAME( 0x01, 0x01, "HSGPL mode" ) - PORT_DIPSETTING( 0x00, "Flash" ) - PORT_DIPSETTING( 0x01, "Normal" ) -INPUT_PORTS_END - -MACHINE_CONFIG_FRAGMENT( ti99_hsgpl ) - MCFG_AT29C040A_ADD( DSR_EEPROM ) - MCFG_AT29C040A_ADD( GROM_B_EEPROM ) - MCFG_AT29C040A_ADD( GROM_A_EEPROM ) - MCFG_AT29C040A_ADD( ROM6_EEPROM ) - MCFG_RAM_ADD(RAM6_TAG) - MCFG_RAM_DEFAULT_SIZE("128k") - MCFG_RAM_DEFAULT_VALUE(0) - MCFG_RAM_ADD(GRAM_TAG) - MCFG_RAM_DEFAULT_SIZE("128k") - MCFG_RAM_DEFAULT_VALUE(0) -MACHINE_CONFIG_END - -machine_config_constructor snug_high_speed_gpl_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( ti99_hsgpl ); -} - -ioport_constructor snug_high_speed_gpl_device::device_input_ports() const -{ - return INPUT_PORTS_NAME(ti99_hsgpl); -} - -const device_type TI99_HSGPL = device_creator; diff --git a/src/devices/bus/ti99_peb/hsgpl.h b/src/devices/bus/ti99_peb/hsgpl.h deleted file mode 100644 index 99bd56747cd..00000000000 --- a/src/devices/bus/ti99_peb/hsgpl.h +++ /dev/null @@ -1,82 +0,0 @@ -// license:LGPL-2.1+ -// copyright-holders:Michael Zapf -/**************************************************************************** - - SNUG HSGPL card emulation. - See hsgpl.c for documentation - - Original code by Raphael Nabet, 2003. - - Michael Zapf - October 2010: Rewritten as device - February 2012: Rewritten as class - -*****************************************************************************/ - -#ifndef __HSGPL__ -#define __HSGPL__ - -#include "peribox.h" -#include "machine/at29x.h" -#include "machine/ram.h" - -extern const device_type TI99_HSGPL; - -class snug_high_speed_gpl_device : public ti_expansion_card_device -{ -public: - snug_high_speed_gpl_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - DECLARE_READ8Z_MEMBER(readz) override; - DECLARE_WRITE8_MEMBER(write) override; - - DECLARE_READ8Z_MEMBER(crureadz) override; - DECLARE_WRITE8_MEMBER(cruwrite) override; - -protected: - virtual void device_start(void) override; - virtual void device_reset(void) override; - virtual void device_stop(void) override; - virtual ioport_constructor device_input_ports() const override; - - virtual machine_config_constructor device_mconfig_additions() const override; - -private: - required_device m_dsr_eeprom; - required_device m_rom6_eeprom; - required_device m_grom_a_eeprom; - required_device m_grom_b_eeprom; - - required_device m_ram6_memory; - required_device m_gram_memory; - - void dsrspace_readz(address_space& space, offs_t offset, uint8_t* value, uint8_t mem_mask); - void cartspace_readz(address_space& space, offs_t offset, uint8_t* value, uint8_t mem_mask); - void grom_readz(address_space& space, offs_t offset, uint8_t* value, uint8_t mem_mask); - - void cartspace_write(address_space& space, offs_t offset, uint8_t data, uint8_t mem_mask); - void grom_write(address_space& space, offs_t offset, uint8_t data, uint8_t mem_mask); - - bool m_dsr_enabled; - bool m_gram_enabled; - bool m_bank_inhibit; - int m_dsr_page; - bool m_card_enabled; - bool m_write_enabled; - bool m_supercart_enabled; - bool m_led_on; - bool m_mbx_enabled; - bool m_ram_enabled; - bool m_flash_mode; - - int m_current_grom_port; - int m_current_bank; - - int m_module_bank; - - // GROM emulation - bool m_waddr_LSB; - bool m_raddr_LSB; - int m_grom_address; -}; - -#endif diff --git a/src/devices/bus/ti99_peb/memex.cpp b/src/devices/bus/ti99_peb/memex.cpp deleted file mode 100644 index f0a3dffbee7..00000000000 --- a/src/devices/bus/ti99_peb/memex.cpp +++ /dev/null @@ -1,161 +0,0 @@ -// license:LGPL-2.1+ -// copyright-holders:Michael Zapf -/*************************************************************************** - - Geneve "Memex" memory expansion - may be used together with the GenMod feature to expand the memory to the - full 2 MiB range. - - Michael Zapf - February 2011 - February 2012: rewritten as class - -****************************************************************************/ - -#include "emu.h" -#include "memex.h" - -#define RAMREGION "ram2meg" -#define TRACE_CONFIG 0 - -enum -{ - MDIP1 = 0x01, - MDIP2 = 0x02, - MDIP3 = 0x04, - MDIP4 = 0x08, - MDIP5 = 0x10, - MDIP6 = 0x20, - MDIP7 = 0x40, - MDIP8 = 0x80 -}; - -geneve_memex_device::geneve_memex_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) -: ti_expansion_card_device(mconfig, TI99_MEMEX, "Geneve memory expansion card", tag, owner, clock, "ti99_memex", __FILE__), - m_ram(*this, RAMREGION) -{ -} - -bool geneve_memex_device::access_enabled(offs_t offset) -{ - // 1 0111 .... .... .... .... p-box address block 0xxx ... fxxx - // first two bits are AME, AMD bits available on Genmod only - // if AMD, AME are not available we assume AMD=0, AME=1 - // must be set on the Geneve board - // Some traditional cards will not decode the AMx lines, so - // we may have to lock out those areas - int page = (offset >> 13)&0xff; - - // SW2: 10xxx010 locked when SW2=off - // 10111010 locked when SW2=on - if (page == 0xba) return false; - if ((page & 0xc7)==0x82 && ((m_switches & MDIP2)==0)) - { - if (TRACE_CONFIG) logerror("memex blocks page %02x; dip2=%d\n", page, (m_switches & MDIP2)!=0); - return false; - } - - // Switch page - // SW3: 111010xx enabled for SWx=0,blocked for SWx=1 - // SW4: 111011xx - // SW5: 111100xx - // SW6: 111101xx - // SW7: 111110xx - // SW8: 111111xx - - if (page >= 0xe8 && page <= 0xff) - { - return ((m_switches & (4<< (((page>>2) & 0x0f)-10))) == 0); - } - return true; -} - -/* - Memory read. The memory is at locations 0x000000-0x1fffff. Some of these - regions are hidden by onboard devices of the Geneve. We must block some - areas which would otherwise interfere with peripheral cards. - - Note that the incomplete decoding of the standard Geneve must be - considered. -*/ -READ8Z_MEMBER( geneve_memex_device::readz ) -{ - /* If not Genmod, add the upper two address bits 10 */ - if (!m_genmod) offset |= 0x100000; - - // The card is accessed for all addresses in the address space - if (access_enabled(offset)) - *value = m_ram->pointer()[offset]; -} - -/* - Memory write -*/ -WRITE8_MEMBER( geneve_memex_device::write ) -{ - /* If not Genmod, add the upper two address bits 10 */ - if (!m_genmod) offset |= 0x100000; - - // The card is accessed for all addresses in the address space - if (access_enabled(offset)) - m_ram->pointer()[offset] = data; -} - -/**************************************************************************/ - -void geneve_memex_device::device_start() -{ - save_item(NAME(m_switches)); -} - -void geneve_memex_device::device_reset() -{ - m_switches = ioport("MEMEXDIPS")->read(); - if (TRACE_CONFIG) logerror("memex dips = %02x\n", m_switches); -} - -INPUT_PORTS_START( memex ) - PORT_START( "MEMEXDIPS" ) - PORT_DIPNAME( MDIP1, MDIP1, "MEMEX SW1" ) - PORT_DIPSETTING( 0x00, "LED half-bright for 0 WS") - PORT_DIPSETTING( MDIP1, "LED full-bright") - PORT_DIPNAME( MDIP2, 0x00, "MEMEX SW2" ) - PORT_DIPSETTING( 0x00, "Lock out all BA mirrors") - PORT_DIPSETTING( MDIP2, "Lock out page BA only") - PORT_DIPNAME( MDIP3, 0x00, "MEMEX SW3" ) - PORT_DIPSETTING( 0x00, "Enable pages E8-EB") - PORT_DIPSETTING( MDIP3, "Lock out pages E8-EB") - PORT_DIPNAME( MDIP4, 0x00, "MEMEX SW4" ) - PORT_DIPSETTING( 0x00, "Enable pages EC-EF") - PORT_DIPSETTING( MDIP4, "Lock out pages EC-EF") - PORT_DIPNAME( MDIP5, 0x00, "MEMEX SW5" ) - PORT_DIPSETTING( 0x00, "Enable pages F0-F3") - PORT_DIPSETTING( MDIP5, "Lock out pages F0-F3") - PORT_DIPNAME( MDIP6, 0x00, "MEMEX SW6" ) - PORT_DIPSETTING( 0x00, "Enable pages F4-F7") - PORT_DIPSETTING( MDIP6, "Lock out pages F4-F7") - PORT_DIPNAME( MDIP7, 0x00, "MEMEX SW7" ) - PORT_DIPSETTING( 0x00, "Enable pages F8-FB") - PORT_DIPSETTING( MDIP7, "Lock out pages F8-FB") - PORT_DIPNAME( MDIP8, 0x00, "MEMEX SW8" ) - PORT_DIPSETTING( 0x00, "Enable pages FC-FF") - PORT_DIPSETTING( MDIP8, "Lock out pages FC-FF") -INPUT_PORTS_END - -MACHINE_CONFIG_FRAGMENT( memex ) - MCFG_RAM_ADD(RAMREGION) - MCFG_RAM_DEFAULT_SIZE("2M") - MCFG_RAM_DEFAULT_VALUE(0) -MACHINE_CONFIG_END - -machine_config_constructor geneve_memex_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( memex ); -} - -ioport_constructor geneve_memex_device::device_input_ports() const -{ - return INPUT_PORTS_NAME( memex ); -} - -const device_type TI99_MEMEX = device_creator; diff --git a/src/devices/bus/ti99_peb/memex.h b/src/devices/bus/ti99_peb/memex.h deleted file mode 100644 index 63d21ab9c13..00000000000 --- a/src/devices/bus/ti99_peb/memex.h +++ /dev/null @@ -1,43 +0,0 @@ -// license:LGPL-2.1+ -// copyright-holders:Michael Zapf -/**************************************************************************** - - Geneve "Memex" memory expansion - See memex.c for documentation - - Michael Zapf, February 2011 - February 2012: Rewritten as class - -*****************************************************************************/ - -#ifndef __MEMEXMEM__ -#define __MEMEXMEM__ - -#include "peribox.h" -#include "machine/ram.h" - -extern const device_type TI99_MEMEX; - -class geneve_memex_device : public ti_expansion_card_device -{ -public: - geneve_memex_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - DECLARE_READ8Z_MEMBER(readz) override; - DECLARE_WRITE8_MEMBER(write) override; - - DECLARE_READ8Z_MEMBER(crureadz) override { }; - DECLARE_WRITE8_MEMBER(cruwrite) override { }; - -protected: - void device_start() override; - void device_reset() override; - machine_config_constructor device_mconfig_additions() const override; - virtual ioport_constructor device_input_ports() const override; - -private: - bool access_enabled(offs_t offset); - required_device m_ram; - uint8_t m_switches; -}; - -#endif diff --git a/src/devices/bus/ti99_peb/myarcmem.cpp b/src/devices/bus/ti99_peb/myarcmem.cpp deleted file mode 100644 index 5c1496279f8..00000000000 --- a/src/devices/bus/ti99_peb/myarcmem.cpp +++ /dev/null @@ -1,214 +0,0 @@ -// license:LGPL-2.1+ -// copyright-holders:Michael Zapf -/**************************************************************************** - - TI-99 Myarc memory expansion MEXP-1 - - The card features 128 KiB of RAM, not buffered. In the TI-99/4A address - space, RAM is located at 2000-3fff and a000-ffff (32 KiB). Using the CRU - interface, four banks of 32K each can be made visible in this area. - - We also emulate the 512 KiB version of this card; it works in the same way - but offers two more CRU bits for a total of 16 banks of 32 KiB RAM. - - Beside the RAM, the card also contains ROM with a DSR (Device service - routine, TI's term for the firmware). This 8 KiB ROM allows for - testing and partitioning the card, and it introduces new devices which - are make available to BASIC programs, like a RAMdisk device. - - There also was a 32 KiB version which did not contain a DSR; thus, it was - equivalent to a standard TI 32 KiB memory expansion and is not emulated - here. - - The firmware to be used with this card is a version that is tailored to - work with Myarc Extended Basic II. - - Michael Zapf - February 2012: rewritten as a class, adding DSR support - -****************************************************************************/ -#include "emu.h" -#include "myarcmem.h" - -/* This card has two CRU bases where it answers. */ -#define MYARCMEM_CRU_BASE1 0x1000 -#define MYARCMEM_CRU_BASE2 0x1900 - -enum -{ - SIZE_128, - SIZE_512 -}; - -myarc_memory_expansion_device::myarc_memory_expansion_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) -: ti_expansion_card_device(mconfig, TI99_MYARCMEM, "Myarc Memory expansion card MEXP-1", tag, owner, clock, "ti99_myarcmem", __FILE__), - m_ram(*this, RAM_TAG), - m_dsrrom(nullptr), m_bank(0), m_size(0) -{ -} - -int myarc_memory_expansion_device::get_base(int offset) -{ - int base; - if (m_size == SIZE_128) - { - base = ((m_bank & 0x03) << 15); - } - else - { - base = (m_bank << 15); - } - base |= (offset & 0x1fff); - return base; -} - -/* - Memory read access. - RAM is at 2000-3fff, a000-ffff; - ROM is at 4000-5fff (if CRU bit 0 is set) -*/ -READ8Z_MEMBER(myarc_memory_expansion_device::readz) -{ - int base = get_base(offset); - - switch((offset & 0xe000)>>13) - { - case 1: - *value = m_ram->pointer()[base]; - break; - case 2: - if (m_selected) *value = m_dsrrom[offset & 0x1fff]; - break; - case 5: - *value = m_ram->pointer()[base | 0x2000]; - break; - case 6: - *value = m_ram->pointer()[base | 0x4000]; - break; - case 7: - *value = m_ram->pointer()[base | 0x6000]; - break; - default: - break; - } -} - -/* - Memory write access. DSRROM does not allow writing. -*/ -WRITE8_MEMBER(myarc_memory_expansion_device::write) -{ - int base = get_base(offset); - - switch((offset & 0xe000)>>13) - { - case 1: - m_ram->pointer()[base] = data; - break; - case 5: - m_ram->pointer()[base | 0x2000] = data; - break; - case 6: - m_ram->pointer()[base | 0x4000] = data; - break; - case 7: - m_ram->pointer()[base | 0x6000] = data; - break; - default: - break; - } -} - -/* - CRU read. None here. -*/ -READ8Z_MEMBER(myarc_memory_expansion_device::crureadz) -{ -} - -/* - CRU write. Bit 0 turns on the DSR (firmware), bits 1-3 are used to select - one of several 32K RAM banks. - - Select bits - 1000 = DSRROM seen on 4000-5fff (128, 512K) - 1002 = bit 0 of RAM bank value (128, 512K) - 1004 = bit 1 of RAM bank value (128, 512K) - 1006 = bit 2 of RAM bank value (512K) - 1008 = bit 3 of RAM bank value (512K) -*/ -WRITE8_MEMBER(myarc_memory_expansion_device::cruwrite) -{ - if (((offset & 0xff00)==MYARCMEM_CRU_BASE1)||((offset & 0xff00)==MYARCMEM_CRU_BASE2)) - { - if ((offset & 0x000e)==0) - { - // Turn on/off DSR - m_selected = (data!=0); - } - else - { - // xxxx xxxx xxxx 0010 - // xxxx xxxx xxxx 0100 - // xxxx xxxx xxxx 0110 - // xxxx xxxx xxxx 1000 - int bankbit = 1 << (((offset & 0x000e)>>1)-1); - - if (data==0) - m_bank &= ~bankbit; - else - m_bank |= bankbit; - } - } -} - -void myarc_memory_expansion_device::device_start() -{ - m_dsrrom = memregion(DSRROM)->base(); - save_item(NAME(m_bank)); - save_item(NAME(m_size)); -} - -void myarc_memory_expansion_device::device_reset() -{ - m_size = ioport("SIZE")->read(); - - // Resetting values - m_bank = 0; - m_selected = false; -} - -INPUT_PORTS_START( myarc_exp ) - PORT_START( "SIZE" ) - PORT_CONFNAME( 0x01, SIZE_512, "Myarc memory card size" ) - PORT_CONFSETTING( SIZE_128, "128 KiB") - PORT_CONFSETTING( SIZE_512, "512 KiB") -INPUT_PORTS_END - -ROM_START( myarc_exp ) - ROM_REGION(0x2000, DSRROM, 0) - ROM_LOAD("myarc512k_xb2_dsr.bin", 0x0000, 0x2000, CRC(41fbb96d) SHA1(4dc7fdfa46842957bcbb0cf2c37764e4bb6d877a)) /* DSR for Ramdisk etc. */ -ROM_END - -MACHINE_CONFIG_FRAGMENT( myarc_exp ) - MCFG_RAM_ADD(RAM_TAG) - MCFG_RAM_DEFAULT_SIZE("512k") - MCFG_RAM_DEFAULT_VALUE(0) -MACHINE_CONFIG_END - -machine_config_constructor myarc_memory_expansion_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( myarc_exp ); -} - -const tiny_rom_entry *myarc_memory_expansion_device::device_rom_region() const -{ - return ROM_NAME( myarc_exp ); -} - -ioport_constructor myarc_memory_expansion_device::device_input_ports() const -{ - return INPUT_PORTS_NAME(myarc_exp); -} - -const device_type TI99_MYARCMEM = device_creator; diff --git a/src/devices/bus/ti99_peb/myarcmem.h b/src/devices/bus/ti99_peb/myarcmem.h deleted file mode 100644 index 227409aedfb..00000000000 --- a/src/devices/bus/ti99_peb/myarcmem.h +++ /dev/null @@ -1,46 +0,0 @@ -// license:LGPL-2.1+ -// copyright-holders:Michael Zapf -/**************************************************************************** - - TI-99 Myarc memory expansion - See myarcmem.c for documentation - - Michael Zapf, September 2010 - February 2012: Rewritten as class - -*****************************************************************************/ - -#ifndef __MYARCMEM__ -#define __MYARCMEM__ - -#include "peribox.h" -#include "machine/ram.h" - -extern const device_type TI99_MYARCMEM; - -class myarc_memory_expansion_device : public ti_expansion_card_device -{ -public: - myarc_memory_expansion_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - DECLARE_READ8Z_MEMBER(readz) override; - DECLARE_WRITE8_MEMBER(write) override; - - DECLARE_READ8Z_MEMBER(crureadz) override; - DECLARE_WRITE8_MEMBER(cruwrite) override; - -protected: - void device_start(void) override; - void device_reset(void) override; - const tiny_rom_entry *device_rom_region(void) const override; - ioport_constructor device_input_ports() const override; - machine_config_constructor device_mconfig_additions() const override; - -private: - int get_base(int offset); - required_device m_ram; - uint8_t* m_dsrrom; - int m_bank; - int m_size; -}; - -#endif diff --git a/src/devices/bus/ti99_peb/pcode.cpp b/src/devices/bus/ti99_peb/pcode.cpp deleted file mode 100644 index 7fabe3295ec..00000000000 --- a/src/devices/bus/ti99_peb/pcode.cpp +++ /dev/null @@ -1,376 +0,0 @@ -// license:LGPL-2.1+ -// copyright-holders:Michael Zapf -/**************************************************************************** - - TI-99 P-Code Card emulation. - - The P-Code card is part of the UCSD p-System support for the TI-99 - computer family. This system is a comprehensive development system for - creating, running, and debugging programs written in UCSD Pascal. - - The complete system consists of - - P-Code card, plugged into the Peripheral Expansion Box (PEB) - - Software on disk: - + PHD5063: UCSD p-System Compiler - + PHD5064: UCSD p-System Assembler/Linker - + PHD5065: UCSD p-System Editor/Filer (2 disks) - - The card has a switch on the circuit board extending outside the PEB - which allows to turn off the card without removing it. Unlike other - expansion cards for the TI system, the P-Code card immediately takes - over control after the system is turned on. - - When the p-System is booted, the screen turns cyan and remains empty. - There are two beeps, a pause for about 15 seconds, another three beeps, - and then a welcome text is displayed with a one-line menu at the screen - top. (Delay times seem unrealistically short; the manual says - 30-60 seconds. To be checked.) - Many of the functions require one of the disks be inserted in one - of the disk drives. You can leave the p-System by waiting for the menu - to appear, and typing H (halt). This returns you to the Master Title - Screen, and the card is inactive until the system is reset. - - The P-Code card contains the P-Code interpreter which is somewhat - comparable to today's Java virtual machine. Programs written for the - p-System are interchangeable between different platforms. - - On the P-Code card we find 12 KiB of ROM, visible in the DSR memory area - (>4000 to >5FFF). The first 4 KiB (>4000->4FFF) are from the 4732 ROM, - the second and third 4 KiB (>5000->5FFF) are from a 4764 ROM, switched - by setting the CRU bit 4 to 1 on the CRU base >1F00. - - CRU base >1F00 - Bit 0: Activate card - Bit 4: Select bank 2 of the 4764 ROM (0 = bank 1) - Bit 7: May be connected to an indicator LED which is by default - wired to bit 0 (on the PCB) - - The lines are used in a slightly uncommon way: the three bits of the - CRU bit address are A8, A13, and A14 (A15=LSB). Hence, bit 4 is at - address >1F80, and bit 7 is at address >1F86. These bits are purely - write-only. - - Moreover, the card contains 48 KiB of GROM memory, occupying the address - space from G>0000 to G>FFFF in portions of 6KiB at every 8KiB boundary. - - Another specialty of the card is that the GROM contents are accessed via - another GROM base address than what is used in the console: - - >5BFC = read GROM data - - >5BFE = read GROM address - - >5FFC = write GROM data - - >5FFE = write GROM address - - This makes the GROM memory "private" to the card; together with the - rest of the ROM space the ports become invisible when the card is - deactivated. - - Michael Zapf - - July 2009: First version - September 2010: Rewritten as device - February 2012: Rewritten as class - -*****************************************************************************/ - -#include "emu.h" -#include "pcode.h" - -#define PCODE_GROM_TAG "pcode_grom" -#define PCODE_ROM_TAG "pcode_rom" - -#define PGROM0_TAG "grom0" -#define PGROM1_TAG "grom1" -#define PGROM2_TAG "grom2" -#define PGROM3_TAG "grom3" -#define PGROM4_TAG "grom4" -#define PGROM5_TAG "grom5" -#define PGROM6_TAG "grom6" -#define PGROM7_TAG "grom7" -#define ACTIVE_TAG "ACTIVE" - -#define CRU_BASE 0x1f00 - -#define TRACE_ROM 0 -#define TRACE_GROM 0 -#define TRACE_CRU 0 -#define TRACE_SWITCH 0 - -ti_pcode_card_device::ti_pcode_card_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) -: ti_expansion_card_device(mconfig, TI99_P_CODE, "TI-99 P-Code Card", tag, owner, clock, "ti99_pcode", __FILE__), - m_rom(nullptr), - m_bank_select(0), - m_active(false), - m_clock_count(0), - m_clockhigh(false), - m_inDsrArea(false), - m_isrom0(false), - m_isrom12(false), - m_isgrom(false), - m_address(0) -{ -} - -SETADDRESS_DBIN_MEMBER( ti_pcode_card_device::setaddress_dbin ) -{ - m_address = offset; - m_inDsrArea = ((m_address & m_select_mask)==m_select_value); - - line_state a14 = ((m_address & 2)!=0)? ASSERT_LINE : CLEAR_LINE; - - m_isrom0 = ((m_address & 0xf000)==0x4000); - m_isrom12 = ((m_address & 0xf000)==0x5000); - - // Valid access (GROM write with DBIN=0 or read with DBIN=1) - bool validaccess = (state==CLEAR_LINE || (m_address & 0x0400)==0); - - // GROM access 0101 1011 1111 1100 - m_isgrom = ((m_address & 0xfbfd)==0x5bfc) && validaccess; - - if (validaccess) - { - int lines = (state==ASSERT_LINE)? 1 : 0; - if (a14==ASSERT_LINE) lines |= 2; - line_state select = m_isgrom? ASSERT_LINE : CLEAR_LINE; - - // always deliver to GROM so that the select line may be cleared - for (int i=0; i < 8; i++) - m_grom[i]->set_lines(space, lines, select); - } -} - -void ti_pcode_card_device::debugger_read(address_space& space, uint16_t offset, uint8_t& value) -{ - // The debuger does not call setaddress - if (m_active && ((offset & m_select_mask)==m_select_value)) - { - bool isrom0 = ((offset & 0xf000)==0x4000); - bool isrom12 = ((offset & 0xf000)==0x5000); - if (isrom0) value = m_rom[m_address & 0x0fff]; - else - if (isrom12) value = m_rom[(m_bank_select<<12) | (offset & 0x0fff)]; - } -} - -READ8Z_MEMBER( ti_pcode_card_device::readz ) -{ - // Care for debugger - if (machine().side_effect_disabled()) - { - debugger_read(space, offset, *value); - } - - if (m_active && m_inDsrArea && m_selected) - { - if (m_isrom0) - { - *value = m_rom[m_address & 0x0fff]; - if (TRACE_ROM) logerror("Read from rom %04x: %02x\n", offset&0xffff, *value); - } - else - { - if (m_isgrom) - { - for (auto& elem : m_grom) elem->readz(space, m_address, value); - if (TRACE_GROM) logerror("Read from grom %04x: %02x\n", m_address&0xffff, *value); - } - else - { - if (m_isrom12) - { - // Accesses ROM 4764 (2*4K) - // We have two banks here which are activated according - // to the setting of CRU bit 4 - // Bank 0 is the ROM above - // 0001 xxxx xxxx xxxx Bank 1 - // 0010 xxxx xxxx xxxx Bank 2 - *value = m_rom[(m_bank_select<<12) | (m_address & 0x0fff)]; - if (TRACE_ROM) logerror("Read from rom %04x (%02x): %02x\n", m_address&0xffff, m_bank_select, *value); - } - } - } - } -} - -/* - Write a byte in P-Code ROM space. This is only used for setting the - GROM address. -*/ -WRITE8_MEMBER( ti_pcode_card_device::write ) -{ - if (machine().side_effect_disabled()) return; - if (m_active && m_isgrom && m_selected) - { - for (auto & elem : m_grom) elem->write(space, m_address, data); - } -} - -/* - Common READY* line from the GROMs. -*/ -WRITE_LINE_MEMBER( ti_pcode_card_device::ready_line ) -{ - m_slot->set_ready(state); -} - -/* - CLKOUT line from the CPU. This line is divided by 8 to generate a 375 Khz - clock input for the GROMs, which are thus running at a lower rate than - those in the console driven by the VDP (477 kHz). -*/ -WRITE_LINE_MEMBER( ti_pcode_card_device::clock_in) -{ - m_clock_count = (m_clock_count+1) & 0x03; // four pulses high, four pulses low - if (m_clock_count==0) - { - // Toggle - m_clockhigh = !m_clockhigh; - for (auto & elem : m_grom) elem->gclock_in(m_clockhigh? ASSERT_LINE : CLEAR_LINE); - } -} - -/* - CRU read handler. The P-Code card does not offer CRU read lines, so - we just ignore any request. (Note that CRU lines are not like memory; you - may be able to write to them, but not necessarily read them again.) -*/ -READ8Z_MEMBER(ti_pcode_card_device::crureadz) -{ -} - -/* - The CRU write handler. - Bit 0 = activate card - Bit 4 = select second bank of high ROM. - - Somewhat uncommon, the CRU address is created from address lines - A8, A13, and A14 so bit 0 is at 0x1f00, but bit 4 is at 0x1f80. Accordingly, - bit 7 would be 0x1f86 but it is not used. -*/ -WRITE8_MEMBER(ti_pcode_card_device::cruwrite) -{ - if ((offset & 0xff00)==CRU_BASE) - { - int addr = offset & 0x00ff; - - if (addr==0) - m_selected = (data != 0); - - if (addr==0x80) // Bit 4 is on address line 8 - { - m_bank_select = (data+1); // we're calling this bank 1 and bank 2 - if (TRACE_CRU) logerror("Select rom bank %d\n", m_bank_select); - } - } -} - -void ti_pcode_card_device::device_start() -{ - m_grom[0] = downcast(subdevice(PGROM0_TAG)); - m_grom[1] = downcast(subdevice(PGROM1_TAG)); - m_grom[2] = downcast(subdevice(PGROM2_TAG)); - m_grom[3] = downcast(subdevice(PGROM3_TAG)); - m_grom[4] = downcast(subdevice(PGROM4_TAG)); - m_grom[5] = downcast(subdevice(PGROM5_TAG)); - m_grom[6] = downcast(subdevice(PGROM6_TAG)); - m_grom[7] = downcast(subdevice(PGROM7_TAG)); - m_rom = memregion(PCODE_ROM_TAG)->base(); - - save_item(NAME(m_bank_select)); - save_item(NAME(m_active)); - save_item(NAME(m_clock_count)); - save_item(NAME(m_clockhigh)); - save_item(NAME(m_inDsrArea)); - save_item(NAME(m_isrom0)); - save_item(NAME(m_isrom12)); - save_item(NAME(m_isgrom)); - save_item(NAME(m_address)); -} - -void ti_pcode_card_device::device_reset() -{ - if (m_genmod) - { - m_select_mask = 0x1fe000; - m_select_value = 0x174000; - } - else - { - m_select_mask = 0x7e000; - m_select_value = 0x74000; - } - m_bank_select = 1; - m_selected = false; - m_clock_count = 0; - m_clockhigh = false; - - m_active = ioport(ACTIVE_TAG)->read(); - - m_isrom0 = false; - m_isrom12 = false; - m_isgrom = false; - m_address = 0; -} - -void ti_pcode_card_device::device_config_complete() -{ -} - -INPUT_CHANGED_MEMBER( ti_pcode_card_device::switch_changed ) -{ - if (TRACE_SWITCH) logerror("Switch changed to %d\n", newval); - m_active = (newval != 0); -} - - -MACHINE_CONFIG_FRAGMENT( ti99_pcode ) - MCFG_GROM_ADD( PGROM0_TAG, 0, PCODE_GROM_TAG, 0x0000, WRITELINE(ti_pcode_card_device, ready_line)) - MCFG_GROM_ADD( PGROM1_TAG, 1, PCODE_GROM_TAG, 0x2000, WRITELINE(ti_pcode_card_device, ready_line)) - MCFG_GROM_ADD( PGROM2_TAG, 2, PCODE_GROM_TAG, 0x4000, WRITELINE(ti_pcode_card_device, ready_line)) - MCFG_GROM_ADD( PGROM3_TAG, 3, PCODE_GROM_TAG, 0x6000, WRITELINE(ti_pcode_card_device, ready_line)) - MCFG_GROM_ADD( PGROM4_TAG, 4, PCODE_GROM_TAG, 0x8000, WRITELINE(ti_pcode_card_device, ready_line)) - MCFG_GROM_ADD( PGROM5_TAG, 5, PCODE_GROM_TAG, 0xa000, WRITELINE(ti_pcode_card_device, ready_line)) - MCFG_GROM_ADD( PGROM6_TAG, 6, PCODE_GROM_TAG, 0xc000, WRITELINE(ti_pcode_card_device, ready_line)) - MCFG_GROM_ADD( PGROM7_TAG, 7, PCODE_GROM_TAG, 0xe000, WRITELINE(ti_pcode_card_device, ready_line)) -MACHINE_CONFIG_END - -INPUT_PORTS_START( ti99_pcode ) - PORT_START( ACTIVE_TAG ) - PORT_DIPNAME( 0x01, 0x00, "P-Code activation switch" ) PORT_CHANGED_MEMBER(DEVICE_SELF, ti_pcode_card_device, switch_changed, nullptr) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x01, DEF_STR( On ) ) -INPUT_PORTS_END - -ROM_START( ti99_pcode ) - ROM_REGION(0x10000, PCODE_GROM_TAG, 0) - // The order of the GROMs with respect to the socket number is not guaranteed to be correct - // as all GROMs are connected in parallel and dumped in-system - ROM_LOAD("pcode_grom0.u11", 0x0000, 0x1800, CRC(505e5df0) SHA1(66911fba7599c64981180f8a673581f4b05941ff)) - ROM_LOAD("pcode_grom1.u13", 0x2000, 0x1800, CRC(63b546d5) SHA1(3d830c8bdac102275ec0702eff1ebf4b67484f52)) - ROM_LOAD("pcode_grom2.u14", 0x4000, 0x1800, CRC(28821e5c) SHA1(c147bd5d8d624caa690284bfc253c6699e3518d4)) - ROM_LOAD("pcode_grom3.u16", 0x6000, 0x1800, CRC(1db4a4a5) SHA1(f7a0ba8050f00ccc1ee328c66df5cc4269748ced)) - ROM_LOAD("pcode_grom4.u19", 0x8000, 0x1800, CRC(9618eb9b) SHA1(1f223f3febcb93e648cefe49c83bfeac802be9d6)) - ROM_LOAD("pcode_grom5.u20", 0xa000, 0x1800, CRC(c47efe6d) SHA1(f5b56c7de1cb1e7345a0716d35f00a3a9722febe)) - ROM_LOAD("pcode_grom6.u21", 0xc000, 0x1800, CRC(06a34c93) SHA1(56172c56afa3868f2098328f81881022230d949d)) - ROM_LOAD("pcode_grom7.u22", 0xe000, 0x1800, CRC(a09ca8d9) SHA1(2ea33d875f9c8e7c00df023a0d8d4461d50f0a87)) - - ROM_REGION(0x3000, PCODE_ROM_TAG, 0) - ROM_LOAD("pcode_rom0.u1", 0x0000, 0x1000, CRC(3881d5b0) SHA1(a60e0468bb15ff72f97cf6e80979ca8c11ed0426)) /* TI P-Code card rom4732 */ - ROM_LOAD("pcode_rom1.u18", 0x1000, 0x2000, CRC(46a06b8b) SHA1(24e2608179921aef312cdee6f455e3f46deb30d0)) /* TI P-Code card rom4764 */ -ROM_END - -machine_config_constructor ti_pcode_card_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( ti99_pcode ); -} - -const tiny_rom_entry *ti_pcode_card_device::device_rom_region() const -{ - return ROM_NAME( ti99_pcode ); -} - -ioport_constructor ti_pcode_card_device::device_input_ports() const -{ - return INPUT_PORTS_NAME( ti99_pcode ); -} - -const device_type TI99_P_CODE = device_creator; diff --git a/src/devices/bus/ti99_peb/pcode.h b/src/devices/bus/ti99_peb/pcode.h deleted file mode 100644 index 744faa4acca..00000000000 --- a/src/devices/bus/ti99_peb/pcode.h +++ /dev/null @@ -1,65 +0,0 @@ -// license:LGPL-2.1+ -// copyright-holders:Michael Zapf -/**************************************************************************** - - TI-99 P-Code Card emulation. - See p_code.c for documentation - - Michael Zapf - July 2009 - Revised July 2010 - February 2012: Rewritten as class - -*****************************************************************************/ - -#ifndef __PCODE__ -#define __PCODE__ - -#include "peribox.h" -#include "machine/tmc0430.h" - -extern const device_type TI99_P_CODE; - -class ti_pcode_card_device : public ti_expansion_card_device -{ -public: - ti_pcode_card_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - DECLARE_READ8Z_MEMBER(readz) override; - DECLARE_WRITE8_MEMBER(write) override; - DECLARE_READ8Z_MEMBER(crureadz) override; - DECLARE_WRITE8_MEMBER(cruwrite) override; - DECLARE_SETADDRESS_DBIN_MEMBER(setaddress_dbin) override; - - DECLARE_WRITE_LINE_MEMBER(clock_in) override; - - DECLARE_WRITE_LINE_MEMBER( ready_line ); - DECLARE_INPUT_CHANGED_MEMBER( switch_changed ); - -protected: - virtual void device_start() override; - virtual void device_reset() override; - virtual void device_config_complete() override; - virtual const tiny_rom_entry *device_rom_region() const override; - virtual machine_config_constructor device_mconfig_additions() const override; - virtual ioport_constructor device_input_ports() const override; - -private: - void debugger_read(address_space& space, uint16_t addr, uint8_t& value); - tmc0430_device* m_grom[8]; - uint8_t* m_rom; - int m_bank_select; - bool m_active; - int m_clock_count; - bool m_clockhigh; - - // Address in card area - bool m_inDsrArea; - bool m_isrom0; - bool m_isrom12; - bool m_isgrom; - - // Recent address - int m_address; -}; - -#endif diff --git a/src/devices/bus/ti99_peb/peribox.cpp b/src/devices/bus/ti99_peb/peribox.cpp deleted file mode 100644 index de124051046..00000000000 --- a/src/devices/bus/ti99_peb/peribox.cpp +++ /dev/null @@ -1,766 +0,0 @@ -// license:LGPL-2.1+ -// copyright-holders:Michael Zapf -/**************************************************************************** - - Peripheral expansion system - - The ti-99/4, ti-99/4a, ti computer 99/8, myarc geneve, and snug sgcpu - 99/4p systems all feature a bus connector that enables the connection of - extension cards. (Although the hexbus is the preferred bus to add - additional peripherals to a ti-99/8, ti-99/8 is believed to be compatible - with the older PEB system.) In the case of the TI consoles, this bus - connector is located on the right side of the console. - - While a few extension cards connect to the side bus connector of the - ti-99/4(a) console directly, most extension cards were designed to be - inserted in a PEB instead. The PEB (Peripheral Expansion Box) is a big box - with power supply, a few bus drivers, and several card slots, that - connects to the ti-99/4(a) side port. The reason for using a PEB is that - daisy-chaining many modules caused the system to be unreliable due to the - noise produced by the successive contacts. (As a matter of fact, TI - initially released most of its extension cards as side bus units, but when - the design proved to be unreliable, the PEB was introduced. The TI speech - synthesizer was the only TI extension that remained on the side bus after - the introduction of the PEB, probably because TI wanted the speech - synthesizer to be a cheap extension, and the PEB was not cheap.) - - - =================## connection cable to console - || - || - +--------------+----+----+----+----+----+----+----+----+------------+ - | | S | S | S | S | S | S | S | S x passthru | - | | L | L | L | L | L | L | L | L x for cable | - | Power | O | O | O | O | O | O | O | O x | - | unit | T | T | T | T | T | T | T | T | | - | and | | | | | | | | | Floppy | - | ventilation | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | drive | - | | | | | | | | | | compartment| - | | | | | | | | | | | - | | | | | | | | | | 1 full hgt | - | | | | | | | | |LED | or 2 "slim"| - | +----+----+----+----+----+----+----+-|--+ (half-hgt) | - | : | seen from above | | | | | | - +--------------+-O----O----O----O----O----O----O----O---------------+ - - All slots are connected in parallel with all signal lines. The cards - must be equipped with bus drivers (244/245) and are usually activated - by turning a CRU bit on (except for the memory expansions which are - always active). - - This is emulation in exactly the same way. The data coming from the - console is propagated to all slots, and each card decides whether to - react or not. Similarly, for read operations, all cards are checked, - and only the active cards actually put a value on the data bus - (we do this using the bus8z_device; see ti99defs.h). - - Slot 1 is usually reserved for the "Flex cable interface" when connecting - a TI-99/4(A)/8 console. Also, the Geneve is put into slot 1. We therefore - do not offer peb:slot1. Slot 8 is usually used for floppy controllers - as there is a passthrough for cables. - - - Slots: - - REAR - +8V 1||2 +8V - GND 3||4 READY - GND 5||6 RESET* - GND 7||8 SCLK - BOOTPG* 9||10 AUDIO - RDBENA* 11||12 PCBEN - HOLD* 13||14 IAQHDA - SENILA* 15||16 SENILB* - INTA* 17||18 INTB* - D7 19||20 GND - D5 21||22 D6 - D3 23||24 D4 - D1 25||26 D2 - GND 27||28 D0 - A14 29||30 A15/CRUOUT - A12 31||32 A13 - A10 33||34 A11 - A8 35||36 A9 - A6 37||38 A7 - A4 39||40 A5 - A2 41||42 A3 - A0 43||44 A1 - AMB 45||46 AMA - GND 47||48 AMC - GND 49||50 CLKOUT* -CRUCLK* 51||52 DBIN - GND 53||54 WE* - CRUIN 55||56 MEMEN* - -16V 57||58 -16V - +16V 59||60 +16V - FRONT - - < from box to console - > from console into box - - READYA < System ready (goes to READY, 10K pull-up to +5V) A low level puts the cpu on hold. - RESET* > System reset (active low) - SCLK nc System clock (not connected in interface card) - LCP* nc CPU indicator 1=TI99 0=2nd generation (not connected in interface card) - BOOTPG* nc ? - AUDIO < Input audio (to AUDIOIN in console) - RDBENA* < Active low: enable flex cable data bus drivers (1K pull-up) - PCBEN H PCB enable for burn-in (always High) - HOLD* H Active low CPU hold request (always High) - IAQHDA nc IAQ [or] HOLDA (logical or) - SENILA* H(>) Interrupt level A sense enable (always High) - SENILB* H(>) Interrupt level B sense enable (always High) - INTA* < Interrupt level A (active low, goes to EXTINT*) - INTB* nc Interrupt level B (not used) - LOAD* nc Unmaskable interrupt (not carried by interface cable/card) - D0-D7 <> Data bus (D0 most significant) - A0-A15 > Address bus (A0 most sig; A15 also used as CRUOUT) - AMA/B/C H Extra address bits (always high for TI-99/4x, but used with SGCPU and Geneve) - CLKOUT* > Inverted PHI3 clock, from TIM9904 clock generator - CRUCLK* > Inverted CRU clock, from TMS9900 CRUCLK pin - DBIN > Active high = read memory. Drives the data bus buffers. - WE* > Write Enable pulse (derived from TMS9900 WE* pin) - CRUIN < CRU input bit to TMS9900 - MEMEN* > Memory access enable (active low) - - The SENILx lines are somewhat obscure, since there have never been hardware - or software that made practical use of them. The intended use can be guessed - from some few traditional cards (like the TI RS232) which indeed have - connections. - - With SENILA* asserted (low), a value shall be put on the data bus, - representing the interrupt status bits. It can also be used to determine - the source of the interrupt: The RS232 card (in its standard configuration) - uses the data bus bits 0 and 1 for its two UARTs, while in the second - configuration, it uses bits 4 and 5. - - SENILB* / INTB* was planned to be used with disk controllers. The PHP1240 disk - controller puts the value of INTB* on D0 when SENILB* gets active (low) which - reflects the INTRQ output pin of the WD1771. This signal is not used, however. - Instead, the disk controller combines DRQ and IRQ and makes use of a READY/HOLD - control of the CPU. - - Obviously, SENILA* and SENILB* should never be active at the same time, and - neither should any memory access to a card be active at the same time, for in - both cases, data bus lines may be set to different levels simultaneously. One - possible application case is to turn off all cards in the box, assert SENILA*, - and then do a read access in the memory area of any card in the P-Box (e.g. - 0x4000-0x5fff). Another possiblity is that the currently active card simply - does not respond to a certain memory access, and in this case the status bits - can be read. - - Also note that the SENILx lines access all cards in parallel, meaning that there - must be an agreement which cards may use which bits on the data bus. The lines - do not depend on the card being active at that time. - - Emulation architecture - - console ---- peribox --+ [-- slot1 (always occupied by console connector) ] - | - +--- slot2 --- card - | - +--- slot3 --- card - : - +--- slot8 --- card (usually some floppy controller) - - We have an instance of peribox_device which contains 7 slots - (peribox_slot_device) which are subclasses of device_slot_interface. - Each slot may host one of several cards (ti_expansion_card_device), - which are subclassed from device_slot_card_interface. - - For bus8z_device consult ti99defs.h - --------------------- - - June 2010: Reimplemented using device structure (MZ) - January 2012: Reimplemented as class (MZ) - -*****************************************************************************/ - -#include "emu.h" -#include "peribox.h" - -// The cards -#include "ti_32kmem.h" -#include "ti_fdc.h" -#include "bwg.h" -#include "hfdc.h" -#include "pcode.h" -#include "myarcmem.h" -#include "samsmem.h" -#include "tn_ide.h" -#include "tn_usbsm.h" -#include "evpc.h" -#include "hsgpl.h" -#include "ti_rs232.h" -#include "spchsyn.h" -#include "memex.h" -#include "horizon.h" - -/* - Debugging flags. Set to 0 or 1. -*/ -// Show interrupt line activity -#define TRACE_INT 0 - -// Show ready line activity -#define TRACE_READY 0 - -// Show emulation details -#define TRACE_EMU 1 - -#define PEBSLOT2 "slot2" -#define PEBSLOT3 "slot3" -#define PEBSLOT4 "slot4" -#define PEBSLOT5 "slot5" -#define PEBSLOT6 "slot6" -#define PEBSLOT7 "slot7" -#define PEBSLOT8 "slot8" - -peribox_device::peribox_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) -: bus8z_device(mconfig, PERIBOX, "Peripheral expansion box", tag, owner, clock, "peribox", __FILE__), - m_console_inta(*this), - m_console_intb(*this), - m_sgcpu_lcp(*this), - m_datamux_ready(*this), - m_inta_flag(0), m_intb_flag(0), m_lcp_flag(0), m_ready_flag(0) -{ - for (int i=2; i <= 8; i++) m_slot[i] = nullptr; - // The address prefix is actually created by the "Flex cable interface" - // which sits in slot 1. - m_address_prefix = 0x70000; -} - -/* - Constructor called from subclasses. -*/ -peribox_device::peribox_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) -: bus8z_device(mconfig, type, name, tag, owner, clock, shortname, source), - m_console_inta(*this), - m_console_intb(*this), - m_sgcpu_lcp(*this), - m_datamux_ready(*this), m_inta_flag(0), m_intb_flag(0), m_ready_flag(0), m_address_prefix(0), m_msast(false), m_memen(false) -{ - for (int i=2; i <= 8; i++) m_slot[i] = nullptr; -} - -READ8Z_MEMBER(peribox_device::readz) -{ - for (int i=2; i <= 8; i++) - { - if (m_slot[i]!=nullptr) m_slot[i]->readz(space, offset | m_address_prefix, value, mem_mask); - } -} - -WRITE8_MEMBER(peribox_device::write) -{ - for (int i=2; i <= 8; i++) - { - if (m_slot[i]!=nullptr) m_slot[i]->write(space, offset | m_address_prefix, data, mem_mask); - } -} - -SETADDRESS_DBIN_MEMBER(peribox_device::setaddress_dbin) -{ - // Ignore the address when the TI-99/8 transmits the high-order 8 bits - if (!m_memen) return; - - for (int i=2; i <= 8; i++) - { - if (m_slot[i]!=nullptr) m_slot[i]->setaddress_dbin(space, offset | m_address_prefix, state); - } -} - -READ8Z_MEMBER(peribox_device::crureadz) -{ - for (int i=2; i <= 8; i++) - { - if (m_slot[i]!=nullptr) m_slot[i]->crureadz(space, offset, value); - } -} - -WRITE8_MEMBER(peribox_device::cruwrite) -{ - for (int i=2; i <= 8; i++) - { - if (m_slot[i]!=nullptr) m_slot[i]->cruwrite(space, offset, data); - } -} - -/* - And here are finally the two mythical lines SENILA* and SENILB*; mythical - since there is no report of any software that ever used them. -*/ -WRITE_LINE_MEMBER(peribox_device::senila) -{ - for (int i=2; i <= 8; i++) - { - if (m_slot[i]!=nullptr) m_slot[i]->senila(state); - } -} - -WRITE_LINE_MEMBER(peribox_device::senilb) -{ - for (int i=2; i <= 8; i++) - { - if (m_slot[i]!=nullptr) m_slot[i]->senilb(state); - } -} - -/* - MEMEN input. Used to start the external memory access cycle. -*/ -WRITE_LINE_MEMBER(peribox_device::memen_in) -{ - m_memen = (state==ASSERT_LINE); -} - -/* - MSAST input. Defined by TI-99/8; we ignore this part in the PEB. -*/ -WRITE_LINE_MEMBER(peribox_device::msast_in) -{ - m_msast = (state==ASSERT_LINE); -} - -/* - CLKOUT line -*/ - -WRITE_LINE_MEMBER(peribox_device::clock_in) -{ - for (int i=2; i <= 8; i++) - { - if (m_slot[i]!=nullptr) m_slot[i]->clock_in(state); - } -} - -/* - The Genmod modification is only of interest for the Geneve. It requires - to modify the decoding of each single card. -*/ -INPUT_CHANGED_MEMBER( peribox_device::genmod_changed ) -{ - set_genmod(newval==1); -} - -void peribox_device::set_genmod(bool set) -{ - for (int i=2; i <= 8; i++) - { - if (m_slot[i]!=nullptr) m_slot[i]->set_genmod(set); - } -} - -/* - The INTA*, INTB*, and READY* lines are connected to each PEB card and are - pulled up when inactive. If any card asserts the line (pulling down), the - line state goes down. So we must keep a record which cards pull down the - line. - - (We're doing a kind of wired-AND here.) -*/ -void peribox_device::inta_join(int slot, int state) -{ - if (TRACE_INT) logerror("%s: propagating INTA from slot %d to console: %d\n", tag(), slot, state); - if (state==ASSERT_LINE) - m_inta_flag |= (1 << slot); - else - m_inta_flag &= ~(1 << slot); - - m_console_inta((m_inta_flag != 0)? ASSERT_LINE : CLEAR_LINE); -} - -void peribox_device::intb_join(int slot, int state) -{ - if (TRACE_INT) logerror("%s: propagating INTB from slot %d to console: %d\n", tag(), slot, state); - if (state==ASSERT_LINE) - m_intb_flag |= (1 << slot); - else - m_intb_flag &= ~(1 << slot); - - m_console_intb((m_intb_flag != 0)? ASSERT_LINE : CLEAR_LINE); -} - -void peribox_device::lcp_join(int slot, int state) -{ - if (TRACE_INT) logerror("%s: propagating LCP from slot %d to SGCPU: %d\n", tag(), slot, state); - if (state==ASSERT_LINE) - m_lcp_flag |= (1 << slot); - else - m_lcp_flag &= ~(1 << slot); - - m_sgcpu_lcp((m_lcp_flag != 0)? ASSERT_LINE : CLEAR_LINE); -} - -/* - When any device pulls down READY, READY goes down. -*/ -void peribox_device::ready_join(int slot, int state) -{ - if (TRACE_READY) logerror("%s: Incoming READY=%d from slot %d\n", tag(), state, slot); - // We store the inverse state - if (state==CLEAR_LINE) - m_ready_flag |= (1 << slot); - else - m_ready_flag &= ~(1 << slot); - - m_datamux_ready((m_ready_flag != 0)? CLEAR_LINE : ASSERT_LINE); -} - -void peribox_device::set_slot_loaded(int slot, peribox_slot_device* slotdev) -{ - m_slot[slot] = slotdev; -} - -void peribox_device::device_start(void) -{ - if (TRACE_EMU) logerror("%s: started\n", tag()); - - // Resolve the callback lines to the console - m_console_inta.resolve(); - m_console_intb.resolve(); - m_sgcpu_lcp.resolve(); - m_datamux_ready.resolve(); - - if (TRACE_EMU) - { - logerror("%s: AMA/B/C address prefix set to %05x\n", tag(), m_address_prefix); - for (int i=2; i < 9; i++) - { - logerror("%s: Slot %d = %s\n", tag(), i, (m_slot[i] != nullptr)? m_slot[i]->m_card->tag() : "EMPTY"); - } - } - - save_item(NAME(m_inta_flag)); - save_item(NAME(m_intb_flag)); - save_item(NAME(m_lcp_flag)); - save_item(NAME(m_ready_flag)); - save_item(NAME(m_msast)); - save_item(NAME(m_memen)); -} - -void peribox_device::device_config_complete() -{ - m_inta_flag = 0; - m_intb_flag = 0; - m_lcp_flag = 0; - m_ready_flag = 0; -} - -SLOT_INTERFACE_START( peribox_slot ) - SLOT_INTERFACE("32kmem", TI_32KMEM) - SLOT_INTERFACE("myarcmem", TI99_MYARCMEM) - SLOT_INTERFACE("samsmem", TI99_SAMSMEM) - SLOT_INTERFACE("pcode", TI99_P_CODE) - SLOT_INTERFACE("hsgpl", TI99_HSGPL) - SLOT_INTERFACE("tirs232", TI99_RS232) - SLOT_INTERFACE("speech", TI99_SPEECH) - SLOT_INTERFACE("horizon", TI99_HORIZON) - SLOT_INTERFACE("ide", TI99_IDE) - SLOT_INTERFACE("usbsm", TI99_USBSM) - SLOT_INTERFACE("bwg", TI99_BWG) - SLOT_INTERFACE("hfdc", TI99_HFDC) - SLOT_INTERFACE("tifdc", TI99_FDC) -SLOT_INTERFACE_END - -MACHINE_CONFIG_FRAGMENT( peribox_device ) - MCFG_PERIBOX_SLOT_ADD( PEBSLOT2, peribox_slot ) - MCFG_PERIBOX_SLOT_ADD( PEBSLOT3, peribox_slot ) - MCFG_PERIBOX_SLOT_ADD( PEBSLOT4, peribox_slot ) - MCFG_PERIBOX_SLOT_ADD( PEBSLOT5, peribox_slot ) - MCFG_PERIBOX_SLOT_ADD( PEBSLOT6, peribox_slot ) - MCFG_PERIBOX_SLOT_ADD( PEBSLOT7, peribox_slot ) - MCFG_PERIBOX_SLOT_ADD( PEBSLOT8, peribox_slot ) -MACHINE_CONFIG_END - -machine_config_constructor peribox_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( peribox_device ); -} - -/**************************************************************************** - A variant of the box used for the Geneve. -*****************************************************************************/ - -peribox_gen_device::peribox_gen_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) -: peribox_device(mconfig, PERIBOX_GEN, "Peripheral expansion box Geneve", tag, owner, clock, "peribox_gen", __FILE__) -{ - // The Geneve sits in slot 1; there is no prefix here - it can control - // a maximum address space of 512 KiB in the box. With the Genmod - // modification, the full 2 MiB space is available. - m_address_prefix = 0x00000; -} - -// The BwG controller will not run with the Geneve due to its wait state -// logic (see bwg.c) - -SLOT_INTERFACE_START( peribox_slotg ) - SLOT_INTERFACE("memex", TI99_MEMEX) - SLOT_INTERFACE("tirs232", TI99_RS232) - SLOT_INTERFACE("speech", TI99_SPEECH) - SLOT_INTERFACE("horizon", TI99_HORIZON) - SLOT_INTERFACE("ide", TI99_IDE) - SLOT_INTERFACE("usbsm", TI99_USBSM) - SLOT_INTERFACE("tifdc", TI99_FDC) - SLOT_INTERFACE("hfdc", TI99_HFDC) -SLOT_INTERFACE_END - -MACHINE_CONFIG_FRAGMENT( peribox_gen_device ) - MCFG_PERIBOX_SLOT_ADD( PEBSLOT2, peribox_slotg ) - MCFG_PERIBOX_SLOT_ADD( PEBSLOT3, peribox_slotg ) - MCFG_PERIBOX_SLOT_ADD( PEBSLOT4, peribox_slotg ) - MCFG_PERIBOX_SLOT_ADD( PEBSLOT5, peribox_slotg ) - MCFG_PERIBOX_SLOT_ADD( PEBSLOT6, peribox_slotg ) - MCFG_PERIBOX_SLOT_ADD( PEBSLOT7, peribox_slotg ) - MCFG_PERIBOX_SLOT_ADD( PEBSLOT8, peribox_slotg ) -MACHINE_CONFIG_END - -machine_config_constructor peribox_gen_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( peribox_gen_device ); -} - -/**************************************************************************** - A variant of the box used for the TI-99/8 -*****************************************************************************/ - -peribox_998_device::peribox_998_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) -: peribox_device(mconfig, PERIBOX_998, "Peripheral expansion box 99/8", tag, owner, clock, "peribox_998", __FILE__) -{ - m_address_prefix = 0x70000; -} - -// The BwG controller will not run with the TI-99/8 for the same reason why -// it won't work with the Geneve. -// We don't have many options here. The P-Box is not the prefered device for -// the 99/8; it was intended to use the Hexbus interface. None of the memory -// expansions are really supposed to work here. -SLOT_INTERFACE_START( peribox_slot998 ) - SLOT_INTERFACE("ide", TI99_IDE) - SLOT_INTERFACE("usbsm", TI99_USBSM) - SLOT_INTERFACE("tirs232", TI99_RS232) - SLOT_INTERFACE("tifdc", TI99_FDC) - SLOT_INTERFACE("hfdc", TI99_HFDC) -SLOT_INTERFACE_END - -MACHINE_CONFIG_FRAGMENT( peribox_998_device ) - MCFG_PERIBOX_SLOT_ADD( PEBSLOT2, peribox_slot998 ) - MCFG_PERIBOX_SLOT_ADD( PEBSLOT3, peribox_slot998 ) - MCFG_PERIBOX_SLOT_ADD( PEBSLOT4, peribox_slot998 ) - MCFG_PERIBOX_SLOT_ADD( PEBSLOT5, peribox_slot998 ) - MCFG_PERIBOX_SLOT_ADD( PEBSLOT6, peribox_slot998 ) - MCFG_PERIBOX_SLOT_ADD( PEBSLOT7, peribox_slot998 ) - MCFG_PERIBOX_SLOT_ADD( PEBSLOT8, peribox_slot998 ) -MACHINE_CONFIG_END - -machine_config_constructor peribox_998_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( peribox_998_device ); -} - -/**************************************************************************** - A variant of the box used for the SGCPU (aka TI-99/4P). -*****************************************************************************/ - -peribox_sg_device::peribox_sg_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) -: peribox_device(mconfig, PERIBOX_SG, "Peripheral expansion box SGCPU", tag, owner, clock, "peribox_sg", __FILE__) -{ - m_address_prefix = 0x70000; -} - -SLOT_INTERFACE_START( peribox_slotp ) - SLOT_INTERFACE("pcode", TI99_P_CODE) - SLOT_INTERFACE("tirs232", TI99_RS232) - SLOT_INTERFACE("speech", TI99_SPEECH) - SLOT_INTERFACE("myarcmem", TI99_MYARCMEM) - SLOT_INTERFACE("samsmem", TI99_SAMSMEM) - SLOT_INTERFACE("horizon", TI99_HORIZON) - SLOT_INTERFACE("ide", TI99_IDE) - SLOT_INTERFACE("usbsm", TI99_USBSM) - SLOT_INTERFACE("bwg", TI99_BWG) - SLOT_INTERFACE("hfdc", TI99_HFDC) - SLOT_INTERFACE("tifdc", TI99_FDC) -SLOT_INTERFACE_END - -SLOT_INTERFACE_START( peribox_ev_slot ) - SLOT_INTERFACE("evpc", TI99_EVPC) -SLOT_INTERFACE_END - -SLOT_INTERFACE_START( peribox_hs_slot ) - SLOT_INTERFACE("hsgpl", TI99_HSGPL) -SLOT_INTERFACE_END - -MACHINE_CONFIG_FRAGMENT( peribox_sg_device ) - MCFG_PERIBOX_SLOT_ADD_DEF( PEBSLOT2, peribox_ev_slot, "evpc" ) - MCFG_PERIBOX_SLOT_ADD_DEF( PEBSLOT3, peribox_hs_slot, "hsgpl" ) - MCFG_PERIBOX_SLOT_ADD( PEBSLOT4, peribox_slotp ) - MCFG_PERIBOX_SLOT_ADD( PEBSLOT5, peribox_slotp ) - MCFG_PERIBOX_SLOT_ADD( PEBSLOT6, peribox_slotp ) - MCFG_PERIBOX_SLOT_ADD( PEBSLOT7, peribox_slotp ) - MCFG_PERIBOX_SLOT_ADD( PEBSLOT8, peribox_slotp ) -MACHINE_CONFIG_END - -machine_config_constructor peribox_sg_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( peribox_sg_device ); -} - -/**************************************************************************** - Another variant of the box; used for the TI with EVPC. The EVPC is - obviously required. -*****************************************************************************/ - -peribox_ev_device::peribox_ev_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) -: peribox_device(mconfig, PERIBOX_EV, "Peripheral expansion box EVPC", tag, owner, clock, "peribox_ev", __FILE__) -{ - m_address_prefix = 0x70000; -} - -MACHINE_CONFIG_FRAGMENT( peribox_ev_device ) - MCFG_PERIBOX_SLOT_ADD_DEF( PEBSLOT2, peribox_ev_slot, "evpc" ) - MCFG_PERIBOX_SLOT_ADD( PEBSLOT3, peribox_slot ) - MCFG_PERIBOX_SLOT_ADD( PEBSLOT4, peribox_slot ) - MCFG_PERIBOX_SLOT_ADD( PEBSLOT5, peribox_slot ) - MCFG_PERIBOX_SLOT_ADD( PEBSLOT6, peribox_slot ) - MCFG_PERIBOX_SLOT_ADD( PEBSLOT7, peribox_slot ) - MCFG_PERIBOX_SLOT_ADD( PEBSLOT8, peribox_slot ) -MACHINE_CONFIG_END - -machine_config_constructor peribox_ev_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( peribox_ev_device ); -} - -/*************************************************************************** - Implementation of a slot within the box. -****************************************************************************/ - -int peribox_slot_device::get_index_from_tagname() -{ - const char *mytag = tag(); - int maxlen = strlen(mytag); - int i; - for (i=maxlen-1; i >=0; i--) - if (mytag[i] < 48 || mytag[i] > 57) break; - - return atoi(mytag+i+1); -} - -peribox_slot_device::peribox_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) -: bus8z_device(mconfig, PERIBOX_SLOT, "TI P-Box slot", tag, owner, clock, "peribox_slot", __FILE__), device_slot_interface(mconfig, *this), m_card(nullptr), m_slotnumber(0) -{ -} - -READ8Z_MEMBER(peribox_slot_device::readz) -{ - m_card->readz(space, offset, value, mem_mask); -} - -WRITE8_MEMBER(peribox_slot_device::write) -{ - m_card->write(space, offset, data, mem_mask); -} - -SETADDRESS_DBIN_MEMBER(peribox_slot_device::setaddress_dbin) -{ - m_card->setaddress_dbin(space, offset, state); -} - -READ8Z_MEMBER(peribox_slot_device::crureadz) -{ - m_card->crureadz(space, offset, value); -} - -WRITE8_MEMBER(peribox_slot_device::cruwrite) -{ - m_card->cruwrite(space, offset, data); -} - -WRITE_LINE_MEMBER( peribox_slot_device::senila ) -{ - m_card->set_senila(state); -} - -WRITE_LINE_MEMBER( peribox_slot_device::senilb ) -{ - m_card->set_senilb(state); -} - -WRITE_LINE_MEMBER( peribox_slot_device::clock_in ) -{ - m_card->clock_in(state); -} - -/* - Genmod support -*/ -void peribox_slot_device::set_genmod(bool set) -{ - m_card->m_genmod = set; -} - -void peribox_slot_device::device_start(void) -{ -} - -void peribox_slot_device::device_config_complete() -{ - m_slotnumber = get_index_from_tagname(); - device_t *carddev = subdevices().first(); - peribox_device *peb = static_cast(owner()); - if (carddev != nullptr) - { - peb->set_slot_loaded(m_slotnumber, this); - m_card = static_cast(carddev); - } - else - { - peb->set_slot_loaded(m_slotnumber, nullptr); - m_card = nullptr; - } -} - -/* - Delivers the drives that are installed in the box. Called from a card. -*/ -device_t* peribox_slot_device::get_drive(const char* name) -{ - return owner()->subdevice(name); -} - -/* - These methods are called from the expansion cards. They add the - slot number to identify the slot to the box. -*/ -WRITE_LINE_MEMBER( peribox_slot_device::set_inta ) -{ - peribox_device *peb = static_cast(owner()); - peb->inta_join(m_slotnumber, state); -} - -WRITE_LINE_MEMBER( peribox_slot_device::set_intb ) -{ - peribox_device *peb = static_cast(owner()); - peb->intb_join(m_slotnumber, state); -} - -WRITE_LINE_MEMBER( peribox_slot_device::lcp_line ) -{ - peribox_device *peb = static_cast(owner()); - peb->lcp_join(m_slotnumber, state); -} - -WRITE_LINE_MEMBER( peribox_slot_device::set_ready ) -{ - peribox_device *peb = static_cast(owner()); - peb->ready_join(m_slotnumber, state); -} - -/***************************************************************************/ -const device_type PERIBOX = device_creator; -const device_type PERIBOX_SLOT = device_creator; - -const device_type PERIBOX_EV = device_creator; -const device_type PERIBOX_SG = device_creator; -const device_type PERIBOX_GEN = device_creator; -const device_type PERIBOX_998 = device_creator; diff --git a/src/devices/bus/ti99_peb/peribox.h b/src/devices/bus/ti99_peb/peribox.h deleted file mode 100644 index 7d9b11910e9..00000000000 --- a/src/devices/bus/ti99_peb/peribox.h +++ /dev/null @@ -1,268 +0,0 @@ -// license:LGPL-2.1+ -// copyright-holders:Michael Zapf -/**************************************************************************** - - Peripheral expansion box - See peribox.c for documentation - - Michael Zapf - - February 2012: Rewritten as class - -*****************************************************************************/ - -#ifndef __PBOX__ -#define __PBOX__ - -#include "bus/ti99x/ti99defs.h" - -extern const device_type PERIBOX; -extern const device_type PERIBOX_SLOT; - -extern const device_type PERIBOX_EV; -extern const device_type PERIBOX_SG; -extern const device_type PERIBOX_GEN; -extern const device_type PERIBOX_998; - -class ti_expansion_card_device; -class peribox_slot_device; - -/***************************************************************************** - The overall Peripheral Expansion Box. - See ti99defs.h for bus8z_device -******************************************************************************/ - -class peribox_device : public bus8z_device -{ - friend class peribox_slot_device; -public: - peribox_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - peribox_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - - template static devcb_base &static_set_inta_callback(device_t &device, _Object object) { return downcast(device).m_console_inta.set_callback(object); } - template static devcb_base &static_set_intb_callback(device_t &device, _Object object) { return downcast(device).m_console_intb.set_callback(object); } - template static devcb_base &static_set_ready_callback(device_t &device, _Object object) { return downcast(device).m_datamux_ready.set_callback(object); } - template static devcb_base &static_set_lcp_callback(device_t &device, _Object object) { return downcast(device).m_sgcpu_lcp.set_callback(object); } - - // Next eight methods are called from the console - DECLARE_READ8Z_MEMBER(readz) override; - DECLARE_WRITE8_MEMBER(write) override; - DECLARE_SETADDRESS_DBIN_MEMBER(setaddress_dbin) override; - - DECLARE_READ8Z_MEMBER(crureadz); - DECLARE_WRITE8_MEMBER(cruwrite); - DECLARE_WRITE_LINE_MEMBER(senila); - DECLARE_WRITE_LINE_MEMBER(senilb); - - DECLARE_WRITE_LINE_MEMBER( memen_in ); - DECLARE_WRITE_LINE_MEMBER( msast_in ); - - DECLARE_WRITE_LINE_MEMBER( clock_in ); - - // Part of configuration - void set_prefix(int prefix) { m_address_prefix = prefix; } - - // Genmod support - DECLARE_INPUT_CHANGED_MEMBER( genmod_changed ); - void set_genmod(bool set); - -protected: - virtual void device_start(void) override; - virtual void device_config_complete(void) override; - - virtual machine_config_constructor device_mconfig_additions() const override; - - // Next three methods call back the console - devcb_write_line m_console_inta; // INTA line (Box to console) - devcb_write_line m_console_intb; // INTB line - devcb_write_line m_sgcpu_lcp; // For EVPC with SGCPU only - devcb_write_line m_datamux_ready; // READY line (to the datamux) - - void set_slot_loaded(int slot, peribox_slot_device* slotdev); - peribox_slot_device *m_slot[9]; // for the sake of simplicity we donate the first two positions (0,1) - - // Propagators for the slot signals. All signals are active low, and - // if any one slot asserts the line, the joint line is asserted. - void inta_join(int slot, int state); - void intb_join(int slot, int state); - void lcp_join(int slot, int state); - void ready_join(int slot, int state); - - int m_inta_flag; - int m_intb_flag; - int m_lcp_flag; - int m_ready_flag; - - // The TI-99/4(A) Flex Cable Interface (slot 1) pulls up the AMA/AMB/AMC lines to 1/1/1. - int m_address_prefix; - - // Most significant address byte strobe. Defined by TI-99/8. - bool m_msast; - - // Memory enable. - bool m_memen; -}; - -/************************************************************************ - Specific Box compositions -************************************************************************/ -/* - Variation for EVPC. We'd like to offer the EVPC slot device only if - we started the ti99_4ev driver. -*/ -class peribox_ev_device : public peribox_device -{ -public: - peribox_ev_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - -protected: - virtual machine_config_constructor device_mconfig_additions() const override; -}; - -/* - Variation for SGCPU (TI-99/4P). We put the EVPC and the HSGPL in slots 2 and 3. -*/ -class peribox_sg_device : public peribox_device -{ -public: - peribox_sg_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - -protected: - virtual machine_config_constructor device_mconfig_additions() const override; -}; - -/* - Variation for Geneve. -*/ -class peribox_gen_device : public peribox_device -{ -public: - peribox_gen_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - -protected: - virtual machine_config_constructor device_mconfig_additions() const override; -}; - -/* - Variation for TI-99/8 -*/ -class peribox_998_device : public peribox_device -{ -public: - peribox_998_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - -protected: - virtual machine_config_constructor device_mconfig_additions() const override; -}; - -/***************************************************************************** - A single slot in the box. -******************************************************************************/ - -class peribox_slot_device : public bus8z_device, public device_slot_interface -{ - friend class peribox_device; -public: - peribox_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - - // Called from the box (direction to card) - DECLARE_READ8Z_MEMBER(readz) override; - DECLARE_WRITE8_MEMBER(write) override; - DECLARE_SETADDRESS_DBIN_MEMBER(setaddress_dbin) override; - - DECLARE_WRITE_LINE_MEMBER(senila); - DECLARE_WRITE_LINE_MEMBER(senilb); - DECLARE_WRITE_LINE_MEMBER(clock_in); - - // Called from the card (direction to box) - DECLARE_WRITE_LINE_MEMBER( set_inta ); - DECLARE_WRITE_LINE_MEMBER( set_intb ); - DECLARE_WRITE_LINE_MEMBER( lcp_line ); - DECLARE_WRITE_LINE_MEMBER( set_ready ); - - DECLARE_READ8Z_MEMBER(crureadz); - DECLARE_WRITE8_MEMBER(cruwrite); - - // called from the box itself - void set_genmod(bool set); - - device_t* get_drive(const char* name); - -protected: - void device_start(void) override; - void device_config_complete(void) override; - -private: - int get_index_from_tagname(); - ti_expansion_card_device *m_card; - int m_slotnumber; -}; - - -/***************************************************************************** - The parent class for all expansion cards. -******************************************************************************/ - -class ti_expansion_card_device : public bus8z_device, public device_slot_card_interface -{ - friend class peribox_slot_device; - -public: - ti_expansion_card_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : bus8z_device(mconfig, type, name, tag, owner, clock, shortname, source), - device_slot_card_interface(mconfig, *this), m_selected(false), m_cru_base(0), m_select_mask(0), m_select_value(0) -{ - m_slot = static_cast(owner); - m_senila = CLEAR_LINE; - m_senilb = CLEAR_LINE; - m_genmod = false; - } - - virtual DECLARE_READ8Z_MEMBER(crureadz) =0; - virtual DECLARE_WRITE8_MEMBER(cruwrite) =0; - - void set_senila(int state) { m_senila = state; } - void set_senilb(int state) { m_senilb = state; } - - virtual DECLARE_WRITE_LINE_MEMBER(clock_in) { }; - -protected: - peribox_slot_device *m_slot; // using a link to the slot for callbacks - int m_senila; - int m_senilb; - - // When true, card is accessible. Indicated by a LED. - bool m_selected; - - // When true, GenMod is selected. Modified by peribox_slot_device. - bool m_genmod; - - // CRU base. Used to configure the address by which a card is selected. - int m_cru_base; - - // Used to decide whether this card has been selected. - int m_select_mask; - int m_select_value; -}; - -#define MCFG_PERIBOX_SLOT_ADD(_tag, _slot_intf) \ - MCFG_DEVICE_ADD(_tag, PERIBOX_SLOT, 0) \ - MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, nullptr, false) - -#define MCFG_PERIBOX_SLOT_ADD_DEF(_tag, _slot_intf, _default) \ - MCFG_DEVICE_ADD(_tag, PERIBOX_SLOT, 0) \ - MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _default, false) - -#define MCFG_PERIBOX_INTA_HANDLER( _inta ) \ - devcb = &peribox_device::static_set_inta_callback( *device, DEVCB_##_inta ); - -#define MCFG_PERIBOX_INTB_HANDLER( _intb ) \ - devcb = &peribox_device::static_set_intb_callback( *device, DEVCB_##_intb ); - -#define MCFG_PERIBOX_READY_HANDLER( _ready ) \ - devcb = &peribox_device::static_set_ready_callback( *device, DEVCB_##_ready ); - -#define MCFG_PERIBOX_LCP_HANDLER( _lcp ) \ - devcb = &peribox_device::static_set_lcp_callback( *device, DEVCB_##_lcp ); - -#endif /* __PBOX__ */ diff --git a/src/devices/bus/ti99_peb/samsmem.cpp b/src/devices/bus/ti99_peb/samsmem.cpp deleted file mode 100644 index b0b51f90280..00000000000 --- a/src/devices/bus/ti99_peb/samsmem.cpp +++ /dev/null @@ -1,136 +0,0 @@ -// license:LGPL-2.1+ -// copyright-holders:Michael Zapf -/**************************************************************************** - - TI-99 SuperAMS Memory Expansion Card. Uses a 74LS612 memory mapper. - The card can be equipped with up to 1 MiB of static CMOS memory; it is - not buffered, however. - - SAMS organizes memory in 4 KiB blocks which are mapped into the address - space by a memory mapper. The mapper can be configured via a sequence of - addresses at 4000, 4002, ..., 401e, which correspond to memory locations - 0000-0fff, 1000-1fff, ..., f000-ffff. - - According to a software distribution disk from the South West 99ers group, - the predecessor of this card was the Asgard Expanded Memory System (AEMS). - Although some documentation and software was available for it, it was never - built. Instead, a simpler memory card called the Asgard Memory System (AMS) - was built. The South West 99ers group built a better version of this card - called the Super AMS. Any documentation and software containing a reference - to the AEMS are applicable to either AMS or SAMS. - - Michael Zapf - -*****************************************************************************/ - -#include "emu.h" -#include "samsmem.h" - -#define SAMS_CRU_BASE 0x1e00 - -sams_memory_expansion_device::sams_memory_expansion_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) -: ti_expansion_card_device(mconfig, TI99_SAMSMEM, "SuperAMS memory expansion card", tag, owner, clock, "ti99_sams", __FILE__), - m_ram(*this, RAM_TAG), - m_map_mode(false), m_access_mapper(false) -{ -} - -/* - Memory read. The SAMS card has two address areas: The memory is at locations - 0x2000-0x3fff and 0xa000-0xffff, and the mapper area is at 0x4000-0x401e - (only even addresses). -*/ -READ8Z_MEMBER(sams_memory_expansion_device::readz) -{ - int base; - - if (m_access_mapper && ((offset & 0xe000)==0x4000)) - { - *value = m_mapper[(offset>>1)&0x000f]; - } - - if (((offset & 0xe000)==0x2000) || ((offset & 0xe000)==0xa000) || ((offset & 0xe000)==0xc000) || ((offset & 0xe000)==0xe000)) - { - if (!m_map_mode) - { - // transparent mode - *value = m_ram->pointer()[offset & 0xffff]; - } - else - { - base = (m_mapper[(offset & 0xf000)>>12] << 12); - *value = m_ram->pointer()[base | (offset & 0x0fff)]; - } - } -} - -WRITE8_MEMBER(sams_memory_expansion_device::write) -{ - int base; - - if (m_access_mapper && ((offset & 0xe000)==0x4000)) - { - m_mapper[(offset>>1)&0x000f] = data; - } - - if (((offset & 0xe000)==0x2000) || ((offset & 0xe000)==0xa000) || ((offset & 0xe000)==0xc000) || ((offset & 0xe000)==0xe000)) - { - if (!m_map_mode) - { - // transparent mode - m_ram->pointer()[offset & 0xffff] = data; - } - else - { - base = (m_mapper[(offset & 0xf000)>>12] << 12); - m_ram->pointer()[base | (offset & 0x0fff)] = data; - } - } -} - -/* - CRU read. None here. -*/ -READ8Z_MEMBER(sams_memory_expansion_device::crureadz) -{ -} - -/* - CRU write. Turns on the mapper and allows to change it. -*/ -WRITE8_MEMBER(sams_memory_expansion_device::cruwrite) -{ - if ((offset & 0xff00)==SAMS_CRU_BASE) - { - if ((offset & 0x000e)==0) m_access_mapper = (data!=0); - if ((offset & 0x000e)==2) m_map_mode = (data!=0); - } -} - -MACHINE_CONFIG_FRAGMENT( sams_mem ) - MCFG_RAM_ADD(RAM_TAG) - MCFG_RAM_DEFAULT_SIZE("1M") - MCFG_RAM_DEFAULT_VALUE(0) -MACHINE_CONFIG_END - -machine_config_constructor sams_memory_expansion_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( sams_mem ); -} - -void sams_memory_expansion_device::device_start() -{ - save_pointer(NAME(m_mapper),16); - save_item(NAME(m_map_mode)); - save_item(NAME(m_mapper)); -} - -void sams_memory_expansion_device::device_reset() -{ - // Resetting values - m_map_mode = false; - m_access_mapper = false; - for (auto & elem : m_mapper) elem = 0; -} - -const device_type TI99_SAMSMEM = device_creator; diff --git a/src/devices/bus/ti99_peb/samsmem.h b/src/devices/bus/ti99_peb/samsmem.h deleted file mode 100644 index 5dc0df51ab7..00000000000 --- a/src/devices/bus/ti99_peb/samsmem.h +++ /dev/null @@ -1,46 +0,0 @@ -// license:LGPL-2.1+ -// copyright-holders:Michael Zapf -/**************************************************************************** - - TI-99 SuperAMS memory expansion - See samsmem.c for documentation - - Michael Zapf - September 2010 - - February 2012: Rewritten as class - -*****************************************************************************/ - -#ifndef __SAMSMEM__ -#define __SAMSMEM__ - -#include "peribox.h" -#include "machine/ram.h" - -extern const device_type TI99_SAMSMEM; - -class sams_memory_expansion_device : public ti_expansion_card_device -{ -public: - sams_memory_expansion_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - DECLARE_READ8Z_MEMBER(readz) override; - DECLARE_WRITE8_MEMBER(write) override; - - DECLARE_READ8Z_MEMBER(crureadz) override; - DECLARE_WRITE8_MEMBER(cruwrite) override; - - machine_config_constructor device_mconfig_additions() const override; - -protected: - void device_start(void) override; - void device_reset(void) override; - -private: - // Console RAM - required_device m_ram; - int m_mapper[16]; - bool m_map_mode; - bool m_access_mapper; -}; -#endif diff --git a/src/devices/bus/ti99_peb/spchsyn.cpp b/src/devices/bus/ti99_peb/spchsyn.cpp deleted file mode 100644 index d1995bd0033..00000000000 --- a/src/devices/bus/ti99_peb/spchsyn.cpp +++ /dev/null @@ -1,177 +0,0 @@ -// license:LGPL-2.1+ -// copyright-holders:Michael Zapf -/**************************************************************************** - - TI-99 Speech synthesizer - - We emulate the Speech Synthesizer plugged onto a P-Box adapter. The original - Speech Synthesizer device was provided as a box to be plugged into the - right side of the console. In order to be used with Geneve and SGCPU, the - speech synthesizer must be moved into the Peripheral Box. - - The Speech Synthesizer used for the TI was the CD2501E, AKA TMS5200, - (internal name TMC0285), a predecessor of the TMS5220 which was used in - other commercial products. - - Note that this adapter also contains the speech roms. - - Michael Zapf - - February 2012: Rewritten as class - -*****************************************************************************/ - -#include "emu.h" -#include "spchsyn.h" - -#include "machine/spchrom.h" -#include "sound/wave.h" -#include "speaker.h" - - -#define TRACE_MEM 0 -#define TRACE_ADDR 0 -#define TRACE_READY 0 - -/****************************************************************************/ - -ti_speech_synthesizer_device::ti_speech_synthesizer_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) -: ti_expansion_card_device(mconfig, TI99_SPEECH, "TI-99 Speech synthesizer (on adapter card)", tag, owner, clock, "ti99_speech", __FILE__), - m_vsp(nullptr), m_reading(false), m_sbe(false) -{ -} - -/* - Memory read -*/ - -READ8Z_MEMBER( ti_speech_synthesizer_device::readz ) -{ - if (machine().side_effect_disabled()) return; - - if (m_sbe) - { - *value = m_vsp->status_r(space, 0, 0xff) & 0xff; - if (TRACE_MEM) logerror("read value = %02x\n", *value); - // We should clear the lines at this point. The TI-99/4A clears the - // lines by setting the address bus to a different value, but the - // Geneve may behave differently. This may not 100% reflect the real - // situation, but it ensures a safe processing. - m_vsp->combined_rsq_wsq_w(space, 0, ~0); - } -} - -/* - Memory write -*/ -WRITE8_MEMBER( ti_speech_synthesizer_device::write ) -{ - if (machine().side_effect_disabled()) return; - - if (m_sbe) - { - if (TRACE_MEM) logerror("write value = %02x\n", data); - m_vsp->data_w(space, 0, data); - // Note that we must NOT clear the lines here. Find the lines in the - // READY callback below. - } -} - -SETADDRESS_DBIN_MEMBER( ti_speech_synthesizer_device::setaddress_dbin ) -{ - // 1001 00xx xxxx xxx0 DBIN=1 - // 1001 01xx xxxx xxx0 DBIN=0 - // 1111 1000 0000 0001 mask - m_space = &space; - m_reading = (state==ASSERT_LINE); - - bool valid = (((offset & 0x0400)==0) == m_reading); - m_sbe = ((offset & m_select_mask)==m_select_value) && valid; - - if (m_sbe) - { - if (TRACE_ADDR) logerror("set address = %04x, dbin = %d\n", offset, state); - - // Caution: In the current tms5220 emulation, care must be taken - // to clear one line before asserting the other line, or otherwise - // both RS* and WS* are active, which is illegal. - // Alternatively, we'll use the combined settings method - - m_vsp->combined_rsq_wsq_w(space, 0, m_reading? ~RS : ~WS); - } - else - // If other address, turn off RS* and WS* (negative logic!) - m_vsp->combined_rsq_wsq_w(space, 0, ~0); -} - -/****************************************************************************/ - -WRITE_LINE_MEMBER( ti_speech_synthesizer_device::speech_ready ) -{ - // The TMS5200 implementation uses true/false, not ASSERT/CLEAR semantics - // and we have to adapt a /READY to a READY line. - // The real synthesizer board uses a transistor for that purpose. - m_slot->set_ready((state==0)? ASSERT_LINE : CLEAR_LINE); - if (TRACE_READY) logerror("READY = %d\n", (state==0)); - - if ((state==0) && !m_reading) - // Clear the lines only when we are done with writing. - m_vsp->combined_rsq_wsq_w(*m_space, 0, ~0); -} - -void ti_speech_synthesizer_device::device_start() -{ - m_vsp = subdevice("speechsyn"); - // Need to configure the speech ROM for inverse bit order - speechrom_device* mem = subdevice("vsm"); - mem->set_reverse_bit_order(true); - - // We don't need to save m_space because the calling method - // combined_rsq_wsq_w only needs the address space formally. - save_item(NAME(m_reading)); - save_item(NAME(m_sbe)); -} - -void ti_speech_synthesizer_device::device_reset() -{ - if (m_genmod) - { - m_select_mask = 0x1ff801; - m_select_value = 0x179000; - } - else - { - m_select_mask = 0x7f801; - m_select_value = 0x79000; - } - - m_reading = false; - m_sbe = false; -} - -MACHINE_CONFIG_FRAGMENT( ti99_speech ) - MCFG_DEVICE_ADD("vsm", SPEECHROM, 0) - - MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_SOUND_ADD("speechsyn", CD2501E, 640000L) - MCFG_TMS52XX_READYQ_HANDLER(WRITELINE(ti_speech_synthesizer_device, speech_ready)) - MCFG_TMS52XX_SPEECHROM("vsm") - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) -MACHINE_CONFIG_END - -ROM_START( ti99_speech ) - ROM_REGION(0x8000, "vsm", 0) - ROM_LOAD("cd2325a.u2a", 0x0000, 0x4000, CRC(1f58b571) SHA1(0ef4f178716b575a1c0c970c56af8a8d97561ffe)) // at location u2, bottom of stack - ROM_LOAD("cd2326a.u2b", 0x4000, 0x4000, CRC(65d00401) SHA1(a367242c2c96cebf0e2bf21862f3f6734b2b3020)) // at location u2, top of stack -ROM_END - -machine_config_constructor ti_speech_synthesizer_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( ti99_speech ); -} - -const tiny_rom_entry *ti_speech_synthesizer_device::device_rom_region() const -{ - return ROM_NAME( ti99_speech ); -} -const device_type TI99_SPEECH = device_creator; diff --git a/src/devices/bus/ti99_peb/spchsyn.h b/src/devices/bus/ti99_peb/spchsyn.h deleted file mode 100644 index 77c89f7a0c4..00000000000 --- a/src/devices/bus/ti99_peb/spchsyn.h +++ /dev/null @@ -1,47 +0,0 @@ -// license:LGPL-2.1+ -// copyright-holders:Michael Zapf -/**************************************************************************** - - TI-99 Speech Synthesizer - See spchsyn.c for documentation - - Michael Zapf, October 2010 - February 2012: Rewritten as class - -*****************************************************************************/ - -#ifndef __TISPEECH__ -#define __TISPEECH__ - -#include "peribox.h" -#include "sound/tms5220.h" - -extern const device_type TI99_SPEECH; - -class ti_speech_synthesizer_device : public ti_expansion_card_device -{ -public: - ti_speech_synthesizer_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - DECLARE_READ8Z_MEMBER(readz) override; - DECLARE_WRITE8_MEMBER(write) override; - DECLARE_SETADDRESS_DBIN_MEMBER(setaddress_dbin) override; - - DECLARE_READ8Z_MEMBER(crureadz) override { }; - DECLARE_WRITE8_MEMBER(cruwrite) override { }; - - DECLARE_WRITE_LINE_MEMBER( speech_ready ); - -protected: - virtual void device_start() override; - virtual void device_reset(void) override; - virtual const tiny_rom_entry *device_rom_region() const override; - virtual machine_config_constructor device_mconfig_additions() const override; - -private: - address_space* m_space; - cd2501e_device* m_vsp; - bool m_reading; - bool m_sbe; // Signal "Speech block enable" -}; - -#endif diff --git a/src/devices/bus/ti99_peb/ti_32kmem.cpp b/src/devices/bus/ti99_peb/ti_32kmem.cpp deleted file mode 100644 index b86b35e2ca6..00000000000 --- a/src/devices/bus/ti99_peb/ti_32kmem.cpp +++ /dev/null @@ -1,110 +0,0 @@ -// license:LGPL-2.1+ -// copyright-holders:Michael Zapf -/**************************************************************************** - - TI-99 32 KiB Memory Expansion Card - This is a fairly simple memory expansion for the TI-99/4A, adding - unbuffered 32 KiB. Yet it was a very popular card since it was - required for any kind of advanced programming beyond the console BASIC. - - As a peripheral box card, it is connected via the 8-bit multiplexed data bus. - Later, modifications of the console became increasingly popular which - avoided the bus multiplex so that the full 16bit access was possible. - This helped to noticeably speed up the system. - - The memory is available on the addresses - - 0x2000 - 0x3fff ("low memory") - 0xa000 - 0xffff ("high memory") - - The console TI BASIC is not able to access the memory expansion, but - Extended Basic (available as a cartridge) makes use of it. - - Michael Zapf - February 2012: Rewritten as class - - References - [1] Michael L. Bunyard: Hardware Manual for the Texas Instruments 99/4A Home Computer, chapter 8 - -*****************************************************************************/ - -#include "emu.h" -#include "peribox.h" -#include "ti_32kmem.h" - -#define RAMREGION "ram32k" - -ti_32k_expcard_device::ti_32k_expcard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) -: ti_expansion_card_device(mconfig, TI_32KMEM, "TI-99 32KiB memory expansion card", tag, owner, clock, "ti99_32k", __FILE__), - m_ram(*this, RAMREGION) -{ -} - -READ8Z_MEMBER(ti_32k_expcard_device::readz) -{ - uint8_t val = 0; - /* - The problem for mapping the memory into the address space is that - we have a block at 2000-3FFF and another one at A000-FFFF. The trick - is to calculate a bank number in a way to get subsequent address - This is done in a PAL on the expansion board [1]. - - S AB - 0000: 000x -> 0 xx - 2000: 001x -> 1 01 - 4000: 010x -> 0 xx - 6000: 011x -> 0 xx - 8000: 100x -> 0 xx - A000: 101x -> 1 00 - C000: 110x -> 1 11 - E000: 111x -> 1 10 - - select = A0*A1 + /A1*A2 (A0 = MSB) - A = A1 - B = A0 nand A2 - */ - - bool select = ((offset & 0xfc000)==0x7c000) | ((offset & 0xf6000)==0x72000); // PAL output pin 14 [1] - - if (select) - { - // address = 0abx xxxx xxxx xxxx - int bank = (offset & 0x4000) | ((((offset & 0x8000)>>2) & (offset & 0x2000)) ^ 0x2000); - val = m_ram->pointer()[bank | (offset & 0x1fff)]; - - // On powerup we find a FF00FF00... pattern in RAM - if ((offset & 1)==0) val = ~val; - *value = val; - } -} - -WRITE8_MEMBER(ti_32k_expcard_device::write) -{ - bool select = ((offset & 0xfc000)==0x7c000) | ((offset & 0xf6000)==0x72000); // PAL output pin 14 [1] - - if (select) - { - // address = 0abx xxxx xxxx xxxx - int bank = (offset & 0x4000) | ((((offset & 0x8000)>>2) & (offset & 0x2000)) ^ 0x2000); - if ((offset & 1)==0) data = ~data; - m_ram->pointer()[bank | (offset & 0x1fff)] = data; - } -} - - -void ti_32k_expcard_device::device_start(void) -{ -} - -MACHINE_CONFIG_FRAGMENT( mem32k ) - MCFG_RAM_ADD(RAMREGION) - MCFG_RAM_DEFAULT_SIZE("32k") - MCFG_RAM_DEFAULT_VALUE(0) -MACHINE_CONFIG_END - -machine_config_constructor ti_32k_expcard_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( mem32k ); -} - -const device_type TI_32KMEM = device_creator; diff --git a/src/devices/bus/ti99_peb/ti_32kmem.h b/src/devices/bus/ti99_peb/ti_32kmem.h deleted file mode 100644 index ff777c73d69..00000000000 --- a/src/devices/bus/ti99_peb/ti_32kmem.h +++ /dev/null @@ -1,40 +0,0 @@ -// license:LGPL-2.1+ -// copyright-holders:Michael Zapf -/**************************************************************************** - - TI-99 32K memory expansion - See ti32kmem.c for documentation - - Michael Zapf - - February 2012: Rewritten as class - -*****************************************************************************/ - -#ifndef __TI32K__ -#define __TI32K__ - -#include "peribox.h" -#include "machine/ram.h" - -extern const device_type TI_32KMEM; - -class ti_32k_expcard_device : public ti_expansion_card_device -{ -public: - ti_32k_expcard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - DECLARE_READ8Z_MEMBER(readz) override; - DECLARE_WRITE8_MEMBER(write) override; - - DECLARE_READ8Z_MEMBER(crureadz) override { }; - DECLARE_WRITE8_MEMBER(cruwrite) override { }; - -protected: - void device_start() override; - machine_config_constructor device_mconfig_additions() const override; - -private: - required_device m_ram; -}; - -#endif diff --git a/src/devices/bus/ti99_peb/ti_fdc.cpp b/src/devices/bus/ti99_peb/ti_fdc.cpp deleted file mode 100644 index 8bcfb4ac179..00000000000 --- a/src/devices/bus/ti99_peb/ti_fdc.cpp +++ /dev/null @@ -1,481 +0,0 @@ -// license:LGPL-2.1+ -// copyright-holders:Michael Zapf -/**************************************************************************** - - TI-99 Standard Floppy Disk Controller Card - Based on WD1771 - Single Density, Double-sided - - Michael Zapf - September 2010 - January 2012: rewritten as class (MZ) - -****************************************************************************/ - -#include "emu.h" -#include "peribox.h" -#include "ti_fdc.h" -#include "formats/ti99_dsk.h" - -// ---------------------------------- -// Flags for debugging - -// Show read and write accesses -#define TRACE_RW 0 - -// Show CRU bit accesses -#define TRACE_CRU 0 - -// Show ready line activity -#define TRACE_READY 0 - -// Show detailed signal activity -#define TRACE_SIGNALS 0 - -// Show sector data -#define TRACE_DATA 0 - -// Show address bus operations -#define TRACE_ADDRESS 0 - -// Show address bus operations -#define TRACE_MOTOR 0 - -// ---------------------------------- -#define FDC_TAG "fd1771" -#define MOTOR_TIMER 1 -#define NONE -1 - -#define TI_FDC_TAG "ti_dssd_controller" - -ti_fdc_device::ti_fdc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : ti_expansion_card_device(mconfig, TI99_FDC, "TI-99 Standard DSSD Floppy Controller", tag, owner, clock, "ti99_fdc", __FILE__), - m_address(0), - m_DRQ(0), - m_IRQ(0), - m_lastval(0), - m_DVENA(0), - m_inDsrArea(false), - m_WAITena(false), - m_WDsel(false), - m_DSEL(0), - m_SIDSEL(0), - m_motor_on_timer(nullptr), - m_fd1771(*this, FDC_TAG), - m_dsrrom(nullptr), - m_current(NONE), - m_debug_dataout(false) - { } - -/* - Operate the wait state logic. -*/ -void ti_fdc_device::operate_ready_line() -{ - // This is the wait state logic - if (TRACE_SIGNALS) logerror("tifdc: address=%04x, DRQ=%d, INTRQ=%d, MOTOR=%d\n", m_address & 0xffff, m_DRQ, m_IRQ, m_DVENA); - line_state nready = (m_WDsel && // Are we accessing 5ffx (even addr)? - m_WAITena && // and the wait state generation is active (SBO 2) - (m_DRQ==CLEAR_LINE) && // and we are waiting for a byte - (m_IRQ==CLEAR_LINE) && // and there is no interrupt yet - (m_DVENA==ASSERT_LINE) // and the motor is turning? - )? ASSERT_LINE : CLEAR_LINE; // In that case, clear READY and thus trigger wait states - - if (TRACE_READY) logerror("tifdc: READY line = %d\n", (nready==CLEAR_LINE)? 1:0); - m_slot->set_ready((nready==CLEAR_LINE)? ASSERT_LINE : CLEAR_LINE); -} - -/* - * Callbacks from the FD1771 chip - */ -WRITE_LINE_MEMBER( ti_fdc_device::fdc_irq_w ) -{ - m_IRQ = state? ASSERT_LINE : CLEAR_LINE; - if (TRACE_SIGNALS) logerror("tifdc: INTRQ callback = %d\n", m_IRQ); - operate_ready_line(); -} - -WRITE_LINE_MEMBER( ti_fdc_device::fdc_drq_w ) -{ - m_DRQ = state? ASSERT_LINE : CLEAR_LINE; - if (TRACE_SIGNALS) logerror("tifdc: DRQ callback = %d\n", m_DRQ); - operate_ready_line(); -} - -// bool ti_fdc_device::dvena_r() -// { -// if (TRACE_SIGNALS) logerror("tifdc: reading DVENA = %d\n", m_DVENA); -// return (m_DVENA==ASSERT_LINE); -// } - -SETADDRESS_DBIN_MEMBER( ti_fdc_device::setaddress_dbin ) -{ - // Selection login in the PAL and some circuits on the board - - // Is the card being selected? - m_address = offset; - m_inDsrArea = ((m_address & m_select_mask)==m_select_value); - - if (!m_inDsrArea || !m_selected) return; - - if (TRACE_ADDRESS) logerror("tifdc: set address = %04x\n", offset & 0xffff); - - // Is the WD chip on the card being selected? - m_WDsel = m_inDsrArea && ((m_address & 0x1ff1)==0x1ff0); - - // Clear or assert the outgoing READY line - operate_ready_line(); -} - -/* - Access for debugger. This is a stripped-down version of the - main methods below. We only allow ROM access. -*/ -void ti_fdc_device::debug_read(offs_t offset, uint8_t* value) -{ - if (((offset & m_select_mask)==m_select_value) && m_selected) - { - if ((offset & 0x1ff1)!=0x1ff0) - *value = m_dsrrom[offset & 0x1fff]; - } -} - -READ8Z_MEMBER(ti_fdc_device::readz) -{ - if (machine().side_effect_disabled()) - { - debug_read(offset, value); - return; - } - - if (m_inDsrArea && m_selected) - { - // Read ports of 1771 are mapped to 5FF0,2,4,6: 0101 1111 1111 0xx0 - // Note that incoming/outgoing data are inverted for FD1771 - uint8_t reply = 0; - - if (m_WDsel && ((m_address & 9)==0)) - { - if (!machine().side_effect_disabled()) reply = m_fd1771->gen_r((offset >> 1)&0x03); - if (TRACE_DATA) - { - if ((m_address & 0xffff)==0x5ff6) - { - if (!m_debug_dataout) logerror("tifdc: Read data = "); - m_debug_dataout = true; - logerror("%02x ", ~reply & 0xff); - } - else - { - if (m_debug_dataout) logerror("\n"); - m_debug_dataout = false; - } - } - } - else - { - reply = m_dsrrom[m_address & 0x1fff]; - } - *value = reply; - if (TRACE_RW) logerror("tifdc: %04x -> %02x\n", offset & 0xffff, *value); - } -} - -WRITE8_MEMBER(ti_fdc_device::write) -{ - if (machine().side_effect_disabled()) return; - - if (m_inDsrArea && m_selected) - { - // Write ports of 1771 are mapped to 5FF8,A,C,E: 0101 1111 1111 1xx0 - // This is important for the TI console: The TMS9900 CPU always performs a - // read operation before the write operation, and if we did not use - // different read and write ports, it would attempt to read from the - // controller before passing a command or data - // to it. In the best case, nothing happens; in the worst case, status - // flags may be reset by the read operation. - - // Note that incoming/outgoing data are inverted for FD1771 - if (TRACE_RW) logerror("tifdc: %04x <- %02x\n", offset & 0xffff, ~data & 0xff); - if (m_WDsel && ((m_address & 9)==8)) - { - // As this is a memory-mapped access we must prevent the debugger - // from messing with the operation - if (!machine().side_effect_disabled()) m_fd1771->gen_w((offset >> 1)&0x03, data); - } - } -} - -/* - CRU read access - - 7 6 5 4 3 2 1 0 - +-----+-----+-----+------+-----+-----+-----+-----+ - | Side| 1 | 0 |DVENA*| DSK3| DSK2| DSK1| HLD | - +-----+-----+-----+------+-----+-----+-----+-----+ - - We have only 8 bits for query; within this implementation this means - we only use the base address (offset 0). -*/ -READ8Z_MEMBER(ti_fdc_device::crureadz) -{ - if ((offset & 0xff00)==m_cru_base) - { - uint8_t reply = 0; - if ((offset & 0x07) == 0) - { - // Selected drive - reply |= ((m_DSEL)<<1); - // The DVENA state is returned as inverted - if (m_DVENA==CLEAR_LINE) reply |= 0x10; - // Always 1 - reply |= 0x40; - // Selected side - if (m_SIDSEL==ASSERT_LINE) reply |= 0x80; - } - *value = reply; - if (TRACE_CRU) logerror("tifdc: Read CRU = %02x\n", *value); - } -} - -WRITE8_MEMBER(ti_fdc_device::cruwrite) -{ - if ((offset & 0xff00)==m_cru_base) - { - int bit = (offset >> 1) & 0x07; - switch (bit) - { - case 0: - // (De)select the card. Indicated by a LED on the board. - m_selected = (data!=0); - if (TRACE_CRU) logerror("tifdc: Map DSR (bit 0) = %d\n", m_selected); - break; - - case 1: - // Activate motor - if (data==1 && m_lastval==0) - { // On rising edge, set motor_running for 4.23s - if (TRACE_CRU) logerror("tifdc: trigger motor (bit 1)\n"); - set_floppy_motors_running(true); - } - m_lastval = data; - break; - - case 2: - // Set disk ready/hold (bit 2) - // 0: ignore IRQ and DRQ - // 1: TMS9900 is stopped until IRQ or DRQ are set - // OR the motor stops rotating - rotates for 4.23s after write - // to CRU bit 1 - m_WAITena = (data != 0); - if (TRACE_CRU) logerror("tifdc: arm wait state logic (bit 2) = %d\n", data); - break; - - case 3: - // Load disk heads (HLT pin) (bit 3). Not implemented. - if (TRACE_CRU) logerror("tifdc: set head load (bit 3) = %d\n", data); - break; - - case 4: - m_DSEL = (data != 0)? (m_DSEL | 0x01) : (m_DSEL & 0xfe); - set_drive(); - break; - case 5: - m_DSEL = (data != 0)? (m_DSEL | 0x02) : (m_DSEL & 0xfd); - set_drive(); - break; - case 6: - m_DSEL = (data != 0)? (m_DSEL | 0x04) : (m_DSEL & 0xfb); - set_drive(); - break; - - case 7: - // Select side of disk (bit 7) - m_SIDSEL = (data==1)? ASSERT_LINE : CLEAR_LINE; - if (TRACE_CRU) logerror("tifdc: set side (bit 7) = %d\n", data); - if (m_current != NONE) m_floppy[m_current]->ss_w(data); - break; - - default: - break; - } - } -} - -void ti_fdc_device::set_drive() -{ - switch (m_DSEL) - { - case 0: - m_current = NONE; - if (TRACE_CRU) logerror("tifdc: all drives deselected\n"); - break; - case 1: - m_current = 0; - break; - case 2: - m_current = 1; - break; - case 3: - // The schematics do not reveal any countermeasures against multiple selection - // so we assume that the highest value wins. - m_current = 1; - logerror("tifdc: Warning - multiple drives selected\n"); - break; - case 4: - m_current = 2; - break; - default: - m_current = 2; - logerror("tifdc: Warning - multiple drives selected\n"); - break; - } - if (TRACE_CRU) logerror("tifdc: new DSEL = %d\n", m_DSEL); - - m_fd1771->set_floppy((m_current == NONE)? nullptr : m_floppy[m_current]); -} - -/* - Monoflop has gone back to the OFF state. -*/ -void ti_fdc_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) -{ - set_floppy_motors_running(false); -} - -/* - All floppy motors are operated by the same line. -*/ -void ti_fdc_device::set_floppy_motors_running(bool run) -{ - if (run) - { - if (TRACE_MOTOR) - if (m_DVENA==CLEAR_LINE) logerror("tifdc: Motor START\n"); - m_DVENA = ASSERT_LINE; - m_motor_on_timer->adjust(attotime::from_msec(4230)); - } - else - { - if (TRACE_MOTOR) - if (m_DVENA==ASSERT_LINE) logerror("tifdc: Motor STOP\n"); - m_DVENA = CLEAR_LINE; - } - - // The monoflop is connected to the READY line - m_fd1771->set_force_ready(run); - - // Set all motors - for (auto & elem : m_floppy) - if (elem != nullptr) elem->mon_w((run)? 0 : 1); - - // The motor-on line also connects to the wait state logic - operate_ready_line(); -} - -void ti_fdc_device::device_start() -{ - logerror("tifdc: TI FDC start\n"); - m_dsrrom = memregion(DSRROM)->base(); - m_motor_on_timer = timer_alloc(MOTOR_TIMER); - m_cru_base = 0x1100; - // In case we implement a callback after all: - // m_fd1771->setup_ready_cb(wd_fdc_t::rline_cb(&ti_fdc_device::dvena_r, this)); - - save_item(NAME(m_address)); - save_item(NAME(m_DRQ)); - save_item(NAME(m_IRQ)); - save_item(NAME(m_lastval)); - save_item(NAME(m_DVENA)); - save_item(NAME(m_inDsrArea)); - save_item(NAME(m_WAITena)); - save_item(NAME(m_WDsel)); - save_item(NAME(m_DSEL)); - save_item(NAME(m_SIDSEL)); - save_item(NAME(m_current)); -} - -void ti_fdc_device::device_reset() -{ - logerror("tifdc: TI FDC reset\n"); - m_lastval = 0; - if (m_genmod) - { - m_select_mask = 0x1fe000; - m_select_value = 0x174000; - } - else - { - m_select_mask = 0x7e000; - m_select_value = 0x74000; - } - m_DRQ = CLEAR_LINE; - m_IRQ = CLEAR_LINE; - m_DVENA = CLEAR_LINE; - m_fd1771->set_force_ready(false); - - m_DSEL = 0; - m_WAITena = false; - m_selected = false; - m_debug_dataout = false; - m_inDsrArea = false; - m_WDsel = false; - - for (int i=0; i < 3; i++) - { - if (m_floppy[i] != nullptr) - logerror("tifdc: Connector %d with %s\n", i, m_floppy[i]->name()); - else - logerror("tifdc: No floppy attached to connector %d\n", i); - } - - m_current = 0; - m_fd1771->set_floppy(m_floppy[m_current]); -} - -void ti_fdc_device::device_config_complete() -{ - // Seems to be null when doing a "-listslots" - if (subdevice("0")!=nullptr) m_floppy[0] = static_cast(subdevice("0")->subdevices().first()); - if (subdevice("1")!=nullptr) m_floppy[1] = static_cast(subdevice("1")->subdevices().first()); - if (subdevice("2")!=nullptr) m_floppy[2] = static_cast(subdevice("2")->subdevices().first()); -} - -FLOPPY_FORMATS_MEMBER(ti_fdc_device::floppy_formats) - FLOPPY_TI99_SDF_FORMAT, - FLOPPY_TI99_TDF_FORMAT -FLOPPY_FORMATS_END - -static SLOT_INTERFACE_START( tifdc_floppies ) - SLOT_INTERFACE( "525dd", FLOPPY_525_DD ) -SLOT_INTERFACE_END - -MACHINE_CONFIG_FRAGMENT( ti_fdc ) - MCFG_FD1771_ADD(FDC_TAG, XTAL_1MHz) - MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(ti_fdc_device, fdc_irq_w)) - MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(ti_fdc_device, fdc_drq_w)) - MCFG_FLOPPY_DRIVE_ADD("0", tifdc_floppies, "525dd", ti_fdc_device::floppy_formats) - MCFG_FLOPPY_DRIVE_SOUND(true) - MCFG_FLOPPY_DRIVE_ADD("1", tifdc_floppies, "525dd", ti_fdc_device::floppy_formats) - MCFG_FLOPPY_DRIVE_SOUND(true) - MCFG_FLOPPY_DRIVE_ADD("2", tifdc_floppies, nullptr, ti_fdc_device::floppy_formats) - MCFG_FLOPPY_DRIVE_SOUND(true) -MACHINE_CONFIG_END - -ROM_START( ti_fdc ) - ROM_REGION(0x2000, DSRROM, 0) - ROM_LOAD("fdc_dsr.u26", 0x0000, 0x1000, CRC(693c6b6e) SHA1(0c24fb4944843ad3f08b0b139244a6bb05e1c6c2)) /* TI disk DSR ROM first 4K */ - ROM_LOAD("fdc_dsr.u27", 0x1000, 0x1000, CRC(2c921087) SHA1(3646c3bcd2dce16b918ee01ea65312f36ae811d2)) /* TI disk DSR ROM second 4K */ -ROM_END - -machine_config_constructor ti_fdc_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( ti_fdc ); -} - -const tiny_rom_entry *ti_fdc_device::device_rom_region() const -{ - return ROM_NAME( ti_fdc ); -} - -const device_type TI99_FDC = device_creator; diff --git a/src/devices/bus/ti99_peb/ti_fdc.h b/src/devices/bus/ti99_peb/ti_fdc.h deleted file mode 100644 index 2eb76edba53..00000000000 --- a/src/devices/bus/ti99_peb/ti_fdc.h +++ /dev/null @@ -1,111 +0,0 @@ -// license:LGPL-2.1+ -// copyright-holders:Michael Zapf -/**************************************************************************** - - TI-99 Standard Floppy Disk Controller Card - See ti_fdc.c for documentation - - Michael Zapf - - September 2010 - January 2012: rewritten as class (MZ) - -****************************************************************************/ -#ifndef __TIFDC__ -#define __TIFDC__ - -#include "machine/wd_fdc.h" -#include "imagedev/floppy.h" - -extern const device_type TI99_FDC; - -class ti_fdc_device : public ti_expansion_card_device -{ -public: - ti_fdc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - DECLARE_READ8Z_MEMBER(readz) override; - DECLARE_WRITE8_MEMBER(write) override; - DECLARE_SETADDRESS_DBIN_MEMBER(setaddress_dbin) override; - - DECLARE_READ8Z_MEMBER(crureadz) override; - DECLARE_WRITE8_MEMBER(cruwrite) override; - - DECLARE_FLOPPY_FORMATS( floppy_formats ); - - DECLARE_WRITE_LINE_MEMBER( fdc_irq_w ); - DECLARE_WRITE_LINE_MEMBER( fdc_drq_w ); - // bool dvena_r(); - -protected: - void device_start() override; - void device_reset() override; - void device_config_complete() override; - - const tiny_rom_entry *device_rom_region() const override; - machine_config_constructor device_mconfig_additions() const override; - - void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; - -private: - // For debugger access - void debug_read(offs_t offset, uint8_t* value); - - // Wait state logic - void operate_ready_line(); - - // Set the current floppy - void set_drive(); - - // Operate the floppy motors - void set_floppy_motors_running(bool run); - - // Recent address - int m_address; - - // Holds the status of the DRQ and IRQ lines. - int m_DRQ, m_IRQ; - - // Needed for triggering the motor monoflop - uint8_t m_lastval; - - // Signal DVENA. When true, makes some drive turning. - int m_DVENA; - - // Set when address is in card area - bool m_inDsrArea; - - // When true the CPU is halted while DRQ/IRQ are true. - bool m_WAITena; - - // WD chip selected - bool m_WDsel; - - // Indicates which drive has been selected. Values are 0, 1, 2, and 4. - // 000 = no drive - // 001 = drive 1 - // 010 = drive 2 - // 100 = drive 3 - int m_DSEL; - - // Signal SIDSEL. 0 or 1, indicates the selected head. - int m_SIDSEL; - - // count 4.23s from rising edge of motor_on - emu_timer* m_motor_on_timer; - - // Link to the FDC1771 controller on the board. - required_device m_fd1771; - - // DSR ROM - uint8_t* m_dsrrom; - - // Link to the attached floppy drives - floppy_image_device* m_floppy[3]; - - // Currently selected floppy drive - int m_current; - - // Debugging - bool m_debug_dataout; -}; -#endif diff --git a/src/devices/bus/ti99_peb/ti_rs232.cpp b/src/devices/bus/ti99_peb/ti_rs232.cpp deleted file mode 100644 index dbc7d7d8d8d..00000000000 --- a/src/devices/bus/ti99_peb/ti_rs232.cpp +++ /dev/null @@ -1,1150 +0,0 @@ -// license:LGPL-2.1+ -// copyright-holders:Michael Zapf -/**************************************************************************** - - TI-99 RS232 and Parallel interface card - - TI99 RS232 card ('rs232') - TMS9902 ('rs232:tms9902_0') - TMS9902 ('rs232:tms9902_1') - TI99 RS232 attached serial device ('rs232:serdev0') - TI99 RS232 attached serial device ('rs232:serdev1') - TI99 PIO attached parallel device ('rs232:piodev') - - Currently this emulation does not directly interact with the serial - interface on the host computer. However, using a socket connection it is - possible to attach an external bridge which interacts with a real UART. - - TI RS232 card wiring - -------------------- - The card uses this wiring (inverters not included) - - +-----+ Pins of the connector - | 9902| (common naming) - | RIN |---<------- 2 (TD) - | XOUT|--->------- 3 (RD) - | RTS |--->------- 8 (DCD) - | CTS |-<-+------- 20 (DTR) - | DSR |-<-+ H--> 6 (DSR) - +-----+ +-----> 5 (CTS) - / - +-----+ / - | CRU |--+ - +-----+ - - This wiring is typical for a DCE, not a DTE. The TI RS232 was obviously - designed to look like a modem. The advantage is that you can use the same - cables for connecting a modem to the RS232 interface or for connecting - a second TI via its interface. To connect to a DTE you can use a 1-1 - wiring cable (1 on 1, 2 on 2 ...) - - The TI manual for the RS232 card suggests the following cables: - - TI RS232 - Modem or other TI RS232 - 2 -----<----- 3 - 3 ----->----- 2 - 6 ----->---- 20 (crossover cable) - 20 -----<----- 6 - - TI RS232 - Terminal (DTE) - 2 ----<------ 2 - 3 ---->------ 3 - 5 ---->------ 5 - 6 ---->------ 6 (1-1 cable) - 8 ---->------ 8 - 20 ----<------20 - - If we want to use a PC serial interface to play the role of the TI - interface we have to map the TI wiring to a suitable wiring for PC - interfaces which are designed as DTEs. This is achieved by the functions - map_lines_in, map_lines_out. - - Note that we now have to swap the cable types: Use a 1-1 cable to connect - another TI or a modem on the other end, and use a crossover cable for - another PC (the usual way of connecting). - - RS232 Over IP protocol - ---------------------- - This implementation can make use of such an external bridge. Normal data - are forwarded to the bridge and back, while line control is organized via - special byte sequences. These sequences are introduced by a 0x1B byte (ESC). - - The protocol has two modes: normal and escape - - normal mode: transmit byte (!= 0x1b) unchanged - escape mode: entered by ESC, bytes following: - ESC = plain ESC byte - length byte[length] = control sequence (length != 0x1b) - - byte[]: - All configuration settings are related to a specified UART; UARTs may - differ in their capabilities and may require specific settings - (e.g. the TMS9902 specifies the line speed by a clock ratio, while - others may have indexed, fixed rates or use integers) - - (x=unused) - - 1ccc xaaa = configuration of parameter ccc; UART type aaa - 1111 xaaa rrrr rrrr rrrr 0000 = config receive rate on aaa - 1110 xaaa rrrr rrrr rrrr 0000 = config transmit rate on aaa - 1101 xaaa xxxx xxbb = config databits bb (00=5 ... 11=8) - 1100 xaaa xxxx xxss = config stop bits ss (00=1.5, 01=2, 1x=1) - 1011 xaaa xxxx xxpp = config parity pp (1x=enable, x1=odd) - - 00ab cdef = line state of RTS=a, CTS=b, DSR=c, DCD=d, DTR=e, RI=f - 01gh i000 = exception g=BRK, h=FRMERR, i=PARERR - - The protocol changes back to normal mode after transmitting the control - sequence. - - Michael Zapf - February 2012: Rewritten as class - -*****************************************************************************/ - -#include "emu.h" -#include "ti_rs232.h" - -#define SENILA_0_BIT 0x80 -#define SENILA_1_BIT 0x40 - -#define RECV_MODE_NORMAL 1 -#define RECV_MODE_ESC 2 -#define RECV_MODE_ESC_LINES 3 - -#define TRACE_LINES 0 -#define TRACE_SETTING 0 -#define TRACE_STATE 0 -#define TRACE_MAP 0 -#define TRACE_IN 0 -#define TRACE_OUT 0 -#define TRACE_ILA 0 - -#define ESC 0x1b - -ti_rs232_pio_device::ti_rs232_pio_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) -: ti_expansion_card_device(mconfig, TI99_RS232, "TI-99 RS232/PIO interface", tag, owner, clock, "ti99_rs232", __FILE__), m_piodev(nullptr), m_dsrrom(nullptr), m_pio_direction_in(false), m_pio_handshakeout(false), m_pio_handshakein(false), m_pio_spareout(false), m_pio_sparein(false), m_flag0(false), m_led(false), m_pio_out_buffer(0), m_pio_in_buffer(0), m_pio_readable(false), m_pio_writable(false), m_pio_write(false), m_ila(0) -{ -} - - -/**************************************************************************/ -/* Ports */ - -ti_rs232_attached_device::ti_rs232_attached_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) -: device_t(mconfig, TI99_RS232_DEV, "Serial attached device", tag, owner, clock, "ti_rs232_attached", __FILE__), - device_image_interface(mconfig, *this) -{ -} - -ti_pio_attached_device::ti_pio_attached_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) -: device_t(mconfig, TI99_PIO_DEV, "Parallel attached device", tag, owner, clock, "ti_pio_attached", __FILE__), - device_image_interface(mconfig, *this) -{ -} - -void ti_rs232_attached_device::device_start() -{ -} - -void ti_pio_attached_device::device_start() -{ -} - -/* - Find the index of the image name. We assume the format - , i.e. the number is the longest string from the right - which can be interpreted as a number. -*/ -int ti_rs232_attached_device::get_index_from_tagname() -{ - const char *mytag = tag(); - int maxlen = strlen(mytag); - int i; - for (i=maxlen-1; i >=0; i--) - if (mytag[i] < 48 || mytag[i] > 57) break; - - return atoi(mytag+i+1); -} - -/* - Initialize rs232 unit and open image -*/ -image_init_result ti_rs232_attached_device::call_load() -{ - tms9902_device* tms9902; - - int devnumber = get_index_from_tagname(); - if (devnumber==0) - { - tms9902 = siblingdevice("tms9902_0"); - // Turn on polling - tms9902->set_clock(true); - } - else if (devnumber==1) - { - tms9902 = siblingdevice("tms9902_1"); - // Turn on polling - tms9902->set_clock(true); - } - else - { - logerror("Could not find device tag number\n"); - return image_init_result::FAIL; - } - - // The following line may cause trouble in the init phase - // card->incoming_dtr(devnumber, (m_file!=nullptr)? ASSERT_LINE : CLEAR_LINE); - - return image_init_result::PASS; // OK -} - -void ti_rs232_attached_device::call_unload() -{ - tms9902_device* tms9902; - - int devnumber = get_index_from_tagname(); - if (devnumber==0) - { - tms9902 = siblingdevice("tms9902_0"); - // Turn off polling - tms9902->set_clock(false); - } - else if (devnumber==1) - { - tms9902 = siblingdevice("tms9902_1"); - // Turn off polling - tms9902->set_clock(false); - } -} - -/* - Initialize pio unit and open image -*/ -image_init_result ti_pio_attached_device::call_load() -{ - ti_rs232_pio_device* card = static_cast(owner()); - - // tell whether the image is readable - card->m_pio_readable = true; - // tell whether the image is writable - card->m_pio_writable = !is_readonly(); - - if (card->m_pio_write && card->m_pio_writable) - card->m_pio_handshakein = false; // receiver ready - else - card->m_pio_handshakein = true; - - return image_init_result::PASS; // OK -} - -/* - close a pio image -*/ -void ti_pio_attached_device::call_unload() -{ - ti_rs232_pio_device* card = static_cast(owner()); - - card->m_pio_writable = false; - card->m_pio_handshakein = true; /* receiver not ready */ - card->m_pio_sparein = false; -} - -/****************************************************************************/ - -/* - CRU read -*/ -READ8Z_MEMBER(ti_rs232_pio_device::crureadz) -{ - if ((offset & 0xff00)==m_cru_base) - { - if ((offset & 0x00c0)==0x0000) - { - uint8_t reply = 0x00; - if (m_pio_direction_in) reply |= 0x02; - if (m_pio_handshakein) reply |= 0x04; - if (m_pio_sparein) reply |= 0x08; - if (m_flag0) reply |= 0x10; - // The CTS line is realized as CRU bits - // Mind that this line is handled as an output going to the remote CTS - if ((m_signals[0] & CTS)!=0) reply |= 0x20; - if ((m_signals[1] & CTS)!=0) reply |= 0x40; - if (m_led) reply |= 0x80; - *value = reply; - return; - } - if ((offset & 0x00c0)==0x0040) - { - *value = m_uart[0]->cruread(space, offset>>4, 0xff); - return; - } - if ((offset & 0x00c0)==0x0080) - { - *value = m_uart[1]->cruread(space, offset>>4, 0xff); - return; - } - } -} - -/* - CRU write -*/ -WRITE8_MEMBER(ti_rs232_pio_device::cruwrite) -{ - if ((offset & 0xff00)==m_cru_base) - { - if ((offset & 0x00c0)==0x0040) - { - m_uart[0]->cruwrite(space, offset>>1, data, 0xff); - return; - } - if ((offset & 0x00c0)==0x0080) - { - m_uart[1]->cruwrite(space, offset>>1, data, 0xff); - return; - } - - device_image_interface *image = dynamic_cast(m_piodev); - - int bit = (offset & 0x00ff)>>1; - switch (bit) - { - case 0: - m_selected = (data!=0); - break; - - case 1: - m_pio_direction_in = (data!=0); - break; - - case 2: - if ((data!=0) != m_pio_handshakeout) - { - m_pio_handshakeout = (data!=0); - if (m_pio_write && m_pio_writable && (!m_pio_direction_in)) - { /* PIO in output mode */ - if (!m_pio_handshakeout) - { /* write data strobe */ - /* write data and acknowledge */ - uint8_t buf = m_pio_out_buffer; - int ret = image->fwrite(&buf, 1); - if (ret) - m_pio_handshakein = 1; - } - else - { - /* end strobe */ - /* we can write some data: set receiver ready */ - m_pio_handshakein = 0; - } - } - if ((!m_pio_write) && m_pio_readable /*&& pio_direction_in*/) - { /* PIO in input mode */ - if (!m_pio_handshakeout) - { /* receiver ready */ - /* send data and strobe */ - uint8_t buf; - if (image->fread(&buf, 1)) - m_pio_in_buffer = buf; - m_pio_handshakein = 0; - } - else - { - /* data acknowledge */ - /* we can send some data: set transmitter ready */ - m_pio_handshakein = 1; - } - } - } - break; - - case 3: - m_pio_spareout = (data!=0); - break; - - case 4: - m_flag0 = (data!=0); - break; - - case 5: - // Set the CTS line for RS232/1 - if (TRACE_LINES) logerror("(1/3) Setting CTS* via CRU to %d\n", data); - output_line_state(0, CTS, (data==0)? CTS : 0); - break; - - case 6: - // Set the CTS line for RS232/2 - if (TRACE_LINES) logerror("(2/4) Setting CTS* via CRU to %d\n", data); - output_line_state(1, CTS, (data==0)? CTS : 0); - break; - - case 7: - m_led = (data!=0); - break; - } - return; - } -} - -/* - Memory read -*/ -READ8Z_MEMBER( ti_rs232_pio_device::readz ) -{ - if (m_senila==ASSERT_LINE) - { - if (TRACE_ILA) logerror("Sensing ILA\n"); - *value = m_ila; - // The card ROM must be unselected, or we get two values - // on the data bus - - // Not sure whether this is correct; there is no software that makes - // use of it - m_ila = 0; - } - if (((offset & m_select_mask)==m_select_value) && m_selected) - { - if ((offset & 0x1000)==0x0000) - { - *value = m_dsrrom[offset&0x0fff]; - } - else - { - *value = m_pio_direction_in ? m_pio_in_buffer : m_pio_out_buffer; - } - } -} - -/* - Memory write -*/ -WRITE8_MEMBER( ti_rs232_pio_device::write ) -{ - if (((offset & m_select_mask)==m_select_value) && m_selected) - { - if ((offset & 0x1001)==0x1000) - { - m_pio_out_buffer = data; - } - } -} - -/**************************************************************************/ - -/* - The DTR line of the interface card is wired to the CTS and DSR - of the UART. -*/ -void ti_rs232_pio_device::incoming_dtr(int uartind, line_state value) -{ - if (TRACE_LINES) logerror("(RS232/%d) Incoming DTR = %d\n", uartind+1, (value==ASSERT_LINE)? 1:0); - - m_uart[uartind]->rcv_cts(value); - m_uart[uartind]->rcv_dsr(value); -} - -/* - Data transmission -*/ -void ti_rs232_pio_device::transmit_data(int uartind, uint8_t value) -{ - uint8_t buf = value; - - device_image_interface *serial; - serial = dynamic_cast(m_serdev[uartind]); - if (!serial->exists()) - { - logerror("(RS232/%d) No serial output attached\n", uartind+1); - return; - } - - // Send a double ESC if this is not a control operation - if (buf==0x1b) - { - if (TRACE_OUT) logerror("(RS232/%d) send ESC (requires another ESC)\n", uartind+1); - serial->fwrite(&buf, 1); - } - if (TRACE_OUT) - { - char cbuf = (buf < 0x20 || buf > 0x7e)? '.' : (char)buf; - logerror("(RS232/%d) send %c <%02x>\n", uartind+1, cbuf, buf); - } - serial->fwrite(&buf, 1); -} - -/* - Map the DCE-like wiring to a DTE-like wiring and vice versa (mapping==0) - No handshake - - Emulated PC serial - TI RS232 interface - XOUT 2 TXD ----->-----( 3) ---> TXD - RIN 3 RXD -----<-----( 2) <--- RXD - CRU 5 CTS -| |-( 8) <--- DCD (cable) - +12V 6 DSR ----->-----(20) ---> DTR - RTS 8 DCD ----->-----( 4) ---> RTS - DSR+CTS 20 DTR -----<-----( 6) <--- DSR - |-( 5) <--- CTS - - Alternative mapping: (mapping==1) - RTS/CTS handshake - - Emulated PC serial - TI RS232 interface - XOUT 2 TXD ----->-----( 3) ---> TXD - RIN 3 RXD -----<-----( 2) <--- RXD - CRU 5 CTS ----->-----( 4) ---> RTS - +12V 6 DSR -| |-( 6) <--- DSR - RTS 8 DCD ----->-----(20) ---> DTR - DSR+CTS 20 DTR -----<-----( 8) <--- DCD - |-( 5) <--- CTS - - Yet another mapping: (mapping==2) - CRU-based handshake - - Emulated PC serial - TI RS232 interface - XOUT 2 TXD ----->-----( 3) ---> TXD - RIN 3 RXD -----<-----( 2) <--- RXD - CRU 5 CTS ----->-----(20) ---> DTR - +12V 6 DSR -| |-( 6) <--- DSR - RTS 8 DCD ----->-----( 4) ---> RTS - DSR+CTS 20 DTR -----<-----( 5) <--- CTS (cable) - |-( 8) <--- DCD - -*/ -uint8_t ti_rs232_pio_device::map_lines_out(int uartind, uint8_t value) -{ - uint8_t ret = 0; - int mapping = ioport("SERIALMAP")->read(); - - // 00ab cdef = setting line RTS=a, CTS=b, DSR=c, DCD=d, DTR=e, RI=f - - if (TRACE_LINES) logerror("(RS232/%d) out connector pins = 0x%02x; translate for DTE\n", uartind+1, value); - - if (value & BRK) - { - if (TRACE_MAP) logerror("(RS232/%d) Sending BRK\n", uartind+1); - ret |= EXCEPT | BRK; - } - - if (mapping==0) - { - // V1 - if (value & CTS) - { - if (TRACE_MAP) logerror("(RS232/%d) Cannot map CTS line, ignoring\n", uartind+1); - } - if (value & DSR) - { - ret |= DTR; - if (TRACE_MAP) logerror("(RS232/%d) Setting DTR line\n", uartind+1); - } - if (value & DCD) - { - ret |= RTS; - if (TRACE_MAP) logerror("(RS232/%d) Setting RTS line\n", uartind+1); - } - } - else - { - if (mapping==1) - { - // V2 - if (value & CTS) - { - ret |= RTS; - if (TRACE_MAP) logerror("(RS232/%d) Setting RTS line\n", uartind+1); - } - if (value & DCD) - { - ret |= DTR; - if (TRACE_MAP) logerror("(RS232/%d) Setting DTR line\n", uartind+1); - } - } - else - { - // v3 - if (value & CTS) - { - ret |= DTR; - if (TRACE_MAP) logerror("(RS232/%d) Setting DTR line\n", uartind+1); - } - if (value & DSR) - { - if (TRACE_MAP) logerror("(RS232/%d) Cannot map DSR line, ignoring\n", uartind+1); - } - if (value & DCD) - { - ret |= RTS; - if (TRACE_MAP) logerror("(RS232/%d) Setting RTS line\n", uartind+1); - } - } - } - - return ret; -} - -uint8_t ti_rs232_pio_device::map_lines_in(int uartind, uint8_t value) -{ - uint8_t ret = 0; - int mapping = ioport("SERIALMAP")->read(); - - // 00ab cdef = setting line RTS=a, CTS=b, DSR=c, DCD=d, DTR=e, RI=f - - if (TRACE_LINES) logerror("(RS232/%d) in connector pins = 0x%02x; translate from DTE\n", uartind+1, value); - - if (value & BRK) - { - if (TRACE_MAP) logerror("(RS232/%d) Getting BRK\n", uartind+1); - ret |= EXCEPT | BRK; - } - - if (mapping==0) - { - // V1 - if (value & CTS) - { - if (TRACE_MAP) logerror("(RS232/%d) Cannot map CTS line, ignoring\n", uartind+1); - } - if (value & DSR) - { - ret |= DTR; - if (TRACE_MAP) logerror("(RS232/%d) Setting DTR line\n", uartind+1); - } - if (value & DCD) - { - if (TRACE_MAP) logerror("(RS232/%d) Cannot map DCD line, ignoring\n", uartind+1); - } - } - else - { - if (mapping==1) - { - if (value & DCD) - { - ret |= DTR; - if (TRACE_MAP) logerror("(RS232/%d) Setting DTR line\n", uartind+1); - } - if (value & DSR) - { - if (TRACE_MAP) logerror("(RS232/%d) Cannot map DSR line, ignoring\n", uartind+1); - } - if (value & CTS) - { - if (TRACE_MAP) logerror("(RS232/%d) Cannot map CTS line, ignoring\n", uartind+1); - } - } - else - { - if (value & CTS) - { - ret |= DTR; - if (TRACE_MAP) logerror("(RS232/%d) Setting DTR line\n", uartind+1); - } - if (value & DSR) - { - if (TRACE_MAP) logerror("(RS232/%d) Cannot map DSR line, ignoring\n", uartind+1); - } - if (value & DCD) - { - if (TRACE_MAP) logerror("(RS232/%d) Cannot map DCD line, ignoring\n", uartind+1); - } - } - } - - return ret; -} -/* - Receive a character or a line state from the remote site. This method - is called by a timer with some sufficiently high polling frequency. Note - that the control lines are not subject to baud rates. - The higher polling frequency will cause overloads in the TMS9902 which has - a one-byte buffer only: Since the data source (e.g. the PC UART and the - socket connection) may be buffered, we may get a cluster of bytes in rapid - succession. In order to avoid this, this function uses the parameter - "baudpoll" which is the ratio of the characters/second and the polling - frequency. (char/sec is baud rate divided by 10.) - Whenever we receive a character that is passed to the UART, we have to - pause for 1/baudpoll iterations before getting the next byte from the - data source. - - FIXME: This may fail when the emulated system tries to stop the remote - system by deactivating RTS or DTR, but there are still incoming - bytes in the socket or PC UART buffer. The buffered bytes may then cause - an overflow in the emulated UART, since the application program expects - the remote system to stop sending instantly. - The only way to handle this is to mirror the activity within the serial - bridge: Whenever a RTS=0 or DTR=0 is transmitted to the remote site, the - serial bridge must stop delivering data bytes until the handshake opens the - channel again. -*/ -void ti_rs232_pio_device::receive_data_or_line_state(int uartind) -{ - device_image_interface *serial; - uint8_t buffer; - - serial = dynamic_cast(m_serdev[uartind]); - - if (!serial->exists()) - { - logerror("(RS232/%d) No serial input attached\n", uartind+1); - return; - } - - double baudpoll = m_uart[uartind]->get_baudpoll(); - - // If more than the minimum waiting time since the last data byte has - // elapsed, we can get a new value. - if (m_time_hold[uartind] > 1.0) - { - // Buffer empty? - if (m_bufpos[uartind] == m_buflen[uartind]) - { - // Get all out of sdlsocket - m_buflen[uartind] = serial->fread(m_recvbuf[uartind].get(), 512); - m_bufpos[uartind] = 0; - if (m_buflen[uartind]==0) return; - } - buffer = m_recvbuf[uartind][m_bufpos[uartind]++]; - } - else - { - // number of polls has not yet elapsed; we have to wait. - m_time_hold[uartind] += baudpoll; - return; - } - - char cbuf = (buffer < 0x20 || buffer > 0x7e)? '.' : (char)buffer; - - // No config parameters here, only data or line setting - switch (m_recv_mode[uartind]) - { - case RECV_MODE_NORMAL: - if (buffer==0x1b) - { - if (TRACE_IN) logerror("(RS232/%d) Received: %c <%02x>, switch to ESC mode\n", uartind+1, cbuf, buffer); - m_recv_mode[uartind] = RECV_MODE_ESC; - } - else - { - if (TRACE_IN) logerror("(RS232/%d) Received: %c <%02x>, pass to UART\n", uartind+1, cbuf, buffer); - m_uart[uartind]->rcv_data(buffer); - m_time_hold[uartind] = 0.0; - } - break; - case RECV_MODE_ESC: - if (buffer==0x1b) - { - m_recv_mode[uartind] = RECV_MODE_NORMAL; - if (TRACE_STATE) logerror("(RS232/%d) Received another ESC, passing to UART, leaving ESC mode\n", uartind+1); - m_uart[uartind]->rcv_data(buffer); - m_time_hold[uartind] = 0.0; - } - else - { - // the byte in buffer is the length byte - if (TRACE_STATE) logerror("(RS232/%d) Received length byte <%02x> in ESC mode\n", uartind+1, buffer); - if (buffer != 1) - { - logerror("(RS232/%d) ** ERROR: Expected length byte 1 but got 0x%02x, leaving ESC mode.\n", uartind+1, buffer); - m_recv_mode[uartind] = RECV_MODE_NORMAL; - } - else - m_recv_mode[uartind] = RECV_MODE_ESC_LINES; - } - break; - - case RECV_MODE_ESC_LINES: - // Map the real serial interface lines to our emulated connector - // The mapping is the same for both directions, so we use the same function - if (buffer & EXCEPT) - { - // Exception states: BRK, FRMERR, PARERR - if (TRACE_LINES) logerror("(RS232/%d) Received BRK or ERROR <%02x>\n", uartind+1, buffer); - m_uart[uartind]->rcv_break(((buffer & BRK)!=0)); - - if (buffer & FRMERR) m_uart[uartind]->rcv_framing_error(); - if (buffer & PARERR) m_uart[uartind]->rcv_parity_error(); - } - else - { - buffer = map_lines_in(uartind, buffer); - if (TRACE_LINES) logerror("(RS232/%d) Received (remapped) <%02x> in ESC mode\n", uartind+1, buffer); - - // The DTR line on the RS232 connector of the board is wired to both the - // CTS and the DSR pin of the TMS9902 - // Apart from the data line, DTR is the only input line - incoming_dtr(uartind, (buffer & DTR)? ASSERT_LINE : CLEAR_LINE); - } - - m_recv_mode[uartind] = RECV_MODE_NORMAL; - break; - - default: - logerror("(RS232/%d) Unknown mode: %d\n", uartind+1, m_recv_mode[uartind]); - } -} - -/* - Control operations like configuration or line changes -*/ -void ti_rs232_pio_device::configure_interface(int uartind, int type, int value) -{ - uint8_t bufctrl[4]; - device_image_interface *serial; - uint8_t esc = ESC; - - serial = dynamic_cast(m_serdev[uartind]); - - if (!serial->exists()) - { - logerror("(RS232/%d) No serial output attached\n", uartind+1); - return; - } - - serial->fwrite(&esc, 1); - bufctrl[0] = 0x02; - bufctrl[1] = CONFIG | TYPE_TMS9902; - - switch (type) { - case RATERECV: - if (TRACE_SETTING) logerror("(RS232/%d) Send receive rate %04x\n", uartind+1, value); - // value has 12 bits - // 1ccc xaaa = config adapter type a - // 1111 xaaa rrrr rrrr rrrr 0000 = config receive rate on a - // 1110 xaaa rrrr rrrr rrrr 0000 = config transmit rate on a - bufctrl[0] = 0x03; // length - bufctrl[1] |= RATERECV; - bufctrl[2] = (value & 0x0ff0)>>4; - bufctrl[3] = (value & 0x0f)<<4; - break; - case RATEXMIT: - if (TRACE_SETTING) logerror("(RS232/%d) Send transmit rate %04x\n", uartind+1, value); - bufctrl[0] = 0x03; // length - bufctrl[1] |= RATEXMIT; - bufctrl[2] = (value & 0x0ff0)>>4; - bufctrl[3] = (value & 0x0f)<<4; - break; - case STOPBITS: - if (TRACE_SETTING) logerror("(RS232/%d) Send stop bit config %02x\n", uartind+1, value&0x03); - bufctrl[1] |= STOPBITS; - bufctrl[2] = (value & 0x03); - break; - case DATABITS: - if (TRACE_SETTING) logerror("(RS232/%d) Send data bit config %02x\n", uartind+1, value&0x03); - bufctrl[1] |= DATABITS; - bufctrl[2] = (value & 0x03); - break; - case PARITY: - if (TRACE_SETTING) logerror("(RS232/%d) Send parity config %02x\n", uartind+1, value&0x03); - bufctrl[1] |= PARITY; - bufctrl[2] = (value & 0x03); - break; - default: - logerror("(RS232/%d) Error - unknown config type %02x\n", uartind+1, type); - } - - serial->fwrite(bufctrl, bufctrl[0]+1); -} - -void ti_rs232_pio_device::set_bit(int uartind, int line, int value) -{ - if (TRACE_LINES) - { - switch (line) - { - case CTS: logerror("(RS232/%d) Set CTS(out)=%s\n", uartind+1, (value!=0)? "asserted" : "cleared"); break; - case DCD: logerror("(RS232/%d) Set DCD(out)=%s\n", uartind+1, (value!=0)? "asserted" : "cleared"); break; - case BRK: logerror("(RS232/%d) Set BRK(out)=%s\n", uartind+1, (value!=0)? "asserted" : "cleared"); break; - } - } - - if (value!=0) m_signals[uartind] |= line; - else m_signals[uartind] &= ~line; -} - -/* - Line changes -*/ -void ti_rs232_pio_device::output_exception(int uartind, int param, uint8_t value) -{ - device_image_interface *serial; - uint8_t bufctrl[2]; - uint8_t esc = ESC; - - serial = dynamic_cast(m_serdev[uartind]); - - if (!serial->exists()) - { - logerror("(RS232/%d) No serial output attached\n", uartind+1); - return; - } - - serial->fwrite(&esc, 1); - - bufctrl[0] = 1; - // 0100 0xxv = exception xx: 02=BRK, 04=FRMERR, 06=PARERR; v=0,1 (only for BRK) - // BRK is the only output exception - bufctrl[1] = EXCEPT | param | (value&1); - serial->fwrite(bufctrl, 2); -} - -/* - Line changes -*/ -void ti_rs232_pio_device::output_line_state(int uartind, int mask, uint8_t value) -{ - device_image_interface *serial; - uint8_t bufctrl[2]; - uint8_t esc = ESC; - - serial = dynamic_cast(m_serdev[uartind]); - - if (!serial->exists()) - { - logerror("(RS232/%d) No serial output attached\n", uartind+1); - return; - } - - // Send ESC to serial bridge - serial->fwrite(&esc, 1); - - // Length 1 - bufctrl[0] = 1; - - // 01ab cdef = setting line RTS=a, CTS=b, DSR=c, DCD=d, DTR=e, RI=f - - // The CTS line (coming from a CRU bit) is connected to the CTS pin - if (mask & CTS) set_bit(uartind, CTS, value & CTS); - - // The RTS line (from 9902) is connected to the DCD pin - if (mask & RTS) set_bit(uartind, DCD, value & RTS); - - // The DSR pin is hardwired to +5V - set_bit(uartind, DSR, 1); - - // As of here, the lines are set according to the schematics of the - // serial interface. - - // Now translate the signals of the board to those of a DTE-like device - // so that we can pass the signal to the real PC serial interface - // (can be imagined as if we emulated the cable) - bufctrl[1] = map_lines_out(uartind, m_signals[uartind]); - serial->fwrite(bufctrl, 2); -} - -/*********************************************************************** - callbacks -************************************************************************/ -/* - Propagates the /INT signal of the UARTs to the /INT line of the pbox. -*/ -WRITE_LINE_MEMBER( ti_rs232_pio_device::int0_callback ) -{ - int senila_bit = SENILA_0_BIT; - - if (state==ASSERT_LINE) m_ila |= senila_bit; - else m_ila &= ~senila_bit; - - m_slot->set_inta(state); -} - -WRITE_LINE_MEMBER( ti_rs232_pio_device::int1_callback ) -{ - int senila_bit = SENILA_1_BIT; - - if (state==ASSERT_LINE) m_ila |= senila_bit; - else m_ila &= ~senila_bit; - - m_slot->set_inta(state); -} - -/* - Called from the UART when it wants to receive a character - However, characters are not passed to it at this point - Instead, we check for signal line change or data transmission - and call the respective function -*/ -WRITE_LINE_MEMBER( ti_rs232_pio_device::rcv0_callback ) -{ - receive_data_or_line_state(0); -} - -WRITE_LINE_MEMBER( ti_rs232_pio_device::rcv1_callback ) -{ - receive_data_or_line_state(1); -} - -WRITE8_MEMBER( ti_rs232_pio_device::xmit0_callback ) -{ - transmit_data(0, data); -} - -WRITE8_MEMBER( ti_rs232_pio_device::xmit1_callback ) -{ - transmit_data(1, data); -} - -void ti_rs232_pio_device::ctrl_callback(int uartind, int offset, uint8_t data) -{ - if ((offset & CONFIG)!=0) - { - // We cannot pass the configuration data as they need more than 8 bits. - // Could be done by a write16 function as well. - configure_interface(uartind, data, m_uart[uartind]->get_config_value()); - } - else - { - if ((offset & EXCEPT)!=0) - { - output_exception(uartind, offset & ~EXCEPT, data); - } - else - { - output_line_state(uartind, offset, data); - } - } -} - -WRITE8_MEMBER( ti_rs232_pio_device::ctrl0_callback ) -{ - ctrl_callback(0, offset, data); -} - -WRITE8_MEMBER( ti_rs232_pio_device::ctrl1_callback ) -{ - ctrl_callback(1, offset, data); -} - -void ti_rs232_pio_device::device_start() -{ - m_dsrrom = memregion(DSRROM)->base(); - m_uart[0] = subdevice("tms9902_0"); - m_uart[1] = subdevice("tms9902_1"); - m_serdev[0] = subdevice("serdev0"); - m_serdev[1] = subdevice("serdev1"); - m_piodev = subdevice("piodev"); - // Prepare the receive buffers - m_recvbuf[0] = std::make_unique(512); - m_recvbuf[1] = std::make_unique(512); - m_pio_write = true; // required for call_load of pio_attached_device - m_pio_writable = false; - m_pio_handshakein = false; - - // We don't save the receive buffers for persistent state - save_pointer(NAME(m_signals),2); - save_pointer(NAME(m_recv_mode),2); - save_pointer(NAME(m_time_hold),2); - save_item(NAME(m_pio_direction_in)); - save_item(NAME(m_pio_handshakeout)); - save_item(NAME(m_pio_handshakein)); - save_item(NAME(m_pio_spareout)); - save_item(NAME(m_pio_sparein)); - save_item(NAME(m_flag0)); - save_item(NAME(m_led)); - save_item(NAME(m_pio_out_buffer)); - save_item(NAME(m_pio_in_buffer)); - save_item(NAME(m_pio_readable)); - save_item(NAME(m_pio_writable)); - save_item(NAME(m_pio_write)); - save_item(NAME(m_ila)); -} - -void ti_rs232_pio_device::device_stop() -{ - m_recvbuf[0] = nullptr; - m_recvbuf[1] = nullptr; -} - -void ti_rs232_pio_device::device_reset() -{ - m_pio_direction_in = false; - m_pio_handshakeout = false; - m_pio_spareout = false; - m_flag0 = false; - - set_bit(0, CTS, 0); - set_bit(1, CTS, 0); - - m_led = false; - m_recv_mode[0] = RECV_MODE_NORMAL; - m_recv_mode[1] = RECV_MODE_NORMAL; - - m_bufpos[0] = m_bufpos[1] = m_buflen[0] = m_buflen[1] = 0; - - if (m_genmod) - { - m_select_mask = 0x1fe000; - m_select_value = 0x174000; - } - else - { - m_select_mask = 0x7e000; - m_select_value = 0x74000; - } - - m_selected = false; - - m_cru_base = (ioport("CRURS232")->read()==0)? 0x1300 : 0x1500; - - m_time_hold[0] = m_time_hold[1] = 0.0; - - // Both DTRs are pulled up - incoming_dtr(0, ASSERT_LINE); - incoming_dtr(1, ASSERT_LINE); -} - -static MACHINE_CONFIG_FRAGMENT( ti_rs232 ) - MCFG_DEVICE_ADD("tms9902_0", TMS9902, 3000000) - MCFG_TMS9902_INT_CB(WRITELINE(ti_rs232_pio_device, int0_callback)) /* called when interrupt pin state changes */ - MCFG_TMS9902_RCV_CB(WRITELINE(ti_rs232_pio_device, rcv0_callback)) /* called when a character is received */ - MCFG_TMS9902_XMIT_CB(WRITE8(ti_rs232_pio_device, xmit0_callback)) /* called when a character is transmitted */ - MCFG_TMS9902_CTRL_CB(WRITE8(ti_rs232_pio_device, ctrl0_callback)) - MCFG_DEVICE_ADD("tms9902_1", TMS9902, 3000000) - MCFG_TMS9902_INT_CB(WRITELINE(ti_rs232_pio_device, int1_callback)) /* called when interrupt pin state changes */ - MCFG_TMS9902_RCV_CB(WRITELINE(ti_rs232_pio_device, rcv1_callback)) /* called when a character is received */ - MCFG_TMS9902_XMIT_CB(WRITE8(ti_rs232_pio_device, xmit1_callback)) /* called when a character is transmitted */ - MCFG_TMS9902_CTRL_CB(WRITE8(ti_rs232_pio_device, ctrl1_callback)) - MCFG_DEVICE_ADD("serdev0", TI99_RS232_DEV, 0) - MCFG_DEVICE_ADD("serdev1", TI99_RS232_DEV, 0) - MCFG_DEVICE_ADD("piodev", TI99_PIO_DEV, 0) -MACHINE_CONFIG_END - -ROM_START( ti_rs232 ) - ROM_REGION(0x1000, DSRROM, 0) - ROM_LOAD("rs232pio_dsr.u1", 0x0000, 0x1000, CRC(eab382fb) SHA1(ee609a18a21f1a3ddab334e8798d5f2a0fcefa91)) /* TI rs232 DSR ROM */ -ROM_END - -INPUT_PORTS_START( ti_rs232 ) - PORT_START( "CRURS232" ) - PORT_DIPNAME( 0x01, 0x00, "TI-RS232 CRU base" ) - PORT_DIPSETTING( 0x00, "1300" ) - PORT_DIPSETTING( 0x00, "1500" ) - - PORT_START( "SERIALMAP" ) - PORT_CONFNAME( 0x03, 0x00, "Serial cable pin mapping" ) - PORT_CONFSETTING( 0x00, "6-20" ) - PORT_CONFSETTING( 0x01, "8-20" ) - PORT_CONFSETTING( 0x02, "5-20" ) -INPUT_PORTS_END - -machine_config_constructor ti_rs232_pio_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( ti_rs232 ); -} - -const tiny_rom_entry *ti_rs232_pio_device::device_rom_region() const -{ - return ROM_NAME( ti_rs232 ); -} - -ioport_constructor ti_rs232_pio_device::device_input_ports() const -{ - return INPUT_PORTS_NAME(ti_rs232); -} - -const device_type TI99_RS232 = device_creator; -const device_type TI99_RS232_DEV = device_creator; -const device_type TI99_PIO_DEV = device_creator; diff --git a/src/devices/bus/ti99_peb/ti_rs232.h b/src/devices/bus/ti99_peb/ti_rs232.h deleted file mode 100644 index c4d6d24f37f..00000000000 --- a/src/devices/bus/ti99_peb/ti_rs232.h +++ /dev/null @@ -1,162 +0,0 @@ -// license:LGPL-2.1+ -// copyright-holders:Michael Zapf -/**************************************************************************** - - TI-99 Serial and parallel interface card - See ti_rs232.c for documentation - - Michael Zapf - February 2012: Rewritten as class - -*****************************************************************************/ - -#ifndef __TIRS232__ -#define __TIRS232__ - -#include "peribox.h" -#include "machine/tms9902.h" - -extern const device_type TI99_RS232; -extern const device_type TI99_RS232_DEV; -extern const device_type TI99_PIO_DEV; - -class ti_rs232_attached_device; -class ti_pio_attached_device; - -class ti_rs232_pio_device : public ti_expansion_card_device -{ - friend class ti_pio_attached_device; - friend class ti_rs232_attached_device; - -public: - ti_rs232_pio_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - DECLARE_READ8Z_MEMBER(readz) override; - DECLARE_WRITE8_MEMBER(write) override; - - DECLARE_READ8Z_MEMBER(crureadz) override; - DECLARE_WRITE8_MEMBER(cruwrite) override; - - DECLARE_WRITE_LINE_MEMBER( int0_callback ); - DECLARE_WRITE_LINE_MEMBER( int1_callback ); - DECLARE_WRITE_LINE_MEMBER( rcv0_callback ); - DECLARE_WRITE_LINE_MEMBER( rcv1_callback ); - DECLARE_WRITE8_MEMBER( xmit0_callback ); - DECLARE_WRITE8_MEMBER( xmit1_callback ); - DECLARE_WRITE8_MEMBER( ctrl0_callback ); - DECLARE_WRITE8_MEMBER( ctrl1_callback ); - -protected: - virtual void device_start(void) override; - virtual void device_reset(void) override; - virtual void device_stop(void) override; - virtual const tiny_rom_entry *device_rom_region(void) const override; - virtual machine_config_constructor device_mconfig_additions() const override; - virtual ioport_constructor device_input_ports() const override; - -private: - void incoming_dtr(int uartind, line_state value); - void transmit_data(int uartind, uint8_t value); - uint8_t map_lines_out(int uartind, uint8_t value); - uint8_t map_lines_in(int uartind, uint8_t value); - void receive_data_or_line_state(int uartind); - void set_bit(int uartind, int line, int value); - - void configure_interface(int uartind, int type, int value); - void output_line_state(int uartind, int mask, uint8_t value); - void output_exception(int uartind, int param, uint8_t value); - void ctrl_callback(int uartind, int type, uint8_t data); - - // UART chips - tms9902_device* m_uart[2]; - // Connected images (file or socket connection) that represent the - // devices that are connected to the serial adapters - ti_rs232_attached_device* m_serdev[2]; - // Connected image (file) that represents the device connected to the - // parallel interface - ti_pio_attached_device* m_piodev; - uint8_t* m_dsrrom; - - // Input buffer for each UART. We have to copy the contents of sdlsocket here - // because the buffer in corefile will be lost on the next write operation - std::unique_ptr m_recvbuf[2]; - int m_bufpos[2], m_buflen[2]; - - // Latches the state of the output lines for UART0/UART1 - uint8_t m_signals[2]; - int m_recv_mode[2]; // May be NORMAL or ESC - - // Baud rate management - // not part of the real device, but required for the connection to the - // real UART - double m_time_hold[2]; - - // PIO flags - bool m_pio_direction_in; // a.k.a. PIOOC pio in output mode if 0 - bool m_pio_handshakeout; - bool m_pio_handshakein; - bool m_pio_spareout; - bool m_pio_sparein; - bool m_flag0; // spare - bool m_led; // a.k.a. flag3 - int m_pio_out_buffer; - int m_pio_in_buffer; - bool m_pio_readable; - bool m_pio_writable; - bool m_pio_write; // true if image is to be written to - - /* Keeps the value put on the bus when SENILA becomes active. */ - uint8_t m_ila; -}; - -/****************************************************************************/ - -/* - Defines the serial serdev. "TI99 RS232 attached serial device" -*/ -class ti_rs232_attached_device : public device_t, public device_image_interface -{ -public: - ti_rs232_attached_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - - iodevice_t image_type() const override { return IO_SERIAL; } - bool is_readable() const override { return true; } - bool is_writeable() const override { return true; } - bool is_creatable() const override { return true; } - bool must_be_loaded() const override { return false; } - bool is_reset_on_load() const override { return false; } - const char *image_interface() const override { return ""; } - const char *file_extensions() const override { return ""; } - -protected: - virtual void device_start(void) override; - image_init_result call_load() override; - void call_unload() override; - -private: - int get_index_from_tagname(); -}; - -/* - Defines the PIO (parallel IO) "TI99 PIO attached device" -*/ -class ti_pio_attached_device : public device_t, public device_image_interface -{ -public: - ti_pio_attached_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - - iodevice_t image_type() const override { return IO_PARALLEL; } - bool is_readable() const override { return true; } - bool is_writeable() const override { return true; } - bool is_creatable() const override { return true; } - bool must_be_loaded() const override { return false; } - bool is_reset_on_load() const override { return false; } - const char *image_interface() const override { return ""; } - const char *file_extensions() const override { return ""; } - -protected: - virtual void device_start(void) override; - image_init_result call_load() override; - void call_unload() override; -}; - -#endif diff --git a/src/devices/bus/ti99_peb/tn_ide.cpp b/src/devices/bus/ti99_peb/tn_ide.cpp deleted file mode 100644 index 5a4f9ca523b..00000000000 --- a/src/devices/bus/ti99_peb/tn_ide.cpp +++ /dev/null @@ -1,387 +0,0 @@ -// license:LGPL-2.1+ -// copyright-holders:Michael Zapf -/**************************************************************************** - - Thierry Nouspikel's IDE card emulation - - This card is just a prototype. It has been designed by Thierry Nouspikel, - and its description was published in 2001. The card has been revised in - 2004. - - The specs have been published in . - - The IDE interface is quite simple, since it only implements PIO transfer. - The card includes a clock chip to timestamp files, and an SRAM for the DSR. - It should be possible to use a battery backed DSR SRAM, but since the clock - chip includes 4kb of battery-backed RAM, a bootstrap loader can be saved in - the clock SRAM in order to load the DSR from the HD when the computer - starts. - - Raphael Nabet, 2002-2004. - - Michael Zapf - September 2010: Rewritten as device - February 2012: Rewritten as class - - FIXME: Completely untested and likely to be broken - -*****************************************************************************/ - -#include "emu.h" -#include "peribox.h" -#include "machine/ataintf.h" -#include "tn_ide.h" - -#define CRU_BASE 0x1000 - -#define RAMREGION "ram" - -/* previously 0xff */ -#define PAGE_MASK 0x3f - -enum -{ - cru_reg_page_switching = 0x04, - cru_reg_page_0 = 0x08, - /*cru_reg_rambo = 0x10,*/ /* not emulated */ - cru_reg_wp = 0x20, - cru_reg_int_en = 0x40, - cru_reg_reset = 0x80 -}; - -nouspikel_ide_interface_device::nouspikel_ide_interface_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : ti_expansion_card_device(mconfig, TI99_IDE, "Nouspikel IDE interface card", tag, owner, clock, "ti99_ide", __FILE__), m_ata_irq(false), - m_cru_register(0), m_rtc(nullptr), - m_ata(*this, "ata"), m_clk_irq(false), m_sram_enable(false), - m_sram_enable_dip(false), m_cur_page(0), m_tms9995_mode(false), - m_input_latch(0), m_output_latch(0), m_ram(*this, RAMREGION) -{ -} - -/* - CRU read -*/ -READ8Z_MEMBER(nouspikel_ide_interface_device::crureadz) -{ - uint8_t reply = 0; - if ((offset & 0xff00)==m_cru_base) - { - int bit = (offset >> 4) & 7; - - if (bit==0) - { - reply = m_cru_register & 0x30; - reply |= 8; /* IDE bus IORDY always set */ - if (!m_clk_irq) - reply |= 4; - if (m_sram_enable_dip) - reply |= 2; - if (!m_ata_irq) - reply |= 1; - } - *value = reply; - } -} - -/* - CRU write -*/ -WRITE8_MEMBER(nouspikel_ide_interface_device::cruwrite) -{ - if ((offset & 0xff00)==m_cru_base) - { - int bit = (offset >>1) & 7; - switch (bit) - { - case 0: - m_selected = (data!=0); - - case 1: // enable SRAM or registers in 0x4000-0x40ff - m_sram_enable = (data!=0); - break; - - case 2: // enable SRAM page switching - case 3: // force SRAM page 0 - case 4: // enable SRAM in 0x6000-0x7000 ("RAMBO" mode) - case 5: // write-protect RAM - case 6: // irq and reset enable - case 7: // reset drive - if (data!=0) - m_cru_register |= 1 << bit; - else - m_cru_register &= ~(1 << bit); - - if (bit == 6) - m_slot->set_inta((m_cru_register & cru_reg_int_en) && m_ata_irq); - - if ((bit == 6) || (bit == 7)) - if ((m_cru_register & cru_reg_int_en) && !(m_cru_register & cru_reg_reset)) - m_ata->reset(); - break; - } - } -} - -/* - Memory read -*/ -READ8Z_MEMBER(nouspikel_ide_interface_device::readz) -{ - uint8_t reply = 0; - if (machine().side_effect_disabled()) return; - - if (((offset & m_select_mask)==m_select_value) && m_selected) - { - int addr = offset & 0x1fff; - - if ((addr <= 0xff) && (m_sram_enable == m_sram_enable_dip)) - { /* registers */ - switch ((addr >> 5) & 0x3) - { - case 0: /* RTC RAM */ - if (addr & 0x80) - /* RTC RAM page register */ - reply = m_rtc->xram_r(machine().dummy_space(), (addr & 0x1f) | 0x20); - else - /* RTC RAM read */ - reply = m_rtc->xram_r(machine().dummy_space(), addr); - break; - case 1: /* RTC registers */ - if (addr & 0x10) - /* register data */ - reply = m_rtc->rtc_r(machine().dummy_space(), 1); - else - /* register select */ - reply = m_rtc->rtc_r(machine().dummy_space(), 0); - break; - case 2: /* IDE registers set 1 (CS1Fx) */ - if (m_tms9995_mode ? (!(addr & 1)) : (addr & 1)) - { /* first read triggers 16-bit read cycle */ - m_input_latch = (! (addr & 0x10)) ? m_ata->read_cs0(space, (addr >> 1) & 0x7, 0xffff) : 0; - } - - /* return latched input */ - /*reply = (addr & 1) ? input_latch : (input_latch >> 8);*/ - /* return latched input - bytes are swapped in 2004 IDE card */ - reply = ((addr & 1) ? (m_input_latch >> 8) : m_input_latch) & 0xff; - break; - case 3: /* IDE registers set 2 (CS3Fx) */ - if (m_tms9995_mode ? (!(addr & 1)) : (addr & 1)) - { /* first read triggers 16-bit read cycle */ - m_input_latch = (! (addr & 0x10)) ? m_ata->read_cs1(space, (addr >> 1) & 0x7, 0xffff) : 0; - } - - /* return latched input */ - /*reply = (addr & 1) ? input_latch : (input_latch >> 8);*/ - /* return latched input - bytes are swapped in 2004 IDE card */ - reply = ((addr & 1) ? (m_input_latch >> 8) : m_input_latch) & 0xff; - break; - } - } - else - { /* sram */ - if ((m_cru_register & cru_reg_page_0) || (addr >= 0x1000)) - reply = m_ram->pointer()[addr+0x2000 * m_cur_page]; - else - reply = m_ram->pointer()[addr]; - } - *value = reply; - } -} - -/* - Memory write. The controller is 16 bit, so we need to demultiplex again. -*/ -WRITE8_MEMBER(nouspikel_ide_interface_device::write) -{ - if (machine().side_effect_disabled()) return; - - if (((offset & m_select_mask)==m_select_value) && m_selected) - { - if (m_cru_register & cru_reg_page_switching) - { - m_cur_page = (offset >> 1) & PAGE_MASK; - } - - int addr = offset & 0x1fff; - - if ((addr <= 0xff) && (m_sram_enable == m_sram_enable_dip)) - { /* registers */ - switch ((addr >> 5) & 0x3) - { - case 0: /* RTC RAM */ - if (addr & 0x80) - /* RTC RAM page register */ - m_rtc->xram_w(machine().dummy_space(), (addr & 0x1f) | 0x20, data); - else - /* RTC RAM write */ - m_rtc->xram_w(machine().dummy_space(), addr, data); - break; - case 1: /* RTC registers */ - if (addr & 0x10) - /* register data */ - m_rtc->rtc_w(machine().dummy_space(), 1, data); - else - /* register select */ - m_rtc->rtc_w(machine().dummy_space(), 0, data); - break; - case 2: /* IDE registers set 1 (CS1Fx) */ -/* - if (addr & 1) - m_output_latch = (m_output_latch & 0xff00) | data; - else - m_output_latch = (m_output_latch & 0x00ff) | (data << 8); -*/ - /* latch write - bytes are swapped in 2004 IDE card */ - if (addr & 1) - m_output_latch = (m_output_latch & 0x00ff) | (data << 8); - else - m_output_latch = (m_output_latch & 0xff00) | data; - - if (m_tms9995_mode ? (addr & 1) : (!(addr & 1))) - { /* second write triggers 16-bit write cycle */ - m_ata->write_cs0(space, (addr >> 1) & 0x7, m_output_latch, 0xffff); - } - break; - case 3: /* IDE registers set 2 (CS3Fx) */ -/* - if (addr & 1) - m_output_latch = (m_output_latch & 0xff00) | data; - else - m_output_latch = (m_output_latch & 0x00ff) | (data << 8); -*/ - /* latch write - bytes are swapped in 2004 IDE card */ - if (addr & 1) - m_output_latch = (m_output_latch & 0x00ff) | (data << 8); - else - m_output_latch = (m_output_latch & 0xff00) | data; - - if (m_tms9995_mode ? (addr & 1) : (!(addr & 1))) - { /* second write triggers 16-bit write cycle */ - m_ata->write_cs1(space, (addr >> 1) & 0x7, m_output_latch, 0xffff); - } - break; - } - } - else - { /* sram */ - if (! (m_cru_register & cru_reg_wp)) - { - if ((m_cru_register & cru_reg_page_0) || (addr >= 0x1000)) - m_ram->pointer()[addr+0x2000 * m_cur_page] = data; - else - m_ram->pointer()[addr] = data; - } - } - } -} - -void nouspikel_ide_interface_device::do_inta(int state) -{ - m_slot->set_inta(state); -} - -/* - ti99_ide_interrupt() - IDE interrupt callback -*/ -WRITE_LINE_MEMBER(nouspikel_ide_interface_device::ide_interrupt_callback) -{ - m_ata_irq = state; - if (m_cru_register & cru_reg_int_en) - do_inta(state); -} - -/* - clk_interrupt_callback() - clock interrupt callback -*/ -WRITE_LINE_MEMBER(nouspikel_ide_interface_device::clock_interrupt_callback) -{ - m_clk_irq = (state!=0); - m_slot->set_inta(state); -} - -void nouspikel_ide_interface_device::device_start() -{ - m_rtc = subdevice("ide_rtc"); - m_sram_enable_dip = false; // TODO: what is this? - - save_item(NAME(m_ata_irq)); - save_item(NAME(m_cru_register)); - save_item(NAME(m_clk_irq)); - save_item(NAME(m_sram_enable)); - save_item(NAME(m_sram_enable_dip)); - save_item(NAME(m_cur_page)); - save_item(NAME(m_tms9995_mode)); - save_item(NAME(m_input_latch)); - save_item(NAME(m_output_latch)); -} - -void nouspikel_ide_interface_device::device_reset() -{ - m_cur_page = 0; - m_sram_enable = false; - m_cru_register = 0; - - if (m_genmod) - { - m_select_mask = 0x1fe000; - m_select_value = 0x174000; - } - else - { - m_select_mask = 0x7e000; - m_select_value = 0x74000; - } - m_selected = false; - - m_cru_base = ioport("CRUIDE")->read(); - m_clk_irq = false; - - m_tms9995_mode = false; // (device->type()==TMS9995); -} - -MACHINE_CONFIG_FRAGMENT( tn_ide ) - MCFG_DEVICE_ADD( "ide_rtc", RTC65271, 0 ) - MCFG_RTC65271_INTERRUPT_CB(WRITELINE(nouspikel_ide_interface_device, clock_interrupt_callback)) - MCFG_ATA_INTERFACE_ADD( "ata", ata_devices, "hdd", nullptr, false) - MCFG_ATA_INTERFACE_IRQ_HANDLER(WRITELINE(nouspikel_ide_interface_device, ide_interrupt_callback)) - - MCFG_RAM_ADD(RAMREGION) - MCFG_RAM_DEFAULT_SIZE("512K") - MCFG_RAM_DEFAULT_VALUE(0) -MACHINE_CONFIG_END - -INPUT_PORTS_START( tn_ide ) - PORT_START( "CRUIDE" ) - PORT_DIPNAME( 0x1f00, 0x1000, "IDE CRU base" ) - PORT_DIPSETTING( 0x1000, "1000" ) - PORT_DIPSETTING( 0x1100, "1100" ) - PORT_DIPSETTING( 0x1200, "1200" ) - PORT_DIPSETTING( 0x1300, "1300" ) - PORT_DIPSETTING( 0x1400, "1400" ) - PORT_DIPSETTING( 0x1500, "1500" ) - PORT_DIPSETTING( 0x1600, "1600" ) - PORT_DIPSETTING( 0x1700, "1700" ) - PORT_DIPSETTING( 0x1800, "1800" ) - PORT_DIPSETTING( 0x1900, "1900" ) - PORT_DIPSETTING( 0x1a00, "1A00" ) - PORT_DIPSETTING( 0x1b00, "1B00" ) - PORT_DIPSETTING( 0x1c00, "1C00" ) - PORT_DIPSETTING( 0x1d00, "1D00" ) - PORT_DIPSETTING( 0x1e00, "1E00" ) - PORT_DIPSETTING( 0x1f00, "1F00" ) -INPUT_PORTS_END - -machine_config_constructor nouspikel_ide_interface_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( tn_ide ); -} - -ioport_constructor nouspikel_ide_interface_device::device_input_ports() const -{ - return INPUT_PORTS_NAME(tn_ide); -} - -const device_type TI99_IDE = device_creator; diff --git a/src/devices/bus/ti99_peb/tn_ide.h b/src/devices/bus/ti99_peb/tn_ide.h deleted file mode 100644 index 923b4cde39b..00000000000 --- a/src/devices/bus/ti99_peb/tn_ide.h +++ /dev/null @@ -1,63 +0,0 @@ -// license:LGPL-2.1+ -// copyright-holders:Michael Zapf -/**************************************************************************** - - Nouspikel IDE controller card - See tn_ide.c for documentation - - Michael Zapf - - February 2012: Rewritten as class - -*****************************************************************************/ - -#ifndef __TNIDE__ -#define __TNIDE__ - -#include "machine/ataintf.h" -#include "machine/rtc65271.h" -#include "machine/ram.h" - -extern const device_type TI99_IDE; - -class nouspikel_ide_interface_device : public ti_expansion_card_device -{ -public: - nouspikel_ide_interface_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - DECLARE_READ8Z_MEMBER(readz) override; - DECLARE_WRITE8_MEMBER(write) override; - - DECLARE_READ8Z_MEMBER(crureadz) override; - DECLARE_WRITE8_MEMBER(cruwrite) override; - - void do_inta(int state); - bool m_ata_irq; - int m_cru_register; - - DECLARE_WRITE_LINE_MEMBER(clock_interrupt_callback); - DECLARE_WRITE_LINE_MEMBER(ide_interrupt_callback); - -protected: - virtual void device_start(void) override; - virtual void device_reset(void) override; - virtual machine_config_constructor device_mconfig_additions() const override; - virtual ioport_constructor device_input_ports() const override; - -private: - rtc65271_device* m_rtc; - required_device m_ata; - - bool m_clk_irq; - bool m_sram_enable; - bool m_sram_enable_dip; - int m_cur_page; - - bool m_tms9995_mode; - - uint16_t m_input_latch; - uint16_t m_output_latch; - - required_device m_ram; -}; - -#endif diff --git a/src/devices/bus/ti99_peb/tn_usbsm.cpp b/src/devices/bus/ti99_peb/tn_usbsm.cpp deleted file mode 100644 index 91d4973da80..00000000000 --- a/src/devices/bus/ti99_peb/tn_usbsm.cpp +++ /dev/null @@ -1,379 +0,0 @@ -// license:LGPL-2.1+ -// copyright-holders:Michael Zapf -/**************************************************************************** - - Thierry Nouspikel's USB-SmartMedia card emulation - - This card features three USB ports (two host and one device) and a - SmartMedia interface. The original prototype was designed by Thierry - Nouspikel, and its description was published in 2003; a small series of - approximately 100 printed-circuit boards was ordered shortly afterwards - by various TI users. - - The specs have been published in . - - The USB interface uses a Philips ISP1161A USB controller that supports - USB 2.0 full-speed (12 Mbit/s) and low-speed (1.5 Mbit/s) I/O (high speed - (480 Mbits/sec) is not supported, but it is hardly a problem since TI99 is - too slow to take advantage from high speed). The SmartMedia interface uses - a few TTL buffers. The card also includes an 8MByte StrataFlash FEEPROM - and 1MByte of SRAM for DSR use. - - The card has a 8-bit->16-bit demultiplexer that can be set-up to assume - either that the LSByte of a word is accessed first or that the MSByte of a word - is accessed first. The former is true with ti-99/4(a), the latter with the - tms9995 CPU used by Geneve and ti-99/8. - - TODO: - * Test SmartMedia support - * Implement USB controller and assorted USB devices - * Save DSR FEEPROM to disk - - Original code by Raphael Nabet, 2004. - - Michael Zapf - September 2010: Rewritten as device - February 2012: Rewritten as class - - FIXME: Completely untested and likely to be broken - -*****************************************************************************/ - -#include "emu.h" -#include "tn_usbsm.h" - -#define STRATA_TAG "strata" - -#define RAM1_TAG "ram512k_lb" -#define RAM2_TAG "ram512k_hb" - -enum -{ - IO_REGS_ENABLE = 0x02, - INT_ENABLE = 0x04, - SM_ENABLE = 0x08, - FEEPROM_WRITE_ENABLE = 0x10 -}; - -nouspikel_usb_smartmedia_device::nouspikel_usb_smartmedia_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : ti_expansion_card_device(mconfig, TI99_USBSM, "Nouspikel USB/Smartmedia card", tag, owner, clock, "ti99_usbsm", __FILE__), - m_feeprom_page(0), - m_sram_page(0), - m_cru_register(0), - m_tms9995_mode(false), - m_enable_io(false), - m_enable_int(false), - m_enable_sm(false), - m_write_flash(false), - m_input_latch(0), - m_output_latch(0), - m_ram_lb(*this, RAM1_TAG), - m_ram_hb(*this, RAM2_TAG), - m_smartmedia(*this, "smartmedia"), - m_flash(*this, STRATA_TAG) -{ -} - -/* - CRU read -*/ -READ8Z_MEMBER(nouspikel_usb_smartmedia_device::crureadz) -{ - if ((offset & 0xff00)==m_cru_base) - { - uint8_t reply = 0; - offset &= 3; - - if (offset == 0) - { - // bit - // 0 >1x00 0: USB Host controller requests interrupt. - // 1 >1x02 0: USB Device controller requests interrupt. - // 2 >1x04 1: USB Host controller suspended. - // 3 >1x06 1: USB Device controller suspended. - // 4 >1x08 0: Strata FEEPROM is busy. - // 1: Strata FEEPROM is ready. - // 5 >1x0A 0: SmartMedia card is busy. - // 1: SmartMedia card absent or ready. - // 6 >1x0C 0: No SmartMedia card present. - // 1: A card is in the connector. - // 7 >1x0E 0: SmartMedia card is protected. - // 1: Card absent or not protected. - - reply = 0x33; - if (!m_smartmedia->is_present()) - reply |= 0xc0; - else if (!m_smartmedia->is_protected()) - reply |= 0x80; - } - *value = reply; - } -} - -/* - CRU write -*/ -WRITE8_MEMBER(nouspikel_usb_smartmedia_device::cruwrite) -{ - if ((offset & 0xff00)==m_cru_base) - { - int bit = (offset >> 1) & 0x1f; - - switch (bit) - { - case 0: - m_selected = data; - break; - case 1: - // enable I/O registers - m_enable_io = data; - break; - case 2: - // enable interrupts - m_enable_int = data; - break; - case 3: - // enable SmartMedia card - m_enable_sm = data; - break; - case 4: - // enable FEEPROM writes (and disable reads) - m_write_flash = data; - break; - case 5: /* FEEPROM page */ - case 6: - case 7: - case 8: - case 9: - case 10: - case 11: - case 12: - case 13: - case 14: - case 15: - if (data) - m_feeprom_page |= 1 << (bit-5); - else - m_feeprom_page &= ~ (1 << (bit-5)); - break; - - case 16: /* SRAM page */ - case 17: - case 18: - case 19: - case 20: - case 21: - case 22: - case 23: - if (data) - m_sram_page |= 1 << (bit-16); - else - m_sram_page &= ~ (1 << (bit-16)); - break; - } - } -} - -/* - Memory read - TODO: Check whether AMA/B/C is actually checked -*/ -READ8Z_MEMBER(nouspikel_usb_smartmedia_device::readz) -{ - if (machine().side_effect_disabled()) return; - - if (((offset & m_select_mask)==m_select_value) && m_selected) - { - if (m_tms9995_mode ? (!(offset & 1)) : (offset & 1)) - { - // first read triggers 16-bit read cycle - - if (offset < 0x5000) - { - // 0x4000-0x4fff range - if (m_enable_io && (offset >= 0x4ff0)) - { - // SmartMedia interface (4ff0-4ff7) - if ((offset & 8) == 0) - m_input_latch = m_smartmedia->data_r() << 8; - } - else - { - // FEEPROM - if (!m_write_flash) - m_input_latch = m_flash->read16(space, (offset>>1)&0xffff); - } - } - else - { - // 0x5000-0x5fff range - if (m_enable_io && (offset >= 0x5ff0)) - { - // USB controller. Not implemented. - logerror("tn_usbsm: Reading from USB\n"); - } - else - { - // SRAM - int ramaddr = m_sram_page*0x800+((offset>>1)&0x07ff); - m_input_latch = ((m_ram_hb->pointer()[ramaddr] & 0xff) << 8) | (m_ram_lb->pointer()[ramaddr] & 0xff); - } - } - } - - // return latched input - *value = ((offset & 1) ? (m_input_latch) : (m_input_latch >> 8)) & 0xff; - } -} - -/* - Memory write. The controller is 16 bit, so we need to demultiplex again. -*/ -WRITE8_MEMBER(nouspikel_usb_smartmedia_device::write) -{ - if (machine().side_effect_disabled()) return; - - if (((offset & m_select_mask)==m_select_value) && m_selected) - { - /* latch write */ - if (offset & 1) - m_output_latch = (m_output_latch & 0xff00) | data; - else - m_output_latch = (m_output_latch & 0x00ff) | (data << 8); - - if ((m_tms9995_mode)? (offset & 1) : (!(offset & 1))) - { - // second write triggers 16-bit write cycle - if (offset < 0x5000) - { - // 0x4000-0x4fff range - if (m_enable_io && (offset >= 0x4ff0)) - { - // SmartMedia interface - switch (offset & 3) - { - case 0: - m_smartmedia->data_w(m_output_latch >> 8); - break; - case 1: - m_smartmedia->address_w(m_output_latch >> 8); - break; - case 2: - m_smartmedia->command_w(m_output_latch >> 8); - break; - case 3: - /* bogus, don't use(?) */ - break; - } - } - else - { // FEEPROM - if (m_write_flash) - m_flash->write16(space, (offset>>1)&0xffff, m_output_latch); - } - } - else - { /* 0x5000-0x5fff range */ - if (m_enable_io && (offset >= 0x5ff0)) - { - // USB controller. Not implemented. - logerror("tn_usbsm: Writing to USB controller.\n"); - } - else - { // SRAM - int ramaddr = m_sram_page*0x800+((offset>>1)&0x07ff); - m_ram_lb->pointer()[ramaddr] = (m_output_latch & 0xff); - m_ram_hb->pointer()[ramaddr] = (m_output_latch >> 8) & 0xff; - } - } - } - } -} - -void nouspikel_usb_smartmedia_device::device_start() -{ - save_item(NAME(m_feeprom_page)); - save_item(NAME(m_sram_page)); - save_item(NAME(m_cru_register)); - save_item(NAME(m_tms9995_mode)); - save_item(NAME(m_enable_io)); - save_item(NAME(m_enable_int)); - save_item(NAME(m_enable_sm)); - save_item(NAME(m_write_flash)); - save_item(NAME(m_input_latch)); - save_item(NAME(m_output_latch)); -} - -void nouspikel_usb_smartmedia_device::device_reset() -{ - m_feeprom_page = 0; - m_sram_page = 0; - m_cru_register = 0; - m_tms9995_mode = (ioport("BYTEORDER")->read() == 0x01); - m_enable_io = false; - m_enable_int = false; - m_enable_sm = false; - m_write_flash = false; - - if (m_genmod) - { - m_select_mask = 0x1fe000; - m_select_value = 0x174000; - } - else - { - m_select_mask = 0x7e000; - m_select_value = 0x74000; - } - m_selected = false; - - m_cru_base = ioport("CRUUSBSM")->read(); -} - -INPUT_PORTS_START( tn_usbsm ) - PORT_START( "CRUUSBSM" ) - PORT_DIPNAME( 0x1f00, 0x1600, "USB/Smartmedia CRU base" ) - PORT_DIPSETTING( 0x1000, "1000" ) - PORT_DIPSETTING( 0x1100, "1100" ) - PORT_DIPSETTING( 0x1200, "1200" ) - PORT_DIPSETTING( 0x1300, "1300" ) - PORT_DIPSETTING( 0x1400, "1400" ) - PORT_DIPSETTING( 0x1500, "1500" ) - PORT_DIPSETTING( 0x1600, "1600" ) - PORT_DIPSETTING( 0x1700, "1700" ) - PORT_DIPSETTING( 0x1800, "1800" ) - PORT_DIPSETTING( 0x1900, "1900" ) - PORT_DIPSETTING( 0x1a00, "1A00" ) - PORT_DIPSETTING( 0x1b00, "1B00" ) - PORT_DIPSETTING( 0x1c00, "1C00" ) - PORT_DIPSETTING( 0x1d00, "1D00" ) - PORT_DIPSETTING( 0x1e00, "1E00" ) - PORT_DIPSETTING( 0x1f00, "1F00" ) - PORT_START( "BYTEORDER" ) - PORT_DIPNAME( 0x01, 0x00, "Multiplex mode" ) - PORT_DIPSETTING( 0x00, "TI mode") - PORT_DIPSETTING( 0x01, "Geneve mode") -INPUT_PORTS_END - -MACHINE_CONFIG_FRAGMENT( tn_usbsm ) - MCFG_DEVICE_ADD("smartmedia", SMARTMEDIA, 0) - MCFG_STRATAFLASH_ADD(STRATA_TAG) - MCFG_RAM_ADD(RAM1_TAG) - MCFG_RAM_DEFAULT_SIZE("512k") - MCFG_RAM_DEFAULT_VALUE(0) - MCFG_RAM_ADD(RAM2_TAG) - MCFG_RAM_DEFAULT_SIZE("512k") - MCFG_RAM_DEFAULT_VALUE(0) -MACHINE_CONFIG_END - -machine_config_constructor nouspikel_usb_smartmedia_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( tn_usbsm ); -} - -ioport_constructor nouspikel_usb_smartmedia_device::device_input_ports() const -{ - return INPUT_PORTS_NAME(tn_usbsm); -} - -const device_type TI99_USBSM = device_creator; diff --git a/src/devices/bus/ti99_peb/tn_usbsm.h b/src/devices/bus/ti99_peb/tn_usbsm.h deleted file mode 100644 index f363cf34b5c..00000000000 --- a/src/devices/bus/ti99_peb/tn_usbsm.h +++ /dev/null @@ -1,61 +0,0 @@ -// license:LGPL-2.1+ -// copyright-holders:Michael Zapf -/**************************************************************************** - - Nouspikel USB / SmartMedia interface card - See tn_usbsm.c for documentation - - Michael Zapf - - February 2012: Rewritten as class - -*****************************************************************************/ - -#ifndef __USBSMART__ -#define __USBSMART__ - -#include "peribox.h" -#include "machine/smartmed.h" -#include "machine/strata.h" -#include "machine/ram.h" - -extern const device_type TI99_USBSM; - -class nouspikel_usb_smartmedia_device : public ti_expansion_card_device -{ -public: - nouspikel_usb_smartmedia_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - DECLARE_READ8Z_MEMBER(readz) override; - DECLARE_WRITE8_MEMBER(write) override; - - DECLARE_READ8Z_MEMBER(crureadz) override; - DECLARE_WRITE8_MEMBER(cruwrite) override; - -protected: - virtual void device_start(void) override; - virtual void device_reset(void) override; - virtual machine_config_constructor device_mconfig_additions() const override; - virtual ioport_constructor device_input_ports() const override; - -private: - - int m_feeprom_page; - int m_sram_page; - int m_cru_register; - bool m_tms9995_mode; - - bool m_enable_io; - bool m_enable_int; - bool m_enable_sm; - bool m_write_flash; - - uint16_t m_input_latch; - uint16_t m_output_latch; - - required_device m_ram_lb; - required_device m_ram_hb; - required_device m_smartmedia; - required_device m_flash; -}; - -#endif diff --git a/src/devices/bus/ti99x/990_dk.cpp b/src/devices/bus/ti99x/990_dk.cpp index a6a16ba46fb..ca859f7598c 100644 --- a/src/devices/bus/ti99x/990_dk.cpp +++ b/src/devices/bus/ti99x/990_dk.cpp @@ -40,10 +40,10 @@ enum status_unit_shift = 13 }; -const device_type FD800 = device_creator; +DEFINE_DEVICE_TYPE(TI99X_FD800, fd800_legacy_device, "ti99x_fd800", "TI FD800 Diablo floppy disk controller") fd800_legacy_device::fd800_legacy_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, FD800, "TI FD800 Diablo floppy disk controller", tag, owner, clock, "fd800", __FILE__), + : device_t(mconfig, TI99X_FD800, tag, owner, clock), m_recv_buf(0), m_stat_reg(0), m_xmit_buf(0), m_cmd_reg(0), m_interrupt_f_f(0), m_int_line(*this), m_buf_pos(0), m_buf_mode(), m_unit(0), m_sector(0) { @@ -58,7 +58,8 @@ void fd800_legacy_device::set_interrupt_line() } -/* void fd800_legacy_device::unload_proc(device_image_interface &image) +#if 0 +void fd800_legacy_device::unload_proc(device_image_interface &image) { int unit = floppy_get_drive(&image.device()); @@ -90,7 +91,7 @@ void fd800_machine_init(void (*interrupt_callback)(running_machine &machine, int set_interrupt_line(); } -*/ +#endif /* Read the first id field that can be found on the floppy disk. @@ -265,7 +266,7 @@ int fd800_legacy_device::do_restore(int unit) /* Perform a read operation for one sector */ -void fd800_legacy_device::do_read(void) +void fd800_legacy_device::do_read() { /* int data_id; @@ -294,7 +295,7 @@ void fd800_legacy_device::do_read(void) /* Perform a write operation for one sector */ -void fd800_legacy_device::do_write(void) +void fd800_legacy_device::do_write() { /* int data_id; @@ -319,7 +320,7 @@ void fd800_legacy_device::do_write(void) /* Execute a fdc command */ -void fd800_legacy_device::do_cmd(void) +void fd800_legacy_device::do_cmd() { /* int unit; @@ -869,7 +870,7 @@ LEGACY_FLOPPY_OPTIONS_START(fd800) LEGACY_FLOPPY_OPTIONS_END #endif -void fd800_legacy_device::device_start(void) +void fd800_legacy_device::device_start() { logerror("fd800: start\n"); m_int_line.resolve(); @@ -883,7 +884,7 @@ void fd800_legacy_device::device_start(void) } } -void fd800_legacy_device::device_reset(void) +void fd800_legacy_device::device_reset() { logerror("fd800: reset\n"); m_stat_reg = 0; diff --git a/src/devices/bus/ti99x/990_dk.h b/src/devices/bus/ti99x/990_dk.h index e7cbed7b985..97c00ef21d5 100644 --- a/src/devices/bus/ti99x/990_dk.h +++ b/src/devices/bus/ti99x/990_dk.h @@ -4,12 +4,12 @@ 990_dk.h: include file for 990_dk.c */ -#ifndef __990_DK__ -#define __990_DK__ +#ifndef MAME_BUS_TI99X_990_DK_H +#define MAME_BUS_TI99X_990_DK_H -extern const device_type FD800; +#pragma once -#define MAX_FLOPPIES 4 +DECLARE_DEVICE_TYPE(TI99X_FD800, fd800_legacy_device) class fd800_legacy_device : public device_t { @@ -18,23 +18,30 @@ public: DECLARE_READ8_MEMBER( cru_r ); DECLARE_WRITE8_MEMBER( cru_w ); - template static devcb_base &static_set_int_callback(device_t &device, _Object object) + template static devcb_base &static_set_int_callback(device_t &device, Object &&cb) { - return downcast(device).m_int_line.set_callback(object); + return downcast(device).m_int_line.set_callback(std::forward(cb)); } private: - void device_start(void) override; - void device_reset(void) override; + enum buf_mode_t + { + bm_off, bm_read, bm_write + }; + + static constexpr unsigned MAX_FLOPPIES = 4; + + void device_start() override; + void device_reset() override; void set_interrupt_line(); int read_id(int unit, int head, int *cylinder_id, int *sector_id); int find_sector(int unit, int head, int sector, int *data_id); int do_seek(int unit, int cylinder, int head); int do_restore(int unit); - void do_read(void); - void do_write(void); - void do_cmd(void); + void do_read(); + void do_write(); + void do_cmd(); uint16_t m_recv_buf; uint16_t m_stat_reg; @@ -44,10 +51,6 @@ private: int m_interrupt_f_f; devcb_write_line m_int_line; - enum buf_mode_t { - bm_off, bm_read, bm_write - }; - uint8_t m_buf[128]; int m_buf_pos; buf_mode_t m_buf_mode; @@ -71,4 +74,4 @@ private: #define MCFG_FD800_INT_HANDLER( _intcallb ) \ devcb = &fd800_legacy_device::static_set_int_callback( *device, DEVCB_##_intcallb ); -#endif +#endif // MAME_BUS_TI99X_990_DK_H diff --git a/src/devices/bus/ti99x/990_hd.cpp b/src/devices/bus/ti99x/990_hd.cpp index 46695114294..0aa23f3589e 100644 --- a/src/devices/bus/ti99x/990_hd.cpp +++ b/src/devices/bus/ti99x/990_hd.cpp @@ -280,7 +280,7 @@ int ti990_hdc_device::is_unit_loaded(int unit) Parse the disk select lines, and return the corresponding tape unit. (-1 if none) */ -int ti990_hdc_device::cur_disk_unit(void) +int ti990_hdc_device::cur_disk_unit() { int reply; @@ -974,11 +974,10 @@ static MACHINE_CONFIG_FRAGMENT( ti990_hdc ) MCFG_HARDDISK_UNLOAD(ti990_hdc_device, ti990_hd) MACHINE_CONFIG_END -const device_type TI990_HDC = device_creator; +DEFINE_DEVICE_TYPE(TI990_HDC, ti990_hdc_device, "ti990_hdc", "Generic TI-990 Hard Disk Controller") ti990_hdc_device::ti990_hdc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, TI990_HDC, "Generic TI-990 Hard Disk Controller", tag, owner, clock, "hdc_990", __FILE__), - m_interrupt_callback(*this) + : device_t(mconfig, TI990_HDC, tag, owner, clock), m_interrupt_callback(*this) { } diff --git a/src/devices/bus/ti99x/990_hd.h b/src/devices/bus/ti99x/990_hd.h index dacf4a855f7..0f04703d701 100644 --- a/src/devices/bus/ti99x/990_hd.h +++ b/src/devices/bus/ti99x/990_hd.h @@ -3,21 +3,19 @@ /* 990_hd.h: include file for 990_hd.c */ -#ifndef __990_HD_H_ -#define __990_HD_H_ +#ifndef MAME_BUS_TI99X_990_HD_H +#define MAME_BUS_TI99X_990_HD_H -#include "imagedev/harddriv.h" +#pragma once -/* max disk units per controller: 4 is the protocol limit, but it may be -overridden if more than one controller is used */ -#define MAX_DISK_UNIT 4 +#include "imagedev/harddriv.h" class ti990_hdc_device : public device_t { public: ti990_hdc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &static_set_int_callback(device_t &device, _Object object) { return downcast(device).m_interrupt_callback.set_callback(object); } + template static devcb_base &static_set_int_callback(device_t &device, Object &&cb) { return downcast(device).m_interrupt_callback.set_callback(std::forward(cb)); } DECLARE_READ16_MEMBER(read); DECLARE_WRITE16_MEMBER(write); @@ -32,7 +30,7 @@ protected: int get_id_from_device( device_t *device ); inline int is_unit_loaded(int unit); - int cur_disk_unit(void); + int cur_disk_unit(); void update_interrupt(); int check_sector_address(int unit, unsigned int cylinder, unsigned int head, unsigned int sector); int sector_to_lba(int unit, unsigned int cylinder, unsigned int head, unsigned int sector, unsigned int *lba); @@ -45,7 +43,11 @@ protected: void unformatted_read(); void restore(); void execute_command(); + private: + // max disk units per controller: 4 is the protocol limit, but it may be overridden if more than one controller is used + static constexpr unsigned MAX_DISK_UNIT = 4; + enum format_t { format_mame, @@ -75,6 +77,6 @@ private: #define MCFG_TI990_HDC_INT_CALLBACK( _write ) \ devcb = &ti990_hdc_device::static_set_int_callback( *device, DEVCB_##_write ); -extern const device_type TI990_HDC; +DECLARE_DEVICE_TYPE(TI990_HDC, ti990_hdc_device) -#endif +#endif // MAME_BUS_TI99X_990_HD_H diff --git a/src/devices/bus/ti99x/990_tap.cpp b/src/devices/bus/ti99x/990_tap.cpp index 590d40545ac..2a6f0ba75d0 100644 --- a/src/devices/bus/ti99x/990_tap.cpp +++ b/src/devices/bus/ti99x/990_tap.cpp @@ -913,11 +913,10 @@ private: int tape_get_id(); }; -const device_type TI990_TAPE = device_creator; +DEFINE_DEVICE_TYPE(TI990_TAPE, ti990_tape_image_device, "ti990_tape_image", "TI-990 Magnetic Tape") ti990_tape_image_device::ti990_tape_image_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, TI990_TAPE, "TI-990 Magnetic Tape", tag, owner, clock, "ti990_tape_image", __FILE__), - device_image_interface(mconfig, *this) + : device_t(mconfig, TI990_TAPE, tag, owner, clock), device_image_interface(mconfig, *this) { } @@ -968,11 +967,10 @@ static MACHINE_CONFIG_FRAGMENT( tap_990 ) MCFG_TI990_TAPE_ADD("tape3") MACHINE_CONFIG_END -const device_type TI990_TAPE_CTRL = device_creator; +DEFINE_DEVICE_TYPE(TI990_TAPE_CTRL, tap_990_device, "ti990_tap", "Generic TI-900 Tape Controller") tap_990_device::tap_990_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, TI990_TAPE_CTRL, "Generic TI-990 Tape Controller", tag, owner, clock, "tap_990", __FILE__), - m_int_line(*this) + : device_t(mconfig, TI990_TAPE_CTRL, tag, owner, clock), m_int_line(*this) { } @@ -999,5 +997,5 @@ void tap_990_device::device_start() machine_config_constructor tap_990_device::device_mconfig_additions() const { - return MACHINE_CONFIG_NAME( tap_990 ); + return MACHINE_CONFIG_NAME( tap_990 ); } diff --git a/src/devices/bus/ti99x/990_tap.h b/src/devices/bus/ti99x/990_tap.h index 887cfd4bab6..9b256156ca2 100644 --- a/src/devices/bus/ti99x/990_tap.h +++ b/src/devices/bus/ti99x/990_tap.h @@ -3,25 +3,20 @@ /* 990_tap.h: include file for 990_tap.c */ +#ifndef MAME_BUS_TI99X_990_TAP_H +#define MAME_BUS_TI99X_990_TAP_H -extern const device_type TI990_TAPE_CTRL; -#define MAX_TAPE_UNIT 4 +#pragma once -struct tape_unit_t -{ - device_image_interface *img; // image descriptor - bool bot; // true if we are at the beginning of tape - bool eot; // true if we are at the end of tape - bool wp; // true if tape is write-protected -}; +DECLARE_DEVICE_TYPE(TI990_TAPE_CTRL, tap_990_device) class tap_990_device : public device_t { public: tap_990_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &static_set_int_callback(device_t &device, _Object object) + template static devcb_base &static_set_int_callback(device_t &device, Object &&cb) { - return downcast(device).m_int_line.set_callback(object); + return downcast(device).m_int_line.set_callback(std::forward(cb)); } DECLARE_READ16_MEMBER( read ); @@ -41,6 +36,16 @@ protected: virtual machine_config_constructor device_mconfig_additions() const override; private: + static constexpr unsigned MAX_TAPE_UNIT = 4; + + struct tape_unit_t + { + device_image_interface *img; // image descriptor + bool bot; // true if we are at the beginning of tape + bool eot; // true if we are at the end of tape + bool wp; // true if tape is write-protected + }; + int cur_tape_unit(); void update_interrupt(); void cmd_read_binary_forward(); @@ -60,3 +65,5 @@ private: #define MCFG_TI990_TAPE_INT_HANDLER( _intcallb ) \ devcb = &tap_990_device::static_set_int_callback( *device, DEVCB_##_intcallb ); + +#endif // MAME_BUS_TI99X_990_TAP_H diff --git a/src/devices/bus/ti99x/998board.cpp b/src/devices/bus/ti99x/998board.cpp index 34f9d564ddd..cc03e115112 100644 --- a/src/devices/bus/ti99x/998board.cpp +++ b/src/devices/bus/ti99x/998board.cpp @@ -122,8 +122,17 @@ #define TRACE_GROM 0 #define TRACE_PUNMAP 0 +enum +{ + SGMSEL = 1, + TSGSEL = 2, + P8GSEL = 4, + P3GSEL = 8, + VIDSEL = 16 +}; + mainboard8_device::mainboard8_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MAINBOARD8, "TI-99/8 Mainboard", tag, owner, clock, "ti998_mainboard", __FILE__), + : device_t(mconfig, TI99_MAINBOARD8, tag, owner, clock), m_A14_set(false), m_pending_write(false), m_speech_ready(true), @@ -994,17 +1003,18 @@ void mainboard8_device::device_reset() } MACHINE_CONFIG_FRAGMENT( ti998_mainboard ) - MCFG_DEVICE_ADD(VAQUERRO_TAG, VAQUERRO, 0) - MCFG_DEVICE_ADD(MOFETTA_TAG, MOFETTA, 0) - MCFG_DEVICE_ADD(AMIGO_TAG, AMIGO, 0) - MCFG_DEVICE_ADD(OSO_TAG, OSO, 0) + MCFG_DEVICE_ADD(VAQUERRO_TAG, TI99_VAQUERRO, 0) + MCFG_DEVICE_ADD(MOFETTA_TAG, TI99_MOFETTA, 0) + MCFG_DEVICE_ADD(AMIGO_TAG, TI99_AMIGO, 0) + MCFG_DEVICE_ADD(OSO_TAG, TI99_OSO, 0) MACHINE_CONFIG_END machine_config_constructor mainboard8_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( ti998_mainboard ); } -const device_type MAINBOARD8 = device_creator; + +DEFINE_DEVICE_TYPE(TI99_MAINBOARD8, mainboard8_device, "ti998_mainboard", "TI-99/8 Mainboard") /*************************************************************************** @@ -1084,7 +1094,7 @@ const device_type MAINBOARD8 = device_creator; ***************************************************************************/ vaquerro_device::vaquerro_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) -: device_t(mconfig, VAQUERRO, "Logical Address Space Decoder", tag, owner, clock, "ti998_vaquerro", __FILE__), + : device_t(mconfig, TI99_VAQUERRO, tag, owner, clock), m_crus(ASSERT_LINE), m_crugl(ASSERT_LINE), m_ggrdy(ASSERT_LINE) @@ -1408,12 +1418,12 @@ void vaquerro_device::device_reset() asserted, while the READY line remains Low. 7. Continue at 3. */ -void waitstate_generator::select_in(bool addressed) +void vaquerro_device::waitstate_generator::select_in(bool addressed) { m_addressed = addressed; } -int waitstate_generator::select_out() +int vaquerro_device::waitstate_generator::select_out() { return (!m_counting && m_addressed)? m_selvalue : 0; } @@ -1421,22 +1431,22 @@ int waitstate_generator::select_out() /* Should be low by default. */ -line_state waitstate_generator::ready_out() +line_state vaquerro_device::waitstate_generator::ready_out() { return (m_ready && !m_counting && m_generate)? ASSERT_LINE : CLEAR_LINE; } -bool waitstate_generator::is_counting() +bool vaquerro_device::waitstate_generator::is_counting() { return m_counting; } -bool waitstate_generator::is_generating() +bool vaquerro_device::waitstate_generator::is_generating() { return m_generate; } -bool waitstate_generator::is_ready() +bool vaquerro_device::waitstate_generator::is_ready() { return m_ready; } @@ -1444,12 +1454,12 @@ bool waitstate_generator::is_ready() /* READY in. This may only show an effect with the next trailing edge of CLKOUT. */ -void grom_waitstate_generator::ready_in(line_state ready) +void vaquerro_device::grom_waitstate_generator::ready_in(line_state ready) { m_ready = (ready==ASSERT_LINE); } -void grom_waitstate_generator::clock_in(line_state clkout) +void vaquerro_device::grom_waitstate_generator::clock_in(line_state clkout) { if (clkout == ASSERT_LINE) { @@ -1470,7 +1480,7 @@ void grom_waitstate_generator::clock_in(line_state clkout) } } -void waitstate_generator::treset_in(line_state reset) +void vaquerro_device::waitstate_generator::treset_in(line_state reset) { if (reset==ASSERT_LINE) { @@ -1479,7 +1489,7 @@ void waitstate_generator::treset_in(line_state reset) } } -void video_waitstate_generator::clock_in(line_state clkout) +void vaquerro_device::video_waitstate_generator::clock_in(line_state clkout) { if (clkout == ASSERT_LINE) { @@ -1500,7 +1510,7 @@ void video_waitstate_generator::clock_in(line_state clkout) } } -const device_type VAQUERRO = device_creator; +DEFINE_DEVICE_TYPE(TI99_VAQUERRO, vaquerro_device, "ti998_vaquerro", "TI-99/8 Logical Address Space Decoder") /*************************************************************************** ===== MOFETTA: Physical Address Space decoder ===== @@ -1538,7 +1548,7 @@ enum }; mofetta_device::mofetta_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MOFETTA, "Physical Address Space Decoder", tag, owner, clock, "ti998_mofetta", __FILE__), + : device_t(mconfig, TI99_MOFETTA, tag, owner, clock), m_gotfirstword(false) { } @@ -1761,7 +1771,7 @@ void mofetta_device::device_reset() } -const device_type MOFETTA = device_creator; +DEFINE_DEVICE_TYPE(TI99_MOFETTA, mofetta_device, "ti998_mofetta", "TI-99/8 Physical Address Space Decoder") /*************************************************************************** @@ -1837,7 +1847,7 @@ const device_type MOFETTA = device_creator; ***************************************************************************/ amigo_device::amigo_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) -: device_t(mconfig, AMIGO, "Address space mapper", tag, owner, clock, "ti998_amigo", __FILE__), + : device_t(mconfig, TI99_AMIGO, tag, owner, clock), m_logical_space(true), m_crus(ASSERT_LINE) { @@ -2156,7 +2166,7 @@ void amigo_device::device_reset() m_logical_space = true; } -const device_type AMIGO = device_creator; +DEFINE_DEVICE_TYPE(TI99_AMIGO, amigo_device, "ti998_amigo", "TI-99/8 Address space mapper") /*************************************************************************** @@ -2226,7 +2236,7 @@ enum }; oso_device::oso_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) -: device_t(mconfig, OSO, "Hexbus interface", tag, owner, clock, "oso", __FILE__), m_data(0), m_status(0), m_control(0), m_xmit(0) + : device_t(mconfig, TI99_OSO, tag, owner, clock), m_data(0), m_status(0), m_control(0), m_xmit(0) { } @@ -2295,4 +2305,4 @@ void oso_device::device_start() save_item(NAME(m_xmit)); } -const device_type OSO = device_creator; +DEFINE_DEVICE_TYPE(TI99_OSO, oso_device, "ti998_oso", "TI-99/8 Hexbus interface") diff --git a/src/devices/bus/ti99x/998board.h b/src/devices/bus/ti99x/998board.h index 32bff2f42db..250e8c061f4 100644 --- a/src/devices/bus/ti99x/998board.h +++ b/src/devices/bus/ti99x/998board.h @@ -13,97 +13,33 @@ *****************************************************************************/ -#ifndef __MAPPER8__ -#define __MAPPER8__ +#ifndef MAME_BUS_TI99X_998BOARD_H +#define MAME_BUS_TI99X_998BOARD_H + +#pragma once #include "ti99defs.h" +#include "gromport.h" + +#include "bus/ti99/peb/peribox.h" +#include "machine/ram.h" #include "machine/tmc0430.h" -#include "video/tms9928a.h" #include "sound/sn76496.h" #include "sound/tms5220.h" -#include "gromport.h" -#include "bus/ti99_peb/peribox.h" -#include "machine/ram.h" +#include "video/tms9928a.h" -extern const device_type MAINBOARD8; +DECLARE_DEVICE_TYPE(TI99_MAINBOARD8, mainboard8_device) #define VAQUERRO_TAG "vaquerro" #define MOFETTA_TAG "mofetta" #define AMIGO_TAG "amigo" #define OSO_TAG "oso" -class mainboard8_device; -extern const device_type VAQUERRO; -extern const device_type MOFETTA; -extern const device_type AMIGO; -extern const device_type OSO; - - -enum -{ - SGMSEL = 1, - TSGSEL = 2, - P8GSEL = 4, - P3GSEL = 8, - VIDSEL = 16 -}; - -/* - Wait state generator (part of Vaquerro) -*/ -class waitstate_generator -{ -public: - waitstate_generator() : - m_counting(false), - m_generate(false), - m_counter(0), - m_addressed(true), - m_ready(true) { }; - - virtual ~waitstate_generator() { } - void select_in(bool addressed); - virtual void ready_in(line_state ready) =0; - virtual void clock_in(line_state clkout) =0; - void treset_in(line_state reset); - - int select_out(); - void init(int select_value) { m_selvalue = select_value; } +DECLARE_DEVICE_TYPE(TI99_VAQUERRO, vaquerro_device) +DECLARE_DEVICE_TYPE(TI99_MOFETTA, mofetta_device) +DECLARE_DEVICE_TYPE(TI99_AMIGO, amigo_device) +DECLARE_DEVICE_TYPE(TI99_OSO, oso_device) - line_state ready_out(); - - bool is_counting(); - bool is_generating(); - bool is_ready(); - -protected: - // Two flipflops - bool m_counting; - bool m_generate; - // Counter - int m_counter; - - // Select value (indicates selected line) - int m_selvalue; - - // Line state flags - bool m_addressed; - bool m_ready; -}; - -class grom_waitstate_generator : public waitstate_generator -{ -public: - void ready_in(line_state ready) override; - void clock_in(line_state clkout) override; -}; - -class video_waitstate_generator : public waitstate_generator -{ -public: - void ready_in(line_state ready) override { }; - void clock_in(line_state clkout) override; -}; /* Custom chip: Vaquerro @@ -146,6 +82,65 @@ public: DECLARE_WRITE_LINE_MEMBER( p3gry ); private: + /* + Wait state generator (part of Vaquerro) + */ + class waitstate_generator + { + public: + waitstate_generator() : + m_counting(false), + m_generate(false), + m_counter(0), + m_addressed(true), + m_ready(true) + { + } + + virtual ~waitstate_generator() { } + void select_in(bool addressed); + virtual void ready_in(line_state ready) = 0; + virtual void clock_in(line_state clkout) = 0; + void treset_in(line_state reset); + + int select_out(); + void init(int select_value) { m_selvalue = select_value; } + + line_state ready_out(); + + bool is_counting(); + bool is_generating(); + bool is_ready(); + + protected: + // Two flipflops + bool m_counting; + bool m_generate; + // Counter + int m_counter; + + // Select value (indicates selected line) + int m_selvalue; + + // Line state flags + bool m_addressed; + bool m_ready; + }; + + class grom_waitstate_generator : public waitstate_generator + { + public: + void ready_in(line_state ready) override; + void clock_in(line_state clkout) override; + }; + + class video_waitstate_generator : public waitstate_generator + { + public: + void ready_in(line_state ready) override { } + void clock_in(line_state clkout) override; + }; + // Memory cycle state bool m_memen; @@ -455,8 +450,8 @@ public: // void set_gromport(gromport_device* dev) { m_gromport = dev; } protected: - void device_start(void) override; - void device_reset(void) override; + void device_start() override; + void device_reset() override; machine_config_constructor device_mconfig_additions() const override; private: @@ -518,7 +513,7 @@ private: required_device m_video; required_device m_sound; required_device m_speech; - required_device m_gromport; + required_device m_gromport; required_device m_peb; required_device m_sram; required_device m_dram; diff --git a/src/devices/bus/ti99x/busmouse.cpp b/src/devices/bus/ti99x/busmouse.cpp deleted file mode 100644 index 87c92018889..00000000000 --- a/src/devices/bus/ti99x/busmouse.cpp +++ /dev/null @@ -1,69 +0,0 @@ -// license:LGPL-2.1+ -// copyright-holders:Michael Zapf -/**************************************************************************** - - Mouse for use with the v9938 color bus - - Used with the Geneve 9640 and 80 column cards (like the EVPC) - for the TI-99/4A - - Michael Zapf, 2017-03-18 - -*****************************************************************************/ - -#include "emu.h" -#include "busmouse.h" - -busmouse_device::busmouse_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : colorbus_attached_device(mconfig, BUSMOUSE, "Bus Mouse", tag, owner, clock, "busmouse", __FILE__) -{ -} - -void busmouse_device::poll(int& delta_x, int& delta_y, int& buttons) -{ - int new_mx, new_my; - - buttons = ioport("MOUSEBUT")->read(); - new_mx = ioport("MOUSEX")->read(); - new_my = ioport("MOUSEY")->read(); - - /* compute x delta */ - delta_x = new_mx - m_last_mx; - m_last_mx = new_mx; - - /* compute y delta */ - delta_y = new_my - m_last_my; - m_last_my = new_my; -} - -void busmouse_device::device_start(void) -{ - save_item(NAME(m_last_mx)); - save_item(NAME(m_last_my)); -} - -void busmouse_device::device_reset(void) -{ - m_last_mx = 0; - m_last_my = 0; -} - -INPUT_PORTS_START( busmouse ) - PORT_START("MOUSEX") /* Mouse - X AXIS */ - PORT_BIT( 0xffff, 0x00, IPT_MOUSE_X) PORT_SENSITIVITY(50) PORT_KEYDELTA(0) PORT_PLAYER(1) - - PORT_START("MOUSEY") /* Mouse - Y AXIS */ - PORT_BIT( 0xffff, 0x00, IPT_MOUSE_Y) PORT_SENSITIVITY(50) PORT_KEYDELTA(0) PORT_PLAYER(1) - - PORT_START("MOUSEBUT") /* mouse buttons */ - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_NAME("Left mouse button") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_NAME("Right mouse button") - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON3) PORT_NAME("Middle mouse button") -INPUT_PORTS_END - -ioport_constructor busmouse_device::device_input_ports() const -{ - return INPUT_PORTS_NAME( busmouse ); -} - -const device_type BUSMOUSE = device_creator; diff --git a/src/devices/bus/ti99x/busmouse.h b/src/devices/bus/ti99x/busmouse.h deleted file mode 100644 index 6da82101dd4..00000000000 --- a/src/devices/bus/ti99x/busmouse.h +++ /dev/null @@ -1,35 +0,0 @@ -// license:LGPL-2.1+ -// copyright-holders:Michael Zapf -/**************************************************************************** - - Mouse for use with the v9938 color bus - - Used with the Geneve 9640 and 80 column cards (like the EVPC) - - Michael Zapf, 2017-03-18 - -*****************************************************************************/ - -#ifndef __BUSMOUSE__ -#define __BUSMOUSE__ - -#include "colorbus.h" - -extern const device_type BUSMOUSE; - -class busmouse_device : public colorbus_attached_device -{ -public: - busmouse_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - void poll(int& delta_x, int& delta_y, int& buttons) override; - -protected: - virtual void device_start(void) override; - virtual void device_reset(void) override; - virtual ioport_constructor device_input_ports() const override; - -private: - int m_last_mx; - int m_last_my; -}; -#endif diff --git a/src/devices/bus/ti99x/colorbus.cpp b/src/devices/bus/ti99x/colorbus.cpp deleted file mode 100644 index ee75d5befa5..00000000000 --- a/src/devices/bus/ti99x/colorbus.cpp +++ /dev/null @@ -1,65 +0,0 @@ -// license:LGPL-2.1+ -// copyright-holders:Michael Zapf -/**************************************************************************** - - v9938 Color bus - - The color bus runs from the v9938 video processor to some external device - like a mouse or a lightpen. - - The Geneve mouse offers three buttons, of which the leftmost one is not - connected to the v9938; the color bus implementation on the Geneve board - offers a separate line going to the 9901. - - Michael Zapf - - March 2017 - -*****************************************************************************/ - -#include "emu.h" -#include "colorbus.h" -#include "busmouse.h" -#include "ti99defs.h" - -colorbus_device::colorbus_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, COLORBUS, "Color bus", tag, owner, clock, "colorbus", __FILE__), - device_slot_interface(mconfig, *this), - m_connected(nullptr), - m_v9938(*owner, VDP_TAG), - m_left_button_pressed(false) -{ -} - -void colorbus_device::poll() -{ - int delta_x, delta_y, buttons; - - // only middle and right button go to V9938 - m_connected->poll(delta_x, delta_y, buttons); - m_v9938->update_mouse_state(delta_x, delta_y, buttons & 0x03); - m_left_button_pressed = (buttons & 0x04)!=0; -} - -line_state colorbus_device::left_button() -{ - return m_left_button_pressed? ASSERT_LINE : CLEAR_LINE; -} - -void colorbus_device::device_config_complete() -{ - m_connected = static_cast(subdevices().first()); -} - -/*****************************************************************************/ - -void colorbus_attached_device::device_config_complete() -{ - m_colorbus = static_cast(owner()); -} - -SLOT_INTERFACE_START( colorbus_port ) - SLOT_INTERFACE("busmouse", BUSMOUSE) -SLOT_INTERFACE_END - -const device_type COLORBUS = device_creator; diff --git a/src/devices/bus/ti99x/colorbus.h b/src/devices/bus/ti99x/colorbus.h deleted file mode 100644 index f56defb36a2..00000000000 --- a/src/devices/bus/ti99x/colorbus.h +++ /dev/null @@ -1,64 +0,0 @@ -// license:LGPL-2.1+ -// copyright-holders:Michael Zapf -/**************************************************************************** - - v9938 color bus - - Used with the Geneve 9640 and 80 column cards (like the EVPC) - for the TI-99/4A - - Michael Zapf, 2017-03-18 - -*****************************************************************************/ - -#ifndef __COLORBUS__ -#define __COLORBUS__ - -#include "video/v9938.h" - -extern const device_type COLORBUS; -class colorbus_device; - -/******************************************************************** - Common parent class of all devices attached to the color bus -********************************************************************/ -class colorbus_attached_device : public device_t -{ -public: - colorbus_attached_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), m_colorbus(nullptr) { }; - - virtual void poll(int& delta_x, int& delta_y, int& buttons) =0; - -protected: - virtual void device_config_complete() override; - colorbus_device* m_colorbus; -}; - -/******************************************************************** - Color bus port -********************************************************************/ -class colorbus_device : public device_t, public device_slot_interface -{ -public: - colorbus_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - line_state left_button(); // left button is not connected to the V9938 but to a TMS9901 pin - void poll(); - -protected: - void device_start() override { }; - void device_config_complete() override; - -private: - colorbus_attached_device* m_connected; - required_device m_v9938; - bool m_left_button_pressed; -}; - -SLOT_INTERFACE_EXTERN(colorbus_port); - -#define MCFG_COLORBUS_MOUSE_ADD( _tag ) \ - MCFG_DEVICE_ADD(_tag, COLORBUS, 0) \ - MCFG_DEVICE_SLOT_INTERFACE(colorbus_port, "busmouse", false) - -#endif diff --git a/src/devices/bus/ti99x/datamux.cpp b/src/devices/bus/ti99x/datamux.cpp index ba1d96e4417..2ccf7055410 100644 --- a/src/devices/bus/ti99x/datamux.cpp +++ b/src/devices/bus/ti99x/datamux.cpp @@ -75,7 +75,7 @@ Constructor */ ti99_datamux_device::ti99_datamux_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, DATAMUX, "Databus multiplexer", tag, owner, clock, "ti99_datamux", __FILE__), + : device_t(mconfig, TI99_DATAMUX, tag, owner, clock), m_video(*owner, VDP_TAG), m_sound(*owner, TISOUNDCHIP_TAG), m_peb(*owner, PERIBOX_TAG), @@ -94,7 +94,8 @@ ti99_datamux_device::ti99_datamux_device(const machine_config &mconfig, const ch m_base32k(0), m_console_groms_present(false), m_grom_idle(true) - { } +{ +} #define TRACE_READY 0 #define TRACE_ACCESS 0 @@ -636,4 +637,4 @@ ioport_constructor ti99_datamux_device::device_input_ports() const return INPUT_PORTS_NAME(datamux); } -const device_type DATAMUX = device_creator; +DEFINE_DEVICE_TYPE(TI99_DATAMUX, ti99_datamux_device, "ti99_datamux", "TI-99 Databus multiplexer") diff --git a/src/devices/bus/ti99x/datamux.h b/src/devices/bus/ti99x/datamux.h index 828abebe667..ee0042d7ca9 100644 --- a/src/devices/bus/ti99x/datamux.h +++ b/src/devices/bus/ti99x/datamux.h @@ -11,18 +11,20 @@ *****************************************************************************/ -#ifndef __DMUX__ -#define __DMUX__ +#ifndef MAME_BUS_TI99X_DATAMUX_H +#define MAME_BUS_TI99X_DATAMUX_H + +#pragma once #include "ti99defs.h" #include "machine/tmc0430.h" #include "gromport.h" -#include "bus/ti99_peb/peribox.h" +#include "bus/ti99/peb/peribox.h" #include "sound/sn76496.h" #include "video/tms9928a.h" #include "machine/ram.h" -extern const device_type DATAMUX; +DECLARE_DEVICE_TYPE(TI99_DATAMUX, ti99_datamux_device) /* Main class @@ -41,9 +43,9 @@ public: DECLARE_WRITE_LINE_MEMBER( gromclk_in ); - template static devcb_base &static_set_ready_callback(device_t &device, _Object object) + template static devcb_base &static_set_ready_callback(device_t &device, Object &&cb) { - return downcast(device).m_ready.set_callback(object); + return downcast(device).m_ready.set_callback(std::forward(cb)); } protected: @@ -65,7 +67,7 @@ private: required_device m_peb; // Link to the cartridge port (aka GROM port) - required_device m_gromport; + required_device m_gromport; // Memory expansion (internal, 16 bit) required_device m_ram16b; @@ -137,4 +139,4 @@ private: #define MCFG_DMUX_READY_HANDLER( _intcallb ) \ devcb = &ti99_datamux_device::static_set_ready_callback( *device, DEVCB_##_intcallb ); -#endif +#endif // MAME_BUS_TI99X_DATAMUX_H diff --git a/src/devices/bus/ti99x/genboard.cpp b/src/devices/bus/ti99x/genboard.cpp index 22c0ea685db..1eb494005c8 100644 --- a/src/devices/bus/ti99x/genboard.cpp +++ b/src/devices/bus/ti99x/genboard.cpp @@ -210,7 +210,7 @@ #define DRAM_PAR_TAG ":dram" geneve_mapper_device::geneve_mapper_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) -: device_t(mconfig, GENEVE_MAPPER, "Geneve Gate Array", tag, owner, clock, "geneve_mapper", __FILE__), m_gromwaddr_LSB(false), + : device_t(mconfig, GENEVE_MAPPER, tag, owner, clock), m_gromwaddr_LSB(false), m_gromraddr_LSB(false), m_grom_address(0), m_video_waitstates(false), @@ -1507,14 +1507,12 @@ void geneve_mapper_device::device_reset() } } -const device_type GENEVE_MAPPER = device_creator; +DEFINE_DEVICE_TYPE(GENEVE_MAPPER, geneve_mapper_device, "geneve_mapper", "Geneve Gate Array") /**************************************************************************** Keyboard support ****************************************************************************/ -static const char *const KEYNAMES[] = { "KEY0", "KEY1", "KEY2", "KEY3", "KEY4", "KEY5", "KEY6", "KEY7" }; - static const uint8_t MF1_CODE[0xe] = { /* extended keys that are equivalent to non-extended keys */ @@ -1544,8 +1542,10 @@ static const uint8_t MF1_CODE[0xe] = }; geneve_keyboard_device::geneve_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) -: device_t(mconfig, GENEVE_KEYBOARD, "Geneve XT-style keyboard", tag, owner, clock, "geneve_keyboard", __FILE__), - m_interrupt(*this), m_key_reset(false), m_key_queue_length(0), m_key_queue_head(0), m_key_in_buffer(false), m_key_numlock_state(false), m_key_ctrl_state(0), m_key_alt_state(0), + : device_t(mconfig, GENEVE_KEYBOARD, tag, owner, clock), + m_interrupt(*this), + m_keys(*this, "KEY%u", 0), + m_key_reset(false), m_key_queue_length(0), m_key_queue_head(0), m_key_in_buffer(false), m_key_numlock_state(false), m_key_ctrl_state(0), m_key_alt_state(0), m_key_real_shift_state(0), m_key_fake_shift_state(false), m_key_fake_unshift_state(false), m_key_autorepeat_key(0), m_key_autorepeat_timer(0), m_keep_keybuf(false), m_keyboard_clock(false), m_timer(nullptr) { @@ -1577,7 +1577,7 @@ void geneve_keyboard_device::poll() /* Poll keyboard */ for (i = 0; (i < 4) && (m_key_queue_length <= (KEYQUEUESIZE-MAXKEYMSGLENGTH)); i++) { - keystate = ioport(KEYNAMES[2*i])->read() | (ioport(KEYNAMES[2*i + 1])->read() << 16); + keystate = m_keys[2*i]->read() | (m_keys[2*i + 1]->read() << 16); key_transitions = keystate ^ m_key_state_save[i]; if (key_transitions) { @@ -2008,4 +2008,4 @@ ioport_constructor geneve_keyboard_device::device_input_ports() const return INPUT_PORTS_NAME( genkeys ); } -const device_type GENEVE_KEYBOARD = device_creator; +DEFINE_DEVICE_TYPE(GENEVE_KEYBOARD, geneve_keyboard_device, "geneve_keyboard", "Geneve XT-style keyboard") diff --git a/src/devices/bus/ti99x/genboard.h b/src/devices/bus/ti99x/genboard.h index 55369c634a1..d175a3d2c93 100644 --- a/src/devices/bus/ti99x/genboard.h +++ b/src/devices/bus/ti99x/genboard.h @@ -10,28 +10,25 @@ February 2012: Rewritten as class *****************************************************************************/ -#ifndef __GENBOARD__ -#define __GENBOARD__ +#ifndef MAME_BUS_TI99X_GENBOARD_H +#define MAME_BUS_TI99X_GENBOARD_H + +#pragma once #include "ti99defs.h" #include "machine/mm58274c.h" #include "video/v9938.h" #include "cpu/tms9900/tms9995.h" #include "machine/at29x.h" -#include "bus/ti99_peb/peribox.h" +#include "bus/ti99/peb/peribox.h" #include "sound/sn76496.h" #include "machine/ram.h" -extern const device_type GENEVE_KEYBOARD; -extern const device_type GENEVE_MAPPER; +DECLARE_DEVICE_TYPE(GENEVE_KEYBOARD, geneve_keyboard_device) +DECLARE_DEVICE_TYPE(GENEVE_MAPPER, geneve_mapper_device) /*****************************************************************************/ -#define KEYQUEUESIZE 256 -#define MAXKEYMSGLENGTH 10 -#define KEYAUTOREPEATDELAY 30 -#define KEYAUTOREPEATRATE 6 - class geneve_keyboard_device : public device_t { public: @@ -41,16 +38,23 @@ public: DECLARE_WRITE_LINE_MEMBER( clock_control ); uint8_t get_recent_key(); - template static devcb_base &static_set_int_callback(device_t &device, _Object object) { return downcast(device).m_interrupt.set_callback(object); } + template static devcb_base &static_set_int_callback(device_t &device, Object &&cb) { return downcast(device).m_interrupt.set_callback(std::forward(cb)); } protected: void device_start() override; void device_reset() override; ioport_constructor device_input_ports() const override; - devcb_write_line m_interrupt; // Keyboard interrupt to console void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + devcb_write_line m_interrupt; // Keyboard interrupt to console + required_ioport_array<8> m_keys; + private: + static constexpr unsigned KEYQUEUESIZE = 256; + static constexpr unsigned MAXKEYMSGLENGTH = 10; + static constexpr unsigned KEYAUTOREPEATDELAY = 30; + static constexpr unsigned KEYAUTOREPEATRATE = 6; + void post_in_key_queue(int keycode); void signal_when_key_available(); void poll(); @@ -109,7 +113,7 @@ public: DECLARE_WRITE_LINE_MEMBER( pfm_select_msb ); DECLARE_WRITE_LINE_MEMBER( pfm_output_enable ); - template static devcb_base &static_set_ready_callback(device_t &device, _Object object) { return downcast(device).m_ready.set_callback(object); } + template static devcb_base &static_set_ready_callback(device_t &device, Object &&cb) { return downcast(device).m_ready.set_callback(std::forward(cb)); } protected: void device_start() override; @@ -195,4 +199,4 @@ private: #define MCFG_GENEVE_READY_HANDLER( _intcallb ) \ devcb = &geneve_mapper_device::static_set_ready_callback( *device, DEVCB_##_intcallb ); -#endif +#endif // MAME_BUS_TI99X_GENBOARD_H diff --git a/src/devices/bus/ti99x/gromport.cpp b/src/devices/bus/ti99x/gromport.cpp index 849a0fc498d..e9d3e7a4523 100644 --- a/src/devices/bus/ti99x/gromport.cpp +++ b/src/devices/bus/ti99x/gromport.cpp @@ -132,8 +132,140 @@ #define GKRACKER_ROM_TAG "gkracker_rom" #define GKRACKER_NVRAM_TAG "gkracker_nvram" -gromport_device::gromport_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : bus8z_device(mconfig, GROMPORT, "Cartridge port", tag, owner, clock, "gromport", __FILE__), +namespace { + +enum rpk_open_error +{ + RPK_OK, + RPK_NOT_ZIP_FORMAT, + RPK_CORRUPT, + RPK_OUT_OF_MEMORY, + RPK_XML_ERROR, + RPK_INVALID_FILE_REF, + RPK_ZIP_ERROR, + RPK_ZIP_UNSUPPORTED, + RPK_MISSING_RAM_LENGTH, + RPK_INVALID_RAM_SPEC, + RPK_UNKNOWN_RESOURCE_TYPE, + RPK_INVALID_RESOURCE_REF, + RPK_INVALID_LAYOUT, + RPK_MISSING_LAYOUT, + RPK_NO_PCB_OR_RESOURCES, + RPK_UNKNOWN_PCB_TYPE +}; + + +const char *const error_text[16] = +{ + "No error", + "Not a RPK (zip) file", + "Module definition corrupt", + "Out of memory", + "XML format error", + "Invalid file reference", + "Zip file error", + "Unsupported zip version", + "Missing RAM length", + "Invalid RAM specification", + "Unknown resource type", + "Invalid resource reference", + "layout.xml not valid", + "Missing layout", + "No pcb or resource found", + "Unknown pcb type" +}; + + +class rpk_exception +{ +public: + rpk_exception(rpk_open_error value): m_err(value), m_detail(nullptr) { } + rpk_exception(rpk_open_error value, const char* detail) : m_err(value), m_detail(detail) { } + + const char* to_string() + { + // FIXME: this leaks memory - in some cases it returns a new buffer, in other cases it returns a pointer to a static string, so the caller can't know whether it needs to be cleaned up + if (m_detail==nullptr) return error_text[(int)m_err]; + std::string errormsg = std::string(error_text[(int)m_err]).append(": ").append(m_detail); + return core_strdup(errormsg.c_str()); + } + +private: + rpk_open_error m_err; + const char* m_detail; +}; + +struct pcb_type +{ + int id; + const char* name; +}; + +} // anonymous namespace + + +/************************************************************************* + RPK support +*************************************************************************/ + +class ti99_cartridge_device::rpk_socket +{ +public: + rpk_socket(const char *id, int length, uint8_t *contents); + rpk_socket(const char *id, int length, uint8_t *contents, const char *pathname); + ~rpk_socket() {} + + const char* id() { return m_id; } + int get_content_length() { return m_length; } + uint8_t* get_contents() { return m_contents; } + bool persistent_ram() { return m_pathname != nullptr; } + const char* get_pathname() { return m_pathname; } + void cleanup() { if (m_contents != nullptr) global_free_array(m_contents); } + +private: + const char* m_id; + uint32_t m_length; + uint8_t* m_contents; + const char* m_pathname; +}; + +class ti99_cartridge_device::rpk_reader +{ +public: + rpk_reader(const pcb_type *types) : m_types(types) { } + + rpk *open(emu_options &options, const char *filename, const char *system_name); + +private: + int find_file(util::archive_file &zip, const char *filename, uint32_t crc); + std::unique_ptr load_rom_resource(util::archive_file &zip, util::xml::data_node const* rom_resource_node, const char* socketname); + std::unique_ptr load_ram_resource(emu_options &options, util::xml::data_node const* ram_resource_node, const char* socketname, const char* system_name); + const pcb_type* m_types; +}; + +class ti99_cartridge_device::rpk +{ + friend class rpk_reader; +public: + rpk(emu_options& options, const char* sysname); + ~rpk(); + + int get_type(void) { return m_type; } + uint8_t* get_contents_of_socket(const char *socket_name); + int get_resource_length(const char *socket_name); + void close(); + +private: + emu_options& m_options; // need this to find the path to the nvram files + int m_type; + //const char* m_system_name; // need this to find the path to the nvram files + std::unordered_map> m_sockets; + + void add_socket(const char* id, std::unique_ptr newsock); +}; + +ti99_gromport_device::ti99_gromport_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : bus8z_device(mconfig, TI99_GROMPORT, tag, owner, clock), device_slot_interface(mconfig, *this), m_connector(nullptr), m_reset_on_insert(true), @@ -145,7 +277,7 @@ gromport_device::gromport_device(const machine_config &mconfig, const char *tag, Reading via the GROM port. Only 13 address lines are passed through on the TI-99/4A, and 14 lines on the TI-99/8. */ -READ8Z_MEMBER(gromport_device::readz) +READ8Z_MEMBER(ti99_gromport_device::readz) { if (m_connector != nullptr) { @@ -158,7 +290,7 @@ READ8Z_MEMBER(gromport_device::readz) Writing via the GROM port. Only 13 address lines are passed through on the TI-99/4A, and 14 lines on the TI-99/8. */ -WRITE8_MEMBER(gromport_device::write) +WRITE8_MEMBER(ti99_gromport_device::write) { if (m_connector != nullptr) { @@ -167,19 +299,19 @@ WRITE8_MEMBER(gromport_device::write) } } -READ8Z_MEMBER(gromport_device::crureadz) +READ8Z_MEMBER(ti99_gromport_device::crureadz) { if (m_connector != nullptr) m_connector->crureadz(space, offset, value); } -WRITE8_MEMBER(gromport_device::cruwrite) +WRITE8_MEMBER(ti99_gromport_device::cruwrite) { if (m_connector != nullptr) m_connector->cruwrite(space, offset, data); } -WRITE_LINE_MEMBER(gromport_device::ready_line) +WRITE_LINE_MEMBER(ti99_gromport_device::ready_line) { m_console_ready(state); } @@ -187,14 +319,14 @@ WRITE_LINE_MEMBER(gromport_device::ready_line) /* Asserted when the console addresses cartridge rom. */ -WRITE_LINE_MEMBER(gromport_device::romgq_line) +WRITE_LINE_MEMBER(ti99_gromport_device::romgq_line) { m_romgq = state; if (m_connector != nullptr) m_connector->romgq_line(state); } -WRITE_LINE_MEMBER(gromport_device::gclock_in) +WRITE_LINE_MEMBER(ti99_gromport_device::gclock_in) { if (m_connector != nullptr) m_connector->gclock_in(state); @@ -203,13 +335,13 @@ WRITE_LINE_MEMBER(gromport_device::gclock_in) /* Combined GROM control lines. */ -WRITE8_MEMBER( gromport_device::set_gromlines ) +WRITE8_MEMBER( ti99_gromport_device::set_gromlines ) { if (m_connector != nullptr) m_connector->set_gromlines(space, offset, data); } -void gromport_device::device_start() +void ti99_gromport_device::device_start() { m_console_ready.resolve(); m_console_reset.resolve(); @@ -217,7 +349,7 @@ void gromport_device::device_start() save_item(NAME(m_romgq)); } -void gromport_device::device_reset() +void ti99_gromport_device::device_reset() { m_reset_on_insert = (ioport("CARTRESET")->read()==0x01); } @@ -229,7 +361,7 @@ void gromport_device::device_reset() reset, which is useful when we want to swap the cartridges while a program is runnning. */ -void gromport_device::cartridge_inserted() +void ti99_gromport_device::cartridge_inserted() { if (m_reset_on_insert) { @@ -242,7 +374,7 @@ void gromport_device::cartridge_inserted() Find out whether the GROMs in the cartridge are idle. In that case, cut the clock line. */ -bool gromport_device::is_grom_idle() +bool ti99_gromport_device::is_grom_idle() { if (m_connector != nullptr) return m_connector->is_grom_idle(); @@ -250,20 +382,20 @@ bool gromport_device::is_grom_idle() return false; } -void gromport_device::device_config_complete() +void ti99_gromport_device::device_config_complete() { - m_connector = static_cast(subdevices().first()); + m_connector = downcast(subdevices().first()); } SLOT_INTERFACE_START( gromport4 ) - SLOT_INTERFACE("single", GROMPORT_SINGLE) - SLOT_INTERFACE("multi", GROMPORT_MULTI) - SLOT_INTERFACE("gkracker", GROMPORT_GK) + SLOT_INTERFACE("single", TI99_GROMPORT_SINGLE) + SLOT_INTERFACE("multi", TI99_GROMPORT_MULTI) + SLOT_INTERFACE("gkracker", TI99_GROMPORT_GK) SLOT_INTERFACE_END SLOT_INTERFACE_START( gromport8 ) - SLOT_INTERFACE("single", GROMPORT_SINGLE) - SLOT_INTERFACE("multi", GROMPORT_MULTI) + SLOT_INTERFACE("single", TI99_GROMPORT_SINGLE) + SLOT_INTERFACE("multi", TI99_GROMPORT_MULTI) SLOT_INTERFACE_END INPUT_PORTS_START(gromport) @@ -273,12 +405,12 @@ INPUT_PORTS_START(gromport) PORT_CONFSETTING( 0x01, DEF_STR( On ) ) INPUT_PORTS_END -ioport_constructor gromport_device::device_input_ports() const +ioport_constructor ti99_gromport_device::device_input_ports() const { return INPUT_PORTS_NAME(gromport); } -const device_type GROMPORT = device_creator; +DEFINE_DEVICE_TYPE(TI99_GROMPORT, ti99_gromport_device, "ti99_gromport", "TI-99 Cartridge port") /*************************************************************************** Different versions of cartridge connections @@ -291,12 +423,12 @@ const device_type GROMPORT = device_creator; ***************************************************************************/ -const device_type GROMPORT_SINGLE = device_creator; -const device_type GROMPORT_MULTI = device_creator; -const device_type GROMPORT_GK = device_creator; +DEFINE_DEVICE_TYPE(TI99_GROMPORT_SINGLE, ti99_single_cart_conn_device, "ti99_scartconn", "TI-99 Standard cartridge connector") +DEFINE_DEVICE_TYPE(TI99_GROMPORT_MULTI, ti99_multi_cart_conn_device, "ti99_mcartconn", "TI-99 Multi-cartridge extender") +DEFINE_DEVICE_TYPE(TI99_GROMPORT_GK, ti99_gkracker_device, "ti99_gkracker", "Miller's Graphics GRAM Kracker") -ti99_cartridge_connector_device::ti99_cartridge_connector_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : bus8z_device(mconfig, type, name, tag, owner, clock, shortname, source), +ti99_cartridge_connector_device::ti99_cartridge_connector_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : bus8z_device(mconfig, type, tag, owner, clock), m_gromport(nullptr) { } @@ -308,40 +440,40 @@ WRITE_LINE_MEMBER( ti99_cartridge_connector_device::ready_line ) void ti99_cartridge_connector_device::device_config_complete() { - m_gromport = static_cast(owner()); + m_gromport = static_cast(owner()); } -single_conn_device::single_conn_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : ti99_cartridge_connector_device(mconfig, GROMPORT_SINGLE, "Standard cartridge connector", tag, owner, clock, "single", __FILE__), +ti99_single_cart_conn_device::ti99_single_cart_conn_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : ti99_cartridge_connector_device(mconfig, TI99_GROMPORT_SINGLE, tag, owner, clock), m_cartridge(nullptr) { } -READ8Z_MEMBER(single_conn_device::readz) +READ8Z_MEMBER(ti99_single_cart_conn_device::readz) { // Pass through m_cartridge->readz(space, offset, value); } -WRITE8_MEMBER(single_conn_device::write) +WRITE8_MEMBER(ti99_single_cart_conn_device::write) { // Pass through m_cartridge->write(space, offset, data); } -READ8Z_MEMBER(single_conn_device::crureadz) +READ8Z_MEMBER(ti99_single_cart_conn_device::crureadz) { // Pass through m_cartridge->crureadz(space, offset, value); } -WRITE8_MEMBER(single_conn_device::cruwrite) +WRITE8_MEMBER(ti99_single_cart_conn_device::cruwrite) { // Pass through m_cartridge->cruwrite(space, offset, data); } -WRITE_LINE_MEMBER(single_conn_device::romgq_line) +WRITE_LINE_MEMBER(ti99_single_cart_conn_device::romgq_line) { // Pass through m_cartridge->romgq_line(state); @@ -350,14 +482,14 @@ WRITE_LINE_MEMBER(single_conn_device::romgq_line) /* Combined select lines */ -WRITE8_MEMBER(single_conn_device::set_gromlines) +WRITE8_MEMBER(ti99_single_cart_conn_device::set_gromlines) { // Pass through m_cartridge->set_gromlines(space, offset, data); } -WRITE_LINE_MEMBER(single_conn_device::gclock_in) +WRITE_LINE_MEMBER(ti99_single_cart_conn_device::gclock_in) { // Pass through m_cartridge->gclock_in(state); @@ -366,17 +498,17 @@ WRITE_LINE_MEMBER(single_conn_device::gclock_in) /* Check whether the GROMs are idle. */ -bool single_conn_device::is_grom_idle() +bool ti99_single_cart_conn_device::is_grom_idle() { return m_cartridge->is_grom_idle(); } -void single_conn_device::device_start() +void ti99_single_cart_conn_device::device_start() { m_cartridge = static_cast(subdevices().first()); } -void single_conn_device::device_reset() +void ti99_single_cart_conn_device::device_reset() { m_cartridge->set_slot(0); } @@ -385,7 +517,7 @@ static MACHINE_CONFIG_FRAGMENT( single_slot ) MCFG_DEVICE_ADD("cartridge", TI99CART, 0) MACHINE_CONFIG_END -machine_config_constructor single_conn_device::device_mconfig_additions() const +machine_config_constructor ti99_single_cart_conn_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( single_slot ); } @@ -434,8 +566,8 @@ machine_config_constructor single_conn_device::device_mconfig_additions() const #define AUTO -1 -multi_conn_device::multi_conn_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : ti99_cartridge_connector_device(mconfig, GROMPORT_MULTI, "Multi-cartridge extender", tag, owner, clock, "multi", __FILE__), +ti99_multi_cart_conn_device::ti99_multi_cart_conn_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : ti99_cartridge_connector_device(mconfig, TI99_GROMPORT_MULTI, tag, owner, clock), m_active_slot(0), m_fixed_slot(0), m_next_free_slot(0) @@ -480,7 +612,7 @@ multi_conn_device::multi_conn_device(const machine_config &mconfig, const char * Interestingly, cartridge subroutines are found nevertheless, even when the cartridge is plugged into a higher slot. */ -void multi_conn_device::set_slot(int slotnumber) +void ti99_multi_cart_conn_device::set_slot(int slotnumber) { if (TRACE_CHANGE) if (m_active_slot != slotnumber) logerror("Setting cartslot to %d\n", slotnumber); @@ -491,7 +623,7 @@ void multi_conn_device::set_slot(int slotnumber) m_active_slot = m_fixed_slot; } -int multi_conn_device::get_active_slot(bool changebase, offs_t offset) +int ti99_multi_cart_conn_device::get_active_slot(bool changebase, offs_t offset) { int slot; if (changebase) @@ -503,20 +635,20 @@ int multi_conn_device::get_active_slot(bool changebase, offs_t offset) return slot; } -void multi_conn_device::insert(int index, ti99_cartridge_device* cart) +void ti99_multi_cart_conn_device::insert(int index, ti99_cartridge_device* cart) { if (TRACE_CHANGE) logerror("Insert slot %d\n", index); m_cartridge[index] = cart; m_gromport->cartridge_inserted(); } -void multi_conn_device::remove(int index) +void ti99_multi_cart_conn_device::remove(int index) { if (TRACE_CHANGE) logerror("Remove slot %d\n", index); m_cartridge[index] = nullptr; } -WRITE_LINE_MEMBER(multi_conn_device::romgq_line) +WRITE_LINE_MEMBER(ti99_multi_cart_conn_device::romgq_line) { m_readrom = state; @@ -533,7 +665,7 @@ WRITE_LINE_MEMBER(multi_conn_device::romgq_line) /* Combined select lines */ -WRITE8_MEMBER(multi_conn_device::set_gromlines) +WRITE8_MEMBER(ti99_multi_cart_conn_device::set_gromlines) { // GROM selected? m_grom_selected = (data != 0); @@ -548,7 +680,7 @@ WRITE8_MEMBER(multi_conn_device::set_gromlines) } } -WRITE_LINE_MEMBER(multi_conn_device::gclock_in) +WRITE_LINE_MEMBER(ti99_multi_cart_conn_device::gclock_in) { // Propagate to all slots for (int i=0; i < NUMBER_OF_CARTRIDGE_SLOTS; i++) @@ -560,7 +692,7 @@ WRITE_LINE_MEMBER(multi_conn_device::gclock_in) } } -READ8Z_MEMBER(multi_conn_device::readz) +READ8Z_MEMBER(ti99_multi_cart_conn_device::readz) { int slot = get_active_slot(true, offset); @@ -591,7 +723,7 @@ READ8Z_MEMBER(multi_conn_device::readz) } } -WRITE8_MEMBER(multi_conn_device::write) +WRITE8_MEMBER(ti99_multi_cart_conn_device::write) { // Same issue as above (read) // We don't have GRAM cartridges, anyway, so it's just used for setting the address. @@ -616,7 +748,7 @@ WRITE8_MEMBER(multi_conn_device::write) } } -READ8Z_MEMBER(multi_conn_device::crureadz) +READ8Z_MEMBER(ti99_multi_cart_conn_device::crureadz) { int slot = get_active_slot(false, offset); /* Sanity check. Higher slots are always empty. */ @@ -629,7 +761,7 @@ READ8Z_MEMBER(multi_conn_device::crureadz) } } -WRITE8_MEMBER(multi_conn_device::cruwrite) +WRITE8_MEMBER(ti99_multi_cart_conn_device::cruwrite) { int slot = get_active_slot(true, offset); @@ -647,7 +779,7 @@ WRITE8_MEMBER(multi_conn_device::cruwrite) Check whether the GROMs are idle. Just ask the currently active cartridge. */ -bool multi_conn_device::is_grom_idle() +bool ti99_multi_cart_conn_device::is_grom_idle() { /* Sanity check. Higher slots are always empty. */ if (m_active_slot >= NUMBER_OF_CARTRIDGE_SLOTS) @@ -659,7 +791,7 @@ bool multi_conn_device::is_grom_idle() return false; } -void multi_conn_device::device_start() +void ti99_multi_cart_conn_device::device_start() { m_next_free_slot = 0; m_active_slot = 0; @@ -673,7 +805,7 @@ void multi_conn_device::device_start() save_item(NAME(m_next_free_slot)); } -void multi_conn_device::device_reset(void) +void ti99_multi_cart_conn_device::device_reset(void) { m_active_slot = 0; m_fixed_slot = ioport("CARTSLOT")->read() - 1; @@ -687,12 +819,12 @@ static MACHINE_CONFIG_FRAGMENT( multi_slot ) MCFG_DEVICE_ADD("cartridge4", TI99CART, 0) MACHINE_CONFIG_END -machine_config_constructor multi_conn_device::device_mconfig_additions() const +machine_config_constructor ti99_multi_cart_conn_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( multi_slot ); } -INPUT_CHANGED_MEMBER( multi_conn_device::switch_changed ) +INPUT_CHANGED_MEMBER( ti99_multi_cart_conn_device::switch_changed ) { if (TRACE_CHANGE) logerror("Slot changed %d - %d\n", (int)((uint64_t)param & 0x07), newval); m_active_slot = m_fixed_slot = newval - 1; @@ -700,7 +832,7 @@ INPUT_CHANGED_MEMBER( multi_conn_device::switch_changed ) INPUT_PORTS_START(multi_slot) PORT_START( "CARTSLOT" ) - PORT_DIPNAME( 0x0f, 0x00, "Multi-cartridge slot" ) PORT_CHANGED_MEMBER(DEVICE_SELF, multi_conn_device, switch_changed, 0) + PORT_DIPNAME( 0x0f, 0x00, "Multi-cartridge slot" ) PORT_CHANGED_MEMBER(DEVICE_SELF, ti99_multi_cart_conn_device, switch_changed, 0) PORT_DIPSETTING( 0x00, "Auto" ) PORT_DIPSETTING( 0x01, "Slot 1" ) PORT_DIPSETTING( 0x02, "Slot 2" ) @@ -708,7 +840,7 @@ INPUT_PORTS_START(multi_slot) PORT_DIPSETTING( 0x04, "Slot 4" ) INPUT_PORTS_END -ioport_constructor multi_conn_device::device_input_ports() const +ioport_constructor ti99_multi_cart_conn_device::device_input_ports() const { return INPUT_PORTS_NAME(multi_slot); } @@ -828,8 +960,8 @@ enum #define GKSWITCH4_TAG "GKSWITCH4" #define GKSWITCH5_TAG "GKSWITCH5" -gkracker_device::gkracker_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : ti99_cartridge_connector_device(mconfig, GROMPORT_GK, "GRAMKracker", tag, owner, clock, "ti99_gkracker", __FILE__), +ti99_gkracker_device::ti99_gkracker_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : ti99_cartridge_connector_device(mconfig, TI99_GROMPORT_GK, tag, owner, clock), device_nvram_interface(mconfig, *this), m_romspace_selected(false), m_ram_page(0), @@ -841,7 +973,7 @@ gkracker_device::gkracker_device(const machine_config &mconfig, const char *tag, { } -WRITE_LINE_MEMBER(gkracker_device::romgq_line) +WRITE_LINE_MEMBER(ti99_gkracker_device::romgq_line) { m_romspace_selected = (state==ASSERT_LINE); // Propagate to the guest @@ -851,13 +983,13 @@ WRITE_LINE_MEMBER(gkracker_device::romgq_line) /* Combined select lines */ -WRITE8_MEMBER(gkracker_device::set_gromlines) +WRITE8_MEMBER(ti99_gkracker_device::set_gromlines) { m_grom_selected = (data != 0); if (m_cartridge != nullptr) m_cartridge->set_gromlines(space, offset, data); } -WRITE_LINE_MEMBER(gkracker_device::gclock_in) +WRITE_LINE_MEMBER(ti99_gkracker_device::gclock_in) { if (m_cartridge != nullptr) m_cartridge->gclock_in(state); } @@ -865,12 +997,12 @@ WRITE_LINE_MEMBER(gkracker_device::gclock_in) /* Check whether the GROMs are idle. */ -bool gkracker_device::is_grom_idle() +bool ti99_gkracker_device::is_grom_idle() { return (m_cartridge != nullptr)? m_cartridge->is_grom_idle() : false; } -READ8Z_MEMBER(gkracker_device::readz) +READ8Z_MEMBER(ti99_gkracker_device::readz) { if (m_grom_selected) { @@ -929,7 +1061,7 @@ READ8Z_MEMBER(gkracker_device::readz) } } -WRITE8_MEMBER(gkracker_device::write) +WRITE8_MEMBER(ti99_gkracker_device::write) { // write to the guest cartridge if present if (m_cartridge != nullptr) @@ -1001,23 +1133,23 @@ WRITE8_MEMBER(gkracker_device::write) } } -READ8Z_MEMBER( gkracker_device::crureadz ) +READ8Z_MEMBER( ti99_gkracker_device::crureadz ) { if (m_cartridge != nullptr) m_cartridge->crureadz(space, offset, value); } -WRITE8_MEMBER( gkracker_device::cruwrite ) +WRITE8_MEMBER( ti99_gkracker_device::cruwrite ) { if (m_cartridge != nullptr) m_cartridge->cruwrite(space, offset, data); } -INPUT_CHANGED_MEMBER( gkracker_device::gk_changed ) +INPUT_CHANGED_MEMBER( ti99_gkracker_device::gk_changed ) { if (TRACE_GKRACKER) logerror("Input changed %d - %d\n", (int)((uint64_t)param & 0x07), newval); m_gk_switch[(uint64_t)param & 0x07] = newval; } -void gkracker_device::insert(int index, ti99_cartridge_device* cart) +void ti99_gkracker_device::insert(int index, ti99_cartridge_device* cart) { if (TRACE_CHANGE) logerror("Insert cartridge\n"); m_cartridge = cart; @@ -1026,13 +1158,13 @@ void gkracker_device::insert(int index, ti99_cartridge_device* cart) m_gromport->cartridge_inserted(); } -void gkracker_device::remove(int index) +void ti99_gkracker_device::remove(int index) { if (TRACE_CHANGE) logerror("Remove cartridge\n"); m_cartridge = nullptr; } -void gkracker_device::gk_install_menu(const char* menutext, int len, int ptr, int next, int start) +void ti99_gkracker_device::gk_install_menu(const char* menutext, int len, int ptr, int next, int start) { const int base = 0x0000; m_ram_ptr[base + ptr] = (uint8_t)((next >> 8) & 0xff); @@ -1049,7 +1181,7 @@ void gkracker_device::gk_install_menu(const char* menutext, int len, int ptr, in some sample entries which shall indicate that the memory has been tested by the manufacturer. */ -void gkracker_device::nvram_default() +void ti99_gkracker_device::nvram_default() { if (TRACE_GKRACKER) logerror("Creating default NVRAM\n"); memset(m_ram_ptr, 0, 81920); @@ -1072,7 +1204,7 @@ void gkracker_device::nvram_default() m_ram_ptr[0x6100] = 0x0b; // GPL EXIT } -void gkracker_device::nvram_read(emu_file &file) +void ti99_gkracker_device::nvram_read(emu_file &file) { int readsize = file.read(m_ram_ptr, 81920); if (TRACE_GKRACKER) logerror("Reading NVRAM\n"); @@ -1083,13 +1215,13 @@ void gkracker_device::nvram_read(emu_file &file) } } -void gkracker_device::nvram_write(emu_file &file) +void ti99_gkracker_device::nvram_write(emu_file &file) { if (TRACE_GKRACKER) logerror("Writing NVRAM\n"); file.write(m_ram_ptr, 81920); } -void gkracker_device::device_start() +void ti99_gkracker_device::device_start() { m_ram_ptr = memregion(GKRACKER_NVRAM_TAG)->base(); m_grom_ptr = memregion(GKRACKER_ROM_TAG)->base(); @@ -1102,7 +1234,7 @@ void gkracker_device::device_start() save_item(NAME(m_waddr_LSB)); } -void gkracker_device::device_reset() +void ti99_gkracker_device::device_reset() { m_gk_switch[1] = ioport(GKSWITCH1_TAG)->read(); m_gk_switch[2] = ioport(GKSWITCH2_TAG)->read(); @@ -1128,45 +1260,45 @@ ROM_START( gkracker_rom ) ROM_LOAD("gkracker.bin", 0x0000, 0x2000, CRC(86eaaf9f) SHA1(a3bd5257c63e190800921b52dbe3ffa91ad91113)) ROM_END -const tiny_rom_entry *gkracker_device::device_rom_region() const +const tiny_rom_entry *ti99_gkracker_device::device_rom_region() const { return ROM_NAME( gkracker_rom ); } -machine_config_constructor gkracker_device::device_mconfig_additions() const +machine_config_constructor ti99_gkracker_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( gkracker_slot ); } INPUT_PORTS_START(gkracker) PORT_START( GKSWITCH1_TAG ) - PORT_DIPNAME( 0x01, 0x01, "GK switch 1" ) PORT_CHANGED_MEMBER(DEVICE_SELF, gkracker_device, gk_changed, 1) + PORT_DIPNAME( 0x01, 0x01, "GK switch 1" ) PORT_CHANGED_MEMBER(DEVICE_SELF, ti99_gkracker_device, gk_changed, 1) PORT_DIPSETTING( 0x00, "GK Off" ) PORT_DIPSETTING( 0x01, DEF_STR( Normal ) ) PORT_START( GKSWITCH2_TAG ) - PORT_DIPNAME( 0x01, 0x01, "GK switch 2" ) PORT_CHANGED_MEMBER(DEVICE_SELF, gkracker_device, gk_changed, 2) + PORT_DIPNAME( 0x01, 0x01, "GK switch 2" ) PORT_CHANGED_MEMBER(DEVICE_SELF, ti99_gkracker_device, gk_changed, 2) PORT_DIPSETTING( 0x00, "GRAM 0" ) PORT_DIPSETTING( 0x01, "Op Sys" ) PORT_START( GKSWITCH3_TAG ) - PORT_DIPNAME( 0x01, 0x01, "GK switch 3" ) PORT_CHANGED_MEMBER(DEVICE_SELF, gkracker_device, gk_changed, 3) + PORT_DIPNAME( 0x01, 0x01, "GK switch 3" ) PORT_CHANGED_MEMBER(DEVICE_SELF, ti99_gkracker_device, gk_changed, 3) PORT_DIPSETTING( 0x00, "GRAM 1-2" ) PORT_DIPSETTING( 0x01, "TI BASIC" ) PORT_START( GKSWITCH4_TAG ) - PORT_DIPNAME( 0x03, 0x01, "GK switch 4" ) PORT_CHANGED_MEMBER(DEVICE_SELF, gkracker_device, gk_changed, 4) + PORT_DIPNAME( 0x03, 0x01, "GK switch 4" ) PORT_CHANGED_MEMBER(DEVICE_SELF, ti99_gkracker_device, gk_changed, 4) PORT_DIPSETTING( 0x00, "Bank 1" ) PORT_DIPSETTING( 0x01, "W/P" ) PORT_DIPSETTING( 0x02, "Bank 2" ) PORT_START( GKSWITCH5_TAG ) - PORT_DIPNAME( 0x01, 0x00, "GK switch 5" ) PORT_CHANGED_MEMBER(DEVICE_SELF, gkracker_device, gk_changed, 5) + PORT_DIPNAME( 0x01, 0x00, "GK switch 5" ) PORT_CHANGED_MEMBER(DEVICE_SELF, ti99_gkracker_device, gk_changed, 5) PORT_DIPSETTING( 0x00, "Loader On" ) PORT_DIPSETTING( 0x01, "Loader Off" ) INPUT_PORTS_END -ioport_constructor gkracker_device::device_input_ports() const +ioport_constructor ti99_gkracker_device::device_input_ports() const { return INPUT_PORTS_NAME(gkracker); } @@ -1228,7 +1360,7 @@ static const pcb_type sw_pcbdefs[] = }; ti99_cartridge_device::ti99_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) -: bus8z_device(mconfig, TI99CART, "TI-99 cartridge", tag, owner, clock, "cartridge", __FILE__), +: bus8z_device(mconfig, TI99CART, tag, owner, clock), device_image_interface(mconfig, *this), m_pcbtype(0), m_slot(0), @@ -1564,7 +1696,7 @@ const tiny_rom_entry *ti99_cartridge_device::device_rom_region() const return ROM_NAME( cartridge_memory ); } -const device_type TI99CART = device_creator; +DEFINE_DEVICE_TYPE(TI99CART, ti99_cartridge_device, "ti99cart", "TI-99 cartridge") /*************************************************************************** Cartridge types @@ -2518,14 +2650,14 @@ DTD: /* Constructor. */ -rpk::rpk(emu_options& options, const char* sysname) +ti99_cartridge_device::rpk::rpk(emu_options& options, const char* sysname) :m_options(options), m_type(0) //,m_system_name(sysname) { m_sockets.clear(); } -rpk::~rpk() +ti99_cartridge_device::rpk::~rpk() { if (TRACE_RPK) printf("gromport/RPK: Destroy RPK\n"); } @@ -2533,7 +2665,7 @@ rpk::~rpk() /* Deliver the contents of the socket by name of the socket. */ -uint8_t* rpk::get_contents_of_socket(const char *socket_name) +uint8_t* ti99_cartridge_device::rpk::get_contents_of_socket(const char *socket_name) { auto socket = m_sockets.find(socket_name); if (socket == m_sockets.end()) return nullptr; @@ -2543,14 +2675,14 @@ uint8_t* rpk::get_contents_of_socket(const char *socket_name) /* Deliver the length of the contents of the socket by name of the socket. */ -int rpk::get_resource_length(const char *socket_name) +int ti99_cartridge_device::rpk::get_resource_length(const char *socket_name) { auto socket = m_sockets.find(socket_name); if (socket == m_sockets.end()) return 0; return socket->second->get_content_length(); } -void rpk::add_socket(const char* id, std::unique_ptr newsock) +void ti99_cartridge_device::rpk::add_socket(const char* id, std::unique_ptr newsock) { m_sockets.emplace(id, std::move(newsock)); } @@ -2560,7 +2692,7 @@ void rpk::add_socket(const char* id, std::unique_ptr newsock) Saves the contents of the NVRAMs and frees all memory. -------------------------------------------------*/ -void rpk::close() +void ti99_cartridge_device::rpk::close() { // Save the NVRAM contents for(auto &socket : m_sockets) @@ -2585,20 +2717,20 @@ void rpk::close() not a network socket) ***************************************************************/ -rpk_socket::rpk_socket(const char* id, int length, uint8_t* contents, const char *pathname) -: m_id(id), m_length(length), m_contents(contents), m_pathname(pathname) +ti99_cartridge_device::rpk_socket::rpk_socket(const char* id, int length, uint8_t* contents, const char *pathname) + : m_id(id), m_length(length), m_contents(contents), m_pathname(pathname) { } -rpk_socket::rpk_socket(const char* id, int length, uint8_t* contents) -: m_id(id), m_length(length), m_contents(contents), m_pathname(nullptr) +ti99_cartridge_device::rpk_socket::rpk_socket(const char* id, int length, uint8_t* contents) + : rpk_socket(id, length, contents, nullptr) { } /* Locate a file in the ZIP container */ -int rpk_reader::find_file(util::archive_file &zip, const char *filename, uint32_t crc) +int ti99_cartridge_device::rpk_reader::find_file(util::archive_file &zip, const char *filename, uint32_t crc) { for (int header = zip.first_file(); header >= 0; header = zip.next_file()) { @@ -2628,7 +2760,7 @@ int rpk_reader::find_file(util::archive_file &zip, const char *filename, uint32_ /* Load a rom resource and put it in a pcb socket instance. */ -std::unique_ptr rpk_reader::load_rom_resource(util::archive_file &zip, util::xml::data_node const* rom_resource_node, const char* socketname) +std::unique_ptr ti99_cartridge_device::rpk_reader::load_rom_resource(util::archive_file &zip, util::xml::data_node const* rom_resource_node, const char* socketname) { const char* file; const char* crcstr; @@ -2693,7 +2825,7 @@ std::unique_ptr rpk_reader::load_rom_resource(util::archive_file &zi /* Load a ram resource and put it in a pcb socket instance. */ -std::unique_ptr rpk_reader::load_ram_resource(emu_options &options, util::xml::data_node const* ram_resource_node, const char* socketname, const char* system_name) +std::unique_ptr ti99_cartridge_device::rpk_reader::load_ram_resource(emu_options &options, util::xml::data_node const* ram_resource_node, const char* socketname, const char* system_name) { const char* length_string; const char* ram_type; @@ -2780,7 +2912,7 @@ std::unique_ptr rpk_reader::load_ram_resource(emu_options &options, system_name - name of the driver (also just for NVRAM handling) -------------------------------------------------*/ -rpk* rpk_reader::open(emu_options &options, const char *filename, const char *system_name) +ti99_cartridge_device::rpk* ti99_cartridge_device::rpk_reader::open(emu_options &options, const char *filename, const char *system_name) { util::archive_file::error ziperr; diff --git a/src/devices/bus/ti99x/gromport.h b/src/devices/bus/ti99x/gromport.h index 9cf460271db..59aff16bb83 100644 --- a/src/devices/bus/ti99x/gromport.h +++ b/src/devices/bus/ti99x/gromport.h @@ -6,22 +6,24 @@ For details see gromport.c ***************************************************************************/ -#ifndef __GROMPORT__ -#define __GROMPORT__ +#ifndef MAME_BUS_TI99X_GROMPORT_H +#define MAME_BUS_TI99X_GROMPORT_H + +#pragma once #include "ti99defs.h" #include "machine/tmc0430.h" #include "softlist_dev.h" -extern const device_type GROMPORT; +DECLARE_DEVICE_TYPE(TI99_GROMPORT, ti99_gromport_device) class ti99_cartridge_connector_device; -class gromport_device : public bus8z_device, public device_slot_interface +class ti99_gromport_device : public bus8z_device, public device_slot_interface { public: - gromport_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + ti99_gromport_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); DECLARE_READ8Z_MEMBER(readz) override; DECLARE_WRITE8_MEMBER(write) override; DECLARE_READ8Z_MEMBER(crureadz); @@ -35,10 +37,10 @@ public: DECLARE_WRITE_LINE_MEMBER(gclock_in); - static void set_mask(device_t &device, int mask) { downcast(device).m_mask = mask; } + static void set_mask(device_t &device, int mask) { downcast(device).m_mask = mask; } - template static devcb_base &static_set_ready_callback(device_t &device, _Object object) { return downcast(device).m_console_ready.set_callback(object); } - template static devcb_base &static_set_reset_callback(device_t &device, _Object object) { return downcast(device).m_console_reset.set_callback(object); } + template static devcb_base &static_set_ready_callback(device_t &device, Object &&cb) { return downcast(device).m_console_ready.set_callback(std::forward(cb)); } + template static devcb_base &static_set_reset_callback(device_t &device, Object &&cb) { return downcast(device).m_console_reset.set_callback(std::forward(cb)); } void cartridge_inserted(); bool is_grom_idle(); @@ -62,24 +64,23 @@ SLOT_INTERFACE_EXTERN(gromport4); SLOT_INTERFACE_EXTERN(gromport8); #define MCFG_GROMPORT4_ADD( _tag ) \ - MCFG_DEVICE_ADD(_tag, GROMPORT, 0) \ - gromport_device::set_mask(*device, 0x1fff); \ + MCFG_DEVICE_ADD(_tag, TI99_GROMPORT, 0) \ + ti99_gromport_device::set_mask(*device, 0x1fff); \ MCFG_DEVICE_SLOT_INTERFACE(gromport4, "single", false) #define MCFG_GROMPORT8_ADD( _tag ) \ - MCFG_DEVICE_ADD(_tag, GROMPORT, 0) \ - gromport_device::set_mask(*device, 0x3fff); \ + MCFG_DEVICE_ADD(_tag, TI99_GROMPORT, 0) \ + ti99_gromport_device::set_mask(*device, 0x3fff); \ MCFG_DEVICE_SLOT_INTERFACE(gromport8, "single", false) #define MCFG_GROMPORT_READY_HANDLER( _ready ) \ - devcb = &gromport_device::static_set_ready_callback( *device, DEVCB_##_ready ); + devcb = &ti99_gromport_device::static_set_ready_callback( *device, DEVCB_##_ready ); #define MCFG_GROMPORT_RESET_HANDLER( _reset ) \ - devcb = &gromport_device::static_set_reset_callback( *device, DEVCB_##_reset ); + devcb = &ti99_gromport_device::static_set_reset_callback( *device, DEVCB_##_reset ); /****************************************************************************/ -class rpk; class ti99_cartridge_pcb; class ti99_cartridge_device : public bus8z_device, public device_image_interface @@ -103,7 +104,7 @@ public: bool is_grom_idle(); protected: - virtual void device_start() override { }; + virtual void device_start() override { } virtual void device_config_complete() override; virtual machine_config_constructor device_mconfig_additions() const override; virtual const tiny_rom_entry* device_rom_region() const override; @@ -126,6 +127,10 @@ protected: const char *file_extensions() const override { return "rpk"; } private: + class rpk_socket; + class rpk_reader; + class rpk; + bool m_readrom; int m_pcbtype; int m_slot; @@ -139,44 +144,42 @@ private: rpk *m_rpk; }; -extern const device_type TI99CART; +DECLARE_DEVICE_TYPE(TI99CART, ti99_cartridge_device) /****************************************************************************/ class ti99_cartridge_connector_device : public bus8z_device { public: - virtual DECLARE_READ8Z_MEMBER(readz) override =0; - virtual DECLARE_WRITE8_MEMBER(write) override =0; virtual DECLARE_READ8Z_MEMBER(crureadz) = 0; virtual DECLARE_WRITE8_MEMBER(cruwrite) = 0; - virtual DECLARE_WRITE_LINE_MEMBER(romgq_line) =0; - virtual DECLARE_WRITE8_MEMBER(set_gromlines) =0; + virtual DECLARE_WRITE_LINE_MEMBER(romgq_line) = 0; + virtual DECLARE_WRITE8_MEMBER(set_gromlines) = 0; - virtual DECLARE_WRITE_LINE_MEMBER(gclock_in) =0; + virtual DECLARE_WRITE_LINE_MEMBER(gclock_in) = 0; DECLARE_WRITE_LINE_MEMBER(ready_line); - virtual void insert(int index, ti99_cartridge_device* cart) { m_gromport->cartridge_inserted(); }; - virtual void remove(int index) { }; - virtual bool is_grom_idle() =0; + virtual void insert(int index, ti99_cartridge_device* cart) { m_gromport->cartridge_inserted(); } + virtual void remove(int index) { } + virtual bool is_grom_idle() = 0; protected: - ti99_cartridge_connector_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); + ti99_cartridge_connector_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); virtual void device_config_complete() override; - gromport_device* m_gromport; + ti99_gromport_device* m_gromport; bool m_grom_selected; }; /* Single cartridge connector. */ -class single_conn_device : public ti99_cartridge_connector_device +class ti99_single_cart_conn_device : public ti99_cartridge_connector_device { public: - single_conn_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + ti99_single_cart_conn_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); DECLARE_READ8Z_MEMBER(readz) override; DECLARE_WRITE8_MEMBER(write) override; @@ -204,12 +207,11 @@ private: /* We set the number of slots to 4, although we may have up to 16. From a logical point of view we could have 256, but the operating system only checks the first 16 banks. */ -#define NUMBER_OF_CARTRIDGE_SLOTS 4 -class multi_conn_device : public ti99_cartridge_connector_device +class ti99_multi_cart_conn_device : public ti99_cartridge_connector_device { public: - multi_conn_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + ti99_multi_cart_conn_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); DECLARE_READ8Z_MEMBER(readz) override; DECLARE_WRITE8_MEMBER(write) override; @@ -226,6 +228,8 @@ public: bool is_grom_idle() override; protected: + static constexpr unsigned NUMBER_OF_CARTRIDGE_SLOTS = 4; + virtual void device_start() override; virtual void device_reset() override; virtual machine_config_constructor device_mconfig_additions() const override; @@ -245,10 +249,10 @@ private: /* GRAM Kracker. */ -class gkracker_device : public ti99_cartridge_connector_device, public device_nvram_interface +class ti99_gkracker_device : public ti99_cartridge_connector_device, public device_nvram_interface { public: - gkracker_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + ti99_gkracker_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); DECLARE_READ8Z_MEMBER(readz) override; DECLARE_WRITE8_MEMBER(write) override; @@ -295,9 +299,9 @@ private: void gk_install_menu(const char* menutext, int len, int ptr, int next, int start); }; -extern const device_type GROMPORT_SINGLE; -extern const device_type GROMPORT_MULTI; -extern const device_type GROMPORT_GK; +DECLARE_DEVICE_TYPE(TI99_GROMPORT_SINGLE, ti99_single_cart_conn_device) +DECLARE_DEVICE_TYPE(TI99_GROMPORT_MULTI, ti99_multi_cart_conn_device) +DECLARE_DEVICE_TYPE(TI99_GROMPORT_GK, ti99_gkracker_device) /****************************************************************************/ @@ -306,7 +310,7 @@ class ti99_cartridge_pcb friend class ti99_cartridge_device; public: ti99_cartridge_pcb(); - virtual ~ti99_cartridge_pcb() { }; + virtual ~ti99_cartridge_pcb() { } protected: virtual DECLARE_READ8Z_MEMBER(readz); @@ -350,7 +354,6 @@ protected: class ti99_standard_cartridge : public ti99_cartridge_pcb { public: - ~ti99_standard_cartridge() { }; }; /*********** Paged cartridge (like Extended Basic) ********************/ @@ -358,7 +361,6 @@ public: class ti99_paged12k_cartridge : public ti99_cartridge_pcb { public: - ~ti99_paged12k_cartridge() { }; DECLARE_READ8Z_MEMBER(readz) override; DECLARE_WRITE8_MEMBER(write) override; }; @@ -368,7 +370,6 @@ public: class ti99_paged16k_cartridge : public ti99_cartridge_pcb { public: - ~ti99_paged16k_cartridge() { }; DECLARE_READ8Z_MEMBER(readz) override; DECLARE_WRITE8_MEMBER(write) override; }; @@ -378,7 +379,6 @@ public: class ti99_minimem_cartridge : public ti99_cartridge_pcb { public: - ~ti99_minimem_cartridge() { }; DECLARE_READ8Z_MEMBER(readz) override; DECLARE_WRITE8_MEMBER(write) override; }; @@ -388,7 +388,6 @@ public: class ti99_super_cartridge : public ti99_cartridge_pcb { public: - ~ti99_super_cartridge() { }; DECLARE_READ8Z_MEMBER(readz) override; DECLARE_WRITE8_MEMBER(write) override; DECLARE_READ8Z_MEMBER(crureadz) override; @@ -400,7 +399,6 @@ public: class ti99_mbx_cartridge : public ti99_cartridge_pcb { public: - ~ti99_mbx_cartridge() { }; DECLARE_READ8Z_MEMBER(readz) override; DECLARE_WRITE8_MEMBER(write) override; }; @@ -410,7 +408,6 @@ public: class ti99_paged379i_cartridge : public ti99_cartridge_pcb { public: - ~ti99_paged379i_cartridge() { }; DECLARE_READ8Z_MEMBER(readz) override; DECLARE_WRITE8_MEMBER(write) override; private: @@ -422,7 +419,6 @@ private: class ti99_paged378_cartridge : public ti99_cartridge_pcb { public: - ~ti99_paged378_cartridge() { }; DECLARE_READ8Z_MEMBER(readz) override; DECLARE_WRITE8_MEMBER(write) override; }; @@ -432,7 +428,6 @@ public: class ti99_paged377_cartridge : public ti99_cartridge_pcb { public: - ~ti99_paged377_cartridge() { }; DECLARE_READ8Z_MEMBER(readz) override; DECLARE_WRITE8_MEMBER(write) override; }; @@ -442,7 +437,6 @@ public: class ti99_pagedcru_cartridge : public ti99_cartridge_pcb { public: - ~ti99_pagedcru_cartridge() { }; DECLARE_READ8Z_MEMBER(readz) override; DECLARE_WRITE8_MEMBER(write) override; DECLARE_READ8Z_MEMBER(crureadz) override; @@ -456,7 +450,6 @@ class ti99_gromemu_cartridge : public ti99_cartridge_pcb public: ti99_gromemu_cartridge(): m_waddr_LSB(false), m_grom_selected(false), m_grom_read_mode(false), m_grom_address_mode(false) { m_grom_address = 0; } - ~ti99_gromemu_cartridge() { }; DECLARE_READ8Z_MEMBER(readz) override; DECLARE_WRITE8_MEMBER(write) override; DECLARE_READ8Z_MEMBER(gromemureadz); @@ -470,133 +463,4 @@ private: bool m_grom_address_mode; }; - -struct pcb_type -{ - int id; - const char* name; -}; - -/************************************************************************* - RPK support -*************************************************************************/ -class rpk; - -class rpk_socket -{ - friend class rpk; - -public: - rpk_socket(const char *id, int length, uint8_t *contents); - rpk_socket(const char *id, int length, uint8_t *contents, const char *pathname); - ~rpk_socket() {} - - const char* id() { return m_id; } - int get_content_length() { return m_length; } - uint8_t* get_contents() { return m_contents; } - bool persistent_ram() { return m_pathname != nullptr; } - const char* get_pathname() { return m_pathname; } - void cleanup() { if (m_contents != nullptr) global_free_array(m_contents); } - -private: - const char* m_id; - uint32_t m_length; - uint8_t* m_contents; - const char* m_pathname; -}; - -class rpk_reader -{ -public: - rpk_reader(const pcb_type *types) - : m_types(types) { }; - - rpk *open(emu_options &options, const char *filename, const char *system_name); - -private: - int find_file(util::archive_file &zip, const char *filename, uint32_t crc); - std::unique_ptr load_rom_resource(util::archive_file &zip, util::xml::data_node const* rom_resource_node, const char* socketname); - std::unique_ptr load_ram_resource(emu_options &options, util::xml::data_node const* ram_resource_node, const char* socketname, const char* system_name); - const pcb_type* m_types; -}; - -class rpk -{ - friend class rpk_reader; -public: - rpk(emu_options& options, const char* sysname); - ~rpk(); - - int get_type(void) { return m_type; } - uint8_t* get_contents_of_socket(const char *socket_name); - int get_resource_length(const char *socket_name); - void close(); - -private: - emu_options& m_options; // need this to find the path to the nvram files - int m_type; - //const char* m_system_name; // need this to find the path to the nvram files - std::unordered_map> m_sockets; - - void add_socket(const char* id, std::unique_ptr newsock); -}; - -enum rpk_open_error -{ - RPK_OK, - RPK_NOT_ZIP_FORMAT, - RPK_CORRUPT, - RPK_OUT_OF_MEMORY, - RPK_XML_ERROR, - RPK_INVALID_FILE_REF, - RPK_ZIP_ERROR, - RPK_ZIP_UNSUPPORTED, - RPK_MISSING_RAM_LENGTH, - RPK_INVALID_RAM_SPEC, - RPK_UNKNOWN_RESOURCE_TYPE, - RPK_INVALID_RESOURCE_REF, - RPK_INVALID_LAYOUT, - RPK_MISSING_LAYOUT, - RPK_NO_PCB_OR_RESOURCES, - RPK_UNKNOWN_PCB_TYPE -}; - -static const char error_text[16][30] = -{ - "No error", - "Not a RPK (zip) file", - "Module definition corrupt", - "Out of memory", - "XML format error", - "Invalid file reference", - "Zip file error", - "Unsupported zip version", - "Missing RAM length", - "Invalid RAM specification", - "Unknown resource type", - "Invalid resource reference", - "layout.xml not valid", - "Missing layout", - "No pcb or resource found", - "Unknown pcb type" -}; - -class rpk_exception -{ -public: - rpk_exception(rpk_open_error value): m_err(value), m_detail(nullptr) { }; - rpk_exception(rpk_open_error value, const char* detail): m_err(value), m_detail(detail) { }; - - const char* to_string() - { - if (m_detail==nullptr) return error_text[(int)m_err]; - std::string errormsg = std::string(error_text[(int)m_err]).append(": ").append(m_detail); - return core_strdup(errormsg.c_str()); - } - -private: - rpk_open_error m_err; - const char* m_detail; -}; - -#endif +#endif // MAME_BUS_TI99X_GROMPORT_H diff --git a/src/devices/bus/ti99x/handset.cpp b/src/devices/bus/ti99x/handset.cpp deleted file mode 100644 index e1f584f415d..00000000000 --- a/src/devices/bus/ti99x/handset.cpp +++ /dev/null @@ -1,538 +0,0 @@ -// license:LGPL-2.1+ -// copyright-holders:Michael Zapf -/**************************************************************************** - - TI-99/4 Handset support (TI99/4 only) - - The ti99/4 was intended to support some so-called "IR remote handsets". - This feature was canceled at the last minute (reportedly ten minutes before - the introductory press conference in June 1979), but the first thousands of - 99/4 units had the required port, and the support code was seemingly not - deleted from ROMs until the introduction of the ti99/4a in 1981. You could - connect up to 4 20-key keypads, and up to 4 joysticks with a maximum - resolution of 15 levels on each axis. - - The keyboard DSR was able to couple two 20-key keypads together to emulate - a full 40-key keyboard. Keyboard modes 0, 1 and 2 would select either the - console keyboard with its two wired remote controllers (i.e. joysticks), or - remote handsets 1 and 2 with their associated IR remote controllers (i.e. - joysticks), according to which was currently active. - - Originally written by R. Nabet - - ************************************************** - - TI-99/4(A) Twin Joystick - - This file also contains the implementation of the twin joystick; - actually, no big deal, as it contains no logic but only switches. - - ************************************************** - - Michael Zapf - 2010-10-24 Rewriten as device - - January 2012: Rewritten as class - -*****************************************************************************/ - -#include "emu.h" -#include "handset.h" -#include "machine/tms9901.h" - -#define LOG logerror -#define VERBOSE 1 - -static const char *const joynames[2][4] = -{ - { "JOY0", "JOY2", "JOY4", "JOY6" }, // X axis - { "JOY1", "JOY3", "JOY5", "JOY7" } // Y axis -}; - -static const char *const keynames[] = { "KP0", "KP1", "KP2", "KP3", "KP4" }; - -ti99_handset_device::ti99_handset_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : joyport_attached_device(mconfig, HANDSET, "TI-99/4 IR handset", tag, owner, clock, "handset", __FILE__), m_ack(0), m_clock_high(false), m_buf(0), m_buflen(0), m_delay_timer(nullptr) -{ -} - -#define POLL_TIMER 1 -#define DELAY_TIMER 2 - -/*****************************************************************************/ - -/* - Return the status of the handset via the joystick port. - B = bus - C = clock - I = int (neg logic) - - answer = |0|I|C|1|B|B|B|B| -*/ -uint8_t ti99_handset_device::read_dev() -{ - return (m_buf & 0xf) | 0x10 | (m_clock_high? 0x20:0) | ( m_buflen==3? 0x00:0x40); -} - -void ti99_handset_device::write_dev(uint8_t data) -{ - if (VERBOSE>7) LOG("ti99_handset_device: Set ack %d\n", data); - set_acknowledge(data); -} - -/* - Handle data acknowledge sent by the ti-99/4 handset ISR (through tms9901 - line P0). This function is called by a delayed timer 30us after the state - of P0 is changed, because, in one occasion, the ISR asserts the line before - it reads the data, so we need to delay the acknowledge process. -*/ -void ti99_handset_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) -{ - m_clock_high = !m_clock_high; - m_buf >>= 4; - m_buflen--; - - // Clear the INT12 line - m_joyport->set_interrupt(CLEAR_LINE); - - if (m_buflen == 1) - { - // Unless I am missing something, the third and last nibble of the - // message is not acknowledged by the DSR in any way, and the first nibble - // of next message is not requested for either, so we need to decide on - // our own when we can post a new event. Currently, we wait for 1000us - // after the DSR acknowledges the second nybble. - m_delay_timer->adjust(attotime::from_usec(1000)); - } - - if (m_buflen == 0) - /* See if we need to post a new event */ - do_task(); -} - -/* - Handler for tms9901 P0 pin (handset data acknowledge) -*/ -void ti99_handset_device::set_acknowledge(int data) -{ - if ((m_buflen !=0) && (data != m_ack)) - { - m_ack = data; - if ((data!=0) == m_clock_high) - { - // I don't know what the real delay is, but 30us apears to be enough - m_delay_timer->adjust(attotime::from_usec(30)); - } - } -} - -/* - post_message() - - Post a 12-bit message: trigger an interrupt on the tms9901, and store the - message in the I/R receiver buffer so that the handset ISR will read this - message. - - message: 12-bit message to post (only the 12 LSBits are meaningful) -*/ -void ti99_handset_device::post_message(int message) -{ - /* post message and assert interrupt */ - m_clock_high = true; - m_buf = ~message; - m_buflen = 3; - if (VERBOSE>5) LOG("ti99_handset_device: trigger interrupt\n"); - m_joyport->set_interrupt(ASSERT_LINE); -} - -/* - poll_keyboard() - Poll the current state of one given handset keypad. - num: number of the keypad to poll (0-3) - Returns true if the handset state has changed and a message was posted. -*/ -bool ti99_handset_device::poll_keyboard(int num) -{ - uint32_t key_buf; - uint8_t current_key; - int i; - - /* read current key state */ - key_buf = (ioport(keynames[num])->read() | (ioport(keynames[num + 1])->read() << 16) ) >> (4*num); - - // If a key was previously pressed, this key was not shift, and this key is - // still down, then don't change the current key press. - if (previous_key[num] !=0 && (previous_key[num] != 0x24) - && (key_buf & (1 << (previous_key[num] & 0x1f)))) - { - /* check the shift modifier state */ - if (((previous_key[num] & 0x20) != 0) == ((key_buf & 0x0008) != 0)) - /* the shift modifier state has not changed */ - return false; - else - { - // The shift modifier state has changed: we need to update the - // keyboard state - if (key_buf & 0x0008) - { /* shift has been pressed down */ - previous_key[num] = current_key = previous_key[num] | 0x20; - } - else - { - previous_key[num] = current_key = previous_key[num] & ~0x20; - } - /* post message */ - post_message((((unsigned)current_key) << 4) | (num << 1)); - return true; - } - } - - current_key = 0; /* default value if no key is down */ - for (i=0; i<20; i++) - { - if (key_buf & (1 << i)) - { - current_key = i + 1; - if (key_buf & 0x0008) - current_key |= 0x20; /* set shift flag */ - - if (current_key != 0x24) - // If this is the shift key, any other key we may find will - // have higher priority; otherwise, we may exit the loop and keep - // the key we have just found. - break; - } - } - - if (current_key != previous_key[num]) - { - previous_key[num] = current_key; - - /* post message */ - post_message((((unsigned) current_key) << 4) | (num << 1)); - return true; - } - return false; -} - -/* - poll_joystick() - - Poll the current state of one given handset joystick. - num: number of the joystick to poll (0-3) - Returns true if the handset state has changed and a message was posted. -*/ -bool ti99_handset_device::poll_joystick(int num) -{ - uint8_t current_joy; - int current_joy_x, current_joy_y; - int message; - /* read joystick position */ - current_joy_x = ioport(joynames[0][num])->read(); - current_joy_y = ioport(joynames[1][num])->read(); - - /* compare with last saved position */ - current_joy = current_joy_x | (current_joy_y << 4); - if (current_joy != previous_joy[num]) - { - /* save position */ - previous_joy[num] = current_joy; - - /* transform position to signed quantity */ - current_joy_x -= 7; - current_joy_y -= 7; - - message = 0; - - /* set sign */ - // note that we set the sign if the joystick position is 0 to work - // around a bug in the ti99/4 ROMs - if (current_joy_x <= 0) - { - message |= 0x040; - current_joy_x = - current_joy_x; - } - - if (current_joy_y <= 0) - { - message |= 0x400; - current_joy_y = - current_joy_y; - } - - /* convert absolute values to Gray code and insert in message */ - if (current_joy_x & 4) - current_joy_x ^= 3; - if (current_joy_x & 2) - current_joy_x ^= 1; - message |= current_joy_x << 3; - - if (current_joy_y & 4) - current_joy_y ^= 3; - if (current_joy_y & 2) - current_joy_y ^= 1; - message |= current_joy_y << 7; - - /* set joystick address */ - message |= (num << 1) | 0x1; - - /* post message */ - post_message(message); - return true; - } - return false; -} - -/* - ti99_handset_task() - Manage handsets, posting an event if the state of any handset has changed. -*/ -void ti99_handset_device::do_task() -{ - int i; - - if (m_buflen == 0) - { - /* poll every handset */ - for (i=0; i < MAX_HANDSETS; i++) - if (poll_joystick(i)==true) return; - for (i=0; i < MAX_HANDSETS; i++) - if (poll_keyboard(i)==true) return; - } - else if (m_buflen == 3) - { /* update messages after they have been posted */ - if (m_buf & 1) - { /* keyboard */ - poll_keyboard((~(m_buf >> 1)) & 0x3); - } - else - { /* joystick */ - poll_joystick((~(m_buf >> 1)) & 0x3); - } - } -} - -void ti99_handset_device::pulse_clock() -{ - logerror("handset: pulse_clock\n"); - do_task(); -} - -void ti99_handset_device::device_start(void) -{ - m_delay_timer = timer_alloc(DELAY_TIMER); - save_item(NAME(m_ack)); - save_item(NAME(m_clock_high)); - save_item(NAME(m_buf)); - save_item(NAME(m_buflen)); - save_pointer(NAME(previous_joy), MAX_HANDSETS); - save_pointer(NAME(previous_key), MAX_HANDSETS); -} - -void ti99_handset_device::device_reset(void) -{ - if (VERBOSE>5) LOG("ti99_handset_device: Reset\n"); - m_delay_timer->enable(true); - m_buf = 0; - m_buflen = 0; - m_clock_high = false; - m_ack = 0; -} - -#define JOYSTICK_DELTA 10 -#define JOYSTICK_SENSITIVITY 100 - -INPUT_PORTS_START( handset ) - /* 13 pseudo-ports for IR remote handsets */ - - /* 8 pseudo-ports for the 4 IR joysticks */ - PORT_START("JOY0") /* joystick 1, X axis */ - PORT_BIT( 0xf, 0x7, IPT_AD_STICK_X) PORT_SENSITIVITY(JOYSTICK_SENSITIVITY) PORT_KEYDELTA(JOYSTICK_DELTA) PORT_MINMAX(0,0xe) PORT_PLAYER(1) - - PORT_START("JOY1") /* joystick 1, Y axis */ - PORT_BIT( 0xf, 0x7, IPT_AD_STICK_Y) PORT_SENSITIVITY(JOYSTICK_SENSITIVITY) PORT_KEYDELTA(JOYSTICK_DELTA) PORT_MINMAX(0,0xe) PORT_PLAYER(1) PORT_REVERSE - - PORT_START("JOY2") /* joystick 2, X axis */ - PORT_BIT( 0xf, 0x7, IPT_AD_STICK_X) PORT_SENSITIVITY(JOYSTICK_SENSITIVITY) PORT_KEYDELTA(JOYSTICK_DELTA) PORT_MINMAX(0,0xe) PORT_PLAYER(2) - - PORT_START("JOY3") /* joystick 2, Y axis */ - PORT_BIT( 0xf, 0x7, IPT_AD_STICK_Y) PORT_SENSITIVITY(JOYSTICK_SENSITIVITY) PORT_KEYDELTA(JOYSTICK_DELTA) PORT_MINMAX(0,0xe) PORT_PLAYER(2) PORT_REVERSE - - PORT_START("JOY4") /* joystick 3, X axis */ - PORT_BIT( 0xf, 0x7, IPT_AD_STICK_X) PORT_SENSITIVITY(JOYSTICK_SENSITIVITY) PORT_KEYDELTA(JOYSTICK_DELTA) PORT_MINMAX(0,0xe) PORT_PLAYER(3) - - PORT_START("JOY5") /* joystick 3, Y axis */ - PORT_BIT( 0xf, 0x7, IPT_AD_STICK_Y) PORT_SENSITIVITY(JOYSTICK_SENSITIVITY) PORT_KEYDELTA(JOYSTICK_DELTA) PORT_MINMAX(0,0xe) PORT_PLAYER(3) PORT_REVERSE - - PORT_START("JOY6") /* joystick 4, X axis */ - PORT_BIT( 0xf, 0x7, IPT_AD_STICK_X) PORT_SENSITIVITY(JOYSTICK_SENSITIVITY) PORT_KEYDELTA(JOYSTICK_DELTA) PORT_MINMAX(0,0xe) PORT_PLAYER(4) - - PORT_START("JOY7") /* joystick 4, Y axis */ - PORT_BIT( 0xf, 0x7, IPT_AD_STICK_Y) PORT_SENSITIVITY(JOYSTICK_SENSITIVITY) PORT_KEYDELTA(JOYSTICK_DELTA) PORT_MINMAX(0,0xe) PORT_PLAYER(4) PORT_REVERSE - - /* 5 pseudo-ports for the 4 IR remote keypads */ - PORT_START("KP0") /* keypad 1, keys 1 to 16 */ - PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1: CLR") PORT_CODE(KEYCODE_1) PORT_PLAYER(1) - PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1: GO") PORT_CODE(KEYCODE_Q) PORT_PLAYER(1) - PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1: SET") PORT_CODE(KEYCODE_SPACE) PORT_PLAYER(1) - PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1: NEXT") PORT_CODE(KEYCODE_LSHIFT) PORT_PLAYER(1) - PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1: 7") PORT_CODE(KEYCODE_2) PORT_PLAYER(1) - PORT_BIT(0x0020, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1: 4") PORT_CODE(KEYCODE_W) PORT_PLAYER(1) - PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1: 1") PORT_CODE(KEYCODE_A) PORT_PLAYER(1) - PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1: STOP") PORT_CODE(KEYCODE_Z) PORT_PLAYER(1) - PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1: 8") PORT_CODE(KEYCODE_3) PORT_PLAYER(1) - PORT_BIT(0x0200, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1: 5") PORT_CODE(KEYCODE_E) PORT_PLAYER(1) - PORT_BIT(0x0400, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1: 2") PORT_CODE(KEYCODE_S) PORT_PLAYER(1) - PORT_BIT(0x0800, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1: 0") PORT_CODE(KEYCODE_X) PORT_PLAYER(1) - PORT_BIT(0x1000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1: 9") PORT_CODE(KEYCODE_4) PORT_PLAYER(1) - PORT_BIT(0x2000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1: 6") PORT_CODE(KEYCODE_R) PORT_PLAYER(1) - PORT_BIT(0x4000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1: 3") PORT_CODE(KEYCODE_D) PORT_PLAYER(1) - PORT_BIT(0x8000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1: E =") PORT_CODE(KEYCODE_C) PORT_PLAYER(1) - - PORT_START("KP1") /* keypad 1, keys 17 to 20 */ - PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1: (div)") PORT_CODE(KEYCODE_5) PORT_PLAYER(1) - PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1: (mul)") PORT_CODE(KEYCODE_T) PORT_PLAYER(1) - PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1: NO -") PORT_CODE(KEYCODE_F) PORT_PLAYER(1) - PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1: YES +") PORT_CODE(KEYCODE_V) PORT_PLAYER(1) - /* keypad 2, keys 1 to 12 */ - PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2: CLR") PORT_CODE(KEYCODE_6) PORT_PLAYER(2) - PORT_BIT(0x0020, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2: GO") PORT_CODE(KEYCODE_Y) PORT_PLAYER(2) - PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2: SET") PORT_CODE(KEYCODE_G) PORT_PLAYER(2) - PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2: NEXT") PORT_CODE(KEYCODE_B) PORT_PLAYER(2) - PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2: 7") PORT_CODE(KEYCODE_7) PORT_PLAYER(2) - PORT_BIT(0x0200, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2: 4") PORT_CODE(KEYCODE_U) PORT_PLAYER(2) - PORT_BIT(0x0400, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2: 1") PORT_CODE(KEYCODE_H) PORT_PLAYER(2) - PORT_BIT(0x0800, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2: STOP") PORT_CODE(KEYCODE_N) PORT_PLAYER(2) - PORT_BIT(0x1000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2: 8") PORT_CODE(KEYCODE_8) PORT_PLAYER(2) - PORT_BIT(0x2000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2: 5") PORT_CODE(KEYCODE_I) PORT_PLAYER(2) - PORT_BIT(0x4000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2: 2") PORT_CODE(KEYCODE_J) PORT_PLAYER(2) - PORT_BIT(0x8000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2: 0") PORT_CODE(KEYCODE_M) PORT_PLAYER(2) - - PORT_START("KP2") /* keypad 2, keys 13 to 20 */ - PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2: 9") PORT_CODE(KEYCODE_9) PORT_PLAYER(2) - PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2: 6") PORT_CODE(KEYCODE_O) PORT_PLAYER(2) - PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2: 3") PORT_CODE(KEYCODE_K) PORT_PLAYER(2) - PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2: E =") PORT_CODE(KEYCODE_STOP) PORT_PLAYER(2) - PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2: (div)") PORT_CODE(KEYCODE_0) PORT_PLAYER(2) - PORT_BIT(0x0020, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2: (mul)") PORT_CODE(KEYCODE_P) PORT_PLAYER(2) - PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2: NO -") PORT_CODE(KEYCODE_L) PORT_PLAYER(2) - PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2: YES +") PORT_CODE(KEYCODE_ENTER) PORT_PLAYER(2) - /* keypad 3, keys 1 to 8 */ - PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3: CLR") PORT_CODE(KEYCODE_1) PORT_PLAYER(3) - PORT_BIT(0x0200, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3: GO") PORT_CODE(KEYCODE_Q) PORT_PLAYER(3) - PORT_BIT(0x0400, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3: SET") PORT_CODE(KEYCODE_SPACE) PORT_PLAYER(3) - PORT_BIT(0x0800, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3: NEXT") PORT_CODE(KEYCODE_LSHIFT) PORT_PLAYER(3) - PORT_BIT(0x1000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3: 7") PORT_CODE(KEYCODE_2) PORT_PLAYER(3) - PORT_BIT(0x2000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3: 4") PORT_CODE(KEYCODE_W) PORT_PLAYER(3) - PORT_BIT(0x4000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3: 1") PORT_CODE(KEYCODE_A) PORT_PLAYER(3) - PORT_BIT(0x8000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3: STOP") PORT_CODE(KEYCODE_Z) PORT_PLAYER(3) - - PORT_START("KP3") /* keypad 3, keys 9 to 20 */ - PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3: 8") PORT_CODE(KEYCODE_3) PORT_PLAYER(3) - PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3: 5") PORT_CODE(KEYCODE_E) PORT_PLAYER(3) - PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3: 2") PORT_CODE(KEYCODE_S) PORT_PLAYER(3) - PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3: 0") PORT_CODE(KEYCODE_X) PORT_PLAYER(3) - PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3: 9") PORT_CODE(KEYCODE_4) PORT_PLAYER(3) - PORT_BIT(0x0020, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3: 6") PORT_CODE(KEYCODE_R) PORT_PLAYER(3) - PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3: 3") PORT_CODE(KEYCODE_D) PORT_PLAYER(3) - PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3: E =") PORT_CODE(KEYCODE_C) PORT_PLAYER(3) - PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3: (div)") PORT_CODE(KEYCODE_5) PORT_PLAYER(3) - PORT_BIT(0x0200, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3: (mul)") PORT_CODE(KEYCODE_T) PORT_PLAYER(3) - PORT_BIT(0x0400, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3: NO -") PORT_CODE(KEYCODE_F) PORT_PLAYER(3) - PORT_BIT(0x0800, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3: YES +") PORT_CODE(KEYCODE_V) PORT_PLAYER(3) - /* keypad 4, keys 1 to 4 */ - PORT_BIT(0x1000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4: CLR") PORT_CODE(KEYCODE_6) PORT_PLAYER(4) - PORT_BIT(0x2000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4: GO") PORT_CODE(KEYCODE_Y) PORT_PLAYER(4) - PORT_BIT(0x4000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4: SET") PORT_CODE(KEYCODE_G) PORT_PLAYER(4) - PORT_BIT(0x8000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4: NEXT") PORT_CODE(KEYCODE_B) PORT_PLAYER(4) - - PORT_START("KP4") /* keypad 4, keys 5 to 20 */ - PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4: 7") PORT_CODE(KEYCODE_7) PORT_PLAYER(4) - PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4: 4") PORT_CODE(KEYCODE_U) PORT_PLAYER(4) - PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4: 1") PORT_CODE(KEYCODE_H) PORT_PLAYER(4) - PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4: STOP") PORT_CODE(KEYCODE_N) PORT_PLAYER(4) - PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4: 8") PORT_CODE(KEYCODE_8) PORT_PLAYER(4) - PORT_BIT(0x0020, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4: 5") PORT_CODE(KEYCODE_I) PORT_PLAYER(4) - PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4: 2") PORT_CODE(KEYCODE_J) PORT_PLAYER(4) - PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4: 0") PORT_CODE(KEYCODE_M) PORT_PLAYER(4) - PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4: 9") PORT_CODE(KEYCODE_9) PORT_PLAYER(4) - PORT_BIT(0x0200, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4: 6") PORT_CODE(KEYCODE_O) PORT_PLAYER(4) - PORT_BIT(0x0400, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4: 3") PORT_CODE(KEYCODE_K) PORT_PLAYER(4) - PORT_BIT(0x0800, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4: E =") PORT_CODE(KEYCODE_STOP) PORT_PLAYER(4) - PORT_BIT(0x1000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4: (div)") PORT_CODE(KEYCODE_0) PORT_PLAYER(4) - PORT_BIT(0x2000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4: (mul)") PORT_CODE(KEYCODE_P) PORT_PLAYER(4) - PORT_BIT(0x4000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4: NO -") PORT_CODE(KEYCODE_L) PORT_PLAYER(4) - PORT_BIT(0x8000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4: YES +") PORT_CODE(KEYCODE_ENTER) PORT_PLAYER(4) -INPUT_PORTS_END - -ioport_constructor ti99_handset_device::device_input_ports() const -{ - return INPUT_PORTS_NAME( handset ); -} - -const device_type HANDSET = device_creator; - -/****************************************************************************** - Twin Joystick -******************************************************************************/ - -/* col 6: "wired handset 1" (= joystick 1) */ -/* col 7: "wired handset 2" (= joystick 2) */ - -INPUT_PORTS_START( joysticks ) - PORT_START("JOY1") - PORT_BIT(0xE0, IP_ACTIVE_LOW, IPT_UNUSED) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP/*, "(1UP)", CODE_NONE, OSD_JOY_UP*/) PORT_PLAYER(1) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN/*, "(1DOWN)", CODE_NONE, OSD_JOY_DOWN, 0*/) PORT_PLAYER(1) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT/*, "(1RIGHT)", CODE_NONE, OSD_JOY_RIGHT, 0*/) PORT_PLAYER(1) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT/*, "(1LEFT)", CODE_NONE, OSD_JOY_LEFT, 0*/) PORT_PLAYER(1) - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_BUTTON1/*, "(1FIRE)", CODE_NONE, OSD_JOY_FIRE, 0*/) PORT_PLAYER(1) - - PORT_START("JOY2") - PORT_BIT(0xE0, IP_ACTIVE_LOW, IPT_UNUSED) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP/*, "(2UP)", CODE_NONE, OSD_JOY2_UP, 0*/) PORT_PLAYER(2) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN/*, "(2DOWN)", CODE_NONE, OSD_JOY2_DOWN, 0*/) PORT_PLAYER(2) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT/*, "(2RIGHT)", CODE_NONE, OSD_JOY2_RIGHT, 0*/) PORT_PLAYER(2) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT/*, "(2LEFT)", CODE_NONE, OSD_JOY2_LEFT, 0*/) PORT_PLAYER(2) - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_BUTTON1/*, "(2FIRE)", CODE_NONE, OSD_JOY2_FIRE, 0*/) PORT_PLAYER(2) -INPUT_PORTS_END - -ti99_twin_joystick::ti99_twin_joystick(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) -: joyport_attached_device(mconfig, TI99_JOYSTICK, "TI-99/4(A) Twin Joystick", tag, owner, clock, "twinjoy", __FILE__), m_joystick(0) -{ -} - -void ti99_twin_joystick::device_start(void) -{ - save_item(NAME(m_joystick)); -} - -/* - Return the status of the joysticks. - - answer = |0|0|0|U|D|R|L|B| -*/ -uint8_t ti99_twin_joystick::read_dev() -{ - uint8_t value; - if (m_joystick==1) value = ioport("JOY1")->read(); - else - { - if (m_joystick==2) value = ioport("JOY2")->read(); - else value = 0xff; - } - if (VERBOSE>6) LOG("ti99_twin_joystick: joy%d = %02x\n", m_joystick, value); - return value; -} - -void ti99_twin_joystick::write_dev(uint8_t data) -{ - if (VERBOSE>7) LOG("ti99_twin_joystick: Select joystick %d\n", data); - m_joystick = data & 0x03; -} - -ioport_constructor ti99_twin_joystick::device_input_ports() const -{ - return INPUT_PORTS_NAME( joysticks ); -} - -const device_type TI99_JOYSTICK = device_creator; diff --git a/src/devices/bus/ti99x/handset.h b/src/devices/bus/ti99x/handset.h deleted file mode 100644 index 7156ddea6d4..00000000000 --- a/src/devices/bus/ti99x/handset.h +++ /dev/null @@ -1,84 +0,0 @@ -// license:LGPL-2.1+ -// copyright-holders:Michael Zapf -/**************************************************************************** - - TI-99/4 handset - See handset.c for documentation. - - This file also contains the implementation of the twin joystick; - actually, no big deal, as it contains no logic but only switches. - - Michael Zapf, October 2010 - February 2012: Rewritten as class - June 2012: Added joystick - -*****************************************************************************/ - -#ifndef __HANDSET__ -#define __HANDSET__ - -#include "joyport.h" - -#define MAX_HANDSETS 4 - -extern const device_type HANDSET; - -class ti99_handset_device : public joyport_attached_device -{ -public: - ti99_handset_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - - uint8_t read_dev() override; - void write_dev(uint8_t data) override; - - void pulse_clock() override; - -protected: - virtual void device_start(void) override; - virtual void device_reset(void) override; - virtual ioport_constructor device_input_ports() const override; - - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; - -private: - void do_task(); - void post_message(int message); - bool poll_keyboard(int num); - bool poll_joystick(int num); - void set_acknowledge(int data); - - int m_ack; - bool m_clock_high; - int m_buf; - int m_buflen; - uint8_t previous_joy[MAX_HANDSETS]; - uint8_t previous_key[MAX_HANDSETS]; - - emu_timer *m_delay_timer; -}; - -/****************************************************************************/ - -extern const device_type TI99_JOYSTICK; - -class ti99_twin_joystick : public joyport_attached_device -{ -public: - ti99_twin_joystick(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual void device_start(void) override; - - uint8_t read_dev() override; - void write_dev(uint8_t data) override; - -protected: - virtual ioport_constructor device_input_ports() const override; - -private: - // Which joystick is selected? - // In reality this is no latch but GND is put on one of the selector lines - // and then routed back to the port via the joystick - int m_joystick; -}; - - -#endif diff --git a/src/devices/bus/ti99x/joyport.cpp b/src/devices/bus/ti99x/joyport.cpp deleted file mode 100644 index ea7d3e18100..00000000000 --- a/src/devices/bus/ti99x/joyport.cpp +++ /dev/null @@ -1,116 +0,0 @@ -// license:LGPL-2.1+ -// copyright-holders:Michael Zapf -/**************************************************************************** - - Joystick port - - Now explicitly implemented as a slot device - A joystick port allows for plugging in digital devices like joysticks or - a Mechatronics mouse, and the TI-99/4 (prototype) also offered IR handsets - driven over this port. The 99/4 had an additional line for triggering an - interrupt. - - +-----------+ - | 1 2 3 4 5 | - \ 6 7 8 9 / - +-------+ - - Getting the joystick directions and button is pretty simple: The TMS9901 in - the TI console lowers the select line, and the joystick shorts a line for - the respective action. The lines go back to the inputs of the TMS9901. - - pin 1 nc - 2 select joystick 2 - 3 up - 4 button - 5 left - 6 nc - 7 select joystick 1 - 8 down - 9 right - - Michael Zapf - - June 2012 - -*****************************************************************************/ - -#include "emu.h" -#include "joyport.h" -#include "handset.h" -#include "mecmouse.h" - -joyport_device::joyport_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, JOYPORT, "Joystick port", tag, owner, clock, "ti99_joyport", __FILE__), - device_slot_interface(mconfig, *this), - m_interrupt(*this), m_connected(nullptr) -{ -} - -/* - Reads a value from the port. -*/ -uint8_t joyport_device::read_port() -{ - return m_connected->read_dev(); -} - -/* - This is used to select the device at the port. The device should keep this - value until read() is called. -*/ -void joyport_device::write_port(int data) -{ - m_connected->write_dev(data); -} - -/* - This is only used for the handset device of the TI-99/4. It is driven by the VDP interrupt. -*/ -void joyport_device::pulse_clock() -{ - m_connected->pulse_clock(); -} - -/* - Propagate the interrupt to the defined target. Only used for the handset - at the prototype 99/4. -*/ -WRITE_LINE_MEMBER( joyport_device::set_interrupt ) -{ - m_interrupt(state); -} - -void joyport_device::device_start() -{ - m_interrupt.resolve(); -} - -void joyport_device::device_config_complete() -{ - m_connected = static_cast(subdevices().first()); -} - -/*****************************************************************************/ - -void joyport_attached_device::device_config_complete() -{ - m_joyport = static_cast(owner()); -} - -SLOT_INTERFACE_START( joystick_port ) - SLOT_INTERFACE("twinjoy", TI99_JOYSTICK) - SLOT_INTERFACE("mecmouse", MECMOUSE) -SLOT_INTERFACE_END - -SLOT_INTERFACE_START( joystick_port_gen ) - SLOT_INTERFACE("twinjoy", TI99_JOYSTICK) -SLOT_INTERFACE_END - -SLOT_INTERFACE_START( joystick_port_994 ) - SLOT_INTERFACE("twinjoy", TI99_JOYSTICK) - SLOT_INTERFACE("mecmouse", MECMOUSE) - SLOT_INTERFACE("handset", HANDSET) -SLOT_INTERFACE_END - -const device_type JOYPORT = device_creator; diff --git a/src/devices/bus/ti99x/joyport.h b/src/devices/bus/ti99x/joyport.h deleted file mode 100644 index aebaeafb62f..00000000000 --- a/src/devices/bus/ti99x/joyport.h +++ /dev/null @@ -1,89 +0,0 @@ -// license:LGPL-2.1+ -// copyright-holders:Michael Zapf -/**************************************************************************** - - Joystick port - - Now explicitly implemented as a slot device - A joystick port allows for plugging in a single or twin joystick, or - a Mechatronics mouse. - - The TI-99/4 also offers an infrared handset, connected to this port. For - this reason we also need an interrupt line. - - Michael Zapf - - June 2012 - -*****************************************************************************/ - -#ifndef __JOYPORT__ -#define __JOYPORT__ - - -extern const device_type JOYPORT; - -class joyport_device; - -/******************************************************************** - Common parent class of all devices attached to the joystick port -********************************************************************/ -class joyport_attached_device : public device_t -{ -public: - joyport_attached_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), m_joyport(nullptr) -{ } - - virtual uint8_t read_dev() =0; - virtual void write_dev(uint8_t data) =0; - virtual void pulse_clock() { }; - -protected: - virtual void device_config_complete() override; - joyport_device* m_joyport; -}; - -/******************************************************************** - Joystick port -********************************************************************/ -class joyport_device : public device_t, public device_slot_interface -{ -public: - joyport_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - uint8_t read_port(); - void write_port(int data); - void set_interrupt(int state); - void pulse_clock(); - - template static devcb_base &static_set_int_callback(device_t &device, _Object object) { return downcast(device).m_interrupt.set_callback(object); } - -protected: - void device_start() override; - void device_config_complete() override; - -private: - devcb_write_line m_interrupt; - joyport_attached_device* m_connected; -}; - -SLOT_INTERFACE_EXTERN(joystick_port); -SLOT_INTERFACE_EXTERN(joystick_port_994); -SLOT_INTERFACE_EXTERN(joystick_port_gen); - -#define MCFG_JOYPORT_INT_HANDLER( _intcallb ) \ - devcb = &joyport_device::static_set_int_callback( *device, DEVCB_##_intcallb ); - -#define MCFG_GENEVE_JOYPORT_ADD( _tag ) \ - MCFG_DEVICE_ADD(_tag, JOYPORT, 0) \ - MCFG_DEVICE_SLOT_INTERFACE(joystick_port_gen, "twinjoy", false) - -#define MCFG_TI_JOYPORT4A_ADD( _tag ) \ - MCFG_DEVICE_ADD(_tag, JOYPORT, 0) \ - MCFG_DEVICE_SLOT_INTERFACE(joystick_port, "twinjoy", false) - -#define MCFG_TI_JOYPORT4_ADD( _tag ) \ - MCFG_DEVICE_ADD(_tag, JOYPORT, 0) \ - MCFG_DEVICE_SLOT_INTERFACE(joystick_port_994, "twinjoy", false) - -#endif /* __JOYPORT__ */ diff --git a/src/devices/bus/ti99x/mecmouse.cpp b/src/devices/bus/ti99x/mecmouse.cpp deleted file mode 100644 index 52b49721e19..00000000000 --- a/src/devices/bus/ti99x/mecmouse.cpp +++ /dev/null @@ -1,207 +0,0 @@ -// license:LGPL-2.1+ -// copyright-holders:Michael Zapf -/**************************************************************************** - - TI-99 Mechatronic mouse with adapter - - The Mechatronic mouse is connected to the joystick port and occupies - both joystick select lines and the switch lines. From these five - lines, left/right/down are used for the motion (i.e. 3 motion steps - for positive and four for negative motion and one for rest), - the fire line is used for the secondary mouse button, and the up - line is used for the primary button. - The mouse motion is delivered by the same lines for both directions; - this requires swapping the axes. According to the source code of - the accompanying mouse driver, the readout of the current axis is - done by selecting joystick 1, then joystick 2. The axis swapping is - achieved by selecting stick 1 again. When selecting stick 2, the - second axis is seen on the input lines. - Interrupting this sequence will lead to swapped axes. This is - prevented by resetting the toggle when the mouse is deselected - (neither 1 nor 2 are selected). - - The joystick lines are selected as follows: - TI-99/4: Stick 1: P4=1, P3=0, P2=1 (5) - Stick 2: P4=1, P3=1, P2=0 (6) - - TI-99/4A: Stick 1: P4=1, P3=1, P2=0 (6) - Stick 2: P4=1, P3=1, P2=1 (7) - - TI-99/8: Stick 1: P3=1, P2=1, P1=1, P0=0 (14) - Stick 2: P3=1, P2=1, P1=1, P0=1 (15) - - Geneve: n/a, has own mouse handling via v9938 - - As we can only deliver at max 3 steps positive and 4 steps negative, - we split the delta so that subsequent queries add up to the actual - delta. That is, one delta of +10 yields a 3+3+3+1. - - mecmouse_x holds the current delta to be counted down for x - (y accordingly) - - mecmouse_x_buf is the current step count reported to CRU - - Michael Zapf, 2008-01-22 - - 2010-10-22 Rewriten as device - February 2012: Rewritten as class - -*****************************************************************************/ - -#include "emu.h" -#include "mecmouse.h" - -#define POLL_TIMER 1 - -mecmouse_device::mecmouse_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : joyport_attached_device(mconfig, MECMOUSE, "Mechatronics Mouse", tag, owner, clock, "mecmouse", __FILE__), m_last_select(0), m_read_y_axis(false), m_x(0), m_y(0), m_x_buf(0), m_y_buf(0), m_last_mx(0), m_last_my(0), m_poll_timer(nullptr) -{ -} - - -uint8_t mecmouse_device::read_dev() -{ - int answer; - int buttons = ioport("MOUSE0")->read() & 3; - - answer = (m_read_y_axis? m_y_buf : m_x_buf) << 1; - - if ((buttons & 1)==0) - /* action button */ - answer |= 0x01; - if ((buttons & 2)==0) - /* home button */ - answer |= 0x10; - - // answer: |0|0|0|B2|V|V|V|B1| - - return answer; -} - -/* - Used to select lines. data = 0x01 (Joy1), 0x02 (Joy2) -*/ -void mecmouse_device::write_dev(uint8_t data) -{ - if (data == 0x02) { - if (m_last_select == 0x01) { - if (!m_read_y_axis) - { - /* Sample x motion. */ - if (m_x < -4) - m_x_buf = -4; - else if (m_x > 3) - m_x_buf = 3; - else - m_x_buf = m_x; - m_x -= m_x_buf; - m_x_buf = (m_x_buf-1) & 7; - } - else - { - /* Sample y motion. */ - if (m_y < -4) - m_y_buf = -4; - else if (m_y > 3) - m_y_buf = 3; - else - m_y_buf = m_y; - m_y -= m_y_buf; - m_y_buf = (m_y_buf-1) & 7; - } - } - m_last_select = data; - } - else if (data == 0x01) - { - if (m_last_select == 0x02) - { - /* Swap the axes. */ - m_read_y_axis = !m_read_y_axis; - } - m_last_select = data; - } - else - { - // Reset the axis toggle when the mouse is deselected - m_read_y_axis = false; - } -} - -void mecmouse_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) -{ - // Poll the movement - int new_mx, new_my; - int delta_x, delta_y; - - new_mx = ioport("MOUSEX")->read(); - new_my = ioport("MOUSEY")->read(); - - // compute x delta - delta_x = new_mx - m_last_mx; - - // Prevent unplausible values at startup. - if (delta_x > 10000 || delta_x<-10000) delta_x = 0; - - m_last_mx = new_mx; - - // compute y delta - delta_y = new_my - m_last_my; - - if (delta_y > 10000 || delta_y<-10000) delta_y = 0; - - m_last_my = new_my; - - // update state - m_x += delta_x; - m_y += delta_y; -} - -void mecmouse_device::device_start(void) -{ - m_poll_timer = timer_alloc(POLL_TIMER); - // The poll time cannot depend on the console settings, since the TI-99/4A - // has no clock line on the joystick port. The rate is not mentioned in - // the specs; however, if it is too low, the mouse pointer will do jumps - m_poll_timer->adjust(attotime::from_hz(100), 0, attotime::from_hz(100)); - - save_item(NAME(m_last_select)); - save_item(NAME(m_read_y_axis)); - save_item(NAME(m_x)); - save_item(NAME(m_y)); - save_item(NAME(m_x_buf)); - save_item(NAME(m_y_buf)); - save_item(NAME(m_last_mx)); - save_item(NAME(m_last_my)); -} - -void mecmouse_device::device_reset(void) -{ - m_poll_timer->enable(true); - m_last_select = 0; - m_read_y_axis = false; - m_x = 0; - m_y = 0; - m_last_mx = 0; - m_last_my = 0; -} - -INPUT_PORTS_START( mecmouse ) - /* 3 ports for mouse */ - PORT_START("MOUSEX") /* Mouse - X AXIS */ - PORT_BIT( 0xffff, 0x00, IPT_MOUSE_X) PORT_SENSITIVITY(50) PORT_KEYDELTA(0) PORT_PLAYER(1) - - PORT_START("MOUSEY") /* Mouse - Y AXIS */ - PORT_BIT( 0xffff, 0x00, IPT_MOUSE_Y) PORT_SENSITIVITY(50) PORT_KEYDELTA(0) PORT_PLAYER(1) - - PORT_START("MOUSE0") /* Mouse - buttons */ - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_NAME("Mouse Button 1") PORT_PLAYER(1) - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_NAME("Mouse Button 2") PORT_PLAYER(1) -INPUT_PORTS_END - -ioport_constructor mecmouse_device::device_input_ports() const -{ - return INPUT_PORTS_NAME( mecmouse ); -} - -const device_type MECMOUSE = device_creator; diff --git a/src/devices/bus/ti99x/mecmouse.h b/src/devices/bus/ti99x/mecmouse.h deleted file mode 100644 index db33baae305..00000000000 --- a/src/devices/bus/ti99x/mecmouse.h +++ /dev/null @@ -1,47 +0,0 @@ -// license:LGPL-2.1+ -// copyright-holders:Michael Zapf -/**************************************************************************** - - TI-99 Mechatronic mouse with adapter - See mecmouse.c for documentation - - Michael Zapf - October 2010 - January 2012: rewritten as class - -*****************************************************************************/ - -#ifndef __MECMOUSE__ -#define __MECMOUSE__ - -#include "joyport.h" - -extern const device_type MECMOUSE; - -class mecmouse_device : public joyport_attached_device -{ -public: - mecmouse_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - - uint8_t read_dev() override; - void write_dev(uint8_t data) override; - -protected: - virtual void device_start(void) override; - virtual void device_reset(void) override; - virtual ioport_constructor device_input_ports() const override; - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; - -private: - int m_last_select; - bool m_read_y_axis; - int m_x; - int m_y; - int m_x_buf; - int m_y_buf; - int m_last_mx; - int m_last_my; - - emu_timer *m_poll_timer; -}; -#endif diff --git a/src/devices/bus/ti99x/ti99defs.cpp b/src/devices/bus/ti99x/ti99defs.cpp index f65a95b8304..b1928908ae8 100644 --- a/src/devices/bus/ti99x/ti99defs.cpp +++ b/src/devices/bus/ti99x/ti99defs.cpp @@ -3,10 +3,10 @@ #include "emu.h" #include "ti99defs.h" -const device_type EVPC_CONN = device_creator; +DEFINE_DEVICE_TYPE(EVPC_CONN, evpc_clock_connector, "ti99_evpc_clock", "EVPC clock connector") evpc_clock_connector::evpc_clock_connector(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, EVPC_CONN, "EVPC clock connector", tag, owner, clock, "ti99_evpc_clock", __FILE__) + : device_t(mconfig, EVPC_CONN, tag, owner, clock) , m_vdpint(*this) { } diff --git a/src/devices/bus/ti99x/ti99defs.h b/src/devices/bus/ti99x/ti99defs.h index f8f182a728c..4f25b6ca606 100644 --- a/src/devices/bus/ti99x/ti99defs.h +++ b/src/devices/bus/ti99x/ti99defs.h @@ -9,8 +9,10 @@ *****************************************************************************/ -#ifndef __TI99DEFS__ -#define __TI99DEFS__ +#ifndef MAME_BUS_TI99X_TI99DEFS_H +#define MAME_BUS_TI99X_TI99DEFS_H + +#pragma once // TI-99/4(A) #define TISOUNDCHIP_TAG "soundchip" @@ -117,22 +119,24 @@ */ class bus8z_device : public device_t { +protected: + bus8z_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) { } public: - bus8z_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source) { } - virtual DECLARE_READ8Z_MEMBER(readz) =0; - virtual DECLARE_WRITE8_MEMBER(write) =0; - virtual DECLARE_SETADDRESS_DBIN_MEMBER( setaddress_dbin ) { }; + virtual DECLARE_READ8Z_MEMBER(readz) = 0; + virtual DECLARE_WRITE8_MEMBER(write) = 0; + virtual DECLARE_SETADDRESS_DBIN_MEMBER( setaddress_dbin ) { } }; class bus16z_device : device_t { +protected: + bus16z_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) { } public: - bus16z_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source) { } - virtual DECLARE_READ16Z_MEMBER(read16z) =0; - virtual DECLARE_WRITE16_MEMBER(write16) =0; - virtual DECLARE_SETADDRESS_DBIN_MEMBER( setaddress_dbin ) { }; + virtual DECLARE_READ16Z_MEMBER(read16z) = 0; + virtual DECLARE_WRITE16_MEMBER(write16) = 0; + virtual DECLARE_SETADDRESS_DBIN_MEMBER( setaddress_dbin ) { } }; /**************************************************************************** @@ -152,21 +156,22 @@ public: exposing the console class to the external class. ****************************************************************************/ -class ti99_4x_state; -extern const device_type EVPC_CONN; +DECLARE_DEVICE_TYPE(EVPC_CONN, evpc_clock_connector) class evpc_clock_connector : public device_t { public: evpc_clock_connector(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &static_set_vdpint_callback(device_t &device, _Object object) + template static devcb_base &static_set_vdpint_callback(device_t &device, Object &&cb) { - return downcast(device).m_vdpint.set_callback(object); + return downcast(device).m_vdpint.set_callback(std::forward(cb)); } WRITE_LINE_MEMBER( vclock_line ) { m_vdpint(state); } + +protected: void device_start() override; private: @@ -197,4 +202,4 @@ enum GENEVE_PFM512A }; -#endif +#endif // MAME_BUS_TI99X_TI99DEFS_H diff --git a/src/devices/bus/tiki100/8088.cpp b/src/devices/bus/tiki100/8088.cpp index 45a0c116433..1dde63a9ed0 100644 --- a/src/devices/bus/tiki100/8088.cpp +++ b/src/devices/bus/tiki100/8088.cpp @@ -23,7 +23,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type TIKI100_8088 = device_creator; +DEFINE_DEVICE_TYPE(TIKI100_8088, tiki100_8088_device, "tiki100_8088", "TIKI-100 8/16") //------------------------------------------------- @@ -43,20 +43,20 @@ ROM_END // rom_region - device-specific ROM region //------------------------------------------------- -const tiny_rom_entry *tiki100_8088_t::device_rom_region() const +const tiny_rom_entry *tiki100_8088_device::device_rom_region() const { return ROM_NAME( tiki100_8088 ); } -static ADDRESS_MAP_START( i8088_mem, AS_PROGRAM, 8, tiki100_8088_t ) +static ADDRESS_MAP_START( i8088_mem, AS_PROGRAM, 8, tiki100_8088_device ) AM_RANGE(0x00000, 0xbffff) AM_RAM - AM_RANGE(0xc0000, 0xcffff) AM_DEVREADWRITE(":" TIKI100_BUS_TAG, tiki100_bus_t, exin_mrq_r, exin_mrq_w) + AM_RANGE(0xc0000, 0xcffff) AM_DEVREADWRITE(":" TIKI100_BUS_TAG, tiki100_bus_device, exin_mrq_r, exin_mrq_w) AM_RANGE(0xff000, 0xfffff) AM_ROM AM_REGION(I8088_TAG, 0) ADDRESS_MAP_END -static ADDRESS_MAP_START( i8088_io, AS_IO, 8, tiki100_8088_t ) +static ADDRESS_MAP_START( i8088_io, AS_IO, 8, tiki100_8088_device ) AM_RANGE(0x7f, 0x7f) AM_READWRITE(read, write) ADDRESS_MAP_END @@ -77,7 +77,7 @@ MACHINE_CONFIG_END // machine configurations //------------------------------------------------- -machine_config_constructor tiki100_8088_t::device_mconfig_additions() const +machine_config_constructor tiki100_8088_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( tiki100_8088 ); } @@ -89,11 +89,11 @@ machine_config_constructor tiki100_8088_t::device_mconfig_additions() const //************************************************************************** //------------------------------------------------- -// tiki100_8088_t - constructor +// tiki100_8088_device - constructor //------------------------------------------------- -tiki100_8088_t::tiki100_8088_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, TIKI100_8088, "TIKI-100 8/16", tag, owner, clock, "tiki100_8088", __FILE__), +tiki100_8088_device::tiki100_8088_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, TIKI100_8088, tag, owner, clock), device_tiki100bus_card_interface(mconfig, *this), m_maincpu(*this, I8088_TAG), m_data(0) @@ -105,7 +105,7 @@ tiki100_8088_t::tiki100_8088_t(const machine_config &mconfig, const char *tag, d // device_start - device-specific startup //------------------------------------------------- -void tiki100_8088_t::device_start() +void tiki100_8088_device::device_start() { } @@ -114,7 +114,7 @@ void tiki100_8088_t::device_start() // device_reset - device-specific reset //------------------------------------------------- -void tiki100_8088_t::device_reset() +void tiki100_8088_device::device_reset() { m_maincpu->reset(); @@ -126,7 +126,7 @@ void tiki100_8088_t::device_reset() // tiki100bus_iorq_r - I/O read //------------------------------------------------- -uint8_t tiki100_8088_t::iorq_r(address_space &space, offs_t offset, uint8_t data) +uint8_t tiki100_8088_device::iorq_r(address_space &space, offs_t offset, uint8_t data) { if ((offset & 0xff) == 0x7f) { @@ -141,7 +141,7 @@ uint8_t tiki100_8088_t::iorq_r(address_space &space, offs_t offset, uint8_t data // tiki100bus_iorq_w - I/O write //------------------------------------------------- -void tiki100_8088_t::iorq_w(address_space &space, offs_t offset, uint8_t data) +void tiki100_8088_device::iorq_w(address_space &space, offs_t offset, uint8_t data) { if ((offset & 0xff) == 0x7f) { @@ -159,7 +159,7 @@ void tiki100_8088_t::iorq_w(address_space &space, offs_t offset, uint8_t data) // read - //------------------------------------------------- -READ8_MEMBER( tiki100_8088_t::read ) +READ8_MEMBER( tiki100_8088_device::read ) { return m_busak << 4 | m_data; } @@ -169,7 +169,7 @@ READ8_MEMBER( tiki100_8088_t::read ) // write - //------------------------------------------------- -WRITE8_MEMBER( tiki100_8088_t::write ) +WRITE8_MEMBER( tiki100_8088_device::write ) { m_data = data & 0x0f; diff --git a/src/devices/bus/tiki100/8088.h b/src/devices/bus/tiki100/8088.h index e64945ce6e7..b2a131eb113 100644 --- a/src/devices/bus/tiki100/8088.h +++ b/src/devices/bus/tiki100/8088.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_TIKI100_8088_H +#define MAME_BUS_TIKI100_8088_H -#ifndef __TIKI100_8088__ -#define __TIKI100_8088__ +#pragma once #include "bus/tiki100/exp.h" #include "cpu/i86/i86.h" @@ -20,14 +20,14 @@ // TYPE DEFINITIONS //************************************************************************** -// ======================> tiki100_8088_t +// ======================> tiki100_8088_device -class tiki100_8088_t : public device_t, +class tiki100_8088_device : public device_t, public device_tiki100bus_card_interface { public: // construction/destruction - tiki100_8088_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + tiki100_8088_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual const tiny_rom_entry *device_rom_region() const override; @@ -53,7 +53,6 @@ private: // device type definition -extern const device_type TIKI100_8088; - +DECLARE_DEVICE_TYPE(TIKI100_8088, tiki100_8088_device) -#endif +#endif // MAME_BUS_TIKI100_8088_H diff --git a/src/devices/bus/tiki100/exp.cpp b/src/devices/bus/tiki100/exp.cpp index 95063b2d4cf..d0bc91bc8bc 100644 --- a/src/devices/bus/tiki100/exp.cpp +++ b/src/devices/bus/tiki100/exp.cpp @@ -14,8 +14,8 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type TIKI100_BUS = device_creator; -const device_type TIKI100_BUS_SLOT = device_creator; +DEFINE_DEVICE_TYPE(TIKI100_BUS, tiki100_bus_device, "tiki100bus", "TIKI-100 expansion bus") +DEFINE_DEVICE_TYPE(TIKI100_BUS_SLOT, tiki100_bus_slot_device, "tiki100bus_slot", "TIKI-100 expansion bus slot") @@ -24,11 +24,11 @@ const device_type TIKI100_BUS_SLOT = device_creator; //************************************************************************** //------------------------------------------------- -// tiki100_bus_slot_t - constructor +// tiki100_bus_slot_device - constructor //------------------------------------------------- -tiki100_bus_slot_t::tiki100_bus_slot_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, TIKI100_BUS_SLOT, "TIKI-100 expansion bus slot", tag, owner, clock, "tiki100bus_slot", __FILE__), +tiki100_bus_slot_device::tiki100_bus_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, TIKI100_BUS_SLOT, tag, owner, clock), device_slot_interface(mconfig, *this), device_z80daisy_interface(mconfig, *this), m_bus(nullptr), @@ -41,9 +41,9 @@ tiki100_bus_slot_t::tiki100_bus_slot_t(const machine_config &mconfig, const char // device_start - device-specific startup //------------------------------------------------- -void tiki100_bus_slot_t::device_start() +void tiki100_bus_slot_device::device_start() { - m_bus = machine().device(TIKI100_BUS_TAG); + m_bus = machine().device(TIKI100_BUS_TAG); device_tiki100bus_card_interface *dev = dynamic_cast(get_card_device()); if (dev) { @@ -54,11 +54,11 @@ void tiki100_bus_slot_t::device_start() //------------------------------------------------- -// tiki100_bus_t - constructor +// tiki100_bus_device - constructor //------------------------------------------------- -tiki100_bus_t::tiki100_bus_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, TIKI100_BUS, "TIKI-100 expansion bus", tag, owner, clock, "tiki100bus", __FILE__), +tiki100_bus_device::tiki100_bus_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, TIKI100_BUS, tag, owner, clock), m_irq_cb(*this), m_nmi_cb(*this), m_busrq_cb(*this), @@ -72,7 +72,7 @@ tiki100_bus_t::tiki100_bus_t(const machine_config &mconfig, const char *tag, dev // device_start - device-specific startup //------------------------------------------------- -void tiki100_bus_t::device_start() +void tiki100_bus_device::device_start() { // resolve callbacks m_irq_cb.resolve_safe(); @@ -87,7 +87,7 @@ void tiki100_bus_t::device_start() // add_card - add card //------------------------------------------------- -void tiki100_bus_t::add_card(device_tiki100bus_card_interface *card) +void tiki100_bus_device::add_card(device_tiki100bus_card_interface *card) { m_device_list.append(*card); @@ -99,7 +99,7 @@ void tiki100_bus_t::add_card(device_tiki100bus_card_interface *card) // mrq_r - memory read //------------------------------------------------- -uint8_t tiki100_bus_t::mrq_r(address_space &space, offs_t offset, uint8_t data, bool &mdis) +uint8_t tiki100_bus_device::mrq_r(address_space &space, offs_t offset, uint8_t data, bool &mdis) { device_tiki100bus_card_interface *entry = m_device_list.first(); @@ -117,7 +117,7 @@ uint8_t tiki100_bus_t::mrq_r(address_space &space, offs_t offset, uint8_t data, // mrq_w - memory write //------------------------------------------------- -WRITE8_MEMBER( tiki100_bus_t::mrq_w ) +WRITE8_MEMBER( tiki100_bus_device::mrq_w ) { device_tiki100bus_card_interface *entry = m_device_list.first(); @@ -133,7 +133,7 @@ WRITE8_MEMBER( tiki100_bus_t::mrq_w ) // iorq_r - I/O read //------------------------------------------------- -uint8_t tiki100_bus_t::iorq_r(address_space &space, offs_t offset, uint8_t data) +uint8_t tiki100_bus_device::iorq_r(address_space &space, offs_t offset, uint8_t data) { device_tiki100bus_card_interface *entry = m_device_list.first(); @@ -151,7 +151,7 @@ uint8_t tiki100_bus_t::iorq_r(address_space &space, offs_t offset, uint8_t data) // iorq_w - I/O write //------------------------------------------------- -WRITE8_MEMBER( tiki100_bus_t::iorq_w ) +WRITE8_MEMBER( tiki100_bus_device::iorq_w ) { device_tiki100bus_card_interface *entry = m_device_list.first(); @@ -167,7 +167,7 @@ WRITE8_MEMBER( tiki100_bus_t::iorq_w ) // busak_w - bus acknowledge write //------------------------------------------------- -WRITE_LINE_MEMBER( tiki100_bus_t::busak_w ) +WRITE_LINE_MEMBER( tiki100_bus_device::busak_w ) { device_tiki100bus_card_interface *entry = m_device_list.first(); @@ -192,7 +192,7 @@ device_tiki100bus_card_interface::device_tiki100bus_card_interface(const machine device_slot_card_interface(mconfig, device), m_bus(nullptr), m_busak(CLEAR_LINE), m_next(nullptr) { - m_slot = dynamic_cast(device.owner()); + m_slot = dynamic_cast(device.owner()); } diff --git a/src/devices/bus/tiki100/exp.h b/src/devices/bus/tiki100/exp.h index f97d46faee4..9ae56520527 100644 --- a/src/devices/bus/tiki100/exp.h +++ b/src/devices/bus/tiki100/exp.h @@ -9,10 +9,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_TIKI100_EXP_H +#define MAME_BUS_TIKI100_EXP_H -#ifndef __TIKI100_BUS__ -#define __TIKI100_BUS__ +#pragma once #include "cpu/z80/z80daisy.h" @@ -39,19 +39,19 @@ #define MCFG_TIKI100_BUS_IRQ_CALLBACK(_write) \ - devcb = &tiki100_bus_t::set_irq_wr_callback(*device, DEVCB_##_write); + devcb = &tiki100_bus_device::set_irq_wr_callback(*device, DEVCB_##_write); #define MCFG_TIKI100_BUS_NMI_CALLBACK(_write) \ - devcb = &tiki100_bus_t::set_nmi_wr_callback(*device, DEVCB_##_write); + devcb = &tiki100_bus_device::set_nmi_wr_callback(*device, DEVCB_##_write); #define MCFG_TIKI100_BUS_BUSRQ_CALLBACK(_write) \ - devcb = &tiki100_bus_t::set_busrq_wr_callback(*device, DEVCB_##_write); + devcb = &tiki100_bus_device::set_busrq_wr_callback(*device, DEVCB_##_write); #define MCFG_TIKI100_BUS_IN_MREQ_CALLBACK(_read) \ - devcb = &tiki100_bus_t::set_mrq_rd_callback(*device, DEVCB_##_read); + devcb = &tiki100_bus_device::set_mrq_rd_callback(*device, DEVCB_##_read); #define MCFG_TIKI100_BUS_OUT_MREQ_CALLBACK(_write) \ - devcb = &tiki100_bus_t::set_mrq_wr_callback(*device, DEVCB_##_write); + devcb = &tiki100_bus_device::set_mrq_wr_callback(*device, DEVCB_##_write); @@ -59,57 +59,59 @@ // TYPE DEFINITIONS //************************************************************************** -// ======================> tiki100_bus_slot_t +// ======================> tiki100_bus_slot_device -class tiki100_bus_t; -class tiki100_bus_slot_t; +class tiki100_bus_device; +class tiki100_bus_slot_device; // ======================> device_tiki100bus_card_interface class device_tiki100bus_card_interface : public device_slot_card_interface { - friend class tiki100_bus_t; + friend class tiki100_bus_device; + template friend class simple_list; public: - // construction/destruction - device_tiki100bus_card_interface(const machine_config &mconfig, device_t &device); - virtual ~device_tiki100bus_card_interface() { } - device_tiki100bus_card_interface *next() const { return m_next; } // memory access - virtual uint8_t mrq_r(address_space &space, offs_t offset, uint8_t data, bool &mdis) { mdis = 1; return data; }; - virtual void mrq_w(address_space &space, offs_t offset, uint8_t data) { }; + virtual uint8_t mrq_r(address_space &space, offs_t offset, uint8_t data, bool &mdis) { mdis = 1; return data; } + virtual void mrq_w(address_space &space, offs_t offset, uint8_t data) { } // I/O access - virtual uint8_t iorq_r(address_space &space, offs_t offset, uint8_t data) { return data; }; - virtual void iorq_w(address_space &space, offs_t offset, uint8_t data) { }; + virtual uint8_t iorq_r(address_space &space, offs_t offset, uint8_t data) { return data; } + virtual void iorq_w(address_space &space, offs_t offset, uint8_t data) { } - virtual void busak_w(int state) { m_busak = state; }; + virtual void busak_w(int state) { m_busak = state; } // Z80 daisy chain virtual int z80daisy_irq_state() { return 0; } virtual int z80daisy_irq_ack() { return 0; } virtual void z80daisy_irq_reti() { } - tiki100_bus_t *m_bus; - tiki100_bus_slot_t *m_slot; +protected: + // construction/destruction + device_tiki100bus_card_interface(const machine_config &mconfig, device_t &device); + + tiki100_bus_device *m_bus; + tiki100_bus_slot_device *m_slot; int m_busak; +private: device_tiki100bus_card_interface *m_next; }; -// ======================> tiki100_bus_slot_t +// ======================> tiki100_bus_slot_device -class tiki100_bus_slot_t : public device_t, +class tiki100_bus_slot_device : public device_t, public device_slot_interface, public device_z80daisy_interface { public: // construction/destruction - tiki100_bus_slot_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + tiki100_bus_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // device-level overrides virtual void device_start() override; @@ -122,29 +124,29 @@ protected: private: // configuration - tiki100_bus_t *m_bus; + tiki100_bus_device *m_bus; device_tiki100bus_card_interface *m_card; }; // device type definition -extern const device_type TIKI100_BUS_SLOT; +DECLARE_DEVICE_TYPE(TIKI100_BUS_SLOT, tiki100_bus_slot_device) -// ======================> tiki100_bus_t +// ======================> tiki100_bus_device -class tiki100_bus_t : public device_t +class tiki100_bus_device : public device_t { public: // construction/destruction - tiki100_bus_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~tiki100_bus_t() { m_device_list.detach_all(); } + tiki100_bus_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + ~tiki100_bus_device() { m_device_list.detach_all(); } - template static devcb_base &set_irq_wr_callback(device_t &device, _Object object) { return downcast(device).m_irq_cb.set_callback(object); } - template static devcb_base &set_nmi_wr_callback(device_t &device, _Object object) { return downcast(device).m_nmi_cb.set_callback(object); } - template static devcb_base &set_busrq_wr_callback(device_t &device, _Object object) { return downcast(device).m_busrq_cb.set_callback(object); } - template static devcb_base &set_mrq_rd_callback(device_t &device, _Object object) { return downcast(device).m_in_mrq_cb.set_callback(object); } - template static devcb_base &set_mrq_wr_callback(device_t &device, _Object object) { return downcast(device).m_out_mrq_cb.set_callback(object); } + template static devcb_base &set_irq_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_irq_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_nmi_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_nmi_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_busrq_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_busrq_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_mrq_rd_callback(device_t &device, Object &&cb) { return downcast(device).m_in_mrq_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_mrq_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_out_mrq_cb.set_callback(std::forward(cb)); } void add_card(device_tiki100bus_card_interface *card); @@ -180,13 +182,10 @@ private: // device type definition -extern const device_type TIKI100_BUS; - +DECLARE_DEVICE_TYPE(TIKI100_BUS, tiki100_bus_device) SLOT_INTERFACE_EXTERN( tiki100_cards ); - - -#endif +#endif // MAME_BUS_TIKI100_EXP_H diff --git a/src/devices/bus/tiki100/hdc.cpp b/src/devices/bus/tiki100/hdc.cpp index a94856da571..3881f280235 100644 --- a/src/devices/bus/tiki100/hdc.cpp +++ b/src/devices/bus/tiki100/hdc.cpp @@ -23,7 +23,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type TIKI100_HDC = device_creator; +DEFINE_DEVICE_TYPE(TIKI100_HDC, tiki100_hdc_device, "tiki100_hdc", "TIKI-100 Winchester controller") //------------------------------------------------- @@ -49,7 +49,7 @@ MACHINE_CONFIG_END // machine configurations //------------------------------------------------- -machine_config_constructor tiki100_hdc_t::device_mconfig_additions() const +machine_config_constructor tiki100_hdc_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( tiki100_hdc ); } @@ -61,11 +61,11 @@ machine_config_constructor tiki100_hdc_t::device_mconfig_additions() const //************************************************************************** //------------------------------------------------- -// tiki100_hdc_t - constructor +// tiki100_hdc_device - constructor //------------------------------------------------- -tiki100_hdc_t::tiki100_hdc_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, TIKI100_HDC, "TIKI-100 Winchester controller", tag, owner, clock, "tiki100_hdc", __FILE__), +tiki100_hdc_device::tiki100_hdc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, TIKI100_HDC, tag, owner, clock), device_tiki100bus_card_interface(mconfig, *this), m_hdc(*this, WD1010_TAG) { @@ -76,7 +76,7 @@ tiki100_hdc_t::tiki100_hdc_t(const machine_config &mconfig, const char *tag, dev // device_start - device-specific startup //------------------------------------------------- -void tiki100_hdc_t::device_start() +void tiki100_hdc_device::device_start() { } @@ -85,7 +85,7 @@ void tiki100_hdc_t::device_start() // device_reset - device-specific reset //------------------------------------------------- -void tiki100_hdc_t::device_reset() +void tiki100_hdc_device::device_reset() { m_hdc->reset(); } @@ -95,7 +95,7 @@ void tiki100_hdc_t::device_reset() // tiki100bus_iorq_r - I/O read //------------------------------------------------- -uint8_t tiki100_hdc_t::iorq_r(address_space &space, offs_t offset, uint8_t data) +uint8_t tiki100_hdc_device::iorq_r(address_space &space, offs_t offset, uint8_t data) { if ((offset & 0xf8) == 0x20) { @@ -110,7 +110,7 @@ uint8_t tiki100_hdc_t::iorq_r(address_space &space, offs_t offset, uint8_t data) // tiki100bus_iorq_w - I/O write //------------------------------------------------- -void tiki100_hdc_t::iorq_w(address_space &space, offs_t offset, uint8_t data) +void tiki100_hdc_device::iorq_w(address_space &space, offs_t offset, uint8_t data) { if ((offset & 0xf8) == 0x20) { diff --git a/src/devices/bus/tiki100/hdc.h b/src/devices/bus/tiki100/hdc.h index c7f1ff7bfec..7e0109f0ecd 100644 --- a/src/devices/bus/tiki100/hdc.h +++ b/src/devices/bus/tiki100/hdc.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_TIKI100_HDC_H +#define MAME_BUS_TIKI100_HDC_H -#ifndef __TIKI100_HDC__ -#define __TIKI100_HDC__ +#pragma once #include "bus/tiki100/exp.h" #include "imagedev/harddriv.h" @@ -21,14 +21,13 @@ // TYPE DEFINITIONS //************************************************************************** -// ======================> tiki100_hdc_t +// ======================> tiki100_hdc_device -class tiki100_hdc_t : public device_t, - public device_tiki100bus_card_interface +class tiki100_hdc_device : public device_t, public device_tiki100bus_card_interface { public: // construction/destruction - tiki100_hdc_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + tiki100_hdc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual machine_config_constructor device_mconfig_additions() const override; @@ -48,7 +47,6 @@ private: // device type definition -extern const device_type TIKI100_HDC; - +DECLARE_DEVICE_TYPE(TIKI100_HDC, tiki100_hdc_device) -#endif +#endif // MAME_BUS_TIKI100_HDC_H diff --git a/src/devices/bus/tvc/hbf.cpp b/src/devices/bus/tvc/hbf.cpp index 1c19dd066ad..48ea67dafcd 100644 --- a/src/devices/bus/tvc/hbf.cpp +++ b/src/devices/bus/tvc/hbf.cpp @@ -48,7 +48,7 @@ ROM_END // GLOBAL VARIABLES //************************************************************************** -const device_type TVC_HBF = device_creator; +DEFINE_DEVICE_TYPE(TVC_HBF, tvc_hbf_device, "tvc_hbf", "HBF floppy interface") //************************************************************************** // LIVE DEVICE @@ -59,10 +59,10 @@ const device_type TVC_HBF = device_creator; //------------------------------------------------- tvc_hbf_device::tvc_hbf_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, TVC_HBF, "HBF floppy interface", tag, owner, clock, "tvc_hbf", __FILE__), - device_tvcexp_interface( mconfig, *this ), - m_fdc(*this, "fdc"), m_rom(nullptr), m_ram(nullptr), m_rom_bank(0) - { + : device_t(mconfig, TVC_HBF, tag, owner, clock), + device_tvcexp_interface( mconfig, *this ), + m_fdc(*this, "fdc"), m_rom(nullptr), m_ram(nullptr), m_rom_bank(0) +{ } diff --git a/src/devices/bus/tvc/hbf.h b/src/devices/bus/tvc/hbf.h index 4c1858195b0..6aa3bca563f 100644 --- a/src/devices/bus/tvc/hbf.h +++ b/src/devices/bus/tvc/hbf.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Sandro Ronco -#pragma once +#ifndef MAME_BUS_TVC_HBF_H +#define MAME_BUS_TVC_HBF_H -#ifndef __TVC_HBF_H__ -#define __TVC_HBF_H__ +#pragma once #include "tvc.h" #include "machine/wd_fdc.h" @@ -44,7 +44,7 @@ protected: private: // internal state - required_device m_fdc; + required_device m_fdc; uint8_t * m_rom; uint8_t * m_ram; @@ -53,6 +53,6 @@ private: // device type definition -extern const device_type TVC_HBF; +DECLARE_DEVICE_TYPE(TVC_HBF, tvc_hbf_device) -#endif /* __TVC_HBF_H__ */ +#endif // MAME_BUS_TVC_HBF_H diff --git a/src/devices/bus/tvc/tvc.cpp b/src/devices/bus/tvc/tvc.cpp index e726cffd99e..0f165e0395f 100644 --- a/src/devices/bus/tvc/tvc.cpp +++ b/src/devices/bus/tvc/tvc.cpp @@ -18,7 +18,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type TVCEXP_SLOT = device_creator; +DEFINE_DEVICE_TYPE(TVCEXP_SLOT, tvcexp_slot_device, "tvcexp_slot", "TVC64 Expansion Slot") //************************************************************************** @@ -52,10 +52,11 @@ device_tvcexp_interface::~device_tvcexp_interface() // tvcexp_slot_device - constructor //------------------------------------------------- tvcexp_slot_device::tvcexp_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, TVCEXP_SLOT, "TVC64 Expansion Slot", tag, owner, clock, "tvcexp_slot", __FILE__), - device_slot_interface(mconfig, *this), - m_out_irq_cb(*this), - m_out_nmi_cb(*this), m_cart(nullptr) + device_t(mconfig, TVCEXP_SLOT, tag, owner, clock), + device_slot_interface(mconfig, *this), + m_out_irq_cb(*this), + m_out_nmi_cb(*this), + m_cart(nullptr) { } diff --git a/src/devices/bus/tvc/tvc.h b/src/devices/bus/tvc/tvc.h index 40ceb334886..c3e3ea44cf8 100644 --- a/src/devices/bus/tvc/tvc.h +++ b/src/devices/bus/tvc/tvc.h @@ -53,8 +53,10 @@ +----------+ *********************************************************************/ -#ifndef __TVCEXP_H__ -#define __TVCEXP_H__ +#ifndef MAME_BUS_TVC_TVC_H +#define MAME_BUS_TVC_TVC_H + +#pragma once /*************************************************************************** @@ -67,7 +69,6 @@ class device_tvcexp_interface : public device_slot_card_interface { public: // construction/destruction - device_tvcexp_interface(const machine_config &mconfig, device_t &device); virtual ~device_tvcexp_interface(); // reading and writing @@ -75,9 +76,12 @@ public: virtual void int_ack() { } virtual uint8_t int_r() { return 1; } virtual DECLARE_READ8_MEMBER(read) { return 0x00; } - virtual DECLARE_WRITE8_MEMBER(write) {} + virtual DECLARE_WRITE8_MEMBER(write) { } virtual DECLARE_READ8_MEMBER(io_read) { return 0x00; } - virtual DECLARE_WRITE8_MEMBER(io_write) {} + virtual DECLARE_WRITE8_MEMBER(io_write) { } + +protected: + device_tvcexp_interface(const machine_config &mconfig, device_t &device); }; // ======================> tvcexp_slot_device @@ -90,11 +94,8 @@ public: tvcexp_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual ~tvcexp_slot_device(); - template static devcb_base &set_out_irq_callback(device_t &device, _Object object) { return downcast(device).m_out_irq_cb.set_callback(object); } - template static devcb_base &set_out_nmi_callback(device_t &device, _Object object) { return downcast(device).m_out_nmi_cb.set_callback(object); } - - // device-level overrides - virtual void device_start() override; + template static devcb_base &set_out_irq_callback(device_t &device, Object &&cb) { return downcast(device).m_out_irq_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_nmi_callback(device_t &device, Object &&cb) { return downcast(device).m_out_nmi_cb.set_callback(std::forward(cb)); } // reading and writing virtual uint8_t id_r(); @@ -105,14 +106,18 @@ public: virtual DECLARE_READ8_MEMBER(io_read); virtual DECLARE_WRITE8_MEMBER(io_write); - devcb_write_line m_out_irq_cb; - devcb_write_line m_out_nmi_cb; +protected: + // device-level overrides + virtual void device_start() override; + + devcb_write_line m_out_irq_cb; + devcb_write_line m_out_nmi_cb; device_tvcexp_interface* m_cart; }; // device type definition -extern const device_type TVCEXP_SLOT; +DECLARE_DEVICE_TYPE(TVCEXP_SLOT, tvcexp_slot_device) /*************************************************************************** @@ -125,4 +130,4 @@ extern const device_type TVCEXP_SLOT; #define MCFG_TVCEXP_SLOT_OUT_NMI_CB(_devcb) \ devcb = &tvcexp_slot_device::set_out_nmi_callback(*device, DEVCB_##_devcb); -#endif /* __TVCEXP_H__ */ +#endif // MAME_BUS_TVC_TVC_H diff --git a/src/devices/bus/vboy/rom.cpp b/src/devices/bus/vboy/rom.cpp index 91d7e785ae7..6c6117c8a9b 100644 --- a/src/devices/bus/vboy/rom.cpp +++ b/src/devices/bus/vboy/rom.cpp @@ -17,24 +17,22 @@ // vboy_rom_device - constructor //------------------------------------------------- -const device_type VBOY_ROM_STD = device_creator; -const device_type VBOY_ROM_EEPROM = device_creator; +DEFINE_DEVICE_TYPE(VBOY_ROM_STD, vboy_rom_device, "vboy_rom", "Nintendo Virtual Boy Carts") +DEFINE_DEVICE_TYPE(VBOY_ROM_EEPROM, vboy_eeprom_device, "vboy_eeprom", "Nintendo Virtual Boy Carts + EEPROM") -vboy_rom_device::vboy_rom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_vboy_cart_interface( mconfig, *this ) +vboy_rom_device::vboy_rom_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock), device_vboy_cart_interface(mconfig, *this) { } vboy_rom_device::vboy_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, VBOY_ROM_STD, "Nintendo Virtual Boy Carts", tag, owner, clock, "vboy_rom", __FILE__), - device_vboy_cart_interface( mconfig, *this ) + : vboy_rom_device(mconfig, VBOY_ROM_STD, tag, owner, clock) { } vboy_eeprom_device::vboy_eeprom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : vboy_rom_device(mconfig, VBOY_ROM_EEPROM, "Nintendo Virtual Boy Carts + EEPROM", tag, owner, clock, "vboy_eeprom", __FILE__) + : vboy_rom_device(mconfig, VBOY_ROM_EEPROM, tag, owner, clock) { } diff --git a/src/devices/bus/vboy/rom.h b/src/devices/bus/vboy/rom.h index 05b0a518120..6963a09fb9c 100644 --- a/src/devices/bus/vboy/rom.h +++ b/src/devices/bus/vboy/rom.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __VBOY_ROM_H -#define __VBOY_ROM_H +#ifndef MAME_BUS_VBOY_ROM_H +#define MAME_BUS_VBOY_ROM_H + +#pragma once #include "slot.h" @@ -13,14 +15,16 @@ class vboy_rom_device : public device_t, { public: // construction/destruction - vboy_rom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); vboy_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override {} - // reading and writing virtual DECLARE_READ32_MEMBER(read_cart) override; + +protected: + vboy_rom_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual void device_start() override { } }; // ======================> vboy_eeprom_device @@ -37,11 +41,8 @@ public: }; - // device type definition -extern const device_type VBOY_ROM_STD; -extern const device_type VBOY_ROM_EEPROM; - - +DECLARE_DEVICE_TYPE(VBOY_ROM_STD, vboy_rom_device) +DECLARE_DEVICE_TYPE(VBOY_ROM_EEPROM, vboy_eeprom_device) -#endif +#endif // MAME_BUS_VBOY_ROM_H diff --git a/src/devices/bus/vboy/slot.cpp b/src/devices/bus/vboy/slot.cpp index a6840087159..6ed81901d12 100644 --- a/src/devices/bus/vboy/slot.cpp +++ b/src/devices/bus/vboy/slot.cpp @@ -15,7 +15,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type VBOY_CART_SLOT = device_creator; +DEFINE_DEVICE_TYPE(VBOY_CART_SLOT, vboy_cart_slot_device, "vboy_cart_slot", "Nintendo Virtual Boy Cartridge Slot") //************************************************************************** // vboy cartridges Interface @@ -75,10 +75,11 @@ void device_vboy_cart_interface::eeprom_alloc(uint32_t size) // vboy_cart_slot_device - constructor //------------------------------------------------- vboy_cart_slot_device::vboy_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, VBOY_CART_SLOT, "Nintendo Virtual Boy Cartridge Slot", tag, owner, clock, "vboy_cart_slot", __FILE__), - device_image_interface(mconfig, *this), - device_slot_interface(mconfig, *this), - m_type(VBOY_STD), m_cart(nullptr) + device_t(mconfig, VBOY_CART_SLOT, tag, owner, clock), + device_image_interface(mconfig, *this), + device_slot_interface(mconfig, *this), + m_type(VBOY_STD), + m_cart(nullptr) { } diff --git a/src/devices/bus/vboy/slot.h b/src/devices/bus/vboy/slot.h index 264eb9f4cc1..a81efa07519 100644 --- a/src/devices/bus/vboy/slot.h +++ b/src/devices/bus/vboy/slot.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __VBOY_SLOT_H -#define __VBOY_SLOT_H +#ifndef MAME_BUS_VBOY_SLOT_H +#define MAME_BUS_VBOY_SLOT_H + +#pragma once #include "softlist_dev.h" @@ -25,13 +27,12 @@ class device_vboy_cart_interface : public device_slot_card_interface { public: // construction/destruction - device_vboy_cart_interface(const machine_config &mconfig, device_t &device); virtual ~device_vboy_cart_interface(); // reading and writing virtual DECLARE_READ32_MEMBER(read_cart) { return 0xffffffff; } virtual DECLARE_READ32_MEMBER(read_eeprom) { return 0xffffffff; } - virtual DECLARE_WRITE32_MEMBER(write_eeprom) {} + virtual DECLARE_WRITE32_MEMBER(write_eeprom) { } void rom_alloc(uint32_t size, const char *tag); void eeprom_alloc(uint32_t size); @@ -40,9 +41,11 @@ public: uint32_t get_rom_size() { return m_rom_size; } uint32_t get_eeprom_size() { return m_eeprom.size(); } - void save_eeprom() { device().save_item(NAME(m_eeprom)); } + void save_eeprom() { device().save_item(NAME(m_eeprom)); } protected: + device_vboy_cart_interface(const machine_config &mconfig, device_t &device); + // internal state uint32_t *m_rom; uint32_t m_rom_size; @@ -62,9 +65,6 @@ public: vboy_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual ~vboy_cart_slot_device(); - // device-level overrides - virtual void device_start() override; - // image-level overrides virtual image_init_result call_load() override; virtual void call_unload() override; @@ -92,15 +92,16 @@ public: virtual DECLARE_WRITE32_MEMBER(write_eeprom); protected: + // device-level overrides + virtual void device_start() override; int m_type; - device_vboy_cart_interface* m_cart; + device_vboy_cart_interface* m_cart; }; - // device type definition -extern const device_type VBOY_CART_SLOT; +DECLARE_DEVICE_TYPE(VBOY_CART_SLOT, vboy_cart_slot_device) /*************************************************************************** @@ -112,4 +113,5 @@ extern const device_type VBOY_CART_SLOT; #define MCFG_VBOY_CARTRIDGE_ADD(_tag,_slot_intf,_def_slot) \ MCFG_DEVICE_ADD(_tag, VBOY_CART_SLOT, 0) \ MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, false) -#endif + +#endif // MAME_BUS_VBOY_SLOT_H diff --git a/src/devices/bus/vc4000/rom.cpp b/src/devices/bus/vc4000/rom.cpp index 0f6f0865099..0e41b2638ed 100644 --- a/src/devices/bus/vc4000/rom.cpp +++ b/src/devices/bus/vc4000/rom.cpp @@ -192,36 +192,34 @@ // vc4000_rom_device - constructor //------------------------------------------------- -const device_type VC4000_ROM_STD = device_creator; -const device_type VC4000_ROM_ROM4K = device_creator; -const device_type VC4000_ROM_RAM1K = device_creator; -const device_type VC4000_ROM_CHESS2 = device_creator; +DEFINE_DEVICE_TYPE(VC4000_ROM_STD, vc4000_rom_device, "vc4000_rom", "VC 4000 Standard Carts") +DEFINE_DEVICE_TYPE(VC4000_ROM_ROM4K, vc4000_rom4k_device, "vc4000_rom4k", "VC 4000 Carts w/4K ROM") +DEFINE_DEVICE_TYPE(VC4000_ROM_RAM1K, vc4000_ram1k_device, "vc4000_ram1k", "VC 4000 Carts w/1K RAM") +DEFINE_DEVICE_TYPE(VC4000_ROM_CHESS2, vc4000_chess2_device, "vc4000_chess2", "VC 4000 Chess II Cart") -vc4000_rom_device::vc4000_rom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_vc4000_cart_interface( mconfig, *this ) +vc4000_rom_device::vc4000_rom_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock), device_vc4000_cart_interface(mconfig, *this) { } vc4000_rom_device::vc4000_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, VC4000_ROM_STD, "VC 4000 Standard Carts", tag, owner, clock, "vc4000_rom", __FILE__), - device_vc4000_cart_interface( mconfig, *this ) + : vc4000_rom_device(mconfig, VC4000_ROM_STD, tag, owner, clock) { } vc4000_rom4k_device::vc4000_rom4k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : vc4000_rom_device(mconfig, VC4000_ROM_ROM4K, "VC 4000 Carts w/4K ROM", tag, owner, clock, "vc4000_rom4k", __FILE__) + : vc4000_rom_device(mconfig, VC4000_ROM_ROM4K, tag, owner, clock) { } vc4000_ram1k_device::vc4000_ram1k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : vc4000_rom_device(mconfig, VC4000_ROM_RAM1K, "VC 4000 Carts w/1K RAM", tag, owner, clock, "vc4000_ram1k", __FILE__) + : vc4000_rom_device(mconfig, VC4000_ROM_RAM1K, tag, owner, clock) { } vc4000_chess2_device::vc4000_chess2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : vc4000_rom_device(mconfig, VC4000_ROM_CHESS2, "VC 4000 Chess II Cart", tag, owner, clock, "vc4000_chess2", __FILE__) + : vc4000_rom_device(mconfig, VC4000_ROM_CHESS2, tag, owner, clock) { } diff --git a/src/devices/bus/vc4000/rom.h b/src/devices/bus/vc4000/rom.h index dcd5d3b37f8..a8d524f2989 100644 --- a/src/devices/bus/vc4000/rom.h +++ b/src/devices/bus/vc4000/rom.h @@ -1,7 +1,7 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __VC4000_ROM_H -#define __VC4000_ROM_H +#ifndef MAME_BUS_VC4000_ROM_H +#define MAME_BUS_VC4000_ROM_H #include "slot.h" @@ -13,15 +13,17 @@ class vc4000_rom_device : public device_t, { public: // construction/destruction - vc4000_rom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); vc4000_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override {} - virtual void device_reset() override {} - // reading and writing virtual DECLARE_READ8_MEMBER(read_rom) override; + +protected: + vc4000_rom_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual void device_start() override { } + virtual void device_reset() override { } }; // ======================> vc4000_rom4k_device @@ -62,13 +64,10 @@ public: - - // device type definition -extern const device_type VC4000_ROM_STD; -extern const device_type VC4000_ROM_ROM4K; -extern const device_type VC4000_ROM_RAM1K; -extern const device_type VC4000_ROM_CHESS2; - +DECLARE_DEVICE_TYPE(VC4000_ROM_STD, vc4000_rom_device) +DECLARE_DEVICE_TYPE(VC4000_ROM_ROM4K, vc4000_rom4k_device) +DECLARE_DEVICE_TYPE(VC4000_ROM_RAM1K, vc4000_ram1k_device) +DECLARE_DEVICE_TYPE(VC4000_ROM_CHESS2, vc4000_chess2_device) -#endif +#endif // MAME_BUS_VC4000_ROM_H diff --git a/src/devices/bus/vc4000/slot.cpp b/src/devices/bus/vc4000/slot.cpp index 444575b3dd0..68c7ca15f4b 100644 --- a/src/devices/bus/vc4000/slot.cpp +++ b/src/devices/bus/vc4000/slot.cpp @@ -15,8 +15,8 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type VC4000_CART_SLOT = device_creator; -const device_type H21_CART_SLOT = device_creator; +DEFINE_DEVICE_TYPE(VC4000_CART_SLOT, vc4000_cart_slot_device, "vc4000_cart_slot", "Interton VC 4000 Cartridge Slot") +DEFINE_DEVICE_TYPE(H21_CART_SLOT, h21_cart_slot_device, "h21_cart_slot", "TRQ H-21 Cartridge Slot") //************************************************************************** // VC4000 Cartridges Interface @@ -74,20 +74,17 @@ void device_vc4000_cart_interface::ram_alloc(uint32_t size) // vc4000_cart_slot_device - constructor //------------------------------------------------- vc4000_cart_slot_device::vc4000_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : vc4000_cart_slot_device(mconfig, VC4000_CART_SLOT, "Interton VC 4000 Cartridge Slot", tag, owner, clock, "vc4000_cart_slot", __FILE__) + : vc4000_cart_slot_device(mconfig, VC4000_CART_SLOT, tag, owner, clock) { } vc4000_cart_slot_device::vc4000_cart_slot_device( const machine_config &mconfig, device_type type, - const char *name, const char *tag, device_t *owner, - uint32_t clock, - const char *shortname, - const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source) + uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) , device_image_interface(mconfig, *this) , device_slot_interface(mconfig, *this) , m_type(VC4000_STD) @@ -118,7 +115,7 @@ void vc4000_cart_slot_device::device_start() //------------------------------------------------- h21_cart_slot_device::h21_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : vc4000_cart_slot_device(mconfig, H21_CART_SLOT, "TRQ H-21 Cartridge Slot", tag, owner, clock, "h21_cart_slot", __FILE__) + : vc4000_cart_slot_device(mconfig, H21_CART_SLOT, tag, owner, clock) { } diff --git a/src/devices/bus/vc4000/slot.h b/src/devices/bus/vc4000/slot.h index c663397dbe1..61cba93bd94 100644 --- a/src/devices/bus/vc4000/slot.h +++ b/src/devices/bus/vc4000/slot.h @@ -27,7 +27,6 @@ class device_vc4000_cart_interface : public device_slot_card_interface { public: // construction/destruction - device_vc4000_cart_interface(const machine_config &mconfig, device_t &device); virtual ~device_vc4000_cart_interface(); // reading and writing @@ -46,6 +45,8 @@ public: void save_ram() { device().save_item(NAME(m_ram)); } protected: + device_vc4000_cart_interface(const machine_config &mconfig, device_t &device); + // internal state uint8_t *m_rom; uint32_t m_rom_size; @@ -64,12 +65,9 @@ public: vc4000_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual ~vc4000_cart_slot_device(); - // device-level overrides - virtual void device_start() override; - // image-level overrides virtual image_init_result call_load() override; - virtual void call_unload() override {} + virtual void call_unload() override { } virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); } int get_type() { return m_type; } @@ -95,15 +93,15 @@ public: virtual DECLARE_WRITE8_MEMBER(write_ram); protected: + // device-level overrides + virtual void device_start() override; + vc4000_cart_slot_device( const machine_config &mconfig, device_type type, - const char *name, const char *tag, device_t *owner, - uint32_t clock, - const char *shortname, - const char *source); + uint32_t clock); int m_type; device_vc4000_cart_interface *m_cart; @@ -120,8 +118,8 @@ public: }; // device type definition -extern const device_type VC4000_CART_SLOT; -extern const device_type H21_CART_SLOT; +DECLARE_DEVICE_TYPE(VC4000_CART_SLOT, vc4000_cart_slot_device) +DECLARE_DEVICE_TYPE(H21_CART_SLOT, h21_cart_slot_device) /*************************************************************************** diff --git a/src/devices/bus/vcs/compumat.cpp b/src/devices/bus/vcs/compumat.cpp index 304dbbf3403..5b5c8ad9495 100644 --- a/src/devices/bus/vcs/compumat.cpp +++ b/src/devices/bus/vcs/compumat.cpp @@ -13,11 +13,11 @@ #include "emu.h" #include "compumat.h" -const device_type A26_ROM_COMPUMATE = device_creator; +DEFINE_DEVICE_TYPE(A26_ROM_COMPUMATE, a26_rom_cm_device, "a2600_cm", "Atari 2600 ROM Cart Compumate") a26_rom_cm_device::a26_rom_cm_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : a26_rom_f6_device(mconfig, A26_ROM_COMPUMATE, "Atari 2600 ROM Cart Compumate", tag, owner, clock, "a2600_cm", __FILE__) + : a26_rom_f6_device(mconfig, A26_ROM_COMPUMATE, tag, owner, clock) { } diff --git a/src/devices/bus/vcs/compumat.h b/src/devices/bus/vcs/compumat.h index 6f59ead6ea0..0eed91e59e5 100644 --- a/src/devices/bus/vcs/compumat.h +++ b/src/devices/bus/vcs/compumat.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __VCS_COMPUMAT_H -#define __VCS_COMPUMAT_H +#ifndef MAME_BUS_VCS_COMPUMAT_H +#define MAME_BUS_VCS_COMPUMAT_H + +#pragma once #include "rom.h" @@ -28,6 +30,6 @@ public: // device type definition -extern const device_type A26_ROM_COMPUMATE; +DECLARE_DEVICE_TYPE(A26_ROM_COMPUMATE, a26_rom_cm_device) -#endif +#endif // MAME_BUS_VCS_COMPUMAT_H diff --git a/src/devices/bus/vcs/dpc.cpp b/src/devices/bus/vcs/dpc.cpp index 524013c3d9b..84cd9841a93 100644 --- a/src/devices/bus/vcs/dpc.cpp +++ b/src/devices/bus/vcs/dpc.cpp @@ -14,11 +14,11 @@ // DPC device -const device_type ATARI_DPC = device_creator; +DEFINE_DEVICE_TYPE(ATARI_DPC, dpc_device, "atari_dpc", "Atari DPC") dpc_device::dpc_device(const machine_config& mconfig, const char* tag, device_t* owner, uint32_t clock) : - device_t(mconfig, ATARI_DPC, "Atari DCP", tag, owner, clock, "atari_dcp", __FILE__), + device_t(mconfig, ATARI_DPC, tag, owner, clock), m_movamt(0), m_latch_62(0), m_latch_64(0), @@ -238,12 +238,11 @@ WRITE8_MEMBER(dpc_device::write) // cart device -const device_type A26_ROM_DPC = device_creator; +DEFINE_DEVICE_TYPE(A26_ROM_DPC, a26_rom_dpc_device, "a2600_dpc", "Atari 2600 ROM Cart Pitfall II") a26_rom_dpc_device::a26_rom_dpc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : a26_rom_f8_device(mconfig, A26_ROM_DPC, "Atari 2600 ROM Cart Pitfall II", tag, owner, clock, "a2600_dcp", __FILE__), - m_dpc(*this, "dpc") + : a26_rom_f8_device(mconfig, A26_ROM_DPC, tag, owner, clock), m_dpc(*this, "dpc") { } diff --git a/src/devices/bus/vcs/dpc.h b/src/devices/bus/vcs/dpc.h index 358cba6f942..9ce74b57684 100644 --- a/src/devices/bus/vcs/dpc.h +++ b/src/devices/bus/vcs/dpc.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __VCS_DCP_H -#define __VCS_DCP_H +#ifndef MAME_BUS_VCS_DPC_H +#define MAME_BUS_VCS_DPC_H + +#pragma once #include "rom.h" @@ -11,16 +13,6 @@ // TO DO: DPC should be made a separate device! -struct df_t { - uint8_t top; - uint8_t bottom; - uint8_t low; - uint8_t high; - uint8_t flag; - uint8_t music_mode; /* Only used by data fetchers 5,6, and 7 */ - uint8_t osc_clk; /* Only used by data fetchers 5,6, and 7 */ -}; - // m_dpc.oscillator = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(a2600_state::modeDPC_timer_callback),this)); class dpc_device : public device_t @@ -29,36 +21,47 @@ public: // construction/destruction dpc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - df_t m_df[8]; - uint8_t m_movamt; - uint8_t m_latch_62; - uint8_t m_latch_64; - uint8_t m_dlc; - uint8_t m_shift_reg; - uint8_t *m_displaydata; void set_display_data(uint8_t *data) { m_displaydata = data; } - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + virtual DECLARE_READ8_MEMBER(read); + virtual DECLARE_WRITE8_MEMBER(write); + +protected: + static constexpr device_timer_id TIMER_OSC = 0; + + struct df_t { + uint8_t top; + uint8_t bottom; + uint8_t low; + uint8_t high; + uint8_t flag; + uint8_t music_mode; /* Only used by data fetchers 5,6, and 7 */ + uint8_t osc_clk; /* Only used by data fetchers 5,6, and 7 */ + }; // device-level overrides virtual void device_start() override; virtual void device_reset() override; + virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; - virtual DECLARE_READ8_MEMBER(read); - virtual DECLARE_WRITE8_MEMBER(write); + df_t m_df[8]; + uint8_t m_movamt; + uint8_t m_latch_62; + uint8_t m_latch_64; + uint8_t m_dlc; + uint8_t m_shift_reg; + uint8_t *m_displaydata; private: - void decrement_counter(uint8_t data_fetcher); void check_flag(uint8_t data_fetcher); - static const device_timer_id TIMER_OSC = 0; emu_timer *m_oscillator; }; // device type definition -extern const device_type ATARI_DPC; +DECLARE_DEVICE_TYPE(ATARI_DPC, dpc_device) @@ -86,6 +89,6 @@ public: // device type definition -extern const device_type A26_ROM_DPC; +DECLARE_DEVICE_TYPE(A26_ROM_DPC, a26_rom_dpc_device) -#endif +#endif // MAME_BUS_VCS_DPC_H diff --git a/src/devices/bus/vcs/harmony_melody.cpp b/src/devices/bus/vcs/harmony_melody.cpp index 6721cb6eff9..2e35ea48331 100644 --- a/src/devices/bus/vcs/harmony_melody.cpp +++ b/src/devices/bus/vcs/harmony_melody.cpp @@ -59,16 +59,13 @@ map: - - // cart device -const device_type A26_ROM_HARMONY = device_creator; +DEFINE_DEVICE_TYPE(A26_ROM_HARMONY, a26_rom_harmony_device, "a2600_harmony", "Atari 2600 ROM Cart HARMONY/MELODY") a26_rom_harmony_device::a26_rom_harmony_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : a26_rom_f8_device(mconfig, A26_ROM_HARMONY, "Atari 2600 ROM Cart HARMONY/MELODY", tag, owner, clock, "a2600_harmony", __FILE__), - m_cpu(*this, "arm") + : a26_rom_f8_device(mconfig, A26_ROM_HARMONY, tag, owner, clock), m_cpu(*this, "arm") { } diff --git a/src/devices/bus/vcs/harmony_melody.h b/src/devices/bus/vcs/harmony_melody.h index 7ed337c56ec..3af4cfd9dcc 100644 --- a/src/devices/bus/vcs/harmony_melody.h +++ b/src/devices/bus/vcs/harmony_melody.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:David Haywood -#ifndef __VCS_HARMONY_H -#define __VCS_HARMONY_H +#ifndef MAME_BUS_VCS_HARMONY_MELODY_H +#define MAME_BUS_VCS_HARMONY_MELODY_H + +#pragma once #include "rom.h" #include "cpu/arm7/lpc210x.h" @@ -15,26 +17,26 @@ public: // construction/destruction a26_rom_harmony_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual machine_config_constructor device_mconfig_additions() const override; - virtual void device_reset() override; // reading and writing virtual DECLARE_READ8_MEMBER(read_rom) override; virtual DECLARE_WRITE8_MEMBER(write_bank) override; - DECLARE_READ8_MEMBER(read8_r); +private: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + void check_bankswitch(offs_t offset); -private: required_device m_cpu; }; // device type definition -extern const device_type A26_ROM_HARMONY; +DECLARE_DEVICE_TYPE(A26_ROM_HARMONY, a26_rom_harmony_device) -#endif +#endif // MAME_BUS_VCS_HARMONY_MELODY_H diff --git a/src/devices/bus/vcs/rom.cpp b/src/devices/bus/vcs/rom.cpp index 37c47ff950e..e5699d1ae48 100755 --- a/src/devices/bus/vcs/rom.cpp +++ b/src/devices/bus/vcs/rom.cpp @@ -21,167 +21,164 @@ // a26_rom_*k_device - constructor //------------------------------------------------- -const device_type A26_ROM_2K = device_creator; -const device_type A26_ROM_4K = device_creator; -const device_type A26_ROM_F4 = device_creator; -const device_type A26_ROM_F6 = device_creator; -const device_type A26_ROM_F8 = device_creator; -const device_type A26_ROM_F8_SW = device_creator; -const device_type A26_ROM_FA = device_creator; -const device_type A26_ROM_FE = device_creator; -const device_type A26_ROM_3E = device_creator; -const device_type A26_ROM_3F = device_creator; -const device_type A26_ROM_E0 = device_creator; -const device_type A26_ROM_E7 = device_creator; -const device_type A26_ROM_UA = device_creator; -const device_type A26_ROM_CV = device_creator; -const device_type A26_ROM_DC = device_creator; -const device_type A26_ROM_FV = device_creator; -const device_type A26_ROM_JVP = device_creator; -const device_type A26_ROM_4IN1 = device_creator; -const device_type A26_ROM_8IN1 = device_creator; -const device_type A26_ROM_32IN1 = device_creator; -const device_type A26_ROM_X07 = device_creator; - - -a26_rom_2k_device::a26_rom_2k_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_vcs_cart_interface( mconfig, *this ) +DEFINE_DEVICE_TYPE(A26_ROM_2K, a26_rom_2k_device, "vcs_2k", "Atari VCS 2600 2K ROM Carts") +DEFINE_DEVICE_TYPE(A26_ROM_4K, a26_rom_4k_device, "vcs_4k", "Atari VCS 2600 4K ROM Carts") +DEFINE_DEVICE_TYPE(A26_ROM_F4, a26_rom_f4_device, "vcs_f4", "Atari VCS 2600 ROM Carts w/F4 bankswitch") +DEFINE_DEVICE_TYPE(A26_ROM_F6, a26_rom_f6_device, "vcs_f6", "Atari VCS 2600 ROM Carts w/F6 bankswitch") +DEFINE_DEVICE_TYPE(A26_ROM_F8, a26_rom_f8_device, "vcs_f8", "Atari VCS 2600 ROM Carts w/F8 bankswitch") +DEFINE_DEVICE_TYPE(A26_ROM_F8_SW, a26_rom_f8_sw_device, "vcs_f8_sw", "Atari VCS 2600 ROM Cart Snow White") +DEFINE_DEVICE_TYPE(A26_ROM_FA, a26_rom_fa_device, "vcs_fa", "Atari VCS 2600 ROM Carts w/FA bankswitch") +DEFINE_DEVICE_TYPE(A26_ROM_FE, a26_rom_fe_device, "vcs_fe", "Atari VCS 2600 ROM Carts w/FE bankswitch") +DEFINE_DEVICE_TYPE(A26_ROM_3E, a26_rom_3e_device, "vcs_3e", "Atari VCS 2600 ROM Carts w/3E bankswitch") +DEFINE_DEVICE_TYPE(A26_ROM_3F, a26_rom_3f_device, "vcs_3f", "Atari VCS 2600 ROM Carts w/3F bankswitch") +DEFINE_DEVICE_TYPE(A26_ROM_E0, a26_rom_e0_device, "vcs_e0", "Atari VCS 2600 ROM Carts w/E0 bankswitch") +DEFINE_DEVICE_TYPE(A26_ROM_E7, a26_rom_e7_device, "vcs_e7", "Atari VCS 2600 ROM Carts w/E7 bankswitch") +DEFINE_DEVICE_TYPE(A26_ROM_UA, a26_rom_ua_device, "vcs_ua", "Atari VCS 2600 ROM Carts w/UA bankswitch") +DEFINE_DEVICE_TYPE(A26_ROM_CV, a26_rom_cv_device, "vcs_cv", "Atari VCS 2600 ROM Carts w/Commavid bankswitch") +DEFINE_DEVICE_TYPE(A26_ROM_DC, a26_rom_dc_device, "vcs_dc", "Atari VCS 2600 ROM Carts w/Dynacom bankswitch") +DEFINE_DEVICE_TYPE(A26_ROM_FV, a26_rom_fv_device, "vcs_fv", "Atari VCS 2600 ROM Carts w/FV bankswitch") +DEFINE_DEVICE_TYPE(A26_ROM_JVP, a26_rom_jvp_device, "vcs_jvp", "Atari VCS 2600 ROM Carts w/JVP bankswitch") +DEFINE_DEVICE_TYPE(A26_ROM_4IN1, a26_rom_4in1_device, "vcs_4in1", "Atari VCS 2600 ROM Cart 4 in 1") +DEFINE_DEVICE_TYPE(A26_ROM_8IN1, a26_rom_8in1_device, "vcs_8in1", "Atari VCS 2600 ROM Cart 8 in 1") +DEFINE_DEVICE_TYPE(A26_ROM_32IN1, a26_rom_32in1_device, "vcs_32in1", "Atari VCS 2600 ROM Cart 32 in 1") +DEFINE_DEVICE_TYPE(A26_ROM_X07, a26_rom_x07_device, "vcs_x07", "Atari VCS 2600 ROM Carts w/X07 bankswitch") + + +a26_rom_2k_device::a26_rom_2k_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock), device_vcs_cart_interface(mconfig, *this) { } a26_rom_2k_device::a26_rom_2k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, A26_ROM_2K, "Atari VCS 2600 2K ROM Carts", tag, owner, clock, "vcs_2k", __FILE__), - device_vcs_cart_interface( mconfig, *this ) + : a26_rom_2k_device(mconfig, A26_ROM_2K, tag, owner, clock) { } a26_rom_4k_device::a26_rom_4k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : a26_rom_2k_device(mconfig, A26_ROM_4K, "Atari VCS 2600 4K ROM Carts", tag, owner, clock, "vcs_4k", __FILE__) + : a26_rom_2k_device(mconfig, A26_ROM_4K, tag, owner, clock) { } -a26_rom_f6_device::a26_rom_f6_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : a26_rom_2k_device(mconfig, type, name, tag, owner, clock, shortname, source), - m_base_bank(-1) // set to -1 to help the Xin1 multicart... +a26_rom_f6_device::a26_rom_f6_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : a26_rom_2k_device(mconfig, type, tag, owner, clock) + , m_base_bank(-1) // set to -1 to help the Xin1 multicart... { } a26_rom_f6_device::a26_rom_f6_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : a26_rom_2k_device(mconfig, A26_ROM_F6, "Atari VCS 2600 ROM Carts w/F6 bankswitch", tag, owner, clock, "vcs_f6", __FILE__), - m_base_bank(-1) // set to -1 to help the Xin1 multicart... + : a26_rom_f6_device(mconfig, A26_ROM_F6, tag, owner, clock) { } a26_rom_f4_device::a26_rom_f4_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : a26_rom_f6_device(mconfig, A26_ROM_F4, "Atari VCS 2600 ROM Carts w/F4 bankswitch", tag, owner, clock, "vcs_f4", __FILE__) + : a26_rom_f6_device(mconfig, A26_ROM_F4, tag, owner, clock) { } -a26_rom_f8_device::a26_rom_f8_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : a26_rom_f6_device(mconfig, type, name, tag, owner, clock, shortname, source) +a26_rom_f8_device::a26_rom_f8_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : a26_rom_f6_device(mconfig, type, tag, owner, clock) { } a26_rom_f8_device::a26_rom_f8_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : a26_rom_f6_device(mconfig, A26_ROM_F8, "Atari VCS 2600 ROM Carts w/F8 bankswitch", tag, owner, clock, "vcs_f8", __FILE__) + : a26_rom_f8_device(mconfig, A26_ROM_F8, tag, owner, clock) { } a26_rom_f8_sw_device::a26_rom_f8_sw_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : a26_rom_f8_device(mconfig, A26_ROM_F8_SW, "Atari VCS 2600 ROM Cart Snow White", tag, owner, clock, "vcs_f8_sw", __FILE__) + : a26_rom_f8_device(mconfig, A26_ROM_F8_SW, tag, owner, clock) { } a26_rom_fa_device::a26_rom_fa_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : a26_rom_f6_device(mconfig, A26_ROM_FA, "Atari VCS 2600 ROM Carts w/FA bankswitch", tag, owner, clock, "vcs_fa", __FILE__) + : a26_rom_f6_device(mconfig, A26_ROM_FA, tag, owner, clock) { } a26_rom_fe_device::a26_rom_fe_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : a26_rom_2k_device(mconfig, A26_ROM_FE, "Atari VCS 2600 ROM Carts w/FE bankswitch", tag, owner, clock, "vcs_fe", __FILE__), m_base_bank(0), m_trigger_on_next_access(0) - { + : a26_rom_2k_device(mconfig, A26_ROM_FE, tag, owner, clock), m_base_bank(0), m_trigger_on_next_access(0) +{ } a26_rom_3e_device::a26_rom_3e_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : a26_rom_f6_device(mconfig, A26_ROM_3E, "Atari VCS 2600 ROM Carts w/3E bankswitch", tag, owner, clock, "vcs_3e", __FILE__), m_num_bank(0), m_ram_bank(0), m_ram_enable(0) - { + : a26_rom_f6_device(mconfig, A26_ROM_3E, tag, owner, clock), m_num_bank(0), m_ram_bank(0), m_ram_enable(0) +{ } a26_rom_3f_device::a26_rom_3f_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : a26_rom_f6_device(mconfig, A26_ROM_3F, "Atari VCS 2600 ROM Carts w/3F bankswitch", tag, owner, clock, "vcs_3f", __FILE__), m_num_bank(0) - { + : a26_rom_f6_device(mconfig, A26_ROM_3F, tag, owner, clock), m_num_bank(0) +{ } a26_rom_e0_device::a26_rom_e0_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : a26_rom_f6_device(mconfig, A26_ROM_E0, "Atari VCS 2600 ROM Carts w/E0 bankswitch", tag, owner, clock, "vcs_e0", __FILE__) + : a26_rom_f6_device(mconfig, A26_ROM_E0, tag, owner, clock) { } a26_rom_e7_device::a26_rom_e7_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : a26_rom_f6_device(mconfig, A26_ROM_E7, "Atari VCS 2600 ROM Carts w/E7 bankswitch", tag, owner, clock, "vcs_e7", __FILE__), m_ram_bank(0) - { + : a26_rom_f6_device(mconfig, A26_ROM_E7, tag, owner, clock), m_ram_bank(0) +{ } a26_rom_ua_device::a26_rom_ua_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : a26_rom_f6_device(mconfig, A26_ROM_UA, "Atari VCS 2600 ROM Carts w/UA bankswitch", tag, owner, clock, "vcs_ua", __FILE__) + : a26_rom_f6_device(mconfig, A26_ROM_UA, tag, owner, clock) { } a26_rom_cv_device::a26_rom_cv_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : a26_rom_2k_device(mconfig, A26_ROM_CV, "Atari VCS 2600 ROM Carts w/Commavid bankswitch", tag, owner, clock, "vcs_cv", __FILE__) + : a26_rom_2k_device(mconfig, A26_ROM_CV, tag, owner, clock) { } a26_rom_dc_device::a26_rom_dc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : a26_rom_f6_device(mconfig, A26_ROM_DC, "Atari VCS 2600 ROM Carts w/Dynacom bankswitch", tag, owner, clock, "vcs_dc", __FILE__) + : a26_rom_f6_device(mconfig, A26_ROM_DC, tag, owner, clock) { } a26_rom_fv_device::a26_rom_fv_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : a26_rom_f6_device(mconfig, A26_ROM_FV, "Atari VCS 2600 ROM Carts w/FV bankswitch", tag, owner, clock, "vcs_fv", __FILE__), m_locked(0) - { + : a26_rom_f6_device(mconfig, A26_ROM_FV, tag, owner, clock), m_locked(0) +{ } a26_rom_jvp_device::a26_rom_jvp_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : a26_rom_f6_device(mconfig, A26_ROM_JVP, "Atari VCS 2600 ROM Carts w/JVP bankswitch", tag, owner, clock, "vcs_jvp", __FILE__) + : a26_rom_f6_device(mconfig, A26_ROM_JVP, tag, owner, clock) { } a26_rom_4in1_device::a26_rom_4in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : a26_rom_f6_device(mconfig, A26_ROM_4IN1, "Atari VCS 2600 ROM Cart 4 in 1", tag, owner, clock, "vcs_4in1", __FILE__) + : a26_rom_f6_device(mconfig, A26_ROM_4IN1, tag, owner, clock) { } a26_rom_8in1_device::a26_rom_8in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : a26_rom_f8_device(mconfig, A26_ROM_8IN1, "Atari VCS 2600 ROM Cart 8 in 1", tag, owner, clock, "vcs_8in1", __FILE__), m_reset_bank(0) - { + : a26_rom_f8_device(mconfig, A26_ROM_8IN1, tag, owner, clock), m_reset_bank(0) +{ } a26_rom_32in1_device::a26_rom_32in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : a26_rom_f6_device(mconfig, A26_ROM_32IN1, "Atari VCS 2600 ROM Cart 32 in 1", tag, owner, clock, "vcs_32in1", __FILE__) + : a26_rom_f6_device(mconfig, A26_ROM_32IN1, tag, owner, clock) { } a26_rom_x07_device::a26_rom_x07_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : a26_rom_f6_device(mconfig, A26_ROM_X07, "Atari VCS 2600 ROM Carts w/X07 bankswitch", tag, owner, clock, "vcs_x07", __FILE__) + : a26_rom_f6_device(mconfig, A26_ROM_X07, tag, owner, clock) { } diff --git a/src/devices/bus/vcs/rom.h b/src/devices/bus/vcs/rom.h index faebae0cf74..01e730c03a6 100755 --- a/src/devices/bus/vcs/rom.h +++ b/src/devices/bus/vcs/rom.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __VCS_ROM_H -#define __VCS_ROM_H +#ifndef MAME_BUS_VCS_ROM_H +#define MAME_BUS_VCS_ROM_H + +#pragma once #include "vcs_slot.h" @@ -13,15 +15,17 @@ class a26_rom_2k_device : public device_t, { public: // construction/destruction - a26_rom_2k_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); a26_rom_2k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + // reading and writing + virtual DECLARE_READ8_MEMBER(read_rom) override; + +protected: + a26_rom_2k_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; - - // reading and writing - virtual DECLARE_READ8_MEMBER(read_rom) override; }; @@ -46,18 +50,19 @@ class a26_rom_f6_device : public a26_rom_2k_device { public: // construction/destruction - a26_rom_f6_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); a26_rom_f6_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - // reading and writing virtual DECLARE_READ8_MEMBER(read_rom) override; virtual DECLARE_WRITE8_MEMBER(write_bank) override; protected: + a26_rom_f6_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + int m_base_bank; }; @@ -70,12 +75,13 @@ public: // construction/destruction a26_rom_f4_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_reset() override; - // reading and writing virtual DECLARE_READ8_MEMBER(read_rom) override; virtual DECLARE_WRITE8_MEMBER(write_bank) override; + +protected: + // device-level overrides + virtual void device_reset() override; }; @@ -85,12 +91,14 @@ class a26_rom_f8_device : public a26_rom_f6_device { public: // construction/destruction - a26_rom_f8_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); a26_rom_f8_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // reading and writing virtual DECLARE_READ8_MEMBER(read_rom) override; virtual DECLARE_WRITE8_MEMBER(write_bank) override; + +protected: + a26_rom_f8_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); }; @@ -102,6 +110,7 @@ public: // construction/destruction a26_rom_f8_sw_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); +protected: // device-level overrides virtual void device_reset() override; }; @@ -129,10 +138,6 @@ public: // construction/destruction a26_rom_fe_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - // reading and writing virtual DECLARE_READ8_MEMBER(read_rom) override; virtual DECLARE_READ8_MEMBER(read_bank) override; @@ -140,6 +145,10 @@ public: virtual DECLARE_WRITE8_MEMBER(write_bank) override; protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + int m_base_bank; int m_trigger_on_next_access; }; @@ -153,16 +162,16 @@ public: // construction/destruction a26_rom_3e_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - // reading and writing virtual DECLARE_READ8_MEMBER(read_rom) override; virtual DECLARE_WRITE8_MEMBER(write_bank) override; virtual DECLARE_WRITE8_MEMBER(write_ram) override; protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + int m_num_bank; int m_ram_bank; int m_ram_enable; @@ -177,14 +186,14 @@ public: // construction/destruction a26_rom_3f_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_reset() override; - // reading and writing virtual DECLARE_READ8_MEMBER(read_rom) override; virtual DECLARE_WRITE8_MEMBER(write_bank) override; protected: + // device-level overrides + virtual void device_reset() override; + int m_num_bank; }; @@ -197,15 +206,15 @@ public: // construction/destruction a26_rom_e0_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - // reading and writing virtual DECLARE_READ8_MEMBER(read_rom) override; virtual DECLARE_WRITE8_MEMBER(write_bank) override; protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + int m_base_banks[4]; }; @@ -218,15 +227,15 @@ public: // construction/destruction a26_rom_e7_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - // reading and writing virtual DECLARE_READ8_MEMBER(read_rom) override; virtual DECLARE_WRITE8_MEMBER(write_bank) override; protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + int m_ram_bank; }; @@ -239,13 +248,14 @@ public: // construction/destruction a26_rom_ua_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_reset() override; - // reading and writing virtual DECLARE_READ8_MEMBER(read_rom) override; virtual DECLARE_READ8_MEMBER(read_bank) override; virtual DECLARE_WRITE8_MEMBER(write_bank) override; + +protected: + // device-level overrides + virtual void device_reset() override; }; @@ -285,15 +295,15 @@ public: // construction/destruction a26_rom_fv_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - // reading and writing virtual DECLARE_READ8_MEMBER(read_rom) override; virtual DECLARE_WRITE8_MEMBER(write_bank) override; protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + int m_locked; }; @@ -320,11 +330,12 @@ public: // construction/destruction a26_rom_4in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_reset() override; - // reading and writing virtual DECLARE_READ8_MEMBER(read_rom) override; + +protected: + // device-level overrides + virtual void device_reset() override; }; @@ -336,14 +347,14 @@ public: // construction/destruction a26_rom_8in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - // reading and writing virtual DECLARE_READ8_MEMBER(read_rom) override; protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + int m_reset_bank; }; @@ -356,11 +367,12 @@ public: // construction/destruction a26_rom_32in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_reset() override; - // reading and writing virtual DECLARE_READ8_MEMBER(read_rom) override; + +protected: + // device-level overrides + virtual void device_reset() override; }; @@ -380,27 +392,27 @@ public: // device type definition -extern const device_type A26_ROM_2K; -extern const device_type A26_ROM_4K; -extern const device_type A26_ROM_F4; -extern const device_type A26_ROM_F6; -extern const device_type A26_ROM_F8; -extern const device_type A26_ROM_F8_SW; -extern const device_type A26_ROM_FA; -extern const device_type A26_ROM_FE; -extern const device_type A26_ROM_3E; -extern const device_type A26_ROM_3F; -extern const device_type A26_ROM_E0; -extern const device_type A26_ROM_E7; -extern const device_type A26_ROM_UA; -extern const device_type A26_ROM_CV; -extern const device_type A26_ROM_DC; -extern const device_type A26_ROM_FV; -extern const device_type A26_ROM_JVP; -extern const device_type A26_ROM_4IN1; -extern const device_type A26_ROM_8IN1; -extern const device_type A26_ROM_32IN1; -extern const device_type A26_ROM_X07; - - -#endif +DECLARE_DEVICE_TYPE(A26_ROM_2K, a26_rom_2k_device) +DECLARE_DEVICE_TYPE(A26_ROM_4K, a26_rom_4k_device) +DECLARE_DEVICE_TYPE(A26_ROM_F4, a26_rom_f4_device) +DECLARE_DEVICE_TYPE(A26_ROM_F6, a26_rom_f6_device) +DECLARE_DEVICE_TYPE(A26_ROM_F8, a26_rom_f8_device) +DECLARE_DEVICE_TYPE(A26_ROM_F8_SW, a26_rom_f8_sw_device) +DECLARE_DEVICE_TYPE(A26_ROM_FA, a26_rom_fa_device) +DECLARE_DEVICE_TYPE(A26_ROM_FE, a26_rom_fe_device) +DECLARE_DEVICE_TYPE(A26_ROM_3E, a26_rom_3e_device) +DECLARE_DEVICE_TYPE(A26_ROM_3F, a26_rom_3f_device) +DECLARE_DEVICE_TYPE(A26_ROM_E0, a26_rom_e0_device) +DECLARE_DEVICE_TYPE(A26_ROM_E7, a26_rom_e7_device) +DECLARE_DEVICE_TYPE(A26_ROM_UA, a26_rom_ua_device) +DECLARE_DEVICE_TYPE(A26_ROM_CV, a26_rom_cv_device) +DECLARE_DEVICE_TYPE(A26_ROM_DC, a26_rom_dc_device) +DECLARE_DEVICE_TYPE(A26_ROM_FV, a26_rom_fv_device) +DECLARE_DEVICE_TYPE(A26_ROM_JVP, a26_rom_jvp_device) +DECLARE_DEVICE_TYPE(A26_ROM_4IN1, a26_rom_4in1_device) +DECLARE_DEVICE_TYPE(A26_ROM_8IN1, a26_rom_8in1_device) +DECLARE_DEVICE_TYPE(A26_ROM_32IN1, a26_rom_32in1_device) +DECLARE_DEVICE_TYPE(A26_ROM_X07, a26_rom_x07_device) + + +#endif // MAME_BUS_VCS_ROM_H diff --git a/src/devices/bus/vcs/scharger.cpp b/src/devices/bus/vcs/scharger.cpp index dc63e100ba9..05d6b006f30 100644 --- a/src/devices/bus/vcs/scharger.cpp +++ b/src/devices/bus/vcs/scharger.cpp @@ -37,12 +37,12 @@ #include "sound/wave.h" #include "formats/a26_cas.h" -const device_type A26_ROM_SUPERCHARGER = device_creator; +DEFINE_DEVICE_TYPE(A26_ROM_SUPERCHARGER, a26_rom_ss_device, "a2600_ss", "Atari 2600 ROM Cart Supercharger") a26_rom_ss_device::a26_rom_ss_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : a26_rom_f6_device(mconfig, A26_ROM_SUPERCHARGER, "Atari 2600 ROM Cart Supercharger", tag, owner, clock, "a2600_ss", __FILE__), - m_cassette(*this, "cassette"), + : a26_rom_f6_device(mconfig, A26_ROM_SUPERCHARGER, tag, owner, clock), + m_cassette(*this, "cassette"), m_maincpu(nullptr), m_reg(0), m_write_delay(0), @@ -51,7 +51,7 @@ a26_rom_ss_device::a26_rom_ss_device(const machine_config &mconfig, const char * m_byte_started(0), m_last_address(0), m_diff_adjust(0) - { +{ } //------------------------------------------------- diff --git a/src/devices/bus/vcs/scharger.h b/src/devices/bus/vcs/scharger.h index d4c8b2d10bc..9aee1ecee2e 100644 --- a/src/devices/bus/vcs/scharger.h +++ b/src/devices/bus/vcs/scharger.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __VCS_SCHARGER_H -#define __VCS_SCHARGER_H +#ifndef MAME_BUS_VCS_SCHARGER_H +#define MAME_BUS_VCS_SCHARGER_H + +#pragma once #include "rom.h" #include "imagedev/cassette.h" @@ -18,17 +20,18 @@ public: // construction/destruction a26_rom_ss_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual machine_config_constructor device_mconfig_additions() const override; - virtual void device_reset() override; - - required_device m_cassette; // reading and writing virtual DECLARE_READ8_MEMBER(read_rom) override; private: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + + required_device m_cassette; + cpu_device *m_maincpu; inline uint8_t read_byte(uint32_t offset); @@ -42,6 +45,6 @@ private: // device type definition -extern const device_type A26_ROM_SUPERCHARGER; +DECLARE_DEVICE_TYPE(A26_ROM_SUPERCHARGER, a26_rom_ss_device) -#endif +#endif // MAME_BUS_VCS_SCHARGER_H diff --git a/src/devices/bus/vcs/vcs_slot.cpp b/src/devices/bus/vcs/vcs_slot.cpp index f3ab23222d9..ec1c653be2a 100644 --- a/src/devices/bus/vcs/vcs_slot.cpp +++ b/src/devices/bus/vcs/vcs_slot.cpp @@ -22,7 +22,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type VCS_CART_SLOT = device_creator; +DEFINE_DEVICE_TYPE(VCS_CART_SLOT, vcs_cart_slot_device, "vcs_cart_slot", "Atari VCS 2600 Cartridge Slot") //------------------------------------------------- @@ -78,9 +78,9 @@ void device_vcs_cart_interface::ram_alloc(uint32_t size) // vcs_cart_slot_device - constructor //------------------------------------------------- vcs_cart_slot_device::vcs_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, VCS_CART_SLOT, "Atari VCS 2600 Cartridge Slot", tag, owner, clock, "vcs_cart_slot", __FILE__), - device_image_interface(mconfig, *this), - device_slot_interface(mconfig, *this), m_cart(nullptr), m_type(0) + device_t(mconfig, VCS_CART_SLOT, tag, owner, clock), + device_image_interface(mconfig, *this), + device_slot_interface(mconfig, *this), m_cart(nullptr), m_type(0) { } diff --git a/src/devices/bus/vcs/vcs_slot.h b/src/devices/bus/vcs/vcs_slot.h index 6ea83683c51..e62dcc2f71b 100755 --- a/src/devices/bus/vcs/vcs_slot.h +++ b/src/devices/bus/vcs/vcs_slot.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __VCS_SLOT_H -#define __VCS_SLOT_H +#ifndef MAME_BUS_VCS_VCS_SLOT_H +#define MAME_BUS_VCS_VCS_SLOT_H + +#pragma once #include "softlist_dev.h" @@ -48,19 +50,18 @@ class device_vcs_cart_interface : public device_slot_card_interface { public: // construction/destruction - device_vcs_cart_interface(const machine_config &mconfig, device_t &device); virtual ~device_vcs_cart_interface(); // reading from ROM virtual DECLARE_READ8_MEMBER(read_rom) { return 0xff; } // writing to RAM chips (sometimes it is in a different range than write_bank!) - virtual DECLARE_WRITE8_MEMBER(write_ram) {} + virtual DECLARE_WRITE8_MEMBER(write_ram) { } // read/write to bankswitch address virtual DECLARE_READ8_MEMBER(read_bank) { return 0xff; } - virtual DECLARE_WRITE8_MEMBER(write_bank) {} + virtual DECLARE_WRITE8_MEMBER(write_bank) { } - virtual void setup_addon_ptr(uint8_t *ptr) {} + virtual void setup_addon_ptr(uint8_t *ptr) { } void rom_alloc(uint32_t size, const char *tag); void ram_alloc(uint32_t size); @@ -70,6 +71,8 @@ public: uint32_t get_ram_size() { return m_ram.size(); } protected: + device_vcs_cart_interface(const machine_config &mconfig, device_t &device); + // internal state uint8_t *m_rom; uint32_t m_rom_size; @@ -88,9 +91,6 @@ public: vcs_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual ~vcs_cart_slot_device(); - // device-level overrides - virtual void device_start() override; - // image-level overrides virtual image_init_result call_load() override; virtual void call_unload() override; @@ -118,6 +118,9 @@ public: virtual DECLARE_WRITE8_MEMBER(write_ram); private: + // device-level overrides + virtual void device_start() override; + device_vcs_cart_interface* m_cart; int m_type; @@ -155,4 +158,4 @@ extern const device_type VCS_CART_SLOT; MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, false) -#endif +#endif // MAME_BUS_VCS_VCS_SLOT_H diff --git a/src/devices/bus/vcs_ctrl/ctrl.cpp b/src/devices/bus/vcs_ctrl/ctrl.cpp index f68088de7bf..f25ef4f6545 100644 --- a/src/devices/bus/vcs_ctrl/ctrl.cpp +++ b/src/devices/bus/vcs_ctrl/ctrl.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITION //************************************************************************** -const device_type VCS_CONTROL_PORT = device_creator; +DEFINE_DEVICE_TYPE(VCS_CONTROL_PORT, vcs_control_port_device, "vcs_control_port", "Atari VCS controller port") @@ -44,7 +44,7 @@ device_vcs_control_port_interface::device_vcs_control_port_interface(const machi //------------------------------------------------- vcs_control_port_device::vcs_control_port_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, VCS_CONTROL_PORT, "Atari VCS control port", tag, owner, clock, "vcs_control_port", __FILE__), + device_t(mconfig, VCS_CONTROL_PORT, tag, owner, clock), device_slot_interface(mconfig, *this), m_device(nullptr), m_write_trigger(*this) { diff --git a/src/devices/bus/vcs_ctrl/ctrl.h b/src/devices/bus/vcs_ctrl/ctrl.h index 4d0de4e3972..bc018839989 100644 --- a/src/devices/bus/vcs_ctrl/ctrl.h +++ b/src/devices/bus/vcs_ctrl/ctrl.h @@ -9,10 +9,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_CVS_CTRL_CTRL_H +#define MAME_BUS_CVS_CTRL_CTRL_H -#ifndef __VCS_CONTROL_PORT__ -#define __VCS_CONTROL_PORT__ +#pragma once @@ -68,10 +68,9 @@ class vcs_control_port_device : public device_t, public: // construction/destruction vcs_control_port_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual ~vcs_control_port_device() { } // static configuration helpers - template static devcb_base &set_trigger_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_trigger.set_callback(object); } + template static devcb_base &set_trigger_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_trigger.set_callback(std::forward(cb)); } // computer interface @@ -113,10 +112,8 @@ private: // device type definition -extern const device_type VCS_CONTROL_PORT; +DECLARE_DEVICE_TYPE(VCS_CONTROL_PORT, vcs_control_port_device) SLOT_INTERFACE_EXTERN( vcs_control_port_devices ); - - -#endif +#endif // MAME_BUS_CVS_CTRL_CTRL_H diff --git a/src/devices/bus/vcs_ctrl/joybooster.cpp b/src/devices/bus/vcs_ctrl/joybooster.cpp index 8a731cc0ef1..9ea3b813ac1 100644 --- a/src/devices/bus/vcs_ctrl/joybooster.cpp +++ b/src/devices/bus/vcs_ctrl/joybooster.cpp @@ -16,7 +16,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type VCS_JOYSTICK_BOOSTER = device_creator; +DEFINE_DEVICE_TYPE(VCS_JOYSTICK_BOOSTER, vcs_joystick_booster_device, "vcs_joystick_booster", "Atari / CBM Digital joystick with Boostergrip") static INPUT_PORTS_START( vcs_joystick_booster ) @@ -58,7 +58,7 @@ ioport_constructor vcs_joystick_booster_device::device_input_ports() const //------------------------------------------------- vcs_joystick_booster_device::vcs_joystick_booster_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, VCS_JOYSTICK_BOOSTER, "Atari / CBM Digital joystick with Boostergrip", tag, owner, clock, "vcs_joystick_booster", __FILE__), + device_t(mconfig, VCS_JOYSTICK_BOOSTER, tag, owner, clock), device_vcs_control_port_interface(mconfig, *this), m_joy(*this, "JOY"), m_potx(*this, "POTX"), diff --git a/src/devices/bus/vcs_ctrl/joybooster.h b/src/devices/bus/vcs_ctrl/joybooster.h index bc5ecbda1c2..8b3cf922a1b 100644 --- a/src/devices/bus/vcs_ctrl/joybooster.h +++ b/src/devices/bus/vcs_ctrl/joybooster.h @@ -7,10 +7,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_VCS_CTRL_JOYBOOSTER_H +#define MAME_BUS_VCS_CTRL_JOYBOOSTER_H -#ifndef __VCS_JOYSTICKBOOSTER__ -#define __VCS_JOYSTICKBOOSTER__ +#pragma once #include "ctrl.h" @@ -52,7 +52,6 @@ private: // device type definition -extern const device_type VCS_JOYSTICK_BOOSTER; - +DECLARE_DEVICE_TYPE(VCS_JOYSTICK_BOOSTER, vcs_joystick_booster_device) -#endif +#endif // MAME_BUS_VCS_CTRL_JOYBOOSTER_H diff --git a/src/devices/bus/vcs_ctrl/joystick.cpp b/src/devices/bus/vcs_ctrl/joystick.cpp index 87ae2f72aa6..c911f435a0c 100644 --- a/src/devices/bus/vcs_ctrl/joystick.cpp +++ b/src/devices/bus/vcs_ctrl/joystick.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type VCS_JOYSTICK = device_creator; +DEFINE_DEVICE_TYPE(VCS_JOYSTICK, vcs_joystick_device, "vcs_joystick", "Atari / CBM Digital joystick") static INPUT_PORTS_START( vcs_joystick ) @@ -49,7 +49,7 @@ ioport_constructor vcs_joystick_device::device_input_ports() const //------------------------------------------------- vcs_joystick_device::vcs_joystick_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, VCS_JOYSTICK, "Atari / CBM Digital joystick", tag, owner, clock, "vcs_joystick", __FILE__), + device_t(mconfig, VCS_JOYSTICK, tag, owner, clock), device_vcs_control_port_interface(mconfig, *this), m_joy(*this, "JOY") { diff --git a/src/devices/bus/vcs_ctrl/joystick.h b/src/devices/bus/vcs_ctrl/joystick.h index 1f7663cd3b5..dcae27d2965 100644 --- a/src/devices/bus/vcs_ctrl/joystick.h +++ b/src/devices/bus/vcs_ctrl/joystick.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_VCS_CTRL_JOYSTICK_H +#define MAME_BUS_VCS_CTRL_JOYSTICK_H -#ifndef __VCS_JOYSTICK__ -#define __VCS_JOYSTICK__ +#pragma once #include "ctrl.h" @@ -44,7 +44,7 @@ private: // device type definition -extern const device_type VCS_JOYSTICK; +DECLARE_DEVICE_TYPE(VCS_JOYSTICK, vcs_joystick_device) -#endif +#endif // MAME_BUS_VCS_CTRL_JOYSTICK_H diff --git a/src/devices/bus/vcs_ctrl/keypad.cpp b/src/devices/bus/vcs_ctrl/keypad.cpp index 7c8b0f0104a..97a43253c08 100644 --- a/src/devices/bus/vcs_ctrl/keypad.cpp +++ b/src/devices/bus/vcs_ctrl/keypad.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type VCS_KEYPAD = device_creator; +DEFINE_DEVICE_TYPE(VCS_KEYPAD, vcs_keypad_device, "vcs_keypad", "Atari / CBM Keypad") static INPUT_PORTS_START( vcs_keypad ) @@ -55,9 +55,10 @@ ioport_constructor vcs_keypad_device::device_input_ports() const //------------------------------------------------- vcs_keypad_device::vcs_keypad_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, VCS_KEYPAD, "Atari / CBM Keypad", tag, owner, clock, "vcs_keypad", __FILE__), + device_t(mconfig, VCS_KEYPAD, tag, owner, clock), device_vcs_control_port_interface(mconfig, *this), - m_keypad(*this, "KEYPAD"), m_column(0) + m_keypad(*this, "KEYPAD"), + m_column(0) { } diff --git a/src/devices/bus/vcs_ctrl/keypad.h b/src/devices/bus/vcs_ctrl/keypad.h index 71ad42999cc..37733cc135c 100644 --- a/src/devices/bus/vcs_ctrl/keypad.h +++ b/src/devices/bus/vcs_ctrl/keypad.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_VCS_CTRL_KEYPAD_H +#define MAME_BUS_VCS_CTRL_KEYPAD_H -#ifndef __VCS_KEYPAD__ -#define __VCS_KEYPAD__ +#pragma once #include "ctrl.h" @@ -52,7 +52,6 @@ private: // device type definition -extern const device_type VCS_KEYPAD; - +DECLARE_DEVICE_TYPE(VCS_KEYPAD, vcs_keypad_device) -#endif +#endif // MAME_BUS_VCS_CTRL_KEYPAD_H diff --git a/src/devices/bus/vcs_ctrl/lightpen.cpp b/src/devices/bus/vcs_ctrl/lightpen.cpp index fe129a9fe5c..6f67d4bd901 100644 --- a/src/devices/bus/vcs_ctrl/lightpen.cpp +++ b/src/devices/bus/vcs_ctrl/lightpen.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type VCS_LIGHTPEN = device_creator; +DEFINE_DEVICE_TYPE(VCS_LIGHTPEN, vcs_lightpen_device, "vcs_lightpen", "Atari / CBM Light Pen") INPUT_CHANGED_MEMBER( vcs_lightpen_device::trigger ) @@ -58,7 +58,7 @@ ioport_constructor vcs_lightpen_device::device_input_ports() const //------------------------------------------------- vcs_lightpen_device::vcs_lightpen_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, VCS_LIGHTPEN, "Atari / CBM Light Pen", tag, owner, clock, "vcs_lightpen", __FILE__), + device_t(mconfig, VCS_LIGHTPEN, tag, owner, clock), device_vcs_control_port_interface(mconfig, *this), m_joy(*this, "JOY"), m_lightx(*this, "LIGHTX"), diff --git a/src/devices/bus/vcs_ctrl/lightpen.h b/src/devices/bus/vcs_ctrl/lightpen.h index 5c2a132ea4e..f0b2805bdd6 100644 --- a/src/devices/bus/vcs_ctrl/lightpen.h +++ b/src/devices/bus/vcs_ctrl/lightpen.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_VCS_CTRL_LIGHTPEN_H +#define MAME_BUS_VCS_CTRL_LIGHTPEN_H -#ifndef __VCS_LIGHTPEN__ -#define __VCS_LIGHTPEN__ +#pragma once #include "ctrl.h" @@ -48,7 +48,6 @@ private: // device type definition -extern const device_type VCS_LIGHTPEN; - +DECLARE_DEVICE_TYPE(VCS_LIGHTPEN, vcs_lightpen_device) -#endif +#endif // MAME_BUS_VCS_CTRL_LIGHTPEN_H diff --git a/src/devices/bus/vcs_ctrl/paddles.cpp b/src/devices/bus/vcs_ctrl/paddles.cpp index 17ee8c854eb..09e7a0d26a5 100644 --- a/src/devices/bus/vcs_ctrl/paddles.cpp +++ b/src/devices/bus/vcs_ctrl/paddles.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type VCS_PADDLES = device_creator; +DEFINE_DEVICE_TYPE(VCS_PADDLES, vcs_paddles_device, "vcs_paddles", "Atari / CBM Dual paddles") static INPUT_PORTS_START( vcs_paddles ) @@ -52,7 +52,7 @@ ioport_constructor vcs_paddles_device::device_input_ports() const //------------------------------------------------- vcs_paddles_device::vcs_paddles_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, VCS_PADDLES, "Atari / CBM Digital paddles", tag, owner, clock, "vcs_paddles", __FILE__), + device_t(mconfig, VCS_PADDLES, tag, owner, clock), device_vcs_control_port_interface(mconfig, *this), m_joy(*this, "JOY"), m_potx(*this, "POTX"), diff --git a/src/devices/bus/vcs_ctrl/paddles.h b/src/devices/bus/vcs_ctrl/paddles.h index c6b4b2db1ce..e88084066ee 100644 --- a/src/devices/bus/vcs_ctrl/paddles.h +++ b/src/devices/bus/vcs_ctrl/paddles.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_VCS_CTRL_PADDLES_H +#define MAME_BUS_VCS_CTRL_PADDLES_H -#ifndef __VCS_PADDLES__ -#define __VCS_PADDLES__ +#pragma once #include "ctrl.h" @@ -51,7 +51,6 @@ private: // device type definition -extern const device_type VCS_PADDLES; - +DECLARE_DEVICE_TYPE(VCS_PADDLES, vcs_paddles_device) -#endif +#endif // MAME_BUS_VCS_CTRL_PADDLES_H diff --git a/src/devices/bus/vcs_ctrl/wheel.cpp b/src/devices/bus/vcs_ctrl/wheel.cpp index 2bff2cb5698..76e86530cf8 100644 --- a/src/devices/bus/vcs_ctrl/wheel.cpp +++ b/src/devices/bus/vcs_ctrl/wheel.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type VCS_WHEEL = device_creator; +DEFINE_DEVICE_TYPE(VCS_WHEEL, vcs_wheel_device, "vcs_wheel", "Atari / CBM Driving Wheel") static INPUT_PORTS_START( vcs_wheel ) @@ -48,7 +48,7 @@ ioport_constructor vcs_wheel_device::device_input_ports() const //------------------------------------------------- vcs_wheel_device::vcs_wheel_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, VCS_WHEEL, "Atari / CBM Driving Wheel", tag, owner, clock, "vcs_wheel", __FILE__), + device_t(mconfig, VCS_WHEEL, tag, owner, clock), device_vcs_control_port_interface(mconfig, *this), m_joy(*this, "JOY"), m_wheel(*this, "WHEEL") diff --git a/src/devices/bus/vcs_ctrl/wheel.h b/src/devices/bus/vcs_ctrl/wheel.h index 91b0c836929..369afe7c614 100644 --- a/src/devices/bus/vcs_ctrl/wheel.h +++ b/src/devices/bus/vcs_ctrl/wheel.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_VCS_CTRL_WHEEL_H +#define MAME_BUS_VCS_CTRL_WHEEL_H -#ifndef __VCS_WHEEL__ -#define __VCS_WHEEL__ +#pragma once #include "ctrl.h" @@ -45,7 +45,6 @@ private: // device type definition -extern const device_type VCS_WHEEL; - +DECLARE_DEVICE_TYPE(VCS_WHEEL, vcs_wheel_device) -#endif +#endif // MAME_BUS_VCS_CTRL_WHEEL_H diff --git a/src/devices/bus/vectrex/rom.cpp b/src/devices/bus/vectrex/rom.cpp index e4f53eb8e1d..54697fe34b3 100644 --- a/src/devices/bus/vectrex/rom.cpp +++ b/src/devices/bus/vectrex/rom.cpp @@ -20,30 +20,28 @@ // vectrex_rom_device - constructor //------------------------------------------------- -const device_type VECTREX_ROM_STD = device_creator; -const device_type VECTREX_ROM_64K = device_creator; -const device_type VECTREX_ROM_SRAM = device_creator; +DEFINE_DEVICE_TYPE(VECTREX_ROM_STD, vectrex_rom_device, "vectrex_rom", "Vectrex Standard Carts") +DEFINE_DEVICE_TYPE(VECTREX_ROM_64K, vectrex_rom64k_device, "vectrex_64k", "Vectrex Carts w/Bankswitch") +DEFINE_DEVICE_TYPE(VECTREX_ROM_SRAM, vectrex_sram_device, "vectrex_sram", "Vectrex Carts w/SRAM") -vectrex_rom_device::vectrex_rom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_vectrex_cart_interface(mconfig, *this) +vectrex_rom_device::vectrex_rom_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock), device_vectrex_cart_interface(mconfig, *this) { } vectrex_rom_device::vectrex_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, VECTREX_ROM_STD, "Vectrex Standard Carts", tag, owner, clock, "vectrex_rom", __FILE__), - device_vectrex_cart_interface(mconfig, *this) + : vectrex_rom_device(mconfig, VECTREX_ROM_STD, tag, owner, clock) { } vectrex_rom64k_device::vectrex_rom64k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : vectrex_rom_device(mconfig, VECTREX_ROM_64K, "Vectrex Carts w/ Bankswitch", tag, owner, clock, "vectrex_64k", __FILE__), m_bank(0) - { + : vectrex_rom_device(mconfig, VECTREX_ROM_64K, tag, owner, clock), m_bank(0) +{ } vectrex_sram_device::vectrex_sram_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : vectrex_rom_device(mconfig, VECTREX_ROM_SRAM, "Vectrex Carts w/ SRAM", tag, owner, clock, "vectrex_sram", __FILE__) + : vectrex_rom_device(mconfig, VECTREX_ROM_SRAM, tag, owner, clock) { } diff --git a/src/devices/bus/vectrex/rom.h b/src/devices/bus/vectrex/rom.h index 4ef56d8f58d..375db83315c 100644 --- a/src/devices/bus/vectrex/rom.h +++ b/src/devices/bus/vectrex/rom.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __VECTREX_ROM_H -#define __VECTREX_ROM_H +#ifndef MAME_BUS_VECTREX_ROM_H +#define MAME_BUS_VECTREX_ROM_H + +#pragma once #include "slot.h" @@ -13,15 +15,17 @@ class vectrex_rom_device : public device_t, { public: // construction/destruction - vectrex_rom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); vectrex_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override {} - virtual void device_reset() override {} - // reading and writing virtual DECLARE_READ8_MEMBER(read_rom) override; + +protected: + vectrex_rom_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual void device_start() override { } + virtual void device_reset() override { } }; // ======================> vectrex_rom64k_device @@ -32,14 +36,15 @@ public: // construction/destruction vectrex_rom64k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - // reading and writing virtual DECLARE_READ8_MEMBER(read_rom) override; virtual DECLARE_WRITE8_MEMBER(write_bank) override; +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + private: int m_bank; }; @@ -59,9 +64,8 @@ public: // device type definition -extern const device_type VECTREX_ROM_STD; -extern const device_type VECTREX_ROM_64K; -extern const device_type VECTREX_ROM_SRAM; - +DECLARE_DEVICE_TYPE(VECTREX_ROM_STD, vectrex_rom_device) +DECLARE_DEVICE_TYPE(VECTREX_ROM_64K, vectrex_rom64k_device) +DECLARE_DEVICE_TYPE(VECTREX_ROM_SRAM, vectrex_sram_device) -#endif +#endif // MAME_BUS_VECTREX_ROM_H diff --git a/src/devices/bus/vectrex/slot.cpp b/src/devices/bus/vectrex/slot.cpp index 60fadce1193..43f39178a49 100644 --- a/src/devices/bus/vectrex/slot.cpp +++ b/src/devices/bus/vectrex/slot.cpp @@ -15,7 +15,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type VECTREX_CART_SLOT = device_creator; +DEFINE_DEVICE_TYPE(VECTREX_CART_SLOT, vectrex_cart_slot_device, "vectrex_cart_slot", "GCE Vectrex Cartridge Slot") //************************************************************************** // Vectrex Cartridges Interface @@ -63,11 +63,12 @@ void device_vectrex_cart_interface::rom_alloc(uint32_t size, const char *tag) // vectrex_cart_slot_device - constructor //------------------------------------------------- vectrex_cart_slot_device::vectrex_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, VECTREX_CART_SLOT, "GCE Vectrex Cartridge Slot", tag, owner, clock, "vectrex_cart_slot", __FILE__), - device_image_interface(mconfig, *this), - device_slot_interface(mconfig, *this), - m_type(VECTREX_STD), - m_vec3d(VEC3D_NONE), m_cart(nullptr) + device_t(mconfig, VECTREX_CART_SLOT, tag, owner, clock), + device_image_interface(mconfig, *this), + device_slot_interface(mconfig, *this), + m_type(VECTREX_STD), + m_vec3d(VEC3D_NONE), + m_cart(nullptr) { } diff --git a/src/devices/bus/vectrex/slot.h b/src/devices/bus/vectrex/slot.h index 22fa385fc60..605e273875f 100644 --- a/src/devices/bus/vectrex/slot.h +++ b/src/devices/bus/vectrex/slot.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __VECTREX_SLOT_H -#define __VECTREX_SLOT_H +#ifndef MAME_BUS_VECTREX_SLOT_H +#define MAME_BUS_VECTREX_SLOT_H + +#pragma once #include "softlist_dev.h" @@ -34,19 +36,20 @@ class device_vectrex_cart_interface : public device_slot_card_interface { public: // construction/destruction - device_vectrex_cart_interface(const machine_config &mconfig, device_t &device); virtual ~device_vectrex_cart_interface(); // reading and writing virtual DECLARE_READ8_MEMBER(read_rom) { return 0xff; } - virtual DECLARE_WRITE8_MEMBER(write_ram) {} - virtual DECLARE_WRITE8_MEMBER(write_bank) {} + virtual DECLARE_WRITE8_MEMBER(write_ram) { } + virtual DECLARE_WRITE8_MEMBER(write_bank) { } void rom_alloc(uint32_t size, const char *tag); uint8_t* get_rom_base() { return m_rom; } uint32_t get_rom_size() { return m_rom_size; } protected: + device_vectrex_cart_interface(const machine_config &mconfig, device_t &device); + // internal state uint8_t *m_rom; uint32_t m_rom_size; @@ -64,12 +67,9 @@ public: vectrex_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual ~vectrex_cart_slot_device(); - // device-level overrides - virtual void device_start() override; - // image-level overrides virtual image_init_result call_load() override; - virtual void call_unload() override {} + virtual void call_unload() override { } virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); } int get_type() { return m_type; } @@ -93,6 +93,8 @@ public: virtual DECLARE_WRITE8_MEMBER(write_bank); protected: + // device-level overrides + virtual void device_start() override; int m_type, m_vec3d; device_vectrex_cart_interface* m_cart; @@ -101,7 +103,7 @@ protected: // device type definition -extern const device_type VECTREX_CART_SLOT; +DECLARE_DEVICE_TYPE(VECTREX_CART_SLOT, vectrex_cart_slot_device) /*************************************************************************** @@ -113,4 +115,5 @@ extern const device_type VECTREX_CART_SLOT; #define MCFG_VECTREX_CARTRIDGE_ADD(_tag,_slot_intf,_def_slot) \ MCFG_DEVICE_ADD(_tag, VECTREX_CART_SLOT, 0) \ MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, false) -#endif + +#endif // MAME_BUS_VECTREX_SLOT_H diff --git a/src/devices/bus/vic10/exp.cpp b/src/devices/bus/vic10/exp.cpp index 75237c2e4b5..c4f7c3daeae 100644 --- a/src/devices/bus/vic10/exp.cpp +++ b/src/devices/bus/vic10/exp.cpp @@ -16,7 +16,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type VIC10_EXPANSION_SLOT = device_creator; +DEFINE_DEVICE_TYPE(VIC10_EXPANSION_SLOT, vic10_expansion_slot_device, "vic10_expansion_slot", "VIC-10 expansion port") @@ -57,13 +57,14 @@ device_vic10_expansion_card_interface::~device_vic10_expansion_card_interface() //------------------------------------------------- vic10_expansion_slot_device::vic10_expansion_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, VIC10_EXPANSION_SLOT, "VIC-10 expansion port", tag, owner, clock, "vic10_expansion_slot", __FILE__), - device_slot_interface(mconfig, *this), - device_image_interface(mconfig, *this), - m_write_irq(*this), - m_write_res(*this), - m_write_cnt(*this), - m_write_sp(*this), m_card(nullptr) + device_t(mconfig, VIC10_EXPANSION_SLOT, tag, owner, clock), + device_slot_interface(mconfig, *this), + device_image_interface(mconfig, *this), + m_write_irq(*this), + m_write_res(*this), + m_write_cnt(*this), + m_write_sp(*this), + m_card(nullptr) { } diff --git a/src/devices/bus/vic10/exp.h b/src/devices/bus/vic10/exp.h index cf9ac72516b..81135fef1f6 100644 --- a/src/devices/bus/vic10/exp.h +++ b/src/devices/bus/vic10/exp.h @@ -31,10 +31,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_VIC10_EXP_H +#define MAME_BUS_VIC10_EXP_H -#ifndef __VIC10_EXPANSION_SLOT__ -#define __VIC10_EXPANSION_SLOT__ +#pragma once #include "softlist_dev.h" #include "formats/cbm_crt.h" @@ -94,10 +94,10 @@ public: // construction/destruction vic10_expansion_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_irq_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_irq.set_callback(object); } - template static devcb_base &set_res_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_res.set_callback(object); } - template static devcb_base &set_cnt_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_cnt.set_callback(object); } - template static devcb_base &set_sp_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_sp.set_callback(object); } + template static devcb_base &set_irq_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_irq.set_callback(std::forward(cb)); } + template static devcb_base &set_res_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_res.set_callback(std::forward(cb)); } + template static devcb_base &set_cnt_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_cnt.set_callback(std::forward(cb)); } + template static devcb_base &set_sp_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_sp.set_callback(std::forward(cb)); } // computer interface uint8_t cd_r(address_space &space, offs_t offset, uint8_t data, int lorom, int uprom, int exram); @@ -151,17 +151,18 @@ class device_vic10_expansion_card_interface : public device_slot_card_interface public: // construction/destruction - device_vic10_expansion_card_interface(const machine_config &mconfig, device_t &device); virtual ~device_vic10_expansion_card_interface(); - virtual uint8_t vic10_cd_r(address_space &space, offs_t offset, uint8_t data, int lorom, int uprom, int exram) { return data; }; - virtual void vic10_cd_w(address_space &space, offs_t offset, uint8_t data, int lorom, int uprom, int exram) { }; - virtual int vic10_p0_r() { return 0; }; - virtual void vic10_p0_w(int state) { }; - virtual void vic10_sp_w(int state) { }; - virtual void vic10_cnt_w(int state) { }; + virtual uint8_t vic10_cd_r(address_space &space, offs_t offset, uint8_t data, int lorom, int uprom, int exram) { return data; } + virtual void vic10_cd_w(address_space &space, offs_t offset, uint8_t data, int lorom, int uprom, int exram) { } + virtual int vic10_p0_r() { return 0; } + virtual void vic10_p0_w(int state) { } + virtual void vic10_sp_w(int state) { } + virtual void vic10_cnt_w(int state) { } protected: + device_vic10_expansion_card_interface(const machine_config &mconfig, device_t &device); + optional_shared_ptr m_lorom; optional_shared_ptr m_exram; optional_shared_ptr m_uprom; @@ -171,11 +172,9 @@ protected: // device type definition -extern const device_type VIC10_EXPANSION_SLOT; +DECLARE_DEVICE_TYPE(VIC10_EXPANSION_SLOT, vic10_expansion_slot_device) SLOT_INTERFACE_EXTERN( vic10_expansion_cards ); - - -#endif +#endif // MAME_BUS_VIC10_EXP_H diff --git a/src/devices/bus/vic10/std.cpp b/src/devices/bus/vic10/std.cpp index 28d9530494f..0257ea11d98 100644 --- a/src/devices/bus/vic10/std.cpp +++ b/src/devices/bus/vic10/std.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type VIC10_STD = device_creator; +DEFINE_DEVICE_TYPE(VIC10_STD, vic10_standard_cartridge_device, "vic10_standard", "VIC-10 Standard Cartridge") @@ -28,8 +28,7 @@ const device_type VIC10_STD = device_creator; //------------------------------------------------- vic10_standard_cartridge_device::vic10_standard_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, VIC10_STD, "VIC-10 Standard Cartridge", tag, owner, clock, "vic10_standard", __FILE__), - device_vic10_expansion_card_interface(mconfig, *this) + : device_t(mconfig, VIC10_STD, tag, owner, clock), device_vic10_expansion_card_interface(mconfig, *this) { } diff --git a/src/devices/bus/vic10/std.h b/src/devices/bus/vic10/std.h index b95391f8cb5..05480365eb2 100644 --- a/src/devices/bus/vic10/std.h +++ b/src/devices/bus/vic10/std.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_VIC10_STD_H +#define MAME_BUS_VIC10_STD_H -#ifndef __VIC10_STD__ -#define __VIC10_STD__ +#pragma once #include "exp.h" @@ -40,7 +40,6 @@ protected: // device type definition extern const device_type VIC10_STD; +DECLARE_DEVICE_TYPE(VIC10_STD, vic10_standard_cartridge_device) - - -#endif +#endif // MAME_BUS_VIC10_STD_H diff --git a/src/devices/bus/vic20/4cga.cpp b/src/devices/bus/vic20/4cga.cpp index ede850ed5be..f806598433a 100644 --- a/src/devices/bus/vic20/4cga.cpp +++ b/src/devices/bus/vic20/4cga.cpp @@ -18,7 +18,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type C64_4CGA = device_creator; +DEFINE_DEVICE_TYPE(C64_4CGA, c64_4cga_device, "c64_4cga", "C64 Protovision 4 Player Interface") static INPUT_PORTS_START( c64_4player ) @@ -60,7 +60,7 @@ ioport_constructor c64_4cga_device::device_input_ports() const //------------------------------------------------- c64_4cga_device::c64_4cga_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, C64_4CGA, "C64 Protovision 4 Player Interface", tag, owner, clock, "c64_4cga", __FILE__), + device_t(mconfig, C64_4CGA, tag, owner, clock), device_pet_user_port_interface(mconfig, *this), m_port(0), m_joy3(0xf), diff --git a/src/devices/bus/vic20/4cga.h b/src/devices/bus/vic20/4cga.h index 0e2cee4bec5..b4e1ada9a05 100644 --- a/src/devices/bus/vic20/4cga.h +++ b/src/devices/bus/vic20/4cga.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_VIC20_4CGA_H +#define MAME_BUS_VIC20_4CGA_H -#ifndef __C64_4CGA__ -#define __C64_4CGA__ +#pragma once #include "user.h" @@ -59,7 +59,7 @@ private: // device type definition -extern const device_type C64_4CGA; +DECLARE_DEVICE_TYPE(C64_4CGA, c64_4cga_device) -#endif +#endif // MAME_BUS_VIC20_4CGA_H diff --git a/src/devices/bus/vic20/exp.cpp b/src/devices/bus/vic20/exp.cpp index 7621310b5c1..535375536be 100644 --- a/src/devices/bus/vic20/exp.cpp +++ b/src/devices/bus/vic20/exp.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type VIC20_EXPANSION_SLOT = device_creator; +DEFINE_DEVICE_TYPE(VIC20_EXPANSION_SLOT, vic20_expansion_slot_device, "vic20_expansion_slot", "VIC-20 expansion port") @@ -58,12 +58,13 @@ device_vic20_expansion_card_interface::~device_vic20_expansion_card_interface() //------------------------------------------------- vic20_expansion_slot_device::vic20_expansion_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, VIC20_EXPANSION_SLOT, "VIC-20 expansion port", tag, owner, clock, "vic20_expansion_slot", __FILE__), - device_slot_interface(mconfig, *this), - device_image_interface(mconfig, *this), - m_write_irq(*this), - m_write_nmi(*this), - m_write_res(*this), m_card(nullptr) + device_t(mconfig, VIC20_EXPANSION_SLOT, tag, owner, clock), + device_slot_interface(mconfig, *this), + device_image_interface(mconfig, *this), + m_write_irq(*this), + m_write_nmi(*this), + m_write_res(*this), + m_card(nullptr) { } diff --git a/src/devices/bus/vic20/exp.h b/src/devices/bus/vic20/exp.h index 10eccc7c6b1..12c958598f0 100644 --- a/src/devices/bus/vic20/exp.h +++ b/src/devices/bus/vic20/exp.h @@ -31,10 +31,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_VIC20_EXP_H +#define MAME_BUS_VIC20_EXP_H -#ifndef __VIC20_EXPANSION_SLOT__ -#define __VIC20_EXPANSION_SLOT__ +#pragma once #include "softlist_dev.h" @@ -89,9 +89,9 @@ public: // construction/destruction vic20_expansion_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_irq_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_irq.set_callback(object); } - template static devcb_base &set_nmi_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_nmi.set_callback(object); } - template static devcb_base &set_res_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_res.set_callback(object); } + template static devcb_base &set_irq_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_irq.set_callback(std::forward(cb)); } + template static devcb_base &set_nmi_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_nmi.set_callback(std::forward(cb)); } + template static devcb_base &set_res_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_res.set_callback(std::forward(cb)); } // computer interface uint8_t cd_r(address_space &space, offs_t offset, uint8_t data, int ram1, int ram2, int ram3, int blk1, int blk2, int blk3, int blk5, int io2, int io3); @@ -141,13 +141,14 @@ class device_vic20_expansion_card_interface : public device_slot_card_interface public: // construction/destruction - device_vic20_expansion_card_interface(const machine_config &mconfig, device_t &device); virtual ~device_vic20_expansion_card_interface(); virtual uint8_t vic20_cd_r(address_space &space, offs_t offset, uint8_t data, int ram1, int ram2, int ram3, int blk1, int blk2, int blk3, int blk5, int io2, int io3) { return data; }; virtual void vic20_cd_w(address_space &space, offs_t offset, uint8_t data, int ram1, int ram2, int ram3, int blk1, int blk2, int blk3, int blk5, int io2, int io3) { }; protected: + device_vic20_expansion_card_interface(const machine_config &mconfig, device_t &device); + optional_shared_ptr m_blk1; optional_shared_ptr m_blk2; optional_shared_ptr m_blk3; @@ -160,10 +161,9 @@ protected: // device type definition extern const device_type VIC20_EXPANSION_SLOT; +DECLARE_DEVICE_TYPE(VIC20_EXPANSION_SLOT, vic20_expansion_slot_device) SLOT_INTERFACE_EXTERN( vic20_expansion_cards ); - - -#endif +#endif // MAME_BUS_VIC20_EXP_H diff --git a/src/devices/bus/vic20/fe3.cpp b/src/devices/bus/vic20/fe3.cpp index dbe03de0183..5b4b78af977 100644 --- a/src/devices/bus/vic20/fe3.cpp +++ b/src/devices/bus/vic20/fe3.cpp @@ -56,7 +56,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type VIC20_FE3 = device_creator; +DEFINE_DEVICE_TYPE(VIC20_FE3, vic20_final_expansion_3_device, "vic20_fe3", "Final Expansion v3") //------------------------------------------------- @@ -76,7 +76,7 @@ ROM_END // rom_region - device-specific ROM region //------------------------------------------------- -const tiny_rom_entry *vic20_final_expansion_3_t::device_rom_region() const +const tiny_rom_entry *vic20_final_expansion_3_device::device_rom_region() const { return ROM_NAME( vic20_fe3 ); } @@ -96,7 +96,7 @@ MACHINE_CONFIG_END // machine configurations //------------------------------------------------- -machine_config_constructor vic20_final_expansion_3_t::device_mconfig_additions() const +machine_config_constructor vic20_final_expansion_3_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( vic20_fe3 ); } @@ -108,11 +108,11 @@ machine_config_constructor vic20_final_expansion_3_t::device_mconfig_additions() //************************************************************************** //------------------------------------------------- -// vic20_final_expansion_3_t - constructor +// vic20_final_expansion_3_device - constructor //------------------------------------------------- -vic20_final_expansion_3_t::vic20_final_expansion_3_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, VIC20_FE3, "Final Expansion v3", tag, owner, clock, "vic20_fe3", __FILE__), +vic20_final_expansion_3_device::vic20_final_expansion_3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, VIC20_FE3, tag, owner, clock), device_vic20_expansion_card_interface(mconfig, *this), m_flash_rom(*this, AM29F040_TAG), m_ram(*this, "sram"), m_reg1(0), m_reg2(0), m_lockbit(0) @@ -124,7 +124,7 @@ vic20_final_expansion_3_t::vic20_final_expansion_3_t(const machine_config &mconf // device_start - device-specific startup //------------------------------------------------- -void vic20_final_expansion_3_t::device_start() +void vic20_final_expansion_3_device::device_start() { m_ram.allocate(0x80000); @@ -139,7 +139,7 @@ void vic20_final_expansion_3_t::device_start() // device_reset - device-specific reset //------------------------------------------------- -void vic20_final_expansion_3_t::device_reset() +void vic20_final_expansion_3_device::device_reset() { m_reg1 = 0; m_reg2 = 0; @@ -150,7 +150,7 @@ void vic20_final_expansion_3_t::device_reset() // vic20_cd_r - cartridge data read //------------------------------------------------- -uint8_t vic20_final_expansion_3_t::vic20_cd_r(address_space &space, offs_t offset, uint8_t data, int ram1, int ram2, int ram3, int blk1, int blk2, int blk3, int blk5, int io2, int io3) +uint8_t vic20_final_expansion_3_device::vic20_cd_r(address_space &space, offs_t offset, uint8_t data, int ram1, int ram2, int ram3, int blk1, int blk2, int blk3, int blk5, int io2, int io3) { switch (m_reg1 & REG1_MODE_MASK) { @@ -371,7 +371,7 @@ uint8_t vic20_final_expansion_3_t::vic20_cd_r(address_space &space, offs_t offse // vic20_cd_w - cartridge data write //------------------------------------------------- -void vic20_final_expansion_3_t::vic20_cd_w(address_space &space, offs_t offset, uint8_t data, int ram1, int ram2, int ram3, int blk1, int blk2, int blk3, int blk5, int io2, int io3) +void vic20_final_expansion_3_device::vic20_cd_w(address_space &space, offs_t offset, uint8_t data, int ram1, int ram2, int ram3, int blk1, int blk2, int blk3, int blk5, int io2, int io3) { switch (m_reg1 & REG1_MODE_MASK) { @@ -589,7 +589,7 @@ void vic20_final_expansion_3_t::vic20_cd_w(address_space &space, offs_t offset, // get_address - //------------------------------------------------- -offs_t vic20_final_expansion_3_t::get_address(int bank, int block, offs_t offset) +offs_t vic20_final_expansion_3_device::get_address(int bank, int block, offs_t offset) { block ^= (m_reg2 >> 5) & 0x03; @@ -601,7 +601,7 @@ offs_t vic20_final_expansion_3_t::get_address(int bank, int block, offs_t offset // read_register - //------------------------------------------------- -uint8_t vic20_final_expansion_3_t::read_register(offs_t offset) +uint8_t vic20_final_expansion_3_device::read_register(offs_t offset) { uint8_t data = 0; @@ -624,7 +624,7 @@ uint8_t vic20_final_expansion_3_t::read_register(offs_t offset) // write_register - //------------------------------------------------- -void vic20_final_expansion_3_t::write_register(offs_t offset, uint8_t data) +void vic20_final_expansion_3_device::write_register(offs_t offset, uint8_t data) { switch (offset) { diff --git a/src/devices/bus/vic20/fe3.h b/src/devices/bus/vic20/fe3.h index 4e712b257af..24f9b954b87 100644 --- a/src/devices/bus/vic20/fe3.h +++ b/src/devices/bus/vic20/fe3.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_VIC20_FE3_H +#define MAME_BUS_VIC20_FE3_H -#ifndef __VIC20_FE3__ -#define __VIC20_FE3__ +#pragma once #include "exp.h" #include "machine/intelfsh.h" @@ -20,14 +20,14 @@ // TYPE DEFINITIONS //************************************************************************** -// ======================> vic20_final_expansion_3_t +// ======================> vic20_final_expansion_3_device -class vic20_final_expansion_3_t : public device_t, +class vic20_final_expansion_3_device : public device_t, public device_vic20_expansion_card_interface { public: // construction/destruction - vic20_final_expansion_3_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + vic20_final_expansion_3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual const tiny_rom_entry *device_rom_region() const override; @@ -86,8 +86,6 @@ private: // device type definition -extern const device_type VIC20_FE3; - - +DECLARE_DEVICE_TYPE(VIC20_FE3, vic20_final_expansion_3_device) -#endif +#endif // MAME_BUS_VIC20_FE3_H diff --git a/src/devices/bus/vic20/megacart.cpp b/src/devices/bus/vic20/megacart.cpp index 7186e6b405c..4b592a50714 100644 --- a/src/devices/bus/vic20/megacart.cpp +++ b/src/devices/bus/vic20/megacart.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type VIC20_MEGACART = device_creator; +DEFINE_DEVICE_TYPE(VIC20_MEGACART, vic20_megacart_device, "vic20_megacart", "VIC-20 Mega-Cart") //------------------------------------------------- @@ -48,10 +48,10 @@ machine_config_constructor vic20_megacart_device::device_mconfig_additions() con //------------------------------------------------- vic20_megacart_device::vic20_megacart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, VIC20_MEGACART, "Mega-Cart", tag, owner, clock, "megacart", __FILE__), - device_vic20_expansion_card_interface(mconfig, *this), - device_nvram_interface(mconfig, *this), - m_nvram_en(0) + : device_t(mconfig, VIC20_MEGACART, tag, owner, clock) + , device_vic20_expansion_card_interface(mconfig, *this) + , device_nvram_interface(mconfig, *this) + , m_nvram_en(0) { } diff --git a/src/devices/bus/vic20/megacart.h b/src/devices/bus/vic20/megacart.h index 8a35c468adb..a4de69ea228 100644 --- a/src/devices/bus/vic20/megacart.h +++ b/src/devices/bus/vic20/megacart.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_VIC20_MEGACART_H +#define MAME_BUS_VIC20_MEGACART_H -#ifndef __VIC20_MEGACART__ -#define __VIC20_MEGACART__ +#pragma once #include "exp.h" @@ -52,8 +52,6 @@ private: // device type definition -extern const device_type VIC20_MEGACART; - - +DECLARE_DEVICE_TYPE(VIC20_MEGACART, vic20_megacart_device) -#endif +#endif // MAME_BUS_VIC20_MEGACART_H diff --git a/src/devices/bus/vic20/speakeasy.cpp b/src/devices/bus/vic20/speakeasy.cpp index 102c18bae8f..a5cfb0571d3 100644 --- a/src/devices/bus/vic20/speakeasy.cpp +++ b/src/devices/bus/vic20/speakeasy.cpp @@ -26,7 +26,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type VIC20_SPEAKEASY = device_creator; +DEFINE_DEVICE_TYPE(VIC20_SPEAKEASY, vic20_speakeasy_device, "vic20_speakeasy", "PPP Speakeasy VIC-20") //------------------------------------------------- @@ -46,7 +46,7 @@ MACHINE_CONFIG_END // machine configurations //------------------------------------------------- -machine_config_constructor vic20_speakeasy_t::device_mconfig_additions() const +machine_config_constructor vic20_speakeasy_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( speakeasy ); } @@ -58,11 +58,11 @@ machine_config_constructor vic20_speakeasy_t::device_mconfig_additions() const //************************************************************************** //------------------------------------------------- -// vic20_speakeasy_t - constructor +// vic20_speakeasy_device - constructor //------------------------------------------------- -vic20_speakeasy_t::vic20_speakeasy_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, VIC20_SPEAKEASY, "Speakeasy VIC20", tag, owner, clock, "speakeasyvic20", __FILE__), +vic20_speakeasy_device::vic20_speakeasy_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, VIC20_SPEAKEASY, tag, owner, clock), device_vic20_expansion_card_interface(mconfig, *this), m_votrax(*this, SC01A_TAG) { @@ -73,7 +73,7 @@ vic20_speakeasy_t::vic20_speakeasy_t(const machine_config &mconfig, const char * // device_start - device-specific startup //------------------------------------------------- -void vic20_speakeasy_t::device_start() +void vic20_speakeasy_device::device_start() { } @@ -82,7 +82,7 @@ void vic20_speakeasy_t::device_start() // vic20_cd_r - cartridge data read //------------------------------------------------- -uint8_t vic20_speakeasy_t::vic20_cd_r(address_space &space, offs_t offset, uint8_t data, int ram1, int ram2, int ram3, int blk1, int blk2, int blk3, int blk5, int io2, int io3) +uint8_t vic20_speakeasy_device::vic20_cd_r(address_space &space, offs_t offset, uint8_t data, int ram1, int ram2, int ram3, int blk1, int blk2, int blk3, int blk5, int io2, int io3) { if (!io2) { @@ -97,7 +97,7 @@ uint8_t vic20_speakeasy_t::vic20_cd_r(address_space &space, offs_t offset, uint8 // vic20_cd_w - cartridge data write //------------------------------------------------- -void vic20_speakeasy_t::vic20_cd_w(address_space &space, offs_t offset, uint8_t data, int ram1, int ram2, int ram3, int blk1, int blk2, int blk3, int blk5, int io2, int io3) +void vic20_speakeasy_device::vic20_cd_w(address_space &space, offs_t offset, uint8_t data, int ram1, int ram2, int ram3, int blk1, int blk2, int blk3, int blk5, int io2, int io3) { if (!io2) { diff --git a/src/devices/bus/vic20/speakeasy.h b/src/devices/bus/vic20/speakeasy.h index 1db2180ecbd..09ccd0f315e 100644 --- a/src/devices/bus/vic20/speakeasy.h +++ b/src/devices/bus/vic20/speakeasy.h @@ -7,10 +7,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_VIC20_SPEAKEASY_H +#define MAME_BUS_VIC20_SPEAKEASY_H -#ifndef __VIC20_SPEAKEASY__ -#define __VIC20_SPEAKEASY__ +#pragma once #include "exp.h" #include "sound/votrax.h" @@ -21,14 +21,14 @@ // TYPE DEFINITIONS //************************************************************************** -// ======================> vic20_speakeasy_t +// ======================> vic20_speakeasy_device -class vic20_speakeasy_t : public device_t, +class vic20_speakeasy_device : public device_t, public device_vic20_expansion_card_interface { public: // construction/destruction - vic20_speakeasy_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + vic20_speakeasy_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual machine_config_constructor device_mconfig_additions() const override; @@ -47,8 +47,6 @@ private: // device type definition -extern const device_type VIC20_SPEAKEASY; - - +DECLARE_DEVICE_TYPE(VIC20_SPEAKEASY, vic20_speakeasy_device) -#endif +#endif // MAME_BUS_VIC20_SPEAKEASY_H diff --git a/src/devices/bus/vic20/std.cpp b/src/devices/bus/vic20/std.cpp index 26de8b6ef70..7b4823dfcdf 100644 --- a/src/devices/bus/vic20/std.cpp +++ b/src/devices/bus/vic20/std.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type VIC20_STD = device_creator; +DEFINE_DEVICE_TYPE(VIC20_STD, vic20_standard_cartridge_device, "vic20_standard", "VIC-20 Standard Cartridge") @@ -28,8 +28,7 @@ const device_type VIC20_STD = device_creator; //------------------------------------------------- vic20_standard_cartridge_device::vic20_standard_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, VIC20_STD, "VIC-20 Standard Cartridge", tag, owner, clock, "vic20_standard", __FILE__), - device_vic20_expansion_card_interface(mconfig, *this) + : device_t(mconfig, VIC20_STD, tag, owner, clock), device_vic20_expansion_card_interface(mconfig, *this) { } diff --git a/src/devices/bus/vic20/std.h b/src/devices/bus/vic20/std.h index fb006c62093..2362a9c1c4c 100644 --- a/src/devices/bus/vic20/std.h +++ b/src/devices/bus/vic20/std.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_VIC20_STD_H +#define MAME_BUS_VIC20_STD_H -#ifndef __VIC20_STD__ -#define __VIC20_STD__ +#pragma once #include "exp.h" @@ -38,8 +38,6 @@ protected: // device type definition -extern const device_type VIC20_STD; - - +DECLARE_DEVICE_TYPE(VIC20_STD, vic20_standard_cartridge_device) -#endif +#endif // MAME_BUS_VIC20_STD_H diff --git a/src/devices/bus/vic20/user.h b/src/devices/bus/vic20/user.h index 2273a744917..a53fec7124b 100644 --- a/src/devices/bus/vic20/user.h +++ b/src/devices/bus/vic20/user.h @@ -21,13 +21,13 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_VIC20_USER_H +#define MAME_BUS_VIC20_USER_H -#ifndef __VIC20_USER_PORT__ -#define __VIC20_USER_PORT__ +#pragma once #include "bus/pet/user.h" SLOT_INTERFACE_EXTERN( vic20_user_port_cards ); -#endif +#endif // MAME_BUS_VIC20_USER_H diff --git a/src/devices/bus/vic20/vic1010.cpp b/src/devices/bus/vic20/vic1010.cpp index f2b2ec91219..1cec999f003 100644 --- a/src/devices/bus/vic20/vic1010.cpp +++ b/src/devices/bus/vic20/vic1010.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type VIC1010 = device_creator; +DEFINE_DEVICE_TYPE(VIC1010, vic1010_device, "vic1010", "VIC-1010 Expansion Module") //------------------------------------------------- @@ -53,14 +53,9 @@ machine_config_constructor vic1010_device::device_mconfig_additions() const //------------------------------------------------- vic1010_device::vic1010_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, VIC1010, "VIC1010", tag, owner, clock, "vic1010", __FILE__), - device_vic20_expansion_card_interface(mconfig, *this), - m_slot1(*this, "slot1"), - m_slot2(*this, "slot2"), - m_slot3(*this, "slot3"), - m_slot4(*this, "slot4"), - m_slot5(*this, "slot5"), - m_slot6(*this, "slot6") + : device_t(mconfig, VIC1010, tag, owner, clock) + , device_vic20_expansion_card_interface(mconfig, *this) + , m_expansion_slot(*this, "slot%u", 1) { } @@ -71,13 +66,6 @@ vic1010_device::vic1010_device(const machine_config &mconfig, const char *tag, d void vic1010_device::device_start() { - // find devices - m_expansion_slot[0] = m_slot1; - m_expansion_slot[1] = m_slot2; - m_expansion_slot[2] = m_slot3; - m_expansion_slot[3] = m_slot4; - m_expansion_slot[4] = m_slot5; - m_expansion_slot[5] = m_slot6; } diff --git a/src/devices/bus/vic20/vic1010.h b/src/devices/bus/vic20/vic1010.h index 3c02789b436..77082de99bb 100644 --- a/src/devices/bus/vic20/vic1010.h +++ b/src/devices/bus/vic20/vic1010.h @@ -6,23 +6,15 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_VIC20_VIC1010_H +#define MAME_BUS_VIC20_VIC1010_H -#ifndef __VIC1010__ -#define __VIC1010__ +#pragma once #include "exp.h" -//************************************************************************** -// MACROS/CONSTANTS -//************************************************************************** - -#define MAX_SLOTS 6 - - - //************************************************************************** // TYPE DEFINITIONS //************************************************************************** @@ -49,20 +41,13 @@ protected: virtual void vic20_cd_w(address_space &space, offs_t offset, uint8_t data, int ram1, int ram2, int ram3, int blk1, int blk2, int blk3, int blk5, int io2, int io3) override; private: - required_device m_slot1; - required_device m_slot2; - required_device m_slot3; - required_device m_slot4; - required_device m_slot5; - required_device m_slot6; - - vic20_expansion_slot_device *m_expansion_slot[MAX_SLOTS]; + static constexpr unsigned MAX_SLOTS = 6; + + required_device_array m_expansion_slot; }; // device type definition -extern const device_type VIC1010; - - +DECLARE_DEVICE_TYPE(VIC1010, vic1010_device) -#endif +#endif // MAME_BUS_VIC20_VIC1010_H diff --git a/src/devices/bus/vic20/vic1011.cpp b/src/devices/bus/vic20/vic1011.cpp index 5187fcdbf3a..8f022af6b57 100644 --- a/src/devices/bus/vic20/vic1011.cpp +++ b/src/devices/bus/vic20/vic1011.cpp @@ -23,7 +23,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type VIC1011 = device_creator; +DEFINE_DEVICE_TYPE(VIC1011, vic1011_device, "vic1011", "VIC-1011 RS-232C") //------------------------------------------------- @@ -60,9 +60,9 @@ machine_config_constructor vic1011_device::device_mconfig_additions() const //------------------------------------------------- vic1011_device::vic1011_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, VIC1011, "VIC1011", tag, owner, clock, "vic1011", __FILE__), - device_pet_user_port_interface(mconfig, *this), - m_rs232(*this, RS232_TAG) + : device_t(mconfig, VIC1011, tag, owner, clock) + , device_pet_user_port_interface(mconfig, *this) + , m_rs232(*this, RS232_TAG) { } diff --git a/src/devices/bus/vic20/vic1011.h b/src/devices/bus/vic20/vic1011.h index d3362b95d1a..5b76d2780d5 100644 --- a/src/devices/bus/vic20/vic1011.h +++ b/src/devices/bus/vic20/vic1011.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_VIC20_VIC1011_H +#define MAME_BUS_VIC20_VIC1011_H -#ifndef __VIC1011__ -#define __VIC1011__ +#pragma once #include "user.h" #include "bus/rs232/rs232.h" @@ -54,4 +54,4 @@ extern const device_type VIC1011; -#endif +#endif // MAME_BUS_VIC20_VIC1011_H diff --git a/src/devices/bus/vic20/vic1110.cpp b/src/devices/bus/vic20/vic1110.cpp index 0d9ec595347..8edd2179bf9 100644 --- a/src/devices/bus/vic20/vic1110.cpp +++ b/src/devices/bus/vic20/vic1110.cpp @@ -28,7 +28,7 @@ enum // DEVICE DEFINITIONS //************************************************************************** -const device_type VIC1110 = device_creator; +DEFINE_DEVICE_TYPE(VIC1110, vic1110_device, "vic1110", "VIC-1110 8K RAM Expansion") @@ -67,10 +67,10 @@ ioport_constructor vic1110_device::device_input_ports() const //------------------------------------------------- vic1110_device::vic1110_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, VIC1110, "VIC1110", tag, owner, clock, "vic1110", __FILE__), - device_vic20_expansion_card_interface(mconfig, *this), - m_ram(*this, "ram"), - m_sw(*this, "SW") + : device_t(mconfig, VIC1110, tag, owner, clock) + , device_vic20_expansion_card_interface(mconfig, *this) + , m_ram(*this, "ram") + , m_sw(*this, "SW") { } diff --git a/src/devices/bus/vic20/vic1110.h b/src/devices/bus/vic20/vic1110.h index 66d9cca2b32..05874804600 100644 --- a/src/devices/bus/vic20/vic1110.h +++ b/src/devices/bus/vic20/vic1110.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_VIC20_VIC1110_H +#define MAME_BUS_VIC20_VIC1110_H -#ifndef __VIC1110__ -#define __VIC1110__ +#pragma once #include "exp.h" @@ -47,7 +47,6 @@ private: // device type definition extern const device_type VIC1110; +DECLARE_DEVICE_TYPE(VIC1110, vic1110_device) - - -#endif +#endif // MAME_BUS_VIC20_VIC1110_H diff --git a/src/devices/bus/vic20/vic1111.cpp b/src/devices/bus/vic20/vic1111.cpp index 8d6b0268429..ccfbabccd48 100644 --- a/src/devices/bus/vic20/vic1111.cpp +++ b/src/devices/bus/vic20/vic1111.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type VIC1111 = device_creator; +DEFINE_DEVICE_TYPE(VIC1111, vic1111_device, "vic1111", "VIC-1111 16K RAM Expansion") @@ -28,9 +28,9 @@ const device_type VIC1111 = device_creator; //------------------------------------------------- vic1111_device::vic1111_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, VIC1111, "VIC1111", tag, owner, clock, "vic1111", __FILE__), - device_vic20_expansion_card_interface(mconfig, *this), - m_ram(*this, "ram") + : device_t(mconfig, VIC1111, tag, owner, clock) + , device_vic20_expansion_card_interface(mconfig, *this) + , m_ram(*this, "ram") { } diff --git a/src/devices/bus/vic20/vic1111.h b/src/devices/bus/vic20/vic1111.h index e3be916a985..21f439534e9 100644 --- a/src/devices/bus/vic20/vic1111.h +++ b/src/devices/bus/vic20/vic1111.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_VIC20_VIC1111_H +#define MAME_BUS_VIC20_VIC1111_H -#ifndef __VIC1111__ -#define __VIC1111__ +#pragma once #include "exp.h" @@ -42,8 +42,6 @@ private: // device type definition -extern const device_type VIC1111; - - +DECLARE_DEVICE_TYPE(VIC1111, vic1111_device) -#endif +#endif // MAME_BUS_VIC20_VIC1111_H diff --git a/src/devices/bus/vic20/vic1112.cpp b/src/devices/bus/vic20/vic1112.cpp index 070da86db75..d8dbb158aae 100644 --- a/src/devices/bus/vic20/vic1112.cpp +++ b/src/devices/bus/vic20/vic1112.cpp @@ -24,7 +24,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type VIC1112 = device_creator; +DEFINE_DEVICE_TYPE(VIC1112, vic1112_device, "vic1112", "VIC-1112 IEEE-488 Interface") WRITE_LINE_MEMBER( vic1112_device::via0_irq_w ) @@ -136,11 +136,12 @@ machine_config_constructor vic1112_device::device_mconfig_additions() const //------------------------------------------------- vic1112_device::vic1112_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, VIC1112, "VIC1112", tag, owner, clock, "vic1112", __FILE__), - device_vic20_expansion_card_interface(mconfig, *this), - m_via0(*this, M6522_0_TAG), - m_via1(*this, M6522_1_TAG), - m_bus(*this, IEEE488_TAG), m_via0_irq(0), m_via1_irq(0) + : device_t(mconfig, VIC1112, tag, owner, clock) + , device_vic20_expansion_card_interface(mconfig, *this) + , m_via0(*this, M6522_0_TAG) + , m_via1(*this, M6522_1_TAG) + , m_bus(*this, IEEE488_TAG) + , m_via0_irq(0), m_via1_irq(0) { } @@ -176,21 +177,12 @@ uint8_t vic1112_device::vic20_cd_r(address_space &space, offs_t offset, uint8_t { if (!io2) { - if (offset & 0x10) - { - data = m_via1->read(space, offset & 0x0f); - } - else - { - data = m_via0->read(space, offset & 0x0f); - } + data = (BIT(offset, 4) ? m_via1 : m_via0)->read(space, offset & 0x0f); } else if (!blk5) { if (offset & 0x1000) - { data = m_blk5[offset & 0x17ff]; - } } return data; @@ -205,13 +197,6 @@ void vic1112_device::vic20_cd_w(address_space &space, offs_t offset, uint8_t dat { if (!io2) { - if (offset & 0x10) - { - m_via1->write(space, offset & 0x0f, data); - } - else - { - m_via0->write(space, offset & 0x0f, data); - } + (BIT(offset, 4) ? m_via1 : m_via0)->write(space, offset & 0x0f, data); } } diff --git a/src/devices/bus/vic20/vic1112.h b/src/devices/bus/vic20/vic1112.h index fe8cea87b2c..cb6de5bbbed 100644 --- a/src/devices/bus/vic20/vic1112.h +++ b/src/devices/bus/vic20/vic1112.h @@ -8,10 +8,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_VIC20_VIC1112_H +#define MAME_BUS_VIC20_VIC1112_H -#ifndef __VIC1112__ -#define __VIC1112__ +#pragma once #include "exp.h" #include "bus/ieee488/ieee488.h" @@ -64,8 +64,6 @@ private: // device type definition -extern const device_type VIC1112; - - +DECLARE_DEVICE_TYPE(VIC1112, vic1112_device) -#endif +#endif // MAME_BUS_VIC20_VIC1112_H diff --git a/src/devices/bus/vic20/vic1210.cpp b/src/devices/bus/vic20/vic1210.cpp index b28cb42aa78..81e5d75cc1d 100644 --- a/src/devices/bus/vic20/vic1210.cpp +++ b/src/devices/bus/vic20/vic1210.cpp @@ -16,7 +16,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type VIC1210 = device_creator; +DEFINE_DEVICE_TYPE(VIC1210, vic1210_device, "vic1210", "VIC-1210 3K RAM Expansion") @@ -29,9 +29,9 @@ const device_type VIC1210 = device_creator; //------------------------------------------------- vic1210_device::vic1210_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, VIC1210, "VIC1210", tag, owner, clock, "vic1210", __FILE__), - device_vic20_expansion_card_interface(mconfig, *this), - m_ram(*this, "ram") + : device_t(mconfig, VIC1210, tag, owner, clock) + , device_vic20_expansion_card_interface(mconfig, *this) + , m_ram(*this, "ram") { } diff --git a/src/devices/bus/vic20/vic1210.h b/src/devices/bus/vic20/vic1210.h index 709712b1c31..9fa0ea48a99 100644 --- a/src/devices/bus/vic20/vic1210.h +++ b/src/devices/bus/vic20/vic1210.h @@ -7,10 +7,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_VIC20_VIC1210_H +#define MAME_BUS_VIC20_VIC1210_H -#ifndef __VIC1210__ -#define __VIC1210__ +#pragma once #include "exp.h" @@ -43,8 +43,6 @@ private: // device type definition -extern const device_type VIC1210; - - +DECLARE_DEVICE_TYPE(VIC1210, vic1210_device) -#endif +#endif // MAME_BUS_VIC20_VIC1210_H diff --git a/src/devices/bus/vic20/videopak.cpp b/src/devices/bus/vic20/videopak.cpp index c117263152e..a7cba165e1d 100644 --- a/src/devices/bus/vic20/videopak.cpp +++ b/src/devices/bus/vic20/videopak.cpp @@ -30,7 +30,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type VIC20_VIDEO_PAK = device_creator; +DEFINE_DEVICE_TYPE(VIC20_VIDEO_PAK, vic20_video_pak_device, "vic20_videopak", "Data 20 Video Pak") //------------------------------------------------- @@ -48,7 +48,7 @@ ROM_END // rom_region - device-specific ROM region //------------------------------------------------- -const tiny_rom_entry *vic20_video_pak_t::device_rom_region() const +const tiny_rom_entry *vic20_video_pak_device::device_rom_region() const { return ROM_NAME( videopak ); } @@ -57,7 +57,7 @@ const tiny_rom_entry *vic20_video_pak_t::device_rom_region() const // mc6845 //------------------------------------------------- -MC6845_UPDATE_ROW( vic20_video_pak_t::crtc_update_row ) +MC6845_UPDATE_ROW( vic20_video_pak_device::crtc_update_row ) { const pen_t *pen = m_palette->pens(); @@ -110,7 +110,7 @@ static MACHINE_CONFIG_FRAGMENT( vic20_video_pak ) MCFG_MC6845_ADD(MC6845_TAG, H46505, MC6845_SCREEN_TAG, XTAL_14_31818MHz / 8) MCFG_MC6845_SHOW_BORDER_AREA(true) MCFG_MC6845_CHAR_WIDTH(8) - MCFG_MC6845_UPDATE_ROW_CB(vic20_video_pak_t, crtc_update_row) + MCFG_MC6845_UPDATE_ROW_CB(vic20_video_pak_device, crtc_update_row) MACHINE_CONFIG_END @@ -119,7 +119,7 @@ MACHINE_CONFIG_END // machine configurations //------------------------------------------------- -machine_config_constructor vic20_video_pak_t::device_mconfig_additions() const +machine_config_constructor vic20_video_pak_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( vic20_video_pak ); } @@ -131,11 +131,11 @@ machine_config_constructor vic20_video_pak_t::device_mconfig_additions() const //************************************************************************** //------------------------------------------------- -// vic20_video_pak_t - constructor +// vic20_video_pak_device - constructor //------------------------------------------------- -vic20_video_pak_t::vic20_video_pak_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, VIC20_VIDEO_PAK, "Data 20 Video Pak", tag, owner, clock, "videopak", __FILE__), +vic20_video_pak_device::vic20_video_pak_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, VIC20_VIDEO_PAK, tag, owner, clock), device_vic20_expansion_card_interface(mconfig, *this), m_crtc(*this, MC6845_TAG), m_palette(*this, "palette"), @@ -150,7 +150,7 @@ vic20_video_pak_t::vic20_video_pak_t(const machine_config &mconfig, const char * // device_start - device-specific startup //------------------------------------------------- -void vic20_video_pak_t::device_start() +void vic20_video_pak_device::device_start() { // allocate memory m_videoram.allocate(VIDEORAM_SIZE); @@ -162,7 +162,7 @@ void vic20_video_pak_t::device_start() // device_reset - device-specific reset //------------------------------------------------- -void vic20_video_pak_t::device_reset() +void vic20_video_pak_device::device_reset() { } @@ -171,7 +171,7 @@ void vic20_video_pak_t::device_reset() // vic20_cd_r - cartridge data read //------------------------------------------------- -uint8_t vic20_video_pak_t::vic20_cd_r(address_space &space, offs_t offset, uint8_t data, int ram1, int ram2, int ram3, int blk1, int blk2, int blk3, int blk5, int io2, int io3) +uint8_t vic20_video_pak_device::vic20_cd_r(address_space &space, offs_t offset, uint8_t data, int ram1, int ram2, int ram3, int blk1, int blk2, int blk3, int blk5, int io2, int io3) { if (!m_ram_enable) { @@ -246,7 +246,7 @@ uint8_t vic20_video_pak_t::vic20_cd_r(address_space &space, offs_t offset, uint8 // vic20_cd_w - cartridge data write //------------------------------------------------- -void vic20_video_pak_t::vic20_cd_w(address_space &space, offs_t offset, uint8_t data, int ram1, int ram2, int ram3, int blk1, int blk2, int blk3, int blk5, int io2, int io3) +void vic20_video_pak_device::vic20_cd_w(address_space &space, offs_t offset, uint8_t data, int ram1, int ram2, int ram3, int blk1, int blk2, int blk3, int blk5, int io2, int io3) { if (!m_ram_enable) { diff --git a/src/devices/bus/vic20/videopak.h b/src/devices/bus/vic20/videopak.h index f11800f0f35..79d0cafe16b 100644 --- a/src/devices/bus/vic20/videopak.h +++ b/src/devices/bus/vic20/videopak.h @@ -7,10 +7,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_VIC20_VIDEOPAK_H +#define MAME_BUS_VIC20_VIDEOPAK_H -#ifndef __VIC20_VIDEO_PAK__ -#define __VIC20_VIDEO_PAK__ +#pragma once #include "exp.h" @@ -22,14 +22,14 @@ // TYPE DEFINITIONS //************************************************************************** -// ======================> vic20_video_pak_t +// ======================> vic20_video_pak_device -class vic20_video_pak_t : public device_t, +class vic20_video_pak_device : public device_t, public device_vic20_expansion_card_interface { public: // construction/destruction - vic20_video_pak_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + vic20_video_pak_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides virtual const tiny_rom_entry *device_rom_region() const override; @@ -64,7 +64,6 @@ private: // device type definition -extern const device_type VIC20_VIDEO_PAK; - +DECLARE_DEVICE_TYPE(VIC20_VIDEO_PAK, vic20_video_pak_device) -#endif +#endif // MAME_BUS_VIC20_VIDEOPAK_H diff --git a/src/devices/bus/vidbrain/exp.cpp b/src/devices/bus/vidbrain/exp.cpp index 298fdec8751..ebd4a541da0 100644 --- a/src/devices/bus/vidbrain/exp.cpp +++ b/src/devices/bus/vidbrain/exp.cpp @@ -23,7 +23,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type VIDEOBRAIN_EXPANSION_SLOT = device_creator; +DEFINE_DEVICE_TYPE(VIDEOBRAIN_EXPANSION_SLOT, videobrain_expansion_slot_device, "videobrain_expansion_slot", "VideoBrain expansion port") @@ -88,7 +88,7 @@ uint8_t* device_videobrain_expansion_card_interface::videobrain_ram_pointer(runn //------------------------------------------------- videobrain_expansion_slot_device::videobrain_expansion_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, VIDEOBRAIN_EXPANSION_SLOT, "VideoBrain expansion port", tag, owner, clock, "videobrain_expansion_slot", __FILE__), + device_t(mconfig, VIDEOBRAIN_EXPANSION_SLOT, tag, owner, clock), device_slot_interface(mconfig, *this), device_image_interface(mconfig, *this), m_write_extres(*this), m_cart(nullptr) diff --git a/src/devices/bus/vidbrain/exp.h b/src/devices/bus/vidbrain/exp.h index 8806e18e11c..23ae2108d3e 100644 --- a/src/devices/bus/vidbrain/exp.h +++ b/src/devices/bus/vidbrain/exp.h @@ -34,10 +34,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_VIDBRAIN_EXP_H +#define MAME_BUS_VIDBRAIN_EXP_H -#ifndef __VIDEOBRAIN_EXPANSION_SLOT__ -#define __VIDEOBRAIN_EXPANSION_SLOT__ +#pragma once #include "softlist_dev.h" @@ -78,18 +78,19 @@ class device_videobrain_expansion_card_interface : public device_slot_card_inter public: // construction/destruction - device_videobrain_expansion_card_interface(const machine_config &mconfig, device_t &device); virtual ~device_videobrain_expansion_card_interface() { } protected: + device_videobrain_expansion_card_interface(const machine_config &mconfig, device_t &device); + // initialization virtual uint8_t* videobrain_rom_pointer(running_machine &machine, size_t size); virtual uint8_t* videobrain_ram_pointer(running_machine &machine, size_t size); // runtime - virtual uint8_t videobrain_bo_r(address_space &space, offs_t offset, int cs1, int cs2) { return 0; }; - virtual void videobrain_bo_w(address_space &space, offs_t offset, uint8_t data, int cs1, int cs2) { }; - virtual void videobrain_extres_w() { }; + virtual uint8_t videobrain_bo_r(address_space &space, offs_t offset, int cs1, int cs2) { return 0; } + virtual void videobrain_bo_w(address_space &space, offs_t offset, uint8_t data, int cs1, int cs2) { } + virtual void videobrain_extres_w() { } videobrain_expansion_slot_device *m_slot; @@ -110,9 +111,8 @@ class videobrain_expansion_slot_device : public device_t, public: // construction/destruction videobrain_expansion_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual ~videobrain_expansion_slot_device() { } - template static devcb_base &set_extres_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_extres.set_callback(object); } + template static devcb_base &set_extres_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_extres.set_callback(std::forward(cb)); } // computer interface uint8_t bo_r(address_space &space, offs_t offset, int cs1, int cs2); @@ -156,11 +156,9 @@ protected: // device type definition -extern const device_type VIDEOBRAIN_EXPANSION_SLOT; +DECLARE_DEVICE_TYPE(VIDEOBRAIN_EXPANSION_SLOT, videobrain_expansion_slot_device) SLOT_INTERFACE_EXTERN( vidbrain_expansion_cards ); - - -#endif +#endif // MAME_BUS_VIDBRAIN_EXP_H diff --git a/src/devices/bus/vidbrain/money_minder.cpp b/src/devices/bus/vidbrain/money_minder.cpp index eb7e7b2d6c4..81220a499b6 100644 --- a/src/devices/bus/vidbrain/money_minder.cpp +++ b/src/devices/bus/vidbrain/money_minder.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type VB_MONEY_MINDER = device_creator; +DEFINE_DEVICE_TYPE(VB_MONEY_MINDER, videobrain_money_minder_cartridge_device, "vb_money_minder", "VideoBrain Money Minder cartridge") @@ -28,7 +28,7 @@ const device_type VB_MONEY_MINDER = device_creator; +DEFINE_DEVICE_TYPE(VB_STD, videobrain_standard_cartridge_device, "vb_std", "VideoBrain standard cartridge") @@ -28,7 +28,7 @@ const device_type VB_STD = device_creator; //------------------------------------------------- videobrain_standard_cartridge_device::videobrain_standard_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, VB_STD, "VideoBrain standard cartridge", tag, owner, clock, "vb_std", __FILE__), + device_t(mconfig, VB_STD, tag, owner, clock), device_videobrain_expansion_card_interface(mconfig, *this) { } diff --git a/src/devices/bus/vidbrain/std.h b/src/devices/bus/vidbrain/std.h index b54c2acd2d0..2dbbde3231f 100644 --- a/src/devices/bus/vidbrain/std.h +++ b/src/devices/bus/vidbrain/std.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_VIDBRAIN_STD_H +#define MAME_BUS_VIDBRAIN_STD_H -#ifndef __VIDEOBRAIN_STANDARD_CARTRIDGE__ -#define __VIDEOBRAIN_STANDARD_CARTRIDGE__ +#pragma once #include "exp.h" @@ -38,7 +38,6 @@ protected: // device type definition -extern const device_type VB_STD; - +DECLARE_DEVICE_TYPE(VB_STD, videobrain_standard_cartridge_device) -#endif +#endif // MAME_BUS_VIDBRAIN_STD_H diff --git a/src/devices/bus/vidbrain/timeshare.cpp b/src/devices/bus/vidbrain/timeshare.cpp index 00b47a194a1..f4997a55ddc 100644 --- a/src/devices/bus/vidbrain/timeshare.cpp +++ b/src/devices/bus/vidbrain/timeshare.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type VB_TIMESHARE = device_creator; +DEFINE_DEVICE_TYPE(VB_TIMESHARE, videobrain_timeshare_cartridge_device, "vb_timeshare", "VideoBrain Timeshare cartridge") @@ -28,7 +28,7 @@ const device_type VB_TIMESHARE = device_creator; +DEFINE_DEVICE_TYPE(VIP_BYTEIO_PORT, vip_byteio_port_device, "vip_byteio_port", "VIP byte I/O port") @@ -44,9 +44,10 @@ device_vip_byteio_port_interface::device_vip_byteio_port_interface(const machine //------------------------------------------------- vip_byteio_port_device::vip_byteio_port_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, VIP_BYTEIO_PORT, "VIP byte I/O port", tag, owner, clock, "vip_byteio_port", __FILE__), - device_slot_interface(mconfig, *this), - m_write_inst(*this), m_cart(nullptr) + device_t(mconfig, VIP_BYTEIO_PORT, tag, owner, clock), + device_slot_interface(mconfig, *this), + m_write_inst(*this), + m_cart(nullptr) { } diff --git a/src/devices/bus/vip/byteio.h b/src/devices/bus/vip/byteio.h index 61ff58682b9..5c0ebc29afd 100644 --- a/src/devices/bus/vip/byteio.h +++ b/src/devices/bus/vip/byteio.h @@ -31,11 +31,10 @@ **********************************************************************/ -#pragma once - -#ifndef __VIP_BYTEIO_PORT__ -#define __VIP_BYTEIO_PORT__ +#ifndef MAME_BUS_VIP_BYTEIO_H +#define MAME_BUS_VIP_BYTEIO_H +#pragma once @@ -102,24 +101,24 @@ protected: class device_vip_byteio_port_interface : public device_slot_card_interface { public: - // construction/destruction - device_vip_byteio_port_interface(const machine_config &mconfig, device_t &device); - - virtual uint8_t vip_in_r() { return 0xff; }; - virtual void vip_out_w(uint8_t data) { }; + virtual uint8_t vip_in_r() { return 0xff; } + virtual void vip_out_w(uint8_t data) { } virtual int vip_ef3_r() { return CLEAR_LINE; } virtual int vip_ef4_r() { return CLEAR_LINE; } - virtual void vip_q_w(int state) { }; + virtual void vip_q_w(int state) { } protected: + // construction/destruction + device_vip_byteio_port_interface(const machine_config &mconfig, device_t &device); + vip_byteio_port_device *m_slot; }; // device type definition -extern const device_type VIP_BYTEIO_PORT; +DECLARE_DEVICE_TYPE(VIP_BYTEIO_PORT, vip_byteio_port_device) // slot devices @@ -127,6 +126,4 @@ extern const device_type VIP_BYTEIO_PORT; SLOT_INTERFACE_EXTERN( vip_byteio_cards ); - - -#endif +#endif // MAME_BUS_VIP_BYTEIO_H diff --git a/src/devices/bus/vip/exp.cpp b/src/devices/bus/vip/exp.cpp index f5dc4bdd070..5430dd482ed 100644 --- a/src/devices/bus/vip/exp.cpp +++ b/src/devices/bus/vip/exp.cpp @@ -23,7 +23,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type VIP_EXPANSION_SLOT = device_creator; +DEFINE_DEVICE_TYPE(VIP_EXPANSION_SLOT, vip_expansion_slot_device, "vip_expansion_slot", "VIP expansion port") @@ -52,7 +52,7 @@ device_vip_expansion_card_interface::device_vip_expansion_card_interface(const m //------------------------------------------------- vip_expansion_slot_device::vip_expansion_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, VIP_EXPANSION_SLOT, "VIP expansion port", tag, owner, clock, "vip_expansion_slot", __FILE__), + device_t(mconfig, VIP_EXPANSION_SLOT, tag, owner, clock), device_slot_interface(mconfig, *this), m_write_int(*this), m_write_dma_out(*this), diff --git a/src/devices/bus/vip/exp.h b/src/devices/bus/vip/exp.h index 6c7d18966fb..9e49ad4b98c 100644 --- a/src/devices/bus/vip/exp.h +++ b/src/devices/bus/vip/exp.h @@ -31,10 +31,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_VIP_EXP_H +#define MAME_BUS_VIP_EXP_H -#ifndef __VIP_EXPANSION_SLOT__ -#define __VIP_EXPANSION_SLOT__ +#pragma once @@ -82,9 +82,9 @@ public: // construction/destruction vip_expansion_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_int_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_int.set_callback(object); } - template static devcb_base &set_dma_out_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_dma_out.set_callback(object); } - template static devcb_base &set_dma_in_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_dma_in.set_callback(object); } + template static devcb_base &set_int_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_int.set_callback(std::forward(cb)); } + template static devcb_base &set_dma_out_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_dma_out.set_callback(std::forward(cb)); } + template static devcb_base &set_dma_in_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_dma_in.set_callback(std::forward(cb)); } // computer interface uint8_t program_r(address_space &space, offs_t offset, int cs, int cdef, int *minh); @@ -124,20 +124,19 @@ class device_vip_expansion_card_interface : public device_slot_card_interface { friend class vip_expansion_slot_device; -public: +protected: // construction/destruction device_vip_expansion_card_interface(const machine_config &mconfig, device_t &device); -protected: // runtime - virtual uint8_t vip_program_r(address_space &space, offs_t offset, int cs, int cdef, int *minh) { return 0xff; }; - virtual void vip_program_w(address_space &space, offs_t offset, uint8_t data, int cdef, int *minh) { }; + virtual uint8_t vip_program_r(address_space &space, offs_t offset, int cs, int cdef, int *minh) { return 0xff; } + virtual void vip_program_w(address_space &space, offs_t offset, uint8_t data, int cdef, int *minh) { } - virtual uint8_t vip_io_r(address_space &space, offs_t offset) { return 0xff; }; - virtual void vip_io_w(address_space &space, offs_t offset, uint8_t data) { }; + virtual uint8_t vip_io_r(address_space &space, offs_t offset) { return 0xff; } + virtual void vip_io_w(address_space &space, offs_t offset, uint8_t data) { } - virtual uint8_t vip_dma_r(address_space &space, offs_t offset) { return 0xff; }; - virtual void vip_dma_w(address_space &space, offs_t offset, uint8_t data) { }; + virtual uint8_t vip_dma_r(address_space &space, offs_t offset) { return 0xff; } + virtual void vip_dma_w(address_space &space, offs_t offset, uint8_t data) { } virtual uint32_t vip_screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { return 0; } @@ -145,22 +144,20 @@ protected: virtual int vip_ef3_r() { return CLEAR_LINE; } virtual int vip_ef4_r() { return CLEAR_LINE; } - virtual void vip_sc_w(int data) { }; + virtual void vip_sc_w(int data) { } - virtual void vip_q_w(int state) { }; + virtual void vip_q_w(int state) { } - virtual void vip_run_w(int state) { }; + virtual void vip_run_w(int state) { } vip_expansion_slot_device *m_slot; }; // device type definition -extern const device_type VIP_EXPANSION_SLOT; +DECLARE_DEVICE_TYPE(VIP_EXPANSION_SLOT, vip_expansion_slot_device) SLOT_INTERFACE_EXTERN( vip_expansion_cards ); - - -#endif +#endif // MAME_BUS_VIP_EXP_H diff --git a/src/devices/bus/vip/vp550.cpp b/src/devices/bus/vip/vp550.cpp index 23e49972909..c5ed565886b 100644 --- a/src/devices/bus/vip/vp550.cpp +++ b/src/devices/bus/vip/vp550.cpp @@ -43,7 +43,7 @@ enum // DEVICE DEFINITIONS //************************************************************************** -const device_type VP550 = device_creator; +DEFINE_DEVICE_TYPE(VP550, vp550_device, "vp550", "VP-550 Super Sound") //------------------------------------------------- @@ -82,7 +82,7 @@ machine_config_constructor vp550_device::device_mconfig_additions() const //------------------------------------------------- vp550_device::vp550_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, VP550, "VP550", tag, owner, clock, "vp550", __FILE__), + device_t(mconfig, VP550, tag, owner, clock), device_vip_expansion_card_interface(mconfig, *this), m_pfg_a(*this, CDP1863_A_TAG), m_pfg_b(*this, CDP1863_B_TAG), m_sync_timer(nullptr) diff --git a/src/devices/bus/vip/vp550.h b/src/devices/bus/vip/vp550.h index d849e4b1ad1..ecc4b640f04 100644 --- a/src/devices/bus/vip/vp550.h +++ b/src/devices/bus/vip/vp550.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_VIP_VP550_H +#define MAME_BUS_VIP_VP550_H -#ifndef __VP550__ -#define __VP550__ +#pragma once #include "exp.h" #include "sound/cdp1863.h" @@ -59,7 +59,6 @@ private: // device type definition -extern const device_type VP550; - +DECLARE_DEVICE_TYPE(VP550, vp550_device) -#endif +#endif // MAME_BUS_VIP_VP550_H diff --git a/src/devices/bus/vip/vp570.cpp b/src/devices/bus/vip/vp570.cpp index 0aaa2b7f256..e01d427649b 100644 --- a/src/devices/bus/vip/vp570.cpp +++ b/src/devices/bus/vip/vp570.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type VP570 = device_creator; +DEFINE_DEVICE_TYPE(VP570, vp570_device, "vp570", "VP-570 4K RAM Expansion") //------------------------------------------------- @@ -61,7 +61,7 @@ ioport_constructor vp570_device::device_input_ports() const //------------------------------------------------- vp570_device::vp570_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, VP570, "VP570", tag, owner, clock, "vp570", __FILE__), + device_t(mconfig, VP570, tag, owner, clock), device_vip_expansion_card_interface(mconfig, *this), m_ram(*this, "ram"), m_base(*this, "BASE"), diff --git a/src/devices/bus/vip/vp570.h b/src/devices/bus/vip/vp570.h index c08b350fd57..004be88a8bf 100644 --- a/src/devices/bus/vip/vp570.h +++ b/src/devices/bus/vip/vp570.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_VIP_VP570_H +#define MAME_BUS_VIP_VP570_H -#ifndef __VP570__ -#define __VP570__ +#pragma once #include "exp.h" @@ -47,7 +47,7 @@ private: // device type definition -extern const device_type VP570; +DECLARE_DEVICE_TYPE(VP570, vp570_device) -#endif +#endif // MAME_BUS_VIP_VP570_H diff --git a/src/devices/bus/vip/vp575.cpp b/src/devices/bus/vip/vp575.cpp index 3c498a7ae83..ea542a7123e 100644 --- a/src/devices/bus/vip/vp575.cpp +++ b/src/devices/bus/vip/vp575.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type VP575 = device_creator; +DEFINE_DEVICE_TYPE(VP575, vp575_device, "vp575", "VP-575 System Expansion") //------------------------------------------------- @@ -94,8 +94,9 @@ machine_config_constructor vp575_device::device_mconfig_additions() const //------------------------------------------------- vp575_device::vp575_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, VP575, "VP575", tag, owner, clock, "vp575", __FILE__), - device_vip_expansion_card_interface(mconfig, *this) + device_t(mconfig, VP575, tag, owner, clock), + device_vip_expansion_card_interface(mconfig, *this), + m_expansion_slot(*this, "exp%u", 1) { for (int i = 0; i < MAX_SLOTS; i++) { @@ -112,12 +113,6 @@ vp575_device::vp575_device(const machine_config &mconfig, const char *tag, devic void vp575_device::device_start() { - // find devices - m_expansion_slot[0] = dynamic_cast(subdevice("exp1")); - m_expansion_slot[1] = dynamic_cast(subdevice("exp2")); - m_expansion_slot[2] = dynamic_cast(subdevice("exp3")); - m_expansion_slot[3] = dynamic_cast(subdevice("exp4")); - m_expansion_slot[4] = dynamic_cast(subdevice("exp5")); } diff --git a/src/devices/bus/vip/vp575.h b/src/devices/bus/vip/vp575.h index 6680cf1600d..915d1d12725 100644 --- a/src/devices/bus/vip/vp575.h +++ b/src/devices/bus/vip/vp575.h @@ -6,23 +6,15 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_VIP_VP575_H +#define MAME_BUS_VIP_VP575_H -#ifndef __VP575__ -#define __VP575__ +#pragma once #include "exp.h" -//************************************************************************** -// MACROS/CONSTANTS -//************************************************************************** - -#define MAX_SLOTS 5 - - - //************************************************************************** // TYPE DEFINITIONS //************************************************************************** @@ -80,7 +72,9 @@ protected: virtual void vip_run_w(int state) override; private: - vip_expansion_slot_device *m_expansion_slot[MAX_SLOTS]; + static constexpr unsigned MAX_SLOTS = 5; + + required_device_array m_expansion_slot; int m_int[MAX_SLOTS]; int m_dma_out[MAX_SLOTS]; @@ -89,7 +83,6 @@ private: // device type definition -extern const device_type VP575; - +DECLARE_DEVICE_TYPE(VP575, vp575_device) -#endif +#endif // MAME_BUS_VIP_VP575_H diff --git a/src/devices/bus/vip/vp585.cpp b/src/devices/bus/vip/vp585.cpp index 84f89fba5ef..47a1115097a 100644 --- a/src/devices/bus/vip/vp585.cpp +++ b/src/devices/bus/vip/vp585.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type VP585 = device_creator; +DEFINE_DEVICE_TYPE(VP585, vp585_device, "vp585", "VP-585 Keyboard Interface + VP-580 16-key keypad") //------------------------------------------------- @@ -81,10 +81,11 @@ ioport_constructor vp585_device::device_input_ports() const //------------------------------------------------- vp585_device::vp585_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, VP585, "VP585", tag, owner, clock, "vp585", __FILE__), + device_t(mconfig, VP585, tag, owner, clock), device_vip_expansion_card_interface(mconfig, *this), m_j1(*this, "J1"), - m_j2(*this, "J2"), m_keylatch(0) + m_j2(*this, "J2"), + m_keylatch(0) { } diff --git a/src/devices/bus/vip/vp585.h b/src/devices/bus/vip/vp585.h index 4d00d0ddb99..a3511def5d0 100644 --- a/src/devices/bus/vip/vp585.h +++ b/src/devices/bus/vip/vp585.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_VIP_VP585_H +#define MAME_BUS_VIP_VP585_H -#ifndef __VP585__ -#define __VP585__ +#pragma once #include "exp.h" @@ -49,7 +49,6 @@ private: // device type definition -extern const device_type VP585; - +DECLARE_DEVICE_TYPE(VP585, vp585_device) -#endif +#endif // MAME_BUS_VIP_VP585_H diff --git a/src/devices/bus/vip/vp590.cpp b/src/devices/bus/vip/vp590.cpp index 3434c11fee7..fd04837c05e 100644 --- a/src/devices/bus/vip/vp590.cpp +++ b/src/devices/bus/vip/vp590.cpp @@ -26,7 +26,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type VP590 = device_creator; +DEFINE_DEVICE_TYPE(VP590, vp590_device, "vp590", "VP-590 Color Board + VP-580 16-key keypad") //------------------------------------------------- @@ -138,12 +138,13 @@ ioport_constructor vp590_device::device_input_ports() const //------------------------------------------------- vp590_device::vp590_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, VP590, "VP590", tag, owner, clock, "vp590", __FILE__), + device_t(mconfig, VP590, tag, owner, clock), device_vip_expansion_card_interface(mconfig, *this), m_cgc(*this, CDP1862_TAG), m_color_ram(*this, "color_ram"), m_j1(*this, "J1"), - m_j2(*this, "J2"), m_a12(0), m_color(0), m_keylatch(0) + m_j2(*this, "J2"), + m_a12(0), m_color(0), m_keylatch(0) { } diff --git a/src/devices/bus/vip/vp590.h b/src/devices/bus/vip/vp590.h index 418e240110f..9524e81b6e5 100644 --- a/src/devices/bus/vip/vp590.h +++ b/src/devices/bus/vip/vp590.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_VIP_VP590_H +#define MAME_BUS_VIP_VP590_H -#ifndef __VP590__ -#define __VP590__ +#pragma once #include "machine/rescap.h" #include "exp.h" @@ -64,7 +64,6 @@ private: // device type definition -extern const device_type VP590; - +DECLARE_DEVICE_TYPE(VP590, vp590_device) -#endif +#endif // MAME_BUS_VIP_VP590_H diff --git a/src/devices/bus/vip/vp595.cpp b/src/devices/bus/vip/vp595.cpp index 2c99188c79f..2d1b436e378 100644 --- a/src/devices/bus/vip/vp595.cpp +++ b/src/devices/bus/vip/vp595.cpp @@ -26,7 +26,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type VP595 = device_creator; +DEFINE_DEVICE_TYPE(VP595, vp595_device, "vp595", "VP-595 Simple Sound") //------------------------------------------------- @@ -62,7 +62,7 @@ machine_config_constructor vp595_device::device_mconfig_additions() const //------------------------------------------------- vp595_device::vp595_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, VP595, "VP595", tag, owner, clock, "vp595", __FILE__), + device_t(mconfig, VP595, tag, owner, clock), device_vip_expansion_card_interface(mconfig, *this), m_pfg(*this, CDP1863_TAG) { diff --git a/src/devices/bus/vip/vp595.h b/src/devices/bus/vip/vp595.h index fa810084875..5751a35e6d0 100644 --- a/src/devices/bus/vip/vp595.h +++ b/src/devices/bus/vip/vp595.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_VIP_VP595_H +#define MAME_BUS_VIP_VP595_H -#ifndef __VP595__ -#define __VP595__ +#pragma once #include "exp.h" #include "sound/cdp1863.h" @@ -46,7 +46,6 @@ private: // device type definition -extern const device_type VP595; - +DECLARE_DEVICE_TYPE(VP595, vp595_device) -#endif +#endif // MAME_BUS_VIP_VP595_H diff --git a/src/devices/bus/vip/vp620.cpp b/src/devices/bus/vip/vp620.cpp index b90adb56425..547c535a302 100644 --- a/src/devices/bus/vip/vp620.cpp +++ b/src/devices/bus/vip/vp620.cpp @@ -15,14 +15,14 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type VP620 = device_creator; +DEFINE_DEVICE_TYPE(VP620, vp620_device, "vp620", "VP-620 ASCII Keyboard") //------------------------------------------------- // ASCII_KEYBOARD_INTERFACE( kb_intf ) //------------------------------------------------- -WRITE8_MEMBER( vp620_device::kb_w ) +void vp620_device::kb_w(uint8_t data) { m_keydata = data; @@ -38,7 +38,7 @@ WRITE8_MEMBER( vp620_device::kb_w ) static MACHINE_CONFIG_FRAGMENT( vp620 ) MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0) - MCFG_GENERIC_KEYBOARD_CB(WRITE8(vp620_device, kb_w)) + MCFG_GENERIC_KEYBOARD_CB(PUT(vp620_device, kb_w)) MACHINE_CONFIG_END @@ -63,7 +63,7 @@ machine_config_constructor vp620_device::device_mconfig_additions() const //------------------------------------------------- vp620_device::vp620_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, VP620, "VP620", tag, owner, clock, "vp620", __FILE__), + device_t(mconfig, VP620, tag, owner, clock), device_vip_byteio_port_interface(mconfig, *this), m_keydata(0), m_keystb(CLEAR_LINE) diff --git a/src/devices/bus/vip/vp620.h b/src/devices/bus/vip/vp620.h index 55bf8ab04f6..4917f5760da 100644 --- a/src/devices/bus/vip/vp620.h +++ b/src/devices/bus/vip/vp620.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_VIP_VP620_H +#define MAME_BUS_VIP_VP620_H -#ifndef __VP620__ -#define __VP620__ +#pragma once #include "byteio.h" #include "machine/keyboard.h" @@ -33,7 +33,7 @@ public: virtual machine_config_constructor device_mconfig_additions() const override; // not really public - DECLARE_WRITE8_MEMBER( kb_w ); + void kb_w(uint8_t data); protected: // device-level overrides @@ -50,7 +50,6 @@ private: // device type definition -extern const device_type VP620; - +DECLARE_DEVICE_TYPE(VP620, vp620_device) -#endif +#endif // MAME_BUS_VIP_VP620_H diff --git a/src/devices/bus/vip/vp700.cpp b/src/devices/bus/vip/vp700.cpp index 80e4085b458..4b7dbab2839 100644 --- a/src/devices/bus/vip/vp700.cpp +++ b/src/devices/bus/vip/vp700.cpp @@ -14,7 +14,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type VP700 = device_creator; +DEFINE_DEVICE_TYPE(VP700, vp700_device, "vp700", "VP-700 Expanded Tiny BASIC") //------------------------------------------------- @@ -47,7 +47,7 @@ const tiny_rom_entry *vp700_device::device_rom_region() const //------------------------------------------------- vp700_device::vp700_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, VP700, "VP700", tag, owner, clock, "vp700", __FILE__), + device_t(mconfig, VP700, tag, owner, clock), device_vip_expansion_card_interface(mconfig, *this), m_rom(*this, "vp700") { diff --git a/src/devices/bus/vip/vp700.h b/src/devices/bus/vip/vp700.h index 88e5a99967c..16e7cd2f78e 100644 --- a/src/devices/bus/vip/vp700.h +++ b/src/devices/bus/vip/vp700.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_VIP_VP700_H +#define MAME_BUS_VIP_VP700_H -#ifndef __VP700__ -#define __VP700__ +#pragma once #include "exp.h" #include "sound/cdp1863.h" @@ -45,7 +45,6 @@ private: // device type definition -extern const device_type VP700; - +DECLARE_DEVICE_TYPE(VP700, vp700_device) -#endif +#endif // MAME_BUS_VIP_VP700_H diff --git a/src/devices/bus/vme/vme.cpp b/src/devices/bus/vme/vme.cpp index c4245ebc0a5..d397d45789f 100644 --- a/src/devices/bus/vme/vme.cpp +++ b/src/devices/bus/vme/vme.cpp @@ -76,17 +76,15 @@ #define LOG_GENERAL 0x01 #define LOG_SETUP 0x02 -#define LOG_PRINTF 0x04 -#define VERBOSE 0 // (LOG_PRINTF | LOG_SETUP | LOG_GENERAL) +//#define VERBOSE (LOG_SETUP | LOG_GENERAL) -#define LOGMASK(mask, ...) do { if (VERBOSE & mask) logerror(__VA_ARGS__); } while (0) -#define LOGLEVEL(mask, level, ...) do { if ((VERBOSE & mask) >= level) logerror(__VA_ARGS__); } while (0) +#define LOG_OUTPUT_FUNC printf // logerror is not available here -#define LOG(...) LOGMASK(LOG_GENERAL, __VA_ARGS__) -#define LOGSETUP(...) LOGMASK(LOG_SETUP, __VA_ARGS__) +#include "logmacro.h" -#define logerror printf // logerror is not available here +#define LOG(...) LOGMASKED(LOG_GENERAL, __VA_ARGS__) +#define LOGSETUP(...) LOGMASKED(LOG_SETUP, __VA_ARGS__) #ifdef _MSC_VER #define FUNCNAME __func__ @@ -98,27 +96,22 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type VME_SLOT = device_creator; +DEFINE_DEVICE_TYPE(VME_SLOT, vme_slot_device, "vme_slot", "VME slot") //------------------------------------------------- // vme_slot_device - constructor //------------------------------------------------- -vme_slot_device::vme_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, VME_SLOT, "VME_SLOT", tag, owner, clock, "vme_slot", __FILE__) - ,device_slot_interface(mconfig, *this) - ,m_vme_tag(nullptr) - ,m_vme_slottag(nullptr) - ,m_vme_j1_callback(*this) +vme_slot_device::vme_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : vme_slot_device(mconfig, VME_SLOT, tag, owner, clock) { - LOG("%s %s\n", tag, FUNCNAME); } -vme_slot_device::vme_slot_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_slot_interface(mconfig, *this) - ,m_vme_tag(nullptr) - ,m_vme_slottag(nullptr) - ,m_vme_j1_callback(*this) +vme_slot_device::vme_slot_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) + , device_slot_interface(mconfig, *this) + , m_vme_tag(nullptr) + , m_vme_slottag(nullptr) + , m_vme_j1_callback(*this) { LOG("%s %s\n", tag, FUNCNAME); } @@ -210,7 +203,7 @@ SLOT_INTERFACE_END // VME device P1 // -const device_type VME = device_creator; +DEFINE_DEVICE_TYPE(VME, vme_device, "vme", "VME bus") // static_set_cputag - used to be able to lookup the CPU owning this VME bus void vme_device::static_set_cputag(device_t &device, const char *tag) @@ -230,18 +223,13 @@ void vme_device::static_use_owner_spaces(device_t &device) vme.m_allocspaces = false; } -vme_device::vme_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, VME, "VME", tag, owner, clock, "vme", __FILE__) - , device_memory_interface(mconfig, *this) - , m_a32_config("VME A32", ENDIANNESS_BIG, 32, 32, 0, nullptr) - , m_allocspaces(true) - , m_cputag("maincpu") +vme_device::vme_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : vme_device(mconfig, VME, tag, owner, clock) { - LOG("%s %s\n", tag, FUNCNAME); } -vme_device::vme_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source) +vme_device::vme_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) , device_memory_interface(mconfig, *this) , m_a32_config("VME A32", ENDIANNESS_BIG, 32, 32, 0, nullptr) , m_allocspaces(true) diff --git a/src/devices/bus/vme/vme.h b/src/devices/bus/vme/vme.h index 16e7c52aaaa..ed4bd7efd5f 100644 --- a/src/devices/bus/vme/vme.h +++ b/src/devices/bus/vme/vme.h @@ -45,8 +45,8 @@ */ -#ifndef VME_H_ -#define VME_H_ +#ifndef MAME_BUS_VME_VME_H +#define MAME_BUS_VME_VME_H #pragma once @@ -91,30 +91,30 @@ public: // construction/destruction vme_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - vme_slot_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); + template static devcb_base &static_set_vme_j1_callback(device_t &device, Object &&cb) { return downcast(device).m_vme_j1_callback.set_callback(std::forward(cb)); } - template static devcb_base &static_set_vme_j1_callback(device_t &device, _Object object) { return downcast(device).m_vme_j1_callback.set_callback(object); } + static void static_set_vme_slot(device_t &device, const char *tag, const char *slottag); + static void static_update_vme_chains(device_t &device, uint32_t slot_nbr); + + virtual DECLARE_READ8_MEMBER(read8); + virtual DECLARE_WRITE8_MEMBER(write8); + +protected: + vme_slot_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); // device-level overrides virtual void device_start() override; virtual void device_config_complete() override; - static void static_set_vme_slot(device_t &device, const char *tag, const char *slottag); - static void static_update_vme_chains(device_t &device, uint32_t slot_nbr); - // configuration const char *m_vme_tag, *m_vme_slottag; - virtual DECLARE_READ8_MEMBER(read8); - virtual DECLARE_WRITE8_MEMBER(write8); - // callbacks devcb_write_line m_vme_j1_callback; device_vme_card_interface *m_card; -private: }; -extern const device_type VME; +DECLARE_DEVICE_TYPE(VME, vme_device) //************************************************************************** // INTERFACE CONFIGURATION MACROS @@ -136,7 +136,6 @@ class vme_device : public device_t, { public: vme_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - vme_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); ~vme_device(); // inline configuration @@ -197,6 +196,8 @@ public: void install_device(vme_amod_t amod, offs_t start, offs_t end, read32_delegate rhandler, write32_delegate whandler, uint32_t mask); protected: + vme_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -217,25 +218,32 @@ protected: // device type definition -extern const device_type VME_SLOT; +DECLARE_DEVICE_TYPE(VME_SLOT, vme_slot_device) class device_vme_card_interface : public device_slot_card_interface { + template friend class simple_list; public: + // inline configuration + static void static_set_vme_tag(device_t &device, const char *tag, const char *slottag); + // construction/destruction - device_vme_card_interface(const machine_config &mconfig, device_t &device); virtual ~device_vme_card_interface(); void set_vme_device(); virtual DECLARE_READ8_MEMBER(read8); virtual DECLARE_WRITE8_MEMBER(write8); + + device_vme_card_interface(const machine_config &mconfig, device_t &device); + +protected: device_t *m_device; - // inline configuration - static void static_set_vme_tag(device_t &device, const char *tag, const char *slottag); vme_device *m_vme; const char *m_vme_tag, *m_vme_slottag; int m_slot; + +private: device_vme_card_interface *m_next; }; @@ -250,4 +258,4 @@ public: #define MCFG_VME_SLOT_REMOVE(_tag) \ MCFG_DEVICE_REMOVE(_tag) -#endif /* VME_H_ */ +#endif // MAME_BUS_VME_VME_H diff --git a/src/devices/bus/vme/vme_fccpu20.cpp b/src/devices/bus/vme/vme_fccpu20.cpp index b5384d31e5c..d2076caefc1 100644 --- a/src/devices/bus/vme/vme_fccpu20.cpp +++ b/src/devices/bus/vme/vme_fccpu20.cpp @@ -183,13 +183,14 @@ * - VME bus arbiter as MAME always gets the bus ****************************************************************************/ #include "emu.h" +#include "vme_fccpu20.h" + #include "cpu/m68000/m68000.h" #include "bus/rs232/rs232.h" #include "machine/68230pit.h" #include "machine/68153bim.h" #include "machine/68561mpcc.h" #include "machine/clock.h" -#include "vme_fccpu20.h" //#define LOG_GENERAL (1U << 0) #define LOG_SETUP (1U << 1) @@ -213,13 +214,13 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type VME_FCCPU20 = device_creator; -const device_type VME_FCCPU21S = device_creator; -const device_type VME_FCCPU21 = device_creator; -const device_type VME_FCCPU21A = device_creator; -const device_type VME_FCCPU21YA = device_creator; -const device_type VME_FCCPU21B = device_creator; -const device_type VME_FCCPU21YB = device_creator; +DEFINE_DEVICE_TYPE(VME_FCCPU20, vme_fccpu20_card_device, "fccpu20", "Force Computer SYS68K/CPU-20 CPU Board") +DEFINE_DEVICE_TYPE(VME_FCCPU21S, vme_fccpu21s_card_device, "fccpu21s", "Force Computer SYS68K/CPU-21S CPU Board") +DEFINE_DEVICE_TYPE(VME_FCCPU21, vme_fccpu21_card_device, "fccpu21", "Force Computer SYS68K/CPU-21 CPU Board") +DEFINE_DEVICE_TYPE(VME_FCCPU21A, vme_fccpu21a_card_device, "fccpu21a", "Force Computer SYS68K/CPU-21A CPU Board") +DEFINE_DEVICE_TYPE(VME_FCCPU21YA, vme_fccpu21ya_card_device, "fccpu21ya", "Force Computer SYS68K/CPU-21YA CPU Board") +DEFINE_DEVICE_TYPE(VME_FCCPU21B, vme_fccpu21b_card_device, "fccpu21b", "Force Computer SYS68K/CPU-21B CPU Board") +DEFINE_DEVICE_TYPE(VME_FCCPU21YB, vme_fccpu21yb_card_device, "fccpu21yb", "Force Computer SYS68K/CPU-21YB CPU Board") #define CLOCK50 XTAL_50MHz /* HCJ */ #define CLOCK40 XTAL_40MHz /* HCJ */ @@ -364,8 +365,8 @@ machine_config_constructor vme_fccpu20_device::device_mconfig_additions() const //************************************************************************** // Base Device //************************************************************************** -vme_fccpu20_device::vme_fccpu20_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source, fc_board_t board_id) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source) +vme_fccpu20_device::vme_fccpu20_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, fc_board_t board_id) : + device_t(mconfig, type, tag, owner, clock) , device_vme_card_interface(mconfig, *this) , m_maincpu (*this, "maincpu") , m_pit (*this, "pit") @@ -382,46 +383,46 @@ vme_fccpu20_device::vme_fccpu20_device(const machine_config &mconfig, device_typ // Card Devices //************************************************************************** vme_fccpu20_card_device::vme_fccpu20_card_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : vme_fccpu20_card_device( mconfig, VME_FCCPU20, "Force Computer SYS68K/CPU-20 CPU Board", tag, owner, clock, "fccpu20", __FILE__) + : vme_fccpu20_card_device(mconfig, VME_FCCPU20, tag, owner, clock) { LOG("%s %s\n", tag, FUNCNAME); } vme_fccpu21s_card_device::vme_fccpu21s_card_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : vme_fccpu21s_card_device( mconfig, VME_FCCPU21S, "Force Computer SYS68K/CPU-21S CPU Board", tag, owner, clock, "fccpu21s", __FILE__) + : vme_fccpu21s_card_device(mconfig, VME_FCCPU21S, tag, owner, clock) { LOG("%s %s\n", tag, FUNCNAME); } vme_fccpu21_card_device::vme_fccpu21_card_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : vme_fccpu21_card_device( mconfig, VME_FCCPU21, "Force Computer SYS68K/CPU-21 CPU Board", tag, owner, clock, "fccpu21", __FILE__) + : vme_fccpu21_card_device(mconfig, VME_FCCPU21, tag, owner, clock) { LOG("%s %s\n", tag, FUNCNAME); } vme_fccpu21a_card_device::vme_fccpu21a_card_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : vme_fccpu21a_card_device( mconfig, VME_FCCPU21A, "Force Computer SYS68K/CPU-21A CPU Board", tag, owner, clock, "fccpu21a", __FILE__) + : vme_fccpu21a_card_device(mconfig, VME_FCCPU21A, tag, owner, clock) { LOG("%s %s\n", tag, FUNCNAME); } // TODO: Change to 2MB on board RAM and move FLME memory and find/verify memory map vme_fccpu21ya_card_device::vme_fccpu21ya_card_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : vme_fccpu21ya_card_device( mconfig, VME_FCCPU21YA, "Force Computer SYS68K/CPU-21YA CPU Board", tag, owner, clock, "fccpu21ya", __FILE__) + : vme_fccpu21ya_card_device(mconfig, VME_FCCPU21YA, tag, owner, clock) { LOG("%s %s\n", tag, FUNCNAME); } vme_fccpu21b_card_device::vme_fccpu21b_card_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : vme_fccpu21b_card_device( mconfig, VME_FCCPU21B, "Force Computer SYS68K/CPU-21B CPU Board", tag, owner, clock, "fccpu21b", __FILE__) + : vme_fccpu21b_card_device(mconfig, VME_FCCPU21B, tag, owner, clock) { LOG("%s %s\n", tag, FUNCNAME); } // TODO: Change to 2MB on board RAM and move FLME memory and find/verify memory map vme_fccpu21yb_card_device::vme_fccpu21yb_card_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : vme_fccpu21yb_card_device( mconfig, VME_FCCPU21YB, "Force Computer SYS68K/CPU-21YB CPU Board", tag, owner, clock, "fccpu21yb", __FILE__) + : vme_fccpu21yb_card_device(mconfig, VME_FCCPU21YB, tag, owner, clock) { LOG("%s %s\n", tag, FUNCNAME); } diff --git a/src/devices/bus/vme/vme_fccpu20.h b/src/devices/bus/vme/vme_fccpu20.h index fe92435a5a6..8bc9cbb2c4b 100644 --- a/src/devices/bus/vme/vme_fccpu20.h +++ b/src/devices/bus/vme/vme_fccpu20.h @@ -1,37 +1,22 @@ // license:BSD-3-Clause // copyright-holders:Joakim Larsson Edstrom -#ifndef VME_FCCPU20_H -#define VME_FCCPU20_H -#pragma once +#ifndef MAME_BUS_VME_VME_FCCPU20_H +#define MAME_BUS_VME_VME_FCCPU20_H +#pragma once +#include "bus/vme/vme.h" #include "machine/68561mpcc.h" #include "machine/68230pit.h" #include "machine/68153bim.h" -#include "bus/vme/vme.h" -extern const device_type VME_FCCPU20; -extern const device_type VME_FCCPU21S; -extern const device_type VME_FCCPU21; -extern const device_type VME_FCCPU21A; -extern const device_type VME_FCCPU21YA; -extern const device_type VME_FCCPU21B; -extern const device_type VME_FCCPU21YB; - -// PIT port C Board ID bits -#define CPU20 0x40 -#define CPU21 0x00 - -/* Board types */ -enum fc_board_t { - cpu20, - cpu21, - cpu21a, - cpu21ya, - cpu21b, - cpu21yb, - cpu21s -}; +DECLARE_DEVICE_TYPE(VME_FCCPU20, vme_fccpu20_card_device) +DECLARE_DEVICE_TYPE(VME_FCCPU21S, vme_fccpu21s_card_device) +DECLARE_DEVICE_TYPE(VME_FCCPU21, vme_fccpu21_card_device) +DECLARE_DEVICE_TYPE(VME_FCCPU21A, vme_fccpu21a_card_device) +DECLARE_DEVICE_TYPE(VME_FCCPU21YA, vme_fccpu21ya_card_device) +DECLARE_DEVICE_TYPE(VME_FCCPU21B, vme_fccpu21b_card_device) +DECLARE_DEVICE_TYPE(VME_FCCPU21YB, vme_fccpu21yb_card_device) //************************************************************************** // Base Device declaration @@ -39,26 +24,48 @@ enum fc_board_t { class vme_fccpu20_device : public device_t, public device_vme_card_interface { public: - vme_fccpu20_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source, fc_board_t board_id); - // optional information overrides virtual machine_config_constructor device_mconfig_additions() const override; virtual const tiny_rom_entry *device_rom_region() const override; - virtual void device_start() override; // Below are duplicated declarations from src/mame/drivers/fccpu20.cpp DECLARE_READ32_MEMBER (bootvect_r); DECLARE_WRITE32_MEMBER (bootvect_w); DECLARE_WRITE_LINE_MEMBER(bim_irq_callback); - uint8_t bim_irq_state; - int bim_irq_level; /* PIT callbacks */ DECLARE_READ8_MEMBER (pita_r); DECLARE_READ8_MEMBER (pitb_r); DECLARE_READ8_MEMBER (pitc_r); +protected: + // PIT port C Board ID bits + static constexpr unsigned CPU20 = 0x40; + static constexpr unsigned CPU21 = 0x00; + + /* Board types */ + enum fc_board_t { + cpu20, + cpu21, + cpu21a, + cpu21ya, + cpu21b, + cpu21yb, + cpu21s + }; + + vme_fccpu20_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, fc_board_t board_id); + + virtual void device_start() override; + virtual void device_reset() override; + virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + + uint8_t bim_irq_state; + int bim_irq_level; + + emu_timer *m_arbiter_start; // Need a startup delay because it is hooked up to the sense inputs of the PIT + private: required_device m_maincpu; required_device m_pit; @@ -71,13 +78,7 @@ private: uint32_t *m_sysrom; uint32_t m_sysram[2]; void update_irq_to_maincpu(); - fc_board_t m_board_id; - - // Below replaces machine_start and machine_reset from src/mame/drivers/fccpu20.cpp -protected: - virtual void device_reset() override; - virtual void device_timer (emu_timer &timer, device_timer_id id, int param, void *ptr) override; - emu_timer *m_arbiter_start; // Need a startup delay because it is hooked up to the sense inputs of the PIT + const fc_board_t m_board_id; }; //************************************************************************** @@ -88,57 +89,78 @@ class vme_fccpu20_card_device : public vme_fccpu20_device { public : vme_fccpu20_card_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - vme_fccpu20_card_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : vme_fccpu20_device( mconfig, type, name, tag, owner, clock, shortname, source, cpu20) { } + +protected: + vme_fccpu20_card_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : vme_fccpu20_device(mconfig, type, tag, owner, clock, cpu20) + { } }; class vme_fccpu21s_card_device : public vme_fccpu20_device { public : vme_fccpu21s_card_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - vme_fccpu21s_card_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : vme_fccpu20_device( mconfig, type, name, tag, owner, clock, shortname, source, cpu21s) { } + +protected: + vme_fccpu21s_card_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : vme_fccpu20_device(mconfig, type, tag, owner, clock, cpu21s) + { } }; class vme_fccpu21_card_device : public vme_fccpu20_device { public : vme_fccpu21_card_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - vme_fccpu21_card_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : vme_fccpu20_device( mconfig, type, name, tag, owner, clock, shortname, source, cpu21) { } + +protected: + vme_fccpu21_card_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : vme_fccpu20_device(mconfig, type, tag, owner, clock, cpu21) + { } }; class vme_fccpu21a_card_device : public vme_fccpu20_device { public : vme_fccpu21a_card_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - vme_fccpu21a_card_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : vme_fccpu20_device( mconfig, type, name, tag, owner, clock, shortname, source, cpu21a) { } + +protected: + vme_fccpu21a_card_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : vme_fccpu20_device(mconfig, type, tag, owner, clock, cpu21a) + { } }; class vme_fccpu21ya_card_device : public vme_fccpu20_device { public : vme_fccpu21ya_card_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - vme_fccpu21ya_card_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : vme_fccpu20_device( mconfig, type, name, tag, owner, clock, shortname, source, cpu21ya) { } + +protected: + vme_fccpu21ya_card_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : vme_fccpu20_device(mconfig, type, tag, owner, clock, cpu21ya) + { } }; class vme_fccpu21b_card_device : public vme_fccpu20_device { public : vme_fccpu21b_card_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - vme_fccpu21b_card_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : vme_fccpu20_device( mconfig, type, name, tag, owner, clock, shortname, source, cpu21b) { } + +protected: + vme_fccpu21b_card_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : vme_fccpu20_device(mconfig, type, tag, owner, clock, cpu21b) + { } }; class vme_fccpu21yb_card_device : public vme_fccpu20_device { public : vme_fccpu21yb_card_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - vme_fccpu21yb_card_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : vme_fccpu20_device( mconfig, type, name, tag, owner, clock, shortname, source, cpu21yb) { } + +protected: + vme_fccpu21yb_card_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : vme_fccpu20_device(mconfig, type, tag, owner, clock, cpu21yb) + { } }; -#endif // VME_FCCPU20_H +#endif // MAME_BUS_VME_VME_FCCPU20_H diff --git a/src/devices/bus/vme/vme_fcisio.cpp b/src/devices/bus/vme/vme_fcisio.cpp index 647d88ed5db..0c386c31e87 100644 --- a/src/devices/bus/vme/vme_fcisio.cpp +++ b/src/devices/bus/vme/vme_fcisio.cpp @@ -124,16 +124,15 @@ * PIT and DUSCCs are hooked up to the BIM to get further. * ****************************************************************************/ -#define TODO "VME side hookup of 68153 BIM device needed\n" - #include "emu.h" +#include "vme_fcisio.h" + #include "cpu/m68000/m68000.h" #include "machine/scnxx562.h" #include "machine/68230pit.h" #include "machine/68153bim.h" #include "bus/rs232/rs232.h" #include "machine/clock.h" -#include "vme_fcisio.h" //#define LOG_GENERAL (1U << 0) #define LOG_SETUP (1U << 1) @@ -151,11 +150,13 @@ #define FUNCNAME __PRETTY_FUNCTION__ #endif +#define TODO "VME side hookup of 68153 BIM device needed\n" + //************************************************************************** // GLOBAL VARIABLES //************************************************************************** -const device_type VME_FCISIO1 = device_creator; +DEFINE_DEVICE_TYPE(VME_FCISIO1, vme_fcisio1_card_device, "fcisio1", "Force Computer SYS68K/ISIO-1/2 Intelligent Serial I/O Board") #define CPU_CLOCK XTAL_20MHz /* HCJ */ #define DUSCC_CLOCK XTAL_14_7456MHz /* HCJ */ @@ -384,32 +385,23 @@ const tiny_rom_entry *vme_fcisio1_card_device::device_rom_region() const //************************************************************************** // LIVE DEVICE //************************************************************************** -vme_fcisio1_card_device::vme_fcisio1_card_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source) - ,device_vme_card_interface(mconfig, *this) - ,m_maincpu (*this, "maincpu") - ,m_duscc0(*this, "duscc0") - ,m_duscc1(*this, "duscc1") - ,m_duscc2(*this, "duscc2") - ,m_duscc3(*this, "duscc3") - ,m_pit (*this, "pit") - ,m_bim (*this, "bim") +vme_fcisio1_card_device::vme_fcisio1_card_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) + , device_vme_card_interface(mconfig, *this) + , m_maincpu (*this, "maincpu") + , m_duscc0(*this, "duscc0") + , m_duscc1(*this, "duscc1") + , m_duscc2(*this, "duscc2") + , m_duscc3(*this, "duscc3") + , m_pit (*this, "pit") + , m_bim (*this, "bim") { LOG("%s\n", FUNCNAME); } -vme_fcisio1_card_device::vme_fcisio1_card_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, VME_FCISIO1, "Force Computer SYS68K/ISIO-1/2 Intelligent Serial I/O Board", tag, owner, clock, "fcisio1", __FILE__) - ,device_vme_card_interface(mconfig, *this) - ,m_maincpu(*this, "maincpu") - ,m_duscc0(*this, "duscc0") - ,m_duscc1(*this, "duscc1") - ,m_duscc2(*this, "duscc2") - ,m_duscc3(*this, "duscc3") - ,m_pit (*this, "pit") - ,m_bim (*this, "bim") +vme_fcisio1_card_device::vme_fcisio1_card_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : vme_fcisio1_card_device(mconfig, VME_FCISIO1, tag, owner, clock) { - LOG("%s %s\n", tag, FUNCNAME); } /* Start it up */ diff --git a/src/devices/bus/vme/vme_fcisio.h b/src/devices/bus/vme/vme_fcisio.h index fc668cc276a..93e682ed8d1 100644 --- a/src/devices/bus/vme/vme_fcisio.h +++ b/src/devices/bus/vme/vme_fcisio.h @@ -1,7 +1,8 @@ // license:BSD-3-Clause // copyright-holders:Joakim Larsson Edstrom -#ifndef VME_FCISIO_H -#define VME_FCISIO_H +#ifndef MAME_BUS_VME_VME_FCISIO_H +#define MAME_BUS_VME_VME_FCISIO_H + #pragma once #include "machine/scnxx562.h" @@ -9,14 +10,11 @@ #include "machine/68153bim.h" #include "bus/vme/vme.h" -extern const device_type VME_FCISIO1; +DECLARE_DEVICE_TYPE(VME_FCISIO1, vme_fcisio1_card_device) -class vme_fcisio1_card_device : - public device_t - ,public device_vme_card_interface +class vme_fcisio1_card_device : public device_t, public device_vme_card_interface { public: - vme_fcisio1_card_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); vme_fcisio1_card_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides @@ -31,6 +29,8 @@ public: DECLARE_WRITE8_MEMBER (not_implemented_w); protected: + vme_fcisio1_card_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; virtual void device_reset() override; @@ -48,4 +48,4 @@ private: uint16_t *m_sysrom; }; -#endif // VME_FCISIO_H +#endif // MAME_BUS_VME_VME_FCISIO_H diff --git a/src/devices/bus/vme/vme_fcscsi.cpp b/src/devices/bus/vme/vme_fcscsi.cpp index 3d1be933dff..b476ff2efe3 100644 --- a/src/devices/bus/vme/vme_fcscsi.cpp +++ b/src/devices/bus/vme/vme_fcscsi.cpp @@ -142,16 +142,15 @@ * - Let a controller CPU board (eg CPU-1 or CPU-30) boot from floppy or SCSI disk * ****************************************************************************/ -#define TODO "Driver for SCSI NCR5386s device needed\n" - #include "emu.h" +#include "vme_fcscsi.h" + #include "cpu/m68000/m68000.h" #include "machine/68230pit.h" #include "machine/wd_fdc.h" #include "machine/hd63450.h" // compatible with MC68450 #include "machine/clock.h" #include "formats/pc_dsk.h" -#include "vme_fcscsi.h" #define LOG_GENERAL 0x01 #define LOG_SETUP 0x02 @@ -175,11 +174,13 @@ #define FUNCNAME __PRETTY_FUNCTION__ #endif +#define TODO "Driver for SCSI NCR5386s device needed\n" + //************************************************************************** // GLOBAL VARIABLES //************************************************************************** -const device_type VME_FCSCSI1 = device_creator; +DEFINE_DEVICE_TYPE(VME_FCSCSI1, vme_fcscsi1_card_device, "fcscsi1", "Force Computer SYS68K/ISCSI-1 Intelligent Mass Storage Controller Board") #define CPU_CRYSTAL XTAL_20MHz /* Jauch */ #define PIT_CRYSTAL XTAL_16MHz /* Jauch */ @@ -194,7 +195,7 @@ static ADDRESS_MAP_START (fcscsi1_mem, AS_PROGRAM, 16, vme_fcscsi1_card_device) // AM_RANGE (0xc40000, 0xc4001f) AM_DEVREADWRITE8("scsi", ncr5386_device, read, write, 0x00ff) /* SCSI Controller interface - device support not yet available*/ AM_RANGE (0xc40000, 0xc4001f) AM_READWRITE8 (scsi_r, scsi_w, 0x00ff) AM_RANGE (0xc80000, 0xc800ff) AM_DEVREADWRITE("mc68450", hd63450_device, read, write) /* DMA Controller interface */ - AM_RANGE (0xcc0000, 0xcc0007) AM_DEVREADWRITE8("fdc", wd1772_t, read, write, 0x00ff) /* Floppy Controller interface */ + AM_RANGE (0xcc0000, 0xcc0007) AM_DEVREADWRITE8("fdc", wd1772_device, read, write, 0x00ff) /* Floppy Controller interface */ AM_RANGE (0xcc0008, 0xcc0009) AM_READWRITE8 (tcr_r, tcr_w, 0x00ff) /* The Control Register, SCSI ID and FD drive select bits */ ADDRESS_MAP_END @@ -274,28 +275,21 @@ const tiny_rom_entry *vme_fcscsi1_card_device::device_rom_region() const //************************************************************************** // LIVE DEVICE //************************************************************************** -vme_fcscsi1_card_device::vme_fcscsi1_card_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source) - ,device_vme_card_interface(mconfig, *this) - ,m_maincpu (*this, "maincpu") - ,m_fdc (*this, "fdc") - ,m_pit (*this, "pit") - ,m_dmac(*this, "mc68450") - ,m_tcr (0) +vme_fcscsi1_card_device::vme_fcscsi1_card_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) + , device_vme_card_interface(mconfig, *this) + , m_maincpu(*this, "maincpu") + , m_fdc(*this, "fdc") + , m_pit(*this, "pit") + , m_dmac(*this, "mc68450") + , m_tcr(0) { LOG("%s\n", FUNCNAME); } -vme_fcscsi1_card_device::vme_fcscsi1_card_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, VME_FCSCSI1, "Force Computer SYS68K/ISCSI-1 Intelligent Mass Storage Controller Board", tag, owner, clock, "fcscsi1", __FILE__) - ,device_vme_card_interface(mconfig, *this) - ,m_maincpu(*this, "maincpu") - ,m_fdc(*this, "fdc") - ,m_pit(*this, "pit") - ,m_dmac(*this, "mc68450") - ,m_tcr(0) +vme_fcscsi1_card_device::vme_fcscsi1_card_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : vme_fcscsi1_card_device(mconfig, VME_FCSCSI1, tag, owner, clock) { - LOG("%s\n", FUNCNAME); } /* Start it up */ diff --git a/src/devices/bus/vme/vme_fcscsi.h b/src/devices/bus/vme/vme_fcscsi.h index 91b65a91552..c25a3edd431 100644 --- a/src/devices/bus/vme/vme_fcscsi.h +++ b/src/devices/bus/vme/vme_fcscsi.h @@ -1,7 +1,8 @@ // license:BSD-3-Clause // copyright-holders:Joakim Larsson Edstrom -#ifndef VME_FCSCSI_H -#define VME_FCSCSI_H +#ifndef MAME_BUS_VME_VME_FCSCSI_H +#define MAME_BUS_VME_VME_FCSCSI_H + #pragma once #include "machine/68230pit.h" @@ -16,7 +17,6 @@ class vme_fcscsi1_card_device : ,public device_vme_card_interface { public: - vme_fcscsi1_card_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); vme_fcscsi1_card_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // optional information overrides @@ -41,25 +41,27 @@ public: DECLARE_FLOPPY_FORMATS(floppy_formats); /* Dummy driver routines */ - DECLARE_READ8_MEMBER (not_implemented_r); - DECLARE_WRITE8_MEMBER (not_implemented_w); - - DECLARE_READ8_MEMBER (scsi_r); - DECLARE_WRITE8_MEMBER (scsi_w); - - uint8_t fdc_irq_state; - uint8_t dmac_irq_state; - int dmac_irq_vector; + DECLARE_READ8_MEMBER(not_implemented_r); + DECLARE_WRITE8_MEMBER(not_implemented_w); - void update_irq_to_maincpu(); + DECLARE_READ8_MEMBER(scsi_r); + DECLARE_WRITE8_MEMBER(scsi_w); protected: + vme_fcscsi1_card_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; virtual void device_reset() override; + void update_irq_to_maincpu(); + + uint8_t fdc_irq_state; + uint8_t dmac_irq_state; + int dmac_irq_vector; + private: required_device m_maincpu; - required_device m_fdc; + required_device m_fdc; required_device m_pit; required_device m_dmac; @@ -69,5 +71,4 @@ private: uint16_t *m_sysrom; }; -#endif // VME_FCSCSI_H - +#endif // MAME_BUS_VME_VME_FCSCSI_H diff --git a/src/devices/bus/vme/vme_mvme350.cpp b/src/devices/bus/vme/vme_mvme350.cpp index d2fc6d07836..b353eceb215 100644 --- a/src/devices/bus/vme/vme_mvme350.cpp +++ b/src/devices/bus/vme/vme_mvme350.cpp @@ -128,9 +128,10 @@ ****************************************************************************/ #include "emu.h" +#include "vme_mvme350.h" + #include "cpu/m68000/m68000.h" #include "machine/68230pit.h" -#include "vme_mvme350.h" #define LOG_GENERAL 0x01 #define LOG_SETUP 0x02 @@ -158,7 +159,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type VME_MVME350 = device_creator; +DEFINE_DEVICE_TYPE(VME_MVME350, vme_mvme350_card_device, "mvme350", "Motorola MVME-350 Intelligent Tape Controller") #define MVME350_CPU_TAG "mvme350_cpu" #define MVME350_ROM "mvme350_rom" @@ -212,16 +213,15 @@ const tiny_rom_entry *vme_mvme350_card_device::device_rom_region() const // LIVE DEVICE //************************************************************************** -vme_mvme350_card_device::vme_mvme350_card_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_vme_card_interface(mconfig, *this) +vme_mvme350_card_device::vme_mvme350_card_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), + device_vme_card_interface(mconfig, *this) { LOG("%s %s\n", tag, FUNCNAME); } vme_mvme350_card_device::vme_mvme350_card_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, VME_MVME350, "Motorola MVME-350 Intelligent Tape Controller", tag, owner, clock, "mvme350", __FILE__), - device_vme_card_interface(mconfig, *this) + vme_mvme350_card_device(mconfig, VME_MVME350, tag, owner, clock) { LOG("%s %s\n", tag, FUNCNAME); } diff --git a/src/devices/bus/vme/vme_mvme350.h b/src/devices/bus/vme/vme_mvme350.h index 54aecc1ec82..75f58762318 100644 --- a/src/devices/bus/vme/vme_mvme350.h +++ b/src/devices/bus/vme/vme_mvme350.h @@ -1,20 +1,18 @@ // license:BSD-3-Clause // copyright-holders:Joakim Larsson Edstrom -#ifndef VME_MVME350_H -#define VME_MVME350_H +#ifndef MAME_BUS_VME_VME_MVME350_H +#define MAME_BUS_VME_VME_MVME350_H + #pragma once #include "bus/vme/vme.h" -extern const device_type VME_MVME350; +DECLARE_DEVICE_TYPE(VME_MVME350, vme_mvme350_card_device) -class vme_mvme350_card_device : - public device_t - ,public device_vme_card_interface +class vme_mvme350_card_device : public device_t, public device_vme_card_interface { public: vme_mvme350_card_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - vme_mvme350_card_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); // optional information overrides virtual machine_config_constructor device_mconfig_additions() const override; @@ -23,10 +21,12 @@ public: // Shared memory methods to be exported to the VME bus // virtual DECLARE_READ16_MEMBER (read16) override; // virtual DECLARE_WRITE16_MEMBER (write16) override; + protected: + vme_mvme350_card_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; virtual void device_reset() override; -private: }; -#endif // VME_MVME350_H +#endif // MAME_BUS_VME_VME_MVME350_H diff --git a/src/devices/bus/vme/vme_mzr8105.cpp b/src/devices/bus/vme/vme_mzr8105.cpp index 24eac1dfc9d..23a60feaa17 100644 --- a/src/devices/bus/vme/vme_mzr8105.cpp +++ b/src/devices/bus/vme/vme_mzr8105.cpp @@ -30,7 +30,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type VME_MZR8105 = device_creator; +DEFINE_DEVICE_TYPE(VME_MZR8105, vme_mzr8105_card_device, "mzr8105", "Mizar 8105 68K CPU board") //------------------------------------------------- // machine_config_additions - device-specific @@ -46,15 +46,14 @@ machine_config_constructor vme_mzr8105_card_device::device_mconfig_additions() c } vme_mzr8105_card_device::vme_mzr8105_card_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, VME_MZR8105, "Mizar 8105 68K CPU board", tag, owner, clock, "mzr8105", __FILE__), - device_vme_card_interface(mconfig, *this) + vme_mzr8105_card_device(mconfig, VME_MZR8105, tag, owner, clock) { m_slot = 1; LOG("%s %s\n", tag, FUNCNAME); } -vme_mzr8105_card_device::vme_mzr8105_card_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), +vme_mzr8105_card_device::vme_mzr8105_card_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), device_vme_card_interface(mconfig, *this) { LOG("%s %s\n", tag, FUNCNAME); diff --git a/src/devices/bus/vme/vme_mzr8105.h b/src/devices/bus/vme/vme_mzr8105.h index 525cf691408..0378f19b727 100644 --- a/src/devices/bus/vme/vme_mzr8105.h +++ b/src/devices/bus/vme/vme_mzr8105.h @@ -1,24 +1,27 @@ // license:BSD-3-Clause // copyright-holders:Joakim Larsson Edstrom -#ifndef VME_MZR8105_H -#define VME_MZR8105_H +#ifndef MAME_BUS_VME_VME_MZR8105_H +#define MAME_BUS_VME_VME_MZR8105_H + #pragma once #include "bus/vme/vme.h" -extern const device_type VME_MZR8105; +DECLARE_DEVICE_TYPE(VME_MZR8105, vme_mzr8105_card_device) -class vme_mzr8105_card_device : public device_t - ,public device_vme_card_interface +class vme_mzr8105_card_device : public device_t, public device_vme_card_interface { public: vme_mzr8105_card_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - vme_mzr8105_card_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); + // optional information overrides virtual machine_config_constructor device_mconfig_additions() const override; -private: + +protected: + vme_mzr8105_card_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; virtual void device_reset() override; }; -#endif // VME_MZR8105_H +#endif // MAME_BUS_VME_VME_MZR8105_H diff --git a/src/devices/bus/vme/vme_mzr8300.cpp b/src/devices/bus/vme/vme_mzr8300.cpp index a9d85736661..571422a1ea6 100644 --- a/src/devices/bus/vme/vme_mzr8300.cpp +++ b/src/devices/bus/vme/vme_mzr8300.cpp @@ -83,6 +83,7 @@ #include "emu.h" #include "vme_mzr8300.h" + #include "machine/z80sio.h" #include "bus/rs232/rs232.h" #include "machine/clock.h" @@ -113,7 +114,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type VME_MZR8300 = device_creator; +DEFINE_DEVICE_TYPE(VME_MZR8300, vme_mzr8300_card_device, "mzr8300", "Mizar 8300 SIO serial board") /* These values are borrowed just to get the terminal going and should be replaced * once a proper serial board hardware (ie MZ 8300) is found and emulated. */ @@ -128,8 +129,8 @@ MACHINE_CONFIG_FRAGMENT( mzr8300 ) MCFG_Z80SIO_OUT_RTSB_CB(DEVWRITELINE("rs232p1", rs232_port_device, write_rts)) MCFG_RS232_PORT_ADD ("rs232p1", default_rs232_devices, "terminal") - MCFG_RS232_RXD_HANDLER (DEVWRITELINE ("sio0", upd7201N_device, rxb_w)) - MCFG_RS232_CTS_HANDLER (DEVWRITELINE ("sio0", upd7201N_device, ctsb_w)) + MCFG_RS232_RXD_HANDLER (DEVWRITELINE ("sio0", upd7201_new_device, rxb_w)) + MCFG_RS232_CTS_HANDLER (DEVWRITELINE ("sio0", upd7201_new_device, ctsb_w)) MCFG_Z80SIO_ADD("sio1", XTAL_4MHz, 0, 0, 0, 0 ) MACHINE_CONFIG_END @@ -150,18 +151,16 @@ machine_config_constructor vme_mzr8300_card_device::device_mconfig_additions() c // LIVE DEVICE //************************************************************************** -vme_mzr8300_card_device::vme_mzr8300_card_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_vme_card_interface(mconfig, *this) +vme_mzr8300_card_device::vme_mzr8300_card_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), + device_vme_card_interface(mconfig, *this) { LOG("%s %s\n", tag, FUNCNAME); } vme_mzr8300_card_device::vme_mzr8300_card_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, VME_MZR8300, "Mizar 8300 SIO serial board", tag, owner, clock, "mzr8300", __FILE__), - device_vme_card_interface(mconfig, *this) + vme_mzr8300_card_device(mconfig, VME_MZR8300, tag, owner, clock) { - LOG("%s %s\n", tag, FUNCNAME); } void vme_mzr8300_card_device::device_start() diff --git a/src/devices/bus/vme/vme_mzr8300.h b/src/devices/bus/vme/vme_mzr8300.h index b7145037073..cce6c9da7a5 100644 --- a/src/devices/bus/vme/vme_mzr8300.h +++ b/src/devices/bus/vme/vme_mzr8300.h @@ -1,30 +1,30 @@ // license:BSD-3-Clause // copyright-holders:Joakim Larsson Edstrom -#ifndef VME_MZR8300_H -#define VME_MZR8300_H +#ifndef MAME_BUS_VME_VME_MZR8300_H +#define MAME_BUS_VME_VME_MZR8300_H + #pragma once #include "bus/vme/vme.h" extern const device_type VME_MZR8300; -class vme_mzr8300_card_device : - public device_t - ,public device_vme_card_interface +class vme_mzr8300_card_device : public device_t, public device_vme_card_interface { public: vme_mzr8300_card_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - vme_mzr8300_card_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); // optional information overrides virtual machine_config_constructor device_mconfig_additions() const override; // virtual DECLARE_READ8_MEMBER (read8) override; // virtual DECLARE_WRITE8_MEMBER (write8) override; + protected: + vme_mzr8300_card_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; virtual void device_reset() override; -private: }; -#endif // VME_MZR8300_H +#endif // MAME_BUS_VME_VME_MZR8300_H diff --git a/src/devices/bus/vtech/ioexp/carts.cpp b/src/devices/bus/vtech/ioexp/carts.cpp index d9ddb4cb9ec..ae579ba23e5 100644 --- a/src/devices/bus/vtech/ioexp/carts.cpp +++ b/src/devices/bus/vtech/ioexp/carts.cpp @@ -9,7 +9,11 @@ #include "emu.h" #include "carts.h" -SLOT_INTERFACE_START( ioexp_slot_carts ) - SLOT_INTERFACE("joystick", JOYSTICK_INTERFACE) - SLOT_INTERFACE("printer", PRINTER_INTERFACE) +#include "joystick.h" +#include "printer.h" + + +SLOT_INTERFACE_START( vtech_ioexp_slot_carts ) + SLOT_INTERFACE("joystick", VTECH_JOYSTICK_INTERFACE) + SLOT_INTERFACE("printer", VTECH_PRINTER_INTERFACE) SLOT_INTERFACE_END diff --git a/src/devices/bus/vtech/ioexp/carts.h b/src/devices/bus/vtech/ioexp/carts.h index 6bdd27b2ee8..a6195747389 100644 --- a/src/devices/bus/vtech/ioexp/carts.h +++ b/src/devices/bus/vtech/ioexp/carts.h @@ -6,15 +6,12 @@ ***************************************************************************/ -#pragma once - -#ifndef __VTECH_IOEXP_CARTS_H__ -#define __VTECH_IOEXP_CARTS_H__ +#ifndef MAME_BUS_VTECH_IOEXP_CARTS_H +#define MAME_BUS_VTECH_IOEXP_CARTS_H +#pragma once -#include "joystick.h" -#include "printer.h" -SLOT_INTERFACE_EXTERN( ioexp_slot_carts ); +SLOT_INTERFACE_EXTERN( vtech_ioexp_slot_carts ); -#endif // __VTECH_IOEXP_CARTS_H__ +#endif // MAME_BUS_VTECH_IOEXP_CARTS_H diff --git a/src/devices/bus/vtech/ioexp/ioexp.cpp b/src/devices/bus/vtech/ioexp/ioexp.cpp index 178b35137ab..c2916a0ba14 100644 --- a/src/devices/bus/vtech/ioexp/ioexp.cpp +++ b/src/devices/bus/vtech/ioexp/ioexp.cpp @@ -16,7 +16,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type IOEXP_SLOT = device_creator; +DEFINE_DEVICE_TYPE(VTECH_IOEXP_SLOT, vtech_ioexp_slot_device, "vtech_ioexp_slot", "Laser/VZ I/O Expansion Slot") //************************************************************************** @@ -24,11 +24,11 @@ const device_type IOEXP_SLOT = device_creator; //************************************************************************** //------------------------------------------------- -// ioexp_slot_device - constructor +// vtech_ioexp_slot_device - constructor //------------------------------------------------- -ioexp_slot_device::ioexp_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, IOEXP_SLOT, "Peripheral Expansion Slot", tag, owner, clock, "ioexp_slot", __FILE__), +vtech_ioexp_slot_device::vtech_ioexp_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, VTECH_IOEXP_SLOT, tag, owner, clock), device_slot_interface(mconfig, *this), m_io(nullptr), m_cart(nullptr) @@ -36,10 +36,10 @@ ioexp_slot_device::ioexp_slot_device(const machine_config &mconfig, const char * } //------------------------------------------------- -// ioexp_slot_device - destructor +// vtech_ioexp_slot_device - destructor //------------------------------------------------- -ioexp_slot_device::~ioexp_slot_device() +vtech_ioexp_slot_device::~vtech_ioexp_slot_device() { } @@ -47,7 +47,7 @@ ioexp_slot_device::~ioexp_slot_device() // device_start - device-specific startup //------------------------------------------------- -void ioexp_slot_device::device_start() +void vtech_ioexp_slot_device::device_start() { } @@ -55,7 +55,7 @@ void ioexp_slot_device::device_start() // device_reset - device-specific reset //------------------------------------------------- -void ioexp_slot_device::device_reset() +void vtech_ioexp_slot_device::device_reset() { } @@ -63,7 +63,7 @@ void ioexp_slot_device::device_reset() // set_io_space - set address space we are attached to //------------------------------------------------- -void ioexp_slot_device::set_io_space(address_space *io) +void vtech_ioexp_slot_device::set_io_space(address_space *io) { m_io = io; } @@ -74,19 +74,19 @@ void ioexp_slot_device::set_io_space(address_space *io) //************************************************************************** //------------------------------------------------- -// device_ioexp_interface - constructor +// device_vtech_ioexp_interface - constructor //------------------------------------------------- -device_ioexp_interface::device_ioexp_interface(const machine_config &mconfig, device_t &device) : +device_vtech_ioexp_interface::device_vtech_ioexp_interface(const machine_config &mconfig, device_t &device) : device_slot_card_interface(mconfig, device) { - m_slot = dynamic_cast(device.owner()); + m_slot = dynamic_cast(device.owner()); } //------------------------------------------------- -// ~device_ioexp_interface - destructor +// ~device_vtech_ioexp_interface - destructor //------------------------------------------------- -device_ioexp_interface::~device_ioexp_interface() +device_vtech_ioexp_interface::~device_vtech_ioexp_interface() { } diff --git a/src/devices/bus/vtech/ioexp/ioexp.h b/src/devices/bus/vtech/ioexp/ioexp.h index 6dec80c6c4a..7b9e97a7e03 100644 --- a/src/devices/bus/vtech/ioexp/ioexp.h +++ b/src/devices/bus/vtech/ioexp/ioexp.h @@ -24,10 +24,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_BUS_VTECH_IOEXP_IOEXP_H +#define MAME_BUS_VTECH_IOEXP_IOEXP_H -#ifndef __VTECH_IOEXP_H__ -#define __VTECH_IOEXP_H__ +#pragma once @@ -36,51 +36,55 @@ //************************************************************************** #define MCFG_IOEXP_SLOT_ADD(_tag) \ - MCFG_DEVICE_ADD(_tag, IOEXP_SLOT, 0) \ - MCFG_DEVICE_SLOT_INTERFACE(ioexp_slot_carts, nullptr, false) + MCFG_DEVICE_ADD(_tag, VTECH_IOEXP_SLOT, 0) \ + MCFG_DEVICE_SLOT_INTERFACE(vtech_ioexp_slot_carts, nullptr, false) //************************************************************************** // TYPE DEFINITIONS //************************************************************************** -class device_ioexp_interface; +class device_vtech_ioexp_interface; -class ioexp_slot_device : public device_t, public device_slot_interface +class vtech_ioexp_slot_device : public device_t, public device_slot_interface { + friend class device_vtech_ioexp_interface; public: // construction/destruction - ioexp_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual ~ioexp_slot_device(); + vtech_ioexp_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + virtual ~vtech_ioexp_slot_device(); void set_io_space(address_space *io); - address_space *m_io; - protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; - device_ioexp_interface *m_cart; + address_space *m_io; + + device_vtech_ioexp_interface *m_cart; }; // class representing interface-specific live ioexp device -class device_ioexp_interface : public device_slot_card_interface +class device_vtech_ioexp_interface : public device_slot_card_interface { public: // construction/destruction - device_ioexp_interface(const machine_config &mconfig, device_t &device); - virtual ~device_ioexp_interface(); + virtual ~device_vtech_ioexp_interface(); protected: - ioexp_slot_device *m_slot; + device_vtech_ioexp_interface(const machine_config &mconfig, device_t &device); + + address_space &io_space() { return *m_slot->m_io; } + + vtech_ioexp_slot_device *m_slot; }; // device type definition -extern const device_type IOEXP_SLOT; +DECLARE_DEVICE_TYPE(VTECH_IOEXP_SLOT, vtech_ioexp_slot_device) // include here so drivers don't need to #include "carts.h" -#endif // __VTECH_IOEXP_H__ +#endif // MAME_BUS_VTECH_IOEXP_IOEXP_H diff --git a/src/devices/bus/vtech/ioexp/joystick.cpp b/src/devices/bus/vtech/ioexp/joystick.cpp index f73bf722be7..7570deca3b5 100644 --- a/src/devices/bus/vtech/ioexp/joystick.cpp +++ b/src/devices/bus/vtech/ioexp/joystick.cpp @@ -17,7 +17,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type JOYSTICK_INTERFACE = device_creator; +DEFINE_DEVICE_TYPE(VTECH_JOYSTICK_INTERFACE, vtech_joystick_interface_device, "vtech_joystick", "Laser/VZ Joystick Interface") //------------------------------------------------- // input_ports - device-specific input ports @@ -51,7 +51,7 @@ static INPUT_PORTS_START( joystick ) PORT_BIT(0xe0, IP_ACTIVE_LOW, IPT_UNUSED) INPUT_PORTS_END -ioport_constructor joystick_interface_device::device_input_ports() const +ioport_constructor vtech_joystick_interface_device::device_input_ports() const { return INPUT_PORTS_NAME( joystick ); } @@ -62,12 +62,12 @@ ioport_constructor joystick_interface_device::device_input_ports() const //************************************************************************** //------------------------------------------------- -// joystick_interface_device - constructor +// vtech_joystick_interface_device - constructor //------------------------------------------------- -joystick_interface_device::joystick_interface_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, JOYSTICK_INTERFACE, "Laser/VZ Joystick Interface", tag, owner, clock, "joystick", __FILE__), - device_ioexp_interface(mconfig, *this), +vtech_joystick_interface_device::vtech_joystick_interface_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, VTECH_JOYSTICK_INTERFACE, tag, owner, clock), + device_vtech_ioexp_interface(mconfig, *this), m_joy0(*this, "joystick_0"), m_joy0_arm(*this, "joystick_0_arm"), m_joy1(*this, "joystick_1"), @@ -79,7 +79,7 @@ joystick_interface_device::joystick_interface_device(const machine_config &mconf // device_start - device-specific startup //------------------------------------------------- -void joystick_interface_device::device_start() +void vtech_joystick_interface_device::device_start() { } @@ -87,9 +87,9 @@ void joystick_interface_device::device_start() // device_reset - device-specific reset //------------------------------------------------- -void joystick_interface_device::device_reset() +void vtech_joystick_interface_device::device_reset() { - m_slot->m_io->install_read_handler(0x20, 0x2f, read8_delegate(FUNC(joystick_interface_device::joystick_r), this)); + io_space().install_read_handler(0x20, 0x2f, read8_delegate(FUNC(vtech_joystick_interface_device::joystick_r), this)); } @@ -97,7 +97,7 @@ void joystick_interface_device::device_reset() // IMPLEMENTATION //************************************************************************** -READ8_MEMBER( joystick_interface_device::joystick_r ) +READ8_MEMBER( vtech_joystick_interface_device::joystick_r ) { uint8_t data = 0xff; diff --git a/src/devices/bus/vtech/ioexp/joystick.h b/src/devices/bus/vtech/ioexp/joystick.h index 803e3bd5848..0c05403ad2b 100644 --- a/src/devices/bus/vtech/ioexp/joystick.h +++ b/src/devices/bus/vtech/ioexp/joystick.h @@ -9,10 +9,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_BUS_VTECH_IOEXP_JOYSTICK_H +#define MAME_BUS_VTECH_IOEXP_JOYSTICK_H -#ifndef __VTECH_IOEXP_JOYSTICK_H__ -#define __VTECH_IOEXP_JOYSTICK_H__ +#pragma once #include "ioexp.h" @@ -23,11 +23,11 @@ // ======================> joystick_interface_device -class joystick_interface_device : public device_t, public device_ioexp_interface +class vtech_joystick_interface_device : public device_t, public device_vtech_ioexp_interface { public: // construction/destruction - joystick_interface_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + vtech_joystick_interface_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); DECLARE_READ8_MEMBER( joystick_r ); @@ -44,6 +44,6 @@ private: }; // device type definition -extern const device_type JOYSTICK_INTERFACE; +DECLARE_DEVICE_TYPE(VTECH_JOYSTICK_INTERFACE, vtech_joystick_interface_device) -#endif // __VTECH_IOEXP_JOYSTICK_H__ +#endif // MAME_BUS_VTECH_IOEXP_JOYSTICK_H diff --git a/src/devices/bus/vtech/ioexp/printer.cpp b/src/devices/bus/vtech/ioexp/printer.cpp index 974d8c3818c..970bf08303d 100644 --- a/src/devices/bus/vtech/ioexp/printer.cpp +++ b/src/devices/bus/vtech/ioexp/printer.cpp @@ -17,7 +17,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type PRINTER_INTERFACE = device_creator; +DEFINE_DEVICE_TYPE(VTECH_PRINTER_INTERFACE, vtech_printer_interface_device, "vtech_printer", "Laser/VZ Printer Interface") //------------------------------------------------- // machine_config_additions - device-specific @@ -26,11 +26,11 @@ const device_type PRINTER_INTERFACE = device_creator; static MACHINE_CONFIG_FRAGMENT( printer_interface ) MCFG_CENTRONICS_ADD("centronics", centronics_devices, "printer") - MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(printer_interface_device, busy_w)) + MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(vtech_printer_interface_device, busy_w)) MCFG_CENTRONICS_OUTPUT_LATCH_ADD("latch", "centronics") MACHINE_CONFIG_END -machine_config_constructor printer_interface_device::device_mconfig_additions() const +machine_config_constructor vtech_printer_interface_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( printer_interface ); } @@ -41,12 +41,12 @@ machine_config_constructor printer_interface_device::device_mconfig_additions() //************************************************************************** //------------------------------------------------- -// printer_interface_device - constructor +// vtech_printer_interface_device - constructor //------------------------------------------------- -printer_interface_device::printer_interface_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, PRINTER_INTERFACE, "Laser/VZ Printer Interface", tag, owner, clock, "printer", __FILE__), - device_ioexp_interface(mconfig, *this), +vtech_printer_interface_device::vtech_printer_interface_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, VTECH_PRINTER_INTERFACE, tag, owner, clock), + device_vtech_ioexp_interface(mconfig, *this), m_centronics(*this, "centronics"), m_latch(*this, "latch"), m_centronics_busy(0) @@ -57,7 +57,7 @@ printer_interface_device::printer_interface_device(const machine_config &mconfig // device_start - device-specific startup //------------------------------------------------- -void printer_interface_device::device_start() +void vtech_printer_interface_device::device_start() { } @@ -65,11 +65,11 @@ void printer_interface_device::device_start() // device_reset - device-specific reset //------------------------------------------------- -void printer_interface_device::device_reset() +void vtech_printer_interface_device::device_reset() { - m_slot->m_io->install_read_handler(0x00, 0x00, read8_delegate(FUNC(printer_interface_device::busy_r), this)); - m_slot->m_io->install_write_handler(0x0d, 0x0d, write8_delegate(FUNC(printer_interface_device::strobe_w), this)); - m_slot->m_io->install_write_handler(0x0e, 0x0e, write8_delegate(FUNC(output_latch_device::write), m_latch.target())); + io_space().install_read_handler(0x00, 0x00, read8_delegate(FUNC(vtech_printer_interface_device::busy_r), this)); + io_space().install_write_handler(0x0d, 0x0d, write8_delegate(FUNC(vtech_printer_interface_device::strobe_w), this)); + io_space().install_write_handler(0x0e, 0x0e, write8_delegate(FUNC(output_latch_device::write), m_latch.target())); } @@ -77,17 +77,17 @@ void printer_interface_device::device_reset() // IMPLEMENTATION //************************************************************************** -WRITE_LINE_MEMBER( printer_interface_device::busy_w ) +WRITE_LINE_MEMBER( vtech_printer_interface_device::busy_w ) { m_centronics_busy = state; } -READ8_MEMBER( printer_interface_device::busy_r ) +READ8_MEMBER( vtech_printer_interface_device::busy_r ) { return 0xfe | m_centronics_busy; } -WRITE8_MEMBER( printer_interface_device::strobe_w ) +WRITE8_MEMBER( vtech_printer_interface_device::strobe_w ) { m_centronics->write_strobe(1); m_centronics->write_strobe(0); diff --git a/src/devices/bus/vtech/ioexp/printer.h b/src/devices/bus/vtech/ioexp/printer.h index 37a25a35fad..8a05106bf59 100644 --- a/src/devices/bus/vtech/ioexp/printer.h +++ b/src/devices/bus/vtech/ioexp/printer.h @@ -8,10 +8,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_BUS_VTECH_IOEXP_PRINTER_H +#define MAME_BUS_VTECH_IOEXP_PRINTER_H -#ifndef __VTECH_IOEXP_PRINTER_H__ -#define __VTECH_IOEXP_PRINTER_H__ +#pragma once #include "ioexp.h" #include "bus/centronics/ctronics.h" @@ -23,11 +23,11 @@ // ======================> printer_interface_device -class printer_interface_device : public device_t, public device_ioexp_interface +class vtech_printer_interface_device : public device_t, public device_vtech_ioexp_interface { public: // construction/destruction - printer_interface_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + vtech_printer_interface_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); DECLARE_WRITE_LINE_MEMBER( busy_w ); DECLARE_READ8_MEMBER( busy_r ); @@ -46,6 +46,6 @@ private: }; // device type definition -extern const device_type PRINTER_INTERFACE; +DECLARE_DEVICE_TYPE(VTECH_PRINTER_INTERFACE, vtech_printer_interface_device) -#endif // __VTECH_IOEXP_PRINTER_H__ +#endif // MAME_BUS_VTECH_IOEXP_PRINTER_H diff --git a/src/devices/bus/vtech/memexp/carts.cpp b/src/devices/bus/vtech/memexp/carts.cpp index c4dddf1bbae..9ca95b56dee 100644 --- a/src/devices/bus/vtech/memexp/carts.cpp +++ b/src/devices/bus/vtech/memexp/carts.cpp @@ -9,13 +9,20 @@ #include "emu.h" #include "carts.h" -SLOT_INTERFACE_START( memexp_slot_carts ) - SLOT_INTERFACE("floppy", FLOPPY_CONTROLLER) - SLOT_INTERFACE("laser110_16k", LASER110_16K) - SLOT_INTERFACE("laser210_16k", LASER210_16K) - SLOT_INTERFACE("laser310_16k", LASER310_16K) - SLOT_INTERFACE("laser_64k", LASER_64K) - SLOT_INTERFACE("rs232", RS232_INTERFACE) - SLOT_INTERFACE("rtty", RTTY_INTERFACE) - SLOT_INTERFACE("wordpro", WORDPRO) +#include "floppy.h" +#include "memory.h" +#include "rs232.h" +#include "rtty.h" +#include "wordpro.h" + + +SLOT_INTERFACE_START( vtech_memexp_carts ) + SLOT_INTERFACE("floppy", VTECH_FLOPPY_CONTROLLER) + SLOT_INTERFACE("laser110_16k", VTECH_LASER110_16K) + SLOT_INTERFACE("laser210_16k", VTECH_LASER210_16K) + SLOT_INTERFACE("laser310_16k", VTECH_LASER310_16K) + SLOT_INTERFACE("laser_64k", VTECH_LASER_64K) + SLOT_INTERFACE("rs232", VTECH_RS232_INTERFACE) + SLOT_INTERFACE("rtty", VTECH_RTTY_INTERFACE) + SLOT_INTERFACE("wordpro", VTECH_WORDPRO) SLOT_INTERFACE_END diff --git a/src/devices/bus/vtech/memexp/carts.h b/src/devices/bus/vtech/memexp/carts.h index bfbe697b7aa..f8baa314256 100644 --- a/src/devices/bus/vtech/memexp/carts.h +++ b/src/devices/bus/vtech/memexp/carts.h @@ -6,18 +6,11 @@ ***************************************************************************/ -#pragma once - -#ifndef __VTECH_MEMEXP_CARTS_H__ -#define __VTECH_MEMEXP_CARTS_H__ +#ifndef MAME_BUS_VTECH_MEMEXP_CARTS_H +#define MAME_BUS_VTECH_MEMEXP_CARTS_H +#pragma once -#include "floppy.h" -#include "memory.h" -#include "rs232.h" -#include "rtty.h" -#include "wordpro.h" - -SLOT_INTERFACE_EXTERN( memexp_slot_carts ); +SLOT_INTERFACE_EXTERN( vtech_memexp_carts ); -#endif // __VTECH_MEMEXP_CARTS_H__ +#endif // MAME_BUS_VTECH_MEMEXP_CARTS_H diff --git a/src/devices/bus/vtech/memexp/floppy.cpp b/src/devices/bus/vtech/memexp/floppy.cpp index 355194df583..49c27f0118f 100644 --- a/src/devices/bus/vtech/memexp/floppy.cpp +++ b/src/devices/bus/vtech/memexp/floppy.cpp @@ -17,9 +17,9 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type FLOPPY_CONTROLLER = device_creator; +DEFINE_DEVICE_TYPE(VTECH_FLOPPY_CONTROLLER, vtech_floppy_controller_device, "vtech_fdc", "Laser/VZ Floppy Disk Controller") -DEVICE_ADDRESS_MAP_START(map, 8, floppy_controller_device) +DEVICE_ADDRESS_MAP_START(map, 8, vtech_floppy_controller_device) AM_RANGE(0, 0) AM_WRITE(latch_w) AM_RANGE(1, 1) AM_READ(shifter_r) AM_RANGE(2, 2) AM_READ(rd_r) @@ -35,7 +35,7 @@ ROM_START( floppy ) ROM_LOAD("vzdos.rom", 0x0000, 0x2000, CRC(b6ed6084) SHA1(59d1cbcfa6c5e1906a32704fbf0d9670f0d1fd8b)) ROM_END -const tiny_rom_entry *floppy_controller_device::device_rom_region() const +const tiny_rom_entry *vtech_floppy_controller_device::device_rom_region() const { return ROM_NAME( floppy ); } @@ -55,7 +55,7 @@ static MACHINE_CONFIG_FRAGMENT( floppy_controller ) MCFG_FLOPPY_DRIVE_ADD("1", laser_floppies, "525", floppy_image_device::default_floppy_formats) MACHINE_CONFIG_END -machine_config_constructor floppy_controller_device::device_mconfig_additions() const +machine_config_constructor vtech_floppy_controller_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( floppy_controller ); } @@ -65,15 +65,16 @@ machine_config_constructor floppy_controller_device::device_mconfig_additions() //************************************************************************** //------------------------------------------------- -// floppy_controller_device - constructor +// vtech_floppy_controller_device - constructor //------------------------------------------------- -floppy_controller_device::floppy_controller_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, FLOPPY_CONTROLLER, "Laser/VZ Floppy Disk Controller", tag, owner, clock, "laserfdc", __FILE__), - device_memexp_interface(mconfig, *this), +vtech_floppy_controller_device::vtech_floppy_controller_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, VTECH_FLOPPY_CONTROLLER, tag, owner, clock), + device_vtech_memexp_interface(mconfig, *this), m_memexp(*this, "mem"), m_floppy0(*this, "0"), - m_floppy1(*this, "1"), m_floppy(nullptr), m_latch(0), m_shifter(0), m_latching_inverter(false), m_current_cyl(0), m_write_position(0) + m_floppy1(*this, "1"), + m_floppy(nullptr), m_latch(0), m_shifter(0), m_latching_inverter(false), m_current_cyl(0), m_write_position(0) { } @@ -81,7 +82,7 @@ floppy_controller_device::floppy_controller_device(const machine_config &mconfig // device_start - device-specific startup //------------------------------------------------- -void floppy_controller_device::device_start() +void vtech_floppy_controller_device::device_start() { save_item(NAME(m_latch)); save_item(NAME(m_shifter)); @@ -106,14 +107,14 @@ void floppy_controller_device::device_start() // device_reset - device-specific reset //------------------------------------------------- -void floppy_controller_device::device_reset() +void vtech_floppy_controller_device::device_reset() { - m_memexp->set_io_space(m_slot->m_io); - m_memexp->set_program_space(m_slot->m_program); + m_memexp->set_io_space(&io_space()); + m_memexp->set_program_space(&program_space()); - m_slot->m_program->install_rom(0x4000, 0x5fff, memregion("software")->base()); + program_space().install_rom(0x4000, 0x5fff, memregion("software")->base()); - m_slot->m_io->install_device(0x10, 0x1f, *this, &floppy_controller_device::map); + io_space().install_device(0x10, 0x1f, *this, &vtech_floppy_controller_device::map); m_latch = 0x00; m_floppy = nullptr; @@ -137,7 +138,7 @@ void floppy_controller_device::device_reset() // bit 6: !write request // bits 4,7: floppy select -WRITE8_MEMBER(floppy_controller_device::latch_w) +WRITE8_MEMBER(vtech_floppy_controller_device::latch_w) { uint8_t diff = m_latch ^ data; m_latch = data; @@ -158,7 +159,7 @@ WRITE8_MEMBER(floppy_controller_device::latch_w) if(newflop) { newflop->set_rpm(85); newflop->mon_w(0); - newflop->setup_index_pulse_cb(floppy_image_device::index_pulse_cb(&floppy_controller_device::index_callback, this)); + newflop->setup_index_pulse_cb(floppy_image_device::index_pulse_cb(&vtech_floppy_controller_device::index_callback, this)); m_current_cyl = newflop->get_cyl() << 1; } m_floppy = newflop; @@ -213,7 +214,7 @@ WRITE8_MEMBER(floppy_controller_device::latch_w) // - the inverted inverter output is shifted through the lsb of the shift register // - the inverter is cleared -READ8_MEMBER(floppy_controller_device::shifter_r) +READ8_MEMBER(vtech_floppy_controller_device::shifter_r) { update_latching_inverter(); m_shifter = (m_shifter << 1) | !m_latching_inverter; @@ -223,7 +224,7 @@ READ8_MEMBER(floppy_controller_device::shifter_r) // Linked to the latching inverter on bit 7, rest is floating -READ8_MEMBER(floppy_controller_device::rd_r) +READ8_MEMBER(vtech_floppy_controller_device::rd_r) { update_latching_inverter(); return m_latching_inverter ? 0x80 : 0x00; @@ -231,12 +232,12 @@ READ8_MEMBER(floppy_controller_device::rd_r) // Linked to wp signal on bit 7, rest is floating -READ8_MEMBER(floppy_controller_device::wpt_r) +READ8_MEMBER(vtech_floppy_controller_device::wpt_r) { return m_floppy && m_floppy->wpt_r() ? 0x80 : 0x00; } -void floppy_controller_device::update_latching_inverter() +void vtech_floppy_controller_device::update_latching_inverter() { attotime now = machine().time(); if(!m_floppy) { @@ -254,13 +255,13 @@ void floppy_controller_device::update_latching_inverter() m_last_latching_inverter_update_time = now; } -void floppy_controller_device::index_callback(floppy_image_device *floppy, int state) +void vtech_floppy_controller_device::index_callback(floppy_image_device *floppy, int state) { update_latching_inverter(); flush_writes(true); } -void floppy_controller_device::flush_writes(bool keep_margin) +void vtech_floppy_controller_device::flush_writes(bool keep_margin) { if(!m_floppy || m_write_start_time == attotime::never) return; diff --git a/src/devices/bus/vtech/memexp/floppy.h b/src/devices/bus/vtech/memexp/floppy.h index bc6046a7ec3..d361ca5a4fc 100644 --- a/src/devices/bus/vtech/memexp/floppy.h +++ b/src/devices/bus/vtech/memexp/floppy.h @@ -9,10 +9,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_BUS_VTECH_MEMEXP_FLOPPY_H +#define MAME_BUS_VTECH_MEMEXP_FLOPPY_H -#ifndef __VTECH_MEMEXP_FLOPPY_H__ -#define __VTECH_MEMEXP_FLOPPY_H__ +#pragma once #include "memexp.h" #include "imagedev/floppy.h" @@ -22,13 +22,13 @@ // TYPE DEFINITIONS //************************************************************************** -// ======================> floppy_controller_device +// ======================> vtech_floppy_controller_device -class floppy_controller_device : public device_t, public device_memexp_interface +class vtech_floppy_controller_device : public device_t, public device_vtech_memexp_interface { public: // construction/destruction - floppy_controller_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + vtech_floppy_controller_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); DECLARE_ADDRESS_MAP(map, 8); @@ -43,7 +43,11 @@ protected: virtual void device_start() override; virtual void device_reset() override; - required_device m_memexp; + void index_callback(floppy_image_device *floppy, int state); + void update_latching_inverter(); + void flush_writes(bool keep_margin = false); + + required_device m_memexp; required_device m_floppy0, m_floppy1; floppy_image_device *m_floppy; @@ -53,13 +57,9 @@ protected: attotime m_last_latching_inverter_update_time; attotime m_write_start_time, m_write_buffer[32]; int m_write_position; - - void index_callback(floppy_image_device *floppy, int state); - void update_latching_inverter(); - void flush_writes(bool keep_margin = false); }; // device type definition -extern const device_type FLOPPY_CONTROLLER; +DECLARE_DEVICE_TYPE(VTECH_FLOPPY_CONTROLLER, vtech_floppy_controller_device) -#endif // __VTECH_MEMEXP_FLOPPY_H__ +#endif // MAME_BUS_VTECH_MEMEXP_FLOPPY_H diff --git a/src/devices/bus/vtech/memexp/memexp.cpp b/src/devices/bus/vtech/memexp/memexp.cpp index 369403aa1c4..e7f61e5d048 100644 --- a/src/devices/bus/vtech/memexp/memexp.cpp +++ b/src/devices/bus/vtech/memexp/memexp.cpp @@ -16,7 +16,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type MEMEXP_SLOT = device_creator; +DEFINE_DEVICE_TYPE(VTECH_MEMEXP_SLOT, vtech_memexp_slot_device, "vtech_memexp_slot", "Laser/VZ Memory Expansion Slot") //************************************************************************** @@ -24,11 +24,11 @@ const device_type MEMEXP_SLOT = device_creator; //************************************************************************** //------------------------------------------------- -// memexp_slot_device - constructor +// vtech_memexp_slot_device - constructor //------------------------------------------------- -memexp_slot_device::memexp_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, MEMEXP_SLOT, "Memory Expansion Slot", tag, owner, clock, "memexp_slot", __FILE__), +vtech_memexp_slot_device::vtech_memexp_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, VTECH_MEMEXP_SLOT, tag, owner, clock), device_slot_interface(mconfig, *this), m_program(nullptr), m_io(nullptr), @@ -40,10 +40,10 @@ memexp_slot_device::memexp_slot_device(const machine_config &mconfig, const char } //------------------------------------------------- -// memexp_slot_device - destructor +// vtech_memexp_slot_device - destructor //------------------------------------------------- -memexp_slot_device::~memexp_slot_device() +vtech_memexp_slot_device::~vtech_memexp_slot_device() { } @@ -51,7 +51,7 @@ memexp_slot_device::~memexp_slot_device() // device_start - device-specific startup //------------------------------------------------- -void memexp_slot_device::device_start() +void vtech_memexp_slot_device::device_start() { // resolve callbacks m_int_handler.resolve_safe(); @@ -63,7 +63,7 @@ void memexp_slot_device::device_start() // device_reset - device-specific reset //------------------------------------------------- -void memexp_slot_device::device_reset() +void vtech_memexp_slot_device::device_reset() { } @@ -71,7 +71,7 @@ void memexp_slot_device::device_reset() // set_program_space - set address space we are attached to //------------------------------------------------- -void memexp_slot_device::set_program_space(address_space *program) +void vtech_memexp_slot_device::set_program_space(address_space *program) { m_program = program; } @@ -80,7 +80,7 @@ void memexp_slot_device::set_program_space(address_space *program) // set_io_space - set address space we are attached to //------------------------------------------------- -void memexp_slot_device::set_io_space(address_space *io) +void vtech_memexp_slot_device::set_io_space(address_space *io) { m_io = io; } @@ -91,19 +91,19 @@ void memexp_slot_device::set_io_space(address_space *io) //************************************************************************** //------------------------------------------------- -// device_memexp_interface - constructor +// device_vtech_memexp_interface - constructor //------------------------------------------------- -device_memexp_interface::device_memexp_interface(const machine_config &mconfig, device_t &device) : +device_vtech_memexp_interface::device_vtech_memexp_interface(const machine_config &mconfig, device_t &device) : device_slot_card_interface(mconfig, device) { - m_slot = dynamic_cast(device.owner()); + m_slot = dynamic_cast(device.owner()); } //------------------------------------------------- -// ~device_memexp_interface - destructor +// ~device_vtech_memexp_interface - destructor //------------------------------------------------- -device_memexp_interface::~device_memexp_interface() +device_vtech_memexp_interface::~device_vtech_memexp_interface() { } diff --git a/src/devices/bus/vtech/memexp/memexp.h b/src/devices/bus/vtech/memexp/memexp.h index fab938ef488..692f10c819a 100644 --- a/src/devices/bus/vtech/memexp/memexp.h +++ b/src/devices/bus/vtech/memexp/memexp.h @@ -31,10 +31,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_BUS_VTECH_MEMEXP_MEMEXP_H +#define MAME_BUS_VTECH_MEMEXP_MEMEXP_H -#ifndef __VTECH_MEMEXP_H__ -#define __VTECH_MEMEXP_H__ +#pragma once @@ -43,59 +43,60 @@ //************************************************************************** #define MCFG_MEMEXP_SLOT_ADD(_tag) \ - MCFG_DEVICE_ADD(_tag, MEMEXP_SLOT, 0) \ - MCFG_DEVICE_SLOT_INTERFACE(memexp_slot_carts, nullptr, false) + MCFG_DEVICE_ADD(_tag, VTECH_MEMEXP_SLOT, 0) \ + MCFG_DEVICE_SLOT_INTERFACE(vtech_memexp_carts, nullptr, false) #define MCFG_MEMEXP_SLOT_INT_HANDLER(_devcb) \ - devcb = &memexp_device::set_int_handler(*device, DEVCB_##_devcb); + devcb = &vtech_memexp_device::set_int_handler(*device, DEVCB_##_devcb); #define MCFG_MEMEXP_SLOT_NMI_HANDLER(_devcb) \ - devcb = &memexp_device::set_nmi_handler(*device, DEVCB_##_devcb); + devcb = &vtech_memexp_device::set_nmi_handler(*device, DEVCB_##_devcb); #define MCFG_MEMEXP_SLOT_RESET_HANDLER(_devcb) \ - devcb = &memexp_device::set_reset_handler(*device, DEVCB_##_devcb); + devcb = &vtech_memexp_device::set_reset_handler(*device, DEVCB_##_devcb); //************************************************************************** // TYPE DEFINITIONS //************************************************************************** -class device_memexp_interface; +class device_vtech_memexp_interface; -class memexp_slot_device : public device_t, public device_slot_interface +class vtech_memexp_slot_device : public device_t, public device_slot_interface { + friend class device_vtech_memexp_interface; public: // construction/destruction - memexp_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual ~memexp_slot_device(); + vtech_memexp_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + virtual ~vtech_memexp_slot_device(); void set_program_space(address_space *program); void set_io_space(address_space *io); // callbacks - template static devcb_base &set_int_handler(device_t &device, _Object object) - { return downcast(device).m_int_handler.set_callback(object); } + template static devcb_base &set_int_handler(device_t &device, Object &&cb) + { return downcast(device).m_int_handler.set_callback(std::forward(cb)); } - template static devcb_base &set_nmi_handler(device_t &device, _Object object) - { return downcast(device).m_nmi_handler.set_callback(object); } + template static devcb_base &set_nmi_handler(device_t &device, Object &&cb) + { return downcast(device).m_nmi_handler.set_callback(std::forward(cb)); } - template static devcb_base &set_reset_handler(device_t &device, _Object object) - { return downcast(device).m_reset_handler.set_callback(object); } + template static devcb_base &set_reset_handler(device_t &device, Object &&cb) + { return downcast(device).m_reset_handler.set_callback(std::forward(cb)); } // called from cart device DECLARE_WRITE_LINE_MEMBER( int_w ) { m_int_handler(state); } DECLARE_WRITE_LINE_MEMBER( nmi_w ) { m_nmi_handler(state); } DECLARE_WRITE_LINE_MEMBER( reset_w ) { m_reset_handler(state); } - address_space *m_program; - address_space *m_io; - protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; - device_memexp_interface *m_cart; + address_space *m_program; + address_space *m_io; + + device_vtech_memexp_interface *m_cart; private: devcb_write_line m_int_handler; @@ -104,21 +105,24 @@ private: }; // class representing interface-specific live memexp device -class device_memexp_interface : public device_slot_card_interface +class device_vtech_memexp_interface : public device_slot_card_interface { public: // construction/destruction - device_memexp_interface(const machine_config &mconfig, device_t &device); - virtual ~device_memexp_interface(); + device_vtech_memexp_interface(const machine_config &mconfig, device_t &device); + virtual ~device_vtech_memexp_interface(); protected: - memexp_slot_device *m_slot; + address_space &program_space() { return *m_slot->m_program; } + address_space &io_space() { return *m_slot->m_io; } + + vtech_memexp_slot_device *m_slot; }; // device type definition -extern const device_type MEMEXP_SLOT; +DECLARE_DEVICE_TYPE(VTECH_MEMEXP_SLOT, vtech_memexp_slot_device) // include here so drivers don't need to #include "carts.h" -#endif // __VTECH_MEMEXP_H__ +#endif // MAME_BUS_VTECH_MEMEXP_MEMEXP_H diff --git a/src/devices/bus/vtech/memexp/memory.cpp b/src/devices/bus/vtech/memexp/memory.cpp index 96fc47bc52c..15ccbeb949e 100644 --- a/src/devices/bus/vtech/memexp/memory.cpp +++ b/src/devices/bus/vtech/memexp/memory.cpp @@ -14,10 +14,10 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type LASER110_16K = device_creator; -const device_type LASER210_16K = device_creator; -const device_type LASER310_16K = device_creator; -const device_type LASER_64K = device_creator; +DEFINE_DEVICE_TYPE(VTECH_LASER110_16K, vtech_laser110_16k_device, "vtech_laser110_16k", "Laser 110/200/VZ-200 16k Memory") +DEFINE_DEVICE_TYPE(VTECH_LASER210_16K, vtech_laser210_16k_device, "vtech_laser210_16k", "Laser 210/VZ-200 16k Memory") +DEFINE_DEVICE_TYPE(VTECH_LASER310_16K, vtech_laser310_16k_device, "vtech_laser310_16k", "Laser 310/VZ-300 16k Memory") +DEFINE_DEVICE_TYPE(VTECH_LASER_64K, vtech_laser_64k_device, "vtech_laser_64k", "Laser/VZ 64k Memory") //************************************************************************** @@ -28,9 +28,9 @@ const device_type LASER_64K = device_creator; // laser110_16k_device - constructor //------------------------------------------------- -laser110_16k_device::laser110_16k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, LASER110_16K, "Laser 110/200/VZ-200 16k Memory", tag, owner, clock, "laser110_16k", __FILE__), - device_memexp_interface(mconfig, *this) +vtech_laser110_16k_device::vtech_laser110_16k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, VTECH_LASER110_16K, tag, owner, clock), + device_vtech_memexp_interface(mconfig, *this) { } @@ -38,7 +38,7 @@ laser110_16k_device::laser110_16k_device(const machine_config &mconfig, const ch // device_start - device-specific startup //------------------------------------------------- -void laser110_16k_device::device_start() +void vtech_laser110_16k_device::device_start() { m_ram.resize(16 * 1024); } @@ -47,9 +47,9 @@ void laser110_16k_device::device_start() // device_reset - device-specific reset //------------------------------------------------- -void laser110_16k_device::device_reset() +void vtech_laser110_16k_device::device_reset() { - m_slot->m_program->install_ram(0x8000, 0xbfff, &m_ram[0]); + program_space().install_ram(0x8000, 0xbfff, &m_ram[0]); } @@ -58,12 +58,12 @@ void laser110_16k_device::device_reset() //************************************************************************** //------------------------------------------------- -// laser210_16k_device - constructor +// vtech_laser210_16k_device - constructor //------------------------------------------------- -laser210_16k_device::laser210_16k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, LASER210_16K, "Laser 210/VZ-200 (DSE) 16k Memory", tag, owner, clock, "laser210_16k", __FILE__), - device_memexp_interface(mconfig, *this) +vtech_laser210_16k_device::vtech_laser210_16k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, VTECH_LASER210_16K, tag, owner, clock), + device_vtech_memexp_interface(mconfig, *this) { } @@ -71,7 +71,7 @@ laser210_16k_device::laser210_16k_device(const machine_config &mconfig, const ch // device_start - device-specific startup //------------------------------------------------- -void laser210_16k_device::device_start() +void vtech_laser210_16k_device::device_start() { m_ram.resize(16 * 1024); } @@ -80,9 +80,9 @@ void laser210_16k_device::device_start() // device_reset - device-specific reset //------------------------------------------------- -void laser210_16k_device::device_reset() +void vtech_laser210_16k_device::device_reset() { - m_slot->m_program->install_ram(0x9000, 0xcfff, &m_ram[0]); + program_space().install_ram(0x9000, 0xcfff, &m_ram[0]); } @@ -91,12 +91,12 @@ void laser210_16k_device::device_reset() //************************************************************************** //------------------------------------------------- -// laser310_16k_device - constructor +// vtech_laser310_16k_device - constructor //------------------------------------------------- -laser310_16k_device::laser310_16k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, LASER310_16K, "Laser 310/VZ-300 16k Memory", tag, owner, clock, "laser310_16k", __FILE__), - device_memexp_interface(mconfig, *this) +vtech_laser310_16k_device::vtech_laser310_16k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, VTECH_LASER310_16K, tag, owner, clock), + device_vtech_memexp_interface(mconfig, *this) { } @@ -104,7 +104,7 @@ laser310_16k_device::laser310_16k_device(const machine_config &mconfig, const ch // device_start - device-specific startup //------------------------------------------------- -void laser310_16k_device::device_start() +void vtech_laser310_16k_device::device_start() { m_ram.resize(16 * 1024); } @@ -113,9 +113,9 @@ void laser310_16k_device::device_start() // device_reset - device-specific reset //------------------------------------------------- -void laser310_16k_device::device_reset() +void vtech_laser310_16k_device::device_reset() { - m_slot->m_program->install_ram(0xb800, 0xf7ff, &m_ram[0]); + program_space().install_ram(0xb800, 0xf7ff, &m_ram[0]); } @@ -124,12 +124,12 @@ void laser310_16k_device::device_reset() //************************************************************************** //------------------------------------------------- -// laser_64k_device - constructor +// vtech_laser_64k_device - constructor //------------------------------------------------- -laser_64k_device::laser_64k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, LASER_64K, "Laser/VZ 64k Memory", tag, owner, clock, "laser_64k", __FILE__), - device_memexp_interface(mconfig, *this) +vtech_laser_64k_device::vtech_laser_64k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, VTECH_LASER_64K, tag, owner, clock), + device_vtech_memexp_interface(mconfig, *this) { } @@ -137,7 +137,7 @@ laser_64k_device::laser_64k_device(const machine_config &mconfig, const char *ta // device_start - device-specific startup //------------------------------------------------- -void laser_64k_device::device_start() +void vtech_laser_64k_device::device_start() { m_ram.resize(64 * 1024); } @@ -146,22 +146,22 @@ void laser_64k_device::device_start() // device_reset - device-specific reset //------------------------------------------------- -void laser_64k_device::device_reset() +void vtech_laser_64k_device::device_reset() { // fixed first bank - m_slot->m_program->install_ram(0x8000, 0xbfff, &m_ram[0]); + program_space().install_ram(0x8000, 0xbfff, &m_ram[0]); // other banks - m_slot->m_program->install_readwrite_bank(0xc000, 0xffff, tag()); + program_space().install_readwrite_bank(0xc000, 0xffff, tag()); membank(tag())->configure_entries(0, 4, &m_ram[0], 0x4000); membank(tag())->set_entry(1); // bank switch - m_slot->m_io->install_write_handler(0x70, 0x7f, write8_delegate(FUNC(laser_64k_device::bankswitch_w), this)); + io_space().install_write_handler(0x70, 0x7f, write8_delegate(FUNC(vtech_laser_64k_device::bankswitch_w), this)); } -WRITE8_MEMBER( laser_64k_device::bankswitch_w ) +WRITE8_MEMBER( vtech_laser_64k_device::bankswitch_w ) { membank(tag())->set_entry(data & 0x03); } diff --git a/src/devices/bus/vtech/memexp/memory.h b/src/devices/bus/vtech/memexp/memory.h index b330707cc14..f8a0fe78e7d 100644 --- a/src/devices/bus/vtech/memexp/memory.h +++ b/src/devices/bus/vtech/memexp/memory.h @@ -6,10 +6,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_BUS_VTECH_MEMEXP_MEMORY_H +#define MAME_BUS_VTECH_MEMEXP_MEMORY_H -#ifndef __VTECH_MEMEXP_MEMORY__ -#define __VTECH_MEMEXP_MEMORY__ +#pragma once #include "memexp.h" @@ -18,13 +18,13 @@ // TYPE DEFINITIONS //************************************************************************** -// ======================> laser110_16k_device +// ======================> vtech_laser110_16k_device -class laser110_16k_device : public device_t, public device_memexp_interface +class vtech_laser110_16k_device : public device_t, public device_vtech_memexp_interface { public: // construction/destruction - laser110_16k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + vtech_laser110_16k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); protected: virtual void device_start() override; @@ -34,13 +34,13 @@ private: std::vector m_ram; }; -// ======================> laser210_16k_device +// ======================> vtech_laser210_16k_device -class laser210_16k_device : public device_t, public device_memexp_interface +class vtech_laser210_16k_device : public device_t, public device_vtech_memexp_interface { public: // construction/destruction - laser210_16k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + vtech_laser210_16k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); protected: virtual void device_start() override; @@ -50,13 +50,13 @@ private: std::vector m_ram; }; -// ======================> laser310_16k_device +// ======================> vtech_laser310_16k_device -class laser310_16k_device : public device_t, public device_memexp_interface +class vtech_laser310_16k_device : public device_t, public device_vtech_memexp_interface { public: // construction/destruction - laser310_16k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + vtech_laser310_16k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); protected: virtual void device_start() override; @@ -66,13 +66,13 @@ private: std::vector m_ram; }; -// ======================> laser_64k_device +// ======================> vtech_laser_64k_device -class laser_64k_device : public device_t, public device_memexp_interface +class vtech_laser_64k_device : public device_t, public device_vtech_memexp_interface { public: // construction/destruction - laser_64k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + vtech_laser_64k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); DECLARE_WRITE8_MEMBER( bankswitch_w ); @@ -85,9 +85,9 @@ private: }; // device type definition -extern const device_type LASER110_16K; -extern const device_type LASER210_16K; -extern const device_type LASER310_16K; -extern const device_type LASER_64K; +DECLARE_DEVICE_TYPE(VTECH_LASER110_16K, vtech_laser110_16k_device) +DECLARE_DEVICE_TYPE(VTECH_LASER210_16K, vtech_laser210_16k_device) +DECLARE_DEVICE_TYPE(VTECH_LASER310_16K, vtech_laser310_16k_device) +DECLARE_DEVICE_TYPE(VTECH_LASER_64K, vtech_laser_64k_device) -#endif // __VTECH_MEMEXP_MEMORY__ +#endif // MAME_BUS_VTECH_MEMEXP_MEMORY_H diff --git a/src/devices/bus/vtech/memexp/rs232.cpp b/src/devices/bus/vtech/memexp/rs232.cpp index 550eb8f54b7..7cebd6edb8e 100644 --- a/src/devices/bus/vtech/memexp/rs232.cpp +++ b/src/devices/bus/vtech/memexp/rs232.cpp @@ -14,7 +14,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type RS232_INTERFACE = device_creator; +DEFINE_DEVICE_TYPE(VTECH_RS232_INTERFACE, vtech_rs232_interface_device, "vtech_rs232", "DSE VZ-200/300 RS-232 Interface") //------------------------------------------------- // rom_region - device-specific ROM region @@ -25,7 +25,7 @@ ROM_START( rs232 ) ROM_LOAD("rs232_v15.ic2", 0x000, 0x800, CRC(6545260d) SHA1(4042f6f1e09e383f3c92f628c6187dc5f072fdb2)) ROM_END -const tiny_rom_entry *rs232_interface_device::device_rom_region() const +const tiny_rom_entry *vtech_rs232_interface_device::device_rom_region() const { return ROM_NAME( rs232 ); } @@ -37,10 +37,10 @@ const tiny_rom_entry *rs232_interface_device::device_rom_region() const static MACHINE_CONFIG_FRAGMENT( rs232 ) MCFG_RS232_PORT_ADD("rs232", default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(rs232_interface_device, rs232_rx_w)) + MCFG_RS232_RXD_HANDLER(WRITELINE(vtech_rs232_interface_device, rs232_rx_w)) MACHINE_CONFIG_END -machine_config_constructor rs232_interface_device::device_mconfig_additions() const +machine_config_constructor vtech_rs232_interface_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( rs232 ); } @@ -51,12 +51,12 @@ machine_config_constructor rs232_interface_device::device_mconfig_additions() co //************************************************************************** //------------------------------------------------- -// rs232_interface_device - constructor +// vtech_rs232_interface_device - constructor //------------------------------------------------- -rs232_interface_device::rs232_interface_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, RS232_INTERFACE, "DSE VZ-200/300 RS-232 Interface", tag, owner, clock, "vz_rs232", __FILE__), - device_memexp_interface(mconfig, *this), +vtech_rs232_interface_device::vtech_rs232_interface_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, VTECH_RS232_INTERFACE, tag, owner, clock), + device_vtech_memexp_interface(mconfig, *this), m_rs232(*this, "rs232"), m_rx(1) { @@ -66,7 +66,7 @@ rs232_interface_device::rs232_interface_device(const machine_config &mconfig, co // device_start - device-specific startup //------------------------------------------------- -void rs232_interface_device::device_start() +void vtech_rs232_interface_device::device_start() { } @@ -74,14 +74,14 @@ void rs232_interface_device::device_start() // device_reset - device-specific reset //------------------------------------------------- -void rs232_interface_device::device_reset() +void vtech_rs232_interface_device::device_reset() { // program - m_slot->m_program->install_rom(0x4000, 0x47ff, 0x800, memregion("software")->base()); + program_space().install_rom(0x4000, 0x47ff, 0x800, memregion("software")->base()); // data - m_slot->m_program->install_read_handler(0x5000, 0x57ff, read8_delegate(FUNC(rs232_interface_device::receive_data_r), this)); - m_slot->m_program->install_write_handler(0x5800, 0x5fff, write8_delegate(FUNC(rs232_interface_device::transmit_data_w), this)); + program_space().install_read_handler(0x5000, 0x57ff, read8_delegate(FUNC(vtech_rs232_interface_device::receive_data_r), this)); + program_space().install_write_handler(0x5800, 0x5fff, write8_delegate(FUNC(vtech_rs232_interface_device::transmit_data_w), this)); } @@ -89,17 +89,17 @@ void rs232_interface_device::device_reset() // IMPLEMENTATION //************************************************************************** -WRITE_LINE_MEMBER( rs232_interface_device::rs232_rx_w ) +WRITE_LINE_MEMBER( vtech_rs232_interface_device::rs232_rx_w ) { m_rx = state; } -READ8_MEMBER( rs232_interface_device::receive_data_r ) +READ8_MEMBER( vtech_rs232_interface_device::receive_data_r ) { return 0x7f | (m_rx << 7); } -WRITE8_MEMBER( rs232_interface_device::transmit_data_w ) +WRITE8_MEMBER( vtech_rs232_interface_device::transmit_data_w ) { m_rs232->write_txd(!BIT(data, 7)); } diff --git a/src/devices/bus/vtech/memexp/rs232.h b/src/devices/bus/vtech/memexp/rs232.h index 4727066a913..189653258dd 100644 --- a/src/devices/bus/vtech/memexp/rs232.h +++ b/src/devices/bus/vtech/memexp/rs232.h @@ -6,10 +6,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_BUS_VTECH_MEMEXP_RS232_H +#define MAME_BUS_VTECH_MEMEXP_RS232_H -#ifndef __VTECH_MEMEXP_RS232_H__ -#define __VTECH_MEMEXP_RS232_H__ +#pragma once #include "memexp.h" #include "bus/rs232/rs232.h" @@ -19,13 +19,13 @@ // TYPE DEFINITIONS //************************************************************************** -// ======================> rs232_interface_device +// ======================> vtech_rs232_interface_device -class rs232_interface_device : public device_t, public device_memexp_interface +class vtech_rs232_interface_device : public device_t, public device_vtech_memexp_interface { public: // construction/destruction - rs232_interface_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + vtech_rs232_interface_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); DECLARE_WRITE_LINE_MEMBER( rs232_rx_w ); DECLARE_READ8_MEMBER( receive_data_r ); @@ -44,6 +44,6 @@ private: }; // device type definition -extern const device_type RS232_INTERFACE; +DECLARE_DEVICE_TYPE(VTECH_RS232_INTERFACE, vtech_rs232_interface_device) -#endif // __VTECH_MEMEXP_RS232_H__ +#endif // MAME_BUS_VTECH_MEMEXP_RS232_H diff --git a/src/devices/bus/vtech/memexp/rtty.cpp b/src/devices/bus/vtech/memexp/rtty.cpp index d6a1278d577..96e394bfb4d 100644 --- a/src/devices/bus/vtech/memexp/rtty.cpp +++ b/src/devices/bus/vtech/memexp/rtty.cpp @@ -14,7 +14,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type RTTY_INTERFACE = device_creator; +DEFINE_DEVICE_TYPE(VTECH_RTTY_INTERFACE, vtech_rtty_interface_device, "vtech_rtty", "DSE VZ-200/300 RTTY Interface") //------------------------------------------------- // rom_region - device-specific ROM region @@ -25,7 +25,7 @@ ROM_START( rtty ) ROM_LOAD("vzrtty.ic3", 0x0000, 0x1000, CRC(ccf4289b) SHA1(de737ef0e0b582b3102da473836af1fa159a2e78)) ROM_END -const tiny_rom_entry *rtty_interface_device::device_rom_region() const +const tiny_rom_entry *vtech_rtty_interface_device::device_rom_region() const { return ROM_NAME( rtty ); } @@ -36,12 +36,12 @@ const tiny_rom_entry *rtty_interface_device::device_rom_region() const //************************************************************************** //------------------------------------------------- -// rtty_interface_device - constructor +// vtech_rtty_interface_device - constructor //------------------------------------------------- -rtty_interface_device::rtty_interface_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, RTTY_INTERFACE, "DSE VZ-200/300 RTTY Interface", tag, owner, clock, "vz_rtty", __FILE__), - device_memexp_interface(mconfig, *this) +vtech_rtty_interface_device::vtech_rtty_interface_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, VTECH_RTTY_INTERFACE, tag, owner, clock), + device_vtech_memexp_interface(mconfig, *this) { } @@ -49,7 +49,7 @@ rtty_interface_device::rtty_interface_device(const machine_config &mconfig, cons // device_start - device-specific startup //------------------------------------------------- -void rtty_interface_device::device_start() +void vtech_rtty_interface_device::device_start() { } @@ -57,15 +57,15 @@ void rtty_interface_device::device_start() // device_reset - device-specific reset //------------------------------------------------- -void rtty_interface_device::device_reset() +void vtech_rtty_interface_device::device_reset() { // program - m_slot->m_program->install_rom(0x4000, 0x4fff, 0x1000, memregion("software")->base()); + program_space().install_rom(0x4000, 0x4fff, 0x1000, memregion("software")->base()); // data - m_slot->m_program->install_read_handler(0x5000, 0x57ff, read8_delegate(FUNC(rtty_interface_device::receive_data_r), this)); - m_slot->m_program->install_write_handler(0x5800, 0x5fff, write8_delegate(FUNC(rtty_interface_device::transmit_data_w), this)); - m_slot->m_program->install_write_handler(0x6000, 0x67ff, write8_delegate(FUNC(rtty_interface_device::relay_w), this)); + program_space().install_read_handler(0x5000, 0x57ff, read8_delegate(FUNC(vtech_rtty_interface_device::receive_data_r), this)); + program_space().install_write_handler(0x5800, 0x5fff, write8_delegate(FUNC(vtech_rtty_interface_device::transmit_data_w), this)); + program_space().install_write_handler(0x6000, 0x67ff, write8_delegate(FUNC(vtech_rtty_interface_device::relay_w), this)); } @@ -73,17 +73,17 @@ void rtty_interface_device::device_reset() // IMPLEMENTATION //************************************************************************** -READ8_MEMBER( rtty_interface_device::receive_data_r ) +READ8_MEMBER( vtech_rtty_interface_device::receive_data_r ) { return 0xff; } -WRITE8_MEMBER( rtty_interface_device::transmit_data_w ) +WRITE8_MEMBER( vtech_rtty_interface_device::transmit_data_w ) { logerror("transmit_w: %d\n", BIT(data, 7)); } -WRITE8_MEMBER( rtty_interface_device::relay_w ) +WRITE8_MEMBER( vtech_rtty_interface_device::relay_w ) { logerror("relay_w: %d\n", BIT(data, 7)); } diff --git a/src/devices/bus/vtech/memexp/rtty.h b/src/devices/bus/vtech/memexp/rtty.h index 5f16aa6d234..82c3b150f34 100644 --- a/src/devices/bus/vtech/memexp/rtty.h +++ b/src/devices/bus/vtech/memexp/rtty.h @@ -6,10 +6,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_BUS_VTECH_MEMEXP_RTTY_H +#define MAME_BUS_VTECH_MEMEXP_RTTY_H -#ifndef __VTECH_MEMEXP_RTTY_H__ -#define __VTECH_MEMEXP_RTTY_H__ +#pragma once #include "memexp.h" @@ -18,13 +18,13 @@ // TYPE DEFINITIONS //************************************************************************** -// ======================> rtty_interface_device +// ======================> vtech_rtty_interface_device -class rtty_interface_device : public device_t, public device_memexp_interface +class vtech_rtty_interface_device : public device_t, public device_vtech_memexp_interface { public: // construction/destruction - rtty_interface_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + vtech_rtty_interface_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); DECLARE_READ8_MEMBER( receive_data_r ); DECLARE_WRITE8_MEMBER( transmit_data_w ); @@ -34,11 +34,9 @@ protected: virtual const tiny_rom_entry *device_rom_region() const override; virtual void device_start() override; virtual void device_reset() override; - -private: }; // device type definition -extern const device_type RTTY_INTERFACE; +DECLARE_DEVICE_TYPE(VTECH_RTTY_INTERFACE, vtech_rtty_interface_device) -#endif // __VTECH_MEMEXP_RTTY_H__ +#endif // MAME_BUS_VTECH_MEMEXP_RTTY_H diff --git a/src/devices/bus/vtech/memexp/wordpro.cpp b/src/devices/bus/vtech/memexp/wordpro.cpp index 03df6982a61..099702ef844 100644 --- a/src/devices/bus/vtech/memexp/wordpro.cpp +++ b/src/devices/bus/vtech/memexp/wordpro.cpp @@ -14,7 +14,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type WORDPRO = device_creator; +DEFINE_DEVICE_TYPE(VTECH_WORDPRO, vtech_wordpro_device, "vtech_wordpro", "DSE VZ-300 WordPro") //------------------------------------------------- // rom_region - device-specific ROM region @@ -27,7 +27,7 @@ ROM_START( wordpro ) ROM_LOAD("wordpro.u5", 0x2000, 0x1000, CRC(2a336802) SHA1(b4de50f943243f18a2bfabef354b76d77178c189)) ROM_END -const tiny_rom_entry *wordpro_device::device_rom_region() const +const tiny_rom_entry *vtech_wordpro_device::device_rom_region() const { return ROM_NAME( wordpro ); } @@ -38,12 +38,12 @@ const tiny_rom_entry *wordpro_device::device_rom_region() const //************************************************************************** //------------------------------------------------- -// wordpro_device - constructor +// vtech_wordpro_device - constructor //------------------------------------------------- -wordpro_device::wordpro_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, WORDPRO, "DSE VZ-300 WordPro", tag, owner, clock, "wordpro", __FILE__), - device_memexp_interface(mconfig, *this) +vtech_wordpro_device::vtech_wordpro_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, VTECH_WORDPRO, tag, owner, clock), + device_vtech_memexp_interface(mconfig, *this) { } @@ -51,7 +51,7 @@ wordpro_device::wordpro_device(const machine_config &mconfig, const char *tag, d // device_start - device-specific startup //------------------------------------------------- -void wordpro_device::device_start() +void vtech_wordpro_device::device_start() { } @@ -59,8 +59,8 @@ void wordpro_device::device_start() // device_reset - device-specific reset //------------------------------------------------- -void wordpro_device::device_reset() +void vtech_wordpro_device::device_reset() { - m_slot->m_program->install_rom(0x6000, 0x67ff, memregion("software")->base()); - m_slot->m_program->install_rom(0xd000, 0xffff, memregion("software")->base()); + program_space().install_rom(0x6000, 0x67ff, memregion("software")->base()); + program_space().install_rom(0xd000, 0xffff, memregion("software")->base()); } diff --git a/src/devices/bus/vtech/memexp/wordpro.h b/src/devices/bus/vtech/memexp/wordpro.h index 0d12ae7a8d5..f7b6422a319 100644 --- a/src/devices/bus/vtech/memexp/wordpro.h +++ b/src/devices/bus/vtech/memexp/wordpro.h @@ -6,10 +6,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_BUS_VTECH_MEMEXP_WORDPRO_H +#define MAME_BUS_VTECH_MEMEXP_WORDPRO_H -#ifndef __VTECH_MEMEXP_WORDPRO_H__ -#define __VTECH_MEMEXP_WORDPRO_H__ +#pragma once #include "memexp.h" @@ -18,13 +18,13 @@ // TYPE DEFINITIONS //************************************************************************** -// ======================> wordpro_device +// ======================> vtech_wordpro_device -class wordpro_device : public device_t, public device_memexp_interface +class vtech_wordpro_device : public device_t, public device_vtech_memexp_interface { public: // construction/destruction - wordpro_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + vtech_wordpro_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); protected: virtual const tiny_rom_entry *device_rom_region() const override; @@ -33,6 +33,6 @@ protected: }; // device type definition -extern const device_type WORDPRO; +DECLARE_DEVICE_TYPE(VTECH_WORDPRO, vtech_wordpro_device) -#endif // __VTECH_MEMEXP_WORDPRO_H__ +#endif // MAME_BUS_VTECH_MEMEXP_WORDPRO_H diff --git a/src/devices/bus/wangpc/emb.cpp b/src/devices/bus/wangpc/emb.cpp index 06cb5372f9f..8f555391bea 100644 --- a/src/devices/bus/wangpc/emb.cpp +++ b/src/devices/bus/wangpc/emb.cpp @@ -32,7 +32,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type WANGPC_EMB = device_creator; +DEFINE_DEVICE_TYPE(WANGPC_EMB, wangpc_emb_device, "wangpc_emb", "Wang PC-PM031-B Extended Memory Board") @@ -45,9 +45,10 @@ const device_type WANGPC_EMB = device_creator; //------------------------------------------------- wangpc_emb_device::wangpc_emb_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, WANGPC_EMB, "Wang PC-PM031-B", tag, owner, clock, "wangpc_emb", __FILE__), + device_t(mconfig, WANGPC_EMB, tag, owner, clock), device_wangpcbus_card_interface(mconfig, *this), - m_ram(*this, "ram"), m_option(0), m_parity_error(0), m_parity_odd(0) + m_ram(*this, "ram"), + m_option(0), m_parity_error(0), m_parity_odd(0) { } diff --git a/src/devices/bus/wangpc/emb.h b/src/devices/bus/wangpc/emb.h index f80fa5322df..4e1406ec747 100644 --- a/src/devices/bus/wangpc/emb.h +++ b/src/devices/bus/wangpc/emb.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_WANGPC_EMB_H +#define MAME_BUS_WANGPC_EMB_H -#ifndef __WANGPC_EMB__ -#define __WANGPC_EMB__ +#pragma once #include "wangpc.h" @@ -50,5 +50,4 @@ private: // device type definition extern const device_type WANGPC_EMB; - -#endif +#endif // MAME_BUS_WANGPC_EMB_H diff --git a/src/devices/bus/wangpc/lic.cpp b/src/devices/bus/wangpc/lic.cpp index 3bd7397001d..ed1ad4dbc09 100644 --- a/src/devices/bus/wangpc/lic.cpp +++ b/src/devices/bus/wangpc/lic.cpp @@ -23,7 +23,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type WANGPC_LIC = device_creator; +DEFINE_DEVICE_TYPE(WANGPC_LIC, wangpc_lic_device, "wangpc_lic", "Wang PC-PM070 Local Interconnect") //------------------------------------------------- @@ -75,7 +75,7 @@ machine_config_constructor wangpc_lic_device::device_mconfig_additions() const //------------------------------------------------- wangpc_lic_device::wangpc_lic_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, WANGPC_LIC, "Wang PC-PM070", tag, owner, clock, "wangpc_lic", __FILE__), + device_t(mconfig, WANGPC_LIC, tag, owner, clock), device_wangpcbus_card_interface(mconfig, *this) { } diff --git a/src/devices/bus/wangpc/lic.h b/src/devices/bus/wangpc/lic.h index 146a851734d..292dd0a5aa3 100644 --- a/src/devices/bus/wangpc/lic.h +++ b/src/devices/bus/wangpc/lic.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_WANGPC_LIC_H +#define MAME_BUS_WANGPC_LIC_H -#ifndef __WANGPC_LIC__ -#define __WANGPC_LIC__ +#pragma once #include "wangpc.h" @@ -46,7 +46,6 @@ protected: // device type definition -extern const device_type WANGPC_LIC; - +DECLARE_DEVICE_TYPE(WANGPC_LIC, wangpc_lic_device) -#endif +#endif // MAME_BUS_WANGPC_LIC_H diff --git a/src/devices/bus/wangpc/lvc.cpp b/src/devices/bus/wangpc/lvc.cpp index 45c3ecf1834..aa5d76605b8 100644 --- a/src/devices/bus/wangpc/lvc.cpp +++ b/src/devices/bus/wangpc/lvc.cpp @@ -47,7 +47,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type WANGPC_LVC = device_creator; +DEFINE_DEVICE_TYPE(WANGPC_LVC, wangpc_lvc_device, "wangpc_lvc", "Wang PC Low Resolution Video Card") //------------------------------------------------- @@ -170,7 +170,7 @@ inline void wangpc_lvc_device::set_irq(int state) //------------------------------------------------- wangpc_lvc_device::wangpc_lvc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, WANGPC_LVC, "Wang PC Low Resolution Video Card", tag, owner, clock, "wangpc_lvc", __FILE__), + device_t(mconfig, WANGPC_LVC, tag, owner, clock), device_wangpcbus_card_interface(mconfig, *this), m_crtc(*this, MC6845_TAG), m_video_ram(*this, "video_ram"), diff --git a/src/devices/bus/wangpc/lvc.h b/src/devices/bus/wangpc/lvc.h index f21c8a4e3cf..01f12abad83 100644 --- a/src/devices/bus/wangpc/lvc.h +++ b/src/devices/bus/wangpc/lvc.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_WANGPC_LVC_H +#define MAME_BUS_WANGPC_LVC_H -#ifndef __WANGPC_LVC__ -#define __WANGPC_LVC__ +#pragma once #include "wangpc.h" #include "video/mc6845.h" @@ -61,7 +61,6 @@ private: // device type definition -extern const device_type WANGPC_LVC; - +DECLARE_DEVICE_TYPE(WANGPC_LVC, wangpc_lvc_device) -#endif +#endif // MAME_BUS_WANGPC_LVC_H diff --git a/src/devices/bus/wangpc/mcc.cpp b/src/devices/bus/wangpc/mcc.cpp index 93fe1f530a3..580e93dcc32 100644 --- a/src/devices/bus/wangpc/mcc.cpp +++ b/src/devices/bus/wangpc/mcc.cpp @@ -48,7 +48,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type WANGPC_MCC = device_creator; +DEFINE_DEVICE_TYPE(WANGPC_MCC, wangpc_mcc_device, "wangpc_mcc", "Wang PC-PM043 Multiport Communications Controller") //------------------------------------------------- @@ -104,7 +104,7 @@ inline void wangpc_mcc_device::set_irq(int state) //------------------------------------------------- wangpc_mcc_device::wangpc_mcc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, WANGPC_MCC, "Wang PC-PM043", tag, owner, clock, "wangpc_mcc", __FILE__), + device_t(mconfig, WANGPC_MCC, tag, owner, clock), device_wangpcbus_card_interface(mconfig, *this), m_sio(*this, Z80SIO2_TAG), m_dart(*this, Z80DART_TAG), m_option(0), m_irq(0) diff --git a/src/devices/bus/wangpc/mcc.h b/src/devices/bus/wangpc/mcc.h index e8675402a89..be716cb264f 100644 --- a/src/devices/bus/wangpc/mcc.h +++ b/src/devices/bus/wangpc/mcc.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_WANGPC_MCC_H +#define MAME_BUS_WANGPC_MCC_H -#ifndef __WANGPC_MCC__ -#define __WANGPC_MCC__ +#pragma once #include "wangpc.h" #include "machine/z80dart.h" @@ -53,7 +53,6 @@ private: // device type definition -extern const device_type WANGPC_MCC; - +DECLARE_DEVICE_TYPE(WANGPC_MCC, wangpc_mcc_device) -#endif +#endif // MAME_BUS_WANGPC_MCC_H diff --git a/src/devices/bus/wangpc/mvc.cpp b/src/devices/bus/wangpc/mvc.cpp index af95b0695ac..b10527b8410 100644 --- a/src/devices/bus/wangpc/mvc.cpp +++ b/src/devices/bus/wangpc/mvc.cpp @@ -62,7 +62,7 @@ static const rgb_t PALETTE_MVC[] = // DEVICE DEFINITIONS //************************************************************************** -const device_type WANGPC_MVC = device_creator; +DEFINE_DEVICE_TYPE(WANGPC_MVC, wangpc_mvc_device, "wangpc_mvc", "Wang PC Medium Resolution Video Card") //------------------------------------------------- @@ -190,7 +190,7 @@ inline void wangpc_mvc_device::set_irq(int state) //------------------------------------------------- wangpc_mvc_device::wangpc_mvc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, WANGPC_MVC, "Wang PC Medium Resolution Video Card", tag, owner, clock, "wangpc_mvc", __FILE__), + device_t(mconfig, WANGPC_MVC, tag, owner, clock), device_wangpcbus_card_interface(mconfig, *this), m_crtc(*this, MC6845_TAG), m_video_ram(*this, "video_ram"), diff --git a/src/devices/bus/wangpc/mvc.h b/src/devices/bus/wangpc/mvc.h index 98dd98edf6a..7ac0ac7da06 100644 --- a/src/devices/bus/wangpc/mvc.h +++ b/src/devices/bus/wangpc/mvc.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_WANGPC_MVC_H +#define MAME_BUS_WANGPC_MVC_H -#ifndef __WANGPC_MVC__ -#define __WANGPC_MVC__ +#pragma once #include "wangpc.h" #include "video/mc6845.h" @@ -61,7 +61,6 @@ private: // device type definition -extern const device_type WANGPC_MVC; - +DECLARE_DEVICE_TYPE(WANGPC_MVC, wangpc_mvc_device) -#endif +#endif // MAME_BUS_WANGPC_MVC_H diff --git a/src/devices/bus/wangpc/rtc.cpp b/src/devices/bus/wangpc/rtc.cpp index 1e59c870b68..1fdb44571cb 100644 --- a/src/devices/bus/wangpc/rtc.cpp +++ b/src/devices/bus/wangpc/rtc.cpp @@ -29,7 +29,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type WANGPC_RTC = device_creator; +DEFINE_DEVICE_TYPE(WANGPC_RTC, wangpc_rtc_device, "wangpc_rtc", "Wang PC-PM040-B Remote Telecommunication Controller") //------------------------------------------------- @@ -187,7 +187,7 @@ ioport_constructor wangpc_rtc_device::device_input_ports() const //------------------------------------------------- wangpc_rtc_device::wangpc_rtc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, WANGPC_RTC, "Wang PC-PM040-B", tag, owner, clock, "wangpc_rtc", __FILE__), + device_t(mconfig, WANGPC_RTC, tag, owner, clock), device_wangpcbus_card_interface(mconfig, *this), m_maincpu(*this, Z80_TAG), m_dmac(*this, AM9517A_TAG), diff --git a/src/devices/bus/wangpc/rtc.h b/src/devices/bus/wangpc/rtc.h index cd6b9bbeb0c..da931f80b89 100644 --- a/src/devices/bus/wangpc/rtc.h +++ b/src/devices/bus/wangpc/rtc.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_WANGPC_RTC_H +#define MAME_BUS_WANGPC_RTC_H -#ifndef __WANGPC_RTC__ -#define __WANGPC_RTC__ +#pragma once #include "wangpc.h" #include "cpu/z80/z80.h" @@ -59,7 +59,6 @@ private: // device type definition -extern const device_type WANGPC_RTC; - +DECLARE_DEVICE_TYPE(WANGPC_RTC, wangpc_rtc_device) -#endif +#endif // MAME_BUS_WANGPC_RTC_H diff --git a/src/devices/bus/wangpc/tig.cpp b/src/devices/bus/wangpc/tig.cpp index 31dea52508c..5e3ac4b5278 100644 --- a/src/devices/bus/wangpc/tig.cpp +++ b/src/devices/bus/wangpc/tig.cpp @@ -55,7 +55,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type WANGPC_TIG = device_creator; +DEFINE_DEVICE_TYPE(WANGPC_TIG, wangpc_tig_device, "wangpc_tig", "Want PC Text/Image/Graphics Controller") //------------------------------------------------- @@ -154,7 +154,7 @@ machine_config_constructor wangpc_tig_device::device_mconfig_additions() const //------------------------------------------------- wangpc_tig_device::wangpc_tig_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, WANGPC_TIG, "Wang PC TIG Controller", tag, owner, clock, "wangpc_tig", __FILE__), + device_t(mconfig, WANGPC_TIG, tag, owner, clock), device_wangpcbus_card_interface(mconfig, *this), m_hgdc0(*this, UPD7720_0_TAG), m_hgdc1(*this, UPD7720_1_TAG), diff --git a/src/devices/bus/wangpc/tig.h b/src/devices/bus/wangpc/tig.h index 5154abc5e20..66d782cfd42 100644 --- a/src/devices/bus/wangpc/tig.h +++ b/src/devices/bus/wangpc/tig.h @@ -2,14 +2,14 @@ // copyright-holders:Curt Coder /********************************************************************** - Wang PC PM-001B Medium-Resolution Video Controller emulation + Wang PC Text/Image/Graphics controller emulation **********************************************************************/ -#pragma once +#ifndef MAME_BUS_WANGPC_TIG_H +#define MAME_BUS_WANGPC_TIG_H -#ifndef __WANGPC_TIG__ -#define __WANGPC_TIG__ +#pragma once #include "wangpc.h" #include "video/upd7220.h" @@ -62,7 +62,6 @@ private: // device type definition -extern const device_type WANGPC_TIG; - +DECLARE_DEVICE_TYPE(WANGPC_TIG, wangpc_tig_device) -#endif +#endif // MAME_BUS_WANGPC_TIG_H diff --git a/src/devices/bus/wangpc/wangpc.cpp b/src/devices/bus/wangpc/wangpc.cpp index 7d387ecec15..8344178ca8d 100644 --- a/src/devices/bus/wangpc/wangpc.cpp +++ b/src/devices/bus/wangpc/wangpc.cpp @@ -14,8 +14,8 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type WANGPC_BUS = device_creator; -const device_type WANGPC_BUS_SLOT = device_creator; +DEFINE_DEVICE_TYPE(WANGPC_BUS, wangpcbus_device, "wangpcbus", "Wang PC bus") +DEFINE_DEVICE_TYPE(WANGPC_BUS_SLOT, wangpcbus_slot_device, "wangpcbus_slot", "Wang PC bus slot") @@ -28,7 +28,7 @@ const device_type WANGPC_BUS_SLOT = device_creator; //------------------------------------------------- wangpcbus_slot_device::wangpcbus_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, WANGPC_BUS_SLOT, "Wang PC bus slot", tag, owner, clock, "wangpcbus_slot", __FILE__), + device_t(mconfig, WANGPC_BUS_SLOT, tag, owner, clock), device_slot_interface(mconfig, *this), m_bus(nullptr), m_sid(0) @@ -59,7 +59,7 @@ void wangpcbus_slot_device::device_start() //------------------------------------------------- wangpcbus_device::wangpcbus_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, WANGPC_BUS, "Wang PC bus", tag, owner, clock, "wangpcbus", __FILE__), + device_t(mconfig, WANGPC_BUS, tag, owner, clock), m_write_irq2(*this), m_write_irq3(*this), m_write_irq4(*this), diff --git a/src/devices/bus/wangpc/wangpc.h b/src/devices/bus/wangpc/wangpc.h index 08cfa56c80d..740c7e5ed53 100644 --- a/src/devices/bus/wangpc/wangpc.h +++ b/src/devices/bus/wangpc/wangpc.h @@ -9,10 +9,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_WANGPC_WANGPC_H +#define MAME_BUS_WANGPC_WANGPC_H -#ifndef __WANGPC_BUS__ -#define __WANGPC_BUS__ +#pragma once @@ -77,19 +77,19 @@ class wangpcbus_device; -class wangpcbus_slot_device : public device_t, - public device_slot_interface +class wangpcbus_slot_device : public device_t, public device_slot_interface { public: // construction/destruction wangpcbus_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - // inline configuration static void static_set_wangpcbus_slot(device_t &device, int sid); +protected: + // device-level overrides + virtual void device_start() override; + private: // configuration wangpcbus_device *m_bus; @@ -98,7 +98,7 @@ private: // device type definition -extern const device_type WANGPC_BUS_SLOT; +DECLARE_DEVICE_TYPE(WANGPC_BUS_SLOT, wangpcbus_slot_device) class device_wangpcbus_card_interface; @@ -113,16 +113,16 @@ public: wangpcbus_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); ~wangpcbus_device() { m_device_list.detach_all(); } - template static devcb_base &set_irq2_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_irq2.set_callback(object); } - template static devcb_base &set_irq3_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_irq3.set_callback(object); } - template static devcb_base &set_irq4_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_irq4.set_callback(object); } - template static devcb_base &set_irq5_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_irq5.set_callback(object); } - template static devcb_base &set_irq6_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_irq6.set_callback(object); } - template static devcb_base &set_irq7_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_irq7.set_callback(object); } - template static devcb_base &set_drq1_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_drq1.set_callback(object); } - template static devcb_base &set_drq2_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_drq2.set_callback(object); } - template static devcb_base &set_drq3_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_drq3.set_callback(object); } - template static devcb_base &set_ioerror_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_ioerror.set_callback(object); } + template static devcb_base &set_irq2_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_irq2.set_callback(std::forward(cb)); } + template static devcb_base &set_irq3_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_irq3.set_callback(std::forward(cb)); } + template static devcb_base &set_irq4_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_irq4.set_callback(std::forward(cb)); } + template static devcb_base &set_irq5_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_irq5.set_callback(std::forward(cb)); } + template static devcb_base &set_irq6_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_irq6.set_callback(std::forward(cb)); } + template static devcb_base &set_irq7_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_irq7.set_callback(std::forward(cb)); } + template static devcb_base &set_drq1_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_drq1.set_callback(std::forward(cb)); } + template static devcb_base &set_drq2_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_drq2.set_callback(std::forward(cb)); } + template static devcb_base &set_drq3_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_drq3.set_callback(std::forward(cb)); } + template static devcb_base &set_ioerror_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_ioerror.set_callback(std::forward(cb)); } void add_card(device_wangpcbus_card_interface *card, int sid); @@ -180,7 +180,7 @@ private: // device type definition -extern const device_type WANGPC_BUS; +DECLARE_DEVICE_TYPE(WANGPC_BUS, wangpcbus_device) // ======================> device_wangpcbus_card_interface @@ -189,22 +189,19 @@ extern const device_type WANGPC_BUS; class device_wangpcbus_card_interface : public device_slot_card_interface { friend class wangpcbus_device; + template friend class simple_list; public: - // construction/destruction - device_wangpcbus_card_interface(const machine_config &mconfig, device_t &device); - virtual ~device_wangpcbus_card_interface() { } - device_wangpcbus_card_interface *next() const { return m_next; } // memory access - virtual uint16_t wangpcbus_mrdc_r(address_space &space, offs_t offset, uint16_t mem_mask) { return 0; }; - virtual void wangpcbus_amwc_w(address_space &space, offs_t offset, uint16_t mem_mask, uint16_t data) { }; + virtual uint16_t wangpcbus_mrdc_r(address_space &space, offs_t offset, uint16_t mem_mask) { return 0; } + virtual void wangpcbus_amwc_w(address_space &space, offs_t offset, uint16_t mem_mask, uint16_t data) { } // I/O access - virtual uint16_t wangpcbus_iorc_r(address_space &space, offs_t offset, uint16_t mem_mask) { return 0; }; - virtual void wangpcbus_aiowc_w(address_space &space, offs_t offset, uint16_t mem_mask, uint16_t data) { }; - bool sad(offs_t offset) { return ((offset & 0xf80) == (0x800 | (m_sid << 7))) ? true : false; } + virtual uint16_t wangpcbus_iorc_r(address_space &space, offs_t offset, uint16_t mem_mask) { return 0; } + virtual void wangpcbus_aiowc_w(address_space &space, offs_t offset, uint16_t mem_mask, uint16_t data) { } + bool sad(offs_t offset) const { return (offset & 0xf80) == (0x800 | (m_sid << 7)); } // DMA virtual uint8_t wangpcbus_dack_r(address_space &space, int line) { return 0; } @@ -212,16 +209,20 @@ public: virtual void wangpcbus_tc_w(int state) { } virtual bool wangpcbus_have_dack(int line) { return false; } - wangpcbus_device *m_bus; +protected: + // construction/destruction + device_wangpcbus_card_interface(const machine_config &mconfig, device_t &device); + + wangpcbus_device *m_bus; wangpcbus_slot_device *m_slot; int m_sid; + +private: device_wangpcbus_card_interface *m_next; }; SLOT_INTERFACE_EXTERN( wangpc_cards ); - - -#endif +#endif // MAME_BUS_WANGPC_WANGPC_H diff --git a/src/devices/bus/wangpc/wdc.cpp b/src/devices/bus/wangpc/wdc.cpp index 4c6326c85d3..d468b76697c 100644 --- a/src/devices/bus/wangpc/wdc.cpp +++ b/src/devices/bus/wangpc/wdc.cpp @@ -31,7 +31,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type WANGPC_WDC = device_creator; +DEFINE_DEVICE_TYPE(WANGPC_WDC, wangpc_wdc_device, "wangpc_wdc", "Wang PC-PM001 Winchester Disk Controller") //------------------------------------------------- @@ -143,7 +143,7 @@ inline void wangpc_wdc_device::set_irq(int state) //------------------------------------------------- wangpc_wdc_device::wangpc_wdc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, WANGPC_WDC, "Wang PC-PM001", tag, owner, clock, "wangpc_wdc", __FILE__), + device_t(mconfig, WANGPC_WDC, tag, owner, clock), device_wangpcbus_card_interface(mconfig, *this), m_maincpu(*this, Z80_TAG), m_ctc(*this, MK3882_TAG), m_status(0), m_option(0), m_irq(0) diff --git a/src/devices/bus/wangpc/wdc.h b/src/devices/bus/wangpc/wdc.h index 4667e637c1d..d665c453366 100644 --- a/src/devices/bus/wangpc/wdc.h +++ b/src/devices/bus/wangpc/wdc.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_WANGPC_WDC_H +#define MAME_BUS_WANGPC_WDC_H -#ifndef __WANGPC_WDC__ -#define __WANGPC_WDC__ +#pragma once #include "wangpc.h" #include "cpu/z80/z80.h" @@ -74,7 +74,6 @@ private: // device type definition -extern const device_type WANGPC_WDC; - +DECLARE_DEVICE_TYPE(WANGPC_WDC, wangpc_wdc_device) -#endif +#endif // MAME_BUS_WANGPC_WDC_H diff --git a/src/devices/bus/wswan/rom.cpp b/src/devices/bus/wswan/rom.cpp index b9594f84ac1..4ba57a44fe4 100644 --- a/src/devices/bus/wswan/rom.cpp +++ b/src/devices/bus/wswan/rom.cpp @@ -21,13 +21,13 @@ enum // ws_rom_device - constructor //------------------------------------------------- -const device_type WS_ROM_STD = device_creator; -const device_type WS_ROM_SRAM = device_creator; -const device_type WS_ROM_EEPROM = device_creator; +DEFINE_DEVICE_TYPE(WS_ROM_STD, ws_rom_device, "ws_rom", "Wonderswan Standard Carts") +DEFINE_DEVICE_TYPE(WS_ROM_SRAM, ws_rom_sram_device, "ws_sram", "Wonderswan Carts w/SRAM") +DEFINE_DEVICE_TYPE(WS_ROM_EEPROM, ws_rom_eeprom_device, "ws_eeprom", "Wonderswan Carts w/EEPROM") -ws_rom_device::ws_rom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), +ws_rom_device::ws_rom_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), device_ws_cart_interface(mconfig, *this), m_base20(0), m_base30(0), @@ -45,34 +45,22 @@ ws_rom_device::ws_rom_device(const machine_config &mconfig, device_type type, co { } -ws_rom_device::ws_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, WS_ROM_STD, "Wonderswan Standard Carts", tag, owner, clock, "ws_rom", __FILE__), - device_ws_cart_interface( mconfig, *this ), m_base20(0), - m_base30(0), - m_base40(0), - m_rtc_setting(0), - m_rtc_year(0), - m_rtc_month(0), - m_rtc_day(0), - m_rtc_day_of_week(0), - m_rtc_hour(0), - m_rtc_minute(0), - m_rtc_second(0), - m_rtc_index(0), - rtc_timer(nullptr) - { +ws_rom_device::ws_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + ws_rom_device(mconfig, WS_ROM_STD, tag, owner, clock) +{ } -ws_rom_sram_device::ws_rom_sram_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : ws_rom_device(mconfig, WS_ROM_SRAM, "Wonderswan Carts w/SRAM", tag, owner, clock, "ws_sram", __FILE__), m_nvram_base(0) - { +ws_rom_sram_device::ws_rom_sram_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + ws_rom_device(mconfig, WS_ROM_SRAM, tag, owner, clock), + m_nvram_base(0) +{ } -ws_rom_eeprom_device::ws_rom_eeprom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : ws_rom_device(mconfig, WS_ROM_EEPROM, "Wonderswan Carts w/EEPROM", tag, owner, clock, "ws_eeprom", __FILE__), m_eeprom_mode(0), - m_eeprom_address(0), m_eeprom_command(0), m_eeprom_start(0), m_eeprom_write_enabled(0) - { +ws_rom_eeprom_device::ws_rom_eeprom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + ws_rom_device(mconfig, WS_ROM_EEPROM, tag, owner, clock), + m_eeprom_mode(0), m_eeprom_address(0), m_eeprom_command(0), m_eeprom_start(0), m_eeprom_write_enabled(0) +{ } diff --git a/src/devices/bus/wswan/rom.h b/src/devices/bus/wswan/rom.h index 9197cf98911..ae420667c8f 100644 --- a/src/devices/bus/wswan/rom.h +++ b/src/devices/bus/wswan/rom.h @@ -1,7 +1,7 @@ // license:BSD-3-Clause // copyright-holders:Wilbert Pol -#ifndef __WS_ROM_H -#define __WS_ROM_H +#ifndef MAME_BUS_WSWAN_ROM_H +#define MAME_BUS_WSWAN_ROM_H #include "slot.h" @@ -13,14 +13,8 @@ class ws_rom_device : public device_t, { public: // construction/destruction - ws_rom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); ws_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; - // reading and writing virtual DECLARE_READ8_MEMBER(read_rom20) override; virtual DECLARE_READ8_MEMBER(read_rom30) override; @@ -29,6 +23,15 @@ public: virtual DECLARE_WRITE8_MEMBER(write_io) override; protected: + static constexpr device_timer_id TIMER_RTC = 0; + + ws_rom_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + uint8_t m_io_regs[0x10]; uint32_t m_base20, m_base30, m_base40; @@ -43,7 +46,6 @@ protected: uint8_t m_rtc_second; /* Second */ uint8_t m_rtc_index; /* index for reading/writing of current of alarm time */ - static const device_timer_id TIMER_RTC = 0; emu_timer *rtc_timer; }; @@ -56,15 +58,16 @@ public: // construction/destruction ws_rom_sram_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - // reading and writing virtual DECLARE_READ8_MEMBER(read_ram) override; virtual DECLARE_WRITE8_MEMBER(write_ram) override; virtual DECLARE_WRITE8_MEMBER(write_io) override; +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + private: uint32_t m_nvram_base; }; @@ -78,14 +81,15 @@ public: // construction/destruction ws_rom_eeprom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - // reading and writing virtual DECLARE_READ8_MEMBER(read_io) override; virtual DECLARE_WRITE8_MEMBER(write_io) override; +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + private: uint8_t m_eeprom_mode; /* eeprom mode */ uint16_t m_eeprom_address; /* Read/write address */ @@ -97,9 +101,8 @@ private: // device type definition -extern const device_type WS_ROM_STD; -extern const device_type WS_ROM_SRAM; -extern const device_type WS_ROM_EEPROM; - +DECLARE_DEVICE_TYPE(WS_ROM_STD, ws_rom_device) +DECLARE_DEVICE_TYPE(WS_ROM_SRAM, ws_rom_sram_device) +DECLARE_DEVICE_TYPE(WS_ROM_EEPROM, ws_rom_eeprom_device) -#endif +#endif // MAME_BUS_WSWAN_ROM_H diff --git a/src/devices/bus/wswan/slot.cpp b/src/devices/bus/wswan/slot.cpp index fd92197ddbf..45df7c195bf 100644 --- a/src/devices/bus/wswan/slot.cpp +++ b/src/devices/bus/wswan/slot.cpp @@ -15,7 +15,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type WS_CART_SLOT = device_creator; +DEFINE_DEVICE_TYPE(WS_CART_SLOT, ws_cart_slot_device, "ws_cart_slot", "Wonderswan Cartridge Slot") //************************************************************************** // Wonderswan Cartridges Interface @@ -77,10 +77,11 @@ void device_ws_cart_interface::nvram_alloc(uint32_t size) // ws_cart_slot_device - constructor //------------------------------------------------- ws_cart_slot_device::ws_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, WS_CART_SLOT, "Wonderswan Cartridge Slot", tag, owner, clock, "ws_cart_slot", __FILE__), - device_image_interface(mconfig, *this), - device_slot_interface(mconfig, *this), - m_type(WS_STD), m_cart(nullptr) + device_t(mconfig, WS_CART_SLOT, tag, owner, clock), + device_image_interface(mconfig, *this), + device_slot_interface(mconfig, *this), + m_type(WS_STD), + m_cart(nullptr) { } diff --git a/src/devices/bus/wswan/slot.h b/src/devices/bus/wswan/slot.h index ce2c4726ed2..5cde9bee01f 100644 --- a/src/devices/bus/wswan/slot.h +++ b/src/devices/bus/wswan/slot.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Wilbert Pol -#ifndef __WS_SLOT_H -#define __WS_SLOT_H +#ifndef MAME_BUS_WSWAN_SLOT_H +#define MAME_BUS_WSWAN_SLOT_H + +#pragma once #include "softlist_dev.h" @@ -26,7 +28,6 @@ class device_ws_cart_interface : public device_slot_card_interface { public: // construction/destruction - device_ws_cart_interface(const machine_config &mconfig, device_t &device); virtual ~device_ws_cart_interface(); // reading and writing @@ -36,7 +37,7 @@ public: virtual DECLARE_READ8_MEMBER(read_ram) { return 0xff; } virtual DECLARE_WRITE8_MEMBER(write_ram) {} virtual DECLARE_READ8_MEMBER(read_io) { return 0xff; } - virtual DECLARE_WRITE8_MEMBER(write_io) {} + virtual DECLARE_WRITE8_MEMBER(write_io) { } void rom_alloc(uint32_t size, const char *tag); void nvram_alloc(uint32_t size); @@ -45,12 +46,14 @@ public: uint32_t get_rom_size() { return m_rom_size; } uint32_t get_nvram_size() { return m_nvram.size(); } - void save_nvram() { device().save_item(NAME(m_nvram)); } + void save_nvram() { device().save_item(NAME(m_nvram)); } void set_has_rtc(bool val) { m_has_rtc = val; } void set_is_rotated(bool val) { m_is_rotated = val; } int get_is_rotated() { return m_is_rotated ? 1 : 0; } protected: + device_ws_cart_interface(const machine_config &mconfig, device_t &device); + // internal state uint8_t *m_rom; uint32_t m_rom_size; @@ -72,9 +75,6 @@ public: ws_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual ~ws_cart_slot_device(); - // device-level overrides - virtual void device_start() override; - // image-level overrides virtual image_init_result call_load() override; virtual void call_unload() override; @@ -109,15 +109,17 @@ public: virtual DECLARE_WRITE8_MEMBER(write_io); protected: + // device-level overrides + virtual void device_start() override; int m_type; - device_ws_cart_interface* m_cart; + device_ws_cart_interface* m_cart; }; // device type definition -extern const device_type WS_CART_SLOT; +DECLARE_DEVICE_TYPE(WS_CART_SLOT, ws_cart_slot_device) /*************************************************************************** @@ -129,4 +131,5 @@ extern const device_type WS_CART_SLOT; #define MCFG_WSWAN_CARTRIDGE_ADD(_tag,_slot_intf,_def_slot) \ MCFG_DEVICE_ADD(_tag, WS_CART_SLOT, 0) \ MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, false) -#endif + +#endif // MAME_BUS_WSWAN_SLOT_H diff --git a/src/devices/bus/x68k/x68k_neptunex.cpp b/src/devices/bus/x68k/x68k_neptunex.cpp index 1c5d5fca020..619e461a01b 100644 --- a/src/devices/bus/x68k/x68k_neptunex.cpp +++ b/src/devices/bus/x68k/x68k_neptunex.cpp @@ -13,7 +13,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type X68K_NEPTUNEX = device_creator; +DEFINE_DEVICE_TYPE(X68K_NEPTUNEX, x68k_neptune_device, "x68k_neptunex", "Neptune-X") // device machine config static MACHINE_CONFIG_FRAGMENT( x68k_neptunex ) @@ -29,10 +29,10 @@ machine_config_constructor x68k_neptune_device::device_mconfig_additions() const } x68k_neptune_device::x68k_neptune_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, X68K_NEPTUNEX, "Neptune-X", tag, owner, clock, "x68k_neptunex", __FILE__), - device_x68k_expansion_card_interface(mconfig, *this), - m_slot(nullptr), - m_dp8390(*this, "dp8390d") + : device_t(mconfig, X68K_NEPTUNEX, tag, owner, clock) + , device_x68k_expansion_card_interface(mconfig, *this) + , m_slot(nullptr) + , m_dp8390(*this, "dp8390d") { } diff --git a/src/devices/bus/x68k/x68k_neptunex.h b/src/devices/bus/x68k/x68k_neptunex.h index 77ff9ab69e5..3fa0736dcdd 100644 --- a/src/devices/bus/x68k/x68k_neptunex.h +++ b/src/devices/bus/x68k/x68k_neptunex.h @@ -10,11 +10,13 @@ * 0xECE400-0xECE7FF: "Y1" */ -#ifndef X68K_NEPTUNEX_H_ -#define X68K_NEPTUNEX_H_ +#ifndef MAME_BUS_X68K_X68K_NEPTUNEX_H +#define MAME_BUS_X68K_X68K_NEPTUNEX_H + +#pragma once -#include "machine/dp8390.h" #include "x68kexp.h" +#include "machine/dp8390.h" #define NEPTUNE_IRQ_VECTOR 0xf9 @@ -28,12 +30,13 @@ public: // optional information overrides virtual machine_config_constructor device_mconfig_additions() const override; - void x68k_neptune_irq_w(int state); DECLARE_READ8_MEMBER(x68k_neptune_mem_read); DECLARE_WRITE8_MEMBER(x68k_neptune_mem_write); DECLARE_READ16_MEMBER(x68k_neptune_port_r); DECLARE_WRITE16_MEMBER(x68k_neptune_port_w); + void x68k_neptune_irq_w(int state); + protected: // device-level overrides virtual void device_start() override; @@ -48,6 +51,6 @@ private: }; // device type definition -extern const device_type X68K_NEPTUNEX; +DECLARE_DEVICE_TYPE(X68K_NEPTUNEX, x68k_neptune_device) -#endif /* X68K_NEPTUNEX_H_ */ +#endif // MAME_BUS_X68K_X68K_NEPTUNEX_H diff --git a/src/devices/bus/x68k/x68k_scsiext.cpp b/src/devices/bus/x68k/x68k_scsiext.cpp index 049a990ff1f..e04458a3dfd 100644 --- a/src/devices/bus/x68k/x68k_scsiext.cpp +++ b/src/devices/bus/x68k/x68k_scsiext.cpp @@ -18,7 +18,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type X68K_SCSIEXT = device_creator; +DEFINE_DEVICE_TYPE(X68K_SCSIEXT, x68k_scsiext_device, "x68k_cz6bs1", "Sharp CZ-6BS1 SCSI-1") //------------------------------------------------- // rom_region - device-specific ROM region @@ -57,9 +57,10 @@ machine_config_constructor x68k_scsiext_device::device_mconfig_additions() const } x68k_scsiext_device::x68k_scsiext_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, X68K_SCSIEXT, "Sharp CZ-6BS1 SCSI-1", tag, owner, clock, "x68k_cz6bs1", __FILE__), - device_x68k_expansion_card_interface(mconfig, *this), m_slot(nullptr), - m_spc(*this, "mb89352") + : device_t(mconfig, X68K_SCSIEXT, tag, owner, clock) + , device_x68k_expansion_card_interface(mconfig, *this) + , m_slot(nullptr), + m_spc(*this, "mb89352") { } diff --git a/src/devices/bus/x68k/x68k_scsiext.h b/src/devices/bus/x68k/x68k_scsiext.h index 54658840e8a..b3448e25dfb 100644 --- a/src/devices/bus/x68k/x68k_scsiext.h +++ b/src/devices/bus/x68k/x68k_scsiext.h @@ -6,11 +6,13 @@ * Created on: 5/06/2012 */ -#ifndef X68K_SCSIEXT_H_ -#define X68K_SCSIEXT_H_ +#ifndef MAME_BUS_X68K_X68K_SCSIEXT_H +#define MAME_BUS_X68K_X68K_SCSIEXT_H + +#pragma once -#include "machine/mb89352.h" #include "x68kexp.h" +#include "machine/mb89352.h" class x68k_scsiext_device : public device_t, public device_x68k_expansion_card_interface @@ -32,6 +34,7 @@ protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; + private: x68k_expansion_slot_device *m_slot; @@ -39,7 +42,6 @@ private: }; // device type definition -extern const device_type X68K_SCSIEXT; - +DECLARE_DEVICE_TYPE(X68K_SCSIEXT, x68k_scsiext_device) -#endif /* X68K_SCSIEXT_H_ */ +#endif // MAME_BUS_X68K_X68K_SCSIEXT_H diff --git a/src/devices/bus/x68k/x68kexp.cpp b/src/devices/bus/x68k/x68kexp.cpp index c187ad0a26d..9d9cded5bd8 100644 --- a/src/devices/bus/x68k/x68kexp.cpp +++ b/src/devices/bus/x68k/x68kexp.cpp @@ -11,7 +11,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type X68K_EXPANSION_SLOT = device_creator; +DEFINE_DEVICE_TYPE(X68K_EXPANSION_SLOT, x68k_expansion_slot_device, "x68k_expansion_slot", "Sharp X680x0 expansion slot") //************************************************************************** @@ -34,12 +34,13 @@ device_x68k_expansion_card_interface::~device_x68k_expansion_card_interface() //************************************************************************** x68k_expansion_slot_device::x68k_expansion_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, X68K_EXPANSION_SLOT, "Sharp X680x0 expansion slot", tag, owner, clock, "x68k_expansion_slot", __FILE__), - device_slot_interface(mconfig, *this), - m_out_irq2_cb(*this), - m_out_irq4_cb(*this), - m_out_nmi_cb(*this), - m_out_reset_cb(*this), m_card(nullptr) + device_t(mconfig, X68K_EXPANSION_SLOT, tag, owner, clock), + device_slot_interface(mconfig, *this), + m_out_irq2_cb(*this), + m_out_irq4_cb(*this), + m_out_nmi_cb(*this), + m_out_reset_cb(*this), + m_card(nullptr) { } diff --git a/src/devices/bus/x68k/x68kexp.h b/src/devices/bus/x68k/x68kexp.h index c1bde3a2306..5b66685fbed 100644 --- a/src/devices/bus/x68k/x68kexp.h +++ b/src/devices/bus/x68k/x68kexp.h @@ -61,8 +61,10 @@ * */ -#ifndef X68KEXP_H_ -#define X68KEXP_H_ +#ifndef MAME_BUS_X68K_X68KEXP_H +#define MAME_BUS_X68K_X68KEXP_H + +#pragma once //************************************************************************** @@ -99,28 +101,29 @@ class device_x68k_expansion_card_interface : public device_slot_card_interface { public: // construction/destruction - device_x68k_expansion_card_interface(const machine_config &mconfig, device_t &device); virtual ~device_x68k_expansion_card_interface(); // reset - virtual void x68k_reset_w() { }; + virtual void x68k_reset_w() { } + +protected: + device_x68k_expansion_card_interface(const machine_config &mconfig, device_t &device); }; // ======================> x68k_expansion_slot_device -class x68k_expansion_slot_device : public device_t, - public device_slot_interface +class x68k_expansion_slot_device : public device_t, public device_slot_interface { public: // construction/destruction x68k_expansion_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual ~x68k_expansion_slot_device(); - template static devcb_base &set_out_irq2_callback(device_t &device, _Object object) { return downcast(device).m_out_irq2_cb.set_callback(object); } - template static devcb_base &set_out_irq4_callback(device_t &device, _Object object) { return downcast(device).m_out_irq4_cb.set_callback(object); } - template static devcb_base &set_out_nmi_callback(device_t &device, _Object object) { return downcast(device).m_out_nmi_cb.set_callback(object); } - template static devcb_base &set_out_reset_callback(device_t &device, _Object object) { return downcast(device).m_out_reset_cb.set_callback(object); } + template static devcb_base &set_out_irq2_callback(device_t &device, Object &&cb) { return downcast(device).m_out_irq2_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_irq4_callback(device_t &device, Object &&cb) { return downcast(device).m_out_irq4_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_nmi_callback(device_t &device, Object &&cb) { return downcast(device).m_out_nmi_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_reset_callback(device_t &device, Object &&cb) { return downcast(device).m_out_reset_cb.set_callback(std::forward(cb)); } DECLARE_WRITE_LINE_MEMBER( irq2_w ); @@ -143,6 +146,6 @@ protected: // device type definition -extern const device_type X68K_EXPANSION_SLOT; +DECLARE_DEVICE_TYPE(X68K_EXPANSION_SLOT, x68k_expansion_slot_device) -#endif /* X68KEXP_H_ */ +#endif // MAME_BUS_X68K_X68KEXP_H diff --git a/src/devices/bus/z88/flash.cpp b/src/devices/bus/z88/flash.cpp index 752ec937eb9..28a995d86f7 100644 --- a/src/devices/bus/z88/flash.cpp +++ b/src/devices/bus/z88/flash.cpp @@ -22,7 +22,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type Z88_1024K_FLASH = device_creator; +DEFINE_DEVICE_TYPE(Z88_1024K_FLASH, z88_1024k_flash_device, "z88_1024k_flash", "Z88 1024KB Flash") //------------------------------------------------- // MACHINE_CONFIG_FRAGMENT( z88_flash ) @@ -42,9 +42,9 @@ MACHINE_CONFIG_END //------------------------------------------------- z88_1024k_flash_device::z88_1024k_flash_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, Z88_1024K_FLASH, "Z88 1024KB Flash", tag, owner, clock, "z88_1024k_flash", __FILE__), - device_z88cart_interface( mconfig, *this ), - m_flash(*this, FLASH_TAG) + : device_t(mconfig, Z88_1024K_FLASH, tag, owner, clock) + , device_z88cart_interface(mconfig, *this) + , m_flash(*this, FLASH_TAG) { } diff --git a/src/devices/bus/z88/flash.h b/src/devices/bus/z88/flash.h index 4d79cb55afe..b33507f059e 100644 --- a/src/devices/bus/z88/flash.h +++ b/src/devices/bus/z88/flash.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Sandro Ronco -#pragma once +#ifndef MAME_BUS_Z88_FLASH_H +#define MAME_BUS_Z88_FLASH_H -#ifndef __Z88_FLASH_H__ -#define __Z88_FLASH_H__ +#pragma once #include "z88.h" #include "machine/intelfsh.h" @@ -39,7 +39,6 @@ private: }; // device type definition -extern const device_type Z88_1024K_FLASH; - +DECLARE_DEVICE_TYPE(Z88_1024K_FLASH, z88_1024k_flash_device) -#endif /* __Z88_FLASH_H__ */ +#endif // MAME_BUS_Z88_FLASH_H diff --git a/src/devices/bus/z88/ram.cpp b/src/devices/bus/z88/ram.cpp index 22852bf62b3..69ddd3125a6 100644 --- a/src/devices/bus/z88/ram.cpp +++ b/src/devices/bus/z88/ram.cpp @@ -19,10 +19,10 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type Z88_32K_RAM = device_creator; -const device_type Z88_128K_RAM = device_creator; -const device_type Z88_512K_RAM = device_creator; -const device_type Z88_1024K_RAM = device_creator; +DEFINE_DEVICE_TYPE(Z88_32K_RAM, z88_32k_ram_device, "z88_32k_ram", "Z88 32KB RAM") +DEFINE_DEVICE_TYPE(Z88_128K_RAM, z88_128k_ram_device, "z88_128k_ram", "Z88 128KB RAM") +DEFINE_DEVICE_TYPE(Z88_512K_RAM, z88_512k_ram_device, "z88_512k_ram", "Z88 512KB RAM") +DEFINE_DEVICE_TYPE(Z88_1024K_RAM, z88_1024k_ram_device, "z88_1024k_ram", "Z88 1024KB RAM") //************************************************************************** // LIVE DEVICE @@ -33,15 +33,13 @@ const device_type Z88_1024K_RAM = device_creator; //------------------------------------------------- z88_32k_ram_device::z88_32k_ram_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, Z88_32K_RAM, "Z88 32KB RAM", tag, owner, clock, "z88_32k_ram", __FILE__), - device_z88cart_interface( mconfig, *this ), m_ram(nullptr) - { + : z88_32k_ram_device(mconfig, Z88_32K_RAM, tag, owner, clock) +{ } -z88_32k_ram_device::z88_32k_ram_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_z88cart_interface( mconfig, *this ), m_ram(nullptr) - { +z88_32k_ram_device::z88_32k_ram_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock), device_z88cart_interface(mconfig, *this), m_ram(nullptr) +{ } //------------------------------------------------- @@ -49,7 +47,7 @@ z88_32k_ram_device::z88_32k_ram_device(const machine_config &mconfig, device_typ //------------------------------------------------- z88_128k_ram_device::z88_128k_ram_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : z88_32k_ram_device(mconfig, Z88_128K_RAM, "Z88 128KB RAM", tag, owner, clock, "z88_128k_ram", __FILE__) + : z88_32k_ram_device(mconfig, Z88_128K_RAM, tag, owner, clock) { } @@ -58,7 +56,7 @@ z88_128k_ram_device::z88_128k_ram_device(const machine_config &mconfig, const ch //------------------------------------------------- z88_512k_ram_device::z88_512k_ram_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : z88_32k_ram_device(mconfig, Z88_512K_RAM, "Z88 512KB RAM", tag, owner, clock, "z88_512k_ram", __FILE__) + : z88_32k_ram_device(mconfig, Z88_512K_RAM, tag, owner, clock) { } @@ -67,7 +65,7 @@ z88_512k_ram_device::z88_512k_ram_device(const machine_config &mconfig, const ch //------------------------------------------------- z88_1024k_ram_device::z88_1024k_ram_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : z88_32k_ram_device(mconfig, Z88_1024K_RAM, "Z88 1024KB RAM", tag, owner, clock, "z88_1024k_ram", __FILE__) + : z88_32k_ram_device(mconfig, Z88_1024K_RAM, tag, owner, clock) { } diff --git a/src/devices/bus/z88/ram.h b/src/devices/bus/z88/ram.h index d2e1646145d..357959064a8 100644 --- a/src/devices/bus/z88/ram.h +++ b/src/devices/bus/z88/ram.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Sandro Ronco -#pragma once +#ifndef MAME_BUS_Z88_RAM_H +#define MAME_BUS_Z88_RAM_H -#ifndef __Z88_RAM_H__ -#define __Z88_RAM_H__ +#pragma once #include "z88.h" @@ -19,9 +19,10 @@ class z88_32k_ram_device : public device_t, public: // construction/destruction z88_32k_ram_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - z88_32k_ram_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); protected: + z88_32k_ram_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; @@ -76,9 +77,9 @@ protected: }; // device type definition -extern const device_type Z88_32K_RAM; -extern const device_type Z88_128K_RAM; -extern const device_type Z88_512K_RAM; -extern const device_type Z88_1024K_RAM; +DECLARE_DEVICE_TYPE(Z88_32K_RAM, z88_32k_ram_device) +DECLARE_DEVICE_TYPE(Z88_128K_RAM, z88_128k_ram_device) +DECLARE_DEVICE_TYPE(Z88_512K_RAM, z88_512k_ram_device) +DECLARE_DEVICE_TYPE(Z88_1024K_RAM, z88_1024k_ram_device) -#endif /* __Z88_RAM_H__ */ +#endif // MAME_BUS_Z88_RAM_H diff --git a/src/devices/bus/z88/rom.cpp b/src/devices/bus/z88/rom.cpp index 4ac53bba045..ea1feb603f4 100644 --- a/src/devices/bus/z88/rom.cpp +++ b/src/devices/bus/z88/rom.cpp @@ -19,9 +19,9 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type Z88_32K_ROM = device_creator; -const device_type Z88_128K_ROM = device_creator; -const device_type Z88_256K_ROM = device_creator; +DEFINE_DEVICE_TYPE(Z88_32K_ROM, z88_32k_rom_device, "z88_32k_rom", "Z88 32KB ROM") +DEFINE_DEVICE_TYPE(Z88_128K_ROM, z88_128k_rom_device, "z88_128k_rom", "Z88 128KB ROM") +DEFINE_DEVICE_TYPE(Z88_256K_ROM, z88_256k_rom_device, "z88_256k_rom", "Z88 256KB ROM") //************************************************************************** // LIVE DEVICE @@ -32,15 +32,13 @@ const device_type Z88_256K_ROM = device_creator; //------------------------------------------------- z88_32k_rom_device::z88_32k_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, Z88_32K_ROM, "Z88 32KB ROM", tag, owner, clock, "z88_32k_rom", __FILE__), - device_z88cart_interface( mconfig, *this ), m_rom(nullptr) - { + : z88_32k_rom_device(mconfig, Z88_32K_ROM, tag, owner, clock) +{ } -z88_32k_rom_device::z88_32k_rom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_z88cart_interface( mconfig, *this ), m_rom(nullptr) - { +z88_32k_rom_device::z88_32k_rom_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock), device_z88cart_interface(mconfig, *this), m_rom(nullptr) +{ } //------------------------------------------------- @@ -48,7 +46,7 @@ z88_32k_rom_device::z88_32k_rom_device(const machine_config &mconfig, device_typ //------------------------------------------------- z88_128k_rom_device::z88_128k_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : z88_32k_rom_device(mconfig, Z88_128K_ROM, "Z88 128KB ROM", tag, owner, clock, "z88_128k_rom", __FILE__) + : z88_32k_rom_device(mconfig, Z88_128K_ROM, tag, owner, clock) { } @@ -57,7 +55,7 @@ z88_128k_rom_device::z88_128k_rom_device(const machine_config &mconfig, const ch //------------------------------------------------- z88_256k_rom_device::z88_256k_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : z88_32k_rom_device(mconfig, Z88_256K_ROM, "Z88 256KB ROM", tag, owner, clock, "z88_256k_rom", __FILE__) + : z88_32k_rom_device(mconfig, Z88_256K_ROM, tag, owner, clock) { } diff --git a/src/devices/bus/z88/rom.h b/src/devices/bus/z88/rom.h index 41c63955d4f..9508efbef14 100644 --- a/src/devices/bus/z88/rom.h +++ b/src/devices/bus/z88/rom.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Sandro Ronco -#pragma once +#ifndef MAME_BUS_Z88_ROM_H +#define MAME_BUS_Z88_ROM_H -#ifndef __Z88_ROM_H__ -#define __Z88_ROM_H__ +#pragma once #include "z88.h" @@ -19,9 +19,10 @@ class z88_32k_rom_device : public device_t, public: // construction/destruction z88_32k_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - z88_32k_rom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); protected: + z88_32k_rom_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; @@ -62,8 +63,8 @@ protected: }; // device type definition -extern const device_type Z88_32K_ROM; -extern const device_type Z88_128K_ROM; -extern const device_type Z88_256K_ROM; +DECLARE_DEVICE_TYPE(Z88_32K_ROM, z88_32k_rom_device) +DECLARE_DEVICE_TYPE(Z88_128K_ROM, z88_128k_rom_device) +DECLARE_DEVICE_TYPE(Z88_256K_ROM, z88_256k_rom_device) -#endif /* __Z88_ROM_H__ */ +#endif // MAME_BUS_Z88_ROM_H diff --git a/src/devices/bus/z88/z88.cpp b/src/devices/bus/z88/z88.cpp index d6dd43b77f2..9f7b7fb3172 100644 --- a/src/devices/bus/z88/z88.cpp +++ b/src/devices/bus/z88/z88.cpp @@ -22,7 +22,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type Z88CART_SLOT = device_creator; +DEFINE_DEVICE_TYPE(Z88CART_SLOT, z88cart_slot_device, "z88cart_slot", "Z88 Cartridge Slot") //************************************************************************** @@ -56,10 +56,11 @@ device_z88cart_interface::~device_z88cart_interface() // z88cart_slot_device - constructor //------------------------------------------------- z88cart_slot_device::z88cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, Z88CART_SLOT, "Z88 Cartridge Slot", tag, owner, clock, "z88cart_slot", __FILE__), - device_image_interface(mconfig, *this), - device_slot_interface(mconfig, *this), - m_out_flp_cb(*this), m_cart(nullptr), m_flp_timer(nullptr) + device_t(mconfig, Z88CART_SLOT, tag, owner, clock), + device_image_interface(mconfig, *this), + device_slot_interface(mconfig, *this), + m_out_flp_cb(*this), + m_cart(nullptr), m_flp_timer(nullptr) { } diff --git a/src/devices/bus/z88/z88.h b/src/devices/bus/z88/z88.h index cd7a8ce3808..477b98eca7c 100644 --- a/src/devices/bus/z88/z88.h +++ b/src/devices/bus/z88/z88.h @@ -51,8 +51,10 @@ *********************************************************************/ -#ifndef __Z88CART_H__ -#define __Z88CART_H__ +#ifndef MAME_BUS_Z88_Z88_H +#define MAME_BUS_Z88_Z88_H + +#pragma once #include "softlist_dev.h" @@ -67,7 +69,6 @@ class device_z88cart_interface : public device_slot_card_interface { public: // construction/destruction - device_z88cart_interface(const machine_config &mconfig, device_t &device); virtual ~device_z88cart_interface(); // reading and writing @@ -75,6 +76,9 @@ public: virtual DECLARE_WRITE8_MEMBER(write) { } virtual uint8_t* get_cart_base() { return nullptr; } virtual uint32_t get_cart_size() { return 0; } + +protected: + device_z88cart_interface(const machine_config &mconfig, device_t &device); }; @@ -89,11 +93,7 @@ public: z88cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual ~z88cart_slot_device(); - template static devcb_base &set_out_flp_callback(device_t &device, _Object object) { return downcast(device).m_out_flp_cb.set_callback(object); } - - // device-level overrides - virtual void device_start() override; - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + template static devcb_base &set_out_flp_callback(device_t &device, Object &&cb) { return downcast(device).m_out_flp_cb.set_callback(std::forward(cb)); } // image-level overrides virtual image_init_result call_load() override; @@ -116,8 +116,14 @@ public: virtual DECLARE_READ8_MEMBER(read); virtual DECLARE_WRITE8_MEMBER(write); virtual uint8_t* get_cart_base(); + +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + private: - static const device_timer_id TIMER_FLP_CLEAR = 0; + static constexpr device_timer_id TIMER_FLP_CLEAR = 0; devcb_write_line m_out_flp_cb; device_z88cart_interface* m_cart; @@ -126,7 +132,7 @@ private: // device type definition -extern const device_type Z88CART_SLOT; +DECLARE_DEVICE_TYPE(Z88CART_SLOT, z88cart_slot_device) /*************************************************************************** @@ -136,4 +142,4 @@ extern const device_type Z88CART_SLOT; #define MCFG_Z88CART_SLOT_OUT_FLP_CB(_devcb) \ devcb = &z88cart_slot_device::set_out_flp_callback(*device, DEVCB_##_devcb); -#endif /* __Z88CART_H__ */ +#endif // MAME_BUS_Z88_Z88_H diff --git a/src/devices/cpu/8x300/8x300.cpp b/src/devices/cpu/8x300/8x300.cpp index a405d4dda69..c3929144aa3 100644 --- a/src/devices/cpu/8x300/8x300.cpp +++ b/src/devices/cpu/8x300/8x300.cpp @@ -37,11 +37,11 @@ #define DST_LATCH do { if(DST_IS_RIGHT_BANK) m_right_IV = READPORT(m_IVR+0x100); else m_left_IV = READPORT(m_IVL); } while (0) #define SET_OVF do { if(result & 0xff00) m_OVF = 1; else m_OVF = 0; } while (0) -const device_type N8X300 = device_creator; +DEFINE_DEVICE_TYPE(N8X300, n8x300_cpu_device, "8x300", "Signetics 8X300") n8x300_cpu_device::n8x300_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cpu_device(mconfig, N8X300, "Signetics 8X300", tag, owner, clock, "8x300", __FILE__) + : cpu_device(mconfig, N8X300, tag, owner, clock) , m_program_config("program", ENDIANNESS_BIG, 16, 14, 0) , m_io_config("io", ENDIANNESS_BIG, 8, 9, 0) { diff --git a/src/devices/cpu/8x300/8x300.h b/src/devices/cpu/8x300/8x300.h index d26afc55748..532fc58a6c1 100644 --- a/src/devices/cpu/8x300/8x300.h +++ b/src/devices/cpu/8x300/8x300.h @@ -7,9 +7,10 @@ * Created on: 18/12/2013 */ -#ifndef _8X300_H_ -#define _8X300_H_ +#ifndef MAME_CPU_8X300_8X300_H +#define MAME_CPU_8X300_8X300_H +#pragma once // Register enumeration enum @@ -133,6 +134,6 @@ private: uint8_t get_reg(uint8_t reg); }; -extern const device_type N8X300; +DECLARE_DEVICE_TYPE(N8X300, n8x300_cpu_device) -#endif /* 8X300_H_ */ +#endif // MAME_CPU_8X300_8X300_H diff --git a/src/devices/cpu/adsp2100/adsp2100.cpp b/src/devices/cpu/adsp2100/adsp2100.cpp index 88670a0bf5e..f8499c373a7 100644 --- a/src/devices/cpu/adsp2100/adsp2100.cpp +++ b/src/devices/cpu/adsp2100/adsp2100.cpp @@ -103,12 +103,12 @@ // device type definitions -const device_type ADSP2100 = device_creator; -const device_type ADSP2101 = device_creator; -const device_type ADSP2104 = device_creator; -const device_type ADSP2105 = device_creator; -const device_type ADSP2115 = device_creator; -const device_type ADSP2181 = device_creator; +DEFINE_DEVICE_TYPE(ADSP2100, adsp2100_device, "adsp2100", "ADSP-2100") +DEFINE_DEVICE_TYPE(ADSP2101, adsp2101_device, "adsp2101", "ADSP-2101") +DEFINE_DEVICE_TYPE(ADSP2104, adsp2104_device, "adsp2104", "ADSP-2104") +DEFINE_DEVICE_TYPE(ADSP2105, adsp2105_device, "adsp2105", "ADSP-2105") +DEFINE_DEVICE_TYPE(ADSP2115, adsp2115_device, "adsp2115", "ADSP-2115") +DEFINE_DEVICE_TYPE(ADSP2181, adsp2181_device, "adsp2181", "ADSP-2181") //************************************************************************** @@ -119,8 +119,8 @@ const device_type ADSP2181 = device_creator; // adsp21xx_device - constructor //------------------------------------------------- -adsp21xx_device::adsp21xx_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, uint32_t chiptype, const char *shortname, const char *source) - : cpu_device(mconfig, type, name, tag, owner, clock, shortname, source), +adsp21xx_device::adsp21xx_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint32_t chiptype) + : cpu_device(mconfig, type, tag, owner, clock), m_program_config("program", ENDIANNESS_LITTLE, 32, 14, -2), m_data_config("data", ENDIANNESS_LITTLE, 16, 14, -1), m_chip_type(chiptype), @@ -249,26 +249,33 @@ adsp21xx_device::adsp21xx_device(const machine_config &mconfig, device_type type } adsp2100_device::adsp2100_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : adsp21xx_device(mconfig, ADSP2100, "ADSP-2100", tag, owner, clock, CHIP_TYPE_ADSP2100, "adsp2100", __FILE__) { } + : adsp21xx_device(mconfig, ADSP2100, tag, owner, clock, CHIP_TYPE_ADSP2100) +{ } adsp2101_device::adsp2101_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : adsp21xx_device(mconfig, ADSP2101, "ADSP-2101", tag, owner, clock, CHIP_TYPE_ADSP2101, "adsp2101", __FILE__) { } + : adsp2101_device(mconfig, ADSP2101, tag, owner, clock, CHIP_TYPE_ADSP2101) +{ } -adsp2101_device::adsp2101_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, uint32_t chiptype, const char *shortname, const char *source) - : adsp21xx_device(mconfig, type, name, tag, owner, clock, chiptype, shortname, source) { } +adsp2101_device::adsp2101_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint32_t chiptype) + : adsp21xx_device(mconfig, type, tag, owner, clock, chiptype) +{ } adsp2104_device::adsp2104_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : adsp2101_device(mconfig, ADSP2104, "ADSP-2104", tag, owner, clock, CHIP_TYPE_ADSP2104, "adsp2104", __FILE__) { } + : adsp2101_device(mconfig, ADSP2104, tag, owner, clock, CHIP_TYPE_ADSP2104) +{ } adsp2105_device::adsp2105_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : adsp2101_device(mconfig, ADSP2105, "ADSP-2105", tag, owner, clock, CHIP_TYPE_ADSP2105, "adsp2105", __FILE__) { } + : adsp2101_device(mconfig, ADSP2105, tag, owner, clock, CHIP_TYPE_ADSP2105) +{ } adsp2115_device::adsp2115_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : adsp2101_device(mconfig, ADSP2115, "ADSP-2115", tag, owner, clock, CHIP_TYPE_ADSP2115, "adsp2115", __FILE__) { } + : adsp2101_device(mconfig, ADSP2115, tag, owner, clock, CHIP_TYPE_ADSP2115) +{ } adsp2181_device::adsp2181_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : adsp21xx_device(mconfig, ADSP2181, "ADSP-2181", tag, owner, clock, CHIP_TYPE_ADSP2181, "adsp2181", __FILE__), - m_io_config("I/O", ENDIANNESS_LITTLE, 16, 11, -1) { } + : adsp21xx_device(mconfig, ADSP2181, tag, owner, clock, CHIP_TYPE_ADSP2181) + , m_io_config("I/O", ENDIANNESS_LITTLE, 16, 11, -1) +{ } //------------------------------------------------- diff --git a/src/devices/cpu/adsp2100/adsp2100.h b/src/devices/cpu/adsp2100/adsp2100.h index aa7fb7853dc..2a32163a96d 100644 --- a/src/devices/cpu/adsp2100/adsp2100.h +++ b/src/devices/cpu/adsp2100/adsp2100.h @@ -8,10 +8,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_CPU_ADSP2100_ADSP2100_H +#define MAME_CPU_ADSP2100_ADSP2100_H -#ifndef __ADSP2100_H__ -#define __ADSP2100_H__ +#pragma once //************************************************************************** @@ -200,6 +200,18 @@ enum class adsp21xx_device : public cpu_device { +public: + virtual ~adsp21xx_device(); + + // inline configuration helpers + template static devcb_base &set_sport_rx_callback(device_t &device, Object &&cb) { return downcast(device).m_sport_rx_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_sport_tx_callback(device_t &device, Object &&cb) { return downcast(device).m_sport_tx_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_timer_fired_callback(device_t &device, Object &&cb) { return downcast(device).m_timer_fired_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_dmovlay_callback(device_t &device, Object &&cb) { return downcast(device).m_dmovlay_cb.set_callback(std::forward(cb)); } + + // public interfaces + void load_boot_data(uint8_t *srcdata, uint32_t *dstdata); + protected: enum { @@ -212,20 +224,8 @@ protected: }; // construction/destruction - adsp21xx_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, uint32_t chiptype, const char *shortname, const char *source); - virtual ~adsp21xx_device(); - -public: - // inline configuration helpers - template static devcb_base &set_sport_rx_callback(device_t &device, _Object object) { return downcast(device).m_sport_rx_cb.set_callback(object); } - template static devcb_base &set_sport_tx_callback(device_t &device, _Object object) { return downcast(device).m_sport_tx_cb.set_callback(object); } - template static devcb_base &set_timer_fired_callback(device_t &device, _Object object) { return downcast(device).m_timer_fired_cb.set_callback(object); } - template static devcb_base &set_dmovlay_callback(device_t &device, _Object object) { return downcast(device).m_dmovlay_cb.set_callback(object); } + adsp21xx_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint32_t chiptype); - // public interfaces - void load_boot_data(uint8_t *srcdata, uint32_t *dstdata); - -protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -509,7 +509,7 @@ public: adsp2101_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); protected: - adsp2101_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, uint32_t chiptype, const char *shortname, const char *source); + adsp2101_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint32_t chiptype); // device_execute_interface overrides virtual uint32_t execute_input_lines() const override; @@ -577,12 +577,12 @@ public: // device type definition -extern const device_type ADSP2100; -extern const device_type ADSP2101; -extern const device_type ADSP2104; -extern const device_type ADSP2105; -extern const device_type ADSP2115; -extern const device_type ADSP2181; +DECLARE_DEVICE_TYPE(ADSP2100, adsp2100_device) +DECLARE_DEVICE_TYPE(ADSP2101, adsp2101_device) +DECLARE_DEVICE_TYPE(ADSP2104, adsp2104_device) +DECLARE_DEVICE_TYPE(ADSP2105, adsp2105_device) +DECLARE_DEVICE_TYPE(ADSP2115, adsp2115_device) +DECLARE_DEVICE_TYPE(ADSP2181, adsp2181_device) -#endif /* __ADSP2100_H__ */ +#endif // MAME_CPU_ADSP2100_ADSP2100_H diff --git a/src/devices/cpu/alph8201/alph8201.cpp b/src/devices/cpu/alph8201/alph8201.cpp index 81ac62696b7..ea7bf566657 100644 --- a/src/devices/cpu/alph8201/alph8201.cpp +++ b/src/devices/cpu/alph8201/alph8201.cpp @@ -161,12 +161,12 @@ Timming ****************************************************************************/ #include "emu.h" -#include "debugger.h" #include "alph8201.h" +#include "debugger.h" -const device_type ALPHA8201L = device_creator; -const device_type ALPHA8301L = device_creator; +DEFINE_DEVICE_TYPE(ALPHA8201L, alpha8201_cpu_device, "alpha8201l", "ALPHA-8201L") +DEFINE_DEVICE_TYPE(ALPHA8301L, alpha8301_cpu_device, "alpha8301l", "ALPHA-8301L") /* instruction cycle count */ @@ -185,26 +185,22 @@ const device_type ALPHA8301L = device_creator; alpha8201_cpu_device::alpha8201_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : cpu_device(mconfig, ALPHA8201L, "ALPHA-8201L", tag, owner, clock, "alpha8201l", __FILE__) - , m_program_config("program", ENDIANNESS_LITTLE, 8, 10, 0) - , m_io_config("io", ENDIANNESS_LITTLE, 8, 6, 0) - , m_opmap(opcode_8201) + : alpha8201_cpu_device(mconfig, ALPHA8201L, tag, owner, clock, opcode_8201) { } -alpha8201_cpu_device::alpha8201_cpu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, u32 clock, const char *shortname, const char *source) - : cpu_device(mconfig, type, name, tag, owner, clock, shortname, source) +alpha8201_cpu_device::alpha8201_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, const s_opcode *opmap) + : cpu_device(mconfig, type, tag, owner, clock) , m_program_config("program", ENDIANNESS_LITTLE, 8, 10, 0) , m_io_config("io", ENDIANNESS_LITTLE, 8, 6, 0) - , m_opmap(opcode_8201) + , m_opmap(opmap) { } alpha8301_cpu_device::alpha8301_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : alpha8201_cpu_device(mconfig, ALPHA8301L, "ALPHA-8301L", tag, owner, clock, "alpha8301l", __FILE__) + : alpha8201_cpu_device(mconfig, ALPHA8301L, tag, owner, clock, opcode_8301) { - m_opmap = opcode_8301; } diff --git a/src/devices/cpu/alph8201/alph8201.h b/src/devices/cpu/alph8201/alph8201.h index 2f098b4d779..e5c3151d341 100644 --- a/src/devices/cpu/alph8201/alph8201.h +++ b/src/devices/cpu/alph8201/alph8201.h @@ -20,8 +20,8 @@ cpu/alph8201/ will be removed when the alpha 8304 has been dumped. * * \**************************************************************************/ -#ifndef __ALPH8201_H__ -#define __ALPH8201_H__ +#ifndef MAME_CPU_ALPH8201_ALPH8201_H +#define MAME_CPU_ALPH8201_ALPH8201_H #pragma once @@ -51,9 +51,18 @@ class alpha8201_cpu_device : public cpu_device public: // construction/destruction alpha8201_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); - alpha8201_cpu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, u32 clock, const char *shortname, const char *source); protected: + typedef void ( alpha8201_cpu_device::*opcode_fun ) (); + + /* The opcode table now is a combination of cycle counts and function pointers */ + struct s_opcode { + unsigned cycles; + opcode_fun opcode_func; + }; + + alpha8201_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, const s_opcode *opmap); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -352,14 +361,6 @@ protected: void save_zc() { m_savez = m_zf; m_savec = m_cf; }; void rest_zc() { m_zf = m_savez; m_cf = m_savec; }; - typedef void ( alpha8201_cpu_device::*opcode_fun ) (); - - /* The opcode table now is a combination of cycle counts and function pointers */ - struct s_opcode { - unsigned cycles; - opcode_fun opcode_func; - }; - static const s_opcode opcode_8201[256]; static const s_opcode opcode_8301[256]; @@ -393,7 +394,7 @@ protected: int m_icount; int m_inst_cycles; - const s_opcode *m_opmap; + const s_opcode *const m_opmap; // Used for import/export only u8 m_sp; @@ -410,8 +411,7 @@ public: }; -extern const device_type ALPHA8201L; -extern const device_type ALPHA8301L; - +DECLARE_DEVICE_TYPE(ALPHA8201L, alpha8201_cpu_device) +DECLARE_DEVICE_TYPE(ALPHA8301L, alpha8301_cpu_device) -#endif /* __ALPH8201_H__ */ +#endif // MAME_CPU_ALPH8201_ALPH8201_H diff --git a/src/devices/cpu/alto2/alto2cpu.cpp b/src/devices/cpu/alto2/alto2cpu.cpp index 56b2e89ebb3..ad6fae3c282 100644 --- a/src/devices/cpu/alto2/alto2cpu.cpp +++ b/src/devices/cpu/alto2/alto2cpu.cpp @@ -16,7 +16,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type ALTO2 = device_creator; +DEFINE_DEVICE_TYPE(ALTO2, alto2_cpu_device, "alto2_cpu", "Xerox Alto-II") //************************************************************************** // LOGGING AND DEBUGGING @@ -122,7 +122,7 @@ ADDRESS_MAP_END //------------------------------------------------- alto2_cpu_device::alto2_cpu_device(const machine_config& mconfig, const char* tag, device_t* owner, uint32_t clock) : - cpu_device(mconfig, ALTO2, "Xerox Alto-II", tag, owner, clock, "alto2_cpu", __FILE__), + cpu_device(mconfig, ALTO2, tag, owner, clock), m_ucode_config("ucode", ENDIANNESS_BIG, 32, 12, -2 ), m_const_config("const", ENDIANNESS_BIG, 16, 8, -1 ), m_iomem_config("iomem", ENDIANNESS_BIG, 16, 17, -1 ), diff --git a/src/devices/cpu/alto2/alto2cpu.h b/src/devices/cpu/alto2/alto2cpu.h index 58dbefd0984..440a8f972ba 100644 --- a/src/devices/cpu/alto2/alto2cpu.h +++ b/src/devices/cpu/alto2/alto2cpu.h @@ -8,6 +8,8 @@ #ifndef MAME_DEVICES_CPU_ALTO2_H #define MAME_DEVICES_CPU_ALTO2_H +#pragma once + #include "machine/diablo_hd.h" #include "sound/spkrdev.h" @@ -937,6 +939,6 @@ private: #include "a2kwd.h" }; -extern const device_type ALTO2; +DECLARE_DEVICE_TYPE(ALTO2, alto2_cpu_device) #endif // MAME_DEVICES_CPU_ALTO2_H diff --git a/src/devices/cpu/am29000/am29000.cpp b/src/devices/cpu/am29000/am29000.cpp index 8960629ea9e..691b23edfb3 100644 --- a/src/devices/cpu/am29000/am29000.cpp +++ b/src/devices/cpu/am29000/am29000.cpp @@ -19,7 +19,7 @@ #include "am29000.h" -const device_type AM29000 = device_creator; +DEFINE_DEVICE_TYPE(AM29000, am29000_cpu_device, "am29000", "AMC Am29000") /*************************************************************************** @@ -79,7 +79,7 @@ const device_type AM29000 = device_creator; ***************************************************************************/ am29000_cpu_device::am29000_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cpu_device(mconfig, AM29000, "AMD Am29000", tag, owner, clock, "am29000", __FILE__) + : cpu_device(mconfig, AM29000, tag, owner, clock) , m_program_config("program", ENDIANNESS_BIG, 32, 32, 0) , m_io_config("io", ENDIANNESS_BIG, 32, 32, 0) , m_data_config("data", ENDIANNESS_BIG, 32, 32, 0) diff --git a/src/devices/cpu/am29000/am29000.h b/src/devices/cpu/am29000/am29000.h index d685e5c7272..16b8ebccd67 100644 --- a/src/devices/cpu/am29000/am29000.h +++ b/src/devices/cpu/am29000/am29000.h @@ -8,10 +8,11 @@ ***************************************************************************/ +#ifndef MAME_CPU_AM29000_AM29000_H +#define MAME_CPU_AM29000_AM29000_H + #pragma once -#ifndef __AM29000_H__ -#define __AM29000_H__ /*************************************************************************** @@ -431,7 +432,7 @@ enum #define AM29000_INTR3 3 -class am29000_cpu_device : public cpu_device +class am29000_cpu_device : public cpu_device { public: // construction/destruction @@ -655,7 +656,6 @@ protected: }; -extern const device_type AM29000; - +DECLARE_DEVICE_TYPE(AM29000, am29000_cpu_device) -#endif /* __AM29000_H__ */ +#endif // MAME_CPU_AM29000_AM29000_H diff --git a/src/devices/cpu/amis2000/amis2000.cpp b/src/devices/cpu/amis2000/amis2000.cpp index 5d1436d2fe6..e1bdc09970e 100644 --- a/src/devices/cpu/amis2000/amis2000.cpp +++ b/src/devices/cpu/amis2000/amis2000.cpp @@ -26,11 +26,11 @@ // S2000 is the most basic one, 64 nibbles internal RAM and 1KB internal ROM // S2150 increased RAM to 80 nibbles and ROM to 1.5KB // high-voltage output versions of these chips (S2000A and S2150A) are identical overall -const device_type AMI_S2000 = device_creator; -const device_type AMI_S2150 = device_creator; +DEFINE_DEVICE_TYPE(AMI_S2000, amis2000_cpu_device, "amis2000", "AMI S2000") +DEFINE_DEVICE_TYPE(AMI_S2150, amis2150_cpu_device, "amis2150", "AMI S2150") // S2152 is an extension to S2150, removing the K pins and adding a better timer -const device_type AMI_S2152 = device_creator; +DEFINE_DEVICE_TYPE(AMI_S2152, amis2152_cpu_device, "amis2152", "AMI S2152") // internal memory maps @@ -57,15 +57,15 @@ ADDRESS_MAP_END // device definitions amis2000_cpu_device::amis2000_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : amis2000_base_device(mconfig, AMI_S2000, "AMI S2000", tag, owner, clock, 2, 10, 3, 13, ADDRESS_MAP_NAME(program_1k), 6, ADDRESS_MAP_NAME(data_64x4), "amis2000", __FILE__) + : amis2000_base_device(mconfig, AMI_S2000, tag, owner, clock, 2, 10, 3, 13, ADDRESS_MAP_NAME(program_1k), 6, ADDRESS_MAP_NAME(data_64x4)) { } amis2150_cpu_device::amis2150_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : amis2000_base_device(mconfig, AMI_S2150, "AMI S2150", tag, owner, clock, 3, 11, 3, 13, ADDRESS_MAP_NAME(program_1_5k), 7, ADDRESS_MAP_NAME(data_80x4), "amis2150", __FILE__) + : amis2000_base_device(mconfig, AMI_S2150, tag, owner, clock, 3, 11, 3, 13, ADDRESS_MAP_NAME(program_1_5k), 7, ADDRESS_MAP_NAME(data_80x4)) { } amis2152_cpu_device::amis2152_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : amis2000_base_device(mconfig, AMI_S2152, "AMI S2152", tag, owner, clock, 3, 11, 3, 13, ADDRESS_MAP_NAME(program_1_5k), 7, ADDRESS_MAP_NAME(data_80x4), "amis2152", __FILE__) + : amis2000_base_device(mconfig, AMI_S2152, tag, owner, clock, 3, 11, 3, 13, ADDRESS_MAP_NAME(program_1_5k), 7, ADDRESS_MAP_NAME(data_80x4)) { } diff --git a/src/devices/cpu/amis2000/amis2000.h b/src/devices/cpu/amis2000/amis2000.h index d411a1b5f60..dc4b6d8e832 100644 --- a/src/devices/cpu/amis2000/amis2000.h +++ b/src/devices/cpu/amis2000/amis2000.h @@ -6,9 +6,10 @@ */ -#ifndef _AMIS2000_H_ -#define _AMIS2000_H_ +#ifndef MAME_CPU_AMIS2000_AMIS2000_H +#define MAME_CPU_AMIS2000_AMIS2000_H +#pragma once // generic input pins (4 bits each) @@ -42,9 +43,19 @@ class amis2000_base_device : public cpu_device { public: + // static configuration helpers + template static devcb_base &set_read_k_callback(device_t &device, Object &&cb) { return downcast(device).m_read_k.set_callback(std::forward(cb)); } + template static devcb_base &set_read_i_callback(device_t &device, Object &&cb) { return downcast(device).m_read_i.set_callback(std::forward(cb)); } + template static devcb_base &set_read_d_callback(device_t &device, Object &&cb) { return downcast(device).m_read_d.set_callback(std::forward(cb)); } + template static devcb_base &set_write_d_callback(device_t &device, Object &&cb) { return downcast(device).m_write_d.set_callback(std::forward(cb)); } + template static devcb_base &set_write_a_callback(device_t &device, Object &&cb) { return downcast(device).m_write_a.set_callback(std::forward(cb)); } + template static devcb_base &set_write_f_callback(device_t &device, Object &&cb) { return downcast(device).m_write_f.set_callback(std::forward(cb)); } + static void set_7seg_table(device_t &device, const u8 *ptr) { downcast(device).m_7seg_table = ptr; } + +protected: // construction/destruction - amis2000_base_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, u32 clock, u8 bu_bits, u8 callstack_bits, u8 callstack_depth, int prgwidth, address_map_constructor program, int datawidth, address_map_constructor data, const char *shortname, const char *source) - : cpu_device(mconfig, type, name, tag, owner, clock, shortname, source) + amis2000_base_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, u8 bu_bits, u8 callstack_bits, u8 callstack_depth, int prgwidth, address_map_constructor program, int datawidth, address_map_constructor data) + : cpu_device(mconfig, type, tag, owner, clock) , m_program_config("program", ENDIANNESS_BIG, 8, prgwidth, 0, program) , m_data_config("data", ENDIANNESS_BIG, 8, datawidth, 0, data) , m_bu_bits(bu_bits) @@ -57,18 +68,9 @@ public: , m_write_d(*this) , m_write_a(*this) , m_write_f(*this) - { } - - // static configuration helpers - template static devcb_base &set_read_k_callback(device_t &device, _Object object) { return downcast(device).m_read_k.set_callback(object); } - template static devcb_base &set_read_i_callback(device_t &device, _Object object) { return downcast(device).m_read_i.set_callback(object); } - template static devcb_base &set_read_d_callback(device_t &device, _Object object) { return downcast(device).m_read_d.set_callback(object); } - template static devcb_base &set_write_d_callback(device_t &device, _Object object) { return downcast(device).m_write_d.set_callback(object); } - template static devcb_base &set_write_a_callback(device_t &device, _Object object) { return downcast(device).m_write_a.set_callback(object); } - template static devcb_base &set_write_f_callback(device_t &device, _Object object) { return downcast(device).m_write_f.set_callback(object); } - static void set_7seg_table(device_t &device, const u8 *ptr) { downcast(device).m_7seg_table = ptr; } + { + } -protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -236,10 +238,8 @@ protected: }; +DECLARE_DEVICE_TYPE(AMI_S2000, amis2000_cpu_device) +DECLARE_DEVICE_TYPE(AMI_S2150, amis2150_cpu_device) +DECLARE_DEVICE_TYPE(AMI_S2152, amis2152_cpu_device) -extern const device_type AMI_S2000; -extern const device_type AMI_S2150; -extern const device_type AMI_S2152; - - -#endif /* _AMIS2000_H_ */ +#endif // MAME_CPU_AMIS2000_AMIS2000_H diff --git a/src/devices/cpu/apexc/apexc.cpp b/src/devices/cpu/apexc/apexc.cpp index 46ead8310c1..aad7126433d 100644 --- a/src/devices/cpu/apexc/apexc.cpp +++ b/src/devices/cpu/apexc/apexc.cpp @@ -326,11 +326,11 @@ field: X address D Function Y address D (part 2) */ #include "emu.h" -#include "debugger.h" #include "apexc.h" +#include "debugger.h" -const device_type APEXC = device_creator; +DEFINE_DEVICE_TYPE(APEXC, apexc_cpu_device, "apexc_cpu", "APEXC") /* decrement ICount by n */ @@ -338,7 +338,7 @@ const device_type APEXC = device_creator; apexc_cpu_device::apexc_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cpu_device(mconfig, APEXC, "APEXC", tag, owner, clock, "apexc_cpu", __FILE__) + : cpu_device(mconfig, APEXC, tag, owner, clock) , m_program_config("program", ENDIANNESS_BIG, 32, 15, 0) , m_io_config("io", ENDIANNESS_BIG, 8, 1, 0) , m_a(0) diff --git a/src/devices/cpu/apexc/apexc.h b/src/devices/cpu/apexc/apexc.h index dfb9bb5d58d..bf753180dd8 100644 --- a/src/devices/cpu/apexc/apexc.h +++ b/src/devices/cpu/apexc/apexc.h @@ -1,10 +1,10 @@ // license:BSD-3-Clause // copyright-holders:Raphael Nabet /* register names for apexc_get_reg & apexc_set_reg */ -#pragma once +#ifndef MAME_CPU_APEXC_APEXC_H +#define MAME_CPU_APEXC_APEXC_H -#ifndef __APEXC_H__ -#define __APEXC_H__ +#pragma once enum { @@ -81,7 +81,6 @@ protected: }; -extern const device_type APEXC; - +DECLARE_DEVICE_TYPE(APEXC, apexc_cpu_device) -#endif /* __APEXC_H__ */ +#endif // MAME_CPU_APEXC_APEXC_H diff --git a/src/devices/cpu/arc/arc.cpp b/src/devices/cpu/arc/arc.cpp index c1ebd6f2eff..eb71302468a 100644 --- a/src/devices/cpu/arc/arc.cpp +++ b/src/devices/cpu/arc/arc.cpp @@ -14,18 +14,19 @@ #include "arc.h" -const device_type ARC = device_creator; +DEFINE_DEVICE_TYPE(ARC, arc_cpu_device, "arc_a4", "ARCtangent A4") -arc_device::arc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cpu_device(mconfig, ARC, "ARCtangent A4", tag, owner, clock, "arc", __FILE__) - , m_program_config("program", ENDIANNESS_BIG, 32, 24, 0), m_pc(0), m_program(nullptr), m_icount(0), m_debugger_temp(0) +arc_cpu_device::arc_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : cpu_device(mconfig, ARC, tag, owner, clock) + , m_program_config("program", ENDIANNESS_BIG, 32, 24, 0) + , m_pc(0), m_program(nullptr), m_icount(0), m_debugger_temp(0) // some docs describe these as 'middle endian'?! { } -offs_t arc_device::disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) +offs_t arc_cpu_device::disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) { extern CPU_DISASSEMBLE( arc ); return CPU_DISASSEMBLE_NAME(arc)(this, stream, pc, oprom, opram, options); @@ -36,26 +37,26 @@ offs_t arc_device::disasm_disassemble(std::ostream &stream, offs_t pc, const uin /*****************************************************************************/ -void arc_device::unimplemented_opcode(uint16_t op) +void arc_cpu_device::unimplemented_opcode(uint16_t op) { fatalerror("arc: unknown opcode %04x at %04x\n", op, m_pc << 2); } /*****************************************************************************/ -uint32_t arc_device::READ32(uint32_t address) +uint32_t arc_cpu_device::READ32(uint32_t address) { return m_program->read_dword(address << 2); } -void arc_device::WRITE32(uint32_t address, uint32_t data) +void arc_cpu_device::WRITE32(uint32_t address, uint32_t data) { m_program->write_dword(address << 2, data); } /*****************************************************************************/ -void arc_device::device_start() +void arc_cpu_device::device_start() { m_pc = 0; @@ -75,7 +76,7 @@ void arc_device::device_start() // to a known location where it can be read //------------------------------------------------- -void arc_device::state_export(const device_state_entry &entry) +void arc_cpu_device::state_export(const device_state_entry &entry) { switch (entry.index()) { @@ -92,7 +93,7 @@ void arc_device::state_export(const device_state_entry &entry) // after it has been set //------------------------------------------------- -void arc_device::state_import(const device_state_entry &entry) +void arc_cpu_device::state_import(const device_state_entry &entry) { switch (entry.index()) { @@ -103,19 +104,19 @@ void arc_device::state_import(const device_state_entry &entry) } } -void arc_device::device_reset() +void arc_cpu_device::device_reset() { m_pc = 0x00000000; } /*****************************************************************************/ -void arc_device::execute_set_input(int irqline, int state) +void arc_cpu_device::execute_set_input(int irqline, int state) { } -void arc_device::execute_run() +void arc_cpu_device::execute_run() { //uint32_t lres; //lres = 0; diff --git a/src/devices/cpu/arc/arc.h b/src/devices/cpu/arc/arc.h index 04639abf17c..78975cdad87 100644 --- a/src/devices/cpu/arc/arc.h +++ b/src/devices/cpu/arc/arc.h @@ -7,21 +7,21 @@ \*********************************/ -#pragma once +#ifndef MAME_CPU_ARC_ARC_H +#define MAME_CPU_ARC_ARC_H -#ifndef __ARC_H__ -#define __ARC_H__ +#pragma once enum { ARC_PC = STATE_GENPC }; -class arc_device : public cpu_device +class arc_cpu_device : public cpu_device { public: // construction/destruction - arc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + arc_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); protected: // device-level overrides @@ -74,7 +74,6 @@ private: }; -extern const device_type ARC; - +DECLARE_DEVICE_TYPE(ARC, arc_cpu_device) -#endif /* __ARC_H__ */ +#endif // MAME_CPU_ARC_ARC_H diff --git a/src/devices/cpu/arcompact/arcompact.cpp b/src/devices/cpu/arcompact/arcompact.cpp index d4fdf778088..331f9e9d448 100644 --- a/src/devices/cpu/arcompact/arcompact.cpp +++ b/src/devices/cpu/arcompact/arcompact.cpp @@ -24,7 +24,7 @@ #include "arcompact_common.h" -const device_type ARCA5 = device_creator; +DEFINE_DEVICE_TYPE(ARCA5, arcompact_device, "arc_a5", "ARCtangent A5") READ32_MEMBER( arcompact_device::arcompact_auxreg002_LPSTART_r) { return m_LP_START&0xfffffffe; } @@ -51,7 +51,7 @@ ADDRESS_MAP_END #define AUX_SPACE_ADDRESS_WIDTH 64 // but the MAME core requires us to use power of 2 values for >32 arcompact_device::arcompact_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cpu_device(mconfig, ARCA5, "ARCtangent-A5", tag, owner, clock, "arca5", __FILE__) + : cpu_device(mconfig, ARCA5, tag, owner, clock) , m_program_config("program", ENDIANNESS_LITTLE, 32, 32, 0) // some docs describe these as 'middle endian'?! , m_io_config( "io", ENDIANNESS_LITTLE, 32, AUX_SPACE_ADDRESS_WIDTH, 0, ADDRESS_MAP_NAME( arcompact_auxreg_map ) ) { diff --git a/src/devices/cpu/arcompact/arcompact.h b/src/devices/cpu/arcompact/arcompact.h index 227abe8f912..78cc1e26ed5 100644 --- a/src/devices/cpu/arcompact/arcompact.h +++ b/src/devices/cpu/arcompact/arcompact.h @@ -6,10 +6,10 @@ \*********************************/ -#pragma once +#ifndef MAME_CPU_ARCOMPACT_ARCOMPACT_H +#define MAME_CPU_ARCOMPACT_ARCOMPACT_H -#ifndef __ARCOMPACT_H__ -#define __ARCOMPACT_H__ +#pragma once enum { @@ -894,7 +894,7 @@ private: #define CONDITION_LT ((STATUS32_CHECK_N && !STATUS32_CHECK_V) || (!STATUS32_CHECK_N && STATUS32_CHECK_V)) #define CONDITION_MI (STATUS32_CHECK_N) -extern const device_type ARCA5; +DECLARE_DEVICE_TYPE(ARCA5, arcompact_device) -#endif /* __ARCOMPACT_H__ */ +#endif // MAME_CPU_ARCOMPACT_ARCOMPACT_H diff --git a/src/devices/cpu/arm/arm.cpp b/src/devices/cpu/arm/arm.cpp index 1fba0a93f34..ab8dff26921 100644 --- a/src/devices/cpu/arm/arm.cpp +++ b/src/devices/cpu/arm/arm.cpp @@ -18,8 +18,8 @@ */ #include "emu.h" -#include "debugger.h" #include "arm.h" +#include "debugger.h" CPU_DISASSEMBLE( arm ); CPU_DISASSEMBLE( arm_be ); @@ -224,32 +224,28 @@ enum /***************************************************************************/ -const device_type ARM = device_creator; -const device_type ARM_BE = device_creator; +DEFINE_DEVICE_TYPE(ARM, arm_cpu_device, "arm_le", "ARM (little)") +DEFINE_DEVICE_TYPE(ARM_BE, arm_be_cpu_device, "arm_be", "ARM (big)") arm_cpu_device::arm_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cpu_device(mconfig, ARM, "ARM", tag, owner, clock, "arm", __FILE__) - , m_program_config("program", ENDIANNESS_LITTLE, 32, 26, 0) - , m_endian(ENDIANNESS_LITTLE) - , m_copro_type(ARM_COPRO_TYPE_UNKNOWN_CP15) + : arm_cpu_device(mconfig, ARM, tag, owner, clock, ENDIANNESS_LITTLE) { - memset(m_sArmRegister, 0x00, sizeof(m_sArmRegister)); } -arm_cpu_device::arm_cpu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source, endianness_t endianness) - : cpu_device(mconfig, type, name, tag, owner, clock, shortname, source) +arm_cpu_device::arm_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, endianness_t endianness) + : cpu_device(mconfig, type, tag, owner, clock) , m_program_config("program", endianness, 32, 26, 0) , m_endian(endianness) - , m_copro_type(ARM_COPRO_TYPE_UNKNOWN_CP15) + , m_copro_type(copro_type::UNKNOWN_CP15) { - memset(m_sArmRegister, 0x00, sizeof(m_sArmRegister)); + std::fill(std::begin(m_sArmRegister), std::end(m_sArmRegister), 0); } arm_be_cpu_device::arm_be_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : arm_cpu_device(mconfig, ARM_BE, "ARM (big endian)", tag, owner, clock, "arm_be", __FILE__, ENDIANNESS_BIG) + : arm_cpu_device(mconfig, ARM_BE, tag, owner, clock, ENDIANNESS_BIG) { } @@ -420,7 +416,7 @@ void arm_cpu_device::execute_run() } else if ((insn & 0x0f000000u) == 0x0e000000u) /* Coprocessor */ { - if (m_copro_type == ARM_COPRO_TYPE_VL86C020) + if (m_copro_type == copro_type::VL86C020) HandleCoProVL86C020(insn); else HandleCoPro(insn); @@ -679,7 +675,7 @@ void arm_cpu_device::HandleMemSingle( uint32_t insn ) In other cases, 4 is subracted from R15 here to account for pipelining. */ - if (m_copro_type == ARM_COPRO_TYPE_VL86C020 || (cpu_read32(rnv)&3)==0) + if (m_copro_type == copro_type::VL86C020 || (cpu_read32(rnv)&3)==0) R15 -= 4; m_icount -= S_CYCLE + N_CYCLE; diff --git a/src/devices/cpu/arm/arm.h b/src/devices/cpu/arm/arm.h index 4c8dbec4384..e3d1e77dfec 100644 --- a/src/devices/cpu/arm/arm.h +++ b/src/devices/cpu/arm/arm.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Bryan McPhail -#pragma once +#ifndef MAME_CPU_ARM_ARM_H +#define MAME_CPU_ARM_ARM_H -#ifndef __ARM_H__ -#define __ARM_H__ +#pragma once /**************************************************************************************************** * INTERRUPT CONSTANTS @@ -16,36 +16,36 @@ * PUBLIC FUNCTIONS ***************************************************************************************************/ -enum -{ - ARM_COPRO_TYPE_UNKNOWN_CP15 = 0, - ARM_COPRO_TYPE_VL86C020 -}; - #define MCFG_ARM_COPRO(_type) \ - arm_cpu_device::set_copro_type(*device, _type); - - -enum -{ - ARM32_PC=0, - ARM32_R0, ARM32_R1, ARM32_R2, ARM32_R3, ARM32_R4, ARM32_R5, ARM32_R6, ARM32_R7, - ARM32_R8, ARM32_R9, ARM32_R10, ARM32_R11, ARM32_R12, ARM32_R13, ARM32_R14, ARM32_R15, - ARM32_FR8, ARM32_FR9, ARM32_FR10, ARM32_FR11, ARM32_FR12, ARM32_FR13, ARM32_FR14, - ARM32_IR13, ARM32_IR14, ARM32_SR13, ARM32_SR14 -}; + arm_cpu_device::set_copro_type(*device, arm_cpu_device::copro_type::_type); class arm_cpu_device : public cpu_device { public: + enum class copro_type : uint8_t + { + UNKNOWN_CP15 = 0, + VL86C020 + }; + // construction/destruction arm_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - arm_cpu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source, endianness_t endianness); - static void set_copro_type(device_t &device, int type) { downcast(device).m_copro_type = type; } + static void set_copro_type(device_t &device, copro_type type) { downcast(device).m_copro_type = type; } protected: + enum + { + ARM32_PC = 0, + ARM32_R0, ARM32_R1, ARM32_R2, ARM32_R3, ARM32_R4, ARM32_R5, ARM32_R6, ARM32_R7, + ARM32_R8, ARM32_R9, ARM32_R10, ARM32_R11, ARM32_R12, ARM32_R13, ARM32_R14, ARM32_R15, + ARM32_FR8, ARM32_FR9, ARM32_FR10, ARM32_FR11, ARM32_FR12, ARM32_FR13, ARM32_FR14, + ARM32_IR13, ARM32_IR14, ARM32_SR13, ARM32_SR14 + }; + + arm_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, endianness_t endianness); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -78,7 +78,7 @@ protected: address_space *m_program; direct_read_data *m_direct; endianness_t m_endian; - uint8_t m_copro_type; + copro_type m_copro_type; void cpu_write32( int addr, uint32_t data ); void cpu_write8( int addr, uint8_t data ); @@ -117,8 +117,7 @@ protected: }; -extern const device_type ARM; -extern const device_type ARM_BE; - +DECLARE_DEVICE_TYPE(ARM, arm_cpu_device) +DECLARE_DEVICE_TYPE(ARM_BE, arm_be_cpu_device) -#endif /* __ARM_H__ */ +#endif // MAME_CPU_ARM_ARM_H diff --git a/src/devices/cpu/arm7/arm7.cpp b/src/devices/cpu/arm7/arm7.cpp index 4933ea18b52..eaeb3052393 100644 --- a/src/devices/cpu/arm7/arm7.cpp +++ b/src/devices/cpu/arm7/arm7.cpp @@ -45,30 +45,23 @@ void (*arm7_coproc_dt_r_callback)(arm_state *arm, uint32_t insn, uint32_t *prn, void (*arm7_coproc_dt_w_callback)(arm_state *arm, uint32_t insn, uint32_t *prn, void (*write32)(arm_state *arm, uint32_t addr, uint32_t data)); -const device_type ARM7 = device_creator; -const device_type ARM7_BE = device_creator; -const device_type ARM7500 = device_creator; -const device_type ARM9 = device_creator; -const device_type ARM920T = device_creator; -const device_type PXA255 = device_creator; -const device_type SA1110 = device_creator; +DEFINE_DEVICE_TYPE(ARM7, arm7_cpu_device, "arm7_le", "ARM7 (little)") +DEFINE_DEVICE_TYPE(ARM7_BE, arm7_be_cpu_device, "arm7_be", "ARM7 (big)") +DEFINE_DEVICE_TYPE(ARM7500, arm7500_cpu_device, "arm7500", "ARM7500") +DEFINE_DEVICE_TYPE(ARM9, arm9_cpu_device, "arm9", "ARM9") +DEFINE_DEVICE_TYPE(ARM920T, arm920t_cpu_device, "arm920t", "ARM920T") +DEFINE_DEVICE_TYPE(PXA255, pxa255_cpu_device, "pxa255", "Intel XScale PXA255") +DEFINE_DEVICE_TYPE(SA1110, sa1110_cpu_device, "sa1110", "Intel StrongARM SA-1110") arm7_cpu_device::arm7_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cpu_device(mconfig, ARM7, "ARM7", tag, owner, clock, "arm7", __FILE__) - , m_program_config("program", ENDIANNESS_LITTLE, 32, 32, 0) - , m_endian(ENDIANNESS_LITTLE) - , m_archRev(4) // ARMv4 - , m_archFlags(eARM_ARCHFLAGS_T) // has Thumb - , m_copro_id(0x41 | (1 << 23) | (7 << 12)) // <-- where did this come from? - , m_pc(0) + : arm7_cpu_device(mconfig, ARM7, tag, owner, clock, 4, eARM_ARCHFLAGS_T, ENDIANNESS_LITTLE) { - memset(m_r, 0x00, sizeof(m_r)); } -arm7_cpu_device::arm7_cpu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source, uint8_t archRev, uint8_t archFlags, endianness_t endianness) - : cpu_device(mconfig, type, name, tag, owner, clock, shortname, source) +arm7_cpu_device::arm7_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint8_t archRev, uint8_t archFlags, endianness_t endianness) + : cpu_device(mconfig, type, tag, owner, clock) , m_program_config("program", endianness, 32, 32, 0) , m_endian(endianness) , m_archRev(archRev) @@ -81,20 +74,20 @@ arm7_cpu_device::arm7_cpu_device(const machine_config &mconfig, device_type type arm7_be_cpu_device::arm7_be_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : arm7_cpu_device(mconfig, ARM7_BE, "ARM7 (big endian)", tag, owner, clock, "arm7_be", __FILE__, 4, eARM_ARCHFLAGS_T, ENDIANNESS_BIG) + : arm7_cpu_device(mconfig, ARM7_BE, tag, owner, clock, 4, eARM_ARCHFLAGS_T, ENDIANNESS_BIG) { } arm7500_cpu_device::arm7500_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : arm7_cpu_device(mconfig, ARM7500, "ARM7500", tag, owner, clock, "arm7500", __FILE__, 3, eARM_ARCHFLAGS_MODE26) + : arm7_cpu_device(mconfig, ARM7500, tag, owner, clock, 3, eARM_ARCHFLAGS_MODE26, ENDIANNESS_LITTLE) { m_copro_id = (0x41 << 24) | (0 << 20) | (1 << 16) | (0x710 << 4) | (0 << 0); } arm9_cpu_device::arm9_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : arm7_cpu_device(mconfig, ARM9, "ARM9", tag, owner, clock, "arm9", __FILE__, 5, eARM_ARCHFLAGS_T | eARM_ARCHFLAGS_E) + : arm7_cpu_device(mconfig, ARM9, tag, owner, clock, 5, eARM_ARCHFLAGS_T | eARM_ARCHFLAGS_E, ENDIANNESS_LITTLE) // ARMv5 // has TE extensions { @@ -102,7 +95,7 @@ arm9_cpu_device::arm9_cpu_device(const machine_config &mconfig, const char *tag, arm920t_cpu_device::arm920t_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : arm7_cpu_device(mconfig, ARM920T, "ARM920T", tag, owner, clock, "arm920t", __FILE__, 4, eARM_ARCHFLAGS_T) + : arm7_cpu_device(mconfig, ARM920T, tag, owner, clock, 4, eARM_ARCHFLAGS_T, ENDIANNESS_LITTLE) // ARMv4 // has T extension { @@ -111,7 +104,7 @@ arm920t_cpu_device::arm920t_cpu_device(const machine_config &mconfig, const char pxa255_cpu_device::pxa255_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : arm7_cpu_device(mconfig, PXA255, "PXA255", tag, owner, clock, "pxa255", __FILE__, 5, eARM_ARCHFLAGS_T | eARM_ARCHFLAGS_E | eARM_ARCHFLAGS_XSCALE) + : arm7_cpu_device(mconfig, PXA255, tag, owner, clock, 5, eARM_ARCHFLAGS_T | eARM_ARCHFLAGS_E | eARM_ARCHFLAGS_XSCALE, ENDIANNESS_LITTLE) // ARMv5 // has TE and XScale extensions { @@ -119,7 +112,7 @@ pxa255_cpu_device::pxa255_cpu_device(const machine_config &mconfig, const char * sa1110_cpu_device::sa1110_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : arm7_cpu_device(mconfig, SA1110, "SA1110", tag, owner, clock, "sa1110", __FILE__, 4, eARM_ARCHFLAGS_SA) + : arm7_cpu_device(mconfig, SA1110, tag, owner, clock, 4, eARM_ARCHFLAGS_SA, ENDIANNESS_LITTLE) // ARMv4 // has StrongARM, no Thumb, no Enhanced DSP { diff --git a/src/devices/cpu/arm7/arm7.h b/src/devices/cpu/arm7/arm7.h index d243c788e00..ca994db6a32 100644 --- a/src/devices/cpu/arm7/arm7.h +++ b/src/devices/cpu/arm7/arm7.h @@ -18,10 +18,10 @@ ******************************************************************************/ -#pragma once +#ifndef MAME_CPU_ARM7_ARM7_H +#define MAME_CPU_ARM7_ARM7_H -#ifndef __ARM7_H__ -#define __ARM7_H__ +#pragma once #include "cpu/drcfe.h" #include "cpu/drcuml.h" @@ -51,9 +51,10 @@ class arm7_cpu_device : public cpu_device public: // construction/destruction arm7_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - arm7_cpu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source, uint8_t archRev, uint8_t archFlags, endianness_t endianness = ENDIANNESS_LITTLE); protected: + arm7_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint8_t archRev, uint8_t archFlags, endianness_t endianness); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -506,7 +507,6 @@ class arm7_be_cpu_device : public arm7_cpu_device public: // construction/destruction arm7_be_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - }; @@ -515,7 +515,6 @@ class arm7500_cpu_device : public arm7_cpu_device public: // construction/destruction arm7500_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - }; @@ -524,7 +523,6 @@ class arm9_cpu_device : public arm7_cpu_device public: // construction/destruction arm9_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - }; @@ -533,7 +531,6 @@ class arm920t_cpu_device : public arm7_cpu_device public: // construction/destruction arm920t_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - }; @@ -542,7 +539,6 @@ class pxa255_cpu_device : public arm7_cpu_device public: // construction/destruction pxa255_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - }; @@ -551,16 +547,15 @@ class sa1110_cpu_device : public arm7_cpu_device public: // construction/destruction sa1110_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - }; -extern const device_type ARM7; -extern const device_type ARM7_BE; -extern const device_type ARM7500; -extern const device_type ARM9; -extern const device_type ARM920T; -extern const device_type PXA255; -extern const device_type SA1110; +DECLARE_DEVICE_TYPE(ARM7, arm7_cpu_device) +DECLARE_DEVICE_TYPE(ARM7_BE, arm7_be_cpu_device) +DECLARE_DEVICE_TYPE(ARM7500, arm7500_cpu_device) +DECLARE_DEVICE_TYPE(ARM9, arm9_cpu_device) +DECLARE_DEVICE_TYPE(ARM920T, arm920t_cpu_device) +DECLARE_DEVICE_TYPE(PXA255, pxa255_cpu_device) +DECLARE_DEVICE_TYPE(SA1110, sa1110_cpu_device) -#endif /* __ARM7_H__ */ +#endif // MAME_CPU_ARM7_ARM7_H diff --git a/src/devices/cpu/arm7/lpc210x.cpp b/src/devices/cpu/arm7/lpc210x.cpp index d9b21e9d5c1..e45b80461c0 100644 --- a/src/devices/cpu/arm7/lpc210x.cpp +++ b/src/devices/cpu/arm7/lpc210x.cpp @@ -15,7 +15,7 @@ #include "emu.h" #include "lpc210x.h" -const device_type LPC2103 = device_creator; +DEFINE_DEVICE_TYPE(LPC2103, lpc210x_device, "lpc2103", "NXP LPC2103") static ADDRESS_MAP_START( lpc2103_map, AS_PROGRAM, 32, lpc210x_device ) AM_RANGE(0x00000000, 0x00007fff) AM_READWRITE(flash_r, flash_w) // 32kb internal FLASH rom @@ -41,8 +41,8 @@ ADDRESS_MAP_END lpc210x_device::lpc210x_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : arm7_cpu_device(mconfig, LPC2103, "LPC2103", tag, owner, clock, "lpc2103", __FILE__, 4, eARM_ARCHFLAGS_T, ENDIANNESS_LITTLE), - m_program_config("program", ENDIANNESS_LITTLE, 32, 32, 0, ADDRESS_MAP_NAME(lpc2103_map)) + : arm7_cpu_device(mconfig, LPC2103, tag, owner, clock, 4, eARM_ARCHFLAGS_T, ENDIANNESS_LITTLE) + , m_program_config("program", ENDIANNESS_LITTLE, 32, 32, 0, ADDRESS_MAP_NAME(lpc2103_map)) { } diff --git a/src/devices/cpu/arm7/lpc210x.h b/src/devices/cpu/arm7/lpc210x.h index 581560a3a62..de71075314c 100644 --- a/src/devices/cpu/arm7/lpc210x.h +++ b/src/devices/cpu/arm7/lpc210x.h @@ -1,10 +1,10 @@ // license:BSD-3-Clause // copyright-holders:David Haywood -#pragma once +#ifndef MAME_CPU_ARM7_LPC2103_H +#define MAME_CPU_ARM7_LPC2103_H -#ifndef __LPC2103__ -#define __LPC2103__ +#pragma once #include "arm7.h" #include "arm7core.h" @@ -25,9 +25,6 @@ public: // static configuration helpers - // todo, use an appropriate flash type instead - uint8_t m_flash[0x8000]; - DECLARE_READ32_MEMBER(arm_E01FC088_r); DECLARE_READ32_MEMBER(flash_r); @@ -43,8 +40,6 @@ public: void write_timer(address_space &space, int timer, int offset, uint32_t data, uint32_t mem_mask); uint32_t read_timer(address_space &space, int timer, int offset, uint32_t mem_mask); - uint32_t m_TxPR[2]; - // VIC DECLARE_READ32_MEMBER(vic_r); DECLARE_WRITE32_MEMBER(vic_w); @@ -73,31 +68,25 @@ public: DECLARE_READ32_MEMBER(fio_r); DECLARE_WRITE32_MEMBER(fio_w); + // todo, use an appropriate flash type instead + uint8_t m_flash[0x8000]; // needs to be public because the harmony/melody device injects contents with memcpy, yuck + protected: // device-level overrides virtual machine_config_constructor device_mconfig_additions() const override; virtual void device_start() override; virtual void device_reset() override; - virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_0) const override; - - - - + virtual const address_space_config *memory_space_config(address_spacenum spacenum) const override; + uint32_t m_TxPR[2]; private: address_space_config m_program_config; - - - - - }; // device type definition -extern const device_type LPC2103; - +DECLARE_DEVICE_TYPE(LPC2103, lpc210x_device) -#endif /// __LPC2103__ +#endif // MAME_CPU_ARM7_LPC2103_H diff --git a/src/devices/cpu/asap/asap.cpp b/src/devices/cpu/asap/asap.cpp index ccf461162d1..17d00735a7a 100644 --- a/src/devices/cpu/asap/asap.cpp +++ b/src/devices/cpu/asap/asap.cpp @@ -12,27 +12,27 @@ ***************************************************************************/ #include "emu.h" -#include "debugger.h" #include "asap.h" +#include "debugger.h" //************************************************************************** // CONSTANTS //************************************************************************** -const uint32_t PS_CFLAG = 0x00000001; -const uint32_t PS_VFLAG = 0x00000002; -const uint32_t PS_ZFLAG = 0x00000004; -const uint32_t PS_NFLAG = 0x00000008; -const uint32_t PS_IFLAG = 0x00000010; -const uint32_t PS_PFLAG = 0x00000020; +constexpr uint32_t PS_CFLAG = 0x00000001; +constexpr uint32_t PS_VFLAG = 0x00000002; +constexpr uint32_t PS_ZFLAG = 0x00000004; +constexpr uint32_t PS_NFLAG = 0x00000008; +constexpr uint32_t PS_IFLAG = 0x00000010; +constexpr uint32_t PS_PFLAG = 0x00000020; -//const int EXCEPTION_RESET = 0; -const int EXCEPTION_TRAP0 = 1; -const int EXCEPTION_TRAPF = 2; -const int EXCEPTION_INTERRUPT = 3; +//constexpr int EXCEPTION_RESET = 0; +constexpr int EXCEPTION_TRAP0 = 1; +constexpr int EXCEPTION_TRAPF = 2; +constexpr int EXCEPTION_INTERRUPT = 3; -const int REGBASE = 0xffe0; +constexpr int REGBASE = 0xffe0; @@ -130,14 +130,14 @@ const asap_device::ophandler asap_device::s_conditiontable[16] = //************************************************************************** // device type definition -const device_type ASAP = device_creator; +DEFINE_DEVICE_TYPE(ASAP, asap_device, "asap", "ASAP") //------------------------------------------------- // asap_device - constructor //------------------------------------------------- asap_device::asap_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cpu_device(mconfig, ASAP, "ASAP", tag, owner, clock, "asap", __FILE__), + : cpu_device(mconfig, ASAP, tag, owner, clock), m_program_config("program", ENDIANNESS_LITTLE, 32, 32), m_pc(0), m_pflag(0), diff --git a/src/devices/cpu/asap/asap.h b/src/devices/cpu/asap/asap.h index 4ac44a9bcdb..1f4c3a6e070 100644 --- a/src/devices/cpu/asap/asap.h +++ b/src/devices/cpu/asap/asap.h @@ -9,10 +9,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_CPU_ASAP_ASAP_H +#define MAME_CPU_ASAP_ASAP_H -#ifndef __ASAP_H__ -#define __ASAP_H__ +#pragma once //************************************************************************** @@ -31,6 +31,44 @@ public: // public interfaces protected: + enum + { + ASAP_PC = 1, + ASAP_PS, + ASAP_R0, + ASAP_R1, + ASAP_R2, + ASAP_R3, + ASAP_R4, + ASAP_R5, + ASAP_R6, + ASAP_R7, + ASAP_R8, + ASAP_R9, + ASAP_R10, + ASAP_R11, + ASAP_R12, + ASAP_R13, + ASAP_R14, + ASAP_R15, + ASAP_R16, + ASAP_R17, + ASAP_R18, + ASAP_R19, + ASAP_R20, + ASAP_R21, + ASAP_R22, + ASAP_R23, + ASAP_R24, + ASAP_R25, + ASAP_R26, + ASAP_R27, + ASAP_R28, + ASAP_R29, + ASAP_R30, + ASAP_R31 + }; + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -222,45 +260,6 @@ protected: // ENUMERATIONS //************************************************************************** -// registers -enum -{ - ASAP_PC = 1, - ASAP_PS, - ASAP_R0, - ASAP_R1, - ASAP_R2, - ASAP_R3, - ASAP_R4, - ASAP_R5, - ASAP_R6, - ASAP_R7, - ASAP_R8, - ASAP_R9, - ASAP_R10, - ASAP_R11, - ASAP_R12, - ASAP_R13, - ASAP_R14, - ASAP_R15, - ASAP_R16, - ASAP_R17, - ASAP_R18, - ASAP_R19, - ASAP_R20, - ASAP_R21, - ASAP_R22, - ASAP_R23, - ASAP_R24, - ASAP_R25, - ASAP_R26, - ASAP_R27, - ASAP_R28, - ASAP_R29, - ASAP_R30, - ASAP_R31 -}; - // input lines enum { @@ -270,7 +269,6 @@ enum // device type definition -extern const device_type ASAP; - +DECLARE_DEVICE_TYPE(ASAP, asap_device) -#endif /* __ASAP_H__ */ +#endif // MAME_CPU_ASAP_ASAP_H diff --git a/src/devices/cpu/avr8/avr8.cpp b/src/devices/cpu/avr8/avr8.cpp index a79ae1d06a7..01193dfa289 100644 --- a/src/devices/cpu/avr8/avr8.cpp +++ b/src/devices/cpu/avr8/avr8.cpp @@ -58,29 +58,25 @@ */ #include "emu.h" -#include "debugger.h" #include "avr8.h" +#include "debugger.h" #define VERBOSE_LEVEL (0) #define ENABLE_VERBOSE_LOG (0) -#if ENABLE_VERBOSE_LOG -static inline void ATTR_PRINTF(3,4) verboselog(uint16_t pc, int n_level, const char *s_fmt, ...) +static inline void ATTR_PRINTF(3, 4) verboselogout(device_t &dev, uint16_t pc, const char *s_fmt, ...) { - if( VERBOSE_LEVEL >= n_level ) - { - va_list v; - char buf[ 32768 ]; - va_start( v, s_fmt ); - vsprintf( buf, s_fmt, v ); - va_end( v ); - logerror( "%05x: %s", pc << 1, buf ); - } + va_list v; + char buf[ 32768 ]; + va_start( v, s_fmt ); + vsprintf( buf, s_fmt, v ); + va_end( v ); + dev.logerror( "%05x: %s", pc << 1, buf ); } -#else -#define verboselog(x,y,z, ...) -#endif + +#define verboselog(x,y,...) do { if (ENABLE_VERBOSE_LOG && (VERBOSE_LEVEL >= y)) verboselogout(*this, x, __VA_ARGS__); } while (false) + //************************************************************************** // ENUMS AND MACROS @@ -171,7 +167,7 @@ enum WGM5_FAST_PWM_OCR }; -//static const char avr8_reg_name[4] = { 'A', 'B', 'C', 'D' }; +static const char avr8_reg_name[4] = { 'A', 'B', 'C', 'D' }; #define SREG_R(b) ((m_r[AVR8_REGIDX_SREG] & (1 << (b))) >> (b)) #define SREG_W(b,v) m_r[AVR8_REGIDX_SREG] = (m_r[AVR8_REGIDX_SREG] & ~(1 << (b))) | ((v) << (b)) @@ -567,10 +563,10 @@ enum // DEVICE INTERFACE //************************************************************************** -const device_type ATMEGA88 = device_creator; -const device_type ATMEGA644 = device_creator; -const device_type ATMEGA1280 = device_creator; -const device_type ATMEGA2560 = device_creator; +DEFINE_DEVICE_TYPE(ATMEGA88, atmega88_device, "atmega88", "ATmega88") +DEFINE_DEVICE_TYPE(ATMEGA644, atmega644_device, "atmega644", "ATmega644") +DEFINE_DEVICE_TYPE(ATMEGA1280, atmega1280_device, "atmega1280", "ATmega1280") +DEFINE_DEVICE_TYPE(ATMEGA2560, atmega2560_device, "atmega2560", "ATmega2560") //************************************************************************** // INTERNAL ADDRESS MAP @@ -597,7 +593,7 @@ ADDRESS_MAP_END //------------------------------------------------- atmega88_device::atmega88_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : avr8_device(mconfig, "ATMEGA88", tag, owner, clock, ATMEGA88, 0x0fff, ADDRESS_MAP_NAME(atmega88_internal_map), CPU_TYPE_ATMEGA88, "atmega88", __FILE__) + : avr8_device(mconfig, tag, owner, clock, ATMEGA88, 0x0fff, ADDRESS_MAP_NAME(atmega88_internal_map), CPU_TYPE_ATMEGA88) { } @@ -606,7 +602,7 @@ atmega88_device::atmega88_device(const machine_config &mconfig, const char *tag, //------------------------------------------------- atmega644_device::atmega644_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : avr8_device(mconfig, "ATMEGA644", tag, owner, clock, ATMEGA644, 0xffff, ADDRESS_MAP_NAME(atmega644_internal_map), CPU_TYPE_ATMEGA644, "atmega644", __FILE__) + : avr8_device(mconfig, tag, owner, clock, ATMEGA644, 0xffff, ADDRESS_MAP_NAME(atmega644_internal_map), CPU_TYPE_ATMEGA644) { } @@ -615,7 +611,7 @@ atmega644_device::atmega644_device(const machine_config &mconfig, const char *ta //------------------------------------------------- atmega1280_device::atmega1280_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : avr8_device(mconfig, "ATMEGA1280", tag, owner, clock, ATMEGA1280, 0x1ffff, ADDRESS_MAP_NAME(atmega1280_internal_map), CPU_TYPE_ATMEGA1280, "atmega1280", __FILE__) + : avr8_device(mconfig, tag, owner, clock, ATMEGA1280, 0x1ffff, ADDRESS_MAP_NAME(atmega1280_internal_map), CPU_TYPE_ATMEGA1280) { } @@ -624,7 +620,7 @@ atmega1280_device::atmega1280_device(const machine_config &mconfig, const char * //------------------------------------------------- atmega2560_device::atmega2560_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : avr8_device(mconfig, "ATMEGA2560", tag, owner, clock, ATMEGA2560, 0x1ffff, ADDRESS_MAP_NAME(atmega2560_internal_map), CPU_TYPE_ATMEGA2560, "atmega2560", __FILE__) + : avr8_device(mconfig, tag, owner, clock, ATMEGA2560, 0x1ffff, ADDRESS_MAP_NAME(atmega2560_internal_map), CPU_TYPE_ATMEGA2560) { } @@ -632,8 +628,8 @@ atmega2560_device::atmega2560_device(const machine_config &mconfig, const char * // avr8_device - constructor //------------------------------------------------- -avr8_device::avr8_device(const machine_config &mconfig, const char *name, const char *tag, device_t *owner, uint32_t clock, const device_type type, uint32_t addr_mask, address_map_constructor internal_map, uint8_t cpu_type, const char *shortname, const char *source) - : cpu_device(mconfig, type, name, tag, owner, clock, shortname, source) +avr8_device::avr8_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock, const device_type type, uint32_t addr_mask, address_map_constructor internal_map, uint8_t cpu_type) + : cpu_device(mconfig, type, tag, owner, clock) , m_shifted_pc(0) , m_program_config("program", ENDIANNESS_LITTLE, 8, 22) , m_data_config("data", ENDIANNESS_LITTLE, 8, 16, 0, internal_map) @@ -1774,7 +1770,7 @@ void avr8_device::timer4_tick() break; default: - verboselog(m_pc, 0, "update_timer4_compare_mode: Unknown waveform generation mode: %02x\n", wgm4); + verboselog(m_pc, 0, "update_timer4_compare_mode: Unknown waveform generation mode: %02x\n", AVR8_WGM4); break; } diff --git a/src/devices/cpu/avr8/avr8.h b/src/devices/cpu/avr8/avr8.h index ffef27cd781..cfcaec7ae45 100644 --- a/src/devices/cpu/avr8/avr8.h +++ b/src/devices/cpu/avr8/avr8.h @@ -5,7 +5,7 @@ - Notes - Cycle counts are generally considered to be 100% accurate per-instruction, does not support mid-instruction - interrupts although no software has been countered yet that requires it. Evidence of cycle accuracy is given + interrupts although no software has been encountered yet that requires it. Evidence of cycle accuracy is given in the form of the demoscene 'wild' demo, Craft, by [lft], which uses an ATmega88 to write video out a 6-bit RGB DAC pixel-by-pixel, synchronously with the frame timing. Intentionally modifying the timing of any of the existing opcodes has been shown to wildly corrupt the video output in Craft, so one can assume that the @@ -37,10 +37,10 @@ */ -#pragma once +#ifndef MAME_CPU_AVR8_AVR8_H +#define MAME_CPU_AVR8_AVR8_H -#ifndef __AVR8_H__ -#define __AVR8_H__ +#pragma once //************************************************************************** @@ -90,10 +90,7 @@ public: // public interfaces virtual void update_interrupt(int source); - uint64_t get_elapsed_cycles() - { - return m_elapsed_cycles; - } + uint64_t get_elapsed_cycles() const { return m_elapsed_cycles; } // register handling DECLARE_WRITE8_MEMBER( regs_w ); @@ -109,7 +106,7 @@ protected: CPU_TYPE_ATMEGA2560 }; - avr8_device(const machine_config &mconfig, const char *name, const char *tag, device_t *owner, uint32_t clock, const device_type type, uint32_t address_mask, address_map_constructor internal_map, uint8_t cpu_type, const char *shortname, const char *source); + avr8_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock, const device_type type, uint32_t address_mask, address_map_constructor internal_map, uint8_t cpu_type); // device-level overrides virtual void device_start() override; @@ -251,10 +248,10 @@ protected: }; // device type definition -extern const device_type ATMEGA88; -extern const device_type ATMEGA644; -extern const device_type ATMEGA1280; -extern const device_type ATMEGA2560; +DECLARE_DEVICE_TYPE(ATMEGA88, atmega88_device) +DECLARE_DEVICE_TYPE(ATMEGA644, atmega644_device) +DECLARE_DEVICE_TYPE(ATMEGA1280, atmega1280_device) +DECLARE_DEVICE_TYPE(ATMEGA2560, atmega2560_device) // ======================> atmega88_device diff --git a/src/devices/cpu/ccpu/ccpu.cpp b/src/devices/cpu/ccpu/ccpu.cpp index a7742e9b270..5ec2ae0a7c8 100644 --- a/src/devices/cpu/ccpu/ccpu.cpp +++ b/src/devices/cpu/ccpu/ccpu.cpp @@ -11,11 +11,11 @@ ***************************************************************************/ #include "emu.h" -#include "debugger.h" #include "ccpu.h" +#include "debugger.h" -const device_type CCPU = device_creator; +DEFINE_DEVICE_TYPE(CCPU, ccpu_cpu_device, "ccpu", "Cinematronics CPU") /*************************************************************************** @@ -63,7 +63,7 @@ do { \ ***************************************************************************/ ccpu_cpu_device::ccpu_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cpu_device(mconfig, CCPU, "Cinematronics CPU", tag, owner, clock, "ccpu", __FILE__) + : cpu_device(mconfig, CCPU, tag, owner, clock) , m_program_config("program", ENDIANNESS_BIG, 8, 15, 0) , m_data_config("data", ENDIANNESS_BIG, 16, 32, -1) , m_io_config("io", ENDIANNESS_BIG, 8, 5, 0) diff --git a/src/devices/cpu/ccpu/ccpu.h b/src/devices/cpu/ccpu/ccpu.h index 73cd5c6109c..f08936e190a 100644 --- a/src/devices/cpu/ccpu/ccpu.h +++ b/src/devices/cpu/ccpu/ccpu.h @@ -10,32 +10,16 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_CPU_CCPU_CCPU_H +#define MAME_CPU_CCPU_CCPU_H -#ifndef __CCPU_H__ -#define __CCPU_H__ +#pragma once /*************************************************************************** REGISTER ENUMERATION ***************************************************************************/ -enum -{ - CCPU_PC=1, - CCPU_FLAGS, - CCPU_A, - CCPU_B, - CCPU_I, - CCPU_J, - CCPU_P, - CCPU_X, - CCPU_Y, - CCPU_T -}; - - -typedef device_delegate ccpu_vector_delegate; #define MCFG_CCPU_EXTERNAL_FUNC(_devcb) \ @@ -48,12 +32,30 @@ typedef device_delegate ccpu class ccpu_cpu_device : public cpu_device { public: + // register enumeration + // public because the cinemat driver accesses A/P/X/Y through state interace - should there be a proper public interface to read registers? + enum + { + CCPU_PC=1, + CCPU_FLAGS, + CCPU_A, + CCPU_B, + CCPU_I, + CCPU_J, + CCPU_P, + CCPU_X, + CCPU_Y, + CCPU_T + }; + + typedef device_delegate vector_delegate; + // construction/destruction ccpu_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // static configuration helpers - template static devcb_base &set_external_func(device_t &device, _Object object) { return downcast(device).m_external_input.set_callback(object); } - static void set_vector_func(device_t &device, ccpu_vector_delegate callback) { downcast(device).m_vector_callback = callback; } + template static devcb_base &set_external_func(device_t &device, Object &&cb) { return downcast(device).m_external_input.set_callback(std::forward(cb)); } + static void set_vector_func(device_t &device, vector_delegate callback) { downcast(device).m_vector_callback = callback; } DECLARE_READ8_MEMBER( read_jmi ); void wdt_timer_trigger(); @@ -109,7 +111,7 @@ protected: uint16_t m_drflag; devcb_read8 m_external_input; - ccpu_vector_delegate m_vector_callback; + vector_delegate m_vector_callback; uint8_t m_waiting; uint8_t m_watchdog; @@ -126,7 +128,6 @@ protected: }; -extern const device_type CCPU; - +DECLARE_DEVICE_TYPE(CCPU, ccpu_cpu_device) -#endif /* __CCPU_H__ */ +#endif // MAME_CPU_CCPU_CCPU_H diff --git a/src/devices/cpu/clipper/clipper.cpp b/src/devices/cpu/clipper/clipper.cpp index cd1c6ff7764..ffdc3177bfd 100644 --- a/src/devices/cpu/clipper/clipper.cpp +++ b/src/devices/cpu/clipper/clipper.cpp @@ -22,27 +22,51 @@ #include "clipper.h" #define VERBOSE 0 -#if VERBOSE -#define LOG_INTERRUPT(...) logerror(__VA_ARGS__) -#else -#define LOG_INTERRUPT(...) -#endif - -const device_type CLIPPER_C100 = device_creator; -const device_type CLIPPER_C300 = device_creator; -const device_type CLIPPER_C400 = device_creator; +#define LOG_INTERRUPT(...) do { if (VERBOSE) logerror(__VA_ARGS__); } while (false) + +// convenience macros for frequently used instruction fields +#define R1 (m_info.r1) +#define R2 (m_info.r2) + +// convenience macros for dealing with the psw +#define PSW(mask) (m_psw & PSW_##mask) +#define SSW(mask) (m_ssw & SSW_##mask) + +// macros for setting psw condition codes +#define FLAGS(C,V,Z,N) \ + m_psw = (m_psw & ~(PSW_C | PSW_V | PSW_Z | PSW_N)) | (((C) << 3) | ((V) << 2) | ((Z) << 1) | ((N) << 0)); +#define FLAGS_CV(C,V) \ + m_psw = (m_psw & ~(PSW_C | PSW_V)) | (((C) << 3) | ((V) << 2)); +#define FLAGS_ZN(Z,N) \ + m_psw = (m_psw & ~(PSW_Z | PSW_N)) | (((Z) << 1) | ((N) << 0)); + +// over/underflow for addition/subtraction from here: http://stackoverflow.com/questions/199333/how-to-detect-integer-overflow-in-c-c +#define OF_ADD(a, b) ((b > 0) && (a > INT_MAX - b)) +#define UF_ADD(a, b) ((b < 0) && (a < INT_MIN - b)) +#define OF_SUB(a, b) ((b < 0) && (a > INT_MAX + b)) +#define UF_SUB(a, b) ((b > 0) && (a < INT_MIN + b)) + +// CLIPPER logic for carry and overflow flags +#define C_ADD(a, b) ((u32)a + (u32)b < (u32)a) +#define V_ADD(a, b) (OF_ADD((s32)a, (s32)b) || UF_ADD((s32)a, (s32)b)) +#define C_SUB(a, b) ((u32)a < (u32)b) +#define V_SUB(a, b) (OF_SUB((s32)a, (s32)b) || UF_SUB((s32)a, (s32)b)) + +DEFINE_DEVICE_TYPE(CLIPPER_C100, clipper_c100_device, "clipper_c100", "C100 CLIPPER") +DEFINE_DEVICE_TYPE(CLIPPER_C300, clipper_c300_device, "clipper_c300", "C300 CLIPPER") +DEFINE_DEVICE_TYPE(CLIPPER_C400, clipper_c400_device, "clipper_c400", "C400 CLIPPER") clipper_c100_device::clipper_c100_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : clipper_device(mconfig, CLIPPER_C100, "C100 CLIPPER", tag, owner, clock, "c100", __FILE__) { } + : clipper_device(mconfig, CLIPPER_C100, tag, owner, clock) { } clipper_c300_device::clipper_c300_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : clipper_device(mconfig, CLIPPER_C300, "C300 CLIPPER", tag, owner, clock, "c300", __FILE__) { } + : clipper_device(mconfig, CLIPPER_C300, tag, owner, clock) { } clipper_c400_device::clipper_c400_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : clipper_device(mconfig, CLIPPER_C400, "C400 CLIPPER", tag, owner, clock, "c400", __FILE__) { } + : clipper_device(mconfig, CLIPPER_C400, tag, owner, clock) { } -clipper_device::clipper_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, u32 clock, const char *shortname, const char *source) - : cpu_device(mconfig, type, name, tag, owner, clock, shortname, source), +clipper_device::clipper_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock) + : cpu_device(mconfig, type, tag, owner, clock), m_pc(0), m_r(m_rs), m_insn_config("insn", ENDIANNESS_LITTLE, 32, 32, 0), @@ -1245,7 +1269,7 @@ int clipper_device::execute_instruction () case 0x04: // reti: restore psw, ssw and pc from supervisor stack LOG_INTERRUPT("reti r%d, ssp = %08x, pc = %08x, next_pc = %08x\n", - (macro >> 4) & 0xf, m_rs[(m_info.macro >> 4) & 0xf], m_pc, m_program->read_dword(m_rs[(m_info.macro >> 4) & 0xf] + 8)); + (m_info.macro >> 4) & 0xf, m_rs[(m_info.macro >> 4) & 0xf], m_pc, m_insn->read_dword(m_rs[(m_info.macro >> 4) & 0xf] + 8)); m_psw = m_data->read_dword(m_rs[(m_info.macro >> 4) & 0xf] + 0); m_ssw = m_data->read_dword(m_rs[(m_info.macro >> 4) & 0xf] + 4); @@ -1303,7 +1327,7 @@ int clipper_device::execute_instruction () */ u32 clipper_device::intrap(u32 vector, u32 pc, u32 cts, u32 mts) { - LOG_INTERRUPT("intrap - vector %x, pc = 0x%08x, next_pc = 0x%08x, ssp = 0x%08x\n", vector, pc, m_program->read_dword(vector + 4), m_rs[15]); + LOG_INTERRUPT("intrap - vector %x, pc = 0x%08x, next_pc = 0x%08x, ssp = 0x%08x\n", vector, pc, m_insn->read_dword(vector + 4), m_rs[15]); // set cts and mts to indicate source of exception m_psw = (m_psw & ~(PSW_CTS | PSW_MTS)) | mts | cts; diff --git a/src/devices/cpu/clipper/clipper.h b/src/devices/cpu/clipper/clipper.h index 6711a2f5e60..49857a0a689 100644 --- a/src/devices/cpu/clipper/clipper.h +++ b/src/devices/cpu/clipper/clipper.h @@ -1,39 +1,12 @@ // license:BSD-3-Clause // copyright-holders:Patrick Mackinlay -#pragma once +#ifndef MAME_CPU_CLIPPER_CLIPPER_H +#define MAME_CPU_CLIPPER_CLIPPER_H -#ifndef __CLIPPER_H__ -#define __CLIPPER_H__ +#pragma once #include -// convenience macros for frequently used instruction fields -#define R1 (m_info.r1) -#define R2 (m_info.r2) - -// convenience macros for dealing with the psw -#define PSW(mask) (m_psw & PSW_##mask) -#define SSW(mask) (m_ssw & SSW_##mask) - -// macros for setting psw condition codes -#define FLAGS(C,V,Z,N) \ - m_psw = (m_psw & ~(PSW_C | PSW_V | PSW_Z | PSW_N)) | (((C) << 3) | ((V) << 2) | ((Z) << 1) | ((N) << 0)); -#define FLAGS_CV(C,V) \ - m_psw = (m_psw & ~(PSW_C | PSW_V)) | (((C) << 3) | ((V) << 2)); -#define FLAGS_ZN(Z,N) \ - m_psw = (m_psw & ~(PSW_Z | PSW_N)) | (((Z) << 1) | ((N) << 0)); - -// over/underflow for addition/subtraction from here: http://stackoverflow.com/questions/199333/how-to-detect-integer-overflow-in-c-c -#define OF_ADD(a, b) ((b > 0) && (a > INT_MAX - b)) -#define UF_ADD(a, b) ((b < 0) && (a < INT_MIN - b)) -#define OF_SUB(a, b) ((b < 0) && (a > INT_MAX + b)) -#define UF_SUB(a, b) ((b > 0) && (a < INT_MIN + b)) - -// CLIPPER logic for carry and overflow flags -#define C_ADD(a, b) ((u32)a + (u32)b < (u32)a) -#define V_ADD(a, b) (OF_ADD((s32)a, (s32)b) || UF_ADD((s32)a, (s32)b)) -#define C_SUB(a, b) ((u32)a < (u32)b) -#define V_SUB(a, b) (OF_SUB((s32)a, (s32)b) || UF_SUB((s32)a, (s32)b)) class clipper_device : public cpu_device { @@ -191,24 +164,24 @@ class clipper_device : public cpu_device }; public: - clipper_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, u32 clock, const char *shortname, const char *source); - DECLARE_READ_LINE_MEMBER(ssw) { return m_ssw; } protected: + clipper_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; // device_execute_interface overrides - virtual u32 execute_min_cycles() const override { return 1; }; - virtual u32 execute_max_cycles() const override { return 1; }; // FIXME: don't know, especially macro instructions - virtual u32 execute_input_lines() const override { return 2; }; // number of input/interrupt lines (irq/nmi) + virtual u32 execute_min_cycles() const override { return 1; } + virtual u32 execute_max_cycles() const override { return 1; } // FIXME: don't know, especially macro instructions + virtual u32 execute_input_lines() const override { return 2; } // number of input/interrupt lines (irq/nmi) virtual void execute_run() override; virtual void execute_set_input(int inputnum, int state) override; // device_memory_interface overrides - virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_0) const override; + virtual const address_space_config *memory_space_config(address_spacenum spacenum) const override; // device_state_interface overrides #if 0 @@ -288,9 +261,10 @@ public: clipper_c400_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); }; -extern const device_type CLIPPER_C100; -extern const device_type CLIPPER_C300; -extern const device_type CLIPPER_C400; +DECLARE_DEVICE_TYPE(CLIPPER_C100, clipper_c100_device) +DECLARE_DEVICE_TYPE(CLIPPER_C300, clipper_c300_device) +DECLARE_DEVICE_TYPE(CLIPPER_C400, clipper_c400_device) extern CPU_DISASSEMBLE(clipper); -#endif /* __CLIPPER_H__ */ + +#endif // MAME_CPU_CLIPPER_CLIPPER_H diff --git a/src/devices/cpu/cop400/cop400.cpp b/src/devices/cpu/cop400/cop400.cpp index 757cf0cf21f..7c04e615e2a 100644 --- a/src/devices/cpu/cop400/cop400.cpp +++ b/src/devices/cpu/cop400/cop400.cpp @@ -58,23 +58,23 @@ #include "cop400.h" -const device_type COP401 = device_creator; -const device_type COP410 = device_creator; -const device_type COP411 = device_creator; -const device_type COP402 = device_creator; -const device_type COP420 = device_creator; -const device_type COP421 = device_creator; -const device_type COP422 = device_creator; -const device_type COP404L = device_creator; -const device_type COP444L = device_creator; -const device_type COP445L = device_creator; -const device_type COP404C = device_creator; -const device_type COP424C = device_creator; -const device_type COP425C = device_creator; -const device_type COP426C = device_creator; -const device_type COP444C = device_creator; -const device_type COP445C = device_creator; -const device_type COP446C = device_creator; +DEFINE_DEVICE_TYPE(COP401, cop401_cpu_device, "cop401", "COP401") +DEFINE_DEVICE_TYPE(COP410, cop410_cpu_device, "cop410", "COP410") +DEFINE_DEVICE_TYPE(COP411, cop411_cpu_device, "cop411", "COP411") +DEFINE_DEVICE_TYPE(COP402, cop402_cpu_device, "cop402", "COP402") +DEFINE_DEVICE_TYPE(COP420, cop420_cpu_device, "cop420", "COP420") +DEFINE_DEVICE_TYPE(COP421, cop421_cpu_device, "cop421", "COP421") +DEFINE_DEVICE_TYPE(COP422, cop422_cpu_device, "cop422", "COP422") +DEFINE_DEVICE_TYPE(COP404L, cop404l_cpu_device, "cop404l", "COP404L") +DEFINE_DEVICE_TYPE(COP444L, cop444l_cpu_device, "cop444l", "COP444L") +DEFINE_DEVICE_TYPE(COP445L, cop445l_cpu_device, "cop445l", "COP445L") +DEFINE_DEVICE_TYPE(COP404C, cop404c_cpu_device, "cop404c", "COP404C") +DEFINE_DEVICE_TYPE(COP424C, cop424c_cpu_device, "cop424c", "COP424C") +DEFINE_DEVICE_TYPE(COP425C, cop425c_cpu_device, "cop425c", "COP425C") +DEFINE_DEVICE_TYPE(COP426C, cop426c_cpu_device, "cop426c", "COP426C") +DEFINE_DEVICE_TYPE(COP444C, cop444c_cpu_device, "cop444c", "COP444C") +DEFINE_DEVICE_TYPE(COP445C, cop445c_cpu_device, "cop445c", "COP445C") +DEFINE_DEVICE_TYPE(COP446C, cop446c_cpu_device, "cop446c", "COP446C") @@ -155,8 +155,8 @@ static ADDRESS_MAP_START( data_128b, AS_DATA, 8, cop400_cpu_device ) ADDRESS_MAP_END -cop400_cpu_device::cop400_cpu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source, uint8_t program_addr_bits, uint8_t data_addr_bits, uint8_t featuremask, uint8_t g_mask, uint8_t d_mask, uint8_t in_mask, bool has_counter, bool has_inil, address_map_constructor internal_map_program, address_map_constructor internal_map_data) - : cpu_device(mconfig, type, name, tag, owner, clock, shortname, source) +cop400_cpu_device::cop400_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint8_t program_addr_bits, uint8_t data_addr_bits, uint8_t featuremask, uint8_t g_mask, uint8_t d_mask, uint8_t in_mask, bool has_counter, bool has_inil, address_map_constructor internal_map_program, address_map_constructor internal_map_data) + : cpu_device(mconfig, type, tag, owner, clock) , m_program_config("program", ENDIANNESS_LITTLE, 8, program_addr_bits, 0, internal_map_program) , m_data_config("data", ENDIANNESS_LITTLE, 8, data_addr_bits, 0, internal_map_data) // data width is really 4 , m_read_l(*this) @@ -230,87 +230,87 @@ cop400_cpu_device::cop400_cpu_device(const machine_config &mconfig, device_type } cop401_cpu_device::cop401_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cop400_cpu_device(mconfig, COP401, "COP401", tag, owner, clock, "cop401", __FILE__, 9, 6, COP410_FEATURE, 0xf, 0xf, 0, false, false, nullptr, ADDRESS_MAP_NAME(data_32b)) + : cop400_cpu_device(mconfig, COP401, tag, owner, clock, 9, 6, COP410_FEATURE, 0xf, 0xf, 0, false, false, nullptr, ADDRESS_MAP_NAME(data_32b)) { } cop410_cpu_device::cop410_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cop400_cpu_device(mconfig, COP410, "COP410", tag, owner, clock, "cop410", __FILE__, 9, 6, COP410_FEATURE, 0xf, 0xf, 0, false, false, ADDRESS_MAP_NAME(program_512b), ADDRESS_MAP_NAME(data_32b)) + : cop400_cpu_device(mconfig, COP410, tag, owner, clock, 9, 6, COP410_FEATURE, 0xf, 0xf, 0, false, false, ADDRESS_MAP_NAME(program_512b), ADDRESS_MAP_NAME(data_32b)) { } cop411_cpu_device::cop411_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cop400_cpu_device(mconfig, COP411, "COP411", tag, owner, clock, "cop411", __FILE__, 9, 6, COP410_FEATURE, 0x7, 0x3, 0, false, false, ADDRESS_MAP_NAME(program_512b), ADDRESS_MAP_NAME(data_32b)) + : cop400_cpu_device(mconfig, COP411, tag, owner, clock, 9, 6, COP410_FEATURE, 0x7, 0x3, 0, false, false, ADDRESS_MAP_NAME(program_512b), ADDRESS_MAP_NAME(data_32b)) { } cop402_cpu_device::cop402_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cop400_cpu_device(mconfig, COP402, "COP402", tag, owner, clock, "cop402", __FILE__, 10, 6, COP420_FEATURE, 0xf, 0xf, 0xf, true, true, nullptr, ADDRESS_MAP_NAME(data_64b)) + : cop400_cpu_device(mconfig, COP402, tag, owner, clock, 10, 6, COP420_FEATURE, 0xf, 0xf, 0xf, true, true, nullptr, ADDRESS_MAP_NAME(data_64b)) { } cop420_cpu_device::cop420_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cop400_cpu_device(mconfig, COP420, "COP420", tag, owner, clock, "cop420", __FILE__, 10, 6, COP420_FEATURE, 0xf, 0xf, 0xf, true, true, ADDRESS_MAP_NAME(program_1kb), ADDRESS_MAP_NAME(data_64b)) + : cop400_cpu_device(mconfig, COP420, tag, owner, clock, 10, 6, COP420_FEATURE, 0xf, 0xf, 0xf, true, true, ADDRESS_MAP_NAME(program_1kb), ADDRESS_MAP_NAME(data_64b)) { } cop421_cpu_device::cop421_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cop400_cpu_device(mconfig, COP421, "COP421", tag, owner, clock, "cop421", __FILE__, 10, 6, COP420_FEATURE, 0xf, 0xf, 0, true, false, ADDRESS_MAP_NAME(program_1kb), ADDRESS_MAP_NAME(data_64b)) + : cop400_cpu_device(mconfig, COP421, tag, owner, clock, 10, 6, COP420_FEATURE, 0xf, 0xf, 0, true, false, ADDRESS_MAP_NAME(program_1kb), ADDRESS_MAP_NAME(data_64b)) { } cop422_cpu_device::cop422_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cop400_cpu_device(mconfig, COP422, "COP422", tag, owner, clock, "cop422", __FILE__, 10, 6, COP420_FEATURE, 0xe, 0xe, 0, true, false, ADDRESS_MAP_NAME(program_1kb), ADDRESS_MAP_NAME(data_64b)) + : cop400_cpu_device(mconfig, COP422, tag, owner, clock, 10, 6, COP420_FEATURE, 0xe, 0xe, 0, true, false, ADDRESS_MAP_NAME(program_1kb), ADDRESS_MAP_NAME(data_64b)) { } cop404l_cpu_device::cop404l_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cop400_cpu_device(mconfig, COP404L, "COP404L", tag, owner, clock, "cop404l", __FILE__, 11, 7, COP444L_FEATURE, 0xf, 0xf, 0xf, true, true, nullptr, ADDRESS_MAP_NAME(data_128b)) + : cop400_cpu_device(mconfig, COP404L, tag, owner, clock, 11, 7, COP444L_FEATURE, 0xf, 0xf, 0xf, true, true, nullptr, ADDRESS_MAP_NAME(data_128b)) { } cop444l_cpu_device::cop444l_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cop400_cpu_device(mconfig, COP444L, "COP444L", tag, owner, clock, "cop444l", __FILE__, 11, 7, COP444L_FEATURE, 0xf, 0xf, 0xf, true, true, ADDRESS_MAP_NAME(program_2kb), ADDRESS_MAP_NAME(data_128b)) + : cop400_cpu_device(mconfig, COP444L, tag, owner, clock, 11, 7, COP444L_FEATURE, 0xf, 0xf, 0xf, true, true, ADDRESS_MAP_NAME(program_2kb), ADDRESS_MAP_NAME(data_128b)) { } cop445l_cpu_device::cop445l_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cop400_cpu_device(mconfig, COP445L, "COP445L", tag, owner, clock, "cop445l", __FILE__, 11, 7, COP444L_FEATURE, 0x7, 0x3, 0, true, false, ADDRESS_MAP_NAME(program_2kb), ADDRESS_MAP_NAME(data_128b)) + : cop400_cpu_device(mconfig, COP445L, tag, owner, clock, 11, 7, COP444L_FEATURE, 0x7, 0x3, 0, true, false, ADDRESS_MAP_NAME(program_2kb), ADDRESS_MAP_NAME(data_128b)) { } cop404c_cpu_device::cop404c_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cop400_cpu_device(mconfig, COP404C, "COP404C", tag, owner, clock, "cop404c", __FILE__, 11, 7, COP424C_FEATURE, 0xf, 0xf, 0xf, true, true, nullptr, ADDRESS_MAP_NAME(data_128b)) + : cop400_cpu_device(mconfig, COP404C, tag, owner, clock, 11, 7, COP424C_FEATURE, 0xf, 0xf, 0xf, true, true, nullptr, ADDRESS_MAP_NAME(data_128b)) { } cop424c_cpu_device::cop424c_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cop400_cpu_device(mconfig, COP424C, "COP424C", tag, owner, clock, "cop424c", __FILE__, 10, 6, COP424C_FEATURE, 0xf, 0xf, 0xf, true, true, ADDRESS_MAP_NAME(program_1kb), ADDRESS_MAP_NAME(data_64b)) + : cop400_cpu_device(mconfig, COP424C, tag, owner, clock, 10, 6, COP424C_FEATURE, 0xf, 0xf, 0xf, true, true, ADDRESS_MAP_NAME(program_1kb), ADDRESS_MAP_NAME(data_64b)) { } cop425c_cpu_device::cop425c_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cop400_cpu_device(mconfig, COP425C, "COP425C", tag, owner, clock, "cop425c", __FILE__, 10, 6, COP424C_FEATURE, 0xf, 0xf, 0, true, false, ADDRESS_MAP_NAME(program_1kb), ADDRESS_MAP_NAME(data_64b)) + : cop400_cpu_device(mconfig, COP425C, tag, owner, clock, 10, 6, COP424C_FEATURE, 0xf, 0xf, 0, true, false, ADDRESS_MAP_NAME(program_1kb), ADDRESS_MAP_NAME(data_64b)) { } cop426c_cpu_device::cop426c_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cop400_cpu_device(mconfig, COP426C, "COP426C", tag, owner, clock, "cop426c", __FILE__, 10, 6, COP424C_FEATURE, 0xe, 0xe, 0xf, true, true, ADDRESS_MAP_NAME(program_1kb), ADDRESS_MAP_NAME(data_64b)) + : cop400_cpu_device(mconfig, COP426C, tag, owner, clock, 10, 6, COP424C_FEATURE, 0xe, 0xe, 0xf, true, true, ADDRESS_MAP_NAME(program_1kb), ADDRESS_MAP_NAME(data_64b)) { } cop444c_cpu_device::cop444c_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cop400_cpu_device(mconfig, COP444C, "COP444C", tag, owner, clock, "cop444c", __FILE__, 11, 7, COP424C_FEATURE, 0xf, 0xf, 0xf, true, true, ADDRESS_MAP_NAME(program_2kb), ADDRESS_MAP_NAME(data_128b)) + : cop400_cpu_device(mconfig, COP444C, tag, owner, clock, 11, 7, COP424C_FEATURE, 0xf, 0xf, 0xf, true, true, ADDRESS_MAP_NAME(program_2kb), ADDRESS_MAP_NAME(data_128b)) { } cop445c_cpu_device::cop445c_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cop400_cpu_device(mconfig, COP445C, "COP445C", tag, owner, clock, "cop445c", __FILE__, 11, 7, COP424C_FEATURE, 0xf, 0xf, 0, true, false, ADDRESS_MAP_NAME(program_2kb), ADDRESS_MAP_NAME(data_128b)) + : cop400_cpu_device(mconfig, COP445C, tag, owner, clock, 11, 7, COP424C_FEATURE, 0xf, 0xf, 0, true, false, ADDRESS_MAP_NAME(program_2kb), ADDRESS_MAP_NAME(data_128b)) { } cop446c_cpu_device::cop446c_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cop400_cpu_device(mconfig, COP446C, "COP446C", tag, owner, clock, "cop446c", __FILE__, 11, 7, COP424C_FEATURE, 0xe, 0xe, 0xf, true, true, ADDRESS_MAP_NAME(program_2kb), ADDRESS_MAP_NAME(data_128b)) + : cop400_cpu_device(mconfig, COP446C, tag, owner, clock, 11, 7, COP424C_FEATURE, 0xe, 0xe, 0xf, true, true, ADDRESS_MAP_NAME(program_2kb), ADDRESS_MAP_NAME(data_128b)) { } diff --git a/src/devices/cpu/cop400/cop400.h b/src/devices/cpu/cop400/cop400.h index e2ce7e6577c..8802df460b9 100644 --- a/src/devices/cpu/cop400/cop400.h +++ b/src/devices/cpu/cop400/cop400.h @@ -8,10 +8,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_DEVICES_CPU_COP400_H +#define MAME_DEVICES_CPU_COP400_H -#ifndef __COP400__ -#define __COP400__ +#pragma once // i/o pins @@ -118,9 +118,6 @@ enum cop400_cko_bond { class cop400_cpu_device : public cpu_device { public: - // construction/destruction - cop400_cpu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source, uint8_t program_addr_bits, uint8_t data_addr_bits, uint8_t featuremask, uint8_t g_mask, uint8_t d_mask, uint8_t in_mask, bool has_counter, bool has_inil, address_map_constructor internal_map_program, address_map_constructor internal_map_data); - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; // static configuration helpers @@ -144,6 +141,9 @@ public: DECLARE_WRITE8_MEMBER( microbus_wr ); protected: + // construction/destruction + cop400_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint8_t program_addr_bits, uint8_t data_addr_bits, uint8_t featuremask, uint8_t g_mask, uint8_t d_mask, uint8_t in_mask, bool has_counter, bool has_inil, address_map_constructor internal_map_program, address_map_constructor internal_map_data); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -519,22 +519,22 @@ public: }; -extern const device_type COP401; -extern const device_type COP410; -extern const device_type COP411; -extern const device_type COP402; -extern const device_type COP420; -extern const device_type COP421; -extern const device_type COP422; -extern const device_type COP404L; -extern const device_type COP444L; -extern const device_type COP445L; -extern const device_type COP404C; -extern const device_type COP424C; -extern const device_type COP425C; -extern const device_type COP426C; -extern const device_type COP444C; -extern const device_type COP445C; -extern const device_type COP446C; - -#endif /* __COP400__ */ +DECLARE_DEVICE_TYPE(COP401, cop401_cpu_device) +DECLARE_DEVICE_TYPE(COP410, cop410_cpu_device) +DECLARE_DEVICE_TYPE(COP411, cop411_cpu_device) +DECLARE_DEVICE_TYPE(COP402, cop402_cpu_device) +DECLARE_DEVICE_TYPE(COP420, cop420_cpu_device) +DECLARE_DEVICE_TYPE(COP421, cop421_cpu_device) +DECLARE_DEVICE_TYPE(COP422, cop422_cpu_device) +DECLARE_DEVICE_TYPE(COP404L, cop404l_cpu_device) +DECLARE_DEVICE_TYPE(COP444L, cop444l_cpu_device) +DECLARE_DEVICE_TYPE(COP445L, cop445l_cpu_device) +DECLARE_DEVICE_TYPE(COP404C, cop404c_cpu_device) +DECLARE_DEVICE_TYPE(COP424C, cop424c_cpu_device) +DECLARE_DEVICE_TYPE(COP425C, cop425c_cpu_device) +DECLARE_DEVICE_TYPE(COP426C, cop426c_cpu_device) +DECLARE_DEVICE_TYPE(COP444C, cop444c_cpu_device) +DECLARE_DEVICE_TYPE(COP445C, cop445c_cpu_device) +DECLARE_DEVICE_TYPE(COP446C, cop446c_cpu_device) + +#endif // MAME_DEVICES_CPU_COP400_H diff --git a/src/devices/cpu/cosmac/cosmac.cpp b/src/devices/cpu/cosmac/cosmac.cpp index 913b71cbd31..e1b5e728c23 100644 --- a/src/devices/cpu/cosmac/cosmac.cpp +++ b/src/devices/cpu/cosmac/cosmac.cpp @@ -260,16 +260,16 @@ cosmac_device::ophandler cdp1802_device::get_ophandler(uint8_t opcode) //************************************************************************** // device type definition -const device_type CDP1801 = device_creator; -const device_type CDP1802 = device_creator; +DEFINE_DEVICE_TYPE(CDP1801, cdp1801_device, "cdp1801", "RCA CDP1801") +DEFINE_DEVICE_TYPE(CDP1802, cdp1802_device, "cdp1802", "RCA CDP1802") //------------------------------------------------- // cosmac_device - constructor //------------------------------------------------- -cosmac_device::cosmac_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : cpu_device(mconfig, type, name, tag, owner, clock, shortname, source), +cosmac_device::cosmac_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : cpu_device(mconfig, type, tag, owner, clock), m_program_config("program", ENDIANNESS_LITTLE, 8, 16), m_io_config("io", ENDIANNESS_LITTLE, 8, 3), m_read_wait(*this), @@ -302,7 +302,7 @@ cosmac_device::cosmac_device(const machine_config &mconfig, device_type type, co //------------------------------------------------- cdp1801_device::cdp1801_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cosmac_device(mconfig, CDP1801, "CDP1801", tag, owner, clock, "cdp1801", __FILE__) + : cosmac_device(mconfig, CDP1801, tag, owner, clock) { } @@ -312,7 +312,7 @@ cdp1801_device::cdp1801_device(const machine_config &mconfig, const char *tag, d //------------------------------------------------- cdp1802_device::cdp1802_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cosmac_device(mconfig, CDP1802, "CDP1802", tag, owner, clock, "cdp1802", __FILE__) + : cosmac_device(mconfig, CDP1802, tag, owner, clock) { } diff --git a/src/devices/cpu/cosmac/cosmac.h b/src/devices/cpu/cosmac/cosmac.h index e9ff3b705bb..9adb9e1ec4d 100644 --- a/src/devices/cpu/cosmac/cosmac.h +++ b/src/devices/cpu/cosmac/cosmac.h @@ -76,10 +76,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_CPU_COSMAC_COSMAC_H +#define MAME_CPU_COSMAC_COSMAC_H -#ifndef __COSMAC_H__ -#define __COSMAC_H__ +#pragma once @@ -123,39 +123,6 @@ // ENUMERATIONS //************************************************************************** -// registers -enum -{ - COSMAC_P, - COSMAC_X, - COSMAC_D, - COSMAC_B, - COSMAC_T, - COSMAC_R0, - COSMAC_R1, - COSMAC_R2, - COSMAC_R3, - COSMAC_R4, - COSMAC_R5, - COSMAC_R6, - COSMAC_R7, - COSMAC_R8, - COSMAC_R9, - COSMAC_Ra, - COSMAC_Rb, - COSMAC_Rc, - COSMAC_Rd, - COSMAC_Re, - COSMAC_Rf, - COSMAC_DF, - COSMAC_IE, - COSMAC_Q, - COSMAC_N, - COSMAC_I, - COSMAC_SC -}; - - // input lines enum { @@ -189,19 +156,51 @@ enum cosmac_state_code class cosmac_device : public cpu_device { public: - // construction/destruction - cosmac_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - - template static devcb_base &set_wait_rd_callback(device_t &device, _Object object) { return downcast(device).m_read_wait.set_callback(object); } - template static devcb_base &set_clear_rd_callback(device_t &device, _Object object) { return downcast(device).m_read_clear.set_callback(object); } - template static devcb_base &set_ef1_rd_callback(device_t &device, _Object object) { return downcast(device).m_read_ef1.set_callback(object); } - template static devcb_base &set_ef2_rd_callback(device_t &device, _Object object) { return downcast(device).m_read_ef2.set_callback(object); } - template static devcb_base &set_ef3_rd_callback(device_t &device, _Object object) { return downcast(device).m_read_ef3.set_callback(object); } - template static devcb_base &set_ef4_rd_callback(device_t &device, _Object object) { return downcast(device).m_read_ef4.set_callback(object); } - template static devcb_base &set_q_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_q.set_callback(object); } - template static devcb_base &set_dma_rd_callback(device_t &device, _Object object) { return downcast(device).m_read_dma.set_callback(object); } - template static devcb_base &set_dma_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_dma.set_callback(object); } - template static devcb_base &set_sc_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_sc.set_callback(object); } + // registers + // public because machine/pecom.cpp accesses registers through the state interface - there should be a proper way to get address on bus for this + // drivers/microkit.cpp and drivers/eti660.cpp are even worse setting R0 through the state interface to hack around running boot code or something + enum + { + COSMAC_P, + COSMAC_X, + COSMAC_D, + COSMAC_B, + COSMAC_T, + COSMAC_R0, + COSMAC_R1, + COSMAC_R2, + COSMAC_R3, + COSMAC_R4, + COSMAC_R5, + COSMAC_R6, + COSMAC_R7, + COSMAC_R8, + COSMAC_R9, + COSMAC_Ra, + COSMAC_Rb, + COSMAC_Rc, + COSMAC_Rd, + COSMAC_Re, + COSMAC_Rf, + COSMAC_DF, + COSMAC_IE, + COSMAC_Q, + COSMAC_N, + COSMAC_I, + COSMAC_SC + }; + + + template static devcb_base &set_wait_rd_callback(device_t &device, Object &&cb) { return downcast(device).m_read_wait.set_callback(std::forward(cb)); } + template static devcb_base &set_clear_rd_callback(device_t &device, Object &&cb) { return downcast(device).m_read_clear.set_callback(std::forward(cb)); } + template static devcb_base &set_ef1_rd_callback(device_t &device, Object &&cb) { return downcast(device).m_read_ef1.set_callback(std::forward(cb)); } + template static devcb_base &set_ef2_rd_callback(device_t &device, Object &&cb) { return downcast(device).m_read_ef2.set_callback(std::forward(cb)); } + template static devcb_base &set_ef3_rd_callback(device_t &device, Object &&cb) { return downcast(device).m_read_ef3.set_callback(std::forward(cb)); } + template static devcb_base &set_ef4_rd_callback(device_t &device, Object &&cb) { return downcast(device).m_read_ef4.set_callback(std::forward(cb)); } + template static devcb_base &set_q_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_q.set_callback(std::forward(cb)); } + template static devcb_base &set_dma_rd_callback(device_t &device, Object &&cb) { return downcast(device).m_read_dma.set_callback(std::forward(cb)); } + template static devcb_base &set_dma_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_dma.set_callback(std::forward(cb)); } + template static devcb_base &set_sc_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_sc.set_callback(std::forward(cb)); } // public interfaces offs_t get_memory_address(); @@ -215,6 +214,9 @@ public: DECLARE_WRITE_LINE_MEMBER( ef4_w ) { set_input_line(COSMAC_INPUT_LINE_EF4, state); } protected: + // construction/destruction + cosmac_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -478,8 +480,8 @@ protected: // device type definition -extern const device_type CDP1801; -extern const device_type CDP1802; +DECLARE_DEVICE_TYPE(CDP1801, cdp1801_device) +DECLARE_DEVICE_TYPE(CDP1802, cdp1802_device) -#endif /* __COSMAC_H__ */ +#endif // MAME_CPU_COSMAC_COSMAC_H diff --git a/src/devices/cpu/cp1610/cp1610.cpp b/src/devices/cpu/cp1610/cp1610.cpp index 60ba26c1e36..edaa32795e8 100644 --- a/src/devices/cpu/cp1610/cp1610.cpp +++ b/src/devices/cpu/cp1610/cp1610.cpp @@ -14,11 +14,11 @@ *****************************************************************************/ #include "emu.h" -#include "debugger.h" #include "cp1610.h" +#include "debugger.h" -const device_type CP1610 = device_creator; +DEFINE_DEVICE_TYPE(CP1610, cp1610_cpu_device, "cp1610", "GI CP1610") #define S 0x80 @@ -3395,7 +3395,7 @@ void cp1610_cpu_device::execute_set_input(int irqline, int state) cp1610_cpu_device::cp1610_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cpu_device(mconfig, CP1610, "CP1610", tag, owner, clock, "cp1610", __FILE__) + : cpu_device(mconfig, CP1610, tag, owner, clock) , m_program_config("program", ENDIANNESS_BIG, 16, 16, -1) , m_read_bext(*this) { diff --git a/src/devices/cpu/cp1610/cp1610.h b/src/devices/cpu/cp1610/cp1610.h index 17bb37c2897..677e86ae0ab 100644 --- a/src/devices/cpu/cp1610/cp1610.h +++ b/src/devices/cpu/cp1610/cp1610.h @@ -9,16 +9,10 @@ * *****************************************************************************/ -#pragma once - -#ifndef __CP1610_H__ -#define __CP1610_H__ +#ifndef MAME_CPU_CP1610_CP1610_H +#define MAME_CPU_CP1610_CP1610_H -enum -{ - CP1610_R0=1, CP1610_R1, CP1610_R2, CP1610_R3, - CP1610_R4, CP1610_R5, CP1610_R6, CP1610_R7 -}; +#pragma once #define CP1610_INT_NONE 0 #define CP1610_INT_INTRM 1 /* Maskable */ @@ -32,12 +26,19 @@ enum class cp1610_cpu_device : public cpu_device { public: + // public because drivers R7 through state interface on machine reset - where does the initial R7 actually come from? + enum + { + CP1610_R0=1, CP1610_R1, CP1610_R2, CP1610_R3, + CP1610_R4, CP1610_R5, CP1610_R6, CP1610_R7 + }; + // construction/destruction cp1610_cpu_device(const machine_config &mconfig, const char *_tag, device_t *_owner, uint32_t _clock); - template devcb_base &set_bext_callback(_read rd) + template devcb_base &set_bext_callback(Object &&rd) { - return m_read_bext.set_callback(rd); + return m_read_bext.set_callback(std::forward(rd)); } protected: @@ -208,9 +209,9 @@ private: }; -extern const device_type CP1610; +DECLARE_DEVICE_TYPE(CP1610, cp1610_cpu_device) CPU_DISASSEMBLE( cp1610 ); -#endif /* __CP1610_H__ */ +#endif // MAME_CPU_CP1610_CP1610_H diff --git a/src/devices/cpu/cubeqcpu/cubeqcpu.cpp b/src/devices/cpu/cubeqcpu/cubeqcpu.cpp index 0ddb88e974d..46b5e871a08 100644 --- a/src/devices/cpu/cubeqcpu/cubeqcpu.cpp +++ b/src/devices/cpu/cubeqcpu/cubeqcpu.cpp @@ -70,13 +70,13 @@ enum alu_dst ***************************************************************************/ -const device_type CQUESTSND = device_creator; -const device_type CQUESTROT = device_creator; -const device_type CQUESTLIN = device_creator; +DEFINE_DEVICE_TYPE(CQUESTSND, cquestsnd_cpu_device, "cquestsnd", "Cube Quest Sound CPU") +DEFINE_DEVICE_TYPE(CQUESTROT, cquestrot_cpu_device, "cquestrot", "Cube Quest Rotate CPU") +DEFINE_DEVICE_TYPE(CQUESTLIN, cquestlin_cpu_device, "cquestlin", "Cube Quest Line CPU") cquestsnd_cpu_device::cquestsnd_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cpu_device(mconfig, CQUESTSND, "Cube Quest Sound CPU", tag, owner, clock, "cquestsnd", __FILE__) + : cpu_device(mconfig, CQUESTSND, tag, owner, clock) , m_program_config("program", ENDIANNESS_BIG, 64, 8, -3) , m_dac_w(*this) , m_sound_region_tag(nullptr) @@ -92,7 +92,7 @@ offs_t cquestsnd_cpu_device::disasm_disassemble(std::ostream &stream, offs_t pc, cquestrot_cpu_device::cquestrot_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cpu_device(mconfig, CQUESTROT, "Cube Quest Rotate CPU", tag, owner, clock, "cquestrot", __FILE__) + : cpu_device(mconfig, CQUESTROT, tag, owner, clock) , m_program_config("program", ENDIANNESS_BIG, 64, 9, -3) , m_linedata_w(*this) { @@ -113,7 +113,7 @@ offs_t cquestrot_cpu_device::disasm_disassemble(std::ostream &stream, offs_t pc, cquestlin_cpu_device::cquestlin_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cpu_device(mconfig, CQUESTLIN, "Cube Quest Line CPU", tag, owner, clock, "cquestlin", __FILE__) + : cpu_device(mconfig, CQUESTLIN, tag, owner, clock) , m_program_config("program", ENDIANNESS_BIG, 64, 8, -3) , m_linedata_r(*this) , m_flags(0) diff --git a/src/devices/cpu/cubeqcpu/cubeqcpu.h b/src/devices/cpu/cubeqcpu/cubeqcpu.h index 590993d07d5..c63893a0a42 100644 --- a/src/devices/cpu/cubeqcpu/cubeqcpu.h +++ b/src/devices/cpu/cubeqcpu/cubeqcpu.h @@ -8,110 +8,8 @@ ***************************************************************************/ -#ifndef _CUBEQCPU_H -#define _CUBEQCPU_H - - -/*************************************************************************** - COMPILE-TIME DEFINITIONS -***************************************************************************/ - - -/*************************************************************************** - GLOBAL CONSTANTS -***************************************************************************/ - - -/*************************************************************************** - REGISTER ENUMERATION -***************************************************************************/ - -enum -{ - CQUESTSND_PC = 1, - CQUESTSND_Q, - CQUESTSND_RAM0, - CQUESTSND_RAM1, - CQUESTSND_RAM2, - CQUESTSND_RAM3, - CQUESTSND_RAM4, - CQUESTSND_RAM5, - CQUESTSND_RAM6, - CQUESTSND_RAM7, - CQUESTSND_RAM8, - CQUESTSND_RAM9, - CQUESTSND_RAMA, - CQUESTSND_RAMB, - CQUESTSND_RAMC, - CQUESTSND_RAMD, - CQUESTSND_RAME, - CQUESTSND_RAMF, - CQUESTSND_RTNLATCH, - CQUESTSND_ADRCNTR, - CQUESTSND_DINLATCH -}; - -enum -{ - CQUESTROT_PC = 1, - CQUESTROT_Q, - CQUESTROT_RAM0, - CQUESTROT_RAM1, - CQUESTROT_RAM2, - CQUESTROT_RAM3, - CQUESTROT_RAM4, - CQUESTROT_RAM5, - CQUESTROT_RAM6, - CQUESTROT_RAM7, - CQUESTROT_RAM8, - CQUESTROT_RAM9, - CQUESTROT_RAMA, - CQUESTROT_RAMB, - CQUESTROT_RAMC, - CQUESTROT_RAMD, - CQUESTROT_RAME, - CQUESTROT_RAMF, - CQUESTROT_SEQCNT, - CQUESTROT_DYNADDR, - CQUESTROT_DYNDATA, - CQUESTROT_YRLATCH, - CQUESTROT_YDLATCH, - CQUESTROT_DINLATCH, - CQUESTROT_DSRCLATCH, - CQUESTROT_RSRCLATCH, - CQUESTROT_LDADDR, - CQUESTROT_LDDATA -}; - -enum -{ - CQUESTLIN_FGPC = 1, - CQUESTLIN_BGPC, - CQUESTLIN_Q, - CQUESTLIN_RAM0, - CQUESTLIN_RAM1, - CQUESTLIN_RAM2, - CQUESTLIN_RAM3, - CQUESTLIN_RAM4, - CQUESTLIN_RAM5, - CQUESTLIN_RAM6, - CQUESTLIN_RAM7, - CQUESTLIN_RAM8, - CQUESTLIN_RAM9, - CQUESTLIN_RAMA, - CQUESTLIN_RAMB, - CQUESTLIN_RAMC, - CQUESTLIN_RAMD, - CQUESTLIN_RAME, - CQUESTLIN_RAMF, - CQUESTLIN_FADLATCH, - CQUESTLIN_BADLATCH, - CQUESTLIN_SREG, - CQUESTLIN_XCNT, - CQUESTLIN_YCNT, - CQUESTLIN_CLATCH, - CQUESTLIN_ZLATCH -}; +#ifndef MAME_CPU_CUBEQCPU_CUBEQCPU_H +#define MAME_CPU_CUBEQCPU_CUBEQCPU_H /*************************************************************************** @@ -143,13 +41,38 @@ public: cquestsnd_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // static configuration helpers - template static devcb_base &set_dac_w(device_t &device, _Object object) { return downcast(device).m_dac_w.set_callback(object); } + template static devcb_base &set_dac_w(device_t &device, Object &&cb) { return downcast(device).m_dac_w.set_callback(std::forward(cb)); } static void set_sound_region(device_t &device, const char *tag) { downcast(device).m_sound_region_tag = tag; } DECLARE_WRITE16_MEMBER(sndram_w); DECLARE_READ16_MEMBER(sndram_r); protected: + enum + { + CQUESTSND_PC = 1, + CQUESTSND_Q, + CQUESTSND_RAM0, + CQUESTSND_RAM1, + CQUESTSND_RAM2, + CQUESTSND_RAM3, + CQUESTSND_RAM4, + CQUESTSND_RAM5, + CQUESTSND_RAM6, + CQUESTSND_RAM7, + CQUESTSND_RAM8, + CQUESTSND_RAM9, + CQUESTSND_RAMA, + CQUESTSND_RAMB, + CQUESTSND_RAMC, + CQUESTSND_RAMD, + CQUESTSND_RAME, + CQUESTSND_RAMF, + CQUESTSND_RTNLATCH, + CQUESTSND_ADRCNTR, + CQUESTSND_DINLATCH + }; + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -211,13 +134,45 @@ public: cquestrot_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // static configuration helpers - template static devcb_base &set_linedata_w(device_t &device, _Object object) { return downcast(device).m_linedata_w.set_callback(object); } + template static devcb_base &set_linedata_w(device_t &device, Object &&cb) { return downcast(device).m_linedata_w.set_callback(std::forward(cb)); } DECLARE_READ16_MEMBER(linedata_r); DECLARE_WRITE16_MEMBER(rotram_w); DECLARE_READ16_MEMBER(rotram_r); protected: + enum + { + CQUESTROT_PC = 1, + CQUESTROT_Q, + CQUESTROT_RAM0, + CQUESTROT_RAM1, + CQUESTROT_RAM2, + CQUESTROT_RAM3, + CQUESTROT_RAM4, + CQUESTROT_RAM5, + CQUESTROT_RAM6, + CQUESTROT_RAM7, + CQUESTROT_RAM8, + CQUESTROT_RAM9, + CQUESTROT_RAMA, + CQUESTROT_RAMB, + CQUESTROT_RAMC, + CQUESTROT_RAMD, + CQUESTROT_RAME, + CQUESTROT_RAMF, + CQUESTROT_SEQCNT, + CQUESTROT_DYNADDR, + CQUESTROT_DYNDATA, + CQUESTROT_YRLATCH, + CQUESTROT_YDLATCH, + CQUESTROT_DINLATCH, + CQUESTROT_DSRCLATCH, + CQUESTROT_RSRCLATCH, + CQUESTROT_LDADDR, + CQUESTROT_LDDATA + }; + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -293,7 +248,7 @@ public: cquestlin_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // static configuration helpers - template static devcb_base &set_linedata_r(device_t &device, _Object object) { return downcast(device).m_linedata_r.set_callback(object); } + template static devcb_base &set_linedata_r(device_t &device, Object &&cb) { return downcast(device).m_linedata_r.set_callback(std::forward(cb)); } DECLARE_WRITE16_MEMBER( linedata_w ); void cubeqcpu_swap_line_banks(); @@ -302,6 +257,36 @@ public: uint32_t* cubeqcpu_get_stack_ram(); protected: + enum + { + CQUESTLIN_FGPC = 1, + CQUESTLIN_BGPC, + CQUESTLIN_Q, + CQUESTLIN_RAM0, + CQUESTLIN_RAM1, + CQUESTLIN_RAM2, + CQUESTLIN_RAM3, + CQUESTLIN_RAM4, + CQUESTLIN_RAM5, + CQUESTLIN_RAM6, + CQUESTLIN_RAM7, + CQUESTLIN_RAM8, + CQUESTLIN_RAM9, + CQUESTLIN_RAMA, + CQUESTLIN_RAMB, + CQUESTLIN_RAMC, + CQUESTLIN_RAMD, + CQUESTLIN_RAME, + CQUESTLIN_RAMF, + CQUESTLIN_FADLATCH, + CQUESTLIN_BADLATCH, + CQUESTLIN_SREG, + CQUESTLIN_XCNT, + CQUESTLIN_YCNT, + CQUESTLIN_CLATCH, + CQUESTLIN_ZLATCH + }; + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -376,9 +361,9 @@ private: }; -extern const device_type CQUESTSND; -extern const device_type CQUESTROT; -extern const device_type CQUESTLIN; +DECLARE_DEVICE_TYPE(CQUESTSND, cquestsnd_cpu_device) +DECLARE_DEVICE_TYPE(CQUESTROT, cquestrot_cpu_device) +DECLARE_DEVICE_TYPE(CQUESTLIN, cquestlin_cpu_device) -#endif /* _CUBEQCPU_H */ +#endif // MAME_CPU_CUBEQCPU_CUBEQCPU_H diff --git a/src/devices/cpu/dsp16/dsp16.cpp b/src/devices/cpu/dsp16/dsp16.cpp index e9b6444b162..fc210f818d1 100644 --- a/src/devices/cpu/dsp16/dsp16.cpp +++ b/src/devices/cpu/dsp16/dsp16.cpp @@ -27,7 +27,7 @@ //************************************************************************** // device type definition -const device_type DSP16 = device_creator; +DEFINE_DEVICE_TYPE(DSP16, dsp16_device, "dsp16", "DSP16") //------------------------------------------------- @@ -35,7 +35,7 @@ const device_type DSP16 = device_creator; //------------------------------------------------- dsp16_device::dsp16_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cpu_device(mconfig, DSP16, "DSP16", tag, owner, clock, "dsp16", __FILE__), + : cpu_device(mconfig, DSP16, tag, owner, clock), m_program_config("program", ENDIANNESS_LITTLE, 16, 16, -1), m_data_config("data", ENDIANNESS_LITTLE, 16, 16, -1), m_i(0), diff --git a/src/devices/cpu/dsp16/dsp16.h b/src/devices/cpu/dsp16/dsp16.h index e138edae5b4..26768a4a862 100644 --- a/src/devices/cpu/dsp16/dsp16.h +++ b/src/devices/cpu/dsp16/dsp16.h @@ -8,10 +8,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_CPU_DSP16_DSP16_H +#define MAME_CPU_DSP16_DSP16_H -#ifndef __DSP16_H__ -#define __DSP16_H__ +#pragma once //************************************************************************** @@ -29,6 +29,40 @@ public: // public interfaces protected: + enum + { + DSP16_I, // ROM Address Arithmetic Unit (XAAU) + DSP16_PC, + DSP16_PT, + DSP16_PR, + DSP16_PI, + DSP16_J, // RAM Address Arithmetic Unit (YAAU) + DSP16_K, + DSP16_RB, + DSP16_RE, + DSP16_R0, + DSP16_R1, + DSP16_R2, + DSP16_R3, + DSP16_X, // Data Arithmetic Unit (DAU) + DSP16_Y, + DSP16_P, + DSP16_A0, + DSP16_A1, + DSP16_AUC, + DSP16_PSW, + DSP16_C0, + DSP16_C1, + DSP16_C2, + DSP16_SIOC, + DSP16_SRTA, + DSP16_SDX, + DSP16_PIOC, + DSP16_PDX0, + DSP16_PDX1 + }; + + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -147,45 +181,6 @@ protected: // device type definition -extern const device_type DSP16; - - -/*************************************************************************** - REGISTER ENUMERATION -***************************************************************************/ - -enum -{ - DSP16_I, // ROM Address Arithmetic Unit (XAAU) - DSP16_PC, - DSP16_PT, - DSP16_PR, - DSP16_PI, - DSP16_J, // RAM Address Arithmetic Unit (YAAU) - DSP16_K, - DSP16_RB, - DSP16_RE, - DSP16_R0, - DSP16_R1, - DSP16_R2, - DSP16_R3, - DSP16_X, // Data Arithmetic Unit (DAU) - DSP16_Y, - DSP16_P, - DSP16_A0, - DSP16_A1, - DSP16_AUC, - DSP16_PSW, - DSP16_C0, - DSP16_C1, - DSP16_C2, - DSP16_SIOC, - DSP16_SRTA, - DSP16_SDX, - DSP16_PIOC, - DSP16_PDX0, - DSP16_PDX1 -}; - +DECLARE_DEVICE_TYPE(DSP16, dsp16_device) -#endif /* __DSP16_H__ */ +#endif // MAME_CPU_DSP16_DSP16_H diff --git a/src/devices/cpu/dsp32/dsp32.cpp b/src/devices/cpu/dsp32/dsp32.cpp index 18a50dc0b26..f87fa710fb8 100644 --- a/src/devices/cpu/dsp32/dsp32.cpp +++ b/src/devices/cpu/dsp32/dsp32.cpp @@ -29,8 +29,8 @@ ***************************************************************************/ #include "emu.h" -#include "debugger.h" #include "dsp32.h" +#include "debugger.h" //************************************************************************** @@ -136,14 +136,14 @@ // DEVICE INTERFACE //************************************************************************** -const device_type DSP32C = device_creator; +DEFINE_DEVICE_TYPE(DSP32C, dsp32c_device, "dsp32c", "DSP32C") //------------------------------------------------- // dsp32c_device - constructor //------------------------------------------------- dsp32c_device::dsp32c_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cpu_device(mconfig, DSP32C, "DSP32C", tag, owner, clock, "dsp32c", __FILE__), + : cpu_device(mconfig, DSP32C, tag, owner, clock), m_program_config("program", ENDIANNESS_LITTLE, 32, 24), m_pin(0), m_pout(0), diff --git a/src/devices/cpu/dsp32/dsp32.h b/src/devices/cpu/dsp32/dsp32.h index 4b39600284a..6efdebdbf21 100644 --- a/src/devices/cpu/dsp32/dsp32.h +++ b/src/devices/cpu/dsp32/dsp32.h @@ -7,10 +7,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_CPU_DSP32_DSP32_H +#define MAME_CPU_DSP32_DSP32_H -#ifndef __DSP32_H__ -#define __DSP32_H__ +#pragma once //************************************************************************** @@ -25,63 +25,6 @@ const int DSP32_IRQ1 = 1; // IRQ1 const int DSP32_OUTPUT_PIF = 0x01; const int DSP32_OUTPUT_PDF = 0x02; -// register enumeration -enum -{ - // CAU - DSP32_PC=1, - DSP32_R0, - DSP32_R1, - DSP32_R2, - DSP32_R3, - DSP32_R4, - DSP32_R5, - DSP32_R6, - DSP32_R7, - DSP32_R8, - DSP32_R9, - DSP32_R10, - DSP32_R11, - DSP32_R12, - DSP32_R13, - DSP32_R14, - DSP32_R15, - DSP32_R16, - DSP32_R17, - DSP32_R18, - DSP32_R19, - DSP32_R20, - DSP32_R21, - DSP32_R22, - DSP32_PIN, - DSP32_POUT, - DSP32_IVTP, - - // DAU - DSP32_A0, - DSP32_A1, - DSP32_A2, - DSP32_A3, - DSP32_DAUC, - - // PIO - DSP32_PAR, - DSP32_PDR, - DSP32_PIR, - DSP32_PCR, - DSP32_EMR, - DSP32_ESR, - DSP32_PCW, - DSP32_PIOP, - - // SIO - DSP32_IBUF, - DSP32_ISR, - DSP32_OBUF, - DSP32_OSR, - DSP32_IOC -}; - //************************************************************************** // TYPE DEFINITIONS @@ -98,7 +41,7 @@ public: // construction/destruction dsp32c_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_output_pins_callback(device_t &device, _Object object) { return downcast(device).m_output_pins_changed.set_callback(object); } + template static devcb_base &set_output_pins_callback(device_t &device, Object &&cb) { return downcast(device).m_output_pins_changed.set_callback(std::forward(cb)); } // public interfaces @@ -106,6 +49,63 @@ public: int pio_r(int reg); protected: + // register enumeration + enum + { + // CAU + DSP32_PC=1, + DSP32_R0, + DSP32_R1, + DSP32_R2, + DSP32_R3, + DSP32_R4, + DSP32_R5, + DSP32_R6, + DSP32_R7, + DSP32_R8, + DSP32_R9, + DSP32_R10, + DSP32_R11, + DSP32_R12, + DSP32_R13, + DSP32_R14, + DSP32_R15, + DSP32_R16, + DSP32_R17, + DSP32_R18, + DSP32_R19, + DSP32_R20, + DSP32_R21, + DSP32_R22, + DSP32_PIN, + DSP32_POUT, + DSP32_IVTP, + + // DAU + DSP32_A0, + DSP32_A1, + DSP32_A2, + DSP32_A3, + DSP32_DAUC, + + // PIO + DSP32_PAR, + DSP32_PDR, + DSP32_PIR, + DSP32_PCR, + DSP32_EMR, + DSP32_ESR, + DSP32_PCW, + DSP32_PIOP, + + // SIO + DSP32_IBUF, + DSP32_ISR, + DSP32_OBUF, + DSP32_OSR, + DSP32_IOC + }; + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -432,8 +432,6 @@ protected: }; -extern const device_type DSP32C; - - +DECLARE_DEVICE_TYPE(DSP32C, dsp32c_device) -#endif /* __DSP32_H__ */ +#endif // MAME_CPU_DSP32_DSP32_H diff --git a/src/devices/cpu/dsp56k/dsp56k.cpp b/src/devices/cpu/dsp56k/dsp56k.cpp index f75d720c2f7..e7ac94434e9 100644 --- a/src/devices/cpu/dsp56k/dsp56k.cpp +++ b/src/devices/cpu/dsp56k/dsp56k.cpp @@ -32,16 +32,14 @@ ***************************************************************************/ #include "emu.h" +#include "dsp56k.h" + #include "opcode.h" -#include "emu.h" #include "debugger.h" -#include "dsp56k.h" #include "dsp56def.h" -using namespace DSP56K; - /*************************************************************************** COMPONENT FUNCTIONALITY ***************************************************************************/ @@ -61,6 +59,11 @@ using namespace DSP56K; #include "dsp56mem.h" +DEFINE_DEVICE_TYPE_NS(DSP56156, DSP56K, dsp56k_device, "dsp56156", "DSP56156") + + +namespace DSP56K { + enum { // PCU @@ -102,9 +105,6 @@ enum }; -const device_type DSP56156 = device_creator; - - /**************************************************************************** * Internal Memory Maps ****************************************************************************/ @@ -120,7 +120,7 @@ ADDRESS_MAP_END dsp56k_device::dsp56k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cpu_device(mconfig, DSP56156, "DSP56156", tag, owner, clock, "dsp56156", __FILE__) + : cpu_device(mconfig, DSP56156, tag, owner, clock) , m_program_config("program", ENDIANNESS_LITTLE, 16, 16, -1, ADDRESS_MAP_NAME(dsp56156_program_map)) , m_data_config("data", ENDIANNESS_LITTLE, 16, 16, -1, ADDRESS_MAP_NAME(dsp56156_x_data_map)) , m_program_ram(*this, "dsk56k_program_ram") @@ -497,6 +497,7 @@ void dsp56k_device::execute_run() offs_t dsp56k_device::disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) { - extern CPU_DISASSEMBLE( dsp56k ); return CPU_DISASSEMBLE_NAME(dsp56k)(this, stream, pc, oprom, opram, options); } + +} // namespace DSP56K diff --git a/src/devices/cpu/dsp56k/dsp56k.h b/src/devices/cpu/dsp56k/dsp56k.h index 6053aa0557a..fe186684655 100644 --- a/src/devices/cpu/dsp56k/dsp56k.h +++ b/src/devices/cpu/dsp56k/dsp56k.h @@ -9,10 +9,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_CPU_DSP56K_DSP56K_H +#define MAME_CPU_DSP56K_DSP56K_H -#ifndef __DSP56K_H__ -#define __DSP56K_H__ +#pragma once @@ -24,6 +24,8 @@ #define DSP56K_IRQ_RESET 3 /* Is this needed? */ +namespace DSP56K { + /*************************************************************************** STRUCTURES & TYPEDEFS ***************************************************************************/ @@ -246,11 +248,14 @@ private: void agu_init(); void alu_init(); - }; +} // namespace DSP56K + -extern const device_type DSP56156; +DECLARE_DEVICE_TYPE_NS(DSP56156, DSP56K, dsp56k_device) +using DSP56K::dsp56k_device; +extern CPU_DISASSEMBLE( dsp56k ); -#endif /* __DSP56K_H__ */ +#endif // MAME_CPU_DSP56K_DSP56K_H diff --git a/src/devices/cpu/dsp56k/dsp56mem.cpp b/src/devices/cpu/dsp56k/dsp56mem.cpp index 31ed7503acb..257865cb325 100644 --- a/src/devices/cpu/dsp56k/dsp56mem.cpp +++ b/src/devices/cpu/dsp56k/dsp56mem.cpp @@ -7,8 +7,8 @@ #include "dsp56mem.h" #include "dsp56pcu.h" -namespace DSP56K -{ +namespace DSP56K { + /* IPR Accessor Implementations */ void IPR_set(dsp56k_core* cpustate, uint16_t value) { @@ -486,9 +486,6 @@ void dsp56k_io_reset(dsp56k_core* cpustate) } -} // namespace DSP56K - - /* Work */ READ16_MEMBER( dsp56k_device::peripheral_register_r ) { @@ -947,3 +944,6 @@ uint16_t dsp56k_device::get_peripheral_memory(uint16_t addr) dsp56k_core* cpustate = &m_dsp56k_core; return cpustate->peripheral_ram[A2O(addr)]; } + + +} // namespace DSP56K diff --git a/src/devices/cpu/dsp56k/dsp56mem.h b/src/devices/cpu/dsp56k/dsp56mem.h index c80e278758e..2ceabc31c1e 100644 --- a/src/devices/cpu/dsp56k/dsp56mem.h +++ b/src/devices/cpu/dsp56k/dsp56mem.h @@ -1,12 +1,12 @@ // license:BSD-3-Clause // copyright-holders:Andrew Gardner -#ifndef __DSP56_MEM_H__ -#define __DSP56_MEM_H__ +#ifndef MAME_CPU_DSP56K_DSP56MEM_H +#define MAME_CPU_DSP56K_DSP56MEM_H #include "dsp56k.h" -namespace DSP56K -{ +namespace DSP56K { + /*************************************************************************** MEMORY ***************************************************************************/ @@ -238,4 +238,4 @@ void PCD_set(dsp56k_core* cpustate, uint16_t value); } // namespace DSP56K -#endif +#endif // MAME_CPU_DSP56K_DSP56MEM_H diff --git a/src/devices/cpu/e0c6200/e0c6200.cpp b/src/devices/cpu/e0c6200/e0c6200.cpp index ace906943a0..7e20728f549 100644 --- a/src/devices/cpu/e0c6200/e0c6200.cpp +++ b/src/devices/cpu/e0c6200/e0c6200.cpp @@ -23,6 +23,14 @@ #include "debugger.h" +// construction/destruction +e0c6200_cpu_device::e0c6200_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, address_map_constructor program, address_map_constructor data) + : cpu_device(mconfig, type, tag, owner, clock) + , m_program_config("program", ENDIANNESS_BIG, 16, 13, -1, program) + , m_data_config("data", ENDIANNESS_BIG, 8, 12, 0, data), m_program(nullptr), m_data(nullptr), m_op(0), m_prev_op(0), m_irq_vector(0), m_irq_id(0), m_possible_irq(false), m_halt(false), + m_sleep(false), m_icount(0), m_pc(0), m_prev_pc(0), m_npc(0), m_jpc(0), m_a(0), m_b(0), m_xp(0), m_xh(0), m_xl(0), m_yp(0), m_yh(0), m_yl(0), m_sp(0), m_f(0) +{ } + // disasm void e0c6200_cpu_device::state_string_export(const device_state_entry &entry, std::string &str) const { diff --git a/src/devices/cpu/e0c6200/e0c6200.h b/src/devices/cpu/e0c6200/e0c6200.h index 5f250d4f444..6539abfda88 100644 --- a/src/devices/cpu/e0c6200/e0c6200.h +++ b/src/devices/cpu/e0c6200/e0c6200.h @@ -6,21 +6,15 @@ */ -#ifndef _E0C6200_H_ -#define _E0C6200_H_ - +#ifndef MAME_CPU_E0C6200_E0C6200_H +#define MAME_CPU_E0C6200_E0C6200_H class e0c6200_cpu_device : public cpu_device { public: // construction/destruction - e0c6200_cpu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, u32 clock, address_map_constructor program, address_map_constructor data, const char *shortname, const char *source) - : cpu_device(mconfig, type, name, tag, owner, clock, shortname, source) - , m_program_config("program", ENDIANNESS_BIG, 16, 13, -1, program) - , m_data_config("data", ENDIANNESS_BIG, 8, 12, 0, data), m_program(nullptr), m_data(nullptr), m_op(0), m_prev_op(0), m_irq_vector(0), m_irq_id(0), m_possible_irq(false), m_halt(false), - m_sleep(false), m_icount(0), m_pc(0), m_prev_pc(0), m_npc(0), m_jpc(0), m_a(0), m_b(0), m_xp(0), m_xh(0), m_xl(0), m_yp(0), m_yh(0), m_yl(0), m_sp(0), m_f(0) - { } + e0c6200_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, address_map_constructor program, address_map_constructor data); protected: // device-level overrides @@ -115,6 +109,4 @@ protected: u8 op_rrc(u8 x); }; - - -#endif /* _E0C6200_H_ */ +#endif // MAME_CPU_E0C6200_E0C6200_H diff --git a/src/devices/cpu/e0c6200/e0c6s46.cpp b/src/devices/cpu/e0c6200/e0c6s46.cpp index 5c412667c2e..2a9ca96d543 100644 --- a/src/devices/cpu/e0c6200/e0c6s46.cpp +++ b/src/devices/cpu/e0c6200/e0c6s46.cpp @@ -28,7 +28,7 @@ enum IRQREG_INPUT1 }; -const device_type E0C6S46 = device_creator; +DEFINE_DEVICE_TYPE(E0C6S46, e0c6s46_device, "e0c6s46", "Seiko Epson E0C6S46") // internal memory maps @@ -47,7 +47,7 @@ ADDRESS_MAP_END // device definitions e0c6s46_device::e0c6s46_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : e0c6200_cpu_device(mconfig, E0C6S46, "E0C6S46", tag, owner, clock, ADDRESS_MAP_NAME(e0c6s46_program), ADDRESS_MAP_NAME(e0c6s46_data), "e0c6s46", __FILE__) + : e0c6200_cpu_device(mconfig, E0C6S46, tag, owner, clock, ADDRESS_MAP_NAME(e0c6s46_program), ADDRESS_MAP_NAME(e0c6s46_data)) , m_vram1(*this, "vram1") , m_vram2(*this, "vram2"), m_osc(0), m_svd(0), m_lcd_control(0), m_lcd_contrast(0) , m_pixel_update_handler(nullptr) diff --git a/src/devices/cpu/e0c6200/e0c6s46.h b/src/devices/cpu/e0c6200/e0c6s46.h index d4e4d0f50af..ca432e52481 100644 --- a/src/devices/cpu/e0c6200/e0c6s46.h +++ b/src/devices/cpu/e0c6200/e0c6s46.h @@ -6,8 +6,8 @@ */ -#ifndef _E0C6S46_H_ -#define _E0C6S46_H_ +#ifndef MAME_CPU_E0C6200_E0C6S46_H +#define MAME_CPU_E0C6200_E0C6S46_H #include "e0c6200.h" @@ -59,32 +59,33 @@ enum #define MCFG_E0C6S46_PIXEL_UPDATE_CB(_cb) \ e0c6s46_device::static_set_pixel_update_cb(*device, _cb); -typedef void (*e0c6s46_pixel_update_func)(device_t &device, bitmap_ind16 &bitmap, const rectangle &cliprect, int contrast, int seg, int com, int state); #define E0C6S46_PIXEL_UPDATE_CB(name) void name(device_t &device, bitmap_ind16 &bitmap, const rectangle &cliprect, int contrast, int seg, int com, int state) class e0c6s46_device : public e0c6200_cpu_device { public: + typedef void (*pixel_update_func)(device_t &device, bitmap_ind16 &bitmap, const rectangle &cliprect, int contrast, int seg, int com, int state); + e0c6s46_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); // static configuration helpers - template static devcb_base &set_write_r0_callback(device_t &device, _Object object) { return downcast(device).m_write_r0.set_callback(object); } - template static devcb_base &set_write_r1_callback(device_t &device, _Object object) { return downcast(device).m_write_r1.set_callback(object); } - template static devcb_base &set_write_r2_callback(device_t &device, _Object object) { return downcast(device).m_write_r2.set_callback(object); } - template static devcb_base &set_write_r3_callback(device_t &device, _Object object) { return downcast(device).m_write_r3.set_callback(object); } - template static devcb_base &set_write_r4_callback(device_t &device, _Object object) { return downcast(device).m_write_r4.set_callback(object); } - - template static devcb_base &set_read_p0_callback(device_t &device, _Object object) { return downcast(device).m_read_p0.set_callback(object); } - template static devcb_base &set_read_p1_callback(device_t &device, _Object object) { return downcast(device).m_read_p1.set_callback(object); } - template static devcb_base &set_read_p2_callback(device_t &device, _Object object) { return downcast(device).m_read_p2.set_callback(object); } - template static devcb_base &set_read_p3_callback(device_t &device, _Object object) { return downcast(device).m_read_p3.set_callback(object); } - template static devcb_base &set_write_p0_callback(device_t &device, _Object object) { return downcast(device).m_write_p0.set_callback(object); } - template static devcb_base &set_write_p1_callback(device_t &device, _Object object) { return downcast(device).m_write_p1.set_callback(object); } - template static devcb_base &set_write_p2_callback(device_t &device, _Object object) { return downcast(device).m_write_p2.set_callback(object); } - template static devcb_base &set_write_p3_callback(device_t &device, _Object object) { return downcast(device).m_write_p3.set_callback(object); } - - static void static_set_pixel_update_cb(device_t &device, e0c6s46_pixel_update_func _cb) { downcast(device).m_pixel_update_handler = _cb; } + template static devcb_base &set_write_r0_callback(device_t &device, Object &&cb) { return downcast(device).m_write_r0.set_callback(std::forward(cb)); } + template static devcb_base &set_write_r1_callback(device_t &device, Object &&cb) { return downcast(device).m_write_r1.set_callback(std::forward(cb)); } + template static devcb_base &set_write_r2_callback(device_t &device, Object &&cb) { return downcast(device).m_write_r2.set_callback(std::forward(cb)); } + template static devcb_base &set_write_r3_callback(device_t &device, Object &&cb) { return downcast(device).m_write_r3.set_callback(std::forward(cb)); } + template static devcb_base &set_write_r4_callback(device_t &device, Object &&cb) { return downcast(device).m_write_r4.set_callback(std::forward(cb)); } + + template static devcb_base &set_read_p0_callback(device_t &device, Object &&cb) { return downcast(device).m_read_p0.set_callback(std::forward(cb)); } + template static devcb_base &set_read_p1_callback(device_t &device, Object &&cb) { return downcast(device).m_read_p1.set_callback(std::forward(cb)); } + template static devcb_base &set_read_p2_callback(device_t &device, Object &&cb) { return downcast(device).m_read_p2.set_callback(std::forward(cb)); } + template static devcb_base &set_read_p3_callback(device_t &device, Object &&cb) { return downcast(device).m_read_p3.set_callback(std::forward(cb)); } + template static devcb_base &set_write_p0_callback(device_t &device, Object &&cb) { return downcast(device).m_write_p0.set_callback(std::forward(cb)); } + template static devcb_base &set_write_p1_callback(device_t &device, Object &&cb) { return downcast(device).m_write_p1.set_callback(std::forward(cb)); } + template static devcb_base &set_write_p2_callback(device_t &device, Object &&cb) { return downcast(device).m_write_p2.set_callback(std::forward(cb)); } + template static devcb_base &set_write_p3_callback(device_t &device, Object &&cb) { return downcast(device).m_write_p3.set_callback(std::forward(cb)); } + + static void static_set_pixel_update_cb(device_t &device, pixel_update_func cb) { downcast(device).m_pixel_update_handler = cb; } DECLARE_READ8_MEMBER(io_r); DECLARE_WRITE8_MEMBER(io_w); @@ -113,7 +114,7 @@ private: u8 m_lcd_control; u8 m_lcd_contrast; - e0c6s46_pixel_update_func m_pixel_update_handler; + pixel_update_func m_pixel_update_handler; // i/o ports devcb_write8 m_write_r0, m_write_r1, m_write_r2, m_write_r3, m_write_r4; @@ -176,7 +177,6 @@ private: }; +DECLARE_DEVICE_TYPE(E0C6S46, e0c6s46_device) -extern const device_type E0C6S46; - -#endif /* _E0C6S46_H_ */ +#endif // MAME_CPU_E0C6200_E0C6S46_H diff --git a/src/devices/cpu/e132xs/32xsdasm.cpp b/src/devices/cpu/e132xs/32xsdasm.cpp index b44da23a7bb..ec853983346 100644 --- a/src/devices/cpu/e132xs/32xsdasm.cpp +++ b/src/devices/cpu/e132xs/32xsdasm.cpp @@ -8,8 +8,11 @@ */ #include "emu.h" -#include "debugger.h" #include "e132xs.h" +#include "debugger.h" + +#include "32xsdefs.h" + static const char *const L_REG[] = { diff --git a/src/devices/cpu/e132xs/32xsdefs.h b/src/devices/cpu/e132xs/32xsdefs.h new file mode 100644 index 00000000000..164377f0060 --- /dev/null +++ b/src/devices/cpu/e132xs/32xsdefs.h @@ -0,0 +1,96 @@ +// license:BSD-3-Clause +// copyright-holders:Pierpaolo Prazzoli +#ifndef MAME_CPU_E132XS_XS32DEFS_H +#define MAME_CPU_E132XS_XS32DEFS_H + +/*************************************************************************** + COMPILE-TIME DEFINITIONS +***************************************************************************/ + +#define PC_REGISTER 0 +#define SR_REGISTER 1 +#define BCR_REGISTER 20 +#define TPR_REGISTER 21 +#define TCR_REGISTER 22 +#define TR_REGISTER 23 +#define ISR_REGISTER 25 +#define FCR_REGISTER 26 +#define MCR_REGISTER 27 + +#define X_CODE(val) ((val & 0x7000) >> 12) +#define E_BIT(val) ((val & 0x8000) >> 15) +#define S_BIT_CONST(val) ((val & 0x4000) >> 14) +#define DD(val) ((val & 0x3000) >> 12) + + +/* Extended DSP instructions */ +#define EMUL 0x102 +#define EMULU 0x104 +#define EMULS 0x106 +#define EMAC 0x10a +#define EMACD 0x10e +#define EMSUB 0x11a +#define EMSUBD 0x11e +#define EHMAC 0x02a +#define EHMACD 0x02e +#define EHCMULD 0x046 +#define EHCMACD 0x04e +#define EHCSUMD 0x086 +#define EHCFFTD 0x096 +#define EHCFFTSD 0x296 + +/* Delay values */ +#define NO_DELAY 0 +#define DELAY_EXECUTE 1 + +/* IRQ numbers */ +#define IRQ_INT1 0 +#define IRQ_INT2 1 +#define IRQ_INT3 2 +#define IRQ_INT4 3 +#define IRQ_IO1 4 +#define IRQ_IO2 5 +#define IRQ_IO3 6 + +/* Trap numbers */ +#define TRAPNO_IO2 48 +#define TRAPNO_IO1 49 +#define TRAPNO_INT4 50 +#define TRAPNO_INT3 51 +#define TRAPNO_INT2 52 +#define TRAPNO_INT1 53 +#define TRAPNO_IO3 54 +#define TRAPNO_TIMER 55 +#define TRAPNO_RESERVED1 56 +#define TRAPNO_TRACE_EXCEPTION 57 +#define TRAPNO_PARITY_ERROR 58 +#define TRAPNO_EXTENDED_OVERFLOW 59 +#define TRAPNO_RANGE_ERROR 60 +#define TRAPNO_PRIVILEGE_ERROR TRAPNO_RANGE_ERROR +#define TRAPNO_FRAME_ERROR TRAPNO_RANGE_ERROR +#define TRAPNO_RESERVED2 61 +#define TRAPNO_RESET 62 // reserved if not mapped @ MEM3 +#define TRAPNO_ERROR_ENTRY 63 // for instruction code of all ones + +/* Trap codes */ +#define TRAPLE 4 +#define TRAPGT 5 +#define TRAPLT 6 +#define TRAPGE 7 +#define TRAPSE 8 +#define TRAPHT 9 +#define TRAPST 10 +#define TRAPHE 11 +#define TRAPE 12 +#define TRAPNE 13 +#define TRAPV 14 +#define TRAP 15 + +/* Entry point to get trap locations or emulated code associated */ +#define E132XS_ENTRY_MEM0 0 +#define E132XS_ENTRY_MEM1 1 +#define E132XS_ENTRY_MEM2 2 +#define E132XS_ENTRY_IRAM 3 +#define E132XS_ENTRY_MEM3 7 + +#endif // MAME_CPU_E132XS_XS32DEFS_H diff --git a/src/devices/cpu/e132xs/e132xs.cpp b/src/devices/cpu/e132xs/e132xs.cpp index f6fef84cf77..56ab898685b 100644 --- a/src/devices/cpu/e132xs/e132xs.cpp +++ b/src/devices/cpu/e132xs/e132xs.cpp @@ -214,15 +214,43 @@ *********************************************************************/ #include "emu.h" -#include "debugger.h" #include "e132xs.h" +#include "debugger.h" + +#include "32xsdefs.h" + #ifdef MAME_DEBUG #define DEBUG_PRINTF(x) do { osd_printf_debug x; } while (0) #else #define DEBUG_PRINTF(x) do { } while (0) #endif +/* Memory access */ +/* read byte */ +#define READ_B(addr) m_program->read_byte((addr)) +/* read half-word */ +#define READ_HW(addr) m_program->read_word((addr) & ~1) +/* read word */ +#define READ_W(addr) m_program->read_dword((addr) & ~3) + +/* write byte */ +#define WRITE_B(addr, data) m_program->write_byte(addr, data) +/* write half-word */ +#define WRITE_HW(addr, data) m_program->write_word((addr) & ~1, data) +/* write word */ +#define WRITE_W(addr, data) m_program->write_dword((addr) & ~3, data) + + +/* I/O access */ +/* read word */ +#define IO_READ_W(addr) m_io->read_dword(((addr) >> 11) & 0x7ffc) +/* write word */ +#define IO_WRITE_W(addr, data) m_io->write_dword(((addr) >> 11) & 0x7ffc, data) + + +#define READ_OP(addr) m_direct->read_word((addr), m_opcodexor) + // set C in adds/addsi/subs/sums #define SETCARRYS 0 #define MISSIONCRAFT_FLAGS 1 @@ -318,9 +346,9 @@ ADDRESS_MAP_END // hyperstone_device - constructor //------------------------------------------------- -hyperstone_device::hyperstone_device(const machine_config &mconfig, const char *name, const char *tag, device_t *owner, uint32_t clock, - const device_type type, uint32_t prg_data_width, uint32_t io_data_width, address_map_constructor internal_map, const char *shortname, const char *source) - : cpu_device(mconfig, type, name, tag, owner, clock, shortname, source), +hyperstone_device::hyperstone_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock, + const device_type type, uint32_t prg_data_width, uint32_t io_data_width, address_map_constructor internal_map) + : cpu_device(mconfig, type, tag, owner, clock), m_program_config("program", ENDIANNESS_BIG, prg_data_width, 32, 0, internal_map), m_io_config("io", ENDIANNESS_BIG, io_data_width, 15), m_icount(0) @@ -336,7 +364,7 @@ hyperstone_device::hyperstone_device(const machine_config &mconfig, const char * //------------------------------------------------- e116t_device::e116t_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : hyperstone_device(mconfig, "E1-16T", tag, owner, clock, E116T, 16, 16, ADDRESS_MAP_NAME(e116_4k_iram_map), "e116t", __FILE__) + : hyperstone_device(mconfig, tag, owner, clock, E116T, 16, 16, ADDRESS_MAP_NAME(e116_4k_iram_map)) { } @@ -346,7 +374,7 @@ e116t_device::e116t_device(const machine_config &mconfig, const char *tag, devic //------------------------------------------------- e116xt_device::e116xt_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : hyperstone_device(mconfig, "E1-16XT", tag, owner, clock, E116XT, 16, 16, ADDRESS_MAP_NAME(e116_8k_iram_map), "e116xt", __FILE__) + : hyperstone_device(mconfig, tag, owner, clock, E116XT, 16, 16, ADDRESS_MAP_NAME(e116_8k_iram_map)) { } @@ -356,7 +384,7 @@ e116xt_device::e116xt_device(const machine_config &mconfig, const char *tag, dev //------------------------------------------------- e116xs_device::e116xs_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : hyperstone_device(mconfig, "E1-16XS", tag, owner, clock, E116XS, 16, 16, ADDRESS_MAP_NAME(e116_16k_iram_map), "e116xs", __FILE__) + : hyperstone_device(mconfig, tag, owner, clock, E116XS, 16, 16, ADDRESS_MAP_NAME(e116_16k_iram_map)) { } @@ -366,7 +394,7 @@ e116xs_device::e116xs_device(const machine_config &mconfig, const char *tag, dev //------------------------------------------------- e116xsr_device::e116xsr_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : hyperstone_device(mconfig, "E1-16XSR", tag, owner, clock, E116XSR, 16, 16, ADDRESS_MAP_NAME(e116_16k_iram_map), "e116xsr", __FILE__) + : hyperstone_device(mconfig, tag, owner, clock, E116XSR, 16, 16, ADDRESS_MAP_NAME(e116_16k_iram_map)) { } @@ -376,7 +404,7 @@ e116xsr_device::e116xsr_device(const machine_config &mconfig, const char *tag, d //------------------------------------------------- e132n_device::e132n_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : hyperstone_device(mconfig, "E1-32N", tag, owner, clock, E132N, 32, 32, ADDRESS_MAP_NAME(e132_4k_iram_map), "e132n", __FILE__) + : hyperstone_device(mconfig, tag, owner, clock, E132N, 32, 32, ADDRESS_MAP_NAME(e132_4k_iram_map)) { } @@ -386,7 +414,7 @@ e132n_device::e132n_device(const machine_config &mconfig, const char *tag, devic //------------------------------------------------- e132t_device::e132t_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : hyperstone_device(mconfig, "E1-32T", tag, owner, clock, E132T, 32, 32, ADDRESS_MAP_NAME(e132_4k_iram_map), "e132t", __FILE__) + : hyperstone_device(mconfig, tag, owner, clock, E132T, 32, 32, ADDRESS_MAP_NAME(e132_4k_iram_map)) { } @@ -396,7 +424,7 @@ e132t_device::e132t_device(const machine_config &mconfig, const char *tag, devic //------------------------------------------------- e132xn_device::e132xn_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : hyperstone_device(mconfig, "E1-32XN", tag, owner, clock, E132XN, 32, 32, ADDRESS_MAP_NAME(e132_8k_iram_map), "e132xn", __FILE__) + : hyperstone_device(mconfig, tag, owner, clock, E132XN, 32, 32, ADDRESS_MAP_NAME(e132_8k_iram_map)) { } @@ -406,7 +434,7 @@ e132xn_device::e132xn_device(const machine_config &mconfig, const char *tag, dev //------------------------------------------------- e132xt_device::e132xt_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : hyperstone_device(mconfig, "E1-32XT", tag, owner, clock, E132XT, 32, 32, ADDRESS_MAP_NAME(e132_8k_iram_map), "e132xt", __FILE__) + : hyperstone_device(mconfig, tag, owner, clock, E132XT, 32, 32, ADDRESS_MAP_NAME(e132_8k_iram_map)) { } @@ -416,7 +444,7 @@ e132xt_device::e132xt_device(const machine_config &mconfig, const char *tag, dev //------------------------------------------------- e132xs_device::e132xs_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : hyperstone_device(mconfig, "E1-32XS", tag, owner, clock, E132XS, 32, 32, ADDRESS_MAP_NAME(e132_16k_iram_map), "e132xs", __FILE__) + : hyperstone_device(mconfig, tag, owner, clock, E132XS, 32, 32, ADDRESS_MAP_NAME(e132_16k_iram_map)) { } @@ -426,7 +454,7 @@ e132xs_device::e132xs_device(const machine_config &mconfig, const char *tag, dev //------------------------------------------------- e132xsr_device::e132xsr_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : hyperstone_device(mconfig, "E1-32XSR", tag, owner, clock, E132XSR, 32, 32, ADDRESS_MAP_NAME(e132_16k_iram_map), "e132xsr", __FILE__) + : hyperstone_device(mconfig, tag, owner, clock, E132XSR, 32, 32, ADDRESS_MAP_NAME(e132_16k_iram_map)) { } @@ -436,7 +464,7 @@ e132xsr_device::e132xsr_device(const machine_config &mconfig, const char *tag, d //------------------------------------------------- gms30c2116_device::gms30c2116_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : hyperstone_device(mconfig, "GMS30C2116", tag, owner, clock, GMS30C2116, 16, 16, ADDRESS_MAP_NAME(e116_4k_iram_map), "gms30c2116", __FILE__) + : hyperstone_device(mconfig, tag, owner, clock, GMS30C2116, 16, 16, ADDRESS_MAP_NAME(e116_4k_iram_map)) { } @@ -446,7 +474,7 @@ gms30c2116_device::gms30c2116_device(const machine_config &mconfig, const char * //------------------------------------------------- gms30c2132_device::gms30c2132_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : hyperstone_device(mconfig, "GMS30C2132", tag, owner, clock, GMS30C2132, 32, 32, ADDRESS_MAP_NAME(e132_4k_iram_map), "gms30c2132", __FILE__) + : hyperstone_device(mconfig, tag, owner, clock, GMS30C2132, 32, 32, ADDRESS_MAP_NAME(e132_4k_iram_map)) { } @@ -456,7 +484,7 @@ gms30c2132_device::gms30c2132_device(const machine_config &mconfig, const char * //------------------------------------------------- gms30c2216_device::gms30c2216_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : hyperstone_device(mconfig, "GMS30C2216", tag, owner, clock, GMS30C2216, 16, 16, ADDRESS_MAP_NAME(e116_8k_iram_map), "gms30c2216", __FILE__) + : hyperstone_device(mconfig, tag, owner, clock, GMS30C2216, 16, 16, ADDRESS_MAP_NAME(e116_8k_iram_map)) { } @@ -466,7 +494,7 @@ gms30c2216_device::gms30c2216_device(const machine_config &mconfig, const char * //------------------------------------------------- gms30c2232_device::gms30c2232_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : hyperstone_device(mconfig, "GMS30C2232", tag, owner, clock, GMS30C2232, 32, 32, ADDRESS_MAP_NAME(e132_8k_iram_map), "gms30c2232", __FILE__) + : hyperstone_device(mconfig, tag, owner, clock, GMS30C2232, 32, 32, ADDRESS_MAP_NAME(e132_8k_iram_map)) { } @@ -4990,17 +5018,17 @@ void hyperstone_device::execute_run() } while( m_icount > 0 ); } -const device_type E116T = device_creator; -const device_type E116XT = device_creator; -const device_type E116XS = device_creator; -const device_type E116XSR = device_creator; -const device_type E132N = device_creator; -const device_type E132T = device_creator; -const device_type E132XN = device_creator; -const device_type E132XT = device_creator; -const device_type E132XS = device_creator; -const device_type E132XSR = device_creator; -const device_type GMS30C2116 = device_creator; -const device_type GMS30C2132 = device_creator; -const device_type GMS30C2216 = device_creator; -const device_type GMS30C2232 = device_creator; +DEFINE_DEVICE_TYPE(E116T, e116t_device, "e116t", "E1-16T") +DEFINE_DEVICE_TYPE(E116XT, e116xt_device, "e116xt", "E1-16XT") +DEFINE_DEVICE_TYPE(E116XS, e116xs_device, "e116xs", "E1-16XS") +DEFINE_DEVICE_TYPE(E116XSR, e116xsr_device, "e116xsr", "E1-16XSR") +DEFINE_DEVICE_TYPE(E132N, e132n_device, "e132n", "E1-32N") +DEFINE_DEVICE_TYPE(E132T, e132t_device, "e132t", "E1-32T") +DEFINE_DEVICE_TYPE(E132XN, e132xn_device, "e132xn", "E1-32XN") +DEFINE_DEVICE_TYPE(E132XT, e132xt_device, "e132xt", "E1-32XT") +DEFINE_DEVICE_TYPE(E132XS, e132xs_device, "e132xs", "E1-32XS") +DEFINE_DEVICE_TYPE(E132XSR, e132xsr_device, "e132xsr", "E1-32XSR") +DEFINE_DEVICE_TYPE(GMS30C2116, gms30c2116_device, "gms30c2116", "GMS30C2116") +DEFINE_DEVICE_TYPE(GMS30C2132, gms30c2132_device, "gms30c2132", "GMS30C2132") +DEFINE_DEVICE_TYPE(GMS30C2216, gms30c2216_device, "gms30c2216", "GMS30C2216") +DEFINE_DEVICE_TYPE(GMS30C2232, gms30c2232_device, "gms30c2232", "GMS30C2232") diff --git a/src/devices/cpu/e132xs/e132xs.h b/src/devices/cpu/e132xs/e132xs.h index f28d6a244e8..436d462fe11 100644 --- a/src/devices/cpu/e132xs/e132xs.h +++ b/src/devices/cpu/e132xs/e132xs.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Pierpaolo Prazzoli -#pragma once +#ifndef MAME_CPU_E132XS_E132XS_H +#define MAME_CPU_E132XS_E132XS_H -#ifndef __E132XS_H__ -#define __E132XS_H__ +#pragma once /* @@ -24,156 +24,10 @@ /* Functions */ -/*************************************************************************** - COMPILE-TIME DEFINITIONS -***************************************************************************/ - -#define PC_REGISTER 0 -#define SR_REGISTER 1 -#define BCR_REGISTER 20 -#define TPR_REGISTER 21 -#define TCR_REGISTER 22 -#define TR_REGISTER 23 -#define ISR_REGISTER 25 -#define FCR_REGISTER 26 -#define MCR_REGISTER 27 - -#define X_CODE(val) ((val & 0x7000) >> 12) -#define E_BIT(val) ((val & 0x8000) >> 15) -#define S_BIT_CONST(val) ((val & 0x4000) >> 14) -#define DD(val) ((val & 0x3000) >> 12) - - -/* Extended DSP instructions */ -#define EMUL 0x102 -#define EMULU 0x104 -#define EMULS 0x106 -#define EMAC 0x10a -#define EMACD 0x10e -#define EMSUB 0x11a -#define EMSUBD 0x11e -#define EHMAC 0x02a -#define EHMACD 0x02e -#define EHCMULD 0x046 -#define EHCMACD 0x04e -#define EHCSUMD 0x086 -#define EHCFFTD 0x096 -#define EHCFFTSD 0x296 - -/* Delay values */ -#define NO_DELAY 0 -#define DELAY_EXECUTE 1 - -/* IRQ numbers */ -#define IRQ_INT1 0 -#define IRQ_INT2 1 -#define IRQ_INT3 2 -#define IRQ_INT4 3 -#define IRQ_IO1 4 -#define IRQ_IO2 5 -#define IRQ_IO3 6 - -/* Trap numbers */ -#define TRAPNO_IO2 48 -#define TRAPNO_IO1 49 -#define TRAPNO_INT4 50 -#define TRAPNO_INT3 51 -#define TRAPNO_INT2 52 -#define TRAPNO_INT1 53 -#define TRAPNO_IO3 54 -#define TRAPNO_TIMER 55 -#define TRAPNO_RESERVED1 56 -#define TRAPNO_TRACE_EXCEPTION 57 -#define TRAPNO_PARITY_ERROR 58 -#define TRAPNO_EXTENDED_OVERFLOW 59 -#define TRAPNO_RANGE_ERROR 60 -#define TRAPNO_PRIVILEGE_ERROR TRAPNO_RANGE_ERROR -#define TRAPNO_FRAME_ERROR TRAPNO_RANGE_ERROR -#define TRAPNO_RESERVED2 61 -#define TRAPNO_RESET 62 // reserved if not mapped @ MEM3 -#define TRAPNO_ERROR_ENTRY 63 // for instruction code of all ones - -/* Trap codes */ -#define TRAPLE 4 -#define TRAPGT 5 -#define TRAPLT 6 -#define TRAPGE 7 -#define TRAPSE 8 -#define TRAPHT 9 -#define TRAPST 10 -#define TRAPHE 11 -#define TRAPE 12 -#define TRAPNE 13 -#define TRAPV 14 -#define TRAP 15 - -/* Entry point to get trap locations or emulated code associated */ -#define E132XS_ENTRY_MEM0 0 -#define E132XS_ENTRY_MEM1 1 -#define E132XS_ENTRY_MEM2 2 -#define E132XS_ENTRY_IRAM 3 -#define E132XS_ENTRY_MEM3 7 - /*************************************************************************** REGISTER ENUMERATION ***************************************************************************/ -enum -{ - E132XS_PC = 1, - E132XS_SR, - E132XS_FER, - E132XS_G3, - E132XS_G4, - E132XS_G5, - E132XS_G6, - E132XS_G7, - E132XS_G8, - E132XS_G9, - E132XS_G10, - E132XS_G11, - E132XS_G12, - E132XS_G13, - E132XS_G14, - E132XS_G15, - E132XS_G16, - E132XS_G17, - E132XS_SP, - E132XS_UB, - E132XS_BCR, - E132XS_TPR, - E132XS_TCR, - E132XS_TR, - E132XS_WCR, - E132XS_ISR, - E132XS_FCR, - E132XS_MCR, - E132XS_G28, - E132XS_G29, - E132XS_G30, - E132XS_G31, - E132XS_CL0, E132XS_CL1, E132XS_CL2, E132XS_CL3, - E132XS_CL4, E132XS_CL5, E132XS_CL6, E132XS_CL7, - E132XS_CL8, E132XS_CL9, E132XS_CL10,E132XS_CL11, - E132XS_CL12,E132XS_CL13,E132XS_CL14,E132XS_CL15, - E132XS_L0, E132XS_L1, E132XS_L2, E132XS_L3, - E132XS_L4, E132XS_L5, E132XS_L6, E132XS_L7, - E132XS_L8, E132XS_L9, E132XS_L10, E132XS_L11, - E132XS_L12, E132XS_L13, E132XS_L14, E132XS_L15, - E132XS_L16, E132XS_L17, E132XS_L18, E132XS_L19, - E132XS_L20, E132XS_L21, E132XS_L22, E132XS_L23, - E132XS_L24, E132XS_L25, E132XS_L26, E132XS_L27, - E132XS_L28, E132XS_L29, E132XS_L30, E132XS_L31, - E132XS_L32, E132XS_L33, E132XS_L34, E132XS_L35, - E132XS_L36, E132XS_L37, E132XS_L38, E132XS_L39, - E132XS_L40, E132XS_L41, E132XS_L42, E132XS_L43, - E132XS_L44, E132XS_L45, E132XS_L46, E132XS_L47, - E132XS_L48, E132XS_L49, E132XS_L50, E132XS_L51, - E132XS_L52, E132XS_L53, E132XS_L54, E132XS_L55, - E132XS_L56, E132XS_L57, E132XS_L58, E132XS_L59, - E132XS_L60, E132XS_L61, E132XS_L62, E132XS_L63 -}; - extern unsigned dasm_hyperstone(std::ostream &stream, unsigned pc, const uint8_t *oprom, unsigned h_flag, int private_fp); //************************************************************************** @@ -185,14 +39,67 @@ extern unsigned dasm_hyperstone(std::ostream &stream, unsigned pc, const uint8_t // Used by core CPU interface class hyperstone_device : public cpu_device { -public: - // construction/destruction - hyperstone_device(const machine_config &mconfig, const char *name, const char *tag, device_t *owner, uint32_t clock, - const device_type type, uint32_t prg_data_width, uint32_t io_data_width, address_map_constructor internal_map, const char *shortname, const char *source); +protected: + enum + { + E132XS_PC = 1, + E132XS_SR, + E132XS_FER, + E132XS_G3, + E132XS_G4, + E132XS_G5, + E132XS_G6, + E132XS_G7, + E132XS_G8, + E132XS_G9, + E132XS_G10, + E132XS_G11, + E132XS_G12, + E132XS_G13, + E132XS_G14, + E132XS_G15, + E132XS_G16, + E132XS_G17, + E132XS_SP, + E132XS_UB, + E132XS_BCR, + E132XS_TPR, + E132XS_TCR, + E132XS_TR, + E132XS_WCR, + E132XS_ISR, + E132XS_FCR, + E132XS_MCR, + E132XS_G28, + E132XS_G29, + E132XS_G30, + E132XS_G31, + E132XS_CL0, E132XS_CL1, E132XS_CL2, E132XS_CL3, + E132XS_CL4, E132XS_CL5, E132XS_CL6, E132XS_CL7, + E132XS_CL8, E132XS_CL9, E132XS_CL10,E132XS_CL11, + E132XS_CL12,E132XS_CL13,E132XS_CL14,E132XS_CL15, + E132XS_L0, E132XS_L1, E132XS_L2, E132XS_L3, + E132XS_L4, E132XS_L5, E132XS_L6, E132XS_L7, + E132XS_L8, E132XS_L9, E132XS_L10, E132XS_L11, + E132XS_L12, E132XS_L13, E132XS_L14, E132XS_L15, + E132XS_L16, E132XS_L17, E132XS_L18, E132XS_L19, + E132XS_L20, E132XS_L21, E132XS_L22, E132XS_L23, + E132XS_L24, E132XS_L25, E132XS_L26, E132XS_L27, + E132XS_L28, E132XS_L29, E132XS_L30, E132XS_L31, + E132XS_L32, E132XS_L33, E132XS_L34, E132XS_L35, + E132XS_L36, E132XS_L37, E132XS_L38, E132XS_L39, + E132XS_L40, E132XS_L41, E132XS_L42, E132XS_L43, + E132XS_L44, E132XS_L45, E132XS_L46, E132XS_L47, + E132XS_L48, E132XS_L49, E132XS_L50, E132XS_L51, + E132XS_L52, E132XS_L53, E132XS_L54, E132XS_L55, + E132XS_L56, E132XS_L57, E132XS_L58, E132XS_L59, + E132XS_L60, E132XS_L61, E132XS_L62, E132XS_L63 + }; - // public interfaces + // construction/destruction + hyperstone_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock, + const device_type type, uint32_t prg_data_width, uint32_t io_data_width, address_map_constructor internal_map); -protected: void init(int scale_mask); // device-level overrides @@ -470,20 +377,20 @@ private: }; // device type definition -extern const device_type E116T; -extern const device_type E116XT; -extern const device_type E116XS; -extern const device_type E116XSR; -extern const device_type E132N; -extern const device_type E132T; -extern const device_type E132XN; -extern const device_type E132XT; -extern const device_type E132XS; -extern const device_type E132XSR; -extern const device_type GMS30C2116; -extern const device_type GMS30C2132; -extern const device_type GMS30C2216; -extern const device_type GMS30C2232; +DECLARE_DEVICE_TYPE(E116T, e116t_device) +DECLARE_DEVICE_TYPE(E116XT, e116xt_device) +DECLARE_DEVICE_TYPE(E116XS, e116xs_device) +DECLARE_DEVICE_TYPE(E116XSR, e116xsr_device) +DECLARE_DEVICE_TYPE(E132N, e132n_device) +DECLARE_DEVICE_TYPE(E132T, e132t_device) +DECLARE_DEVICE_TYPE(E132XN, e132xn_device) +DECLARE_DEVICE_TYPE(E132XT, e132xt_device) +DECLARE_DEVICE_TYPE(E132XS, e132xs_device) +DECLARE_DEVICE_TYPE(E132XSR, e132xsr_device) +DECLARE_DEVICE_TYPE(GMS30C2116, gms30c2116_device) +DECLARE_DEVICE_TYPE(GMS30C2132, gms30c2132_device) +DECLARE_DEVICE_TYPE(GMS30C2216, gms30c2216_device) +DECLARE_DEVICE_TYPE(GMS30C2232, gms30c2232_device) // ======================> e116t_device @@ -667,4 +574,4 @@ protected: virtual void device_start() override; }; -#endif /* __E132XS_H__ */ +#endif // MAME_CPU_E132XS_E132XS_H diff --git a/src/devices/cpu/es5510/es5510.cpp b/src/devices/cpu/es5510/es5510.cpp index 43cf3ecb702..204975d0abf 100644 --- a/src/devices/cpu/es5510/es5510.cpp +++ b/src/devices/cpu/es5510/es5510.cpp @@ -7,17 +7,20 @@ * ***************************************************************************/ -#include #include "emu.h" -#include "debugger.h" #include "es5510.h" + #include "cpu/m68000/m68000.h" +#include "debugger.h" + +#include + -static const int32_t MIN_24 = -(1 << 23); -static const int32_t MAX_24 = (1 << 23) - 1; +static constexpr int32_t MIN_24 = -(1 << 23); +static constexpr int32_t MAX_24 = (1 << 23) - 1; -static const int64_t MIN_48 = -(s64(1) << 47); -static const int64_t MAX_48 = (s64(1) << 47) - 1; +static constexpr int64_t MIN_48 = -(s64(1) << 47); +static constexpr int64_t MAX_48 = (s64(1) << 47) - 1; #define SIGN_BIT_24 (0x00800000) #define GET_SIGN_BIT_24(x) ((x) & SIGN_BIT_24) @@ -25,15 +28,14 @@ static const int64_t MAX_48 = (s64(1) << 47) - 1; #define CARRY_OUT_24 (0x01000000) -static inline int32_t SX(int32_t x) { return IS_NEGATIVE(x) ? x | 0xff000000 : x & 0x00ffffff; } -static inline int32_t SC(int32_t x) { return x & 0x00ffffff; } -static inline int64_t SX64(int64_t x) { return (x & s64(0x0000800000000000U)) ? x | s64(0xffff000000000000U) : x & s64(0x0000ffffffffffffU); } -//static inline int64_t SC64(int64_t x) { return x & s64(0x0000ffffffffffffU); } +constexpr int32_t SX(int32_t x) { return IS_NEGATIVE(x) ? x | 0xff000000 : x & 0x00ffffff; } +constexpr int32_t SC(int32_t x) { return x & 0x00ffffff; } +constexpr int64_t SX64(int64_t x) { return (x & s64(0x0000800000000000U)) ? x | s64(0xffff000000000000U) : x & s64(0x0000ffffffffffffU); } +//constexpr int64_t SC64(int64_t x) { return x & s64(0x0000ffffffffffffU); } #define VERBOSE 0 #define VERBOSE_EXEC 0 -#if VERBOSE static inline void ATTR_PRINTF(1,2) log_to_stderr(const char *format, ...) { va_list ap; va_start(ap, format); @@ -41,20 +43,17 @@ static inline void ATTR_PRINTF(1,2) log_to_stderr(const char *format, ...) { va_end(ap); } -#define LOG(x) do { log_to_stderr x; } while(0) -#else -#define LOG(x) -#endif +#define LOG(...) do { if (VERBOSE) log_to_stderr(__VA_ARGS__); } while(0) #if VERBOSE_EXEC static int exec_cc = 0; -#define LOG_EXEC(x) do { if (!exec_cc) LOG(x); } while(0) +#define LOG_EXEC(x) do { if (!exec_cc) LOG x; } while(0) #else #define LOG_EXEC(x) #endif -const device_type ES5510 = device_creator; +DEFINE_DEVICE_TYPE(ES5510, es5510_device, "es5510", "ES5510") #define FLAG_N (1 << 7) #define FLAG_C (1 << 6) @@ -127,7 +126,7 @@ inline static int32_t asl(int32_t value, int shift, uint8_t &flags) { } es5510_device::es5510_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) -: cpu_device(mconfig, ES5510, "ES5510", tag, owner, clock, "es5510", __FILE__) + : cpu_device(mconfig, ES5510, tag, owner, clock) { // Initialize ESP to mostly zeroed, configured for 64k samples of delay line memory, running (not halted) halt_asserted = false; @@ -370,30 +369,30 @@ READ8_MEMBER(es5510_device::host_r) switch(offset) { - case 0x00: LOG(("ES5510: Host Read GPR latch[2]: %02x\n", (gpr_latch >> 16) & 0xff)); return (gpr_latch >> 16) & 0xff; - case 0x01: LOG(("ES5510: Host Read GPR latch[1]: %02x\n", (gpr_latch >> 8) & 0xff)); return (gpr_latch >> 8) & 0xff; - case 0x02: LOG(("ES5510: Host Read GPR latch[0]: %02x\n", (gpr_latch >> 0) & 0xff)); return (gpr_latch >> 0) & 0xff; + case 0x00: LOG("ES5510: Host Read GPR latch[2]: %02x\n", (gpr_latch >> 16) & 0xff); return (gpr_latch >> 16) & 0xff; + case 0x01: LOG("ES5510: Host Read GPR latch[1]: %02x\n", (gpr_latch >> 8) & 0xff); return (gpr_latch >> 8) & 0xff; + case 0x02: LOG("ES5510: Host Read GPR latch[0]: %02x\n", (gpr_latch >> 0) & 0xff); return (gpr_latch >> 0) & 0xff; - case 0x03: LOG(("ES5510: Host Read INSTR latch[5]: %02x\n", (uint8_t)((instr_latch >> 40) & 0xff))); return (instr_latch >> 40) & 0xff; - case 0x04: LOG(("ES5510: Host Read INSTR latch[4]: %02x\n", (uint8_t)((instr_latch >> 32) & 0xff))); return (instr_latch >> 32) & 0xff; - case 0x05: LOG(("ES5510: Host Read INSTR latch[3]: %02x\n", (uint8_t)((instr_latch >> 24) & 0xff))); return (instr_latch >> 24) & 0xff; - case 0x06: LOG(("ES5510: Host Read INSTR latch[2]: %02x\n", (uint8_t)((instr_latch >> 16) & 0xff))); return (instr_latch >> 16) & 0xff; - case 0x07: LOG(("ES5510: Host Read INSTR latch[1]: %02x\n", (uint8_t)((instr_latch >> 8) & 0xff))); return (instr_latch >> 8) & 0xff; - case 0x08: LOG(("ES5510: Host Read INSTR latch[0]: %02x\n", (uint8_t)((instr_latch >> 0) & 0xff))); return (instr_latch >> 0) & 0xff; + case 0x03: LOG("ES5510: Host Read INSTR latch[5]: %02x\n", uint8_t((instr_latch >> 40) & 0xff)); return (instr_latch >> 40) & 0xff; + case 0x04: LOG("ES5510: Host Read INSTR latch[4]: %02x\n", uint8_t((instr_latch >> 32) & 0xff)); return (instr_latch >> 32) & 0xff; + case 0x05: LOG("ES5510: Host Read INSTR latch[3]: %02x\n", uint8_t((instr_latch >> 24) & 0xff)); return (instr_latch >> 24) & 0xff; + case 0x06: LOG("ES5510: Host Read INSTR latch[2]: %02x\n", uint8_t((instr_latch >> 16) & 0xff)); return (instr_latch >> 16) & 0xff; + case 0x07: LOG("ES5510: Host Read INSTR latch[1]: %02x\n", uint8_t((instr_latch >> 8) & 0xff)); return (instr_latch >> 8) & 0xff; + case 0x08: LOG("ES5510: Host Read INSTR latch[0]: %02x\n", uint8_t((instr_latch >> 0) & 0xff)); return (instr_latch >> 0) & 0xff; - case 0x09: LOG(("ES5510: Host Read DIL latch[2]: %02x\n", (dil_latch >> 16) & 0xff)); return (dil_latch >> 16) & 0xff; - case 0x0a: LOG(("ES5510: Host Read DIL latch[1]: %02x\n", (dil_latch >> 8) & 0xff)); return (dil_latch >> 8) & 0xff; - case 0x0b: LOG(("ES5510: Host Read DIL latch[0]: %02x\n", 0)); return 0; + case 0x09: LOG("ES5510: Host Read DIL latch[2]: %02x\n", (dil_latch >> 16) & 0xff); return (dil_latch >> 16) & 0xff; + case 0x0a: LOG("ES5510: Host Read DIL latch[1]: %02x\n", (dil_latch >> 8) & 0xff); return (dil_latch >> 8) & 0xff; + case 0x0b: LOG("ES5510: Host Read DIL latch[0]: %02x\n", 0); return 0; - case 0x0c: LOG(("ES5510: Host Read DOL latch[2]: %02x\n", (dol_latch >> 16) & 0xff)); return (dol_latch >> 16) & 0xff; - case 0x0d: LOG(("ES5510: Host Read DOL latch[1]: %02x\n", (dol_latch >> 8) & 0xff)); return (dol_latch >> 8) & 0xff; - case 0x0e: LOG(("ES5510: Host Read DOL latch[0]: %02x\n", 0xff)); return 0xff; + case 0x0c: LOG("ES5510: Host Read DOL latch[2]: %02x\n", (dol_latch >> 16) & 0xff); return (dol_latch >> 16) & 0xff; + case 0x0d: LOG("ES5510: Host Read DOL latch[1]: %02x\n", (dol_latch >> 8) & 0xff); return (dol_latch >> 8) & 0xff; + case 0x0e: LOG("ES5510: Host Read DOL latch[0]: %02x\n", 0xff); return 0xff; - case 0x0f: LOG(("ES5510: Host Read DADR latch[2]: %02x\n", (dadr_latch >> 16) & 0xff)); return (dadr_latch >> 16) & 0xff; - case 0x10: LOG(("ES5510: Host Read DADR latch[1]: %02x\n", (dadr_latch >> 8) & 0xff)); return (dadr_latch >> 8) & 0xff; - case 0x11: LOG(("ES5510: Host Read DADR latch[0]: %02x\n", (dadr_latch >> 0) & 0xff)); return (dadr_latch >> 0) & 0xff; + case 0x0f: LOG("ES5510: Host Read DADR latch[2]: %02x\n", (dadr_latch >> 16) & 0xff); return (dadr_latch >> 16) & 0xff; + case 0x10: LOG("ES5510: Host Read DADR latch[1]: %02x\n", (dadr_latch >> 8) & 0xff); return (dadr_latch >> 8) & 0xff; + case 0x11: LOG("ES5510: Host Read DADR latch[0]: %02x\n", (dadr_latch >> 0) & 0xff); return (dadr_latch >> 0) & 0xff; - case 0x12: LOG(("ES5510: Host Reading Host Control\n")); return 0; // Host Control + case 0x12: LOG("ES5510: Host Reading Host Control\n"); return 0; // Host Control case 0x16: return 0x27; // Program Counter, for test purposes only } @@ -410,30 +409,30 @@ WRITE8_MEMBER(es5510_device::host_w) switch (offset) { case 0x00: gpr_latch = (gpr_latch&0x00ffff) | ((data&0xff)<<16); - LOG(("ES5510: Host Write GPR latch[2] = %02x -> %06x (%d)\n", data, gpr_latch, SX(gpr_latch))); + LOG("ES5510: Host Write GPR latch[2] = %02x -> %06x (%d)\n", data, gpr_latch, SX(gpr_latch)); break; case 0x01: gpr_latch = (gpr_latch&0xff00ff) | ((data&0xff)<< 8); - LOG(("ES5510: Host Write GPR latch[1] = %02x -> %06x (%d)\n", data, gpr_latch, SX(gpr_latch))); + LOG("ES5510: Host Write GPR latch[1] = %02x -> %06x (%d)\n", data, gpr_latch, SX(gpr_latch)); break; case 0x02: gpr_latch = (gpr_latch&0xffff00) | ((data&0xff)<< 0); - LOG(("ES5510: Host Write GPR latch[0] = %02x -> %06x (%d)\n", data, gpr_latch, SX(gpr_latch))); + LOG("ES5510: Host Write GPR latch[0] = %02x -> %06x (%d)\n", data, gpr_latch, SX(gpr_latch)); break; /* 0x03 to 0x08 INSTR Register */ - case 0x03: instr_latch = ((instr_latch&0x00ffffffffffU) | ((int64_t)data&0xff)<<40); LOG(("%s",string_format("ES5510: Host Write INSTR latch[5] = %02x -> %012I64x\n", data, instr_latch).c_str())); break; - case 0x04: instr_latch = ((instr_latch&0xff00ffffffffU) | ((int64_t)data&0xff)<<32); LOG(("%s",string_format("ES5510: Host Write INSTR latch[4] = %02x -> %012I64x\n", data, instr_latch).c_str())); break; - case 0x05: instr_latch = ((instr_latch&0xffff00ffffffU) | ((int64_t)data&0xff)<<24); LOG(("%s",string_format("ES5510: Host Write INSTR latch[3] = %02x -> %012I64x\n", data, instr_latch).c_str())); break; - case 0x06: instr_latch = ((instr_latch&0xffffff00ffffU) | ((int64_t)data&0xff)<<16); LOG(("%s",string_format("ES5510: Host Write INSTR latch[2] = %02x -> %012I64x\n", data, instr_latch).c_str())); break; - case 0x07: instr_latch = ((instr_latch&0xffffffff00ffU) | ((int64_t)data&0xff)<< 8); LOG(("%s",string_format("ES5510: Host Write INSTR latch[1] = %02x -> %012I64x\n", data, instr_latch).c_str())); break; - case 0x08: instr_latch = ((instr_latch&0xffffffffff00U) | ((int64_t)data&0xff)<< 0); LOG(("%s",string_format("ES5510: Host Write INSTR latch[0] = %02x -> %012I64x\n", data, instr_latch).c_str())); break; + case 0x03: instr_latch = ((instr_latch&0x00ffffffffffU) | (int64_t(data)&0xff)<<40); LOG("%s",string_format("ES5510: Host Write INSTR latch[5] = %02x -> %012I64x\n", data, instr_latch).c_str()); break; + case 0x04: instr_latch = ((instr_latch&0xff00ffffffffU) | (int64_t(data)&0xff)<<32); LOG("%s",string_format("ES5510: Host Write INSTR latch[4] = %02x -> %012I64x\n", data, instr_latch).c_str()); break; + case 0x05: instr_latch = ((instr_latch&0xffff00ffffffU) | (int64_t(data)&0xff)<<24); LOG("%s",string_format("ES5510: Host Write INSTR latch[3] = %02x -> %012I64x\n", data, instr_latch).c_str()); break; + case 0x06: instr_latch = ((instr_latch&0xffffff00ffffU) | (int64_t(data)&0xff)<<16); LOG("%s",string_format("ES5510: Host Write INSTR latch[2] = %02x -> %012I64x\n", data, instr_latch).c_str()); break; + case 0x07: instr_latch = ((instr_latch&0xffffffff00ffU) | (int64_t(data)&0xff)<< 8); LOG("%s",string_format("ES5510: Host Write INSTR latch[1] = %02x -> %012I64x\n", data, instr_latch).c_str()); break; + case 0x08: instr_latch = ((instr_latch&0xffffffffff00U) | (int64_t(data)&0xff)<< 0); LOG("%s",string_format("ES5510: Host Write INSTR latch[0] = %02x -> %012I64x\n", data, instr_latch).c_str()); break; /* 0x09 to 0x0b DIL Register (r/o) */ - case 0x0c: dol_latch = (dol_latch&0x00ffff) | ((data&0xff)<<16); LOG(("ES5510: Host Write DOL latch[2] = %02x -> %06x (%d)\n", data, dol_latch, SX(dol_latch))); break; - case 0x0d: dol_latch = (dol_latch&0xff00ff) | ((data&0xff)<< 8); LOG(("ES5510: Host Write DOL latch[1] = %02x -> %06x (%d)\n", data, dol_latch, SX(dol_latch))); break; - case 0x0e: dol_latch = (dol_latch&0xffff00) | ((data&0xff)<< 0); LOG(("ES5510: Host Write DOL latch[0] = %02x -> %06x (%d)\n", data, dol_latch, SX(dol_latch))); break; //TODO: docs says that this always returns 0xff + case 0x0c: dol_latch = (dol_latch&0x00ffff) | ((data&0xff)<<16); LOG("ES5510: Host Write DOL latch[2] = %02x -> %06x (%d)\n", data, dol_latch, SX(dol_latch)); break; + case 0x0d: dol_latch = (dol_latch&0xff00ff) | ((data&0xff)<< 8); LOG("ES5510: Host Write DOL latch[1] = %02x -> %06x (%d)\n", data, dol_latch, SX(dol_latch)); break; + case 0x0e: dol_latch = (dol_latch&0xffff00) | ((data&0xff)<< 0); LOG("ES5510: Host Write DOL latch[0] = %02x -> %06x (%d)\n", data, dol_latch, SX(dol_latch)); break; //TODO: docs says that this always returns 0xff case 0x0f: dadr_latch = (dadr_latch&0x00ffff) | ((data&0xff)<<16); @@ -458,26 +457,26 @@ WRITE8_MEMBER(es5510_device::host_w) /* 0x17 Internal Refresh counter (test purpose) */ /* 0x18 Host Serial Control */ case 0x18: - LOG(("ES5510: Host Write Host Serial control %02x: %s, %s, ser3 %s, ser2 %s, ser1 %s, ser0 %s\n", data, + LOG("ES5510: Host Write Host Serial control %02x: %s, %s, ser3 %s, ser2 %s, ser1 %s, ser0 %s\n", data, data&0x80 ? "Master" : "Slave", data&0x40 ? "Sony" : "I2S", data & 0x20 ? "Out" : "In", data & 0x10 ? "Out" : "In", data & 0x08 ? "Out" : "In", - data & 0x04 ? "Out" : "In")); + data & 0x04 ? "Out" : "In"); break; /* 0x1f Halt enable (w) / Frame Counter (r) */ case 0x1F: - LOG(("ES5510: Host Write Halt Enable %02x; HALT line is %d\n", data, halt_asserted)); + LOG("ES5510: Host Write Halt Enable %02x; HALT line is %d\n", data, halt_asserted); if (halt_asserted) { - LOG(("ES5510: Host Write to Halt Enable while HALT line is asserted: Halting!\n")); + LOG("ES5510: Host Write to Halt Enable while HALT line is asserted: Halting!\n"); state = STATE_HALTED; } break; case 0x80: /* Read select - GPR + INSTR */ - LOG(("%s",string_format("ES5510: Host Read INSTR+GPR %02x (%s): %012I64x %06x (%d)\n", data, REGNAME(data & 0xff), instr[data] & 0xffffffffffffU, gpr[data] & 0xffffff, gpr[data]).c_str())); + LOG("%s",string_format("ES5510: Host Read INSTR+GPR %02x (%s): %012I64x %06x (%d)\n", data, REGNAME(data & 0xff), instr[data] & 0xffffffffffffU, gpr[data] & 0xffffff, gpr[data]).c_str()); /* Check if an INSTR address is selected */ if (data < 0xa0) { @@ -491,14 +490,14 @@ WRITE8_MEMBER(es5510_device::host_w) break; case 0xa0: /* Write select - GPR */ - LOG(("ES5510: Host Write GPR %02x (%s): %06x (%d)\n", data, REGNAME(data&0xff), gpr_latch, SX(gpr_latch))); + LOG("ES5510: Host Write GPR %02x (%s): %06x (%d)\n", data, REGNAME(data&0xff), gpr_latch, SX(gpr_latch)); write_reg(data, gpr_latch); break; case 0xc0: /* Write select - INSTR */ #if VERBOSE DESCRIBE_INSTR(buf, instr_latch, gpr[data], nullptr, nullptr, nullptr, nullptr); - LOG(("%s",string_format("ES5510: Host Write INSTR %02x %012I64x: %s\n", data, instr_latch&0xffffffffffffU, buf).c_str())); + LOG("%s",string_format("ES5510: Host Write INSTR %02x %012I64x: %s\n", data, instr_latch&0xffffffffffffU, buf).c_str()); #endif if (data < 0xa0) { instr[data] = instr_latch&0xffffffffffffU; @@ -508,7 +507,7 @@ WRITE8_MEMBER(es5510_device::host_w) case 0xe0: /* Write select - GPR + INSTR */ #if VERBOSE DESCRIBE_INSTR(buf, instr_latch, gpr_latch, nullptr, nullptr, nullptr, nullptr); - LOG(("%s",string_format("ES5510: Host Write INSTR+GPR %02x (%s): %012I64x %06x (%d): %s\n", data, REGNAME(data&0xff), instr_latch, gpr_latch, SX(gpr_latch), buf).c_str())); + LOG("%s",string_format("ES5510: Host Write INSTR+GPR %02x (%s): %012I64x %06x (%d): %s\n", data, REGNAME(data&0xff), instr_latch, gpr_latch, SX(gpr_latch), buf).c_str()); #endif if (data < 0xa0) { instr[data] = instr_latch; @@ -601,7 +600,7 @@ void es5510_device::execute_set_input(int linenum, int state) { } void es5510_device::list_program(void(p)(const char *, ...)) { - LOG(("ES5501: Starting!\n")); + LOG("ES5501: Starting!\n"); char buf[1024]; bool is_written[0x100], is_read[0x100]; diff --git a/src/devices/cpu/es5510/es5510.h b/src/devices/cpu/es5510/es5510.h index 89da725c28e..d3524aa5324 100644 --- a/src/devices/cpu/es5510/es5510.h +++ b/src/devices/cpu/es5510/es5510.h @@ -7,10 +7,10 @@ * **********************************************************************************************/ -#pragma once +#ifndef MAME_CPU_ES5510_ES5510_H +#define MAME_CPU_ES5510_ES5510_H -#ifndef __ES5510_H__ -#define __ES5510_H__ +#pragma once class es5510_device : public cpu_device { @@ -189,6 +189,6 @@ private: ram_t ram, ram_p, ram_pp; // ram operations for cycles N, N-1 and N-2 }; -extern const device_type ES5510; +DECLARE_DEVICE_TYPE(ES5510, es5510_device) -#endif // __ES5510_H__ +#endif // MAME_CPU_ES5510_ES5510_H diff --git a/src/devices/cpu/esrip/esrip.cpp b/src/devices/cpu/esrip/esrip.cpp index 2780a3a50e3..77f2401200d 100644 --- a/src/devices/cpu/esrip/esrip.cpp +++ b/src/devices/cpu/esrip/esrip.cpp @@ -1687,14 +1687,14 @@ void esrip_device::nop(uint16_t inst) // DEVICE INTERFACE //************************************************************************** -const device_type ESRIP = device_creator; +DEFINE_DEVICE_TYPE(ESRIP, esrip_device, "esrip", "Entertainment Sciences RIP") //------------------------------------------------- // esrip_device - constructor //------------------------------------------------- esrip_device::esrip_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cpu_device(mconfig, ESRIP, "ESRIP", tag, owner, clock, "esrip", __FILE__), + : cpu_device(mconfig, ESRIP, tag, owner, clock), m_program_config("program", ENDIANNESS_BIG, 64, 9, -3), m_fdt_r(*this), m_fdt_w(*this), diff --git a/src/devices/cpu/esrip/esrip.h b/src/devices/cpu/esrip/esrip.h index 7af07d8f7c4..873a8bf1580 100644 --- a/src/devices/cpu/esrip/esrip.h +++ b/src/devices/cpu/esrip/esrip.h @@ -8,18 +8,11 @@ ***************************************************************************/ -#ifndef _ESRIP_H -#define _ESRIP_H +#ifndef MAME_CPU_ESRIP_ESRIP_H +#define MAME_CPU_ESRIP_ESRIP_H +#pragma once -/*************************************************************************** - COMPILE-TIME DEFINITIONS -***************************************************************************/ - - -/*************************************************************************** - GLOBAL CONSTANTS -***************************************************************************/ /*************************************************************************** INTERFACE CONFIGURATION MACROS @@ -36,77 +29,18 @@ devcb = &esrip_device::static_set_status_in_callback(*device, DEVCB_##_read); #define MCFG_ESRIP_DRAW_CALLBACK_OWNER(_class, _method) \ - esrip_device::static_set_draw_callback(*device, esrip_draw_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); + esrip_device::static_set_draw_callback(*device, esrip_device::draw_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); #define MCFG_ESRIP_LBRM_PROM(_tag) \ esrip_device::static_lbrm_prom(*device, _tag); -/*************************************************************************** - REGISTER ENUMERATION -***************************************************************************/ - -enum -{ - ESRIP_PC = 1, - ESRIP_ACC, - ESRIP_DLATCH, - ESRIP_ILATCH, - ESRIP_RAM00, - ESRIP_RAM01, - ESRIP_RAM02, - ESRIP_RAM03, - ESRIP_RAM04, - ESRIP_RAM05, - ESRIP_RAM06, - ESRIP_RAM07, - ESRIP_RAM08, - ESRIP_RAM09, - ESRIP_RAM0A, - ESRIP_RAM0B, - ESRIP_RAM0C, - ESRIP_RAM0D, - ESRIP_RAM0E, - ESRIP_RAM0F, - ESRIP_RAM10, - ESRIP_RAM11, - ESRIP_RAM12, - ESRIP_RAM13, - ESRIP_RAM14, - ESRIP_RAM15, - ESRIP_RAM16, - ESRIP_RAM17, - ESRIP_RAM18, - ESRIP_RAM19, - ESRIP_RAM1A, - ESRIP_RAM1B, - ESRIP_RAM1C, - ESRIP_RAM1D, - ESRIP_RAM1E, - ESRIP_RAM1F, - ESRIP_STATW, - ESRIP_FDTC, - ESRIP_IPTC, - ESRIP_XSCALE, - ESRIP_YSCALE, - ESRIP_BANK, - ESRIP_LINE, - ESRIP_FIG, - ESRIP_ATTR, - ESRIP_ADRL, - ESRIP_ADRR, - ESRIP_COLR, - ESRIP_IADDR -}; - - //************************************************************************** // TYPE DEFINITIONS //************************************************************************** -typedef device_delegate esrip_draw_delegate; // device type definition -extern const device_type ESRIP; +DECLARE_DEVICE_TYPE(ESRIP, esrip_device) // ======================> esrip_device @@ -114,20 +48,76 @@ extern const device_type ESRIP; class esrip_device : public cpu_device { public: + typedef device_delegate draw_delegate; + // construction/destruction esrip_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // inline configuration helpers - template static devcb_base &static_set_fdt_r_callback(device_t &device, _Object object) { return downcast(device).m_fdt_r.set_callback(object); } - template static devcb_base &static_set_fdt_w_callback(device_t &device, _Object object) { return downcast(device).m_fdt_w.set_callback(object); } - template static devcb_base &static_set_status_in_callback(device_t &device, _Object object) { return downcast(device).m_status_in.set_callback(object); } - static void static_set_draw_callback(device_t &device, esrip_draw_delegate func) { downcast(device).m_draw = func; } + template static devcb_base &static_set_fdt_r_callback(device_t &device, Object &&cb) { return downcast(device).m_fdt_r.set_callback(std::forward(cb)); } + template static devcb_base &static_set_fdt_w_callback(device_t &device, Object &&cb) { return downcast(device).m_fdt_w.set_callback(std::forward(cb)); } + template static devcb_base &static_set_status_in_callback(device_t &device, Object &&cb) { return downcast(device).m_status_in.set_callback(std::forward(cb)); } + static void static_set_draw_callback(device_t &device, draw_delegate func) { downcast(device).m_draw = func; } static void static_lbrm_prom(device_t &device, const char *name) { downcast(device).m_lbrm_prom = name; } // public interfaces uint8_t get_rip_status(); protected: + // register enumeration + enum + { + ESRIP_PC = 1, + ESRIP_ACC, + ESRIP_DLATCH, + ESRIP_ILATCH, + ESRIP_RAM00, + ESRIP_RAM01, + ESRIP_RAM02, + ESRIP_RAM03, + ESRIP_RAM04, + ESRIP_RAM05, + ESRIP_RAM06, + ESRIP_RAM07, + ESRIP_RAM08, + ESRIP_RAM09, + ESRIP_RAM0A, + ESRIP_RAM0B, + ESRIP_RAM0C, + ESRIP_RAM0D, + ESRIP_RAM0E, + ESRIP_RAM0F, + ESRIP_RAM10, + ESRIP_RAM11, + ESRIP_RAM12, + ESRIP_RAM13, + ESRIP_RAM14, + ESRIP_RAM15, + ESRIP_RAM16, + ESRIP_RAM17, + ESRIP_RAM18, + ESRIP_RAM19, + ESRIP_RAM1A, + ESRIP_RAM1B, + ESRIP_RAM1C, + ESRIP_RAM1D, + ESRIP_RAM1E, + ESRIP_RAM1F, + ESRIP_STATW, + ESRIP_FDTC, + ESRIP_IPTC, + ESRIP_XSCALE, + ESRIP_YSCALE, + ESRIP_BANK, + ESRIP_LINE, + ESRIP_FIG, + ESRIP_ATTR, + ESRIP_ADRL, + ESRIP_ADRR, + ESRIP_COLR, + ESRIP_IADDR + }; + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -212,7 +202,7 @@ protected: devcb_read16 m_fdt_r; devcb_write16 m_fdt_w; devcb_read8 m_status_in; - esrip_draw_delegate m_draw; + draw_delegate m_draw; const char *m_lbrm_prom; typedef void (esrip_device::*ophandler)(uint16_t inst); @@ -279,4 +269,4 @@ private: CPU_DISASSEMBLE( esrip ); -#endif /* _ESRIP_H */ +#endif // MAME_CPU_ESRIP_ESRIP_H diff --git a/src/devices/cpu/f8/f8.cpp b/src/devices/cpu/f8/f8.cpp index 8df6d500366..1b26b4ab638 100644 --- a/src/devices/cpu/f8/f8.cpp +++ b/src/devices/cpu/f8/f8.cpp @@ -15,8 +15,8 @@ */ #include "emu.h" -#include "debugger.h" #include "f8.h" +#include "debugger.h" #define S 0x01 #define C 0x02 @@ -56,11 +56,11 @@ } -const device_type F8 = device_creator; +DEFINE_DEVICE_TYPE(F8, f8_cpu_device, "f8", "Fairchild F8") f8_cpu_device::f8_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cpu_device(mconfig, F8, "Fairchild F8", tag, owner, clock, "f8", __FILE__) + : cpu_device(mconfig, F8, tag, owner, clock) , m_program_config("program", ENDIANNESS_BIG, 8, 16, 0) , m_io_config("io", ENDIANNESS_BIG, 8, 8, 0) , m_pc0(0) diff --git a/src/devices/cpu/f8/f8.h b/src/devices/cpu/f8/f8.h index 02c1d4733e3..558c0b2a468 100644 --- a/src/devices/cpu/f8/f8.h +++ b/src/devices/cpu/f8/f8.h @@ -7,15 +7,24 @@ * *****************************************************************************/ +#ifndef MAME_CPU_F8_F8_H +#define MAME_CPU_F8_F8_H + #pragma once -#ifndef __F8_H__ -#define _F8_H +#define F8_INPUT_LINE_INT_REQ 1 -enum +class f8_cpu_device : public cpu_device { - F8_PC0=1, F8_PC1, F8_DC0, F8_DC1, F8_W, F8_A, F8_IS, +public: + // construction/destruction + f8_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + +protected: + enum + { + F8_PC0=1, F8_PC1, F8_DC0, F8_DC1, F8_W, F8_A, F8_IS, F8_J, F8_HU, F8_HL, F8_KU, F8_KL, F8_QU, F8_QL, F8_R0, F8_R1, F8_R2, F8_R3, F8_R4, F8_R5, F8_R6, F8_R7, F8_R8, @@ -25,17 +34,8 @@ enum F8_R40, F8_R41, F8_R42, F8_R43, F8_R44, F8_R45, F8_R46, F8_R47, F8_R48, F8_R49, F8_R50, F8_R51, F8_R52, F8_R53, F8_R54, F8_R55, F8_R56, F8_R57, F8_R58, F8_R59, F8_R60, F8_R61, F8_R62, F8_R63 -}; + }; -#define F8_INPUT_LINE_INT_REQ 1 - -class f8_cpu_device : public cpu_device -{ -public: - // construction/destruction - f8_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - -protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -211,7 +211,6 @@ private: }; -extern const device_type F8; - +DECLARE_DEVICE_TYPE(F8, f8_cpu_device) -#endif /* __F8_H__ */ +#endif // MAME_CPU_F8_F8_H diff --git a/src/devices/cpu/g65816/g65816.cpp b/src/devices/cpu/g65816/g65816.cpp index f15d6fcb7d5..b68fccce743 100644 --- a/src/devices/cpu/g65816/g65816.cpp +++ b/src/devices/cpu/g65816/g65816.cpp @@ -93,20 +93,24 @@ TODO general: #include "g65816.h" -const device_type G65816 = device_creator; -const device_type _5A22 = device_creator<_5a22_device>; +DEFINE_DEVICE_TYPE(G65816, g65816_device, "g65c816", "G65C816") +DEFINE_DEVICE_TYPE(_5A22, _5a22_device, "5a22", "5A22") + +enum +{ + CPU_TYPE_G65816 = 0, + CPU_TYPE_5A22 = 1 +}; g65816_device::g65816_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cpu_device(mconfig, G65816, "G65C816", tag, owner, clock, "g65c816", __FILE__) - , m_program_config("program", ENDIANNESS_LITTLE, 8, 24, 0) - , m_cpu_type(CPU_TYPE_G65816) + : g65816_device(mconfig, G65816, tag, owner, clock, CPU_TYPE_G65816, nullptr) { } -g65816_device::g65816_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source, int cpu_type, address_map_constructor internal) - : cpu_device(mconfig, type, name, tag, owner, clock, shortname, source) +g65816_device::g65816_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int cpu_type, address_map_constructor internal) + : cpu_device(mconfig, type, tag, owner, clock) , m_program_config("program", ENDIANNESS_LITTLE, 8, 24, 0, internal) , m_cpu_type(cpu_type) { @@ -130,7 +134,7 @@ ADDRESS_MAP_END _5a22_device::_5a22_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : g65816_device(mconfig, _5A22, "5A22", tag, owner, clock, "5a22", __FILE__, CPU_TYPE_5A22, ADDRESS_MAP_NAME(_5a22_map)) + : g65816_device(mconfig, _5A22, tag, owner, clock, CPU_TYPE_5A22, ADDRESS_MAP_NAME(_5a22_map)) { } diff --git a/src/devices/cpu/g65816/g65816.h b/src/devices/cpu/g65816/g65816.h index 07c649c746c..ab85e1513fc 100644 --- a/src/devices/cpu/g65816/g65816.h +++ b/src/devices/cpu/g65816/g65816.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Karl Stenerud -#pragma once +#ifndef MAME_CPU_G65816_G65816_H +#define MAME_CPU_G65816_G65816_H -#ifndef __G65816_H__ -#define __G65816_H__ +#pragma once #include "g65816cm.h" @@ -45,26 +45,26 @@ enum #define G65816_INT_NMI G65816_LINE_NMI -/* Registers - used by g65816_set_reg() and g65816_get_reg() */ -enum -{ - G65816_PC=1, G65816_S, G65816_P, G65816_A, G65816_X, G65816_Y, - G65816_PB, G65816_DB, G65816_D, G65816_E, - G65816_NMI_STATE, G65816_IRQ_STATE, - _5A22_FASTROM -}; - - class g65816_device : public cpu_device { public: // construction/destruction g65816_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - g65816_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source, int cpu_type, address_map_constructor internal = nullptr); void set_read_vector_callback(read8_delegate read_vector); protected: + /* Registers - used by g65816_set_reg() and g65816_get_reg() */ + enum + { + G65816_PC=1, G65816_S, G65816_P, G65816_A, G65816_X, G65816_Y, + G65816_PB, G65816_DB, G65816_D, G65816_E, + G65816_NMI_STATE, G65816_IRQ_STATE, + _5A22_FASTROM + }; + + g65816_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int cpu_type, address_map_constructor internal); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -1555,12 +1555,8 @@ protected: }; -extern const device_type G65816; -extern const device_type _5A22; - - -#define CPU_TYPE_G65816 0 -#define CPU_TYPE_5A22 1 +DECLARE_DEVICE_TYPE(G65816, g65816_device) +DECLARE_DEVICE_TYPE(_5A22, _5a22_device) /* ======================================================================== */ diff --git a/src/devices/cpu/h6280/h6280.cpp b/src/devices/cpu/h6280/h6280.cpp index 87a3f2c8dd1..fb0d2dc70a7 100644 --- a/src/devices/cpu/h6280/h6280.cpp +++ b/src/devices/cpu/h6280/h6280.cpp @@ -7,7 +7,7 @@ Copyright Bryan McPhail, mish@tendril.co.uk This source code is based (with permission!) on the 6502 emulator by - Juergen Buchmueller. It is released as part of the Mame emulator project. + Juergen Buchmueller. It is released as part of the MAME emulator project. Let me know if you intend to use this code in any other project. @@ -153,16 +153,16 @@ enum // DEVICE INTERFACE //************************************************************************** -const device_type H6280 = device_creator; +DEFINE_DEVICE_TYPE(H6280, h6280_device, "h6280", "HuC6280") //------------------------------------------------- // h6280_device - constructor //------------------------------------------------- h6280_device::h6280_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cpu_device(mconfig, H6280, "H6280", tag, owner, clock, "h6280", __FILE__), - m_program_config("program", ENDIANNESS_LITTLE, 8, 21), - m_io_config("io", ENDIANNESS_LITTLE, 8, 2) + : cpu_device(mconfig, H6280, tag, owner, clock) + , m_program_config("program", ENDIANNESS_LITTLE, 8, 21) + , m_io_config("io", ENDIANNESS_LITTLE, 8, 2) { // build the opcode table for (int op = 0; op < 256; op++) @@ -255,7 +255,7 @@ void h6280_device::device_start() save_item(NAME(m_irq_state[2])); save_item(NAME(m_irq_pending)); -#if LAZY_FLAGS +#if H6280_LAZY_FLAGS save_item(NAME(m_nz)); #endif save_item(NAME(m_io_buffer)); @@ -287,7 +287,7 @@ void h6280_device::device_reset() m_irq_mask = 0; m_timer_ack = 0; m_timer_value = 0; -#if LAZY_FLAGS +#if H6280_LAZY_FLAGS m_nz = 0; #endif m_io_buffer = 0; @@ -333,7 +333,7 @@ inline void h6280_device::h6280_cycles(int cyc) m_timer_value -= ((cyc) * m_clocks_per_cycle); } -#if LAZY_FLAGS +#if H6280_LAZY_FLAGS #define NZ m_NZ inline void h6280_device::set_nz(uint8_t n) @@ -709,7 +709,7 @@ inline void h6280_device::wb_eaz(uint8_t tmp) * including N and Z and set any * SET and clear any CLR bits also ***************************************************************/ -#if LAZY_FLAGS +#if H6280_LAZY_FLAGS inline void h6280_device::compose_p(uint8_t SET, uint8_t CLR) { @@ -880,7 +880,7 @@ inline void h6280_device::bcs() ***************************************************************/ inline void h6280_device::beq() { -#if LAZY_FLAGS +#if H6280_LAZY_FLAGS bra(!(NZ & 0xff)); #else bra(P & _fZ); @@ -903,7 +903,7 @@ inline void h6280_device::bit(uint8_t tmp) ***************************************************************/ inline void h6280_device::bmi() { -#if LAZY_FLAGS +#if H6280_LAZY_FLAGS bra(NZ & 0x8000); #else bra(P & _fN); @@ -915,7 +915,7 @@ inline void h6280_device::bmi() ***************************************************************/ inline void h6280_device::bne() { -#if LAZY_FLAGS +#if H6280_LAZY_FLAGS bra(NZ & 0xff); #else bra(!(P & _fZ)); @@ -927,7 +927,7 @@ inline void h6280_device::bne() ***************************************************************/ inline void h6280_device::bpl() { -#if LAZY_FLAGS +#if H6280_LAZY_FLAGS bra(!(NZ & 0x8000)); #else bra(!(P & _fN)); @@ -1319,7 +1319,7 @@ inline void h6280_device::pla() ***************************************************************/ inline void h6280_device::plp() { -#if LAZY_FLAGS +#if H6280_LAZY_FLAGS pull(P); P |= _fB; NZ = ((P & _fN) << 8) | @@ -1396,7 +1396,7 @@ inline uint8_t h6280_device::ror(uint8_t tmp) ***************************************************************/ inline void h6280_device::rti() { -#if LAZY_FLAGS +#if H6280_LAZY_FLAGS pull(P); P |= _fB; NZ = ((P & _fN) << 8) | diff --git a/src/devices/cpu/h6280/h6280.h b/src/devices/cpu/h6280/h6280.h index 7e4bf9cf9e8..01ffa06bec7 100644 --- a/src/devices/cpu/h6280/h6280.h +++ b/src/devices/cpu/h6280/h6280.h @@ -12,41 +12,13 @@ ******************************************************************************/ -#pragma once - -#ifndef __H6280_H__ -#define __H6280_H__ - +#ifndef MAME_CPU_H6280_H6280_H +#define MAME_CPU_H6280_H6280_H -#define LAZY_FLAGS 0 +#pragma once -/*************************************************************************** - REGISTER ENUMERATION -***************************************************************************/ -enum -{ - H6280_PC = 1, - H6280_S, - H6280_P, - H6280_A, - H6280_X, - H6280_Y, - H6280_IRQ_MASK, - H6280_TIMER_STATE, - H6280_NMI_STATE, - H6280_IRQ1_STATE, - H6280_IRQ2_STATE, - H6280_IRQT_STATE, - H6280_M1, - H6280_M2, - H6280_M3, - H6280_M4, - H6280_M5, - H6280_M6, - H6280_M7, - H6280_M8 -}; +#define H6280_LAZY_FLAGS 0 //************************************************************************** // TYPE DEFINITIONS @@ -75,6 +47,31 @@ public: void io_set_buffer(uint8_t); protected: + // register enumeration + enum + { + H6280_PC = 1, + H6280_S, + H6280_P, + H6280_A, + H6280_X, + H6280_Y, + H6280_IRQ_MASK, + H6280_TIMER_STATE, + H6280_NMI_STATE, + H6280_IRQ1_STATE, + H6280_IRQ2_STATE, + H6280_IRQT_STATE, + H6280_M1, + H6280_M2, + H6280_M3, + H6280_M4, + H6280_M5, + H6280_M6, + H6280_M7, + H6280_M8 + }; + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -351,7 +348,7 @@ protected: uint8_t m_nmi_state; uint8_t m_irq_state[3]; uint8_t m_irq_pending; -#if LAZY_FLAGS +#if H6280_LAZY_FLAGS int32_t m_nz; /* last value (lazy N and Z flag) */ #endif uint8_t m_io_buffer; /* last value written to the PSG, timer, and interrupt pages */ @@ -371,6 +368,6 @@ protected: static const ophandler s_opcodetable[256]; }; -extern const device_type H6280; +DECLARE_DEVICE_TYPE(H6280, h6280_device) -#endif /* __H6280_H__ */ +#endif // MAME_CPU_H6280_H6280_H diff --git a/src/devices/cpu/h8/h8.cpp b/src/devices/cpu/h8/h8.cpp index f572063e186..1416b4c19b5 100644 --- a/src/devices/cpu/h8/h8.cpp +++ b/src/devices/cpu/h8/h8.cpp @@ -15,8 +15,8 @@ #include "h8_dma.h" #include "h8_dtc.h" -h8_device::h8_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source, bool mode_a16, address_map_delegate map_delegate) : - cpu_device(mconfig, type, name, tag, owner, clock, shortname, source), +h8_device::h8_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, bool mode_a16, address_map_delegate map_delegate) : + cpu_device(mconfig, type, tag, owner, clock), program_config("program", ENDIANNESS_BIG, 16, mode_a16 ? 16 : 24, 0, map_delegate), io_config("io", ENDIANNESS_BIG, 16, 16, -1), program(nullptr), io(nullptr), direct(nullptr), PPC(0), NPC(0), PC(0), PIR(0), EXR(0), CCR(0), MAC(0), MACF(0), TMP1(0), TMP2(0), TMPR(0), inst_state(0), inst_substate(0), icount(0), bcount(0), irq_vector(0), taken_irq_vector(0), irq_level(0), taken_irq_level(0), irq_required(false), irq_nmi(false) diff --git a/src/devices/cpu/h8/h8.h b/src/devices/cpu/h8/h8.h index 089cec91fb7..ac1cb6dd2fe 100644 --- a/src/devices/cpu/h8/h8.h +++ b/src/devices/cpu/h8/h8.h @@ -9,8 +9,10 @@ ***************************************************************************/ -#ifndef __H8_H__ -#define __H8_H__ +#ifndef MAME_CPU_H8_H8_H +#define MAME_CPU_H8_H8_H + +#pragma once class h8_dma_device; class h8_dtc_device; @@ -61,8 +63,6 @@ public: STATE_DTC_WRITEBACK = 0x10006 }; - h8_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source, bool mode_a16, address_map_delegate map_delegate); - void internal_update(); void set_irq(int irq_vector, int irq_level, bool irq_nmi); bool trigger_dma(int vector); @@ -154,6 +154,8 @@ protected: DASM_mach /* internal register mach */ }; + h8_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, bool mode_a16, address_map_delegate map_delegate); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -490,4 +492,4 @@ enum { H8_EXR }; -#endif +#endif // MAME_CPU_H8_H8_H diff --git a/src/devices/cpu/h8/h83002.cpp b/src/devices/cpu/h8/h83002.cpp index 569e78cec41..64f15eba1a7 100644 --- a/src/devices/cpu/h8/h83002.cpp +++ b/src/devices/cpu/h8/h83002.cpp @@ -3,10 +3,10 @@ #include "emu.h" #include "h83002.h" -const device_type H83002 = device_creator; +DEFINE_DEVICE_TYPE(H83002, h83002_device, "h83002", "H8/3002") h83002_device::h83002_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - h8h_device(mconfig, H83002, "H8/3002", tag, owner, clock, "h83002", __FILE__, address_map_delegate(FUNC(h83002_device::map), this)), + h8h_device(mconfig, H83002, tag, owner, clock, address_map_delegate(FUNC(h83002_device::map), this)), intc(*this, "intc"), adc(*this, "adc"), dma(*this, "dma"), diff --git a/src/devices/cpu/h8/h83002.h b/src/devices/cpu/h8/h83002.h index 0b0b1a2c76c..dfca4051479 100644 --- a/src/devices/cpu/h8/h83002.h +++ b/src/devices/cpu/h8/h83002.h @@ -11,8 +11,10 @@ ***************************************************************************/ -#ifndef __H83002_H__ -#define __H83002_H__ +#ifndef MAME_CPU_H8_H83002_H +#define MAME_CPU_H8_H83002_H + +#pragma once #include "h8h.h" #include "h8_adc.h" @@ -82,6 +84,6 @@ protected: virtual void execute_set_input(int inputnum, int state) override; }; -extern const device_type H83002; +DECLARE_DEVICE_TYPE(H83002, h83002_device) -#endif +#endif // MAME_CPU_H8_H83002_H diff --git a/src/devices/cpu/h8/h83006.cpp b/src/devices/cpu/h8/h83006.cpp index 1c12b4b8a89..527359ef208 100644 --- a/src/devices/cpu/h8/h83006.cpp +++ b/src/devices/cpu/h8/h83006.cpp @@ -3,12 +3,12 @@ #include "emu.h" #include "h83006.h" -const device_type H83006 = device_creator; -const device_type H83007 = device_creator; +DEFINE_DEVICE_TYPE(H83006, h83006_device, "h83006", "H8/3006") +DEFINE_DEVICE_TYPE(H83007, h83007_device, "h83007", "H8/3007") -h83006_device::h83006_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - h8h_device(mconfig, type, name, tag, owner, clock, shortname, source, address_map_delegate(FUNC(h83006_device::map), this)), +h83006_device::h83006_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint32_t start) : + h8h_device(mconfig, type, tag, owner, clock, address_map_delegate(FUNC(h83006_device::map), this)), intc(*this, "intc"), adc(*this, "adc"), port4(*this, "port4"), @@ -29,45 +29,21 @@ h83006_device::h83006_device(const machine_config &mconfig, device_type type, co sci0(*this, "sci0"), sci1(*this, "sci1"), sci2(*this, "sci2"), - watchdog(*this, "watchdog") + watchdog(*this, "watchdog"), + syscr(0), + ram_start(start) { - syscr = 0; - ram_start = 0; } h83006_device::h83006_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - h8h_device(mconfig, H83006, "H8/3006", tag, owner, clock, "h83006", __FILE__, address_map_delegate(FUNC(h83006_device::map), this)), - intc(*this, "intc"), - adc(*this, "adc"), - port4(*this, "port4"), - port6(*this, "port6"), - port7(*this, "port7"), - port8(*this, "port8"), - port9(*this, "port9"), - porta(*this, "porta"), - portb(*this, "portb"), - timer8_0(*this, "timer8_0"), - timer8_1(*this, "timer8_1"), - timer8_2(*this, "timer8_2"), - timer8_3(*this, "timer8_3"), - timer16(*this, "timer16"), - timer16_0(*this, "timer16:0"), - timer16_1(*this, "timer16:1"), - timer16_2(*this, "timer16:2"), - sci0(*this, "sci0"), - sci1(*this, "sci1"), - sci2(*this, "sci2"), - watchdog(*this, "watchdog") + h83006_device(mconfig, H83006, tag, owner, clock, 0xfff720) { - syscr = 0; - ram_start = 0xfff720; } h83007_device::h83007_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - h83006_device(mconfig, H83007, "H8/3007", tag, owner, clock, "h83007", __FILE__) + h83006_device(mconfig, H83007, tag, owner, clock, 0xffef20) { - ram_start = 0xffef20; } static MACHINE_CONFIG_FRAGMENT(h83006) diff --git a/src/devices/cpu/h8/h83006.h b/src/devices/cpu/h8/h83006.h index 9b73d54d1fe..6809c28c464 100644 --- a/src/devices/cpu/h8/h83006.h +++ b/src/devices/cpu/h8/h83006.h @@ -11,8 +11,10 @@ ***************************************************************************/ -#ifndef __H83006_H__ -#define __H83006_H__ +#ifndef MAME_CPU_H8_H83006_H +#define MAME_CPU_H8_H83006_H + +#pragma once #include "h8h.h" #include "h8_adc.h" @@ -25,13 +27,14 @@ class h83006_device : public h8h_device { public: - h83006_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); h83006_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); DECLARE_READ8_MEMBER(syscr_r); DECLARE_WRITE8_MEMBER(syscr_w); protected: + h83006_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint32_t start); + required_device intc; required_device adc; required_device port4; @@ -76,7 +79,7 @@ public: h83007_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; -extern const device_type H83006; -extern const device_type H83007; +DECLARE_DEVICE_TYPE(H83006, h83006_device) +DECLARE_DEVICE_TYPE(H83007, h83007_device) -#endif +#endif // MAME_CPU_H8_H83006_H diff --git a/src/devices/cpu/h8/h83008.cpp b/src/devices/cpu/h8/h83008.cpp index 05fd4df2482..392747d2997 100644 --- a/src/devices/cpu/h8/h83008.cpp +++ b/src/devices/cpu/h8/h83008.cpp @@ -3,10 +3,10 @@ #include "emu.h" #include "h83008.h" -const device_type H83008 = device_creator; +DEFINE_DEVICE_TYPE(H83008, h83008_device, "h83008", "H8/3008") h83008_device::h83008_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - h8h_device(mconfig, H83008, "H8/3008", tag, owner, clock, "h83008", __FILE__, address_map_delegate(FUNC(h83008_device::map), this)), + h8h_device(mconfig, H83008, tag, owner, clock, address_map_delegate(FUNC(h83008_device::map), this)), intc(*this, "intc"), adc(*this, "adc"), port4(*this, "port4"), @@ -26,9 +26,9 @@ h83008_device::h83008_device(const machine_config &mconfig, const char *tag, dev timer16_2(*this, "timer16:2"), sci0(*this, "sci0"), sci1(*this, "sci1"), - watchdog(*this, "watchdog") + watchdog(*this, "watchdog"), + syscr(0) { - syscr = 0; } static MACHINE_CONFIG_FRAGMENT(h83008) diff --git a/src/devices/cpu/h8/h83008.h b/src/devices/cpu/h8/h83008.h index 8a24631ee90..17eaff299e6 100644 --- a/src/devices/cpu/h8/h83008.h +++ b/src/devices/cpu/h8/h83008.h @@ -11,8 +11,10 @@ ***************************************************************************/ -#ifndef __H83008_H__ -#define __H83008_H__ +#ifndef MAME_CPU_H8_H83008_H +#define MAME_CPU_H8_H83008_H + +#pragma once #include "h8h.h" #include "h8_adc.h" @@ -67,6 +69,6 @@ protected: virtual void execute_set_input(int inputnum, int state) override; }; -extern const device_type H83008; +DECLARE_DEVICE_TYPE(H83008, h83008_device) -#endif +#endif // MAME_CPU_H8_H83008_H diff --git a/src/devices/cpu/h8/h83048.cpp b/src/devices/cpu/h8/h83048.cpp index f68b52b382c..a3d5f56f76a 100644 --- a/src/devices/cpu/h8/h83048.cpp +++ b/src/devices/cpu/h8/h83048.cpp @@ -3,13 +3,13 @@ #include "emu.h" #include "h83048.h" -const device_type H83044 = device_creator; -const device_type H83045 = device_creator; -const device_type H83047 = device_creator; -const device_type H83048 = device_creator; +DEFINE_DEVICE_TYPE(H83044, h83044_device, "h83044", "H8/3044") +DEFINE_DEVICE_TYPE(H83045, h83045_device, "h83045", "H8/3045") +DEFINE_DEVICE_TYPE(H83047, h83047_device, "h83047", "H8/3047") +DEFINE_DEVICE_TYPE(H83048, h83048_device, "h83048", "H8/3048") -h83048_device::h83048_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - h8h_device(mconfig, type, name, tag, owner, clock, shortname, source, address_map_delegate(FUNC(h83048_device::map), this)), +h83048_device::h83048_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint32_t start) : + h8h_device(mconfig, type, tag, owner, clock, address_map_delegate(FUNC(h83048_device::map), this)), intc(*this, "intc"), adc(*this, "adc"), port1(*this, "port1"), @@ -31,57 +31,30 @@ h83048_device::h83048_device(const machine_config &mconfig, device_type type, co timer16_4(*this, "timer16:4"), sci0(*this, "sci0"), sci1(*this, "sci1"), - watchdog(*this, "watchdog") + watchdog(*this, "watchdog"), + ram_start(start), + syscr(0) { - ram_start = 0; - syscr = 0; } h83048_device::h83048_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - h8h_device(mconfig, H83048, "H8/3048", tag, owner, clock, "h83048", __FILE__, address_map_delegate(FUNC(h83048_device::map), this)), - intc(*this, "intc"), - adc(*this, "adc"), - port1(*this, "port1"), - port2(*this, "port2"), - port3(*this, "port3"), - port4(*this, "port4"), - port5(*this, "port5"), - port6(*this, "port6"), - port7(*this, "port7"), - port8(*this, "port8"), - port9(*this, "port9"), - porta(*this, "porta"), - portb(*this, "portb"), - timer16(*this, "timer16"), - timer16_0(*this, "timer16:0"), - timer16_1(*this, "timer16:1"), - timer16_2(*this, "timer16:2"), - timer16_3(*this, "timer16:3"), - timer16_4(*this, "timer16:4"), - sci0(*this, "sci0"), - sci1(*this, "sci1"), - watchdog(*this, "watchdog") + h83048_device(mconfig, H83048, tag, owner, clock, 0xffef10) { - syscr = 0; - ram_start = 0xffef10; } h83044_device::h83044_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - h83048_device(mconfig, H83044, "H8/3044", tag, owner, clock, "h83044", __FILE__) + h83048_device(mconfig, H83044, tag, owner, clock, 0xfff710) { - ram_start = 0xfff710; } h83045_device::h83045_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - h83048_device(mconfig, H83045, "H8/3045", tag, owner, clock, "h83045", __FILE__) + h83048_device(mconfig, H83045, tag, owner, clock, 0xfff710) { - ram_start = 0xfff710; } h83047_device::h83047_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - h83048_device(mconfig, H83047, "H8/3047", tag, owner, clock, "h83047", __FILE__) + h83048_device(mconfig, H83047, tag, owner, clock, 0xffef10) { - ram_start = 0xffef10; } static MACHINE_CONFIG_FRAGMENT(h83048) diff --git a/src/devices/cpu/h8/h83048.h b/src/devices/cpu/h8/h83048.h index 367313290fc..4dcb95103db 100644 --- a/src/devices/cpu/h8/h83048.h +++ b/src/devices/cpu/h8/h83048.h @@ -19,8 +19,8 @@ ***************************************************************************/ -#ifndef __H83048_H__ -#define __H83048_H__ +#ifndef MAME_CPU_H8_H83048_H +#define MAME_CPU_H8_H83048_H #include "h8h.h" #include "h8_adc.h" @@ -32,13 +32,14 @@ class h83048_device : public h8h_device { public: - h83048_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); h83048_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); DECLARE_READ8_MEMBER(syscr_r); DECLARE_WRITE8_MEMBER(syscr_w); protected: + h83048_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint32_t start); + required_device intc; required_device adc; required_device port1; @@ -93,9 +94,9 @@ public: h83047_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; -extern const device_type H83044; -extern const device_type H83045; -extern const device_type H83047; -extern const device_type H83048; +DECLARE_DEVICE_TYPE(H83044, h83044_device) +DECLARE_DEVICE_TYPE(H83045, h83045_device) +DECLARE_DEVICE_TYPE(H83047, h83047_device) +DECLARE_DEVICE_TYPE(H83048, h83048_device) -#endif +#endif // MAME_CPU_H8_H83048_H diff --git a/src/devices/cpu/h8/h83337.cpp b/src/devices/cpu/h8/h83337.cpp index eb107c504dc..4d5bedc14ae 100644 --- a/src/devices/cpu/h8/h83337.cpp +++ b/src/devices/cpu/h8/h83337.cpp @@ -3,13 +3,13 @@ #include "emu.h" #include "h83337.h" -const device_type H83334 = device_creator; -const device_type H83336 = device_creator; -const device_type H83337 = device_creator; +DEFINE_DEVICE_TYPE(H83334, h83334_device, "h83334", "H8/3334") +DEFINE_DEVICE_TYPE(H83336, h83336_device, "h83336", "H8/3336") +DEFINE_DEVICE_TYPE(H83337, h83337_device, "h83337", "H8/3337") -h83337_device::h83337_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - h8_device(mconfig, type, name, tag, owner, clock, shortname, source, true, address_map_delegate(FUNC(h83337_device::map), this)), +h83337_device::h83337_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint32_t start) : + h8_device(mconfig, type, tag, owner, clock, true, address_map_delegate(FUNC(h83337_device::map), this)), intc(*this, "intc"), adc(*this, "adc"), port1(*this, "port1"), @@ -27,47 +27,25 @@ h83337_device::h83337_device(const machine_config &mconfig, device_type type, co timer16_0(*this, "timer16:0"), sci0(*this, "sci0"), sci1(*this, "sci1"), - watchdog(*this, "watchdog") + watchdog(*this, "watchdog"), + syscr(0), + ram_start(start) { - syscr = 0; - ram_start = 0; } h83337_device::h83337_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - h8_device(mconfig, H83337, "H8/3337", tag, owner, clock, "h83337", __FILE__, true, address_map_delegate(FUNC(h83337_device::map), this)), - intc(*this, "intc"), - adc(*this, "adc"), - port1(*this, "port1"), - port2(*this, "port2"), - port3(*this, "port3"), - port4(*this, "port4"), - port5(*this, "port5"), - port6(*this, "port6"), - port7(*this, "port7"), - port8(*this, "port8"), - port9(*this, "port9"), - timer8_0(*this, "timer8_0"), - timer8_1(*this, "timer8_1"), - timer16(*this, "timer16"), - timer16_0(*this, "timer16:0"), - sci0(*this, "sci0"), - sci1(*this, "sci1"), - watchdog(*this, "watchdog") + h83337_device(mconfig, H83337, tag, owner, clock, 0xf780) { - syscr = 0; - ram_start = 0xf780; } h83334_device::h83334_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - h83337_device(mconfig, H83334, "H8/3334", tag, owner, clock, "h83334", __FILE__) + h83337_device(mconfig, H83334, tag, owner, clock, 0xfb80) { - ram_start = 0xfb80; } h83336_device::h83336_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - h83337_device(mconfig, H83336, "H8/3336", tag, owner, clock, "h83336", __FILE__) + h83337_device(mconfig, H83336, tag, owner, clock, 0xf780) { - ram_start = 0xf780; } static MACHINE_CONFIG_FRAGMENT(h83337) diff --git a/src/devices/cpu/h8/h83337.h b/src/devices/cpu/h8/h83337.h index f5a66409335..b29872b4c08 100644 --- a/src/devices/cpu/h8/h83337.h +++ b/src/devices/cpu/h8/h83337.h @@ -18,8 +18,10 @@ ***************************************************************************/ -#ifndef __H83337_H__ -#define __H83337_H__ +#ifndef MAME_CPU_H8_H83337_H +#define MAME_CPU_H8_H83337_H + +#pragma once #include "h8.h" #include "h8_intc.h" @@ -32,7 +34,6 @@ class h83337_device : public h8_device { public: - h83337_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); h83337_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); DECLARE_READ8_MEMBER(wscr_r); @@ -45,6 +46,8 @@ public: DECLARE_WRITE8_MEMBER(mdcr_w); protected: + h83337_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint32_t start); + required_device intc; required_device adc; required_device port1; @@ -89,8 +92,8 @@ public: h83336_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; -extern const device_type H83334; -extern const device_type H83336; -extern const device_type H83337; +DECLARE_DEVICE_TYPE(H83334, h83334_device) +DECLARE_DEVICE_TYPE(H83336, h83336_device) +DECLARE_DEVICE_TYPE(H83337, h83337_device) -#endif +#endif // MAME_CPU_H8_H83337_H diff --git a/src/devices/cpu/h8/h8_adc.cpp b/src/devices/cpu/h8/h8_adc.cpp index fbeaa5e9199..979b13fe631 100644 --- a/src/devices/cpu/h8/h8_adc.cpp +++ b/src/devices/cpu/h8/h8_adc.cpp @@ -8,16 +8,17 @@ // 1 = everything const int V = 0; -const device_type H8_ADC_3337 = device_creator; -const device_type H8_ADC_3006 = device_creator; -const device_type H8_ADC_2245 = device_creator; -const device_type H8_ADC_2320 = device_creator; -const device_type H8_ADC_2357 = device_creator; -const device_type H8_ADC_2655 = device_creator; - -h8_adc_device::h8_adc_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), - cpu(*this, DEVICE_SELF_OWNER), intc(nullptr), io(nullptr), intc_tag(nullptr), intc_vector(0), adcsr(0), adcr(0), register_mask(0), trigger(0), start_mode(0), start_channel(0), +DEFINE_DEVICE_TYPE(H8_ADC_3337, h8_adc_3337_device, "h8_adc_3337", "H8/3337 ADC") +DEFINE_DEVICE_TYPE(H8_ADC_3006, h8_adc_3006_device, "h8_adc_3006", "H8/3006 ADC") +DEFINE_DEVICE_TYPE(H8_ADC_2245, h8_adc_2245_device, "h8_adc_2245", "H8/2245 ADC") +DEFINE_DEVICE_TYPE(H8_ADC_2320, h8_adc_2320_device, "h8_adc_2320", "H8/2320 ADC") +DEFINE_DEVICE_TYPE(H8_ADC_2357, h8_adc_2357_device, "h8_adc_2357", "H8/2357 ADC") +DEFINE_DEVICE_TYPE(H8_ADC_2655, h8_adc_2655_device, "h8_adc_2655", "H8/2655 ADC") + +h8_adc_device::h8_adc_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), + cpu(*this, DEVICE_SELF_OWNER), + intc(nullptr), io(nullptr), intc_tag(nullptr), intc_vector(0), adcsr(0), adcr(0), register_mask(0), trigger(0), start_mode(0), start_channel(0), end_channel(0), start_count(0), mode(0), channel(0), count(0), analog_powered(false), adtrg(false), next_event(0) { suspend_on_interrupt = false; @@ -272,7 +273,7 @@ int h8_adc_device::get_channel_index(int count) h8_adc_3337_device::h8_adc_3337_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - h8_adc_device(mconfig, H8_ADC_3337, "H8 ADC 3337", tag, owner, clock, "h8_adc_3337", __FILE__) + h8_adc_device(mconfig, H8_ADC_3337, tag, owner, clock) { register_mask = 3; } @@ -303,7 +304,7 @@ void h8_adc_3337_device::mode_update() h8_adc_3006_device::h8_adc_3006_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - h8_adc_device(mconfig, H8_ADC_3006, "H8 ADC 3006", tag, owner, clock, "h8_adc_3006", __FILE__) + h8_adc_device(mconfig, H8_ADC_3006, tag, owner, clock) { register_mask = 3; } @@ -334,7 +335,7 @@ void h8_adc_3006_device::mode_update() h8_adc_2245_device::h8_adc_2245_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - h8_adc_device(mconfig, H8_ADC_2245, "H8 ADC 2245", tag, owner, clock, "h8_adc_2245", __FILE__) + h8_adc_device(mconfig, H8_ADC_2245, tag, owner, clock) { register_mask = 3; } @@ -365,7 +366,7 @@ void h8_adc_2245_device::mode_update() h8_adc_2320_device::h8_adc_2320_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - h8_adc_device(mconfig, H8_ADC_2320, "H8 ADC 2320", tag, owner, clock, "h8_adc_2320", __FILE__) + h8_adc_device(mconfig, H8_ADC_2320, tag, owner, clock) { register_mask = 3; } @@ -402,7 +403,7 @@ void h8_adc_2320_device::mode_update() h8_adc_2357_device::h8_adc_2357_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - h8_adc_device(mconfig, H8_ADC_2357, "H8 ADC 2357", tag, owner, clock, "h8_adc_2357", __FILE__) + h8_adc_device(mconfig, H8_ADC_2357, tag, owner, clock) { register_mask = 3; } @@ -433,7 +434,7 @@ void h8_adc_2357_device::mode_update() h8_adc_2655_device::h8_adc_2655_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - h8_adc_device(mconfig, H8_ADC_2655, "H8 ADC 2655", tag, owner, clock, "h8_adc_2655", __FILE__) + h8_adc_device(mconfig, H8_ADC_2655, tag, owner, clock) { suspend_on_interrupt = true; register_mask = 7; diff --git a/src/devices/cpu/h8/h8_adc.h b/src/devices/cpu/h8/h8_adc.h index ad87432517f..8dbbbc79e5b 100644 --- a/src/devices/cpu/h8/h8_adc.h +++ b/src/devices/cpu/h8/h8_adc.h @@ -9,8 +9,10 @@ ***************************************************************************/ -#ifndef __H8_ADC_H__ -#define __H8_ADC_H__ +#ifndef MAME_CPU_H8_H8_ADC_H +#define MAME_CPU_H8_H8_ADC_H + +#pragma once #include "h8.h" #include "h8_intc.h" @@ -39,8 +41,6 @@ class h8_adc_device : public device_t { public: - h8_adc_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - void set_info(const char *intc_tag, int vect); DECLARE_READ8_MEMBER(addr8_r); @@ -55,6 +55,8 @@ public: uint64_t internal_update(uint64_t current_time); protected: + h8_adc_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + required_device cpu; h8_intc_device *intc; address_space *io; @@ -167,11 +169,11 @@ protected: virtual int get_channel_index(int count) override; }; -extern const device_type H8_ADC_3337; -extern const device_type H8_ADC_3006; -extern const device_type H8_ADC_2245; -extern const device_type H8_ADC_2320; -extern const device_type H8_ADC_2357; -extern const device_type H8_ADC_2655; +DECLARE_DEVICE_TYPE(H8_ADC_3337, h8_adc_3337_device) +DECLARE_DEVICE_TYPE(H8_ADC_3006, h8_adc_3006_device) +DECLARE_DEVICE_TYPE(H8_ADC_2245, h8_adc_2245_device) +DECLARE_DEVICE_TYPE(H8_ADC_2320, h8_adc_2320_device) +DECLARE_DEVICE_TYPE(H8_ADC_2357, h8_adc_2357_device) +DECLARE_DEVICE_TYPE(H8_ADC_2655, h8_adc_2655_device) -#endif +#endif // MAME_CPU_H8_H8_ADC_H diff --git a/src/devices/cpu/h8/h8_dma.cpp b/src/devices/cpu/h8/h8_dma.cpp index 28e245e43c4..20f034d63e0 100644 --- a/src/devices/cpu/h8/h8_dma.cpp +++ b/src/devices/cpu/h8/h8_dma.cpp @@ -1,11 +1,11 @@ #include "emu.h" #include "h8_dma.h" -const device_type H8_DMA = device_creator; -const device_type H8_DMA_CHANNEL = device_creator; +DEFINE_DEVICE_TYPE(H8_DMA, h8_dma_device, "h8_dma", "H8 DMA controller") +DEFINE_DEVICE_TYPE(H8_DMA_CHANNEL, h8_dma_channel_device, "h8_dma_channel", "H8 DMA channel") h8_dma_device::h8_dma_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, H8_DMA, "H8 DMA controller", tag, owner, clock, "h8_dma", __FILE__), + device_t(mconfig, H8_DMA, tag, owner, clock), dmach0(*this, "0"), dmach1(*this, "1") { @@ -115,7 +115,7 @@ WRITE16_MEMBER(h8_dma_device::dmabcr_w) h8_dma_channel_device::h8_dma_channel_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, H8_DMA_CHANNEL, "H8 DMA channel", tag, owner, clock, "h8_dma_channel", __FILE__), + device_t(mconfig, H8_DMA_CHANNEL, tag, owner, clock), dmac(*this, "^"), cpu(*this, "^^") { diff --git a/src/devices/cpu/h8/h8_dma.h b/src/devices/cpu/h8/h8_dma.h index e703f14b52c..375d57a2dd0 100644 --- a/src/devices/cpu/h8/h8_dma.h +++ b/src/devices/cpu/h8/h8_dma.h @@ -8,8 +8,10 @@ ***************************************************************************/ -#ifndef __H8_DMA_H__ -#define __H8_DMA_H__ +#ifndef MAME_CPU_H8_H8_DMA_H +#define MAME_CPU_H8_H8_DMA_H + +#pragma once #include "h8.h" #include "h8_intc.h" @@ -151,7 +153,7 @@ protected: void start(int submodule); }; -extern const device_type H8_DMA; -extern const device_type H8_DMA_CHANNEL; +DECLARE_DEVICE_TYPE(H8_DMA, h8_dma_device) +DECLARE_DEVICE_TYPE(H8_DMA_CHANNEL, h8_dma_channel_device) -#endif +#endif // MAME_CPU_H8_H8_DMA_H diff --git a/src/devices/cpu/h8/h8_dtc.cpp b/src/devices/cpu/h8/h8_dtc.cpp index 9ea8037ff37..f600b71c6a8 100644 --- a/src/devices/cpu/h8/h8_dtc.cpp +++ b/src/devices/cpu/h8/h8_dtc.cpp @@ -7,7 +7,7 @@ // 2 = everything const int V = 0; -const device_type H8_DTC = device_creator; +DEFINE_DEVICE_TYPE(H8_DTC, h8_dtc_device, "h8_dtc", "H8 DTC controller") const int h8_dtc_device::vector_to_enable[92] = { -1, -1, -1, -1, -1, -1, -1, -1, // NMI at 7 @@ -25,7 +25,7 @@ const int h8_dtc_device::vector_to_enable[92] = { }; h8_dtc_device::h8_dtc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, H8_DTC, "H8 DTC controller", tag, owner, clock, "h8_dtc", __FILE__), + device_t(mconfig, H8_DTC, tag, owner, clock), cpu(*this, DEVICE_SELF_OWNER) { } diff --git a/src/devices/cpu/h8/h8_dtc.h b/src/devices/cpu/h8/h8_dtc.h index d74f0ef3252..f78478e18ab 100644 --- a/src/devices/cpu/h8/h8_dtc.h +++ b/src/devices/cpu/h8/h8_dtc.h @@ -8,8 +8,10 @@ ***************************************************************************/ -#ifndef __H8_DTC_H__ -#define __H8_DTC_H__ +#ifndef MAME_CPU_H8_H8_DTC_H +#define MAME_CPU_H8_H8_DTC_H + +#pragma once #include "h8_intc.h" @@ -69,6 +71,6 @@ protected: void queue(int vector); }; -extern const device_type H8_DTC; +DECLARE_DEVICE_TYPE(H8_DTC, h8_dtc_device) -#endif +#endif // MAME_CPU_H8_H8_DTC_H diff --git a/src/devices/cpu/h8/h8_intc.cpp b/src/devices/cpu/h8/h8_intc.cpp index 98f0b8de61e..2dda3b5faa2 100644 --- a/src/devices/cpu/h8/h8_intc.cpp +++ b/src/devices/cpu/h8/h8_intc.cpp @@ -3,20 +3,19 @@ #include "emu.h" #include "h8_intc.h" -const device_type H8_INTC = device_creator; -const device_type H8H_INTC = device_creator; -const device_type H8S_INTC = device_creator; +DEFINE_DEVICE_TYPE(H8_INTC, h8_intc_device, "h8_intc", "H8 interrupt controller") +DEFINE_DEVICE_TYPE(H8H_INTC, h8h_intc_device, "h8h_intc", "H8H interrupt controller") +DEFINE_DEVICE_TYPE(H8S_INTC, h8s_intc_device, "h8s_intc", "H8S interrupt controller") h8_intc_device::h8_intc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, H8_INTC, "H8 INTC", tag, owner, clock, "h8_intc", __FILE__), - cpu(*this, DEVICE_SELF_OWNER), nmi_input(false), irq_input(0), ier(0), isr(0), iscr(0), icr_filter(0), ipr_filter(0) + h8_intc_device(mconfig, H8_INTC, tag, owner, clock) { irq_vector_base = 4; irq_vector_nmi = 3; } -h8_intc_device::h8_intc_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), irq_vector_base(0), irq_vector_nmi(0), +h8_intc_device::h8_intc_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), irq_vector_base(0), irq_vector_nmi(0), cpu(*this, DEVICE_SELF_OWNER), nmi_input(false), irq_input(0), ier(0), isr(0), iscr(0), icr_filter(0), ipr_filter(0) { } @@ -194,14 +193,14 @@ void h8_intc_device::get_priority(int vect, int &icr_pri, int &ipr_pri) const h8h_intc_device::h8h_intc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - h8_intc_device(mconfig, H8H_INTC, "H8H INTC", tag, owner, clock, "h8h_intc", __FILE__) + h8h_intc_device(mconfig, H8H_INTC, tag, owner, clock) { irq_vector_base = 12; irq_vector_nmi = 7; } -h8h_intc_device::h8h_intc_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - h8_intc_device(mconfig, type, name, tag, owner, clock, shortname, source) +h8h_intc_device::h8h_intc_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + h8_intc_device(mconfig, type, tag, owner, clock) { } @@ -320,7 +319,7 @@ void h8h_intc_device::get_priority(int vect, int &icr_pri, int &ipr_pri) const } h8s_intc_device::h8s_intc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - h8h_intc_device(mconfig, H8S_INTC, "H8S INTC", tag, owner, clock, "h8s_intc", __FILE__) + h8h_intc_device(mconfig, H8S_INTC, tag, owner, clock) { irq_vector_base = 16; irq_vector_nmi = 7; diff --git a/src/devices/cpu/h8/h8_intc.h b/src/devices/cpu/h8/h8_intc.h index 4b4b384b8b1..ca9452ad61d 100644 --- a/src/devices/cpu/h8/h8_intc.h +++ b/src/devices/cpu/h8/h8_intc.h @@ -9,8 +9,10 @@ ***************************************************************************/ -#ifndef __H8_INTC_H__ -#define __H8_INTC_H__ +#ifndef MAME_CPU_H8_H8_INTC_H +#define MAME_CPU_H8_H8_INTC_H + +#pragma once #include "h8.h" @@ -27,7 +29,6 @@ class h8_intc_device : public device_t { public: h8_intc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - h8_intc_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); int interrupt_taken(int vector); void internal_interrupt(int vector); @@ -57,6 +58,8 @@ protected: uint16_t iscr; int icr_filter, ipr_filter; + h8_intc_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; virtual void device_reset() override; @@ -69,7 +72,6 @@ protected: class h8h_intc_device : public h8_intc_device { public: h8h_intc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - h8h_intc_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); DECLARE_READ8_MEMBER(isr_r); DECLARE_WRITE8_MEMBER(isr_w); @@ -87,6 +89,8 @@ protected: uint32_t icr; + h8h_intc_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; virtual void device_reset() override; @@ -110,8 +114,8 @@ private: virtual void device_reset() override; }; -extern const device_type H8_INTC; -extern const device_type H8H_INTC; -extern const device_type H8S_INTC; +DECLARE_DEVICE_TYPE(H8_INTC, h8_intc_device) +DECLARE_DEVICE_TYPE(H8H_INTC, h8h_intc_device) +DECLARE_DEVICE_TYPE(H8S_INTC, h8s_intc_device) -#endif +#endif // MAME_CPU_H8_H8_INTC_H diff --git a/src/devices/cpu/h8/h8_port.cpp b/src/devices/cpu/h8/h8_port.cpp index ec61a0fd196..ae63eedad51 100644 --- a/src/devices/cpu/h8/h8_port.cpp +++ b/src/devices/cpu/h8/h8_port.cpp @@ -3,10 +3,10 @@ #include "emu.h" #include "h8_port.h" -const device_type H8_PORT = device_creator; +DEFINE_DEVICE_TYPE(H8_PORT, h8_port_device, "h8_digital_port", "H8 digital port") h8_port_device::h8_port_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, H8_PORT, "H8 digital port", tag, owner, clock, "h8_digital_port", __FILE__), + device_t(mconfig, H8_PORT, tag, owner, clock), cpu(*this, DEVICE_SELF_OWNER), io(nullptr), address(0), default_ddr(0), ddr(0), pcr(0), odr(0), mask(0), dr(0), last_output(0) { } diff --git a/src/devices/cpu/h8/h8_port.h b/src/devices/cpu/h8/h8_port.h index c6b7e8e2095..babd50cdaa3 100644 --- a/src/devices/cpu/h8/h8_port.h +++ b/src/devices/cpu/h8/h8_port.h @@ -9,8 +9,10 @@ ***************************************************************************/ -#ifndef __H8_PORT_H__ -#define __H8_PORT_H__ +#ifndef MAME_CPU_H8_H8_PORT_H +#define MAME_CPU_H8_H8_PORT_H + +#pragma once #include "h8.h" @@ -48,6 +50,6 @@ protected: void update_output(); }; -extern const device_type H8_PORT; +DECLARE_DEVICE_TYPE(H8_PORT, h8_port_device) -#endif +#endif // MAME_CPU_H8_H8_PORT_H diff --git a/src/devices/cpu/h8/h8_sci.cpp b/src/devices/cpu/h8/h8_sci.cpp index 8d6ea7163a1..6b708655256 100644 --- a/src/devices/cpu/h8/h8_sci.cpp +++ b/src/devices/cpu/h8/h8_sci.cpp @@ -11,12 +11,12 @@ const int V = 1; -const device_type H8_SCI = device_creator; +DEFINE_DEVICE_TYPE(H8_SCI, h8_sci_device, "h8_sci", "H8 Serial Communications Interface") const char *const h8_sci_device::state_names[] = { "idle", "start", "bit", "parity", "stop", "last-tick" }; h8_sci_device::h8_sci_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, H8_SCI, "H8 Serial Communications Interface", tag, owner, clock, "h8_sci", __FILE__), + device_t(mconfig, H8_SCI, tag, owner, clock), cpu(*this, DEVICE_SELF_OWNER), tx_cb(*this), clk_cb(*this), intc(nullptr), intc_tag(nullptr), external_to_internal_ratio(0), internal_to_external_ratio(0), sync_timer(nullptr), eri_int(0), rxi_int(0), txi_int(0), tei_int(0), diff --git a/src/devices/cpu/h8/h8_sci.h b/src/devices/cpu/h8/h8_sci.h index 1c3a79b0f39..ea13f1f65a2 100644 --- a/src/devices/cpu/h8/h8_sci.h +++ b/src/devices/cpu/h8/h8_sci.h @@ -9,8 +9,10 @@ ***************************************************************************/ -#ifndef __H8_SCI_H__ -#define __H8_SCI_H__ +#ifndef MAME_CPU_H8_H8_SCI_H +#define MAME_CPU_H8_H8_SCI_H + +#pragma once #include "h8.h" #include "h8_intc.h" @@ -52,8 +54,8 @@ public: DECLARE_WRITE_LINE_MEMBER(rx_w); DECLARE_WRITE_LINE_MEMBER(clk_w); - template static devcb_base &set_tx_cb(device_t &device, _Object object) { return downcast(device).tx_cb.set_callback(object); } - template static devcb_base &set_clk_cb(device_t &device, _Object object) { return downcast(device).clk_cb.set_callback(object); } + template static devcb_base &set_tx_cb(device_t &device, Object &&cb) { return downcast(device).tx_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_clk_cb(device_t &device, Object &&cb) { return downcast(device).clk_cb.set_callback(std::forward(cb)); } uint64_t internal_update(uint64_t current_time); @@ -143,6 +145,6 @@ protected: bool has_recv_error() const; }; -extern const device_type H8_SCI; +DECLARE_DEVICE_TYPE(H8_SCI, h8_sci_device) -#endif +#endif // MAME_CPU_H8_H8_SCI_H diff --git a/src/devices/cpu/h8/h8_timer16.cpp b/src/devices/cpu/h8/h8_timer16.cpp index a35690b78bf..5c4294e542c 100644 --- a/src/devices/cpu/h8/h8_timer16.cpp +++ b/src/devices/cpu/h8/h8_timer16.cpp @@ -8,21 +8,19 @@ // 1 = everything const int V = 0; -const device_type H8_TIMER16 = device_creator; -const device_type H8_TIMER16_CHANNEL = device_creator; -const device_type H8H_TIMER16_CHANNEL = device_creator; -const device_type H8S_TIMER16_CHANNEL = device_creator; +DEFINE_DEVICE_TYPE(H8_TIMER16, h8_timer16_device, "h8_timer16", "H8 16-bit timer") +DEFINE_DEVICE_TYPE(H8_TIMER16_CHANNEL, h8_timer16_channel_device, "h8_timer16_channel", "H8 16-bit timer channel") +DEFINE_DEVICE_TYPE(H8H_TIMER16_CHANNEL, h8h_timer16_channel_device, "h8h_timer16_channel", "H8H 16-bit timer channel") +DEFINE_DEVICE_TYPE(H8S_TIMER16_CHANNEL, h8s_timer16_channel_device, "h8s_timer16_channel", "H8S 16-bit timer channel") h8_timer16_channel_device::h8_timer16_channel_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, H8_TIMER16_CHANNEL, "H8 16-bits timer channel", tag, owner, clock, "h8_16bits_timer_channel", __FILE__), - cpu(*this, "^^"), chained_timer(nullptr), intc(nullptr), intc_tag(nullptr), tier_mask(0), tgr_count(0), tbr_count(0), tgr_clearing(0), tcr(0), tier(0), ier(0), isr(0), clock_type(0), - clock_divider(0), tcnt(0), last_clock_update(0), event_time(0), phase(0), counter_cycle(0), counter_incrementing(false), channel_active(false) + h8_timer16_channel_device(mconfig, H8_TIMER16_CHANNEL, tag, owner, clock) { chain_tag = nullptr; } -h8_timer16_channel_device::h8_timer16_channel_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), +h8_timer16_channel_device::h8_timer16_channel_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), cpu(*this, "^^"), chained_timer(nullptr), intc(nullptr), intc_tag(nullptr), tier_mask(0), tgr_count(0), tbr_count(0), tgr_clearing(0), tcr(0), tier(0), ier(0), isr(0), clock_type(0), clock_divider(0), tcnt(0), last_clock_update(0), event_time(0), phase(0), counter_cycle(0), counter_incrementing(false), channel_active(false) { @@ -316,7 +314,7 @@ void h8_timer16_channel_device::recalc_event(uint64_t cur_time) } h8_timer16_device::h8_timer16_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, H8_TIMER16, "H8 16-bits timer", tag, owner, clock, "h8_timer16", __FILE__), + device_t(mconfig, H8_TIMER16, tag, owner, clock), cpu(*this, DEVICE_SELF_OWNER) { } @@ -522,7 +520,7 @@ uint8_t h8_timer16_channel_device::tisr_r(int offset) const } h8h_timer16_channel_device::h8h_timer16_channel_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - h8_timer16_channel_device(mconfig, H8H_TIMER16_CHANNEL, "H8H 16-bits timer channel", tag, owner, clock, "h8h_16bits_timer_channel", __FILE__) + h8_timer16_channel_device(mconfig, H8H_TIMER16_CHANNEL, tag, owner, clock) { } @@ -620,7 +618,7 @@ void h8h_timer16_channel_device::tcr_update() } h8s_timer16_channel_device::h8s_timer16_channel_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - h8_timer16_channel_device(mconfig, H8S_TIMER16_CHANNEL, "H8S 16-bits timer channel", tag, owner, clock, "h8s_16bits_timer_channel", __FILE__) + h8_timer16_channel_device(mconfig, H8S_TIMER16_CHANNEL, tag, owner, clock) { } diff --git a/src/devices/cpu/h8/h8_timer16.h b/src/devices/cpu/h8/h8_timer16.h index 6a0973da0d5..3741849b186 100644 --- a/src/devices/cpu/h8/h8_timer16.h +++ b/src/devices/cpu/h8/h8_timer16.h @@ -9,8 +9,10 @@ ***************************************************************************/ -#ifndef __H8_TIMER16_H__ -#define __H8_TIMER16_H__ +#ifndef MAME_CPU_H8_H8_TIMER16_H +#define MAME_CPU_H8_H8_TIMER16_H + +#pragma once #include "h8.h" #include "h8_intc.h" @@ -74,7 +76,6 @@ public: h8_timer16_channel_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - h8_timer16_channel_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); void set_info(int tgr_count, int tbr_count, const char *intc, int irq_base); @@ -119,6 +120,8 @@ protected: bool counter_incrementing; bool channel_active; + h8_timer16_channel_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; virtual void device_reset() override; @@ -197,9 +200,9 @@ protected: virtual void device_reset() override; }; -extern const device_type H8_TIMER16; -extern const device_type H8_TIMER16_CHANNEL; -extern const device_type H8H_TIMER16_CHANNEL; -extern const device_type H8S_TIMER16_CHANNEL; +DECLARE_DEVICE_TYPE(H8_TIMER16, h8_timer16_device) +DECLARE_DEVICE_TYPE(H8_TIMER16_CHANNEL, h8_timer16_channel_device) +DECLARE_DEVICE_TYPE(H8H_TIMER16_CHANNEL, h8h_timer16_channel_device) +DECLARE_DEVICE_TYPE(H8S_TIMER16_CHANNEL, h8s_timer16_channel_device) -#endif +#endif // MAME_CPU_H8_H8_TIMER16_H diff --git a/src/devices/cpu/h8/h8_timer8.cpp b/src/devices/cpu/h8/h8_timer8.cpp index 4bac2b89f0d..7a95717471d 100644 --- a/src/devices/cpu/h8/h8_timer8.cpp +++ b/src/devices/cpu/h8/h8_timer8.cpp @@ -9,18 +9,16 @@ // 2 = everything const int V = 1; -const device_type H8_TIMER8_CHANNEL = device_creator; -const device_type H8H_TIMER8_CHANNEL = device_creator; +DEFINE_DEVICE_TYPE(H8_TIMER8_CHANNEL, h8_timer8_channel_device, "h8_timer8_channel", "H8 8-bit timer channel") +DEFINE_DEVICE_TYPE(H8H_TIMER8_CHANNEL, h8h_timer8_channel_device, "h8h_timer8_channel", "H8H 8-bit timer channel") h8_timer8_channel_device::h8_timer8_channel_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, H8_TIMER8_CHANNEL, "H8 8-bits timer channel", tag, owner, clock, "h8_8bits_timer_channel", __FILE__), - cpu(*this, "^"), chained_timer(nullptr), intc(nullptr), chain_tag(nullptr), intc_tag(nullptr), irq_ca(0), irq_cb(0), irq_v(0), chain_type(0), tcr(0), tcsr(0), tcnt(0), extra_clock_bit(false), - has_adte(false), has_ice(false), clock_type(0), clock_divider(0), clear_type(0), counter_cycle(0), last_clock_update(0), event_time(0) + h8_timer8_channel_device(mconfig, H8_TIMER8_CHANNEL, tag, owner, clock) { } -h8_timer8_channel_device::h8_timer8_channel_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), +h8_timer8_channel_device::h8_timer8_channel_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), cpu(*this, "^"), chained_timer(nullptr), intc(nullptr), chain_tag(nullptr), intc_tag(nullptr), irq_ca(0), irq_cb(0), irq_v(0), chain_type(0), tcr(0), tcsr(0), tcnt(0), extra_clock_bit(false), has_adte(false), has_ice(false), clock_type(0), clock_divider(0), clear_type(0), counter_cycle(0), last_clock_update(0), event_time(0) { @@ -354,7 +352,7 @@ void h8_timer8_channel_device::timer_tick() } h8h_timer8_channel_device::h8h_timer8_channel_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - h8_timer8_channel_device(mconfig, H8H_TIMER8_CHANNEL, "H8H 8-bits timer channel", tag, owner, clock, "h8h_8bits_timer_channel", __FILE__) + h8_timer8_channel_device(mconfig, H8H_TIMER8_CHANNEL, tag, owner, clock) { } diff --git a/src/devices/cpu/h8/h8_timer8.h b/src/devices/cpu/h8/h8_timer8.h index d4919dddce0..cf9f2fd219e 100644 --- a/src/devices/cpu/h8/h8_timer8.h +++ b/src/devices/cpu/h8/h8_timer8.h @@ -9,8 +9,10 @@ ***************************************************************************/ -#ifndef __H8_TIMER8_H__ -#define __H8_TIMER8_H__ +#ifndef MAME_CPU_H8_H8_TIMER8_H +#define MAME_CPU_H8_H8_TIMER8_H + +#pragma once #include "h8.h" #include "h8_intc.h" @@ -36,7 +38,6 @@ public: }; h8_timer8_channel_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - h8_timer8_channel_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); void set_info(const char *intc, int irq_ca, int irq_cb, int irq_v, int div1, int div2, int div3, int div4, int div5, int div6); @@ -89,6 +90,8 @@ protected: int clock_type, clock_divider, clear_type, counter_cycle; uint64_t last_clock_update, event_time; + h8_timer8_channel_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; virtual void device_reset() override; @@ -107,7 +110,7 @@ public: void set_info(const char *intc, int irq_ca, int irq_cb, int irq_v, const char *chain_tag, int chain_type, bool has_adte, bool has_ice); }; -extern const device_type H8_TIMER8_CHANNEL; -extern const device_type H8H_TIMER8_CHANNEL; +DECLARE_DEVICE_TYPE(H8_TIMER8_CHANNEL, h8_timer8_channel_device) +DECLARE_DEVICE_TYPE(H8H_TIMER8_CHANNEL, h8h_timer8_channel_device) -#endif +#endif // MAME_CPU_H8_H8_TIMER8_H diff --git a/src/devices/cpu/h8/h8_watchdog.cpp b/src/devices/cpu/h8/h8_watchdog.cpp index 5ace536ac7a..b50b956abcf 100644 --- a/src/devices/cpu/h8/h8_watchdog.cpp +++ b/src/devices/cpu/h8/h8_watchdog.cpp @@ -1,13 +1,13 @@ #include "emu.h" #include "h8_watchdog.h" -const device_type H8_WATCHDOG = device_creator; +DEFINE_DEVICE_TYPE(H8_WATCHDOG, h8_watchdog_device, "h8_watchdog", "H8 watchdog") const int h8_watchdog_device::div_bh[8] = { 1, 6, 7, 9, 11, 13, 15, 17 }; const int h8_watchdog_device::div_s [8] = { 1, 5, 6, 7, 8, 9, 11, 12 }; h8_watchdog_device::h8_watchdog_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, H8_WATCHDOG, "H8 watchdog", tag, owner, clock, "h8_watchdog", __FILE__), + device_t(mconfig, H8_WATCHDOG, tag, owner, clock), cpu(*this, DEVICE_SELF_OWNER) { } diff --git a/src/devices/cpu/h8/h8_watchdog.h b/src/devices/cpu/h8/h8_watchdog.h index f746be40aa9..af4cc0b7e35 100644 --- a/src/devices/cpu/h8/h8_watchdog.h +++ b/src/devices/cpu/h8/h8_watchdog.h @@ -37,8 +37,10 @@ ***************************************************************************/ -#ifndef __H8_WATCHDOG_H__ -#define __H8_WATCHDOG_H__ +#ifndef MAME_CPU_H8_H8_WATCHDOG_H +#define MAME_CPU_H8_H8_WATCHDOG_H + +#pragma once #include "h8.h" #include "h8_intc.h" @@ -94,6 +96,6 @@ private: void tcnt_update(uint64_t current_time = 0); }; -extern const device_type H8_WATCHDOG; +DECLARE_DEVICE_TYPE(H8_WATCHDOG, h8_watchdog_device) -#endif +#endif // MAME_CPU_H8_H8_WATCHDOG_H diff --git a/src/devices/cpu/h8/h8h.cpp b/src/devices/cpu/h8/h8h.cpp index 87ae39a884b..37756da3d12 100644 --- a/src/devices/cpu/h8/h8h.cpp +++ b/src/devices/cpu/h8/h8h.cpp @@ -3,8 +3,8 @@ #include "emu.h" #include "h8h.h" -h8h_device::h8h_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source, address_map_delegate map_delegate) : - h8_device(mconfig, type, name, tag, owner, clock, shortname, source, false, map_delegate) +h8h_device::h8h_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, address_map_delegate map_delegate) : + h8_device(mconfig, type, tag, owner, clock, false, map_delegate) { supports_advanced = true; mode_advanced = true; diff --git a/src/devices/cpu/h8/h8h.h b/src/devices/cpu/h8/h8h.h index f634e0aa82a..460ddcefc3a 100644 --- a/src/devices/cpu/h8/h8h.h +++ b/src/devices/cpu/h8/h8h.h @@ -11,18 +11,19 @@ ***************************************************************************/ -#ifndef __H8H_H__ -#define __H8H_H__ +#ifndef MAME_CPU_H8_H8H_H +#define MAME_CPU_H8_H8H_H + +#pragma once #include "h8.h" class h8h_device : public h8_device { -public: - h8h_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source, address_map_delegate map_delegate); - protected: static const disasm_entry disasm_entries[]; + h8h_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, address_map_delegate map_delegate); + virtual offs_t disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) override; virtual void do_exec_full() override; @@ -106,4 +107,4 @@ protected: #undef O }; -#endif +#endif // MAME_CPU_H8_H8H_H diff --git a/src/devices/cpu/h8/h8s2000.cpp b/src/devices/cpu/h8/h8s2000.cpp index 99086cbc95f..2af090f5867 100644 --- a/src/devices/cpu/h8/h8s2000.cpp +++ b/src/devices/cpu/h8/h8s2000.cpp @@ -3,8 +3,8 @@ #include "emu.h" #include "h8s2000.h" -h8s2000_device::h8s2000_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source, address_map_delegate map_delegate) : - h8h_device(mconfig, type, name, tag, owner, clock, shortname, source, map_delegate) +h8s2000_device::h8s2000_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, address_map_delegate map_delegate) : + h8h_device(mconfig, type, tag, owner, clock, map_delegate) { has_exr = true; } diff --git a/src/devices/cpu/h8/h8s2000.h b/src/devices/cpu/h8/h8s2000.h index 34edb361cd8..e28e640baec 100644 --- a/src/devices/cpu/h8/h8s2000.h +++ b/src/devices/cpu/h8/h8s2000.h @@ -12,17 +12,18 @@ ***************************************************************************/ -#ifndef __H8S2000_H__ -#define __H8S2000_H__ +#ifndef MAME_CPU_H8_H8S2000_H +#define MAME_CPU_H8_H8S2000_H + +#pragma once #include "h8h.h" #include "h8_dtc.h" class h8s2000_device : public h8h_device { -public: - h8s2000_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source, address_map_delegate map_delegate); - protected: + h8s2000_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, address_map_delegate map_delegate); + static const disasm_entry disasm_entries[]; virtual offs_t disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) override; diff --git a/src/devices/cpu/h8/h8s2245.cpp b/src/devices/cpu/h8/h8s2245.cpp index cbb3a5e91d1..b6ad54493b1 100644 --- a/src/devices/cpu/h8/h8s2245.cpp +++ b/src/devices/cpu/h8/h8s2245.cpp @@ -3,14 +3,14 @@ #include "emu.h" #include "h8s2245.h" -const device_type H8S2241 = device_creator; -const device_type H8S2242 = device_creator; -const device_type H8S2245 = device_creator; -const device_type H8S2246 = device_creator; +DEFINE_DEVICE_TYPE(H8S2241, h8s2241_device, "h8s2241", "H8S/2241") +DEFINE_DEVICE_TYPE(H8S2242, h8s2242_device, "h8s2242", "H8S/2242") +DEFINE_DEVICE_TYPE(H8S2245, h8s2245_device, "h8s2245", "H8S/2245") +DEFINE_DEVICE_TYPE(H8S2246, h8s2246_device, "h8s2246", "H8S/2246") -h8s2245_device::h8s2245_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - h8s2000_device(mconfig, type, name, tag, owner, clock, shortname, source, address_map_delegate(FUNC(h8s2245_device::map), this)), +h8s2245_device::h8s2245_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint32_t start) : + h8s2000_device(mconfig, type, tag, owner, clock, address_map_delegate(FUNC(h8s2245_device::map), this)), intc(*this, "intc"), adc(*this, "adc"), dtc(*this, "dtc"), @@ -35,60 +35,30 @@ h8s2245_device::h8s2245_device(const machine_config &mconfig, device_type type, sci0(*this, "sci0"), sci1(*this, "sci1"), sci2(*this, "sci2"), - watchdog(*this, "watchdog") + watchdog(*this, "watchdog"), + ram_start(start), + syscr(0) { - syscr = 0; - ram_start = 0; } h8s2245_device::h8s2245_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - h8s2000_device(mconfig, H8S2245, "H8S/2245", tag, owner, clock, "h8s2245", __FILE__, address_map_delegate(FUNC(h8s2245_device::map), this)), - intc(*this, "intc"), - adc(*this, "adc"), - dtc(*this, "dtc"), - port1(*this, "port1"), - port2(*this, "port2"), - port3(*this, "port3"), - port4(*this, "port4"), - port5(*this, "port5"), - porta(*this, "porta"), - portb(*this, "portb"), - portc(*this, "portc"), - portd(*this, "portd"), - porte(*this, "porte"), - portf(*this, "portf"), - portg(*this, "portg"), - timer8_0(*this, "timer8_0"), - timer8_1(*this, "timer8_1"), - timer16(*this, "timer16"), - timer16_0(*this, "timer16:0"), - timer16_1(*this, "timer16:1"), - timer16_2(*this, "timer16:2"), - sci0(*this, "sci0"), - sci1(*this, "sci1"), - sci2(*this, "sci2"), - watchdog(*this, "watchdog") + h8s2245_device(mconfig, H8S2245, tag, owner, clock, 0xffec00) { - syscr = 0; - ram_start = 0xffec00; } h8s2241_device::h8s2241_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - h8s2245_device(mconfig, H8S2241, "H8S/2241", tag, owner, clock, "h8s2241", __FILE__) + h8s2245_device(mconfig, H8S2241, tag, owner, clock, 0xffec00) { - ram_start = 0xffec00; } h8s2242_device::h8s2242_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - h8s2245_device(mconfig, H8S2242, "H8S/2242", tag, owner, clock, "h8s2242", __FILE__) + h8s2245_device(mconfig, H8S2242, tag, owner, clock, 0xffdc00) { - ram_start = 0xffdc00; } h8s2246_device::h8s2246_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - h8s2245_device(mconfig, H8S2246, "H8S/2246", tag, owner, clock, "h8s2246", __FILE__) + h8s2245_device(mconfig, H8S2246, tag, owner, clock, 0xffdc00) { - ram_start = 0xffdc00; } static MACHINE_CONFIG_FRAGMENT(h8s2245) diff --git a/src/devices/cpu/h8/h8s2245.h b/src/devices/cpu/h8/h8s2245.h index b5c64aef730..54d6d3a5b27 100644 --- a/src/devices/cpu/h8/h8s2245.h +++ b/src/devices/cpu/h8/h8s2245.h @@ -18,8 +18,10 @@ ***************************************************************************/ -#ifndef __H8S2245_H__ -#define __H8S2245_H__ +#ifndef MAME_CPU_H8_H8S2245_H +#define MAME_CPU_H8_H8S2245_H + +#pragma once #include "h8s2000.h" #include "h8_intc.h" @@ -33,7 +35,6 @@ class h8s2245_device : public h8s2000_device { public: - h8s2245_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); h8s2245_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); DECLARE_READ8_MEMBER(syscr_r); @@ -72,6 +73,8 @@ protected: uint16_t mstpcr; uint8_t syscr; + h8s2245_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint32_t start); + virtual bool exr_in_stack() const override; virtual void update_irq_filter() override; virtual void interrupt_taken() override; @@ -101,9 +104,9 @@ public: h8s2246_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; -extern const device_type H8S2241; -extern const device_type H8S2242; -extern const device_type H8S2245; -extern const device_type H8S2246; +DECLARE_DEVICE_TYPE(H8S2241, h8s2241_device) +DECLARE_DEVICE_TYPE(H8S2242, h8s2242_device) +DECLARE_DEVICE_TYPE(H8S2245, h8s2245_device) +DECLARE_DEVICE_TYPE(H8S2246, h8s2246_device) -#endif +#endif // MAME_CPU_H8_H8S2245_H diff --git a/src/devices/cpu/h8/h8s2320.cpp b/src/devices/cpu/h8/h8s2320.cpp index e2951a0d2a1..589fed1d7cc 100644 --- a/src/devices/cpu/h8/h8s2320.cpp +++ b/src/devices/cpu/h8/h8s2320.cpp @@ -3,19 +3,19 @@ #include "emu.h" #include "h8s2320.h" -const device_type H8S2320 = device_creator; -const device_type H8S2321 = device_creator; -const device_type H8S2322 = device_creator; -const device_type H8S2323 = device_creator; -const device_type H8S2324 = device_creator; -const device_type H8S2326 = device_creator; -const device_type H8S2327 = device_creator; -const device_type H8S2328 = device_creator; -const device_type H8S2329 = device_creator; - - -h8s2320_device::h8s2320_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - h8s2000_device(mconfig, type, name, tag, owner, clock, shortname, source, address_map_delegate(FUNC(h8s2320_device::map), this)), +DEFINE_DEVICE_TYPE(H8S2320, h8s2320_device, "h8s2320", "H8S/2320") +DEFINE_DEVICE_TYPE(H8S2321, h8s2321_device, "h8s2321", "H8S/2321") +DEFINE_DEVICE_TYPE(H8S2322, h8s2322_device, "h8s2322", "H8S/2322") +DEFINE_DEVICE_TYPE(H8S2323, h8s2323_device, "h8s2323", "H8S/2323") +DEFINE_DEVICE_TYPE(H8S2324, h8s2324_device, "h8s2324", "H8S/2324") +DEFINE_DEVICE_TYPE(H8S2326, h8s2326_device, "h8s2326", "H8S/2326") +DEFINE_DEVICE_TYPE(H8S2327, h8s2327_device, "h8s2327", "H8S/2327") +DEFINE_DEVICE_TYPE(H8S2328, h8s2328_device, "h8s2328", "H8S/2328") +DEFINE_DEVICE_TYPE(H8S2329, h8s2329_device, "h8s2329", "H8S/2329") + + +h8s2320_device::h8s2320_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint32_t start) : + h8s2000_device(mconfig, type, tag, owner, clock, address_map_delegate(FUNC(h8s2320_device::map), this)), intc(*this, "intc"), adc(*this, "adc"), dma(*this, "dma"), @@ -47,97 +47,55 @@ h8s2320_device::h8s2320_device(const machine_config &mconfig, device_type type, sci0(*this, "sci0"), sci1(*this, "sci1"), sci2(*this, "sci2"), - watchdog(*this, "watchdog") + watchdog(*this, "watchdog"), + ram_start(start), + syscr(0) { - syscr = 0; - ram_start = 0; } h8s2320_device::h8s2320_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - h8s2000_device(mconfig, H8S2320, "H8S/2320", tag, owner, clock, "h8s2320", __FILE__, address_map_delegate(FUNC(h8s2320_device::map), this)), - intc(*this, "intc"), - adc(*this, "adc"), - dma(*this, "dma"), - dma0(*this, "dma:0"), - dma1(*this, "dma:1"), - dtc(*this, "dtc"), - port1(*this, "port1"), - port2(*this, "port2"), - port3(*this, "port3"), - port4(*this, "port4"), - port5(*this, "port5"), - port6(*this, "port6"), - porta(*this, "porta"), - portb(*this, "portb"), - portc(*this, "portc"), - portd(*this, "portd"), - porte(*this, "porte"), - portf(*this, "portf"), - portg(*this, "portg"), - timer8_0(*this, "timer8_0"), - timer8_1(*this, "timer8_1"), - timer16(*this, "timer16"), - timer16_0(*this, "timer16:0"), - timer16_1(*this, "timer16:1"), - timer16_2(*this, "timer16:2"), - timer16_3(*this, "timer16:3"), - timer16_4(*this, "timer16:4"), - timer16_5(*this, "timer16:5"), - sci0(*this, "sci0"), - sci1(*this, "sci1"), - sci2(*this, "sci2"), - watchdog(*this, "watchdog") + h8s2320_device(mconfig, H8S2320, tag, owner, clock, 0xffec00) { - syscr = 0; - ram_start = 0xffec00; } h8s2321_device::h8s2321_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - h8s2320_device(mconfig, H8S2321, "H8S/2321", tag, owner, clock, "h8s2321", __FILE__) + h8s2320_device(mconfig, H8S2321, tag, owner, clock, 0xffec00) { - ram_start = 0xffec00; } h8s2322_device::h8s2322_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - h8s2320_device(mconfig, H8S2322, "H8S/2322", tag, owner, clock, "h8s2322", __FILE__) + h8s2320_device(mconfig, H8S2322, tag, owner, clock, 0xffdc00) { - ram_start = 0xffdc00; } h8s2323_device::h8s2323_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - h8s2320_device(mconfig, H8S2323, "H8S/2323", tag, owner, clock, "h8s2323", __FILE__) + h8s2320_device(mconfig, H8S2323, tag, owner, clock, 0xffdc00) { - ram_start = 0xffdc00; } h8s2324_device::h8s2324_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - h8s2320_device(mconfig, H8S2324, "H8S/2324", tag, owner, clock, "h8s2324", __FILE__) + h8s2320_device(mconfig, H8S2324, tag, owner, clock, 0xff7c00) { - ram_start = 0xff7c00; } h8s2326_device::h8s2326_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - h8s2320_device(mconfig, H8S2326, "H8S/2326", tag, owner, clock, "h8s2326", __FILE__) + h8s2320_device(mconfig, H8S2326, tag, owner, clock, 0xffdc00) { - ram_start = 0xffdc00; } h8s2327_device::h8s2327_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - h8s2320_device(mconfig, H8S2327, "H8S/2327", tag, owner, clock, "h8s2327", __FILE__) + h8s2320_device(mconfig, H8S2327, tag, owner, clock, 0xffdc00) { - ram_start = 0xffdc00; } h8s2328_device::h8s2328_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - h8s2320_device(mconfig, H8S2328, "H8S/2328", tag, owner, clock, "h8s2328", __FILE__) + h8s2320_device(mconfig, H8S2328, tag, owner, clock, 0xffdc00) { - ram_start = 0xffdc00; } h8s2329_device::h8s2329_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - h8s2320_device(mconfig, H8S2329, "H8S/2329", tag, owner, clock, "h8s2329", __FILE__) + h8s2320_device(mconfig, H8S2329, tag, owner, clock, 0xff7c00) { - ram_start = 0xff7c00; } // TODO: the 2321 doesn't have the dma subdevice diff --git a/src/devices/cpu/h8/h8s2320.h b/src/devices/cpu/h8/h8s2320.h index e8a979127cf..df0e7898a5a 100644 --- a/src/devices/cpu/h8/h8s2320.h +++ b/src/devices/cpu/h8/h8s2320.h @@ -23,8 +23,10 @@ ***************************************************************************/ -#ifndef __H8S2320_H__ -#define __H8S2320_H__ +#ifndef MAME_CPU_H8_H8S2320_H +#define MAME_CPU_H8_H8S2320_H + +#pragma once #include "h8s2000.h" #include "h8_intc.h" @@ -39,7 +41,6 @@ class h8s2320_device : public h8s2000_device { public: - h8s2320_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); h8s2320_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); DECLARE_READ8_MEMBER(syscr_r); @@ -82,6 +83,8 @@ protected: uint32_t ram_start; uint8_t syscr; + h8s2320_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint32_t start); + virtual bool exr_in_stack() const override; virtual void update_irq_filter() override; virtual void interrupt_taken() override; @@ -137,15 +140,14 @@ public: h8s2329_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; -extern const device_type H8S2320; -extern const device_type H8S2321; -extern const device_type H8S2322; -extern const device_type H8S2323; -extern const device_type H8S2324; -extern const device_type H8S2326; -extern const device_type H8S2327; -extern const device_type H8S2328; -extern const device_type H8S2329; - - -#endif +DECLARE_DEVICE_TYPE(H8S2320, h8s2320_device) +DECLARE_DEVICE_TYPE(H8S2321, h8s2321_device) +DECLARE_DEVICE_TYPE(H8S2322, h8s2322_device) +DECLARE_DEVICE_TYPE(H8S2323, h8s2323_device) +DECLARE_DEVICE_TYPE(H8S2324, h8s2324_device) +DECLARE_DEVICE_TYPE(H8S2326, h8s2326_device) +DECLARE_DEVICE_TYPE(H8S2327, h8s2327_device) +DECLARE_DEVICE_TYPE(H8S2328, h8s2328_device) +DECLARE_DEVICE_TYPE(H8S2329, h8s2329_device) + +#endif // MAME_CPU_H8_H8S2320_H diff --git a/src/devices/cpu/h8/h8s2357.cpp b/src/devices/cpu/h8/h8s2357.cpp index b143a566933..f9dcf52f6df 100644 --- a/src/devices/cpu/h8/h8s2357.cpp +++ b/src/devices/cpu/h8/h8s2357.cpp @@ -3,15 +3,15 @@ #include "emu.h" #include "h8s2357.h" -const device_type H8S2357 = device_creator; -const device_type H8S2352 = device_creator; -const device_type H8S2398 = device_creator; -const device_type H8S2394 = device_creator; -const device_type H8S2392 = device_creator; -const device_type H8S2390 = device_creator; +DEFINE_DEVICE_TYPE(H8S2357, h8s2357_device, "h8s2357", "H8S/2357") +DEFINE_DEVICE_TYPE(H8S2352, h8s2352_device, "h8s2352", "H8S/2352") +DEFINE_DEVICE_TYPE(H8S2398, h8s2398_device, "h8s2398", "H8S/2398") +DEFINE_DEVICE_TYPE(H8S2394, h8s2394_device, "h8s2394", "H8S/2394") +DEFINE_DEVICE_TYPE(H8S2392, h8s2392_device, "h8s2392", "H8S/2392") +DEFINE_DEVICE_TYPE(H8S2390, h8s2390_device, "h8s2390", "H8S/2390") -h8s2357_device::h8s2357_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - h8s2000_device(mconfig, type, name, tag, owner, clock, shortname, source, address_map_delegate(FUNC(h8s2357_device::map), this)), +h8s2357_device::h8s2357_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint32_t start) : + h8s2000_device(mconfig, type, tag, owner, clock, address_map_delegate(FUNC(h8s2357_device::map), this)), intc(*this, "intc"), adc(*this, "adc"), port1(*this, "port1"), @@ -39,76 +39,40 @@ h8s2357_device::h8s2357_device(const machine_config &mconfig, device_type type, sci0(*this, "sci0"), sci1(*this, "sci1"), sci2(*this, "sci2"), - watchdog(*this, "watchdog") + watchdog(*this, "watchdog"), + ram_start(start), + syscr(0) { - ram_start = 0; - syscr = 0; } h8s2357_device::h8s2357_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - h8s2000_device(mconfig, H8S2357, "H8S/2357", tag, owner, clock, "h8s2357", __FILE__, address_map_delegate(FUNC(h8s2357_device::map), this)), - intc(*this, "intc"), - adc(*this, "adc"), - port1(*this, "port1"), - port2(*this, "port2"), - port3(*this, "port3"), - port4(*this, "port4"), - port5(*this, "port5"), - port6(*this, "port6"), - porta(*this, "porta"), - portb(*this, "portb"), - portc(*this, "portc"), - portd(*this, "portd"), - porte(*this, "porte"), - portf(*this, "portf"), - portg(*this, "portg"), - timer8_0(*this, "timer8_0"), - timer8_1(*this, "timer8_1"), - timer16(*this, "timer16"), - timer16_0(*this, "timer16:0"), - timer16_1(*this, "timer16:1"), - timer16_2(*this, "timer16:2"), - timer16_3(*this, "timer16:3"), - timer16_4(*this, "timer16:4"), - timer16_5(*this, "timer16:5"), - sci0(*this, "sci0"), - sci1(*this, "sci1"), - sci2(*this, "sci2"), - watchdog(*this, "watchdog") + h8s2357_device(mconfig, H8S2357, tag, owner, clock, 0xffdc00) { - ram_start = 0; - syscr = 0; - ram_start = 0xffdc00; } h8s2352_device::h8s2352_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - h8s2357_device(mconfig, H8S2352, "H8S/2352", tag, owner, clock, "h8s2352", __FILE__) + h8s2357_device(mconfig, H8S2352, tag, owner, clock, 0xffdc00) { - ram_start = 0xffdc00; } h8s2398_device::h8s2398_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - h8s2357_device(mconfig, H8S2398, "H8S/2398", tag, owner, clock, "h8s2398", __FILE__) + h8s2357_device(mconfig, H8S2398, tag, owner, clock, 0xffdc00) { - ram_start = 0xffdc00; } h8s2394_device::h8s2394_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - h8s2357_device(mconfig, H8S2394, "H8S/2394", tag, owner, clock, "h8s2394", __FILE__) + h8s2357_device(mconfig, H8S2394, tag, owner, clock, 0xff7c00) { - ram_start = 0xff7c00; } h8s2392_device::h8s2392_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - h8s2357_device(mconfig, H8S2392, "H8S/2392", tag, owner, clock, "h8s2392", __FILE__) + h8s2357_device(mconfig, H8S2392, tag, owner, clock, 0xffdc00) { - ram_start = 0xffdc00; } h8s2390_device::h8s2390_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - h8s2357_device(mconfig, H8S2390, "H8S/2390", tag, owner, clock, "h8s2390", __FILE__) + h8s2357_device(mconfig, H8S2390, tag, owner, clock, 0xffec00) { - ram_start = 0xffec00; } static MACHINE_CONFIG_FRAGMENT(h8s2357) diff --git a/src/devices/cpu/h8/h8s2357.h b/src/devices/cpu/h8/h8s2357.h index c7fe219b5a7..8e9d3bb7ea8 100644 --- a/src/devices/cpu/h8/h8s2357.h +++ b/src/devices/cpu/h8/h8s2357.h @@ -20,8 +20,10 @@ ***************************************************************************/ -#ifndef __H8S2357_H__ -#define __H8S2357_H__ +#ifndef MAME_CPU_H8_H8S2357_H +#define MAME_CPU_H8_H8S2357_H + +#pragma once #include "h8s2000.h" #include "h8_intc.h" @@ -34,7 +36,6 @@ class h8s2357_device : public h8s2000_device { public: - h8s2357_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); h8s2357_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); DECLARE_READ8_MEMBER(syscr_r); @@ -73,6 +74,8 @@ protected: uint32_t ram_start; unsigned char syscr; + h8s2357_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint32_t start); + virtual bool exr_in_stack() const override; virtual void update_irq_filter() override; virtual void interrupt_taken() override; @@ -113,12 +116,11 @@ public: h8s2390_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; -extern const device_type H8S2357; -extern const device_type H8S2352; -extern const device_type H8S2398; -extern const device_type H8S2394; -extern const device_type H8S2392; -extern const device_type H8S2390; - +DECLARE_DEVICE_TYPE(H8S2357, h8s2357_device) +DECLARE_DEVICE_TYPE(H8S2352, h8s2352_device) +DECLARE_DEVICE_TYPE(H8S2398, h8s2398_device) +DECLARE_DEVICE_TYPE(H8S2394, h8s2394_device) +DECLARE_DEVICE_TYPE(H8S2392, h8s2392_device) +DECLARE_DEVICE_TYPE(H8S2390, h8s2390_device) -#endif +#endif // MAME_CPU_H8_H8S2357_H diff --git a/src/devices/cpu/h8/h8s2600.cpp b/src/devices/cpu/h8/h8s2600.cpp index 5bd2d7419cc..188f879279d 100644 --- a/src/devices/cpu/h8/h8s2600.cpp +++ b/src/devices/cpu/h8/h8s2600.cpp @@ -3,8 +3,8 @@ #include "emu.h" #include "h8s2600.h" -h8s2600_device::h8s2600_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source, address_map_delegate map_delegate) : - h8s2000_device(mconfig, type, name, tag, owner, clock, shortname, source, map_delegate) +h8s2600_device::h8s2600_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, address_map_delegate map_delegate) : + h8s2000_device(mconfig, type, tag, owner, clock, map_delegate) { } diff --git a/src/devices/cpu/h8/h8s2600.h b/src/devices/cpu/h8/h8s2600.h index eb2881d66dd..45b84bb2f8c 100644 --- a/src/devices/cpu/h8/h8s2600.h +++ b/src/devices/cpu/h8/h8s2600.h @@ -11,18 +11,19 @@ ***************************************************************************/ -#ifndef __H8S2600_H__ -#define __H8S2600_H__ +#ifndef MAME_CPU_H8_H8S2600_H +#define MAME_CPU_H8_H8S2600_H + +#pragma once #include "h8s2000.h" class h8s2600_device : public h8s2000_device { -public: - h8s2600_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source, address_map_delegate map_delegate); - protected: static const disasm_entry disasm_entries[]; + h8s2600_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, address_map_delegate map_delegate); + virtual offs_t disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) override; virtual void do_exec_full() override; @@ -36,4 +37,4 @@ protected: #undef O }; -#endif +#endif // MAME_CPU_H8_H8S2600_H diff --git a/src/devices/cpu/h8/h8s2655.cpp b/src/devices/cpu/h8/h8s2655.cpp index b95fb91ad68..60b1fa02b2e 100644 --- a/src/devices/cpu/h8/h8s2655.cpp +++ b/src/devices/cpu/h8/h8s2655.cpp @@ -3,11 +3,11 @@ #include "emu.h" #include "h8s2655.h" -const device_type H8S2655 = device_creator; -const device_type H8S2653 = device_creator; +DEFINE_DEVICE_TYPE(H8S2655, h8s2655_device, "h8s2655", "H8S/2655") +DEFINE_DEVICE_TYPE(H8S2653, h8s2653_device, "h8s2653", "H8S/2653") -h8s2655_device::h8s2655_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - h8s2600_device(mconfig, type, name, tag, owner, clock, shortname, source, address_map_delegate(FUNC(h8s2655_device::map), this)), +h8s2655_device::h8s2655_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + h8s2600_device(mconfig, type, tag, owner, clock, address_map_delegate(FUNC(h8s2655_device::map), this)), intc(*this, "intc"), adc(*this, "adc"), port1(*this, "port1"), @@ -35,50 +35,20 @@ h8s2655_device::h8s2655_device(const machine_config &mconfig, device_type type, sci0(*this, "sci0"), sci1(*this, "sci1"), sci2(*this, "sci2"), - watchdog(*this, "watchdog") + watchdog(*this, "watchdog"), + syscr(0) { has_trace = true; - syscr = 0; } h8s2655_device::h8s2655_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - h8s2600_device(mconfig, H8S2655, "H8S/2655", tag, owner, clock, "h8s2655", __FILE__, address_map_delegate(FUNC(h8s2655_device::map), this)), - intc(*this, "intc"), - adc(*this, "adc"), - port1(*this, "port1"), - port2(*this, "port2"), - port3(*this, "port3"), - port4(*this, "port4"), - port5(*this, "port5"), - port6(*this, "port6"), - porta(*this, "porta"), - portb(*this, "portb"), - portc(*this, "portc"), - portd(*this, "portd"), - porte(*this, "porte"), - portf(*this, "portf"), - portg(*this, "portg"), - timer8_0(*this, "timer8_0"), - timer8_1(*this, "timer8_1"), - timer16(*this, "timer16"), - timer16_0(*this, "timer16:0"), - timer16_1(*this, "timer16:1"), - timer16_2(*this, "timer16:2"), - timer16_3(*this, "timer16:3"), - timer16_4(*this, "timer16:4"), - timer16_5(*this, "timer16:5"), - sci0(*this, "sci0"), - sci1(*this, "sci1"), - sci2(*this, "sci2"), - watchdog(*this, "watchdog") + h8s2655_device(mconfig, H8S2655, tag, owner, clock) { - has_trace = true; - syscr = 0; } h8s2653_device::h8s2653_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - h8s2655_device(mconfig, H8S2653, "H8S/2653", tag, owner, clock, "h8s2653", __FILE__) + h8s2655_device(mconfig, H8S2653, tag, owner, clock) { } diff --git a/src/devices/cpu/h8/h8s2655.h b/src/devices/cpu/h8/h8s2655.h index 7da96bce082..0d8c310a91c 100644 --- a/src/devices/cpu/h8/h8s2655.h +++ b/src/devices/cpu/h8/h8s2655.h @@ -12,8 +12,10 @@ ***************************************************************************/ -#ifndef __H8S2655_H__ -#define __H8S2655_H__ +#ifndef MAME_CPU_H8_H8S2655_H +#define MAME_CPU_H8_H8S2655_H + +#pragma once #include "h8s2600.h" #include "h8_intc.h" @@ -26,7 +28,6 @@ class h8s2655_device : public h8s2600_device { public: - h8s2655_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); h8s2655_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); DECLARE_READ8_MEMBER(syscr_r); @@ -64,6 +65,8 @@ protected: uint8_t syscr; + h8s2655_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual bool exr_in_stack() const override; virtual void update_irq_filter() override; virtual void interrupt_taken() override; @@ -84,7 +87,7 @@ public: h8s2653_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; -extern const device_type H8S2655; -extern const device_type H8S2653; +DECLARE_DEVICE_TYPE(H8S2655, h8s2655_device) +DECLARE_DEVICE_TYPE(H8S2653, h8s2653_device) -#endif +#endif // MAME_CPU_H8_H8S2655_H diff --git a/src/devices/cpu/hcd62121/hcd62121.cpp b/src/devices/cpu/hcd62121/hcd62121.cpp index 931781c2c72..7d7ee5fa62e 100644 --- a/src/devices/cpu/hcd62121/hcd62121.cpp +++ b/src/devices/cpu/hcd62121/hcd62121.cpp @@ -17,9 +17,10 @@ TODO: **********************************************************************/ #include "emu.h" -#include "debugger.h" #include "hcd62121.h" +#include "debugger.h" + enum { @@ -44,11 +45,11 @@ constexpr u8 FLAG_CL = 0x01; constexpr u8 FLAG_ZH = 0x10; -const device_type HCD62121 = device_creator; +DEFINE_DEVICE_TYPE(HCD62121, hcd62121_cpu_device, "hcd62121_cpu_device", "Hitachi HCD62121") hcd62121_cpu_device::hcd62121_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cpu_device(mconfig, HCD62121, "Hitachi HCD62121", tag, owner, clock, "hcd62121", __FILE__) + : cpu_device(mconfig, HCD62121, tag, owner, clock) , m_program_config("program", ENDIANNESS_BIG, 8, 24, 0) , m_prev_pc(0) , m_sp(0) diff --git a/src/devices/cpu/hcd62121/hcd62121.h b/src/devices/cpu/hcd62121/hcd62121.h index 8e4d2bb788e..65f67e90bda 100644 --- a/src/devices/cpu/hcd62121/hcd62121.h +++ b/src/devices/cpu/hcd62121/hcd62121.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Wilbert Pol -#ifndef __HCD62121_H__ -#define __HCD62121_H__ - +#ifndef MAME_CPU_HCD62121_HCD62121_H +#define MAME_CPU_HCD62121_HCD62121_H +#pragma once #define MCFG_HCD62121_KOL_CB(_devcb) devcb = &hcd62121_cpu_device::set_kol_callback(*device, DEVCB_##_devcb); @@ -20,14 +20,29 @@ public: // construction/destruction hcd62121_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_kol_callback(device_t &device, _Object object) { return downcast(device).m_kol_cb.set_callback(object); } - template static devcb_base &set_koh_callback(device_t &device, _Object object) { return downcast(device).m_koh_cb.set_callback(object); } - template static devcb_base &set_port_callback(device_t &device, _Object object) { return downcast(device).m_port_cb.set_callback(object); } - template static devcb_base &set_opt_callback(device_t &device, _Object object) { return downcast(device).m_opt_cb.set_callback(object); } - template static devcb_base &set_ki_callback(device_t &device, _Object object) { return downcast(device).m_ki_cb.set_callback(object); } - template static devcb_base &set_in0_callback(device_t &device, _Object object) { return downcast(device).m_in0_cb.set_callback(object); } + template static devcb_base &set_kol_callback(device_t &device, Object &&cb) { return downcast(device).m_kol_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_koh_callback(device_t &device, Object &&cb) { return downcast(device).m_koh_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_port_callback(device_t &device, Object &&cb) { return downcast(device).m_port_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_opt_callback(device_t &device, Object &&cb) { return downcast(device).m_opt_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_ki_callback(device_t &device, Object &&cb) { return downcast(device).m_ki_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_in0_callback(device_t &device, Object &&cb) { return downcast(device).m_in0_cb.set_callback(std::forward(cb)); } protected: + enum + { + HCD62121_IP=1, HCD62121_SP, HCD62121_F, HCD62121_LAR, + HCD62121_CS, HCD62121_DS, HCD62121_SS, HCD62121_DSIZE, + /* 128 byte register file */ + HCD62121_R00, HCD62121_R04, HCD62121_R08, HCD62121_R0C, + HCD62121_R10, HCD62121_R14, HCD62121_R18, HCD62121_R1C, + HCD62121_R20, HCD62121_R24, HCD62121_R28, HCD62121_R2C, + HCD62121_R30, HCD62121_R34, HCD62121_R38, HCD62121_R3C, + HCD62121_R40, HCD62121_R44, HCD62121_R48, HCD62121_R4C, + HCD62121_R50, HCD62121_R54, HCD62121_R58, HCD62121_R5C, + HCD62121_R60, HCD62121_R64, HCD62121_R68, HCD62121_R6C, + HCD62121_R70, HCD62121_R74, HCD62121_R78, HCD62121_R7C + }; + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -113,7 +128,6 @@ private: }; -extern const device_type HCD62121; - +DECLARE_DEVICE_TYPE(HCD62121, hcd62121_cpu_device) -#endif /* __HCD62121_H__ */ +#endif // MAME_CPU_HCD62121_HCD62121_H diff --git a/src/devices/cpu/hd61700/hd61700.cpp b/src/devices/cpu/hd61700/hd61700.cpp index 92201470a6c..2fc84f0eb15 100644 --- a/src/devices/cpu/hd61700/hd61700.cpp +++ b/src/devices/cpu/hd61700/hd61700.cpp @@ -23,9 +23,11 @@ ******************************************************************************/ #include "emu.h" -#include "debugger.h" #include "hd61700.h" +#include "debugger.h" + + // internal ROM #define INT_ROM 0x0c00 @@ -95,28 +97,27 @@ static const uint16_t irq_vector[] = {0x0032, 0x0042, 0x0052, 0x0062, 0x0072}; // HD61700 DEVICE //************************************************************************** -const device_type HD61700 = device_creator; +DEFINE_DEVICE_TYPE(HD61700, hd61700_cpu_device, "hd61700", "HD61700") //------------------------------------------------- // hd61700_cpu_device - constructor //------------------------------------------------- hd61700_cpu_device::hd61700_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cpu_device(mconfig, HD61700, "HD61700", tag, owner, clock, "hd61700", __FILE__), - m_program_config("program", ENDIANNESS_BIG, 16, 18, -1), - m_ppc(0x0000), - m_curpc(0x0000), - m_pc(0), - m_flags(0), - m_lcd_ctrl_cb(*this), - m_lcd_read_cb(*this), - m_lcd_write_cb(*this), - m_kb_read_cb(*this), - m_kb_write_cb(*this), - m_port_read_cb(*this), - m_port_write_cb(*this) + : cpu_device(mconfig, HD61700, tag, owner, clock) + , m_program_config("program", ENDIANNESS_BIG, 16, 18, -1) + , m_ppc(0x0000) + , m_curpc(0x0000) + , m_pc(0) + , m_flags(0) + , m_lcd_ctrl_cb(*this) + , m_lcd_read_cb(*this) + , m_lcd_write_cb(*this) + , m_kb_read_cb(*this) + , m_kb_write_cb(*this) + , m_port_read_cb(*this) + , m_port_write_cb(*this) { - // ... } @@ -304,7 +305,7 @@ offs_t hd61700_cpu_device::disasm_disassemble(std::ostream &stream, offs_t pc, c // check_irqs - check if need interrupts //------------------------------------------------- -bool hd61700_cpu_device::check_irqs(void) +bool hd61700_cpu_device::check_irqs() { for (int i=4; i>=0; i--) { diff --git a/src/devices/cpu/hd61700/hd61700.h b/src/devices/cpu/hd61700/hd61700.h index fee2e4cd465..559cda51dab 100644 --- a/src/devices/cpu/hd61700/hd61700.h +++ b/src/devices/cpu/hd61700/hd61700.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_CPU_HD61700_HD61700_H +#define MAME_CPU_HD61700_HD61700_H -#ifndef __HD61700_H__ -#define __HD61700_H__ +#pragma once //************************************************************************** // INTERFACE CONFIGURATION MACROS @@ -41,14 +41,6 @@ // DEFINITIONS //************************************************************************** -// registers -enum -{ - HD61700_PC=1, HD61700_F, HD61700_SX, HD61700_SY, HD61700_SZ, HD61700_PE, HD61700_PD, - HD61700_IB, HD61700_UA, HD61700_IA, HD61700_IE, HD61700_TM, HD61700_IX, - HD61700_IY, HD61700_IZ, HD61700_US, HD61700_SS, HD61700_KY, HD61700_MAINREG -}; - // input lines enum { @@ -103,7 +95,7 @@ protected: virtual offs_t disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) override; // interrupts - bool check_irqs(void); + bool check_irqs(); // inline helpers inline void set_pc(int32_t new_pc); @@ -124,11 +116,18 @@ protected: inline uint16_t make_bcd_sub(uint8_t arg1, uint8_t arg2); inline uint16_t make_bcd_add(uint8_t arg1, uint8_t arg2); -protected: + // registers + enum + { + HD61700_PC=1, HD61700_F, HD61700_SX, HD61700_SY, HD61700_SZ, HD61700_PE, HD61700_PD, + HD61700_IB, HD61700_UA, HD61700_IA, HD61700_IE, HD61700_TM, HD61700_IX, + HD61700_IY, HD61700_IZ, HD61700_US, HD61700_SS, HD61700_KY, HD61700_MAINREG + }; + + static constexpr device_timer_id SEC_TIMER = 1; // internal state address_space_config m_program_config; - static const device_timer_id SEC_TIMER = 1; emu_timer *m_sec_timer; offs_t m_ppc; @@ -157,15 +156,14 @@ protected: devcb_write8 m_port_write_cb; //8 bit port write // flag definitions - static const int FLAG_Z = 0x80; - static const int FLAG_C = 0x40; - static const int FLAG_LZ = 0x20; - static const int FLAG_UZ = 0x10; - static const int FLAG_SW = 0x08; - static const int FLAG_APO = 0x04; + static constexpr int FLAG_Z = 0x80; + static constexpr int FLAG_C = 0x40; + static constexpr int FLAG_LZ = 0x20; + static constexpr int FLAG_UZ = 0x10; + static constexpr int FLAG_SW = 0x08; + static constexpr int FLAG_APO = 0x04; }; -extern const device_type HD61700; - +DECLARE_DEVICE_TYPE(HD61700, hd61700_cpu_device) -#endif /* __HD61700_H__ */ +#endif // MAME_CPU_HD61700_HD61700_H diff --git a/src/devices/cpu/hmcs40/hmcs40.cpp b/src/devices/cpu/hmcs40/hmcs40.cpp index a14b947820a..092a6417c32 100644 --- a/src/devices/cpu/hmcs40/hmcs40.cpp +++ b/src/devices/cpu/hmcs40/hmcs40.cpp @@ -11,47 +11,47 @@ */ -#define IS_PMOS 0 -#define IS_CMOS ~0 - #include "emu.h" #include "hmcs40.h" #include "debugger.h" +#define IS_PMOS 0 +#define IS_CMOS ~0 + // MCU types // HMCS42/C/CL -//const device_type HD38702 = device_creator; // PMOS, 28 pins, 22 I/O lines, (512+32)x10 ROM, 32x4 RAM, no B or SPY register -//const device_type HD44700 = device_creator; // CMOS version -//const device_type HD44708 = device_creator; // CMOS version, low-power +//DEFINE_DEVICE_TYPE(HD38702, hd38702_device, "hd38702", "HD38702") // PMOS, 28 pins, 22 I/O lines, (512+32)x10 ROM, 32x4 RAM, no B or SPY register +//DEFINE_DEVICE_TYPE(HD44700, hd44700_device, "hd44700", "HD44700") // CMOS version +//DEFINE_DEVICE_TYPE(HD44708, hd44708_device, "hd44708", "HD44708") // CMOS version, low-power // HMCS43/C/CL -const device_type HD38750 = device_creator; // PMOS, 42 pins, 32 I/O lines, (1024+64)x10 ROM, 80x4 RAM -const device_type HD38755 = device_creator; // ceramic filter oscillator type -const device_type HD44750 = device_creator; // CMOS version -const device_type HD44758 = device_creator; // CMOS version, low-power +DEFINE_DEVICE_TYPE(HD38750, hd38750_device, "hd38750", "HD38750") // PMOS, 42 pins, 32 I/O lines, (1024+64)x10 ROM, 80x4 RAM +DEFINE_DEVICE_TYPE(HD38755, hd38755_device, "hd38755", "HD38755") // ceramic filter oscillator type +DEFINE_DEVICE_TYPE(HD44750, hd44750_device, "hd44750", "HD44750") // CMOS version +DEFINE_DEVICE_TYPE(HD44758, hd44758_device, "hd44758", "HD44758") // CMOS version, low-power // HMCS44A/C/CL -const device_type HD38800 = device_creator; // PMOS, 42 pins, 32 I/O lines, (2048+128)x10 ROM, 160x4 RAM -const device_type HD38805 = device_creator; // ceramic filter oscillator type -const device_type HD44801 = device_creator; // CMOS version -const device_type HD44808 = device_creator; // CMOS version, low-power +DEFINE_DEVICE_TYPE(HD38800, hd38800_device, "hd38800", "HD38800") // PMOS, 42 pins, 32 I/O lines, (2048+128)x10 ROM, 160x4 RAM +DEFINE_DEVICE_TYPE(HD38805, hd38805_device, "hd38805", "HD38805") // ceramic filter oscillator type +DEFINE_DEVICE_TYPE(HD44801, hd44801_device, "hd44801", "HD44801") // CMOS version +DEFINE_DEVICE_TYPE(HD44808, hd44808_device, "hd44808", "HD44808") // CMOS version, low-power // HMCS45A/C/CL -const device_type HD38820 = device_creator; // PMOS, 54 pins(QFP) or 64 pins(DIP), 44 I/O lines, (2048+128)x10 ROM, 160x4 RAM -const device_type HD38825 = device_creator; // ceramic filter oscillator type -const device_type HD44820 = device_creator; // CMOS version -const device_type HD44828 = device_creator; // CMOS version, low-power +DEFINE_DEVICE_TYPE(HD38820, hd38820_device, "hd38820", "HD38820") // PMOS, 54 pins(QFP) or 64 pins(DIP), 44 I/O lines, (2048+128)x10 ROM, 160x4 RAM +DEFINE_DEVICE_TYPE(HD38825, hd38825_device, "hd38825", "HD38825") // ceramic filter oscillator type +DEFINE_DEVICE_TYPE(HD44820, hd44820_device, "hd44820", "HD44820") // CMOS version +DEFINE_DEVICE_TYPE(HD44828, hd44828_device, "hd44828", "HD44828") // CMOS version, low-power // HMCS46C/CL (no PMOS version exists) -//const device_type HD44840 = device_creator; // CMOS, 42 pins, 32 I/O lines, 4096x10 ROM, 256x4 RAM -//const device_type HD44848 = device_creator; // CMOS, low-power +//DEFINE_DEVICE_TYPE(HD44840, hd44840_device, "hd44840", "HD44840") // CMOS, 42 pins, 32 I/O lines, 4096x10 ROM, 256x4 RAM +//DEFINE_DEVICE_TYPE(HD44848, hd44848_device, "hd44848", "HD44848") // CMOS, low-power // HMCS47A/C/CL -//const device_type HD38870 = device_creator; // PMOS, 54 pins(QFP) or 64 pins(DIP), 44 I/O lines, 4096x10 ROM, 256x4 RAM -//const device_type HD44860 = device_creator; // CMOS version -//const device_type HD44868 = device_creator; // CMOS version, low-power +//DEFINE_DEVICE_TYPE(HD38870, hd38870_device, "hd38870", "HD38870") // PMOS, 54 pins(QFP) or 64 pins(DIP), 44 I/O lines, 4096x10 ROM, 256x4 RAM +//DEFINE_DEVICE_TYPE(HD44860, hd44860_device, "hd44860", "HD44860") // CMOS version +//DEFINE_DEVICE_TYPE(HD44868, hd44868_device, "hd44868", "HD44868") // CMOS version, low-power // internal memory maps @@ -79,57 +79,74 @@ ADDRESS_MAP_END // device definitions -hmcs43_cpu_device::hmcs43_cpu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, u32 clock, u16 polarity, const char *shortname) - : hmcs40_cpu_device(mconfig, type, name, tag, owner, clock, HMCS40_FAMILY_HMCS43, polarity, 3 /* stack levels */, 10 /* pc width */, 11 /* prg width */, ADDRESS_MAP_NAME(program_1k), 7 /* data width */, ADDRESS_MAP_NAME(data_80x4), shortname, __FILE__) +hmcs40_cpu_device::hmcs40_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, int family, u16 polarity, int stack_levels, int pcwidth, int prgwidth, address_map_constructor program, int datawidth, address_map_constructor data) + : cpu_device(mconfig, type, tag, owner, clock) + , m_program_config("program", ENDIANNESS_LITTLE, 16, prgwidth, -1, program) + , m_data_config("data", ENDIANNESS_LITTLE, 8, datawidth, 0, data) + , m_pcwidth(pcwidth) + , m_prgwidth(prgwidth) + , m_datawidth(datawidth) + , m_family(family) + , m_polarity(polarity) + , m_stack_levels(stack_levels) + , m_read_r0(*this), m_read_r1(*this), m_read_r2(*this), m_read_r3(*this), m_read_r4(*this), m_read_r5(*this), m_read_r6(*this), m_read_r7(*this) + , m_write_r0(*this), m_write_r1(*this), m_write_r2(*this), m_write_r3(*this), m_write_r4(*this), m_write_r5(*this), m_write_r6(*this), m_write_r7(*this) + , m_read_d(*this) + , m_write_d(*this) +{ +} + +hmcs43_cpu_device::hmcs43_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, u16 polarity) + : hmcs40_cpu_device(mconfig, type, tag, owner, clock, HMCS40_FAMILY_HMCS43, polarity, 3 /* stack levels */, 10 /* pc width */, 11 /* prg width */, ADDRESS_MAP_NAME(program_1k), 7 /* data width */, ADDRESS_MAP_NAME(data_80x4)) { } hd38750_device::hd38750_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : hmcs43_cpu_device(mconfig, HD38750, "HD38750", tag, owner, clock, IS_PMOS, "hd38750") + : hmcs43_cpu_device(mconfig, HD38750, tag, owner, clock, IS_PMOS) { } hd38755_device::hd38755_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : hmcs43_cpu_device(mconfig, HD38755, "HD38755", tag, owner, clock, IS_PMOS, "hd38755") + : hmcs43_cpu_device(mconfig, HD38755, tag, owner, clock, IS_PMOS) { } hd44750_device::hd44750_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : hmcs43_cpu_device(mconfig, HD44750, "HD44750", tag, owner, clock, IS_CMOS, "hd44750") + : hmcs43_cpu_device(mconfig, HD44750, tag, owner, clock, IS_CMOS) { } hd44758_device::hd44758_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : hmcs43_cpu_device(mconfig, HD44758, "HD44758", tag, owner, clock, IS_CMOS, "hd44758") + : hmcs43_cpu_device(mconfig, HD44758, tag, owner, clock, IS_CMOS) { } -hmcs44_cpu_device::hmcs44_cpu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, u32 clock, u16 polarity, const char *shortname) - : hmcs40_cpu_device(mconfig, type, name, tag, owner, clock, HMCS40_FAMILY_HMCS44, polarity, 4, 11, 12, ADDRESS_MAP_NAME(program_2k), 8, ADDRESS_MAP_NAME(data_160x4), shortname, __FILE__) +hmcs44_cpu_device::hmcs44_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, u16 polarity) + : hmcs40_cpu_device(mconfig, type, tag, owner, clock, HMCS40_FAMILY_HMCS44, polarity, 4, 11, 12, ADDRESS_MAP_NAME(program_2k), 8, ADDRESS_MAP_NAME(data_160x4)) { } hd38800_device::hd38800_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : hmcs44_cpu_device(mconfig, HD38800, "HD38800", tag, owner, clock, IS_PMOS, "hd38800") + : hmcs44_cpu_device(mconfig, HD38800, tag, owner, clock, IS_PMOS) { } hd38805_device::hd38805_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : hmcs44_cpu_device(mconfig, HD38805, "HD38805", tag, owner, clock, IS_PMOS, "hd38805") + : hmcs44_cpu_device(mconfig, HD38805, tag, owner, clock, IS_PMOS) { } hd44801_device::hd44801_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : hmcs44_cpu_device(mconfig, HD44801, "HD44801", tag, owner, clock, IS_CMOS, "hd44801") + : hmcs44_cpu_device(mconfig, HD44801, tag, owner, clock, IS_CMOS) { } hd44808_device::hd44808_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : hmcs44_cpu_device(mconfig, HD44808, "HD44808", tag, owner, clock, IS_CMOS, "hd44808") + : hmcs44_cpu_device(mconfig, HD44808, tag, owner, clock, IS_CMOS) { } -hmcs45_cpu_device::hmcs45_cpu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, u32 clock, u16 polarity, const char *shortname) - : hmcs40_cpu_device(mconfig, type, name, tag, owner, clock, HMCS40_FAMILY_HMCS45, polarity, 4, 11, 12, ADDRESS_MAP_NAME(program_2k), 8, ADDRESS_MAP_NAME(data_160x4), shortname, __FILE__) +hmcs45_cpu_device::hmcs45_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, u16 polarity) + : hmcs40_cpu_device(mconfig, type, tag, owner, clock, HMCS40_FAMILY_HMCS45, polarity, 4, 11, 12, ADDRESS_MAP_NAME(program_2k), 8, ADDRESS_MAP_NAME(data_160x4)) { } hd38820_device::hd38820_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : hmcs45_cpu_device(mconfig, HD38820, "HD38820", tag, owner, clock, IS_PMOS, "hd38820") + : hmcs45_cpu_device(mconfig, HD38820, tag, owner, clock, IS_PMOS) { } hd38825_device::hd38825_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : hmcs45_cpu_device(mconfig, HD38825, "HD38825", tag, owner, clock, IS_PMOS, "hd38825") + : hmcs45_cpu_device(mconfig, HD38825, tag, owner, clock, IS_PMOS) { } hd44820_device::hd44820_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : hmcs45_cpu_device(mconfig, HD44820, "HD44820", tag, owner, clock, IS_CMOS, "hd44820") + : hmcs45_cpu_device(mconfig, HD44820, tag, owner, clock, IS_CMOS) { } hd44828_device::hd44828_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : hmcs45_cpu_device(mconfig, HD44828, "HD44828", tag, owner, clock, IS_CMOS, "hd44828") + : hmcs45_cpu_device(mconfig, HD44828, tag, owner, clock, IS_CMOS) { } diff --git a/src/devices/cpu/hmcs40/hmcs40.h b/src/devices/cpu/hmcs40/hmcs40.h index 9bd2e3f82a5..af933a999a7 100644 --- a/src/devices/cpu/hmcs40/hmcs40.h +++ b/src/devices/cpu/hmcs40/hmcs40.h @@ -6,9 +6,10 @@ */ -#ifndef _HMCS40_H_ -#define _HMCS40_H_ +#ifndef MAME_CPU_HMCS40_HMCS40_H +#define MAME_CPU_HMCS40_HMCS40_H +#pragma once // I/O ports setup @@ -25,18 +26,6 @@ #define MCFG_HMCS40_WRITE_D_CB(_devcb) \ devcb = &hmcs40_cpu_device::set_write_d_callback(*device, DEVCB_##_devcb); -enum -{ - HMCS40_PORT_R0X = 0, - HMCS40_PORT_R1X, - HMCS40_PORT_R2X, - HMCS40_PORT_R3X, - HMCS40_PORT_R4X, - HMCS40_PORT_R5X, - HMCS40_PORT_R6X, - HMCS40_PORT_R7X -}; - enum { HMCS40_INPUT_LINE_INT0 = 0, @@ -44,16 +33,6 @@ enum HMCS40_INPUT_LINE_HLT }; -enum -{ - HMCS40_FAMILY_HMCS42 = 0, - HMCS40_FAMILY_HMCS43, - HMCS40_FAMILY_HMCS44, - HMCS40_FAMILY_HMCS45, - HMCS40_FAMILY_HMCS46, - HMCS40_FAMILY_HMCS47 -}; - // pinout reference @@ -114,46 +93,54 @@ enum class hmcs40_cpu_device : public cpu_device { public: - // construction/destruction - hmcs40_cpu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, u32 clock, int family, u16 polarity, int stack_levels, int pcwidth, int prgwidth, address_map_constructor program, int datawidth, address_map_constructor data, const char *shortname, const char *source) - : cpu_device(mconfig, type, name, tag, owner, clock, shortname, source) - , m_program_config("program", ENDIANNESS_LITTLE, 16, prgwidth, -1, program) - , m_data_config("data", ENDIANNESS_LITTLE, 8, datawidth, 0, data) - , m_pcwidth(pcwidth) - , m_prgwidth(prgwidth) - , m_datawidth(datawidth) - , m_family(family) - , m_polarity(polarity) - , m_stack_levels(stack_levels) - , m_read_r0(*this), m_read_r1(*this), m_read_r2(*this), m_read_r3(*this), m_read_r4(*this), m_read_r5(*this), m_read_r6(*this), m_read_r7(*this) - , m_write_r0(*this), m_write_r1(*this), m_write_r2(*this), m_write_r3(*this), m_write_r4(*this), m_write_r5(*this), m_write_r6(*this), m_write_r7(*this) - , m_read_d(*this) - , m_write_d(*this) - { } + enum + { + PORT_R0X = 0, + PORT_R1X, + PORT_R2X, + PORT_R3X, + PORT_R4X, + PORT_R5X, + PORT_R6X, + PORT_R7X + }; // static configuration helpers - template static devcb_base &set_read_r0_callback(device_t &device, _Object object) { return downcast(device).m_read_r0.set_callback(object); } - template static devcb_base &set_read_r1_callback(device_t &device, _Object object) { return downcast(device).m_read_r1.set_callback(object); } - template static devcb_base &set_read_r2_callback(device_t &device, _Object object) { return downcast(device).m_read_r2.set_callback(object); } - template static devcb_base &set_read_r3_callback(device_t &device, _Object object) { return downcast(device).m_read_r3.set_callback(object); } - template static devcb_base &set_read_r4_callback(device_t &device, _Object object) { return downcast(device).m_read_r4.set_callback(object); } - template static devcb_base &set_read_r5_callback(device_t &device, _Object object) { return downcast(device).m_read_r5.set_callback(object); } - template static devcb_base &set_read_r6_callback(device_t &device, _Object object) { return downcast(device).m_read_r6.set_callback(object); } - template static devcb_base &set_read_r7_callback(device_t &device, _Object object) { return downcast(device).m_read_r7.set_callback(object); } - - template static devcb_base &set_write_r0_callback(device_t &device, _Object object) { return downcast(device).m_write_r0.set_callback(object); } - template static devcb_base &set_write_r1_callback(device_t &device, _Object object) { return downcast(device).m_write_r1.set_callback(object); } - template static devcb_base &set_write_r2_callback(device_t &device, _Object object) { return downcast(device).m_write_r2.set_callback(object); } - template static devcb_base &set_write_r3_callback(device_t &device, _Object object) { return downcast(device).m_write_r3.set_callback(object); } - template static devcb_base &set_write_r4_callback(device_t &device, _Object object) { return downcast(device).m_write_r4.set_callback(object); } - template static devcb_base &set_write_r5_callback(device_t &device, _Object object) { return downcast(device).m_write_r5.set_callback(object); } - template static devcb_base &set_write_r6_callback(device_t &device, _Object object) { return downcast(device).m_write_r6.set_callback(object); } - template static devcb_base &set_write_r7_callback(device_t &device, _Object object) { return downcast(device).m_write_r7.set_callback(object); } - - template static devcb_base &set_read_d_callback(device_t &device, _Object object) { return downcast(device).m_read_d.set_callback(object); } - template static devcb_base &set_write_d_callback(device_t &device, _Object object) { return downcast(device).m_write_d.set_callback(object); } + template static devcb_base &set_read_r0_callback(device_t &device, Object &&cb) { return downcast(device).m_read_r0.set_callback(std::forward(cb)); } + template static devcb_base &set_read_r1_callback(device_t &device, Object &&cb) { return downcast(device).m_read_r1.set_callback(std::forward(cb)); } + template static devcb_base &set_read_r2_callback(device_t &device, Object &&cb) { return downcast(device).m_read_r2.set_callback(std::forward(cb)); } + template static devcb_base &set_read_r3_callback(device_t &device, Object &&cb) { return downcast(device).m_read_r3.set_callback(std::forward(cb)); } + template static devcb_base &set_read_r4_callback(device_t &device, Object &&cb) { return downcast(device).m_read_r4.set_callback(std::forward(cb)); } + template static devcb_base &set_read_r5_callback(device_t &device, Object &&cb) { return downcast(device).m_read_r5.set_callback(std::forward(cb)); } + template static devcb_base &set_read_r6_callback(device_t &device, Object &&cb) { return downcast(device).m_read_r6.set_callback(std::forward(cb)); } + template static devcb_base &set_read_r7_callback(device_t &device, Object &&cb) { return downcast(device).m_read_r7.set_callback(std::forward(cb)); } + + template static devcb_base &set_write_r0_callback(device_t &device, Object &&cb) { return downcast(device).m_write_r0.set_callback(std::forward(cb)); } + template static devcb_base &set_write_r1_callback(device_t &device, Object &&cb) { return downcast(device).m_write_r1.set_callback(std::forward(cb)); } + template static devcb_base &set_write_r2_callback(device_t &device, Object &&cb) { return downcast(device).m_write_r2.set_callback(std::forward(cb)); } + template static devcb_base &set_write_r3_callback(device_t &device, Object &&cb) { return downcast(device).m_write_r3.set_callback(std::forward(cb)); } + template static devcb_base &set_write_r4_callback(device_t &device, Object &&cb) { return downcast(device).m_write_r4.set_callback(std::forward(cb)); } + template static devcb_base &set_write_r5_callback(device_t &device, Object &&cb) { return downcast(device).m_write_r5.set_callback(std::forward(cb)); } + template static devcb_base &set_write_r6_callback(device_t &device, Object &&cb) { return downcast(device).m_write_r6.set_callback(std::forward(cb)); } + template static devcb_base &set_write_r7_callback(device_t &device, Object &&cb) { return downcast(device).m_write_r7.set_callback(std::forward(cb)); } + + template static devcb_base &set_read_d_callback(device_t &device, Object &&cb) { return downcast(device).m_read_d.set_callback(std::forward(cb)); } + template static devcb_base &set_write_d_callback(device_t &device, Object &&cb) { return downcast(device).m_write_d.set_callback(std::forward(cb)); } protected: + enum + { + HMCS40_FAMILY_HMCS42 = 0, + HMCS40_FAMILY_HMCS43, + HMCS40_FAMILY_HMCS44, + HMCS40_FAMILY_HMCS45, + HMCS40_FAMILY_HMCS46, + HMCS40_FAMILY_HMCS47 + }; + + // construction/destruction + hmcs40_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, int family, u16 polarity, int stack_levels, int pcwidth, int prgwidth, address_map_constructor program, int datawidth, address_map_constructor data); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -347,10 +334,9 @@ protected: class hmcs43_cpu_device : public hmcs40_cpu_device { -public: - hmcs43_cpu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, u32 clock, u16 polarity, const char *shortname); - protected: + hmcs43_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, u16 polarity); + // overrides virtual u8 read_r(int index) override; virtual void write_r(int index, u8 data) override; @@ -384,10 +370,9 @@ public: class hmcs44_cpu_device : public hmcs40_cpu_device { -public: - hmcs44_cpu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, u32 clock, u16 polarity, const char *shortname); - protected: + hmcs44_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, u16 polarity); + // overrides virtual u8 read_r(int index) override; virtual void write_r(int index, u8 data) override; @@ -420,10 +405,9 @@ public: class hmcs45_cpu_device : public hmcs40_cpu_device { -public: - hmcs45_cpu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, u32 clock, u16 polarity, const char *shortname); - protected: + hmcs45_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, u16 polarity); + // overrides virtual u8 read_r(int index) override; virtual void write_r(int index, u8 data) override; @@ -455,20 +439,19 @@ public: -extern const device_type HD38750; -extern const device_type HD38755; -extern const device_type HD44750; -extern const device_type HD44758; - -extern const device_type HD38800; -extern const device_type HD38805; -extern const device_type HD44801; -extern const device_type HD44808; +DECLARE_DEVICE_TYPE(HD38750, hd38750_device) +DECLARE_DEVICE_TYPE(HD38755, hd38755_device) +DECLARE_DEVICE_TYPE(HD44750, hd44750_device) +DECLARE_DEVICE_TYPE(HD44758, hd44758_device) -extern const device_type HD38820; -extern const device_type HD38825; -extern const device_type HD44820; -extern const device_type HD44828; +DECLARE_DEVICE_TYPE(HD38800, hd38800_device) +DECLARE_DEVICE_TYPE(HD38805, hd38805_device) +DECLARE_DEVICE_TYPE(HD44801, hd44801_device) +DECLARE_DEVICE_TYPE(HD44808, hd44808_device) +DECLARE_DEVICE_TYPE(HD38820, hd38820_device) +DECLARE_DEVICE_TYPE(HD38825, hd38825_device) +DECLARE_DEVICE_TYPE(HD44820, hd44820_device) +DECLARE_DEVICE_TYPE(HD44828, hd44828_device) -#endif /* _HMCS40_H_ */ +#endif // MAME_CPU_HMCS40_HMCS40_H diff --git a/src/devices/cpu/hphybrid/hphybrid.cpp b/src/devices/cpu/hphybrid/hphybrid.cpp index 08db689b177..c00ba6e6471 100644 --- a/src/devices/cpu/hphybrid/hphybrid.cpp +++ b/src/devices/cpu/hphybrid/hphybrid.cpp @@ -32,8 +32,11 @@ // * RET 0,P is executed to end ISR: return program counter is popped off the stack and IM is cleared #include "emu.h" -#include "debugger.h" #include "hphybrid.h" +#include "debugger.h" + +#include "hphybrid_defs.h" + enum { HPHYBRID_A, @@ -101,8 +104,8 @@ enum { // Part of r32-r37 that is actually output as address extension (6 bits of "BSC": block select code) #define BSC_REG_MASK 0x3f -const device_type HP_5061_3001 = device_creator; -const device_type HP_5061_3011 = device_creator; +DEFINE_DEVICE_TYPE(HP_5061_3001, hp_5061_3001_cpu_device, "5061_3001", "HP-5061-3001") +DEFINE_DEVICE_TYPE(HP_5061_3011, hp_5061_3011_cpu_device, "5061_3011", "HP-5061-3011") WRITE_LINE_MEMBER(hp_hybrid_cpu_device::dmar_w) { @@ -141,8 +144,8 @@ uint8_t hp_hybrid_cpu_device::pa_r(void) const return CURRENT_PA; } -hp_hybrid_cpu_device::hp_hybrid_cpu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname , uint8_t addrwidth) - : cpu_device(mconfig, type, name, tag, owner, clock, shortname, __FILE__) +hp_hybrid_cpu_device::hp_hybrid_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint8_t addrwidth) + : cpu_device(mconfig, type, tag, owner, clock) , m_pa_changed_func(*this) , m_program_config("program", ENDIANNESS_BIG, 16, addrwidth, -1) , m_io_config("io", ENDIANNESS_BIG, 16, 6, -1) @@ -1121,7 +1124,7 @@ void hp_hybrid_cpu_device::WIO(uint8_t pa , uint8_t ic , uint16_t v) } hp_5061_3001_cpu_device::hp_5061_3001_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : hp_hybrid_cpu_device(mconfig, HP_5061_3001, "HP-5061-3001", tag, owner, clock, "5061_3001", 22) + : hp_hybrid_cpu_device(mconfig, HP_5061_3001, tag, owner, clock, 22) , m_boot_mode(false) { } @@ -1685,7 +1688,7 @@ void hp_5061_3001_cpu_device::enter_isr(void) } hp_5061_3011_cpu_device::hp_5061_3011_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : hp_hybrid_cpu_device(mconfig, HP_5061_3011, "HP-5061-3011", tag, owner, clock, "5061_3011", 16) + : hp_hybrid_cpu_device(mconfig, HP_5061_3011, tag, owner, clock, 16) { } diff --git a/src/devices/cpu/hphybrid/hphybrid.h b/src/devices/cpu/hphybrid/hphybrid.h index 62e4724139a..57960e01d2c 100644 --- a/src/devices/cpu/hphybrid/hphybrid.h +++ b/src/devices/cpu/hphybrid/hphybrid.h @@ -19,8 +19,10 @@ // - hp9800e emulator for inspiration on implementing EMC instructions // - A lot of "educated" guessing -#ifndef _HPHYBRID_H_ -#define _HPHYBRID_H_ +#ifndef MAME_CPU_HPHYBRID_HPHYBRID_H +#define MAME_CPU_HPHYBRID_HPHYBRID_H + +#pragma once // Input lines #define HPHYBRID_IRH 0 // High-level interrupt @@ -37,40 +39,6 @@ // Compose an I/O address from PA & IC #define HP_MAKE_IOADDR(pa , ic) (((pa) << HP_IOADDR_PA_SHIFT) | ((ic) << HP_IOADDR_IC_SHIFT)) -// Addresses of memory mapped registers -#define HP_REG_A_ADDR 0x0000 -#define HP_REG_B_ADDR 0x0001 -#define HP_REG_P_ADDR 0x0002 -#define HP_REG_R_ADDR 0x0003 -#define HP_REG_R4_ADDR 0x0004 -#define HP_REG_R5_ADDR 0x0005 -#define HP_REG_R6_ADDR 0x0006 -#define HP_REG_R7_ADDR 0x0007 -#define HP_REG_IV_ADDR 0x0008 -#define HP_REG_PA_ADDR 0x0009 -#define HP_REG_W_ADDR 0x000A -#define HP_REG_DMAPA_ADDR 0x000B -#define HP_REG_DMAMA_ADDR 0x000C -#define HP_REG_DMAC_ADDR 0x000D -#define HP_REG_C_ADDR 0x000e -#define HP_REG_D_ADDR 0x000f -#define HP_REG_AR2_ADDR 0x0010 -#define HP_REG_SE_ADDR 0x0014 -#define HP_REG_R25_ADDR 0x0015 -#define HP_REG_R26_ADDR 0x0016 -#define HP_REG_R27_ADDR 0x0017 -#define HP_REG_R32_ADDR 0x001a -#define HP_REG_R33_ADDR 0x001b -#define HP_REG_R34_ADDR 0x001c -#define HP_REG_R35_ADDR 0x001d -#define HP_REG_R36_ADDR 0x001e -#define HP_REG_R37_ADDR 0x001f -#define HP_REG_LAST_ADDR 0x001f -#define HP_REG_AR1_ADDR 0xfff8 - -#define HP_REG_IV_MASK 0xfff0 -#define HP_REG_PA_MASK 0x000f - // Set boot mode of 5061-3001: either normal (false) or as in HP9845 system (true) #define MCFG_HPHYBRID_SET_9845_BOOT(_mode) \ hp_5061_3001_cpu_device::set_boot_mode_static(*device, _mode); @@ -82,171 +50,171 @@ class hp_hybrid_cpu_device : public cpu_device { public: - DECLARE_WRITE_LINE_MEMBER(dmar_w); - DECLARE_WRITE_LINE_MEMBER(halt_w); - DECLARE_WRITE_LINE_MEMBER(status_w); - DECLARE_WRITE_LINE_MEMBER(flag_w); + DECLARE_WRITE_LINE_MEMBER(dmar_w); + DECLARE_WRITE_LINE_MEMBER(halt_w); + DECLARE_WRITE_LINE_MEMBER(status_w); + DECLARE_WRITE_LINE_MEMBER(flag_w); - uint8_t pa_r(void) const; + uint8_t pa_r() const; - template static devcb_base &set_pa_changed_func(device_t &device, _Object object) { return downcast(device).m_pa_changed_func.set_callback(object); } + template static devcb_base &set_pa_changed_func(device_t &device, Object &&cb) { return downcast(device).m_pa_changed_func.set_callback(std::forward(cb)); } protected: - hp_hybrid_cpu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname , uint8_t addrwidth); - - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - - // device_execute_interface overrides - virtual uint32_t execute_min_cycles() const override { return 6; } - virtual uint32_t execute_input_lines() const override { return 2; } - virtual uint32_t execute_default_irq_vector() const override { return 0xffff; } - virtual void execute_run() override; - virtual void execute_set_input(int inputnum, int state) override; - - uint16_t execute_one(uint16_t opcode); - uint16_t execute_one_sub(uint16_t opcode); - // Execute an instruction that doesn't belong to either BPC or IOC - virtual uint16_t execute_no_bpc_ioc(uint16_t opcode) = 0; - - // device_memory_interface overrides - virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_0) const override { return (spacenum == AS_PROGRAM) ? &m_program_config : ( (spacenum == AS_IO) ? &m_io_config : nullptr ); } - - // device_state_interface overrides - virtual void state_string_export(const device_state_entry &entry, std::string &str) const override; - - // device_disasm_interface overrides - virtual uint32_t disasm_min_opcode_bytes() const override { return 2; } - virtual uint32_t disasm_max_opcode_bytes() const override { return 2; } - virtual offs_t disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) override; - - // Different cases of memory access - // See patent @ pg 361 - typedef enum { - AEC_CASE_A, // Instr. fetches, non-base page fetches of link pointers, BPC direct non-base page accesses - AEC_CASE_B, // Base page fetches of link pointers, BPC direct base page accesses - AEC_CASE_C, // IOC, EMC & BPC indirect final destination accesses - AEC_CASE_D // DMA accesses - } aec_cases_t; - - // do memory address extension - virtual uint32_t add_mae(aec_cases_t aec_case , uint16_t addr) = 0; - - uint16_t remove_mae(uint32_t addr); - - uint16_t RM(aec_cases_t aec_case , uint16_t addr); - uint16_t RM(uint32_t addr); - virtual uint16_t read_non_common_reg(uint16_t addr) = 0; - - void WM(aec_cases_t aec_case , uint16_t addr , uint16_t v); - void WM(uint32_t addr , uint16_t v); - virtual void write_non_common_reg(uint16_t addr , uint16_t v) = 0; - - uint16_t fetch(void); - - uint16_t get_skip_addr(uint16_t opcode , bool condition) const; - - devcb_write8 m_pa_changed_func; - - int m_icount; - bool m_forced_bsc_25; - - // State of processor - uint16_t m_reg_A; // Register A - uint16_t m_reg_B; // Register B - uint16_t m_reg_P; // Register P - uint16_t m_reg_R; // Register R - uint16_t m_reg_C; // Register C - uint16_t m_reg_D; // Register D - uint16_t m_reg_IV; // Register IV - uint16_t m_reg_W; // Register W - uint8_t m_reg_PA[ HPHYBRID_INT_LVLS + 1 ]; // Stack of register PA (4 bit-long) - uint32_t m_flags; // Flags - uint8_t m_dmapa; // DMA peripheral address (4 bits) - uint16_t m_dmama; // DMA address - uint16_t m_dmac; // DMA counter - uint16_t m_reg_I; // Instruction register - uint32_t m_genpc; // Full PC + hp_hybrid_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint8_t addrwidth); + + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + + // device_execute_interface overrides + virtual uint32_t execute_min_cycles() const override { return 6; } + virtual uint32_t execute_input_lines() const override { return 2; } + virtual uint32_t execute_default_irq_vector() const override { return 0xffff; } + virtual void execute_run() override; + virtual void execute_set_input(int inputnum, int state) override; + + uint16_t execute_one(uint16_t opcode); + uint16_t execute_one_sub(uint16_t opcode); + // Execute an instruction that doesn't belong to either BPC or IOC + virtual uint16_t execute_no_bpc_ioc(uint16_t opcode) = 0; + + // device_memory_interface overrides + virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_0) const override { return (spacenum == AS_PROGRAM) ? &m_program_config : ( (spacenum == AS_IO) ? &m_io_config : nullptr ); } + + // device_state_interface overrides + virtual void state_string_export(const device_state_entry &entry, std::string &str) const override; + + // device_disasm_interface overrides + virtual uint32_t disasm_min_opcode_bytes() const override { return 2; } + virtual uint32_t disasm_max_opcode_bytes() const override { return 2; } + virtual offs_t disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) override; + + // Different cases of memory access + // See patent @ pg 361 + typedef enum { + AEC_CASE_A, // Instr. fetches, non-base page fetches of link pointers, BPC direct non-base page accesses + AEC_CASE_B, // Base page fetches of link pointers, BPC direct base page accesses + AEC_CASE_C, // IOC, EMC & BPC indirect final destination accesses + AEC_CASE_D // DMA accesses + } aec_cases_t; + + // do memory address extension + virtual uint32_t add_mae(aec_cases_t aec_case , uint16_t addr) = 0; + + uint16_t remove_mae(uint32_t addr); + + uint16_t RM(aec_cases_t aec_case , uint16_t addr); + uint16_t RM(uint32_t addr); + virtual uint16_t read_non_common_reg(uint16_t addr) = 0; + + void WM(aec_cases_t aec_case , uint16_t addr , uint16_t v); + void WM(uint32_t addr , uint16_t v); + virtual void write_non_common_reg(uint16_t addr , uint16_t v) = 0; + + uint16_t fetch(); + + uint16_t get_skip_addr(uint16_t opcode , bool condition) const; + + devcb_write8 m_pa_changed_func; + + int m_icount; + bool m_forced_bsc_25; + + // State of processor + uint16_t m_reg_A; // Register A + uint16_t m_reg_B; // Register B + uint16_t m_reg_P; // Register P + uint16_t m_reg_R; // Register R + uint16_t m_reg_C; // Register C + uint16_t m_reg_D; // Register D + uint16_t m_reg_IV; // Register IV + uint16_t m_reg_W; // Register W + uint8_t m_reg_PA[ HPHYBRID_INT_LVLS + 1 ]; // Stack of register PA (4 bit-long) + uint32_t m_flags; // Flags + uint8_t m_dmapa; // DMA peripheral address (4 bits) + uint16_t m_dmama; // DMA address + uint16_t m_dmac; // DMA counter + uint16_t m_reg_I; // Instruction register + uint32_t m_genpc; // Full PC private: - address_space_config m_program_config; - address_space_config m_io_config; - - address_space *m_program; - direct_read_data *m_direct; - address_space *m_io; - - uint32_t get_ea(uint16_t opcode); - void do_add(uint16_t& addend1 , uint16_t addend2); - uint16_t get_skip_addr_sc(uint16_t opcode , uint16_t& v , unsigned n); - uint16_t get_skip_addr_sc(uint16_t opcode , uint32_t& v , unsigned n); - void do_pw(uint16_t opcode); - void check_for_interrupts(void); - virtual void enter_isr(void); - void handle_dma(void); - - uint16_t RIO(uint8_t pa , uint8_t ic); - void WIO(uint8_t pa , uint8_t ic , uint16_t v); + address_space_config m_program_config; + address_space_config m_io_config; + + address_space *m_program; + direct_read_data *m_direct; + address_space *m_io; + + uint32_t get_ea(uint16_t opcode); + void do_add(uint16_t& addend1 , uint16_t addend2); + uint16_t get_skip_addr_sc(uint16_t opcode , uint16_t& v , unsigned n); + uint16_t get_skip_addr_sc(uint16_t opcode , uint32_t& v , unsigned n); + void do_pw(uint16_t opcode); + void check_for_interrupts(); + virtual void enter_isr(); + void handle_dma(); + + uint16_t RIO(uint8_t pa , uint8_t ic); + void WIO(uint8_t pa , uint8_t ic , uint16_t v); }; class hp_5061_3001_cpu_device : public hp_hybrid_cpu_device { public: - hp_5061_3001_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + hp_5061_3001_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); static void set_boot_mode_static(device_t &device, bool mode) { downcast(device).m_boot_mode = mode; } protected: - virtual void device_start() override; - virtual void device_reset() override; - virtual uint32_t execute_max_cycles() const override { return 237; } // FMP 15 - - static uint8_t do_dec_shift_r(uint8_t d1 , uint64_t& mantissa); - static uint8_t do_dec_shift_l(uint8_t d12 , uint64_t& mantissa); - uint64_t get_ar1(void); - void set_ar1(uint64_t v); - uint64_t get_ar2(void) const; - void set_ar2(uint64_t v); - uint64_t do_mrxy(uint64_t ar); - bool do_dec_add(bool carry_in , uint64_t& a , uint64_t b); - void do_mpy(void); - - virtual uint16_t execute_no_bpc_ioc(uint16_t opcode) override; - virtual offs_t disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) override; - virtual uint32_t add_mae(aec_cases_t aec_case, uint16_t addr) override; - virtual uint16_t read_non_common_reg(uint16_t addr) override; - virtual void write_non_common_reg(uint16_t addr , uint16_t v) override; + virtual void device_start() override; + virtual void device_reset() override; + virtual uint32_t execute_max_cycles() const override { return 237; } // FMP 15 + + static uint8_t do_dec_shift_r(uint8_t d1 , uint64_t& mantissa); + static uint8_t do_dec_shift_l(uint8_t d12 , uint64_t& mantissa); + uint64_t get_ar1(); + void set_ar1(uint64_t v); + uint64_t get_ar2() const; + void set_ar2(uint64_t v); + uint64_t do_mrxy(uint64_t ar); + bool do_dec_add(bool carry_in , uint64_t& a , uint64_t b); + void do_mpy(); + + virtual uint16_t execute_no_bpc_ioc(uint16_t opcode) override; + virtual offs_t disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) override; + virtual uint32_t add_mae(aec_cases_t aec_case, uint16_t addr) override; + virtual uint16_t read_non_common_reg(uint16_t addr) override; + virtual void write_non_common_reg(uint16_t addr , uint16_t v) override; private: - bool m_boot_mode; + bool m_boot_mode; - // Additional state of processor - uint16_t m_reg_ar2[ 4 ]; // AR2 register - uint16_t m_reg_se; // SE register (4 bits) - uint16_t m_reg_r25; // R25 register - uint16_t m_reg_r26; // R26 register - uint16_t m_reg_r27; // R27 register - uint16_t m_reg_aec[ HP_REG_R37_ADDR - HP_REG_R32_ADDR + 1 ]; // AEC registers R32-R37 + // Additional state of processor + uint16_t m_reg_ar2[ 4 ]; // AR2 register + uint16_t m_reg_se; // SE register (4 bits) + uint16_t m_reg_r25; // R25 register + uint16_t m_reg_r26; // R26 register + uint16_t m_reg_r27; // R27 register + uint16_t m_reg_aec[ 37 - 32 + 1 ]; // AEC registers R32-R37 - virtual void enter_isr(void) override; + virtual void enter_isr() override; }; class hp_5061_3011_cpu_device : public hp_hybrid_cpu_device { public: - hp_5061_3011_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + hp_5061_3011_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); protected: - virtual uint32_t execute_max_cycles() const override { return 25; } - virtual uint16_t execute_no_bpc_ioc(uint16_t opcode) override; - virtual uint32_t add_mae(aec_cases_t aec_case , uint16_t addr) override; - virtual uint16_t read_non_common_reg(uint16_t addr) override; - virtual void write_non_common_reg(uint16_t addr , uint16_t v) override; + virtual uint32_t execute_max_cycles() const override { return 25; } + virtual uint16_t execute_no_bpc_ioc(uint16_t opcode) override; + virtual uint32_t add_mae(aec_cases_t aec_case , uint16_t addr) override; + virtual uint16_t read_non_common_reg(uint16_t addr) override; + virtual void write_non_common_reg(uint16_t addr , uint16_t v) override; }; -extern const device_type HP_5061_3001; -extern const device_type HP_5061_3011; +DECLARE_DEVICE_TYPE(HP_5061_3001, hp_5061_3001_cpu_device) +DECLARE_DEVICE_TYPE(HP_5061_3011, hp_5061_3011_cpu_device) -#endif /* _HPHYBRID_H_ */ +#endif // MAME_CPU_HPHYBRID_HPHYBRID_H diff --git a/src/devices/cpu/hphybrid/hphybrid_dasm.cpp b/src/devices/cpu/hphybrid/hphybrid_dasm.cpp index e825e31c36c..58d800a3722 100644 --- a/src/devices/cpu/hphybrid/hphybrid_dasm.cpp +++ b/src/devices/cpu/hphybrid/hphybrid_dasm.cpp @@ -5,8 +5,11 @@ // ******************************************************************************** #include "emu.h" -#include "debugger.h" #include "hphybrid.h" +#include "debugger.h" + +#include "hphybrid_defs.h" + typedef void (*fn_dis_param)(std::ostream &stream , offs_t pc , uint16_t opcode , bool is_3001); diff --git a/src/devices/cpu/hphybrid/hphybrid_defs.h b/src/devices/cpu/hphybrid/hphybrid_defs.h new file mode 100644 index 00000000000..634a74b94a4 --- /dev/null +++ b/src/devices/cpu/hphybrid/hphybrid_defs.h @@ -0,0 +1,38 @@ +#ifndef MAME_CPU_HPHYBRID_HPHYBRID_DEFS_H +#define MAME_CPU_HPHYBRID_HPHYBRID_DEFS_H + +// Addresses of memory mapped registers +#define HP_REG_A_ADDR 0x0000 +#define HP_REG_B_ADDR 0x0001 +#define HP_REG_P_ADDR 0x0002 +#define HP_REG_R_ADDR 0x0003 +#define HP_REG_R4_ADDR 0x0004 +#define HP_REG_R5_ADDR 0x0005 +#define HP_REG_R6_ADDR 0x0006 +#define HP_REG_R7_ADDR 0x0007 +#define HP_REG_IV_ADDR 0x0008 +#define HP_REG_PA_ADDR 0x0009 +#define HP_REG_W_ADDR 0x000A +#define HP_REG_DMAPA_ADDR 0x000B +#define HP_REG_DMAMA_ADDR 0x000C +#define HP_REG_DMAC_ADDR 0x000D +#define HP_REG_C_ADDR 0x000e +#define HP_REG_D_ADDR 0x000f +#define HP_REG_AR2_ADDR 0x0010 +#define HP_REG_SE_ADDR 0x0014 +#define HP_REG_R25_ADDR 0x0015 +#define HP_REG_R26_ADDR 0x0016 +#define HP_REG_R27_ADDR 0x0017 +#define HP_REG_R32_ADDR 0x001a +#define HP_REG_R33_ADDR 0x001b +#define HP_REG_R34_ADDR 0x001c +#define HP_REG_R35_ADDR 0x001d +#define HP_REG_R36_ADDR 0x001e +#define HP_REG_R37_ADDR 0x001f +#define HP_REG_LAST_ADDR 0x001f +#define HP_REG_AR1_ADDR 0xfff8 + +#define HP_REG_IV_MASK 0xfff0 +#define HP_REG_PA_MASK 0x000f + +#endif // MAME_CPU_HPHYBRID_HPHYBRID_DEFS_H diff --git a/src/devices/cpu/i386/i386.cpp b/src/devices/cpu/i386/i386.cpp index aeccd66818a..69ed56d46fc 100644 --- a/src/devices/cpu/i386/i386.cpp +++ b/src/devices/cpu/i386/i386.cpp @@ -18,45 +18,37 @@ */ #include "emu.h" +#include "i386.h" + #include "debugger.h" #include "i386priv.h" -#include "i386.h" #include "debug/debugcpu.h" /* seems to be defined on mingw-gcc */ #undef i386 -const device_type I386 = device_creator; -const device_type I386SX = device_creator; -const device_type I486 = device_creator; -const device_type I486DX4 = device_creator; -const device_type PENTIUM = device_creator; -const device_type MEDIAGX = device_creator; -const device_type PENTIUM_PRO = device_creator; -const device_type PENTIUM_MMX = device_creator; -const device_type PENTIUM2 = device_creator; -const device_type PENTIUM3 = device_creator; -const device_type PENTIUM4 = device_creator; +DEFINE_DEVICE_TYPE(I386, i386_device, "i386", "I386") +DEFINE_DEVICE_TYPE(I386SX, i386sx_device, "i386sx", "I386SX") +DEFINE_DEVICE_TYPE(I486, i486_device, "i486", "I486") +DEFINE_DEVICE_TYPE(I486DX4, i486dx4_device, "i486dx4", "I486DX4") +DEFINE_DEVICE_TYPE(PENTIUM, pentium_device, "pentium", "Pentium") +DEFINE_DEVICE_TYPE(MEDIAGX, mediagx_device, "mediagx", "Cyrix MediaGX") +DEFINE_DEVICE_TYPE(PENTIUM_PRO, pentium_pro_device, "pentium_pro", "Pentium Pro") +DEFINE_DEVICE_TYPE(PENTIUM_MMX, pentium_mmx_device, "pentium_mmx", "Pentium MMX") +DEFINE_DEVICE_TYPE(PENTIUM2, pentium2_device, "pentium2", "Pentium II") +DEFINE_DEVICE_TYPE(PENTIUM3, pentium3_device, "pentium3", "Pentium III") +DEFINE_DEVICE_TYPE(PENTIUM4, pentium4_device, "pentium4", "Pentium 4") i386_device::i386_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cpu_device(mconfig, I386, "I386", tag, owner, clock, "i386", __FILE__) - , device_vtlb_interface(mconfig, *this, AS_PROGRAM) - , m_program_config("program", ENDIANNESS_LITTLE, 32, 32, 0) - , m_io_config("io", ENDIANNESS_LITTLE, 32, 16, 0) - , m_smiact(*this) + : i386_device(mconfig, I386, tag, owner, clock, 32, 32, 32) { - m_program_config.m_logaddr_width = 32; - m_program_config.m_page_shift = 12; - - // 32 unified - set_vtlb_dynamic_entries(32); } -i386_device::i386_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source, int program_data_width, int program_addr_width, int io_data_width) - : cpu_device(mconfig, type, name, tag, owner, clock, shortname, source) +i386_device::i386_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int program_data_width, int program_addr_width, int io_data_width) + : cpu_device(mconfig, type, tag, owner, clock) , device_vtlb_interface(mconfig, *this, AS_PROGRAM) , m_program_config("program", ENDIANNESS_LITTLE, program_data_width, program_addr_width, 0) , m_io_config("io", ENDIANNESS_LITTLE, io_data_width, 16, 0) @@ -69,73 +61,71 @@ i386_device::i386_device(const machine_config &mconfig, device_type type, const set_vtlb_dynamic_entries(32); } -i386SX_device::i386SX_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : i386_device(mconfig, I386SX, "I386SX", tag, owner, clock, "i386sx", __FILE__, 16, 24, 16) +i386sx_device::i386sx_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : i386_device(mconfig, I386SX, tag, owner, clock, 16, 24, 16) { } i486_device::i486_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : i386_device(mconfig, I486, "I486", tag, owner, clock, "i486", __FILE__) + : i486_device(mconfig, I486, tag, owner, clock) { } -i486_device::i486_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : i386_device(mconfig, type, name, tag, owner, clock, shortname, source) +i486_device::i486_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : i386_device(mconfig, type, tag, owner, clock, 32, 32, 32) { } i486dx4_device::i486dx4_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : i486_device(mconfig, I486DX4, "I486DX4", tag, owner, clock, "i486dx4", __FILE__) + : i486_device(mconfig, I486DX4, tag, owner, clock) { } pentium_device::pentium_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : i386_device(mconfig, PENTIUM, "PENTIUM", tag, owner, clock, "pentium", __FILE__) + : pentium_device(mconfig, PENTIUM, tag, owner, clock) { - // 64 dtlb small, 8 dtlb large, 32 itlb - set_vtlb_dynamic_entries(96); } -pentium_device::pentium_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : i386_device(mconfig, type, name, tag, owner, clock, shortname, source) +pentium_device::pentium_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : i386_device(mconfig, type, tag, owner, clock, 32, 32, 32) { // 64 dtlb small, 8 dtlb large, 32 itlb set_vtlb_dynamic_entries(96); } mediagx_device::mediagx_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : i386_device(mconfig, MEDIAGX, "MEDIAGX", tag, owner, clock, "mediagx", __FILE__) + : i386_device(mconfig, MEDIAGX, tag, owner, clock, 32, 32, 32) { } pentium_pro_device::pentium_pro_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : pentium_device(mconfig, PENTIUM_PRO, "Pentium Pro", tag, owner, clock, "pentium_pro", __FILE__) + : pentium_device(mconfig, PENTIUM_PRO, tag, owner, clock) { } pentium_mmx_device::pentium_mmx_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : pentium_device(mconfig, PENTIUM_MMX, "Pentium MMX", tag, owner, clock, "pentium_mmx", __FILE__) + : pentium_device(mconfig, PENTIUM_MMX, tag, owner, clock) { // 64 dtlb small, 8 dtlb large, 32 itlb small, 2 itlb large set_vtlb_dynamic_entries(96); } pentium2_device::pentium2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : pentium_device(mconfig, PENTIUM2, "Pentium II", tag, owner, clock, "pentium2", __FILE__) + : pentium_device(mconfig, PENTIUM2, tag, owner, clock) { // 64 dtlb small, 8 dtlb large, 32 itlb small, 2 itlb large set_vtlb_dynamic_entries(96); } pentium3_device::pentium3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : pentium_device(mconfig, PENTIUM3, "Pentium III", tag, owner, clock, "pentium3", __FILE__) + : pentium_device(mconfig, PENTIUM3, tag, owner, clock) { // 64 dtlb small, 8 dtlb large, 32 itlb small, 2 itlb large set_vtlb_dynamic_entries(96); } pentium4_device::pentium4_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : pentium_device(mconfig, PENTIUM4, "Pentium 4", tag, owner, clock, "pentium4", __FILE__) + : pentium_device(mconfig, PENTIUM4, tag, owner, clock) { // 128 dtlb, 64 itlb set_vtlb_dynamic_entries(196); diff --git a/src/devices/cpu/i386/i386.h b/src/devices/cpu/i386/i386.h index 6f2397a6f38..401619e9602 100644 --- a/src/devices/cpu/i386/i386.h +++ b/src/devices/cpu/i386/i386.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Ville Linde, Barry Rodewald, Carl, Philip Bennett -#pragma once +#ifndef MAME_CPU_I386_I386_H +#define MAME_CPU_I386_I386_H -#ifndef __I386INTF_H__ -#define __I386INTF_H__ +#pragma once // SoftFloat 2 lacks an include guard #ifndef softfloat_h @@ -34,10 +34,9 @@ class i386_device : public cpu_device, public device_vtlb_interface public: // construction/destruction i386_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - i386_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source, int program_data_width=32, int program_addr_width=32, int io_data_width=32); // static configuration helpers - template static devcb_base &set_smiact(device_t &device, _Object object) { return downcast(device).m_smiact.set_callback(object); } + template static devcb_base &set_smiact(device_t &device, Object &&cb) { return downcast(device).m_smiact.set_callback(std::forward(cb)); } uint64_t debug_segbase(symbol_table &table, int params, const uint64_t *param); uint64_t debug_seglimit(symbol_table &table, int params, const uint64_t *param); @@ -45,6 +44,8 @@ public: uint64_t debug_virttophys(symbol_table &table, int params, const uint64_t *param); protected: + i386_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int program_data_width, int program_addr_width, int io_data_width); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -58,7 +59,7 @@ protected: virtual void execute_set_input(int inputnum, int state) override; // device_memory_interface overrides - virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_0) const override { return (spacenum == AS_PROGRAM) ? &m_program_config : ( (spacenum == AS_IO) ? &m_io_config : nullptr ); } + virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_0) const override { return (spacenum == AS_PROGRAM) ? &m_program_config : (spacenum == AS_IO) ? &m_io_config : nullptr; } virtual bool memory_translate(address_spacenum spacenum, int intention, offs_t &address) override; // device_state_interface overrides @@ -78,68 +79,68 @@ protected: std::unique_ptr cycle_table_pm[X86_NUM_CPUS]; -union I386_GPR { - uint32_t d[8]; - uint16_t w[16]; - uint8_t b[32]; -}; + union I386_GPR { + uint32_t d[8]; + uint16_t w[16]; + uint8_t b[32]; + }; -struct I386_SREG { - uint16_t selector; - uint16_t flags; - uint32_t base; - uint32_t limit; - int d; // Operand size - bool valid; -}; + struct I386_SREG { + uint16_t selector; + uint16_t flags; + uint32_t base; + uint32_t limit; + int d; // Operand size + bool valid; + }; -struct I386_SYS_TABLE { - uint32_t base; - uint16_t limit; -}; + struct I386_SYS_TABLE { + uint32_t base; + uint16_t limit; + }; -struct I386_SEG_DESC { - uint16_t segment; - uint16_t flags; - uint32_t base; - uint32_t limit; -}; + struct I386_SEG_DESC { + uint16_t segment; + uint16_t flags; + uint32_t base; + uint32_t limit; + }; -union XMM_REG { - uint8_t b[16]; - uint16_t w[8]; - uint32_t d[4]; - uint64_t q[2]; - int8_t c[16]; - int16_t s[8]; - int32_t i[4]; - int64_t l[2]; - float f[4]; - double f64[2]; -}; + union XMM_REG { + uint8_t b[16]; + uint16_t w[8]; + uint32_t d[4]; + uint64_t q[2]; + int8_t c[16]; + int16_t s[8]; + int32_t i[4]; + int64_t l[2]; + float f[4]; + double f64[2]; + }; -union MMX_REG { - uint32_t d[2]; - int32_t i[2]; - uint16_t w[4]; - int16_t s[4]; - uint8_t b[8]; - int8_t c[8]; - float f[2]; - uint64_t q; - int64_t l; -}; + union MMX_REG { + uint32_t d[2]; + int32_t i[2]; + uint16_t w[4]; + int16_t s[4]; + uint8_t b[8]; + int8_t c[8]; + float f[2]; + uint64_t q; + int64_t l; + }; -struct I386_CALL_GATE -{ - uint16_t segment; - uint16_t selector; - uint32_t offset; - uint8_t ar; // access rights - uint8_t dpl; - uint8_t dword_count; - uint8_t present; -}; + struct I386_CALL_GATE + { + uint16_t segment; + uint16_t selector; + uint32_t offset; + uint8_t ar; // access rights + uint8_t dpl; + uint8_t dword_count; + uint8_t present; + }; typedef void (i386_device::*i386_modrm_func)(uint8_t modrm); typedef void (i386_device::*i386_op_func)(); @@ -1424,11 +1425,11 @@ struct I386_CALL_GATE }; -class i386SX_device : public i386_device +class i386sx_device : public i386_device { public: // construction/destruction - i386SX_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + i386sx_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; @@ -1437,9 +1438,10 @@ class i486_device : public i386_device public: // construction/destruction i486_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - i486_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); protected: + i486_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; virtual void device_reset() override; }; @@ -1460,9 +1462,10 @@ class pentium_device : public i386_device public: // construction/destruction pentium_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - pentium_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); protected: + pentium_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void execute_set_input(int inputnum, int state) override; virtual void device_start() override; virtual void device_reset() override; @@ -1541,17 +1544,16 @@ protected: }; -extern const device_type I386; -extern const device_type I386SX; -extern const device_type I486; -extern const device_type I486DX4; -extern const device_type PENTIUM; -extern const device_type MEDIAGX; -extern const device_type PENTIUM_PRO; -extern const device_type PENTIUM_MMX; -extern const device_type PENTIUM2; -extern const device_type PENTIUM3; -extern const device_type PENTIUM4; - +DECLARE_DEVICE_TYPE(I386, i386_device) +DECLARE_DEVICE_TYPE(I386SX, i386sx_device) +DECLARE_DEVICE_TYPE(I486, i486_device) +DECLARE_DEVICE_TYPE(I486DX4, i486dx4_device) +DECLARE_DEVICE_TYPE(PENTIUM, pentium_device) +DECLARE_DEVICE_TYPE(MEDIAGX, mediagx_device) +DECLARE_DEVICE_TYPE(PENTIUM_PRO, pentium_pro_device) +DECLARE_DEVICE_TYPE(PENTIUM_MMX, pentium_mmx_device) +DECLARE_DEVICE_TYPE(PENTIUM2, pentium2_device) +DECLARE_DEVICE_TYPE(PENTIUM3, pentium3_device) +DECLARE_DEVICE_TYPE(PENTIUM4, pentium4_device) -#endif /* __I386INTF_H__ */ +#endif // MAME_CPU_I386_I386_H diff --git a/src/devices/cpu/i4004/i4004.cpp b/src/devices/cpu/i4004/i4004.cpp index 58fce33bdc4..782e59d6d84 100644 --- a/src/devices/cpu/i4004/i4004.cpp +++ b/src/devices/cpu/i4004/i4004.cpp @@ -8,8 +8,8 @@ * *****************************************************************************/ #include "emu.h" -#include "debugger.h" #include "i4004.h" +#include "debugger.h" static const uint8_t kbp_table[] = { 0x00,0x01,0x02,0x0f,0x03,0x0f,0x0f,0x0f,0x04,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f }; @@ -21,11 +21,11 @@ static const uint8_t kbp_table[] = { 0x00,0x01,0x02,0x0f,0x03,0x0f,0x0f,0x0f,0x0 #define GET_PC (m_ADDR[m_pc_pos]) -const device_type I4004 = device_creator; +DEFINE_DEVICE_TYPE(I4004, i4004_cpu_device, "i4004", "Intel 4004") i4004_cpu_device::i4004_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cpu_device(mconfig, I4004, "Intel I4004", tag, owner, clock, "i4004", __FILE__) + : cpu_device(mconfig, I4004, tag, owner, clock) , m_program_config("program", ENDIANNESS_LITTLE, 8, 12, 0) , m_io_config("io", ENDIANNESS_LITTLE, 8, 6, 0) , m_data_config("data", ENDIANNESS_LITTLE, 8, 12, 0), m_A(0), m_C(0), m_TEST(0), m_flags(0), m_program(nullptr), m_direct(nullptr), m_data(nullptr), m_io(nullptr), m_icount(0), m_pc_pos(0), m_addr_mask(0) diff --git a/src/devices/cpu/i4004/i4004.h b/src/devices/cpu/i4004/i4004.h index 3e90ba466b8..42dd51cd0ca 100644 --- a/src/devices/cpu/i4004/i4004.h +++ b/src/devices/cpu/i4004/i4004.h @@ -1,8 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Miodrag Milanovic -#ifndef __I4004_H__ -#define __I4004_H__ +#ifndef MAME_CPU_I4004_I4004_H +#define MAME_CPU_I4004_I4004_H +#pragma once /*************************************************************************** @@ -101,7 +102,6 @@ protected: }; -extern const device_type I4004; +DECLARE_DEVICE_TYPE(I4004, i4004_cpu_device) - -#endif +#endif // MAME_CPU_I4004_I4004_H diff --git a/src/devices/cpu/i8008/i8008.cpp b/src/devices/cpu/i8008/i8008.cpp index 18bf62d4f46..f5e6aa4b62e 100644 --- a/src/devices/cpu/i8008/i8008.cpp +++ b/src/devices/cpu/i8008/i8008.cpp @@ -8,8 +8,8 @@ * *****************************************************************************/ #include "emu.h" -#include "debugger.h" #include "i8008.h" +#include "debugger.h" //************************************************************************** // MACROS @@ -24,7 +24,7 @@ //************************************************************************** // device type definition -const device_type I8008 = device_creator; +DEFINE_DEVICE_TYPE(I8008, i8008_device, "i8008", "Intel 8008") //************************************************************************** // DEVICE INTERFACE @@ -34,11 +34,11 @@ const device_type I8008 = device_creator; // i8008_device - constructor //------------------------------------------------- i8008_device::i8008_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cpu_device(mconfig, I8008, "i8008", tag, owner, clock, "i8008", __FILE__), - m_program_config("program", ENDIANNESS_LITTLE, 8, 14), - m_io_config("io", ENDIANNESS_LITTLE, 8, 8), - m_program(nullptr), - m_direct(nullptr) + : cpu_device(mconfig, I8008, tag, owner, clock) + , m_program_config("program", ENDIANNESS_LITTLE, 8, 14) + , m_io_config("io", ENDIANNESS_LITTLE, 8, 8) + , m_program(nullptr) + , m_direct(nullptr) { // set our instruction counter m_icountptr = &m_icount; diff --git a/src/devices/cpu/i8008/i8008.h b/src/devices/cpu/i8008/i8008.h index 7f45e3dbb52..60b2414d61d 100644 --- a/src/devices/cpu/i8008/i8008.h +++ b/src/devices/cpu/i8008/i8008.h @@ -1,25 +1,14 @@ // license:BSD-3-Clause // copyright-holders:Miodrag Milanovic -#ifndef __I8008_H__ -#define __I8008_H__ +#ifndef MAME_CPU_I8008_I8008_H +#define MAME_CPU_I8008_I8008_H -//************************************************************************** -// ENUMERATIONS -//************************************************************************** - -enum -{ - I8008_PC, - I8008_A,I8008_B,I8008_C,I8008_D,I8008_E,I8008_H,I8008_L, - I8008_ADDR1,I8008_ADDR2,I8008_ADDR3,I8008_ADDR4,I8008_ADDR5,I8008_ADDR6,I8008_ADDR7,I8008_ADDR8 -}; +#pragma once //************************************************************************** // TYPE DEFINITIONS //************************************************************************** -class i8008_device; - // ======================> asap_device class i8008_device : public cpu_device { @@ -28,6 +17,13 @@ public: i8008_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); protected: + enum + { + I8008_PC, + I8008_A,I8008_B,I8008_C,I8008_D,I8008_E,I8008_H,I8008_L, + I8008_ADDR1,I8008_ADDR2,I8008_ADDR3,I8008_ADDR4,I8008_ADDR5,I8008_ADDR6,I8008_ADDR7,I8008_ADDR8 + }; + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -94,6 +90,6 @@ protected: }; // device type definition -extern const device_type I8008; +DECLARE_DEVICE_TYPE(I8008, i8008_device) -#endif +#endif // MAME_CPU_I8008_I8008_H diff --git a/src/devices/cpu/i8085/i8085.cpp b/src/devices/cpu/i8085/i8085.cpp index 342bf445d5a..23362ba1242 100644 --- a/src/devices/cpu/i8085/i8085.cpp +++ b/src/devices/cpu/i8085/i8085.cpp @@ -106,8 +106,7 @@ #include "i8085cpu.h" #define VERBOSE 0 - -#define LOG(x) do { if (VERBOSE) logerror x; } while (0) +#include "logmacro.h" #define CPUTYPE_8080 0 #define CPUTYPE_8085 1 @@ -177,26 +176,19 @@ M_CALL 8085 11 +7(18) -2(9) */ -const device_type I8080 = device_creator; -const device_type I8080A = device_creator; -const device_type I8085A = device_creator; +DEFINE_DEVICE_TYPE(I8080, i8080_cpu_device, "i8080", "8080") +DEFINE_DEVICE_TYPE(I8080A, i8080a_cpu_device, "i8080a", "8080A") +DEFINE_DEVICE_TYPE(I8085A, i8085a_cpu_device, "i8085a", "8085A") i8085a_cpu_device::i8085a_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cpu_device(mconfig, I8085A, "8085A", tag, owner, clock, "i8085a", __FILE__) - , m_program_config("program", ENDIANNESS_LITTLE, 8, 16, 0) - , m_io_config("io", ENDIANNESS_LITTLE, 8, 8, 0) - , m_out_status_func(*this) - , m_out_inte_func(*this) - , m_in_sid_func(*this) - , m_out_sod_func(*this) - , m_cputype(CPUTYPE_8085) + : i8085a_cpu_device(mconfig, I8085A, tag, owner, clock, CPUTYPE_8085) { } -i8085a_cpu_device::i8085a_cpu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source, int cputype) - : cpu_device(mconfig, type, name, tag, owner, clock, shortname, source) +i8085a_cpu_device::i8085a_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int cputype) + : cpu_device(mconfig, type, tag, owner, clock) , m_program_config("program", ENDIANNESS_LITTLE, 8, 16, 0) , m_io_config("io", ENDIANNESS_LITTLE, 8, 8, 0) , m_out_status_func(*this) @@ -209,13 +201,13 @@ i8085a_cpu_device::i8085a_cpu_device(const machine_config &mconfig, device_type i8080_cpu_device::i8080_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : i8085a_cpu_device(mconfig, I8080, "8080", tag, owner, clock, "i8080", __FILE__, CPUTYPE_8080) + : i8085a_cpu_device(mconfig, I8080, tag, owner, clock, CPUTYPE_8080) { } i8080a_cpu_device::i8080a_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : i8085a_cpu_device(mconfig, I8080A, "8080A", tag, owner, clock, "i8080a", __FILE__, CPUTYPE_8080) + : i8085a_cpu_device(mconfig, I8080A, tag, owner, clock, CPUTYPE_8080) { } @@ -429,7 +421,7 @@ void i8085a_cpu_device::check_for_interrupts() break; default: - LOG(("i8085 take int $%02x\n", vector)); + LOG("i8085 take int $%02x\n", vector); execute_one(vector & 0xff); break; } diff --git a/src/devices/cpu/i8085/i8085.h b/src/devices/cpu/i8085/i8085.h index 8f7822057b0..96f49d9e107 100644 --- a/src/devices/cpu/i8085/i8085.h +++ b/src/devices/cpu/i8085/i8085.h @@ -1,36 +1,19 @@ // license:BSD-3-Clause // copyright-holders:Juergen Buchmueller, hap -#ifndef __I8085_H__ -#define __I8085_H__ +#ifndef MAME_CPU_I8085_I8085_H +#define MAME_CPU_I8085_I8085_H /*************************************************************************** CONSTANTS ***************************************************************************/ -enum -{ - I8085_PC, I8085_SP, I8085_AF, I8085_BC, I8085_DE, I8085_HL, - I8085_A, I8085_B, I8085_C, I8085_D, I8085_E, I8085_F, I8085_H, I8085_L, - I8085_STATUS, I8085_SOD, I8085_SID, I8085_INTE, - I8085_HALT, I8085_IM -}; - #define I8085_INTR_LINE 0 #define I8085_RST55_LINE 1 #define I8085_RST65_LINE 2 #define I8085_RST75_LINE 3 -#define I8085_STATUS_INTA 0x01 -#define I8085_STATUS_WO 0x02 -#define I8085_STATUS_STACK 0x04 -#define I8085_STATUS_HLTA 0x08 -#define I8085_STATUS_OUT 0x10 -#define I8085_STATUS_M1 0x20 -#define I8085_STATUS_INP 0x40 -#define I8085_STATUS_MEMR 0x80 - // STATUS changed callback #define MCFG_I8085A_STATUS(_devcb) \ @@ -55,21 +38,42 @@ enum i8085a_cpu_device::static_set_clk_out(*device, clock_update_delegate(&_class::_func, #_class "::" _func, owner)); -class i8085a_cpu_device : public cpu_device +class i8085a_cpu_device : public cpu_device { public: + // FIXME: public because drivers/altair.cpp, drivers/ipc.cpp and drivers/unior.cpp set initial PC through state interface + // should fix boot vector loading in these drivers + // machine/lviv.cpp and machine/poly88.cpp also access registers via state interface when handling snapshot files + enum + { + I8085_PC, I8085_SP, I8085_AF, I8085_BC, I8085_DE, I8085_HL, + I8085_A, I8085_B, I8085_C, I8085_D, I8085_E, I8085_F, I8085_H, I8085_L, + I8085_STATUS, I8085_SOD, I8085_SID, I8085_INTE, + I8085_HALT, I8085_IM + }; + + static constexpr uint8_t STATUS_INTA = 0x01; + static constexpr uint8_t STATUS_WO = 0x02; + static constexpr uint8_t STATUS_STACK = 0x04; + static constexpr uint8_t STATUS_HLTA = 0x08; + static constexpr uint8_t STATUS_OUT = 0x10; + static constexpr uint8_t STATUS_M1 = 0x20; + static constexpr uint8_t STATUS_INP = 0x40; + static constexpr uint8_t STATUS_MEMR = 0x80; + // construction/destruction i8085a_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - i8085a_cpu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source, int cputype); // static configuration helpers - template static devcb_base &set_out_status_func(device_t &device, _Object object) { return downcast(device).m_out_status_func.set_callback(object); } - template static devcb_base &set_out_inte_func(device_t &device, _Object object) { return downcast(device).m_out_inte_func.set_callback(object); } - template static devcb_base &set_in_sid_func(device_t &device, _Object object) { return downcast(device).m_in_sid_func.set_callback(object); } - template static devcb_base &set_out_sod_func(device_t &device, _Object object) { return downcast(device).m_out_sod_func.set_callback(object); } + template static devcb_base &set_out_status_func(device_t &device, Object &&cb) { return downcast(device).m_out_status_func.set_callback(std::forward(cb)); } + template static devcb_base &set_out_inte_func(device_t &device, Object &&cb) { return downcast(device).m_out_inte_func.set_callback(std::forward(cb)); } + template static devcb_base &set_in_sid_func(device_t &device, Object &&cb) { return downcast(device).m_in_sid_func.set_callback(std::forward(cb)); } + template static devcb_base &set_out_sod_func(device_t &device, Object &&cb) { return downcast(device).m_out_sod_func.set_callback(std::forward(cb)); } static void static_set_clk_out(device_t &device, clock_update_delegate &&clk_out) { downcast(device).m_clk_out_func = std::move(clk_out); } protected: + i8085a_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int cputype); + // device-level overrides virtual void device_config_complete() override; virtual void device_clock_changed() override; @@ -180,8 +184,8 @@ protected: }; -extern const device_type I8080; -extern const device_type I8080A; -extern const device_type I8085A; +DECLARE_DEVICE_TYPE(I8080, i8080_cpu_device) +DECLARE_DEVICE_TYPE(I8080A, i8080a_cpu_device) +DECLARE_DEVICE_TYPE(I8085A, i8085a_cpu_device) -#endif +#endif // MAME_CPU_I8085_I8085_H diff --git a/src/devices/cpu/i8089/i8089.cpp b/src/devices/cpu/i8089/i8089.cpp index 9b1ada7b1f6..720110b890d 100644 --- a/src/devices/cpu/i8089/i8089.cpp +++ b/src/devices/cpu/i8089/i8089.cpp @@ -22,7 +22,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type I8089 = device_creator; +DEFINE_DEVICE_TYPE(I8089, i8089_device, "i8089", "I8089") //************************************************************************** @@ -34,7 +34,7 @@ const device_type I8089 = device_creator; //------------------------------------------------- i8089_device::i8089_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - cpu_device(mconfig, I8089, "I8089", tag, owner, clock, "i8089", __FILE__), + cpu_device(mconfig, I8089, tag, owner, clock), m_icount(0), m_ch1(*this, "1"), m_ch2(*this, "2"), @@ -68,29 +68,29 @@ void i8089_device::device_start() state_add(SCB, "SCB", m_scb).mask(0xfffff); state_add(SOC, "SOC", m_soc).mask(0x03).formatstr("%2s"); state_add_divider(DIVIDER1); - state_add(CH1_GA, "CH1 GA", m_ch1->m_r[i8089_channel::GA].w).mask(0xfffff).formatstr("%8s"); - state_add(CH1_GB, "CH1 GB", m_ch1->m_r[i8089_channel::GB].w).mask(0xfffff).formatstr("%8s"); - state_add(CH1_GC, "CH1 GC", m_ch1->m_r[i8089_channel::GC].w).mask(0xfffff).formatstr("%8s"); - state_add(CH1_TP, "CH1 TP", m_ch1->m_r[i8089_channel::TP].w).mask(0xfffff).formatstr("%8s"); - state_add(CH1_BC, "CH1 BC", m_ch1->m_r[i8089_channel::BC].w).mask(0xffff); - state_add(CH1_IX, "CH1 IX", m_ch1->m_r[i8089_channel::IX].w).mask(0xffff); - state_add(CH1_CC, "CH1 CC", m_ch1->m_r[i8089_channel::CC].w).mask(0xffff); - state_add(CH1_MC, "CH1 MC", m_ch1->m_r[i8089_channel::MC].w).mask(0xffff); - state_add(CH1_CP, "CH1 CP", m_ch1->m_r[i8089_channel::CP].w).mask(0xfffff); - state_add(CH1_PP, "CH1 PP", m_ch1->m_r[i8089_channel::PP].w).mask(0xfffff); - state_add(CH1_PSW, "CH1 PSW", m_ch1->m_r[i8089_channel::PSW].w).callimport().callexport().formatstr("%12s"); + state_add(CH1_GA, "CH1 GA", m_ch1->m_r[i8089_channel_device::GA].w).mask(0xfffff).formatstr("%8s"); + state_add(CH1_GB, "CH1 GB", m_ch1->m_r[i8089_channel_device::GB].w).mask(0xfffff).formatstr("%8s"); + state_add(CH1_GC, "CH1 GC", m_ch1->m_r[i8089_channel_device::GC].w).mask(0xfffff).formatstr("%8s"); + state_add(CH1_TP, "CH1 TP", m_ch1->m_r[i8089_channel_device::TP].w).mask(0xfffff).formatstr("%8s"); + state_add(CH1_BC, "CH1 BC", m_ch1->m_r[i8089_channel_device::BC].w).mask(0xffff); + state_add(CH1_IX, "CH1 IX", m_ch1->m_r[i8089_channel_device::IX].w).mask(0xffff); + state_add(CH1_CC, "CH1 CC", m_ch1->m_r[i8089_channel_device::CC].w).mask(0xffff); + state_add(CH1_MC, "CH1 MC", m_ch1->m_r[i8089_channel_device::MC].w).mask(0xffff); + state_add(CH1_CP, "CH1 CP", m_ch1->m_r[i8089_channel_device::CP].w).mask(0xfffff); + state_add(CH1_PP, "CH1 PP", m_ch1->m_r[i8089_channel_device::PP].w).mask(0xfffff); + state_add(CH1_PSW, "CH1 PSW", m_ch1->m_r[i8089_channel_device::PSW].w).callimport().callexport().formatstr("%12s"); state_add_divider(DIVIDER2); - state_add(CH2_GA, "CH2 GA", m_ch2->m_r[i8089_channel::GA].w).mask(0xfffff).formatstr("%8s"); - state_add(CH2_GB, "CH2 GB", m_ch2->m_r[i8089_channel::GB].w).mask(0xfffff).formatstr("%8s"); - state_add(CH2_GC, "CH2 GC", m_ch2->m_r[i8089_channel::GC].w).mask(0xfffff).formatstr("%8s"); - state_add(CH2_TP, "CH2 TP", m_ch2->m_r[i8089_channel::TP].w).mask(0xfffff).formatstr("%8s"); - state_add(CH2_BC, "CH2 BC", m_ch2->m_r[i8089_channel::BC].w).mask(0xffff); - state_add(CH2_IX, "CH2 IX", m_ch2->m_r[i8089_channel::IX].w).mask(0xffff); - state_add(CH2_CC, "CH2 CC", m_ch2->m_r[i8089_channel::CC].w).mask(0xffff); - state_add(CH2_MC, "CH2 MC", m_ch2->m_r[i8089_channel::MC].w).mask(0xffff); - state_add(CH2_CP, "CH2 CP", m_ch2->m_r[i8089_channel::CP].w).mask(0xfffff); - state_add(CH2_PP, "CH2 PP", m_ch2->m_r[i8089_channel::PP].w).mask(0xfffff); - state_add(CH2_PSW, "CH2 PSW", m_ch2->m_r[i8089_channel::PSW].w).callimport().callexport().formatstr("%12s"); + state_add(CH2_GA, "CH2 GA", m_ch2->m_r[i8089_channel_device::GA].w).mask(0xfffff).formatstr("%8s"); + state_add(CH2_GB, "CH2 GB", m_ch2->m_r[i8089_channel_device::GB].w).mask(0xfffff).formatstr("%8s"); + state_add(CH2_GC, "CH2 GC", m_ch2->m_r[i8089_channel_device::GC].w).mask(0xfffff).formatstr("%8s"); + state_add(CH2_TP, "CH2 TP", m_ch2->m_r[i8089_channel_device::TP].w).mask(0xfffff).formatstr("%8s"); + state_add(CH2_BC, "CH2 BC", m_ch2->m_r[i8089_channel_device::BC].w).mask(0xffff); + state_add(CH2_IX, "CH2 IX", m_ch2->m_r[i8089_channel_device::IX].w).mask(0xffff); + state_add(CH2_CC, "CH2 CC", m_ch2->m_r[i8089_channel_device::CC].w).mask(0xffff); + state_add(CH2_MC, "CH2 MC", m_ch2->m_r[i8089_channel_device::MC].w).mask(0xffff); + state_add(CH2_CP, "CH2 CP", m_ch2->m_r[i8089_channel_device::CP].w).mask(0xfffff); + state_add(CH2_PP, "CH2 PP", m_ch2->m_r[i8089_channel_device::PP].w).mask(0xfffff); + state_add(CH2_PSW, "CH2 PSW", m_ch2->m_r[i8089_channel_device::PSW].w).callimport().callexport().formatstr("%12s"); state_add(STATE_GENPC, "GENPC", m_current_tp).mask(0xfffff).noshow(); state_add(STATE_GENPCBASE, "CURPC", m_current_tp).mask(0xfffff).noshow(); @@ -162,7 +162,7 @@ offs_t i8089_device::disasm_disassemble(std::ostream &stream, offs_t pc, const u void i8089_device::state_string_export(const device_state_entry &entry, std::string &str) const { - const i8089_channel *ch = m_ch1; + const i8089_channel_device *ch = m_ch1; if (entry.index() >= CH2_GA && entry.index() <= CH2_PSW) ch = m_ch2; @@ -177,31 +177,31 @@ void i8089_device::state_string_export(const device_state_entry &entry, std::str break; case CH1_GA: case CH2_GA: - str = string_format("%d %05X", ch->m_r[i8089_channel::GA].t & 1, ch->m_r[i8089_channel::GA].w); + str = string_format("%d %05X", ch->m_r[i8089_channel_device::GA].t & 1, ch->m_r[i8089_channel_device::GA].w); break; case CH1_GB: case CH2_GB: - str = string_format("%d %05X", ch->m_r[i8089_channel::GB].t & 1, ch->m_r[i8089_channel::GB].w); + str = string_format("%d %05X", ch->m_r[i8089_channel_device::GB].t & 1, ch->m_r[i8089_channel_device::GB].w); break; case CH1_GC: case CH2_GC: - str = string_format("%d %05X", ch->m_r[i8089_channel::GC].t & 1, ch->m_r[i8089_channel::GC].w); + str = string_format("%d %05X", ch->m_r[i8089_channel_device::GC].t & 1, ch->m_r[i8089_channel_device::GC].w); break; case CH1_TP: case CH2_TP: - str = string_format("%d %05X", ch->m_r[i8089_channel::TP].t & 1, ch->m_r[i8089_channel::TP].w); + str = string_format("%d %05X", ch->m_r[i8089_channel_device::TP].t & 1, ch->m_r[i8089_channel_device::TP].w); break; case CH1_PSW: case CH2_PSW: str = string_format("%c%s%c%s%s%s%c%c", - BIT(ch->m_r[i8089_channel::PSW].w, 7) ? 'P':'.', - BIT(ch->m_r[i8089_channel::PSW].w, 6) ? "XF":"..", - BIT(ch->m_r[i8089_channel::PSW].w, 5) ? 'B':'.', - BIT(ch->m_r[i8089_channel::PSW].w, 4) ? "IS":"..", - BIT(ch->m_r[i8089_channel::PSW].w, 3) ? "IC":"..", - BIT(ch->m_r[i8089_channel::PSW].w, 2) ? "TB":"..", - BIT(ch->m_r[i8089_channel::PSW].w, 1) ? 'S':'.', - BIT(ch->m_r[i8089_channel::PSW].w, 0) ? 'D':'.'); + BIT(ch->m_r[i8089_channel_device::PSW].w, 7) ? 'P':'.', + BIT(ch->m_r[i8089_channel_device::PSW].w, 6) ? "XF":"..", + BIT(ch->m_r[i8089_channel_device::PSW].w, 5) ? 'B':'.', + BIT(ch->m_r[i8089_channel_device::PSW].w, 4) ? "IS":"..", + BIT(ch->m_r[i8089_channel_device::PSW].w, 3) ? "IC":"..", + BIT(ch->m_r[i8089_channel_device::PSW].w, 2) ? "TB":"..", + BIT(ch->m_r[i8089_channel_device::PSW].w, 1) ? 'S':'.', + BIT(ch->m_r[i8089_channel_device::PSW].w, 0) ? 'D':'.'); break; } } @@ -258,8 +258,8 @@ void i8089_device::initialize() offs_t cb_address = ((cb_segment << 4) + cb_offset) & 0x0fffff; // initialize channels - m_ch1->set_reg(i8089_channel::CP, cb_address); - m_ch2->set_reg(i8089_channel::CP, cb_address + 8); + m_ch1->set_reg(i8089_channel_device::CP, cb_address); + m_ch2->set_reg(i8089_channel_device::CP, cb_address + 8); // clear busy uint16_t ccw = read_word(0, cb_address); diff --git a/src/devices/cpu/i8089/i8089.h b/src/devices/cpu/i8089/i8089.h index 5f69c0b42e7..4e931b1a857 100644 --- a/src/devices/cpu/i8089/i8089.h +++ b/src/devices/cpu/i8089/i8089.h @@ -6,12 +6,10 @@ ***************************************************************************/ -#pragma once - -#ifndef __I8089_H__ -#define __I8089_H__ +#ifndef MAME_CPU_I8089_I8089_H +#define MAME_CPU_I8089_I8089_H -#include "i8089_channel.h" +#pragma once //************************************************************************** @@ -33,21 +31,21 @@ //************************************************************************** // forward declaration -class i8089_channel; +class i8089_channel_device; // ======================> i8089_device class i8089_device : public cpu_device { - friend class i8089_channel; + friend class i8089_channel_device; public: // construction/destruction i8089_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // callbacks - template devcb_base &set_sintr1_callback(_sintr1 sintr1) { return m_write_sintr1.set_callback(sintr1); } - template devcb_base &set_sintr2_callback(_sintr2 sintr2) { return m_write_sintr2.set_callback(sintr2); } + template devcb_base &set_sintr1_callback(Object &&sintr1) { return m_write_sintr1.set_callback(std::forward(sintr1)); } + template devcb_base &set_sintr2_callback(Object &&sintr2) { return m_write_sintr2.set_callback(std::forward(sintr2)); } // static configuration helpers static void set_databus_width(device_t &device, uint8_t databus_width) { downcast(device).m_databus_width = databus_width; } @@ -76,7 +74,7 @@ protected: int m_icount; // device_memory_interface overrides - virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_0) const override; + virtual const address_space_config *memory_space_config(address_spacenum spacenum) const override; address_space_config m_program_config; address_space_config m_io_config; @@ -102,8 +100,8 @@ private: void write_byte(bool space, offs_t address, uint8_t data); void write_word(bool space, offs_t address, uint16_t data); - required_device m_ch1; - required_device m_ch2; + required_device m_ch1; + required_device m_ch2; devcb_write_line m_write_sintr1; devcb_write_line m_write_sintr2; @@ -151,7 +149,7 @@ private: // device type definition -extern const device_type I8089; +DECLARE_DEVICE_TYPE(I8089, i8089_device) -#endif /* __I8089_H__ */ +#endif // MAME_CPU_I8089_I8089_H diff --git a/src/devices/cpu/i8089/i8089_channel.cpp b/src/devices/cpu/i8089/i8089_channel.cpp index 8cfcdc6cca7..8511e924b33 100644 --- a/src/devices/cpu/i8089/i8089_channel.cpp +++ b/src/devices/cpu/i8089/i8089_channel.cpp @@ -9,8 +9,8 @@ ***************************************************************************/ #include "emu.h" -#include "debugger.h" #include "i8089_channel.h" +#include "debugger.h" //************************************************************************** @@ -37,7 +37,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type I8089_CHANNEL = device_creator; +DEFINE_DEVICE_TYPE(I8089_CHANNEL, i8089_channel_device, "i8089_channel", "Intel 8089 I/O Channel") //************************************************************************** @@ -45,11 +45,11 @@ const device_type I8089_CHANNEL = device_creator; //************************************************************************** //------------------------------------------------- -// i8089_channel - constructor +// i8089_channel_device - constructor //------------------------------------------------- -i8089_channel::i8089_channel(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, I8089_CHANNEL, "Intel 8089 I/O Channel", tag, owner, clock, "i8089_channel", __FILE__), +i8089_channel_device::i8089_channel_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, I8089_CHANNEL, tag, owner, clock), m_write_sintr(*this), m_iop(nullptr), m_icount(0), @@ -65,7 +65,7 @@ i8089_channel::i8089_channel(const machine_config &mconfig, const char *tag, dev // device_start - device-specific startup //------------------------------------------------- -void i8089_channel::device_start() +void i8089_channel_device::device_start() { // get parent device m_iop = downcast(owner()); @@ -91,7 +91,7 @@ void i8089_channel::device_start() // device_reset - device-specific reset //------------------------------------------------- -void i8089_channel::device_reset() +void i8089_channel_device::device_reset() { m_xfer_pending = false; @@ -109,7 +109,7 @@ void i8089_channel::device_reset() // IMPLEMENTATION //************************************************************************** -void i8089_channel::set_reg(int reg, uint32_t value, int tag) +void i8089_channel_device::set_reg(int reg, uint32_t value, int tag) { if((reg == BC) || (reg == IX) || (reg == CC) || (reg == MC)) { @@ -134,14 +134,14 @@ void i8089_channel::set_reg(int reg, uint32_t value, int tag) } // channel status -bool i8089_channel::executing() { return BIT(m_r[PSW].w, 2); } -bool i8089_channel::transferring() { return BIT(m_r[PSW].w, 6); } -bool i8089_channel::priority() { return BIT(m_r[PSW].w, 7); } -int i8089_channel::chan_prio() { return m_prio; } -bool i8089_channel::chained() { return CC_CHAIN; } -bool i8089_channel::lock() { return CC_LOCK; } - -int16_t i8089_channel::displacement(int wb) +bool i8089_channel_device::executing() { return BIT(m_r[PSW].w, 2); } +bool i8089_channel_device::transferring() { return BIT(m_r[PSW].w, 6); } +bool i8089_channel_device::priority() { return BIT(m_r[PSW].w, 7); } +int i8089_channel_device::chan_prio() { return m_prio; } +bool i8089_channel_device::chained() { return CC_CHAIN; } +bool i8089_channel_device::lock() { return CC_LOCK; } + +int16_t i8089_channel_device::displacement(int wb) { int16_t displacement = 0; @@ -159,7 +159,7 @@ int16_t i8089_channel::displacement(int wb) return displacement; } -uint32_t i8089_channel::offset(int aa, int mm, int w) +uint32_t i8089_channel_device::offset(int aa, int mm, int w) { uint32_t offset = 0; switch(aa) @@ -182,14 +182,14 @@ uint32_t i8089_channel::offset(int aa, int mm, int w) return offset & 0xfffff; } -int8_t i8089_channel::imm8() +int8_t i8089_channel_device::imm8() { int8_t imm8 = (int8_t)m_iop->read_byte(m_r[TP].t, m_r[TP].w); set_reg(TP, m_r[TP].w + 1); return imm8; } -int16_t i8089_channel::imm16() +int16_t i8089_channel_device::imm16() { int16_t imm16 = (int16_t)m_iop->read_word(m_r[TP].t, m_r[TP].w); set_reg(TP, m_r[TP].w + 2); @@ -197,7 +197,7 @@ int16_t i8089_channel::imm16() } // adjust task pointer and continue execution -void i8089_channel::terminate_dma(int offset) +void i8089_channel_device::terminate_dma(int offset) { if (VERBOSE) logerror("%s('%s'): terminating dma transfer\n", shortname(), tag()); @@ -208,7 +208,7 @@ void i8089_channel::terminate_dma(int offset) m_dma_state = DMA_IDLE; } -int i8089_channel::execute_run() +int i8089_channel_device::execute_run() { m_icount = 0; @@ -676,7 +676,7 @@ int i8089_channel::execute_run() return m_icount; } -void i8089_channel::examine_ccw(uint8_t ccw) +void i8089_channel_device::examine_ccw(uint8_t ccw) { // priority and bus load limit, bit 7 and 5 m_r[PSW].w = (m_r[PSW].w & 0x5f) | (ccw & 0xa0); @@ -698,7 +698,7 @@ void i8089_channel::examine_ccw(uint8_t ccw) } } -void i8089_channel::attention() +void i8089_channel_device::attention() { // examine control byte uint8_t ccw = m_iop->read_byte(m_r[CP].t, m_r[CP].w); @@ -826,12 +826,12 @@ void i8089_channel::attention() } } -void i8089_channel::ca() +void i8089_channel_device::ca() { m_prio = PRIO_CHAN_ATTN; } -WRITE_LINE_MEMBER( i8089_channel::ext_w ) +WRITE_LINE_MEMBER( i8089_channel_device::ext_w ) { if (VERBOSE) logerror("%s('%s'): ext_w: %d\n", shortname(), tag(), state); @@ -840,7 +840,7 @@ WRITE_LINE_MEMBER( i8089_channel::ext_w ) terminate_dma((CC_TX - 1) * 4); } -WRITE_LINE_MEMBER( i8089_channel::drq_w ) +WRITE_LINE_MEMBER( i8089_channel_device::drq_w ) { if (VERBOSE_DMA) logerror("%s('%s'): drq_w: %d\n", shortname(), tag(), state); diff --git a/src/devices/cpu/i8089/i8089_channel.h b/src/devices/cpu/i8089/i8089_channel.h index 914ed70bfbe..fc0e6064efe 100644 --- a/src/devices/cpu/i8089/i8089_channel.h +++ b/src/devices/cpu/i8089/i8089_channel.h @@ -8,10 +8,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_CPU_I8080_I8089_CHANNEL_H +#define MAME_CPU_I8080_I8089_CHANNEL_H -#ifndef __I8089_CHANNEL_H__ -#define __I8089_CHANNEL_H__ +#pragma once #include "i8089.h" @@ -24,7 +24,7 @@ MCFG_DEVICE_ADD(_tag, I8089_CHANNEL, 0) #define MCFG_I8089_CHANNEL_SINTR(_sintr) \ - downcast(device)->set_sintr_callback(DEVCB_##_sintr); + downcast(device)->set_sintr_callback(DEVCB_##_sintr); //************************************************************************** @@ -34,13 +34,13 @@ // forward declaration class i8089_device; -class i8089_channel : public device_t +class i8089_channel_device : public device_t { public: // construction/destruction - i8089_channel(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + i8089_channel_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template void set_sintr_callback(_sintr sintr) { m_write_sintr.set_callback(sintr); } + template void set_sintr_callback(Object &&sintr) { m_write_sintr.set_callback(std::forward(sintr)); } // set register void set_reg(int reg, uint32_t value, int tag = -1); @@ -217,7 +217,7 @@ private: // device type definition -extern const device_type I8089_CHANNEL; +DECLARE_DEVICE_TYPE(I8089_CHANNEL, i8089_channel_device) -#endif /* __I8089_CHANNEL_H__ */ +#endif // MAME_CPU_I8080_I8089_CHANNEL_H diff --git a/src/devices/cpu/i8089/i8089_ops.cpp b/src/devices/cpu/i8089/i8089_ops.cpp index 4b20052014e..44d05cb467d 100644 --- a/src/devices/cpu/i8089/i8089_ops.cpp +++ b/src/devices/cpu/i8089/i8089_ops.cpp @@ -18,192 +18,192 @@ #define SWR(m, o, d) (m_iop->write_word(m_r[m].t, o, d)) #define SBR(m, o, d) (m_iop->write_byte(m_r[m].t, o, d)) -void i8089_channel::add_rm(int r, int m, int o) +void i8089_channel_device::add_rm(int r, int m, int o) { set_reg(r, m_r[r].w + LWR(m, o)); } -void i8089_channel::add_mr(int m, int r, int o) +void i8089_channel_device::add_mr(int m, int r, int o) { SWR(m, o, LWR(m, o) + m_r[r].w); } -void i8089_channel::addb_rm(int r, int m, int o) +void i8089_channel_device::addb_rm(int r, int m, int o) { set_reg(r, m_r[r].w + LBR(m, o)); } -void i8089_channel::addb_mr(int m, int r, int o) +void i8089_channel_device::addb_mr(int m, int r, int o) { SBR(m, o, LBR(m, o) + m_r[r].w); } -void i8089_channel::addbi_ri(int r, int8_t i) +void i8089_channel_device::addbi_ri(int r, int8_t i) { set_reg(r, m_r[r].w + i); } -void i8089_channel::addbi_mi(int m, int8_t i, int o) +void i8089_channel_device::addbi_mi(int m, int8_t i, int o) { SBR(m, o, LBR(m, o) + i); } -void i8089_channel::addi_ri(int r, int16_t i) +void i8089_channel_device::addi_ri(int r, int16_t i) { set_reg(r, m_r[r].w + i); } -void i8089_channel::addi_mi(int m, int16_t i, int o) +void i8089_channel_device::addi_mi(int m, int16_t i, int o) { SWR(m, o, LWR(m, o) + i); } -void i8089_channel::and_rm(int r, int m, int o) +void i8089_channel_device::and_rm(int r, int m, int o) { set_reg(r, m_r[r].w & LWR(m, o)); } -void i8089_channel::and_mr(int m, int r, int o) +void i8089_channel_device::and_mr(int m, int r, int o) { SWR(m, o, LWR(m, o) & m_r[r].w); } -void i8089_channel::andb_rm(int r, int m, int o) +void i8089_channel_device::andb_rm(int r, int m, int o) { set_reg(r, m_r[r].w & (int16_t)LBR(m, o)); } -void i8089_channel::andb_mr(int m, int r, int o) +void i8089_channel_device::andb_mr(int m, int r, int o) { SBR(m, o, LBR(m, o) & m_r[r].w); } -void i8089_channel::andbi_ri(int r, int8_t i) +void i8089_channel_device::andbi_ri(int r, int8_t i) { set_reg(r, m_r[r].w & (int16_t)i); } -void i8089_channel::andbi_mi(int m, int8_t i, int o) +void i8089_channel_device::andbi_mi(int m, int8_t i, int o) { SBR(m, o, LBR(m, o) & i); } -void i8089_channel::andi_ri(int r, int16_t i) +void i8089_channel_device::andi_ri(int r, int16_t i) { set_reg(r, m_r[r].w & i); } -void i8089_channel::andi_mi(int m, int16_t i, int o) +void i8089_channel_device::andi_mi(int m, int16_t i, int o) { SWR(m, o, LWR(m, o) & i); } -void i8089_channel::call(int m, int16_t d, int o) +void i8089_channel_device::call(int m, int16_t d, int o) { movp_mp(m, TP, o); set_reg(TP, m_r[TP].w + d); } -void i8089_channel::clr(int m, int b, int o) +void i8089_channel_device::clr(int m, int b, int o) { SBR(m, o, LBR(m, o) & ~(1<> 8))) set_reg(TP, m_r[TP].w + d); } -void i8089_channel::jmcne(int m, int16_t d, int o) +void i8089_channel_device::jmcne(int m, int16_t d, int o) { if((LBR(m, o) ^ (m_r[MC].w & 0xff)) & (m_r[MC].w >> 8)) set_reg(TP, m_r[TP].w + d); } -void i8089_channel::jnbt(int m, int b, int16_t d, int o) +void i8089_channel_device::jnbt(int m, int b, int16_t d, int o) { if(!(LBR(m, o) & (1<read_word(m_r[m].t, o); uint16_t segment = m_iop->read_word(m_r[m].t, o + 2); @@ -220,79 +220,79 @@ void i8089_channel::lpd(int p, int m, int o) } // load pointer from immediate data -void i8089_channel::lpdi(int p, int s, int o) +void i8089_channel_device::lpdi(int p, int s, int o) { set_reg(p, (s << 4) + (o & 0xffff), 0); } -void i8089_channel::mov_mr(int m, int r, int o) +void i8089_channel_device::mov_mr(int m, int r, int o) { SWR(m, o, m_r[r].w); } -void i8089_channel::mov_rm(int r, int m, int o) +void i8089_channel_device::mov_rm(int r, int m, int o) { set_reg(r, (int32_t)LWR(m, o), 1); } -void i8089_channel::mov_mm(int m1, int m2, int o1, int o2) +void i8089_channel_device::mov_mm(int m1, int m2, int o1, int o2) { SWR(m2, o2, LWR(m1, o1)); } // move register to memory byte -void i8089_channel::movb_mr(int m, int r, int o) +void i8089_channel_device::movb_mr(int m, int r, int o) { m_iop->write_byte(m_r[m].t, o, m_r[r].w & 0xff); } // move memory byte to register -void i8089_channel::movb_rm(int r, int m, int o) +void i8089_channel_device::movb_rm(int r, int m, int o) { uint8_t byte = m_iop->read_byte(m_r[m].t, o); set_reg(r, (BIT(byte, 7) ? 0xfff00 : 0x00000) | byte, 1); } // move memory byte to memory byte -void i8089_channel::movb_mm(int m1, int m2, int o1, int o2) +void i8089_channel_device::movb_mm(int m1, int m2, int o1, int o2) { uint8_t byte = m_iop->read_byte(m_r[m1].t, o1); m_iop->write_byte(m_r[m2].t, o2, byte); } // move immediate byte to register -void i8089_channel::movbi_ri(int r, int8_t i) +void i8089_channel_device::movbi_ri(int r, int8_t i) { set_reg(r, (BIT(i, 7) ? 0xfff00 : 0x00000) | (i & 0xff), 1); } // move immediate byte to memory byte -void i8089_channel::movbi_mi(int m, int8_t i, int o) +void i8089_channel_device::movbi_mi(int m, int8_t i, int o) { m_iop->write_byte(m_r[m].t, o, i & 0xff); } // move immediate word to register -void i8089_channel::movi_ri(int r, int16_t i) +void i8089_channel_device::movi_ri(int r, int16_t i) { set_reg(r, (BIT(i, 15) ? 0xf0000 : 0x00000) | (i & 0xffff), 1); } // move immediate word to memory word -void i8089_channel::movi_mi(int m, int16_t i, int o) +void i8089_channel_device::movi_mi(int m, int16_t i, int o) { m_iop->write_word(m_r[m].t, o, (BIT(i, 15) ? 0xf0000 : 0x00000) | (i & 0xffff)); } // move pointer to memory (store) -void i8089_channel::movp_mp(int m, int p, int o) +void i8089_channel_device::movp_mp(int m, int p, int o) { m_iop->write_word(m_r[m].t, o, m_r[p].w & 0xffff); m_iop->write_byte(m_r[m].t, o + 2, ((m_r[p].w >> 12) & 0xf0) | (m_r[p].t << 3)); } // move memory to pointer (restore) -void i8089_channel::movp_pm(int p, int m, int o) +void i8089_channel_device::movp_pm(int p, int m, int o) { uint16_t offset = m_iop->read_word(m_r[m].t, o); uint16_t segment = m_iop->read_byte(m_r[m].t, o + 2); @@ -301,83 +301,83 @@ void i8089_channel::movp_pm(int p, int m, int o) } // no operation -void i8089_channel::nop() +void i8089_channel_device::nop() { } -void i8089_channel::not_r(int r) +void i8089_channel_device::not_r(int r) { set_reg(r, ~m_r[r].w); } -void i8089_channel::not_m(int m, int o) +void i8089_channel_device::not_m(int m, int o) { SWR(m, o, ~LWR(m, o)); } -void i8089_channel::not_rm(int r, int m, int o) +void i8089_channel_device::not_rm(int r, int m, int o) { set_reg(r, ~(int32_t)LWR(m, o)); } -void i8089_channel::notb_m(int m, int o) +void i8089_channel_device::notb_m(int m, int o) { SBR(m, o, ~LBR(m, o)); } -void i8089_channel::notb_rm(int r, int m, int o) +void i8089_channel_device::notb_rm(int r, int m, int o) { set_reg(r, ~(int32_t)LBR(m, o)); } -void i8089_channel::or_rm(int r, int m, int o) +void i8089_channel_device::or_rm(int r, int m, int o) { set_reg(r, m_r[r].w | LWR(m, o)); } -void i8089_channel::or_mr(int m, int r, int o) +void i8089_channel_device::or_mr(int m, int r, int o) { SWR(m, o, LWR(m, o) | m_r[r].w); } -void i8089_channel::orb_rm(int r, int m, int o) +void i8089_channel_device::orb_rm(int r, int m, int o) { set_reg(r, m_r[r].w | (int16_t)LBR(m, o)); } -void i8089_channel::orb_mr(int m, int r, int o) +void i8089_channel_device::orb_mr(int m, int r, int o) { SBR(m, o, LBR(m, o) | m_r[r].w); } -void i8089_channel::orbi_ri(int r, int8_t i) +void i8089_channel_device::orbi_ri(int r, int8_t i) { set_reg(r, m_r[r].w | (int16_t)i); } -void i8089_channel::orbi_mi(int m, int8_t i, int o) +void i8089_channel_device::orbi_mi(int m, int8_t i, int o) { SBR(m, o, LBR(m, o) | i); } -void i8089_channel::ori_ri(int r, int16_t i) +void i8089_channel_device::ori_ri(int r, int16_t i) { set_reg(r, m_r[r].w | i); } -void i8089_channel::ori_mi(int m, int16_t i, int o) +void i8089_channel_device::ori_mi(int m, int16_t i, int o) { SWR(m, o, LWR(m, o) | i); } -void i8089_channel::setb(int m, int b, int o) +void i8089_channel_device::setb(int m, int b, int o) { SBR(m, o, LBR(m, o) | (1<; -const device_type I80188 = device_creator; +DEFINE_DEVICE_TYPE(I80186, i80186_cpu_device, "i80186", "I80186") +DEFINE_DEVICE_TYPE(I80188, i80188_cpu_device, "i80188", "I80188") i80188_cpu_device::i80188_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : i80186_cpu_device(mconfig, I80188, "I80188", tag, owner, clock, "i80188", __FILE__, 8) + : i80186_cpu_device(mconfig, I80188, tag, owner, clock, 8) { memcpy(m_timing, m_i80186_timing, sizeof(m_i80186_timing)); m_fetch_xor = 0; @@ -130,22 +130,15 @@ i80188_cpu_device::i80188_cpu_device(const machine_config &mconfig, const char * } i80186_cpu_device::i80186_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : i8086_common_cpu_device(mconfig, I80186, "I80186", tag, owner, clock, "i80186", __FILE__) - , m_program_config("program", ENDIANNESS_LITTLE, 16, 20, 0) - , m_opcodes_config("opcodes", ENDIANNESS_LITTLE, 16, 20, 0) - , m_io_config("io", ENDIANNESS_LITTLE, 16, 16, 0) - , m_read_slave_ack_func(*this) - , m_out_chip_select_func(*this) - , m_out_tmrout0_func(*this) - , m_out_tmrout1_func(*this) + : i80186_cpu_device(mconfig, I80186, tag, owner, clock, 16) { memcpy(m_timing, m_i80186_timing, sizeof(m_i80186_timing)); m_fetch_xor = BYTE_XOR_LE(0); static_set_irq_acknowledge_callback(*this, device_irq_acknowledge_delegate(FUNC(i80186_cpu_device::int_callback), this)); } -i80186_cpu_device::i80186_cpu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source, int data_bus_size) - : i8086_common_cpu_device(mconfig, type, name, tag, owner, clock, shortname, source) +i80186_cpu_device::i80186_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int data_bus_size) + : i8086_common_cpu_device(mconfig, type, tag, owner, clock) , m_program_config("program", ENDIANNESS_LITTLE, data_bus_size, 20, 0) , m_opcodes_config("opcodes", ENDIANNESS_LITTLE, data_bus_size, 20, 0) , m_io_config("io", ENDIANNESS_LITTLE, data_bus_size, 16, 0) diff --git a/src/devices/cpu/i86/i186.h b/src/devices/cpu/i86/i186.h index 74a659c64c0..54ab1d20fae 100644 --- a/src/devices/cpu/i86/i186.h +++ b/src/devices/cpu/i86/i186.h @@ -1,24 +1,25 @@ // license:BSD-3-Clause // copyright-holders:Carl -#ifndef I186_H__ -#define I186_H__ +#ifndef MAME_CPU_I86_I186_H +#define MAME_CPU_I86_I186_H + +#pragma once #include "i86.h" -extern const device_type I80186; -extern const device_type I80188; +DECLARE_DEVICE_TYPE(I80186, i80186_cpu_device) +DECLARE_DEVICE_TYPE(I80188, i80188_cpu_device) class i80186_cpu_device : public i8086_common_cpu_device { public: // construction/destruction i80186_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - i80186_cpu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source, int data_bus_size); - template static devcb_base &static_set_read_slave_ack_callback(device_t &device, _Object object) { return downcast(device).m_read_slave_ack_func.set_callback(object); } - template static devcb_base &static_set_chip_select_callback(device_t &device, _Object object) { return downcast(device).m_out_chip_select_func.set_callback(object); } - template static devcb_base &static_set_tmrout0_handler(device_t &device, _Object object) { return downcast(device).m_out_tmrout0_func.set_callback(object); } - template static devcb_base &static_set_tmrout1_handler(device_t &device, _Object object) { return downcast(device).m_out_tmrout1_func.set_callback(object); } + template static devcb_base &static_set_read_slave_ack_callback(device_t &device, Object &&cb) { return downcast(device).m_read_slave_ack_func.set_callback(std::forward(cb)); } + template static devcb_base &static_set_chip_select_callback(device_t &device, Object &&cb) { return downcast(device).m_out_chip_select_func.set_callback(std::forward(cb)); } + template static devcb_base &static_set_tmrout0_handler(device_t &device, Object &&cb) { return downcast(device).m_out_tmrout0_func.set_callback(std::forward(cb)); } + template static devcb_base &static_set_tmrout1_handler(device_t &device, Object &&cb) { return downcast(device).m_out_tmrout1_func.set_callback(std::forward(cb)); } IRQ_CALLBACK_MEMBER(int_callback); DECLARE_WRITE_LINE_MEMBER(drq0_w) { if(state) drq_callback(0); m_dma[0].drq_state = state; } @@ -31,9 +32,11 @@ public: DECLARE_WRITE_LINE_MEMBER(int3_w) { external_int(3, state); } // device_memory_interface overrides - virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_0) const override; + virtual const address_space_config *memory_space_config(address_spacenum spacenum) const override; protected: + i80186_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int data_bus_size); + // device_execute_interface overrides virtual uint64_t execute_clocks_to_cycles(uint64_t clocks) const override { return (clocks / 2); } virtual uint64_t execute_cycles_to_clocks(uint64_t cycles) const override { return (cycles * 2); } @@ -148,4 +151,4 @@ public: #define MCFG_80186_TMROUT1_HANDLER(_devcb) \ devcb = &i80186_cpu_device::static_set_tmrout1_handler(*device, DEVCB_##_devcb); -#endif +#endif // MAME_CPU_I86_I186_H diff --git a/src/devices/cpu/i86/i286.cpp b/src/devices/cpu/i86/i286.cpp index 7640e0a5102..f871a8c17cd 100644 --- a/src/devices/cpu/i86/i286.cpp +++ b/src/devices/cpu/i86/i286.cpp @@ -165,10 +165,10 @@ const uint8_t i80286_cpu_device::m_i80286_timing[] = 13, /* (80186) BOUND */ }; -const device_type I80286 = device_creator; +DEFINE_DEVICE_TYPE(I80286, i80286_cpu_device, "i80286", "I80286") i80286_cpu_device::i80286_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : i8086_common_cpu_device(mconfig, I80286, "I80286", tag, owner, clock, "i80286", __FILE__) + : i8086_common_cpu_device(mconfig, I80286, tag, owner, clock) , m_program_config("program", ENDIANNESS_LITTLE, 16, 24, 0) , m_opcodes_config("opcodes", ENDIANNESS_LITTLE, 16, 24, 0) , m_io_config("io", ENDIANNESS_LITTLE, 16, 16, 0) diff --git a/src/devices/cpu/i86/i286.h b/src/devices/cpu/i86/i286.h index b5945065aef..e0a2c1600ed 100644 --- a/src/devices/cpu/i86/i286.h +++ b/src/devices/cpu/i86/i286.h @@ -1,12 +1,14 @@ // license:BSD-3-Clause // copyright-holders:Carl -#ifndef I286_H_ -#define I286_H_ +#ifndef MAME_CPU_I86_I286_H +#define MAME_CPU_I86_I286_H + +#pragma once #include "i86.h" #define INPUT_LINE_A20 1 -extern const device_type I80286; +DECLARE_DEVICE_TYPE(I80286, i80286_cpu_device) enum { // same order as I8086 registers @@ -67,11 +69,11 @@ public: i80286_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // device_memory_interface overrides - virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_0) const override; + virtual const address_space_config *memory_space_config(address_spacenum spacenum) const override; typedef delegate a20_cb; static void static_set_a20_callback(device_t &device, a20_cb object) { downcast(device).m_a20_callback = object; } - template static devcb_base &static_set_shutdown_callback(device_t &device, _Object object) { return downcast(device).m_out_shutdown_func.set_callback(object); } + template static devcb_base &static_set_shutdown_callback(device_t &device, Object &&cb) { return downcast(device).m_out_shutdown_func.set_callback(std::forward(cb)); } protected: virtual void execute_run() override; @@ -166,4 +168,4 @@ private: #define MCFG_80286_SHUTDOWN(_devcb) \ devcb = &i80286_cpu_device::static_set_shutdown_callback(*device, DEVCB_##_devcb); -#endif /* I286_H_ */ +#endif // MAME_CPU_I86_I286_H diff --git a/src/devices/cpu/i86/i86.cpp b/src/devices/cpu/i86/i86.cpp index c13329ced5b..2288ab63194 100644 --- a/src/devices/cpu/i86/i86.cpp +++ b/src/devices/cpu/i86/i86.cpp @@ -12,8 +12,8 @@ ****************************************************************************/ #include "emu.h" -#include "debugger.h" #include "i86.h" +#include "debugger.h" #include "i86inline.h" #define I8086_NMI_INT_VECTOR 2 @@ -87,28 +87,25 @@ const uint8_t i8086_cpu_device::m_i8086_timing[] = /***************************************************************************/ -const device_type I8086 = device_creator; -const device_type I8088 = device_creator; +DEFINE_DEVICE_TYPE(I8086, i8086_cpu_device, "i8086", "I8086") +DEFINE_DEVICE_TYPE(I8088, i8088_cpu_device, "i8088", "I8088") i8088_cpu_device::i8088_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : i8086_cpu_device(mconfig, I8088, "I8088", tag, owner, clock, "i8088", __FILE__, 8) + : i8086_cpu_device(mconfig, I8088, tag, owner, clock, 8) { memcpy(m_timing, m_i8086_timing, sizeof(m_i8086_timing)); m_fetch_xor = 0; } i8086_cpu_device::i8086_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : i8086_common_cpu_device(mconfig, I8086, "I8086", tag, owner, clock, "i8086", __FILE__) - , m_program_config("program", ENDIANNESS_LITTLE, 16, 20, 0) - , m_opcodes_config("opcodes", ENDIANNESS_LITTLE, 16, 20, 0) - , m_io_config("io", ENDIANNESS_LITTLE, 16, 16, 0) + : i8086_cpu_device(mconfig, I8086, tag, owner, clock, 16) { memcpy(m_timing, m_i8086_timing, sizeof(m_i8086_timing)); m_fetch_xor = BYTE_XOR_LE(0); } -i8086_cpu_device::i8086_cpu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source, int data_bus_size) - : i8086_common_cpu_device(mconfig, type, name, tag, owner, clock, shortname, source) +i8086_cpu_device::i8086_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int data_bus_size) + : i8086_common_cpu_device(mconfig, type, tag, owner, clock) , m_program_config("program", ENDIANNESS_LITTLE, data_bus_size, 20, 0) , m_opcodes_config("opcodes", ENDIANNESS_LITTLE, data_bus_size, 20, 0) , m_io_config("io", ENDIANNESS_LITTLE, data_bus_size, 16, 0) @@ -291,8 +288,8 @@ void i8086_cpu_device::device_start() state_add( I8086_HALT, "HALT", m_halt ).mask(1); } -i8086_common_cpu_device::i8086_common_cpu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : cpu_device(mconfig, type, name, tag, owner, clock, shortname, source) +i8086_common_cpu_device::i8086_common_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : cpu_device(mconfig, type, tag, owner, clock) , m_ip(0) , m_TF(0) , m_int_vector(0) diff --git a/src/devices/cpu/i86/i86.h b/src/devices/cpu/i86/i86.h index 8fba839409a..626246c8dde 100644 --- a/src/devices/cpu/i86/i86.h +++ b/src/devices/cpu/i86/i86.h @@ -1,13 +1,15 @@ // license:BSD-3-Clause // copyright-holders:Carl -#ifndef __I8086_H__ -#define __I8086_H__ +#ifndef MAME_CPU_I86_I86_H +#define MAME_CPU_I86_I86_H + +#pragma once ///////////////////////////////////////////////////////////////// -extern const device_type I8086; -extern const device_type I8088; +DECLARE_DEVICE_TYPE(I8086, i8086_cpu_device) +DECLARE_DEVICE_TYPE(I8088, i8088_cpu_device) #define INPUT_LINE_INT0 INPUT_LINE_IRQ0 #define INPUT_LINE_TEST 20 @@ -29,11 +31,8 @@ enum class i8086_common_cpu_device : public cpu_device { public: - // construction/destruction - i8086_common_cpu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - - template static devcb_base &set_lock_handler(device_t &device, _Object object) - { return downcast(device).m_lock_handler.set_callback(object); } + template static devcb_base &set_lock_handler(device_t &device, Object &&cb) + { return downcast(device).m_lock_handler.set_callback(std::forward(cb)); } protected: enum @@ -111,6 +110,9 @@ protected: enum SREGS { ES=0, CS, SS, DS }; enum WREGS { AX=0, CX, DX, BX, SP, BP, SI, DI }; + // construction/destruction + i8086_common_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -246,8 +248,6 @@ protected: inline void ADJ4(int8_t param1, int8_t param2); inline void ADJB(int8_t param1, int8_t param2); -protected: - union { /* eight general registers */ uint16_t w[8]; /* viewed as 16 bits registers */ @@ -342,12 +342,13 @@ class i8086_cpu_device : public i8086_common_cpu_device public: // construction/destruction i8086_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - i8086_cpu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source, int data_bus_size); // device_memory_interface overrides virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_0) const override; protected: + i8086_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int data_bus_size); + virtual void execute_run() override; virtual void device_start() override; virtual uint32_t execute_input_lines() const override { return 1; } @@ -369,4 +370,4 @@ public: }; -#endif /* __I8086_H__ */ +#endif // MAME_CPU_I86_I86_H diff --git a/src/devices/cpu/i860/i860.cpp b/src/devices/cpu/i860/i860.cpp index b894ebc8c3f..f33eaf37fae 100644 --- a/src/devices/cpu/i860/i860.cpp +++ b/src/devices/cpu/i860/i860.cpp @@ -31,12 +31,13 @@ enum { }; -const device_type I860 = device_creator; +DEFINE_DEVICE_TYPE(I860, i860_cpu_device, "i860xr", "i860XR") i860_cpu_device::i860_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cpu_device(mconfig, I860, "i860XR", tag, owner, clock, "i860xr", __FILE__) - , m_program_config("program", ENDIANNESS_LITTLE, 64, 32, 0), m_pc(0), m_merge(0), m_pin_bus_hold(0), m_pin_reset(0), m_exiting_readmem(0), m_exiting_ifetch(0), m_pc_updated(0), m_pending_trap(0), m_fir_gets_trap_addr(0), m_single_stepping(0), m_program(nullptr), m_icount(0) + : cpu_device(mconfig, I860, tag, owner, clock) + , m_program_config("program", ENDIANNESS_LITTLE, 64, 32, 0) + , m_pc(0), m_merge(0), m_pin_bus_hold(0), m_pin_reset(0), m_exiting_readmem(0), m_exiting_ifetch(0), m_pc_updated(0), m_pending_trap(0), m_fir_gets_trap_addr(0), m_single_stepping(0), m_program(nullptr), m_icount(0) { } diff --git a/src/devices/cpu/i860/i860.h b/src/devices/cpu/i860/i860.h index d107f111c97..e0b86665bf2 100644 --- a/src/devices/cpu/i860/i860.h +++ b/src/devices/cpu/i860/i860.h @@ -10,40 +10,16 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_CPU_I860_I860_H +#define MAME_CPU_I860_I860_H -#ifndef __I860_H__ -#define __I860_H__ +#pragma once /*************************************************************************** REGISTER ENUMERATION ***************************************************************************/ -enum -{ - I860_PC = 1, - - I860_FIR, - I860_PSR, - I860_DIRBASE, - I860_DB, - I860_FSR, - I860_EPSR, - - I860_R0, I860_R1, I860_R2, I860_R3, I860_R4, I860_R5, I860_R6, I860_R7, I860_R8, I860_R9, - I860_R10, I860_R11, I860_R12, I860_R13, I860_R14, I860_R15, I860_R16, I860_R17, I860_R18, I860_R19, - I860_R20, I860_R21, I860_R22, I860_R23, I860_R24, I860_R25, I860_R26, I860_R27, I860_R28, I860_R29, - I860_R30, I860_R31, - - I860_F0, I860_F1, I860_F2, I860_F3, I860_F4, I860_F5, I860_F6, I860_F7, I860_F8, I860_F9, - I860_F10, I860_F11, I860_F12, I860_F13, I860_F14, I860_F15, I860_F16, I860_F17, I860_F18, I860_F19, - I860_F20, I860_F21, I860_F22, I860_F23, I860_F24, I860_F25, I860_F26, I860_F27, I860_F28, I860_F29, - I860_F30, I860_F31 - -}; - - class i860_cpu_device : public cpu_device { public: @@ -62,6 +38,30 @@ public: void reset_i860(); protected: + enum + { + I860_PC = 1, + + I860_FIR, + I860_PSR, + I860_DIRBASE, + I860_DB, + I860_FSR, + I860_EPSR, + + I860_R0, I860_R1, I860_R2, I860_R3, I860_R4, I860_R5, I860_R6, I860_R7, I860_R8, I860_R9, + I860_R10, I860_R11, I860_R12, I860_R13, I860_R14, I860_R15, I860_R16, I860_R17, I860_R18, I860_R19, + I860_R20, I860_R21, I860_R22, I860_R23, I860_R24, I860_R25, I860_R26, I860_R27, I860_R28, I860_R29, + I860_R30, I860_R31, + + I860_F0, I860_F1, I860_F2, I860_F3, I860_F4, I860_F5, I860_F6, I860_F7, I860_F8, I860_F9, + I860_F10, I860_F11, I860_F12, I860_F13, I860_F14, I860_F15, I860_F16, I860_F17, I860_F18, I860_F19, + I860_F20, I860_F21, I860_F22, I860_F23, I860_F24, I860_F25, I860_F26, I860_F27, I860_F28, I860_F29, + I860_F30, I860_F31 + + }; + + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -307,7 +307,6 @@ enum { }; -extern const device_type I860; - +DECLARE_DEVICE_TYPE(I860, i860_cpu_device) -#endif /* __I860_H__ */ +#endif // MAME_CPU_I860_I860_H diff --git a/src/devices/cpu/i960/i960.cpp b/src/devices/cpu/i960/i960.cpp index 73b722c98ef..6eedf8206a9 100644 --- a/src/devices/cpu/i960/i960.cpp +++ b/src/devices/cpu/i960/i960.cpp @@ -1,8 +1,8 @@ // license:BSD-3-Clause // copyright-holders:Farfetch'd, R. Belmont #include "emu.h" -#include "debugger.h" #include "i960.h" +#include "debugger.h" CPU_DISASSEMBLE( i960 ); @@ -13,13 +13,14 @@ CPU_DISASSEMBLE( i960 ); #endif -const device_type I960 = device_creator; +DEFINE_DEVICE_TYPE(I960, i960_cpu_device, "i960kb", "i960KB") i960_cpu_device::i960_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cpu_device(mconfig, I960, "i960kb", tag, owner, clock, "i960kb", __FILE__) - , m_program_config("program", ENDIANNESS_LITTLE, 32, 32, 0), m_rcache_pos(0), m_SAT(0), m_PRCB(0), m_PC(0), m_AC(0), m_IP(0), m_PIP(0), m_ICR(0), m_bursting(0), m_immediate_irq(0), - m_immediate_vector(0), m_immediate_pri(0), m_program(nullptr), m_direct(nullptr), m_icount(0) + : cpu_device(mconfig, I960, tag, owner, clock) + , m_program_config("program", ENDIANNESS_LITTLE, 32, 32, 0) + , m_rcache_pos(0), m_SAT(0), m_PRCB(0), m_PC(0), m_AC(0), m_IP(0), m_PIP(0), m_ICR(0), m_bursting(0), m_immediate_irq(0) + , m_immediate_vector(0), m_immediate_pri(0), m_program(nullptr), m_direct(nullptr), m_icount(0) { } diff --git a/src/devices/cpu/i960/i960.h b/src/devices/cpu/i960/i960.h index 64c1eb4cb98..1bc29a7c6f9 100644 --- a/src/devices/cpu/i960/i960.h +++ b/src/devices/cpu/i960/i960.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Farfetch'd, R. Belmont -#pragma once +#ifndef MAME_CPU_I960_I960_H +#define MAME_CPU_I960_I960_H -#ifndef __I960_H__ -#define __I960_H__ +#pragma once enum @@ -63,9 +63,6 @@ enum }; -enum { I960_RCACHE_SIZE = 4 }; - - class i960_cpu_device : public cpu_device { public: @@ -79,6 +76,8 @@ public: void i960_stall() { m_IP = m_PIP; } protected: + enum { I960_RCACHE_SIZE = 4 }; + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -172,7 +171,6 @@ private: }; -extern const device_type I960; - +DECLARE_DEVICE_TYPE(I960, i960_cpu_device) -#endif /* __I960_H__ */ +#endif // MAME_CPU_I960_I960_H diff --git a/src/devices/cpu/ie15/ie15.cpp b/src/devices/cpu/ie15/ie15.cpp index 2e8c34225a9..322d2b5753d 100644 --- a/src/devices/cpu/ie15/ie15.cpp +++ b/src/devices/cpu/ie15/ie15.cpp @@ -21,7 +21,7 @@ //************************************************************************** // device type definition -const device_type IE15_CPU = device_creator; +DEFINE_DEVICE_TYPE(IE15_CPU, ie15_cpu_device, "ie15_cpu", "ie15 CPU") //************************************************************************** // DEVICE INTERFACE @@ -31,11 +31,10 @@ const device_type IE15_CPU = device_creator; // ie15_cpu_device - constructor //------------------------------------------------- ie15_cpu_device::ie15_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cpu_device(mconfig, IE15_CPU, "ie15 CPU", tag, owner, clock, "ie15_cpu", __FILE__), - m_program_config("program", ENDIANNESS_LITTLE, 8, 14), - m_io_config("io", ENDIANNESS_LITTLE, 8, 8), m_A(0), m_CF(0), m_ZF(0), m_RF(0), m_flags(0), - m_program(nullptr), m_io(nullptr), - m_direct(nullptr) + : cpu_device(mconfig, IE15_CPU, tag, owner, clock) + , m_program_config("program", ENDIANNESS_LITTLE, 8, 14) + , m_io_config("io", ENDIANNESS_LITTLE, 8, 8), m_A(0), m_CF(0), m_ZF(0), m_RF(0), m_flags(0) + , m_program(nullptr), m_io(nullptr), m_direct(nullptr) { // set our instruction counter m_icountptr = &m_icount; diff --git a/src/devices/cpu/ie15/ie15.h b/src/devices/cpu/ie15/ie15.h index ab5525481b7..0b4d6fbdf8f 100644 --- a/src/devices/cpu/ie15/ie15.h +++ b/src/devices/cpu/ie15/ie15.h @@ -1,28 +1,14 @@ // license:BSD-3-Clause // copyright-holders:Sergey Svishchev -#ifndef __IE15_H__ -#define __IE15_H__ +#ifndef MAME_CPU_IE15_IE15_H +#define MAME_CPU_IE15_IE15_H -//************************************************************************** -// ENUMERATIONS -//************************************************************************** - -enum -{ - IE15_PC, - IE15_A, - IE15_R0, IE15_R1, IE15_R2, IE15_R3, IE15_R4, IE15_R5, IE15_R6, IE15_R7, - IE15_R8, IE15_R9, IE15_R10, IE15_R11, IE15_R12, IE15_R13, IE15_R14, IE15_R15, - IE15_R16, IE15_R17, IE15_R18, IE15_R19, IE15_R20, IE15_R21, IE15_R22, IE15_R23, - IE15_R24, IE15_R25, IE15_R26, IE15_R27, IE15_R28, IE15_R29, IE15_R30, IE15_R31 -}; +#pragma once //************************************************************************** // TYPE DEFINITIONS //************************************************************************** -class ie15_cpu_device; - class ie15_cpu_device : public cpu_device { public: @@ -30,6 +16,16 @@ public: ie15_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); protected: + enum + { + IE15_PC, + IE15_A, + IE15_R0, IE15_R1, IE15_R2, IE15_R3, IE15_R4, IE15_R5, IE15_R6, IE15_R7, + IE15_R8, IE15_R9, IE15_R10, IE15_R11, IE15_R12, IE15_R13, IE15_R14, IE15_R15, + IE15_R16, IE15_R17, IE15_R18, IE15_R19, IE15_R20, IE15_R21, IE15_R22, IE15_R23, + IE15_R24, IE15_R25, IE15_R26, IE15_R27, IE15_R28, IE15_R29, IE15_R30, IE15_R31 + }; + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -84,6 +80,6 @@ protected: }; // device type definition -extern const device_type IE15_CPU; +DECLARE_DEVICE_TYPE(IE15_CPU, ie15_cpu_device) -#endif +#endif // MAME_CPU_IE15_IE15_H diff --git a/src/devices/cpu/jaguar/jagdasm.cpp b/src/devices/cpu/jaguar/jagdasm.cpp index 5be18a327a3..538f35b4b48 100644 --- a/src/devices/cpu/jaguar/jagdasm.cpp +++ b/src/devices/cpu/jaguar/jagdasm.cpp @@ -23,6 +23,9 @@ STATIC VARIABLES ***************************************************************************/ +static constexpr unsigned JAGUAR_VARIANT_GPU = 0; +static constexpr unsigned JAGUAR_VARIANT_DSP = 1; + static const uint8_t convert_zero[32] = { 32,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 }; diff --git a/src/devices/cpu/jaguar/jaguar.cpp b/src/devices/cpu/jaguar/jaguar.cpp index 51ac4db16ff..f76bd49f1db 100644 --- a/src/devices/cpu/jaguar/jaguar.cpp +++ b/src/devices/cpu/jaguar/jaguar.cpp @@ -136,12 +136,12 @@ const jaguar_cpu_device::op_func jaguar_cpu_device::dsp_op_table[64] = #define ROPCODE(pc) (m_direct->read_word(pc, WORD_XOR_BE(0))) -const device_type JAGUARGPU = device_creator; -const device_type JAGUARDSP = device_creator; +DEFINE_DEVICE_TYPE(JAGUARGPU, jaguargpu_cpu_device, "jaguargpu", "Jaguar GPU") +DEFINE_DEVICE_TYPE(JAGUARDSP, jaguardsp_cpu_device, "jaguardsp", "Jaguar DSP") -jaguar_cpu_device::jaguar_cpu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source, bool isdsp) - : cpu_device(mconfig, type, name, tag, owner, clock, shortname, source) +jaguar_cpu_device::jaguar_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, bool isdsp) + : cpu_device(mconfig, type, tag, owner, clock) , m_program_config("program", ENDIANNESS_BIG, 32, 24, 0) , m_isdsp(isdsp) , m_cpu_interrupt(*this) @@ -163,13 +163,13 @@ jaguar_cpu_device::jaguar_cpu_device(const machine_config &mconfig, device_type jaguargpu_cpu_device::jaguargpu_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : jaguar_cpu_device(mconfig, JAGUARGPU, "Jaguar GPU", tag, owner, clock, "jaguargpu", __FILE__, false) + : jaguar_cpu_device(mconfig, JAGUARGPU, tag, owner, clock, false) { } jaguardsp_cpu_device::jaguardsp_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : jaguar_cpu_device(mconfig, JAGUARDSP, "Jaguar DSP", tag, owner, clock, "jaguardsp", __FILE__, true) + : jaguar_cpu_device(mconfig, JAGUARDSP, tag, owner, clock, true) { } diff --git a/src/devices/cpu/jaguar/jaguar.h b/src/devices/cpu/jaguar/jaguar.h index e01afb5f24f..de5f296a936 100644 --- a/src/devices/cpu/jaguar/jaguar.h +++ b/src/devices/cpu/jaguar/jaguar.h @@ -8,19 +8,10 @@ ***************************************************************************/ -#pragma once - -#ifndef __JAGUAR_H__ -#define __JAGUAR_H__ - - - -/*************************************************************************** - GLOBAL CONSTANTS -***************************************************************************/ +#ifndef MAME_CPU_JAGUAR_JAGUAR_H +#define MAME_CPU_JAGUAR_JAGUAR_H -#define JAGUAR_VARIANT_GPU 0 -#define JAGUAR_VARIANT_DSP 1 +#pragma once @@ -94,25 +85,25 @@ enum PUBLIC FUNCTIONS ***************************************************************************/ - -extern const device_type JAGUARGPU; -extern const device_type JAGUARDSP; +DECLARE_DEVICE_TYPE(JAGUARGPU, jaguargpu_cpu_device) +DECLARE_DEVICE_TYPE(JAGUARDSP, jaguardsp_cpu_device) class jaguar_cpu_device : public cpu_device { public: // construction/destruction - jaguar_cpu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source, bool isdsp); ~jaguar_cpu_device(); // static configuration helpers - template static devcb_base &set_int_func(device_t &device, _Object object) { return downcast(device).m_cpu_interrupt.set_callback(object); } + template static devcb_base &set_int_func(device_t &device, Object &&cb) { return downcast(device).m_cpu_interrupt.set_callback(std::forward(cb)); } - virtual DECLARE_WRITE32_MEMBER(ctrl_w) { assert(0); } - virtual DECLARE_READ32_MEMBER(ctrl_r) { assert(0); return 0; } + virtual DECLARE_WRITE32_MEMBER(ctrl_w) = 0; + virtual DECLARE_READ32_MEMBER(ctrl_r) = 0; protected: + jaguar_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, bool isdsp); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -124,7 +115,7 @@ protected: virtual void execute_set_input(int inputnum, int state) override; // device_memory_interface overrides - virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_0) const override { return (spacenum == AS_PROGRAM) ? &m_program_config : nullptr; } + virtual const address_space_config *memory_space_config(address_spacenum spacenum) const override { return (spacenum == AS_PROGRAM) ? &m_program_config : nullptr; } // device_state_interface overrides virtual void state_string_export(const device_state_entry &entry, std::string &str) const override; @@ -279,4 +270,4 @@ protected: }; -#endif /* __JAGUAR_H__ */ +#endif // MAME_CPU_JAGUAR_JAGUAR_H diff --git a/src/devices/cpu/lc8670/lc8670.cpp b/src/devices/cpu/lc8670/lc8670.cpp index 3149c51643f..f35cce529c5 100644 --- a/src/devices/cpu/lc8670/lc8670.cpp +++ b/src/devices/cpu/lc8670/lc8670.cpp @@ -31,7 +31,7 @@ // CONSTANTS //************************************************************************** -const device_type LC8670 = device_creator; +DEFINE_DEVICE_TYPE(LC8670, lc8670_cpu_device, "lc8670", "Sanyo LC8670") //************************************************************************** @@ -171,13 +171,13 @@ ADDRESS_MAP_END //------------------------------------------------- lc8670_cpu_device::lc8670_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cpu_device(mconfig, LC8670, "Sanyo LC8670", tag, owner, clock, "lc8670", __FILE__), - m_program_config("program", ENDIANNESS_BIG, 8, 16, 0), - m_data_config("data", ENDIANNESS_BIG, 8, 9, 0, ADDRESS_MAP_NAME(lc8670_internal_map)), - m_io_config("io", ENDIANNESS_BIG, 8, 8, 0), - m_pc(0), - m_ppc(0), - m_bankswitch_func(*this) + : cpu_device(mconfig, LC8670, tag, owner, clock) + , m_program_config("program", ENDIANNESS_BIG, 8, 16, 0) + , m_data_config("data", ENDIANNESS_BIG, 8, 9, 0, ADDRESS_MAP_NAME(lc8670_internal_map)) + , m_io_config("io", ENDIANNESS_BIG, 8, 8, 0) + , m_pc(0) + , m_ppc(0) + , m_bankswitch_func(*this) { memset(m_sfr, 0x00, sizeof(m_sfr)); memset(m_timer0, 0x00, sizeof(m_timer0)); @@ -204,7 +204,7 @@ void lc8670_cpu_device::device_start() // setup timers m_basetimer = timer_alloc(BASE_TIMER); - m_basetimer->adjust(attotime::from_hz(m_clocks[LC8670_SUB_CLOCK]), 0, attotime::from_hz(m_clocks[LC8670_SUB_CLOCK])); + m_basetimer->adjust(attotime::from_hz(m_clocks[unsigned(clock_source::SUB)]), 0, attotime::from_hz(m_clocks[unsigned(clock_source::SUB)])); m_clocktimer = timer_alloc(CLOCK_TIMER); // register state for debugger @@ -1168,14 +1168,14 @@ inline void lc8670_cpu_device::change_clock_source() switch(REG_OCR & 0x30) { case 0x00: - new_clock = m_clocks[LC8670_RC_CLOCK]; + new_clock = m_clocks[unsigned(clock_source::RC)]; break; case 0x20: - new_clock = m_clocks[LC8670_SUB_CLOCK]; + new_clock = m_clocks[unsigned(clock_source::SUB)]; break; case 0x10: case 0x30: - new_clock = m_clocks[LC8670_CF_CLOCK]; + new_clock = m_clocks[unsigned(clock_source::CF)]; break; } diff --git a/src/devices/cpu/lc8670/lc8670.h b/src/devices/cpu/lc8670/lc8670.h index e2fc9582e48..cec7274a567 100644 --- a/src/devices/cpu/lc8670/lc8670.h +++ b/src/devices/cpu/lc8670/lc8670.h @@ -6,22 +6,16 @@ **********************************************************************/ -#pragma once +#ifndef MAME_CPU_LC8670_LC8670_H +#define MAME_CPU_LC8670_LC8670_H -#ifndef __LC8670_H__ -#define __LC8670_H__ +#pragma once //************************************************************************** // DEFINITION //************************************************************************** -enum -{ - LC8670_PC = 1, - LC8670_SFR -}; - // input ports enum { @@ -39,20 +33,10 @@ enum LC8670_EXT_INT3 // P73 }; -// clock sources -enum -{ - LC8670_SUB_CLOCK = 0, - LC8670_RC_CLOCK, - LC8670_CF_CLOCK -}; - - //************************************************************************** // TYPE DEFINITIONS //************************************************************************** -typedef uint32_t (*lc8670_lcd_update)(device_t &device, bitmap_ind16 &bitmap, const rectangle &cliprect, uint8_t* vram, bool lcd_enabled, uint8_t stad); #define LC8670_LCD_UPDATE(name) uint32_t name(device_t &device, bitmap_ind16 &bitmap, const rectangle &cliprect, uint8_t* vram, bool lcd_enabled, uint8_t stad) @@ -61,9 +45,9 @@ typedef uint32_t (*lc8670_lcd_update)(device_t &device, bitmap_ind16 &bitmap, co //************************************************************************** #define MCFG_LC8670_SET_CLOCK_SOURCES(_sub_clock, _rc_clock, _cf_clock) \ - lc8670_cpu_device::static_set_cpu_clock(*device, LC8670_SUB_CLOCK, _sub_clock); \ - lc8670_cpu_device::static_set_cpu_clock(*device, LC8670_RC_CLOCK, _rc_clock); \ - lc8670_cpu_device::static_set_cpu_clock(*device, LC8670_CF_CLOCK, _cf_clock); + lc8670_cpu_device::static_set_cpu_clock(*device, lc8670_cpu_device::clock_source::SUB, _sub_clock); \ + lc8670_cpu_device::static_set_cpu_clock(*device, lc8670_cpu_device::clock_source::RC, _rc_clock); \ + lc8670_cpu_device::static_set_cpu_clock(*device, lc8670_cpu_device::clock_source::CF, _cf_clock); #define MCFG_LC8670_BANKSWITCH_CB(_devcb) \ devcb = &lc8670_cpu_device::static_set_bankswitch_cb(*device, DEVCB_##_devcb); @@ -76,6 +60,15 @@ typedef uint32_t (*lc8670_lcd_update)(device_t &device, bitmap_ind16 &bitmap, co class lc8670_cpu_device : public cpu_device { public: + enum class clock_source + { + SUB = 0, + RC, + CF + }; + + typedef uint32_t (*lcd_update)(device_t &device, bitmap_ind16 &bitmap, const rectangle &cliprect, uint8_t* vram, bool lcd_enabled, uint8_t stad); + // construction/destruction lc8670_cpu_device(const machine_config &mconfig, const char *_tag, device_t *_owner, uint32_t _clock); @@ -91,11 +84,17 @@ public: DECLARE_WRITE8_MEMBER(xram_w); // static configuration helpers - static void static_set_cpu_clock(device_t &device, int _source, uint32_t _clock) { downcast(device).m_clocks[_source] = _clock; } - static void static_set_lcd_update_cb(device_t &device, lc8670_lcd_update _cb) { downcast(device).m_lcd_update_func = _cb; } - template static devcb_base & static_set_bankswitch_cb(device_t &device, _Object object) { return downcast(device).m_bankswitch_func.set_callback(object); } + static void static_set_cpu_clock(device_t &device, clock_source source, uint32_t clock) { downcast(device).m_clocks[unsigned(source)] = clock; } + static void static_set_lcd_update_cb(device_t &device, lcd_update cb) { downcast(device).m_lcd_update_func = cb; } + template static devcb_base & static_set_bankswitch_cb(device_t &device, Object &&cb) { return downcast(device).m_bankswitch_func.set_callback(std::forward(cb)); } protected: + enum + { + LC8670_PC = 1, + LC8670_SFR + }; + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -194,7 +193,6 @@ private: int op_rolc(); int op_xor(); -private: address_space_config m_program_config; address_space_config m_data_config; address_space_config m_io_config; @@ -234,7 +232,7 @@ private: // configuration uint32_t m_clocks[3]; // clock sources devcb_write8 m_bankswitch_func; // bankswitch CB - lc8670_lcd_update m_lcd_update_func; // LCD update CB + lcd_update m_lcd_update_func; // LCD update CB // interrupts vectors static const uint16_t s_irq_vectors[16]; @@ -271,6 +269,6 @@ private: static const dasm_entry s_dasm_table[80]; }; -extern const device_type LC8670; +DECLARE_DEVICE_TYPE(LC8670, lc8670_cpu_device) -#endif /* __LC8670_H__ */ +#endif // MAME_CPU_LC8670_LC8670_H diff --git a/src/devices/cpu/lh5801/lh5801.cpp b/src/devices/cpu/lh5801/lh5801.cpp index b7467695a68..3ab8bd38a35 100644 --- a/src/devices/cpu/lh5801/lh5801.cpp +++ b/src/devices/cpu/lh5801/lh5801.cpp @@ -15,13 +15,14 @@ *****************************************************************************/ #include "emu.h" -#include "debugger.h" - #include "lh5801.h" +#include "debugger.h" + #define VERBOSE 0 -#define LOG(x) do { if (VERBOSE) logerror x; } while (0) +#include "logmacro.h" + enum { @@ -62,11 +63,11 @@ enum #define H 0x10 -const device_type LH5801 = device_creator; +DEFINE_DEVICE_TYPE(LH5801, lh5801_cpu_device, "lh5801", "LH5801") lh5801_cpu_device::lh5801_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cpu_device(mconfig, LH5801, "LH5801", tag, owner, clock, "lh5801", __FILE__) + : cpu_device(mconfig, LH5801, tag, owner, clock) , m_program_config("program", ENDIANNESS_LITTLE, 8, 16, 0) , m_io_config("io", ENDIANNESS_LITTLE, 8, 16, 0) , m_in_func(*this) diff --git a/src/devices/cpu/lh5801/lh5801.h b/src/devices/cpu/lh5801/lh5801.h index d48c8661e01..4e7433dfb5d 100644 --- a/src/devices/cpu/lh5801/lh5801.h +++ b/src/devices/cpu/lh5801/lh5801.h @@ -7,10 +7,10 @@ * * *****************************************************************************/ -#pragma once +#ifndef MAME_CPU_LH5801_LH5801_H +#define MAME_CPU_LH5801_LH5801_H -#ifndef __LH5801_H__ -#define __LH5801_H__ +#pragma once /* lh5801 @@ -71,7 +71,7 @@ public: lh5801_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // static configuration helpers - template static devcb_base &set_in_func(device_t &device, _Object object) { return downcast(device).m_in_func.set_callback(object); } + template static devcb_base &set_in_func(device_t &device, Object &&cb) { return downcast(device).m_in_func.set_callback(std::forward(cb)); } protected: // device-level overrides @@ -87,7 +87,7 @@ protected: virtual void execute_set_input(int inputnum, int state) override; // device_memory_interface overrides - virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_0) const override { return (spacenum == AS_PROGRAM) ? &m_program_config : ( (spacenum == AS_IO) ? &m_io_config : nullptr ); } + virtual const address_space_config *memory_space_config(address_spacenum spacenum) const override { return (spacenum == AS_PROGRAM) ? &m_program_config : (spacenum == AS_IO) ? &m_io_config : nullptr; } // device_state_interface overrides virtual void state_string_export(const device_state_entry &entry, std::string &str) const override; @@ -182,7 +182,7 @@ private: }; -extern const device_type LH5801; +DECLARE_DEVICE_TYPE(LH5801, lh5801_cpu_device) -#endif /* __LH5801_H__ */ +#endif // MAME_CPU_LH5801_LH5801_H diff --git a/src/devices/cpu/lr35902/lr35902.cpp b/src/devices/cpu/lr35902/lr35902.cpp index 5602a19d721..c4b454c8719 100644 --- a/src/devices/cpu/lr35902/lr35902.cpp +++ b/src/devices/cpu/lr35902/lr35902.cpp @@ -40,8 +40,8 @@ /*************************************************************/ #include "emu.h" -#include "debugger.h" #include "lr35902.h" +#include "debugger.h" /* Flag bit definitions */ enum lr35902_flag @@ -60,11 +60,11 @@ enum lr35902_flag // LR35902 DEVICE //************************************************************************** -const device_type LR35902 = device_creator; +DEFINE_DEVICE_TYPE(LR35902, lr35902_cpu_device, "lr35902", "LR35902") lr35902_cpu_device::lr35902_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cpu_device(mconfig, LR35902, "LR35902", tag, owner, clock, "lr35902", __FILE__) + : cpu_device(mconfig, LR35902, tag, owner, clock) , m_program_config("program", ENDIANNESS_LITTLE, 8, 16, 0) , m_A(0) , m_F(0) diff --git a/src/devices/cpu/lr35902/lr35902.h b/src/devices/cpu/lr35902/lr35902.h index b1b511db760..120cf6836b7 100644 --- a/src/devices/cpu/lr35902/lr35902.h +++ b/src/devices/cpu/lr35902/lr35902.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Wilbert Pol -#pragma once +#ifndef MAME_CPU_LR35902_LR35902_H +#define MAME_CPU_LR35902_LR35902_H -#ifndef __LR35902_H__ -#define __LR35902_H__ +#pragma once #define MCFG_LR35902_TIMER_CB(_devcb) \ @@ -33,7 +33,7 @@ enum }; -class lr35902_cpu_device : public cpu_device +class lr35902_cpu_device : public cpu_device { public: // construction/destruction @@ -140,6 +140,6 @@ protected: devcb_write32 m_incdec16_func; }; -extern const device_type LR35902; +DECLARE_DEVICE_TYPE(LR35902, lr35902_cpu_device) -#endif /* __LR35902_H__ */ +#endif // MAME_CPU_LR35902_LR35902_H diff --git a/src/devices/cpu/m37710/m37710.cpp b/src/devices/cpu/m37710/m37710.cpp index 44af6a383cc..b17e9d5e2e5 100644 --- a/src/devices/cpu/m37710/m37710.cpp +++ b/src/devices/cpu/m37710/m37710.cpp @@ -62,9 +62,9 @@ #define M37710_DEBUG (0) // enables verbose logging for peripherals, etc. -const device_type M37702M2 = device_creator; -const device_type M37702S1 = device_creator; -const device_type M37710S4 = device_creator; +DEFINE_DEVICE_TYPE(M37702M2, m37702m2_device, "m37702m2", "M37702M2") +DEFINE_DEVICE_TYPE(M37702S1, m37702s1_device, "m37702s1", "M37702S1") +DEFINE_DEVICE_TYPE(M37710S4, m37710s4_device, "m37710s4", "M37710S4") // On-board RAM, ROM, and peripherals @@ -94,8 +94,8 @@ ADDRESS_MAP_END // many other combinations of RAM and ROM size exist -m37710_cpu_device::m37710_cpu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source, address_map_delegate map_delegate) - : cpu_device(mconfig, type, name, tag, owner, clock, shortname, source) +m37710_cpu_device::m37710_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, address_map_delegate map_delegate) + : cpu_device(mconfig, type, tag, owner, clock) , m_program_config("program", ENDIANNESS_LITTLE, 16, 24, 0, map_delegate) , m_io_config("io", ENDIANNESS_LITTLE, 8, 16, 0) { @@ -103,25 +103,25 @@ m37710_cpu_device::m37710_cpu_device(const machine_config &mconfig, device_type m37702m2_device::m37702m2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : m37710_cpu_device(mconfig, M37702M2, "M37702M2", tag, owner, clock, "m37702m2", __FILE__, address_map_delegate(FUNC(m37702m2_device::map), this)) + : m37702m2_device(mconfig, M37702M2, tag, owner, clock) { } -m37702m2_device::m37702m2_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : m37710_cpu_device(mconfig, type, name, tag, owner, clock, shortname, source, address_map_delegate(FUNC(m37702m2_device::map), this)) +m37702m2_device::m37702m2_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : m37710_cpu_device(mconfig, type, tag, owner, clock, address_map_delegate(FUNC(m37702m2_device::map), this)) { } m37702s1_device::m37702s1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : m37710_cpu_device(mconfig, M37702S1, "M37702S1", tag, owner, clock, "m37702s1", __FILE__, address_map_delegate(FUNC(m37702s1_device::map), this)) + : m37710_cpu_device(mconfig, M37702S1, tag, owner, clock, address_map_delegate(FUNC(m37702s1_device::map), this)) { } m37710s4_device::m37710s4_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : m37710_cpu_device(mconfig, M37710S4, "M37710S4", tag, owner, clock, "m37710s4", __FILE__, address_map_delegate(FUNC(m37710s4_device::map), this)) + : m37710_cpu_device(mconfig, M37710S4, tag, owner, clock, address_map_delegate(FUNC(m37710s4_device::map), this)) { } diff --git a/src/devices/cpu/m37710/m37710.h b/src/devices/cpu/m37710/m37710.h index d775b8564c3..64a9c21b692 100644 --- a/src/devices/cpu/m37710/m37710.h +++ b/src/devices/cpu/m37710/m37710.h @@ -1,7 +1,7 @@ // license:BSD-3-Clause // copyright-holders:R. Belmont, Karl Stenerud, hap -#ifndef __M37710_H__ -#define __M37710_H__ +#ifndef MAME_CPU_M37710_M37710_H +#define MAME_CPU_M37710_M37710_H /* ======================================================================== */ /* =============================== COPYRIGHT ============================== */ @@ -93,13 +93,13 @@ enum class m37710_cpu_device : public cpu_device { public: - // construction/destruction - m37710_cpu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source, address_map_delegate map_delegate); - DECLARE_READ16_MEMBER( m37710_internal_word_r ); DECLARE_WRITE16_MEMBER( m37710_internal_word_w ); protected: + // construction/destruction + m37710_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, address_map_delegate map_delegate); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -2024,8 +2024,8 @@ class m37702m2_device : public m37710_cpu_device public: // construction/destruction m37702m2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - m37702m2_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); protected: + m37702m2_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); DECLARE_ADDRESS_MAP(map, 16); }; @@ -2039,13 +2039,13 @@ protected: }; -extern const device_type M37702M2; -extern const device_type M37702S1; -extern const device_type M37710S4; +DECLARE_DEVICE_TYPE(M37702M2, m37702m2_device) +DECLARE_DEVICE_TYPE(M37702S1, m37702s1_device) +DECLARE_DEVICE_TYPE(M37710S4, m37710s4_device) /* ======================================================================== */ /* ============================== END OF FILE ============================= */ /* ======================================================================== */ -#endif /* __M37710_H__ */ +#endif // MAME_CPU_M37710_M37710_H diff --git a/src/devices/cpu/m6502/deco16.cpp b/src/devices/cpu/m6502/deco16.cpp index b32db04191b..66404758eb5 100644 --- a/src/devices/cpu/m6502/deco16.cpp +++ b/src/devices/cpu/m6502/deco16.cpp @@ -13,10 +13,10 @@ #define DECO16_VERBOSE 1 -const device_type DECO16 = device_creator; +DEFINE_DEVICE_TYPE(DECO16, deco16_device, "deco16", "DECO16") deco16_device::deco16_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - m6502_device(mconfig, DECO16, "DECO16", tag, owner, clock, "deco16", __FILE__), + m6502_device(mconfig, DECO16, tag, owner, clock), io(nullptr), io_config("io", ENDIANNESS_LITTLE, 8, 16) { diff --git a/src/devices/cpu/m6502/deco16.h b/src/devices/cpu/m6502/deco16.h index f018ddec056..73c2314d945 100644 --- a/src/devices/cpu/m6502/deco16.h +++ b/src/devices/cpu/m6502/deco16.h @@ -8,8 +8,8 @@ ***************************************************************************/ -#ifndef __DECO16_H__ -#define __DECO16_H__ +#ifndef MAME_CPU_M6502_DECO16_H +#define MAME_CPU_M6502_DECO16_H #include "m6502.h" @@ -57,6 +57,6 @@ enum { DECO16_SET_OVERFLOW = m6502_device::V_LINE }; -extern const device_type DECO16; +DECLARE_DEVICE_TYPE(DECO16, deco16_device) -#endif +#endif // MAME_CPU_M6502_DECO16_H diff --git a/src/devices/cpu/m6502/m3745x.cpp b/src/devices/cpu/m6502/m3745x.cpp index bbb46b9eb49..d92e2835e57 100644 --- a/src/devices/cpu/m6502/m3745x.cpp +++ b/src/devices/cpu/m6502/m3745x.cpp @@ -28,7 +28,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type M37450 = device_creator; +DEFINE_DEVICE_TYPE(M37450, m37450_device, "m37450", "Mitsubishi M37450") //************************************************************************** // LIVE DEVICE @@ -37,8 +37,8 @@ const device_type M37450 = device_creator; //------------------------------------------------- // m3745x_device - constructor //------------------------------------------------- -m3745x_device::m3745x_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, address_map_constructor internal_map, const char *shortname, const char *source) : - m740_device(mconfig, type, name, tag, owner, clock, "m3745x", source), +m3745x_device::m3745x_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, address_map_constructor internal_map) : + m740_device(mconfig, type, tag, owner, clock), m_program_config("program", ENDIANNESS_LITTLE, 8, 16, 0, internal_map), read_p3(*this), read_p4(*this), @@ -499,11 +499,11 @@ static ADDRESS_MAP_START( m37450_map, AS_PROGRAM, 8, m37450_device ) ADDRESS_MAP_END m37450_device::m37450_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - m3745x_device(mconfig, M37450, "Mitsubishi M37450", tag, owner, clock, ADDRESS_MAP_NAME(m37450_map), "m3745x", __FILE__) + m37450_device(mconfig, M37450, tag, owner, clock) { } -m37450_device::m37450_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - m3745x_device(mconfig, type, name, tag, owner, clock, ADDRESS_MAP_NAME(m37450_map), shortname, source) +m37450_device::m37450_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + m3745x_device(mconfig, type, tag, owner, clock, ADDRESS_MAP_NAME(m37450_map)) { } diff --git a/src/devices/cpu/m6502/m3745x.h b/src/devices/cpu/m6502/m3745x.h index 6b85aee9c20..2b592ae4e9e 100644 --- a/src/devices/cpu/m6502/m3745x.h +++ b/src/devices/cpu/m6502/m3745x.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Olivier Galibert -#pragma once +#ifndef MAME_CPU_M6502_M3745X_H +#define MAME_CPU_M6502_M3745X_H -#ifndef __M3745X_H__ -#define __M3745X_H__ +#pragma once #include "m740.h" @@ -60,9 +60,6 @@ public: M3745X_SET_OVERFLOW = M740_SET_OVERFLOW }; - // construction/destruction - m3745x_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, address_map_constructor internal_map, const char *shortname, const char *source); - const address_space_config m_program_config; template void set_p3_callbacks(_read rd, _write wr) @@ -120,6 +117,9 @@ public: bool are_port_bits_output(uint8_t port, uint8_t mask) { return ((m_ddrs[port] & mask) == mask) ? true : false; } protected: + // construction/destruction + m3745x_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, address_map_constructor internal_map); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -145,9 +145,11 @@ class m37450_device : public m3745x_device { public: m37450_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - m37450_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); + +protected: + m37450_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); }; -extern const device_type M37450; +DECLARE_DEVICE_TYPE(M37450, m37450_device) -#endif +#endif // MAME_CPU_M6502_M3745X_H diff --git a/src/devices/cpu/m6502/m4510.cpp b/src/devices/cpu/m6502/m4510.cpp index 45f2c369b3e..fb84a15112a 100644 --- a/src/devices/cpu/m6502/m4510.cpp +++ b/src/devices/cpu/m6502/m4510.cpp @@ -11,10 +11,10 @@ #include "emu.h" #include "m4510.h" -const device_type M4510 = device_creator; +DEFINE_DEVICE_TYPE(M4510, m4510_device, "m4510", "M4510") m4510_device::m4510_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - m65ce02_device(mconfig, M4510, "M4510", tag, owner, clock, "m4510", __FILE__), + m65ce02_device(mconfig, M4510, tag, owner, clock), map_enable(0), nomap(false) { diff --git a/src/devices/cpu/m6502/m4510.h b/src/devices/cpu/m6502/m4510.h index 62e55ea7a8c..4b25f0c9c26 100644 --- a/src/devices/cpu/m6502/m4510.h +++ b/src/devices/cpu/m6502/m4510.h @@ -8,8 +8,10 @@ ***************************************************************************/ -#ifndef __M4510_H__ -#define __M4510_H__ +#ifndef MAME_CPU_M6502_M4510_H +#define MAME_CPU_M6502_M4510_H + +#pragma once #include "m65ce02.h" @@ -77,6 +79,6 @@ enum { M4510_NMI_LINE = m6502_device::NMI_LINE }; -extern const device_type M4510; +DECLARE_DEVICE_TYPE(M4510, m4510_device) -#endif +#endif // MAME_CPU_M6502_M4510_H diff --git a/src/devices/cpu/m6502/m5074x.cpp b/src/devices/cpu/m6502/m5074x.cpp index 9ea21e760cb..9498774c62d 100644 --- a/src/devices/cpu/m6502/m5074x.cpp +++ b/src/devices/cpu/m6502/m5074x.cpp @@ -29,8 +29,8 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type M50740 = device_creator; -const device_type M50741 = device_creator; +DEFINE_DEVICE_TYPE(M50740, m50740_device, "m50740", "Mitsubishi M50740") +DEFINE_DEVICE_TYPE(M50741, m50741_device, "m50741", "Mitsubishi M50741") //************************************************************************** // LIVE DEVICE @@ -39,8 +39,8 @@ const device_type M50741 = device_creator; //------------------------------------------------- // m5074x_device - constructor //------------------------------------------------- -m5074x_device::m5074x_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, address_map_constructor internal_map, const char *shortname, const char *source) : - m740_device(mconfig, type, name, tag, owner, clock, shortname, source), +m5074x_device::m5074x_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, address_map_constructor internal_map) : + m740_device(mconfig, type, tag, owner, clock), m_program_config("program", ENDIANNESS_LITTLE, 8, 13, 0, internal_map), read_p0(*this), read_p1(*this), @@ -490,12 +490,12 @@ static ADDRESS_MAP_START( m50740_map, AS_PROGRAM, 8, m50740_device ) ADDRESS_MAP_END m50740_device::m50740_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - m5074x_device(mconfig, M50740, "Mitsubishi M50740", tag, owner, clock, ADDRESS_MAP_NAME(m50740_map), "m50740", __FILE__) + m50740_device(mconfig, M50740, tag, owner, clock) { } -m50740_device::m50740_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - m5074x_device(mconfig, type, name, tag, owner, clock, ADDRESS_MAP_NAME(m50740_map), shortname, source) +m50740_device::m50740_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + m5074x_device(mconfig, type, tag, owner, clock, ADDRESS_MAP_NAME(m50740_map)) { } @@ -508,11 +508,11 @@ static ADDRESS_MAP_START( m50741_map, AS_PROGRAM, 8, m50741_device ) ADDRESS_MAP_END m50741_device::m50741_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - m5074x_device(mconfig, M50740, "Mitsubishi M50741", tag, owner, clock, ADDRESS_MAP_NAME(m50741_map), "m50741", __FILE__) + m50741_device(mconfig, M50740, tag, owner, clock) { } -m50741_device::m50741_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - m5074x_device(mconfig, type, name, tag, owner, clock, ADDRESS_MAP_NAME(m50741_map), shortname, source) +m50741_device::m50741_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + m5074x_device(mconfig, type, tag, owner, clock, ADDRESS_MAP_NAME(m50741_map)) { } diff --git a/src/devices/cpu/m6502/m5074x.h b/src/devices/cpu/m6502/m5074x.h index 0486a243a24..635c0d9f552 100644 --- a/src/devices/cpu/m6502/m5074x.h +++ b/src/devices/cpu/m6502/m5074x.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Olivier Galibert -#pragma once +#ifndef MAME_CPU_M6502_M5074X_H +#define MAME_CPU_M6502_M5074X_H -#ifndef __M5074X_H__ -#define __M5074X_H__ +#pragma once #include "m740.h" @@ -71,9 +71,6 @@ class m5074x_device : public m740_device }; public: - // construction/destruction - m5074x_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, address_map_constructor internal_map, const char *shortname, const char *source); - const address_space_config m_program_config; template static devcb_base &set_p0_rd_callback(device_t &device, _Object object) { return downcast(device).read_p0.set_callback(object); } @@ -96,6 +93,9 @@ public: bool are_port_bits_output(uint8_t port, uint8_t mask) { return ((m_ddrs[port] & mask) == mask) ? true : false; } protected: + // construction/destruction + m5074x_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, address_map_constructor internal_map); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -123,17 +123,21 @@ class m50740_device : public m5074x_device { public: m50740_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - m50740_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); + +protected: + m50740_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); }; class m50741_device : public m5074x_device { public: m50741_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - m50741_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); + +protected: + m50741_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); }; -extern const device_type M50740; -extern const device_type M50741; +DECLARE_DEVICE_TYPE(M50740, m50740_device) +DECLARE_DEVICE_TYPE(M50741, m50741_device) -#endif +#endif // MAME_CPU_M6502_M5074X_H diff --git a/src/devices/cpu/m6502/m6502.cpp b/src/devices/cpu/m6502/m6502.cpp index b6a93b00769..ea3f2662fca 100644 --- a/src/devices/cpu/m6502/m6502.cpp +++ b/src/devices/cpu/m6502/m6502.cpp @@ -12,20 +12,15 @@ #include "debugger.h" #include "m6502.h" -const device_type M6502 = device_creator; +DEFINE_DEVICE_TYPE(M6502, m6502_device, "m6502", "M6502") m6502_device::m6502_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - cpu_device(mconfig, M6502, "M6502", tag, owner, clock, "m6502", __FILE__), - sync_w(*this), - program_config("program", ENDIANNESS_LITTLE, 8, 16), - sprogram_config("decrypted_opcodes", ENDIANNESS_LITTLE, 8, 16), PPC(0), NPC(0), PC(0), SP(0), TMP(0), TMP2(0), A(0), X(0), Y(0), P(0), IR(0), inst_state_base(0), mintf(nullptr), - inst_state(0), inst_substate(0), icount(0), nmi_state(false), irq_state(false), apu_irq_state(false), v_state(false), irq_taken(false), sync(false), inhibit_interrupts(false) + m6502_device(mconfig, M6502, tag, owner, clock) { - direct_disabled = false; } -m6502_device::m6502_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - cpu_device(mconfig, type, name, tag, owner, clock, shortname, source), +m6502_device::m6502_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + cpu_device(mconfig, type, tag, owner, clock), sync_w(*this), program_config("program", ENDIANNESS_LITTLE, 8, 16), sprogram_config("decrypted_opcodes", ENDIANNESS_LITTLE, 8, 16), PPC(0), NPC(0), PC(0), SP(0), TMP(0), TMP2(0), A(0), X(0), Y(0), P(0), IR(0), inst_state_base(0), mintf(nullptr), diff --git a/src/devices/cpu/m6502/m6502.h b/src/devices/cpu/m6502/m6502.h index bb112697431..d764e906ab8 100644 --- a/src/devices/cpu/m6502/m6502.h +++ b/src/devices/cpu/m6502/m6502.h @@ -8,8 +8,8 @@ ***************************************************************************/ -#ifndef __M6502FAM_H__ -#define __M6502FAM_H__ +#ifndef MAME_CPU_M6502_M6502_H +#define MAME_CPU_M6502_M6502_H #define MCFG_M6502_DISABLE_DIRECT() \ downcast(device)->disable_direct(); @@ -27,7 +27,6 @@ public: }; m6502_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - m6502_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); bool get_sync() const { return sync; } void disable_direct() { direct_disabled = true; } @@ -37,6 +36,8 @@ public: devcb_write_line sync_w; protected: + m6502_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + class memory_interface { public: address_space *program, *sprogram; @@ -327,6 +328,6 @@ enum { M6502_SET_OVERFLOW = m6502_device::V_LINE }; -extern const device_type M6502; +DECLARE_DEVICE_TYPE(M6502, m6502_device) -#endif +#endif // MAME_CPU_M6502_M6502_H diff --git a/src/devices/cpu/m6502/m6504.cpp b/src/devices/cpu/m6502/m6504.cpp index 4ec4c9ecb31..c6a20579333 100644 --- a/src/devices/cpu/m6502/m6504.cpp +++ b/src/devices/cpu/m6502/m6504.cpp @@ -11,10 +11,10 @@ #include "emu.h" #include "m6504.h" -const device_type M6504 = device_creator; +DEFINE_DEVICE_TYPE(M6504, m6504_device, "m6504", "M6504") m6504_device::m6504_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - m6502_device(mconfig, M6504, "M6504", tag, owner, clock, "m6504", __FILE__) + m6502_device(mconfig, M6504, tag, owner, clock) { program_config.m_addrbus_width = 13; sprogram_config.m_addrbus_width = 13; diff --git a/src/devices/cpu/m6502/m6504.h b/src/devices/cpu/m6502/m6504.h index fdd15ff46a6..94f0c68ce2a 100644 --- a/src/devices/cpu/m6502/m6504.h +++ b/src/devices/cpu/m6502/m6504.h @@ -8,8 +8,8 @@ ***************************************************************************/ -#ifndef __M6504_H__ -#define __M6504_H__ +#ifndef MAME_CPU_M6502_M6504_H +#define MAME_CPU_M6502_M6504_H #include "m6502.h" @@ -46,4 +46,4 @@ enum { extern const device_type M6504; -#endif +#endif // MAME_CPU_M6502_M6504_H diff --git a/src/devices/cpu/m6502/m6507.cpp b/src/devices/cpu/m6502/m6507.cpp index 21bb42dbd3e..d64b08c54c9 100644 --- a/src/devices/cpu/m6502/m6507.cpp +++ b/src/devices/cpu/m6502/m6507.cpp @@ -11,10 +11,10 @@ #include "emu.h" #include "m6507.h" -const device_type M6507 = device_creator; +DEFINE_DEVICE_TYPE(M6507, m6507_device, "m6507", "M6507") m6507_device::m6507_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - m6502_device(mconfig, M6507, "M6507", tag, owner, clock, "m6507", __FILE__) + m6502_device(mconfig, M6507, tag, owner, clock) { program_config.m_addrbus_width = 13; sprogram_config.m_addrbus_width = 13; diff --git a/src/devices/cpu/m6502/m6507.h b/src/devices/cpu/m6502/m6507.h index 256f1e4c8bb..93c39a35378 100644 --- a/src/devices/cpu/m6502/m6507.h +++ b/src/devices/cpu/m6502/m6507.h @@ -8,8 +8,8 @@ ***************************************************************************/ -#ifndef __M6507_H__ -#define __M6507_H__ +#ifndef MAME_CPU_M6502_M6507_H +#define MAME_CPU_M6502_M6507_H #include "m6502.h" @@ -44,6 +44,6 @@ enum { M6507_SET_OVERFLOW = m6502_device::V_LINE }; -extern const device_type M6507; +DECLARE_DEVICE_TYPE(M6507, m6507_device) -#endif +#endif // MAME_CPU_M6502_M6507_H diff --git a/src/devices/cpu/m6502/m6509.cpp b/src/devices/cpu/m6502/m6509.cpp index 5241c36d88a..729b919fb50 100644 --- a/src/devices/cpu/m6502/m6509.cpp +++ b/src/devices/cpu/m6502/m6509.cpp @@ -11,10 +11,10 @@ #include "emu.h" #include "m6509.h" -const device_type M6509 = device_creator; +DEFINE_DEVICE_TYPE(M6509, m6509_device, "m6509", "M6509") m6509_device::m6509_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - m6502_device(mconfig, M6509, "M6509", tag, owner, clock, "m6509", __FILE__), XPC(0), bank_i(0), bank_y(0) + m6502_device(mconfig, M6509, tag, owner, clock), XPC(0), bank_i(0), bank_y(0) { program_config.m_addrbus_width = 20; program_config.m_logaddr_width = 20; diff --git a/src/devices/cpu/m6502/m6509.h b/src/devices/cpu/m6502/m6509.h index 349ea8b20f7..0057f900c83 100644 --- a/src/devices/cpu/m6502/m6509.h +++ b/src/devices/cpu/m6502/m6509.h @@ -8,8 +8,8 @@ ***************************************************************************/ -#ifndef __M6509_H__ -#define __M6509_H__ +#ifndef MAME_CPU_M6502_M6509_H +#define MAME_CPU_M6502_M6509_H #include "m6502.h" @@ -82,6 +82,6 @@ enum { M6509_BY }; -extern const device_type M6509; +DECLARE_DEVICE_TYPE(M6509, m6509_device) -#endif +#endif // MAME_CPU_M6502_M6509_H diff --git a/src/devices/cpu/m6502/m6510.cpp b/src/devices/cpu/m6502/m6510.cpp index e1aa0937f76..e4b4585eaaa 100644 --- a/src/devices/cpu/m6502/m6510.cpp +++ b/src/devices/cpu/m6502/m6510.cpp @@ -11,19 +11,15 @@ #include "emu.h" #include "m6510.h" -const device_type M6510 = device_creator; +DEFINE_DEVICE_TYPE(M6510, m6510_device, "m6510", "M6510") m6510_device::m6510_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - m6502_device(mconfig, M6510, "M6510", tag, owner, clock, "m6510", __FILE__), - read_port(*this), - write_port(*this), dir(0), port(0), drive(0) + m6510_device(mconfig, M6510, tag, owner, clock) { - pullup = 0x00; - floating = 0x00; } -m6510_device::m6510_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - m6502_device(mconfig, type, name, tag, owner, clock, shortname, source), +m6510_device::m6510_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + m6502_device(mconfig, type, tag, owner, clock), read_port(*this), write_port(*this), dir(0), port(0), drive(0) { diff --git a/src/devices/cpu/m6502/m6510.h b/src/devices/cpu/m6502/m6510.h index e51bf21e718..d3819f4899f 100644 --- a/src/devices/cpu/m6502/m6510.h +++ b/src/devices/cpu/m6502/m6510.h @@ -7,9 +7,10 @@ 6502 with 6 i/o pins, also known as 8500 ***************************************************************************/ +#ifndef MAME_CPU_M6502_M6510_H +#define MAME_CPU_M6502_M6510_H -#ifndef __M6510FAM_H__ -#define __M6510FAM_H__ +#pragma once #include "m6502.h" @@ -22,7 +23,6 @@ class m6510_device : public m6502_device { public: m6510_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - m6510_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); uint8_t get_port(); void set_pulls(uint8_t pullup, uint8_t pulldown); @@ -39,6 +39,8 @@ public: virtual void do_exec_partial() override; protected: + m6510_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + class mi_6510_normal : public memory_interface { public: m6510_device *base; @@ -93,6 +95,6 @@ enum { M6510_NMI_LINE = m6502_device::NMI_LINE }; -extern const device_type M6510; +DECLARE_DEVICE_TYPE(M6510, m6510_device) -#endif +#endif // MAME_CPU_M6502_M6510_H diff --git a/src/devices/cpu/m6502/m6510t.cpp b/src/devices/cpu/m6502/m6510t.cpp index c2d9e750f5a..36844bbf655 100644 --- a/src/devices/cpu/m6502/m6510t.cpp +++ b/src/devices/cpu/m6502/m6510t.cpp @@ -11,9 +11,9 @@ #include "emu.h" #include "m6510t.h" -const device_type M6510T = device_creator; +DEFINE_DEVICE_TYPE(M6510T, m6510t_device, "m6510t", "M6510T") m6510t_device::m6510t_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - m6510_device(mconfig, M6510T, "M6510T", tag, owner, clock, "m6510t", __FILE__) + m6510_device(mconfig, M6510T, tag, owner, clock) { } diff --git a/src/devices/cpu/m6502/m6510t.h b/src/devices/cpu/m6502/m6510t.h index e27fe97ea98..04e683bd0c3 100644 --- a/src/devices/cpu/m6502/m6510t.h +++ b/src/devices/cpu/m6502/m6510t.h @@ -8,8 +8,8 @@ ***************************************************************************/ -#ifndef __M6510T_H__ -#define __M6510T_H__ +#ifndef MAME_CPU_M6502_M6510T_H +#define MAME_CPU_M6502_M6510T_H #include "m6510.h" @@ -29,6 +29,6 @@ enum { M6510T_SET_OVERFLOW = m6502_device::V_LINE }; -extern const device_type M6510T; +DECLARE_DEVICE_TYPE(M6510T, m6510t_device) -#endif +#endif // MAME_CPU_M6502_M6510T_H diff --git a/src/devices/cpu/m6502/m65c02.cpp b/src/devices/cpu/m6502/m65c02.cpp index 9f0a1d4cc9e..d109cc502bf 100644 --- a/src/devices/cpu/m6502/m65c02.cpp +++ b/src/devices/cpu/m6502/m65c02.cpp @@ -12,15 +12,15 @@ #include "emu.h" #include "m65c02.h" -const device_type M65C02 = device_creator; +DEFINE_DEVICE_TYPE(M65C02, m65c02_device, "m65c02", "M65C02") m65c02_device::m65c02_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - m6502_device(mconfig, M65C02, "M65C02", tag, owner, clock, "mc65c02", __FILE__) + m6502_device(mconfig, M65C02, tag, owner, clock) { } -m65c02_device::m65c02_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - m6502_device(mconfig, type, name, tag, owner, clock, shortname, source) +m65c02_device::m65c02_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + m6502_device(mconfig, type, tag, owner, clock) { } diff --git a/src/devices/cpu/m6502/m65c02.h b/src/devices/cpu/m6502/m65c02.h index 5d6d1503c2f..828556e5f83 100644 --- a/src/devices/cpu/m6502/m65c02.h +++ b/src/devices/cpu/m6502/m65c02.h @@ -8,16 +8,16 @@ not the bitwise ones) ***************************************************************************/ +#ifndef MAME_CPU_M6502_M65C02_H +#define MAME_CPU_M6502_M65C02_H -#ifndef __M65C02_H__ -#define __M65C02_H__ +#pragma once #include "m6502.h" class m65c02_device : public m6502_device { public: m65c02_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - m65c02_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); static const disasm_entry disasm_entries[0x100]; @@ -26,6 +26,8 @@ public: virtual void do_exec_partial() override; protected: + m65c02_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + #define O(o) void o ## _full(); void o ## _partial() // 65c02 opcodes @@ -71,6 +73,6 @@ enum { M65C02_SET_OVERFLOW = m6502_device::V_LINE }; -extern const device_type M65C02; +DECLARE_DEVICE_TYPE(M65C02, m65c02_device) -#endif +#endif // MAME_CPU_M6502_M65C02_H diff --git a/src/devices/cpu/m6502/m65ce02.cpp b/src/devices/cpu/m6502/m65ce02.cpp index 0a167f75704..239e900ed6d 100644 --- a/src/devices/cpu/m6502/m65ce02.cpp +++ b/src/devices/cpu/m6502/m65ce02.cpp @@ -11,15 +11,15 @@ #include "emu.h" #include "m65ce02.h" -const device_type M65CE02 = device_creator; +DEFINE_DEVICE_TYPE(M65CE02, m65ce02_device, "m65ce02", "M65CE02") m65ce02_device::m65ce02_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - m65c02_device(mconfig, M65CE02, "M65CE02", tag, owner, clock, "m65ce02", __FILE__), TMP3(0), Z(0), B(0) + m65ce02_device(mconfig, M65CE02, tag, owner, clock) { } -m65ce02_device::m65ce02_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - m65c02_device(mconfig, type, name, tag, owner, clock, shortname, source), TMP3(0), Z(0), B(0) +m65ce02_device::m65ce02_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + m65c02_device(mconfig, type, tag, owner, clock), TMP3(0), Z(0), B(0) { } diff --git a/src/devices/cpu/m6502/m65ce02.h b/src/devices/cpu/m6502/m65ce02.h index 019ced7d0b2..191123683f6 100644 --- a/src/devices/cpu/m6502/m65ce02.h +++ b/src/devices/cpu/m6502/m65ce02.h @@ -7,16 +7,16 @@ 6502 with Z register and some more stuff ***************************************************************************/ +#ifndef MAME_CPU_M6502_M65CE02_H +#define MAME_CPU_M6502_M65CE02_H -#ifndef __M65CE02_H__ -#define __M65CE02_H__ +#pragma once #include "m65c02.h" class m65ce02_device : public m65c02_device { public: m65ce02_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - m65ce02_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); static const disasm_entry disasm_entries[0x100]; @@ -25,6 +25,8 @@ public: virtual void do_exec_partial() override; protected: + m65ce02_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + uint16_t TMP3; /* temporary internal values */ uint8_t Z; /* Z index register */ uint16_t B; /* Zero page base address (always xx00) */ @@ -148,6 +150,6 @@ enum { M65CE02_B }; -extern const device_type M65CE02; +DECLARE_DEVICE_TYPE(M65CE02, m65ce02_device) -#endif +#endif // MAME_CPU_M6502_M65CE02_H diff --git a/src/devices/cpu/m6502/m65sc02.cpp b/src/devices/cpu/m6502/m65sc02.cpp index ae87d1ea78d..0fae547b4be 100644 --- a/src/devices/cpu/m6502/m65sc02.cpp +++ b/src/devices/cpu/m6502/m65sc02.cpp @@ -11,9 +11,9 @@ #include "emu.h" #include "m65sc02.h" -const device_type M65SC02 = device_creator; +DEFINE_DEVICE_TYPE(M65SC02, m65sc02_device, "m65sc02", "M65SC02") m65sc02_device::m65sc02_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - r65c02_device(mconfig, M65SC02, "M65SC02", tag, owner, clock, "m65sc02", __FILE__) + r65c02_device(mconfig, M65SC02, tag, owner, clock) { } diff --git a/src/devices/cpu/m6502/m65sc02.h b/src/devices/cpu/m6502/m65sc02.h index 13e91a3d0e1..686411c0b22 100644 --- a/src/devices/cpu/m6502/m65sc02.h +++ b/src/devices/cpu/m6502/m65sc02.h @@ -8,8 +8,8 @@ ***************************************************************************/ -#ifndef __M65SC02_H__ -#define __M65SC02_H__ +#ifndef MAME_CPU_M6502_M65SC02_H +#define MAME_CPU_M6502_M65SC02_H #include "r65c02.h" @@ -24,6 +24,6 @@ enum { M65SC02_SET_OVERFLOW = m6502_device::V_LINE }; -extern const device_type M65SC02; +DECLARE_DEVICE_TYPE(M65SC02, m65sc02_device) -#endif +#endif // MAME_CPU_M6502_M65SC02_H diff --git a/src/devices/cpu/m6502/m740.cpp b/src/devices/cpu/m6502/m740.cpp index 9c4a45cce16..807eac55b09 100644 --- a/src/devices/cpu/m6502/m740.cpp +++ b/src/devices/cpu/m6502/m740.cpp @@ -11,15 +11,15 @@ #include "emu.h" #include "m740.h" -const device_type M740 = device_creator; +DEFINE_DEVICE_TYPE(M740, m740_device, "m740", "M740") m740_device::m740_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - m6502_device(mconfig, M740, "M740", tag, owner, clock, "m740", __FILE__), m_irq_multiplex(0), m_irq_vector(0) + m740_device(mconfig, M740, tag, owner, clock) { } -m740_device::m740_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - m6502_device(mconfig, type, name, tag, owner, clock, shortname, source), m_irq_multiplex(0), m_irq_vector(0) +m740_device::m740_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + m6502_device(mconfig, type, tag, owner, clock), m_irq_multiplex(0), m_irq_vector(0) { } diff --git a/src/devices/cpu/m6502/m740.h b/src/devices/cpu/m6502/m740.h index 2e94a82980a..350ea8bced6 100644 --- a/src/devices/cpu/m6502/m740.h +++ b/src/devices/cpu/m6502/m740.h @@ -8,50 +8,51 @@ ***************************************************************************/ -#ifndef __M740_H__ -#define __M740_H__ +#ifndef MAME_CPU_M6502_M740_H +#define MAME_CPU_M6502_M740_H #include "m6502.h" class m740_device : public m6502_device { public: - enum - { - M740_INT0_LINE = INPUT_LINE_IRQ0, // (fffc) - M740_INT1_LINE, // (fffa) - M740_INT2_LINE, // (fff8) - M740_INT3_LINE, // (fff6) - M740_INT4_LINE, // (fff4) - M740_INT5_LINE, // (fff2) - M740_INT6_LINE, // (fff0) - M740_INT7_LINE, // (ffee) - M740_INT8_LINE, // (ffec) - M740_INT9_LINE, // (ffea) - M740_INT10_LINE, // (ffe8) - M740_INT11_LINE, // (ffe6) - M740_INT12_LINE, // (ffe4) - M740_INT13_LINE, // (ffe2) - M740_INT14_LINE, // (ffe0) - M740_MAX_INT_LINE = M740_INT14_LINE, - M740_SET_OVERFLOW = m6502_device::V_LINE - }; - - m740_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - m740_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - - virtual void device_start() override; - virtual void device_reset() override; - - static const disasm_entry disasm_entries[0x200]; - - virtual void state_string_export(const device_state_entry &entry, std::string &str) const override; - - virtual offs_t disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) override; - virtual void do_exec_full() override; - virtual void do_exec_partial() override; - virtual void execute_set_input(int inputnum, int state) override; + enum + { + M740_INT0_LINE = INPUT_LINE_IRQ0, // (fffc) + M740_INT1_LINE, // (fffa) + M740_INT2_LINE, // (fff8) + M740_INT3_LINE, // (fff6) + M740_INT4_LINE, // (fff4) + M740_INT5_LINE, // (fff2) + M740_INT6_LINE, // (fff0) + M740_INT7_LINE, // (ffee) + M740_INT8_LINE, // (ffec) + M740_INT9_LINE, // (ffea) + M740_INT10_LINE, // (ffe8) + M740_INT11_LINE, // (ffe6) + M740_INT12_LINE, // (ffe4) + M740_INT13_LINE, // (ffe2) + M740_INT14_LINE, // (ffe0) + M740_MAX_INT_LINE = M740_INT14_LINE, + M740_SET_OVERFLOW = m6502_device::V_LINE + }; + + m740_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + + virtual void device_start() override; + virtual void device_reset() override; + + static const disasm_entry disasm_entries[0x200]; + + virtual void state_string_export(const device_state_entry &entry, std::string &str) const override; + + virtual offs_t disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) override; + virtual void do_exec_full() override; + virtual void do_exec_partial() override; + virtual void execute_set_input(int inputnum, int state) override; protected: + m740_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + #define O(o) void o ## _full(); void o ## _partial() uint8_t do_clb(uint8_t in, uint8_t bit); @@ -100,6 +101,6 @@ protected: void set_irq_line(int line, int state); }; -extern const device_type M740; +DECLARE_DEVICE_TYPE(M740, m740_device) -#endif +#endif // MAME_CPU_M6502_M740_H diff --git a/src/devices/cpu/m6502/m7501.cpp b/src/devices/cpu/m6502/m7501.cpp index 826ae10ad15..912a7a023dd 100644 --- a/src/devices/cpu/m6502/m7501.cpp +++ b/src/devices/cpu/m6502/m7501.cpp @@ -11,9 +11,9 @@ #include "emu.h" #include "m7501.h" -const device_type M7501 = device_creator; +DEFINE_DEVICE_TYPE(M7501, m7501_device, "m7501", "M7501") m7501_device::m7501_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - m6510_device(mconfig, M7501, "M7501", tag, owner, clock, "m7501", __FILE__) + m6510_device(mconfig, M7501, tag, owner, clock) { } diff --git a/src/devices/cpu/m6502/m7501.h b/src/devices/cpu/m6502/m7501.h index 7912d3af0de..90087eebe97 100644 --- a/src/devices/cpu/m6502/m7501.h +++ b/src/devices/cpu/m6502/m7501.h @@ -8,8 +8,8 @@ ***************************************************************************/ -#ifndef __M7501_H__ -#define __M7501_H__ +#ifndef MAME_CPU_M6502_M7501_H +#define MAME_CPU_M6502_M7501_H #include "m6510.h" @@ -31,4 +31,4 @@ enum { extern const device_type M7501; -#endif +#endif // MAME_CPU_M6502_M7501_H diff --git a/src/devices/cpu/m6502/m8502.cpp b/src/devices/cpu/m6502/m8502.cpp index 897bd3e00e2..75a4a2f7b25 100644 --- a/src/devices/cpu/m6502/m8502.cpp +++ b/src/devices/cpu/m6502/m8502.cpp @@ -11,9 +11,9 @@ #include "emu.h" #include "m8502.h" -const device_type M8502 = device_creator; +DEFINE_DEVICE_TYPE(M8502, m8502_device, "m8502", "M8502") m8502_device::m8502_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - m6510_device(mconfig, M8502, "M8502", tag, owner, clock, "m8502", __FILE__) + m6510_device(mconfig, M8502, tag, owner, clock) { } diff --git a/src/devices/cpu/m6502/m8502.h b/src/devices/cpu/m6502/m8502.h index 4967f8379bc..bc52b45ef2c 100644 --- a/src/devices/cpu/m6502/m8502.h +++ b/src/devices/cpu/m6502/m8502.h @@ -7,9 +7,10 @@ 6510 derivative, capable of running at 2MHz. ***************************************************************************/ +#ifndef MAME_CPU_M6502_M8502_H +#define MAME_CPU_M6502_M8502_H -#ifndef __M8502_H__ -#define __M8502_H__ +#pragma once #include "m6510.h" @@ -29,6 +30,6 @@ enum { M8502_NMI_LINE = m6502_device::NMI_LINE }; -extern const device_type M8502; +DECLARE_DEVICE_TYPE(M8502, m8502_device) -#endif +#endif // MAME_CPU_M6502_M8502_H diff --git a/src/devices/cpu/m6502/n2a03.cpp b/src/devices/cpu/m6502/n2a03.cpp index 772f6ebda54..d01caa89fda 100644 --- a/src/devices/cpu/m6502/n2a03.cpp +++ b/src/devices/cpu/m6502/n2a03.cpp @@ -11,7 +11,7 @@ #include "emu.h" #include "n2a03.h" -const device_type N2A03 = device_creator; +DEFINE_DEVICE_TYPE(N2A03, n2a03_device, "n2a03", "N2A03") READ8_MEMBER(n2a03_device::psg1_4014_r) { @@ -50,7 +50,7 @@ ADDRESS_MAP_END n2a03_device::n2a03_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - m6502_device(mconfig, N2A03, "N2A03", tag, owner, clock, "n2a03", __FILE__), + m6502_device(mconfig, N2A03, tag, owner, clock), m_apu(*this, "nesapu"), m_program_config("program", ENDIANNESS_LITTLE, 8, 16, 0, ADDRESS_MAP_NAME(n2a03_map)) { diff --git a/src/devices/cpu/m6502/n2a03.h b/src/devices/cpu/m6502/n2a03.h index 3f406af15e9..54fc137c8e6 100644 --- a/src/devices/cpu/m6502/n2a03.h +++ b/src/devices/cpu/m6502/n2a03.h @@ -7,9 +7,10 @@ 6502, NES variant ***************************************************************************/ +#ifndef MAME_CPU_M6502_N2A03_H +#define MAME_CPU_M6502_N2A03_H -#ifndef __N2A03_H__ -#define __N2A03_H__ +#pragma once #include "m6502.h" #include "sound/nes_apu.h" @@ -89,6 +90,6 @@ enum { N2A03_SET_OVERFLOW = m6502_device::V_LINE }; -extern const device_type N2A03; +DECLARE_DEVICE_TYPE(N2A03, n2a03_device) -#endif +#endif // MAME_CPU_M6502_N2A03_H diff --git a/src/devices/cpu/m6502/r65c02.cpp b/src/devices/cpu/m6502/r65c02.cpp index eb6d85be265..53c5b40b662 100644 --- a/src/devices/cpu/m6502/r65c02.cpp +++ b/src/devices/cpu/m6502/r65c02.cpp @@ -11,15 +11,15 @@ #include "emu.h" #include "r65c02.h" -const device_type R65C02 = device_creator; +DEFINE_DEVICE_TYPE(R65C02, r65c02_device, "r65c02", "R65C02") r65c02_device::r65c02_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - m65c02_device(mconfig, R65C02, "R65C02", tag, owner, clock, "r65c02", __FILE__) + r65c02_device(mconfig, R65C02, tag, owner, clock) { } -r65c02_device::r65c02_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - m65c02_device(mconfig, type, name, tag, owner, clock, shortname, source) +r65c02_device::r65c02_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + m65c02_device(mconfig, type, tag, owner, clock) { } diff --git a/src/devices/cpu/m6502/r65c02.h b/src/devices/cpu/m6502/r65c02.h index 4a406654422..41cea972944 100644 --- a/src/devices/cpu/m6502/r65c02.h +++ b/src/devices/cpu/m6502/r65c02.h @@ -8,21 +8,23 @@ ***************************************************************************/ -#ifndef __R65C02_H__ -#define __R65C02_H__ +#ifndef MAME_CPU_M6502_R65C02_H +#define MAME_CPU_M6502_R65C02_H #include "m65c02.h" class r65c02_device : public m65c02_device { public: r65c02_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - r65c02_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); static const disasm_entry disasm_entries[0x100]; virtual offs_t disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) override; virtual void do_exec_full() override; virtual void do_exec_partial() override; + +protected: + r65c02_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); }; enum { @@ -31,6 +33,6 @@ enum { R65C02_SET_OVERFLOW = m6502_device::V_LINE }; -extern const device_type R65C02; +DECLARE_DEVICE_TYPE(R65C02, r65c02_device) -#endif +#endif // MAME_CPU_M6502_R65C02_H diff --git a/src/devices/cpu/m6800/m6800.cpp b/src/devices/cpu/m6800/m6800.cpp index 5bc454a281e..5b13a1b5d20 100644 --- a/src/devices/cpu/m6800/m6800.cpp +++ b/src/devices/cpu/m6800/m6800.cpp @@ -520,34 +520,25 @@ const uint8_t m6800_cpu_device::cycles_nsc8105[256] = } -const device_type M6800 = device_creator; -const device_type M6801 = device_creator; -const device_type M6802 = device_creator; -const device_type M6803 = device_creator; -const device_type M6808 = device_creator; -const device_type HD6301 = device_creator; -const device_type HD63701 = device_creator; -const device_type NSC8105 = device_creator; -const device_type HD6303R = device_creator; -const device_type HD6303Y = device_creator; +DEFINE_DEVICE_TYPE(M6800, m6800_cpu_device, "m6800", "M6800") +DEFINE_DEVICE_TYPE(M6801, m6801_cpu_device, "m6801", "M6801") +DEFINE_DEVICE_TYPE(M6802, m6802_cpu_device, "m6802", "M6802") +DEFINE_DEVICE_TYPE(M6803, m6803_cpu_device, "m6803", "M6803") +DEFINE_DEVICE_TYPE(M6808, m6808_cpu_device, "m6808", "M6808") +DEFINE_DEVICE_TYPE(HD6301, hd6301_cpu_device, "hd6301", "HD6301") +DEFINE_DEVICE_TYPE(HD63701, hd63701_cpu_device, "hd63701", "HD63701") +DEFINE_DEVICE_TYPE(NSC8105, nsc8105_cpu_device, "nsc8105", "NSC8105") +DEFINE_DEVICE_TYPE(HD6303R, hd6303r_cpu_device, "hd6304r", "HD6304R") +DEFINE_DEVICE_TYPE(HD6303Y, hd6303y_cpu_device, "hd6303y", "HD6303Y") m6800_cpu_device::m6800_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cpu_device(mconfig, M6800, "M6800", tag, owner, clock, "m6800", __FILE__) - , m_program_config("program", ENDIANNESS_BIG, 8, 16, 0) - , m_decrypted_opcodes_config("program", ENDIANNESS_BIG, 8, 16, 0) - , m_io_config("io", ENDIANNESS_BIG, 8, 9, 0) - , m_has_io(false) - , m_out_sc2_func(*this) - , m_out_sertx_func(*this) - , m_insn(m6800_insn) - , m_cycles(cycles_6800) + : m6800_cpu_device(mconfig, M6800, tag, owner, clock, false, 1, m6800_insn, cycles_6800, nullptr) { - m_clock_divider = 1; } -m6800_cpu_device::m6800_cpu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source, bool has_io, int clock_divider, const op_func *insn, const uint8_t *cycles, address_map_constructor internal) - : cpu_device(mconfig, type, name, tag, owner, clock, shortname, source) +m6800_cpu_device::m6800_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, bool has_io, int clock_divider, const op_func *insn, const uint8_t *cycles, address_map_constructor internal) + : cpu_device(mconfig, type, tag, owner, clock) , m_program_config("program", ENDIANNESS_BIG, 8, 16, 0, internal) , m_decrypted_opcodes_config("program", ENDIANNESS_BIG, 8, 16, 0) , m_io_config("io", ENDIANNESS_BIG, 8, 9, 0) @@ -561,22 +552,22 @@ m6800_cpu_device::m6800_cpu_device(const machine_config &mconfig, device_type ty } m6801_cpu_device::m6801_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : m6800_cpu_device(mconfig, M6801, "M6801", tag, owner, clock, "m6801", __FILE__, true, 4, m6803_insn, cycles_6803) + : m6801_cpu_device(mconfig, M6801, tag, owner, clock, m6803_insn, cycles_6803, nullptr) { } -m6801_cpu_device::m6801_cpu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source, const op_func *insn, const uint8_t *cycles, address_map_constructor internal) - : m6800_cpu_device(mconfig, type, name, tag, owner, clock, shortname, source, true, 4, insn, cycles, internal) +m6801_cpu_device::m6801_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, const op_func *insn, const uint8_t *cycles, address_map_constructor internal) + : m6800_cpu_device(mconfig, type, tag, owner, clock, true, 4, insn, cycles, internal) { } m6802_cpu_device::m6802_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : m6800_cpu_device(mconfig, M6802, "M6802", tag, owner, clock, "m6802", __FILE__, false, 4, m6800_insn, cycles_6800) + : m6802_cpu_device(mconfig, M6802, tag, owner, clock, m6800_insn, cycles_6800) { } -m6802_cpu_device::m6802_cpu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source, const op_func *insn, const uint8_t *cycles) - : m6800_cpu_device(mconfig, type, name, tag, owner, clock, shortname, source, false, 4, insn, cycles) +m6802_cpu_device::m6802_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, const op_func *insn, const uint8_t *cycles) + : m6800_cpu_device(mconfig, type, tag, owner, clock, false, 4, insn, cycles, nullptr) { } @@ -588,42 +579,42 @@ ADDRESS_MAP_END m6803_cpu_device::m6803_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : m6801_cpu_device(mconfig, M6803, "M6803", tag, owner, clock, "m6803", __FILE__, m6803_insn, cycles_6803, ADDRESS_MAP_NAME(m6803_mem)) + : m6801_cpu_device(mconfig, M6803, tag, owner, clock, m6803_insn, cycles_6803, ADDRESS_MAP_NAME(m6803_mem)) { } m6808_cpu_device::m6808_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : m6802_cpu_device(mconfig, M6808, "M6808", tag, owner, clock, "m6808", __FILE__, m6800_insn, cycles_6800) + : m6802_cpu_device(mconfig, M6808, tag, owner, clock, m6800_insn, cycles_6800) { } hd6301_cpu_device::hd6301_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : m6801_cpu_device(mconfig, HD6301, "HD6301", tag, owner, clock, "hd6301", __FILE__, hd63701_insn, cycles_63701) + : hd6301_cpu_device(mconfig, HD6301, tag, owner, clock) { } -hd6301_cpu_device::hd6301_cpu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : m6801_cpu_device(mconfig, type, name, tag, owner, clock, shortname, source, hd63701_insn, cycles_63701) +hd6301_cpu_device::hd6301_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : m6801_cpu_device(mconfig, type, tag, owner, clock, hd63701_insn, cycles_63701) { } hd63701_cpu_device::hd63701_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : m6801_cpu_device(mconfig, HD63701, "HD63701", tag, owner, clock, "hd63701", __FILE__, hd63701_insn, cycles_63701) + : m6801_cpu_device(mconfig, HD63701, tag, owner, clock, hd63701_insn, cycles_63701) { } nsc8105_cpu_device::nsc8105_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : m6802_cpu_device(mconfig, NSC8105, "NSC8105", tag, owner, clock, "nsc8105", __FILE__, nsc8105_insn, cycles_nsc8105) + : m6802_cpu_device(mconfig, NSC8105, tag, owner, clock, nsc8105_insn, cycles_nsc8105) { } hd6303r_cpu_device::hd6303r_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : hd6301_cpu_device(mconfig, HD6303R, "HD6303R", tag, owner, clock, "hd6303r", __FILE__) + : hd6301_cpu_device(mconfig, HD6303R, tag, owner, clock) { } hd6303y_cpu_device::hd6303y_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : hd6301_cpu_device(mconfig, HD6303Y, "HD6303Y", tag, owner, clock, "hd6303y", __FILE__) + : hd6301_cpu_device(mconfig, HD6303Y, tag, owner, clock) { } diff --git a/src/devices/cpu/m6800/m6800.h b/src/devices/cpu/m6800/m6800.h index fd03156d530..e4dee70b822 100644 --- a/src/devices/cpu/m6800/m6800.h +++ b/src/devices/cpu/m6800/m6800.h @@ -2,10 +2,10 @@ // copyright-holders:Aaron Giles /*** m6800: Portable 6800 class emulator *************************************/ -#pragma once +#ifndef MAME_CPU_M6800_M6800_H +#define MAME_CPU_M6800_M6800_H -#ifndef __M6800_H__ -#define __M6800_H__ +#pragma once enum @@ -78,7 +78,6 @@ public: // construction/destruction m6800_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - m6800_cpu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source, bool has_io, int clock_divider, const m6800_cpu_device::op_func *insn, const uint8_t *cycles, address_map_constructor internal = nullptr); // static configuration helpers template static devcb_base &set_out_sc2_func(device_t &device, _Object object) { return downcast(device).m_out_sc2_func.set_callback(object); } @@ -88,6 +87,8 @@ public: DECLARE_WRITE8_MEMBER( m6801_io_w ); protected: + m6800_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, bool has_io, int clock_divider, const m6800_cpu_device::op_func *insn, const uint8_t *cycles, address_map_constructor internal); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -454,11 +455,12 @@ class m6801_cpu_device : public m6800_cpu_device { public: m6801_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - m6801_cpu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source, const m6800_cpu_device::op_func *insn, const uint8_t *cycles, address_map_constructor internal = nullptr); void m6801_clock_serial(); protected: + m6801_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, const m6800_cpu_device::op_func *insn, const uint8_t *cycles, address_map_constructor internal = nullptr); + virtual uint64_t execute_clocks_to_cycles(uint64_t clocks) const override { return (clocks + 4 - 1) / 4; } virtual uint64_t execute_cycles_to_clocks(uint64_t cycles) const override { return (cycles * 4); } virtual offs_t disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) override; @@ -469,9 +471,10 @@ class m6802_cpu_device : public m6800_cpu_device { public: m6802_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - m6802_cpu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source, const m6800_cpu_device::op_func *insn, const uint8_t *cycles); protected: + m6802_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, const m6800_cpu_device::op_func *insn, const uint8_t *cycles); + virtual uint64_t execute_clocks_to_cycles(uint64_t clocks) const override { return (clocks + 4 - 1) / 4; } virtual uint64_t execute_cycles_to_clocks(uint64_t cycles) const override { return (cycles * 4); } virtual offs_t disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) override; @@ -502,9 +505,10 @@ class hd6301_cpu_device : public m6801_cpu_device { public: hd6301_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - hd6301_cpu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); protected: + hd6301_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual offs_t disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) override; }; @@ -552,15 +556,15 @@ public: }; -extern const device_type M6800; -extern const device_type M6801; -extern const device_type M6802; -extern const device_type M6803; -extern const device_type M6808; -extern const device_type HD6301; -extern const device_type HD63701; -extern const device_type NSC8105; -extern const device_type HD6303R; -extern const device_type HD6303Y; +DECLARE_DEVICE_TYPE(M6800, m6800_cpu_device) +DECLARE_DEVICE_TYPE(M6801, m6801_cpu_device) +DECLARE_DEVICE_TYPE(M6802, m6802_cpu_device) +DECLARE_DEVICE_TYPE(M6803, m6803_cpu_device) +DECLARE_DEVICE_TYPE(M6808, m6808_cpu_device) +DECLARE_DEVICE_TYPE(HD6301, hd6301_cpu_device) +DECLARE_DEVICE_TYPE(HD63701, hd63701_cpu_device) +DECLARE_DEVICE_TYPE(NSC8105, nsc8105_cpu_device) +DECLARE_DEVICE_TYPE(HD6303R, hd6303r_cpu_device) +DECLARE_DEVICE_TYPE(HD6303Y, hd6303y_cpu_device) -#endif /* __M6800_H__ */ +#endif // MAME_CPU_M6800_M6800_H diff --git a/src/devices/cpu/m68000/m68000.h b/src/devices/cpu/m68000/m68000.h index cf203e43ca1..c3aae63b454 100644 --- a/src/devices/cpu/m68000/m68000.h +++ b/src/devices/cpu/m68000/m68000.h @@ -1,11 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Karl Stenerud -#pragma once - -#ifndef __M68000_H__ -#define __M68000_H__ - +#ifndef MAME_CPU_M68000_M68000_H +#define MAME_CPU_M68000_M68000_H +#pragma once // SoftFloat 2 lacks an include guard #ifndef softfloat_h @@ -124,12 +122,6 @@ class m68000_base_device : public cpu_device public: // construction/destruction - m68000_base_device(const machine_config &mconfig, const char *name, const char *tag, device_t *owner, uint32_t clock, - const device_type type, uint32_t prg_data_width, uint32_t prg_address_bits, const char *shortname, const char *source); - - m68000_base_device(const machine_config &mconfig, const char *name, const char *tag, device_t *owner, uint32_t clock, - const device_type type, uint32_t prg_data_width, uint32_t prg_address_bits, address_map_constructor internal_map, const char *shortname, const char *source); - m68000_base_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); void presave(); @@ -175,6 +167,13 @@ public: void set_instruction_hook(read32_delegate ihook); void set_buserror_details(uint32_t fault_addr, uint8_t rw, uint8_t fc); +protected: + m68000_base_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock, + const device_type type, uint32_t prg_data_width, uint32_t prg_address_bits); + + m68000_base_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock, + const device_type type, uint32_t prg_data_width, uint32_t prg_address_bits, address_map_constructor internal_map); + private: int has_fpu; /* Indicates if a FPU is available (yes on 030, 040, may be on 020) */ public: @@ -406,12 +405,6 @@ class m68000_device : public m68000_base_device public: // construction/destruction m68000_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - m68000_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - m68000_device(const machine_config &mconfig, const device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - - m68000_device(const machine_config &mconfig, const char *name, const char *tag, device_t *owner, uint32_t clock, - const device_type type, uint32_t prg_data_width, uint32_t prg_address_bits, address_map_constructor internal_map, const char *shortname, const char *source); - virtual uint32_t disasm_min_opcode_bytes() const override { return 2; }; @@ -425,6 +418,12 @@ public: // device-level overrides virtual void device_start() override; + +protected: + m68000_device(const machine_config &mconfig, const device_type type, const char *tag, device_t *owner, uint32_t clock); + + m68000_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock, + const device_type type, uint32_t prg_data_width, uint32_t prg_address_bits, address_map_constructor internal_map); }; class m68301_device : public m68000_base_device @@ -726,9 +725,6 @@ public: // construction/destruction fscpu32_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - fscpu32_device(const machine_config &mconfig, const char *name, const char *tag, device_t *owner, uint32_t clock, - const device_type type, uint32_t prg_data_width, uint32_t prg_address_bits, address_map_constructor internal_map, const char *shortname, const char *source); - virtual uint32_t disasm_min_opcode_bytes() const override { return 2; }; virtual uint32_t disasm_max_opcode_bytes() const override { return 20; }; virtual offs_t disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) override; @@ -740,6 +736,10 @@ public: // device-level overrides virtual void device_start() override; + +protected: + fscpu32_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock, + const device_type type, uint32_t prg_data_width, uint32_t prg_address_bits, address_map_constructor internal_map); }; @@ -765,24 +765,24 @@ public: }; -extern const device_type M68000; -extern const device_type M68301; -extern const device_type M68008; -extern const device_type M68008PLCC; -extern const device_type M68010; -extern const device_type M68EC020; -extern const device_type M68020; -extern const device_type M68020FPU; -extern const device_type M68020PMMU; -extern const device_type M68020HMMU; -extern const device_type M68EC030; -extern const device_type M68030; -extern const device_type M68EC040; -extern const device_type M68LC040; -extern const device_type M68040; -extern const device_type SCC68070; -extern const device_type FSCPU32; -extern const device_type MCF5206E; - - -#endif /* __M68000_H__ */ +DECLARE_DEVICE_TYPE(M68000, m68000_device) +DECLARE_DEVICE_TYPE(M68301, m68301_device) +DECLARE_DEVICE_TYPE(M68008, m68008_device) +DECLARE_DEVICE_TYPE(M68008PLCC, m68008plcc_device) +DECLARE_DEVICE_TYPE(M68010, m68010_device) +DECLARE_DEVICE_TYPE(M68EC020, m68ec020_device) +DECLARE_DEVICE_TYPE(M68020, m68020_device) +DECLARE_DEVICE_TYPE(M68020FPU, m68020fpu_device) +DECLARE_DEVICE_TYPE(M68020PMMU, m68020pmmu_device) +DECLARE_DEVICE_TYPE(M68020HMMU, m68020hmmu_device) +DECLARE_DEVICE_TYPE(M68EC030, m68ec030_device) +DECLARE_DEVICE_TYPE(M68030, m68030_device) +DECLARE_DEVICE_TYPE(M68EC040, m68ec040_device) +DECLARE_DEVICE_TYPE(M68LC040, m68lc040_device) +DECLARE_DEVICE_TYPE(M68040, m68040_device) +DECLARE_DEVICE_TYPE(SCC68070, scc68070_device) +DECLARE_DEVICE_TYPE(FSCPU32, fscpu32_device) +DECLARE_DEVICE_TYPE(MCF5206E, mcf5206e_device) + + +#endif // MAME_CPU_M68000_M68000_H diff --git a/src/devices/cpu/m68000/m68kcpu.cpp b/src/devices/cpu/m68000/m68kcpu.cpp index 5a7793e6af1..0de7af11c00 100644 --- a/src/devices/cpu/m68000/m68kcpu.cpp +++ b/src/devices/cpu/m68000/m68kcpu.cpp @@ -2271,14 +2271,14 @@ void m68000_base_device::m68ki_exception_interrupt(m68000_base_device *m68k, uin } -const device_type M68K = device_creator; +DEFINE_DEVICE_TYPE(M68K, m68000_base_device, "m68k", "M68K") //------------------------------------------------- // h6280_device - constructor //------------------------------------------------- m68000_base_device::m68000_base_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cpu_device(mconfig, M68K, "M68K", tag, owner, clock, "m68k", __FILE__), + : cpu_device(mconfig, M68K, tag, owner, clock), m_program_config("program", ENDIANNESS_BIG, 16, 24), m_oprogram_config("decrypted_opcodes", ENDIANNESS_BIG, 16, 24) { @@ -2288,9 +2288,9 @@ m68000_base_device::m68000_base_device(const machine_config &mconfig, const char -m68000_base_device::m68000_base_device(const machine_config &mconfig, const char *name, const char *tag, device_t *owner, uint32_t clock, - const device_type type, uint32_t prg_data_width, uint32_t prg_address_bits, address_map_constructor internal_map, const char *shortname, const char *source) - : cpu_device(mconfig, type, name, tag, owner, clock, shortname, source), +m68000_base_device::m68000_base_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock, + const device_type type, uint32_t prg_data_width, uint32_t prg_address_bits, address_map_constructor internal_map) + : cpu_device(mconfig, type, tag, owner, clock), m_program_config("program", ENDIANNESS_BIG, prg_data_width, prg_address_bits, 0, internal_map), m_oprogram_config("decrypted_opcodes", ENDIANNESS_BIG, prg_data_width, prg_address_bits, 0, internal_map) { @@ -2298,9 +2298,9 @@ m68000_base_device::m68000_base_device(const machine_config &mconfig, const char } -m68000_base_device::m68000_base_device(const machine_config &mconfig, const char *name, const char *tag, device_t *owner, uint32_t clock, - const device_type type, uint32_t prg_data_width, uint32_t prg_address_bits, const char *shortname, const char *source) - : cpu_device(mconfig, type, name, tag, owner, clock, shortname, source), +m68000_base_device::m68000_base_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock, + const device_type type, uint32_t prg_data_width, uint32_t prg_address_bits) + : cpu_device(mconfig, type, tag, owner, clock), m_program_config("program", ENDIANNESS_BIG, prg_data_width, prg_address_bits), m_oprogram_config("decrypted_opcodes", ENDIANNESS_BIG, prg_data_width, prg_address_bits) { @@ -2495,37 +2495,32 @@ const address_space_config *m68000_base_device::memory_space_config(address_spac -const device_type M68000 = device_creator; -const device_type M68301 = device_creator; -const device_type M68008 = device_creator; -const device_type M68008PLCC = device_creator; -const device_type M68010 = device_creator; -const device_type M68EC020 = device_creator; -const device_type M68020 = device_creator; -const device_type M68020FPU = device_creator; -const device_type M68020PMMU = device_creator; -const device_type M68020HMMU = device_creator; -const device_type M68EC030 = device_creator; -const device_type M68030 = device_creator; -const device_type M68EC040 = device_creator; -const device_type M68LC040 = device_creator; -const device_type M68040 = device_creator; -const device_type SCC68070 = device_creator; -const device_type FSCPU32 = device_creator; -const device_type MCF5206E = device_creator; +DEFINE_DEVICE_TYPE(M68000, m68000_device, "m68000", "M68000") +DEFINE_DEVICE_TYPE(M68301, m68301_device, "m68301", "M68301") +DEFINE_DEVICE_TYPE(M68008, m68008_device, "m68008", "M68008") +DEFINE_DEVICE_TYPE(M68008PLCC, m68008plcc_device, "m68008plcc", "M68008PLCC") +DEFINE_DEVICE_TYPE(M68010, m68010_device, "m68010", "M68010") +DEFINE_DEVICE_TYPE(M68EC020, m68ec020_device, "m68ec020", "M68EC020") +DEFINE_DEVICE_TYPE(M68020, m68020_device, "m68020", "M68020") +DEFINE_DEVICE_TYPE(M68020FPU, m68020fpu_device, "m68020fpu", "M68020FPU") +DEFINE_DEVICE_TYPE(M68020PMMU, m68020pmmu_device, "m68020pmmu", "M68020PMMU") +DEFINE_DEVICE_TYPE(M68020HMMU, m68020hmmu_device, "m68020hmmu", "M68020HMMU") +DEFINE_DEVICE_TYPE(M68EC030, m68ec030_device, "m68ec030", "M68EC030") +DEFINE_DEVICE_TYPE(M68030, m68030_device, "m68030", "M68030") +DEFINE_DEVICE_TYPE(M68EC040, m68ec040_device, "m68ec040", "M68EC040") +DEFINE_DEVICE_TYPE(M68LC040, m68lc040_device, "m68lc040", "M68LC040") +DEFINE_DEVICE_TYPE(M68040, m68040_device, "m68040", "M68040") +DEFINE_DEVICE_TYPE(SCC68070, scc68070_device, "scc68070", "SCC68070") +DEFINE_DEVICE_TYPE(FSCPU32, fscpu32_device, "fscpu32", "Freescale CPU32 Core") +DEFINE_DEVICE_TYPE(MCF5206E, mcf5206e_device, "mcf5206e", "MCF5206E") m68000_device::m68000_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : m68000_base_device(mconfig, "M68000", tag, owner, clock, M68000, 16,24, "m68000", __FILE__) + : m68000_device(mconfig, M68000, tag, owner, clock) { } -m68000_device::m68000_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : m68000_base_device(mconfig, "M68000", tag, owner, clock, M68000, 16,24, shortname, source) -{ -} - -m68000_device::m68000_device(const machine_config &mconfig, const device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : m68000_base_device(mconfig, name, tag, owner, clock, type, 16,24, shortname, source) +m68000_device::m68000_device(const machine_config &mconfig, const device_type type, const char *tag, device_t *owner, uint32_t clock) + : m68000_base_device(mconfig, tag, owner, clock, type, 16,24) { } @@ -2534,9 +2529,9 @@ void m68000_device::device_start() init_cpu_m68000(); } -m68000_device::m68000_device(const machine_config &mconfig, const char *name, const char *tag, device_t *owner, uint32_t clock, - const device_type type, uint32_t prg_data_width, uint32_t prg_address_bits, address_map_constructor internal_map, const char *shortname, const char *source) - : m68000_base_device(mconfig, name, tag, owner, clock, type, prg_data_width, prg_address_bits, internal_map, shortname, source) +m68000_device::m68000_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock, + const device_type type, uint32_t prg_data_width, uint32_t prg_address_bits, address_map_constructor internal_map) + : m68000_base_device(mconfig, tag, owner, clock, type, prg_data_width, prg_address_bits, internal_map) { } @@ -2545,7 +2540,7 @@ m68000_device::m68000_device(const machine_config &mconfig, const char *name, co m68301_device::m68301_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : m68000_base_device(mconfig, "M68301", tag, owner, clock, M68301, 16,24, "m68301", __FILE__) + : m68000_base_device(mconfig, tag, owner, clock, M68301, 16,24) { } @@ -2563,7 +2558,7 @@ void m68301_device::device_start() /* m68008_device */ m68008_device::m68008_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : m68000_base_device(mconfig, "M68008", tag, owner, clock, M68008, 8,20, "m68008", __FILE__) + : m68000_base_device(mconfig, tag, owner, clock, M68008, 8,20) { } @@ -2574,7 +2569,7 @@ void m68008_device::device_start() m68008plcc_device::m68008plcc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : m68000_base_device(mconfig, "M68008PLCC", tag, owner, clock, M68008PLCC, 8,22, "m68008plcc", __FILE__) + : m68000_base_device(mconfig, tag, owner, clock, M68008PLCC, 8,22) { } @@ -2586,7 +2581,7 @@ void m68008plcc_device::device_start() m68010_device::m68010_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : m68000_base_device(mconfig, "M68010", tag, owner, clock, M68010, 16,24, "m68010", __FILE__) + : m68000_base_device(mconfig, tag, owner, clock, M68010, 16,24) { } @@ -2598,7 +2593,7 @@ void m68010_device::device_start() m68020_device::m68020_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : m68000_base_device(mconfig, "M68020", tag, owner, clock, M68020, 32,32, "m68020", __FILE__) + : m68000_base_device(mconfig, tag, owner, clock, M68020, 32,32) { } @@ -2609,7 +2604,7 @@ void m68020_device::device_start() m68020fpu_device::m68020fpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : m68000_base_device(mconfig, "M68020FPU", tag, owner, clock, M68020FPU, 32,32, "m68020fpu", __FILE__) + : m68000_base_device(mconfig, tag, owner, clock, M68020FPU, 32,32) { } @@ -2620,7 +2615,7 @@ void m68020fpu_device::device_start() // 68020 with 68851 PMMU m68020pmmu_device::m68020pmmu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : m68000_base_device(mconfig, "M68020PMMU", tag, owner, clock, M68020PMMU, 32,32, "m68020pmmu", __FILE__) + : m68000_base_device(mconfig, tag, owner, clock, M68020PMMU, 32,32) { } @@ -2645,7 +2640,7 @@ bool m68020hmmu_device::memory_translate(address_spacenum space, int intention, // 68020 with Apple HMMU & 68881 FPU // case CPUINFO_FCT_TRANSLATE: info->translate = CPU_TRANSLATE_NAME(m68khmmu); break; m68020hmmu_device::m68020hmmu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : m68000_base_device(mconfig, "M68020HMMU", tag, owner, clock, M68020HMMU, 32,32, "m68020hmmu", __FILE__) + : m68000_base_device(mconfig, tag, owner, clock, M68020HMMU, 32,32) { } @@ -2656,7 +2651,7 @@ void m68020hmmu_device::device_start() m68ec020_device::m68ec020_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : m68000_base_device(mconfig, "M68EC020", tag, owner, clock, M68EC020, 32,24, "m68ec020", __FILE__) + : m68000_base_device(mconfig, tag, owner, clock, M68EC020, 32,24) { } @@ -2666,7 +2661,7 @@ void m68ec020_device::device_start() } m68030_device::m68030_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : m68000_base_device(mconfig, "M68030", tag, owner, clock, M68030, 32,32, "m68030", __FILE__) + : m68000_base_device(mconfig, tag, owner, clock, M68030, 32,32) { } @@ -2676,7 +2671,7 @@ void m68030_device::device_start() } m68ec030_device::m68ec030_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : m68000_base_device(mconfig, "M68EC030", tag, owner, clock, M68EC030, 32,32, "m68ec030", __FILE__) + : m68000_base_device(mconfig, tag, owner, clock, M68EC030, 32,32) { } @@ -2686,7 +2681,7 @@ void m68ec030_device::device_start() } m68040_device::m68040_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : m68000_base_device(mconfig, "M68040", tag, owner, clock, M68040, 32,32, "m68040", __FILE__) + : m68000_base_device(mconfig, tag, owner, clock, M68040, 32,32) { } @@ -2699,7 +2694,7 @@ void m68040_device::device_start() m68ec040_device::m68ec040_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : m68000_base_device(mconfig, "M68EC040", tag, owner, clock, M68EC040, 32,32, "m68ec040", __FILE__) + : m68000_base_device(mconfig, tag, owner, clock, M68EC040, 32,32) { } @@ -2711,7 +2706,7 @@ void m68ec040_device::device_start() m68lc040_device::m68lc040_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : m68000_base_device(mconfig, "M68LC040", tag, owner, clock, M68LC040, 32,32, "m68lc040", __FILE__) + : m68000_base_device(mconfig, tag, owner, clock, M68LC040, 32,32) { } @@ -2722,7 +2717,7 @@ void m68lc040_device::device_start() scc68070_device::scc68070_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : m68000_base_device(mconfig, "SCC68070", tag, owner, clock, SCC68070, 16,32, "scc68070", __FILE__) + : m68000_base_device(mconfig, tag, owner, clock, SCC68070, 16,32) { } @@ -2733,13 +2728,13 @@ void scc68070_device::device_start() fscpu32_device::fscpu32_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : m68000_base_device(mconfig, "Freescale CPU32 Core", tag, owner, clock, FSCPU32, 32,32, "fscpu32", __FILE__) + : m68000_base_device(mconfig, tag, owner, clock, FSCPU32, 32,32) { } -fscpu32_device::fscpu32_device(const machine_config &mconfig, const char *name, const char *tag, device_t *owner, uint32_t clock, - const device_type type, uint32_t prg_data_width, uint32_t prg_address_bits, address_map_constructor internal_map, const char *shortname, const char *source) - : m68000_base_device(mconfig, name, tag, owner, clock, type, prg_data_width, prg_address_bits, internal_map, shortname, source) +fscpu32_device::fscpu32_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock, + const device_type type, uint32_t prg_data_width, uint32_t prg_address_bits, address_map_constructor internal_map) + : m68000_base_device(mconfig, tag, owner, clock, type, prg_data_width, prg_address_bits, internal_map) { } @@ -2752,7 +2747,7 @@ void fscpu32_device::device_start() mcf5206e_device::mcf5206e_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : m68000_base_device(mconfig, "MCF5206E", tag, owner, clock, MCF5206E, 32,32, "mcf5206e", __FILE__) + : m68000_base_device(mconfig, tag, owner, clock, MCF5206E, 32,32) { } diff --git a/src/devices/cpu/m68000/m68kcpu.h b/src/devices/cpu/m68000/m68kcpu.h index 4326735cd1b..41d9e93c883 100644 --- a/src/devices/cpu/m68000/m68kcpu.h +++ b/src/devices/cpu/m68000/m68kcpu.h @@ -12,11 +12,11 @@ * */ +#ifndef MAME_CPU_M68000_M68KCPU_H +#define MAME_CPU_M68000_M68KCPU_H #pragma once -#ifndef __M68KCPU_H__ -#define __M68KCPU_H__ class m68000_base_device; @@ -1701,4 +1701,4 @@ static inline void m68ki_check_interrupts(m68000_base_device *m68k) /* ============================== END OF FILE ============================= */ /* ======================================================================== */ -#endif /* __M68KCPU_H__ */ +#endif // MAME_CPU_M68000_M68KCPU_H diff --git a/src/devices/cpu/m6805/m6805.cpp b/src/devices/cpu/m6805/m6805.cpp index a606077a021..a4b8a1c10e9 100644 --- a/src/devices/cpu/m6805/m6805.cpp +++ b/src/devices/cpu/m6805/m6805.cpp @@ -236,11 +236,8 @@ m6805_base_device::m6805_base_device( device_t *owner, uint32_t clock, device_type const type, - char const *name, - configuration_params const ¶ms, - char const *shortname, - char const *source) - : cpu_device(mconfig, type, name, tag, owner, clock, shortname, source) + configuration_params const ¶ms) + : cpu_device(mconfig, type, tag, owner, clock) , m_params(params) , m_program_config("program", ENDIANNESS_BIG, 8, params.m_addr_width) { @@ -252,12 +249,9 @@ m6805_base_device::m6805_base_device( device_t *owner, uint32_t clock, device_type const type, - char const *name, configuration_params const ¶ms, - address_map_delegate internal_map, - char const *shortname, - char const *source) - : cpu_device(mconfig, type, name, tag, owner, clock, shortname, source) + address_map_delegate internal_map) + : cpu_device(mconfig, type, tag, owner, clock) , m_params(params) , m_program_config("program", ENDIANNESS_BIG, 8, params.m_addr_width, 0, internal_map) { @@ -555,10 +549,7 @@ m6805_device::m6805_device(const machine_config &mconfig, const char *tag, devic owner, clock, M6805, - "M6805", - { s_hmos_ops, s_hmos_cycles, 12, 0x007f, 0x0060, 0xfffc }, - "m6805", - __FILE__) + { s_hmos_ops, s_hmos_cycles, 12, 0x007f, 0x0060, 0xfffc }) { } @@ -572,10 +563,7 @@ m68hc05eg_device::m68hc05eg_device(const machine_config &mconfig, const char *ta owner, clock, M68HC05EG, - "M68HC05EG", - { s_hmos_ops, s_hmos_cycles, 13, 0x00ff, 0x00c0, 0xfffc }, // completely wrong, but it preserves existing behaviour - "m68hc05eg", - __FILE__) + { s_hmos_ops, s_hmos_cycles, 13, 0x00ff, 0x00c0, 0xfffc }) // completely wrong, but it preserves existing behaviour { } @@ -615,10 +603,7 @@ hd63705_device::hd63705_device(const machine_config &mconfig, const char *tag, d owner, clock, HD63705, - "HD63705", - { s_hmos_ops, s_hmos_cycles, 16, 0x017f, 0x0100, 0x1ffa }, - "hd63705", - __FILE__) + { s_hmos_ops, s_hmos_cycles, 16, 0x017f, 0x0100, 0x1ffa }) { } @@ -707,6 +692,6 @@ void hd63705_device::interrupt_vector() } -const device_type M6805 = device_creator; -const device_type M68HC05EG = device_creator; -const device_type HD63705 = device_creator; +DEFINE_DEVICE_TYPE(M6805, m6805_device, "m6805", "M6805") +DEFINE_DEVICE_TYPE(M68HC05EG, m68hc05eg_device, "m68hc05eg", "MC68HC05EG") +DEFINE_DEVICE_TYPE(HD63705, hd63705_device, "hd63705", "HD63705") diff --git a/src/devices/cpu/m6805/m6805.h b/src/devices/cpu/m6805/m6805.h index 25a8cac6454..aad9b371751 100644 --- a/src/devices/cpu/m6805/m6805.h +++ b/src/devices/cpu/m6805/m6805.h @@ -12,9 +12,9 @@ //************************************************************************** // device type definition -extern const device_type M6805; -extern const device_type M68HC05EG; -extern const device_type HD63705; +DECLARE_DEVICE_TYPE(M6805, m6805_device) +DECLARE_DEVICE_TYPE(M68HC05EG, m68hc05eg_device) +DECLARE_DEVICE_TYPE(HD63705, hd63705_device) // ======================> m6805_base_device @@ -92,21 +92,15 @@ protected: device_t *owner, uint32_t clock, device_type const type, - char const *name, - configuration_params const ¶ms, - char const *shortname, - char const *source); + configuration_params const ¶ms); m6805_base_device( machine_config const &mconfig, char const *tag, device_t *owner, uint32_t clock, device_type const type, - char const *name, configuration_params const ¶ms, - address_map_delegate internal_map, - char const *shortname, - char const *source); + address_map_delegate internal_map); // device-level overrides virtual void device_start() override; diff --git a/src/devices/cpu/m6805/m68705.cpp b/src/devices/cpu/m6805/m68705.cpp index e8c12a0d7fa..ba4dae3a39f 100644 --- a/src/devices/cpu/m6805/m68705.cpp +++ b/src/devices/cpu/m6805/m68705.cpp @@ -87,10 +87,10 @@ constexpr u16 M68705_INT_MASK = 0x03; * Global variables ****************************************************************************/ -device_type const M68705P3 = device_creator; -device_type const M68705P5 = device_creator; -device_type const M68705R3 = device_creator; -device_type const M68705U3 = device_creator; +DEFINE_DEVICE_TYPE(M68705P3, m68705p3_device, "m68705p3", "MC68705P3") +DEFINE_DEVICE_TYPE(M68705P5, m68705p5_device, "m68705p5", "MC68705P5") +DEFINE_DEVICE_TYPE(M68705R3, m68705r3_device, "m68705r3", "MC68705R3") +DEFINE_DEVICE_TYPE(M68705U3, m68705u3_device, "m68705u3", "MC68705U3") /**************************************************************************** @@ -191,22 +191,16 @@ m68705_device::m68705_device( device_t *owner, u32 clock, device_type type, - char const *name, u32 addr_width, - address_map_delegate internal_map, - char const *shortname, - char const *source) + address_map_delegate internal_map) : m6805_base_device( mconfig, tag, owner, clock, type, - name, { s_hmos_ops, s_hmos_cycles, addr_width, 0x007f, 0x0060, M68705_VECTOR_SWI }, - internal_map, - shortname, - source) + internal_map) , device_nvram_interface(mconfig, *this) , m_user_rom(*this, DEVICE_SELF, u32(1) << addr_width) , m_port_open_drain{ false, false, false, false } @@ -680,11 +674,8 @@ m68705p_device::m68705p_device( char const *tag, device_t *owner, u32 clock, - device_type type, - char const *name, - char const *shortname, - char const *source) - : m68705_device(mconfig, tag, owner, clock, type, name, 11, address_map_delegate(FUNC(m68705p_device::p_map), this), shortname, source) + device_type type) + : m68705_device(mconfig, tag, owner, clock, type, 11, address_map_delegate(FUNC(m68705p_device::p_map), this)) { set_port_open_drain<0>(true); // Port A is open drain with internal pull-ups set_port_mask<2>(0xf0); // Port C is four bits wide @@ -751,11 +742,8 @@ m68705u_device::m68705u_device( device_t *owner, u32 clock, device_type type, - char const *name, - address_map_delegate internal_map, - char const *shortname, - char const *source) - : m68705_device(mconfig, tag, owner, clock, type, name, 12, internal_map, shortname, source) + address_map_delegate internal_map) + : m68705_device(mconfig, tag, owner, clock, type, 12, internal_map) { set_port_open_drain<0>(true); // Port A is open drain with internal pull-ups } @@ -765,11 +753,8 @@ m68705u_device::m68705u_device( char const *tag, device_t *owner, u32 clock, - device_type type, - char const *name, - char const *shortname, - char const *source) - : m68705u_device(mconfig, tag, owner, clock, type, name, address_map_delegate(FUNC(m68705u_device::u_map), this), shortname, source) + device_type type) + : m68705u_device(mconfig, tag, owner, clock, type, address_map_delegate(FUNC(m68705u_device::u_map), this)) { } @@ -837,11 +822,8 @@ m68705r_device::m68705r_device( char const *tag, device_t *owner, u32 clock, - device_type type, - char const *name, - char const *shortname, - char const *source) - : m68705u_device(mconfig, tag, owner, clock, type, name, address_map_delegate(FUNC(m68705r_device::r_map), this), shortname, source) + device_type type) + : m68705u_device(mconfig, tag, owner, clock, type, address_map_delegate(FUNC(m68705r_device::r_map), this)) { } @@ -868,7 +850,7 @@ offs_t m68705r_device::disasm_disassemble( ****************************************************************************/ m68705p3_device::m68705p3_device(machine_config const &mconfig, char const *tag, device_t *owner, uint32_t clock) - : m68705p_device(mconfig, tag, owner, clock, M68705P3, "MC68705P3", "m68705p3", __FILE__) + : m68705p_device(mconfig, tag, owner, clock, M68705P3) { } @@ -888,7 +870,7 @@ u8 m68705p3_device::get_mask_options() const ****************************************************************************/ m68705p5_device::m68705p5_device(machine_config const &mconfig, char const *tag, device_t *owner, uint32_t clock) - : m68705p_device(mconfig, tag, owner, clock, M68705P5, "MC68705P5", "m68705p5", __FILE__) + : m68705p_device(mconfig, tag, owner, clock, M68705P5) { } @@ -908,7 +890,7 @@ u8 m68705p5_device::get_mask_options() const ****************************************************************************/ m68705r3_device::m68705r3_device(machine_config const &mconfig, char const *tag, device_t *owner, uint32_t clock) - : m68705r_device(mconfig, tag, owner, clock, M68705R3, "MC68705R3", "m68705r3", __FILE__) + : m68705r_device(mconfig, tag, owner, clock, M68705R3) { } @@ -928,7 +910,7 @@ u8 m68705r3_device::get_mask_options() const ****************************************************************************/ m68705u3_device::m68705u3_device(machine_config const &mconfig, char const *tag, device_t *owner, uint32_t clock) - : m68705u_device(mconfig, tag, owner, clock, M68705U3, "MC68705U3", "m68705u3", __FILE__) + : m68705u_device(mconfig, tag, owner, clock, M68705U3) { } diff --git a/src/devices/cpu/m6805/m68705.h b/src/devices/cpu/m6805/m68705.h index 6241079f912..aaa2f88d693 100644 --- a/src/devices/cpu/m6805/m68705.h +++ b/src/devices/cpu/m6805/m68705.h @@ -12,10 +12,10 @@ // GLOBAL VARIABLES //************************************************************************** -extern device_type const M68705P3; -extern device_type const M68705P5; -extern device_type const M68705R3; -extern device_type const M68705U3; +DECLARE_DEVICE_TYPE(M68705P3, m68705p3_device) +DECLARE_DEVICE_TYPE(M68705P5, m68705p5_device) +DECLARE_DEVICE_TYPE(M68705R3, m68705r3_device) +DECLARE_DEVICE_TYPE(M68705U3, m68705u3_device) //************************************************************************** @@ -97,11 +97,8 @@ protected: device_t *owner, u32 clock, device_type type, - char const *name, u32 addr_width, - address_map_delegate internal_map, - char const *shortname, - char const *source); + address_map_delegate internal_map); template DECLARE_READ8_MEMBER(eprom_r); template DECLARE_WRITE8_MEMBER(eprom_w); @@ -201,10 +198,7 @@ protected: char const *tag, device_t *owner, u32 clock, - device_type type, - char const *name, - char const *shortname, - char const *source); + device_type type); virtual void device_start() override; @@ -236,19 +230,13 @@ protected: device_t *owner, u32 clock, device_type type, - char const *name, - address_map_delegate internal_map, - char const *shortname, - char const *source); + address_map_delegate internal_map); m68705u_device( machine_config const &mconfig, char const *tag, device_t *owner, u32 clock, - device_type type, - char const *name, - char const *shortname, - char const *source); + device_type type); virtual void device_start() override; @@ -276,10 +264,7 @@ protected: char const *tag, device_t *owner, u32 clock, - device_type type, - char const *name, - char const *shortname, - char const *source); + device_type type); virtual void device_start() override; diff --git a/src/devices/cpu/m6805/m68hc05.cpp b/src/devices/cpu/m6805/m68hc05.cpp index 7901af45b34..90575e98ab2 100644 --- a/src/devices/cpu/m6805/m68hc05.cpp +++ b/src/devices/cpu/m6805/m68hc05.cpp @@ -89,9 +89,9 @@ constexpr u16 M68HC05_INT_MASK = M68HC05_INT_IRQ | M68HC05_INT_TIMER; * Global variables ****************************************************************************/ -device_type const M68HC05C4 = device_creator; -device_type const M68HC05C8 = device_creator; -device_type const M68HC705C8A = device_creator; +DEFINE_DEVICE_TYPE(M68HC05C4, m68hc05c4_device, "m68hc05c4", "MC68HC05C4") +DEFINE_DEVICE_TYPE(M68HC05C8, m68hc05c8_device, "m68hc05c8", "MC68HC05C8") +DEFINE_DEVICE_TYPE(M68HC705C8A, m68hc705c8a_device, "m68hc705c8a", "MC68HC705C8A") @@ -105,21 +105,15 @@ m68hc05_device::m68hc05_device( device_t *owner, u32 clock, device_type type, - char const *name, - address_map_delegate internal_map, - char const *shortname, - char const *source) + address_map_delegate internal_map) : m6805_base_device( mconfig, tag, owner, clock, type, - name, { s_hc_ops, s_hc_cycles, 13, 0x00ff, 0x00c0, M68HC05_VECTOR_SWI }, - internal_map, - shortname, - source) + internal_map) , m_port_cb_r{ *this, *this, *this, *this } , m_port_cb_w{ *this, *this, *this, *this } , m_port_bits{ 0xff, 0xff, 0xff, 0xff } @@ -718,11 +712,8 @@ m68hc705_device::m68hc705_device( device_t *owner, u32 clock, device_type type, - char const *name, - address_map_delegate internal_map, - char const *shortname, - char const *source) - : m68hc05_device(mconfig, tag, owner, clock, type, name, internal_map, shortname, source) + address_map_delegate internal_map) + : m68hc05_device(mconfig, tag, owner, clock, type, internal_map) { } @@ -770,10 +761,7 @@ m68hc05c4_device::m68hc05c4_device(machine_config const &mconfig, char const *ta owner, clock, M68HC05C4, - "MC68HC05C4", - address_map_delegate(FUNC(m68hc05c4_device::c4_map), this), - "m68hc05c4", - __FILE__) + address_map_delegate(FUNC(m68hc05c4_device::c4_map), this)) { set_port_bits(std::array{{ 0xff, 0xff, 0xff, 0xbf }}); } @@ -842,10 +830,7 @@ m68hc05c8_device::m68hc05c8_device(machine_config const &mconfig, char const *ta owner, clock, M68HC05C8, - "MC68HC05C8", - address_map_delegate(FUNC(m68hc05c8_device::c8_map), this), - "m68hc05c8", - __FILE__) + address_map_delegate(FUNC(m68hc05c8_device::c8_map), this)) { set_port_bits(std::array{{ 0xff, 0xff, 0xff, 0xbf }}); } @@ -920,10 +905,7 @@ m68hc705c8a_device::m68hc705c8a_device(machine_config const &mconfig, char const owner, clock, M68HC705C8A, - "MC68HC705C8A", - address_map_delegate(FUNC(m68hc705c8a_device::c8a_map), this), - "m68hc705c8a", - __FILE__) + address_map_delegate(FUNC(m68hc705c8a_device::c8a_map), this)) { set_port_bits(std::array{{ 0xff, 0xff, 0xff, 0xbf }}); } diff --git a/src/devices/cpu/m6805/m68hc05.h b/src/devices/cpu/m6805/m68hc05.h index d751d4b2f9d..db61afc8b60 100644 --- a/src/devices/cpu/m6805/m68hc05.h +++ b/src/devices/cpu/m6805/m68hc05.h @@ -14,9 +14,9 @@ // GLOBAL VARIABLES //************************************************************************** -extern device_type const M68HC05C4; -extern device_type const M68HC05C8; -extern device_type const M68HC705C8A; +DECLARE_DEVICE_TYPE(M68HC05C4, m68hc05c4_device) +DECLARE_DEVICE_TYPE(M68HC05C8, m68hc05c8_device) +DECLARE_DEVICE_TYPE(M68HC705C8A, m68hc705c8a_device) //************************************************************************** @@ -108,10 +108,7 @@ protected: device_t *owner, u32 clock, device_type type, - char const *name, - address_map_delegate internal_map, - char const *shortname, - char const *source); + address_map_delegate internal_map); void set_port_bits(std::array const &bits); void set_port_interrupt(std::array const &interrupt); @@ -216,10 +213,7 @@ protected: device_t *owner, u32 clock, device_type type, - char const *name, - address_map_delegate internal_map, - char const *shortname, - char const *source); + address_map_delegate internal_map); }; diff --git a/src/devices/cpu/m6809/hd6309.cpp b/src/devices/cpu/m6809/hd6309.cpp index 25673b0d761..30de26db2c6 100644 --- a/src/devices/cpu/m6809/hd6309.cpp +++ b/src/devices/cpu/m6809/hd6309.cpp @@ -124,7 +124,7 @@ March 2013 NPW: // DEVICE INTERFACE //************************************************************************** -const device_type HD6309 = device_creator; +DEFINE_DEVICE_TYPE(HD6309, hd6309_device, "hd6309", "HD6309") //------------------------------------------------- @@ -132,7 +132,7 @@ const device_type HD6309 = device_creator; //------------------------------------------------- hd6309_device::hd6309_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - m6809_base_device(mconfig, "HD6309", tag, owner, clock, HD6309, 4, "hd6309", __FILE__), + m6809_base_device(mconfig, tag, owner, clock, HD6309, 4), m_md(0), m_temp_im(0) { diff --git a/src/devices/cpu/m6809/hd6309.h b/src/devices/cpu/m6809/hd6309.h index f4eae899bfa..a097902da1f 100644 --- a/src/devices/cpu/m6809/hd6309.h +++ b/src/devices/cpu/m6809/hd6309.h @@ -8,10 +8,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_CPU_M6809_HD6309_H +#define MAME_CPU_M6809_HD6309_H -#ifndef __HD6309_H__ -#define __HD6309_H__ +#pragma once #include "m6809.h" @@ -21,7 +21,7 @@ //************************************************************************** // device type definition -extern const device_type HD6309; +DECLARE_DEVICE_TYPE(HD6309, hd6309_device) // ======================> hd6309_device @@ -143,4 +143,4 @@ enum #define HD6309_IRQ_LINE M6809_IRQ_LINE /* 0 - IRQ line number */ #define HD6309_FIRQ_LINE M6809_FIRQ_LINE /* 1 - FIRQ line number */ -#endif // __HD6309_H__ +#endif // MAME_CPU_M6809_HD6309_H diff --git a/src/devices/cpu/m6809/konami.cpp b/src/devices/cpu/m6809/konami.cpp index e8114c7e75d..55f3a864744 100644 --- a/src/devices/cpu/m6809/konami.cpp +++ b/src/devices/cpu/m6809/konami.cpp @@ -77,7 +77,7 @@ March 2013 NPW: // DEVICE INTERFACE //************************************************************************** -const device_type KONAMI = device_creator; +DEFINE_DEVICE_TYPE(KONAMI, konami_cpu_device, "konami_cpu", "KONAMI CPU") //------------------------------------------------- @@ -85,8 +85,8 @@ const device_type KONAMI = device_creator; //------------------------------------------------- konami_cpu_device::konami_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : m6809_base_device(mconfig, "KONAMI CPU", tag, owner, clock, KONAMI, 1, "konami_cpu", __FILE__), - m_set_lines(*this) + : m6809_base_device(mconfig, tag, owner, clock, KONAMI, 1) + , m_set_lines(*this) { } diff --git a/src/devices/cpu/m6809/konami.h b/src/devices/cpu/m6809/konami.h index 2850eff7372..1d9d900c138 100644 --- a/src/devices/cpu/m6809/konami.h +++ b/src/devices/cpu/m6809/konami.h @@ -8,10 +8,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_CPU_M6809_KONAMI_H +#define MAME_CPU_M6809_KONAMI_H -#ifndef __KONAMI_CPU_H__ -#define __KONAMI_CPU_H__ +#pragma once #include "m6809.h" @@ -25,7 +25,7 @@ // device type definition -extern const device_type KONAMI; +DECLARE_DEVICE_TYPE(KONAMI, konami_cpu_device) // ======================> konami_cpu_device @@ -78,4 +78,4 @@ private: #define KONAMI_IRQ_LINE M6809_IRQ_LINE /* 0 - IRQ line number */ #define KONAMI_FIRQ_LINE M6809_FIRQ_LINE /* 1 - FIRQ line number */ -#endif /* __KONAMI_CPU_H__ */ +#endif // MAME_CPU_M6809_KONAMI_H diff --git a/src/devices/cpu/m6809/m6809.cpp b/src/devices/cpu/m6809/m6809.cpp index f3c6e1584ca..f1f8e387ca2 100644 --- a/src/devices/cpu/m6809/m6809.cpp +++ b/src/devices/cpu/m6809/m6809.cpp @@ -103,16 +103,16 @@ March 2013 NPW: // DEVICE INTERFACE //************************************************************************** -const device_type M6809 = device_creator; -const device_type M6809E = device_creator; +DEFINE_DEVICE_TYPE(M6809, m6809_device, "m6809", "M6809") +DEFINE_DEVICE_TYPE(M6809E, m6809e_device, "m6809e", "M6809E") //------------------------------------------------- // m6809_base_device - constructor //------------------------------------------------- -m6809_base_device::m6809_base_device(const machine_config &mconfig, const char *name, const char *tag, device_t *owner, uint32_t clock, const device_type type, int divider, const char *shortname, const char *source) - : cpu_device(mconfig, type, name, tag, owner, clock, shortname, source), +m6809_base_device::m6809_base_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock, const device_type type, int divider) + : cpu_device(mconfig, type, tag, owner, clock), m_lic_func(*this), m_program_config("program", ENDIANNESS_BIG, 8, 16), m_sprogram_config("decrypted_opcodes", ENDIANNESS_BIG, 8, 16), @@ -601,7 +601,7 @@ void m6809_base_device::mi_default::write(uint16_t adr, uint8_t val) //------------------------------------------------- m6809_device::m6809_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : m6809_base_device(mconfig, "M6809", tag, owner, clock, M6809, 1, "m6809", __FILE__) + : m6809_base_device(mconfig, tag, owner, clock, M6809, 1) { } @@ -612,6 +612,6 @@ m6809_device::m6809_device(const machine_config &mconfig, const char *tag, devic //------------------------------------------------- m6809e_device::m6809e_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : m6809_base_device(mconfig, "M6809E", tag, owner, clock, M6809E, 4, "m6809e", __FILE__) + : m6809_base_device(mconfig, tag, owner, clock, M6809E, 4) { } diff --git a/src/devices/cpu/m6809/m6809.h b/src/devices/cpu/m6809/m6809.h index 96f245cc535..bfe82224b4d 100644 --- a/src/devices/cpu/m6809/m6809.h +++ b/src/devices/cpu/m6809/m6809.h @@ -8,33 +8,29 @@ **********************************************************************/ -#pragma once +#ifndef MAME_CPU_M6809_M6809_H +#define MAME_CPU_M6809_M6809_H -#ifndef __M6809_H__ -#define __M6809_H__ +#pragma once //************************************************************************** // TYPE DEFINITIONS //************************************************************************** -class m6809_device; - - // device type definition -extern const device_type M6809; -extern const device_type M6809E; +DECLARE_DEVICE_TYPE(M6809, m6809_device) +DECLARE_DEVICE_TYPE(M6809E, m6809e_device) // ======================> m6809_base_device // Used by core CPU interface class m6809_base_device : public cpu_device { -public: +protected: // construction/destruction - m6809_base_device(const machine_config &mconfig, const char *name, const char *tag, device_t *owner, uint32_t clock, const device_type type, int divider, const char *shortname, const char *source); + m6809_base_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock, const device_type type, int divider); -protected: class memory_interface { public: address_space *m_program, *m_sprogram; @@ -334,4 +330,4 @@ enum /* M6809e has LIC line to indicate opcode/data fetch */ -#endif /* __M6809_H__ */ +#endif // MAME_CPU_M6809_M6809_H diff --git a/src/devices/cpu/mb86233/mb86233.cpp b/src/devices/cpu/mb86233/mb86233.cpp index 3ba9afdc1ad..3d7a4be3155 100644 --- a/src/devices/cpu/mb86233/mb86233.cpp +++ b/src/devices/cpu/mb86233/mb86233.cpp @@ -20,19 +20,20 @@ #include "mb86233.h" -const device_type MB86233 = device_creator; +DEFINE_DEVICE_TYPE(MB86233, mb86233_cpu_device, "mb86233", "MB86233") mb86233_cpu_device::mb86233_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cpu_device(mconfig, MB86233, "MB86233", tag, owner, clock, "mb86233", __FILE__) + : cpu_device(mconfig, MB86233, tag, owner, clock) , m_program_config("program", ENDIANNESS_LITTLE, 32, 32, -2) - , m_data_config("data", ENDIANNESS_LITTLE, 32, 32, 0), m_pc(0), m_reps(0), m_pcsp(0), m_eb(0), m_shift(0), m_repcnt(0), m_sr(0), - m_fpucontrol(0), m_program(nullptr), m_direct(nullptr), m_icount(0), m_fifo_wait(0) - , m_fifo_read_cb(*this) + , m_data_config("data", ENDIANNESS_LITTLE, 32, 32, 0) + , m_pc(0), m_reps(0), m_pcsp(0), m_eb(0), m_shift(0), m_repcnt(0), m_sr(0) + , m_fpucontrol(0), m_program(nullptr), m_direct(nullptr), m_icount(0), m_fifo_wait(0) + , m_fifo_read_cb(*this) , m_fifo_read_ok_cb(*this) , m_fifo_write_cb(*this) , m_tablergn(nullptr), m_ARAM(nullptr), m_BRAM(nullptr) - , m_Tables(nullptr) + , m_Tables(nullptr) { } diff --git a/src/devices/cpu/mb86233/mb86233.h b/src/devices/cpu/mb86233/mb86233.h index 65a2c370b07..d95fbd9b1f5 100644 --- a/src/devices/cpu/mb86233/mb86233.h +++ b/src/devices/cpu/mb86233/mb86233.h @@ -1,44 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Ernesto Corvi -#pragma once - -#ifndef __MB86233_H__ -#define __MB86233_H__ - +#ifndef MAME_CPU_MB86233_MB86233_H +#define MAME_CPU_MB86233_MB86233_H -/*************************************************************************** - REGISTER ENUMERATION -***************************************************************************/ - -enum -{ - MB86233_PC=1, - MB86233_A, - MB86233_B, - MB86233_D, - MB86233_P, - MB86233_REP, - MB86233_SP, - MB86233_EB, - MB86233_SHIFT, - MB86233_FLAGS, - MB86233_R0, - MB86233_R1, - MB86233_R2, - MB86233_R3, - MB86233_R4, - MB86233_R5, - MB86233_R6, - MB86233_R7, - MB86233_R8, - MB86233_R9, - MB86233_R10, - MB86233_R11, - MB86233_R12, - MB86233_R13, - MB86233_R14, - MB86233_R15 -}; +#pragma once #define MCFG_MB86233_FIFO_READ_CB(_devcb) \ @@ -58,12 +23,43 @@ public: mb86233_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // static configuration helpers - template static devcb_base &set_fifo_read_cb(device_t &device, _Object object) { return downcast(device).m_fifo_read_cb.set_callback(object); } - template static devcb_base &set_fifo_read_ok_cb(device_t &device, _Object object) { return downcast(device).m_fifo_read_ok_cb.set_callback(object); } - template static devcb_base &set_fifo_write_cb(device_t &device, _Object object) { return downcast(device).m_fifo_write_cb.set_callback(object); } + template static devcb_base &set_fifo_read_cb(device_t &device, Object &&cb) { return downcast(device).m_fifo_read_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_fifo_read_ok_cb(device_t &device, Object &&cb) { return downcast(device).m_fifo_read_ok_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_fifo_write_cb(device_t &device, Object &&cb) { return downcast(device).m_fifo_write_cb.set_callback(std::forward(cb)); } static void set_tablergn(device_t &device, const char *tablergn) { downcast(device).m_tablergn = tablergn; } protected: + // register enumeration + enum + { + MB86233_PC=1, + MB86233_A, + MB86233_B, + MB86233_D, + MB86233_P, + MB86233_REP, + MB86233_SP, + MB86233_EB, + MB86233_SHIFT, + MB86233_FLAGS, + MB86233_R0, + MB86233_R1, + MB86233_R2, + MB86233_R3, + MB86233_R4, + MB86233_R5, + MB86233_R6, + MB86233_R7, + MB86233_R8, + MB86233_R9, + MB86233_R10, + MB86233_R11, + MB86233_R12, + MB86233_R13, + MB86233_R14, + MB86233_R15 + }; + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -75,7 +71,7 @@ protected: virtual void execute_run() override; // device_memory_interface overrides - virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_0) const override { return (spacenum == AS_PROGRAM) ? &m_program_config : ( (spacenum == AS_DATA) ? &m_data_config : nullptr ); } + virtual const address_space_config *memory_space_config(address_spacenum spacenum) const override { return (spacenum == AS_PROGRAM) ? &m_program_config : ( (spacenum == AS_DATA) ? &m_data_config : nullptr ); } // device_state_interface overrides virtual void state_string_export(const device_state_entry &entry, std::string &str) const override; @@ -144,6 +140,6 @@ private: }; -extern const device_type MB86233; +DECLARE_DEVICE_TYPE(MB86233, mb86233_cpu_device) -#endif /* __MB86233_H__ */ +#endif // MAME_CPU_MB86233_MB86233_H diff --git a/src/devices/cpu/mb86235/mb86235.cpp b/src/devices/cpu/mb86235/mb86235.cpp index c2a2d1e2c88..e1f6c6ec41f 100644 --- a/src/devices/cpu/mb86235/mb86235.cpp +++ b/src/devices/cpu/mb86235/mb86235.cpp @@ -12,10 +12,11 @@ *****************************************************************************/ #include "emu.h" -#include "debugger.h" #include "mb86235.h" #include "mb86235fe.h" +#include "debugger.h" + #define ENABLE_DRC 0 @@ -28,7 +29,7 @@ -const device_type MB86235 = device_creator; +DEFINE_DEVICE_TYPE(MB86235, mb86235_device, "mb86235", "MB86235") static ADDRESS_MAP_START(internal_abus, AS_DATA, 32, mb86235_device) @@ -204,7 +205,7 @@ void mb86235_cpu_device::execute_set_input(int irqline, int state) #endif mb86235_device::mb86235_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cpu_device(mconfig, MB86235, "MB86235", tag, owner, clock, "mb86235", __FILE__) + : cpu_device(mconfig, MB86235, tag, owner, clock) , m_program_config("program", ENDIANNESS_LITTLE, 64, 32, -3) , m_dataa_config("data_a", ENDIANNESS_LITTLE, 32, 24, -2, ADDRESS_MAP_NAME(internal_abus)) , m_datab_config("data_b", ENDIANNESS_LITTLE, 32, 10, -2, ADDRESS_MAP_NAME(internal_bbus)) diff --git a/src/devices/cpu/mb86235/mb86235.h b/src/devices/cpu/mb86235/mb86235.h index 99c008ae88e..c5826ea8960 100644 --- a/src/devices/cpu/mb86235/mb86235.h +++ b/src/devices/cpu/mb86235/mb86235.h @@ -6,10 +6,10 @@ * *****************************************************************************/ -#pragma once +#ifndef MAME_CPU_MB86235_MB86235_H +#define MAME_CPU_MB86235_MB86235_H -#ifndef __MB86235_H__ -#define __MB86235_H__ +#pragma once #include "cpu/drcfe.h" #include "cpu/drcuml.h" @@ -17,23 +17,6 @@ class mb86235_frontend; - - -#define OP_USERFLAG_FIFOIN 0x1 -#define OP_USERFLAG_FIFOOUT0 0x2 -#define OP_USERFLAG_FIFOOUT1 0x4 -#define OP_USERFLAG_REPEAT 0x8 -#define OP_USERFLAG_REPEATED_OP 0x10 -#define OP_USERFLAG_PR_MASK 0x300 -#define OP_USERFLAG_PR_INC 0x100 -#define OP_USERFLAG_PR_DEC 0x200 -#define OP_USERFLAG_PR_ZERO 0x300 -#define OP_USERFLAG_PW_MASK 0xc00 -#define OP_USERFLAG_PW_INC 0x400 -#define OP_USERFLAG_PW_DEC 0x800 -#define OP_USERFLAG_PW_ZERO 0xc00 - - class mb86235_device : public cpu_device { friend class mb86235_frontend; @@ -65,9 +48,9 @@ public: MB86235_AR0, MB86235_AR1, MB86235_AR2, MB86235_AR3, MB86235_AR4, MB86235_AR5, MB86235_AR6, MB86235_AR7, }; - const int FIFOIN_SIZE = 16; - const int FIFOOUT0_SIZE = 16; - const int FIFOOUT1_SIZE = 16; + static constexpr int FIFOIN_SIZE = 16; + static constexpr int FIFOOUT0_SIZE = 16; + static constexpr int FIFOOUT1_SIZE = 16; protected: // device-level overrides @@ -243,9 +226,9 @@ private: }; -extern const device_type MB86235; +DECLARE_DEVICE_TYPE(MB86235, mb86235_device) CPU_DISASSEMBLE( mb86235 ); -#endif /* __MB86235_H__ */ +#endif // MAME_CPU_MB86235_MB86235_H diff --git a/src/devices/cpu/mb86235/mb86235defs.h b/src/devices/cpu/mb86235/mb86235defs.h new file mode 100644 index 00000000000..b3ad225257c --- /dev/null +++ b/src/devices/cpu/mb86235/mb86235defs.h @@ -0,0 +1,21 @@ +#ifndef MAME_CPU_MB86235_MB86235DEFS_H +#define MAME_CPU_MB86235_MB86235DEFS_H + +#pragma once + + +#define OP_USERFLAG_FIFOIN 0x1 +#define OP_USERFLAG_FIFOOUT0 0x2 +#define OP_USERFLAG_FIFOOUT1 0x4 +#define OP_USERFLAG_REPEAT 0x8 +#define OP_USERFLAG_REPEATED_OP 0x10 +#define OP_USERFLAG_PR_MASK 0x300 +#define OP_USERFLAG_PR_INC 0x100 +#define OP_USERFLAG_PR_DEC 0x200 +#define OP_USERFLAG_PR_ZERO 0x300 +#define OP_USERFLAG_PW_MASK 0xc00 +#define OP_USERFLAG_PW_INC 0x400 +#define OP_USERFLAG_PW_DEC 0x800 +#define OP_USERFLAG_PW_ZERO 0xc00 + +#endif // MAME_CPU_MB86235_MB86235DEFS_H diff --git a/src/devices/cpu/mb86235/mb86235drc.cpp b/src/devices/cpu/mb86235/mb86235drc.cpp index 0a27c23eafc..d3fa314b0ae 100644 --- a/src/devices/cpu/mb86235/mb86235drc.cpp +++ b/src/devices/cpu/mb86235/mb86235drc.cpp @@ -8,12 +8,16 @@ ******************************************************************************/ #include "emu.h" -#include "debugger.h" #include "mb86235.h" #include "mb86235fe.h" + #include "cpu/drcfe.h" #include "cpu/drcuml.h" #include "cpu/drcumlsh.h" +#include "debugger.h" + +#include "mb86235defs.h" + /* TODO: diff --git a/src/devices/cpu/mb86235/mb86235fe.cpp b/src/devices/cpu/mb86235/mb86235fe.cpp index f55fb0934bf..854fd97abb7 100644 --- a/src/devices/cpu/mb86235/mb86235fe.cpp +++ b/src/devices/cpu/mb86235/mb86235fe.cpp @@ -10,6 +10,8 @@ #include "emu.h" #include "mb86235fe.h" +#include "mb86235defs.h" + #define AA_USED(desc,x) do { (desc).regin[0] |= 1 << (x); } while(0) #define AA_MODIFIED(desc,x) do { (desc).regout[0] |= 1 << (x); } while(0) diff --git a/src/devices/cpu/mb88xx/mb88xx.cpp b/src/devices/cpu/mb88xx/mb88xx.cpp index 3d0b88b2382..24a2943e518 100644 --- a/src/devices/cpu/mb88xx/mb88xx.cpp +++ b/src/devices/cpu/mb88xx/mb88xx.cpp @@ -16,17 +16,17 @@ ***************************************************************************/ #include "emu.h" -#include "debugger.h" #include "mb88xx.h" +#include "debugger.h" -const device_type MB88 = device_creator; -const device_type MB88201 = device_creator; -const device_type MB88202 = device_creator; -const device_type MB8841 = device_creator; -const device_type MB8842 = device_creator; -const device_type MB8843 = device_creator; -const device_type MB8844 = device_creator; +DEFINE_DEVICE_TYPE(MB88, mb88_cpu_device, "mb88xx", "MB88xx"); +DEFINE_DEVICE_TYPE(MB88201, mb88201_cpu_device, "mb88201", "MB88201") +DEFINE_DEVICE_TYPE(MB88202, mb88202_cpu_device, "mb88202", "MB88202") +DEFINE_DEVICE_TYPE(MB8841, mb8841_cpu_device, "mb8841", "MB8841") +DEFINE_DEVICE_TYPE(MB8842, mb8842_cpu_device, "mb8842", "MB8842") +DEFINE_DEVICE_TYPE(MB8843, mb8843_cpu_device, "mb8843", "MB8843") +DEFINE_DEVICE_TYPE(MB8844, mb8844_cpu_device, "mb8844", "MB8844") /*************************************************************************** @@ -110,7 +110,7 @@ ADDRESS_MAP_END mb88_cpu_device::mb88_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cpu_device(mconfig, MB88, "MB88xx", tag, owner, clock, "mb88xx", __FILE__) + : cpu_device(mconfig, MB88, tag, owner, clock) , m_program_config("program", ENDIANNESS_BIG, 8, 11, 0) , m_data_config("data", ENDIANNESS_BIG, 8, 7, 0) , m_io_config("io", ENDIANNESS_BIG, 8, 3, 0) @@ -119,46 +119,46 @@ mb88_cpu_device::mb88_cpu_device(const machine_config &mconfig, const char *tag, } -mb88_cpu_device::mb88_cpu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source, int program_width, int data_width) - : cpu_device(mconfig, type, name, tag, owner, clock, shortname, source) - , m_program_config("program", ENDIANNESS_BIG, 8, program_width, 0, ( (program_width == 9) ? ADDRESS_MAP_NAME(program_9bit) : (program_width == 10) ? ADDRESS_MAP_NAME(program_10bit) : ADDRESS_MAP_NAME(program_11bit) ) ) - , m_data_config("data", ENDIANNESS_BIG, 8, data_width, 0, ( (data_width == 4) ? ADDRESS_MAP_NAME(data_4bit) : (data_width == 5) ? ADDRESS_MAP_NAME(data_5bit) : (data_width == 6) ? ADDRESS_MAP_NAME(data_6bit) : ADDRESS_MAP_NAME(data_7bit) ) ) +mb88_cpu_device::mb88_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int program_width, int data_width) + : cpu_device(mconfig, type, tag, owner, clock) + , m_program_config("program", ENDIANNESS_BIG, 8, program_width, 0, (program_width == 9) ? ADDRESS_MAP_NAME(program_9bit) : (program_width == 10) ? ADDRESS_MAP_NAME(program_10bit) : ADDRESS_MAP_NAME(program_11bit)) + , m_data_config("data", ENDIANNESS_BIG, 8, data_width, 0, (data_width == 4) ? ADDRESS_MAP_NAME(data_4bit) : (data_width == 5) ? ADDRESS_MAP_NAME(data_5bit) : (data_width == 6) ? ADDRESS_MAP_NAME(data_6bit) : ADDRESS_MAP_NAME(data_7bit)) , m_io_config("io", ENDIANNESS_BIG, 8, 3, 0) , m_PLA(nullptr) { } mb88201_cpu_device::mb88201_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mb88_cpu_device(mconfig, MB88201, "MB88201", tag, owner, clock, "mb88201", __FILE__, 9, 4) + : mb88_cpu_device(mconfig, MB88201, tag, owner, clock, 9, 4) { } mb88202_cpu_device::mb88202_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mb88_cpu_device(mconfig, MB88202, "MB88202", tag, owner, clock, "mb88202", __FILE__, 10, 5) + : mb88_cpu_device(mconfig, MB88202, tag, owner, clock, 10, 5) { } mb8841_cpu_device::mb8841_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mb88_cpu_device(mconfig, MB8841, "MB8841", tag, owner, clock, "mb8841", __FILE__, 11, 7) + : mb88_cpu_device(mconfig, MB8841, tag, owner, clock, 11, 7) { } mb8842_cpu_device::mb8842_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mb88_cpu_device(mconfig, MB8842, "MB8842", tag, owner, clock, "mb8842", __FILE__, 11, 7) + : mb88_cpu_device(mconfig, MB8842, tag, owner, clock, 11, 7) { } mb8843_cpu_device::mb8843_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mb88_cpu_device(mconfig, MB8843, "MB8843", tag, owner, clock, "mb8843", __FILE__, 10, 6) + : mb88_cpu_device(mconfig, MB8843, tag, owner, clock, 10, 6) { } mb8844_cpu_device::mb8844_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mb88_cpu_device(mconfig, MB8844, "MB8844", tag, owner, clock, "mb8844", __FILE__, 10, 6) + : mb88_cpu_device(mconfig, MB8844, tag, owner, clock, 10, 6) { } diff --git a/src/devices/cpu/mb88xx/mb88xx.h b/src/devices/cpu/mb88xx/mb88xx.h index e5acb3e7526..b44a93709cc 100644 --- a/src/devices/cpu/mb88xx/mb88xx.h +++ b/src/devices/cpu/mb88xx/mb88xx.h @@ -9,10 +9,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_CPU_MB88XX_MB88XX_H +#define MAME_CPU_MB88XX_MB88XX_H -#ifndef __MB88XX_H__ -#define __MB88XX_H__ +#pragma once /*************************************************************************** @@ -65,7 +65,6 @@ class mb88_cpu_device : public cpu_device public: // construction/destruction mb88_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - mb88_cpu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source, int program_width, int data_width); // static configuration helpers static void set_pla(device_t &device, uint8_t *pla) { downcast(device).m_PLA = pla; } @@ -73,6 +72,8 @@ public: DECLARE_WRITE_LINE_MEMBER( clock_w ); protected: + mb88_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int program_width, int data_width); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -87,7 +88,7 @@ protected: virtual uint64_t execute_cycles_to_clocks(uint64_t cycles) const override { return (cycles * 6); } // device_memory_interface overrides - virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_0) const override { return (spacenum == AS_PROGRAM) ? &m_program_config : ( (spacenum == AS_DATA) ? &m_data_config : ( (spacenum == AS_IO) ? &m_io_config : nullptr ) ); } + virtual const address_space_config *memory_space_config(address_spacenum spacenum) const override { return (spacenum == AS_PROGRAM) ? &m_program_config : (spacenum == AS_DATA) ? &m_data_config : (spacenum == AS_IO) ? &m_io_config : nullptr; } // device_state_interface overrides virtual void state_string_export(const device_state_entry &entry, std::string &str) const override; @@ -205,13 +206,12 @@ public: }; -extern const device_type MB88; -extern const device_type MB88201; -extern const device_type MB88202; -extern const device_type MB8841; -extern const device_type MB8842; -extern const device_type MB8843; -extern const device_type MB8844; - +DECLARE_DEVICE_TYPE(MB88, mb88_cpu_device) +DECLARE_DEVICE_TYPE(MB88201, mb88201_cpu_device) +DECLARE_DEVICE_TYPE(MB88202, mb88202_cpu_device) +DECLARE_DEVICE_TYPE(MB8841, mb8841_cpu_device) +DECLARE_DEVICE_TYPE(MB8842, mb8842_cpu_device) +DECLARE_DEVICE_TYPE(MB8843, mb8843_cpu_device) +DECLARE_DEVICE_TYPE(MB8844, mb8844_cpu_device) -#endif /* __MB88XX_H__ */ +#endif // MAME_CPU_MB88XX_MB88XX_H diff --git a/src/devices/cpu/mc68hc11/mc68hc11.cpp b/src/devices/cpu/mc68hc11/mc68hc11.cpp index e4405d4c1ec..3bac6f74f14 100644 --- a/src/devices/cpu/mc68hc11/mc68hc11.cpp +++ b/src/devices/cpu/mc68hc11/mc68hc11.cpp @@ -39,11 +39,11 @@ enum static const int div_tab[4] = { 1, 4, 8, 16 }; -const device_type MC68HC11 = device_creator; +DEFINE_DEVICE_TYPE(MC68HC11, mc68hc11_cpu_device, "mc68hc11", "MC68HC11") mc68hc11_cpu_device::mc68hc11_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cpu_device(mconfig, MC68HC11, "MC68HC11", tag, owner, clock, "mc68hc11", __FILE__) + : cpu_device(mconfig, MC68HC11, tag, owner, clock) , m_program_config("program", ENDIANNESS_LITTLE, 8, 16, 0 ) , m_io_config("io", ENDIANNESS_LITTLE, 8, 8, 0) /* defaults it to the HC11M0 version for now (I might strip this down on a later date) */ diff --git a/src/devices/cpu/mc68hc11/mc68hc11.h b/src/devices/cpu/mc68hc11/mc68hc11.h index 1c83b137d06..1156eed45c3 100644 --- a/src/devices/cpu/mc68hc11/mc68hc11.h +++ b/src/devices/cpu/mc68hc11/mc68hc11.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Ville Linde, Angelo Salese, hap -#pragma once +#ifndef MAME_CPU_MC68HC11_MC68HC11_H +#define MAME_CPU_MC68HC11_MC68HC11_H -#ifndef __MC68HC11_H__ -#define __MC68HC11_H__ +#pragma once #define MC68HC11_IO_PORTA 0x00 @@ -29,7 +29,7 @@ #define MC68HC11_TOC1_LINE 1 -extern const device_type MC68HC11; +DECLARE_DEVICE_TYPE(MC68HC11, mc68hc11_cpu_device) #define MCFG_MC68HC11_CONFIG(_has_extended_io, _internal_ram_size, _init_value) \ @@ -439,5 +439,4 @@ private: void check_irq_lines(); }; - -#endif /* __MC68HC11_H__ */ +#endif // MAME_CPU_MC68HC11_MC68HC11_H diff --git a/src/devices/cpu/mcs48/mcs48.cpp b/src/devices/cpu/mcs48/mcs48.cpp index f1427487cd6..0a1bf4432cb 100644 --- a/src/devices/cpu/mcs48/mcs48.cpp +++ b/src/devices/cpu/mcs48/mcs48.cpp @@ -151,25 +151,25 @@ -const device_type I8021 = device_creator; -const device_type I8022 = device_creator; -const device_type I8035 = device_creator; -const device_type I8048 = device_creator; -const device_type I8648 = device_creator; -const device_type I8748 = device_creator; -const device_type I8039 = device_creator; -const device_type I8049 = device_creator; -const device_type I8749 = device_creator; -const device_type I8040 = device_creator; -const device_type I8050 = device_creator; -const device_type I8041 = device_creator; -const device_type I8741 = device_creator; -const device_type I8042 = device_creator; -const device_type I8242 = device_creator; -const device_type I8742 = device_creator; -const device_type MB8884 = device_creator; -const device_type N7751 = device_creator; -const device_type M58715 = device_creator; +DEFINE_DEVICE_TYPE(I8021, i8021_device, "i8021", "I8021") +DEFINE_DEVICE_TYPE(I8022, i8022_device, "i8022", "I8022") +DEFINE_DEVICE_TYPE(I8035, i8035_device, "i8035", "I8035") +DEFINE_DEVICE_TYPE(I8048, i8048_device, "i8048", "I8048") +DEFINE_DEVICE_TYPE(I8648, i8648_device, "i8648", "I8648") +DEFINE_DEVICE_TYPE(I8748, i8748_device, "i8748", "I8748") +DEFINE_DEVICE_TYPE(I8039, i8039_device, "i8039", "I8039") +DEFINE_DEVICE_TYPE(I8049, i8049_device, "i8049", "I8049") +DEFINE_DEVICE_TYPE(I8749, i8749_device, "i8749", "I8749") +DEFINE_DEVICE_TYPE(I8040, i8040_device, "i8040", "I8040") +DEFINE_DEVICE_TYPE(I8050, i8050_device, "i8050", "I8050") +DEFINE_DEVICE_TYPE(I8041, i8041_device, "i8041", "I8041") +DEFINE_DEVICE_TYPE(I8741, i8741_device, "i8741", "I8741") +DEFINE_DEVICE_TYPE(I8042, i8042_device, "i8042", "I8042") +DEFINE_DEVICE_TYPE(I8242, i8242_device, "i8242", "I8242") +DEFINE_DEVICE_TYPE(I8742, i8742_device, "i8742", "I8742") +DEFINE_DEVICE_TYPE(MB8884, mb8884_device, "mb8884", "MB8884") +DEFINE_DEVICE_TYPE(N7751, n7751_device, "n7751", "N7751") +DEFINE_DEVICE_TYPE(M58715, m58715_device, "m58715", "M58715") /*************************************************************************** @@ -202,12 +202,12 @@ static ADDRESS_MAP_START(data_8bit, AS_DATA, 8, mcs48_cpu_device) ADDRESS_MAP_END -mcs48_cpu_device::mcs48_cpu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, int rom_size, int ram_size, uint8_t feature_mask) - : cpu_device(mconfig, type, name, tag, owner, clock, shortname, __FILE__) +mcs48_cpu_device::mcs48_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int rom_size, int ram_size, uint8_t feature_mask) + : cpu_device(mconfig, type, tag, owner, clock) , m_program_config("program", ENDIANNESS_LITTLE, 8, 12, 0 - , ( ( rom_size == 1024 ) ? ADDRESS_MAP_NAME(program_10bit) : ( ( rom_size == 2048 ) ? ADDRESS_MAP_NAME(program_11bit) : ( ( rom_size == 4096 ) ? ADDRESS_MAP_NAME(program_12bit) : nullptr ) ) )) + , (rom_size == 1024) ? ADDRESS_MAP_NAME(program_10bit) : (rom_size == 2048) ? ADDRESS_MAP_NAME(program_11bit) : (rom_size == 4096) ? ADDRESS_MAP_NAME(program_12bit) : nullptr) , m_data_config("data", ENDIANNESS_LITTLE, 8, ( ( ram_size == 64 ) ? 6 : ( ( ram_size == 128 ) ? 7 : 8 ) ), 0 - , ( ( ram_size == 64 ) ? ADDRESS_MAP_NAME(data_6bit) : ( ( ram_size == 128 ) ? ADDRESS_MAP_NAME(data_7bit) : ADDRESS_MAP_NAME(data_8bit) ) )) + , (ram_size == 64) ? ADDRESS_MAP_NAME(data_6bit) : (ram_size == 128) ? ADDRESS_MAP_NAME(data_7bit) : ADDRESS_MAP_NAME(data_8bit)) , m_io_config("io", ENDIANNESS_LITTLE, 8, 8, 0) , m_port_in_cb{{*this}, {*this}} , m_port_out_cb{{*this}, {*this}} @@ -233,102 +233,102 @@ mcs48_cpu_device::mcs48_cpu_device(const machine_config &mconfig, device_type ty } i8021_device::i8021_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mcs48_cpu_device(mconfig, I8021, "I8021", tag, owner, clock, "i8021", 1024, 64) + : mcs48_cpu_device(mconfig, I8021, tag, owner, clock, 1024, 64) { } i8022_device::i8022_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mcs48_cpu_device(mconfig, I8022, "I8022", tag, owner, clock, "i8022", 2048, 128) + : mcs48_cpu_device(mconfig, I8022, tag, owner, clock, 2048, 128) { } i8035_device::i8035_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mcs48_cpu_device(mconfig, I8035, "I8035", tag, owner, clock, "i8035", 0, 64) + : mcs48_cpu_device(mconfig, I8035, tag, owner, clock, 0, 64) { } i8048_device::i8048_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mcs48_cpu_device(mconfig, I8048, "I8048", tag, owner, clock, "i8048", 1024, 64) + : mcs48_cpu_device(mconfig, I8048, tag, owner, clock, 1024, 64) { } i8648_device::i8648_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mcs48_cpu_device(mconfig, I8648, "I8648", tag, owner, clock, "i8648", 1024, 64) + : mcs48_cpu_device(mconfig, I8648, tag, owner, clock, 1024, 64) { } i8748_device::i8748_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mcs48_cpu_device(mconfig, I8748, "I8748", tag, owner, clock, "i8748", 1024, 64) + : mcs48_cpu_device(mconfig, I8748, tag, owner, clock, 1024, 64) { } i8039_device::i8039_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mcs48_cpu_device(mconfig, I8039, "I8039", tag, owner, clock, "i8039", 0, 128) + : mcs48_cpu_device(mconfig, I8039, tag, owner, clock, 0, 128) { } i8049_device::i8049_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mcs48_cpu_device(mconfig, I8049, "I8049", tag, owner, clock, "i8049", 2048, 128) + : mcs48_cpu_device(mconfig, I8049, tag, owner, clock, 2048, 128) { } i8749_device::i8749_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mcs48_cpu_device(mconfig, I8749, "I8749", tag, owner, clock, "i8749", 2048, 128) + : mcs48_cpu_device(mconfig, I8749, tag, owner, clock, 2048, 128) { } i8040_device::i8040_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mcs48_cpu_device(mconfig, I8040, "I8040", tag, owner, clock, "i8040", 0, 256) + : mcs48_cpu_device(mconfig, I8040, tag, owner, clock, 0, 256) { } i8050_device::i8050_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mcs48_cpu_device(mconfig, I8050, "I8050", tag, owner, clock, "i8050", 4096, 256) + : mcs48_cpu_device(mconfig, I8050, tag, owner, clock, 4096, 256) { } mb8884_device::mb8884_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mcs48_cpu_device(mconfig, MB8884, "MB8884", tag, owner, clock, "mb8884", 0, 64) + : mcs48_cpu_device(mconfig, MB8884, tag, owner, clock, 0, 64) { } n7751_device::n7751_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mcs48_cpu_device(mconfig, N7751, "N7751", tag, owner, clock, "n7751", 1024, 64) + : mcs48_cpu_device(mconfig, N7751, tag, owner, clock, 1024, 64) { } m58715_device::m58715_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mcs48_cpu_device(mconfig, M58715, "M58715", tag, owner, clock, "m58715", 2048, 128) + : mcs48_cpu_device(mconfig, M58715, tag, owner, clock, 2048, 128) { } -upi41_cpu_device::upi41_cpu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, int rom_size, int ram_size) - : mcs48_cpu_device(mconfig, type, name, tag, owner, clock, shortname, rom_size, ram_size, UPI41_FEATURE) +upi41_cpu_device::upi41_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int rom_size, int ram_size) + : mcs48_cpu_device(mconfig, type, tag, owner, clock, rom_size, ram_size, UPI41_FEATURE) { } i8041_device::i8041_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : upi41_cpu_device(mconfig, I8041, "I8041", tag, owner, clock, "i8041", 1024, 128) + : upi41_cpu_device(mconfig, I8041, tag, owner, clock, 1024, 128) { } i8741_device::i8741_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : upi41_cpu_device(mconfig, I8741, "I8741", tag, owner, clock, "i8741", 1024, 128) + : upi41_cpu_device(mconfig, I8741, tag, owner, clock, 1024, 128) { } i8042_device::i8042_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : upi41_cpu_device(mconfig, I8042, "I8042", tag, owner, clock, "i8042", 2048, 256) + : upi41_cpu_device(mconfig, I8042, tag, owner, clock, 2048, 256) { } i8242_device::i8242_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : upi41_cpu_device(mconfig, I8242, "I8242", tag, owner, clock, "i8242", 2048, 256) + : upi41_cpu_device(mconfig, I8242, tag, owner, clock, 2048, 256) { } i8742_device::i8742_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : upi41_cpu_device(mconfig, I8742, "I8742", tag, owner, clock, "i8742", 2048, 256) + : upi41_cpu_device(mconfig, I8742, tag, owner, clock, 2048, 256) { } diff --git a/src/devices/cpu/mcs48/mcs48.h b/src/devices/cpu/mcs48/mcs48.h index 8e23671684c..274224099e9 100644 --- a/src/devices/cpu/mcs48/mcs48.h +++ b/src/devices/cpu/mcs48/mcs48.h @@ -11,10 +11,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_CPU_MCS48_MCS48_H +#define MAME_CPU_MCS48_MCS48_H -#ifndef __MCS48_H__ -#define __MCS48_H__ +#pragma once @@ -102,29 +102,29 @@ enum ***************************************************************************/ /* Official Intel MCS-48 parts */ -extern const device_type I8021; /* 1k internal ROM, 64 bytes internal RAM */ -extern const device_type I8022; /* 2k internal ROM, 128 bytes internal RAM */ -extern const device_type I8035; /* external ROM, 64 bytes internal RAM */ -extern const device_type I8048; /* 1k internal ROM, 64 bytes internal RAM */ -extern const device_type I8648; /* 1k internal OTP ROM, 64 bytes internal RAM */ -extern const device_type I8748; /* 1k internal EEPROM, 64 bytes internal RAM */ -extern const device_type I8039; /* external ROM, 128 bytes internal RAM */ -extern const device_type I8049; /* 2k internal ROM, 128 bytes internal RAM */ -extern const device_type I8749; /* 2k internal EEPROM, 128 bytes internal RAM */ -extern const device_type I8040; /* external ROM, 256 bytes internal RAM */ -extern const device_type I8050; /* 4k internal ROM, 256 bytes internal RAM */ +DECLARE_DEVICE_TYPE(I8021, i8021_device) /* 1k internal ROM, 64 bytes internal RAM */ +DECLARE_DEVICE_TYPE(I8022, i8022_device) /* 2k internal ROM, 128 bytes internal RAM */ +DECLARE_DEVICE_TYPE(I8035, i8035_device) /* external ROM, 64 bytes internal RAM */ +DECLARE_DEVICE_TYPE(I8048, i8048_device) /* 1k internal ROM, 64 bytes internal RAM */ +DECLARE_DEVICE_TYPE(I8648, i8648_device) /* 1k internal OTP ROM, 64 bytes internal RAM */ +DECLARE_DEVICE_TYPE(I8748, i8748_device) /* 1k internal EEPROM, 64 bytes internal RAM */ +DECLARE_DEVICE_TYPE(I8039, i8039_device) /* external ROM, 128 bytes internal RAM */ +DECLARE_DEVICE_TYPE(I8049, i8049_device) /* 2k internal ROM, 128 bytes internal RAM */ +DECLARE_DEVICE_TYPE(I8749, i8749_device) /* 2k internal EEPROM, 128 bytes internal RAM */ +DECLARE_DEVICE_TYPE(I8040, i8040_device) /* external ROM, 256 bytes internal RAM */ +DECLARE_DEVICE_TYPE(I8050, i8050_device) /* 4k internal ROM, 256 bytes internal RAM */ /* Official Intel UPI-41 parts */ -extern const device_type I8041; /* 1k internal ROM, 128 bytes internal RAM */ -extern const device_type I8741; /* 1k internal EEPROM, 128 bytes internal RAM */ -extern const device_type I8042; /* 2k internal ROM, 256 bytes internal RAM */ -extern const device_type I8242; /* 2k internal ROM, 256 bytes internal RAM */ -extern const device_type I8742; /* 2k internal EEPROM, 256 bytes internal RAM */ +DECLARE_DEVICE_TYPE(I8041, i8041_device) /* 1k internal ROM, 128 bytes internal RAM */ +DECLARE_DEVICE_TYPE(I8741, i8741_device) /* 1k internal EEPROM, 128 bytes internal RAM */ +DECLARE_DEVICE_TYPE(I8042, i8042_device) /* 2k internal ROM, 256 bytes internal RAM */ +DECLARE_DEVICE_TYPE(I8242, i8242_device) /* 2k internal ROM, 256 bytes internal RAM */ +DECLARE_DEVICE_TYPE(I8742, i8742_device) /* 2k internal EEPROM, 256 bytes internal RAM */ /* Clones */ -extern const device_type MB8884; /* 8035 clone */ -extern const device_type N7751; /* 8048 clone */ -extern const device_type M58715; /* 8049 clone */ +DECLARE_DEVICE_TYPE(MB8884, mb8884_device) /* 8035 clone */ +DECLARE_DEVICE_TYPE(N7751, n7751_device) /* 8048 clone */ +DECLARE_DEVICE_TYPE(M58715, m58715_device) /* 8049 clone */ @@ -140,22 +140,22 @@ public: EXPANDER_OP_AND = 3 }; - // construction/destruction - mcs48_cpu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, int rom_size, int ram_size, uint8_t feature_mask = 0); - // static configuration - template static devcb_base &set_port_in_cb(device_t &device, int n, Object &&obj) { return downcast(device).m_port_in_cb[n].set_callback(std::forward(obj)); } - template static devcb_base &set_port_out_cb(device_t &device, int n, Object &&obj) { return downcast(device).m_port_out_cb[n].set_callback(std::forward(obj)); } - template static devcb_base &set_bus_in_cb(device_t &device, Object &&obj) { return downcast(device).m_bus_in_cb.set_callback(std::forward(obj)); } - template static devcb_base &set_bus_out_cb(device_t &device, Object &&obj) { return downcast(device).m_bus_out_cb.set_callback(std::forward(obj)); } - template static devcb_base &set_test_in_cb(device_t &device, int n, Object &&obj) { return downcast(device).m_test_in_cb[n].set_callback(std::forward(obj)); } + template static devcb_base &set_port_in_cb(device_t &device, int n, Object &&cb) { return downcast(device).m_port_in_cb[n].set_callback(std::forward(cb)); } + template static devcb_base &set_port_out_cb(device_t &device, int n, Object &&cb) { return downcast(device).m_port_out_cb[n].set_callback(std::forward(cb)); } + template static devcb_base &set_bus_in_cb(device_t &device, Object &&cb) { return downcast(device).m_bus_in_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_bus_out_cb(device_t &device, Object &&cb) { return downcast(device).m_bus_out_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_test_in_cb(device_t &device, int n, Object &&cb) { return downcast(device).m_test_in_cb[n].set_callback(std::forward(cb)); } static void set_t0_clk_cb(device_t &device, clock_update_delegate &&func) { downcast(device).m_t0_clk_func = std::move(func); } - template static devcb_base &set_prog_out_cb(device_t &device, Object &&obj) { return downcast(device).m_prog_out_cb.set_callback(std::forward(obj)); } + template static devcb_base &set_prog_out_cb(device_t &device, Object &&cb) { return downcast(device).m_prog_out_cb.set_callback(std::forward(cb)); } DECLARE_READ8_MEMBER(p1_r); DECLARE_READ8_MEMBER(p2_r); protected: + // construction/destruction + mcs48_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int rom_size, int ram_size, uint8_t feature_mask = 0); + // device-level overrides virtual void device_start() override; virtual void device_config_complete() override; @@ -628,14 +628,14 @@ public: class upi41_cpu_device : public mcs48_cpu_device { public: - // construction/destruction - upi41_cpu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, int rom_size, int ram_size); - /* functions for talking to the input/output buffers on the UPI41-class chips */ DECLARE_READ8_MEMBER(upi41_master_r); DECLARE_WRITE8_MEMBER(upi41_master_w); protected: + // construction/destruction + upi41_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int rom_size, int ram_size); + virtual offs_t disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) override; TIMER_CALLBACK_MEMBER( master_callback ); @@ -677,4 +677,4 @@ public: }; -#endif /* __MCS48_H__ */ +#endif // MAME_CPU_MCS48_MCS48_H diff --git a/src/devices/cpu/mcs51/mcs51.cpp b/src/devices/cpu/mcs51/mcs51.cpp index dadbf3113f3..997f475ccbc 100644 --- a/src/devices/cpu/mcs51/mcs51.cpp +++ b/src/devices/cpu/mcs51/mcs51.cpp @@ -221,20 +221,20 @@ enum }; -const device_type I8031 = device_creator; -const device_type I8032 = device_creator; -const device_type I8051 = device_creator; -const device_type I8751 = device_creator; -const device_type I8052 = device_creator; -const device_type I8752 = device_creator; -const device_type I80C31 = device_creator; -const device_type I80C51 = device_creator; -const device_type I87C51 = device_creator; -const device_type I80C32 = device_creator; -const device_type I80C52 = device_creator; -const device_type I87C52 = device_creator; -const device_type AT89C4051 = device_creator; -const device_type DS5002FP = device_creator; +DEFINE_DEVICE_TYPE(I8031, i8031_device, "i8031", "I8031") +DEFINE_DEVICE_TYPE(I8032, i8032_device, "i8032", "I8032") +DEFINE_DEVICE_TYPE(I8051, i8051_device, "i8051", "I8051") +DEFINE_DEVICE_TYPE(I8751, i8751_device, "i8751", "I8751") +DEFINE_DEVICE_TYPE(I8052, i8052_device, "i8052", "I8052") +DEFINE_DEVICE_TYPE(I8752, i8752_device, "i8752", "I8752") +DEFINE_DEVICE_TYPE(I80C31, i80c31_device, "i80c31", "I80C31") +DEFINE_DEVICE_TYPE(I80C51, i80c51_device, "i80c51", "I80C51") +DEFINE_DEVICE_TYPE(I87C51, i87c51_device, "i87c51", "I87C51") +DEFINE_DEVICE_TYPE(I80C32, i80c32_device, "i80c32", "I80C32") +DEFINE_DEVICE_TYPE(I80C52, i80c52_device, "i80c52", "I80C52") +DEFINE_DEVICE_TYPE(I87C52, i87c52_device, "i87c52", "I87C52") +DEFINE_DEVICE_TYPE(AT89C4051, at89c4051_device, "at89c4051", "AT89C4051") +DEFINE_DEVICE_TYPE(DS5002FP, ds5002fp_device, "ds5002fp", "DS5002FP") /*************************************************************************** @@ -260,12 +260,12 @@ static ADDRESS_MAP_START(data_8bit, AS_DATA, 8, mcs51_cpu_device) ADDRESS_MAP_END -mcs51_cpu_device::mcs51_cpu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, int program_width, int data_width, uint8_t features) - : cpu_device(mconfig, type, name, tag, owner, clock, shortname, __FILE__) - , m_program_config("program", ENDIANNESS_LITTLE, 8, 16, 0 - , ( ( program_width == 12 ) ? ADDRESS_MAP_NAME(program_12bit) : ( ( program_width == 13 ) ? ADDRESS_MAP_NAME(program_13bit) : nullptr ) )) - , m_data_config("data", ENDIANNESS_LITTLE, 8, 9, 0 - , ( ( data_width == 7 ) ? ADDRESS_MAP_NAME(data_7bit) : ( ( data_width == 8 ) ? ADDRESS_MAP_NAME(data_8bit) : nullptr ) )) +mcs51_cpu_device::mcs51_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int program_width, int data_width, uint8_t features) + : cpu_device(mconfig, type, tag, owner, clock) + , m_program_config("program", ENDIANNESS_LITTLE, 8, 16, 0, + (program_width == 12) ? ADDRESS_MAP_NAME(program_12bit) : (program_width == 13) ? ADDRESS_MAP_NAME(program_13bit) : nullptr) + , m_data_config("data", ENDIANNESS_LITTLE, 8, 9, 0, + (data_width == 7) ? ADDRESS_MAP_NAME(data_7bit) : (data_width == 8) ? ADDRESS_MAP_NAME(data_8bit) : nullptr ) , m_io_config("io", ENDIANNESS_LITTLE, 8, 18, 0) , m_pc(0) , m_features(features) @@ -287,91 +287,90 @@ mcs51_cpu_device::mcs51_cpu_device(const machine_config &mconfig, device_type ty i8031_device::i8031_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mcs51_cpu_device(mconfig, I8031, "I8031", tag, owner, clock, "i8031", 0, 7) + : mcs51_cpu_device(mconfig, I8031, tag, owner, clock, 0, 7) { } i8051_device::i8051_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mcs51_cpu_device(mconfig, I8051, "I8051", tag, owner, clock, "i8051", 12, 7) + : mcs51_cpu_device(mconfig, I8051, tag, owner, clock, 12, 7) { } i8751_device::i8751_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mcs51_cpu_device(mconfig, I8751, "I8751", tag, owner, clock, "i8751", 12, 7) + : mcs51_cpu_device(mconfig, I8751, tag, owner, clock, 12, 7) { } -i8052_device::i8052_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, int program_width, int data_width, uint8_t features) - : mcs51_cpu_device(mconfig, type, name, tag, owner, clock, shortname, program_width, data_width, features | FEATURE_I8052) +i8052_device::i8052_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int program_width, int data_width, uint8_t features) + : mcs51_cpu_device(mconfig, type, tag, owner, clock, program_width, data_width, features | FEATURE_I8052) { m_num_interrupts = 6; } i8052_device::i8052_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mcs51_cpu_device(mconfig, I8052, "I8052", tag, owner, clock, "i8052", 13, 8, FEATURE_I8052) + : i8052_device(mconfig, I8052, tag, owner, clock, 13, 8) { - m_num_interrupts = 6; } i8032_device::i8032_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : i8052_device(mconfig, I8032, "I8032", tag, owner, clock, "i8032", 0, 8) + : i8052_device(mconfig, I8032, tag, owner, clock, 0, 8) { } i8752_device::i8752_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : i8052_device(mconfig, I8752, "I8752", tag, owner, clock, "i8752", 13, 8) + : i8052_device(mconfig, I8752, tag, owner, clock, 13, 8) { } i80c31_device::i80c31_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : i8052_device(mconfig, I80C31, "I80C31", tag, owner, clock, "i80c31", 0, 7) + : i8052_device(mconfig, I80C31, tag, owner, clock, 0, 7) { } -i80c51_device::i80c51_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, int program_width, int data_width, uint8_t features) - : mcs51_cpu_device(mconfig, type, name, tag, owner, clock, shortname, program_width, data_width, features | FEATURE_CMOS) +i80c51_device::i80c51_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int program_width, int data_width, uint8_t features) + : mcs51_cpu_device(mconfig, type, tag, owner, clock, program_width, data_width, features | FEATURE_CMOS) { } i80c51_device::i80c51_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mcs51_cpu_device(mconfig, I80C51, "I80C51", tag, owner, clock, "i80c51", 12, 7) + : i80c51_device(mconfig, I80C51, tag, owner, clock, 12, 7) { } i87c51_device::i87c51_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : i80c51_device(mconfig, I87C51, "I87C51", tag, owner, clock, "i87c51", 12, 7) + : i80c51_device(mconfig, I87C51, tag, owner, clock, 12, 7) { } -i80c52_device::i80c52_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, int program_width, int data_width, uint8_t features) - : i8052_device(mconfig, type, name, tag, owner, clock, shortname, program_width, data_width, features | FEATURE_I80C52 | FEATURE_CMOS) +i80c52_device::i80c52_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int program_width, int data_width, uint8_t features) + : i8052_device(mconfig, type, tag, owner, clock, program_width, data_width, features | FEATURE_I80C52 | FEATURE_CMOS) { } i80c52_device::i80c52_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : i8052_device(mconfig, I80C52, "I80C52", tag, owner, clock, "i80c52", 13, 8, FEATURE_I80C52 | FEATURE_CMOS) + : i80c52_device(mconfig, I80C52, tag, owner, clock, 13, 8) { } i80c32_device::i80c32_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : i80c52_device(mconfig, I80C32, "I80C32", tag, owner, clock, "i80c32", 0, 8) + : i80c52_device(mconfig, I80C32, tag, owner, clock, 0, 8) { } i87c52_device::i87c52_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : i80c52_device(mconfig, I87C52, "I87C52", tag, owner, clock, "i87c52", 13, 8) + : i80c52_device(mconfig, I87C52, tag, owner, clock, 13, 8) { } at89c4051_device::at89c4051_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : i80c51_device(mconfig, AT89C4051, "AT89C4051", tag, owner, clock, "at89c4051", 12, 7) + : i80c51_device(mconfig, AT89C4051, tag, owner, clock, 12, 7) { } ds5002fp_device::ds5002fp_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mcs51_cpu_device(mconfig, DS5002FP, "DS5002FP", tag, owner, clock, "ds5002fp", 12, 7, FEATURE_DS5002FP | FEATURE_CMOS) + : mcs51_cpu_device(mconfig, DS5002FP, tag, owner, clock, 12, 7, FEATURE_DS5002FP | FEATURE_CMOS) { } diff --git a/src/devices/cpu/mcs51/mcs51.h b/src/devices/cpu/mcs51/mcs51.h index f2ff095a940..e9c9109c860 100644 --- a/src/devices/cpu/mcs51/mcs51.h +++ b/src/devices/cpu/mcs51/mcs51.h @@ -26,10 +26,10 @@ * - full emulation of 8xCx2 processors *****************************************************************************/ -#pragma once +#ifndef MAME_CPU_MCS51_MCS51_H +#define MAME_CPU_MCS51_MCS51_H -#ifndef __MCS51_H__ -#define __MCS51_H__ +#pragma once #define MCFG_MCS51_SERIAL_RX_CB(_devcb) \ @@ -83,15 +83,15 @@ enum class mcs51_cpu_device : public cpu_device { public: - // construction/destruction - mcs51_cpu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, int program_width, int data_width, uint8_t features = 0); - // configuration helpers static void set_port_forced_input(device_t &device, uint8_t port, uint8_t forced_input) { downcast(device).m_forced_inputs[port] = forced_input; } template static devcb_base & set_serial_rx_cb(device_t &device, _Object object) { return downcast(device).m_serial_rx_cb.set_callback(object); } template static devcb_base & set_serial_tx_cb(device_t &device, _Object object) { return downcast(device).m_serial_tx_cb.set_callback(object); } protected: + // construction/destruction + mcs51_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int program_width, int data_width, uint8_t features = 0); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -341,26 +341,26 @@ protected: /* variants with no internal rom and 128 byte internal memory */ -extern const device_type I8031; +DECLARE_DEVICE_TYPE(I8031, i8031_device) /* variants with no internal rom and 256 byte internal memory */ -extern const device_type I8032; +DECLARE_DEVICE_TYPE(I8032, i8032_device) /* variants 4k internal rom and 128 byte internal memory */ -extern const device_type I8051; -extern const device_type I8751; +DECLARE_DEVICE_TYPE(I8051, i8051_device) +DECLARE_DEVICE_TYPE(I8751, i8751_device) /* variants 8k internal rom and 256 byte internal memory and more registers */ -extern const device_type I8052; -extern const device_type I8752; +DECLARE_DEVICE_TYPE(I8052, i8052_device) +DECLARE_DEVICE_TYPE(I8752, i8751_device) /* cmos variants */ -extern const device_type I80C31; -extern const device_type I80C51; -extern const device_type I87C51; -extern const device_type I80C32; -extern const device_type I80C52; -extern const device_type I87C52; +DECLARE_DEVICE_TYPE(I80C31, i80c31_device) +DECLARE_DEVICE_TYPE(I80C51, i80c51_device) +DECLARE_DEVICE_TYPE(I87C51, i87c51_device) +DECLARE_DEVICE_TYPE(I80C32, i80c32_device) +DECLARE_DEVICE_TYPE(I80C52, i80c52_device) +DECLARE_DEVICE_TYPE(I87C52, i87c52_device) /* 4k internal perom and 128 internal ram and 2 analog comparators */ -extern const device_type AT89C4051; +DECLARE_DEVICE_TYPE(AT89C4051, at89c4051_device) -extern const device_type DS5002FP; +DECLARE_DEVICE_TYPE(DS5002FP, ds5002fp_device) class i8031_device : public mcs51_cpu_device @@ -390,9 +390,10 @@ class i8052_device : public mcs51_cpu_device public: // construction/destruction i8052_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - i8052_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, int program_width, int data_width, uint8_t features = 0); protected: + i8052_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int program_width, int data_width, uint8_t features = 0); + virtual offs_t disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) override; /* SFR Callbacks */ @@ -430,9 +431,10 @@ class i80c51_device : public mcs51_cpu_device public: // construction/destruction i80c51_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - i80c51_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, int program_width, int data_width, uint8_t features = 0); protected: + i80c51_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int program_width, int data_width, uint8_t features = 0); + virtual offs_t disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) override; }; @@ -449,9 +451,10 @@ class i80c52_device : public i8052_device public: // construction/destruction i80c52_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - i80c52_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, int program_width, int data_width, uint8_t features = 0); protected: + i80c52_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int program_width, int data_width, uint8_t features = 0); + virtual offs_t disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) override; /* SFR Callbacks */ @@ -520,4 +523,4 @@ protected: }; -#endif /* __MCS51_H__ */ +#endif // MAME_CPU_MCS51_MCS51_H diff --git a/src/devices/cpu/mcs96/i8x9x.cpp b/src/devices/cpu/mcs96/i8x9x.cpp index 151a4809cb8..1118ef80c36 100644 --- a/src/devices/cpu/mcs96/i8x9x.cpp +++ b/src/devices/cpu/mcs96/i8x9x.cpp @@ -11,8 +11,8 @@ #include "emu.h" #include "i8x9x.h" -i8x9x_device::i8x9x_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - mcs96_device(mconfig, type, name, tag, owner, clock, 8, "i8x9x", __FILE__), +i8x9x_device::i8x9x_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + mcs96_device(mconfig, type, tag, owner, clock, 8), io_config("io", ENDIANNESS_LITTLE, 16, 16, -1), io(nullptr), base_timer2(0), ad_done(0), hso_command(0), ad_command(0), hso_time(0), ad_result(0), ios0(0), ios1(0), ioc0(0), ioc1(0), sbuf(0), sp_stat(0), serial_send_buf(0), serial_send_timer(0) { @@ -359,16 +359,16 @@ void i8x9x_device::internal_update(uint64_t current_time) } c8095_device::c8095_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - i8x9x_device(mconfig, C8095, "C8095", tag, owner, clock, "c8095", __FILE__) + i8x9x_device(mconfig, C8095, tag, owner, clock) { } p8098_device::p8098_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - i8x9x_device(mconfig, P8098, "P8098", tag, owner, clock, "p8098", __FILE__) + i8x9x_device(mconfig, P8098, tag, owner, clock) { } -const device_type C8095 = device_creator; -const device_type P8098 = C8095; +DEFINE_DEVICE_TYPE(C8095, c8095_device, "c8095", "C8095") +DEFINE_DEVICE_TYPE(P8098, p8098_device, "p8098", "P8098") #include "cpu/mcs96/i8x9x.hxx" diff --git a/src/devices/cpu/mcs96/i8x9x.h b/src/devices/cpu/mcs96/i8x9x.h index efb8997dabb..1951f672ada 100644 --- a/src/devices/cpu/mcs96/i8x9x.h +++ b/src/devices/cpu/mcs96/i8x9x.h @@ -8,8 +8,8 @@ ***************************************************************************/ -#ifndef __I8X9X_H__ -#define __I8X9X_H__ +#ifndef MAME_CPU_MCS96_I8X9X_H +#define MAME_CPU_MCS96_I8X9X_H #include "mcs96.h" @@ -21,11 +21,11 @@ public: P0, P1, P2 }; - i8x9x_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - void serial_w(uint8_t val); protected: + i8x9x_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; virtual void device_reset() override; virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_0) const override; @@ -92,7 +92,7 @@ public: p8098_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; -extern const device_type C8095; -extern const device_type P8098; +DECLARE_DEVICE_TYPE(C8095, c8095_device) +DECLARE_DEVICE_TYPE(P8098, p8098_device) -#endif +#endif // MAME_CPU_MCS96_I8X9X_H diff --git a/src/devices/cpu/mcs96/i8xc196.cpp b/src/devices/cpu/mcs96/i8xc196.cpp index ce9c9b9d8ac..adffde72dc0 100644 --- a/src/devices/cpu/mcs96/i8xc196.cpp +++ b/src/devices/cpu/mcs96/i8xc196.cpp @@ -11,8 +11,8 @@ #include "emu.h" #include "i8xc196.h" -i8xc196_device::i8xc196_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - mcs96_device(mconfig, type, name, tag, owner, clock, 16, shortname, source) +i8xc196_device::i8xc196_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + mcs96_device(mconfig, type, tag, owner, clock, 16) { } diff --git a/src/devices/cpu/mcs96/i8xc196.h b/src/devices/cpu/mcs96/i8xc196.h index 54e811e35b0..bd5489a1721 100644 --- a/src/devices/cpu/mcs96/i8xc196.h +++ b/src/devices/cpu/mcs96/i8xc196.h @@ -8,14 +8,14 @@ ***************************************************************************/ -#ifndef __I8XC196_H__ -#define __I8XC196_H__ +#ifndef MAME_CPU_MCS96_I8XC196_H +#define MAME_CPU_MCS96_I8XC196_H #include "mcs96.h" class i8xc196_device : public mcs96_device { -public: - i8xc196_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); +protected: + i8xc196_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); static const disasm_entry disasm_entries[0x100]; @@ -43,4 +43,4 @@ public: #undef O }; -#endif +#endif // MAME_CPU_MCS96_I8XC196_H diff --git a/src/devices/cpu/mcs96/mcs96.cpp b/src/devices/cpu/mcs96/mcs96.cpp index be96adecaa7..11d9cf23f30 100644 --- a/src/devices/cpu/mcs96/mcs96.cpp +++ b/src/devices/cpu/mcs96/mcs96.cpp @@ -12,9 +12,10 @@ #include "debugger.h" #include "mcs96.h" -mcs96_device::mcs96_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, int data_width, const char *shortname, const char *source) : - cpu_device(mconfig, type, name, tag, owner, clock, shortname, source), - program_config("program", ENDIANNESS_LITTLE, data_width, 16), program(nullptr), direct(nullptr), icount(0), bcount(0), inst_state(0), cycles_scaling(0), pending_irq(0), +mcs96_device::mcs96_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int data_width) : + cpu_device(mconfig, type, tag, owner, clock), + program_config("program", ENDIANNESS_LITTLE, data_width, 16), + program(nullptr), direct(nullptr), icount(0), bcount(0), inst_state(0), cycles_scaling(0), pending_irq(0), PC(0), PPC(0), PSW(0), OP1(0), OP2(0), OP3(0), OPI(0), TMP(0), irq_requested(false) { } diff --git a/src/devices/cpu/mcs96/mcs96.h b/src/devices/cpu/mcs96/mcs96.h index f4cda34c224..57c4e2cedd4 100644 --- a/src/devices/cpu/mcs96/mcs96.h +++ b/src/devices/cpu/mcs96/mcs96.h @@ -8,8 +8,10 @@ ***************************************************************************/ -#ifndef __MCS96_H__ -#define __MCS96_H__ +#ifndef MAME_CPU_MCS96_MCS96_H +#define MAME_CPU_MCS96_MCS96_H + +#pragma once class mcs96_device : public cpu_device { public: @@ -17,7 +19,11 @@ public: EXINT_LINE = 1 }; - mcs96_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, int data_width, const char *shortname, const char *source); + enum { + MCS96_PC = 1, + MCS96_PSW, + MCS96_R // 0x74 entries + }; protected: enum { @@ -68,6 +74,8 @@ protected: DASM_indexed_3 /* Indexed, short or long, 3 operators */ }; + mcs96_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int data_width); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -247,10 +255,4 @@ protected: #undef O }; -enum { - MCS96_PC = 1, - MCS96_PSW, - MCS96_R // 0x74 entries -}; - -#endif +#endif // MAME_CPU_MCS96_MCS96_H diff --git a/src/devices/cpu/melps4/m58846.cpp b/src/devices/cpu/melps4/m58846.cpp index b4089356f28..6f4924da86e 100644 --- a/src/devices/cpu/melps4/m58846.cpp +++ b/src/devices/cpu/melps4/m58846.cpp @@ -10,7 +10,7 @@ #include "m58846.h" -const device_type M58846 = device_creator; +DEFINE_DEVICE_TYPE(M58846, m58846_device, "m58846", "M58846") // internal memory maps @@ -26,7 +26,7 @@ ADDRESS_MAP_END // device definitions m58846_device::m58846_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : melps4_cpu_device(mconfig, M58846, "M58846", tag, owner, clock, 11, ADDRESS_MAP_NAME(program_2kx9), 7, ADDRESS_MAP_NAME(data_128x4), 12 /* number of D pins */, 2 /* subroutine page */, 1 /* interrupt page */, "m58846", __FILE__), m_timer(nullptr) + : melps4_cpu_device(mconfig, M58846, tag, owner, clock, 11, ADDRESS_MAP_NAME(program_2kx9), 7, ADDRESS_MAP_NAME(data_128x4), 12 /* number of D pins */, 2 /* subroutine page */, 1 /* interrupt page */), m_timer(nullptr) { } diff --git a/src/devices/cpu/melps4/m58846.h b/src/devices/cpu/melps4/m58846.h index d270074ff74..4a3bf8674bf 100644 --- a/src/devices/cpu/melps4/m58846.h +++ b/src/devices/cpu/melps4/m58846.h @@ -6,8 +6,10 @@ */ -#ifndef _M58846_H_ -#define _M58846_H_ +#ifndef MAME_CPU_MELPS4_M58846_H +#define MAME_CPU_MELPS4_M58846_H + +#pragma once #include "melps4.h" @@ -39,8 +41,6 @@ protected: }; +DECLARE_DEVICE_TYPE(M58846, m58846_device) -extern const device_type M58846; - - -#endif /* _M58846_H_ */ +#endif // MAME_CPU_MELPS4_M58846_H diff --git a/src/devices/cpu/melps4/melps4.cpp b/src/devices/cpu/melps4/melps4.cpp index 896966c5882..4205851634b 100644 --- a/src/devices/cpu/melps4/melps4.cpp +++ b/src/devices/cpu/melps4/melps4.cpp @@ -42,6 +42,31 @@ #include "debugger.h" +melps4_cpu_device::melps4_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int prgwidth, address_map_constructor program, int datawidth, address_map_constructor data, int d_pins, uint8_t sm_page, uint8_t int_page) + : cpu_device(mconfig, type, tag, owner, clock) + , m_program_config("program", ENDIANNESS_LITTLE, 16, prgwidth, -1, program) + , m_data_config("data", ENDIANNESS_LITTLE, 8, datawidth, 0, data) + , m_prgwidth(prgwidth) + , m_datawidth(datawidth) + , m_d_pins(d_pins) + , m_sm_page(sm_page) + , m_int_page(int_page) + , m_xami_mask(0xf) + , m_sp_mask(0x7<<4) + , m_ba_op(0x01) + , m_stack_levels(3) + , m_read_k(*this) + , m_read_d(*this) + , m_read_s(*this) + , m_read_f(*this) + , m_write_d(*this) + , m_write_s(*this) + , m_write_f(*this) + , m_write_g(*this) + , m_write_u(*this) + , m_write_t(*this) +{ } + // disasm void melps4_cpu_device::state_string_export(const device_state_entry &entry, std::string &str) const { diff --git a/src/devices/cpu/melps4/melps4.h b/src/devices/cpu/melps4/melps4.h index ba641efcd7f..627bca9042d 100644 --- a/src/devices/cpu/melps4/melps4.h +++ b/src/devices/cpu/melps4/melps4.h @@ -6,9 +6,10 @@ */ -#ifndef _MELPS4_H_ -#define _MELPS4_H_ +#ifndef MAME_CPU_MELPS4_MELPS4_H +#define MAME_CPU_MELPS4_MELPS4_H +#pragma once // I/O ports setup @@ -99,46 +100,23 @@ enum class melps4_cpu_device : public cpu_device { public: - // construction/destruction - melps4_cpu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, int prgwidth, address_map_constructor program, int datawidth, address_map_constructor data, int d_pins, uint8_t sm_page, uint8_t int_page, const char *shortname, const char *source) - : cpu_device(mconfig, type, name, tag, owner, clock, shortname, source) - , m_program_config("program", ENDIANNESS_LITTLE, 16, prgwidth, -1, program) - , m_data_config("data", ENDIANNESS_LITTLE, 8, datawidth, 0, data) - , m_prgwidth(prgwidth) - , m_datawidth(datawidth) - , m_d_pins(d_pins) - , m_sm_page(sm_page) - , m_int_page(int_page) - , m_xami_mask(0xf) - , m_sp_mask(0x7<<4) - , m_ba_op(0x01) - , m_stack_levels(3) - , m_read_k(*this) - , m_read_d(*this) - , m_read_s(*this) - , m_read_f(*this) - , m_write_d(*this) - , m_write_s(*this) - , m_write_f(*this) - , m_write_g(*this) - , m_write_u(*this) - , m_write_t(*this) - { } - // static configuration helpers - template static devcb_base &set_read_k_callback(device_t &device, _Object object) { return downcast(device).m_read_k.set_callback(object); } - template static devcb_base &set_read_d_callback(device_t &device, _Object object) { return downcast(device).m_read_d.set_callback(object); } - template static devcb_base &set_read_s_callback(device_t &device, _Object object) { return downcast(device).m_read_s.set_callback(object); } - template static devcb_base &set_read_f_callback(device_t &device, _Object object) { return downcast(device).m_read_f.set_callback(object); } - - template static devcb_base &set_write_d_callback(device_t &device, _Object object) { return downcast(device).m_write_d.set_callback(object); } - template static devcb_base &set_write_s_callback(device_t &device, _Object object) { return downcast(device).m_write_s.set_callback(object); } - template static devcb_base &set_write_f_callback(device_t &device, _Object object) { return downcast(device).m_write_f.set_callback(object); } - template static devcb_base &set_write_g_callback(device_t &device, _Object object) { return downcast(device).m_write_g.set_callback(object); } - template static devcb_base &set_write_u_callback(device_t &device, _Object object) { return downcast(device).m_write_u.set_callback(object); } - template static devcb_base &set_write_t_callback(device_t &device, _Object object) { return downcast(device).m_write_t.set_callback(object); } + template static devcb_base &set_read_k_callback(device_t &device, Object &&cb) { return downcast(device).m_read_k.set_callback(std::forward(cb)); } + template static devcb_base &set_read_d_callback(device_t &device, Object &&cb) { return downcast(device).m_read_d.set_callback(std::forward(cb)); } + template static devcb_base &set_read_s_callback(device_t &device, Object &&cb) { return downcast(device).m_read_s.set_callback(std::forward(cb)); } + template static devcb_base &set_read_f_callback(device_t &device, Object &&cb) { return downcast(device).m_read_f.set_callback(std::forward(cb)); } + + template static devcb_base &set_write_d_callback(device_t &device, Object &&cb) { return downcast(device).m_write_d.set_callback(std::forward(cb)); } + template static devcb_base &set_write_s_callback(device_t &device, Object &&cb) { return downcast(device).m_write_s.set_callback(std::forward(cb)); } + template static devcb_base &set_write_f_callback(device_t &device, Object &&cb) { return downcast(device).m_write_f.set_callback(std::forward(cb)); } + template static devcb_base &set_write_g_callback(device_t &device, Object &&cb) { return downcast(device).m_write_g.set_callback(std::forward(cb)); } + template static devcb_base &set_write_u_callback(device_t &device, Object &&cb) { return downcast(device).m_write_u.set_callback(std::forward(cb)); } + template static devcb_base &set_write_t_callback(device_t &device, Object &&cb) { return downcast(device).m_write_t.set_callback(std::forward(cb)); } protected: + // construction/destruction + melps4_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int prgwidth, address_map_constructor program, int datawidth, address_map_constructor data, int d_pins, uint8_t sm_page, uint8_t int_page); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -361,5 +339,4 @@ protected: }; - -#endif /* _MELPS4_H_ */ +#endif // MAME_CPU_MELPS4_MELPS4_H diff --git a/src/devices/cpu/minx/minx.cpp b/src/devices/cpu/minx/minx.cpp index 599c53bcb35..2b91305d28d 100644 --- a/src/devices/cpu/minx/minx.cpp +++ b/src/devices/cpu/minx/minx.cpp @@ -45,8 +45,8 @@ TODO: */ #include "emu.h" -#include "debugger.h" #include "minx.h" +#include "debugger.h" #define FLAG_I 0x80 #define FLAG_D 0x40 @@ -72,11 +72,11 @@ TODO: #define GET_MINX_PC ( ( m_PC & 0x8000 ) ? ( m_V << 15 ) | (m_PC & 0x7FFF ) : m_PC ) -const device_type MINX = device_creator; +DEFINE_DEVICE_TYPE(MINX, minx_cpu_device, "minx", "Nintendo Minx") minx_cpu_device::minx_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cpu_device(mconfig, MINX, "Nintendo Minx", tag, owner, clock, "minx", __FILE__) + : cpu_device(mconfig, MINX, tag, owner, clock) , m_program_config("program", ENDIANNESS_BIG, 8, 24, 0) { } diff --git a/src/devices/cpu/minx/minx.h b/src/devices/cpu/minx/minx.h index 8ab7ce18a06..a9640ecd132 100644 --- a/src/devices/cpu/minx/minx.h +++ b/src/devices/cpu/minx/minx.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Wilbert Pol -#pragma once +#ifndef MAME_CPU_MINX_MINX_H +#define MAME_CPU_MINX_MINX_H -#ifndef __MINX_H__ -#define __MINX_H__ +#pragma once enum @@ -115,7 +115,6 @@ private: }; -extern const device_type MINX; - +DECLARE_DEVICE_TYPE(MINX, minx_cpu_device) -#endif /* __MINX_H__ */ +#endif // MAME_CPU_MINX_MINX_H diff --git a/src/devices/cpu/mips/mips3.cpp b/src/devices/cpu/mips/mips3.cpp index 595ad22f970..544bcb5c86c 100644 --- a/src/devices/cpu/mips/mips3.cpp +++ b/src/devices/cpu/mips/mips3.cpp @@ -98,31 +98,31 @@ static const uint8_t fpmode_source[4] = #define ROPCODE(pc) direct->read_dword(pc) -const device_type VR4300BE = device_creator; -const device_type VR4300LE = device_creator; -const device_type VR4310BE = device_creator; -const device_type VR4310LE = device_creator; -const device_type R4600BE = device_creator; -const device_type R4600LE = device_creator; -const device_type R4650BE = device_creator; -const device_type R4650LE = device_creator; -const device_type R4700BE = device_creator; -const device_type R4700LE = device_creator; -const device_type TX4925BE = device_creator; -const device_type TX4925LE = device_creator; -const device_type R5000BE = device_creator; -const device_type R5000LE = device_creator; -const device_type VR5500BE = device_creator; -const device_type VR5500LE = device_creator; -const device_type QED5271BE = device_creator; -const device_type QED5271LE = device_creator; -const device_type RM7000BE = device_creator; -const device_type RM7000LE = device_creator; +DEFINE_DEVICE_TYPE(VR4300BE, vr4300be_device, "vr4300be", "VR4300 (big)") +DEFINE_DEVICE_TYPE(VR4300LE, vr4300le_device, "vr4300le", "VR4300 (little)") +DEFINE_DEVICE_TYPE(VR4310BE, vr4310be_device, "vr4310be", "VR4310 (big)") +DEFINE_DEVICE_TYPE(VR4310LE, vr4310le_device, "vr4310le", "VR4310 (little)") +DEFINE_DEVICE_TYPE(R4600BE, r4600be_device, "r4600be", "R4600 (big)") +DEFINE_DEVICE_TYPE(R4600LE, r4600le_device, "r4600le", "R4600 (little)") +DEFINE_DEVICE_TYPE(R4650BE, r4650be_device, "r4650be", "IDT R4650 (big)") +DEFINE_DEVICE_TYPE(R4650LE, r4650le_device, "r4650le", "IDT R4650 (little)") +DEFINE_DEVICE_TYPE(R4700BE, r4700be_device, "r4700be", "R4700 (big)") +DEFINE_DEVICE_TYPE(R4700LE, r4700le_device, "r4700le", "R4700 (little)") +DEFINE_DEVICE_TYPE(TX4925BE, tx4925be_device, "tx4925be", "TX4925 (big)") +DEFINE_DEVICE_TYPE(TX4925LE, tx4925le_device, "tx4925le", "TX4925 (little)") +DEFINE_DEVICE_TYPE(R5000BE, r5000be_device, "r5000be", "R5000 (big)") +DEFINE_DEVICE_TYPE(R5000LE, r5000le_device, "r5000le", "R5000 (little)") +DEFINE_DEVICE_TYPE(VR5500BE, vr5500be_device, "vr5500be", "VR5500 (big)") +DEFINE_DEVICE_TYPE(VR5500LE, vr5500le_device, "vr5500le", "VR5500 (little)") +DEFINE_DEVICE_TYPE(QED5271BE, qed5271be_device, "qed5271be", "QED5271 (big)") +DEFINE_DEVICE_TYPE(QED5271LE, qed5271le_device, "qed5271le", "QED5271 (little)") +DEFINE_DEVICE_TYPE(RM7000BE, rm7000be_device, "rm7000be", "RM7000 (big)") +DEFINE_DEVICE_TYPE(RM7000LE, rm7000le_device, "rm7000le", "RM7000 (little)") // VR4300 and VR5432 have 4 fewer PFN bits, and only 32 TLB entries -mips3_device::mips3_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, mips3_flavor flavor, endianness_t endianness) - : cpu_device(mconfig, type, name, tag, owner, clock, shortname, __FILE__) +mips3_device::mips3_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, mips3_flavor flavor, endianness_t endianness) + : cpu_device(mconfig, type, tag, owner, clock) , device_vtlb_interface(mconfig, *this, AS_PROGRAM) , m_program_config("program", endianness, 32, 32, 0, 32, MIPS3_MIN_PAGE_SHIFT) , m_flavor(flavor) diff --git a/src/devices/cpu/mips/mips3.h b/src/devices/cpu/mips/mips3.h index f3e2ef52c74..cf1057a0513 100644 --- a/src/devices/cpu/mips/mips3.h +++ b/src/devices/cpu/mips/mips3.h @@ -9,10 +9,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_CPU_MIPS_MIPS3_H +#define MAME_CPU_MIPS_MIPS3_H -#ifndef __MIPS3_H__ -#define __MIPS3_H__ +#pragma once #include "divtlb.h" @@ -22,27 +22,27 @@ // NEC VR4300 series is MIPS III with 32-bit address bus and slightly custom COP0/TLB -extern const device_type VR4300BE; -extern const device_type VR4300LE; +DECLARE_DEVICE_TYPE(VR4300BE, r4300be_device) +DECLARE_DEVICE_TYPE(VR4300LE, r4300le_device) // VR4310 = VR4300 with different speed bin -extern const device_type VR4310BE; -extern const device_type VR4310LE; -extern const device_type R4600BE; -extern const device_type R4600LE; -extern const device_type R4650BE; -extern const device_type R4650LE; -extern const device_type R4700BE; -extern const device_type R4700LE; -extern const device_type TX4925BE; -extern const device_type TX4925LE; -extern const device_type R5000BE; -extern const device_type R5000LE; -extern const device_type VR5500BE; -extern const device_type VR5500LE; -extern const device_type QED5271BE; -extern const device_type QED5271LE; -extern const device_type RM7000BE; -extern const device_type RM7000LE; +DECLARE_DEVICE_TYPE(VR4310BE, r4310be_device) +DECLARE_DEVICE_TYPE(VR4310LE, r4310le_device) +DECLARE_DEVICE_TYPE(R4600BE, r4600be_device) +DECLARE_DEVICE_TYPE(R4600LE, r4600le_device) +DECLARE_DEVICE_TYPE(R4650BE, r4650be_device) +DECLARE_DEVICE_TYPE(R4650LE, r4650le_device) +DECLARE_DEVICE_TYPE(R4700BE, r4700be_device) +DECLARE_DEVICE_TYPE(R4700LE, r4700le_device) +DECLARE_DEVICE_TYPE(TX4925BE, tx4925be_device) +DECLARE_DEVICE_TYPE(TX4925LE, tx4925le_device) +DECLARE_DEVICE_TYPE(R5000BE, r5000be_device) +DECLARE_DEVICE_TYPE(R5000LE, r5000le_device) +DECLARE_DEVICE_TYPE(VR5500BE, vr5500be_device) +DECLARE_DEVICE_TYPE(VR5500LE, vr5500le_device) +DECLARE_DEVICE_TYPE(QED5271BE, qed5271be_device) +DECLARE_DEVICE_TYPE(QED5271LE, qed5271le_device) +DECLARE_DEVICE_TYPE(RM7000BE, rm7000be_device) +DECLARE_DEVICE_TYPE(RM7000LE, rm7000le_device) /*************************************************************************** @@ -275,7 +275,7 @@ protected: public: // construction/destruction - mips3_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, mips3_flavor flavor, endianness_t endiannes); + mips3_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, mips3_flavor flavor, endianness_t endiannes); static void set_icache_size(device_t &device, size_t icache_size) { downcast(device).c_icache_size = icache_size; } static void set_dcache_size(device_t &device, size_t dcache_size) { downcast(device).c_dcache_size = dcache_size; } @@ -583,7 +583,7 @@ class vr4300be_device : public mips3_device public: // construction/destruction vr4300be_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mips3_device(mconfig, VR4300BE, "VR4300 (big)", tag, owner, clock, "vr4300be", MIPS3_TYPE_VR4300, ENDIANNESS_BIG) + : mips3_device(mconfig, VR4300BE, tag, owner, clock, MIPS3_TYPE_VR4300, ENDIANNESS_BIG) { } }; @@ -592,7 +592,7 @@ class vr4300le_device : public mips3_device public: // construction/destruction vr4300le_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mips3_device(mconfig, VR4300LE, "VR4300 (little)", tag, owner, clock, "vr4300le", MIPS3_TYPE_VR4300, ENDIANNESS_LITTLE) + : mips3_device(mconfig, VR4300LE, tag, owner, clock, MIPS3_TYPE_VR4300, ENDIANNESS_LITTLE) { } }; @@ -601,7 +601,7 @@ class vr4310be_device : public mips3_device public: // construction/destruction vr4310be_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mips3_device(mconfig, VR4310BE, "VR4310 (big)", tag, owner, clock, "vr4310be", MIPS3_TYPE_VR4300, ENDIANNESS_BIG) + : mips3_device(mconfig, VR4310BE, tag, owner, clock, MIPS3_TYPE_VR4300, ENDIANNESS_BIG) { } }; @@ -610,7 +610,7 @@ class vr4310le_device : public mips3_device public: // construction/destruction vr4310le_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mips3_device(mconfig, VR4310LE, "VR4310 (little)", tag, owner, clock, "vr4310le", MIPS3_TYPE_VR4300, ENDIANNESS_LITTLE) + : mips3_device(mconfig, VR4310LE, tag, owner, clock, MIPS3_TYPE_VR4300, ENDIANNESS_LITTLE) { } }; @@ -619,7 +619,7 @@ class r4600be_device : public mips3_device public: // construction/destruction r4600be_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mips3_device(mconfig, R4600BE, "R4600 (big)", tag, owner, clock, "r4600be", MIPS3_TYPE_R4600, ENDIANNESS_BIG) + : mips3_device(mconfig, R4600BE, tag, owner, clock, MIPS3_TYPE_R4600, ENDIANNESS_BIG) { } }; @@ -628,7 +628,7 @@ class r4600le_device : public mips3_device public: // construction/destruction r4600le_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mips3_device(mconfig, R4600LE, "R4600 (little)", tag, owner, clock, "r4600le", MIPS3_TYPE_R4600, ENDIANNESS_LITTLE) + : mips3_device(mconfig, R4600LE, tag, owner, clock, MIPS3_TYPE_R4600, ENDIANNESS_LITTLE) { } }; @@ -637,7 +637,7 @@ class r4650be_device : public mips3_device public: // construction/destruction r4650be_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mips3_device(mconfig, R4650BE, "IDT R4650 (big)", tag, owner, clock, "r4650be", MIPS3_TYPE_R4650, ENDIANNESS_BIG) + : mips3_device(mconfig, R4650BE, tag, owner, clock, MIPS3_TYPE_R4650, ENDIANNESS_BIG) { } }; @@ -646,7 +646,7 @@ class r4650le_device : public mips3_device public: // construction/destruction r4650le_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mips3_device(mconfig, R4650LE, "IDT R4650 (little)", tag, owner, clock, "r4650le", MIPS3_TYPE_R4650, ENDIANNESS_LITTLE) + : mips3_device(mconfig, R4650LE, tag, owner, clock, MIPS3_TYPE_R4650, ENDIANNESS_LITTLE) { } }; @@ -655,7 +655,7 @@ class r4700be_device : public mips3_device public: // construction/destruction r4700be_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mips3_device(mconfig, R4700BE, "R4700 (big)", tag, owner, clock, "r4700be", MIPS3_TYPE_R4700, ENDIANNESS_BIG) + : mips3_device(mconfig, R4700BE, tag, owner, clock, MIPS3_TYPE_R4700, ENDIANNESS_BIG) { } }; @@ -664,7 +664,7 @@ class r4700le_device : public mips3_device public: // construction/destruction r4700le_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mips3_device(mconfig, R4700LE, "R4700 (little)", tag, owner, clock, "r4700le", MIPS3_TYPE_R4700, ENDIANNESS_LITTLE) + : mips3_device(mconfig, R4700LE, tag, owner, clock, MIPS3_TYPE_R4700, ENDIANNESS_LITTLE) { } }; @@ -673,7 +673,7 @@ class tx4925be_device : public mips3_device public: // construction/destruction tx4925be_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mips3_device(mconfig, TX4925BE, "TX4925 (big)", tag, owner, clock, "tx4925be", MIPS3_TYPE_TX4925, ENDIANNESS_BIG) + : mips3_device(mconfig, TX4925BE, tag, owner, clock, MIPS3_TYPE_TX4925, ENDIANNESS_BIG) { } }; @@ -682,7 +682,7 @@ class tx4925le_device : public mips3_device public: // construction/destruction tx4925le_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mips3_device(mconfig, TX4925LE, "TX4925 (little)", tag, owner, clock, "tx4925le", MIPS3_TYPE_TX4925, ENDIANNESS_LITTLE) + : mips3_device(mconfig, TX4925LE, tag, owner, clock, MIPS3_TYPE_TX4925, ENDIANNESS_LITTLE) { } }; @@ -691,7 +691,7 @@ class r5000be_device : public mips3_device public: // construction/destruction r5000be_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mips3_device(mconfig, R5000BE, "R5000 (big)", tag, owner, clock, "r5000be", MIPS3_TYPE_R5000, ENDIANNESS_BIG) + : mips3_device(mconfig, R5000BE, tag, owner, clock, MIPS3_TYPE_R5000, ENDIANNESS_BIG) { } }; @@ -700,7 +700,7 @@ class r5000le_device : public mips3_device public: // construction/destruction r5000le_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mips3_device(mconfig, R5000LE, "R5000 (little)", tag, owner, clock, "r5000le", MIPS3_TYPE_R5000, ENDIANNESS_LITTLE) + : mips3_device(mconfig, R5000LE, tag, owner, clock, MIPS3_TYPE_R5000, ENDIANNESS_LITTLE) { } }; @@ -709,7 +709,7 @@ class vr5500be_device : public mips3_device public: // construction/destruction vr5500be_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mips3_device(mconfig, VR5500BE, "VR5500 (big)", tag, owner, clock, "vr5500be", MIPS3_TYPE_R5000, ENDIANNESS_BIG) + : mips3_device(mconfig, VR5500BE, tag, owner, clock, MIPS3_TYPE_R5000, ENDIANNESS_BIG) { } }; @@ -718,7 +718,7 @@ class vr5500le_device : public mips3_device public: // construction/destruction vr5500le_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mips3_device(mconfig, VR5500LE, "VR5500 (little)", tag, owner, clock, "r5500le", MIPS3_TYPE_R5000, ENDIANNESS_LITTLE) + : mips3_device(mconfig, VR5500LE, tag, owner, clock, MIPS3_TYPE_R5000, ENDIANNESS_LITTLE) { } }; @@ -727,7 +727,7 @@ class qed5271be_device : public mips3_device public: // construction/destruction qed5271be_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mips3_device(mconfig, QED5271BE, "QED5271 (big)", tag, owner, clock, "qed5271be", MIPS3_TYPE_QED5271, ENDIANNESS_BIG) + : mips3_device(mconfig, QED5271BE, tag, owner, clock, MIPS3_TYPE_QED5271, ENDIANNESS_BIG) { } }; @@ -736,7 +736,7 @@ class qed5271le_device : public mips3_device public: // construction/destruction qed5271le_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mips3_device(mconfig, QED5271LE, "QED5271 (little)", tag, owner, clock, "qed5271le", MIPS3_TYPE_QED5271, ENDIANNESS_LITTLE) + : mips3_device(mconfig, QED5271LE, tag, owner, clock, MIPS3_TYPE_QED5271, ENDIANNESS_LITTLE) { } }; @@ -745,7 +745,7 @@ class rm7000be_device : public mips3_device public: // construction/destruction rm7000be_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mips3_device(mconfig, RM7000BE, "RM7000 (big)", tag, owner, clock, "rm7000be", MIPS3_TYPE_RM7000, ENDIANNESS_BIG) + : mips3_device(mconfig, RM7000BE, tag, owner, clock, MIPS3_TYPE_RM7000, ENDIANNESS_BIG) { } }; @@ -754,7 +754,7 @@ class rm7000le_device : public mips3_device public: // construction/destruction rm7000le_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mips3_device(mconfig, RM7000LE, "RM7000 (little)", tag, owner, clock, "rm7000le", MIPS3_TYPE_RM7000, ENDIANNESS_LITTLE) + : mips3_device(mconfig, RM7000LE, tag, owner, clock, MIPS3_TYPE_RM7000, ENDIANNESS_LITTLE) { } }; @@ -809,4 +809,4 @@ private: unsigned dasmmips3(std::ostream &stream, unsigned pc, uint32_t op); -#endif /* __MIPS3_H__ */ +#endif // MAME_CPU_MIPS_MIPS3_H diff --git a/src/devices/cpu/mips/r3000.cpp b/src/devices/cpu/mips/r3000.cpp index a1dbba4e008..b8fbfa26b91 100644 --- a/src/devices/cpu/mips/r3000.cpp +++ b/src/devices/cpu/mips/r3000.cpp @@ -9,8 +9,8 @@ ***************************************************************************/ #include "emu.h" -#include "debugger.h" #include "r3000.h" +#include "debugger.h" #define ENABLE_OVERFLOWS 0 @@ -113,19 +113,19 @@ // DEVICE INTERFACE //************************************************************************** -const device_type R3041 = device_creator; -const device_type R3051 = device_creator; -const device_type R3052 = device_creator; -const device_type R3071 = device_creator; -const device_type R3081 = device_creator; +DEFINE_DEVICE_TYPE(R3041, r3041_device, "r3041", "R3041") +DEFINE_DEVICE_TYPE(R3051, r3051_device, "r3051", "R3051") +DEFINE_DEVICE_TYPE(R3052, r3052_device, "r3052", "R3052") +DEFINE_DEVICE_TYPE(R3071, r3071_device, "r3071", "R3071") +DEFINE_DEVICE_TYPE(R3081, r3081_device, "r3081", "R3081") //------------------------------------------------- // r3000_device - constructor //------------------------------------------------- -r3000_device::r3000_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, chip_type chiptype, const char *shortname, const char *source) - : cpu_device(mconfig, type, name, tag, owner, clock, shortname, source), +r3000_device::r3000_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, chip_type chiptype) + : cpu_device(mconfig, type, tag, owner, clock), m_program_config_be("program", ENDIANNESS_BIG, 32, 29), m_program_config_le("program", ENDIANNESS_LITTLE, 32, 29), m_program(nullptr), @@ -170,7 +170,7 @@ r3000_device::~r3000_device() //------------------------------------------------- r3041_device::r3041_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : r3000_device(mconfig, R3041, "R3041", tag, owner, clock, CHIP_TYPE_R3041, "r3041", __FILE__) { } + : r3000_device(mconfig, R3041, tag, owner, clock, CHIP_TYPE_R3041) { } //------------------------------------------------- @@ -178,7 +178,7 @@ r3041_device::r3041_device(const machine_config &mconfig, const char *tag, devic //------------------------------------------------- r3051_device::r3051_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : r3000_device(mconfig, R3051, "R3051", tag, owner, clock, CHIP_TYPE_R3051, "r3051", __FILE__) { } + : r3000_device(mconfig, R3051, tag, owner, clock, CHIP_TYPE_R3051) { } //------------------------------------------------- @@ -186,7 +186,7 @@ r3051_device::r3051_device(const machine_config &mconfig, const char *tag, devic //------------------------------------------------- r3052_device::r3052_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : r3000_device(mconfig, R3052, "R3052", tag, owner, clock, CHIP_TYPE_R3052, "r3052", __FILE__) { } + : r3000_device(mconfig, R3052, tag, owner, clock, CHIP_TYPE_R3052) { } //------------------------------------------------- @@ -194,7 +194,7 @@ r3052_device::r3052_device(const machine_config &mconfig, const char *tag, devic //------------------------------------------------- r3071_device::r3071_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : r3000_device(mconfig, R3071, "R3071", tag, owner, clock, CHIP_TYPE_R3071, "r3071", __FILE__) { } + : r3000_device(mconfig, R3071, tag, owner, clock, CHIP_TYPE_R3071) { } //------------------------------------------------- @@ -202,7 +202,7 @@ r3071_device::r3071_device(const machine_config &mconfig, const char *tag, devic //------------------------------------------------- r3081_device::r3081_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : r3000_device(mconfig, R3081, "R3081", tag, owner, clock, CHIP_TYPE_R3081, "r3081", __FILE__) { } + : r3000_device(mconfig, R3081, tag, owner, clock, CHIP_TYPE_R3081) { } //------------------------------------------------- diff --git a/src/devices/cpu/mips/r3000.h b/src/devices/cpu/mips/r3000.h index e424877d9ae..8274202c0e9 100644 --- a/src/devices/cpu/mips/r3000.h +++ b/src/devices/cpu/mips/r3000.h @@ -8,8 +8,10 @@ ***************************************************************************/ -#ifndef __R3000_H__ -#define __R3000_H__ +#ifndef MAME_CPU_MIPS_R3000_H +#define MAME_CPU_MIPS_R3000_H + +#pragma once /*************************************************************************** @@ -66,48 +68,48 @@ enum class r3000_device : public cpu_device { -protected: - enum chip_type - { - CHIP_TYPE_R3041, - CHIP_TYPE_R3051, - CHIP_TYPE_R3052, - CHIP_TYPE_R3071, - CHIP_TYPE_R3081 - }; - +public: // construction/destruction - r3000_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, chip_type chiptype, const char *shortname, const char *source); virtual ~r3000_device(); -public: // inline configuration helpers static void static_set_endianness(device_t &device, endianness_t endianness) { downcast(device).m_endianness = endianness; } - template static devcb_base &static_set_brcond0_input(device_t &device, _Object object) + template static devcb_base &static_set_brcond0_input(device_t &device, Object &&cb) { - return downcast(device).m_in_brcond0.set_callback(object); + return downcast(device).m_in_brcond0.set_callback(std::forward(cb)); } - template static devcb_base &static_set_brcond1_input(device_t &device, _Object object) + template static devcb_base &static_set_brcond1_input(device_t &device, Object &&cb) { - return downcast(device).m_in_brcond1.set_callback(object); + return downcast(device).m_in_brcond1.set_callback(std::forward(cb)); } - template static devcb_base &static_set_brcond2_input(device_t &device, _Object object) + template static devcb_base &static_set_brcond2_input(device_t &device, Object &&cb) { - return downcast(device).m_in_brcond2.set_callback(object); + return downcast(device).m_in_brcond2.set_callback(std::forward(cb)); } - template static devcb_base &static_set_brcond3_input(device_t &device, _Object object) + template static devcb_base &static_set_brcond3_input(device_t &device, Object &&cb) { - return downcast(device).m_in_brcond3.set_callback(object); + return downcast(device).m_in_brcond3.set_callback(std::forward(cb)); } protected: + enum chip_type + { + CHIP_TYPE_R3041, + CHIP_TYPE_R3051, + CHIP_TYPE_R3052, + CHIP_TYPE_R3071, + CHIP_TYPE_R3081 + }; + + r3000_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, chip_type chiptype); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -121,7 +123,7 @@ protected: virtual void execute_set_input(int inputnum, int state) override; // device_memory_interface overrides - virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_0) const override; + virtual const address_space_config *memory_space_config(address_spacenum spacenum) const override; // device_state_interface overrides virtual void state_import(const device_state_entry &entry) override; @@ -310,10 +312,10 @@ public: // device type definition -extern const device_type R3041; -extern const device_type R3051; -extern const device_type R3052; -extern const device_type R3071; -extern const device_type R3081; +DECLARE_DEVICE_TYPE(R3041, r3041_device) +DECLARE_DEVICE_TYPE(R3051, r3051_device) +DECLARE_DEVICE_TYPE(R3052, r3052_device) +DECLARE_DEVICE_TYPE(R3071, r3071_device) +DECLARE_DEVICE_TYPE(R3081, r3081_device) -#endif /* __R3000_H__ */ +#endif // MAME_CPU_MIPS_R3000_H diff --git a/src/devices/cpu/mn10200/mn10200.cpp b/src/devices/cpu/mn10200/mn10200.cpp index 634a2ff9a5c..07fc55a3723 100644 --- a/src/devices/cpu/mn10200/mn10200.cpp +++ b/src/devices/cpu/mn10200/mn10200.cpp @@ -36,7 +36,7 @@ enum mn10200_flag }; -const device_type MN1020012A = device_creator; +DEFINE_DEVICE_TYPE(MN1020012A, mn1020012a_device, "mn1020012a", "MN1020012A") // internal memory maps static ADDRESS_MAP_START( mn1020012a_internal_map, AS_PROGRAM, 16, mn10200_device ) @@ -44,9 +44,17 @@ static ADDRESS_MAP_START( mn1020012a_internal_map, AS_PROGRAM, 16, mn10200_devic ADDRESS_MAP_END +mn10200_device::mn10200_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, address_map_constructor program) + : cpu_device(mconfig, type, tag, owner, clock) + , m_program_config("program", ENDIANNESS_LITTLE, 16, 24, 0, program), m_program(nullptr) + , m_read_port0(*this), m_read_port1(*this), m_read_port2(*this), m_read_port3(*this), m_read_port4(*this) + , m_write_port0(*this), m_write_port1(*this), m_write_port2(*this), m_write_port3(*this), m_write_port4(*this), m_cycles(0), m_pc(0), m_psw(0), m_mdr(0), m_nmicr(0), m_iagr(0), + m_extmdl(0), m_extmdh(0), m_possible_irq(false), m_pplul(0), m_ppluh(0), m_p3md(0), m_p4(0) +{ } + // device definitions mn1020012a_device::mn1020012a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mn10200_device(mconfig, MN1020012A, "MN1020012A", tag, owner, clock, ADDRESS_MAP_NAME(mn1020012a_internal_map), "mn1020012a", __FILE__) + : mn10200_device(mconfig, MN1020012A, tag, owner, clock, ADDRESS_MAP_NAME(mn1020012a_internal_map)) { } diff --git a/src/devices/cpu/mn10200/mn10200.h b/src/devices/cpu/mn10200/mn10200.h index 4eb0947ab2b..7831d5cfeb1 100644 --- a/src/devices/cpu/mn10200/mn10200.h +++ b/src/devices/cpu/mn10200/mn10200.h @@ -8,8 +8,10 @@ */ -#ifndef MN10200_H -#define MN10200_H +#ifndef MAME_CPU_MN10200_MN10200_H +#define MAME_CPU_MN10200_MN10200_H + +#pragma once // port setup #define MCFG_MN10200_READ_PORT_CB(X, _devcb) \ @@ -37,40 +39,34 @@ enum }; -#define MN10200_NUM_PRESCALERS (2) -#define MN10200_NUM_TIMERS_8BIT (10) -#define MN10200_NUM_IRQ_GROUPS (31) - - class mn10200_device : public cpu_device { public: - // construction/destruction - mn10200_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, address_map_constructor program, const char *shortname, const char *source) - : cpu_device(mconfig, type, name, tag, owner, clock, shortname, source) - , m_program_config("program", ENDIANNESS_LITTLE, 16, 24, 0, program), m_program(nullptr) - , m_read_port0(*this), m_read_port1(*this), m_read_port2(*this), m_read_port3(*this), m_read_port4(*this) - , m_write_port0(*this), m_write_port1(*this), m_write_port2(*this), m_write_port3(*this), m_write_port4(*this), m_cycles(0), m_pc(0), m_psw(0), m_mdr(0), m_nmicr(0), m_iagr(0), - m_extmdl(0), m_extmdh(0), m_possible_irq(false), m_pplul(0), m_ppluh(0), m_p3md(0), m_p4(0) - { } - // static configuration helpers - template static devcb_base &set_read_port0_callback(device_t &device, _Object object) { return downcast(device).m_read_port0.set_callback(object); } - template static devcb_base &set_read_port1_callback(device_t &device, _Object object) { return downcast(device).m_read_port1.set_callback(object); } - template static devcb_base &set_read_port2_callback(device_t &device, _Object object) { return downcast(device).m_read_port2.set_callback(object); } - template static devcb_base &set_read_port3_callback(device_t &device, _Object object) { return downcast(device).m_read_port3.set_callback(object); } - template static devcb_base &set_read_port4_callback(device_t &device, _Object object) { return downcast(device).m_read_port4.set_callback(object); } - - template static devcb_base &set_write_port0_callback(device_t &device, _Object object) { return downcast(device).m_write_port0.set_callback(object); } - template static devcb_base &set_write_port1_callback(device_t &device, _Object object) { return downcast(device).m_write_port1.set_callback(object); } - template static devcb_base &set_write_port2_callback(device_t &device, _Object object) { return downcast(device).m_write_port2.set_callback(object); } - template static devcb_base &set_write_port3_callback(device_t &device, _Object object) { return downcast(device).m_write_port3.set_callback(object); } - template static devcb_base &set_write_port4_callback(device_t &device, _Object object) { return downcast(device).m_write_port4.set_callback(object); } + template static devcb_base &set_read_port0_callback(device_t &device, Object &&cb) { return downcast(device).m_read_port0.set_callback(std::forward(cb)); } + template static devcb_base &set_read_port1_callback(device_t &device, Object &&cb) { return downcast(device).m_read_port1.set_callback(std::forward(cb)); } + template static devcb_base &set_read_port2_callback(device_t &device, Object &&cb) { return downcast(device).m_read_port2.set_callback(std::forward(cb)); } + template static devcb_base &set_read_port3_callback(device_t &device, Object &&cb) { return downcast(device).m_read_port3.set_callback(std::forward(cb)); } + template static devcb_base &set_read_port4_callback(device_t &device, Object &&cb) { return downcast(device).m_read_port4.set_callback(std::forward(cb)); } + + template static devcb_base &set_write_port0_callback(device_t &device, Object &&cb) { return downcast(device).m_write_port0.set_callback(std::forward(cb)); } + template static devcb_base &set_write_port1_callback(device_t &device, Object &&cb) { return downcast(device).m_write_port1.set_callback(std::forward(cb)); } + template static devcb_base &set_write_port2_callback(device_t &device, Object &&cb) { return downcast(device).m_write_port2.set_callback(std::forward(cb)); } + template static devcb_base &set_write_port3_callback(device_t &device, Object &&cb) { return downcast(device).m_write_port3.set_callback(std::forward(cb)); } + template static devcb_base &set_write_port4_callback(device_t &device, Object &&cb) { return downcast(device).m_write_port4.set_callback(std::forward(cb)); } DECLARE_READ8_MEMBER(io_control_r); DECLARE_WRITE8_MEMBER(io_control_w); protected: + static constexpr unsigned MN10200_NUM_PRESCALERS = 2; + static constexpr unsigned MN10200_NUM_TIMERS_8BIT = 10; + static constexpr unsigned MN10200_NUM_IRQ_GROUPS = 31; + + + // construction/destruction + mn10200_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, address_map_constructor program); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -213,7 +209,7 @@ public: -extern const device_type MN1020012A; +DECLARE_DEVICE_TYPE(MN1020012A, mn1020012a_device) -#endif // MN10200_H +#endif // MAME_CPU_MN10200_MN10200_H diff --git a/src/devices/cpu/nanoprocessor/nanoprocessor.cpp b/src/devices/cpu/nanoprocessor/nanoprocessor.cpp index f41bdb97bb9..47d9091b46e 100644 --- a/src/devices/cpu/nanoprocessor/nanoprocessor.cpp +++ b/src/devices/cpu/nanoprocessor/nanoprocessor.cpp @@ -2,8 +2,8 @@ // copyright-holders:F. Ulivi #include "emu.h" -#include "debugger.h" #include "nanoprocessor.h" +#include "debugger.h" // Index of state variables enum { @@ -41,10 +41,10 @@ enum { #define NANO_E_BIT (NANO_DC0_BIT + HP_NANO_DC_NO) // Extend flag #define NANO_I_BIT (NANO_E_BIT + 1) // Interrupt flag -const device_type HP_NANOPROCESSOR = device_creator; +DEFINE_DEVICE_TYPE(HP_NANOPROCESSOR, hp_nanoprocessor_device, "nanoprocessor", "HP-Nanoprocessor") hp_nanoprocessor_device::hp_nanoprocessor_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - cpu_device(mconfig , HP_NANOPROCESSOR , "HP-Nanoprocessor" , tag , owner , clock , "nanoprocessor" , __FILE__), + cpu_device(mconfig , HP_NANOPROCESSOR , tag , owner , clock), m_dc_changed_func(*this), m_read_dc_func(*this), m_program_config("program" , ENDIANNESS_BIG , 8 , 11), diff --git a/src/devices/cpu/nanoprocessor/nanoprocessor.h b/src/devices/cpu/nanoprocessor/nanoprocessor.h index 56bf23dbf72..acdb40cb862 100644 --- a/src/devices/cpu/nanoprocessor/nanoprocessor.h +++ b/src/devices/cpu/nanoprocessor/nanoprocessor.h @@ -50,13 +50,12 @@ // The HP manual of Nanoprocessor is available here: // http://www.hp9845.net/9845/downloads/manuals/Nanoprocessor.pdf // Thanks to anyone who made the manual available. -#ifndef _NANOPROCESSOR_H_ -#define _NANOPROCESSOR_H_ +#ifndef MAME_CPU_NANOPROCESSOR_NANOPROCESSOR_H +#define MAME_CPU_NANOPROCESSOR_NANOPROCESSOR_H -#define HP_NANO_REGS 16 // Number of GP registers -#define HP_NANO_PC_MASK 0x7ff // Mask of PC meaningful bits: 11 bits available -#define HP_NANO_DC_NO 8 // Number of direct control lines (DC7 is typically used as interrupt mask) -#define HP_NANO_IE_DC 7 // DC line used as interrupt enable/mask (DC7) +#pragma once + +constexpr unsigned HP_NANO_IE_DC = 7; // DC line used as interrupt enable/mask (DC7) // DC changed callback // The callback receives a 8-bit word holding the state of all DC lines. @@ -75,12 +74,8 @@ class hp_nanoprocessor_device : public cpu_device public: hp_nanoprocessor_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_dc_changed_func(device_t &device, _Object object) { return downcast(device).m_dc_changed_func.set_callback(object); } - template static devcb_base &set_read_dc_func(device_t &device, _Object object) { return downcast(device).m_read_dc_func.set_callback(object); } - - // device_t overrides - virtual void device_start() override; - virtual void device_reset() override; + template static devcb_base &set_dc_changed_func(device_t &device, Object &&cb) { return downcast(device).m_dc_changed_func.set_callback(std::forward(cb)); } + template static devcb_base &set_read_dc_func(device_t &device, Object &&cb) { return downcast(device).m_read_dc_func.set_callback(std::forward(cb)); } // device_execute_interface overrides virtual uint32_t execute_min_cycles() const override { return 2; } @@ -88,8 +83,6 @@ public: virtual uint32_t execute_max_cycles() const override { return 3; } virtual uint32_t execute_input_lines() const override { return 1; } virtual uint32_t execute_default_irq_vector() const override { return 0xff; } - virtual void execute_run() override; - virtual void execute_set_input(int linenum, int state) override; // device_memory_interface overrides virtual const address_space_config *memory_space_config(address_spacenum spacenum) const override { @@ -105,6 +98,10 @@ public: virtual offs_t disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) override; private: + static constexpr unsigned HP_NANO_REGS = 16; // Number of GP registers + static constexpr unsigned HP_NANO_PC_MASK = 0x7ff; // Mask of PC meaningful bits: 11 bits available + static constexpr unsigned HP_NANO_DC_NO = 8; // Number of direct control lines (DC7 is typically used as interrupt mask) + devcb_write8 m_dc_changed_func; devcb_read8 m_read_dc_func; int m_icount; @@ -124,6 +121,13 @@ private: direct_read_data *m_direct; address_space *m_io; + // device_t overrides + virtual void device_start() override; + virtual void device_reset() override; + + virtual void execute_run() override; + virtual void execute_set_input(int linenum, int state) override; + void execute_one(uint8_t opcode); uint16_t pa_offset(unsigned off) const; uint8_t fetch(void); diff --git a/src/devices/cpu/nec/nec.cpp b/src/devices/cpu/nec/nec.cpp index 5e3ca395d0a..3b61283ce41 100644 --- a/src/devices/cpu/nec/nec.cpp +++ b/src/devices/cpu/nec/nec.cpp @@ -105,6 +105,7 @@ ****************************************************************************/ #include "emu.h" +#include "nec.h" #include "debugger.h" typedef uint8_t BOOLEAN; @@ -112,18 +113,17 @@ typedef uint8_t BYTE; typedef uint16_t WORD; typedef uint32_t DWORD; -#include "nec.h" #include "necpriv.h" -const device_type V20 = device_creator; -const device_type V30 = device_creator; -const device_type V33 = device_creator; -const device_type V33A =device_creator; +DEFINE_DEVICE_TYPE(V20, v20_device, "v20", "V20") +DEFINE_DEVICE_TYPE(V30, v30_device, "v30", "V30") +DEFINE_DEVICE_TYPE(V33, v33_device, "v33", "V33") +DEFINE_DEVICE_TYPE(V33A, v33a_device, "v33a", "V33A") -nec_common_device::nec_common_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source, bool is_16bit, offs_t fetch_xor, uint8_t prefetch_size, uint8_t prefetch_cycles, uint32_t chip_type) - : cpu_device(mconfig, type, name, tag, owner, clock, shortname, source) +nec_common_device::nec_common_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, bool is_16bit, offs_t fetch_xor, uint8_t prefetch_size, uint8_t prefetch_cycles, uint32_t chip_type) + : cpu_device(mconfig, type, tag, owner, clock) , m_program_config("program", ENDIANNESS_LITTLE, is_16bit ? 16 : 8, 20, 0) , m_io_config("io", ENDIANNESS_LITTLE, is_16bit ? 16 : 8, 16, 0) , m_fetch_xor(fetch_xor) @@ -135,13 +135,13 @@ nec_common_device::nec_common_device(const machine_config &mconfig, device_type v20_device::v20_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nec_common_device(mconfig, V20, "V20", tag, owner, clock, "v20", __FILE__, false, 0, 4, 4, V20_TYPE) + : nec_common_device(mconfig, V20, tag, owner, clock, false, 0, 4, 4, V20_TYPE) { } v30_device::v30_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nec_common_device(mconfig, V30, "V30", tag, owner, clock, "v30", __FILE__, true, BYTE_XOR_LE(0), 6, 2, V30_TYPE) + : nec_common_device(mconfig, V30, tag, owner, clock, true, BYTE_XOR_LE(0), 6, 2, V30_TYPE) { } @@ -150,13 +150,13 @@ v30_device::v30_device(const machine_config &mconfig, const char *tag, device_t * complete guess below, nbbatman will not work * properly without. */ v33_device::v33_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nec_common_device(mconfig, V33, "V33", tag, owner, clock, "v33", __FILE__, true, BYTE_XOR_LE(0), 6, 1, V33_TYPE) + : nec_common_device(mconfig, V33, tag, owner, clock, true, BYTE_XOR_LE(0), 6, 1, V33_TYPE) { } v33a_device::v33a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nec_common_device(mconfig, V33A, "V33A", tag, owner, clock, "v33a", __FILE__, true, BYTE_XOR_LE(0), 6, 1, V33_TYPE) + : nec_common_device(mconfig, V33A, tag, owner, clock, true, BYTE_XOR_LE(0), 6, 1, V33_TYPE) { } diff --git a/src/devices/cpu/nec/nec.h b/src/devices/cpu/nec/nec.h index 36a38019990..f4f95ad6788 100644 --- a/src/devices/cpu/nec/nec.h +++ b/src/devices/cpu/nec/nec.h @@ -1,8 +1,10 @@ // license:BSD-3-Clause // copyright-holders:Bryan McPhail /* ASG 971222 -- rewrote this interface */ -#ifndef __NEC_H_ -#define __NEC_H_ +#ifndef MAME_CPU_NEC_NEC_H +#define MAME_CPU_NEC_NEC_H + +#pragma once #define NEC_INPUT_LINE_INTP0 10 @@ -21,11 +23,10 @@ enum class nec_common_device : public cpu_device { -public: +protected: // construction/destruction - nec_common_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source, bool is_16bit, offs_t fetch_xor, uint8_t prefetch_size, uint8_t prefetch_cycles, uint32_t chip_type); + nec_common_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, bool is_16bit, offs_t fetch_xor, uint8_t prefetch_size, uint8_t prefetch_cycles, uint32_t chip_type); -protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -55,12 +56,12 @@ private: address_space_config m_program_config; address_space_config m_io_config; -/* NEC registers */ -union necbasicregs -{ /* eight general registers */ - uint16_t w[8]; /* viewed as 16 bits registers */ - uint8_t b[16]; /* or as 8 bit registers */ -}; + /* NEC registers */ + union necbasicregs + { /* eight general registers */ + uint16_t w[8]; /* viewed as 16 bits registers */ + uint8_t b[16]; /* or as 8 bit registers */ + }; necbasicregs m_regs; offs_t m_fetch_xor; @@ -423,11 +424,9 @@ public: }; -extern const device_type V20; -extern const device_type V30; -extern const device_type V33; -extern const device_type V33A; - - +DECLARE_DEVICE_TYPE(V20, v20_device) +DECLARE_DEVICE_TYPE(V30, v30_device) +DECLARE_DEVICE_TYPE(V33, v33_device) +DECLARE_DEVICE_TYPE(V33A, v33a_device) -#endif +#endif // MAME_CPU_NEC_NEC_H diff --git a/src/devices/cpu/nec/v25.cpp b/src/devices/cpu/nec/v25.cpp index bc1c944d34f..66d4e6885e8 100644 --- a/src/devices/cpu/nec/v25.cpp +++ b/src/devices/cpu/nec/v25.cpp @@ -46,12 +46,12 @@ typedef uint32_t DWORD; #include "v25priv.h" #include "nec_common.h" -const device_type V25 = device_creator; -const device_type V35 = device_creator; +DEFINE_DEVICE_TYPE(V25, v25_device, "v25", "V25") +DEFINE_DEVICE_TYPE(V35, v35_device, "v35", "V35") -v25_common_device::v25_common_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, bool is_16bit, offs_t fetch_xor, uint8_t prefetch_size, uint8_t prefetch_cycles, uint32_t chip_type) - : cpu_device(mconfig, type, name, tag, owner, clock, shortname, __FILE__) +v25_common_device::v25_common_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, bool is_16bit, offs_t fetch_xor, uint8_t prefetch_size, uint8_t prefetch_cycles, uint32_t chip_type) + : cpu_device(mconfig, type, tag, owner, clock) , m_program_config("program", ENDIANNESS_LITTLE, is_16bit ? 16 : 8, 20, 0) , m_io_config("io", ENDIANNESS_LITTLE, is_16bit ? 16 : 8, 16, 0) , m_fetch_xor(fetch_xor) @@ -72,13 +72,13 @@ v25_common_device::v25_common_device(const machine_config &mconfig, device_type v25_device::v25_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : v25_common_device(mconfig, V25, "V25", tag, owner, clock, "v25", false, 0, 4, 4, V20_TYPE) + : v25_common_device(mconfig, V25, tag, owner, clock, false, 0, 4, 4, V20_TYPE) { } v35_device::v35_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : v25_common_device(mconfig, V35, "V35", tag, owner, clock, "v35", true, BYTE_XOR_LE(0), 6, 2, V30_TYPE) + : v25_common_device(mconfig, V35, tag, owner, clock, true, BYTE_XOR_LE(0), 6, 2, V30_TYPE) { } diff --git a/src/devices/cpu/nec/v25.h b/src/devices/cpu/nec/v25.h index c5cc0b5ee2a..00bf192f22f 100644 --- a/src/devices/cpu/nec/v25.h +++ b/src/devices/cpu/nec/v25.h @@ -1,8 +1,10 @@ // license:BSD-3-Clause // copyright-holders:Bryan McPhail, Alex W. Jackson /* ASG 971222 -- rewrote this interface */ -#ifndef __NEC_V25_H_ -#define __NEC_V25_H_ +#ifndef MAME_CPU_NEC_V25_H +#define MAME_CPU_NEC_V25_H + +#pragma once #define NEC_INPUT_LINE_INTP0 10 @@ -48,24 +50,24 @@ enum class v25_common_device : public cpu_device { public: - // construction/destruction - v25_common_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, bool is_16bit, offs_t fetch_xor, uint8_t prefetch_size, uint8_t prefetch_cycles, uint32_t chip_type); - // static configuration helpers static void set_decryption_table(device_t &device, const uint8_t *decryption_table) { downcast(device).m_v25v35_decryptiontable = decryption_table; } - template static devcb_base & set_pt_in_cb(device_t &device, _Object object) { return downcast(device).m_pt_in.set_callback(object); } - template static devcb_base & set_p0_in_cb(device_t &device, _Object object) { return downcast(device).m_p0_in.set_callback(object); } - template static devcb_base & set_p1_in_cb(device_t &device, _Object object) { return downcast(device).m_p1_in.set_callback(object); } - template static devcb_base & set_p2_in_cb(device_t &device, _Object object) { return downcast(device).m_p2_in.set_callback(object); } + template static devcb_base & set_pt_in_cb(device_t &device, Object &&cb) { return downcast(device).m_pt_in.set_callback(std::forward(cb)); } + template static devcb_base & set_p0_in_cb(device_t &device, Object &&cb) { return downcast(device).m_p0_in.set_callback(std::forward(cb)); } + template static devcb_base & set_p1_in_cb(device_t &device, Object &&cb) { return downcast(device).m_p1_in.set_callback(std::forward(cb)); } + template static devcb_base & set_p2_in_cb(device_t &device, Object &&cb) { return downcast(device).m_p2_in.set_callback(std::forward(cb)); } - template static devcb_base & set_p0_out_cb(device_t &device, _Object object) { return downcast(device).m_p0_out.set_callback(object); } - template static devcb_base & set_p1_out_cb(device_t &device, _Object object) { return downcast(device).m_p1_out.set_callback(object); } - template static devcb_base & set_p2_out_cb(device_t &device, _Object object) { return downcast(device).m_p2_out.set_callback(object); } + template static devcb_base & set_p0_out_cb(device_t &device, Object &&cb) { return downcast(device).m_p0_out.set_callback(std::forward(cb)); } + template static devcb_base & set_p1_out_cb(device_t &device, Object &&cb) { return downcast(device).m_p1_out.set_callback(std::forward(cb)); } + template static devcb_base & set_p2_out_cb(device_t &device, Object &&cb) { return downcast(device).m_p2_out.set_callback(std::forward(cb)); } TIMER_CALLBACK_MEMBER(v25_timer_callback); protected: + // construction/destruction + v25_common_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, bool is_16bit, offs_t fetch_xor, uint8_t prefetch_size, uint8_t prefetch_cycles, uint32_t chip_type); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -98,12 +100,12 @@ private: address_space_config m_program_config; address_space_config m_io_config; -/* internal RAM and register banks */ -union internalram -{ - uint16_t w[128]; - uint8_t b[256]; -}; + /* internal RAM and register banks */ + union internalram + { + uint16_t w[128]; + uint8_t b[256]; + }; internalram m_ram; offs_t m_fetch_xor; @@ -487,8 +489,8 @@ public: }; -extern const device_type V25; -extern const device_type V35; +DECLARE_DEVICE_TYPE(V25, v25_device) +DECLARE_DEVICE_TYPE(V35, v35_device) -#endif +#endif // MAME_CPU_NEC_V25_H diff --git a/src/devices/cpu/nec/v53.cpp b/src/devices/cpu/nec/v53.cpp index c596d46d824..dfad59b52ba 100644 --- a/src/devices/cpu/nec/v53.cpp +++ b/src/devices/cpu/nec/v53.cpp @@ -12,9 +12,12 @@ #include "emu.h" #include "v53.h" +#include "necpriv.h" -const device_type V53 = device_creator; -const device_type V53A =device_creator; + + +DEFINE_DEVICE_TYPE(V53, v53_device, "v53", "V53") +DEFINE_DEVICE_TYPE(V53A, v53a_device, "v53a", "V53A") WRITE8_MEMBER(v53_base_device::BSEL_w) { @@ -526,8 +529,8 @@ machine_config_constructor v53_base_device::device_mconfig_additions() const } -v53_base_device::v53_base_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, offs_t fetch_xor, uint8_t prefetch_size, uint8_t prefetch_cycles, uint32_t chip_type) - : nec_common_device(mconfig, type, name, tag, owner, clock, shortname, __FILE__, true, fetch_xor, prefetch_size, prefetch_cycles, chip_type), +v53_base_device::v53_base_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, offs_t fetch_xor, uint8_t prefetch_size, uint8_t prefetch_cycles, uint32_t chip_type) + : nec_common_device(mconfig, type, tag, owner, clock, true, fetch_xor, prefetch_size, prefetch_cycles, chip_type), m_io_space_config( "io", ENDIANNESS_LITTLE, 16, 16, 0, ADDRESS_MAP_NAME( v53_internal_port_map ) ), m_v53tcu(*this, "pit"), m_v53dmau(*this, "upd71071dma"), @@ -567,12 +570,12 @@ v53_base_device::v53_base_device(const machine_config &mconfig, device_type type v53_device::v53_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : v53_base_device(mconfig, V53, "V53", tag, owner, clock, "v53", BYTE_XOR_LE(0), 6, 1, V33_TYPE) + : v53_base_device(mconfig, V53, tag, owner, clock, BYTE_XOR_LE(0), 6, 1, V33_TYPE) { } v53a_device::v53a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : v53_base_device(mconfig, V53A, "V53A", tag, owner, clock, "v53a", BYTE_XOR_LE(0), 6, 1, V33_TYPE) + : v53_base_device(mconfig, V53A, tag, owner, clock, BYTE_XOR_LE(0), 6, 1, V33_TYPE) { } diff --git a/src/devices/cpu/nec/v53.h b/src/devices/cpu/nec/v53.h index 2f1f58d8361..315fa97a8d0 100644 --- a/src/devices/cpu/nec/v53.h +++ b/src/devices/cpu/nec/v53.h @@ -1,14 +1,17 @@ // license:BSD-3-Clause // copyright-holders:Bryan McPhail /* V53 */ +#ifndef MAME_CPU_NEC_V53_H +#define MAME_CPU_NEC_V53_H + +#pragma once #include "nec.h" -#include "necpriv.h" -#include "machine/pit8253.h" #include "machine/am9517a.h" -#include "machine/pic8259.h" #include "machine/i8251.h" +#include "machine/pic8259.h" +#include "machine/pit8253.h" // SCU @@ -107,8 +110,6 @@ class v53_base_device : public nec_common_device { public: - v53_base_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, offs_t fetch_xor, uint8_t prefetch_size, uint8_t prefetch_cycles, uint32_t chip_type); - DECLARE_WRITE8_MEMBER(BSEL_w); DECLARE_WRITE8_MEMBER(BADR_w); DECLARE_WRITE8_MEMBER(BRC_w); @@ -131,29 +132,19 @@ public: DECLARE_WRITE8_MEMBER(OPSEL_w); DECLARE_WRITE8_MEMBER(SCTL_w); - uint8_t m_SCTL; - uint8_t m_OPSEL; - - uint8_t m_SULA; - uint8_t m_TULA; - uint8_t m_IULA; - uint8_t m_DULA; - uint8_t m_OPHA; - // SCU DECLARE_READ8_MEMBER(scu_simk_r); DECLARE_WRITE8_MEMBER(scu_simk_w); - uint8_t m_simk; - template static devcb_base &set_txd_handler(device_t &device, _Object object) { return downcast(device).m_txd_handler.set_callback(object); } - template static devcb_base &set_dtr_handler(device_t &device, _Object object) { return downcast(device).m_dtr_handler.set_callback(object); } - template static devcb_base &set_rts_handler(device_t &device, _Object object) { return downcast(device).m_rts_handler.set_callback(object); } - template static devcb_base &set_rxrdy_handler(device_t &device, _Object object) { return downcast(device).m_rxrdy_handler.set_callback(object); } - template static devcb_base &set_txrdy_handler(device_t &device, _Object object) { return downcast(device).m_txrdy_handler.set_callback(object); } - template static devcb_base &set_txempty_handler(device_t &device, _Object object) { return downcast(device).m_txempty_handler.set_callback(object); } - template static devcb_base &set_syndet_handler(device_t &device, _Object object) { return downcast(device).m_syndet_handler.set_callback(object); } + template static devcb_base &set_txd_handler(device_t &device, Object &&cb) { return downcast(device).m_txd_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_dtr_handler(device_t &device, Object &&cb) { return downcast(device).m_dtr_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_rts_handler(device_t &device, Object &&cb) { return downcast(device).m_rts_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_rxrdy_handler(device_t &device, Object &&cb) { return downcast(device).m_rxrdy_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_txrdy_handler(device_t &device, Object &&cb) { return downcast(device).m_txrdy_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_txempty_handler(device_t &device, Object &&cb) { return downcast(device).m_txempty_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_syndet_handler(device_t &device, Object &&cb) { return downcast(device).m_syndet_handler.set_callback(std::forward(cb)); } DECLARE_WRITE_LINE_MEMBER(scu_txd_trampoline_cb) { m_txd_handler(state); } DECLARE_WRITE_LINE_MEMBER(scu_dtr_trampoline_cb) { m_dtr_handler(state); } - DECLARE_WRITE_LINE_MEMBER(scu_rts_trampoline_cb) { m_rts_handler(state); } + DECLARE_WRITE_LINE_MEMBER(scu_rts_trampoline_cb) { m_rts_handler(state); } DECLARE_WRITE_LINE_MEMBER(scu_rxrdy_trampoline_cb) { m_rxrdy_handler(state); } /* should we mask this here based on m_simk? it can mask the interrupt */ DECLARE_WRITE_LINE_MEMBER(scu_txrdy_trampoline_cb) { m_txrdy_handler(state); } /* should we mask this here based on m_simk? it can mask the interrupt */ DECLARE_WRITE_LINE_MEMBER(scu_txempty_trampoline_cb) { m_txempty_handler(state); } @@ -170,30 +161,30 @@ public: // static void set_clk0(device_t &device, double clk0) { downcast(device).m_clk0 = clk0; } // static void set_clk1(device_t &device, double clk1) { downcast(device).m_clk1 = clk1; } // static void set_clk2(device_t &device, double clk2) { downcast(device).m_clk2 = clk2; } - template static devcb_base &set_out0_handler(device_t &device, _Object object) { return downcast(device).m_out0_handler.set_callback(object); } - template static devcb_base &set_out1_handler(device_t &device, _Object object) { return downcast(device).m_out1_handler.set_callback(object); } - template static devcb_base &set_out2_handler(device_t &device, _Object object) { return downcast(device).m_out2_handler.set_callback(object); } + template static devcb_base &set_out0_handler(device_t &device, Object &&cb) { return downcast(device).m_out0_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_out1_handler(device_t &device, Object &&cb) { return downcast(device).m_out1_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_out2_handler(device_t &device, Object &&cb) { return downcast(device).m_out2_handler.set_callback(std::forward(cb)); } DECLARE_WRITE_LINE_MEMBER(tcu_out0_trampoline_cb){ m_out0_handler(state); } DECLARE_WRITE_LINE_MEMBER(tcu_out1_trampoline_cb){ m_out1_handler(state); } DECLARE_WRITE_LINE_MEMBER(tcu_out2_trampoline_cb){ m_out2_handler(state); } // DMAU - template static devcb_base &set_out_hreq_callback(device_t &device, _Object object) { return downcast(device).m_out_hreq_cb.set_callback(object); } - template static devcb_base &set_out_eop_callback(device_t &device, _Object object) { return downcast(device).m_out_eop_cb.set_callback(object); } - template static devcb_base &set_in_memr_callback(device_t &device, _Object object) { return downcast(device).m_in_memr_cb.set_callback(object); } - template static devcb_base &set_out_memw_callback(device_t &device, _Object object) { return downcast(device).m_out_memw_cb.set_callback(object); } - template static devcb_base &set_in_ior_0_callback(device_t &device, _Object object) { return downcast(device).m_in_ior_0_cb.set_callback(object); } - template static devcb_base &set_in_ior_1_callback(device_t &device, _Object object) { return downcast(device).m_in_ior_1_cb.set_callback(object); } - template static devcb_base &set_in_ior_2_callback(device_t &device, _Object object) { return downcast(device).m_in_ior_2_cb.set_callback(object); } - template static devcb_base &set_in_ior_3_callback(device_t &device, _Object object) { return downcast(device).m_in_ior_3_cb.set_callback(object); } - template static devcb_base &set_out_iow_0_callback(device_t &device, _Object object) { return downcast(device).m_out_iow_0_cb.set_callback(object); } - template static devcb_base &set_out_iow_1_callback(device_t &device, _Object object) { return downcast(device).m_out_iow_1_cb.set_callback(object); } - template static devcb_base &set_out_iow_2_callback(device_t &device, _Object object) { return downcast(device).m_out_iow_2_cb.set_callback(object); } - template static devcb_base &set_out_iow_3_callback(device_t &device, _Object object) { return downcast(device).m_out_iow_3_cb.set_callback(object); } - template static devcb_base &set_out_dack_0_callback(device_t &device, _Object object) { return downcast(device).m_out_dack_0_cb.set_callback(object); } - template static devcb_base &set_out_dack_1_callback(device_t &device, _Object object) { return downcast(device).m_out_dack_1_cb.set_callback(object); } - template static devcb_base &set_out_dack_2_callback(device_t &device, _Object object) { return downcast(device).m_out_dack_2_cb.set_callback(object); } - template static devcb_base &set_out_dack_3_callback(device_t &device, _Object object) { return downcast(device).m_out_dack_3_cb.set_callback(object); } + template static devcb_base &set_out_hreq_callback(device_t &device, Object &&cb) { return downcast(device).m_out_hreq_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_eop_callback(device_t &device, Object &&cb) { return downcast(device).m_out_eop_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_in_memr_callback(device_t &device, Object &&cb) { return downcast(device).m_in_memr_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_memw_callback(device_t &device, Object &&cb) { return downcast(device).m_out_memw_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_in_ior_0_callback(device_t &device, Object &&cb) { return downcast(device).m_in_ior_0_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_in_ior_1_callback(device_t &device, Object &&cb) { return downcast(device).m_in_ior_1_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_in_ior_2_callback(device_t &device, Object &&cb) { return downcast(device).m_in_ior_2_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_in_ior_3_callback(device_t &device, Object &&cb) { return downcast(device).m_in_ior_3_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_iow_0_callback(device_t &device, Object &&cb) { return downcast(device).m_out_iow_0_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_iow_1_callback(device_t &device, Object &&cb) { return downcast(device).m_out_iow_1_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_iow_2_callback(device_t &device, Object &&cb) { return downcast(device).m_out_iow_2_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_iow_3_callback(device_t &device, Object &&cb) { return downcast(device).m_out_iow_3_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_dack_0_callback(device_t &device, Object &&cb) { return downcast(device).m_out_dack_0_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_dack_1_callback(device_t &device, Object &&cb) { return downcast(device).m_out_dack_1_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_dack_2_callback(device_t &device, Object &&cb) { return downcast(device).m_out_dack_2_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_dack_3_callback(device_t &device, Object &&cb) { return downcast(device).m_out_dack_3_cb.set_callback(std::forward(cb)); } DECLARE_WRITE_LINE_MEMBER(hreq_trampoline_cb) { m_out_hreq_cb(state); } DECLARE_WRITE_LINE_MEMBER(eop_trampoline_cb) { m_out_eop_cb(state); } DECLARE_READ8_MEMBER(dma_memr_trampoline_r) { return m_in_memr_cb(space, offset); } @@ -219,6 +210,18 @@ public: DECLARE_WRITE_LINE_MEMBER(hack_w); + DECLARE_READ8_MEMBER(get_pic_ack); + DECLARE_WRITE_LINE_MEMBER(internal_irq_w); + + +protected: + v53_base_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, offs_t fetch_xor, uint8_t prefetch_size, uint8_t prefetch_cycles, uint32_t chip_type); + + // device-level overrides + virtual machine_config_constructor device_mconfig_additions() const override; + virtual void device_start() override; + virtual void device_reset() override; + virtual void execute_set_input(int inputnum, int state) override; void install_peripheral_io(); @@ -234,18 +237,16 @@ public: } + uint8_t m_SCTL; + uint8_t m_OPSEL; + uint8_t m_SULA; + uint8_t m_TULA; + uint8_t m_IULA; + uint8_t m_DULA; + uint8_t m_OPHA; - DECLARE_READ8_MEMBER(get_pic_ack); - DECLARE_WRITE_LINE_MEMBER(internal_irq_w); - - -protected: - // device-level overrides - virtual machine_config_constructor device_mconfig_additions() const override; - virtual void device_start() override; - virtual void device_reset() override; - virtual void execute_set_input(int inputnum, int state) override; + uint8_t m_simk; required_device m_v53tcu; required_device m_v53dmau; @@ -287,9 +288,6 @@ protected: devcb_write_line m_out_dack_1_cb; devcb_write_line m_out_dack_2_cb; devcb_write_line m_out_dack_3_cb; - - - }; @@ -305,5 +303,7 @@ public: v53a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; -extern const device_type V53; -extern const device_type V53A; +DECLARE_DEVICE_TYPE(V53, v53_device) +DECLARE_DEVICE_TYPE(V53A, v53a_device) + +#endif // MAME_CPU_NEC_V53_H diff --git a/src/devices/cpu/patinhofeio/patinho_feio.cpp b/src/devices/cpu/patinhofeio/patinho_feio.cpp index bd9479038d2..f482e2d3b19 100644 --- a/src/devices/cpu/patinhofeio/patinho_feio.cpp +++ b/src/devices/cpu/patinhofeio/patinho_feio.cpp @@ -5,9 +5,9 @@ */ #include "emu.h" -#include "debugger.h" #include "patinhofeio_cpu.h" -#include "includes/patinhofeio.h" +#include "debugger.h" +#include "includes/patinhofeio.h" // FIXME: this is a dependency from devices on MAME #define PC m_pc //The program counter is called "contador de instrucoes" (IC) in portuguese #define ACC m_acc @@ -49,7 +49,7 @@ void patinho_feio_cpu_device::compute_effective_address(unsigned int addr){ } } -const device_type PATO_FEIO_CPU = device_creator; +DEFINE_DEVICE_TYPE(PATO_FEIO_CPU, patinho_feio_cpu_device, "pato_feio_cpu", "Patinho Feio CPU") //Internal 4kbytes of RAM static ADDRESS_MAP_START(prog_8bit, AS_PROGRAM, 8, patinho_feio_cpu_device) @@ -57,7 +57,7 @@ static ADDRESS_MAP_START(prog_8bit, AS_PROGRAM, 8, patinho_feio_cpu_device) ADDRESS_MAP_END patinho_feio_cpu_device::patinho_feio_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cpu_device(mconfig, PATO_FEIO_CPU, "Patinho Feio CPU", tag, owner, clock, "pato_feio_cpu", __FILE__) + : cpu_device(mconfig, PATO_FEIO_CPU, tag, owner, clock) , m_program_config("program", ENDIANNESS_LITTLE, 8, 12, 0, ADDRESS_MAP_NAME(prog_8bit)) , m_icount(0) , m_rc_read_cb(*this) diff --git a/src/devices/cpu/patinhofeio/patinhofeio_cpu.h b/src/devices/cpu/patinhofeio/patinhofeio_cpu.h index d33069143f8..1f7de74638a 100644 --- a/src/devices/cpu/patinhofeio/patinhofeio_cpu.h +++ b/src/devices/cpu/patinhofeio/patinhofeio_cpu.h @@ -53,16 +53,15 @@ public: // construction/destruction patinho_feio_cpu_device(const machine_config &mconfig, const char *_tag, device_t *_owner, uint32_t _clock); - template static devcb_base &set_rc_read_callback(device_t &device, _Object object) { return downcast(device).m_rc_read_cb.set_callback(object); } - template static devcb_base &set_buttons_read_callback(device_t &device, _Object object) { return downcast(device).m_buttons_read_cb.set_callback(object); } - template static devcb_base &set_iodev_read_callback(device_t &device, int devnumber, _Object object) { return downcast(device).m_iodev_read_cb[devnumber].set_callback(object); } - template static devcb_base &set_iodev_write_callback(device_t &device, int devnumber, _Object object) { return downcast(device).m_iodev_write_cb[devnumber].set_callback(object); } - template static devcb_base &set_iodev_status_callback(device_t &device, int devnumber, _Object object) { return downcast(device).m_iodev_status_cb[devnumber].set_callback(object); } + template static devcb_base &set_rc_read_callback(device_t &device, Object &&cb) { return downcast(device).m_rc_read_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_buttons_read_callback(device_t &device, Object &&cb) { return downcast(device).m_buttons_read_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_iodev_read_callback(device_t &device, int devnumber, Object &&cb) { return downcast(device).m_iodev_read_cb[devnumber].set_callback(std::forward(cb)); } + template static devcb_base &set_iodev_write_callback(device_t &device, int devnumber, Object &&cb) { return downcast(device).m_iodev_write_cb[devnumber].set_callback(std::forward(cb)); } + template static devcb_base &set_iodev_status_callback(device_t &device, int devnumber, Object &&cb) { return downcast(device).m_iodev_status_cb[devnumber].set_callback(std::forward(cb)); } void transfer_byte_from_external_device(uint8_t channel, uint8_t data); - void set_iodev_status(uint8_t channel, bool status) { - m_iodev_status[channel] = status; - } + void set_iodev_status(uint8_t channel, bool status) { m_iodev_status[channel] = status; } + protected: virtual void execute_run() override; @@ -120,7 +119,7 @@ protected: virtual uint32_t execute_max_cycles() const override { return 2; } // device_memory_interface overrides - virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_0) const override { return (spacenum == AS_PROGRAM) ? &m_program_config : nullptr; } + virtual const address_space_config *memory_space_config(address_spacenum spacenum) const override { return (spacenum == AS_PROGRAM) ? &m_program_config : nullptr; } // device_disasm_interface overrides virtual uint32_t disasm_min_opcode_bytes() const override { return 1; } @@ -139,6 +138,6 @@ private: uint8_t m_mode; }; -extern const device_type PATO_FEIO_CPU; +DECLARE_DEVICE_TYPE(PATO_FEIO_CPU, patinho_feio_cpu_device) #endif // MAME_DEVICES_CPU_PATINHOFEIO_CPU_H diff --git a/src/devices/cpu/pdp1/pdp1.cpp b/src/devices/cpu/pdp1/pdp1.cpp index 8ad561c18d8..c79e612191d 100644 --- a/src/devices/cpu/pdp1/pdp1.cpp +++ b/src/devices/cpu/pdp1/pdp1.cpp @@ -377,11 +377,11 @@ #define PREVIOUS_PC ((PC & ADDRESS_EXTENSION_MASK) | ((PC-1) & BASE_ADDRESS_MASK)) -const device_type PDP1 = device_creator; +DEFINE_DEVICE_TYPE(PDP1, pdp1_device, "pdp1_cpu", "PDP1") pdp1_device::pdp1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cpu_device(mconfig, PDP1, "PDP1", tag, owner, clock, "pdp1_cpu", __FILE__) + : cpu_device(mconfig, PDP1, tag, owner, clock) , m_program_config("program", ENDIANNESS_BIG, 32, 18, 0) { m_program_config.m_is_octal = true; diff --git a/src/devices/cpu/pdp1/pdp1.h b/src/devices/cpu/pdp1/pdp1.h index 55ff0a5ec6a..4604069d33b 100644 --- a/src/devices/cpu/pdp1/pdp1.h +++ b/src/devices/cpu/pdp1/pdp1.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Raphael Nabet -#pragma once +#ifndef MAME_CPU_PDP1_PDP1_H +#define MAME_CPU_PDP1_PDP1_H -#ifndef __PDP1_H__ -#define __PDP1_H__ +#pragma once @@ -198,11 +198,11 @@ private: }; -extern const device_type PDP1; +DECLARE_DEVICE_TYPE(PDP1, pdp1_device) #define MCFG_PDP1_RESET_PARAM(_param) \ pdp1_device::static_set_reset_param(*device, &(_param)); -#endif /* __PDP1_H__ */ +#endif // MAME_CPU_PDP1_PDP1_H diff --git a/src/devices/cpu/pdp1/tx0.cpp b/src/devices/cpu/pdp1/tx0.cpp index 4ceb64a0bbe..b3ae8567d3a 100644 --- a/src/devices/cpu/pdp1/tx0.cpp +++ b/src/devices/cpu/pdp1/tx0.cpp @@ -11,8 +11,8 @@ */ #include "emu.h" -#include "debugger.h" #include "tx0.h" +#include "debugger.h" #define LOG 0 #define LOG_EXTRA 0 @@ -40,17 +40,17 @@ #define INCREMENT_PC_8KW (PC = (PC+1) & ADDRESS_MASK_8KW) -const device_type TX0_8KW = device_creator; -const device_type TX0_64KW = device_creator; +DEFINE_DEVICE_TYPE(TX0_8KW, tx0_8kw_device, "tx0_8kw_cpu", "TX-0 8KW") +DEFINE_DEVICE_TYPE(TX0_64KW, tx0_64kw_device, "tx0_64kw_cpu", "TX-0 64KW") -tx0_device::tx0_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source, int addr_bits, int address_mask, int ir_mask) - : cpu_device(mconfig, type, name, tag, owner, clock, shortname, source) - , m_program_config("program", ENDIANNESS_BIG, 32, addr_bits , -2), m_mbr(0), m_ac(0), m_mar(0), m_pc(0), m_ir(0), m_lr(0), m_xr(0), m_pf(0), m_tbr(0), m_tac(0), m_cm_sel(0), - m_lr_sel(0), m_gbl_cm_sel(0), m_stop_cyc0(0), m_stop_cyc1(0), m_run(0), m_rim(0), m_cycle(0), m_ioh(0), m_ios(0), m_rim_step(0) - , m_address_mask(address_mask) +tx0_device::tx0_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int addr_bits, int address_mask, int ir_mask) + : cpu_device(mconfig, type, tag, owner, clock) + , m_program_config("program", ENDIANNESS_BIG, 32, addr_bits , -2), m_mbr(0), m_ac(0), m_mar(0), m_pc(0), m_ir(0), m_lr(0), m_xr(0), m_pf(0), m_tbr(0), m_tac(0), m_cm_sel(0) + , m_lr_sel(0), m_gbl_cm_sel(0), m_stop_cyc0(0), m_stop_cyc1(0), m_run(0), m_rim(0), m_cycle(0), m_ioh(0), m_ios(0), m_rim_step(0) + , m_address_mask(address_mask) , m_ir_mask(ir_mask), m_icount(0), m_program(nullptr) - , m_cpy_handler(*this) + , m_cpy_handler(*this) , m_r1l_handler(*this) , m_dis_handler(*this) , m_r3l_handler(*this) @@ -65,13 +65,13 @@ tx0_device::tx0_device(const machine_config &mconfig, device_type type, const ch } tx0_8kw_device::tx0_8kw_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : tx0_device(mconfig, TX0_8KW, "TX-0 8KW", tag, owner, clock, "tx0_8w_cpu", __FILE__, 13, ADDRESS_MASK_8KW, 037) + : tx0_device(mconfig, TX0_8KW, tag, owner, clock, 13, ADDRESS_MASK_8KW, 037) { } tx0_64kw_device::tx0_64kw_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : tx0_device(mconfig, TX0_64KW, "TX-0 64KW", tag, owner, clock, "tx0_64kw_cpu", __FILE__, 16, ADDRESS_MASK_64KW, 03) + : tx0_device(mconfig, TX0_64KW, tag, owner, clock, 16, ADDRESS_MASK_64KW, 03) { } diff --git a/src/devices/cpu/pdp1/tx0.h b/src/devices/cpu/pdp1/tx0.h index afd39fc938a..7f4a094521a 100644 --- a/src/devices/cpu/pdp1/tx0.h +++ b/src/devices/cpu/pdp1/tx0.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Raphael Nabet -#pragma once +#ifndef MAME_CPU_PDP1_TX0_H +#define MAME_CPU_PDP1_TX0_H -#ifndef __TX0_H__ -#define __TX0_H__ +#pragma once @@ -37,25 +37,25 @@ enum class tx0_device : public cpu_device { public: - // construction/destruction - tx0_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source, int addr_bits, int address_mask, int ir_mask); - // static configuration helpers - template static devcb_base &set_cpy_cb(device_t &device, _Object object) { return downcast(device).m_cpy_handler.set_callback(object); } - template static devcb_base &set_r1l_cb(device_t &device, _Object object) { return downcast(device).m_r1l_handler.set_callback(object); } - template static devcb_base &set_dis_cb(device_t &device, _Object object) { return downcast(device).m_dis_handler.set_callback(object); } - template static devcb_base &set_r3l_cb(device_t &device, _Object object) { return downcast(device).m_r3l_handler.set_callback(object); } - template static devcb_base &set_prt_cb(device_t &device, _Object object) { return downcast(device).m_prt_handler.set_callback(object); } - template static devcb_base &set_rsv_cb(device_t &device, _Object object) { return downcast(device).m_rsv_handler.set_callback(object); } - template static devcb_base &set_p6h_cb(device_t &device, _Object object) { return downcast(device).m_p6h_handler.set_callback(object); } - template static devcb_base &set_p7h_cb(device_t &device, _Object object) { return downcast(device).m_p7h_handler.set_callback(object); } - template static devcb_base &set_sel_cb(device_t &device, _Object object) { return downcast(device).m_sel_handler.set_callback(object); } - template static devcb_base &set_res_cb(device_t &device, _Object object) { return downcast(device).m_io_reset_callback.set_callback(object); } + template static devcb_base &set_cpy_cb(device_t &device, Object &&cb) { return downcast(device).m_cpy_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_r1l_cb(device_t &device, Object &&cb) { return downcast(device).m_r1l_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_dis_cb(device_t &device, Object &&cb) { return downcast(device).m_dis_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_r3l_cb(device_t &device, Object &&cb) { return downcast(device).m_r3l_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_prt_cb(device_t &device, Object &&cb) { return downcast(device).m_prt_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_rsv_cb(device_t &device, Object &&cb) { return downcast(device).m_rsv_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_p6h_cb(device_t &device, Object &&cb) { return downcast(device).m_p6h_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_p7h_cb(device_t &device, Object &&cb) { return downcast(device).m_p7h_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_sel_cb(device_t &device, Object &&cb) { return downcast(device).m_sel_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_res_cb(device_t &device, Object &&cb) { return downcast(device).m_io_reset_callback.set_callback(std::forward(cb)); } void pulse_reset(); void io_complete(); protected: + // construction/destruction + tx0_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int addr_bits, int address_mask, int ir_mask); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -65,7 +65,7 @@ protected: virtual uint32_t execute_max_cycles() const override { return 3; } // device_memory_interface overrides - virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_0) const override { return (spacenum == AS_PROGRAM) ? &m_program_config : nullptr; } + virtual const address_space_config *memory_space_config(address_spacenum spacenum) const override { return (spacenum == AS_PROGRAM) ? &m_program_config : nullptr; } // device_disasm_interface overrides virtual uint32_t disasm_min_opcode_bytes() const override { return 4; } @@ -173,7 +173,7 @@ private: }; -extern const device_type TX0_64KW; -extern const device_type TX0_8KW; +DECLARE_DEVICE_TYPE(TX0_64KW, tx0_64kw_device) +DECLARE_DEVICE_TYPE(TX0_8KW, tx0_8kw_device) -#endif /* __TX0_H__ */ +#endif // MAME_CPU_PDP1_TX0_H diff --git a/src/devices/cpu/pic16c5x/pic16c5x.cpp b/src/devices/cpu/pic16c5x/pic16c5x.cpp index 3c36f681915..9c21dd2c737 100644 --- a/src/devices/cpu/pic16c5x/pic16c5x.cpp +++ b/src/devices/cpu/pic16c5x/pic16c5x.cpp @@ -72,18 +72,18 @@ \**************************************************************************/ #include "emu.h" -#include "debugger.h" #include "pic16c5x.h" +#include "debugger.h" -const device_type PIC16C54 = device_creator; -const device_type PIC16C55 = device_creator; -const device_type PIC16C56 = device_creator; -const device_type PIC16C57 = device_creator; -const device_type PIC16C58 = device_creator; +DEFINE_DEVICE_TYPE(PIC16C54, pic16c54_device, "pic16c54", "PIC16C54") +DEFINE_DEVICE_TYPE(PIC16C55, pic16c55_device, "pic16c55", "PIC16C55") +DEFINE_DEVICE_TYPE(PIC16C56, pic16c56_device, "pic16c56", "PIC16C56") +DEFINE_DEVICE_TYPE(PIC16C57, pic16c57_device, "pic16c57", "PIC16C57") +DEFINE_DEVICE_TYPE(PIC16C58, pic16c58_device, "pic16c58", "PIC16C58") -const device_type PIC1650 = device_creator; -const device_type PIC1655 = device_creator; +DEFINE_DEVICE_TYPE(PIC1650, pic1650_device, "pic1650", "PIC1650") +DEFINE_DEVICE_TYPE(PIC1655, pic1655_device, "pic1655", "PIC1655") /**************************************************************************** @@ -118,12 +118,12 @@ static ADDRESS_MAP_START( pic16c5x_ram_7, AS_DATA, 8, pic16c5x_device ) ADDRESS_MAP_END -pic16c5x_device::pic16c5x_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, int program_width, int data_width, int picmodel) - : cpu_device(mconfig, type, name, tag, owner, clock, shortname, __FILE__) +pic16c5x_device::pic16c5x_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int program_width, int data_width, int picmodel) + : cpu_device(mconfig, type, tag, owner, clock) , m_program_config("program", ENDIANNESS_LITTLE, 16, program_width, -1 - , ( ( program_width == 9 ) ? ADDRESS_MAP_NAME(pic16c5x_rom_9) : ( ( program_width == 10 ) ? ADDRESS_MAP_NAME(pic16c5x_rom_10) : ADDRESS_MAP_NAME(pic16c5x_rom_11) ))) + , ( ( program_width == 9 ) ? ADDRESS_MAP_NAME(pic16c5x_rom_9) : ( ( program_width == 10 ) ? ADDRESS_MAP_NAME(pic16c5x_rom_10) : ADDRESS_MAP_NAME(pic16c5x_rom_11) ))) , m_data_config("data", ENDIANNESS_LITTLE, 8, data_width, 0 - , ( ( data_width == 5 ) ? ADDRESS_MAP_NAME(pic16c5x_ram_5) : ADDRESS_MAP_NAME(pic16c5x_ram_7) ) ) + , ( ( data_width == 5 ) ? ADDRESS_MAP_NAME(pic16c5x_ram_5) : ADDRESS_MAP_NAME(pic16c5x_ram_7) ) ) , m_reset_vector((program_width == 9) ? 0x1ff : ((program_width == 10) ? 0x3ff : 0x7ff)) , m_picmodel(picmodel) , m_temp_config(0) @@ -141,37 +141,37 @@ pic16c5x_device::pic16c5x_device(const machine_config &mconfig, device_type type pic16c54_device::pic16c54_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : pic16c5x_device(mconfig, PIC16C54, "PIC16C54", tag, owner, clock, "pic16c54", 9, 5, 0x16C54) + : pic16c5x_device(mconfig, PIC16C54, tag, owner, clock, 9, 5, 0x16C54) { } pic16c55_device::pic16c55_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : pic16c5x_device(mconfig, PIC16C55, "PIC16C55", tag, owner, clock, "pic16c55", 9, 5, 0x16C55) + : pic16c5x_device(mconfig, PIC16C55, tag, owner, clock, 9, 5, 0x16C55) { } pic16c56_device::pic16c56_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : pic16c5x_device(mconfig, PIC16C56, "PIC16C56", tag, owner, clock, "pic16c56", 10, 5, 0x16C56) + : pic16c5x_device(mconfig, PIC16C56, tag, owner, clock, 10, 5, 0x16C56) { } pic16c57_device::pic16c57_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : pic16c5x_device(mconfig, PIC16C57, "PIC16C57", tag, owner, clock, "pic16c57", 11, 7, 0x16C57) + : pic16c5x_device(mconfig, PIC16C57, tag, owner, clock, 11, 7, 0x16C57) { } pic16c58_device::pic16c58_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : pic16c5x_device(mconfig, PIC16C58, "PIC16C58", tag, owner, clock, "pic16c58", 11, 7, 0x16C58) + : pic16c5x_device(mconfig, PIC16C58, tag, owner, clock, 11, 7, 0x16C58) { } pic1650_device::pic1650_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : pic16c5x_device(mconfig, PIC1650, "PIC1650", tag, owner, clock, "pic1650", 9, 5, 0x1650) + : pic16c5x_device(mconfig, PIC1650, tag, owner, clock, 9, 5, 0x1650) { } pic1655_device::pic1655_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : pic16c5x_device(mconfig, PIC1655, "PIC1655", tag, owner, clock, "pic1655", 9, 5, 0x1655) + : pic16c5x_device(mconfig, PIC1655, tag, owner, clock, 9, 5, 0x1655) { } diff --git a/src/devices/cpu/pic16c5x/pic16c5x.h b/src/devices/cpu/pic16c5x/pic16c5x.h index da6c8f62449..8642ae8da43 100644 --- a/src/devices/cpu/pic16c5x/pic16c5x.h +++ b/src/devices/cpu/pic16c5x/pic16c5x.h @@ -11,10 +11,10 @@ * * \**************************************************************************/ -#pragma once +#ifndef MAME_CPU_PIC16C5X_PIC16C5X_H +#define MAME_CPU_PIC16C5X_PIC16C5X_H -#ifndef __PIC16C5X_H__ -#define __PIC16C5X_H__ +#pragma once // input lines enum @@ -65,32 +65,29 @@ enum -extern const device_type PIC16C54; -extern const device_type PIC16C55; -extern const device_type PIC16C56; -extern const device_type PIC16C57; -extern const device_type PIC16C58; +DECLARE_DEVICE_TYPE(PIC16C54, pic16c54_device) +DECLARE_DEVICE_TYPE(PIC16C55, pic16c55_device) +DECLARE_DEVICE_TYPE(PIC16C56, pic16c56_device) +DECLARE_DEVICE_TYPE(PIC16C57, pic16c57_device) +DECLARE_DEVICE_TYPE(PIC16C58, pic16c58_device) -extern const device_type PIC1650; -extern const device_type PIC1655; +DECLARE_DEVICE_TYPE(PIC1650, pic1650_device) +DECLARE_DEVICE_TYPE(PIC1655, pic1655_device) class pic16c5x_device : public cpu_device { public: - // construction/destruction - pic16c5x_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, int program_width, int data_width, int picmodel); - // static configuration helpers - template static devcb_base &set_read_a_callback(device_t &device, _Object object) { return downcast(device).m_read_a.set_callback(object); } - template static devcb_base &set_read_b_callback(device_t &device, _Object object) { return downcast(device).m_read_b.set_callback(object); } - template static devcb_base &set_read_c_callback(device_t &device, _Object object) { return downcast(device).m_read_c.set_callback(object); } - template static devcb_base &set_read_d_callback(device_t &device, _Object object) { return downcast(device).m_read_d.set_callback(object); } + template static devcb_base &set_read_a_callback(device_t &device, Object &&cb) { return downcast(device).m_read_a.set_callback(std::forward(cb)); } + template static devcb_base &set_read_b_callback(device_t &device, Object &&cb) { return downcast(device).m_read_b.set_callback(std::forward(cb)); } + template static devcb_base &set_read_c_callback(device_t &device, Object &&cb) { return downcast(device).m_read_c.set_callback(std::forward(cb)); } + template static devcb_base &set_read_d_callback(device_t &device, Object &&cb) { return downcast(device).m_read_d.set_callback(std::forward(cb)); } - template static devcb_base &set_write_a_callback(device_t &device, _Object object) { return downcast(device).m_write_a.set_callback(object); } - template static devcb_base &set_write_b_callback(device_t &device, _Object object) { return downcast(device).m_write_b.set_callback(object); } - template static devcb_base &set_write_c_callback(device_t &device, _Object object) { return downcast(device).m_write_c.set_callback(object); } - template static devcb_base &set_write_d_callback(device_t &device, _Object object) { return downcast(device).m_write_d.set_callback(object); } + template static devcb_base &set_write_a_callback(device_t &device, Object &&cb) { return downcast(device).m_write_a.set_callback(std::forward(cb)); } + template static devcb_base &set_write_b_callback(device_t &device, Object &&cb) { return downcast(device).m_write_b.set_callback(std::forward(cb)); } + template static devcb_base &set_write_c_callback(device_t &device, Object &&cb) { return downcast(device).m_write_c.set_callback(std::forward(cb)); } + template static devcb_base &set_write_d_callback(device_t &device, Object &&cb) { return downcast(device).m_write_d.set_callback(std::forward(cb)); } /**************************************************************************** * Function to configure the CONFIG register. This is actually hard-wired @@ -103,6 +100,9 @@ public: static void set_config_static(device_t &device, uint16_t data) { downcast(device).m_temp_config = data; } protected: + // construction/destruction + pic16c5x_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int program_width, int data_width, int picmodel); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -125,7 +125,7 @@ protected: virtual void execute_set_input(int line, int state) override; // device_memory_interface overrides - virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_0) const override + virtual const address_space_config *memory_space_config(address_spacenum spacenum) const override { return (spacenum == AS_PROGRAM) ? &m_program_config : ( (spacenum == AS_DATA) ? &m_data_config : nullptr ); } @@ -305,4 +305,4 @@ public: pic1655_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; -#endif /* __PIC16C5X_H__ */ +#endif // MAME_CPU_PIC16C5X_PIC16C5X_H diff --git a/src/devices/cpu/pic16c62x/pic16c62x.cpp b/src/devices/cpu/pic16c62x/pic16c62x.cpp index 9901fedc3a0..c7943ad8480 100644 --- a/src/devices/cpu/pic16c62x/pic16c62x.cpp +++ b/src/devices/cpu/pic16c62x/pic16c62x.cpp @@ -53,16 +53,16 @@ \**************************************************************************/ #include "emu.h" -#include "debugger.h" #include "pic16c62x.h" +#include "debugger.h" -const device_type PIC16C620 = device_creator; -const device_type PIC16C620A = device_creator; -const device_type PIC16C621 = device_creator; -const device_type PIC16C621A = device_creator; -const device_type PIC16C622 = device_creator; -const device_type PIC16C622A = device_creator; +DEFINE_DEVICE_TYPE(PIC16C620, pic16c620_device, "pic16c620", "PIC16C620") +DEFINE_DEVICE_TYPE(PIC16C620A, pic16c620a_device, "pic16c620a", "PIC16C620A") +DEFINE_DEVICE_TYPE(PIC16C621, pic16c621_device, "pic16c621", "PIC16C621") +DEFINE_DEVICE_TYPE(PIC16C621A, pic16c621a_device, "pic16c621a", "PIC16C621A") +DEFINE_DEVICE_TYPE(PIC16C622, pic16c622_device, "pic16c622", "PIC16C622") +DEFINE_DEVICE_TYPE(PIC16C622A, pic16c622a_device, "pic16c622a", "PIC16C622A") @@ -113,12 +113,12 @@ static ADDRESS_MAP_START( pic16c62xa_ram, AS_DATA, 8, pic16c62x_device ) ADDRESS_MAP_END -pic16c62x_device::pic16c62x_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, int program_width, int picmodel) - : cpu_device(mconfig, type, name, tag, owner, clock, shortname, __FILE__) +pic16c62x_device::pic16c62x_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int program_width, int picmodel) + : cpu_device(mconfig, type, tag, owner, clock) , m_program_config("program", ENDIANNESS_LITTLE, 16, program_width, -1 - , ( ( program_width == 9 ) ? ADDRESS_MAP_NAME(pic16c62x_rom_9) : ( ( program_width == 10 ) ? ADDRESS_MAP_NAME(pic16c62x_rom_10) : ADDRESS_MAP_NAME(pic16c62x_rom_11) ))) + , ( ( program_width == 9 ) ? ADDRESS_MAP_NAME(pic16c62x_rom_9) : ( ( program_width == 10 ) ? ADDRESS_MAP_NAME(pic16c62x_rom_10) : ADDRESS_MAP_NAME(pic16c62x_rom_11) ))) , m_data_config("data", ENDIANNESS_LITTLE, 8, 8, 0 - , ( ( picmodel == 0x16C620 || picmodel == 0x16C621 ) ? ADDRESS_MAP_NAME(pic16c620_ram) : ( ( picmodel == 0x16C622 ) ? ADDRESS_MAP_NAME(pic16c622_ram) : ADDRESS_MAP_NAME(pic16c62xa_ram) ) ) ) + , ( ( picmodel == 0x16C620 || picmodel == 0x16C621 ) ? ADDRESS_MAP_NAME(pic16c620_ram) : ( ( picmodel == 0x16C622 ) ? ADDRESS_MAP_NAME(pic16c622_ram) : ADDRESS_MAP_NAME(pic16c62xa_ram) ) ) ) , m_io_config("io", ENDIANNESS_LITTLE, 8, 5, 0) , m_reset_vector(0x0) , m_picmodel(picmodel) @@ -128,32 +128,32 @@ pic16c62x_device::pic16c62x_device(const machine_config &mconfig, device_type ty pic16c620_device::pic16c620_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : pic16c62x_device(mconfig, PIC16C620, "PIC16C620", tag, owner, clock, "pic16c620", 9, 0x16C620) + : pic16c62x_device(mconfig, PIC16C620, tag, owner, clock, 9, 0x16C620) { } pic16c620a_device::pic16c620a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : pic16c62x_device(mconfig, PIC16C620A, "PIC16C620A", tag, owner, clock, "pic16c620a", 9, 0x16C620A) + : pic16c62x_device(mconfig, PIC16C620A, tag, owner, clock, 9, 0x16C620A) { } pic16c621_device::pic16c621_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : pic16c62x_device(mconfig, PIC16C621, "PIC16C621", tag, owner, clock, "pic16c621", 9, 0x16C621) + : pic16c62x_device(mconfig, PIC16C621, tag, owner, clock, 9, 0x16C621) { } pic16c621a_device::pic16c621a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : pic16c62x_device(mconfig, PIC16C621A, "PIC16C621A", tag, owner, clock, "pic16c621a", 9, 0x16C621A) + : pic16c62x_device(mconfig, PIC16C621A, tag, owner, clock, 9, 0x16C621A) { } pic16c622_device::pic16c622_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : pic16c62x_device(mconfig, PIC16C622, "PIC16C622", tag, owner, clock, "pic16c622", 9, 0x16C622) + : pic16c62x_device(mconfig, PIC16C622, tag, owner, clock, 9, 0x16C622) { } pic16c622a_device::pic16c622a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : pic16c62x_device(mconfig, PIC16C622A, "PIC16C622A", tag, owner, clock, "pic16c622a", 9, 0x16C622A) + : pic16c62x_device(mconfig, PIC16C622A, tag, owner, clock, 9, 0x16C622A) { } diff --git a/src/devices/cpu/pic16c62x/pic16c62x.h b/src/devices/cpu/pic16c62x/pic16c62x.h index 0c2c19f41be..b873d5e19b6 100644 --- a/src/devices/cpu/pic16c62x/pic16c62x.h +++ b/src/devices/cpu/pic16c62x/pic16c62x.h @@ -13,10 +13,10 @@ * * \**************************************************************************/ -#pragma once +#ifndef MAME_CPU_PIC16C62X_PIC16C62X_H +#define MAME_CPU_PIC16C62X_PIC16C62X_H -#ifndef __PIC16C62X_H__ -#define __PIC16C62X_H__ +#pragma once @@ -42,21 +42,21 @@ enum #define PIC16C62x_T0 0 -extern const device_type PIC16C620; -extern const device_type PIC16C620A; -//extern const device_type PIC16CR620A; -extern const device_type PIC16C621; -extern const device_type PIC16C621A; -extern const device_type PIC16C622; -extern const device_type PIC16C622A; +DECLARE_DEVICE_TYPE(PIC16C620, pic16c620_device) +DECLARE_DEVICE_TYPE(PIC16C620A, pic16c620a_device) +//DECLARE_DEVICE_TYPE(PIC16CR620A, pic16cr620a_device) +DECLARE_DEVICE_TYPE(PIC16C621, pic16c621_device) +DECLARE_DEVICE_TYPE(PIC16C621A, pic16c621a_device) +DECLARE_DEVICE_TYPE(PIC16C622, pic16c622_device) +DECLARE_DEVICE_TYPE(PIC16C622A, pic16c622a_device) class pic16c62x_device : public cpu_device { -public: - // construction/destruction - pic16c62x_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, int program_width, int picmodel); protected: + // construction/destruction + pic16c62x_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int program_width, int picmodel); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -71,7 +71,7 @@ protected: virtual void execute_run() override; // device_memory_interface overrides - virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_0) const override + virtual const address_space_config *memory_space_config(address_spacenum spacenum) const override { return (spacenum == AS_PROGRAM) ? &m_program_config : ( (spacenum == AS_IO) ? &m_io_config : ( (spacenum == AS_DATA) ? &m_data_config : nullptr ) ); } @@ -253,4 +253,4 @@ public: }; -#endif /* __PIC16C62X_H__ */ +#endif // MAME_CPU_PIC16C62X_PIC16C62X_H diff --git a/src/devices/cpu/powerpc/ppc.h b/src/devices/cpu/powerpc/ppc.h index b5db869b111..dd27ba8799f 100644 --- a/src/devices/cpu/powerpc/ppc.h +++ b/src/devices/cpu/powerpc/ppc.h @@ -9,10 +9,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_CPU_POWERPC_PPC_H +#define MAME_CPU_POWERPC_PPC_H -#ifndef __PPC_H__ -#define __PPC_H__ +#pragma once #include "divtlb.h" #include "cpu/drcfe.h" @@ -209,10 +209,10 @@ protected: PPC_MODEL_MPC8245 = 0x80811014 /* "Kahlua II" */ }; -public: // construction/destruction - ppc_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, int address_bits, int data_bits, powerpc_flavor flavor, uint32_t cap, uint32_t tb_divisor, address_map_constructor internal_map); + ppc_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int address_bits, int data_bits, powerpc_flavor flavor, uint32_t cap, uint32_t tb_divisor, address_map_constructor internal_map); +public: static void set_bus_frequency(device_t &device, uint32_t bus_frequency) { downcast(device).c_bus_frequency = bus_frequency; } void ppc_set_dcstore_callback(write32_delegate callback); @@ -750,8 +750,6 @@ public: class ppc4xx_device : public ppc_device { public: - ppc4xx_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, powerpc_flavor flavor, uint32_t cap, uint32_t tb_divisor); - void ppc4xx_spu_set_tx_handler(write8_delegate callback); void ppc4xx_spu_receive_byte(uint8_t byteval); @@ -764,6 +762,8 @@ public: DECLARE_WRITE8_MEMBER( ppc4xx_spu_w ); protected: + ppc4xx_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, powerpc_flavor flavor, uint32_t cap, uint32_t tb_divisor); + virtual uint32_t execute_input_lines() const override { return 5; } virtual void execute_set_input(int inputnum, int state) override; }; @@ -790,16 +790,15 @@ public: }; -extern const device_type PPC601; -extern const device_type PPC602; -extern const device_type PPC603; -extern const device_type PPC603E; -extern const device_type PPC603R; -extern const device_type PPC604; -extern const device_type MPC8240; -extern const device_type PPC403GA; -extern const device_type PPC403GCX; -extern const device_type PPC405GP; - +DECLARE_DEVICE_TYPE(PPC601, ppc601device) +DECLARE_DEVICE_TYPE(PPC602, ppc602device) +DECLARE_DEVICE_TYPE(PPC603, ppc603device) +DECLARE_DEVICE_TYPE(PPC603E, ppc603e_device) +DECLARE_DEVICE_TYPE(PPC603R, ppc603r_device) +DECLARE_DEVICE_TYPE(PPC604, ppc604_device) +DECLARE_DEVICE_TYPE(MPC8240, mpc8240_device) +DECLARE_DEVICE_TYPE(PPC403GA, ppc403ga_device) +DECLARE_DEVICE_TYPE(PPC403GCX, ppc403ga_device) +DECLARE_DEVICE_TYPE(PPC405GP, ppc405gp_device) -#endif /* __PPC_H__ */ +#endif // MAME_CPU_POWERPC_PPC_H diff --git a/src/devices/cpu/powerpc/ppccom.cpp b/src/devices/cpu/powerpc/ppccom.cpp index 70c22b222dd..ef24a09fc45 100644 --- a/src/devices/cpu/powerpc/ppccom.cpp +++ b/src/devices/cpu/powerpc/ppccom.cpp @@ -195,20 +195,20 @@ static const uint8_t fcmp_cr_table_source[32] = }; -const device_type PPC601 = device_creator; -const device_type PPC602 = device_creator; -const device_type PPC603 = device_creator; -const device_type PPC603E = device_creator; -const device_type PPC603R = device_creator; -const device_type PPC604 = device_creator; -const device_type MPC8240 = device_creator; -const device_type PPC403GA = device_creator; -const device_type PPC403GCX = device_creator; -const device_type PPC405GP = device_creator; - - -ppc_device::ppc_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, int address_bits, int data_bits, powerpc_flavor flavor, uint32_t cap, uint32_t tb_divisor, address_map_constructor internal_map) - : cpu_device(mconfig, type, name, tag, owner, clock, shortname, __FILE__) +DEFINE_DEVICE_TYPE(PPC601, ppc601_device, "ppc601", "PowerPC 601") +DEFINE_DEVICE_TYPE(PPC602, ppc602_device, "ppc602", "PowerPC 602") +DEFINE_DEVICE_TYPE(PPC603, ppc603_device, "ppc603", "PowerPC 603") +DEFINE_DEVICE_TYPE(PPC603E, ppc603e_device, "ppc603e", "PowerPC 603E") +DEFINE_DEVICE_TYPE(PPC603R, ppc603r_device, "ppc603r", "PowerPC 603R") +DEFINE_DEVICE_TYPE(PPC604, ppc604_device, "ppc604", "PowerPC 604") +DEFINE_DEVICE_TYPE(MPC8240, mpc8240_device, "mpc8240", "PowerPC MPC8240") +DEFINE_DEVICE_TYPE(PPC403GA, ppc403ga_device, "ppc403ga", "PowerPC 403GA") +DEFINE_DEVICE_TYPE(PPC403GCX, ppc403gcx_device, "ppc403gcx", "PowerPC 403GCX") +DEFINE_DEVICE_TYPE(PPC405GP, ppc405gp_device, "ppc405gp", "PowerPC 405GP") + + +ppc_device::ppc_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int address_bits, int data_bits, powerpc_flavor flavor, uint32_t cap, uint32_t tb_divisor, address_map_constructor internal_map) + : cpu_device(mconfig, type, tag, owner, clock) , device_vtlb_interface(mconfig, *this, AS_PROGRAM) , m_program_config("program", ENDIANNESS_BIG, data_bits, address_bits, 0, internal_map) , c_bus_frequency(0) @@ -242,37 +242,37 @@ ppc_device::ppc_device(const machine_config &mconfig, device_type type, const ch //} ppc603_device::ppc603_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : ppc_device(mconfig, PPC603, "PowerPC 603", tag, owner, clock, "ppc603", 32, 64, PPC_MODEL_603, PPCCAP_OEA | PPCCAP_VEA | PPCCAP_FPU | PPCCAP_MISALIGNED | PPCCAP_603_MMU, 4, nullptr) + : ppc_device(mconfig, PPC603, tag, owner, clock, 32, 64, PPC_MODEL_603, PPCCAP_OEA | PPCCAP_VEA | PPCCAP_FPU | PPCCAP_MISALIGNED | PPCCAP_603_MMU, 4, nullptr) { } ppc603e_device::ppc603e_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : ppc_device(mconfig, PPC603E, "PowerPC 603e", tag, owner, clock, "ppc603e", 32, 64, PPC_MODEL_603E, PPCCAP_OEA | PPCCAP_VEA | PPCCAP_FPU | PPCCAP_MISALIGNED | PPCCAP_603_MMU, 4, nullptr) + : ppc_device(mconfig, PPC603E, tag, owner, clock, 32, 64, PPC_MODEL_603E, PPCCAP_OEA | PPCCAP_VEA | PPCCAP_FPU | PPCCAP_MISALIGNED | PPCCAP_603_MMU, 4, nullptr) { } ppc603r_device::ppc603r_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : ppc_device(mconfig, PPC603R, "PowerPC 603R", tag, owner, clock, "ppc603r", 32, 64, PPC_MODEL_603R, PPCCAP_OEA | PPCCAP_VEA | PPCCAP_FPU | PPCCAP_MISALIGNED | PPCCAP_603_MMU, 4, nullptr) + : ppc_device(mconfig, PPC603R, tag, owner, clock, 32, 64, PPC_MODEL_603R, PPCCAP_OEA | PPCCAP_VEA | PPCCAP_FPU | PPCCAP_MISALIGNED | PPCCAP_603_MMU, 4, nullptr) { } ppc602_device::ppc602_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : ppc_device(mconfig, PPC602, "PowerPC 602", tag, owner, clock, "ppc602", 32, 64, PPC_MODEL_602, PPCCAP_OEA | PPCCAP_VEA | PPCCAP_FPU | PPCCAP_MISALIGNED | PPCCAP_603_MMU, 4, nullptr) + : ppc_device(mconfig, PPC602, tag, owner, clock, 32, 64, PPC_MODEL_602, PPCCAP_OEA | PPCCAP_VEA | PPCCAP_FPU | PPCCAP_MISALIGNED | PPCCAP_603_MMU, 4, nullptr) { } mpc8240_device::mpc8240_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : ppc_device(mconfig, MPC8240, "PowerPC MPC8240", tag, owner, clock, "mpc8240", 32, 64, PPC_MODEL_MPC8240, PPCCAP_OEA | PPCCAP_VEA | PPCCAP_FPU | PPCCAP_MISALIGNED | PPCCAP_603_MMU, 4/* unknown */, nullptr) + : ppc_device(mconfig, MPC8240, tag, owner, clock, 32, 64, PPC_MODEL_MPC8240, PPCCAP_OEA | PPCCAP_VEA | PPCCAP_FPU | PPCCAP_MISALIGNED | PPCCAP_603_MMU, 4/* unknown */, nullptr) { } ppc601_device::ppc601_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : ppc_device(mconfig, PPC601, "PowerPC 601", tag, owner, clock, "ppc601", 32, 64, PPC_MODEL_601, PPCCAP_OEA | PPCCAP_VEA | PPCCAP_FPU | PPCCAP_MISALIGNED | PPCCAP_MFIOC | PPCCAP_601BAT, 0/* no TB */, nullptr) + : ppc_device(mconfig, PPC601, tag, owner, clock, 32, 64, PPC_MODEL_601, PPCCAP_OEA | PPCCAP_VEA | PPCCAP_FPU | PPCCAP_MISALIGNED | PPCCAP_MFIOC | PPCCAP_601BAT, 0/* no TB */, nullptr) { } ppc604_device::ppc604_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : ppc_device(mconfig, PPC604, "PowerPC 604", tag, owner, clock, "ppc604", 32, 64, PPC_MODEL_604, PPCCAP_OEA | PPCCAP_VEA | PPCCAP_FPU | PPCCAP_MISALIGNED | PPCCAP_604_MMU, 4, nullptr) + : ppc_device(mconfig, PPC604, tag, owner, clock, 32, 64, PPC_MODEL_604, PPCCAP_OEA | PPCCAP_VEA | PPCCAP_FPU | PPCCAP_MISALIGNED | PPCCAP_604_MMU, 4, nullptr) { } @@ -280,23 +280,23 @@ static ADDRESS_MAP_START( internal_ppc4xx, AS_PROGRAM, 32, ppc4xx_device ) AM_RANGE(0x40000000, 0x4000000f) AM_READWRITE8(ppc4xx_spu_r, ppc4xx_spu_w, 0xffffffff) ADDRESS_MAP_END -ppc4xx_device::ppc4xx_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, powerpc_flavor flavor, uint32_t cap, uint32_t tb_divisor) - : ppc_device(mconfig, type, name, tag, owner, clock, shortname, 31, 32, flavor, cap, tb_divisor, ADDRESS_MAP_NAME(internal_ppc4xx)) +ppc4xx_device::ppc4xx_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, powerpc_flavor flavor, uint32_t cap, uint32_t tb_divisor) + : ppc_device(mconfig, type, tag, owner, clock, 31, 32, flavor, cap, tb_divisor, ADDRESS_MAP_NAME(internal_ppc4xx)) { } ppc403ga_device::ppc403ga_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : ppc4xx_device(mconfig, PPC403GA, "PowerPC 403GA", tag, owner, clock, "ppc403ga", PPC_MODEL_403GA, PPCCAP_4XX, 1) + : ppc4xx_device(mconfig, PPC403GA, tag, owner, clock, PPC_MODEL_403GA, PPCCAP_4XX, 1) { } ppc403gcx_device::ppc403gcx_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : ppc4xx_device(mconfig, PPC403GCX, "PowerPC 403GCX", tag, owner, clock, "ppc403gcx", PPC_MODEL_403GCX, PPCCAP_4XX, 1) + : ppc4xx_device(mconfig, PPC403GCX, tag, owner, clock, PPC_MODEL_403GCX, PPCCAP_4XX, 1) { } ppc405gp_device::ppc405gp_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : ppc4xx_device(mconfig, PPC405GP, "PowerPC 405GP", tag, owner, clock, "ppc405gp", PPC_MODEL_405GP, PPCCAP_4XX | PPCCAP_VEA, 1) + : ppc4xx_device(mconfig, PPC405GP, tag, owner, clock, PPC_MODEL_405GP, PPCCAP_4XX | PPCCAP_VEA, 1) { } diff --git a/src/devices/cpu/pps4/pps4.cpp b/src/devices/cpu/pps4/pps4.cpp index cf7acd70a8d..57865f58659 100644 --- a/src/devices/cpu/pps4/pps4.cpp +++ b/src/devices/cpu/pps4/pps4.cpp @@ -77,23 +77,18 @@ *****************************************************************************/ #include "emu.h" -#include "debugger.h" #include "pps4.h" +#include "debugger.h" #define VERBOSE 0 //!< set to 1 to log certain instruction conditions +#include "logmacro.h" -#if VERBOSE -#define LOG(x) logerror x -#else -#define LOG(x) -#endif - -const device_type PPS4 = device_creator; -const device_type PPS4_2 = device_creator; +DEFINE_DEVICE_TYPE(PPS4, pps4_device, "pps4", "PPS4-4") +DEFINE_DEVICE_TYPE(PPS4_2, pps4_2_device, "pps4_2", "PPS-4/2") -pps4_device::pps4_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, u32 clock, const char *shortname, const char *file) - : cpu_device(mconfig, type, name, tag, owner, clock, shortname, file) +pps4_device::pps4_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock) + : cpu_device(mconfig, type, tag, owner, clock) , m_program_config("program", ENDIANNESS_LITTLE, 8, 12) , m_data_config("data", ENDIANNESS_LITTLE, 8, 12) // 4bit RAM , m_io_config("io", ENDIANNESS_LITTLE, 8, 8) // 4bit IO @@ -104,12 +99,12 @@ pps4_device::pps4_device(const machine_config &mconfig, device_type type, const } pps4_device::pps4_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : pps4_device(mconfig, PPS4, "PPS-4", tag, owner, clock, "pps4", __FILE__) + : pps4_device(mconfig, PPS4, tag, owner, clock) { } pps4_2_device::pps4_2_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : pps4_device(mconfig, PPS4_2, "PPS-4/2", tag, owner, clock, "pps4_2", __FILE__) + : pps4_device(mconfig, PPS4_2, tag, owner, clock) { } @@ -616,7 +611,7 @@ void pps4_device::iLDI() { // previous LDI instruction? if (0x70 == (m_Ip & 0xf0)) { - LOG(("%s: skip prev:%02x op:%02x\n", __FUNCTION__, m_Ip, m_I1)); + LOG("%s: skip prev:%02x op:%02x\n", __FUNCTION__, m_Ip, m_I1); return; } m_A = ~m_I1 & 15; @@ -863,7 +858,7 @@ void pps4_device::iLB() { // previous LB or LBL instruction? if (0xc0 == (m_Ip & 0xf0) || 0x00 == m_Ip) { - LOG(("%s: skip prev:%02x op:%02x\n", __FUNCTION__, m_Ip, m_I1)); + LOG("%s: skip prev:%02x op:%02x\n", __FUNCTION__, m_Ip, m_I1); return; } m_SB = m_SA; @@ -905,7 +900,7 @@ void pps4_device::iLBL() m_I2 = ARG(); // previous LB or LBL instruction? if (0xc0 == (m_Ip & 0xf0) || 0x00 == m_Ip) { - LOG(("%s: skip prev:%02x op:%02x\n", __FUNCTION__, m_Ip, m_I1)); + LOG("%s: skip prev:%02x op:%02x\n", __FUNCTION__, m_Ip, m_I1); return; } m_B = ~m_I2 & 255; // Note: immediate is 1's complement @@ -931,7 +926,7 @@ void pps4_device::iINCB() u8 bl = m_B & 15; bl = (bl + 1) & 15; if (0 == bl) { - LOG(("%s: skip BL=%x\n", __FUNCTION__, bl)); + LOG("%s: skip BL=%x\n", __FUNCTION__, bl); m_Skip = 1; } m_B = (m_B & ~15) | bl; @@ -957,7 +952,7 @@ void pps4_device::iDECB() u8 bl = m_B & 15; bl = (bl - 1) & 15; if (15 == bl) { - LOG(("%s: skip BL=%x\n", __FUNCTION__, bl)); + LOG("%s: skip BL=%x\n", __FUNCTION__, bl); m_Skip = 1; } m_B = (m_B & ~15) | bl; @@ -981,7 +976,7 @@ void pps4_device::iDECB() void pps4_device::iT() { const u16 p = (m_P & ~63) | (m_I1 & 63); - LOG(("%s: P=%03x I=%02x -> P=%03x\n", __FUNCTION__, m_P, m_I1, p)); + LOG("%s: P=%03x I=%02x -> P=%03x\n", __FUNCTION__, m_P, m_I1, p); m_P = p; } @@ -1235,9 +1230,9 @@ void pps4_device::iIOL() u8 ac = (~m_A & 15); m_I2 = ARG(); m_io->write_byte(m_I2, ac); - LOG(("%s: port:%02x <- %x\n", __FUNCTION__, m_I2, ac)); + LOG("%s: port:%02x <- %x\n", __FUNCTION__, m_I2, ac); ac = m_io->read_byte(m_I2) & 15; - LOG(("%s: port:%02x -> %x\n", __FUNCTION__, m_I2, ac)); + LOG("%s: port:%02x -> %x\n", __FUNCTION__, m_I2, ac); m_A = ~ac & 15; } @@ -1339,7 +1334,7 @@ void pps4_device::execute_one() m_I1 = ROP(); if (m_Skip) { m_Skip = 0; - LOG(("%s: skip op:%02x\n", __FUNCTION__, m_I1)); + LOG("%s: skip op:%02x\n", __FUNCTION__, m_I1); return; } switch (m_I1) { diff --git a/src/devices/cpu/pps4/pps4.h b/src/devices/cpu/pps4/pps4.h index c9878028063..59493f89c7b 100644 --- a/src/devices/cpu/pps4/pps4.h +++ b/src/devices/cpu/pps4/pps4.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Juergen Buchmueller -#ifndef __PPS4_H__ -#define __PPS4_H__ +#ifndef MAME_CPU_PPS4_PPS4_H +#define MAME_CPU_PPS4_PPS4_H + +#pragma once /*************************************************************************** @@ -39,8 +41,8 @@ enum // DEVICE TYPE DEFINITIONS //************************************************************************** -extern const device_type PPS4; -extern const device_type PPS4_2; +DECLARE_DEVICE_TYPE(PPS4, pps4_device) +DECLARE_DEVICE_TYPE(PPS4_2, pps4_2_device) /*************************************************************************** FUNCTION PROTOTYPES @@ -51,18 +53,17 @@ class pps4_device : public cpu_device public: // construction/destruction pps4_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); -protected: - pps4_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, u32 clock, const char *shortname, const char *file); -public: // static configuration helpers - template static devcb_base &set_dia_cb(device_t &device, _Object object) { return downcast(device).m_dia_cb.set_callback(object); } - template static devcb_base &set_dib_cb(device_t &device, _Object object) { return downcast(device).m_dib_cb.set_callback(object); } - template static devcb_base &set_do_cb(device_t &device, _Object object) { return downcast(device).m_do_cb.set_callback(object); } + template static devcb_base &set_dia_cb(device_t &device, Object &&cb) { return downcast(device).m_dia_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_dib_cb(device_t &device, Object &&cb) { return downcast(device).m_dib_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_do_cb(device_t &device, Object &&cb) { return downcast(device).m_do_cb.set_callback(std::forward(cb)); } DECLARE_READ16_MEMBER(address_bus_r); protected: + pps4_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -75,7 +76,7 @@ protected: virtual void execute_run() override; // device_memory_interface overrides - virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_0) const override + virtual const address_space_config *memory_space_config(address_spacenum spacenum) const override { return (spacenum == AS_PROGRAM) ? &m_program_config : ( (spacenum == AS_IO) ? &m_io_config : ( (spacenum == AS_DATA) ? &m_data_config : nullptr ) ); } @@ -88,7 +89,6 @@ protected: virtual u32 disasm_max_opcode_bytes() const override { return 2; } virtual offs_t disasm_disassemble(std::ostream &stream, offs_t pc, const u8 *oprom, const u8 *opram, u32 options) override; -protected: address_space_config m_program_config; address_space_config m_data_config; address_space_config m_io_config; @@ -206,4 +206,4 @@ private: u8 m_DIO; //!< DIO clamp }; -#endif // __PPS4_H__ +#endif // MAME_CPU_PPS4_PPS4_H diff --git a/src/devices/cpu/psx/dma.cpp b/src/devices/cpu/psx/dma.cpp index 44cca2aa00d..5ec8e29fdbd 100644 --- a/src/devices/cpu/psx/dma.cpp +++ b/src/devices/cpu/psx/dma.cpp @@ -25,10 +25,10 @@ static inline void ATTR_PRINTF(3,4) verboselog( device_t& device, int n_level, c } } -const device_type PSX_DMA = device_creator; +DEFINE_DEVICE_TYPE(PSX_DMA, psxdma_device, "psxdma", "Sony PSX DMA") psxdma_device::psxdma_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, PSX_DMA, "Sony PSX DMA", tag, owner, clock, "psxdma", __FILE__), m_ram( ), m_ramsize(0), m_dpcp(0), m_dicr(0), + device_t(mconfig, PSX_DMA, tag, owner, clock), m_ram(), m_ramsize(0), m_dpcp(0), m_dicr(0), m_irq_handler(*this) { } @@ -201,12 +201,12 @@ void psxdma_device::device_timer(emu_timer &timer, device_timer_id id, int param dma_finished(id); } -void psxdma_device::install_read_handler( int index, psx_dma_read_delegate p_fn_dma_read ) +void psxdma_device::install_read_handler( int index, read_delegate p_fn_dma_read ) { m_channel[ index ].fn_read = p_fn_dma_read; } -void psxdma_device::install_write_handler( int index, psx_dma_read_delegate p_fn_dma_write ) +void psxdma_device::install_write_handler( int index, write_delegate p_fn_dma_write ) { m_channel[ index ].fn_write = p_fn_dma_write; } diff --git a/src/devices/cpu/psx/dma.h b/src/devices/cpu/psx/dma.h index eeb68ac0161..ba10e80903c 100644 --- a/src/devices/cpu/psx/dma.h +++ b/src/devices/cpu/psx/dma.h @@ -7,42 +7,30 @@ * */ -#pragma once +#ifndef MAME_CPU_PSX_DMA_H +#define MAME_CPU_PSX_DMA_H -#ifndef __PSXDMA_H__ -#define __PSXDMA_H__ +#pragma once -extern const device_type PSX_DMA; +DECLARE_DEVICE_TYPE(PSX_DMA, psxdma_device) #define MCFG_PSX_DMA_IRQ_HANDLER(_devcb) \ devcb = &psxdma_device::set_irq_handler(*device, DEVCB_##_devcb); -typedef delegate psx_dma_read_delegate; -typedef delegate psx_dma_write_delegate; - -struct psx_dma_channel -{ - uint32_t n_base; - uint32_t n_blockcontrol; - uint32_t n_channelcontrol; - emu_timer *timer; - psx_dma_read_delegate fn_read; - psx_dma_write_delegate fn_write; - uint32_t n_ticks; - uint32_t b_running; -}; - class psxdma_device : public device_t { public: + typedef delegate read_delegate; + typedef delegate write_delegate; + psxdma_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // static configuration helpers template static devcb_base &set_irq_handler(device_t &device, _Object object) { return downcast(device).m_irq_handler.set_callback(object); } - void install_read_handler( int n_channel, psx_dma_read_delegate p_fn_dma_read ); - void install_write_handler( int n_channel, psx_dma_read_delegate p_fn_dma_write ); + void install_read_handler( int n_channel, read_delegate p_fn_dma_read ); + void install_write_handler( int n_channel, write_delegate p_fn_dma_write ); DECLARE_WRITE32_MEMBER( write ); DECLARE_READ32_MEMBER( read ); @@ -57,6 +45,18 @@ protected: virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; private: + struct psx_dma_channel + { + uint32_t n_base; + uint32_t n_blockcontrol; + uint32_t n_channelcontrol; + emu_timer *timer; + read_delegate fn_read; + write_delegate fn_write; + uint32_t n_ticks; + uint32_t b_running; + }; + void dma_start_timer( int n_channel, uint32_t n_ticks ); void dma_stop_timer( int n_channel ); void dma_timer_adjust( int n_channel ); diff --git a/src/devices/cpu/psx/gte.h b/src/devices/cpu/psx/gte.h index a577c317718..33755043704 100644 --- a/src/devices/cpu/psx/gte.h +++ b/src/devices/cpu/psx/gte.h @@ -7,10 +7,10 @@ * */ -#pragma once +#ifndef MAME_CPU_PSX_GTE_H +#define MAME_CPU_PSX_GTE_H -#ifndef __PSXGTE_H__ -#define __PSXGTE_H__ +#pragma once #define GTE_SF( op ) ( ( op >> 19 ) & 1 ) @@ -110,4 +110,4 @@ protected: int64_t m_mac3; }; -#endif +#endif // MAME_CPU_PSX_GTE_H diff --git a/src/devices/cpu/psx/irq.cpp b/src/devices/cpu/psx/irq.cpp index a06e83866a9..94aafc73b2f 100644 --- a/src/devices/cpu/psx/irq.cpp +++ b/src/devices/cpu/psx/irq.cpp @@ -28,10 +28,10 @@ static inline void ATTR_PRINTF(3,4) verboselog( device_t& device, int n_level, c } } -const device_type PSX_IRQ = device_creator; +DEFINE_DEVICE_TYPE(PSX_IRQ, psxirq_device, "psxirq", "Sony PSX IRQ") psxirq_device::psxirq_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, PSX_IRQ, "Sony PSX IRQ", tag, owner, clock, "psxirq", __FILE__), n_irqdata(0), n_irqmask(0), + device_t(mconfig, PSX_IRQ, tag, owner, clock), n_irqdata(0), n_irqmask(0), m_irq_handler(*this) { } diff --git a/src/devices/cpu/psx/irq.h b/src/devices/cpu/psx/irq.h index d90b0b1365c..5a4f91b6aa7 100644 --- a/src/devices/cpu/psx/irq.h +++ b/src/devices/cpu/psx/irq.h @@ -7,10 +7,10 @@ * */ -#pragma once +#ifndef MAME_CPU_PSX_IRQ_H +#define MAME_CPU_PSX_IRQ_H -#ifndef __PSXIRQ_H__ -#define __PSXIRQ_H__ +#pragma once extern const device_type PSX_IRQ; @@ -24,7 +24,7 @@ public: psxirq_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // static configuration helpers - template static devcb_base &set_irq_handler(device_t &device, _Object object) { return downcast(device).m_irq_handler.set_callback(object); } + template static devcb_base &set_irq_handler(device_t &device, Object &&cb) { return downcast(device).m_irq_handler.set_callback(std::forward(cb)); } DECLARE_READ32_MEMBER( read ); DECLARE_WRITE32_MEMBER( write ); @@ -56,4 +56,4 @@ private: devcb_write_line m_irq_handler; }; -#endif +#endif // MAME_CPU_PSX_IRQ_H diff --git a/src/devices/cpu/psx/mdec.cpp b/src/devices/cpu/psx/mdec.cpp index 6398ecc0160..6a177255da9 100644 --- a/src/devices/cpu/psx/mdec.cpp +++ b/src/devices/cpu/psx/mdec.cpp @@ -10,8 +10,8 @@ */ #include "emu.h" -#include "dma.h" #include "mdec.h" +#include "dma.h" #define VERBOSE_LEVEL ( 0 ) @@ -28,10 +28,10 @@ static inline void ATTR_PRINTF(3,4) verboselog( device_t& device, int n_level, c } } -const device_type PSX_MDEC = device_creator; +DEFINE_DEVICE_TYPE(PSX_MDEC, psxmdec_device, "psxmdec", "Sony PSX MDEC") psxmdec_device::psxmdec_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, PSX_MDEC, "Sony PSX MDEC", tag, owner, clock, "psxmdec", __FILE__), n_decoded(0), n_offset(0), n_0_command(0), n_0_address(0), n_0_size(0), n_1_command(0), n_1_status(0) + : device_t(mconfig, PSX_MDEC, tag, owner, clock), n_decoded(0), n_offset(0), n_0_command(0), n_0_address(0), n_0_size(0), n_1_command(0), n_1_status(0) { } @@ -94,7 +94,7 @@ static inline uint16_t psxreadword( uint32_t *p_n_psxram, uint32_t n_address ) return *( (uint16_t *)( (uint8_t *)p_n_psxram + WORD_XOR_LE( n_address ) ) ); } -static const uint32_t m_p_n_mdec_zigzag[ DCTSIZE2 ] = +const uint32_t psxmdec_device::m_p_n_mdec_zigzag[ DCTSIZE2 ] = { 0, 1, 8, 16, 9, 2, 3, 10, 17, 24, 32, 25, 18, 11, 4, 5, diff --git a/src/devices/cpu/psx/mdec.h b/src/devices/cpu/psx/mdec.h index 7dc2c20fb5d..941ba2f2f58 100644 --- a/src/devices/cpu/psx/mdec.h +++ b/src/devices/cpu/psx/mdec.h @@ -7,18 +7,13 @@ * */ -#pragma once - -#ifndef __PSXMDEC_H__ -#define __PSXMDEC_H__ +#ifndef MAME_CPU_PSX_MDEC_H +#define MAME_CPU_PSX_MDEC_H +#pragma once -extern const device_type PSX_MDEC; - -#define DCTSIZE ( 8 ) -#define DCTSIZE2 ( DCTSIZE * DCTSIZE ) -#define MDEC_COS_PRECALC_BITS ( 21 ) +DECLARE_DEVICE_TYPE(PSX_MDEC, psxmdec_device) class psxmdec_device : public device_t { @@ -37,6 +32,13 @@ protected: virtual void device_post_load() override; private: + static constexpr unsigned DCTSIZE = 8; + static constexpr unsigned DCTSIZE2 = DCTSIZE * DCTSIZE; + + static constexpr unsigned MDEC_COS_PRECALC_BITS = 21; + + static const uint32_t m_p_n_mdec_zigzag[ DCTSIZE2 ]; + void mdec_cos_precalc(); void mdec_idct( int32_t *p_n_src, int32_t *p_n_dst ); uint32_t mdec_unpack( uint32_t *ram, uint32_t n_address ); @@ -72,4 +74,4 @@ private: int32_t m_p_n_unpacked[ DCTSIZE2 * 6 * 2 ]; }; -#endif +#endif // MAME_CPU_PSX_MDEC_H diff --git a/src/devices/cpu/psx/psx.cpp b/src/devices/cpu/psx/psx.cpp index 6170198eef9..5c8e2ef6304 100644 --- a/src/devices/cpu/psx/psx.cpp +++ b/src/devices/cpu/psx/psx.cpp @@ -72,6 +72,8 @@ #include "sound/spu.h" #include "debugger.h" +#include "psxdefs.h" + #define LOG_BIOSCALL ( 0 ) #define EXC_INT ( 0 ) @@ -165,12 +167,12 @@ static const char *const delayn[] = }; // device type definition -const device_type CXD8530AQ = device_creator; -const device_type CXD8530BQ = device_creator; -const device_type CXD8530CQ = device_creator; -const device_type CXD8661R = device_creator; -const device_type CXD8606BQ = device_creator; -const device_type CXD8606CQ = device_creator; +DEFINE_DEVICE_TYPE(CXD8530AQ, cxd8530aq_device, "cxd8530aq", "CXD8530AQ") +DEFINE_DEVICE_TYPE(CXD8530BQ, cxd8530bq_device, "cxd8530bq", "CXD8530BQ") +DEFINE_DEVICE_TYPE(CXD8530CQ, cxd8530cq_device, "cxd8530cq", "CXD8530CQ") +DEFINE_DEVICE_TYPE(CXD8661R, cxd8661r_device, "cxd8661r", "CXD8661R") +DEFINE_DEVICE_TYPE(CXD8606BQ, cxd8606bq_device, "cxd8606bq", "CXD8606BQ") +DEFINE_DEVICE_TYPE(CXD8606CQ, cxd8606cq_device, "cxd8606cq", "CXD8606CQ") static const uint32_t mtc0_writemask[]= { @@ -1747,8 +1749,8 @@ ADDRESS_MAP_END // psxcpu_device - constructor //------------------------------------------------- -psxcpu_device::psxcpu_device( const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source ) : - cpu_device( mconfig, type, name, tag, owner, clock, shortname, source ), +psxcpu_device::psxcpu_device( const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock ) : + cpu_device( mconfig, type, tag, owner, clock ), m_program_config( "program", ENDIANNESS_LITTLE, 32, 32, 0, ADDRESS_MAP_NAME( psxcpu_internal_map ) ), m_gpu_read_handler( *this ), m_gpu_write_handler( *this ), @@ -1762,32 +1764,32 @@ psxcpu_device::psxcpu_device( const machine_config &mconfig, device_type type, c } cxd8530aq_device::cxd8530aq_device( const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock ) - : psxcpu_device( mconfig, CXD8530AQ, "CXD8530AQ", tag, owner, clock, "cxd8530aq", __FILE__ ) + : psxcpu_device( mconfig, CXD8530AQ, tag, owner, clock) { } cxd8530bq_device::cxd8530bq_device( const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock ) - : psxcpu_device( mconfig, CXD8530BQ, "CXD8530BQ", tag, owner, clock, "cxd8530bq", __FILE__ ) + : psxcpu_device( mconfig, CXD8530BQ, tag, owner, clock) { } cxd8530cq_device::cxd8530cq_device( const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock ) - : psxcpu_device( mconfig, CXD8530CQ, "CXD8530CQ", tag, owner, clock, "cxd8530cq", __FILE__ ) + : psxcpu_device( mconfig, CXD8530CQ, tag, owner, clock) { } cxd8661r_device::cxd8661r_device( const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock ) - : psxcpu_device( mconfig, CXD8661R, "CXD8661R", tag, owner, clock, "cxd8661r", __FILE__ ) + : psxcpu_device( mconfig, CXD8661R, tag, owner, clock) { } cxd8606bq_device::cxd8606bq_device( const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock ) - : psxcpu_device( mconfig, CXD8606BQ, "CXD8606BQ", tag, owner, clock, "cxd8606bq", __FILE__ ) + : psxcpu_device( mconfig, CXD8606BQ, tag, owner, clock) { } cxd8606cq_device::cxd8606cq_device( const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock ) - : psxcpu_device( mconfig, CXD8606CQ, "CXD8606CQ", tag, owner, clock, "cxd8606cq", __FILE__ ) + : psxcpu_device( mconfig, CXD8606CQ, tag, owner, clock) { } @@ -3391,8 +3393,8 @@ static MACHINE_CONFIG_FRAGMENT( psx ) MCFG_PSX_DMA_IRQ_HANDLER( DEVWRITELINE("irq", psxirq_device, intin3 ) ) MCFG_DEVICE_ADD( "mdec", PSX_MDEC, 0 ) - MCFG_PSX_DMA_CHANNEL_WRITE( DEVICE_SELF, 0, psx_dma_write_delegate(&psxmdec_device::dma_write, (psxmdec_device *) device ) ) - MCFG_PSX_DMA_CHANNEL_READ( DEVICE_SELF, 1, psx_dma_read_delegate(&psxmdec_device::dma_read, (psxmdec_device *) device ) ) + MCFG_PSX_DMA_CHANNEL_WRITE( DEVICE_SELF, 0, psxdma_device::write_delegate(&psxmdec_device::dma_write, (psxmdec_device *) device ) ) + MCFG_PSX_DMA_CHANNEL_READ( DEVICE_SELF, 1, psxdma_device::read_delegate(&psxmdec_device::dma_read, (psxmdec_device *) device ) ) MCFG_DEVICE_ADD( "rcnt", PSX_RCNT, 0 ) MCFG_PSX_RCNT_IRQ0_HANDLER( DEVWRITELINE( "irq", psxirq_device, intin4 ) ) diff --git a/src/devices/cpu/psx/psx.h b/src/devices/cpu/psx/psx.h index 8bf4a5d12b3..1dc04cd6c3c 100644 --- a/src/devices/cpu/psx/psx.h +++ b/src/devices/cpu/psx/psx.h @@ -7,8 +7,8 @@ * */ -#ifndef MAME_DEVICES_CPU_PSX_PSX_H -#define MAME_DEVICES_CPU_PSX_PSX_H +#ifndef MAME_CPU_PSX_PSX_H +#define MAME_CPU_PSX_PSX_H #pragma once @@ -22,11 +22,6 @@ // CONSTANTS //************************************************************************** -// cache - -#define ICACHE_ENTRIES ( 0x400 ) -#define DCACHE_ENTRIES ( 0x100 ) - // interrupts #define PSXCPU_IRQ0 ( 0 ) @@ -151,12 +146,12 @@ class psxcpu_device : public cpu_device, psxcpu_state { public: // static configuration helpers - template static devcb_base &set_gpu_read_handler(device_t &device, _Object object) { return downcast(device).m_gpu_read_handler.set_callback(object); } - template static devcb_base &set_gpu_write_handler(device_t &device, _Object object) { return downcast(device).m_gpu_write_handler.set_callback(object); } - template static devcb_base &set_spu_read_handler(device_t &device, _Object object) { return downcast(device).m_spu_read_handler.set_callback(object); } - template static devcb_base &set_spu_write_handler(device_t &device, _Object object) { return downcast(device).m_spu_write_handler.set_callback(object); } - template static devcb_base &set_cd_read_handler(device_t &device, _Object object) { return downcast(device).m_cd_read_handler.set_callback(object); } - template static devcb_base &set_cd_write_handler(device_t &device, _Object object) { return downcast(device).m_cd_write_handler.set_callback(object); } + template static devcb_base &set_gpu_read_handler(device_t &device, Object &&cb) { return downcast(device).m_gpu_read_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_gpu_write_handler(device_t &device, Object &&cb) { return downcast(device).m_gpu_write_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_spu_read_handler(device_t &device, Object &&cb) { return downcast(device).m_spu_read_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_spu_write_handler(device_t &device, Object &&cb) { return downcast(device).m_spu_write_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_cd_read_handler(device_t &device, Object &&cb) { return downcast(device).m_cd_read_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_cd_write_handler(device_t &device, Object &&cb) { return downcast(device).m_cd_write_handler.set_callback(std::forward(cb)); } // public interfaces DECLARE_WRITE32_MEMBER( berr_w ); @@ -195,7 +190,10 @@ public: void set_disable_rom_berr(bool mode); protected: - psxcpu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); + static constexpr unsigned ICACHE_ENTRIES = 0x400; + static constexpr unsigned DCACHE_ENTRIES = 0x100; + + psxcpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); // device-level overrides virtual void device_start() override; @@ -391,132 +389,14 @@ public: }; // device type definition -extern const device_type CXD8530AQ; -extern const device_type CXD8530BQ; -extern const device_type CXD8530CQ; -extern const device_type CXD8661R; -extern const device_type CXD8606BQ; -extern const device_type CXD8606CQ; - - - -#define PSXCPU_DELAYR_PC ( 32 ) -#define PSXCPU_DELAYR_NOTPC ( 33 ) - -#define PSXCPU_BYTE_EXTEND( a ) ( (int32_t)(int8_t)a ) -#define PSXCPU_WORD_EXTEND( a ) ( (int32_t)(int16_t)a ) - -#define INS_OP( op ) ( ( op >> 26 ) & 63 ) -#define INS_RS( op ) ( ( op >> 21 ) & 31 ) -#define INS_RT( op ) ( ( op >> 16 ) & 31 ) -#define INS_IMMEDIATE( op ) ( op & 0xffff ) -#define INS_TARGET( op ) ( op & 0x3ffffff ) -#define INS_RD( op ) ( ( op >> 11 ) & 31 ) -#define INS_SHAMT( op ) ( ( op >> 6 ) & 31 ) -#define INS_FUNCT( op ) ( op & 63 ) -#define INS_CODE( op ) ( ( op >> 6 ) & 0xfffff ) -#define INS_CO( op ) ( ( op >> 25 ) & 1 ) -#define INS_COFUN( op ) ( op & 0x1ffffff ) -#define INS_CF( op ) ( op & 31 ) -#define INS_BC( op ) ( ( op >> 16 ) & 1 ) -#define INS_RT_REGIMM( op ) ( ( op >> 16 ) & 1 ) - -#define OP_SPECIAL ( 0 ) -#define OP_REGIMM ( 1 ) -#define OP_J ( 2 ) -#define OP_JAL ( 3 ) -#define OP_BEQ ( 4 ) -#define OP_BNE ( 5 ) -#define OP_BLEZ ( 6 ) -#define OP_BGTZ ( 7 ) -#define OP_ADDI ( 8 ) -#define OP_ADDIU ( 9 ) -#define OP_SLTI ( 10 ) -#define OP_SLTIU ( 11 ) -#define OP_ANDI ( 12 ) -#define OP_ORI ( 13 ) -#define OP_XORI ( 14 ) -#define OP_LUI ( 15 ) -#define OP_COP0 ( 16 ) -#define OP_COP1 ( 17 ) -#define OP_COP2 ( 18 ) -#define OP_COP3 ( 19 ) -#define OP_LB ( 32 ) -#define OP_LH ( 33 ) -#define OP_LWL ( 34 ) -#define OP_LW ( 35 ) -#define OP_LBU ( 36 ) -#define OP_LHU ( 37 ) -#define OP_LWR ( 38 ) -#define OP_SB ( 40 ) -#define OP_SH ( 41 ) -#define OP_SWL ( 42 ) -#define OP_SW ( 43 ) -#define OP_SWR ( 46 ) -#define OP_LWC0 ( 48 ) -#define OP_LWC1 ( 49 ) -#define OP_LWC2 ( 50 ) -#define OP_LWC3 ( 51 ) -#define OP_SWC0 ( 56 ) -#define OP_SWC1 ( 57 ) -#define OP_SWC2 ( 58 ) -#define OP_SWC3 ( 59 ) - -/* OP_SPECIAL */ -#define FUNCT_SLL ( 0 ) -#define FUNCT_SRL ( 2 ) -#define FUNCT_SRA ( 3 ) -#define FUNCT_SLLV ( 4 ) -#define FUNCT_SRLV ( 6 ) -#define FUNCT_SRAV ( 7 ) -#define FUNCT_JR ( 8 ) -#define FUNCT_JALR ( 9 ) -#define FUNCT_SYSCALL ( 12 ) -#define FUNCT_BREAK ( 13 ) -#define FUNCT_MFHI ( 16 ) -#define FUNCT_MTHI ( 17 ) -#define FUNCT_MFLO ( 18 ) -#define FUNCT_MTLO ( 19 ) -#define FUNCT_MULT ( 24 ) -#define FUNCT_MULTU ( 25 ) -#define FUNCT_DIV ( 26 ) -#define FUNCT_DIVU ( 27 ) -#define FUNCT_ADD ( 32 ) -#define FUNCT_ADDU ( 33 ) -#define FUNCT_SUB ( 34 ) -#define FUNCT_SUBU ( 35 ) -#define FUNCT_AND ( 36 ) -#define FUNCT_OR ( 37 ) -#define FUNCT_XOR ( 38 ) -#define FUNCT_NOR ( 39 ) -#define FUNCT_SLT ( 42 ) -#define FUNCT_SLTU ( 43 ) - -/* OP_REGIMM */ -#define RT_BLTZ ( 0 ) -#define RT_BGEZ ( 1 ) -#define RT_BLTZAL ( 16 ) -#define RT_BGEZAL ( 17 ) - -/* OP_COP0/OP_COP1/OP_COP2 */ -#define RS_MFC ( 0 ) -#define RS_CFC ( 2 ) -#define RS_MTC ( 4 ) -#define RS_CTC ( 6 ) -#define RS_BC ( 8 ) -#define RS_BC_ALT ( 12 ) - -/* BC_BC */ -#define BC_BCF ( 0 ) -#define BC_BCT ( 1 ) - -/* OP_COP0 */ -#define CF_TLBR ( 1 ) -#define CF_TLBWI ( 2 ) -#define CF_TLBWR ( 6 ) -#define CF_TLBP ( 8 ) -#define CF_RFE ( 16 ) +DECLARE_DEVICE_TYPE(CXD8530AQ, cxd8530aq_device) +DECLARE_DEVICE_TYPE(CXD8530BQ, cxd8530bq_device) +DECLARE_DEVICE_TYPE(CXD8530CQ, cxd8530cq_device) +DECLARE_DEVICE_TYPE(CXD8661R, cxd8661r_device) +DECLARE_DEVICE_TYPE(CXD8606BQ, cxd8606bq_device) +DECLARE_DEVICE_TYPE(CXD8606CQ, cxd8606cq_device) + extern unsigned DasmPSXCPU(psxcpu_state *state, std::ostream &stream, uint32_t pc, const uint8_t *opram); -#endif // MAME_DEVICES_CPU_PSX_PSX_H +#endif // MAME_CPU_PSX_PSX_H diff --git a/src/devices/cpu/psx/psxdasm.cpp b/src/devices/cpu/psx/psxdasm.cpp index 7d65b097a86..2bb38b6d407 100644 --- a/src/devices/cpu/psx/psxdasm.cpp +++ b/src/devices/cpu/psx/psxdasm.cpp @@ -9,6 +9,9 @@ #include "psx.h" #include "gte.h" +#include "psxdefs.h" + + static char *make_signed_hex_str_16( uint32_t value ) { static char s_hex[ 20 ]; diff --git a/src/devices/cpu/psx/psxdefs.h b/src/devices/cpu/psx/psxdefs.h new file mode 100644 index 00000000000..fde2456b515 --- /dev/null +++ b/src/devices/cpu/psx/psxdefs.h @@ -0,0 +1,126 @@ +// license:BSD-3-Clause +// copyright-holders:smf +#ifndef MAME_CPU_PSX_PSXDEFS_H +#define MAME_CPU_PSX_PSXDEFS_H + +#pragma once + + +#define PSXCPU_DELAYR_PC ( 32 ) +#define PSXCPU_DELAYR_NOTPC ( 33 ) + +#define PSXCPU_BYTE_EXTEND( a ) ( (int32_t)(int8_t)a ) +#define PSXCPU_WORD_EXTEND( a ) ( (int32_t)(int16_t)a ) + +#define INS_OP( op ) ( ( op >> 26 ) & 63 ) +#define INS_RS( op ) ( ( op >> 21 ) & 31 ) +#define INS_RT( op ) ( ( op >> 16 ) & 31 ) +#define INS_IMMEDIATE( op ) ( op & 0xffff ) +#define INS_TARGET( op ) ( op & 0x3ffffff ) +#define INS_RD( op ) ( ( op >> 11 ) & 31 ) +#define INS_SHAMT( op ) ( ( op >> 6 ) & 31 ) +#define INS_FUNCT( op ) ( op & 63 ) +#define INS_CODE( op ) ( ( op >> 6 ) & 0xfffff ) +#define INS_CO( op ) ( ( op >> 25 ) & 1 ) +#define INS_COFUN( op ) ( op & 0x1ffffff ) +#define INS_CF( op ) ( op & 31 ) +#define INS_BC( op ) ( ( op >> 16 ) & 1 ) +#define INS_RT_REGIMM( op ) ( ( op >> 16 ) & 1 ) + +#define OP_SPECIAL ( 0 ) +#define OP_REGIMM ( 1 ) +#define OP_J ( 2 ) +#define OP_JAL ( 3 ) +#define OP_BEQ ( 4 ) +#define OP_BNE ( 5 ) +#define OP_BLEZ ( 6 ) +#define OP_BGTZ ( 7 ) +#define OP_ADDI ( 8 ) +#define OP_ADDIU ( 9 ) +#define OP_SLTI ( 10 ) +#define OP_SLTIU ( 11 ) +#define OP_ANDI ( 12 ) +#define OP_ORI ( 13 ) +#define OP_XORI ( 14 ) +#define OP_LUI ( 15 ) +#define OP_COP0 ( 16 ) +#define OP_COP1 ( 17 ) +#define OP_COP2 ( 18 ) +#define OP_COP3 ( 19 ) +#define OP_LB ( 32 ) +#define OP_LH ( 33 ) +#define OP_LWL ( 34 ) +#define OP_LW ( 35 ) +#define OP_LBU ( 36 ) +#define OP_LHU ( 37 ) +#define OP_LWR ( 38 ) +#define OP_SB ( 40 ) +#define OP_SH ( 41 ) +#define OP_SWL ( 42 ) +#define OP_SW ( 43 ) +#define OP_SWR ( 46 ) +#define OP_LWC0 ( 48 ) +#define OP_LWC1 ( 49 ) +#define OP_LWC2 ( 50 ) +#define OP_LWC3 ( 51 ) +#define OP_SWC0 ( 56 ) +#define OP_SWC1 ( 57 ) +#define OP_SWC2 ( 58 ) +#define OP_SWC3 ( 59 ) + +/* OP_SPECIAL */ +#define FUNCT_SLL ( 0 ) +#define FUNCT_SRL ( 2 ) +#define FUNCT_SRA ( 3 ) +#define FUNCT_SLLV ( 4 ) +#define FUNCT_SRLV ( 6 ) +#define FUNCT_SRAV ( 7 ) +#define FUNCT_JR ( 8 ) +#define FUNCT_JALR ( 9 ) +#define FUNCT_SYSCALL ( 12 ) +#define FUNCT_BREAK ( 13 ) +#define FUNCT_MFHI ( 16 ) +#define FUNCT_MTHI ( 17 ) +#define FUNCT_MFLO ( 18 ) +#define FUNCT_MTLO ( 19 ) +#define FUNCT_MULT ( 24 ) +#define FUNCT_MULTU ( 25 ) +#define FUNCT_DIV ( 26 ) +#define FUNCT_DIVU ( 27 ) +#define FUNCT_ADD ( 32 ) +#define FUNCT_ADDU ( 33 ) +#define FUNCT_SUB ( 34 ) +#define FUNCT_SUBU ( 35 ) +#define FUNCT_AND ( 36 ) +#define FUNCT_OR ( 37 ) +#define FUNCT_XOR ( 38 ) +#define FUNCT_NOR ( 39 ) +#define FUNCT_SLT ( 42 ) +#define FUNCT_SLTU ( 43 ) + +/* OP_REGIMM */ +#define RT_BLTZ ( 0 ) +#define RT_BGEZ ( 1 ) +#define RT_BLTZAL ( 16 ) +#define RT_BGEZAL ( 17 ) + +/* OP_COP0/OP_COP1/OP_COP2 */ +#define RS_MFC ( 0 ) +#define RS_CFC ( 2 ) +#define RS_MTC ( 4 ) +#define RS_CTC ( 6 ) +#define RS_BC ( 8 ) +#define RS_BC_ALT ( 12 ) + +/* BC_BC */ +#define BC_BCF ( 0 ) +#define BC_BCT ( 1 ) + +/* OP_COP0 */ +#define CF_TLBR ( 1 ) +#define CF_TLBWI ( 2 ) +#define CF_TLBWR ( 6 ) +#define CF_TLBP ( 8 ) +#define CF_RFE ( 16 ) + +#endif // MAME_CPU_PSX_PSXDEFS_H diff --git a/src/devices/cpu/psx/rcnt.cpp b/src/devices/cpu/psx/rcnt.cpp index c3b574e4c31..e0ac985fa0a 100644 --- a/src/devices/cpu/psx/rcnt.cpp +++ b/src/devices/cpu/psx/rcnt.cpp @@ -25,10 +25,10 @@ static inline void ATTR_PRINTF(3,4) verboselog( device_t& device, int n_level, c } } -const device_type PSX_RCNT = device_creator; +DEFINE_DEVICE_TYPE(PSX_RCNT, psxrcnt_device, "psxrcnt", "Sony PSX RCNT") psxrcnt_device::psxrcnt_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, PSX_RCNT, "Sony PSX RCNT", tag, owner, clock, "psxrcnt", __FILE__), + device_t(mconfig, PSX_RCNT, tag, owner, clock), m_irq0_handler(*this), m_irq1_handler(*this), m_irq2_handler(*this) diff --git a/src/devices/cpu/psx/rcnt.h b/src/devices/cpu/psx/rcnt.h index d56b3a6531a..48262325bfc 100644 --- a/src/devices/cpu/psx/rcnt.h +++ b/src/devices/cpu/psx/rcnt.h @@ -7,13 +7,13 @@ * */ -#pragma once +#ifndef MAME_CPU_PSX_RCNT_H +#define MAME_CPU_PSX_RCNT_H -#ifndef __PSXRCNT_H__ -#define __PSXRCNT_H__ +#pragma once -extern const device_type PSX_RCNT; +DECLARE_DEVICE_TYPE(PSX_RCNT, psxrcnt_device) #define MCFG_PSX_RCNT_IRQ0_HANDLER(_devcb) \ devcb = &psxrcnt_device::set_irq0_handler(*device, DEVCB_##_devcb); @@ -30,24 +30,15 @@ extern const device_type PSX_RCNT; #define PSX_RC_CLC ( 0x100 ) #define PSX_RC_DIV ( 0x200 ) -struct psx_root -{ - emu_timer *timer; - uint16_t n_count; - uint16_t n_mode; - uint16_t n_target; - uint64_t n_start; -}; - class psxrcnt_device : public device_t { public: psxrcnt_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // static configuration helpers - template static devcb_base &set_irq0_handler(device_t &device, _Object object) { return downcast(device).m_irq0_handler.set_callback(object); } - template static devcb_base &set_irq1_handler(device_t &device, _Object object) { return downcast(device).m_irq1_handler.set_callback(object); } - template static devcb_base &set_irq2_handler(device_t &device, _Object object) { return downcast(device).m_irq2_handler.set_callback(object); } + template static devcb_base &set_irq0_handler(device_t &device, Object &&cb) { return downcast(device).m_irq0_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_irq1_handler(device_t &device, Object &&cb) { return downcast(device).m_irq1_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_irq2_handler(device_t &device, Object &&cb) { return downcast(device).m_irq2_handler.set_callback(std::forward(cb)); } DECLARE_WRITE32_MEMBER( write ); DECLARE_READ32_MEMBER( read ); @@ -59,6 +50,15 @@ protected: virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; private: + struct psx_root + { + emu_timer *timer; + uint16_t n_count; + uint16_t n_mode; + uint16_t n_target; + uint64_t n_start; + }; + psx_root root_counter[ 3 ]; uint64_t gettotalcycles( void ); @@ -72,4 +72,4 @@ private: devcb_write_line m_irq2_handler; }; -#endif +#endif // MAME_CPU_PSX_RCNT_H diff --git a/src/devices/cpu/psx/sio.cpp b/src/devices/cpu/psx/sio.cpp index 048ab52de88..5ff3e671109 100644 --- a/src/devices/cpu/psx/sio.cpp +++ b/src/devices/cpu/psx/sio.cpp @@ -25,21 +25,21 @@ static inline void ATTR_PRINTF(3,4) verboselog( device_t& device, int n_level, c } } -const device_type PSX_SIO0 = device_creator; -const device_type PSX_SIO1 = device_creator; +DEFINE_DEVICE_TYPE(PSX_SIO0, psxsio0_device, "psxsio0", "Sony PSX SIO-0") +DEFINE_DEVICE_TYPE(PSX_SIO1, psxsio1_device, "psxsio1", "Sony PSX SIO-1") psxsio0_device::psxsio0_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - psxsio_device(mconfig, PSX_SIO0, "Sony PSX SIO-0", tag, owner, clock, "psxsio0", __FILE__) + psxsio_device(mconfig, PSX_SIO0, tag, owner, clock) { } psxsio1_device::psxsio1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - psxsio_device(mconfig, PSX_SIO1, "Sony PSX SIO-1", tag, owner, clock, "psxsio1", __FILE__) + psxsio_device(mconfig, PSX_SIO1, tag, owner, clock) { } -psxsio_device::psxsio_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), +psxsio_device::psxsio_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), m_status(SIO_STATUS_TX_EMPTY | SIO_STATUS_TX_RDY), m_mode(0), m_control(0), m_baud(0), m_rxd(1), m_tx_data(0), m_rx_data(0), m_tx_shift(0), m_rx_shift(0), m_tx_bits(0), m_rx_bits(0), m_timer(nullptr), m_irq_handler(*this), diff --git a/src/devices/cpu/psx/sio.h b/src/devices/cpu/psx/sio.h index 4f2df7f912b..1205e4b278c 100644 --- a/src/devices/cpu/psx/sio.h +++ b/src/devices/cpu/psx/sio.h @@ -7,14 +7,14 @@ * */ -#pragma once +#ifndef MAME_CPU_PSX_SIO_H +#define MAME_CPU_PSX_SIO_H -#ifndef __PSXSIO_H__ -#define __PSXSIO_H__ +#pragma once -extern const device_type PSX_SIO0; -extern const device_type PSX_SIO1; +DECLARE_DEVICE_TYPE(PSX_SIO0, psxsio0_device) +DECLARE_DEVICE_TYPE(PSX_SIO1, psxsio1_device) #define MCFG_PSX_SIO_IRQ_HANDLER(_devcb) \ devcb = &psxsio_device::set_irq_handler(*device, DEVCB_##_devcb); @@ -51,14 +51,12 @@ extern const device_type PSX_SIO1; class psxsio_device : public device_t { public: - psxsio_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - // static configuration helpers - template static devcb_base &set_irq_handler(device_t &device, _Object object) { return downcast(device).m_irq_handler.set_callback(object); } - template static devcb_base &set_sck_handler(device_t &device, _Object object) { return downcast(device).m_sck_handler.set_callback(object); } - template static devcb_base &set_txd_handler(device_t &device, _Object object) { return downcast(device).m_txd_handler.set_callback(object); } - template static devcb_base &set_dtr_handler(device_t &device, _Object object) { return downcast(device).m_dtr_handler.set_callback(object); } - template static devcb_base &set_rts_handler(device_t &device, _Object object) { return downcast(device).m_rts_handler.set_callback(object); } + template static devcb_base &set_irq_handler(device_t &device, Object &&cb) { return downcast(device).m_irq_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_sck_handler(device_t &device, Object &&cb) { return downcast(device).m_sck_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_txd_handler(device_t &device, Object &&cb) { return downcast(device).m_txd_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_dtr_handler(device_t &device, Object &&cb) { return downcast(device).m_dtr_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_rts_handler(device_t &device, Object &&cb) { return downcast(device).m_rts_handler.set_callback(std::forward(cb)); } DECLARE_WRITE32_MEMBER( write ); DECLARE_READ32_MEMBER( read ); @@ -67,6 +65,8 @@ public: DECLARE_WRITE_LINE_MEMBER(write_dsr); protected: + psxsio_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; @@ -109,4 +109,4 @@ public: psxsio1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; -#endif +#endif // MAME_CPU_PSX_SIO_H diff --git a/src/devices/cpu/rsp/rsp.cpp b/src/devices/cpu/rsp/rsp.cpp index eb3b553107b..5bdf36fd046 100644 --- a/src/devices/cpu/rsp/rsp.cpp +++ b/src/devices/cpu/rsp/rsp.cpp @@ -7,14 +7,18 @@ */ #include "emu.h" -#include "debugger.h" #include "rsp.h" + #include "rspfe.h" #include "rspcp2.h" #include "rspcp2d.h" +#include "debugger.h" + +#include "rspdefs.h" + -const device_type RSP = device_creator; +DEFINE_DEVICE_TYPE(RSP, rsp_device, "rsp", "RSP") #define LOG_INSTRUCTION_EXECUTION 0 @@ -97,7 +101,7 @@ const device_type RSP = device_creator; rsp_device::rsp_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cpu_device(mconfig, RSP, "RSP", tag, owner, clock, "rsp", __FILE__) + : cpu_device(mconfig, RSP, tag, owner, clock) , m_program_config("program", ENDIANNESS_BIG, 32, 32) , m_cache(CACHE_SIZE + sizeof(internal_rsp_state)) , m_drcuml(nullptr) diff --git a/src/devices/cpu/rsp/rsp.h b/src/devices/cpu/rsp/rsp.h index 578fd89b482..170315ec69f 100644 --- a/src/devices/cpu/rsp/rsp.h +++ b/src/devices/cpu/rsp/rsp.h @@ -9,10 +9,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_CPU_RSP_RSP_H +#define MAME_CPU_RSP_RSP_H -#ifndef __RSP_H__ -#define __RSP_H__ +#pragma once #include "cpu/drcfe.h" #include "cpu/drcuml.h" @@ -65,32 +65,6 @@ enum RSP_V24, RSP_V25, RSP_V26, RSP_V27, RSP_V28, RSP_V29, RSP_V30, RSP_V31 }; -/*************************************************************************** - HELPER MACROS -***************************************************************************/ - -#define REG_LO 32 -#define REG_HI 33 - -#define RSREG ((op >> 21) & 31) -#define RTREG ((op >> 16) & 31) -#define RDREG ((op >> 11) & 31) -#define SHIFT ((op >> 6) & 31) - -#define FRREG ((op >> 21) & 31) -#define FTREG ((op >> 16) & 31) -#define FSREG ((op >> 11) & 31) -#define FDREG ((op >> 6) & 31) - -#define IS_SINGLE(o) (((o) & (1 << 21)) == 0) -#define IS_DOUBLE(o) (((o) & (1 << 21)) != 0) -#define IS_FLOAT(o) (((o) & (1 << 23)) == 0) -#define IS_INTEGRAL(o) (((o) & (1 << 23)) != 0) - -#define SIMMVAL ((int16_t)op) -#define UIMMVAL ((uint16_t)op) -#define LIMMVAL (op & 0x03ffffff) - #define RSP_STATUS_HALT 0x0001 #define RSP_STATUS_BROKE 0x0002 #define RSP_STATUS_DMABUSY 0x0004 @@ -139,11 +113,11 @@ public: rsp_device(const machine_config &mconfig, const char *_tag, device_t *_owner, uint32_t _clock); void resolve_cb(); - template static devcb_base &static_set_dp_reg_r_callback(device_t &device, _Object object) { return downcast(device).m_dp_reg_r_func.set_callback(object); } - template static devcb_base &static_set_dp_reg_w_callback(device_t &device, _Object object) { return downcast(device).m_dp_reg_w_func.set_callback(object); } - template static devcb_base &static_set_sp_reg_r_callback(device_t &device, _Object object) { return downcast(device).m_sp_reg_r_func.set_callback(object); } - template static devcb_base &static_set_sp_reg_w_callback(device_t &device, _Object object) { return downcast(device).m_sp_reg_w_func.set_callback(object); } - template static devcb_base &static_set_status_callback(device_t &device, _Object object) { return downcast(device).m_sp_set_status_func.set_callback(object); } + template static devcb_base &static_set_dp_reg_r_callback(device_t &device, Object &&cb) { return downcast(device).m_dp_reg_r_func.set_callback(std::forward(cb)); } + template static devcb_base &static_set_dp_reg_w_callback(device_t &device, Object &&cb) { return downcast(device).m_dp_reg_w_func.set_callback(std::forward(cb)); } + template static devcb_base &static_set_sp_reg_r_callback(device_t &device, Object &&cb) { return downcast(device).m_sp_reg_r_func.set_callback(std::forward(cb)); } + template static devcb_base &static_set_sp_reg_w_callback(device_t &device, Object &&cb) { return downcast(device).m_sp_reg_w_func.set_callback(std::forward(cb)); } + template static devcb_base &static_set_status_callback(device_t &device, Object &&cb) { return downcast(device).m_sp_set_status_func.set_callback(std::forward(cb)); } void rspdrc_flush_drc_cache(); void rspdrc_set_options(uint32_t options); @@ -323,9 +297,9 @@ private: }; -extern const device_type RSP; +DECLARE_DEVICE_TYPE(RSP, rsp_device) extern offs_t rsp_dasm_one(std::ostream &stream, offs_t pc, uint32_t op); -#endif /* __RSP_H__ */ +#endif // MAME_CPU_RSP_RSP_H diff --git a/src/devices/cpu/rsp/rspcp2.cpp b/src/devices/cpu/rsp/rspcp2.cpp index 1a5e95a980c..4169b563819 100644 --- a/src/devices/cpu/rsp/rspcp2.cpp +++ b/src/devices/cpu/rsp/rspcp2.cpp @@ -10,9 +10,12 @@ ***************************************************************************/ #include "emu.h" -#include "rsp.h" #include "rspcp2.h" +#include "rsp.h" +#include "rspdefs.h" + + #if USE_SIMD #include diff --git a/src/devices/cpu/rsp/rspcp2d.cpp b/src/devices/cpu/rsp/rspcp2d.cpp index c904caf8646..7152d6cbe59 100644 --- a/src/devices/cpu/rsp/rspcp2d.cpp +++ b/src/devices/cpu/rsp/rspcp2d.cpp @@ -10,13 +10,18 @@ ***************************************************************************/ #include "emu.h" +#include "rspcp2d.h" + #include "rsp.h" #include "rspcp2.h" -#include "rspcp2d.h" + #include "cpu/drcfe.h" #include "cpu/drcuml.h" #include "cpu/drcumlsh.h" +#include "rspdefs.h" + + using namespace uml; /*************************************************************************** diff --git a/src/devices/cpu/rsp/rspdefs.h b/src/devices/cpu/rsp/rspdefs.h new file mode 100644 index 00000000000..c061ceaa407 --- /dev/null +++ b/src/devices/cpu/rsp/rspdefs.h @@ -0,0 +1,32 @@ +// license:BSD-3-Clause +// copyright-holders:Ville Linde, Ryan Holtz +#ifndef MAME_CPU_RSP_RSPDEFS_H +#define MAME_CPU_RSP_RSPDEFS_H + +/*************************************************************************** + HELPER MACROS +***************************************************************************/ + +#define REG_LO 32 +#define REG_HI 33 + +#define RSREG ((op >> 21) & 31) +#define RTREG ((op >> 16) & 31) +#define RDREG ((op >> 11) & 31) +#define SHIFT ((op >> 6) & 31) + +#define FRREG ((op >> 21) & 31) +#define FTREG ((op >> 16) & 31) +#define FSREG ((op >> 11) & 31) +#define FDREG ((op >> 6) & 31) + +#define IS_SINGLE(o) (((o) & (1 << 21)) == 0) +#define IS_DOUBLE(o) (((o) & (1 << 21)) != 0) +#define IS_FLOAT(o) (((o) & (1 << 23)) == 0) +#define IS_INTEGRAL(o) (((o) & (1 << 23)) != 0) + +#define SIMMVAL ((int16_t)op) +#define UIMMVAL ((uint16_t)op) +#define LIMMVAL (op & 0x03ffffff) + +#endif // MAME_CPU_RSP_RSPDEFS_H diff --git a/src/devices/cpu/rsp/rspdrc.cpp b/src/devices/cpu/rsp/rspdrc.cpp index c384c94eb54..cdc10338571 100644 --- a/src/devices/cpu/rsp/rspdrc.cpp +++ b/src/devices/cpu/rsp/rspdrc.cpp @@ -19,14 +19,19 @@ ***************************************************************************/ #include "emu.h" -#include "debugger.h" #include "rsp.h" + #include "rspfe.h" #include "rspcp2.h" #include "cpu/drcfe.h" #include "cpu/drcuml.h" #include "cpu/drcumlsh.h" +#include "debugger.h" + +#include "rspdefs.h" + + using namespace uml; CPU_DISASSEMBLE( rsp ); diff --git a/src/devices/cpu/rsp/rspfe.cpp b/src/devices/cpu/rsp/rspfe.cpp index 5bbf6c94c2e..abf0597d006 100644 --- a/src/devices/cpu/rsp/rspfe.cpp +++ b/src/devices/cpu/rsp/rspfe.cpp @@ -10,7 +10,10 @@ #include "emu.h" #include "rspfe.h" + #include "rsp.h" +#include "rspdefs.h" + //************************************************************************** // RSP FRONTEND diff --git a/src/devices/cpu/s2650/s2650.cpp b/src/devices/cpu/s2650/s2650.cpp index 1eff9ebd2ff..6f4dc66c016 100644 --- a/src/devices/cpu/s2650/s2650.cpp +++ b/src/devices/cpu/s2650/s2650.cpp @@ -18,19 +18,18 @@ #include "s2650cpu.h" /* define this to have some interrupt information logged */ -#define VERBOSE 0 - -#define LOG(x) do { if (VERBOSE) logerror x; } while (0) +//#define VERBOSE 1 +#include "logmacro.h" /* define this to expand all EA calculations inline */ #define INLINE_EA 1 -const device_type S2650 = device_creator; +DEFINE_DEVICE_TYPE(S2650, s2650_device, "s2650", "S2650") s2650_device::s2650_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cpu_device(mconfig, S2650, "S2650", tag, owner, clock, "s2650", __FILE__ ) + : cpu_device(mconfig, S2650, tag, owner, clock) , m_program_config("program", ENDIANNESS_LITTLE, 8, 15) , m_io_config("io", ENDIANNESS_LITTLE, 8, 9) , m_flag_handler(*this), m_intack_handler(*this) @@ -197,7 +196,7 @@ inline int s2650_device::check_irq_line() if (!(++addr & PMSK)) addr -= PLEN; m_ea = (m_ea + RDMEM(addr)) & AMSK; } - LOG(("S2650 interrupt to $%04x\n", m_ea)); + LOG("S2650 interrupt to $%04x\n", m_ea); set_sp(get_sp() + 1); set_psu(m_psu | II); m_ras[get_sp()] = m_page + m_iar; diff --git a/src/devices/cpu/s2650/s2650.h b/src/devices/cpu/s2650/s2650.h index ae41f5baa6e..818fd57b300 100644 --- a/src/devices/cpu/s2650/s2650.h +++ b/src/devices/cpu/s2650/s2650.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Juergen Buchmueller -#pragma once +#ifndef MAME_CPU_S2650_S2650_H +#define MAME_CPU_S2650_S2650_H -#ifndef __S2650_H__ -#define __S2650_H__ +#pragma once #define S2650_SENSE_LINE INPUT_LINE_IRQ1 @@ -25,7 +25,7 @@ enum }; -extern const device_type S2650; +DECLARE_DEVICE_TYPE(S2650, s2650_device) #define MCFG_S2650_FLAG_HANDLER(_devcb) \ @@ -41,8 +41,8 @@ public: s2650_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // static configuration helpers - template static devcb_base &set_flag_handler(device_t &device, _Object object) { return downcast(device).m_flag_handler.set_callback(object); } - template static devcb_base &set_intack_handler(device_t &device, _Object object) { return downcast(device).m_intack_handler.set_callback(object); } + template static devcb_base &set_flag_handler(device_t &device, Object &&cb) { return downcast(device).m_flag_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_intack_handler(device_t &device, Object &&cb) { return downcast(device).m_intack_handler.set_callback(std::forward(cb)); } protected: // device-level overrides @@ -113,4 +113,4 @@ private: }; -#endif /* __S2650_H__ */ +#endif // MAME_CPU_S2650_S2650_H diff --git a/src/devices/cpu/saturn/satops.hxx b/src/devices/cpu/saturn/satops.hxx index 3d279da8e2f..28e94ae8dfa 100644 --- a/src/devices/cpu/saturn/satops.hxx +++ b/src/devices/cpu/saturn/satops.hxx @@ -3,7 +3,7 @@ #define IRQ_ADDRESS 0xf #define saturn_assert(x) \ - do { if (!(x)) logerror("SATURN '%s' assertion failed: %s at %s:%i, pc=%05x\n", tag(), #x, __FILE__, __LINE__, m_pc); } while (0) + do { if (!(x)) logerror("SATURN assertion failed: %s at %s:%i, pc=%05x\n", #x, __FILE__, __LINE__, m_pc); } while (0) int saturn_device::READ_OP() { @@ -202,24 +202,24 @@ void saturn_device::saturn_push(uint32_t adr) void saturn_device::saturn_interrupt_on() { - LOG(( "SATURN '%s' at %05x: INTON\n", tag(), m_pc-4 )); + LOG("SATURN at %05x: INTON\n", m_pc-4); m_irq_enable=1; if (m_irq_state) { - LOG(( "SATURN '%s' set_irq_line(ASSERT)\n", tag())); + LOG("SATURN set_irq_line(ASSERT)\n"); m_pending_irq=1; } } void saturn_device::saturn_interrupt_off() { - LOG(( "SATURN '%s' at %05x: INTOFF\n", tag(), m_pc-4 )); + LOG("SATURN at %05x: INTOFF\n", m_pc-4); m_irq_enable=0; } void saturn_device::saturn_reset_interrupt() { - LOG(( "SATURN '%s' at %05x: RSI\n", tag(), m_pc-5 )); + LOG("SATURN at %05x: RSI\n", m_pc-5); m_rsi_func(ASSERT_LINE); } @@ -250,7 +250,7 @@ void saturn_device::saturn_shutdown() { m_sleeping=1; m_irq_enable=1; - LOG(( "SATURN '%s' at %05x: SHUTDN\n", tag(), m_pc-3 )); + LOG("SATURN at %05x: SHUTDN\n", m_pc-3); } void saturn_device::saturn_bus_command_b() @@ -473,7 +473,7 @@ void saturn_device::saturn_return_carry_clear() void saturn_device::saturn_return_interrupt() { - LOG(( "SATURN '%s' at %05x: RTI\n", tag(), m_pc-2 )); + LOG("SATURN at %05x: RTI\n", tag(), m_pc-2); m_in_irq=0; /* set to 1 when an IRQ is taken */ m_pc=saturn_pop(); // m_icount-=10; diff --git a/src/devices/cpu/saturn/saturn.cpp b/src/devices/cpu/saturn/saturn.cpp index c77006fd97d..a3d7b912f46 100644 --- a/src/devices/cpu/saturn/saturn.cpp +++ b/src/devices/cpu/saturn/saturn.cpp @@ -10,9 +10,10 @@ *****************************************************************************/ #include "emu.h" +#include "saturn.h" + #include "debugger.h" -#include "saturn.h" #define R0 0 #define R1 1 @@ -26,9 +27,8 @@ #define I 9 // invalid -#define VERBOSE 0 - -#define LOG(x) do { if (VERBOSE) logerror x; } while (0) +//#define VERBOSE 1 +#include "logmacro.h" // Hardware status bits @@ -39,11 +39,11 @@ -const device_type SATURN = device_creator; +DEFINE_DEVICE_TYPE(SATURN, saturn_device, "saturn_cpu", "HP Saturn") saturn_device::saturn_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cpu_device(mconfig, SATURN, "HP Saturn", tag, owner, clock, "saturn_cpu", __FILE__) + : cpu_device(mconfig, SATURN, tag, owner, clock) , m_program_config("program", ENDIANNESS_LITTLE, 8, 20, 0) , m_out_func(*this) , m_in_func(*this) @@ -326,7 +326,7 @@ void saturn_device::saturn_take_irq() saturn_push(m_pc); m_pc=IRQ_ADDRESS; - LOG(("Saturn '%s' takes IRQ ($%04x)\n", tag(), m_pc)); + LOG("SATURN takes IRQ ($%04x)\n", m_pc); standard_irq_callback(SATURN_IRQ_LINE); } @@ -367,7 +367,7 @@ void saturn_device::execute_set_input(int inputnum, int state) m_nmi_state = state; if ( state != CLEAR_LINE ) { - LOG(( "SATURN '%s' set_nmi_line(ASSERT)\n", tag())); + LOG("SATURN set_nmi_line(ASSERT)\n"); m_pending_irq = 1; } break; @@ -377,7 +377,7 @@ void saturn_device::execute_set_input(int inputnum, int state) m_irq_state = state; if ( state != CLEAR_LINE && m_irq_enable ) { - LOG(( "SATURN '%s' set_irq_line(ASSERT)\n", tag())); + LOG("SATURN set_irq_line(ASSERT)\n"); m_pending_irq = 1; } break; @@ -385,7 +385,7 @@ void saturn_device::execute_set_input(int inputnum, int state) case SATURN_WAKEUP_LINE: if (m_sleeping && state==1) { - LOG(( "SATURN '%s' set_wakeup_line(ASSERT)\n", tag())); + LOG("SATURN set_wakeup_line(ASSERT)\n"); standard_irq_callback(SATURN_WAKEUP_LINE); m_sleeping = 0; } diff --git a/src/devices/cpu/saturn/saturn.h b/src/devices/cpu/saturn/saturn.h index df7c5f80df8..a8a221995b6 100644 --- a/src/devices/cpu/saturn/saturn.h +++ b/src/devices/cpu/saturn/saturn.h @@ -27,10 +27,10 @@ HP38G 09/??/95 1LT8 Yorke /* 4 bit processor 20 address lines */ -#pragma once +#ifndef MAME_CPU_SATURN_SATURN_H +#define MAME_CPU_SATURN_SATURN_H -#ifndef __SATURN_H__ -#define _SATURN_H +#pragma once #define SATURN_INT_NONE 0 @@ -79,14 +79,14 @@ public: saturn_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // static configuration helpers - template static devcb_base &set_out_func(device_t &device, _Object object) { return downcast(device).m_out_func.set_callback(object); } - template static devcb_base &set_in_func(device_t &device, _Object object) { return downcast(device).m_in_func.set_callback(object); } - template static devcb_base &set_reset_func(device_t &device, _Object object) { return downcast(device).m_reset_func.set_callback(object); } - template static devcb_base &set_config_func(device_t &device, _Object object) { return downcast(device).m_config_func.set_callback(object); } - template static devcb_base &set_unconfig_func(device_t &device, _Object object) { return downcast(device).m_unconfig_func.set_callback(object); } - template static devcb_base &set_id_func(device_t &device, _Object object) { return downcast(device).m_id_func.set_callback(object); } - template static devcb_base &set_crc_func(device_t &device, _Object object) { return downcast(device).m_crc_func.set_callback(object); } - template static devcb_base &set_rsi_func(device_t &device, _Object object) { return downcast(device).m_rsi_func.set_callback(object); } + template static devcb_base &set_out_func(device_t &device, Object &&cb) { return downcast(device).m_out_func.set_callback(std::forward(cb)); } + template static devcb_base &set_in_func(device_t &device, Object &&cb) { return downcast(device).m_in_func.set_callback(std::forward(cb)); } + template static devcb_base &set_reset_func(device_t &device, Object &&cb) { return downcast(device).m_reset_func.set_callback(std::forward(cb)); } + template static devcb_base &set_config_func(device_t &device, Object &&cb) { return downcast(device).m_config_func.set_callback(std::forward(cb)); } + template static devcb_base &set_unconfig_func(device_t &device, Object &&cb) { return downcast(device).m_unconfig_func.set_callback(std::forward(cb)); } + template static devcb_base &set_id_func(device_t &device, Object &&cb) { return downcast(device).m_id_func.set_callback(std::forward(cb)); } + template static devcb_base &set_crc_func(device_t &device, Object &&cb) { return downcast(device).m_crc_func.set_callback(std::forward(cb)); } + template static devcb_base &set_rsi_func(device_t &device, Object &&cb) { return downcast(device).m_rsi_func.set_callback(std::forward(cb)); } protected: // device-level overrides @@ -134,7 +134,7 @@ typedef uint8_t Saturn64[16]; uint8_t m_p; // 4 bit pointer - uint16_t m_out; // 12 bit (packed) + uint16_t m_out; // 12 bit (packed) uint8_t m_carry, m_decimal; uint16_t m_st; // status 16 bit @@ -289,7 +289,6 @@ typedef uint8_t Saturn64[16]; void saturn_instruction(); }; -extern const device_type SATURN; - +DECLARE_DEVICE_TYPE(SATURN, saturn_device) -#endif /* __SATURN_H__ */ +#endif // MAME_CPU_SATURN_SATURN_H diff --git a/src/devices/cpu/sc61860/sc61860.cpp b/src/devices/cpu/sc61860/sc61860.cpp index 3d095eba8e0..4c10bdb288c 100644 --- a/src/devices/cpu/sc61860/sc61860.cpp +++ b/src/devices/cpu/sc61860/sc61860.cpp @@ -18,10 +18,10 @@ *****************************************************************************/ #include "emu.h" -#include "debugger.h" - #include "sc61860.h" +#include "debugger.h" + #define I 0 #define J 1 @@ -41,16 +41,15 @@ #define C 95 -#define VERBOSE 0 - -#define LOG(x) do { if (VERBOSE) logerror x; } while (0) +//#define VERBOSE 1 +#include "logmacro.h" -const device_type SC61860 = device_creator; +DEFINE_DEVICE_TYPE(SC61860, sc61860_device, "sc61860", "SC61860") sc61860_device::sc61860_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cpu_device(mconfig, SC61860, "SC61860", tag, owner, clock, "sc61860", __FILE__) + : cpu_device(mconfig, SC61860, tag, owner, clock) , m_program_config("program", ENDIANNESS_BIG, 8, 16, 0) , m_reset(*this) , m_brk(*this) diff --git a/src/devices/cpu/sc61860/sc61860.h b/src/devices/cpu/sc61860/sc61860.h index e3da855936a..90385223cd0 100644 --- a/src/devices/cpu/sc61860/sc61860.h +++ b/src/devices/cpu/sc61860/sc61860.h @@ -10,10 +10,10 @@ * *****************************************************************************/ -#pragma once +#ifndef MAME_CPU_SC61860_SC61860_H +#define MAME_CPU_SC61860_SC61860_H -#ifndef __SC61860_H__ -#define __SC61860_H__ +#pragma once /* official names seam to be @@ -75,14 +75,14 @@ public: sc61860_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // static configuration helpers - template static devcb_base &set_reset_cb(device_t &device, _Object object) { return downcast(device).m_reset.set_callback(object); } - template static devcb_base &set_brk_cb(device_t &device, _Object object) { return downcast(device).m_brk.set_callback(object); } - template static devcb_base &set_x_cb(device_t &device, _Object object) { return downcast(device).m_x.set_callback(object); } - template static devcb_base &set_ina_cb(device_t &device, _Object object) { return downcast(device).m_ina.set_callback(object); } - template static devcb_base &set_outa_cb(device_t &device, _Object object) { return downcast(device).m_outa.set_callback(object); } - template static devcb_base &set_inb_cb(device_t &device, _Object object) { return downcast(device).m_inb.set_callback(object); } - template static devcb_base &set_outb_cb(device_t &device, _Object object) { return downcast(device).m_outb.set_callback(object); } - template static devcb_base &set_outc_cb(device_t &device, _Object object) { return downcast(device).m_outc.set_callback(object); } + template static devcb_base &set_reset_cb(device_t &device, Object &&cb) { return downcast(device).m_reset.set_callback(std::forward(cb)); } + template static devcb_base &set_brk_cb(device_t &device, Object &&cb) { return downcast(device).m_brk.set_callback(std::forward(cb)); } + template static devcb_base &set_x_cb(device_t &device, Object &&cb) { return downcast(device).m_x.set_callback(std::forward(cb)); } + template static devcb_base &set_ina_cb(device_t &device, Object &&cb) { return downcast(device).m_ina.set_callback(std::forward(cb)); } + template static devcb_base &set_outa_cb(device_t &device, Object &&cb) { return downcast(device).m_outa.set_callback(std::forward(cb)); } + template static devcb_base &set_inb_cb(device_t &device, Object &&cb) { return downcast(device).m_inb.set_callback(std::forward(cb)); } + template static devcb_base &set_outb_cb(device_t &device, Object &&cb) { return downcast(device).m_outb.set_callback(std::forward(cb)); } + template static devcb_base &set_outc_cb(device_t &device, Object &&cb) { return downcast(device).m_outc.set_callback(std::forward(cb)); } /* this is though for power on/off of the sharps */ uint8_t *internal_ram(); @@ -230,7 +230,6 @@ private: }; -extern const device_type SC61860; - +DECLARE_DEVICE_TYPE(SC61860, sc61860_device) -#endif /* __SC61860_H__ */ +#endif // MAME_CPU_SC61860_SC61860_H diff --git a/src/devices/cpu/scmp/scmp.cpp b/src/devices/cpu/scmp/scmp.cpp index f04d5e01f87..6cb366ae97f 100644 --- a/src/devices/cpu/scmp/scmp.cpp +++ b/src/devices/cpu/scmp/scmp.cpp @@ -9,35 +9,29 @@ *****************************************************************************/ #include "emu.h" -#include "debugger.h" #include "scmp.h" -#define VERBOSE 0 +#include "debugger.h" -#define LOG(x) do { if (VERBOSE) logerror x; } while (0) +//#define VERBOSE 1 +#include "logmacro.h" -const device_type SCMP = device_creator; -const device_type INS8060 = device_creator; +DEFINE_DEVICE_TYPE(SCMP, scmp_device, "ins8050", "INS 8050 SC/MP") +DEFINE_DEVICE_TYPE(INS8060, ins8060_device, "ins8060", "INS 8060 SC/MP II") scmp_device::scmp_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cpu_device(mconfig, SCMP, "INS 8050 SC/MP", tag, owner, clock, "ins8050", __FILE__) - , m_program_config("program", ENDIANNESS_LITTLE, 8, 16, 0), m_AC(0), m_ER(0), m_SR(0), m_program(nullptr), m_direct(nullptr), m_icount(0) - , m_flag_out_func(*this) - , m_sout_func(*this) - , m_sin_func(*this) - , m_sensea_func(*this) - , m_senseb_func(*this) - , m_halt_func(*this) + : scmp_device(mconfig, SCMP, tag, owner, clock) { } -scmp_device::scmp_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : cpu_device(mconfig, type, name, tag, owner, clock, shortname, source) - , m_program_config("program", ENDIANNESS_LITTLE, 8, 16, 0), m_AC(0), m_ER(0), m_SR(0), m_program(nullptr), m_direct(nullptr), m_icount(0) - , m_flag_out_func(*this) +scmp_device::scmp_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : cpu_device(mconfig, type, tag, owner, clock) + , m_program_config("program", ENDIANNESS_LITTLE, 8, 16, 0) + , m_AC(0), m_ER(0), m_SR(0), m_program(nullptr), m_direct(nullptr), m_icount(0) + , m_flag_out_func(*this) , m_sout_func(*this) , m_sin_func(*this) , m_sensea_func(*this) @@ -48,7 +42,7 @@ scmp_device::scmp_device(const machine_config &mconfig, device_type type, const ins8060_device::ins8060_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : scmp_device(mconfig, INS8060, "INS 8060 SC/MP II", tag, owner, clock, "ins8060", __FILE__) + : scmp_device(mconfig, INS8060, tag, owner, clock) { } @@ -91,20 +85,17 @@ void scmp_device::WM(uint32_t a, uint8_t v) void scmp_device::illegal(uint8_t opcode) { -#if VERBOSE - uint16_t pc = m_PC.w.l; - LOG(("SC/MP illegal instruction %04X $%02X\n", pc-1, opcode)); -#endif + uint16_t const pc = m_PC.w.l; + LOG("SC/MP illegal instruction %04X $%02X\n", pc-1, opcode); } PAIR *scmp_device::GET_PTR_REG(int num) { switch(num) { - case 1: return &m_P1; - case 2: return &m_P2; - case 3: return &m_P3; - default : - return &m_PC; + case 1: return &m_P1; + case 2: return &m_P2; + case 3: return &m_P3; + default: return &m_PC; } } diff --git a/src/devices/cpu/scmp/scmp.h b/src/devices/cpu/scmp/scmp.h index be53c83e16c..fcfc3bb01cc 100644 --- a/src/devices/cpu/scmp/scmp.h +++ b/src/devices/cpu/scmp/scmp.h @@ -1,17 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Miodrag Milanovic -#ifndef __SCMP_H__ -#define __SCMP_H__ +#ifndef MAME_CPU_SCMP_SCMP_H +#define MAME_CPU_SCMP_SCMP_H - -/*************************************************************************** - CONSTANTS -***************************************************************************/ - -enum -{ - SCMP_PC, SCMP_P1, SCMP_P2, SCMP_P3, SCMP_AC, SCMP_ER, SCMP_SR -}; +#pragma once #define MCFG_SCMP_CONFIG(_flag_out_devcb, _sout_devcb, _sin_devcb, _sensea_devcb, _senseb_devcb, _halt_devcb) \ @@ -28,17 +20,23 @@ class scmp_device : public cpu_device public: // construction/destruction scmp_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - scmp_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); // static configuration helpers - template static devcb_base &set_flag_out_cb(device_t &device, _Object object) { return downcast(device).m_flag_out_func.set_callback(object); } - template static devcb_base &set_sout_cb(device_t &device, _Object object) { return downcast(device).m_sout_func.set_callback(object); } - template static devcb_base &set_sin_cb(device_t &device, _Object object) { return downcast(device).m_sin_func.set_callback(object); } - template static devcb_base &set_sensea_cb(device_t &device, _Object object) { return downcast(device).m_sensea_func.set_callback(object); } - template static devcb_base &set_senseb_cb(device_t &device, _Object object) { return downcast(device).m_senseb_func.set_callback(object); } - template static devcb_base &set_halt_cb(device_t &device, _Object object) { return downcast(device).m_halt_func.set_callback(object); } + template static devcb_base &set_flag_out_cb(device_t &device, Object &&cb) { return downcast(device).m_flag_out_func.set_callback(std::forward(cb)); } + template static devcb_base &set_sout_cb(device_t &device, Object &&cb) { return downcast(device).m_sout_func.set_callback(std::forward(cb)); } + template static devcb_base &set_sin_cb(device_t &device, Object &&cb) { return downcast(device).m_sin_func.set_callback(std::forward(cb)); } + template static devcb_base &set_sensea_cb(device_t &device, Object &&cb) { return downcast(device).m_sensea_func.set_callback(std::forward(cb)); } + template static devcb_base &set_senseb_cb(device_t &device, Object &&cb) { return downcast(device).m_senseb_func.set_callback(std::forward(cb)); } + template static devcb_base &set_halt_cb(device_t &device, Object &&cb) { return downcast(device).m_halt_func.set_callback(std::forward(cb)); } protected: + enum + { + SCMP_PC, SCMP_P1, SCMP_P2, SCMP_P3, SCMP_AC, SCMP_ER, SCMP_SR + }; + + scmp_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -50,7 +48,7 @@ protected: virtual void execute_run() override; // device_memory_interface overrides - virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_0) const override { return (spacenum == AS_PROGRAM) ? &m_program_config : nullptr; } + virtual const address_space_config *memory_space_config(address_spacenum spacenum) const override { return (spacenum == AS_PROGRAM) ? &m_program_config : nullptr; } // device_state_interface overrides virtual void state_string_export(const device_state_entry &entry, std::string &str) const override; @@ -94,7 +92,6 @@ private: inline uint16_t GET_ADDR(uint8_t code); void execute_one(int opcode); void take_interrupt(); - }; @@ -110,8 +107,7 @@ protected: }; -extern const device_type SCMP; -extern const device_type INS8060; - +DECLARE_DEVICE_TYPE(SCMP, scmp_device) +DECLARE_DEVICE_TYPE(INS8060, ins8060_device) -#endif +#endif // MAME_CPU_SCMP_SCMP_H diff --git a/src/devices/cpu/score/score.cpp b/src/devices/cpu/score/score.cpp index b24c7b2f941..e8f049fb53f 100644 --- a/src/devices/cpu/score/score.cpp +++ b/src/devices/cpu/score/score.cpp @@ -16,7 +16,7 @@ // CONSTANTS //************************************************************************** -const device_type SCORE7 = device_creator; +DEFINE_DEVICE_TYPE(SCORE7, score7_cpu_device, "score7", "S+core 7") //************************************************************************** @@ -53,10 +53,10 @@ const score7_cpu_device::op_handler score7_cpu_device::s_opcode16_table[8] = //------------------------------------------------- score7_cpu_device::score7_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cpu_device(mconfig, SCORE7, "S+core 7", tag, owner, clock, "score7", __FILE__), - m_program_config("program", ENDIANNESS_LITTLE, 32, 32, 0), - m_pc(0), - m_ppc(0) + : cpu_device(mconfig, SCORE7, tag, owner, clock) + , m_program_config("program", ENDIANNESS_LITTLE, 32, 32, 0) + , m_pc(0) + , m_ppc(0) { memset(m_gpr, 0x00, sizeof(m_gpr)); memset(m_cr, 0x00, sizeof(m_cr)); diff --git a/src/devices/cpu/score/score.h b/src/devices/cpu/score/score.h index 8fb1002095d..797a2bedf3d 100644 --- a/src/devices/cpu/score/score.h +++ b/src/devices/cpu/score/score.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_CPU_SCORE_SCORE_H +#define MAME_CPU_SCORE_SCORE_H -#ifndef __SCORE_H__ -#define __SCORE_H__ +#pragma once //************************************************************************** @@ -33,7 +33,8 @@ class score7_cpu_device : public cpu_device { public: // construction/destruction - score7_cpu_device(const machine_config &mconfig, const char *_tag, device_t *_owner, uint32_t _clock); + score7_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + protected: // device-level overrides virtual void device_start() override; @@ -110,7 +111,6 @@ private: void op_iform1a(); void op_iform1b(); -private: address_space_config m_program_config; address_space * m_program; direct_read_data * m_direct; @@ -145,6 +145,6 @@ private: static const char *const m_cr_op[2]; }; -extern const device_type SCORE7; +DECLARE_DEVICE_TYPE(SCORE7, score7_cpu_device) -#endif /* __SCORE_H__ */ +#endif // MAME_CPU_SCORE_SCORE_H diff --git a/src/devices/cpu/scudsp/scudsp.cpp b/src/devices/cpu/scudsp/scudsp.cpp index 2da97c8cc7f..8898dd5fa34 100644 --- a/src/devices/cpu/scudsp/scudsp.cpp +++ b/src/devices/cpu/scudsp/scudsp.cpp @@ -91,11 +91,12 @@ *****************************************************************************/ #include "emu.h" -#include "debugger.h" #include "scudsp.h" +#include "debugger.h" + -const device_type SCUDSP = device_creator; +DEFINE_DEVICE_TYPE(SCUDSP, scudsp_cpu_device, "scudsp", "Sega SCUDSP") /* FLAGS */ #define PRF m_flags & 0x04000000 @@ -1001,7 +1002,7 @@ void scudsp_cpu_device::execute_set_input(int irqline, int state) } scudsp_cpu_device::scudsp_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cpu_device(mconfig, SCUDSP, "SCUDSP", tag, owner, clock, "scudsp", __FILE__) + : cpu_device(mconfig, SCUDSP, tag, owner, clock) , m_out_irq_cb(*this) , m_in_dma_cb(*this) , m_out_dma_cb(*this) diff --git a/src/devices/cpu/scudsp/scudsp.h b/src/devices/cpu/scudsp/scudsp.h index b30667dd319..6012748257c 100644 --- a/src/devices/cpu/scudsp/scudsp.h +++ b/src/devices/cpu/scudsp/scudsp.h @@ -6,10 +6,10 @@ * *****************************************************************************/ -#pragma once +#ifndef MAME_CPU_SCUDSP_SCUDSP_H +#define MAME_CPU_SCUDSP_SCUDSP_H -#ifndef __SCUDSP_H__ -#define __SCUDSP_H__ +#pragma once enum { @@ -48,25 +48,15 @@ enum #define SCUDSP_RESET INPUT_LINE_RESET /* Non-Maskable */ -union SCUDSPREG32 { - int32_t si; - uint32_t ui; -}; - -union SCUDSPREG16 { - int16_t si; - uint16_t ui; -}; - -class scudsp_cpu_device : public cpu_device +class scudsp_cpu_device : public cpu_device { public: // construction/destruction scudsp_cpu_device(const machine_config &mconfig, const char *_tag, device_t *_owner, uint32_t _clock); - template static devcb_base &set_out_irq_callback(device_t &device, _Object object) { return downcast(device).m_out_irq_cb.set_callback(object); } - template static devcb_base &set_in_dma_callback(device_t &device, _Object object) { return downcast(device).m_in_dma_cb.set_callback(object); } - template static devcb_base &set_out_dma_callback(device_t &device, _Object object) { return downcast(device).m_out_dma_cb.set_callback(object); } + template static devcb_base &set_out_irq_callback(device_t &device, Object &&cb) { return downcast(device).m_out_irq_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_in_dma_callback(device_t &device, Object &&cb) { return downcast(device).m_in_dma_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_dma_callback(device_t &device, Object &&cb) { return downcast(device).m_out_dma_cb.set_callback(std::forward(cb)); } /* port 0 */ DECLARE_READ32_MEMBER( program_control_r ); @@ -78,7 +68,6 @@ public: /* port 3 */ DECLARE_READ32_MEMBER( ram_address_r ); DECLARE_WRITE32_MEMBER( ram_address_w ); -// virtual DECLARE_ADDRESS_MAP(map, 32) = 0; protected: // device-level overrides @@ -108,6 +97,16 @@ protected: devcb_write16 m_out_dma_cb; private: + union SCUDSPREG32 { + int32_t si; + uint32_t ui; + }; + + union SCUDSPREG16 { + int16_t si; + uint16_t ui; + }; + address_space_config m_program_config; address_space_config m_data_config; @@ -156,9 +155,9 @@ private: }; -extern const device_type SCUDSP; +DECLARE_DEVICE_TYPE(SCUDSP, scudsp_cpu_device) CPU_DISASSEMBLE( scudsp ); -#endif /* __SCUDSP_H__ */ +#endif // MAME_CPU_SCUDSP_SCUDSP_H diff --git a/src/devices/cpu/se3208/se3208.cpp b/src/devices/cpu/se3208/se3208.cpp index 29d04d867e5..13b0ec92f22 100644 --- a/src/devices/cpu/se3208/se3208.cpp +++ b/src/devices/cpu/se3208/se3208.cpp @@ -1,9 +1,11 @@ // license:BSD-3-Clause // copyright-holders:ElSemi #include "emu.h" -#include "debugger.h" #include "se3208.h" +#include "debugger.h" + + /* SE3208 CPU Emulator by ElSemi @@ -42,12 +44,13 @@ // are such accesses simply illegal, be handled in a different way, or simply not be happening in the first place? #define ALLOW_UNALIGNED_DWORD_ACCESS 0 -const device_type SE3208 = device_creator; +DEFINE_DEVICE_TYPE(SE3208, se3208_device, "se3208", "SE3208") se3208_device::se3208_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cpu_device(mconfig, SE3208, "SE3208", tag, owner, clock, "se3208", __FILE__) - , m_program_config("program", ENDIANNESS_LITTLE, 32, 32, 0), m_PC(0), m_SR(0), m_SP(0), m_ER(0), m_PPC(0), m_program(nullptr), m_direct(nullptr), m_IRQ(0), m_NMI(0), m_icount(0) + : cpu_device(mconfig, SE3208, tag, owner, clock) + , m_program_config("program", ENDIANNESS_LITTLE, 32, 32, 0) + , m_PC(0), m_SR(0), m_SP(0), m_ER(0), m_PPC(0), m_program(nullptr), m_direct(nullptr), m_IRQ(0), m_NMI(0), m_icount(0) { } @@ -1438,7 +1441,7 @@ INST(MVFC) } -se3208_device::_OP se3208_device::DecodeOp(uint16_t Opcode) +se3208_device::OP se3208_device::DecodeOp(uint16_t Opcode) { switch(EXTRACT(Opcode,14,15)) { diff --git a/src/devices/cpu/se3208/se3208.h b/src/devices/cpu/se3208/se3208.h index 7f005bec2f3..bb00f3f06ad 100644 --- a/src/devices/cpu/se3208/se3208.h +++ b/src/devices/cpu/se3208/se3208.h @@ -1,5 +1,9 @@ // license:BSD-3-Clause // copyright-holders:ElSemi +#ifndef MAME_CPU_SE3208_SE3208_H +#define MAME_CPU_SE3208_SE3208_H + +#pragma once enum { @@ -80,8 +84,8 @@ private: inline void PushVal(uint32_t Val); inline uint32_t PopVal(); - typedef void (se3208_device::*_OP)(uint16_t Opcode); - _OP OpTable[0x10000]; + typedef void (se3208_device::*OP)(uint16_t Opcode); + OP OpTable[0x10000]; void INVALIDOP(uint16_t Opcode); void LDB(uint16_t Opcode); @@ -159,11 +163,13 @@ private: void MVFC(uint16_t Opcode); void BuildTable(void); - _OP DecodeOp(uint16_t Opcode); + OP DecodeOp(uint16_t Opcode); void SE3208_NMI(); void SE3208_Interrupt(); }; -extern const device_type SE3208; +DECLARE_DEVICE_TYPE(SE3208, se3208_device) + +#endif // MAME_CPU_SE3208_SE3208_H diff --git a/src/devices/cpu/sh2/sh2.cpp b/src/devices/cpu/sh2/sh2.cpp index fb9e564fe73..1877196a013 100644 --- a/src/devices/cpu/sh2/sh2.cpp +++ b/src/devices/cpu/sh2/sh2.cpp @@ -93,10 +93,14 @@ *****************************************************************************/ #include "emu.h" -#include "debugger.h" #include "sh2.h" #include "sh2comn.h" +#include "debugger.h" + +//#define VERBOSE 1 +#include "logmacro.h" + /*************************************************************************** DEBUGGING @@ -105,8 +109,6 @@ #define DISABLE_FAST_REGISTERS (0) // set to 1 to turn off usage of register caching #define SINGLE_INSTRUCTION_MODE (0) -#define VERBOSE 0 -#define LOG(x) do { if (VERBOSE) logerror x; } while (0) /*************************************************************************** CONSTANTS @@ -122,9 +124,9 @@ #define COMPILE_MAX_SEQUENCE 64 -const device_type SH1 = device_creator; -const device_type SH2 = device_creator; -const device_type SH2A = device_creator; +DEFINE_DEVICE_TYPE(SH1, sh1_device, "sh1", "SH-1") +DEFINE_DEVICE_TYPE(SH2, sh2_device, "sh2", "SH-2") +DEFINE_DEVICE_TYPE(SH2A, sh2a_device, "sh21", "SH-2A") /*------------------------------------------------- sh2_internal_a5 - read handler for @@ -170,30 +172,8 @@ static ADDRESS_MAP_START( sh7032_map, AS_PROGRAM, 32, sh1_device ) ADDRESS_MAP_END sh2_device::sh2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cpu_device(mconfig, SH2, "SH-2", tag, owner, clock, "sh2", __FILE__) - , m_program_config("program", ENDIANNESS_BIG, 32, 32, 0, ADDRESS_MAP_NAME(sh7604_map)) - , m_decrypted_program_config("decrypted_opcodes", ENDIANNESS_BIG, 32, 32, 0) - , m_is_slave(0) - , m_cpu_type(CPU_TYPE_SH2) - , m_cache(CACHE_SIZE + sizeof(internal_sh2_state)) - , m_drcuml(nullptr) -// , m_drcuml(*this, m_cache, 0, 1, 32, 1) - , m_drcfe(nullptr) - , m_drcoptions(0) - , m_sh2_state(nullptr) - , m_entry(nullptr) - , m_read8(nullptr) - , m_write8(nullptr) - , m_read16(nullptr) - , m_write16(nullptr) - , m_read32(nullptr) - , m_write32(nullptr) - , m_interrupt(nullptr) - , m_nocode(nullptr) - , m_out_of_cycles(nullptr) - , m_debugger_temp(0) + : sh2_device(mconfig, SH2, tag, owner, clock, CPU_TYPE_SH2, ADDRESS_MAP_NAME(sh7604_map), 32) { - m_isdrc = allow_drc(); } @@ -202,8 +182,8 @@ void sh2_device::device_stop() } -sh2_device::sh2_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source, int cpu_type, address_map_constructor internal_map, int addrlines ) - : cpu_device(mconfig, type, name, tag, owner, clock, shortname, source) +sh2_device::sh2_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int cpu_type, address_map_constructor internal_map, int addrlines) + : cpu_device(mconfig, type, tag, owner, clock) , m_program_config("program", ENDIANNESS_BIG, 32, addrlines, 0, internal_map) , m_decrypted_program_config("decrypted_opcodes", ENDIANNESS_BIG, 32, addrlines, 0) , m_is_slave(0) @@ -224,17 +204,18 @@ sh2_device::sh2_device(const machine_config &mconfig, device_type type, const ch , m_interrupt(nullptr) , m_nocode(nullptr) , m_out_of_cycles(nullptr) + , m_debugger_temp(0) { m_isdrc = allow_drc(); } sh2a_device::sh2a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : sh2_device(mconfig, SH2A, "SH-2A", tag, owner, clock, "sh2a", __FILE__, CPU_TYPE_SH2, ADDRESS_MAP_NAME(sh7021_map), 28) + : sh2_device(mconfig, SH2A, tag, owner, clock, CPU_TYPE_SH2, ADDRESS_MAP_NAME(sh7021_map), 28) { } sh1_device::sh1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : sh2_device(mconfig, SH1, "SH-1", tag, owner, clock, "sh1", __FILE__, CPU_TYPE_SH1, ADDRESS_MAP_NAME(sh7032_map), 28) + : sh2_device(mconfig, SH1, tag, owner, clock, CPU_TYPE_SH1, ADDRESS_MAP_NAME(sh7032_map), 28) { } @@ -258,10 +239,6 @@ offs_t sh2_device::disasm_disassemble(std::ostream &stream, offs_t pc, const uin /* speed up delay loops, bail out of tight loops */ #define BUSY_LOOP_HACKS 1 -#define VERBOSE 0 - -#define LOG(x) do { if (VERBOSE) logerror x; } while (0) - uint8_t sh2_device::RB(offs_t A) { if((A & 0xf0000000) == 0 || (A & 0xf0000000) == 0x20000000) @@ -2609,13 +2586,13 @@ void sh2_device::execute_set_input(int irqline, int state) return; m_nmi_line_state = state; - if( state == CLEAR_LINE ) + if (state == CLEAR_LINE) { - LOG(("SH-2 '%s' cleared nmi\n", tag())); + LOG("SH-2 cleared nmi\n"); } else { - LOG(("SH-2 '%s' assert nmi\n", tag())); + LOG("SH-2 asserted nmi\n"); sh2_exception("Set IRQ line", 16); @@ -2629,14 +2606,14 @@ void sh2_device::execute_set_input(int irqline, int state) return; m_irq_line_state[irqline] = state; - if( state == CLEAR_LINE ) + if (state == CLEAR_LINE) { - LOG(("SH-2 '%s' cleared irq #%d\n", tag(), irqline)); + LOG("SH-2 cleared irq #%d\n", irqline); m_sh2_state->pending_irq &= ~(1 << irqline); } else { - LOG(("SH-2 '%s' assert irq #%d\n", tag(), irqline)); + LOG("SH-2 asserted irq #%d\n", irqline); m_sh2_state->pending_irq |= 1 << irqline; if (m_isdrc) { @@ -2651,5 +2628,74 @@ void sh2_device::execute_set_input(int irqline, int state) } } -#include "sh2comn.cpp" +void sh2_device::sh2_exception(const char *message, int irqline) +{ + int vector; + + if (irqline != 16) + { + if (irqline <= ((m_sh2_state->sr >> 4) & 15)) /* If the cpu forbids this interrupt */ + return; + + // if this is an sh2 internal irq, use its vector + if (m_sh2_state->internal_irq_level == irqline) + { + vector = m_internal_irq_vector; + /* avoid spurious irqs with this (TODO: needs a better fix) */ + m_sh2_state->internal_irq_level = -1; + LOG("SH-2 exception #%d (internal vector: $%x) after [%s]\n", irqline, vector, message); + } + else + { + if(m_m[0x38] & 0x00010000) + { + vector = standard_irq_callback(irqline); + LOG("SH-2 exception #%d (external vector: $%x) after [%s]\n", irqline, vector, message); + } + else + { + standard_irq_callback(irqline); + vector = 64 + irqline/2; + LOG("SH-2 exception #%d (autovector: $%x) after [%s]\n", irqline, vector, message); + } + } + } + else + { + vector = 11; + LOG("SH-2 nmi exception (autovector: $%x) after [%s]\n", vector, message); + } + + if (m_isdrc) + { + m_sh2_state->evec = RL( m_sh2_state->vbr + vector * 4 ); + m_sh2_state->evec &= AM; + m_sh2_state->irqsr = m_sh2_state->sr; + + /* set I flags in SR */ + if (irqline > SH2_INT_15) + m_sh2_state->sr = m_sh2_state->sr | I; + else + m_sh2_state->sr = (m_sh2_state->sr & ~I) | (irqline << 4); + +// printf("sh2_exception [%s] irqline %x evec %x save SR %x new SR %x\n", message, irqline, m_sh2_state->evec, m_sh2_state->irqsr, m_sh2_state->sr); + } else { + m_sh2_state->r[15] -= 4; + WL( m_sh2_state->r[15], m_sh2_state->sr ); /* push SR onto stack */ + m_sh2_state->r[15] -= 4; + WL( m_sh2_state->r[15], m_sh2_state->pc ); /* push PC onto stack */ + + /* set I flags in SR */ + if (irqline > SH2_INT_15) + m_sh2_state->sr = m_sh2_state->sr | I; + else + m_sh2_state->sr = (m_sh2_state->sr & ~I) | (irqline << 4); + + /* fetch PC */ + m_sh2_state->pc = RL( m_sh2_state->vbr + vector * 4 ); + } + + if(m_sh2_state->sleep_mode == 1) { m_sh2_state->sleep_mode = 2; } +} + #include "sh2drc.cpp" diff --git a/src/devices/cpu/sh2/sh2.h b/src/devices/cpu/sh2/sh2.h index b13ce13f618..77095149254 100644 --- a/src/devices/cpu/sh2/sh2.h +++ b/src/devices/cpu/sh2/sh2.h @@ -12,10 +12,10 @@ * *****************************************************************************/ -#pragma once +#ifndef MAME_CPU_SH2_SH2_H +#define MAME_CPU_SH2_SH2_H -#ifndef __SH2_H__ -#define __SH2_H__ +#pragma once #include "cpu/drcfe.h" #include "cpu/drcuml.h" @@ -48,13 +48,10 @@ enum }; -typedef device_delegate sh2_dma_kludge_delegate; #define SH2_DMA_KLUDGE_CB(name) int name(uint32_t src, uint32_t dst, uint32_t data, int size) -typedef device_delegate sh2_dma_fifo_data_available_delegate; #define SH2_DMA_FIFO_DATA_AVAILABLE_CB(name) int name(uint32_t src, uint32_t dst, uint32_t data, int size) -typedef device_delegate sh2_ftcsr_read_delegate; #define SH2_FTCSR_READ_CB(name) void name(uint32_t data) @@ -62,13 +59,13 @@ typedef device_delegate sh2_ftcsr_read_delegate; sh2_device::set_is_slave(*device, _slave); #define MCFG_SH2_DMA_KLUDGE_CB(_class, _method) \ - sh2_device::set_dma_kludge_callback(*device, sh2_dma_kludge_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); + sh2_device::set_dma_kludge_callback(*device, sh2_device::dma_kludge_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); #define MCFG_SH2_FIFO_DATA_AVAIL_CB(_class, _method) \ - sh2_device::set_dma_fifo_data_available_callback(*device, sh2_dma_fifo_data_available_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); + sh2_device::set_dma_fifo_data_available_callback(*device, sh2_device::dma_fifo_data_available_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); #define MCFG_SH2_FTCSR_READ_CB(_class, _method) \ - sh2_device::set_ftcsr_read_callback(*device, sh2_ftcsr_read_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); + sh2_device::set_ftcsr_read_callback(*device, sh2_device::ftcsr_read_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); /*************************************************************************** @@ -91,14 +88,17 @@ class sh2_device : public cpu_device friend class sh2_frontend; public: + typedef device_delegate dma_kludge_delegate; + typedef device_delegate dma_fifo_data_available_delegate; + typedef device_delegate ftcsr_read_delegate; + // construction/destruction - sh2_device(const machine_config &mconfig, const char *_tag, device_t *_owner, uint32_t _clock); - sh2_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source, int cpu_type,address_map_constructor internal_map, int addrlines); + sh2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); static void set_is_slave(device_t &device, int slave) { downcast(device).m_is_slave = slave; } - static void set_dma_kludge_callback(device_t &device, sh2_dma_kludge_delegate callback) { downcast(device).m_dma_kludge_cb = callback; } - static void set_dma_fifo_data_available_callback(device_t &device, sh2_dma_fifo_data_available_delegate callback) { downcast(device).m_dma_fifo_data_available_cb = callback; } - static void set_ftcsr_read_callback(device_t &device, sh2_ftcsr_read_delegate callback) { downcast(device).m_ftcsr_read_cb = callback; } + static void set_dma_kludge_callback(device_t &device, dma_kludge_delegate callback) { downcast(device).m_dma_kludge_cb = callback; } + static void set_dma_fifo_data_available_callback(device_t &device, dma_fifo_data_available_delegate callback) { downcast(device).m_dma_fifo_data_available_cb = callback; } + static void set_ftcsr_read_callback(device_t &device, ftcsr_read_delegate callback) { downcast(device).m_ftcsr_read_cb = callback; } DECLARE_WRITE32_MEMBER( sh7604_w ); DECLARE_READ32_MEMBER( sh7604_r ); @@ -112,6 +112,8 @@ public: void sh2_notify_dma_data_available(); protected: + sh2_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int cpu_type,address_map_constructor internal_map, int addrlines); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -126,7 +128,7 @@ protected: virtual void execute_set_input(int inputnum, int state) override; // device_memory_interface overrides - virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_0) const override; + virtual const address_space_config *memory_space_config(address_spacenum spacenum) const override; // device_state_interface overrides virtual void state_import(const device_state_entry &entry) override; @@ -212,9 +214,9 @@ private: uint8_t m_wtcsr; int m_is_slave, m_cpu_type; - sh2_dma_kludge_delegate m_dma_kludge_cb; - sh2_dma_fifo_data_available_delegate m_dma_fifo_data_available_cb; - sh2_ftcsr_read_delegate m_ftcsr_read_cb; + dma_kludge_delegate m_dma_kludge_cb; + dma_fifo_data_available_delegate m_dma_fifo_data_available_cb; + ftcsr_read_delegate m_ftcsr_read_cb; drc_cache m_cache; /* pointer to the DRC code cache */ std::unique_ptr m_drcuml; /* DRC UML generator state */ @@ -484,7 +486,7 @@ class sh2a_device : public sh2_device { public: // construction/destruction - sh2a_device(const machine_config &mconfig, const char *_tag, device_t *_owner, uint32_t _clock); + sh2a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); DECLARE_READ32_MEMBER(dma_sar0_r); DECLARE_WRITE32_MEMBER(dma_sar0_w); @@ -547,9 +549,9 @@ private: }; -extern const device_type SH1; -extern const device_type SH2; -extern const device_type SH2A; +DECLARE_DEVICE_TYPE(SH1, sh1_device) +DECLARE_DEVICE_TYPE(SH2, sh2_device) +DECLARE_DEVICE_TYPE(SH2A, sh2a_device) -#endif /* __SH2_H__ */ +#endif // MAME_CPU_SH2_SH2_H diff --git a/src/devices/cpu/sh2/sh2comn.cpp b/src/devices/cpu/sh2/sh2comn.cpp index a3a15262490..b6ac0e1cc65 100644 --- a/src/devices/cpu/sh2/sh2comn.cpp +++ b/src/devices/cpu/sh2/sh2comn.cpp @@ -9,13 +9,13 @@ *****************************************************************************/ #include "emu.h" -#include "debugger.h" #include "sh2.h" #include "sh2comn.h" -#define VERBOSE 0 +#include "debugger.h" -#define LOG(x) do { if (VERBOSE) logerror x; } while (0) +//#define VERBOSE 1 +#include "logmacro.h" static const int div_tab[4] = { 3, 5, 7, 0 }; @@ -365,7 +365,7 @@ void sh2_device::sh2_do_dma(int dma) } - LOG(("SH2.%s: DMA %d complete\n", tag(), dma)); + LOG("SH2: DMA %d complete\n", dma); m_m[0x62+4*dma] = 0; m_m[0x63+4*dma] |= 2; m_dma_timer_active[dma] = 0; @@ -405,7 +405,7 @@ void sh2_device::sh2_dmac_check(int dma) if(!m_active_dma_count[dma]) m_active_dma_count[dma] = 0x1000000; - LOG(("SH2: DMA %d start %x, %x, %x, %04x, %d, %d, %d\n", dma, m_active_dma_src[dma], m_active_dma_dst[dma], m_active_dma_count[dma], m_m[0x63+4*dma], m_active_dma_incs[dma], m_active_dma_incd[dma], m_active_dma_size[dma])); + LOG("SH2: DMA %d start %x, %x, %x, %04x, %d, %d, %d\n", dma, m_active_dma_src[dma], m_active_dma_dst[dma], m_active_dma_count[dma], m_m[0x63+4*dma], m_active_dma_incs[dma], m_active_dma_incd[dma], m_active_dma_size[dma]); m_dma_timer_active[dma] = 1; @@ -584,7 +584,7 @@ WRITE32_MEMBER( sh2_device::sh7604_w ) { int32_t a = m_m[0x41]; int32_t b = m_m[0x40]; - LOG(("SH2 '%s' div+mod %d/%d\n", tag(), a, b)); + LOG("SH2 div+mod %d/%d\n", a, b); if (b) { m_m[0x45] = a / b; @@ -612,7 +612,7 @@ WRITE32_MEMBER( sh2_device::sh7604_w ) { int64_t a = m_m[0x45] | ((uint64_t)(m_m[0x44]) << 32); int64_t b = (int32_t)m_m[0x40]; - LOG(("SH2 '%s' div+mod %d/%d\n", tag(), a, b)); + LOG("SH2 div+mod %d/%d\n", a, b); if (b) { int64_t q = a / b; @@ -814,76 +814,6 @@ void sh2_device::sh2_recalc_irq() m_test_irq = 1; } -void sh2_device::sh2_exception(const char *message, int irqline) -{ - int vector; - - if (irqline != 16) - { - if (irqline <= ((m_sh2_state->sr >> 4) & 15)) /* If the cpu forbids this interrupt */ - return; - - // if this is an sh2 internal irq, use its vector - if (m_sh2_state->internal_irq_level == irqline) - { - vector = m_internal_irq_vector; - /* avoid spurious irqs with this (TODO: needs a better fix) */ - m_sh2_state->internal_irq_level = -1; - LOG(("SH-2 '%s' exception #%d (internal vector: $%x) after [%s]\n", tag(), irqline, vector, message)); - } - else - { - if(m_m[0x38] & 0x00010000) - { - vector = standard_irq_callback(irqline); - LOG(("SH-2 '%s' exception #%d (external vector: $%x) after [%s]\n", tag(), irqline, vector, message)); - } - else - { - standard_irq_callback(irqline); - vector = 64 + irqline/2; - LOG(("SH-2 '%s' exception #%d (autovector: $%x) after [%s]\n", tag(), irqline, vector, message)); - } - } - } - else - { - vector = 11; - LOG(("SH-2 '%s' nmi exception (autovector: $%x) after [%s]\n", tag(), vector, message)); - } - - if (m_isdrc) - { - m_sh2_state->evec = RL( m_sh2_state->vbr + vector * 4 ); - m_sh2_state->evec &= AM; - m_sh2_state->irqsr = m_sh2_state->sr; - - /* set I flags in SR */ - if (irqline > SH2_INT_15) - m_sh2_state->sr = m_sh2_state->sr | I; - else - m_sh2_state->sr = (m_sh2_state->sr & ~I) | (irqline << 4); - -// printf("sh2_exception [%s] irqline %x evec %x save SR %x new SR %x\n", message, irqline, m_sh2_state->evec, m_sh2_state->irqsr, m_sh2_state->sr); - } else { - m_sh2_state->r[15] -= 4; - WL( m_sh2_state->r[15], m_sh2_state->sr ); /* push SR onto stack */ - m_sh2_state->r[15] -= 4; - WL( m_sh2_state->r[15], m_sh2_state->pc ); /* push PC onto stack */ - - /* set I flags in SR */ - if (irqline > SH2_INT_15) - m_sh2_state->sr = m_sh2_state->sr | I; - else - m_sh2_state->sr = (m_sh2_state->sr & ~I) | (irqline << 4); - - /* fetch PC */ - m_sh2_state->pc = RL( m_sh2_state->vbr + vector * 4 ); - } - - if(m_sh2_state->sleep_mode == 1) { m_sh2_state->sleep_mode = 2; } -} - /* SH-7021 on-chip device */ diff --git a/src/devices/cpu/sh2/sh2comn.h b/src/devices/cpu/sh2/sh2comn.h index 79d06547462..1c859e227d6 100644 --- a/src/devices/cpu/sh2/sh2comn.h +++ b/src/devices/cpu/sh2/sh2comn.h @@ -8,10 +8,10 @@ * *****************************************************************************/ -#pragma once +#ifndef MAME_CPU_SH2_SH2COMN_H +#define MAME_CPU_SH2_SH2COMN_H -#ifndef __SH2COMN_H__ -#define __SH2COMN_H__ +#pragma once @@ -82,4 +82,4 @@ do { \ } while(0) -#endif /* __SH2COMN_H__ */ +#endif // MAME_CPU_SH2_SH2COMN_H diff --git a/src/devices/cpu/sh2/sh7604_bus.cpp b/src/devices/cpu/sh2/sh7604_bus.cpp index 5052d4a41f1..596172879e4 100644 --- a/src/devices/cpu/sh2/sh7604_bus.cpp +++ b/src/devices/cpu/sh2/sh7604_bus.cpp @@ -23,7 +23,7 @@ //************************************************************************** // device type definition -const device_type SH7604_BUS = device_creator; +DEFINE_DEVICE_TYPE(SH7604_BUS, sh7604_bus_device, "sh7604bus", "SH7604 BUS Controller") //************************************************************************** @@ -109,9 +109,9 @@ ADDRESS_MAP_END //------------------------------------------------- sh7604_bus_device::sh7604_bus_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, SH7604_BUS, "sh7604_bus_longname", tag, owner, clock, "sh7604_bus", __FILE__), - device_memory_interface(mconfig, *this), - m_space_config("regs", ENDIANNESS_BIG, 16, 4, 0, nullptr, *ADDRESS_MAP_NAME(bus_regs)) + : device_t(mconfig, SH7604_BUS, tag, owner, clock) + , device_memory_interface(mconfig, *this) + , m_space_config("regs", ENDIANNESS_BIG, 16, 4, 0, nullptr, *ADDRESS_MAP_NAME(bus_regs)) { } diff --git a/src/devices/cpu/sh2/sh7604_bus.h b/src/devices/cpu/sh2/sh7604_bus.h index 0c989f23010..8c907a13e06 100644 --- a/src/devices/cpu/sh2/sh7604_bus.h +++ b/src/devices/cpu/sh2/sh7604_bus.h @@ -6,10 +6,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_CPU_SH2_SH7604_BUS_H +#define MAME_CPU_SH2_SH7604_BUS_H -#ifndef __SH7604_BUSDEV_H__ -#define __SH7604_BUSDEV_H__ +#pragma once @@ -72,14 +72,6 @@ private: // device type definition -extern const device_type SH7604_BUS; - - - -//************************************************************************** -// GLOBAL VARIABLES -//************************************************************************** - - +DECLARE_DEVICE_TYPE(SH7604_BUS, sh7604_bus_device) -#endif +#endif // MAME_CPU_SH2_SH7604_BUS_H diff --git a/src/devices/cpu/sh2/sh7604_sci.cpp b/src/devices/cpu/sh2/sh7604_sci.cpp index a20d3c3135a..e49c7d988e6 100644 --- a/src/devices/cpu/sh2/sh7604_sci.cpp +++ b/src/devices/cpu/sh2/sh7604_sci.cpp @@ -22,7 +22,7 @@ //************************************************************************** // device type definition -const device_type SH7604_SCI = device_creator; +DEFINE_DEVICE_TYPE(SH7604_SCI, sh7604_sci_device, "sh7604sci", "SH7604 SCI Controller") //************************************************************************** @@ -113,9 +113,9 @@ ADDRESS_MAP_END //------------------------------------------------- sh7604_sci_device::sh7604_sci_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, SH7604_SCI, "sh7604_sci_longname", tag, owner, clock, "sh7604_sci", __FILE__), - device_memory_interface(mconfig, *this), - m_space_config("regs", ENDIANNESS_BIG, 8, 4, 0, nullptr, *ADDRESS_MAP_NAME(sci_regs)) + : device_t(mconfig, SH7604_SCI, tag, owner, clock) + , device_memory_interface(mconfig, *this) + , m_space_config("regs", ENDIANNESS_BIG, 8, 4, 0, nullptr, *ADDRESS_MAP_NAME(sci_regs)) { } diff --git a/src/devices/cpu/sh2/sh7604_sci.h b/src/devices/cpu/sh2/sh7604_sci.h index 97ef31dd881..082e8c37ae9 100644 --- a/src/devices/cpu/sh2/sh7604_sci.h +++ b/src/devices/cpu/sh2/sh7604_sci.h @@ -6,21 +6,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_CPU_SH2_SH7604_SCI_H +#define MAME_CPU_SH2_SH7604_SCI_H -#ifndef __SH7604_SCIDEV_H__ -#define __SH7604_SCIDEV_H__ - -enum { - STATUS_MPBT = 1 << 0, - STATUS_MPB = 1 << 1, - STATUS_TEND = 1 << 2, - STATUS_PER = 1 << 3, - STATUS_FER = 1 << 4, - STATUS_ORER = 1 << 5, - STATUS_RDRF = 1 << 6, - STATUS_TDRE = 1 << 7 -}; +#pragma once @@ -61,12 +50,25 @@ public: DECLARE_WRITE8_MEMBER( serial_ack_w ); DECLARE_READ8_MEMBER( receive_data_r ); - virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_0) const override; + virtual const address_space_config *memory_space_config(address_spacenum spacenum) const override; + protected: + enum { + STATUS_MPBT = 1 << 0, + STATUS_MPB = 1 << 1, + STATUS_TEND = 1 << 2, + STATUS_PER = 1 << 3, + STATUS_FER = 1 << 4, + STATUS_ORER = 1 << 5, + STATUS_RDRF = 1 << 6, + STATUS_TDRE = 1 << 7 + }; + // device-level overrides // virtual void device_validity_check(validity_checker &valid) const; virtual void device_start() override; virtual void device_reset() override; + private: const address_space_config m_space_config; uint8_t m_smr; @@ -77,14 +79,6 @@ private: // device type definition -extern const device_type SH7604_SCI; - - - -//************************************************************************** -// GLOBAL VARIABLES -//************************************************************************** - - +DECLARE_DEVICE_TYPE(SH7604_SCI, sh7604_sci_device) -#endif +#endif // MAME_CPU_SH2_SH7604_SCI_H diff --git a/src/devices/cpu/sh2/sh7604_wdt.cpp b/src/devices/cpu/sh2/sh7604_wdt.cpp index a396e2872f3..9db87131378 100644 --- a/src/devices/cpu/sh2/sh7604_wdt.cpp +++ b/src/devices/cpu/sh2/sh7604_wdt.cpp @@ -20,7 +20,7 @@ //************************************************************************** // device type definition -const device_type SH7604_WDT = device_creator; +DEFINE_DEVICE_TYPE(SH7604_WDT, sh7604_wdt_device, "sh7604wdt", "SH7604 Watchdog Timer") //************************************************************************** @@ -39,9 +39,9 @@ ADDRESS_MAP_END //------------------------------------------------- sh7604_wdt_device::sh7604_wdt_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, SH7604_WDT, "sh7604_wdt_longname", tag, owner, clock, "sh7604_wdt", __FILE__), - device_memory_interface(mconfig, *this), - m_space_config("regs", ENDIANNESS_BIG, 8, 4, 0, nullptr, *ADDRESS_MAP_NAME(wdt_regs)) + : device_t(mconfig, SH7604_WDT, tag, owner, clock) + , device_memory_interface(mconfig, *this) + , m_space_config("regs", ENDIANNESS_BIG, 8, 4, 0, nullptr, *ADDRESS_MAP_NAME(wdt_regs)) { } diff --git a/src/devices/cpu/sh2/sh7604_wdt.h b/src/devices/cpu/sh2/sh7604_wdt.h index 89ab8faebe7..352b94e3190 100644 --- a/src/devices/cpu/sh2/sh7604_wdt.h +++ b/src/devices/cpu/sh2/sh7604_wdt.h @@ -6,10 +6,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_CPU_SH7604_WDT_H +#define MAME_CPU_SH7604_WDT_H -#ifndef __SH7604_WDTDEV_H__ -#define __SH7604_WDTDEV_H__ +#pragma once @@ -49,14 +49,6 @@ private: // device type definition -extern const device_type SH7604_WDT; - - - -//************************************************************************** -// GLOBAL VARIABLES -//************************************************************************** - - +DECLARE_DEVICE_TYPE(SH7604_WDT, sh7604_wdt_device) -#endif +#endif // MAME_CPU_SH7604_WDT_H diff --git a/src/devices/cpu/sh4/sh4.cpp b/src/devices/cpu/sh4/sh4.cpp index 1605d918aed..c9741c19ac5 100644 --- a/src/devices/cpu/sh4/sh4.cpp +++ b/src/devices/cpu/sh4/sh4.cpp @@ -25,13 +25,15 @@ *****************************************************************************/ #include "emu.h" -#include "debugger.h" #include "sh4.h" #include "sh4regs.h" #include "sh4comn.h" #include "sh3comn.h" #include "sh4tmu.h" +#include "debugger.h" + + #if SH4_USE_FASTRAM_OPTIMIZATION void sh34_base_device::add_fastram(offs_t start, offs_t end, uint8_t readonly, void *base) { @@ -55,10 +57,10 @@ CPU_DISASSEMBLE( sh4 ); CPU_DISASSEMBLE( sh4be ); -const device_type SH3LE = device_creator; -const device_type SH3BE = device_creator; -const device_type SH4LE = device_creator; -const device_type SH4BE = device_creator; +DEFINE_DEVICE_TYPE(SH3LE, sh3_device, "sh3le", "SH-3 (little)") +DEFINE_DEVICE_TYPE(SH3BE, sh3be_device, "sh3be", "SH-3 (big)") +DEFINE_DEVICE_TYPE(SH4LE, sh4_device, "sh4le", "SH-4 (little)") +DEFINE_DEVICE_TYPE(SH4BE, sh4be_device, "sh4be", "SH-4 (big)") #if 0 @@ -89,8 +91,8 @@ static ADDRESS_MAP_START( sh3_internal_map, AS_PROGRAM, 64, sh3_base_device ) ADDRESS_MAP_END -sh34_base_device::sh34_base_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, endianness_t endianness, address_map_constructor internal) - : cpu_device(mconfig, type, name, tag, owner, clock, shortname, __FILE__) +sh34_base_device::sh34_base_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, endianness_t endianness, address_map_constructor internal) + : cpu_device(mconfig, type, tag, owner, clock) , m_program_config("program", endianness, 64, 32, 0, internal) , m_io_config("io", endianness, 64, 8) , c_md2(0) @@ -118,40 +120,40 @@ sh34_base_device::sh34_base_device(const machine_config &mconfig, device_type ty } -sh3_base_device::sh3_base_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, endianness_t endianness) - : sh34_base_device(mconfig, type, name, tag, owner, clock, shortname, endianness, ADDRESS_MAP_NAME(sh3_internal_map)) +sh3_base_device::sh3_base_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, endianness_t endianness) + : sh34_base_device(mconfig, type, tag, owner, clock, endianness, ADDRESS_MAP_NAME(sh3_internal_map)) { m_cpu_type = CPU_TYPE_SH3; } -sh4_base_device::sh4_base_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, endianness_t endianness) - : sh34_base_device(mconfig, type, name, tag, owner, clock, shortname, endianness, ADDRESS_MAP_NAME(sh4_internal_map)) +sh4_base_device::sh4_base_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, endianness_t endianness) + : sh34_base_device(mconfig, type, tag, owner, clock, endianness, ADDRESS_MAP_NAME(sh4_internal_map)) { m_cpu_type = CPU_TYPE_SH4; } sh3_device::sh3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : sh3_base_device(mconfig, SH3LE, "SH-3 (little)", tag, owner, clock, "sh3", ENDIANNESS_LITTLE) + : sh3_base_device(mconfig, SH3LE, tag, owner, clock, ENDIANNESS_LITTLE) { } sh3be_device::sh3be_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : sh3_base_device(mconfig, SH3BE, "SH-3 (big)", tag, owner, clock, "sh3be", ENDIANNESS_BIG) + : sh3_base_device(mconfig, SH3BE, tag, owner, clock, ENDIANNESS_BIG) { } sh4_device::sh4_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : sh4_base_device(mconfig, SH4LE, "SH-4 (little)", tag, owner, clock, "sh4", ENDIANNESS_LITTLE) + : sh4_base_device(mconfig, SH4LE, tag, owner, clock, ENDIANNESS_LITTLE) { } sh4be_device::sh4be_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : sh4_base_device(mconfig, SH4BE, "SH-4 (big)", tag, owner, clock, "sh4be", ENDIANNESS_BIG) + : sh4_base_device(mconfig, SH4BE, tag, owner, clock, ENDIANNESS_BIG) { } diff --git a/src/devices/cpu/sh4/sh4.h b/src/devices/cpu/sh4/sh4.h index b170b25d4c0..29977b286dd 100644 --- a/src/devices/cpu/sh4/sh4.h +++ b/src/devices/cpu/sh4/sh4.h @@ -10,8 +10,10 @@ * *****************************************************************************/ -#ifndef __SH4_H__ -#define __SH4_H__ +#ifndef MAME_CPU_SH4_SH4_H +#define MAME_CPU_SH4_SH4_H + +#pragma once // doesn't actually seem to improve performance at all #define SH4_USE_FASTRAM_OPTIMIZATION 0 @@ -197,9 +199,6 @@ typedef void (*sh4_ftcsr_callback)(uint32_t); class sh34_base_device : public cpu_device { public: - // construction/destruction - sh34_base_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, endianness_t endianness, address_map_constructor internal); - //#if SH4_USE_FASTRAM_OPTIMIZATION void add_fastram(offs_t start, offs_t end, uint8_t readonly, void *base); //#endif @@ -229,6 +228,9 @@ public: void sh4_dma_ddt(struct sh4_ddt_dma *s); protected: + // construction/destruction + sh34_base_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, endianness_t endianness, address_map_constructor internal); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -253,7 +255,6 @@ protected: virtual uint32_t disasm_max_opcode_bytes() const override { return 2; } virtual offs_t disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) override; -protected: address_space_config m_program_config; address_space_config m_io_config; @@ -742,9 +743,6 @@ protected: class sh3_base_device : public sh34_base_device { public: - // construction/destruction - sh3_base_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, endianness_t endianness); - DECLARE_WRITE32_MEMBER( sh3_internal_w ); DECLARE_READ32_MEMBER( sh3_internal_r ); @@ -752,6 +750,9 @@ public: DECLARE_READ32_MEMBER( sh3_internal_high_r ); protected: + // construction/destruction + sh3_base_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, endianness_t endianness); + virtual void device_reset() override; }; @@ -759,9 +760,6 @@ protected: class sh4_base_device : public sh34_base_device { public: - // construction/destruction - sh4_base_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, endianness_t endianness); - DECLARE_WRITE32_MEMBER( sh4_internal_w ); DECLARE_READ32_MEMBER( sh4_internal_r ); @@ -779,6 +777,9 @@ public: sh4_utlb m_utlb[64]; protected: + // construction/destruction + sh4_base_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, endianness_t endianness); + virtual void device_start() override; virtual void device_reset() override; }; @@ -820,10 +821,10 @@ protected: }; -extern const device_type SH3LE; -extern const device_type SH3BE; -extern const device_type SH4LE; -extern const device_type SH4BE; +DECLARE_DEVICE_TYPE(SH3LE, sh3_device) +DECLARE_DEVICE_TYPE(SH3BE, sh3be_device) +DECLARE_DEVICE_TYPE(SH4LE, sh4_device) +DECLARE_DEVICE_TYPE(SH4BE, sh4be_device) /*************************************************************************** @@ -840,4 +841,4 @@ extern const device_type SH4BE; void sh4drc_set_options(device_t *device, uint32_t options); void sh4drc_add_pcflush(device_t *device, offs_t address); -#endif /* __SH4_H__ */ +#endif // MAME_CPU_SH4_SH4_H diff --git a/src/devices/cpu/sharc/sharc.cpp b/src/devices/cpu/sharc/sharc.cpp index 1b49b409e00..c6faeb367ef 100644 --- a/src/devices/cpu/sharc/sharc.cpp +++ b/src/devices/cpu/sharc/sharc.cpp @@ -6,10 +6,11 @@ */ #include "emu.h" -#include "debugger.h" #include "sharc.h" #include "sharcfe.h" +#include "debugger.h" + #define DISABLE_FAST_REGISTERS 1 @@ -52,7 +53,7 @@ enum SHARC_B12, SHARC_B13, SHARC_B14, SHARC_B15 }; -const device_type ADSP21062 = device_creator; +DEFINE_DEVICE_TYPE(ADSP21062, adsp21062_device, "adsp21062", "ADSP21062") static ADDRESS_MAP_START( internal_pgm, AS_PROGRAM, 64, adsp21062_device ) AM_RANGE(0x20000, 0x24fff) AM_READWRITE(pm0_r, pm0_w) @@ -74,7 +75,7 @@ static ADDRESS_MAP_START( internal_data, AS_DATA, 32, adsp21062_device ) ADDRESS_MAP_END adsp21062_device::adsp21062_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cpu_device(mconfig, ADSP21062, "ADSP21062", tag, owner, clock, "adsp21062", __FILE__) + : cpu_device(mconfig, ADSP21062, tag, owner, clock) , m_program_config("program", ENDIANNESS_LITTLE, 64, 24, -3, ADDRESS_MAP_NAME(internal_pgm)) , m_data_config("data", ENDIANNESS_LITTLE, 32, 32, -2, ADDRESS_MAP_NAME(internal_data)) , m_boot_mode(BOOT_MODE_HOST) diff --git a/src/devices/cpu/sharc/sharc.h b/src/devices/cpu/sharc/sharc.h index b644147983f..a55fa5facf7 100644 --- a/src/devices/cpu/sharc/sharc.h +++ b/src/devices/cpu/sharc/sharc.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Ville Linde -#pragma once +#ifndef MAME_CPU_SHARC_SHARC_H +#define MAME_CPU_SHARC_SHARC_H -#ifndef __SHARC_H__ -#define __SHARC_H__ +#pragma once #include "cpu/drcfe.h" #include "cpu/drcuml.h" @@ -14,65 +14,6 @@ #define SHARC_INPUT_FLAG3 6 -enum SHARC_BOOT_MODE -{ - BOOT_MODE_EPROM, - BOOT_MODE_HOST, - BOOT_MODE_LINK, - BOOT_MODE_NOBOOT -}; - - -struct alignas(16) SHARC_DAG -{ - uint32_t i[8]; - uint32_t m[8]; - uint32_t b[8]; - uint32_t l[8]; -}; - -union SHARC_REG -{ - int32_t r; - float f; -}; - -struct SHARC_DMA_REGS -{ - uint32_t control; - uint32_t int_index; - uint32_t int_modifier; - uint32_t int_count; - uint32_t chain_ptr; - uint32_t gen_purpose; - uint32_t ext_index; - uint32_t ext_modifier; - uint32_t ext_count; -}; - -struct SHARC_LADDR -{ - uint32_t addr; - uint32_t code; - uint32_t loop_type; -}; - -struct SHARC_DMA_OP -{ - uint32_t src; - uint32_t dst; - uint32_t chain_ptr; - int32_t src_modifier; - int32_t dst_modifier; - int32_t src_count; - int32_t dst_count; - int32_t pmode; - int32_t chained_direction; - emu_timer *timer; - bool active; -}; - - // STKY flags #define AUS 0x1 /* ALU floating-point underflow */ #define AVS 0x2 /* ALU floating-point overflow */ @@ -133,7 +74,7 @@ struct SHARC_DMA_OP #define MCFG_SHARC_BOOT_MODE(boot_mode) \ - adsp21062_device::set_boot_mode(*device, boot_mode); + adsp21062_device::set_boot_mode(*device, adsp21062_device::boot_mode); class sharc_frontend; @@ -142,11 +83,20 @@ class adsp21062_device : public cpu_device friend class sharc_frontend; public: + enum sharc_boot_mode + { + BOOT_MODE_EPROM, + BOOT_MODE_HOST, + BOOT_MODE_LINK, + BOOT_MODE_NOBOOT + }; + + // construction/destruction adsp21062_device(const machine_config &mconfig, const char *_tag, device_t *_owner, uint32_t _clock); // static configuration helpers - static void set_boot_mode(device_t &device, const SHARC_BOOT_MODE boot_mode) { downcast(device).m_boot_mode = boot_mode; } + static void set_boot_mode(device_t &device, const sharc_boot_mode boot_mode) { downcast(device).m_boot_mode = boot_mode; } void set_flag_input(int flag_num, int state); void external_iop_write(uint32_t address, uint32_t data); @@ -276,6 +226,56 @@ protected: virtual offs_t disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) override; private: + struct alignas(16) SHARC_DAG + { + uint32_t i[8]; + uint32_t m[8]; + uint32_t b[8]; + uint32_t l[8]; + }; + + union SHARC_REG + { + int32_t r; + float f; + }; + + struct SHARC_DMA_REGS + { + uint32_t control; + uint32_t int_index; + uint32_t int_modifier; + uint32_t int_count; + uint32_t chain_ptr; + uint32_t gen_purpose; + uint32_t ext_index; + uint32_t ext_modifier; + uint32_t ext_count; + }; + + struct SHARC_LADDR + { + uint32_t addr; + uint32_t code; + uint32_t loop_type; + }; + + struct SHARC_DMA_OP + { + uint32_t src; + uint32_t dst; + uint32_t chain_ptr; + int32_t src_modifier; + int32_t dst_modifier; + int32_t src_count; + int32_t dst_count; + int32_t pmode; + int32_t chained_direction; + emu_timer *timer; + bool active; + }; + + address_space_config m_program_config; address_space_config m_data_config; @@ -425,7 +425,7 @@ private: sharc_internal_state* m_core; - SHARC_BOOT_MODE m_boot_mode; + sharc_boot_mode m_boot_mode; // UML stuff drc_cache m_cache; @@ -652,7 +652,6 @@ private: }; -extern const device_type ADSP21062; - +DECLARE_DEVICE_TYPE(ADSP21062, adsp21062_device) -#endif /* __SHARC_H__ */ +#endif // MAME_CPU_SHARC_SHARC_H diff --git a/src/devices/cpu/sm510/kb1013vk1-2.h b/src/devices/cpu/sm510/kb1013vk1-2.h index 9a2db29879b..ce51feb36a1 100644 --- a/src/devices/cpu/sm510/kb1013vk1-2.h +++ b/src/devices/cpu/sm510/kb1013vk1-2.h @@ -6,8 +6,10 @@ */ -#ifndef MAME_CPU_SM510_KB1013VK12_H -#define MAME_CPU_SM510_KB1013VK12_H +#ifndef MAME_CPU_SM510_KB1013VK1_2_H +#define MAME_CPU_SM510_KB1013VK1_2_H + +#pragma once #include "sm500.h" @@ -16,10 +18,6 @@ // .. - - - - class kb1013vk12_device : public sm500_device { public: @@ -35,7 +33,6 @@ protected: }; -extern const device_type KB1013VK12; - +DECLARE_DEVICE_TYPE(KB1013VK12, kb1013vk12_device) -#endif /* MAME_CPU_SM510_KB1013VK12_H */ +#endif // MAME_CPU_SM510_KB1013VK1_2_H diff --git a/src/devices/cpu/sm510/kb1013vk1-2core.cpp b/src/devices/cpu/sm510/kb1013vk1-2core.cpp index 31cf174e64f..2ba55cb33f6 100644 --- a/src/devices/cpu/sm510/kb1013vk1-2core.cpp +++ b/src/devices/cpu/sm510/kb1013vk1-2core.cpp @@ -11,7 +11,7 @@ #include "debugger.h" // MCU types -const device_type KB1013VK12 = device_creator; +DEFINE_DEVICE_TYPE(KB1013VK12, kb1013vk12_device, "kb1013vk1_2", "KB1013VK1-2") // internal memory maps @@ -30,8 +30,9 @@ ADDRESS_MAP_END // device definitions kb1013vk12_device::kb1013vk12_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : sm500_device(mconfig, KB1013VK12, "KB1013VK1-2", tag, owner, clock, 1 /* stack levels */, 11 /* prg width */, ADDRESS_MAP_NAME(program_1_8k), 7 /* data width */, ADDRESS_MAP_NAME(data_5x13x4), "kb1013vk1_2", __FILE__) -{ } + : sm500_device(mconfig, KB1013VK12, tag, owner, clock, 1 /* stack levels */, 11 /* prg width */, ADDRESS_MAP_NAME(program_1_8k), 7 /* data width */, ADDRESS_MAP_NAME(data_5x13x4)) +{ +} // disasm diff --git a/src/devices/cpu/sm510/sm500.h b/src/devices/cpu/sm510/sm500.h index 02a71715279..b6cc948c71f 100644 --- a/src/devices/cpu/sm510/sm500.h +++ b/src/devices/cpu/sm510/sm500.h @@ -9,6 +9,8 @@ #ifndef MAME_CPU_SM510_SM500_H #define MAME_CPU_SM510_SM500_H +#pragma once + #include "sm510.h" @@ -47,9 +49,10 @@ class sm500_device : public sm510_base_device { public: sm500_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); - sm500_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, u32 clock, int stack_levels, int prgwidth, address_map_constructor program, int datawidth, address_map_constructor data, const char *shortname, const char *source); protected: + sm500_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, int stack_levels, int prgwidth, address_map_constructor program, int datawidth, address_map_constructor data); + virtual offs_t disasm_disassemble(std::ostream &stream, offs_t pc, const u8 *oprom, const u8 *opram, u32 options) override; virtual void execute_one() override; virtual void get_opcode_param() override; @@ -76,7 +79,6 @@ protected: }; -extern const device_type SM500; - +DECLARE_DEVICE_TYPE(SM500, sm500_device) -#endif /* MAME_CPU_SM510_SM500_H */ +#endif // MAME_CPU_SM510_SM500_H diff --git a/src/devices/cpu/sm510/sm500core.cpp b/src/devices/cpu/sm510/sm500core.cpp index d25eaf9c673..b22f3de5575 100644 --- a/src/devices/cpu/sm510/sm500core.cpp +++ b/src/devices/cpu/sm510/sm500core.cpp @@ -12,7 +12,7 @@ // MCU types -const device_type SM500 = device_creator; +DEFINE_DEVICE_TYPE(SM500, sm500_device, "sm500", "SM500") // internal memory maps @@ -30,12 +30,14 @@ ADDRESS_MAP_END // device definitions sm500_device::sm500_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : sm510_base_device(mconfig, SM500, "SM500", tag, owner, clock, 1 /* stack levels */, 11 /* prg width */, ADDRESS_MAP_NAME(program_1_2k), 6 /* data width */, ADDRESS_MAP_NAME(data_4x10x4), "sm500", __FILE__) -{ } + : sm500_device(mconfig, SM500, tag, owner, clock, 1 /* stack levels */, 11 /* prg width */, ADDRESS_MAP_NAME(program_1_2k), 6 /* data width */, ADDRESS_MAP_NAME(data_4x10x4)) +{ +} -sm500_device::sm500_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, u32 clock, int stack_levels, int prgwidth, address_map_constructor program, int datawidth, address_map_constructor data, const char *shortname, const char *source) - : sm510_base_device(mconfig, type, name, tag, owner, clock, stack_levels, prgwidth, program, datawidth, data, shortname, source) -{ } +sm500_device::sm500_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, int stack_levels, int prgwidth, address_map_constructor program, int datawidth, address_map_constructor data) + : sm510_base_device(mconfig, type, tag, owner, clock, stack_levels, prgwidth, program, datawidth, data) +{ +} // disasm diff --git a/src/devices/cpu/sm510/sm510.h b/src/devices/cpu/sm510/sm510.h index bfdcb7b3995..0fecde8e447 100644 --- a/src/devices/cpu/sm510/sm510.h +++ b/src/devices/cpu/sm510/sm510.h @@ -9,6 +9,7 @@ #ifndef MAME_CPU_SM510_SM510_H #define MAME_CPU_SM510_SM510_H +#pragma once // I/O ports setup @@ -100,8 +101,8 @@ class sm510_base_device : public cpu_device { public: // construction/destruction - sm510_base_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, u32 clock, int stack_levels, int prgwidth, address_map_constructor program, int datawidth, address_map_constructor data, const char *shortname, const char *source) - : cpu_device(mconfig, type, name, tag, owner, clock, shortname, source) + sm510_base_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, int stack_levels, int prgwidth, address_map_constructor program, int datawidth, address_map_constructor data) + : cpu_device(mconfig, type, tag, owner, clock) , m_program_config("program", ENDIANNESS_LITTLE, 8, prgwidth, 0, program) , m_data_config("data", ENDIANNESS_LITTLE, 8, datawidth, 0, data) , m_prgwidth(prgwidth) @@ -117,16 +118,16 @@ public: { } // static configuration helpers - template static devcb_base &set_read_k_callback(device_t &device, _Object object) { return downcast(device).m_read_k.set_callback(object); } - template static devcb_base &set_read_ba_callback(device_t &device, _Object object) { return downcast(device).m_read_ba.set_callback(object); } - template static devcb_base &set_read_b_callback(device_t &device, _Object object) { return downcast(device).m_read_b.set_callback(object); } - template static devcb_base &set_write_s_callback(device_t &device, _Object object) { return downcast(device).m_write_s.set_callback(object); } - template static devcb_base &set_write_r_callback(device_t &device, _Object object) { return downcast(device).m_write_r.set_callback(object); } + template static devcb_base &set_read_k_callback(device_t &device, Object &&cb) { return downcast(device).m_read_k.set_callback(std::forward(cb)); } + template static devcb_base &set_read_ba_callback(device_t &device, Object &&cb) { return downcast(device).m_read_ba.set_callback(std::forward(cb)); } + template static devcb_base &set_read_b_callback(device_t &device, Object &&cb) { return downcast(device).m_read_b.set_callback(std::forward(cb)); } + template static devcb_base &set_write_s_callback(device_t &device, Object &&cb) { return downcast(device).m_write_s.set_callback(std::forward(cb)); } + template static devcb_base &set_write_r_callback(device_t &device, Object &&cb) { return downcast(device).m_write_r.set_callback(std::forward(cb)); } - template static devcb_base &set_write_sega_callback(device_t &device, _Object object) { return downcast(device).m_write_sega.set_callback(object); } - template static devcb_base &set_write_segb_callback(device_t &device, _Object object) { return downcast(device).m_write_segb.set_callback(object); } - template static devcb_base &set_write_segc_callback(device_t &device, _Object object) { return downcast(device).m_write_segc.set_callback(object); } - template static devcb_base &set_write_segbs_callback(device_t &device, _Object object) { return downcast(device).m_write_segbs.set_callback(object); } + template static devcb_base &set_write_sega_callback(device_t &device, Object &&cb) { return downcast(device).m_write_sega.set_callback(std::forward(cb)); } + template static devcb_base &set_write_segb_callback(device_t &device, Object &&cb) { return downcast(device).m_write_segb.set_callback(std::forward(cb)); } + template static devcb_base &set_write_segc_callback(device_t &device, Object &&cb) { return downcast(device).m_write_segc.set_callback(std::forward(cb)); } + template static devcb_base &set_write_segbs_callback(device_t &device, Object &&cb) { return downcast(device).m_write_segbs.set_callback(std::forward(cb)); } protected: // device-level overrides @@ -323,9 +324,10 @@ class sm511_device : public sm510_base_device { public: sm511_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); - sm511_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, u32 clock, int stack_levels, int prgwidth, address_map_constructor program, int datawidth, address_map_constructor data, const char *shortname, const char *source); protected: + sm511_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, int stack_levels, int prgwidth, address_map_constructor program, int datawidth, address_map_constructor data); + virtual void device_post_load() override { notify_clock_changed(); } virtual void device_reset() override; @@ -345,9 +347,8 @@ public: -extern const device_type SM510; -extern const device_type SM511; -extern const device_type SM512; - +DECLARE_DEVICE_TYPE(SM510, sm510_device) +DECLARE_DEVICE_TYPE(SM511, sm511_device) +DECLARE_DEVICE_TYPE(SM512, sm512_device) -#endif /* MAME_CPU_SM510_SM510_H */ +#endif // MAME_CPU_SM510_SM510_H diff --git a/src/devices/cpu/sm510/sm510core.cpp b/src/devices/cpu/sm510/sm510core.cpp index c739fa83ffe..1c6bac06cad 100644 --- a/src/devices/cpu/sm510/sm510core.cpp +++ b/src/devices/cpu/sm510/sm510core.cpp @@ -12,7 +12,7 @@ // MCU types -const device_type SM510 = device_creator; +DEFINE_DEVICE_TYPE(SM510, sm510_device, "sm510", "SM510") // internal memory maps @@ -32,8 +32,9 @@ ADDRESS_MAP_END // device definitions sm510_device::sm510_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : sm510_base_device(mconfig, SM510, "SM510", tag, owner, clock, 2 /* stack levels */, 12 /* prg width */, ADDRESS_MAP_NAME(program_2_7k), 7 /* data width */, ADDRESS_MAP_NAME(data_96_32x4), "sm510", __FILE__) -{ } + : sm510_base_device(mconfig, SM510, tag, owner, clock, 2 /* stack levels */, 12 /* prg width */, ADDRESS_MAP_NAME(program_2_7k), 7 /* data width */, ADDRESS_MAP_NAME(data_96_32x4)) +{ +} // disasm diff --git a/src/devices/cpu/sm510/sm511core.cpp b/src/devices/cpu/sm510/sm511core.cpp index df596ee27a1..d2e911b02dd 100644 --- a/src/devices/cpu/sm510/sm511core.cpp +++ b/src/devices/cpu/sm510/sm511core.cpp @@ -12,8 +12,8 @@ // MCU types -const device_type SM511 = device_creator; -const device_type SM512 = device_creator; +DEFINE_DEVICE_TYPE(SM511, sm511_device, "sm511", "SM511") +DEFINE_DEVICE_TYPE(SM512, sm512_device, "sm512", "SM512") // internal memory maps @@ -45,16 +45,19 @@ offs_t sm511_device::disasm_disassemble(std::ostream &stream, offs_t pc, const u // device definitions sm511_device::sm511_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : sm510_base_device(mconfig, SM511, "SM511", tag, owner, clock, 2 /* stack levels */, 12 /* prg width */, ADDRESS_MAP_NAME(program_4k), 7 /* data width */, ADDRESS_MAP_NAME(data_96_32x4), "sm511", __FILE__) -{ } + : sm511_device(mconfig, SM511, tag, owner, clock, 2 /* stack levels */, 12 /* prg width */, ADDRESS_MAP_NAME(program_4k), 7 /* data width */, ADDRESS_MAP_NAME(data_96_32x4)) +{ +} -sm511_device::sm511_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, u32 clock, int stack_levels, int prgwidth, address_map_constructor program, int datawidth, address_map_constructor data, const char *shortname, const char *source) - : sm510_base_device(mconfig, type, name, tag, owner, clock, stack_levels, prgwidth, program, datawidth, data, shortname, source) -{ } +sm511_device::sm511_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, int stack_levels, int prgwidth, address_map_constructor program, int datawidth, address_map_constructor data) + : sm510_base_device(mconfig, type, tag, owner, clock, stack_levels, prgwidth, program, datawidth, data) +{ +} sm512_device::sm512_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : sm511_device(mconfig, SM512, "SM512", tag, owner, clock, 2, 12, ADDRESS_MAP_NAME(program_4k), 7, ADDRESS_MAP_NAME(data_80_48x4), "sm512", __FILE__) -{ } + : sm511_device(mconfig, SM512, tag, owner, clock, 2, 12, ADDRESS_MAP_NAME(program_4k), 7, ADDRESS_MAP_NAME(data_80_48x4)) +{ +} diff --git a/src/devices/cpu/sm510/sm590.h b/src/devices/cpu/sm510/sm590.h index 185e87a3e6c..57fd0e499ff 100644 --- a/src/devices/cpu/sm510/sm590.h +++ b/src/devices/cpu/sm510/sm590.h @@ -96,9 +96,10 @@ class sm590_device : public sm510_base_device { public: sm590_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); - sm590_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, u32 clock, int stack_levels, int prgwidth, address_map_constructor program, int datawidth, address_map_constructor data, const char *shortname, const char *source); protected: + sm590_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, int stack_levels, int prgwidth, address_map_constructor program, int datawidth, address_map_constructor data); + virtual void device_reset() override; virtual offs_t disasm_disassemble(std::ostream &stream, offs_t pc, const u8 *oprom, const u8 *opram, u32 options) override; virtual void init_divider() override; @@ -184,7 +185,6 @@ protected: }; -extern const device_type SM590; - +DECLARE_DEVICE_TYPE(SM590, sm590_device) -#endif /* MAME_CPU_SM510_SM590_H */ +#endif // MAME_CPU_SM510_SM590_H diff --git a/src/devices/cpu/sm510/sm590core.cpp b/src/devices/cpu/sm510/sm590core.cpp index 0c26be887ce..97d54e66576 100644 --- a/src/devices/cpu/sm510/sm590core.cpp +++ b/src/devices/cpu/sm510/sm590core.cpp @@ -12,9 +12,9 @@ // MCU types -const device_type SM590 = device_creator; -//const device_type SM591 = device_creator; -//const device_type SM595 = device_creator; +DEFINE_DEVICE_TYPE(SM590, sm590_device, "sm590", "SM590") +//DEFINE_DEVICE_TYPE(SM591, sm591_device, "sm591", "SM591") +//DEFINE_DEVICE_TYPE(SM595, sm595_device, "sm595", "SM595") // internal memory maps static ADDRESS_MAP_START(program_1x128x4, AS_PROGRAM, 8, sm510_base_device) @@ -45,20 +45,24 @@ ADDRESS_MAP_END // device definitions sm590_device::sm590_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : sm510_base_device(mconfig, SM590, "SM590", tag, owner, clock, 4 /* stack levels */, 9 /* prg width */, ADDRESS_MAP_NAME(program_1x128x4), 5 /* data width */, ADDRESS_MAP_NAME(data_16x2x4), "sm590", __FILE__) -{ } + : sm590_device(mconfig, SM590, tag, owner, clock, 4 /* stack levels */, 9 /* prg width */, ADDRESS_MAP_NAME(program_1x128x4), 5 /* data width */, ADDRESS_MAP_NAME(data_16x2x4)) +{ +} -//sm590_device::sm591_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) -// : sm510_base_device(mconfig, SM591, "SM591", tag, owner, clock, 4 /* stack levels */, 10 /* prg width */, ADDRESS_MAP_NAME(program_2x128x4), 6 /* data width */, ADDRESS_MAP_NAME(data_16x3.5x4), "sm591", __FILE__) -//{ } +//sm591_device::sm591_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) +// : sm510_base_device(mconfig, SM591, tag, owner, clock, 4 /* stack levels */, 10 /* prg width */, ADDRESS_MAP_NAME(program_2x128x4), 6 /* data width */, ADDRESS_MAP_NAME(data_16x3.5x4)) +//{ +//} -//sm590_device::sm595_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) -// : sm510_base_device(mconfig, SM595, "SM595", tag, owner, clock, 4 /* stack levels */, 10 /* prg width */, ADDRESS_MAP_NAME(program_1x128x4_1x128x2), 5 /* data width */, ADDRESS_MAP_NAME(data_16x2x4), "sm595", __FILE__) -//{ } +//sm595_device::sm595_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) +// : sm510_base_device(mconfig, SM595, tag, owner, clock, 4 /* stack levels */, 10 /* prg width */, ADDRESS_MAP_NAME(program_1x128x4_1x128x2), 5 /* data width */, ADDRESS_MAP_NAME(data_16x2x4)) +//{ +//} -sm590_device::sm590_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, u32 clock, int stack_levels, int prgwidth, address_map_constructor program, int datawidth, address_map_constructor data, const char *shortname, const char *source) - : sm510_base_device(mconfig, type, name, tag, owner, clock, stack_levels, prgwidth, program, datawidth, data, shortname, source) -{ } +sm590_device::sm590_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, int stack_levels, int prgwidth, address_map_constructor program, int datawidth, address_map_constructor data) + : sm510_base_device(mconfig, type, tag, owner, clock, stack_levels, prgwidth, program, datawidth, data) +{ +} // disasm diff --git a/src/devices/cpu/sm8500/sm8500.cpp b/src/devices/cpu/sm8500/sm8500.cpp index e6dc66e6ec5..d7fecc10d31 100644 --- a/src/devices/cpu/sm8500/sm8500.cpp +++ b/src/devices/cpu/sm8500/sm8500.cpp @@ -20,26 +20,26 @@ they are internally. */ #include "emu.h" -#include "debugger.h" #include "sm8500.h" +#include "debugger.h" -const device_type SM8500 = device_creator; +DEFINE_DEVICE_TYPE(SM8500, sm8500_cpu_device, "sm8500", "SM8500") -static const uint8_t sm8500_b2w[8] = { +static constexpr uint8_t sm8500_b2w[8] = { 0, 8, 2, 10, 4, 12, 6, 14 }; sm8500_cpu_device::sm8500_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cpu_device(mconfig, SM8500, "SM8500", tag, owner, clock, "sm8500", __FILE__) + : cpu_device(mconfig, SM8500, tag, owner, clock) , m_program_config("program", ENDIANNESS_BIG, 8, 16, 0) , m_dma_func(*this) , m_timer_func(*this) , m_PC(0), m_IE0(0), m_IE1(0), m_IR0(0), m_IR1(0) - , m_SYS(0), m_CKC(0), m_clock_changed(0) - , m_SP(0) + , m_SYS(0), m_CKC(0), m_clock_changed(0) + , m_SP(0) , m_PS0(0) , m_PS1(0), m_IFLAGS(0), m_CheckInterrupts(0), m_halted(0), m_icount(0), m_program(nullptr), m_oldpc(0) { diff --git a/src/devices/cpu/sm8500/sm8500.h b/src/devices/cpu/sm8500/sm8500.h index 5baeed1cd66..b8889ce51e1 100644 --- a/src/devices/cpu/sm8500/sm8500.h +++ b/src/devices/cpu/sm8500/sm8500.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Wilbert Pol -#pragma once +#ifndef MAME_CPU_SM8500_SM8500_H +#define MAME_CPU_SM8500_SM8500_H -#ifndef __SM8500_H__ -#define __SM8500_H__ +#pragma once #define MCFG_SM8500_DMA_CB(_devcb) \ devcb = &sm8500_cpu_device::set_dma_cb(*device, DEVCB_##_devcb); @@ -29,32 +29,32 @@ public: sm8500_cpu_device(const machine_config &mconfig, const char *_tag, device_t *_owner, uint32_t _clock); // static configuration helpers - template static devcb_base &set_dma_cb(device_t &device, _Object object) { return downcast(device).m_dma_func.set_callback(object); } - template static devcb_base &set_timer_cb(device_t &device, _Object object) { return downcast(device).m_timer_func.set_callback(object); } + template static devcb_base &set_dma_cb(device_t &device, Object &&cb) { return downcast(device).m_dma_func.set_callback(std::forward(cb)); } + template static devcb_base &set_timer_cb(device_t &device, Object &&cb) { return downcast(device).m_timer_func.set_callback(std::forward(cb)); } /* interrupts */ - static const int ILL_INT = 0; - static const int DMA_INT = 1; - static const int TIM0_INT = 2; - static const int EXT_INT = 3; - static const int UART_INT = 4; - static const int LCDC_INT = 5; - static const int TIM1_INT = 6; - static const int CK_INT = 7; - static const int PIO_INT = 8; - static const int WDT_INT = 9; - static const int NMI_INT = 10; + static constexpr int ILL_INT = 0; + static constexpr int DMA_INT = 1; + static constexpr int TIM0_INT = 2; + static constexpr int EXT_INT = 3; + static constexpr int UART_INT = 4; + static constexpr int LCDC_INT = 5; + static constexpr int TIM1_INT = 6; + static constexpr int CK_INT = 7; + static constexpr int PIO_INT = 8; + static constexpr int WDT_INT = 9; + static constexpr int NMI_INT = 10; protected: // Flags - static const uint8_t FLAG_C = 0x80; - static const uint8_t FLAG_Z = 0x40; - static const uint8_t FLAG_S = 0x20; - static const uint8_t FLAG_V = 0x10; - static const uint8_t FLAG_D = 0x08; - static const uint8_t FLAG_H = 0x04; - static const uint8_t FLAG_B = 0x02; - static const uint8_t FLAG_I = 0x01; + static constexpr uint8_t FLAG_C = 0x80; + static constexpr uint8_t FLAG_Z = 0x40; + static constexpr uint8_t FLAG_S = 0x20; + static constexpr uint8_t FLAG_V = 0x10; + static constexpr uint8_t FLAG_D = 0x08; + static constexpr uint8_t FLAG_H = 0x04; + static constexpr uint8_t FLAG_B = 0x02; + static constexpr uint8_t FLAG_I = 0x01; // device-level overrides virtual void device_start() override; @@ -112,7 +112,6 @@ protected: }; -extern const device_type SM8500; - +DECLARE_DEVICE_TYPE(SM8500, sm8500_cpu_device) -#endif /* __SM8500_H__ */ +#endif // MAME_CPU_SM8500_SM8500_H diff --git a/src/devices/cpu/sparc/mb86901.cpp b/src/devices/cpu/sparc/mb86901.cpp index 69142f5e474..cc18ae551de 100644 --- a/src/devices/cpu/sparc/mb86901.cpp +++ b/src/devices/cpu/sparc/mb86901.cpp @@ -18,11 +18,13 @@ //================================================================ #include "emu.h" -#include "debugger.h" #include "sparc.h" #include "sparcdefs.h" -const device_type MB86901 = device_creator; +#include "debugger.h" + + +DEFINE_DEVICE_TYPE(MB86901, mb86901_device, "mb86901", "Fujitsu MB86901") const int mb86901_device::NWINDOWS = 7; @@ -39,7 +41,7 @@ const int mb86901_device::NWINDOWS = 7; //------------------------------------------------- mb86901_device::mb86901_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cpu_device(mconfig, MB86901, "Fujitsu MB86901", tag, owner, clock, "mb86901", __FILE__) + : cpu_device(mconfig, MB86901, tag, owner, clock) , m_program_config("program", ENDIANNESS_BIG, 32, 32) , m_dasm(this, 7) { diff --git a/src/devices/cpu/sparc/sparc.h b/src/devices/cpu/sparc/sparc.h index dbd7113f2e5..3eef8c29170 100644 --- a/src/devices/cpu/sparc/sparc.h +++ b/src/devices/cpu/sparc/sparc.h @@ -4,8 +4,8 @@ SPARC v7 emulator */ -#ifndef __SPARC_H__ -#define __SPARC_H__ +#ifndef MAME_CPU_SPARC_SPARC_H +#define MAME_CPU_SPARC_SPARC_H #pragma once @@ -233,7 +233,7 @@ protected: }; // device type definition -extern const device_type MB86901; +DECLARE_DEVICE_TYPE(MB86901, mb86901_device) enum { @@ -290,4 +290,4 @@ enum SPARC_RESET }; -#endif /* __SPARC_H__ */ +#endif // MAME_CPU_SPARC_SPARC_H diff --git a/src/devices/cpu/spc700/spc700.cpp b/src/devices/cpu/spc700/spc700.cpp index 15700512a6e..410be9f41d4 100644 --- a/src/devices/cpu/spc700/spc700.cpp +++ b/src/devices/cpu/spc700/spc700.cpp @@ -62,11 +62,13 @@ Address Function Register R/W When Reset Remarks /* ================================ INCLUDES ============================== */ /* ======================================================================== */ -#include #include "emu.h" -#include "debugger.h" #include "spc700.h" +#include "debugger.h" + +#include + /* ======================================================================== */ /* ==================== ARCHITECTURE-DEPENDANT DEFINES ==================== */ @@ -216,11 +218,11 @@ static inline int MAKE_INT_8(int A) {return (A & 0x80) ? A | ~0xff : A & 0xff;} -const device_type SPC700 = device_creator; +DEFINE_DEVICE_TYPE(SPC700, spc700_device, "spc700", "SPC700") spc700_device::spc700_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cpu_device(mconfig, SPC700, "SPC700", tag, owner, clock, "spc700", __FILE__) + : cpu_device(mconfig, SPC700, tag, owner, clock) , m_program_config("program", ENDIANNESS_LITTLE, 8, 16, 0) , m_a(0) , m_x(0) diff --git a/src/devices/cpu/spc700/spc700.h b/src/devices/cpu/spc700/spc700.h index ba1e064856d..bef136b2815 100644 --- a/src/devices/cpu/spc700/spc700.h +++ b/src/devices/cpu/spc700/spc700.h @@ -1,12 +1,12 @@ // license:BSD-3-Clause // copyright-holders:Karl Stenerud -#pragma once +#ifndef MAME_CPU_SPC700_SPC700_H +#define MAME_CPU_SPC700_SPC700_H -#ifndef __SPC700_H__ -#define __SPC700_H__ +#pragma once -class spc700_device : public cpu_device +class spc700_device : public cpu_device { public: // construction/destruction @@ -25,7 +25,7 @@ protected: virtual void execute_set_input(int inputnum, int state) override; // device_memory_interface overrides - virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_0) const override { return (spacenum == AS_PROGRAM) ? &m_program_config : nullptr; } + virtual const address_space_config *memory_space_config(address_spacenum spacenum) const override { return (spacenum == AS_PROGRAM) ? &m_program_config : nullptr; } // device_state_interface overrides virtual void state_import(const device_state_entry &entry) override; @@ -109,7 +109,7 @@ private: }; -extern const device_type SPC700; +DECLARE_DEVICE_TYPE(SPC700, spc700_device) /* ======================================================================== */ @@ -138,4 +138,4 @@ enum /* ============================== END OF FILE ============================= */ /* ======================================================================== */ -#endif /* __SPC700_H__ */ +#endif // MAME_CPU_SPC700_SPC700_H diff --git a/src/devices/cpu/ssem/ssem.cpp b/src/devices/cpu/ssem/ssem.cpp index 92c85220bdf..c15b984c546 100644 --- a/src/devices/cpu/ssem/ssem.cpp +++ b/src/devices/cpu/ssem/ssem.cpp @@ -76,20 +76,20 @@ inline void ssem_device::program_write32(uint32_t address, uint32_t data) /*****************************************************************************/ -const device_type SSEMCPU = device_creator; +DEFINE_DEVICE_TYPE(SSEMCPU, ssem_device, "ssem_cpu", "SSEM CPU") //------------------------------------------------- // ssem_device - constructor //------------------------------------------------- ssem_device::ssem_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cpu_device(mconfig, SSEMCPU, "SSEMCPU", tag, owner, clock, "ssem_cpu", __FILE__), - m_program_config("program", ENDIANNESS_LITTLE, 8, 16), - m_pc(1), - m_shifted_pc(1<<2), - m_a(0), - m_halt(0), - m_icount(0) + : cpu_device(mconfig, SSEMCPU, tag, owner, clock) + , m_program_config("program", ENDIANNESS_LITTLE, 8, 16) + , m_pc(1) + , m_shifted_pc(1<<2) + , m_a(0) + , m_halt(0) + , m_icount(0) { // Allocate & setup } diff --git a/src/devices/cpu/ssem/ssem.h b/src/devices/cpu/ssem/ssem.h index 69118e1326d..a62d8bb79c9 100644 --- a/src/devices/cpu/ssem/ssem.h +++ b/src/devices/cpu/ssem/ssem.h @@ -6,10 +6,10 @@ Written by Ryan Holtz */ -#pragma once +#ifndef MAME_CPU_SSEM_SSEM_H +#define MAME_CPU_SSEM_SSEM_H -#ifndef __SSEM_H__ -#define __SSEM_H__ +#pragma once //************************************************************************** // TYPE DEFINITIONS @@ -24,6 +24,7 @@ public: // construction/destruction ssem_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); +protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -68,7 +69,7 @@ public: }; // device type definition -extern const device_type SSEMCPU; +DECLARE_DEVICE_TYPE(SSEMCPU, ssem_device) /*************************************************************************** REGISTER ENUMERATION @@ -83,4 +84,4 @@ enum CPU_DISASSEMBLE( ssem ); -#endif /* __SSEM_H__ */ +#endif // MAME_CPU_SSEM_SSEM_H diff --git a/src/devices/cpu/ssp1601/ssp1601.cpp b/src/devices/cpu/ssp1601/ssp1601.cpp index 4f000067e38..c50e75a1886 100644 --- a/src/devices/cpu/ssp1601/ssp1601.cpp +++ b/src/devices/cpu/ssp1601/ssp1601.cpp @@ -17,9 +17,10 @@ */ #include "emu.h" -#include "debugger.h" #include "ssp1601.h" +#include "debugger.h" + /* detect ops with unimplemented/invalid fields. * Useful for homebrew or if a new VR revision pops up. */ @@ -189,11 +190,11 @@ #endif -const device_type SSP1601 = device_creator; +DEFINE_DEVICE_TYPE(SSP1601, ssp1601_device, "ssp1601", "SSP1601") ssp1601_device::ssp1601_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cpu_device(mconfig, SSP1601, "SSP1601", tag, owner, clock, "ssp1601", __FILE__) + : cpu_device(mconfig, SSP1601, tag, owner, clock) , m_program_config("program", ENDIANNESS_BIG, 16, 16, -1) , m_io_config("io", ENDIANNESS_BIG, 16, 4, 0) { diff --git a/src/devices/cpu/ssp1601/ssp1601.h b/src/devices/cpu/ssp1601/ssp1601.h index cf5029fcee5..7f241a83067 100644 --- a/src/devices/cpu/ssp1601/ssp1601.h +++ b/src/devices/cpu/ssp1601/ssp1601.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Pierpaolo Prazzoli -#pragma once +#ifndef MAME_CPU_SSP1601_SSP1601_H +#define MAME_CPU_SSP1601_SSP1601_H -#ifndef __SSP1601_H__ -#define __SSP1601_H__ +#pragma once enum @@ -52,19 +52,21 @@ private: address_space_config m_io_config; PAIR m_gr[8]; /* general regs, some are 16bit, some 32bit */ - union { - unsigned char m_r[8]; /* pointer registers, 4 for earch bank */ - struct { - unsigned char m_r0[4]; - unsigned char m_r1[4]; - } regs; + union + { + unsigned char m_r[8]; /* pointer registers, 4 for earch bank */ + struct { + unsigned char m_r0[4]; + unsigned char m_r1[4]; + } regs; }; - union { - unsigned short m_RAM[256*2]; /* 2 256-word internal RAM banks */ - struct { - unsigned short m_RAM0[256]; - unsigned short m_RAM1[256]; - } mem; + union + { + unsigned short m_RAM[256*2]; /* 2 256-word internal RAM banks */ + struct { + unsigned short m_RAM0[256]; + unsigned short m_RAM1[256]; + } mem; }; uint16_t m_stack[6]; /* 6-level hardware stack */ PAIR m_ppc; @@ -101,7 +103,6 @@ private: }; -extern const device_type SSP1601; - +DECLARE_DEVICE_TYPE(SSP1601, ssp1601_device) -#endif /* __SSP1601_H__ */ +#endif // MAME_CPU_SSP1601_SSP1601_H diff --git a/src/devices/cpu/superfx/superfx.cpp b/src/devices/cpu/superfx/superfx.cpp index d9487630348..a44d8bd7781 100644 --- a/src/devices/cpu/superfx/superfx.cpp +++ b/src/devices/cpu/superfx/superfx.cpp @@ -5,14 +5,14 @@ #include "superfx.h" -const device_type SUPERFX = device_creator; +DEFINE_DEVICE_TYPE(SUPERFX, superfx_device, "superfx", "SuperFX") superfx_device::superfx_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cpu_device(mconfig, SUPERFX, "SuperFX", tag, owner, clock, "superfx", __FILE__) + : cpu_device(mconfig, SUPERFX, tag, owner, clock) , m_program_config("program", ENDIANNESS_LITTLE, 8, 32, 0) - , m_out_irq_func(*this), m_pipeline(0), m_ramaddr(0), m_sfr(0), m_pbr(0), m_rombr(0), m_rambr(0), m_cbr(0), m_scbr(0), m_scmr(0), m_colr(0), m_por(0), - m_bramr(0), m_vcr(0), m_cfgr(0), m_clsr(0), m_romcl(0), m_romdr(0), m_ramcl(0), m_ramar(0), m_ramdr(0), m_sreg(nullptr), m_sreg_idx(0), m_dreg(nullptr), - m_dreg_idx(0), m_r15_modified(0), m_irq(0), m_cache_access_speed(0), m_memory_access_speed(0), m_program(nullptr), m_icount(0), m_debugger_temp(0) + , m_out_irq_func(*this), m_pipeline(0), m_ramaddr(0), m_sfr(0), m_pbr(0), m_rombr(0), m_rambr(0), m_cbr(0), m_scbr(0), m_scmr(0), m_colr(0), m_por(0) + , m_bramr(0), m_vcr(0), m_cfgr(0), m_clsr(0), m_romcl(0), m_romdr(0), m_ramcl(0), m_ramar(0), m_ramdr(0), m_sreg(nullptr), m_sreg_idx(0), m_dreg(nullptr) + , m_dreg_idx(0), m_r15_modified(0), m_irq(0), m_cache_access_speed(0), m_memory_access_speed(0), m_program(nullptr), m_icount(0), m_debugger_temp(0) { } diff --git a/src/devices/cpu/superfx/superfx.h b/src/devices/cpu/superfx/superfx.h index 13dd042ffea..f17c0e8349e 100644 --- a/src/devices/cpu/superfx/superfx.h +++ b/src/devices/cpu/superfx/superfx.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Ryan Holtz -#ifndef __SUPERFX_H__ -#define __SUPERFX_H__ +#ifndef MAME_CPU_SUPERFX_SUPERFX_H +#define MAME_CPU_SUPERFX_SUPERFX_H + +#pragma once enum @@ -97,7 +99,7 @@ public: superfx_device(const machine_config &mconfig, const char *_tag, device_t *_owner, uint32_t _clock); // static configuration helpers - template static devcb_base &set_out_irq_func(device_t &device, _Object object) { return downcast(device).m_out_irq_func.set_callback(object); } + template static devcb_base &set_out_irq_func(device_t &device, Object &&cb) { return downcast(device).m_out_irq_func.set_callback(std::forward(cb)); } uint8_t mmio_read(uint32_t addr); void mmio_write(uint32_t addr, uint8_t data); @@ -212,8 +214,8 @@ private: }; -extern const device_type SUPERFX; +DECLARE_DEVICE_TYPE(SUPERFX, superfx_device) offs_t superfx_dasm_one(std::ostream &stream, offs_t pc, uint8_t op, uint8_t param0, uint8_t param1, uint16_t alt); -#endif /* __SUPERFX_H__ */ +#endif // MAME_CPU_SUPERFX_SUPERFX_H diff --git a/src/devices/cpu/t11/t11.cpp b/src/devices/cpu/t11/t11.cpp index f02649af571..9ff4654cce7 100644 --- a/src/devices/cpu/t11/t11.cpp +++ b/src/devices/cpu/t11/t11.cpp @@ -12,8 +12,8 @@ *****************************************************************************/ #include "emu.h" -#include "debugger.h" #include "t11.h" +#include "debugger.h" /************************************* @@ -35,17 +35,17 @@ #define PSW m_psw.b.l -const device_type T11 = device_creator; -const device_type K1801VM2 = device_creator; +DEFINE_DEVICE_TYPE(T11, t11_device, "t11", "T11") +DEFINE_DEVICE_TYPE(K1801VM2, k1801vm2_device, "k1801vm2", "K1801VM2") k1801vm2_device::k1801vm2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : t11_device(mconfig, K1801VM2, "K1801VM2", tag, owner, clock, "k1801vm2", __FILE__) + : t11_device(mconfig, K1801VM2, tag, owner, clock) { } -t11_device::t11_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : cpu_device(mconfig, type, name, tag, owner, clock, shortname, source) +t11_device::t11_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : cpu_device(mconfig, type, tag, owner, clock) , m_program_config("program", ENDIANNESS_LITTLE, 16, 16, 0) , c_initial_mode(0) , m_out_reset_func(*this) @@ -56,14 +56,8 @@ t11_device::t11_device(const machine_config &mconfig, device_type type, const ch } t11_device::t11_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cpu_device(mconfig, T11, "T11", tag, owner, clock, "t11", __FILE__) - , m_program_config("program", ENDIANNESS_LITTLE, 16, 16, 0) - , c_initial_mode(0) - , m_out_reset_func(*this) + : t11_device(mconfig, T11, tag, owner, clock) { - m_program_config.m_is_octal = true; - memset(m_reg, 0x00, sizeof(m_reg)); - memset(&m_psw, 0x00, sizeof(m_psw)); } diff --git a/src/devices/cpu/t11/t11.h b/src/devices/cpu/t11/t11.h index a25f35f1a17..dbf62e6f5e5 100644 --- a/src/devices/cpu/t11/t11.h +++ b/src/devices/cpu/t11/t11.h @@ -2,10 +2,10 @@ // copyright-holders:Aaron Giles /*** T-11: Portable DEC T-11 emulator ******************************************/ -#pragma once +#ifndef MAME_CPU_T11_T11_H +#define MAME_CPU_T11_T11_H -#ifndef __T11_H__ -#define __T11_H__ +#pragma once enum @@ -39,13 +39,14 @@ class t11_device : public cpu_device public: // construction/destruction t11_device(const machine_config &mconfig, const char *_tag, device_t *_owner, uint32_t _clock); - t11_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); // static configuration helpers static void set_initial_mode(device_t &device, const uint16_t mode) { downcast(device).c_initial_mode = mode; } - template static devcb_base &set_out_reset_func(device_t &device, _Object object) { return downcast(device).m_out_reset_func.set_callback(object); } + template static devcb_base &set_out_reset_func(device_t &device, Object &&cb) { return downcast(device).m_out_reset_func.set_callback(std::forward(cb)); } protected: + t11_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -69,7 +70,6 @@ protected: virtual uint32_t disasm_max_opcode_bytes() const override { return 6; } virtual offs_t disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) override; -protected: address_space_config m_program_config; uint16_t c_initial_mode; @@ -1153,8 +1153,7 @@ protected: }; -extern const device_type T11; -extern const device_type K1801VM2; - +DECLARE_DEVICE_TYPE(T11, t11_device) +DECLARE_DEVICE_TYPE(K1801VM2, k1801vm2_device) -#endif /* __T11_H__ */ +#endif // MAME_CPU_T11_T11_H diff --git a/src/devices/cpu/tlcs870/tlcs870.cpp b/src/devices/cpu/tlcs870/tlcs870.cpp index 04d1e99568c..62f7a8de450 100644 --- a/src/devices/cpu/tlcs870/tlcs870.cpp +++ b/src/devices/cpu/tlcs870/tlcs870.cpp @@ -15,8 +15,8 @@ #include "emu.h" -#include "debugger.h" #include "tlcs870.h" +#include "debugger.h" // di, ei, j, and test are just 'alias' opcodes @@ -150,7 +150,7 @@ static const char *const reg16p[] = { -const device_type TMP87PH40AN = device_creator; +DEFINE_DEVICE_TYPE(TMP87PH40AN, tmp87ph40an_device, "tmp87ph40an", "TMP87PH40AN") static ADDRESS_MAP_START(tmp87ph40an_mem, AS_PROGRAM, 8, tlcs870_device) #if 0 @@ -233,8 +233,8 @@ static ADDRESS_MAP_START(tmp87ph40an_mem, AS_PROGRAM, 8, tlcs870_device) ADDRESS_MAP_END -tlcs870_device::tlcs870_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source, address_map_constructor program_map) - : cpu_device(mconfig, type, name, tag, owner, clock, shortname, source) +tlcs870_device::tlcs870_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, address_map_constructor program_map) + : cpu_device(mconfig, type, tag, owner, clock) , m_program_config("program", ENDIANNESS_LITTLE, 8, 16, 0, program_map) , m_io_config("io", ENDIANNESS_LITTLE, 8, 16, 0) , m_intram(*this, "intram") @@ -243,7 +243,7 @@ tlcs870_device::tlcs870_device(const machine_config &mconfig, device_type type, tmp87ph40an_device::tmp87ph40an_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : tlcs870_device(mconfig, TMP87PH40AN, "TMP87PH40AN", tag, owner, clock, "tmp87ph40an", __FILE__, ADDRESS_MAP_NAME(tmp87ph40an_mem)) + : tlcs870_device(mconfig, TMP87PH40AN, tag, owner, clock, ADDRESS_MAP_NAME(tmp87ph40an_mem)) { } diff --git a/src/devices/cpu/tlcs870/tlcs870.h b/src/devices/cpu/tlcs870/tlcs870.h index 43c31ce9cce..7d93d2abf22 100644 --- a/src/devices/cpu/tlcs870/tlcs870.h +++ b/src/devices/cpu/tlcs870/tlcs870.h @@ -1,17 +1,12 @@ // license:BSD-3-Clause // copyright-holders:David Haywood -#pragma once +#ifndef MAME_CPU_TLCS870_TLCS870_H +#define MAME_CPU_TLCS870_TLCS870_H -#ifndef TLCS870_H -#define TLCS870_H +#pragma once class tlcs870_device : public cpu_device { -public: - // construction/destruction - tlcs870_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source, address_map_constructor program_map); - - protected: enum _e_op { UNKNOWN = 0x00, @@ -87,7 +82,8 @@ protected: COND_F }; - uint32_t m_debugger_temp; + // construction/destruction + tlcs870_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, address_map_constructor program_map); // device-level overrides virtual void device_start() override; @@ -115,9 +111,10 @@ protected: virtual void disasm_disassemble_param(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options, int type, uint16_t val); virtual offs_t disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) override; -private: + uint32_t m_debugger_temp; +private: address_space_config m_program_config; address_space_config m_io_config; required_shared_ptr m_intram; @@ -187,7 +184,6 @@ public: }; +DECLARE_DEVICE_TYPE(TMP87PH40AN, tmp87ph40an_device) -extern const device_type TMP87PH40AN; - -#endif /* TLCS870_H */ +#endif // MAME_CPU_TLCS870_TLCS870_H diff --git a/src/devices/cpu/tlcs90/tlcs90.cpp b/src/devices/cpu/tlcs90/tlcs90.cpp index fa66e90025c..0fbbeaa2eb9 100644 --- a/src/devices/cpu/tlcs90/tlcs90.cpp +++ b/src/devices/cpu/tlcs90/tlcs90.cpp @@ -21,12 +21,12 @@ static const char *const op_names[] = { "??", "nop", "ex", "exx", ALLOW_SAVE_TYPE(tlcs90_device::e_mode); // allow save_item on a non-fundamental type -const device_type TMP90840 = device_creator; -const device_type TMP90841 = device_creator; -const device_type TMP90845 = device_creator; -const device_type TMP91640 = device_creator; -const device_type TMP91641 = device_creator; -const device_type TMP90PH44 = device_creator; +DEFINE_DEVICE_TYPE(TMP90840, tmp90840_device, "tmp90840", "TMP90840") +DEFINE_DEVICE_TYPE(TMP90841, tmp90841_device, "tmp90841", "TMP90841") +DEFINE_DEVICE_TYPE(TMP90845, tmp90845_device, "tmp90845", "TMP90845") +DEFINE_DEVICE_TYPE(TMP91640, tmp91640_device, "tmp91640", "TMP91640") +DEFINE_DEVICE_TYPE(TMP91641, tmp91641_device, "tmp91641", "TMP91641") +DEFINE_DEVICE_TYPE(TMP90PH44, tmp90ph44_device, "tmp90ph44", "TMP90PH44") static ADDRESS_MAP_START(tmp90840_mem, AS_PROGRAM, 8, tlcs90_device) @@ -60,8 +60,8 @@ static ADDRESS_MAP_START(tmp90ph44_mem, AS_PROGRAM, 8, tlcs90_device ) ADDRESS_MAP_END -tlcs90_device::tlcs90_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source, address_map_constructor program_map) - : cpu_device(mconfig, type, name, tag, owner, clock, shortname, source) +tlcs90_device::tlcs90_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, address_map_constructor program_map) + : cpu_device(mconfig, type, tag, owner, clock) , m_program_config("program", ENDIANNESS_LITTLE, 8, 20, 0, program_map) , m_io_config("io", ENDIANNESS_LITTLE, 8, 16, 0) { @@ -69,36 +69,36 @@ tlcs90_device::tlcs90_device(const machine_config &mconfig, device_type type, co tmp90840_device::tmp90840_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : tlcs90_device(mconfig, TMP90840, "TMP90840", tag, owner, clock, "tmp90840", __FILE__, ADDRESS_MAP_NAME(tmp90840_mem)) + : tlcs90_device(mconfig, TMP90840, tag, owner, clock, ADDRESS_MAP_NAME(tmp90840_mem)) { } tmp90841_device::tmp90841_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : tlcs90_device(mconfig, TMP90841, "TMP90841", tag, owner, clock, "tmp90841", __FILE__, ADDRESS_MAP_NAME(tmp90841_mem)) + : tlcs90_device(mconfig, TMP90841, tag, owner, clock, ADDRESS_MAP_NAME(tmp90841_mem)) { } tmp90845_device::tmp90845_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : tlcs90_device(mconfig, TMP90845, "TMP90845", tag, owner, clock, "tmp90845", __FILE__, ADDRESS_MAP_NAME(tmp90841_mem)) + : tlcs90_device(mconfig, TMP90845, tag, owner, clock, ADDRESS_MAP_NAME(tmp90841_mem)) { } tmp91640_device::tmp91640_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : tlcs90_device(mconfig, TMP91640, "TMP91640", tag, owner, clock, "tmp91640", __FILE__, ADDRESS_MAP_NAME(tmp91640_mem)) + : tlcs90_device(mconfig, TMP91640, tag, owner, clock, ADDRESS_MAP_NAME(tmp91640_mem)) { } tmp91641_device::tmp91641_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : tlcs90_device(mconfig, TMP91641, "TMP91641", tag, owner, clock, "tmp91641", __FILE__, ADDRESS_MAP_NAME(tmp91641_mem)) + : tlcs90_device(mconfig, TMP91641, tag, owner, clock, ADDRESS_MAP_NAME(tmp91641_mem)) { } tmp90ph44_device::tmp90ph44_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : tlcs90_device(mconfig, TMP90PH44, "TMP90PH44", tag, owner, clock, "tmp90ph44", __FILE__, ADDRESS_MAP_NAME(tmp90ph44_mem)) + : tlcs90_device(mconfig, TMP90PH44, tag, owner, clock, ADDRESS_MAP_NAME(tmp90ph44_mem)) { } diff --git a/src/devices/cpu/tlcs90/tlcs90.h b/src/devices/cpu/tlcs90/tlcs90.h index 286ea9ee305..9131e60003c 100644 --- a/src/devices/cpu/tlcs90/tlcs90.h +++ b/src/devices/cpu/tlcs90/tlcs90.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Luca Elia -#pragma once +#ifndef MAME_CPU_TLCS90_TLCS90_H +#define MAME_CPU_TLCS90_TLCS90_H -#ifndef __TLCS90_H__ -#define __TLCS90_H__ +#pragma once #define T90_IOBASE 0xffc0 @@ -24,9 +24,6 @@ DECLARE_ENUM_OPERATORS(tlcs90_e_irq) class tlcs90_device : public cpu_device { public: - // construction/destruction - tlcs90_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source, address_map_constructor program_map); - DECLARE_READ8_MEMBER( t90_internal_registers_r ); DECLARE_WRITE8_MEMBER( t90_internal_registers_w ); @@ -36,6 +33,9 @@ public: protected: enum _e_op { UNKNOWN, NOP, EX, EXX, LD, LDW, LDA, LDI, LDIR, LDD, LDDR, CPI, CPIR, CPD, CPDR, PUSH, POP, JP, JR, CALL, CALLR, RET, RETI, HALT, DI, EI, SWI, DAA, CPL, NEG, LDAR, RCF, SCF, CCF, TSET, BIT, SET, RES, INC, DEC, INCX, DECX, INCW, DECW, ADD, ADC, SUB, SBC, AND, XOR, OR, CP, RLC, RRC, RL, RR, SLA, SRA, SLL, SRL, RLD, RRD, DJNZ, MUL, DIV }; + // construction/destruction + tlcs90_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, address_map_constructor program_map); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -191,11 +191,11 @@ public: }; -extern const device_type TMP90840; -extern const device_type TMP90841; -extern const device_type TMP90845; -extern const device_type TMP91640; -extern const device_type TMP91641; -extern const device_type TMP90PH44; +DECLARE_DEVICE_TYPE(TMP90840, tmp90840_device) +DECLARE_DEVICE_TYPE(TMP90841, tmp90841_device) +DECLARE_DEVICE_TYPE(TMP90845, tmp90845_device) +DECLARE_DEVICE_TYPE(TMP91640, tmp91640_device) +DECLARE_DEVICE_TYPE(TMP91641, tmp91641_device) +DECLARE_DEVICE_TYPE(TMP90PH44, tmp90ph44_device) -#endif /* __TLCS90_H__ */ +#endif // MAME_CPU_TLCS90_TLCS90_H diff --git a/src/devices/cpu/tlcs900/tlcs900.cpp b/src/devices/cpu/tlcs900/tlcs900.cpp index 96031d0637e..d627fcf044e 100644 --- a/src/devices/cpu/tlcs900/tlcs900.cpp +++ b/src/devices/cpu/tlcs900/tlcs900.cpp @@ -16,12 +16,12 @@ TODO: *******************************************************************/ #include "emu.h" -#include "debugger.h" #include "tlcs900.h" +#include "debugger.h" -const device_type TMP95C061 = device_creator; -const device_type TMP95C063 = device_creator; +DEFINE_DEVICE_TYPE(TMP95C061, tmp95c061_device, "tmp95c061", "TMP95C061") +DEFINE_DEVICE_TYPE(TMP95C063, tmp95c063_device, "tmp95c063", "TMP95C063") static ADDRESS_MAP_START( tmp95c061_mem8, AS_PROGRAM, 8, tmp95c061_device ) @@ -42,14 +42,14 @@ static ADDRESS_MAP_START(tmp95c063_mem16, AS_PROGRAM, 16, tmp95c063_device ) ADDRESS_MAP_END -tlcs900h_device::tlcs900h_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname) - : cpu_device(mconfig, type, name, tag, owner, clock, shortname, __FILE__), +tlcs900h_device::tlcs900h_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : cpu_device(mconfig, type, tag, owner, clock), m_am8_16(0) { } tmp95c061_device::tmp95c061_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : tlcs900h_device(mconfig, TMP95C061, "TMP95C061", tag, owner, clock, "tmp95c061" ), + : tlcs900h_device(mconfig, TMP95C061, tag, owner, clock), m_port1_read(*this), m_port1_write(*this), m_port2_write(*this), @@ -88,7 +88,7 @@ void tmp95c061_device::device_config_complete() } tmp95c063_device::tmp95c063_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : tlcs900h_device(mconfig, TMP95C063, "TMP95C063", tag, owner, clock, "tmp95c063"), + : tlcs900h_device(mconfig, TMP95C063, tag, owner, clock), m_port1_read(*this), m_port1_write(*this), m_port2_write(*this), diff --git a/src/devices/cpu/tlcs900/tlcs900.h b/src/devices/cpu/tlcs900/tlcs900.h index 6c922ce66dc..197b11f1398 100644 --- a/src/devices/cpu/tlcs900/tlcs900.h +++ b/src/devices/cpu/tlcs900/tlcs900.h @@ -1,8 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Wilbert Pol -#ifndef __TLCS900_H__ -#define __TLCS900_H__ +#ifndef MAME_CPU_TLCS900_TLCS900_H +#define MAME_CPU_TLCS900_TLCS900_H +#pragma once enum tlcs900_inputs @@ -39,8 +40,8 @@ enum }; -extern const device_type TMP95C061; -extern const device_type TMP95C063; +DECLARE_DEVICE_TYPE(TMP95C061, tmp95c061_device) +DECLARE_DEVICE_TYPE(TMP95C063, tmp95c063_device) #define MCFG_TLCS900H_AM8_16( am8_16 ) tlcs900h_device::set_am8_16( *device, am8_16 ); @@ -48,13 +49,13 @@ extern const device_type TMP95C063; class tlcs900h_device : public cpu_device { public: - // construction/destruction - tlcs900h_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname); - // static configuration helpers static void set_am8_16(device_t &device, int am8_16) { downcast(device).m_am8_16 = am8_16; } protected: + // construction/destruction + tlcs900h_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; @@ -655,21 +656,21 @@ public: tmp95c061_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // static configuration helpers - template static devcb_base &set_port1_read(device_t &device, _Object object) { return downcast(device).m_port1_read.set_callback(object); } - template static devcb_base &set_port1_write(device_t &device, _Object object) { return downcast(device).m_port1_write.set_callback(object); } - template static devcb_base &set_port2_write(device_t &device, _Object object) { return downcast(device).m_port2_write.set_callback(object); } - template static devcb_base &set_port5_read(device_t &device, _Object object) { return downcast(device).m_port5_read.set_callback(object); } - template static devcb_base &set_port5_write(device_t &device, _Object object) { return downcast(device).m_port5_write.set_callback(object); } - template static devcb_base &set_port6_write(device_t &device, _Object object) { return downcast(device).m_port6_write.set_callback(object); } - template static devcb_base &set_port7_read(device_t &device, _Object object) { return downcast(device).m_port7_read.set_callback(object); } - template static devcb_base &set_port7_write(device_t &device, _Object object) { return downcast(device).m_port7_write.set_callback(object); } - template static devcb_base &set_port8_read(device_t &device, _Object object) { return downcast(device).m_port8_read.set_callback(object); } - template static devcb_base &set_port8_write(device_t &device, _Object object) { return downcast(device).m_port8_write.set_callback(object); } - template static devcb_base &set_port9_read(device_t &device, _Object object) { return downcast(device).m_port9_read.set_callback(object); } - template static devcb_base &set_porta_read(device_t &device, _Object object) { return downcast(device).m_porta_read.set_callback(object); } - template static devcb_base &set_porta_write(device_t &device, _Object object) { return downcast(device).m_porta_write.set_callback(object); } - template static devcb_base &set_portb_read(device_t &device, _Object object) { return downcast(device).m_portb_read.set_callback(object); } - template static devcb_base &set_portb_write(device_t &device, _Object object) { return downcast(device).m_portb_write.set_callback(object); } + template static devcb_base &set_port1_read(device_t &device, Object &&cb) { return downcast(device).m_port1_read.set_callback(std::forward(cb)); } + template static devcb_base &set_port1_write(device_t &device, Object &&cb) { return downcast(device).m_port1_write.set_callback(std::forward(cb)); } + template static devcb_base &set_port2_write(device_t &device, Object &&cb) { return downcast(device).m_port2_write.set_callback(std::forward(cb)); } + template static devcb_base &set_port5_read(device_t &device, Object &&cb) { return downcast(device).m_port5_read.set_callback(std::forward(cb)); } + template static devcb_base &set_port5_write(device_t &device, Object &&cb) { return downcast(device).m_port5_write.set_callback(std::forward(cb)); } + template static devcb_base &set_port6_write(device_t &device, Object &&cb) { return downcast(device).m_port6_write.set_callback(std::forward(cb)); } + template static devcb_base &set_port7_read(device_t &device, Object &&cb) { return downcast(device).m_port7_read.set_callback(std::forward(cb)); } + template static devcb_base &set_port7_write(device_t &device, Object &&cb) { return downcast(device).m_port7_write.set_callback(std::forward(cb)); } + template static devcb_base &set_port8_read(device_t &device, Object &&cb) { return downcast(device).m_port8_read.set_callback(std::forward(cb)); } + template static devcb_base &set_port8_write(device_t &device, Object &&cb) { return downcast(device).m_port8_write.set_callback(std::forward(cb)); } + template static devcb_base &set_port9_read(device_t &device, Object &&cb) { return downcast(device).m_port9_read.set_callback(std::forward(cb)); } + template static devcb_base &set_porta_read(device_t &device, Object &&cb) { return downcast(device).m_porta_read.set_callback(std::forward(cb)); } + template static devcb_base &set_porta_write(device_t &device, Object &&cb) { return downcast(device).m_porta_write.set_callback(std::forward(cb)); } + template static devcb_base &set_portb_read(device_t &device, Object &&cb) { return downcast(device).m_portb_read.set_callback(std::forward(cb)); } + template static devcb_base &set_portb_write(device_t &device, Object &&cb) { return downcast(device).m_portb_write.set_callback(std::forward(cb)); } DECLARE_READ8_MEMBER( internal_r ); DECLARE_WRITE8_MEMBER( internal_w ); @@ -778,36 +779,36 @@ public: DECLARE_WRITE8_MEMBER( internal_w ); // static configuration helpers - template static devcb_base &set_port1_read(device_t &device, _Object object) { return downcast(device).m_port1_read.set_callback(object); } - template static devcb_base &set_port1_write(device_t &device, _Object object) { return downcast(device).m_port1_write.set_callback(object); } - template static devcb_base &set_port2_write(device_t &device, _Object object) { return downcast(device).m_port2_write.set_callback(object); } - template static devcb_base &set_port5_read(device_t &device, _Object object) { return downcast(device).m_port5_read.set_callback(object); } - template static devcb_base &set_port5_write(device_t &device, _Object object) { return downcast(device).m_port5_write.set_callback(object); } - template static devcb_base &set_port6_read(device_t &device, _Object object) { return downcast(device).m_port6_read.set_callback(object); } - template static devcb_base &set_port6_write(device_t &device, _Object object) { return downcast(device).m_port6_write.set_callback(object); } - template static devcb_base &set_port7_read(device_t &device, _Object object) { return downcast(device).m_port7_read.set_callback(object); } - template static devcb_base &set_port7_write(device_t &device, _Object object) { return downcast(device).m_port7_write.set_callback(object); } - template static devcb_base &set_port8_read(device_t &device, _Object object) { return downcast(device).m_port8_read.set_callback(object); } - template static devcb_base &set_port8_write(device_t &device, _Object object) { return downcast(device).m_port8_write.set_callback(object); } - template static devcb_base &set_port9_read(device_t &device, _Object object) { return downcast(device).m_port9_read.set_callback(object); } - template static devcb_base &set_port9_write(device_t &device, _Object object) { return downcast(device).m_port9_write.set_callback(object); } - template static devcb_base &set_porta_read(device_t &device, _Object object) { return downcast(device).m_porta_read.set_callback(object); } - template static devcb_base &set_porta_write(device_t &device, _Object object) { return downcast(device).m_porta_write.set_callback(object); } - template static devcb_base &set_portb_read(device_t &device, _Object object) { return downcast(device).m_portb_read.set_callback(object); } - template static devcb_base &set_portb_write(device_t &device, _Object object) { return downcast(device).m_portb_write.set_callback(object); } - template static devcb_base &set_portc_read(device_t &device, _Object object) { return downcast(device).m_portc_read.set_callback(object); } - template static devcb_base &set_portd_read(device_t &device, _Object object) { return downcast(device).m_portd_read.set_callback(object); } - template static devcb_base &set_portd_write(device_t &device, _Object object) { return downcast(device).m_portd_write.set_callback(object); } - template static devcb_base &set_porte_read(device_t &device, _Object object) { return downcast(device).m_porte_read.set_callback(object); } - template static devcb_base &set_porte_write(device_t &device, _Object object) { return downcast(device).m_porte_write.set_callback(object); } - template static devcb_base &set_an0_read(device_t &device, _Object object) { return downcast(device).m_an0_read.set_callback(object); } - template static devcb_base &set_an1_read(device_t &device, _Object object) { return downcast(device).m_an1_read.set_callback(object); } - template static devcb_base &set_an2_read(device_t &device, _Object object) { return downcast(device).m_an2_read.set_callback(object); } - template static devcb_base &set_an3_read(device_t &device, _Object object) { return downcast(device).m_an3_read.set_callback(object); } - template static devcb_base &set_an4_read(device_t &device, _Object object) { return downcast(device).m_an4_read.set_callback(object); } - template static devcb_base &set_an5_read(device_t &device, _Object object) { return downcast(device).m_an5_read.set_callback(object); } - template static devcb_base &set_an6_read(device_t &device, _Object object) { return downcast(device).m_an6_read.set_callback(object); } - template static devcb_base &set_an7_read(device_t &device, _Object object) { return downcast(device).m_an7_read.set_callback(object); } + template static devcb_base &set_port1_read(device_t &device, Object &&cb) { return downcast(device).m_port1_read.set_callback(std::forward(cb)); } + template static devcb_base &set_port1_write(device_t &device, Object &&cb) { return downcast(device).m_port1_write.set_callback(std::forward(cb)); } + template static devcb_base &set_port2_write(device_t &device, Object &&cb) { return downcast(device).m_port2_write.set_callback(std::forward(cb)); } + template static devcb_base &set_port5_read(device_t &device, Object &&cb) { return downcast(device).m_port5_read.set_callback(std::forward(cb)); } + template static devcb_base &set_port5_write(device_t &device, Object &&cb) { return downcast(device).m_port5_write.set_callback(std::forward(cb)); } + template static devcb_base &set_port6_read(device_t &device, Object &&cb) { return downcast(device).m_port6_read.set_callback(std::forward(cb)); } + template static devcb_base &set_port6_write(device_t &device, Object &&cb) { return downcast(device).m_port6_write.set_callback(std::forward(cb)); } + template static devcb_base &set_port7_read(device_t &device, Object &&cb) { return downcast(device).m_port7_read.set_callback(std::forward(cb)); } + template static devcb_base &set_port7_write(device_t &device, Object &&cb) { return downcast(device).m_port7_write.set_callback(std::forward(cb)); } + template static devcb_base &set_port8_read(device_t &device, Object &&cb) { return downcast(device).m_port8_read.set_callback(std::forward(cb)); } + template static devcb_base &set_port8_write(device_t &device, Object &&cb) { return downcast(device).m_port8_write.set_callback(std::forward(cb)); } + template static devcb_base &set_port9_read(device_t &device, Object &&cb) { return downcast(device).m_port9_read.set_callback(std::forward(cb)); } + template static devcb_base &set_port9_write(device_t &device, Object &&cb) { return downcast(device).m_port9_write.set_callback(std::forward(cb)); } + template static devcb_base &set_porta_read(device_t &device, Object &&cb) { return downcast(device).m_porta_read.set_callback(std::forward(cb)); } + template static devcb_base &set_porta_write(device_t &device, Object &&cb) { return downcast(device).m_porta_write.set_callback(std::forward(cb)); } + template static devcb_base &set_portb_read(device_t &device, Object &&cb) { return downcast(device).m_portb_read.set_callback(std::forward(cb)); } + template static devcb_base &set_portb_write(device_t &device, Object &&cb) { return downcast(device).m_portb_write.set_callback(std::forward(cb)); } + template static devcb_base &set_portc_read(device_t &device, Object &&cb) { return downcast(device).m_portc_read.set_callback(std::forward(cb)); } + template static devcb_base &set_portd_read(device_t &device, Object &&cb) { return downcast(device).m_portd_read.set_callback(std::forward(cb)); } + template static devcb_base &set_portd_write(device_t &device, Object &&cb) { return downcast(device).m_portd_write.set_callback(std::forward(cb)); } + template static devcb_base &set_porte_read(device_t &device, Object &&cb) { return downcast(device).m_porte_read.set_callback(std::forward(cb)); } + template static devcb_base &set_porte_write(device_t &device, Object &&cb) { return downcast(device).m_porte_write.set_callback(std::forward(cb)); } + template static devcb_base &set_an0_read(device_t &device, Object &&cb) { return downcast(device).m_an0_read.set_callback(std::forward(cb)); } + template static devcb_base &set_an1_read(device_t &device, Object &&cb) { return downcast(device).m_an1_read.set_callback(std::forward(cb)); } + template static devcb_base &set_an2_read(device_t &device, Object &&cb) { return downcast(device).m_an2_read.set_callback(std::forward(cb)); } + template static devcb_base &set_an3_read(device_t &device, Object &&cb) { return downcast(device).m_an3_read.set_callback(std::forward(cb)); } + template static devcb_base &set_an4_read(device_t &device, Object &&cb) { return downcast(device).m_an4_read.set_callback(std::forward(cb)); } + template static devcb_base &set_an5_read(device_t &device, Object &&cb) { return downcast(device).m_an5_read.set_callback(std::forward(cb)); } + template static devcb_base &set_an6_read(device_t &device, Object &&cb) { return downcast(device).m_an6_read.set_callback(std::forward(cb)); } + template static devcb_base &set_an7_read(device_t &device, Object &&cb) { return downcast(device).m_an7_read.set_callback(std::forward(cb)); } protected: virtual void device_config_complete() override; @@ -878,4 +879,4 @@ private: devcb_read16 m_an7_read; }; -#endif +#endif // MAME_CPU_TLCS900_TLCS900_H diff --git a/src/devices/cpu/tms1000/tms0270.cpp b/src/devices/cpu/tms1000/tms0270.cpp index c7dec0f2544..b92bdaef1d6 100644 --- a/src/devices/cpu/tms1000/tms0270.cpp +++ b/src/devices/cpu/tms1000/tms0270.cpp @@ -15,7 +15,7 @@ // - 64-term microinstructions PLA between the RAM and ROM, similar to TMS0980, // plus optional separate lines for custom opcode handling // - 48-term output PLA above the RAM (rotate opla 90 degrees) -const device_type TMS0270 = device_creator; // 40-pin DIP, 16 O pins, 8+ R pins (some R pins are internally hooked up to support more I/O) +DEFINE_DEVICE_TYPE(TMS0270, tms0270_cpu_device, "tms0270", "TMS0270") // 40-pin DIP, 16 O pins, 8+ R pins (some R pins are internally hooked up to support more I/O) // newer TMS0270 chips (eg. Speak & Math) have 42 pins // TMS0260 is same or similar? @@ -34,11 +34,12 @@ ADDRESS_MAP_END // device definitions tms0270_cpu_device::tms0270_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : tms0980_cpu_device(mconfig, TMS0270, "TMS0270", tag, owner, clock, 16 /* o pins */, 16 /* r pins */, 7 /* pc bits */, 9 /* byte width */, 4 /* x width */, 12 /* prg width */, ADDRESS_MAP_NAME(program_11bit_9), 8 /* data width */, ADDRESS_MAP_NAME(data_144x4), "tms0270", __FILE__) + : tms0980_cpu_device(mconfig, TMS0270, tag, owner, clock, 16 /* o pins */, 16 /* r pins */, 7 /* pc bits */, 9 /* byte width */, 4 /* x width */, 12 /* prg width */, ADDRESS_MAP_NAME(program_11bit_9), 8 /* data width */, ADDRESS_MAP_NAME(data_144x4)) , m_read_ctl(*this) , m_write_ctl(*this) , m_write_pdc(*this) -{ } +{ +} // machine configs @@ -46,11 +47,11 @@ static MACHINE_CONFIG_FRAGMENT(tms0270) // main opcodes PLA, microinstructions PLA, output PLA MCFG_PLA_ADD("ipla", 9, 22, 24) - MCFG_PLA_FILEFORMAT(PLA_FMT_BERKELEY) + MCFG_PLA_FILEFORMAT(BERKELEY) MCFG_PLA_ADD("mpla", 6, 22, 64) - MCFG_PLA_FILEFORMAT(PLA_FMT_BERKELEY) + MCFG_PLA_FILEFORMAT(BERKELEY) MCFG_PLA_ADD("opla", 6, 16, 48) - MCFG_PLA_FILEFORMAT(PLA_FMT_BERKELEY) + MCFG_PLA_FILEFORMAT(BERKELEY) MACHINE_CONFIG_END machine_config_constructor tms0270_cpu_device::device_mconfig_additions() const diff --git a/src/devices/cpu/tms1000/tms0270.h b/src/devices/cpu/tms1000/tms0270.h index b60395c6329..e8e1d804aa3 100644 --- a/src/devices/cpu/tms1000/tms0270.h +++ b/src/devices/cpu/tms1000/tms0270.h @@ -6,8 +6,10 @@ */ -#ifndef _TMS0270_H_ -#define _TMS0270_H_ +#ifndef MAME_CPU_TMS1000_TMS0270_H +#define MAME_CPU_TMS1000_TMS0270_H + +#pragma once #include "tms0980.h" @@ -29,9 +31,9 @@ public: tms0270_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); // static configuration helpers - template static devcb_base &set_read_ctl_callback(device_t &device, _Object object) { return downcast(device).m_read_ctl.set_callback(object); } - template static devcb_base &set_write_ctl_callback(device_t &device, _Object object) { return downcast(device).m_write_ctl.set_callback(object); } - template static devcb_base &set_write_pdc_callback(device_t &device, _Object object) { return downcast(device).m_write_pdc.set_callback(object); } + template static devcb_base &set_read_ctl_callback(device_t &device, Object &&cb) { return downcast(device).m_read_ctl.set_callback(std::forward(cb)); } + template static devcb_base &set_write_ctl_callback(device_t &device, Object &&cb) { return downcast(device).m_write_ctl.set_callback(std::forward(cb)); } + template static devcb_base &set_write_pdc_callback(device_t &device, Object &&cb) { return downcast(device).m_write_pdc.set_callback(std::forward(cb)); } protected: // overrides @@ -66,6 +68,6 @@ private: }; -extern const device_type TMS0270; +DECLARE_DEVICE_TYPE(TMS0270, tms0270_cpu_device) -#endif /* _TMS0270_H_ */ +#endif // MAME_CPU_TMS1000_TMS0270_H diff --git a/src/devices/cpu/tms1000/tms0970.cpp b/src/devices/cpu/tms1000/tms0970.cpp index c4fbd7618df..305e3e98260 100644 --- a/src/devices/cpu/tms1000/tms0970.cpp +++ b/src/devices/cpu/tms1000/tms0970.cpp @@ -13,7 +13,7 @@ // TMS0950 is a TMS1000 with a TMS0980 style opla, it was quickly succeeded by the TMS0970 // - RAM, ROM, microinstructions is the same as TMS1000 // - 10-term inverted output PLA and segment PLA on the top-left -const device_type TMS0950 = device_creator; // 28-pin DIP, 8 O pins, 11? R pins +DEFINE_DEVICE_TYPE(TMS0950, tms0950_cpu_device, "tms0950", "TMS0950") // 28-pin DIP, 8 O pins, 11? R pins // TMS0970 is a stripped-down version of the TMS0980, itself acting more like a TMS1000 // - RAM and ROM is the same as TMS1000 @@ -22,8 +22,8 @@ const device_type TMS0950 = device_creator; // 28-pin DIP, 8 // RETN, SETR, RBIT, SBIT, LDX, COMX, TDO, ..., redir(----0-00), LDP // - 32-term microinstructions PLA between the RAM and ROM, supporting 15 microinstructions // - 16-term inverted output PLA and segment PLA above the RAM (rotate opla 90 degrees) -const device_type TMS0970 = device_creator; // 28-pin DIP, 11 R pins (note: pinout may slightly differ from chip to chip) -const device_type TMS1990 = device_creator; // 28-pin DIP, ? R pins.. +DEFINE_DEVICE_TYPE(TMS0970, tms0970_cpu_device, "tms0970", "TMS0970") // 28-pin DIP, 11 R pins (note: pinout may slightly differ from chip to chip) +DEFINE_DEVICE_TYPE(TMS1990, tms1990_cpu_device, "tms1990", "TMS1990") // 28-pin DIP, ? R pins.. // internal memory maps @@ -38,20 +38,24 @@ ADDRESS_MAP_END // device definitions tms0970_cpu_device::tms0970_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : tms1000_cpu_device(mconfig, TMS0970, "TMS0970", tag, owner, clock, 8 /* o pins */, 11 /* r pins */, 6 /* pc bits */, 8 /* byte width */, 2 /* x width */, 10 /* prg width */, ADDRESS_MAP_NAME(program_10bit_8), 6 /* data width */, ADDRESS_MAP_NAME(data_64x4), "tms0970", __FILE__) -{ } + : tms0970_cpu_device(mconfig, TMS0970, tag, owner, clock, 8 /* o pins */, 11 /* r pins */, 6 /* pc bits */, 8 /* byte width */, 2 /* x width */, 10 /* prg width */, ADDRESS_MAP_NAME(program_10bit_8), 6 /* data width */, ADDRESS_MAP_NAME(data_64x4)) +{ +} -tms0970_cpu_device::tms0970_cpu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, u32 clock, u8 o_pins, u8 r_pins, u8 pc_bits, u8 byte_bits, u8 x_bits, int prgwidth, address_map_constructor program, int datawidth, address_map_constructor data, const char *shortname, const char *source) - : tms1000_cpu_device(mconfig, type, name, tag, owner, clock, o_pins, r_pins, pc_bits, byte_bits, x_bits, prgwidth, program, datawidth, data, shortname, source) -{ } +tms0970_cpu_device::tms0970_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, u8 o_pins, u8 r_pins, u8 pc_bits, u8 byte_bits, u8 x_bits, int prgwidth, address_map_constructor program, int datawidth, address_map_constructor data) + : tms1000_cpu_device(mconfig, type, tag, owner, clock, o_pins, r_pins, pc_bits, byte_bits, x_bits, prgwidth, program, datawidth, data) +{ +} tms0950_cpu_device::tms0950_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : tms0970_cpu_device(mconfig, TMS0950, "TMS0950", tag, owner, clock, 8, 11, 6, 8, 2, 10, ADDRESS_MAP_NAME(program_10bit_8), 6, ADDRESS_MAP_NAME(data_64x4), "tms0950", __FILE__) -{ } + : tms0970_cpu_device(mconfig, TMS0950, tag, owner, clock, 8, 11, 6, 8, 2, 10, ADDRESS_MAP_NAME(program_10bit_8), 6, ADDRESS_MAP_NAME(data_64x4)) +{ +} tms1990_cpu_device::tms1990_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : tms0970_cpu_device(mconfig, TMS1990, "TMS1990", tag, owner, clock, 8, 11, 6, 8, 2, 10, ADDRESS_MAP_NAME(program_10bit_8), 6, ADDRESS_MAP_NAME(data_64x4), "tms1990", __FILE__) -{ } + : tms0970_cpu_device(mconfig, TMS1990, tag, owner, clock, 8, 11, 6, 8, 2, 10, ADDRESS_MAP_NAME(program_10bit_8), 6, ADDRESS_MAP_NAME(data_64x4)) +{ +} // machine configs @@ -59,11 +63,11 @@ static MACHINE_CONFIG_FRAGMENT(tms0950) // microinstructions PLA, output PLA, segment PLA MCFG_PLA_ADD("mpla", 8, 16, 30) - MCFG_PLA_FILEFORMAT(PLA_FMT_BERKELEY) + MCFG_PLA_FILEFORMAT(BERKELEY) MCFG_PLA_ADD("opla", 4, 8, 10) - MCFG_PLA_FILEFORMAT(PLA_FMT_BERKELEY) + MCFG_PLA_FILEFORMAT(BERKELEY) MCFG_PLA_ADD("spla", 3, 8, 8) - MCFG_PLA_FILEFORMAT(PLA_FMT_BERKELEY) + MCFG_PLA_FILEFORMAT(BERKELEY) MACHINE_CONFIG_END machine_config_constructor tms0950_cpu_device::device_mconfig_additions() const @@ -75,13 +79,13 @@ static MACHINE_CONFIG_FRAGMENT(tms0970) // main opcodes PLA, microinstructions PLA, output PLA, segment PLA MCFG_PLA_ADD("ipla", 8, 15, 18) - MCFG_PLA_FILEFORMAT(PLA_FMT_BERKELEY) + MCFG_PLA_FILEFORMAT(BERKELEY) MCFG_PLA_ADD("mpla", 5, 15, 32) - MCFG_PLA_FILEFORMAT(PLA_FMT_BERKELEY) + MCFG_PLA_FILEFORMAT(BERKELEY) MCFG_PLA_ADD("opla", 4, 8, 16) - MCFG_PLA_FILEFORMAT(PLA_FMT_BERKELEY) + MCFG_PLA_FILEFORMAT(BERKELEY) MCFG_PLA_ADD("spla", 3, 8, 8) - MCFG_PLA_FILEFORMAT(PLA_FMT_BERKELEY) + MCFG_PLA_FILEFORMAT(BERKELEY) MACHINE_CONFIG_END machine_config_constructor tms0970_cpu_device::device_mconfig_additions() const diff --git a/src/devices/cpu/tms1000/tms0970.h b/src/devices/cpu/tms1000/tms0970.h index ca436163374..3fb46975a3e 100644 --- a/src/devices/cpu/tms1000/tms0970.h +++ b/src/devices/cpu/tms1000/tms0970.h @@ -6,8 +6,10 @@ */ -#ifndef _TMS0970_H_ -#define _TMS0970_H_ +#ifndef MAME_CPU_TMS1000_TMS0970_H +#define MAME_CPU_TMS1000_TMS0970_H + +#pragma once #include "tms1000.h" @@ -16,9 +18,10 @@ class tms0970_cpu_device : public tms1000_cpu_device { public: tms0970_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); - tms0970_cpu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, u32 clock, u8 o_pins, u8 r_pins, u8 pc_bits, u8 byte_bits, u8 x_bits, int prgwidth, address_map_constructor program, int datawidth, address_map_constructor data, const char *shortname, const char *source); protected: + tms0970_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, u8 o_pins, u8 r_pins, u8 pc_bits, u8 byte_bits, u8 x_bits, int prgwidth, address_map_constructor program, int datawidth, address_map_constructor data); + // overrides virtual void device_reset() override; virtual machine_config_constructor device_mconfig_additions() const override; @@ -39,8 +42,8 @@ protected: virtual void device_reset() override { tms1000_cpu_device::device_reset(); } virtual machine_config_constructor device_mconfig_additions() const override; - virtual void op_rstr() override { ; } // assume it has no RSTR or CLO - virtual void op_clo() override { ; } // " + virtual void op_rstr() override { } // assume it has no RSTR or CLO + virtual void op_clo() override { } // " }; class tms1990_cpu_device : public tms0970_cpu_device @@ -50,8 +53,8 @@ public: }; -extern const device_type TMS0950; -extern const device_type TMS0970; -extern const device_type TMS1990; +DECLARE_DEVICE_TYPE(TMS0950, tms0950_cpu_device) +DECLARE_DEVICE_TYPE(TMS0970, tms0970_cpu_device) +DECLARE_DEVICE_TYPE(TMS1990, tms1990_cpu_device) -#endif /* _TMS0970_H_ */ +#endif // MAME_CPU_TMS1000_TMS0970_H diff --git a/src/devices/cpu/tms1000/tms0980.cpp b/src/devices/cpu/tms1000/tms0980.cpp index b9bef8d3cf8..e18b9db20d2 100644 --- a/src/devices/cpu/tms1000/tms0980.cpp +++ b/src/devices/cpu/tms1000/tms0980.cpp @@ -20,13 +20,13 @@ // TDO, SBIT, RETN, SETR, REAC, XDA, SAL, RBIT, ..., OFF, SBL, LDP, redir(------00- + R0^BL) // - 64-term microinstructions PLA between the RAM and ROM, supporting 20 microinstructions // - 16-term inverted output PLA and segment PLA above the RAM (rotate opla 90 degrees) -const device_type TMS0980 = device_creator; // 28-pin DIP, 9 R pins +DEFINE_DEVICE_TYPE(TMS0980, tms0980_cpu_device, "tms0980", "TMS0980") // 28-pin DIP, 9 R pins // TMS1980 is a TMS0980 with a TMS1x00 style opla // - RAM, ROM, and main instructions PLAs is the same as TMS0980 // - one of the microinstructions redirects to a RSTR instruction, like on TMS0270 // - 32-term inverted output PLA above the RAM, 7 bits! (rotate opla 270 degrees) -const device_type TMS1980 = device_creator; // 28-pin DIP, 7 O pins, 10 R pins, high voltage +DEFINE_DEVICE_TYPE(TMS1980, tms1980_cpu_device, "tms1980", "TMS1980") // 28-pin DIP, 7 O pins, 10 R pins, high voltage // internal memory maps @@ -42,16 +42,19 @@ ADDRESS_MAP_END // device definitions tms0980_cpu_device::tms0980_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : tms0970_cpu_device(mconfig, TMS0980, "TMS0980", tag, owner, clock, 8 /* o pins */, 9 /* r pins */, 7 /* pc bits */, 9 /* byte width */, 4 /* x width */, 12 /* prg width */, ADDRESS_MAP_NAME(program_11bit_9), 8 /* data width */, ADDRESS_MAP_NAME(data_144x4), "tms0980", __FILE__) -{ } + : tms0980_cpu_device(mconfig, TMS0980, tag, owner, clock, 8 /* o pins */, 9 /* r pins */, 7 /* pc bits */, 9 /* byte width */, 4 /* x width */, 12 /* prg width */, ADDRESS_MAP_NAME(program_11bit_9), 8 /* data width */, ADDRESS_MAP_NAME(data_144x4)) +{ +} -tms0980_cpu_device::tms0980_cpu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, u32 clock, u8 o_pins, u8 r_pins, u8 pc_bits, u8 byte_bits, u8 x_bits, int prgwidth, address_map_constructor program, int datawidth, address_map_constructor data, const char *shortname, const char *source) - : tms0970_cpu_device(mconfig, type, name, tag, owner, clock, o_pins, r_pins, pc_bits, byte_bits, x_bits, prgwidth, program, datawidth, data, shortname, source) -{ } +tms0980_cpu_device::tms0980_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, u8 o_pins, u8 r_pins, u8 pc_bits, u8 byte_bits, u8 x_bits, int prgwidth, address_map_constructor program, int datawidth, address_map_constructor data) + : tms0970_cpu_device(mconfig, type, tag, owner, clock, o_pins, r_pins, pc_bits, byte_bits, x_bits, prgwidth, program, datawidth, data) +{ +} tms1980_cpu_device::tms1980_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : tms0980_cpu_device(mconfig, TMS1980, "TMS1980", tag, owner, clock, 7, 10, 7, 9, 4, 12, ADDRESS_MAP_NAME(program_11bit_9), 8, ADDRESS_MAP_NAME(data_144x4), "tms1980", __FILE__) -{ } + : tms0980_cpu_device(mconfig, TMS1980, tag, owner, clock, 7, 10, 7, 9, 4, 12, ADDRESS_MAP_NAME(program_11bit_9), 8, ADDRESS_MAP_NAME(data_144x4)) +{ +} // machine configs @@ -59,13 +62,13 @@ static MACHINE_CONFIG_FRAGMENT(tms0980) // main opcodes PLA, microinstructions PLA, output PLA, segment PLA MCFG_PLA_ADD("ipla", 9, 22, 24) - MCFG_PLA_FILEFORMAT(PLA_FMT_BERKELEY) + MCFG_PLA_FILEFORMAT(BERKELEY) MCFG_PLA_ADD("mpla", 6, 20, 64) - MCFG_PLA_FILEFORMAT(PLA_FMT_BERKELEY) + MCFG_PLA_FILEFORMAT(BERKELEY) MCFG_PLA_ADD("opla", 4, 8, 16) - MCFG_PLA_FILEFORMAT(PLA_FMT_BERKELEY) + MCFG_PLA_FILEFORMAT(BERKELEY) MCFG_PLA_ADD("spla", 3, 8, 8) - MCFG_PLA_FILEFORMAT(PLA_FMT_BERKELEY) + MCFG_PLA_FILEFORMAT(BERKELEY) MACHINE_CONFIG_END machine_config_constructor tms0980_cpu_device::device_mconfig_additions() const @@ -77,11 +80,11 @@ static MACHINE_CONFIG_FRAGMENT(tms1980) // main opcodes PLA, microinstructions PLA, output PLA MCFG_PLA_ADD("ipla", 9, 22, 24) - MCFG_PLA_FILEFORMAT(PLA_FMT_BERKELEY) + MCFG_PLA_FILEFORMAT(BERKELEY) MCFG_PLA_ADD("mpla", 6, 22, 64) - MCFG_PLA_FILEFORMAT(PLA_FMT_BERKELEY) + MCFG_PLA_FILEFORMAT(BERKELEY) MCFG_PLA_ADD("opla", 5, 7, 32) - MCFG_PLA_FILEFORMAT(PLA_FMT_BERKELEY) + MCFG_PLA_FILEFORMAT(BERKELEY) MACHINE_CONFIG_END machine_config_constructor tms1980_cpu_device::device_mconfig_additions() const diff --git a/src/devices/cpu/tms1000/tms0980.h b/src/devices/cpu/tms1000/tms0980.h index 24ef6c000ad..883dc3d643d 100644 --- a/src/devices/cpu/tms1000/tms0980.h +++ b/src/devices/cpu/tms1000/tms0980.h @@ -6,8 +6,10 @@ */ -#ifndef _TMS0980_H_ -#define _TMS0980_H_ +#ifndef MAME_CPU_TMS1000_TMS0980_H +#define MAME_CPU_TMS1000_TMS0980_H + +#pragma once #include "tms0970.h" @@ -16,9 +18,10 @@ class tms0980_cpu_device : public tms0970_cpu_device { public: tms0980_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); - tms0980_cpu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, u32 clock, u8 o_pins, u8 r_pins, u8 pc_bits, u8 byte_bits, u8 x_bits, int prgwidth, address_map_constructor program, int datawidth, address_map_constructor data, const char *shortname, const char *source); protected: + tms0980_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, u8 o_pins, u8 r_pins, u8 pc_bits, u8 byte_bits, u8 x_bits, int prgwidth, address_map_constructor program, int datawidth, address_map_constructor data); + // overrides virtual u32 decode_fixed(u16 op); virtual u32 decode_micro(u8 sel); @@ -55,7 +58,7 @@ protected: }; -extern const device_type TMS0980; -extern const device_type TMS1980; +DECLARE_DEVICE_TYPE(TMS0980, tms0980_cpu_device) +DECLARE_DEVICE_TYPE(TMS1980, tms1980_cpu_device) -#endif /* _TMS0980_H_ */ +#endif // MAME_CPU_TMS1000_TMS0980_H diff --git a/src/devices/cpu/tms1000/tms1000.cpp b/src/devices/cpu/tms1000/tms1000.cpp index 3ee2612f191..0c89568a7b6 100644 --- a/src/devices/cpu/tms1000/tms1000.cpp +++ b/src/devices/cpu/tms1000/tms1000.cpp @@ -24,15 +24,15 @@ // - 30-term microinstructions PLA(mpla) at the top half, to the right of the midline, supporting 16 microinstructions // - 20-term output PLA(opla) at the top-left // - the ALU is between the opla and mpla -const device_type TMS1000 = device_creator; // 28-pin DIP, 11 R pins -const device_type TMS1070 = device_creator; // high voltage version -const device_type TMS1040 = device_creator; // same as TMS1070 with just a different pinout? -const device_type TMS1200 = device_creator; // 40-pin DIP, 13 R pins -const device_type TMS1700 = device_creator; // 28-pin DIP, RAM/ROM size halved, 9 R pins -const device_type TMS1730 = device_creator; // 20-pin DIP, same die as TMS1700, package has less pins: 6 R pins, 5 O pins(output PLA is still 8-bit, O1,O3,O5 unused) +DEFINE_DEVICE_TYPE(TMS1000, tms1000_cpu_device, "tms1000", "TMS1000") // 28-pin DIP, 11 R pins +DEFINE_DEVICE_TYPE(TMS1070, tms1070_cpu_device, "tms1070", "TMS1070") // high voltage version +DEFINE_DEVICE_TYPE(TMS1040, tms1040_cpu_device, "tms1040", "TMS1040") // same as TMS1070 with just a different pinout? +DEFINE_DEVICE_TYPE(TMS1200, tms1200_cpu_device, "tms1200", "TMS1200") // 40-pin DIP, 13 R pins +DEFINE_DEVICE_TYPE(TMS1700, tms1700_cpu_device, "tms1700", "TMS1700") // 28-pin DIP, RAM/ROM size halved, 9 R pins +DEFINE_DEVICE_TYPE(TMS1730, tms1730_cpu_device, "tms1730", "TMS1730") // 20-pin DIP, same die as TMS1700, package has less pins: 6 R pins, 5 O pins (output PLA is still 8-bit, O1,O3,O5 unused) -const device_type MC141000 = device_creator; // CMOS, pin-compatible with TMS1000(reverse polarity) -const device_type MC141200 = device_creator; // CMOS, 40-pin DIP, 16 R pins +DEFINE_DEVICE_TYPE(MC141000, mc141000_cpu_device, "mc141000", "MC141000") // CMOS, pin-compatible with TMS1000(reverse polarity) +DEFINE_DEVICE_TYPE(MC141200, mc141200_cpu_device, "mc141200", "MC141200") // CMOS, 40-pin DIP, 16 R pins // internal memory maps @@ -56,40 +56,49 @@ ADDRESS_MAP_END // device definitions tms1000_cpu_device::tms1000_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : tms1k_base_device(mconfig, TMS1000, "TMS1000", tag, owner, clock, 8 /* o pins */, 11 /* r pins */, 6 /* pc bits */, 8 /* byte width */, 2 /* x width */, 10 /* prg width */, ADDRESS_MAP_NAME(program_10bit_8), 6 /* data width */, ADDRESS_MAP_NAME(data_64x4), "tms1000", __FILE__) -{ } + : tms1000_cpu_device(mconfig, TMS1000, tag, owner, clock, 8 /* o pins */, 11 /* r pins */, 6 /* pc bits */, 8 /* byte width */, 2 /* x width */, 10 /* prg width */, ADDRESS_MAP_NAME(program_10bit_8), 6 /* data width */, ADDRESS_MAP_NAME(data_64x4)) +{ +} -tms1000_cpu_device::tms1000_cpu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, u32 clock, u8 o_pins, u8 r_pins, u8 pc_bits, u8 byte_bits, u8 x_bits, int prgwidth, address_map_constructor program, int datawidth, address_map_constructor data, const char *shortname, const char *source) - : tms1k_base_device(mconfig, type, name, tag, owner, clock, o_pins, r_pins, pc_bits, byte_bits, x_bits, prgwidth, program, datawidth, data, shortname, source) -{ } +tms1000_cpu_device::tms1000_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, u8 o_pins, u8 r_pins, u8 pc_bits, u8 byte_bits, u8 x_bits, int prgwidth, address_map_constructor program, int datawidth, address_map_constructor data) + : tms1k_base_device(mconfig, type, tag, owner, clock, o_pins, r_pins, pc_bits, byte_bits, x_bits, prgwidth, program, datawidth, data) +{ +} tms1070_cpu_device::tms1070_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : tms1000_cpu_device(mconfig, TMS1070, "TMS1070", tag, owner, clock, 8, 11, 6, 8, 2, 10, ADDRESS_MAP_NAME(program_10bit_8), 6, ADDRESS_MAP_NAME(data_64x4), "tms1070", __FILE__) -{ } + : tms1000_cpu_device(mconfig, TMS1070, tag, owner, clock, 8, 11, 6, 8, 2, 10, ADDRESS_MAP_NAME(program_10bit_8), 6, ADDRESS_MAP_NAME(data_64x4)) +{ +} tms1040_cpu_device::tms1040_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : tms1000_cpu_device(mconfig, TMS1040, "TMS1040", tag, owner, clock, 8, 11, 6, 8, 2, 10, ADDRESS_MAP_NAME(program_10bit_8), 6, ADDRESS_MAP_NAME(data_64x4), "tms1040", __FILE__) -{ } + : tms1000_cpu_device(mconfig, TMS1040, tag, owner, clock, 8, 11, 6, 8, 2, 10, ADDRESS_MAP_NAME(program_10bit_8), 6, ADDRESS_MAP_NAME(data_64x4)) +{ +} tms1200_cpu_device::tms1200_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : tms1000_cpu_device(mconfig, TMS1200, "TMS1200", tag, owner, clock, 8, 13, 6, 8, 2, 10, ADDRESS_MAP_NAME(program_10bit_8), 6, ADDRESS_MAP_NAME(data_64x4), "tms1200", __FILE__) -{ } + : tms1000_cpu_device(mconfig, TMS1200, tag, owner, clock, 8, 13, 6, 8, 2, 10, ADDRESS_MAP_NAME(program_10bit_8), 6, ADDRESS_MAP_NAME(data_64x4)) +{ +} tms1700_cpu_device::tms1700_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : tms1000_cpu_device(mconfig, TMS1700, "TMS1700", tag, owner, clock, 8, 9, 6, 8, 2, 10, ADDRESS_MAP_NAME(program_9bit_8), 6, ADDRESS_MAP_NAME(data_32x4), "tms1700", __FILE__) -{ } + : tms1000_cpu_device(mconfig, TMS1700, tag, owner, clock, 8, 9, 6, 8, 2, 10, ADDRESS_MAP_NAME(program_9bit_8), 6, ADDRESS_MAP_NAME(data_32x4)) +{ +} tms1730_cpu_device::tms1730_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : tms1000_cpu_device(mconfig, TMS1730, "TMS1730", tag, owner, clock, 8, 9, 6, 8, 2, 10, ADDRESS_MAP_NAME(program_9bit_8), 6, ADDRESS_MAP_NAME(data_32x4), "tms1730", __FILE__) -{ } + : tms1000_cpu_device(mconfig, TMS1730, tag, owner, clock, 8, 9, 6, 8, 2, 10, ADDRESS_MAP_NAME(program_9bit_8), 6, ADDRESS_MAP_NAME(data_32x4)) +{ +} mc141000_cpu_device::mc141000_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : tms1000_cpu_device(mconfig, MC141000, "MC141000", tag, owner, clock, 8, 11, 6, 8, 2, 10, ADDRESS_MAP_NAME(program_10bit_8), 6, ADDRESS_MAP_NAME(data_64x4), "mc141000", __FILE__) -{ } + : tms1000_cpu_device(mconfig, MC141000, tag, owner, clock, 8, 11, 6, 8, 2, 10, ADDRESS_MAP_NAME(program_10bit_8), 6, ADDRESS_MAP_NAME(data_64x4)) +{ +} mc141200_cpu_device::mc141200_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : tms1000_cpu_device(mconfig, MC141200, "MC141200", tag, owner, clock, 8, 16, 6, 8, 2, 10, ADDRESS_MAP_NAME(program_10bit_8), 6, ADDRESS_MAP_NAME(data_64x4), "mc141200", __FILE__) -{ } + : tms1000_cpu_device(mconfig, MC141200, tag, owner, clock, 8, 16, 6, 8, 2, 10, ADDRESS_MAP_NAME(program_10bit_8), 6, ADDRESS_MAP_NAME(data_64x4)) +{ +} // machine configs @@ -97,9 +106,9 @@ static MACHINE_CONFIG_FRAGMENT(tms1000) // microinstructions PLA, output PLA MCFG_PLA_ADD("mpla", 8, 16, 30) - MCFG_PLA_FILEFORMAT(PLA_FMT_BERKELEY) + MCFG_PLA_FILEFORMAT(BERKELEY) MCFG_PLA_ADD("opla", 5, 8, 20) - MCFG_PLA_FILEFORMAT(PLA_FMT_BERKELEY) + MCFG_PLA_FILEFORMAT(BERKELEY) MACHINE_CONFIG_END machine_config_constructor tms1000_cpu_device::device_mconfig_additions() const diff --git a/src/devices/cpu/tms1000/tms1000.h b/src/devices/cpu/tms1000/tms1000.h index c1ccb3d52f2..0498af05304 100644 --- a/src/devices/cpu/tms1000/tms1000.h +++ b/src/devices/cpu/tms1000/tms1000.h @@ -6,8 +6,10 @@ */ -#ifndef _TMS1000_H_ -#define _TMS1000_H_ +#ifndef MAME_CPU_TMS1000_TMS1000_H +#define MAME_CPU_TMS1000_TMS1000_H + +#pragma once #include "tms1k_base.h" @@ -16,9 +18,10 @@ class tms1000_cpu_device : public tms1k_base_device { public: tms1000_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); - tms1000_cpu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, u32 clock, u8 o_pins, u8 r_pins, u8 pc_bits, u8 byte_bits, u8 x_bits, int prgwidth, address_map_constructor program, int datawidth, address_map_constructor data, const char *shortname, const char *source); protected: + tms1000_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, u8 o_pins, u8 r_pins, u8 pc_bits, u8 byte_bits, u8 x_bits, int prgwidth, address_map_constructor program, int datawidth, address_map_constructor data); + // overrides virtual void device_reset() override; virtual machine_config_constructor device_mconfig_additions() const override; @@ -73,13 +76,13 @@ public: }; -extern const device_type TMS1000; -extern const device_type TMS1070; -extern const device_type TMS1040; -extern const device_type TMS1200; -extern const device_type TMS1700; -extern const device_type TMS1730; -extern const device_type MC141000; -extern const device_type MC141200; +DECLARE_DEVICE_TYPE(TMS1000, tms1000_cpu_device) +DECLARE_DEVICE_TYPE(TMS1070, tms1070_cpu_device) +DECLARE_DEVICE_TYPE(TMS1040, tms1040_cpu_device) +DECLARE_DEVICE_TYPE(TMS1200, tms1200_cpu_device) +DECLARE_DEVICE_TYPE(TMS1700, tms1700_cpu_device) +DECLARE_DEVICE_TYPE(TMS1730, tms1730_cpu_device) +DECLARE_DEVICE_TYPE(MC141000, mc141000_cpu_device) +DECLARE_DEVICE_TYPE(MC141200, mc141200_cpu_device) -#endif /* _TMS1000_H_ */ +#endif // MAME_CPU_TMS1000_TMS1000_H diff --git a/src/devices/cpu/tms1000/tms1100.cpp b/src/devices/cpu/tms1000/tms1100.cpp index 781998ffc07..a67f1261512 100644 --- a/src/devices/cpu/tms1000/tms1100.cpp +++ b/src/devices/cpu/tms1000/tms1100.cpp @@ -11,10 +11,10 @@ #include "debugger.h" // TMS1100 is nearly the same as TMS1000, some different opcodes, and with double the RAM and ROM -const device_type TMS1100 = device_creator; // 28-pin DIP, 11 R pins -const device_type TMS1170 = device_creator; // high voltage version -const device_type TMS1300 = device_creator; // 40-pin DIP, 16 R pins -const device_type TMS1370 = device_creator; // high voltage version +DEFINE_DEVICE_TYPE(TMS1100, tms1100_cpu_device, "tms1100", "TMS1100") // 28-pin DIP, 11 R pins +DEFINE_DEVICE_TYPE(TMS1170, tms1170_cpu_device, "tms1170", "TMS1170") // high voltage version +DEFINE_DEVICE_TYPE(TMS1300, tms1300_cpu_device, "tms1300", "TMS1300") // 40-pin DIP, 16 R pins +DEFINE_DEVICE_TYPE(TMS1370, tms1370_cpu_device, "tms1370", "TMS1370") // high voltage version // internal memory maps @@ -29,24 +29,29 @@ ADDRESS_MAP_END // device definitions tms1100_cpu_device::tms1100_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : tms1000_cpu_device(mconfig, TMS1100, "TMS1100", tag, owner, clock, 8 /* o pins */, 11 /* r pins */, 6 /* pc bits */, 8 /* byte width */, 3 /* x width */, 11 /* prg width */, ADDRESS_MAP_NAME(program_11bit_8), 7 /* data width */, ADDRESS_MAP_NAME(data_128x4), "tms1100", __FILE__) -{ } + : tms1100_cpu_device(mconfig, TMS1100, tag, owner, clock, 8 /* o pins */, 11 /* r pins */, 6 /* pc bits */, 8 /* byte width */, 3 /* x width */, 11 /* prg width */, ADDRESS_MAP_NAME(program_11bit_8), 7 /* data width */, ADDRESS_MAP_NAME(data_128x4)) +{ +} -tms1100_cpu_device::tms1100_cpu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, u32 clock, u8 o_pins, u8 r_pins, u8 pc_bits, u8 byte_bits, u8 x_bits, int prgwidth, address_map_constructor program, int datawidth, address_map_constructor data, const char *shortname, const char *source) - : tms1000_cpu_device(mconfig, type, name, tag, owner, clock, o_pins, r_pins, pc_bits, byte_bits, x_bits, prgwidth, program, datawidth, data, shortname, source) -{ } +tms1100_cpu_device::tms1100_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, u8 o_pins, u8 r_pins, u8 pc_bits, u8 byte_bits, u8 x_bits, int prgwidth, address_map_constructor program, int datawidth, address_map_constructor data) + : tms1000_cpu_device(mconfig, type, tag, owner, clock, o_pins, r_pins, pc_bits, byte_bits, x_bits, prgwidth, program, datawidth, data) +{ +} tms1170_cpu_device::tms1170_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : tms1100_cpu_device(mconfig, TMS1170, "TMS1170", tag, owner, clock, 8, 11, 6, 8, 3, 11, ADDRESS_MAP_NAME(program_11bit_8), 7, ADDRESS_MAP_NAME(data_128x4), "tms1170", __FILE__) -{ } + : tms1100_cpu_device(mconfig, TMS1170, tag, owner, clock, 8, 11, 6, 8, 3, 11, ADDRESS_MAP_NAME(program_11bit_8), 7, ADDRESS_MAP_NAME(data_128x4)) +{ +} tms1300_cpu_device::tms1300_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : tms1100_cpu_device(mconfig, TMS1300, "TMS1300", tag, owner, clock, 8, 16, 6, 8, 3, 11, ADDRESS_MAP_NAME(program_11bit_8), 7, ADDRESS_MAP_NAME(data_128x4), "tms1300", __FILE__) -{ } + : tms1100_cpu_device(mconfig, TMS1300, tag, owner, clock, 8, 16, 6, 8, 3, 11, ADDRESS_MAP_NAME(program_11bit_8), 7, ADDRESS_MAP_NAME(data_128x4)) +{ +} tms1370_cpu_device::tms1370_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : tms1100_cpu_device(mconfig, TMS1370, "TMS1370", tag, owner, clock, 8, 16, 6, 8, 3, 11, ADDRESS_MAP_NAME(program_11bit_8), 7, ADDRESS_MAP_NAME(data_128x4), "tms1370", __FILE__) -{ } + : tms1100_cpu_device(mconfig, TMS1370, tag, owner, clock, 8, 16, 6, 8, 3, 11, ADDRESS_MAP_NAME(program_11bit_8), 7, ADDRESS_MAP_NAME(data_128x4)) +{ +} // disasm diff --git a/src/devices/cpu/tms1000/tms1100.h b/src/devices/cpu/tms1000/tms1100.h index be0b6a70f10..26a3ffbc578 100644 --- a/src/devices/cpu/tms1000/tms1100.h +++ b/src/devices/cpu/tms1000/tms1100.h @@ -6,8 +6,10 @@ */ -#ifndef _TMS1100_H_ -#define _TMS1100_H_ +#ifndef MAME_CPU_TMS1000_TMS1100_H +#define MAME_CPU_TMS1000_TMS1100_H + +#pragma once #include "tms1000.h" @@ -16,9 +18,10 @@ class tms1100_cpu_device : public tms1000_cpu_device { public: tms1100_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); - tms1100_cpu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, u32 clock, u8 o_pins, u8 r_pins, u8 pc_bits, u8 byte_bits, u8 x_bits, int prgwidth, address_map_constructor program, int datawidth, address_map_constructor data, const char *shortname, const char *source); protected: + tms1100_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, u8 o_pins, u8 r_pins, u8 pc_bits, u8 byte_bits, u8 x_bits, int prgwidth, address_map_constructor program, int datawidth, address_map_constructor data); + // overrides virtual void device_reset() override; @@ -47,10 +50,9 @@ public: }; -extern const device_type TMS1100; -extern const device_type TMS1170; -extern const device_type TMS1300; -extern const device_type TMS1370; - +DECLARE_DEVICE_TYPE(TMS1100, tms1100_cpu_device) +DECLARE_DEVICE_TYPE(TMS1170, tms1170_cpu_device) +DECLARE_DEVICE_TYPE(TMS1300, tms1300_cpu_device) +DECLARE_DEVICE_TYPE(TMS1370, tms1370_cpu_device) -#endif /* _TMS1100_H_ */ +#endif // MAME_CPU_TMS1000_TMS1100_H diff --git a/src/devices/cpu/tms1000/tms1400.cpp b/src/devices/cpu/tms1000/tms1400.cpp index 46b0271c54c..bfd5b50cdb5 100644 --- a/src/devices/cpu/tms1000/tms1400.cpp +++ b/src/devices/cpu/tms1000/tms1400.cpp @@ -16,14 +16,14 @@ // TMS1400 follows the TMS1100, it doubles the ROM size again (4 chapters of 16 pages), and adds a 3-level callstack // - rotate the view and mirror the OR-mask to get the proper layout of the mpla, the default is identical to tms1100 // - the opla size is increased from 20 to 32 terms -const device_type TMS1400 = device_creator; // 28-pin DIP, 11 R pins (TMS1400CR is same, but with TMS1100 pinout) -const device_type TMS1470 = device_creator; // high voltage version, 1 R pin removed for Vdd +DEFINE_DEVICE_TYPE(TMS1400, tms1400_cpu_device, "tms1400", "TMS1400") // 28-pin DIP, 11 R pins (TMS1400CR is same, but with TMS1100 pinout) +DEFINE_DEVICE_TYPE(TMS1470, tms1470_cpu_device, "tms1470", "TMS1470") // high voltage version, 1 R pin removed for Vdd // TMS1600 adds more I/O to the TMS1400, input pins are doubled with added L1,2,4,8 // - rotate the view and mirror the OR-mask to get the proper layout of the mpla, the default is identical to tms1100 // - the opla size is increased from 20 to 32 terms -const device_type TMS1600 = device_creator; // 40-pin DIP, 16 R pins -const device_type TMS1670 = device_creator; // high voltage version +DEFINE_DEVICE_TYPE(TMS1600, tms1600_cpu_device, "tms1600", "TMS1600") // 40-pin DIP, 16 R pins +DEFINE_DEVICE_TYPE(TMS1670, tms1670_cpu_device, "tms1670", "TMS1670") // high voltage version // internal memory maps @@ -38,29 +38,35 @@ ADDRESS_MAP_END // device definitions tms1400_cpu_device::tms1400_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : tms1100_cpu_device(mconfig, TMS1400, "TMS1400", tag, owner, clock, 8 /* o pins */, 11 /* r pins */, 6 /* pc bits */, 8 /* byte width */, 3 /* x width */, 12 /* prg width */, ADDRESS_MAP_NAME(program_12bit_8), 7 /* data width */, ADDRESS_MAP_NAME(data_128x4), "tms1400", __FILE__) -{ } + : tms1400_cpu_device(mconfig, TMS1400, tag, owner, clock, 8 /* o pins */, 11 /* r pins */, 6 /* pc bits */, 8 /* byte width */, 3 /* x width */, 12 /* prg width */, ADDRESS_MAP_NAME(program_12bit_8), 7 /* data width */, ADDRESS_MAP_NAME(data_128x4)) +{ +} -tms1400_cpu_device::tms1400_cpu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, u32 clock, u8 o_pins, u8 r_pins, u8 pc_bits, u8 byte_bits, u8 x_bits, int prgwidth, address_map_constructor program, int datawidth, address_map_constructor data, const char *shortname, const char *source) - : tms1100_cpu_device(mconfig, type, name, tag, owner, clock, o_pins, r_pins, pc_bits, byte_bits, x_bits, prgwidth, program, datawidth, data, shortname, source) -{ } +tms1400_cpu_device::tms1400_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, u8 o_pins, u8 r_pins, u8 pc_bits, u8 byte_bits, u8 x_bits, int prgwidth, address_map_constructor program, int datawidth, address_map_constructor data) + : tms1100_cpu_device(mconfig, type, tag, owner, clock, o_pins, r_pins, pc_bits, byte_bits, x_bits, prgwidth, program, datawidth, data) +{ +} tms1470_cpu_device::tms1470_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : tms1400_cpu_device(mconfig, TMS1470, "TMS1470", tag, owner, clock, 8, 10, 6, 8, 3, 12, ADDRESS_MAP_NAME(program_12bit_8), 7, ADDRESS_MAP_NAME(data_128x4), "tms1470", __FILE__) -{ } + : tms1400_cpu_device(mconfig, TMS1470, tag, owner, clock, 8, 10, 6, 8, 3, 12, ADDRESS_MAP_NAME(program_12bit_8), 7, ADDRESS_MAP_NAME(data_128x4)) +{ +} tms1600_cpu_device::tms1600_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : tms1400_cpu_device(mconfig, TMS1600, "TMS1600", tag, owner, clock, 8, 16, 6, 8, 3, 12, ADDRESS_MAP_NAME(program_12bit_8), 7, ADDRESS_MAP_NAME(data_128x4), "tms1600", __FILE__) -{ } + : tms1600_cpu_device(mconfig, TMS1600, tag, owner, clock, 8, 16, 6, 8, 3, 12, ADDRESS_MAP_NAME(program_12bit_8), 7, ADDRESS_MAP_NAME(data_128x4)) +{ +} -tms1600_cpu_device::tms1600_cpu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, u32 clock, u8 o_pins, u8 r_pins, u8 pc_bits, u8 byte_bits, u8 x_bits, int prgwidth, address_map_constructor program, int datawidth, address_map_constructor data, const char *shortname, const char *source) - : tms1400_cpu_device(mconfig, type, name, tag, owner, clock, o_pins, r_pins, pc_bits, byte_bits, x_bits, prgwidth, program, datawidth, data, shortname, source) -{ } +tms1600_cpu_device::tms1600_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, u8 o_pins, u8 r_pins, u8 pc_bits, u8 byte_bits, u8 x_bits, int prgwidth, address_map_constructor program, int datawidth, address_map_constructor data) + : tms1400_cpu_device(mconfig, type, tag, owner, clock, o_pins, r_pins, pc_bits, byte_bits, x_bits, prgwidth, program, datawidth, data) +{ +} tms1670_cpu_device::tms1670_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : tms1600_cpu_device(mconfig, TMS1670, "TMS1670", tag, owner, clock, 8, 16, 6, 8, 3, 12, ADDRESS_MAP_NAME(program_12bit_8), 7, ADDRESS_MAP_NAME(data_128x4), "tms1670", __FILE__) -{ } + : tms1600_cpu_device(mconfig, TMS1670, tag, owner, clock, 8, 16, 6, 8, 3, 12, ADDRESS_MAP_NAME(program_12bit_8), 7, ADDRESS_MAP_NAME(data_128x4)) +{ +} // machine configs @@ -68,9 +74,9 @@ static MACHINE_CONFIG_FRAGMENT(tms1400) // microinstructions PLA, output PLA MCFG_PLA_ADD("mpla", 8, 16, 30) - MCFG_PLA_FILEFORMAT(PLA_FMT_BERKELEY) + MCFG_PLA_FILEFORMAT(BERKELEY) MCFG_PLA_ADD("opla", 5, 8, 32) - MCFG_PLA_FILEFORMAT(PLA_FMT_BERKELEY) + MCFG_PLA_FILEFORMAT(BERKELEY) MACHINE_CONFIG_END machine_config_constructor tms1400_cpu_device::device_mconfig_additions() const diff --git a/src/devices/cpu/tms1000/tms1400.h b/src/devices/cpu/tms1000/tms1400.h index af8498ad28b..7c5d3111cc1 100644 --- a/src/devices/cpu/tms1000/tms1400.h +++ b/src/devices/cpu/tms1000/tms1400.h @@ -6,8 +6,10 @@ */ -#ifndef _TMS1400_H_ -#define _TMS1400_H_ +#ifndef MAME_CPU_TMS1000_TMS1400_H +#define MAME_CPU_TMS1000_TMS1400_H + +#pragma once #include "tms1100.h" @@ -16,9 +18,10 @@ class tms1400_cpu_device : public tms1100_cpu_device { public: tms1400_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); - tms1400_cpu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, u32 clock, u8 o_pins, u8 r_pins, u8 pc_bits, u8 byte_bits, u8 x_bits, int prgwidth, address_map_constructor program, int datawidth, address_map_constructor data, const char *shortname, const char *source); protected: + tms1400_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, u8 o_pins, u8 r_pins, u8 pc_bits, u8 byte_bits, u8 x_bits, int prgwidth, address_map_constructor program, int datawidth, address_map_constructor data); + // overrides virtual void device_reset() override; virtual machine_config_constructor device_mconfig_additions() const override; @@ -42,7 +45,9 @@ class tms1600_cpu_device : public tms1400_cpu_device { public: tms1600_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); - tms1600_cpu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, u32 clock, u8 o_pins, u8 r_pins, u8 pc_bits, u8 byte_bits, u8 x_bits, int prgwidth, address_map_constructor program, int datawidth, address_map_constructor data, const char *shortname, const char *source); + +protected: + tms1600_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, u8 o_pins, u8 r_pins, u8 pc_bits, u8 byte_bits, u8 x_bits, int prgwidth, address_map_constructor program, int datawidth, address_map_constructor data); }; class tms1670_cpu_device : public tms1600_cpu_device @@ -52,10 +57,9 @@ public: }; -extern const device_type TMS1400; -extern const device_type TMS1470; -extern const device_type TMS1600; -extern const device_type TMS1670; - +DECLARE_DEVICE_TYPE(TMS1400, tms1400_cpu_device) +DECLARE_DEVICE_TYPE(TMS1470, tms1470_cpu_device) +DECLARE_DEVICE_TYPE(TMS1600, tms1600_cpu_device) +DECLARE_DEVICE_TYPE(TMS1670, tms1670_cpu_device) -#endif /* _TMS1400_H_ */ +#endif // MAME_CPU_TMS1000_TMS1400_H diff --git a/src/devices/cpu/tms1000/tms1k_base.cpp b/src/devices/cpu/tms1000/tms1k_base.cpp index 155b27ddc4d..ba526ad9367 100644 --- a/src/devices/cpu/tms1000/tms1k_base.cpp +++ b/src/devices/cpu/tms1000/tms1k_base.cpp @@ -70,6 +70,27 @@ unknown cycle: CME, SSE, SSS #include "tms1k_base.h" #include "debugger.h" +tms1k_base_device::tms1k_base_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, u8 o_pins, u8 r_pins, u8 pc_bits, u8 byte_bits, u8 x_bits, int prgwidth, address_map_constructor program, int datawidth, address_map_constructor data) + : cpu_device(mconfig, type, tag, owner, clock) + , m_program_config("program", ENDIANNESS_BIG, byte_bits > 8 ? 16 : 8, prgwidth, 0, program) + , m_data_config("data", ENDIANNESS_BIG, 8, datawidth, 0, data) + , m_mpla(*this, "mpla") + , m_ipla(*this, "ipla") + , m_opla(*this, "opla") + , m_spla(*this, "spla") + , m_o_pins(o_pins) + , m_r_pins(r_pins) + , m_pc_bits(pc_bits) + , m_byte_bits(byte_bits) + , m_x_bits(x_bits) + , m_output_pla_table(nullptr) + , m_read_k(*this) + , m_write_o(*this) + , m_write_r(*this) + , m_power_off(*this) +{ +} + // disasm void tms1k_base_device::state_string_export(const device_state_entry &entry, std::string &str) const { diff --git a/src/devices/cpu/tms1000/tms1k_base.h b/src/devices/cpu/tms1000/tms1k_base.h index 98f7e61ed2e..16e095744c9 100644 --- a/src/devices/cpu/tms1000/tms1k_base.h +++ b/src/devices/cpu/tms1000/tms1k_base.h @@ -9,8 +9,10 @@ */ -#ifndef _TMS1KBASE_H_ -#define _TMS1KBASE_H_ +#ifndef MAME_CPU_TMS1000_TMS1K_BASE_H +#define MAME_CPU_TMS1000_TMS1K_BASE_H + +#pragma once #include "machine/pla.h" @@ -82,32 +84,11 @@ class tms1k_base_device : public cpu_device { public: - // construction/destruction - tms1k_base_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, u32 clock, u8 o_pins, u8 r_pins, u8 pc_bits, u8 byte_bits, u8 x_bits, int prgwidth, address_map_constructor program, int datawidth, address_map_constructor data, const char *shortname, const char *source) - : cpu_device(mconfig, type, name, tag, owner, clock, shortname, source) - , m_program_config("program", ENDIANNESS_BIG, byte_bits > 8 ? 16 : 8, prgwidth, 0, program) - , m_data_config("data", ENDIANNESS_BIG, 8, datawidth, 0, data) - , m_mpla(*this, "mpla") - , m_ipla(*this, "ipla") - , m_opla(*this, "opla") - , m_spla(*this, "spla") - , m_o_pins(o_pins) - , m_r_pins(r_pins) - , m_pc_bits(pc_bits) - , m_byte_bits(byte_bits) - , m_x_bits(x_bits) - , m_output_pla_table(nullptr) - , m_read_k(*this) - , m_write_o(*this) - , m_write_r(*this) - , m_power_off(*this) - { } - // static configuration helpers - template static devcb_base &set_read_k_callback(device_t &device, _Object object) { return downcast(device).m_read_k.set_callback(object); } - template static devcb_base &set_write_o_callback(device_t &device, _Object object) { return downcast(device).m_write_o.set_callback(object); } - template static devcb_base &set_write_r_callback(device_t &device, _Object object) { return downcast(device).m_write_r.set_callback(object); } - template static devcb_base &set_power_off_callback(device_t &device, _Object object) { return downcast(device).m_power_off.set_callback(object); } + template static devcb_base &set_read_k_callback(device_t &device, Object &&cb) { return downcast(device).m_read_k.set_callback(std::forward(cb)); } + template static devcb_base &set_write_o_callback(device_t &device, Object &&cb) { return downcast(device).m_write_o.set_callback(std::forward(cb)); } + template static devcb_base &set_write_r_callback(device_t &device, Object &&cb) { return downcast(device).m_write_r.set_callback(std::forward(cb)); } + template static devcb_base &set_power_off_callback(device_t &device, Object &&cb) { return downcast(device).m_power_off.set_callback(std::forward(cb)); } static void set_output_pla(device_t &device, const u16 *output_pla) { downcast(device).m_output_pla_table = output_pla; } u8 debug_peek_o_index() { return m_o_index; } // get output PLA index, for debugging (don't use in emulation) @@ -171,6 +152,9 @@ public: }; protected: + // construction/destruction + tms1k_base_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, u8 o_pins, u8 r_pins, u8 pc_bits, u8 byte_bits, u8 x_bits, int prgwidth, address_map_constructor program, int datawidth, address_map_constructor data); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -298,4 +282,4 @@ protected: }; -#endif /* _TMS1KBASE_H_ */ +#endif // MAME_CPU_TMS1000_TMS1K_BASE_H diff --git a/src/devices/cpu/tms1000/tp0320.cpp b/src/devices/cpu/tms1000/tp0320.cpp index c5118781499..9c00407ac0e 100644 --- a/src/devices/cpu/tms1000/tp0320.cpp +++ b/src/devices/cpu/tms1000/tp0320.cpp @@ -22,7 +22,7 @@ // - 64-term microinstructions PLA between the RAM and ROM, similar to TMS0980, // plus separate lines for custom opcode handling like TMS0270, used for SETR and RSTR // - 24-term output PLA above LCD RAM -const device_type TP0320 = device_creator; // 28-pin SDIP, .. +DEFINE_DEVICE_TYPE(TP0320, tp0320_cpu_device, "tp0320", "TP0320") // 28-pin SDIP, .. // internal memory maps @@ -38,8 +38,9 @@ ADDRESS_MAP_END // device definitions tp0320_cpu_device::tp0320_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : tms0980_cpu_device(mconfig, TP0320, "TP0320", tag, owner, clock, 7 /* o pins */, 10 /* r pins */, 7 /* pc bits */, 9 /* byte width */, 4 /* x width */, 12 /* prg width */, ADDRESS_MAP_NAME(program_11bit_9), 8 /* data width */, ADDRESS_MAP_NAME(data_192x4), "tp0320", __FILE__) -{ } + : tms0980_cpu_device(mconfig, TP0320, tag, owner, clock, 7 /* o pins */, 10 /* r pins */, 7 /* pc bits */, 9 /* byte width */, 4 /* x width */, 12 /* prg width */, ADDRESS_MAP_NAME(program_11bit_9), 8 /* data width */, ADDRESS_MAP_NAME(data_192x4)) +{ +} // machine configs @@ -47,9 +48,9 @@ static MACHINE_CONFIG_FRAGMENT(tp0320) // main opcodes PLA(partial), microinstructions PLA MCFG_PLA_ADD("ipla", 9, 6, 8) - MCFG_PLA_FILEFORMAT(PLA_FMT_BERKELEY) + MCFG_PLA_FILEFORMAT(BERKELEY) MCFG_PLA_ADD("mpla", 6, 22, 64) - MCFG_PLA_FILEFORMAT(PLA_FMT_BERKELEY) + MCFG_PLA_FILEFORMAT(BERKELEY) MACHINE_CONFIG_END machine_config_constructor tp0320_cpu_device::device_mconfig_additions() const diff --git a/src/devices/cpu/tms1000/tp0320.h b/src/devices/cpu/tms1000/tp0320.h index d5675f0e011..d1558fa2dad 100644 --- a/src/devices/cpu/tms1000/tp0320.h +++ b/src/devices/cpu/tms1000/tp0320.h @@ -6,8 +6,10 @@ */ -#ifndef _TP0320_H_ -#define _TP0320_H_ +#ifndef MAME_CPU_TMS1000_TP0320_H +#define MAME_CPU_TMS1000_TP0320_H + +#pragma once #include "tms0980.h" @@ -30,6 +32,6 @@ protected: }; -extern const device_type TP0320; +DECLARE_DEVICE_TYPE(TP0320, tp0320_cpu_device) -#endif /* _TP0320_H_ */ +#endif // MAME_CPU_TMS1000_TP0320_H diff --git a/src/devices/cpu/tms32010/tms32010.cpp b/src/devices/cpu/tms32010/tms32010.cpp index 19e9efb8e2b..da23e95eb76 100644 --- a/src/devices/cpu/tms32010/tms32010.cpp +++ b/src/devices/cpu/tms32010/tms32010.cpp @@ -58,8 +58,8 @@ #include "emu.h" -#include "debugger.h" #include "tms32010.h" +#include "debugger.h" @@ -73,9 +73,9 @@ #define P_OUT(A,V) TMS32010_Out(A,V) -const device_type TMS32010 = device_creator; -const device_type TMS32015 = device_creator; -const device_type TMS32016 = device_creator; +DEFINE_DEVICE_TYPE(TMS32010, tms32010_device, "tms32010", "TMS32010") +DEFINE_DEVICE_TYPE(TMS32015, tms32015_device, "tms32015", "TMS32015") +DEFINE_DEVICE_TYPE(TMS32016, tms32016_device, "tms32016", "TMS32016") /**************************************************************************** @@ -98,20 +98,15 @@ ADDRESS_MAP_END tms32010_device::tms32010_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cpu_device(mconfig, TMS32010, "TMS32010", tag, owner, clock, "tms32010", __FILE__) - , m_program_config("program", ENDIANNESS_BIG, 16, 12, -1) - , m_data_config("data", ENDIANNESS_BIG, 16, 8, -1, ADDRESS_MAP_NAME(tms32010_ram)) - , m_io_config("io", ENDIANNESS_BIG, 16, 4, -1) - , m_bio_in(*this) - , m_addr_mask(0x0fff) + : tms32010_device(mconfig, TMS32010, tag, owner, clock, ADDRESS_MAP_NAME(tms32010_ram), 0x0fff) { } -tms32010_device::tms32010_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source, int addr_mask) - : cpu_device(mconfig, type, name, tag, owner, clock, shortname, source) +tms32010_device::tms32010_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, address_map_constructor data_map, int addr_mask) + : cpu_device(mconfig, type, tag, owner, clock) , m_program_config("program", ENDIANNESS_BIG, 16, 12, -1) - , m_data_config("data", ENDIANNESS_BIG, 16, 8, -1, ADDRESS_MAP_NAME(tms32015_ram)) + , m_data_config("data", ENDIANNESS_BIG, 16, 8, -1, data_map) , m_io_config("io", ENDIANNESS_BIG, 16, 4, -1) , m_bio_in(*this) , m_addr_mask(addr_mask) @@ -120,13 +115,13 @@ tms32010_device::tms32010_device(const machine_config &mconfig, device_type type tms32015_device::tms32015_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : tms32010_device(mconfig, TMS32015, "TMS32015", tag, owner, clock, "tms32015", __FILE__, 0x0fff) + : tms32010_device(mconfig, TMS32015, tag, owner, clock, ADDRESS_MAP_NAME(tms32015_ram), 0x0fff) { } tms32016_device::tms32016_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : tms32010_device(mconfig, TMS32016, "TMS32016", tag, owner, clock, "tms32016", __FILE__, 0xffff) + : tms32010_device(mconfig, TMS32016, tag, owner, clock, ADDRESS_MAP_NAME(tms32015_ram), 0xffff) { } diff --git a/src/devices/cpu/tms32010/tms32010.h b/src/devices/cpu/tms32010/tms32010.h index 4be9b7fe7d1..e6728ec165e 100644 --- a/src/devices/cpu/tms32010/tms32010.h +++ b/src/devices/cpu/tms32010/tms32010.h @@ -10,11 +10,10 @@ * * \**************************************************************************/ -#pragma once - -#ifndef __TMS32010_H__ -#define __TMS32010_H__ +#ifndef MAME_CPU_TMS32010_TMS32010_H +#define MAME_CPU_TMS32010_TMS32010_H +#pragma once @@ -44,12 +43,13 @@ class tms32010_device : public cpu_device public: // construction/destruction tms32010_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - tms32010_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source, int addr_mask); // static configuration helpers - template static devcb_base & set_bio_in_cb(device_t &device, _Object object) { return downcast(device).m_bio_in.set_callback(object); } + template static devcb_base & set_bio_in_cb(device_t &device, Object &&cb) { return downcast(device).m_bio_in.set_callback(std::forward(cb)); } protected: + tms32010_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, address_map_constructor data_map, int addr_mask); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -64,7 +64,7 @@ protected: virtual uint64_t execute_cycles_to_clocks(uint64_t cycles) const override { return (cycles * 4); } // device_memory_interface overrides - virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_0) const override { return (spacenum == AS_PROGRAM) ? &m_program_config : ( (spacenum == AS_IO) ? &m_io_config : ( (spacenum == AS_DATA) ? &m_data_config : nullptr ) ); } + virtual const address_space_config *memory_space_config(address_spacenum spacenum) const override { return (spacenum == AS_PROGRAM) ? &m_program_config : (spacenum == AS_IO) ? &m_io_config : (spacenum == AS_DATA) ? &m_data_config : nullptr; } // device_state_interface overrides virtual void state_string_export(const device_state_entry &entry, std::string &str) const override; @@ -191,7 +191,6 @@ private: void zals(); inline int add_branch_cycle(); int Ext_IRQ(); - }; @@ -211,9 +210,9 @@ public: }; -extern const device_type TMS32010; -extern const device_type TMS32015; -extern const device_type TMS32016; +DECLARE_DEVICE_TYPE(TMS32010, tms32010_device) +DECLARE_DEVICE_TYPE(TMS32015, tms32015_device) +DECLARE_DEVICE_TYPE(TMS32016, tms32016_device) -#endif /* __TMS32010_H__ */ +#endif // MAME_CPU_TMS32010_TMS32010_H diff --git a/src/devices/cpu/tms32025/tms32025.cpp b/src/devices/cpu/tms32025/tms32025.cpp index c656804fb6d..119ffaa6d96 100644 --- a/src/devices/cpu/tms32025/tms32025.cpp +++ b/src/devices/cpu/tms32025/tms32025.cpp @@ -119,8 +119,8 @@ Table 3-2. TMS32025/26 Memory Blocks #include "emu.h" -#include "debugger.h" #include "tms32025.h" +#include "debugger.h" #define CLK 4 /* 1 cycle equals 4 clock ticks */ /* PE/DI */ @@ -183,8 +183,8 @@ Table 3-2. TMS32025/26 Memory Blocks #define IND m_AR[ARP] /* address used in indirect memory access operations */ -const device_type TMS32025 = device_creator; -const device_type TMS32026 = device_creator; +DEFINE_DEVICE_TYPE(TMS32025, tms32025_device, "tms32025", "TMS32025") +DEFINE_DEVICE_TYPE(TMS32026, tms32026_device, "tms32026", "TMS32026") static ADDRESS_MAP_START( tms32025_data, AS_DATA, 16, tms32025_device ) AM_RANGE(0x0000, 0x0000) AM_READWRITE(drr_r, drr_w) @@ -213,27 +213,14 @@ ADDRESS_MAP_END tms32025_device::tms32025_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cpu_device(mconfig, TMS32025, "TMS32025", tag, owner, clock, "tms32025", __FILE__) - , m_program_config("program", ENDIANNESS_BIG, 16, 16, -1) - , m_data_config("data", ENDIANNESS_BIG, 16, 16, -1, ADDRESS_MAP_NAME(tms32025_data)) - , m_io_config("io", ENDIANNESS_BIG, 16, 16, -1) - , m_b0(*this, "b0") - , m_b1(*this, "b1") - , m_b2(*this, "b2") - , m_b3(*this, "b3") - , m_bio_in(*this) - , m_hold_in(*this) - , m_hold_ack_out(*this) - , m_xf_out(*this) - , m_dr_in(*this) - , m_dx_out(*this) + : tms32025_device(mconfig, TMS32025, tag, owner, clock, ADDRESS_MAP_NAME(tms32025_data)) { m_fixed_STR1 = 0x0180; } -tms32025_device::tms32025_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source, address_map_constructor map) - : cpu_device(mconfig, type, name, tag, owner, clock, shortname, source) +tms32025_device::tms32025_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, address_map_constructor map) + : cpu_device(mconfig, type, tag, owner, clock) , m_program_config("program", ENDIANNESS_BIG, 16, 16, -1) , m_data_config("data", ENDIANNESS_BIG, 16, 16, -1, map) , m_io_config("io", ENDIANNESS_BIG, 16, 16, -1) @@ -248,12 +235,11 @@ tms32025_device::tms32025_device(const machine_config &mconfig, device_type type , m_dr_in(*this) , m_dx_out(*this) { - m_fixed_STR1 = 0x0180; } tms32026_device::tms32026_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : tms32025_device(mconfig, TMS32026, "TMS32026", tag, owner, clock, "tms32026", __FILE__, ADDRESS_MAP_NAME(tms32026_data)) + : tms32025_device(mconfig, TMS32026, tag, owner, clock, ADDRESS_MAP_NAME(tms32026_data)) { m_fixed_STR1 = 0x0100; } diff --git a/src/devices/cpu/tms32025/tms32025.h b/src/devices/cpu/tms32025/tms32025.h index 6806eeba2d0..1abd9f107ef 100644 --- a/src/devices/cpu/tms32025/tms32025.h +++ b/src/devices/cpu/tms32025/tms32025.h @@ -17,10 +17,10 @@ * * \***************************************************************************/ -#pragma once +#ifndef MAME_TMS32025_TMS32025_H +#define MAME_TMS32025_TMS32025_H -#ifndef __TMS32025_H__ -#define __TMS32025_H__ +#pragma once #define MCFG_TMS32025_BIO_IN_CB(_devcb) \ @@ -82,7 +82,6 @@ class tms32025_device : public cpu_device public: // construction/destruction tms32025_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - tms32025_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source, address_map_constructor map); // static configuration helpers template static devcb_base & set_bio_in_cb(device_t &device, _Object object) { return downcast(device).m_bio_in.set_callback(object); } @@ -106,6 +105,8 @@ public: DECLARE_WRITE16_MEMBER(greg_w); protected: + tms32025_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, address_map_constructor map); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -118,7 +119,7 @@ protected: virtual void execute_set_input(int inputnum, int state) override; // device_memory_interface overrides - virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_0) const override { return (spacenum == AS_PROGRAM) ? &m_program_config : ( (spacenum == AS_IO) ? &m_io_config : ( (spacenum == AS_DATA) ? &m_data_config : nullptr ) ); } + virtual const address_space_config *memory_space_config(address_spacenum spacenum) const override { return (spacenum == AS_PROGRAM) ? &m_program_config : (spacenum == AS_IO) ? &m_io_config : (spacenum == AS_DATA) ? &m_data_config : nullptr; } // device_state_interface overrides virtual void state_string_export(const device_state_entry &entry, std::string &str) const override; @@ -376,7 +377,6 @@ protected: void zals(); inline int process_IRQs(); inline void process_timer(int clocks); - }; @@ -394,8 +394,7 @@ protected: }; -extern const device_type TMS32025; -extern const device_type TMS32026; - +DECLARE_DEVICE_TYPE(TMS32025, tms32025_device) +DECLARE_DEVICE_TYPE(TMS32026, tms32026_device) -#endif /* __TMS32025_H__ */ +#endif // MAME_TMS32025_TMS32025_H diff --git a/src/devices/cpu/tms32031/tms32031.cpp b/src/devices/cpu/tms32031/tms32031.cpp index fe3608d9bba..944af23df89 100644 --- a/src/devices/cpu/tms32031/tms32031.cpp +++ b/src/devices/cpu/tms32031/tms32031.cpp @@ -9,8 +9,8 @@ ***************************************************************************/ #include "emu.h" -#include "debugger.h" #include "tms32031.h" +#include "debugger.h" //************************************************************************** @@ -87,8 +87,8 @@ const int GIEFLAG = 0x2000; //************************************************************************** // device type definition -const device_type TMS32031 = device_creator; -const device_type TMS32032 = device_creator; +DEFINE_DEVICE_TYPE(TMS32031, tms32031_device, "tms32031", "TMS32031") +DEFINE_DEVICE_TYPE(TMS32032, tms32032_device, "tms32032", "TMS32032") // internal memory maps @@ -251,8 +251,8 @@ void tms3203x_device::tmsreg::from_double(double val) // tms3203x_device - constructor //------------------------------------------------- -tms3203x_device::tms3203x_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, uint32_t chiptype, address_map_constructor internal_map, const char *shortname, const char *source) - : cpu_device(mconfig, type, name, tag, owner, clock, shortname, source), +tms3203x_device::tms3203x_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint32_t chiptype, address_map_constructor internal_map) + : cpu_device(mconfig, type, tag, owner, clock), m_program_config("program", ENDIANNESS_LITTLE, 32, 24, -2, internal_map), m_chip_type(chiptype), m_pc(0), @@ -281,12 +281,12 @@ tms3203x_device::tms3203x_device(const machine_config &mconfig, device_type type } tms32031_device::tms32031_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : tms3203x_device(mconfig, TMS32031, "TMS32031", tag, owner, clock, CHIP_TYPE_TMS32031, ADDRESS_MAP_NAME(internal_32031), "tms32031", __FILE__) + : tms3203x_device(mconfig, TMS32031, tag, owner, clock, CHIP_TYPE_TMS32031, ADDRESS_MAP_NAME(internal_32031)) { } tms32032_device::tms32032_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : tms3203x_device(mconfig, TMS32032, "TMS32032", tag, owner, clock, CHIP_TYPE_TMS32032, ADDRESS_MAP_NAME(internal_32032), "tms32032", __FILE__) + : tms3203x_device(mconfig, TMS32032, tag, owner, clock, CHIP_TYPE_TMS32032, ADDRESS_MAP_NAME(internal_32032)) { } diff --git a/src/devices/cpu/tms32031/tms32031.h b/src/devices/cpu/tms32031/tms32031.h index 22b1e19488a..b2d38dae11b 100644 --- a/src/devices/cpu/tms32031/tms32031.h +++ b/src/devices/cpu/tms32031/tms32031.h @@ -8,10 +8,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_CPU_TMS32031_TMS32031_H +#define MAME_CPU_TMS32031_TMS32031_H -#ifndef __TMS32031_H__ -#define __TMS32031_H__ +#pragma once //************************************************************************** @@ -135,23 +135,14 @@ class tms3203x_device : public cpu_device uint32_t i32[2]; }; -protected: - enum - { - CHIP_TYPE_TMS32031, - CHIP_TYPE_TMS32032 - }; - - // construction/destruction - tms3203x_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, uint32_t chiptype, address_map_constructor internal_map, const char *shortname, const char *source); +public: virtual ~tms3203x_device(); -public: // inline configuration helpers static void set_mcbl_mode(device_t &device, bool mode) { downcast(device).m_mcbl_mode = mode; } - template static devcb_base &set_xf0_callback(device_t &device, _Object object) { return downcast(device).m_xf0_cb.set_callback(object); } - template static devcb_base &set_xf1_callback(device_t &device, _Object object) { return downcast(device).m_xf1_cb.set_callback(object); } - template static devcb_base &set_iack_callback(device_t &device, _Object object) { return downcast(device).m_iack_cb.set_callback(object); } + template static devcb_base &set_xf0_callback(device_t &device, Object &&cb) { return downcast(device).m_xf0_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_xf1_callback(device_t &device, Object &&cb) { return downcast(device).m_xf1_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_iack_callback(device_t &device, Object &&cb) { return downcast(device).m_iack_cb.set_callback(std::forward(cb)); } // public interfaces static float fp_to_float(uint32_t floatdata); @@ -160,6 +151,15 @@ public: static uint32_t double_to_fp(double dval); protected: + enum + { + CHIP_TYPE_TMS32031, + CHIP_TYPE_TMS32032 + }; + + // construction/destruction + tms3203x_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint32_t chiptype, address_map_constructor internal_map); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -807,9 +807,7 @@ public: // device type definition -extern const device_type TMS32031; -extern const device_type TMS32032; - - +DECLARE_DEVICE_TYPE(TMS32031, tms32031_device) +DECLARE_DEVICE_TYPE(TMS32032, tms32032_device) -#endif /* __TMS32031_H__ */ +#endif // MAME_CPU_TMS32031_TMS32031_H diff --git a/src/devices/cpu/tms32051/tms32051.cpp b/src/devices/cpu/tms32051/tms32051.cpp index d846e2e4620..f88dc0fc69d 100644 --- a/src/devices/cpu/tms32051/tms32051.cpp +++ b/src/devices/cpu/tms32051/tms32051.cpp @@ -7,8 +7,8 @@ */ #include "emu.h" -#include "debugger.h" #include "tms32051.h" +#include "debugger.h" enum { @@ -46,8 +46,8 @@ enum }; -const device_type TMS32051 = device_creator; -const device_type TMS32053 = device_creator; +DEFINE_DEVICE_TYPE(TMS32051, tms32051_device, "tms32051", "TMS32051") +DEFINE_DEVICE_TYPE(TMS32053, tms32053_device, "tms32053", "TMS32053") /************************************************************************** @@ -69,8 +69,8 @@ static ADDRESS_MAP_START( tms32051_internal_data, AS_DATA, 16, tms32051_device ) ADDRESS_MAP_END -tms32051_device::tms32051_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source, address_map_constructor internal_pgm, address_map_constructor internal_data) - : cpu_device(mconfig, type, name, tag, owner, clock, shortname, source) +tms32051_device::tms32051_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, address_map_constructor internal_pgm, address_map_constructor internal_data) + : cpu_device(mconfig, type, tag, owner, clock) , m_program_config("program", ENDIANNESS_LITTLE, 16, 16, -1, internal_pgm) , m_data_config("data", ENDIANNESS_LITTLE, 16, 16, -1, internal_data) , m_io_config("io", ENDIANNESS_LITTLE, 16, 16, -1) @@ -78,9 +78,7 @@ tms32051_device::tms32051_device(const machine_config &mconfig, device_type type } tms32051_device::tms32051_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : tms32051_device(mconfig, TMS32051, "TMS32051", tag, owner, clock, "tms32051", __FILE__, - ADDRESS_MAP_NAME(tms32051_internal_pgm), - ADDRESS_MAP_NAME(tms32051_internal_data)) + : tms32051_device(mconfig, TMS32051, tag, owner, clock, ADDRESS_MAP_NAME(tms32051_internal_pgm), ADDRESS_MAP_NAME(tms32051_internal_data)) { } @@ -105,9 +103,7 @@ ADDRESS_MAP_END tms32053_device::tms32053_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : tms32051_device(mconfig, TMS32053, "TMS32053", tag, owner, clock, "tms32053", __FILE__, - ADDRESS_MAP_NAME(tms32053_internal_pgm), - ADDRESS_MAP_NAME(tms32053_internal_data)) + : tms32051_device(mconfig, TMS32053, tag, owner, clock, ADDRESS_MAP_NAME(tms32053_internal_pgm), ADDRESS_MAP_NAME(tms32053_internal_data)) { } diff --git a/src/devices/cpu/tms32051/tms32051.h b/src/devices/cpu/tms32051/tms32051.h index 23bd2c2afd0..43553203dc2 100644 --- a/src/devices/cpu/tms32051/tms32051.h +++ b/src/devices/cpu/tms32051/tms32051.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Ville Linde -#pragma once +#ifndef MAME_CPU_TMS32051_TMS32051_H +#define MAME_CPU_TMS32051_TMS32051_H -#ifndef __TMS32051_H__ -#define __TMS32051_H__ +#pragma once enum @@ -58,12 +58,13 @@ class tms32051_device : public cpu_device public: // construction/destruction tms32051_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - tms32051_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source, address_map_constructor internal_pgm, address_map_constructor internal_data); DECLARE_READ16_MEMBER( cpuregs_r ); DECLARE_WRITE16_MEMBER( cpuregs_w ); protected: + tms32051_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, address_map_constructor internal_pgm, address_map_constructor internal_data); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -379,8 +380,7 @@ protected: }; -extern const device_type TMS32051; -extern const device_type TMS32053; - +DECLARE_DEVICE_TYPE(TMS32051, tms32051_device) +DECLARE_DEVICE_TYPE(TMS32053, tms32053_device) -#endif /* __TMS32051_H__ */ +#endif // MAME_CPU_TMS32051_TMS32051_H diff --git a/src/devices/cpu/tms32082/tms32082.cpp b/src/devices/cpu/tms32082/tms32082.cpp index de23e2f7736..749a8657d6e 100644 --- a/src/devices/cpu/tms32082/tms32082.cpp +++ b/src/devices/cpu/tms32082/tms32082.cpp @@ -8,14 +8,14 @@ */ #include "emu.h" -#include "debugger.h" #include "tms32082.h" +#include "debugger.h" extern CPU_DISASSEMBLE(tms32082_mp); extern CPU_DISASSEMBLE(tms32082_pp); -const device_type TMS32082_MP = device_creator; -const device_type TMS32082_PP = device_creator; +DEFINE_DEVICE_TYPE(TMS32082_MP, tms32082_mp_device, "tms32082_mp", "TMS32082 MP") +DEFINE_DEVICE_TYPE(TMS32082_PP, tms32082_pp_device, "tms32082_pp", "TMS32082 PP") @@ -45,7 +45,7 @@ const uint32_t tms32082_mp_device::SHIFT_MASK[] = tms32082_mp_device::tms32082_mp_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cpu_device(mconfig, TMS32082_MP, "TMS32082 MP", tag, owner, clock, "tms32082_mp", __FILE__) + : cpu_device(mconfig, TMS32082_MP, tag, owner, clock) , m_program_config("program", ENDIANNESS_BIG, 32, 32, 0, ADDRESS_MAP_NAME(mp_internal_map)) { } @@ -483,7 +483,7 @@ static ADDRESS_MAP_START(pp_internal_map, AS_PROGRAM, 32, tms32082_pp_device) ADDRESS_MAP_END tms32082_pp_device::tms32082_pp_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cpu_device(mconfig, TMS32082_PP, "TMS32082 PP", tag, owner, clock, "tms32082_pp", __FILE__) + : cpu_device(mconfig, TMS32082_PP, tag, owner, clock) , m_program_config("program", ENDIANNESS_BIG, 32, 32, 0, ADDRESS_MAP_NAME(pp_internal_map)) { } diff --git a/src/devices/cpu/tms32082/tms32082.h b/src/devices/cpu/tms32082/tms32082.h index 9ddf8c6ac00..852f3833363 100644 --- a/src/devices/cpu/tms32082/tms32082.h +++ b/src/devices/cpu/tms32082/tms32082.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Ville Linde -#pragma once +#ifndef MAME_CPU_TMS32082_TMS32082_H +#define MAME_CPU_TMS32082_TMS32082_H -#ifndef __TMS32082_H__ -#define __TMS32082_H__ +#pragma once // Master Processor class class tms32082_mp_device : public cpu_device @@ -211,8 +211,8 @@ protected: }; -extern const device_type TMS32082_MP; -extern const device_type TMS32082_PP; +DECLARE_DEVICE_TYPE(TMS32082_MP, tms32082_mp_device) +DECLARE_DEVICE_TYPE(TMS32082_PP, tms32082_pp_device) -#endif /* __TMS32082_H__ */ +#endif // MAME_CPU_TMS32082_TMS32082_H diff --git a/src/devices/cpu/tms34010/34010ops.h b/src/devices/cpu/tms34010/34010ops.h index 39833b35d77..901e9b56888 100644 --- a/src/devices/cpu/tms34010/34010ops.h +++ b/src/devices/cpu/tms34010/34010ops.h @@ -9,10 +9,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_CPU_TMS34010_34010OPS_H +#define MAME_CPU_TMS34010_34010OPS_H -#ifndef __34010OPS_H__ -#define __34010OPS_H__ +#pragma once @@ -151,4 +151,4 @@ inline void tms340x0_device::TMS34010_WRMEM_DWORD(offs_t A, uint32_t V) return TMS34010_RDMEM_DWORD(TOBYTE(offset)); -#endif /* __34010OPS_H__ */ +#endif // MAME_CPU_TMS34010_34010OPS_H diff --git a/src/devices/cpu/tms34010/tms34010.cpp b/src/devices/cpu/tms34010/tms34010.cpp index cf2de1129c0..e437af461c5 100644 --- a/src/devices/cpu/tms34010/tms34010.cpp +++ b/src/devices/cpu/tms34010/tms34010.cpp @@ -15,47 +15,46 @@ #include "debugger.h" #include "screen.h" +#define LOG_GENERAL (1U << 0) +#define LOG_CONTROL_REGS (1U << 1) +#define LOG_GRAPHICS_OPS (1U << 2) -/*************************************************************************** - DEBUG STATE & STRUCTURES -***************************************************************************/ - -#define VERBOSE 0 -#define LOG_CONTROL_REGS 0 -#define LOG_GRAPHICS_OPS 0 +//#define VERBOSE (LOG_GENERAL | LOG_CONTROL_REGS | LOG_GRAPHICS_OPS) +#include "logmacro.h" -#define LOG(x) do { if (VERBOSE) logerror x; } while (0) +#define LOGCONTROLREGS(...) LOGMASKED(LOG_CONTROL_REGS, __VA_ARGS__) +#define LOGGRAPHICSOPS(...) LOGMASKED(LOG_GRAPHICS_OPS, __VA_ARGS__) -const device_type TMS34010 = device_creator; -const device_type TMS34020 = device_creator; +DEFINE_DEVICE_TYPE(TMS34010, tms34010_device, "tms34010", "TMS34010") +DEFINE_DEVICE_TYPE(TMS34020, tms34020_device, "tms34020", "TMS34020") /*************************************************************************** GLOBAL VARIABLES ***************************************************************************/ -tms340x0_device::tms340x0_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname) - : cpu_device(mconfig, type, name, tag, owner, clock, shortname, __FILE__) +tms340x0_device::tms340x0_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : cpu_device(mconfig, type, tag, owner, clock) , device_video_interface(mconfig, *this) , m_program_config("program", ENDIANNESS_LITTLE, 16, 32, 3), m_pc(0), m_ppc(0), m_st(0), m_pixel_write(nullptr), m_pixel_read(nullptr), m_raster_op(nullptr), m_pixel_op(nullptr), m_pixel_op_timing(0), m_convsp(0), m_convdp(0), m_convmp(0), m_gfxcycles(0), m_pixelshift(0), m_is_34020(0), m_reset_deferred(false) - , m_halt_on_reset(false), m_hblank_stable(0), m_external_host_access(0), m_executing(0), m_program(nullptr), m_direct(nullptr) - , m_pixclock(0) + , m_halt_on_reset(false), m_hblank_stable(0), m_external_host_access(0), m_executing(0), m_program(nullptr), m_direct(nullptr) + , m_pixclock(0) , m_pixperclock(0), m_scantimer(nullptr), m_icount(0) - , m_output_int_cb(*this) + , m_output_int_cb(*this) { } tms34010_device::tms34010_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : tms340x0_device(mconfig, TMS34010, "TMS34010", tag, owner, clock, "tms34010") + : tms340x0_device(mconfig, TMS34010, tag, owner, clock) { m_is_34020 = 0; } tms34020_device::tms34020_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : tms340x0_device(mconfig, TMS34020, "TMS34020", tag, owner, clock, "tms34020") + : tms340x0_device(mconfig, TMS34020, tag, owner, clock) { m_is_34020 = 1; } @@ -489,7 +488,7 @@ void tms340x0_device::check_interrupt() /* check for NMI first */ if (IOREG(REG_HSTCTLH) & 0x0100) { - LOG(("TMS34010 '%s' takes NMI\n", tag())); + LOG("TMS34010 takes NMI\n"); /* ack the NMI */ IOREG(REG_HSTCTLH) &= ~0x0100; @@ -516,28 +515,28 @@ void tms340x0_device::check_interrupt() /* host interrupt */ if (irq & TMS34010_HI) { - LOG(("TMS34010 '%s' takes HI\n", tag())); + LOG("TMS34010 takes HI\n"); vector = 0xfffffec0; } /* display interrupt */ else if (irq & TMS34010_DI) { - LOG(("TMS34010 '%s' takes DI\n", tag())); + LOG("TMS34010 takes DI\n"); vector = 0xfffffea0; } /* window violation interrupt */ else if (irq & TMS34010_WV) { - LOG(("TMS34010 '%s' takes WV\n", tag())); + LOG("TMS34010 takes WV\n"); vector = 0xfffffe80; } /* external 1 interrupt */ else if (irq & TMS34010_INT1) { - LOG(("TMS34010 '%s' takes INT1\n", tag())); + LOG("TMS34010 takes INT1\n"); vector = 0xffffffc0; irqline = 0; } @@ -545,7 +544,7 @@ void tms340x0_device::check_interrupt() /* external 2 interrupt */ else if (irq & TMS34010_INT2) { - LOG(("TMS34010 '%s' takes INT2\n", tag())); + LOG("TMS34010 takes INT2\n"); vector = 0xffffffa0; irqline = 1; } @@ -666,7 +665,7 @@ void tms340x0_device::device_reset() void tms340x0_device::execute_set_input(int inputnum, int state) { - LOG(("TMS34010 '%s' set irq line %d state %d\n", tag(), inputnum, state)); + LOG("TMS34010 set irq line %d state %d\n", inputnum, state); /* set the pending interrupt */ switch (inputnum) @@ -699,7 +698,7 @@ TIMER_CALLBACK_MEMBER( tms340x0_device::internal_interrupt_callback ) /* call through to the CPU to generate the int */ IOREG(REG_INTPEND) |= type; - LOG(("TMS34010 '%s' set internal interrupt $%04x\n", tag(), type)); + LOG("TMS34010 set internal interrupt $%04x\n", type); /* generate triggers so that spin loops can key off them */ signal_interrupt_trigger(); @@ -872,7 +871,7 @@ TIMER_CALLBACK_MEMBER( tms340x0_device::scanline_callback ) if (!m_is_34020) { IOREG(REG_DPYADR) = IOREG(REG_DPYSTRT); - LOG(("Start of VBLANK, DPYADR = %04X\n", IOREG(REG_DPYADR))); + LOG("Start of VBLANK, DPYADR = %04X\n", IOREG(REG_DPYADR)); } /* 34020 loads DPYNXx with DPYSTx */ @@ -921,8 +920,8 @@ TIMER_CALLBACK_MEMBER( tms340x0_device::scanline_callback ) m_hblank_stable++; } - LOG(("Configuring screen: HTOTAL=%3d BLANK=%3d-%3d VTOTAL=%3d BLANK=%3d-%3d refresh=%f\n", - htotal, SMART_IOREG(HEBLNK), SMART_IOREG(HSBLNK), vtotal, veblnk, vsblnk, ATTOSECONDS_TO_HZ(refresh))); + LOG("Configuring screen: HTOTAL=%3d BLANK=%3d-%3d VTOTAL=%3d BLANK=%3d-%3d refresh=%f\n", + htotal, SMART_IOREG(HEBLNK), SMART_IOREG(HSBLNK), vtotal, veblnk, vsblnk, ATTOSECONDS_TO_HZ(refresh)); /* interlaced timing not supported */ if ((SMART_IOREG(DPYCTL) & 0x4000) == 0) @@ -973,7 +972,7 @@ TIMER_CALLBACK_MEMBER( tms340x0_device::scanline_callback ) } -void tms340x0_device::get_display_params(tms34010_display_params *params) +void tms340x0_device::get_display_params(display_params *params) { params->enabled = ((SMART_IOREG(DPYCTL) & 0x8000) != 0); params->vcount = SMART_IOREG(VCOUNT); @@ -1007,7 +1006,7 @@ void tms340x0_device::get_display_params(tms34010_display_params *params) uint32_t tms340x0_device::tms340x0_ind16(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { pen_t blackpen = screen.palette().black_pen(); - tms34010_display_params params; + display_params params; int x; /* get the display parameters for the screen */ @@ -1017,7 +1016,7 @@ uint32_t tms340x0_device::tms340x0_ind16(screen_device &screen, bitmap_ind16 &bi if (params.enabled) { /* call through to the callback */ - LOG((" Update: scan=%3d ROW=%04X COL=%04X\n", cliprect.min_y, params.rowaddr, params.coladdr)); + LOG(" Update: scan=%3d ROW=%04X COL=%04X\n", cliprect.min_y, params.rowaddr, params.coladdr); m_scanline_ind16_cb(screen, bitmap, cliprect.min_y, ¶ms); } @@ -1038,7 +1037,7 @@ uint32_t tms340x0_device::tms340x0_ind16(screen_device &screen, bitmap_ind16 &bi uint32_t tms340x0_device::tms340x0_rgb32(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { pen_t blackpen = rgb_t::black(); - tms34010_display_params params; + display_params params; int x; /* get the display parameters for the screen */ @@ -1048,7 +1047,7 @@ uint32_t tms340x0_device::tms340x0_rgb32(screen_device &screen, bitmap_rgb32 &bi if (params.enabled) { /* call through to the callback */ - LOG((" Update: scan=%3d ROW=%04X COL=%04X\n", cliprect.min_y, params.rowaddr, params.coladdr)); + LOG(" Update: scan=%3d ROW=%04X COL=%04X\n", cliprect.min_y, params.rowaddr, params.coladdr); m_scanline_rgb32_cb(screen, bitmap, cliprect.min_y, ¶ms); } @@ -1070,7 +1069,6 @@ uint32_t tms340x0_device::tms340x0_rgb32(screen_device &screen, bitmap_rgb32 &bi I/O REGISTER WRITES ***************************************************************************/ -#if 0 static const char *const ioreg_name[] = { "HESYNC", "HEBLNK", "HSBLNK", "HTOTAL", @@ -1083,7 +1081,6 @@ static const char *const ioreg_name[] = "RESERVED", "RESERVED", "RESERVED", "DPYTAP", "HCOUNT", "VCOUNT", "DPYADR", "REFCNT" }; -#endif WRITE16_MEMBER( tms34010_device::io_register_w ) { @@ -1206,12 +1203,10 @@ WRITE16_MEMBER( tms34010_device::io_register_w ) break; } -// if (LOG_CONTROL_REGS) -// logerror("%s: %s = %04X (%d)\n", machine().describe_context(), ioreg_name[offset], IOREG(offset), m_screen.vpos()); + LOGCONTROLREGS("%s: %s = %04X (%d)\n", machine().describe_context(), ioreg_name[offset], IOREG(offset), m_screen->vpos()); } -#if 0 static const char *const ioreg020_name[] = { "VESYNC", "HESYNC", "VEBLNK", "HEBLNK", @@ -1234,7 +1229,6 @@ static const char *const ioreg020_name[] = "IHOST1L", "IHOST1H", "IHOST2L", "IHOST2H", "IHOST3L", "IHOST3H", "IHOST4L", "IHOST4H" }; -#endif WRITE16_MEMBER( tms34020_device::io_register_w ) { @@ -1244,8 +1238,7 @@ WRITE16_MEMBER( tms34020_device::io_register_w ) oldreg = IOREG(offset); IOREG(offset) = data; -// if (LOG_CONTROL_REGS) -// logerror("%s: %s = %04X (%d)\n", machine().describe_context(), ioreg020_name[offset], IOREG(offset), m_screen.vpos()); + LOGCONTROLREGS("%s: %s = %04X (%d)\n", machine().describe_context(), ioreg020_name[offset], IOREG(offset), m_screen->vpos()); switch (offset) { @@ -1402,8 +1395,7 @@ READ16_MEMBER( tms34010_device::io_register_r ) { int result, total; -// if (LOG_CONTROL_REGS) -// logerror("%s: read %s\n", machine().describe_context(), ioreg_name[offset]); + LOGCONTROLREGS("%s: read %s\n", machine().describe_context(), ioreg_name[offset]); switch (offset) { @@ -1444,8 +1436,7 @@ READ16_MEMBER( tms34020_device::io_register_r ) { int result, total; -// if (LOG_CONTROL_REGS) -// logerror("%s: read %s\n", machine().describe_context(), ioreg_name[offset]); + LOGCONTROLREGS("%s: read %s\n", machine().describe_context(), ioreg_name[offset]); switch (offset) { diff --git a/src/devices/cpu/tms34010/tms34010.h b/src/devices/cpu/tms34010/tms34010.h index a4efa7b14da..32b445629a9 100644 --- a/src/devices/cpu/tms34010/tms34010.h +++ b/src/devices/cpu/tms34010/tms34010.h @@ -9,10 +9,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_CPU_TMS34010_TMS34010_H +#define MAME_CPU_TMS34010_TMS34010_H -#ifndef __TMS34010_H__ -#define __TMS34010_H__ +#pragma once /* register indexes for get_reg and set_reg */ @@ -95,77 +95,6 @@ enum REG_REFCNT }; -enum -{ - REG020_VESYNC, - REG020_HESYNC, - REG020_VEBLNK, - REG020_HEBLNK, - REG020_VSBLNK, - REG020_HSBLNK, - REG020_VTOTAL, - REG020_HTOTAL, - REG020_DPYCTL, /* matches 010 */ - REG020_DPYSTRT, /* matches 010 */ - REG020_DPYINT, /* matches 010 */ - REG020_CONTROL, /* matches 010 */ - REG020_HSTDATA, /* matches 010 */ - REG020_HSTADRL, /* matches 010 */ - REG020_HSTADRH, /* matches 010 */ - REG020_HSTCTLL, /* matches 010 */ - - REG020_HSTCTLH, /* matches 010 */ - REG020_INTENB, /* matches 010 */ - REG020_INTPEND, /* matches 010 */ - REG020_CONVSP, /* matches 010 */ - REG020_CONVDP, /* matches 010 */ - REG020_PSIZE, /* matches 010 */ - REG020_PMASKL, - REG020_PMASKH, - REG020_CONVMP, - REG020_CONTROL2, - REG020_CONFIG, - REG020_DPYTAP, /* matches 010 */ - REG020_VCOUNT, - REG020_HCOUNT, - REG020_DPYADR, /* matches 010 */ - REG020_REFADR, - - REG020_DPYSTL, - REG020_DPYSTH, - REG020_DPYNXL, - REG020_DPYNXH, - REG020_DINCL, - REG020_DINCH, - REG020_RES0, - REG020_HESERR, - REG020_RES1, - REG020_RES2, - REG020_RES3, - REG020_RES4, - REG020_SCOUNT, - REG020_BSFLTST, - REG020_DPYMSK, - REG020_RES5, - - REG020_SETVCNT, - REG020_SETHCNT, - REG020_BSFLTDL, - REG020_BSFLTDH, - REG020_RES6, - REG020_RES7, - REG020_RES8, - REG020_RES9, - REG020_IHOST1L, - REG020_IHOST1H, - REG020_IHOST2L, - REG020_IHOST2H, - REG020_IHOST3L, - REG020_IHOST3H, - REG020_IHOST4L, - REG020_IHOST4H -}; - /* Interrupts that are generated by the processor internally */ #define TMS34010_INT1 0x0002 /* External Interrupt 1 */ #define TMS34010_INT2 0x0004 /* External Interrupt 2 */ @@ -174,18 +103,6 @@ enum #define TMS34010_WV 0x0800 /* Window Violation Interrupt */ -/* Configuration structure */ -struct tms34010_display_params -{ - uint16_t vcount; /* most recent VCOUNT */ - uint16_t veblnk, vsblnk; /* start/end of VBLANK */ - uint16_t heblnk, hsblnk; /* start/end of HBLANK */ - uint16_t rowaddr, coladdr; /* row/column addresses */ - uint8_t yoffset; /* y offset from addresses */ - uint8_t enabled; /* video enabled */ -}; - - #define MCFG_TMS340X0_HALT_ON_RESET(_value) \ tms340x0_device::set_halt_on_reset(*device, _value); @@ -195,59 +112,64 @@ struct tms34010_display_params #define MCFG_TMS340X0_PIXELS_PER_CLOCK(_value) \ tms340x0_device::set_pixels_per_clock(*device, _value); -typedef device_delegate scanline_ind16_cb_delegate; - -#define TMS340X0_SCANLINE_IND16_CB_MEMBER(_name) void _name(screen_device &screen, bitmap_ind16 &bitmap, int scanline, const tms34010_display_params *params) +#define TMS340X0_SCANLINE_IND16_CB_MEMBER(_name) void _name(screen_device &screen, bitmap_ind16 &bitmap, int scanline, const tms340x0_device::display_params *params) #define MCFG_TMS340X0_SCANLINE_IND16_CB(_class, _method) \ - tms340x0_device::set_scanline_ind16_callback(*device, scanline_ind16_cb_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); - + tms340x0_device::set_scanline_ind16_callback(*device, tms340x0_device::scanline_ind16_cb_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); -typedef device_delegate scanline_rgb32_cb_delegate; -#define TMS340X0_SCANLINE_RGB32_CB_MEMBER(_name) void _name(screen_device &screen, bitmap_rgb32 &bitmap, int scanline, const tms34010_display_params *params) +#define TMS340X0_SCANLINE_RGB32_CB_MEMBER(_name) void _name(screen_device &screen, bitmap_rgb32 &bitmap, int scanline, const tms340x0_device::display_params *params) #define MCFG_TMS340X0_SCANLINE_RGB32_CB(_class, _method) \ - tms340x0_device::set_scanline_rgb32_callback(*device, scanline_rgb32_cb_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); + tms340x0_device::set_scanline_rgb32_callback(*device, tms340x0_device::scanline_rgb32_cb_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); #define MCFG_TMS340X0_OUTPUT_INT_CB(_devcb) \ devcb = &tms340x0_device::set_output_int_callback(*device, DEVCB_##_devcb); -typedef device_delegate to_shiftreg_cb_delegate; - #define TMS340X0_TO_SHIFTREG_CB_MEMBER(_name) void _name(address_space &space, offs_t address, uint16_t *shiftreg) #define MCFG_TMS340X0_TO_SHIFTREG_CB(_class, _method) \ - tms340x0_device::set_to_shiftreg_callback(*device, to_shiftreg_cb_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); - + tms340x0_device::set_to_shiftreg_callback(*device, tms340x0_device::to_shiftreg_cb_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); -typedef device_delegate from_shiftreg_cb_delegate; #define TMS340X0_FROM_SHIFTREG_CB_MEMBER(_name) void _name(address_space &space, offs_t address, uint16_t *shiftreg) #define MCFG_TMS340X0_FROM_SHIFTREG_CB(_class, _method) \ - tms340x0_device::set_from_shiftreg_callback(*device, from_shiftreg_cb_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); + tms340x0_device::set_from_shiftreg_callback(*device, tms340x0_device::from_shiftreg_cb_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); class tms340x0_device : public cpu_device, public device_video_interface { public: - // construction/destruction - tms340x0_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname); + // Configuration structure + struct display_params + { + uint16_t vcount; /* most recent VCOUNT */ + uint16_t veblnk, vsblnk; /* start/end of VBLANK */ + uint16_t heblnk, hsblnk; /* start/end of HBLANK */ + uint16_t rowaddr, coladdr; /* row/column addresses */ + uint8_t yoffset; /* y offset from addresses */ + uint8_t enabled; /* video enabled */ + }; + + typedef device_delegate scanline_ind16_cb_delegate; + typedef device_delegate scanline_rgb32_cb_delegate; + typedef device_delegate to_shiftreg_cb_delegate; + typedef device_delegate from_shiftreg_cb_delegate; static void set_halt_on_reset(device_t &device, bool halt_on_reset) { downcast(device).m_halt_on_reset = halt_on_reset; } static void set_pixel_clock(device_t &device, uint32_t pixclock) { downcast(device).m_pixclock = pixclock; } static void set_pixels_per_clock(device_t &device, int pixperclock) { downcast(device).m_pixperclock = pixperclock; } static void set_scanline_ind16_callback(device_t &device, scanline_ind16_cb_delegate callback) { downcast(device).m_scanline_ind16_cb = callback; } static void set_scanline_rgb32_callback(device_t &device, scanline_rgb32_cb_delegate callback) { downcast(device).m_scanline_rgb32_cb = callback; } - template static devcb_base &set_output_int_callback(device_t &device, _Object object) { return downcast(device).m_output_int_cb.set_callback(object); } + template static devcb_base &set_output_int_callback(device_t &device, Object &&cb) { return downcast(device).m_output_int_cb.set_callback(std::forward(cb)); } static void set_to_shiftreg_callback(device_t &device, to_shiftreg_cb_delegate callback) { downcast(device).m_to_shiftreg_cb = callback; } static void set_from_shiftreg_callback(device_t &device, from_shiftreg_cb_delegate callback) { downcast(device).m_from_shiftreg_cb = callback; } - void get_display_params(tms34010_display_params *params); + void get_display_params(display_params *params); void tms34010_state_postload(); uint32_t tms340x0_ind16(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); @@ -263,6 +185,80 @@ public: TIMER_CALLBACK_MEMBER(scanline_callback); protected: + enum + { + REG020_VESYNC, + REG020_HESYNC, + REG020_VEBLNK, + REG020_HEBLNK, + REG020_VSBLNK, + REG020_HSBLNK, + REG020_VTOTAL, + REG020_HTOTAL, + REG020_DPYCTL, /* matches 010 */ + REG020_DPYSTRT, /* matches 010 */ + REG020_DPYINT, /* matches 010 */ + REG020_CONTROL, /* matches 010 */ + REG020_HSTDATA, /* matches 010 */ + REG020_HSTADRL, /* matches 010 */ + REG020_HSTADRH, /* matches 010 */ + REG020_HSTCTLL, /* matches 010 */ + + REG020_HSTCTLH, /* matches 010 */ + REG020_INTENB, /* matches 010 */ + REG020_INTPEND, /* matches 010 */ + REG020_CONVSP, /* matches 010 */ + REG020_CONVDP, /* matches 010 */ + REG020_PSIZE, /* matches 010 */ + REG020_PMASKL, + REG020_PMASKH, + REG020_CONVMP, + REG020_CONTROL2, + REG020_CONFIG, + REG020_DPYTAP, /* matches 010 */ + REG020_VCOUNT, + REG020_HCOUNT, + REG020_DPYADR, /* matches 010 */ + REG020_REFADR, + + REG020_DPYSTL, + REG020_DPYSTH, + REG020_DPYNXL, + REG020_DPYNXH, + REG020_DINCL, + REG020_DINCH, + REG020_RES0, + REG020_HESERR, + REG020_RES1, + REG020_RES2, + REG020_RES3, + REG020_RES4, + REG020_SCOUNT, + REG020_BSFLTST, + REG020_DPYMSK, + REG020_RES5, + + REG020_SETVCNT, + REG020_SETHCNT, + REG020_BSFLTDL, + REG020_BSFLTDH, + REG020_RES6, + REG020_RES7, + REG020_RES8, + REG020_RES9, + REG020_IHOST1L, + REG020_IHOST1H, + REG020_IHOST2L, + REG020_IHOST2H, + REG020_IHOST3L, + REG020_IHOST3H, + REG020_IHOST4L, + REG020_IHOST4H + }; + + // construction/destruction + tms340x0_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -1032,7 +1028,7 @@ protected: virtual offs_t disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) override; }; -extern const device_type TMS34010; +DECLARE_DEVICE_TYPE(TMS34010, tms34010_device) class tms34020_device : public tms340x0_device { @@ -1049,7 +1045,7 @@ protected: virtual offs_t disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) override; }; -extern const device_type TMS34020; +DECLARE_DEVICE_TYPE(TMS34020, tms34020_device) @@ -1067,4 +1063,4 @@ extern const device_type TMS34020; CPU_DISASSEMBLE( tms34010 ); CPU_DISASSEMBLE( tms34020 ); -#endif /* __TMS34010_H__ */ +#endif // MAME_CPU_TMS34010_TMS34010_H diff --git a/src/devices/cpu/tms57002/tms57002.cpp b/src/devices/cpu/tms57002/tms57002.cpp index 88e49847b80..92da5cd8c72 100644 --- a/src/devices/cpu/tms57002/tms57002.cpp +++ b/src/devices/cpu/tms57002/tms57002.cpp @@ -8,12 +8,12 @@ ***************************************************************************/ - #include "emu.h" -#include "debugger.h" #include "tms57002.h" +#include "debugger.h" + -const device_type TMS57002 = device_creator; +DEFINE_DEVICE_TYPE(TMS57002, tms57002_device, "tms57002", "TMS57002") // Can't use a DEVICE_ADDRESS_MAP, not yet anyway static ADDRESS_MAP_START(internal_pgm, AS_PROGRAM, 32, tms57002_device) @@ -21,11 +21,11 @@ static ADDRESS_MAP_START(internal_pgm, AS_PROGRAM, 32, tms57002_device) ADDRESS_MAP_END tms57002_device::tms57002_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cpu_device(mconfig, TMS57002, "TMS57002", tag, owner, clock, "tms57002", __FILE__), - device_sound_interface(mconfig, *this), macc(0), st0(0), st1(0), sti(0), - txrd(0), - program_config("program", ENDIANNESS_LITTLE, 32, 8, -2, ADDRESS_MAP_NAME(internal_pgm)), - data_config("data", ENDIANNESS_LITTLE, 8, 20) + : cpu_device(mconfig, TMS57002, tag, owner, clock) + , device_sound_interface(mconfig, *this) + , macc(0), st0(0), st1(0), sti(0), txrd(0) + , program_config("program", ENDIANNESS_LITTLE, 32, 8, -2, ADDRESS_MAP_NAME(internal_pgm)) + , data_config("data", ENDIANNESS_LITTLE, 8, 20) { } diff --git a/src/devices/cpu/tms57002/tms57002.h b/src/devices/cpu/tms57002/tms57002.h index ba0765b8b07..97fec1739c2 100644 --- a/src/devices/cpu/tms57002/tms57002.h +++ b/src/devices/cpu/tms57002/tms57002.h @@ -7,10 +7,10 @@ TMS57002 "DASP" emulator. ***************************************************************************/ -#pragma once +#ifndef MAME_CPU_TMS57002_TMS57002_H +#define MAME_CPU_TMS57002_TMS57002_H -#ifndef __TMS57002_H__ -#define __TMS57002_H__ +#pragma once class tms57002_device : public cpu_device, public device_sound_interface { public: @@ -212,6 +212,6 @@ enum { TMS57002_XWR }; -extern const device_type TMS57002; +DECLARE_DEVICE_TYPE(TMS57002, tms57002_device) -#endif +#endif // MAME_CPU_TMS57002_TMS57002_H diff --git a/src/devices/cpu/tms7000/tms7000.cpp b/src/devices/cpu/tms7000/tms7000.cpp index 6693b69866f..c1bd98620fd 100644 --- a/src/devices/cpu/tms7000/tms7000.cpp +++ b/src/devices/cpu/tms7000/tms7000.cpp @@ -22,29 +22,29 @@ // TMS7000 is the most basic one, 128 bytes internal RAM and no internal ROM. // TMS7020 and TMS7040 are same, but with 2KB and 4KB internal ROM respectively. -const device_type TMS7000 = device_creator; -const device_type TMS7020 = device_creator; -const device_type TMS7040 = device_creator; +DEFINE_DEVICE_TYPE(TMS7000, tms7000_device, "tms7000", "TMS7000") +DEFINE_DEVICE_TYPE(TMS7020, tms7020_device, "tms7020", "TMS7020") +DEFINE_DEVICE_TYPE(TMS7040, tms7040_device, "tms7040", "TMS7040") // Exelvision (spinoff of TI) TMS7020 added one custom opcode. -const device_type TMS7020_EXL = device_creator; +DEFINE_DEVICE_TYPE(TMS7020_EXL, tms7020_exl_device, "tms7020_exl", "TMS7020 (Exelvision)") // CMOS devices biggest difference in a 'real world' setting is that the power // requirements are much lower. This obviously has no use in software emulation. -const device_type TMS70C00 = device_creator; -const device_type TMS70C20 = device_creator; -const device_type TMS70C40 = device_creator; +DEFINE_DEVICE_TYPE(TMS70C00, tms70c00_device, "tms70c00", "TMS70C00") +DEFINE_DEVICE_TYPE(TMS70C20, tms70c20_device, "tms70c20", "TMS70C20") +DEFINE_DEVICE_TYPE(TMS70C40, tms70c40_device, "tms70c40", "TMS70C40") // TMS70x1 features more peripheral I/O, the main addition being a serial port. // TMS70x2 is the same, just with twice more RAM (256 bytes) -const device_type TMS7001 = device_creator; -const device_type TMS7041 = device_creator; -const device_type TMS7002 = device_creator; -const device_type TMS7042 = device_creator; +DEFINE_DEVICE_TYPE(TMS7001, tms7001_device, "tms7001", "TMS7001") +DEFINE_DEVICE_TYPE(TMS7041, tms7041_device, "tms7041", "TMS7041") +DEFINE_DEVICE_TYPE(TMS7002, tms7002_device, "tms7002", "TMS7002") +DEFINE_DEVICE_TYPE(TMS7042, tms7042_device, "tms7042", "TMS7042") // TMS70C46 is literally a shell around a TMS70C40, with support for external // memory bus, auto external clock divider on slow memory, and wake-up on keypress. -const device_type TMS70C46 = device_creator; +DEFINE_DEVICE_TYPE(TMS70C46, tms70c46_device, "tms70c46", "TMC70C46") // TMS70Cx2 is an update to TMS70x2 with some extra features. Due to some changes // in peripheral file I/O, it is not backward compatible to TMS70x2. @@ -107,15 +107,12 @@ ADDRESS_MAP_END // device definitions tms7000_device::tms7000_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cpu_device(mconfig, TMS7000, "TMS7000", tag, owner, clock, "tms7000", __FILE__), - m_program_config("program", ENDIANNESS_BIG, 8, 16, 0, ADDRESS_MAP_NAME(tms7000_mem)), - m_io_config("io", ENDIANNESS_BIG, 8, 8, 0, ADDRESS_MAP_NAME(tms7000_io)), - m_info_flags(0) + : tms7000_device(mconfig, TMS7000, tag, owner, clock, ADDRESS_MAP_NAME(tms7000_mem), 0) { } -tms7000_device::tms7000_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, address_map_constructor internal, uint32_t info_flags, const char *shortname, const char *source) - : cpu_device(mconfig, type, name, tag, owner, clock, shortname, source), +tms7000_device::tms7000_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, address_map_constructor internal, uint32_t info_flags) + : cpu_device(mconfig, type, tag, owner, clock), m_program_config("program", ENDIANNESS_BIG, 8, 16, 0, internal), m_io_config("io", ENDIANNESS_BIG, 8, 8, 0, ADDRESS_MAP_NAME(tms7000_io)), m_info_flags(info_flags) @@ -123,57 +120,57 @@ tms7000_device::tms7000_device(const machine_config &mconfig, device_type type, } tms7020_device::tms7020_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : tms7000_device(mconfig, TMS7020, "TMS7020", tag, owner, clock, ADDRESS_MAP_NAME(tms7020_mem), 0, "tms7020", __FILE__) + : tms7000_device(mconfig, TMS7020, tag, owner, clock, ADDRESS_MAP_NAME(tms7020_mem), 0) { } tms7020_exl_device::tms7020_exl_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : tms7000_device(mconfig, TMS7020_EXL, "TMS7020 (Exelvision)", tag, owner, clock, ADDRESS_MAP_NAME(tms7020_mem), 0, "tms7020_exl", __FILE__) + : tms7000_device(mconfig, TMS7020_EXL, tag, owner, clock, ADDRESS_MAP_NAME(tms7020_mem), 0) { } tms7040_device::tms7040_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : tms7000_device(mconfig, TMS7040, "TMS7040", tag, owner, clock, ADDRESS_MAP_NAME(tms7040_mem), 0, "tms7040", __FILE__) + : tms7000_device(mconfig, TMS7040, tag, owner, clock, ADDRESS_MAP_NAME(tms7040_mem), 0) { } tms70c00_device::tms70c00_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : tms7000_device(mconfig, TMS70C00, "TMS70C00", tag, owner, clock, ADDRESS_MAP_NAME(tms7000_mem), TMS7000_CHIP_IS_CMOS, "tms70c00", __FILE__) + : tms7000_device(mconfig, TMS70C00, tag, owner, clock, ADDRESS_MAP_NAME(tms7000_mem), CHIP_IS_CMOS) { } tms70c20_device::tms70c20_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : tms7000_device(mconfig, TMS70C20, "TMS70C20", tag, owner, clock, ADDRESS_MAP_NAME(tms7020_mem), TMS7000_CHIP_IS_CMOS, "tms70c20", __FILE__) + : tms7000_device(mconfig, TMS70C20, tag, owner, clock, ADDRESS_MAP_NAME(tms7020_mem), CHIP_IS_CMOS) { } tms70c40_device::tms70c40_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : tms7000_device(mconfig, TMS70C40, "TMS70C40", tag, owner, clock, ADDRESS_MAP_NAME(tms7040_mem), TMS7000_CHIP_IS_CMOS, "tms70c40", __FILE__) + : tms7000_device(mconfig, TMS70C40, tag, owner, clock, ADDRESS_MAP_NAME(tms7040_mem), CHIP_IS_CMOS) { } tms7001_device::tms7001_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : tms7000_device(mconfig, TMS7001, "TMS7001", tag, owner, clock, ADDRESS_MAP_NAME(tms7001_mem), TMS7000_CHIP_FAMILY_70X2, "tms7001", __FILE__) + : tms7000_device(mconfig, TMS7001, tag, owner, clock, ADDRESS_MAP_NAME(tms7001_mem), CHIP_FAMILY_70X2) { } tms7041_device::tms7041_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : tms7000_device(mconfig, TMS7041, "TMS7041", tag, owner, clock, ADDRESS_MAP_NAME(tms7041_mem), TMS7000_CHIP_FAMILY_70X2, "tms7041", __FILE__) + : tms7000_device(mconfig, TMS7041, tag, owner, clock, ADDRESS_MAP_NAME(tms7041_mem), CHIP_FAMILY_70X2) { } tms7002_device::tms7002_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : tms7000_device(mconfig, TMS7002, "TMS7002", tag, owner, clock, ADDRESS_MAP_NAME(tms7002_mem), TMS7000_CHIP_FAMILY_70X2, "tms7002", __FILE__) + : tms7000_device(mconfig, TMS7002, tag, owner, clock, ADDRESS_MAP_NAME(tms7002_mem), CHIP_FAMILY_70X2) { } tms7042_device::tms7042_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : tms7000_device(mconfig, TMS7042, "TMS7042", tag, owner, clock, ADDRESS_MAP_NAME(tms7042_mem), TMS7000_CHIP_FAMILY_70X2, "tms7042", __FILE__) + : tms7000_device(mconfig, TMS7042, tag, owner, clock, ADDRESS_MAP_NAME(tms7042_mem), CHIP_FAMILY_70X2) { } tms70c46_device::tms70c46_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : tms7000_device(mconfig, TMS70C46, "TMS70C46", tag, owner, clock, ADDRESS_MAP_NAME(tms70c46_mem), TMS7000_CHIP_IS_CMOS, "tms70c46", __FILE__) + : tms7000_device(mconfig, TMS70C46, tag, owner, clock, ADDRESS_MAP_NAME(tms70c46_mem), CHIP_IS_CMOS) { } diff --git a/src/devices/cpu/tms7000/tms7000.h b/src/devices/cpu/tms7000/tms7000.h index 8fbab15246a..c6553e51c4c 100644 --- a/src/devices/cpu/tms7000/tms7000.h +++ b/src/devices/cpu/tms7000/tms7000.h @@ -6,10 +6,10 @@ */ -#pragma once +#ifndef MAME_CPU_TMS7000_TMS7000_H +#define MAME_CPU_TMS7000_TMS7000_H -#ifndef __TMS7000_H__ -#define __TMS7000_H__ +#pragma once #include "debugger.h" @@ -32,20 +32,12 @@ enum TMS7000_PORTE /* TMS70C46 only */ }; -// chip info flags -#define TMS7000_CHIP_IS_CMOS 0x01 -#define TMS7000_CHIP_FAMILY_70X0 0x00 -#define TMS7000_CHIP_FAMILY_70X2 0x02 -#define TMS7000_CHIP_FAMILY_70CX2 0x04 -#define TMS7000_CHIP_FAMILY_MASK 0x06 - class tms7000_device : public cpu_device { public: // construction/destruction tms7000_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - tms7000_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, address_map_constructor internal, uint32_t info_flags, const char *shortname, const char *source); DECLARE_READ8_MEMBER(tms7000_unmapped_rf_r) { if (!machine().side_effect_disabled()) logerror("'%s' (%04X): unmapped_rf_r @ $%04x\n", tag(), m_pc, offset + 0x80); return 0; }; DECLARE_WRITE8_MEMBER(tms7000_unmapped_rf_w) { logerror("'%s' (%04X): unmapped_rf_w @ $%04x = $%02x\n", tag(), m_pc, offset + 0x80, data); }; @@ -55,13 +47,21 @@ public: DECLARE_READ8_MEMBER(tms7002_pf_r) { return tms7000_pf_r(space, offset + 0x10); } DECLARE_WRITE8_MEMBER(tms7002_pf_w) { tms7000_pf_w(space, offset + 0x10, data); } - bool chip_is_cmos() { return (m_info_flags & TMS7000_CHIP_IS_CMOS) ? true : false; } - uint32_t chip_get_family() { return m_info_flags & TMS7000_CHIP_FAMILY_MASK; } - bool chip_is_family_70x0() { return chip_get_family() == TMS7000_CHIP_FAMILY_70X0; } - bool chip_is_family_70x2() { return chip_get_family() == TMS7000_CHIP_FAMILY_70X2; } - bool chip_is_family_70cx2() { return chip_get_family() == TMS7000_CHIP_FAMILY_70CX2; } + bool chip_is_cmos() const { return (m_info_flags & CHIP_IS_CMOS) ? true : false; } + bool chip_is_family_70x0() const { return chip_get_family() == CHIP_FAMILY_70X0; } + bool chip_is_family_70x2() const { return chip_get_family() == CHIP_FAMILY_70X2; } + bool chip_is_family_70cx2() const { return chip_get_family() == CHIP_FAMILY_70CX2; } protected: + // chip info flags + static constexpr uint32_t CHIP_IS_CMOS = 0x01; + static constexpr uint32_t CHIP_FAMILY_70X0 = 0x00; + static constexpr uint32_t CHIP_FAMILY_70X2 = 0x02; + static constexpr uint32_t CHIP_FAMILY_70CX2 = 0x04; + static constexpr uint32_t CHIP_FAMILY_MASK = 0x06; + + tms7000_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, address_map_constructor internal, uint32_t info_flags); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -86,6 +86,8 @@ protected: virtual uint32_t disasm_max_opcode_bytes() const override { return 4; } virtual offs_t disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) override; + uint32_t chip_get_family() const { return m_info_flags & CHIP_FAMILY_MASK; } + virtual void execute_one(uint8_t op); address_space_config m_program_config; @@ -358,17 +360,17 @@ public: }; -extern const device_type TMS7000; -extern const device_type TMS7020; -extern const device_type TMS7020_EXL; -extern const device_type TMS7040; -extern const device_type TMS70C00; -extern const device_type TMS70C20; -extern const device_type TMS70C40; -extern const device_type TMS70C46; -extern const device_type TMS7001; -extern const device_type TMS7041; -extern const device_type TMS7002; -extern const device_type TMS7042; - -#endif /* __TMS7000_H__ */ +DECLARE_DEVICE_TYPE(TMS7000, tms7000_device) +DECLARE_DEVICE_TYPE(TMS7020, tms7020_device) +DECLARE_DEVICE_TYPE(TMS7020_EXL, tms7020_exl_device) +DECLARE_DEVICE_TYPE(TMS7040, tms7040_device) +DECLARE_DEVICE_TYPE(TMS70C00, tms70c00_device) +DECLARE_DEVICE_TYPE(TMS70C20, tms70c20_device) +DECLARE_DEVICE_TYPE(TMS70C40, tms70c40_device) +DECLARE_DEVICE_TYPE(TMS70C46, tms70c46_device) +DECLARE_DEVICE_TYPE(TMS7001, tms7001_device) +DECLARE_DEVICE_TYPE(TMS7041, tms7041_device) +DECLARE_DEVICE_TYPE(TMS7002, tms7002_device) +DECLARE_DEVICE_TYPE(TMS7042, tms7042_device) + +#endif // MAME_CPU_TMS7000_TMS7000_H diff --git a/src/devices/cpu/tms9900/ti990_10.cpp b/src/devices/cpu/tms9900/ti990_10.cpp index 9fafeb11563..9b724533a55 100644 --- a/src/devices/cpu/tms9900/ti990_10.cpp +++ b/src/devices/cpu/tms9900/ti990_10.cpp @@ -43,7 +43,7 @@ ****************************************************************************/ ti990_10_device::ti990_10_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cpu_device(mconfig, TI990_10, "TI990/10 CPU", tag, owner, clock, "ti990_10_cpu", __FILE__), + : cpu_device(mconfig, TI990_10, tag, owner, clock), m_program_config("program", ENDIANNESS_BIG, 16, 21), m_io_config("cru", ENDIANNESS_BIG, 8, 12), m_prgspace(nullptr), @@ -147,4 +147,4 @@ offs_t ti990_10_device::disasm_disassemble(std::ostream &stream, offs_t pc, cons return CPU_DISASSEMBLE_NAME(tms9900)(this, stream, pc, oprom, opram, options); } -const device_type TI990_10 = device_creator; +DEFINE_DEVICE_TYPE(TI990_10, ti990_10_device, "ti990_10_cpu", "TI990/10 CPU") diff --git a/src/devices/cpu/tms9900/ti990_10.h b/src/devices/cpu/tms9900/ti990_10.h index 5e33d03435f..f1c27d809d6 100644 --- a/src/devices/cpu/tms9900/ti990_10.h +++ b/src/devices/cpu/tms9900/ti990_10.h @@ -5,8 +5,11 @@ See ti990_10.c for documentation */ -#ifndef __TI990_10_H__ -#define __TI990_10_H__ +#ifndef MAME_CPU_TMS9900_TI990_10_H +#define MAME_CPU_TMS9900_TI990_10_H + +#pragma once + #include "debugger.h" #include "tms99com.h" @@ -55,6 +58,6 @@ private: }; // device type definition -extern const device_type TI990_10; +DECLARE_DEVICE_TYPE(TI990_10, ti990_10_device) -#endif /* __TI990_10_H__ */ +#endif // MAME_CPU_TMS9900_TI990_10_H diff --git a/src/devices/cpu/tms9900/tms9900.cpp b/src/devices/cpu/tms9900/tms9900.cpp index cea89881188..7cc7552c502 100644 --- a/src/devices/cpu/tms9900/tms9900.cpp +++ b/src/devices/cpu/tms9900/tms9900.cpp @@ -175,8 +175,8 @@ enum twice their number. Accordingly, the TMS9900 has a CRU bitmask 0x0fff. ****************************************************************************/ -tms99xx_device::tms99xx_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, int databus_width, int prg_addr_bits, int cru_addr_bits, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : cpu_device(mconfig, type, name, tag, owner, clock, shortname, source), +tms99xx_device::tms99xx_device(const machine_config &mconfig, device_type type, const char *tag, int databus_width, int prg_addr_bits, int cru_addr_bits, device_t *owner, uint32_t clock) + : cpu_device(mconfig, type, tag, owner, clock), m_program_config("program", ENDIANNESS_BIG, databus_width, prg_addr_bits), m_io_config("cru", ENDIANNESS_BIG, 8, cru_addr_bits), m_prgspace(nullptr), @@ -204,7 +204,7 @@ tms99xx_device::~tms99xx_device() ****************************************************************************/ tms9900_device::tms9900_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : tms99xx_device(mconfig, TMS9900, "TMS9900", tag, 16, 16, 12, owner, clock, "tms9900", __FILE__) + : tms99xx_device(mconfig, TMS9900, tag, 16, 16, 12, owner, clock) { } @@ -2775,4 +2775,4 @@ offs_t tms99xx_device::disasm_disassemble(std::ostream &stream, offs_t pc, const } -const device_type TMS9900 = device_creator; +DEFINE_DEVICE_TYPE(TMS9900, tms9900_device, "tms9900", "TMS9900") diff --git a/src/devices/cpu/tms9900/tms9900.h b/src/devices/cpu/tms9900/tms9900.h index 2380e9e815f..57d6bdfe5be 100644 --- a/src/devices/cpu/tms9900/tms9900.h +++ b/src/devices/cpu/tms9900/tms9900.h @@ -8,8 +8,10 @@ See tms9900.c for documentation */ -#ifndef __TMS9900_H__ -#define __TMS9900_H__ +#ifndef MAME_CPU_TMS9900_TMS9900_H +#define MAME_CPU_TMS9900_TMS9900_H + +#pragma once #include "debugger.h" #include "tms99com.h" @@ -41,10 +43,6 @@ static const char opname[][5] = class tms99xx_device : public cpu_device { public: - tms99xx_device(const machine_config &mconfig, device_type type, const char *name, - const char *tag, int databus_width, int prg_addr_bits, int cru_addr_bits, - device_t *owner, uint32_t clock, const char *shortname, const char *source); - ~tms99xx_device(); // READY input line. When asserted (high), the memory is ready for data exchange. @@ -65,6 +63,10 @@ public: template static devcb_base &static_set_dbin_callback(device_t &device, _Object object) { return downcast(device).m_dbin_line.set_callback(object); } protected: + tms99xx_device(const machine_config &mconfig, device_type type, + const char *tag, int databus_width, int prg_addr_bits, int cru_addr_bits, + device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_stop() override; @@ -391,6 +393,6 @@ public: // device type definition -extern const device_type TMS9900; +DECLARE_DEVICE_TYPE(TMS9900, tms9900_device) -#endif /* __TMS9900_H__ */ +#endif // MAME_CPU_TMS9900_TMS9900_H diff --git a/src/devices/cpu/tms9900/tms9980a.cpp b/src/devices/cpu/tms9900/tms9980a.cpp index 54459206715..b2dcc2f389a 100644 --- a/src/devices/cpu/tms9900/tms9980a.cpp +++ b/src/devices/cpu/tms9900/tms9980a.cpp @@ -76,7 +76,7 @@ ****************************************************************************/ tms9980a_device::tms9980a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : tms99xx_device(mconfig, TMS9980A, "TMS9980A", tag, 8, 14, 11, owner, clock, "tms9980a", __FILE__) + : tms99xx_device(mconfig, TMS9980A, tag, 8, 14, 11, owner, clock) { } @@ -298,4 +298,4 @@ offs_t tms9980a_device::disasm_disassemble(std::ostream &stream, offs_t pc, cons return CPU_DISASSEMBLE_NAME(tms9980)(this, stream, pc, oprom, opram, options); } -const device_type TMS9980A = device_creator; +DEFINE_DEVICE_TYPE(TMS9980A, tms9980a_device, "tms9980a", "TMS9980A") diff --git a/src/devices/cpu/tms9900/tms9980a.h b/src/devices/cpu/tms9900/tms9980a.h index 9ffbab84a58..34f6eadc434 100644 --- a/src/devices/cpu/tms9900/tms9980a.h +++ b/src/devices/cpu/tms9900/tms9980a.h @@ -5,8 +5,10 @@ See tms9980a.c and tms9900.c for documentation */ -#ifndef __TMS9980A_H__ -#define __TMS9980A_H__ +#ifndef MAME_CPU_TMS9900_TMS9980A_H +#define MAME_CPU_TMS9900_TMS9980A_H + +#pragma once #include "debugger.h" #include "tms9900.h" @@ -50,6 +52,6 @@ protected: }; // device type definition -extern const device_type TMS9980A; +DECLARE_DEVICE_TYPE(TMS9980A, tms9980a_device) -#endif /* __TMS9980A_H__ */ +#endif // MAME_CPU_TMS9900_TMS9980A_H diff --git a/src/devices/cpu/tms9900/tms9995.cpp b/src/devices/cpu/tms9900/tms9995.cpp index 7def6eeab4f..70deeb97026 100644 --- a/src/devices/cpu/tms9900/tms9995.cpp +++ b/src/devices/cpu/tms9900/tms9995.cpp @@ -179,13 +179,13 @@ enum ****************************************************************************/ tms9995_device::tms9995_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : tms9995_device(mconfig, TMS9995, "TMS9995", tag, owner, clock, "tms9995", __FILE__) + : tms9995_device(mconfig, TMS9995, tag, owner, clock) { m_mp9537 = false; } -tms9995_device::tms9995_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : cpu_device(mconfig, type, name, tag, owner, clock, shortname, source), +tms9995_device::tms9995_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : cpu_device(mconfig, type, tag, owner, clock), m_state_any(0), PC(0), PC_debug(0), @@ -3538,5 +3538,5 @@ offs_t tms9995_device::disasm_disassemble(std::ostream &stream, offs_t pc, const } -const device_type TMS9995 = device_creator; -const device_type TMS9995_MP9537 = device_creator; +DEFINE_DEVICE_TYPE(TMS9995, tms9995_device, "tms9995", "TMS9995") +DEFINE_DEVICE_TYPE(TMS9995_MP9537, tms9995_mp9537_device, "tms9995_mp9537", "TMS9995-MP9537") diff --git a/src/devices/cpu/tms9900/tms9995.h b/src/devices/cpu/tms9900/tms9995.h index cbbaaa0c3ce..f9e63051b4c 100644 --- a/src/devices/cpu/tms9900/tms9995.h +++ b/src/devices/cpu/tms9900/tms9995.h @@ -7,15 +7,17 @@ Also see tms9900.h for types of TMS99xx processors. */ -#ifndef __TMS9995_H__ -#define __TMS9995_H__ +#ifndef MAME_CPU_TMS9995_TMS9995_H +#define MAME_CPU_TMS9995_TMS9995_H + +#pragma once #include "debugger.h" #include "tms99com.h" // device type definition -extern const device_type TMS9995; -extern const device_type TMS9995_MP9537; +DECLARE_DEVICE_TYPE(TMS9995, tms9995_device) +DECLARE_DEVICE_TYPE(TMS9995_MP9537, tms9995_mp9537_device) enum { @@ -48,7 +50,6 @@ class tms9995_device : public cpu_device { public: tms9995_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - tms9995_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); // READY input line. When asserted (high), the memory is ready for data exchange. // We chose to use a direct method instead of a delegate to keep performance @@ -78,6 +79,8 @@ public: void set_overflow_interrupt( int enable ) { m_check_overflow = (enable!=0); } protected: + tms9995_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_stop() override; @@ -438,10 +441,10 @@ class tms9995_mp9537_device : public tms9995_device { public: tms9995_mp9537_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : tms9995_device(mconfig, TMS9995_MP9537, "TMS9995-MP9537", tag, owner, clock, "tms9995_mp9537", __FILE__) + : tms9995_device(mconfig, TMS9995_MP9537, tag, owner, clock) { m_mp9537 = true; } }; -#endif /* __TMS9995_H__ */ +#endif // MAME_CPU_TMS9995_TMS9995_H diff --git a/src/devices/cpu/ucom4/ucom4.cpp b/src/devices/cpu/ucom4/ucom4.cpp index 090030e0a1c..0f3529c9bb9 100644 --- a/src/devices/cpu/ucom4/ucom4.cpp +++ b/src/devices/cpu/ucom4/ucom4.cpp @@ -26,13 +26,13 @@ // uCOM-43 products: 2000x8 ROM, 96x4 RAM, supports full instruction set -const device_type NEC_D546 = device_creator; // 42-pin PMOS, 35 pins for I/O -const device_type NEC_D553 = device_creator; // 42-pin PMOS, 35 pins for I/O, high voltage -const device_type NEC_D557L = device_creator; // 28-pin PMOS, 21 pins for I/O -const device_type NEC_D650 = device_creator; // 42-pin CMOS, 35 pins for I/O +DEFINE_DEVICE_TYPE(NEC_D546, upd546_cpu_device, "upd546", "NEC uPD546") // 42-pin PMOS, 35 pins for I/O +DEFINE_DEVICE_TYPE(NEC_D553, upd553_cpu_device, "upd553", "NEC uPD553") // 42-pin PMOS, 35 pins for I/O, high voltage +DEFINE_DEVICE_TYPE(NEC_D557L, upd557l_cpu_device, "upd557l", "NEC uPD557L") // 28-pin PMOS, 21 pins for I/O +DEFINE_DEVICE_TYPE(NEC_D650, upd650_cpu_device, "upd650", "NEC uPD650") // 42-pin CMOS, 35 pins for I/O // uCOM-44 products: 1000x8 ROM, 64x4 RAM, 1-level stack, does not support external interrupt -const device_type NEC_D552 = device_creator; // 42-pin PMOS, 35 pins for I/O, high voltage +DEFINE_DEVICE_TYPE(NEC_D552, upd552_cpu_device, "upd552", "NEC uPD552") // 42-pin PMOS, 35 pins for I/O, high voltage // uCOM-45 products: 1000x8 or 640x8 ROM, 32x4 RAM, 1-level stack //.. @@ -60,25 +60,52 @@ ADDRESS_MAP_END // device definitions +ucom4_cpu_device::ucom4_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, int family, int stack_levels, int prgwidth, address_map_constructor program, int datawidth, address_map_constructor data) + : cpu_device(mconfig, type, tag, owner, clock) + , m_program_config("program", ENDIANNESS_BIG, 8, prgwidth, 0, program) + , m_data_config("data", ENDIANNESS_BIG, 8, datawidth, 0, data) + , m_prgwidth(prgwidth) + , m_datawidth(datawidth) + , m_family(family) + , m_stack_levels(stack_levels) + , m_read_a(*this) + , m_read_b(*this) + , m_read_c(*this) + , m_read_d(*this) + , m_write_c(*this) + , m_write_d(*this) + , m_write_e(*this) + , m_write_f(*this) + , m_write_g(*this) + , m_write_h(*this) + , m_write_i(*this) +{ +} + upd546_cpu_device::upd546_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : ucom4_cpu_device(mconfig, NEC_D546, "uPD546", tag, owner, clock, NEC_UCOM43, 3 /* stack levels */, 11 /* prg width */, ADDRESS_MAP_NAME(program_2k), 7 /* data width */, ADDRESS_MAP_NAME(data_96x4), "upd546", __FILE__) -{ } + : ucom4_cpu_device(mconfig, NEC_D546, tag, owner, clock, NEC_UCOM43, 3 /* stack levels */, 11 /* prg width */, ADDRESS_MAP_NAME(program_2k), 7 /* data width */, ADDRESS_MAP_NAME(data_96x4)) +{ +} upd553_cpu_device::upd553_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : ucom4_cpu_device(mconfig, NEC_D553, "uPD553", tag, owner, clock, NEC_UCOM43, 3, 11, ADDRESS_MAP_NAME(program_2k), 7, ADDRESS_MAP_NAME(data_96x4), "upd553", __FILE__) -{ } + : ucom4_cpu_device(mconfig, NEC_D553, tag, owner, clock, NEC_UCOM43, 3, 11, ADDRESS_MAP_NAME(program_2k), 7, ADDRESS_MAP_NAME(data_96x4)) +{ +} upd557l_cpu_device::upd557l_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : ucom4_cpu_device(mconfig, NEC_D557L, "uPD557L", tag, owner, clock, NEC_UCOM43, 3, 11, ADDRESS_MAP_NAME(program_2k), 7, ADDRESS_MAP_NAME(data_96x4), "upd557l", __FILE__) -{ } + : ucom4_cpu_device(mconfig, NEC_D557L, tag, owner, clock, NEC_UCOM43, 3, 11, ADDRESS_MAP_NAME(program_2k), 7, ADDRESS_MAP_NAME(data_96x4)) +{ +} upd650_cpu_device::upd650_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : ucom4_cpu_device(mconfig, NEC_D650, "uPD650", tag, owner, clock, NEC_UCOM43, 3, 11, ADDRESS_MAP_NAME(program_2k), 7, ADDRESS_MAP_NAME(data_96x4), "upd650", __FILE__) -{ } + : ucom4_cpu_device(mconfig, NEC_D650, tag, owner, clock, NEC_UCOM43, 3, 11, ADDRESS_MAP_NAME(program_2k), 7, ADDRESS_MAP_NAME(data_96x4)) +{ +} upd552_cpu_device::upd552_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : ucom4_cpu_device(mconfig, NEC_D552, "uPD552", tag, owner, clock, NEC_UCOM44, 1, 10, ADDRESS_MAP_NAME(program_1k), 6, ADDRESS_MAP_NAME(data_64x4), "upd552", __FILE__) -{ } + : ucom4_cpu_device(mconfig, NEC_D552, tag, owner, clock, NEC_UCOM44, 1, 10, ADDRESS_MAP_NAME(program_1k), 6, ADDRESS_MAP_NAME(data_64x4)) +{ +} // disasm diff --git a/src/devices/cpu/ucom4/ucom4.h b/src/devices/cpu/ucom4/ucom4.h index bdc0399bafc..eb505917906 100644 --- a/src/devices/cpu/ucom4/ucom4.h +++ b/src/devices/cpu/ucom4/ucom4.h @@ -6,9 +6,10 @@ */ -#ifndef _UCOM4_H_ -#define _UCOM4_H_ +#ifndef MAME_CPU_UCOM4_UCOM4_H +#define MAME_CPU_UCOM4_UCOM4_H +#pragma once // I/O ports setup @@ -98,43 +99,24 @@ enum class ucom4_cpu_device : public cpu_device { public: - // construction/destruction - ucom4_cpu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, u32 clock, int family, int stack_levels, int prgwidth, address_map_constructor program, int datawidth, address_map_constructor data, const char *shortname, const char *source) - : cpu_device(mconfig, type, name, tag, owner, clock, shortname, source) - , m_program_config("program", ENDIANNESS_BIG, 8, prgwidth, 0, program) - , m_data_config("data", ENDIANNESS_BIG, 8, datawidth, 0, data) - , m_prgwidth(prgwidth) - , m_datawidth(datawidth) - , m_family(family) - , m_stack_levels(stack_levels) - , m_read_a(*this) - , m_read_b(*this) - , m_read_c(*this) - , m_read_d(*this) - , m_write_c(*this) - , m_write_d(*this) - , m_write_e(*this) - , m_write_f(*this) - , m_write_g(*this) - , m_write_h(*this) - , m_write_i(*this) - { } - // static configuration helpers - template static devcb_base &set_read_a_callback(device_t &device, _Object object) { return downcast(device).m_read_a.set_callback(object); } - template static devcb_base &set_read_b_callback(device_t &device, _Object object) { return downcast(device).m_read_b.set_callback(object); } - template static devcb_base &set_read_c_callback(device_t &device, _Object object) { return downcast(device).m_read_c.set_callback(object); } - template static devcb_base &set_read_d_callback(device_t &device, _Object object) { return downcast(device).m_read_d.set_callback(object); } - - template static devcb_base &set_write_c_callback(device_t &device, _Object object) { return downcast(device).m_write_c.set_callback(object); } - template static devcb_base &set_write_d_callback(device_t &device, _Object object) { return downcast(device).m_write_d.set_callback(object); } - template static devcb_base &set_write_e_callback(device_t &device, _Object object) { return downcast(device).m_write_e.set_callback(object); } - template static devcb_base &set_write_f_callback(device_t &device, _Object object) { return downcast(device).m_write_f.set_callback(object); } - template static devcb_base &set_write_g_callback(device_t &device, _Object object) { return downcast(device).m_write_g.set_callback(object); } - template static devcb_base &set_write_h_callback(device_t &device, _Object object) { return downcast(device).m_write_h.set_callback(object); } - template static devcb_base &set_write_i_callback(device_t &device, _Object object) { return downcast(device).m_write_i.set_callback(object); } + template static devcb_base &set_read_a_callback(device_t &device, Object &&cb) { return downcast(device).m_read_a.set_callback(std::forward(cb)); } + template static devcb_base &set_read_b_callback(device_t &device, Object &&cb) { return downcast(device).m_read_b.set_callback(std::forward(cb)); } + template static devcb_base &set_read_c_callback(device_t &device, Object &&cb) { return downcast(device).m_read_c.set_callback(std::forward(cb)); } + template static devcb_base &set_read_d_callback(device_t &device, Object &&cb) { return downcast(device).m_read_d.set_callback(std::forward(cb)); } + + template static devcb_base &set_write_c_callback(device_t &device, Object &&cb) { return downcast(device).m_write_c.set_callback(std::forward(cb)); } + template static devcb_base &set_write_d_callback(device_t &device, Object &&cb) { return downcast(device).m_write_d.set_callback(std::forward(cb)); } + template static devcb_base &set_write_e_callback(device_t &device, Object &&cb) { return downcast(device).m_write_e.set_callback(std::forward(cb)); } + template static devcb_base &set_write_f_callback(device_t &device, Object &&cb) { return downcast(device).m_write_f.set_callback(std::forward(cb)); } + template static devcb_base &set_write_g_callback(device_t &device, Object &&cb) { return downcast(device).m_write_g.set_callback(std::forward(cb)); } + template static devcb_base &set_write_h_callback(device_t &device, Object &&cb) { return downcast(device).m_write_h.set_callback(std::forward(cb)); } + template static devcb_base &set_write_i_callback(device_t &device, Object &&cb) { return downcast(device).m_write_i.set_callback(std::forward(cb)); } protected: + // construction/destruction + ucom4_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, int family, int stack_levels, int prgwidth, address_map_constructor program, int datawidth, address_map_constructor data); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -352,11 +334,10 @@ public: -extern const device_type NEC_D546; -extern const device_type NEC_D553; -extern const device_type NEC_D557L; -extern const device_type NEC_D650; -extern const device_type NEC_D552; - +DECLARE_DEVICE_TYPE(NEC_D546, upd546_cpu_device) +DECLARE_DEVICE_TYPE(NEC_D553, upd553_cpu_device) +DECLARE_DEVICE_TYPE(NEC_D557L, upd557l_cpu_device) +DECLARE_DEVICE_TYPE(NEC_D650, upd650_cpu_device) +DECLARE_DEVICE_TYPE(NEC_D552, upd552_cpu_device) -#endif /* _UCOM4_H_ */ +#endif // MAME_CPU_UCOM4_UCOM4_H diff --git a/src/devices/cpu/unsp/unsp.cpp b/src/devices/cpu/unsp/unsp.cpp index e33ec57d580..302642d941d 100644 --- a/src/devices/cpu/unsp/unsp.cpp +++ b/src/devices/cpu/unsp/unsp.cpp @@ -9,16 +9,17 @@ \**************************/ #include "emu.h" -#include "debugger.h" #include "unsp.h" +#include "debugger.h" -const device_type UNSP = device_creator; +DEFINE_DEVICE_TYPE(UNSP, unsp_device, "unsp", "u'nSP") unsp_device::unsp_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cpu_device(mconfig, UNSP, "u'nSP", tag, owner, clock, "unsp", __FILE__) - , m_program_config("program", ENDIANNESS_BIG, 16, 23, -1), m_irq(0), m_fiq(0), m_curirq(0), m_sirq(0), m_sb(0), m_saved_sb(0), m_program(nullptr), m_icount(0), m_debugger_temp(0) + : cpu_device(mconfig, UNSP, tag, owner, clock) + , m_program_config("program", ENDIANNESS_BIG, 16, 23, -1) + , m_irq(0), m_fiq(0), m_curirq(0), m_sirq(0), m_sb(0), m_saved_sb(0), m_program(nullptr), m_icount(0), m_debugger_temp(0) { } diff --git a/src/devices/cpu/unsp/unsp.h b/src/devices/cpu/unsp/unsp.h index a9a656478ee..85e46a44292 100644 --- a/src/devices/cpu/unsp/unsp.h +++ b/src/devices/cpu/unsp/unsp.h @@ -8,10 +8,10 @@ * \**************************/ -#pragma once +#ifndef MAME_CPU_UNSP_UNSP_H +#define MAME_CPU_UNSP_UNSP_H -#ifndef __UNSP_H__ -#define __UNSP_H__ +#pragma once enum { @@ -107,7 +107,6 @@ private: }; -extern const device_type UNSP; - +DECLARE_DEVICE_TYPE(UNSP, unsp_device) -#endif /* __UNSP_H__ */ +#endif // MAME_CPU_UNSP_UNSP_H diff --git a/src/devices/cpu/upd7725/upd7725.cpp b/src/devices/cpu/upd7725/upd7725.cpp index 66d9c1e5a6d..4164ced9dd0 100644 --- a/src/devices/cpu/upd7725/upd7725.cpp +++ b/src/devices/cpu/upd7725/upd7725.cpp @@ -21,11 +21,11 @@ //************************************************************************** // device type definition -const device_type UPD7725 = device_creator; -const device_type UPD96050 = device_creator; +DEFINE_DEVICE_TYPE(UPD7725, upd7725_device, "upd7725", "uPD7725") +DEFINE_DEVICE_TYPE(UPD96050, upd96050_device, "upd96050", "uPD96050") -necdsp_device::necdsp_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint32_t abits, uint32_t dbits, const char *name, const char *shortname, const char *source) - : cpu_device(mconfig, type, name, tag, owner, clock, shortname, source), +necdsp_device::necdsp_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint32_t abits, uint32_t dbits) + : cpu_device(mconfig, type, tag, owner, clock), m_program_config("program", ENDIANNESS_BIG, 32, abits, -2), // data bus width, address bus width, -2 means DWORD-addressable m_data_config("data", ENDIANNESS_BIG, 16, dbits, -1), m_icount(0), // -1 for WORD-addressable m_irq(0), @@ -49,12 +49,12 @@ necdsp_device::necdsp_device(const machine_config &mconfig, device_type type, co upd7725_device::upd7725_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : necdsp_device(mconfig, UPD7725, tag, owner, clock, 11, 11, "uPD7725", "upd7725", __FILE__) + : necdsp_device(mconfig, UPD7725, tag, owner, clock, 11, 11) { } upd96050_device::upd96050_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : necdsp_device(mconfig, UPD96050, tag, owner, clock, 14, 12, "uPD96050", "upd96050", __FILE__) + : necdsp_device(mconfig, UPD96050, tag, owner, clock, 14, 12) { } diff --git a/src/devices/cpu/upd7725/upd7725.h b/src/devices/cpu/upd7725/upd7725.h index be2610b3854..06eceebe53d 100644 --- a/src/devices/cpu/upd7725/upd7725.h +++ b/src/devices/cpu/upd7725/upd7725.h @@ -8,10 +8,10 @@ ****************************************************************************/ -#pragma once +#ifndef MAME_CPU_UPD7725_UPD7725_H +#define MAME_CPU_UPD7725_UPD7725_H -#ifndef __UPD7725_H__ -#define __UPD7725_H__ +#pragma once //************************************************************************** // ENUMERATIONS @@ -28,10 +28,6 @@ enum // TYPE DEFINITIONS //************************************************************************** -class necdsp_device; -class upd7725_device; -class upd96050_device; - #define MCFG_NECDSP_IN_INT_CB(_devcb) \ devcb = &necdsp_device::set_in_int_callback(*device, DEVCB_##_devcb); @@ -71,28 +67,26 @@ class upd96050_device; class necdsp_device : public cpu_device { -protected: - // construction/destruction - necdsp_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint32_t abits, uint32_t dbits, const char *name, const char *shortname, const char *source); - public: - - template static devcb_base &set_in_int_callback(device_t &device, _Object object) { return downcast(device).m_in_int_cb.set_callback(object); } - //template static devcb_base &set_in_si_callback(device_t &device, _Object object) { return downcast(device).m_in_si_cb.set_callback(object); } - //template static devcb_base &set_in_sck_callback(device_t &device, _Object object) { return downcast(device).m_in_sck_cb.set_callback(object); } - //template static devcb_base &set_in_sien_callback(device_t &device, _Object object) { return downcast(device).m_in_sien_cb.set_callback(object); } - //template static devcb_base &set_in_soen_callback(device_t &device, _Object object) { return downcast(device).m_in_soen_cb.set_callback(object); } - //template static devcb_base &set_in_dack_callback(device_t &device, _Object object) { return downcast(device).m_in_dack_cb.set_callback(object); } - template static devcb_base &set_out_p0_callback(device_t &device, _Object object) { return downcast(device).m_out_p0_cb.set_callback(object); } - template static devcb_base &set_out_p1_callback(device_t &device, _Object object) { return downcast(device).m_out_p1_cb.set_callback(object); } - //template static devcb_base &set_out_so_callback(device_t &device, _Object object) { return downcast(device).m_out_so_cb.set_callback(object); } - //template static devcb_base &set_out_sorq_callback(device_t &device, _Object object) { return downcast(device).m_out_sorq_cb.set_callback(object); } - //template static devcb_base &set_out_drq_callback(device_t &device, _Object object) { return downcast(device).m_out_drq_cb.set_callback(object); } + template static devcb_base &set_in_int_callback(device_t &device, Object &&cb) { return downcast(device).m_in_int_cb.set_callback(std::forward(cb)); } + //template static devcb_base &set_in_si_callback(device_t &device, Object &&cb) { return downcast(device).m_in_si_cb.set_callback(std::forward(cb)); } + //template static devcb_base &set_in_sck_callback(device_t &device, Object &&cb) { return downcast(device).m_in_sck_cb.set_callback(std::forward(cb)); } + //template static devcb_base &set_in_sien_callback(device_t &device, Object &&cb) { return downcast(device).m_in_sien_cb.set_callback(std::forward(cb)); } + //template static devcb_base &set_in_soen_callback(device_t &device, Object &&cb) { return downcast(device).m_in_soen_cb.set_callback(std::forward(cb)); } + //template static devcb_base &set_in_dack_callback(device_t &device, Object &&cb) { return downcast(device).m_in_dack_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_p0_callback(device_t &device, Object &&cb) { return downcast(device).m_out_p0_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_p1_callback(device_t &device, Object &&cb) { return downcast(device).m_out_p1_cb.set_callback(std::forward(cb)); } + //template static devcb_base &set_out_so_callback(device_t &device, Object &&cb) { return downcast(device).m_out_so_cb.set_callback(std::forward(cb)); } + //template static devcb_base &set_out_sorq_callback(device_t &device, Object &&cb) { return downcast(device).m_out_sorq_cb.set_callback(std::forward(cb)); } + //template static devcb_base &set_out_drq_callback(device_t &device, Object &&cb) { return downcast(device).m_out_drq_cb.set_callback(std::forward(cb)); } uint8_t snesdsp_read(bool mode); void snesdsp_write(bool mode, uint8_t data); protected: + // construction/destruction + necdsp_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint32_t abits, uint32_t dbits); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -234,6 +228,8 @@ public: // device type definition extern const device_type UPD7725; extern const device_type UPD96050; +DECLARE_DEVICE_TYPE(UPD7725, upd7725_device) +DECLARE_DEVICE_TYPE(UPD96050, upd96050_device) //************************************************************************** // ENUMERATIONS @@ -265,4 +261,4 @@ enum UPD7725_SOACK }; -#endif /* __UPD7725_H__ */ +#endif // MAME_CPU_UPD7725_UPD7725_H diff --git a/src/devices/cpu/upd7810/upd7810.cpp b/src/devices/cpu/upd7810/upd7810.cpp index 888e90824fb..8509b133d63 100644 --- a/src/devices/cpu/upd7810/upd7810.cpp +++ b/src/devices/cpu/upd7810/upd7810.cpp @@ -369,20 +369,22 @@ STOP 01001000 10111011 12 stop */ #include "emu.h" -#include "debugger.h" #include "upd7810.h" + +#include "debugger.h" + #include "upd7810_macros.h" -const device_type UPD7810 = device_creator; -const device_type UPD7807 = device_creator; -const device_type UPD7801 = device_creator; -const device_type UPD78C05 = device_creator; -const device_type UPD78C06 = device_creator; +DEFINE_DEVICE_TYPE(UPD7810, upd7810_device, "upd7810", "uPD7810") +DEFINE_DEVICE_TYPE(UPD7807, upd7807_device, "upd7807", "uPD7807") +DEFINE_DEVICE_TYPE(UPD7801, upd7801_device, "upd7801", "uPD7801") +DEFINE_DEVICE_TYPE(UPD78C05, upd78c05_device, "upd78c05", "uPD78C05") +DEFINE_DEVICE_TYPE(UPD78C06, upd78c06_device, "upd78c06", "uPD78C06") -upd7810_device::upd7810_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : cpu_device(mconfig, type, name, tag, owner, clock, shortname, source) +upd7810_device::upd7810_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : cpu_device(mconfig, type, tag, owner, clock) , m_to_func(*this) , m_co0_func(*this) , m_co1_func(*this) @@ -412,7 +414,7 @@ upd7810_device::upd7810_device(const machine_config &mconfig, device_type type, } upd7810_device::upd7810_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : upd7810_device(mconfig, UPD7810, "uPD7810", tag, owner, clock, "upd7810", __FILE__) + : upd7810_device(mconfig, UPD7810, tag, owner, clock) { m_opXX = s_opXX_7810; m_op48 = s_op48; @@ -425,7 +427,7 @@ upd7810_device::upd7810_device(const machine_config &mconfig, const char *tag, d } upd7807_device::upd7807_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : upd7810_device(mconfig, UPD7807, "uPD7807", tag, owner, clock, "upd7807", __FILE__) + : upd7810_device(mconfig, UPD7807, tag, owner, clock) { m_opXX = s_opXX_7807; m_op48 = s_op48; @@ -438,7 +440,7 @@ upd7807_device::upd7807_device(const machine_config &mconfig, const char *tag, d } upd7801_device::upd7801_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : upd7810_device(mconfig, UPD7801, "uPD7801", tag, owner, clock, "upd7801", __FILE__) + : upd7810_device(mconfig, UPD7801, tag, owner, clock) { m_op48 = s_op48_7801; m_op4C = s_op4C_7801; @@ -451,7 +453,7 @@ upd7801_device::upd7801_device(const machine_config &mconfig, const char *tag, d } upd78c05_device::upd78c05_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : upd7810_device(mconfig, UPD78C05, "uPD78C05", tag, owner, clock, "upd78c05", __FILE__) + : upd78c05_device(mconfig, UPD78C05, tag, owner, clock) { m_op48 = s_op48_78c05; m_op4C = s_op4C_78c05; @@ -463,13 +465,13 @@ upd78c05_device::upd78c05_device(const machine_config &mconfig, const char *tag, m_opXX = s_opXX_78c05; } -upd78c05_device::upd78c05_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : upd7810_device(mconfig, type, name, tag, owner, clock, shortname, source) +upd78c05_device::upd78c05_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : upd7810_device(mconfig, type, tag, owner, clock) { } upd78c06_device::upd78c06_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : upd78c05_device(mconfig, UPD78C06, "uPD78C06", tag, owner, clock, "upd78c06", __FILE__) + : upd78c05_device(mconfig, UPD78C06, tag, owner, clock) { m_op48 = s_op48_78c06; m_op4C = s_op4C_78c06; diff --git a/src/devices/cpu/upd7810/upd7810.h b/src/devices/cpu/upd7810/upd7810.h index bc119260c0b..1f49ba3cad0 100644 --- a/src/devices/cpu/upd7810/upd7810.h +++ b/src/devices/cpu/upd7810/upd7810.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Juergen Buchmueller -#pragma once +#ifndef MAME_CPU_UPD7810_UPD7810_H +#define MAME_CPU_UPD7810_UPD7810_H -#ifndef __UPD7810_H__ -#define __UPD7810_H__ +#pragma once /* @@ -129,35 +129,34 @@ class upd7810_device : public cpu_device public: // construction/destruction upd7810_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - upd7810_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); // static configuration helpers - template static devcb_base &set_to_func(device_t &device, _Object object) { return downcast(device).m_to_func.set_callback(object); } - template static devcb_base &set_co0_func(device_t &device, _Object object) { return downcast(device).m_co0_func.set_callback(object); } - template static devcb_base &set_co1_func(device_t &device, _Object object) { return downcast(device).m_co1_func.set_callback(object); } - template static devcb_base &set_txd_func(device_t &device, _Object object) { return downcast(device).m_txd_func.set_callback(object); } - template static devcb_base &set_rxd_func(device_t &device, _Object object) { return downcast(device).m_rxd_func.set_callback(object); } - template static devcb_base &set_an0_func(device_t &device, _Object object) { return downcast(device).m_an0_func.set_callback(object); } - template static devcb_base &set_an1_func(device_t &device, _Object object) { return downcast(device).m_an1_func.set_callback(object); } - template static devcb_base &set_an2_func(device_t &device, _Object object) { return downcast(device).m_an2_func.set_callback(object); } - template static devcb_base &set_an3_func(device_t &device, _Object object) { return downcast(device).m_an3_func.set_callback(object); } - template static devcb_base &set_an4_func(device_t &device, _Object object) { return downcast(device).m_an4_func.set_callback(object); } - template static devcb_base &set_an5_func(device_t &device, _Object object) { return downcast(device).m_an5_func.set_callback(object); } - template static devcb_base &set_an6_func(device_t &device, _Object object) { return downcast(device).m_an6_func.set_callback(object); } - template static devcb_base &set_an7_func(device_t &device, _Object object) { return downcast(device).m_an7_func.set_callback(object); } - - template static devcb_base &set_pa_in_cb(device_t &device, _Object object) { return downcast(device).m_pa_in_cb.set_callback(object); } - template static devcb_base &set_pb_in_cb(device_t &device, _Object object) { return downcast(device).m_pb_in_cb.set_callback(object); } - template static devcb_base &set_pc_in_cb(device_t &device, _Object object) { return downcast(device).m_pc_in_cb.set_callback(object); } - template static devcb_base &set_pd_in_cb(device_t &device, _Object object) { return downcast(device).m_pd_in_cb.set_callback(object); } - template static devcb_base &set_pf_in_cb(device_t &device, _Object object) { return downcast(device).m_pf_in_cb.set_callback(object); } - template static devcb_base &set_pa_out_cb(device_t &device, _Object object) { return downcast(device).m_pa_out_cb.set_callback(object); } - template static devcb_base &set_pb_out_cb(device_t &device, _Object object) { return downcast(device).m_pb_out_cb.set_callback(object); } - template static devcb_base &set_pc_out_cb(device_t &device, _Object object) { return downcast(device).m_pc_out_cb.set_callback(object); } - template static devcb_base &set_pd_out_cb(device_t &device, _Object object) { return downcast(device).m_pd_out_cb.set_callback(object); } - template static devcb_base &set_pf_out_cb(device_t &device, _Object object) { return downcast(device).m_pf_out_cb.set_callback(object); } - - template static devcb_base &set_pt_in_cb(device_t &device, _Object object) { return downcast(device).m_pt_in_cb.set_callback(object); } + template static devcb_base &set_to_func(device_t &device, Object &&cb) { return downcast(device).m_to_func.set_callback(std::forward(cb)); } + template static devcb_base &set_co0_func(device_t &device, Object &&cb) { return downcast(device).m_co0_func.set_callback(std::forward(cb)); } + template static devcb_base &set_co1_func(device_t &device, Object &&cb) { return downcast(device).m_co1_func.set_callback(std::forward(cb)); } + template static devcb_base &set_txd_func(device_t &device, Object &&cb) { return downcast(device).m_txd_func.set_callback(std::forward(cb)); } + template static devcb_base &set_rxd_func(device_t &device, Object &&cb) { return downcast(device).m_rxd_func.set_callback(std::forward(cb)); } + template static devcb_base &set_an0_func(device_t &device, Object &&cb) { return downcast(device).m_an0_func.set_callback(std::forward(cb)); } + template static devcb_base &set_an1_func(device_t &device, Object &&cb) { return downcast(device).m_an1_func.set_callback(std::forward(cb)); } + template static devcb_base &set_an2_func(device_t &device, Object &&cb) { return downcast(device).m_an2_func.set_callback(std::forward(cb)); } + template static devcb_base &set_an3_func(device_t &device, Object &&cb) { return downcast(device).m_an3_func.set_callback(std::forward(cb)); } + template static devcb_base &set_an4_func(device_t &device, Object &&cb) { return downcast(device).m_an4_func.set_callback(std::forward(cb)); } + template static devcb_base &set_an5_func(device_t &device, Object &&cb) { return downcast(device).m_an5_func.set_callback(std::forward(cb)); } + template static devcb_base &set_an6_func(device_t &device, Object &&cb) { return downcast(device).m_an6_func.set_callback(std::forward(cb)); } + template static devcb_base &set_an7_func(device_t &device, Object &&cb) { return downcast(device).m_an7_func.set_callback(std::forward(cb)); } + + template static devcb_base &set_pa_in_cb(device_t &device, Object &&cb) { return downcast(device).m_pa_in_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_pb_in_cb(device_t &device, Object &&cb) { return downcast(device).m_pb_in_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_pc_in_cb(device_t &device, Object &&cb) { return downcast(device).m_pc_in_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_pd_in_cb(device_t &device, Object &&cb) { return downcast(device).m_pd_in_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_pf_in_cb(device_t &device, Object &&cb) { return downcast(device).m_pf_in_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_pa_out_cb(device_t &device, Object &&cb) { return downcast(device).m_pa_out_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_pb_out_cb(device_t &device, Object &&cb) { return downcast(device).m_pb_out_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_pc_out_cb(device_t &device, Object &&cb) { return downcast(device).m_pc_out_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_pd_out_cb(device_t &device, Object &&cb) { return downcast(device).m_pd_out_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_pf_out_cb(device_t &device, Object &&cb) { return downcast(device).m_pf_out_cb.set_callback(std::forward(cb)); } + + template static devcb_base &set_pt_in_cb(device_t &device, Object &&cb) { return downcast(device).m_pt_in_cb.set_callback(std::forward(cb)); } DECLARE_WRITE8_MEMBER(pa_w); DECLARE_WRITE8_MEMBER(pb_w); @@ -208,6 +207,8 @@ protected: INTSB = 0x0010 }; + upd7810_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -1464,9 +1465,10 @@ class upd78c05_device : public upd7810_device public: // construction/destruction upd78c05_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - upd78c05_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); protected: + upd78c05_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; virtual void device_reset() override; virtual uint64_t execute_clocks_to_cycles(uint64_t clocks) const override { return (clocks + 4 - 1) / 4; } @@ -1484,11 +1486,10 @@ public: }; -extern const device_type UPD7810; -extern const device_type UPD7807; -extern const device_type UPD7801; -extern const device_type UPD78C05; -extern const device_type UPD78C06; - +DECLARE_DEVICE_TYPE(UPD7810, upd7810_device) +DECLARE_DEVICE_TYPE(UPD7807, upd7807_device) +DECLARE_DEVICE_TYPE(UPD7801, upd7801_device) +DECLARE_DEVICE_TYPE(UPD78C05, upd78c05_device) +DECLARE_DEVICE_TYPE(UPD78C06, upd78c06_device) -#endif /* __UPD7810_H__ */ +#endif // MAME_CPU_UPD7810_UPD7810_H diff --git a/src/devices/cpu/v30mz/v30mz.cpp b/src/devices/cpu/v30mz/v30mz.cpp index ca4ca40a0f7..ad20e1349d4 100644 --- a/src/devices/cpu/v30mz/v30mz.cpp +++ b/src/devices/cpu/v30mz/v30mz.cpp @@ -43,8 +43,8 @@ ****************************************************************************/ #include "emu.h" -#include "debugger.h" #include "v30mz.h" +#include "debugger.h" enum SREGS { ES=0, CS, SS, DS }; @@ -94,11 +94,11 @@ enum BREGS { /***************************************************************************/ -const device_type V30MZ = device_creator; +DEFINE_DEVICE_TYPE(V30MZ, v30mz_cpu_device, "v30mz", "V30MZ") v30mz_cpu_device::v30mz_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cpu_device(mconfig, V30MZ, "V30MZ", tag, owner, clock, "v30mz", __FILE__) + : cpu_device(mconfig, V30MZ, tag, owner, clock) , m_program_config("program", ENDIANNESS_LITTLE, 8, 20, 0) , m_io_config("io", ENDIANNESS_LITTLE, 8, 16, 0) , m_ip(0) diff --git a/src/devices/cpu/v30mz/v30mz.h b/src/devices/cpu/v30mz/v30mz.h index 4b818654437..bd7019757a1 100644 --- a/src/devices/cpu/v30mz/v30mz.h +++ b/src/devices/cpu/v30mz/v30mz.h @@ -1,7 +1,7 @@ // license:BSD-3-Clause // copyright-holders:Wilbert Pol,Bryan McPhail -#ifndef __V30MZ_H__ -#define __V30MZ_H__ +#ifndef MAME_CPU_V32MZ_V30MZ_H +#define MAME_CPU_V32MZ_V30MZ_H struct nec_config @@ -20,7 +20,7 @@ enum ///////////////////////////////////////////////////////////////// -extern const device_type V30MZ; +DECLARE_DEVICE_TYPE(V30MZ, v30mz_cpu_device) class v30mz_cpu_device : public cpu_device { @@ -166,7 +166,6 @@ protected: inline void ADJ4(int8_t param1, int8_t param2); inline void ADJB(int8_t param1, int8_t param2); -protected: address_space_config m_program_config; address_space_config m_io_config; @@ -222,5 +221,4 @@ protected: } m_Mod_RM; }; - -#endif /* __V30MZ_H__ */ +#endif // MAME_CPU_V32MZ_V30MZ_H diff --git a/src/devices/cpu/v60/v60.cpp b/src/devices/cpu/v60/v60.cpp index 1d0bf2641ae..a445f8c7dac 100644 --- a/src/devices/cpu/v60/v60.cpp +++ b/src/devices/cpu/v60/v60.cpp @@ -74,40 +74,35 @@ Package: 132-pin PGA, 200-pin QFP */ #include "emu.h" -#include "debugger.h" #include "v60.h" +#include "debugger.h" -const device_type V60 = device_creator; -const device_type V70 = device_creator; +DEFINE_DEVICE_TYPE(V60, v60_device, "v60", "V60") +DEFINE_DEVICE_TYPE(V70, v70_device, "v70", "V70") +// Set m_PIR (Processor ID) for NEC m_ LSB is reserved to NEC, +// so I don't know what it contains. v60_device::v60_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cpu_device(mconfig, V60, "V60", tag, owner, clock, "v60", __FILE__) - , m_program_config("program", ENDIANNESS_LITTLE, 16, 24, 0) - , m_io_config("io", ENDIANNESS_LITTLE, 16, 24, 0) - , m_fetch_xor(BYTE_XOR_LE(0)) - , m_start_pc(0xfffff0) + : v60_device(mconfig, V60, tag, owner, clock, 16, 24, 0x00006000) { - // Set m_PIR (Processor ID) for NEC m_ LSB is reserved to NEC, - // so I don't know what it contains. - m_reg[45] = 0x00006000; } -v60_device::v60_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : cpu_device(mconfig, type, name, tag, owner, clock, shortname, source) - , m_program_config("program", ENDIANNESS_LITTLE, 32, 32, 0) +v60_device::v60_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int databits, int addrbits, uint32_t pir) + : cpu_device(mconfig, type, tag, owner, clock) + , m_program_config("program", ENDIANNESS_LITTLE, databits, addrbits, 0) , m_io_config("io", ENDIANNESS_LITTLE, 16, 24, 0) , m_fetch_xor(BYTE4_XOR_LE(0)) , m_start_pc(0xfffffff0) { - // Set m_PIR (Processor ID) for NEC v70. LSB is reserved to NEC, - // so I don't know what it contains. - m_reg[45] = 0x00007000; + m_reg[45] = pir; } +// Set m_PIR (Processor ID) for NEC v70. LSB is reserved to NEC, +// so I don't know what it contains. v70_device::v70_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : v60_device(mconfig, V70, "V70", tag, owner, clock, "v70", __FILE__) + : v60_device(mconfig, V70, tag, owner, clock, 32, 32, 0x00007000) { } diff --git a/src/devices/cpu/v60/v60.h b/src/devices/cpu/v60/v60.h index befd696d155..3348262624e 100644 --- a/src/devices/cpu/v60/v60.h +++ b/src/devices/cpu/v60/v60.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Farfetch'd, R. Belmont -#pragma once +#ifndef MAME_CPU_V60_V60_H +#define MAME_CPU_V60_V60_H -#ifndef __V60_H__ -#define __V60_H__ +#pragma once enum @@ -85,11 +85,12 @@ class v60_device : public cpu_device public: // construction/destruction v60_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - v60_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); void stall(); protected: + v60_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int databits, int addrbits, uint32_t pir); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -782,8 +783,7 @@ protected: }; -extern const device_type V60; -extern const device_type V70; - +DECLARE_DEVICE_TYPE(V60, v60_device) +DECLARE_DEVICE_TYPE(V70, v70_device) -#endif /* __V60_H__ */ +#endif // MAME_CPU_V60_V60_H diff --git a/src/devices/cpu/v810/v810.cpp b/src/devices/cpu/v810/v810.cpp index a9d5fe08053..f7cd28bc44d 100644 --- a/src/devices/cpu/v810/v810.cpp +++ b/src/devices/cpu/v810/v810.cpp @@ -28,18 +28,18 @@ ******************************************************************/ #include "emu.h" -#include "debugger.h" #include "v810.h" +#include "debugger.h" #define clkIF 3 #define clkMEM 3 -const device_type V810 = device_creator; +DEFINE_DEVICE_TYPE(V810, v810_device, "v810", "V810") v810_device::v810_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cpu_device(mconfig, V810, "V810", tag, owner, clock, "v810", __FILE__) + : cpu_device(mconfig, V810, tag, owner, clock) , m_program_config("program", ENDIANNESS_LITTLE, 32, 32, 0) , m_io_config("io", ENDIANNESS_LITTLE, 32, 32, 0) { diff --git a/src/devices/cpu/v810/v810.h b/src/devices/cpu/v810/v810.h index 17e2606eff0..04dd7e68327 100644 --- a/src/devices/cpu/v810/v810.h +++ b/src/devices/cpu/v810/v810.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Angelo Salese, Tomasz Slanina -#pragma once +#ifndef MAME_CPU_V810_V810_H +#define MAME_CPU_V810_V810_H -#ifndef __V810_H__ -#define __V810_H__ +#pragma once enum @@ -194,11 +194,9 @@ private: uint32_t opFpoint(uint32_t op); uint32_t opBSU(uint32_t op); void take_interrupt(); - }; -extern const device_type V810; - +DECLARE_DEVICE_TYPE(V810, v810_device) -#endif /* __V810_H__ */ +#endif // MAME_CPU_V810_V810_H diff --git a/src/devices/cpu/z180/z180.cpp b/src/devices/cpu/z180/z180.cpp index d1527a5730b..2c54402ce1e 100644 --- a/src/devices/cpu/z180/z180.cpp +++ b/src/devices/cpu/z180/z180.cpp @@ -51,12 +51,11 @@ Hitachi HD647180 series: *****************************************************************************/ #include "emu.h" -#include "debugger.h" #include "z180.h" +#include "debugger.h" -#define VERBOSE 0 - -#define LOG(x) do { if (VERBOSE) logerror x; } while (0) +//#define VERBOSE 1 +#include "logmacro.h" /* interrupt priorities */ #define Z180_INT_TRAP 0 /* Undefined opcode */ @@ -78,11 +77,11 @@ Hitachi HD647180 series: /* register is calculated as follows: refresh=(Regs.R&127)|(Regs.R2&128) */ /****************************************************************************/ -const device_type Z180 = device_creator; +DEFINE_DEVICE_TYPE(Z180, z180_device, "z180", "Z180") z180_device::z180_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cpu_device(mconfig, Z180, "Z180", tag, owner, clock, "z180", __FILE__) + : cpu_device(mconfig, Z180, tag, owner, clock) , z80_daisy_chain_interface(mconfig, *this) , m_program_config("program", ENDIANNESS_LITTLE, 8, 20, 0) , m_io_config("io", ENDIANNESS_LITTLE, 8, 16, 0) @@ -805,69 +804,69 @@ uint8_t z180_device::z180_readcontrol(offs_t port) { case Z180_CNTLA0: data = IO_CNTLA0 & Z180_CNTLA0_RMASK; - LOG(("Z180 '%s' CNTLA0 rd $%02x ($%02x)\n", tag(), data, m_io[port & 0x3f])); + LOG("Z180 CNTLA0 rd $%02x ($%02x)\n", data, m_io[port & 0x3f]); break; case Z180_CNTLA1: data = IO_CNTLA1 & Z180_CNTLA1_RMASK; - LOG(("Z180 '%s' CNTLA1 rd $%02x ($%02x)\n", tag(), data, m_io[port & 0x3f])); + LOG("Z180 CNTLA1 rd $%02x ($%02x)\n", data, m_io[port & 0x3f]); break; case Z180_CNTLB0: data = IO_CNTLB0 & Z180_CNTLB0_RMASK; - LOG(("Z180 '%s' CNTLB0 rd $%02x ($%02x)\n", tag(), data, m_io[port & 0x3f])); + LOG("Z180 CNTLB0 rd $%02x ($%02x)\n", data, m_io[port & 0x3f]); break; case Z180_CNTLB1: data = IO_CNTLB1 & Z180_CNTLB1_RMASK; - LOG(("Z180 '%s' CNTLB1 rd $%02x ($%02x)\n", tag(), data, m_io[port & 0x3f])); + LOG("Z180 CNTLB1 rd $%02x ($%02x)\n", data, m_io[port & 0x3f]); break; case Z180_STAT0: data = IO_STAT0 & Z180_STAT0_RMASK; -data |= 0x02; // kludge for 20pacgal - LOG(("Z180 '%s' STAT0 rd $%02x ($%02x)\n", tag(), data, m_io[port & 0x3f])); + data |= 0x02; // kludge for 20pacgal + LOG("Z180 STAT0 rd $%02x ($%02x)\n", data, m_io[port & 0x3f]); break; case Z180_STAT1: data = IO_STAT1 & Z180_STAT1_RMASK; - LOG(("Z180 '%s' STAT1 rd $%02x ($%02x)\n", tag(), data, m_io[port & 0x3f])); + LOG("Z180 STAT1 rd $%02x ($%02x)\n", data, m_io[port & 0x3f]); break; case Z180_TDR0: data = IO_TDR0 & Z180_TDR0_RMASK; - LOG(("Z180 '%s' TDR0 rd $%02x ($%02x)\n", tag(), data, m_io[port & 0x3f])); + LOG("Z180 TDR0 rd $%02x ($%02x)\n", data, m_io[port & 0x3f]); break; case Z180_TDR1: data = IO_TDR1 & Z180_TDR1_RMASK; - LOG(("Z180 '%s' TDR1 rd $%02x ($%02x)\n", tag(), data, m_io[port & 0x3f])); + LOG("Z180 TDR1 rd $%02x ($%02x)\n", data, m_io[port & 0x3f]); break; case Z180_RDR0: data = IO_RDR0 & Z180_RDR0_RMASK; - LOG(("Z180 '%s' RDR0 rd $%02x ($%02x)\n", tag(), data, m_io[port & 0x3f])); + LOG("Z180 RDR0 rd $%02x ($%02x)\n", data, m_io[port & 0x3f]); break; case Z180_RDR1: data = IO_RDR1 & Z180_RDR1_RMASK; - LOG(("Z180 '%s' RDR1 rd $%02x ($%02x)\n", tag(), data, m_io[port & 0x3f])); + LOG("Z180 RDR1 rd $%02x ($%02x)\n", data, m_io[port & 0x3f]); break; case Z180_CNTR: data = IO_CNTR & Z180_CNTR_RMASK; data &= ~0x10; // Super Famicom Box sets the TE bit then wants it to be toggled after 8 bits transmitted - LOG(("Z180 '%s' CNTR rd $%02x ($%02x)\n", tag(), data, m_io[port & 0x3f])); + LOG("Z180 CNTR rd $%02x ($%02x)\n", data, m_io[port & 0x3f]); break; case Z180_TRDR: data = IO_TRDR & Z180_TRDR_RMASK; - logerror("Z180 '%s' TRDR rd $%02x ($%02x)\n", tag(), data, m_io[port & 0x3f]); + logerror("Z180 TRDR rd $%02x ($%02x)\n", data, m_io[port & 0x3f]); break; case Z180_TMDR0L: data = m_tmdr_value[0] & Z180_TMDR0L_RMASK; - LOG(("Z180 '%s' TMDR0L rd $%02x ($%02x)\n", tag(), data, m_io[port & 0x3f])); + LOG("Z180 TMDR0L rd $%02x ($%02x)\n", data, m_io[port & 0x3f]); /* if timer is counting, latch the MSB and set the latch flag */ if ((IO_TCR & Z180_TCR_TDE0) == 0) { @@ -907,17 +906,17 @@ data |= 0x02; // kludge for 20pacgal { m_read_tcr_tmdr[0] = 1; } - LOG(("Z180 '%s' TMDR0H rd $%02x ($%02x)\n", tag(), data, m_io[port & 0x3f])); + LOG("Z180 TMDR0H rd $%02x ($%02x)\n", data, m_io[port & 0x3f]); break; case Z180_RLDR0L: data = IO_RLDR0L & Z180_RLDR0L_RMASK; - LOG(("Z180 '%s' RLDR0L rd $%02x ($%02x)\n", tag(), data, m_io[port & 0x3f])); + LOG("Z180 RLDR0L rd $%02x ($%02x)\n", data, m_io[port & 0x3f]); break; case Z180_RLDR0H: data = IO_RLDR0H & Z180_RLDR0H_RMASK; - LOG(("Z180 '%s' RLDR0H rd $%02x ($%02x)\n", tag(), data, m_io[port & 0x3f])); + LOG("Z180 RLDR0H rd $%02x ($%02x)\n", data, m_io[port & 0x3f]); break; case Z180_TCR: @@ -943,27 +942,27 @@ data |= 0x02; // kludge for 20pacgal m_read_tcr_tmdr[1] = 1; } - LOG(("Z180 '%s' TCR rd $%02x ($%02x)\n", tag(), data, m_io[port & 0x3f])); + LOG("Z180 TCR rd $%02x ($%02x)\n", data, m_io[port & 0x3f]); break; case Z180_IO11: data = IO_IO11 & Z180_IO11_RMASK; - LOG(("Z180 '%s' IO11 rd $%02x ($%02x)\n", tag(), data, m_io[port & 0x3f])); + LOG("Z180 IO11 rd $%02x ($%02x)\n", data, m_io[port & 0x3f]); break; case Z180_ASEXT0: data = IO_ASEXT0 & Z180_ASEXT0_RMASK; - LOG(("Z180 '%s' ASEXT0 rd $%02x ($%02x)\n", tag(), data, m_io[port & 0x3f])); + LOG("Z180 ASEXT0 rd $%02x ($%02x)\n", data, m_io[port & 0x3f]); break; case Z180_ASEXT1: data = IO_ASEXT1 & Z180_ASEXT1_RMASK; - LOG(("Z180 '%s' ASEXT1 rd $%02x ($%02x)\n", tag(), data, m_io[port & 0x3f])); + LOG("Z180 ASEXT1 rd $%02x ($%02x)\n", data, m_io[port & 0x3f]); break; case Z180_TMDR1L: data = m_tmdr_value[1] & Z180_TMDR1L_RMASK; - LOG(("Z180 '%s' TMDR1L rd $%02x ($%02x)\n", tag(), data, m_io[port & 0x3f])); + LOG("Z180 TMDR1L rd $%02x ($%02x)\n", data, m_io[port & 0x3f]); /* if timer is counting, latch the MSB and set the latch flag */ if ((IO_TCR & Z180_TCR_TDE1) == 0) { @@ -1003,217 +1002,217 @@ data |= 0x02; // kludge for 20pacgal { m_read_tcr_tmdr[1] = 1; } - LOG(("Z180 '%s' TMDR1H rd $%02x ($%02x)\n", tag(), data, m_io[port & 0x3f])); + LOG("Z180 TMDR1H rd $%02x ($%02x)\n", data, m_io[port & 0x3f]); break; case Z180_RLDR1L: data = IO_RLDR1L & Z180_RLDR1L_RMASK; - LOG(("Z180 '%s' RLDR1L rd $%02x ($%02x)\n", tag(), data, m_io[port & 0x3f])); + LOG("Z180 RLDR1L rd $%02x ($%02x)\n", data, m_io[port & 0x3f]); break; case Z180_RLDR1H: data = IO_RLDR1H & Z180_RLDR1H_RMASK; - LOG(("Z180 '%s' RLDR1H rd $%02x ($%02x)\n", tag(), data, m_io[port & 0x3f])); + LOG("Z180 RLDR1H rd $%02x ($%02x)\n", data, m_io[port & 0x3f]); break; case Z180_FRC: data = IO_FRC & Z180_FRC_RMASK; - LOG(("Z180 '%s' FRC rd $%02x ($%02x)\n", tag(), data, m_io[port & 0x3f])); + LOG("Z180 FRC rd $%02x ($%02x)\n", data, m_io[port & 0x3f]); break; case Z180_IO19: data = IO_IO19 & Z180_IO19_RMASK; - LOG(("Z180 '%s' IO19 rd $%02x ($%02x)\n", tag(), data, m_io[port & 0x3f])); + LOG("Z180 IO19 rd $%02x ($%02x)\n", data, m_io[port & 0x3f]); break; case Z180_ASTC0L: data = IO_ASTC0L & Z180_ASTC0L_RMASK; - LOG(("Z180 '%s' ASTC0L rd $%02x ($%02x)\n", tag(), data, m_io[port & 0x3f])); + LOG("Z180 ASTC0L rd $%02x ($%02x)\n", data, m_io[port & 0x3f]); break; case Z180_ASTC0H: data = IO_ASTC0H & Z180_ASTC0H_RMASK; - LOG(("Z180 '%s' ASTC0H rd $%02x ($%02x)\n", tag(), data, m_io[port & 0x3f])); + LOG("Z180 ASTC0H rd $%02x ($%02x)\n", data, m_io[port & 0x3f]); break; case Z180_ASTC1L: data = IO_ASTC1L & Z180_ASTC1L_RMASK; - LOG(("Z180 '%s' ASTC1L rd $%02x ($%02x)\n", tag(), data, m_io[port & 0x3f])); + LOG("Z180 ASTC1L rd $%02x ($%02x)\n", data, m_io[port & 0x3f]); break; case Z180_ASTC1H: data = IO_ASTC1H & Z180_ASTC1H_RMASK; - LOG(("Z180 '%s' ASTC1H rd $%02x ($%02x)\n", tag(), data, m_io[port & 0x3f])); + LOG("Z180 ASTC1H rd $%02x ($%02x)\n", data, m_io[port & 0x3f]); break; case Z180_CMR: data = IO_CMR & Z180_CMR_RMASK; - LOG(("Z180 '%s' CMR rd $%02x ($%02x)\n", tag(), data, m_io[port & 0x3f])); + LOG("Z180 CMR rd $%02x ($%02x)\n", data, m_io[port & 0x3f]); break; case Z180_CCR: data = IO_CCR & Z180_CCR_RMASK; - LOG(("Z180 '%s' CCR rd $%02x ($%02x)\n", tag(), data, m_io[port & 0x3f])); + LOG("Z180 CCR rd $%02x ($%02x)\n", data, m_io[port & 0x3f]); break; case Z180_SAR0L: data = IO_SAR0L & Z180_SAR0L_RMASK; - LOG(("Z180 '%s' SAR0L rd $%02x ($%02x)\n", tag(), data, m_io[port & 0x3f])); + LOG("Z180 SAR0L rd $%02x ($%02x)\n", data, m_io[port & 0x3f]); break; case Z180_SAR0H: data = IO_SAR0H & Z180_SAR0H_RMASK; - LOG(("Z180 '%s' SAR0H rd $%02x ($%02x)\n", tag(), data, m_io[port & 0x3f])); + LOG("Z180 SAR0H rd $%02x ($%02x)\n", data, m_io[port & 0x3f]); break; case Z180_SAR0B: data = IO_SAR0B & Z180_SAR0B_RMASK; - LOG(("Z180 '%s' SAR0B rd $%02x ($%02x)\n", tag(), data, m_io[port & 0x3f])); + LOG("Z180 SAR0B rd $%02x ($%02x)\n", data, m_io[port & 0x3f]); break; case Z180_DAR0L: data = IO_DAR0L & Z180_DAR0L_RMASK; - LOG(("Z180 '%s' DAR0L rd $%02x ($%02x)\n", tag(), data, m_io[port & 0x3f])); + LOG("Z180 DAR0L rd $%02x ($%02x)\n", data, m_io[port & 0x3f]); break; case Z180_DAR0H: data = IO_DAR0H & Z180_DAR0H_RMASK; - LOG(("Z180 '%s' DAR0H rd $%02x ($%02x)\n", tag(), data, m_io[port & 0x3f])); + LOG("Z180 DAR0H rd $%02x ($%02x)\n", data, m_io[port & 0x3f]); break; case Z180_DAR0B: data = IO_DAR0B & Z180_DAR0B_RMASK; - LOG(("Z180 '%s' DAR0B rd $%02x ($%02x)\n", tag(), data, m_io[port & 0x3f])); + LOG("Z180 DAR0B rd $%02x ($%02x)\n", data, m_io[port & 0x3f]); break; case Z180_BCR0L: data = IO_BCR0L & Z180_BCR0L_RMASK; - LOG(("Z180 '%s' BCR0L rd $%02x ($%02x)\n", tag(), data, m_io[port & 0x3f])); + LOG("Z180 BCR0L rd $%02x ($%02x)\n", data, m_io[port & 0x3f]); break; case Z180_BCR0H: data = IO_BCR0H & Z180_BCR0H_RMASK; - LOG(("Z180 '%s' BCR0H rd $%02x ($%02x)\n", tag(), data, m_io[port & 0x3f])); + LOG("Z180 BCR0H rd $%02x ($%02x)\n", data, m_io[port & 0x3f]); break; case Z180_MAR1L: data = IO_MAR1L & Z180_MAR1L_RMASK; - LOG(("Z180 '%s' MAR1L rd $%02x ($%02x)\n", tag(), data, m_io[port & 0x3f])); + LOG("Z180 MAR1L rd $%02x ($%02x)\n", data, m_io[port & 0x3f]); break; case Z180_MAR1H: data = IO_MAR1H & Z180_MAR1H_RMASK; - LOG(("Z180 '%s' MAR1H rd $%02x ($%02x)\n", tag(), data, m_io[port & 0x3f])); + LOG("Z180 MAR1H rd $%02x ($%02x)\n", data, m_io[port & 0x3f]); break; case Z180_MAR1B: data = IO_MAR1B & Z180_MAR1B_RMASK; - LOG(("Z180 '%s' MAR1B rd $%02x ($%02x)\n", tag(), data, m_io[port & 0x3f])); + LOG("Z180 MAR1B rd $%02x ($%02x)\n", data, m_io[port & 0x3f]); break; case Z180_IAR1L: data = IO_IAR1L & Z180_IAR1L_RMASK; - LOG(("Z180 '%s' IAR1L rd $%02x ($%02x)\n", tag(), data, m_io[port & 0x3f])); + LOG("Z180 IAR1L rd $%02x ($%02x)\n", data, m_io[port & 0x3f]); break; case Z180_IAR1H: data = IO_IAR1H & Z180_IAR1H_RMASK; - LOG(("Z180 '%s' IAR1H rd $%02x ($%02x)\n", tag(), data, m_io[port & 0x3f])); + LOG("Z180 IAR1H rd $%02x ($%02x)\n", data, m_io[port & 0x3f]); break; case Z180_IAR1B: data = IO_IAR1B & Z180_IAR1B_RMASK; - LOG(("Z180 '%s' IAR1B rd $%02x ($%02x)\n", tag(), data, m_io[port & 0x3f])); + LOG("Z180 IAR1B rd $%02x ($%02x)\n", data, m_io[port & 0x3f]); break; case Z180_BCR1L: data = IO_BCR1L & Z180_BCR1L_RMASK; - LOG(("Z180 '%s' BCR1L rd $%02x ($%02x)\n", tag(), data, m_io[port & 0x3f])); + LOG("Z180 BCR1L rd $%02x ($%02x)\n", data, m_io[port & 0x3f]); break; case Z180_BCR1H: data = IO_BCR1H & Z180_BCR1H_RMASK; - LOG(("Z180 '%s' BCR1H rd $%02x ($%02x)\n", tag(), data, m_io[port & 0x3f])); + LOG("Z180 BCR1H rd $%02x ($%02x)\n", data, m_io[port & 0x3f]); break; case Z180_DSTAT: data = IO_DSTAT & Z180_DSTAT_RMASK; - LOG(("Z180 '%s' DSTAT rd $%02x ($%02x)\n", tag(), data, m_io[port & 0x3f])); + LOG("Z180 DSTAT rd $%02x ($%02x)\n", data, m_io[port & 0x3f]); break; case Z180_DMODE: data = IO_DMODE & Z180_DMODE_RMASK; - LOG(("Z180 '%s' DMODE rd $%02x ($%02x)\n", tag(), data, m_io[port & 0x3f])); + LOG("Z180 DMODE rd $%02x ($%02x)\n", data, m_io[port & 0x3f]); break; case Z180_DCNTL: data = IO_DCNTL & Z180_DCNTL_RMASK; - LOG(("Z180 '%s' DCNTL rd $%02x ($%02x)\n", tag(), data, m_io[port & 0x3f])); + LOG("Z180 DCNTL rd $%02x ($%02x)\n", data, m_io[port & 0x3f]); break; case Z180_IL: data = IO_IL & Z180_IL_RMASK; - LOG(("Z180 '%s' IL rd $%02x ($%02x)\n", tag(), data, m_io[port & 0x3f])); + LOG("Z180 IL rd $%02x ($%02x)\n", data, m_io[port & 0x3f]); break; case Z180_ITC: data = IO_ITC & Z180_ITC_RMASK; - LOG(("Z180 '%s' ITC rd $%02x ($%02x)\n", tag(), data, m_io[port & 0x3f])); + LOG("Z180 ITC rd $%02x ($%02x)\n", data, m_io[port & 0x3f]); break; case Z180_IO35: data = IO_IO35 & Z180_IO35_RMASK; - LOG(("Z180 '%s' IO35 rd $%02x ($%02x)\n", tag(), data, m_io[port & 0x3f])); + LOG("Z180 IO35 rd $%02x ($%02x)\n", data, m_io[port & 0x3f]); break; case Z180_RCR: data = IO_RCR & Z180_RCR_RMASK; - LOG(("Z180 '%s' RCR rd $%02x ($%02x)\n", tag(), data, m_io[port & 0x3f])); + LOG("Z180 RCR rd $%02x ($%02x)\n", data, m_io[port & 0x3f]); break; case Z180_IO37: data = IO_IO37 & Z180_IO37_RMASK; - LOG(("Z180 '%s' IO37 rd $%02x ($%02x)\n", tag(), data, m_io[port & 0x3f])); + LOG("Z180 IO37 rd $%02x ($%02x)\n", data, m_io[port & 0x3f]); break; case Z180_CBR: data = IO_CBR & Z180_CBR_RMASK; - LOG(("Z180 '%s' CBR rd $%02x ($%02x)\n", tag(), data, m_io[port & 0x3f])); + LOG("Z180 CBR rd $%02x ($%02x)\n", data, m_io[port & 0x3f]); break; case Z180_BBR: data = IO_BBR & Z180_BBR_RMASK; - LOG(("Z180 '%s' BBR rd $%02x ($%02x)\n", tag(), data, m_io[port & 0x3f])); + LOG("Z180 BBR rd $%02x ($%02x)\n", data, m_io[port & 0x3f]); break; case Z180_CBAR: data = IO_CBAR & Z180_CBAR_RMASK; - LOG(("Z180 '%s' CBAR rd $%02x ($%02x)\n", tag(), data, m_io[port & 0x3f])); + LOG("Z180 CBAR rd $%02x ($%02x)\n", data, m_io[port & 0x3f]); break; case Z180_IO3B: data = IO_IO3B & Z180_IO3B_RMASK; - LOG(("Z180 '%s' IO3B rd $%02x ($%02x)\n", tag(), data, m_io[port & 0x3f])); + LOG("Z180 IO3B rd $%02x ($%02x)\n", data, m_io[port & 0x3f]); break; case Z180_IO3C: data = IO_IO3C & Z180_IO3C_RMASK; - LOG(("Z180 '%s' IO3C rd $%02x ($%02x)\n", tag(), data, m_io[port & 0x3f])); + LOG("Z180 IO3C rd $%02x ($%02x)\n", data, m_io[port & 0x3f]); break; case Z180_IO3D: data = IO_IO3D & Z180_IO3D_RMASK; - LOG(("Z180 '%s' IO3D rd $%02x ($%02x)\n", tag(), data, m_io[port & 0x3f])); + LOG("Z180 IO3D rd $%02x ($%02x)\n", data, m_io[port & 0x3f]); break; case Z180_OMCR: data = IO_OMCR & Z180_OMCR_RMASK; - LOG(("Z180 '%s' OMCR rd $%02x ($%02x)\n", tag(), data, m_io[port & 0x3f])); + LOG("Z180 OMCR rd $%02x ($%02x)\n", data, m_io[port & 0x3f]); break; case Z180_IOCR: data = IO_IOCR & Z180_IOCR_RMASK; - LOG(("Z180 '%s' IOCR rd $%02x ($%02x)\n", tag(), data, m_io[port & 0x3f])); + LOG("Z180 IOCR rd $%02x ($%02x)\n", data, m_io[port & 0x3f]); break; } @@ -1233,89 +1232,89 @@ void z180_device::z180_writecontrol(offs_t port, uint8_t data) switch (port + Z180_CNTLA0) { case Z180_CNTLA0: - LOG(("Z180 '%s' CNTLA0 wr $%02x ($%02x)\n", tag(), data, data & Z180_CNTLA0_WMASK)); + LOG("Z180 CNTLA0 wr $%02x ($%02x)\n", data, data & Z180_CNTLA0_WMASK); IO_CNTLA0 = (IO_CNTLA0 & ~Z180_CNTLA0_WMASK) | (data & Z180_CNTLA0_WMASK); break; case Z180_CNTLA1: - LOG(("Z180 '%s' CNTLA1 wr $%02x ($%02x)\n", tag(), data, data & Z180_CNTLA1_WMASK)); + LOG("Z180 CNTLA1 wr $%02x ($%02x)\n", data, data & Z180_CNTLA1_WMASK); IO_CNTLA1 = (IO_CNTLA1 & ~Z180_CNTLA1_WMASK) | (data & Z180_CNTLA1_WMASK); break; case Z180_CNTLB0: - LOG(("Z180 '%s' CNTLB0 wr $%02x ($%02x)\n", tag(), data, data & Z180_CNTLB0_WMASK)); + LOG("Z180 CNTLB0 wr $%02x ($%02x)\n", data, data & Z180_CNTLB0_WMASK); IO_CNTLB0 = (IO_CNTLB0 & ~Z180_CNTLB0_WMASK) | (data & Z180_CNTLB0_WMASK); break; case Z180_CNTLB1: - LOG(("Z180 '%s' CNTLB1 wr $%02x ($%02x)\n", tag(), data, data & Z180_CNTLB1_WMASK)); + LOG("Z180 CNTLB1 wr $%02x ($%02x)\n", data, data & Z180_CNTLB1_WMASK); IO_CNTLB1 = (IO_CNTLB1 & ~Z180_CNTLB1_WMASK) | (data & Z180_CNTLB1_WMASK); break; case Z180_STAT0: - LOG(("Z180 '%s' STAT0 wr $%02x ($%02x)\n", tag(), data, data & Z180_STAT0_WMASK)); + LOG("Z180 STAT0 wr $%02x ($%02x)\n", data, data & Z180_STAT0_WMASK); IO_STAT0 = (IO_STAT0 & ~Z180_STAT0_WMASK) | (data & Z180_STAT0_WMASK); break; case Z180_STAT1: - LOG(("Z180 '%s' STAT1 wr $%02x ($%02x)\n", tag(), data, data & Z180_STAT1_WMASK)); + LOG("Z180 STAT1 wr $%02x ($%02x)\n", data, data & Z180_STAT1_WMASK); IO_STAT1 = (IO_STAT1 & ~Z180_STAT1_WMASK) | (data & Z180_STAT1_WMASK); break; case Z180_TDR0: - LOG(("Z180 '%s' TDR0 wr $%02x ($%02x)\n", tag(), data, data & Z180_TDR0_WMASK)); + LOG("Z180 TDR0 wr $%02x ($%02x)\n", data, data & Z180_TDR0_WMASK); IO_TDR0 = (IO_TDR0 & ~Z180_TDR0_WMASK) | (data & Z180_TDR0_WMASK); break; case Z180_TDR1: - LOG(("Z180 '%s' TDR1 wr $%02x ($%02x)\n", tag(), data, data & Z180_TDR1_WMASK)); + LOG("Z180 TDR1 wr $%02x ($%02x)\n", data, data & Z180_TDR1_WMASK); IO_TDR1 = (IO_TDR1 & ~Z180_TDR1_WMASK) | (data & Z180_TDR1_WMASK); break; case Z180_RDR0: - LOG(("Z180 '%s' RDR0 wr $%02x ($%02x)\n", tag(), data, data & Z180_RDR0_WMASK)); + LOG("Z180 RDR0 wr $%02x ($%02x)\n", data, data & Z180_RDR0_WMASK); IO_RDR0 = (IO_RDR0 & ~Z180_RDR0_WMASK) | (data & Z180_RDR0_WMASK); break; case Z180_RDR1: - LOG(("Z180 '%s' RDR1 wr $%02x ($%02x)\n", tag(), data, data & Z180_RDR1_WMASK)); + LOG("Z180 RDR1 wr $%02x ($%02x)\n", data, data & Z180_RDR1_WMASK); IO_RDR1 = (IO_RDR1 & ~Z180_RDR1_WMASK) | (data & Z180_RDR1_WMASK); break; case Z180_CNTR: - LOG(("Z180 '%s' CNTR wr $%02x ($%02x)\n", tag(), data, data & Z180_CNTR_WMASK)); + LOG("Z180 CNTR wr $%02x ($%02x)\n", data, data & Z180_CNTR_WMASK); IO_CNTR = (IO_CNTR & ~Z180_CNTR_WMASK) | (data & Z180_CNTR_WMASK); break; case Z180_TRDR: - LOG(("Z180 '%s' TRDR wr $%02x ($%02x)\n", tag(), data, data & Z180_TRDR_WMASK)); + LOG("Z180 TRDR wr $%02x ($%02x)\n", data, data & Z180_TRDR_WMASK); IO_TRDR = (IO_TRDR & ~Z180_TRDR_WMASK) | (data & Z180_TRDR_WMASK); break; case Z180_TMDR0L: - LOG(("Z180 '%s' TMDR0L wr $%02x ($%02x)\n", tag(), data, data & Z180_TMDR0L_WMASK)); + LOG("Z180 TMDR0L wr $%02x ($%02x)\n", data, data & Z180_TMDR0L_WMASK); IO_TMDR0L = data & Z180_TMDR0L_WMASK; m_tmdr_value[0] = (m_tmdr_value[0] & 0xff00) | IO_TMDR0L; break; case Z180_TMDR0H: - LOG(("Z180 '%s' TMDR0H wr $%02x ($%02x)\n", tag(), data, data & Z180_TMDR0H_WMASK)); + LOG("Z180 TMDR0H wr $%02x ($%02x)\n", data, data & Z180_TMDR0H_WMASK); IO_TMDR0H = data & Z180_TMDR0H_WMASK; m_tmdr_value[0] = (m_tmdr_value[0] & 0x00ff) | (IO_TMDR0H << 8); break; case Z180_RLDR0L: - LOG(("Z180 '%s' RLDR0L wr $%02x ($%02x)\n", tag(), data, data & Z180_RLDR0L_WMASK)); + LOG("Z180 RLDR0L wr $%02x ($%02x)\n", data, data & Z180_RLDR0L_WMASK); IO_RLDR0L = (IO_RLDR0L & ~Z180_RLDR0L_WMASK) | (data & Z180_RLDR0L_WMASK); break; case Z180_RLDR0H: - LOG(("Z180 '%s' RLDR0H wr $%02x ($%02x)\n", tag(), data, data & Z180_RLDR0H_WMASK)); + LOG("Z180 RLDR0H wr $%02x ($%02x)\n", data, data & Z180_RLDR0H_WMASK); IO_RLDR0H = (IO_RLDR0H & ~Z180_RLDR0H_WMASK) | (data & Z180_RLDR0H_WMASK); break; case Z180_TCR: - LOG(("Z180 '%s' TCR wr $%02x ($%02x)\n", tag(), data, data & Z180_TCR_WMASK)); + LOG("Z180 TCR wr $%02x ($%02x)\n", data, data & Z180_TCR_WMASK); { uint16_t old = IO_TCR; /* Force reload on state change */ @@ -1329,164 +1328,164 @@ void z180_device::z180_writecontrol(offs_t port, uint8_t data) break; case Z180_IO11: - LOG(("Z180 '%s' IO11 wr $%02x ($%02x)\n", tag(), data, data & Z180_IO11_WMASK)); + LOG("Z180 IO11 wr $%02x ($%02x)\n", data, data & Z180_IO11_WMASK); IO_IO11 = (IO_IO11 & ~Z180_IO11_WMASK) | (data & Z180_IO11_WMASK); break; case Z180_ASEXT0: - LOG(("Z180 '%s' ASEXT0 wr $%02x ($%02x)\n", tag(), data, data & Z180_ASEXT0_WMASK)); + LOG("Z180 ASEXT0 wr $%02x ($%02x)\n", data, data & Z180_ASEXT0_WMASK); IO_ASEXT0 = (IO_ASEXT0 & ~Z180_ASEXT0_WMASK) | (data & Z180_ASEXT0_WMASK); break; case Z180_ASEXT1: - LOG(("Z180 '%s' ASEXT1 wr $%02x ($%02x)\n", tag(), data, data & Z180_ASEXT1_WMASK)); + LOG("Z180 ASEXT1 wr $%02x ($%02x)\n", data, data & Z180_ASEXT1_WMASK); IO_ASEXT1 = (IO_ASEXT1 & ~Z180_ASEXT1_WMASK) | (data & Z180_ASEXT1_WMASK); break; case Z180_TMDR1L: - LOG(("Z180 '%s' TMDR1L wr $%02x ($%02x)\n", tag(), data, data & Z180_TMDR1L_WMASK)); + LOG("Z180 TMDR1L wr $%02x ($%02x)\n", data, data & Z180_TMDR1L_WMASK); IO_TMDR1L = data & Z180_TMDR1L_WMASK; m_tmdr_value[1] = (m_tmdr_value[1] & 0xff00) | IO_TMDR1L; break; case Z180_TMDR1H: - LOG(("Z180 '%s' TMDR1H wr $%02x ($%02x)\n", tag(), data, data & Z180_TMDR1H_WMASK)); + LOG("Z180 TMDR1H wr $%02x ($%02x)\n", data, data & Z180_TMDR1H_WMASK); IO_TMDR1H = data & Z180_TMDR1H_WMASK; m_tmdr_value[1] = (m_tmdr_value[1] & 0x00ff) | IO_TMDR1H; break; case Z180_RLDR1L: - LOG(("Z180 '%s' RLDR1L wr $%02x ($%02x)\n", tag(), data, data & Z180_RLDR1L_WMASK)); + LOG("Z180 RLDR1L wr $%02x ($%02x)\n", data, data & Z180_RLDR1L_WMASK); IO_RLDR1L = (IO_RLDR1L & ~Z180_RLDR1L_WMASK) | (data & Z180_RLDR1L_WMASK); break; case Z180_RLDR1H: - LOG(("Z180 '%s' RLDR1H wr $%02x ($%02x)\n", tag(), data, data & Z180_RLDR1H_WMASK)); + LOG("Z180 RLDR1H wr $%02x ($%02x)\n", data, data & Z180_RLDR1H_WMASK); IO_RLDR1H = (IO_RLDR1H & ~Z180_RLDR1H_WMASK) | (data & Z180_RLDR1H_WMASK); break; case Z180_FRC: - LOG(("Z180 '%s' FRC wr $%02x ($%02x)\n", tag(), data, data & Z180_FRC_WMASK)); + LOG("Z180 FRC wr $%02x ($%02x)\n", data, data & Z180_FRC_WMASK); IO_FRC = (IO_FRC & ~Z180_FRC_WMASK) | (data & Z180_FRC_WMASK); break; case Z180_IO19: - LOG(("Z180 '%s' IO19 wr $%02x ($%02x)\n", tag(), data, data & Z180_IO19_WMASK)); + LOG("Z180 IO19 wr $%02x ($%02x)\n", data, data & Z180_IO19_WMASK); IO_IO19 = (IO_IO19 & ~Z180_IO19_WMASK) | (data & Z180_IO19_WMASK); break; case Z180_ASTC0L: - LOG(("Z180 '%s' ASTC0L wr $%02x ($%02x)\n", tag(), data, data & Z180_ASTC0L_WMASK)); + LOG("Z180 ASTC0L wr $%02x ($%02x)\n", data, data & Z180_ASTC0L_WMASK); IO_ASTC0L = (IO_ASTC0L & ~Z180_ASTC0L_WMASK) | (data & Z180_ASTC0L_WMASK); break; case Z180_ASTC0H: - LOG(("Z180 '%s' ASTC0H wr $%02x ($%02x)\n", tag(), data, data & Z180_ASTC0H_WMASK)); + LOG("Z180 ASTC0H wr $%02x ($%02x)\n", data, data & Z180_ASTC0H_WMASK); IO_ASTC0H = (IO_ASTC0H & ~Z180_ASTC0H_WMASK) | (data & Z180_ASTC0H_WMASK); break; case Z180_ASTC1L: - LOG(("Z180 '%s' ASTC1L wr $%02x ($%02x)\n", tag(), data, data & Z180_ASTC1L_WMASK)); + LOG("Z180 ASTC1L wr $%02x ($%02x)\n", data, data & Z180_ASTC1L_WMASK); IO_ASTC1L = (IO_ASTC1L & ~Z180_ASTC1L_WMASK) | (data & Z180_ASTC1L_WMASK); break; case Z180_ASTC1H: - LOG(("Z180 '%s' ASTC1H wr $%02x ($%02x)\n", tag(), data, data & Z180_ASTC1H_WMASK)); + LOG("Z180 ASTC1H wr $%02x ($%02x)\n", data, data & Z180_ASTC1H_WMASK); IO_ASTC1H = (IO_ASTC1H & ~Z180_ASTC1H_WMASK) | (data & Z180_ASTC1H_WMASK); break; case Z180_CMR: - LOG(("Z180 '%s' CMR wr $%02x ($%02x)\n", tag(), data, data & Z180_CMR_WMASK)); + LOG("Z180 CMR wr $%02x ($%02x)\n", data, data & Z180_CMR_WMASK); IO_CMR = (IO_CMR & ~Z180_CMR_WMASK) | (data & Z180_CMR_WMASK); break; case Z180_CCR: - LOG(("Z180 '%s' CCR wr $%02x ($%02x)\n", tag(), data, data & Z180_CCR_WMASK)); + LOG("Z180 CCR wr $%02x ($%02x)\n", data, data & Z180_CCR_WMASK); IO_CCR = (IO_CCR & ~Z180_CCR_WMASK) | (data & Z180_CCR_WMASK); break; case Z180_SAR0L: - LOG(("Z180 '%s' SAR0L wr $%02x ($%02x)\n", tag(), data, data & Z180_SAR0L_WMASK)); + LOG("Z180 SAR0L wr $%02x ($%02x)\n", data, data & Z180_SAR0L_WMASK); IO_SAR0L = (IO_SAR0L & ~Z180_SAR0L_WMASK) | (data & Z180_SAR0L_WMASK); break; case Z180_SAR0H: - LOG(("Z180 '%s' SAR0H wr $%02x ($%02x)\n", tag(), data, data & Z180_SAR0H_WMASK)); + LOG("Z180 SAR0H wr $%02x ($%02x)\n", data, data & Z180_SAR0H_WMASK); IO_SAR0H = (IO_SAR0H & ~Z180_SAR0H_WMASK) | (data & Z180_SAR0H_WMASK); break; case Z180_SAR0B: - LOG(("Z180 '%s' SAR0B wr $%02x ($%02x)\n", tag(), data, data & Z180_SAR0B_WMASK)); + LOG("Z180 SAR0B wr $%02x ($%02x)\n", data, data & Z180_SAR0B_WMASK); IO_SAR0B = (IO_SAR0B & ~Z180_SAR0B_WMASK) | (data & Z180_SAR0B_WMASK); break; case Z180_DAR0L: - LOG(("Z180 '%s' DAR0L wr $%02x ($%02x)\n", tag(), data, data & Z180_DAR0L_WMASK)); + LOG("Z180 DAR0L wr $%02x ($%02x)\n", data, data & Z180_DAR0L_WMASK); IO_DAR0L = (IO_DAR0L & ~Z180_DAR0L_WMASK) | (data & Z180_DAR0L_WMASK); break; case Z180_DAR0H: - LOG(("Z180 '%s' DAR0H wr $%02x ($%02x)\n", tag(), data, data & Z180_DAR0H_WMASK)); + LOG("Z180 DAR0H wr $%02x ($%02x)\n", data, data & Z180_DAR0H_WMASK); IO_DAR0H = (IO_DAR0H & ~Z180_DAR0H_WMASK) | (data & Z180_DAR0H_WMASK); break; case Z180_DAR0B: - LOG(("Z180 '%s' DAR0B wr $%02x ($%02x)\n", tag(), data, data & Z180_DAR0B_WMASK)); + LOG("Z180 DAR0B wr $%02x ($%02x)\n", data, data & Z180_DAR0B_WMASK); IO_DAR0B = (IO_DAR0B & ~Z180_DAR0B_WMASK) | (data & Z180_DAR0B_WMASK); break; case Z180_BCR0L: - LOG(("Z180 '%s' BCR0L wr $%02x ($%02x)\n", tag(), data, data & Z180_BCR0L_WMASK)); + LOG("Z180 BCR0L wr $%02x ($%02x)\n", data, data & Z180_BCR0L_WMASK); IO_BCR0L = (IO_BCR0L & ~Z180_BCR0L_WMASK) | (data & Z180_BCR0L_WMASK); break; case Z180_BCR0H: - LOG(("Z180 '%s' BCR0H wr $%02x ($%02x)\n", tag(), data, data & Z180_BCR0H_WMASK)); + LOG("Z180 BCR0H wr $%02x ($%02x)\n", data, data & Z180_BCR0H_WMASK); IO_BCR0H = (IO_BCR0H & ~Z180_BCR0H_WMASK) | (data & Z180_BCR0H_WMASK); break; case Z180_MAR1L: - LOG(("Z180 '%s' MAR1L wr $%02x ($%02x)\n", tag(), data, data & Z180_MAR1L_WMASK)); + LOG("Z180 MAR1L wr $%02x ($%02x)\n", data, data & Z180_MAR1L_WMASK); IO_MAR1L = (IO_MAR1L & ~Z180_MAR1L_WMASK) | (data & Z180_MAR1L_WMASK); break; case Z180_MAR1H: - LOG(("Z180 '%s' MAR1H wr $%02x ($%02x)\n", tag(), data, data & Z180_MAR1H_WMASK)); + LOG("Z180 MAR1H wr $%02x ($%02x)\n", data, data & Z180_MAR1H_WMASK); IO_MAR1H = (IO_MAR1H & ~Z180_MAR1H_WMASK) | (data & Z180_MAR1H_WMASK); break; case Z180_MAR1B: - LOG(("Z180 '%s' MAR1B wr $%02x ($%02x)\n", tag(), data, data & Z180_MAR1B_WMASK)); + LOG("Z180 MAR1B wr $%02x ($%02x)\n", data, data & Z180_MAR1B_WMASK); IO_MAR1B = (IO_MAR1B & ~Z180_MAR1B_WMASK) | (data & Z180_MAR1B_WMASK); break; case Z180_IAR1L: - LOG(("Z180 '%s' IAR1L wr $%02x ($%02x)\n", tag(), data, data & Z180_IAR1L_WMASK)); + LOG("Z180 IAR1L wr $%02x ($%02x)\n", data, data & Z180_IAR1L_WMASK); IO_IAR1L = (IO_IAR1L & ~Z180_IAR1L_WMASK) | (data & Z180_IAR1L_WMASK); break; case Z180_IAR1H: - LOG(("Z180 '%s' IAR1H wr $%02x ($%02x)\n", tag(), data, data & Z180_IAR1H_WMASK)); + LOG("Z180 IAR1H wr $%02x ($%02x)\n", data, data & Z180_IAR1H_WMASK); IO_IAR1H = (IO_IAR1H & ~Z180_IAR1H_WMASK) | (data & Z180_IAR1H_WMASK); break; case Z180_IAR1B: - LOG(("Z180 '%s' IAR1B wr $%02x ($%02x)\n", tag(), data, data & Z180_IAR1B_WMASK)); + LOG("Z180 IAR1B wr $%02x ($%02x)\n", data, data & Z180_IAR1B_WMASK); IO_IAR1B = (IO_IAR1B & ~Z180_IAR1B_WMASK) | (data & Z180_IAR1B_WMASK); break; case Z180_BCR1L: - LOG(("Z180 '%s' BCR1L wr $%02x ($%02x)\n", tag(), data, data & Z180_BCR1L_WMASK)); + LOG("Z180 BCR1L wr $%02x ($%02x)\n", data, data & Z180_BCR1L_WMASK); IO_BCR1L = (IO_BCR1L & ~Z180_BCR1L_WMASK) | (data & Z180_BCR1L_WMASK); break; case Z180_BCR1H: - LOG(("Z180 '%s' BCR1H wr $%02x ($%02x)\n", tag(), data, data & Z180_BCR1H_WMASK)); + LOG("Z180 BCR1H wr $%02x ($%02x)\n", data, data & Z180_BCR1H_WMASK); IO_BCR1H = (IO_BCR1H & ~Z180_BCR1H_WMASK) | (data & Z180_BCR1H_WMASK); break; case Z180_DSTAT: - LOG(("Z180 '%s' DSTAT wr $%02x ($%02x)\n", tag(), data, data & Z180_DSTAT_WMASK)); + LOG("Z180 DSTAT wr $%02x ($%02x)\n", data, data & Z180_DSTAT_WMASK); IO_DSTAT = (IO_DSTAT & ~Z180_DSTAT_WMASK) | (data & Z180_DSTAT_WMASK); if ((data & (Z180_DSTAT_DE1 | Z180_DSTAT_DWE1)) == Z180_DSTAT_DE1) { @@ -1499,80 +1498,80 @@ void z180_device::z180_writecontrol(offs_t port, uint8_t data) break; case Z180_DMODE: - LOG(("Z180 '%s' DMODE wr $%02x ($%02x)\n", tag(), data, data & Z180_DMODE_WMASK)); + LOG("Z180 DMODE wr $%02x ($%02x)\n", data, data & Z180_DMODE_WMASK); IO_DMODE = (IO_DMODE & ~Z180_DMODE_WMASK) | (data & Z180_DMODE_WMASK); break; case Z180_DCNTL: - LOG(("Z180 '%s' DCNTL wr $%02x ($%02x)\n", tag(), data, data & Z180_DCNTL_WMASK)); + LOG("Z180 DCNTL wr $%02x ($%02x)\n", data, data & Z180_DCNTL_WMASK); IO_DCNTL = (IO_DCNTL & ~Z180_DCNTL_WMASK) | (data & Z180_DCNTL_WMASK); break; case Z180_IL: - LOG(("Z180 '%s' IL wr $%02x ($%02x)\n", tag(), data, data & Z180_IL_WMASK)); + LOG("Z180 IL wr $%02x ($%02x)\n", data, data & Z180_IL_WMASK); IO_IL = (IO_IL & ~Z180_IL_WMASK) | (data & Z180_IL_WMASK); break; case Z180_ITC: - LOG(("Z180 '%s' ITC wr $%02x ($%02x)\n", tag(), data, data & Z180_ITC_WMASK)); + LOG("Z180 ITC wr $%02x ($%02x)\n", data, data & Z180_ITC_WMASK); IO_ITC = (IO_ITC & ~Z180_ITC_WMASK) | (data & Z180_ITC_WMASK); break; case Z180_IO35: - LOG(("Z180 '%s' IO35 wr $%02x ($%02x)\n", tag(), data, data & Z180_IO35_WMASK)); + LOG("Z180 IO35 wr $%02x ($%02x)\n", data, data & Z180_IO35_WMASK); IO_IO35 = (IO_IO35 & ~Z180_IO35_WMASK) | (data & Z180_IO35_WMASK); break; case Z180_RCR: - LOG(("Z180 '%s' RCR wr $%02x ($%02x)\n", tag(), data, data & Z180_RCR_WMASK)); + LOG("Z180 RCR wr $%02x ($%02x)\n", data, data & Z180_RCR_WMASK); IO_RCR = (IO_RCR & ~Z180_RCR_WMASK) | (data & Z180_RCR_WMASK); break; case Z180_IO37: - LOG(("Z180 '%s' IO37 wr $%02x ($%02x)\n", tag(), data, data & Z180_IO37_WMASK)); + LOG("Z180 IO37 wr $%02x ($%02x)\n", data, data & Z180_IO37_WMASK); IO_IO37 = (IO_IO37 & ~Z180_IO37_WMASK) | (data & Z180_IO37_WMASK); break; case Z180_CBR: - LOG(("Z180 '%s' CBR wr $%02x ($%02x)\n", tag(), data, data & Z180_CBR_WMASK)); + LOG("Z180 CBR wr $%02x ($%02x)\n", data, data & Z180_CBR_WMASK); IO_CBR = (IO_CBR & ~Z180_CBR_WMASK) | (data & Z180_CBR_WMASK); z180_mmu(); break; case Z180_BBR: - LOG(("Z180 '%s' BBR wr $%02x ($%02x)\n", tag(), data, data & Z180_BBR_WMASK)); + LOG("Z180 BBR wr $%02x ($%02x)\n", data, data & Z180_BBR_WMASK); IO_BBR = (IO_BBR & ~Z180_BBR_WMASK) | (data & Z180_BBR_WMASK); z180_mmu(); break; case Z180_CBAR: - LOG(("Z180 '%s' CBAR wr $%02x ($%02x)\n", tag(), data, data & Z180_CBAR_WMASK)); + LOG("Z180 CBAR wr $%02x ($%02x)\n", data, data & Z180_CBAR_WMASK); IO_CBAR = (IO_CBAR & ~Z180_CBAR_WMASK) | (data & Z180_CBAR_WMASK); z180_mmu(); break; case Z180_IO3B: - LOG(("Z180 '%s' IO3B wr $%02x ($%02x)\n", tag(), data, data & Z180_IO3B_WMASK)); + LOG("Z180 IO3B wr $%02x ($%02x)\n", data, data & Z180_IO3B_WMASK); IO_IO3B = (IO_IO3B & ~Z180_IO3B_WMASK) | (data & Z180_IO3B_WMASK); break; case Z180_IO3C: - LOG(("Z180 '%s' IO3C wr $%02x ($%02x)\n", tag(), data, data & Z180_IO3C_WMASK)); + LOG("Z180 IO3C wr $%02x ($%02x)\n", data, data & Z180_IO3C_WMASK); IO_IO3C = (IO_IO3C & ~Z180_IO3C_WMASK) | (data & Z180_IO3C_WMASK); break; case Z180_IO3D: - LOG(("Z180 '%s' IO3D wr $%02x ($%02x)\n", tag(), data, data & Z180_IO3D_WMASK)); + LOG("Z180 IO3D wr $%02x ($%02x)\n", data, data & Z180_IO3D_WMASK); IO_IO3D = (IO_IO3D & ~Z180_IO3D_WMASK) | (data & Z180_IO3D_WMASK); break; case Z180_OMCR: - LOG(("Z180 '%s' OMCR wr $%02x ($%02x)\n", tag(), data, data & Z180_OMCR_WMASK)); + LOG("Z180 OMCR wr $%02x ($%02x)\n", data, data & Z180_OMCR_WMASK); IO_OMCR = (IO_OMCR & ~Z180_OMCR_WMASK) | (data & Z180_OMCR_WMASK); break; case Z180_IOCR: - LOG(("Z180 '%s' IOCR wr $%02x ($%02x)\n", tag(), data, data & Z180_IOCR_WMASK)); + LOG("Z180 IOCR wr $%02x ($%02x)\n", data, data & Z180_IOCR_WMASK); IO_IOCR = (IO_IOCR & ~Z180_IOCR_WMASK) | (data & Z180_IOCR_WMASK); break; } @@ -1799,120 +1798,120 @@ void z180_device::z180_write_iolines(uint32_t data) /* I/O asynchronous clock 0 (active high) or DREQ0 (mux) */ if (changes & Z180_CKA0) { - LOG(("Z180 '%s' CKA0 %d\n", tag(), data & Z180_CKA0 ? 1 : 0)); + LOG("Z180 CKA0 %d\n", data & Z180_CKA0 ? 1 : 0); m_iol = (m_iol & ~Z180_CKA0) | (data & Z180_CKA0); } /* I/O asynchronous clock 1 (active high) or TEND1 (mux) */ if (changes & Z180_CKA1) { - LOG(("Z180 '%s' CKA1 %d\n", tag(), data & Z180_CKA1 ? 1 : 0)); + LOG("Z180 CKA1 %d\n", data & Z180_CKA1 ? 1 : 0); m_iol = (m_iol & ~Z180_CKA1) | (data & Z180_CKA1); } /* I/O serial clock (active high) */ if (changes & Z180_CKS) { - LOG(("Z180 '%s' CKS %d\n", tag(), data & Z180_CKS ? 1 : 0)); + LOG("Z180 CKS %d\n", data & Z180_CKS ? 1 : 0); m_iol = (m_iol & ~Z180_CKS) | (data & Z180_CKS); } /* I clear to send 0 (active low) */ if (changes & Z180_CTS0) { - LOG(("Z180 '%s' CTS0 %d\n", tag(), data & Z180_CTS0 ? 1 : 0)); + LOG("Z180 CTS0 %d\n", data & Z180_CTS0 ? 1 : 0); m_iol = (m_iol & ~Z180_CTS0) | (data & Z180_CTS0); } /* I clear to send 1 (active low) or RXS (mux) */ if (changes & Z180_CTS1) { - LOG(("Z180 '%s' CTS1 %d\n", tag(), data & Z180_CTS1 ? 1 : 0)); + LOG("Z180 CTS1 %d\n", data & Z180_CTS1 ? 1 : 0); m_iol = (m_iol & ~Z180_CTS1) | (data & Z180_CTS1); } /* I data carrier detect (active low) */ if (changes & Z180_DCD0) { - LOG(("Z180 '%s' DCD0 %d\n", tag(), data & Z180_DCD0 ? 1 : 0)); + LOG("Z180 DCD0 %d\n", data & Z180_DCD0 ? 1 : 0); m_iol = (m_iol & ~Z180_DCD0) | (data & Z180_DCD0); } /* I data request DMA ch 0 (active low) or CKA0 (mux) */ if (changes & Z180_DREQ0) { - LOG(("Z180 '%s' DREQ0 %d\n", tag(), data & Z180_DREQ0 ? 1 : 0)); + LOG("Z180 DREQ0 %d\n", data & Z180_DREQ0 ? 1 : 0); m_iol = (m_iol & ~Z180_DREQ0) | (data & Z180_DREQ0); } /* I data request DMA ch 1 (active low) */ if (changes & Z180_DREQ1) { - LOG(("Z180 '%s' DREQ1 %d\n", tag(), data & Z180_DREQ1 ? 1 : 0)); + LOG("Z180 DREQ1 %d\n", data & Z180_DREQ1 ? 1 : 0); m_iol = (m_iol & ~Z180_DREQ1) | (data & Z180_DREQ1); } /* I asynchronous receive data 0 (active high) */ if (changes & Z180_RXA0) { - LOG(("Z180 '%s' RXA0 %d\n", tag(), data & Z180_RXA0 ? 1 : 0)); + LOG("Z180 RXA0 %d\n", data & Z180_RXA0 ? 1 : 0); m_iol = (m_iol & ~Z180_RXA0) | (data & Z180_RXA0); } /* I asynchronous receive data 1 (active high) */ if (changes & Z180_RXA1) { - LOG(("Z180 '%s' RXA1 %d\n", tag(), data & Z180_RXA1 ? 1 : 0)); + LOG("Z180 RXA1 %d\n", data & Z180_RXA1 ? 1 : 0); m_iol = (m_iol & ~Z180_RXA1) | (data & Z180_RXA1); } /* I clocked serial receive data (active high) or CTS1 (mux) */ if (changes & Z180_RXS) { - LOG(("Z180 '%s' RXS %d\n", tag(), data & Z180_RXS ? 1 : 0)); + LOG("Z180 RXS %d\n", data & Z180_RXS ? 1 : 0); m_iol = (m_iol & ~Z180_RXS) | (data & Z180_RXS); } /* O request to send (active low) */ if (changes & Z180_RTS0) { - LOG(("Z180 '%s' RTS0 won't change output\n", tag())); + LOG("Z180 RTS0 won't change output\n"); } /* O transfer end 0 (active low) or CKA1 (mux) */ if (changes & Z180_TEND0) { - LOG(("Z180 '%s' TEND0 won't change output\n", tag())); + LOG("Z180 TEND0 won't change output\n"); } /* O transfer end 1 (active low) */ if (changes & Z180_TEND1) { - LOG(("Z180 '%s' TEND1 won't change output\n", tag())); + LOG("Z180 TEND1 won't change output\n"); } /* O transfer out (PRT channel, active low) or A18 (mux) */ if (changes & Z180_A18_TOUT) { - LOG(("Z180 '%s' TOUT won't change output\n", tag())); + LOG("Z180 TOUT won't change output\n"); } /* O asynchronous transmit data 0 (active high) */ if (changes & Z180_TXA0) { - LOG(("Z180 '%s' TXA0 won't change output\n", tag())); + LOG("Z180 TXA0 won't change output\n"); } /* O asynchronous transmit data 1 (active high) */ if (changes & Z180_TXA1) { - LOG(("Z180 '%s' TXA1 won't change output\n", tag())); + LOG("Z180 TXA1 won't change output\n"); } /* O clocked serial transmit data (active high) */ if (changes & Z180_TXS) { - LOG(("Z180 '%s' TXS won't change output\n", tag())); + LOG("Z180 TXS won't change output\n"); } } @@ -2379,7 +2378,7 @@ void z180_device::execute_run() /* to just check here */ if (m_nmi_pending) { - LOG(("Z180 '%s' take NMI\n", tag())); + LOG("Z180 take NMI\n"); LEAVE_HALT(); /* Check if processor was halted */ /* disable DMA transfers!! */ @@ -2525,7 +2524,7 @@ void z180_device::execute_set_input(int irqline, int state) } else { - LOG(("Z180 '%s' set_irq_line %d = %d\n",tag() , irqline,state)); + LOG("Z180 set_irq_line %d = %d\n", irqline,state); if(irqline == Z180_INPUT_LINE_IRQ0 || irqline == Z180_INPUT_LINE_IRQ1 || irqline == Z180_INPUT_LINE_IRQ2) { /* update the IRQ state */ diff --git a/src/devices/cpu/z180/z180.h b/src/devices/cpu/z180/z180.h index eb4b393ed02..13d558f0425 100644 --- a/src/devices/cpu/z180/z180.h +++ b/src/devices/cpu/z180/z180.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Juergen Buchmueller -#pragma once +#ifndef MAME_CPU_Z180_Z180_H +#define MAME_CPU_Z180_Z180_H -#ifndef __Z180_H__ -#define __Z180_H__ +#pragma once #include "cpu/z80/z80daisy.h" @@ -1773,11 +1773,9 @@ private: void xycb_fd(); void xycb_fe(); void xycb_ff(); - }; -extern const device_type Z180; - +DECLARE_DEVICE_TYPE(Z180, z180_device) -#endif /* __Z180_H__ */ +#endif // MAME_CPU_Z180_Z180_H diff --git a/src/devices/cpu/z180/z180op.hxx b/src/devices/cpu/z180/z180op.hxx index fce6718f40d..e29d867e66d 100644 --- a/src/devices/cpu/z180/z180op.hxx +++ b/src/devices/cpu/z180/z180op.hxx @@ -310,7 +310,7 @@ int z180_device::take_interrupt(int irq) device_z80daisy_interface *intf = daisy_get_irq_device(); irq_vector = (intf != nullptr) ? intf->z80daisy_irq_ack() : standard_irq_callback_member(*this, 0); - LOG(("Z180 '%s' single int. irq_vector $%02x\n", tag(), irq_vector)); + LOG("Z180 single int. irq_vector $%02x\n", irq_vector); /* Interrupt mode 2. Call [m_I:databyte] */ if( m_IM == 2 ) @@ -318,7 +318,7 @@ int z180_device::take_interrupt(int irq) irq_vector = (irq_vector & 0xff) + (m_I << 8); PUSH( PC ); RM16(irq_vector, &m_PC ); - LOG(("Z180 '%s' IM2 [$%04x] = $%04x\n",tag() , irq_vector, _PCD)); + LOG("Z180 IM2 [$%04x] = $%04x\n", irq_vector, _PCD); /* CALL opcode timing */ cycles += m_cc[Z180_TABLE_op][0xcd]; } @@ -326,7 +326,7 @@ int z180_device::take_interrupt(int irq) /* Interrupt mode 1. RST 38h */ if( m_IM == 1 ) { - LOG(("Z180 '%s' IM1 $0038\n",tag() )); + LOG("Z180 IM1 $0038\n"); PUSH( PC ); _PCD = 0x0038; /* RST $38 + 'interrupt latency' cycles */ @@ -337,7 +337,7 @@ int z180_device::take_interrupt(int irq) /* Interrupt mode 0. We check for CALL and JP instructions, */ /* if neither of these were found we assume a 1 byte opcode */ /* was placed on the databus */ - LOG(("Z180 '%s' IM0 $%04x\n",tag() , irq_vector)); + LOG("Z180 IM0 $%04x\n", irq_vector); switch (irq_vector & 0xff0000) { case 0xcd0000: /* call */ @@ -366,7 +366,7 @@ int z180_device::take_interrupt(int irq) irq_vector = (m_I << 8) + (irq_vector & 0xff); PUSH( PC ); RM16(irq_vector, &m_PC ); - LOG(("Z180 '%s' INT%d [$%04x] = $%04x\n", tag(), irq, irq_vector, _PCD)); + LOG("Z180 INT%d [$%04x] = $%04x\n", irq, irq_vector, _PCD); /* CALL opcode timing */ cycles += m_cc[Z180_TABLE_op][0xcd]; } diff --git a/src/devices/cpu/z180/z180ops.h b/src/devices/cpu/z180/z180ops.h index 952685c0f8a..9ffe45cc42d 100644 --- a/src/devices/cpu/z180/z180ops.h +++ b/src/devices/cpu/z180/z180ops.h @@ -213,7 +213,7 @@ uint32_t z180_device::ARG16() #define RET_COND(cond,opcode) \ if( cond ) \ { \ - POP(PC); \ + POP(PC); \ CC(ex,opcode); \ } @@ -221,19 +221,19 @@ uint32_t z180_device::ARG16() * RETN ***************************************************************/ #define RETN { \ - LOG(("Z180 '%s' RETN IFF1:%d IFF2:%d\n", tag(), m_IFF1, m_IFF2)); \ - POP(PC); \ - m_IFF1 = m_IFF2; \ + LOG("Z180 RETN IFF1:%d IFF2:%d\n", m_IFF1, m_IFF2); \ + POP(PC); \ + m_IFF1 = m_IFF2; \ } /*************************************************************** * RETI ***************************************************************/ #define RETI { \ - POP(PC); \ + POP(PC); \ /* according to http://www.msxnet.org/tech/Z80/z80undoc.txt */ \ -/* m_IFF1 = m_IFF2; */ \ - daisy_call_reti_device(); \ +/* m_IFF1 = m_IFF2; */ \ + daisy_call_reti_device(); \ } /*************************************************************** diff --git a/src/devices/cpu/z8/z8.cpp b/src/devices/cpu/z8/z8.cpp index d29a5d9f081..eb6fdc0703c 100644 --- a/src/devices/cpu/z8/z8.cpp +++ b/src/devices/cpu/z8/z8.cpp @@ -21,8 +21,8 @@ */ #include "emu.h" -#include "debugger.h" #include "z8.h" +#include "debugger.h" /*************************************************************************** CONSTANTS @@ -152,9 +152,9 @@ enum #define PRE1 m_r[Z8_REGISTER_PRE1] -const device_type Z8601 = device_creator; -const device_type UB8830D = device_creator; -const device_type Z8611 = device_creator; +DEFINE_DEVICE_TYPE(Z8601, z8601_device, "z8601", "Z8601") +DEFINE_DEVICE_TYPE(UB8830D, ub8830d_device, "ub8830d", "UB8830D") +DEFINE_DEVICE_TYPE(Z8611, z8611_device, "z8611", "Z8611") /*************************************************************************** @@ -170,29 +170,29 @@ static ADDRESS_MAP_START( program_4kb, AS_PROGRAM, 8, z8_device ) ADDRESS_MAP_END -z8_device::z8_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source, int size) - : cpu_device(mconfig, type, name, tag, owner, clock, shortname, source) - , m_program_config("program", ENDIANNESS_LITTLE, 8, 16, 0, ( size == 4 ) ? ADDRESS_MAP_NAME(program_4kb) : ADDRESS_MAP_NAME(program_2kb)) +z8_device::z8_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int size) + : cpu_device(mconfig, type, tag, owner, clock) + , m_program_config("program", ENDIANNESS_LITTLE, 8, 16, 0, (size == 4) ? ADDRESS_MAP_NAME(program_4kb) : ADDRESS_MAP_NAME(program_2kb)) , m_data_config("data", ENDIANNESS_LITTLE, 8, 16, 0) , m_io_config("io", ENDIANNESS_LITTLE, 8, 2, 0) { } -z8601_device::z8601_device(const machine_config &mconfig, const char *_tag, device_t *_owner, uint32_t _clock) - : z8_device(mconfig, Z8601, "Z8601", _tag, _owner, _clock, "z8601", __FILE__, 2) +z8601_device::z8601_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : z8_device(mconfig, Z8601, tag, owner, clock, 2) { } -ub8830d_device::ub8830d_device(const machine_config &mconfig, const char *_tag, device_t *_owner, uint32_t _clock) - : z8_device(mconfig, UB8830D, "UB8830D", _tag, _owner, _clock, "ub8830d", __FILE__, 2) +ub8830d_device::ub8830d_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : z8_device(mconfig, UB8830D, tag, owner, clock, 2) { } -z8611_device::z8611_device(const machine_config &mconfig, const char *_tag, device_t *_owner, uint32_t _clock) - : z8_device(mconfig, Z8611, "Z8611", _tag, _owner, _clock, "z8611", __FILE__, 4) +z8611_device::z8611_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : z8_device(mconfig, Z8611, tag, owner, clock, 4) { } diff --git a/src/devices/cpu/z8/z8.h b/src/devices/cpu/z8/z8.h index 99c8e831677..b2c47421fe5 100644 --- a/src/devices/cpu/z8/z8.h +++ b/src/devices/cpu/z8/z8.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_CPU_Z8_Z8_H +#define MAME_CPU_Z8_Z8_H -#ifndef __Z8_H__ -#define __Z8_H__ +#pragma once enum @@ -20,13 +20,12 @@ enum }; -class z8_device : public cpu_device +class z8_device : public cpu_device { -public: +protected: // construction/destruction - z8_device(const machine_config &mconfig, device_type type, const char *name, const char *_tag, device_t *_owner, uint32_t _clock, const char *shortname, const char *source, int size); + z8_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int size); -protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -41,7 +40,7 @@ protected: virtual void execute_set_input(int inputnum, int state) override; // device_memory_interface overrides - virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_0) const override + virtual const address_space_config *memory_space_config(address_spacenum spacenum) const override { switch ( spacenum ) { @@ -292,32 +291,31 @@ private: class z8601_device : public z8_device { public: - z8601_device(const machine_config &mconfig, const char *_tag, device_t *_owner, uint32_t _clock); + z8601_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; class ub8830d_device : public z8_device { public: - ub8830d_device(const machine_config &mconfig, const char *_tag, device_t *_owner, uint32_t _clock); + ub8830d_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; class z8611_device : public z8_device { public: - z8611_device(const machine_config &mconfig, const char *_tag, device_t *_owner, uint32_t _clock); + z8611_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; -/* Zilog Z8601 */ -extern const device_type Z8601; - -/* VEB Mikroelektronik Erfurt UB8830D MME */ -extern const device_type UB8830D; +// Zilog Z8601 +DECLARE_DEVICE_TYPE(Z8601, z8601_device) -/* Zilog Z8611 */ -extern const device_type Z8611; +// VEB Mikroelektronik Erfurt UB8830D MME +DECLARE_DEVICE_TYPE(UB8830D, ub8830d_device) +// Zilog Z8611 +DECLARE_DEVICE_TYPE(Z8611, z8611_device) -#endif +#endif // MAME_CPU_Z8_Z8_H diff --git a/src/devices/cpu/z80/kl5c80a12.cpp b/src/devices/cpu/z80/kl5c80a12.cpp index 6a16ca22bf6..e41eee4b0eb 100644 --- a/src/devices/cpu/z80/kl5c80a12.cpp +++ b/src/devices/cpu/z80/kl5c80a12.cpp @@ -16,11 +16,11 @@ #include "emu.h" #include "kl5c80a12.h" -const device_type KL5C80A12 = device_creator; +DEFINE_DEVICE_TYPE(KL5C80A12, kl5c80a12_device, "kl5c80a12", "KL5C80A12") kl5c80a12_device::kl5c80a12_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : z80_device(mconfig, KL5C80A12, "KL5C80A12", tag, owner, clock, "kl5c80a12", __FILE__) + : z80_device(mconfig, KL5C80A12, tag, owner, clock) { } diff --git a/src/devices/cpu/z80/kl5c80a12.h b/src/devices/cpu/z80/kl5c80a12.h index a4e9fc66cea..5804e27af49 100644 --- a/src/devices/cpu/z80/kl5c80a12.h +++ b/src/devices/cpu/z80/kl5c80a12.h @@ -13,10 +13,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_CPU_Z80_KL5C80A12_H +#define MAME_CPU_Z80_KL5C80A12_H -#ifndef __KL5C80A12__ -#define __KL5C80A12__ +#pragma once #include "z80.h" #include "machine/z80ctc.h" @@ -47,7 +47,6 @@ protected: // device type definition -extern const device_type KL5C80A12; - +DECLARE_DEVICE_TYPE(KL5C80A12, kl5c80a12_device) -#endif /// __KL5C80A12__ +#endif // MAME_CPU_Z80_KL5C80A12_H diff --git a/src/devices/cpu/z80/tmpz84c011.cpp b/src/devices/cpu/z80/tmpz84c011.cpp index 2f24b48ab2d..0143f0d23f5 100644 --- a/src/devices/cpu/z80/tmpz84c011.cpp +++ b/src/devices/cpu/z80/tmpz84c011.cpp @@ -13,7 +13,7 @@ #include "emu.h" #include "tmpz84c011.h" -const device_type TMPZ84C011 = device_creator; +DEFINE_DEVICE_TYPE(TMPZ84C011, tmpz84c011_device, "tmpz84c011", "TMPZ84C011") static ADDRESS_MAP_START( tmpz84c011_internal_io_map, AS_IO, 8, tmpz84c011_device ) AM_RANGE(0x10, 0x13) AM_MIRROR(0xff00) AM_DEVREADWRITE("tmpz84c011_ctc", z80ctc_device, read, write) @@ -32,7 +32,7 @@ ADDRESS_MAP_END tmpz84c011_device::tmpz84c011_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : z80_device(mconfig, TMPZ84C011, "TMPZ84C011", tag, owner, clock, "tmpz84c011", __FILE__), + : z80_device(mconfig, TMPZ84C011, tag, owner, clock), m_io_space_config( "io", ENDIANNESS_LITTLE, 8, 16, 0, ADDRESS_MAP_NAME( tmpz84c011_internal_io_map ) ), m_ctc(*this, "tmpz84c011_ctc"), m_outportsa(*this), diff --git a/src/devices/cpu/z80/tmpz84c011.h b/src/devices/cpu/z80/tmpz84c011.h index 9eaa3e2b0c3..a446eba45e9 100644 --- a/src/devices/cpu/z80/tmpz84c011.h +++ b/src/devices/cpu/z80/tmpz84c011.h @@ -7,10 +7,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_CPU_Z80_TMPZ84C011_H +#define MAME_CPU_Z80_TMPZ84C011_H -#ifndef __TMPZ84C011__ -#define __TMPZ84C011__ +#pragma once #include "z80.h" #include "machine/z80ctc.h" @@ -172,7 +172,7 @@ private: // device type definition -extern const device_type TMPZ84C011; +DECLARE_DEVICE_TYPE(TMPZ84C011, tmpz84c011_device) -#endif /// __TMPZ84C011__ +#endif // MAME_CPU_Z80_TMPZ84C011_H diff --git a/src/devices/cpu/z80/tmpz84c015.cpp b/src/devices/cpu/z80/tmpz84c015.cpp index 27021fc596e..57171485dd5 100644 --- a/src/devices/cpu/z80/tmpz84c015.cpp +++ b/src/devices/cpu/z80/tmpz84c015.cpp @@ -15,7 +15,7 @@ #include "emu.h" #include "tmpz84c015.h" -const device_type TMPZ84C015 = device_creator; +DEFINE_DEVICE_TYPE(TMPZ84C015, tmpz84c015_device, "tmpz84c015", "TMPZ84C015") static ADDRESS_MAP_START( tmpz84c015_internal_io_map, AS_IO, 8, tmpz84c015_device ) AM_RANGE(0x10, 0x13) AM_MIRROR(0xff00) AM_DEVREADWRITE("tmpz84c015_ctc", z80ctc_device, read, write) @@ -26,7 +26,7 @@ ADDRESS_MAP_END tmpz84c015_device::tmpz84c015_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : z80_device(mconfig, TMPZ84C015, "TMPZ84C015", tag, owner, clock, "tmpz84c015", __FILE__), + : z80_device(mconfig, TMPZ84C015, tag, owner, clock), m_io_space_config( "io", ENDIANNESS_LITTLE, 8, 16, 0, ADDRESS_MAP_NAME( tmpz84c015_internal_io_map ) ), m_ctc(*this, "tmpz84c015_ctc"), m_sio(*this, "tmpz84c015_sio"), diff --git a/src/devices/cpu/z80/tmpz84c015.h b/src/devices/cpu/z80/tmpz84c015.h index 90ee3154530..4e3c3b96afe 100644 --- a/src/devices/cpu/z80/tmpz84c015.h +++ b/src/devices/cpu/z80/tmpz84c015.h @@ -7,10 +7,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_CPU_Z80_TMPZ84C015_H +#define MAME_CPU_Z80_TMPZ84C015_H -#ifndef __TMPZ84C015__ -#define __TMPZ84C015__ +#pragma once #include "z80.h" #include "machine/z80dart.h" @@ -263,7 +263,7 @@ private: // device type definition -extern const device_type TMPZ84C015; +DECLARE_DEVICE_TYPE(TMPZ84C015, tmpz84c015_device) -#endif // __TMPZ84C015__ +#endif // MAME_CPU_Z80_TMPZ84C015_H diff --git a/src/devices/cpu/z80/z80.cpp b/src/devices/cpu/z80/z80.cpp index fcfbcb264e0..e1a04daf7db 100644 --- a/src/devices/cpu/z80/z80.cpp +++ b/src/devices/cpu/z80/z80.cpp @@ -3692,18 +3692,12 @@ void z80_device::z80_set_cycle_tables(const uint8_t *op, const uint8_t *cb, cons z80_device::z80_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - cpu_device(mconfig, Z80, "Z80", tag, owner, clock, "z80", __FILE__), - z80_daisy_chain_interface(mconfig, *this), - m_program_config("program", ENDIANNESS_LITTLE, 8, 16, 0), - m_decrypted_opcodes_config("decrypted_opcodes", ENDIANNESS_LITTLE, 8, 16, 0), - m_io_config("io", ENDIANNESS_LITTLE, 8, 16, 0), - m_irqack_cb(*this), - m_refresh_cb(*this) + z80_device(mconfig, Z80, tag, owner, clock) { } -z80_device::z80_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - cpu_device(mconfig, type, name, tag, owner, clock, shortname, source), +z80_device::z80_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + cpu_device(mconfig, type, tag, owner, clock), z80_daisy_chain_interface(mconfig, *this), m_program_config("program", ENDIANNESS_LITTLE, 8, 16, 0), m_decrypted_opcodes_config("decrypted_opcodes", ENDIANNESS_LITTLE, 8, 16, 0), @@ -3724,11 +3718,11 @@ const address_space_config *z80_device::memory_space_config(address_spacenum spa } } -const device_type Z80 = device_creator; +DEFINE_DEVICE_TYPE(Z80, z80_device, "z80", "Z80") nsc800_device::nsc800_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : z80_device(mconfig, NSC800, "NSC800", tag, owner, clock, "nsc800", __FILE__) + : z80_device(mconfig, NSC800, tag, owner, clock) { } -const device_type NSC800 = device_creator; +DEFINE_DEVICE_TYPE(NSC800, nsc800_device, "nsc800", "NSC800") diff --git a/src/devices/cpu/z80/z80.h b/src/devices/cpu/z80/z80.h index 664e484c565..80e3bdabcbd 100644 --- a/src/devices/cpu/z80/z80.h +++ b/src/devices/cpu/z80/z80.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Juergen Buchmueller -#pragma once +#ifndef MAME_CPU_Z80_Z80_H +#define MAME_CPU_Z80_Z80_H -#ifndef __Z80_H__ -#define __Z80_H__ +#pragma once #include "z80daisy.h" @@ -43,7 +43,7 @@ public: template static devcb_base &set_refresh_cb(device_t &device, _Object object) { return downcast(device).m_refresh_cb.set_callback(object); } protected: - z80_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); + z80_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); // device-level overrides virtual void device_start() override; @@ -287,7 +287,7 @@ protected: const uint8_t * m_cc_ex; }; -extern const device_type Z80; +DECLARE_DEVICE_TYPE(Z80, z80_device) class nsc800_device : public z80_device { @@ -308,7 +308,7 @@ protected: uint8_t m_nsc800_irq_state[4]; /* state of NSC800 restart interrupts A, B, C */ }; -extern const device_type NSC800; +DECLARE_DEVICE_TYPE(NSC800, nsc800_device) -#endif /* __Z80_H__ */ +#endif // MAME_CPU_Z80_Z80_H diff --git a/src/devices/cpu/z8000/8000dasm.cpp b/src/devices/cpu/z8000/8000dasm.cpp index 5a6d6c51596..a84d5d285e8 100644 --- a/src/devices/cpu/z8000/8000dasm.cpp +++ b/src/devices/cpu/z8000/8000dasm.cpp @@ -11,10 +11,12 @@ #include "emu.h" #include "z8000.h" #include "z8000cpu.h" + #include "debugger.h" #include "debug/debugvw.h" #include "debug/debugcon.h" + static int n[16]; /* opcode nibbles */ static int b[8]; /* opcode bytes */ static int w[4]; /* opcode words */ @@ -52,13 +54,11 @@ CPU_DISASSEMBLE(z8000) { int new_pc = pc, i, j, tmp; const char *src; - Z8000_exec *o; + z8002_device::Z8000_dasm o; uint32_t flags = 0; uint32_t old_w; - /* already initialized? */ - if(z8000_exec == nullptr) - z8000_init_tables(); + z8002_device::init_tables(); GET_OP(oprom, 0, new_pc - pc); new_pc += 2; @@ -74,11 +74,11 @@ CPU_DISASSEMBLE(z8000) util::stream_format(stream, ".word #%%%04x ;RST PC", w[0]); break; default: - o = &z8000_exec[w[0]]; - if (o->size > 1) { GET_OP(oprom, 1, new_pc - pc); new_pc += 2; } - if (o->size > 2) { GET_OP(oprom, 2, new_pc - pc); new_pc += 2; } - src = o->dasm; - flags = o->dasmflags; + o = z8002_device::dasm(w[0]); + if (o.size > 1) { GET_OP(oprom, 1, new_pc - pc); new_pc += 2; } + if (o.size > 2) { GET_OP(oprom, 2, new_pc - pc); new_pc += 2; } + src = o.dasm; + flags = o.flags; while (*src) { @@ -198,9 +198,9 @@ CPU_DISASSEMBLE(z8000) if (z8k_segm) { if (w[i] & 0x8000) { old_w = w[i]; - for (j = i; j < o->size; j++) + for (j = i; j < o.size; j++) w[j] = w[j + 1]; - GET_OP(oprom, o->size - 1, new_pc - pc); + GET_OP(oprom, o.size - 1, new_pc - pc); new_pc += 2; w[i] = ((old_w & 0x7f00) << 16) | (w[i] & 0xffff); } diff --git a/src/devices/cpu/z8000/z8000.cpp b/src/devices/cpu/z8000/z8000.cpp index 0256bc9bd90..b3edc18ada2 100644 --- a/src/devices/cpu/z8000/z8000.cpp +++ b/src/devices/cpu/z8000/z8000.cpp @@ -13,49 +13,43 @@ *****************************************************************************/ #include "emu.h" -#include "debugger.h" -#include "debug/debugcon.h" #include "z8000.h" +#include "z8000cpu.h" -#define VERBOSE 0 - +#include "debugger.h" +#include "debug/debugcon.h" -#define LOG(x) do { if (VERBOSE) logerror x; } while (0) +//#define VERBOSE 1 +#include "logmacro.h" extern int z8k_segm; extern int z8k_segm_mode; -#include "z8000cpu.h" - -const device_type Z8001 = device_creator; -const device_type Z8002 = device_creator; +DEFINE_DEVICE_TYPE(Z8001, z8001_device, "z8001", "Zilog Z8001") +DEFINE_DEVICE_TYPE(Z8002, z8002_device, "z8002", "Zilog Z8002") z8002_device::z8002_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cpu_device(mconfig, Z8002, "Z8002", tag, owner, clock, "z8002", __FILE__) - , z80_daisy_chain_interface(mconfig, *this) - , m_program_config("program", ENDIANNESS_BIG, 16, 16, 0) - , m_io_config("io", ENDIANNESS_BIG, 8, 16, 0) - , m_mo_out(*this), m_ppc(0), m_pc(0), m_psapseg(0), m_psapoff(0), m_fcw(0), m_refresh(0), m_nspseg(0), m_nspoff(0), m_irq_req(0), m_irq_vec(0), m_op_valid(0), m_nmi_state(0), m_mi(0), m_program(nullptr), m_data(nullptr), m_direct(nullptr), m_io(nullptr), m_icount(0) - , m_vector_mult(1) + : z8002_device(mconfig, Z8002, tag, owner, clock, 16, 8, 1) { } -z8002_device::z8002_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : cpu_device(mconfig, type, name, tag, owner, clock, shortname, source) +z8002_device::z8002_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int addrbits, int iobits, int vecmult) + : cpu_device(mconfig, type, tag, owner, clock) , z80_daisy_chain_interface(mconfig, *this) - , m_program_config("program", ENDIANNESS_BIG, 16, 20, 0) - , m_io_config("io", ENDIANNESS_BIG, 16, 16, 0) - , m_mo_out(*this), m_ppc(0), m_pc(0), m_psapseg(0), m_psapoff(0), m_fcw(0), m_refresh(0), m_nspseg(0), m_nspoff(0), m_irq_req(0), m_irq_vec(0), m_op_valid(0), m_nmi_state(0), m_mi(0), m_program(nullptr), m_data(nullptr), m_direct(nullptr), m_io(nullptr), m_icount(0) - , m_vector_mult(2) + , m_program_config("program", ENDIANNESS_BIG, 16, addrbits, 0) + , m_io_config("io", ENDIANNESS_BIG, iobits, 16, 0) + , m_mo_out(*this) + , m_ppc(0), m_pc(0), m_psapseg(0), m_psapoff(0), m_fcw(0), m_refresh(0), m_nspseg(0), m_nspoff(0), m_irq_req(0), m_irq_vec(0), m_op_valid(0), m_nmi_state(0), m_mi(0), m_program(nullptr), m_data(nullptr), m_direct(nullptr), m_io(nullptr), m_icount(0) + , m_vector_mult(vecmult) { } z8001_device::z8001_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : z8002_device(mconfig, Z8001, "Zilog Z8001", tag, owner, clock, "z8001", __FILE__) + : z8002_device(mconfig, Z8001, tag, owner, clock, 20, 16, 2) , m_data_config("data", ENDIANNESS_BIG, 16, 20, 0) { } @@ -69,7 +63,7 @@ offs_t z8002_device::disasm_disassemble(std::ostream &stream, offs_t pc, const u /* opcode execution table */ -Z8000_exec *z8000_exec = nullptr; +std::unique_ptr z8002_device::z8000_exec; /* zero, sign and parity flags for logical byte operations */ static uint8_t z8000_zsp[256]; @@ -385,7 +379,7 @@ void z8002_device::set_irq(int type) m_irq_req = type; break; case Z8000_SYSCALL >> 8: - LOG(("Z8K '%s' SYSCALL $%02x\n", tag(), type & 0xff)); + LOG("Z8K SYSCALL $%02x\n", type & 0xff); m_irq_req = type; break; default: @@ -474,7 +468,7 @@ void z8002_device::Interrupt() m_irq_req &= ~Z8000_EPU; CHANGE_FCW(GET_FCW(EPU)); m_pc = GET_PC(EPU); - LOG(("Z8K '%s' ext instr trap $%04x\n", tag(), m_pc)); + LOG("Z8K ext instr trap $%04x\n", m_pc); } else if (m_irq_req & Z8000_TRAP) @@ -486,7 +480,7 @@ void z8002_device::Interrupt() m_irq_req &= ~Z8000_TRAP; CHANGE_FCW(GET_FCW(TRAP)); m_pc = GET_PC(TRAP); - LOG(("Z8K '%s' priv instr trap $%04x\n", tag(), m_pc)); + LOG("Z8K priv instr trap $%04x\n", m_pc); } else if (m_irq_req & Z8000_SYSCALL) @@ -498,7 +492,7 @@ void z8002_device::Interrupt() m_irq_req &= ~Z8000_SYSCALL; CHANGE_FCW(GET_FCW(SYSCALL)); m_pc = GET_PC(SYSCALL); - LOG(("Z8K '%s' syscall $%04x\n", tag(), m_pc)); + LOG("Z8K syscall $%04x\n", m_pc); } else if (m_irq_req & Z8000_SEGTRAP) @@ -510,7 +504,7 @@ void z8002_device::Interrupt() m_irq_req &= ~Z8000_SEGTRAP; CHANGE_FCW(GET_FCW(SEGTRAP)); m_pc = GET_PC(SEGTRAP); - LOG(("Z8K '%s' segtrap $%04x\n", tag(), m_pc)); + LOG("Z8K segtrap $%04x\n", m_pc); } else if (m_irq_req & Z8000_NMI) @@ -523,7 +517,7 @@ void z8002_device::Interrupt() m_irq_req &= ~Z8000_NMI; CHANGE_FCW(GET_FCW(NMI)); m_pc = GET_PC(NMI); - LOG(("Z8K '%s' NMI $%04x\n", tag(), m_pc)); + LOG("Z8K NMI $%04x\n", m_pc); } else if ((m_irq_req & Z8000_NVI) && (m_fcw & F_NVIE)) @@ -535,7 +529,7 @@ void z8002_device::Interrupt() m_pc = GET_PC(NVI); m_irq_req &= ~Z8000_NVI; CHANGE_FCW(GET_FCW(NVI)); - LOG(("Z8K '%s' NVI $%04x\n", tag(), m_pc)); + LOG("Z8K NVI $%04x\n", m_pc); } else if ((m_irq_req & Z8000_VI) && (m_fcw & F_VIE)) @@ -547,7 +541,7 @@ void z8002_device::Interrupt() m_pc = read_irq_vector(); m_irq_req &= ~Z8000_VI; CHANGE_FCW(GET_FCW(VI)); - LOG(("Z8K '%s' VI [$%04x/$%04x] fcw $%04x, pc $%04x\n", tag(), m_irq_vec, VEC00 + ( m_vector_mult * 2 ) * (m_irq_req & 0xff), m_fcw, m_pc)); + LOG("Z8K VI [$%04x/$%04x] fcw $%04x, pc $%04x\n", m_irq_vec, VEC00 + ( m_vector_mult * 2 ) * (m_irq_req & 0xff), m_fcw, m_pc); } } @@ -699,9 +693,7 @@ void z8001_device::device_start() m_direct = &m_program->direct(); m_io = &space(AS_IO); - /* already initialized? */ - if(z8000_exec == nullptr) - z8000_init_tables(); + init_tables(); if (machine().debug_flags & DEBUG_FLAG_ENABLED) { @@ -732,9 +724,7 @@ void z8002_device::device_start() m_direct = &m_program->direct(); m_io = &space(AS_IO); - /* already initialized? */ - if(z8000_exec == nullptr) - z8000_init_tables(); + init_tables(); z8k_segm = false; @@ -768,7 +758,8 @@ void z8002_device::device_reset() z8002_device::~z8002_device() { - z8000_deinit_tables(); + // FIXME: assumes that these CPUs can't outlive each other + deinit_tables(); } void z8002_device::execute_run() @@ -791,11 +782,9 @@ void z8002_device::execute_run() } else { - Z8000_exec *exec; - m_op[0] = RDOP(); m_op_valid = 1; - exec = &z8000_exec[m_op[0]]; + Z8000_exec const *const exec = &z8000_exec[m_op[0]]; m_icount -= exec->cycles; (this->*exec->opcode)(); diff --git a/src/devices/cpu/z8000/z8000.h b/src/devices/cpu/z8000/z8000.h index 59eeaa02aa5..8186a0d57cc 100644 --- a/src/devices/cpu/z8000/z8000.h +++ b/src/devices/cpu/z8000/z8000.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Juergen Buchmueller,Ernesto Corvi -#pragma once +#ifndef MAME_CPU_Z8000_Z8000_H +#define MAME_CPU_Z8000_Z8000_H -#ifndef __Z8000_H__ -#define __Z8000_H__ +#pragma once #include "cpu/z80/z80daisy.h" @@ -38,13 +38,20 @@ class z8002_device : public cpu_device, public z80_daisy_chain_interface public: // construction/destruction z8002_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - z8002_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); ~z8002_device(); - template static devcb_base &set_mo_callback(device_t &device, _Object object) { return downcast(device).m_mo_out.set_callback(object); } + template static devcb_base &set_mo_callback(device_t &device, Object &&cb) { return downcast(device).m_mo_out.set_callback(std::forward(cb)); } DECLARE_WRITE_LINE_MEMBER(mi_w) { m_mi = state; } // XXX: this has to apply in the middle of an insn for now + struct Z8000_dasm { char const *dasm; uint32_t flags; int size; }; + + static void init_tables(); + static void deinit_tables(); + static Z8000_dasm dasm(unsigned w); + protected: + z8002_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int addrbits, int iobits, int vecmult); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -211,7 +218,6 @@ protected: virtual uint32_t PSA_ADDR(); virtual uint32_t read_irq_vector(); -public: void zinvalid(); void Z00_0000_dddd_imm8(); void Z00_ssN0_dddd(); @@ -623,6 +629,31 @@ public: void ZE_cccc_dsp8(); void ZF_dddd_0dsp7(); void ZF_dddd_1dsp7(); + +private: + // structure for the opcode definition table + typedef void (z8002_device::*opcode_func)(); + + struct Z8000_init { + int beg, end, step; + int size, cycles; + opcode_func opcode; + const char *dasm; + uint32_t dasmflags; + }; + + /* structure for the opcode execution table / disassembler */ + struct Z8000_exec { + opcode_func opcode; + int cycles; + int size; + const char *dasm; + uint32_t dasmflags; + }; + + /* opcode execution table */ + static const Z8000_init table[]; + static std::unique_ptr z8000_exec; }; @@ -638,7 +669,7 @@ protected: virtual void device_reset() override; // device_memory_interface overrides - virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_0) const override + virtual const address_space_config *memory_space_config(address_spacenum spacenum) const override { switch (spacenum) { @@ -671,8 +702,8 @@ private: }; -extern const device_type Z8001; -extern const device_type Z8002; +DECLARE_DEVICE_TYPE(Z8001, z8001_device) +DECLARE_DEVICE_TYPE(Z8002, z8002_device) /* possible values for z8k_segm_mode */ @@ -680,4 +711,4 @@ extern const device_type Z8002; #define Z8K_SEGM_MODE_SEG 1 #define Z8K_SEGM_MODE_AUTO 2 -#endif /* __Z8000_H__ */ +#endif // MAME_CPU_Z8000_Z8000_H diff --git a/src/devices/cpu/z8000/z8000cpu.h b/src/devices/cpu/z8000/z8000cpu.h index 21c648ecb6e..102cac41f0e 100644 --- a/src/devices/cpu/z8000/z8000cpu.h +++ b/src/devices/cpu/z8000/z8000cpu.h @@ -174,30 +174,3 @@ #define GET_DSP16 uint32_t dsp16 = addr_add(m_pc, (int16_t)get_operand(1)) #define GET_ADDR(o) uint32_t addr = (uint32_t)get_addr_operand(o) #define GET_ADDR_RAW(o) uint32_t addr = (uint32_t)get_raw_addr_operand(o) - - -/* structure for the opcode definition table */ -typedef void (z8002_device::*opcode_func)(); - -struct Z8000_init { - int beg, end, step; - int size, cycles; - opcode_func opcode; - const char *dasm; - uint32_t dasmflags; -}; - -/* structure for the opcode execution table / disassembler */ -struct Z8000_exec { - opcode_func opcode; - int cycles; - int size; - const char *dasm; - uint32_t dasmflags; -}; - -/* opcode execution table */ -extern Z8000_exec *z8000_exec; - -extern void z8000_init_tables(void); -extern void z8000_deinit_tables(void); diff --git a/src/devices/cpu/z8000/z8000ops.hxx b/src/devices/cpu/z8000/z8000ops.hxx index 127c9be11e9..bde18d4d70b 100644 --- a/src/devices/cpu/z8000/z8000ops.hxx +++ b/src/devices/cpu/z8000/z8000ops.hxx @@ -1639,7 +1639,7 @@ void z8002_device::Z0E_imm8() { CHECK_EXT_INSTR(); GET_IMM8(0); - LOG(("Z8K '%s' %04x: ext0e $%02x\n", tag(), m_pc, imm8)); + LOG("Z8K %04x: ext0e $%02x\n", m_pc, imm8); if (m_fcw & F_EPU) { /* Z8001 EPU code goes here */ (void)imm8; @@ -1654,7 +1654,7 @@ void z8002_device::Z0F_imm8() { CHECK_EXT_INSTR(); GET_IMM8(0); - LOG(("Z8K '%s' %04x: ext0f $%02x\n", tag(), m_pc, imm8)); + LOG("Z8K %04x: ext0f $%02x\n", m_pc, imm8); if (m_fcw & F_EPU) { /* Z8001 EPU code goes here */ (void)imm8; @@ -2411,7 +2411,7 @@ void z8002_device::Z36_0000_0000() void z8002_device::Z36_imm8() { GET_IMM8(0); - LOG(("Z8K '%s' %04x: rsvd36 $%02x\n", tag(), m_pc, imm8)); + LOG("Z8K %04x: rsvd36 $%02x\n", m_pc, imm8); if (m_fcw & F_EPU) { /* Z8001 EPU code goes here */ (void)imm8; @@ -2449,7 +2449,7 @@ void z8002_device::Z37_ddN0_ssss_imm16() void z8002_device::Z38_imm8() { GET_IMM8(0); - LOG(("Z8K '%s' %04x: rsvd38 $%02x\n", tag(), m_pc, imm8)); + LOG("Z8K %04x: rsvd38 $%02x\n", m_pc, imm8); if (m_fcw & F_EPU) { /* Z8001 EPU code goes here */ (void)imm8; @@ -4544,7 +4544,7 @@ void z8002_device::Z77_ddN0_ssss_0000_xxxx_0000_0000() void z8002_device::Z78_imm8() { GET_IMM8(0); - LOG(("Z8K '%s' %04x: rsvd78 $%02x\n", tag(), m_pc, imm8)); + LOG("Z8K %04x: rsvd78 $%02x\n", m_pc, imm8); if (m_fcw & F_EPU) { /* Z8001 EPU code goes here */ (void)imm8; @@ -4620,7 +4620,7 @@ void z8002_device::Z7B_0000_0000() else m_pc = POPW(SP); /* get m_pc */ CHANGE_FCW(fcw); /* check for user/system mode change */ - LOG(("Z8K '%s' IRET tag $%04x, fcw $%04x, pc $%04x\n", this->tag(), tag, fcw, m_pc)); + LOG("Z8K IRET tag $%04x, fcw $%04x, pc $%04x\n", tag, fcw, m_pc); } /****************************************** @@ -4736,7 +4736,7 @@ void z8002_device::Z7D_dddd_0ccc() RW(dst) = m_nspoff; break; default: - LOG(("Z8K '%s' LDCTL R%d,%d\n", tag(), dst, imm3)); + LOG("Z8K LDCTL R%d,%d\n", dst, imm3); } } @@ -4773,7 +4773,7 @@ void z8002_device::Z7D_ssss_1ccc() m_nspoff = RW(src); break; default: - LOG(("Z8K '%s' LDCTL %d,R%d\n", tag(), imm3, src)); + LOG("Z8K LDCTL %d,R%d\n", imm3, src); } } @@ -4784,7 +4784,7 @@ void z8002_device::Z7D_ssss_1ccc() void z8002_device::Z7E_imm8() { GET_IMM8(0); - LOG(("Z8K '%s' %04x: rsvd7e $%02x\n", tag(), m_pc, imm8)); + LOG("Z8K %04x: rsvd7e $%02x\n", m_pc, imm8); if (m_fcw & F_EPU) { /* Z8001 EPU code goes here */ (void)imm8; @@ -5102,7 +5102,7 @@ void z8002_device::Z8E_imm8() { CHECK_EXT_INSTR(); GET_IMM8(0); - LOG(("Z8K '%s' %04x: ext8e $%02x\n", tag(), m_pc, imm8)); + LOG("Z8K %04x: ext8e $%02x\n", m_pc, imm8); if (m_fcw & F_EPU) { /* Z8001 EPU code goes here */ (void)imm8; @@ -5117,7 +5117,7 @@ void z8002_device::Z8F_imm8() { CHECK_EXT_INSTR(); GET_IMM8(0); - LOG(("Z8K '%s' %04x: ext8f $%02x\n", tag(), m_pc, imm8)); + LOG("Z8K %04x: ext8f $%02x\n", m_pc, imm8); if (m_fcw & F_EPU) { /* Z8001 EPU code goes here */ (void)imm8; @@ -5275,7 +5275,7 @@ void z8002_device::Z9C_dddd_1000() void z8002_device::Z9D_imm8() { GET_IMM8(0); - LOG(("Z8K '%s' %04x: rsvd9d $%02x\n", tag(), m_pc, imm8)); + LOG("Z8K %04x: rsvd9d $%02x\n", m_pc, imm8); if (m_fcw & F_EPU) { /* Z8001 EPU code goes here */ (void)imm8; @@ -5336,7 +5336,7 @@ void z8002_device::Z9E_0000_cccc() void z8002_device::Z9F_imm8() { GET_IMM8(0); - LOG(("Z8K '%s' %04x: rsvd9f $%02x\n", tag(), m_pc, imm8)); + LOG("Z8K %04x: rsvd9f $%02x\n", m_pc, imm8); if (m_fcw & F_EPU) { /* Z8001 EPU code goes here */ (void)imm8; @@ -6051,7 +6051,7 @@ void z8002_device::ZB8_ddN0_1100_0000_rrrr_ssN0_0000() void z8002_device::ZB9_imm8() { GET_IMM8(0); - LOG(("Z8K '%s' %04x: rsvdb9 $%02x\n", tag(), m_pc, imm8)); + LOG("Z8K %04x: rsvdb9 $%02x\n", m_pc, imm8); if (m_fcw & F_EPU) { /* Z8001 EPU code goes here */ (void)imm8; @@ -6709,7 +6709,7 @@ void z8002_device::ZBE_aaaa_bbbb() void z8002_device::ZBF_imm8() { GET_IMM8(0); - LOG(("Z8K '%s' %04x: rsvdbf $%02x\n", tag(), m_pc, imm8)); + LOG("Z8K %04x: rsvdbf $%02x\n", m_pc, imm8); if (m_fcw & F_EPU) { /* Z8001 EPU code goes here */ (void)imm8; diff --git a/src/devices/cpu/z8000/z8000tbl.hxx b/src/devices/cpu/z8000/z8000tbl.hxx index 39f4a3c192c..7ebbeb4d071 100644 --- a/src/devices/cpu/z8000/z8000tbl.hxx +++ b/src/devices/cpu/z8000/z8000tbl.hxx @@ -8,7 +8,7 @@ * *****************************************************************************/ -static const Z8000_init table[] = { +const z8002_device::Z8000_init z8002_device::table[] = { {0x0000,0x000f, 1,2, 7,&z8002_device::Z00_0000_dddd_imm8, "addb %rb3,%#b3", 0}, {0x0010,0x00ff, 1,1, 7,&z8002_device::Z00_ssN0_dddd, "addb %rb3,@%rw2", 0}, {0x0100,0x010f, 1,2, 7,&z8002_device::Z01_0000_dddd_imm16, "add %rw3,%#w1", 0}, @@ -347,16 +347,16 @@ static const Z8000_init table[] = { {0x7d01,0x7df1,16,1, 7,&z8002_device::Z7D_dddd_0ccc, "ldctl %rw2,ctrl1", 0}, {0x7d02,0x7df2,16,1, 7,&z8002_device::Z7D_dddd_0ccc, "ldctl %rw2,fcw", 0}, {0x7d03,0x7df3,16,1, 7,&z8002_device::Z7D_dddd_0ccc, "ldctl %rw2,refresh", 0}, -{0x7d04,0x7df4,16,1, 7,&z8002_device::Z7D_dddd_0ccc, "ldctl %rw2,psapseg", 0}, -{0x7d05,0x7df5,16,1, 7,&z8002_device::Z7D_dddd_0ccc, "ldctl %rw2,psapoff", 0}, +{0x7d04,0x7df4,16,1, 7,&z8002_device::Z7D_dddd_0ccc, "ldctl %rw2,psapseg", 0}, +{0x7d05,0x7df5,16,1, 7,&z8002_device::Z7D_dddd_0ccc, "ldctl %rw2,psapoff", 0}, {0x7d06,0x7df6,16,1, 7,&z8002_device::Z7D_dddd_0ccc, "ldctl %rw2,nspseg", 0}, {0x7d07,0x7df7,16,1, 7,&z8002_device::Z7D_dddd_0ccc, "ldctl %rw2,nspoff", 0}, {0x7d08,0x7df8,16,1, 7,&z8002_device::Z7D_ssss_1ccc, "ldctl ctrl0,%rw2", 0}, {0x7d09,0x7df9,16,1, 7,&z8002_device::Z7D_ssss_1ccc, "ldctl ctrl1,%rw2", 0}, {0x7d0a,0x7dfa,16,1, 7,&z8002_device::Z7D_ssss_1ccc, "ldctl fcw,%rw2", 0}, {0x7d0b,0x7dfb,16,1, 7,&z8002_device::Z7D_ssss_1ccc, "ldctl refresh,%rw2", 0}, -{0x7d0c,0x7dfc,16,1, 7,&z8002_device::Z7D_ssss_1ccc, "ldctl psapseg,%rw2", 0}, -{0x7d0d,0x7dfd,16,1, 7,&z8002_device::Z7D_ssss_1ccc, "ldctl psapoff,%rw2", 0}, +{0x7d0c,0x7dfc,16,1, 7,&z8002_device::Z7D_ssss_1ccc, "ldctl psapseg,%rw2", 0}, +{0x7d0d,0x7dfd,16,1, 7,&z8002_device::Z7D_ssss_1ccc, "ldctl psapoff,%rw2", 0}, {0x7d0e,0x7dfe,16,1, 7,&z8002_device::Z7D_ssss_1ccc, "ldctl nspseg,%rw2", 0}, {0x7d0f,0x7dff,16,1, 7,&z8002_device::Z7D_ssss_1ccc, "ldctl nspoff,%rw2", 0}, {0x7e00,0x7eff, 1,1, 10,&z8002_device::Z7E_imm8, "rsvd7e %#b1", 0}, @@ -527,17 +527,21 @@ static const Z8000_init table[] = { {0xfd80,0xfdff, 1,1, 11,&z8002_device::ZF_dddd_1dsp7, "djnz %rw1,%d0", DASMFLAG_STEP_OVER}, {0xfe80,0xfeff, 1,1, 11,&z8002_device::ZF_dddd_1dsp7, "djnz %rw1,%d0", DASMFLAG_STEP_OVER}, {0xff80,0xffff, 1,1, 11,&z8002_device::ZF_dddd_1dsp7, "djnz %rw1,%d0", DASMFLAG_STEP_OVER}, -{0, 0, 0,0, 0,nullptr, nullptr, 0} +{0, 0, 0,0, 0,nullptr, nullptr, 0} }; -void z8000_init_tables(void) +void z8002_device::init_tables() { + /* already initialized? */ + if (z8000_exec) + return; + const Z8000_init *init; int i; /* allocate the opcode execution and disassembler array */ - z8000_exec = global_alloc_array(Z8000_exec, 0x10000); + std::unique_ptr exec(new Z8000_exec[0x10000]); /* set up the zero, sign, parity lookup table */ for (i = 0; i < 256; i++) @@ -548,11 +552,11 @@ void z8000_init_tables(void) /* first set all 64K opcodes to invalid */ for (i = 0; i < 0x10000; i++) { - z8000_exec[i].opcode = &z8002_device::zinvalid; - z8000_exec[i].cycles = 4; - z8000_exec[i].size = 1; - z8000_exec[i].dasm = ".word %#w0"; - z8000_exec[i].dasmflags = 0; + exec[i].opcode = &z8002_device::zinvalid; + exec[i].cycles = 4; + exec[i].size = 1; + exec[i].dasm = ".word %#w0"; + exec[i].dasmflags = 0; } /* now decompose the initialization table */ @@ -560,20 +564,28 @@ void z8000_init_tables(void) { for (i = init->beg; i <= init->end; i += init->step) { - if (z8000_exec[i].opcode != &z8002_device::zinvalid) - osd_printf_error("Z8000 opcode %04x clash '%s'\n", i, z8000_exec[i].dasm); + if (exec[i].opcode != &z8002_device::zinvalid) + osd_printf_error("Z8000 opcode %04x clash '%s'\n", i, exec[i].dasm); - z8000_exec[i].opcode = init->opcode; - z8000_exec[i].cycles = init->cycles; - z8000_exec[i].size = init->size; - z8000_exec[i].dasm = init->dasm; - z8000_exec[i].dasmflags = init->dasmflags; + exec[i].opcode = init->opcode; + exec[i].cycles = init->cycles; + exec[i].size = init->size; + exec[i].dasm = init->dasm; + exec[i].dasmflags = init->dasmflags; } } + + z8000_exec = std::move(exec); } -void z8000_deinit_tables(void) +void z8002_device::deinit_tables() { - global_free_array( z8000_exec ); z8000_exec = nullptr; } + +z8002_device::Z8000_dasm z8002_device::dasm(unsigned w) +{ + init_tables(); + Z8000_exec const &exec(z8000_exec[w]); + return Z8000_dasm{ exec.dasm, exec.dasmflags, exec.size }; +} diff --git a/src/devices/imagedev/bitbngr.cpp b/src/devices/imagedev/bitbngr.cpp index c1aedcc3a10..5031e0acdd3 100644 --- a/src/devices/imagedev/bitbngr.cpp +++ b/src/devices/imagedev/bitbngr.cpp @@ -15,14 +15,14 @@ IMPLEMENTATION ***************************************************************************/ -const device_type BITBANGER = device_creator; +DEFINE_DEVICE_TYPE(BITBANGER, bitbanger_device, "bitbanger", "Bitbanger") /*------------------------------------------------- ctor -------------------------------------------------*/ bitbanger_device::bitbanger_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, BITBANGER, "Bitbanger", tag, owner, clock, "bitbanger", __FILE__), + device_t(mconfig, BITBANGER, tag, owner, clock), device_image_interface(mconfig, *this), m_interface(nullptr) { diff --git a/src/devices/imagedev/bitbngr.h b/src/devices/imagedev/bitbngr.h index ddbff5d7c4b..ebd7d3dcc35 100644 --- a/src/devices/imagedev/bitbngr.h +++ b/src/devices/imagedev/bitbngr.h @@ -50,6 +50,6 @@ private: bitbanger_image_device::static_set_interface(*device, _interface); // device type definition -extern const device_type BITBANGER; +DECLARE_DEVICE_TYPE(BITBANGER, bitbanger_device) #endif // MAME_DEVICES_IMAGEDEV_BITBNGR_H diff --git a/src/devices/imagedev/cassette.cpp b/src/devices/imagedev/cassette.cpp index 6054082a764..20c4b919453 100644 --- a/src/devices/imagedev/cassette.cpp +++ b/src/devices/imagedev/cassette.cpp @@ -17,14 +17,14 @@ #define LOG(x) do { if (VERBOSE) logerror x; } while (0) // device type definition -const device_type CASSETTE = device_creator; +DEFINE_DEVICE_TYPE(CASSETTE, cassette_image_device, "cassette_image", "Cassette") //------------------------------------------------- // cassette_image_device - constructor //------------------------------------------------- cassette_image_device::cassette_image_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, CASSETTE, "Cassette", tag, owner, clock, "cassette_image", __FILE__), + : device_t(mconfig, CASSETTE, tag, owner, clock), device_image_interface(mconfig, *this), m_cassette(nullptr), m_state(CASSETTE_STOPPED), diff --git a/src/devices/imagedev/cassette.h b/src/devices/imagedev/cassette.h index 8dd981551de..eb375f8afed 100644 --- a/src/devices/imagedev/cassette.h +++ b/src/devices/imagedev/cassette.h @@ -8,8 +8,8 @@ *********************************************************************/ -#ifndef CASSETTE_H -#define CASSETTE_H +#ifndef MAME_DEVICES_IMAGEDEV_CASSETTE_H +#define MAME_DEVICES_IMAGEDEV_CASSETTE_H #include "formats/cassimg.h" #include "softlist_dev.h" @@ -117,7 +117,7 @@ private: }; // device type definition -extern const device_type CASSETTE; +DECLARE_DEVICE_TYPE(CASSETTE, cassette_image_device) // device iterator typedef device_type_iterator cassette_device_iterator; @@ -143,4 +143,4 @@ typedef device_type_iterator cassette_device_iterator; #define MCFG_CASSETTE_INTERFACE(_interface) \ cassette_image_device::static_set_interface(*device, _interface); -#endif /* CASSETTE_H */ +#endif // MAME_DEVICES_IMAGEDEV_CASSETTE_H diff --git a/src/devices/imagedev/chd_cd.cpp b/src/devices/imagedev/chd_cd.cpp index e3a036fd0a4..49592a33f63 100644 --- a/src/devices/imagedev/chd_cd.cpp +++ b/src/devices/imagedev/chd_cd.cpp @@ -9,27 +9,24 @@ *********************************************************************/ #include "emu.h" -#include "cdrom.h" #include "chd_cd.h" +#include "cdrom.h" + // device type definition -const device_type CDROM = device_creator; +DEFINE_DEVICE_TYPE(CDROM, cdrom_image_device, "cdrom_image", "CD-ROM Image") //------------------------------------------------- // cdrom_image_device - constructor //------------------------------------------------- cdrom_image_device::cdrom_image_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, CDROM, "CD-ROM Image", tag, owner, clock, "cdrom_image", __FILE__), - device_image_interface(mconfig, *this), - m_cdrom_handle(nullptr), - m_extension_list(nullptr), - m_interface(nullptr) + : cdrom_image_device(mconfig, CDROM, tag, owner, clock) { } -cdrom_image_device::cdrom_image_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), +cdrom_image_device::cdrom_image_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock), device_image_interface(mconfig, *this), m_cdrom_handle(nullptr), m_extension_list(nullptr), diff --git a/src/devices/imagedev/chd_cd.h b/src/devices/imagedev/chd_cd.h index 9bf63749b58..e257ff67d3f 100644 --- a/src/devices/imagedev/chd_cd.h +++ b/src/devices/imagedev/chd_cd.h @@ -8,8 +8,10 @@ *********************************************************************/ -#ifndef CHD_CD_H -#define CHD_CD_H +#ifndef MAME_DEVICES_IMAGEDEV_CHD_CD_H +#define MAME_DEVICES_IMAGEDEV_CHD_CD_H + +#pragma once #include "cdrom.h" #include "softlist_dev.h" @@ -26,7 +28,6 @@ class cdrom_image_device : public device_t, public: // construction/destruction cdrom_image_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - cdrom_image_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); virtual ~cdrom_image_device(); static void static_set_interface(device_t &device, const char *_interface) { downcast(device).m_interface = _interface; } @@ -48,7 +49,10 @@ public: // specific implementation cdrom_file *get_cdrom_file() { return m_cdrom_handle; } + protected: + cdrom_image_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_config_complete() override; virtual void device_start() override; @@ -61,7 +65,7 @@ protected: }; // device type definition -extern const device_type CDROM; +DECLARE_DEVICE_TYPE(CDROM, cdrom_image_device) /*************************************************************************** DEVICE CONFIGURATION MACROS @@ -74,4 +78,4 @@ extern const device_type CDROM; #define MCFG_CDROM_INTERFACE(_interface) \ cdrom_image_device::static_set_interface(*device, _interface); -#endif /* CHD_CD_H */ +#endif // MAME_DEVICES_IMAGEDEV_CHD_CD_H diff --git a/src/devices/imagedev/diablo.cpp b/src/devices/imagedev/diablo.cpp index 43b79c5a373..1291e83c01b 100644 --- a/src/devices/imagedev/diablo.cpp +++ b/src/devices/imagedev/diablo.cpp @@ -5,9 +5,10 @@ **********************************************************/ #include "emu.h" +#include "diablo.h" + #include "emuopts.h" #include "harddisk.h" -#include "diablo.h" OPTION_GUIDE_START(dsk_option_guide) @@ -23,14 +24,14 @@ static const char *dsk_option_spec = // device type definition -const device_type DIABLO = device_creator; +DEFINE_DEVICE_TYPE(DIABLO, diablo_image_device, "diablo_image", "Diablo") //------------------------------------------------- // diablo_image_device - constructor //------------------------------------------------- diablo_image_device::diablo_image_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, DIABLO, "Diablo", tag, owner, clock, "diablo_image", __FILE__), + : device_t(mconfig, DIABLO, tag, owner, clock), device_image_interface(mconfig, *this), m_chd(nullptr), m_hard_disk_handle(nullptr), diff --git a/src/devices/imagedev/diablo.h b/src/devices/imagedev/diablo.h index e19cc598fa0..087a097ed2a 100644 --- a/src/devices/imagedev/diablo.h +++ b/src/devices/imagedev/diablo.h @@ -4,13 +4,15 @@ * DIABLO drive image to hard disk interface **********************************************************/ -#ifndef _IMAGEDEV_DIABLO_H_ -#define _IMAGEDEV_DIABLO_H_ +#ifndef MAME_DEVICES_IMAGEDEV_DIABLO_H +#define MAME_DEVICES_IMAGEDEV_DIABLO_H + +#pragma once #include "harddisk.h" #include "softlist_dev.h" -#define DIABLO_TAG(_id) "diablo"#_id +#define DIABLO_TAG(id) "diablo"#id /*************************************************************************** TYPE DEFINITIONS @@ -18,8 +20,7 @@ // ======================> diablo_image_device -class diablo_image_device : public device_t, - public device_image_interface +class diablo_image_device : public device_t, public device_image_interface { public: // construction/destruction @@ -70,7 +71,7 @@ protected: }; // device type definition -extern const device_type DIABLO; +DECLARE_DEVICE_TYPE(DIABLO, diablo_image_device) /*************************************************************************** DEVICE CONFIGURATION MACROS @@ -88,4 +89,4 @@ extern const device_type DIABLO; #define MCFG_DIABLO_INTERFACE(_interface) \ diablo_image_device::static_set_interface(*device, _interface); -#endif /* _IMAGEDEV_DIABLO_H_ */ +#endif // MAME_DEVICES_IMAGEDEV_DIABLO_H diff --git a/src/devices/imagedev/flopdrv.cpp b/src/devices/imagedev/flopdrv.cpp index ed99bcba329..38f21d7dd76 100644 --- a/src/devices/imagedev/flopdrv.cpp +++ b/src/devices/imagedev/flopdrv.cpp @@ -694,48 +694,19 @@ READ_LINE_MEMBER( legacy_floppy_image_device::floppy_ready_r ) } // device type definition -const device_type LEGACY_FLOPPY = device_creator; +DEFINE_DEVICE_TYPE(LEGACY_FLOPPY, legacy_floppy_image_device, "legacy_floppy_image", "Floppy Disk") //------------------------------------------------- // legacy_floppy_image_device - constructor //------------------------------------------------- legacy_floppy_image_device::legacy_floppy_image_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, LEGACY_FLOPPY, "Floppy Disk", tag, owner, clock, "legacy_floppy_image", __FILE__), - device_image_interface(mconfig, *this), - m_out_idx_func(*this), - m_drtn(0), - m_stp(0), - m_wtg(0), - m_mon(0), - m_idx(0), - m_tk00(0), - m_wpt(0), - m_rdy(0), - m_dskchg(0), - m_drive_id(0), - m_active(0), - m_config(nullptr), - m_flags(0), - m_max_track(0), - m_num_sides(0), - m_current_track(0), - m_index_timer(nullptr), - m_index_pulse_callback(nullptr), - m_rpm(0.0f), - m_id_index(0), - m_controller(nullptr), - m_floppy(nullptr), - m_track(0), - m_load_proc(nullptr), - m_unload_proc(nullptr), - m_floppy_drive_type(0) + : legacy_floppy_image_device(mconfig, LEGACY_FLOPPY, tag, owner, clock) { - memset(&m_extension_list,0,sizeof(m_extension_list)); } -legacy_floppy_image_device::legacy_floppy_image_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), +legacy_floppy_image_device::legacy_floppy_image_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock), device_image_interface(mconfig, *this), m_out_idx_func(*this), m_drtn(0), diff --git a/src/devices/imagedev/flopdrv.h b/src/devices/imagedev/flopdrv.h index ca9f469edb6..da4eb864900 100644 --- a/src/devices/imagedev/flopdrv.h +++ b/src/devices/imagedev/flopdrv.h @@ -3,8 +3,10 @@ /* flopdrv provides simple emulation of a disc drive */ /* the 8271, upd765 and wd179x use this */ -#ifndef __FLOPDRV_H__ -#define __FLOPDRV_H__ +#ifndef MAME_DEVICES_IMAGEDV_FLOPDRV_H +#define MAME_DEVICES_IMAGEDV_FLOPDRV_H + +#pragma once #include "formats/flopimg.h" #include "softlist_dev.h" @@ -94,7 +96,6 @@ class legacy_floppy_image_device : public device_t, public: // construction/destruction legacy_floppy_image_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - legacy_floppy_image_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); ~legacy_floppy_image_device(); static void static_set_floppy_config(device_t &device, const floppy_interface *config) { downcast(device).m_config = config; } @@ -167,6 +168,8 @@ private: TIMER_CALLBACK_MEMBER( set_wpt ); protected: + legacy_floppy_image_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device overrides virtual void device_config_complete() override; virtual void device_start() override; @@ -224,7 +227,7 @@ protected: }; // device type definition -extern const device_type LEGACY_FLOPPY; +DECLARE_DEVICE_TYPE(LEGACY_FLOPPY, legacy_floppy_image_device) @@ -267,4 +270,4 @@ int floppy_get_count(running_machine &machine); MCFG_DEVICE_ADD(FLOPPY_1, LEGACY_FLOPPY, 0) \ MCFG_LEGACY_FLOPPY_CONFIG(_config) -#endif /* __FLOPDRV_H__ */ +#endif // MAME_DEVICES_IMAGEDV_FLOPDRV_H diff --git a/src/devices/imagedev/floppy.cpp b/src/devices/imagedev/floppy.cpp index 09c9d89429e..cacd4b6bda5 100644 --- a/src/devices/imagedev/floppy.cpp +++ b/src/devices/imagedev/floppy.cpp @@ -26,98 +26,94 @@ #define FLOPSND_TAG "floppysound" // device type definition -const device_type FLOPPY_CONNECTOR = device_creator; +DEFINE_DEVICE_TYPE(FLOPPY_CONNECTOR, floppy_connector, "floppy_connector", "Floppy drive connector abstraction") // generic 3" drives -const device_type FLOPPY_3_SSDD = device_creator; -const device_type FLOPPY_3_DSDD = device_creator; +DEFINE_DEVICE_TYPE(FLOPPY_3_SSDD, floppy_3_ssdd, "floppy_3_ssdd", "3\" single-sided floppy drive") +DEFINE_DEVICE_TYPE(FLOPPY_3_DSDD, floppy_3_dsdd, "floppy_3_dsdd", "3\" double-sided floppy drive") // generic 3.5" drives -const device_type FLOPPY_35_SSDD = device_creator; -const device_type FLOPPY_35_DD = device_creator; -const device_type FLOPPY_35_HD = device_creator; -const device_type FLOPPY_35_ED = device_creator; +DEFINE_DEVICE_TYPE(FLOPPY_35_SSDD, floppy_35_ssdd, "floppy_35_ssdd", "3.5\" single-sided double density floppy drive") +DEFINE_DEVICE_TYPE(FLOPPY_35_DD, floppy_35_dd, "floppy_35_dd", "3.5\" double density floppy drive") +DEFINE_DEVICE_TYPE(FLOPPY_35_HD, floppy_35_hd, "floppy_35_hd", "3.5\" high density floppy drive") +DEFINE_DEVICE_TYPE(FLOPPY_35_ED, floppy_35_ed, "floppy_35_ed", "3.5\" extended density floppy drive") // generic 5.25" drives -const device_type FLOPPY_525_SSSD_35T = device_creator; -const device_type FLOPPY_525_SD_35T = device_creator; -const device_type FLOPPY_525_SSSD = device_creator; -const device_type FLOPPY_525_SD = device_creator; -const device_type FLOPPY_525_SSDD = device_creator; -const device_type FLOPPY_525_DD = device_creator; -const device_type FLOPPY_525_SSQD = device_creator; -const device_type FLOPPY_525_QD = device_creator; -const device_type FLOPPY_525_HD = device_creator; +DEFINE_DEVICE_TYPE(FLOPPY_525_SSSD_35T, floppy_525_sssd_35t, "floppy_525_sssd_35t", "5.25\" single-sided single density 35-track floppy drive") +DEFINE_DEVICE_TYPE(FLOPPY_525_SD_35T, floppy_525_sd_35t, "floppy_525_sd_35t", "5.25\" double-sided single density 35-track floppy drive") +DEFINE_DEVICE_TYPE(FLOPPY_525_SSSD, floppy_525_sssd, "floppy_525_sssd", "5.25\" single-sided single density floppy drive") +DEFINE_DEVICE_TYPE(FLOPPY_525_SD, floppy_525_sd, "floppy_525_sd", "5.25\" single density floppy drive") +DEFINE_DEVICE_TYPE(FLOPPY_525_SSDD, floppy_525_ssdd, "floppy_525_ssdd", "5.25\" single-sided double density floppy drive") +DEFINE_DEVICE_TYPE(FLOPPY_525_DD, floppy_525_dd, "floppy_525_dd", "5.25\" double density floppy drive") +DEFINE_DEVICE_TYPE(FLOPPY_525_SSQD, floppy_525_ssqd, "floppy_525_ssqd", "5.25\" single-sided quad density floppy drive") +DEFINE_DEVICE_TYPE(FLOPPY_525_QD, floppy_525_qd, "floppy_525_qd", "5.25\" quad density floppy drive") +DEFINE_DEVICE_TYPE(FLOPPY_525_HD, floppy_525_hd, "floppy_525_hd", "5.25\" high density floppy drive") // generic 8" drives -const device_type FLOPPY_8_SSSD = device_creator; -const device_type FLOPPY_8_DSSD = device_creator; -const device_type FLOPPY_8_SSDD = device_creator; -const device_type FLOPPY_8_DSDD = device_creator; +DEFINE_DEVICE_TYPE(FLOPPY_8_SSSD, floppy_8_sssd, "floppy_8_sssd", "8\" single-sided single density floppy drive") +DEFINE_DEVICE_TYPE(FLOPPY_8_DSSD, floppy_8_dssd, "floppy_8_dssd", "8\" double-sided single density floppy drive") +DEFINE_DEVICE_TYPE(FLOPPY_8_SSDD, floppy_8_ssdd, "floppy_8_ssdd", "8\" single-sided double density floppy drive") +DEFINE_DEVICE_TYPE(FLOPPY_8_DSDD, floppy_8_dsdd, "floppy_8_dsdd", "8\" double-sided double density floppy drive") // Epson 3.5" drives #if 0 -const device_type EPSON_SMD_110 = device_creator; -const device_type EPSON_SMD_120 = device_creator; -const device_type EPSON_SMD_125 = device_creator; -const device_type EPSON_SMD_130 = device_creator; -const device_type EPSON_SMD_140 = device_creator; -const device_type EPSON_SMD_150 = device_creator; -const device_type EPSON_SMD_160 = device_creator; +DEFINE_DEVICE_TYPE(EPSON_SMD_110, epson_smd_110, "epson_smd_110", "EPSON SMD-110 Floppy Disk Drive") +DEFINE_DEVICE_TYPE(EPSON_SMD_120, epson_smd_120, "epson_smd_120", "EPSON SMD-120 Floppy Disk Drive") +DEFINE_DEVICE_TYPE(EPSON_SMD_125, epson_smd_125, "epson_smd_125", "EPSON SMD-125 Floppy Disk Drive") +DEFINE_DEVICE_TYPE(EPSON_SMD_130, epson_smd_130, "epson_smd_130", "EPSON SMD-130 Floppy Disk Drive") +DEFINE_DEVICE_TYPE(EPSON_SMD_140, epson_smd_140, "epson_smd_140", "EPSON SMD-140 Floppy Disk Drive") +DEFINE_DEVICE_TYPE(EPSON_SMD_150, epson_smd_150, "epson_smd_150", "EPSON SMD-150 Floppy Disk Drive") +DEFINE_DEVICE_TYPE(EPSON_SMD_160, epson_smd_160, "epson_smd_160", "EPSON SMD-160 Floppy Disk Drive") #endif -const device_type EPSON_SMD_165 = device_creator; +DEFINE_DEVICE_TYPE(EPSON_SMD_165, epson_smd_165, "epson_smd_165", "EPSON SMD-165 Floppy Disk Drive") #if 0 -const device_type EPSON_SMD_170 = device_creator; -const device_type EPSON_SMD_180 = device_creator; -const device_type EPSON_SMD_240L = device_creator; -const device_type EPSON_SMD_280HL = device_creator; -const device_type EPSON_SMD_440L = device_creator; -const device_type EPSON_SMD_449L = device_creator; -const device_type EPSON_SMD_480LM = device_creator; -const device_type EPSON_SMD_489M = device_creator; +DEFINE_DEVICE_TYPE(EPSON_SMD_170, epson_smd_170, "epson_smd_170", "EPSON SMD-170 Floppy Disk Drive") +DEFINE_DEVICE_TYPE(EPSON_SMD_180, epson_smd_180, "epson_smd_180", "EPSON SMD-180 Floppy Disk Drive") +DEFINE_DEVICE_TYPE(EPSON_SMD_240L, epson_smd_240l, "epson_smd_240l", "EPSON SMD-240L Floppy Disk Drive") +DEFINE_DEVICE_TYPE(EPSON_SMD_280HL, epson_smd_280hl, "epson_smd_280hl", "EPSON SMD-280HL Floppy Disk Drive") +DEFINE_DEVICE_TYPE(EPSON_SMD_440L, epson_smd_440l, "epson_smd_440l", "EPSON SMD-440L Floppy Disk Drive") +DEFINE_DEVICE_TYPE(EPSON_SMD_449L, epson_smd_449l, "epson_smd_449l", "EPSON SMD-449L Floppy Disk Drive") +DEFINE_DEVICE_TYPE(EPSON_SMD_480LM, epson_smd_480lm, "epson_smd_480lm", "EPSON SMD-480LM Floppy Disk Drive") +DEFINE_DEVICE_TYPE(EPSON_SMD_489M, epson_smd_489m, "epson_smd_489m", "EPSON SMD-489M Floppy Disk Drive") #endif // Epson 5.25" drives #if 0 -const device_type EPSON_SD_311 = device_creator; +DEFINE_DEVICE_TYPE(EPSON_SD_311, epson_sd_311, "epson_sd_311", "EPSON SD-311 Mini-Floppy Disk Drive") #endif -const device_type EPSON_SD_320 = device_creator; -const device_type EPSON_SD_321 = device_creator; +DEFINE_DEVICE_TYPE(EPSON_SD_320, epson_sd_320, "epson_sd_320", "EPSON SD-320 Mini-Floppy Disk Drive") +DEFINE_DEVICE_TYPE(EPSON_SD_321, epson_sd_321, "epson_sd_321", "EPSON SD-321 Mini-Floppy Disk Drive") #if 0 -const device_type EPSON_SD_521L = device_creator; -const device_type EPSON_SD_525 = device_creator; -const device_type EPSON_SD_543 = device_creator; -const device_type EPSON_SD_545 = device_creator; -const device_type EPSON_SD_560 = device_creator; -const device_type EPSON_SD_580L = device_creator; -const device_type EPSON_SD_581L = device_creator; -const device_type EPSON_SD_621L = device_creator; -const device_type EPSON_SD_680L = device_creator; +DEFINE_DEVICE_TYPE(EPSON_SD_521L, epson_sd_531l, "epson_sd_531l", "EPSON SD-531L Mini-Floppy Disk Drive") +DEFINE_DEVICE_TYPE(EPSON_SD_525, epson_sd_525, "epson_sd_525", "EPSON SD-525 Mini-Floppy Disk Drive") +DEFINE_DEVICE_TYPE(EPSON_SD_543, epson_sd_543, "epson_sd_543", "EPSON SD-543 Mini-Floppy Disk Drive") +DEFINE_DEVICE_TYPE(EPSON_SD_545, epson_sd_545, "epson_sd_545", "EPSON SD-545 Mini-Floppy Disk Drive") +DEFINE_DEVICE_TYPE(EPSON_SD_560, epson_sd_560, "epson_sd_560", "EPSON SD-560 Mini-Floppy Disk Drive") +DEFINE_DEVICE_TYPE(EPSON_SD_580L, epson_sd_580l, "epson_sd_580l", "EPSON SD-580L Mini-Floppy Disk Drive") +DEFINE_DEVICE_TYPE(EPSON_SD_581L, epson_sd_581l, "epson_sd_581l", "EPSON SD-581L Mini-Floppy Disk Drive") +DEFINE_DEVICE_TYPE(EPSON_SD_621L, epson_sd_621l, "epson_sd_621l", "EPSON SD-621L Mini-Floppy Disk Drive") +DEFINE_DEVICE_TYPE(EPSON_SD_680L, epson_sd_680l, "epson_sd_680l", "EPSON SD-680L Mini-Floppy Disk Drive") #endif // Sony 3.5" drives -const device_type SONY_OA_D31V = device_creator; -const device_type SONY_OA_D32W = device_creator; -const device_type SONY_OA_D32V = device_creator; +DEFINE_DEVICE_TYPE(SONY_OA_D31V, sony_oa_d31v, "sony_oa_d31v", "Sony OA-D31V Micro Floppydisk Drive") +DEFINE_DEVICE_TYPE(SONY_OA_D32W, sony_oa_d32w, "sony_oa_d32w", "Sony OA-D32W Micro Floppydisk Drive") +DEFINE_DEVICE_TYPE(SONY_OA_D32V, sony_oa_d32v, "sony_oa_d32v", "Sony OA-D32V Micro Floppydisk Drive") // TEAC 5.25" drives #if 0 -const device_type TEAC_FD_55A = device_creator; -const device_type TEAC_FD_55B = device_creator; +DEFINE_DEVICE_TYPE(TEAC_FD_55A, teac_fd_55a, "teac_fd_55a", "TEAC FD-55A FDD") +DEFINE_DEVICE_TYPE(TEAC_FD_55B, teac_fd_55b, "teac_fd_55b", "TEAC FD-55B FDD") #endif -const device_type TEAC_FD_55E = device_creator; -const device_type TEAC_FD_55F = device_creator; -const device_type TEAC_FD_55G = device_creator; +DEFINE_DEVICE_TYPE(TEAC_FD_55E, teac_fd_55e, "teac_fd_55e", "TEAC FD-55E FDD") +DEFINE_DEVICE_TYPE(TEAC_FD_55F, teac_fd_55f, "teac_fd_55f", "TEAC FD-55F FDD") +DEFINE_DEVICE_TYPE(TEAC_FD_55G, teac_fd_55g, "teac_fd_55g", "TEAC FD-55G FDD") // ALPS 5.25" drives -const device_type ALPS_3255190x = device_creator; +DEFINE_DEVICE_TYPE(ALPS_3255190X, alps_3255190x, "alps_3255190x", "ALPS 32551901/32551902 Floppy Drive") // IBM 8" drives -const device_type IBM_6360 = device_creator; - - -template class device_finder; -template class device_finder; +DEFINE_DEVICE_TYPE(IBM_6360, ibm_6360, "ibm_6360", "IBM 6360 8\" single-sided single density floppy drive") const floppy_format_type floppy_image_device::default_floppy_formats[] = { @@ -134,7 +130,7 @@ const floppy_format_type floppy_image_device::default_floppy_formats[] = { }; floppy_connector::floppy_connector(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, FLOPPY_CONNECTOR, "Floppy drive connector abstraction", tag, owner, clock, "floppy_connector", __FILE__), + device_t(mconfig, FLOPPY_CONNECTOR, tag, owner, clock), device_slot_interface(mconfig, *this), formats(nullptr), m_enable_sound(false) @@ -173,8 +169,8 @@ floppy_image_device *floppy_connector::get_device() // floppy_image_device - constructor //------------------------------------------------- -floppy_image_device::floppy_image_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), +floppy_image_device::floppy_image_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock), device_image_interface(mconfig, *this), device_slot_card_interface(mconfig, *this), input_format(nullptr), @@ -1044,7 +1040,7 @@ static const char *const floppy525_sample_names[] = }; floppy_sound_device::floppy_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : samples_device(mconfig, FLOPPYSOUND, "Floppy sound", tag, owner, clock, "flopsnd", __FILE__), + : samples_device(mconfig, FLOPPYSOUND, tag, owner, clock), m_sound(nullptr), m_step_base(0), m_spin_samples(0), @@ -1352,7 +1348,7 @@ machine_config_constructor floppy_image_device::device_mconfig_additions() const return MACHINE_CONFIG_NAME( floppy_img ); } -const device_type FLOPPYSOUND = device_creator; +DEFINE_DEVICE_TYPE(FLOPPYSOUND, floppy_sound_device, "flopsnd", "Floppy sound") //************************************************************************** @@ -1364,7 +1360,7 @@ const device_type FLOPPYSOUND = device_creator; //------------------------------------------------- floppy_3_ssdd::floppy_3_ssdd(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - floppy_image_device(mconfig, FLOPPY_3_SSDD, "3\" single sided floppy drive", tag, owner, clock, "floppy_3_ssdd", __FILE__) + floppy_image_device(mconfig, FLOPPY_3_SSDD, tag, owner, clock) { } @@ -1391,7 +1387,7 @@ void floppy_3_ssdd::handled_variants(uint32_t *variants, int &var_count) const //------------------------------------------------- floppy_3_dsdd::floppy_3_dsdd(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - floppy_image_device(mconfig, FLOPPY_3_DSDD, "3\" double sided floppy drive", tag, owner, clock, "floppy_3_dsdd", __FILE__) + floppy_image_device(mconfig, FLOPPY_3_DSDD, tag, owner, clock) { } @@ -1419,7 +1415,7 @@ void floppy_3_dsdd::handled_variants(uint32_t *variants, int &var_count) const //------------------------------------------------- floppy_35_ssdd::floppy_35_ssdd(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - floppy_image_device(mconfig, FLOPPY_35_SSDD, "3.5\" single-sided double density floppy drive", tag, owner, clock, "floppy_35_ssdd", __FILE__) + floppy_image_device(mconfig, FLOPPY_35_SSDD, tag, owner, clock) { } @@ -1447,7 +1443,7 @@ void floppy_35_ssdd::handled_variants(uint32_t *variants, int &var_count) const //------------------------------------------------- floppy_35_dd::floppy_35_dd(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - floppy_image_device(mconfig, FLOPPY_35_DD, "3.5\" double density floppy drive", tag, owner, clock, "floppy_35_dd", __FILE__) + floppy_image_device(mconfig, FLOPPY_35_DD, tag, owner, clock) { } @@ -1476,7 +1472,7 @@ void floppy_35_dd::handled_variants(uint32_t *variants, int &var_count) const //------------------------------------------------- floppy_35_hd::floppy_35_hd(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - floppy_image_device(mconfig, FLOPPY_35_HD, "3.5\" high density floppy drive", tag, owner, clock, "floppy_35_hd", __FILE__) + floppy_image_device(mconfig, FLOPPY_35_HD, tag, owner, clock) { } @@ -1506,7 +1502,7 @@ void floppy_35_hd::handled_variants(uint32_t *variants, int &var_count) const //------------------------------------------------- floppy_35_ed::floppy_35_ed(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - floppy_image_device(mconfig, FLOPPY_35_ED, "3.5\" extended density floppy drive", tag, owner, clock, "floppy_35_ed", __FILE__) + floppy_image_device(mconfig, FLOPPY_35_ED, tag, owner, clock) { } @@ -1537,7 +1533,7 @@ void floppy_35_ed::handled_variants(uint32_t *variants, int &var_count) const //------------------------------------------------- floppy_525_sssd_35t::floppy_525_sssd_35t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - floppy_image_device(mconfig, FLOPPY_525_SSSD_35T, "5.25\" single-sided single density 35-track floppy drive", tag, owner, clock, "floppy_525_sssd_35t", __FILE__) + floppy_image_device(mconfig, FLOPPY_525_SSSD_35T, tag, owner, clock) { } @@ -1564,7 +1560,7 @@ void floppy_525_sssd_35t::handled_variants(uint32_t *variants, int &var_count) c //------------------------------------------------- floppy_525_sd_35t::floppy_525_sd_35t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - floppy_image_device(mconfig, FLOPPY_525_SD_35T, "5.25\" single density 35-track floppy drive", tag, owner, clock, "floppy_525_sd_35t", __FILE__) + floppy_image_device(mconfig, FLOPPY_525_SD_35T, tag, owner, clock) { } @@ -1591,7 +1587,7 @@ void floppy_525_sd_35t::handled_variants(uint32_t *variants, int &var_count) con //------------------------------------------------- floppy_525_sssd::floppy_525_sssd(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - floppy_image_device(mconfig, FLOPPY_525_SSSD, "5.25\" single-sided single density floppy drive", tag, owner, clock, "floppy_525_sssd", __FILE__) + floppy_image_device(mconfig, FLOPPY_525_SSSD, tag, owner, clock) { } @@ -1618,7 +1614,7 @@ void floppy_525_sssd::handled_variants(uint32_t *variants, int &var_count) const //------------------------------------------------- floppy_525_sd::floppy_525_sd(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - floppy_image_device(mconfig, FLOPPY_525_SD, "5.25\" single density floppy drive", tag, owner, clock, "floppy_525_sd", __FILE__) + floppy_image_device(mconfig, FLOPPY_525_SD, tag, owner, clock) { } @@ -1645,7 +1641,7 @@ void floppy_525_sd::handled_variants(uint32_t *variants, int &var_count) const //------------------------------------------------- floppy_525_ssdd::floppy_525_ssdd(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - floppy_image_device(mconfig, FLOPPY_525_SSDD, "5.25\" single-sided double density floppy drive", tag, owner, clock, "floppy_525_ssdd", __FILE__) + floppy_image_device(mconfig, FLOPPY_525_SSDD, tag, owner, clock) { } @@ -1673,7 +1669,7 @@ void floppy_525_ssdd::handled_variants(uint32_t *variants, int &var_count) const //------------------------------------------------- floppy_525_dd::floppy_525_dd(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - floppy_image_device(mconfig, FLOPPY_525_DD, "5.25\" double density floppy drive", tag, owner, clock, "floppy_525_dd", __FILE__) + floppy_image_device(mconfig, FLOPPY_525_DD, tag, owner, clock) { } @@ -1702,7 +1698,7 @@ void floppy_525_dd::handled_variants(uint32_t *variants, int &var_count) const //------------------------------------------------- floppy_525_ssqd::floppy_525_ssqd(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - floppy_image_device(mconfig, FLOPPY_525_SSQD, "5.25\" single-sided quad density floppy drive", tag, owner, clock, "floppy_525_ssqd", __FILE__) + floppy_image_device(mconfig, FLOPPY_525_SSQD, tag, owner, clock) { } @@ -1731,7 +1727,7 @@ void floppy_525_ssqd::handled_variants(uint32_t *variants, int &var_count) const //------------------------------------------------- floppy_525_qd::floppy_525_qd(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - floppy_image_device(mconfig, FLOPPY_525_QD, "5.25\" quad density floppy drive", tag, owner, clock, "floppy_525_qd", __FILE__) + floppy_image_device(mconfig, FLOPPY_525_QD, tag, owner, clock) { } @@ -1763,7 +1759,7 @@ void floppy_525_qd::handled_variants(uint32_t *variants, int &var_count) const //------------------------------------------------- floppy_525_hd::floppy_525_hd(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - floppy_image_device(mconfig, FLOPPY_525_HD, "5.25\" high density floppy drive", tag, owner, clock, "floppy_525_hd", __FILE__) + floppy_image_device(mconfig, FLOPPY_525_HD, tag, owner, clock) { } @@ -1795,7 +1791,7 @@ void floppy_525_hd::handled_variants(uint32_t *variants, int &var_count) const //------------------------------------------------- floppy_8_sssd::floppy_8_sssd(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - floppy_image_device(mconfig, FLOPPY_8_SSSD, "8\" single density single sided floppy drive", tag, owner, clock, "floppy_8_sssd", __FILE__) + floppy_image_device(mconfig, FLOPPY_8_SSSD, tag, owner, clock) { } @@ -1823,7 +1819,7 @@ void floppy_8_sssd::handled_variants(uint32_t *variants, int &var_count) const //------------------------------------------------- floppy_8_dssd::floppy_8_dssd(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - floppy_image_device(mconfig, FLOPPY_8_DSSD, "8\" single density double sided floppy drive", tag, owner, clock, "floppy_8_dssd", __FILE__) + floppy_image_device(mconfig, FLOPPY_8_DSSD, tag, owner, clock) { } @@ -1852,7 +1848,7 @@ void floppy_8_dssd::handled_variants(uint32_t *variants, int &var_count) const //------------------------------------------------- floppy_8_ssdd::floppy_8_ssdd(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - floppy_image_device(mconfig, FLOPPY_8_SSDD, "8\" double density single sided floppy drive", tag, owner, clock, "floppy_8_ssdd", __FILE__) + floppy_image_device(mconfig, FLOPPY_8_SSDD, tag, owner, clock) { } @@ -1881,7 +1877,7 @@ void floppy_8_ssdd::handled_variants(uint32_t *variants, int &var_count) const //------------------------------------------------- floppy_8_dsdd::floppy_8_dsdd(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - floppy_image_device(mconfig, FLOPPY_8_DSDD, "8\" double density double sided floppy drive", tag, owner, clock, "floppy_8_dsdd", __FILE__) + floppy_image_device(mconfig, FLOPPY_8_DSDD, tag, owner, clock) { } @@ -1922,7 +1918,7 @@ void floppy_8_dsdd::handled_variants(uint32_t *variants, int &var_count) const //------------------------------------------------- epson_smd_165::epson_smd_165(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - floppy_image_device(mconfig, EPSON_SMD_165, "EPSON SMD-165 Floppy Disk Drive", tag, owner, clock, "epson_smd_165", __FILE__) + floppy_image_device(mconfig, EPSON_SMD_165, tag, owner, clock) { } @@ -1973,7 +1969,7 @@ void epson_smd_165::handled_variants(uint32_t *variants, int &var_count) const //------------------------------------------------- epson_sd_320::epson_sd_320(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - floppy_image_device(mconfig, EPSON_SD_320, "EPSON SD-320 Mini-Floppy Disk Drive", tag, owner, clock, "epson_sd_320", __FILE__) + floppy_image_device(mconfig, EPSON_SD_320, tag, owner, clock) { } @@ -2005,7 +2001,7 @@ void epson_sd_320::handled_variants(uint32_t *variants, int &var_count) const //------------------------------------------------- epson_sd_321::epson_sd_321(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - floppy_image_device(mconfig, EPSON_SD_321, "EPSON SD-321 Mini-Floppy Disk Drive", tag, owner, clock, "epson_sd_321", __FILE__) + floppy_image_device(mconfig, EPSON_SD_321, tag, owner, clock) { } @@ -2040,7 +2036,7 @@ void epson_sd_321::handled_variants(uint32_t *variants, int &var_count) const //------------------------------------------------- sony_oa_d31v::sony_oa_d31v(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - floppy_image_device(mconfig, SONY_OA_D31V, "Sony OA-D31V Micro Floppydisk Drive", tag, owner, clock, "sony_oa_d31v", __FILE__) + floppy_image_device(mconfig, SONY_OA_D31V, tag, owner, clock) { } @@ -2076,7 +2072,7 @@ void sony_oa_d31v::handled_variants(uint32_t *variants, int &var_count) const //------------------------------------------------- sony_oa_d32w::sony_oa_d32w(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - floppy_image_device(mconfig, SONY_OA_D32W, "Sony OA-D32W Micro Floppydisk Drive", tag, owner, clock, "sony_oa_d32w", __FILE__) + floppy_image_device(mconfig, SONY_OA_D32W, tag, owner, clock) { } @@ -2113,7 +2109,7 @@ void sony_oa_d32w::handled_variants(uint32_t *variants, int &var_count) const //------------------------------------------------- sony_oa_d32v::sony_oa_d32v(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - floppy_image_device(mconfig, SONY_OA_D32V, "Sony OA-D32V Micro Floppydisk Drive", tag, owner, clock, "sony_oa_d32v", __FILE__) + floppy_image_device(mconfig, SONY_OA_D32V, tag, owner, clock) { } @@ -2148,7 +2144,7 @@ void sony_oa_d32v::handled_variants(uint32_t *variants, int &var_count) const //------------------------------------------------- teac_fd_55e::teac_fd_55e(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - floppy_image_device(mconfig, TEAC_FD_55E, "TEAC FD-55E FDD", tag, owner, clock, "teac_fd_55e", __FILE__) + floppy_image_device(mconfig, TEAC_FD_55E, tag, owner, clock) { } @@ -2183,7 +2179,7 @@ void teac_fd_55e::handled_variants(uint32_t *variants, int &var_count) const //------------------------------------------------- teac_fd_55f::teac_fd_55f(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - floppy_image_device(mconfig, TEAC_FD_55F, "TEAC FD-55F FDD", tag, owner, clock, "teac_fd_55f", __FILE__) + floppy_image_device(mconfig, TEAC_FD_55F, tag, owner, clock) { } @@ -2221,7 +2217,7 @@ void teac_fd_55f::handled_variants(uint32_t *variants, int &var_count) const //------------------------------------------------- teac_fd_55g::teac_fd_55g(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - floppy_image_device(mconfig, TEAC_FD_55G, "TEAC FD-55G FDD", tag, owner, clock, "teac_fd_55g", __FILE__) + floppy_image_device(mconfig, TEAC_FD_55G, tag, owner, clock) { } @@ -2255,7 +2251,7 @@ void teac_fd_55g::handled_variants(uint32_t *variants, int &var_count) const //------------------------------------------------- alps_3255190x::alps_3255190x(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - floppy_image_device(mconfig, ALPS_3255190x, "ALPS 32551901/32551902 Floppy Drive", tag, owner, clock, "alps_3255190x", __FILE__) + floppy_image_device(mconfig, ALPS_3255190X, tag, owner, clock) { } @@ -2283,7 +2279,7 @@ void alps_3255190x::handled_variants(uint32_t *variants, int &var_count) const //------------------------------------------------- ibm_6360::ibm_6360(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - floppy_image_device(mconfig, IBM_6360, "IBM 6360 8\" single density single sided floppy drive", tag, owner, clock, "ibm_6360", __FILE__) + floppy_image_device(mconfig, IBM_6360, tag, owner, clock) { } diff --git a/src/devices/imagedev/floppy.h b/src/devices/imagedev/floppy.h index 8df3ed191d7..bc84ad3ab5e 100644 --- a/src/devices/imagedev/floppy.h +++ b/src/devices/imagedev/floppy.h @@ -6,8 +6,10 @@ *********************************************************************/ -#ifndef FLOPPY_H -#define FLOPPY_H +#ifndef MAME_DEVICES_IMAGEDEV_FLOPPY_H +#define MAME_DEVICES_IMAGEDEV_FLOPPY_H + +#pragma once #include "formats/flopimg.h" #include "formats/d88_dsk.h" @@ -71,7 +73,6 @@ public: typedef delegate wpt_cb; // construction/destruction - floppy_image_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); virtual ~floppy_image_device(); virtual void handled_variants(uint32_t *variants, int &var_count) const = 0; @@ -141,6 +142,8 @@ public: void enable_sound(bool doit) { m_make_sound = doit; } protected: + floppy_image_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -207,49 +210,50 @@ protected: floppy_sound_device* m_sound_out; }; -#define DECLARE_FLOPPY_IMAGE_DEVICE(_name, _interface) \ - class _name : public floppy_image_device { \ +#define DECLARE_FLOPPY_IMAGE_DEVICE(Type, Name, Interface) \ + class Name : public floppy_image_device { \ public: \ - _name(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); \ - virtual ~_name(); \ + Name(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); \ + virtual ~Name(); \ virtual void handled_variants(uint32_t *variants, int &var_count) const override; \ - virtual const char *image_interface() const override { return _interface; } \ + virtual const char *image_interface() const override { return Interface; } \ protected: \ virtual void setup_characteristics() override; \ - }; - -DECLARE_FLOPPY_IMAGE_DEVICE(floppy_3_ssdd, "floppy_3") -DECLARE_FLOPPY_IMAGE_DEVICE(floppy_3_dsdd, "floppy_3") -DECLARE_FLOPPY_IMAGE_DEVICE(floppy_35_ssdd, "floppy_3_5") -DECLARE_FLOPPY_IMAGE_DEVICE(floppy_35_dd, "floppy_3_5") -DECLARE_FLOPPY_IMAGE_DEVICE(floppy_35_hd, "floppy_3_5") -DECLARE_FLOPPY_IMAGE_DEVICE(floppy_35_ed, "floppy_3_5") -DECLARE_FLOPPY_IMAGE_DEVICE(floppy_525_sssd_35t, "floppy_5_25") -DECLARE_FLOPPY_IMAGE_DEVICE(floppy_525_sd_35t, "floppy_5_25") -DECLARE_FLOPPY_IMAGE_DEVICE(floppy_525_sssd, "floppy_5_25") -DECLARE_FLOPPY_IMAGE_DEVICE(floppy_525_sd, "floppy_5_25") -DECLARE_FLOPPY_IMAGE_DEVICE(floppy_525_ssdd, "floppy_5_25") -DECLARE_FLOPPY_IMAGE_DEVICE(floppy_525_dd, "floppy_5_25") -DECLARE_FLOPPY_IMAGE_DEVICE(floppy_525_ssqd, "floppy_5_25") -DECLARE_FLOPPY_IMAGE_DEVICE(floppy_525_qd, "floppy_5_25") -DECLARE_FLOPPY_IMAGE_DEVICE(floppy_525_hd, "floppy_5_25") -DECLARE_FLOPPY_IMAGE_DEVICE(floppy_8_sssd, "floppy_8") -DECLARE_FLOPPY_IMAGE_DEVICE(floppy_8_dssd, "floppy_8") -DECLARE_FLOPPY_IMAGE_DEVICE(floppy_8_ssdd, "floppy_8") -DECLARE_FLOPPY_IMAGE_DEVICE(floppy_8_dsdd, "floppy_8") -DECLARE_FLOPPY_IMAGE_DEVICE(epson_smd_165, "floppy_3_5") -DECLARE_FLOPPY_IMAGE_DEVICE(epson_sd_320, "floppy_5_25") -DECLARE_FLOPPY_IMAGE_DEVICE(epson_sd_321, "floppy_5_25") -DECLARE_FLOPPY_IMAGE_DEVICE(sony_oa_d31v, "floppy_3_5") -DECLARE_FLOPPY_IMAGE_DEVICE(sony_oa_d32w, "floppy_3_5") -DECLARE_FLOPPY_IMAGE_DEVICE(sony_oa_d32v, "floppy_3_5") -DECLARE_FLOPPY_IMAGE_DEVICE(teac_fd_55e, "floppy_5_25") -DECLARE_FLOPPY_IMAGE_DEVICE(teac_fd_55f, "floppy_5_25") -DECLARE_FLOPPY_IMAGE_DEVICE(teac_fd_55g, "floppy_5_25") -DECLARE_FLOPPY_IMAGE_DEVICE(alps_3255190x, "floppy_5_25") -DECLARE_FLOPPY_IMAGE_DEVICE(ibm_6360, "floppy_8") - -extern const device_type FLOPPYSOUND; + }; \ + DECLARE_DEVICE_TYPE(Type, Name) + +DECLARE_FLOPPY_IMAGE_DEVICE(FLOPPY_3_SSDD, floppy_3_ssdd, "floppy_3") +DECLARE_FLOPPY_IMAGE_DEVICE(FLOPPY_3_DSDD, floppy_3_dsdd, "floppy_3") +DECLARE_FLOPPY_IMAGE_DEVICE(FLOPPY_35_SSDD, floppy_35_ssdd, "floppy_3_5") +DECLARE_FLOPPY_IMAGE_DEVICE(FLOPPY_35_DD, floppy_35_dd, "floppy_3_5") +DECLARE_FLOPPY_IMAGE_DEVICE(FLOPPY_35_HD, floppy_35_hd, "floppy_3_5") +DECLARE_FLOPPY_IMAGE_DEVICE(FLOPPY_35_ED, floppy_35_ed, "floppy_3_5") +DECLARE_FLOPPY_IMAGE_DEVICE(FLOPPY_525_SSSD_35T, floppy_525_sssd_35t, "floppy_5_25") +DECLARE_FLOPPY_IMAGE_DEVICE(FLOPPY_525_SD_35T, floppy_525_sd_35t, "floppy_5_25") +DECLARE_FLOPPY_IMAGE_DEVICE(FLOPPY_525_SSSD, floppy_525_sssd, "floppy_5_25") +DECLARE_FLOPPY_IMAGE_DEVICE(FLOPPY_525_SD, floppy_525_sd, "floppy_5_25") +DECLARE_FLOPPY_IMAGE_DEVICE(FLOPPY_525_SSDD, floppy_525_ssdd, "floppy_5_25") +DECLARE_FLOPPY_IMAGE_DEVICE(FLOPPY_525_DD, floppy_525_dd, "floppy_5_25") +DECLARE_FLOPPY_IMAGE_DEVICE(FLOPPY_525_SSQD, floppy_525_ssqd, "floppy_5_25") +DECLARE_FLOPPY_IMAGE_DEVICE(FLOPPY_525_QD, floppy_525_qd, "floppy_5_25") +DECLARE_FLOPPY_IMAGE_DEVICE(FLOPPY_525_HD, floppy_525_hd, "floppy_5_25") +DECLARE_FLOPPY_IMAGE_DEVICE(FLOPPY_8_SSSD, floppy_8_sssd, "floppy_8") +DECLARE_FLOPPY_IMAGE_DEVICE(FLOPPY_8_DSSD, floppy_8_dssd, "floppy_8") +DECLARE_FLOPPY_IMAGE_DEVICE(FLOPPY_8_SSDD, floppy_8_ssdd, "floppy_8") +DECLARE_FLOPPY_IMAGE_DEVICE(FLOPPY_8_DSDD, floppy_8_dsdd, "floppy_8") +DECLARE_FLOPPY_IMAGE_DEVICE(EPSON_SMD_165, epson_smd_165, "floppy_3_5") +DECLARE_FLOPPY_IMAGE_DEVICE(EPSON_SD_320, epson_sd_320, "floppy_5_25") +DECLARE_FLOPPY_IMAGE_DEVICE(EPSON_SD_321, epson_sd_321, "floppy_5_25") +DECLARE_FLOPPY_IMAGE_DEVICE(SONY_OA_D31V, sony_oa_d31v, "floppy_3_5") +DECLARE_FLOPPY_IMAGE_DEVICE(SONY_OA_D32W, sony_oa_d32w, "floppy_3_5") +DECLARE_FLOPPY_IMAGE_DEVICE(SONY_OA_D32V, sony_oa_d32v, "floppy_3_5") +DECLARE_FLOPPY_IMAGE_DEVICE(TEAC_FD_55E, teac_fd_55e, "floppy_5_25") +DECLARE_FLOPPY_IMAGE_DEVICE(TEAC_FD_55F, teac_fd_55f, "floppy_5_25") +DECLARE_FLOPPY_IMAGE_DEVICE(TEAC_FD_55G, teac_fd_55g, "floppy_5_25") +DECLARE_FLOPPY_IMAGE_DEVICE(ALPS_3255190X, alps_3255190x, "floppy_5_25") +DECLARE_FLOPPY_IMAGE_DEVICE(IBM_6360, ibm_6360, "floppy_8") + +DECLARE_DEVICE_TYPE(FLOPPYSOUND, floppy_sound_device) /* @@ -313,39 +317,9 @@ private: // device type definition -extern const device_type FLOPPY_CONNECTOR; -extern const device_type FLOPPY_3_SSDD; -extern const device_type FLOPPY_3_DSDD; -extern const device_type FLOPPY_35_SSDD; -extern const device_type FLOPPY_35_DD; -extern const device_type FLOPPY_35_HD; -extern const device_type FLOPPY_35_ED; -extern const device_type FLOPPY_525_SSSD_35T; -extern const device_type FLOPPY_525_SD_35T; -extern const device_type FLOPPY_525_SSSD; -extern const device_type FLOPPY_525_SD; -extern const device_type FLOPPY_525_SSDD; -extern const device_type FLOPPY_525_DD; -extern const device_type FLOPPY_525_SSQD; -extern const device_type FLOPPY_525_QD; -extern const device_type FLOPPY_525_HD; -extern const device_type FLOPPY_8_SSSD; -extern const device_type FLOPPY_8_DSSD; -extern const device_type FLOPPY_8_SSDD; -extern const device_type FLOPPY_8_DSDD; -extern const device_type EPSON_SMD_165; -extern const device_type EPSON_SD_320; -extern const device_type EPSON_SD_321; -extern const device_type SONY_OA_D31V; -extern const device_type SONY_OA_D32W; -extern const device_type SONY_OA_D32V; -extern const device_type TEAC_FD_55E; -extern const device_type TEAC_FD_55F; -extern const device_type TEAC_FD_55G; -extern const device_type ALPS_3255190x; -extern const device_type IBM_6360; +DECLARE_DEVICE_TYPE(FLOPPY_CONNECTOR, floppy_connector) extern template class device_finder; extern template class device_finder; -#endif /* FLOPPY_H */ +#endif // MAME_DEVICES_IMAGEDEV_FLOPPY_H diff --git a/src/devices/imagedev/harddriv.cpp b/src/devices/imagedev/harddriv.cpp index 44bba4268bf..490e0fe1bed 100644 --- a/src/devices/imagedev/harddriv.cpp +++ b/src/devices/imagedev/harddriv.cpp @@ -14,9 +14,10 @@ *********************************************************************/ #include "emu.h" +#include "harddriv.h" + #include "emuopts.h" #include "harddisk.h" -#include "harddriv.h" OPTION_GUIDE_START(hd_option_guide) @@ -32,28 +33,22 @@ static const char *hd_option_spec = // device type definition -const device_type HARDDISK = device_creator; +DEFINE_DEVICE_TYPE(HARDDISK, harddisk_image_device, "harddisk_image", "Harddisk") //------------------------------------------------- // harddisk_image_device - constructor //------------------------------------------------- harddisk_image_device::harddisk_image_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, HARDDISK, "Harddisk", tag, owner, clock, "harddisk_image", __FILE__), - device_image_interface(mconfig, *this), - m_chd(nullptr), - m_hard_disk_handle(nullptr), - m_device_image_load(device_image_load_delegate()), - m_device_image_unload(device_image_func_delegate()), - m_interface(nullptr) + : harddisk_image_device(mconfig, HARDDISK, tag, owner, clock) { } //------------------------------------------------- // harddisk_image_device - constructor for subclasses //------------------------------------------------- -harddisk_image_device::harddisk_image_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), +harddisk_image_device::harddisk_image_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock), device_image_interface(mconfig, *this), m_chd(nullptr), m_hard_disk_handle(nullptr), diff --git a/src/devices/imagedev/harddriv.h b/src/devices/imagedev/harddriv.h index 6347a43f624..bac33321cb6 100644 --- a/src/devices/imagedev/harddriv.h +++ b/src/devices/imagedev/harddriv.h @@ -8,8 +8,8 @@ *********************************************************************/ -#ifndef HARDDRIV_H -#define HARDDRIV_H +#ifndef MAME_DEVICES_IMAGEDEV_HARDDRIV_H +#define MAME_DEVICES_IMAGEDEV_HARDDRIV_H #include "harddisk.h" #include "softlist_dev.h" @@ -54,7 +54,7 @@ public: chd_file *get_chd_file(); protected: - harddisk_image_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); + harddisk_image_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); // device-level overrides virtual void device_config_complete() override; @@ -74,7 +74,7 @@ protected: }; // device type definition -extern const device_type HARDDISK; +DECLARE_DEVICE_TYPE(HARDDISK, harddisk_image_device) /*************************************************************************** DEVICE CONFIGURATION MACROS @@ -92,4 +92,4 @@ extern const device_type HARDDISK; #define MCFG_HARDDISK_INTERFACE(_interface) \ harddisk_image_device::static_set_interface(*device, _interface); -#endif /* HARDDRIV_H */ +#endif // MAME_DEVICES_IMAGEDEV_HARDDRIV_H diff --git a/src/devices/imagedev/mfmhd.cpp b/src/devices/imagedev/mfmhd.cpp index ba9d7e2a81d..6e95fcc9e64 100644 --- a/src/devices/imagedev/mfmhd.cpp +++ b/src/devices/imagedev/mfmhd.cpp @@ -307,8 +307,8 @@ std::string mfm_harddisk_device::tts(const attotime &t) return buf; } -mfm_harddisk_device::mfm_harddisk_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : harddisk_image_device(mconfig, type, name, tag, owner, clock, shortname, source), +mfm_harddisk_device::mfm_harddisk_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : harddisk_image_device(mconfig, type, tag, owner, clock), device_slot_card_interface(mconfig, *this), m_index_timer(nullptr), m_spinup_timer(nullptr), @@ -935,17 +935,17 @@ int mfm_harddisk_device::get_actual_heads() The generic HD takes any kind of CHD HD image and magically creates enough heads and cylinders. */ mfm_hd_generic_device::mfm_hd_generic_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) -: mfm_harddisk_device(mconfig, MFMHD_GENERIC, "Generic MFM hard disk", tag, owner, clock, "mfm_harddisk", __FILE__) +: mfm_harddisk_device(mconfig, MFMHD_GENERIC, tag, owner, clock) { } -const device_type MFMHD_GENERIC = device_creator; +DEFINE_DEVICE_TYPE(MFMHD_GENERIC, mfm_hd_generic_device, "mfm_harddisk", "Generic MFM hard disk") /* Various models. */ mfm_hd_st213_device::mfm_hd_st213_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) -: mfm_harddisk_device(mconfig, MFMHD_ST213, "Seagate ST-213 MFM hard disk", tag, owner, clock, "mfm_hd_st213", __FILE__) +: mfm_harddisk_device(mconfig, MFMHD_ST213, tag, owner, clock) { m_phys_cylinders = 670; m_max_cylinders = 615; // 0..614 @@ -955,10 +955,10 @@ mfm_hd_st213_device::mfm_hd_st213_device(const machine_config &mconfig, const ch m_maxseek_time = 150; } -const device_type MFMHD_ST213 = device_creator; +DEFINE_DEVICE_TYPE(MFMHD_ST213, mfm_hd_st213_device, "mfm_hd_st213", "Seagate ST-213 MFM hard disk") mfm_hd_st225_device::mfm_hd_st225_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) -: mfm_harddisk_device(mconfig, MFMHD_ST225, "Seagate ST-225 MFM hard disk", tag, owner, clock, "mfm_hd_st225", __FILE__) +: mfm_harddisk_device(mconfig, MFMHD_ST225, tag, owner, clock) { m_phys_cylinders = 670; m_max_cylinders = 615; @@ -968,10 +968,10 @@ mfm_hd_st225_device::mfm_hd_st225_device(const machine_config &mconfig, const ch m_maxseek_time = 150; } -const device_type MFMHD_ST225 = device_creator; +DEFINE_DEVICE_TYPE(MFMHD_ST225, mfm_hd_st225_device, "mfm_hd_st225", "Seagate ST-225 MFM hard disk") mfm_hd_st251_device::mfm_hd_st251_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) -: mfm_harddisk_device(mconfig, MFMHD_ST251, "Seagate ST-251 MFM hard disk", tag, owner, clock, "mfm_hd_st251", __FILE__) +: mfm_harddisk_device(mconfig, MFMHD_ST251, tag, owner, clock) { m_phys_cylinders = 821; m_max_cylinders = 820; @@ -981,7 +981,7 @@ mfm_hd_st251_device::mfm_hd_st251_device(const machine_config &mconfig, const ch m_maxseek_time = 70; } -const device_type MFMHD_ST251 = device_creator; +DEFINE_DEVICE_TYPE(MFMHD_ST251, mfm_hd_st251_device, "mfm_hd_st251", "Seagate ST-251 MFM hard disk") // =========================================================== // Track cache @@ -1178,7 +1178,7 @@ uint16_t* mfmhd_trackimage_cache::get_trackimage(int cylinder, int head) // ================================================================ mfm_harddisk_connector::mfm_harddisk_connector(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock): - device_t(mconfig, MFM_HD_CONNECTOR, "MFM hard disk connector", tag, owner, clock, "mfm_hd_connector", __FILE__), + device_t(mconfig, MFM_HD_CONNECTOR, tag, owner, clock), device_slot_interface(mconfig, *this), m_encoding(), m_spinupms(0), @@ -1222,4 +1222,4 @@ void mfm_harddisk_connector::device_config_complete() } } -const device_type MFM_HD_CONNECTOR = device_creator; +DEFINE_DEVICE_TYPE(MFM_HD_CONNECTOR, mfm_harddisk_connector, "mfm_hd_connector", "MFM hard disk connector") diff --git a/src/devices/imagedev/mfmhd.h b/src/devices/imagedev/mfmhd.h index e100a14f7d0..972d7bd4e75 100644 --- a/src/devices/imagedev/mfmhd.h +++ b/src/devices/imagedev/mfmhd.h @@ -11,8 +11,10 @@ *****************************************************************************/ -#ifndef __MFMHD__ -#define __MFMHD__ +#ifndef MAME_DEVICES_IMAGEDEV_MFMHD_H +#define MAME_DEVICES_IMAGEDEV_MFMHD_H + +#pragma once #include "imagedev/harddriv.h" #include "formats/mfm_hd.h" @@ -50,7 +52,6 @@ class mfm_harddisk_device : public harddisk_image_device, public device_slot_card_interface { public: - mfm_harddisk_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); ~mfm_harddisk_device(); typedef delegate index_pulse_cb; @@ -101,6 +102,8 @@ public: int get_actual_heads(); protected: + mfm_harddisk_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + void device_start() override; void device_stop() override; void device_reset() override; @@ -176,7 +179,7 @@ public: mfm_hd_generic_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; -extern const device_type MFMHD_GENERIC; +DECLARE_DEVICE_TYPE(MFMHD_GENERIC, mfm_hd_generic_device) class mfm_hd_st213_device : public mfm_harddisk_device { @@ -184,7 +187,7 @@ public: mfm_hd_st213_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; -extern const device_type MFMHD_ST213; +DECLARE_DEVICE_TYPE(MFMHD_ST213, mfm_hd_st213_device) class mfm_hd_st225_device : public mfm_harddisk_device { @@ -192,7 +195,7 @@ public: mfm_hd_st225_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; -extern const device_type MFMHD_ST225; +DECLARE_DEVICE_TYPE(MFMHD_ST225, mfm_hd_st225_device) class mfm_hd_st251_device : public mfm_harddisk_device { @@ -200,7 +203,7 @@ public: mfm_hd_st251_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; -extern const device_type MFMHD_ST251; +DECLARE_DEVICE_TYPE(MFMHD_ST251, mfm_hd_st251_device) /* Connector for a MFM hard disk. See also floppy.c */ @@ -226,7 +229,7 @@ private: mfmhd_image_format_t* m_format; }; -extern const device_type MFM_HD_CONNECTOR; +DECLARE_DEVICE_TYPE(MFM_HD_CONNECTOR, mfm_harddisk_connector) /* Add a harddisk connector. @@ -246,4 +249,4 @@ extern const device_type MFM_HD_CONNECTOR; static_cast(device)->configure(_enc, _spinupms, _cache, _format); -#endif +#endif // MAME_DEVICES_IMAGEDEV_MFMHD_H diff --git a/src/devices/imagedev/midiin.cpp b/src/devices/imagedev/midiin.cpp index de949f81881..e9301c76504 100644 --- a/src/devices/imagedev/midiin.cpp +++ b/src/devices/imagedev/midiin.cpp @@ -16,14 +16,14 @@ IMPLEMENTATION ***************************************************************************/ -const device_type MIDIIN = device_creator; +DEFINE_DEVICE_TYPE(MIDIIN, midiin_device, "midiin", "MIDI In image device") /*------------------------------------------------- ctor -------------------------------------------------*/ midiin_device::midiin_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MIDIIN, "MIDI In image device", tag, owner, clock, "midiin", __FILE__), + : device_t(mconfig, MIDIIN, tag, owner, clock), device_image_interface(mconfig, *this), device_serial_interface(mconfig, *this), m_midi(nullptr), diff --git a/src/devices/imagedev/midiin.h b/src/devices/imagedev/midiin.h index ed02b525dc4..581558bbe1b 100644 --- a/src/devices/imagedev/midiin.h +++ b/src/devices/imagedev/midiin.h @@ -8,8 +8,10 @@ *********************************************************************/ -#ifndef __MIDIIN_H__ -#define __MIDIIN_H__ +#ifndef MAME_DEVICES_IMAGEDEV_MIDIIN_H +#define MAME_DEVICES_IMAGEDEV_MIDIIN_H + +#pragma once #define MCFG_MIDIIN_INPUT_CB(_devcb) \ @@ -69,9 +71,9 @@ private: }; // device type definition -extern const device_type MIDIIN; +DECLARE_DEVICE_TYPE(MIDIIN, midiin_device) // device iterator typedef device_type_iterator midiin_device_iterator; -#endif /* __MIDIIN_H__ */ +#endif // MAME_DEVICES_IMAGEDEV_MIDIIN_H diff --git a/src/devices/imagedev/midiout.cpp b/src/devices/imagedev/midiout.cpp index 8acb6a540ec..6b05020e77b 100644 --- a/src/devices/imagedev/midiout.cpp +++ b/src/devices/imagedev/midiout.cpp @@ -16,14 +16,14 @@ IMPLEMENTATION ***************************************************************************/ -const device_type MIDIOUT = device_creator; +DEFINE_DEVICE_TYPE(MIDIOUT, midiout_device, "midiout", "MIDI Out image device") /*------------------------------------------------- ctor -------------------------------------------------*/ midiout_device::midiout_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MIDIOUT, "MIDI Out image device", tag, owner, clock, "midiout", __FILE__), + : device_t(mconfig, MIDIOUT, tag, owner, clock), device_image_interface(mconfig, *this), device_serial_interface(mconfig, *this), m_midi(nullptr) diff --git a/src/devices/imagedev/midiout.h b/src/devices/imagedev/midiout.h index d79f5247df4..8fa29f9d7a7 100644 --- a/src/devices/imagedev/midiout.h +++ b/src/devices/imagedev/midiout.h @@ -8,8 +8,8 @@ *********************************************************************/ -#ifndef __MIDIOUT_H__ -#define __MIDIOUT_H__ +#ifndef MAME_DEVICES_IMAGEDEV_MIDIOUT_H +#define MAME_DEVICES_IMAGEDEV_MIDIOUT_H /*************************************************************************** @@ -63,9 +63,9 @@ private: }; // device type definition -extern const device_type MIDIOUT; +DECLARE_DEVICE_TYPE(MIDIOUT, midiout_device) // device iterator typedef device_type_iterator midiout_device_iterator; -#endif /* __MIDIOUT_H__ */ +#endif // MAME_DEVICES_IMAGEDEV_MIDIOUT_H diff --git a/src/devices/imagedev/printer.cpp b/src/devices/imagedev/printer.cpp index f4ea99a7d3f..2eb187d843a 100644 --- a/src/devices/imagedev/printer.cpp +++ b/src/devices/imagedev/printer.cpp @@ -13,14 +13,14 @@ // device type definition -const device_type PRINTER = device_creator; +DEFINE_DEVICE_TYPE(PRINTER, printer_image_device, "printer_image", "Printer") //------------------------------------------------- // printer_image_device - constructor //------------------------------------------------- printer_image_device::printer_image_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, PRINTER, "Printer", tag, owner, clock, "printer_image", __FILE__), + device_t(mconfig, PRINTER, tag, owner, clock), device_image_interface(mconfig, *this), m_online_cb(*this) { diff --git a/src/devices/imagedev/printer.h b/src/devices/imagedev/printer.h index ae8ad93ae97..acf07296882 100644 --- a/src/devices/imagedev/printer.h +++ b/src/devices/imagedev/printer.h @@ -8,8 +8,10 @@ ****************************************************************************/ -#ifndef __PRINTER_H__ -#define __PRINTER_H__ +#ifndef MAME_DEVICES_IMAGEDEV_PRINTER_H +#define MAME_DEVICES_IMAGEDEV_PRINTER_H + +#pragma once #define MCFG_PRINTER_ONLINE_CB(_devcb) \ devcb = &printer_image_device::set_online_callback(*device, DEVCB_##_devcb); @@ -58,6 +60,6 @@ protected: // device type definition -extern const device_type PRINTER; +DECLARE_DEVICE_TYPE(PRINTER, printer_image_device) -#endif /* __PRINTER_H__ */ +#endif // MAME_DEVICES_IMAGEDEV_PRINTER_H diff --git a/src/devices/imagedev/snapquik.cpp b/src/devices/imagedev/snapquik.cpp index cc95783450d..0e24b9f81ba 100644 --- a/src/devices/imagedev/snapquik.cpp +++ b/src/devices/imagedev/snapquik.cpp @@ -12,25 +12,19 @@ #include "snapquik.h" // device type definition -const device_type SNAPSHOT = device_creator; +DEFINE_DEVICE_TYPE(SNAPSHOT, snapshot_image_device, "snapsot_image", "Snapshot") //------------------------------------------------- // snapshot_image_device - constructor //------------------------------------------------- snapshot_image_device::snapshot_image_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, SNAPSHOT, "Snapshot", tag, owner, clock, "snapshot_image", __FILE__), - device_image_interface(mconfig, *this), - m_file_extensions(nullptr), - m_interface(nullptr), - m_delay_seconds(0), - m_delay_attoseconds(0), - m_timer(nullptr) + : snapshot_image_device(mconfig, SNAPSHOT, tag, owner, clock) { } -snapshot_image_device::snapshot_image_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), +snapshot_image_device::snapshot_image_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), device_image_interface(mconfig, *this), m_file_extensions(nullptr), m_interface(nullptr), @@ -78,13 +72,13 @@ image_init_result snapshot_image_device::call_load() } // device type definition -const device_type QUICKLOAD = device_creator; +DEFINE_DEVICE_TYPE(QUICKLOAD, quickload_image_device, "quickload", "Quickload") //------------------------------------------------- // quickload_image_device - constructor //------------------------------------------------- quickload_image_device::quickload_image_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : snapshot_image_device(mconfig, QUICKLOAD, "Quickload", tag, owner, clock, "quickload", __FILE__) + : snapshot_image_device(mconfig, QUICKLOAD, tag, owner, clock) { } diff --git a/src/devices/imagedev/snapquik.h b/src/devices/imagedev/snapquik.h index 89a77a8360f..dfe458979bb 100644 --- a/src/devices/imagedev/snapquik.h +++ b/src/devices/imagedev/snapquik.h @@ -8,8 +8,8 @@ *********************************************************************/ -#ifndef __SNAPQUIK_H__ -#define __SNAPQUIK_H__ +#ifndef MAME_DEVICES_IMAGEDEV_SNAPQUIK_H +#define MAME_DEVICES_IMAGEDEV_SNAPQUIK_H #include "softlist_dev.h" @@ -22,7 +22,6 @@ class snapshot_image_device : public device_t, public: // construction/destruction snapshot_image_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - snapshot_image_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); virtual ~snapshot_image_device(); static void static_set_interface(device_t &device, const char *_interface) { downcast(device).m_interface = _interface; } @@ -42,7 +41,10 @@ public: TIMER_CALLBACK_MEMBER(process_snapshot_or_quickload); void set_handler(snapquick_load_delegate load, const char *ext, seconds_t sec) { m_load = load; m_file_extensions = ext; m_delay_seconds = sec; }; + protected: + snapshot_image_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; @@ -55,7 +57,7 @@ protected: }; // device type definition -extern const device_type SNAPSHOT; +DECLARE_DEVICE_TYPE(SNAPSHOT, snapshot_image_device) // ======================> quickload_image_device @@ -69,7 +71,7 @@ public: }; // device type definition -extern const device_type QUICKLOAD; +DECLARE_DEVICE_TYPE(QUICKLOAD, quickload_image_device) /*************************************************************************** DEVICE CONFIGURATION MACROS @@ -100,4 +102,4 @@ extern const device_type QUICKLOAD; #define MCFG_QUICKLOAD_INTERFACE(_interface) \ quickload_image_device::static_set_interface(*device, _interface); -#endif /* __SNAPQUIK_H__ */ +#endif // MAME_DEVICES_IMAGEDEV_SNAPQUIK_H diff --git a/src/devices/machine/40105.cpp b/src/devices/machine/40105.cpp index 6c7490a43af..dbeb7e2f45c 100644 --- a/src/devices/machine/40105.cpp +++ b/src/devices/machine/40105.cpp @@ -32,7 +32,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type CD40105 = device_creator; +DEFINE_DEVICE_TYPE(CD40105, cmos_40105_device, "cd40105", "40105 FIFO") const device_type HC40105 = CD40105; @@ -45,7 +45,7 @@ const device_type HC40105 = CD40105; //------------------------------------------------- cmos_40105_device::cmos_40105_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : device_t(mconfig, CD40105, "40105 FIFO", tag, owner, clock, "cd40105", __FILE__), + : device_t(mconfig, CD40105, tag, owner, clock), m_write_dir(*this), m_write_dor(*this), m_write_q(*this), diff --git a/src/devices/machine/40105.h b/src/devices/machine/40105.h index e65fb31f381..2197fddbf8b 100644 --- a/src/devices/machine/40105.h +++ b/src/devices/machine/40105.h @@ -17,10 +17,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_MACHINE_40105_H +#define MAME_MACHINE_40105_H -#ifndef __CMOS_40105__ -#define __CMOS_40105__ +#pragma once #include @@ -53,9 +53,9 @@ public: // construction/destruction cmos_40105_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); - template devcb_base &set_dir_callback(_dir dir) { return m_write_dir.set_callback(dir); } - template devcb_base &set_dor_callback(_dor dor) { return m_write_dor.set_callback(dor); } - template devcb_base &set_data_out_callback(_out out) { return m_write_q.set_callback(out); } + template devcb_base &set_dir_callback(Object &&dir) { return m_write_dir.set_callback(std::forward(dir)); } + template devcb_base &set_dor_callback(Object &&dor) { return m_write_dor.set_callback(std::forward(dor)); } + template devcb_base &set_data_out_callback(Object &&out) { return m_write_q.set_callback(std::forward(out)); } u8 read(); void write(u8 data); @@ -95,8 +95,7 @@ private: // device type definition -extern const device_type CD40105; +DECLARE_DEVICE_TYPE(CD40105, cmos_40105_device) extern const device_type HC40105; - -#endif +#endif // MAME_MACHINE_40105_H diff --git a/src/devices/machine/53c7xx.cpp b/src/devices/machine/53c7xx.cpp index e84c4358901..2d215f198b0 100644 --- a/src/devices/machine/53c7xx.cpp +++ b/src/devices/machine/53c7xx.cpp @@ -48,18 +48,63 @@ static void ATTR_PRINTF(3,4) verbose_log(running_machine &machine, int level, co } +//************************************************************************** +// REGISTER DEFINES (INCOMPLETE) +//************************************************************************** + +#define SCNTL0_TRG 0x01 +#define SCNTL0_AAP 0x02 +#define SCNTL0_EPG 0x04 +#define SCNTL0_EPC 0x08 +#define SCNTL0_WATN 0x10 +#define SCNTL0_START 0x20 +#define SCNTL0_ARB_MASK 3 +#define SCNTL0_ARB_SHIFT 6 + +#define SSTAT0_PAR 0x01 +#define SSTAT0_RST 0x02 +#define SSTAT0_UDC 0x04 +#define SSTAT0_SGE 0x08 +#define SSTAT0_SEL 0x10 +#define SSTAT0_STO 0x20 +#define SSTAT0_CMP 0x40 +#define SSTAT0_MA 0x80 + +#define SSTAT1_SDP 0x01 +#define SSTAT1_RST 0x02 +#define SSTAT1_WOA 0x04 +#define SSTAT1_LOA 0x08 +#define SSTAT1_AIP 0x10 +#define SSTAT1_ORF 0x20 +#define SSTAT1_OLF 0x40 +#define SSTAT1_ILF 0x80 + +#define ISTAT_DIP 0x01 +#define ISTAT_SIP 0x02 +#define ISTAT_PRE 0x04 +#define ISTAT_CON 0x08 +#define ISTAT_ABRT 0x80 + +#define DSTAT_OPC 0x01 +#define DSTAT_WTD 0x02 +#define DSTAT_SIR 0x04 +#define DSTAT_SSI 0x08 +#define DSTAT_ABRT 0x10 +#define DSTAT_DFE 0x80 + + //************************************************************************** // LIVE DEVICE //************************************************************************** -const device_type NCR53C7XX = device_creator; +DEFINE_DEVICE_TYPE(NCR53C7XX, ncr53c7xx_device, "ncr537xx", "NCR 53C7xx SCSI") //------------------------------------------------- // ncr53c7xx_device - constructor/destructor //------------------------------------------------- ncr53c7xx_device::ncr53c7xx_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nscsi_device(mconfig, NCR53C7XX, "53C7xx SCSI", tag, owner, clock, "ncr537xx", __FILE__), + : nscsi_device(mconfig, NCR53C7XX, tag, owner, clock), device_execute_interface(mconfig, *this), m_icount(0), m_irq_handler(*this), diff --git a/src/devices/machine/53c7xx.h b/src/devices/machine/53c7xx.h index f343f8472dc..7dff86c2256 100644 --- a/src/devices/machine/53c7xx.h +++ b/src/devices/machine/53c7xx.h @@ -8,55 +8,13 @@ *********************************************************************/ -#ifndef _NCR53C7XX_H_ -#define _NCR53C7XX_H_ +#ifndef MAME_MACHINE_53C7XX_H +#define MAME_MACHINE_53C7XX_H -#include "machine/nscsi_bus.h" +#pragma once +#include "machine/nscsi_bus.h" -//************************************************************************** -// REGISTER DEFINES (INCOMPLETE) -//************************************************************************** - -#define SCNTL0_TRG 0x01 -#define SCNTL0_AAP 0x02 -#define SCNTL0_EPG 0x04 -#define SCNTL0_EPC 0x08 -#define SCNTL0_WATN 0x10 -#define SCNTL0_START 0x20 -#define SCNTL0_ARB_MASK 3 -#define SCNTL0_ARB_SHIFT 6 - -#define SSTAT0_PAR 0x01 -#define SSTAT0_RST 0x02 -#define SSTAT0_UDC 0x04 -#define SSTAT0_SGE 0x08 -#define SSTAT0_SEL 0x10 -#define SSTAT0_STO 0x20 -#define SSTAT0_CMP 0x40 -#define SSTAT0_MA 0x80 - -#define SSTAT1_SDP 0x01 -#define SSTAT1_RST 0x02 -#define SSTAT1_WOA 0x04 -#define SSTAT1_LOA 0x08 -#define SSTAT1_AIP 0x10 -#define SSTAT1_ORF 0x20 -#define SSTAT1_OLF 0x40 -#define SSTAT1_ILF 0x80 - -#define ISTAT_DIP 0x01 -#define ISTAT_SIP 0x02 -#define ISTAT_PRE 0x04 -#define ISTAT_CON 0x08 -#define ISTAT_ABRT 0x80 - -#define DSTAT_OPC 0x01 -#define DSTAT_WTD 0x02 -#define DSTAT_SIR 0x04 -#define DSTAT_SSI 0x08 -#define DSTAT_ABRT 0x10 -#define DSTAT_DFE 0x80 #define MCFG_NCR53C7XX_IRQ_HANDLER(_devcb) \ devcb = &ncr53c7xx_device::set_irq_handler(*device, DEVCB_##_devcb); @@ -67,17 +25,16 @@ #define MCFG_NCR53C7XX_HOST_READ(_devcb) \ devcb = &ncr53c7xx_device::set_host_read(*device, DEVCB_##_devcb); -class ncr53c7xx_device : public nscsi_device, - public device_execute_interface +class ncr53c7xx_device : public nscsi_device, public device_execute_interface { public: // construction/destruction ncr53c7xx_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // static configuration helpers - template static devcb_base &set_irq_handler(device_t &device, _Object object) { return downcast(device).m_irq_handler.set_callback(object); } - template static devcb_base &set_host_write(device_t &device, _Object object) { return downcast(device).m_host_write.set_callback(object); } - template static devcb_base &set_host_read(device_t &device, _Object object) { return downcast(device).m_host_read.set_callback(object); } + template static devcb_base &set_irq_handler(device_t &device, Object &&cb) { return downcast(device).m_irq_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_host_write(device_t &device, Object &&cb) { return downcast(device).m_host_write.set_callback(std::forward(cb)); } + template static devcb_base &set_host_read(device_t &device, Object &&cb) { return downcast(device).m_host_read.set_callback(std::forward(cb)); } // our API DECLARE_READ32_MEMBER(read); @@ -225,5 +182,6 @@ private: }; // device type definition -extern const device_type NCR53C7XX; -#endif +DECLARE_DEVICE_TYPE(NCR53C7XX, ncr53c7xx_device) + +#endif // MAME_MACHINE_53C7XX_H diff --git a/src/devices/machine/53c810.cpp b/src/devices/machine/53c810.cpp index 5564525869d..87165da1cfd 100644 --- a/src/devices/machine/53c810.cpp +++ b/src/devices/machine/53c810.cpp @@ -394,7 +394,7 @@ void lsi53c810_device::dma_exec() } } -uint8_t lsi53c810_device::lsi53c810_reg_r( int offset ) +uint8_t lsi53c810_device::reg_r(int offset) { // logerror("53c810: read reg %d:0x%x (PC=%x)\n", offset, offset, space.device().safe_pc()); switch(offset) @@ -477,7 +477,7 @@ uint8_t lsi53c810_device::lsi53c810_reg_r( int offset ) //return 0; } -void lsi53c810_device::lsi53c810_reg_w(int offset, uint8_t data) +void lsi53c810_device::reg_w(int offset, uint8_t data) { // logerror("53c810: %02x to reg %d:0x%x (PC=%x)\n", data, offset, offset, space.device().safe_pc()); switch(offset) @@ -622,7 +622,7 @@ void lsi53c810_device::add_opcode(uint8_t op, uint8_t mask, opcode_handler_deleg } lsi53c810_device::lsi53c810_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : legacy_scsi_host_adapter(mconfig, LSI53C810, "53C810 SCSI", tag, owner, clock, "lsi53c810", __FILE__) + : legacy_scsi_host_adapter(mconfig, LSI53C810, tag, owner, clock) { } @@ -813,4 +813,4 @@ unsigned lsi53c810_device::lsi53c810_dasm(char *buf, uint32_t pc) return result; } -const device_type LSI53C810 = device_creator; +DEFINE_DEVICE_TYPE(LSI53C810, lsi53c810_device, "lsi53c810", "LSI 53C810 SCSI") diff --git a/src/devices/machine/53c810.h b/src/devices/machine/53c810.h index b00bf57e8ed..d8115dfb10c 100644 --- a/src/devices/machine/53c810.h +++ b/src/devices/machine/53c810.h @@ -1,32 +1,33 @@ // license:BSD-3-Clause // copyright-holders:smf -#ifndef LSI53C810_H -#define LSI53C810_H +#ifndef MAME_MACHINE_53C810_H +#define MAME_MACHINE_53C810_H + +#pragma once #include "legscsi.h" -typedef device_delegate lsi53c810_irq_delegate; #define LSI53C810_IRQ_CB(name) void name(int state) - -typedef device_delegate lsi53c810_dma_delegate; #define LSI53C810_DMA_CB(name) void name(uint32_t src, uint32_t dst, int length, int byteswap) - -typedef device_delegate lsi53c810_fetch_delegate; #define LSI53C810_FETCH_CB(name) uint32_t name(uint32_t dsp) class lsi53c810_device : public legacy_scsi_host_adapter { public: + typedef device_delegate irq_delegate; + typedef device_delegate dma_delegate; + typedef device_delegate fetch_delegate; + // construction/destruction lsi53c810_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - static void set_irq_callback(device_t &device, lsi53c810_irq_delegate callback) { downcast(device).m_irq_cb = callback; } - static void set_dma_callback(device_t &device, lsi53c810_dma_delegate callback) { downcast(device).m_dma_cb = callback; } - static void set_fetch_callback(device_t &device, lsi53c810_fetch_delegate callback) { downcast(device).m_fetch_cb = callback; } + static void set_irq_callback(device_t &device, irq_delegate &&callback) { downcast(device).m_irq_cb = std::move(callback); } + static void set_dma_callback(device_t &device, dma_delegate &&callback) { downcast(device).m_dma_cb = std::move(callback); } + static void set_fetch_callback(device_t &device, fetch_delegate &&callback) { downcast(device).m_fetch_cb = std::move(callback); } - uint8_t lsi53c810_reg_r( int offset ); - void lsi53c810_reg_w(int offset, uint8_t data); + uint8_t reg_r(int offset); + void reg_w(int offset, uint8_t data); protected: // device-level overrides @@ -36,9 +37,9 @@ private: typedef delegate opcode_handler_delegate; opcode_handler_delegate dma_opcode[256]; - lsi53c810_irq_delegate m_irq_cb; - lsi53c810_dma_delegate m_dma_cb; - lsi53c810_fetch_delegate m_fetch_cb; + irq_delegate m_irq_cb; + dma_delegate m_dma_cb; + fetch_delegate m_fetch_cb; uint32_t FETCH(); void dmaop_invalid(); @@ -99,15 +100,16 @@ private: // device type definition extern const device_type LSI53C810; +DECLARE_DEVICE_TYPE(LSI53C810, lsi53c810_device) #define MCFG_LSI53C810_IRQ_CB(_class, _method) \ - lsi53c810_device::set_irq_callback(*device, lsi53c810_irq_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); + lsi53c810_device::set_irq_callback(*device, lsi53c810_device::irq_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); #define MCFG_LSI53C810_DMA_CB(_class, _method) \ - lsi53c810_device::set_dma_callback(*device, lsi53c810_dma_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); + lsi53c810_device::set_dma_callback(*device, lsi53c810_device::dma_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); #define MCFG_LSI53C810_FETCH_CB(_class, _method) \ - lsi53c810_device::set_fetch_callback(*device, lsi53c810_fetch_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); + lsi53c810_device::set_fetch_callback(*device, lsi53c810_device::fetch_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); -#endif +#endif // MAME_MACHINE_53C810_H diff --git a/src/devices/machine/64h156.cpp b/src/devices/machine/64h156.cpp index 93532565b3e..4b2cd724dca 100644 --- a/src/devices/machine/64h156.cpp +++ b/src/devices/machine/64h156.cpp @@ -27,14 +27,14 @@ #include "emu.h" #include "64h156.h" +//#define VERBOSE 1 +#include "logmacro.h" //************************************************************************** // MACROS / CONSTANTS //************************************************************************** -#define LOG 0 - #define CYCLES_UNTIL_ANALOG_DESYNC 288 // 18 us @@ -43,7 +43,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type C64H156 = device_creator; +DEFINE_DEVICE_TYPE(C64H156, c64h156_device, "c64h156", "Commodore 64H156") @@ -56,7 +56,7 @@ const device_type C64H156 = device_creator; //------------------------------------------------- c64h156_device::c64h156_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, C64H156, "64H156", tag, owner, clock, "c64h156", __FILE__), + device_t(mconfig, C64H156, tag, owner, clock), m_write_atn(*this), m_write_sync(*this), m_write_byte(*this), @@ -200,7 +200,7 @@ bool c64h156_device::write_next_bit(bool bit, const attotime &limit) if(bit && cur_live.write_position < ARRAY_LENGTH(cur_live.write_buffer)) cur_live.write_buffer[cur_live.write_position++] = cur_live.tm - m_period; - if (LOG) logerror("%s write bit %u (%u)\n", cur_live.tm.as_string(), cur_live.bit_counter, bit); + LOG("%s write bit %u (%u)\n", cur_live.tm.as_string(), cur_live.bit_counter, bit); return false; } @@ -210,7 +210,7 @@ void c64h156_device::commit(const attotime &tm) if(cur_live.write_start_time.is_never() || tm == cur_live.write_start_time || !cur_live.write_position) return; - if (LOG) logerror("%s committing %u transitions since %s\n", tm.as_string(), cur_live.write_position, cur_live.write_start_time.as_string()); + LOG("%s committing %u transitions since %s\n", tm.as_string(), cur_live.write_position, cur_live.write_start_time.as_string()); m_floppy->write_flux(cur_live.write_start_time, tm, cur_live.write_position, cur_live.write_buffer); @@ -307,7 +307,7 @@ void c64h156_device::live_run(const attotime &limit) cur_live.shift_reg |= !(BIT(cur_live.cell_counter, 3) || BIT(cur_live.cell_counter, 2)); cur_live.shift_reg &= 0x3ff; - if (LOG) logerror("%s read bit %u (%u) >> %03x, oe=%u soe=%u sync=%u byte=%u\n", cur_live.tm.as_string(), cur_live.bit_counter, + LOG("%s read bit %u (%u) >> %03x, oe=%u soe=%u sync=%u byte=%u\n", cur_live.tm.as_string(), cur_live.bit_counter, !(BIT(cur_live.cell_counter, 3) || BIT(cur_live.cell_counter, 2)), cur_live.shift_reg, cur_live.oe, cur_live.soe, cur_live.sync, cur_live.byte); syncpoint = true; @@ -332,21 +332,21 @@ void c64h156_device::live_run(const attotime &limit) if (!load) { if (cur_live.oe) { cur_live.shift_reg_write = cur_live.shift_reg; - if (LOG) logerror("%s load write shift register from read shift register %02x\n",cur_live.tm.as_string(),cur_live.shift_reg_write); + LOG("%s load write shift register from read shift register %02x\n",cur_live.tm.as_string(),cur_live.shift_reg_write); } else { cur_live.shift_reg_write = cur_live.yb; - if (LOG) logerror("%s load write shift register from YB %02x\n",cur_live.tm.as_string(),cur_live.shift_reg_write); + LOG("%s load write shift register from YB %02x\n",cur_live.tm.as_string(),cur_live.shift_reg_write); } } else if (!BIT(cell_counter, 1) && BIT(cur_live.cell_counter, 1)) { cur_live.shift_reg_write <<= 1; cur_live.shift_reg_write &= 0xff; - if (LOG) logerror("%s shift write register << %02x\n", cur_live.tm.as_string(), cur_live.shift_reg_write); + LOG("%s shift write register << %02x\n", cur_live.tm.as_string(), cur_live.shift_reg_write); } // update signals if (byte != cur_live.byte) { if (!byte || !cur_live.accl) { - if (LOG) logerror("%s BYTE %02x\n", cur_live.tm.as_string(), cur_live.shift_reg & 0xff); + LOG("%s BYTE %02x\n", cur_live.tm.as_string(), cur_live.shift_reg & 0xff); cur_live.byte = byte; syncpoint = true; } @@ -356,7 +356,7 @@ void c64h156_device::live_run(const attotime &limit) } if (sync != cur_live.sync) { - if (LOG) logerror("%s SYNC %u\n", cur_live.tm.as_string(),sync); + LOG("%s SYNC %u\n", cur_live.tm.as_string(),sync); cur_live.sync = sync; syncpoint = true; } @@ -444,7 +444,7 @@ WRITE8_MEMBER( c64h156_device::yb_w ) live_sync(); m_yb = cur_live.yb = data; checkpoint(); - if (LOG) logerror("%s YB %02x\n", machine().time().as_string(), data); + LOG("%s YB %02x\n", machine().time().as_string(), data); live_run(); } @@ -471,7 +471,7 @@ WRITE_LINE_MEMBER( c64h156_device::accl_w ) live_sync(); m_accl = cur_live.accl = state; checkpoint(); - if (LOG) logerror("%s ACCL %u\n", machine().time().as_string(), state); + LOG("%s ACCL %u\n", machine().time().as_string(), state); live_run(); } } @@ -492,7 +492,7 @@ WRITE_LINE_MEMBER( c64h156_device::ted_w ) } m_ted = state; checkpoint(); - if (LOG) logerror("%s TED %u\n", machine().time().as_string(), state); + LOG("%s TED %u\n", machine().time().as_string(), state); live_run(); } } @@ -508,7 +508,7 @@ WRITE_LINE_MEMBER( c64h156_device::mtr_w ) { live_sync(); m_mtr = state; - if (LOG) logerror("%s MTR %u\n", machine().time().as_string(), state); + LOG("%s MTR %u\n", machine().time().as_string(), state); m_floppy->mon_w(!state); checkpoint(); @@ -541,7 +541,7 @@ WRITE_LINE_MEMBER( c64h156_device::oe_w ) start_writing(machine().time()); } checkpoint(); - if (LOG) logerror("%s OE %u\n", machine().time().as_string(), state); + LOG("%s OE %u\n", machine().time().as_string(), state); live_run(); } } @@ -558,7 +558,7 @@ WRITE_LINE_MEMBER( c64h156_device::soe_w ) live_sync(); m_soe = cur_live.soe = state; checkpoint(); - if (LOG) logerror("%s SOE %u\n", machine().time().as_string(), state); + LOG("%s SOE %u\n", machine().time().as_string(), state); live_run(); } } @@ -570,7 +570,7 @@ WRITE_LINE_MEMBER( c64h156_device::soe_w ) WRITE_LINE_MEMBER( c64h156_device::atni_w ) { - if (LOG) logerror("ATNI %u\n", state); + LOG("ATNI %u\n", state); m_atni = state; @@ -584,7 +584,7 @@ WRITE_LINE_MEMBER( c64h156_device::atni_w ) WRITE_LINE_MEMBER( c64h156_device::atna_w ) { - if (LOG) logerror("ATNA %u\n", state); + LOG("ATNA %u\n", state); m_atna = state; @@ -657,7 +657,7 @@ void c64h156_device::ds_w(int ds) live_sync(); m_ds = cur_live.ds = ds; checkpoint(); - if (LOG) logerror("%s DS %u\n", machine().time().as_string(), ds); + LOG("%s DS %u\n", machine().time().as_string(), ds); live_run(); } } diff --git a/src/devices/machine/64h156.h b/src/devices/machine/64h156.h index 35b1320f920..0964f85558a 100644 --- a/src/devices/machine/64h156.h +++ b/src/devices/machine/64h156.h @@ -54,10 +54,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_MACHINE_64H156_H +#define MAME_MACHINE_64H156_H -#ifndef __C64H156__ -#define __C64H156__ +#pragma once #include "imagedev/floppy.h" #include "formats/d64_dsk.h" @@ -93,9 +93,9 @@ public: // construction/destruction c64h156_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_atn_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_atn.set_callback(object); } - template static devcb_base &set_sync_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_sync.set_callback(object); } - template static devcb_base &set_byte_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_byte.set_callback(object); } + template static devcb_base &set_atn_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_atn.set_callback(std::forward(cb)); } + template static devcb_base &set_sync_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_sync.set_callback(std::forward(cb)); } + template static devcb_base &set_byte_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_byte.set_callback(std::forward(cb)); } DECLARE_READ8_MEMBER( yb_r ); DECLARE_WRITE8_MEMBER( yb_w ); @@ -196,10 +196,7 @@ private: }; - // device type definition -extern const device_type C64H156; - - +DECLARE_DEVICE_TYPE(C64H156, c64h156_device) -#endif +#endif // MAME_MACHINE_64H156_H diff --git a/src/devices/machine/6522via.cpp b/src/devices/machine/6522via.cpp index c407c05e59a..f2d1dacf6e2 100644 --- a/src/devices/machine/6522via.cpp +++ b/src/devices/machine/6522via.cpp @@ -148,7 +148,7 @@ uint16_t via6522_device::get_counter1_value() //************************************************************************** // device type definition -const device_type VIA6522 = device_creator; +DEFINE_DEVICE_TYPE(VIA6522, via6522_device, "via6522", "6522 VIA") DEVICE_ADDRESS_MAP_START( map, 8, via6522_device ) AM_RANGE(0x00, 0x0f) AM_READWRITE(read, write) @@ -159,7 +159,7 @@ ADDRESS_MAP_END //------------------------------------------------- via6522_device::via6522_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, VIA6522, "6522 VIA", tag, owner, clock, "via6522", __FILE__), + : device_t(mconfig, VIA6522, tag, owner, clock), m_in_a_handler(*this), m_in_b_handler(*this), m_out_a_handler(*this), diff --git a/src/devices/machine/6522via.h b/src/devices/machine/6522via.h index 87fed27d9a3..8dd3616778d 100644 --- a/src/devices/machine/6522via.h +++ b/src/devices/machine/6522via.h @@ -13,10 +13,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_MACHINE_6522VIA_H +#define MAME_MACHINE_6522VIA_H -#ifndef __6522VIA_H__ -#define __6522VIA_H__ +#pragma once //************************************************************************** // INTERFACE CONFIGURATION MACROS @@ -56,24 +56,44 @@ // ======================> via6522_device -class via6522_device : public device_t +class via6522_device : public device_t { public: + enum + { + VIA_PB = 0, + VIA_PA = 1, + VIA_DDRB = 2, + VIA_DDRA = 3, + VIA_T1CL = 4, + VIA_T1CH = 5, + VIA_T1LL = 6, + VIA_T1LH = 7, + VIA_T2CL = 8, + VIA_T2CH = 9, + VIA_SR = 10, + VIA_ACR = 11, + VIA_PCR = 12, + VIA_IFR = 13, + VIA_IER = 14, + VIA_PANH = 15 + }; + // construction/destruction via6522_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // TODO: REMOVE THESE - template static devcb_base &set_readpa_handler(device_t &device, _Object object) { return downcast(device).m_in_a_handler.set_callback(object); } - template static devcb_base &set_readpb_handler(device_t &device, _Object object) { return downcast(device).m_in_b_handler.set_callback(object); } + template static devcb_base &set_readpa_handler(device_t &device, Object &&cb) { return downcast(device).m_in_a_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_readpb_handler(device_t &device, Object &&cb) { return downcast(device).m_in_b_handler.set_callback(std::forward(cb)); } // TODO: CONVERT THESE TO WRITE LINE - template static devcb_base &set_writepa_handler(device_t &device, _Object object) { return downcast(device).m_out_a_handler.set_callback(object); } - template static devcb_base &set_writepb_handler(device_t &device, _Object object) { return downcast(device).m_out_b_handler.set_callback(object); } + template static devcb_base &set_writepa_handler(device_t &device, Object &&cb) { return downcast(device).m_out_a_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_writepb_handler(device_t &device, Object &&cb) { return downcast(device).m_out_b_handler.set_callback(std::forward(cb)); } - template static devcb_base &set_ca2_handler(device_t &device, _Object object) { return downcast(device).m_ca2_handler.set_callback(object); } - template static devcb_base &set_cb1_handler(device_t &device, _Object object) { return downcast(device).m_cb1_handler.set_callback(object); } - template static devcb_base &set_cb2_handler(device_t &device, _Object object) { return downcast(device).m_cb2_handler.set_callback(object); } - template static devcb_base &set_irq_handler(device_t &device, _Object object) { return downcast(device).m_irq_handler.set_callback(object); } + template static devcb_base &set_ca2_handler(device_t &device, Object &&cb) { return downcast(device).m_ca2_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_cb1_handler(device_t &device, Object &&cb) { return downcast(device).m_cb1_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_cb2_handler(device_t &device, Object &&cb) { return downcast(device).m_cb2_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_irq_handler(device_t &device, Object &&cb) { return downcast(device).m_irq_handler.set_callback(std::forward(cb)); } virtual DECLARE_ADDRESS_MAP(map, 8); @@ -104,26 +124,6 @@ public: DECLARE_WRITE_LINE_MEMBER( write_cb1 ); DECLARE_WRITE_LINE_MEMBER( write_cb2 ); - enum - { - VIA_PB = 0, - VIA_PA = 1, - VIA_DDRB = 2, - VIA_DDRA = 3, - VIA_T1CL = 4, - VIA_T1CH = 5, - VIA_T1LL = 6, - VIA_T1LH = 7, - VIA_T2CL = 8, - VIA_T2CH = 9, - VIA_SR = 10, - VIA_ACR = 11, - VIA_PCR = 12, - VIA_IFR = 13, - VIA_IER = 14, - VIA_PANH = 15 - }; - protected: // device-level overrides virtual void device_start() override; @@ -131,11 +131,11 @@ protected: virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; private: - static const device_timer_id TIMER_SHIFT = 0; - static const device_timer_id TIMER_T1 = 1; - static const device_timer_id TIMER_T2 = 2; - static const device_timer_id TIMER_CA2 = 3; - static const device_timer_id TIMER_SHIFT_IRQ = 4; + static constexpr device_timer_id TIMER_SHIFT = 0; + static constexpr device_timer_id TIMER_T1 = 1; + static constexpr device_timer_id TIMER_T2 = 2; + static constexpr device_timer_id TIMER_CA2 = 3; + static constexpr device_timer_id TIMER_SHIFT_IRQ = 4; uint16_t get_counter1_value(); @@ -213,7 +213,7 @@ private: // device type definition -extern const device_type VIA6522; +DECLARE_DEVICE_TYPE(VIA6522, via6522_device) -#endif /* __6522VIA_H__ */ +#endif // MAME_MACHINE_6522VIA_H diff --git a/src/devices/machine/6525tpi.cpp b/src/devices/machine/6525tpi.cpp index be33b929b6b..a82b09d104c 100644 --- a/src/devices/machine/6525tpi.cpp +++ b/src/devices/machine/6525tpi.cpp @@ -104,10 +104,10 @@ #define CB_MANUAL_LEVEL ((m_cr & 0x40) ? 1 : 0) -const device_type TPI6525 = device_creator; +DEFINE_DEVICE_TYPE(TPI6525, tpi6525_device, "tpi6525", "6525 TPI") tpi6525_device::tpi6525_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, TPI6525, "6525 TPI", tag, owner, clock, "tpi6525", __FILE__), + : device_t(mconfig, TPI6525, tag, owner, clock), m_out_irq_cb(*this), m_in_pa_cb(*this), m_out_pa_cb(*this), diff --git a/src/devices/machine/6525tpi.h b/src/devices/machine/6525tpi.h index ed927d2e11a..1164e3b31d5 100644 --- a/src/devices/machine/6525tpi.h +++ b/src/devices/machine/6525tpi.h @@ -28,8 +28,10 @@ * ****************************************************************************/ -#ifndef __TPI6525_H__ -#define __TPI6525_H__ +#ifndef MAME_MACHINE_6525TPI_H +#define MAME_MACHINE_6525TPI_H + +#pragma once /*************************************************************************** @@ -40,17 +42,16 @@ class tpi6525_device : public device_t { public: tpi6525_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~tpi6525_device() {} - - template static devcb_base &set_out_irq_callback(device_t &device, _Object object) { return downcast(device).m_out_irq_cb.set_callback(object); } - template static devcb_base &set_in_pa_callback(device_t &device, _Object object) { return downcast(device).m_in_pa_cb.set_callback(object); } - template static devcb_base &set_out_pa_callback(device_t &device, _Object object) { return downcast(device).m_out_pa_cb.set_callback(object); } - template static devcb_base &set_in_pb_callback(device_t &device, _Object object) { return downcast(device).m_in_pb_cb.set_callback(object); } - template static devcb_base &set_out_pb_callback(device_t &device, _Object object) { return downcast(device).m_out_pb_cb.set_callback(object); } - template static devcb_base &set_in_pc_callback(device_t &device, _Object object) { return downcast(device).m_in_pc_cb.set_callback(object); } - template static devcb_base &set_out_pc_callback(device_t &device, _Object object) { return downcast(device).m_out_pc_cb.set_callback(object); } - template static devcb_base &set_out_ca_callback(device_t &device, _Object object) { return downcast(device).m_out_ca_cb.set_callback(object); } - template static devcb_base &set_out_cb_callback(device_t &device, _Object object) { return downcast(device).m_out_cb_cb.set_callback(object); } + + template static devcb_base &set_out_irq_callback(device_t &device, Object &&cb) { return downcast(device).m_out_irq_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_in_pa_callback(device_t &device, Object &&cb) { return downcast(device).m_in_pa_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_pa_callback(device_t &device, Object &&cb) { return downcast(device).m_out_pa_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_in_pb_callback(device_t &device, Object &&cb) { return downcast(device).m_in_pb_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_pb_callback(device_t &device, Object &&cb) { return downcast(device).m_out_pb_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_in_pc_callback(device_t &device, Object &&cb) { return downcast(device).m_in_pc_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_pc_callback(device_t &device, Object &&cb) { return downcast(device).m_out_pc_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_ca_callback(device_t &device, Object &&cb) { return downcast(device).m_out_ca_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_cb_callback(device_t &device, Object &&cb) { return downcast(device).m_out_cb_cb.set_callback(std::forward(cb)); } DECLARE_READ8_MEMBER( read ); DECLARE_WRITE8_MEMBER( write ); @@ -120,7 +121,7 @@ private: static void port_line_w(uint8_t &port, int line, int state); }; -extern const device_type TPI6525; +DECLARE_DEVICE_TYPE(TPI6525, tpi6525_device) #define MCFG_TPI6525_OUT_IRQ_CB(_devcb) \ @@ -151,4 +152,4 @@ extern const device_type TPI6525; devcb = &tpi6525_device::set_out_cb_callback(*device, DEVCB_##_devcb); -#endif /* __TPI6525_H__ */ +#endif // MAME_MACHINE_6525TPI_H diff --git a/src/devices/machine/6532riot.cpp b/src/devices/machine/6532riot.cpp index 1ef406a1a73..a04cac9fd79 100644 --- a/src/devices/machine/6532riot.cpp +++ b/src/devices/machine/6532riot.cpp @@ -22,7 +22,7 @@ The timer seems to follow these rules: //************************************************************************** // device type definition -const device_type RIOT6532 = device_creator; +DEFINE_DEVICE_TYPE(RIOT6532, riot6532_device, "riot6532", "6532 RIOT") enum { @@ -387,7 +387,7 @@ uint8_t riot6532_device::portb_out_get() //------------------------------------------------- riot6532_device::riot6532_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, RIOT6532, "6532 RIOT", tag, owner, clock, "riot6532", __FILE__), + : device_t(mconfig, RIOT6532, tag, owner, clock), m_in_pa_cb(*this), m_out_pa_cb(*this), m_in_pb_cb(*this), diff --git a/src/devices/machine/6532riot.h b/src/devices/machine/6532riot.h index b4d558cbcc6..36df16dbe73 100644 --- a/src/devices/machine/6532riot.h +++ b/src/devices/machine/6532riot.h @@ -121,6 +121,6 @@ private: // device type definition -extern const device_type RIOT6532; +DECLARE_DEVICE_TYPE(RIOT6532, riot6532_device) #endif diff --git a/src/devices/machine/68153bim.cpp b/src/devices/machine/68153bim.cpp index 4d9bd20d07a..85682cdeb31 100644 --- a/src/devices/machine/68153bim.cpp +++ b/src/devices/machine/68153bim.cpp @@ -59,9 +59,9 @@ // DEVICE DEFINITIONS //************************************************************************** // device type definition -const device_type MC68153_CHANNEL = device_creator; -const device_type MC68153 = device_creator; -const device_type EI68C153 = device_creator; +DEFINE_DEVICE_TYPE(MC68153_CHANNEL, bim68153_channel, "bim68153_channel", "68153 BIM channel") +DEFINE_DEVICE_TYPE(MC68153, bim68153_device, "m68153bim", "Motorola MC68153 BIM") +DEFINE_DEVICE_TYPE(EI68C153, ei68c153_device, "ei68c153", "EPIC EI68C153 BIM") //------------------------------------------------- // device_mconfig_additions - @@ -86,35 +86,29 @@ machine_config_constructor bim68153_device::device_mconfig_additions() const //------------------------------------------------- // bim68153_device - constructor //------------------------------------------------- -bim68153_device::bim68153_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, uint32_t variant, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source) - ,m_chn{{*this, CHN0_TAG}, {*this, CHN1_TAG}, {*this, CHN2_TAG}, {*this, CHN3_TAG}} - ,m_out_int_cb(*this) - ,m_out_intal0_cb(*this) - ,m_out_intal1_cb(*this) - ,m_out_iackout_cb(*this) - ,m_iackin(ASSERT_LINE) - ,m_irq_level(0) +bim68153_device::bim68153_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint32_t variant) + : device_t(mconfig, type, tag, owner, clock) + , m_chn{{*this, CHN0_TAG}, {*this, CHN1_TAG}, {*this, CHN2_TAG}, {*this, CHN3_TAG}} + , m_out_int_cb(*this) + , m_out_intal0_cb(*this) + , m_out_intal1_cb(*this) + , m_out_iackout_cb(*this) + , m_iackin(ASSERT_LINE) + , m_irq_level(0) { + // FIXME: is the unused 'variant' parameter supposed to be useful for something? LOG("%s\n", FUNCNAME); } bim68153_device::bim68153_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MC68153, "Motorola MC68153 BIM", tag, owner, clock, "m68153bim", __FILE__) - ,m_chn{{*this, CHN0_TAG}, {*this, CHN1_TAG}, {*this, CHN2_TAG}, {*this, CHN3_TAG}} - ,m_out_int_cb(*this) - ,m_out_intal0_cb(*this) - ,m_out_intal1_cb(*this) - ,m_out_iackout_cb(*this) - ,m_iackin(ASSERT_LINE) - ,m_irq_level(0) + : bim68153_device(mconfig, MC68153, tag, owner, clock, TYPE_MC68153) { LOG("%s\n", FUNCNAME); } /* The EPIC EI68C153 is a CMOS implementation that is fully compatible with the bipolar MC68153 from Motorola */ ei68c153_device::ei68c153_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : bim68153_device(mconfig, EI68C153, "EPIC EI68C153 BIM", tag, owner, clock, TYPE_EI68C153, "ei68c153", __FILE__) + : bim68153_device(mconfig, EI68C153, tag, owner, clock, TYPE_EI68C153) { LOG("%s\n", FUNCNAME); } @@ -329,11 +323,11 @@ WRITE8_MEMBER( bim68153_device::write ) //************************************************************************** bim68153_channel::bim68153_channel(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MC68153_CHANNEL, "BIM channel", tag, owner, clock, "bim68153_channel", __FILE__) - ,m_out_iack_cb(*this) - ,m_int_state(NONE) - ,m_control(0) - ,m_vector(0) + : device_t(mconfig, MC68153_CHANNEL, tag, owner, clock) + , m_out_iack_cb(*this) + , m_int_state(NONE) + , m_control(0) + , m_vector(0) { LOG("%s\n",FUNCNAME); } diff --git a/src/devices/machine/68153bim.h b/src/devices/machine/68153bim.h index ab59c94c1c1..4d7b22b6e3e 100644 --- a/src/devices/machine/68153bim.h +++ b/src/devices/machine/68153bim.h @@ -28,10 +28,10 @@ * **********************************************************************/ -#pragma once +#ifndef MAME_MACHINE_68153BIM_H +#define MAME_MACHINE_68153BIM_H -#ifndef MC68153BIM_H -#define MC68153BIM_H +#pragma once //************************************************************************** @@ -128,27 +128,26 @@ protected: }; -class bim68153_device : public device_t +class bim68153_device : public device_t { friend class bim68153_channel; public: // construction/destruction - bim68153_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, uint32_t variant, const char *shortname, const char *source); bim68153_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); IRQ_CALLBACK_MEMBER(iack); int acknowledge(); int get_irq_level(); - template static devcb_base &set_out_int_callback(device_t &device, _Object object) { return downcast(device).m_out_int_cb.set_callback(object); } - template static devcb_base &set_out_intal0_callback(device_t &device, _Object object) { return downcast(device).m_out_intal0_cb.set_callback(object); } - template static devcb_base &set_out_intal1_callback(device_t &device, _Object object) { return downcast(device).m_out_intal1_cb.set_callback(object); } + template static devcb_base &set_out_int_callback(device_t &device, Object &&cb) { return downcast(device).m_out_int_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_intal0_callback(device_t &device, Object &&cb) { return downcast(device).m_out_intal0_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_intal1_callback(device_t &device, Object &&cb) { return downcast(device).m_out_intal1_cb.set_callback(std::forward(cb)); } - template static devcb_base &set_out_iack0_callback(device_t &device, _Object object) { return downcast(device).m_chn[CHN_0]->m_out_iack_cb.set_callback(object); } - template static devcb_base &set_out_iack1_callback(device_t &device, _Object object) { return downcast(device).m_chn[CHN_1]->m_out_iack_cb.set_callback(object); } - template static devcb_base &set_out_iack2_callback(device_t &device, _Object object) { return downcast(device).m_chn[CHN_2]->m_out_iack_cb.set_callback(object); } - template static devcb_base &set_out_iack4_callback(device_t &device, _Object object) { return downcast(device).m_chn[CHN_3]->m_out_iack_cb.set_callback(object); } + template static devcb_base &set_out_iack0_callback(device_t &device, Object &&cb) { return downcast(device).m_chn[CHN_0]->m_out_iack_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_iack1_callback(device_t &device, Object &&cb) { return downcast(device).m_chn[CHN_1]->m_out_iack_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_iack2_callback(device_t &device, Object &&cb) { return downcast(device).m_chn[CHN_2]->m_out_iack_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_iack4_callback(device_t &device, Object &&cb) { return downcast(device).m_chn[CHN_3]->m_out_iack_cb.set_callback(std::forward(cb)); } DECLARE_READ8_MEMBER( read ); DECLARE_WRITE8_MEMBER( write ); @@ -161,6 +160,8 @@ public: DECLARE_WRITE_LINE_MEMBER( int3_w ) { m_chn[CHN_3]->int_w(state); } protected: + bim68153_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint32_t variant); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -217,8 +218,8 @@ public : }; // device type definition -extern const device_type MC68153; -extern const device_type EI68C153; -extern const device_type MC68153_CHANNEL; +DECLARE_DEVICE_TYPE(MC68153, bim68153_device) +DECLARE_DEVICE_TYPE(EI68C153, ei68c153_device) +DECLARE_DEVICE_TYPE(MC68153_CHANNEL, bim68153_channel) -#endif /* MC68153BIM_H */ +#endif // MAME_MACHINE_68153BIM_H diff --git a/src/devices/machine/6821pia.cpp b/src/devices/machine/6821pia.cpp index 489391e043f..5b8dcbe03f0 100644 --- a/src/devices/machine/6821pia.cpp +++ b/src/devices/machine/6821pia.cpp @@ -40,10 +40,7 @@ //************************************************************************** // device type definition -const device_type PIA6821 = device_creator; - -template class device_finder; -template class device_finder; +DEFINE_DEVICE_TYPE(PIA6821, pia6821_device, "pia6821", "6821 PIA") //------------------------------------------------- @@ -51,7 +48,7 @@ template class device_finder; //------------------------------------------------- pia6821_device::pia6821_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, PIA6821, "6821 PIA", tag, owner, clock, "pia6821", __FILE__), + : device_t(mconfig, PIA6821, tag, owner, clock), m_in_a_handler(*this), m_in_b_handler(*this), m_in_ca1_handler(*this), diff --git a/src/devices/machine/6821pia.h b/src/devices/machine/6821pia.h index 8c017b786fb..fb3cbb3a371 100644 --- a/src/devices/machine/6821pia.h +++ b/src/devices/machine/6821pia.h @@ -19,10 +19,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_DEVICES_MACHINE_6821PIA_H +#define MAME_DEVICES_MACHINE_6821PIA_H -#ifndef __6821PIA_H__ -#define __6821PIA_H__ +#pragma once @@ -241,10 +241,7 @@ private: // device type definition -extern const device_type PIA6821; - -extern template class device_finder; -extern template class device_finder; +DECLARE_DEVICE_TYPE(PIA6821, pia6821_device) -#endif /* __6821PIA_H__ */ +#endif // MAME_DEVICES_MACHINE_6821PIA_H diff --git a/src/devices/machine/68230pit.cpp b/src/devices/machine/68230pit.cpp index bf5cfec90b7..f704a4ddd9a 100644 --- a/src/devices/machine/68230pit.cpp +++ b/src/devices/machine/68230pit.cpp @@ -58,25 +58,25 @@ // DEVICE TYPE DEFINITIONS //************************************************************************** -const device_type PIT68230 = device_creator; +DEFINE_DEVICE_TYPE(PIT68230, pit68230_device, "pit68230", "MC68230 PI/T") //------------------------------------------------- // pit68230_device - constructors //------------------------------------------------- -pit68230_device::pit68230_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, uint32_t variant, const char *shortname, const char *source) - : device_t (mconfig, type, name, tag, owner, clock, shortname, source) +pit68230_device::pit68230_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint32_t variant) + : device_t(mconfig, type, tag, owner, clock) , m_pa_out_cb(*this) , m_pa_in_cb(*this) , m_pb_out_cb(*this) , m_pb_in_cb(*this) , m_pc_out_cb(*this) , m_pc_in_cb(*this) - , m_h1_out_cb (*this) - , m_h2_out_cb (*this) - , m_h3_out_cb (*this) - , m_h4_out_cb (*this) - , m_tirq_out_cb (*this) - , m_pirq_out_cb (*this) + , m_h1_out_cb(*this) + , m_h2_out_cb(*this) + , m_h3_out_cb(*this) + , m_h4_out_cb(*this) + , m_tirq_out_cb(*this) + , m_pirq_out_cb(*this) , m_pgcr(0) , m_psrr(0) , m_paddr(0) @@ -98,43 +98,12 @@ pit68230_device::pit68230_device(const machine_config &mconfig, device_type type , m_cntr(0) , m_tsr(0) { + // FIXME: is the unused variant parameter supposed to be useful for something? } pit68230_device::pit68230_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t (mconfig, PIT68230, "PIT68230", tag, owner, clock, "pit68230", __FILE__) - , m_pa_out_cb (*this) - , m_pa_in_cb(*this) - , m_pb_out_cb(*this) - , m_pb_in_cb(*this) - , m_pc_out_cb(*this) - , m_pc_in_cb(*this) - , m_h1_out_cb(*this) - , m_h2_out_cb(*this) - , m_h3_out_cb(*this) - , m_h4_out_cb(*this) - , m_tirq_out_cb (*this) - , m_pirq_out_cb (*this) - , m_pgcr(0) - , m_psrr(0) - , m_paddr(0) - , m_pbddr(0) - , m_pcddr(0) - , m_pivr(0) - , m_pacr(0) - , m_pbcr(0) - , m_padr(0) - , m_pbdr(0) - , m_pcdr(0) - , m_psr(0) - , m_tcr(0) - , m_tivr(0) - , m_cpr(0) - // , m_cprh(0) // Collectivelly handled by m_cpr - // , m_cprm(0) // Collectivelly handled by m_cpr - // , m_cprl(0) // Collectivelly handled by m_cpr - , m_cntr(0) - , m_tsr(0) + : pit68230_device (mconfig, PIT68230, tag, owner, clock, 0) { } diff --git a/src/devices/machine/68230pit.h b/src/devices/machine/68230pit.h index 80614f926cb..14b71943cd6 100644 --- a/src/devices/machine/68230pit.h +++ b/src/devices/machine/68230pit.h @@ -32,10 +32,10 @@ * **********************************************************************/ -#pragma once +#ifndef MAME_MACHIEN_68230PIT_H +#define MAME_MACHIEN_68230PIT_H -#ifndef __68230PIT_H__ -#define __68230PIT_H__ +#pragma once //************************************************************************** @@ -110,29 +110,29 @@ //************************************************************************** class pit68230_device : public device_t//, public device_execute_interface { - public: +public: // construction/destruction - pit68230_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, uint32_t variant, const char *shortname, const char *source); pit68230_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_pa_in_callback (device_t &device, _Object object){ return downcast(device).m_pa_in_cb.set_callback (object); } - template static devcb_base &set_pa_out_callback (device_t &device, _Object object){ return downcast(device).m_pa_out_cb.set_callback (object); } - template static devcb_base &set_pb_in_callback (device_t &device, _Object object){ return downcast(device).m_pb_in_cb.set_callback (object); } - template static devcb_base &set_pb_out_callback (device_t &device, _Object object){ return downcast(device).m_pb_out_cb.set_callback (object); } - template static devcb_base &set_pc_in_callback (device_t &device, _Object object){ return downcast(device).m_pc_in_cb.set_callback (object); } - template static devcb_base &set_pc_out_callback (device_t &device, _Object object){ return downcast(device).m_pc_out_cb.set_callback (object); } - template static devcb_base &set_h1_out_callback (device_t &device, _Object object){ return downcast(device).m_h1_out_cb.set_callback (object); } - template static devcb_base &set_h2_out_callback (device_t &device, _Object object){ return downcast(device).m_h2_out_cb.set_callback (object); } - template static devcb_base &set_h3_out_callback (device_t &device, _Object object){ return downcast(device).m_h3_out_cb.set_callback (object); } - template static devcb_base &set_h4_out_callback (device_t &device, _Object object){ return downcast(device).m_h4_out_cb.set_callback (object); } - template static devcb_base &set_tirq_out_callback (device_t &device, _Object object){ return downcast(device).m_tirq_out_cb.set_callback (object); } - template static devcb_base &set_pirq_out_callback (device_t &device, _Object object){ return downcast(device).m_pirq_out_cb.set_callback (object); } + + template static devcb_base &set_pa_in_callback (device_t &device, Object &&cb){ return downcast(device).m_pa_in_cb.set_callback (std::forward(cb)); } + template static devcb_base &set_pa_out_callback (device_t &device, Object &&cb){ return downcast(device).m_pa_out_cb.set_callback (std::forward(cb)); } + template static devcb_base &set_pb_in_callback (device_t &device, Object &&cb){ return downcast(device).m_pb_in_cb.set_callback (std::forward(cb)); } + template static devcb_base &set_pb_out_callback (device_t &device, Object &&cb){ return downcast(device).m_pb_out_cb.set_callback (std::forward(cb)); } + template static devcb_base &set_pc_in_callback (device_t &device, Object &&cb){ return downcast(device).m_pc_in_cb.set_callback (std::forward(cb)); } + template static devcb_base &set_pc_out_callback (device_t &device, Object &&cb){ return downcast(device).m_pc_out_cb.set_callback (std::forward(cb)); } + template static devcb_base &set_h1_out_callback (device_t &device, Object &&cb){ return downcast(device).m_h1_out_cb.set_callback (std::forward(cb)); } + template static devcb_base &set_h2_out_callback (device_t &device, Object &&cb){ return downcast(device).m_h2_out_cb.set_callback (std::forward(cb)); } + template static devcb_base &set_h3_out_callback (device_t &device, Object &&cb){ return downcast(device).m_h3_out_cb.set_callback (std::forward(cb)); } + template static devcb_base &set_h4_out_callback (device_t &device, Object &&cb){ return downcast(device).m_h4_out_cb.set_callback (std::forward(cb)); } + template static devcb_base &set_tirq_out_callback (device_t &device, Object &&cb){ return downcast(device).m_tirq_out_cb.set_callback (std::forward(cb)); } + template static devcb_base &set_pirq_out_callback (device_t &device, Object &&cb){ return downcast(device).m_pirq_out_cb.set_callback (std::forward(cb)); } DECLARE_WRITE8_MEMBER (write); DECLARE_READ8_MEMBER (read); // TODO: remove these methods and replace it with a call to methods below in force68k.cpp - void h1_set (uint8_t state){ if (state) m_psr |= 1; else m_psr &= ~1; } - void portb_setbit (uint8_t bit, uint8_t state); + void h1_set(uint8_t state) { if (state) m_psr |= 1; else m_psr &= ~1; } + void portb_setbit(uint8_t bit, uint8_t state); // Bit updaters void pa_update_bit(uint8_t bit, uint8_t state); @@ -145,34 +145,34 @@ class pit68230_device : public device_t//, public device_execute_interface DECLARE_WRITE_LINE_MEMBER( h3_w ); DECLARE_WRITE_LINE_MEMBER( h4_w ); - DECLARE_WRITE_LINE_MEMBER( pa0_w ){ pa_update_bit(0, state); } - DECLARE_WRITE_LINE_MEMBER( pa1_w ){ pa_update_bit(1, state); } - DECLARE_WRITE_LINE_MEMBER( pa2_w ){ pa_update_bit(2, state); } - DECLARE_WRITE_LINE_MEMBER( pa3_w ){ pa_update_bit(3, state); } - DECLARE_WRITE_LINE_MEMBER( pa4_w ){ pa_update_bit(4, state); } - DECLARE_WRITE_LINE_MEMBER( pa5_w ){ pa_update_bit(5, state); } - DECLARE_WRITE_LINE_MEMBER( pa6_w ){ pa_update_bit(6, state); } - DECLARE_WRITE_LINE_MEMBER( pa7_w ){ pa_update_bit(7, state); } - - DECLARE_WRITE_LINE_MEMBER( pb0_w ){ pb_update_bit(0, state); } - DECLARE_WRITE_LINE_MEMBER( pb1_w ){ pb_update_bit(1, state); } - DECLARE_WRITE_LINE_MEMBER( pb2_w ){ pb_update_bit(2, state); } - DECLARE_WRITE_LINE_MEMBER( pb3_w ){ pb_update_bit(3, state); } - DECLARE_WRITE_LINE_MEMBER( pb4_w ){ pb_update_bit(4, state); } - DECLARE_WRITE_LINE_MEMBER( pb5_w ){ pb_update_bit(5, state); } - DECLARE_WRITE_LINE_MEMBER( pb6_w ){ pb_update_bit(6, state); } - DECLARE_WRITE_LINE_MEMBER( pb7_w ){ pb_update_bit(7, state); } - - DECLARE_WRITE_LINE_MEMBER( pc0_w ){ pc_update_bit(0, state); } - DECLARE_WRITE_LINE_MEMBER( pc1_w ){ pc_update_bit(1, state); } - DECLARE_WRITE_LINE_MEMBER( pc2_w ){ pc_update_bit(2, state); } - DECLARE_WRITE_LINE_MEMBER( pc3_w ){ pc_update_bit(3, state); } - DECLARE_WRITE_LINE_MEMBER( pc4_w ){ pc_update_bit(4, state); } - DECLARE_WRITE_LINE_MEMBER( pc5_w ){ pc_update_bit(5, state); } - DECLARE_WRITE_LINE_MEMBER( pc6_w ){ pc_update_bit(6, state); } - DECLARE_WRITE_LINE_MEMBER( pc7_w ){ pc_update_bit(7, state); } - - private: + DECLARE_WRITE_LINE_MEMBER( pa0_w ) { pa_update_bit(0, state); } + DECLARE_WRITE_LINE_MEMBER( pa1_w ) { pa_update_bit(1, state); } + DECLARE_WRITE_LINE_MEMBER( pa2_w ) { pa_update_bit(2, state); } + DECLARE_WRITE_LINE_MEMBER( pa3_w ) { pa_update_bit(3, state); } + DECLARE_WRITE_LINE_MEMBER( pa4_w ) { pa_update_bit(4, state); } + DECLARE_WRITE_LINE_MEMBER( pa5_w ) { pa_update_bit(5, state); } + DECLARE_WRITE_LINE_MEMBER( pa6_w ) { pa_update_bit(6, state); } + DECLARE_WRITE_LINE_MEMBER( pa7_w ) { pa_update_bit(7, state); } + + DECLARE_WRITE_LINE_MEMBER( pb0_w ) { pb_update_bit(0, state); } + DECLARE_WRITE_LINE_MEMBER( pb1_w ) { pb_update_bit(1, state); } + DECLARE_WRITE_LINE_MEMBER( pb2_w ) { pb_update_bit(2, state); } + DECLARE_WRITE_LINE_MEMBER( pb3_w ) { pb_update_bit(3, state); } + DECLARE_WRITE_LINE_MEMBER( pb4_w ) { pb_update_bit(4, state); } + DECLARE_WRITE_LINE_MEMBER( pb5_w ) { pb_update_bit(5, state); } + DECLARE_WRITE_LINE_MEMBER( pb6_w ) { pb_update_bit(6, state); } + DECLARE_WRITE_LINE_MEMBER( pb7_w ) { pb_update_bit(7, state); } + + DECLARE_WRITE_LINE_MEMBER( pc0_w ) { pc_update_bit(0, state); } + DECLARE_WRITE_LINE_MEMBER( pc1_w ) { pc_update_bit(1, state); } + DECLARE_WRITE_LINE_MEMBER( pc2_w ) { pc_update_bit(2, state); } + DECLARE_WRITE_LINE_MEMBER( pc3_w ) { pc_update_bit(3, state); } + DECLARE_WRITE_LINE_MEMBER( pc4_w ) { pc_update_bit(4, state); } + DECLARE_WRITE_LINE_MEMBER( pc5_w ) { pc_update_bit(5, state); } + DECLARE_WRITE_LINE_MEMBER( pc6_w ) { pc_update_bit(6, state); } + DECLARE_WRITE_LINE_MEMBER( pc7_w ) { pc_update_bit(7, state); } + +private: void wr_pitreg_pgcr(uint8_t data); void wr_pitreg_psrr(uint8_t data); void wr_pitreg_paddr(uint8_t data); @@ -311,10 +311,12 @@ protected: void tick_clock(); + pit68230_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint32_t variant); + // device-level overrides - virtual void device_start () override; - virtual void device_reset () override; - virtual void device_timer (emu_timer &timer, device_timer_id id, int param, void *ptr) override; + virtual void device_start() override; + virtual void device_reset() override; + virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; // Interrupt methods void trigger_interrupt(int source); @@ -375,6 +377,6 @@ protected: }; // device type definition -extern const device_type PIT68230; +DECLARE_DEVICE_TYPE(PIT68230, pit68230_device) -#endif /* __68230PIT_H__ */ +#endif // MAME_MACHIEN_68230PIT_H diff --git a/src/devices/machine/68307.cpp b/src/devices/machine/68307.cpp index fbbf8400ad7..cb51fca82fe 100644 --- a/src/devices/machine/68307.cpp +++ b/src/devices/machine/68307.cpp @@ -4,8 +4,11 @@ #include "emu.h" #include "68307.h" +#include "68307bus.h" +#include "68307sim.h" +#include "68307tmu.h" -const device_type M68307 = device_creator; +DEFINE_DEVICE_TYPE(M68307, m68307_cpu_device, "mc68307", "MC68307") /* 68307 SERIAL Module */ @@ -18,24 +21,24 @@ const device_type M68307 = device_creator; a custom verson here, that may change later if subtle differences exist. */ -READ8_MEMBER( m68307cpu_device::m68307_internal_serial_r ) +READ8_MEMBER( m68307_cpu_device::m68307_internal_serial_r ) { - m68307cpu_device *m68k = this; + m68307_cpu_device *m68k = this; if (offset&1) return m_duart->read(*m68k->program, offset>>1); return 0x0000; } -WRITE8_MEMBER(m68307cpu_device::m68307_internal_serial_w) +WRITE8_MEMBER(m68307_cpu_device::m68307_internal_serial_w) { - m68307cpu_device *m68k = this; + m68307_cpu_device *m68k = this; if (offset & 1) m_duart->write(*m68k->program, offset >> 1, data); } -static ADDRESS_MAP_START( m68307_internal_map, AS_PROGRAM, 16, m68307cpu_device ) +static ADDRESS_MAP_START( m68307_internal_map, AS_PROGRAM, 16, m68307_cpu_device ) AM_RANGE(0x000000f0, 0x000000ff) AM_READWRITE(m68307_internal_base_r, m68307_internal_base_w) ADDRESS_MAP_END @@ -43,21 +46,21 @@ ADDRESS_MAP_END static MACHINE_CONFIG_FRAGMENT( 68307fragment ) MCFG_MC68681_ADD("internal68681", 16000000/4) // ?? Mhz - should be specified in inline config - MCFG_MC68681_IRQ_CALLBACK(WRITELINE(m68307cpu_device, m68307_duart_irq_handler)) - MCFG_MC68681_A_TX_CALLBACK(WRITELINE(m68307cpu_device, m68307_duart_txa)) - MCFG_MC68681_B_TX_CALLBACK(WRITELINE(m68307cpu_device, m68307_duart_txb)) - MCFG_MC68681_INPORT_CALLBACK(READ8(m68307cpu_device, m68307_duart_input_r)) - MCFG_MC68681_OUTPORT_CALLBACK(WRITE8(m68307cpu_device, m68307_duart_output_w)) + MCFG_MC68681_IRQ_CALLBACK(WRITELINE(m68307_cpu_device, m68307_duart_irq_handler)) + MCFG_MC68681_A_TX_CALLBACK(WRITELINE(m68307_cpu_device, m68307_duart_txa)) + MCFG_MC68681_B_TX_CALLBACK(WRITELINE(m68307_cpu_device, m68307_duart_txb)) + MCFG_MC68681_INPORT_CALLBACK(READ8(m68307_cpu_device, m68307_duart_input_r)) + MCFG_MC68681_OUTPORT_CALLBACK(WRITE8(m68307_cpu_device, m68307_duart_output_w)) MACHINE_CONFIG_END -machine_config_constructor m68307cpu_device::device_mconfig_additions() const +machine_config_constructor m68307_cpu_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( 68307fragment ); } -m68307cpu_device::m68307cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : m68000_device(mconfig, "MC68307", tag, owner, clock, M68307, 16,24, ADDRESS_MAP_NAME(m68307_internal_map), "mc68307", __FILE__), +m68307_cpu_device::m68307_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : m68000_device(mconfig, tag, owner, clock, M68307, 16, 24, ADDRESS_MAP_NAME(m68307_internal_map)), write_irq(*this), write_a_tx(*this), write_b_tx(*this), @@ -79,7 +82,7 @@ m68307cpu_device::m68307cpu_device(const machine_config &mconfig, const char *ta -void m68307cpu_device::device_reset() +void m68307_cpu_device::device_reset() { m68000_device::device_reset(); @@ -98,100 +101,102 @@ void m68307cpu_device::device_reset() and install handlers? Going through this logic for every memory access is very slow */ -int m68307_calc_cs(m68307cpu_device *m68k, offs_t address) +inline int m68307_cpu_device::calc_cs(offs_t address) const { - m68307_sim* sim = m68k->m68307SIM; - - for (int i=0;i<4;i++) + m68307_sim const &sim = *m68307SIM; + for (int i=0; i < 4; i++) { - int br,amask,bra; - br = sim->m_br[i] & 1; - amask = ((sim->m_or[i]&0x1ffc)<<11); - bra = ((sim->m_br[i] & 0x1ffc)<<11); - if ((br) && ((address & amask) == bra)) return i+1; + int const br = sim.m_br[i] & 1; + int const amask = (sim.m_or[i] & 0x1ffc) << 11; + int const bra = (sim.m_br[i] & 0x1ffc) << 11; + if (br && ((address & amask) == bra)) return i + 1; } return 0; } -uint16_t m68307cpu_device::simple_read_immediate_16_m68307(offs_t address) +uint16_t m68307_cpu_device::simple_read_immediate_16_m68307(offs_t address) { -// m68307_currentcs = m68307_calc_cs(this, address); +// m68307_currentcs = calc_cs(address); return m_direct->read_word(address); } -uint8_t m68307cpu_device::read_byte_m68307(offs_t address) +uint8_t m68307_cpu_device::read_byte_m68307(offs_t address) { -// m68307_currentcs = m68307_calc_cs(this, address); +// m68307_currentcs = calc_cs(address); return m_space->read_byte(address); } -uint16_t m68307cpu_device::read_word_m68307(offs_t address) +uint16_t m68307_cpu_device::read_word_m68307(offs_t address) { -// m68307_currentcs = m68307_calc_cs(this, address); +// m68307_currentcs = calc_cs(address); return m_space->read_word(address); } -uint32_t m68307cpu_device::read_dword_m68307(offs_t address) +uint32_t m68307_cpu_device::read_dword_m68307(offs_t address) { -// m68307_currentcs = m68307_calc_cs(this, address); +// m68307_currentcs = calc_cs(address); return m_space->read_dword(address); } -void m68307cpu_device::write_byte_m68307(offs_t address, uint8_t data) +void m68307_cpu_device::write_byte_m68307(offs_t address, uint8_t data) { -// m68307_currentcs = m68307_calc_cs(this, address); +// m68307_currentcs = calc_cs(address); m_space->write_byte(address, data); } -void m68307cpu_device::write_word_m68307(offs_t address, uint16_t data) +void m68307_cpu_device::write_word_m68307(offs_t address, uint16_t data) { -// m68307_currentcs = m68307_calc_cs(this, address); +// m68307_currentcs = calc_cs(address); m_space->write_word(address, data); } -void m68307cpu_device::write_dword_m68307(offs_t address, uint32_t data) +void m68307_cpu_device::write_dword_m68307(offs_t address, uint32_t data) { -// m68307_currentcs = m68307_calc_cs(this, address); +// m68307_currentcs = calc_cs(address); m_space->write_dword(address, data); } -void m68307cpu_device::init16_m68307(address_space &space) +void m68307_cpu_device::init16_m68307(address_space &space) { m_space = &space; m_direct = &space.direct(); opcode_xor = 0; - readimm16 = m68k_readimm16_delegate(&m68307cpu_device::simple_read_immediate_16_m68307, this); - read8 = m68k_read8_delegate(&m68307cpu_device::read_byte_m68307, this); - read16 = m68k_read16_delegate(&m68307cpu_device::read_word_m68307, this); - read32 = m68k_read32_delegate(&m68307cpu_device::read_dword_m68307, this); - write8 = m68k_write8_delegate(&m68307cpu_device::write_byte_m68307, this); - write16 = m68k_write16_delegate(&m68307cpu_device::write_word_m68307, this); - write32 = m68k_write32_delegate(&m68307cpu_device::write_dword_m68307, this); + readimm16 = m68k_readimm16_delegate(&m68307_cpu_device::simple_read_immediate_16_m68307, this); + read8 = m68k_read8_delegate(&m68307_cpu_device::read_byte_m68307, this); + read16 = m68k_read16_delegate(&m68307_cpu_device::read_word_m68307, this); + read32 = m68k_read32_delegate(&m68307_cpu_device::read_dword_m68307, this); + write8 = m68k_write8_delegate(&m68307_cpu_device::write_byte_m68307, this); + write16 = m68k_write16_delegate(&m68307_cpu_device::write_word_m68307, this); + write32 = m68k_write32_delegate(&m68307_cpu_device::write_dword_m68307, this); } -void m68307cpu_device::set_port_callbacks(m68307_porta_read_delegate porta_r, m68307_porta_write_delegate porta_w, m68307_portb_read_delegate portb_r, m68307_portb_write_delegate portb_w) +void m68307_cpu_device::set_port_callbacks( + porta_read_delegate &&porta_r, + porta_write_delegate &&porta_w, + portb_read_delegate &&portb_r, + portb_write_delegate &&portb_w) { - m_m68307_porta_r = porta_r; - m_m68307_porta_w = porta_w; - m_m68307_portb_r = portb_r; - m_m68307_portb_w = portb_w; + m_porta_r = std::move(porta_r); + m_porta_w = std::move(porta_w); + m_portb_r = std::move(portb_r); + m_portb_w = std::move(portb_w); } -uint16_t m68307cpu_device::get_cs(offs_t address) +uint16_t m68307_cpu_device::get_cs(offs_t address) { - m68307_currentcs = m68307_calc_cs(this, address); + m68307_currentcs = calc_cs(address); return m68307_currentcs; } @@ -199,19 +204,19 @@ uint16_t m68307cpu_device::get_cs(offs_t address) /* 68307 specifics - MOVE */ -void m68307cpu_device::set_interrupt(int level, int vector) +void m68307_cpu_device::set_interrupt(int level, int vector) { set_input_line_and_vector(level, HOLD_LINE, vector); } -void m68307cpu_device::timer0_interrupt() +void m68307_cpu_device::timer0_interrupt() { int prioritylevel = (m68307SIM->m_picr & 0x7000)>>12; int vector = (m68307SIM->m_pivr & 0x00f0) | 0xa; set_interrupt(prioritylevel, vector); } -void m68307cpu_device::timer1_interrupt() +void m68307_cpu_device::timer1_interrupt() { int prioritylevel = (m68307SIM->m_picr & 0x0700)>>8; int vector = (m68307SIM->m_pivr & 0x00f0) | 0xb; @@ -219,13 +224,13 @@ void m68307cpu_device::timer1_interrupt() } -void m68307cpu_device::serial_interrupt(int vector) +void m68307_cpu_device::serial_interrupt(int vector) { int prioritylevel = (m68307SIM->m_picr & 0x0070)>>4; set_interrupt(prioritylevel, vector); } -WRITE_LINE_MEMBER(m68307cpu_device::m68307_duart_irq_handler) +WRITE_LINE_MEMBER(m68307_cpu_device::m68307_duart_irq_handler) { if (state == ASSERT_LINE) { @@ -233,14 +238,14 @@ WRITE_LINE_MEMBER(m68307cpu_device::m68307_duart_irq_handler) } } -void m68307cpu_device::mbus_interrupt() +void m68307_cpu_device::mbus_interrupt() { int prioritylevel = (m68307SIM->m_picr & 0x0007)>>0; int vector = (m68307SIM->m_pivr & 0x00f0) | 0xd; set_interrupt(prioritylevel, vector); } -void m68307cpu_device::licr2_interrupt() +void m68307_cpu_device::licr2_interrupt() { int prioritylevel = (m68307SIM->m_licr2 & 0x0007)>>0; int vector = (m68307SIM->m_pivr & 0x00f0) | 0x9; @@ -250,7 +255,7 @@ void m68307cpu_device::licr2_interrupt() set_interrupt(prioritylevel, vector); } -void m68307cpu_device::device_start() +void m68307_cpu_device::device_start() { init_cpu_m68000(); @@ -281,14 +286,14 @@ void m68307cpu_device::device_start() read_inport.resolve(); write_outport.resolve_safe(); - set_port_callbacks(m68307_porta_read_delegate(),m68307_porta_write_delegate(),m68307_portb_read_delegate(),m68307_portb_write_delegate()); + set_port_callbacks(porta_read_delegate(), porta_write_delegate(), portb_read_delegate(), portb_write_delegate()); } -READ16_MEMBER( m68307cpu_device::m68307_internal_base_r ) +READ16_MEMBER( m68307_cpu_device::m68307_internal_base_r ) { - m68307cpu_device *m68k = this; + m68307_cpu_device *m68k = this; int pc = space.device().safe_pc(); logerror("%08x m68307_internal_base_r %08x, (%04x)\n", pc, offset*2,mem_mask); @@ -305,9 +310,9 @@ READ16_MEMBER( m68307cpu_device::m68307_internal_base_r ) return 0x0000; } -WRITE16_MEMBER( m68307cpu_device::m68307_internal_base_w ) +WRITE16_MEMBER( m68307_cpu_device::m68307_internal_base_w ) { - m68307cpu_device *m68k = this; + m68307_cpu_device *m68k = this; int pc = space.device().safe_pc(); logerror("%08x m68307_internal_base_w %08x, %04x (%04x)\n", pc, offset*2,data,mem_mask); @@ -333,10 +338,10 @@ WRITE16_MEMBER( m68307cpu_device::m68307_internal_base_w ) base = (m68k->m68307_base & 0x0fff) << 12; //mask = (m68k->m68307_base & 0xe000) >> 13; //if ( m68k->m68307_base & 0x1000 ) mask |= 7; - m68k->internal->install_readwrite_handler(base + 0x000, base + 0x04f, read16_delegate(FUNC(m68307cpu_device::m68307_internal_sim_r),this), write16_delegate(FUNC(m68307cpu_device::m68307_internal_sim_w),this)); - m68k->internal->install_readwrite_handler(base + 0x100, base + 0x11f, read8_delegate(FUNC(m68307cpu_device::m68307_internal_serial_r),this), write8_delegate(FUNC(m68307cpu_device::m68307_internal_serial_w),this), 0xffff); - m68k->internal->install_readwrite_handler(base + 0x120, base + 0x13f, read16_delegate(FUNC(m68307cpu_device::m68307_internal_timer_r),this), write16_delegate(FUNC(m68307cpu_device::m68307_internal_timer_w),this)); - m68k->internal->install_readwrite_handler(base + 0x140, base + 0x149, read8_delegate(FUNC(m68307cpu_device::m68307_internal_mbus_r),this), write8_delegate(FUNC(m68307cpu_device::m68307_internal_mbus_w),this), 0xffff); + m68k->internal->install_readwrite_handler(base + 0x000, base + 0x04f, read16_delegate(FUNC(m68307_cpu_device::m68307_internal_sim_r),this), write16_delegate(FUNC(m68307_cpu_device::m68307_internal_sim_w),this)); + m68k->internal->install_readwrite_handler(base + 0x100, base + 0x11f, read8_delegate(FUNC(m68307_cpu_device::m68307_internal_serial_r),this), write8_delegate(FUNC(m68307_cpu_device::m68307_internal_serial_w),this), 0xffff); + m68k->internal->install_readwrite_handler(base + 0x120, base + 0x13f, read16_delegate(FUNC(m68307_cpu_device::m68307_internal_timer_r),this), write16_delegate(FUNC(m68307_cpu_device::m68307_internal_timer_w),this)); + m68k->internal->install_readwrite_handler(base + 0x140, base + 0x149, read8_delegate(FUNC(m68307_cpu_device::m68307_internal_mbus_r),this), write8_delegate(FUNC(m68307_cpu_device::m68307_internal_mbus_w),this), 0xffff); break; diff --git a/src/devices/machine/68307.h b/src/devices/machine/68307.h index c3ea6ea9286..e6ba1afcf44 100644 --- a/src/devices/machine/68307.h +++ b/src/devices/machine/68307.h @@ -1,61 +1,52 @@ // license:BSD-3-Clause // copyright-holders:David Haywood /* 68307 */ - +#ifndef MAME_MACHINE_68307_H +#define MAME_MACHINE_68307_H #pragma once -#ifndef __M68307_H__ -#define __M68307_H__ #include "cpu/m68000/m68000.h" - -#include "68307sim.h" -#include "68307bus.h" -#include "68307tmu.h" #include "machine/mc68681.h" -typedef device_delegate m68307_porta_read_delegate; -typedef device_delegate m68307_porta_write_delegate; -typedef device_delegate m68307_portb_read_delegate; -typedef device_delegate m68307_portb_write_delegate; - - /* trampolines so we can specify the 68681 serial configuration when adding the CPU */ #define MCFG_MC68307_SERIAL_A_TX_CALLBACK(_cb) \ - devcb = &m68307cpu_device::set_a_tx_cb(*device, DEVCB_##_cb); + devcb = &m68307_cpu_device::set_a_tx_cb(*device, DEVCB_##_cb); #define MCFG_MC68307_SERIAL_B_TX_CALLBACK(_cb) \ - devcb = &m68307cpu_device::set_b_tx_cb(*device, DEVCB_##_cb); + devcb = &m68307_cpu_device::set_b_tx_cb(*device, DEVCB_##_cb); // deprecated: use ipX_w() instead #define MCFG_MC68307_SERIAL_INPORT_CALLBACK(_cb) \ - devcb = &m68307cpu_device::set_inport_cb(*device, DEVCB_##_cb); + devcb = &m68307_cpu_device::set_inport_cb(*device, DEVCB_##_cb); #define MCFG_MC68307_SERIAL_OUTPORT_CALLBACK(_cb) \ - devcb = &m68307cpu_device::set_outport_cb(*device, DEVCB_##_cb); + devcb = &m68307_cpu_device::set_outport_cb(*device, DEVCB_##_cb); -class m68307cpu_device : public m68000_device { +class m68307_cpu_device : public m68000_device +{ public: - m68307cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + typedef device_delegate porta_read_delegate; + typedef device_delegate porta_write_delegate; + typedef device_delegate portb_read_delegate; + typedef device_delegate portb_write_delegate; + + m68307_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); /* trampolines so we can specify the 68681 serial configuration when adding the CPU */ - template static devcb_base &set_irq_cb(device_t &device, _Object object) { return downcast(device).write_irq.set_callback(object); } - template static devcb_base &set_a_tx_cb(device_t &device, _Object object) { return downcast(device).write_a_tx.set_callback(object); } - template static devcb_base &set_b_tx_cb(device_t &device, _Object object) { return downcast(device).write_b_tx.set_callback(object); } - template static devcb_base &set_inport_cb(device_t &device, _Object object) { return downcast(device).read_inport.set_callback(object); } - template static devcb_base &set_outport_cb(device_t &device, _Object object) { return downcast(device).write_outport.set_callback(object); } + template static devcb_base &set_irq_cb(device_t &device, Object &&cb) { return downcast(device).write_irq.set_callback(std::forward(cb)); } + template static devcb_base &set_a_tx_cb(device_t &device, Object &&cb) { return downcast(device).write_a_tx.set_callback(std::forward(cb)); } + template static devcb_base &set_b_tx_cb(device_t &device, Object &&cb) { return downcast(device).write_b_tx.set_callback(std::forward(cb)); } + template static devcb_base &set_inport_cb(device_t &device, Object &&cb) { return downcast(device).read_inport.set_callback(std::forward(cb)); } + template static devcb_base &set_outport_cb(device_t &device, Object &&cb) { return downcast(device).write_outport.set_callback(std::forward(cb)); } DECLARE_WRITE_LINE_MEMBER(m68307_duart_irq_handler); - DECLARE_WRITE_LINE_MEMBER(m68307_duart_txa){ write_a_tx(state); } - DECLARE_WRITE_LINE_MEMBER(m68307_duart_txb){ write_b_tx(state); } - DECLARE_READ8_MEMBER(m68307_duart_input_r){ return read_inport(); } - DECLARE_WRITE8_MEMBER(m68307_duart_output_w){ write_outport(data); } - devcb_write_line write_irq, write_a_tx, write_b_tx; - devcb_read8 read_inport; - devcb_write8 write_outport; - + DECLARE_WRITE_LINE_MEMBER(m68307_duart_txa) { write_a_tx(state); } + DECLARE_WRITE_LINE_MEMBER(m68307_duart_txb) { write_b_tx(state); } + DECLARE_READ8_MEMBER(m68307_duart_input_r) { return read_inport(); } + DECLARE_WRITE8_MEMBER(m68307_duart_output_w) { write_outport(data); } uint16_t simple_read_immediate_16_m68307(offs_t address); @@ -66,20 +57,6 @@ public: void write_word_m68307(offs_t address, uint16_t data); void write_dword_m68307(offs_t address, uint32_t data); - - /* 68307 peripheral modules */ - m68307_sim* m68307SIM; - m68307_mbus* m68307MBUS; -// m68307_serial* m68307SERIAL; - m68307_timer* m68307TIMER; - - uint16_t m68307_base; - uint16_t m68307_scrhigh; - uint16_t m68307_scrlow; - - int m68307_currentcs; - - DECLARE_READ16_MEMBER( m68307_internal_base_r ); DECLARE_WRITE16_MEMBER( m68307_internal_base_w ); DECLARE_READ16_MEMBER( m68307_internal_timer_r ); @@ -91,38 +68,60 @@ public: DECLARE_READ8_MEMBER( m68307_internal_mbus_r ); DECLARE_WRITE8_MEMBER( m68307_internal_mbus_w ); - /* callbacks for internal ports */ - void set_port_callbacks(m68307_porta_read_delegate porta_r, m68307_porta_write_delegate porta_w, m68307_portb_read_delegate portb_r, m68307_portb_write_delegate portb_w); - void set_interrupt(int level, int vector); + void set_port_callbacks(porta_read_delegate &&porta_r, porta_write_delegate &&porta_w, portb_read_delegate &&portb_r, portb_write_delegate &&portb_w); uint16_t get_cs(offs_t address); + void licr2_interrupt(); + +protected: + class m68307_sim; + class m68307_mbus; + class m68307_timer; + + virtual void device_start() override; + virtual void device_reset() override; + virtual machine_config_constructor device_mconfig_additions() const override; + + virtual uint32_t disasm_min_opcode_bytes() const override { return 2; } + virtual uint32_t disasm_max_opcode_bytes() const override { return 10; } + + virtual uint32_t execute_min_cycles() const override { return 4; } + virtual uint32_t execute_max_cycles() const override { return 158; } + + void set_interrupt(int level, int vector); void timer0_interrupt(); void timer1_interrupt(); void serial_interrupt(int vector); void mbus_interrupt(); - void licr2_interrupt(); - - m68307_porta_read_delegate m_m68307_porta_r; - m68307_porta_write_delegate m_m68307_porta_w; - m68307_portb_read_delegate m_m68307_portb_r; - m68307_portb_write_delegate m_m68307_portb_w; void init16_m68307(address_space &space); - virtual uint32_t disasm_min_opcode_bytes() const override { return 2; }; - virtual uint32_t disasm_max_opcode_bytes() const override { return 10; }; + int calc_cs(offs_t address) const; - virtual uint32_t execute_min_cycles() const override { return 4; }; - virtual uint32_t execute_max_cycles() const override { return 158; }; + devcb_write_line write_irq, write_a_tx, write_b_tx; + devcb_read8 read_inport; + devcb_write8 write_outport; + + /* 68307 peripheral modules */ + m68307_sim* m68307SIM; + m68307_mbus* m68307MBUS; +// m68307_serial* m68307SERIAL; + m68307_timer* m68307TIMER; + + uint16_t m68307_base; + uint16_t m68307_scrhigh; + uint16_t m68307_scrlow; + + int m68307_currentcs; + + porta_read_delegate m_porta_r; + porta_write_delegate m_porta_w; + portb_read_delegate m_portb_r; + portb_write_delegate m_portb_w; required_device m_duart; -protected: - virtual machine_config_constructor device_mconfig_additions() const override; - virtual void device_start() override; - virtual void device_reset() override; }; -extern const device_type M68307; - +DECLARE_DEVICE_TYPE(M68307, m68307_cpu_device) -#endif +#endif // MAME_MACHINE_68307_H diff --git a/src/devices/machine/68307bus.cpp b/src/devices/machine/68307bus.cpp index 91c193f2d4e..3eea5a0811d 100644 --- a/src/devices/machine/68307bus.cpp +++ b/src/devices/machine/68307bus.cpp @@ -4,109 +4,107 @@ /* all ports on this are 8-bit? */ #include "emu.h" -#include "68307.h" +#include "68307bus.h" -READ8_MEMBER( m68307cpu_device::m68307_internal_mbus_r ) +#define m68307BUS_MADR (0x01) +#define m68307BUS_MFDR (0x03) +#define m68307BUS_MBCR (0x05) +#define m68307BUS_MBSR (0x07) +#define m68307BUS_MBDR (0x09) + +READ8_MEMBER( m68307_cpu_device::m68307_internal_mbus_r ) { - m68307cpu_device *m68k = this; - m68307_mbus* mbus = m68k->m68307MBUS; - assert(mbus != nullptr); + assert(m68307MBUS); + m68307_mbus &mbus = *m68307MBUS; uint8_t retval; - if (mbus) - { - int pc = space.device().safe_pc(); - - - switch (offset) - { - case m68307BUS_MADR: - logerror("%08x m68307_internal_mbus_r %08x (MADR - M-Bus Address Register)\n", pc, offset); - return space.machine().rand(); - - case m68307BUS_MFDR: - logerror("%08x m68307_internal_mbus_r %08x (MFDR - M-Bus Frequency Divider Register)\n", pc, offset); - return space.machine().rand(); - - case m68307BUS_MBCR: - logerror("%08x m68307_internal_mbus_r %08x (MFCR - M-Bus Control Register)\n", pc, offset); - return mbus->m_MFCR;//space.machine().rand(); + int pc = space.device().safe_pc(); - case m68307BUS_MBSR: - logerror("%08x m68307_internal_mbus_r %08x (MBSR - M-Bus Status Register)\n", pc, offset); - retval = 0; - if (mbus->m_busy) retval |= 0x20; - if (mbus->m_intpend) retval |= 0x02; - return retval; - - case m68307BUS_MBDR: - logerror("%08x m68307_internal_mbus_r %08x (MBDR - M-Bus Data I/O Register)\n", pc, offset); - mbus->m_intpend = true; - return 0xff;//space.machine().rand(); - - default: - logerror("%08x m68307_internal_mbus_r %08x (UNKNOWN / ILLEGAL)\n", pc, offset); - return 0x00; - } + switch (offset) + { + case m68307BUS_MADR: + logerror("%08x m68307_internal_mbus_r %08x (MADR - M-Bus Address Register)\n", pc, offset); + return space.machine().rand(); + + case m68307BUS_MFDR: + logerror("%08x m68307_internal_mbus_r %08x (MFDR - M-Bus Frequency Divider Register)\n", pc, offset); + return space.machine().rand(); + + case m68307BUS_MBCR: + logerror("%08x m68307_internal_mbus_r %08x (MFCR - M-Bus Control Register)\n", pc, offset); + return mbus.m_MFCR;//space.machine().rand(); + + case m68307BUS_MBSR: + logerror("%08x m68307_internal_mbus_r %08x (MBSR - M-Bus Status Register)\n", pc, offset); + retval = 0; + if (mbus.m_busy) retval |= 0x20; + if (mbus.m_intpend) retval |= 0x02; + + return retval; + + case m68307BUS_MBDR: + logerror("%08x m68307_internal_mbus_r %08x (MBDR - M-Bus Data I/O Register)\n", pc, offset); + mbus.m_intpend = true; + return 0xff;//space.machine().rand(); + + default: + logerror("%08x m68307_internal_mbus_r %08x (UNKNOWN / ILLEGAL)\n", pc, offset); + return 0x00; } return 0xff; } -WRITE8_MEMBER( m68307cpu_device::m68307_internal_mbus_w ) +WRITE8_MEMBER( m68307_cpu_device::m68307_internal_mbus_w ) { - m68307cpu_device *m68k = this; - m68307_mbus* mbus = m68k->m68307MBUS; - assert(mbus != nullptr); + assert(m68307MBUS); + m68307_mbus &mbus = *m68307MBUS; - if (mbus) - { - int pc = space.device().safe_pc(); + int pc = space.device().safe_pc(); - switch (offset) - { - case m68307BUS_MADR: - logerror("%08x m68307_internal_mbus_w %08x, %02x (MADR - M-Bus Address Register)\n", pc, offset,data); - break; + switch (offset) + { + case m68307BUS_MADR: + logerror("%08x m68307_internal_mbus_w %08x, %02x (MADR - M-Bus Address Register)\n", pc, offset,data); + break; - case m68307BUS_MFDR: - logerror("%08x m68307_internal_mbus_w %08x, %02x (MFDR - M-Bus Frequency Divider Register)\n", pc, offset,data); - break; + case m68307BUS_MFDR: + logerror("%08x m68307_internal_mbus_w %08x, %02x (MFDR - M-Bus Frequency Divider Register)\n", pc, offset,data); + break; - case m68307BUS_MBCR: - logerror("%08x m68307_internal_mbus_w %08x, %02x (MFCR - M-Bus Control Register)\n", pc, offset,data); + case m68307BUS_MBCR: + logerror("%08x m68307_internal_mbus_w %08x, %02x (MFCR - M-Bus Control Register)\n", pc, offset,data); - mbus->m_MFCR = data; - if (data & 0x80) - { - mbus->m_busy = false; - mbus->m_intpend = false; - } - if (data & 0x20) mbus->m_busy = true; + mbus.m_MFCR = data; + if (data & 0x80) + { + mbus.m_busy = false; + mbus.m_intpend = false; + } + if (data & 0x20) mbus.m_busy = true; - break; + break; - case m68307BUS_MBSR: - logerror("%08x m68307_internal_mbus_w %08x, %02x (MBSR - M-Bus Status Register)\n", pc, offset,data); - break; + case m68307BUS_MBSR: + logerror("%08x m68307_internal_mbus_w %08x, %02x (MBSR - M-Bus Status Register)\n", pc, offset,data); + break; - case m68307BUS_MBDR: - logerror("%08x m68307_internal_mbus_w %08x, %02x (MBDR - M-Bus Data I/O Register)\n", pc, offset,data); + case m68307BUS_MBDR: + logerror("%08x m68307_internal_mbus_w %08x, %02x (MBDR - M-Bus Data I/O Register)\n", pc, offset,data); - mbus->m_intpend = true; + mbus.m_intpend = true; - break; + break; - default: - logerror("%08x m68307_internal_mbus_w %08x, %02x (UNKNOWN / ILLEGAL)\n", pc, offset,data); - break; - } + default: + logerror("%08x m68307_internal_mbus_w %08x, %02x (UNKNOWN / ILLEGAL)\n", pc, offset,data); + break; } } -void m68307_mbus::reset(void) +void m68307_cpu_device::m68307_mbus::reset() { m_busy = false; } diff --git a/src/devices/machine/68307bus.h b/src/devices/machine/68307bus.h index eb6db9811ae..e927979c034 100644 --- a/src/devices/machine/68307bus.h +++ b/src/devices/machine/68307bus.h @@ -1,22 +1,22 @@ // license:BSD-3-Clause // copyright-holders:David Haywood -#include "cpu/m68000/m68000.h" +#ifndef MAME_MACHINE_68307_BUS_H +#define MAME_MACHINE_68307_BUS_H -#define m68307BUS_MADR (0x01) -#define m68307BUS_MFDR (0x03) -#define m68307BUS_MBCR (0x05) -#define m68307BUS_MBSR (0x07) -#define m68307BUS_MBDR (0x09) +#pragma once +#include "68307.h" -class m68307_mbus -{ - public: +class m68307_cpu_device::m68307_mbus +{ +public: uint16_t m_MFCR; bool m_busy; bool m_intpend; - void reset(void); + void reset(); }; + +#endif // MAME_MACHINE_68307_BUS_H diff --git a/src/devices/machine/68307sim.cpp b/src/devices/machine/68307sim.cpp index 47479cae1da..2913d64e0a5 100644 --- a/src/devices/machine/68307sim.cpp +++ b/src/devices/machine/68307sim.cpp @@ -3,167 +3,181 @@ /* 68307 SIM module */ #include "emu.h" -#include "68307.h" - - -READ16_MEMBER( m68307cpu_device::m68307_internal_sim_r ) +#include "68307sim.h" + +/* ports */ +#define m68307SIM_PACNT (0x10) +#define m68307SIM_PADDR (0x12) +#define m68307SIM_PADAT (0x14) +#define m68307SIM_PBCNT (0x16) +#define m68307SIM_PBDDR (0x18) +#define m68307SIM_PBDAT (0x1a) + + +/* interrupt logic */ +#define m68307SIM_LICR1 (0x20) +#define m68307SIM_LICR2 (0x22) +#define m68307SIM_PICR (0x24) +#define m68307SIM_PIVR (0x26) + +/* used for the CS logic */ +#define m68307SIM_BR0 (0x40) +#define m68307SIM_OR0 (0x42) +#define m68307SIM_BR1 (0x44) +#define m68307SIM_OR1 (0x46) +#define m68307SIM_BR2 (0x48) +#define m68307SIM_OR2 (0x4a) +#define m68307SIM_BR3 (0x4c) +#define m68307SIM_OR3 (0x4e) + +READ16_MEMBER( m68307_cpu_device::m68307_internal_sim_r ) { - m68307cpu_device *m68k = this; - m68307_sim* sim = m68k->m68307SIM; - assert(sim != nullptr); + assert(m68307SIM); + m68307_sim &sim = *m68307SIM; int pc = space.device().safe_pc(); - if (sim) + switch (offset<<1) { - switch (offset<<1) - { - case m68307SIM_PADAT: return sim->read_padat(this, space, mem_mask); - case m68307SIM_PBDAT: return sim->read_pbdat(this, space, mem_mask); - - case m68307SIM_LICR2: return (sim->m_licr2); - - case m68307SIM_BR0: return (sim->m_br[0]); - case m68307SIM_OR0: return (sim->m_or[0]); - case m68307SIM_BR1: return (sim->m_br[1]); - case m68307SIM_OR1: return (sim->m_or[1]); - case m68307SIM_BR2: return (sim->m_br[2]); - case m68307SIM_OR2: return (sim->m_or[2]); - case m68307SIM_BR3: return (sim->m_br[3]); - case m68307SIM_OR3: return (sim->m_or[3]); - - default: - logerror("%08x m68307_internal_sim_r %08x, (%04x)\n", pc, offset*2,mem_mask); - return 0xff; - - } + case m68307SIM_PADAT: return sim.read_padat(this, space, mem_mask); + case m68307SIM_PBDAT: return sim.read_pbdat(this, space, mem_mask); + + case m68307SIM_LICR2: return sim.m_licr2; + + case m68307SIM_BR0: return sim.m_br[0]; + case m68307SIM_OR0: return sim.m_or[0]; + case m68307SIM_BR1: return sim.m_br[1]; + case m68307SIM_OR1: return sim.m_or[1]; + case m68307SIM_BR2: return sim.m_br[2]; + case m68307SIM_OR2: return sim.m_or[2]; + case m68307SIM_BR3: return sim.m_br[3]; + case m68307SIM_OR3: return sim.m_or[3]; + + default: + logerror("%08x m68307_internal_sim_r %08x, (%04x)\n", pc, offset*2, mem_mask); + return 0xff; } return 0x0000; } -WRITE16_MEMBER( m68307cpu_device::m68307_internal_sim_w ) +WRITE16_MEMBER( m68307_cpu_device::m68307_internal_sim_w ) { - m68307cpu_device *m68k = this; - m68307_sim* sim = m68k->m68307SIM; - assert(sim != nullptr); + assert(m68307SIM); + m68307_sim &sim = *m68307SIM; int pc = space.device().safe_pc(); - if (sim) + switch (offset<<1) { - switch (offset<<1) - { - case m68307SIM_PACNT: - logerror("%08x m68307_internal_sim_w %08x, %04x (%04x) (Port A (8-bit) Control Register - PACNT)\n", pc, offset*2,data,mem_mask); - sim->write_pacnt(data,mem_mask); - break; - - case m68307SIM_PADDR: - logerror("%08x m68307_internal_sim_w %08x, %04x (%04x) (Port A (8-bit) Direction Register - PADDR)\n", pc, offset*2,data,mem_mask); - sim->write_paddr(data,mem_mask); - break; - - case m68307SIM_PADAT: - sim->write_padat(this, space, data,mem_mask); - break; - - case m68307SIM_PBCNT: - logerror("%08x m68307_internal_sim_w %08x, %04x (%04x) (Port B (16-bit) Control Register - PBCNT)\n", pc, offset*2,data,mem_mask); - sim->write_pbcnt(data,mem_mask); - break; - - case m68307SIM_PBDDR: - logerror("%08x m68307_internal_sim_w %08x, %04x (%04x) (Port B (16-bit) Direction Register - PBDDR)\n", pc, offset*2,data,mem_mask); - sim->write_pbddr(data,mem_mask); - break; - - case m68307SIM_PBDAT: - sim->write_pbdat(this, space, data, mem_mask); - break; - - - case m68307SIM_LICR1: - logerror("%08x m68307_internal_sim_w %08x, %04x (%04x) (Latched Interrupt Control Register 1 - LICR1)\n", pc, offset*2,data,mem_mask); - sim->write_licr1(this,data,mem_mask); - break; - - case m68307SIM_LICR2: - logerror("%08x m68307_internal_sim_w %08x, %04x (%04x) (Latched Interrupt Control Register 2 - LICR2)\n", pc, offset*2,data,mem_mask); - sim->write_licr2(this,data,mem_mask); - break; - - case m68307SIM_PICR: - logerror("%08x m68307_internal_sim_w %08x, %04x (%04x) (Peripheral Interrupt Control Register - PICR)\n", pc, offset*2,data,mem_mask); - sim->write_picr(this,data,mem_mask); - break; - - case m68307SIM_PIVR: - logerror("%08x m68307_internal_sim_w %08x, %04x (%04x) (Peripheral Interrupt Vector Register - PIVR)\n", pc, offset*2,data,mem_mask); - sim->write_pivr(this,data,mem_mask); - break; - - case m68307SIM_BR0: - COMBINE_DATA(&sim->m_br[0]); - break; - case m68307SIM_OR0: - COMBINE_DATA(&sim->m_or[0]); - break; - case m68307SIM_BR1: - COMBINE_DATA(&sim->m_br[1]); - break; - case m68307SIM_OR1: - COMBINE_DATA(&sim->m_or[1]); - break; - case m68307SIM_BR2: - COMBINE_DATA(&sim->m_br[2]); - break; - case m68307SIM_OR2: - COMBINE_DATA(&sim->m_or[2]); - break; - case m68307SIM_BR3: - COMBINE_DATA(&sim->m_br[3]); - break; - case m68307SIM_OR3: - COMBINE_DATA(&sim->m_or[3]); - break; - - - - default : - logerror("%08x m68307_internal_sim_w %08x, %04x (%04x)\n", pc, offset*2,data,mem_mask); - break; - - } + case m68307SIM_PACNT: + logerror("%08x m68307_internal_sim_w %08x, %04x (%04x) (Port A (8-bit) Control Register - PACNT)\n", pc, offset*2,data,mem_mask); + sim.write_pacnt(data,mem_mask); + break; + + case m68307SIM_PADDR: + logerror("%08x m68307_internal_sim_w %08x, %04x (%04x) (Port A (8-bit) Direction Register - PADDR)\n", pc, offset*2,data,mem_mask); + sim.write_paddr(data,mem_mask); + break; + + case m68307SIM_PADAT: + sim.write_padat(this, space, data,mem_mask); + break; + + case m68307SIM_PBCNT: + logerror("%08x m68307_internal_sim_w %08x, %04x (%04x) (Port B (16-bit) Control Register - PBCNT)\n", pc, offset*2,data,mem_mask); + sim.write_pbcnt(data,mem_mask); + break; + + case m68307SIM_PBDDR: + logerror("%08x m68307_internal_sim_w %08x, %04x (%04x) (Port B (16-bit) Direction Register - PBDDR)\n", pc, offset*2,data,mem_mask); + sim.write_pbddr(data,mem_mask); + break; + + case m68307SIM_PBDAT: + sim.write_pbdat(this, space, data, mem_mask); + break; + + + case m68307SIM_LICR1: + logerror("%08x m68307_internal_sim_w %08x, %04x (%04x) (Latched Interrupt Control Register 1 - LICR1)\n", pc, offset*2,data,mem_mask); + sim.write_licr1(this,data,mem_mask); + break; + + case m68307SIM_LICR2: + logerror("%08x m68307_internal_sim_w %08x, %04x (%04x) (Latched Interrupt Control Register 2 - LICR2)\n", pc, offset*2,data,mem_mask); + sim.write_licr2(this,data,mem_mask); + break; + + case m68307SIM_PICR: + logerror("%08x m68307_internal_sim_w %08x, %04x (%04x) (Peripheral Interrupt Control Register - PICR)\n", pc, offset*2,data,mem_mask); + sim.write_picr(this,data,mem_mask); + break; + + case m68307SIM_PIVR: + logerror("%08x m68307_internal_sim_w %08x, %04x (%04x) (Peripheral Interrupt Vector Register - PIVR)\n", pc, offset*2,data,mem_mask); + sim.write_pivr(this,data,mem_mask); + break; + + case m68307SIM_BR0: + COMBINE_DATA(&sim.m_br[0]); + break; + case m68307SIM_OR0: + COMBINE_DATA(&sim.m_or[0]); + break; + case m68307SIM_BR1: + COMBINE_DATA(&sim.m_br[1]); + break; + case m68307SIM_OR1: + COMBINE_DATA(&sim.m_or[1]); + break; + case m68307SIM_BR2: + COMBINE_DATA(&sim.m_br[2]); + break; + case m68307SIM_OR2: + COMBINE_DATA(&sim.m_or[2]); + break; + case m68307SIM_BR3: + COMBINE_DATA(&sim.m_br[3]); + break; + case m68307SIM_OR3: + COMBINE_DATA(&sim.m_or[3]); + break; + + + + default : + logerror("%08x m68307_internal_sim_w %08x, %04x (%04x)\n", pc, offset*2,data,mem_mask); + break; } } -void m68307_sim::write_pacnt(uint16_t data, uint16_t mem_mask) +void m68307_cpu_device::m68307_sim::write_pacnt(uint16_t data, uint16_t mem_mask) { COMBINE_DATA(&m_pacnt); } -void m68307_sim::write_paddr(uint16_t data, uint16_t mem_mask) +void m68307_cpu_device::m68307_sim::write_paddr(uint16_t data, uint16_t mem_mask) { COMBINE_DATA(&m_paddr); } -uint16_t m68307_sim::read_padat(m68307cpu_device* m68k, address_space &space, uint16_t mem_mask) +uint16_t m68307_cpu_device::m68307_sim::read_padat(m68307_cpu_device* m68k, address_space &space, uint16_t mem_mask) { int pc = space.device().safe_pc(); - if (!m68k->m_m68307_porta_r.isnull()) + if (!m68k->m_porta_r.isnull()) { // for general purpose bits, if configured as 'output' then anything output gets latched // and anything configured as input is read from the port uint8_t outputbits = m_paddr; uint8_t inputbits = ~m_paddr; uint8_t general_purpose_bits = ~m_pacnt; - uint8_t indat = m68k->m_m68307_porta_r(space, false, (inputbits & general_purpose_bits)&mem_mask) & ((inputbits & general_purpose_bits) & mem_mask); // read general purpose input lines - indat |= m68k->m_m68307_porta_r(space, true, (inputbits & ~general_purpose_bits)&mem_mask) & ((inputbits & ~general_purpose_bits)& mem_mask); // read dedicated input lines + uint8_t indat = m68k->m_porta_r(space, false, (inputbits & general_purpose_bits)&mem_mask) & ((inputbits & general_purpose_bits) & mem_mask); // read general purpose input lines + indat |= m68k->m_porta_r(space, true, (inputbits & ~general_purpose_bits)&mem_mask) & ((inputbits & ~general_purpose_bits)& mem_mask); // read dedicated input lines uint8_t outdat = (m_padat & outputbits) & general_purpose_bits; // read general purpose output lines (reads latched data) return (indat | outdat); @@ -177,14 +191,14 @@ uint16_t m68307_sim::read_padat(m68307cpu_device* m68k, address_space &space, ui } -void m68307_sim::write_padat(m68307cpu_device* m68k, address_space &space, uint16_t data, uint16_t mem_mask) +void m68307_cpu_device::m68307_sim::write_padat(m68307_cpu_device* m68k, address_space &space, uint16_t data, uint16_t mem_mask) { int pc = space.device().safe_pc(); COMBINE_DATA(&m_padat); - if (!m68k->m_m68307_porta_w.isnull()) + if (!m68k->m_porta_w.isnull()) { - m68k->m_m68307_porta_w(space, false, data, 0xff); + m68k->m_porta_w(space, false, data, 0xff); } else { @@ -192,21 +206,21 @@ void m68307_sim::write_padat(m68307cpu_device* m68k, address_space &space, uint1 } } -void m68307_sim::write_pbcnt(uint16_t data, uint16_t mem_mask) +void m68307_cpu_device::m68307_sim::write_pbcnt(uint16_t data, uint16_t mem_mask) { COMBINE_DATA(&m_pbcnt); } -void m68307_sim::write_pbddr(uint16_t data, uint16_t mem_mask) +void m68307_cpu_device::m68307_sim::write_pbddr(uint16_t data, uint16_t mem_mask) { COMBINE_DATA(&m_pbddr); } -uint16_t m68307_sim::read_pbdat(m68307cpu_device* m68k, address_space &space, uint16_t mem_mask) +uint16_t m68307_cpu_device::m68307_sim::read_pbdat(m68307_cpu_device* m68k, address_space &space, uint16_t mem_mask) { int pc = space.device().safe_pc(); - if (!m68k->m_m68307_portb_r.isnull()) + if (!m68k->m_portb_r.isnull()) { // for general purpose bits, if configured as 'output' then anything output gets latched // and anything configured as input is read from the port @@ -214,8 +228,8 @@ uint16_t m68307_sim::read_pbdat(m68307cpu_device* m68k, address_space &space, ui uint16_t inputbits = ~m_pbddr; uint16_t general_purpose_bits = ~m_pbcnt; - uint16_t indat = m68k->m_m68307_portb_r(space, false, (inputbits & general_purpose_bits)&mem_mask) & ((inputbits & general_purpose_bits) & mem_mask); // read general purpose input lines - indat |= m68k->m_m68307_portb_r(space, true, (inputbits & ~general_purpose_bits)&mem_mask) & ((inputbits & ~general_purpose_bits)& mem_mask); // read dedicated input lines + uint16_t indat = m68k->m_portb_r(space, false, (inputbits & general_purpose_bits)&mem_mask) & ((inputbits & general_purpose_bits) & mem_mask); // read general purpose input lines + indat |= m68k->m_portb_r(space, true, (inputbits & ~general_purpose_bits)&mem_mask) & ((inputbits & ~general_purpose_bits)& mem_mask); // read dedicated input lines uint16_t outdat = (m_pbdat & outputbits) & general_purpose_bits; // read general purpose output lines (reads latched data) return (indat | outdat); @@ -228,14 +242,14 @@ uint16_t m68307_sim::read_pbdat(m68307cpu_device* m68k, address_space &space, ui } -void m68307_sim::write_pbdat(m68307cpu_device* m68k, address_space &space, uint16_t data, uint16_t mem_mask) +void m68307_cpu_device::m68307_sim::write_pbdat(m68307_cpu_device* m68k, address_space &space, uint16_t data, uint16_t mem_mask) { int pc = space.device().safe_pc(); COMBINE_DATA(&m_pbdat); - if (!m68k->m_m68307_portb_w.isnull()) + if (!m68k->m_portb_w.isnull()) { - m68k->m_m68307_portb_w(space, false, data, mem_mask); + m68k->m_portb_w(space, false, data, mem_mask); } else { @@ -243,7 +257,7 @@ void m68307_sim::write_pbdat(m68307cpu_device* m68k, address_space &space, uint1 } } -void m68307_sim::write_licr1(m68307cpu_device* m68k, uint16_t data, uint16_t mem_mask) +void m68307_cpu_device::m68307_sim::write_licr1(m68307_cpu_device* m68k, uint16_t data, uint16_t mem_mask) { COMBINE_DATA(&m_licr1); data = m_licr1; @@ -259,7 +273,7 @@ void m68307_sim::write_licr1(m68307cpu_device* m68k, uint16_t data, uint16_t mem m68k->logerror("\n"); } -void m68307_sim::write_licr2(m68307cpu_device* m68k, uint16_t data, uint16_t mem_mask) +void m68307_cpu_device::m68307_sim::write_licr2(m68307_cpu_device* m68k, uint16_t data, uint16_t mem_mask) { COMBINE_DATA(&m_licr2); uint16_t newdata = m_licr2; @@ -283,7 +297,7 @@ void m68307_sim::write_licr2(m68307cpu_device* m68k, uint16_t data, uint16_t mem } -void m68307_sim::write_picr(m68307cpu_device* m68k, uint16_t data, uint16_t mem_mask) +void m68307_cpu_device::m68307_sim::write_picr(m68307_cpu_device* m68k, uint16_t data, uint16_t mem_mask) { COMBINE_DATA(&m_picr); data = m_picr; @@ -295,7 +309,7 @@ void m68307_sim::write_picr(m68307cpu_device* m68k, uint16_t data, uint16_t mem_ m68k->logerror("\n"); } -void m68307_sim::write_pivr(m68307cpu_device* m68k, uint16_t data, uint16_t mem_mask) +void m68307_cpu_device::m68307_sim::write_pivr(m68307_cpu_device* m68k, uint16_t data, uint16_t mem_mask) { COMBINE_DATA(&m_pivr); data = m_pivr; @@ -304,7 +318,7 @@ void m68307_sim::write_pivr(m68307cpu_device* m68k, uint16_t data, uint16_t mem_ m68k->logerror("high vector %01x\n", (data>>4)&0xf); } -void m68307_sim::reset(void) +void m68307_cpu_device::m68307_sim::reset() { for (int i=0;i<4;i++) { diff --git a/src/devices/machine/68307sim.h b/src/devices/machine/68307sim.h index 0d7c5ceea1a..e709f11a96f 100644 --- a/src/devices/machine/68307sim.h +++ b/src/devices/machine/68307sim.h @@ -1,41 +1,17 @@ // license:BSD-3-Clause // copyright-holders:David Haywood /* 68307 SIM module */ +#ifndef MAME_MACHINE_68307SIM_H +#define MAME_MACHINE_68307SIM_H -#include "cpu/m68000/m68000.h" +#pragma once -class m68307cpu_device; +#include "68307.h" -/* ports */ -#define m68307SIM_PACNT (0x10) -#define m68307SIM_PADDR (0x12) -#define m68307SIM_PADAT (0x14) -#define m68307SIM_PBCNT (0x16) -#define m68307SIM_PBDDR (0x18) -#define m68307SIM_PBDAT (0x1a) - - -/* interrupt logic */ -#define m68307SIM_LICR1 (0x20) -#define m68307SIM_LICR2 (0x22) -#define m68307SIM_PICR (0x24) -#define m68307SIM_PIVR (0x26) - -/* used for the CS logic */ -#define m68307SIM_BR0 (0x40) -#define m68307SIM_OR0 (0x42) -#define m68307SIM_BR1 (0x44) -#define m68307SIM_OR1 (0x46) -#define m68307SIM_BR2 (0x48) -#define m68307SIM_OR2 (0x4a) -#define m68307SIM_BR3 (0x4c) -#define m68307SIM_OR3 (0x4e) - -class m68307_sim +class m68307_cpu_device::m68307_sim { - public: - +public: uint16_t m_pacnt; // 8-bit uint16_t m_paddr; // 8-bit uint16_t m_padat; // 8-bit @@ -52,23 +28,22 @@ class m68307_sim uint16_t m_licr1; uint16_t m_licr2; - void write_pacnt(uint16_t data, uint16_t mem_mask); void write_paddr(uint16_t data, uint16_t mem_mask); - uint16_t read_padat(m68307cpu_device* m68k, address_space &space, uint16_t mem_mask); - void write_padat(m68307cpu_device* m68k, address_space &space, uint16_t data, uint16_t mem_mask); + uint16_t read_padat(m68307_cpu_device* m68k, address_space &space, uint16_t mem_mask); + void write_padat(m68307_cpu_device* m68k, address_space &space, uint16_t data, uint16_t mem_mask); void write_pbcnt(uint16_t data, uint16_t mem_mask); void write_pbddr(uint16_t data, uint16_t mem_mask); - uint16_t read_pbdat(m68307cpu_device* m68k, address_space &space, uint16_t mem_mask); - void write_pbdat(m68307cpu_device* m68k, address_space &space, uint16_t data, uint16_t mem_mask); - + uint16_t read_pbdat(m68307_cpu_device* m68k, address_space &space, uint16_t mem_mask); + void write_pbdat(m68307_cpu_device* m68k, address_space &space, uint16_t data, uint16_t mem_mask); + void write_licr1(m68307_cpu_device* m68k, uint16_t data, uint16_t mem_mask); + void write_licr2(m68307_cpu_device* m68k, uint16_t data, uint16_t mem_mask); + void write_picr(m68307_cpu_device* m68k, uint16_t data, uint16_t mem_mask); + void write_pivr(m68307_cpu_device* m68k, uint16_t data, uint16_t mem_mask); - void write_licr1(m68307cpu_device* m68k, uint16_t data, uint16_t mem_mask); - void write_licr2(m68307cpu_device* m68k, uint16_t data, uint16_t mem_mask); - void write_picr(m68307cpu_device* m68k, uint16_t data, uint16_t mem_mask); - void write_pivr(m68307cpu_device* m68k, uint16_t data, uint16_t mem_mask); - - void reset(void); + void reset(); }; + +#endif // MAME_MACHINE_68307SIM_H diff --git a/src/devices/machine/68307tmu.cpp b/src/devices/machine/68307tmu.cpp index 5deb48a9f85..c83a0855f29 100644 --- a/src/devices/machine/68307tmu.cpp +++ b/src/devices/machine/68307tmu.cpp @@ -4,105 +4,105 @@ // 2x timers #include "emu.h" -#include "68307.h" - -READ16_MEMBER( m68307cpu_device::m68307_internal_timer_r ) +#include "68307tmu.h" + +#define m68307TIMER_TMR (0x0) +#define m68307TIMER_TRR (0x1) +#define m68307TIMER_TCR (0x2) +#define m68307TIMER_TCN (0x3) +#define m68307TIMER_TER (0x4) +#define m68307TIMER_WRR (0x5) +#define m68307TIMER_WCR (0x6) +#define m68307TIMER_XXX (0x7) + +READ16_MEMBER( m68307_cpu_device::m68307_internal_timer_r ) { - m68307cpu_device *m68k = this; - m68307_timer* timer = m68k->m68307TIMER; - assert(timer != nullptr); + assert(m68307TIMER); + m68307_timer &timer = *m68307TIMER; + + int pc = space.device().safe_pc(); + int which = offset & 0x8; - if (timer) + switch (offset&0x7) { - int pc = space.device().safe_pc(); - int which = offset & 0x8; - - switch (offset&0x7) - { - case m68307TIMER_TCN: /* 0x3 (0x126 / 0x136) */ - //if (pc!=0x2182e) logerror("%08x m68307_internal_timer_r %08x (%04x) (TCN - Timer Counter for timer %d)\n", pc, offset*2,mem_mask, which); - return timer->read_tcn(mem_mask, which); - - default: - logerror("%08x m68307_internal_timer_r %08x, (%04x)\n", pc, offset*2,mem_mask); - break; - } + case m68307TIMER_TCN: /* 0x3 (0x126 / 0x136) */ + //if (pc!=0x2182e) logerror("%08x m68307_internal_timer_r %08x (%04x) (TCN - Timer Counter for timer %d)\n", pc, offset*2,mem_mask, which); + return timer.read_tcn(mem_mask, which); + + default: + logerror("%08x m68307_internal_timer_r %08x, (%04x)\n", pc, offset*2,mem_mask); + break; } return 0x0000; } -WRITE16_MEMBER( m68307cpu_device::m68307_internal_timer_w ) +WRITE16_MEMBER( m68307_cpu_device::m68307_internal_timer_w ) { - m68307cpu_device *m68k = this; - m68307_timer* timer = m68k->m68307TIMER; - assert(timer != nullptr); + assert(m68307TIMER); + m68307_timer &timer = *m68307TIMER; + + int pc = space.device().safe_pc(); + int which = offset & 0x8; - if (timer) + switch (offset&0x7) { - int pc = space.device().safe_pc(); - int which = offset & 0x8; - - switch (offset&0x7) - { - case m68307TIMER_TMR: /* 0x0 (0x120 / 0x130) */ - logerror("%08x m68307_internal_timer_w %08x, %04x (%04x) (TMR - Timer Mode Register for timer %d)\n", pc, offset*2,data,mem_mask, which); - timer->write_tmr(data, mem_mask, which); - break; - - case m68307TIMER_TRR: /* 0x1 (0x122 / 0x132) */ - logerror("%08x m68307_internal_timer_w %08x, %04x (%04x) (TRR - Timer Reference Register for timer %d)\n", pc, offset*2,data,mem_mask, which); - timer->write_trr(data, mem_mask, which); - break; - - case m68307TIMER_TCR: /* 0x2 (0x124 / 0x134) */ - logerror("%08x m68307_internal_timer_w %08x, %04x (%04x) (TCR - Timer Capture Register for timer %d) (illegal, read-only)\n", pc, offset*2,data,mem_mask, which); - break; - - case m68307TIMER_TCN: /* 0x3 (0x126 / 0x136) */ - logerror("%08x m68307_internal_timer_w %08x, %04x (%04x) (TCN - Timer Counter for timer %d)\n", pc, offset*2,data,mem_mask, which); - break; - - case m68307TIMER_TER: /* 0x4 (0x128 / 0x138) */ - /* 8-bit only!! */ - //logerror("%08x m68307_internal_timer_w %08x, %04x (%04x) (TER - Timer Event Register for timer %d)\n", pc, offset*2,data,mem_mask, which); - timer->write_ter(data, mem_mask, which); - break; - - case m68307TIMER_WRR: /* 0x5 (0x12a / 0x13a) */ - if (which==0) - { - logerror("%08x m68307_internal_timer_w %08x, %04x (%04x) (WRR - Watchdog Reference Register)\n", pc, offset*2,data,mem_mask); - } - else - { - logerror("%08x m68307_internal_timer_w %08x, %04x (%04x) (illegal)\n", pc, offset*2,data,mem_mask); - } - break; - - case m68307TIMER_WCR: /* 0x6 (0x12c / 0x13c) */ - if (which==0) - { - logerror("%08x m68307_internal_timer_w %08x, %04x (%04x) (WRR - Watchdog Counter Register)\n", pc, offset*2,data,mem_mask); - } - else - { - logerror("%08x m68307_internal_timer_w %08x, %04x (%04x) (illegal)\n", pc, offset*2,data,mem_mask); - } - break; - - case m68307TIMER_XXX: /* 0x7 (0x12e / 0x13e) */ + case m68307TIMER_TMR: /* 0x0 (0x120 / 0x130) */ + logerror("%08x m68307_internal_timer_w %08x, %04x (%04x) (TMR - Timer Mode Register for timer %d)\n", pc, offset*2,data,mem_mask, which); + timer.write_tmr(data, mem_mask, which); + break; + + case m68307TIMER_TRR: /* 0x1 (0x122 / 0x132) */ + logerror("%08x m68307_internal_timer_w %08x, %04x (%04x) (TRR - Timer Reference Register for timer %d)\n", pc, offset*2,data,mem_mask, which); + timer.write_trr(data, mem_mask, which); + break; + + case m68307TIMER_TCR: /* 0x2 (0x124 / 0x134) */ + logerror("%08x m68307_internal_timer_w %08x, %04x (%04x) (TCR - Timer Capture Register for timer %d) (illegal, read-only)\n", pc, offset*2,data,mem_mask, which); + break; + + case m68307TIMER_TCN: /* 0x3 (0x126 / 0x136) */ + logerror("%08x m68307_internal_timer_w %08x, %04x (%04x) (TCN - Timer Counter for timer %d)\n", pc, offset*2,data,mem_mask, which); + break; + + case m68307TIMER_TER: /* 0x4 (0x128 / 0x138) */ + /* 8-bit only!! */ + //logerror("%08x m68307_internal_timer_w %08x, %04x (%04x) (TER - Timer Event Register for timer %d)\n", pc, offset*2,data,mem_mask, which); + timer.write_ter(data, mem_mask, which); + break; + + case m68307TIMER_WRR: /* 0x5 (0x12a / 0x13a) */ + if (which==0) + { + logerror("%08x m68307_internal_timer_w %08x, %04x (%04x) (WRR - Watchdog Reference Register)\n", pc, offset*2,data,mem_mask); + } + else + { logerror("%08x m68307_internal_timer_w %08x, %04x (%04x) (illegal)\n", pc, offset*2,data,mem_mask); - break; + } + break; + + case m68307TIMER_WCR: /* 0x6 (0x12c / 0x13c) */ + if (which==0) + { + logerror("%08x m68307_internal_timer_w %08x, %04x (%04x) (WRR - Watchdog Counter Register)\n", pc, offset*2,data,mem_mask); + } + else + { + logerror("%08x m68307_internal_timer_w %08x, %04x (%04x) (illegal)\n", pc, offset*2,data,mem_mask); + } + break; - } + case m68307TIMER_XXX: /* 0x7 (0x12e / 0x13e) */ + logerror("%08x m68307_internal_timer_w %08x, %04x (%04x) (illegal)\n", pc, offset*2,data,mem_mask); + break; } } -TIMER_CALLBACK_MEMBER(m68307_timer::timer0_callback ) +TIMER_CALLBACK_MEMBER(m68307_cpu_device::m68307_timer::timer0_callback ) { - m68307cpu_device* m68k = (m68307cpu_device *)ptr; - m68307_single_timer* tptr = &m68k->m68307TIMER->singletimer[0]; + m68307_cpu_device* m68k = (m68307_cpu_device *)ptr; + single_timer* tptr = &m68k->m68307TIMER->singletimer[0]; tptr->regs[m68307TIMER_TMR] |= 0x2; m68k->timer0_interrupt(); @@ -110,10 +110,10 @@ TIMER_CALLBACK_MEMBER(m68307_timer::timer0_callback ) tptr->mametimer->adjust(m68k->cycles_to_attotime(20000)); } -TIMER_CALLBACK_MEMBER(m68307_timer::timer1_callback ) +TIMER_CALLBACK_MEMBER(m68307_cpu_device::m68307_timer::timer1_callback ) { - m68307cpu_device* m68k = (m68307cpu_device *)ptr; - m68307_single_timer* tptr = &m68k->m68307TIMER->singletimer[1]; + m68307_cpu_device* m68k = (m68307_cpu_device *)ptr; + single_timer* tptr = &m68k->m68307TIMER->singletimer[1]; tptr->regs[m68307TIMER_TMR] |= 0x2; m68k->timer1_interrupt(); @@ -122,16 +122,16 @@ TIMER_CALLBACK_MEMBER(m68307_timer::timer1_callback ) } -TIMER_CALLBACK_MEMBER(m68307_timer::wd_timer_callback ) +TIMER_CALLBACK_MEMBER(m68307_cpu_device::m68307_timer::wd_timer_callback ) { printf("wd timer\n"); } -void m68307_timer::init(m68307cpu_device *device) +void m68307_cpu_device::m68307_timer::init(m68307_cpu_device *device) { parent = device; - m68307_single_timer* tptr; + single_timer* tptr; tptr = &singletimer[0]; tptr->mametimer = device->machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(m68307_timer::timer0_callback),this), parent); @@ -142,7 +142,7 @@ void m68307_timer::init(m68307cpu_device *device) wd_mametimer = device->machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(m68307_timer::wd_timer_callback),this), parent); } -uint16_t m68307_timer::read_tcn(uint16_t mem_mask, int which) +uint16_t m68307_cpu_device::m68307_timer::read_tcn(uint16_t mem_mask, int which) { // we should return the current timer value by // calculating what it should be based on the time @@ -150,18 +150,18 @@ uint16_t m68307_timer::read_tcn(uint16_t mem_mask, int which) return 0x3a98; } -void m68307_timer::write_ter(uint16_t data, uint16_t mem_mask, int which) +void m68307_cpu_device::m68307_timer::write_ter(uint16_t data, uint16_t mem_mask, int which) { assert(which >= 0 && which < ARRAY_LENGTH(singletimer)); - m68307_single_timer* tptr = &singletimer[which]; + single_timer* tptr = &singletimer[which]; if (data & 0x2) tptr->regs[m68307TIMER_TMR] &= ~0x2; } -void m68307_timer::write_tmr(uint16_t data, uint16_t mem_mask, int which) +void m68307_cpu_device::m68307_timer::write_tmr(uint16_t data, uint16_t mem_mask, int which) { - m68307cpu_device* m68k = parent; + m68307_cpu_device* m68k = parent; assert(which >= 0 && which < ARRAY_LENGTH(singletimer)); - m68307_single_timer* tptr = &singletimer[which]; + single_timer* tptr = &singletimer[which]; COMBINE_DATA(&tptr->regs[m68307TIMER_TMR]); @@ -208,21 +208,21 @@ void m68307_timer::write_tmr(uint16_t data, uint16_t mem_mask, int which) } -void m68307_timer::write_trr(uint16_t data, uint16_t mem_mask, int which) +void m68307_cpu_device::m68307_timer::write_trr(uint16_t data, uint16_t mem_mask, int which) { assert(which >= 0 && which < ARRAY_LENGTH(singletimer)); - m68307_single_timer* tptr = &singletimer[which]; + single_timer* tptr = &singletimer[which]; COMBINE_DATA(&tptr->regs[m68307TIMER_TRR]); } -void m68307_timer::reset(void) +void m68307_cpu_device::m68307_timer::reset() { for (auto & elem : singletimer) { - m68307_single_timer* tptr = &elem; + single_timer* tptr = &elem; tptr->regs[m68307TIMER_TMR] = 0x0000; tptr->regs[m68307TIMER_TRR] = 0xffff; @@ -237,6 +237,4 @@ void m68307_timer::reset(void) } wd_mametimer->adjust(attotime::never); - - } diff --git a/src/devices/machine/68307tmu.h b/src/devices/machine/68307tmu.h index 8ecdfa8a86f..25b782fcacb 100644 --- a/src/devices/machine/68307tmu.h +++ b/src/devices/machine/68307tmu.h @@ -1,45 +1,40 @@ // license:BSD-3-Clause // copyright-holders:David Haywood +#ifndef MAME_MACHINE_68307TMU_H +#define MAME_MACHINE_68307TMU_H -#include "cpu/m68000/m68000.h" +#pragma once -class m68307cpu_device; +#include "68307.h" -#define m68307TIMER_TMR (0x0) -#define m68307TIMER_TRR (0x1) -#define m68307TIMER_TCR (0x2) -#define m68307TIMER_TCN (0x3) -#define m68307TIMER_TER (0x4) -#define m68307TIMER_WRR (0x5) -#define m68307TIMER_WCR (0x6) -#define m68307TIMER_XXX (0x7) - -struct m68307_single_timer +class m68307_cpu_device::m68307_timer { - uint16_t regs[0x8]; - bool enabled; - emu_timer *mametimer; -}; +public: + struct single_timer + { + uint16_t regs[0x8]; + bool enabled; + emu_timer *mametimer; + }; -class m68307_timer -{ - public: - m68307_single_timer singletimer[2]; + single_timer singletimer[2]; emu_timer *wd_mametimer; - m68307cpu_device *parent; + m68307_cpu_device *parent; void write_tmr(uint16_t data, uint16_t mem_mask, int which); void write_trr(uint16_t data, uint16_t mem_mask, int which); void write_ter(uint16_t data, uint16_t mem_mask, int which); uint16_t read_tcn(uint16_t mem_mask, int which); - void init(m68307cpu_device *device); - void reset(void); + void init(m68307_cpu_device *device); + void reset(); TIMER_CALLBACK_MEMBER(timer0_callback); TIMER_CALLBACK_MEMBER(timer1_callback); TIMER_CALLBACK_MEMBER(wd_timer_callback); }; + +#endif // MAME_MACHINE_68307TMU_H diff --git a/src/devices/machine/68340.cpp b/src/devices/machine/68340.cpp index 36d42b869fa..3dc8f2e5c83 100644 --- a/src/devices/machine/68340.cpp +++ b/src/devices/machine/68340.cpp @@ -5,24 +5,22 @@ #include "emu.h" #include "68340.h" -const device_type M68340 = device_creator; +DEFINE_DEVICE_TYPE(M68340, m68340_cpu_device, "mc68340", "MC68340") -int m68340_calc_cs(m68340cpu_device *m68k, offs_t address) +int m68340_cpu_device::calc_cs(offs_t address) const { - m68340_sim* sim = m68k->m68340SIM; - - if ( !(sim->m_ba[0] & 1) ) return 1; + if ( !(m68340SIM->m_ba[0] & 1) ) return 1; for (int i=0;i<4;i++) { - if (sim->m_ba[i] & 1) + if (m68340SIM->m_ba[i] & 1) { - int mask = ((sim->m_am[i]&0xffffff00) | 0xff); - int base = sim->m_ba[i] & 0xffffff00; - int fcmask = (sim->m_am[i] & 0xf0); - int fcbase = (sim->m_ba[i] & 0xf0) & ~(sim->m_am[i] & 0xf0); - int fc = m68k->mmu_tmp_fc; + int mask = ((m68340SIM->m_am[i]&0xffffff00) | 0xff); + int base = m68340SIM->m_ba[i] & 0xffffff00; + int fcmask = (m68340SIM->m_am[i] & 0xf0); + int fcbase = (m68340SIM->m_ba[i] & 0xf0) & ~(m68340SIM->m_am[i] & 0xf0); + int fc = mmu_tmp_fc; if ((address & ~mask) == base && ((fc << 4) & ~fcmask ) == fcbase ) return i+1; } @@ -33,61 +31,58 @@ int m68340_calc_cs(m68340cpu_device *m68k, offs_t address) -uint16_t m68340cpu_device::get_cs(offs_t address) +uint16_t m68340_cpu_device::get_cs(offs_t address) { - m68340_currentcs = m68340_calc_cs(this, address); + m_currentcs = calc_cs(address); - return m68340_currentcs; + return m_currentcs; } /* 68340 specifics - MOVE */ -READ32_MEMBER( m68340cpu_device::m68340_internal_base_r ) +READ32_MEMBER( m68340_cpu_device::m68340_internal_base_r ) { - m68340cpu_device *m68k = this; int pc = space.device().safe_pc(); logerror("%08x m68340_internal_base_r %08x, (%08x)\n", pc, offset*4,mem_mask); - return m68k->m68340_base; + return m68340_base; } -WRITE32_MEMBER( m68340cpu_device::m68340_internal_base_w ) +WRITE32_MEMBER( m68340_cpu_device::m68340_internal_base_w ) { - m68340cpu_device *m68k = this; - int pc = space.device().safe_pc(); logerror("%08x m68340_internal_base_w %08x, %08x (%08x)\n", pc, offset*4,data,mem_mask); // other conditions? - if (m68k->dfc==0x7) + if (dfc==0x7) { // unmap old modules - if (m68k->m68340_base&1) + if (m68340_base&1) { - int base = m68k->m68340_base & 0xfffff000; + int base = m68340_base & 0xfffff000; - m68k->internal->unmap_readwrite(base + 0x000, base + 0x05f); - m68k->internal->unmap_readwrite(base + 0x600, base + 0x67f); - m68k->internal->unmap_readwrite(base + 0x700, base + 0x723); - m68k->internal->unmap_readwrite(base + 0x780, base + 0x7bf); + internal->unmap_readwrite(base + 0x000, base + 0x05f); + internal->unmap_readwrite(base + 0x600, base + 0x67f); + internal->unmap_readwrite(base + 0x700, base + 0x723); + internal->unmap_readwrite(base + 0x780, base + 0x7bf); } - COMBINE_DATA(&m68k->m68340_base); + COMBINE_DATA(&m68340_base); logerror("%08x m68340_internal_base_w %08x, %08x (%08x) (m68340_base write)\n", pc, offset*4,data,mem_mask); // map new modules - if (m68k->m68340_base&1) + if (m68340_base&1) { - int base = m68k->m68340_base & 0xfffff000; + int base = m68340_base & 0xfffff000; - m68k->internal->install_readwrite_handler(base + 0x000, base + 0x03f, read16_delegate(FUNC(m68340cpu_device::m68340_internal_sim_r),this), write16_delegate(FUNC(m68340cpu_device::m68340_internal_sim_w),this),0xffffffff); - m68k->internal->install_readwrite_handler(base + 0x010, base + 0x01f, read8_delegate(FUNC(m68340cpu_device::m68340_internal_sim_ports_r),this),write8_delegate(FUNC(m68340cpu_device::m68340_internal_sim_ports_w),this),0xffffffff); - m68k->internal->install_readwrite_handler(base + 0x040, base + 0x05f, read32_delegate(FUNC(m68340cpu_device::m68340_internal_sim_cs_r),this), write32_delegate(FUNC(m68340cpu_device::m68340_internal_sim_cs_w),this)); - m68k->internal->install_readwrite_handler(base + 0x600, base + 0x67f, read32_delegate(FUNC(m68340cpu_device::m68340_internal_timer_r),this), write32_delegate(FUNC(m68340cpu_device::m68340_internal_timer_w),this)); - m68k->internal->install_readwrite_handler(base + 0x700, base + 0x723, read32_delegate(FUNC(m68340cpu_device::m68340_internal_serial_r),this), write32_delegate(FUNC(m68340cpu_device::m68340_internal_serial_w),this)); - m68k->internal->install_readwrite_handler(base + 0x780, base + 0x7bf, read32_delegate(FUNC(m68340cpu_device::m68340_internal_dma_r),this), write32_delegate(FUNC(m68340cpu_device::m68340_internal_dma_w),this)); + internal->install_readwrite_handler(base + 0x000, base + 0x03f, read16_delegate(FUNC(m68340_cpu_device::m68340_internal_sim_r),this), write16_delegate(FUNC(m68340_cpu_device::m68340_internal_sim_w),this),0xffffffff); + internal->install_readwrite_handler(base + 0x010, base + 0x01f, read8_delegate(FUNC(m68340_cpu_device::m68340_internal_sim_ports_r),this),write8_delegate(FUNC(m68340_cpu_device::m68340_internal_sim_ports_w),this),0xffffffff); + internal->install_readwrite_handler(base + 0x040, base + 0x05f, read32_delegate(FUNC(m68340_cpu_device::m68340_internal_sim_cs_r),this), write32_delegate(FUNC(m68340_cpu_device::m68340_internal_sim_cs_w),this)); + internal->install_readwrite_handler(base + 0x600, base + 0x67f, read32_delegate(FUNC(m68340_cpu_device::m68340_internal_timer_r),this), write32_delegate(FUNC(m68340_cpu_device::m68340_internal_timer_w),this)); + internal->install_readwrite_handler(base + 0x700, base + 0x723, read32_delegate(FUNC(m68340_cpu_device::m68340_internal_serial_r),this), write32_delegate(FUNC(m68340_cpu_device::m68340_internal_serial_w),this)); + internal->install_readwrite_handler(base + 0x780, base + 0x7bf, read32_delegate(FUNC(m68340_cpu_device::m68340_internal_dma_r),this), write32_delegate(FUNC(m68340_cpu_device::m68340_internal_dma_w),this)); } @@ -102,7 +97,7 @@ WRITE32_MEMBER( m68340cpu_device::m68340_internal_base_w ) } -static ADDRESS_MAP_START( m68340_internal_map, AS_PROGRAM, 32, m68340cpu_device ) +static ADDRESS_MAP_START( m68340_internal_map, AS_PROGRAM, 32, m68340_cpu_device ) AM_RANGE(0x0003ff00, 0x0003ff03) AM_READWRITE( m68340_internal_base_r, m68340_internal_base_w) ADDRESS_MAP_END @@ -110,8 +105,8 @@ ADDRESS_MAP_END -m68340cpu_device::m68340cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : fscpu32_device(mconfig, "MC68340", tag, owner, clock, M68340, 32,32, ADDRESS_MAP_NAME(m68340_internal_map), "mc68340", __FILE__) +m68340_cpu_device::m68340_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : fscpu32_device(mconfig, tag, owner, clock, M68340, 32,32, ADDRESS_MAP_NAME(m68340_internal_map)) { m68340SIM = nullptr; m68340DMA = nullptr; @@ -125,13 +120,13 @@ m68340cpu_device::m68340cpu_device(const machine_config &mconfig, const char *ta -void m68340cpu_device::device_reset() +void m68340_cpu_device::device_reset() { fscpu32_device::device_reset(); } -void m68340cpu_device::device_start() +void m68340_cpu_device::device_start() { fscpu32_device::device_start(); diff --git a/src/devices/machine/68340.h b/src/devices/machine/68340.h index 350021100a3..3c9b2ef96a4 100644 --- a/src/devices/machine/68340.h +++ b/src/devices/machine/68340.h @@ -1,11 +1,11 @@ // license:BSD-3-Clause // copyright-holders:David Haywood /* 68340 */ - +#ifndef MAME_MACHINE_68340_H +#define MAME_MACHINE_68340_H #pragma once -#ifndef __M68340_H__ -#define __M68340_H__ + #include "cpu/m68000/m68000.h" @@ -15,25 +15,10 @@ #include "68340tmu.h" -class m68340cpu_device : public fscpu32_device +class m68340_cpu_device : public fscpu32_device { public: - m68340cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - - - int m68340_currentcs; - - /* 68340 peripheral modules */ - m68340_sim* m68340SIM; - m68340_dma* m68340DMA; - m68340_serial* m68340SERIAL; - m68340_timer* m68340TIMER; - - uint32_t m68340_base; - - uint16_t m_avr; - uint16_t m_picr; - uint16_t m_pitr; + m68340_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); uint16_t get_cs(offs_t address); @@ -52,17 +37,33 @@ public: READ32_MEMBER( m68340_internal_timer_r ); WRITE32_MEMBER( m68340_internal_timer_w ); - emu_timer *m_irq_timer; - TIMER_CALLBACK_MEMBER(periodic_interrupt_timer_callback); - void start_68340_sim(void); - void do_timer_irq(void); - protected: virtual void device_start() override; virtual void device_reset() override; + TIMER_CALLBACK_MEMBER(periodic_interrupt_timer_callback); + void start_68340_sim(); + void do_timer_irq(); + + int calc_cs(offs_t address) const; + + int m_currentcs; + + /* 68340 peripheral modules */ + m68340_sim* m68340SIM; + m68340_dma* m68340DMA; + m68340_serial* m68340SERIAL; + m68340_timer* m68340TIMER; + + uint32_t m68340_base; + + uint16_t m_avr; + uint16_t m_picr; + uint16_t m_pitr; + + emu_timer *m_irq_timer; }; -extern const device_type M68340; +DECLARE_DEVICE_TYPE(M68340, m68340_cpu_device) -#endif +#endif // MAME_MACHINE_68340_H diff --git a/src/devices/machine/68340dma.cpp b/src/devices/machine/68340dma.cpp index 84f17f6c1cb..e37e573e5e6 100644 --- a/src/devices/machine/68340dma.cpp +++ b/src/devices/machine/68340dma.cpp @@ -6,34 +6,26 @@ #include "68340.h" -READ32_MEMBER( m68340cpu_device::m68340_internal_dma_r ) +READ32_MEMBER( m68340_cpu_device::m68340_internal_dma_r ) { - m68340cpu_device *m68k = this; - m68340_dma* dma = m68k->m68340DMA; - assert(dma != nullptr); + assert(m68340DMA); + //m68340_dma &dma = *m68340DMA; - if (dma) - { - int pc = space.device().safe_pc(); - logerror("%08x m68340_internal_dma_r %08x, (%08x)\n", pc, offset*4,mem_mask); - } + int pc = space.device().safe_pc(); + logerror("%08x m68340_internal_dma_r %08x, (%08x)\n", pc, offset*4,mem_mask); return 0x00000000; } -WRITE32_MEMBER( m68340cpu_device::m68340_internal_dma_w ) +WRITE32_MEMBER( m68340_cpu_device::m68340_internal_dma_w ) { - m68340cpu_device *m68k = this; - m68340_dma* dma = m68k->m68340DMA; - assert(dma != nullptr); - - if (dma) - { - int pc = space.device().safe_pc(); - logerror("%08x m68340_internal_dma_w %08x, %08x (%08x)\n", pc, offset*4,data,mem_mask); - } + assert(m68340DMA); + //m68340_dma &dma = *m68340DMA; + + int pc = space.device().safe_pc(); + logerror("%08x m68340_internal_dma_w %08x, %08x (%08x)\n", pc, offset*4,data,mem_mask); } -void m68340_dma::reset(void) +void m68340_dma::reset() { } diff --git a/src/devices/machine/68340dma.h b/src/devices/machine/68340dma.h index 56d8228fa2d..3a92b4e9a49 100644 --- a/src/devices/machine/68340dma.h +++ b/src/devices/machine/68340dma.h @@ -1,10 +1,15 @@ // license:BSD-3-Clause // copyright-holders:David Haywood +#ifndef MAME_MACHINE_68340DMA_H +#define MAME_MACHINE_68340DMA_H + +#pragma once -#include "cpu/m68000/m68000.h" class m68340_dma { - public: - void reset(void); +public: + void reset(); }; + +#endif // MAME_MACHINE_68340DMA_H diff --git a/src/devices/machine/68340ser.cpp b/src/devices/machine/68340ser.cpp index 230b6c7a71b..8a26975cd87 100644 --- a/src/devices/machine/68340ser.cpp +++ b/src/devices/machine/68340ser.cpp @@ -6,35 +6,26 @@ #include "68340.h" -READ32_MEMBER( m68340cpu_device::m68340_internal_serial_r ) +READ32_MEMBER( m68340_cpu_device::m68340_internal_serial_r ) { - m68340cpu_device *m68k = this; - m68340_serial* serial = m68k->m68340SERIAL; - assert(serial != nullptr); + assert(m68340SERIAL); + //m68340_serial &serial = *m68340SERIAL; - if (serial) - { - int pc = space.device().safe_pc(); - logerror("%08x m68340_internal_serial_r %08x, (%08x)\n", pc, offset*4,mem_mask); - } + int pc = space.device().safe_pc(); + logerror("%08x m68340_internal_serial_r %08x, (%08x)\n", pc, offset*4,mem_mask); return 0x00000000; } -WRITE32_MEMBER( m68340cpu_device::m68340_internal_serial_w ) +WRITE32_MEMBER( m68340_cpu_device::m68340_internal_serial_w ) { - m68340cpu_device *m68k = this; - m68340_serial* serial = m68k->m68340SERIAL; - assert(serial != nullptr); - - if (serial) - { - int pc = space.device().safe_pc(); - logerror("%08x m68340_internal_serial_w %08x, %08x (%08x)\n", pc, offset*4,data,mem_mask); - } + assert(m68340SERIAL); + //m68340_serial &serial = *m68340SERIAL; + int pc = space.device().safe_pc(); + logerror("%08x m68340_internal_serial_w %08x, %08x (%08x)\n", pc, offset*4,data,mem_mask); } -void m68340_serial::reset(void) +void m68340_serial::reset() { } diff --git a/src/devices/machine/68340ser.h b/src/devices/machine/68340ser.h index 0fda812ff0a..c5fcd028bdd 100644 --- a/src/devices/machine/68340ser.h +++ b/src/devices/machine/68340ser.h @@ -1,10 +1,15 @@ // license:BSD-3-Clause // copyright-holders:David Haywood +#ifndef MAME_MACHINE_68340SER_H +#define MAME_MACHINE_68340SER_H + +#pragma once -#include "cpu/m68000/m68000.h" class m68340_serial { - public: - void reset(void); +public: + void reset(); }; + +#endif // MAME_MACHINE_68340SER_H diff --git a/src/devices/machine/68340sim.cpp b/src/devices/machine/68340sim.cpp index f1d346e880b..fda96a762b1 100644 --- a/src/devices/machine/68340sim.cpp +++ b/src/devices/machine/68340sim.cpp @@ -6,310 +6,319 @@ #include "68340.h" - -READ16_MEMBER( m68340cpu_device::m68340_internal_sim_r ) +#define m68340SIM_MCR (0x00) +// (0x02) +#define m68340SIM_SYNCR (0x04) +#define m68340SIM_AVR_RSR (0x06) +// (0x08) +// (0x0a) +// (0x0c) +// (0x0e) +#define m68340SIM_PORTA (0x11) +#define m68340SIM_DDRA (0x13) +#define m68340SIM_PPRA1 (0x15) +#define m68340SIM_PPRA2 (0x17) +#define m68340SIM_PORTB (0x19) +#define m68340SIM_PORTB1 (0x1b) +#define m68340SIM_DDRB (0x1d) +#define m68340SIM_PPARB (0x1f) +#define m68340SIM_SWIV_SYPCR (0x20) +#define m68340SIM_PICR (0x22) +#define m68340SIM_PITR (0x24) +#define m68340SIM_SWSR (0x26) +// (0x28) +// (0x2a) +// (0x2c) +// (0x2e) +// (0x30) +// (0x32) +// (0x34) +// (0x36) +// (0x38) +// (0x3a) +// (0x3c) +// (0x3e) +#define m68340SIM_AM_CS0 (0x40) +#define m68340SIM_BA_CS0 (0x44) +#define m68340SIM_AM_CS1 (0x48) +#define m68340SIM_BA_CS1 (0x4c) +#define m68340SIM_AM_CS2 (0x50) +#define m68340SIM_BA_CS2 (0x54) +#define m68340SIM_AM_CS3 (0x58) +#define m68340SIM_BA_CS3 (0x5c) + + + +READ16_MEMBER( m68340_cpu_device::m68340_internal_sim_r ) { - m68340cpu_device *m68k = this; - m68340_sim* sim = m68k->m68340SIM; - assert(sim != nullptr); - - if (sim) - { - int pc = space.device().safe_pc(); - - switch (offset<<1) - { - case m68340SIM_MCR: - logerror("%08x m68340_internal_sim_r %04x, (%04x) (MCR - Module Configuration Register)\n", pc, offset*2,mem_mask); - return space.machine().rand(); + assert(m68340SIM); + //m68340_sim &sim = *m68340SIM; - case m68340SIM_SYNCR: - logerror("%08x m68340_internal_sim_r %04x, (%04x) (SYNCR - Clock Synthesizer Register)\n", pc, offset*2,mem_mask); - return space.machine().rand(); + int pc = space.device().safe_pc(); - case m68340SIM_AVR_RSR: - logerror("%08x m68340_internal_sim_r %04x, (%04x) (AVR, RSR - Auto Vector Register, Reset Status Register)\n", pc, offset*2,mem_mask); - return space.machine().rand(); + switch (offset<<1) + { + case m68340SIM_MCR: + logerror("%08x m68340_internal_sim_r %04x, (%04x) (MCR - Module Configuration Register)\n", pc, offset*2,mem_mask); + return space.machine().rand(); - case m68340SIM_SWIV_SYPCR: - logerror("%08x m68340_internal_sim_r %04x, (%04x) (SWIV_SYPCR - Software Interrupt Vector, System Protection Control Register)\n", pc, offset*2,mem_mask); - return space.machine().rand(); + case m68340SIM_SYNCR: + logerror("%08x m68340_internal_sim_r %04x, (%04x) (SYNCR - Clock Synthesizer Register)\n", pc, offset*2,mem_mask); + return space.machine().rand(); - case m68340SIM_PICR: - logerror("%08x m68340_internal_sim_r %04x, (%04x) (PICR - Periodic Interrupt Control Register)\n", pc, offset*2,mem_mask); - return space.machine().rand(); + case m68340SIM_AVR_RSR: + logerror("%08x m68340_internal_sim_r %04x, (%04x) (AVR, RSR - Auto Vector Register, Reset Status Register)\n", pc, offset*2,mem_mask); + return space.machine().rand(); - case m68340SIM_PITR: - logerror("%08x m68340_internal_sim_r %04x, (%04x) (PITR - Periodic Interrupt Timer Register)\n", pc, offset*2,mem_mask); - return space.machine().rand(); + case m68340SIM_SWIV_SYPCR: + logerror("%08x m68340_internal_sim_r %04x, (%04x) (SWIV_SYPCR - Software Interrupt Vector, System Protection Control Register)\n", pc, offset*2,mem_mask); + return space.machine().rand(); - case m68340SIM_SWSR: - logerror("%08x m68340_internal_sim_r %04x, (%04x) (SWSR - Software Service)\n", pc, offset*2,mem_mask); - return space.machine().rand(); + case m68340SIM_PICR: + logerror("%08x m68340_internal_sim_r %04x, (%04x) (PICR - Periodic Interrupt Control Register)\n", pc, offset*2,mem_mask); + return space.machine().rand(); - default: - logerror("%08x m68340_internal_sim_r %04x, (%04x)\n", pc, offset*2,mem_mask); + case m68340SIM_PITR: + logerror("%08x m68340_internal_sim_r %04x, (%04x) (PITR - Periodic Interrupt Timer Register)\n", pc, offset*2,mem_mask); + return space.machine().rand(); + case m68340SIM_SWSR: + logerror("%08x m68340_internal_sim_r %04x, (%04x) (SWSR - Software Service)\n", pc, offset*2,mem_mask); + return space.machine().rand(); - } + default: + logerror("%08x m68340_internal_sim_r %04x, (%04x)\n", pc, offset*2,mem_mask); } return 0x0000; } -READ8_MEMBER( m68340cpu_device::m68340_internal_sim_ports_r ) +READ8_MEMBER( m68340_cpu_device::m68340_internal_sim_ports_r ) { offset += 0x10; - m68340cpu_device *m68k = this; - m68340_sim* sim = m68k->m68340SIM; - assert(sim != nullptr); + assert(m68340SIM); + //m68340_sim &sim = *m68340SIM; - if (sim) - { - int pc = space.device().safe_pc(); + int pc = space.device().safe_pc(); - switch (offset) - { - case m68340SIM_PORTA: - logerror("%08x m68340_internal_sim_r %04x (PORTA - Port A Data)\n", pc, offset); - return space.machine().rand(); - - case m68340SIM_DDRA: - logerror("%08x m68340_internal_sim_r %04x (DDRA - Port A Data Direction)\n", pc, offset); - return space.machine().rand(); + switch (offset) + { + case m68340SIM_PORTA: + logerror("%08x m68340_internal_sim_r %04x (PORTA - Port A Data)\n", pc, offset); + return space.machine().rand(); - case m68340SIM_PPRA1: - logerror("%08x m68340_internal_sim_r %04x (PPRA1 - Port A Pin Assignment 1)\n", pc, offset); - return space.machine().rand(); + case m68340SIM_DDRA: + logerror("%08x m68340_internal_sim_r %04x (DDRA - Port A Data Direction)\n", pc, offset); + return space.machine().rand(); - case m68340SIM_PPRA2: - logerror("%08x m68340_internal_sim_r %04x (PPRA2 - Port A Pin Assignment 2)\n", pc, offset); - return space.machine().rand(); + case m68340SIM_PPRA1: + logerror("%08x m68340_internal_sim_r %04x (PPRA1 - Port A Pin Assignment 1)\n", pc, offset); + return space.machine().rand(); - case m68340SIM_PORTB: - logerror("%08x m68340_internal_sim_r %04x (PORTB - Port B Data 0)\n", pc, offset); - return space.machine().rand(); + case m68340SIM_PPRA2: + logerror("%08x m68340_internal_sim_r %04x (PPRA2 - Port A Pin Assignment 2)\n", pc, offset); + return space.machine().rand(); - case m68340SIM_PORTB1: - logerror("%08x m68340_internal_sim_r %04x (PORTB1 - Port B Data 1)\n", pc, offset); - return space.machine().rand(); + case m68340SIM_PORTB: + logerror("%08x m68340_internal_sim_r %04x (PORTB - Port B Data 0)\n", pc, offset); + return space.machine().rand(); - case m68340SIM_DDRB: - logerror("%08x m68340_internal_sim_r %04x (DDR - Port B Data Direction)\n", pc, offset); - return space.machine().rand(); + case m68340SIM_PORTB1: + logerror("%08x m68340_internal_sim_r %04x (PORTB1 - Port B Data 1)\n", pc, offset); + return space.machine().rand(); - case m68340SIM_PPARB: - logerror("%08x m68340_internal_sim_r %04x (PPARB - Port B Pin Assignment)\n", pc, offset); - return space.machine().rand(); + case m68340SIM_DDRB: + logerror("%08x m68340_internal_sim_r %04x (DDR - Port B Data Direction)\n", pc, offset); + return space.machine().rand(); - default: - logerror("%08x m68340_internal_sim_r %04x (ILLEGAL?)\n", pc, offset); - return space.machine().rand(); + case m68340SIM_PPARB: + logerror("%08x m68340_internal_sim_r %04x (PPARB - Port B Pin Assignment)\n", pc, offset); + return space.machine().rand(); - } + default: + logerror("%08x m68340_internal_sim_r %04x (ILLEGAL?)\n", pc, offset); + return space.machine().rand(); } - - return 0x00; } -READ32_MEMBER( m68340cpu_device::m68340_internal_sim_cs_r ) +READ32_MEMBER( m68340_cpu_device::m68340_internal_sim_cs_r ) { offset += m68340SIM_AM_CS0>>2; - m68340cpu_device *m68k = this; - m68340_sim* sim = m68k->m68340SIM; - assert(sim != nullptr); + assert(m68340SIM); + m68340_sim &sim = *m68340SIM; - if (sim) - { - int pc = space.device().safe_pc(); - - switch (offset<<2) - { - case m68340SIM_AM_CS0: return sim->m_am[0]; - case m68340SIM_BA_CS0: return sim->m_ba[0]; - case m68340SIM_AM_CS1: return sim->m_am[1]; - case m68340SIM_BA_CS1: return sim->m_ba[1]; - case m68340SIM_AM_CS2: return sim->m_am[2]; - case m68340SIM_BA_CS2: return sim->m_ba[2]; - case m68340SIM_AM_CS3: return sim->m_am[3]; - case m68340SIM_BA_CS3: return sim->m_ba[3]; - - default: - logerror("%08x m68340_internal_sim_r %08x, (%08x)\n", pc, offset*4,mem_mask); + int pc = space.device().safe_pc(); - } + switch (offset<<2) + { + case m68340SIM_AM_CS0: return sim.m_am[0]; + case m68340SIM_BA_CS0: return sim.m_ba[0]; + case m68340SIM_AM_CS1: return sim.m_am[1]; + case m68340SIM_BA_CS1: return sim.m_ba[1]; + case m68340SIM_AM_CS2: return sim.m_am[2]; + case m68340SIM_BA_CS2: return sim.m_ba[2]; + case m68340SIM_AM_CS3: return sim.m_am[3]; + case m68340SIM_BA_CS3: return sim.m_ba[3]; + + default: + logerror("%08x m68340_internal_sim_r %08x, (%08x)\n", pc, offset*4,mem_mask); } return 0x00000000; } -WRITE16_MEMBER( m68340cpu_device::m68340_internal_sim_w ) +WRITE16_MEMBER( m68340_cpu_device::m68340_internal_sim_w ) { - m68340cpu_device *m68k = this; - m68340_sim* sim = m68k->m68340SIM; - assert(sim != nullptr); + assert(m68340SIM); + //m68340_sim &sim = *m68340SIM; - if (sim) - { - int pc = space.device().safe_pc(); + int pc = space.device().safe_pc(); - switch (offset<<1) - { - case m68340SIM_MCR: - logerror("%08x m68340_internal_sim_w %04x, %04x (%04x) (MCR - Module Configuration Register)\n", pc, offset*2,data,mem_mask); - break; + switch (offset<<1) + { + case m68340SIM_MCR: + logerror("%08x m68340_internal_sim_w %04x, %04x (%04x) (MCR - Module Configuration Register)\n", pc, offset*2,data,mem_mask); + break; - case m68340SIM_SYNCR: - logerror("%08x m68340_internal_sim_w %04x, %04x (%04x) (SYNCR - Clock Synthesizer Register)\n", pc, offset*2,data,mem_mask); - break; + case m68340SIM_SYNCR: + logerror("%08x m68340_internal_sim_w %04x, %04x (%04x) (SYNCR - Clock Synthesizer Register)\n", pc, offset*2,data,mem_mask); + break; - case m68340SIM_AVR_RSR: - logerror("%08x m68340_internal_sim_w %04x, %04x (%04x) (AVR, RSR - Auto Vector Register, Reset Status Register)\n", pc, offset*2,data,mem_mask); - COMBINE_DATA(&m_avr); - break; + case m68340SIM_AVR_RSR: + logerror("%08x m68340_internal_sim_w %04x, %04x (%04x) (AVR, RSR - Auto Vector Register, Reset Status Register)\n", pc, offset*2,data,mem_mask); + COMBINE_DATA(&m_avr); + break; - case m68340SIM_SWIV_SYPCR: - logerror("%08x m68340_internal_sim_w %04x, %04x (%04x) (SWIV_SYPCR - Software Interrupt Vector, System Protection Control Register)\n", pc, offset*2,data,mem_mask); - break; + case m68340SIM_SWIV_SYPCR: + logerror("%08x m68340_internal_sim_w %04x, %04x (%04x) (SWIV_SYPCR - Software Interrupt Vector, System Protection Control Register)\n", pc, offset*2,data,mem_mask); + break; - case m68340SIM_PICR: - logerror("%08x m68340_internal_sim_w %04x, %04x (%04x) (PICR - Periodic Interrupt Control Register)\n", pc, offset*2,data,mem_mask); - COMBINE_DATA(&m_picr); - break; + case m68340SIM_PICR: + logerror("%08x m68340_internal_sim_w %04x, %04x (%04x) (PICR - Periodic Interrupt Control Register)\n", pc, offset*2,data,mem_mask); + COMBINE_DATA(&m_picr); + break; - case m68340SIM_PITR: - logerror("%08x m68340_internal_sim_w %04x, %04x (%04x) (PITR - Periodic Interrupt Timer Register)\n", pc, offset*2,data,mem_mask); - COMBINE_DATA(&m_pitr); - if (m_pitr !=0 ) // hack - { - //logerror("timer set\n"); - m_irq_timer->adjust(cycles_to_attotime(20000)); // hack - } + case m68340SIM_PITR: + logerror("%08x m68340_internal_sim_w %04x, %04x (%04x) (PITR - Periodic Interrupt Timer Register)\n", pc, offset*2,data,mem_mask); + COMBINE_DATA(&m_pitr); + if (m_pitr !=0 ) // hack + { + //logerror("timer set\n"); + m_irq_timer->adjust(cycles_to_attotime(20000)); // hack + } - break; + break; - case m68340SIM_SWSR: - // basically watchdog, you must write an alternating pattern of 0x55 / 0xaa to keep the watchdog from resetting the system - //logerror("%08x m68340_internal_sim_w %04x, %04x (%04x) (SWSR - Software Service)\n", pc, offset*2,data,mem_mask); - break; + case m68340SIM_SWSR: + // basically watchdog, you must write an alternating pattern of 0x55 / 0xaa to keep the watchdog from resetting the system + //logerror("%08x m68340_internal_sim_w %04x, %04x (%04x) (SWSR - Software Service)\n", pc, offset*2,data,mem_mask); + break; - default: - logerror("%08x m68340_internal_sim_w %04x, %04x (%04x)\n", pc, offset*2,data,mem_mask); + default: + logerror("%08x m68340_internal_sim_w %04x, %04x (%04x)\n", pc, offset*2,data,mem_mask); - } } } -WRITE8_MEMBER( m68340cpu_device::m68340_internal_sim_ports_w ) +WRITE8_MEMBER( m68340_cpu_device::m68340_internal_sim_ports_w ) { offset += 0x10; - m68340cpu_device *m68k = this; - m68340_sim* sim = m68k->m68340SIM; - assert(sim != nullptr); - - if (sim) - { - int pc = space.device().safe_pc(); + assert(m68340SIM); + //m68340_sim &sim = *m68340SIM; - switch (offset) - { - case m68340SIM_PORTA: - logerror("%08x m68340_internal_sim_w %04x, %02x (PORTA - Port A Data)\n", pc, offset,data); - break; + int pc = space.device().safe_pc(); - case m68340SIM_DDRA: - logerror("%08x m68340_internal_sim_w %04x, %02x (DDRA - Port A Data Direction)\n", pc, offset,data); - break; + switch (offset) + { + case m68340SIM_PORTA: + logerror("%08x m68340_internal_sim_w %04x, %02x (PORTA - Port A Data)\n", pc, offset,data); + break; - case m68340SIM_PPRA1: - logerror("%08x m68340_internal_sim_w %04x, %02x (PPRA1 - Port A Pin Assignment 1)\n", pc, offset,data); - break; + case m68340SIM_DDRA: + logerror("%08x m68340_internal_sim_w %04x, %02x (DDRA - Port A Data Direction)\n", pc, offset,data); + break; - case m68340SIM_PPRA2: - logerror("%08x m68340_internal_sim_w %04x, %02x (PPRA2 - Port A Pin Assignment 2)\n", pc, offset,data); - break; + case m68340SIM_PPRA1: + logerror("%08x m68340_internal_sim_w %04x, %02x (PPRA1 - Port A Pin Assignment 1)\n", pc, offset,data); + break; - case m68340SIM_PORTB: - logerror("%08x m68340_internal_sim_w %04x, %02x (PORTB - Port B Data)\n", pc, offset,data); - break; + case m68340SIM_PPRA2: + logerror("%08x m68340_internal_sim_w %04x, %02x (PPRA2 - Port A Pin Assignment 2)\n", pc, offset,data); + break; - case m68340SIM_PORTB1: - logerror("%08x m68340_internal_sim_w %04x, %02x (PORTB1 - Port B Data - mirror)\n", pc, offset,data); - break; + case m68340SIM_PORTB: + logerror("%08x m68340_internal_sim_w %04x, %02x (PORTB - Port B Data)\n", pc, offset,data); + break; - case m68340SIM_DDRB: - logerror("%08x m68340_internal_sim_w %04x, %02x (DDR - Port B Data Direction)\n", pc, offset,data); - break; + case m68340SIM_PORTB1: + logerror("%08x m68340_internal_sim_w %04x, %02x (PORTB1 - Port B Data - mirror)\n", pc, offset,data); + break; - case m68340SIM_PPARB: - logerror("%08x m68340_internal_sim_w %04x, %02x (PPARB - Port B Pin Assignment)\n", pc, offset,data); - break; + case m68340SIM_DDRB: + logerror("%08x m68340_internal_sim_w %04x, %02x (DDR - Port B Data Direction)\n", pc, offset,data); + break; - default: - logerror("%08x m68340_internal_sim_w %04x, %02x (ILLEGAL?)\n", pc, offset,data); - break; + case m68340SIM_PPARB: + logerror("%08x m68340_internal_sim_w %04x, %02x (PPARB - Port B Pin Assignment)\n", pc, offset,data); + break; - } + default: + logerror("%08x m68340_internal_sim_w %04x, %02x (ILLEGAL?)\n", pc, offset,data); + break; } } -WRITE32_MEMBER( m68340cpu_device::m68340_internal_sim_cs_w ) +WRITE32_MEMBER( m68340_cpu_device::m68340_internal_sim_cs_w ) { offset += m68340SIM_AM_CS0>>2; - m68340cpu_device *m68k = this; - m68340_sim* sim = m68k->m68340SIM; - assert(sim != nullptr); - - if (sim) - { - int pc = space.device().safe_pc(); + assert(m68340SIM); + m68340_sim &sim = *m68340SIM; - switch (offset<<2) - { - case m68340SIM_AM_CS0: - COMBINE_DATA(&sim->m_am[0]); - break; + int pc = space.device().safe_pc(); - case m68340SIM_BA_CS0: - COMBINE_DATA(&sim->m_ba[0]); - break; + switch (offset<<2) + { + case m68340SIM_AM_CS0: + COMBINE_DATA(&sim.m_am[0]); + break; - case m68340SIM_AM_CS1: - COMBINE_DATA(&sim->m_am[1]); - break; + case m68340SIM_BA_CS0: + COMBINE_DATA(&sim.m_ba[0]); + break; - case m68340SIM_BA_CS1: - COMBINE_DATA(&sim->m_ba[1]); - break; + case m68340SIM_AM_CS1: + COMBINE_DATA(&sim.m_am[1]); + break; - case m68340SIM_AM_CS2: - COMBINE_DATA(&sim->m_am[2]); - break; + case m68340SIM_BA_CS1: + COMBINE_DATA(&sim.m_ba[1]); + break; - case m68340SIM_BA_CS2: - COMBINE_DATA(&sim->m_ba[2]); - break; + case m68340SIM_AM_CS2: + COMBINE_DATA(&sim.m_am[2]); + break; - case m68340SIM_AM_CS3: - COMBINE_DATA(&sim->m_am[3]); - break; + case m68340SIM_BA_CS2: + COMBINE_DATA(&sim.m_ba[2]); + break; - case m68340SIM_BA_CS3: - COMBINE_DATA(&sim->m_ba[3]); - break; + case m68340SIM_AM_CS3: + COMBINE_DATA(&sim.m_am[3]); + break; - default: - logerror("%08x m68340_internal_sim_w %08x, %08x (%08x)\n", pc, offset*4,data,mem_mask); - break; + case m68340SIM_BA_CS3: + COMBINE_DATA(&sim.m_ba[3]); + break; - } + default: + logerror("%08x m68340_internal_sim_w %08x, %08x (%08x)\n", pc, offset*4,data,mem_mask); + break; } - } -void m68340cpu_device::do_timer_irq(void) +void m68340_cpu_device::do_timer_irq() { //logerror("do_timer_irq\n"); int timer_irq_level = (m_picr & 0x0700)>>8; @@ -333,17 +342,17 @@ void m68340cpu_device::do_timer_irq(void) } } -TIMER_CALLBACK_MEMBER(m68340cpu_device::periodic_interrupt_timer_callback) +TIMER_CALLBACK_MEMBER(m68340_cpu_device::periodic_interrupt_timer_callback) { do_timer_irq(); m_irq_timer->adjust(cycles_to_attotime(20000)); // hack } -void m68340cpu_device::start_68340_sim(void) +void m68340_cpu_device::start_68340_sim() { - m_irq_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(m68340cpu_device::periodic_interrupt_timer_callback),this)); + m_irq_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(m68340_cpu_device::periodic_interrupt_timer_callback),this)); } -void m68340_sim::reset(void) +void m68340_sim::reset() { } diff --git a/src/devices/machine/68340sim.h b/src/devices/machine/68340sim.h index 821de60b319..203930d0466 100644 --- a/src/devices/machine/68340sim.h +++ b/src/devices/machine/68340sim.h @@ -1,60 +1,18 @@ // license:BSD-3-Clause // copyright-holders:David Haywood +#ifndef MAME_MACHINE_68340SIM_H +#define MAME_MACHINE_68340SIM_H -#include "cpu/m68000/m68000.h" - -#define m68340SIM_MCR (0x00) -// (0x02) -#define m68340SIM_SYNCR (0x04) -#define m68340SIM_AVR_RSR (0x06) -// (0x08) -// (0x0a) -// (0x0c) -// (0x0e) -#define m68340SIM_PORTA (0x11) -#define m68340SIM_DDRA (0x13) -#define m68340SIM_PPRA1 (0x15) -#define m68340SIM_PPRA2 (0x17) -#define m68340SIM_PORTB (0x19) -#define m68340SIM_PORTB1 (0x1b) -#define m68340SIM_DDRB (0x1d) -#define m68340SIM_PPARB (0x1f) -#define m68340SIM_SWIV_SYPCR (0x20) -#define m68340SIM_PICR (0x22) -#define m68340SIM_PITR (0x24) -#define m68340SIM_SWSR (0x26) -// (0x28) -// (0x2a) -// (0x2c) -// (0x2e) -// (0x30) -// (0x32) -// (0x34) -// (0x36) -// (0x38) -// (0x3a) -// (0x3c) -// (0x3e) -#define m68340SIM_AM_CS0 (0x40) -#define m68340SIM_BA_CS0 (0x44) -#define m68340SIM_AM_CS1 (0x48) -#define m68340SIM_BA_CS1 (0x4c) -#define m68340SIM_AM_CS2 (0x50) -#define m68340SIM_BA_CS2 (0x54) -#define m68340SIM_AM_CS3 (0x58) -#define m68340SIM_BA_CS3 (0x5c) - - - - +#pragma once class m68340_sim { - public: - +public: uint32_t m_am[4]; uint32_t m_ba[4]; - void reset(void); + void reset(); }; + +#endif // MAME_MACHINE_68340SIM_H diff --git a/src/devices/machine/68340tmu.cpp b/src/devices/machine/68340tmu.cpp index faffb9d1181..92014401a34 100644 --- a/src/devices/machine/68340tmu.cpp +++ b/src/devices/machine/68340tmu.cpp @@ -6,34 +6,26 @@ #include "68340.h" -READ32_MEMBER( m68340cpu_device::m68340_internal_timer_r ) +READ32_MEMBER( m68340_cpu_device::m68340_internal_timer_r ) { - m68340cpu_device *m68k = this; - m68340_timer* timer = m68k->m68340TIMER; - assert(timer != nullptr); + assert(m68340TIMER); + //m68340_timer &timer = *m68340TIMER; - if (timer) - { - int pc = space.device().safe_pc(); - logerror("%08x m68340_internal_timer_r %08x, (%08x)\n", pc, offset*4,mem_mask); - } + int pc = space.device().safe_pc(); + logerror("%08x m68340_internal_timer_r %08x, (%08x)\n", pc, offset*4,mem_mask); return 0x00000000; } -WRITE32_MEMBER( m68340cpu_device::m68340_internal_timer_w ) +WRITE32_MEMBER( m68340_cpu_device::m68340_internal_timer_w ) { - m68340cpu_device *m68k = this; - m68340_timer* timer = m68k->m68340TIMER; - assert(timer != nullptr); - - if (timer) - { - int pc = space.device().safe_pc(); - logerror("%08x m68340_internal_timer_w %08x, %08x (%08x)\n", pc, offset*4,data,mem_mask); - } + assert(m68340TIMER); + //m68340_timer &timer = *m68340TIMER; + + int pc = space.device().safe_pc(); + logerror("%08x m68340_internal_timer_w %08x, %08x (%08x)\n", pc, offset*4,data,mem_mask); } -void m68340_timer::reset(void) +void m68340_timer::reset() { } diff --git a/src/devices/machine/68340tmu.h b/src/devices/machine/68340tmu.h index a892e2792d8..911a079c520 100644 --- a/src/devices/machine/68340tmu.h +++ b/src/devices/machine/68340tmu.h @@ -1,10 +1,15 @@ // license:BSD-3-Clause // copyright-holders:David Haywood -#include "cpu/m68000/m68000.h" +#ifndef MAME_MACHINE_68340TMU_H +#define MAME_MACHINE_68340TMU_H + +#pragma once class m68340_timer { - public: - void reset(void); +public: + void reset(); }; + +#endif // MAME_MACHINE_68340TMU_H diff --git a/src/devices/machine/6840ptm.cpp b/src/devices/machine/6840ptm.cpp index 883821cb039..8921c50201c 100644 --- a/src/devices/machine/6840ptm.cpp +++ b/src/devices/machine/6840ptm.cpp @@ -38,9 +38,9 @@ #include "emu.h" #include "6840ptm.h" +//#define VERBOSE 1 +#include "logmacro.h" -#define PTMVERBOSE 0 -#define PLOG(x) do { if (PTMVERBOSE) logerror x; } while (0) /*************************************************************************** LOCAL VARIABLES @@ -63,18 +63,18 @@ const char *const ptm6840_device::opmode[] = ***************************************************************************/ // device type definition -const device_type PTM6840 = device_creator; +DEFINE_DEVICE_TYPE(PTM6840, ptm6840_device, "ptm6840", "MC6840 PTM") //------------------------------------------------- // ptm6840_device - constructor //------------------------------------------------- ptm6840_device::ptm6840_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, PTM6840, "6840 PTM", tag, owner, clock, "ptm6840", __FILE__), - m_out_cb{*this, *this, *this}, - m_irq_cb(*this) + : device_t(mconfig, PTM6840, tag, owner, clock) + , m_external_clock{ 0.0, 0.0, 0.0 } + , m_out_cb{*this, *this, *this} + , m_irq_cb(*this) { - m_external_clock[0] = m_external_clock[1] = m_external_clock[2] = 0.0; } //------------------------------------------------- @@ -300,7 +300,7 @@ uint16_t ptm6840_device::compute_counter( int counter ) const // If there's no timer, return the count if (!m_enabled[counter]) { - PLOG(("MC6840 #%s: read counter(%d): %d\n", tag(), counter, m_counter[counter])); + LOG("MC6840: read counter(%d): %d\n", counter, m_counter[counter]); return m_counter[counter]; } @@ -308,12 +308,12 @@ uint16_t ptm6840_device::compute_counter( int counter ) const if (m_control_reg[counter] & INTERNAL_CLK_EN) { clk = static_cast(clock()); - PLOG(("MC6840 #%s: %d internal clock freq %f \n", tag(), counter, clk)); + LOG("MC6840: %d internal clock freq %f \n", counter, clk); } else { clk = m_external_clock[counter]; - PLOG(("MC6840 #%s: %d external clock freq %f \n", tag(), counter, clk)); + LOG("MC6840: %d external clock freq %f \n", counter, clk); } // See how many are left int remaining = (m_timer[counter]->remaining() * clk).as_double(); @@ -326,7 +326,7 @@ uint16_t ptm6840_device::compute_counter( int counter ) const int lsb = remaining % divisor; remaining = (msb << 8) | lsb; } - PLOG(("MC6840 #%s: read counter(%d): %d\n", tag(), counter, remaining)); + LOG("MC6840: read counter(%d): %d\n", counter, remaining); return remaining; } @@ -351,12 +351,12 @@ void ptm6840_device::reload_count(int idx) if (m_control_reg[idx] & INTERNAL_CLK_EN) { clk = static_cast (clock()); - PLOG(("MC6840 #%s: %d internal clock freq %f \n", tag(), idx, clk)); + LOG("MC6840: %d internal clock freq %f \n", idx, clk); } else { clk = m_external_clock[idx]; - PLOG(("MC6840 #%s: %d external clock freq %f \n", tag(), idx, clk)); + LOG("MC6840: %d external clock freq %f \n", idx, clk); } // Determine the number of clock periods before we expire @@ -379,7 +379,7 @@ void ptm6840_device::reload_count(int idx) } // Set the timer - PLOG(("MC6840 #%s: reload_count(%d): clock = %f count = %d\n", tag(), idx, clk, count)); + LOG("MC6840: reload_count(%d): clock = %f count = %d\n", idx, clk, count); attotime duration = attotime::from_hz(clk) * count; if (idx == 2) @@ -387,7 +387,7 @@ void ptm6840_device::reload_count(int idx) duration *= m_t3_divisor; } - PLOG(("MC6840 #%s: reload_count(%d): output = %f\n", tag(), idx, duration.as_double())); + LOG("MC6840: reload_count(%d): output = %f\n", idx, duration.as_double()); #if 0 if (!(m_control_reg[idx] & INTERNAL_CLK_EN)) @@ -427,7 +427,7 @@ READ8_MEMBER( ptm6840_device::read ) case PTM_6840_STATUS: { - PLOG(("%s: MC6840 #%s: Status read = %04X\n", machine().describe_context(), tag(), m_status_reg)); + LOG("%s: MC6840: Status read = %04X\n", machine().describe_context(), m_status_reg); m_status_read_since_int |= m_status_reg & 0x07; val = m_status_reg; break; @@ -449,7 +449,7 @@ READ8_MEMBER( ptm6840_device::read ) m_lsb_buffer = result & 0xff; - PLOG(("%s: MC6840 #%s: Counter %d read = %04X\n", machine().describe_context(), tag(), idx, result >> 8)); + LOG("%s: MC6840: Counter %d read = %04X\n", machine().describe_context(), idx, result >> 8); val = result >> 8; break; } @@ -490,10 +490,10 @@ WRITE8_MEMBER( ptm6840_device::write ) m_mode[idx] = (data >> 3) & 0x07; m_control_reg[idx] = data; - PLOG(("MC6840 #%s : Control register %d selected\n", tag(), idx)); - PLOG(("operation mode = %s\n", opmode[ m_mode[idx] ])); - PLOG(("value = %04X\n", m_control_reg[idx])); - PLOG(("t3divisor = %d\n", m_t3_divisor)); + LOG("MC6840: Control register %d selected\n", idx); + LOG("operation mode = %s\n", opmode[m_mode[idx]]); + LOG("value = %04X\n", m_control_reg[idx]); + LOG("t3divisor = %d\n", m_t3_divisor); if (diffs & INTERRUPT_EN) update_interrupts(); @@ -510,7 +510,7 @@ WRITE8_MEMBER( ptm6840_device::write ) // Holding reset down if (data & RESET_TIMERS) { - PLOG(("MC6840 #%s : Timer reset\n", tag())); + LOG("MC6840: Timer reset\n"); for (int i = 0; i < 3; i++) { m_timer[i]->enable(false); @@ -542,7 +542,7 @@ WRITE8_MEMBER( ptm6840_device::write ) case PTM_6840_MSBBUF2: case PTM_6840_MSBBUF3: { - PLOG(("MC6840 #%s msbbuf%d = %02X\n", tag(), offset / 2, data)); + LOG("MC6840 msbbuf%d = %02X\n", offset / 2, data); m_msb_buffer = data; break; } @@ -564,7 +564,7 @@ WRITE8_MEMBER( ptm6840_device::write ) reload_count(idx); } - PLOG(("%s:MC6840 #%s: Counter %d latch = %04X\n", machine().describe_context(), tag(), idx, m_latch[idx])); + LOG("%s:MC6840: Counter %d latch = %04X\n", machine().describe_context(), idx, m_latch[idx]); break; } } @@ -577,7 +577,7 @@ WRITE8_MEMBER( ptm6840_device::write ) void ptm6840_device::timeout(int idx) { - PLOG(("**ptm6840 %s t%d timeout**\n", tag(), idx)); + LOG("**ptm6840 t%d timeout**\n", idx); // Set the interrupt flag m_status_reg |= (1 << idx); @@ -591,7 +591,7 @@ void ptm6840_device::timeout(int idx) case 0: case 2: m_output[idx] = m_output[idx] ^ 1; - PLOG(("**ptm6840 %s t%d output %d **\n", tag(), idx, m_output[idx])); + LOG("**ptm6840 t%d output %d **\n", idx, m_output[idx]); m_out_cb[idx](m_output[idx]); break; @@ -600,7 +600,7 @@ void ptm6840_device::timeout(int idx) if (!m_fired[idx]) { m_output[idx] = 1; - PLOG(("**ptm6840 %s t%d output %d **\n", tag(), idx, m_output[idx])); + LOG("**ptm6840 t%d output %d **\n", idx, m_output[idx]); m_out_cb[idx](m_output[idx]); diff --git a/src/devices/machine/6840ptm.h b/src/devices/machine/6840ptm.h index 0ee38b0be4f..832f511179b 100644 --- a/src/devices/machine/6840ptm.h +++ b/src/devices/machine/6840ptm.h @@ -8,11 +8,10 @@ ***************************************************************************/ -#pragma once - -#ifndef __6840PTM_H__ -#define __6840PTM_H__ +#ifndef MAME_MACHINE_6840PTM_H +#define MAME_MACHINE_6840PTM_H +#pragma once @@ -48,8 +47,8 @@ public: ptm6840_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); static void set_external_clocks(device_t &device, double clock0, double clock1, double clock2) { downcast(device).m_external_clock[0] = clock0; downcast(device).m_external_clock[1] = clock1; downcast(device).m_external_clock[2] = clock2; } - template static devcb_base &set_out_callback(device_t &device, int index, _Object object) { return downcast(device).m_out_cb[index].set_callback(object); } - template static devcb_base &set_irq_callback(device_t &device, _Object object) { return downcast(device).m_irq_cb.set_callback(object); } + template static devcb_base &set_out_callback(device_t &device, int index, Object &&cb) { return downcast(device).m_out_cb[index].set_callback(std::forward(cb)); } + template static devcb_base &set_irq_callback(device_t &device, Object &&cb) { return downcast(device).m_irq_cb.set_callback(std::forward(cb)); } int status(int clock) const { return m_enabled[clock]; } // get whether timer is enabled int irq_state() const { return m_irq; } // get IRQ state @@ -151,7 +150,6 @@ private: // device type definition -extern const device_type PTM6840; - +DECLARE_DEVICE_TYPE(PTM6840, ptm6840_device) -#endif /* __6840PTM_H__ */ +#endif // MAME_MACHINE_6840PTM_H diff --git a/src/devices/machine/6850acia.cpp b/src/devices/machine/6850acia.cpp index 567a0af6e9f..64624699e9b 100644 --- a/src/devices/machine/6850acia.cpp +++ b/src/devices/machine/6850acia.cpp @@ -58,60 +58,38 @@ const int acia6850_device::transmitter_control[4][3] = ***************************************************************************/ // device type definition -const device_type ACIA6850 = device_creator; - -template class device_finder; -template class device_finder; +DEFINE_DEVICE_TYPE(ACIA6850, acia6850_device, "acia6850", "MC6850 ACIA") //------------------------------------------------- // acia6850_device - constructor //------------------------------------------------- acia6850_device::acia6850_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, ACIA6850, "6850 ACIA", tag, owner, clock, "acia6850", __FILE__), - m_txd_handler(*this), - m_rts_handler(*this), - m_irq_handler(*this), - m_status(SR_TDRE), - m_tdr(0), - m_first_master_reset(true), - m_dcd_irq_pending(false), - m_overrun_pending(false), - m_divide(0), - m_rts(0), - m_dcd(0), - m_irq(0), - m_txc(0), - m_txd(0), - m_tx_counter(0), - m_tx_irq_enable(false), - m_rxc(0), - m_rxd(1), - m_rx_irq_enable(false) + : acia6850_device(mconfig, ACIA6850, tag, owner, clock) { } -acia6850_device::acia6850_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), - m_txd_handler(*this), - m_rts_handler(*this), - m_irq_handler(*this), - m_status(SR_TDRE), - m_tdr(0), - m_first_master_reset(true), - m_dcd_irq_pending(false), - m_overrun_pending(false), - m_divide(0), - m_rts(0), - m_dcd(0), - m_irq(0), - m_txc(0), - m_txd(0), - m_tx_counter(0), - m_tx_irq_enable(false), - m_rxc(0), - m_rxd(1), - m_rx_irq_enable(false) +acia6850_device::acia6850_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) + , m_txd_handler(*this) + , m_rts_handler(*this) + , m_irq_handler(*this) + , m_status(SR_TDRE) + , m_tdr(0) + , m_first_master_reset(true) + , m_dcd_irq_pending(false) + , m_overrun_pending(false) + , m_divide(0) + , m_rts(0) + , m_dcd(0) + , m_irq(0) + , m_txc(0) + , m_txd(0) + , m_tx_counter(0) + , m_tx_irq_enable(false) + , m_rxc(0) + , m_rxd(1) + , m_rx_irq_enable(false) { } diff --git a/src/devices/machine/6850acia.h b/src/devices/machine/6850acia.h index ebf7594aeec..8ec75cf5e6e 100644 --- a/src/devices/machine/6850acia.h +++ b/src/devices/machine/6850acia.h @@ -8,10 +8,10 @@ *********************************************************************/ -#pragma once +#ifndef MAME_MACHINE_6850ACIA_H +#define MAME_MACHINE_6850ACIA_H -#ifndef __ACIA6850_H__ -#define __ACIA6850_H__ +#pragma once #define MCFG_ACIA6850_TXD_HANDLER(_devcb) \ @@ -30,9 +30,9 @@ public: acia6850_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // static configuration helpers - template static devcb_base &set_txd_handler(device_t &device, _Object object) { return downcast(device).m_txd_handler.set_callback(object); } - template static devcb_base &set_rts_handler(device_t &device, _Object object) { return downcast(device).m_rts_handler.set_callback(object); } - template static devcb_base &set_irq_handler(device_t &device, _Object object) { return downcast(device).m_irq_handler.set_callback(object); } + template static devcb_base &set_txd_handler(device_t &device, Object &&cb) { return downcast(device).m_txd_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_rts_handler(device_t &device, Object &&cb) { return downcast(device).m_rts_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_irq_handler(device_t &device, Object &&cb) { return downcast(device).m_irq_handler.set_callback(std::forward(cb)); } DECLARE_WRITE8_MEMBER( control_w ); DECLARE_READ8_MEMBER( status_r ); @@ -46,7 +46,7 @@ public: DECLARE_WRITE_LINE_MEMBER( write_txc ); protected: - acia6850_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); + acia6850_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); // device-level overrides virtual void device_start() override; @@ -140,9 +140,6 @@ private: }; // device type definition -extern const device_type ACIA6850; - -extern template class device_finder; -extern template class device_finder; +DECLARE_DEVICE_TYPE(ACIA6850, acia6850_device) -#endif /* __ACIA6850_H__ */ +#endif // MAME_MACHINE_6850ACIA_H diff --git a/src/devices/machine/68561mpcc.cpp b/src/devices/machine/68561mpcc.cpp index b783e436758..92f45df9e0e 100644 --- a/src/devices/machine/68561mpcc.cpp +++ b/src/devices/machine/68561mpcc.cpp @@ -86,18 +86,18 @@ FEATURES // DEVICE DEFINITIONS //************************************************************************** // device type definition -const device_type MPCC = device_creator; -const device_type MPCC68560 = device_creator; -const device_type MPCC68560A = device_creator; -const device_type MPCC68561 = device_creator; -const device_type MPCC68561A = device_creator; +DEFINE_DEVICE_TYPE(MPCC, mpcc_device, "mpcc", "Rockwell MPCC") +DEFINE_DEVICE_TYPE(MPCC68560, mpcc68560_device, "mpcc68560", "MPCC 68560") +DEFINE_DEVICE_TYPE(MPCC68560A, mpcc68560a_device, "mpcc68560a", "MPCC 68560A") +DEFINE_DEVICE_TYPE(MPCC68561, mpcc68561_device, "mpcc68561", "MPCC 68561") +DEFINE_DEVICE_TYPE(MPCC68561A, mpcc68561a_device, "mpcc68561a", "MPCC 68561A") //************************************************************************** // LIVE DEVICE //************************************************************************** -mpcc_device::mpcc_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, uint32_t variant, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), +mpcc_device::mpcc_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint32_t variant) + : device_t(mconfig, type, tag, owner, clock), device_serial_interface(mconfig, *this), m_irq(CLEAR_LINE), m_variant(variant), @@ -141,27 +141,27 @@ mpcc_device::mpcc_device(const machine_config &mconfig, device_type type, const } mpcc_device::mpcc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mpcc_device(mconfig, MPCC, "Rockwell MPCC", tag, owner, clock, TYPE_MPCC, "mpcc", __FILE__) + : mpcc_device(mconfig, MPCC, tag, owner, clock, TYPE_MPCC) { } mpcc68560_device::mpcc68560_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mpcc_device(mconfig, MPCC68560, "MPCC 68560", tag, owner, clock, TYPE_MPCC68560, "mpcc68560", __FILE__) + : mpcc_device(mconfig, MPCC68560, tag, owner, clock, TYPE_MPCC68560) { } -mpcc68560A_device::mpcc68560A_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mpcc_device(mconfig, MPCC68560A, "MPCC 68560A", tag, owner, clock, TYPE_MPCC68560A, "mpcc68560a", __FILE__) +mpcc68560a_device::mpcc68560a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : mpcc_device(mconfig, MPCC68560A, tag, owner, clock, TYPE_MPCC68560A) { } mpcc68561_device::mpcc68561_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mpcc_device(mconfig, MPCC68561, "MPCC 68561", tag, owner, clock, TYPE_MPCC68561, "mpcc68561", __FILE__) + : mpcc_device(mconfig, MPCC68561, tag, owner, clock, TYPE_MPCC68561) { } -mpcc68561A_device::mpcc68561A_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mpcc_device(mconfig, MPCC68561A, "MPCC 68561A", tag, owner, clock, TYPE_MPCC68561A, "mpcc68561a", __FILE__) +mpcc68561a_device::mpcc68561a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : mpcc_device(mconfig, MPCC68561A, tag, owner, clock, TYPE_MPCC68561A) { } diff --git a/src/devices/machine/68561mpcc.h b/src/devices/machine/68561mpcc.h index f9832be6c11..031d60bdef4 100644 --- a/src/devices/machine/68561mpcc.h +++ b/src/devices/machine/68561mpcc.h @@ -35,8 +35,8 @@ ***************************************************************************/ -#ifndef MPCC68561_H -#define MPCC68561_H +#ifndef MAME_MACHINE_68561MPCC_H +#define MAME_MACHINE_68561MPCC_H /* Variant ADD macros - use the right one to enable the right feature set! */ @@ -89,21 +89,19 @@ //************************************************************************** // TYPE DEFINITIONS //************************************************************************** -class mpcc_device : public device_t, - public device_serial_interface +class mpcc_device : public device_t, public device_serial_interface { public: // construction/destruction - mpcc_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, uint32_t variant, const char *shortname, const char *source); mpcc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_out_txd_callback(device_t &device, _Object object) { return downcast(device).m_out_txd_cb.set_callback(object); } - template static devcb_base &set_out_dtr_callback(device_t &device, _Object object) { return downcast(device).m_out_dtr_cb.set_callback(object); } - template static devcb_base &set_out_rts_callback(device_t &device, _Object object) { return downcast(device).m_out_rts_cb.set_callback(object); } - template static devcb_base &set_out_rtxc_callback(device_t &device, _Object object) { return downcast(device).m_out_rtxc_cb.set_callback(object); } - template static devcb_base &set_out_trxc_callback(device_t &device, _Object object) { return downcast(device).m_out_trxc_cb.set_callback(object); } + template static devcb_base &set_out_txd_callback(device_t &device, Object &&cb) { return downcast(device).m_out_txd_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_dtr_callback(device_t &device, Object &&cb) { return downcast(device).m_out_dtr_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_rts_callback(device_t &device, Object &&cb) { return downcast(device).m_out_rts_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_rtxc_callback(device_t &device, Object &&cb) { return downcast(device).m_out_rtxc_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_trxc_callback(device_t &device, Object &&cb) { return downcast(device).m_out_trxc_cb.set_callback(std::forward(cb)); } - template static devcb_base &set_out_int_callback(device_t &device, _Object object) { return downcast(device).m_out_int_cb.set_callback(object); } + template static devcb_base &set_out_int_callback(device_t &device, Object &&cb) { return downcast(device).m_out_int_cb.set_callback(std::forward(cb)); } static void configure_clocks(device_t &device, int rxc, int txc) { @@ -127,6 +125,8 @@ public: DECLARE_WRITE_LINE_MEMBER( txc_w ) {} // { m_chanA->txc_w(state); } protected: + mpcc_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint32_t variant); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -197,10 +197,9 @@ protected: TYPE_MPCC68560A = 0x004, TYPE_MPCC68561 = 0x008, TYPE_MPCC68561A = 0x010, + SET_TYPE_A = TYPE_MPCC68560A | TYPE_MPCC68561A }; -#define SET_TYPE_A ( mpcc_device::TYPE_MPCC68560A | mpcc_device::TYPE_MPCC68561A ) - // State variables uint32_t m_irq; uint32_t m_variant; @@ -454,16 +453,16 @@ protected: }; +class mpcc68560_device : public mpcc_device { public: mpcc68560_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; +class mpcc68560a_device : public mpcc_device { public: mpcc68560a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; +class mpcc68561_device : public mpcc_device { public: mpcc68561_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; +class mpcc68561a_device : public mpcc_device { public: mpcc68561a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; + // device type definition -extern const device_type MPCC; -extern const device_type MPCC68560; -extern const device_type MPCC68560A; -extern const device_type MPCC68561; -extern const device_type MPCC68561A; - -class mpcc68560_device : public mpcc_device { public : mpcc68560_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; -class mpcc68560A_device : public mpcc_device { public : mpcc68560A_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; -class mpcc68561_device : public mpcc_device { public : mpcc68561_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; -class mpcc68561A_device : public mpcc_device { public : mpcc68561A_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; - -#endif // MPCC68561_H +DECLARE_DEVICE_TYPE(MPCC, mpcc_device) +DECLARE_DEVICE_TYPE(MPCC68560, mpcc68560_device) +DECLARE_DEVICE_TYPE(MPCC68560A, mpcc68560a_device) +DECLARE_DEVICE_TYPE(MPCC68561, mpcc68561_device) +DECLARE_DEVICE_TYPE(MPCC68561A, mpcc68561a_device) + +#endif // MAME_MACHINE_68561MPCC_H diff --git a/src/devices/machine/7200fifo.cpp b/src/devices/machine/7200fifo.cpp index ff2c9205f91..05ba0f686d4 100644 --- a/src/devices/machine/7200fifo.cpp +++ b/src/devices/machine/7200fifo.cpp @@ -14,14 +14,14 @@ #include "machine/7200fifo.h" -const device_type FIFO7200 = device_creator; +DEFINE_DEVICE_TYPE(FIFO7200, fifo7200_device, "fifo7200", "IDT7200 FIFO") //------------------------------------------------- // fifo7200_device - constructor //------------------------------------------------- fifo7200_device::fifo7200_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, FIFO7200, "IDT7200 FIFO", tag, owner, clock, "fifo7200", __FILE__), + : device_t(mconfig, FIFO7200, tag, owner, clock), m_ram_size(0), m_read_ptr(0), m_write_ptr(0), m_ef(0), m_ff(0), m_hf(0), m_ef_handler(*this), m_ff_handler(*this), diff --git a/src/devices/machine/7200fifo.h b/src/devices/machine/7200fifo.h index c1ebf2d36e5..b9d2a01009c 100644 --- a/src/devices/machine/7200fifo.h +++ b/src/devices/machine/7200fifo.h @@ -45,10 +45,10 @@ The following chips are functionally equivalent and pin-compatible. **********************************************************************/ -#pragma once +#ifndef MAME_MACHINE_7200FIFO_H +#define MAME_MACHINE_7200FIFO_H -#ifndef _7200FIFO_H -#define _7200FIFO_H +#pragma once @@ -83,9 +83,9 @@ public: fifo7200_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // static configuration helpers - template static devcb_base &set_ef_handler(device_t &device, _Object object) { return downcast(device).m_ef_handler.set_callback(object); } - template static devcb_base &set_ff_handler(device_t &device, _Object object) { return downcast(device).m_ff_handler.set_callback(object); } - template static devcb_base &set_hf_handler(device_t &device, _Object object) { return downcast(device).m_hf_handler.set_callback(object); } + template static devcb_base &set_ef_handler(device_t &device, Object &&cb) { return downcast(device).m_ef_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_ff_handler(device_t &device, Object &&cb) { return downcast(device).m_ff_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_hf_handler(device_t &device, Object &&cb) { return downcast(device).m_hf_handler.set_callback(std::forward(cb)); } static void set_ram_size(device_t &device, int size) { downcast(device).m_ram_size = size; } DECLARE_READ_LINE_MEMBER( ef_r ) { return !m_ef; } // _EF @@ -125,7 +125,6 @@ private: }; // device type definition -extern const device_type FIFO7200; - +DECLARE_DEVICE_TYPE(FIFO7200, fifo7200_device) -#endif /* _7200FIFO_H */ +#endif // MAME_MACHINE_7200FIFO_H diff --git a/src/devices/machine/7400.cpp b/src/devices/machine/7400.cpp index fa189e91a7d..595ce09ac32 100644 --- a/src/devices/machine/7400.cpp +++ b/src/devices/machine/7400.cpp @@ -9,10 +9,10 @@ #include "emu.h" #include "7400.h" -const device_type TTL7400 = device_creator; +DEFINE_DEVICE_TYPE(TTL7400, ttl7400_device, "7400", "7400 Quad 2-Input NAND Gate") ttl7400_device::ttl7400_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, TTL7400, "7400 Quad 2-Input NAND Gate", tag, owner, clock, "7400", __FILE__) + : device_t(mconfig, TTL7400, tag, owner, clock) , m_y1_func(*this) , m_y2_func(*this) , m_y3_func(*this) diff --git a/src/devices/machine/7400.h b/src/devices/machine/7400.h index 69ddaa2685a..a202a85d466 100644 --- a/src/devices/machine/7400.h +++ b/src/devices/machine/7400.h @@ -28,10 +28,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_MACHINE_7400_H +#define MAME_MACHINE_7400_H -#ifndef TTL7400_H -#define TTL7400_H +#pragma once #define MCFG_7400_Y1_CB(_devcb) \ @@ -56,10 +56,10 @@ public: ttl7400_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // static configuration helpers - template static devcb_base &set_y1_cb(device_t &device, _Object object) { return downcast(device).m_y1_func.set_callback(object); } - template static devcb_base &set_y2_cb(device_t &device, _Object object) { return downcast(device).m_y2_func.set_callback(object); } - template static devcb_base &set_y3_cb(device_t &device, _Object object) { return downcast(device).m_y3_func.set_callback(object); } - template static devcb_base &set_y4_cb(device_t &device, _Object object) { return downcast(device).m_y4_func.set_callback(object); } + template static devcb_base &set_y1_cb(device_t &device, Object &&cb) { return downcast(device).m_y1_func.set_callback(std::forward(cb)); } + template static devcb_base &set_y2_cb(device_t &device, Object &&cb) { return downcast(device).m_y2_func.set_callback(std::forward(cb)); } + template static devcb_base &set_y3_cb(device_t &device, Object &&cb) { return downcast(device).m_y3_func.set_callback(std::forward(cb)); } + template static devcb_base &set_y4_cb(device_t &device, Object &&cb) { return downcast(device).m_y4_func.set_callback(std::forward(cb)); } // public interfaces DECLARE_WRITE_LINE_MEMBER( a1_w ); @@ -104,7 +104,6 @@ private: }; // device type definition -extern const device_type TTL7400; - +DECLARE_DEVICE_TYPE(TTL7400, ttl7400_device) -#endif /* TTL7400_H */ +#endif // MAME_MACHINE_7400_H diff --git a/src/devices/machine/7404.cpp b/src/devices/machine/7404.cpp index 09251088c87..1c056c4ccc0 100644 --- a/src/devices/machine/7404.cpp +++ b/src/devices/machine/7404.cpp @@ -9,10 +9,10 @@ #include "emu.h" #include "7404.h" -const device_type TTL7404 = device_creator; +DEFINE_DEVICE_TYPE(TTL7404, ttl7404_device, "7404", "5/7404 Hex Inverters") ttl7404_device::ttl7404_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, TTL7404, "5/7404 Hex Inverters", tag, owner, clock, "7404", __FILE__) + : device_t(mconfig, TTL7404, tag, owner, clock) , m_y1_func(*this) , m_y2_func(*this) , m_y3_func(*this) diff --git a/src/devices/machine/7404.h b/src/devices/machine/7404.h index f7192b802e9..b2be5e5182c 100644 --- a/src/devices/machine/7404.h +++ b/src/devices/machine/7404.h @@ -55,10 +55,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_MACHINE_7404_H +#define MAME_MACHINE_7404_H -#ifndef TTL7404_H -#define TTL7404_H +#pragma once #define MCFG_7404_Y1_CB(_devcb) \ @@ -89,12 +89,12 @@ public: ttl7404_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // static configuration helpers - template static devcb_base &set_y1_cb(device_t &device, _Object object) { return downcast(device).m_y1_func.set_callback(object); } - template static devcb_base &set_y2_cb(device_t &device, _Object object) { return downcast(device).m_y2_func.set_callback(object); } - template static devcb_base &set_y3_cb(device_t &device, _Object object) { return downcast(device).m_y3_func.set_callback(object); } - template static devcb_base &set_y4_cb(device_t &device, _Object object) { return downcast(device).m_y4_func.set_callback(object); } - template static devcb_base &set_y5_cb(device_t &device, _Object object) { return downcast(device).m_y5_func.set_callback(object); } - template static devcb_base &set_y6_cb(device_t &device, _Object object) { return downcast(device).m_y6_func.set_callback(object); } + template static devcb_base &set_y1_cb(device_t &device, Object &&cb) { return downcast(device).m_y1_func.set_callback(std::forward(cb)); } + template static devcb_base &set_y2_cb(device_t &device, Object &&cb) { return downcast(device).m_y2_func.set_callback(std::forward(cb)); } + template static devcb_base &set_y3_cb(device_t &device, Object &&cb) { return downcast(device).m_y3_func.set_callback(std::forward(cb)); } + template static devcb_base &set_y4_cb(device_t &device, Object &&cb) { return downcast(device).m_y4_func.set_callback(std::forward(cb)); } + template static devcb_base &set_y5_cb(device_t &device, Object &&cb) { return downcast(device).m_y5_func.set_callback(std::forward(cb)); } + template static devcb_base &set_y6_cb(device_t &device, Object &&cb) { return downcast(device).m_y6_func.set_callback(std::forward(cb)); } // public interfaces DECLARE_WRITE_LINE_MEMBER( a1_w ); @@ -139,7 +139,6 @@ private: }; // device type definition -extern const device_type TTL7404; - +DECLARE_DEVICE_TYPE(TTL7404, ttl7404_device) -#endif /* TTL7404_H */ +#endif // MAME_MACHINE_7404_H diff --git a/src/devices/machine/74123.cpp b/src/devices/machine/74123.cpp index 7fde031e7aa..5efb34ec085 100644 --- a/src/devices/machine/74123.cpp +++ b/src/devices/machine/74123.cpp @@ -12,9 +12,8 @@ #include "machine/74123.h" #include "machine/rescap.h" - -#define LOG (0) - +//#define VERBOSE 1 +#include "logmacro.h" //************************************************************************** @@ -22,14 +21,15 @@ //************************************************************************** // device type definition -const device_type TTL74123 = device_creator; +DEFINE_DEVICE_TYPE(TTL74123, ttl74123_device, "ttl74123", "74123 TTL") //------------------------------------------------- // ttl74123_device - constructor //------------------------------------------------- ttl74123_device::ttl74123_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, TTL74123, "74123 TTL", tag, owner, clock, "ttl74123", __FILE__), m_timer(nullptr), + : device_t(mconfig, TTL74123, tag, owner, clock), + m_timer(nullptr), m_connection_type(TTL74123_NOT_GROUNDED_NO_DIODE), m_res(1.0), m_cap(1.0), @@ -135,7 +135,7 @@ void ttl74123_device::set_output() machine().scheduler().timer_set( attotime::zero, timer_expired_delegate(FUNC(ttl74123_device::output_callback ),this), output); - if (LOG) logerror("74123 %s: Output: %d\n", tag(), output); + LOG("74123: Output: %d\n", output); } @@ -167,11 +167,11 @@ void ttl74123_device::start_pulse() { m_timer->adjust(duration); - if (LOG) logerror("74123 %s: Retriggering pulse. Duration: %f\n", tag(), duration.as_double()); + LOG("74123: Retriggering pulse. Duration: %f\n", duration.as_double()); } else { - if (LOG) logerror("74123 %s: Retriggering failed.\n", tag()); + LOG("74123: Retriggering failed.\n"); } } else @@ -181,7 +181,7 @@ void ttl74123_device::start_pulse() set_output(); - if (LOG) logerror("74123 %s: Starting pulse. Duration: %f\n", tag(), duration.as_double()); + LOG("74123: Starting pulse. Duration: %f\n", duration.as_double()); } } @@ -233,7 +233,7 @@ WRITE8_MEMBER( ttl74123_device::clear_w) { m_timer->adjust(attotime::zero); - if (LOG) logerror("74123 #%s: Cleared\n", tag() ); + LOG("74123: Cleared\n"); } m_clear = data; } diff --git a/src/devices/machine/74123.h b/src/devices/machine/74123.h index 6019369e05a..0da73384cef 100644 --- a/src/devices/machine/74123.h +++ b/src/devices/machine/74123.h @@ -45,10 +45,10 @@ *****************************************************************************/ -#pragma once +#ifndef MAME_MACHINE_74123_H +#define MAME_MACHINE_74123_H -#ifndef __TTL74123_H__ -#define __TTL74123_H__ +#pragma once @@ -103,7 +103,7 @@ public: static void set_a_pin_value(device_t &device, int value) { downcast(device).m_a = value; } static void set_b_pin_value(device_t &device, int value) { downcast(device).m_b = value; } static void set_clear_pin_value(device_t &device, int value) { downcast(device).m_clear = value; } - template static devcb_base &set_output_changed_callback(device_t &device, _Object object) { return downcast(device).m_output_changed_cb.set_callback(object); } + template static devcb_base &set_output_changed_callback(device_t &device, Object &&cb) { return downcast(device).m_output_changed_cb.set_callback(std::forward(cb)); } DECLARE_WRITE8_MEMBER(a_w); DECLARE_WRITE8_MEMBER(b_w); @@ -121,7 +121,6 @@ protected: TIMER_CALLBACK_MEMBER( clear_callback ); private: - int timer_running(); void start_pulse(); void set_output(); @@ -139,6 +138,6 @@ private: // device type definition -extern const device_type TTL74123; +DECLARE_DEVICE_TYPE(TTL74123, ttl74123_device) -#endif +#endif // MAME_MACHINE_74123_H diff --git a/src/devices/machine/74145.cpp b/src/devices/machine/74145.cpp index 4f6b3e2a7be..e6fdd674f97 100644 --- a/src/devices/machine/74145.cpp +++ b/src/devices/machine/74145.cpp @@ -50,7 +50,7 @@ #include "coreutil.h" -const device_type TTL74145 = device_creator; +DEFINE_DEVICE_TYPE(TTL74145, ttl74145_device, "ttl74145", "TTL74145") /*************************************************************************** DEVICE INTERFACE @@ -60,7 +60,7 @@ const device_type TTL74145 = device_creator; //------------------------------------------------- ttl74145_device::ttl74145_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, TTL74145, "TTL74145", tag, owner, clock, "ttl74145", __FILE__) + : device_t(mconfig, TTL74145, tag, owner, clock) , m_output_line_0_cb(*this) , m_output_line_1_cb(*this) , m_output_line_2_cb(*this) diff --git a/src/devices/machine/74145.h b/src/devices/machine/74145.h index 8f44de45bb1..d7747b66707 100644 --- a/src/devices/machine/74145.h +++ b/src/devices/machine/74145.h @@ -8,8 +8,11 @@ ***************************************************************************/ -#ifndef __TTL74145_H__ -#define __TTL74145_H__ +#ifndef MAME_MACHINE_74145_H +#define MAME_MACHINE_74145_H + +#pragma once + //************************************************************************** // INTERFACE CONFIGURATION MACROS @@ -56,19 +59,20 @@ public: // construction/destruction ttl74145_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_output_line_0_callback(device_t &device, _Object object) { return downcast(device).m_output_line_0_cb.set_callback(object); } - template static devcb_base &set_output_line_1_callback(device_t &device, _Object object) { return downcast(device).m_output_line_1_cb.set_callback(object); } - template static devcb_base &set_output_line_2_callback(device_t &device, _Object object) { return downcast(device).m_output_line_2_cb.set_callback(object); } - template static devcb_base &set_output_line_3_callback(device_t &device, _Object object) { return downcast(device).m_output_line_3_cb.set_callback(object); } - template static devcb_base &set_output_line_4_callback(device_t &device, _Object object) { return downcast(device).m_output_line_4_cb.set_callback(object); } - template static devcb_base &set_output_line_5_callback(device_t &device, _Object object) { return downcast(device).m_output_line_5_cb.set_callback(object); } - template static devcb_base &set_output_line_6_callback(device_t &device, _Object object) { return downcast(device).m_output_line_6_cb.set_callback(object); } - template static devcb_base &set_output_line_7_callback(device_t &device, _Object object) { return downcast(device).m_output_line_7_cb.set_callback(object); } - template static devcb_base &set_output_line_8_callback(device_t &device, _Object object) { return downcast(device).m_output_line_8_cb.set_callback(object); } - template static devcb_base &set_output_line_9_callback(device_t &device, _Object object) { return downcast(device).m_output_line_9_cb.set_callback(object); } + template static devcb_base &set_output_line_0_callback(device_t &device, Object &&cb) { return downcast(device).m_output_line_0_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_output_line_1_callback(device_t &device, Object &&cb) { return downcast(device).m_output_line_1_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_output_line_2_callback(device_t &device, Object &&cb) { return downcast(device).m_output_line_2_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_output_line_3_callback(device_t &device, Object &&cb) { return downcast(device).m_output_line_3_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_output_line_4_callback(device_t &device, Object &&cb) { return downcast(device).m_output_line_4_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_output_line_5_callback(device_t &device, Object &&cb) { return downcast(device).m_output_line_5_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_output_line_6_callback(device_t &device, Object &&cb) { return downcast(device).m_output_line_6_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_output_line_7_callback(device_t &device, Object &&cb) { return downcast(device).m_output_line_7_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_output_line_8_callback(device_t &device, Object &&cb) { return downcast(device).m_output_line_8_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_output_line_9_callback(device_t &device, Object &&cb) { return downcast(device).m_output_line_9_cb.set_callback(std::forward(cb)); } uint16_t read(); void write(uint8_t data); + protected: // device-level overrides virtual void device_start() override; @@ -91,6 +95,6 @@ private: }; // device type definition -extern const device_type TTL74145; +DECLARE_DEVICE_TYPE(TTL74145, ttl74145_device) -#endif /* TTL74145 */ +#endif // MAME_MACHINE_74145_H diff --git a/src/devices/machine/74148.cpp b/src/devices/machine/74148.cpp index 79a74f16a40..1b8033bc297 100644 --- a/src/devices/machine/74148.cpp +++ b/src/devices/machine/74148.cpp @@ -44,17 +44,18 @@ #include "machine/74148.h" -const device_type TTL74148 = device_creator; +DEFINE_DEVICE_TYPE(TTL74148, ttl74148_device, "74148", "74148 TTL") + ttl74148_device::ttl74148_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, TTL74148, "74148 TTL", tag, owner, clock, "74148", __FILE__), - m_enable_input(0), - m_output(0), - m_output_valid(0), - m_enable_output(0), - m_last_output(0), - m_last_output_valid(0), - m_last_enable_output(0) + : device_t(mconfig, TTL74148, tag, owner, clock) + , m_enable_input(0) + , m_output(0) + , m_output_valid(0) + , m_enable_output(0) + , m_last_output(0) + , m_last_output_valid(0) + , m_last_enable_output(0) { for (auto & elem : m_input_lines) elem = 0; diff --git a/src/devices/machine/74148.h b/src/devices/machine/74148.h index c7301e11588..a3f70b703a1 100644 --- a/src/devices/machine/74148.h +++ b/src/devices/machine/74148.h @@ -40,8 +40,10 @@ *****************************************************************************/ -#ifndef TTL74148_H -#define TTL74148_H +#ifndef MAME_DEVICES_MACHINE_74148_H +#define MAME_DEVICES_MACHINE_74148_H + +#pragma once typedef device_delegate ttl74148_output_delegate; @@ -89,11 +91,11 @@ private: int m_last_enable_output; }; -extern const device_type TTL74148; +DECLARE_DEVICE_TYPE(TTL74148, ttl74148_device) #define MCFG_74148_OUTPUT_CB(_class, _method) \ ttl74148_device::set_output_callback(*device, ttl74148_output_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); -#endif +#endif // MAME_DEVICES_MACHINE_74148_H diff --git a/src/devices/machine/74153.cpp b/src/devices/machine/74153.cpp index 143a5b07fea..427432fc9cc 100644 --- a/src/devices/machine/74153.cpp +++ b/src/devices/machine/74153.cpp @@ -7,15 +7,16 @@ ***************************************************************************/ #include "emu.h" -#include #include "74153.h" +#include + //************************************************************************** // DEVICE DEFINITIONS //************************************************************************** -const device_type TTL153 = device_creator; +DEFINE_DEVICE_TYPE(TTL153, ttl153_device, "ttl153", "SN54/74153") //************************************************************************** @@ -27,7 +28,7 @@ const device_type TTL153 = device_creator; //------------------------------------------------- ttl153_device::ttl153_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, TTL153, "SN54/74153", tag, owner, clock, "ttl153", __FILE__), + device_t(mconfig, TTL153, tag, owner, clock), m_za_cb(*this), m_zb_cb(*this), m_s{ false, false }, diff --git a/src/devices/machine/74153.h b/src/devices/machine/74153.h index 63ed5abcf2e..508b4e2b158 100644 --- a/src/devices/machine/74153.h +++ b/src/devices/machine/74153.h @@ -18,11 +18,11 @@ ***************************************************************************/ -#pragma once - #ifndef MAME_DEVICES_MACHINE_74153_H #define MAME_DEVICES_MACHINE_74153_H +#pragma once + //************************************************************************** @@ -50,11 +50,11 @@ public: ttl153_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // configuration - template static devcb_base &set_za_callback(device_t &device, _Object object) - { return downcast(device).m_za_cb.set_callback(object); } + template static devcb_base &set_za_callback(device_t &device, Object &&cb) + { return downcast(device).m_za_cb.set_callback(std::forward(cb)); } - template static devcb_base &set_zb_callback(device_t &device, _Object object) - { return downcast(device).m_zb_cb.set_callback(object); } + template static devcb_base &set_zb_callback(device_t &device, Object &&cb) + { return downcast(device).m_zb_cb.set_callback(std::forward(cb)); } // select DECLARE_WRITE_LINE_MEMBER(s0_w); @@ -93,6 +93,6 @@ private: }; // device type definition -extern const device_type TTL153; +DECLARE_DEVICE_TYPE(TTL153, ttl153_device) #endif // MAME_DEVICES_MACHINE_74153_H diff --git a/src/devices/machine/74157.cpp b/src/devices/machine/74157.cpp index b68dc1472e6..7320c97ba91 100644 --- a/src/devices/machine/74157.cpp +++ b/src/devices/machine/74157.cpp @@ -20,19 +20,19 @@ // 74LS157 DEVICE //************************************************************************** -const device_type LS157 = device_creator; +DEFINE_DEVICE_TYPE(LS157, ls157_device, "74ls157", "74LS157 Quad 2-to-1 Multiplexer") //------------------------------------------------- // ls157_device - constructor //------------------------------------------------- ls157_device::ls157_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : ls157_device(mconfig, LS157, "74LS157 Quad 2-to-1 Multiplexer", tag, owner, clock, "74ls157", __FILE__) + : ls157_device(mconfig, LS157, tag, owner, clock) { } -ls157_device::ls157_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, u32 clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source) +ls157_device::ls157_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock) + : device_t(mconfig, type, tag, owner, clock) , m_out_cb(*this) { m_a = 0; @@ -211,9 +211,9 @@ void ls157_device::update_output() // 74HCT157 DEVICE //************************************************************************** -const device_type HCT157 = device_creator; +DEFINE_DEVICE_TYPE(HCT157, hct157_device, "74hct157", "74HCT157 Quad 2-to-1 Multiplexer") hct157_device::hct157_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : ls157_device(mconfig, HCT157, "74HCT157 Quad 2-to-1 Multiplexer", tag, owner, clock, "74hct157", __FILE__) + : ls157_device(mconfig, HCT157, tag, owner, clock) { } diff --git a/src/devices/machine/74157.h b/src/devices/machine/74157.h index d88ca452133..fa1150036f5 100644 --- a/src/devices/machine/74157.h +++ b/src/devices/machine/74157.h @@ -18,10 +18,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_MACHINE_74157_H +#define MAME_MACHINE_74157_H -#ifndef DEVICES_MACHINE_74157_H -#define DEVICES_MACHINE_74157_H +#pragma once @@ -44,10 +44,9 @@ class ls157_device : public device_t public: // construction/destruction ls157_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); - ls157_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, u32 clock, const char *shortname, const char *source); // static configuration - template static devcb_base &set_out_callback(device_t &device, _Object object) { return downcast(device).m_out_cb.set_callback(object); } + template static devcb_base &set_out_callback(device_t &device, Object &&cb) { return downcast(device).m_out_cb.set_callback(std::forward(cb)); } // data writes DECLARE_WRITE8_MEMBER(a_w); @@ -66,6 +65,8 @@ public: DECLARE_WRITE_LINE_MEMBER(strobe_w); protected: + ls157_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock); + // device-level overrides virtual void device_start() override; @@ -96,8 +97,7 @@ public: //************************************************************************** // device type definition -extern const device_type LS157; -extern const device_type HCT157; - +DECLARE_DEVICE_TYPE(LS157, ls157_device) +DECLARE_DEVICE_TYPE(HCT157, hct157_device) -#endif +#endif // MAME_MACHINE_74157_H diff --git a/src/devices/machine/74161.cpp b/src/devices/machine/74161.cpp index 2c81cdfcb1a..a866052d83d 100644 --- a/src/devices/machine/74161.cpp +++ b/src/devices/machine/74161.cpp @@ -9,13 +9,13 @@ #include "emu.h" #include "74161.h" -const device_type TTL74160 = device_creator; -const device_type TTL74161 = device_creator; -const device_type TTL74162 = device_creator; -const device_type TTL74163 = device_creator; +DEFINE_DEVICE_TYPE(TTL74160, ttl74160_device, "ttl74160", "54/74160 Decade Counter") +DEFINE_DEVICE_TYPE(TTL74161, ttl74161_device, "ttl74161", "54/74161 Binary Counter") +DEFINE_DEVICE_TYPE(TTL74162, ttl74162_device, "ttl74162", "54/74162 Decade Counter") +DEFINE_DEVICE_TYPE(TTL74163, ttl74163_device, "ttl74163", "54/74163 Binary Counter") -ttl7416x_device::ttl7416x_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, bool synchronous_reset, uint8_t limit) - : device_t(mconfig, type, name, tag, owner, clock, shortname, __FILE__) +ttl7416x_device::ttl7416x_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, bool synchronous_reset, uint8_t limit) + : device_t(mconfig, type, tag, owner, clock) , m_qa_func(*this) , m_qb_func(*this) , m_qc_func(*this) @@ -36,22 +36,22 @@ ttl7416x_device::ttl7416x_device(const machine_config &mconfig, device_type type } ttl74160_device::ttl74160_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : ttl7416x_device(mconfig, TTL74160, "54/74160 Decade Counter", tag, owner, clock, "ttl74160", false, 10) + : ttl7416x_device(mconfig, TTL74160, tag, owner, clock, false, 10) { } ttl74161_device::ttl74161_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : ttl7416x_device(mconfig, TTL74160, "54/74160 Decade Counter", tag, owner, clock, "ttl74160", false, 16) + : ttl7416x_device(mconfig, TTL74161, tag, owner, clock, false, 16) { } ttl74162_device::ttl74162_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : ttl7416x_device(mconfig, TTL74160, "54/74160 Decade Counter", tag, owner, clock, "ttl74160", true, 10) + : ttl7416x_device(mconfig, TTL74162, tag, owner, clock, true, 10) { } ttl74163_device::ttl74163_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : ttl7416x_device(mconfig, TTL74160, "54/74160 Decade Counter", tag, owner, clock, "ttl74160", true, 16) + : ttl7416x_device(mconfig, TTL74163, tag, owner, clock, true, 16) { } diff --git a/src/devices/machine/74161.h b/src/devices/machine/74161.h index da975c09205..f73be684edc 100644 --- a/src/devices/machine/74161.h +++ b/src/devices/machine/74161.h @@ -52,10 +52,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_MACHINE_74161_H +#define MAME_MACHINE_74161_H -#ifndef TTL74161_H -#define TTL74161_H +#pragma once #define MCFG_7416x_QA_CB(_devcb) \ @@ -91,16 +91,13 @@ class ttl7416x_device : public device_t { public: - // construction/destruction - ttl7416x_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, bool synchronous_reset, uint8_t limit); - // static configuration helpers - template static devcb_base &set_qa_cb(device_t &device, _Object object) { return downcast(device).m_qa_func.set_callback(object); } - template static devcb_base &set_qb_cb(device_t &device, _Object object) { return downcast(device).m_qb_func.set_callback(object); } - template static devcb_base &set_qc_cb(device_t &device, _Object object) { return downcast(device).m_qc_func.set_callback(object); } - template static devcb_base &set_qd_cb(device_t &device, _Object object) { return downcast(device).m_qd_func.set_callback(object); } - template static devcb_base &set_output_cb(device_t &device, _Object object) { return downcast(device).m_output_func.set_callback(object); } - template static devcb_base &set_tc_cb(device_t &device, _Object object) { return downcast(device).m_tc_func.set_callback(object); } + template static devcb_base &set_qa_cb(device_t &device, Object &&cb) { return downcast(device).m_qa_func.set_callback(std::forward(cb)); } + template static devcb_base &set_qb_cb(device_t &device, Object &&cb) { return downcast(device).m_qb_func.set_callback(std::forward(cb)); } + template static devcb_base &set_qc_cb(device_t &device, Object &&cb) { return downcast(device).m_qc_func.set_callback(std::forward(cb)); } + template static devcb_base &set_qd_cb(device_t &device, Object &&cb) { return downcast(device).m_qd_func.set_callback(std::forward(cb)); } + template static devcb_base &set_output_cb(device_t &device, Object &&cb) { return downcast(device).m_output_func.set_callback(std::forward(cb)); } + template static devcb_base &set_tc_cb(device_t &device, Object &&cb) { return downcast(device).m_tc_func.set_callback(std::forward(cb)); } // public interfaces DECLARE_WRITE_LINE_MEMBER( clear_w ); @@ -118,6 +115,9 @@ public: DECLARE_READ_LINE_MEMBER( tc_r ); protected: + // construction/destruction + ttl7416x_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, bool synchronous_reset, uint8_t limit); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -176,10 +176,9 @@ public: }; // device type definition -extern const device_type TTL74160; -extern const device_type TTL74161; -extern const device_type TTL74162; -extern const device_type TTL74163; - +DECLARE_DEVICE_TYPE(TTL74160, ttl74160_device) +DECLARE_DEVICE_TYPE(TTL74161, ttl74161_device) +DECLARE_DEVICE_TYPE(TTL74162, ttl74162_device) +DECLARE_DEVICE_TYPE(TTL74163, ttl74163_device) -#endif /* TTL74161_H */ +#endif // MAME_MACHINE_74161_H diff --git a/src/devices/machine/74175.cpp b/src/devices/machine/74175.cpp index 7c8135f4450..28d3152dbeb 100644 --- a/src/devices/machine/74175.cpp +++ b/src/devices/machine/74175.cpp @@ -9,11 +9,11 @@ #include "emu.h" #include "74175.h" -const device_type TTL74174 = device_creator; -const device_type TTL74175 = device_creator; +DEFINE_DEVICE_TYPE(TTL74174, ttl74174_device, "ttl74174", "54/74174 Hex D Flip-Flops with Clear") +DEFINE_DEVICE_TYPE(TTL74175, ttl74175_device, "ttl74175", "54/74175 Quad D Flip-Flops with Clear") -ttl741745_device::ttl741745_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname) - : device_t(mconfig, type, name, tag, owner, clock, shortname, __FILE__) +ttl741745_device::ttl741745_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) , m_q1_func(*this) , m_q2_func(*this) , m_q3_func(*this) @@ -32,7 +32,7 @@ ttl741745_device::ttl741745_device(const machine_config &mconfig, device_type ty } ttl74174_device::ttl74174_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : ttl741745_device(mconfig, TTL74174, "54/74174 Hex D Flip-Flops with Clear", tag, owner, clock, "ttl74174") + : ttl741745_device(mconfig, TTL74174, tag, owner, clock) , m_q5_func(*this) , m_q6_func(*this) , m_d5(0) @@ -43,7 +43,7 @@ ttl74174_device::ttl74174_device(const machine_config &mconfig, const char *tag, } ttl74175_device::ttl74175_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : ttl741745_device(mconfig, TTL74175, "54/74175 Quad D Flip-Flops with Clear", tag, owner, clock, "ttl74175") + : ttl741745_device(mconfig, TTL74175, tag, owner, clock) , m_not_q1_func(*this) , m_not_q2_func(*this) , m_not_q3_func(*this) diff --git a/src/devices/machine/74175.h b/src/devices/machine/74175.h index c22aa05747f..a5f019c3298 100644 --- a/src/devices/machine/74175.h +++ b/src/devices/machine/74175.h @@ -42,10 +42,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_MACHINE_74175_H +#define MAME_MACHINE_74175_H -#ifndef TTL74175_H -#define TTL74175_H +#pragma once #define MCFG_74174_Q1_CB(_devcb) \ @@ -99,12 +99,10 @@ class ttl741745_device : public device_t { public: - ttl741745_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname); - - template static devcb_base &set_q1_cb(device_t &device, _Object object) { return downcast(device).m_q1_func.set_callback(object); } - template static devcb_base &set_q2_cb(device_t &device, _Object object) { return downcast(device).m_q2_func.set_callback(object); } - template static devcb_base &set_q3_cb(device_t &device, _Object object) { return downcast(device).m_q3_func.set_callback(object); } - template static devcb_base &set_q4_cb(device_t &device, _Object object) { return downcast(device).m_q4_func.set_callback(object); } + template static devcb_base &set_q1_cb(device_t &device, Object &&cb) { return downcast(device).m_q1_func.set_callback(std::forward(cb)); } + template static devcb_base &set_q2_cb(device_t &device, Object &&cb) { return downcast(device).m_q2_func.set_callback(std::forward(cb)); } + template static devcb_base &set_q3_cb(device_t &device, Object &&cb) { return downcast(device).m_q3_func.set_callback(std::forward(cb)); } + template static devcb_base &set_q4_cb(device_t &device, Object &&cb) { return downcast(device).m_q4_func.set_callback(std::forward(cb)); } DECLARE_WRITE_LINE_MEMBER( clear_w ); DECLARE_WRITE_LINE_MEMBER( d1_w ); @@ -116,6 +114,8 @@ public: uint8_t q_w(); protected: + ttl741745_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; virtual void device_reset() override; @@ -146,8 +146,8 @@ class ttl74174_device : public ttl741745_device public: ttl74174_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_q5_cb(device_t &device, _Object object) { return downcast(device).m_q5_func.set_callback(object); } - template static devcb_base &set_q6_cb(device_t &device, _Object object) { return downcast(device).m_q6_func.set_callback(object); } + template static devcb_base &set_q5_cb(device_t &device, Object &&cb) { return downcast(device).m_q5_func.set_callback(std::forward(cb)); } + template static devcb_base &set_q6_cb(device_t &device, Object &&cb) { return downcast(device).m_q6_func.set_callback(std::forward(cb)); } DECLARE_WRITE_LINE_MEMBER( d5_w ); DECLARE_WRITE_LINE_MEMBER( d6_w ); @@ -174,10 +174,10 @@ class ttl74175_device : public ttl741745_device public: ttl74175_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_not_q1_cb(device_t &device, _Object object) { return downcast(device).m_not_q1_func.set_callback(object); } - template static devcb_base &set_not_q2_cb(device_t &device, _Object object) { return downcast(device).m_not_q2_func.set_callback(object); } - template static devcb_base &set_not_q3_cb(device_t &device, _Object object) { return downcast(device).m_not_q3_func.set_callback(object); } - template static devcb_base &set_not_q4_cb(device_t &device, _Object object) { return downcast(device).m_not_q4_func.set_callback(object); } + template static devcb_base &set_not_q1_cb(device_t &device, Object &&cb) { return downcast(device).m_not_q1_func.set_callback(std::forward(cb)); } + template static devcb_base &set_not_q2_cb(device_t &device, Object &&cb) { return downcast(device).m_not_q2_func.set_callback(std::forward(cb)); } + template static devcb_base &set_not_q3_cb(device_t &device, Object &&cb) { return downcast(device).m_not_q3_func.set_callback(std::forward(cb)); } + template static devcb_base &set_not_q4_cb(device_t &device, Object &&cb) { return downcast(device).m_not_q4_func.set_callback(std::forward(cb)); } protected: virtual void device_start() override; @@ -197,8 +197,7 @@ private: }; // device type definition -extern const device_type TTL74174; -extern const device_type TTL74175; - +DECLARE_DEVICE_TYPE(TTL74174, ttl74174_device) +DECLARE_DEVICE_TYPE(TTL74175, ttl74175_device) -#endif /* TTL74175_H */ +#endif // MAME_MACHINE_74175_H diff --git a/src/devices/machine/74181.cpp b/src/devices/machine/74181.cpp index bcd2b8db332..66901510b32 100644 --- a/src/devices/machine/74181.cpp +++ b/src/devices/machine/74181.cpp @@ -16,7 +16,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type TTL74181 = device_creator; +DEFINE_DEVICE_TYPE(TTL74181, ttl74181_device, "ttl74181", "74181 TTL") //************************************************************************** @@ -28,7 +28,7 @@ const device_type TTL74181 = device_creator; //------------------------------------------------- ttl74181_device::ttl74181_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, TTL74181, "74181 TTL", tag, owner, clock, "ttl74181", __FILE__), + device_t(mconfig, TTL74181, tag, owner, clock), m_a(0), m_b(0), m_s(0), diff --git a/src/devices/machine/74181.h b/src/devices/machine/74181.h index b6aed4bb0c2..67ba714eacf 100644 --- a/src/devices/machine/74181.h +++ b/src/devices/machine/74181.h @@ -8,10 +8,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_MACHINE_74181_H +#define MAME_MACHINE_74181_H -#ifndef __74181_H__ -#define __74181_H__ +#pragma once @@ -73,7 +73,6 @@ private: // device type definition -extern const device_type TTL74181; - +DECLARE_DEVICE_TYPE(TTL74181, ttl74181_device) -#endif /* __74181_H__ */ +#endif // MAME_MACHINE_74181_H diff --git a/src/devices/machine/7474.cpp b/src/devices/machine/7474.cpp index 69178d9f57c..ea2f315c72f 100644 --- a/src/devices/machine/7474.cpp +++ b/src/devices/machine/7474.cpp @@ -49,14 +49,14 @@ //************************************************************************** // device type definition -const device_type TTL7474 = device_creator; +DEFINE_DEVICE_TYPE(TTL7474, ttl7474_device, "7474", "7474 TTL") //------------------------------------------------- // ttl7474_device - constructor //------------------------------------------------- ttl7474_device::ttl7474_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, TTL7474, "7474 TTL", tag, owner, clock, "7474", __FILE__), + : device_t(mconfig, TTL7474, tag, owner, clock), m_output_func(*this), m_comp_output_func(*this) { diff --git a/src/devices/machine/7474.h b/src/devices/machine/7474.h index a58fc46c854..3b0b604958d 100644 --- a/src/devices/machine/7474.h +++ b/src/devices/machine/7474.h @@ -39,10 +39,10 @@ *****************************************************************************/ -#pragma once +#ifndef MAME_MACHINE_TTL7474_H +#define MAME_MACHINE_TTL7474_H -#ifndef __TTL7474_H__ -#define __TTL7474_H__ +#pragma once @@ -71,8 +71,8 @@ public: ttl7474_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // static configuration helpers - template static devcb_base &set_output_cb(device_t &device, _Object object) { return downcast(device).m_output_func.set_callback(object); } - template static devcb_base &set_comp_output_cb(device_t &device, _Object object) { return downcast(device).m_comp_output_func.set_callback(object); } + template static devcb_base &set_output_cb(device_t &device, Object &&cb) { return downcast(device).m_output_func.set_callback(std::forward(cb)); } + template static devcb_base &set_comp_output_cb(device_t &device, Object &&cb) { return downcast(device).m_comp_output_func.set_callback(std::forward(cb)); } // public interfaces DECLARE_WRITE_LINE_MEMBER( clear_w ); @@ -88,6 +88,7 @@ protected: virtual void device_reset() override; virtual void device_post_load() override { } virtual void device_clock_changed() override { } + private: // callbacks devcb_write_line m_output_func; @@ -114,7 +115,6 @@ private: // device type definition -extern const device_type TTL7474; - +DECLARE_DEVICE_TYPE(TTL7474, ttl7474_device) -#endif /* __TTL7474_H__ */ +#endif // MAME_MACHINE_TTL7474_H diff --git a/src/devices/machine/8042kbdc.cpp b/src/devices/machine/8042kbdc.cpp index 8c7d4b70dcd..98b1161b902 100644 --- a/src/devices/machine/8042kbdc.cpp +++ b/src/devices/machine/8042kbdc.cpp @@ -191,14 +191,14 @@ #define LOG_KEYBOARD 0 #define LOG_ACCESSES 0 -const device_type KBDC8042 = device_creator; +DEFINE_DEVICE_TYPE(KBDC8042, kbdc8042_device, "kbdc8042", "8042 Keyboard Controller") //------------------------------------------------- // kbdc8042_device - constructor //------------------------------------------------- kbdc8042_device::kbdc8042_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, KBDC8042, "8042 Keyboard Controller", tag, owner, clock, "kbdc8042", __FILE__) + : device_t(mconfig, KBDC8042, tag, owner, clock) , m_keyboard_dev(*this, "at_keyboard") , m_system_reset_cb(*this) , m_gate_a20_cb(*this) diff --git a/src/devices/machine/8042kbdc.h b/src/devices/machine/8042kbdc.h index 491672dd3e7..52bad435551 100644 --- a/src/devices/machine/8042kbdc.h +++ b/src/devices/machine/8042kbdc.h @@ -9,24 +9,19 @@ **********************************************************************/ -#ifndef KBDC8042_H -#define KBDC8042_H +#ifndef MAME_MACHINE_8042KBDC_H +#define MAME_MACHINE_8042KBDC_H -#include "machine/pckeybrd.h" +#pragma once -enum kbdc8042_type_t -{ - KBDC8042_STANDARD, - KBDC8042_PS2, /* another timing of integrated controller */ - KBDC8042_AT386 /* hack for at386 driver */ -}; +#include "machine/pckeybrd.h" //************************************************************************** // INTERFACE CONFIGURATION MACROS //************************************************************************** #define MCFG_KBDC8042_KEYBOARD_TYPE(_kbdt) \ - kbdc8042_device::set_keyboard_type(*device, _kbdt); + kbdc8042_device::set_keyboard_type(*device, kbdc8042_device::_kbdt); #define MCFG_KBDC8042_SYSTEM_RESET_CB(_devcb) \ devcb = &kbdc8042_device::set_system_reset_callback(*device, DEVCB_##_devcb); @@ -52,17 +47,24 @@ enum kbdc8042_type_t class kbdc8042_device : public device_t { public: + enum kbdc8042_type_t + { + KBDC8042_STANDARD, + KBDC8042_PS2, /* another timing of integrated controller */ + KBDC8042_AT386 /* hack for at386 driver */ + }; + // construction/destruction kbdc8042_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual machine_config_constructor device_mconfig_additions() const override; static void set_keyboard_type(device_t &device, kbdc8042_type_t keybtype) { downcast(device).m_keybtype = keybtype; } - template static devcb_base &set_system_reset_callback(device_t &device, _Object object) { return downcast(device).m_system_reset_cb.set_callback(object); } - template static devcb_base &set_gate_a20_callback(device_t &device, _Object object) { return downcast(device).m_gate_a20_cb.set_callback(object); } - template static devcb_base &set_input_buffer_full_callback(device_t &device, _Object object) { return downcast(device).m_input_buffer_full_cb.set_callback(object); } - template static devcb_base &set_output_buffer_empty_callback(device_t &device, _Object object) { return downcast(device).m_output_buffer_empty_cb.set_callback(object); } - template static devcb_base &set_speaker_callback(device_t &device, _Object object) { return downcast(device).m_speaker_cb.set_callback(object); } + template static devcb_base &set_system_reset_callback(device_t &device, Object &&cb) { return downcast(device).m_system_reset_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_gate_a20_callback(device_t &device, Object &&cb) { return downcast(device).m_gate_a20_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_input_buffer_full_callback(device_t &device, Object &&cb) { return downcast(device).m_input_buffer_full_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_output_buffer_empty_callback(device_t &device, Object &&cb) { return downcast(device).m_output_buffer_empty_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_speaker_callback(device_t &device, Object &&cb) { return downcast(device).m_speaker_cb.set_callback(std::forward(cb)); } DECLARE_READ8_MEMBER( data_r ); DECLARE_WRITE8_MEMBER( data_w ); @@ -120,6 +122,6 @@ protected: // device type definition extern const device_type KBDC8042; +DECLARE_DEVICE_TYPE(KBDC8042, kbdc8042_device) - -#endif /* KBDC8042_H */ +#endif // MAME_MACHINE_8042KBDC_H diff --git a/src/devices/machine/82s129.cpp b/src/devices/machine/82s129.cpp index b705bd6e29e..afa31ad1fda 100644 --- a/src/devices/machine/82s129.cpp +++ b/src/devices/machine/82s129.cpp @@ -11,11 +11,11 @@ const uint32_t prom82s129_base_device::PROM_SIZE = 256; -const device_type PROM82S126 = device_creator; -const device_type PROM82S129 = device_creator; +DEFINE_DEVICE_TYPE(PROM82S126, prom82s126_device, "82s126", "82S126 1K-bit bipolar PROM") +DEFINE_DEVICE_TYPE(PROM82S129, prom82s129_device, "82s129", "82S129 1K-bit bipolar PROM") -prom82s129_base_device::prom82s129_base_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname) - : device_t(mconfig, type, name, tag, owner, clock, shortname, __FILE__) +prom82s129_base_device::prom82s129_base_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) , m_region(*this, DEVICE_SELF) , m_out_func(*this) , m_o1_func(*this) @@ -30,12 +30,12 @@ prom82s129_base_device::prom82s129_base_device(const machine_config &mconfig, de } prom82s126_device::prom82s126_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : prom82s129_base_device(mconfig, PROM82S126, "82S126 1K-bit TTL bipolar PROM", tag, owner, clock, "82s126") + : prom82s129_base_device(mconfig, PROM82S126, tag, owner, clock) { } prom82s129_device::prom82s129_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : prom82s129_base_device(mconfig, PROM82S126, "82S129 1K-bit TTL bipolar PROM", tag, owner, clock, "82s129") + : prom82s129_base_device(mconfig, PROM82S129, tag, owner, clock) { } diff --git a/src/devices/machine/82s129.h b/src/devices/machine/82s129.h index 604645b9c2d..568a3a5b0d4 100644 --- a/src/devices/machine/82s129.h +++ b/src/devices/machine/82s129.h @@ -40,10 +40,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_MACHINE_82S129_H +#define MAME_MACHINE_82S129_H -#ifndef PROM82S129_H -#define PROM82S129_H +#pragma once #define MCFG_82S126_OUTPUT_CB(_devcb) \ @@ -85,15 +85,12 @@ class prom82s129_base_device : public device_t { public: - // construction/destruction - prom82s129_base_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname); - // static configuration helpers - template static devcb_base &set_out_cb(device_t &device, _Object object) { return downcast(device).m_out_func.set_callback(object); } - template static devcb_base &set_o1_cb(device_t &device, _Object object) { return downcast(device).m_o1_func.set_callback(object); } - template static devcb_base &set_o2_cb(device_t &device, _Object object) { return downcast(device).m_o2_func.set_callback(object); } - template static devcb_base &set_o3_cb(device_t &device, _Object object) { return downcast(device).m_o3_func.set_callback(object); } - template static devcb_base &set_o4_cb(device_t &device, _Object object) { return downcast(device).m_o4_func.set_callback(object); } + template static devcb_base &set_out_cb(device_t &device, Object &&cb) { return downcast(device).m_out_func.set_callback(std::forward(cb)); } + template static devcb_base &set_o1_cb(device_t &device, Object &&cb) { return downcast(device).m_o1_func.set_callback(std::forward(cb)); } + template static devcb_base &set_o2_cb(device_t &device, Object &&cb) { return downcast(device).m_o2_func.set_callback(std::forward(cb)); } + template static devcb_base &set_o3_cb(device_t &device, Object &&cb) { return downcast(device).m_o3_func.set_callback(std::forward(cb)); } + template static devcb_base &set_o4_cb(device_t &device, Object &&cb) { return downcast(device).m_o4_func.set_callback(std::forward(cb)); } DECLARE_WRITE_LINE_MEMBER( ce1_w ); DECLARE_WRITE_LINE_MEMBER( ce2_w ); @@ -117,6 +114,9 @@ public: uint8_t get_output() const { return m_out; } protected: + // construction/destruction + prom82s129_base_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -164,5 +164,7 @@ public: // device type definition extern const device_type PROM82S126; extern const device_type PROM82S129; +DECLARE_DEVICE_TYPE(PROM82S126, prom82s126_device) +DECLARE_DEVICE_TYPE(PROM82S129, prom82s129_device) -#endif /* PROM82S129_H */ +#endif // MAME_MACHINE_82S129_H diff --git a/src/devices/machine/8364_paula.cpp b/src/devices/machine/8364_paula.cpp index da535b75627..594b95e96f0 100644 --- a/src/devices/machine/8364_paula.cpp +++ b/src/devices/machine/8364_paula.cpp @@ -9,20 +9,15 @@ #include "emu.h" #include "8364_paula.h" - -//************************************************************************** -// CONSTANTS / MACROS -//************************************************************************** - -#define VERBOSE 0 -#define LOG(x) do { if (VERBOSE) logerror x; } while (0) +//#define VERBOSE 1 +#include "logmacro.h" //************************************************************************** // DEVICE DEFINITIONS //************************************************************************** -const device_type PAULA_8364 = device_creator; +DEFINE_DEVICE_TYPE(PAULA_8364, paula_8364_device, "paula_8364", "8364 Paula") //************************************************************************* @@ -34,7 +29,7 @@ const device_type PAULA_8364 = device_creator; //------------------------------------------------- paula_8364_device::paula_8364_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, PAULA_8364, "8364 Paula", tag, owner, clock, "paula_8364", __FILE__), + : device_t(mconfig, PAULA_8364, tag, owner, clock), device_sound_interface(mconfig, *this), m_mem_r(*this), m_int_w(*this), m_dmacon(0), m_adkcon(0), @@ -160,7 +155,7 @@ void paula_8364_device::dma_reload(audio_channel *chan) chan->curlength = chan->len; chan->irq_timer->adjust(attotime::from_hz(15750), chan->index); // clock() / 227 - LOG(("dma_reload(%d): offs=%05X len=%04X\n", chan->index, chan->curlocation, chan->curlength)); + LOG("dma_reload(%d): offs=%05X len=%04X\n", chan->index, chan->curlocation, chan->curlength); } //------------------------------------------------- diff --git a/src/devices/machine/8364_paula.h b/src/devices/machine/8364_paula.h index 4dbd041c93f..8e20b6f813a 100644 --- a/src/devices/machine/8364_paula.h +++ b/src/devices/machine/8364_paula.h @@ -37,10 +37,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_MACHINE_8364_PAULA_H +#define MAME_MACHINE_8364_PAULA_H -#ifndef MAME_DEVICES_MACHINE_8364_PAULA_H -#define MAME_DEVICES_MACHINE_8364_PAULA_H +#pragma once @@ -65,14 +65,13 @@ class paula_8364_device : public device_t, public device_sound_interface { public: paula_8364_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~paula_8364_device() {} // configuration - template static devcb_base &set_mem_r_callback(device_t &device, _Object object) - { return downcast(device).m_mem_r.set_callback(object); } + template static devcb_base &set_mem_r_callback(device_t &device, Object &&cb) + { return downcast(device).m_mem_r.set_callback(std::forward(cb)); } - template static devcb_base &set_int_w_callback(device_t &device, _Object object) - { return downcast(device).m_int_w.set_callback(object); } + template static devcb_base &set_int_w_callback(device_t &device, Object &&cb) + { return downcast(device).m_int_w.set_callback(std::forward(cb)); } DECLARE_READ16_MEMBER(reg_r); DECLARE_WRITE16_MEMBER(reg_w); @@ -128,7 +127,7 @@ private: REG_AUD3DAT = 0xda/2 }; - static const int CLOCK_DIVIDER = 16; + static constexpr int CLOCK_DIVIDER = 16; struct audio_channel { @@ -166,6 +165,6 @@ private: }; // device type definition -extern const device_type PAULA_8364; +DECLARE_DEVICE_TYPE(PAULA_8364, paula_8364_device) #endif // MAME_DEVICES_MACHINE_8364_PAULA_H diff --git a/src/devices/machine/8530scc.cpp b/src/devices/machine/8530scc.cpp index 7e042049e7c..465fd609fc7 100644 --- a/src/devices/machine/8530scc.cpp +++ b/src/devices/machine/8530scc.cpp @@ -12,7 +12,7 @@ #include "emu.h" #include "8530scc.h" -const device_type SCC8530 = device_creator; +DEFINE_DEVICE_TYPE(SCC8530, scc8530_t, "scc8530l", "Zilog 8530 SCC (legacy)") /*************************************************************************** @@ -26,7 +26,8 @@ const device_type SCC8530 = device_creator; ***************************************************************************/ scc8530_t::scc8530_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, SCC8530, "Zilog 8530 SCC (Legacy)", tag, owner, clock, "scc8530l", __FILE__), mode(0), reg(0), status(0), IRQV(0), MasterIRQEnable(0), lastIRQStat(0), IRQType(), + device_t(mconfig, SCC8530, tag, owner, clock), + mode(0), reg(0), status(0), IRQV(0), MasterIRQEnable(0), lastIRQStat(0), IRQType(), intrq_cb(*this) { } diff --git a/src/devices/machine/8530scc.h b/src/devices/machine/8530scc.h index a13f102d1ac..7a8a5cf107e 100644 --- a/src/devices/machine/8530scc.h +++ b/src/devices/machine/8530scc.h @@ -8,8 +8,8 @@ *********************************************************************/ -#ifndef __8530SCC_H__ -#define __8530SCC_H__ +#ifndef MAME_MACHINE_8530SCC_H +#define MAME_MACHINE_8530SCC_H #define MCFG_Z8530_INTRQ_CALLBACK(_write) \ devcb = &scc8530_t::set_intrq_wr_callback(*device, DEVCB_##_write); @@ -31,7 +31,7 @@ public: scc8530_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_intrq_wr_callback(device_t &device, _Object object) { return downcast(device).intrq_cb.set_callback(object); } + template static devcb_base &set_intrq_wr_callback(device_t &device, Object &&cb) { return downcast(device).intrq_cb.set_callback(std::forward(cb)); } uint8_t get_reg_a(int reg); uint8_t get_reg_b(int reg); @@ -101,6 +101,6 @@ private: MACROS ***************************************************************************/ -extern const device_type SCC8530; +DECLARE_DEVICE_TYPE(SCC8530, scc8530_t) -#endif /* __8530SCC_H__ */ +#endif // MAME_MACHINE_8530SCC_H diff --git a/src/devices/machine/aakart.cpp b/src/devices/machine/aakart.cpp index 6608ba32a3c..09924675a9d 100644 --- a/src/devices/machine/aakart.cpp +++ b/src/devices/machine/aakart.cpp @@ -19,7 +19,7 @@ TODO: //************************************************************************** // device type definition -const device_type AAKART = device_creator; +DEFINE_DEVICE_TYPE(AAKART, aakart_device, "aakart", "Acorn Archimedes KART") #define HRST 0xff #define RAK1 0xfe @@ -40,9 +40,11 @@ const device_type AAKART = device_creator; //------------------------------------------------- aakart_device::aakart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, AAKART, "AAKART", tag, owner, clock, "aakart", __FILE__), m_rxtimer(nullptr), m_txtimer(nullptr), m_mousetimer(nullptr), m_keybtimer(nullptr), + : device_t(mconfig, AAKART, tag, owner, clock), m_rxtimer(nullptr), + m_txtimer(nullptr), m_mousetimer(nullptr), m_keybtimer(nullptr), m_out_tx_cb(*this), - m_out_rx_cb(*this), m_tx_latch(0), m_rx(0), m_new_command(0), m_status(0), m_mouse_enable(0), m_keyb_enable(0) + m_out_rx_cb(*this), + m_tx_latch(0), m_rx(0), m_new_command(0), m_status(0), m_mouse_enable(0), m_keyb_enable(0) { } diff --git a/src/devices/machine/aakart.h b/src/devices/machine/aakart.h index 43972200b21..7d5ba02eecf 100644 --- a/src/devices/machine/aakart.h +++ b/src/devices/machine/aakart.h @@ -6,10 +6,10 @@ Acorn Archimedes KART interface ***************************************************************************/ -#pragma once +#ifndef MAME_MACHINE_AAKART_H +#define MAME_MACHINE_AAKART_H -#ifndef __AAKARTDEV_H__ -#define __AAKARTDEV_H__ +#pragma once @@ -24,15 +24,6 @@ Acorn Archimedes KART interface devcb = &aakart_device::set_out_rx_callback(*device, DEVCB_##_devcb); -enum{ - STATUS_NORMAL = 0, - STATUS_KEYUP, - STATUS_KEYDOWN, - STATUS_MOUSE, - STATUS_HRST, - STATUS_UNDEFINED -}; - //************************************************************************** // TYPE DEFINITIONS //************************************************************************** @@ -45,8 +36,8 @@ public: // construction/destruction aakart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_out_tx_callback(device_t &device, _Object object) { return downcast(device).m_out_tx_cb.set_callback(object); } - template static devcb_base &set_out_rx_callback(device_t &device, _Object object) { return downcast(device).m_out_rx_cb.set_callback(object); } + template static devcb_base &set_out_tx_callback(device_t &device, Object &&cb) { return downcast(device).m_out_tx_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_rx_callback(device_t &device, Object &&cb) { return downcast(device).m_out_rx_cb.set_callback(std::forward(cb)); } // I/O operations DECLARE_WRITE8_MEMBER( write ); @@ -63,6 +54,15 @@ protected: virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; private: + enum { + STATUS_NORMAL = 0, + STATUS_KEYUP, + STATUS_KEYDOWN, + STATUS_MOUSE, + STATUS_HRST, + STATUS_UNDEFINED + }; + static const device_timer_id RX_TIMER = 1; static const device_timer_id TX_TIMER = 2; static const device_timer_id MOUSE_TIMER = 3; @@ -87,14 +87,6 @@ private: // device type definition -extern const device_type AAKART; - - - -//************************************************************************** -// GLOBAL VARIABLES -//************************************************************************** - - +DECLARE_DEVICE_TYPE(AAKART, aakart_device) -#endif +#endif // MAME_MACHINE_AAKART_H diff --git a/src/devices/machine/adc0808.cpp b/src/devices/machine/adc0808.cpp index acc5704662d..d279850f32e 100644 --- a/src/devices/machine/adc0808.cpp +++ b/src/devices/machine/adc0808.cpp @@ -21,21 +21,22 @@ //************************************************************************** // device type definition -const device_type ADC0808 = device_creator; +DEFINE_DEVICE_TYPE(ADC0808, adc0808_device, "adc0808", "ADC0808") //------------------------------------------------- // adc0808_device - constructor //------------------------------------------------- adc0808_device::adc0808_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, ADC0808, "ADC0808", tag, owner, clock, "adc0808", __FILE__), + : device_t(mconfig, ADC0808, tag, owner, clock), m_out_eoc_cb(*this), m_address(0), m_start(0), m_eoc(0), m_next_eoc(0), m_sar(0), m_cycle(0), - m_bit(0), m_cycle_timer(nullptr) + m_bit(0), + m_cycle_timer(nullptr) { } diff --git a/src/devices/machine/adc0808.h b/src/devices/machine/adc0808.h index 78aea540e05..1a63e78c184 100644 --- a/src/devices/machine/adc0808.h +++ b/src/devices/machine/adc0808.h @@ -23,10 +23,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_MACHINE_ADC0808_H +#define MAME_MACHINE_ADC0808_H -#ifndef __ADC0808__ -#define __ADC0808__ +#pragma once @@ -36,7 +36,6 @@ // ======================> adc0808_analog_read -typedef device_delegate adc0808_analog_read_delegate; #define ADC0808_ANALOG_READ_CB(name) double name() @@ -44,54 +43,56 @@ typedef device_delegate adc0808_analog_read_delegate; devcb = &adc0808_device::set_out_eoc_callback(*device, DEVCB_##_devcb); #define MCFG_ADC0808_IN_VREF_POS_CB(_class, _method) \ - adc0808_device::set_in_vref_pos_callback(*device, adc0808_analog_read_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); + adc0808_device::set_in_vref_pos_callback(*device, adc0808_device::analog_read_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); #define MCFG_ADC0808_IN_VREF_NEG_CB(_class, _method) \ - adc0808_device::set_in_vref_neg_callback(*device, adc0808_analog_read_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); + adc0808_device::set_in_vref_neg_callback(*device, adc0808_device::analog_read_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); #define MCFG_ADC0808_IN_IN_0_CB(_class, _method) \ - adc0808_device::set_in_in_0_callback(*device, adc0808_analog_read_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); + adc0808_device::set_in_in_0_callback(*device, adc0808_device::analog_read_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); #define MCFG_ADC0808_IN_IN_1_CB(_class, _method) \ - adc0808_device::set_in_in_1_callback(*device, adc0808_analog_read_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); + adc0808_device::set_in_in_1_callback(*device, adc0808_device::analog_read_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); #define MCFG_ADC0808_IN_IN_2_CB(_class, _method) \ - adc0808_device::set_in_in_2_callback(*device, adc0808_analog_read_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); + adc0808_device::set_in_in_2_callback(*device, adc0808_device::analog_read_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); #define MCFG_ADC0808_IN_IN_3_CB(_class, _method) \ - adc0808_device::set_in_in_3_callback(*device, adc0808_analog_read_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); + adc0808_device::set_in_in_3_callback(*device, adc0808_device::analog_read_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); #define MCFG_ADC0808_IN_IN_4_CB(_class, _method) \ - adc0808_device::set_in_in_4_callback(*device, adc0808_analog_read_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); + adc0808_device::set_in_in_4_callback(*device, adc0808_device::analog_read_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); #define MCFG_ADC0808_IN_IN_5_CB(_class, _method) \ - adc0808_device::set_in_in_5_callback(*device, adc0808_analog_read_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); + adc0808_device::set_in_in_5_callback(*device, adc0808_device::analog_read_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); #define MCFG_ADC0808_IN_IN_6_CB(_class, _method) \ - adc0808_device::set_in_in_6_callback(*device, adc0808_analog_read_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); + adc0808_device::set_in_in_6_callback(*device, adc0808_device::analog_read_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); #define MCFG_ADC0808_IN_IN_7_CB(_class, _method) \ - adc0808_device::set_in_in_7_callback(*device, adc0808_analog_read_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); + adc0808_device::set_in_in_7_callback(*device, adc0808_device::analog_read_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); // ======================> adc0808_device class adc0808_device : public device_t { public: + typedef device_delegate analog_read_delegate; + // construction/destruction adc0808_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_out_eoc_callback(device_t &device, _Object object) { return downcast(device).m_out_eoc_cb.set_callback(object); } - static void set_in_vref_pos_callback(device_t &device, adc0808_analog_read_delegate callback) { downcast(device).m_in_vref_pos_cb = callback; } - static void set_in_vref_neg_callback(device_t &device, adc0808_analog_read_delegate callback) { downcast(device).m_in_vref_neg_cb = callback; } - static void set_in_in_0_callback(device_t &device, adc0808_analog_read_delegate callback) { downcast(device).m_in_in_0_cb = callback; } - static void set_in_in_1_callback(device_t &device, adc0808_analog_read_delegate callback) { downcast(device).m_in_in_1_cb = callback; } - static void set_in_in_2_callback(device_t &device, adc0808_analog_read_delegate callback) { downcast(device).m_in_in_2_cb = callback; } - static void set_in_in_3_callback(device_t &device, adc0808_analog_read_delegate callback) { downcast(device).m_in_in_3_cb = callback; } - static void set_in_in_4_callback(device_t &device, adc0808_analog_read_delegate callback) { downcast(device).m_in_in_4_cb = callback; } - static void set_in_in_5_callback(device_t &device, adc0808_analog_read_delegate callback) { downcast(device).m_in_in_5_cb = callback; } - static void set_in_in_6_callback(device_t &device, adc0808_analog_read_delegate callback) { downcast(device).m_in_in_6_cb = callback; } - static void set_in_in_7_callback(device_t &device, adc0808_analog_read_delegate callback) { downcast(device).m_in_in_7_cb = callback; } + template static devcb_base &set_out_eoc_callback(device_t &device, Object &&cb) { return downcast(device).m_out_eoc_cb.set_callback(std::forward(cb)); } + static void set_in_vref_pos_callback(device_t &device, analog_read_delegate &&cb) { downcast(device).m_in_vref_pos_cb = std::move(cb); } + static void set_in_vref_neg_callback(device_t &device, analog_read_delegate &&cb) { downcast(device).m_in_vref_neg_cb = std::move(cb); } + static void set_in_in_0_callback(device_t &device, analog_read_delegate &&cb) { downcast(device).m_in_in_0_cb = std::move(cb); } + static void set_in_in_1_callback(device_t &device, analog_read_delegate &&cb) { downcast(device).m_in_in_1_cb = std::move(cb); } + static void set_in_in_2_callback(device_t &device, analog_read_delegate &&cb) { downcast(device).m_in_in_2_cb = std::move(cb); } + static void set_in_in_3_callback(device_t &device, analog_read_delegate &&cb) { downcast(device).m_in_in_3_cb = std::move(cb); } + static void set_in_in_4_callback(device_t &device, analog_read_delegate &&cb) { downcast(device).m_in_in_4_cb = std::move(cb); } + static void set_in_in_5_callback(device_t &device, analog_read_delegate &&cb) { downcast(device).m_in_in_5_cb = std::move(cb); } + static void set_in_in_6_callback(device_t &device, analog_read_delegate &&cb) { downcast(device).m_in_in_6_cb = std::move(cb); } + static void set_in_in_7_callback(device_t &device, analog_read_delegate &&cb) { downcast(device).m_in_in_7_cb = std::move(cb); } DECLARE_READ8_MEMBER( data_r ); DECLARE_WRITE8_MEMBER( ale_w ); @@ -104,17 +105,17 @@ protected: virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; private: - devcb_write_line m_out_eoc_cb; - adc0808_analog_read_delegate m_in_vref_pos_cb; - adc0808_analog_read_delegate m_in_vref_neg_cb; - adc0808_analog_read_delegate m_in_in_0_cb; - adc0808_analog_read_delegate m_in_in_1_cb; - adc0808_analog_read_delegate m_in_in_2_cb; - adc0808_analog_read_delegate m_in_in_3_cb; - adc0808_analog_read_delegate m_in_in_4_cb; - adc0808_analog_read_delegate m_in_in_5_cb; - adc0808_analog_read_delegate m_in_in_6_cb; - adc0808_analog_read_delegate m_in_in_7_cb; + devcb_write_line m_out_eoc_cb; + analog_read_delegate m_in_vref_pos_cb; + analog_read_delegate m_in_vref_neg_cb; + analog_read_delegate m_in_in_0_cb; + analog_read_delegate m_in_in_1_cb; + analog_read_delegate m_in_in_2_cb; + analog_read_delegate m_in_in_3_cb; + analog_read_delegate m_in_in_4_cb; + analog_read_delegate m_in_in_5_cb; + analog_read_delegate m_in_in_6_cb; + analog_read_delegate m_in_in_7_cb; int m_address; // analog channel address int m_start; // start conversion pin @@ -132,8 +133,6 @@ private: // device type definition -extern const device_type ADC0808; - - +DECLARE_DEVICE_TYPE(ADC0808, adc0808_device) -#endif +#endif // MAME_MACHINE_ADC0808_H diff --git a/src/devices/machine/adc083x.cpp b/src/devices/machine/adc083x.cpp index d1666967f78..317e2dbb18a 100644 --- a/src/devices/machine/adc083x.cpp +++ b/src/devices/machine/adc083x.cpp @@ -46,13 +46,14 @@ enum TYPE DEFINITIONS ***************************************************************************/ -const device_type ADC0831 = device_creator; -const device_type ADC0832 = device_creator; -const device_type ADC0834 = device_creator; -const device_type ADC0838 = device_creator; - -adc083x_device::adc083x_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), +DEFINE_DEVICE_TYPE(ADC0831, adc0831_device, "adc0831", "ADC0831") +DEFINE_DEVICE_TYPE(ADC0832, adc0832_device, "adc0832", "ADC0832") +DEFINE_DEVICE_TYPE(ADC0834, adc0834_device, "adc0834", "ADC0834") +DEFINE_DEVICE_TYPE(ADC0838, adc0838_device, "adc0838", "ADC0838") + +adc083x_device::adc083x_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint32_t mux_bits) + : device_t(mconfig, type, tag, owner, clock), + m_mux_bits(mux_bits), m_cs(0), m_clk(0), m_di(0), @@ -69,27 +70,23 @@ adc083x_device::adc083x_device(const machine_config &mconfig, device_type type, } adc0831_device::adc0831_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : adc083x_device(mconfig, ADC0831, "ADC0831", tag, owner, clock, "adc0831", __FILE__) + : adc083x_device(mconfig, ADC0831, tag, owner, clock, 0) { - m_mux_bits = 0; } adc0832_device::adc0832_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : adc083x_device(mconfig, ADC0832, "ADC0832", tag, owner, clock, "adc0832", __FILE__) + : adc083x_device(mconfig, ADC0832, tag, owner, clock, 2) { - m_mux_bits = 2; } adc0834_device::adc0834_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : adc083x_device(mconfig, ADC0834, "ADC0834", tag, owner, clock, "adc0834", __FILE__) + : adc083x_device(mconfig, ADC0834, tag, owner, clock, 3) { - m_mux_bits = 3; } adc0838_device::adc0838_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : adc083x_device(mconfig, ADC0838, "ADC0838", tag, owner, clock, "adc0838", __FILE__) + : adc083x_device(mconfig, ADC0838, tag, owner, clock, 4) { - m_mux_bits = 4; } /*------------------------------------------------- @@ -117,7 +114,6 @@ void adc083x_device::device_start() save_item( NAME(m_state) ); save_item( NAME(m_bit) ); save_item( NAME(m_output) ); - save_item( NAME(m_mux_bits) ); } /*------------------------------------------------- diff --git a/src/devices/machine/adc083x.h b/src/devices/machine/adc083x.h index dd26370bf3f..5af0e02cbb5 100644 --- a/src/devices/machine/adc083x.h +++ b/src/devices/machine/adc083x.h @@ -8,19 +8,20 @@ ***************************************************************************/ -#ifndef __ADC083X_H__ -#define __ADC083X_H__ +#ifndef MAME_MACHINE_ADC083X_H +#define MAME_MACHINE_ADC083X_H + +#pragma once /*************************************************************************** TYPE DEFINITIONS ***************************************************************************/ -typedef device_delegate adc083x_input_delegate; #define ADC083X_INPUT_CB(name) double name(uint8_t input) #define MCFG_ADC083X_INPUT_CB(_class, _method) \ - adc083x_device::set_input_callback(*device, adc083x_input_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); + adc083x_device::set_input_callback(*device, adc083x_device::input_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); /*************************************************************************** CONSTANTS @@ -45,10 +46,10 @@ typedef device_delegate adc083x_input_delegate; class adc083x_device : public device_t { public: - adc083x_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); + typedef device_delegate input_delegate; // static configuration helpers - static void set_input_callback(device_t &device, adc083x_input_delegate input_callback) { downcast(device).m_input_callback = input_callback; } + static void set_input_callback(device_t &device, input_delegate &&cb) { downcast(device).m_input_callback = std::move(cb); } DECLARE_WRITE_LINE_MEMBER( cs_write ); DECLARE_WRITE_LINE_MEMBER( clk_write ); @@ -58,10 +59,12 @@ public: DECLARE_READ_LINE_MEMBER( do_read ); protected: + adc083x_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint32_t mux_bits); + // device-level overrides virtual void device_start() override; - int32_t m_mux_bits; + const int32_t m_mux_bits; private: uint8_t conversion(); @@ -83,17 +86,16 @@ private: int32_t m_bit; int32_t m_output; - adc083x_input_delegate m_input_callback; + input_delegate m_input_callback; }; + class adc0831_device : public adc083x_device { public: adc0831_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; -extern const device_type ADC0831; - class adc0832_device : public adc083x_device { @@ -101,8 +103,6 @@ public: adc0832_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; -extern const device_type ADC0832; - class adc0834_device : public adc083x_device { @@ -110,8 +110,6 @@ public: adc0834_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; -extern const device_type ADC0834; - class adc0838_device : public adc083x_device { @@ -119,7 +117,10 @@ public: adc0838_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; -extern const device_type ADC0838; +DECLARE_DEVICE_TYPE(ADC0831, adc0831_device) +DECLARE_DEVICE_TYPE(ADC0832, adc0832_device) +DECLARE_DEVICE_TYPE(ADC0834, adc0834_device) +DECLARE_DEVICE_TYPE(ADC0838, adc0838_device) -#endif /* __ADC083X_H__ */ +#endif // MAME_MACHINE_ADC083X_H diff --git a/src/devices/machine/adc1038.cpp b/src/devices/machine/adc1038.cpp index 66f65878b65..409090bba4d 100644 --- a/src/devices/machine/adc1038.cpp +++ b/src/devices/machine/adc1038.cpp @@ -13,10 +13,11 @@ #include "adc1038.h" -const device_type ADC1038 = device_creator; +DEFINE_DEVICE_TYPE(ADC1038, adc1038_device, "adc1038", "ADC1038") adc1038_device::adc1038_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, ADC1038, "ADC1038", tag, owner, clock, "adc1038", __FILE__), m_cycle(0), m_clk(0), m_adr(0), m_data_in(0), m_data_out(0), m_adc_data(0), m_sars(0), + : device_t(mconfig, ADC1038, tag, owner, clock), + m_cycle(0), m_clk(0), m_adr(0), m_data_in(0), m_data_out(0), m_adc_data(0), m_sars(0), m_gticlub_hack(0) { } diff --git a/src/devices/machine/adc1038.h b/src/devices/machine/adc1038.h index f3b74bd0290..32787e36181 100644 --- a/src/devices/machine/adc1038.h +++ b/src/devices/machine/adc1038.h @@ -9,14 +9,16 @@ ***************************************************************************/ -#ifndef __ADC1038_H__ -#define __ADC1038_H__ +#ifndef MAME_MACHINE_ADC1038_H +#define MAME_MACHINE_ADC1038_H + +#pragma once + /*************************************************************************** TYPE DEFINITIONS ***************************************************************************/ -typedef device_delegate adc1038_input_delegate; #define ADC1038_INPUT_CB(name) int name(int input) /*************************************************************************** @@ -26,10 +28,11 @@ typedef device_delegate adc1038_input_delegate; class adc1038_device : public device_t { public: + typedef device_delegate input_delegate; + adc1038_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~adc1038_device() {} - static void set_input_callback(device_t &device, adc1038_input_delegate callback) { downcast(device).m_input_cb = callback; } + static void set_input_callback(device_t &device, input_delegate &&callback) { downcast(device).m_input_cb = std::move(callback); } static void set_gti_club_hack(device_t &device, int hack) { downcast(device).m_gticlub_hack = hack; } DECLARE_READ_LINE_MEMBER( do_read ); @@ -53,17 +56,16 @@ private: int m_sars; int m_gticlub_hack; - adc1038_input_delegate m_input_cb; + input_delegate m_input_cb; }; -extern const device_type ADC1038; +DECLARE_DEVICE_TYPE(ADC1038, adc1038_device) #define MCFG_ADC1038_INPUT_CB(_class, _method) \ - adc1038_device::set_input_callback(*device, adc1038_input_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); + adc1038_device::set_input_callback(*device, adc1038_device::input_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); #define MCFG_ADC1038_GTIHACK(_hack) \ adc1038_device::set_gti_club_hack(*device, _hack); - -#endif /* __ADC1038_H__ */ +#endif // MAME_MACHINE_ADC1038_H diff --git a/src/devices/machine/adc1213x.cpp b/src/devices/machine/adc1213x.cpp index d3c39ba036e..889162bcd3a 100644 --- a/src/devices/machine/adc1213x.cpp +++ b/src/devices/machine/adc1213x.cpp @@ -34,30 +34,29 @@ -const device_type ADC12130 = device_creator; +DEFINE_DEVICE_TYPE(ADC12130, adc12130_device, "adc12130", "ADC12130") +DEFINE_DEVICE_TYPE(ADC12132, adc12132_device, "adc12132", "ADC12132") +DEFINE_DEVICE_TYPE(ADC12138, adc12138_device, "adc12138", "ADC12138") + adc12130_device::adc12130_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : adc12138_device(mconfig, ADC12130, "ADC12130", tag, owner, clock, "adc12130", __FILE__) + : adc12138_device(mconfig, ADC12130, tag, owner, clock) { } -const device_type ADC12132 = device_creator; - adc12132_device::adc12132_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : adc12138_device(mconfig, ADC12132, "ADC12132", tag, owner, clock, "adc12132", __FILE__) + : adc12138_device(mconfig, ADC12132, tag, owner, clock) { } -const device_type ADC12138 = device_creator; - adc12138_device::adc12138_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, ADC12138, "ADC12138", tag, owner, clock, "adc12138", __FILE__) + : adc12138_device(mconfig, ADC12138, tag, owner, clock) { } -adc12138_device::adc12138_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source) +adc12138_device::adc12138_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) { } diff --git a/src/devices/machine/adc1213x.h b/src/devices/machine/adc1213x.h index 56251fdae91..9f2eb7552fd 100644 --- a/src/devices/machine/adc1213x.h +++ b/src/devices/machine/adc1213x.h @@ -9,15 +9,16 @@ ***************************************************************************/ -#ifndef __ADC1213X_H__ -#define __ADC1213X_H__ +#ifndef MAME_MACHINE_ADC1213X_H +#define MAME_MACHINE_ADC1213X_H + +#pragma once /*************************************************************************** TYPE DEFINITIONS ***************************************************************************/ -typedef device_delegate adc1213x_ipt_convert_delegate; #define ADC12138_IPT_CONVERT_CB(name) double name(uint8_t input) /*************************************************************************** @@ -27,11 +28,11 @@ typedef device_delegate adc1213x_ipt_convert_delegate; class adc12138_device : public device_t { public: + typedef device_delegate ipt_convert_delegate; + adc12138_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - adc12138_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - ~adc12138_device() {} - static void set_ipt_convert_callback(device_t &device, adc1213x_ipt_convert_delegate callback) { downcast(device).m_ipt_read_cb = callback; } + static void set_ipt_convert_callback(device_t &device, ipt_convert_delegate &&cb) { downcast(device).m_ipt_read_cb = std::move(cb); } DECLARE_WRITE8_MEMBER( di_w ); DECLARE_WRITE8_MEMBER( cs_w ); @@ -41,13 +42,15 @@ public: DECLARE_READ8_MEMBER( eoc_r ); protected: + adc12138_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; void convert(int channel, int bits16, int lsbfirst); - adc1213x_ipt_convert_delegate m_ipt_read_cb; + ipt_convert_delegate m_ipt_read_cb; private: // internal state @@ -64,7 +67,6 @@ private: int m_end_conv; }; -extern const device_type ADC12138; class adc12130_device : public adc12138_device { @@ -72,7 +74,6 @@ public: adc12130_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; -extern const device_type ADC12130; class adc12132_device : public adc12138_device { @@ -80,10 +81,13 @@ public: adc12132_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; -extern const device_type ADC12132; + +DECLARE_DEVICE_TYPE(ADC12138, adc12138_device) +DECLARE_DEVICE_TYPE(ADC12130, adc12130_device) +DECLARE_DEVICE_TYPE(ADC12132, adc12132_device) #define MCFG_ADC1213X_IPT_CONVERT_CB(_class, _method) \ - adc12138_device::set_ipt_convert_callback(*device, adc1213x_ipt_convert_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); + adc12138_device::set_ipt_convert_callback(*device, adc12138_device::ipt_convert_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); -#endif /* __ADC1213X_H__ */ +#endif // MAME_MACHINE_ADC1213X_H diff --git a/src/devices/machine/aicartc.cpp b/src/devices/machine/aicartc.cpp index 864c9e5ced9..c6d5beb5a45 100644 --- a/src/devices/machine/aicartc.cpp +++ b/src/devices/machine/aicartc.cpp @@ -19,7 +19,7 @@ //************************************************************************** // device type definition -const device_type AICARTC = device_creator; +DEFINE_DEVICE_TYPE(AICARTC, aicartc_device, "aicartc", "AICA RTC") //************************************************************************** @@ -31,8 +31,10 @@ const device_type AICARTC = device_creator; //------------------------------------------------- aicartc_device::aicartc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, AICARTC, "AICA RTC", tag, owner, clock, "aicartc", __FILE__), - device_rtc_interface(mconfig, *this), m_rtc_reg_lo(0), m_rtc_reg_hi(0), m_rtc_tick(0), m_we(0), m_clock_timer(nullptr) + : device_t(mconfig, AICARTC, tag, owner, clock) + , device_rtc_interface(mconfig, *this) + , m_rtc_reg_lo(0), m_rtc_reg_hi(0), m_rtc_tick(0), m_we(0) + , m_clock_timer(nullptr) { } diff --git a/src/devices/machine/aicartc.h b/src/devices/machine/aicartc.h index ba06de45db2..757c0a58c1d 100644 --- a/src/devices/machine/aicartc.h +++ b/src/devices/machine/aicartc.h @@ -1,16 +1,10 @@ // license:BSD-3-Clause // copyright-holders:Angelo Salese -/*************************************************************************** - -Template for skeleton device - -***************************************************************************/ +#ifndef MAME_MACHINE_AICARTC_H +#define MAME_MACHINE_AICARTC_H #pragma once -#ifndef __AICARTCDEV_H__ -#define __AICARTCDEV_H__ - #include "dirtc.h" @@ -27,8 +21,7 @@ Template for skeleton device // ======================> aicartc_device -class aicartc_device : public device_t, - public device_rtc_interface +class aicartc_device : public device_t, public device_rtc_interface { public: // construction/destruction @@ -60,14 +53,6 @@ private: // device type definition -extern const device_type AICARTC; - - - -//************************************************************************** -// GLOBAL VARIABLES -//************************************************************************** - - +DECLARE_DEVICE_TYPE(AICARTC, aicartc_device) -#endif +#endif // MAME_MACHINE_AICARTC_H diff --git a/src/devices/machine/akiko.cpp b/src/devices/machine/akiko.cpp index e464f70431f..95887f648f1 100644 --- a/src/devices/machine/akiko.cpp +++ b/src/devices/machine/akiko.cpp @@ -31,7 +31,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type AKIKO = device_creator; +DEFINE_DEVICE_TYPE(AKIKO, akiko_device, "akiko", "CBM AKIKO") //------------------------------------------------- // machine_config_additions - device-specific @@ -56,7 +56,7 @@ machine_config_constructor akiko_device::device_mconfig_additions() const //------------------------------------------------- akiko_device::akiko_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, AKIKO, "CBM AKIKO", tag, owner, clock, "akiko", __FILE__), + : device_t(mconfig, AKIKO, tag, owner, clock), m_c2p_input_index(0), m_c2p_output_index(0), m_i2c_scl_out(0), diff --git a/src/devices/machine/akiko.h b/src/devices/machine/akiko.h index 23a33cd38c9..692f8c66154 100644 --- a/src/devices/machine/akiko.h +++ b/src/devices/machine/akiko.h @@ -12,10 +12,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_MACHINE_AKIKO_H +#define MAME_MACHINE_AKIKO_H -#ifndef __AKIKO_H__ -#define __AKIKO_H__ +#pragma once #include "cdrom.h" #include "sound/cdda.h" @@ -57,26 +57,25 @@ class akiko_device : public device_t { public: akiko_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~akiko_device() {} // callbacks - template static devcb_base &set_mem_r_callback(device_t &device, _Object object) - { return downcast(device).m_mem_r.set_callback(object); } + template static devcb_base &set_mem_r_callback(device_t &device, Object &&cb) + { return downcast(device).m_mem_r.set_callback(std::forward(cb)); } - template static devcb_base &set_mem_w_callback(device_t &device, _Object object) - { return downcast(device).m_mem_w.set_callback(object); } + template static devcb_base &set_mem_w_callback(device_t &device, Object &&cb) + { return downcast(device).m_mem_w.set_callback(std::forward(cb)); } - template static devcb_base &set_int_w_callback(device_t &device, _Object object) - { return downcast(device).m_int_w.set_callback(object); } + template static devcb_base &set_int_w_callback(device_t &device, Object &&cb) + { return downcast(device).m_int_w.set_callback(std::forward(cb)); } - template static devcb_base &set_scl_handler(device_t &device, _Object object) - { return downcast(device).m_scl_w.set_callback(object); } + template static devcb_base &set_scl_handler(device_t &device, Object &&cb) + { return downcast(device).m_scl_w.set_callback(std::forward(cb)); } - template static devcb_base &set_sda_read_handler(device_t &device, _Object object) - { return downcast(device).m_sda_r.set_callback(object); } + template static devcb_base &set_sda_read_handler(device_t &device, Object &&cb) + { return downcast(device).m_sda_r.set_callback(std::forward(cb)); } - template static devcb_base &set_sda_write_handler(device_t &device, _Object object) - { return downcast(device).m_sda_w.set_callback(object); } + template static devcb_base &set_sda_write_handler(device_t &device, Object &&cb) + { return downcast(device).m_sda_w.set_callback(std::forward(cb)); } DECLARE_READ32_MEMBER( read ); DECLARE_WRITE32_MEMBER( write ); @@ -90,7 +89,7 @@ protected: private: // 1X CDROM sector time in msec (300KBps) - static const int CD_SECTOR_TIME = (1000/((150*1024)/2048)); + static constexpr int CD_SECTOR_TIME = (1000/((150*1024)/2048)); // chunky to planar converter uint32_t m_c2p_input_buffer[8]; @@ -164,6 +163,6 @@ private: }; // device type definition -extern const device_type AKIKO; +DECLARE_DEVICE_TYPE(AKIKO, akiko_device) -#endif +#endif // MAME_MACHINE_AKIKO_H diff --git a/src/devices/machine/am2847.cpp b/src/devices/machine/am2847.cpp index 93c288c6b68..7e7992a2e85 100644 --- a/src/devices/machine/am2847.cpp +++ b/src/devices/machine/am2847.cpp @@ -9,12 +9,12 @@ #include "emu.h" #include "am2847.h" -const device_type AM2847 = device_creator; -const device_type AM2849 = device_creator; -const device_type TMS3409 = device_creator; +DEFINE_DEVICE_TYPE(AM2847, am2847_device, "am2847", "AMD Am2847 80-bit Static Shift Register") +DEFINE_DEVICE_TYPE(AM2849, am2849_device, "am2849", "AMD Am2849 96-bit Static Shift Register") +DEFINE_DEVICE_TYPE(TMS3409, tms3409_device, "tms3409", "TI TMS3409 80-bit Static Shift Register") -am2847_base_device::am2847_base_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, size_t size) - : device_t(mconfig, type, name, tag, owner, clock, shortname, __FILE__) +am2847_base_device::am2847_base_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, size_t size) + : device_t(mconfig, type, tag, owner, clock) , m_in(0) , m_out(0) , m_rc(0) @@ -24,17 +24,17 @@ am2847_base_device::am2847_base_device(const machine_config &mconfig, device_typ } am2847_device::am2847_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : am2847_base_device(mconfig, AM2847, "AMD Am2847 80-bit Static Shift Register", tag, owner, clock, "am2847", 5) + : am2847_base_device(mconfig, AM2847, tag, owner, clock, 5) { } am2849_device::am2849_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : am2847_base_device(mconfig, AM2849, "AMD Am2849 96-bit Static Shift Register", tag, owner, clock, "am2847", 6) + : am2847_base_device(mconfig, AM2849, tag, owner, clock, 6) { } tms3409_device::tms3409_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : am2847_base_device(mconfig, TMS3409, "TI TMS3409 80-bit Static Shift Register", tag, owner, clock, "am2847", 5) + : am2847_base_device(mconfig, TMS3409, tag, owner, clock, 5) { } diff --git a/src/devices/machine/am2847.h b/src/devices/machine/am2847.h index 0e70d2bf37f..88d63342d8f 100644 --- a/src/devices/machine/am2847.h +++ b/src/devices/machine/am2847.h @@ -40,10 +40,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_MACHINE_AM2847_H +#define MAME_MACHINE_AM2847_H -#ifndef AM2847_H -#define AM2847_H +#pragma once #define MCFG_AM2847_ADD(_tag) \ @@ -58,8 +58,6 @@ class am2847_base_device : public device_t { public: - am2847_base_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, size_t size); - DECLARE_WRITE_LINE_MEMBER( in_a_w ); DECLARE_WRITE_LINE_MEMBER( in_b_w ); DECLARE_WRITE_LINE_MEMBER( in_c_w ); @@ -77,6 +75,8 @@ public: uint8_t out_r() const { return m_out; } protected: + am2847_base_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, size_t size); + virtual void device_start() override; virtual void device_reset() override; @@ -126,8 +126,8 @@ public: }; // device type definition -extern const device_type AM2847; -extern const device_type AM2849; -extern const device_type TMS3409; +DECLARE_DEVICE_TYPE(AM2847, am2847_device) +DECLARE_DEVICE_TYPE(AM2849, am2849_device) +DECLARE_DEVICE_TYPE(TMS3409, tms3409_device) -#endif // AM2847_H +#endif // MAME_MACHINE_AM2847_H diff --git a/src/devices/machine/am53cf96.cpp b/src/devices/machine/am53cf96.cpp index d2770b383ce..edd2ca72fee 100644 --- a/src/devices/machine/am53cf96.cpp +++ b/src/devices/machine/am53cf96.cpp @@ -18,7 +18,7 @@ READ8_MEMBER( am53cf96_device::read ) { int rv; - static const int states[] = { 0, 0, 1, 1, 2, 3, 4, 5, 6, 7, 0 }; + static constexpr int states[] = { 0, 0, 1, 1, 2, 3, 4, 5, 6, 7, 0 }; if (offset == REG_STATUS) { @@ -147,7 +147,7 @@ WRITE8_MEMBER( am53cf96_device::write ) } am53cf96_device::am53cf96_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - legacy_scsi_host_adapter(mconfig, AM53CF96, "53CF96 SCSI", tag, owner, clock, "am53cf96", __FILE__), + legacy_scsi_host_adapter(mconfig, AM53CF96, tag, owner, clock), m_irq_handler(*this) { } @@ -191,4 +191,4 @@ void am53cf96_device::dma_write_data(int bytes, uint8_t *pData) write_data(pData, bytes); } -const device_type AM53CF96 = device_creator; +DEFINE_DEVICE_TYPE(AM53CF96, am53cf96_device, "am53cf96", "AMD 53CF96 SCSI") diff --git a/src/devices/machine/am53cf96.h b/src/devices/machine/am53cf96.h index ec2697bab5b..f269ec34384 100644 --- a/src/devices/machine/am53cf96.h +++ b/src/devices/machine/am53cf96.h @@ -5,8 +5,8 @@ * */ -#ifndef _AM53CF96_H_ -#define _AM53CF96_H_ +#ifndef MAME_MACHINE_AM53CF96_H +#define MAME_MACHINE_AM53CF96_H #pragma once @@ -15,28 +15,6 @@ #define MCFG_AM53CF96_IRQ_HANDLER(_devcb) \ devcb = &am53cf96_device::set_irq_handler(*device, DEVCB_##_devcb); -// 53CF96 register set -enum -{ - REG_XFERCNTLOW = 0, // read = current xfer count lo byte, write = set xfer count lo byte - REG_XFERCNTMID, // read = current xfer count mid byte, write = set xfer count mid byte - REG_FIFO, // read/write = FIFO - REG_COMMAND, // read/write = command - - REG_STATUS, // read = status, write = destination SCSI ID (4) - REG_IRQSTATE, // read = IRQ status, write = timeout (5) - REG_INTSTATE, // read = internal state, write = sync xfer period (6) - REG_FIFOSTATE, // read = FIFO status, write = sync offset - REG_CTRL1, // read/write = control 1 - REG_CLOCKFCTR, // clock factor (write only) - REG_TESTMODE, // test mode (write only) - REG_CTRL2, // read/write = control 2 - REG_CTRL3, // read/write = control 3 - REG_CTRL4, // read/write = control 4 - REG_XFERCNTHI, // read = current xfer count hi byte, write = set xfer count hi byte - REG_DATAALIGN // data alignment (write only) -}; - class am53cf96_device : public legacy_scsi_host_adapter { public: @@ -44,7 +22,7 @@ public: am53cf96_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // static configuration helpers - template static devcb_base &set_irq_handler(device_t &device, _Object object) { return downcast(device).m_irq_handler.set_callback(object); } + template static devcb_base &set_irq_handler(device_t &device, Object &&cb) { return downcast(device).m_irq_handler.set_callback(std::forward(cb)); } DECLARE_READ8_MEMBER(read); DECLARE_WRITE8_MEMBER(write); @@ -53,12 +31,34 @@ public: void dma_write_data(int bytes, uint8_t *pData); protected: + // 53CF96 register set + enum + { + REG_XFERCNTLOW = 0, // read = current xfer count lo byte, write = set xfer count lo byte + REG_XFERCNTMID, // read = current xfer count mid byte, write = set xfer count mid byte + REG_FIFO, // read/write = FIFO + REG_COMMAND, // read/write = command + + REG_STATUS, // read = status, write = destination SCSI ID (4) + REG_IRQSTATE, // read = IRQ status, write = timeout (5) + REG_INTSTATE, // read = internal state, write = sync xfer period (6) + REG_FIFOSTATE, // read = FIFO status, write = sync offset + REG_CTRL1, // read/write = control 1 + REG_CLOCKFCTR, // clock factor (write only) + REG_TESTMODE, // test mode (write only) + REG_CTRL2, // read/write = control 2 + REG_CTRL3, // read/write = control 3 + REG_CTRL4, // read/write = control 4 + REG_XFERCNTHI, // read = current xfer count hi byte, write = set xfer count hi byte + REG_DATAALIGN // data alignment (write only) + }; + // device-level overrides virtual void device_start() override; virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; private: - static const device_timer_id TIMER_TRANSFER = 0; + static constexpr device_timer_id TIMER_TRANSFER = 0; uint8_t scsi_regs[32]; uint8_t fifo[16]; @@ -71,6 +71,6 @@ private: }; // device type definition -extern const device_type AM53CF96; +DECLARE_DEVICE_TYPE(AM53CF96, am53cf96_device) -#endif +#endif // MAME_MACHINE_AM53CF96_H diff --git a/src/devices/machine/am9517a.cpp b/src/devices/machine/am9517a.cpp index b29fdf7b13a..b39ab007252 100644 --- a/src/devices/machine/am9517a.cpp +++ b/src/devices/machine/am9517a.cpp @@ -42,23 +42,24 @@ #include "emu.h" #include "am9517a.h" +//#define VERBOSE 1 +#include "logmacro.h" + //************************************************************************** // DEVICE DEFINITIONS //************************************************************************** -const device_type AM9517A = device_creator; -const device_type V53_DMAU = device_creator; -const device_type PCXPORT_DMAC = device_creator; +DEFINE_DEVICE_TYPE(AM9517A, am9517a_device, "am9517a", "AM9517A") +DEFINE_DEVICE_TYPE(V53_DMAU, upd71071_v53_device, "v53_dmau", "V53 DMAU") +DEFINE_DEVICE_TYPE(PCXPORT_DMAC, pcxport_dmac_device, "pcx_dmac", "PC Transporter DMAC") //************************************************************************** // MACROS / CONSTANTS //************************************************************************** -#define LOG 0 - enum { @@ -133,7 +134,7 @@ enum inline void am9517a_device::dma_request(int channel, int state) { - if (LOG) logerror("AM9517A '%s' Channel %u DMA Request: %u\n", tag(), channel, state); + LOG("AM9517A Channel %u DMA Request: %u\n", channel, state); if (state ^ COMMAND_DREQ_ACTIVE_LOW) { @@ -190,50 +191,10 @@ inline void am9517a_device::set_dack() { for (int channel = 0; channel < 4; channel++) { - if (channel == 0) - { - if ((channel == m_current_channel) && !COMMAND_MEM_TO_MEM) - { - m_out_dack_0_cb(COMMAND_DACK_ACTIVE_HIGH); - } - else - { - m_out_dack_0_cb(!COMMAND_DACK_ACTIVE_HIGH); - } - } - else if (channel == 1) - { - if ((channel == m_current_channel) && !COMMAND_MEM_TO_MEM) - { - m_out_dack_1_cb(COMMAND_DACK_ACTIVE_HIGH); - } - else - { - m_out_dack_1_cb(!COMMAND_DACK_ACTIVE_HIGH); - } - } - else if (channel == 2) - { - if ((channel == m_current_channel) && !COMMAND_MEM_TO_MEM) - { - m_out_dack_2_cb(COMMAND_DACK_ACTIVE_HIGH); - } - else - { - m_out_dack_2_cb(!COMMAND_DACK_ACTIVE_HIGH); - } - } - else if (channel == 3) - { - if ((channel == m_current_channel) && !COMMAND_MEM_TO_MEM) - { - m_out_dack_3_cb(COMMAND_DACK_ACTIVE_HIGH); - } - else - { - m_out_dack_3_cb(!COMMAND_DACK_ACTIVE_HIGH); - } - } + if ((channel == m_current_channel) && !COMMAND_MEM_TO_MEM) + m_out_dack_cb[channel](COMMAND_DACK_ACTIVE_HIGH); + else + m_out_dack_cb[channel](!COMMAND_DACK_ACTIVE_HIGH); } } @@ -282,21 +243,7 @@ inline void am9517a_device::dma_read() { case MODE_TRANSFER_VERIFY: case MODE_TRANSFER_WRITE: - switch(m_current_channel) - { - case 0: - m_temp = m_in_ior_0_cb(offset); - break; - case 1: - m_temp = m_in_ior_1_cb(offset); - break; - case 2: - m_temp = m_in_ior_2_cb(offset); - break; - case 3: - m_temp = m_in_ior_3_cb(offset); - break; - } + m_temp = m_in_ior_cb[m_current_channel](offset); break; case MODE_TRANSFER_READ: @@ -316,33 +263,20 @@ inline void am9517a_device::dma_write() switch (MODE_TRANSFER_MASK) { - case MODE_TRANSFER_VERIFY: { - uint8_t v1 = m_in_memr_cb(offset); - if(0 && m_temp != v1) - logerror("%s: verify error %02x vs. %02x\n", tag(), m_temp, v1); + case MODE_TRANSFER_VERIFY: + { + uint8_t v1 = m_in_memr_cb(offset); + if(0 && m_temp != v1) + logerror("verify error %02x vs. %02x\n", m_temp, v1); + } break; - } case MODE_TRANSFER_WRITE: m_out_memw_cb(offset, m_temp); break; case MODE_TRANSFER_READ: - switch(m_current_channel) - { - case 0: - m_out_iow_0_cb(offset, m_temp); - break; - case 1: - m_out_iow_1_cb(offset, m_temp); - break; - case 2: - m_out_iow_2_cb(offset, m_temp); - break; - case 3: - m_out_iow_3_cb(offset, m_temp); - break; - } + m_out_iow_cb[m_current_channel](offset, m_temp); break; } } @@ -473,8 +407,8 @@ void am9517a_device::end_of_process() //------------------------------------------------- -am9517a_device::am9517a_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname) - : device_t(mconfig, type, name, tag, owner, clock, shortname, __FILE__), +am9517a_device::am9517a_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock), device_execute_interface(mconfig, *this), m_icount(0), m_hack(0), @@ -484,56 +418,25 @@ am9517a_device::am9517a_device(const machine_config &mconfig, device_type type, m_out_eop_cb(*this), m_in_memr_cb(*this), m_out_memw_cb(*this), - m_in_ior_0_cb(*this), - m_in_ior_1_cb(*this), - m_in_ior_2_cb(*this), - m_in_ior_3_cb(*this), - m_out_iow_0_cb(*this), - m_out_iow_1_cb(*this), - m_out_iow_2_cb(*this), - m_out_iow_3_cb(*this), - m_out_dack_0_cb(*this), - m_out_dack_1_cb(*this), - m_out_dack_2_cb(*this), - m_out_dack_3_cb(*this) + m_in_ior_cb{ { *this }, { *this }, { *this }, { *this } }, + m_out_iow_cb{ { *this }, { *this }, { *this }, { *this } }, + m_out_dack_cb{ { *this }, { *this }, { *this }, { *this } } { } am9517a_device::am9517a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, AM9517A, "AM9517A", tag, owner, clock, "am9517a", __FILE__), - device_execute_interface(mconfig, *this), - m_icount(0), - m_hack(0), - m_ready(1), - m_command(0), - m_out_hreq_cb(*this), - m_out_eop_cb(*this), - m_in_memr_cb(*this), - m_out_memw_cb(*this), - m_in_ior_0_cb(*this), - m_in_ior_1_cb(*this), - m_in_ior_2_cb(*this), - m_in_ior_3_cb(*this), - m_out_iow_0_cb(*this), - m_out_iow_1_cb(*this), - m_out_iow_2_cb(*this), - m_out_iow_3_cb(*this), - m_out_dack_0_cb(*this), - m_out_dack_1_cb(*this), - m_out_dack_2_cb(*this), - m_out_dack_3_cb(*this) - + : am9517a_device(mconfig, AM9517A, tag, owner, clock) { } upd71071_v53_device::upd71071_v53_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : am9517a_device(mconfig, V53_DMAU, "V53 DMAU", tag, owner, clock, "v53_dmau") + : am9517a_device(mconfig, V53_DMAU, tag, owner, clock) { } pcxport_dmac_device::pcxport_dmac_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : am9517a_device(mconfig, PCXPORT_DMAC, "PC Transporter DMAC", tag, owner, clock, "pcx_dmac") + : am9517a_device(mconfig, PCXPORT_DMAC, tag, owner, clock) { } @@ -551,20 +454,14 @@ void am9517a_device::device_start() m_out_eop_cb.resolve_safe(); m_in_memr_cb.resolve_safe(0); m_out_memw_cb.resolve_safe(); - m_in_ior_0_cb.resolve_safe(0); - m_in_ior_1_cb.resolve_safe(0); - m_in_ior_2_cb.resolve_safe(0); - m_in_ior_3_cb.resolve_safe(0); - m_out_iow_0_cb.resolve_safe(); - m_out_iow_1_cb.resolve_safe(); - m_out_iow_2_cb.resolve_safe(); - m_out_iow_3_cb.resolve_safe(); - m_out_dack_0_cb.resolve_safe(); - m_out_dack_1_cb.resolve_safe(); - m_out_dack_2_cb.resolve_safe(); - m_out_dack_3_cb.resolve_safe(); - - for (auto & elem : m_channel) + for(auto &cb : m_in_ior_cb) + cb.resolve_safe(0); + for(auto &cb : m_out_iow_cb) + cb.resolve_safe(); + for(auto &cb : m_out_dack_cb) + cb.resolve_safe(); + + for(auto &elem : m_channel) { elem.m_address = 0; elem.m_count = 0; @@ -894,7 +791,7 @@ WRITE8_MEMBER( am9517a_device::write ) m_channel[channel].m_address = (m_channel[channel].m_address & 0xff00) | data; } - if (LOG) logerror("AM9517A '%s' Channel %u Base Address: %04x\n", tag(), channel, m_channel[channel].m_base_address); + LOG("AM9517A Channel %u Base Address: %04x\n", channel, m_channel[channel].m_base_address); break; case REGISTER_WORD_COUNT: @@ -909,7 +806,7 @@ WRITE8_MEMBER( am9517a_device::write ) m_channel[channel].m_count = (m_channel[channel].m_count & 0xff00) | data; } - if (LOG) logerror("AM9517A '%s' Channel %u Base Word Count: %04x\n", tag(), channel, m_channel[channel].m_base_count); + LOG("AM9517A Channel %u Base Word Count: %04x\n", channel, m_channel[channel].m_base_count); break; } @@ -922,7 +819,7 @@ WRITE8_MEMBER( am9517a_device::write ) case REGISTER_COMMAND: m_command = data; - if (LOG) logerror("AM9517A '%s' Command Register: %02x\n", tag(), m_command); + LOG("AM9517A Command Register: %02x\n", m_command); break; case REGISTER_REQUEST: @@ -942,7 +839,7 @@ WRITE8_MEMBER( am9517a_device::write ) m_request &= ~(1 << (channel + 4)); } - if (LOG) logerror("AM9517A '%s' Request Register: %01x\n", tag(), m_request); + LOG("AM9517A Request Register: %01x\n", m_request); } break; @@ -959,7 +856,7 @@ WRITE8_MEMBER( am9517a_device::write ) m_mask &= ~(1 << channel); } - if (LOG) logerror("AM9517A '%s' Mask Register: %01x\n", tag(), m_mask); + LOG("AM9517A Mask Register: %01x\n", m_mask); } break; @@ -972,24 +869,24 @@ WRITE8_MEMBER( am9517a_device::write ) // clear terminal count m_status &= ~(1 << channel); - if (LOG) logerror("AM9517A '%s' Channel %u Mode: %02x\n", tag(), channel, data & 0xfc); + LOG("AM9517A Channel %u Mode: %02x\n", channel, data & 0xfc); } break; case REGISTER_BYTE_POINTER: - if (LOG) logerror("AM9517A '%s' Clear Byte Pointer Flip-Flop\n", tag()); + LOG("AM9517A Clear Byte Pointer Flip-Flop\n"); m_msb = 0; break; case REGISTER_MASTER_CLEAR: - if (LOG) logerror("AM9517A '%s' Master Clear\n", tag()); + LOG("AM9517A Master Clear\n"); device_reset(); break; case REGISTER_CLEAR_MASK: - if (LOG) logerror("AM9517A '%s' Clear Mask Register\n", tag()); + LOG("AM9517A Clear Mask Register\n"); m_mask = 0; break; @@ -997,7 +894,7 @@ WRITE8_MEMBER( am9517a_device::write ) case REGISTER_MASK: m_mask = data & 0x0f; - if (LOG) logerror("AM9517A '%s' Mask Register: %01x\n", tag(), m_mask); + LOG("AM9517A Mask Register: %01x\n", m_mask); break; } } @@ -1011,7 +908,7 @@ WRITE8_MEMBER( am9517a_device::write ) WRITE_LINE_MEMBER( am9517a_device::hack_w ) { - if (LOG) logerror("AM9517A '%s' Hold Acknowledge: %u\n", tag(), state); + LOG("AM9517A Hold Acknowledge: %u\n", state); m_hack = state; trigger(1); @@ -1024,7 +921,7 @@ WRITE_LINE_MEMBER( am9517a_device::hack_w ) WRITE_LINE_MEMBER( am9517a_device::ready_w ) { - if (LOG) logerror("AM9517A '%s' Ready: %u\n", tag(), state); + LOG("AM9517A Ready: %u\n", state); m_ready = state; } @@ -1036,7 +933,7 @@ WRITE_LINE_MEMBER( am9517a_device::ready_w ) WRITE_LINE_MEMBER( am9517a_device::eop_w ) { - if (LOG) logerror("AM9517A '%s' End of Process: %u\n", tag(), state); + LOG("AM9517A End of Process: %u\n", state); } @@ -1109,7 +1006,7 @@ READ8_MEMBER(upd71071_v53_device::read) uint8_t ret = 0; int channel = m_selected_channel; - if (LOG) logerror("DMA: read from register %02x\n",offset); + LOG("DMA: read from register %02x\n",offset); switch (offset) { diff --git a/src/devices/machine/am9517a.h b/src/devices/machine/am9517a.h index 955467fbfba..7e92a5ed38e 100644 --- a/src/devices/machine/am9517a.h +++ b/src/devices/machine/am9517a.h @@ -29,10 +29,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_MACHINE_AM9517_H +#define MAME_MACHINE_AM9517_H -#ifndef __AM9517A__ -#define __AM9517A__ +#pragma once @@ -49,29 +49,17 @@ class am9517a_device : public device_t, public: // construction/destruction - am9517a_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname); am9517a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_out_hreq_callback(device_t &device, _Object object) { return downcast(device).m_out_hreq_cb.set_callback(object); } - template static devcb_base &set_out_eop_callback(device_t &device, _Object object) { return downcast(device).m_out_eop_cb.set_callback(object); } - - template static devcb_base &set_in_memr_callback(device_t &device, _Object object) { return downcast(device).m_in_memr_cb.set_callback(object); } - template static devcb_base &set_out_memw_callback(device_t &device, _Object object) { return downcast(device).m_out_memw_cb.set_callback(object); } + template static devcb_base &set_out_hreq_callback(device_t &device, Object &&cb) { return downcast(device).m_out_hreq_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_eop_callback(device_t &device, Object &&cb) { return downcast(device).m_out_eop_cb.set_callback(std::forward(cb)); } - template static devcb_base &set_in_ior_0_callback(device_t &device, _Object object) { return downcast(device).m_in_ior_0_cb.set_callback(object); } - template static devcb_base &set_in_ior_1_callback(device_t &device, _Object object) { return downcast(device).m_in_ior_1_cb.set_callback(object); } - template static devcb_base &set_in_ior_2_callback(device_t &device, _Object object) { return downcast(device).m_in_ior_2_cb.set_callback(object); } - template static devcb_base &set_in_ior_3_callback(device_t &device, _Object object) { return downcast(device).m_in_ior_3_cb.set_callback(object); } + template static devcb_base &set_in_memr_callback(device_t &device, Object &&cb) { return downcast(device).m_in_memr_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_memw_callback(device_t &device, Object &&cb) { return downcast(device).m_out_memw_cb.set_callback(std::forward(cb)); } - template static devcb_base &set_out_iow_0_callback(device_t &device, _Object object) { return downcast(device).m_out_iow_0_cb.set_callback(object); } - template static devcb_base &set_out_iow_1_callback(device_t &device, _Object object) { return downcast(device).m_out_iow_1_cb.set_callback(object); } - template static devcb_base &set_out_iow_2_callback(device_t &device, _Object object) { return downcast(device).m_out_iow_2_cb.set_callback(object); } - template static devcb_base &set_out_iow_3_callback(device_t &device, _Object object) { return downcast(device).m_out_iow_3_cb.set_callback(object); } - - template static devcb_base &set_out_dack_0_callback(device_t &device, _Object object) { return downcast(device).m_out_dack_0_cb.set_callback(object); } - template static devcb_base &set_out_dack_1_callback(device_t &device, _Object object) { return downcast(device).m_out_dack_1_cb.set_callback(object); } - template static devcb_base &set_out_dack_2_callback(device_t &device, _Object object) { return downcast(device).m_out_dack_2_cb.set_callback(object); } - template static devcb_base &set_out_dack_3_callback(device_t &device, _Object object) { return downcast(device).m_out_dack_3_cb.set_callback(object); } + template static devcb_base &set_in_ior_callback(device_t &device, Object &&cb) { return downcast(device).m_in_ior_cb[C].set_callback(std::forward(cb)); } + template static devcb_base &set_out_iow_callback(device_t &device, Object &&cb) { return downcast(device).m_out_iow_cb[C].set_callback(std::forward(cb)); } + template static devcb_base &set_out_dack_callback(device_t &device, Object &&cb) { return downcast(device).m_out_dack_cb[C].set_callback(std::forward(cb)); } virtual DECLARE_READ8_MEMBER( read ); virtual DECLARE_WRITE8_MEMBER( write ); @@ -86,6 +74,8 @@ public: DECLARE_WRITE_LINE_MEMBER( dreq3_w ); protected: + am9517a_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -137,23 +127,9 @@ private: devcb_read8 m_in_memr_cb; devcb_write8 m_out_memw_cb; - devcb_read8 m_in_ior_0_cb; - devcb_read8 m_in_ior_1_cb; - devcb_read8 m_in_ior_2_cb; - devcb_read8 m_in_ior_3_cb; - devcb_write8 m_out_iow_0_cb; - devcb_write8 m_out_iow_1_cb; - devcb_write8 m_out_iow_2_cb; - devcb_write8 m_out_iow_3_cb; - devcb_write_line m_out_dack_0_cb; - devcb_write_line m_out_dack_1_cb; - devcb_write_line m_out_dack_2_cb; - devcb_write_line m_out_dack_3_cb; - - - - - + devcb_read8 m_in_ior_cb[4]; + devcb_write8 m_out_iow_cb[4]; + devcb_write_line m_out_dack_cb[4]; }; @@ -193,9 +169,9 @@ protected: // device type definition -extern const device_type AM9517A; -extern const device_type V53_DMAU; -extern const device_type PCXPORT_DMAC; +DECLARE_DEVICE_TYPE(AM9517A, am9517a_device) +DECLARE_DEVICE_TYPE(V53_DMAU, upd71071_v53_device) +DECLARE_DEVICE_TYPE(PCXPORT_DMAC, pcxport_dmac_device) /*************************************************************************** @@ -215,40 +191,40 @@ extern const device_type PCXPORT_DMAC; devcb = &am9517a_device::set_out_memw_callback(*device, DEVCB_##_devcb); #define MCFG_AM9517A_IN_IOR_0_CB(_devcb) \ - devcb = &am9517a_device::set_in_ior_0_callback(*device, DEVCB_##_devcb); + devcb = &am9517a_device::set_in_ior_callback<0>(*device, DEVCB_##_devcb); #define MCFG_AM9517A_IN_IOR_1_CB(_devcb) \ - devcb = &am9517a_device::set_in_ior_1_callback(*device, DEVCB_##_devcb); + devcb = &am9517a_device::set_in_ior_callback<1>(*device, DEVCB_##_devcb); #define MCFG_AM9517A_IN_IOR_2_CB(_devcb) \ - devcb = &am9517a_device::set_in_ior_2_callback(*device, DEVCB_##_devcb); + devcb = &am9517a_device::set_in_ior_callback<2>(*device, DEVCB_##_devcb); #define MCFG_AM9517A_IN_IOR_3_CB(_devcb) \ - devcb = &am9517a_device::set_in_ior_3_callback(*device, DEVCB_##_devcb); + devcb = &am9517a_device::set_in_ior_callback<3>(*device, DEVCB_##_devcb); #define MCFG_AM9517A_OUT_IOW_0_CB(_devcb) \ - devcb = &am9517a_device::set_out_iow_0_callback(*device, DEVCB_##_devcb); + devcb = &am9517a_device::set_out_iow_callback<0>(*device, DEVCB_##_devcb); #define MCFG_AM9517A_OUT_IOW_1_CB(_devcb) \ - devcb = &am9517a_device::set_out_iow_1_callback(*device, DEVCB_##_devcb); + devcb = &am9517a_device::set_out_iow_callback<1>(*device, DEVCB_##_devcb); #define MCFG_AM9517A_OUT_IOW_2_CB(_devcb) \ - devcb = &am9517a_device::set_out_iow_2_callback(*device, DEVCB_##_devcb); + devcb = &am9517a_device::set_out_iow_callback<2>(*device, DEVCB_##_devcb); #define MCFG_AM9517A_OUT_IOW_3_CB(_devcb) \ - devcb = &am9517a_device::set_out_iow_3_callback(*device, DEVCB_##_devcb); + devcb = &am9517a_device::set_out_iow_callback<3>(*device, DEVCB_##_devcb); #define MCFG_AM9517A_OUT_DACK_0_CB(_devcb) \ - devcb = &am9517a_device::set_out_dack_0_callback(*device, DEVCB_##_devcb); + devcb = &am9517a_device::set_out_dack_callback<0>(*device, DEVCB_##_devcb); #define MCFG_AM9517A_OUT_DACK_1_CB(_devcb) \ - devcb = &am9517a_device::set_out_dack_1_callback(*device, DEVCB_##_devcb); + devcb = &am9517a_device::set_out_dack_callback<1>(*device, DEVCB_##_devcb); #define MCFG_AM9517A_OUT_DACK_2_CB(_devcb) \ - devcb = &am9517a_device::set_out_dack_2_callback(*device, DEVCB_##_devcb); + devcb = &am9517a_device::set_out_dack_callback<2>(*device, DEVCB_##_devcb); #define MCFG_AM9517A_OUT_DACK_3_CB(_devcb) \ - devcb = &am9517a_device::set_out_dack_3_callback(*device, DEVCB_##_devcb); + devcb = &am9517a_device::set_out_dack_callback<3>(*device, DEVCB_##_devcb); #define MCFG_I8237_OUT_HREQ_CB MCFG_AM9517A_OUT_HREQ_CB #define MCFG_I8237_OUT_EOP_CB MCFG_AM9517A_OUT_EOP_CB @@ -267,4 +243,4 @@ extern const device_type PCXPORT_DMAC; #define MCFG_I8237_OUT_DACK_2_CB MCFG_AM9517A_OUT_DACK_2_CB #define MCFG_I8237_OUT_DACK_3_CB MCFG_AM9517A_OUT_DACK_3_CB -#endif +#endif // MAME_MACHINE_AM9517_H diff --git a/src/devices/machine/amigafdc.cpp b/src/devices/machine/amigafdc.cpp index 188221d0052..8f8fc47c337 100644 --- a/src/devices/machine/amigafdc.cpp +++ b/src/devices/machine/amigafdc.cpp @@ -12,19 +12,20 @@ #include "formats/ami_dsk.h" #include "amigafdc.h" -const device_type AMIGA_FDC = device_creator; +DEFINE_DEVICE_TYPE(AMIGA_FDC, amiga_fdc_device, "amiga_fdc", "Amiga FDC") -FLOPPY_FORMATS_MEMBER( amiga_fdc::floppy_formats ) +FLOPPY_FORMATS_MEMBER( amiga_fdc_device::floppy_formats ) FLOPPY_ADF_FORMAT FLOPPY_FORMATS_END -amiga_fdc::amiga_fdc(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, AMIGA_FDC, "Amiga FDC", tag, owner, clock, "amiga_fdc", __FILE__), - m_write_index(*this), floppy(nullptr), t_gen(nullptr), dsklen(0), pre_dsklen(0), dsksync(0), dskbyt(0), adkcon(0), dmacon(0), dskpt(0), dma_value(0), dma_state(0) +amiga_fdc_device::amiga_fdc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, AMIGA_FDC, tag, owner, clock), + m_write_index(*this), + floppy(nullptr), t_gen(nullptr), dsklen(0), pre_dsklen(0), dsksync(0), dskbyt(0), adkcon(0), dmacon(0), dskpt(0), dma_value(0), dma_state(0) { } -void amiga_fdc::device_start() +void amiga_fdc_device::device_start() { m_write_index.resolve_safe(); @@ -43,7 +44,7 @@ void amiga_fdc::device_start() } -void amiga_fdc::device_reset() +void amiga_fdc_device::device_reset() { floppy = nullptr; dsklen = 0x4000; @@ -59,7 +60,7 @@ void amiga_fdc::device_reset() live_abort(); } -void amiga_fdc::dma_done() +void amiga_fdc_device::dma_done() { amiga_state *state = machine().driver_data(); if(dskbyt & 0x2000) { @@ -71,7 +72,7 @@ void amiga_fdc::dma_done() state->custom_chip_w(REG_INTREQ, INTENA_SETCLR | INTENA_DSKBLK); } -void amiga_fdc::dma_write(uint16_t value) +void amiga_fdc_device::dma_write(uint16_t value) { amiga_state *state = machine().driver_data(); state->chip_ram_w(dskpt, value); @@ -85,7 +86,7 @@ void amiga_fdc::dma_write(uint16_t value) dma_done(); } -uint16_t amiga_fdc::dma_read() +uint16_t amiga_fdc_device::dma_read() { amiga_state *state = machine().driver_data(); uint16_t res = state->chip_ram_r(dskpt); @@ -102,7 +103,7 @@ uint16_t amiga_fdc::dma_read() return res; } -void amiga_fdc::live_start() +void amiga_fdc_device::live_start() { cur_live.tm = machine().time(); cur_live.state = RUNNING; @@ -116,25 +117,25 @@ void amiga_fdc::live_start() live_run(); } -void amiga_fdc::checkpoint() +void amiga_fdc_device::checkpoint() { cur_live.pll.commit(floppy, cur_live.tm); checkpoint_live = cur_live; } -void amiga_fdc::rollback() +void amiga_fdc_device::rollback() { cur_live = checkpoint_live; } -void amiga_fdc::live_delay(int state) +void amiga_fdc_device::live_delay(int state) { cur_live.next_state = state; if(cur_live.tm != machine().time()) t_gen->adjust(cur_live.tm - machine().time()); } -void amiga_fdc::live_sync() +void amiga_fdc_device::live_sync() { if(!cur_live.tm.is_never()) { if(cur_live.tm > machine().time()) { @@ -159,7 +160,7 @@ void amiga_fdc::live_sync() } } -void amiga_fdc::live_abort() +void amiga_fdc_device::live_abort() { if(!cur_live.tm.is_never() && cur_live.tm > machine().time()) { rollback(); @@ -172,7 +173,7 @@ void amiga_fdc::live_abort() cur_live.next_state = -1; } -void amiga_fdc::live_run(const attotime &limit) +void amiga_fdc_device::live_run(const attotime &limit) { amiga_state *state = machine().driver_data(); @@ -199,7 +200,7 @@ void amiga_fdc::live_run(const attotime &limit) } if(cur_live.bit_counter > 8) - fatalerror("amiga_fdc::live_run - cur_live.bit_counter > 8\n"); + fatalerror("amiga_fdc_device::live_run - cur_live.bit_counter > 8\n"); if(cur_live.bit_counter == 8) { live_delay(RUNNING_SYNCPOINT); @@ -222,7 +223,7 @@ void amiga_fdc::live_run(const attotime &limit) return; cur_live.bit_counter++; if(cur_live.bit_counter > 8) - fatalerror("amiga_fdc::live_run - cur_live.bit_counter > 8\n"); + fatalerror("amiga_fdc_device::live_run - cur_live.bit_counter > 8\n"); if(cur_live.bit_counter == 8) { live_delay(RUNNING_SYNCPOINT); @@ -284,7 +285,7 @@ void amiga_fdc::live_run(const attotime &limit) } } else { if(cur_live.bit_counter != 8) - fatalerror("amiga_fdc::live_run - cur_live.bit_counter != 8\n"); + fatalerror("amiga_fdc_device::live_run - cur_live.bit_counter != 8\n"); cur_live.bit_counter = 0; switch(dma_state) { @@ -311,12 +312,12 @@ void amiga_fdc::live_run(const attotime &limit) } } -bool amiga_fdc::dma_enabled() +bool amiga_fdc_device::dma_enabled() { return (dsklen & 0x8000) && ((dmacon & 0x0210) == 0x0210); } -void amiga_fdc::dma_check() +void amiga_fdc_device::dma_check() { bool was_writing = dskbyt & 0x2000; dskbyt &= 0x9fff; @@ -347,19 +348,19 @@ void amiga_fdc::dma_check() } -void amiga_fdc::adkcon_set(uint16_t data) +void amiga_fdc_device::adkcon_set(uint16_t data) { live_sync(); adkcon = data; live_run(); } -uint16_t amiga_fdc::adkcon_r(void) +uint16_t amiga_fdc_device::adkcon_r(void) { return adkcon; } -void amiga_fdc::dsklen_w(uint16_t data) +void amiga_fdc_device::dsklen_w(uint16_t data) { live_sync(); if(!(data & 0x8000) || (data == pre_dsklen)) { @@ -371,38 +372,38 @@ void amiga_fdc::dsklen_w(uint16_t data) live_run(); } -void amiga_fdc::dskpth_w(uint16_t data) +void amiga_fdc_device::dskpth_w(uint16_t data) { live_sync(); dskpt = (dskpt & 0xffff) | (data << 16); live_run(); } -void amiga_fdc::dskptl_w(uint16_t data) +void amiga_fdc_device::dskptl_w(uint16_t data) { live_sync(); dskpt = (dskpt & 0xffff0000) | data; live_run(); } -uint16_t amiga_fdc::dskpth_r() +uint16_t amiga_fdc_device::dskpth_r() { return dskpt >> 16; } -uint16_t amiga_fdc::dskptl_r() +uint16_t amiga_fdc_device::dskptl_r() { return dskpt; } -void amiga_fdc::dsksync_w(uint16_t data) +void amiga_fdc_device::dsksync_w(uint16_t data) { live_sync(); dsksync = data; live_run(); } -void amiga_fdc::dmacon_set(uint16_t data) +void amiga_fdc_device::dmacon_set(uint16_t data) { live_sync(); dmacon = data; @@ -410,20 +411,20 @@ void amiga_fdc::dmacon_set(uint16_t data) live_run(); } -uint16_t amiga_fdc::dskbytr_r() +uint16_t amiga_fdc_device::dskbytr_r() { uint16_t res = dskbyt; dskbyt &= 0x7fff; return res; } -void amiga_fdc::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) +void amiga_fdc_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) { live_sync(); live_run(); } -void amiga_fdc::setup_leds() +void amiga_fdc_device::setup_leds() { if(floppy) { int drive = @@ -442,7 +443,7 @@ void amiga_fdc::setup_leds() } } -WRITE8_MEMBER( amiga_fdc::ciaaprb_w ) +WRITE8_MEMBER( amiga_fdc_device::ciaaprb_w ) { floppy_image_device *old_floppy = floppy; @@ -463,7 +464,7 @@ WRITE8_MEMBER( amiga_fdc::ciaaprb_w ) if(old_floppy) old_floppy->setup_index_pulse_cb(floppy_image_device::index_pulse_cb()); if(floppy) - floppy->setup_index_pulse_cb(floppy_image_device::index_pulse_cb(&amiga_fdc::index_callback, this)); + floppy->setup_index_pulse_cb(floppy_image_device::index_pulse_cb(&amiga_fdc_device::index_callback, this)); } if(floppy) { @@ -484,7 +485,7 @@ WRITE8_MEMBER( amiga_fdc::ciaaprb_w ) live_run(); } -uint8_t amiga_fdc::ciaapra_r() +uint8_t amiga_fdc_device::ciaapra_r() { uint8_t ret = 0x3c; if(floppy) { @@ -501,19 +502,19 @@ uint8_t amiga_fdc::ciaapra_r() return ret; } -void amiga_fdc::index_callback(floppy_image_device *floppy, int state) +void amiga_fdc_device::index_callback(floppy_image_device *floppy, int state) { /* Issue a index pulse when a disk revolution completes */ m_write_index(!state); } -void amiga_fdc::pll_t::set_clock(const attotime &period) +void amiga_fdc_device::pll_t::set_clock(const attotime &period) { for(int i=0; i<38; i++) delays[i] = period*(i+1); } -void amiga_fdc::pll_t::reset(const attotime &when) +void amiga_fdc_device::pll_t::reset(const attotime &when) { counter = 0; increment = 146; @@ -527,7 +528,7 @@ void amiga_fdc::pll_t::reset(const attotime &when) freq_sub = 0x00; } -int amiga_fdc::pll_t::get_next_bit(attotime &tm, floppy_image_device *floppy, const attotime &limit) +int amiga_fdc_device::pll_t::get_next_bit(attotime &tm, floppy_image_device *floppy, const attotime &limit) { attotime when = floppy ? floppy->get_next_transition(ctime) : attotime::never; @@ -601,19 +602,19 @@ int amiga_fdc::pll_t::get_next_bit(attotime &tm, floppy_image_device *floppy, co return bit; } -void amiga_fdc::pll_t::start_writing(const attotime & tm) +void amiga_fdc_device::pll_t::start_writing(const attotime & tm) { write_start_time = tm; write_position = 0; } -void amiga_fdc::pll_t::stop_writing(floppy_image_device *floppy, const attotime &tm) +void amiga_fdc_device::pll_t::stop_writing(floppy_image_device *floppy, const attotime &tm) { commit(floppy, tm); write_start_time = attotime::never; } -bool amiga_fdc::pll_t::write_next_bit(bool bit, attotime &tm, floppy_image_device *floppy, const attotime &limit) +bool amiga_fdc_device::pll_t::write_next_bit(bool bit, attotime &tm, floppy_image_device *floppy, const attotime &limit) { if(write_start_time.is_never()) { write_start_time = ctime; @@ -644,7 +645,7 @@ bool amiga_fdc::pll_t::write_next_bit(bool bit, attotime &tm, floppy_image_devic } -void amiga_fdc::pll_t::commit(floppy_image_device *floppy, const attotime &tm) +void amiga_fdc_device::pll_t::commit(floppy_image_device *floppy, const attotime &tm) { if(write_start_time.is_never() || tm == write_start_time) return; diff --git a/src/devices/machine/amigafdc.h b/src/devices/machine/amigafdc.h index 0d3846301df..b0e18debc69 100644 --- a/src/devices/machine/amigafdc.h +++ b/src/devices/machine/amigafdc.h @@ -1,18 +1,20 @@ // license:BSD-3-Clause // copyright-holders:Olivier Galibert -#ifndef AMIGAFDC_H -#define AMIGAFDC_H +#ifndef MAME_MACHINE_AMIGAFDC_H +#define MAME_MACHINE_AMIGAFDC_H + +#pragma once #include "imagedev/floppy.h" #define MCFG_AMIGA_FDC_INDEX_CALLBACK(_write) \ - devcb = &amiga_fdc::set_index_wr_callback(*device, DEVCB_##_write); + devcb = &amiga_fdc_device::set_index_wr_callback(*device, DEVCB_##_write); -class amiga_fdc : public device_t { +class amiga_fdc_device : public device_t { public: - amiga_fdc(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + amiga_fdc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_index_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_index.set_callback(object); } + template static devcb_base &set_index_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_index.set_callback(std::forward(cb)); } DECLARE_WRITE8_MEMBER(ciaaprb_w); @@ -115,6 +117,6 @@ private: void live_run(const attotime &limit = attotime::never); }; -extern const device_type AMIGA_FDC; +DECLARE_DEVICE_TYPE(AMIGA_FDC, amiga_fdc_device) -#endif /* AMIGAFDC_H */ +#endif // MAME_MACHINE_AMIGAFDC_H diff --git a/src/devices/machine/appldriv.cpp b/src/devices/machine/appldriv.cpp index ef6a46dfb6d..1d207a9ab0b 100644 --- a/src/devices/machine/appldriv.cpp +++ b/src/devices/machine/appldriv.cpp @@ -24,7 +24,7 @@ static inline apple525_floppy_image_device *get_device(device_t *device) assert(device != nullptr); assert(device->type() == FLOPPY_APPLE); - return (apple525_floppy_image_device *) downcast(device); + return downcast(device); } static int apple525_enable_mask = 1; @@ -56,7 +56,7 @@ device_t *apple525_get_device_by_type(device_t *device, int ftype, int drive) return nullptr; } -void apple525_set_enable_lines(device_t *device,int enable_mask) +void apple525_set_enable_lines(device_t *device, int enable_mask) { apple525_enable_mask = enable_mask; } @@ -291,14 +291,14 @@ int apple525_read_status(device_t *device) } // device type definition -const device_type FLOPPY_APPLE = device_creator; +DEFINE_DEVICE_TYPE(FLOPPY_APPLE, apple525_floppy_image_device, "floppy_apple", "Apple Disk II") //------------------------------------------------- // apple525_floppy_image_device - constructor //------------------------------------------------- apple525_floppy_image_device::apple525_floppy_image_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : legacy_floppy_image_device(mconfig, FLOPPY_APPLE, "Apple Disk II", tag, owner, clock, "floppy_apple", __FILE__) + : legacy_floppy_image_device(mconfig, FLOPPY_APPLE, tag, owner, clock) { } diff --git a/src/devices/machine/appldriv.h b/src/devices/machine/appldriv.h index acb85020189..3765705f625 100644 --- a/src/devices/machine/appldriv.h +++ b/src/devices/machine/appldriv.h @@ -8,21 +8,23 @@ *********************************************************************/ -#ifndef APPLDRIV_H -#define APPLDRIV_H +#ifndef MAME_MACHINE_APPLDRIV_H +#define MAME_MACHINE_APPLDRIV_H + +#pragma once #include "imagedev/flopdrv.h" #include "formats/ap2_dsk.h" -void apple525_set_lines(device_t *device,uint8_t lines); -void apple525_set_enable_lines(device_t *device,int enable_mask); +void apple525_set_lines(device_t *device, uint8_t lines); +void apple525_set_enable_lines(device_t *device, int enable_mask); uint8_t apple525_read_data(device_t *device); -void apple525_write_data(device_t *device,uint8_t data); +void apple525_write_data(device_t *device, uint8_t data); int apple525_read_status(device_t *device); int apple525_get_count(running_machine &machine); -class apple525_floppy_image_device : public legacy_floppy_image_device +class apple525_floppy_image_device : public legacy_floppy_image_device { public: // construction/destruction @@ -30,7 +32,7 @@ public: virtual image_init_result call_load() override; virtual void call_unload() override; - void set_params(int dividend, int divisor) { m_dividend = dividend; m_divisor = divisor;} + void set_params(int dividend, int divisor) { m_dividend = dividend; m_divisor = divisor; } int get_dividend() { return m_dividend; } int get_divisor() { return m_divisor; } @@ -53,7 +55,7 @@ private: }; // device type definition -extern const device_type FLOPPY_APPLE; +DECLARE_DEVICE_TYPE(FLOPPY_APPLE, apple525_floppy_image_device) #define MCFG_LEGACY_FLOPPY_APPLE_PARAMS(_dividend,_divisor) \ downcast(device)->set_params(_dividend,_divisor); @@ -84,4 +86,4 @@ extern const device_type FLOPPY_APPLE; MCFG_DEVICE_REMOVE(FLOPPY_0) \ MCFG_DEVICE_REMOVE(FLOPPY_1) -#endif /* APPLDRIV_H */ +#endif // MAME_MACHINE_APPLDRIV_H diff --git a/src/devices/machine/applefdc.cpp b/src/devices/machine/applefdc.cpp index 6d9d10fbd13..681dcc525ed 100644 --- a/src/devices/machine/applefdc.cpp +++ b/src/devices/machine/applefdc.cpp @@ -106,8 +106,8 @@ enum // ctor //------------------------------------------------- -applefdc_base_device::applefdc_base_device(applefdc_base_device::applefdc_t fdc_type, const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), +applefdc_base_device::applefdc_base_device(applefdc_base_device::applefdc_t fdc_type, const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock), m_type(fdc_type), m_interface(nullptr) { @@ -565,10 +565,10 @@ uint8_t applefdc_base_device::get_lines() APPLE FDC - Used on Apple II ***************************************************************************/ -const device_type APPLEFDC = device_creator; +DEFINE_DEVICE_TYPE(APPLEFDC, applefdc_device, "apple_fdc", "Apple FDC") applefdc_device::applefdc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : applefdc_base_device(APPLEFDC_APPLE2, mconfig, APPLEFDC, "Apple FDC", tag, owner, clock, "apple_fdc", __FILE__) + : applefdc_base_device(APPLEFDC_APPLE2, mconfig, APPLEFDC, tag, owner, clock) { } @@ -578,9 +578,9 @@ applefdc_device::applefdc_device(const machine_config &mconfig, const char *tag, IWM - Used on early Macs ***************************************************************************/ -const device_type IWM = device_creator; +DEFINE_DEVICE_TYPE(IWM, iwm_device, "iwm", "Apple IWM (Integrated Woz Machine)") iwm_device::iwm_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : applefdc_base_device(APPLEFDC_IWM, mconfig, IWM, "Apple IWM (Integrated Woz Machine)", tag, owner, clock, "iwm", __FILE__) + : applefdc_base_device(APPLEFDC_IWM, mconfig, IWM, tag, owner, clock) { } diff --git a/src/devices/machine/applefdc.h b/src/devices/machine/applefdc.h index dd0e1279b08..f6f9f05fcf9 100644 --- a/src/devices/machine/applefdc.h +++ b/src/devices/machine/applefdc.h @@ -14,9 +14,10 @@ *********************************************************************/ -#ifndef __APPLEFDC_H__ -#define __APPLEFDC_H__ +#ifndef MAME_MACHINE_APPLEFDC_H +#define MAME_MACHINE_APPLEFDC_H +#pragma once @@ -29,9 +30,8 @@ #define APPLEFDC_PH2 0x04 #define APPLEFDC_PH3 0x08 -extern const device_type APPLEFDC; -extern const device_type IWM; -extern const device_type SWIM; +DECLARE_DEVICE_TYPE(APPLEFDC, applefdc_device) +DECLARE_DEVICE_TYPE(IWM, iwm_device) @@ -83,7 +83,7 @@ protected: }; // constructor - applefdc_base_device(applefdc_t fdc_type, const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); + applefdc_base_device(applefdc_t fdc_type, const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); // device-level overrides virtual void device_start() override; @@ -166,4 +166,4 @@ public: MCFG_APPLEFDC_CONFIG(_intrf) -#endif /* __APPLEFDC_H__ */ +#endif // MAME_MACHINE_APPLEFDC_H diff --git a/src/devices/machine/at28c16.cpp b/src/devices/machine/at28c16.cpp index 1ee69769c6f..06188c190be 100644 --- a/src/devices/machine/at28c16.cpp +++ b/src/devices/machine/at28c16.cpp @@ -33,20 +33,20 @@ ADDRESS_MAP_END //************************************************************************** // device type definition -const device_type AT28C16 = device_creator; +DEFINE_DEVICE_TYPE(AT28C16, at28c16_device, "at28c16", "AT28C16 2Kx8 EEPROM") //------------------------------------------------- // at28c16_device - constructor //------------------------------------------------- -at28c16_device::at28c16_device( const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock ) - : device_t(mconfig, AT28C16, "AT28C16", tag, owner, clock, "at28c16", __FILE__), +at28c16_device::at28c16_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, AT28C16, tag, owner, clock), device_memory_interface(mconfig, *this), device_nvram_interface(mconfig, *this), - m_space_config("at28c16", ENDIANNESS_BIG, 8, 12, 0, *ADDRESS_MAP_NAME( at28c16_map8 )), - m_a9_12v( 0 ), - m_oe_12v( 0 ), - m_last_write( -1 ), + m_space_config("at28c16", ENDIANNESS_BIG, 8, 12, 0, *ADDRESS_MAP_NAME(at28c16_map8)), + m_a9_12v(0), + m_oe_12v(0), + m_last_write(-1), m_default_data(*this, DEVICE_SELF, AT28C16_DATA_BYTES) { } @@ -57,9 +57,9 @@ at28c16_device::at28c16_device( const machine_config &mconfig, const char *tag, // any address spaces owned by this device //------------------------------------------------- -const address_space_config *at28c16_device::memory_space_config( address_spacenum spacenum ) const +const address_space_config *at28c16_device::memory_space_config(address_spacenum spacenum) const { - return ( spacenum == 0 ) ? &m_space_config : nullptr; + return (spacenum == AS_0) ? &m_space_config : nullptr; } diff --git a/src/devices/machine/at28c16.h b/src/devices/machine/at28c16.h index 1d985e5d680..1339a7ce85c 100644 --- a/src/devices/machine/at28c16.h +++ b/src/devices/machine/at28c16.h @@ -8,10 +8,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_MACHINE_AT28C16_H +#define MAME_MACHINE_AT28C16_H -#ifndef __AT28C16_H__ -#define __AT28C16_H__ +#pragma once //************************************************************************** @@ -35,7 +35,7 @@ class at28c16_device : { public: // construction/destruction - at28c16_device( const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock ); + at28c16_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // I/O operations DECLARE_WRITE8_MEMBER( write ); @@ -49,12 +49,12 @@ protected: virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; // device_memory_interface overrides - virtual const address_space_config *memory_space_config( address_spacenum spacenum = AS_0 ) const override; + virtual const address_space_config *memory_space_config(address_spacenum spacenum) const override; // device_nvram_interface overrides virtual void nvram_default() override; - virtual void nvram_read( emu_file &file ) override; - virtual void nvram_write( emu_file &file ) override; + virtual void nvram_read(emu_file &file) override; + virtual void nvram_write(emu_file &file) override; // internal state address_space_config m_space_config; @@ -68,5 +68,6 @@ protected: // device type definition extern const device_type AT28C16; +DECLARE_DEVICE_TYPE(AT28C16, at28c16_device) -#endif +#endif // MAME_MACHINE_AT28C16_H diff --git a/src/devices/machine/at29x.cpp b/src/devices/machine/at29x.cpp index 2c56a1c45c2..5ca0735649d 100644 --- a/src/devices/machine/at29x.cpp +++ b/src/devices/machine/at29x.cpp @@ -55,13 +55,13 @@ enum Constructor for all variants */ -at29x_device::at29x_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), +at29x_device::at29x_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int memory_size, int device_id, int sector_size) + : device_t(mconfig, type, tag, owner, clock), device_nvram_interface(mconfig, *this), - m_memory_size(0), // bytes + m_memory_size(memory_size), // bytes m_word_width(8), - m_device_id(0), - m_sector_size(0), + m_device_id(device_id), + m_sector_size(sector_size), m_cycle_time(10), // ms m_boot_block_size(16*1024), m_version(0) @@ -72,33 +72,24 @@ at29x_device::at29x_device(const machine_config &mconfig, device_type type, cons Constructor for AT29C020 */ at29c020_device::at29c020_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : at29x_device(mconfig, AT29C020, "ATMEL 29C020 256K x 8 FEEPROM", tag, owner, clock, "at29c020", __FILE__) + : at29x_device(mconfig, AT29C020, tag, owner, clock, 256*1024, 0xda, 256) { - m_memory_size = 256*1024; - m_device_id = 0xda; - m_sector_size = 256; } /* Constructor for AT29C040 */ at29c040_device::at29c040_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : at29x_device(mconfig, AT29C040, "ATMEL 29C040 512K x 8 FEEPROM", tag, owner, clock, "at29c040", __FILE__) + : at29x_device(mconfig, AT29C040, tag, owner, clock, 512*1024, 0x5b, 512) { - m_memory_size = 512*1024; - m_device_id = 0x5b; - m_sector_size = 512; } /* Constructor for AT29C040A */ at29c040a_device::at29c040a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : at29x_device(mconfig, AT29C040A, "ATMEL 29C040A 512K x 8 FEEPROM", tag, owner, clock, "at29c040a", __FILE__) + : at29x_device(mconfig, AT29C040A, tag, owner, clock, 512*1024, 0xa4, 256) { - m_memory_size = 512*1024; - m_device_id = 0xa4; - m_sector_size = 256; } @@ -478,7 +469,7 @@ WRITE8_MEMBER( at29x_device::write ) } } -void at29x_device::device_start(void) +void at29x_device::device_start() { m_programming_buffer = std::make_unique(m_sector_size); m_eememory = std::make_unique(m_memory_size+2); @@ -521,6 +512,6 @@ void at29x_device::device_reset(void) m_programming_last_offset = 0; } -const device_type AT29C020 = device_creator; -const device_type AT29C040 = device_creator; -const device_type AT29C040A = device_creator; +DEFINE_DEVICE_TYPE(AT29C020, at29c020_device, "at29c020", "ATMEL 29C020 256Kx8 FEEPROM") +DEFINE_DEVICE_TYPE(AT29C040, at29c040_device, "at29c040", "ATMEL 29C040 512Kx8 FEEPROM") +DEFINE_DEVICE_TYPE(AT29C040A, at29c040a_device, "at29c040a", "ATMEL 29C040A 512Kx8 FEEPROM") diff --git a/src/devices/machine/at29x.h b/src/devices/machine/at29x.h index da9b1d8b3e1..bb7711458bf 100644 --- a/src/devices/machine/at29x.h +++ b/src/devices/machine/at29x.h @@ -7,37 +7,25 @@ August 2015 */ -#ifndef __AT29X__ -#define __AT29X__ +#ifndef MAME_MACHINE_AT29X_H +#define MAME_MACHINE_AT29X_H +#pragma once -extern const device_type AT29C020; -extern const device_type AT29C040; -extern const device_type AT29C040A; -enum s_cmd_t -{ - CMD_0 = 0, - CMD_1, - CMD_2 -}; - -enum s_pgm_t -{ - PGM_0 = 0, - PGM_1, - PGM_2, - PGM_3 -}; +DECLARE_DEVICE_TYPE(AT29C020, at29c020_device) +DECLARE_DEVICE_TYPE(AT29C040, at29c040_device) +DECLARE_DEVICE_TYPE(AT29C040A, at29c040a_device) class at29x_device : public device_t, public device_nvram_interface { public: - at29x_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); DECLARE_READ8_MEMBER( read ); DECLARE_WRITE8_MEMBER( write ); protected: + at29x_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int memory_size, int device_id, int sector_size); + virtual void device_start(void) override; virtual void device_reset(void) override; virtual void device_stop(void) override; @@ -49,10 +37,10 @@ protected: int get_sector_number(offs_t address) { return address / m_sector_size; } - int m_memory_size; // bytes + const int m_memory_size; // bytes int m_word_width; - int m_device_id; - int m_sector_size; + const int m_device_id; + const int m_sector_size; int m_cycle_time; // ms int m_boot_block_size; int m_version; @@ -60,6 +48,21 @@ protected: int m_sector_mask; private: + enum s_cmd_t + { + CMD_0 = 0, + CMD_1, + CMD_2 + }; + + enum s_pgm_t + { + PGM_0 = 0, + PGM_1, + PGM_2, + PGM_3 + }; + void sync_flags(void); std::unique_ptr m_eememory; @@ -112,4 +115,4 @@ public: #define MCFG_AT29C040A_ADD(_tag ) \ MCFG_DEVICE_ADD(_tag, AT29C040A, 0) -#endif +#endif // MAME_MACHINE_AT29X_H diff --git a/src/devices/machine/at45dbxx.cpp b/src/devices/machine/at45dbxx.cpp index e1b44c4ee0e..74fc06b4413 100644 --- a/src/devices/machine/at45dbxx.cpp +++ b/src/devices/machine/at45dbxx.cpp @@ -33,9 +33,9 @@ //************************************************************************** // device type definition -const device_type AT45DB041 = device_creator; -const device_type AT45DB081 = device_creator; -const device_type AT45DB161 = device_creator; +DEFINE_DEVICE_TYPE(AT45DB041, at45db041_device, "at45db041", "AT45DB041") +DEFINE_DEVICE_TYPE(AT45DB081, at45db081_device, "at45db081", "AT45DB081") +DEFINE_DEVICE_TYPE(AT45DB161, at45db161_device, "at45db161", "AT45DB161") //************************************************************************** @@ -47,29 +47,27 @@ const device_type AT45DB161 = device_creator; //------------------------------------------------- at45db041_device::at45db041_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, AT45DB041, "AT45DB041", tag, owner, clock, "at45db041", __FILE__), - device_nvram_interface(mconfig, *this), - write_so(*this) + : at45db041_device(mconfig, AT45DB041, tag, owner, clock) { } -at45db041_device::at45db041_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_nvram_interface(mconfig, *this), - write_so(*this) +at45db041_device::at45db041_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) + , device_nvram_interface(mconfig, *this) + , write_so(*this) { } at45db081_device::at45db081_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : at45db041_device(mconfig, AT45DB081, "AT45DB081", tag, owner, clock, "at45db081", __FILE__) + : at45db041_device(mconfig, AT45DB081, tag, owner, clock) { } at45db161_device::at45db161_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : at45db041_device(mconfig, AT45DB161, "AT45DB161", tag, owner, clock, "at45db161", __FILE__) + : at45db041_device(mconfig, AT45DB161, tag, owner, clock) { } diff --git a/src/devices/machine/at45dbxx.h b/src/devices/machine/at45dbxx.h index 058672d457d..2c26916d2e5 100644 --- a/src/devices/machine/at45dbxx.h +++ b/src/devices/machine/at45dbxx.h @@ -12,9 +12,10 @@ */ -#ifndef _AT45DBXX_H_ -#define _AT45DBXX_H_ +#ifndef MAME_MACHINE_AT45DBXX_H +#define MAME_MACHINE_AT45DBXX_H +#pragma once //************************************************************************** @@ -41,7 +42,6 @@ class at45db041_device : public device_t, { public: at45db041_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - at45db041_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); DECLARE_WRITE_LINE_MEMBER(cs_w); DECLARE_WRITE_LINE_MEMBER(sck_w); @@ -50,10 +50,11 @@ public: uint8_t *get_ptr() { return &m_data[0]; } - template static devcb_base &set_so_cb(device_t &device, _Object object) { return downcast(device).write_so.set_callback(object); } - devcb_write_line write_so; + template static devcb_base &set_so_cb(device_t &device, Object &&cb) { return downcast(device).write_so.set_callback(std::forward(cb)); } protected: + at45db041_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -63,7 +64,6 @@ protected: virtual void nvram_read(emu_file &file) override; virtual void nvram_write(emu_file &file) override; -protected: virtual int num_pages() const { return 2048; } virtual int page_size() const { return 264; } virtual uint8_t device_id() const { return 0x18; } @@ -74,6 +74,8 @@ protected: virtual uint32_t flash_get_byte_addr(); void write_byte(uint8_t data); + devcb_write_line write_so; + // internal state std::vector m_data; uint32_t m_size; @@ -144,8 +146,8 @@ protected: // device type definition -extern const device_type AT45DB041; -extern const device_type AT45DB081; -extern const device_type AT45DB161; +DECLARE_DEVICE_TYPE(AT45DB041, at45db041_device) +DECLARE_DEVICE_TYPE(AT45DB081, at45db081_device) +DECLARE_DEVICE_TYPE(AT45DB161, at45db161_device) -#endif +#endif // MAME_MACHINE_AT45DBXX_H diff --git a/src/devices/machine/at_keybc.cpp b/src/devices/machine/at_keybc.cpp index 2f2b528cb6e..eb43d0003ad 100644 --- a/src/devices/machine/at_keybc.cpp +++ b/src/devices/machine/at_keybc.cpp @@ -8,14 +8,13 @@ #include "emu.h" #include "at_keybc.h" -#include "cpu/mcs48/mcs48.h" //************************************************************************** // GLOBAL VARIABLES //************************************************************************** -const device_type AT_KEYBOARD_CONTROLLER = device_creator; +DEFINE_DEVICE_TYPE(AT_KEYBOARD_CONTROLLER, at_keyboard_controller_device, "at_keybc", "AT Keyboard Controller") static INPUT_PORTS_START( at_keybc ) PORT_START("DSW") @@ -55,7 +54,7 @@ ROM_END //------------------------------------------------- at_keyboard_controller_device::at_keyboard_controller_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, AT_KEYBOARD_CONTROLLER, "AT Keyboard Controller", tag, owner, clock, "at_keybc", __FILE__), + : device_t(mconfig, AT_KEYBOARD_CONTROLLER, tag, owner, clock), m_cpu(nullptr), m_system_reset_cb(*this), m_gate_a20_cb(*this), diff --git a/src/devices/machine/at_keybc.h b/src/devices/machine/at_keybc.h index 7827517c4b5..7775a836755 100644 --- a/src/devices/machine/at_keybc.h +++ b/src/devices/machine/at_keybc.h @@ -6,10 +6,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_MACHINE_AT_KEYBC_H +#define MAME_MACHINE_AT_KEYBC_H -#ifndef __AT_KEYBC_H__ -#define __AT_KEYBC_H__ +#pragma once #include "cpu/mcs48/mcs48.h" @@ -48,12 +48,12 @@ public: // construction/destruction at_keyboard_controller_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_system_reset_callback(device_t &device, _Object object) { return downcast(device).m_system_reset_cb.set_callback(object); } - template static devcb_base &set_gate_a20_callback(device_t &device, _Object object) { return downcast(device).m_gate_a20_cb.set_callback(object); } - template static devcb_base &set_input_buffer_full_callback(device_t &device, _Object object) { return downcast(device).m_input_buffer_full_cb.set_callback(object); } - template static devcb_base &set_output_buffer_empty_callback(device_t &device, _Object object) { return downcast(device).m_output_buffer_empty_cb.set_callback(object); } - template static devcb_base &set_keyboard_clock_callback(device_t &device, _Object object) { return downcast(device).m_keyboard_clock_cb.set_callback(object); } - template static devcb_base &set_keyboard_data_callback(device_t &device, _Object object) { return downcast(device).m_keyboard_data_cb.set_callback(object); } + template static devcb_base &set_system_reset_callback(device_t &device, Object &&cb) { return downcast(device).m_system_reset_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_gate_a20_callback(device_t &device, Object &&cb) { return downcast(device).m_gate_a20_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_input_buffer_full_callback(device_t &device, Object &&cb) { return downcast(device).m_input_buffer_full_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_output_buffer_empty_callback(device_t &device, Object &&cb) { return downcast(device).m_output_buffer_empty_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_keyboard_clock_callback(device_t &device, Object &&cb) { return downcast(device).m_keyboard_clock_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_keyboard_data_callback(device_t &device, Object &&cb) { return downcast(device).m_keyboard_data_cb.set_callback(std::forward(cb)); } // internal 8042 interface DECLARE_READ_LINE_MEMBER( t0_r ); @@ -101,7 +101,6 @@ private: // device type definition -extern const device_type AT_KEYBOARD_CONTROLLER; - +DECLARE_DEVICE_TYPE(AT_KEYBOARD_CONTROLLER, at_keyboard_controller_device) -#endif /* __AT_KEYBC__ */ +#endif // MAME_MACHINE_AT_KEYBC_H diff --git a/src/devices/machine/atadev.cpp b/src/devices/machine/atadev.cpp index f2f5686c690..03cae8a67ed 100644 --- a/src/devices/machine/atadev.cpp +++ b/src/devices/machine/atadev.cpp @@ -10,10 +10,11 @@ #include "atadev.h" //------------------------------------------------- -// ata_device_interface - constructor +// device_ata_interface - constructor //------------------------------------------------- -ata_device_interface::ata_device_interface(const machine_config &mconfig, device_t &device) : +device_ata_interface::device_ata_interface(const machine_config &mconfig, device_t &device) : + device_slot_card_interface(mconfig, device), m_irq_handler(device), m_dmarq_handler(device), m_dasp_handler(device), diff --git a/src/devices/machine/atadev.h b/src/devices/machine/atadev.h index 8115a6e4dc1..6bd8bc7fde0 100644 --- a/src/devices/machine/atadev.h +++ b/src/devices/machine/atadev.h @@ -8,19 +8,21 @@ ***************************************************************************/ +#ifndef MAME_MACHINE_ATADEV_H +#define MAME_MACHINE_ATADEV_H + #pragma once -#ifndef __ATADEV_H__ -#define __ATADEV_H__ +// ======================> device_ata_interface -// ======================> ata_device_interface +class ata_interface_device; -class ata_device_interface +class device_ata_interface : public device_slot_card_interface { + friend class ata_interface_device; public: - ata_device_interface(const machine_config &mconfig, device_t &device); - virtual ~ata_device_interface() {} + device_ata_interface(const machine_config &mconfig, device_t &device); virtual uint16_t read_dma() = 0; virtual DECLARE_READ16_MEMBER(read_cs0) = 0; @@ -34,10 +36,11 @@ public: virtual DECLARE_WRITE_LINE_MEMBER(write_dasp) = 0; virtual DECLARE_WRITE_LINE_MEMBER(write_pdiag) = 0; +protected: devcb_write_line m_irq_handler; devcb_write_line m_dmarq_handler; devcb_write_line m_dasp_handler; devcb_write_line m_pdiag_handler; }; -#endif +#endif // MAME_MACHINE_ATADEV_H diff --git a/src/devices/machine/ataflash.cpp b/src/devices/machine/ataflash.cpp index a8e67c06fd5..f3aff7df8c3 100644 --- a/src/devices/machine/ataflash.cpp +++ b/src/devices/machine/ataflash.cpp @@ -3,15 +3,15 @@ #include "emu.h" #include "ataflash.h" -const device_type ATA_FLASH_PCCARD = device_creator; +DEFINE_DEVICE_TYPE(ATA_FLASH_PCCARD, ata_flash_pccard_device, "ataflash", "ATA Flash PC Card") ata_flash_pccard_device::ata_flash_pccard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - ide_hdd_device(mconfig, ATA_FLASH_PCCARD, "ATA Flash PCCARD", tag, owner, clock, "ataflash", __FILE__) + ata_flash_pccard_device(mconfig, ATA_FLASH_PCCARD, tag, owner, clock) { } -ata_flash_pccard_device::ata_flash_pccard_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : ide_hdd_device(mconfig, type, name, tag, owner, clock, shortname, source) +ata_flash_pccard_device::ata_flash_pccard_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : ide_hdd_device(mconfig, type, tag, owner, clock) { } @@ -117,10 +117,10 @@ attotime ata_flash_pccard_device::seek_time() } -const device_type TAITO_PCCARD1 = device_creator; +DEFINE_DEVICE_TYPE(TAITO_PCCARD1, taito_pccard1_device, "taito_pccard1", "Taito PC Card (Type 1)") taito_pccard1_device::taito_pccard1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - ata_flash_pccard_device(mconfig, TAITO_PCCARD1, "Taito PC-CARD (Type 1)", tag, owner, clock, "taito_pccard1", __FILE__), + ata_flash_pccard_device(mconfig, TAITO_PCCARD1, tag, owner, clock), m_locked(0) { } @@ -208,10 +208,10 @@ bool taito_pccard1_device::is_ready() return m_locked == 0; } -const device_type TAITO_PCCARD2 = device_creator; +DEFINE_DEVICE_TYPE(TAITO_PCCARD2, taito_pccard2_device, "taito_pccard2", "Taito PC Card (Type 2)") taito_pccard2_device::taito_pccard2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - ata_flash_pccard_device(mconfig, TAITO_PCCARD2, "Taito PC-CARD (Type 2)", tag, owner, clock, "taito_pccard2", __FILE__), + ata_flash_pccard_device(mconfig, TAITO_PCCARD2, tag, owner, clock), m_locked(false) { } @@ -307,10 +307,10 @@ bool taito_pccard2_device::is_ready() return !m_locked; } -const device_type TAITO_COMPACT_FLASH = device_creator; +DEFINE_DEVICE_TYPE(TAITO_COMPACT_FLASH, taito_compact_flash_device, "taito_cf", "Taito Compact Flash") taito_compact_flash_device::taito_compact_flash_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - ata_flash_pccard_device(mconfig, TAITO_COMPACT_FLASH, "Taito Compact Flash", tag, owner, clock, "taito_cf", __FILE__), + ata_flash_pccard_device(mconfig, TAITO_COMPACT_FLASH, tag, owner, clock), m_locked(false) { } diff --git a/src/devices/machine/ataflash.h b/src/devices/machine/ataflash.h index 55e46ff1c1c..ecf610ae4a3 100644 --- a/src/devices/machine/ataflash.h +++ b/src/devices/machine/ataflash.h @@ -1,21 +1,20 @@ // license:BSD-3-Clause // copyright-holders:smf -#pragma once +#ifndef MAME_MACHINE_ATAFLASH_H +#define MAME_MACHINE_ATAFLASH_H -#ifndef __ATAFLASH_H__ -#define __ATAFLASH_H__ +#pragma once #include "pccard.h" #include "machine/idehd.h" extern const device_type ATA_FLASH_PCCARD; +DECLARE_DEVICE_TYPE(ATA_FLASH_PCCARD, ata_flash_pccard_device) -class ata_flash_pccard_device : public ide_hdd_device, - public pccard_interface +class ata_flash_pccard_device : public ide_hdd_device, public pccard_interface { public: ata_flash_pccard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ata_flash_pccard_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); virtual DECLARE_READ16_MEMBER(read_memory) override; virtual DECLARE_WRITE16_MEMBER(write_memory) override; @@ -23,6 +22,8 @@ public: virtual DECLARE_WRITE16_MEMBER(write_reg) override; protected: + ata_flash_pccard_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_reset() override; @@ -35,7 +36,7 @@ private: uint8_t m_pin_replacement; }; -extern const device_type TAITO_PCCARD1; +DECLARE_DEVICE_TYPE(TAITO_PCCARD1, taito_pccard1_device) class taito_pccard1_device : public ata_flash_pccard_device { @@ -56,7 +57,7 @@ private: uint16_t m_locked; }; -extern const device_type TAITO_PCCARD2; +DECLARE_DEVICE_TYPE(TAITO_PCCARD2, taito_pccard2_device) class taito_pccard2_device : public ata_flash_pccard_device { @@ -78,7 +79,7 @@ private: bool m_locked; }; -extern const device_type TAITO_COMPACT_FLASH; +DECLARE_DEVICE_TYPE(TAITO_COMPACT_FLASH, taito_compact_flash_device) class taito_compact_flash_device : public ata_flash_pccard_device { @@ -91,11 +92,11 @@ protected: virtual void process_command() override; virtual bool is_ready() override; - static const int IDE_COMMAND_TAITO_COMPACT_FLASH_UNLOCK = 0x0f; + static constexpr int IDE_COMMAND_TAITO_COMPACT_FLASH_UNLOCK = 0x0f; private: uint8_t m_key[5]; bool m_locked; }; -#endif +#endif // MAME_MACHINE_ATAFLASH_H diff --git a/src/devices/machine/atahle.cpp b/src/devices/machine/atahle.cpp index ad94f6a4f69..b93826e35de 100644 --- a/src/devices/machine/atahle.cpp +++ b/src/devices/machine/atahle.cpp @@ -40,10 +40,9 @@ enum #define DEVICE1_PDIAG_TIME (attotime::from_msec(2)) #define DIAGNOSTIC_TIME (attotime::from_msec(2)) -ata_hle_device::ata_hle_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock,const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), - ata_device_interface(mconfig, *this), - device_slot_card_interface(mconfig, *this), +ata_hle_device::ata_hle_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock), + device_ata_interface(mconfig, *this), m_buffer_offset(0), m_buffer_size(0), m_error(0), diff --git a/src/devices/machine/atahle.h b/src/devices/machine/atahle.h index dfa39af8da5..d8a676e562c 100644 --- a/src/devices/machine/atahle.h +++ b/src/devices/machine/atahle.h @@ -8,16 +8,14 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_MACHINE_ATAHLE_H +#define MAME_MACHINE_ATAHLE_H -#ifndef __ATAHLE_H__ -#define __ATAHLE_H__ +#pragma once #include "atadev.h" -class ata_hle_device : public device_t, - public ata_device_interface, - public device_slot_card_interface +class ata_hle_device : public device_t, public device_ata_interface { public: virtual uint16_t read_dma() override; @@ -33,7 +31,7 @@ public: virtual DECLARE_WRITE_LINE_MEMBER(write_pdiag) override; protected: - ata_hle_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); + ata_hle_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); virtual void device_start() override; virtual void device_reset() override; @@ -218,4 +216,4 @@ private: emu_timer *m_buffer_empty_timer; }; -#endif +#endif // MAME_MACHINE_ATAHLE_H diff --git a/src/devices/machine/ataintf.cpp b/src/devices/machine/ataintf.cpp index 09ca1a04e8d..df3e127dd52 100644 --- a/src/devices/machine/ataintf.cpp +++ b/src/devices/machine/ataintf.cpp @@ -10,9 +10,12 @@ #include "emu.h" #include "ataintf.h" -#include "debugger.h" -#include "idehd.h" + #include "atapicdr.h" +#include "idehd.h" + +#include "debugger.h" + void ata_interface_device::set_irq(int state) { @@ -71,7 +74,7 @@ WRITE_LINE_MEMBER( ata_interface_device::dasp1_write_line ) { m_dasp[1] = state; - ata_device_interface *dev = m_slot[0]->dev(); + device_ata_interface *dev = m_slot[0]->dev(); if (dev != nullptr) dev->write_dasp(state); @@ -110,7 +113,7 @@ WRITE_LINE_MEMBER( ata_interface_device::pdiag1_write_line ) { m_pdiag[1] = state; - ata_device_interface *dev = m_slot[0]->dev(); + device_ata_interface *dev = m_slot[0]->dev(); if (dev != nullptr) dev->write_pdiag(state); } @@ -207,21 +210,18 @@ SLOT_INTERFACE_START(ata_devices) SLOT_INTERFACE("cdrom", ATAPI_CDROM) SLOT_INTERFACE_END -ata_interface_device::ata_interface_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), +ata_interface_device::ata_interface_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), m_irq_handler(*this), m_dmarq_handler(*this), m_dasp_handler(*this){ } -const device_type ATA_INTERFACE = device_creator; +DEFINE_DEVICE_TYPE(ATA_INTERFACE, ata_interface_device, "ata_interface", "ATA Interface") ata_interface_device::ata_interface_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, ATA_INTERFACE, "ATA Interface", tag, owner, clock, "ata_interface", __FILE__), - m_irq_handler(*this), - m_dmarq_handler(*this), - m_dasp_handler(*this) + ata_interface_device(mconfig, ATA_INTERFACE, tag, owner, clock) { } @@ -246,7 +246,7 @@ void ata_interface_device::device_start() m_dasp[i] = 0; m_pdiag[i] = 0; - ata_device_interface *dev = m_slot[i]->dev(); + device_ata_interface *dev = m_slot[i]->dev(); if (dev != nullptr) { if (i == 0) @@ -290,14 +290,14 @@ machine_config_constructor ata_interface_device::device_mconfig_additions() cons //************************************************************************** // device type definition -const device_type ATA_SLOT = device_creator; +DEFINE_DEVICE_TYPE(ATA_SLOT, ata_slot_device, "ata_slot", "ATA Connector") //------------------------------------------------- // ata_slot_device - constructor //------------------------------------------------- ata_slot_device::ata_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, ATA_SLOT, "ATA Connector", tag, owner, clock, "ata_slot", __FILE__), + : device_t(mconfig, ATA_SLOT, tag, owner, clock), device_slot_interface(mconfig, *this), m_dev(nullptr) { @@ -311,7 +311,7 @@ ata_slot_device::ata_slot_device(const machine_config &mconfig, const char *tag, void ata_slot_device::device_config_complete() { - m_dev = dynamic_cast(get_card_device()); + m_dev = dynamic_cast(get_card_device()); } //------------------------------------------------- diff --git a/src/devices/machine/ataintf.h b/src/devices/machine/ataintf.h index 018796414ff..2d8533810e5 100644 --- a/src/devices/machine/ataintf.h +++ b/src/devices/machine/ataintf.h @@ -8,10 +8,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_MACHINE_ATAINTF_H +#define MAME_MACHINE_ATAINTF_H -#ifndef __ATAINTF_H__ -#define __ATAINTF_H__ +#pragma once #include "atadev.h" @@ -28,18 +28,19 @@ public: // construction/destruction ata_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ata_device_interface *dev() { return m_dev; } + device_ata_interface *dev() { return m_dev; } + protected: // device-level overrides virtual void device_start() override; virtual void device_config_complete() override; private: - ata_device_interface *m_dev; + device_ata_interface *m_dev; }; // device type definition -extern const device_type ATA_SLOT; +DECLARE_DEVICE_TYPE(ATA_SLOT, ata_slot_device) /*************************************************************************** TYPE DEFINITIONS @@ -78,12 +79,12 @@ class ata_interface_device : public device_t { public: ata_interface_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ata_interface_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); // static configuration helpers - template static devcb_base &set_irq_handler(device_t &device, _Object object) { return downcast(device).m_irq_handler.set_callback(object); } - template static devcb_base &set_dmarq_handler(device_t &device, _Object object) { return downcast(device).m_dmarq_handler.set_callback(object); } - template static devcb_base &set_dasp_handler(device_t &device, _Object object) { return downcast(device).m_dasp_handler.set_callback(object); } + template static devcb_base &set_irq_handler(device_t &device, Object &&cb) { return downcast(device).m_irq_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_dmarq_handler(device_t &device, Object &&cb) { return downcast(device).m_dmarq_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_dasp_handler(device_t &device, Object &&cb) { return downcast(device).m_dasp_handler.set_callback(std::forward(cb)); } + uint16_t read_dma(); virtual DECLARE_READ16_MEMBER(read_cs0); virtual DECLARE_READ16_MEMBER(read_cs1); @@ -94,6 +95,8 @@ public: DECLARE_WRITE_LINE_MEMBER(write_dmack); protected: + ata_interface_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual machine_config_constructor device_mconfig_additions() const override; @@ -124,6 +127,6 @@ private: devcb_write_line m_dasp_handler; }; -extern const device_type ATA_INTERFACE; +DECLARE_DEVICE_TYPE(ATA_INTERFACE, ata_interface_device) -#endif /* __ATAINTF_H__ */ +#endif // MAME_MACHINE_ATAINTF_H diff --git a/src/devices/machine/atapicdr.cpp b/src/devices/machine/atapicdr.cpp index a7aa4449517..bee622ed4c1 100644 --- a/src/devices/machine/atapicdr.cpp +++ b/src/devices/machine/atapicdr.cpp @@ -8,21 +8,21 @@ #define T10MMC_GET_EVENT_STATUS_NOTIFICATION 0x4a // device type definition -const device_type ATAPI_CDROM = device_creator; -const device_type ATAPI_FIXED_CDROM = device_creator; +DEFINE_DEVICE_TYPE(ATAPI_CDROM, atapi_cdrom_device, "cdrom", "ATAPI CD-ROM") +DEFINE_DEVICE_TYPE(ATAPI_FIXED_CDROM, atapi_fixed_cdrom_device, "cdrom_fixed", "ATAPI fixed CD-ROM") atapi_cdrom_device::atapi_cdrom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - atapi_hle_device(mconfig, ATAPI_CDROM, "ATAPI CDROM", tag, owner, clock, "cdrom", __FILE__) + atapi_cdrom_device(mconfig, ATAPI_CDROM, tag, owner, clock) { } -atapi_cdrom_device::atapi_cdrom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - atapi_hle_device(mconfig, type, name, tag, owner, clock, shortname, source) +atapi_cdrom_device::atapi_cdrom_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + atapi_hle_device(mconfig, type, tag, owner, clock) { } atapi_fixed_cdrom_device::atapi_fixed_cdrom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - atapi_cdrom_device(mconfig, ATAPI_FIXED_CDROM, "ATAPI fixed CDROM", tag, owner, clock, "cdrom_fixed", __FILE__) + atapi_cdrom_device(mconfig, ATAPI_FIXED_CDROM, tag, owner, clock) { } diff --git a/src/devices/machine/atapicdr.h b/src/devices/machine/atapicdr.h index 1105506c84f..778197a2f24 100644 --- a/src/devices/machine/atapicdr.h +++ b/src/devices/machine/atapicdr.h @@ -8,24 +8,24 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_MACHINE_ATAPICDR_H +#define MAME_MACHINE_ATAPICDR_H -#ifndef __ATAPICDR_H__ -#define __ATAPICDR_H__ +#pragma once #include "atapihle.h" #include "t10mmc.h" -class atapi_cdrom_device : public atapi_hle_device, - public t10mmc +class atapi_cdrom_device : public atapi_hle_device, public t10mmc { public: atapi_cdrom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - atapi_cdrom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock,const char *shortname, const char *source); uint16_t *identify_device_buffer() { return m_identify_buffer; } protected: + atapi_cdrom_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -42,12 +42,13 @@ class atapi_fixed_cdrom_device : public atapi_cdrom_device { public: atapi_fixed_cdrom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + protected: virtual void device_reset() override; }; // device type definition -extern const device_type ATAPI_CDROM; -extern const device_type ATAPI_FIXED_CDROM; +DECLARE_DEVICE_TYPE(ATAPI_CDROM, atapi_cdrom_device) +DECLARE_DEVICE_TYPE(ATAPI_FIXED_CDROM, atapi_fixed_cdrom_device) -#endif +#endif // MAME_MACHINE_ATAPICDR_H diff --git a/src/devices/machine/atapihle.cpp b/src/devices/machine/atapihle.cpp index 24d2c901f74..8bbc779ea23 100644 --- a/src/devices/machine/atapihle.cpp +++ b/src/devices/machine/atapihle.cpp @@ -3,8 +3,8 @@ #include "emu.h" #include "atapihle.h" -atapi_hle_device::atapi_hle_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock,const char *shortname, const char *source) - : ata_hle_device(mconfig, type, name, tag, owner, clock, shortname, source), +atapi_hle_device::atapi_hle_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : ata_hle_device(mconfig, type, tag, owner, clock), m_packet(0), m_data_size(0) { diff --git a/src/devices/machine/atapihle.h b/src/devices/machine/atapihle.h index 2e44816a2ca..d01447e5830 100644 --- a/src/devices/machine/atapihle.h +++ b/src/devices/machine/atapihle.h @@ -8,20 +8,17 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_MACHINE_ATAPIHLE_H +#define MAME_MACHINE_ATAPIHLE_H -#ifndef __ATAPIHLE_H__ -#define __ATAPIHLE_H__ +#pragma once #include "atahle.h" #include "t10spc.h" -class atapi_hle_device : public ata_hle_device, - public virtual t10spc +class atapi_hle_device : public ata_hle_device, public virtual t10spc { public: - atapi_hle_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock,const char *shortname, const char *source); - enum atapi_features_flag_t { ATAPI_FEATURES_FLAG_DMA = 0x01, @@ -50,6 +47,8 @@ public: }; protected: + atapi_hle_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; virtual void device_reset() override; @@ -72,7 +71,7 @@ private: int m_packet; int m_data_size; - static const int ATAPI_BUFFER_LENGTH = 0xf800; + static constexpr int ATAPI_BUFFER_LENGTH = 0xf800; }; -#endif +#endif // MAME_MACHINE_ATAPIHLE_H diff --git a/src/devices/machine/autoconfig.h b/src/devices/machine/autoconfig.h index a5c4279153e..409f21b4eb9 100644 --- a/src/devices/machine/autoconfig.h +++ b/src/devices/machine/autoconfig.h @@ -6,10 +6,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_MACHINE_AUTOCONFIG_H +#define MAME_MACHINE_AUTOCONFIG_H -#ifndef __AUTOCONFIG_H__ -#define __AUTOCONFIG_H__ +#pragma once class amiga_autoconfig @@ -70,4 +70,4 @@ private: uint16_t m_cfg[0x40]; }; -#endif // __AUTOCONFIG_H__ +#endif // MAME_MACHINE_AUTOCONFIG_H diff --git a/src/devices/machine/ay31015.cpp b/src/devices/machine/ay31015.cpp index 74b61bef1cf..aba1e284156 100644 --- a/src/devices/machine/ay31015.cpp +++ b/src/devices/machine/ay31015.cpp @@ -94,11 +94,11 @@ Start bit (low), Bit 0, Bit 1... highest bit, Parity bit (if enabled), 1-2 stop -const device_type AY31015 = device_creator; -const device_type AY51013 = device_creator; +DEFINE_DEVICE_TYPE(AY31015, ay31015_device, "ay31015", "AY-3-1015") +DEFINE_DEVICE_TYPE(AY51013, ay51013_device, "ay51013", "AY-5-1013") -ay31015_device::ay31015_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), +ay31015_device::ay31015_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock), m_control_reg(0), m_status_reg(0), m_second_stop_bit(0), @@ -126,12 +126,12 @@ ay31015_device::ay31015_device(const machine_config &mconfig, device_type type, } ay31015_device::ay31015_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : ay31015_device(mconfig, AY31015, "AY-3-1015", tag, owner, clock, "ay31015", __FILE__) + : ay31015_device(mconfig, AY31015, tag, owner, clock) { } ay51013_device::ay51013_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : ay31015_device(mconfig, AY51013, "AY-5-1013", tag, owner, clock, "ay51013", __FILE__) + : ay31015_device(mconfig, AY51013, tag, owner, clock) { } diff --git a/src/devices/machine/ay31015.h b/src/devices/machine/ay31015.h index a58e4379208..d7211e9a1f0 100644 --- a/src/devices/machine/ay31015.h +++ b/src/devices/machine/ay31015.h @@ -6,8 +6,10 @@ */ -#ifndef __AY31015_H_ -#define __AY31015_H_ +#ifndef MAME_MACHINE_AY31015_H +#define MAME_MACHINE_AY31015_H + +#pragma once /*************************************************************************** TYPE DEFINITIONS @@ -45,31 +47,27 @@ enum ay31015_output_pin_t DEVICE INTERFACE ***************************************************************************/ -enum state_t -{ - IDLE, - START_BIT, - PROCESSING, - PARITY_BIT, - FIRST_STOP_BIT, - SECOND_STOP_BIT, - PREP_TIME -}; - -ALLOW_SAVE_TYPE(state_t); - class ay31015_device : public device_t { public: + enum state_t + { + IDLE, + START_BIT, + PROCESSING, + PARITY_BIT, + FIRST_STOP_BIT, + SECOND_STOP_BIT, + PREP_TIME + }; + ay31015_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ay31015_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - ~ay31015_device() {} static void set_tx_clock(device_t &device, double tx_clock) { downcast(device).m_tx_clock = tx_clock; } static void set_rx_clock(device_t &device, double rx_clock) { downcast(device).m_rx_clock = rx_clock; } - template static devcb_base &set_read_si_callback(device_t &device, _Object object) { return downcast(device).m_read_si_cb.set_callback(object); } - template static devcb_base &set_write_so_callback(device_t &device, _Object object) { return downcast(device).m_write_so_cb.set_callback(object); } - template static devcb_base &set_status_changed_callback(device_t &device, _Object object) { return downcast(device).m_status_changed_cb.set_callback(object); } + template static devcb_base &set_read_si_callback(device_t &device, Object &&cb) { return downcast(device).m_read_si_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_write_so_callback(device_t &device, Object &&cb) { return downcast(device).m_write_so_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_status_changed_callback(device_t &device, Object &&cb) { return downcast(device).m_status_changed_cb.set_callback(std::forward(cb)); } /* Set an input pin */ void set_input_pin( ay31015_input_pin_t pin, int data ); @@ -95,8 +93,10 @@ public: void tx_process(); protected: - static const device_timer_id TIMER_RX = 0; - static const device_timer_id TIMER_TX = 1; + static constexpr device_timer_id TIMER_RX = 0; + static constexpr device_timer_id TIMER_TX = 1; + + ay31015_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); // device-level overrides virtual void device_start() override; @@ -154,8 +154,10 @@ protected: }; -extern const device_type AY31015; // For AY-3-1014A, AY-3-1015(D) and HD6402 variants -extern const device_type AY51013; // For AY-3-1014, AY-5-1013 and AY-6-1013 variants +ALLOW_SAVE_TYPE(ay31015_device::state_t); + +DECLARE_DEVICE_TYPE(AY31015, ay31015_device) // For AY-3-1014A, AY-3-1015(D) and HD6402 variants +DECLARE_DEVICE_TYPE(AY51013, ay51013_device) // For AY-3-1014, AY-5-1013 and AY-6-1013 variants @@ -195,4 +197,4 @@ extern const device_type AY51013; // For AY-3-1014, AY-5-1013 and AY-6-1013 va #define MCFG_AY51013_STATUS_CHANGED_CB(_devcb) \ devcb = &ay51013_device::set_status_changed_callback(*device, DEVCB_##_devcb); -#endif +#endif // MAME_MACHINE_AY31015_H diff --git a/src/devices/machine/bankdev.cpp b/src/devices/machine/bankdev.cpp index 8197f502c79..50000e8942f 100644 --- a/src/devices/machine/bankdev.cpp +++ b/src/devices/machine/bankdev.cpp @@ -4,10 +4,10 @@ #include "bankdev.h" // device type definition -const device_type ADDRESS_MAP_BANK = device_creator; +DEFINE_DEVICE_TYPE(ADDRESS_MAP_BANK, address_map_bank_device, "address_map_bank", "Address Map Bank") address_map_bank_device::address_map_bank_device( const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock ) - : device_t(mconfig, ADDRESS_MAP_BANK, "Address Map Bank", tag, owner, clock, "address_map_bank", __FILE__), + : device_t(mconfig, ADDRESS_MAP_BANK, tag, owner, clock), device_memory_interface(mconfig, *this), m_endianness(ENDIANNESS_NATIVE), m_databus_width(0), diff --git a/src/devices/machine/bankdev.h b/src/devices/machine/bankdev.h index ce692c8b319..5fb049fd3af 100644 --- a/src/devices/machine/bankdev.h +++ b/src/devices/machine/bankdev.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:smf -#pragma once +#ifndef MAME_DEVICES_MACHINE_BANKDEV_H +#define MAME_DEVICES_MACHINE_BANKDEV_H -#ifndef __BANKDEV_H__ -#define __BANKDEV_H__ +#pragma once #define MCFG_ADDRESS_MAP_BANK_ENDIANNESS(_endianness) \ @@ -24,7 +24,7 @@ class address_map_bank_device : { public: // construction/destruction - address_map_bank_device( const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock ); + address_map_bank_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // static configuration helpers static void set_endianness(device_t &device, endianness_t endianness) { downcast(device).m_endianness = endianness; } @@ -69,6 +69,6 @@ private: // device type definition -extern const device_type ADDRESS_MAP_BANK; +DECLARE_DEVICE_TYPE(ADDRESS_MAP_BANK, address_map_bank_device) -#endif +#endif // MAME_DEVICES_MACHINE_BANKDEV_H diff --git a/src/devices/machine/bcreader.cpp b/src/devices/machine/bcreader.cpp index 55cca371322..a94c488583c 100644 --- a/src/devices/machine/bcreader.cpp +++ b/src/devices/machine/bcreader.cpp @@ -53,14 +53,14 @@ #include "bcreader.h" // device type definition -const device_type BARCODE_READER = device_creator; +DEFINE_DEVICE_TYPE(BARCODE_READER, barcode_reader_device, "bcreader", "Barcode Reader") //------------------------------------------------- // barcode_reader_device - constructor //------------------------------------------------- barcode_reader_device::barcode_reader_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, BARCODE_READER, "Barcode Reader", tag, owner, clock, "bcreader", __FILE__) + : device_t(mconfig, BARCODE_READER, tag, owner, clock) , m_byte_length(0) , m_pixel_length(0) , m_byte_count(0) diff --git a/src/devices/machine/bcreader.h b/src/devices/machine/bcreader.h index 3be7c2d6d9d..b687c19363b 100644 --- a/src/devices/machine/bcreader.h +++ b/src/devices/machine/bcreader.h @@ -8,8 +8,8 @@ *********************************************************************/ -#ifndef __BCREADER_H_ -#define __BCREADER_H_ +#ifndef MAME_DEVICES_MACHINE_BCREADER_H +#define MAME_DEVICES_MACHINE_BCREADER_H #define MCFG_BARCODE_READER_ADD( _tag ) \ MCFG_DEVICE_ADD( _tag, BARCODE_READER, 0 ) @@ -51,10 +51,10 @@ protected: // device type definition -extern const device_type BARCODE_READER; +DECLARE_DEVICE_TYPE(BARCODE_READER, barcode_reader_device) // device type iterator typedef device_type_iterator barcode_reader_device_iterator; -#endif +#endif // MAME_DEVICES_MACHINE_BCREADER_H diff --git a/src/devices/machine/buffer.cpp b/src/devices/machine/buffer.cpp index b5d0839af5e..b1a93df8fb7 100644 --- a/src/devices/machine/buffer.cpp +++ b/src/devices/machine/buffer.cpp @@ -3,11 +3,11 @@ #include "emu.h" #include "buffer.h" -const device_type INPUT_BUFFER = device_creator; +DEFINE_DEVICE_TYPE(INPUT_BUFFER, input_buffer_device, "input_buffer", "Input Buffer") input_buffer_device::input_buffer_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, INPUT_BUFFER, "Input Buffer", tag, owner, clock, "input_buffer", __FILE__), - m_input_data(0xff) + : device_t(mconfig, INPUT_BUFFER, tag, owner, clock) + , m_input_data(0xff) { } diff --git a/src/devices/machine/buffer.h b/src/devices/machine/buffer.h index 812f9f89f78..7f5724ad48b 100644 --- a/src/devices/machine/buffer.h +++ b/src/devices/machine/buffer.h @@ -1,7 +1,7 @@ // license:BSD-3-Clause // copyright-holders:smf -#ifndef __BUFFER_H__ -#define __BUFFER_H__ +#ifndef MAME_DEVICES_MACHINE_BUFFER_H +#define MAME_DEVICES_MACHINE_BUFFER_H class input_buffer_device : public device_t { @@ -26,6 +26,6 @@ protected: uint8_t m_input_data; }; -extern const device_type INPUT_BUFFER; +DECLARE_DEVICE_TYPE(INPUT_BUFFER, input_buffer_device) -#endif +#endif // MAME_DEVICES_MACHINE_BUFFER_H diff --git a/src/devices/machine/cdp1852.cpp b/src/devices/machine/cdp1852.cpp index 422d3ff5fe2..b6dbb80410e 100644 --- a/src/devices/machine/cdp1852.cpp +++ b/src/devices/machine/cdp1852.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type CDP1852 = device_creator; +DEFINE_DEVICE_TYPE(CDP1852, cdp1852_device, "cdp1852", "RCA CDP1852 I/O") @@ -40,11 +40,12 @@ enum //------------------------------------------------- cdp1852_device::cdp1852_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, CDP1852, "CDP1852 I/O", tag, owner, clock, "cdp1852", __FILE__), + device_t(mconfig, CDP1852, tag, owner, clock), m_read_mode(*this), m_write_sr(*this), m_read_data(*this), - m_write_data(*this), m_new_data(0), m_data(0), m_next_data(0), m_sr(0), m_next_sr(0), m_scan_timer(nullptr) + m_write_data(*this), + m_new_data(0), m_data(0), m_next_data(0), m_sr(0), m_next_sr(0), m_scan_timer(nullptr) { } diff --git a/src/devices/machine/cdp1852.h b/src/devices/machine/cdp1852.h index 61ab5092001..d017aaa2482 100644 --- a/src/devices/machine/cdp1852.h +++ b/src/devices/machine/cdp1852.h @@ -21,10 +21,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_MACHINE_CDP1852_H +#define MAME_MACHINE_CDP1852_H -#ifndef __CDP1852__ -#define __CDP1852__ +#pragma once @@ -53,16 +53,16 @@ // ======================> cdp1852_device -class cdp1852_device : public device_t +class cdp1852_device : public device_t { public: // construction/destruction cdp1852_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_mode_rd_callback(device_t &device, _Object object) { return downcast(device).m_read_mode.set_callback(object); } - template static devcb_base &set_sr_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_sr.set_callback(object); } - template static devcb_base &set_data_rd_callback(device_t &device, _Object object) { return downcast(device).m_read_data.set_callback(object); } - template static devcb_base &set_data_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_data.set_callback(object); } + template static devcb_base &set_mode_rd_callback(device_t &device, Object &&cb) { return downcast(device).m_read_mode.set_callback(std::forward(cb)); } + template static devcb_base &set_sr_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_sr.set_callback(std::forward(cb)); } + template static devcb_base &set_data_rd_callback(device_t &device, Object &&cb) { return downcast(device).m_read_data.set_callback(std::forward(cb)); } + template static devcb_base &set_data_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_data.set_callback(std::forward(cb)); } DECLARE_READ8_MEMBER( read ); DECLARE_WRITE8_MEMBER( write ); @@ -94,8 +94,6 @@ private: // device type definition -extern const device_type CDP1852; - - +DECLARE_DEVICE_TYPE(CDP1852, cdp1852_device) -#endif +#endif // MAME_MACHINE_CDP1852_H diff --git a/src/devices/machine/cdp1871.cpp b/src/devices/machine/cdp1871.cpp index 586597ce41b..600c1e6ee3c 100644 --- a/src/devices/machine/cdp1871.cpp +++ b/src/devices/machine/cdp1871.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type CDP1871 = device_creator; +DEFINE_DEVICE_TYPE(CDP1871, cdp1871_device, "cdp1871", "RCA CDP1871 Keyboard Encoder") @@ -97,7 +97,7 @@ const uint8_t cdp1871_device::key_codes[4][11][8] = //------------------------------------------------- cdp1871_device::cdp1871_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, CDP1871, "RCA CDP1871", tag, owner, clock, "cdp1871", __FILE__), + device_t(mconfig, CDP1871, tag, owner, clock), m_read_d1(*this), m_read_d2(*this), m_read_d3(*this), diff --git a/src/devices/machine/cdp1871.h b/src/devices/machine/cdp1871.h index eb939aa92e9..b83ca6d3166 100644 --- a/src/devices/machine/cdp1871.h +++ b/src/devices/machine/cdp1871.h @@ -29,10 +29,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_MACHINE_CDP1871_H +#define MAME_MACHINE_CDP1871_H -#ifndef __CDP1871__ -#define __CDP1871__ +#pragma once @@ -94,19 +94,19 @@ public: // construction/destruction cdp1871_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_d1_rd_callback(device_t &device, _Object object) { return downcast(device).m_read_d1.set_callback(object); } - template static devcb_base &set_d2_rd_callback(device_t &device, _Object object) { return downcast(device).m_read_d2.set_callback(object); } - template static devcb_base &set_d3_rd_callback(device_t &device, _Object object) { return downcast(device).m_read_d3.set_callback(object); } - template static devcb_base &set_d4_rd_callback(device_t &device, _Object object) { return downcast(device).m_read_d4.set_callback(object); } - template static devcb_base &set_d5_rd_callback(device_t &device, _Object object) { return downcast(device).m_read_d5.set_callback(object); } - template static devcb_base &set_d6_rd_callback(device_t &device, _Object object) { return downcast(device).m_read_d6.set_callback(object); } - template static devcb_base &set_d7_rd_callback(device_t &device, _Object object) { return downcast(device).m_read_d7.set_callback(object); } - template static devcb_base &set_d8_rd_callback(device_t &device, _Object object) { return downcast(device).m_read_d8.set_callback(object); } - template static devcb_base &set_d9_rd_callback(device_t &device, _Object object) { return downcast(device).m_read_d9.set_callback(object); } - template static devcb_base &set_d10_rd_callback(device_t &device, _Object object) { return downcast(device).m_read_d10.set_callback(object); } - template static devcb_base &set_d11_rd_callback(device_t &device, _Object object) { return downcast(device).m_read_d11.set_callback(object); } - template static devcb_base &set_da_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_da.set_callback(object); } - template static devcb_base &set_rpt_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_rpt.set_callback(object); } + template static devcb_base &set_d1_rd_callback(device_t &device, Object &&cb) { return downcast(device).m_read_d1.set_callback(std::forward(cb)); } + template static devcb_base &set_d2_rd_callback(device_t &device, Object &&cb) { return downcast(device).m_read_d2.set_callback(std::forward(cb)); } + template static devcb_base &set_d3_rd_callback(device_t &device, Object &&cb) { return downcast(device).m_read_d3.set_callback(std::forward(cb)); } + template static devcb_base &set_d4_rd_callback(device_t &device, Object &&cb) { return downcast(device).m_read_d4.set_callback(std::forward(cb)); } + template static devcb_base &set_d5_rd_callback(device_t &device, Object &&cb) { return downcast(device).m_read_d5.set_callback(std::forward(cb)); } + template static devcb_base &set_d6_rd_callback(device_t &device, Object &&cb) { return downcast(device).m_read_d6.set_callback(std::forward(cb)); } + template static devcb_base &set_d7_rd_callback(device_t &device, Object &&cb) { return downcast(device).m_read_d7.set_callback(std::forward(cb)); } + template static devcb_base &set_d8_rd_callback(device_t &device, Object &&cb) { return downcast(device).m_read_d8.set_callback(std::forward(cb)); } + template static devcb_base &set_d9_rd_callback(device_t &device, Object &&cb) { return downcast(device).m_read_d9.set_callback(std::forward(cb)); } + template static devcb_base &set_d10_rd_callback(device_t &device, Object &&cb) { return downcast(device).m_read_d10.set_callback(std::forward(cb)); } + template static devcb_base &set_d11_rd_callback(device_t &device, Object &&cb) { return downcast(device).m_read_d11.set_callback(std::forward(cb)); } + template static devcb_base &set_da_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_da.set_callback(std::forward(cb)); } + template static devcb_base &set_rpt_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_rpt.set_callback(std::forward(cb)); } DECLARE_READ8_MEMBER( read ); @@ -164,8 +164,6 @@ private: // device type definition -extern const device_type CDP1871; - - +DECLARE_DEVICE_TYPE(CDP1871, cdp1871_device) -#endif +#endif // MAME_MACHINE_CDP1871_H diff --git a/src/devices/machine/cdp1879.cpp b/src/devices/machine/cdp1879.cpp index c7a566848e8..c42a6120b4d 100644 --- a/src/devices/machine/cdp1879.cpp +++ b/src/devices/machine/cdp1879.cpp @@ -15,14 +15,14 @@ //************************************************************************** // device type definition -const device_type CDP1879 = device_creator; +DEFINE_DEVICE_TYPE(CDP1879, cdp1879_device, "cdp1879", "RCA CDP1879 RTC") //------------------------------------------------- // cdp1879_device - constructor //------------------------------------------------- cdp1879_device::cdp1879_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, CDP1879, "RCA CDP1879", tag, owner, clock, "cdp1879", __FILE__), + : device_t(mconfig, CDP1879, tag, owner, clock), device_rtc_interface(mconfig, *this), m_irq_w(*this) { diff --git a/src/devices/machine/cdp1879.h b/src/devices/machine/cdp1879.h index 1a5a68389b7..bd87a228b65 100644 --- a/src/devices/machine/cdp1879.h +++ b/src/devices/machine/cdp1879.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_MACHINE_CDP1879_H +#define MAME_MACHINE_CDP1879_H -#ifndef __CDP1879_H__ -#define __CDP1879_H__ +#pragma once #include "dirtc.h" @@ -79,6 +79,6 @@ private: }; // device type definition -extern const device_type CDP1879; +DECLARE_DEVICE_TYPE(CDP1879, cdp1879_device) -#endif +#endif // MAME_MACHINE_CDP1879_H diff --git a/src/devices/machine/clock.cpp b/src/devices/machine/clock.cpp index c1e291300db..927a0aecbf5 100644 --- a/src/devices/machine/clock.cpp +++ b/src/devices/machine/clock.cpp @@ -3,10 +3,10 @@ #include "emu.h" #include "clock.h" -const device_type CLOCK = device_creator; +DEFINE_DEVICE_TYPE(CLOCK, clock_device, "clock", "Clock") clock_device::clock_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, CLOCK, "Clock", tag, owner, clock, "clock", __FILE__), + : device_t(mconfig, CLOCK, tag, owner, clock), m_signal(0), m_timer(nullptr), m_signal_handler(*this) diff --git a/src/devices/machine/clock.h b/src/devices/machine/clock.h index 0f11c6b1173..3d361cd0d75 100644 --- a/src/devices/machine/clock.h +++ b/src/devices/machine/clock.h @@ -1,7 +1,7 @@ // license:BSD-3-Clause // copyright-holders:smf -#ifndef __CLOCK_H__ -#define __CLOCK_H__ +#ifndef MAME_MACHINE_CLOCK_H +#define MAME_MACHINE_CLOCK_H #pragma once @@ -17,7 +17,7 @@ class clock_device : public device_t public: clock_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_signal_handler(device_t &device, _Object object) { return downcast(device).m_signal_handler.set_callback(object); } + template static devcb_base &set_signal_handler(device_t &device, Object &&cb) { return downcast(device).m_signal_handler.set_callback(std::forward(cb)); } protected: virtual void device_start() override; @@ -34,6 +34,6 @@ private: devcb_write_line m_signal_handler; }; -extern const device_type CLOCK; +DECLARE_DEVICE_TYPE(CLOCK, clock_device) -#endif +#endif // MAME_MACHINE_CLOCK_H diff --git a/src/devices/machine/com8116.cpp b/src/devices/machine/com8116.cpp index db1fa072f14..cbc10280125 100644 --- a/src/devices/machine/com8116.cpp +++ b/src/devices/machine/com8116.cpp @@ -9,13 +9,8 @@ #include "emu.h" #include "com8116.h" - - -//************************************************************************** -// MACROS / CONSTANTS -//************************************************************************** - -#define LOG 0 +//#define VERBOSE 1 +#include "logmacro.h" @@ -24,7 +19,7 @@ //************************************************************************** // device type definition -const device_type COM8116 = device_creator; +DEFINE_DEVICE_TYPE(COM8116, com8116_device, "com8116", "COM8116 Dual BRG") // Parts with T after the number do not have an internal oscillator and require an external clock source // The SMC/COM 5xxx parts are all dual 5v/12v parts, while the 8xxx parts are 5v only @@ -89,7 +84,7 @@ const int com8116_device::divisors_16X_4_9152MHz_SY2661_2[] = //------------------------------------------------- com8116_device::com8116_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, COM8116, "COM8116", tag, owner, clock, "com8116", __FILE__), + device_t(mconfig, COM8116, tag, owner, clock), m_fx4_handler(*this), m_fr_handler(*this), m_ft_handler(*this) @@ -171,7 +166,7 @@ void com8116_device::str_w(uint8_t data) int fr_divider = data & 0x0f; int fr_clock = clock() / m_fr_divisors[fr_divider]; - if (LOG) logerror("COM8116 '%s' Receiver Divisor Select %01x: %u (%u Hz)\n", tag(), data & 0x0f, m_fr_divisors[fr_divider], fr_clock); + LOG("COM8116 Receiver Divisor Select %01x: %u (%u Hz)\n", data & 0x0f, m_fr_divisors[fr_divider], fr_clock); m_fr_timer->adjust(attotime::from_nsec(3500), 0, attotime::from_hz(fr_clock * 2)); } @@ -191,7 +186,7 @@ void com8116_device::stt_w(uint8_t data) int ft_divider = data & 0x0f; int ft_clock = clock() / m_ft_divisors[ft_divider]; - if (LOG) logerror("COM8116 '%s' Transmitter Divisor Select %01x: %u (%u Hz)\n", tag(), data & 0x0f, m_ft_divisors[ft_divider], ft_clock); + LOG("COM8116 Transmitter Divisor Select %01x: %u (%u Hz)\n", data & 0x0f, m_ft_divisors[ft_divider], ft_clock); m_ft_timer->adjust(attotime::from_nsec(3500), 0, attotime::from_hz(ft_clock * 2)); } diff --git a/src/devices/machine/com8116.h b/src/devices/machine/com8116.h index 4cd3feddb8f..7d06cc3426d 100644 --- a/src/devices/machine/com8116.h +++ b/src/devices/machine/com8116.h @@ -21,10 +21,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_MACHINE_COM8116_H +#define MAME_MACHINE_COM8116_H -#ifndef __COM8116__ -#define __COM8116__ +#pragma once @@ -55,15 +55,16 @@ public: // construction/destruction com8116_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_fx4_handler(device_t &device, _Object object) { return downcast(device).m_fx4_handler.set_callback(object); } - template static devcb_base &set_fr_handler(device_t &device, _Object object) { return downcast(device).m_fr_handler.set_callback(object); } - template static devcb_base &set_ft_handler(device_t &device, _Object object) { return downcast(device).m_ft_handler.set_callback(object); } + template static devcb_base &set_fx4_handler(device_t &device, Object &&cb) { return downcast(device).m_fx4_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_fr_handler(device_t &device, Object &&cb) { return downcast(device).m_fr_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_ft_handler(device_t &device, Object &&cb) { return downcast(device).m_ft_handler.set_callback(std::forward(cb)); } void str_w(uint8_t data); DECLARE_WRITE8_MEMBER( str_w ); void stt_w(uint8_t data); DECLARE_WRITE8_MEMBER( stt_w ); +protected: static const int divisors_16X_5_0688MHz[]; static const int divisors_16X_6_01835MHz[]; static const int divisors_16X_4_9152MHz[]; @@ -74,7 +75,6 @@ public: static const int divisors_16X_4_9152MHz_SY2661_1[]; static const int divisors_16X_4_9152MHz_SY2661_2[]; -protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -107,6 +107,6 @@ private: // device type definition -extern const device_type COM8116; +DECLARE_DEVICE_TYPE(COM8116, com8116_device) -#endif +#endif // MAME_MACHINE_COM8116_H diff --git a/src/devices/machine/corvushd.cpp b/src/devices/machine/corvushd.cpp index fa64568ce37..38ae9a45e82 100644 --- a/src/devices/machine/corvushd.cpp +++ b/src/devices/machine/corvushd.cpp @@ -65,15 +65,166 @@ // #include "emu.h" -#include "imagedev/harddriv.h" #include "machine/corvushd.h" -#include -const device_type CORVUS_HDC = device_creator; - -corvus_hdc_t::corvus_hdc_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, CORVUS_HDC, "Corvus Flat Cable HDC", tag, owner, clock, "corvus_hdc", __FILE__), +// +// Controller Commands +// + +// Read/Write Commands + +#define READ_SECTOR_256 0x02 +#define WRITE_SECTOR_256 0x03 +#define READ_CHUNK_128 0x12 +#define READ_CHUNK_256 0x22 +#define READ_CHUNK_512 0x32 +#define WRITE_CHUNK_128 0x13 +#define WRITE_CHUNK_256 0x23 +#define WRITE_CHUNK_512 0x33 + +// Semaphore Commands + +#define SEMAPHORE_LOCK_CODE 0x0b +#define SEMAPHORE_LOCK_MOD 0x01 +#define SEMAPHORE_UNLOCK_CODE 0x0b +#define SEMAPHORE_UNLOCK_MOD 0x11 +#define SEMAPHORE_INIT_CODE 0x1a +#define SEMAPHORE_INIT_MOD 0x10 +#define SEMAPHORE_STATUS_CODE 0x1a +#define SEMAPHORE_STATUS_MOD 0x41 + +// Pipe Commands + +#define PIPE_READ_CODE 0x1a +#define PIPE_READ_MOD 0x20 +#define PIPE_WRITE_CODE 0x1a +#define PIPE_WRITE_MOD 0x21 +#define PIPE_CLOSE_CODE 0x1a +#define PIPE_CLOSE_MOD 0x40 +#define PIPE_STATUS_CODE 0x1a +#define PIPE_STATUS_MOD 0x41 +#define PIPE_OPEN_WRITE_CODE 0x1b +#define PIPE_OPEN_WRITE_MOD 0x80 +#define PIPE_AREA_INIT_CODE 0x1b +#define PIPE_AREA_INIT_MOD 0xa0 +#define PIPE_OPEN_READ_CODE 0x1b +#define PIPE_OPEN_READ_MOD 0xc0 + +// Active User Table Commands + +#define ADDACTIVE_CODE 0x34 +#define ADDACTIVE_MOD 0x03 +#define DELACTIVEUSR_REVBH_CODE 0x34 +#define DELACTIVEUSR_REVBH_MOD 0x00 +#define DELACTIVENUM_OMNI_CODE 0x34 +#define DELACTIVENUM_OMNI_MOD 0x00 +#define DELACTIVEUSR_OMNI_CODE 0x34 +#define DELACTIVEUSR_OMNI_MOD 0x31 +#define FINDACTIVE_CODE 0x34 +#define FINDACTIVE_MOD 0x05 +#define READTEMPBLOCK 0xc4 +#define WRITETEMPBLOCK 0xb4 + +// Miscellaneous Commands + +#define BOOT 0x14 +#define READ_BOOT_BLOCK 0x44 +#define GET_DRIVE_PARAMETERS 0x10 +#define PARK_HEADS_REVH 0x11 +#define PARK_HEADS_OMNI 0x80 +#define ECHO 0xf4 + +// Put drive in Prep Mode + +#define PREP_MODE_SELECT 0x11 + +// Prep Mode Commands + +#define PREP_RESET_DRIVE 0x00 +#define PREP_FORMAT_DRIVE 0x01 +#define PREP_FILL_DRIVE_OMNI 0x81 +#define PREP_VERIFY 0x07 +#define PREP_READ_FIRMWARE 0x32 +#define PREP_WRITE_FIRMWARE 0x33 + +// +// Controller Status Codes +// + +// Disk status codes + +#define STAT_SUCCESS 0x00 + +#define STAT_HEADER_FAULT 0x00 +#define STAT_SEEK_TIMEOUT 0x01 +#define STAT_SEEK_FAULT 0x02 +#define STAT_SEEK_ERROR 0x03 +#define STAT_HEADER_CRC_ERROR 0x04 +#define STAT_REZERO_FAULT 0x05 +#define STAT_REZERO_TIMEOUT 0x06 +#define STAT_DRIVE_NOT_ONLINE 0x07 +#define STAT_WRITE_FAULT 0x08 +#define STAT_NOT_USED 0x09 +#define STAT_READ_DATA_FAULT 0x0a +#define STAT_DATA_CRC_ERROR 0x0b +#define STAT_SECTOR_LOCATE_ERR 0x0c +#define STAT_WRITE_PROTECTED 0x0d +#define STAT_ILL_SECTOR_ADDRESS 0x0e +#define STAT_ILL_CMD_OP_CODE 0x0f +#define STAT_DRIVE_NOT_ACK 0x10 +#define STAT_ACK_STUCK_ACTIVE 0x11 +#define STAT_TIMEOUT 0x12 +#define STAT_FAULT 0x13 +#define STAT_CRC 0x14 +#define STAT_SEEK 0x15 +#define STAT_VERIFICATION 0x16 +#define STAT_SPEED_ERROR 0x17 +#define STAT_ILL_ADDRESS 0x18 +#define STAT_RW_FAULT_ERROR 0x19 +#define STAT_SERVO_ERROR 0x1a +#define STAT_GUARD_BAND 0x1b +#define STAT_PLO_ERROR 0x1c +#define STAT_RW_UNSAFE 0x1d + +// Disk status modifiers (added to status code) + +#define STAT_RECOVERABLE_ERR 0x20 +#define STAT_VERIFY_ERR 0x40 +#define STAT_FATAL_ERR 0x80 + +// Semaphore status codes + +#define SEM_PRIOR_STATE_NOT_SET 0x00 +#define SEM_PRIOR_STATE_SET 0x80 +#define SEM_TABLE_FULL 0xfd +#define SEM_DISK_ERROR 0xfe + +// Pipe Status codes + +#define PIPE_REQ_SUCCESSFUL 0x00 +#define PIPE_EMPTY_PIPE_READ 0x08 +#define PIPE_NOT_OPEN 0x09 +#define PIPE_WRITE_TO_FULL_PIPE 0x0a +#define PIPE_OPEN_OPEN_PIPE 0x0b +#define PIPE_PIPE_NOT_EXIST 0x0c +#define PIPE_NO_ROOM_FOR_NEW 0x0d +#define PIPE_ILLEGAL_COMMAND 0x0e +#define PIPE_AREA_NOT_INIT 0x0f + +// Pipe State codes + +#define PIPE_OPEN_WRITE_EMPTY 0x01 +#define PIPE_OPEN_READ_EMPTY 0x02 +#define PIPE_NOT_OPEN_FULL 0x80 +#define PIPE_OPEN_WRITE_FULL 0x81 +#define PIPE_OPEN_READ_FULL 0x82 + + +DEFINE_DEVICE_TYPE(CORVUS_HDC, corvus_hdc_device, "corvus_hdc", "Corvus Flat Cable HDC") + +corvus_hdc_device::corvus_hdc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, CORVUS_HDC, tag, owner, clock), m_status(0), m_prep_mode(false), m_prep_drv(0), @@ -120,7 +271,7 @@ corvus_hdc_t::corvus_hdc_t(const machine_config &mconfig, const char *tag, devic // Returns: // nada // -void corvus_hdc_t::dump_buffer(uint8_t *buffer, uint16_t length) { +void corvus_hdc_device::dump_buffer(uint8_t *buffer, uint16_t length) { uint16_t offset; char ascii_dump[16]; @@ -160,7 +311,7 @@ void corvus_hdc_t::dump_buffer(uint8_t *buffer, uint16_t length) { // Returns: // Whether the command was invalid or not (true = invalid command) // -bool corvus_hdc_t::parse_hdc_command(uint8_t data) { +bool corvus_hdc_device::parse_hdc_command(uint8_t data) { m_awaiting_modifier = false; // This is the case by definition LOG(("parse_hdc_command: Called with data: 0x%2.2x, Prep mode is: %d\n", data, m_prep_mode)); @@ -266,7 +417,7 @@ bool corvus_hdc_t::parse_hdc_command(uint8_t data) { // Returns: // status: Command status // -uint8_t corvus_hdc_t::corvus_write_sector(uint8_t drv, uint32_t sector, uint8_t *buffer, int len) { +uint8_t corvus_hdc_device::corvus_write_sector(uint8_t drv, uint32_t sector, uint8_t *buffer, int len) { hard_disk_file *disk; // Structures for interface to CHD routines uint8_t tbuffer[512]; // Buffer to hold an entire sector @@ -324,7 +475,7 @@ uint8_t corvus_hdc_t::corvus_write_sector(uint8_t drv, uint32_t sector, uint8_t // Returns: // status: Corvus status // -uint8_t corvus_hdc_t::corvus_write_logical_sector(dadr_t *dadr, uint8_t *buffer, int len) { +uint8_t corvus_hdc_device::corvus_write_logical_sector(dadr_t *dadr, uint8_t *buffer, int len) { uint8_t status; // Status returned from Physical Sector read uint8_t drv; // Corvus drive id (1..15) uint32_t sector; // Sector number on drive @@ -374,7 +525,7 @@ uint8_t corvus_hdc_t::corvus_write_logical_sector(dadr_t *dadr, uint8_t *buffer, // Returns: // status: Corvus status // -uint8_t corvus_hdc_t::corvus_read_sector(uint8_t drv, uint32_t sector, uint8_t *buffer, int len) { +uint8_t corvus_hdc_device::corvus_read_sector(uint8_t drv, uint32_t sector, uint8_t *buffer, int len) { hard_disk_file *disk; // Structures for interface to CHD routines uint8_t tbuffer[512]; // Buffer to store full sector results in @@ -421,7 +572,7 @@ uint8_t corvus_hdc_t::corvus_read_sector(uint8_t drv, uint32_t sector, uint8_t * // Returns: // status: Corvus status // -uint8_t corvus_hdc_t::corvus_read_logical_sector(dadr_t *dadr, uint8_t *buffer, int len) { +uint8_t corvus_hdc_device::corvus_read_logical_sector(dadr_t *dadr, uint8_t *buffer, int len) { uint8_t status; // Status returned from Physical Sector read uint8_t drv; // Corvus drive id (1..15) uint32_t sector; // Sector number on drive @@ -472,7 +623,7 @@ uint8_t corvus_hdc_t::corvus_read_logical_sector(dadr_t *dadr, uint8_t *buffer, // Side-effects: // Fills in the semaphore result code // -uint8_t corvus_hdc_t::corvus_lock_semaphore(uint8_t *name) { +uint8_t corvus_hdc_device::corvus_lock_semaphore(uint8_t *name) { semaphore_table_block_t semaphore_table; uint8_t offset = 0; @@ -547,7 +698,7 @@ uint8_t corvus_hdc_t::corvus_lock_semaphore(uint8_t *name) { // Side-effects: // Fills in the semaphore result code // -uint8_t corvus_hdc_t::corvus_unlock_semaphore(uint8_t *name) { +uint8_t corvus_hdc_device::corvus_unlock_semaphore(uint8_t *name) { semaphore_table_block_t semaphore_table; uint8_t offset = 0; @@ -612,7 +763,7 @@ uint8_t corvus_hdc_t::corvus_unlock_semaphore(uint8_t *name) { // Disk status // // -uint8_t corvus_hdc_t::corvus_init_semaphore_table() { +uint8_t corvus_hdc_device::corvus_init_semaphore_table() { semaphore_table_block_t semaphore_table; uint8_t status; @@ -641,7 +792,7 @@ uint8_t corvus_hdc_t::corvus_init_semaphore_table() { // Returns: // Status of command // -uint8_t corvus_hdc_t::corvus_get_drive_parameters(uint8_t drv) { +uint8_t corvus_hdc_device::corvus_get_drive_parameters(uint8_t drv) { uint16_t capacity; // Number of usable 512-byte blocks uint16_t raw_capacity; // Number of actual 512-byte blocks union { @@ -755,7 +906,7 @@ uint8_t corvus_hdc_t::corvus_get_drive_parameters(uint8_t drv) { // Returns: // status: Status of read operation // -uint8_t corvus_hdc_t::corvus_read_boot_block(uint8_t block) { +uint8_t corvus_hdc_device::corvus_read_boot_block(uint8_t block) { LOG(("corvus_read_boot_block: Reading boot block: %d\n", block)); return corvus_read_sector(1, 25 + block, m_buffer.read_512_response.data, 512); @@ -792,7 +943,7 @@ uint8_t corvus_hdc_t::corvus_read_boot_block(uint8_t block) { // Returns: // Status of command // -uint8_t corvus_hdc_t::corvus_enter_prep_mode(uint8_t drv, uint8_t *prep_block) { +uint8_t corvus_hdc_device::corvus_enter_prep_mode(uint8_t drv, uint8_t *prep_block) { // on rev b/h drives, sending the "put drive into prep mode" // command when already in prep mode is an error. if (m_prep_mode) { @@ -824,7 +975,7 @@ uint8_t corvus_hdc_t::corvus_enter_prep_mode(uint8_t drv, uint8_t *prep_block) { // Returns: // Status of command (always success) // -uint8_t corvus_hdc_t::corvus_exit_prep_mode() { +uint8_t corvus_hdc_device::corvus_exit_prep_mode() { LOG(("corvus_exit_prep_mode: Prep mode exited\n")); m_prep_mode = false; m_prep_drv = 0; @@ -845,7 +996,7 @@ uint8_t corvus_hdc_t::corvus_exit_prep_mode() { // Returns: // Status of command // -uint8_t corvus_hdc_t::corvus_read_firmware_block(uint8_t head, uint8_t sector) { +uint8_t corvus_hdc_device::corvus_read_firmware_block(uint8_t head, uint8_t sector) { uint16_t relative_sector; // Relative sector on drive for Physical Read uint8_t status; @@ -873,7 +1024,7 @@ uint8_t corvus_hdc_t::corvus_read_firmware_block(uint8_t head, uint8_t sector) { // Returns: // Status of command // -uint8_t corvus_hdc_t::corvus_write_firmware_block(uint8_t head, uint8_t sector, uint8_t *buffer) { +uint8_t corvus_hdc_device::corvus_write_firmware_block(uint8_t head, uint8_t sector, uint8_t *buffer) { uint16_t relative_sector; // Relative sector on drive for Physical Write uint8_t status; @@ -899,7 +1050,7 @@ uint8_t corvus_hdc_t::corvus_write_firmware_block(uint8_t head, uint8_t sector, // Returns: // Status of command // -uint8_t corvus_hdc_t::corvus_format_drive(uint8_t *pattern, uint16_t len) { +uint8_t corvus_hdc_device::corvus_format_drive(uint8_t *pattern, uint16_t len) { uint32_t sector; uint32_t max_sector; uint8_t status = 0; @@ -946,7 +1097,7 @@ uint8_t corvus_hdc_t::corvus_format_drive(uint8_t *pattern, uint16_t len) { // Returns: // hard_disk_file object // -hard_disk_file *corvus_hdc_t::corvus_hdc_file(int drv) { +hard_disk_file *corvus_hdc_device::corvus_hdc_file(int drv) { static const char *const tags[] = { "harddisk1", "harddisk2", "harddisk3", "harddisk4" }; @@ -991,7 +1142,7 @@ hard_disk_file *corvus_hdc_t::corvus_hdc_file(int drv) { // Returns: // Nothing // -void corvus_hdc_t::corvus_process_command_packet(bool invalid_command_flag) { +void corvus_hdc_device::corvus_process_command_packet(bool invalid_command_flag) { if (VERBOSE_RESPONSES) { LOG(("corvus_hdc_data_w: Complete packet received. Dump follows:\n")); @@ -1166,7 +1317,7 @@ void corvus_hdc_t::corvus_process_command_packet(bool invalid_command_flag) { // Returns: // Nothing // -void corvus_hdc_t::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) +void corvus_hdc_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) { int function = param; @@ -1224,7 +1375,7 @@ void corvus_hdc_t::device_timer(emu_timer &timer, device_timer_id id, int param, // Returns: // nullptr if there's no file to attach to // -void corvus_hdc_t::device_start() { +void corvus_hdc_device::device_start() { m_status &= ~(CONTROLLER_DIRECTION | CONTROLLER_BUSY); // Host-to-controller mode, Idle (awaiting command from Host mode) m_prep_mode = false; // We're not in Prep Mode m_offset = 0; // Buffer is empty @@ -1351,7 +1502,7 @@ void corvus_hdc_t::device_start() { // Returns: // Value in the controller status register // -READ8_MEMBER ( corvus_hdc_t::status_r ) { +READ8_MEMBER ( corvus_hdc_device::status_r ) { return m_status; } @@ -1370,7 +1521,7 @@ READ8_MEMBER ( corvus_hdc_t::status_r ) { // Returns: // Value in the controller data register // -READ8_MEMBER ( corvus_hdc_t::read ) { +READ8_MEMBER ( corvus_hdc_device::read ) { uint8_t result; if((m_status & CONTROLLER_DIRECTION) == 0) { // Check to see if we're in Controller-to-Host mode @@ -1418,7 +1569,7 @@ READ8_MEMBER ( corvus_hdc_t::read ) { // Returns: // Nothing // -WRITE8_MEMBER ( corvus_hdc_t::write ) { +WRITE8_MEMBER ( corvus_hdc_device::write ) { // // Received a byte -- check to see if we should really respond // diff --git a/src/devices/machine/corvushd.h b/src/devices/machine/corvushd.h index 129cbfcf3e9..22a8c4a1f10 100644 --- a/src/devices/machine/corvushd.h +++ b/src/devices/machine/corvushd.h @@ -12,176 +12,23 @@ * ****************************************************************************/ -#ifndef CORVUSHD_H_ -#define CORVUSHD_H_ +#ifndef MAME_MACHINE_CORVUSHD_H +#define MAME_MACHINE_CORVUSHD_H + +#pragma once #include "imagedev/harddriv.h" #include -// -// Controller Commands -// - -// Read/Write Commands - -#define READ_SECTOR_256 0x02 -#define WRITE_SECTOR_256 0x03 -#define READ_CHUNK_128 0x12 -#define READ_CHUNK_256 0x22 -#define READ_CHUNK_512 0x32 -#define WRITE_CHUNK_128 0x13 -#define WRITE_CHUNK_256 0x23 -#define WRITE_CHUNK_512 0x33 - -// Semaphore Commands - -#define SEMAPHORE_LOCK_CODE 0x0b -#define SEMAPHORE_LOCK_MOD 0x01 -#define SEMAPHORE_UNLOCK_CODE 0x0b -#define SEMAPHORE_UNLOCK_MOD 0x11 -#define SEMAPHORE_INIT_CODE 0x1a -#define SEMAPHORE_INIT_MOD 0x10 -#define SEMAPHORE_STATUS_CODE 0x1a -#define SEMAPHORE_STATUS_MOD 0x41 - -// Pipe Commands - -#define PIPE_READ_CODE 0x1a -#define PIPE_READ_MOD 0x20 -#define PIPE_WRITE_CODE 0x1a -#define PIPE_WRITE_MOD 0x21 -#define PIPE_CLOSE_CODE 0x1a -#define PIPE_CLOSE_MOD 0x40 -#define PIPE_STATUS_CODE 0x1a -#define PIPE_STATUS_MOD 0x41 -#define PIPE_OPEN_WRITE_CODE 0x1b -#define PIPE_OPEN_WRITE_MOD 0x80 -#define PIPE_AREA_INIT_CODE 0x1b -#define PIPE_AREA_INIT_MOD 0xa0 -#define PIPE_OPEN_READ_CODE 0x1b -#define PIPE_OPEN_READ_MOD 0xc0 - -// Active User Table Commands - -#define ADDACTIVE_CODE 0x34 -#define ADDACTIVE_MOD 0x03 -#define DELACTIVEUSR_REVBH_CODE 0x34 -#define DELACTIVEUSR_REVBH_MOD 0x00 -#define DELACTIVENUM_OMNI_CODE 0x34 -#define DELACTIVENUM_OMNI_MOD 0x00 -#define DELACTIVEUSR_OMNI_CODE 0x34 -#define DELACTIVEUSR_OMNI_MOD 0x31 -#define FINDACTIVE_CODE 0x34 -#define FINDACTIVE_MOD 0x05 -#define READTEMPBLOCK 0xc4 -#define WRITETEMPBLOCK 0xb4 - -// Miscellaneous Commands - -#define BOOT 0x14 -#define READ_BOOT_BLOCK 0x44 -#define GET_DRIVE_PARAMETERS 0x10 -#define PARK_HEADS_REVH 0x11 -#define PARK_HEADS_OMNI 0x80 -#define ECHO 0xf4 - -// Put drive in Prep Mode - -#define PREP_MODE_SELECT 0x11 - -// Prep Mode Commands - -#define PREP_RESET_DRIVE 0x00 -#define PREP_FORMAT_DRIVE 0x01 -#define PREP_FILL_DRIVE_OMNI 0x81 -#define PREP_VERIFY 0x07 -#define PREP_READ_FIRMWARE 0x32 -#define PREP_WRITE_FIRMWARE 0x33 - -// -// Controller Status Codes -// - -// Disk status codes - -#define STAT_SUCCESS 0x00 - -#define STAT_HEADER_FAULT 0x00 -#define STAT_SEEK_TIMEOUT 0x01 -#define STAT_SEEK_FAULT 0x02 -#define STAT_SEEK_ERROR 0x03 -#define STAT_HEADER_CRC_ERROR 0x04 -#define STAT_REZERO_FAULT 0x05 -#define STAT_REZERO_TIMEOUT 0x06 -#define STAT_DRIVE_NOT_ONLINE 0x07 -#define STAT_WRITE_FAULT 0x08 -#define STAT_NOT_USED 0x09 -#define STAT_READ_DATA_FAULT 0x0a -#define STAT_DATA_CRC_ERROR 0x0b -#define STAT_SECTOR_LOCATE_ERR 0x0c -#define STAT_WRITE_PROTECTED 0x0d -#define STAT_ILL_SECTOR_ADDRESS 0x0e -#define STAT_ILL_CMD_OP_CODE 0x0f -#define STAT_DRIVE_NOT_ACK 0x10 -#define STAT_ACK_STUCK_ACTIVE 0x11 -#define STAT_TIMEOUT 0x12 -#define STAT_FAULT 0x13 -#define STAT_CRC 0x14 -#define STAT_SEEK 0x15 -#define STAT_VERIFICATION 0x16 -#define STAT_SPEED_ERROR 0x17 -#define STAT_ILL_ADDRESS 0x18 -#define STAT_RW_FAULT_ERROR 0x19 -#define STAT_SERVO_ERROR 0x1a -#define STAT_GUARD_BAND 0x1b -#define STAT_PLO_ERROR 0x1c -#define STAT_RW_UNSAFE 0x1d - -// Disk status modifiers (added to status code) - -#define STAT_RECOVERABLE_ERR 0x20 -#define STAT_VERIFY_ERR 0x40 -#define STAT_FATAL_ERR 0x80 - -// Semaphore status codes - -#define SEM_PRIOR_STATE_NOT_SET 0x00 -#define SEM_PRIOR_STATE_SET 0x80 -#define SEM_TABLE_FULL 0xfd -#define SEM_DISK_ERROR 0xfe - -// Pipe Status codes - -#define PIPE_REQ_SUCCESSFUL 0x00 -#define PIPE_EMPTY_PIPE_READ 0x08 -#define PIPE_NOT_OPEN 0x09 -#define PIPE_WRITE_TO_FULL_PIPE 0x0a -#define PIPE_OPEN_OPEN_PIPE 0x0b -#define PIPE_PIPE_NOT_EXIST 0x0c -#define PIPE_NO_ROOM_FOR_NEW 0x0d -#define PIPE_ILLEGAL_COMMAND 0x0e -#define PIPE_AREA_NOT_INIT 0x0f - -// Pipe State codes - -#define PIPE_OPEN_WRITE_EMPTY 0x01 -#define PIPE_OPEN_READ_EMPTY 0x02 -#define PIPE_NOT_OPEN_FULL 0x80 -#define PIPE_OPEN_WRITE_FULL 0x81 -#define PIPE_OPEN_READ_FULL 0x82 - -// Status Register Bits - -#define CONTROLLER_BUSY 0x80 // Set = Busy, Clear = Ready -#define CONTROLLER_DIRECTION 0x40 // Set = Controller->Host, Clear = Host->Controller - -#define MAX_COMMAND_SIZE 4096 // The maximum size of a command packet (the controller only has 5K of RAM...) - -class corvus_hdc_t : public device_t +class corvus_hdc_device : public device_t { public: + // Status Register Bits + static constexpr uint8_t CONTROLLER_BUSY = 0x80; // Set = Busy, Clear = Ready + static constexpr uint8_t CONTROLLER_DIRECTION = 0x40; // Set = Controller->Host, Clear = Host->Controller + // construction/destruction - corvus_hdc_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + corvus_hdc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); DECLARE_READ8_MEMBER( read ); DECLARE_WRITE8_MEMBER( write ); @@ -193,6 +40,8 @@ protected: virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; private: + static constexpr unsigned MAX_COMMAND_SIZE = 4096; // The maximum size of a command packet (the controller only has 5K of RAM...) + enum { TIMER_TIMEOUT, @@ -526,4 +375,4 @@ private: // device type definition extern const device_type CORVUS_HDC; -#endif /* CORVUSHD_H_ */ +#endif // MAME_MACHINE_CORVUSHD_H diff --git a/src/devices/machine/cr511b.cpp b/src/devices/machine/cr511b.cpp index 11b084a3b7b..ef5b39b13b4 100644 --- a/src/devices/machine/cr511b.cpp +++ b/src/devices/machine/cr511b.cpp @@ -17,7 +17,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type CR511B = device_creator; +DEFINE_DEVICE_TYPE(CR511B, cr511b_device, "cr511b", "CR-511-B CD-ROM drive") //------------------------------------------------- // machine_config_additions - device-specific @@ -47,7 +47,7 @@ machine_config_constructor cr511b_device::device_mconfig_additions() const //------------------------------------------------- cr511b_device::cr511b_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, CR511B, "CR-511-B CD-ROM drive", tag, owner, clock, "cr511b", __FILE__), + device_t(mconfig, CR511B, tag, owner, clock), m_cdrom(*this, "cdrom"), m_cdda(*this, "cdda"), m_stch_handler(*this), diff --git a/src/devices/machine/cr511b.h b/src/devices/machine/cr511b.h index 90119d70b82..546dcf51266 100644 --- a/src/devices/machine/cr511b.h +++ b/src/devices/machine/cr511b.h @@ -30,10 +30,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_MACHINE_CR511B_H +#define MAME_MACHINE_CR511B_H -#ifndef __CR511B_H__ -#define __CR511B_H__ +#pragma once #include "imagedev/chd_cd.h" #include "sound/cdda.h" @@ -77,23 +77,23 @@ public: cr511b_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // callbacks - template static devcb_base &set_stch_handler(device_t &device, _Object object) - { return downcast(device).m_stch_handler.set_callback(object); } + template static devcb_base &set_stch_handler(device_t &device, Object &&cb) + { return downcast(device).m_stch_handler.set_callback(std::forward(cb)); } - template static devcb_base &set_sten_handler(device_t &device, _Object object) - { return downcast(device).m_sten_handler.set_callback(object); } + template static devcb_base &set_sten_handler(device_t &device, Object &&cb) + { return downcast(device).m_sten_handler.set_callback(std::forward(cb)); } - template static devcb_base &set_drq_handler(device_t &device, _Object object) - { return downcast(device).m_drq_handler.set_callback(object); } + template static devcb_base &set_drq_handler(device_t &device, Object &&cb) + { return downcast(device).m_drq_handler.set_callback(std::forward(cb)); } - template static devcb_base &set_dten_handler(device_t &device, _Object object) - { return downcast(device).m_dten_handler.set_callback(object); } + template static devcb_base &set_dten_handler(device_t &device, Object &&cb) + { return downcast(device).m_dten_handler.set_callback(std::forward(cb)); } - template static devcb_base &set_scor_handler(device_t &device, _Object object) - { return downcast(device).m_scor_handler.set_callback(object); } + template static devcb_base &set_scor_handler(device_t &device, Object &&cb) + { return downcast(device).m_scor_handler.set_callback(std::forward(cb)); } - template static devcb_base &set_xaen_handler(device_t &device, _Object object) - { return downcast(device).m_xaen_handler.set_callback(object); } + template static devcb_base &set_xaen_handler(device_t &device, Object &&cb) + { return downcast(device).m_xaen_handler.set_callback(std::forward(cb)); } DECLARE_READ8_MEMBER( read ); DECLARE_WRITE8_MEMBER ( write ); @@ -144,6 +144,6 @@ private: }; // device type definition -extern const device_type CR511B; +DECLARE_DEVICE_TYPE(CR511B, cr511b_device) -#endif +#endif // MAME_MACHINE_CR511B_H diff --git a/src/devices/machine/cr589.cpp b/src/devices/machine/cr589.cpp index 99f90c257ce..6142f75ee7a 100644 --- a/src/devices/machine/cr589.cpp +++ b/src/devices/machine/cr589.cpp @@ -4,8 +4,8 @@ #include "cr589.h" -static const int identity_offset = 0x3ab; -static const char download_identity[] = "MATSHITA CD98Q4 DOWNLOADGS0N"; +static constexpr int identity_offset = 0x3ab; +static constexpr char download_identity[] = "MATSHITA CD98Q4 DOWNLOADGS0N"; //------------------------------------------------- // nvram_default - called to initialize NVRAM to @@ -138,10 +138,10 @@ void matsushita_cr589_device::WriteData( uint8_t *data, int dataLength ) } // device type definition -const device_type CR589 = device_creator; +DEFINE_DEVICE_TYPE(CR589, matsushita_cr589_device, "cr589", "Matsushita CR589 CD-ROM Drive") matsushita_cr589_device::matsushita_cr589_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - atapi_cdrom_device(mconfig, CR589, "Matsushita CR589 CD-ROM Drive", tag, owner, clock, "cr589", __FILE__), + atapi_cdrom_device(mconfig, CR589, tag, owner, clock), device_nvram_interface(mconfig, *this) { } diff --git a/src/devices/machine/cr589.h b/src/devices/machine/cr589.h index b35537b305b..8d94d5739b9 100644 --- a/src/devices/machine/cr589.h +++ b/src/devices/machine/cr589.h @@ -8,13 +8,12 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_MACHINE_CR589_H +#define MAME_MACHINE_CR589_H -#ifndef __CR589_H__ -#define __CR589_H__ +#pragma once #include "atapicdr.h" -#include "t10mmc.h" class matsushita_cr589_device : public atapi_cdrom_device, public device_nvram_interface @@ -45,6 +44,6 @@ private: }; // device type definition -extern const device_type CR589; +DECLARE_DEVICE_TYPE(CR589, matsushita_cr589_device) -#endif +#endif // MAME_MACHINE_CR589_H diff --git a/src/devices/machine/cs4031.cpp b/src/devices/machine/cs4031.cpp index 40cbb94ddbb..84b331c05bd 100644 --- a/src/devices/machine/cs4031.cpp +++ b/src/devices/machine/cs4031.cpp @@ -26,27 +26,32 @@ ***************************************************************************/ #include "emu.h" -#include "machine/ram.h" #include "machine/cs4031.h" +#include "machine/ram.h" -//************************************************************************** -// MACROS/CONSTANTS -//************************************************************************** +#define LOG_GENERAL (1U << 0) +#define LOG_REGISTER (1U << 1) +#define LOG_MEMORY (1U << 2) +#define LOG_IO (1U << 3) +#define LOG_KEYBOARD (1U << 4) + +#define VERBOSE (LOG_REGISTER | LOG_MEMORY | LOG_IO /*| LOG_KEYBOARD*/) +#include "logmacro.h" -#define LOG_REGISTER 1 -#define LOG_MEMORY 1 -#define LOG_IO 1 -#define LOG_KEYBOARD 0 +#define LOGREGISTER(...) LOGMASKED(LOG_REGISTER, __VA_ARGS__) +#define LOGMEMORY(...) LOGMASKED(LOG_MEMORY, __VA_ARGS__) +#define LOGIO(...) LOGMASKED(LOG_IO, __VA_ARGS__) +#define LOGKEYBOARD(...) LOGMASKED(LOG_KEYBOARD, __VA_ARGS__) //************************************************************************** // DEVICE DEFINITIONS //************************************************************************** -const device_type CS4031 = device_creator; +DEFINE_DEVICE_TYPE(CS4031, cs4031_device, "cs4031", "CS4031") -const char* cs4031_device::m_register_names[] = +const char* const cs4031_device::m_register_names[] = { /* 00 */ "RESERVED", /* 01 */ "DMA WAIT STATE CONTROL", @@ -155,7 +160,7 @@ machine_config_constructor cs4031_device::device_mconfig_additions() const //------------------------------------------------- cs4031_device::cs4031_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, CS4031, "CS4031", tag, owner, clock, "cs4031", __FILE__), + device_t(mconfig, CS4031, tag, owner, clock), m_read_ior(*this), m_write_iow(*this), m_write_tc(*this), @@ -458,8 +463,7 @@ WRITE_LINE_MEMBER( cs4031_device::rtc_irq_w ) WRITE_LINE_MEMBER( cs4031_device::iochck_w ) { - if (LOG_IO) - logerror("cs4031_device::iochck_w: %u\n", state); + LOGIO("cs4031_device::iochck_w: %u\n", state); if (BIT(m_portb, 3) == 0) { @@ -508,8 +512,7 @@ READ8_MEMBER( cs4031_device::config_data_r ) if (m_address_valid) { - if (LOG_REGISTER) - logerror("cs4031_device: read %s = %02x\n", m_register_names[m_address], m_registers[m_address]); + LOGREGISTER("cs4031_device: read %s = %02x\n", m_register_names[m_address], m_registers[m_address]); result = m_registers[m_address]; } @@ -524,8 +527,7 @@ WRITE8_MEMBER( cs4031_device::config_data_w ) { if (m_address_valid) { - if (LOG_REGISTER) - logerror("cs4031_device: write %s = %02x\n", m_register_names[m_address], data); + LOGREGISTER("cs4031_device: write %s = %02x\n", m_register_names[m_address], data); // update register with new data m_registers[m_address] = data; @@ -589,32 +591,28 @@ void cs4031_device::update_read_region(int index, const char *region, offs_t sta { if (!BIT(m_registers[SHADOW_READ], index) && BIT(m_registers[ROMCS], index)) { - if (LOG_MEMORY) - logerror("ROM read from %x to %x\n", start, end); + LOGMEMORY("ROM read from %x to %x\n", start, end); m_space->install_read_bank(start, end, region); machine().root_device().membank(region)->set_base(m_bios + start); } else if (!BIT(m_registers[SHADOW_READ], index) && !BIT(m_registers[ROMCS], index)) { - if (LOG_MEMORY) - logerror("ISA read from %x to %x\n", start, end); + LOGMEMORY("ISA read from %x to %x\n", start, end); m_space->install_read_bank(start, end, region); machine().root_device().membank(region)->set_base(m_isa + start - 0xc0000); } else if (BIT(m_registers[SHADOW_READ], index)) { - if (LOG_MEMORY) - logerror("RAM read from %x to %x\n", start, end); + LOGMEMORY("RAM read from %x to %x\n", start, end); m_space->install_read_bank(start, end, region); machine().root_device().membank(region)->set_base(m_ram + start); } else { - if (LOG_MEMORY) - logerror("NOP read from %x to %x\n", start, end); + LOGMEMORY("NOP read from %x to %x\n", start, end); m_space->nop_read(start, end); } @@ -624,32 +622,28 @@ void cs4031_device::update_write_region(int index, const char *region, offs_t st { if (!BIT(m_registers[SHADOW_WRITE], index) && BIT(m_registers[ROMCS], index) && BIT(m_registers[ROMCS], 7)) { - if (LOG_MEMORY) - logerror("ROM write from %x to %x\n", start, end); + LOGMEMORY("ROM write from %x to %x\n", start, end); m_space->install_write_bank(start, end, region); machine().root_device().membank(region)->set_base(m_bios + start); } else if (!BIT(m_registers[SHADOW_WRITE], index) && !BIT(m_registers[ROMCS], index)) { - if (LOG_MEMORY) - logerror("ISA write from %x to %x\n", start, end); + LOGMEMORY("ISA write from %x to %x\n", start, end); m_space->install_write_bank(start, end, region); machine().root_device().membank(region)->set_base(m_isa + start - 0xc0000); } else if (BIT(m_registers[SHADOW_WRITE], index)) { - if (LOG_MEMORY) - logerror("RAM write from %x to %x\n", start, end); + LOGMEMORY("RAM write from %x to %x\n", start, end); m_space->install_write_bank(start, end, region); machine().root_device().membank(region)->set_base(m_ram + start); } else { - if (LOG_MEMORY) - logerror("NOP write from %x to %x\n", start, end); + LOGMEMORY("NOP write from %x to %x\n", start, end); m_space->nop_write(start, end); } @@ -724,8 +718,7 @@ void cs4031_device::keyboard_gatea20(int state) READ8_MEMBER( cs4031_device::keyb_status_r ) { - if (LOG_KEYBOARD) - logerror("cs4031_device::keyb_status_r\n"); + LOGKEYBOARD("cs4031_device::keyb_status_r\n"); return m_keybc->status_r(space, 0); } @@ -739,8 +732,7 @@ WRITE8_MEMBER( cs4031_device::keyb_command_blocked_w ) WRITE8_MEMBER( cs4031_device::keyb_command_w ) { - if (LOG_KEYBOARD) - logerror("cs4031_device::keyb_command_w: %02x\n", data); + LOGKEYBOARD("cs4031_device::keyb_command_w: %02x\n", data); m_keybc_d1_written = false; @@ -811,16 +803,14 @@ WRITE8_MEMBER( cs4031_device::keyb_command_w ) READ8_MEMBER( cs4031_device::keyb_data_r ) { - if (LOG_KEYBOARD) - logerror("cs4031_device::keyb_data_r\n"); + LOGKEYBOARD("cs4031_device::keyb_data_r\n"); return m_keybc->data_r(space, 0); } WRITE8_MEMBER( cs4031_device::keyb_data_w ) { - if (LOG_KEYBOARD) - logerror("cs4031_device::keyb_data_w: %02x\n", data); + LOGKEYBOARD("cs4031_device::keyb_data_w: %02x\n", data); // data is blocked only for d1 command if (BIT(m_registers[SOFT_RESET_AND_GATEA20], 7) && m_keybc_d1_written) @@ -838,16 +828,14 @@ WRITE8_MEMBER( cs4031_device::keyb_data_w ) WRITE_LINE_MEMBER( cs4031_device::gatea20_w ) { - if (LOG_KEYBOARD) - logerror("cs4031_device::gatea20_w: %u\n", state); + LOGKEYBOARD("cs4031_device::gatea20_w: %u\n", state); keyboard_gatea20(state); } WRITE_LINE_MEMBER( cs4031_device::kbrst_w ) { - if (LOG_KEYBOARD) - logerror("cs4031_device::kbrst_w: %u\n", state); + LOGKEYBOARD("cs4031_device::kbrst_w: %u\n", state); // convert to active low signal (gets inverted in at_keybc.c) state = (state == ASSERT_LINE ? 0 : 1); @@ -875,8 +863,7 @@ WRITE_LINE_MEMBER( cs4031_device::kbrst_w ) */ WRITE8_MEMBER( cs4031_device::sysctrl_w ) { - if (LOG_IO) - logerror("cs4031_device::sysctrl_w: %u\n", data); + LOGIO("cs4031_device::sysctrl_w: %u\n", data); fast_gatea20(BIT(data, 1)); @@ -897,8 +884,7 @@ READ8_MEMBER( cs4031_device::sysctrl_r ) result |= m_cpureset << 0; result |= m_fast_gatea20 << 1; - if (LOG_IO) - logerror("cs4031_device::sysctrl_r: %u\n", result); + LOGIO("cs4031_device::sysctrl_r: %u\n", result); return result; } diff --git a/src/devices/machine/cs4031.h b/src/devices/machine/cs4031.h index d57d14e0a0a..f3b43961c46 100644 --- a/src/devices/machine/cs4031.h +++ b/src/devices/machine/cs4031.h @@ -20,10 +20,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_MACHINE_CS4031_H +#define MAME_MACHINE_CS4031_H -#ifndef __CS4031_H__ -#define __CS4031_H__ +#pragma once #include "machine/am9517a.h" #include "machine/pic8259.h" @@ -87,15 +87,15 @@ public: virtual machine_config_constructor device_mconfig_additions() const override; // callbacks - template devcb_base &set_ior_callback(_ior ior) { return m_read_ior.set_callback(ior); } - template devcb_base &set_iow_callback(_iow iow) { return m_write_iow.set_callback(iow); } - template devcb_base &set_tc_callback(_tc tc) { return m_write_tc.set_callback(tc); } - template devcb_base &set_hold_callback(_hold hold) { return m_write_hold.set_callback(hold); } - template devcb_base &set_cpureset_callback(_cpureset cpureset) { return m_write_cpureset.set_callback(cpureset); } - template devcb_base &set_nmi_callback(_nmi nmi) { return m_write_nmi.set_callback(nmi); } - template devcb_base &set_intr_callback(_intr intr) { return m_write_intr.set_callback(intr); } - template devcb_base &set_a20m_callback(_a20m a20m) { return m_write_a20m.set_callback(a20m); } - template devcb_base &set_spkr_callback(_spkr spkr) { return m_write_spkr.set_callback(spkr); } + template devcb_base &set_ior_callback(Obj &&ior) { return m_read_ior.set_callback(std::forward(ior)); } + template devcb_base &set_iow_callback(Obj &&iow) { return m_write_iow.set_callback(std::forward(iow)); } + template devcb_base &set_tc_callback(Obj &&tc) { return m_write_tc.set_callback(std::forward(tc)); } + template devcb_base &set_hold_callback(Obj &&hold) { return m_write_hold.set_callback(std::forward(hold)); } + template devcb_base &set_cpureset_callback(Obj &&cpureset) { return m_write_cpureset.set_callback(std::forward(cpureset)); } + template devcb_base &set_nmi_callback(Obj &&nmi) { return m_write_nmi.set_callback(std::forward(nmi)); } + template devcb_base &set_intr_callback(Obj &&intr) { return m_write_intr.set_callback(std::forward(intr)); } + template devcb_base &set_a20m_callback(Obj &&a20m) { return m_write_a20m.set_callback(std::forward(a20m)); } + template devcb_base &set_spkr_callback(Obj &&spkr) { return m_write_spkr.set_callback(std::forward(spkr)); } // not really public DECLARE_READ8_MEMBER( dma_read_byte ); @@ -107,9 +107,9 @@ public: DECLARE_READ8_MEMBER( dma1_ior1_r ) { return m_read_ior(1); } DECLARE_READ8_MEMBER( dma1_ior2_r ) { return m_read_ior(2); } DECLARE_READ8_MEMBER( dma1_ior3_r ) { return m_read_ior(3); } - DECLARE_READ8_MEMBER( dma2_ior1_r ) { uint16_t result = m_read_ior(5); m_dma_high_byte = result >> 8; return result; } - DECLARE_READ8_MEMBER( dma2_ior2_r ) { uint16_t result = m_read_ior(6); m_dma_high_byte = result >> 8; return result; } - DECLARE_READ8_MEMBER( dma2_ior3_r ) { uint16_t result = m_read_ior(7); m_dma_high_byte = result >> 8; return result; } + DECLARE_READ8_MEMBER( dma2_ior1_r ) { uint16_t const result = m_read_ior(5); m_dma_high_byte = result >> 8; return result; } + DECLARE_READ8_MEMBER( dma2_ior2_r ) { uint16_t const result = m_read_ior(6); m_dma_high_byte = result >> 8; return result; } + DECLARE_READ8_MEMBER( dma2_ior3_r ) { uint16_t const result = m_read_ior(7); m_dma_high_byte = result >> 8; return result; } DECLARE_WRITE8_MEMBER( dma1_iow0_w ) { m_write_iow(0, data, 0xffff); } DECLARE_WRITE8_MEMBER( dma1_iow1_w ) { m_write_iow(1, data, 0xffff); } DECLARE_WRITE8_MEMBER( dma1_iow2_w ) { m_write_iow(2, data, 0xffff); } @@ -260,7 +260,7 @@ private: bool m_keybc_data_blocked; // chipset configuration - static const char* m_register_names[]; + static const char* const m_register_names[]; static const float m_dma_clock_divider[]; enum @@ -283,7 +283,6 @@ private: // device type definition -extern const device_type CS4031; - +DECLARE_DEVICE_TYPE(CS4031, cs4031_device) -#endif /* __CS4031_H__ */ +#endif // MAME_MACHINE_CS4031_H diff --git a/src/devices/machine/cs8221.cpp b/src/devices/machine/cs8221.cpp index bc94f1e19af..61676abad65 100644 --- a/src/devices/machine/cs8221.cpp +++ b/src/devices/machine/cs8221.cpp @@ -16,18 +16,21 @@ ***************************************************************************/ #include "emu.h" -#include "machine/ram.h" #include "machine/cs8221.h" +#include "machine/ram.h" +#define LOG_GENERAL (1U << 0) +#define LOG_REGISTER (1U << 1) +#define LOG_MEMORY (1U << 2) -//************************************************************************** -// GLOBAL VARIABLES -//************************************************************************** +#define VERBOSE (LOG_REGISTER | LOG_MEMORY) +#include "logmacro.h" + +#define LOGREGISTER(...) LOGMASKED(LOG_REGISTER, __VA_ARGS__) +#define LOGMEMORY(...) LOGMASKED(LOG_MEMORY, __VA_ARGS__) -#define LOG_REGISTER 1 -#define LOG_MEMORY 1 -const device_type CS8221 = device_creator; +DEFINE_DEVICE_TYPE(CS8221, cs8221_device, "cs8221", "CS8221 NEAT") static const char *const register_names[] = @@ -59,7 +62,7 @@ static const char *const register_names[] = //------------------------------------------------- cs8221_device::cs8221_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, CS8221, "CS8221", tag, owner, clock, "cs8221", __FILE__), + : device_t(mconfig, CS8221, tag, owner, clock), m_address(0), m_address_valid(false) { @@ -122,8 +125,7 @@ READ8_MEMBER( cs8221_device::data_r ) if (m_address_valid) { - if (LOG_REGISTER) - logerror("cs8221_device: read %s = %02x\n", register_names[m_address & 0x0f], m_registers[m_address & 0x0f]); + LOGREGISTER("cs8221_device: read %s = %02x\n", register_names[m_address & 0x0f], m_registers[m_address & 0x0f]); result = m_registers[m_address & 0x0f]; } @@ -138,8 +140,7 @@ WRITE8_MEMBER( cs8221_device::data_w ) { if (m_address_valid) { - if (LOG_REGISTER) - logerror("cs8221_device: write %s = %02x\n", register_names[m_address & 0x0f], data); + LOGREGISTER("cs8221_device: write %s = %02x\n", register_names[m_address & 0x0f], data); // update register with new data m_registers[m_address & 0x0f] = data; diff --git a/src/devices/machine/cs8221.h b/src/devices/machine/cs8221.h index 7ec94963eec..3354ebfdeef 100644 --- a/src/devices/machine/cs8221.h +++ b/src/devices/machine/cs8221.h @@ -15,10 +15,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_MACHINE_CS8221_H +#define MAME_MACHINE_CS8221_H -#ifndef __CS8221_H__ -#define __CS8221_H__ +#pragma once @@ -82,7 +82,6 @@ private: // device type definition -extern const device_type CS8221; - +DECLARE_DEVICE_TYPE(CS8221, cs8221_device) -#endif /* __CS8221_H__ */ +#endif // MAME_MACHINE_CS8221_H diff --git a/src/devices/machine/cxd1095.cpp b/src/devices/machine/cxd1095.cpp index 5aaf3a14ad3..bb39a440bed 100644 --- a/src/devices/machine/cxd1095.cpp +++ b/src/devices/machine/cxd1095.cpp @@ -23,7 +23,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type CXD1095 = device_creator; +DEFINE_DEVICE_TYPE(CXD1095, cxd1095_device, "cxd1095", "CXD1095 I/O Expander") //************************************************************************** // DEVICE DEFINITION @@ -34,9 +34,9 @@ const device_type CXD1095 = device_creator; //------------------------------------------------- cxd1095_device::cxd1095_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : device_t(mconfig, CXD1095, "CXD1095 I/O Expander", tag, owner, clock, "cxd1095", __FILE__), - m_input_cb{{*this}, {*this}, {*this}, {*this}, {*this}}, - m_output_cb{{*this}, {*this}, {*this}, {*this}, {*this}} + : device_t(mconfig, CXD1095, tag, owner, clock) + , m_input_cb{{*this}, {*this}, {*this}, {*this}, {*this}} + , m_output_cb{{*this}, {*this}, {*this}, {*this}, {*this}} { } diff --git a/src/devices/machine/cxd1095.h b/src/devices/machine/cxd1095.h index 2fce5fced2a..10405d8fd93 100644 --- a/src/devices/machine/cxd1095.h +++ b/src/devices/machine/cxd1095.h @@ -39,10 +39,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_MACHINE_CXD1095_H +#define MAME_MACHINE_CXD1095_H -#ifndef DEVICES_MACHINE_CXD1095_H -#define DEVICES_MACHINE_CXD1095_H +#pragma once //************************************************************************** // CONFIGURATION MACROS @@ -83,13 +83,13 @@ public: cxd1095_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); // static configuration - template + template static devcb_base &set_input_cb(device_t &device, int p, Object &&obj) { assert(p >= 0 && p < 5); return downcast(device).m_input_cb[p].set_callback(std::forward(obj)); } - template + template static devcb_base &set_output_cb(device_t &device, int p, Object &&obj) { assert(p >= 0 && p < 5); @@ -116,6 +116,6 @@ private: }; // device type definition -extern const device_type CXD1095; +DECLARE_DEVICE_TYPE(CXD1095, cxd1095_device) -#endif +#endif // MAME_MACHINE_CXD1095_H diff --git a/src/devices/machine/diablo_hd.cpp b/src/devices/machine/diablo_hd.cpp index c49ce231005..a31d309bf2b 100644 --- a/src/devices/machine/diablo_hd.cpp +++ b/src/devices/machine/diablo_hd.cpp @@ -58,11 +58,16 @@ * */ +#ifndef DIABLO_DEBUG +#define DIABLO_DEBUG 1 //!< set to 1 to enable debug log output +#endif + +#define LOG_DRIVE(...) do { if (DIABLO_DEBUG) logprintf(__VA_ARGS__); } while (0) + + diablo_hd_device::diablo_hd_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, DIABLO_HD, "Diablo Disk", tag, owner, clock, "diablo_hd", __FILE__), -#if DIABLO_DEBUG + device_t(mconfig, DIABLO_HD, tag, owner, clock), m_log_level(8), -#endif m_diablo31(true), m_unit(0), m_packs(1), @@ -111,20 +116,18 @@ diablo_hd_device::~diablo_hd_device() { } -#if DIABLO_DEBUG template void diablo_hd_device::logprintf(int level, Format &&fmt, Params &&... args) { if (level <= m_log_level) logerror(std::forward(fmt), std::forward(args)...); } -#endif void diablo_hd_device::set_sector_callback(void *cookie, void (*callback)(void *, int)) { if (m_sector_callback_cookie == cookie && m_sector_callback == callback) return; - LOG_DRIVE((0,"[DHD%u] cookie=%p callback=%p\n", m_unit, cookie, (void *)callback)); + LOG_DRIVE(0,"[DHD%u] cookie=%p callback=%p\n", m_unit, cookie, (void *)callback); m_sector_callback_cookie = cookie; m_sector_callback = callback; } @@ -277,22 +280,22 @@ void diablo_hd_device::read_sector() { /* If there's no drive, just reset the page number */ if (!m_image) { - LOG_DRIVE((0,"[DHD%u] CHS:%03d/%d/%02d => no image\n", m_unit, m_cylinder, m_head, m_sector)); + LOG_DRIVE(0,"[DHD%u] CHS:%03d/%d/%02d => no image\n", m_unit, m_cylinder, m_head, m_sector); m_page = -1; return; } if (m_cylinder < 0 || m_cylinder >= m_cylinders) { - LOG_DRIVE((0,"[DHD%u] CHS:%03d/%d/%02d => invalid cylinder\n", m_unit, m_cylinder, m_head, m_sector)); + LOG_DRIVE(0,"[DHD%u] CHS:%03d/%d/%02d => invalid cylinder\n", m_unit, m_cylinder, m_head, m_sector); m_page = -1; return; } if (m_head < 0 || m_head >= DIABLO_HEADS) { - LOG_DRIVE((0,"[DHD%u] CHS:%03d/%d/%02d => invalid head\n", m_unit, m_cylinder, m_head, m_sector)); + LOG_DRIVE(0,"[DHD%u] CHS:%03d/%d/%02d => invalid head\n", m_unit, m_cylinder, m_head, m_sector); m_page = -1; return; } if (m_sector < 0 || m_sector >= DIABLO_SPT) { - LOG_DRIVE((0,"[DHD%u] CHS:%03d/%d/%02d => invalid sector\n", m_unit, m_cylinder, m_head, m_sector)); + LOG_DRIVE(0,"[DHD%u] CHS:%03d/%d/%02d => invalid sector\n", m_unit, m_cylinder, m_head, m_sector); m_page = -1; return; } @@ -301,7 +304,7 @@ void diablo_hd_device::read_sector() // already have the sector image? if (m_cache[m_page]) { - LOG_DRIVE((9,"[DHD%u] CHS:%03d/%d/%02d => page:%d is cached\n", m_unit, m_cylinder, m_head, m_sector, m_page)); + LOG_DRIVE(9,"[DHD%u] CHS:%03d/%d/%02d => page:%d is cached\n", m_unit, m_cylinder, m_head, m_sector, m_page); return; } @@ -310,13 +313,13 @@ void diablo_hd_device::read_sector() m_cache[m_page] = std::make_unique(sizeof(diablo_sector_t)); // and read the page from the hard_disk image if (hard_disk_read(m_disk, m_page, m_cache[m_page].get())) { - LOG_DRIVE((2,"[DHD%u] CHS:%03d/%d/%02d => page:%d loaded\n", m_unit, m_cylinder, m_head, m_sector, m_page)); + LOG_DRIVE(2,"[DHD%u] CHS:%03d/%d/%02d => page:%d loaded\n", m_unit, m_cylinder, m_head, m_sector, m_page); } else { - LOG_DRIVE((0,"[DHD%u] CHS:%03d/%d/%02d => page:%d read failed\n", m_unit, m_cylinder, m_head, m_sector, m_page)); + LOG_DRIVE(0,"[DHD%u] CHS:%03d/%d/%02d => page:%d read failed\n", m_unit, m_cylinder, m_head, m_sector, m_page); m_cache[m_page] = nullptr; } } else { - LOG_DRIVE((2,"[DHD%u] no disk\n", m_unit)); + LOG_DRIVE(2,"[DHD%u] no disk\n", m_unit); } } @@ -435,7 +438,7 @@ uint32_t* diablo_hd_device::expand_sector() /* allocate a sector buffer */ if (!m_cache[m_page]) { - LOG_DRIVE((0,"[DHD%u] no image for page #%d\n", m_unit, m_page)); + LOG_DRIVE(0,"[DHD%u] no image for page #%d\n", m_unit, m_page); return nullptr; } diablo_sector_t *s = reinterpret_cast(m_cache[m_page].get()); @@ -482,26 +485,26 @@ uint32_t* diablo_hd_device::expand_sector() } m_bits[m_page] = bits; - LOG_DRIVE((0,"[DHD%u] CHS:%03d/%d/%02d #%5d bits\n", m_unit, m_cylinder, m_head, m_sector, dst)); -#if DIABLO_DEBUG - dump_record(s->pageno, 0, sizeof(s->pageno), "pageno", 0); - dump_record(s->header, 0, sizeof(s->header), "header", 0); - dump_record(s->label, 0, sizeof(s->label), "label", 0); - dump_record(s->data, 0, sizeof(s->data), "data", 1); -#endif + LOG_DRIVE(0,"[DHD%u] CHS:%03d/%d/%02d #%5d bits\n", m_unit, m_cylinder, m_head, m_sector, dst); + if (DIABLO_DEBUG) + { + dump_record(s->pageno, 0, sizeof(s->pageno), "pageno", 0); + dump_record(s->header, 0, sizeof(s->header), "header", 0); + dump_record(s->label, 0, sizeof(s->label), "label", 0); + dump_record(s->data, 0, sizeof(s->data), "data", 1); + } return bits; } -#if DIABLO_DEBUG void diablo_hd_device::dump_ascii(uint8_t *src, size_t size) { size_t offs; - LOG_DRIVE((0," [")); + LOG_DRIVE(0," ["); for (offs = 0; offs < size; offs++) { - char ch = (char)src[offs ^ 1]; - LOG_DRIVE((0, "%c", ch < 32 || ch > 126 ? '.' : ch)); + char ch = char(src[offs ^ 1]); + LOG_DRIVE(0, "%c", ch < 32 || ch > 126 ? '.' : ch); } - LOG_DRIVE((0,"]\n")); + LOG_DRIVE(0,"]\n"); } @@ -515,15 +518,15 @@ void diablo_hd_device::dump_ascii(uint8_t *src, size_t size) size_t diablo_hd_device::dump_record(uint8_t *src, size_t addr, size_t size, const char *name, int cr) { size_t offs; - LOG_DRIVE((0,"%s:", name)); + LOG_DRIVE(0,"%s:", name); for (offs = 0; offs < size; offs += 2) { int word = src[offs] + 256 * src[offs + 1]; if (offs % 16) { - LOG_DRIVE((0," %06o", word)); + LOG_DRIVE(0," %06o", word); } else { if (offs > 0) dump_ascii(&src[offs-16], 16); - LOG_DRIVE((0,"\t%05o: %06o", (addr + offs) / 2, word)); + LOG_DRIVE(0,"\t%05o: %06o", (addr + offs) / 2, word); } } if (offs % 16) { @@ -532,11 +535,10 @@ size_t diablo_hd_device::dump_record(uint8_t *src, size_t addr, size_t size, con dump_ascii(&src[offs-16], 16); } if (cr) { - LOG_DRIVE((0,"\n")); + LOG_DRIVE(0,"\n"); } return size; } -#endif /** * @brief find a sync bit in an array of clock and data bits @@ -570,7 +572,7 @@ size_t diablo_hd_device::squeeze_sync(uint32_t *bits, size_t src, size_t size) } } /* return if no sync found within size*32 clock and data bits */ - LOG_DRIVE((0,"[DHD%u] no sync within %d words\n", m_unit, size)); + LOG_DRIVE(0,"[DHD%u] no sync within %d words\n", m_unit, size); return src; } @@ -605,7 +607,7 @@ size_t diablo_hd_device::squeeze_unsync(uint32_t *bits, size_t src, size_t size) } } /* return if no sync found within size*32 clock and data bits */ - LOG_DRIVE((0,"[DHD%u] no unsync within %d words\n", m_unit, size)); + LOG_DRIVE(0,"[DHD%u] no unsync within %d words\n", m_unit, size); return src; } @@ -678,8 +680,8 @@ void diablo_hd_device::squeeze_sector() int cksum_header, cksum_label, cksum_data; if (m_rdfirst >= 0) { - LOG_DRIVE((0, "[DHD%u] READ CHS:%03d/%d/%02d bit#%d ... bit#%d\n", - m_unit, m_cylinder, m_head, m_sector, m_rdfirst, m_rdlast)); + LOG_DRIVE(0, "[DHD%u] READ CHS:%03d/%d/%02d bit#%d ... bit#%d\n", + m_unit, m_cylinder, m_head, m_sector, m_rdfirst, m_rdlast); } m_rdfirst = -1; m_rdlast = -1; @@ -699,25 +701,25 @@ void diablo_hd_device::squeeze_sector() } if (m_wrfirst >= 0) { - LOG_DRIVE((0, "[DHD%u] WRITE CHS:%03d/%d/%02d bit#%d ... bit#%d\n", - m_unit, m_cylinder, m_head, m_sector, m_wrfirst, m_wrlast)); + LOG_DRIVE(0, "[DHD%u] WRITE CHS:%03d/%d/%02d bit#%d ... bit#%d\n", + m_unit, m_cylinder, m_head, m_sector, m_wrfirst, m_wrlast); } m_wrfirst = -1; m_wrlast = -1; if (m_page < 0 || m_page >= m_pages) { - LOG_DRIVE((0,"[DHD%u] page not set\n", m_unit)); + LOG_DRIVE(0,"[DHD%u] page not set\n", m_unit); return; } if (!m_cache[m_page]) { - LOG_DRIVE((0,"[DHD%u] no image\n", m_unit)); + LOG_DRIVE(0,"[DHD%u] no image\n", m_unit); return; } /* no bits to write? */ if (!m_bits[m_page]) { - LOG_DRIVE((0,"[DHD%u] no bits\n", m_unit)); + LOG_DRIVE(0,"[DHD%u] no bits\n", m_unit); return; } uint32_t *bits = m_bits[m_page]; @@ -731,34 +733,31 @@ void diablo_hd_device::squeeze_sector() src = MFRRDL * 32; src = squeeze_unsync(bits, src, 40); // skip first words and garbage until 0 bits are coming in src = squeeze_sync(bits, src, 40); // sync on header preamble - LOG_DRIVE((0,"[DHD%u] header sync bit #%5d\n", m_unit, src)); + LOG_DRIVE(0,"[DHD%u] header sync bit #%5d\n", m_unit, src); src = squeeze_record(bits, src, s->header, sizeof(s->header)); - LOG_DRIVE((0,"[DHD%u] header CRC bit #%5d\n", m_unit, src)); + LOG_DRIVE(0,"[DHD%u] header CRC bit #%5d\n", m_unit, src); src = squeeze_cksum(bits, src, &cksum_header); -#if DIABLO_DEBUG - dump_record(s->header, 0, sizeof(s->header), "header", 0); -#endif + if (DIABLO_DEBUG) + dump_record(s->header, 0, sizeof(s->header), "header", 0); src = squeeze_unsync(bits, src, 40); // skip garbage until 0 bits are coming in src = squeeze_sync(bits, src, 40); // sync on label preamble - LOG_DRIVE((0,"[DHD%u] label sync bit #%5d\n", m_unit, src)); + LOG_DRIVE(0,"[DHD%u] label sync bit #%5d\n", m_unit, src); src = squeeze_record(bits, src, s->label, sizeof(s->label)); - LOG_DRIVE((0,"[DHD%u] label CRC bit #%5d\n", m_unit, src)); + LOG_DRIVE(0,"[DHD%u] label CRC bit #%5d\n", m_unit, src); src = squeeze_cksum(bits, src, &cksum_label); -#if DIABLO_DEBUG - dump_record(s->label, 0, sizeof(s->label), "label", 0); -#endif + if (DIABLO_DEBUG) + dump_record(s->label, 0, sizeof(s->label), "label", 0); src = squeeze_unsync(bits, src, 40); // skip garbage until 0 bits are coming in src = squeeze_sync(bits, src, 40); // sync on data preamble - LOG_DRIVE((0,"[DHD%u] data sync bit #%5d\n", m_unit, src)); + LOG_DRIVE(0,"[DHD%u] data sync bit #%5d\n", m_unit, src); src = squeeze_record(bits, src, s->data, sizeof(s->data)); - LOG_DRIVE((0,"[DHD%u] data CRC bit #%5d\n", m_unit, src)); + LOG_DRIVE(0,"[DHD%u] data CRC bit #%5d\n", m_unit, src); src = squeeze_cksum(bits, src, &cksum_data); -#if DIABLO_DEBUG - dump_record(s->data, 0, sizeof(s->data), "data", 1); -#endif - LOG_DRIVE((0,"[DHD%u] postamble bit #%5d\n", m_unit, src)); + if (DIABLO_DEBUG) + dump_record(s->data, 0, sizeof(s->data), "data", 1); + LOG_DRIVE(0,"[DHD%u] postamble bit #%5d\n", m_unit, src); /* The checksum start value always seems to be 0521 */ cksum_header ^= cksum(s->header, sizeof(s->header), 0521); @@ -766,19 +765,17 @@ void diablo_hd_device::squeeze_sector() cksum_data ^= cksum(s->data, sizeof(s->data), 0521); if (cksum_header || cksum_label || cksum_data) { -#if DIABLO_DEBUG - LOG_DRIVE((0,"[DHD%u] cksum check - header:%06o label:%06o data:%06o\n", m_unit, cksum_header, cksum_label, cksum_data)); -#endif + LOG_DRIVE(0,"[DHD%u] cksum check - header:%06o label:%06o data:%06o\n", m_unit, cksum_header, cksum_label, cksum_data); } auto_free(machine(), m_bits[m_page]); m_bits[m_page] = nullptr; if (m_disk) { if (!hard_disk_write(m_disk, m_page, m_cache[m_page].get())) { - LOG_DRIVE((0,"[DHD%u] write failed for page #%d\n", m_unit, m_page)); + LOG_DRIVE(0,"[DHD%u] write failed for page #%d\n", m_unit, m_page); } } else { - LOG_DRIVE((2,"[DHD%u] no disk\n", m_unit)); + LOG_DRIVE(2,"[DHD%u] no disk\n", m_unit); } } @@ -984,14 +981,14 @@ void diablo_hd_device::select(int unit) m_s_r_w_0 = 0; // and can take seek/read/write commands m_addx_acknowledge_0 = 0; // assert address acknowledge (?) m_log_addx_interlock_0 = 1; // deassert log address interlock (?) - LOG_DRIVE((1,"[DHD%u] select unit:%d ready\n", m_unit, unit)); + LOG_DRIVE(1,"[DHD%u] select unit:%d ready\n", m_unit, unit); read_sector(); } else { m_ready_0 = 1; // it is not ready (?) m_s_r_w_0 = 1; // can't take seek/read/write commands (?) m_addx_acknowledge_0 = 0; // assert address acknowledge (?) m_log_addx_interlock_0 = 1; // deassert log address interlock (?) - LOG_DRIVE((1,"[DHD%u] select unit:%d not ready (no image)\n", m_unit, unit)); + LOG_DRIVE(1,"[DHD%u] select unit:%d not ready (no image)\n", m_unit, unit); } } @@ -1003,7 +1000,7 @@ void diablo_hd_device::set_head(int head) { if ((head & DIABLO_HEAD_MASK) != m_head) { m_head = head & DIABLO_HEAD_MASK; - LOG_DRIVE((0,"[DHD%u] select head:%d\n", m_unit, m_head)); + LOG_DRIVE(0,"[DHD%u] select head:%d\n", m_unit, m_head); } } @@ -1019,7 +1016,7 @@ void diablo_hd_device::set_cylinder(int cylinder) { if ((cylinder & DIABLO_CYLINDER_MASK) != m_seekto) { m_seekto = cylinder & DIABLO_CYLINDER_MASK; - LOG_DRIVE((0,"[DHD%u] seek to cylinder:%d\n", m_unit, m_seekto)); + LOG_DRIVE(0,"[DHD%u] seek to cylinder:%d\n", m_unit, m_seekto); } } @@ -1036,7 +1033,7 @@ void diablo_hd_device::set_restore(int restore) { if ((restore & 1) != m_restore) { m_restore = restore & 1; - LOG_DRIVE((0,"[DHD%u] restore:%d\n", m_unit, m_restore)); + LOG_DRIVE(0,"[DHD%u] restore:%d\n", m_unit, m_restore); } } @@ -1052,7 +1049,7 @@ void diablo_hd_device::set_strobe(int strobe) { int seekto = m_restore ? 0 : m_seekto; if (strobe) { - LOG_DRIVE((1,"[DHD%u] STROBE end of interlock\n", m_unit)); + LOG_DRIVE(1,"[DHD%u] STROBE end of interlock\n", m_unit); // deassert the log address interlock m_log_addx_interlock_0 = 1; return; @@ -1062,7 +1059,7 @@ void diablo_hd_device::set_strobe(int strobe) m_log_addx_interlock_0 = 0; if (seekto == m_cylinder) { - LOG_DRIVE((1,"[DHD%u] STROBE to cylinder %d acknowledge\n", m_unit, seekto)); + LOG_DRIVE(1,"[DHD%u] STROBE to cylinder %d acknowledge\n", m_unit, seekto); m_addx_acknowledge_0 = 0; // address acknowledge, if cylinder is reached m_seek_incomplete_0 = 1; // reset seek incomplete return; @@ -1087,7 +1084,7 @@ void diablo_hd_device::set_strobe(int strobe) } } if (complete) { - LOG_DRIVE((1,"[DHD%u] STROBE to cylinder %d (now %d) - interlock\n", m_unit, seekto, m_cylinder)); + LOG_DRIVE(1,"[DHD%u] STROBE to cylinder %d (now %d) - interlock\n", m_unit, seekto, m_cylinder); m_addx_acknowledge_0 = 1; // deassert address acknowledge signal m_seek_incomplete_0 = 1; // deassert seek incomplete signal read_sector(); @@ -1095,7 +1092,7 @@ void diablo_hd_device::set_strobe(int strobe) m_log_addx_interlock_0 = 0; // deassert the log address interlock signal m_seek_incomplete_0 = 1; // deassert seek incomplete signal m_addx_acknowledge_0 = 0; // assert address acknowledge signal - LOG_DRIVE((1,"[DHD%u] STROBE to cylinder %d incomplete\n", m_unit, seekto)); + LOG_DRIVE(1,"[DHD%u] STROBE to cylinder %d incomplete\n", m_unit, seekto); } } @@ -1146,30 +1143,30 @@ void diablo_hd_device::set_rdgate(int gate) void diablo_hd_device::wr_data(int index, int wrdata) { if (m_wrgate_0) { - LOG_DRIVE((0,"[DHD%u] index=%d wrgate not asserted\n", m_unit, index)); + LOG_DRIVE(0,"[DHD%u] index=%d wrgate not asserted\n", m_unit, index); return; // write gate is not asserted (active 0) } if (index < 0 || index >= bits_per_sector()) { - LOG_DRIVE((0,"[DHD%u] index=%d out of range\n", m_unit, index)); + LOG_DRIVE(0,"[DHD%u] index=%d out of range\n", m_unit, index); return; // don't write before or beyond the sector } if (-1 == m_page) { - LOG_DRIVE((0,"[DHD%u] invalid page\n", m_unit)); + LOG_DRIVE(0,"[DHD%u] invalid page\n", m_unit); return; // invalid page } uint32_t *bits = expand_sector(); if (!bits) { - LOG_DRIVE((0,"[DHD%u] no bits\n", m_unit)); + LOG_DRIVE(0,"[DHD%u] no bits\n", m_unit); return; // invalid unit } if (-1 == m_wrfirst) m_wrfirst = index; - LOG_DRIVE((9,"[DHD%u] CHS:%03d/%d/%02d index #%d bit:%d\n", m_unit, m_cylinder, m_head, m_sector, index, wrdata)); + LOG_DRIVE(9,"[DHD%u] CHS:%03d/%d/%02d index #%d bit:%d\n", m_unit, m_cylinder, m_head, m_sector, index, wrdata); if (index < GUARD_ZONE_BITS) { /* don't write in the guard zone (?) */ @@ -1193,28 +1190,28 @@ int diablo_hd_device::rd_data(int index) int bit = 0; if (m_rdgate_0) { - LOG_DRIVE((1,"[DHD%u] index=%d rdgate not asserted\n", m_unit, index)); + LOG_DRIVE(1,"[DHD%u] index=%d rdgate not asserted\n", m_unit, index); return 0; // read gate is not asserted (active 0) } if (index < 0 || index >= bits_per_sector()) { - LOG_DRIVE((0,"[DHD%u] index=%d out of range\n", m_unit, index)); + LOG_DRIVE(0,"[DHD%u] index=%d out of range\n", m_unit, index); return 1; // don't read before or beyond the sector } if (0 == m_sector_mark_0) { - LOG_DRIVE((0,"[DHD%u] read while sector mark is asserted\n", m_unit)); + LOG_DRIVE(0,"[DHD%u] read while sector mark is asserted\n", m_unit); return 1; // no data while sector mark is asserted } if (-1 == m_page) { - LOG_DRIVE((0,"[DHD%u] invalid page\n", m_unit)); + LOG_DRIVE(0,"[DHD%u] invalid page\n", m_unit); return 1; // invalid unit } uint32_t *bits = expand_sector(); if (!bits) { - LOG_DRIVE((0,"[DHD%u] no bits\n", m_unit)); + LOG_DRIVE(0,"[DHD%u] no bits\n", m_unit); return 1; // invalid page } @@ -1222,7 +1219,7 @@ int diablo_hd_device::rd_data(int index) m_rdfirst = index; RDBIT(bits,index,bit); - LOG_DRIVE((9,"[DHD%u] CHS:%03d/%d/%02d index #%d bit:%d\n", m_unit, m_cylinder, m_head, m_sector, index, bit)); + LOG_DRIVE(9,"[DHD%u] CHS:%03d/%d/%02d index #%d bit:%d\n", m_unit, m_cylinder, m_head, m_sector, index, bit); m_rdlast = index; return bit; } @@ -1241,23 +1238,23 @@ int diablo_hd_device::rd_clock(int index) int clk = 0; if (index < 0 || index >= bits_per_sector()) { - LOG_DRIVE((0,"[DHD%u] index out of range (%d)\n", m_unit, index)); + LOG_DRIVE(0,"[DHD%u] index out of range (%d)\n", m_unit, index); return 1; // don't read before or beyond the sector } if (0 == m_sector_mark_0) { - LOG_DRIVE((0,"[DHD%u] read while sector mark is asserted\n", m_unit)); + LOG_DRIVE(0,"[DHD%u] read while sector mark is asserted\n", m_unit); return 1; // no clock while sector mark is low (?) } if (-1 == m_page) { - LOG_DRIVE((0,"[DHD%u] invalid page\n", m_unit)); + LOG_DRIVE(0,"[DHD%u] invalid page\n", m_unit); return 1; // invalid page } uint32_t *bits = expand_sector(); if (!bits) { - LOG_DRIVE((0,"[DHD%u] no bits\n", m_unit)); + LOG_DRIVE(0,"[DHD%u] no bits\n", m_unit); return 1; // invalid unit } @@ -1272,7 +1269,7 @@ int diablo_hd_device::rd_clock(int index) } else { clk = 0; } - LOG_DRIVE((9,"[DHD%u] CHS:%03d/%d/%02d index #%d clk:%d\n", m_unit, m_cylinder, m_head, m_sector, index, clk)); + LOG_DRIVE(9,"[DHD%u] CHS:%03d/%d/%02d index #%d clk:%d\n", m_unit, m_cylinder, m_head, m_sector, index, clk); m_rdlast = index; return clk ^ 1; } @@ -1283,7 +1280,7 @@ int diablo_hd_device::rd_clock(int index) */ void diablo_hd_device::sector_mark_1() { - LOG_DRIVE((9,"[DHD%u] CHS:%03d/%d/%02d sector_mark_0=1\n", m_unit, m_cylinder, m_head, m_sector)); + LOG_DRIVE(9,"[DHD%u] CHS:%03d/%d/%02d sector_mark_0=1\n", m_unit, m_cylinder, m_head, m_sector); m_sector_mark_0 = 1; // deassert sector mark (set to 1) } @@ -1297,7 +1294,7 @@ void diablo_hd_device::sector_mark_1() */ void diablo_hd_device::sector_mark_0() { - LOG_DRIVE((9,"[DHD%u] CHS:%03d/%d/%02d sector_mark_0=0\n", m_unit, m_cylinder, m_head, m_sector)); + LOG_DRIVE(9,"[DHD%u] CHS:%03d/%d/%02d sector_mark_0=0\n", m_unit, m_cylinder, m_head, m_sector); // HACK: deassert wrgate // m_wrgate_0 = 1; @@ -1362,13 +1359,13 @@ void diablo_hd_device::device_reset() m_cylinders = 2 * DIABLO_CYLINDERS; m_pages = 2 * DIABLO_PAGES; } - LOG_DRIVE((0,"[DHD%u] m_handle : %p\n", m_unit, m_handle)); - LOG_DRIVE((0,"[DHD%u] m_disk : %p\n", m_unit, m_disk)); - LOG_DRIVE((0,"[DHD%u] rotation time : %.0fns\n", m_unit, m_rotation_time.as_double() * ATTOSECONDS_PER_NANOSECOND)); - LOG_DRIVE((0,"[DHD%u] sector time : %.0fns\n", m_unit, m_sector_time.as_double() * ATTOSECONDS_PER_NANOSECOND)); - LOG_DRIVE((0,"[DHD%u] sector mark 0 time : %.0fns\n", m_unit, m_sector_mark_0_time.as_double() * ATTOSECONDS_PER_NANOSECOND)); - LOG_DRIVE((0,"[DHD%u] sector mark 1 time : %.0fns\n", m_unit, m_sector_mark_1_time.as_double() * ATTOSECONDS_PER_NANOSECOND)); - LOG_DRIVE((0,"[DHD%u] bit time : %.0fns\n", m_unit, m_bit_time.as_double() * ATTOSECONDS_PER_NANOSECOND)); + LOG_DRIVE(0,"[DHD%u] m_handle : %p\n", m_unit, m_handle); + LOG_DRIVE(0,"[DHD%u] m_disk : %p\n", m_unit, m_disk); + LOG_DRIVE(0,"[DHD%u] rotation time : %.0fns\n", m_unit, m_rotation_time.as_double() * ATTOSECONDS_PER_NANOSECOND); + LOG_DRIVE(0,"[DHD%u] sector time : %.0fns\n", m_unit, m_sector_time.as_double() * ATTOSECONDS_PER_NANOSECOND); + LOG_DRIVE(0,"[DHD%u] sector mark 0 time : %.0fns\n", m_unit, m_sector_mark_0_time.as_double() * ATTOSECONDS_PER_NANOSECOND); + LOG_DRIVE(0,"[DHD%u] sector mark 1 time : %.0fns\n", m_unit, m_sector_mark_1_time.as_double() * ATTOSECONDS_PER_NANOSECOND); + LOG_DRIVE(0,"[DHD%u] bit time : %.0fns\n", m_unit, m_bit_time.as_double() * ATTOSECONDS_PER_NANOSECOND); m_s_r_w_0 = 1; // deassert seek/read/write ready m_ready_0 = 1; // deassert drive ready @@ -1418,7 +1415,7 @@ void diablo_hd_device::device_reset() */ void diablo_hd_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) { - LOG_DRIVE((9,"[DHD%u] TIMER id=%d param=%d ptr=%p @%.0fns\n", m_unit, id, param, ptr, timer.elapsed().as_double() * ATTOSECONDS_PER_NANOSECOND)); + LOG_DRIVE(9,"[DHD%u] TIMER id=%d param=%d ptr=%p @%.0fns\n", m_unit, id, param, ptr, timer.elapsed().as_double() * ATTOSECONDS_PER_NANOSECOND); if (!m_disk) return; @@ -1454,4 +1451,4 @@ machine_config_constructor diablo_hd_device::device_mconfig_additions() const return MACHINE_CONFIG_NAME( diablo_drive ); } -const device_type DIABLO_HD = device_creator; +DEFINE_DEVICE_TYPE(DIABLO_HD, diablo_hd_device, "diablo_hd", "Diablo Disk") diff --git a/src/devices/machine/diablo_hd.h b/src/devices/machine/diablo_hd.h index 4f2fc5da1b5..f39063b3426 100644 --- a/src/devices/machine/diablo_hd.h +++ b/src/devices/machine/diablo_hd.h @@ -4,14 +4,12 @@ * DIABLO31 and DIABLO44 hard drive support **********************************************************/ -#if !defined(_DIABLO_HD_DEVICE_) -#define _DIABLO_HD_DEVICE_ +#ifndef MAME_MACHINE_DIABLO_HD_H +#define MAME_MACHINE_DIABLO_HD_H -#include "imagedev/diablo.h" +#pragma once -#ifndef DIABLO_DEBUG -#define DIABLO_DEBUG 1 //!< set to 1 to enable debug log output -#endif +#include "imagedev/diablo.h" #define DIABLO_HD_0 "diablo0" #define DIABLO_HD_1 "diablo1" @@ -73,14 +71,9 @@ protected: virtual machine_config_constructor device_mconfig_additions() const override; private: -#if DIABLO_DEBUG - int m_log_level; template void logprintf(int level, Format &&fmt, Params &&... args); -# define LOG_DRIVE(x) logprintf x -#else -# define LOG_DRIVE(x) -#endif + int m_log_level; bool m_diablo31; //!< true, if this is a DIABLO31 drive int m_unit; //!< drive unit number (0 or 1) char m_description[32]; //!< description of the drive(s) @@ -141,13 +134,11 @@ private: //! expand a sector into an array of clock and data bits uint32_t* expand_sector(); -#if DIABLO_DEBUG //! dump a number of words as ASCII characters void dump_ascii(uint8_t *src, size_t size); //! dump a record's contents size_t dump_record(uint8_t *src, size_t addr, size_t size, const char *name, int cr); -#endif //! find a sync bit in an array of clock and data bits size_t squeeze_sync(uint32_t *bits, size_t src, size_t size); diff --git a/src/devices/machine/dm9334.cpp b/src/devices/machine/dm9334.cpp index 5a673f7cf24..b4693ad7545 100644 --- a/src/devices/machine/dm9334.cpp +++ b/src/devices/machine/dm9334.cpp @@ -9,10 +9,10 @@ #include "emu.h" #include "dm9334.h" -const device_type DM9334 = device_creator; +DEFINE_DEVICE_TYPE(DM9334, dm9334_device, "dm9934", "NS [DM]9934 8-bit Addressable Latch") dm9334_device::dm9334_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, DM9334, "National Semiconductor 9334/DM9334 8-Bit Addressable Latch", tag, owner, clock, "dm9334", __FILE__) + : device_t(mconfig, DM9334, tag, owner, clock) , m_out_func(*this) , m_q0_func(*this) , m_q1_func(*this) diff --git a/src/devices/machine/dm9334.h b/src/devices/machine/dm9334.h index 708aa89c782..cc71862e686 100644 --- a/src/devices/machine/dm9334.h +++ b/src/devices/machine/dm9334.h @@ -65,10 +65,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_MACHINE_DM9334_H +#define MAME_MACHINE_DM9334_H -#ifndef DM9334_H -#define DM9334_H +#pragma once #define MCFG_DM9334_OUTPUT_CB(_devcb) \ @@ -108,15 +108,15 @@ public: dm9334_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // static configuration helpers - template static devcb_base &set_out_cb(device_t &device, _Object object) { return downcast(device).m_out_func.set_callback(object); } - template static devcb_base &set_q0_cb(device_t &device, _Object object) { return downcast(device).m_q0_func.set_callback(object); } - template static devcb_base &set_q1_cb(device_t &device, _Object object) { return downcast(device).m_q1_func.set_callback(object); } - template static devcb_base &set_q2_cb(device_t &device, _Object object) { return downcast(device).m_q2_func.set_callback(object); } - template static devcb_base &set_q3_cb(device_t &device, _Object object) { return downcast(device).m_q3_func.set_callback(object); } - template static devcb_base &set_q4_cb(device_t &device, _Object object) { return downcast(device).m_q4_func.set_callback(object); } - template static devcb_base &set_q5_cb(device_t &device, _Object object) { return downcast(device).m_q5_func.set_callback(object); } - template static devcb_base &set_q6_cb(device_t &device, _Object object) { return downcast(device).m_q6_func.set_callback(object); } - template static devcb_base &set_q7_cb(device_t &device, _Object object) { return downcast(device).m_q7_func.set_callback(object); } + template static devcb_base &set_out_cb(device_t &device, Object &&cb) { return downcast(device).m_out_func.set_callback(std::forward(cb)); } + template static devcb_base &set_q0_cb(device_t &device, Object &&cb) { return downcast(device).m_q0_func.set_callback(std::forward(cb)); } + template static devcb_base &set_q1_cb(device_t &device, Object &&cb) { return downcast(device).m_q1_func.set_callback(std::forward(cb)); } + template static devcb_base &set_q2_cb(device_t &device, Object &&cb) { return downcast(device).m_q2_func.set_callback(std::forward(cb)); } + template static devcb_base &set_q3_cb(device_t &device, Object &&cb) { return downcast(device).m_q3_func.set_callback(std::forward(cb)); } + template static devcb_base &set_q4_cb(device_t &device, Object &&cb) { return downcast(device).m_q4_func.set_callback(std::forward(cb)); } + template static devcb_base &set_q5_cb(device_t &device, Object &&cb) { return downcast(device).m_q5_func.set_callback(std::forward(cb)); } + template static devcb_base &set_q6_cb(device_t &device, Object &&cb) { return downcast(device).m_q6_func.set_callback(std::forward(cb)); } + template static devcb_base &set_q7_cb(device_t &device, Object &&cb) { return downcast(device).m_q7_func.set_callback(std::forward(cb)); } DECLARE_WRITE_LINE_MEMBER( e_w ); DECLARE_WRITE_LINE_MEMBER( c_w ); @@ -177,7 +177,6 @@ private: }; // device type definition -extern const device_type DM9334; - +DECLARE_DEVICE_TYPE(DM9334, dm9334_device) -#endif /* DM9334_H */ +#endif // MAME_MACHINE_DM9334_H diff --git a/src/devices/machine/dmac.cpp b/src/devices/machine/dmac.cpp index cd0911f9995..88762d95237 100644 --- a/src/devices/machine/dmac.cpp +++ b/src/devices/machine/dmac.cpp @@ -15,19 +15,15 @@ BOARDS: #include "emu.h" #include "dmac.h" - -//************************************************************************** -// CONSTANTS / MACROS -//************************************************************************** - #define VERBOSE 1 +#include "logmacro.h" //************************************************************************** // DEVICE DEFINITIONS //************************************************************************** -const device_type DMAC = device_creator; +DEFINE_DEVICE_TYPE(AMIGA_DMAC, amiga_dmac_device, "amiga_dmac", "Amiga DMAC DMA Controller") //************************************************************************** @@ -35,11 +31,11 @@ const device_type DMAC = device_creator; //************************************************************************** //------------------------------------------------- -// dmac_device - constructor +// amiga_dmac_device - constructor //------------------------------------------------- -dmac_device::dmac_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, DMAC, "DMAC DMA Controller", tag, owner, clock, "dmac", __FILE__), +amiga_dmac_device::amiga_dmac_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, AMIGA_DMAC, tag, owner, clock), amiga_autoconfig(), m_cfgout_handler(*this), m_int_handler(*this), @@ -66,7 +62,7 @@ dmac_device::dmac_device(const machine_config &mconfig, const char *tag, device_ // device_start - device-specific startup //------------------------------------------------- -void dmac_device::device_start() +void amiga_dmac_device::device_start() { // resolve callbacks m_cfgout_handler.resolve_safe(); @@ -82,21 +78,19 @@ void dmac_device::device_start() // device_reset - device-specific reset //------------------------------------------------- -void dmac_device::device_reset() +void amiga_dmac_device::device_reset() { // fifo empty m_istr |= ISTR_FE_FLG; } -void dmac_device::autoconfig_base_address(offs_t address) +void amiga_dmac_device::autoconfig_base_address(offs_t address) { - if (VERBOSE) - logerror("%s('%s'): autoconfig_base_address received: 0x%06x\n", shortname(), basetag(), address); + LOG("%s('%s'): autoconfig_base_address received: 0x%06x\n", shortname(), basetag(), address); if (!m_configured && m_ram_size > 0) { - if (VERBOSE) - logerror("-> installing ram (%d bytes)\n", m_ram_size); + LOG("-> installing ram (%d bytes)\n", m_ram_size); // install access to the ram space if (address) @@ -115,13 +109,12 @@ void dmac_device::autoconfig_base_address(offs_t address) } else { - if (VERBOSE) - logerror("-> installing dmac\n"); + LOG("-> installing dmac\n"); // internal dmac registers m_space->install_readwrite_handler(address, address + 0xff, - read16_delegate(FUNC(dmac_device::register_read), this), - write16_delegate(FUNC(dmac_device::register_write), this), 0xffff); + read16_delegate(FUNC(amiga_dmac_device::register_read), this), + write16_delegate(FUNC(amiga_dmac_device::register_write), this), 0xffff); // install access to the rom space if (m_rom) @@ -138,7 +131,7 @@ void dmac_device::autoconfig_base_address(offs_t address) } } -void dmac_device::check_interrupts() +void amiga_dmac_device::check_interrupts() { // interrupts enabled? if (m_cntr & CNTR_INTEN) @@ -156,14 +149,14 @@ void dmac_device::check_interrupts() m_int_handler((m_istr & ISTR_INT_P) ? 1 : 0); } -void dmac_device::stop_dma() +void amiga_dmac_device::stop_dma() { m_dma_active = false; m_istr &= ~ISTR_E_INT; check_interrupts(); } -void dmac_device::start_dma() +void amiga_dmac_device::start_dma() { m_dma_active = true; } @@ -173,7 +166,7 @@ void dmac_device::start_dma() // IMPLEMENTATION //************************************************************************** -READ16_MEMBER( dmac_device::register_read ) +READ16_MEMBER( amiga_dmac_device::register_read ) { uint16_t data = 0xffff; @@ -190,16 +183,14 @@ READ16_MEMBER( dmac_device::register_read ) m_istr &= ~0x0f; check_interrupts(); - if (VERBOSE) - logerror("%s('%s'): read istr %04x [mask = %04x]\n", shortname(), basetag(), data, mem_mask); + LOG("%s('%s'): read istr %04x [mask = %04x]\n", shortname(), basetag(), data, mem_mask); break; case 0x21: data = m_cntr; - if (VERBOSE) - logerror("%s('%s'): read cntr %04x [mask = %04x]\n", shortname(), basetag(), data, mem_mask); + LOG("%s('%s'): read cntr %04x [mask = %04x]\n", shortname(), basetag(), data, mem_mask); break; @@ -207,8 +198,7 @@ READ16_MEMBER( dmac_device::register_read ) case 0x49: data = m_scsi_read_handler(offset); - if (VERBOSE) - logerror("%s('%s'): read scsi register @ %02x %04x [mask = %04x]\n", shortname(), basetag(), offset, data, mem_mask); + LOG("%s('%s'): read scsi register @ %02x %04x [mask = %04x]\n", shortname(), basetag(), offset, data, mem_mask); break; @@ -216,28 +206,24 @@ READ16_MEMBER( dmac_device::register_read ) case 0x51: case 0x52: case 0x53: - if (VERBOSE) - logerror("%s('%s'): read xt register @ %02x %04x [mask = %04x]\n", shortname(), basetag(), offset, data, mem_mask); + LOG("%s('%s'): read xt register @ %02x %04x [mask = %04x]\n", shortname(), basetag(), offset, data, mem_mask); break; case 0x70: - if (VERBOSE) - logerror("%s('%s'): read dma start strobe %04x [mask = %04x]\n", shortname(), basetag(), data, mem_mask); + LOG("%s('%s'): read dma start strobe %04x [mask = %04x]\n", shortname(), basetag(), data, mem_mask); start_dma(); break; case 0x71: - if (VERBOSE) - logerror("%s('%s'): read dma stop strobe %04x [mask = %04x]\n", shortname(), basetag(), data, mem_mask); + LOG("%s('%s'): read dma stop strobe %04x [mask = %04x]\n", shortname(), basetag(), data, mem_mask); stop_dma(); break; case 0x72: - if (VERBOSE) - logerror("%s('%s'): read clear irq strobe %04x [mask = %04x]\n", shortname(), basetag(), data, mem_mask); + LOG("%s('%s'): read clear irq strobe %04x [mask = %04x]\n", shortname(), basetag(), data, mem_mask); // clear all interrupts m_istr &= ~ISTR_INT_MASK; @@ -245,73 +231,64 @@ READ16_MEMBER( dmac_device::register_read ) break; case 0x74: - if (VERBOSE) - logerror("%s('%s'): read flush fifo strobe %04x [mask = %04x]\n", shortname(), basetag(), data, mem_mask); + LOG("%s('%s'): read flush fifo strobe %04x [mask = %04x]\n", shortname(), basetag(), data, mem_mask); m_istr |= ISTR_FE_FLG; break; default: - if (VERBOSE) - logerror("%s('%s'): register_read %04x @ %02x [mask = %04x]\n", shortname(), basetag(), data, offset, mem_mask); + LOG("%s('%s'): register_read %04x @ %02x [mask = %04x]\n", shortname(), basetag(), data, offset, mem_mask); } return data; } -WRITE16_MEMBER( dmac_device::register_write ) +WRITE16_MEMBER( amiga_dmac_device::register_write ) { switch (offset) { case 0x21: - if (VERBOSE) - logerror("%s('%s'): write cntr %04x [mask = %04x]\n", shortname(), basetag(), data, mem_mask); + LOG("%s('%s'): write cntr %04x [mask = %04x]\n", shortname(), basetag(), data, mem_mask); m_cntr = data; check_interrupts(); break; case 0x40: - if (VERBOSE) - logerror("%s('%s'): write wtc hi %04x [mask = %04x]\n", shortname(), basetag(), data, mem_mask); + LOG("%s('%s'): write wtc hi %04x [mask = %04x]\n", shortname(), basetag(), data, mem_mask); m_wtc &= 0x0000ffff; m_wtc |= ((uint32_t) data) << 16; break; case 0x41: - if (VERBOSE) - logerror("%s('%s'): write wtc lo %04x [mask = %04x]\n", shortname(), basetag(), data, mem_mask); + LOG("%s('%s'): write wtc lo %04x [mask = %04x]\n", shortname(), basetag(), data, mem_mask); m_wtc &= 0xffff0000; m_wtc |= data; break; case 0x42: - if (VERBOSE) - logerror("%s('%s'): write acr hi %04x [mask = %04x]\n", shortname(), basetag(), data, mem_mask); + LOG("%s('%s'): write acr hi %04x [mask = %04x]\n", shortname(), basetag(), data, mem_mask); m_acr &= 0x0000ffff; m_acr |= ((uint32_t) data) << 16; break; case 0x43: - if (VERBOSE) - logerror("%s('%s'): write acr lo %04x [mask = %04x]\n", shortname(), basetag(), data, mem_mask); + LOG("%s('%s'): write acr lo %04x [mask = %04x]\n", shortname(), basetag(), data, mem_mask); m_acr &= 0xffff0000; m_acr |= data; break; case 0x47: - if (VERBOSE) - logerror("%s('%s'): write dawr %04x [mask = %04x]\n", shortname(), basetag(), data, mem_mask); + LOG("%s('%s'): write dawr %04x [mask = %04x]\n", shortname(), basetag(), data, mem_mask); break; case 0x48: case 0x49: - if (VERBOSE) - logerror("%s('%s'): write scsi register @ %02x %04x [mask = %04x]\n", shortname(), basetag(), offset, data, mem_mask); + LOG("%s('%s'): write scsi register @ %02x %04x [mask = %04x]\n", shortname(), basetag(), offset, data, mem_mask); m_scsi_write_handler(offset, data, 0xff); break; @@ -320,27 +297,23 @@ WRITE16_MEMBER( dmac_device::register_write ) case 0x51: case 0x52: case 0x53: - if (VERBOSE) - logerror("%s('%s'): write xt register @ %02x %04x [mask = %04x]\n", shortname(), basetag(), offset, data, mem_mask); + LOG("%s('%s'): write xt register @ %02x %04x [mask = %04x]\n", shortname(), basetag(), offset, data, mem_mask); break; case 0x70: - if (VERBOSE) - logerror("%s('%s'): write dma start strobe %04x [mask = %04x]\n", shortname(), basetag(), data, mem_mask); + LOG("%s('%s'): write dma start strobe %04x [mask = %04x]\n", shortname(), basetag(), data, mem_mask); start_dma(); break; case 0x71: - if (VERBOSE) - logerror("%s('%s'): write dma stop strobe %04x [mask = %04x]\n", shortname(), basetag(), data, mem_mask); + LOG("%s('%s'): write dma stop strobe %04x [mask = %04x]\n", shortname(), basetag(), data, mem_mask); stop_dma(); break; case 0x72: - if (VERBOSE) - logerror("%s('%s'): write clear irq strobe %04x [mask = %04x]\n", shortname(), basetag(), data, mem_mask); + LOG("%s('%s'): write clear irq strobe %04x [mask = %04x]\n", shortname(), basetag(), data, mem_mask); // clear all interrupts m_istr &= ~ISTR_INT_MASK; @@ -348,23 +321,20 @@ WRITE16_MEMBER( dmac_device::register_write ) break; case 0x74: - if (VERBOSE) - logerror("%s('%s'): write flush fifo strobe %04x [mask = %04x]\n", shortname(), basetag(), data, mem_mask); + LOG("%s('%s'): write flush fifo strobe %04x [mask = %04x]\n", shortname(), basetag(), data, mem_mask); m_istr |= ISTR_FE_FLG; break; default: - if (VERBOSE) - logerror("%s('%s'): write %04x @ %02x [mask = %04x]\n", shortname(), basetag(), data, offset, mem_mask); + LOG("%s('%s'): write %04x @ %02x [mask = %04x]\n", shortname(), basetag(), data, offset, mem_mask); } } // this signal tells us to expose our autoconfig values -WRITE_LINE_MEMBER( dmac_device::configin_w ) +WRITE_LINE_MEMBER( amiga_dmac_device::configin_w ) { - if (VERBOSE) - logerror("%s('%s'): configin_w (%d)\n", shortname(), basetag(), state); + LOG("%s('%s'): configin_w (%d)\n", shortname(), basetag(), state); if (state == 0 && !m_configured) { @@ -417,10 +387,9 @@ WRITE_LINE_MEMBER( dmac_device::configin_w ) } // this sets the ram size depending on the line voltage -WRITE_LINE_MEMBER( dmac_device::ramsz_w ) +WRITE_LINE_MEMBER( amiga_dmac_device::ramsz_w ) { - if (VERBOSE) - logerror("%s('%s'): ramsz_w (%d)\n", shortname(), basetag(), state); + LOG("%s('%s'): ramsz_w (%d)\n", shortname(), basetag(), state); switch (state) { @@ -432,10 +401,9 @@ WRITE_LINE_MEMBER( dmac_device::ramsz_w ) } // reset the device -WRITE_LINE_MEMBER( dmac_device::rst_w ) +WRITE_LINE_MEMBER( amiga_dmac_device::rst_w ) { - if (VERBOSE) - logerror("%s('%s'): rst_w (%d)\n", shortname(), basetag(), state); + LOG("%s('%s'): rst_w (%d)\n", shortname(), basetag(), state); if (m_rst == 1 && state == 0) device_reset(); @@ -444,10 +412,9 @@ WRITE_LINE_MEMBER( dmac_device::rst_w ) } // external interrupt -WRITE_LINE_MEMBER( dmac_device::intx_w ) +WRITE_LINE_MEMBER( amiga_dmac_device::intx_w ) { - if (VERBOSE) - logerror("%s('%s'): intx_w (%d)\n", shortname(), basetag(), state); + LOG("%s('%s'): intx_w (%d)\n", shortname(), basetag(), state); if (state) m_istr |= ISTR_INTS; @@ -458,10 +425,9 @@ WRITE_LINE_MEMBER( dmac_device::intx_w ) } // data request -WRITE_LINE_MEMBER( dmac_device::xdreq_w ) +WRITE_LINE_MEMBER( amiga_dmac_device::xdreq_w ) { - if (VERBOSE) - logerror("%s('%s'): xdreq_w (%d)\n", shortname(), basetag(), state); + LOG("%s('%s'): xdreq_w (%d)\n", shortname(), basetag(), state); if (m_dma_active) { diff --git a/src/devices/machine/dmac.h b/src/devices/machine/dmac.h index 464d7c37ed5..f9f06e3d85c 100644 --- a/src/devices/machine/dmac.h +++ b/src/devices/machine/dmac.h @@ -8,10 +8,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_MACHINE_DMAC_H +#define MAME_MACHINE_DMAC_H -#ifndef __DMAC_H__ -#define __DMAC_H__ +#pragma once #include "autoconfig.h" @@ -21,66 +21,66 @@ //************************************************************************** #define MCFG_DMAC_ADD(_tag, _clock) \ - MCFG_DEVICE_ADD(_tag, DMAC, _clock) + MCFG_DEVICE_ADD(_tag, AMIGA_DMAC, _clock) #define MCFG_DMAC_CFGOUT_HANDLER(_devcb) \ - devcb = &dmac_device::set_cfgout_handler(*device, DEVCB_##_devcb); + devcb = &amiga_dmac_device::set_cfgout_handler(*device, DEVCB_##_devcb); #define MCFG_DMAC_INT_HANDLER(_devcb) \ - devcb = &dmac_device::set_int_handler(*device, DEVCB_##_devcb); + devcb = &amiga_dmac_device::set_int_handler(*device, DEVCB_##_devcb); #define MCFG_DMAC_XDACK_HANDLER(_devcb) \ - devcb = &dmac_device::set_xdack_handler(*device, DEVCB_##_devcb); + devcb = &amiga_dmac_device::set_xdack_handler(*device, DEVCB_##_devcb); #define MCFG_DMAC_SCSI_READ_HANDLER(_devcb) \ - devcb = &dmac_device::set_scsi_read_handler(*device, DEVCB_##_devcb); + devcb = &amiga_dmac_device::set_scsi_read_handler(*device, DEVCB_##_devcb); #define MCFG_DMAC_SCSI_WRITE_HANDLER(_devcb) \ - devcb = &dmac_device::set_scsi_write_handler(*device, DEVCB_##_devcb); + devcb = &amiga_dmac_device::set_scsi_write_handler(*device, DEVCB_##_devcb); #define MCFG_DMAC_IO_READ_HANDLER(_devcb) \ - devcb = &dmac_device::set_io_read_handler(*device, DEVCB_##_devcb); + devcb = &amiga_dmac_device::set_io_read_handler(*device, DEVCB_##_devcb); #define MCFG_DMAC_IO_WRITE_HANDLER(_devcb) \ - devcb = &dmac_device::set_io_write_handler(*device, DEVCB_##_devcb); + devcb = &amiga_dmac_device::set_io_write_handler(*device, DEVCB_##_devcb); //************************************************************************** // TYPE DEFINITIONS //************************************************************************** -// ======================> dmac_device +// ======================> amiga_dmac_device -class dmac_device : public device_t, public amiga_autoconfig +class amiga_dmac_device : public device_t, public amiga_autoconfig { public: // construction/destruction - dmac_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + amiga_dmac_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // callbacks - template static devcb_base &set_cfgout_handler(device_t &device, _Object object) - { return downcast(device).m_cfgout_handler.set_callback(object); } + template static devcb_base &set_cfgout_handler(device_t &device, Object &&cb) + { return downcast(device).m_cfgout_handler.set_callback(std::forward(cb)); } - template static devcb_base &set_int_handler(device_t &device, _Object object) - { return downcast(device).m_int_handler.set_callback(object); } + template static devcb_base &set_int_handler(device_t &device, Object &&cb) + { return downcast(device).m_int_handler.set_callback(std::forward(cb)); } - template static devcb_base &set_xdack_handler(device_t &device, _Object object) - { return downcast(device).m_xdack_handler.set_callback(object); } + template static devcb_base &set_xdack_handler(device_t &device, Object &&cb) + { return downcast(device).m_xdack_handler.set_callback(std::forward(cb)); } - template static devcb_base &set_scsi_read_handler(device_t &device, _Object object) - { return downcast(device).m_scsi_read_handler.set_callback(object); } + template static devcb_base &set_scsi_read_handler(device_t &device, Object &&cb) + { return downcast(device).m_scsi_read_handler.set_callback(std::forward(cb)); } - template static devcb_base &set_scsi_write_handler(device_t &device, _Object object) - { return downcast(device).m_scsi_write_handler.set_callback(object); } + template static devcb_base &set_scsi_write_handler(device_t &device, Object &&cb) + { return downcast(device).m_scsi_write_handler.set_callback(std::forward(cb)); } - template static devcb_base &set_io_read_handler(device_t &device, _Object object) - { return downcast(device).m_io_read_handler.set_callback(object); } + template static devcb_base &set_io_read_handler(device_t &device, Object &&cb) + { return downcast(device).m_io_read_handler.set_callback(std::forward(cb)); } - template static devcb_base &set_io_write_handler(device_t &device, _Object object) - { return downcast(device).m_io_write_handler.set_callback(object); } + template static devcb_base &set_io_write_handler(device_t &device, Object &&cb) + { return downcast(device).m_io_write_handler.set_callback(std::forward(cb)); } - void set_address_space(address_space *space) { m_space = space; }; - void set_rom(uint8_t *rom) { m_rom = rom; }; - void set_ram(uint8_t *ram) { m_ram = ram; }; + void set_address_space(address_space *space) { m_space = space; } + void set_rom(uint8_t *rom) { m_rom = rom; } + void set_ram(uint8_t *ram) { m_ram = ram; } // input lines DECLARE_WRITE_LINE_MEMBER( configin_w ); @@ -102,7 +102,6 @@ protected: virtual void autoconfig_base_address(offs_t address) override; private: - // control register flags enum { @@ -127,7 +126,7 @@ private: ISTR_FE_FLG = 0x001 // fifo-empty flag }; - static const int ISTR_INT_MASK = 0x1ec; + static constexpr int ISTR_INT_MASK = 0x1ec; // callbacks devcb_write_line m_cfgout_handler; @@ -164,7 +163,6 @@ private: // device type definition -extern const device_type DMAC; - +DECLARE_DEVICE_TYPE(AMIGA_DMAC, amiga_dmac_device) -#endif /* __DMAC_H__ */ +#endif // MAME_MACHINE_DMAC_H diff --git a/src/devices/machine/dp8390.cpp b/src/devices/machine/dp8390.cpp index 6057260da34..a77034461f7 100644 --- a/src/devices/machine/dp8390.cpp +++ b/src/devices/machine/dp8390.cpp @@ -6,26 +6,30 @@ #define DP8390_BYTE_ORDER(w) ((m_regs.dcr & 3) == 3 ? ((data << 8) | (data >> 8)) : data) #define LOOPBACK (!(m_regs.dcr & 8) && (m_regs.tcr & 6)) -const device_type DP8390D = device_creator; -const device_type RTL8019A = device_creator; +DEFINE_DEVICE_TYPE(DP8390D, dp8390d_device, "dp8390d", "DP8390D") +DEFINE_DEVICE_TYPE(RTL8019A, rtl8019a_device, "rtl8019a", "RTL8019A") dp8390d_device::dp8390d_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : dp8390_device(mconfig, DP8390D, "DP8390D", tag, owner, clock, 10.0f, "dp8390d", __FILE__) { - m_type = TYPE_DP8390D; + : dp8390_device(mconfig, DP8390D, tag, owner, clock, TYPE::DP8390D, 10.0f) +{ } rtl8019a_device::rtl8019a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : dp8390_device(mconfig, RTL8019A, "RTL8019A", tag, owner, clock, 10.0f, "rtl8019a", __FILE__) { - m_type = TYPE_RTL8019A; + : dp8390_device(mconfig, RTL8019A, tag, owner, clock, TYPE::RTL8019A, 10.0f) +{ } -dp8390_device::dp8390_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, float bandwidth, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_network_interface(mconfig, *this, bandwidth), m_type(0), - m_irq_cb(*this), - m_breq_cb(*this), - m_mem_read_cb(*this), - m_mem_write_cb(*this), m_reset(0), m_cs(false), m_rdma_active(0) +dp8390_device::dp8390_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, TYPE variant, float bandwidth) + : device_t(mconfig, type, tag, owner, clock) + , device_network_interface(mconfig, *this, bandwidth) + , m_variant(variant) + , m_irq_cb(*this) + , m_breq_cb(*this) + , m_mem_read_cb(*this) + , m_mem_write_cb(*this) + , m_reset(0) + , m_cs(false) + , m_rdma_active(0) { } @@ -296,7 +300,7 @@ READ16_MEMBER(dp8390_device::dp8390_r) { data = m_regs.cr; break; default: - if(m_type == TYPE_RTL8019A) { + if(m_variant == TYPE::RTL8019A) { switch((offset & 0x0f)|(m_regs.cr & 0xc0)) { case 0x0a: data = 'P'; @@ -464,7 +468,7 @@ WRITE16_MEMBER(dp8390_device::dp8390_w) { set_cr(data); break; default: - if(m_type == TYPE_RTL8019A) { + if(m_variant == TYPE::RTL8019A) { switch((offset & 0x0f)|(m_regs.cr & 0xc0)) { // XXX: rest of the regs default: diff --git a/src/devices/machine/dp8390.h b/src/devices/machine/dp8390.h index 04a4dcea137..b7794e43903 100644 --- a/src/devices/machine/dp8390.h +++ b/src/devices/machine/dp8390.h @@ -1,8 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Carl -#ifndef _DP8390_H_ -#define _DP8390_H_ +#ifndef MAME_MACHINE_DP8390_H +#define MAME_MACHINE_DP8390_H +#pragma once // device stuff @@ -32,17 +33,13 @@ devcb = &rtl8019a_device::set_mem_write_callback(*device, DEVCB_##_devcb); -class dp8390_device : public device_t, - public device_network_interface +class dp8390_device : public device_t, public device_network_interface { public: - // construction/destruction - dp8390_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, float bandwidth, const char *shortname, const char *source); - - template static devcb_base &set_irq_callback(device_t &device, _Object object) { return downcast(device).m_irq_cb.set_callback(object); } - template static devcb_base &set_breq_callback(device_t &device, _Object object) { return downcast(device).m_breq_cb.set_callback(object); } - template static devcb_base &set_mem_read_callback(device_t &device, _Object object) { return downcast(device).m_mem_read_cb.set_callback(object); } - template static devcb_base &set_mem_write_callback(device_t &device, _Object object) { return downcast(device).m_mem_write_cb.set_callback(object); } + template static devcb_base &set_irq_callback(device_t &device, Object &&cb) { return downcast(device).m_irq_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_breq_callback(device_t &device, Object &&cb) { return downcast(device).m_breq_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_mem_read_callback(device_t &device, Object &&cb) { return downcast(device).m_mem_read_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_mem_write_callback(device_t &device, Object &&cb) { return downcast(device).m_mem_write_cb.set_callback(std::forward(cb)); } DECLARE_WRITE16_MEMBER( dp8390_w ); DECLARE_READ16_MEMBER( dp8390_r ); @@ -51,16 +48,19 @@ public: void recv_cb(uint8_t *buf, int len) override; protected: + enum class TYPE { + DP8390D, + RTL8019A + }; + + // construction/destruction + dp8390_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, TYPE varian, float bandwidth); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; - int m_type; - - enum { - TYPE_DP8390D = 0, - TYPE_RTL8019A - }; + TYPE const m_variant; private: devcb_write_line m_irq_cb; @@ -139,7 +139,7 @@ public: }; // device type definition -extern const device_type DP8390D; -extern const device_type RTL8019A; +DECLARE_DEVICE_TYPE(DP8390D, dp8390d_device) +DECLARE_DEVICE_TYPE(RTL8019A, rtl8019a_device) -#endif +#endif // MAME_MACHINE_DP8390_H diff --git a/src/devices/machine/ds1204.cpp b/src/devices/machine/ds1204.cpp index 8e326ab451f..17ff81b8c0b 100644 --- a/src/devices/machine/ds1204.cpp +++ b/src/devices/machine/ds1204.cpp @@ -7,10 +7,12 @@ * */ -#include #include "emu.h" #include "ds1204.h" +#include + + #define VERBOSE_LEVEL ( 0 ) inline void ATTR_PRINTF( 3, 4 ) ds1204_device::verboselog( int n_level, const char *s_fmt, ... ) @@ -27,10 +29,10 @@ inline void ATTR_PRINTF( 3, 4 ) ds1204_device::verboselog( int n_level, const ch } // device type definition -const device_type DS1204 = device_creator; +DEFINE_DEVICE_TYPE(DS1204, ds1204_device, "ds1204", "DS1204") ds1204_device::ds1204_device( const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock ) - : device_t( mconfig, DS1204, "DS1204", tag, owner, clock, "ds1204", __FILE__ ), + : device_t(mconfig, DS1204, tag, owner, clock), device_nvram_interface(mconfig, *this), m_region(*this, DEVICE_SELF), m_rst( 0 ), diff --git a/src/devices/machine/ds1204.h b/src/devices/machine/ds1204.h index 7c083ea0f39..03d29262d54 100644 --- a/src/devices/machine/ds1204.h +++ b/src/devices/machine/ds1204.h @@ -7,17 +7,16 @@ * */ -#pragma once +#ifndef MAME_MACHINE_DS1204_H +#define MAME_MACHINE_DS1204_H -#ifndef __DS1204_H__ -#define __DS1204_H__ +#pragma once #define MCFG_DS1204_ADD( _tag ) \ MCFG_DEVICE_ADD( _tag, DS1204, 0 ) -class ds1204_device : public device_t, - public device_nvram_interface +class ds1204_device : public device_t, public device_nvram_interface { public: // construction/destruction @@ -89,6 +88,6 @@ private: // device type definition -extern const device_type DS1204; +DECLARE_DEVICE_TYPE(DS1204, ds1204_device) -#endif +#endif // MAME_MACHINE_DS1204_H diff --git a/src/devices/machine/ds1205.cpp b/src/devices/machine/ds1205.cpp index 400046c3406..3dca4c8de2f 100644 --- a/src/devices/machine/ds1205.cpp +++ b/src/devices/machine/ds1205.cpp @@ -7,10 +7,12 @@ * */ -#include #include "emu.h" #include "ds1205.h" +#include + + #define VERBOSE_LEVEL ( 0 ) inline void ATTR_PRINTF( 3, 4 ) ds1205_device::verboselog( int n_level, const char *s_fmt, ... ) @@ -27,10 +29,10 @@ inline void ATTR_PRINTF( 3, 4 ) ds1205_device::verboselog( int n_level, const ch } // device type definition -const device_type DS1205 = device_creator; +DEFINE_DEVICE_TYPE(DS1205, ds1205_device, "ds1205", "DS1205") ds1205_device::ds1205_device( const machine_config &mconfig, const char *tag, device_t *owner, u32 clock ) - : device_t( mconfig, DS1205, "DS1205", tag, owner, clock, "ds1205", __FILE__ ), + : device_t(mconfig, DS1205, tag, owner, clock), device_nvram_interface(mconfig, *this), m_region(*this, DEVICE_SELF), m_rst( 0 ), diff --git a/src/devices/machine/ds1205.h b/src/devices/machine/ds1205.h index 8856d5d2567..92941c87090 100644 --- a/src/devices/machine/ds1205.h +++ b/src/devices/machine/ds1205.h @@ -7,17 +7,16 @@ * */ -#pragma once +#ifndef MAME_MACHINE_DS1205_H +#define MAME_MACHINE_DS1205_H -#ifndef __DS1205_H__ -#define __DS1205_H__ +#pragma once #define MCFG_DS1205_ADD( _tag ) \ MCFG_DEVICE_ADD( _tag, DS1205, 0 ) -class ds1205_device : public device_t, - public device_nvram_interface +class ds1205_device : public device_t, public device_nvram_interface { public: // construction/destruction @@ -95,6 +94,6 @@ private: // device type definition -extern const device_type DS1205; +DECLARE_DEVICE_TYPE(DS1205, ds1205_device) -#endif +#endif // MAME_MACHINE_DS1205_H diff --git a/src/devices/machine/ds128x.cpp b/src/devices/machine/ds128x.cpp index 88b40ac3d9c..7c824aba638 100644 --- a/src/devices/machine/ds128x.cpp +++ b/src/devices/machine/ds128x.cpp @@ -5,13 +5,13 @@ /// TODO: Only DV2/DV1/DV0 == 0/1/0 is supported as the chip only has a 15 stage divider and not 22. -const device_type DS12885 = device_creator; +DEFINE_DEVICE_TYPE(DS12885, ds12885_device, "ds12885", "DS12885 RTC/NVRAM") //------------------------------------------------- // ds12885_device - constructor //------------------------------------------------- ds12885_device::ds12885_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mc146818_device(mconfig, DS12885, "DS12885", tag, owner, clock, "ds12885", __FILE__) + : mc146818_device(mconfig, DS12885, tag, owner, clock) { } diff --git a/src/devices/machine/ds128x.h b/src/devices/machine/ds128x.h index feb10b84ecd..e74227e58b1 100644 --- a/src/devices/machine/ds128x.h +++ b/src/devices/machine/ds128x.h @@ -1,7 +1,7 @@ // license:BSD-3-Clause // copyright-holders:smf -#ifndef __DS128X_H__ -#define __DS128X_H__ +#ifndef MAME_MACHINE_DS128X_H +#define MAME_MACHINE_DS128X_H #include "mc146818.h" @@ -21,6 +21,6 @@ protected: }; // device type definition -extern const device_type DS12885; +DECLARE_DEVICE_TYPE(DS12885, ds12885_device) -#endif +#endif // MAME_MACHINE_DS128X_H diff --git a/src/devices/machine/ds1302.cpp b/src/devices/machine/ds1302.cpp index 8050523f65a..c74faa2113a 100644 --- a/src/devices/machine/ds1302.cpp +++ b/src/devices/machine/ds1302.cpp @@ -18,15 +18,14 @@ #include "emu.h" #include "ds1302.h" +//#define VERBOSE 1 +#include "logmacro.h" //************************************************************************** // MACROS / CONSTANTS //************************************************************************** -#define LOG 0 - - #define RAM_SIZE 0x1f // 31 bytes @@ -66,7 +65,7 @@ enum //************************************************************************** // device type definition -const device_type DS1302 = device_creator; +DEFINE_DEVICE_TYPE(DS1302, ds1302_device, "ds1302", "DS1302 Timekeeper") //------------------------------------------------- @@ -74,7 +73,7 @@ const device_type DS1302 = device_creator; //------------------------------------------------- ds1302_device::ds1302_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, DS1302, "DS1302", tag, owner, clock, "ds1302", __FILE__), + : device_t(mconfig, DS1302, tag, owner, clock), device_rtc_interface(mconfig, *this), device_nvram_interface(mconfig, *this) { @@ -190,7 +189,7 @@ void ds1302_device::rtc_clock_updated(int year, int month, int day, int day_of_w WRITE_LINE_MEMBER( ds1302_device::ce_w ) { - if (LOG) logerror("DS1302 '%s' CE: %u\n", tag(), state); + LOG("DS1302 CE: %u\n", state); if (!state && m_ce) { @@ -223,26 +222,26 @@ void ds1302_device::load_shift_register() { m_data = m_ram[m_addr]; - if (LOG) logerror("DS1302 '%s' Read RAM %u:%02x\n", tag(), m_addr, m_data); + LOG("DS1302 Read RAM %u:%02x\n", m_addr, m_data); } else { m_data = m_user[m_addr]; - if (LOG) logerror("DS1302 '%s' Read Clock %u:%02x\n", tag(), m_addr, m_data); + LOG("DS1302 Read Clock %u:%02x\n", m_addr, m_data); } } else { if (COMMAND_RAM) { - if (LOG) logerror("DS1302 '%s' Write RAM %u:%02x\n", tag(), m_addr, m_data); + LOG("DS1302 Write RAM %u:%02x\n", m_addr, m_data); m_ram[m_addr] = m_data; } else if (m_addr < 9) { - if (LOG) logerror("DS1302 '%s' Write Clock %u:%02x\n", tag(), m_addr, m_data); + LOG("DS1302 Write Clock %u:%02x\n", m_addr, m_data); m_reg[m_addr] = m_data; } @@ -265,7 +264,7 @@ void ds1302_device::input_bit() if (m_bits == 8) { - if (LOG) logerror("DS1302 '%s' Command: %02x\n", tag(), m_cmd); + LOG("DS1302 Command: %02x\n", m_cmd); m_bits = 0; m_addr = (m_cmd >> 1) & 0x1f; @@ -302,7 +301,7 @@ void ds1302_device::input_bit() if (m_bits == 8) { - if (LOG) logerror("DS1302 '%s' Data: %02x\n", tag(), m_data); + LOG("DS1302 Data: %02x\n", m_data); m_bits = 0; @@ -373,7 +372,7 @@ void ds1302_device::output_bit() WRITE_LINE_MEMBER( ds1302_device::sclk_w ) { - if (LOG) logerror("DS1302 '%s' CLK: %u\n", tag(), state); + LOG("DS1302 CLK: %u\n", state); if (!m_ce) return; @@ -396,7 +395,7 @@ WRITE_LINE_MEMBER( ds1302_device::sclk_w ) WRITE_LINE_MEMBER( ds1302_device::io_w ) { - if (LOG) logerror("DS1302 '%s' I/O: %u\n", tag(), state); + LOG("DS1302 I/O: %u\n", state); m_io = state; } diff --git a/src/devices/machine/ds1302.h b/src/devices/machine/ds1302.h index 9bc0f5c23b1..9d12f2498b1 100644 --- a/src/devices/machine/ds1302.h +++ b/src/devices/machine/ds1302.h @@ -13,10 +13,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_MACHINE_DS1302_H +#define MAME_MACHINE_DS1302_H -#ifndef __DS1302_H__ -#define __DS1302_H__ +#pragma once #include "dirtc.h" @@ -89,8 +89,6 @@ private: // device type definition -extern const device_type DS1302; - - +DECLARE_DEVICE_TYPE(DS1302, ds1302_device) -#endif +#endif // MAME_MACHINE_DS1302_H diff --git a/src/devices/machine/ds1315.cpp b/src/devices/machine/ds1315.cpp index 6056f4e075e..7be26b1a19e 100644 --- a/src/devices/machine/ds1315.cpp +++ b/src/devices/machine/ds1315.cpp @@ -26,10 +26,10 @@ #include "coreutil.h" -const device_type DS1315 = device_creator; +DEFINE_DEVICE_TYPE(DS1315, ds1315_device, "ds1315", "Dallas DS1315 Phantom Time Chip") ds1315_device::ds1315_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, DS1315, "Dallas Semiconductor DS1315", tag, owner, clock, "ds1315", __FILE__), m_mode(), m_count(0) + : device_t(mconfig, DS1315, tag, owner, clock), m_mode(), m_count(0) { } diff --git a/src/devices/machine/ds1315.h b/src/devices/machine/ds1315.h index 6897bfc0091..4e45a1e5ca2 100644 --- a/src/devices/machine/ds1315.h +++ b/src/devices/machine/ds1315.h @@ -10,8 +10,10 @@ *********************************************************************/ -#ifndef __DS1315_H__ -#define __DS1315_H__ +#ifndef MAME_MACHINE_DS1315_H +#define MAME_MACHINE_DS1315_H + +#pragma once @@ -19,17 +21,15 @@ MACROS ***************************************************************************/ -enum ds1315_mode_t -{ - DS_SEEK_MATCHING, - DS_CALENDAR_IO -}; - -ALLOW_SAVE_TYPE(ds1315_mode_t); - class ds1315_device : public device_t { public: + enum mode_t + { + DS_SEEK_MATCHING, + DS_CALENDAR_IO + }; + ds1315_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); ~ds1315_device() {} @@ -48,7 +48,7 @@ protected: private: // internal state - ds1315_mode_t m_mode; + mode_t m_mode; void fill_raw_data(); void input_raw_data(); @@ -57,7 +57,9 @@ private: uint8_t m_raw_data[8*8]; }; -extern const device_type DS1315; +ALLOW_SAVE_TYPE(ds1315_device::mode_t); + +DECLARE_DEVICE_TYPE(DS1315, ds1315_device) /*************************************************************************** DEVICE CONFIGURATION MACROS @@ -67,4 +69,4 @@ extern const device_type DS1315; MCFG_DEVICE_ADD(_tag, DS1315, 0) -#endif /* __DS1315_H__ */ +#endif // MAME_MACHINE_DS1315_H diff --git a/src/devices/machine/ds1386.cpp b/src/devices/machine/ds1386.cpp index 74c5d14fdf5..82c8fd55882 100644 --- a/src/devices/machine/ds1386.cpp +++ b/src/devices/machine/ds1386.cpp @@ -27,11 +27,11 @@ #define HOURS_12_24 (0x40) #define HOURS_AM_PM (0x20) -const device_type DS1386_8K = device_creator; -const device_type DS1386_32K = device_creator; +DEFINE_DEVICE_TYPE(DS1386_8K, ds1386_8k_device, "ds1386_8k", "DS1386 RAMified Watchdog Timekeeper (8K)") +DEFINE_DEVICE_TYPE(DS1386_32K, ds1386_32k_device, "ds1386_32k", "DS1386 RAMified Watchdog Timekeeper (32K)") -ds1386_device::ds1386_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, size_t size) - : device_t(mconfig, type, name, tag, owner, clock, shortname, __FILE__) +ds1386_device::ds1386_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, size_t size) + : device_t(mconfig, type, tag, owner, clock) , device_nvram_interface(mconfig, *this) , m_tod_alarm(0) , m_watchdog_alarm(0) @@ -61,12 +61,12 @@ ds1386_device::ds1386_device(const machine_config &mconfig, device_type type, co } ds1386_8k_device::ds1386_8k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : ds1386_device(mconfig, DS1386_8K, "DS1386-8K", tag, owner, clock, "ds1386_8k", 8192) + : ds1386_device(mconfig, DS1386_8K, tag, owner, clock, 8*1024) { } ds1386_32k_device::ds1386_32k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : ds1386_device(mconfig, DS1386_32K, "DS1386-32K", tag, owner, clock, "ds1386_32k", 32768) + : ds1386_device(mconfig, DS1386_32K, tag, owner, clock, 32*1024) { } diff --git a/src/devices/machine/ds1386.h b/src/devices/machine/ds1386.h index e7d0b6aaea6..12f2ad11016 100644 --- a/src/devices/machine/ds1386.h +++ b/src/devices/machine/ds1386.h @@ -51,10 +51,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_MACHINE_DS1386_H +#define MAME_MACHINE_DS1386_H -#ifndef DS1386_H -#define DS1386_H +#pragma once // handlers @@ -80,8 +80,6 @@ class ds1386_device : public device_t, public device_nvram_interface { public: - ds1386_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, size_t size); - DECLARE_WRITE8_MEMBER( data_w ); DECLARE_READ8_MEMBER( data_r ); @@ -89,9 +87,9 @@ public: DECLARE_WRITE_LINE_MEMBER( oe_w ); DECLARE_WRITE_LINE_MEMBER( we_w ); - template static devcb_base &set_inta_cb(device_t &device, _Object object) { return downcast(device).m_inta_cb.set_callback(object); } - template static devcb_base &set_intb_cb(device_t &device, _Object object) { return downcast(device).m_intb_cb.set_callback(object); } - template static devcb_base &set_sqw_cb(device_t &device, _Object object) { return downcast(device).m_sqw_cb.set_callback(object); } + template static devcb_base &set_inta_cb(device_t &device, Object &&cb) { return downcast(device).m_inta_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_intb_cb(device_t &device, Object &&cb) { return downcast(device).m_intb_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_sqw_cb(device_t &device, Object &&cb) { return downcast(device).m_sqw_cb.set_callback(std::forward(cb)); } protected: enum @@ -122,6 +120,8 @@ protected: ALARM_PER_MINUTE = 0x7 }; + ds1386_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, size_t size); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -132,11 +132,11 @@ protected: virtual void nvram_read(emu_file &file) override; virtual void nvram_write(emu_file &file) override; - static const device_timer_id CLOCK_TIMER = 0; - static const device_timer_id SQUAREWAVE_TIMER = 1; - static const device_timer_id WATCHDOG_TIMER = 2; - static const device_timer_id INTA_TIMER = 3; - static const device_timer_id INTB_TIMER = 4; + static constexpr device_timer_id CLOCK_TIMER = 0; + static constexpr device_timer_id SQUAREWAVE_TIMER = 1; + static constexpr device_timer_id WATCHDOG_TIMER = 2; + static constexpr device_timer_id INTA_TIMER = 3; + static constexpr device_timer_id INTB_TIMER = 4; protected: void safe_inta_cb(int state); @@ -203,7 +203,7 @@ public: }; // device type definition -extern const device_type DS1386_8K; -extern const device_type DS1386_32K; +DECLARE_DEVICE_TYPE(DS1386_8K, ds1386_8k_device) +DECLARE_DEVICE_TYPE(DS1386_32K, ds1386_32k_device) -#endif +#endif // MAME_MACHINE_DS1386_H diff --git a/src/devices/machine/ds2401.cpp b/src/devices/machine/ds2401.cpp index c0a6b4bce00..bb1a3064dad 100644 --- a/src/devices/machine/ds2401.cpp +++ b/src/devices/machine/ds2401.cpp @@ -27,10 +27,12 @@ inline void ds2401_device::verboselog(int n_level, const char *s_fmt, ...) } // device type definition -const device_type DS2401 = device_creator; +DEFINE_DEVICE_TYPE(DS2401, ds2401_device, "ds2401", "DS2401 Silicon Serial Number") ds2401_device::ds2401_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, DS2401, "DS2401", tag, owner, clock, "ds2401", __FILE__), m_state(0), m_bit(0), m_shift(0), m_byte(0), m_rx(false), m_tx(false), m_timer_main(nullptr), m_timer_reset(nullptr) + : device_t(mconfig, DS2401, tag, owner, clock) + , m_state(0), m_bit(0), m_shift(0), m_byte(0), m_rx(false), m_tx(false) + , m_timer_main(nullptr), m_timer_reset(nullptr) { } diff --git a/src/devices/machine/ds2401.h b/src/devices/machine/ds2401.h index d67c17221ac..44f8d1485a1 100644 --- a/src/devices/machine/ds2401.h +++ b/src/devices/machine/ds2401.h @@ -8,8 +8,10 @@ * */ -#ifndef __DS2401_H__ -#define __DS2401_H__ +#ifndef MAME_MACHINE_DS2401_H +#define MAME_MACHINE_DS2401_H + +#pragma once #define MCFG_DS2401_ADD(_tag) \ MCFG_DEVICE_ADD(_tag, DS2401, 0) @@ -66,6 +68,6 @@ private: // device type definition -extern const device_type DS2401; +DECLARE_DEVICE_TYPE(DS2401, ds2401_device) -#endif +#endif // MAME_MACHINE_DS2401_H diff --git a/src/devices/machine/ds2404.cpp b/src/devices/machine/ds2404.cpp index 7d1dbfcf103..081107d1651 100644 --- a/src/devices/machine/ds2404.cpp +++ b/src/devices/machine/ds2404.cpp @@ -18,14 +18,14 @@ //************************************************************************** // device type definition -const device_type DS2404 = device_creator; +DEFINE_DEVICE_TYPE(DS2404, ds2404_device, "ds2404", "DS2404") //------------------------------------------------- // ds2404_device - constructor //------------------------------------------------- ds2404_device::ds2404_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, DS2404, "DS2404", tag, owner, clock, "ds2404", __FILE__), + : device_t(mconfig, DS2404, tag, owner, clock), device_nvram_interface(mconfig, *this), m_tick_timer(nullptr), m_ref_year(0), m_ref_month(0), m_ref_day(0), m_address(0), m_offset(0), diff --git a/src/devices/machine/ds2404.h b/src/devices/machine/ds2404.h index 237aeae176f..97d2914e9c4 100644 --- a/src/devices/machine/ds2404.h +++ b/src/devices/machine/ds2404.h @@ -8,10 +8,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_MACHINE_DS2404_H +#define MAME_MACHINE_DS2404_H -#ifndef __DS2404_H__ -#define __DS2404_H__ +#pragma once @@ -43,8 +43,7 @@ // ======================> ds2404_device -class ds2404_device : public device_t, - public device_nvram_interface +class ds2404_device : public device_t, public device_nvram_interface { public: // construction/destruction @@ -80,7 +79,6 @@ protected: virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; private: - void ds2404_rom_cmd(uint8_t cmd); void ds2404_cmd(uint8_t cmd); @@ -122,7 +120,6 @@ private: // device type definition -extern const device_type DS2404; - +DECLARE_DEVICE_TYPE(DS2404, ds2404_device) -#endif /* __DS2404_H__ */ +#endif // MAME_MACHINE_DS2404_H diff --git a/src/devices/machine/ds75160a.cpp b/src/devices/machine/ds75160a.cpp index 1accfc2ace2..d698fedca4a 100644 --- a/src/devices/machine/ds75160a.cpp +++ b/src/devices/machine/ds75160a.cpp @@ -15,7 +15,7 @@ // DEVICE TYPE DEFINITIONS //************************************************************************** -const device_type DS75160A = device_creator; +DEFINE_DEVICE_TYPE(DS75160A, ds75160a_device, "ds75160a", "DS75160A GPIB Transceiver") @@ -28,7 +28,7 @@ const device_type DS75160A = device_creator; //------------------------------------------------- ds75160a_device::ds75160a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, DS75160A, "DS75160A", tag, owner, clock, "ds75160a", __FILE__), + : device_t(mconfig, DS75160A, tag, owner, clock), m_read(*this), m_write(*this), m_data(0xff), diff --git a/src/devices/machine/ds75160a.h b/src/devices/machine/ds75160a.h index 82caff1dd20..85ee2727809 100644 --- a/src/devices/machine/ds75160a.h +++ b/src/devices/machine/ds75160a.h @@ -19,10 +19,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_MACHINE_DS75160A_H +#define MAME_MACHINE_DS75160A_H -#ifndef __DS75160A__ -#define __DS75160A__ +#pragma once @@ -49,9 +49,9 @@ public: // construction/destruction ds75160a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template void set_callbacks(_read rd, _write wr) { - m_read.set_callback(rd); - m_write.set_callback(wr); + template void set_callbacks(Read &&rd, Write &&wr) { + m_read.set_callback(std::forward(rd)); + m_write.set_callback(std::forward(wr)); } DECLARE_READ8_MEMBER( read ); @@ -76,8 +76,6 @@ private: // device type definition -extern const device_type DS75160A; - - +DECLARE_DEVICE_TYPE(DS75160A, ds75160a_device) -#endif +#endif // MAME_MACHINE_DS75160A_H diff --git a/src/devices/machine/ds75161a.cpp b/src/devices/machine/ds75161a.cpp index 5c35c4717e2..9d75d6b65a0 100644 --- a/src/devices/machine/ds75161a.cpp +++ b/src/devices/machine/ds75161a.cpp @@ -15,7 +15,7 @@ // DEVICE TYPE DEFINITIONS //************************************************************************** -const device_type DS75161A = device_creator; +DEFINE_DEVICE_TYPE(DS75161A, ds75161a_device, "ds75161a", "DS75161A GPIB Transceiver") @@ -28,7 +28,7 @@ const device_type DS75161A = device_creator; //------------------------------------------------- ds75161a_device::ds75161a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, DS75161A, "DS75161A", tag, owner, clock, "ds75161a", __FILE__), + : device_t(mconfig, DS75161A, tag, owner, clock), m_in_ren_cb(*this), m_in_ifc_cb(*this), m_in_ndac_cb(*this), diff --git a/src/devices/machine/ds75161a.h b/src/devices/machine/ds75161a.h index 1cbc8564694..7a51ef8a81f 100644 --- a/src/devices/machine/ds75161a.h +++ b/src/devices/machine/ds75161a.h @@ -19,10 +19,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_MACHINE_DS75161A_H +#define MAME_MACHINE_DS75161A_H -#ifndef __DS75161A__ -#define __DS75161A__ +#pragma once @@ -91,22 +91,22 @@ public: // construction/destruction ds75161a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_in_ren_callback(device_t &device, _Object object) { return downcast(device).m_in_ren_cb.set_callback(object); } - template static devcb_base &set_in_ifc_callback(device_t &device, _Object object) { return downcast(device).m_in_ifc_cb.set_callback(object); } - template static devcb_base &set_in_ndac_callback(device_t &device, _Object object) { return downcast(device).m_in_ndac_cb.set_callback(object); } - template static devcb_base &set_in_nrfd_callback(device_t &device, _Object object) { return downcast(device).m_in_nrfd_cb.set_callback(object); } - template static devcb_base &set_in_dav_callback(device_t &device, _Object object) { return downcast(device).m_in_dav_cb.set_callback(object); } - template static devcb_base &set_in_eoi_callback(device_t &device, _Object object) { return downcast(device).m_in_eoi_cb.set_callback(object); } - template static devcb_base &set_in_atn_callback(device_t &device, _Object object) { return downcast(device).m_in_atn_cb.set_callback(object); } - template static devcb_base &set_in_srq_callback(device_t &device, _Object object) { return downcast(device).m_in_srq_cb.set_callback(object); } - template static devcb_base &set_out_ren_callback(device_t &device, _Object object) { return downcast(device).m_out_ren_cb.set_callback(object); } - template static devcb_base &set_out_ifc_callback(device_t &device, _Object object) { return downcast(device).m_out_ifc_cb.set_callback(object); } - template static devcb_base &set_out_ndac_callback(device_t &device, _Object object) { return downcast(device).m_out_ndac_cb.set_callback(object); } - template static devcb_base &set_out_nrfd_callback(device_t &device, _Object object) { return downcast(device).m_out_nrfd_cb.set_callback(object); } - template static devcb_base &set_out_dav_callback(device_t &device, _Object object) { return downcast(device).m_out_dav_cb.set_callback(object); } - template static devcb_base &set_out_eoi_callback(device_t &device, _Object object) { return downcast(device).m_out_eoi_cb.set_callback(object); } - template static devcb_base &set_out_atn_callback(device_t &device, _Object object) { return downcast(device).m_out_atn_cb.set_callback(object); } - template static devcb_base &set_out_srq_callback(device_t &device, _Object object) { return downcast(device).m_out_srq_cb.set_callback(object); } + template static devcb_base &set_in_ren_callback(device_t &device, Object &&cb) { return downcast(device).m_in_ren_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_in_ifc_callback(device_t &device, Object &&cb) { return downcast(device).m_in_ifc_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_in_ndac_callback(device_t &device, Object &&cb) { return downcast(device).m_in_ndac_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_in_nrfd_callback(device_t &device, Object &&cb) { return downcast(device).m_in_nrfd_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_in_dav_callback(device_t &device, Object &&cb) { return downcast(device).m_in_dav_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_in_eoi_callback(device_t &device, Object &&cb) { return downcast(device).m_in_eoi_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_in_atn_callback(device_t &device, Object &&cb) { return downcast(device).m_in_atn_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_in_srq_callback(device_t &device, Object &&cb) { return downcast(device).m_in_srq_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_ren_callback(device_t &device, Object &&cb) { return downcast(device).m_out_ren_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_ifc_callback(device_t &device, Object &&cb) { return downcast(device).m_out_ifc_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_ndac_callback(device_t &device, Object &&cb) { return downcast(device).m_out_ndac_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_nrfd_callback(device_t &device, Object &&cb) { return downcast(device).m_out_nrfd_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_dav_callback(device_t &device, Object &&cb) { return downcast(device).m_out_dav_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_eoi_callback(device_t &device, Object &&cb) { return downcast(device).m_out_eoi_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_atn_callback(device_t &device, Object &&cb) { return downcast(device).m_out_atn_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_srq_callback(device_t &device, Object &&cb) { return downcast(device).m_out_srq_cb.set_callback(std::forward(cb)); } DECLARE_WRITE_LINE_MEMBER( te_w ); DECLARE_WRITE_LINE_MEMBER( dc_w ); @@ -169,8 +169,6 @@ private: // device type definition -extern const device_type DS75161A; - - +DECLARE_DEVICE_TYPE(DS75161A, ds75161a_device) -#endif +#endif // MAME_MACHINE_DS75161A_H diff --git a/src/devices/machine/e0516.cpp b/src/devices/machine/e0516.cpp index d4b83533e5f..a5d029afe27 100644 --- a/src/devices/machine/e0516.cpp +++ b/src/devices/machine/e0516.cpp @@ -32,15 +32,17 @@ enum //************************************************************************** // device type definition -const device_type E0516 = device_creator; +DEFINE_DEVICE_TYPE(E0516, e0516_device, "e0516", "E05-16 RTC") //------------------------------------------------- // e0516_device - constructor //------------------------------------------------- e0516_device::e0516_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, E0516, "E05-16", tag, owner, clock, "e0516", __FILE__), - device_rtc_interface(mconfig, *this), m_cs(0), m_clk(0), m_data_latch(0), m_reg_latch(0), m_read_write(0), m_state(0), m_bits(0), m_dio(0), m_timer(nullptr) + : device_t(mconfig, E0516, tag, owner, clock) + , device_rtc_interface(mconfig, *this) + , m_cs(0), m_clk(0), m_data_latch(0), m_reg_latch(0), m_read_write(0), m_state(0), m_bits(0), m_dio(0) + , m_timer(nullptr) { } diff --git a/src/devices/machine/e0516.h b/src/devices/machine/e0516.h index 6760fd7f06c..46f97315f65 100644 --- a/src/devices/machine/e0516.h +++ b/src/devices/machine/e0516.h @@ -17,10 +17,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_MACHINE_E0516_H +#define MAME_MACHINE_E0516_H -#ifndef __E0516__ -#define __E0516__ +#pragma once #include "dirtc.h" @@ -41,8 +41,7 @@ // ======================> e0516_device -class e0516_device : public device_t, - public device_rtc_interface +class e0516_device : public device_t, public device_rtc_interface { public: // construction/destruction @@ -77,8 +76,6 @@ private: // device type definition -extern const device_type E0516; - - +DECLARE_DEVICE_TYPE(E0516, e0516_device) -#endif +#endif // MAME_MACHINE_E0516_H diff --git a/src/devices/machine/e05a03.cpp b/src/devices/machine/e05a03.cpp index b7c5d66bee2..e20e1b94cb6 100644 --- a/src/devices/machine/e05a03.cpp +++ b/src/devices/machine/e05a03.cpp @@ -14,10 +14,10 @@ DEVICE INTERFACE *****************************************************************************/ -const device_type E05A03 = device_creator; +DEFINE_DEVICE_TYPE(E05A03, e05a03_device, "e05a03", "Epson E05A03 Gate Array") e05a03_device::e05a03_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, E05A03, "E05A03", tag, owner, clock, "e05a03", __FILE__), + : device_t(mconfig, E05A03, tag, owner, clock), m_write_nlq_lp(*this), m_write_pe_lp(*this), m_write_reso(*this), diff --git a/src/devices/machine/e05a03.h b/src/devices/machine/e05a03.h index 07f84299143..5e8fbd28e92 100644 --- a/src/devices/machine/e05a03.h +++ b/src/devices/machine/e05a03.h @@ -6,8 +6,10 @@ ***************************************************************************/ -#ifndef __E05A03_H__ -#define __E05A03_H__ +#ifndef MAME_MACHINE_E05A03_H +#define MAME_MACHINE_E05A03_H + +#pragma once /*************************************************************************** DEVICE CONFIGURATION MACROS @@ -37,13 +39,12 @@ class e05a03_device : public device_t { public: e05a03_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~e05a03_device() {} - template static devcb_base &set_nlq_lp_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_nlq_lp.set_callback(object); } - template static devcb_base &set_pe_lp_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_pe_lp.set_callback(object); } - template static devcb_base &set_reso_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_reso.set_callback(object); } - template static devcb_base &set_pe_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_pe.set_callback(object); } - template static devcb_base &set_data_rd_callback(device_t &device, _Object object) { return downcast(device).m_read_data.set_callback(object); } + template static devcb_base &set_nlq_lp_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_nlq_lp.set_callback(std::forward(cb)); } + template static devcb_base &set_pe_lp_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_pe_lp.set_callback(std::forward(cb)); } + template static devcb_base &set_reso_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_reso.set_callback(std::forward(cb)); } + template static devcb_base &set_pe_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_pe.set_callback(std::forward(cb)); } + template static devcb_base &set_data_rd_callback(device_t &device, Object &&cb) { return downcast(device).m_read_data.set_callback(std::forward(cb)); } DECLARE_WRITE8_MEMBER( write ); DECLARE_READ8_MEMBER( read ); @@ -93,7 +94,6 @@ private: uint8_t m_cr_motor; }; -extern const device_type E05A03; - +DECLARE_DEVICE_TYPE(E05A03, e05a03_device) -#endif /* __E05A03_H__ */ +#endif // MAME_MACHINE_E05A03_H diff --git a/src/devices/machine/e05a30.cpp b/src/devices/machine/e05a30.cpp index 5ff64619ffa..a9b59f41d02 100644 --- a/src/devices/machine/e05a30.cpp +++ b/src/devices/machine/e05a30.cpp @@ -8,22 +8,18 @@ #include "emu.h" #include "e05a30.h" -//#define E05A30DEBUG -#ifdef E05A30DEBUG -#define LOG(...) fprintf(stderr, __VA_ARGS__) -#else -#define LOG(...) -#endif +//#define VERBOSE 1 +#include "logmacro.h" /***************************************************************************** DEVICE INTERFACE *****************************************************************************/ -const device_type E05A30 = device_creator; +DEFINE_DEVICE_TYPE(E05A30, e05a30_device, "e05a30", "Epson E05A30 Gate Array") e05a30_device::e05a30_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, E05A30, "E05A30", tag, owner, clock, "e05a30", __FILE__), + : device_t(mconfig, E05A30, tag, owner, clock), m_write_printhead(*this), m_write_pf_stepper(*this), m_write_cr_stepper(*this), diff --git a/src/devices/machine/e05a30.h b/src/devices/machine/e05a30.h index f5f396f63fd..66ec9c92ed0 100644 --- a/src/devices/machine/e05a30.h +++ b/src/devices/machine/e05a30.h @@ -5,8 +5,8 @@ * */ -#ifndef __E05A30_H__ -#define __E05A30_H__ +#ifndef MAME_MACHINE_E05A30_H +#define MAME_MACHINE_E05A30_H /*************************************************************************** DEVICE CONFIGURATION MACROS @@ -47,17 +47,16 @@ class e05a30_device : public device_t { public: e05a30_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~e05a30_device() {} - - template static devcb_base &set_printhead_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_printhead.set_callback(object); } - template static devcb_base &set_pf_stepper_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_pf_stepper.set_callback(object); } - template static devcb_base &set_cr_stepper_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_cr_stepper.set_callback(object); } - template static devcb_base &set_ready_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_ready.set_callback(object); } - template static devcb_base &set_centronics_ack_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_centronics_ack.set_callback(object); } - template static devcb_base &set_centronics_busy_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_centronics_busy.set_callback(object); } - template static devcb_base &set_centronics_perror_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_centronics_perror.set_callback(object); } - template static devcb_base &set_centronics_fault_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_centronics_fault.set_callback(object); } - template static devcb_base &set_centronics_select_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_centronics_select.set_callback(object); } + + template static devcb_base &set_printhead_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_printhead.set_callback(std::forward(cb)); } + template static devcb_base &set_pf_stepper_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_pf_stepper.set_callback(std::forward(cb)); } + template static devcb_base &set_cr_stepper_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_cr_stepper.set_callback(std::forward(cb)); } + template static devcb_base &set_ready_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_ready.set_callback(std::forward(cb)); } + template static devcb_base &set_centronics_ack_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_centronics_ack.set_callback(std::forward(cb)); } + template static devcb_base &set_centronics_busy_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_centronics_busy.set_callback(std::forward(cb)); } + template static devcb_base &set_centronics_perror_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_centronics_perror.set_callback(std::forward(cb)); } + template static devcb_base &set_centronics_fault_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_centronics_fault.set_callback(std::forward(cb)); } + template static devcb_base &set_centronics_select_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_centronics_select.set_callback(std::forward(cb)); } DECLARE_WRITE8_MEMBER( write ); DECLARE_READ8_MEMBER( read ); @@ -110,6 +109,6 @@ private: uint8_t m_centronics_data_latched; }; -extern const device_type E05A30; +DECLARE_DEVICE_TYPE(E05A30, e05a30_device) -#endif /* __E05A30_H__ */ +#endif // MAME_MACHINE_E05A30_H diff --git a/src/devices/machine/eeprom.cpp b/src/devices/machine/eeprom.cpp index f737e7a5c03..48bed1af960 100644 --- a/src/devices/machine/eeprom.cpp +++ b/src/devices/machine/eeprom.cpp @@ -11,14 +11,8 @@ #include "emu.h" #include "machine/eeprom.h" - - -//************************************************************************** -// DEBUGGING -//************************************************************************** - -#define VERBOSE 0 -#define LOG(x) do { if (VERBOSE) logerror x; } while (0) +//#define VERBOSE 1 +#include "logmacro.h" //************************************************************************** @@ -29,8 +23,8 @@ // eeprom_base_device - constructor //------------------------------------------------- -eeprom_base_device::eeprom_base_device(const machine_config &mconfig, device_type devtype, const char *name, const char *tag, device_t *owner, const char *shortname, const char *file) - : device_t(mconfig, devtype, name, tag, owner, 0, shortname, file), +eeprom_base_device::eeprom_base_device(const machine_config &mconfig, device_type devtype, const char *tag, device_t *owner) + : device_t(mconfig, devtype, tag, owner, 0), device_nvram_interface(mconfig, *this), m_region(*this, DEVICE_SELF), m_cells(0), diff --git a/src/devices/machine/eeprom.h b/src/devices/machine/eeprom.h index e386d5f42cf..2c2fb68f7d1 100644 --- a/src/devices/machine/eeprom.h +++ b/src/devices/machine/eeprom.h @@ -8,10 +8,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_MACHINE_EEPROM_H +#define MAME_MACHINE_EEPROM_H -#ifndef __EEPROM_H__ -#define __EEPROM_H__ +#pragma once @@ -46,10 +46,6 @@ class eeprom_base_device : public device_t, public device_nvram_interface { -protected: - // construction/destruction - eeprom_base_device(const machine_config &mconfig, device_type devtype, const char *name, const char *tag, device_t *owner, const char *shortname, const char *file); - public: // timing constants enum timing_type @@ -83,6 +79,9 @@ public: void internal_write(offs_t address, uint32_t data); protected: + // construction/destruction + eeprom_base_device(const machine_config &mconfig, device_type devtype, const char *tag, device_t *owner); + // device-level overrides virtual void device_validity_check(validity_checker &valid) const override; virtual void device_start() override; @@ -111,5 +110,4 @@ protected: attotime m_completion_time; }; - -#endif +#endif // MAME_MACHINE_EEPROM_H diff --git a/src/devices/machine/eeprompar.cpp b/src/devices/machine/eeprompar.cpp index 46b721d2983..5e63b320add 100644 --- a/src/devices/machine/eeprompar.cpp +++ b/src/devices/machine/eeprompar.cpp @@ -51,8 +51,8 @@ // eeprom_parallel_base_device - constructor //------------------------------------------------- -eeprom_parallel_base_device::eeprom_parallel_base_device(const machine_config &mconfig, device_type devtype, const char *name, const char *tag, device_t *owner, const char *shortname, const char *file) - : eeprom_base_device(mconfig, devtype, name, tag, owner, shortname, file) +eeprom_parallel_base_device::eeprom_parallel_base_device(const machine_config &mconfig, device_type devtype, const char *tag, device_t *owner) + : eeprom_base_device(mconfig, devtype, tag, owner) { } @@ -88,8 +88,8 @@ void eeprom_parallel_base_device::device_reset() // eeprom_parallel_28xx_device - constructor //------------------------------------------------- -eeprom_parallel_28xx_device::eeprom_parallel_28xx_device(const machine_config &mconfig, device_type devtype, const char *name, const char *tag, device_t *owner, const char *shortname, const char *file) - : eeprom_parallel_base_device(mconfig, devtype, name, tag, owner, shortname, file) +eeprom_parallel_28xx_device::eeprom_parallel_28xx_device(const machine_config &mconfig, device_type devtype, const char *tag, device_t *owner) + : eeprom_parallel_base_device(mconfig, devtype, tag, owner) { } @@ -117,11 +117,12 @@ READ8_MEMBER(eeprom_parallel_28xx_device::read) // macro for defining a new device class #define DEFINE_PARALLEL_EEPROM_DEVICE(_baseclass, _lowercase, _uppercase, _bits, _cells) \ eeprom_parallel_##_lowercase##_device::eeprom_parallel_##_lowercase##_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) \ - : eeprom_parallel_##_baseclass##_device(mconfig, EEPROM_PARALLEL_##_uppercase, "Parallel EEPROM " #_uppercase " (" #_cells "x" #_bits ")", tag, owner, #_lowercase, __FILE__) \ + : eeprom_parallel_##_baseclass##_device(mconfig, EEPROM_PARALLEL_##_uppercase, tag, owner) \ { \ static_set_size(*this, _cells, _bits); \ } \ -const device_type EEPROM_PARALLEL_##_uppercase = device_creator; +DEFINE_DEVICE_TYPE(EEPROM_PARALLEL_##_uppercase, eeprom_parallel_##_lowercase##_device, #_lowercase, "Parallel EEPROM " #_uppercase " (" #_cells "x" #_bits ")") + // standard 28XX class of 8-bit EEPROMs DEFINE_PARALLEL_EEPROM_DEVICE(28xx, 2804, 2804, 8, 512) DEFINE_PARALLEL_EEPROM_DEVICE(28xx, 2816, 2816, 8, 2048) diff --git a/src/devices/machine/eeprompar.h b/src/devices/machine/eeprompar.h index e70f22c062b..a440780a009 100644 --- a/src/devices/machine/eeprompar.h +++ b/src/devices/machine/eeprompar.h @@ -8,10 +8,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_MACHINE_EEPROMPAR_H +#define MAME_MACHINE_EEPROMPAR_H -#ifndef __EEPROMPAR_H__ -#define __EEPROMPAR_H__ +#pragma once #include "eeprom.h" @@ -51,9 +51,8 @@ class eeprom_parallel_base_device : public eeprom_base_device { protected: // construction/destruction - eeprom_parallel_base_device(const machine_config &mconfig, device_type devtype, const char *name, const char *tag, device_t *owner, const char *shortname, const char *file); + eeprom_parallel_base_device(const machine_config &mconfig, device_type devtype, const char *tag, device_t *owner); -protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -65,15 +64,15 @@ protected: class eeprom_parallel_28xx_device : public eeprom_parallel_base_device { -protected: - // construction/destruction - eeprom_parallel_28xx_device(const machine_config &mconfig, device_type devtype, const char *name, const char *tag, device_t *owner, const char *shortname, const char *file); - public: // read/write data lines - for now we cheat and ignore the control lines, assuming // they are handled reasonably DECLARE_WRITE8_MEMBER(write); DECLARE_READ8_MEMBER(read); + +protected: + // construction/destruction + eeprom_parallel_28xx_device(const machine_config &mconfig, device_type devtype, const char *tag, device_t *owner); }; @@ -89,7 +88,8 @@ class eeprom_parallel_##_lowercase##_device : public eeprom_parallel_##_baseclas public: \ eeprom_parallel_##_lowercase##_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); \ }; \ -extern const device_type EEPROM_PARALLEL_##_uppercase; +DECLARE_DEVICE_TYPE(EEPROM_PARALLEL_##_uppercase, eeprom_parallel_##_lowercase_device) + // standard 28XX class of 8-bit EEPROMs DECLARE_PARALLEL_EEPROM_DEVICE(28xx, 2804, 2804) DECLARE_PARALLEL_EEPROM_DEVICE(28xx, 2816, 2816) @@ -100,4 +100,4 @@ DECLARE_PARALLEL_EEPROM_DEVICE(28xx, 28010, 28010) DECLARE_PARALLEL_EEPROM_DEVICE(28xx, 28020, 28020) DECLARE_PARALLEL_EEPROM_DEVICE(28xx, 28040, 28040) -#endif +#endif // MAME_MACHINE_EEPROMPAR_H diff --git a/src/devices/machine/eepromser.cpp b/src/devices/machine/eepromser.cpp index d950bf0d0ec..74d51e980f3 100644 --- a/src/devices/machine/eepromser.cpp +++ b/src/devices/machine/eepromser.cpp @@ -118,11 +118,11 @@ #define VERBOSE_PRINTF 0 #define VERBOSE_LOGERROR 0 -#define LOG0(x) do { if (VERBOSE_PRINTF >= 1) printf x; logerror x; } while (0) -#define LOG1(x) do { if (VERBOSE_PRINTF >= 1) printf x; if (VERBOSE_LOGERROR >= 1) logerror x; } while (0) -#define LOG2(x) do { if (VERBOSE_PRINTF >= 2) printf x; if (VERBOSE_LOGERROR >= 2) logerror x; } while (0) -#define LOG3(x) do { if (VERBOSE_PRINTF >= 3) printf x; if (VERBOSE_LOGERROR >= 3) logerror x; } while (0) -#define LOG4(x) do { if (VERBOSE_PRINTF >= 4) printf x; if (VERBOSE_LOGERROR >= 4) logerror x; } while (0) +#define LOG0(...) do { if (VERBOSE_PRINTF >= 1) printf(__VA_ARGS__); logerror(__VA_ARGS__); } while (0) +#define LOG1(...) do { if (VERBOSE_PRINTF >= 1) printf(__VA_ARGS__); if (VERBOSE_LOGERROR >= 1) logerror(__VA_ARGS__); } while (0) +#define LOG2(...) do { if (VERBOSE_PRINTF >= 2) printf(__VA_ARGS__); if (VERBOSE_LOGERROR >= 2) logerror(__VA_ARGS__); } while (0) +#define LOG3(...) do { if (VERBOSE_PRINTF >= 3) printf(__VA_ARGS__); if (VERBOSE_LOGERROR >= 3) logerror(__VA_ARGS__); } while (0) +#define LOG4(...) do { if (VERBOSE_PRINTF >= 4) printf(__VA_ARGS__); if (VERBOSE_LOGERROR >= 4) logerror(__VA_ARGS__); } while (0) @@ -143,8 +143,8 @@ ALLOW_SAVE_TYPE(eeprom_serial_base_device::eeprom_state); // eeprom_serial_base_device - constructor //------------------------------------------------- -eeprom_serial_base_device::eeprom_serial_base_device(const machine_config &mconfig, device_type devtype, const char *name, const char *tag, device_t *owner, const char *shortname, const char *file) - : eeprom_base_device(mconfig, devtype, name, tag, owner, shortname, file), +eeprom_serial_base_device::eeprom_serial_base_device(const machine_config &mconfig, device_type devtype, const char *tag, device_t *owner) + : eeprom_base_device(mconfig, devtype, tag, owner), m_command_address_bits(0), m_streaming_enabled(false), m_output_on_falling_clock_enabled(false), @@ -264,7 +264,7 @@ void eeprom_serial_base_device::base_cs_write(int state) return; // set the new state - LOG4((" cs_write(%d)\n", state)); + LOG4(" cs_write(%d)\n", state); m_cs_state = state; // remember the rising edge time so we don't process CLK signals at the same time @@ -287,7 +287,7 @@ void eeprom_serial_base_device::base_clk_write(int state) return; // set the new state - LOG4((" clk_write(%d)\n", state)); + LOG4(" clk_write(%d)\n", state); m_clk_state = state; handle_event((m_clk_state == ASSERT_LINE) ? EVENT_CLK_RISING_EDGE : EVENT_CLK_FALLING_EDGE); } @@ -301,8 +301,8 @@ void eeprom_serial_base_device::base_clk_write(int state) void eeprom_serial_base_device::base_di_write(int state) { if (state != 0 && state != 1) - LOG0(("EEPROM: Unexpected data at input 0x%X treated as %d\n", state, state & 1)); - LOG3((" di_write(%d)\n", state)); + LOG0("EEPROM: Unexpected data at input 0x%X treated as %d\n", state, state & 1); + LOG3(" di_write(%d)\n", state); m_di_state = state & 1; } @@ -318,7 +318,7 @@ int eeprom_serial_base_device::base_do_read() // to send back a 1 value; the only exception is if reading data and the current output // bit is a 0 int result = (m_state == STATE_READING_DATA && ((m_shift_register & 0x80000000) == 0)) ? CLEAR_LINE : ASSERT_LINE; - LOG3((" do_read(%d)\n", result)); + LOG3(" do_read(%d)\n", result); return result; } @@ -332,7 +332,7 @@ int eeprom_serial_base_device::base_ready_read() { // ready by default, except during long operations int result = ready() ? ASSERT_LINE : CLEAR_LINE; - LOG3((" ready_read(%d)\n", result)); + LOG3(" ready_read(%d)\n", result); return result; } @@ -363,7 +363,7 @@ void eeprom_serial_base_device::set_state(eeprom_state newstate) for (int index = 0; index < ARRAY_LENGTH(s_state_names); index++) if (s_state_names[index].state == newstate) newstate_string = s_state_names[index].string; - LOG2(("New state: %s\n", newstate_string)); + LOG2("New state: %s\n", newstate_string); #endif // switch to the new state @@ -380,20 +380,20 @@ void eeprom_serial_base_device::handle_event(eeprom_event event) { #if (VERBOSE_PRINTF > 0 || VERBOSE_LOGERROR > 0) // for debugging purposes - if ((event & EVENT_CS_RISING_EDGE) != 0) LOG2(("Event: CS rising\n")); - if ((event & EVENT_CS_FALLING_EDGE) != 0) LOG2(("Event: CS falling\n")); + if ((event & EVENT_CS_RISING_EDGE) != 0) LOG2("Event: CS rising\n"); + if ((event & EVENT_CS_FALLING_EDGE) != 0) LOG2("Event: CS falling\n"); if ((event & EVENT_CLK_RISING_EDGE) != 0) { if (m_state == STATE_WAIT_FOR_COMMAND || m_state == STATE_WAIT_FOR_DATA) - LOG2(("Event: CLK rising (%d, DI=%d)\n", m_bits_accum + 1, m_di_state)); + LOG2("Event: CLK rising (%d, DI=%d)\n", m_bits_accum + 1, m_di_state); else if (m_state == STATE_READING_DATA) - LOG2(("Event: CLK rising (%d, DO=%d)\n", m_bits_accum + 1, (m_shift_register >> 30) & 1)); + LOG2("Event: CLK rising (%d, DO=%d)\n", m_bits_accum + 1, (m_shift_register >> 30) & 1); else if (m_state == STATE_WAIT_FOR_START_BIT) - LOG2(("Event: CLK rising (%d)\n", m_di_state)); + LOG2("Event: CLK rising (%d)\n", m_di_state); else - LOG2(("Event: CLK rising\n")); + LOG2("Event: CLK rising\n"); } - if ((event & EVENT_CLK_FALLING_EDGE) != 0) LOG4(("Event: CLK falling\n")); + if ((event & EVENT_CLK_FALLING_EDGE) != 0) LOG4("Event: CLK falling\n"); #endif // switch off the current state @@ -448,13 +448,13 @@ void eeprom_serial_base_device::handle_event(eeprom_event event) { set_state(STATE_IN_RESET); if (m_streaming_enabled) - LOG1((" (%d cells read)\n", m_bits_accum / m_data_bits)); + LOG1(" (%d cells read)\n", m_bits_accum / m_data_bits); if (!m_streaming_enabled && m_bits_accum > m_data_bits + 1) - LOG0(("EEPROM: Overclocked read by %d bits\n", m_bits_accum - m_data_bits)); + LOG0("EEPROM: Overclocked read by %d bits\n", m_bits_accum - m_data_bits); else if (m_streaming_enabled && m_bits_accum > m_data_bits + 1 && m_bits_accum % m_data_bits > 2) - LOG0(("EEPROM: Overclocked read by %d bits\n", m_bits_accum % m_data_bits)); + LOG0("EEPROM: Overclocked read by %d bits\n", m_bits_accum % m_data_bits); else if (m_bits_accum < m_data_bits) - LOG0(("EEPROM: CS deasserted in READING_DATA after %d bits\n", m_bits_accum)); + LOG0("EEPROM: CS deasserted in READING_DATA after %d bits\n", m_bits_accum); } break; @@ -469,7 +469,7 @@ void eeprom_serial_base_device::handle_event(eeprom_event event) else if (event == EVENT_CS_FALLING_EDGE) { set_state(STATE_IN_RESET); - LOG0(("EEPROM: CS deasserted in STATE_WAIT_FOR_DATA after %d bits\n", m_bits_accum)); + LOG0("EEPROM: CS deasserted in STATE_WAIT_FOR_DATA after %d bits\n", m_bits_accum); } break; @@ -510,7 +510,7 @@ void eeprom_serial_base_device::execute_command() for (int index = 0; index < ARRAY_LENGTH(s_command_names); index++) if (s_command_names[index].command == m_command) command_string = s_command_names[index].string; - LOG1((command_string, m_address)); + LOG1(command_string, m_address); #endif // each command advances differently @@ -535,7 +535,7 @@ void eeprom_serial_base_device::execute_command() case COMMAND_ERASE: if (m_locked) { - LOG0(("EEPROM: Attempt to erase while locked\n")); + LOG0("EEPROM: Attempt to erase while locked\n"); set_state(STATE_IN_RESET); break; } @@ -559,7 +559,7 @@ void eeprom_serial_base_device::execute_command() case COMMAND_ERASEALL: if (m_locked) { - LOG0(("EEPROM: Attempt to erase all while locked\n")); + LOG0("EEPROM: Attempt to erase all while locked\n"); set_state(STATE_IN_RESET); break; } @@ -591,7 +591,7 @@ void eeprom_serial_base_device::execute_write_command() for (int index = 0; index < ARRAY_LENGTH(s_command_names); index++) if (s_command_names[index].command == m_command) command_string = s_command_names[index].string; - LOG1((command_string, m_address, m_shift_register)); + LOG1(command_string, m_address, m_shift_register); #endif // each command advances differently @@ -601,7 +601,7 @@ void eeprom_serial_base_device::execute_write_command() case COMMAND_WRITE: if (m_locked) { - LOG0(("EEPROM: Attempt to write to address 0x%X while locked\n", m_address)); + LOG0("EEPROM: Attempt to write to address 0x%X while locked\n", m_address); set_state(STATE_IN_RESET); break; } @@ -614,7 +614,7 @@ void eeprom_serial_base_device::execute_write_command() case COMMAND_WRITEALL: if (m_locked) { - LOG0(("EEPROM: Attempt to write all while locked\n")); + LOG0("EEPROM: Attempt to write all while locked\n"); set_state(STATE_IN_RESET); break; } @@ -637,8 +637,8 @@ void eeprom_serial_base_device::execute_write_command() // eeprom_serial_93cxx_device - constructor //------------------------------------------------- -eeprom_serial_93cxx_device::eeprom_serial_93cxx_device(const machine_config &mconfig, device_type devtype, const char *name, const char *tag, device_t *owner, const char *shortname, const char *file) - : eeprom_serial_base_device(mconfig, devtype, name, tag, owner, shortname, file) +eeprom_serial_93cxx_device::eeprom_serial_93cxx_device(const machine_config &mconfig, device_type devtype, const char *tag, device_t *owner) + : eeprom_serial_base_device(mconfig, devtype, tag, owner) { } @@ -675,7 +675,7 @@ void eeprom_serial_93cxx_device::parse_command_and_address() // warn about out-of-range addresses if (m_address >= (1 << m_address_bits)) - LOG0(("EEPROM: out-of-range address 0x%X provided (maximum should be 0x%X)\n", m_address, (1 << m_address_bits) - 1)); + LOG0("EEPROM: out-of-range address 0x%X provided (maximum should be 0x%X)\n", m_address, (1 << m_address_bits) - 1); } @@ -704,8 +704,8 @@ WRITE_LINE_MEMBER(eeprom_serial_93cxx_device::di_write) { base_di_write(state); // eeprom_serial_er5911_device - constructor //------------------------------------------------- -eeprom_serial_er5911_device::eeprom_serial_er5911_device(const machine_config &mconfig, device_type devtype, const char *name, const char *tag, device_t *owner, const char *shortname, const char *file) - : eeprom_serial_base_device(mconfig, devtype, name, tag, owner, shortname, file) +eeprom_serial_er5911_device::eeprom_serial_er5911_device(const machine_config &mconfig, device_type devtype, const char *tag, device_t *owner) + : eeprom_serial_base_device(mconfig, devtype, tag, owner) { } @@ -742,7 +742,7 @@ void eeprom_serial_er5911_device::parse_command_and_address() // warn about out-of-range addresses if (m_address >= (1 << m_address_bits)) - LOG0(("EEPROM: out-of-range address 0x%X provided (maximum should be 0x%X)\n", m_address, (1 << m_address_bits) - 1)); + LOG0("EEPROM: out-of-range address 0x%X provided (maximum should be 0x%X)\n", m_address, (1 << m_address_bits) - 1); } @@ -772,8 +772,8 @@ WRITE_LINE_MEMBER(eeprom_serial_er5911_device::di_write) { base_di_write(state); // eeprom_serial_x24c44_device - constructor //------------------------------------------------- -eeprom_serial_x24c44_device::eeprom_serial_x24c44_device(const machine_config &mconfig, device_type devtype, const char *name, const char *tag, device_t *owner, const char *shortname, const char *file) - : eeprom_serial_base_device(mconfig, devtype, name, tag, owner, shortname, file) +eeprom_serial_x24c44_device::eeprom_serial_x24c44_device(const machine_config &mconfig, device_type devtype, const char *tag, device_t *owner) + : eeprom_serial_base_device(mconfig, devtype, tag, owner) { } @@ -819,7 +819,7 @@ void eeprom_serial_x24c44_device::device_start() void eeprom_serial_x24c44_device::copy_eeprom_to_ram(){ uint16_t i=0; - LOG1(("EEPROM TO RAM COPY!!!\n")); + LOG1("EEPROM TO RAM COPY!!!\n"); for (i=0;i<16;i++){ m_ram_data[i]=read(i); } @@ -831,13 +831,13 @@ void eeprom_serial_x24c44_device::copy_eeprom_to_ram(){ void eeprom_serial_x24c44_device::copy_ram_to_eeprom(){ uint16_t i=0; if (m_store_latch){ - LOG1(("RAM TO EEPROM COPY\n")); + LOG1("RAM TO EEPROM COPY\n"); for (i=0;i<16;i++){ write(i, m_ram_data[i]); } m_store_latch=0; }else{ - LOG0(("Store command with store latch not set!\n")); + LOG0("Store command with store latch not set!\n"); } } @@ -872,7 +872,7 @@ void eeprom_serial_x24c44_device::execute_command() for (int index = 0; index < ARRAY_LENGTH(s_command_names); index++) if (s_command_names[index].command == m_command) command_string = s_command_names[index].string; - LOG1((command_string, m_address)); + LOG1(command_string, m_address); #endif // each command advances differently @@ -925,20 +925,20 @@ void eeprom_serial_x24c44_device::handle_event(eeprom_event event) //uint32_t tmp=0; #if (VERBOSE_PRINTF > 0 || VERBOSE_LOGERROR > 0) // for debugging purposes - if ((event & EVENT_CS_RISING_EDGE) != 0) LOG2(("Event: CS rising\n")); - if ((event & EVENT_CS_FALLING_EDGE) != 0) LOG2(("Event: CS falling\n")); + if ((event & EVENT_CS_RISING_EDGE) != 0) LOG2("Event: CS rising\n"); + if ((event & EVENT_CS_FALLING_EDGE) != 0) LOG2("Event: CS falling\n"); if ((event & EVENT_CLK_RISING_EDGE) != 0) { if (m_state == STATE_WAIT_FOR_COMMAND || m_state == STATE_WAIT_FOR_DATA) - LOG2(("Event: CLK rising (%d, DI=%d)\n", m_bits_accum + 1, m_di_state)); + LOG2("Event: CLK rising (%d, DI=%d)\n", m_bits_accum + 1, m_di_state); else if (m_state == STATE_READING_DATA) - LOG2(("Event: CLK rising (%d, DO=%d)\n", m_bits_accum + 1, (m_shift_register >> 30) & 1)); + LOG2("Event: CLK rising (%d, DO=%d)\n", m_bits_accum + 1, (m_shift_register >> 30) & 1); else if (m_state == STATE_WAIT_FOR_START_BIT) - LOG2(("Event: CLK rising (%d)\n", m_di_state)); + LOG2("Event: CLK rising (%d)\n", m_di_state); else - LOG2(("Event: CLK rising\n")); + LOG2("Event: CLK rising\n"); } - if ((event & EVENT_CLK_FALLING_EDGE) != 0) LOG4(("Event: CLK falling\n")); + if ((event & EVENT_CLK_FALLING_EDGE) != 0) LOG4("Event: CLK falling\n"); #endif // switch off the current state @@ -1005,9 +1005,10 @@ void eeprom_serial_x24c44_device::handle_event(eeprom_event event) m_shift_register=m_shift_register<<16; - LOG1(("read from RAM addr %02X data(from ram) %04X ,m_shift_register vale %04X \n",m_address,m_ram_data[m_address],m_shift_register)); - } - else{ + LOG1("read from RAM addr %02X data(from ram) %04X ,m_shift_register vale %04X \n",m_address,m_ram_data[m_address],m_shift_register); + } + else + { m_shift_register = (m_shift_register << 1) | 1; } @@ -1017,13 +1018,13 @@ void eeprom_serial_x24c44_device::handle_event(eeprom_event event) set_state(STATE_IN_RESET); m_reading=0; if (m_streaming_enabled) - LOG1((" (%d cells read)\n", m_bits_accum / m_data_bits)); + LOG1(" (%d cells read)\n", m_bits_accum / m_data_bits); if (!m_streaming_enabled && m_bits_accum > m_data_bits + 1) - LOG1(("EEPROM: Overclocked read by %d bits\n", m_bits_accum - m_data_bits)); + LOG1("EEPROM: Overclocked read by %d bits\n", m_bits_accum - m_data_bits); else if (m_streaming_enabled && m_bits_accum > m_data_bits + 1 && m_bits_accum % m_data_bits > 2) - LOG1(("EEPROM: Overclocked read by %d bits\n", m_bits_accum % m_data_bits)); + LOG1("EEPROM: Overclocked read by %d bits\n", m_bits_accum % m_data_bits); else if (m_bits_accum < m_data_bits) - LOG1(("EEPROM: CS deasserted in READING_DATA after %d bits\n", m_bits_accum)); + LOG1("EEPROM: CS deasserted in READING_DATA after %d bits\n", m_bits_accum); } break; @@ -1032,19 +1033,20 @@ void eeprom_serial_x24c44_device::handle_event(eeprom_event event) if (event == EVENT_CLK_RISING_EDGE) { m_shift_register = (m_shift_register << 1) | m_di_state; - if (++m_bits_accum == m_data_bits){ - //m_shift_register=BITSWAP16(m_shift_register, 0, 1, 2, 3, 4, 5,6,7, 8, 9,10,11,12,13,14,15); - //m_shift_register=BITSWAP16(m_shift_register, 7, 6, 5, 4, 3, 2,1,0,15,14,13,12,11,10, 9, 8); - m_shift_register=BITSWAP16(m_shift_register,8,9,10,11,12,13,14,15,0,1,2,3,4,5,6,7); - m_ram_data[m_address]=m_shift_register; + if (++m_bits_accum == m_data_bits) + { + //m_shift_register=BITSWAP16(m_shift_register, 0, 1, 2, 3, 4, 5,6,7, 8, 9,10,11,12,13,14,15); + //m_shift_register=BITSWAP16(m_shift_register, 7, 6, 5, 4, 3, 2,1,0,15,14,13,12,11,10, 9, 8); + m_shift_register=BITSWAP16(m_shift_register,8,9,10,11,12,13,14,15,0,1,2,3,4,5,6,7); + m_ram_data[m_address]=m_shift_register; - LOG1(("write to RAM addr=%02X data=%04X\n",m_address,m_shift_register)); + LOG1("write to RAM addr=%02X data=%04X\n",m_address,m_shift_register); } } else if (event == EVENT_CS_FALLING_EDGE) { set_state(STATE_IN_RESET); - LOG1(("EEPROM: CS deasserted in STATE_WAIT_FOR_DATA after %d bits\n", m_bits_accum)); + LOG1("EEPROM: CS deasserted in STATE_WAIT_FOR_DATA after %d bits\n", m_bits_accum); } break; @@ -1072,48 +1074,53 @@ void eeprom_serial_x24c44_device::parse_command_and_address() m_address = (m_command_address_accum >> 3) & 0x0f; - LOG1(("EEPROM: command= %04X, address %02X\n", m_command_address_accum& 0x07, m_address)); + LOG1("EEPROM: command= %04X, address %02X\n", m_command_address_accum& 0x07, m_address); switch (m_command_address_accum & 0x07) { case 0: //reset write enable latch - LOG0(("Lock eeprom\n")); - m_command = COMMAND_LOCK; break; + LOG0("Lock eeprom\n"); + m_command = COMMAND_LOCK; + break; case 3: //write data into ram - LOG0(("Write to ram\n")); - m_command = COMMAND_WRITE; break; + LOG0("Write to ram\n"); + m_command = COMMAND_WRITE; + break; case 4: //set write enable latch - LOG0(("Unlock eeprom\n")); - m_command = COMMAND_UNLOCK; break; + LOG0("Unlock eeprom\n"); + m_command = COMMAND_UNLOCK; + break; case 1: //store ram data in eeprom - LOG0(("copy ram to eeprom\n")); - m_command = COMMAND_COPY_RAM_TO_EEPROM; break; + LOG0("copy ram to eeprom\n"); + m_command = COMMAND_COPY_RAM_TO_EEPROM; + break; case 5: //reload eeprom data into ram - LOG0(("copy eeprom to ram\n")); - m_command = COMMAND_COPY_EEPROM_TO_RAM; break; + LOG0("copy eeprom to ram\n"); + m_command = COMMAND_COPY_EEPROM_TO_RAM; + break; case 2: //reserved (Sleep on x2444) m_command = COMMAND_INVALID; - break; - + break; } } void eeprom_serial_x24c44_device::parse_command_and_address_2_bit() { - if ((m_command_address_accum & 0x03) == 0x03){ + if ((m_command_address_accum & 0x03) == 0x03) + { m_command = COMMAND_READ; m_address = ((m_command_address_accum >> 2) & 0x0f); m_shift_register = 0; set_state(STATE_READING_DATA); - LOG1(("parse command_and_address_2_bit found a read command\n")); + LOG1("parse command_and_address_2_bit found a read command\n"); m_reading=1; m_bits_accum=0; } // warn about out-of-range addresses if (m_address >= (1 << m_address_bits)) - LOG1(("EEPROM: out-of-range address 0x%X provided (maximum should be 0x%X)\n", m_address, (1 << m_address_bits) - 1)); + LOG1("EEPROM: out-of-range address 0x%X provided (maximum should be 0x%X)\n", m_address, (1 << m_address_bits) - 1); } @@ -1140,12 +1147,13 @@ WRITE_LINE_MEMBER(eeprom_serial_x24c44_device::di_write) { base_di_write(state); // macro for defining a new device class #define DEFINE_SERIAL_EEPROM_DEVICE(_baseclass, _lowercase, _uppercase, _bits, _cells, _addrbits) \ eeprom_serial_##_lowercase##_##_bits##bit_device::eeprom_serial_##_lowercase##_##_bits##bit_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) \ - : eeprom_serial_##_baseclass##_device(mconfig, EEPROM_SERIAL_##_uppercase##_##_bits##BIT, "Serial EEPROM " #_uppercase " (" #_cells "x" #_bits ")", tag, owner, #_lowercase "_" #_bits, __FILE__) \ + : eeprom_serial_##_baseclass##_device(mconfig, EEPROM_SERIAL_##_uppercase##_##_bits##BIT, tag, owner) \ { \ static_set_size(*this, _cells, _bits); \ static_set_address_bits(*this, _addrbits); \ } \ -const device_type EEPROM_SERIAL_##_uppercase##_##_bits##BIT = device_creator; +DEFINE_DEVICE_TYPE(EEPROM_SERIAL_##_uppercase##_##_bits##BIT, eeprom_serial_##_lowercase##_##_bits##bit_device, #_lowercase "_" #_bits, "Serial EEPROM " #_uppercase " (" #_cells "x" #_bits ")") + // standard 93CX6 class of 16-bit EEPROMs DEFINE_SERIAL_EEPROM_DEVICE(93cxx, 93c06, 93C06, 16, 16, 6) DEFINE_SERIAL_EEPROM_DEVICE(93cxx, 93c46, 93C46, 16, 64, 6) diff --git a/src/devices/machine/eepromser.h b/src/devices/machine/eepromser.h index 04b1d5e35c7..c82e36729a7 100644 --- a/src/devices/machine/eepromser.h +++ b/src/devices/machine/eepromser.h @@ -8,10 +8,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_MACHINE_EEPROMSER_H +#define MAME_MACHINE_EEPROMSER_H -#ifndef __EEPROMSER_H__ -#define __EEPROMSER_H__ +#pragma once #include "eeprom.h" @@ -102,10 +102,6 @@ class eeprom_serial_base_device : public eeprom_base_device { -protected: - // construction/destruction - eeprom_serial_base_device(const machine_config &mconfig, device_type devtype, const char *name, const char *tag, device_t *owner, const char *shortname, const char *file); - public: // inline configuration helpers static void static_set_address_bits(device_t &device, int addrbits); @@ -113,6 +109,9 @@ public: static void static_enable_output_on_falling_clock(device_t &device); protected: + // construction/destruction + eeprom_serial_base_device(const machine_config &mconfig, device_type devtype, const char *tag, device_t *owner); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -197,10 +196,6 @@ protected: class eeprom_serial_93cxx_device : public eeprom_serial_base_device { -protected: - // construction/destruction - eeprom_serial_93cxx_device(const machine_config &mconfig, device_type devtype, const char *name, const char *tag, device_t *owner, const char *shortname, const char *file); - public: // read handlers DECLARE_READ_LINE_MEMBER(do_read); // combined DO+READY/BUSY @@ -211,6 +206,9 @@ public: DECLARE_WRITE_LINE_MEMBER(di_write); // DI protected: + // construction/destruction + eeprom_serial_93cxx_device(const machine_config &mconfig, device_type devtype, const char *tag, device_t *owner); + // subclass overrides virtual void parse_command_and_address() override; }; @@ -220,10 +218,6 @@ protected: class eeprom_serial_er5911_device : public eeprom_serial_base_device { -protected: - // construction/destruction - eeprom_serial_er5911_device(const machine_config &mconfig, device_type devtype, const char *name, const char *tag, device_t *owner, const char *shortname, const char *file); - public: // read handlers DECLARE_READ_LINE_MEMBER(do_read); // DO @@ -235,6 +229,9 @@ public: DECLARE_WRITE_LINE_MEMBER(di_write); // DI protected: + // construction/destruction + eeprom_serial_er5911_device(const machine_config &mconfig, device_type devtype, const char *tag, device_t *owner); + // subclass overrides virtual void parse_command_and_address() override; }; @@ -246,10 +243,6 @@ class eeprom_serial_x24c44_device : public eeprom_serial_base_device { //async recall not implemented //async store not implemented -protected: - // construction/destruction - eeprom_serial_x24c44_device(const machine_config &mconfig, device_type devtype, const char *name, const char *tag, device_t *owner, const char *shortname, const char *file); - public: // read handlers DECLARE_READ_LINE_MEMBER(do_read); // DO @@ -260,6 +253,9 @@ public: DECLARE_WRITE_LINE_MEMBER(di_write); // DI protected: + // construction/destruction + eeprom_serial_x24c44_device(const machine_config &mconfig, device_type devtype, const char *tag, device_t *owner); + // subclass overrides virtual void parse_command_and_address() override; void handle_event(eeprom_event event) override; @@ -287,7 +283,8 @@ class eeprom_serial_##_lowercase##_##_bits##bit_device : public eeprom_serial_## public: \ eeprom_serial_##_lowercase##_##_bits##bit_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); \ }; \ -extern const device_type EEPROM_SERIAL_##_uppercase##_##_bits##BIT; +DECLARE_DEVICE_TYPE(EEPROM_SERIAL_##_uppercase##_##_bits##BIT, eeprom_serial_##_lowercase##_##_bits##bit_device) + // standard 93CX6 class of 16-bit EEPROMs DECLARE_SERIAL_EEPROM_DEVICE(93cxx, 93c06, 93C06, 16) DECLARE_SERIAL_EEPROM_DEVICE(93cxx, 93c46, 93C46, 16) @@ -319,4 +316,5 @@ DECLARE_SERIAL_EEPROM_DEVICE(93cxx, s29390, S29390, 16) // X24c44 8 bit 32byte ram/eeprom combo DECLARE_SERIAL_EEPROM_DEVICE(x24c44, x24c44, X24C44, 16) -#endif + +#endif // MAME_MACHINE_EEPROMSER_H diff --git a/src/devices/machine/er2055.cpp b/src/devices/machine/er2055.cpp index aee6839a658..4504a7e07c9 100644 --- a/src/devices/machine/er2055.cpp +++ b/src/devices/machine/er2055.cpp @@ -17,7 +17,7 @@ //************************************************************************** // device type definition -const device_type ER2055 = device_creator; +DEFINE_DEVICE_TYPE(ER2055, er2055_device, "er2055", "ER2055 EAROM") static ADDRESS_MAP_START( er2055_map, AS_PROGRAM, 8, er2055_device ) AM_RANGE(0x0000, 0x003f) AM_RAM @@ -34,7 +34,7 @@ ADDRESS_MAP_END //------------------------------------------------- er2055_device::er2055_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, ER2055, "ER2055 EAROM", tag, owner, clock, "er2055", __FILE__), + : device_t(mconfig, ER2055, tag, owner, clock), device_memory_interface(mconfig, *this), device_nvram_interface(mconfig, *this), m_region(*this, DEVICE_SELF), diff --git a/src/devices/machine/er2055.h b/src/devices/machine/er2055.h index c5796c1bb27..6dae6d1d424 100644 --- a/src/devices/machine/er2055.h +++ b/src/devices/machine/er2055.h @@ -8,10 +8,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_MACHINE_ER2055_H +#define MAME_MACHINE_ER2055_H -#ifndef __ER2055_H__ -#define __ER2055_H__ +#pragma once @@ -79,7 +79,6 @@ protected: // device type definition -extern const device_type ER2055; - +DECLARE_DEVICE_TYPE(ER2055, er2055_device) -#endif +#endif // MAME_MACHINE_ER2055_H diff --git a/src/devices/machine/f3853.cpp b/src/devices/machine/f3853.cpp index 512a783c2f2..5f2c512402a 100644 --- a/src/devices/machine/f3853.cpp +++ b/src/devices/machine/f3853.cpp @@ -25,13 +25,6 @@ #include "emu.h" #include "f3853.h" -/*************************************************************************** - MACROS -***************************************************************************/ - -#define INTERRUPT_VECTOR(external) ( external ? m_low | ( m_high << 8 ) | 0x80 \ -: ( m_low | ( m_high << 8 ) ) & ~0x80 ) - /*************************************************************************** @@ -43,14 +36,14 @@ //************************************************************************** // device type definition -const device_type F3853 = device_creator; +DEFINE_DEVICE_TYPE(F3853, f3853_device, "f3853_device", "F3853") //------------------------------------------------- // f3853_device - constructor //------------------------------------------------- f3853_device::f3853_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, F3853, "F3853", tag, owner, clock, "f3853", __FILE__) + : device_t(mconfig, F3853, tag, owner, clock) { } @@ -113,9 +106,9 @@ void f3853_device::set_interrupt_request_line() return; if (m_external_enable && !m_priority_line) - m_interrupt_req_cb(INTERRUPT_VECTOR(true), true); + m_interrupt_req_cb(external_interrupt_vector(), true); else if (m_timer_enable && !m_priority_line && m_request_flipflop) - m_interrupt_req_cb(INTERRUPT_VECTOR(false), true); + m_interrupt_req_cb(timer_interrupt_vector(), true); else m_interrupt_req_cb(0, false); } diff --git a/src/devices/machine/f3853.h b/src/devices/machine/f3853.h index 214ce7255fc..05c0f213699 100644 --- a/src/devices/machine/f3853.h +++ b/src/devices/machine/f3853.h @@ -33,10 +33,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_MACHINE_F3853_H +#define MAME_MACHINE_F3853_H -#ifndef __F3853_H__ -#define __F3853_H__ +#pragma once //************************************************************************** @@ -44,14 +44,12 @@ //************************************************************************** #define MCFG_F3853_EXT_INPUT_CB(_class, _method) \ - f3853_device::set_interrupt_req_callback(*device, f3853_interrupt_req_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); + f3853_device::set_interrupt_req_callback(*device, f3853_device::interrupt_req_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); /*************************************************************************** TYPE DEFINITIONS ***************************************************************************/ -typedef device_delegate f3853_interrupt_req_delegate; - #define F3853_INTERRUPT_REQ_CB(_name) void _name(uint16_t addr, int level) @@ -60,10 +58,12 @@ typedef device_delegate f3853_interrupt_req_del class f3853_device : public device_t { public: + typedef device_delegate interrupt_req_delegate; + // construction/destruction f3853_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - static void set_interrupt_req_callback(device_t &device, f3853_interrupt_req_delegate callback) { downcast(device).m_interrupt_req_cb = callback; } + static void set_interrupt_req_callback(device_t &device, interrupt_req_delegate &&callback) { downcast(device).m_interrupt_req_cb = std::move(callback); } DECLARE_READ8_MEMBER(read); DECLARE_WRITE8_MEMBER(write); @@ -72,18 +72,23 @@ public: void set_priority_in_line(int level); TIMER_CALLBACK_MEMBER(timer_callback); + protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; virtual void device_post_load() override { } virtual void device_clock_changed() override { } + private: + uint16_t interrupt_vector() const { return m_low | (uint16_t(m_high) << 8); } + uint16_t timer_interrupt_vector() const { return interrupt_vector() & ~uint16_t(0x0080); } + uint16_t external_interrupt_vector() const { return interrupt_vector() | uint16_t(0x0080); } void set_interrupt_request_line(); void timer_start(uint8_t value); - f3853_interrupt_req_delegate m_interrupt_req_cb; + interrupt_req_delegate m_interrupt_req_cb; uint8_t m_high; uint8_t m_low; // Bit 7 is set to 0 for timer interrupts, 1 for external interrupts int32_t m_external_enable; @@ -101,6 +106,6 @@ private: // device type definition -extern const device_type F3853; +DECLARE_DEVICE_TYPE(F3853, f3853_device) -#endif /* __F3853_H__ */ +#endif // MAME_MACHINE_F3853_H diff --git a/src/devices/machine/fdc37c665gt.cpp b/src/devices/machine/fdc37c665gt.cpp index d4151a98b9d..a2d3c0c88d7 100644 --- a/src/devices/machine/fdc37c665gt.cpp +++ b/src/devices/machine/fdc37c665gt.cpp @@ -4,7 +4,7 @@ #include "fdc37c665gt.h" fdc37c665gt_device::fdc37c665gt_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, FDC37C665GT, "FDC37C665GT", tag, owner, clock, "fdc37c665gt", __FILE__), + device_t(mconfig, FDC37C665GT, tag, owner, clock), m_uart1(*this, "uart1"), m_uart2(*this, "uart2") { @@ -59,4 +59,4 @@ machine_config_constructor fdc37c665gt_device::device_mconfig_additions() const return MACHINE_CONFIG_NAME(fdc37c665gt); } -const device_type FDC37C665GT = device_creator; +DEFINE_DEVICE_TYPE(FDC37C665GT, fdc37c665gt_device, "fdc37c665gt", "FDC37C665GT") diff --git a/src/devices/machine/fdc37c665gt.h b/src/devices/machine/fdc37c665gt.h index 094cc45db75..21ef762f8b8 100644 --- a/src/devices/machine/fdc37c665gt.h +++ b/src/devices/machine/fdc37c665gt.h @@ -5,8 +5,8 @@ * */ -#ifndef _FDC37C665GT_H_ -#define _FDC37C665GT_H_ +#ifndef MAME_MACHINE_FDC37C665GT_H +#define MAME_MACHINE_FDC37C665GT_H #pragma once @@ -32,6 +32,6 @@ private: }; // device type definition -extern const device_type FDC37C665GT; +DECLARE_DEVICE_TYPE(FDC37C665GT, fdc37c665gt_device) -#endif +#endif // MAME_MACHINE_FDC37C665GT_H diff --git a/src/devices/machine/fdc_pll.h b/src/devices/machine/fdc_pll.h index 87244f405dc..f99be2000a9 100644 --- a/src/devices/machine/fdc_pll.h +++ b/src/devices/machine/fdc_pll.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Olivier Galibert -#ifndef __FDC_PLL_H__ -#define __FDC_PLL_H__ +#ifndef MAME_MACHINE_FDC_PLL_H +#define MAME_MACHINE_FDC_PLL_H + +#pragma once /* * Generic pll class for floppy controllers with analog plls @@ -20,9 +22,9 @@ public: void set_clock(const attotime &period); void reset(const attotime &when); - void read_reset(const attotime &when); + void read_reset(const attotime &when); int get_next_bit(attotime &tm, floppy_image_device *floppy, const attotime &limit); - int feed_read_data(attotime &tm, const attotime& edge, const attotime &limit); + int feed_read_data(attotime &tm, const attotime& edge, const attotime &limit); bool write_next_bit(bool bit, attotime &tm, floppy_image_device *floppy, const attotime &limit); void start_writing(const attotime &tm); void commit(floppy_image_device *floppy, const attotime &tm); @@ -31,4 +33,4 @@ public: std::string tts(attotime tm); }; -#endif +#endif // MAME_MACHINE_FDC_PLL_H diff --git a/src/devices/machine/fga002.cpp b/src/devices/machine/fga002.cpp index 3fcef596746..50ae32bfe0e 100644 --- a/src/devices/machine/fga002.cpp +++ b/src/devices/machine/fga002.cpp @@ -31,6 +31,9 @@ * external hardware. It is expressly forbidden to change register bits, except those defined for the user. * */ +#include "emu.h" +#include "fga002.h" + //#define LOG_GENERAL (1U << 0) #define LOG_SETUP (1U << 1) #define LOG_READ (1U << 2) @@ -41,8 +44,6 @@ //#define VERBOSE (LOG_GENERAL | LOG_SETUP) //#define LOG_OUTPUT_FUNC printf - -#include "emu.h" #include "logmacro.h" #define LOGSETUP(...) LOGMASKED(LOG_SETUP, __VA_ARGS__) @@ -58,13 +59,12 @@ #define FUNCNAME __PRETTY_FUNCTION__ #endif -#include "fga002.h" //************************************************************************** // DEVICE DEFINITIONS //************************************************************************** // device type definition -const device_type FGA002 = device_creator; +DEFINE_DEVICE_TYPE(FGA002, fga002_device, "fga002", "Force FGA-002") //************************************************************************** // LIVE DEVICE @@ -74,30 +74,22 @@ const device_type FGA002 = device_creator; // fga002_device - constructor //------------------------------------------------- -fga002_device::fga002_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, uint32_t variant, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source) +fga002_device::fga002_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) , m_out_int_cb(*this) , m_liack4_cb(*this) , m_liack5_cb(*this) , m_liack6_cb(*this) , m_liack7_cb(*this) - , m_irq_level((uint8_t)0) + , m_irq_level(uint8_t(0)) { for (auto & elem : m_int_state) elem = 0; } fga002_device::fga002_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, FGA002, "FGA-002", tag, owner, clock, "fga002", __FILE__) - , m_out_int_cb(*this) - , m_liack4_cb(*this) - , m_liack5_cb(*this) - , m_liack6_cb(*this) - , m_liack7_cb(*this) - , m_irq_level((uint8_t)0) + : fga002_device(mconfig, FGA002, tag, owner, clock) { - for (auto & elem : m_int_state) - elem = 0; } void fga002_device::device_start() @@ -217,7 +209,7 @@ void fga002_device::device_timer (emu_timer &timer, device_timer_id id, int32_t */ // TODO: Add more intrrupts sources in priority order, 18 in total. -const fga_irq_t fga002_device::m_irq_sources[] = { +const fga002_device::fga_irq_t fga002_device::s_irq_sources[] = { {INT_LOCAL0, FGA_ISLOCAL0, FGA_ICRLOCAL0 }, {INT_LOCAL1, FGA_ISLOCAL1, FGA_ICRLOCAL1 }, {INT_LOCAL2, FGA_ISLOCAL2, FGA_ICRLOCAL2 }, @@ -273,7 +265,7 @@ IRQ_CALLBACK_MEMBER(fga002_device::iack) LOGLVL("\n LEVEL %d\n", level); // Find first interrupt on this level to acknowledge LOGLVL("Vec Status[val] Control[val]\n"); - for (auto & elem : m_irq_sources) + for (auto & elem : s_irq_sources) { LOGLVL(" %02x %02x[%02x] %02x[%02x]\n", elem.vector, diff --git a/src/devices/machine/fga002.h b/src/devices/machine/fga002.h index 31e5b29371e..2be2e889ec6 100644 --- a/src/devices/machine/fga002.h +++ b/src/devices/machine/fga002.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Joakim Larsson Edstrom -#ifndef __FGA002_H__ -#define __FGA002_H__ +#ifndef MAME_MACHINE_FGA002_H +#define MAME_MACHINE_FGA002_H -#include "cpu/m68000/m68000.h" // The FGA002 is designed for the 68K interrupt PL0-PL2 signalling, however used on Sparc and x86 boards too +#include "cpu/m68000/m68000.h" // The FGA002 is designed for the 68K interrupt PL0-PL2 signalling, however used on SPARC and x86 boards too #define MCFG_FGA002_ADD(_tag, _clock) MCFG_DEVICE_ADD(_tag, FGA002, _clock) @@ -23,13 +23,6 @@ #define MCFG_FGA002_OUT_LIACK7_CB(_devcb) \ devcb = &fga002_device::set_liack7_callback(*device, DEVCB_##_devcb); -// type for array of mapping of FGA registers that assembles an IRQ source -typedef struct { - int vector; - int status; - int control; -} fga_irq_t; - //************************************************************************** // TYPE DEFINITIONS //************************************************************************** @@ -41,7 +34,6 @@ class fga002_device : public device_t { public: // construction/destruction - fga002_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, uint32_t variant, const char *shortname, const char *source); fga002_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); DECLARE_WRITE8_MEMBER (write); @@ -61,16 +53,25 @@ class fga002_device : public device_t int acknowledge(); int get_irq_level(); - template static devcb_base &set_out_int_callback(device_t &device, _Object object) { return downcast(device).m_out_int_cb.set_callback(object); } - template static devcb_base &set_liack4_callback(device_t &device, _Object object) { return downcast(device).m_liack4_cb.set_callback(object); } - template static devcb_base &set_liack5_callback(device_t &device, _Object object) { return downcast(device).m_liack5_cb.set_callback(object); } - template static devcb_base &set_liack6_callback(device_t &device, _Object object) { return downcast(device).m_liack6_cb.set_callback(object); } - template static devcb_base &set_liack7_callback(device_t &device, _Object object) { return downcast(device).m_liack7_cb.set_callback(object); } + template static devcb_base &set_out_int_callback(device_t &device, Object &&cb) { return downcast(device).m_out_int_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_liack4_callback(device_t &device, Object &&cb) { return downcast(device).m_liack4_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_liack5_callback(device_t &device, Object &&cb) { return downcast(device).m_liack5_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_liack6_callback(device_t &device, Object &&cb) { return downcast(device).m_liack6_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_liack7_callback(device_t &device, Object &&cb) { return downcast(device).m_liack7_cb.set_callback(std::forward(cb)); } + + protected: + // type for array of mapping of FGA registers that assembles an IRQ source + typedef struct { + int vector; + int status; + int control; + } fga_irq_t; // interrupt sources in prio order if on same interrupt level. TODO: Add all sources - const static fga_irq_t m_irq_sources[]; + const static fga_irq_t s_irq_sources[]; + + fga002_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); - protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -80,7 +81,7 @@ class fga002_device : public device_t virtual int z80daisy_irq_ack() override; virtual void z80daisy_irq_reti() override; #endif - virtual void device_timer (emu_timer &timer, device_timer_id id, int param, void *ptr) override; + virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; devcb_write_line m_out_int_cb; devcb_read8 m_liack4_cb; @@ -333,5 +334,6 @@ class fga002_device : public device_t // device type definition -extern const device_type FGA002; -#endif // __FGA002_H__ +DECLARE_DEVICE_TYPE(FGA002, fga002_device) + +#endif // MAME_MACHINE_FGA002_H diff --git a/src/devices/machine/gayle.cpp b/src/devices/machine/gayle.cpp index 58cdc33ede3..c0369cddc4f 100644 --- a/src/devices/machine/gayle.cpp +++ b/src/devices/machine/gayle.cpp @@ -23,7 +23,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type GAYLE = device_creator; +DEFINE_DEVICE_TYPE(GAYLE, gayle_device, "gayle", "Amiga GAYLE") //************************************************************************** @@ -35,7 +35,7 @@ const device_type GAYLE = device_creator; //------------------------------------------------- gayle_device::gayle_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, GAYLE, "GAYLE", tag, owner, clock, "gayle", __FILE__), + device_t(mconfig, GAYLE, tag, owner, clock), m_int2_w(*this), m_cs0_read(*this), m_cs0_write(*this), diff --git a/src/devices/machine/gayle.h b/src/devices/machine/gayle.h index 391477a0b89..07158185e96 100644 --- a/src/devices/machine/gayle.h +++ b/src/devices/machine/gayle.h @@ -8,10 +8,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_MACHINE_GAYLE_H +#define MAME_MACHINE_GAYLE_H -#ifndef __GAYLE_H__ -#define __GAYLE_H__ +#pragma once @@ -52,20 +52,20 @@ public: gayle_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // callbacks - template static devcb_base &set_int2_handler(device_t &device, _Object object) - { return downcast(device).m_int2_w.set_callback(object); } + template static devcb_base &set_int2_handler(device_t &device, Object &&cb) + { return downcast(device).m_int2_w.set_callback(std::forward(cb)); } - template static devcb_base &set_cs0_read_handler(device_t &device, _Object object) - { return downcast(device).m_cs0_read.set_callback(object); } + template static devcb_base &set_cs0_read_handler(device_t &device, Object &&cb) + { return downcast(device).m_cs0_read.set_callback(std::forward(cb)); } - template static devcb_base &set_cs0_write_handler(device_t &device, _Object object) - { return downcast(device).m_cs0_write.set_callback(object); } + template static devcb_base &set_cs0_write_handler(device_t &device, Object &&cb) + { return downcast(device).m_cs0_write.set_callback(std::forward(cb)); } - template static devcb_base &set_cs1_read_handler(device_t &device, _Object object) - { return downcast(device).m_cs1_read.set_callback(object); } + template static devcb_base &set_cs1_read_handler(device_t &device, Object &&cb) + { return downcast(device).m_cs1_read.set_callback(std::forward(cb)); } - template static devcb_base &set_cs1_write_handler(device_t &device, _Object object) - { return downcast(device).m_cs1_write.set_callback(object); } + template static devcb_base &set_cs1_write_handler(device_t &device, Object &&cb) + { return downcast(device).m_cs1_write.set_callback(std::forward(cb)); } // interface DECLARE_WRITE_LINE_MEMBER( ide_interrupt_w ); @@ -104,6 +104,6 @@ private: }; // device type definition -extern const device_type GAYLE; +DECLARE_DEVICE_TYPE(GAYLE, gayle_device) -#endif +#endif // MAME_MACHINE_GAYLE_H diff --git a/src/devices/machine/gen_latch.cpp b/src/devices/machine/gen_latch.cpp index 1cf2841a6fa..ca348dfebfd 100644 --- a/src/devices/machine/gen_latch.cpp +++ b/src/devices/machine/gen_latch.cpp @@ -14,18 +14,8 @@ // DEVICE TYPE DEFINITIONS //************************************************************************** -const device_type GENERIC_LATCH_8 = device_creator; -const device_type GENERIC_LATCH_16 = device_creator; - - -//************************************************************************** -// TEMPALTE INSTANTIATIONS -//************************************************************************** - -template class device_finder; -template class device_finder; -template class device_finder; -template class device_finder; +DEFINE_DEVICE_TYPE(GENERIC_LATCH_8, generic_latch_8_device, "generic_latch_8", "Generic 8-bit latch") +DEFINE_DEVICE_TYPE(GENERIC_LATCH_16, generic_latch_16_device, "generic_latch_16", "Generic 16-bit latch") //************************************************************************** @@ -36,8 +26,8 @@ template class device_finder; // generic_latch_base_device - constructor //------------------------------------------------- -generic_latch_base_device::generic_latch_base_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, u32 clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), +generic_latch_base_device::generic_latch_base_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock) : + device_t(mconfig, type, tag, owner, clock), m_latch_written(false), m_data_pending_cb(*this) { @@ -91,7 +81,7 @@ void generic_latch_base_device::set_latch_written(bool latch_written) //------------------------------------------------- generic_latch_8_device::generic_latch_8_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) : - generic_latch_base_device(mconfig, GENERIC_LATCH_8, "Generic 8-bit latch", tag, owner, clock, "generic_latch_8", __FILE__), + generic_latch_base_device(mconfig, GENERIC_LATCH_8, tag, owner, clock), m_latched_value(0) { } @@ -161,7 +151,7 @@ void generic_latch_8_device::device_start() //------------------------------------------------- generic_latch_16_device::generic_latch_16_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) : - generic_latch_base_device(mconfig, GENERIC_LATCH_16, "Generic 16-bit latch", tag, owner, clock, "generic_latch_16", __FILE__), + generic_latch_base_device(mconfig, GENERIC_LATCH_16, tag, owner, clock), m_latched_value(0) { } diff --git a/src/devices/machine/gen_latch.h b/src/devices/machine/gen_latch.h index e1fc2dd57f6..464801a68d2 100644 --- a/src/devices/machine/gen_latch.h +++ b/src/devices/machine/gen_latch.h @@ -6,10 +6,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_MACHINE_GEN_LATCH_H +#define MAME_MACHINE_GEN_LATCH_H -#ifndef MAME_DEVICES_MACHINE_GEN_LATCH_H -#define MAME_DEVICES_MACHINE_GEN_LATCH_H +#pragma once @@ -17,8 +17,8 @@ // DEVICE TYPE DECLARATIONS //************************************************************************** -extern const device_type GENERIC_LATCH_8; -extern const device_type GENERIC_LATCH_16; +DECLARE_DEVICE_TYPE(GENERIC_LATCH_8, generic_latch_8_device) +DECLARE_DEVICE_TYPE(GENERIC_LATCH_16, generic_latch_16_device) //************************************************************************** @@ -45,11 +45,12 @@ class generic_latch_base_device : public device_t { protected: // construction/destruction - generic_latch_base_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, u32 clock, const char *shortname, const char *source); + generic_latch_base_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock); public: // static configuration - template static devcb_base &set_data_pending_callback(device_t &device, _Object object) { return downcast(device).m_data_pending_cb.set_callback(object); } + template static devcb_base &set_data_pending_callback(device_t &device, Object &&cb) + { return downcast(device).m_data_pending_cb.set_callback(std::forward(cb)); } DECLARE_READ_LINE_MEMBER(pending_r); @@ -90,7 +91,7 @@ protected: void sync_callback(void *ptr, s32 param); private: - u8 m_latched_value; + u8 m_latched_value; }; @@ -118,17 +119,8 @@ protected: void sync_callback(void *ptr, s32 param); private: - u16 m_latched_value; + u16 m_latched_value; }; -//************************************************************************** -// TEMPALTE INSTANTIATIONS -//************************************************************************** - -extern template class device_finder; -extern template class device_finder; -extern template class device_finder; -extern template class device_finder; - -#endif // MAME_DEVICES_MACHINE_GEN_LATCH_H +#endif // MAME_MACHINE_GEN_LATCH_H diff --git a/src/devices/machine/genpc.cpp b/src/devices/machine/genpc.cpp index 87a9d7eeea2..b6a301248bc 100644 --- a/src/devices/machine/genpc.cpp +++ b/src/devices/machine/genpc.cpp @@ -389,7 +389,7 @@ WRITE8_MEMBER( ibm5160_mb_device::nmi_enable_w ) // GLOBAL VARIABLES //************************************************************************** -const device_type IBM5160_MOTHERBOARD = device_creator; +DEFINE_DEVICE_TYPE(IBM5160_MOTHERBOARD, ibm5160_mb_device, "ibm5160_mb", "IBM 5160 motherboard") //************************************************************************** // DEVICE CONFIGURATION @@ -511,20 +511,17 @@ void ibm5160_mb_device::static_set_cputag(device_t &device, const char *tag) //------------------------------------------------- ibm5160_mb_device::ibm5160_mb_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : ibm5160_mb_device(mconfig, IBM5160_MOTHERBOARD, "IBM5160_MOTHERBOARD", tag, owner, clock, "ibm5160_mb", __FILE__) + : ibm5160_mb_device(mconfig, IBM5160_MOTHERBOARD, tag, owner, clock) { } ibm5160_mb_device::ibm5160_mb_device( const machine_config &mconfig, device_type type, - const char *name, const char *tag, device_t *owner, - uint32_t clock, - const char *shortname, - const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source) + uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) , m_maincpu(*owner, "maincpu") , m_pic8259(*this, "pic8259") , m_dma8237(*this, "dma8237") @@ -589,7 +586,7 @@ void ibm5160_mb_device::device_reset() // GLOBAL VARIABLES //************************************************************************** -const device_type IBM5150_MOTHERBOARD = device_creator; +DEFINE_DEVICE_TYPE(IBM5150_MOTHERBOARD, ibm5150_mb_device, "ibm5150_mb", "IBM 5150 motherboard") //************************************************************************** // DEVICE CONFIGURATION @@ -628,12 +625,12 @@ machine_config_constructor ibm5150_mb_device::device_mconfig_additions() const //------------------------------------------------- ibm5150_mb_device::ibm5150_mb_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : ibm5150_mb_device(mconfig, IBM5150_MOTHERBOARD, "IBM5150_MOTHERBOARD", tag, owner, clock, "ibm5150_mb", __FILE__) + : ibm5150_mb_device(mconfig, IBM5150_MOTHERBOARD, tag, owner, clock) { } -ibm5150_mb_device::ibm5150_mb_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : ibm5160_mb_device(mconfig, type, name, tag, owner, clock, shortname, source) +ibm5150_mb_device::ibm5150_mb_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : ibm5160_mb_device(mconfig, type, tag, owner, clock) , m_cassette(*this, "cassette") { } @@ -776,7 +773,7 @@ WRITE8_MEMBER( ibm5150_mb_device::pc_ppi_portb_w ) // GLOBAL VARIABLES //************************************************************************** -const device_type EC1841_MOTHERBOARD = device_creator; +DEFINE_DEVICE_TYPE(EC1841_MOTHERBOARD, ec1841_mb_device, "ec1841_mb", "EC-1840 motherboard") static MACHINE_CONFIG_FRAGMENT( ec1841_mb_config ) MCFG_FRAGMENT_ADD(ibm5160_mb_config) @@ -848,7 +845,7 @@ ioport_constructor ec1841_mb_device::device_input_ports() const //------------------------------------------------- ec1841_mb_device::ec1841_mb_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : ibm5160_mb_device(mconfig, EC1841_MOTHERBOARD, "EC1841_MOTHERBOARD", tag, owner, clock, "ec1841_mb", __FILE__) + : ibm5160_mb_device(mconfig, EC1841_MOTHERBOARD, tag, owner, clock) { } @@ -898,12 +895,12 @@ READ8_MEMBER ( ec1841_mb_device::pc_ppi_portc_r ) } pc_noppi_mb_device::pc_noppi_mb_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : pc_noppi_mb_device(mconfig, PCNOPPI_MOTHERBOARD, "PCNOPPI_MOTHERBOARD", tag, owner, clock, "pcnoppi_mb", __FILE__) + : pc_noppi_mb_device(mconfig, PCNOPPI_MOTHERBOARD, tag, owner, clock) { } -pc_noppi_mb_device::pc_noppi_mb_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : ibm5160_mb_device(mconfig, type, name, tag, owner, clock, shortname, source) +pc_noppi_mb_device::pc_noppi_mb_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : ibm5160_mb_device(mconfig, type, tag, owner, clock) { } @@ -944,4 +941,4 @@ DEVICE_ADDRESS_MAP_START( map, 8, pc_noppi_mb_device ) AM_RANGE(0x00a0, 0x00a1) AM_WRITE(nmi_enable_w) ADDRESS_MAP_END -const device_type PCNOPPI_MOTHERBOARD = device_creator; +DEFINE_DEVICE_TYPE(PCNOPPI_MOTHERBOARD, pc_noppi_mb_device, "pcnoppi_mb", "PCNOPPI_MOTHERBOARD") diff --git a/src/devices/machine/genpc.h b/src/devices/machine/genpc.h index 65462fcdbe7..e9dc7beed67 100644 --- a/src/devices/machine/genpc.h +++ b/src/devices/machine/genpc.h @@ -6,8 +6,8 @@ * ****************************************************************************/ -#ifndef MAME_DEVICES_MACHINE_GENPC_H -#define MAME_DEVICES_MACHINE_GENPC_H +#ifndef MAME_MACHINE_GENPC_H +#define MAME_MACHINE_GENPC_H #include "imagedev/cassette.h" #include "machine/am9517a.h" @@ -42,7 +42,7 @@ public: DECLARE_ADDRESS_MAP(map, 8); protected: - ibm5160_mb_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); + ibm5160_mb_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); // device-level overrides virtual void device_start() override; @@ -120,7 +120,7 @@ private: // device type definition -extern const device_type IBM5160_MOTHERBOARD; +DECLARE_DEVICE_TYPE(IBM5160_MOTHERBOARD, ibm5160_mb_device) #define MCFG_IBM5150_MOTHERBOARD_ADD(_tag, _cputag) \ @@ -140,7 +140,7 @@ public: DECLARE_WRITE_LINE_MEMBER( keyboard_clock_w ); protected: - ibm5150_mb_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); + ibm5150_mb_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); // device-level overrides @@ -153,7 +153,7 @@ public: // device type definition -extern const device_type IBM5150_MOTHERBOARD; +DECLARE_DEVICE_TYPE(IBM5150_MOTHERBOARD, ibm5150_mb_device) #define MCFG_EC1841_MOTHERBOARD_ADD(_tag, _cputag) \ @@ -178,7 +178,7 @@ public: DECLARE_WRITE_LINE_MEMBER( keyboard_clock_w ); }; -extern const device_type EC1841_MOTHERBOARD; +DECLARE_DEVICE_TYPE(EC1841_MOTHERBOARD, ec1841_mb_device) #define MCFG_PCNOPPI_MOTHERBOARD_ADD(_tag, _cputag) \ MCFG_DEVICE_ADD(_tag, PCNOPPI_MOTHERBOARD, 0) \ @@ -194,12 +194,12 @@ public: DECLARE_ADDRESS_MAP(map, 8); protected: - pc_noppi_mb_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); + pc_noppi_mb_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); virtual machine_config_constructor device_mconfig_additions() const override; virtual ioport_constructor device_input_ports() const override; }; -extern const device_type PCNOPPI_MOTHERBOARD; +DECLARE_DEVICE_TYPE(PCNOPPI_MOTHERBOARD, pc_noppi_mb_device) -#endif // MAME_DEVICES_MACHINE_GENPC_H +#endif // MAME_MACHINE_GENPC_H diff --git a/src/devices/machine/gt64xxx.cpp b/src/devices/machine/gt64xxx.cpp index fb511e4a1ee..b163a9ef99f 100644 --- a/src/devices/machine/gt64xxx.cpp +++ b/src/devices/machine/gt64xxx.cpp @@ -3,17 +3,151 @@ #include "emu.h" #include "gt64xxx.h" +#define LOG_GENERAL (1U << 0) +#define LOG_GALILEO (1U << 1) +#define LOG_TIMERS (1U << 2) +#define LOG_DMA (1U << 3) +#define LOG_PCI (1U << 4) + +//#define VERBOSE (LOG_GENERAL | LOG_GALILEO | LOG_TIMERS | LOG_DMA | LOG_PCI) +#include "logmacro.h" + +#define LOGGALILEO(...) LOGMASKED(LOG_GALILEO, __VA_ARGS__) +#define LOGTIMERS(...) LOGMASKED(LOG_TIMERS, __VA_ARGS__) +#define LOGDMA(...) LOGMASKED(LOG_DMA, __VA_ARGS__) +#define LOGPCI(...) LOGMASKED(LOG_PCI, __VA_ARGS__) + + /************************************* * - * Debugging constants + * Galileo constants * *************************************/ -#define LOG_GALILEO (0) -#define LOG_TIMERS (0) -#define LOG_DMA (0) -#define LOG_PCI (0) -const device_type GT64XXX = device_creator; +#define TIMER_PERIOD attotime::from_hz(m_clock) +#define PCI_BUS_CLOCK 33000000 +// Number of dma words to transfer at a time, real hardware configurable between 8-32 +#define DMA_BURST_SIZE 32 +#define DMA_TIMER_PERIOD attotime::from_hz(PCI_BUS_CLOCK / 48) + +/* Galileo registers - 0x000-0x3ff */ +#define GREG_CPU_CONFIG (0x000/4) +#define GREG_RAS_1_0_LO (0x008/4) +#define GREG_RAS_1_0_HI (0x010/4) +#define GREG_RAS_3_2_LO (0x018/4) +#define GREG_RAS_3_2_HI (0x020/4) +#define GREG_CS_2_0_LO (0x028/4) +#define GREG_CS_2_0_HI (0x030/4) +#define GREG_CS_3_BOOT_LO (0x038/4) +#define GREG_CS_3_BOOT_HI (0x040/4) +#define GREG_PCI_IO_LO (0x048/4) +#define GREG_PCI_IO_HI (0x050/4) +#define GREG_PCI_MEM0_LO (0x058/4) +#define GREG_PCI_MEM0_HI (0x060/4) +#define GREG_INTERNAL_SPACE (0x068/4) +#define GREG_BUSERR_LO (0x070/4) +#define GREG_BUSERR_HI (0x078/4) +// GT-64111 only +#define GREG_PCI_MEM1_LO (0x080/4) +#define GREG_PCI_MEM1_HI (0x088/4) + +/* Galileo registers - 0x400-0x7ff */ +#define GREG_RAS0_LO (0x400/4) +#define GREG_RAS0_HI (0x404/4) +#define GREG_RAS1_LO (0x408/4) +#define GREG_RAS1_HI (0x40c/4) +#define GREG_RAS2_LO (0x410/4) +#define GREG_RAS2_HI (0x414/4) +#define GREG_RAS3_LO (0x418/4) +#define GREG_RAS3_HI (0x41c/4) +#define GREG_CS0_LO (0x420/4) +#define GREG_CS0_HI (0x424/4) +#define GREG_CS1_LO (0x428/4) +#define GREG_CS1_HI (0x42c/4) +#define GREG_CS2_LO (0x430/4) +#define GREG_CS2_HI (0x434/4) +#define GREG_CS3_LO (0x438/4) +#define GREG_CS3_HI (0x43c/4) +#define GREG_CSBOOT_LO (0x440/4) +#define GREG_CSBOOT_HI (0x444/4) +#define GREG_DRAM_CONFIG (0x448/4) +#define GREG_DRAM_BANK0 (0x44c/4) +#define GREG_DRAM_BANK1 (0x450/4) +#define GREG_DRAM_BANK2 (0x454/4) +#define GREG_DRAM_BANK3 (0x458/4) +#define GREG_DEVICE_BANK0 (0x45c/4) +#define GREG_DEVICE_BANK1 (0x460/4) +#define GREG_DEVICE_BANK2 (0x464/4) +#define GREG_DEVICE_BANK3 (0x468/4) +#define GREG_DEVICE_BOOT (0x46c/4) +#define GREG_ADDRESS_ERROR (0x470/4) + +/* Galileo registers - 0x800-0xbff */ +#define GREG_DMA0_COUNT (0x800/4) +#define GREG_DMA1_COUNT (0x804/4) +#define GREG_DMA2_COUNT (0x808/4) +#define GREG_DMA3_COUNT (0x80c/4) +#define GREG_DMA0_SOURCE (0x810/4) +#define GREG_DMA1_SOURCE (0x814/4) +#define GREG_DMA2_SOURCE (0x818/4) +#define GREG_DMA3_SOURCE (0x81c/4) +#define GREG_DMA0_DEST (0x820/4) +#define GREG_DMA1_DEST (0x824/4) +#define GREG_DMA2_DEST (0x828/4) +#define GREG_DMA3_DEST (0x82c/4) +#define GREG_DMA0_NEXT (0x830/4) +#define GREG_DMA1_NEXT (0x834/4) +#define GREG_DMA2_NEXT (0x838/4) +#define GREG_DMA3_NEXT (0x83c/4) +#define GREG_DMA0_CONTROL (0x840/4) +#define GREG_DMA1_CONTROL (0x844/4) +#define GREG_DMA2_CONTROL (0x848/4) +#define GREG_DMA3_CONTROL (0x84c/4) +#define GREG_TIMER0_COUNT (0x850/4) +#define GREG_TIMER1_COUNT (0x854/4) +#define GREG_TIMER2_COUNT (0x858/4) +#define GREG_TIMER3_COUNT (0x85c/4) +#define GREG_DMA_ARBITER (0x860/4) +#define GREG_TIMER_CONTROL (0x864/4) + +/* Galileo registers - 0xc00-0xfff */ +#define GREG_PCI_COMMAND (0xc00/4) +#define GREG_PCI_TIMEOUT (0xc04/4) +#define GREG_PCI_RAS_1_0 (0xc08/4) +#define GREG_PCI_RAS_3_2 (0xc0c/4) +#define GREG_PCI_CS_2_0 (0xc10/4) +#define GREG_PCI_CS_3_BOOT (0xc14/4) +#define GREG_INT_STATE (0xc18/4) +#define GREG_INT_MASK (0xc1c/4) +#define GREG_PCI_INT_MASK (0xc24/4) +#define GREG_CONFIG_ADDRESS (0xcf8/4) +#define GREG_CONFIG_DATA (0xcfc/4) + +/* Galileo interrupts */ +#define GINT_SUMMARY_SHIFT (0) +#define GINT_MEMOUT_SHIFT (1) +#define GINT_DMAOUT_SHIFT (2) +#define GINT_CPUOUT_SHIFT (3) +#define GINT_DMA0COMP_SHIFT (4) +#define GINT_DMA1COMP_SHIFT (5) +#define GINT_DMA2COMP_SHIFT (6) +#define GINT_DMA3COMP_SHIFT (7) +#define GINT_T0EXP_SHIFT (8) +#define GINT_T1EXP_SHIFT (9) +#define GINT_T2EXP_SHIFT (10) +#define GINT_T3EXP_SHIFT (11) +#define GINT_MASRDERR_SHIFT (12) +#define GINT_SLVWRERR_SHIFT (13) +#define GINT_MASWRERR_SHIFT (14) +#define GINT_SLVRDERR_SHIFT (15) +#define GINT_ADDRERR_SHIFT (16) +#define GINT_MEMERR_SHIFT (17) +#define GINT_MASABORT_SHIFT (18) +#define GINT_TARABORT_SHIFT (19) +#define GINT_RETRYCTR_SHIFT (20) + + +DEFINE_DEVICE_TYPE(GT64XXX, gt64xxx_device, "gt64xxx", "Galileo GT-64XXX System Controller") DEVICE_ADDRESS_MAP_START(config_map, 32, gt64xxx_device) AM_INHERIT_FROM(pci_device::config_map) @@ -28,7 +162,7 @@ DEVICE_ADDRESS_MAP_START(empty, 32, gt64xxx_device) ADDRESS_MAP_END gt64xxx_device::gt64xxx_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : pci_host_device(mconfig, GT64XXX, "Galileo GT-64XXX System Controller", tag, owner, clock, "gt64xxx", __FILE__), + : pci_host_device(mconfig, GT64XXX, tag, owner, clock), m_be(0), m_autoconfig(0), m_irq_num(-1), m_mem_config("memory_space", ENDIANNESS_LITTLE, 32, 32), m_io_config("io_space", ENDIANNESS_LITTLE, 32, 32), @@ -82,15 +216,13 @@ void gt64xxx_device::device_start() m_cpu_space->install_rom (0x1fc00000, 0x1fc00000 + romSize - 1, m_romRegion->base()); // ROM MIPS DRC m_cpu->add_fastram(0x1fc00000, 0x1fc00000 + romSize - 1, true, m_romRegion->base()); - if (LOG_GALILEO) - logerror("%s: gt64xxx_device::device_start ROM Mapped size: 0x%08X start: 0x1fc00000 end: %08X\n", tag(), romSize, 0x1fc00000 + romSize - 1); + LOGGALILEO("gt64xxx_device::device_start ROM Mapped size: 0x%08X start: 0x1fc00000 end: %08X\n", romSize, 0x1fc00000 + romSize - 1); // Update region address is based on seattle driver if (m_updateRegion) { romSize = m_updateRegion->bytes(); m_cpu_space->install_rom(0x1fd00000, 0x1fd00000 + romSize - 1, m_updateRegion->base()); - if (LOG_GALILEO) - logerror("%s: gt64xxx_device::device_start UPDATE Mapped size: 0x%08X start: 0x1fd00000 end: %08X\n", tag(), romSize, 0x1fd00000 + romSize - 1); + LOGGALILEO("gt64xxx_device::device_start UPDATE Mapped size: 0x%08X start: 0x1fd00000 end: %08X\n", romSize, 0x1fd00000 + romSize - 1); } /* allocate timers for the galileo */ @@ -203,8 +335,7 @@ void gt64xxx_device::map_cpu_space() winStart = m_reg[GREG_INTERNAL_SPACE]<<21; winEnd = winStart + sizeof(m_reg) - 1; m_cpu_space->install_device(winStart, winEnd, *static_cast(this), >64xxx_device::cpu_map); - if (1 || LOG_GALILEO) - logerror("%s: map_cpu_space cpu_reg start: %08X end: %08X\n", tag(), winStart, winEnd); + logerror("map_cpu_space cpu_reg start: %08X end: %08X\n", winStart, winEnd); // RAS[0:3] for (int ramIndex = 0; ramIndex < 4; ++ramIndex) @@ -220,8 +351,7 @@ void gt64xxx_device::map_cpu_space() m_cpu_space->install_ram(winStart, winEnd, m_ram[ramIndex].data()); //m_cpu->add_fastram(winStart, m_ram[ramIndex].size() * sizeof(m_ram[ramIndex][0]), false, &m_ram[ramIndex][0]); //m_cpu->add_fastram(winStart, m_ram[ramIndex].size() * sizeof(uint32_t), false, m_ram[ramIndex].data()); - if (1 || LOG_GALILEO) - logerror("%s: map_cpu_space ras[%i] start: %08X end: %08X\n", tag(), ramIndex, winStart, winEnd); + logerror("map_cpu_space ras[%i] start: %08X end: %08X\n", ramIndex, winStart, winEnd); //printf("%s: map_cpu_space ras[%i] start: %08X end: %08X size: %08X\n", tag(), ramIndex, winStart, winEnd, winEnd-winStart+1); } @@ -231,8 +361,7 @@ void gt64xxx_device::map_cpu_space() winStart = (m_reg[GREG_CS_2_0_LO + 0x10 / 4 * (csIndex / 3)] << 21) | (m_reg[GREG_CS0_LO + 0x8 / 4 * csIndex] << 20); winEnd = (m_reg[GREG_CS_2_0_LO + 0x10 / 4 * (csIndex / 3)] << 21) | (m_reg[GREG_CS0_HI + 0x8 / 4 * csIndex] << 20) | 0xfffff; m_cpu_space->install_device_delegate(winStart, winEnd, *m_cs_devices[csIndex], m_cs_maps[csIndex]); - if (1 || LOG_GALILEO) - logerror("%s: map_cpu_space cs[%i] start: %08X end: %08X\n", tag(), csIndex, winStart, winEnd); + logerror("map_cpu_space cs[%i] start: %08X end: %08X\n", csIndex, winStart, winEnd); } // PCI IO Window @@ -240,24 +369,21 @@ void gt64xxx_device::map_cpu_space() winEnd = (m_reg[GREG_PCI_IO_LO]<<21) | (m_reg[GREG_PCI_IO_HI]<<21) | 0x1fffff; m_cpu_space->install_read_handler(winStart, winEnd, read32_delegate(FUNC(gt64xxx_device::master_io_r), this)); m_cpu_space->install_write_handler(winStart, winEnd, write32_delegate(FUNC(gt64xxx_device::master_io_w), this)); - if (1 || LOG_GALILEO) - logerror("%s: map_cpu_space pci_io start: %08X end: %08X\n", tag(), winStart, winEnd); + logerror("map_cpu_space pci_io start: %08X end: %08X\n", winStart, winEnd); // PCI MEM0 Window winStart = m_reg[GREG_PCI_MEM0_LO]<<21; winEnd = (m_reg[GREG_PCI_MEM0_LO]<<21) | (m_reg[GREG_PCI_MEM0_HI]<<21) | 0x1fffff; m_cpu_space->install_read_handler(winStart, winEnd, read32_delegate(FUNC(gt64xxx_device::master_mem0_r), this)); m_cpu_space->install_write_handler(winStart, winEnd, write32_delegate(FUNC(gt64xxx_device::master_mem0_w), this)); - if (1 || LOG_GALILEO) - logerror("%s: map_cpu_space pci_mem0 start: %08X end: %08X\n", tag(), winStart, winEnd); + logerror("map_cpu_space pci_mem0 start: %08X end: %08X\n", winStart, winEnd); // PCI MEM1 Window winStart = m_reg[GREG_PCI_MEM1_LO]<<21; winEnd = (m_reg[GREG_PCI_MEM1_LO]<<21) | (m_reg[GREG_PCI_MEM1_HI]<<21) | 0x1fffff; m_cpu_space->install_read_handler(winStart, winEnd, read32_delegate(FUNC(gt64xxx_device::master_mem1_r), this)); m_cpu_space->install_write_handler(winStart, winEnd, write32_delegate(FUNC(gt64xxx_device::master_mem1_w), this)); - if (1 || LOG_GALILEO) - logerror("%s: map_cpu_space pci_mem1 start: %08X end: %08X\n", tag(), winStart, winEnd); + logerror("map_cpu_space pci_mem1 start: %08X end: %08X\n", winStart, winEnd); // Setup the address mapping table for DMA lookups for (size_t index = 0; index < proc_addr_bank::ADDR_NUM; ++index) @@ -300,8 +426,7 @@ void gt64xxx_device::map_extra(uint64_t memory_window_start, uint64_t memory_win winSize = winEnd - winStart + 1; memory_space->install_read_handler(winStart, winEnd, read32_delegate(FUNC(gt64xxx_device::ras_0_r), this)); memory_space->install_write_handler(winStart, winEnd, write32_delegate(FUNC(gt64xxx_device::ras_0_w), this)); - if (LOG_GALILEO) - logerror("%s: map_extra RAS0 start=%08X end=%08X size=%08X\n", tag(), winStart, winEnd, winSize); + LOGGALILEO("map_extra RAS0 start=%08X end=%08X size=%08X\n", winStart, winEnd, winSize); // RAS1 ramIndex = 1; @@ -310,8 +435,7 @@ void gt64xxx_device::map_extra(uint64_t memory_window_start, uint64_t memory_win winSize = winEnd - winStart + 1; memory_space->install_read_handler(winStart, winEnd, read32_delegate(FUNC(gt64xxx_device::ras_1_r), this)); memory_space->install_write_handler(winStart, winEnd, write32_delegate(FUNC(gt64xxx_device::ras_1_w), this)); - if (LOG_GALILEO) - logerror("%s: map_extra RAS1 start=%08X end=%08X size=%08X\n", tag(), winStart, winEnd, winSize); + LOGGALILEO("map_extra RAS1 start=%08X end=%08X size=%08X\n", winStart, winEnd, winSize); // RAS2 ramIndex = 2; @@ -320,8 +444,7 @@ void gt64xxx_device::map_extra(uint64_t memory_window_start, uint64_t memory_win winSize = winEnd - winStart + 1; memory_space->install_read_handler(winStart, winEnd, read32_delegate(FUNC(gt64xxx_device::ras_2_r), this)); memory_space->install_write_handler(winStart, winEnd, write32_delegate(FUNC(gt64xxx_device::ras_2_w), this)); - if (LOG_GALILEO) - logerror("%s: map_extra RAS2 start=%08X end=%08X size=%08X\n", tag(), winStart, winEnd, winSize); + LOGGALILEO("map_extra RAS2 start=%08X end=%08X size=%08X\n", winStart, winEnd, winSize); // RAS3 ramIndex = 3; @@ -330,8 +453,7 @@ void gt64xxx_device::map_extra(uint64_t memory_window_start, uint64_t memory_win winSize = winEnd - winStart + 1; memory_space->install_read_handler(winStart, winEnd, read32_delegate(FUNC(gt64xxx_device::ras_3_r), this)); memory_space->install_write_handler(winStart, winEnd, write32_delegate(FUNC(gt64xxx_device::ras_3_w), this)); - if (LOG_GALILEO) - logerror("%s: map_extra RAS3 start=%08X end=%08X size=%08X\n", tag(), winStart, winEnd, winSize); + LOGGALILEO("map_extra RAS3 start=%08X end=%08X size=%08X\n", winStart, winEnd, winSize); } void gt64xxx_device::reset_all_mappings() @@ -352,8 +474,7 @@ WRITE_LINE_MEMBER(gt64xxx_device::pci_stall) this->space(AS_DATA).write_dword((m_reg[GREG_PCI_MEM0_LO] << 21) | (m_cpu_stalled_offset * 4), m_cpu_stalled_data, m_cpu_stalled_mem_mask); /* resume CPU execution */ machine().scheduler().trigger(45678); - if (LOG_GALILEO) - logerror("Resuming CPU on PCI Stall offset=0x%08X data=0x%08X\n", m_cpu_stalled_offset * 4, m_cpu_stalled_data); + LOGGALILEO("Resuming CPU on PCI Stall offset=0x%08X data=0x%08X\n", m_cpu_stalled_offset * 4, m_cpu_stalled_data); } } @@ -365,21 +486,18 @@ WRITE_LINE_MEMBER(gt64xxx_device::pci_stall) READ32_MEMBER (gt64xxx_device::pci_config_r) { uint32_t result = 0; - if (LOG_GALILEO) - logerror("%06X:galileo pci_config_r from offset %02X = %08X & %08X\n", space.device().safe_pc(), offset*4, result, mem_mask); + LOGGALILEO("%06X:galileo pci_config_r from offset %02X = %08X & %08X\n", space.device().safe_pc(), offset*4, result, mem_mask); return result; } WRITE32_MEMBER (gt64xxx_device::pci_config_w) { - if (LOG_GALILEO) - logerror("%06X:galileo pci_config_w to offset %02X = %08X & %08X\n", space.device().safe_pc(), offset*4, data, mem_mask); + LOGGALILEO("%06X:galileo pci_config_w to offset %02X = %08X & %08X\n", space.device().safe_pc(), offset*4, data, mem_mask); } // PCI Master Window 0 READ32_MEMBER (gt64xxx_device::master_mem0_r) { uint32_t result = this->space(AS_DATA).read_dword((m_reg[GREG_PCI_MEM0_LO]<<21) | (offset*4), mem_mask); - if (LOG_PCI) - logerror("%06X:galileo pci mem0 read from offset %08X = %08X & %08X\n", space.device().safe_pc(), (m_reg[GREG_PCI_MEM0_LO]<<21) | (offset*4), result, mem_mask); + LOGPCI("%06X:galileo pci mem0 read from offset %08X = %08X & %08X\n", space.device().safe_pc(), (m_reg[GREG_PCI_MEM0_LO]<<21) | (offset*4), result, mem_mask); return result; } WRITE32_MEMBER (gt64xxx_device::master_mem0_w) @@ -392,107 +510,95 @@ WRITE32_MEMBER (gt64xxx_device::master_mem0_w) m_cpu_stalled_mem_mask = mem_mask; // Stall cpu until trigger m_cpu_space->device().execute().spin_until_trigger(45678); - if (LOG_GALILEO || LOG_PCI) - logerror("%08X:Stalling CPU on PCI Stall\n", m_cpu_space->device().safe_pc()); + LOGMASKED(LOG_GALILEO | LOG_PCI, "%08X:Stalling CPU on PCI Stall\n", m_cpu_space->device().safe_pc()); return; } this->space(AS_DATA).write_dword((m_reg[GREG_PCI_MEM0_LO]<<21) | (offset*4), data, mem_mask); - if (LOG_PCI) - logerror("%06X:galileo pci mem0 write to offset %08X = %08X & %08X\n", space.device().safe_pc(), (m_reg[GREG_PCI_MEM0_LO]<<21) | (offset*4), data, mem_mask); + LOGPCI("%06X:galileo pci mem0 write to offset %08X = %08X & %08X\n", space.device().safe_pc(), (m_reg[GREG_PCI_MEM0_LO]<<21) | (offset*4), data, mem_mask); } // PCI Master Window 1 READ32_MEMBER (gt64xxx_device::master_mem1_r) { uint32_t result = this->space(AS_DATA).read_dword((m_reg[GREG_PCI_MEM1_LO]<<21) | (offset*4), mem_mask); - if (LOG_PCI) - logerror("%06X:galileo pci mem1 read from offset %08X = %08X & %08X\n", space.device().safe_pc(), (m_reg[GREG_PCI_MEM1_LO]<<21) | (offset*4), result, mem_mask); + LOGPCI("%06X:galileo pci mem1 read from offset %08X = %08X & %08X\n", space.device().safe_pc(), (m_reg[GREG_PCI_MEM1_LO]<<21) | (offset*4), result, mem_mask); return result; } WRITE32_MEMBER (gt64xxx_device::master_mem1_w) { this->space(AS_DATA).write_dword((m_reg[GREG_PCI_MEM1_LO]<<21) | (offset*4), data, mem_mask); - if (LOG_PCI) - logerror("%06X:galileo pci mem1 write to offset %08X = %08X & %08X\n", space.device().safe_pc(), (m_reg[GREG_PCI_MEM1_LO]<<21) | (offset*4), data, mem_mask); + LOGPCI("%06X:galileo pci mem1 write to offset %08X = %08X & %08X\n", space.device().safe_pc(), (m_reg[GREG_PCI_MEM1_LO]<<21) | (offset*4), data, mem_mask); } // PCI Master IO READ32_MEMBER (gt64xxx_device::master_io_r) { uint32_t result = this->space(AS_IO).read_dword((m_reg[GREG_PCI_IO_LO] << 21) | (offset * 4), mem_mask); - if (LOG_PCI && m_prev_addr != offset) { + if (m_prev_addr != offset) { m_prev_addr = offset; - logerror("%06X:galileo pci io read from offset %08X = %08X & %08X\n", space.device().safe_pc(), (m_reg[GREG_PCI_IO_LO] << 21) | (offset * 4), result, mem_mask); + LOGPCI("%06X:galileo pci io read from offset %08X = %08X & %08X\n", space.device().safe_pc(), (m_reg[GREG_PCI_IO_LO] << 21) | (offset * 4), result, mem_mask); } return result; } WRITE32_MEMBER (gt64xxx_device::master_io_w) { this->space(AS_IO).write_dword((m_reg[GREG_PCI_IO_LO] << 21) | (offset * 4), data, mem_mask); - if (LOG_PCI && m_prev_addr != offset) { + if (m_prev_addr != offset) { m_prev_addr = offset; - logerror("%06X:galileo pci io write to offset %08X = %08X & %08X\n", space.device().safe_pc(), (m_reg[GREG_PCI_IO_LO] << 21) | (offset * 4), data, mem_mask); + LOGPCI("%06X:galileo pci io write to offset %08X = %08X & %08X\n", space.device().safe_pc(), (m_reg[GREG_PCI_IO_LO] << 21) | (offset * 4), data, mem_mask); } } READ32_MEMBER(gt64xxx_device::ras_0_r) { uint32_t result = m_ram[0][offset]; - if (LOG_PCI) - logerror("%06X:galileo ras_0 read from offset %08X = %08X & %08X\n", space.device().safe_pc(), offset * 4, result, mem_mask); + LOGPCI("%06X:galileo ras_0 read from offset %08X = %08X & %08X\n", space.device().safe_pc(), offset * 4, result, mem_mask); return result; } WRITE32_MEMBER(gt64xxx_device::ras_0_w) { COMBINE_DATA(&m_ram[0][offset]); - if (LOG_PCI) - logerror("%06X:galileo ras_0 write to offset %08X = %08X & %08X\n", space.device().safe_pc(), offset * 4, data, mem_mask); + LOGPCI("%06X:galileo ras_0 write to offset %08X = %08X & %08X\n", space.device().safe_pc(), offset * 4, data, mem_mask); } READ32_MEMBER(gt64xxx_device::ras_1_r) { uint32_t result = m_ram[1][offset]; - if (LOG_PCI) - logerror("%06X:galileo ras_0 read from offset %08X = %08X & %08X\n", space.device().safe_pc(), offset * 4, result, mem_mask); + LOGPCI("%06X:galileo ras_0 read from offset %08X = %08X & %08X\n", space.device().safe_pc(), offset * 4, result, mem_mask); return result; } WRITE32_MEMBER(gt64xxx_device::ras_1_w) { COMBINE_DATA(&m_ram[1][offset]); - if (LOG_PCI) - logerror("%06X:galileo ras_0 write to offset %08X = %08X & %08X\n", space.device().safe_pc(), offset * 4, data, mem_mask); + LOGPCI("%06X:galileo ras_0 write to offset %08X = %08X & %08X\n", space.device().safe_pc(), offset * 4, data, mem_mask); } READ32_MEMBER(gt64xxx_device::ras_2_r) { uint32_t result = m_ram[2][offset]; - if (LOG_PCI) - logerror("%06X:galileo ras_0 read from offset %08X = %08X & %08X\n", space.device().safe_pc(), offset * 4, result, mem_mask); + LOGPCI("%06X:galileo ras_0 read from offset %08X = %08X & %08X\n", space.device().safe_pc(), offset * 4, result, mem_mask); return result; } WRITE32_MEMBER(gt64xxx_device::ras_2_w) { COMBINE_DATA(&m_ram[2][offset]); - if (LOG_PCI) - logerror("%06X:galileo ras_0 write to offset %08X = %08X & %08X\n", space.device().safe_pc(), offset * 4, data, mem_mask); + LOGPCI("%06X:galileo ras_0 write to offset %08X = %08X & %08X\n", space.device().safe_pc(), offset * 4, data, mem_mask); } READ32_MEMBER(gt64xxx_device::ras_3_r) { uint32_t result = m_ram[3][offset]; - if (LOG_PCI) - logerror("%06X:galileo ras_0 read from offset %08X = %08X & %08X\n", space.device().safe_pc(), offset * 4, result, mem_mask); + LOGPCI("%06X:galileo ras_0 read from offset %08X = %08X & %08X\n", space.device().safe_pc(), offset * 4, result, mem_mask); return result; } WRITE32_MEMBER(gt64xxx_device::ras_3_w) { COMBINE_DATA(&m_ram[3][offset]); - if (LOG_PCI) - logerror("%06X:galileo ras_0 write to offset %08X = %08X & %08X\n", space.device().safe_pc(), offset * 4, data, mem_mask); + LOGPCI("%06X:galileo ras_0 write to offset %08X = %08X & %08X\n", space.device().safe_pc(), offset * 4, data, mem_mask); } @@ -522,8 +628,7 @@ READ32_MEMBER (gt64xxx_device::cpu_if_r) /* eat some time for those which poll this register */ //space.device().execute().eat_cycles(100); - if (LOG_TIMERS) - logerror("%08X:hires_timer_r = %08X\n", space.device().safe_pc(), result); + LOGTIMERS("%08X:hires_timer_r = %08X\n", space.device().safe_pc(), result); break; } @@ -537,8 +642,7 @@ READ32_MEMBER (gt64xxx_device::cpu_if_r) case GREG_CONFIG_DATA: result = config_data_r(space, offset); - if (LOG_GALILEO) - logerror("%08X:Galileo GREG_CONFIG_DATA read from offset %03X = %08X\n", space.device().safe_pc(), offset*4, result); + LOGGALILEO("%08X:Galileo GREG_CONFIG_DATA read from offset %03X = %08X\n", space.device().safe_pc(), offset*4, result); break; case GREG_CONFIG_ADDRESS: @@ -548,13 +652,11 @@ READ32_MEMBER (gt64xxx_device::cpu_if_r) case GREG_INT_STATE: case GREG_INT_MASK: case GREG_TIMER_CONTROL: -// if (LOG_GALILEO) -// logerror("%08X:Galileo read from offset %03X = %08X\n", space.device().safe_pc(), offset*4, result); +// LOGGALILEO("%08X:Galileo read from offset %03X = %08X\n", space.device().safe_pc(), offset*4, result); break; default: - if (LOG_GALILEO) - logerror("%08X:Galileo read from offset %03X = %08X\n", space.device().safe_pc(), offset*4, result); + LOGGALILEO("%08X:Galileo read from offset %03X = %08X\n", space.device().safe_pc(), offset*4, result); break; } @@ -594,8 +696,7 @@ WRITE32_MEMBER(gt64xxx_device::cpu_if_w) case GREG_CS3_HI: map_cpu_space(); remap_cb(); - if (LOG_GALILEO) - logerror("%08X:Galileo Memory Map data write to offset %03X = %08X & %08X\n", space.device().safe_pc(), offset*4, data, mem_mask); + LOGGALILEO("%08X:Galileo Memory Map data write to offset %03X = %08X & %08X\n", space.device().safe_pc(), offset*4, data, mem_mask); break; case GREG_DMA0_CONTROL: @@ -622,11 +723,9 @@ WRITE32_MEMBER(gt64xxx_device::cpu_if_w) m_dma_timer->adjust(attotime::zero, 0, DMA_TIMER_PERIOD); m_dma_active |= (1<< which); //perform_dma(space, which); - if (LOG_DMA) - logerror("%08X:Galileo starting DMA Chan %i\n", space.device().safe_pc(), which); + LOGDMA("%08X:Galileo starting DMA Chan %i\n", space.device().safe_pc(), which); } - if (LOG_GALILEO) - logerror("%08X:Galileo write to offset %03X = %08X & %08X\n", space.device().safe_pc(), offset * 4, data, mem_mask); + LOGGALILEO("%08X:Galileo write to offset %03X = %08X & %08X\n", space.device().safe_pc(), offset * 4, data, mem_mask); break; } @@ -642,8 +741,7 @@ WRITE32_MEMBER(gt64xxx_device::cpu_if_w) data &= 0xffffff; if (!timer->active) timer->count = data; - if (LOG_TIMERS) - logerror("%08X:timer/counter %d count = %08X [start=%08X]\n", space.device().safe_pc(), offset % 4, data, timer->count); + LOGTIMERS("%08X:timer/counter %d count = %08X [start=%08X]\n", space.device().safe_pc(), offset % 4, data, timer->count); break; } @@ -651,8 +749,7 @@ WRITE32_MEMBER(gt64xxx_device::cpu_if_w) { int which, mask; - if (LOG_TIMERS) - logerror("%08X:timer/counter control = %08X\n", space.device().safe_pc(), data); + LOGTIMERS("%08X:timer/counter control = %08X\n", space.device().safe_pc(), data); for (which = 0, mask = 0x01; which < 4; which++, mask <<= 2) { galileo_timer *timer = &m_timer[which]; @@ -666,8 +763,7 @@ WRITE32_MEMBER(gt64xxx_device::cpu_if_w) timer->count &= 0xffffff; } timer->timer->adjust(TIMER_PERIOD * timer->count, which); - if (LOG_TIMERS) - logerror("Adjusted timer to fire in %f secs\n", (TIMER_PERIOD * timer->count).as_double()); + LOGTIMERS("Adjusted timer to fire in %f secs\n", (TIMER_PERIOD * timer->count).as_double()); } else if (timer->active && !(data & mask)) { @@ -675,24 +771,21 @@ WRITE32_MEMBER(gt64xxx_device::cpu_if_w) timer->active = 0; timer->count = (timer->count > elapsed) ? (timer->count - elapsed) : 0; timer->timer->adjust(attotime::never, which); - if (LOG_TIMERS) - logerror("Disabled timer\n"); + LOGTIMERS("Disabled timer\n"); } } break; } case GREG_INT_STATE: - if (LOG_GALILEO) - logerror("%08X:Galileo write to IRQ clear = %08X & %08X\n", offset*4, data, mem_mask); + LOGGALILEO("%08X:Galileo write to IRQ clear = %08X & %08X\n", offset*4, data, mem_mask); m_reg[offset] = oldata & data; update_irqs(); break; case GREG_CONFIG_DATA: pci_host_device::config_data_w(space, offset, data); - if (LOG_GALILEO) - logerror("%08X:Galileo PCI config data write to offset %03X = %08X & %08X\n", space.device().safe_pc(), offset*4, data, mem_mask); + LOGGALILEO("%08X:Galileo PCI config data write to offset %03X = %08X & %08X\n", space.device().safe_pc(), offset*4, data, mem_mask); break; case GREG_CONFIG_ADDRESS: @@ -718,8 +811,7 @@ WRITE32_MEMBER(gt64xxx_device::cpu_if_w) modData = data; } pci_host_device::config_address_w(space, offset, modData); - if (LOG_GALILEO) - logerror("%08X:Galileo PCI config address write to offset %03X = %08X & %08X origData = %08X\n", space.device().safe_pc(), offset*4, modData, mem_mask, data); + LOGGALILEO("%08X:Galileo PCI config address write to offset %03X = %08X & %08X origData = %08X\n", space.device().safe_pc(), offset*4, modData, mem_mask, data); break; case GREG_DMA0_COUNT: case GREG_DMA1_COUNT: case GREG_DMA2_COUNT: case GREG_DMA3_COUNT: @@ -727,13 +819,11 @@ WRITE32_MEMBER(gt64xxx_device::cpu_if_w) case GREG_DMA0_DEST: case GREG_DMA1_DEST: case GREG_DMA2_DEST: case GREG_DMA3_DEST: case GREG_DMA0_NEXT: case GREG_DMA1_NEXT: case GREG_DMA2_NEXT: case GREG_DMA3_NEXT: case GREG_INT_MASK: - if (LOG_GALILEO) - logerror("%08X:Galileo write to offset %03X = %08X & %08X\n", space.device().safe_pc(), offset*4, data, mem_mask); + LOGGALILEO("%08X:Galileo write to offset %03X = %08X & %08X\n", space.device().safe_pc(), offset*4, data, mem_mask); break; default: - if (LOG_GALILEO) - logerror("%08X:Galileo write to offset %03X = %08X & %08X\n", space.device().safe_pc(), offset*4, data, mem_mask); + LOGGALILEO("%08X:Galileo write to offset %03X = %08X & %08X\n", space.device().safe_pc(), offset*4, data, mem_mask); break; } } @@ -754,8 +844,7 @@ void gt64xxx_device::update_irqs() if (m_irq_num != -1) m_cpu->set_input_line(m_irq_num, state); - if (1 && LOG_GALILEO) - logerror("Galileo IRQ %s irqNum: %i state = %08X mask = %08X\n", (state == ASSERT_LINE) ? "asserted" : "cleared", m_irq_num, m_reg[GREG_INT_STATE], m_reg[GREG_INT_MASK]); + LOGGALILEO("Galileo IRQ %s irqNum: %i state = %08X mask = %08X\n", (state == ASSERT_LINE) ? "asserted" : "cleared", m_irq_num, m_reg[GREG_INT_STATE], m_reg[GREG_INT_MASK]); } @@ -764,8 +853,7 @@ TIMER_CALLBACK_MEMBER(gt64xxx_device::timer_callback) int which = param; galileo_timer *timer = &m_timer[which]; - if (LOG_TIMERS) - logerror("timer %d fired\n", which); + LOGTIMERS("timer %d fired\n", which); /* copy the start value from the registers */ timer->count = m_reg[GREG_TIMER0_COUNT + which]; @@ -883,16 +971,15 @@ TIMER_CALLBACK_MEMBER (gt64xxx_device::perform_dma) case 2: dstinc = 0; break; } - if (LOG_DMA) - logerror("Performing DMA%d: src=%08X dst=%08X bytes=%04X sinc=%d dinc=%d\n", which, srcaddr, dstaddr, bytesleft, srcinc, dstinc); + LOGDMA("Performing DMA%d: src=%08X dst=%08X bytes=%04X sinc=%d dinc=%d\n", which, srcaddr, dstaddr, bytesleft, srcinc, dstinc); int burstCount = 0; /* standard transfer */ while (bytesleft > 0 && burstCount < DMA_BURST_SIZE) { - if (m_pci_stall_state) { - if (LOG_DMA && m_retry_count<4) - logerror("%08X:Stalling DMA on voodoo retry_count: %i\n", m_cpu_space->device().safe_pc(), m_retry_count); + if (m_pci_stall_state) + { + if (m_retry_count<4) LOGDMA("%08X:Stalling DMA on voodoo retry_count: %i\n", m_cpu_space->device().safe_pc(), m_retry_count); // Save info m_reg[GREG_DMA0_SOURCE + which] = srcaddr; m_reg[GREG_DMA0_DEST + which] = dstaddr; @@ -900,14 +987,16 @@ TIMER_CALLBACK_MEMBER (gt64xxx_device::perform_dma) m_retry_count++; uint32_t configRetryCount = (m_reg[GREG_PCI_TIMEOUT] >> 16) & 0xff; - if (m_retry_count >= configRetryCount && configRetryCount > 0) { + if (m_retry_count >= configRetryCount && configRetryCount > 0) + { logerror("gt64xxx_device::perform_dma Error! Too many PCI retries. DMA%d: src=%08X dst=%08X bytes=%04X sinc=%d dinc=%d\n", which, srcaddr, dstaddr, bytesleft, srcinc, dstinc); // Signal error and abort DMA m_dma_active &= ~(1 << which); m_retry_count = 0; return; } - else { + else + { // Come back later return; } diff --git a/src/devices/machine/gt64xxx.h b/src/devices/machine/gt64xxx.h index cf6cbf20ea3..192672b8c3a 100644 --- a/src/devices/machine/gt64xxx.h +++ b/src/devices/machine/gt64xxx.h @@ -6,8 +6,8 @@ // Need PCI to be able to have a target delay (pci bus stall) a dma transfer // Configurable byte swapping on cpu and pci busses. -#ifndef GT64XXX_H -#define GT64XXX_H +#ifndef MAME_MACHINE_GT64XXX_H +#define MAME_MACHINE_GT64XXX_H #include "pci.h" #include "cpu/mips/mips3.h" @@ -47,154 +47,11 @@ #define MCFG_GT64XX_SET_SIMM1(_size) \ downcast(device)->set_simm1_size(_size); -/************************************* - * - * Galileo constants - * - *************************************/ - -#define TIMER_PERIOD attotime::from_hz(m_clock) -#define PCI_BUS_CLOCK 33000000 -// Number of dma words to transfer at a time, real hardware configurable between 8-32 -#define DMA_BURST_SIZE 32 -#define DMA_TIMER_PERIOD attotime::from_hz(PCI_BUS_CLOCK / 48) - -/* Galileo registers - 0x000-0x3ff */ -#define GREG_CPU_CONFIG (0x000/4) -#define GREG_RAS_1_0_LO (0x008/4) -#define GREG_RAS_1_0_HI (0x010/4) -#define GREG_RAS_3_2_LO (0x018/4) -#define GREG_RAS_3_2_HI (0x020/4) -#define GREG_CS_2_0_LO (0x028/4) -#define GREG_CS_2_0_HI (0x030/4) -#define GREG_CS_3_BOOT_LO (0x038/4) -#define GREG_CS_3_BOOT_HI (0x040/4) -#define GREG_PCI_IO_LO (0x048/4) -#define GREG_PCI_IO_HI (0x050/4) -#define GREG_PCI_MEM0_LO (0x058/4) -#define GREG_PCI_MEM0_HI (0x060/4) -#define GREG_INTERNAL_SPACE (0x068/4) -#define GREG_BUSERR_LO (0x070/4) -#define GREG_BUSERR_HI (0x078/4) -// GT-64111 only -#define GREG_PCI_MEM1_LO (0x080/4) -#define GREG_PCI_MEM1_HI (0x088/4) - -/* Galileo registers - 0x400-0x7ff */ -#define GREG_RAS0_LO (0x400/4) -#define GREG_RAS0_HI (0x404/4) -#define GREG_RAS1_LO (0x408/4) -#define GREG_RAS1_HI (0x40c/4) -#define GREG_RAS2_LO (0x410/4) -#define GREG_RAS2_HI (0x414/4) -#define GREG_RAS3_LO (0x418/4) -#define GREG_RAS3_HI (0x41c/4) -#define GREG_CS0_LO (0x420/4) -#define GREG_CS0_HI (0x424/4) -#define GREG_CS1_LO (0x428/4) -#define GREG_CS1_HI (0x42c/4) -#define GREG_CS2_LO (0x430/4) -#define GREG_CS2_HI (0x434/4) -#define GREG_CS3_LO (0x438/4) -#define GREG_CS3_HI (0x43c/4) -#define GREG_CSBOOT_LO (0x440/4) -#define GREG_CSBOOT_HI (0x444/4) -#define GREG_DRAM_CONFIG (0x448/4) -#define GREG_DRAM_BANK0 (0x44c/4) -#define GREG_DRAM_BANK1 (0x450/4) -#define GREG_DRAM_BANK2 (0x454/4) -#define GREG_DRAM_BANK3 (0x458/4) -#define GREG_DEVICE_BANK0 (0x45c/4) -#define GREG_DEVICE_BANK1 (0x460/4) -#define GREG_DEVICE_BANK2 (0x464/4) -#define GREG_DEVICE_BANK3 (0x468/4) -#define GREG_DEVICE_BOOT (0x46c/4) -#define GREG_ADDRESS_ERROR (0x470/4) - -/* Galileo registers - 0x800-0xbff */ -#define GREG_DMA0_COUNT (0x800/4) -#define GREG_DMA1_COUNT (0x804/4) -#define GREG_DMA2_COUNT (0x808/4) -#define GREG_DMA3_COUNT (0x80c/4) -#define GREG_DMA0_SOURCE (0x810/4) -#define GREG_DMA1_SOURCE (0x814/4) -#define GREG_DMA2_SOURCE (0x818/4) -#define GREG_DMA3_SOURCE (0x81c/4) -#define GREG_DMA0_DEST (0x820/4) -#define GREG_DMA1_DEST (0x824/4) -#define GREG_DMA2_DEST (0x828/4) -#define GREG_DMA3_DEST (0x82c/4) -#define GREG_DMA0_NEXT (0x830/4) -#define GREG_DMA1_NEXT (0x834/4) -#define GREG_DMA2_NEXT (0x838/4) -#define GREG_DMA3_NEXT (0x83c/4) -#define GREG_DMA0_CONTROL (0x840/4) -#define GREG_DMA1_CONTROL (0x844/4) -#define GREG_DMA2_CONTROL (0x848/4) -#define GREG_DMA3_CONTROL (0x84c/4) -#define GREG_TIMER0_COUNT (0x850/4) -#define GREG_TIMER1_COUNT (0x854/4) -#define GREG_TIMER2_COUNT (0x858/4) -#define GREG_TIMER3_COUNT (0x85c/4) -#define GREG_DMA_ARBITER (0x860/4) -#define GREG_TIMER_CONTROL (0x864/4) - -/* Galileo registers - 0xc00-0xfff */ -#define GREG_PCI_COMMAND (0xc00/4) -#define GREG_PCI_TIMEOUT (0xc04/4) -#define GREG_PCI_RAS_1_0 (0xc08/4) -#define GREG_PCI_RAS_3_2 (0xc0c/4) -#define GREG_PCI_CS_2_0 (0xc10/4) -#define GREG_PCI_CS_3_BOOT (0xc14/4) -#define GREG_INT_STATE (0xc18/4) -#define GREG_INT_MASK (0xc1c/4) -#define GREG_PCI_INT_MASK (0xc24/4) -#define GREG_CONFIG_ADDRESS (0xcf8/4) -#define GREG_CONFIG_DATA (0xcfc/4) - -/* Galileo interrupts */ -#define GINT_SUMMARY_SHIFT (0) -#define GINT_MEMOUT_SHIFT (1) -#define GINT_DMAOUT_SHIFT (2) -#define GINT_CPUOUT_SHIFT (3) -#define GINT_DMA0COMP_SHIFT (4) -#define GINT_DMA1COMP_SHIFT (5) -#define GINT_DMA2COMP_SHIFT (6) -#define GINT_DMA3COMP_SHIFT (7) -#define GINT_T0EXP_SHIFT (8) -#define GINT_T1EXP_SHIFT (9) -#define GINT_T2EXP_SHIFT (10) -#define GINT_T3EXP_SHIFT (11) -#define GINT_MASRDERR_SHIFT (12) -#define GINT_SLVWRERR_SHIFT (13) -#define GINT_MASWRERR_SHIFT (14) -#define GINT_SLVRDERR_SHIFT (15) -#define GINT_ADDRERR_SHIFT (16) -#define GINT_MEMERR_SHIFT (17) -#define GINT_MASABORT_SHIFT (18) -#define GINT_TARABORT_SHIFT (19) -#define GINT_RETRYCTR_SHIFT (20) - /************************************* * Structures *************************************/ class gt64xxx_device : public pci_host_device { public: - struct galileo_timer - { - emu_timer * timer; - uint32_t count; - uint8_t active; - }; - - struct galileo_addr_map - { - uint32_t low_addr; - uint32_t high_addr; - address_space* space; - galileo_addr_map() : low_addr(0xffffffff), high_addr(0x0) {} - }; - gt64xxx_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual void reset_all_mappings() override; @@ -246,7 +103,8 @@ public: enum proc_addr_bank {ADDR_RAS1_0, ADDR_RAS3_2, ADDR_CS2_0, ADDR_CS3_BCS, ADDR_PCI_IO, ADDR_PCI_MEM0, ADDR_PCI_MEM1, ADDR_NUM}; void set_map(int id, const address_map_delegate &map, device_t *device); - void postload(void); + void postload(); + protected: address_space *m_cpu_space; virtual const address_space_config *memory_space_config(address_spacenum spacenum) const override; @@ -255,6 +113,21 @@ protected: private: + struct galileo_timer + { + emu_timer * timer; + uint32_t count; + uint8_t active; + }; + + struct galileo_addr_map + { + uint32_t low_addr; + uint32_t high_addr; + address_space* space; + galileo_addr_map() : low_addr(0xffffffff), high_addr(0x0) {} + }; + mips3_device *m_cpu; const char *cpu_tag; uint32_t m_clock; @@ -305,9 +178,8 @@ private: int dma_fetch_next(address_space &space, int which); TIMER_CALLBACK_MEMBER(perform_dma); address_space* dma_decode_address(uint32_t &addr); - }; -extern const device_type GT64XXX; +DECLARE_DEVICE_TYPE(GT64XXX, gt64xxx_device) -#endif +#endif // MAME_MACHINE_GT64XXX_H diff --git a/src/devices/machine/hd63450.cpp b/src/devices/machine/hd63450.cpp index 2185103a484..9ff3e0ad107 100644 --- a/src/devices/machine/hd63450.cpp +++ b/src/devices/machine/hd63450.cpp @@ -9,10 +9,10 @@ #include "emu.h" #include "hd63450.h" -const device_type HD63450 = device_creator; +DEFINE_DEVICE_TYPE(HD63450, hd63450_device, "hd63450", "Hitachi HD63450 DMA Controller") hd63450_device::hd63450_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, HD63450, "Hitachi HD63450", tag, owner, clock, "hd63450", __FILE__), + : device_t(mconfig, HD63450, tag, owner, clock), m_dma_end(*this), m_dma_error(*this), m_dma_read_0(*this), @@ -27,15 +27,15 @@ hd63450_device::hd63450_device(const machine_config &mconfig, const char *tag, d m_cpu(nullptr) { for (int i = 0; i < 4; i++) - { - memset(&m_reg[i], 0, sizeof(m_reg[i])); - m_timer[i] = nullptr; - m_in_progress[i] = 0; - m_transfer_size[i] = 0; - m_halted[i] = 0; - m_our_clock[i] = attotime::zero; - m_burst_clock[i] = attotime::zero; - } + { + memset(&m_reg[i], 0, sizeof(m_reg[i])); + m_timer[i] = nullptr; + m_in_progress[i] = 0; + m_transfer_size[i] = 0; + m_halted[i] = 0; + m_our_clock[i] = attotime::zero; + m_burst_clock[i] = attotime::zero; + } } //------------------------------------------------- diff --git a/src/devices/machine/hd63450.h b/src/devices/machine/hd63450.h index e620173836b..2e525cabf70 100644 --- a/src/devices/machine/hd63450.h +++ b/src/devices/machine/hd63450.h @@ -3,8 +3,9 @@ /* Hitachi HD63450 DMA Controller */ -#ifndef HD63450_H -#define HD63450_H +#ifndef MAME_MACHINE_HD63450_H +#define MAME_MACHINE_HD63450_H + #pragma once @@ -48,44 +49,21 @@ #define MCFG_HD63450_BURST_CLOCKS(_clk1, _clk2, _clk3, _clk4) \ hd63450_device::set_burst_clocks(*device, _clk1, _clk2, _clk3, _clk4); -struct hd63450_regs -{ // offsets in bytes - unsigned char csr; // [00] Channel status register (R/W) - unsigned char cer; // [01] Channel error register (R) - unsigned char dcr; // [04] Device control register (R/W) - unsigned char ocr; // [05] Operation control register (R/W) - unsigned char scr; // [06] Sequence control register (R/W) - unsigned char ccr; // [07] Channel control register (R/W) - unsigned short mtc; // [0a,0b] Memory Transfer Counter (R/W) - unsigned long mar; // [0c-0f] Memory Address Register (R/W) - unsigned long dar; // [14-17] Device Address Register (R/W) - unsigned short btc; // [1a,1b] Base Transfer Counter (R/W) - unsigned long bar; // [1c-1f] Base Address Register (R/W) - unsigned char niv; // [25] Normal Interrupt Vector (R/W) - unsigned char eiv; // [27] Error Interrupt Vector (R/W) - unsigned char mfc; // [29] Memory Function Code (R/W) - unsigned char cpr; // [2d] Channel Priority Register (R/W) - unsigned char dfc; // [31] Device Function Code (R/W) - unsigned char bfc; // [39] Base Function Code (R/W) - unsigned char gcr; // [3f] General Control Register (R/W) -}; - class hd63450_device : public device_t { public: hd63450_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~hd63450_device() {} - - template static devcb_base &set_dma_end_callback(device_t &device, _Object object) { return downcast(device).m_dma_end.set_callback(object); } - template static devcb_base &set_dma_error_callback(device_t &device, _Object object) { return downcast(device).m_dma_error.set_callback(object); } - template static devcb_base &set_dma_read_0_callback(device_t &device, _Object object) { return downcast(device).m_dma_read_0.set_callback(object); } - template static devcb_base &set_dma_read_1_callback(device_t &device, _Object object) { return downcast(device).m_dma_read_1.set_callback(object); } - template static devcb_base &set_dma_read_2_callback(device_t &device, _Object object) { return downcast(device).m_dma_read_2.set_callback(object); } - template static devcb_base &set_dma_read_3_callback(device_t &device, _Object object) { return downcast(device).m_dma_read_3.set_callback(object); } - template static devcb_base &set_dma_write_0_callback(device_t &device, _Object object) { return downcast(device).m_dma_write_0.set_callback(object); } - template static devcb_base &set_dma_write_1_callback(device_t &device, _Object object) { return downcast(device).m_dma_write_1.set_callback(object); } - template static devcb_base &set_dma_write_2_callback(device_t &device, _Object object) { return downcast(device).m_dma_write_2.set_callback(object); } - template static devcb_base &set_dma_write_3_callback(device_t &device, _Object object) { return downcast(device).m_dma_write_3.set_callback(object); } + + template static devcb_base &set_dma_end_callback(device_t &device, Object &&cb) { return downcast(device).m_dma_end.set_callback(std::forward(cb)); } + template static devcb_base &set_dma_error_callback(device_t &device, Object &&cb) { return downcast(device).m_dma_error.set_callback(std::forward(cb)); } + template static devcb_base &set_dma_read_0_callback(device_t &device, Object &&cb) { return downcast(device).m_dma_read_0.set_callback(std::forward(cb)); } + template static devcb_base &set_dma_read_1_callback(device_t &device, Object &&cb) { return downcast(device).m_dma_read_1.set_callback(std::forward(cb)); } + template static devcb_base &set_dma_read_2_callback(device_t &device, Object &&cb) { return downcast(device).m_dma_read_2.set_callback(std::forward(cb)); } + template static devcb_base &set_dma_read_3_callback(device_t &device, Object &&cb) { return downcast(device).m_dma_read_3.set_callback(std::forward(cb)); } + template static devcb_base &set_dma_write_0_callback(device_t &device, Object &&cb) { return downcast(device).m_dma_write_0.set_callback(std::forward(cb)); } + template static devcb_base &set_dma_write_1_callback(device_t &device, Object &&cb) { return downcast(device).m_dma_write_1.set_callback(std::forward(cb)); } + template static devcb_base &set_dma_write_2_callback(device_t &device, Object &&cb) { return downcast(device).m_dma_write_2.set_callback(std::forward(cb)); } + template static devcb_base &set_dma_write_3_callback(device_t &device, Object &&cb) { return downcast(device).m_dma_write_3.set_callback(std::forward(cb)); } static void set_cpu_tag(device_t &device, const char *tag) { downcast(device).m_cpu_tag = tag; } static void set_our_clocks(device_t &device, const attotime &clk1, const attotime &clk2, const attotime &clk3, const attotime &clk4) @@ -123,6 +101,28 @@ protected: virtual void device_reset() override; private: + struct hd63450_regs + { // offsets in bytes + unsigned char csr; // [00] Channel status register (R/W) + unsigned char cer; // [01] Channel error register (R) + unsigned char dcr; // [04] Device control register (R/W) + unsigned char ocr; // [05] Operation control register (R/W) + unsigned char scr; // [06] Sequence control register (R/W) + unsigned char ccr; // [07] Channel control register (R/W) + unsigned short mtc; // [0a,0b] Memory Transfer Counter (R/W) + unsigned long mar; // [0c-0f] Memory Address Register (R/W) + unsigned long dar; // [14-17] Device Address Register (R/W) + unsigned short btc; // [1a,1b] Base Transfer Counter (R/W) + unsigned long bar; // [1c-1f] Base Address Register (R/W) + unsigned char niv; // [25] Normal Interrupt Vector (R/W) + unsigned char eiv; // [27] Error Interrupt Vector (R/W) + unsigned char mfc; // [29] Memory Function Code (R/W) + unsigned char cpr; // [2d] Channel Priority Register (R/W) + unsigned char dfc; // [31] Device Function Code (R/W) + unsigned char bfc; // [39] Base Function Code (R/W) + unsigned char gcr; // [3f] General Control Register (R/W) + }; + devcb_write8 m_dma_end; devcb_write8 m_dma_error; devcb_read8 m_dma_read_0; @@ -154,5 +154,6 @@ private: void dma_transfer_start(int channel); }; -extern const device_type HD63450; -#endif // HD63450_H +DECLARE_DEVICE_TYPE(HD63450, hd63450_device) + +#endif // MAME_MACHINE_HD63450_H diff --git a/src/devices/machine/hd64610.cpp b/src/devices/machine/hd64610.cpp index 885f0ae8b3c..0da686e7bf0 100644 --- a/src/devices/machine/hd64610.cpp +++ b/src/devices/machine/hd64610.cpp @@ -18,17 +18,18 @@ #include "hd64610.h" #include "coreutil.h" +#define VERBOSE 1 +#include "logmacro.h" + // device type definition -const device_type HD64610 = device_creator; +DEFINE_DEVICE_TYPE(HD64610, hd64610_device, "hd64610", "Hitachi HD64610 RTC") //************************************************************************** // MACROS / CONSTANTS //************************************************************************** -#define LOG 1 - // internal registers enum { @@ -87,7 +88,7 @@ inline void hd64610_device::set_irq_line() if (m_irq_out != irq_out) { - if (LOG) logerror("HD64610 '%s' IRQ %u\n", tag(), irq_out); + LOG("HD64610 IRQ %u\n", irq_out); m_out_irq_cb(irq_out); m_irq_out = irq_out; @@ -152,7 +153,7 @@ inline void hd64610_device::check_alarm() //------------------------------------------------- hd64610_device::hd64610_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, HD64610, "HD64610", tag, owner, clock, "hd64610", __FILE__), + : device_t(mconfig, HD64610, tag, owner, clock), device_rtc_interface(mconfig, *this), device_nvram_interface(mconfig, *this), m_out_irq_cb(*this), @@ -289,7 +290,7 @@ READ8_MEMBER( hd64610_device::read ) { uint8_t data = m_regs[offset & 0x0f]; - if (LOG) logerror("HD64610 '%s' Register %u Read %02x\n", tag(), offset, data); + LOG("HD64610 Register %u Read %02x\n", offset, data); return data; } @@ -313,17 +314,17 @@ WRITE8_MEMBER( hd64610_device::write ) if ((data & CRA_CF) == 0) { - if (LOG) logerror("HD64610 '%s' clear carry flag\n", tag()); + LOG("HD64610 clear carry flag\n"); m_regs[REG_CRA] &= 0x7f; } if ((data & CRA_AF) == 0) { - if (LOG) logerror("HD64610 '%s' clear alarm flag\n", tag()); + LOG("HD64610 clear alarm flag\n"); m_regs[REG_CRA] &= 0xfe; } - if (LOG) logerror("HD64610 '%s' set alarm IRQ %d\n", tag(), BIT(data, 3)); - if (LOG) logerror("HD64610 '%s' set carry IRQ %d\n", tag(), BIT(data, 4)); + LOG("HD64610 set alarm IRQ %d\n", BIT(data, 3)); + LOG("HD64610 set carry IRQ %d\n", BIT(data, 4)); break; case REG_CRB: @@ -331,7 +332,7 @@ WRITE8_MEMBER( hd64610_device::write ) if (data & CRB_ADJ) { - if (LOG) logerror("HD64610 '%s' 30-sec adjustament\n", tag()); + LOG("HD64610 30-sec adjustament\n"); adjust_seconds(); m_regs[REG_64HZ] = 0; @@ -340,18 +341,18 @@ WRITE8_MEMBER( hd64610_device::write ) if (data & CRB_RESET) { - if (LOG) logerror("HD64610 '%s' CRB reset\n", tag()); + LOG("HD64610 CRB reset\n"); m_regs[REG_64HZ] = 0; m_regs[REG_CRB] &= ~CRB_RESET; } - if (LOG) logerror("HD64610 '%s' set timer %d\n", tag(), BIT(data, 0)); + LOG("HD64610 set timer %d\n", BIT(data, 0)); break; default: m_regs[offset & 0x0f] = data & REG_WRITE_MASK[offset & 0x0f]; - if (LOG) logerror("HD64610 '%s' Register %u Write %02x\n", tag(), offset & 0x0f, data); + LOG("HD64610 Register %u Write %02x\n", offset & 0x0f, data); break; } } diff --git a/src/devices/machine/hd64610.h b/src/devices/machine/hd64610.h index fd3fd4dec38..edaa7a70c16 100644 --- a/src/devices/machine/hd64610.h +++ b/src/devices/machine/hd64610.h @@ -21,10 +21,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_MACHINE_HD64610_H +#define MAME_MACHINE_HD64610_H -#ifndef __HD64610__ -#define __HD64610__ +#pragma once #include "dirtc.h" @@ -55,8 +55,8 @@ public: // construction/destruction hd64610_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_out_irq_callback(device_t &device, _Object object) { return downcast(device).m_out_irq_cb.set_callback(object); } - template static devcb_base &set_out_1hz_callback(device_t &device, _Object object) { return downcast(device).m_out_1hz_cb.set_callback(object); } + template static devcb_base &set_out_irq_callback(device_t &device, Object &&cb) { return downcast(device).m_out_irq_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_1hz_callback(device_t &device, Object &&cb) { return downcast(device).m_out_1hz_cb.set_callback(std::forward(cb)); } DECLARE_READ8_MEMBER( read ); DECLARE_WRITE8_MEMBER( write ); @@ -98,7 +98,6 @@ private: // device type definition -extern const device_type HD64610; - +DECLARE_DEVICE_TYPE(HD64610, hd64610_device) -#endif +#endif // MAME_MACHINE_HD64610_H diff --git a/src/devices/machine/hdc92x4.cpp b/src/devices/machine/hdc92x4.cpp index d125846bc49..a14b8f231a1 100644 --- a/src/devices/machine/hdc92x4.cpp +++ b/src/devices/machine/hdc92x4.cpp @@ -468,8 +468,9 @@ const hdc92x4_device::cmddef hdc92x4_device::s_command[] = /* Standard constructor for the base class and the two variants */ -hdc92x4_device::hdc92x4_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), +hdc92x4_device::hdc92x4_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, bool is_hdc9234) + : device_t(mconfig, type, tag, owner, clock), + m_is_hdc9234(is_hdc9234), m_out_intrq(*this), m_out_dmarq(*this), m_out_dip(*this), @@ -481,15 +482,13 @@ hdc92x4_device::hdc92x4_device(const machine_config &mconfig, device_type type, } hdc9224_device::hdc9224_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : hdc92x4_device(mconfig, HDC9224, "SMC HDC9224 Universal Disk Controller", tag, owner, clock, "hdc9224", __FILE__) + : hdc92x4_device(mconfig, HDC9224, tag, owner, clock, false) { - m_is_hdc9234 = false; } hdc9234_device::hdc9234_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : hdc92x4_device(mconfig, HDC9234, "SMC HDC9234 Universal Disk Controller", tag, owner, clock, "hdc9234", __FILE__) + : hdc92x4_device(mconfig, HDC9234, tag, owner, clock, true) { - m_is_hdc9234 = true; } @@ -515,7 +514,7 @@ bool hdc92x4_device::fm_mode() */ bool hdc92x4_device::on_track00() { - return (m_register_r[DRIVE_STATUS] & HDC_DS_TRK00)!=0; + return (m_register_r[DRIVE_STATUS] & DS_TRK00)!=0; } /* @@ -523,7 +522,7 @@ bool hdc92x4_device::on_track00() */ bool hdc92x4_device::seek_complete() { - return (m_register_r[DRIVE_STATUS] & HDC_DS_SKCOM)!=0; + return (m_register_r[DRIVE_STATUS] & DS_SKCOM)!=0; } /* @@ -531,7 +530,7 @@ bool hdc92x4_device::seek_complete() */ bool hdc92x4_device::index_hole() { - return (m_register_r[DRIVE_STATUS] & HDC_DS_INDEX)!=0; + return (m_register_r[DRIVE_STATUS] & DS_INDEX)!=0; } /* @@ -539,7 +538,7 @@ bool hdc92x4_device::index_hole() */ bool hdc92x4_device::drive_ready() { - return (m_register_r[DRIVE_STATUS] & HDC_DS_READY)!=0; + return (m_register_r[DRIVE_STATUS] & DS_READY)!=0; } /* @@ -4503,10 +4502,10 @@ void hdc92x4_device::auxbus_in(uint8_t data) if (TRACE_AUXBUS) logerror("Got value %02x via auxbus: ecc=%d index=%d seek_comp=%d tr00=%d user=%d writeprot=%d ready=%d fault=%d\n", tag(), data, - (data&HDC_DS_ECCERR)? 1:0, (data&HDC_DS_INDEX)? 1:0, - (data&HDC_DS_SKCOM)? 1:0, (data&HDC_DS_TRK00)? 1:0, - (data&HDC_DS_UDEF)? 1:0, (data&HDC_DS_WRPROT)? 1:0, - (data&HDC_DS_READY)? 1:0, (data&HDC_DS_WRFAULT)? 1:0); + (data&DS_ECCERR)? 1:0, (data&DS_INDEX)? 1:0, + (data&DS_SKCOM)? 1:0, (data&DS_TRK00)? 1:0, + (data&DS_UDEF)? 1:0, (data&DS_WRPROT)? 1:0, + (data&DS_READY)? 1:0, (data&DS_WRFAULT)? 1:0); bool previndex = index_hole(); bool prevready = drive_ready(); @@ -4650,8 +4649,8 @@ void hdc92x4_device::auxbus_out() if (m_output1 != m_output1_old || m_output2 != m_output2_old) { // Only propagate changes - m_out_auxbus((offs_t)HDC_OUTPUT_1, m_output1); - m_out_auxbus((offs_t)HDC_OUTPUT_2, m_output2); + m_out_auxbus((offs_t)OUTPUT_1, m_output1); + m_out_auxbus((offs_t)OUTPUT_2, m_output2); m_output1_old = m_output1; m_output2_old = m_output2; } @@ -4660,9 +4659,9 @@ void hdc92x4_device::auxbus_out() void hdc92x4_device::dma_address_out(uint8_t addrub, uint8_t addrhb, uint8_t addrlb) { if (TRACE_DMA) logerror("Setting DMA address %06x\n", (addrub<<16 | addrhb<<8 | addrlb)&0xffffff); - m_out_auxbus((offs_t)HDC_OUTPUT_DMA_ADDR, addrub); - m_out_auxbus((offs_t)HDC_OUTPUT_DMA_ADDR, addrhb); - m_out_auxbus((offs_t)HDC_OUTPUT_DMA_ADDR, addrlb); + m_out_auxbus((offs_t)OUTPUT_DMA_ADDR, addrub); + m_out_auxbus((offs_t)OUTPUT_DMA_ADDR, addrhb); + m_out_auxbus((offs_t)OUTPUT_DMA_ADDR, addrlb); } /* @@ -4827,5 +4826,5 @@ void hdc92x4_device::device_reset() m_out_dmarq(CLEAR_LINE); } -const device_type HDC9224 = device_creator; -const device_type HDC9234 = device_creator; +DEFINE_DEVICE_TYPE(HDC9224, hdc9224_device, "hdc9224", "SMC HDC9224 Universal Disk Controller") +DEFINE_DEVICE_TYPE(HDC9234, hdc9234_device, "hdc9234", "SMC HDC9234 Universal Disk Controller") diff --git a/src/devices/machine/hdc92x4.h b/src/devices/machine/hdc92x4.h index 2d70708ad0f..eab12974226 100644 --- a/src/devices/machine/hdc92x4.h +++ b/src/devices/machine/hdc92x4.h @@ -4,42 +4,15 @@ HDC9224 / HDC9234 Hard and Floppy Disk Controller For details see hdc92x4.c */ -#ifndef __HDC92X4_H__ -#define __HDC92X4_H__ +#ifndef MAME_MACHINE_HDC92X4_H +#define MAME_MACHINE_HDC92X4_H #include "imagedev/floppy.h" #include "imagedev/mfmhd.h" #include "fdc_pll.h" -extern const device_type HDC9224; -extern const device_type HDC9234; - -/* - Enumeration of the latches outside of the controller -*/ -enum -{ - HDC_INPUT_STATUS = 0x00, - HDC_OUTPUT_DMA_ADDR = 0x01, - HDC_OUTPUT_1 = 0x02, - HDC_OUTPUT_2 = 0x03 -}; - - -/* - Definition of bits in the Disk-Status register -*/ -enum -{ - HDC_DS_ECCERR = 0x80, // ECC error - HDC_DS_INDEX = 0x40, // index hole - HDC_DS_SKCOM = 0x20, // seek complete - HDC_DS_TRK00 = 0x10, // track 0 - HDC_DS_UDEF = 0x08, // user-defined - HDC_DS_WRPROT = 0x04, // write-protected - HDC_DS_READY = 0x02, // drive ready bit - HDC_DS_WRFAULT = 0x01 // write fault -}; +DECLARE_DEVICE_TYPE(HDC9224, hdc9224_device) +DECLARE_DEVICE_TYPE(HDC9234, hdc9234_device) //=================================================================== @@ -78,7 +51,32 @@ enum class hdc92x4_device : public device_t { public: - hdc92x4_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); + /* + Enumeration of the latches outside of the controller + */ + enum + { + INPUT_STATUS = 0x00, + OUTPUT_DMA_ADDR = 0x01, + OUTPUT_1 = 0x02, + OUTPUT_2 = 0x03 + }; + + + /* + Definition of bits in the Disk-Status register + */ + enum + { + DS_ECCERR = 0x80, // ECC error + DS_INDEX = 0x40, // index hole + DS_SKCOM = 0x20, // seek complete + DS_TRK00 = 0x10, // track 0 + DS_UDEF = 0x08, // user-defined + DS_WRPROT = 0x04, // write-protected + DS_READY = 0x02, // drive ready bit + DS_WRFAULT = 0x01 // write fault + }; // Accessors from the CPU side DECLARE_READ8_MEMBER( read ); @@ -87,12 +85,12 @@ public: DECLARE_WRITE_LINE_MEMBER( dmaack ); // Callbacks - template static devcb_base &set_intrq_wr_callback(device_t &device, _Object object) { return downcast(device).m_out_intrq.set_callback(object); } - template static devcb_base &set_dmarq_wr_callback(device_t &device, _Object object) { return downcast(device).m_out_dmarq.set_callback(object); } - template static devcb_base &set_dip_wr_callback(device_t &device, _Object object) { return downcast(device).m_out_dip.set_callback(object); } - template static devcb_base &set_auxbus_wr_callback(device_t &device, _Object object) { return downcast(device).m_out_auxbus.set_callback(object); } - template static devcb_base &set_dma_rd_callback(device_t &device, _Object object) { return downcast(device).m_in_dma.set_callback(object); } - template static devcb_base &set_dma_wr_callback(device_t &device, _Object object) { return downcast(device).m_out_dma.set_callback(object); } + template static devcb_base &set_intrq_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_out_intrq.set_callback(std::forward(cb)); } + template static devcb_base &set_dmarq_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_out_dmarq.set_callback(std::forward(cb)); } + template static devcb_base &set_dip_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_out_dip.set_callback(std::forward(cb)); } + template static devcb_base &set_auxbus_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_out_auxbus.set_callback(std::forward(cb)); } + template static devcb_base &set_dma_rd_callback(device_t &device, Object &&cb) { return downcast(device).m_in_dma.set_callback(std::forward(cb)); } + template static devcb_base &set_dma_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_out_dma.set_callback(std::forward(cb)); } // auxbus_in is intended to read events from the drives // In the real chip the status is polled; to avoid unnecessary load @@ -114,10 +112,12 @@ public: void connect_hard_drive(mfm_harddisk_device *harddisk); protected: + hdc92x4_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, bool is_hdc9234); + void device_start() override; void device_reset() override; - bool m_is_hdc9234; + const bool m_is_hdc9234; devcb_write_line m_out_intrq; // INT line devcb_write_line m_out_dmarq; // DMA request line @@ -506,4 +506,4 @@ protected: int header_length() override; }; -#endif +#endif // MAME_MACHINE_HDC92X4_H diff --git a/src/devices/machine/hp_taco.cpp b/src/devices/machine/hp_taco.cpp index 15424990900..359df5bd023 100644 --- a/src/devices/machine/hp_taco.cpp +++ b/src/devices/machine/hp_taco.cpp @@ -154,9 +154,9 @@ // Timers enum { - TAPE_TMR_ID, - HOLE_TMR_ID, - TIMEOUT_TMR_ID + TAPE_TMR_ID, + HOLE_TMR_ID, + TIMEOUT_TMR_ID }; // Constants @@ -210,38 +210,38 @@ enum { // Commands enum { - CMD_INDTA_INGAP, // 00: scan for data first then for gap (see also cmd 10) - CMD_UNK_01, // 01: unknown - CMD_FINAL_GAP, // 02: write final gap - CMD_INIT_WRITE, // 03: write words for tape formatting - CMD_STOP, // 04: stop - CMD_UNK_05, // 05: unknown - CMD_SET_TRACK, // 06: set A/B track - CMD_UNK_07, // 07: unknown - CMD_UNK_08, // 08: unknown - CMD_UNK_09, // 09: unknown - CMD_MOVE, // 0a: move tape - CMD_UNK_0b, // 0b: unknown - CMD_INGAP_MOVE, // 0c: scan for gap then move a bit further (used to gain some margin when inverting tape movement) - CMD_UNK_0d, // 0d: unknown - CMD_CLEAR, // 0e: clear errors/unlatch status bits - CMD_UNK_0f, // 0f: unknown - CMD_NOT_INDTA, // 10: scan for end of data (at the moment it's the same as cmd 00) - CMD_UNK_11, // 11: unknown - CMD_UNK_12, // 12: unknown - CMD_UNK_13, // 13: unknown - CMD_UNK_14, // 14: unknown - CMD_UNK_15, // 15: unknown - CMD_WRITE_IRG, // 16: write inter-record gap - CMD_UNK_17, // 17: unknown - CMD_SCAN_RECORDS, // 18: scan records (count IRGs) - CMD_RECORD_WRITE, // 19: write record words - CMD_MOVE_INDTA, // 1a: move then scan for data - CMD_UNK_1b, // 1b: unknown (for now it seems harmless to handle it as NOP) - CMD_MOVE_INGAP, // 1c: move tape a given distance then scan for gap (as cmd 0c but in reverse order) - CMD_START_READ, // 1d: start record reading - CMD_DELTA_MOVE_IRG, // 1e: move tape a given distance, detect gaps in parallel - CMD_END_READ // 1f: stop reading + CMD_INDTA_INGAP, // 00: scan for data first then for gap (see also cmd 10) + CMD_UNK_01, // 01: unknown + CMD_FINAL_GAP, // 02: write final gap + CMD_INIT_WRITE, // 03: write words for tape formatting + CMD_STOP, // 04: stop + CMD_UNK_05, // 05: unknown + CMD_SET_TRACK, // 06: set A/B track + CMD_UNK_07, // 07: unknown + CMD_UNK_08, // 08: unknown + CMD_UNK_09, // 09: unknown + CMD_MOVE, // 0a: move tape + CMD_UNK_0b, // 0b: unknown + CMD_INGAP_MOVE, // 0c: scan for gap then move a bit further (used to gain some margin when inverting tape movement) + CMD_UNK_0d, // 0d: unknown + CMD_CLEAR, // 0e: clear errors/unlatch status bits + CMD_UNK_0f, // 0f: unknown + CMD_NOT_INDTA, // 10: scan for end of data (at the moment it's the same as cmd 00) + CMD_UNK_11, // 11: unknown + CMD_UNK_12, // 12: unknown + CMD_UNK_13, // 13: unknown + CMD_UNK_14, // 14: unknown + CMD_UNK_15, // 15: unknown + CMD_WRITE_IRG, // 16: write inter-record gap + CMD_UNK_17, // 17: unknown + CMD_SCAN_RECORDS, // 18: scan records (count IRGs) + CMD_RECORD_WRITE, // 19: write record words + CMD_MOVE_INDTA, // 1a: move then scan for data + CMD_UNK_1b, // 1b: unknown (for now it seems harmless to handle it as NOP) + CMD_MOVE_INGAP, // 1c: move tape a given distance then scan for gap (as cmd 0c but in reverse order) + CMD_START_READ, // 1d: start record reading + CMD_DELTA_MOVE_IRG, // 1e: move tape a given distance, detect gaps in parallel + CMD_END_READ // 1f: stop reading }; // Bits of status register @@ -267,7 +267,7 @@ enum { // |<-----24"----->|<---12"--->|<---12"--->|<-----24"----->| // O O O O // -static const hp_taco_device::tape_pos_t tape_holes[] = { +const hp_taco_device::tape_pos_t hp_taco_device::tape_holes[] = { (hp_taco_device::tape_pos_t)(23.891 * ONE_INCH_POS), // 24 - 0.218 / 2 (hp_taco_device::tape_pos_t)(24.109 * ONE_INCH_POS), // 24 + 0.218 / 2 (hp_taco_device::tape_pos_t)(35.891 * ONE_INCH_POS), // 36 - 0.218 / 2 @@ -282,11 +282,11 @@ static const hp_taco_device::tape_pos_t tape_holes[] = { }; // Device type definition -const device_type HP_TACO = device_creator; +DEFINE_DEVICE_TYPE(HP_TACO, hp_taco_device, "hp_taco", "HP TACO") // Constructors -hp_taco_device::hp_taco_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname) - : device_t(mconfig, type, name, tag, owner, clock, shortname, __FILE__), +hp_taco_device::hp_taco_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock), device_image_interface(mconfig , *this), m_irq_handler(*this), m_flg_handler(*this), @@ -297,14 +297,8 @@ hp_taco_device::hp_taco_device(const machine_config &mconfig, device_type type, } hp_taco_device::hp_taco_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, HP_TACO, "HP TACO", tag, owner, clock, "hp_taco", __FILE__), - device_image_interface(mconfig , *this), - m_irq_handler(*this), - m_flg_handler(*this), - m_sts_handler(*this), - m_image_dirty(false) + : hp_taco_device(mconfig, HP_TACO, tag, owner, clock) { - clear_state(); } WRITE16_MEMBER(hp_taco_device::reg_w) diff --git a/src/devices/machine/hp_taco.h b/src/devices/machine/hp_taco.h index a1941a4381b..c0536eabb9c 100644 --- a/src/devices/machine/hp_taco.h +++ b/src/devices/machine/hp_taco.h @@ -8,8 +8,10 @@ *********************************************************************/ -#ifndef __HP_TACO_H__ -#define __HP_TACO_H__ +#ifndef MAME_MACHINE_HP_TACO_H +#define MAME_MACHINE_HP_TACO_H + +#pragma once #include @@ -27,13 +29,12 @@ class hp_taco_device : public device_t , { public: // construction/destruction - hp_taco_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname); hp_taco_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // static configuration helpers - template static devcb_base &set_irq_handler(device_t &device, _Object object) { return downcast(device).m_irq_handler.set_callback(object); } - template static devcb_base &set_flg_handler(device_t &device, _Object object) { return downcast(device).m_flg_handler.set_callback(object); } - template static devcb_base &set_sts_handler(device_t &device, _Object object) { return downcast(device).m_sts_handler.set_callback(object); } + template static devcb_base &set_irq_handler(device_t &device, Object &&cb) { return downcast(device).m_irq_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_flg_handler(device_t &device, Object &&cb) { return downcast(device).m_flg_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_sts_handler(device_t &device, Object &&cb) { return downcast(device).m_sts_handler.set_callback(std::forward(cb)); } // Register read/write DECLARE_WRITE16_MEMBER(reg_w); @@ -56,14 +57,18 @@ public: virtual bool is_reset_on_load() const override { return false; } virtual const char *file_extensions() const override; +protected: // Tape position, 1 unit = 1 inch / (968 * 1024) typedef int32_t tape_pos_t; // Words stored on tape typedef uint16_t tape_word_t; -protected: - // device-level overrides + static const tape_pos_t tape_holes[]; + + hp_taco_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides virtual void device_start() override; virtual void device_stop() override; virtual void device_reset() override; @@ -71,7 +76,7 @@ protected: private: // Storage of tracks: mapping from a tape position to word stored there - typedef std::map tape_track_t; + typedef std::map tape_track_t; devcb_write_line m_irq_handler; devcb_write_line m_flg_handler; @@ -96,13 +101,13 @@ private: // Command FSM state typedef enum { - CMD_IDLE, - CMD_INVERTING, - CMD_PH0, - CMD_PH1, - CMD_PH2, - CMD_END, - CMD_STOPPING + CMD_IDLE, + CMD_INVERTING, + CMD_PH0, + CMD_PH1, + CMD_PH2, + CMD_END, + CMD_STOPPING } cmd_state_t; cmd_state_t m_cmd_state; @@ -132,9 +137,9 @@ private: tape_pos_t m_gap_detect_start; typedef enum { - ADV_NO_MORE_DATA, - ADV_CONT_DATA, - ADV_DISCONT_DATA + ADV_NO_MORE_DATA, + ADV_CONT_DATA, + ADV_DISCONT_DATA } adv_res_t; void clear_state(void); @@ -185,6 +190,6 @@ private: }; // device type definition -extern const device_type HP_TACO; +DECLARE_DEVICE_TYPE(HP_TACO, hp_taco_device) -#endif /* __HP_TACO_H__ */ +#endif // MAME_MACHINE_HP_TACO_H diff --git a/src/devices/machine/i2cmem.cpp b/src/devices/machine/i2cmem.cpp index e04fbd5f845..1e8c2c181a2 100644 --- a/src/devices/machine/i2cmem.cpp +++ b/src/devices/machine/i2cmem.cpp @@ -49,7 +49,7 @@ static inline void ATTR_PRINTF( 3, 4 ) verboselog( device_t *device, int n_level va_start( v, s_fmt ); vsprintf( buf, s_fmt, v ); va_end( v ); - device->logerror( "%s: I2CMEM(%s) %s", device->machine().describe_context( ), device->tag(), buf ); + device->logerror( "%s: I2CMEM %s", device->machine().describe_context(), buf ); } } @@ -58,7 +58,7 @@ static inline void ATTR_PRINTF( 3, 4 ) verboselog( device_t *device, int n_level //************************************************************************** // device type definition -const device_type I2CMEM = device_creator; +DEFINE_DEVICE_TYPE(I2CMEM, i2cmem_device, "i2cmem", "I2C Memory") //************************************************************************** @@ -70,8 +70,8 @@ const device_type I2CMEM = device_creator; //------------------------------------------------- i2cmem_device::i2cmem_device( const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock ) - : device_t(mconfig, I2CMEM, "I2C Memory", tag, owner, clock, "i2cmem", __FILE__), - device_nvram_interface(mconfig, *this), + : device_t(mconfig, I2CMEM, tag, owner, clock), + device_nvram_interface(mconfig, *this), m_region(*this, DEVICE_SELF), m_slave_address( I2CMEM_SLAVE_ADDRESS ), m_page_size( 0 ), diff --git a/src/devices/machine/i2cmem.h b/src/devices/machine/i2cmem.h index e739e7c963f..b0061f2759b 100644 --- a/src/devices/machine/i2cmem.h +++ b/src/devices/machine/i2cmem.h @@ -8,10 +8,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_MACHINE_I2CMEM_H +#define MAME_MACHINE_I2CMEM_H -#ifndef __I2CMEM_H__ -#define __I2CMEM_H__ +#pragma once /*************************************************************************** @@ -148,6 +148,6 @@ protected: // device type definition -extern const device_type I2CMEM; +DECLARE_DEVICE_TYPE(I2CMEM, i2cmem_device) -#endif /* __I2CMEM_H__ */ +#endif // MAME_MACHINE_I2CMEM_H diff --git a/src/devices/machine/i6300esb.cpp b/src/devices/machine/i6300esb.cpp index 6879a02aeb3..7865c54b225 100644 --- a/src/devices/machine/i6300esb.cpp +++ b/src/devices/machine/i6300esb.cpp @@ -3,14 +3,14 @@ #include "emu.h" #include "i6300esb.h" -const device_type I6300ESB_WATCHDOG = device_creator; -const device_type I6300ESB_LPC = device_creator; +DEFINE_DEVICE_TYPE(I6300ESB_WATCHDOG, i6300esb_watchdog_device, "i6300esb_watchdog", "i6300ESB southbridge watchdog") +DEFINE_DEVICE_TYPE(I6300ESB_LPC, i6300esb_lpc_device, "i6300esb_lpc", "i6300ESB southbridge ISA/LPC bridge") DEVICE_ADDRESS_MAP_START(map, 32, i6300esb_watchdog_device) ADDRESS_MAP_END i6300esb_watchdog_device::i6300esb_watchdog_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : pci_device(mconfig, I6300ESB_WATCHDOG, "i6300ESB southbridge watchdog", tag, owner, clock, "i6300esb_watchdog", __FILE__) + : pci_device(mconfig, I6300ESB_WATCHDOG, tag, owner, clock) { } @@ -90,7 +90,7 @@ ADDRESS_MAP_END i6300esb_lpc_device::i6300esb_lpc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : pci_device(mconfig, I6300ESB_LPC, "i6300ESB southbridge ISA/LPC bridge", tag, owner, clock, "i6300esb_lpc", __FILE__), + : pci_device(mconfig, I6300ESB_LPC, tag, owner, clock), acpi(*this, "acpi"), rtc (*this, "rtc"), pit (*this, "pit"), diff --git a/src/devices/machine/i6300esb.h b/src/devices/machine/i6300esb.h index 0472f8e75e3..86dc542a897 100644 --- a/src/devices/machine/i6300esb.h +++ b/src/devices/machine/i6300esb.h @@ -2,8 +2,8 @@ // copyright-holders:Olivier Galibert // Intel i6300ESB southbridge -#ifndef I6300ESB_H -#define I6300ESB_H +#ifndef MAME_MACHINE_I6300ESB_H +#define MAME_MACHINE_I6300ESB_H #include "pci.h" #include "lpc-acpi.h" @@ -155,7 +155,7 @@ private: DECLARE_ADDRESS_MAP(map, 32); }; -extern const device_type I6300ESB_LPC; -extern const device_type I6300ESB_WATCHDOG; +DECLARE_DEVICE_TYPE(I6300ESB_LPC, i6300esb_lpc_device) +DECLARE_DEVICE_TYPE(I6300ESB_WATCHDOG, i6300esb_watchdog_device) -#endif +#endif // MAME_MACHINE_I6300ESB_H diff --git a/src/devices/machine/i80130.cpp b/src/devices/machine/i80130.cpp index fb11dc8480d..51942404173 100644 --- a/src/devices/machine/i80130.cpp +++ b/src/devices/machine/i80130.cpp @@ -16,7 +16,7 @@ //************************************************************************** // device type definition -const device_type I80130 = device_creator; +DEFINE_DEVICE_TYPE(I80130, i80130_device, "i80130", "I80130") DEVICE_ADDRESS_MAP_START( rom_map, 16, i80130_device ) @@ -132,7 +132,7 @@ machine_config_constructor i80130_device::device_mconfig_additions() const //------------------------------------------------- i80130_device::i80130_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, I80130, "I80130", tag, owner, clock, "i80130", __FILE__), + : device_t(mconfig, I80130, tag, owner, clock), m_pic(*this, "pic"), m_pit(*this, "pit"), m_write_irq(*this), diff --git a/src/devices/machine/i80130.h b/src/devices/machine/i80130.h index f27bcf179ab..a2306fe0b1f 100644 --- a/src/devices/machine/i80130.h +++ b/src/devices/machine/i80130.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_MACHINE_I80130_H +#define MAME_MACHINE_I80130_H -#ifndef __I80130__ -#define __I80130__ +#pragma once #include "machine/pic8259.h" #include "machine/pit8253.h" @@ -52,12 +52,12 @@ public: // construction/destruction i80130_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_irq_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_irq.set_callback(object); } - template static devcb_base &set_ack_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_ack.set_callback(object); } - template static devcb_base &set_lir_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_lir.set_callback(object); } - template static devcb_base &set_systick_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_systick.set_callback(object); } - template static devcb_base &set_delay_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_delay.set_callback(object); } - template static devcb_base &set_baud_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_baud.set_callback(object); } + template static devcb_base &set_irq_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_irq.set_callback(std::forward(cb)); } + template static devcb_base &set_ack_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_ack.set_callback(std::forward(cb)); } + template static devcb_base &set_lir_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_lir.set_callback(std::forward(cb)); } + template static devcb_base &set_systick_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_systick.set_callback(std::forward(cb)); } + template static devcb_base &set_delay_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_delay.set_callback(std::forward(cb)); } + template static devcb_base &set_baud_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_baud.set_callback(std::forward(cb)); } virtual DECLARE_ADDRESS_MAP(rom_map, 16); virtual DECLARE_ADDRESS_MAP(io_map, 16); @@ -103,8 +103,6 @@ protected: // device type definition -extern const device_type I80130; - - +DECLARE_DEVICE_TYPE(I80130, i80130_device) -#endif +#endif // MAME_MACHINE_I80130_H diff --git a/src/devices/machine/i8155.cpp b/src/devices/machine/i8155.cpp index 62f012f201f..c1bc13f3568 100644 --- a/src/devices/machine/i8155.cpp +++ b/src/devices/machine/i8155.cpp @@ -19,7 +19,7 @@ // device type definitions -const device_type I8155 = device_creator; +DEFINE_DEVICE_TYPE(I8155, i8155_device, "i8155", "Intel 8155 RIOT") const device_type I8156 = I8155; @@ -203,7 +203,7 @@ inline void i8155_device::write_port(int port, uint8_t data) //------------------------------------------------- i8155_device::i8155_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, I8155, "8155 RIOT", tag, owner, clock, "i8155", __FILE__), + : device_t(mconfig, I8155, tag, owner, clock), device_memory_interface(mconfig, *this), m_in_pa_cb(*this), m_in_pb_cb(*this), diff --git a/src/devices/machine/i8155.h b/src/devices/machine/i8155.h index 026f5cb9a81..09bcb1d93b5 100644 --- a/src/devices/machine/i8155.h +++ b/src/devices/machine/i8155.h @@ -30,10 +30,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_MACHINE_I8155_H +#define MAME_MACHINE_I8155_H -#ifndef __I8155__ -#define __I8155__ +#pragma once @@ -76,13 +76,13 @@ public: // construction/destruction i8155_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_in_pa_callback(device_t &device, _Object object) { return downcast(device).m_in_pa_cb.set_callback(object); } - template static devcb_base &set_in_pb_callback(device_t &device, _Object object) { return downcast(device).m_in_pb_cb.set_callback(object); } - template static devcb_base &set_in_pc_callback(device_t &device, _Object object) { return downcast(device).m_in_pc_cb.set_callback(object); } - template static devcb_base &set_out_pa_callback(device_t &device, _Object object) { return downcast(device).m_out_pa_cb.set_callback(object); } - template static devcb_base &set_out_pb_callback(device_t &device, _Object object) { return downcast(device).m_out_pb_cb.set_callback(object); } - template static devcb_base &set_out_pc_callback(device_t &device, _Object object) { return downcast(device).m_out_pc_cb.set_callback(object); } - template static devcb_base &set_out_to_callback(device_t &device, _Object object) { return downcast(device).m_out_to_cb.set_callback(object); } + template static devcb_base &set_in_pa_callback(device_t &device, Object &&cb) { return downcast(device).m_in_pa_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_in_pb_callback(device_t &device, Object &&cb) { return downcast(device).m_in_pb_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_in_pc_callback(device_t &device, Object &&cb) { return downcast(device).m_in_pc_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_pa_callback(device_t &device, Object &&cb) { return downcast(device).m_out_pa_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_pb_callback(device_t &device, Object &&cb) { return downcast(device).m_out_pb_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_pc_callback(device_t &device, Object &&cb) { return downcast(device).m_out_pc_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_to_callback(device_t &device, Object &&cb) { return downcast(device).m_out_to_cb.set_callback(std::forward(cb)); } DECLARE_READ8_MEMBER( io_r ); DECLARE_WRITE8_MEMBER( io_w ); @@ -100,7 +100,7 @@ protected: virtual void device_reset() override; virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; - virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_0) const override; + virtual const address_space_config *memory_space_config(address_spacenum spacenum) const override; inline uint8_t get_timer_mode(); inline void timer_output(); @@ -145,7 +145,7 @@ private: // device type definition -extern const device_type I8155; +DECLARE_DEVICE_TYPE(I8155, i8155_device) extern const device_type I8156; diff --git a/src/devices/machine/i8212.cpp b/src/devices/machine/i8212.cpp index 7d59c5c09ad..83e08566e96 100644 --- a/src/devices/machine/i8212.cpp +++ b/src/devices/machine/i8212.cpp @@ -9,13 +9,8 @@ #include "emu.h" #include "i8212.h" - - -//************************************************************************** -// MACROS / CONSTANTS -//************************************************************************** - -#define LOG 0 +//#define VERBOSE 1 +#include "logmacro.h" @@ -24,18 +19,18 @@ //************************************************************************** // device type definition -const device_type I8212 = device_creator; +DEFINE_DEVICE_TYPE(I8212, i8212_device, "i8212", "Intel 8212 I/O") //------------------------------------------------- // i8212_device - constructor //------------------------------------------------- i8212_device::i8212_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, I8212, "I8212", tag, owner, clock, "i8212", __FILE__), + device_t(mconfig, I8212, tag, owner, clock), m_write_irq(*this), m_read_di(*this), m_write_do(*this), - m_md(I8212_MODE_INPUT), + m_md(MODE_INPUT), m_stb(0), m_data(0) { } @@ -67,7 +62,7 @@ void i8212_device::device_reset() { m_data = 0; - if (m_md == I8212_MODE_OUTPUT) + if (m_md == MODE_OUTPUT) { // output data m_write_do((offs_t)0, m_data); @@ -84,7 +79,7 @@ READ8_MEMBER( i8212_device::read ) // clear interrupt line m_write_irq(CLEAR_LINE); - if (LOG) logerror("I8212 '%s' INT: %u\n", tag(), CLEAR_LINE); + LOG("I8212 INT: %u\n", CLEAR_LINE); return m_data; } @@ -110,7 +105,7 @@ WRITE8_MEMBER( i8212_device::write ) WRITE_LINE_MEMBER( i8212_device::md_w ) { - if (LOG) logerror("I8212 '%s' Mode: %s\n", tag(), state ? "output" : "input"); + LOG("I8212 Mode: %s\n", state ? "output" : "input"); m_md = state; } @@ -122,9 +117,9 @@ WRITE_LINE_MEMBER( i8212_device::md_w ) WRITE_LINE_MEMBER( i8212_device::stb_w ) { - if (LOG) logerror("I8212 '%s' STB: %u\n", tag(), state); + LOG("I8212 STB: %u\n", state); - if (m_md == I8212_MODE_INPUT) + if (m_md == MODE_INPUT) { if (m_stb && !state) { @@ -134,7 +129,7 @@ WRITE_LINE_MEMBER( i8212_device::stb_w ) // assert interrupt line m_write_irq(ASSERT_LINE); - if (LOG) logerror("I8212 '%s' INT: %u\n", tag(), ASSERT_LINE); + LOG("I8212 INT: %u\n", ASSERT_LINE); } } diff --git a/src/devices/machine/i8212.h b/src/devices/machine/i8212.h index 04de97b0cf5..6bac3c1aea4 100644 --- a/src/devices/machine/i8212.h +++ b/src/devices/machine/i8212.h @@ -21,23 +21,11 @@ **********************************************************************/ -#pragma once - -#ifndef __I8212__ -#define __I8212__ - - +#ifndef MAME_MACHINE_I8212_H +#define MAME_MACHINE_I8212_H +#pragma once -///************************************************************************* -// MACROS / CONSTANTS -///************************************************************************* - -enum -{ - I8212_MODE_INPUT = 0, - I8212_MODE_OUTPUT -}; @@ -62,15 +50,15 @@ enum // ======================> i8212_device -class i8212_device : public device_t +class i8212_device : public device_t { public: // construction/destruction i8212_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_irq_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_irq.set_callback(object); } - template static devcb_base &set_di_rd_callback(device_t &device, _Object object) { return downcast(device).m_read_di.set_callback(object); } - template static devcb_base &set_do_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_do.set_callback(object); } + template static devcb_base &set_irq_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_irq.set_callback(std::forward(cb)); } + template static devcb_base &set_di_rd_callback(device_t &device, Object &&cb) { return downcast(device).m_read_di.set_callback(std::forward(cb)); } + template static devcb_base &set_do_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_do.set_callback(std::forward(cb)); } DECLARE_READ8_MEMBER( read ); DECLARE_WRITE8_MEMBER( write ); @@ -84,6 +72,12 @@ protected: virtual void device_reset() override; private: + enum + { + MODE_INPUT = 0, + MODE_OUTPUT + }; + devcb_write_line m_write_irq; devcb_read8 m_read_di; devcb_write8 m_write_do; @@ -95,8 +89,6 @@ private: // device type definition -extern const device_type I8212; - - +DECLARE_DEVICE_TYPE(I8212, i8212_device) -#endif +#endif // MAME_MACHINE_I8212_H diff --git a/src/devices/machine/i8214.cpp b/src/devices/machine/i8214.cpp index a1f0977baca..ce6077717b5 100644 --- a/src/devices/machine/i8214.cpp +++ b/src/devices/machine/i8214.cpp @@ -9,17 +9,12 @@ #include "emu.h" #include "i8214.h" +//#define VERBOSE 1 +#include "logmacro.h" // device type definition -const device_type I8214 = device_creator; - - -//************************************************************************** -// MACROS / CONSTANTS -//************************************************************************** - -#define LOG 0 +DEFINE_DEVICE_TYPE(I8214, i8214_device, "i8214", "Intel 8214 PIC") @@ -33,7 +28,7 @@ const device_type I8214 = device_creator; void i8214_device::trigger_interrupt(int level) { - if (LOG) logerror("I8214 '%s' Interrupt Level %u\n", tag(), level); + LOG("I8214 Interrupt Level %u\n", level); m_a = level; @@ -87,7 +82,7 @@ void i8214_device::check_interrupt() //------------------------------------------------- i8214_device::i8214_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, I8214, "I8214", tag, owner, clock, "i8214", __FILE__) + : device_t(mconfig, I8214, tag, owner, clock) , m_write_irq(*this) , m_write_enlg(*this) , m_inte(0) @@ -133,7 +128,7 @@ uint8_t i8214_device::a_r() { uint8_t a = m_a & 0x07; - if (LOG) logerror("I8214 '%s' A: %01x\n", tag(), a); + LOG("I8214 A: %01x\n", a); return a; } @@ -147,7 +142,7 @@ void i8214_device::b_w(uint8_t data) { m_current_status = data & 0x07; - if (LOG) logerror("I8214 '%s' B: %01x\n", tag(), m_current_status); + LOG("I8214 B: %01x\n", m_current_status); // enable interrupts m_int_dis = 0; @@ -166,7 +161,7 @@ void i8214_device::b_w(uint8_t data) void i8214_device::r_w(int line, int state) { - if (LOG) logerror("I8214 '%s' R%d: %d\n", tag(), line, state); + LOG("I8214 R%d: %d\n", line, state); m_r &= ~(1 << line); m_r |= (state << line); @@ -181,7 +176,7 @@ void i8214_device::r_w(int line, int state) WRITE_LINE_MEMBER( i8214_device::sgs_w ) { - if (LOG) logerror("I8214 '%s' SGS: %u\n", tag(), state); + LOG("I8214 SGS: %u\n", state); m_sgs = state; @@ -195,7 +190,7 @@ WRITE_LINE_MEMBER( i8214_device::sgs_w ) WRITE_LINE_MEMBER( i8214_device::etlg_w ) { - if (LOG) logerror("I8214 '%s' ETLG: %u\n", tag(), state); + LOG("I8214 ETLG: %u\n", state); m_etlg = state; } @@ -207,7 +202,7 @@ WRITE_LINE_MEMBER( i8214_device::etlg_w ) WRITE_LINE_MEMBER( i8214_device::inte_w ) { - if (LOG) logerror("I8214 '%s' INTE: %u\n", tag(), state); + LOG("I8214 INTE: %u\n", state); m_inte = state; } diff --git a/src/devices/machine/i8214.h b/src/devices/machine/i8214.h index 7b0be60bab1..fb6acdaa843 100644 --- a/src/devices/machine/i8214.h +++ b/src/devices/machine/i8214.h @@ -21,11 +21,10 @@ **********************************************************************/ -#pragma once - -#ifndef __I8214__ -#define __I8214__ +#ifndef MAME_MACHINE_I8214_H +#define MAME_MACHINE_I8214_H +#pragma once @@ -47,14 +46,14 @@ // ======================> i8214_device -class i8214_device : public device_t +class i8214_device : public device_t { public: // construction/destruction i8214_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_irq_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_irq.set_callback(object); } - template static devcb_base &set_enlg_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_enlg.set_callback(object); } + template static devcb_base &set_irq_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_irq.set_callback(std::forward(cb)); } + template static devcb_base &set_enlg_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_enlg.set_callback(std::forward(cb)); } DECLARE_WRITE_LINE_MEMBER( sgs_w ); DECLARE_WRITE_LINE_MEMBER( etlg_w ); @@ -87,8 +86,6 @@ private: // device type definition -extern const device_type I8214; - - +DECLARE_DEVICE_TYPE(I8214, i8214_device) -#endif +#endif // MAME_MACHINE_I8214_H diff --git a/src/devices/machine/i82371sb.cpp b/src/devices/machine/i82371sb.cpp index d9dbf235c71..2205a5a116e 100644 --- a/src/devices/machine/i82371sb.cpp +++ b/src/devices/machine/i82371sb.cpp @@ -12,7 +12,7 @@ #include "speaker.h" -const device_type I82371SB_ISA = device_creator; +DEFINE_DEVICE_TYPE(I82371SB_ISA, i82371sb_isa_device, "i82371sb_isa", "Intel 82371 southbridge ISA bridge") DEVICE_ADDRESS_MAP_START(config_map, 32, i82371sb_isa_device) AM_RANGE(0x4c, 0x4f) AM_READWRITE8 (iort_r, iort_w, 0x000000ff) @@ -168,7 +168,7 @@ machine_config_constructor i82371sb_isa_device::device_mconfig_additions() const i82371sb_isa_device::i82371sb_isa_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : pci_device(mconfig, I82371SB_ISA, "i82371sb southbridge ISA bridge", tag, owner, clock, "i82371sb_isa", __FILE__), + : pci_device(mconfig, I82371SB_ISA, tag, owner, clock), m_boot_state_hook(*this), m_maincpu(*this, ":maincpu"), m_pic8259_master(*this, "pic8259_master"), diff --git a/src/devices/machine/i82371sb.h b/src/devices/machine/i82371sb.h index a64343e232d..330379a1757 100644 --- a/src/devices/machine/i82371sb.h +++ b/src/devices/machine/i82371sb.h @@ -2,8 +2,10 @@ // copyright-holders:Olivier Galibert // Intel i82371sb southbridge (PIIX3) -#ifndef I82371SB_H -#define I82371SB_H +#ifndef MAME_MACHINE_I82371SB_H +#define MAME_MACHINE_I82371SB_H + +#pragma once #include "pci.h" @@ -35,7 +37,7 @@ class i82371sb_isa_device : public pci_device { public: i82371sb_isa_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_boot_state_hook(device_t &device, _Object object) { return downcast(device).m_boot_state_hook.set_callback(object); } + template static devcb_base &set_boot_state_hook(device_t &device, Object &&cb) { return downcast(device).m_boot_state_hook.set_callback(std::forward(cb)); } virtual void reset_all_mappings() override; virtual void map_extra(uint64_t memory_window_start, uint64_t memory_window_end, uint64_t memory_offset, address_space *memory_space, @@ -178,6 +180,6 @@ private: optional_memory_region m_vga_region; }; -extern const device_type I82371SB_ISA; +DECLARE_DEVICE_TYPE(I82371SB_ISA, i82371sb_isa_device) -#endif +#endif // MAME_MACHINE_I82371SB_H diff --git a/src/devices/machine/i8243.cpp b/src/devices/machine/i8243.cpp index 6218f3fa919..5a387b55705 100644 --- a/src/devices/machine/i8243.cpp +++ b/src/devices/machine/i8243.cpp @@ -17,16 +17,17 @@ //************************************************************************** // device type definition -const device_type I8243 = device_creator; +DEFINE_DEVICE_TYPE(I8243, i8243_device, "i8243", "Intel 8243 I/O Expander") //------------------------------------------------- // i8243_device - constructor //------------------------------------------------- i8243_device::i8243_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, I8243, "8243 I/O Expander", tag, owner, clock, "i8243", __FILE__), m_p2out(0), m_p2(0), m_opcode(0), m_prog(0), - m_readhandler(*this), - m_writehandler(*this) + : device_t(mconfig, I8243, tag, owner, clock) + , m_p2out(0), m_p2(0), m_opcode(0), m_prog(0) + , m_readhandler(*this) + , m_writehandler(*this) { } diff --git a/src/devices/machine/i8243.h b/src/devices/machine/i8243.h index fbbf27d5eb9..e2dd1968050 100644 --- a/src/devices/machine/i8243.h +++ b/src/devices/machine/i8243.h @@ -8,10 +8,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_MACHINE_I8243_H +#define MAME_MACHINE_I8243_H -#ifndef __I8243_H__ -#define __I8243_H__ +#pragma once @@ -41,8 +41,8 @@ public: i8243_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // static configuration helpers - template static devcb_base &set_read_handler(device_t &device, _Object object) { return downcast(device).m_readhandler.set_callback(object); } - template static devcb_base &set_write_handler(device_t &device, _Object object) { return downcast(device).m_writehandler.set_callback(object); } + template static devcb_base &set_read_handler(device_t &device, Object &&cb) { return downcast(device).m_readhandler.set_callback(std::forward(cb)); } + template static devcb_base &set_write_handler(device_t &device, Object &&cb) { return downcast(device).m_writehandler.set_callback(std::forward(cb)); } DECLARE_READ8_MEMBER(p2_r); DECLARE_WRITE8_MEMBER(p2_w); @@ -70,6 +70,6 @@ private: // device type definition -extern const device_type I8243; +DECLARE_DEVICE_TYPE(I8243, i8243_device) -#endif /* __I8243_H__ */ +#endif /* __I8243_H__ */ diff --git a/src/devices/machine/i82439hx.cpp b/src/devices/machine/i82439hx.cpp index 7417d3df291..63e42618276 100644 --- a/src/devices/machine/i82439hx.cpp +++ b/src/devices/machine/i82439hx.cpp @@ -3,7 +3,7 @@ #include "emu.h" #include "i82439hx.h" -const device_type I82439HX = device_creator; +DEFINE_DEVICE_TYPE(I82439HX, i82439hx_host_device, "i82439hx", "Intel 82439HX northbridge") DEVICE_ADDRESS_MAP_START(config_map, 32, i82439hx_host_device) AM_RANGE(0x50, 0x53) AM_READWRITE8(pcon_r, pcon_w, 0x000000ff) @@ -25,7 +25,7 @@ DEVICE_ADDRESS_MAP_START(config_map, 32, i82439hx_host_device) ADDRESS_MAP_END i82439hx_host_device::i82439hx_host_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : pci_host_device(mconfig, I82439HX, "i82439hx northbridge", tag, owner, clock, "i82439hx", __FILE__) + : pci_host_device(mconfig, I82439HX, tag, owner, clock) { } diff --git a/src/devices/machine/i82439hx.h b/src/devices/machine/i82439hx.h index 061c5e7de62..9df05ab4b0b 100644 --- a/src/devices/machine/i82439hx.h +++ b/src/devices/machine/i82439hx.h @@ -2,8 +2,10 @@ // copyright-holders:Olivier Galibert // Intel i82439hx northbridge (440hx) -#ifndef I82439HX_H -#define I82439HX_H +#ifndef MAME_MACHINE_I82439HX_H +#define MAME_MACHINE_I82439HX_H + +#pragma once #include "pci.h" @@ -67,6 +69,6 @@ private: uint8_t drt, drat, smram, errcmd, errsts, errsyn; }; -extern const device_type I82439HX; +DECLARE_DEVICE_TYPE(I82439HX, i82439hx_host_device) -#endif +#endif // MAME_MACHINE_I82439HX_H diff --git a/src/devices/machine/i82439tx.cpp b/src/devices/machine/i82439tx.cpp index 32bc5095790..d3d0f880778 100644 --- a/src/devices/machine/i82439tx.cpp +++ b/src/devices/machine/i82439tx.cpp @@ -3,7 +3,7 @@ #include "emu.h" #include "i82439tx.h" -const device_type I82439TX_NEW = device_creator; +DEFINE_DEVICE_TYPE(I82439TX_NEW, i82439tx_host_device, "i82439tx_new", "Intel 82439TX northbridge") DEVICE_ADDRESS_MAP_START(config_map, 32, i82439tx_host_device) AM_RANGE(0x50, 0x53) AM_READWRITE8(pcon_r, pcon_w, 0x000000ff) @@ -25,7 +25,7 @@ DEVICE_ADDRESS_MAP_START(config_map, 32, i82439tx_host_device) ADDRESS_MAP_END i82439tx_host_device::i82439tx_host_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : pci_host_device(mconfig, I82439TX_NEW, "i82439tx northbridge", tag, owner, clock, "i82439tx_new", __FILE__) + : pci_host_device(mconfig, I82439TX_NEW, tag, owner, clock) { } diff --git a/src/devices/machine/i82439tx.h b/src/devices/machine/i82439tx.h index 3a6068ce3f2..77245d80048 100644 --- a/src/devices/machine/i82439tx.h +++ b/src/devices/machine/i82439tx.h @@ -2,8 +2,10 @@ // copyright-holders:Olivier Galibert // Intel i82439hx northbridge (440hx) -#ifndef I82439TX_H -#define I82439TX_H +#ifndef MAME_MACHINE_I82439TX_H +#define MAME_MACHINE_I82439TX_H + +#pragma once #include "pci.h" @@ -67,6 +69,6 @@ private: uint8_t drt, drat, smram, errcmd, errsts, errsyn; }; -extern const device_type I82439TX_NEW; +DECLARE_DEVICE_TYPE(I82439TX_NEW, i82439tx_host_device) -#endif +#endif // MAME_MACHINE_I82439TX_H diff --git a/src/devices/machine/i8251.cpp b/src/devices/machine/i8251.cpp index a1ffd64cc90..38ebcd7122e 100644 --- a/src/devices/machine/i8251.cpp +++ b/src/devices/machine/i8251.cpp @@ -17,26 +17,16 @@ #include "emu.h" #include "i8251.h" +//#define VERBOSE 1 +#include "logmacro.h" -/*************************************************************************** - MACROS -***************************************************************************/ - -#define VERBOSE 0 - -#define LOG(...) do { if (VERBOSE) logerror(__VA_ARGS__); } while (0) //************************************************************************** // DEVICE DEFINITIONS //************************************************************************** -const device_type I8251 = device_creator; -const device_type V53_SCU = device_creator; - -template class device_finder; -template class device_finder; -template class device_finder; -template class device_finder; +DEFINE_DEVICE_TYPE(I8251, i8251_device, "i8251", "Intel 8251 USART") +DEFINE_DEVICE_TYPE(V53_SCU, v53_scu_device, "v63_scu", "NEC V53 SCU") //------------------------------------------------- @@ -46,13 +36,10 @@ template class device_finder; i8251_device::i8251_device( const machine_config &mconfig, device_type type, - const char *name, const char *tag, device_t *owner, - uint32_t clock, - const char *shortname, - const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), + uint32_t clock) + : device_t(mconfig, type, tag, owner, clock), device_serial_interface(mconfig, *this), m_txd_handler(*this), m_dtr_handler(*this), @@ -70,12 +57,12 @@ i8251_device::i8251_device( } i8251_device::i8251_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : i8251_device(mconfig, I8251, "8251 USART", tag, owner, clock, "i8251", __FILE__) + : i8251_device(mconfig, I8251, tag, owner, clock) { } v53_scu_device::v53_scu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : i8251_device(mconfig, V53_SCU, "V53 SCU", tag, owner, clock, "v53_scu", __FILE__) + : i8251_device(mconfig, V53_SCU, tag, owner, clock) { } diff --git a/src/devices/machine/i8251.h b/src/devices/machine/i8251.h index cf966ac2693..896cf99833e 100644 --- a/src/devices/machine/i8251.h +++ b/src/devices/machine/i8251.h @@ -8,8 +8,10 @@ *********************************************************************/ -#ifndef MAME_DEVICES_MACHINE_I8251_H -#define MAME_DEVICES_MACHINE_I8251_H +#ifndef MAME_MACHINE_I8251_H +#define MAME_MACHINE_I8251_H + +#pragma once //************************************************************************** @@ -45,13 +47,13 @@ public: i8251_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // static configuration helpers - template static devcb_base &set_txd_handler(device_t &device, _Object object) { return downcast(device).m_txd_handler.set_callback(object); } - template static devcb_base &set_dtr_handler(device_t &device, _Object object) { return downcast(device).m_dtr_handler.set_callback(object); } - template static devcb_base &set_rts_handler(device_t &device, _Object object) { return downcast(device).m_rts_handler.set_callback(object); } - template static devcb_base &set_rxrdy_handler(device_t &device, _Object object) { return downcast(device).m_rxrdy_handler.set_callback(object); } - template static devcb_base &set_txrdy_handler(device_t &device, _Object object) { return downcast(device).m_txrdy_handler.set_callback(object); } - template static devcb_base &set_txempty_handler(device_t &device, _Object object) { return downcast(device).m_txempty_handler.set_callback(object); } - template static devcb_base &set_syndet_handler(device_t &device, _Object object) { return downcast(device).m_syndet_handler.set_callback(object); } + template static devcb_base &set_txd_handler(device_t &device, Object &&cb) { return downcast(device).m_txd_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_dtr_handler(device_t &device, Object &&cb) { return downcast(device).m_dtr_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_rts_handler(device_t &device, Object &&cb) { return downcast(device).m_rts_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_rxrdy_handler(device_t &device, Object &&cb) { return downcast(device).m_rxrdy_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_txrdy_handler(device_t &device, Object &&cb) { return downcast(device).m_txrdy_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_txempty_handler(device_t &device, Object &&cb) { return downcast(device).m_txempty_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_syndet_handler(device_t &device, Object &&cb) { return downcast(device).m_syndet_handler.set_callback(std::forward(cb)); } DECLARE_READ8_MEMBER(data_r); DECLARE_WRITE8_MEMBER(data_w); @@ -82,12 +84,9 @@ protected: i8251_device( const machine_config &mconfig, device_type type, - const char *name, const char *tag, device_t *owner, - uint32_t clock, - const char *shortname, - const char *source); + uint32_t clock); // device-level overrides virtual void device_start() override; @@ -165,13 +164,7 @@ public: // device type definition -extern const device_type I8251; -extern const device_type V53_SCU; - -extern template class device_finder; -extern template class device_finder; -extern template class device_finder; -extern template class device_finder; - +DECLARE_DEVICE_TYPE(I8251, i8251_device) +DECLARE_DEVICE_TYPE(V53_SCU, v53_scu_device) -#endif // MAME_DEVICES_MACHINE_I8251_H +#endif // MAME_MACHINE_I8251_H diff --git a/src/devices/machine/i82541.cpp b/src/devices/machine/i82541.cpp index 6ddd492aae9..f93b2b3690d 100644 --- a/src/devices/machine/i82541.cpp +++ b/src/devices/machine/i82541.cpp @@ -3,7 +3,7 @@ #include "emu.h" #include "i82541.h" -const device_type I82541 = device_creator; +DEFINE_DEVICE_TYPE(I82541, i82541_device, "i82541_device", "Intel 82541 Ethernet controller") DEVICE_ADDRESS_MAP_START(registers_map, 32, i82541_device) ADDRESS_MAP_END @@ -15,7 +15,7 @@ DEVICE_ADDRESS_MAP_START(registers_io_map, 32, i82541_device) ADDRESS_MAP_END i82541_device::i82541_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : pci_device(mconfig, I82541, "I82541 ethernet controller", tag, owner, clock, "i82541", __FILE__) + : pci_device(mconfig, I82541, tag, owner, clock) { } diff --git a/src/devices/machine/i82541.h b/src/devices/machine/i82541.h index 2f94b773f7e..2ff0fb8cf3b 100644 --- a/src/devices/machine/i82541.h +++ b/src/devices/machine/i82541.h @@ -2,8 +2,8 @@ // copyright-holders:Olivier Galibert // Intel I82541 ethernet controller -#ifndef I82541_H -#define I82541_H +#ifndef MAME_MACHINE_I82541_H +#define MAME_MACHINE_I82541_H #include "pci.h" @@ -24,6 +24,6 @@ private: DECLARE_ADDRESS_MAP(registers_io_map, 32); }; -extern const device_type I82541; +DECLARE_DEVICE_TYPE(I82541, i82541_device) -#endif +#endif // MAME_MACHINE_I82541_H diff --git a/src/devices/machine/i8255.cpp b/src/devices/machine/i8255.cpp index d5da10ecf78..bbe98df89e2 100644 --- a/src/devices/machine/i8255.cpp +++ b/src/devices/machine/i8255.cpp @@ -9,15 +9,15 @@ #include "emu.h" #include "i8255.h" +//#define VERBOSE 1 +#include "logmacro.h" + //************************************************************************** // MACROS / CONSTANTS //************************************************************************** -#define LOG 0 - - enum { PORT_A = 0, @@ -63,7 +63,7 @@ enum // DEVICE DEFINITIONS //************************************************************************** -const device_type I8255 = device_creator; +DEFINE_DEVICE_TYPE(I8255, i8255_device, "i8255", "Intel 8255 PPI") const device_type I8255A = I8255; @@ -105,7 +105,7 @@ inline void i8255_device::check_interrupt(int port) inline void i8255_device::set_ibf(int port, int state) { - if (LOG) logerror("I8255 '%s' Port %c IBF: %u\n", tag(), 'A' + port, state); + LOG("I8255 Port %c IBF: %u\n", 'A' + port, state); m_ibf[port] = state; @@ -119,7 +119,7 @@ inline void i8255_device::set_ibf(int port, int state) inline void i8255_device::set_obf(int port, int state) { - if (LOG) logerror("I8255 '%s' Port %c OBF: %u\n", tag(), 'A' + port, state); + LOG("I8255 Port %c OBF: %u\n", 'A' + port, state); m_obf[port] = state; @@ -133,7 +133,7 @@ inline void i8255_device::set_obf(int port, int state) inline void i8255_device::set_inte(int port, int state) { - if (LOG) logerror("I8255 '%s' Port %c INTE: %u\n", tag(), 'A' + port, state); + LOG("I8255 Port %c INTE: %u\n", 'A' + port, state); m_inte[port] = state; @@ -147,7 +147,7 @@ inline void i8255_device::set_inte(int port, int state) inline void i8255_device::set_inte1(int state) { - if (LOG) logerror("I8255 '%s' Port A INTE1: %u\n", tag(), state); + LOG("I8255 Port A INTE1: %u\n", state); m_inte1 = state; @@ -161,7 +161,7 @@ inline void i8255_device::set_inte1(int state) inline void i8255_device::set_inte2(int state) { - if (LOG) logerror("I8255 '%s' Port A INTE2: %u\n", tag(), state); + LOG("I8255 Port A INTE2: %u\n", state); m_inte2 = state; @@ -175,7 +175,7 @@ inline void i8255_device::set_inte2(int state) inline void i8255_device::set_intr(int port, int state) { - if (LOG) logerror("I8255 '%s' Port %c INTR: %u\n", tag(), 'A' + port, state); + LOG("I8255 Port %c INTR: %u\n", 'A' + port, state); m_intr[port] = state; @@ -259,7 +259,7 @@ inline int i8255_device::port_c_upper_mode() //------------------------------------------------- i8255_device::i8255_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, I8255, "8255 PPI", tag, owner, clock, "i8255", __FILE__), + : device_t(mconfig, I8255, tag, owner, clock), m_in_pa_cb(*this), m_in_pb_cb(*this), m_in_pc_cb(*this), @@ -659,15 +659,12 @@ void i8255_device::set_mode(uint8_t data) m_out_pa_cb((offs_t)0, 0xff); } - if (LOG) - { - logerror("I8255 '%s' Group A Mode: %u\n", tag(), group_mode(GROUP_A)); - logerror("I8255 '%s' Port A Mode: %s\n", tag(), (port_mode(PORT_A) == MODE_OUTPUT) ? "output" : "input"); - logerror("I8255 '%s' Port C Upper Mode: %s\n", tag(), (port_c_upper_mode() == MODE_OUTPUT) ? "output" : "input"); - logerror("I8255 '%s' Group B Mode: %u\n", tag(), group_mode(GROUP_B)); - logerror("I8255 '%s' Port B Mode: %s\n", tag(), (port_mode(PORT_B) == MODE_OUTPUT) ? "output" : "input"); - logerror("I8255 '%s' Port C Lower Mode: %s\n", tag(), (port_c_lower_mode() == MODE_OUTPUT) ? "output" : "input"); - } + LOG("I8255 Group A Mode: %u\n", group_mode(GROUP_A)); + LOG("I8255 Port A Mode: %s\n", (port_mode(PORT_A) == MODE_OUTPUT) ? "output" : "input"); + LOG("I8255 Port C Upper Mode: %s\n", (port_c_upper_mode() == MODE_OUTPUT) ? "output" : "input"); + LOG("I8255 Group B Mode: %u\n", group_mode(GROUP_B)); + LOG("I8255 Port B Mode: %s\n", (port_mode(PORT_B) == MODE_OUTPUT) ? "output" : "input"); + LOG("I8255 Port C Lower Mode: %s\n", (port_c_lower_mode() == MODE_OUTPUT) ? "output" : "input"); // group B m_output[PORT_B] = 0; @@ -778,7 +775,7 @@ READ8_MEMBER( i8255_device::read ) case MODE_1: data = read_mode1(PORT_A); break; case MODE_2: data = read_mode2(); break; } - if (LOG) logerror("I8255 '%s' Port A Read: %02x\n", tag(), data); + LOG("I8255 Port A Read: %02x\n", data); break; case PORT_B: @@ -787,17 +784,17 @@ READ8_MEMBER( i8255_device::read ) case MODE_0: data = read_mode0(PORT_B); break; case MODE_1: data = read_mode1(PORT_B); break; } - if (LOG) logerror("I8255 '%s' Port B Read: %02x\n", tag(), data); + LOG("I8255 Port B Read: %02x\n", data); break; case PORT_C: data = read_pc(); - if (LOG) logerror("I8255 '%s' Port C Read: %02x\n", tag(), data); + LOG("I8255 Port C Read: %02x\n", data); break; case CONTROL: data = m_control; - if (LOG) logerror("I8255 '%s' Mode Control Word Read: %02x\n", tag(), data); + LOG("I8255 Mode Control Word Read: %02x\n", data); break; } @@ -814,7 +811,7 @@ WRITE8_MEMBER( i8255_device::write ) switch (offset & 0x03) { case PORT_A: - if (LOG) logerror("I8255 '%s' Port A Write: %02x\n", tag(), data); + LOG("I8255 Port A Write: %02x\n", data); switch (group_mode(GROUP_A)) { @@ -825,7 +822,7 @@ WRITE8_MEMBER( i8255_device::write ) break; case PORT_B: - if (LOG) logerror("I8255 '%s' Port B Write: %02x\n", tag(), data); + LOG("I8255 Port B Write: %02x\n", data); switch (group_mode(GROUP_B)) { @@ -835,7 +832,7 @@ WRITE8_MEMBER( i8255_device::write ) break; case PORT_C: - if (LOG) logerror("I8255 '%s' Port C Write: %02x\n", tag(), data); + LOG("I8255 Port C Write: %02x\n", data); m_output[PORT_C] = data; output_pc(); @@ -844,7 +841,7 @@ WRITE8_MEMBER( i8255_device::write ) case CONTROL: if (data & CONTROL_MODE_SET) { - if (LOG) logerror("I8255 '%s' Mode Control Word: %02x\n", tag(), data); + LOG("I8255 Mode Control Word: %02x\n", data); set_mode(data); } @@ -853,7 +850,7 @@ WRITE8_MEMBER( i8255_device::write ) int bit = (data >> 1) & 0x07; int state = BIT(data, 0); - if (LOG) logerror("I8255 '%s' %s Port C Bit %u\n", tag(), state ? "Set" : "Reset", bit); + LOG("I8255 %s Port C Bit %u\n", state ? "Set" : "Reset", bit); set_pc_bit(bit, state); } @@ -929,7 +926,7 @@ WRITE_LINE_MEMBER( i8255_device::pc2_w ) // port B acknowledge if (!m_obf[PORT_B] && !state) { - if (LOG) logerror("I8255 '%s' Port B Acknowledge\n", tag()); + LOG("I8255 Port B Acknowledge\n"); // clear output buffer flag set_obf(PORT_B, 1); @@ -940,7 +937,7 @@ WRITE_LINE_MEMBER( i8255_device::pc2_w ) // port B strobe if (!m_ibf[PORT_B] && !state) { - if (LOG) logerror("I8255 '%s' Port B Strobe\n", tag()); + LOG("I8255 Port B Strobe\n"); // read port into latch m_input[PORT_B] = m_in_pb_cb(0); @@ -964,7 +961,7 @@ WRITE_LINE_MEMBER( i8255_device::pc4_w ) // port A strobe if (!m_ibf[PORT_A] && !state) { - if (LOG) logerror("I8255 '%s' Port A Strobe\n", tag()); + LOG("I8255 Port A Strobe\n"); // read port into latch m_input[PORT_A] = m_in_pa_cb(0); @@ -987,7 +984,7 @@ WRITE_LINE_MEMBER( i8255_device::pc6_w ) // port A acknowledge if (!m_obf[PORT_A] && !state) { - if (LOG) logerror("I8255 '%s' Port A Acknowledge\n", tag()); + LOG("I8255 Port A Acknowledge\n"); // clear output buffer flag set_obf(PORT_A, 1); diff --git a/src/devices/machine/i8255.h b/src/devices/machine/i8255.h index 2677a2f54a3..eaee5119233 100644 --- a/src/devices/machine/i8255.h +++ b/src/devices/machine/i8255.h @@ -29,10 +29,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_MACHINE_I8255_H +#define MAME_MACHINE_I8255_H -#ifndef __I8255__ -#define __I8255__ +#pragma once //************************************************************************** @@ -63,18 +63,18 @@ // ======================> i8255_device -class i8255_device : public device_t +class i8255_device : public device_t { public: // construction/destruction i8255_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_in_pa_callback(device_t &device, _Object object) { return downcast(device).m_in_pa_cb.set_callback(object); } - template static devcb_base &set_in_pb_callback(device_t &device, _Object object) { return downcast(device).m_in_pb_cb.set_callback(object); } - template static devcb_base &set_in_pc_callback(device_t &device, _Object object) { return downcast(device).m_in_pc_cb.set_callback(object); } - template static devcb_base &set_out_pa_callback(device_t &device, _Object object) { return downcast(device).m_out_pa_cb.set_callback(object); } - template static devcb_base &set_out_pb_callback(device_t &device, _Object object) { return downcast(device).m_out_pb_cb.set_callback(object); } - template static devcb_base &set_out_pc_callback(device_t &device, _Object object) { return downcast(device).m_out_pc_cb.set_callback(object); } + template static devcb_base &set_in_pa_callback(device_t &device, Object &&cb) { return downcast(device).m_in_pa_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_in_pb_callback(device_t &device, Object &&cb) { return downcast(device).m_in_pb_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_in_pc_callback(device_t &device, Object &&cb) { return downcast(device).m_in_pc_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_pa_callback(device_t &device, Object &&cb) { return downcast(device).m_out_pa_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_pb_callback(device_t &device, Object &&cb) { return downcast(device).m_out_pb_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_pc_callback(device_t &device, Object &&cb) { return downcast(device).m_out_pc_cb.set_callback(std::forward(cb)); } DECLARE_READ8_MEMBER( read ); DECLARE_WRITE8_MEMBER( write ); @@ -140,8 +140,7 @@ private: // device type definition -extern const device_type I8255; +DECLARE_DEVICE_TYPE(I8255, i8255_device) extern const device_type I8255A; - -#endif +#endif // MAME_MACHINE_I8255_H diff --git a/src/devices/machine/i8257.cpp b/src/devices/machine/i8257.cpp index a36b670ddc1..229492aa65f 100644 --- a/src/devices/machine/i8257.cpp +++ b/src/devices/machine/i8257.cpp @@ -9,13 +9,15 @@ #include "emu.h" #include "i8257.h" +//#define VERBOSE 1 +#include "logmacro.h" //************************************************************************** // DEVICE DEFINITIONS //************************************************************************** -const device_type I8257 = device_creator; +DEFINE_DEVICE_TYPE(I8257, i8257_device, "i8257", "Intel 8257 DMA Controller") @@ -23,9 +25,6 @@ const device_type I8257 = device_creator; // MACROS / CONSTANTS //************************************************************************** -#define LOG 0 - - enum { REGISTER_ADDRESS = 0, @@ -69,16 +68,13 @@ enum inline void i8257_device::dma_request(int channel, int state) { - if (LOG) logerror("I8257 '%s' Channel %u DMA Request: %u\n", tag(), channel, state); + LOG("I8257 Channel %u DMA Request: %u\n", channel, state); if (state) - { m_request |= 1 << channel; - } else - { - m_request &= ~(1 << channel); - } + m_request &= ~(1 << channel); + trigger(1); } @@ -87,9 +83,9 @@ inline void i8257_device::dma_request(int channel, int state) // is_request_active - //------------------------------------------------- -inline bool i8257_device::is_request_active(int channel) +inline bool i8257_device::is_request_active(int channel) const { - return (BIT(m_request, channel) && MODE_CHAN_ENABLE(channel)) ? true : false; + return BIT(m_request, channel) && MODE_CHAN_ENABLE(channel); } //------------------------------------------------- @@ -184,7 +180,7 @@ inline void i8257_device::dma_write() case MODE_TRANSFER_VERIFY: { uint8_t v1 = m_in_memr_cb(offset); if(0 && m_temp != v1) - logerror("%s: verify error %02x vs. %02x\n", tag(), m_temp, v1); + logerror("verify error %02x vs. %02x\n", m_temp, v1); break; } @@ -259,7 +255,7 @@ inline void i8257_device::advance() //------------------------------------------------- i8257_device::i8257_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, I8257, "Intel 8257", tag, owner, clock, "i8257", __FILE__), + : device_t(mconfig, I8257, tag, owner, clock), device_execute_interface(mconfig, *this), m_icount(0), m_reverse_rw(0), @@ -598,7 +594,7 @@ WRITE8_MEMBER( i8257_device::write ) { m_transfer_mode = data; - if (LOG) logerror("I8257 '%s' Command Register: %02x\n", tag(), m_transfer_mode); + LOG("I8257 Command Register: %02x\n", m_transfer_mode); } trigger(1); } @@ -610,7 +606,7 @@ WRITE8_MEMBER( i8257_device::write ) WRITE_LINE_MEMBER( i8257_device::hlda_w ) { - if (LOG) logerror("I8257 '%s' Hold Acknowledge: %u\n", tag(), state); + LOG("I8257 Hold Acknowledge: %u\n", state); m_hack = state; trigger(1); @@ -623,7 +619,7 @@ WRITE_LINE_MEMBER( i8257_device::hlda_w ) WRITE_LINE_MEMBER( i8257_device::ready_w ) { - if (LOG) logerror("I8257 '%s' Ready: %u\n", tag(), state); + LOG("I8257 Ready: %u\n", state); m_ready = state; } diff --git a/src/devices/machine/i8257.h b/src/devices/machine/i8257.h index a060852c7a2..c482fe0fe05 100644 --- a/src/devices/machine/i8257.h +++ b/src/devices/machine/i8257.h @@ -29,10 +29,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_MACHINE_I8257_H +#define MAME_MACHINE_I8257_H -#ifndef __I8257__ -#define __I8257__ +#pragma once @@ -113,28 +113,29 @@ public: DECLARE_WRITE_LINE_MEMBER( dreq2_w ); DECLARE_WRITE_LINE_MEMBER( dreq3_w ); - template static devcb_base &set_out_hrq_callback(device_t &device, _Object object) { return downcast(device).m_out_hrq_cb.set_callback(object); } - template static devcb_base &set_out_tc_callback(device_t &device, _Object object) { return downcast(device).m_out_tc_cb.set_callback(object); } + template static devcb_base &set_out_hrq_callback(device_t &device, Object &&cb) { return downcast(device).m_out_hrq_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_tc_callback(device_t &device, Object &&cb) { return downcast(device).m_out_tc_cb.set_callback(std::forward(cb)); } - template static devcb_base &set_in_memr_callback(device_t &device, _Object object) { return downcast(device).m_in_memr_cb.set_callback(object); } - template static devcb_base &set_out_memw_callback(device_t &device, _Object object) { return downcast(device).m_out_memw_cb.set_callback(object); } + template static devcb_base &set_in_memr_callback(device_t &device, Object &&cb) { return downcast(device).m_in_memr_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_memw_callback(device_t &device, Object &&cb) { return downcast(device).m_out_memw_cb.set_callback(std::forward(cb)); } - template static devcb_base &set_in_ior_0_callback(device_t &device, _Object object) { return downcast(device).m_in_ior_0_cb.set_callback(object); } - template static devcb_base &set_in_ior_1_callback(device_t &device, _Object object) { return downcast(device).m_in_ior_1_cb.set_callback(object); } - template static devcb_base &set_in_ior_2_callback(device_t &device, _Object object) { return downcast(device).m_in_ior_2_cb.set_callback(object); } - template static devcb_base &set_in_ior_3_callback(device_t &device, _Object object) { return downcast(device).m_in_ior_3_cb.set_callback(object); } + template static devcb_base &set_in_ior_0_callback(device_t &device, Object &&cb) { return downcast(device).m_in_ior_0_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_in_ior_1_callback(device_t &device, Object &&cb) { return downcast(device).m_in_ior_1_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_in_ior_2_callback(device_t &device, Object &&cb) { return downcast(device).m_in_ior_2_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_in_ior_3_callback(device_t &device, Object &&cb) { return downcast(device).m_in_ior_3_cb.set_callback(std::forward(cb)); } - template static devcb_base &set_out_iow_0_callback(device_t &device, _Object object) { return downcast(device).m_out_iow_0_cb.set_callback(object); } - template static devcb_base &set_out_iow_1_callback(device_t &device, _Object object) { return downcast(device).m_out_iow_1_cb.set_callback(object); } - template static devcb_base &set_out_iow_2_callback(device_t &device, _Object object) { return downcast(device).m_out_iow_2_cb.set_callback(object); } - template static devcb_base &set_out_iow_3_callback(device_t &device, _Object object) { return downcast(device).m_out_iow_3_cb.set_callback(object); } + template static devcb_base &set_out_iow_0_callback(device_t &device, Object &&cb) { return downcast(device).m_out_iow_0_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_iow_1_callback(device_t &device, Object &&cb) { return downcast(device).m_out_iow_1_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_iow_2_callback(device_t &device, Object &&cb) { return downcast(device).m_out_iow_2_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_iow_3_callback(device_t &device, Object &&cb) { return downcast(device).m_out_iow_3_cb.set_callback(std::forward(cb)); } - template static devcb_base &set_out_dack_0_callback(device_t &device, _Object object) { return downcast(device).m_out_dack_0_cb.set_callback(object); } - template static devcb_base &set_out_dack_1_callback(device_t &device, _Object object) { return downcast(device).m_out_dack_1_cb.set_callback(object); } - template static devcb_base &set_out_dack_2_callback(device_t &device, _Object object) { return downcast(device).m_out_dack_2_cb.set_callback(object); } - template static devcb_base &set_out_dack_3_callback(device_t &device, _Object object) { return downcast(device).m_out_dack_3_cb.set_callback(object); } + template static devcb_base &set_out_dack_0_callback(device_t &device, Object &&cb) { return downcast(device).m_out_dack_0_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_dack_1_callback(device_t &device, Object &&cb) { return downcast(device).m_out_dack_1_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_dack_2_callback(device_t &device, Object &&cb) { return downcast(device).m_out_dack_2_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_dack_3_callback(device_t &device, Object &&cb) { return downcast(device).m_out_dack_3_cb.set_callback(std::forward(cb)); } static void static_set_reverse_rw_mode(device_t &device, bool flag) { downcast(device).m_reverse_rw = flag; } + protected: // device-level overrides virtual void device_start() override; @@ -145,7 +146,7 @@ protected: private: inline void dma_request(int channel, int state); - inline bool is_request_active(int channel); + inline bool is_request_active(int channel) const; inline void set_hreq(int state); inline void set_dack(); inline void dma_read(); @@ -199,8 +200,6 @@ private: // device type definition -extern const device_type I8257; - - +DECLARE_DEVICE_TYPE(I8257, i8257_device) -#endif +#endif // MAME_MACHINE_I8257_H diff --git a/src/devices/machine/i8271.cpp b/src/devices/machine/i8271.cpp index 8a2509050c0..2146d5e6909 100644 --- a/src/devices/machine/i8271.cpp +++ b/src/devices/machine/i8271.cpp @@ -4,10 +4,10 @@ #include "emu.h" #include "i8271.h" -const device_type I8271 = device_creator; +DEFINE_DEVICE_TYPE(I8271, i8271_device, "i8271", "Intel 8271 FDC") i8271_device::i8271_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, I8271, "Intel 8271", tag, owner, clock, "i8271", __FILE__), ready_connected(false), mode(0), main_phase(0), + : device_t(mconfig, I8271, tag, owner, clock), ready_connected(false), mode(0), main_phase(0), intrq_cb(*this), drq_cb(*this), hdl_cb(*this), diff --git a/src/devices/machine/i8271.h b/src/devices/machine/i8271.h index 077fb772d69..f51c0f1e769 100644 --- a/src/devices/machine/i8271.h +++ b/src/devices/machine/i8271.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Carl,Olivier Galibert -#ifndef I8271N_H_ -#define I8271N_H_ +#ifndef MAME_MACHINE_I8271_H +#define MAME_MACHINE_I8271_H + +#pragma once #include "imagedev/floppy.h" #include "fdc_pll.h" @@ -26,12 +28,11 @@ class i8271_device : public device_t { public: i8271_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~i8271_device() {} - template static devcb_base &set_intrq_wr_callback(device_t &device, _Object object) { return downcast(device).intrq_cb.set_callback(object); } - template static devcb_base &set_drq_wr_callback(device_t &device, _Object object) { return downcast(device).drq_cb.set_callback(object); } - template static devcb_base &set_hdl_wr_callback(device_t &device, _Object object) { return downcast(device).hdl_cb.set_callback(object); } - template static devcb_base &set_opt_wr_callback(device_t &device, _Object object) { return downcast(device).opt_cb.set_callback(object); } + template static devcb_base &set_intrq_wr_callback(device_t &device, Object &&cb) { return downcast(device).intrq_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_drq_wr_callback(device_t &device, Object &&cb) { return downcast(device).drq_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_hdl_wr_callback(device_t &device, Object &&cb) { return downcast(device).hdl_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_opt_wr_callback(device_t &device, Object &&cb) { return downcast(device).opt_cb.set_callback(std::forward(cb)); } DECLARE_READ8_MEMBER (sr_r); DECLARE_READ8_MEMBER (rr_r); @@ -289,6 +290,6 @@ private: bool get_input(uint8_t *data); }; -extern const device_type I8271; +DECLARE_DEVICE_TYPE(I8271, i8271_device) -#endif +#endif // MAME_MACHINE_I8271_H diff --git a/src/devices/machine/i8279.cpp b/src/devices/machine/i8279.cpp index d279219c8d9..6e20cb291a4 100644 --- a/src/devices/machine/i8279.cpp +++ b/src/devices/machine/i8279.cpp @@ -77,21 +77,22 @@ that uses this feature. #include "emu.h" #include "i8279.h" -#define LOG 0 +//#define VERBOSE 1 +#include "logmacro.h" //************************************************************************** // LIVE DEVICE //************************************************************************** // device type definition -const device_type I8279 = device_creator; +DEFINE_DEVICE_TYPE(I8279, i8279_device, "i8279", "Intel 8279 KDC") //------------------------------------------------- // i8279_device - constructor //------------------------------------------------- i8279_device::i8279_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, I8279, "8279 KDC", tag, owner, clock, "i8279", __FILE__), + : device_t(mconfig, I8279, tag, owner, clock), m_out_irq_cb(*this), m_out_sl_cb(*this), m_out_disp_cb(*this), @@ -458,7 +459,7 @@ WRITE8_MEMBER( i8279_device::cmd_w ) switch (cmd) { case 0: - if (LOG) logerror("I8279 '%s' kb mode %x, display mode %x\n", tag(), data & 7, (data>>3) & 3); + LOG("I8279 kb mode %x, display mode %x\n", data & 7, (data>>3) & 3); break; case 1: if (data > 1) @@ -473,7 +474,7 @@ WRITE8_MEMBER( i8279_device::cmd_w ) { m_autoinc = BIT(data, 4); m_s_ram_ptr = data & 7; - if (LOG) logerror("I8279 '%s' selct sensor row %x, AI %d\n", tag(), m_s_ram_ptr, m_autoinc); + LOG("I8279 selct sensor row %x, AI %d\n", m_s_ram_ptr, m_autoinc); } break; case 3: @@ -486,7 +487,7 @@ WRITE8_MEMBER( i8279_device::cmd_w ) m_autoinc = BIT(data, 4); break; case 6: - if (LOG) logerror("I8279 '%s' clear cmd %x\n", tag(), data); + LOG("I8279 clear cmd %x\n", data); clear_display(); break; } diff --git a/src/devices/machine/i8279.h b/src/devices/machine/i8279.h index 8528a81af15..458c9732b8d 100644 --- a/src/devices/machine/i8279.h +++ b/src/devices/machine/i8279.h @@ -30,10 +30,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_MACHINE_I8279_H +#define MAME_MACHINE_I8279_H -#ifndef __I8279__ -#define __I8279__ +#pragma once @@ -75,13 +75,13 @@ public: // construction/destruction i8279_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_out_irq_callback(device_t &device, _Object object) { return downcast(device).m_out_irq_cb.set_callback(object); } - template static devcb_base &set_out_sl_callback(device_t &device, _Object object) { return downcast(device).m_out_sl_cb.set_callback(object); } - template static devcb_base &set_out_disp_callback(device_t &device, _Object object) { return downcast(device).m_out_disp_cb.set_callback(object); } - template static devcb_base &set_out_bd_callback(device_t &device, _Object object) { return downcast(device).m_out_bd_cb.set_callback(object); } - template static devcb_base &set_in_rl_callback(device_t &device, _Object object) { return downcast(device).m_in_rl_cb.set_callback(object); } - template static devcb_base &set_in_shift_callback(device_t &device, _Object object) { return downcast(device).m_in_shift_cb.set_callback(object); } - template static devcb_base &set_in_ctrl_callback(device_t &device, _Object object) { return downcast(device).m_in_ctrl_cb.set_callback(object); } + template static devcb_base &set_out_irq_callback(device_t &device, Object &&cb) { return downcast(device).m_out_irq_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_sl_callback(device_t &device, Object &&cb) { return downcast(device).m_out_sl_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_disp_callback(device_t &device, Object &&cb) { return downcast(device).m_out_disp_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_bd_callback(device_t &device, Object &&cb) { return downcast(device).m_out_bd_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_in_rl_callback(device_t &device, Object &&cb) { return downcast(device).m_in_rl_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_in_shift_callback(device_t &device, Object &&cb) { return downcast(device).m_in_shift_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_in_ctrl_callback(device_t &device, Object &&cb) { return downcast(device).m_in_ctrl_cb.set_callback(std::forward(cb)); } // read & write handlers DECLARE_READ8_MEMBER(read); @@ -137,8 +137,6 @@ private: // device type definition -extern const device_type I8279; - - +DECLARE_DEVICE_TYPE(I8279, i8279_device) -#endif +#endif // MAME_MACHINE_I8279_H diff --git a/src/devices/machine/i82875p.cpp b/src/devices/machine/i82875p.cpp index 21e7850ccf7..84b17df1aad 100644 --- a/src/devices/machine/i82875p.cpp +++ b/src/devices/machine/i82875p.cpp @@ -3,9 +3,9 @@ #include "emu.h" #include "i82875p.h" -const device_type I82875P_HOST = device_creator; -const device_type I82875P_AGP = device_creator; -const device_type I82875P_OVERFLOW = device_creator; +DEFINE_DEVICE_TYPE(I82875P_HOST, i82875p_host_device, "i82875p_host", "Intel 82875P Northbridge") +DEFINE_DEVICE_TYPE(I82875P_AGP, i82875p_agp_device, "i82875p_agp", "Intel 82875P AGP Bridge") +DEFINE_DEVICE_TYPE(I82875P_OVERFLOW, i82875p_overflow_device, "i82875p_overflow", "Intel 82875P Configuration Overflow") DEVICE_ADDRESS_MAP_START(agp_translation_map, 32, i82875p_host_device) ADDRESS_MAP_END @@ -43,7 +43,7 @@ DEVICE_ADDRESS_MAP_START(config_map, 32, i82875p_host_device) ADDRESS_MAP_END i82875p_host_device::i82875p_host_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : pci_host_device(mconfig, I82875P_HOST, "I82875P Northbridge", tag, owner, clock, "i82875p_host", __FILE__) + : pci_host_device(mconfig, I82875P_HOST, tag, owner, clock) { } @@ -428,7 +428,7 @@ void i82875p_host_device::map_extra(uint64_t memory_window_start, uint64_t memor i82875p_agp_device::i82875p_agp_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : agp_bridge_device(mconfig, I82875P_AGP, "I82875P AGP Bridge", tag, owner, clock, "i82875p_agp", __FILE__) + : agp_bridge_device(mconfig, I82875P_AGP, tag, owner, clock) { } @@ -451,7 +451,7 @@ ADDRESS_MAP_END i82875p_overflow_device::i82875p_overflow_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : pci_device(mconfig, I82875P_OVERFLOW, "I82875P Configuration Overflow", tag, owner, clock, "i82875p_overflow", __FILE__) + : pci_device(mconfig, I82875P_OVERFLOW, tag, owner, clock) { } diff --git a/src/devices/machine/i82875p.h b/src/devices/machine/i82875p.h index 2d40094c2da..9b212aa1cb1 100644 --- a/src/devices/machine/i82875p.h +++ b/src/devices/machine/i82875p.h @@ -2,8 +2,10 @@ // copyright-holders:Olivier Galibert // Intel i82875p northbridge -#ifndef I82875P_H -#define I82875P_H +#ifndef MAME_MACHINE_I82875P_H +#define MAME_MACHINE_I82875P_H + +#pragma once #include "pci.h" @@ -120,7 +122,6 @@ public: DECLARE_WRITE32_MEMBER(dram_controller_mode_w); protected: - virtual void device_start() override; virtual void device_reset() override; @@ -131,9 +132,8 @@ private: uint32_t dram_timing, dram_controller_mode; }; -extern const device_type I82875P_HOST; -extern const device_type I82875P_AGP; -extern const device_type I82875P_OVERFLOW; - +DECLARE_DEVICE_TYPE(I82875P_HOST, i82875p_host_device) +DECLARE_DEVICE_TYPE(I82875P_AGP, i82875p_agp_device) +DECLARE_DEVICE_TYPE(I82875P_OVERFLOW, i82875p_overflow_device) -#endif +#endif // MAME_MACHINE_I82875P_H diff --git a/src/devices/machine/i8355.cpp b/src/devices/machine/i8355.cpp index 614ad84eaa1..917f46ea8b1 100644 --- a/src/devices/machine/i8355.cpp +++ b/src/devices/machine/i8355.cpp @@ -9,14 +9,14 @@ #include "emu.h" #include "i8355.h" +//#define VERBOSE 1 +#include "logmacro.h" //************************************************************************** // MACROS / CONSTANTS //************************************************************************** -#define LOG 0 - enum { REGISTER_PORT_A = 0, @@ -39,7 +39,7 @@ enum //************************************************************************** // device type definition -const device_type I8355 = device_creator; +DEFINE_DEVICE_TYPE(I8355, i8355_device, "i8355", "Intel 8355") @@ -57,8 +57,8 @@ inline uint8_t i8355_device::read_port(int port) if (m_ddr[port] != 0xff) { - if (port == 0) {data |= m_in_pa_cb(0) & ~m_ddr[port];} - else { data |= m_in_pb_cb(0) & ~m_ddr[port];} + if (port == 0) { data |= m_in_pa_cb(0) & ~m_ddr[port]; } + else { data |= m_in_pb_cb(0) & ~m_ddr[port]; } } return data; @@ -88,7 +88,7 @@ inline void i8355_device::write_port(int port, uint8_t data) //------------------------------------------------- i8355_device::i8355_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, I8355, "Intel 8355", tag, owner, clock, "i8355", __FILE__), + : device_t(mconfig, I8355, tag, owner, clock), m_in_pa_cb(*this), m_out_pa_cb(*this), m_in_pb_cb(*this), @@ -166,14 +166,14 @@ WRITE8_MEMBER( i8355_device::io_w ) { case REGISTER_PORT_A: case REGISTER_PORT_B: - if (LOG) logerror("I8355 '%s' Port %c Write %02x\n", tag(), 'A' + port, data); + LOG("I8355 Port %c Write %02x\n", 'A' + port, data); write_port(port, data); break; case REGISTER_PORT_A_DDR: case REGISTER_PORT_B_DDR: - if (LOG) logerror("I8355 '%s' Port %c DDR: %02x\n", tag(), 'A' + port, data); + LOG("I8355 Port %c DDR: %02x\n", 'A' + port, data); m_ddr[port] = data; write_port(port, data); diff --git a/src/devices/machine/i8355.h b/src/devices/machine/i8355.h index 7ea6074dc9a..58ea5b4b9d3 100644 --- a/src/devices/machine/i8355.h +++ b/src/devices/machine/i8355.h @@ -29,10 +29,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_MACHINE_I8355_H +#define MAME_MACHINE_I8355_H -#ifndef __I8355__ -#define __I8355__ +#pragma once @@ -73,10 +73,10 @@ public: // construction/destruction i8355_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_in_pa_callback(device_t &device, _Object object) { return downcast(device).m_in_pa_cb.set_callback(object); } - template static devcb_base &set_out_pa_callback(device_t &device, _Object object) { return downcast(device).m_out_pa_cb.set_callback(object); } - template static devcb_base &set_in_pb_callback(device_t &device, _Object object) { return downcast(device).m_in_pb_cb.set_callback(object); } - template static devcb_base &set_out_pb_callback(device_t &device, _Object object) { return downcast(device).m_out_pb_cb.set_callback(object); } + template static devcb_base &set_in_pa_callback(device_t &device, Object &&cb) { return downcast(device).m_in_pa_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_pa_callback(device_t &device, Object &&cb) { return downcast(device).m_out_pa_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_in_pb_callback(device_t &device, Object &&cb) { return downcast(device).m_in_pb_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_pb_callback(device_t &device, Object &&cb) { return downcast(device).m_out_pb_cb.set_callback(std::forward(cb)); } DECLARE_READ8_MEMBER( io_r ); DECLARE_WRITE8_MEMBER( io_w ); @@ -108,8 +108,6 @@ private: // device type definition -extern const device_type I8355; - - +DECLARE_DEVICE_TYPE(I8355, i8355_device) -#endif +#endif // MAME_MACHINE_I8355_H diff --git a/src/devices/machine/idectrl.cpp b/src/devices/machine/idectrl.cpp index 8619cd9cfb4..0d9c164f9a7 100644 --- a/src/devices/machine/idectrl.cpp +++ b/src/devices/machine/idectrl.cpp @@ -16,30 +16,33 @@ DEBUGGING ***************************************************************************/ -#define VERBOSE 0 - -#define LOG(x) do { if (VERBOSE) logerror x; } while (0) +//#define VERBOSE 1 +#include "logmacro.h" /*************************************************************************** CONSTANTS ***************************************************************************/ -const device_type IDE_CONTROLLER = device_creator; +DEFINE_DEVICE_TYPE(IDE_CONTROLLER, ide_controller_device, "idectrl", "IDE Controller (16-bit)") ide_controller_device::ide_controller_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - ata_interface_device(mconfig, IDE_CONTROLLER, "IDE Controller", tag, owner, clock, "ide_controller", __FILE__) + ide_controller_device(mconfig, IDE_CONTROLLER, tag, owner, clock) { } -ide_controller_device::ide_controller_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - ata_interface_device(mconfig, type, name, tag, owner, clock, shortname, source) +ide_controller_device::ide_controller_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + ata_interface_device(mconfig, type, tag, owner, clock) { } READ16_MEMBER( ide_controller_device::read_cs0 ) { - if (mem_mask == 0xffff && offset == 1 ){ offset = 0; popmessage( "requires ide_controller_32_device" ); } + if (mem_mask == 0xffff && offset == 1) + { + offset = 0; + popmessage( "requires ide_controller_32_device" ); + } if (mem_mask == 0xff00) { return ata_interface_device::read_cs0(space, (offset * 2) + 1, 0xff) << 8; @@ -88,15 +91,15 @@ WRITE16_MEMBER( ide_controller_device::write_cs1 ) } -const device_type IDE_CONTROLLER_32 = device_creator; +DEFINE_DEVICE_TYPE(IDE_CONTROLLER_32, ide_controller_32_device, "idectrl32", "IDE Controller (32-bit)") ide_controller_32_device::ide_controller_32_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - ide_controller_device(mconfig, IDE_CONTROLLER_32, "IDE Controller (32 bit)", tag, owner, clock, "ide_controller32", __FILE__) + ide_controller_32_device(mconfig, IDE_CONTROLLER_32, tag, owner, clock) { } -ide_controller_32_device::ide_controller_32_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - ide_controller_device(mconfig, type, name, tag, owner, clock, shortname, source) +ide_controller_32_device::ide_controller_32_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + ide_controller_device(mconfig, type, tag, owner, clock) { } @@ -167,10 +170,10 @@ WRITE32_MEMBER(ide_controller_32_device::write_cs1) #define IDE_BUSMASTER_STATUS_ERROR 0x02 #define IDE_BUSMASTER_STATUS_IRQ 0x04 -const device_type BUS_MASTER_IDE_CONTROLLER = device_creator; +DEFINE_DEVICE_TYPE(BUS_MASTER_IDE_CONTROLLER, bus_master_ide_controller_device, "idectrl32bm", "Bus Master IDE Controller") bus_master_ide_controller_device::bus_master_ide_controller_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - ide_controller_32_device(mconfig, BUS_MASTER_IDE_CONTROLLER, "Bus Master IDE Controller", tag, owner, clock, "bus_master_ide_controller", __FILE__), + ide_controller_32_device(mconfig, BUS_MASTER_IDE_CONTROLLER, tag, owner, clock), m_dma_address(0), m_dma_bytes_left(0), m_dma_descriptor(0), @@ -242,7 +245,7 @@ void bus_master_ide_controller_device::set_dmarq(int state) READ32_MEMBER( bus_master_ide_controller_device::bmdma_r ) { - LOG(("%s:ide_bus_master32_r(%d, %08x)\n", machine().describe_context(), offset, mem_mask)); + LOG("%s:ide_bus_master32_r(%d, %08x)\n", machine().describe_context(), offset, mem_mask); switch( offset ) { @@ -268,7 +271,7 @@ READ32_MEMBER( bus_master_ide_controller_device::bmdma_r ) WRITE32_MEMBER( bus_master_ide_controller_device::bmdma_w ) { - LOG(("%s:ide_bus_master32_w(%d, %08x, %08X)\n", machine().describe_context(), offset, mem_mask, data)); + LOG("%s:ide_bus_master32_w(%d, %08x, %08X)\n", machine().describe_context(), offset, mem_mask, data); switch( offset ) { @@ -300,7 +303,7 @@ WRITE32_MEMBER( bus_master_ide_controller_device::bmdma_w ) { m_bus_master_status &= ~IDE_BUSMASTER_STATUS_ACTIVE; - LOG(("DMA Aborted!\n")); + LOG("DMA Aborted!\n"); } } } @@ -355,7 +358,7 @@ void bus_master_ide_controller_device::execute_dma() if (m_dma_bytes_left == 0) m_dma_bytes_left = 0x10000; -// LOG(("New DMA descriptor: address = %08X bytes = %04X last = %d\n", m_dma_address, m_dma_bytes_left, m_dma_last_buffer)); +// LOG("New DMA descriptor: address = %08X bytes = %04X last = %d\n", m_dma_address, m_dma_bytes_left, m_dma_last_buffer); } if (m_bus_master_command & 8) @@ -385,7 +388,7 @@ void bus_master_ide_controller_device::execute_dma() if (m_dmarq) { - LOG(("DMA Out of buffer space!\n")); + LOG("DMA Out of buffer space!\n"); } } } diff --git a/src/devices/machine/idectrl.h b/src/devices/machine/idectrl.h index 3ecb1c3bf39..5de3af587ea 100644 --- a/src/devices/machine/idectrl.h +++ b/src/devices/machine/idectrl.h @@ -8,10 +8,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_MACHINE_IDECTRL_H +#define MAME_MACHINE_IDECTRL_H -#ifndef __IDECTRL_H__ -#define __IDECTRL_H__ +#pragma once #include "ataintf.h" @@ -20,47 +20,51 @@ ***************************************************************************/ #define MCFG_IDE_CONTROLLER_ADD(_tag, _slot_intf, _master, _slave, _fixed) \ - MCFG_DEVICE_ADD(_tag, IDE_CONTROLLER, 0) \ - MCFG_DEVICE_MODIFY(_tag ":0") \ - MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _master, _fixed) \ - MCFG_DEVICE_MODIFY(_tag ":1") \ - MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _slave, _fixed) \ - MCFG_DEVICE_MODIFY(_tag) + MCFG_DEVICE_ADD(_tag, IDE_CONTROLLER, 0) \ + MCFG_DEVICE_MODIFY(_tag ":0") \ + MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _master, _fixed) \ + MCFG_DEVICE_MODIFY(_tag ":1") \ + MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _slave, _fixed) \ + MCFG_DEVICE_MODIFY(_tag) class ide_controller_device : public ata_interface_device { public: ide_controller_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ide_controller_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); virtual DECLARE_READ16_MEMBER(read_cs0) override; virtual DECLARE_READ16_MEMBER(read_cs1) override; virtual DECLARE_WRITE16_MEMBER(write_cs0) override; virtual DECLARE_WRITE16_MEMBER(write_cs1) override; + +protected: + ide_controller_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); }; -extern const device_type IDE_CONTROLLER; +DECLARE_DEVICE_TYPE(IDE_CONTROLLER, ide_controller_device) #define MCFG_IDE_CONTROLLER_32_ADD(_tag, _slot_intf, _master, _slave, _fixed) \ - MCFG_DEVICE_ADD(_tag, IDE_CONTROLLER_32, 0) \ - MCFG_DEVICE_MODIFY(_tag ":0") \ - MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _master, _fixed) \ - MCFG_DEVICE_MODIFY(_tag ":1") \ - MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _slave, _fixed) \ - MCFG_DEVICE_MODIFY(_tag) + MCFG_DEVICE_ADD(_tag, IDE_CONTROLLER_32, 0) \ + MCFG_DEVICE_MODIFY(_tag ":0") \ + MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _master, _fixed) \ + MCFG_DEVICE_MODIFY(_tag ":1") \ + MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _slave, _fixed) \ + MCFG_DEVICE_MODIFY(_tag) class ide_controller_32_device : public ide_controller_device { public: ide_controller_32_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ide_controller_32_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); virtual DECLARE_READ32_MEMBER(read_cs0); virtual DECLARE_READ32_MEMBER(read_cs1); virtual DECLARE_WRITE32_MEMBER(write_cs0); virtual DECLARE_WRITE32_MEMBER(write_cs1); +protected: + ide_controller_32_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + private: using ide_controller_device::read_cs0; using ide_controller_device::read_cs1; @@ -68,25 +72,25 @@ private: using ide_controller_device::write_cs1; }; -extern const device_type IDE_CONTROLLER_32; +DECLARE_DEVICE_TYPE(IDE_CONTROLLER_32, ide_controller_32_device) #define MCFG_BUS_MASTER_IDE_CONTROLLER_ADD(_tag, _slot_intf, _master, _slave, _fixed) \ - MCFG_DEVICE_ADD(_tag, BUS_MASTER_IDE_CONTROLLER, 0) \ - MCFG_DEVICE_MODIFY(_tag ":0") \ - MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _master, _fixed) \ - MCFG_DEVICE_MODIFY(_tag ":1") \ - MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _slave, _fixed) \ - MCFG_DEVICE_MODIFY(_tag) + MCFG_DEVICE_ADD(_tag, BUS_MASTER_IDE_CONTROLLER, 0) \ + MCFG_DEVICE_MODIFY(_tag ":0") \ + MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _master, _fixed) \ + MCFG_DEVICE_MODIFY(_tag ":1") \ + MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _slave, _fixed) \ + MCFG_DEVICE_MODIFY(_tag) #define MCFG_BUS_MASTER_IDE_CONTROLLER_SPACE(bmcpu, bmspace) \ - bus_master_ide_controller_device::set_bus_master_space(*device, bmcpu, bmspace); + bus_master_ide_controller_device::set_bus_master_space(*device, bmcpu, bmspace); class bus_master_ide_controller_device : public ide_controller_32_device { public: bus_master_ide_controller_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - static void set_bus_master_space(device_t &device, const char *bmcpu, uint32_t bmspace) {bus_master_ide_controller_device &ide = downcast(device); ide.m_bmcpu = bmcpu; ide.m_bmspace = bmspace; } + static void set_bus_master_space(device_t &device, const char *bmcpu, uint32_t bmspace) { bus_master_ide_controller_device &ide = downcast(device); ide.m_bmcpu = bmcpu; ide.m_bmspace = bmspace; } DECLARE_READ32_MEMBER( bmdma_r ); DECLARE_WRITE32_MEMBER( bmdma_w ); @@ -116,6 +120,6 @@ private: int m_dmarq; }; -extern const device_type BUS_MASTER_IDE_CONTROLLER; +DECLARE_DEVICE_TYPE(BUS_MASTER_IDE_CONTROLLER, bus_master_ide_controller_device) -#endif /* __IDECTRL_H__ */ +#endif // MAME_MACHINE_IDECTRL_H diff --git a/src/devices/machine/idehd.cpp b/src/devices/machine/idehd.cpp index e5637dade4c..032b85bc6e8 100644 --- a/src/devices/machine/idehd.cpp +++ b/src/devices/machine/idehd.cpp @@ -20,8 +20,8 @@ #define TIME_FULL_STROKE_SEEK (attotime::from_usec(13000)) #define TIME_AVERAGE_ROTATIONAL_LATENCY (attotime::from_usec(1300)) -ata_mass_storage_device::ata_mass_storage_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock,const char *shortname, const char *source) - : ata_hle_device(mconfig, type, name, tag, owner, clock, shortname, source), +ata_mass_storage_device::ata_mass_storage_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : ata_hle_device(mconfig, type, tag, owner, clock), m_can_identify_device(0), m_num_cylinders(0), m_num_sectors(0), @@ -774,20 +774,19 @@ void ata_mass_storage_device::process_command() //************************************************************************** // device type definition -const device_type IDE_HARDDISK = device_creator; +DEFINE_DEVICE_TYPE(IDE_HARDDISK, ide_hdd_device, "idehd", "IDE Hard Disk") //------------------------------------------------- // ide_hdd_device - constructor //------------------------------------------------- ide_hdd_device::ide_hdd_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : ata_mass_storage_device(mconfig, IDE_HARDDISK, "IDE Hard Disk", tag, owner, clock, "hdd", __FILE__), - m_image(*this, "image") + : ide_hdd_device(mconfig, IDE_HARDDISK, tag, owner, clock) { } -ide_hdd_device::ide_hdd_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : ata_mass_storage_device(mconfig, type, name, tag, owner, clock, shortname, source), +ide_hdd_device::ide_hdd_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : ata_mass_storage_device(mconfig, type, tag, owner, clock), m_image(*this, "image") { } diff --git a/src/devices/machine/idehd.h b/src/devices/machine/idehd.h index f979d25285b..c227d671642 100644 --- a/src/devices/machine/idehd.h +++ b/src/devices/machine/idehd.h @@ -8,10 +8,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_MACHINE_IDEHD_H +#define MAME_MACHINE_IDEHD_H -#ifndef __IDEHD_H__ -#define __IDEHD_H__ +#pragma once #include "atahle.h" #include "harddisk.h" @@ -20,8 +20,6 @@ class ata_mass_storage_device : public ata_hle_device { public: - ata_mass_storage_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock,const char *shortname, const char *source); - uint16_t *identify_device_buffer() { return m_identify_buffer; } void set_master_password(const uint8_t *password) @@ -37,6 +35,8 @@ public: } protected: + ata_mass_storage_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; virtual int read_sector(uint32_t lba, void *buffer) = 0; @@ -88,9 +88,10 @@ class ide_hdd_device : public ata_mass_storage_device public: // construction/destruction ide_hdd_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ide_hdd_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); protected: + ide_hdd_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -98,8 +99,8 @@ protected: // optional information overrides virtual machine_config_constructor device_mconfig_additions() const override; - virtual int read_sector(uint32_t lba, void *buffer) override { if (m_disk == nullptr) return 0; return hard_disk_read(m_disk, lba, buffer); } - virtual int write_sector(uint32_t lba, const void *buffer) override { if (m_disk == nullptr) return 0; return hard_disk_write(m_disk, lba, buffer); } + virtual int read_sector(uint32_t lba, void *buffer) override { return !m_disk ? 0 : hard_disk_read(m_disk, lba, buffer); } + virtual int write_sector(uint32_t lba, const void *buffer) override { return !m_disk ? 0 : hard_disk_write(m_disk, lba, buffer); } virtual uint8_t calculate_status() override; chd_file *m_handle; @@ -117,6 +118,6 @@ private: }; // device type definition -extern const device_type IDE_HARDDISK; +DECLARE_DEVICE_TYPE(IDE_HARDDISK, ide_hdd_device) -#endif +#endif // MAME_MACHINE_IDEHD_H diff --git a/src/devices/machine/ie15.cpp b/src/devices/machine/ie15.cpp index 438ffb1712b..1d45b25db94 100644 --- a/src/devices/machine/ie15.cpp +++ b/src/devices/machine/ie15.cpp @@ -11,7 +11,9 @@ ****************************************************************************/ +#include "emu.h" #include "machine/ie15.h" + #include "ie15.lh" @@ -28,8 +30,8 @@ } while (0) -ie15_device::ie15_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source) +ie15_device::ie15_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) , device_serial_interface(mconfig, *this) , m_maincpu(*this, "maincpu") , m_p_videoram(*this, "video") @@ -43,7 +45,7 @@ ie15_device::ie15_device(const machine_config &mconfig, device_type type, const } ie15_device::ie15_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : ie15_device(mconfig, IE15, "IE15", tag, owner, clock, "ie15_device", __FILE__) + : ie15_device(mconfig, IE15, tag, owner, clock) { } @@ -168,38 +170,38 @@ READ8_MEMBER(ie15_device::kb_ready_r) WRITE8_MEMBER(ie15_device::kb_ready_w) { DBG_LOG(2, "keyboard", ("clear ready\n")); - m_kb_flag = IE_TRUE | IE_KB_ACK; + m_kb_flag = IE_TRUE | ie15_keyboard_device::IE_KB_ACK; } // active high; active = interpret controls, inactive = display controls READ8_MEMBER(ie15_device::kb_s_red_r) { - return m_io_keyboard->read() & IE_KB_RED ? IE_TRUE : 0; + return m_io_keyboard->read() & ie15_keyboard_device::IE_KB_RED ? IE_TRUE : 0; } // active high; active = setup mode READ8_MEMBER(ie15_device::kb_s_sdv_r) { - return m_kb_control & IE_KB_SDV ? IE_TRUE : 0; + return m_kb_control & ie15_keyboard_device::IE_KB_SDV ? IE_TRUE : 0; } // active high; active = keypress detected on aux keypad READ8_MEMBER(ie15_device::kb_s_dk_r) { - return m_kb_control & IE_KB_DK ? IE_TRUE : 0; + return m_kb_control & ie15_keyboard_device::IE_KB_DK ? IE_TRUE : 0; } // active low; active = full duplex, inactive = half duplex READ8_MEMBER(ie15_device::kb_s_dupl_r) { - return m_io_keyboard->read() & IE_KB_DUP ? IE_TRUE : 0; + return m_io_keyboard->read() & ie15_keyboard_device::IE_KB_DUP ? IE_TRUE : 0; } // active high; active = on-line, inactive = local editing READ8_MEMBER(ie15_device::kb_s_lin_r) { - return m_io_keyboard->read() & IE_KB_LIN ? IE_TRUE : 0; + return m_io_keyboard->read() & ie15_keyboard_device::IE_KB_LIN ? IE_TRUE : 0; } /* serial port */ @@ -362,15 +364,15 @@ ADDRESS_MAP_END /* Input ports */ INPUT_PORTS_START( ie15 ) PORT_START("io_keyboard") - PORT_DIPNAME(IE_KB_RED, IE_KB_RED, "RED (Interpret controls)") + PORT_DIPNAME(ie15_keyboard_device::IE_KB_RED, ie15_keyboard_device::IE_KB_RED, "RED (Interpret controls)") PORT_DIPSETTING(0x00, "Off") - PORT_DIPSETTING(IE_KB_RED, "On") - PORT_DIPNAME(IE_KB_DUP, IE_KB_DUP, "DUP (Full duplex)") + PORT_DIPSETTING(ie15_keyboard_device::IE_KB_RED, "On") + PORT_DIPNAME(ie15_keyboard_device::IE_KB_DUP, ie15_keyboard_device::IE_KB_DUP, "DUP (Full duplex)") PORT_DIPSETTING(0x00, "Off") - PORT_DIPSETTING(IE_KB_DUP, "On") - PORT_DIPNAME(IE_KB_LIN, IE_KB_LIN, "LIN (Online)") + PORT_DIPSETTING(ie15_keyboard_device::IE_KB_DUP, "On") + PORT_DIPNAME(ie15_keyboard_device::IE_KB_LIN, ie15_keyboard_device::IE_KB_LIN, "LIN (Online)") PORT_DIPSETTING(0x00, "Off") - PORT_DIPSETTING(IE_KB_LIN, "On") + PORT_DIPSETTING(ie15_keyboard_device::IE_KB_LIN, "On") INPUT_PORTS_END WRITE16_MEMBER( ie15_device::kbd_put ) @@ -451,7 +453,7 @@ void ie15_device::draw_scanline(uint32_t *p, uint16_t offset, uint8_t scanline) uint8_t ra = scanline % 8; uint32_t ra_high = 0x200 | ra; bool blink((m_screen->frame_number() % 10) > 4); - bool red(m_io_keyboard->read() & IE_KB_RED); + bool red(m_io_keyboard->read() & ie15_keyboard_device::IE_KB_RED); bool blink_red_line25 = blink && red && m_video.line25; bool cursor_blank = scanline > 7 && (!m_video.cursor || blink); @@ -496,12 +498,12 @@ void ie15_device::update_leds() uint8_t data = m_io_keyboard->read(); machine().output().set_value("lat_led", m_kb_ruslat ^ 1); - machine().output().set_value("nr_led", BIT(m_kb_control, IE_KB_NR_BIT) ^ 1); - machine().output().set_value("pch_led", BIT(data, IE_KB_PCH_BIT) ^ 1); - machine().output().set_value("dup_led", BIT(data, IE_KB_DUP_BIT) ^ 1); - machine().output().set_value("lin_led", BIT(data, IE_KB_LIN_BIT) ^ 1); - machine().output().set_value("red_led", BIT(data, IE_KB_RED_BIT) ^ 1); - machine().output().set_value("sdv_led", BIT(m_kb_control, IE_KB_SDV_BIT) ^ 1); + machine().output().set_value("nr_led", BIT(m_kb_control, ie15_keyboard_device::IE_KB_NR_BIT) ^ 1); + machine().output().set_value("pch_led", BIT(data, ie15_keyboard_device::IE_KB_PCH_BIT) ^ 1); + machine().output().set_value("dup_led", BIT(data, ie15_keyboard_device::IE_KB_DUP_BIT) ^ 1); + machine().output().set_value("lin_led", BIT(data, ie15_keyboard_device::IE_KB_LIN_BIT) ^ 1); + machine().output().set_value("red_led", BIT(data, ie15_keyboard_device::IE_KB_RED_BIT) ^ 1); + machine().output().set_value("sdv_led", BIT(m_kb_control, ie15_keyboard_device::IE_KB_SDV_BIT) ^ 1); machine().output().set_value("prd_led", 1); // XXX } @@ -628,4 +630,4 @@ const tiny_rom_entry *ie15_device::device_rom_region() const return ROM_NAME(ie15); } -const device_type IE15 = device_creator; +DEFINE_DEVICE_TYPE(IE15, ie15_device, "ie15_device", "IE15") diff --git a/src/devices/machine/ie15.h b/src/devices/machine/ie15.h index 55615004418..5c82ac45c3f 100644 --- a/src/devices/machine/ie15.h +++ b/src/devices/machine/ie15.h @@ -1,10 +1,10 @@ // license:BSD-3-Clause // copyright-holders:Sergey Svishchev -#ifndef MAME_MACHINE_IE15_H_ -#define MAME_MACHINE_IE15_H_ +#ifndef MAME_MACHINE_IE15_H +#define MAME_MACHINE_IE15_H -#include "emu.h" +#pragma once #include "bus/rs232/rs232.h" #include "cpu/ie15/ie15.h" @@ -36,7 +36,6 @@ INPUT_PORTS_EXTERN(ie15); class ie15_device : public device_t, public device_serial_interface { public: - ie15_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); ie15_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); DECLARE_WRITE8_MEMBER(write) { term_write(data); } @@ -48,6 +47,8 @@ public: virtual const tiny_rom_entry *device_rom_region() const override; protected: + ie15_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; virtual void device_reset() override; virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; @@ -128,6 +129,6 @@ private: required_ioport m_io_keyboard; }; -extern const device_type IE15; +DECLARE_DEVICE_TYPE(IE15, ie15_device) -#endif /* MAME_MACHINE_IE15_H_ */ +#endif // MAME_MACHINE_IE15_H diff --git a/src/devices/machine/ie15_kbd.cpp b/src/devices/machine/ie15_kbd.cpp index 8dbc7abf64f..33624fa8a98 100644 --- a/src/devices/machine/ie15_kbd.cpp +++ b/src/devices/machine/ie15_kbd.cpp @@ -14,9 +14,10 @@ IMPLEMENTATION ***************************************************************************/ +DEFINE_DEVICE_TYPE(IE15_KEYBOARD, ie15_keyboard_device, "ie15kbd", "15WWW-97-006 Keyboard") -ie15_keyboard_device::ie15_keyboard_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source) +ie15_keyboard_device::ie15_keyboard_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) , m_io_kbd(*this, "TERM_LINE%u", 0) , m_io_kbdc(*this, "TERM_LINEC") , m_keyboard_cb(*this) @@ -24,10 +25,7 @@ ie15_keyboard_device::ie15_keyboard_device(const machine_config &mconfig, device } ie15_keyboard_device::ie15_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, IE15_KEYBOARD, "15WWW-97-006 Keyboard", tag, owner, clock, "ie15_keyboard", __FILE__) - , m_io_kbd(*this, "TERM_LINE%u", 0) - , m_io_kbdc(*this, "TERM_LINEC") - , m_keyboard_cb(*this) + : ie15_keyboard_device(mconfig, IE15_KEYBOARD, tag, owner, clock) { } @@ -299,5 +297,3 @@ ioport_constructor ie15_keyboard_device::device_input_ports() const { return INPUT_PORTS_NAME(ie15_keyboard); } - -const device_type IE15_KEYBOARD = device_creator; diff --git a/src/devices/machine/ie15_kbd.h b/src/devices/machine/ie15_kbd.h index d2dbb3709a9..0e4eda30a39 100644 --- a/src/devices/machine/ie15_kbd.h +++ b/src/devices/machine/ie15_kbd.h @@ -1,29 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Sergey Svishchev -#ifndef __IE15_KEYBOARD_H__ -#define __IE15_KEYBOARD_H__ +#ifndef MAME_MACHINE_IE15_KBD_H +#define MAME_MACHINE_IE15_KBD_H - -#define IE_KB_ACK 1 - -#define IE_KB_RED 0x01 -#define IE_KB_SDV 0x02 -#define IE_KB_DUP 0x08 -#define IE_KB_LIN 0x10 -#define IE_KB_DK 0x20 -#define IE_KB_PCH 0x40 -#define IE_KB_NR 0x80 - -#define IE_KB_RED_BIT 0 -#define IE_KB_SDV_BIT 1 -#define IE_KB_DUP_BIT 3 -#define IE_KB_LIN_BIT 4 -#define IE_KB_DK_BIT 5 -#define IE_KB_PCH_BIT 6 -#define IE_KB_NR_BIT 7 - -#define IE_KB_SI 0x0f -#define IE_KB_SO 0x0e +#pragma once /*************************************************************************** @@ -37,27 +17,53 @@ FUNCTION PROTOTYPES ***************************************************************************/ -class ie15_keyboard_device : - public device_t +class ie15_keyboard_device : public device_t { public: - ie15_keyboard_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); + enum + { + IE_KB_ACK = 1, + + IE_KB_RED = 0x01, + IE_KB_SDV = 0x02, + IE_KB_DUP = 0x08, + IE_KB_LIN = 0x10, + IE_KB_DK = 0x20, + IE_KB_PCH = 0x40, + IE_KB_NR = 0x80, + + IE_KB_RED_BIT = 0, + IE_KB_SDV_BIT = 1, + IE_KB_DUP_BIT = 3, + IE_KB_LIN_BIT = 4, + IE_KB_DK_BIT = 5, + IE_KB_PCH_BIT = 6, + IE_KB_NR_BIT = 7, + + IE_KB_SI = 0x0f, + IE_KB_SO = 0x0e + }; + + ie15_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_keyboard_callback(device_t &device, _Object object) { return downcast(device).m_keyboard_cb.set_callback(object); } + template static devcb_base &set_keyboard_callback(device_t &device, Object &&cb) { return downcast(device).m_keyboard_cb.set_callback(std::forward(cb)); } virtual ioport_constructor device_input_ports() const override; virtual machine_config_constructor device_mconfig_additions() const override; virtual const tiny_rom_entry *device_rom_region() const override; protected: - required_ioport_array<4> m_io_kbd; - required_ioport m_io_kbdc; + ie15_keyboard_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); virtual void device_start() override; virtual void device_reset() override; virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; - virtual void send_key(uint16_t code) { m_keyboard_cb((offs_t)0, code); } + virtual void send_key(uint16_t code) { m_keyboard_cb(offs_t(0), code); } + + required_ioport_array<4> m_io_kbd; + required_ioport m_io_kbdc; + emu_timer *m_timer; private: @@ -71,6 +77,6 @@ private: devcb_write16 m_keyboard_cb; }; -extern const device_type IE15_KEYBOARD; +DECLARE_DEVICE_TYPE(IE15_KEYBOARD, ie15_keyboard_device) -#endif /* __IE15_KEYBOARD_H__ */ +#endif // MAME_MACHINE_IE15_KBD_H diff --git a/src/devices/machine/im6402.cpp b/src/devices/machine/im6402.cpp index df2c5b809b1..ea76e9d0f21 100644 --- a/src/devices/machine/im6402.cpp +++ b/src/devices/machine/im6402.cpp @@ -9,21 +9,15 @@ #include "emu.h" #include "im6402.h" +//#define VERBOSE 1 +#include "logmacro.h" //************************************************************************** // DEVICE DEFINITIONS //************************************************************************** -const device_type IM6402 = device_creator; - - - -//************************************************************************** -// MACROS / CONSTANTS -//************************************************************************** - -#define LOG 0 +DEFINE_DEVICE_TYPE(IM6402, im6402_device, "im6402", "Intersil IM6402 USART") @@ -77,7 +71,7 @@ inline void im6402_device::set_tre(int state) //------------------------------------------------- im6402_device::im6402_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, IM6402, "Intersil IM6402", tag, owner, clock, "im6402", __FILE__), + device_t(mconfig, IM6402, tag, owner, clock), device_serial_interface(mconfig, *this), m_write_tro(*this), m_write_dr(*this), @@ -185,7 +179,7 @@ void im6402_device::tra_complete() { if (!m_tbre) { - if (LOG) logerror("IM6402 '%s' Transmit Data %02x\n", tag(), m_tbr); + LOG("IM6402 Transmit Data %02x\n", m_tbr); transmit_register_setup(m_tbr); @@ -213,7 +207,7 @@ void im6402_device::rcv_complete() receive_register_extract(); m_rbr = get_received_char(); - if (LOG) logerror("IM6402 '%s' Receive Data %02x\n", tag(), m_rbr); + LOG("IM6402 Receive Data %02x\n", m_rbr); if (m_dr) { @@ -230,13 +224,13 @@ void im6402_device::rcv_complete() WRITE8_MEMBER( im6402_device::write ) { - if (LOG) logerror("IM6402 '%s' Transmit Buffer Register %02x\n", tag(), data); + LOG("IM6402 Transmit Buffer Register %02x\n", data); m_tbr = data; if (is_transmit_register_empty()) { - if (LOG) logerror("IM6402 '%s' Transmit Data %02x\n", tag(), m_tbr); + LOG("IM6402 Transmit Data %02x\n", m_tbr); transmit_register_setup(m_tbr); @@ -330,7 +324,7 @@ WRITE_LINE_MEMBER( im6402_device::crl_w ) { if (state) { - if (LOG) logerror("IM6402 '%s' Control Register Load\n", tag()); + LOG("IM6402 Control Register Load\n"); int data_bit_count = 5 + ((m_cls2 << 1) | m_cls1); stop_bits_t stop_bits = (m_sbs ? ((data_bit_count == 5) ? STOP_BITS_1_5 : STOP_BITS_2) : STOP_BITS_1); @@ -354,7 +348,7 @@ WRITE_LINE_MEMBER( im6402_device::crl_w ) WRITE_LINE_MEMBER( im6402_device::pi_w ) { - if (LOG) logerror("IM6402 '%s' Parity Inhibit %u\n", tag(), state); + LOG("IM6402 Parity Inhibit %u\n", state); m_pi = state; } @@ -366,7 +360,7 @@ WRITE_LINE_MEMBER( im6402_device::pi_w ) WRITE_LINE_MEMBER( im6402_device::sbs_w ) { - if (LOG) logerror("IM6402 '%s' Stop Bit Select %u\n", tag(), state); + LOG("IM6402 Stop Bit Select %u\n", state); m_sbs = state; } @@ -378,7 +372,7 @@ WRITE_LINE_MEMBER( im6402_device::sbs_w ) WRITE_LINE_MEMBER( im6402_device::cls1_w ) { - if (LOG) logerror("IM6402 '%s' Character Length Select 1 %u\n", tag(), state); + LOG("IM6402 Character Length Select 1 %u\n", state); m_cls1 = state; } @@ -390,7 +384,7 @@ WRITE_LINE_MEMBER( im6402_device::cls1_w ) WRITE_LINE_MEMBER( im6402_device::cls2_w ) { - if (LOG) logerror("IM6402 '%s' Character Length Select 2 %u\n", tag(), state); + LOG("IM6402 Character Length Select 2 %u\n", state); m_cls2 = state; } @@ -402,7 +396,7 @@ WRITE_LINE_MEMBER( im6402_device::cls2_w ) WRITE_LINE_MEMBER( im6402_device::epe_w ) { - if (LOG) logerror("IM6402 '%s' Even Parity Enable %u\n", tag(), state); + LOG("IM6402 Even Parity Enable %u\n", state); m_epe = state; } diff --git a/src/devices/machine/im6402.h b/src/devices/machine/im6402.h index 211ff99394c..2edf9cbcdfd 100644 --- a/src/devices/machine/im6402.h +++ b/src/devices/machine/im6402.h @@ -36,10 +36,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_MACHINE_IM6402_H +#define MAME_MACHINE_IM6402_H -#ifndef __IM6402__ -#define __IM6402__ +#pragma once @@ -73,8 +73,7 @@ // ======================> im6402_device -class im6402_device : public device_t, - public device_serial_interface +class im6402_device : public device_t, public device_serial_interface { public: // construction/destruction @@ -82,10 +81,10 @@ public: static void set_rrc(device_t &device, int rrc) { downcast(device).m_rrc = rrc; } static void set_trc(device_t &device, int trc) { downcast(device).m_trc = trc; } - template static devcb_base &set_tro_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_tro.set_callback(object); } - template static devcb_base &set_dr_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_dr.set_callback(object); } - template static devcb_base &set_tbre_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_tbre.set_callback(object); } - template static devcb_base &set_tre_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_tre.set_callback(object); } + template static devcb_base &set_tro_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_tro.set_callback(std::forward(cb)); } + template static devcb_base &set_dr_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_dr.set_callback(std::forward(cb)); } + template static devcb_base &set_tbre_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_tbre.set_callback(std::forward(cb)); } + template static devcb_base &set_tre_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_tre.set_callback(std::forward(cb)); } DECLARE_READ8_MEMBER( read ) { return m_rbr; } DECLARE_WRITE8_MEMBER( write ); @@ -162,8 +161,6 @@ private: // device type definition -extern const device_type IM6402; - - +DECLARE_DEVICE_TYPE(IM6402, im6402_device) -#endif +#endif // MAME_MACHINE_IM6402_H diff --git a/src/devices/machine/input_merger.cpp b/src/devices/machine/input_merger.cpp index e77e24f794b..834795f948b 100644 --- a/src/devices/machine/input_merger.cpp +++ b/src/devices/machine/input_merger.cpp @@ -20,8 +20,8 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type INPUT_MERGER_ACTIVE_HIGH = device_creator; -const device_type INPUT_MERGER_ACTIVE_LOW = device_creator; +DEFINE_DEVICE_TYPE(INPUT_MERGER_ACTIVE_HIGH, input_merger_active_high_device, "ipt_merger_hi", "Input Merger (active high)") +DEFINE_DEVICE_TYPE(INPUT_MERGER_ACTIVE_LOW, input_merger_active_low_device, "ipt_merger_lo", "Input Merger (active low)") //************************************************************************** @@ -32,9 +32,8 @@ const device_type INPUT_MERGER_ACTIVE_LOW = device_creator static devcb_base &set_output_handler(device_t &device, _Object object) - { return downcast(device).m_output_handler.set_callback(object); } + template static devcb_base &set_output_handler(device_t &device, Object &&cb) + { return downcast(device).m_output_handler.set_callback(std::forward(cb)); } // input lines - DECLARE_WRITE_LINE_MEMBER( in0_w ) { m_state[0] = state; update_state(); }; - DECLARE_WRITE_LINE_MEMBER( in1_w ) { m_state[1] = state; update_state(); }; - DECLARE_WRITE_LINE_MEMBER( in2_w ) { m_state[2] = state; update_state(); }; - DECLARE_WRITE_LINE_MEMBER( in3_w ) { m_state[3] = state; update_state(); }; - DECLARE_WRITE_LINE_MEMBER( in4_w ) { m_state[4] = state; update_state(); }; - DECLARE_WRITE_LINE_MEMBER( in5_w ) { m_state[5] = state; update_state(); }; - DECLARE_WRITE_LINE_MEMBER( in6_w ) { m_state[6] = state; update_state(); }; - DECLARE_WRITE_LINE_MEMBER( in7_w ) { m_state[7] = state; update_state(); }; + DECLARE_WRITE_LINE_MEMBER( in0_w ) { if (bool(state) != m_state[0]) { m_state[0] = state; update_state(); } } + DECLARE_WRITE_LINE_MEMBER( in1_w ) { if (bool(state) != m_state[1]) { m_state[1] = state; update_state(); } } + DECLARE_WRITE_LINE_MEMBER( in2_w ) { if (bool(state) != m_state[2]) { m_state[2] = state; update_state(); } } + DECLARE_WRITE_LINE_MEMBER( in3_w ) { if (bool(state) != m_state[3]) { m_state[3] = state; update_state(); } } + DECLARE_WRITE_LINE_MEMBER( in4_w ) { if (bool(state) != m_state[4]) { m_state[4] = state; update_state(); } } + DECLARE_WRITE_LINE_MEMBER( in5_w ) { if (bool(state) != m_state[5]) { m_state[5] = state; update_state(); } } + DECLARE_WRITE_LINE_MEMBER( in6_w ) { if (bool(state) != m_state[6]) { m_state[6] = state; update_state(); } } + DECLARE_WRITE_LINE_MEMBER( in7_w ) { if (bool(state) != m_state[7]) { m_state[7] = state; update_state(); } } protected: // constructor/destructor - input_merger_device(machine_config const &mconfig, device_type type, char const *name, char const *tag, device_t *owner, uint32_t clock, char const *shortname, char const *source); + input_merger_device(machine_config const &mconfig, device_type type, char const *tag, device_t *owner, uint32_t clock); virtual ~input_merger_device() override; // device-level overrides @@ -99,8 +99,7 @@ protected: // device type definition -extern const device_type INPUT_MERGER_ACTIVE_HIGH; -extern const device_type INPUT_MERGER_ACTIVE_LOW; - +DECLARE_DEVICE_TYPE(INPUT_MERGER_ACTIVE_HIGH, input_merger_active_high_device) +DECLARE_DEVICE_TYPE(INPUT_MERGER_ACTIVE_LOW, input_merger_active_low_device) -#endif /* __INPUT_MERGER_H__ */ +#endif // MAME_MACHINE_INPUT_MERGER_H diff --git a/src/devices/machine/ins8154.cpp b/src/devices/machine/ins8154.cpp index 7d58a299a27..8a134000f3f 100644 --- a/src/devices/machine/ins8154.cpp +++ b/src/devices/machine/ins8154.cpp @@ -13,13 +13,14 @@ #include "emu.h" #include "ins8154.h" +#define VERBOSE 1 +#include "logmacro.h" + /*************************************************************************** CONSTANTS ***************************************************************************/ -#define VERBOSE 1 - /* Mode Definition Register */ enum { @@ -36,19 +37,20 @@ enum //************************************************************************** // device type definition -const device_type INS8154 = device_creator; +DEFINE_DEVICE_TYPE(INS8154, ins8154_device, "ins8154", "INS8154 RAM I/O") //------------------------------------------------- // ins8154_device - constructor //------------------------------------------------- ins8154_device::ins8154_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, INS8154, "INS8154 RAM I/O", tag, owner, clock, "ins8154", __FILE__), - m_in_a_cb(*this), - m_out_a_cb(*this), - m_in_b_cb(*this), - m_out_b_cb(*this), - m_out_irq_cb(*this), m_in_a(0), m_in_b(0), m_out_a(0), m_out_b(0), m_mdr(0), m_odra(0), m_odrb(0) + : device_t(mconfig, INS8154, tag, owner, clock) + , m_in_a_cb(*this) + , m_out_a_cb(*this) + , m_in_b_cb(*this) + , m_out_b_cb(*this) + , m_out_irq_cb(*this) + , m_in_a(0), m_in_b(0), m_out_a(0), m_out_b(0), m_mdr(0), m_odra(0), m_odrb(0) { } @@ -98,46 +100,35 @@ READ8_MEMBER(ins8154_device::ins8154_r) if (offset > 0x24) { - if (VERBOSE) - { - logerror("%s: INS8154 '%s' Read from invalid offset %02x!\n", machine().describe_context(), tag(), offset); - } + LOG("%s: INS8154 Read from invalid offset %02x!\n", machine().describe_context(), offset); return 0xff; } switch (offset) { case 0x20: - if(!m_in_a_cb.isnull()) - { + if (!m_in_a_cb.isnull()) val = m_in_a_cb(0); - } m_in_a = val; break; case 0x21: - if(!m_in_b_cb.isnull()) - { + if (!m_in_b_cb.isnull()) val = m_in_b_cb(0); - } m_in_b = val; break; default: if (offset < 0x08) { - if(!m_in_a_cb.isnull()) - { + if (!m_in_a_cb.isnull()) val = (m_in_a_cb(0) << (8 - offset)) & 0x80; - } m_in_a = val; } else { - if(!m_in_b_cb.isnull()) - { + if (!m_in_b_cb.isnull()) val = (m_in_b_cb(0) << (8 - (offset >> 4))) & 0x80; - } m_in_b = val; } break; @@ -152,9 +143,7 @@ WRITE8_MEMBER(ins8154_device::ins8154_porta_w) /* Test if any pins are set as outputs */ if (m_odra) - { - m_out_a_cb((offs_t)0, (data & m_odra) | (m_odra ^ 0xff)); - } + m_out_a_cb(offs_t(0), (data & m_odra) | (m_odra ^ 0xff)); } WRITE8_MEMBER(ins8154_device::ins8154_portb_w) @@ -163,19 +152,14 @@ WRITE8_MEMBER(ins8154_device::ins8154_portb_w) /* Test if any pins are set as outputs */ if (m_odrb) - { - m_out_b_cb((offs_t)0, (data & m_odrb) | (m_odrb ^ 0xff)); - } + m_out_b_cb(offs_t(0), (data & m_odrb) | (m_odrb ^ 0xff)); } WRITE8_MEMBER(ins8154_device::ins8154_w) { if (offset > 0x24) { - if (VERBOSE) - { - logerror("%s: INS8154 '%s' Write %02x to invalid offset %02x!\n", machine().describe_context(), tag(), data, offset); - } + LOG("%s: INS8154 Write %02x to invalid offset %02x!\n", machine().describe_context(), data, offset); return; } @@ -190,29 +174,17 @@ WRITE8_MEMBER(ins8154_device::ins8154_w) break; case 0x22: - if (VERBOSE) - { - logerror("%s: INS8154 '%s' ODRA set to %02x\n", machine().describe_context(), tag(), data); - } - + LOG("%s: INS8154 ODRA set to %02x\n", machine().describe_context(), data); m_odra = data; break; case 0x23: - if (VERBOSE) - { - logerror("%s: INS8154 '%s' ODRB set to %02x\n", machine().describe_context(), tag(), data); - } - + LOG("%s: INS8154 ODRB set to %02x\n", machine().describe_context(), data); m_odrb = data; break; case 0x24: - if (VERBOSE) - { - logerror("%s: INS8154 '%s' MDR set to %02x\n", machine().describe_context(), tag(), data); - } - + LOG("%s: INS8154 MDR set to %02x\n", machine().describe_context(), data); m_mdr = data; break; @@ -221,27 +193,18 @@ WRITE8_MEMBER(ins8154_device::ins8154_w) { /* Set bit */ if (offset < 0x08) - { ins8154_porta_w(space, 0, m_out_a |= offset & 0x07); - } else - { ins8154_portb_w(space, 0, m_out_b |= (offset >> 4) & 0x07); - } } else { /* Clear bit */ if (offset < 0x08) - { ins8154_porta_w(space, 0, m_out_a & ~(offset & 0x07)); - } else - { ins8154_portb_w(space, 0, m_out_b & ~((offset >> 4) & 0x07)); - } } - break; } } diff --git a/src/devices/machine/ins8154.h b/src/devices/machine/ins8154.h index 41341dcf084..b87ff329675 100644 --- a/src/devices/machine/ins8154.h +++ b/src/devices/machine/ins8154.h @@ -30,10 +30,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_MACHINE_INS8154_H +#define MAME_MACHINE_INS8154_H -#ifndef __INS8154_H__ -#define __INS8154_H__ +#pragma once @@ -69,11 +69,11 @@ public: // construction/destruction ins8154_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_in_a_callback(device_t &device, _Object object) { return downcast(device).m_in_a_cb.set_callback(object); } - template static devcb_base &set_out_a_callback(device_t &device, _Object object) { return downcast(device).m_out_a_cb.set_callback(object); } - template static devcb_base &set_in_b_callback(device_t &device, _Object object) { return downcast(device).m_in_b_cb.set_callback(object); } - template static devcb_base &set_out_b_callback(device_t &device, _Object object) { return downcast(device).m_out_b_cb.set_callback(object); } - template static devcb_base &set_out_irq_callback(device_t &device, _Object object) { return downcast(device).m_out_irq_cb.set_callback(object); } + template static devcb_base &set_in_a_callback(device_t &device, Object &&cb) { return downcast(device).m_in_a_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_a_callback(device_t &device, Object &&cb) { return downcast(device).m_out_a_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_in_b_callback(device_t &device, Object &&cb) { return downcast(device).m_in_b_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_b_callback(device_t &device, Object &&cb) { return downcast(device).m_out_b_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_irq_callback(device_t &device, Object &&cb) { return downcast(device).m_out_irq_cb.set_callback(std::forward(cb)); } DECLARE_READ8_MEMBER( ins8154_r ); DECLARE_WRITE8_MEMBER( ins8154_w ); @@ -109,6 +109,6 @@ private: // device type definition -extern const device_type INS8154; +DECLARE_DEVICE_TYPE(INS8154, ins8154_device) -#endif /* __INS8154_H__ */ +#endif // MAME_MACHINE_INS8154_H diff --git a/src/devices/machine/ins8250.cpp b/src/devices/machine/ins8250.cpp index 5ebebc9f0b9..8ec7a17a12b 100644 --- a/src/devices/machine/ins8250.cpp +++ b/src/devices/machine/ins8250.cpp @@ -87,49 +87,47 @@ History: #include "emu.h" #include "machine/ins8250.h" -const device_type INS8250 = device_creator; -const device_type NS16450 = device_creator; -const device_type NS16550 = device_creator; -const device_type PC16552D = device_creator; - -ins8250_uart_device::ins8250_uart_device(const machine_config &mconfig, device_type type, const char* name, const char *tag, device_t *owner, uint32_t clock, const char *shortname) - : device_t(mconfig, type, name, tag, owner, clock, shortname, __FILE__), - device_serial_interface(mconfig, *this), - m_out_tx_cb(*this), - m_out_dtr_cb(*this), - m_out_rts_cb(*this), - m_out_int_cb(*this), - m_out_out1_cb(*this), - m_out_out2_cb(*this), - m_rxd(1), - m_dcd(1), - m_dsr(1), - m_ri(1), - m_cts(1) +DEFINE_DEVICE_TYPE(INS8250, ins8250_device, "ins8250", "National Semiconductor INS8250 UART") +DEFINE_DEVICE_TYPE(NS16450, ns16450_device, "ns16450", "National Semiconductor NS16450 UART") +DEFINE_DEVICE_TYPE(NS16550, ns16550_device, "ns16550", "National Semiconductor NS16550 UART") +DEFINE_DEVICE_TYPE(PC16552D, pc16552_device, "pc16552d", "National Semiconductor PC16552D UART") + +ins8250_uart_device::ins8250_uart_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, dev_type device_type) + : device_t(mconfig, type, tag, owner, clock) + , device_serial_interface(mconfig, *this) + , m_device_type(device_type) + , m_out_tx_cb(*this) + , m_out_dtr_cb(*this) + , m_out_rts_cb(*this) + , m_out_int_cb(*this) + , m_out_out1_cb(*this) + , m_out_out2_cb(*this) + , m_rxd(1) + , m_dcd(1) + , m_dsr(1) + , m_ri(1) + , m_cts(1) { m_regs.ier = 0; } ins8250_device::ins8250_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : ins8250_uart_device(mconfig, INS8250, "National Semiconductor INS8250", tag, owner, clock, "ins8250") + : ins8250_uart_device(mconfig, INS8250, tag, owner, clock, dev_type::INS8250) { - m_device_type = TYPE_INS8250; } ns16450_device::ns16450_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : ins8250_uart_device(mconfig, NS16450, "National Semiconductor NS16450", tag, owner, clock, "ns16450") + : ins8250_uart_device(mconfig, NS16450, tag, owner, clock, dev_type::NS16450) { - m_device_type = TYPE_NS16450; } ns16550_device::ns16550_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : ins8250_uart_device(mconfig, NS16550, "National Semiconductor NS16550", tag, owner, clock, "ns16550") + : ins8250_uart_device(mconfig, NS16550, tag, owner, clock, dev_type::NS16550) { - m_device_type = TYPE_NS16550; } -pc16552_device::pc16552_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, PC16552D, "National Semiconductor PC16552D", tag, owner, clock, "pc16552d", __FILE__) +pc16552_device::pc16552_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, PC16552D, tag, owner, clock) { } @@ -221,7 +219,7 @@ WRITE8_MEMBER( ins8250_uart_device::ins8250_w ) { m_regs.thr = data; m_regs.lsr &= ~0x20; - if((m_device_type >= TYPE_NS16550) && (m_regs.fcr & 1)) + if((m_device_type >= dev_type::NS16550) && (m_regs.fcr & 1)) push_tx(data); clear_int(COM_INT_PENDING_TRANSMITTER_HOLDING_REGISTER_EMPTY); if(m_regs.lsr & 0x40) @@ -356,7 +354,7 @@ READ8_MEMBER( ins8250_uart_device::ins8250_r ) data = (m_regs.dl & 0xff); else { - if((m_device_type >= TYPE_NS16550) && (m_regs.fcr & 1)) + if((m_device_type >= dev_type::NS16550) && (m_regs.fcr & 1)) m_regs.rbr = pop_rx(); else { diff --git a/src/devices/machine/ins8250.h b/src/devices/machine/ins8250.h index 4682412b19d..f10293a75f4 100644 --- a/src/devices/machine/ins8250.h +++ b/src/devices/machine/ins8250.h @@ -6,8 +6,10 @@ **********************************************************************/ -#ifndef __INS8250_H_ -#define __INS8250_H_ +#ifndef MAME_MACHINE_INS8250_H +#define MAME_MACHINE_INS8250_H + +#pragma once /*************************************************************************** @@ -18,14 +20,12 @@ class ins8250_uart_device : public device_t, public device_serial_interface { public: - ins8250_uart_device(const machine_config &mconfig, device_type type, const char* name, const char *tag, device_t *owner, uint32_t clock, const char *shortname); - - template static devcb_base &set_out_tx_callback(device_t &device, _Object object) { return downcast(device).m_out_tx_cb.set_callback(object); } - template static devcb_base &set_out_dtr_callback(device_t &device, _Object object) { return downcast(device).m_out_dtr_cb.set_callback(object); } - template static devcb_base &set_out_rts_callback(device_t &device, _Object object) { return downcast(device).m_out_rts_cb.set_callback(object); } - template static devcb_base &set_out_int_callback(device_t &device, _Object object) { return downcast(device).m_out_int_cb.set_callback(object); } - template static devcb_base &set_out_out1_callback(device_t &device, _Object object) { return downcast(device).m_out_out1_cb.set_callback(object); } - template static devcb_base &set_out_out2_callback(device_t &device, _Object object) { return downcast(device).m_out_out2_cb.set_callback(object); } + template static devcb_base &set_out_tx_callback(device_t &device, Object &&cb) { return downcast(device).m_out_tx_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_dtr_callback(device_t &device, Object &&cb) { return downcast(device).m_out_dtr_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_rts_callback(device_t &device, Object &&cb) { return downcast(device).m_out_rts_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_int_callback(device_t &device, Object &&cb) { return downcast(device).m_out_int_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_out1_callback(device_t &device, Object &&cb) { return downcast(device).m_out_out1_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_out2_callback(device_t &device, Object &&cb) { return downcast(device).m_out_out2_cb.set_callback(std::forward(cb)); } DECLARE_WRITE8_MEMBER( ins8250_w ); DECLARE_READ8_MEMBER( ins8250_r ); @@ -36,6 +36,16 @@ public: DECLARE_WRITE_LINE_MEMBER( rx_w ); protected: + enum class dev_type { + INS8250, + INS8250A, + NS16450, + NS16550, + NS16550A + }; + + ins8250_uart_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, dev_type device_type); + virtual void device_start() override; virtual void device_reset() override; virtual void rcv_complete() override; @@ -43,21 +53,14 @@ protected: virtual void tra_callback() override; virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; - virtual void set_fcr(uint8_t data) {} - virtual void push_tx(uint8_t data) {} + virtual void set_fcr(uint8_t data) { } + virtual void push_tx(uint8_t data) { } virtual uint8_t pop_rx() { return 0; } void trigger_int(int flag); void clear_int(int flag); - enum { - TYPE_INS8250 = 0, - TYPE_INS8250A, - TYPE_NS16450, - TYPE_NS16550, - TYPE_NS16550A - }; - int m_device_type; + const dev_type m_device_type; struct { uint8_t thr; /* 0 -W transmitter holding register */ uint8_t rbr; /* 0 R- receiver buffer register */ @@ -143,10 +146,11 @@ private: ns16550_device *m_chan1; }; -extern const device_type PC16552D; -extern const device_type INS8250; -extern const device_type NS16450; -extern const device_type NS16550; +DECLARE_DEVICE_TYPE(PC16552D, pc16552_device) +DECLARE_DEVICE_TYPE(INS8250, ins8250_device) +DECLARE_DEVICE_TYPE(NS16450, ns16450_device) +DECLARE_DEVICE_TYPE(NS16550, ns16550_device) + /*************************************************************************** DEVICE CONFIGURATION MACROS @@ -170,4 +174,4 @@ extern const device_type NS16550; #define MCFG_INS8250_OUT_OUT2_CB(_devcb) \ devcb = &ins8250_uart_device::set_out_out2_callback(*device, DEVCB_##_devcb); -#endif +#endif // MAME_MACHINE_INS8250_H diff --git a/src/devices/machine/intelfsh.cpp b/src/devices/machine/intelfsh.cpp index 959c1591883..83e88b42dd7 100644 --- a/src/devices/machine/intelfsh.cpp +++ b/src/devices/machine/intelfsh.cpp @@ -78,40 +78,40 @@ enum //************************************************************************** // device type definition -const device_type INTEL_28F016S5 = device_creator; -const device_type SHARP_LH28F016S = device_creator; -const device_type SHARP_LH28F016S_16BIT = device_creator; -const device_type ATMEL_29C010 = device_creator; -const device_type AMD_29F010 = device_creator; -const device_type AMD_29F040 = device_creator; -const device_type AMD_29F080 = device_creator; -const device_type AMD_29F400T = device_creator; -const device_type AMD_29F800T = device_creator; -const device_type AMD_29LV200T = device_creator; -const device_type FUJITSU_29F160T = device_creator; -const device_type FUJITSU_29F016A = device_creator; -const device_type FUJITSU_29DL16X = device_creator; -const device_type INTEL_E28F400B = device_creator; -const device_type MACRONIX_29L001MC = device_creator; -const device_type MACRONIX_29LV160TMC = device_creator; -const device_type TMS_29F040 = device_creator; - -const device_type PANASONIC_MN63F805MNP = device_creator; -const device_type SANYO_LE26FV10N1TS = device_creator; -const device_type SST_28SF040 = device_creator; -const device_type SST_39VF020 = device_creator; - -const device_type SHARP_LH28F400 = device_creator; -const device_type INTEL_E28F008SA = device_creator; -const device_type INTEL_TE28F160 = device_creator; -const device_type INTEL_TE28F320 = device_creator; -const device_type SHARP_UNK128MBIT = device_creator; -const device_type INTEL_28F320J3D = device_creator; -const device_type INTEL_28F320J5 = device_creator; - -const device_type SST_39VF400A = device_creator; - -const device_type ATMEL_49F4096 = device_creator; +DEFINE_DEVICE_TYPE(INTEL_28F016S5, intel_28f016s5_device, "intel_28f016s5", "Intel 28F016S5 Flash") +DEFINE_DEVICE_TYPE(SHARP_LH28F016S, sharp_lh28f016s_device, "sharp_lh28f016s", "Sharp LH28F016S Flash") +DEFINE_DEVICE_TYPE(SHARP_LH28F016S_16BIT, sharp_lh28f016s_16bit_device, "sharp_lh28f016s_16bit", "Sharp LH28F016S Flash (16-bit)") +DEFINE_DEVICE_TYPE(ATMEL_29C010, atmel_29c010_device, "atmel_29c010", "Atmel 29C010 Flash") +DEFINE_DEVICE_TYPE(AMD_29F010, amd_29f010_device, "amd_29f010", "AMD 29F010 Flash") +DEFINE_DEVICE_TYPE(AMD_29F040, amd_29f040_device, "amd_29f040", "AMD 29F040 Flash") +DEFINE_DEVICE_TYPE(AMD_29F080, amd_29f080_device, "amd_29f080", "AMD 29F080 Flash") +DEFINE_DEVICE_TYPE(AMD_29F400T, amd_29f400t_device, "amd_29f400t", "AMD 29F400T Flash") +DEFINE_DEVICE_TYPE(AMD_29F800T, amd_29f800t_device, "amd_29f800t", "AMD 29F800T Flash") +DEFINE_DEVICE_TYPE(AMD_29LV200T, amd_29lv200t_device, "amd_29lv200t", "AMD 29LV200T Flash") +DEFINE_DEVICE_TYPE(FUJITSU_29F160T, fujitsu_29f160t_device, "fujitsu_29f160t", "Fujitsu 29F160T Flash") +DEFINE_DEVICE_TYPE(FUJITSU_29F016A, fujitsu_29f016a_device, "fujitsu_29f016a", "Fujitsu 29F016A Flash") +DEFINE_DEVICE_TYPE(FUJITSU_29DL16X, fujitsu_29dl16x_device, "fujitsu_29dl16x", "Fujitsu 29DL16X Flash") +DEFINE_DEVICE_TYPE(INTEL_E28F400B, intel_e28f400b_device, "intel_e28f400b", "Intel E28F400B Flash") +DEFINE_DEVICE_TYPE(MACRONIX_29L001MC, macronix_29l001mc_device, "macronix_29l001mc", "Macronix 29L001MC Flash") +DEFINE_DEVICE_TYPE(MACRONIX_29LV160TMC, macronix_29lv160tmc_device, "macronix_29lv160tmc", "Macronix 29LV160TMC Flash") +DEFINE_DEVICE_TYPE(TMS_29F040, tms_29f040_device, "tms_29f040", "Texas Instruments 29F040 Flash") + +DEFINE_DEVICE_TYPE(PANASONIC_MN63F805MNP, panasonic_mn63f805mnp_device, "panasonic_mn63f805mnp", "Panasonic MN63F805MNP Flash") +DEFINE_DEVICE_TYPE(SANYO_LE26FV10N1TS, sanyo_le26fv10n1ts_device, "sanyo_le26fv10n1ts", "Sanyo LE26FV10N1TS Flash") +DEFINE_DEVICE_TYPE(SST_28SF040, sst_28sf040_device, "sst_28sf040", "SST 28SF040 Flash") +DEFINE_DEVICE_TYPE(SST_39VF020, sst_39vf020_device, "sst_39vf020", "SST 39VF020 Flash") + +DEFINE_DEVICE_TYPE(SHARP_LH28F400, sharp_lh28f400_device, "sharp_lh28f400", "Sharp LH28F400 Flash") +DEFINE_DEVICE_TYPE(INTEL_E28F008SA, intel_e28f008sa_device, "intel_e28f008sa", "Intel E28F008SA Flash") +DEFINE_DEVICE_TYPE(INTEL_TE28F160, intel_te28f160_device, "intel_te28f160", "Intel TE28F160 Flash") +DEFINE_DEVICE_TYPE(INTEL_TE28F320, intel_te28f320_device, "intel_te28f320", "Intel TE28F320 Flash") +DEFINE_DEVICE_TYPE(SHARP_UNK128MBIT, sharp_unk128mbit_device, "sharp_unk128mbit", "Sharp Unknown 128Mbit Flash") +DEFINE_DEVICE_TYPE(INTEL_28F320J3D, intel_28f320j3d_device, "intel_28f320j3d", "Intel 28F320J3D Flash") +DEFINE_DEVICE_TYPE(INTEL_28F320J5, intel_28f320j5_device, "intel_28f320j5", "Intel 28F320J5 Flash") + +DEFINE_DEVICE_TYPE(SST_39VF400A, sst_39vf400a_device, "atmel_49f4096", "Atmel AT49F4096 Flash") + +DEFINE_DEVICE_TYPE(ATMEL_49F4096, atmel_49f4096_device, "sst_39vf400a", "SST 39VF400A Flash") //************************************************************************** @@ -122,8 +122,8 @@ const device_type ATMEL_49F4096 = device_creator; // intelfsh_device - constructor //------------------------------------------------- -intelfsh_device::intelfsh_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, uint32_t variant, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), +intelfsh_device::intelfsh_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint32_t variant) + : device_t(mconfig, type, tag, owner, clock), device_nvram_interface(mconfig, *this), m_region(*this, DEVICE_SELF), m_type(variant), @@ -341,104 +341,104 @@ intelfsh_device::intelfsh_device(const machine_config &mconfig, device_type type break; } -intelfsh8_device::intelfsh8_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, uint32_t variant, const char *shortname, const char *source) - : intelfsh_device(mconfig, type, name, tag, owner, clock, variant, shortname, source) { } +intelfsh8_device::intelfsh8_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint32_t variant) + : intelfsh_device(mconfig, type, tag, owner, clock, variant) { } -intelfsh16_device::intelfsh16_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, uint32_t variant, const char *shortname, const char *source) - : intelfsh_device(mconfig, type, name, tag, owner, clock, variant, shortname, source) { } +intelfsh16_device::intelfsh16_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint32_t variant) + : intelfsh_device(mconfig, type, tag, owner, clock, variant) { } intel_28f016s5_device::intel_28f016s5_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : intelfsh8_device(mconfig, INTEL_28F016S5, "Intel 28F016S5 Flash", tag, owner, clock, FLASH_INTEL_28F016S5, "intel_28f016s5", __FILE__) { } + : intelfsh8_device(mconfig, INTEL_28F016S5, tag, owner, clock, FLASH_INTEL_28F016S5) { } fujitsu_29f160t_device::fujitsu_29f160t_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : intelfsh8_device(mconfig, FUJITSU_29F160T, "Fujitsu 29F160 Flash", tag, owner, clock, FLASH_FUJITSU_29F160T, "fujitsu_29f160t", __FILE__) { } + : intelfsh8_device(mconfig, FUJITSU_29F160T, tag, owner, clock, FLASH_FUJITSU_29F160T) { } fujitsu_29f016a_device::fujitsu_29f016a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : intelfsh8_device(mconfig, FUJITSU_29F016A, "Fujitsu 29F016A Flash", tag, owner, clock, FLASH_FUJITSU_29F016A, "fujitsu_29f016a", __FILE__) { } + : intelfsh8_device(mconfig, FUJITSU_29F016A, tag, owner, clock, FLASH_FUJITSU_29F016A) { } fujitsu_29dl16x_device::fujitsu_29dl16x_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : intelfsh8_device(mconfig, FUJITSU_29DL16X, "Fujitsu 29DL16X Flash", tag, owner, clock, FLASH_FUJITSU_29DL16X, "fujitsu_29dl16x", __FILE__) { } + : intelfsh8_device(mconfig, FUJITSU_29DL16X, tag, owner, clock, FLASH_FUJITSU_29DL16X) { } sharp_lh28f016s_device::sharp_lh28f016s_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : intelfsh8_device(mconfig, SHARP_LH28F016S, "Sharp LH28F016S Flash", tag, owner, clock, FLASH_SHARP_LH28F016S, "sharp_lh28f016s", __FILE__) { } + : intelfsh8_device(mconfig, SHARP_LH28F016S, tag, owner, clock, FLASH_SHARP_LH28F016S) { } sharp_lh28f016s_16bit_device::sharp_lh28f016s_16bit_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : intelfsh16_device(mconfig, SHARP_LH28F016S_16BIT, "Sharp LH28F016S Flash (16-bit)", tag, owner, clock, FLASH_SHARP_LH28F016S_16BIT, "sharp_lh28f016s_16bit", __FILE__) { } + : intelfsh16_device(mconfig, SHARP_LH28F016S_16BIT, tag, owner, clock, FLASH_SHARP_LH28F016S_16BIT) { } atmel_29c010_device::atmel_29c010_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : intelfsh8_device(mconfig, ATMEL_29C010, "Atmel 29C010 Flash", tag, owner, clock, FLASH_ATMEL_29C010, "atmel_29c010", __FILE__) { } + : intelfsh8_device(mconfig, ATMEL_29C010, tag, owner, clock, FLASH_ATMEL_29C010) { } atmel_49f4096_device::atmel_49f4096_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : intelfsh16_device(mconfig, ATMEL_49F4096, "Atmel AT49F4096 Flash", tag, owner, clock, FLASH_ATMEL_49F4096, "atmel_49f4096", __FILE__) { } + : intelfsh16_device(mconfig, ATMEL_49F4096, tag, owner, clock, FLASH_ATMEL_49F4096) { } amd_29f010_device::amd_29f010_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : intelfsh8_device(mconfig, AMD_29F010, "AMD 29F010 Flash", tag, owner, clock, FLASH_AMD_29F010, "amd_29f010", __FILE__) { } + : intelfsh8_device(mconfig, AMD_29F010, tag, owner, clock, FLASH_AMD_29F010) { } amd_29f040_device::amd_29f040_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : intelfsh8_device(mconfig, AMD_29F040, "AMD 29F040 Flash", tag, owner, clock, FLASH_AMD_29F040, "amd_29f040", __FILE__) { } + : intelfsh8_device(mconfig, AMD_29F040, tag, owner, clock, FLASH_AMD_29F040) { } amd_29f080_device::amd_29f080_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : intelfsh8_device(mconfig, AMD_29F080, "AMD 29F080 Flash", tag, owner, clock, FLASH_AMD_29F080, "amd_29f080", __FILE__) { } + : intelfsh8_device(mconfig, AMD_29F080, tag, owner, clock, FLASH_AMD_29F080) { } amd_29f400t_device::amd_29f400t_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : intelfsh8_device(mconfig, AMD_29F400T, "AMD 29F400 Flash", tag, owner, clock, FLASH_AMD_29F400T, "amd_29f400t", __FILE__) { } + : intelfsh8_device(mconfig, AMD_29F400T, tag, owner, clock, FLASH_AMD_29F400T) { } amd_29f800t_device::amd_29f800t_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : intelfsh8_device(mconfig, AMD_29F800T, "AMD 29F800 Flash", tag, owner, clock, FLASH_AMD_29F800T, "amd_29f800t", __FILE__) { } + : intelfsh8_device(mconfig, AMD_29F800T, tag, owner, clock, FLASH_AMD_29F800T) { } amd_29lv200t_device::amd_29lv200t_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : intelfsh8_device(mconfig, AMD_29LV200T, "AMD 29LV200T Flash", tag, owner, clock, FLASH_AMD_29LV200T, "amd_29lv200t", __FILE__) { } + : intelfsh8_device(mconfig, AMD_29LV200T, tag, owner, clock, FLASH_AMD_29LV200T) { } intel_e28f008sa_device::intel_e28f008sa_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : intelfsh8_device(mconfig, INTEL_E28F008SA, "Intel E28F008SA Flash", tag, owner, clock, FLASH_INTEL_E28F008SA, "intel_e28f008sa", __FILE__) { } + : intelfsh8_device(mconfig, INTEL_E28F008SA, tag, owner, clock, FLASH_INTEL_E28F008SA) { } macronix_29l001mc_device::macronix_29l001mc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : intelfsh8_device(mconfig, MACRONIX_29L001MC, "Macronix 29L001MC Flash", tag, owner, clock, FLASH_MACRONIX_29L001MC, "macronix_29l001mc", __FILE__) { } + : intelfsh8_device(mconfig, MACRONIX_29L001MC, tag, owner, clock, FLASH_MACRONIX_29L001MC) { } macronix_29lv160tmc_device::macronix_29lv160tmc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : intelfsh8_device(mconfig, MACRONIX_29LV160TMC, "Macronix 29LV160TMC Flash", tag, owner, clock, FLASH_MACRONIX_29LV160TMC, "macronix_29lv160tmc", __FILE__) { } + : intelfsh8_device(mconfig, MACRONIX_29LV160TMC, tag, owner, clock, FLASH_MACRONIX_29LV160TMC) { } panasonic_mn63f805mnp_device::panasonic_mn63f805mnp_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : intelfsh8_device(mconfig, PANASONIC_MN63F805MNP, "Panasonic MN63F805MNP Flash", tag, owner, clock, FLASH_PANASONIC_MN63F805MNP, "panasonic_mn63f805mnp", __FILE__) { } + : intelfsh8_device(mconfig, PANASONIC_MN63F805MNP, tag, owner, clock, FLASH_PANASONIC_MN63F805MNP) { } sanyo_le26fv10n1ts_device::sanyo_le26fv10n1ts_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : intelfsh8_device(mconfig, SANYO_LE26FV10N1TS, "Sanyo LE26FV10N1TS Flash", tag, owner, clock, FLASH_SANYO_LE26FV10N1TS, "sanyo_le26fv10n1ts", __FILE__) { } + : intelfsh8_device(mconfig, SANYO_LE26FV10N1TS, tag, owner, clock, FLASH_SANYO_LE26FV10N1TS) { } sst_28sf040_device::sst_28sf040_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : intelfsh8_device(mconfig, SST_28SF040, "SST 28SF040 Flash", tag, owner, clock, FLASH_SST_28SF040, "sst_28sf040", __FILE__) { } + : intelfsh8_device(mconfig, SST_28SF040, tag, owner, clock, FLASH_SST_28SF040) { } sst_39vf020_device::sst_39vf020_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : intelfsh8_device(mconfig, SST_39VF020, "SST 39VF020 Flash", tag, owner, clock, FLASH_SST_39VF020, "sst_39vf020", __FILE__) { } + : intelfsh8_device(mconfig, SST_39VF020, tag, owner, clock, FLASH_SST_39VF020) { } sharp_lh28f400_device::sharp_lh28f400_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : intelfsh16_device(mconfig, SHARP_LH28F400, "Sharp LH28F400 Flash", tag, owner, clock, FLASH_SHARP_LH28F400, "sharp_lh28f400", __FILE__) { } + : intelfsh16_device(mconfig, SHARP_LH28F400, tag, owner, clock, FLASH_SHARP_LH28F400) { } intel_te28f160_device::intel_te28f160_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : intelfsh16_device(mconfig, INTEL_TE28F160, "Intel TE28F160 Flash", tag, owner, clock, FLASH_INTEL_TE28F160, "intel_te28f160", __FILE__) { } + : intelfsh16_device(mconfig, INTEL_TE28F160, tag, owner, clock, FLASH_INTEL_TE28F160) { } intel_te28f320_device::intel_te28f320_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : intelfsh16_device(mconfig, INTEL_TE28F320, "Intel TE28F320 Flash", tag, owner, clock, FLASH_INTEL_TE28F320, "intel_te28f320", __FILE__) { } + : intelfsh16_device(mconfig, INTEL_TE28F320, tag, owner, clock, FLASH_INTEL_TE28F320) { } intel_e28f400b_device::intel_e28f400b_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : intelfsh16_device(mconfig, INTEL_E28F400B, "Intel E28F400B Flash", tag, owner, clock, FLASH_INTEL_E28F400B, "intel_e28f400b", __FILE__) { } + : intelfsh16_device(mconfig, INTEL_E28F400B, tag, owner, clock, FLASH_INTEL_E28F400B) { } sharp_unk128mbit_device::sharp_unk128mbit_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : intelfsh16_device(mconfig, SHARP_UNK128MBIT, "Sharp Unknown 128Mbit Flash", tag, owner, clock, FLASH_SHARP_UNK128MBIT, "sharp_unk128mbit", __FILE__) { } + : intelfsh16_device(mconfig, SHARP_UNK128MBIT, tag, owner, clock, FLASH_SHARP_UNK128MBIT) { } intel_28f320j3d_device::intel_28f320j3d_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : intelfsh16_device(mconfig, INTEL_28F320J3D, "Intel 28F320J3D Flash", tag, owner, clock, FLASH_INTEL_28F320J3D, "intel_28f320j3d", __FILE__) { } + : intelfsh16_device(mconfig, INTEL_28F320J3D, tag, owner, clock, FLASH_INTEL_28F320J3D) { } intel_28f320j5_device::intel_28f320j5_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : intelfsh16_device(mconfig, INTEL_28F320J5, "Intel 28F320J3D_a Flash", tag, owner, clock, FLASH_INTEL_28F320J5, "intel_28f320j5", __FILE__) { } + : intelfsh16_device(mconfig, INTEL_28F320J5, tag, owner, clock, FLASH_INTEL_28F320J5) { } sst_39vf400a_device::sst_39vf400a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : intelfsh16_device(mconfig, SST_39VF400A, "SST 39VF400A Flash", tag, owner, clock, FLASH_SST_39VF400A, "sst_39vf400a", __FILE__) { } + : intelfsh16_device(mconfig, SST_39VF400A, tag, owner, clock, FLASH_SST_39VF400A) { } tms_29f040_device::tms_29f040_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : intelfsh8_device(mconfig, TMS_29F040, "Texas Instruments 29F040 Flash", tag, owner, clock, FLASH_TMS_29F040, "tms_29f040", __FILE__) { } + : intelfsh8_device(mconfig, TMS_29F040, tag, owner, clock, FLASH_TMS_29F040) { } //------------------------------------------------- // device_start - device-specific startup diff --git a/src/devices/machine/intelfsh.h b/src/devices/machine/intelfsh.h index ee47240b27a..f4e143a8450 100644 --- a/src/devices/machine/intelfsh.h +++ b/src/devices/machine/intelfsh.h @@ -4,8 +4,10 @@ Intel Flash ROM emulation */ -#ifndef _INTELFLASH_H_ -#define _INTELFLASH_H_ +#ifndef MAME_MACHINE_INTELFSH_H +#define MAME_MACHINE_INTELFSH_H + +#pragma once //************************************************************************** @@ -156,9 +158,8 @@ public: protected: // construction/destruction - intelfsh_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, uint32_t variant, const char *shortname, const char *source); + intelfsh_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint32_t variant); -protected: // device-level overrides virtual void device_start() override; virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; @@ -202,10 +203,6 @@ protected: class intelfsh8_device : public intelfsh_device { -protected: - // construction/destruction - intelfsh8_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, uint32_t variant, const char *shortname, const char *source); - public: // public interface uint8_t read(offs_t offset) { return read_full(offset); } @@ -215,6 +212,10 @@ public: uint8_t read_raw(offs_t offset) { return m_data[offset]; } void write_raw(offs_t offset, uint8_t data) { m_data[offset] = data; } + +protected: + // construction/destruction + intelfsh8_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint32_t variant); }; @@ -222,10 +223,6 @@ public: class intelfsh16_device : public intelfsh_device { -protected: - // construction/destruction - intelfsh16_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, uint32_t variant, const char *shortname, const char *source); - public: // public interface uint16_t read(offs_t offset) { return read_full(offset); } @@ -235,6 +232,10 @@ public: uint16_t read_raw(offs_t offset) { return m_data[offset*2] | (m_data[offset*2+1] << 8); } void write_raw(offs_t offset, uint16_t data) { m_data[offset*2] = data; m_data[offset*2+1] = data >> 8; } + +protected: + // construction/destruction + intelfsh16_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint32_t variant); }; @@ -424,37 +425,37 @@ public: // device type definition -extern const device_type INTEL_28F016S5; -extern const device_type SHARP_LH28F016S; -extern const device_type SHARP_LH28F016S_16BIT; -extern const device_type ATMEL_29C010; -extern const device_type AMD_29F010; -extern const device_type AMD_29F040; -extern const device_type AMD_29F080; -extern const device_type AMD_29F400T; -extern const device_type AMD_29F800T; -extern const device_type AMD_29LV200T; -extern const device_type FUJITSU_29F160T; -extern const device_type FUJITSU_29F016A; -extern const device_type FUJITSU_29DL16X; -extern const device_type INTEL_E28F400B; -extern const device_type MACRONIX_29L001MC; -extern const device_type MACRONIX_29LV160TMC; -extern const device_type TMS_29F040; - -extern const device_type PANASONIC_MN63F805MNP; -extern const device_type SANYO_LE26FV10N1TS; -extern const device_type SST_28SF040; -extern const device_type SST_39VF020; - -extern const device_type SHARP_LH28F400; -extern const device_type INTEL_E28F008SA; -extern const device_type INTEL_TE28F160; -extern const device_type INTEL_TE28F320; -extern const device_type SHARP_UNK128MBIT; -extern const device_type INTEL_28F320J3D; -extern const device_type INTEL_28F320J5; -extern const device_type SST_39VF400A; -extern const device_type ATMEL_49F4096; - -#endif +DECLARE_DEVICE_TYPE(INTEL_28F016S5, intel_28f016s5_device) +DECLARE_DEVICE_TYPE(SHARP_LH28F016S, sharp_lh28f016s_device) +DECLARE_DEVICE_TYPE(SHARP_LH28F016S_16BIT, sharp_lh28f016s_16bit_device) +DECLARE_DEVICE_TYPE(ATMEL_29C010, atmel_29c010_device) +DECLARE_DEVICE_TYPE(AMD_29F010, amd_29f010_device) +DECLARE_DEVICE_TYPE(AMD_29F040, amd_29f040_device) +DECLARE_DEVICE_TYPE(AMD_29F080, amd_29f080_device) +DECLARE_DEVICE_TYPE(AMD_29F400T, amd_29f400t_device) +DECLARE_DEVICE_TYPE(AMD_29F800T, amd_29f800t_device) +DECLARE_DEVICE_TYPE(AMD_29LV200T, amd_29lv200t_device) +DECLARE_DEVICE_TYPE(FUJITSU_29F160T, fujitsu_29f160t_device) +DECLARE_DEVICE_TYPE(FUJITSU_29F016A, fujitsu_29f016a_device) +DECLARE_DEVICE_TYPE(FUJITSU_29DL16X, fujitsu_29dl16x_device) +DECLARE_DEVICE_TYPE(INTEL_E28F400B, intel_e28f400b_device) +DECLARE_DEVICE_TYPE(MACRONIX_29L001MC, macronix_29l001mc) +DECLARE_DEVICE_TYPE(MACRONIX_29LV160TMC, macronix_29lv160tmc_device) +DECLARE_DEVICE_TYPE(TMS_29F040, tms_29f040_device) + +DECLARE_DEVICE_TYPE(PANASONIC_MN63F805MNP, panasonic_mn63f805mnp_device) +DECLARE_DEVICE_TYPE(SANYO_LE26FV10N1TS, sanyo_le26fv10n1ts_device) +DECLARE_DEVICE_TYPE(SST_28SF040, sst_28sf040_device) +DECLARE_DEVICE_TYPE(SST_39VF020, sst_39vf020_device) + +DECLARE_DEVICE_TYPE(SHARP_LH28F400, sharp_lh28f400_device) +DECLARE_DEVICE_TYPE(INTEL_E28F008SA, intel_e28f008sa_device) +DECLARE_DEVICE_TYPE(INTEL_TE28F160, intel_te28f160_device) +DECLARE_DEVICE_TYPE(INTEL_TE28F320, intel_te28f320_device) +DECLARE_DEVICE_TYPE(SHARP_UNK128MBIT, sharp_unk128mbit_device) +DECLARE_DEVICE_TYPE(INTEL_28F320J3D, intel_28f320j3d_device) +DECLARE_DEVICE_TYPE(INTEL_28F320J5, intel_28f320j5_device) +DECLARE_DEVICE_TYPE(SST_39VF400A, sst_39vf400a_device) +DECLARE_DEVICE_TYPE(ATMEL_49F4096, atmel_49f4096_device) + +#endif // MAME_MACHINE_INTELFSH_H diff --git a/src/devices/machine/jvsdev.cpp b/src/devices/machine/jvsdev.cpp index 4aed4127180..f248e40d71d 100644 --- a/src/devices/machine/jvsdev.cpp +++ b/src/devices/machine/jvsdev.cpp @@ -10,8 +10,8 @@ void jvs_device::static_set_jvs_host_tag(device_t &device, const char *jvs_host_ jvsdev.jvs_host_tag = jvs_host_tag; } -jvs_device::jvs_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), jvs_outputs(0), jvs_address(0), jvs_reset_counter(0) +jvs_device::jvs_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock), jvs_outputs(0), jvs_address(0), jvs_reset_counter(0) { jvs_host_tag = nullptr; next_device = nullptr; diff --git a/src/devices/machine/jvsdev.h b/src/devices/machine/jvsdev.h index bb5f7a92f7b..6fc47cf739a 100644 --- a/src/devices/machine/jvsdev.h +++ b/src/devices/machine/jvsdev.h @@ -1,18 +1,20 @@ // license:BSD-3-Clause // copyright-holders:Olivier Galibert -#ifndef __JVSDEV_H__ -#define __JVSDEV_H__ +#ifndef MAME_MACHINE_JVSDEV_H +#define MAME_MACHINE_JVSDEV_H + +#pragma once #define MCFG_JVS_DEVICE_ADD(_tag, _type, _host) \ MCFG_DEVICE_ADD(_tag, _type, 0) \ jvs_device::static_set_jvs_host_tag(*device, _host); + class jvs_host; class jvs_device : public device_t { public: - jvs_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); static void static_set_jvs_host_tag(device_t &device, const char *jvs_host_tag); void chain(jvs_device *dev); @@ -24,6 +26,8 @@ protected: void handle_output(ioport_port *port, uint8_t id, uint8_t val); + jvs_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -50,4 +54,4 @@ private: int handle_message(const uint8_t *send_buffer, uint32_t send_size, uint8_t *&recv_buffer); }; -#endif +#endif // MAME_MACHINE_JVSDEV_H diff --git a/src/devices/machine/jvshost.cpp b/src/devices/machine/jvshost.cpp index 96cf564c646..1f720b4fa00 100644 --- a/src/devices/machine/jvshost.cpp +++ b/src/devices/machine/jvshost.cpp @@ -29,8 +29,8 @@ void jvs_host::device_reset() memset(recv_buffer, 0, sizeof(recv_buffer)); } -jvs_host::jvs_host(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), send_size(0), recv_size(0), recv_is_encoded(false) +jvs_host::jvs_host(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock), send_size(0), recv_size(0), recv_is_encoded(false) { first_device = nullptr; } diff --git a/src/devices/machine/jvshost.h b/src/devices/machine/jvshost.h index b8a0c049ddd..c0f8429a1a3 100644 --- a/src/devices/machine/jvshost.h +++ b/src/devices/machine/jvshost.h @@ -1,23 +1,24 @@ // license:BSD-3-Clause // copyright-holders:Olivier Galibert -#ifndef __JVSHOST_H__ -#define __JVSHOST_H__ +#ifndef MAME_MACHINE_JVSHOST_H +#define MAME_MACHINE_JVSHOST_H + +#pragma once class jvs_device; class jvs_host : public device_t { public: - jvs_host(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - void add_device(jvs_device *dev); protected: + jvs_host(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; - void push(uint8_t val); void commit_raw(); void commit_encoded(); @@ -43,4 +44,4 @@ private: void decode(uint8_t *buffer, uint32_t &size); }; -#endif +#endif // MAME_MACHINE_JVSHOST_H diff --git a/src/devices/machine/k033906.cpp b/src/devices/machine/k033906.cpp index 6e0fc522895..4942e7339f1 100644 --- a/src/devices/machine/k033906.cpp +++ b/src/devices/machine/k033906.cpp @@ -15,14 +15,14 @@ //************************************************************************** // device type definition -const device_type K033906 = device_creator; +DEFINE_DEVICE_TYPE(K033906, k033906_device, "k033906", "K033906 PCI bridge") //------------------------------------------------- // k033906_device - constructor //------------------------------------------------- k033906_device::k033906_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, K033906, "K033906 PCI bridge", tag, owner, clock, "k033906", __FILE__) + : device_t(mconfig, K033906, tag, owner, clock) , m_reg_set(0) , m_voodoo(*this, finder_base::DUMMY_TAG) { diff --git a/src/devices/machine/k033906.h b/src/devices/machine/k033906.h index 2b13ad77143..c8dea1471b4 100644 --- a/src/devices/machine/k033906.h +++ b/src/devices/machine/k033906.h @@ -6,10 +6,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_MACHINE_K033906_H +#define MAME_MACHINE_K033906_H -#ifndef __K033906_H__ -#define __K033906_H__ +#pragma once #include "video/voodoo.h" @@ -48,7 +48,6 @@ protected: virtual void device_clock_changed() override { } private: - uint32_t reg_r(int reg); void reg_w(int reg, uint32_t data); @@ -64,6 +63,6 @@ private: // device type definition -extern const device_type K033906; +DECLARE_DEVICE_TYPE(K033906, k033906_device) -#endif /* __K033906_H__ */ +#endif // MAME_MACHINE_K033906_H diff --git a/src/devices/machine/k053252.cpp b/src/devices/machine/k053252.cpp index 34bfd769c98..f4ef1d3280d 100644 --- a/src/devices/machine/k053252.cpp +++ b/src/devices/machine/k053252.cpp @@ -63,10 +63,10 @@ TODO: #include "k053252.h" -const device_type K053252 = device_creator; +DEFINE_DEVICE_TYPE(K053252, k053252_device, "k053252", "K053252 Timing/Interrupt Controller") k053252_device::k053252_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, K053252, "K053252 Timing/Interrupt", tag, owner, clock, "k053252", __FILE__) + : device_t(mconfig, K053252, tag, owner, clock) , device_video_interface(mconfig, *this) , m_int1_en_cb(*this) , m_int2_en_cb(*this) diff --git a/src/devices/machine/k053252.h b/src/devices/machine/k053252.h index fe60980b395..de2426114f6 100644 --- a/src/devices/machine/k053252.h +++ b/src/devices/machine/k053252.h @@ -2,8 +2,8 @@ // copyright-holders:Angelo Salese /** Konami 053252 **/ /* CRT and interrupt control unit */ -#ifndef MAME_DEVICES_MACHINE_K053252_H -#define MAME_DEVICES_MACHINE_K053252_H +#ifndef MAME_MACHINE_K053252_H +#define MAME_MACHINE_K053252_H #pragma once @@ -49,10 +49,8 @@ public: void res_change(); - static void static_set_slave_screen(device_t &device, const char *tag); - protected: // device-level overrides virtual void device_start() override; @@ -76,10 +74,8 @@ protected: int m_offsy; optional_device m_slave_screen; - }; -extern const device_type K053252; - +DECLARE_DEVICE_TYPE(K053252, k053252_device) -#endif // MAME_DEVICES_MACHINE_K053252_H +#endif // MAME_MACHINE_K053252_H diff --git a/src/devices/machine/k054321.cpp b/src/devices/machine/k054321.cpp index 66b30b03d17..d5a2bc58a7a 100644 --- a/src/devices/machine/k054321.cpp +++ b/src/devices/machine/k054321.cpp @@ -35,7 +35,7 @@ #include -const device_type K054321 = device_creator; +DEFINE_DEVICE_TYPE(K054321, k054321_device, "k054321", "K054321 Maincpu-Soundcpu interface") DEVICE_ADDRESS_MAP_START(main_map, 8, k054321_device) AM_RANGE(0x0, 0x0) AM_WRITE(active_w) @@ -55,7 +55,7 @@ DEVICE_ADDRESS_MAP_START(sound_map, 8, k054321_device) ADDRESS_MAP_END k054321_device::k054321_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, K054321, "K053421 Maincpu-Soundcpu interface", tag, owner, clock, "k054321", __FILE__), + : device_t(mconfig, K054321, tag, owner, clock), m_left(*this, finder_base::DUMMY_TAG), m_right(*this, finder_base::DUMMY_TAG) { diff --git a/src/devices/machine/k054321.h b/src/devices/machine/k054321.h index aca3974e0ae..04c377781e1 100644 --- a/src/devices/machine/k054321.h +++ b/src/devices/machine/k054321.h @@ -1,10 +1,10 @@ // license:BSD-3-Clause // copyright-holders:Olivier Galibert -#pragma once +#ifndef MAME_MACHINE_K054321_H +#define MAME_MACHINE_K054321_H -#ifndef MAME_K054321_H -#define MAME_K054321_H +#pragma once #define MCFG_K054321_ADD(_tag, _left, _right) \ MCFG_DEVICE_ADD(_tag, K054321, 0) \ @@ -49,6 +49,6 @@ private: void propagate_volume(); }; -extern const device_type K054321; +DECLARE_DEVICE_TYPE(K054321, k054321_device) -#endif +#endif // MAME_MACHINE_K054321_H diff --git a/src/devices/machine/k056230.cpp b/src/devices/machine/k056230.cpp index 11d47320f2d..dfbdbc41d69 100644 --- a/src/devices/machine/k056230.cpp +++ b/src/devices/machine/k056230.cpp @@ -15,14 +15,14 @@ //************************************************************************** // device type definition -const device_type K056230 = device_creator; +DEFINE_DEVICE_TYPE(K056230, k056230_device, "k056230", "K056230 LANC") //------------------------------------------------- // k056230_device - constructor //------------------------------------------------- k056230_device::k056230_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, K056230, "K056230 LANC", tag, owner, clock, "k056230", __FILE__) + : device_t(mconfig, K056230, tag, owner, clock) , m_is_thunderh(0) , m_cpu(*this, finder_base::DUMMY_TAG) { diff --git a/src/devices/machine/k056230.h b/src/devices/machine/k056230.h index b118c5abaae..9a6e4bbd061 100644 --- a/src/devices/machine/k056230.h +++ b/src/devices/machine/k056230.h @@ -6,10 +6,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_MACHINE_K056230_H +#define MAME_MACHINE_K056230_H -#ifndef __K056230_H__ -#define __K056230_H__ +#pragma once @@ -31,7 +31,7 @@ // ======================> k056230_device -class k056230_device : public device_t +class k056230_device : public device_t { public: // construction/destruction @@ -65,6 +65,6 @@ private: // device type definition -extern const device_type K056230; +DECLARE_DEVICE_TYPE(K056230, k056230_device) -#endif /* __K056230_H__ */ +#endif // MAME_MACHINE_K056230_H diff --git a/src/devices/machine/kb3600.cpp b/src/devices/machine/kb3600.cpp index a3ade5080de..5400d8ac1a8 100644 --- a/src/devices/machine/kb3600.cpp +++ b/src/devices/machine/kb3600.cpp @@ -18,13 +18,8 @@ #include "emu.h" #include "kb3600.h" - - -//************************************************************************** -// MACROS / CONSTANTS -//************************************************************************** - -#define LOG 0 +//#define VERBOSE 1 +#include "logmacro.h" @@ -33,7 +28,7 @@ //************************************************************************** // devices -const device_type AY3600 = device_creator; +DEFINE_DEVICE_TYPE(AY3600, ay3600_device, "ay3600", "AY-5-3600 Keyboard Encoder") //************************************************************************** // LIVE DEVICE @@ -44,7 +39,7 @@ const device_type AY3600 = device_creator; //------------------------------------------------- ay3600_device::ay3600_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, AY3600, "AY-5-3600", tag, owner, clock, "ay3600", __FILE__), + : device_t(mconfig, AY3600, tag, owner, clock), m_read_x0(*this), m_read_x1(*this), m_read_x2(*this), diff --git a/src/devices/machine/kb3600.h b/src/devices/machine/kb3600.h index 01033b9dfa7..50a4095b516 100644 --- a/src/devices/machine/kb3600.h +++ b/src/devices/machine/kb3600.h @@ -51,10 +51,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_MACHINE_KB3600_H +#define MAME_MACHINE_KB3600_H -#ifndef __AY3600__ -#define __AY3600__ +#pragma once @@ -96,7 +96,7 @@ // ======================> ay3600_device -class ay3600_device : public device_t +class ay3600_device : public device_t { public: // construction/destruction @@ -105,23 +105,19 @@ public: // public interface uint16_t b_r(); - template static devcb_base &set_x0_cb(device_t &device, _Object rd) { return downcast(device).m_read_x0.set_callback(rd); } - template static devcb_base &set_x1_cb(device_t &device, _Object rd) { return downcast(device).m_read_x1.set_callback(rd); } - template static devcb_base &set_x2_cb(device_t &device, _Object rd) { return downcast(device).m_read_x2.set_callback(rd); } - template static devcb_base &set_x3_cb(device_t &device, _Object rd) { return downcast(device).m_read_x3.set_callback(rd); } - template static devcb_base &set_x4_cb(device_t &device, _Object rd) { return downcast(device).m_read_x4.set_callback(rd); } - template static devcb_base &set_x5_cb(device_t &device, _Object rd) { return downcast(device).m_read_x5.set_callback(rd); } - template static devcb_base &set_x6_cb(device_t &device, _Object rd) { return downcast(device).m_read_x6.set_callback(rd); } - template static devcb_base &set_x7_cb(device_t &device, _Object rd) { return downcast(device).m_read_x7.set_callback(rd); } - template static devcb_base &set_x8_cb(device_t &device, _Object rd) { return downcast(device).m_read_x8.set_callback(rd); } - template static devcb_base &set_shift_cb(device_t &device, _Object rd) { return downcast(device).m_read_shift.set_callback(rd); } - template static devcb_base &set_control_cb(device_t &device, _Object rd) { return downcast(device).m_read_control.set_callback(rd); } - template static devcb_base &set_data_ready_cb(device_t &device, _Object wr) { return downcast(device).m_write_data_ready.set_callback(wr); } - template static devcb_base &set_ako_cb(device_t &device, _Object wr) { return downcast(device).m_write_ako.set_callback(wr); } - - devcb_read16 m_read_x0, m_read_x1, m_read_x2, m_read_x3, m_read_x4, m_read_x5, m_read_x6, m_read_x7, m_read_x8; - devcb_read_line m_read_shift, m_read_control; - devcb_write_line m_write_data_ready, m_write_ako; + template static devcb_base &set_x0_cb(device_t &device, Object &&rd) { return downcast(device).m_read_x0.set_callback(std::forward(rd)); } + template static devcb_base &set_x1_cb(device_t &device, Object &&rd) { return downcast(device).m_read_x1.set_callback(std::forward(rd)); } + template static devcb_base &set_x2_cb(device_t &device, Object &&rd) { return downcast(device).m_read_x2.set_callback(std::forward(rd)); } + template static devcb_base &set_x3_cb(device_t &device, Object &&rd) { return downcast(device).m_read_x3.set_callback(std::forward(rd)); } + template static devcb_base &set_x4_cb(device_t &device, Object &&rd) { return downcast(device).m_read_x4.set_callback(std::forward(rd)); } + template static devcb_base &set_x5_cb(device_t &device, Object &&rd) { return downcast(device).m_read_x5.set_callback(std::forward(rd)); } + template static devcb_base &set_x6_cb(device_t &device, Object &&rd) { return downcast(device).m_read_x6.set_callback(std::forward(rd)); } + template static devcb_base &set_x7_cb(device_t &device, Object &&rd) { return downcast(device).m_read_x7.set_callback(std::forward(rd)); } + template static devcb_base &set_x8_cb(device_t &device, Object &&rd) { return downcast(device).m_read_x8.set_callback(std::forward(rd)); } + template static devcb_base &set_shift_cb(device_t &device, Object &&rd) { return downcast(device).m_read_shift.set_callback(std::forward(rd)); } + template static devcb_base &set_control_cb(device_t &device, Object &&rd) { return downcast(device).m_read_control.set_callback(std::forward(rd)); } + template static devcb_base &set_data_ready_cb(device_t &device, Object &&wr) { return downcast(device).m_write_data_ready.set_callback(std::forward(wr)); } + template static devcb_base &set_ako_cb(device_t &device, Object &&wr) { return downcast(device).m_write_ako.set_callback(std::forward(wr)); } protected: // device-level overrides @@ -129,8 +125,12 @@ protected: virtual void device_reset() override; virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + devcb_read16 m_read_x0, m_read_x1, m_read_x2, m_read_x3, m_read_x4, m_read_x5, m_read_x6, m_read_x7, m_read_x8; + devcb_read_line m_read_shift, m_read_control; + devcb_write_line m_write_data_ready, m_write_ako; + private: - static const int MAX_KEYS_DOWN = 4; + static constexpr int MAX_KEYS_DOWN = 4; int m_b; // output buffer int m_ako; // any key down @@ -143,8 +143,6 @@ private: // device type definition -extern const device_type AY3600; - - +DECLARE_DEVICE_TYPE(AY3600, ay3600_device) -#endif +#endif // MAME_MACHINE_KB3600_H diff --git a/src/devices/machine/keyboard.cpp b/src/devices/machine/keyboard.cpp index 2e9fa529424..ef45c8d5580 100644 --- a/src/devices/machine/keyboard.cpp +++ b/src/devices/machine/keyboard.cpp @@ -30,7 +30,7 @@ WRITE8_MEMBER( xxx_state::kbd_put ) namespace { -uint8_t const TRANSLATION_TABLE[][2][4][16] = { +u8 const TRANSLATION_TABLE[][2][4][16] = { { { // ANSI { '`', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '-', '=', 0x08U, 0x7fU, 0x1bU }, @@ -234,7 +234,7 @@ INPUT_PORTS_END DEVICE TYPE GLOBALS ***************************************************************************/ -device_type const GENERIC_KEYBOARD = device_creator; +DEFINE_DEVICE_TYPE(GENERIC_KEYBOARD, generic_keyboard_device, "generic_keyboard", "Generic Keyboard") @@ -245,24 +245,21 @@ device_type const GENERIC_KEYBOARD = device_creator; generic_keyboard_device::generic_keyboard_device( machine_config const &mconfig, device_type type, - char const *name, char const *tag, device_t *owner, - uint32_t clock, - char const *shortname, - char const *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source) + u32 clock) + : device_t(mconfig, type, tag, owner, clock) , device_matrix_keyboard_interface(mconfig, *this, "GENKBD_ROW0", "GENKBD_ROW1", "GENKBD_ROW2", "GENKBD_ROW3") , m_config(*this, "GENKBD_CFG") , m_modifiers(*this, "GENKBD_MOD") , m_last_modifiers(0U) - , m_keyboard_cb(*this) + , m_keyboard_cb() { } -generic_keyboard_device::generic_keyboard_device(machine_config const &mconfig, char const *tag, device_t *owner, uint32_t clock) - : generic_keyboard_device(mconfig, GENERIC_KEYBOARD, "Generic Keyboard", tag, owner, clock, "generic_keyboard", __FILE__) +generic_keyboard_device::generic_keyboard_device(machine_config const &mconfig, char const *tag, device_t *owner, u32 clock) + : generic_keyboard_device(mconfig, GENERIC_KEYBOARD, tag, owner, clock) { } @@ -275,7 +272,7 @@ ioport_constructor generic_keyboard_device::device_input_ports() const void generic_keyboard_device::device_start() { - m_keyboard_cb.resolve_safe(); + m_keyboard_cb.bind_relative_to(*owner()); save_item(NAME(m_last_modifiers)); } @@ -297,40 +294,40 @@ void generic_keyboard_device::device_timer(emu_timer &timer, device_timer_id id, } -void generic_keyboard_device::key_make(uint8_t row, uint8_t column) +void generic_keyboard_device::key_make(u8 row, u8 column) { send_translated((row << 4) | column); typematic_start(row, column, typematic_delay(), typematic_period()); } -void generic_keyboard_device::key_repeat(uint8_t row, uint8_t column) +void generic_keyboard_device::key_repeat(u8 row, u8 column) { send_translated((row << 4) | column); } -void generic_keyboard_device::send_key(uint8_t code) +void generic_keyboard_device::send_key(u8 code) { - m_keyboard_cb(offs_t(0), code); + m_keyboard_cb(code); } -bool generic_keyboard_device::translate(uint8_t code, uint8_t &translated) const +bool generic_keyboard_device::translate(u8 code, u8 &translated) const { unsigned const row((code >> 4) & 0x03U); unsigned const col((code >> 0) & 0x0fU); unsigned const layout(m_config->read() & 0x0001U); - uint16_t const modifiers(m_modifiers->read()); + u16 const modifiers(m_modifiers->read()); bool const shift(bool(modifiers & 0x02U) != (bool(modifiers & 0x04U) && CAPS_TABLE[row][col])); bool const ctrl(modifiers & 0x01U); bool const meta(modifiers & 0x08U); unsigned const map(ctrl ? 2U : shift ? 1U : 0U); - uint8_t const result(TRANSLATION_TABLE[map][layout][row][col]); - if (result == uint8_t(~0U)) + u8 const result(TRANSLATION_TABLE[map][layout][row][col]); + if (result == u8(~0U)) { return false; } @@ -342,9 +339,9 @@ bool generic_keyboard_device::translate(uint8_t code, uint8_t &translated) const } -void generic_keyboard_device::will_scan_row(uint8_t row) +void generic_keyboard_device::will_scan_row(u8 row) { - uint16_t const modifiers(m_modifiers->read()); + u16 const modifiers(m_modifiers->read()); if (modifiers != m_last_modifiers) typematic_restart(typematic_delay(), typematic_period()); @@ -352,9 +349,9 @@ void generic_keyboard_device::will_scan_row(uint8_t row) } -void generic_keyboard_device::send_translated(uint8_t code) +void generic_keyboard_device::send_translated(u8 code) { - uint8_t translated; + u8 translated; if (translate(code, translated)) send_key(translated); } diff --git a/src/devices/machine/keyboard.h b/src/devices/machine/keyboard.h index 42a2d964ad7..eab27c13edb 100644 --- a/src/devices/machine/keyboard.h +++ b/src/devices/machine/keyboard.h @@ -1,7 +1,7 @@ // license:BSD-3-Clause // copyright-holders:Vas Crabb -#ifndef MAME_DEVICES_MACHINE_KEYBOARD_H -#define MAME_DEVICES_MACHINE_KEYBOARD_H +#ifndef MAME_MACHINE_KEYBOARD_H +#define MAME_MACHINE_KEYBOARD_H #pragma once @@ -10,8 +10,11 @@ DEVICE CONFIGURATION MACROS ***************************************************************************/ +#define KEYBOARDCB_PUT(cls, fnc) generic_keyboard_device::output_delegate((&cls::fnc), (#cls "::" #fnc), DEVICE_SELF, ((cls *)nullptr)) +#define KEYBOARDCB_DEVPUT(tag, cls, fnc) generic_keyboard_device::output_delegate((&cls::fnc), (#cls "::" #fnc), (tag), ((cls *)nullptr)) + #define MCFG_GENERIC_KEYBOARD_CB(cb) \ - devcb = &generic_keyboard_device::set_keyboard_callback(*device, DEVCB_##cb); + generic_keyboard_device::set_keyboard_callback(*device, (KEYBOARDCB_##cb)); @@ -19,7 +22,7 @@ DEVICE TYPE GLOBALS ***************************************************************************/ -extern const device_type GENERIC_KEYBOARD; +DECLARE_DEVICE_TYPE(GENERIC_KEYBOARD, generic_keyboard_device) @@ -50,15 +53,15 @@ protected: void stop_processing(); void reset_key_state(); - void typematic_start(uint8_t row, uint8_t column, attotime const &delay, attotime const &interval); + void typematic_start(u8 row, u8 column, attotime const &delay, attotime const &interval); void typematic_restart(attotime const &delay, attotime const &interval); void typematic_stop(); - bool typematic_is(uint8_t row, uint8_t column) const { return (m_typematic_row == row) && (m_typematic_column == column); } + bool typematic_is(u8 row, u8 column) const { return (m_typematic_row == row) && (m_typematic_column == column); } - virtual void key_make(uint8_t row, uint8_t column) = 0; - virtual void key_repeat(uint8_t row, uint8_t column); - virtual void key_break(uint8_t row, uint8_t column); - virtual void will_scan_row(uint8_t row); + virtual void key_make(u8 row, u8 column) = 0; + virtual void key_repeat(u8 row, u8 column); + virtual void key_break(u8 row, u8 column); + virtual void will_scan_row(u8 row); bool are_all_keys_up(); @@ -75,57 +78,56 @@ private: emu_timer *m_typematic_timer; required_ioport m_key_rows[ROW_COUNT]; ioport_value m_key_states[ROW_COUNT]; - uint8_t m_next_row; - uint8_t m_processing; - uint8_t m_typematic_row; - uint8_t m_typematic_column; + u8 m_next_row; + u8 m_processing; + u8 m_typematic_row; + u8 m_typematic_column; }; class generic_keyboard_device : public device_t, protected device_matrix_keyboard_interface<4U> { public: - generic_keyboard_device( - const machine_config &mconfig, - device_type type, - char const *name, - char const *tag, - device_t *owner, - uint32_t clock, - char const *shortname, - char const *source); + typedef device_delegate output_delegate; + generic_keyboard_device( const machine_config &mconfig, const char *tag, device_t *owner, - uint32_t clock); + u32 clock); - template static devcb_base &set_keyboard_callback(device_t &device, Object object) { return downcast(device).m_keyboard_cb.set_callback(object); } + template static void set_keyboard_callback(device_t &device, Object &&cb) { downcast(device).m_keyboard_cb = std::forward(cb); } virtual ioport_constructor device_input_ports() const override; protected: + generic_keyboard_device( + const machine_config &mconfig, + device_type type, + char const *tag, + device_t *owner, + u32 clock); virtual void device_start() override; virtual void device_reset() override; virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; - virtual void key_make(uint8_t row, uint8_t column) override; - virtual void key_repeat(uint8_t row, uint8_t column) override; - virtual void send_key(uint8_t code); - virtual bool translate(uint8_t code, uint8_t &translated) const; + virtual void key_make(u8 row, u8 column) override; + virtual void key_repeat(u8 row, u8 column) override; + virtual void send_key(u8 code); + virtual bool translate(u8 code, u8 &translated) const; required_ioport m_config; required_ioport m_modifiers; private: - virtual void will_scan_row(uint8_t row) override; + virtual void will_scan_row(u8 row) override; void typematic(); - void send_translated(uint8_t code); + void send_translated(u8 code); attotime typematic_delay() const; attotime typematic_period() const; - uint16_t m_last_modifiers; - devcb_write8 m_keyboard_cb; + u16 m_last_modifiers; + output_delegate m_keyboard_cb; }; -#endif // MAME_DEVICES_MACHINE_KEYBOARD_H +#endif // MAME_MACHINE_KEYBOARD_H diff --git a/src/devices/machine/keyboard.ipp b/src/devices/machine/keyboard.ipp index 28681ba024d..eda221d946e 100644 --- a/src/devices/machine/keyboard.ipp +++ b/src/devices/machine/keyboard.ipp @@ -1,7 +1,7 @@ // license:BSD-3-Clause // copyright-holders:Vas Crabb -#ifndef MAME_DEVICES_MACHINE_KEYBOARD_IPP -#define MAME_DEVICES_MACHINE_KEYBOARD_IPP +#ifndef MAME_MACHINE_KEYBOARD_IPP +#define MAME_MACHINE_KEYBOARD_IPP #pragma once @@ -176,4 +176,4 @@ bool device_matrix_keyboard_interface::are_all_keys_up() [] (ioport_value a, auto const &b) { return a | b->read(); }); } -#endif // MAME_DEVICES_MACHINE_KEYBOARD_IPP +#endif // MAME_MACHINE_KEYBOARD_IPP diff --git a/src/devices/machine/kr2376.cpp b/src/devices/machine/kr2376.cpp index fc68a848b0f..8d082180f72 100644 --- a/src/devices/machine/kr2376.cpp +++ b/src/devices/machine/kr2376.cpp @@ -64,10 +64,10 @@ static const uint8_t KR2376_KEY_CODES[3][8][11] = }; -const device_type KR2376 = device_creator; +DEFINE_DEVICE_TYPE(KR2376, kr2376_device, "kr2376", "SMC KR2376 Keyboard Encoder") kr2376_device::kr2376_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, KR2376, "SMC KR2376", tag, owner, clock, "kr2376", __FILE__), + : device_t(mconfig, KR2376, tag, owner, clock), m_write_strobe(*this) { } @@ -110,7 +110,7 @@ void kr2376_device::device_start() /*------------------------------------------------- set_input_pin - set an input pin -------------------------------------------------*/ -void kr2376_device::set_input_pin( kr2376_input_pin_t pin, int data ) +void kr2376_device::set_input_pin( input_pin_t pin, int data ) { data = data ? 1 : 0; switch ( pin ) @@ -126,7 +126,7 @@ void kr2376_device::set_input_pin( kr2376_input_pin_t pin, int data ) /*------------------------------------------------- get_output_pin - get the status of an output pin -------------------------------------------------*/ -int kr2376_device::get_output_pin( kr2376_output_pin_t pin ) +int kr2376_device::get_output_pin( output_pin_t pin ) { return m_pins[pin]; } diff --git a/src/devices/machine/kr2376.h b/src/devices/machine/kr2376.h index d73ccfa4f58..6206e82ba2c 100644 --- a/src/devices/machine/kr2376.h +++ b/src/devices/machine/kr2376.h @@ -29,44 +29,45 @@ **********************************************************************/ -#ifndef __KR2376__ -#define __KR2376__ +#ifndef MAME_MACHINE_KR2376_H +#define MAME_MACHINE_KR2376_H + +#pragma once #define MCFG_KR2376_STROBE_CALLBACK(_write) \ devcb = &kr2376_device::set_strobe_wr_callback(*device, DEVCB_##_write); -/* - * Input pins - */ -enum kr2376_input_pin_t -{ - KR2376_DSII=20, /* DSII - Pin 20 - Data & Strobe Invert Input */ - KR2376_PII=6 /* PII - Pin 6 - Parity Invert Input */ -}; - -enum kr2376_output_pin_t -{ - KR2376_SO=16, /* SO - Pin 16 - Strobe Output */ - KR2376_PO=7 /* PO - Pin 7 - Parity Output */ -}; - class kr2376_device : public device_t { public: + /* + * Input pins + */ + enum input_pin_t + { + KR2376_DSII=20, /* DSII - Pin 20 - Data & Strobe Invert Input */ + KR2376_PII=6 /* PII - Pin 6 - Parity Invert Input */ + }; + + enum output_pin_t + { + KR2376_SO=16, /* SO - Pin 16 - Strobe Output */ + KR2376_PO=7 /* PO - Pin 7 - Parity Output */ + }; + kr2376_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~kr2376_device() {} - template static devcb_base &set_strobe_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_strobe.set_callback(object); } + template static devcb_base &set_strobe_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_strobe.set_callback(std::forward(cb)); } /* keyboard data */ DECLARE_READ8_MEMBER( data_r ); /* Set an input pin */ - void set_input_pin( kr2376_input_pin_t pin, int data ); + void set_input_pin( input_pin_t pin, int data ); /* Get an output pin */ - int get_output_pin( kr2376_output_pin_t pin ); + int get_output_pin( output_pin_t pin ); protected: // device-level overrides @@ -101,6 +102,6 @@ private: void detect_keypress(); }; -extern const device_type KR2376; +DECLARE_DEVICE_TYPE(KR2376, kr2376_device) -#endif +#endif // MAME_MACHINE_KR2376_H diff --git a/src/devices/machine/laserdsc.cpp b/src/devices/machine/laserdsc.cpp index b090b23dd04..49227fa13cc 100644 --- a/src/devices/machine/laserdsc.cpp +++ b/src/devices/machine/laserdsc.cpp @@ -57,8 +57,8 @@ const uint32_t VIRTUAL_LEAD_OUT_TRACKS = LEAD_OUT_MIN_SIZE_IN_UM * 1000 / NOMINA // laserdisc_device - constructor //------------------------------------------------- -laserdisc_device::laserdisc_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), +laserdisc_device::laserdisc_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock), device_sound_interface(mconfig, *this), device_video_interface(mconfig, *this), m_overwidth(0), @@ -212,9 +212,9 @@ uint32_t laserdisc_device::screen_update(screen_device &screen, bitmap_rgb32 &bi // delegate //------------------------------------------------- -void laserdisc_device::static_set_get_disc(device_t &device, laserdisc_get_disc_delegate callback) +void laserdisc_device::static_set_get_disc(device_t &device, get_disc_delegate &&callback) { - downcast(device).m_getdisc_callback = callback; + downcast(device).m_getdisc_callback = std::move(callback); } @@ -223,9 +223,9 @@ void laserdisc_device::static_set_get_disc(device_t &device, laserdisc_get_disc_ // delegate //------------------------------------------------- -void laserdisc_device::static_set_audio(device_t &device, laserdisc_audio_delegate callback) +void laserdisc_device::static_set_audio(device_t &device, audio_delegate &&callback) { - downcast(device).m_audio_callback = callback; + downcast(device).m_audio_callback = std::move(callback); } @@ -233,24 +233,24 @@ void laserdisc_device::static_set_audio(device_t &device, laserdisc_audio_delega // static_set_overlay - set the overlay parameters //------------------------------------------------- -void laserdisc_device::static_set_overlay(device_t &device, uint32_t width, uint32_t height, screen_update_ind16_delegate update) +void laserdisc_device::static_set_overlay(device_t &device, uint32_t width, uint32_t height, screen_update_ind16_delegate &&update) { laserdisc_device &ld = downcast(device); ld.m_overwidth = width; ld.m_overheight = height; ld.m_overclip.set(0, width - 1, 0, height - 1); - ld.m_overupdate_ind16 = update; + ld.m_overupdate_ind16 = std::move(update); ld.m_overupdate_rgb32 = screen_update_rgb32_delegate(); } -void laserdisc_device::static_set_overlay(device_t &device, uint32_t width, uint32_t height, screen_update_rgb32_delegate update) +void laserdisc_device::static_set_overlay(device_t &device, uint32_t width, uint32_t height, screen_update_rgb32_delegate &&update) { laserdisc_device &ld = downcast(device); ld.m_overwidth = width; ld.m_overheight = height; ld.m_overclip.set(0, width - 1, 0, height - 1); ld.m_overupdate_ind16 = screen_update_ind16_delegate(); - ld.m_overupdate_rgb32 = update; + ld.m_overupdate_rgb32 = std::move(update); } diff --git a/src/devices/machine/laserdsc.h b/src/devices/machine/laserdsc.h index 6065fda25ba..85b5a197a08 100644 --- a/src/devices/machine/laserdsc.h +++ b/src/devices/machine/laserdsc.h @@ -8,10 +8,10 @@ *************************************************************************/ -#pragma once +#ifndef MAME_MACHINE_LASERDSC_H +#define MAME_MACHINE_LASERDSC_H -#ifndef MAME_DEVICES_MACHINE_LASERDSC_H -#define MAME_DEVICES_MACHINE_LASERDSC_H +#pragma once #include "screen.h" #include "vbiparse.h" @@ -111,14 +111,6 @@ enum laserdisc_field_code // TYPE DEFINITIONS //************************************************************************** -// forward declarations -class laserdisc_device; - -// delegates -typedef delegate laserdisc_get_disc_delegate; -typedef delegate laserdisc_audio_delegate; - - // ======================> laserdisc_overlay_config // overlay configuration @@ -141,10 +133,16 @@ class laserdisc_device : public device_t, { protected: // construction/destruction - laserdisc_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); virtual ~laserdisc_device(); public: + // delegates + typedef delegate get_disc_delegate; + typedef delegate audio_delegate; + + + laserdisc_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // reset line control // core control and status @@ -165,10 +163,10 @@ public: void set_overlay_config(const laserdisc_overlay_config &config) { static_cast(*this) = config; } // static configuration helpers - static void static_set_get_disc(device_t &device, laserdisc_get_disc_delegate callback); - static void static_set_audio(device_t &device, laserdisc_audio_delegate callback); - static void static_set_overlay(device_t &device, uint32_t width, uint32_t height, screen_update_ind16_delegate update); - static void static_set_overlay(device_t &device, uint32_t width, uint32_t height, screen_update_rgb32_delegate update); + static void static_set_get_disc(device_t &device, get_disc_delegate &&callback); + static void static_set_audio(device_t &device, audio_delegate &&callback); + static void static_set_overlay(device_t &device, uint32_t width, uint32_t height, screen_update_ind16_delegate &&update); + static void static_set_overlay(device_t &device, uint32_t width, uint32_t height, screen_update_rgb32_delegate &&update); static void static_set_overlay_clip(device_t &device, int32_t minx, int32_t maxx, int32_t miny, int32_t maxy); static void static_set_overlay_position(device_t &device, float posx, float posy); static void static_set_overlay_scale(device_t &device, float scalex, float scaley); @@ -291,8 +289,8 @@ private: void config_save(config_type cfg_type, util::xml::data_node *parentnode); // configuration - laserdisc_get_disc_delegate m_getdisc_callback; - laserdisc_audio_delegate m_audio_callback; // audio streaming callback + get_disc_delegate m_getdisc_callback; + audio_delegate m_audio_callback; // audio streaming callback laserdisc_overlay_config m_orig_config; // original overlay configuration uint32_t m_overwidth; // overlay screen width uint32_t m_overheight; // overlay screen height @@ -412,5 +410,4 @@ inline int laserdisc_device::chapter_from_metadata(const vbi_metadata &metadata) return CHAPTER_NOT_PRESENT; } - -#endif // MAME_DEVICES_MACHINE_LASERDSC_H +#endif // MAME_MACHINE_LASERDSC_H diff --git a/src/devices/machine/latch.cpp b/src/devices/machine/latch.cpp index 6cf14e413ea..320febdb1ff 100644 --- a/src/devices/machine/latch.cpp +++ b/src/devices/machine/latch.cpp @@ -3,40 +3,19 @@ #include "emu.h" #include "latch.h" -const device_type OUTPUT_LATCH = device_creator; +DEFINE_DEVICE_TYPE(OUTPUT_LATCH, output_latch_device, "output_latch", "Output Latch") output_latch_device::output_latch_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, OUTPUT_LATCH, "Output Latch", tag, owner, clock, "output_latch", __FILE__), - m_resolved(false), - m_bit0(-1), - m_bit1(-1), - m_bit2(-1), - m_bit3(-1), - m_bit4(-1), - m_bit5(-1), - m_bit6(-1), - m_bit7(-1), - m_bit0_handler(*this), - m_bit1_handler(*this), - m_bit2_handler(*this), - m_bit3_handler(*this), - m_bit4_handler(*this), - m_bit5_handler(*this), - m_bit6_handler(*this), - m_bit7_handler(*this) + : device_t(mconfig, OUTPUT_LATCH, tag, owner, clock) + , m_bit_handlers{ { *this }, { *this }, { *this }, { *this }, { *this }, { *this }, { *this }, { *this } } + , m_bits{ -1, -1, -1, -1, -1, -1, -1, -1 } + , m_resolved(false) { } void output_latch_device::device_start() { - save_item(NAME(m_bit0)); - save_item(NAME(m_bit1)); - save_item(NAME(m_bit2)); - save_item(NAME(m_bit3)); - save_item(NAME(m_bit4)); - save_item(NAME(m_bit5)); - save_item(NAME(m_bit6)); - save_item(NAME(m_bit7)); + save_item(NAME(m_bits)); } void output_latch_device::write(uint8_t data) @@ -44,79 +23,20 @@ void output_latch_device::write(uint8_t data) if (!m_resolved) { // HACK: move to device_config_complete() when devcb supports that - m_bit0_handler.resolve_safe(); - m_bit1_handler.resolve_safe(); - m_bit2_handler.resolve_safe(); - m_bit3_handler.resolve_safe(); - m_bit4_handler.resolve_safe(); - m_bit5_handler.resolve_safe(); - m_bit6_handler.resolve_safe(); - m_bit7_handler.resolve_safe(); + for (devcb_write_line &handler : m_bit_handlers) + handler.resolve_safe(); m_resolved = true; } - int bit0 = (data >> 0) & 1; - if (m_bit0 != bit0) + for (unsigned i = 0; 8 > i; ++i) { - m_bit0 = bit0; - if (!m_bit0_handler.isnull()) - m_bit0_handler(bit0); - } - - int bit1 = (data >> 1) & 1; - if (m_bit1 != bit1) - { - m_bit1 = bit1; - if (!m_bit1_handler.isnull()) - m_bit1_handler(bit1); - } - - int bit2 = (data >> 2) & 1; - if (m_bit2 != bit2) - { - m_bit2 = bit2; - if (!m_bit2_handler.isnull()) - m_bit2_handler(bit2); - } - - int bit3 = (data >> 3) & 1; - if (m_bit3 != bit3) - { - m_bit3 = bit3; - if (!m_bit3_handler.isnull()) - m_bit3_handler(bit3); - } - - int bit4 = (data >> 4) & 1; - if (m_bit4 != bit4) - { - m_bit4 = bit4; - if (!m_bit4_handler.isnull()) - m_bit4_handler(bit4); - } - - int bit5 = (data >> 5) & 1; - if (m_bit5 != bit5) - { - m_bit5 = bit5; - if (!m_bit5_handler.isnull()) - m_bit5_handler(bit5); - } - - int bit6 = (data >> 6) & 1; - if (m_bit6 != bit6) - { - m_bit6 = bit6; - if (!m_bit6_handler.isnull()) - m_bit6_handler(bit6); - } - - int bit7 = (data >> 7) & 1; - if (m_bit7 != bit7) - { - m_bit7 = bit7; - if (!m_bit7_handler.isnull()) - m_bit7_handler(bit7); + int const bit = BIT(data, i); + if (bit != m_bits[i]) + { + m_bits[i] = bit; + if (!m_bit_handlers[i].isnull()) + m_bit_handlers[i](bit); + } } } diff --git a/src/devices/machine/latch.h b/src/devices/machine/latch.h index d4e49ed838b..8c93a40f8b0 100644 --- a/src/devices/machine/latch.h +++ b/src/devices/machine/latch.h @@ -1,45 +1,42 @@ // license:BSD-3-Clause // copyright-holders:smf -#ifndef __LATCH_H__ -#define __LATCH_H__ +#ifndef MAME_MACHINE_LATCH_H +#define MAME_MACHINE_LATCH_H + +#pragma once + #define MCFG_OUTPUT_LATCH_BIT0_HANDLER(_devcb) \ - devcb = &output_latch_device::set_bit0_handler(*device, DEVCB_##_devcb); + devcb = &output_latch_device::set_bit_handler<0>(*device, DEVCB_##_devcb); #define MCFG_OUTPUT_LATCH_BIT1_HANDLER(_devcb) \ - devcb = &output_latch_device::set_bit1_handler(*device, DEVCB_##_devcb); + devcb = &output_latch_device::set_bit_handler<1>(*device, DEVCB_##_devcb); #define MCFG_OUTPUT_LATCH_BIT2_HANDLER(_devcb) \ - devcb = &output_latch_device::set_bit2_handler(*device, DEVCB_##_devcb); + devcb = &output_latch_device::set_bit_handler<2>(*device, DEVCB_##_devcb); #define MCFG_OUTPUT_LATCH_BIT3_HANDLER(_devcb) \ - devcb = &output_latch_device::set_bit3_handler(*device, DEVCB_##_devcb); + devcb = &output_latch_device::set_bit_handler<3>(*device, DEVCB_##_devcb); #define MCFG_OUTPUT_LATCH_BIT4_HANDLER(_devcb) \ - devcb = &output_latch_device::set_bit4_handler(*device, DEVCB_##_devcb); + devcb = &output_latch_device::set_bit_handler<4>(*device, DEVCB_##_devcb); #define MCFG_OUTPUT_LATCH_BIT5_HANDLER(_devcb) \ - devcb = &output_latch_device::set_bit5_handler(*device, DEVCB_##_devcb); + devcb = &output_latch_device::set_bit_handler<5>(*device, DEVCB_##_devcb); #define MCFG_OUTPUT_LATCH_BIT6_HANDLER(_devcb) \ - devcb = &output_latch_device::set_bit6_handler(*device, DEVCB_##_devcb); + devcb = &output_latch_device::set_bit_handler<6>(*device, DEVCB_##_devcb); #define MCFG_OUTPUT_LATCH_BIT7_HANDLER(_devcb) \ - devcb = &output_latch_device::set_bit7_handler(*device, DEVCB_##_devcb); + devcb = &output_latch_device::set_bit_handler<7>(*device, DEVCB_##_devcb); class output_latch_device : public device_t { public: output_latch_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_bit0_handler(device_t &device, _Object object) { return downcast(device).m_bit0_handler.set_callback(object); } - template static devcb_base &set_bit1_handler(device_t &device, _Object object) { return downcast(device).m_bit1_handler.set_callback(object); } - template static devcb_base &set_bit2_handler(device_t &device, _Object object) { return downcast(device).m_bit2_handler.set_callback(object); } - template static devcb_base &set_bit3_handler(device_t &device, _Object object) { return downcast(device).m_bit3_handler.set_callback(object); } - template static devcb_base &set_bit4_handler(device_t &device, _Object object) { return downcast(device).m_bit4_handler.set_callback(object); } - template static devcb_base &set_bit5_handler(device_t &device, _Object object) { return downcast(device).m_bit5_handler.set_callback(object); } - template static devcb_base &set_bit6_handler(device_t &device, _Object object) { return downcast(device).m_bit6_handler.set_callback(object); } - template static devcb_base &set_bit7_handler(device_t &device, _Object object) { return downcast(device).m_bit7_handler.set_callback(object); } + template static devcb_base &set_bit_handler(device_t &device, Object &&cb) + { return downcast(device).m_bit_handlers[Bit].set_callback(std::forward(cb)); } void write(uint8_t data); DECLARE_WRITE8_MEMBER(write) { write(data); } @@ -48,27 +45,13 @@ protected: virtual void device_start() override; private: - bool m_resolved; + devcb_write_line m_bit_handlers[8]; - int m_bit0; - int m_bit1; - int m_bit2; - int m_bit3; - int m_bit4; - int m_bit5; - int m_bit6; - int m_bit7; - - devcb_write_line m_bit0_handler; - devcb_write_line m_bit1_handler; - devcb_write_line m_bit2_handler; - devcb_write_line m_bit3_handler; - devcb_write_line m_bit4_handler; - devcb_write_line m_bit5_handler; - devcb_write_line m_bit6_handler; - devcb_write_line m_bit7_handler; + int m_bits[8]; + + bool m_resolved; }; -extern const device_type OUTPUT_LATCH; +DECLARE_DEVICE_TYPE(OUTPUT_LATCH, output_latch_device) -#endif +#endif // MAME_MACHINE_LATCH_H diff --git a/src/devices/machine/latch8.cpp b/src/devices/machine/latch8.cpp index 3c12ea10129..7b10bed2df6 100644 --- a/src/devices/machine/latch8.cpp +++ b/src/devices/machine/latch8.cpp @@ -73,27 +73,6 @@ WRITE8_MEMBER( latch8_device::reset_w ) m_value = 0; } -/* read bit x */ -/* return (latch >> x) & 0x01 */ - -READ_LINE_MEMBER(latch8_device::bit0_r) { return BIT(m_value, 0); } -READ_LINE_MEMBER(latch8_device::bit1_r) { return BIT(m_value, 1); } -READ_LINE_MEMBER(latch8_device::bit2_r) { return BIT(m_value, 2); } -READ_LINE_MEMBER(latch8_device::bit3_r) { return BIT(m_value, 3); } -READ_LINE_MEMBER(latch8_device::bit4_r) { return BIT(m_value, 4); } -READ_LINE_MEMBER(latch8_device::bit5_r) { return BIT(m_value, 5); } -READ_LINE_MEMBER(latch8_device::bit6_r) { return BIT(m_value, 6); } -READ_LINE_MEMBER(latch8_device::bit7_r) { return BIT(m_value, 7); } - -READ_LINE_MEMBER(latch8_device::bit0_q_r) { return BIT(m_value, 0) ^ 1; } -READ_LINE_MEMBER(latch8_device::bit1_q_r) { return BIT(m_value, 1) ^ 1; } -READ_LINE_MEMBER(latch8_device::bit2_q_r) { return BIT(m_value, 2) ^ 1; } -READ_LINE_MEMBER(latch8_device::bit3_q_r) { return BIT(m_value, 3) ^ 1; } -READ_LINE_MEMBER(latch8_device::bit4_q_r) { return BIT(m_value, 4) ^ 1; } -READ_LINE_MEMBER(latch8_device::bit5_q_r) { return BIT(m_value, 5) ^ 1; } -READ_LINE_MEMBER(latch8_device::bit6_q_r) { return BIT(m_value, 6) ^ 1; } -READ_LINE_MEMBER(latch8_device::bit7_q_r) { return BIT(m_value, 7) ^ 1; } - /* write bit x from data into bit determined by offset */ /* latch = (latch & ~(1<> x) & 0x01) << offset) */ @@ -120,18 +99,18 @@ WRITE8_MEMBER( latch8_device::bit5_w ) { bitx_w(5, offset, data); } WRITE8_MEMBER( latch8_device::bit6_w ) { bitx_w(6, offset, data); } WRITE8_MEMBER( latch8_device::bit7_w ) { bitx_w(7, offset, data); } -const device_type LATCH8 = device_creator; +DEFINE_DEVICE_TYPE(LATCH8, latch8_device, "latch8", "8-bit latch") latch8_device::latch8_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, LATCH8, "8 bit latch", tag, owner, clock, "latch8", __FILE__), - m_value(0), - m_has_write(0), - m_has_read(0), - m_maskout(0), - m_xorvalue(0), - m_nosync(0), - m_write_cb{{*this}, {*this}, {*this}, {*this}, {*this}, {*this}, {*this}, {*this}}, - m_read_cb{{*this}, {*this}, {*this}, {*this}, {*this}, {*this}, {*this}, {*this}} + : device_t(mconfig, LATCH8, tag, owner, clock) + , m_value(0) + , m_has_write(0) + , m_has_read(0) + , m_maskout(0) + , m_xorvalue(0) + , m_nosync(0) + , m_write_cb{{*this}, {*this}, {*this}, {*this}, {*this}, {*this}, {*this}, {*this}} + , m_read_cb{{*this}, {*this}, {*this}, {*this}, {*this}, {*this}, {*this}, {*this}} { } diff --git a/src/devices/machine/latch8.h b/src/devices/machine/latch8.h index fbaa5ebfaca..6acb1b54903 100644 --- a/src/devices/machine/latch8.h +++ b/src/devices/machine/latch8.h @@ -13,8 +13,8 @@ **********************************************************************/ -#ifndef __LATCH8_H_ -#define __LATCH8_H_ +#ifndef MAME_MACHINE_LATCH8_H +#define MAME_MACHINE_LATCH8_H #include "sound/discrete.h" @@ -41,26 +41,26 @@ public: /* read bit x */ /* return (latch >> x) & 0x01 */ - DECLARE_READ_LINE_MEMBER( bit0_r ); - DECLARE_READ_LINE_MEMBER( bit1_r ); - DECLARE_READ_LINE_MEMBER( bit2_r ); - DECLARE_READ_LINE_MEMBER( bit3_r ); - DECLARE_READ_LINE_MEMBER( bit4_r ); - DECLARE_READ_LINE_MEMBER( bit5_r ); - DECLARE_READ_LINE_MEMBER( bit6_r ); - DECLARE_READ_LINE_MEMBER( bit7_r ); + DECLARE_READ_LINE_MEMBER( bit0_r ) { return BIT(m_value, 0); } + DECLARE_READ_LINE_MEMBER( bit1_r ) { return BIT(m_value, 1); } + DECLARE_READ_LINE_MEMBER( bit2_r ) { return BIT(m_value, 2); } + DECLARE_READ_LINE_MEMBER( bit3_r ) { return BIT(m_value, 3); } + DECLARE_READ_LINE_MEMBER( bit4_r ) { return BIT(m_value, 4); } + DECLARE_READ_LINE_MEMBER( bit5_r ) { return BIT(m_value, 5); } + DECLARE_READ_LINE_MEMBER( bit6_r ) { return BIT(m_value, 6); } + DECLARE_READ_LINE_MEMBER( bit7_r ) { return BIT(m_value, 7); } /* read inverted bit x */ /* return (latch >> x) & 0x01 */ - DECLARE_READ_LINE_MEMBER( bit0_q_r ); - DECLARE_READ_LINE_MEMBER( bit1_q_r ); - DECLARE_READ_LINE_MEMBER( bit2_q_r ); - DECLARE_READ_LINE_MEMBER( bit3_q_r ); - DECLARE_READ_LINE_MEMBER( bit4_q_r ); - DECLARE_READ_LINE_MEMBER( bit5_q_r ); - DECLARE_READ_LINE_MEMBER( bit6_q_r ); - DECLARE_READ_LINE_MEMBER( bit7_q_r ); + DECLARE_READ_LINE_MEMBER( bit0_q_r ) { return BIT(m_value, 0) ^ 1; } + DECLARE_READ_LINE_MEMBER( bit1_q_r ) { return BIT(m_value, 1) ^ 1; } + DECLARE_READ_LINE_MEMBER( bit2_q_r ) { return BIT(m_value, 2) ^ 1; } + DECLARE_READ_LINE_MEMBER( bit3_q_r ) { return BIT(m_value, 3) ^ 1; } + DECLARE_READ_LINE_MEMBER( bit4_q_r ) { return BIT(m_value, 4) ^ 1; } + DECLARE_READ_LINE_MEMBER( bit5_q_r ) { return BIT(m_value, 5) ^ 1; } + DECLARE_READ_LINE_MEMBER( bit6_q_r ) { return BIT(m_value, 6) ^ 1; } + DECLARE_READ_LINE_MEMBER( bit7_q_r ) { return BIT(m_value, 7) ^ 1; } /* write bit x from data into bit determined by offset */ /* latch = (latch & ~(1<> x) & 0x01) << offset) */ @@ -78,9 +78,9 @@ public: static void set_xorvalue(device_t &device, uint32_t xorvalue) { downcast(device).m_xorvalue = xorvalue; } static void set_nosync(device_t &device, uint32_t nosync) { downcast(device).m_nosync = nosync; } - template static devcb_base &set_write_cb(device_t &device, int i, _Object object) { return downcast(device).m_write_cb[i].set_callback(object); } + template static devcb_base &set_write_cb(device_t &device, Object &&cb) { return downcast(device).m_write_cb[N].set_callback(std::forward(cb)); } - template static devcb_base &set_read_cb(device_t &device, int i, _Object object) { return downcast(device).m_read_cb[i].set_callback(object); } + template static devcb_base &set_read_cb(device_t &device, Object &&cb) { return downcast(device).m_read_cb[N].set_callback(std::forward(cb)); } protected: // device-level overrides @@ -107,7 +107,8 @@ private: devcb_read_line m_read_cb[8]; }; -extern const device_type LATCH8; +DECLARE_DEVICE_TYPE(LATCH8, latch8_device) + /*************************************************************************** DEVICE CONFIGURATION MACROS ***************************************************************************/ @@ -130,53 +131,53 @@ extern const device_type LATCH8; /* Write bit to discrete node */ #define MCFG_LATCH8_WRITE_0(_devcb) \ - devcb = &latch8_device::set_write_cb(*device, 0, DEVCB_##_devcb); + devcb = &latch8_device::set_write_cb<0>(*device, DEVCB_##_devcb); #define MCFG_LATCH8_WRITE_1(_devcb) \ - devcb = &latch8_device::set_write_cb(*device, 1, DEVCB_##_devcb); + devcb = &latch8_device::set_write_cb<1>(*device, DEVCB_##_devcb); #define MCFG_LATCH8_WRITE_2(_devcb) \ - devcb = &latch8_device::set_write_cb(*device, 2, DEVCB_##_devcb); + devcb = &latch8_device::set_write_cb<2>(*device, DEVCB_##_devcb); #define MCFG_LATCH8_WRITE_3(_devcb) \ - devcb = &latch8_device::set_write_cb(*device, 3, DEVCB_##_devcb); + devcb = &latch8_device::set_write_cb<3>(*device, DEVCB_##_devcb); #define MCFG_LATCH8_WRITE_4(_devcb) \ - devcb = &latch8_device::set_write_cb(*device, 4, DEVCB_##_devcb); + devcb = &latch8_device::set_write_cb<4>(*device, DEVCB_##_devcb); #define MCFG_LATCH8_WRITE_5(_devcb) \ - devcb = &latch8_device::set_write_cb(*device, 5, DEVCB_##_devcb); + devcb = &latch8_device::set_write_cb<5>(*device, DEVCB_##_devcb); #define MCFG_LATCH8_WRITE_6(_devcb) \ - devcb = &latch8_device::set_write_cb(*device, 6, DEVCB_##_devcb); + devcb = &latch8_device::set_write_cb<6>(*device, DEVCB_##_devcb); #define MCFG_LATCH8_WRITE_7(_devcb) \ - devcb = &latch8_device::set_write_cb(*device, 7, DEVCB_##_devcb); + devcb = &latch8_device::set_write_cb<7>(*device, DEVCB_##_devcb); /* Upon read, replace bits by reading from another device handler */ #define MCFG_LATCH8_READ_0(_devcb) \ - devcb = &latch8_device::set_read_cb(*device, 0, DEVCB_##_devcb); + devcb = &latch8_device::set_read_cb<0>(*device, DEVCB_##_devcb); #define MCFG_LATCH8_READ_1(_devcb) \ - devcb = &latch8_device::set_read_cb(*device, 1, DEVCB_##_devcb); + devcb = &latch8_device::set_read_cb<1>(*device, DEVCB_##_devcb); #define MCFG_LATCH8_READ_2(_devcb) \ - devcb = &latch8_device::set_read_cb(*device, 2, DEVCB_##_devcb); + devcb = &latch8_device::set_read_cb<2>(*device, DEVCB_##_devcb); #define MCFG_LATCH8_READ_3(_devcb) \ - devcb = &latch8_device::set_read_cb(*device, 3, DEVCB_##_devcb); + devcb = &latch8_device::set_read_cb<3>(*device, DEVCB_##_devcb); #define MCFG_LATCH8_READ_4(_devcb) \ - devcb = &latch8_device::set_read_cb(*device, 4, DEVCB_##_devcb); + devcb = &latch8_device::set_read_cb<4>(*device, DEVCB_##_devcb); #define MCFG_LATCH8_READ_5(_devcb) \ - devcb = &latch8_device::set_read_cb(*device, 5, DEVCB_##_devcb); + devcb = &latch8_device::set_read_cb<5>(*device, DEVCB_##_devcb); #define MCFG_LATCH8_READ_6(_devcb) \ - devcb = &latch8_device::set_read_cb(*device, 6, DEVCB_##_devcb); + devcb = &latch8_device::set_read_cb<6>(*device, DEVCB_##_devcb); #define MCFG_LATCH8_READ_7(_devcb) \ - devcb = &latch8_device::set_read_cb(*device, 7, DEVCB_##_devcb); + devcb = &latch8_device::set_read_cb<7>(*device, DEVCB_##_devcb); -#endif /* __LATCH8_H_ */ +#endif // MAME_MACHINE_LATCH8_H diff --git a/src/devices/machine/lc89510.cpp b/src/devices/machine/lc89510.cpp index c1cbb62b2e6..649dc01ea8d 100644 --- a/src/devices/machine/lc89510.cpp +++ b/src/devices/machine/lc89510.cpp @@ -1,7 +1,7 @@ // license:BSD-3-Clause // copyright-holders:David Haywood /* LC89510 CD Controller - based off old NeoCD emulator code, adapted to SegaCD, needs reworking to work with NeoCD again + completely empty placeholder - should be populated or removed */ @@ -9,10 +9,10 @@ #include "emu.h" #include "lc89510.h" -const device_type LC89510 = device_creator; +DEFINE_DEVICE_TYPE(LC89510, lc89510_device, "lc89510", "LC89510 CD Controller") lc89510_device::lc89510_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, LC89510, "lc89510_device", tag, owner, clock, "lc89510", __FILE__) + : device_t(mconfig, LC89510, tag, owner, clock) { } diff --git a/src/devices/machine/lc89510.h b/src/devices/machine/lc89510.h index a254a40928b..4282654136c 100644 --- a/src/devices/machine/lc89510.h +++ b/src/devices/machine/lc89510.h @@ -1,19 +1,21 @@ // license:BSD-3-Clause // copyright-holders:David Haywood +#ifndef MAME_MACHINE_LC89510_H +#define MAME_MACHINE_LC89510_H - +#pragma once class lc89510_device : public device_t { public: lc89510_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - - protected: virtual void device_start() override; virtual void device_reset() override; }; -extern const device_type LC89510; +DECLARE_DEVICE_TYPE(LC89510, lc89510_device) + +#endif // MAME_MACHINE_LC89510_H diff --git a/src/devices/machine/ldp1000.cpp b/src/devices/machine/ldp1000.cpp index 42bd30443dd..ace30f6fc9a 100644 --- a/src/devices/machine/ldp1000.cpp +++ b/src/devices/machine/ldp1000.cpp @@ -27,7 +27,7 @@ ROM_END //************************************************************************** // device type definition -const device_type SONY_LDP1000 = device_creator; +DEFINE_DEVICE_TYPE(SONY_LDP1000, sony_ldp1000_device, "ldp1000", "Sony LDP-1000") //************************************************************************** @@ -35,11 +35,11 @@ const device_type SONY_LDP1000 = device_creator; //************************************************************************** //------------------------------------------------- -// ldp1000_device - constructor +// sony_ldp1000_device - constructor //------------------------------------------------- sony_ldp1000_device::sony_ldp1000_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : laserdisc_device(mconfig, SONY_LDP1000, "Sony LDP-1000", tag, owner, clock, "ldp1000", __FILE__) + : laserdisc_device(mconfig, SONY_LDP1000, tag, owner, clock) { } diff --git a/src/devices/machine/ldp1000.h b/src/devices/machine/ldp1000.h index e5fc53f0d7e..a3655853a37 100644 --- a/src/devices/machine/ldp1000.h +++ b/src/devices/machine/ldp1000.h @@ -6,10 +6,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_MACHINE_LDP1000_H +#define MAME_MACHINE_LDP1000_H -#ifndef __LDP1000DEV_H__ -#define __LDP1000DEV_H__ +#pragma once #include "laserdsc.h" @@ -27,6 +27,7 @@ // device type definition extern const device_type SONY_LDP1000; +DECLARE_DEVICE_TYPE(SONY_LDP1000, sony_ldp1000_device) // ======================> sony_ldp1000_device @@ -82,15 +83,4 @@ private: }; - - - - - -//************************************************************************** -// GLOBAL VARIABLES -//************************************************************************** - - - -#endif +#endif // MAME_MACHINE_LDP1000_H diff --git a/src/devices/machine/ldp1450.cpp b/src/devices/machine/ldp1450.cpp index 2e07e47b061..c8c4051629b 100644 --- a/src/devices/machine/ldp1450.cpp +++ b/src/devices/machine/ldp1450.cpp @@ -34,7 +34,7 @@ ROM_END //************************************************************************** // device type definition -const device_type SONY_LDP1450 = device_creator; +DEFINE_DEVICE_TYPE(SONY_LDP1450, sony_ldp1450_device, "ldp1450", "Sony LDP-1450") //************************************************************************** @@ -42,11 +42,11 @@ const device_type SONY_LDP1450 = device_creator; //************************************************************************** //------------------------------------------------- -// ldp1450_device - constructor +// sony_ldp1450_device - constructor //------------------------------------------------- sony_ldp1450_device::sony_ldp1450_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : laserdisc_device(mconfig, SONY_LDP1450, "Sony LDP-1450", tag, owner, clock, "ldp1450", __FILE__) + : laserdisc_device(mconfig, SONY_LDP1450, tag, owner, clock) { } diff --git a/src/devices/machine/ldp1450.h b/src/devices/machine/ldp1450.h index efeefcfa044..43aa866d0b3 100644 --- a/src/devices/machine/ldp1450.h +++ b/src/devices/machine/ldp1450.h @@ -1,14 +1,15 @@ // license:BSD-3-Clause +// copyright-holders:Angelo Salese /*************************************************************************** Sony LDP-1450 laserdisc emulation. ***************************************************************************/ -#pragma once +#ifndef MAME_MACHINE_LDP1450_H +#define MAME_MACHINE_LDP1450_H -#ifndef __LDP1450DEV_H__ -#define __LDP1450DEV_H__ +#pragma once #include "laserdsc.h" @@ -25,7 +26,7 @@ //************************************************************************** // device type definition -extern const device_type SONY_LDP1450; +DECLARE_DEVICE_TYPE(SONY_LDP1450, sony_ldp1450_device) // ======================> sony_ldp1450_device @@ -90,15 +91,4 @@ private: }; - - - - - -//************************************************************************** -// GLOBAL VARIABLES -//************************************************************************** - - - -#endif +#endif // MAME_MACHINE_LDP1450_H diff --git a/src/devices/machine/ldpr8210.cpp b/src/devices/machine/ldpr8210.cpp index 438eef981ee..d3a2feb4293 100644 --- a/src/devices/machine/ldpr8210.cpp +++ b/src/devices/machine/ldpr8210.cpp @@ -68,8 +68,8 @@ //************************************************************************** // devices -const device_type PIONEER_PR8210 = device_creator; -const device_type SIMUTREK_SPECIAL = device_creator; +DEFINE_DEVICE_TYPE(PIONEER_PR8210, pioneer_pr8210_device, "pr8210", "Pioneer PR-8210") +DEFINE_DEVICE_TYPE(SIMUTREK_SPECIAL, simutrek_special_device, "simutrek", "Simutrek Modified PR-8210") // bitmaps for the characters @@ -180,23 +180,12 @@ ROM_END //------------------------------------------------- pioneer_pr8210_device::pioneer_pr8210_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : laserdisc_device(mconfig, PIONEER_PR8210, "Pioneer PR-8210", tag, owner, clock, "pr8210", __FILE__), - m_control(0), - m_lastcommand(0), - m_accumulator(0), - m_lastcommandtime(attotime::zero), - m_lastbittime(attotime::zero), - m_firstbittime(attotime::zero), - m_i8049_cpu(*this, "pr8210"), - m_slowtrg(attotime::zero), - m_vsync(false), - m_i8049_port1(0), - m_i8049_port2(0) + : pioneer_pr8210_device(mconfig, PIONEER_PR8210, tag, owner, clock) { } -pioneer_pr8210_device::pioneer_pr8210_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : laserdisc_device(mconfig, type, name, tag, owner, clock, shortname, source), +pioneer_pr8210_device::pioneer_pr8210_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : laserdisc_device(mconfig, type, tag, owner, clock), m_control(0), m_lastcommand(0), m_accumulator(0), @@ -891,7 +880,7 @@ ROM_END //------------------------------------------------- simutrek_special_device::simutrek_special_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : pioneer_pr8210_device(mconfig, SIMUTREK_SPECIAL, "Simutrek Modified PR-8210", tag, owner, clock, "simutrek", __FILE__), + : pioneer_pr8210_device(mconfig, SIMUTREK_SPECIAL, tag, owner, clock), m_i8748_cpu(*this, "simutrek"), m_audio_squelch(0), m_data(0), diff --git a/src/devices/machine/ldpr8210.h b/src/devices/machine/ldpr8210.h index 0f56d7e144c..9df357decaf 100644 --- a/src/devices/machine/ldpr8210.h +++ b/src/devices/machine/ldpr8210.h @@ -8,10 +8,10 @@ *************************************************************************/ -#pragma once +#ifndef MAME_MACHINE_LDPR8210_H +#define MAME_MACHINE_LDPR8210_H -#ifndef __LDPR8210_H__ -#define __LDPR8210_H__ +#pragma once #include "laserdsc.h" #include "cpu/mcs48/mcs48.h" @@ -32,8 +32,8 @@ //************************************************************************** // device type definition -extern const device_type PIONEER_PR8210; -extern const device_type SIMUTREK_SPECIAL; +DECLARE_DEVICE_TYPE(PIONEER_PR8210, pioneer_pr8210_device) +DECLARE_DEVICE_TYPE(SIMUTREK_SPECIAL, simutrek_special_device) @@ -41,22 +41,6 @@ extern const device_type SIMUTREK_SPECIAL; // TYPE DEFINITIONS //************************************************************************** -// pioneer PIA subclass -class pioneer_pia -{ -public: - uint8_t frame[7]; // (20-26) 7 characters for the chapter/frame - uint8_t text[17]; // (20-30) 17 characters for the display - uint8_t control; // (40) control lines - uint8_t latchdisplay; // flag: set if the display was latched - uint8_t portb; // (60) port B value (LEDs) - uint8_t display; // (80) display enable - uint8_t porta; // (A0) port A value (from serial decoder) - uint8_t vbi1; // (C0) VBI decoding state 1 - uint8_t vbi2; // (E0) VBI decoding state 2 -}; - - // ======================> pioneer_pr8210_device // base pr8210 class @@ -65,7 +49,6 @@ class pioneer_pr8210_device : public laserdisc_device public: // construction/destruction pioneer_pr8210_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - pioneer_pr8210_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); // input and output void control_w(uint8_t data); @@ -79,6 +62,8 @@ protected: TID_FIRST_SUBCLASS_TIMER }; + pioneer_pr8210_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -110,6 +95,21 @@ public: DECLARE_READ_LINE_MEMBER( i8049_t1_r ); protected: + // pioneer PIA subclass + class pioneer_pia + { + public: + uint8_t frame[7]; // (20-26) 7 characters for the chapter/frame + uint8_t text[17]; // (20-30) 17 characters for the display + uint8_t control; // (40) control lines + uint8_t latchdisplay; // flag: set if the display was latched + uint8_t portb; // (60) port B value (LEDs) + uint8_t display; // (80) display enable + uint8_t porta; // (A0) port A value (from serial decoder) + uint8_t vbi1; // (C0) VBI decoding state 1 + uint8_t vbi2; // (E0) VBI decoding state 2 + }; + // internal overlay helpers void overlay_draw_group(bitmap_yuy16 &bitmap, const uint8_t *text, int count, float xstart); void overlay_erase(bitmap_yuy16 &bitmap, float xstart, float xend); @@ -189,5 +189,4 @@ protected: uint8_t m_controlthis; // latched value for our control over the current pair of fields }; - -#endif +#endif // MAME_MACHINE_LDPR8210_H diff --git a/src/devices/machine/ldstub.cpp b/src/devices/machine/ldstub.cpp index 219df8ec3d3..9d3dab58ce3 100644 --- a/src/devices/machine/ldstub.cpp +++ b/src/devices/machine/ldstub.cpp @@ -17,5 +17,17 @@ //************************************************************************** // device type definition -const device_type PIONEER_PR7820 = device_creator; -const device_type PHILLIPS_22VP932 = device_creator; +DEFINE_DEVICE_TYPE(PIONEER_PR7820, pioneer_pr7820_device, "pr7820", "Pioneer PR-7820") +DEFINE_DEVICE_TYPE(PHILLIPS_22VP932, phillips_22vp932_device, "22vp932", "Phillips 22VP932") + + +pioneer_pr7820_device::pioneer_pr7820_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : laserdisc_device(mconfig, PIONEER_PR7820, tag, owner, clock) +{ +} + + +phillips_22vp932_device::phillips_22vp932_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : laserdisc_device(mconfig, PHILLIPS_22VP932, tag, owner, clock) +{ +} diff --git a/src/devices/machine/ldstub.h b/src/devices/machine/ldstub.h index 41d638f42ae..4bf463b897d 100644 --- a/src/devices/machine/ldstub.h +++ b/src/devices/machine/ldstub.h @@ -8,10 +8,10 @@ *************************************************************************/ -#pragma once +#ifndef MAME_MACHINE_LDSTUB_H +#define MAME_MACHINE_LDSTUB_H -#ifndef __LDSTUB_H__ -#define __LDSTUB_H__ +#pragma once #include "laserdsc.h" @@ -31,8 +31,8 @@ //************************************************************************** // device type definition -extern const device_type PIONEER_PR7820; -extern const device_type PHILLIPS_22VP932; +DECLARE_DEVICE_TYPE(PIONEER_PR7820, pioneer_pr7820_device) +DECLARE_DEVICE_TYPE(PHILLIPS_22VP932, phillips_22vp932_device) @@ -46,8 +46,7 @@ class pioneer_pr7820_device : public laserdisc_device { public: // construction/destruction - pioneer_pr7820_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : laserdisc_device(mconfig, PIONEER_PR7820, "Pioneer PR-7820", tag, owner, clock, "pr7820", __FILE__) { } + pioneer_pr7820_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // input/output uint8_t data_available_r() { return CLEAR_LINE; } @@ -70,8 +69,7 @@ class phillips_22vp932_device : public laserdisc_device { public: // construction/destruction - phillips_22vp932_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : laserdisc_device(mconfig, PHILLIPS_22VP932, "Phillips 22VP932", tag, owner, clock, "22vp932", __FILE__) { } + phillips_22vp932_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // input/output uint8_t data_r() { return 0; } @@ -86,4 +84,4 @@ protected: }; -#endif +#endif // MAME_MACHINE_LDSTUB_H diff --git a/src/devices/machine/ldv1000.cpp b/src/devices/machine/ldv1000.cpp index 47ffb93c5c4..54a2348f30f 100644 --- a/src/devices/machine/ldv1000.cpp +++ b/src/devices/machine/ldv1000.cpp @@ -52,7 +52,7 @@ //************************************************************************** // devices -const device_type PIONEER_LDV1000 = device_creator; +DEFINE_DEVICE_TYPE(PIONEER_LDV1000, pioneer_ldv1000_device, "ldv1000", "Pioneer LD-V1000") @@ -122,7 +122,7 @@ ROM_END //------------------------------------------------- pioneer_ldv1000_device::pioneer_ldv1000_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : laserdisc_device(mconfig, PIONEER_LDV1000, "Pioneer LD-V1000", tag, owner, clock, "ldv1000", __FILE__), + : laserdisc_device(mconfig, PIONEER_LDV1000, tag, owner, clock), m_z80_cpu(*this, "ldv1000"), m_z80_ctc(*this, "ldvctc"), m_multitimer(nullptr), diff --git a/src/devices/machine/ldv1000.h b/src/devices/machine/ldv1000.h index a8cadf1f9a8..58e9fa296c4 100644 --- a/src/devices/machine/ldv1000.h +++ b/src/devices/machine/ldv1000.h @@ -8,10 +8,10 @@ *************************************************************************/ -#pragma once +#ifndef MAME_MACHINE_LDV1000_H +#define MAME_MACHINE_LDV1000_H -#ifndef __LDV1000_H__ -#define __LDV1000_H__ +#pragma once #include "laserdsc.h" #include "cpu/z80/z80.h" @@ -36,7 +36,7 @@ //************************************************************************** // device type definition -extern const device_type PIONEER_LDV1000; +DECLARE_DEVICE_TYPE(PIONEER_LDV1000, pioneer_ldv1000_device) @@ -53,7 +53,7 @@ public: // construction/destruction pioneer_ldv1000_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template devcb_base &set_command_strobe_callback(_cmd_strobe_cb latch) { return m_command_strobe_cb.set_callback(latch); } + template devcb_base &set_command_strobe_callback(cmd_strobe_cb &&latch) { return m_command_strobe_cb.set_callback(std::forward(latch)); } // input and output void data_w(uint8_t data); @@ -132,5 +132,4 @@ protected: }; - -#endif +#endif // MAME_MACHINE_LDV1000_H diff --git a/src/devices/machine/ldvp931.cpp b/src/devices/machine/ldvp931.cpp index 37943efe405..4d3e5758201 100644 --- a/src/devices/machine/ldvp931.cpp +++ b/src/devices/machine/ldvp931.cpp @@ -45,7 +45,7 @@ //************************************************************************** // devices -const device_type PHILLIPS_22VP931 = device_creator; +DEFINE_DEVICE_TYPE(PHILLIPS_22VP931, phillips_22vp931_device, "22vp931", "Phillips 22VP931") @@ -89,7 +89,7 @@ ROM_END //------------------------------------------------- phillips_22vp931_device::phillips_22vp931_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : laserdisc_device(mconfig, PHILLIPS_22VP931, "Phillips 22VP931", tag, owner, clock, "22vp931", __FILE__), + : laserdisc_device(mconfig, PHILLIPS_22VP931, tag, owner, clock), m_i8049_cpu(*this, "vp931"), m_tracktimer(nullptr), m_i8049_out0(0), diff --git a/src/devices/machine/ldvp931.h b/src/devices/machine/ldvp931.h index 963b6e70cb6..5136818ceeb 100644 --- a/src/devices/machine/ldvp931.h +++ b/src/devices/machine/ldvp931.h @@ -8,10 +8,10 @@ *************************************************************************/ -#pragma once +#ifndef MAME_MACHINE_LDVP931_H +#define MAME_MACHINE_LDVP931_H -#ifndef __LDVP931_H__ -#define __LDVP931_H__ +#pragma once #include "laserdsc.h" #include "cpu/mcs48/mcs48.h" @@ -30,7 +30,7 @@ //************************************************************************** // device type definition -extern const device_type PHILLIPS_22VP931; +DECLARE_DEVICE_TYPE(PHILLIPS_22VP931, phillips_22vp931_device) @@ -134,5 +134,4 @@ protected: int16_t m_advanced; // number of frames advanced }; - -#endif +#endif // MAME_MACHINE_LDVP931_H diff --git a/src/devices/machine/legscsi.cpp b/src/devices/machine/legscsi.cpp index 03b73b09ec9..c379c797f73 100644 --- a/src/devices/machine/legscsi.cpp +++ b/src/devices/machine/legscsi.cpp @@ -3,8 +3,8 @@ #include "emu.h" #include "legscsi.h" -legacy_scsi_host_adapter::legacy_scsi_host_adapter(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source) +legacy_scsi_host_adapter::legacy_scsi_host_adapter(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) , m_selected(0) , m_scsi_port(*this, finder_base::DUMMY_TAG) { @@ -49,7 +49,7 @@ void legacy_scsi_host_adapter::send_command(uint8_t *data, int bytes) } else { - logerror("%s: send_command unknown SCSI id %d\n", tag(), m_selected); + logerror("send_command unknown SCSI id %d\n", m_selected); } } @@ -64,7 +64,7 @@ int legacy_scsi_host_adapter::get_length(void) } else { - logerror("%s: get_length unknown SCSI id %d\n", tag(), m_selected); + logerror("get_length unknown SCSI id %d\n", m_selected); return 0; } } @@ -80,7 +80,7 @@ int legacy_scsi_host_adapter::get_phase(void) } else { - logerror("%s: get_phase unknown SCSI id %d\n", tag(), m_selected); + logerror("get_phase unknown SCSI id %d\n", m_selected); return 0; } } @@ -94,7 +94,7 @@ void legacy_scsi_host_adapter::read_data(uint8_t *data, int bytes) } else { - logerror("%s: read_data unknown SCSI id %d\n", tag(), m_selected); + logerror("read_data unknown SCSI id %d\n", m_selected); } } @@ -107,7 +107,7 @@ void legacy_scsi_host_adapter::write_data(uint8_t *data, int bytes) } else { - logerror("%s: write_data unknown SCSI id %d\n", tag(), m_selected); + logerror("write_data unknown SCSI id %d\n", m_selected); } } @@ -126,17 +126,17 @@ uint8_t legacy_scsi_host_adapter::get_status() } else { - logerror("%s: get_status unknown SCSI id %d\n", tag(), m_selected); + logerror("get_status unknown SCSI id %d\n", m_selected); return 0; } } scsihle_device *legacy_scsi_host_adapter::get_device(int id) { - // steal scsi devices from bus + // steal SCSI devices from bus for (device_t &device : m_scsi_port->subdevices()) { - SCSI_PORT_SLOT_device *slot = dynamic_cast(&device); + scsi_port_slot_device *slot = dynamic_cast(&device); if (slot != nullptr) { scsihle_device *scsidev = dynamic_cast(slot->dev()); diff --git a/src/devices/machine/legscsi.h b/src/devices/machine/legscsi.h index 09384c8585d..cf6482f0067 100644 --- a/src/devices/machine/legscsi.h +++ b/src/devices/machine/legscsi.h @@ -1,7 +1,7 @@ // license:BSD-3-Clause // copyright-holders:smf -#ifndef _LEGSCSI_H_ -#define _LEGSCSI_H_ +#ifndef MAME_MACHINE_LEGSCSI_H +#define MAME_MACHINE_LEGSCSI_H #pragma once @@ -13,11 +13,11 @@ class legacy_scsi_host_adapter : public device_t { public: - legacy_scsi_host_adapter(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - static void set_scsi_port(device_t &device, const char *tag) { downcast(device).m_scsi_port.set_tag(tag); } protected: + legacy_scsi_host_adapter(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; void reset_bus(); @@ -33,7 +33,7 @@ private: int m_selected; scsihle_device *get_device(int id); - required_device m_scsi_port; + required_device m_scsi_port; }; -#endif +#endif // MAME_MACHINE_LEGSCSI_H diff --git a/src/devices/machine/lh5810.cpp b/src/devices/machine/lh5810.cpp index 590037aa940..8e427ab3bcf 100644 --- a/src/devices/machine/lh5810.cpp +++ b/src/devices/machine/lh5810.cpp @@ -13,11 +13,32 @@ #include "emu.h" #include "lh5810.h" +//************************************************************************* +// MACROS / CONSTANTS +//************************************************************************* + +enum +{ + LH5810_RESET = 4, + LH5810_U, + LH5810_L, + LH5820_F, + LH5810_OPC, + LH5810_G, + LH5810_MSK, + LH5810_IF, + LH5810_DDA, + LH5810_DDB, + LH5810_OPA, + LH5810_OPB +}; + + //************************************************************************** // GLOBAL VARIABLES //************************************************************************** -const device_type LH5810 = device_creator; +DEFINE_DEVICE_TYPE(LH5810, lh5810_device, "lh5810", "LH5810 I/O Port") //************************************************************************** // LIVE DEVICE @@ -28,13 +49,14 @@ const device_type LH5810 = device_creator; //------------------------------------------------- lh5810_device::lh5810_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, LH5810, "LH5810", tag, owner, clock, "lh5810", __FILE__), - m_porta_r_cb(*this), - m_porta_w_cb(*this), - m_portb_r_cb(*this), - m_portb_w_cb(*this), - m_portc_w_cb(*this), - m_out_int_cb(*this), m_irq(0) + : device_t(mconfig, LH5810, tag, owner, clock) + , m_porta_r_cb(*this) + , m_porta_w_cb(*this) + , m_portb_r_cb(*this) + , m_portb_w_cb(*this) + , m_portc_w_cb(*this) + , m_out_int_cb(*this) + , m_irq(0) { } diff --git a/src/devices/machine/lh5810.h b/src/devices/machine/lh5810.h index ffb4fd4ccbe..8e105a01f2e 100644 --- a/src/devices/machine/lh5810.h +++ b/src/devices/machine/lh5810.h @@ -6,31 +6,10 @@ **********************************************************************/ -#pragma once - -#ifndef __LH5810__ -#define __LH5810__ - +#ifndef MAME_MACHINE_LH5810_H +#define MAME_MACHINE_LH5810_H -//************************************************************************* -// MACROS / CONSTANTS -//************************************************************************* - -enum -{ - LH5810_RESET = 4, - LH5810_U, - LH5810_L, - LH5820_F, - LH5810_OPC, - LH5810_G, - LH5810_MSK, - LH5810_IF, - LH5810_DDA, - LH5810_DDB, - LH5810_OPA, - LH5810_OPB -}; +#pragma once //************************************************************************* @@ -63,18 +42,18 @@ enum // ======================> lh5810_device -class lh5810_device : public device_t +class lh5810_device : public device_t { public: // construction/destruction lh5810_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_porta_r_callback(device_t &device, _Object object) { return downcast(device).m_porta_r_cb.set_callback(object); } - template static devcb_base &set_porta_w_callback(device_t &device, _Object object) { return downcast(device).m_porta_w_cb.set_callback(object); } - template static devcb_base &set_portb_r_callback(device_t &device, _Object object) { return downcast(device).m_portb_r_cb.set_callback(object); } - template static devcb_base &set_portb_w_callback(device_t &device, _Object object) { return downcast(device).m_portb_w_cb.set_callback(object); } - template static devcb_base &set_portc_w_callback(device_t &device, _Object object) { return downcast(device).m_portc_w_cb.set_callback(object); } - template static devcb_base &set_out_int_callback(device_t &device, _Object object) { return downcast(device).m_out_int_cb.set_callback(object); } + template static devcb_base &set_porta_r_callback(device_t &device, Object &&cb) { return downcast(device).m_porta_r_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_porta_w_callback(device_t &device, Object &&cb) { return downcast(device).m_porta_w_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_portb_r_callback(device_t &device, Object &&cb) { return downcast(device).m_portb_r_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_portb_w_callback(device_t &device, Object &&cb) { return downcast(device).m_portb_w_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_portc_w_callback(device_t &device, Object &&cb) { return downcast(device).m_portc_w_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_int_callback(device_t &device, Object &&cb) { return downcast(device).m_out_int_cb.set_callback(std::forward(cb)); } DECLARE_READ8_MEMBER( data_r ); DECLARE_WRITE8_MEMBER( data_w ); @@ -100,6 +79,6 @@ private: // device type definition -extern const device_type LH5810; +DECLARE_DEVICE_TYPE(LH5810, lh5810_device) -#endif +#endif // MAME_MACHINE_LH5810_H diff --git a/src/devices/machine/linflash.cpp b/src/devices/machine/linflash.cpp index a068997240c..3943adf515c 100644 --- a/src/devices/machine/linflash.cpp +++ b/src/devices/machine/linflash.cpp @@ -3,10 +3,16 @@ #include "emu.h" #include "linflash.h" -linear_flash_pccard_device::linear_flash_pccard_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock,const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), +DEFINE_DEVICE_TYPE(LINEAR_FLASH_PCCARD_16MB, linear_flash_pccard_16mb_device, "linearflash16mb", "Linear Flash PC Card (16MB)") +DEFINE_DEVICE_TYPE(LINEAR_FLASH_PCCARD_32MB, linear_flash_pccard_32mb_device, "linearflash32mb", "Linear Flash PC Card (32MB)") +DEFINE_DEVICE_TYPE(LINEAR_FLASH_PCCARD_64MB, linear_flash_pccard_64mb_device, "linearflash64mb", "Linear Flash PC Card (64MB)") + + +linear_flash_pccard_device::linear_flash_pccard_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), device_memory_interface(mconfig, *this), - device_slot_card_interface(mconfig, *this), m_space(nullptr) + device_slot_card_interface(mconfig, *this), + m_space(nullptr) { } @@ -15,9 +21,9 @@ void linear_flash_pccard_device::device_start() m_space = &space(AS_0); } -const address_space_config *linear_flash_pccard_device::memory_space_config( address_spacenum spacenum ) const +const address_space_config *linear_flash_pccard_device::memory_space_config(address_spacenum spacenum) const { - return ( spacenum == AS_0 ) ? &m_space_config : nullptr; + return (spacenum == AS_0) ? &m_space_config : nullptr; } READ16_MEMBER( linear_flash_pccard_device::read_memory ) @@ -34,8 +40,6 @@ WRITE16_MEMBER( linear_flash_pccard_device::write_memory ) } -const device_type LINEAR_FLASH_PCCARD_16MB = device_creator; - static ADDRESS_MAP_START(linear_flash_pccard_16mb, AS_0, 16, linear_flash_pccard_16mb_device) ADDRESS_MAP_UNMAP_HIGH AM_RANGE(0x00000000, 0x003fffff) AM_DEVREADWRITE8("1l", intelfsh8_device, read, write, 0x00ff) @@ -49,7 +53,7 @@ static ADDRESS_MAP_START(linear_flash_pccard_16mb, AS_0, 16, linear_flash_pccard ADDRESS_MAP_END linear_flash_pccard_16mb_device::linear_flash_pccard_16mb_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - linear_flash_pccard_device(mconfig, LINEAR_FLASH_PCCARD_16MB, "Linear Flash PCCARD (16MB)", tag, owner, clock, "linearflash16mb", __FILE__) + linear_flash_pccard_device(mconfig, LINEAR_FLASH_PCCARD_16MB, tag, owner, clock) { m_space_config = address_space_config("memory", ENDIANNESS_LITTLE, 16, 26, 0, *ADDRESS_MAP_NAME( linear_flash_pccard_16mb ) ); } @@ -71,8 +75,6 @@ machine_config_constructor linear_flash_pccard_16mb_device::device_mconfig_addit } -const device_type LINEAR_FLASH_PCCARD_32MB = device_creator; - static ADDRESS_MAP_START(linear_flash_pccard_32mb, AS_0, 16, linear_flash_pccard_32mb_device) ADDRESS_MAP_UNMAP_HIGH AM_RANGE(0x00000000, 0x003fffff) AM_DEVREADWRITE8("1l", intelfsh8_device, read, write, 0x00ff) @@ -94,7 +96,7 @@ static ADDRESS_MAP_START(linear_flash_pccard_32mb, AS_0, 16, linear_flash_pccard ADDRESS_MAP_END linear_flash_pccard_32mb_device::linear_flash_pccard_32mb_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - linear_flash_pccard_device(mconfig, LINEAR_FLASH_PCCARD_32MB, "Linear Flash PCCARD (32MB)", tag, owner, clock, "linearflash32mb", __FILE__) + linear_flash_pccard_device(mconfig, LINEAR_FLASH_PCCARD_32MB, tag, owner, clock) { m_space_config = address_space_config("memory", ENDIANNESS_LITTLE, 16, 26, 0, *ADDRESS_MAP_NAME( linear_flash_pccard_32mb ) ); } @@ -124,8 +126,6 @@ machine_config_constructor linear_flash_pccard_32mb_device::device_mconfig_addit } -const device_type LINEAR_FLASH_PCCARD_64MB = device_creator; - static ADDRESS_MAP_START(linear_flash_pccard_64mb, AS_0, 16, linear_flash_pccard_64mb_device) ADDRESS_MAP_UNMAP_HIGH AM_RANGE(0x00000000, 0x003fffff) AM_DEVREADWRITE8("1l", intelfsh8_device, read, write, 0x00ff) @@ -163,7 +163,7 @@ static ADDRESS_MAP_START(linear_flash_pccard_64mb, AS_0, 16, linear_flash_pccard ADDRESS_MAP_END linear_flash_pccard_64mb_device::linear_flash_pccard_64mb_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - linear_flash_pccard_device(mconfig, LINEAR_FLASH_PCCARD_64MB, "Linear Flash PCCARD (64MB)", tag, owner, clock, "linearflash64mb", __FILE__) + linear_flash_pccard_device(mconfig, LINEAR_FLASH_PCCARD_64MB, tag, owner, clock) { m_space_config = address_space_config("memory", ENDIANNESS_LITTLE, 16, 26, 0, *ADDRESS_MAP_NAME( linear_flash_pccard_64mb ) ); } diff --git a/src/devices/machine/linflash.h b/src/devices/machine/linflash.h index 10428bb7df5..f6d58a33f93 100644 --- a/src/devices/machine/linflash.h +++ b/src/devices/machine/linflash.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:smf -#pragma once +#ifndef MAME_MACHINE_LINFLASH_H +#define MAME_MACHINE_LINFLASH_H -#ifndef __LINFLASH_H__ -#define __LINFLASH_H__ +#pragma once #include "intelfsh.h" #include "machine/pccard.h" @@ -18,21 +18,19 @@ public: virtual DECLARE_WRITE16_MEMBER(write_memory) override; protected: - linear_flash_pccard_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock,const char *shortname, const char *source); + linear_flash_pccard_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); // device-level overrides virtual void device_start() override; // device_memory_interface overrides - virtual const address_space_config *memory_space_config( address_spacenum spacenum = AS_0 ) const override; + virtual const address_space_config *memory_space_config(address_spacenum spacenum) const override; address_space_config m_space_config; address_space *m_space; }; -extern const device_type LINEAR_FLASH_PCCARD_16MB; - class linear_flash_pccard_16mb_device : public linear_flash_pccard_device { public: @@ -44,8 +42,6 @@ protected: }; -extern const device_type LINEAR_FLASH_PCCARD_32MB; - class linear_flash_pccard_32mb_device : public linear_flash_pccard_device { public: @@ -56,7 +52,6 @@ protected: virtual machine_config_constructor device_mconfig_additions() const override; }; -extern const device_type LINEAR_FLASH_PCCARD_64MB; class linear_flash_pccard_64mb_device : public linear_flash_pccard_device { @@ -68,4 +63,9 @@ protected: virtual machine_config_constructor device_mconfig_additions() const override; }; -#endif + +DECLARE_DEVICE_TYPE(LINEAR_FLASH_PCCARD_16MB, linear_flash_pccard_16mb_device) +DECLARE_DEVICE_TYPE(LINEAR_FLASH_PCCARD_32MB, linear_flash_pccard_32mb_device) +DECLARE_DEVICE_TYPE(LINEAR_FLASH_PCCARD_64MB, linear_flash_pccard_64mb_device) + +#endif // MAME_MACHINE_LINFLASH_H diff --git a/src/devices/machine/lpc-acpi.cpp b/src/devices/machine/lpc-acpi.cpp index 0b18a7fe15b..3d584c72cdd 100644 --- a/src/devices/machine/lpc-acpi.cpp +++ b/src/devices/machine/lpc-acpi.cpp @@ -3,7 +3,7 @@ #include "emu.h" #include "lpc-acpi.h" -const device_type LPC_ACPI = device_creator; +DEFINE_DEVICE_TYPE(LPC_ACPI, lpc_acpi_device, "lpc_acpi", "LPC ACPI") DEVICE_ADDRESS_MAP_START(map, 32, lpc_acpi_device) AM_RANGE(0x00, 0x03) AM_READWRITE16(pm1_sts_r, pm1_sts_w, 0x0000ffff) @@ -38,7 +38,7 @@ DEVICE_ADDRESS_MAP_START(map, 32, lpc_acpi_device) ADDRESS_MAP_END lpc_acpi_device::lpc_acpi_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : lpc_device(mconfig, LPC_ACPI, "LPC ACPI", tag, owner, clock, "lpc_acpi", __FILE__) + : lpc_device(mconfig, LPC_ACPI, tag, owner, clock) { } diff --git a/src/devices/machine/lpc-acpi.h b/src/devices/machine/lpc-acpi.h index 68badc4c337..0159f974517 100644 --- a/src/devices/machine/lpc-acpi.h +++ b/src/devices/machine/lpc-acpi.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Olivier Galibert -#ifndef LPC_ACPI_H -#define LPC_ACPI_H +#ifndef MAME_MACHINE_LPC_ACPI_H +#define MAME_MACHINE_LPC_ACPI_H + +#pragma once #include "lpc.h" @@ -83,6 +85,6 @@ private: DECLARE_ADDRESS_MAP(map, 32); }; -extern const device_type LPC_ACPI; +DECLARE_DEVICE_TYPE(LPC_ACPI, lpc_acpi_device) -#endif +#endif // MAME_MACHINE_LPC_ACPI_H diff --git a/src/devices/machine/lpc-pit.cpp b/src/devices/machine/lpc-pit.cpp index 803c7fd0aee..dea817513bf 100644 --- a/src/devices/machine/lpc-pit.cpp +++ b/src/devices/machine/lpc-pit.cpp @@ -3,7 +3,7 @@ #include "emu.h" #include "lpc-pit.h" -const device_type LPC_PIT = device_creator; +DEFINE_DEVICE_TYPE(LPC_PIT, lpc_pit_device, "lpc_pit", "LPC PIT") DEVICE_ADDRESS_MAP_START(map, 32, lpc_pit_device) AM_RANGE(0x40, 0x43) AM_READWRITE8(status_r, access_w, 0x00ffffff) @@ -13,7 +13,7 @@ DEVICE_ADDRESS_MAP_START(map, 32, lpc_pit_device) ADDRESS_MAP_END lpc_pit_device::lpc_pit_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : lpc_device(mconfig, LPC_PIT, "LPC PIT", tag, owner, clock, "lpc_pit", __FILE__) + : lpc_device(mconfig, LPC_PIT, tag, owner, clock) { } diff --git a/src/devices/machine/lpc-pit.h b/src/devices/machine/lpc-pit.h index 25fad7f05d2..fd0046d1d7c 100644 --- a/src/devices/machine/lpc-pit.h +++ b/src/devices/machine/lpc-pit.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Olivier Galibert -#ifndef LPC_PIT_H -#define LPC_PIT_H +#ifndef MAME_MACHINE_LPC_PIT_H +#define MAME_MACHINE_LPC_PIT_H + +#pragma once #include "lpc.h" @@ -27,6 +29,6 @@ private: DECLARE_ADDRESS_MAP(map, 32); }; -extern const device_type LPC_PIT; +DECLARE_DEVICE_TYPE(LPC_PIT, lpc_pit_device) -#endif +#endif // MAME_MACHINE_LPC_PIT_H diff --git a/src/devices/machine/lpc-rtc.cpp b/src/devices/machine/lpc-rtc.cpp index 65c49650e0c..ff9c942b50e 100644 --- a/src/devices/machine/lpc-rtc.cpp +++ b/src/devices/machine/lpc-rtc.cpp @@ -3,7 +3,7 @@ #include "emu.h" #include "lpc-rtc.h" -const device_type LPC_RTC = device_creator; +DEFINE_DEVICE_TYPE(LPC_RTC, lpc_rtc_device, "lpc_rpc", "LPC RTC") DEVICE_ADDRESS_MAP_START(map, 32, lpc_rtc_device) AM_RANGE(0x70, 0x77) AM_READWRITE8(index_r, index_w, 0x00ff00ff) @@ -16,7 +16,7 @@ DEVICE_ADDRESS_MAP_START(extmap, 32, lpc_rtc_device) ADDRESS_MAP_END lpc_rtc_device::lpc_rtc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : lpc_device(mconfig, LPC_RTC, "LPC RTC", tag, owner, clock, "lpc_rtc", __FILE__), cur_index(0), cur_extindex(0) + : lpc_device(mconfig, LPC_RTC, tag, owner, clock), cur_index(0), cur_extindex(0) { } diff --git a/src/devices/machine/lpc-rtc.h b/src/devices/machine/lpc-rtc.h index c4c1c611867..2d00084dbd2 100644 --- a/src/devices/machine/lpc-rtc.h +++ b/src/devices/machine/lpc-rtc.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Olivier Galibert -#ifndef LPC_RTC_H -#define LPC_RTC_H +#ifndef MAME_MACHINE_LPC_RTC_H +#define MAME_MACHINE_LPC_RTC_H + +#pragma once #include "lpc.h" @@ -39,6 +41,6 @@ private: uint8_t ram[256]; }; -extern const device_type LPC_RTC; +DECLARE_DEVICE_TYPE(LPC_RTC, lpc_rtc_device) -#endif +#endif // MAME_MACHINE_LPC_RTC_H diff --git a/src/devices/machine/lpc.cpp b/src/devices/machine/lpc.cpp deleted file mode 100644 index b1903fb6cfc..00000000000 --- a/src/devices/machine/lpc.cpp +++ /dev/null @@ -1,9 +0,0 @@ -// license:BSD-3-Clause -// copyright-holders:Olivier Galibert -#include "emu.h" -#include "lpc.h" - -lpc_device::lpc_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source) -{ -} diff --git a/src/devices/machine/lpc.h b/src/devices/machine/lpc.h index 5f1c80ee8a2..5c673f751fc 100644 --- a/src/devices/machine/lpc.h +++ b/src/devices/machine/lpc.h @@ -1,15 +1,18 @@ // license:BSD-3-Clause // copyright-holders:Olivier Galibert -#ifndef LPC_H -#define LPC_H +#ifndef MAME_MACHINE_LPC_H +#define MAME_MACHINE_LPC_H + +#pragma once class lpc_device : public device_t { public: - lpc_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - virtual void map_device(uint64_t memory_window_start, uint64_t memory_window_end, uint64_t memory_offset, address_space *memory_space, uint64_t io_window_start, uint64_t io_window_end, uint64_t io_offset, address_space *io_space) = 0; + +protected: + using device_t::device_t; }; -#endif +#endif // MAME_MACHINE_LPC_H diff --git a/src/devices/machine/lpci.cpp b/src/devices/machine/lpci.cpp index ac94da1be17..9f5ad8dff88 100644 --- a/src/devices/machine/lpci.cpp +++ b/src/devices/machine/lpci.cpp @@ -74,13 +74,15 @@ #include "emu.h" #include "machine/lpci.h" -#define LOG_PCI 0 +//#define VERBOSE 1 +#include "logmacro.h" + //************************************************************************** // GLOBAL VARIABLES //************************************************************************** -const device_type PCI_BUS_LEGACY = device_creator; +DEFINE_DEVICE_TYPE(PCI_BUS_LEGACY, pci_bus_legacy_device, "pci_bus_legacy", "PCI Bus Legacy") //************************************************************************** // LIVE DEVICE @@ -90,8 +92,8 @@ const device_type PCI_BUS_LEGACY = device_creator; // pci_bus_legacy_device - constructor //------------------------------------------------- pci_bus_legacy_device::pci_bus_legacy_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, PCI_BUS_LEGACY, "PCI Bus Legacy", tag, owner, clock, "pci_bus_legacy", __FILE__), - m_father(nullptr) + device_t(mconfig, PCI_BUS_LEGACY, tag, owner, clock), + m_father(nullptr) { for (int i = 0; i < ARRAY_LENGTH(m_devtag); i++) { m_devtag[i]= nullptr; @@ -132,8 +134,7 @@ READ32_MEMBER( pci_bus_legacy_device::read ) break; } - if (LOG_PCI) - logerror("read('%s'): offset=%d result=0x%08X\n", tag(), offset, result); + LOG("read('%s'): offset=%d result=0x%08X\n", tag(), offset, result); return result; } @@ -164,8 +165,7 @@ WRITE32_MEMBER( pci_bus_legacy_device::write ) { offset %= 2; - if (LOG_PCI) - logerror("write('%s'): offset=%d data=0x%08X\n", tag(), offset, data); + LOG("write('%s'): offset=%d data=0x%08X\n", tag(), offset, data); switch (offset) { @@ -185,8 +185,7 @@ WRITE32_MEMBER( pci_bus_legacy_device::write ) } else m_devicenum = -1; - if (LOG_PCI) - logerror(" bus:%d device:%d\n", busnum, devicenum); + LOG(" bus:%d device:%d\n", busnum, devicenum); } break; @@ -200,8 +199,7 @@ WRITE32_MEMBER( pci_bus_legacy_device::write ) int reg = (m_address >> 0) & 0xfc; (*write)(m_busnumaddr, m_busnumaddr->m_device[m_devicenum], function, reg, data, mem_mask); } - if (LOG_PCI) - logerror(" function:%d register:%d\n", (m_address >> 8) & 0x07, (m_address >> 0) & 0xfc); + LOG(" function:%d register:%d\n", (m_address >> 8) & 0x07, (m_address >> 0) & 0xfc); } break; } diff --git a/src/devices/machine/lpci.h b/src/devices/machine/lpci.h index b53b3fe1ae0..06ed6090e51 100644 --- a/src/devices/machine/lpci.h +++ b/src/devices/machine/lpci.h @@ -8,8 +8,10 @@ ***************************************************************************/ -#ifndef LPCI_H -#define LPCI_H +#ifndef MAME_MACHINE_LPCI_H +#define MAME_MACHINE_LPCI_H + +#pragma once //************************************************************************** // TYPE DEFINITIONS @@ -64,7 +66,7 @@ private: }; // device type definition -extern const device_type PCI_BUS_LEGACY; +DECLARE_DEVICE_TYPE(PCI_BUS_LEGACY, pci_bus_legacy_device) /*************************************************************************** @@ -80,4 +82,4 @@ extern const device_type PCI_BUS_LEGACY; downcast(device)->set_father(_father_tag); -#endif /* PCI_H */ +#endif // MAME_MACHINE_LPCI_H diff --git a/src/devices/machine/m6m80011ap.cpp b/src/devices/machine/m6m80011ap.cpp index 9fedabf18a9..79d7073c331 100644 --- a/src/devices/machine/m6m80011ap.cpp +++ b/src/devices/machine/m6m80011ap.cpp @@ -1,10 +1,5 @@ // license:BSD-3-Clause // copyright-holders:Angelo Salese -/*************************************************************************** - -Template for skeleton device - -***************************************************************************/ #include "emu.h" #include "machine/m6m80011ap.h" @@ -16,7 +11,7 @@ Template for skeleton device //************************************************************************** // device type definition -const device_type M6M80011AP = device_creator; +DEFINE_DEVICE_TYPE(M6M80011AP, m6m80011ap_device, "m6m80011ap", "M6M80011AP EEPROM") //************************************************************************** @@ -28,8 +23,9 @@ const device_type M6M80011AP = device_creator; //------------------------------------------------- m6m80011ap_device::m6m80011ap_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, M6M80011AP, "M6M80011AP EEPROM", tag, owner, clock, "m6m80011ap", __FILE__), - device_nvram_interface(mconfig, *this), m_latch(0), m_reset_line(0), m_cmd_stream_pos(0), m_current_cmd(0), m_read_latch(0), m_current_addr(0), m_eeprom_we(0), m_eeprom_state() + : device_t(mconfig, M6M80011AP, tag, owner, clock) + , device_nvram_interface(mconfig, *this) + , m_latch(0), m_reset_line(0), m_cmd_stream_pos(0), m_current_cmd(0), m_read_latch(0), m_current_addr(0), m_eeprom_we(0), m_eeprom_state() { } diff --git a/src/devices/machine/m6m80011ap.h b/src/devices/machine/m6m80011ap.h index cbd2e185669..0f30ccb3505 100644 --- a/src/devices/machine/m6m80011ap.h +++ b/src/devices/machine/m6m80011ap.h @@ -1,16 +1,10 @@ // license:BSD-3-Clause // copyright-holders:Angelo Salese -/*************************************************************************** - -Template for skeleton device - -***************************************************************************/ +#ifndef MAME_MACHINE_M6M80011AP_H +#define MAME_MACHINE_M6M80011AP_H #pragma once -#ifndef __M6M80011APDEV_H__ -#define __M6M80011APDEV_H__ - //************************************************************************** @@ -25,17 +19,6 @@ Template for skeleton device // TYPE DEFINITIONS //************************************************************************** -enum eeprom_cmd_t -{ - EEPROM_GET_CMD = 0, - EEPROM_READ, - EEPROM_WRITE, - EEPROM_WRITE_ENABLE, - EEPROM_WRITE_DISABLE, - EEPROM_STATUS_OUTPUT -}; - - // ======================> m6m80011ap_device class m6m80011ap_device : public device_t, @@ -63,6 +46,16 @@ protected: virtual void nvram_write(emu_file &file) override; private: + enum eeprom_cmd_t + { + EEPROM_GET_CMD = 0, + EEPROM_READ, + EEPROM_WRITE, + EEPROM_WRITE_ENABLE, + EEPROM_WRITE_DISABLE, + EEPROM_STATUS_OUTPUT + }; + uint8_t m_latch; uint8_t m_reset_line; uint8_t m_cmd_stream_pos; @@ -73,19 +66,10 @@ private: eeprom_cmd_t m_eeprom_state; uint16_t m_eeprom_data[0x80]; - }; // device type definition -extern const device_type M6M80011AP; - - - -//************************************************************************** -// GLOBAL VARIABLES -//************************************************************************** - - +DECLARE_DEVICE_TYPE(M6M80011AP, m6m80011ap_device) -#endif +#endif // MAME_MACHINE_M6M80011AP_H diff --git a/src/devices/machine/mb14241.cpp b/src/devices/machine/mb14241.cpp index c341fe8679e..604944bcb11 100644 --- a/src/devices/machine/mb14241.cpp +++ b/src/devices/machine/mb14241.cpp @@ -15,10 +15,10 @@ //------------------------------------------------- -const device_type MB14241 = device_creator; +DEFINE_DEVICE_TYPE(MB14241, mb14241_device, "mb14241", "MB14241 Data Shifter") mb14241_device::mb14241_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MB14241, "MB14241 Data Shifter", tag, owner, clock, "mb14241", __FILE__), m_shift_data(0), m_shift_count(0) + : device_t(mconfig, MB14241, tag, owner, clock), m_shift_data(0), m_shift_count(0) { } diff --git a/src/devices/machine/mb14241.h b/src/devices/machine/mb14241.h index c3dbd0d55ed..30ffce71424 100644 --- a/src/devices/machine/mb14241.h +++ b/src/devices/machine/mb14241.h @@ -6,8 +6,10 @@ *****************************************************************************/ -#ifndef __MB14241_H__ -#define __MB14241_H__ +#ifndef MAME_MACHINE_MB14241_H +#define MAME_MACHINE_MB14241_H + +#pragma once class mb14241_device : public device_t @@ -15,8 +17,8 @@ class mb14241_device : public device_t public: mb14241_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - DECLARE_WRITE8_MEMBER ( shift_count_w ); - DECLARE_WRITE8_MEMBER ( shift_data_w ); + DECLARE_WRITE8_MEMBER( shift_count_w ); + DECLARE_WRITE8_MEMBER( shift_data_w ); DECLARE_READ8_MEMBER( shift_result_r ); protected: @@ -31,7 +33,7 @@ private: uint8_t m_shift_count; /* 3 bits */ }; -extern const device_type MB14241; +DECLARE_DEVICE_TYPE(MB14241, mb14241_device) /*************************************************************************** @@ -41,4 +43,4 @@ extern const device_type MB14241; #define MCFG_MB14241_ADD(_tag) \ MCFG_DEVICE_ADD(_tag, MB14241, 0) -#endif /* __MB14241_H__ */ +#endif // MAME_MACHINE_MB14241_H diff --git a/src/devices/machine/mb3773.cpp b/src/devices/machine/mb3773.cpp index d57e3edd0ca..bdae170315c 100644 --- a/src/devices/machine/mb3773.cpp +++ b/src/devices/machine/mb3773.cpp @@ -23,14 +23,14 @@ //************************************************************************** // device type definition -const device_type MB3773 = device_creator; +DEFINE_DEVICE_TYPE(MB3773, mb3773_device, "mb3773", "MB3773 Power Supply Monitor") //------------------------------------------------- // mb3773_device - constructor //------------------------------------------------- mb3773_device::mb3773_device( const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock ) - : device_t(mconfig, MB3773, "MB3773 Power Supply Monitor", tag, owner, clock, "mb3773", __FILE__), m_watchdog_timer(nullptr), m_ck(0) + : device_t(mconfig, MB3773, tag, owner, clock), m_watchdog_timer(nullptr), m_ck(0) { } diff --git a/src/devices/machine/mb3773.h b/src/devices/machine/mb3773.h index 85142cdaf2b..21dbb8fa548 100644 --- a/src/devices/machine/mb3773.h +++ b/src/devices/machine/mb3773.h @@ -8,10 +8,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_MACHINE_MB3773_H +#define MAME_MACHINE_MB3773_H -#ifndef __MB3773_H__ -#define __MB3773_H__ +#pragma once //************************************************************************** @@ -24,8 +24,7 @@ // ======================> mb3773_device -class mb3773_device : - public device_t +class mb3773_device : public device_t { public: // construction/destruction @@ -51,6 +50,6 @@ private: // device type definition -extern const device_type MB3773; +DECLARE_DEVICE_TYPE(MB3773, mb3773_device) -#endif +#endif // MAME_MACHINE_MB3773_H diff --git a/src/devices/machine/mb8421.cpp b/src/devices/machine/mb8421.cpp index 43e095cdbea..29ef6664d3d 100644 --- a/src/devices/machine/mb8421.cpp +++ b/src/devices/machine/mb8421.cpp @@ -15,14 +15,14 @@ #include "machine/mb8421.h" -const device_type MB8421 = device_creator; +DEFINE_DEVICE_TYPE(MB8421, mb8421_device, "mb8421", "MB8421 DPSRAM") //------------------------------------------------- // mb8421_device - constructor //------------------------------------------------- mb8421_device::mb8421_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MB8421, "MB8421 DPSRAM", tag, owner, clock, "mb8421", __FILE__), + : device_t(mconfig, MB8421, tag, owner, clock), m_intl_handler(*this), m_intr_handler(*this) { diff --git a/src/devices/machine/mb8421.h b/src/devices/machine/mb8421.h index 693d614cfe2..6d5b5e027d8 100644 --- a/src/devices/machine/mb8421.h +++ b/src/devices/machine/mb8421.h @@ -7,10 +7,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_MACHINE_MB8421_H +#define MAME_MACHINE_MB8421_H -#ifndef _MB8421_H -#define _MB8421_H +#pragma once @@ -40,8 +40,8 @@ public: mb8421_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // static configuration helpers - template static devcb_base &set_intl_handler(device_t &device, _Object object) { return downcast(device).m_intl_handler.set_callback(object); } - template static devcb_base &set_intr_handler(device_t &device, _Object object) { return downcast(device).m_intr_handler.set_callback(object); } + template static devcb_base &set_intl_handler(device_t &device, Object &&cb) { return downcast(device).m_intl_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_intr_handler(device_t &device, Object &&cb) { return downcast(device).m_intr_handler.set_callback(std::forward(cb)); } DECLARE_READ_LINE_MEMBER( busy_r ) { return 0; } // _BUSY pin - not emulated uint8_t peek(offs_t offset) { return m_ram[offset & 0x7ff]; } @@ -65,6 +65,6 @@ private: // device type definition extern const device_type MB8421; +DECLARE_DEVICE_TYPE(MB8421, mb8421_device) - -#endif /* _MB8421_H */ +#endif // MAME_MACHINE_MB8421_H diff --git a/src/devices/machine/mb87078.cpp b/src/devices/machine/mb87078.cpp index cab6460f412..4213dcb269a 100644 --- a/src/devices/machine/mb87078.cpp +++ b/src/devices/machine/mb87078.cpp @@ -102,10 +102,10 @@ static const int mb87078_gain_percent[66] = { DEVICE INTERFACE *****************************************************************************/ -const device_type MB87078 = device_creator; +DEFINE_DEVICE_TYPE(MB87078, mb87078_device, "mb87078", "MB87078 Volume Controller") mb87078_device::mb87078_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MB87078, "MB87078 Volume Controller", tag, owner, clock, "mb87078", __FILE__), + : device_t(mconfig, MB87078, tag, owner, clock), m_channel_latch(0), m_reset_comp(0), m_gain_changed_cb(*this) diff --git a/src/devices/machine/mb87078.h b/src/devices/machine/mb87078.h index 0192b86db25..a82225ebc23 100644 --- a/src/devices/machine/mb87078.h +++ b/src/devices/machine/mb87078.h @@ -7,8 +7,10 @@ *****************************************************************************/ -#ifndef __MB87078_H__ -#define __MB87078_H__ +#ifndef MAME_MACHINE_MB87078_H +#define MAME_MACHINE_MB87078_H + +#pragma once /*************************************************************************** @@ -26,20 +28,17 @@ class mb87078_device : public device_t { public: mb87078_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~mb87078_device() {} - template static devcb_base &set_gain_changed_callback(device_t &device, _Object object) { return downcast(device).m_gain_changed_cb.set_callback(object); } + template static devcb_base &set_gain_changed_callback(device_t &device, Object &&cb) { return downcast(device).m_gain_changed_cb.set_callback(std::forward(cb)); } void data_w(int data, int dsel); void reset_comp_w(int level); - /* gain_decibel_r will return 'channel' gain on the device. Returned value represents channel gain expressed in decibels, Range from 0 to -32.0 (or -256.0 for -infinity) */ float gain_decibel_r(int channel); - /* gain_percent_r will return 'channel' gain on the device. Returned value represents channel gain expressed in percents of maximum volume. Range from 100 to 0. (100 = 0dB; 50 = -6dB; 0 = -infinity) @@ -63,6 +62,6 @@ private: devcb_write8 m_gain_changed_cb; }; -extern const device_type MB87078; +DECLARE_DEVICE_TYPE(MB87078, mb87078_device) -#endif /* __MB87078_H__ */ +#endif // MAME_MACHINE_MB87078_H diff --git a/src/devices/machine/mb8795.cpp b/src/devices/machine/mb8795.cpp index bf3aadba660..0b25871359a 100644 --- a/src/devices/machine/mb8795.cpp +++ b/src/devices/machine/mb8795.cpp @@ -4,7 +4,7 @@ #include "emu.h" #include "mb8795.h" -const device_type MB8795 = device_creator; +DEFINE_DEVICE_TYPE(MB8795, mb8795_device, "mb8795", "Fujitsu MB8795") DEVICE_ADDRESS_MAP_START(map, 8, mb8795_device) AM_RANGE(0x0, 0x0) AM_READWRITE(txstat_r, txstat_w) @@ -19,9 +19,11 @@ DEVICE_ADDRESS_MAP_START(map, 8, mb8795_device) ADDRESS_MAP_END mb8795_device::mb8795_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, MB8795, "Fujitsu MB8795", tag, owner, clock, "mb8795", __FILE__), - device_network_interface(mconfig, *this, 10), txstat(0), txmask(0), rxstat(0), rxmask(0), txmode(0), rxmode(0), txlen(0), rxlen(0), txcount(0), drq_tx(false), - drq_rx(false), irq_tx(false), irq_rx(false), timer_tx(nullptr), timer_rx(nullptr), + device_t(mconfig, MB8795, tag, owner, clock), + device_network_interface(mconfig, *this, 10), + txstat(0), txmask(0), rxstat(0), rxmask(0), txmode(0), rxmode(0), txlen(0), rxlen(0), txcount(0), + drq_tx(false), drq_rx(false), irq_tx(false), irq_rx(false), + timer_tx(nullptr), timer_rx(nullptr), irq_tx_cb(*this), irq_rx_cb(*this), drq_tx_cb(*this), diff --git a/src/devices/machine/mb8795.h b/src/devices/machine/mb8795.h index dede6ff48bf..9120a20716b 100644 --- a/src/devices/machine/mb8795.h +++ b/src/devices/machine/mb8795.h @@ -1,7 +1,7 @@ // license:BSD-3-Clause // copyright-holders:Olivier Galibert -#ifndef MB8795_H -#define MB8795_H +#ifndef MAME_MACHINE_MB8795_H +#define MAME_MACHINE_MB8795_H #define MCFG_MB8795_ADD(_tag, _tx_irq, _rx_irq, _tx_drq, _rx_drq) \ MCFG_DEVICE_ADD(_tag, MB8795, 0) \ @@ -26,10 +26,10 @@ class mb8795_device : public device_t, public: mb8795_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_tx_irq_wr_callback(device_t &device, _Object object) { return downcast(device).irq_tx_cb.set_callback(object); } - template static devcb_base &set_rx_irq_wr_callback(device_t &device, _Object object) { return downcast(device).irq_rx_cb.set_callback(object); } - template static devcb_base &set_tx_drq_wr_callback(device_t &device, _Object object) { return downcast(device).drq_tx_cb.set_callback(object); } - template static devcb_base &set_rx_drq_wr_callback(device_t &device, _Object object) { return downcast(device).drq_rx_cb.set_callback(object); } + template static devcb_base &set_tx_irq_wr_callback(device_t &device, Object &&cb) { return downcast(device).irq_tx_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_rx_irq_wr_callback(device_t &device, Object &&cb) { return downcast(device).irq_rx_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_tx_drq_wr_callback(device_t &device, Object &&cb) { return downcast(device).drq_tx_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_rx_drq_wr_callback(device_t &device, Object &&cb) { return downcast(device).drq_rx_cb.set_callback(std::forward(cb)); } DECLARE_ADDRESS_MAP(map, 8); @@ -120,5 +120,6 @@ private: }; extern const device_type MB8795; +DECLARE_DEVICE_TYPE(MB8795, mb8795_device) -#endif +#endif // MAME_MACHINE_MB8795_H diff --git a/src/devices/machine/mb89352.cpp b/src/devices/machine/mb89352.cpp index ad27bae81e0..fdc245bd07a 100644 --- a/src/devices/machine/mb89352.cpp +++ b/src/devices/machine/mb89352.cpp @@ -104,11 +104,50 @@ #include "emu.h" #include "mb89352.h" +// SCSI lines readable via PSNS register (reg 5) +#define MB89352_LINE_REQ 0x80 +#define MB89352_LINE_ACK 0x40 +#define MB89352_LINE_ATN 0x20 +#define MB89352_LINE_SEL 0x10 +#define MB89352_LINE_BSY 0x08 +#define MB89352_LINE_MSG 0x04 +#define MB89352_LINE_CD 0x02 +#define MB89352_LINE_IO 0x01 + +// INTS bits +#define INTS_RESET 0x01 +#define INTS_HARD_ERROR 0x02 +#define INTS_TIMEOUT 0x04 +#define INTS_SERVICE_REQUIRED 0x08 +#define INTS_COMMAND_COMPLETE 0x10 +#define INTS_DISCONNECTED 0x20 +#define INTS_RESELECTION 0x40 +#define INTS_SELECTION 0x80 + +// SSTS status bits +#define SSTS_DREG_EMPTY 0x01 +#define SSTS_DREG_FULL 0x02 +#define SSTS_TC_ZERO 0x04 +#define SSTS_SCSI_RST 0x08 +#define SSTS_XFER_IN_PROGRESS 0x10 +#define SSTS_SPC_BSY 0x20 +#define SSTS_TARG_CONNECTED 0x40 +#define SSTS_INIT_CONNECTED 0x80 + +// SERR error status bits +#define SERR_OFFSET 0x01 +#define SERR_SHORT_XFR 0x02 +#define SERR_PHASE_ERR 0x04 +#define SERR_TC_PAR 0x08 +#define SERR_SPC_PAR 0x40 +#define SERR_SCSI_PAR 0x80 + + /* * Device config */ -const device_type MB89352A = device_creator; +DEFINE_DEVICE_TYPE(MB89352A, mb89352_device, "mb89352", "Fujitsu MB89352A") /* @@ -116,7 +155,7 @@ const device_type MB89352A = device_creator; */ mb89352_device::mb89352_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - legacy_scsi_host_adapter(mconfig, MB89352A, "MB89352A", tag, owner, clock, "mb89352", __FILE__), + legacy_scsi_host_adapter(mconfig, MB89352A, tag, owner, clock), m_irq_cb(*this), m_drq_cb(*this) { diff --git a/src/devices/machine/mb89352.h b/src/devices/machine/mb89352.h index 26cfd272c80..8a520281241 100644 --- a/src/devices/machine/mb89352.h +++ b/src/devices/machine/mb89352.h @@ -6,50 +6,11 @@ * Created on: 16/01/2011 */ -#ifndef MB89352_H_ -#define MB89352_H_ +#ifndef MAME_MACHINE_MB89352_H +#define MAME_MACHINE_MB89352_H #include "legscsi.h" -// SCSI lines readable via PSNS register (reg 5) -#define MB89352_LINE_REQ 0x80 -#define MB89352_LINE_ACK 0x40 -#define MB89352_LINE_ATN 0x20 -#define MB89352_LINE_SEL 0x10 -#define MB89352_LINE_BSY 0x08 -#define MB89352_LINE_MSG 0x04 -#define MB89352_LINE_CD 0x02 -#define MB89352_LINE_IO 0x01 - -// INTS bits -#define INTS_RESET 0x01 -#define INTS_HARD_ERROR 0x02 -#define INTS_TIMEOUT 0x04 -#define INTS_SERVICE_REQUIRED 0x08 -#define INTS_COMMAND_COMPLETE 0x10 -#define INTS_DISCONNECTED 0x20 -#define INTS_RESELECTION 0x40 -#define INTS_SELECTION 0x80 - -// SSTS status bits -#define SSTS_DREG_EMPTY 0x01 -#define SSTS_DREG_FULL 0x02 -#define SSTS_TC_ZERO 0x04 -#define SSTS_SCSI_RST 0x08 -#define SSTS_XFER_IN_PROGRESS 0x10 -#define SSTS_SPC_BSY 0x20 -#define SSTS_TARG_CONNECTED 0x40 -#define SSTS_INIT_CONNECTED 0x80 - -// SERR error status bits -#define SERR_OFFSET 0x01 -#define SERR_SHORT_XFR 0x02 -#define SERR_PHASE_ERR 0x04 -#define SERR_TC_PAR 0x08 -#define SERR_SPC_PAR 0x40 -#define SERR_SCSI_PAR 0x80 - - #define MCFG_MB89352A_IRQ_CB(_devcb) \ devcb = &mb89352_device::set_irq_callback(*device, DEVCB_##_devcb); @@ -62,8 +23,8 @@ public: // construction/destruction mb89352_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_irq_callback(device_t &device, _Object object) { return downcast(device).m_irq_cb.set_callback(object); } - template static devcb_base &set_drq_callback(device_t &device, _Object object) { return downcast(device).m_drq_cb.set_callback(object); } + template static devcb_base &set_irq_callback(device_t &device, Object &&cb) { return downcast(device).m_irq_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_drq_callback(device_t &device, Object &&cb) { return downcast(device).m_drq_cb.set_callback(std::forward(cb)); } // any publically accessible interfaces needed for runtime DECLARE_READ8_MEMBER( mb89352_r ); @@ -113,6 +74,6 @@ private: emu_timer* m_transfer_timer; }; -extern const device_type MB89352A; +DECLARE_DEVICE_TYPE(MB89352A, mb89352_device) -#endif /* MB89352_H_ */ +#endif // MAME_MACHINE_MB89352_H diff --git a/src/devices/machine/mb89363b.cpp b/src/devices/machine/mb89363b.cpp index 1f854473f21..0e946a7acb8 100644 --- a/src/devices/machine/mb89363b.cpp +++ b/src/devices/machine/mb89363b.cpp @@ -80,12 +80,11 @@ #include "machine/mb89363b.h" - -const device_type MB89363B = device_creator; +DEFINE_DEVICE_TYPE(MB89363B, mb89363b_device, "mb89363b", "Fujitsu MB89363B I/O") mb89363b_device::mb89363b_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MB89363B, "MB89363 I/O", tag, owner, clock, "mb89363b", __FILE__), + : device_t(mconfig, MB89363B, tag, owner, clock), m_i8255_a(*this, "i8255_a"), m_i8255_b(*this, "i8255_b"), m_in_a_pa_cb(*this), diff --git a/src/devices/machine/mb89363b.h b/src/devices/machine/mb89363b.h index cc880a4cead..c5f4191db95 100644 --- a/src/devices/machine/mb89363b.h +++ b/src/devices/machine/mb89363b.h @@ -7,16 +7,16 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_MACHINE_MB89363B_H +#define MAME_MACHINE_MB89363B_H -#ifndef __MB89363B__ -#define __MB89363B__ +#pragma once #include "machine/i8255.h" -extern const device_type MB89363B; +DECLARE_DEVICE_TYPE(MB89363B, mb89363b_device) #define MCFG_MB89363B_ADD(_tag) \ MCFG_DEVICE_ADD(_tag, MB89363B, 0) @@ -85,32 +85,28 @@ public: DECLARE_WRITE8_MEMBER(i8255_b_port_c_w); - template static devcb_base &set_in_a_pa_callback(device_t &device, _Object object) { return downcast(device).m_in_a_pa_cb.set_callback(object); } - template static devcb_base &set_in_a_pb_callback(device_t &device, _Object object) { return downcast(device).m_in_a_pb_cb.set_callback(object); } - template static devcb_base &set_in_a_pc_callback(device_t &device, _Object object) { return downcast(device).m_in_a_pc_cb.set_callback(object); } - template static devcb_base &set_out_a_pa_callback(device_t &device, _Object object) { return downcast(device).m_out_a_pa_cb.set_callback(object); } - template static devcb_base &set_out_a_pb_callback(device_t &device, _Object object) { return downcast(device).m_out_a_pb_cb.set_callback(object); } - template static devcb_base &set_out_a_pc_callback(device_t &device, _Object object) { return downcast(device).m_out_a_pc_cb.set_callback(object); } - - template static devcb_base &set_in_b_pa_callback(device_t &device, _Object object) { return downcast(device).m_in_b_pa_cb.set_callback(object); } - template static devcb_base &set_in_b_pb_callback(device_t &device, _Object object) { return downcast(device).m_in_b_pb_cb.set_callback(object); } - template static devcb_base &set_in_b_pc_callback(device_t &device, _Object object) { return downcast(device).m_in_b_pc_cb.set_callback(object); } - template static devcb_base &set_out_b_pa_callback(device_t &device, _Object object) { return downcast(device).m_out_b_pa_cb.set_callback(object); } - template static devcb_base &set_out_b_pb_callback(device_t &device, _Object object) { return downcast(device).m_out_b_pb_cb.set_callback(object); } - template static devcb_base &set_out_b_pc_callback(device_t &device, _Object object) { return downcast(device).m_out_b_pc_cb.set_callback(object); } + template static devcb_base &set_in_a_pa_callback(device_t &device, Object &&cb) { return downcast(device).m_in_a_pa_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_in_a_pb_callback(device_t &device, Object &&cb) { return downcast(device).m_in_a_pb_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_in_a_pc_callback(device_t &device, Object &&cb) { return downcast(device).m_in_a_pc_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_a_pa_callback(device_t &device, Object &&cb) { return downcast(device).m_out_a_pa_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_a_pb_callback(device_t &device, Object &&cb) { return downcast(device).m_out_a_pb_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_a_pc_callback(device_t &device, Object &&cb) { return downcast(device).m_out_a_pc_cb.set_callback(std::forward(cb)); } - - required_device m_i8255_a; - required_device m_i8255_b; + template static devcb_base &set_in_b_pa_callback(device_t &device, Object &&cb) { return downcast(device).m_in_b_pa_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_in_b_pb_callback(device_t &device, Object &&cb) { return downcast(device).m_in_b_pb_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_in_b_pc_callback(device_t &device, Object &&cb) { return downcast(device).m_in_b_pc_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_b_pa_callback(device_t &device, Object &&cb) { return downcast(device).m_out_b_pa_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_b_pb_callback(device_t &device, Object &&cb) { return downcast(device).m_out_b_pb_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_b_pc_callback(device_t &device, Object &&cb) { return downcast(device).m_out_b_pc_cb.set_callback(std::forward(cb)); } protected: virtual machine_config_constructor device_mconfig_additions() const override; virtual void device_start() override; virtual void device_reset() override; - - private: + required_device m_i8255_a; + required_device m_i8255_b; devcb_read8 m_in_a_pa_cb; devcb_read8 m_in_a_pb_cb; @@ -127,8 +123,6 @@ private: devcb_write8 m_out_b_pa_cb; devcb_write8 m_out_b_pb_cb; devcb_write8 m_out_b_pc_cb; - - }; -#endif +#endif // MAME_MACHINE_MB89363B_H diff --git a/src/devices/machine/mb89371.cpp b/src/devices/machine/mb89371.cpp index 90bc2097df8..9c9a0d0e34a 100644 --- a/src/devices/machine/mb89371.cpp +++ b/src/devices/machine/mb89371.cpp @@ -11,10 +11,10 @@ #include "emu.h" #include "mb89371.h" -const device_type MB89371 = device_creator; +DEFINE_DEVICE_TYPE(MB89371, mb89371_device, "mb89371", "MB89371 Dual Serial UART") mb89371_device::mb89371_device( const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock ) - : device_t(mconfig, MB89371, "MB89371 Dual Serial UART", tag, owner, clock, "mb89371", __FILE__) + : device_t(mconfig, MB89371, tag, owner, clock) { } @@ -24,9 +24,11 @@ void mb89371_device::device_start() WRITE8_MEMBER(mb89371_device::write) { + logerror("MB89371 unimplemented write @%X = %02X & %02X\n", offset, data, mem_mask); } READ8_MEMBER(mb89371_device::read) { + logerror("MB89371 unimplemented read @%X & %02X\n", offset, mem_mask); return 0xff; } diff --git a/src/devices/machine/mb89371.h b/src/devices/machine/mb89371.h index 3093590d51b..413492ee765 100644 --- a/src/devices/machine/mb89371.h +++ b/src/devices/machine/mb89371.h @@ -8,8 +8,10 @@ * */ -#ifndef __MB89371_H__ -#define __MB89371_H__ +#ifndef MAME_MACHINE_MB89371_H +#define MAME_MACHINE_MB89371_H + +#pragma once class mb89371_device : public device_t @@ -22,13 +24,12 @@ public: DECLARE_READ8_MEMBER( read ); protected: - // device-level overrides virtual void device_start() override; }; // device type definition -extern const device_type MB89371; +DECLARE_DEVICE_TYPE(MB89371, mb89371_device) -#endif +#endif // MAME_MACHINE_MB89371_H diff --git a/src/devices/machine/mc146818.cpp b/src/devices/machine/mc146818.cpp index a6ebb615a5b..c55935b3184 100644 --- a/src/devices/machine/mc146818.cpp +++ b/src/devices/machine/mc146818.cpp @@ -15,40 +15,25 @@ #include "coreutil.h" #include "machine/mc146818.h" - -//************************************************************************** -// DEBUGGING -//************************************************************************** - -#define LOG_MC146818 0 +//#define VERBOSE 1 +#include "logmacro.h" // device type definition -const device_type MC146818 = device_creator; +DEFINE_DEVICE_TYPE(MC146818, mc146818_device, "mc146818", "MC146818 RTC") //------------------------------------------------- // mc146818_device - constructor //------------------------------------------------- mc146818_device::mc146818_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MC146818, "MC146818 RTC", tag, owner, clock, "mc146818", __FILE__), - device_nvram_interface(mconfig, *this), - m_region(*this, DEVICE_SELF), - m_index(0), - m_last_refresh(attotime::zero), m_clock_timer(nullptr), m_periodic_timer(nullptr), - m_write_irq(*this), - m_century_index(-1), - m_epoch(0), - m_use_utc(false), - m_binary(false), - m_hour(false), - m_binyear(false) + : mc146818_device(mconfig, MC146818, tag, owner, clock) { } -mc146818_device::mc146818_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), +mc146818_device::mc146818_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock), device_nvram_interface(mconfig, *this), m_region(*this, DEVICE_SELF), m_index(0), @@ -556,8 +541,7 @@ READ8_MEMBER( mc146818_device::read ) break; } - if (LOG_MC146818) - logerror("mc146818_port_r(): index=0x%02x data=0x%02x\n", m_index, data); + LOG("mc146818_port_r(): index=0x%02x data=0x%02x\n", m_index, data); return data; } @@ -569,8 +553,7 @@ READ8_MEMBER( mc146818_device::read ) WRITE8_MEMBER( mc146818_device::write ) { - if (LOG_MC146818) - logerror("mc146818_port_w(): index=0x%02x data=0x%02x\n", m_index, data); + LOG("mc146818_port_w(): index=0x%02x data=0x%02x\n", m_index, data); switch (offset) { diff --git a/src/devices/machine/mc146818.h b/src/devices/machine/mc146818.h index 70ff8c46e49..408f9f717d8 100644 --- a/src/devices/machine/mc146818.h +++ b/src/devices/machine/mc146818.h @@ -11,8 +11,10 @@ *********************************************************************/ -#ifndef __MC146818_H__ -#define __MC146818_H__ +#ifndef MAME_MACHINE_MC146818_H +#define MAME_MACHINE_MC146818_H + +#pragma once //************************************************************************** @@ -57,10 +59,9 @@ class mc146818_device : public device_t, public: // construction/destruction mc146818_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - mc146818_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); // callbacks - template static devcb_base &set_irq_callback(device_t &device, _Object object) { return downcast(device).m_write_irq.set_callback(object); } + template static devcb_base &set_irq_callback(device_t &device, Object &&cb) { return downcast(device).m_write_irq.set_callback(std::forward(cb)); } void set_century_index(int century_index) { m_century_index = century_index; } void set_use_utc(bool use_utc) { m_use_utc = use_utc; } void set_binary(bool binary) { m_binary = binary; } @@ -73,6 +74,8 @@ public: DECLARE_WRITE8_MEMBER( write ); protected: + mc146818_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -83,8 +86,8 @@ protected: virtual void nvram_read(emu_file &file) override; virtual void nvram_write(emu_file &file) override; - static const unsigned char ALARM_DONTCARE = 0xc0; - static const unsigned char HOURS_PM = 0x80; + static constexpr unsigned char ALARM_DONTCARE = 0xc0; + static constexpr unsigned char HOURS_PM = 0x80; virtual int data_size() { return 64; } @@ -188,7 +191,6 @@ private: // device type definition -extern const device_type MC146818; - +DECLARE_DEVICE_TYPE(MC146818, mc146818_device) -#endif /* __MC146818_H__ */ +#endif // MAME_MACHINE_MC146818_H diff --git a/src/devices/machine/mc2661.cpp b/src/devices/machine/mc2661.cpp index 8f79893aadd..fa750d47e77 100644 --- a/src/devices/machine/mc2661.cpp +++ b/src/devices/machine/mc2661.cpp @@ -9,13 +9,16 @@ #include "emu.h" #include "mc2661.h" +//#define VERBOSE 1 +#include "logmacro.h" + //************************************************************************** // DEVICE DEFINITIONS //************************************************************************** -const device_type MC2661 = device_creator; +DEFINE_DEVICE_TYPE(MC2661, mc2661_device, "mc2661", "MC2661") @@ -23,9 +26,6 @@ const device_type MC2661 = device_creator; // MACROS / CONSTANTS //************************************************************************** -#define LOG 0 - - uint32_t baud_rates[16] = { 50, 75, 110, 135 /*134.5*/, 150, 300, 600, 1200, 1800, 2000, 2400, 3600, 4800, 7200, 9600, 19200 @@ -96,7 +96,7 @@ enum //------------------------------------------------- mc2661_device::mc2661_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, MC2661, "MC2661", tag, owner, clock, "mc2661", __FILE__), + device_t(mconfig, MC2661, tag, owner, clock), device_serial_interface(mconfig, *this), m_write_txd(*this), m_write_rxrdy(*this), @@ -265,7 +265,7 @@ WRITE8_MEMBER( mc2661_device::write ) switch (offset & 0x03) { case REGISTER_HOLDING: - if (LOG) logerror("MC2661 '%s' Transmit Holding Register: %02x\n", tag(), data); + LOG("MC2661 Transmit Holding Register: %02x\n", data); m_thr = data; if(COMMAND_TXEN) @@ -284,7 +284,7 @@ WRITE8_MEMBER( mc2661_device::write ) break; case REGISTER_SYNC: - if (LOG) logerror("MC2661 '%s' Sync Register %u: %02x\n", tag(), m_sync_index + 1, data); + LOG("MC2661 Sync Register %u: %02x\n", m_sync_index + 1, data); m_sync[m_sync_index] = data; @@ -293,7 +293,7 @@ WRITE8_MEMBER( mc2661_device::write ) break; case REGISTER_MODE: - if (LOG) logerror("MC2661 '%s' Mode Register %u: %02x\n", tag(), m_mode_index + 1, data); + LOG("MC2661 Mode Register %u: %02x\n", m_mode_index + 1, data); m_mr[m_mode_index] = data; @@ -384,7 +384,7 @@ WRITE8_MEMBER( mc2661_device::write ) break; case REGISTER_COMMAND: - if (LOG) logerror("MC2661 '%s' Command Register: %02x\n", tag(), data); + LOG("MC2661 Command Register: %02x\n", data); m_cr = data & 0xef; @@ -432,7 +432,7 @@ WRITE8_MEMBER( mc2661_device::write ) WRITE_LINE_MEMBER( mc2661_device::dsr_w ) { - if (LOG) logerror("MC2661 '%s' Data Set Ready: %u\n", tag(), state); + LOG("MC2661 Data Set Ready: %u\n", state); if (state) { @@ -451,7 +451,7 @@ WRITE_LINE_MEMBER( mc2661_device::dsr_w ) WRITE_LINE_MEMBER( mc2661_device::dcd_w ) { - if (LOG) logerror("MC2661 '%s' Data Carrier Detect: %u\n", tag(), state); + LOG("MC2661 Data Carrier Detect: %u\n", state); if (state) { @@ -470,7 +470,7 @@ WRITE_LINE_MEMBER( mc2661_device::dcd_w ) WRITE_LINE_MEMBER( mc2661_device::cts_w ) { - if (LOG) logerror("MC2661 '%s' Clear to Send: %u\n", tag(), state); + LOG("MC2661 Clear to Send: %u\n", state); } diff --git a/src/devices/machine/mc2661.h b/src/devices/machine/mc2661.h index 695dd4b0ef3..96baf6f822f 100644 --- a/src/devices/machine/mc2661.h +++ b/src/devices/machine/mc2661.h @@ -23,10 +23,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_MACHINE_MC2661_H +#define MAME_MACHINE_MC2661_H -#ifndef __MC2661__ -#define __MC2661__ +#pragma once @@ -83,14 +83,14 @@ public: static void static_set_rxc(device_t &device, int clock) { downcast(device).m_rxc = clock; } static void static_set_txc(device_t &device, int clock) { downcast(device).m_txc = clock; } - template static devcb_base &set_txd_callback(device_t &device, _Object object) { return downcast(device).m_write_txd.set_callback(object); } - template static devcb_base &set_rxrdy_callback(device_t &device, _Object object) { return downcast(device).m_write_rxrdy.set_callback(object); } - template static devcb_base &set_txrdy_callback(device_t &device, _Object object) { return downcast(device).m_write_txrdy.set_callback(object); } - template static devcb_base &set_rts_callback(device_t &device, _Object object) { return downcast(device).m_write_rts.set_callback(object); } - template static devcb_base &set_dtr_callback(device_t &device, _Object object) { return downcast(device).m_write_dtr.set_callback(object); } - template static devcb_base &set_txemt_dschg_callback(device_t &device, _Object object) { return downcast(device).m_write_txemt_dschg.set_callback(object); } - template static devcb_base &set_bkdet_callback(device_t &device, _Object object) { return downcast(device).m_write_bkdet.set_callback(object); } - template static devcb_base &set_xsync_callback(device_t &device, _Object object) { return downcast(device).m_write_xsync.set_callback(object); } + template static devcb_base &set_txd_callback(device_t &device, Object &&cb) { return downcast(device).m_write_txd.set_callback(std::forward(cb)); } + template static devcb_base &set_rxrdy_callback(device_t &device, Object &&cb) { return downcast(device).m_write_rxrdy.set_callback(std::forward(cb)); } + template static devcb_base &set_txrdy_callback(device_t &device, Object &&cb) { return downcast(device).m_write_txrdy.set_callback(std::forward(cb)); } + template static devcb_base &set_rts_callback(device_t &device, Object &&cb) { return downcast(device).m_write_rts.set_callback(std::forward(cb)); } + template static devcb_base &set_dtr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_dtr.set_callback(std::forward(cb)); } + template static devcb_base &set_txemt_dschg_callback(device_t &device, Object &&cb) { return downcast(device).m_write_txemt_dschg.set_callback(std::forward(cb)); } + template static devcb_base &set_bkdet_callback(device_t &device, Object &&cb) { return downcast(device).m_write_bkdet.set_callback(std::forward(cb)); } + template static devcb_base &set_xsync_callback(device_t &device, Object &&cb) { return downcast(device).m_write_xsync.set_callback(std::forward(cb)); } DECLARE_READ8_MEMBER( read ); DECLARE_WRITE8_MEMBER( write ); @@ -141,8 +141,6 @@ private: // device type definition -extern const device_type MC2661; - - +DECLARE_DEVICE_TYPE(MC2661, mc2661_device) -#endif +#endif // MAME_MACHINE_MC2661_H diff --git a/src/devices/machine/mc68328.cpp b/src/devices/machine/mc68328.cpp index 6b548a62a00..96d91ccb175 100644 --- a/src/devices/machine/mc68328.cpp +++ b/src/devices/machine/mc68328.cpp @@ -9,10 +9,329 @@ **********************************************************************/ #include "emu.h" -#include "cpu/m68000/m68000.h" #include "machine/mc68328.h" +#include "cpu/m68000/m68000.h" #include "machine/ram.h" + +#define SCR_BETO 0x80 +#define SCR_WPV 0x40 +#define SCR_PRV 0x20 +#define SCR_BETEN 0x10 +#define SCR_SO 0x08 +#define SCR_DMAP 0x04 +#define SCR_WDTH8 0x01 + +#define ICR_POL6 0x0100 +#define ICR_POL3 0x0200 +#define ICR_POL2 0x0400 +#define ICR_POL1 0x0800 +#define ICR_ET6 0x1000 +#define ICR_ET3 0x2000 +#define ICR_ET2 0x4000 +#define ICR_ET1 0x8000 + +#define INT_SPIM 0x000001 +#define INT_TIMER2 0x000002 +#define INT_UART 0x000004 +#define INT_WDT 0x000008 +#define INT_RTC 0x000010 +#define INT_RESERVED 0x000020 +#define INT_KB 0x000040 +#define INT_PWM 0x000080 +#define INT_INT0 0x000100 +#define INT_INT1 0x000200 +#define INT_INT2 0x000400 +#define INT_INT3 0x000800 +#define INT_INT4 0x001000 +#define INT_INT5 0x002000 +#define INT_INT6 0x004000 +#define INT_INT7 0x008000 +#define INT_KBDINTS 0x00ff00 +#define INT_IRQ1 0x010000 +#define INT_IRQ2 0x020000 +#define INT_IRQ3 0x040000 +#define INT_IRQ6 0x080000 +#define INT_PEN 0x100000 +#define INT_SPIS 0x200000 +#define INT_TIMER1 0x400000 +#define INT_IRQ7 0x800000 + +#define INT_M68K_LINE1 (INT_IRQ1) +#define INT_M68K_LINE2 (INT_IRQ2) +#define INT_M68K_LINE3 (INT_IRQ3) +#define INT_M68K_LINE4 (INT_INT0 | INT_INT1 | INT_INT2 | INT_INT3 | INT_INT4 | INT_INT5 | INT_INT6 | INT_INT7 | \ + INT_PWM | INT_KB | INT_RTC | INT_WDT | INT_UART | INT_TIMER2 | INT_SPIM) +#define INT_M68K_LINE5 (INT_PEN) +#define INT_M68K_LINE6 (INT_IRQ6 | INT_TIMER1 | INT_SPIS) +#define INT_M68K_LINE7 (INT_IRQ7) +#define INT_M68K_LINE67 (INT_M68K_LINE6 | INT_M68K_LINE7) +#define INT_M68K_LINE567 (INT_M68K_LINE5 | INT_M68K_LINE6 | INT_M68K_LINE7) +#define INT_M68K_LINE4567 (INT_M68K_LINE4 | INT_M68K_LINE5 | INT_M68K_LINE6 | INT_M68K_LINE7) +#define INT_M68K_LINE34567 (INT_M68K_LINE3 | INT_M68K_LINE4 | INT_M68K_LINE5 | INT_M68K_LINE6 | INT_M68K_LINE7) +#define INT_M68K_LINE234567 (INT_M68K_LINE2 | INT_M68K_LINE3 | INT_M68K_LINE4 | INT_M68K_LINE5 | INT_M68K_LINE6 | INT_M68K_LINE7) + +#define INT_IRQ1_SHIFT 0x000001 +#define INT_IRQ2_SHIFT 0x000002 +#define INT_IRQ3_SHIFT 0x000004 +#define INT_IRQ6_SHIFT 0x000008 +#define INT_PEN_SHIFT 0x000010 +#define INT_SPIS_SHIFT 0x000020 +#define INT_TIMER1_SHIFT 0x000040 +#define INT_IRQ7_SHIFT 0x000080 + +#define INT_ACTIVE 1 +#define INT_INACTIVE 0 + +#define GRPBASE_BASE_ADDR 0xfff0 +#define GRPBASE_VALID 0x0001 + +#define GRPMASK_BASE_MASK 0xfff0 + +#define CSAB_COMPARE 0xff000000 +#define CSAB_BSW 0x00010000 +#define CSAB_MASK 0x0000ff00 +#define CSAB_RO 0x00000008 +#define CSAB_WAIT 0x00000007 + +#define CSCD_COMPARE 0xfff00000 +#define CSCD_BSW 0x00010000 +#define CSCD_MASK 0x0000fff0 +#define CSCD_RO 0x00000008 +#define CSCD_WAIT 0x00000007 + +#define PLLCR_PIXCLK_SEL 0x3800 +#define PLLCR_PIXCLK_SEL_DIV2 0x0000 +#define PLLCR_PIXCLK_SEL_DIV4 0x0800 +#define PLLCR_PIXCLK_SEL_DIV8 0x1000 +#define PLLCR_PIXCLK_SEL_DIV16 0x1800 +#define PLLCR_PIXCLK_SEL_DIV1_0 0x2000 +#define PLLCR_PIXCLK_SEL_DIV1_1 0x2800 +#define PLLCR_PIXCLK_SEL_DIV1_2 0x3000 +#define PLLCR_PIXCLK_SEL_DIV1_3 0x3800 +#define PLLCR_SYSCLK_SEL 0x0700 +#define PLLCR_SYSCLK_SEL_DIV2 0x0000 +#define PLLCR_SYSCLK_SEL_DIV4 0x0100 +#define PLLCR_SYSCLK_SEL_DIV8 0x0200 +#define PLLCR_SYSCLK_SEL_DIV16 0x0300 +#define PLLCR_SYSCLK_SEL_DIV1_0 0x0400 +#define PLLCR_SYSCLK_SEL_DIV1_1 0x0500 +#define PLLCR_SYSCLK_SEL_DIV1_2 0x0600 +#define PLLCR_SYSCLK_SEL_DIV1_3 0x0700 +#define PLLCR_CLKEN 0x0010 +#define PLLCR_DISPLL 0x0008 + +#define PLLFSR_CLK32 0x8000 +#define PLLFSR_PROT 0x4000 +#define PLLFSR_QCNT 0x0f00 +#define PLLFSR_PCNT 0x00ff + +#define PCTLR_PC_EN 0x80 +#define PCTLR_STOP 0x40 +#define PCTLR_WIDTH 0x1f + +#define CXP_CC 0xc000 +#define CXP_CC_XLU 0x0000 +#define CXP_CC_BLACK 0x4000 +#define CXP_CC_INVERSE 0x8000 +#define CXP_CC_INVALID 0xc000 +#define CXP_MASK 0x03ff + +#define CYP_MASK 0x01ff + +#define CWCH_CW 0x1f00 +#define CWCH_CH 0x001f + +#define BLKC_BKEN 0x80 +#define BLKC_BD 0x7f + +#define LPICF_PBSIZ 0x06 +#define LPICF_PBSIZ_1 0x00 +#define LPICF_PBSIZ_2 0x02 +#define LPICF_PBSIZ_4 0x04 +#define LPICF_PBSIZ_INVALID 0x06 + +#define LPOLCF_LCKPOL 0x08 +#define LPOLCF_FLMPOL 0x04 +#define LPOLCF_LPPOL 0x02 +#define LPOLCF_PIXPOL 0x01 + +#define LACDRC_MASK 0x0f + +#define LPXCD_MASK 0x3f + +#define LCKCON_LCDC_EN 0x80 +#define LCKCON_LCDON 0x80 +#define LCKCON_DMA16 0x40 +#define LCKCON_WS 0x30 +#define LCKCON_WS_1 0x00 +#define LCKCON_WS_2 0x10 +#define LCKCON_WS_3 0x20 +#define LCKCON_WS_4 0x30 +#define LCKCON_DWIDTH 0x02 +#define LCKCON_PCDS 0x01 + +#define LBAR_MASK 0x7f + +#define LPOSR_BOS 0x08 +#define LPOSR_POS 0x07 + +#define LFRCM_XMOD 0xf0 +#define LFRCM_YMOD 0x0f + +#define LGPMR_PAL1 0x7000 +#define LGPMR_PAL0 0x0700 +#define LGPMR_PAL3 0x0070 +#define LGPMR_PAL2 0x0007 + +#define RTCHMSR_HOURS 0x1f000000 +#define RTCHMSR_MINUTES 0x003f0000 +#define RTCHMSR_SECONDS 0x0000003f + +#define RTCCTL_38_4 0x0020 +#define RTCCTL_ENABLE 0x0080 + +#define RTCINT_STOPWATCH 0x0001 +#define RTCINT_MINUTE 0x0002 +#define RTCINT_ALARM 0x0004 +#define RTCINT_DAY 0x0008 +#define RTCINT_SECOND 0x0010 + +#define RTCSTPWTCH_MASK 0x003f + +#define TCTL_TEN 0x0001 +#define TCTL_TEN_ENABLE 0x0001 +#define TCTL_CLKSOURCE 0x000e +#define TCTL_CLKSOURCE_STOP 0x0000 +#define TCTL_CLKSOURCE_SYSCLK 0x0002 +#define TCTL_CLKSOURCE_SYSCLK16 0x0004 +#define TCTL_CLKSOURCE_TIN 0x0006 +#define TCTL_CLKSOURCE_32KHZ4 0x0008 +#define TCTL_CLKSOURCE_32KHZ5 0x000a +#define TCTL_CLKSOURCE_32KHZ6 0x000c +#define TCTL_CLKSOURCE_32KHZ7 0x000e +#define TCTL_IRQEN 0x0010 +#define TCTL_IRQEN_ENABLE 0x0010 +#define TCTL_OM 0x0020 +#define TCTL_OM_ACTIVELOW 0x0000 +#define TCTL_OM_TOGGLE 0x0020 +#define TCTL_CAPTURE 0x00c0 +#define TCTL_CAPTURE_NOINT 0x0000 +#define TCTL_CAPTURE_RISING 0x0040 +#define TCTL_CAPTURE_FALLING 0x0080 +#define TCTL_CAPTURE_BOTH 0x00c0 +#define TCTL_FRR 0x0100 +#define TCTL_FRR_RESTART 0x0000 +#define TCTL_FRR_FREERUN 0x0100 + +#define TSTAT_COMP 0x0001 +#define TSTAT_CAPT 0x0002 + +#define WCTLR_WDRST 0x0008 +#define WCTLR_LOCK 0x0004 +#define WCTLR_FI 0x0002 +#define WCTLR_WDEN 0x0001 + +#define USTCNT_UART_EN 0x8000 +#define USTCNT_RX_EN 0x4000 +#define USTCNT_TX_EN 0x2000 +#define USTCNT_RX_CLK_CONT 0x1000 +#define USTCNT_PARITY_EN 0x0800 +#define USTCNT_ODD_EVEN 0x0400 +#define USTCNT_STOP_BITS 0x0200 +#define USTCNT_8_7 0x0100 +#define USTCNT_GPIO_DELTA_EN 0x0080 +#define USTCNT_CTS_DELTA_EN 0x0040 +#define USTCNT_RX_FULL_EN 0x0020 +#define USTCNT_RX_HALF_EN 0x0010 +#define USTCNT_RX_RDY_EN 0x0008 +#define USTCNT_TX_EMPTY_EN 0x0004 +#define USTCNT_TX_HALF_EN 0x0002 +#define USTCNT_TX_AVAIL_EN 0x0001 + +#define UBAUD_GPIO_DELTA 0x8000 +#define UBAUD_GPIO 0x4000 +#define UBAUD_GPIO_DIR 0x2000 +#define UBAUD_GPIO_SRC 0x1000 +#define UBAUD_BAUD_SRC 0x0800 +#define UBAUD_DIVIDE 0x0700 +#define UBAUD_DIVIDE_1 0x0000 +#define UBAUD_DIVIDE_2 0x0100 +#define UBAUD_DIVIDE_4 0x0200 +#define UBAUD_DIVIDE_8 0x0300 +#define UBAUD_DIVIDE_16 0x0400 +#define UBAUD_DIVIDE_32 0x0500 +#define UBAUD_DIVIDE_64 0x0600 +#define UBAUD_DIVIDE_128 0x0700 +#define UBAUD_PRESCALER 0x00ff + +#define URX_FIFO_FULL 0x8000 +#define URX_FIFO_HALF 0x4000 +#define URX_DATA_READY 0x2000 +#define URX_OVRUN 0x0800 +#define URX_FRAME_ERROR 0x0400 +#define URX_BREAK 0x0200 +#define URX_PARITY_ERROR 0x0100 + +#define UTX_FIFO_EMPTY 0x8000 +#define UTX_FIFO_HALF 0x4000 +#define UTX_TX_AVAIL 0x2000 +#define UTX_SEND_BREAK 0x1000 +#define UTX_IGNORE_CTS 0x0800 +#define UTX_CTS_STATUS 0x0200 +#define UTX_CTS_DELTA 0x0100 + +#define UMISC_CLK_SRC 0x4000 +#define UMISC_FORCE_PERR 0x2000 +#define UMISC_LOOP 0x1000 +#define UMISC_RTS_CONT 0x0080 +#define UMISC_RTS 0x0040 +#define UMISC_IRDA_ENABLE 0x0020 +#define UMISC_IRDA_LOOP 0x0010 + +#define SPIS_SPIS_IRQ 0x8000 +#define SPIS_IRQEN 0x4000 +#define SPIS_ENPOL 0x2000 +#define SPIS_DATA_RDY 0x1000 +#define SPIS_OVRWR 0x0800 +#define SPIS_PHA 0x0400 +#define SPIS_POL 0x0200 +#define SPIS_SPISEN 0x0100 + +#define SPIM_CLOCK_COUNT 0x000f +#define SPIM_POL 0x0010 +#define SPIM_POL_HIGH 0x0000 +#define SPIM_POL_LOW 0x0010 +#define SPIM_PHA 0x0020 +#define SPIM_PHA_NORMAL 0x0000 +#define SPIM_PHA_OPPOSITE 0x0020 +#define SPIM_IRQEN 0x0040 +#define SPIM_SPIMIRQ 0x0080 +#define SPIM_XCH 0x0100 +#define SPIM_XCH_IDLE 0x0000 +#define SPIM_XCH_INIT 0x0100 +#define SPIM_SPMEN 0x0200 +#define SPIM_SPMEN_DISABLE 0x0000 +#define SPIM_SPMEN_ENABLE 0x0200 +#define SPIM_RATE 0xe000 +#define SPIM_RATE_4 0x0000 +#define SPIM_RATE_8 0x2000 +#define SPIM_RATE_16 0x4000 +#define SPIM_RATE_32 0x6000 +#define SPIM_RATE_64 0x8000 +#define SPIM_RATE_128 0xa000 +#define SPIM_RATE_256 0xc000 +#define SPIM_RATE_512 0xe000 + +#define PWMC_PWMIRQ 0x8000 +#define PWMC_IRQEN 0x4000 +#define PWMC_LOAD 0x0100 +#define PWMC_PIN 0x0080 +#define PWMC_POL 0x0040 +#define PWMC_PWMEN 0x0010 +#define PWMC_CLKSEL 0x0007 + + #define VERBOSE_LEVEL (0) static inline void ATTR_PRINTF(3,4) verboselog(device_t &device, int n_level, const char *s_fmt, ...) @@ -28,36 +347,37 @@ static inline void ATTR_PRINTF(3,4) verboselog(device_t &device, int n_level, co } } -const device_type MC68328 = device_creator; +DEFINE_DEVICE_TYPE(MC68328, mc68328_device, "mc68328", "MC68328 DragonBall Integrated Processor") mc68328_device::mc68328_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MC68328, "MC68328 (DragonBall) Integrated Processor", tag, owner, clock, "mc68328", __FILE__), m_rtc(nullptr), m_pwm(nullptr), - m_out_port_a_cb(*this), - m_out_port_b_cb(*this), - m_out_port_c_cb(*this), - m_out_port_d_cb(*this), - m_out_port_e_cb(*this), - m_out_port_f_cb(*this), - m_out_port_g_cb(*this), - m_out_port_j_cb(*this), - m_out_port_k_cb(*this), - m_out_port_m_cb(*this), - m_in_port_a_cb(*this), - m_in_port_b_cb(*this), - m_in_port_c_cb(*this), - m_in_port_d_cb(*this), - m_in_port_e_cb(*this), - m_in_port_f_cb(*this), - m_in_port_g_cb(*this), - m_in_port_j_cb(*this), - m_in_port_k_cb(*this), - m_in_port_m_cb(*this), - m_out_pwm_cb(*this), - m_out_spim_cb(*this), - m_in_spim_cb(*this), - m_spim_xch_trigger_cb(*this), - m_cpu(*this, finder_base::DUMMY_TAG) + : device_t(mconfig, MC68328, tag, owner, clock) + , m_rtc(nullptr), m_pwm(nullptr) + , m_out_port_a_cb(*this) + , m_out_port_b_cb(*this) + , m_out_port_c_cb(*this) + , m_out_port_d_cb(*this) + , m_out_port_e_cb(*this) + , m_out_port_f_cb(*this) + , m_out_port_g_cb(*this) + , m_out_port_j_cb(*this) + , m_out_port_k_cb(*this) + , m_out_port_m_cb(*this) + , m_in_port_a_cb(*this) + , m_in_port_b_cb(*this) + , m_in_port_c_cb(*this) + , m_in_port_d_cb(*this) + , m_in_port_e_cb(*this) + , m_in_port_f_cb(*this) + , m_in_port_g_cb(*this) + , m_in_port_j_cb(*this) + , m_in_port_k_cb(*this) + , m_in_port_m_cb(*this) + , m_out_pwm_cb(*this) + , m_out_spim_cb(*this) + , m_in_spim_cb(*this) + , m_spim_xch_trigger_cb(*this) + , m_cpu(*this, finder_base::DUMMY_TAG) { } diff --git a/src/devices/machine/mc68328.h b/src/devices/machine/mc68328.h index ac58dff85c8..4b4892a64d3 100644 --- a/src/devices/machine/mc68328.h +++ b/src/devices/machine/mc68328.h @@ -88,552 +88,40 @@ *****************************************************************************************************************/ -#ifndef __MC68328_H__ -#define __MC68328_H__ - - -#define SCR_BETO 0x80 -#define SCR_WPV 0x40 -#define SCR_PRV 0x20 -#define SCR_BETEN 0x10 -#define SCR_SO 0x08 -#define SCR_DMAP 0x04 -#define SCR_WDTH8 0x01 - -#define ICR_POL6 0x0100 -#define ICR_POL3 0x0200 -#define ICR_POL2 0x0400 -#define ICR_POL1 0x0800 -#define ICR_ET6 0x1000 -#define ICR_ET3 0x2000 -#define ICR_ET2 0x4000 -#define ICR_ET1 0x8000 - -#define INT_SPIM 0x000001 -#define INT_TIMER2 0x000002 -#define INT_UART 0x000004 -#define INT_WDT 0x000008 -#define INT_RTC 0x000010 -#define INT_RESERVED 0x000020 -#define INT_KB 0x000040 -#define INT_PWM 0x000080 -#define INT_INT0 0x000100 -#define INT_INT1 0x000200 -#define INT_INT2 0x000400 -#define INT_INT3 0x000800 -#define INT_INT4 0x001000 -#define INT_INT5 0x002000 -#define INT_INT6 0x004000 -#define INT_INT7 0x008000 -#define INT_KBDINTS 0x00ff00 -#define INT_IRQ1 0x010000 -#define INT_IRQ2 0x020000 -#define INT_IRQ3 0x040000 -#define INT_IRQ6 0x080000 -#define INT_PEN 0x100000 -#define INT_SPIS 0x200000 -#define INT_TIMER1 0x400000 -#define INT_IRQ7 0x800000 - -#define INT_M68K_LINE1 (INT_IRQ1) -#define INT_M68K_LINE2 (INT_IRQ2) -#define INT_M68K_LINE3 (INT_IRQ3) -#define INT_M68K_LINE4 (INT_INT0 | INT_INT1 | INT_INT2 | INT_INT3 | INT_INT4 | INT_INT5 | INT_INT6 | INT_INT7 | \ - INT_PWM | INT_KB | INT_RTC | INT_WDT | INT_UART | INT_TIMER2 | INT_SPIM) -#define INT_M68K_LINE5 (INT_PEN) -#define INT_M68K_LINE6 (INT_IRQ6 | INT_TIMER1 | INT_SPIS) -#define INT_M68K_LINE7 (INT_IRQ7) -#define INT_M68K_LINE67 (INT_M68K_LINE6 | INT_M68K_LINE7) -#define INT_M68K_LINE567 (INT_M68K_LINE5 | INT_M68K_LINE6 | INT_M68K_LINE7) -#define INT_M68K_LINE4567 (INT_M68K_LINE4 | INT_M68K_LINE5 | INT_M68K_LINE6 | INT_M68K_LINE7) -#define INT_M68K_LINE34567 (INT_M68K_LINE3 | INT_M68K_LINE4 | INT_M68K_LINE5 | INT_M68K_LINE6 | INT_M68K_LINE7) -#define INT_M68K_LINE234567 (INT_M68K_LINE2 | INT_M68K_LINE3 | INT_M68K_LINE4 | INT_M68K_LINE5 | INT_M68K_LINE6 | INT_M68K_LINE7) - -#define INT_IRQ1_SHIFT 0x000001 -#define INT_IRQ2_SHIFT 0x000002 -#define INT_IRQ3_SHIFT 0x000004 -#define INT_IRQ6_SHIFT 0x000008 -#define INT_PEN_SHIFT 0x000010 -#define INT_SPIS_SHIFT 0x000020 -#define INT_TIMER1_SHIFT 0x000040 -#define INT_IRQ7_SHIFT 0x000080 - -#define INT_ACTIVE 1 -#define INT_INACTIVE 0 - -#define GRPBASE_BASE_ADDR 0xfff0 -#define GRPBASE_VALID 0x0001 - -#define GRPMASK_BASE_MASK 0xfff0 - -#define CSAB_COMPARE 0xff000000 -#define CSAB_BSW 0x00010000 -#define CSAB_MASK 0x0000ff00 -#define CSAB_RO 0x00000008 -#define CSAB_WAIT 0x00000007 - -#define CSCD_COMPARE 0xfff00000 -#define CSCD_BSW 0x00010000 -#define CSCD_MASK 0x0000fff0 -#define CSCD_RO 0x00000008 -#define CSCD_WAIT 0x00000007 - -#define PLLCR_PIXCLK_SEL 0x3800 -#define PLLCR_PIXCLK_SEL_DIV2 0x0000 -#define PLLCR_PIXCLK_SEL_DIV4 0x0800 -#define PLLCR_PIXCLK_SEL_DIV8 0x1000 -#define PLLCR_PIXCLK_SEL_DIV16 0x1800 -#define PLLCR_PIXCLK_SEL_DIV1_0 0x2000 -#define PLLCR_PIXCLK_SEL_DIV1_1 0x2800 -#define PLLCR_PIXCLK_SEL_DIV1_2 0x3000 -#define PLLCR_PIXCLK_SEL_DIV1_3 0x3800 -#define PLLCR_SYSCLK_SEL 0x0700 -#define PLLCR_SYSCLK_SEL_DIV2 0x0000 -#define PLLCR_SYSCLK_SEL_DIV4 0x0100 -#define PLLCR_SYSCLK_SEL_DIV8 0x0200 -#define PLLCR_SYSCLK_SEL_DIV16 0x0300 -#define PLLCR_SYSCLK_SEL_DIV1_0 0x0400 -#define PLLCR_SYSCLK_SEL_DIV1_1 0x0500 -#define PLLCR_SYSCLK_SEL_DIV1_2 0x0600 -#define PLLCR_SYSCLK_SEL_DIV1_3 0x0700 -#define PLLCR_CLKEN 0x0010 -#define PLLCR_DISPLL 0x0008 - -#define PLLFSR_CLK32 0x8000 -#define PLLFSR_PROT 0x4000 -#define PLLFSR_QCNT 0x0f00 -#define PLLFSR_PCNT 0x00ff - -#define PCTLR_PC_EN 0x80 -#define PCTLR_STOP 0x40 -#define PCTLR_WIDTH 0x1f - -#define CXP_CC 0xc000 -#define CXP_CC_XLU 0x0000 -#define CXP_CC_BLACK 0x4000 -#define CXP_CC_INVERSE 0x8000 -#define CXP_CC_INVALID 0xc000 -#define CXP_MASK 0x03ff - -#define CYP_MASK 0x01ff - -#define CWCH_CW 0x1f00 -#define CWCH_CH 0x001f - -#define BLKC_BKEN 0x80 -#define BLKC_BD 0x7f - -#define LPICF_PBSIZ 0x06 -#define LPICF_PBSIZ_1 0x00 -#define LPICF_PBSIZ_2 0x02 -#define LPICF_PBSIZ_4 0x04 -#define LPICF_PBSIZ_INVALID 0x06 - -#define LPOLCF_LCKPOL 0x08 -#define LPOLCF_FLMPOL 0x04 -#define LPOLCF_LPPOL 0x02 -#define LPOLCF_PIXPOL 0x01 - -#define LACDRC_MASK 0x0f - -#define LPXCD_MASK 0x3f - -#define LCKCON_LCDC_EN 0x80 -#define LCKCON_LCDON 0x80 -#define LCKCON_DMA16 0x40 -#define LCKCON_WS 0x30 -#define LCKCON_WS_1 0x00 -#define LCKCON_WS_2 0x10 -#define LCKCON_WS_3 0x20 -#define LCKCON_WS_4 0x30 -#define LCKCON_DWIDTH 0x02 -#define LCKCON_PCDS 0x01 - -#define LBAR_MASK 0x7f - -#define LPOSR_BOS 0x08 -#define LPOSR_POS 0x07 - -#define LFRCM_XMOD 0xf0 -#define LFRCM_YMOD 0x0f - -#define LGPMR_PAL1 0x7000 -#define LGPMR_PAL0 0x0700 -#define LGPMR_PAL3 0x0070 -#define LGPMR_PAL2 0x0007 - -#define RTCHMSR_HOURS 0x1f000000 -#define RTCHMSR_MINUTES 0x003f0000 -#define RTCHMSR_SECONDS 0x0000003f - -#define RTCCTL_38_4 0x0020 -#define RTCCTL_ENABLE 0x0080 - -#define RTCINT_STOPWATCH 0x0001 -#define RTCINT_MINUTE 0x0002 -#define RTCINT_ALARM 0x0004 -#define RTCINT_DAY 0x0008 -#define RTCINT_SECOND 0x0010 - -#define RTCSTPWTCH_MASK 0x003f - -#define TCTL_TEN 0x0001 -#define TCTL_TEN_ENABLE 0x0001 -#define TCTL_CLKSOURCE 0x000e -#define TCTL_CLKSOURCE_STOP 0x0000 -#define TCTL_CLKSOURCE_SYSCLK 0x0002 -#define TCTL_CLKSOURCE_SYSCLK16 0x0004 -#define TCTL_CLKSOURCE_TIN 0x0006 -#define TCTL_CLKSOURCE_32KHZ4 0x0008 -#define TCTL_CLKSOURCE_32KHZ5 0x000a -#define TCTL_CLKSOURCE_32KHZ6 0x000c -#define TCTL_CLKSOURCE_32KHZ7 0x000e -#define TCTL_IRQEN 0x0010 -#define TCTL_IRQEN_ENABLE 0x0010 -#define TCTL_OM 0x0020 -#define TCTL_OM_ACTIVELOW 0x0000 -#define TCTL_OM_TOGGLE 0x0020 -#define TCTL_CAPTURE 0x00c0 -#define TCTL_CAPTURE_NOINT 0x0000 -#define TCTL_CAPTURE_RISING 0x0040 -#define TCTL_CAPTURE_FALLING 0x0080 -#define TCTL_CAPTURE_BOTH 0x00c0 -#define TCTL_FRR 0x0100 -#define TCTL_FRR_RESTART 0x0000 -#define TCTL_FRR_FREERUN 0x0100 - -#define TSTAT_COMP 0x0001 -#define TSTAT_CAPT 0x0002 - -#define WCTLR_WDRST 0x0008 -#define WCTLR_LOCK 0x0004 -#define WCTLR_FI 0x0002 -#define WCTLR_WDEN 0x0001 - -#define USTCNT_UART_EN 0x8000 -#define USTCNT_RX_EN 0x4000 -#define USTCNT_TX_EN 0x2000 -#define USTCNT_RX_CLK_CONT 0x1000 -#define USTCNT_PARITY_EN 0x0800 -#define USTCNT_ODD_EVEN 0x0400 -#define USTCNT_STOP_BITS 0x0200 -#define USTCNT_8_7 0x0100 -#define USTCNT_GPIO_DELTA_EN 0x0080 -#define USTCNT_CTS_DELTA_EN 0x0040 -#define USTCNT_RX_FULL_EN 0x0020 -#define USTCNT_RX_HALF_EN 0x0010 -#define USTCNT_RX_RDY_EN 0x0008 -#define USTCNT_TX_EMPTY_EN 0x0004 -#define USTCNT_TX_HALF_EN 0x0002 -#define USTCNT_TX_AVAIL_EN 0x0001 - -#define UBAUD_GPIO_DELTA 0x8000 -#define UBAUD_GPIO 0x4000 -#define UBAUD_GPIO_DIR 0x2000 -#define UBAUD_GPIO_SRC 0x1000 -#define UBAUD_BAUD_SRC 0x0800 -#define UBAUD_DIVIDE 0x0700 -#define UBAUD_DIVIDE_1 0x0000 -#define UBAUD_DIVIDE_2 0x0100 -#define UBAUD_DIVIDE_4 0x0200 -#define UBAUD_DIVIDE_8 0x0300 -#define UBAUD_DIVIDE_16 0x0400 -#define UBAUD_DIVIDE_32 0x0500 -#define UBAUD_DIVIDE_64 0x0600 -#define UBAUD_DIVIDE_128 0x0700 -#define UBAUD_PRESCALER 0x00ff - -#define URX_FIFO_FULL 0x8000 -#define URX_FIFO_HALF 0x4000 -#define URX_DATA_READY 0x2000 -#define URX_OVRUN 0x0800 -#define URX_FRAME_ERROR 0x0400 -#define URX_BREAK 0x0200 -#define URX_PARITY_ERROR 0x0100 - -#define UTX_FIFO_EMPTY 0x8000 -#define UTX_FIFO_HALF 0x4000 -#define UTX_TX_AVAIL 0x2000 -#define UTX_SEND_BREAK 0x1000 -#define UTX_IGNORE_CTS 0x0800 -#define UTX_CTS_STATUS 0x0200 -#define UTX_CTS_DELTA 0x0100 - -#define UMISC_CLK_SRC 0x4000 -#define UMISC_FORCE_PERR 0x2000 -#define UMISC_LOOP 0x1000 -#define UMISC_RTS_CONT 0x0080 -#define UMISC_RTS 0x0040 -#define UMISC_IRDA_ENABLE 0x0020 -#define UMISC_IRDA_LOOP 0x0010 - -#define SPIS_SPIS_IRQ 0x8000 -#define SPIS_IRQEN 0x4000 -#define SPIS_ENPOL 0x2000 -#define SPIS_DATA_RDY 0x1000 -#define SPIS_OVRWR 0x0800 -#define SPIS_PHA 0x0400 -#define SPIS_POL 0x0200 -#define SPIS_SPISEN 0x0100 - -#define SPIM_CLOCK_COUNT 0x000f -#define SPIM_POL 0x0010 -#define SPIM_POL_HIGH 0x0000 -#define SPIM_POL_LOW 0x0010 -#define SPIM_PHA 0x0020 -#define SPIM_PHA_NORMAL 0x0000 -#define SPIM_PHA_OPPOSITE 0x0020 -#define SPIM_IRQEN 0x0040 -#define SPIM_SPIMIRQ 0x0080 -#define SPIM_XCH 0x0100 -#define SPIM_XCH_IDLE 0x0000 -#define SPIM_XCH_INIT 0x0100 -#define SPIM_SPMEN 0x0200 -#define SPIM_SPMEN_DISABLE 0x0000 -#define SPIM_SPMEN_ENABLE 0x0200 -#define SPIM_RATE 0xe000 -#define SPIM_RATE_4 0x0000 -#define SPIM_RATE_8 0x2000 -#define SPIM_RATE_16 0x4000 -#define SPIM_RATE_32 0x6000 -#define SPIM_RATE_64 0x8000 -#define SPIM_RATE_128 0xa000 -#define SPIM_RATE_256 0xc000 -#define SPIM_RATE_512 0xe000 - -#define PWMC_PWMIRQ 0x8000 -#define PWMC_IRQEN 0x4000 -#define PWMC_LOAD 0x0100 -#define PWMC_PIN 0x0080 -#define PWMC_POL 0x0040 -#define PWMC_PWMEN 0x0010 -#define PWMC_CLKSEL 0x0007 - -struct mc68328_regs_t -{ - // $(FF)FFF000 - uint8_t scr; // System Control Register - uint8_t unused0[255]; - - // $(FF)FFF100 - uint16_t grpbasea; // Chip Select Group A Base Register - uint16_t grpbaseb; // Chip Select Group B Base Register - uint16_t grpbasec; // Chip Select Group C Base Register - uint16_t grpbased; // Chip Select Group D Base Register - uint16_t grpmaska; // Chip Select Group A Mask Register - uint16_t grpmaskb; // Chip Select Group B Mask Register - uint16_t grpmaskc; // Chip Select Group C Mask Register - uint16_t grpmaskd; // Chip Select Group D Mask Register - uint32_t csa0; // Group A Chip Select 0 Register - uint32_t csa1; // Group A Chip Select 1 Register - uint32_t csa2; // Group A Chip Select 2 Register - uint32_t csa3; // Group A Chip Select 3 Register - uint32_t csb0; // Group B Chip Select 0 Register - uint32_t csb1; // Group B Chip Select 1 Register - uint32_t csb2; // Group B Chip Select 2 Register - uint32_t csb3; // Group B Chip Select 3 Register - uint32_t csc0; // Group C Chip Select 0 Register - uint32_t csc1; // Group C Chip Select 1 Register - uint32_t csc2; // Group C Chip Select 2 Register - uint32_t csc3; // Group C Chip Select 3 Register - uint32_t csd0; // Group D Chip Select 0 Register - uint32_t csd1; // Group D Chip Select 1 Register - uint32_t csd2; // Group D Chip Select 2 Register - uint32_t csd3; // Group D Chip Select 3 Register - uint8_t unused1[176]; - - // $(FF)FFF200 - uint16_t pllcr; // PLL Control Register - uint16_t pllfsr; // PLL Frequency Select Register - uint8_t pad2[3]; - uint8_t pctlr; // Power Control Register - uint8_t unused3[248]; - - // $(FF)FFF300 - uint8_t ivr; // Interrupt Vector Register - uint8_t unused4[1]; - uint16_t icr; // Interrupt Control Register - uint32_t imr; // Interrupt Mask Register - uint32_t iwr; // Interrupt Wakeup Enable Register - uint32_t isr; // Interrupt Status Register - uint32_t ipr; // Interrupt Pending Register - uint8_t unused5[236]; - - // $(FF)FFF400 - uint8_t padir; // Port A Direction Register - uint8_t padata; // Port A Data Register - uint8_t unused6[1]; - uint8_t pasel; // Port A Select Register - uint8_t unused7[4]; - - uint8_t pbdir; // Port B Direction Register - uint8_t pbdata; // Port B Data Register - uint8_t unused8[1]; - uint8_t pbsel; // Port B Select Register - uint8_t unused9[4]; - - uint8_t pcdir; // Port C Direction Register - uint8_t pcdata; // Port C Data Register - uint8_t unused10[1]; - uint8_t pcsel; // Port C Select Register - uint8_t unused11[4]; - - uint8_t pddir; // Port D Direction Register - uint8_t pddata; // Port D Data Register - uint8_t pdpuen; // Port D Pullup Enable Register - uint8_t unused12[1]; - uint8_t pdpol; // Port D Polarity Register - uint8_t pdirqen; // Port D IRQ Enable Register - uint8_t pddataedge; // Port D Data Edge Level - uint8_t pdirqedge; // Port D IRQ Edge Register - - uint8_t pedir; // Port E Direction Register - uint8_t pedata; // Port E Data Register - uint8_t pepuen; // Port E Pullup Enable Register - uint8_t pesel; // Port E Select Register - uint8_t unused14[4]; - - uint8_t pfdir; // Port F Direction Register - uint8_t pfdata; // Port F Data Register - uint8_t pfpuen; // Port F Pullup Enable Register - uint8_t pfsel; // Port F Select Register - uint8_t unused15[4]; - - uint8_t pgdir; // Port G Direction Register - uint8_t pgdata; // Port G Data Register - uint8_t pgpuen; // Port G Pullup Enable Register - uint8_t pgsel; // Port G Select Register - uint8_t unused16[4]; - - uint8_t pjdir; // Port J Direction Register - uint8_t pjdata; // Port J Data Register - uint8_t unused17[1]; - uint8_t pjsel; // Port J Select Register - uint8_t unused18[4]; - uint8_t pkdir; // Port K Direction Register - uint8_t pkdata; // Port K Data Register - uint8_t pkpuen; // Port K Pullup Enable Register - uint8_t pksel; // Port K Select Register - uint8_t unused19[4]; - - uint8_t pmdir; // Port M Direction Register - uint8_t pmdata; // Port M Data Register - uint8_t pmpuen; // Port M Pullup Enable Register - uint8_t pmsel; // Port M Select Register - uint8_t unused20[180]; - - // $(FF)FFF500 - uint16_t pwmc; // PWM Control Register - uint16_t pwmp; // PWM Period Register - uint16_t pwmw; // PWM Width Register - uint16_t pwmcnt; // PWN Counter - uint8_t unused21[248]; - - // $(FF)FFF600 - uint16_t tctl[2]; // Timer Control Register - uint16_t tprer[2]; // Timer Prescaler Register - uint16_t tcmp[2]; // Timer Compare Register - uint16_t tcr[2]; // Timer Capture Register - uint16_t tcn[2]; // Timer Counter - uint16_t tstat[2]; // Timer Status - uint16_t wctlr; // Watchdog Control Register - uint16_t wcmpr; // Watchdog Compare Register - uint16_t wcn; // Watchdog Counter - uint8_t tclear[2]; // Timer Clearable Status - uint8_t unused22[224]; - - // $(FF)FFF700 - uint16_t spisr; // SPIS Register - uint8_t unused23[254]; - - // $(FF)FFF800 - uint16_t spimdata; // SPIM Data Register - uint16_t spimcont; // SPIM Control/Status Register - uint8_t unused24[252]; - - // $(FF)FFF900 - uint16_t ustcnt; // UART Status/Control Register - uint16_t ubaud; // UART Baud Control Register - uint16_t urx; // UART RX Register - uint16_t utx; // UART TX Register - uint16_t umisc; // UART Misc Register - uint8_t unused25[246]; - - // $(FF)FFFA00 - uint32_t lssa; // Screen Starting Address Register - uint8_t unused26[1]; - uint8_t lvpw; // Virtual Page Width Register - uint8_t unused27[2]; - uint16_t lxmax; // Screen Width Register - uint16_t lymax; // Screen Height Register - uint8_t unused28[12]; - uint16_t lcxp; // Cursor X Position - uint16_t lcyp; // Cursor Y Position - uint16_t lcwch; // Cursor Width & Height Register - uint8_t unused29[1]; - uint8_t lblkc; // Blink Control Register - uint8_t lpicf; // Panel Interface Config Register - uint8_t lpolcf; // Polarity Config Register - uint8_t unused30[1]; - uint8_t lacdrc; // ACD (M) Rate Control Register - uint8_t unused31[1]; - uint8_t lpxcd; // Pixel Clock Divider Register - uint8_t unused32[1]; - uint8_t lckcon; // Clocking Control Register - uint8_t unused33[1]; - uint8_t llbar; // Last Buffer Address Register - uint8_t unused34[1]; - uint8_t lotcr; // Octet Terminal Count Register - uint8_t unused35[1]; - uint8_t lposr; // Panning Offset Register - uint8_t unused36[3]; - uint8_t lfrcm; // Frame Rate Control Modulation Register - uint16_t lgpmr; // Gray Palette Mapping Register - uint8_t unused37[204]; - - // $(FF)FFFB00 - uint32_t hmsr; // RTC Hours Minutes Seconds Register - uint32_t alarm; // RTC Alarm Register - uint8_t unused38[4]; - uint16_t rtcctl; // RTC Control Register - uint16_t rtcisr; // RTC Interrupt Status Register - uint16_t rtcienr; // RTC Interrupt Enable Register - uint16_t stpwtch; // Stopwatch Minutes - uint8_t unused42[1260]; -}; +#ifndef MAME_MACHINE_MC68328_H +#define MAME_MACHINE_MC68328_H class mc68328_device : public device_t { public: mc68328_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~mc68328_device() {} static void static_set_cpu_tag(device_t &device, const char *tag) { downcast(device).m_cpu.set_tag(tag); } - template static devcb_base &set_out_port_a_callback(device_t &device, _Object object) { return downcast(device).m_out_port_a_cb.set_callback(object); } - template static devcb_base &set_out_port_b_callback(device_t &device, _Object object) { return downcast(device).m_out_port_b_cb.set_callback(object); } - template static devcb_base &set_out_port_c_callback(device_t &device, _Object object) { return downcast(device).m_out_port_c_cb.set_callback(object); } - template static devcb_base &set_out_port_d_callback(device_t &device, _Object object) { return downcast(device).m_out_port_d_cb.set_callback(object); } - template static devcb_base &set_out_port_e_callback(device_t &device, _Object object) { return downcast(device).m_out_port_e_cb.set_callback(object); } - template static devcb_base &set_out_port_f_callback(device_t &device, _Object object) { return downcast(device).m_out_port_f_cb.set_callback(object); } - template static devcb_base &set_out_port_g_callback(device_t &device, _Object object) { return downcast(device).m_out_port_g_cb.set_callback(object); } - template static devcb_base &set_out_port_j_callback(device_t &device, _Object object) { return downcast(device).m_out_port_j_cb.set_callback(object); } - template static devcb_base &set_out_port_k_callback(device_t &device, _Object object) { return downcast(device).m_out_port_k_cb.set_callback(object); } - template static devcb_base &set_out_port_m_callback(device_t &device, _Object object) { return downcast(device).m_out_port_m_cb.set_callback(object); } - template static devcb_base &set_in_port_a_callback(device_t &device, _Object object) { return downcast(device).m_in_port_a_cb.set_callback(object); } - template static devcb_base &set_in_port_b_callback(device_t &device, _Object object) { return downcast(device).m_in_port_b_cb.set_callback(object); } - template static devcb_base &set_in_port_c_callback(device_t &device, _Object object) { return downcast(device).m_in_port_c_cb.set_callback(object); } - template static devcb_base &set_in_port_d_callback(device_t &device, _Object object) { return downcast(device).m_in_port_d_cb.set_callback(object); } - template static devcb_base &set_in_port_e_callback(device_t &device, _Object object) { return downcast(device).m_in_port_e_cb.set_callback(object); } - template static devcb_base &set_in_port_f_callback(device_t &device, _Object object) { return downcast(device).m_in_port_f_cb.set_callback(object); } - template static devcb_base &set_in_port_g_callback(device_t &device, _Object object) { return downcast(device).m_in_port_g_cb.set_callback(object); } - template static devcb_base &set_in_port_j_callback(device_t &device, _Object object) { return downcast(device).m_in_port_j_cb.set_callback(object); } - template static devcb_base &set_in_port_k_callback(device_t &device, _Object object) { return downcast(device).m_in_port_k_cb.set_callback(object); } - template static devcb_base &set_in_port_m_callback(device_t &device, _Object object) { return downcast(device).m_in_port_m_cb.set_callback(object); } - template static devcb_base &set_out_pwm_callback(device_t &device, _Object object) { return downcast(device).m_out_pwm_cb.set_callback(object); } - template static devcb_base &set_out_spim_callback(device_t &device, _Object object) { return downcast(device).m_out_spim_cb.set_callback(object); } - template static devcb_base &set_in_spim_callback(device_t &device, _Object object) { return downcast(device).m_in_spim_cb.set_callback(object); } - template static devcb_base &set_spim_xch_trigger_callback(device_t &device, _Object object) { return downcast(device).m_spim_xch_trigger_cb.set_callback(object); } + template static devcb_base &set_out_port_a_callback(device_t &device, Object &&cb) { return downcast(device).m_out_port_a_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_port_b_callback(device_t &device, Object &&cb) { return downcast(device).m_out_port_b_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_port_c_callback(device_t &device, Object &&cb) { return downcast(device).m_out_port_c_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_port_d_callback(device_t &device, Object &&cb) { return downcast(device).m_out_port_d_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_port_e_callback(device_t &device, Object &&cb) { return downcast(device).m_out_port_e_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_port_f_callback(device_t &device, Object &&cb) { return downcast(device).m_out_port_f_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_port_g_callback(device_t &device, Object &&cb) { return downcast(device).m_out_port_g_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_port_j_callback(device_t &device, Object &&cb) { return downcast(device).m_out_port_j_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_port_k_callback(device_t &device, Object &&cb) { return downcast(device).m_out_port_k_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_port_m_callback(device_t &device, Object &&cb) { return downcast(device).m_out_port_m_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_in_port_a_callback(device_t &device, Object &&cb) { return downcast(device).m_in_port_a_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_in_port_b_callback(device_t &device, Object &&cb) { return downcast(device).m_in_port_b_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_in_port_c_callback(device_t &device, Object &&cb) { return downcast(device).m_in_port_c_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_in_port_d_callback(device_t &device, Object &&cb) { return downcast(device).m_in_port_d_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_in_port_e_callback(device_t &device, Object &&cb) { return downcast(device).m_in_port_e_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_in_port_f_callback(device_t &device, Object &&cb) { return downcast(device).m_in_port_f_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_in_port_g_callback(device_t &device, Object &&cb) { return downcast(device).m_in_port_g_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_in_port_j_callback(device_t &device, Object &&cb) { return downcast(device).m_in_port_j_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_in_port_k_callback(device_t &device, Object &&cb) { return downcast(device).m_in_port_k_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_in_port_m_callback(device_t &device, Object &&cb) { return downcast(device).m_in_port_m_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_pwm_callback(device_t &device, Object &&cb) { return downcast(device).m_out_pwm_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_spim_callback(device_t &device, Object &&cb) { return downcast(device).m_out_spim_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_in_spim_callback(device_t &device, Object &&cb) { return downcast(device).m_in_spim_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_spim_xch_trigger_callback(device_t &device, Object &&cb) { return downcast(device).m_spim_xch_trigger_cb.set_callback(std::forward(cb)); } DECLARE_WRITE16_MEMBER(write); @@ -649,6 +137,199 @@ protected: virtual void device_reset() override; private: + struct mc68328_regs_t + { + // $(FF)FFF000 + uint8_t scr; // System Control Register + uint8_t unused0[255]; + + // $(FF)FFF100 + uint16_t grpbasea; // Chip Select Group A Base Register + uint16_t grpbaseb; // Chip Select Group B Base Register + uint16_t grpbasec; // Chip Select Group C Base Register + uint16_t grpbased; // Chip Select Group D Base Register + uint16_t grpmaska; // Chip Select Group A Mask Register + uint16_t grpmaskb; // Chip Select Group B Mask Register + uint16_t grpmaskc; // Chip Select Group C Mask Register + uint16_t grpmaskd; // Chip Select Group D Mask Register + uint32_t csa0; // Group A Chip Select 0 Register + uint32_t csa1; // Group A Chip Select 1 Register + uint32_t csa2; // Group A Chip Select 2 Register + uint32_t csa3; // Group A Chip Select 3 Register + uint32_t csb0; // Group B Chip Select 0 Register + uint32_t csb1; // Group B Chip Select 1 Register + uint32_t csb2; // Group B Chip Select 2 Register + uint32_t csb3; // Group B Chip Select 3 Register + uint32_t csc0; // Group C Chip Select 0 Register + uint32_t csc1; // Group C Chip Select 1 Register + uint32_t csc2; // Group C Chip Select 2 Register + uint32_t csc3; // Group C Chip Select 3 Register + uint32_t csd0; // Group D Chip Select 0 Register + uint32_t csd1; // Group D Chip Select 1 Register + uint32_t csd2; // Group D Chip Select 2 Register + uint32_t csd3; // Group D Chip Select 3 Register + uint8_t unused1[176]; + + // $(FF)FFF200 + uint16_t pllcr; // PLL Control Register + uint16_t pllfsr; // PLL Frequency Select Register + uint8_t pad2[3]; + uint8_t pctlr; // Power Control Register + uint8_t unused3[248]; + + // $(FF)FFF300 + uint8_t ivr; // Interrupt Vector Register + uint8_t unused4[1]; + uint16_t icr; // Interrupt Control Register + uint32_t imr; // Interrupt Mask Register + uint32_t iwr; // Interrupt Wakeup Enable Register + uint32_t isr; // Interrupt Status Register + uint32_t ipr; // Interrupt Pending Register + uint8_t unused5[236]; + + // $(FF)FFF400 + uint8_t padir; // Port A Direction Register + uint8_t padata; // Port A Data Register + uint8_t unused6[1]; + uint8_t pasel; // Port A Select Register + uint8_t unused7[4]; + + uint8_t pbdir; // Port B Direction Register + uint8_t pbdata; // Port B Data Register + uint8_t unused8[1]; + uint8_t pbsel; // Port B Select Register + uint8_t unused9[4]; + + uint8_t pcdir; // Port C Direction Register + uint8_t pcdata; // Port C Data Register + uint8_t unused10[1]; + uint8_t pcsel; // Port C Select Register + uint8_t unused11[4]; + + uint8_t pddir; // Port D Direction Register + uint8_t pddata; // Port D Data Register + uint8_t pdpuen; // Port D Pullup Enable Register + uint8_t unused12[1]; + uint8_t pdpol; // Port D Polarity Register + uint8_t pdirqen; // Port D IRQ Enable Register + uint8_t pddataedge; // Port D Data Edge Level + uint8_t pdirqedge; // Port D IRQ Edge Register + + uint8_t pedir; // Port E Direction Register + uint8_t pedata; // Port E Data Register + uint8_t pepuen; // Port E Pullup Enable Register + uint8_t pesel; // Port E Select Register + uint8_t unused14[4]; + + uint8_t pfdir; // Port F Direction Register + uint8_t pfdata; // Port F Data Register + uint8_t pfpuen; // Port F Pullup Enable Register + uint8_t pfsel; // Port F Select Register + uint8_t unused15[4]; + + uint8_t pgdir; // Port G Direction Register + uint8_t pgdata; // Port G Data Register + uint8_t pgpuen; // Port G Pullup Enable Register + uint8_t pgsel; // Port G Select Register + uint8_t unused16[4]; + + uint8_t pjdir; // Port J Direction Register + uint8_t pjdata; // Port J Data Register + uint8_t unused17[1]; + uint8_t pjsel; // Port J Select Register + uint8_t unused18[4]; + uint8_t pkdir; // Port K Direction Register + uint8_t pkdata; // Port K Data Register + uint8_t pkpuen; // Port K Pullup Enable Register + uint8_t pksel; // Port K Select Register + uint8_t unused19[4]; + + uint8_t pmdir; // Port M Direction Register + uint8_t pmdata; // Port M Data Register + uint8_t pmpuen; // Port M Pullup Enable Register + uint8_t pmsel; // Port M Select Register + uint8_t unused20[180]; + + // $(FF)FFF500 + uint16_t pwmc; // PWM Control Register + uint16_t pwmp; // PWM Period Register + uint16_t pwmw; // PWM Width Register + uint16_t pwmcnt; // PWN Counter + uint8_t unused21[248]; + + // $(FF)FFF600 + uint16_t tctl[2]; // Timer Control Register + uint16_t tprer[2]; // Timer Prescaler Register + uint16_t tcmp[2]; // Timer Compare Register + uint16_t tcr[2]; // Timer Capture Register + uint16_t tcn[2]; // Timer Counter + uint16_t tstat[2]; // Timer Status + uint16_t wctlr; // Watchdog Control Register + uint16_t wcmpr; // Watchdog Compare Register + uint16_t wcn; // Watchdog Counter + uint8_t tclear[2]; // Timer Clearable Status + uint8_t unused22[224]; + + // $(FF)FFF700 + uint16_t spisr; // SPIS Register + uint8_t unused23[254]; + + // $(FF)FFF800 + uint16_t spimdata; // SPIM Data Register + uint16_t spimcont; // SPIM Control/Status Register + uint8_t unused24[252]; + + // $(FF)FFF900 + uint16_t ustcnt; // UART Status/Control Register + uint16_t ubaud; // UART Baud Control Register + uint16_t urx; // UART RX Register + uint16_t utx; // UART TX Register + uint16_t umisc; // UART Misc Register + uint8_t unused25[246]; + + // $(FF)FFFA00 + uint32_t lssa; // Screen Starting Address Register + uint8_t unused26[1]; + uint8_t lvpw; // Virtual Page Width Register + uint8_t unused27[2]; + uint16_t lxmax; // Screen Width Register + uint16_t lymax; // Screen Height Register + uint8_t unused28[12]; + uint16_t lcxp; // Cursor X Position + uint16_t lcyp; // Cursor Y Position + uint16_t lcwch; // Cursor Width & Height Register + uint8_t unused29[1]; + uint8_t lblkc; // Blink Control Register + uint8_t lpicf; // Panel Interface Config Register + uint8_t lpolcf; // Polarity Config Register + uint8_t unused30[1]; + uint8_t lacdrc; // ACD (M) Rate Control Register + uint8_t unused31[1]; + uint8_t lpxcd; // Pixel Clock Divider Register + uint8_t unused32[1]; + uint8_t lckcon; // Clocking Control Register + uint8_t unused33[1]; + uint8_t llbar; // Last Buffer Address Register + uint8_t unused34[1]; + uint8_t lotcr; // Octet Terminal Count Register + uint8_t unused35[1]; + uint8_t lposr; // Panning Offset Register + uint8_t unused36[3]; + uint8_t lfrcm; // Frame Rate Control Modulation Register + uint16_t lgpmr; // Gray Palette Mapping Register + uint8_t unused37[204]; + + // $(FF)FFFB00 + uint32_t hmsr; // RTC Hours Minutes Seconds Register + uint32_t alarm; // RTC Alarm Register + uint8_t unused38[4]; + uint16_t rtcctl; // RTC Control Register + uint16_t rtcisr; // RTC Interrupt Status Register + uint16_t rtcienr; // RTC Interrupt Enable Register + uint16_t stpwtch; // Stopwatch Minutes + uint8_t unused42[1260]; + }; + // internal state void set_interrupt_line(uint32_t line, uint32_t active); void poll_port_d_interrupts(); @@ -702,7 +383,7 @@ private: }; -extern const device_type MC68328; +DECLARE_DEVICE_TYPE(MC68328, mc68328_device) #define MCFG_MC68328_CPU(_tag) \ mc68328_device::static_set_cpu_tag(*device, "^" _tag); @@ -780,4 +461,4 @@ extern const device_type MC68328; devcb = &mc68328_device::set_spim_xch_trigger_callback(*device, DEVCB_##_devcb); -#endif +#endif // MAME_MACHINE_MC68328_H diff --git a/src/devices/machine/mc6843.cpp b/src/devices/machine/mc6843.cpp index 64b09f2de8d..af3c6cb9f46 100644 --- a/src/devices/machine/mc6843.cpp +++ b/src/devices/machine/mc6843.cpp @@ -35,10 +35,11 @@ #include "emu.h" #include "mc6843.h" +//#define VERBOSE 1 +#include "logmacro.h" -/******************* parameters ******************/ -#define VERBOSE 0 +/******************* parameters ******************/ /* macro-command numbers */ #define CMD_STZ 0x2 /* seek track zero */ @@ -65,17 +66,12 @@ static const char *const mc6843_cmd[16] = }; -/******************* utility function and macros ********************/ - -#define LOG(x) do { if (VERBOSE) logerror x; } while (0) - - -const device_type MC6843 = device_creator; +DEFINE_DEVICE_TYPE(MC6843, mc6843_device, "mc5843", "Motorola MC6843 FDC") mc6843_device::mc6843_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MC6843, "MC6843 floppy controller", tag, owner, clock, "mc6843", __FILE__), + : device_t(mconfig, MC6843, tag, owner, clock), m_write_irq(*this), m_CTAR(0), m_CMR(0), @@ -232,7 +228,7 @@ void mc6843_device::status_update( ) } m_write_irq( irq ); - LOG(( "status_update: irq=%i (CMR=%02X, ISR=%02X)\n", irq, m_CMR, m_ISR )); + LOG( "status_update: irq=%i (CMR=%02X, ISR=%02X)\n", irq, m_CMR, m_ISR ); } @@ -275,7 +271,7 @@ void mc6843_device::finish_STZ( ) img->floppy_drive_seek( -1 ); } - LOG(( "%f mc6843_finish_STZ: actual=%i\n", machine().time().as_double(), img->floppy_drive_get_current_track() )); + LOG( "%f mc6843_finish_STZ: actual=%i\n", machine().time().as_double(), img->floppy_drive_get_current_track() ); /* update state */ m_CTAR = 0; @@ -297,7 +293,7 @@ void mc6843_device::finish_SEK( ) // TODO: not sure how CTAR bit 7 is handled here, but this is the safest approach for now img->floppy_drive_seek( m_GCR - (m_CTAR & 0x7F) ); - LOG(( "%f mc6843_finish_SEK: from %i to %i (actual=%i)\n", machine().time().as_double(), (m_CTAR & 0x7F), m_GCR, img->floppy_drive_get_current_track() )); + LOG( "%f mc6843_finish_SEK: from %i to %i (actual=%i)\n", machine().time().as_double(), (m_CTAR & 0x7F), m_GCR, img->floppy_drive_get_current_track() ); /* update state */ m_CTAR = m_GCR; @@ -318,7 +314,7 @@ int mc6843_device::address_search( chrn_id* id ) if ( ( ! img->floppy_drive_get_next_id( m_side, id ) ) || ( id->flags & ID_FLAG_CRC_ERROR_IN_ID_FIELD ) || ( id->N != 0 ) ) { /* read address error */ - LOG(( "%f mc6843_address_search: get_next_id failed\n", machine().time().as_double() )); + LOG( "%f mc6843_address_search: get_next_id failed\n", machine().time().as_double() ); m_STRB |= 0x0a; /* set CRC error & Sector Address Undetected */ cmd_end( ); return 0; @@ -327,7 +323,7 @@ int mc6843_device::address_search( chrn_id* id ) if ( id->C != m_LTAR ) { /* track mismatch */ - LOG(( "%f mc6843_address_search: track mismatch: logical=%i real=%i\n", machine().time().as_double(), m_LTAR, id->C )); + LOG( "%f mc6843_address_search: track mismatch: logical=%i real=%i\n", machine().time().as_double(), m_LTAR, id->C ); m_data[0] = id->C; /* make the track number available to the CPU */ m_STRA |= 0x20; /* set Track Not Equal */ cmd_end( ); @@ -337,7 +333,7 @@ int mc6843_device::address_search( chrn_id* id ) if ( id->R == m_SAR ) { /* found! */ - LOG(( "%f mc6843_address_search: sector %i found on track %i\n", machine().time().as_double(), id->R, id->C )); + LOG( "%f mc6843_address_search: sector %i found on track %i\n", machine().time().as_double(), id->R, id->C ); if ( ! (m_CMR & 0x20) ) { m_ISR |= 0x04; /* if no DMA, set Status Sense */ @@ -351,7 +347,7 @@ int mc6843_device::address_search( chrn_id* id ) if ( r >= 4 ) { /* time-out after 3 full revolutions */ - LOG(( "%f mc6843_address_search: no sector %i found after 3 revolutions\n", machine().time().as_double(), m_SAR )); + LOG( "%f mc6843_address_search: no sector %i found after 3 revolutions\n", machine().time().as_double(), m_SAR ); m_STRB |= 0x08; /* set Sector Address Undetected */ cmd_end( ); return 0; @@ -372,7 +368,7 @@ int mc6843_device::address_search_read( chrn_id* id ) if ( id->flags & ID_FLAG_CRC_ERROR_IN_DATA_FIELD ) { - LOG(( "%f mc6843_address_search_read: data CRC error\n", machine().time().as_double() )); + LOG( "%f mc6843_address_search_read: data CRC error\n", machine().time().as_double() ); m_STRB |= 0x06; /* set CRC error & Data Mark Undetected */ cmd_end( ); return 0; @@ -380,7 +376,7 @@ int mc6843_device::address_search_read( chrn_id* id ) if ( id->flags & ID_FLAG_DELETED_DATA ) { - LOG(( "%f mc6843_address_search_read: deleted data\n", machine().time().as_double() )); + LOG( "%f mc6843_address_search_read: deleted data\n", machine().time().as_double() ); m_STRA |= 0x02; /* set Delete Data Mark Detected */ } @@ -449,7 +445,7 @@ void mc6843_device::device_timer(emu_timer &timer, device_timer_id id, int param { int cmd = m_CMR & 0x0f; - LOG(( "%f mc6843_cont: timer called for cmd=%s(%i)\n", machine().time().as_double(), mc6843_cmd[cmd], cmd )); + LOG( "%f mc6843_cont: timer called for cmd=%s(%i)\n", machine().time().as_double(), mc6843_cmd[cmd], cmd ); m_timer_cont->adjust( attotime::never ); @@ -487,10 +483,10 @@ READ8_MEMBER( mc6843_device::read ) { int cmd = m_CMR & 0x0f; - LOG(( "%f %s mc6843_r: data input cmd=%s(%i), pos=%i/%i, GCR=%i, ", + LOG( "%f %s mc6843_r: data input cmd=%s(%i), pos=%i/%i, GCR=%i, ", machine().time().as_double(), machine().describe_context(), mc6843_cmd[cmd], cmd, m_data_idx, - m_data_size, m_GCR )); + m_data_size, m_GCR ); if ( cmd == CMD_SSR || cmd == CMD_MSR ) { @@ -544,24 +540,24 @@ READ8_MEMBER( mc6843_device::read ) logerror( "%s mc6843 read in unsupported command mode %i\n", machine().describe_context(), cmd ); } - LOG(( "data=%02X\n", data )); + LOG( "data=%02X\n", data ); break; } case 1: /* Current-Track Address Register (CTAR) */ data = m_CTAR; - LOG(( "%f %s mc6843_r: read CTAR %i (actual=%i)\n", + LOG( "%f %s mc6843_r: read CTAR %i (actual=%i)\n", machine().time().as_double(), machine().describe_context(), data, - floppy_image()->floppy_drive_get_current_track())); + floppy_image()->floppy_drive_get_current_track()); break; case 2: /* Interrupt Status Register (ISR) */ data = m_ISR; - LOG(( "%f %s mc6843_r: read ISR %02X: cmd=%scomplete settle=%scomplete sense-rq=%i STRB=%i\n", + LOG( "%f %s mc6843_r: read ISR %02X: cmd=%scomplete settle=%scomplete sense-rq=%i STRB=%i\n", machine().time().as_double(), machine().describe_context(), data, (data & 1) ? "" : "not-" , (data & 2) ? "" : "not-", - (data >> 2) & 1, (data >> 3) & 1 )); + (data >> 2) & 1, (data >> 3) & 1 ); /* reset */ m_ISR &= 8; /* keep STRB */ @@ -584,19 +580,19 @@ READ8_MEMBER( mc6843_device::read ) m_STRA |= 0x40; data = m_STRA; - LOG(( "%f %s mc6843_r: read STRA %02X: data-rq=%i del-dta=%i ready=%i t0=%i wp=%i trk-dif=%i idx=%i busy=%i\n", + LOG( "%f %s mc6843_r: read STRA %02X: data-rq=%i del-dta=%i ready=%i t0=%i wp=%i trk-dif=%i idx=%i busy=%i\n", machine().time().as_double(), machine().describe_context(), data, data & 1, (data >> 1) & 1, (data >> 2) & 1, (data >> 3) & 1, - (data >> 4) & 1, (data >> 5) & 1, (data >> 6) & 1, (data >> 7) & 1 )); + (data >> 4) & 1, (data >> 5) & 1, (data >> 6) & 1, (data >> 7) & 1 ); break; } case 4: /* Status Register B (STRB) */ data = m_STRB; - LOG(( "%f %s mc6843_r: read STRB %02X: data-err=%i CRC-err=%i dta--mrk-err=%i sect-mrk-err=%i seek-err=%i fi=%i wr-err=%i hard-err=%i\n", + LOG( "%f %s mc6843_r: read STRB %02X: data-err=%i CRC-err=%i dta--mrk-err=%i sect-mrk-err=%i seek-err=%i fi=%i wr-err=%i hard-err=%i\n", machine().time().as_double(), machine().describe_context(), data, data & 1, (data >> 1) & 1, (data >> 2) & 1, (data >> 3) & 1, - (data >> 4) & 1, (data >> 5) & 1, (data >> 6) & 1, (data >> 7) & 1 )); + (data >> 4) & 1, (data >> 5) & 1, (data >> 6) & 1, (data >> 7) & 1 ); /* (partial) reset */ m_STRB &= ~0xfb; @@ -605,9 +601,9 @@ READ8_MEMBER( mc6843_device::read ) case 7: /* Logical-Track Address Register (LTAR) */ data = m_LTAR; - LOG(( "%f %s mc6843_r: read LTAR %i (actual=%i)\n", + LOG( "%f %s mc6843_r: read LTAR %i (actual=%i)\n", machine().time().as_double(), machine().describe_context(), data, - floppy_image()->floppy_drive_get_current_track())); + floppy_image()->floppy_drive_get_current_track()); break; default: @@ -625,10 +621,10 @@ WRITE8_MEMBER( mc6843_device::write ) int cmd = m_CMR & 0x0f; int FWF = (m_CMR >> 4) & 1; - LOG(( "%f %s mc6843_w: data output cmd=%s(%i), pos=%i/%i, GCR=%i, data=%02X\n", + LOG( "%f %s mc6843_w: data output cmd=%s(%i), pos=%i/%i, GCR=%i, data=%02X\n", machine().time().as_double(), machine().describe_context(), mc6843_cmd[cmd], cmd, m_data_idx, - m_data_size, m_GCR, data )); + m_data_size, m_GCR, data ); if ( cmd == CMD_SSW || cmd == CMD_MSW || cmd == CMD_SWD ) { @@ -643,7 +639,7 @@ WRITE8_MEMBER( mc6843_device::write ) /* end of sector write */ legacy_floppy_image_device* img = floppy_image( ); - LOG(( "%f %s mc6843_w: write sector %i\n", machine().time().as_double(), machine().describe_context(), m_data_id )); + LOG( "%f %s mc6843_w: write sector %i\n", machine().time().as_double(), machine().describe_context(), m_data_id ); img->floppy_drive_write_sector_data( m_side, m_data_id, @@ -707,7 +703,7 @@ WRITE8_MEMBER( mc6843_device::write ) uint8_t track = m_data[1]; uint8_t sector = m_data[3]; uint8_t filler = 0xe5; /* standard Thomson filler */ - LOG(( "%f %s mc6843_w: address id detected track=%i sector=%i\n", machine().time().as_double(), machine().describe_context(), track, sector)); + LOG( "%f %s mc6843_w: address id detected track=%i sector=%i\n", machine().time().as_double(), machine().describe_context(), track, sector); img->floppy_drive_format_sector( m_side, sector, track, 0, sector, 0, filler ); } else @@ -736,19 +732,19 @@ WRITE8_MEMBER( mc6843_device::write ) case 1: /* Current-Track Address Register (CTAR) */ m_CTAR = data; - LOG(( "%f %s mc6843_w: set CTAR to %i %02X (actual=%i) \n", + LOG( "%f %s mc6843_w: set CTAR to %i %02X (actual=%i) \n", machine().time().as_double(), machine().describe_context(), m_CTAR, data, - floppy_image()->floppy_drive_get_current_track())); + floppy_image()->floppy_drive_get_current_track()); break; case 2: /* Command Register (CMR) */ { int cmd = data & 15; - LOG(( "%f %s mc6843_w: set CMR to $%02X: cmd=%s(%i) FWF=%i DMA=%i ISR3-intr=%i fun-intr=%i\n", + LOG( "%f %s mc6843_w: set CMR to $%02X: cmd=%s(%i) FWF=%i DMA=%i ISR3-intr=%i fun-intr=%i\n", machine().time().as_double(), machine().describe_context(), data, mc6843_cmd[cmd], cmd, (data >> 4) & 1, (data >> 5) & 1, - (data >> 6) & 1, (data >> 7) & 1 )); + (data >> 6) & 1, (data >> 7) & 1 ); /* sanitize state */ m_STRA &= ~0x81; /* clear Busy & Data Transfer Request */ @@ -792,33 +788,33 @@ WRITE8_MEMBER( mc6843_device::write ) m_SUR = data; /* assume CLK freq = 1MHz (IBM 3740 compatibility) */ - LOG(( "%f %s mc6843_w: set SUR to $%02X: head settling time=%fms, track-to-track seek time=%f\n", + LOG( "%f %s mc6843_w: set SUR to $%02X: head settling time=%fms, track-to-track seek time=%f\n", machine().time().as_double(), machine().describe_context(), - data, 4.096 * (data & 15), 1.024 * ((data >> 4) & 15) )); + data, 4.096 * (data & 15), 1.024 * ((data >> 4) & 15) ); break; case 4: /* Sector Address Register (SAR) */ m_SAR = data & 0x1f; - LOG(( "%f %s mc6843_w: set SAR to %i (%02X)\n", machine().time().as_double(), machine().describe_context(), m_SAR, data )); + LOG( "%f %s mc6843_w: set SAR to %i (%02X)\n", machine().time().as_double(), machine().describe_context(), m_SAR, data ); break; case 5: /* General Count Register (GCR) */ m_GCR = data & 0x7f; - LOG(( "%f %s mc6843_w: set GCR to %i (%02X)\n", machine().time().as_double(), machine().describe_context(), m_GCR, data )); + LOG( "%f %s mc6843_w: set GCR to %i (%02X)\n", machine().time().as_double(), machine().describe_context(), m_GCR, data ); break; case 6: /* CRC Control Register (CCR) */ m_CCR = data & 3; - LOG(( "%f %s mc6843_w: set CCR to %02X: CRC=%s shift=%i\n", + LOG( "%f %s mc6843_w: set CCR to %02X: CRC=%s shift=%i\n", machine().time().as_double(), machine().describe_context(), data, - (data & 1) ? "enabled" : "disabled", (data >> 1) & 1 )); + (data & 1) ? "enabled" : "disabled", (data >> 1) & 1 ); break; case 7: /* Logical-Track Address Register (LTAR) */ m_LTAR = data & 0x7f; - LOG(( "%f %s mc6843_w: set LTAR to %i %02X (actual=%i)\n", + LOG( "%f %s mc6843_w: set LTAR to %i %02X (actual=%i)\n", machine().time().as_double(), machine().describe_context(), m_LTAR, data, - floppy_image()->floppy_drive_get_current_track())); + floppy_image()->floppy_drive_get_current_track()); break; default: diff --git a/src/devices/machine/mc6843.h b/src/devices/machine/mc6843.h index 73b21140f1a..820ac1aec93 100644 --- a/src/devices/machine/mc6843.h +++ b/src/devices/machine/mc6843.h @@ -8,8 +8,10 @@ **********************************************************************/ -#ifndef MC6843_H -#define MC6843_H +#ifndef MAME_MACHINE_MC6843_H +#define MAME_MACHINE_MC6843_H + +#pragma once #include "imagedev/flopdrv.h" @@ -20,9 +22,8 @@ class mc6843_device : public device_t { public: mc6843_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~mc6843_device() {} - template static devcb_base &set_irq_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_irq.set_callback(object); } + template static devcb_base &set_irq_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_irq.set_callback(std::forward(cb)); } DECLARE_READ8_MEMBER(read); DECLARE_WRITE8_MEMBER(write); @@ -83,6 +84,6 @@ private: }; -extern const device_type MC6843; +DECLARE_DEVICE_TYPE(MC6843, mc6843_device) -#endif +#endif // MAME_MACHINE_MC6843_H diff --git a/src/devices/machine/mc6846.cpp b/src/devices/machine/mc6846.cpp index a250c67b15b..2c2c1abb497 100644 --- a/src/devices/machine/mc6846.cpp +++ b/src/devices/machine/mc6846.cpp @@ -23,13 +23,12 @@ #include "emu.h" #include "mc6846.h" -#define VERBOSE 0 +//#define VERBOSE 1 +#include "logmacro.h" /******************* utility function and macros ********************/ -#define LOG(x) do { if (VERBOSE) logerror x; } while (0) - #define PORT \ ((m_pdr & m_ddr) | \ ((!m_in_port_cb.isnull() ? m_in_port_cb( 0 ) : 0) & \ @@ -43,10 +42,10 @@ #define FACTOR ((m_tcr & 4) ? 8 : 1) -const device_type MC6846 = device_creator; +DEFINE_DEVICE_TYPE(MC6846, mc6846_device, "mc6846", "MC6846 Programmable Timer") mc6846_device::mc6846_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MC6846, "MC6846 Programmable Timer", tag, owner, clock, "mc6846", __FILE__), + : device_t(mconfig, MC6846, tag, owner, clock), m_out_port_cb(*this), m_out_cp1_cb(*this), m_out_cp2_cb(*this), @@ -148,9 +147,9 @@ inline void mc6846_device::update_irq() cif = 1; if ( m_old_cif != cif ) { - LOG (( "%f: mc6846 interrupt %i (time=%i cp1=%i cp2=%i)\n", + LOG( "%f: mc6846 interrupt %i (time=%i cp1=%i cp2=%i)\n", machine().time().as_double(), cif, - m_csr & 1, (m_csr >> 1 ) & 1, (m_csr >> 2 ) & 1 )); + m_csr & 1, (m_csr >> 1 ) & 1, (m_csr >> 2 ) & 1 ); m_old_cif = cif; } if ( cif ) @@ -174,7 +173,7 @@ inline void mc6846_device::update_cto() int cto = CTO; if ( cto != m_old_cto ) { - LOG (( "%f: mc6846 CTO set to %i\n", machine().time().as_double(), cto )); + LOG( "%f: mc6846 CTO set to %i\n", machine().time().as_double(), cto ); m_old_cto = cto; } if ( !m_out_cto_cb.isnull() ) @@ -186,7 +185,7 @@ inline void mc6846_device::update_cto() inline void mc6846_device::timer_launch() { int delay = FACTOR * (m_preset+1); - LOG (( "%f: mc6846 timer launch called, mode=%i, preset=%i (x%i)\n", machine().time().as_double(), MODE, m_preset, FACTOR )); + LOG( "%f: mc6846 timer launch called, mode=%i, preset=%i (x%i)\n", machine().time().as_double(), MODE, m_preset, FACTOR ); if ( ! (m_tcr & 2) ) { @@ -231,7 +230,7 @@ TIMER_CALLBACK_MEMBER( mc6846_device::timer_expire ) { int delay = FACTOR * (m_latch+1); - LOG (( "%f: mc6846 timer expire called, mode=%i, latch=%i (x%i)\n", machine().time().as_double(), MODE, m_latch, FACTOR )); + LOG( "%f: mc6846 timer expire called, mode=%i, latch=%i (x%i)\n", machine().time().as_double(), MODE, m_latch, FACTOR ); /* latch => counter */ m_preset = m_latch; @@ -272,7 +271,7 @@ TIMER_CALLBACK_MEMBER( mc6846_device::timer_expire ) TIMER_CALLBACK_MEMBER( mc6846_device::timer_one_shot ) { - LOG (( "%f: mc6846 timer one shot called\n", machine().time().as_double() )); + LOG( "%f: mc6846 timer one shot called\n", machine().time().as_double() ); /* 1 micro second after one-shot launch, we put cto to high */ m_cto = 1; @@ -290,25 +289,25 @@ READ8_MEMBER(mc6846_device::read) { case 0: case 4: - LOG (( "%s %f: mc6846 CSR read $%02X intr=%i (timer=%i, cp1=%i, cp2=%i)\n", + LOG( "%s %f: mc6846 CSR read $%02X intr=%i (timer=%i, cp1=%i, cp2=%i)\n", machine().describe_context(), space.machine().time().as_double(), m_csr, (m_csr >> 7) & 1, - m_csr & 1, (m_csr >> 1) & 1, (m_csr >> 2) & 1 )); + m_csr & 1, (m_csr >> 1) & 1, (m_csr >> 2) & 1 ); m_csr0_to_be_cleared = m_csr & 1; m_csr1_to_be_cleared = m_csr & 2; m_csr2_to_be_cleared = m_csr & 4; return m_csr; case 1: - LOG (( "%s %f: mc6846 PCR read $%02X\n", machine().describe_context(), space.machine().time().as_double(), m_pcr )); + LOG( "%s %f: mc6846 PCR read $%02X\n", machine().describe_context(), space.machine().time().as_double(), m_pcr ); return m_pcr; case 2: - LOG (( "%s %f: mc6846 DDR read $%02X\n", machine().describe_context(), space.machine().time().as_double(), m_ddr )); + LOG( "%s %f: mc6846 DDR read $%02X\n", machine().describe_context(), space.machine().time().as_double(), m_ddr ); return m_ddr; case 3: - LOG (( "%s %f: mc6846 PORT read $%02X\n", machine().describe_context(), space.machine().time().as_double(), PORT )); + LOG( "%s %f: mc6846 PORT read $%02X\n", machine().describe_context(), space.machine().time().as_double(), PORT ); if ( ! (m_pcr & 0x80) ) { if ( m_csr1_to_be_cleared ) @@ -322,11 +321,11 @@ READ8_MEMBER(mc6846_device::read) return PORT; case 5: - LOG (( "%s %f: mc6846 TCR read $%02X\n",machine().describe_context(), space.machine().time().as_double(), m_tcr )); + LOG( "%s %f: mc6846 TCR read $%02X\n",machine().describe_context(), space.machine().time().as_double(), m_tcr ); return m_tcr; case 6: - LOG (( "%s %f: mc6846 COUNTER hi read $%02X\n", machine().describe_context(), space.machine().time().as_double(), counter() >> 8 )); + LOG( "%s %f: mc6846 COUNTER hi read $%02X\n", machine().describe_context(), space.machine().time().as_double(), counter() >> 8 ); if ( m_csr0_to_be_cleared ) { m_csr &= ~1; @@ -336,7 +335,7 @@ READ8_MEMBER(mc6846_device::read) return counter() >> 8; case 7: - LOG (( "%s %f: mc6846 COUNTER low read $%02X\n", machine().describe_context(), space.machine().time().as_double(), counter() & 0xff )); + LOG( "%s %f: mc6846 COUNTER low read $%02X\n", machine().describe_context(), space.machine().time().as_double(), counter() & 0xff ); if ( m_csr0_to_be_cleared ) { m_csr &= ~1; @@ -375,9 +374,9 @@ WRITE8_MEMBER(mc6846_device::write) "latched,neg-edge", "latched,neg-edge,intr", "latcged,pos-edge", "latcged,pos-edge,intr" }; - LOG (( "%s %f: mc6846 PCR write $%02X reset=%i cp2=%s cp1=%s\n", + LOG( "%s %f: mc6846 PCR write $%02X reset=%i cp2=%s cp1=%s\n", machine().describe_context(), space.machine().time().as_double(), data, - (data >> 7) & 1, cp2[ (data >> 3) & 7 ], cp1[ data & 7 ] )); + (data >> 7) & 1, cp2[ (data >> 3) & 7 ], cp1[ data & 7 ] ); } m_pcr = data; @@ -404,7 +403,7 @@ WRITE8_MEMBER(mc6846_device::write) break; case 2: - LOG (( "%s %f: mc6846 DDR write $%02X\n", machine().describe_context(), space.machine().time().as_double(), data )); + LOG( "%s %f: mc6846 DDR write $%02X\n", machine().describe_context(), space.machine().time().as_double(), data ); if ( ! (m_pcr & 0x80) ) { m_ddr = data; @@ -414,7 +413,7 @@ WRITE8_MEMBER(mc6846_device::write) break; case 3: - LOG (( "%s %f: mc6846 PORT write $%02X (mask=$%02X)\n", machine().describe_context(), space.machine().time().as_double(), data,m_ddr )); + LOG( "%s %f: mc6846 PORT write $%02X (mask=$%02X)\n", machine().describe_context(), space.machine().time().as_double(), data,m_ddr ); if ( ! (m_pcr & 0x80) ) { m_pdr = data; @@ -423,12 +422,12 @@ WRITE8_MEMBER(mc6846_device::write) if ( m_csr1_to_be_cleared && (m_csr & 2) ) { m_csr &= ~2; - LOG (( "%s %f: mc6846 CP1 intr reset\n", machine().describe_context(), space.machine().time().as_double() )); + LOG( "%s %f: mc6846 CP1 intr reset\n", machine().describe_context(), space.machine().time().as_double() ); } if ( m_csr2_to_be_cleared && (m_csr & 4) ) { m_csr &= ~4; - LOG (( "%s %f: mc6846 CP2 intr reset\n", machine().describe_context(), space.machine().time().as_double() )); + LOG( "%s %f: mc6846 CP2 intr reset\n", machine().describe_context(), space.machine().time().as_double() ); } m_csr1_to_be_cleared = 0; m_csr2_to_be_cleared = 0; @@ -443,11 +442,11 @@ WRITE8_MEMBER(mc6846_device::write) "continuous", "cascaded", "continuous", "one-shot", "freq-cmp", "freq-cmp", "pulse-cmp", "pulse-cmp" }; - LOG (( "%s %f: mc6846 TCR write $%02X reset=%i clock=%s scale=%i mode=%s out=%s\n", + LOG( "%s %f: mc6846 TCR write $%02X reset=%i clock=%s scale=%i mode=%s out=%s\n", machine().describe_context(), space.machine().time().as_double(), data, (data >> 7) & 1, (data & 0x40) ? "extern" : "sys", (data & 0x40) ? 1 : 8, mode[ (data >> 1) & 7 ], - (data & 1) ? "enabled" : "0" )); + (data & 1) ? "enabled" : "0" ); m_tcr = data; if ( m_tcr & 1 ) @@ -478,7 +477,7 @@ WRITE8_MEMBER(mc6846_device::write) case 7: m_latch = ( ((uint16_t) m_time_MSB) << 8 ) + data; - LOG (( "%s %f: mc6846 COUNT write %i\n", machine().describe_context(), space.machine().time().as_double(), m_latch )); + LOG( "%s %f: mc6846 COUNT write %i\n", machine().describe_context(), space.machine().time().as_double(), m_latch ); if (!(m_tcr & 0x38)) { /* timer initialization */ @@ -510,7 +509,7 @@ void mc6846_device::set_input_cp1(int data) if ( data == m_cp1 ) return; m_cp1 = data; - LOG (( "%f: mc6846 input CP1 set to %i\n", machine().time().as_double(), data )); + LOG( "%f: mc6846 input CP1 set to %i\n", machine().time().as_double(), data ); if (( data && (m_pcr & 2)) || (!data && !(m_pcr & 2))) { m_csr |= 2; @@ -524,7 +523,7 @@ void mc6846_device::set_input_cp2(int data) if ( data == m_cp2 ) return; m_cp2 = data; - LOG (( "%f: mc6846 input CP2 set to %i\n", machine().time().as_double(), data )); + LOG( "%f: mc6846 input CP2 set to %i\n", machine().time().as_double(), data ); if (m_pcr & 0x20) { if (( data && (m_pcr & 0x10)) || (!data && !(m_pcr & 0x10))) diff --git a/src/devices/machine/mc6846.h b/src/devices/machine/mc6846.h index ef8794c1ebc..e35d08f7af8 100644 --- a/src/devices/machine/mc6846.h +++ b/src/devices/machine/mc6846.h @@ -8,8 +8,10 @@ **********************************************************************/ -#ifndef MC6846_H -#define MC6846_H +#ifndef MAME_MACHINE_MC6846_H +#define MAME_MACHINE_MC6846_H + +#pragma once #define MCFG_MC6846_OUT_PORT_CB(_devcb) \ @@ -35,14 +37,13 @@ class mc6846_device : public device_t { public: mc6846_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~mc6846_device() {} - template static devcb_base &set_out_port_callback(device_t &device, _Object object) { return downcast(device).m_out_port_cb.set_callback(object); } - template static devcb_base &set_out_cp1_callback(device_t &device, _Object object) { return downcast(device).m_out_cp1_cb.set_callback(object); } - template static devcb_base &set_out_cp2_callback(device_t &device, _Object object) { return downcast(device).m_out_cp2_cb.set_callback(object); } - template static devcb_base &set_in_port_callback(device_t &device, _Object object) { return downcast(device).m_in_port_cb.set_callback(object); } - template static devcb_base &set_out_cto_callback(device_t &device, _Object object) { return downcast(device).m_out_cto_cb.set_callback(object); } - template static devcb_base &set_irq_callback(device_t &device, _Object object) { return downcast(device).m_irq_cb.set_callback(object); } + template static devcb_base &set_out_port_callback(device_t &device, Object &&cb) { return downcast(device).m_out_port_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_cp1_callback(device_t &device, Object &&cb) { return downcast(device).m_out_cp1_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_cp2_callback(device_t &device, Object &&cb) { return downcast(device).m_out_cp2_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_in_port_callback(device_t &device, Object &&cb) { return downcast(device).m_in_port_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_cto_callback(device_t &device, Object &&cb) { return downcast(device).m_out_cto_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_irq_callback(device_t &device, Object &&cb) { return downcast(device).m_irq_cb.set_callback(std::forward(cb)); } /* interface to CPU via address/data bus*/ DECLARE_READ8_MEMBER(read); @@ -120,6 +121,6 @@ private: TIMER_CALLBACK_MEMBER(timer_one_shot); }; -extern const device_type MC6846; +DECLARE_DEVICE_TYPE(MC6846, mc6846_device) -#endif +#endif // MAME_MACHINE_MC6846_H diff --git a/src/devices/machine/mc6852.cpp b/src/devices/machine/mc6852.cpp index 39291a0ea65..986c6129a26 100644 --- a/src/devices/machine/mc6852.cpp +++ b/src/devices/machine/mc6852.cpp @@ -24,20 +24,15 @@ #include "emu.h" #include "mc6852.h" - -//************************************************************************** -// DEVICE DEFINITIONS -//************************************************************************** - -const device_type MC6852 = device_creator; - +//#define VERBOSE 1 +#include "logmacro.h" //************************************************************************** -// MACROS / CONSTANTS +// DEVICE DEFINITIONS //************************************************************************** -#define LOG 0 +DEFINE_DEVICE_TYPE(MC6852, mc6852_device, "mc6852", "Motorola MC6852 SSDA") @@ -50,7 +45,7 @@ const device_type MC6852 = device_creator; //------------------------------------------------- mc6852_device::mc6852_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, MC6852, "MC6852", tag, owner, clock, "mc6852", __FILE__), + device_t(mconfig, MC6852, tag, owner, clock), device_serial_interface(mconfig, *this), m_write_tx_data(*this), m_write_irq(*this), @@ -195,7 +190,7 @@ WRITE8_MEMBER( mc6852_device::write ) { case C1_AC_C2: { /* control 2 */ - if (LOG) logerror("MC6852 '%s' Control 2 %02x\n", tag(), data); + LOG("MC6852 Control 2 %02x\n", data); m_cr[1] = data; int data_bit_count = 0; @@ -220,13 +215,13 @@ WRITE8_MEMBER( mc6852_device::write ) case C1_AC_C3: /* control 3 */ - if (LOG) logerror("MC6852 '%s' Control 3 %02x\n", tag(), data); + LOG("MC6852 Control 3 %02x\n", data); m_cr[2] = data; break; case C1_AC_SYNC: /* sync code */ - if (LOG) logerror("MC6852 '%s' Sync Code %02x\n", tag(), data); + LOG("MC6852 Sync Code %02x\n", data); m_scr = data; break; @@ -234,7 +229,7 @@ WRITE8_MEMBER( mc6852_device::write ) /* transmit data FIFO */ if (m_tx_fifo.size() < 3) { - if (LOG) logerror("MC6852 '%s' Transmit FIFO %02x\n", tag(), data); + LOG("MC6852 Transmit FIFO %02x\n", data); m_tx_fifo.push(data); } break; @@ -242,7 +237,7 @@ WRITE8_MEMBER( mc6852_device::write ) } else { - if (LOG) logerror("MC6852 '%s' Control 1 %02x\n", tag(), data); + LOG("MC6852 Control 1 %02x\n", data); /* receiver reset */ if (data & C1_RX_RS) @@ -253,7 +248,7 @@ WRITE8_MEMBER( mc6852_device::write ) Register is set to ones. */ - if (LOG) logerror("MC6852 '%s' Receiver Reset\n", tag()); + LOG("MC6852 Receiver Reset\n"); m_status &= ~(S_RX_OVRN | S_PE | S_DCD | S_RDA); m_rsr = 0xff; @@ -271,18 +266,15 @@ WRITE8_MEMBER( mc6852_device::write ) and inhibits the TDRA status bit (in the one-sync-character and two-sync-character modes).*/ - if (LOG) logerror("MC6852 '%s' Transmitter Reset\n", tag()); + LOG("MC6852 Transmitter Reset\n"); m_status &= ~(S_TUF | S_CTS | S_TDRA); transmit_register_reset(); } - if (LOG) - { - if (data & C1_STRIP_SYNC) logerror("MC6852 '%s' Strip Synchronization Characters\n", tag()); - if (data & C1_CLEAR_SYNC) logerror("MC6852 '%s' Clear Synchronization\n", tag()); - } + if (data & C1_STRIP_SYNC) LOG("MC6852 Strip Synchronization Characters\n"); + if (data & C1_CLEAR_SYNC) LOG("MC6852 Clear Synchronization\n"); m_cr[0] = data; } diff --git a/src/devices/machine/mc6852.h b/src/devices/machine/mc6852.h index 86416b51b79..8f9b7da370a 100644 --- a/src/devices/machine/mc6852.h +++ b/src/devices/machine/mc6852.h @@ -21,10 +21,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_MACHINE_MC6852_H +#define MAME_MACHINE_MC6852_H -#ifndef __MC6852__ -#define __MC6852__ +#pragma once #include @@ -69,10 +69,10 @@ public: static void set_rx_clock(device_t &device, int clock) { downcast(device).m_rx_clock = clock; } static void set_tx_clock(device_t &device, int clock) { downcast(device).m_tx_clock = clock; } - template static devcb_base &set_tx_data_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_tx_data.set_callback(object); } - template static devcb_base &set_irq_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_irq.set_callback(object); } - template static devcb_base &set_sm_dtr_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_sm_dtr.set_callback(object); } - template static devcb_base &set_tuf_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_tuf.set_callback(object); } + template static devcb_base &set_tx_data_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_tx_data.set_callback(std::forward(cb)); } + template static devcb_base &set_irq_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_irq.set_callback(std::forward(cb)); } + template static devcb_base &set_sm_dtr_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_sm_dtr.set_callback(std::forward(cb)); } + template static devcb_base &set_tuf_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_tuf.set_callback(std::forward(cb)); } DECLARE_READ8_MEMBER( read ); DECLARE_WRITE8_MEMBER( write ); @@ -175,8 +175,6 @@ private: // device type definition -extern const device_type MC6852; - - +DECLARE_DEVICE_TYPE(MC6852, mc6852_device) -#endif +#endif // MAME_MACHINE_MC6852_H diff --git a/src/devices/machine/mc6854.cpp b/src/devices/machine/mc6854.cpp index 1164b35308e..c5789cd0e39 100644 --- a/src/devices/machine/mc6854.cpp +++ b/src/devices/machine/mc6854.cpp @@ -34,12 +34,13 @@ #include "emu.h" #include "mc6854.h" +//#define VERBOSE 1 +#include "logmacro.h" -/******************* parameters ******************/ +/******************* parameters ******************/ -#define VERBOSE 0 #define FLAG 0x7e @@ -47,12 +48,10 @@ #define BIT_LENGTH attotime::from_hz( 500000 ) - -/******************* utility function and macros ********************/ - +constexpr unsigned mc6854_device::MAX_FRAME_LENGTH; -#define LOG(x) do { if (VERBOSE) logerror x; } while (0) +/******************* utility function and macros ********************/ @@ -165,10 +164,10 @@ static const int word_length[4] = { 5, 6, 7, 8 }; -const device_type MC6854 = device_creator; +DEFINE_DEVICE_TYPE(MC6854, mc6854_device, "mc6854", "Motorola MC6854 ADLC") mc6854_device::mc6854_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MC6854, "MC6854 ADLC", tag, owner, clock, "mc6854", __FILE__), + : device_t(mconfig, MC6854, tag, owner, clock), m_out_irq_cb(*this), m_out_txd_cb(*this), m_out_rts_cb(*this), @@ -191,7 +190,7 @@ mc6854_device::mc6854_device(const machine_config &mconfig, const char *tag, dev m_flen(0), m_fpos(0) { - for (int i = 0; i < MC6854_FIFO_SIZE; i++) + for (int i = 0; i < FIFO_SIZE; i++) { m_tfifo[i] = 0; m_rfifo[i] = 0; @@ -244,7 +243,7 @@ void mc6854_device::device_start() void mc6854_device::device_reset() { - LOG (( "mc6854 reset\n" )); + LOG( "mc6854 reset\n" ); m_cr1 = 0xc0; /* reset condition */ m_cr2 = 0; m_cr3 = 0; @@ -309,7 +308,7 @@ void mc6854_device::send_bits( uint32_t data, int len, int zi ) -/* CPU push -> tfifo[0] -> ... -> tfifo[MC6854_FIFO_SIZE-1] -> pop */ +/* CPU push -> tfifo[0] -> ... -> tfifo[FIFO_SIZE-1] -> pop */ void mc6854_device::tfifo_push( uint8_t data ) { int i; @@ -318,7 +317,7 @@ void mc6854_device::tfifo_push( uint8_t data ) return; /* push towards the rightmost free entry */ - for ( i = MC6854_FIFO_SIZE - 1; i >= 0; i-- ) + for ( i = FIFO_SIZE - 1; i >= 0; i-- ) { if ( ! ( m_tfifo[ i ] & 0x100 ) ) break; @@ -332,7 +331,7 @@ void mc6854_device::tfifo_push( uint8_t data ) /* start frame, if needed */ if ( ! m_tstate ) { - LOG(( "%f mc6854_tfifo_push: start frame\n", machine().time().as_double() )); + LOG( "%f mc6854_tfifo_push: start frame\n", machine().time().as_double() ); m_tstate = 2; send_bits( FLAG, 8, 0 ); } @@ -345,7 +344,7 @@ void mc6854_device::tfifo_terminate( ) { /* mark most recently pushed byte as the last one of the frame */ int i; - for ( i = 0; i < MC6854_FIFO_SIZE; i++ ) + for ( i = 0; i < FIFO_SIZE; i++ ) { if ( m_tfifo[ i ] & 0x100 ) { @@ -360,13 +359,13 @@ void mc6854_device::tfifo_terminate( ) /* call-back to refill the bit-stream from the FIFO */ TIMER_CALLBACK_MEMBER(mc6854_device::tfifo_cb) { - int i, data = m_tfifo[ MC6854_FIFO_SIZE - 1 ]; + int i, data = m_tfifo[ FIFO_SIZE - 1 ]; if ( ! m_tstate ) return; /* shift FIFO to the right */ - for ( i = MC6854_FIFO_SIZE - 1; i > 0; i-- ) + for ( i = FIFO_SIZE - 1; i > 0; i-- ) m_tfifo[ i ] = m_tfifo[ i - 1 ]; m_tfifo[ 0 ] = 0; @@ -381,7 +380,7 @@ TIMER_CALLBACK_MEMBER(mc6854_device::tfifo_cb) case 2: /* 8-bit address field */ if ( ( data & 1 ) || ( ! AEX ) ) m_tstate = 3; - LOG(( "%f mc6854_tfifo_cb: address field $%02X\n", machine().time().as_double(), data & 0xff )); + LOG( "%f mc6854_tfifo_cb: address field $%02X\n", machine().time().as_double(), data & 0xff ); break; case 3: /* 8-bit control field */ @@ -391,7 +390,7 @@ TIMER_CALLBACK_MEMBER(mc6854_device::tfifo_cb) m_tstate = 5; else m_tstate = 6; - LOG(( "%f mc6854_tfifo_cb: control field $%02X\n", machine().time().as_double(), data & 0xff )); + LOG( "%f mc6854_tfifo_cb: control field $%02X\n", machine().time().as_double(), data & 0xff ); break; case 4: /* 8-bit extended control field (optional) */ @@ -399,22 +398,22 @@ TIMER_CALLBACK_MEMBER(mc6854_device::tfifo_cb) m_tstate = 5; else m_tstate = 6; - LOG(( "%f mc6854_tfifo_cb: control field $%02X\n", machine().time().as_double(), data & 0xff )); + LOG( "%f mc6854_tfifo_cb: control field $%02X\n", machine().time().as_double(), data & 0xff ); break; case 5: /* 8-bit logical control (optional) */ if ( ! ( data & 0x80 ) ) m_tstate = 6; - LOG(( "%f mc6854_tfifo_cb: logical control field $%02X\n", machine().time().as_double(), data & 0xff )); + LOG( "%f mc6854_tfifo_cb: logical control field $%02X\n", machine().time().as_double(), data & 0xff ); break; case 6: /* variable-length data */ blen = TWL; - LOG(( "%f mc6854_tfifo_cb: data field $%02X, %i bits\n", machine().time().as_double(), data & 0xff, blen )); + LOG( "%f mc6854_tfifo_cb: data field $%02X, %i bits\n", machine().time().as_double(), data & 0xff, blen ); break; default: - LOG(( "%f mc6854_tfifo_cb: state=%i\n", machine().time().as_double(), m_tstate)); + LOG( "%f mc6854_tfifo_cb: state=%i\n", machine().time().as_double(), m_tstate); } if ( m_flen < MAX_FRAME_LENGTH ) @@ -439,14 +438,14 @@ TIMER_CALLBACK_MEMBER(mc6854_device::tfifo_cb) { int len = m_flen; - LOG(( "%f mc6854_tfifo_cb: end frame\n", machine().time().as_double() )); + LOG( "%f mc6854_tfifo_cb: end frame\n", machine().time().as_double() ); send_bits( 0xdeadbeef, 16, 1 ); /* send check-sum: TODO */ send_bits( FLAG, 8, 0 ); /* send closing flag */ - if ( m_tfifo[ MC6854_FIFO_SIZE - 1 ] & 0x100 ) + if ( m_tfifo[ FIFO_SIZE - 1 ] & 0x100 ) { /* re-open frame asap */ - LOG(( "%f mc6854_tfifo_cb: start frame\n", machine().time().as_double() )); + LOG( "%f mc6854_tfifo_cb: start frame\n", machine().time().as_double() ); if ( TWOINTER ) send_bits( FLAG, 8, 0 ); } @@ -490,7 +489,7 @@ void mc6854_device::rfifo_push( uint8_t d ) m_rstate = 3; else m_rstate = 2; - LOG(( "%f mc6854_rfifo_push: address field $%02X\n", machine().time().as_double(), data )); + LOG( "%f mc6854_rfifo_push: address field $%02X\n", machine().time().as_double(), data ); data |= 0x400; /* address marker */ break; @@ -501,7 +500,7 @@ void mc6854_device::rfifo_push( uint8_t d ) m_rstate = 5; else m_rstate = 6; - LOG(( "%f mc6854_rfifo_push: control field $%02X\n", machine().time().as_double(), data )); + LOG( "%f mc6854_rfifo_push: control field $%02X\n", machine().time().as_double(), data ); break; case 4: /* 8-bit extended control field (optional) */ @@ -509,33 +508,33 @@ void mc6854_device::rfifo_push( uint8_t d ) m_rstate = 5; else m_rstate = 6; - LOG(( "%f mc6854_rfifo_push: control field $%02X\n", machine().time().as_double(), data )); + LOG( "%f mc6854_rfifo_push: control field $%02X\n", machine().time().as_double(), data ); break; case 5: /* 8-bit logical control (optional) */ if ( ! ( data & 0x80 ) ) m_rstate = 6; - LOG(( "%f mc6854_rfifo_push: logical control field $%02X\n", machine().time().as_double(), data )); + LOG( "%f mc6854_rfifo_push: logical control field $%02X\n", machine().time().as_double(), data ); break; case 6: /* variable-length data */ blen = RWL; data >>= 8 - blen; - LOG(( "%f mc6854_rfifo_push: data field $%02X, %i bits\n", machine().time().as_double(), data, blen )); + LOG( "%f mc6854_rfifo_push: data field $%02X, %i bits\n", machine().time().as_double(), data, blen ); break; } /* no further FIFO fill until FV is cleared! */ if ( m_sr2 & FV ) { - LOG(( "%f mc6854_rfifo_push: field not pushed\n", machine().time().as_double() )); + LOG( "%f mc6854_rfifo_push: field not pushed\n", machine().time().as_double() ); return; } data |= 0x100; /* entry full marker */ /* push towards the rightmost free entry */ - for ( i = MC6854_FIFO_SIZE - 1; i >= 0; i-- ) + for ( i = FIFO_SIZE - 1; i >= 0; i-- ) { if ( ! ( m_rfifo[ i ] & 0x100 ) ) break; @@ -560,7 +559,7 @@ void mc6854_device::rfifo_terminate( ) { /* mark most recently pushed byte as the last one of the frame */ int i; - for ( i = 0; i < MC6854_FIFO_SIZE; i++ ) + for ( i = 0; i < FIFO_SIZE; i++ ) { if ( m_rfifo[ i ] & 0x100 ) { @@ -579,14 +578,14 @@ void mc6854_device::rfifo_terminate( ) /* CPU pops the FIFO */ uint8_t mc6854_device::rfifo_pop( ) { - int i, data = m_rfifo[ MC6854_FIFO_SIZE - 1 ]; + int i, data = m_rfifo[ FIFO_SIZE - 1 ]; /* shift FIFO to the right */ - for ( i = MC6854_FIFO_SIZE - 1; i > 0; i -- ) + for ( i = FIFO_SIZE - 1; i > 0; i -- ) m_rfifo[ i ] = m_rfifo[ i - 1 ]; m_rfifo[ 0 ] = 0; - if ( m_rfifo[ MC6854_FIFO_SIZE - 1 ] & 0x200 ) + if ( m_rfifo[ FIFO_SIZE - 1 ] & 0x200 ) { /* last byte in frame */ m_sr2 |= FV; /* TODO: check CRC & set ERR instead of FV if error*/ @@ -625,7 +624,7 @@ WRITE_LINE_MEMBER( mc6854_device::set_rx ) { /* only in-frame abort */ m_sr2 |= RABT; - LOG(( "%f mc6854_receive_bit: abort\n", machine().time().as_double() )); + LOG( "%f mc6854_receive_bit: abort\n", machine().time().as_double() ); } } else @@ -655,7 +654,7 @@ WRITE_LINE_MEMBER( mc6854_device::set_rx ) if ( m_rsize >= fieldlen + 24 ) /* last field */ rfifo_push( m_rreg ); rfifo_terminate( ); - LOG(( "%f mc6854_receive_bit: end of frame\n", machine().time().as_double() )); + LOG( "%f mc6854_receive_bit: end of frame\n", machine().time().as_double() ); } m_rones = 0; m_rstate = 1; @@ -751,13 +750,13 @@ void mc6854_device::update_sr2( ) { /* update RDA */ m_sr2 |= RDA2; - if ( ! (m_rfifo[ MC6854_FIFO_SIZE - 1 ] & 0x100) ) + if ( ! (m_rfifo[ FIFO_SIZE - 1 ] & 0x100) ) m_sr2 &= ~RDA2; - else if ( TWOBYTES && ! (m_tfifo[ MC6854_FIFO_SIZE - 2 ] & 0x100) ) + else if ( TWOBYTES && ! (m_tfifo[ FIFO_SIZE - 2 ] & 0x100) ) m_sr2 &= ~RDA2; /* update AP */ - if ( m_rfifo[ MC6854_FIFO_SIZE - 1 ] & 0x400 ) + if ( m_rfifo[ FIFO_SIZE - 1 ] & 0x400 ) m_sr2 |= AP; else m_sr2 &= ~AP; @@ -816,30 +815,30 @@ READ8_MEMBER( mc6854_device::read ) { case 0: /* status register 1 */ update_sr1( ); - LOG(( "%f %s mc6854_r: get SR1=$%02X (rda=%i,s2rq=%i,fd=%i,cts=%i,tu=%i,tdra=%i,irq=%i)\n", + LOG( "%f %s mc6854_r: get SR1=$%02X (rda=%i,s2rq=%i,fd=%i,cts=%i,tu=%i,tdra=%i,irq=%i)\n", space.machine().time().as_double(), machine().describe_context(), m_sr1, ( m_sr1 & RDA) ? 1 : 0, ( m_sr1 & S2RQ) ? 1 : 0, ( m_sr1 & FD ) ? 1 : 0, ( m_sr1 & CTS ) ? 1 : 0, ( m_sr1 & TU ) ? 1 : 0, ( m_sr1 & TDRA) ? 1 : 0, - ( m_sr1 & IRQ) ? 1 : 0 )); + ( m_sr1 & IRQ) ? 1 : 0 ); return m_sr1; case 1: /* status register 2 */ update_sr2( ); - LOG(( "%f %s mc6854_r: get SR2=$%02X (ap=%i,fv=%i,ridle=%i,rabt=%i,err=%i,dcd=%i,ovrn=%i,rda2=%i)\n", + LOG( "%f %s mc6854_r: get SR2=$%02X (ap=%i,fv=%i,ridle=%i,rabt=%i,err=%i,dcd=%i,ovrn=%i,rda2=%i)\n", space.machine().time().as_double(), machine().describe_context(), m_sr2, ( m_sr2 & AP ) ? 1 : 0, ( m_sr2 & FV ) ? 1 : 0, ( m_sr2 & RIDLE) ? 1 : 0, ( m_sr2 & RABT) ? 1 : 0, ( m_sr2 & ERR ) ? 1 : 0, ( m_sr2 & DCD ) ? 1 : 0, - ( m_sr2 & OVRN ) ? 1 : 0, ( m_sr2 & RDA2) ? 1 : 0 )); + ( m_sr2 & OVRN ) ? 1 : 0, ( m_sr2 & RDA2) ? 1 : 0 ); return m_sr2; case 2: /* receiver data register */ case 3: { uint8_t data = rfifo_pop( ); - LOG(( "%f %s mc6854_r: get data $%02X\n", - space.machine().time().as_double(), machine().describe_context(), data )); + LOG( "%f %s mc6854_r: get data $%02X\n", + space.machine().time().as_double(), machine().describe_context(), data ); return data; } @@ -857,13 +856,12 @@ WRITE8_MEMBER( mc6854_device::write ) { case 0: /* control register 1 */ m_cr1 = data; - LOG(( "%f %s mc6854_w: set CR1=$%02X (ac=%i,irq=%c%c,%sreset=%c%c)\n", + LOG( "%f %s mc6854_w: set CR1=$%02X (ac=%i,irq=%c%c,%sreset=%c%c)\n", space.machine().time().as_double(), machine().describe_context(), m_cr1, AC ? 1 : 0, RIE ? 'r' : '-', TIE ? 't' : '-', DISCONTINUE ? "discontinue," : "", - RRESET ? 'r' : '-', TRESET ? 't' : '-' - )); + RRESET ? 'r' : '-', TRESET ? 't' : '-' ); if ( m_cr1 & 0xc ) logerror( "%s mc6854 DMA not handled (CR1=$%02X)\n", machine().describe_context(), m_cr1 ); @@ -894,12 +892,11 @@ WRITE8_MEMBER( mc6854_device::write ) { /* control register 3 */ m_cr3 = data; - LOG(( "%f %s mc6854_w: set CR3=$%02X (lcf=%i,aex=%i,idl=%i,fdse=%i,loop=%i,tst=%i,dtr=%i)\n", + LOG( "%f %s mc6854_w: set CR3=$%02X (lcf=%i,aex=%i,idl=%i,fdse=%i,loop=%i,tst=%i,dtr=%i)\n", space.machine().time().as_double(), machine().describe_context(), m_cr3, LCF ? (CEX ? 16 : 8) : 0, AEX ? 1 : 0, IDL0 ? 0 : 1, FDSE ? 1 : 0, LOOP ? 1 : 0, - TST ? 1 : 0, DTR ? 1 : 0 - )); + TST ? 1 : 0, DTR ? 1 : 0 ); if ( LOOP ) logerror( "%s mc6854 loop mode not handled (CR3=$%02X)\n", machine().describe_context(), m_cr3 ); if ( TST ) @@ -912,12 +909,12 @@ WRITE8_MEMBER( mc6854_device::write ) { /* control register 2 */ m_cr2 = data; - LOG(( "%f %s mc6854_w: set CR2=$%02X (pse=%i,bytes=%i,fmidle=%i,%s,tlast=%i,clr=%c%c,rts=%i)\n", + LOG( "%f %s mc6854_w: set CR2=$%02X (pse=%i,bytes=%i,fmidle=%i,%s,tlast=%i,clr=%c%c,rts=%i)\n", space.machine().time().as_double(), machine().describe_context(), m_cr2, PSE ? 1 : 0, TWOBYTES ? 2 : 1, FMIDLE ? 1 : 0, FCTDRA ? "fc" : "tdra", TLAST ? 1 : 0, data & 0x20 ? 'r' : '-', data & 0x40 ? 't' : '-', - RTS ? 1 : 0 )); + RTS ? 1 : 0 ); if ( PSE ) logerror( "%s mc6854 status prioritization not handled (CR2=$%02X)\n", machine().describe_context(), m_cr2 ); if ( TLAST ) @@ -943,7 +940,7 @@ WRITE8_MEMBER( mc6854_device::write ) break; case 2: /* transmitter data: continue data */ - LOG(( "%f %smc6854_w: push data=$%02X\n", space.machine().time().as_double(), machine().describe_context(), data )); + LOG( "%f %smc6854_w: push data=$%02X\n", space.machine().time().as_double(), machine().describe_context(), data ); tfifo_push( data ); break; @@ -952,11 +949,11 @@ WRITE8_MEMBER( mc6854_device::write ) { /* control register 4 */ m_cr4 = data; - LOG(( "%f %s mc6854_w: set CR4=$%02X (interframe=%i,tlen=%i,rlen=%i,%s%s)\n", space.machine().time().as_double(), machine().describe_context(), m_cr4, + LOG( "%f %s mc6854_w: set CR4=$%02X (interframe=%i,tlen=%i,rlen=%i,%s%s)\n", space.machine().time().as_double(), machine().describe_context(), m_cr4, TWOINTER ? 2 : 1, TWL, RWL, ABT ? ( ABTEX ? "abort-ext," : "abort,") : "", - NRZ ? "nrz" : "nrzi" )); + NRZ ? "nrz" : "nrzi" ); if ( ABT ) { m_tstate = 0; @@ -967,7 +964,7 @@ WRITE8_MEMBER( mc6854_device::write ) else { /* transmitter data: last data */ - LOG(( "%f %s mc6854_w: push last-data=$%02X\n", space.machine().time().as_double(), machine().describe_context(), data )); + LOG( "%f %s mc6854_w: push last-data=$%02X\n", space.machine().time().as_double(), machine().describe_context(), data ); tfifo_push( data ); tfifo_terminate( ); } diff --git a/src/devices/machine/mc6854.h b/src/devices/machine/mc6854.h index 9e3e9d64f85..93caf9a5a0a 100644 --- a/src/devices/machine/mc6854.h +++ b/src/devices/machine/mc6854.h @@ -8,17 +8,12 @@ **********************************************************************/ -#ifndef MC6854_H -#define MC6854_H +#ifndef MAME_MACHINE_MC6854_H +#define MAME_MACHINE_MC6854_H +#pragma once -#define MAX_FRAME_LENGTH 65536 -/* arbitrary value, you may need to enlarge it if you get truncated frames */ -#define MC6854_FIFO_SIZE 3 -/* hardcoded size of the 6854 FIFO (this is a hardware limit) */ - -typedef device_delegate mc6854_out_frame_delegate; #define MC6854_OUT_FRAME_CB(name) void name(uint8_t * data, int length) @@ -29,7 +24,7 @@ typedef device_delegate mc6854_out_frame_deleg devcb = &mc6854_device::set_out_txd_callback(*device, DEVCB_##_devcb); #define MCFG_MC6854_OUT_FRAME_CB(_class, _method) \ - mc6854_device::set_out_frame_callback(*device, mc6854_out_frame_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); + mc6854_device::set_out_frame_callback(*device, mc6854_device::out_frame_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); #define MCFG_MC6854_OUT_RTS_CB(_devcb) \ devcb = &mc6854_device::set_out_rts_callback(*device, DEVCB_##_devcb); @@ -41,14 +36,17 @@ typedef device_delegate mc6854_out_frame_deleg class mc6854_device : public device_t { public: + static constexpr unsigned MAX_FRAME_LENGTH = 65536; // arbitrary value, you may need to enlarge it if you get truncated frames + + typedef device_delegate out_frame_delegate; + mc6854_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~mc6854_device() {} - template static devcb_base &set_out_irq_callback(device_t &device, _Object object) { return downcast(device).m_out_irq_cb.set_callback(object); } - template static devcb_base &set_out_txd_callback(device_t &device, _Object object) { return downcast(device).m_out_txd_cb.set_callback(object); } - static void set_out_frame_callback(device_t &device, mc6854_out_frame_delegate callback) { downcast(device).m_out_frame_cb = callback; } - template static devcb_base &set_out_rts_callback(device_t &device, _Object object) { return downcast(device).m_out_rts_cb.set_callback(object); } - template static devcb_base &set_out_dtr_callback(device_t &device, _Object object) { return downcast(device).m_out_dtr_cb.set_callback(object); } + template static devcb_base &set_out_irq_callback(device_t &device, Object &&cb) { return downcast(device).m_out_irq_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_txd_callback(device_t &device, Object &&cb) { return downcast(device).m_out_txd_cb.set_callback(std::forward(cb)); } + static void set_out_frame_callback(device_t &device, out_frame_delegate &&callback) { downcast(device).m_out_frame_cb = std::move(callback); } + template static devcb_base &set_out_rts_callback(device_t &device, Object &&cb) { return downcast(device).m_out_rts_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_dtr_callback(device_t &device, Object &&cb) { return downcast(device).m_out_dtr_cb.set_callback(std::forward(cb)); } /* interface to CPU via address/data bus*/ DECLARE_READ8_MEMBER( read ); @@ -74,6 +72,8 @@ protected: virtual void device_reset() override; private: + static constexpr unsigned FIFO_SIZE = 3; // hardcoded size of the 6854 FIFO (this is a hardware limit) + // internal state devcb_write_line m_out_irq_cb; /* interrupt request */ @@ -81,7 +81,7 @@ private: devcb_write_line m_out_txd_cb; /* transmit bit */ /* high-level, frame-based interface */ - mc6854_out_frame_delegate m_out_frame_cb; + out_frame_delegate m_out_frame_cb; /* control lines */ devcb_write_line m_out_rts_cb; /* 1 = transmitting, 0 = idle */ @@ -95,7 +95,7 @@ private: /* transmit state */ uint8_t m_tstate; - uint16_t m_tfifo[MC6854_FIFO_SIZE]; /* X x 8-bit FIFO + full & last marker bits */ + uint16_t m_tfifo[FIFO_SIZE]; /* X x 8-bit FIFO + full & last marker bits */ uint8_t m_tones; /* counter for zero-insertion */ emu_timer *m_ttimer; /* when to ask for more data */ @@ -104,7 +104,7 @@ private: uint32_t m_rreg; /* shift register */ uint8_t m_rones; /* count '1 bits */ uint8_t m_rsize; /* bits in the shift register */ - uint16_t m_rfifo[MC6854_FIFO_SIZE]; /* X x 8-bit FIFO + full & addr marker bits */ + uint16_t m_rfifo[FIFO_SIZE]; /* X x 8-bit FIFO + full & addr marker bits */ /* frame-based interface*/ uint8_t m_frame[MAX_FRAME_LENGTH]; @@ -135,7 +135,7 @@ private: void update_sr1( ); }; -extern const device_type MC6854; +DECLARE_DEVICE_TYPE(MC6854, mc6854_device) /* we provide two interfaces: @@ -158,4 +158,4 @@ extern const device_type MC6854; full frames are accepted. */ -#endif +#endif // MAME_MACHINE_MC6854_H diff --git a/src/devices/machine/mc68681.cpp b/src/devices/machine/mc68681.cpp index cc3c88d4103..482cde20a63 100644 --- a/src/devices/machine/mc68681.cpp +++ b/src/devices/machine/mc68681.cpp @@ -14,8 +14,9 @@ #include "emu.h" #include "mc68681.h" -#define VERBOSE 0 -#define LOG(x) do { if (VERBOSE) logerror x; } while (0) +//#define VERBOSE 1 +#include "logmacro.h" + static const char *const duart68681_reg_read_names[0x10] = { @@ -56,9 +57,9 @@ static const int baud_rate_ACR_1[] = { 75, 110, 134, 150, 300, 600, 1200, 2000, #define CHAND_TAG "chd" // device type definition -const device_type MC68681 = device_creator; -const device_type SC28C94 = device_creator; -const device_type MC68681_CHANNEL = device_creator; +DEFINE_DEVICE_TYPE(MC68681, mc68681_device, "mc68681", "MC68681 DUART") +DEFINE_DEVICE_TYPE(SC28C94, sc28c94_device, "sc28c94", "SC28C94 QUART") +DEFINE_DEVICE_TYPE(MC68681_CHANNEL, mc68681_channel, "mc68681_channel", "MC68681 DUART channel") MACHINE_CONFIG_FRAGMENT( duart68681 ) MCFG_DEVICE_ADD(CHANA_TAG, MC68681_CHANNEL, 0) @@ -76,8 +77,8 @@ MACHINE_CONFIG_END // LIVE DEVICE //************************************************************************** -mc68681_base_device::mc68681_base_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), +mc68681_base_device::mc68681_base_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock), m_chanA(*this, CHANA_TAG), m_chanB(*this, CHANB_TAG), m_chanC(*this, CHANC_TAG), @@ -100,12 +101,12 @@ mc68681_base_device::mc68681_base_device(const machine_config &mconfig, device_t } mc68681_device::mc68681_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mc68681_base_device(mconfig, MC68681, "MC68681 DUART", tag, owner, clock, "mc68681", __FILE__) + : mc68681_base_device(mconfig, MC68681, tag, owner, clock) { } sc28c94_device::sc28c94_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mc68681_base_device(mconfig, SC28C94, "SC28C94 QUART", tag, owner, clock, "sc28c94", __FILE__) + : mc68681_base_device(mconfig, SC28C94, tag, owner, clock) { } @@ -198,12 +199,12 @@ void mc68681_base_device::update_interrupts() */ if ( (ISR & IMR) != 0 ) { - LOG(( "68681: Interrupt line active (IMR & ISR = %02X)\n", (ISR & IMR) )); + LOG( "68681: Interrupt line active (IMR & ISR = %02X)\n", (ISR & IMR) ); write_irq(ASSERT_LINE); } else { - LOG(( "68681: Interrupt line not active (IMR & ISR = %02X)\n", ISR & IMR)); + LOG( "68681: Interrupt line not active (IMR & ISR = %02X)\n", ISR & IMR); write_irq(CLEAR_LINE); m_read_vector = false; // clear IACK too } @@ -387,7 +388,7 @@ READ8_MEMBER( mc68681_base_device::read ) offset &= 0xf; - LOG(( "Reading 68681 (%s) reg %x (%s)\n", tag(), offset, duart68681_reg_read_names[offset] )); + LOG( "Reading 68681 (%s) reg %x (%s)\n", tag(), offset, duart68681_reg_read_names[offset] ); switch (offset) { @@ -477,10 +478,10 @@ READ8_MEMBER( mc68681_base_device::read ) break; default: - LOG(( "Reading unhandled 68681 reg %x\n", offset )); + LOG( "Reading unhandled 68681 reg %x\n", offset ); break; } - LOG(("returned %02x\n", r)); + LOG("returned %02x\n", r); return r; } @@ -515,7 +516,7 @@ WRITE8_MEMBER( sc28c94_device::write ) WRITE8_MEMBER( mc68681_base_device::write ) { offset &= 0x0f; - LOG(( "Writing 68681 (%s) reg %x (%s) with %04x\n", tag(), offset, duart68681_reg_write_names[offset], data )); + LOG( "Writing 68681 (%s) reg %x (%s) with %04x\n", tag(), offset, duart68681_reg_write_names[offset], data ); switch(offset) { case 0x00: /* MRA */ @@ -746,7 +747,7 @@ int mc68681_base_device::calc_baud(int ch, uint8_t data) if ((baud_rate == 0) && ((data & 0xf) != 0xd)) { - LOG(( "Unsupported transmitter clock: channel %d, clock select = %02x\n", ch, data )); + LOG( "Unsupported transmitter clock: channel %d, clock select = %02x\n", ch, data ); } //printf("%s ch %d setting baud to %d\n", tag(), ch, baud_rate); @@ -766,7 +767,7 @@ void mc68681_base_device::set_ISR_bits(int mask) // DUART channel class stuff mc68681_channel::mc68681_channel(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MC68681_CHANNEL, "MC68681 DUART CHANNEL", tag, owner, clock, "mc68681_channel", __FILE__), + : device_t(mconfig, MC68681_CHANNEL, tag, owner, clock), device_serial_interface(mconfig, *this), MR1(0), MR2(0), @@ -859,7 +860,7 @@ void mc68681_channel::tra_complete() { if (rx_fifo_num >= MC68681_RX_FIFO_SIZE) { - LOG(( "68681: FIFO overflow\n" )); + LOG( "68681: FIFO overflow\n" ); SR |= STATUS_OVERRUN_ERROR; } else @@ -1013,7 +1014,7 @@ uint8_t mc68681_channel::read_rx_fifo() if ( rx_fifo_num == 0 ) { - LOG(( "68681 channel: rx fifo underflow\n" )); + LOG( "68681 channel: rx fifo underflow\n" ); update_interrupts(); return 0; } @@ -1211,7 +1212,7 @@ void mc68681_channel::write_CR(uint8_t data) break; /* TODO: case 6 and case 7 are start break and stop break respectively, which start or stop holding the TxDA or TxDB line low (space) after whatever data is in the buffer finishes transmitting (following the stop bit?), or after two bit-times if no data is being transmitted */ default: - LOG(( "68681: Unhandled command (%x) in CR%d\n", (data >> 4) & 0x07, m_ch )); + LOG( "68681: Unhandled command (%x) in CR%d\n", (data >> 4) & 0x07, m_ch ); break; } diff --git a/src/devices/machine/mc68681.h b/src/devices/machine/mc68681.h index 208a6b9f032..90bc1a4a2d3 100644 --- a/src/devices/machine/mc68681.h +++ b/src/devices/machine/mc68681.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Mariusz Wojcieszek, R. Belmont -#ifndef _MC68681_H -#define _MC68681_H +#ifndef MAME_MACHINE_MC68681_H +#define MAME_MACHINE_MC68681_H + +#pragma once #define MCFG_MC68681_ADD(_tag, _clock) \ @@ -109,8 +111,6 @@ class mc68681_base_device : public device_t friend class mc68681_channel; public: - mc68681_base_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - required_device m_chanA; required_device m_chanB; optional_device m_chanC; @@ -127,16 +127,11 @@ public: DECLARE_WRITE_LINE_MEMBER( rx_a_w ) { m_chanA->device_serial_interface::rx_w((uint8_t)state); } DECLARE_WRITE_LINE_MEMBER( rx_b_w ) { m_chanB->device_serial_interface::rx_w((uint8_t)state); } - template static devcb_base &set_irq_cb(device_t &device, _Object object) { return downcast(device).write_irq.set_callback(object); } - template static devcb_base &set_a_tx_cb(device_t &device, _Object object) { return downcast(device).write_a_tx.set_callback(object); } - template static devcb_base &set_b_tx_cb(device_t &device, _Object object) { return downcast(device).write_b_tx.set_callback(object); } - template static devcb_base &set_inport_cb(device_t &device, _Object object) { return downcast(device).read_inport.set_callback(object); } - template static devcb_base &set_outport_cb(device_t &device, _Object object) { return downcast(device).write_outport.set_callback(object); } - - devcb_write_line write_irq, write_a_tx, write_b_tx, write_c_tx, write_d_tx; - devcb_read8 read_inport; - devcb_write8 write_outport; - int32_t ip3clk, ip4clk, ip5clk, ip6clk; + template static devcb_base &set_irq_cb(device_t &device, Object &&cb) { return downcast(device).write_irq.set_callback(std::forward(cb)); } + template static devcb_base &set_a_tx_cb(device_t &device, Object &&cb) { return downcast(device).write_a_tx.set_callback(std::forward(cb)); } + template static devcb_base &set_b_tx_cb(device_t &device, Object &&cb) { return downcast(device).write_b_tx.set_callback(std::forward(cb)); } + template static devcb_base &set_inport_cb(device_t &device, Object &&cb) { return downcast(device).read_inport.set_callback(std::forward(cb)); } + template static devcb_base &set_outport_cb(device_t &device, Object &&cb) { return downcast(device).write_outport.set_callback(std::forward(cb)); } // new-style push handlers for input port bits DECLARE_WRITE_LINE_MEMBER( ip0_w ); @@ -147,11 +142,18 @@ public: DECLARE_WRITE_LINE_MEMBER( ip5_w ); protected: + mc68681_base_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; virtual machine_config_constructor device_mconfig_additions() const override; + devcb_write_line write_irq, write_a_tx, write_b_tx, write_c_tx, write_d_tx; + devcb_read8 read_inport; + devcb_write8 write_outport; + int32_t ip3clk, ip4clk, ip5clk, ip6clk; + private: TIMER_CALLBACK_MEMBER( duart_timer_callback ); @@ -214,8 +216,8 @@ class sc28c94_device : public mc68681_base_device public: sc28c94_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_c_tx_cb(device_t &device, _Object object) { return downcast(device).write_c_tx.set_callback(object); } - template static devcb_base &set_d_tx_cb(device_t &device, _Object object) { return downcast(device).write_d_tx.set_callback(object); } + template static devcb_base &set_c_tx_cb(device_t &device, Object &&cb) { return downcast(device).write_c_tx.set_callback(std::forward(cb)); } + template static devcb_base &set_d_tx_cb(device_t &device, Object &&cb) { return downcast(device).write_d_tx.set_callback(std::forward(cb)); } DECLARE_WRITE_LINE_MEMBER( rx_c_w ) { m_chanC->device_serial_interface::rx_w((uint8_t)state); } DECLARE_WRITE_LINE_MEMBER( rx_d_w ) { m_chanD->device_serial_interface::rx_w((uint8_t)state); } @@ -229,8 +231,8 @@ protected: private: }; -extern const device_type MC68681; -extern const device_type SC28C94; -extern const device_type MC68681_CHANNEL; +DECLARE_DEVICE_TYPE(MC68681, mc68681_device) +DECLARE_DEVICE_TYPE(SC28C94, sc28c94_device) +DECLARE_DEVICE_TYPE(MC68681_CHANNEL, mc68681_channel) -#endif //_N68681_H +#endif // MAME_MACHINE_MC68681_H diff --git a/src/devices/machine/mc68901.cpp b/src/devices/machine/mc68901.cpp index 5239cceb660..d790b4c3020 100644 --- a/src/devices/machine/mc68901.cpp +++ b/src/devices/machine/mc68901.cpp @@ -47,18 +47,19 @@ #include "mc68901.h" #include "cpu/m68000/m68000.h" +//#define VERBOSE 1 +#include "logmacro.h" + + // device type definition -const device_type MC68901 = device_creator; +DEFINE_DEVICE_TYPE(MC68901, mc68901_device, "mc68901", "Motorola MC68901 MFP") //************************************************************************** // MACROS / CONSTANTS //************************************************************************** -#define LOG 0 - - #define AER_GPIP_0 0x01 #define AER_GPIP_1 0x02 @@ -294,11 +295,11 @@ inline void mc68901_device::gpio_input(int bit, int state) { if (state == BIT(m_aer, bit)) { - if (LOG) logerror("MC68901 '%s' Edge Transition Detected on GPIO%u\n", tag(), bit); + LOG("MC68901 Edge Transition Detected on GPIO%u\n", bit); if (m_ier & INT_MASK_GPIO[bit]) // AND interrupt enabled bit is set... { - if (LOG) logerror("MC68901 '%s' Interrupt Pending for GPIO%u\n", tag(), bit); + LOG("MC68901 Interrupt Pending for GPIO%u\n", bit); take_interrupt(INT_MASK_GPIO[bit]); // set interrupt pending bit } @@ -333,7 +334,7 @@ void mc68901_device::gpio_output() //------------------------------------------------- mc68901_device::mc68901_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MC68901, "MC68901 MFP", tag, owner, clock, "mc68901", __FILE__), + : device_t(mconfig, MC68901, tag, owner, clock), device_serial_interface(mconfig, *this), m_timer_clock(0), m_rx_clock(0), @@ -596,84 +597,84 @@ void mc68901_device::register_w(offs_t offset, uint8_t data) switch (offset) { case REGISTER_GPIP: - if (LOG) logerror("MC68901 '%s' General Purpose I/O : %x\n", tag(), data); + LOG("MC68901 General Purpose I/O : %x\n", data); m_gpip = data; gpio_output(); break; case REGISTER_AER: - if (LOG) logerror("MC68901 '%s' Active Edge Register : %x\n", tag(), data); + LOG("MC68901 Active Edge Register : %x\n", data); m_aer = data; break; case REGISTER_DDR: - if (LOG) logerror("MC68901 '%s' Data Direction Register : %x\n", tag(), data); + LOG("MC68901 Data Direction Register : %x\n", data); m_ddr = data; gpio_output(); break; case REGISTER_IERA: - if (LOG) logerror("MC68901 '%s' Interrupt Enable Register A : %x\n", tag(), data); + LOG("MC68901 Interrupt Enable Register A : %x\n", data); m_ier = (data << 8) | (m_ier & 0xff); m_ipr &= m_ier; check_interrupts(); break; case REGISTER_IERB: - if (LOG) logerror("MC68901 '%s' Interrupt Enable Register B : %x\n", tag(), data); + LOG("MC68901 Interrupt Enable Register B : %x\n", data); m_ier = (m_ier & 0xff00) | data; m_ipr &= m_ier; check_interrupts(); break; case REGISTER_IPRA: - if (LOG) logerror("MC68901 '%s' Interrupt Pending Register A : %x\n", tag(), data); + LOG("MC68901 Interrupt Pending Register A : %x\n", data); m_ipr &= (data << 8) | (m_ipr & 0xff); check_interrupts(); break; case REGISTER_IPRB: - if (LOG) logerror("MC68901 '%s' Interrupt Pending Register B : %x\n", tag(), data); + LOG("MC68901 Interrupt Pending Register B : %x\n", data); m_ipr &= (m_ipr & 0xff00) | data; check_interrupts(); break; case REGISTER_ISRA: - if (LOG) logerror("MC68901 '%s' Interrupt In-Service Register A : %x\n", tag(), data); + LOG("MC68901 Interrupt In-Service Register A : %x\n", data); m_isr &= (data << 8) | (m_isr & 0xff); break; case REGISTER_ISRB: - if (LOG) logerror("MC68901 '%s' Interrupt In-Service Register B : %x\n", tag(), data); + LOG("MC68901 Interrupt In-Service Register B : %x\n", data); m_isr &= (m_isr & 0xff00) | data; break; case REGISTER_IMRA: - if (LOG) logerror("MC68901 '%s' Interrupt Mask Register A : %x\n", tag(), data); + LOG("MC68901 Interrupt Mask Register A : %x\n", data); m_imr = (data << 8) | (m_imr & 0xff); m_isr &= m_imr; check_interrupts(); break; case REGISTER_IMRB: - if (LOG) logerror("MC68901 '%s' Interrupt Mask Register B : %x\n", tag(), data); + LOG("MC68901 Interrupt Mask Register B : %x\n", data); m_imr = (m_imr & 0xff00) | data; m_isr &= m_imr; check_interrupts(); break; case REGISTER_VR: - if (LOG) logerror("MC68901 '%s' Interrupt Vector : %x\n", tag(), data & 0xf0); + LOG("MC68901 Interrupt Vector : %x\n", data & 0xf0); m_vr = data & 0xf8; if (m_vr & VR_S) { - if (LOG) logerror("MC68901 '%s' Software End-Of-Interrupt Mode\n", tag()); + LOG("MC68901 Software End-Of-Interrupt Mode\n"); } else { - if (LOG) logerror("MC68901 '%s' Automatic End-Of-Interrupt Mode\n", tag()); + LOG("MC68901 Automatic End-Of-Interrupt Mode\n"); m_isr = 0; } @@ -685,7 +686,7 @@ void mc68901_device::register_w(offs_t offset, uint8_t data) switch (m_tacr & 0x0f) { case TCR_TIMER_STOPPED: - if (LOG) logerror("MC68901 '%s' Timer A Stopped\n", tag()); + LOG("MC68901 Timer A Stopped\n"); m_timer[TIMER_A]->enable(false); break; @@ -697,14 +698,14 @@ void mc68901_device::register_w(offs_t offset, uint8_t data) case TCR_TIMER_DELAY_100: case TCR_TIMER_DELAY_200: { - int divisor = PRESCALER[m_tacr & 0x07]; - if (LOG) logerror("MC68901 '%s' Timer A Delay Mode : %u Prescale\n", tag(), divisor); - m_timer[TIMER_A]->adjust(attotime::from_hz(m_timer_clock / divisor), 0, attotime::from_hz(m_timer_clock / divisor)); + int divisor = PRESCALER[m_tacr & 0x07]; + LOG("MC68901 Timer A Delay Mode : %u Prescale\n", divisor); + m_timer[TIMER_A]->adjust(attotime::from_hz(m_timer_clock / divisor), 0, attotime::from_hz(m_timer_clock / divisor)); } break; case TCR_TIMER_EVENT: - if (LOG) logerror("MC68901 '%s' Timer A Event Count Mode\n", tag()); + LOG("MC68901 Timer A Event Count Mode\n"); m_timer[TIMER_A]->enable(false); break; @@ -716,17 +717,17 @@ void mc68901_device::register_w(offs_t offset, uint8_t data) case TCR_TIMER_PULSE_100: case TCR_TIMER_PULSE_200: { - int divisor = PRESCALER[m_tacr & 0x07]; - if (LOG) logerror("MC68901 '%s' Timer A Pulse Width Mode : %u Prescale\n", tag(), divisor); - m_timer[TIMER_A]->adjust(attotime::never, 0, attotime::from_hz(m_timer_clock / divisor)); - m_timer[TIMER_A]->enable(false); + int divisor = PRESCALER[m_tacr & 0x07]; + LOG("MC68901 Timer A Pulse Width Mode : %u Prescale\n", divisor); + m_timer[TIMER_A]->adjust(attotime::never, 0, attotime::from_hz(m_timer_clock / divisor)); + m_timer[TIMER_A]->enable(false); } break; } if (m_tacr & TCR_TIMER_RESET) { - if (LOG) logerror("MC68901 '%s' Timer A Reset\n", tag()); + LOG("MC68901 Timer A Reset\n"); m_to[TIMER_A] = 0; @@ -740,7 +741,7 @@ void mc68901_device::register_w(offs_t offset, uint8_t data) switch (m_tbcr & 0x0f) { case TCR_TIMER_STOPPED: - if (LOG) logerror("MC68901 '%s' Timer B Stopped\n", tag()); + LOG("MC68901 Timer B Stopped\n"); m_timer[TIMER_B]->enable(false); break; @@ -753,13 +754,13 @@ void mc68901_device::register_w(offs_t offset, uint8_t data) case TCR_TIMER_DELAY_200: { int divisor = PRESCALER[m_tbcr & 0x07]; - if (LOG) logerror("MC68901 '%s' Timer B Delay Mode : %u Prescale\n", tag(), divisor); + LOG("MC68901 Timer B Delay Mode : %u Prescale\n", divisor); m_timer[TIMER_B]->adjust(attotime::from_hz(m_timer_clock / divisor), 0, attotime::from_hz(m_timer_clock / divisor)); } break; case TCR_TIMER_EVENT: - if (LOG) logerror("MC68901 '%s' Timer B Event Count Mode\n", tag()); + LOG("MC68901 Timer B Event Count Mode\n"); m_timer[TIMER_B]->enable(false); break; @@ -772,7 +773,7 @@ void mc68901_device::register_w(offs_t offset, uint8_t data) case TCR_TIMER_PULSE_200: { int divisor = PRESCALER[m_tbcr & 0x07]; - if (LOG) logerror("MC68901 '%s' Timer B Pulse Width Mode : %u Prescale\n", tag(), DIVISOR); + LOG("MC68901 Timer B Pulse Width Mode : %u Prescale\n", DIVISOR); m_timer[TIMER_B]->adjust(attotime::never, 0, attotime::from_hz(m_timer_clock / divisor)); m_timer[TIMER_B]->enable(false); } @@ -781,7 +782,7 @@ void mc68901_device::register_w(offs_t offset, uint8_t data) if (m_tacr & TCR_TIMER_RESET) { - if (LOG) logerror("MC68901 '%s' Timer B Reset\n", tag()); + LOG("MC68901 Timer B Reset\n"); m_to[TIMER_B] = 0; @@ -795,7 +796,7 @@ void mc68901_device::register_w(offs_t offset, uint8_t data) switch (m_tcdcr & 0x07) { case TCR_TIMER_STOPPED: - if (LOG) logerror("MC68901 '%s' Timer D Stopped\n", tag()); + LOG("MC68901 Timer D Stopped\n"); m_timer[TIMER_D]->enable(false); break; @@ -807,9 +808,9 @@ void mc68901_device::register_w(offs_t offset, uint8_t data) case TCR_TIMER_DELAY_100: case TCR_TIMER_DELAY_200: { - int divisor = PRESCALER[m_tcdcr & 0x07]; - if (LOG) logerror("MC68901 '%s' Timer D Delay Mode : %u Prescale\n", tag(), divisor); - m_timer[TIMER_D]->adjust(attotime::from_hz(m_timer_clock / divisor), 0, attotime::from_hz(m_timer_clock / divisor)); + int divisor = PRESCALER[m_tcdcr & 0x07]; + LOG("MC68901 Timer D Delay Mode : %u Prescale\n", divisor); + m_timer[TIMER_D]->adjust(attotime::from_hz(m_timer_clock / divisor), 0, attotime::from_hz(m_timer_clock / divisor)); } break; } @@ -817,7 +818,7 @@ void mc68901_device::register_w(offs_t offset, uint8_t data) switch ((m_tcdcr >> 4) & 0x07) { case TCR_TIMER_STOPPED: - if (LOG) logerror("MC68901 '%s' Timer C Stopped\n", tag()); + LOG("MC68901 Timer C Stopped\n"); m_timer[TIMER_C]->enable(false); break; @@ -829,16 +830,16 @@ void mc68901_device::register_w(offs_t offset, uint8_t data) case TCR_TIMER_DELAY_100: case TCR_TIMER_DELAY_200: { - int divisor = PRESCALER[(m_tcdcr >> 4) & 0x07]; - if (LOG) logerror("MC68901 '%s' Timer C Delay Mode : %u Prescale\n", tag(), divisor); - m_timer[TIMER_C]->adjust(attotime::from_hz(m_timer_clock / divisor), 0, attotime::from_hz(m_timer_clock / divisor)); + int divisor = PRESCALER[(m_tcdcr >> 4) & 0x07]; + LOG("MC68901 Timer C Delay Mode : %u Prescale\n", divisor); + m_timer[TIMER_C]->adjust(attotime::from_hz(m_timer_clock / divisor), 0, attotime::from_hz(m_timer_clock / divisor)); } break; } break; case REGISTER_TADR: - if (LOG) logerror("MC68901 '%s' Timer A Data Register : %x\n", tag(), data); + LOG("MC68901 Timer A Data Register : %x\n", data); m_tdr[TIMER_A] = data; @@ -849,7 +850,7 @@ void mc68901_device::register_w(offs_t offset, uint8_t data) break; case REGISTER_TBDR: - if (LOG) logerror("MC68901 '%s' Timer B Data Register : %x\n", tag(), data); + LOG("MC68901 Timer B Data Register : %x\n", data); m_tdr[TIMER_B] = data; @@ -860,7 +861,7 @@ void mc68901_device::register_w(offs_t offset, uint8_t data) break; case REGISTER_TCDR: - if (LOG) logerror("MC68901 '%s' Timer C Data Register : %x\n", tag(), data); + LOG("MC68901 Timer C Data Register : %x\n", data); m_tdr[TIMER_C] = data; @@ -871,7 +872,7 @@ void mc68901_device::register_w(offs_t offset, uint8_t data) break; case REGISTER_TDDR: - if (LOG) logerror("MC68901 '%s' Timer D Data Register : %x\n", tag(), data); + LOG("MC68901 Timer D Data Register : %x\n", data); m_tdr[TIMER_D] = data; @@ -882,7 +883,7 @@ void mc68901_device::register_w(offs_t offset, uint8_t data) break; case REGISTER_SCR: - if (LOG) logerror("MC68901 '%s' Sync Character : %x\n", tag(), data); + LOG("MC68901 Sync Character : %x\n", data); m_scr = data; break; @@ -905,25 +906,25 @@ void mc68901_device::register_w(offs_t offset, uint8_t data) { if (data & UCR_PARITY_EVEN) { - if (LOG) logerror("MC68901 '%s' Parity : Even\n", tag()); + LOG("MC68901 Parity : Even\n"); parity = PARITY_EVEN; } else { - if (LOG) logerror("MC68901 '%s' Parity : Odd\n", tag()); + LOG("MC68901 Parity : Odd\n"); parity = PARITY_ODD; } } else { - if (LOG) logerror("MC68901 '%s' Parity : Disabled\n", tag()); + LOG("MC68901 Parity : Disabled\n"); parity = PARITY_NONE; } - if (LOG) logerror("MC68901 '%s' Word Length : %u bits\n", tag(), data_bit_count); + LOG("MC68901 Word Length : %u bits\n", data_bit_count); int start_bits; @@ -935,35 +936,35 @@ void mc68901_device::register_w(offs_t offset, uint8_t data) default: start_bits = 0; stop_bits = STOP_BITS_0; - if (LOG) logerror("MC68901 '%s' Start Bits : 0, Stop Bits : 0, Format : synchronous\n", tag()); + LOG("MC68901 Start Bits : 0, Stop Bits : 0, Format : synchronous\n"); break; case UCR_START_STOP_1_1: start_bits = 1; stop_bits = STOP_BITS_1; - if (LOG) logerror("MC68901 '%s' Start Bits : 1, Stop Bits : 1, Format : asynchronous\n", tag()); + LOG("MC68901 Start Bits : 1, Stop Bits : 1, Format : asynchronous\n"); break; case UCR_START_STOP_1_15: start_bits = 1; stop_bits = STOP_BITS_1_5; - if (LOG) logerror("MC68901 '%s' Start Bits : 1, Stop Bits : 1.5, Format : asynchronous\n", tag()); + LOG("MC68901 Start Bits : 1, Stop Bits : 1.5, Format : asynchronous\n"); break; case UCR_START_STOP_1_2: start_bits = 1; stop_bits = STOP_BITS_2; - if (LOG) logerror("MC68901 '%s' Start Bits : 1, Stop Bits : 2, Format : asynchronous\n", tag()); + LOG("MC68901 Start Bits : 1, Stop Bits : 2, Format : asynchronous\n"); break; } if (data & UCR_CLOCK_DIVIDE_16) { - if (LOG) logerror("MC68901 '%s' Rx/Tx Clock Divisor : 16\n", tag()); + LOG("MC68901 Rx/Tx Clock Divisor : 16\n"); } else { - if (LOG) logerror("MC68901 '%s' Rx/Tx Clock Divisor : 1\n", tag()); + LOG("MC68901 Rx/Tx Clock Divisor : 1\n"); } set_data_frame(start_bits, data_bit_count, parity, stop_bits); @@ -975,24 +976,24 @@ void mc68901_device::register_w(offs_t offset, uint8_t data) case REGISTER_RSR: if ((data & RSR_RCV_ENABLE) == 0) { - if (LOG) logerror("MC68901 '%s' Receiver Disabled\n", tag()); + LOG("MC68901 Receiver Disabled\n"); m_rsr = 0; } else { - if (LOG) logerror("MC68901 '%s' Receiver Enabled\n", tag()); + LOG("MC68901 Receiver Enabled\n"); if (data & RSR_SYNC_STRIP_ENABLE) { - if (LOG) logerror("MC68901 '%s' Sync Strip Enabled\n", tag()); + LOG("MC68901 Sync Strip Enabled\n"); } else { - if (LOG) logerror("MC68901 '%s' Sync Strip Disabled\n", tag()); + LOG("MC68901 Sync Strip Disabled\n"); } if (data & RSR_FOUND_SEARCH) - if (LOG) logerror("MC68901 '%s' Receiver Search Mode Enabled\n", tag()); + LOG("MC68901 Receiver Search Mode Enabled\n"); m_rsr = data & 0x0b; } @@ -1003,7 +1004,7 @@ void mc68901_device::register_w(offs_t offset, uint8_t data) if ((data & TSR_XMIT_ENABLE) == 0) { - if (LOG) logerror("MC68901 '%s' Transmitter Disabled\n", tag()); + LOG("MC68901 Transmitter Disabled\n"); m_tsr &= ~TSR_UNDERRUN_ERROR; @@ -1012,40 +1013,40 @@ void mc68901_device::register_w(offs_t offset, uint8_t data) } else { - if (LOG) logerror("MC68901 '%s' Transmitter Enabled\n", tag()); + LOG("MC68901 Transmitter Enabled\n"); switch (data & 0x06) { case TSR_OUTPUT_HI_Z: - if (LOG) logerror("MC68901 '%s' Transmitter Disabled Output State : Hi-Z\n", tag()); + LOG("MC68901 Transmitter Disabled Output State : Hi-Z\n"); break; case TSR_OUTPUT_LOW: - if (LOG) logerror("MC68901 '%s' Transmitter Disabled Output State : 0\n", tag()); + LOG("MC68901 Transmitter Disabled Output State : 0\n"); break; case TSR_OUTPUT_HIGH: - if (LOG) logerror("MC68901 '%s' Transmitter Disabled Output State : 1\n", tag()); + LOG("MC68901 Transmitter Disabled Output State : 1\n"); break; case TSR_OUTPUT_LOOP: - if (LOG) logerror("MC68901 '%s' Transmitter Disabled Output State : Loop\n", tag()); + LOG("MC68901 Transmitter Disabled Output State : Loop\n"); break; } if (data & TSR_BREAK) { - if (LOG) logerror("MC68901 '%s' Transmitter Break Enabled\n", tag()); + LOG("MC68901 Transmitter Break Enabled\n"); } else { - if (LOG) logerror("MC68901 '%s' Transmitter Break Disabled\n", tag()); + LOG("MC68901 Transmitter Break Disabled\n"); } if (data & TSR_AUTO_TURNAROUND) { - if (LOG) logerror("MC68901 '%s' Transmitter Auto Turnaround Enabled\n", tag()); + LOG("MC68901 Transmitter Auto Turnaround Enabled\n"); } else { - if (LOG) logerror("MC68901 '%s' Transmitter Auto Turnaround Disabled\n", tag()); + LOG("MC68901 Transmitter Auto Turnaround Disabled\n"); } m_tsr &= ~TSR_END_OF_XMIT; @@ -1060,7 +1061,7 @@ void mc68901_device::register_w(offs_t offset, uint8_t data) break; case REGISTER_UDR: - if (LOG) logerror("MC68901 '%s' UDR %x\n", tag(), data); + LOG("MC68901 UDR %x\n", data); m_transmit_buffer = data; m_transmit_pending = 1; m_tsr &= ~TSR_BUFFER_EMPTY; diff --git a/src/devices/machine/mc68901.h b/src/devices/machine/mc68901.h index 56dd83f27aa..b98d2de8e5c 100644 --- a/src/devices/machine/mc68901.h +++ b/src/devices/machine/mc68901.h @@ -33,10 +33,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_MACHINE_MC68901_H +#define MAME_MACHINE_MC68901_H -#ifndef __MC68901__ -#define __MC68901__ +#pragma once @@ -98,15 +98,15 @@ public: static void set_timer_clock(device_t &device, int timer_clock) { downcast(device).m_timer_clock = timer_clock; } static void set_rx_clock(device_t &device, int rx_clock) { downcast(device).m_rx_clock = rx_clock; } static void set_tx_clock(device_t &device, int tx_clock) { downcast(device).m_tx_clock = tx_clock; } - template static devcb_base &set_out_irq_callback(device_t &device, _Object object) { return downcast(device).m_out_irq_cb.set_callback(object); } - template static devcb_base &set_out_gpio_callback(device_t &device, _Object object) { return downcast(device).m_out_gpio_cb.set_callback(object); } - template static devcb_base &set_out_tao_callback(device_t &device, _Object object) { return downcast(device).m_out_tao_cb.set_callback(object); } - template static devcb_base &set_out_tbo_callback(device_t &device, _Object object) { return downcast(device).m_out_tbo_cb.set_callback(object); } - template static devcb_base &set_out_tco_callback(device_t &device, _Object object) { return downcast(device).m_out_tco_cb.set_callback(object); } - template static devcb_base &set_out_tdo_callback(device_t &device, _Object object) { return downcast(device).m_out_tdo_cb.set_callback(object); } - template static devcb_base &set_out_so_callback(device_t &device, _Object object) { return downcast(device).m_out_so_cb.set_callback(object); } - //template static devcb_base &set_rr_callback(device_t &device, _Object object) { return downcast(device).m_out_rr_cb.set_callback(object); } - //template static devcb_base &set_tr_callback(device_t &device, _Object object) { return downcast(device).m_out_tr_cb.set_callback(object); } + template static devcb_base &set_out_irq_callback(device_t &device, Object &&cb) { return downcast(device).m_out_irq_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_gpio_callback(device_t &device, Object &&cb) { return downcast(device).m_out_gpio_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_tao_callback(device_t &device, Object &&cb) { return downcast(device).m_out_tao_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_tbo_callback(device_t &device, Object &&cb) { return downcast(device).m_out_tbo_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_tco_callback(device_t &device, Object &&cb) { return downcast(device).m_out_tco_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_tdo_callback(device_t &device, Object &&cb) { return downcast(device).m_out_tdo_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_so_callback(device_t &device, Object &&cb) { return downcast(device).m_out_so_cb.set_callback(std::forward(cb)); } + //template static devcb_base &set_rr_callback(device_t &device, Object &&cb) { return downcast(device).m_out_rr_cb.set_callback(std::forward(cb)); } + //template static devcb_base &set_tr_callback(device_t &device, Object &&cb) { return downcast(device).m_out_tr_cb.set_callback(std::forward(cb)); } DECLARE_READ8_MEMBER( read ); DECLARE_WRITE8_MEMBER( write ); @@ -303,8 +303,6 @@ private: // device type definition -extern const device_type MC68901; - - +DECLARE_DEVICE_TYPE(MC68901, mc68901_device) -#endif +#endif // MAME_MACHINE_MC68901_H diff --git a/src/devices/machine/mccs1850.cpp b/src/devices/machine/mccs1850.cpp index 0a39b833529..7422565b53f 100644 --- a/src/devices/machine/mccs1850.cpp +++ b/src/devices/machine/mccs1850.cpp @@ -18,15 +18,15 @@ #include "emu.h" #include "mccs1850.h" +//#define VERBOSE 0 +#include "logmacro.h" + //************************************************************************** // MACROS / CONSTANTS //************************************************************************** -#define LOG 0 - - #define RAM_SIZE 0x80 @@ -100,7 +100,7 @@ enum //************************************************************************** // device type definition -const device_type MCCS1850 = device_creator; +DEFINE_DEVICE_TYPE(MCCS1850, mccs1850_device, "mccs1850", "MCCS1850 RTC") @@ -171,7 +171,7 @@ inline uint8_t mccs1850_device::read_register(offs_t offset) case REGISTER_TEST_KICK_START_COUNTER: case REGISTER_TEST_PRESCALE_COUNTER: case REGISTER_TEST_COUNTER_INCREMENT: - logerror("MCCS1850 '%s' Unsupported read from test register %02x!\n", tag(), offset); + logerror("MCCS1850 Unsupported read from test register %02x!\n", offset); break; } @@ -192,35 +192,35 @@ inline void mccs1850_device::write_register(offs_t offset, uint8_t data) break; case REGISTER_CONTROL: - if (LOG) logerror("MCCS1850 '%s' Counter %s\n", tag(), (data & CONTROL_STR_STP) ? "Start" : "Stop"); + LOG("MCCS1850 Counter %s\n", (data & CONTROL_STR_STP) ? "Start" : "Stop"); m_clock_timer->enable(data & CONTROL_STR_STP); if (data & CONTROL_PD) { - if (LOG) logerror("MCCS1850 '%s' Power Down\n", tag()); + LOG("MCCS1850 Power Down\n"); set_pse_line(false); } if (data & CONTROL_AR) { - if (LOG) logerror("MCCS1850 '%s' Auto Restart\n", tag()); + LOG("MCCS1850 Auto Restart\n"); } if (data & CONTROL_AC) { - if (LOG) logerror("MCCS1850 '%s' Alarm Clear\n", tag()); + LOG("MCCS1850 Alarm Clear\n"); m_ram[REGISTER_STATUS] &= ~STATUS_AI; } if (data & CONTROL_FTUC) { - if (LOG) logerror("MCCS1850 '%s' First Time Up Clear\n", tag()); + LOG("MCCS1850 First Time Up Clear\n"); m_ram[REGISTER_STATUS] &= ~STATUS_FTU; } if (data & CONTROL_RPCD) { - if (LOG) logerror("MCCS1850 '%s' Request to Power Down Clear\n", tag()); + LOG("MCCS1850 Request to Power Down Clear\n"); m_ram[REGISTER_STATUS] &= ~STATUS_RPD; } @@ -234,7 +234,7 @@ inline void mccs1850_device::write_register(offs_t offset, uint8_t data) case REGISTER_TEST_KICK_START_COUNTER: case REGISTER_TEST_PRESCALE_COUNTER: case REGISTER_TEST_COUNTER_INCREMENT: - logerror("MCCS1850 '%s' Unsupported write to test register %02x!\n", tag(), offset); + logerror("MCCS1850 Unsupported write to test register %02x!\n", offset); break; default: @@ -281,7 +281,7 @@ inline void mccs1850_device::advance_seconds() //------------------------------------------------- mccs1850_device::mccs1850_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, MCCS1850, "MCCS1850", tag, owner, clock, "mccs1850", __FILE__), + device_t(mconfig, MCCS1850, tag, owner, clock), device_rtc_interface(mconfig, *this), device_nvram_interface(mconfig, *this), int_cb(*this), @@ -446,7 +446,7 @@ WRITE_LINE_MEMBER( mccs1850_device::sck_w ) if (m_bits == 8) { - if (LOG) logerror("MCCS1850 '%s' %s Address %02x\n", tag(), BIT(m_address, 7) ? "Write" : "Read", m_address & 0x7f); + LOG("MCCS1850 %s Address %02x\n", BIT(m_address, 7) ? "Write" : "Read", m_address & 0x7f); m_bits = 0; m_state = STATE_DATA; @@ -455,7 +455,7 @@ WRITE_LINE_MEMBER( mccs1850_device::sck_w ) { m_shift = read_register(m_address & 0x7f); - if (LOG) logerror("MCCS1850 '%s' Data Out %02x\n", tag(), m_shift); + LOG("MCCS1850 Data Out %02x\n", m_shift); } } } @@ -471,7 +471,7 @@ WRITE_LINE_MEMBER( mccs1850_device::sck_w ) if (m_bits == 8) { - if (LOG) logerror("MCCS1850 '%s' Data In %02x\n", tag(), m_shift); + LOG("MCCS1850 Data In %02x\n", m_shift); write_register(m_address & 0x7f, m_shift); @@ -497,7 +497,7 @@ WRITE_LINE_MEMBER( mccs1850_device::sck_w ) m_address++; m_address &= 0x7f; m_shift = read_register(m_address & 0x7f); - if (LOG) logerror("MCCS1850 '%s' Data Out %02x\n", tag(), m_shift); + LOG("MCCS1850 Data Out %02x\n", m_shift); } } break; @@ -576,13 +576,13 @@ WRITE_LINE_MEMBER( mccs1850_device::test_w ) { if (state) { - if (LOG) logerror("MCCS1850 '%s' Test Mode\n", tag()); + LOG("MCCS1850 Test Mode\n"); m_ram[REGISTER_STATUS] |= STATUS_TM; } else { - if (LOG) logerror("MCCS1850 '%s' Normal Operation\n", tag()); + LOG("MCCS1850 Normal Operation\n"); m_ram[REGISTER_STATUS] &= ~STATUS_TM; } diff --git a/src/devices/machine/mccs1850.h b/src/devices/machine/mccs1850.h index ad960b52f4e..e446d2083f3 100644 --- a/src/devices/machine/mccs1850.h +++ b/src/devices/machine/mccs1850.h @@ -17,10 +17,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_MACHINE_MCCS1850_H +#define MAME_MACHINE_MCCS1850_H -#ifndef __MCCS1850__ -#define __MCCS1850__ +#pragma once #include "dirtc.h" @@ -55,9 +55,9 @@ public: // construction/destruction mccs1850_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_int_wr_callback(device_t &device, _Object object) { return downcast(device).int_cb.set_callback(object); } - template static devcb_base &set_pse_wr_callback(device_t &device, _Object object) { return downcast(device).pse_cb.set_callback(object); } - template static devcb_base &set_nuc_wr_callback(device_t &device, _Object object) { return downcast(device).nuc_cb.set_callback(object); } + template static devcb_base &set_int_wr_callback(device_t &device, Object &&cb) { return downcast(device).int_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_pse_wr_callback(device_t &device, Object &&cb) { return downcast(device).pse_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_nuc_wr_callback(device_t &device, Object &&cb) { return downcast(device).nuc_cb.set_callback(std::forward(cb)); } DECLARE_WRITE_LINE_MEMBER( ce_w ); DECLARE_WRITE_LINE_MEMBER( sck_w ); @@ -116,8 +116,6 @@ private: // device type definition -extern const device_type MCCS1850; - - +DECLARE_DEVICE_TYPE(MCCS1850, mccs1850_device) -#endif +#endif // MAME_MACHINE_MCCS1850_H diff --git a/src/devices/machine/mcf5206e.cpp b/src/devices/machine/mcf5206e.cpp index c9e18c24cc7..e3b0b669257 100644 --- a/src/devices/machine/mcf5206e.cpp +++ b/src/devices/machine/mcf5206e.cpp @@ -822,14 +822,14 @@ WRITE16_MEMBER( mcf5206e_peripheral_device::TCN1_w) //************************************************************************** // device type definition -const device_type MCF5206E_PERIPHERAL = device_creator; +DEFINE_DEVICE_TYPE(MCF5206E_PERIPHERAL, mcf5206e_peripheral_device, "mcf5206e_peripheral", "MCF5206E Peripheral") //------------------------------------------------- // mcf5206e_peripheral_device - constructor //------------------------------------------------- mcf5206e_peripheral_device::mcf5206e_peripheral_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MCF5206E_PERIPHERAL, "MCF5206E Peripheral", tag, owner, clock, "mcf5206e_peripheral", __FILE__), + : device_t(mconfig, MCF5206E_PERIPHERAL, tag, owner, clock), device_memory_interface(mconfig, *this), m_space_config("coldfire_regs", ENDIANNESS_BIG, 32,10, 0, nullptr, *ADDRESS_MAP_NAME(coldfire_regs_map)) diff --git a/src/devices/machine/mcf5206e.h b/src/devices/machine/mcf5206e.h index 5906d07e81b..b6fbd55a6aa 100644 --- a/src/devices/machine/mcf5206e.h +++ b/src/devices/machine/mcf5206e.h @@ -6,10 +6,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_MACHINE_MCF5206E_H +#define MAME_MACHINE_MCF5206E_H -#ifndef __MCF5206E_PERIPHERAL_H__ -#define __MCF5206E_PERIPHERAL_H__ +#pragma once @@ -27,28 +27,28 @@ // ======================> mcf5206e_peripheral_device -enum -{ - ICR1 = 0, - ICR2, - ICR3, - ICR4, - ICR5, - ICR6, - ICR7, - ICR8, - ICR9, - ICR10, - ICR11, - ICR12, - ICR13, - MAX_ICR -}; - class mcf5206e_peripheral_device : public device_t, public device_memory_interface { public: + enum + { + ICR1 = 0, + ICR2, + ICR3, + ICR4, + ICR5, + ICR6, + ICR7, + ICR8, + ICR9, + ICR10, + ICR11, + ICR12, + ICR13, + MAX_ICR + }; + // construction/destruction mcf5206e_peripheral_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); @@ -155,25 +155,23 @@ public: DECLARE_READ8_MEMBER( MBDR_r ); DECLARE_WRITE8_MEMBER( MBDR_w ); - - - - cpu_device* m_cpu; - protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; virtual void device_post_load() override { } virtual void device_clock_changed() override { } - virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_0) const override; - address_space_config m_space_config; - + virtual const address_space_config *memory_space_config(address_spacenum spacenum) const override; private: + TIMER_CALLBACK_MEMBER(timer1_callback); void init_regs(bool first_init); + cpu_device* m_cpu; + + address_space_config m_space_config; + uint8_t m_ICR[MAX_ICR]; uint16_t m_CSAR[8]; @@ -188,7 +186,6 @@ private: uint16_t m_TRR1; uint8_t m_TER1; uint16_t m_TCN1; - TIMER_CALLBACK_MEMBER(timer1_callback); uint8_t m_PPDDR; @@ -202,12 +199,10 @@ private: uint8_t m_MBDR; uint32_t m_coldfire_regs[0x400/4]; - -private: }; // device type definition -extern const device_type MCF5206E_PERIPHERAL; +DECLARE_DEVICE_TYPE(MCF5206E_PERIPHERAL, mcf5206e_peripheral_device) -#endif /* __MCF5206E_PERIPHERAL_H__ */ +#endif // MAME_MACHINE_MCF5206E_H diff --git a/src/devices/machine/microtch.cpp b/src/devices/machine/microtch.cpp index 93c51dc8208..a712b2c7125 100644 --- a/src/devices/machine/microtch.cpp +++ b/src/devices/machine/microtch.cpp @@ -14,18 +14,23 @@ #include "emu.h" #include "microtch.h" -#define LOG 0 +//#define VERBOSE 1 +#include "logmacro.h" -const device_type MICROTOUCH = device_creator; + +DEFINE_DEVICE_TYPE(MICROTOUCH, microtouch_device, "microtouch", "Microtouch Touchscreen") microtouch_device::microtouch_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, MICROTOUCH, "Microtouch Touchscreen", tag, owner, clock, "microtouch", __FILE__), - device_serial_interface(mconfig, *this), m_rx_buffer_ptr(0), m_tx_buffer_num(0), m_tx_buffer_ptr(0), m_reset_done(0), m_format(0), m_mode(0), m_last_touch_state(0), + device_t(mconfig, MICROTOUCH, tag, owner, clock), + device_serial_interface(mconfig, *this), + m_rx_buffer_ptr(0), m_tx_buffer_num(0), m_tx_buffer_ptr(0), m_reset_done(0), m_format(0), m_mode(0), m_last_touch_state(0), m_last_x(0), m_last_y(0), m_out_stx_func(*this), m_touch(*this, "TOUCH"), m_touchx(*this, "TOUCH_X"), - m_touchy(*this, "TOUCH_Y"), m_timer(nullptr), m_output_valid(false), m_output(0) + m_touchy(*this, "TOUCH_Y"), + m_timer(nullptr), + m_output_valid(false), m_output(0) { } @@ -219,12 +224,12 @@ void microtouch_device::rcv_complete() if (m_rx_buffer_ptr > 0 && (m_rx_buffer[m_rx_buffer_ptr-1] == 0x0d)) { - if (LOG) + if (VERBOSE) { char command[16]; memset(command, 0, sizeof(command)); strncpy( command, (const char*)m_rx_buffer + 1, m_rx_buffer_ptr - 2 ); - logerror("Microtouch: received command %s\n", command); + LOG("Microtouch: received command %s\n", command); } // check command if ( check_command( "MS", m_rx_buffer_ptr, m_rx_buffer ) ) diff --git a/src/devices/machine/microtch.h b/src/devices/machine/microtch.h index 0c56c87379f..ecb16e5b622 100644 --- a/src/devices/machine/microtch.h +++ b/src/devices/machine/microtch.h @@ -1,8 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Mariusz Wojcieszek -#ifndef _MICROTOUCH_H -#define _MICROTOUCH_H +#ifndef MAME_MACHINE_MICROTCH_H +#define MAME_MACHINE_MICROTCH_H +#pragma once class microtouch_device : @@ -11,20 +12,22 @@ class microtouch_device : { public: microtouch_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &static_set_stx_callback(device_t &device, _Object object) { return downcast(device).m_out_stx_func.set_callback(object); } + template static devcb_base &static_set_stx_callback(device_t &device, Object &&cb) { return downcast(device).m_out_stx_func.set_callback(std::forward(cb)); } virtual ioport_constructor device_input_ports() const override; DECLARE_WRITE_LINE_MEMBER(rx) { device_serial_interface::rx_w(state); } DECLARE_INPUT_CHANGED_MEMBER(touch); typedef delegate touch_cb; - static void static_set_touch_callback(device_t &device, touch_cb object) { downcast(device).m_out_touch_cb = object; } + static void static_set_touch_callback(device_t &device, touch_cb &&object) { downcast(device).m_out_touch_cb = std::move(object); } + protected: virtual void device_start() override; virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; virtual void tra_callback() override; virtual void tra_complete() override; virtual void rcv_complete() override; + private: int check_command( const char* commandtocheck, int command_len, uint8_t* command_data ); void send_format_table_packet(uint8_t flag, int x, int y); @@ -37,12 +40,14 @@ private: FORMAT_TABLET, FORMAT_DECIMAL }; + enum { MODE_INACTIVE, MODE_STREAM, MODE_POINT }; + uint8_t m_rx_buffer[16]; int m_rx_buffer_ptr; uint8_t m_tx_buffer[16]; @@ -64,7 +69,7 @@ private: uint8_t m_output; }; -extern const device_type MICROTOUCH; +DECLARE_DEVICE_TYPE(MICROTOUCH, microtouch_device) #define MCFG_MICROTOUCH_ADD(_tag, _clock, _devcb) \ MCFG_DEVICE_ADD(_tag, MICROTOUCH, _clock) \ @@ -73,5 +78,4 @@ extern const device_type MICROTOUCH; #define MCFG_MICROTOUCH_TOUCH_CB(_class, _touch_cb) \ microtouch_device::static_set_touch_callback(*device, microtouch_device::touch_cb(&_class::_touch_cb, (_class *)owner)); - -#endif //_MICROTOUCH_H +#endif // MAME_MACHINE_MICROTCH_H diff --git a/src/devices/machine/mm5740.cpp b/src/devices/machine/mm5740.cpp index 2667f8b6a93..c0604af83bc 100644 --- a/src/devices/machine/mm5740.cpp +++ b/src/devices/machine/mm5740.cpp @@ -18,7 +18,7 @@ //************************************************************************** // devices -const device_type MM5740 = device_creator; +DEFINE_DEVICE_TYPE(MM5740, mm5740_device, "mm5740", "MM5740 Keyboard Encoder") //************************************************************************** // DEVICE DEFINITIONS @@ -44,7 +44,7 @@ const tiny_rom_entry *mm5740_device::device_rom_region() const //------------------------------------------------- mm5740_device::mm5740_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, MM5740, "MM5740", tag, owner, clock, "mm5740", __FILE__), + device_t(mconfig, MM5740, tag, owner, clock), m_read_x{{*this}, {*this}, {*this}, {*this}, {*this}, {*this}, {*this}, {*this}, {*this}}, m_read_shift(*this), m_read_control(*this), diff --git a/src/devices/machine/mm5740.h b/src/devices/machine/mm5740.h index 2354f5c2e33..4602d9da2e6 100644 --- a/src/devices/machine/mm5740.h +++ b/src/devices/machine/mm5740.h @@ -5,27 +5,27 @@ MM5740 Keyboard Encoder emulation ********************************************************************** - _____ _____ - B3 1 |* \_/ | 40 B4 - Vll 2 | | 39 B9 - Clock 3 | | 38 B2 - X9 4 | | 37 B1 - X8 5 | | 36 B8 - X7 6 | | 35 B7 - X6 7 | | 34 B6 - X5 8 | | 33 B5 - X4 9 | | 32 Vss - X3 10 | MM5740 | 31 Y9 - X2 11 | | 30 Y8 - X1 12 | | 29 Y7 + _____ _____ + B3 1 |* \_/ | 40 B4 + Vll 2 | | 39 B9 + Clock 3 | | 38 B2 + X9 4 | | 37 B1 + X8 5 | | 36 B8 + X7 6 | | 35 B7 + X6 7 | | 34 B6 + X5 8 | | 33 B5 + X4 9 | | 32 Vss + X3 10 | MM5740 | 31 Y9 + X2 11 | | 30 Y8 + X1 12 | | 29 Y7 Data Strobe Output 13 | | 28 Y6 Data Strobe Control 14 | | 27 Y5 - Output Enable 15 | | 26 Y4 - Repeat 16 | | 25 Y3 + Output Enable 15 | | 26 Y4 + Repeat 16 | | 25 Y3 Key Bounce Mask 17 | | 24 Y2 - Vgg 18 | | 23 Y1 - Control 19 | | 22 Y0 - Shift Lock I/O 20 |_____________| 21 Shift + Vgg 18 | | 23 Y1 + Control 19 | | 22 Y0 + Shift Lock I/O 20 |_____________| 21 Shift Name Pin No. Function ---------------------------------------------------------------------- @@ -73,25 +73,25 @@ Vgg 18 -12V Support additional internal ROMs */ -#pragma once +#ifndef MAME_MACHINE_MM5740_H +#define MAME_MACHINE_MM5740_H -#ifndef MAME_DEVICE_MACHINE_MM5740_H -#define MAME_DEVICE_MACHINE_MM5740_H +#pragma once //************************************************************************** // INTERFACE CONFIGURATION MACROS //************************************************************************** -#define MCFG_MM5740_MATRIX_X1(_cb) devcb = &mm5740_device::set_x_cb(*device, DEVCB_##_cb, 0); -#define MCFG_MM5740_MATRIX_X2(_cb) devcb = &mm5740_device::set_x_cb(*device, DEVCB_##_cb, 1); -#define MCFG_MM5740_MATRIX_X3(_cb) devcb = &mm5740_device::set_x_cb(*device, DEVCB_##_cb, 2); -#define MCFG_MM5740_MATRIX_X4(_cb) devcb = &mm5740_device::set_x_cb(*device, DEVCB_##_cb, 3); -#define MCFG_MM5740_MATRIX_X5(_cb) devcb = &mm5740_device::set_x_cb(*device, DEVCB_##_cb, 4); -#define MCFG_MM5740_MATRIX_X6(_cb) devcb = &mm5740_device::set_x_cb(*device, DEVCB_##_cb, 5); -#define MCFG_MM5740_MATRIX_X7(_cb) devcb = &mm5740_device::set_x_cb(*device, DEVCB_##_cb, 6); -#define MCFG_MM5740_MATRIX_X8(_cb) devcb = &mm5740_device::set_x_cb(*device, DEVCB_##_cb, 7); -#define MCFG_MM5740_MATRIX_X9(_cb) devcb = &mm5740_device::set_x_cb(*device, DEVCB_##_cb, 8); +#define MCFG_MM5740_MATRIX_X1(_cb) devcb = &mm5740_device::set_x_cb<0>(*device, DEVCB_##_cb); +#define MCFG_MM5740_MATRIX_X2(_cb) devcb = &mm5740_device::set_x_cb<1>(*device, DEVCB_##_cb); +#define MCFG_MM5740_MATRIX_X3(_cb) devcb = &mm5740_device::set_x_cb<2>(*device, DEVCB_##_cb); +#define MCFG_MM5740_MATRIX_X4(_cb) devcb = &mm5740_device::set_x_cb<3>(*device, DEVCB_##_cb); +#define MCFG_MM5740_MATRIX_X5(_cb) devcb = &mm5740_device::set_x_cb<4>(*device, DEVCB_##_cb); +#define MCFG_MM5740_MATRIX_X6(_cb) devcb = &mm5740_device::set_x_cb<5>(*device, DEVCB_##_cb); +#define MCFG_MM5740_MATRIX_X7(_cb) devcb = &mm5740_device::set_x_cb<6>(*device, DEVCB_##_cb); +#define MCFG_MM5740_MATRIX_X8(_cb) devcb = &mm5740_device::set_x_cb<7>(*device, DEVCB_##_cb); +#define MCFG_MM5740_MATRIX_X9(_cb) devcb = &mm5740_device::set_x_cb<8>(*device, DEVCB_##_cb); #define MCFG_MM5740_SHIFT_CB(_cb) devcb = &mm5740_device::set_shift_cb(*device, DEVCB_##_cb); #define MCFG_MM5740_CONTROL_CB(_cb) devcb = &mm5740_device::set_control_cb(*device, DEVCB_##_cb); #define MCFG_MM5740_DATA_READY_CB(_cb) devcb = &mm5740_device::set_data_ready_cb(*device, DEVCB_##_cb); @@ -102,7 +102,7 @@ Vgg 18 -12V // ======================> mm5740_device -class mm5740_device : public device_t +class mm5740_device : public device_t { public: // construction/destruction @@ -111,21 +111,21 @@ public: // public interface uint16_t b_r(); - template static devcb_base &set_x_cb(device_t &device, Object &&object, uint8_t i) + template static devcb_base &set_x_cb(device_t &device, Object &&cb) { - assert(i<9); return downcast(device).m_read_x[i].set_callback(std::forward(object)); + return downcast(device).m_read_x[N].set_callback(std::forward(cb)); } - template static devcb_base &set_shift_cb(device_t &device, Object &&object) + template static devcb_base &set_shift_cb(device_t &device, Object &&cb) { - return downcast(device).m_read_shift.set_callback(std::forward(object)); + return downcast(device).m_read_shift.set_callback(std::forward(cb)); } - template static devcb_base &set_control_cb(device_t &device, Object &&object) + template static devcb_base &set_control_cb(device_t &device, Object &&cb) { - return downcast(device).m_read_control.set_callback(std::forward(object)); + return downcast(device).m_read_control.set_callback(std::forward(cb)); } - template static devcb_base &set_data_ready_cb(device_t &device, Object &&object) + template static devcb_base &set_data_ready_cb(device_t &device, Object &&cb) { - return downcast(device).m_write_data_ready.set_callback(std::forward(object)); + return downcast(device).m_write_data_ready.set_callback(std::forward(cb)); } static uint32_t calc_effective_clock_key_debounce(uint32_t capacitance); @@ -154,9 +154,6 @@ private: // device type definition -extern const device_type MM5740; - - - -#endif +DECLARE_DEVICE_TYPE(MM5740, mm5740_device) +#endif // MAME_MACHINE_MM5740_H diff --git a/src/devices/machine/mm58167.cpp b/src/devices/machine/mm58167.cpp index 3ce550b255a..eedfdcd339f 100644 --- a/src/devices/machine/mm58167.cpp +++ b/src/devices/machine/mm58167.cpp @@ -17,7 +17,7 @@ //************************************************************************** // device type definition -const device_type MM58167 = device_creator; +DEFINE_DEVICE_TYPE(MM58167, mm58167_device, "mm58167", "National Semiconductor MM58167 RTC") // registers (0-7 are the live data, 8-f are the setting for the compare IRQ) typedef enum @@ -53,7 +53,7 @@ typedef enum //------------------------------------------------- mm58167_device::mm58167_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MM58167, "National Semiconductor MM58167", tag, owner, clock, "mm58167", __FILE__), + : device_t(mconfig, MM58167, tag, owner, clock), device_rtc_interface(mconfig, *this), m_irq_w(*this) { diff --git a/src/devices/machine/mm58167.h b/src/devices/machine/mm58167.h index 4fd66b72b92..4d924b291f6 100644 --- a/src/devices/machine/mm58167.h +++ b/src/devices/machine/mm58167.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_MACHINE_MM58167_H +#define MAME_MACHINE_MM58167_H -#ifndef __MM58167_H__ -#define __MM58167_H__ +#pragma once #include "dirtc.h" @@ -38,7 +38,7 @@ public: DECLARE_READ8_MEMBER(read); DECLARE_WRITE8_MEMBER(write); - template static devcb_base &set_irq_cb(device_t &device, _Object wr) { return downcast(device).m_irq_w.set_callback(wr); } + template static devcb_base &set_irq_cb(device_t &device, Object &&wr) { return downcast(device).m_irq_w.set_callback(std::forward(wr)); } devcb_write_line m_irq_w; @@ -65,6 +65,6 @@ private: }; // device type definition -extern const device_type MM58167; +DECLARE_DEVICE_TYPE(MM58167, mm58167_device) -#endif +#endif // MAME_MACHINE_MM58167_H diff --git a/src/devices/machine/mm58274c.cpp b/src/devices/machine/mm58274c.cpp index 491ace25a34..61904923326 100644 --- a/src/devices/machine/mm58274c.cpp +++ b/src/devices/machine/mm58274c.cpp @@ -44,13 +44,13 @@ enum -const device_type MM58274C = device_creator; +DEFINE_DEVICE_TYPE(MM58274C, mm58274c_device, "mm58274c", "National Semiconductor MM58274C RTC") mm58274c_device::mm58274c_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MM58274C, "National Semiconductor MM58274C", tag, owner, clock, "mm58274c", __FILE__), - m_mode24(0), - m_day1(0) + : device_t(mconfig, MM58274C, tag, owner, clock) + , m_mode24(0) + , m_day1(0) { } diff --git a/src/devices/machine/mm58274c.h b/src/devices/machine/mm58274c.h index 9c8505da49c..716070df2f1 100644 --- a/src/devices/machine/mm58274c.h +++ b/src/devices/machine/mm58274c.h @@ -1,7 +1,7 @@ // license:BSD-3-Clause // copyright-holders:Raphael Nabet -#ifndef __MM58274C_H__ -#define __MM58274C_H__ +#ifndef MAME_MACHINE_MM58274C_H +#define MAME_MACHINE_MM58274C_H /*************************************************************************** MACROS @@ -11,7 +11,6 @@ class mm58274c_device : public device_t { public: mm58274c_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~mm58274c_device() {} static void set_mode24(device_t &device, int mode) { downcast(device).m_mode24 = mode; } static void set_day1(device_t &device, int day) { downcast(device).m_day1 = day; } @@ -64,7 +63,7 @@ private: emu_timer *m_interrupt_timer; }; -extern const device_type MM58274C; +DECLARE_DEVICE_TYPE(MM58274C, mm58274c_device) /*************************************************************************** @@ -77,5 +76,4 @@ extern const device_type MM58274C; #define MCFG_MM58274C_DAY1(_day) \ mm58274c_device::set_day1(*device, _day); - -#endif +#endif // MAME_MACHINE_MM58274C_H diff --git a/src/devices/machine/mm74c922.cpp b/src/devices/machine/mm74c922.cpp index fbbfd603773..a9f5def8fec 100644 --- a/src/devices/machine/mm74c922.cpp +++ b/src/devices/machine/mm74c922.cpp @@ -9,13 +9,8 @@ #include "emu.h" #include "mm74c922.h" - - -//************************************************************************** -// MACROS / CONSTANTS -//************************************************************************** - -#define LOG 1 +//#define VERBOSE 1 +#include "logmacro.h" @@ -23,7 +18,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type MM74C922 = device_creator; +DEFINE_DEVICE_TYPE(MM74C922, mm74c922_device, "mm74c922", "MM74C923 16/20-Key Encoder") const device_type MM74C923 = MM74C922; @@ -38,7 +33,7 @@ const device_type MM74C923 = MM74C922; //------------------------------------------------- mm74c922_device::mm74c922_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, MM74C922, "MM74C922", tag, owner, clock, "mm74c922", __FILE__), + device_t(mconfig, MM74C922, tag, owner, clock), m_write_da(*this), m_read_x1(*this), m_read_x2(*this), @@ -104,7 +99,7 @@ void mm74c922_device::device_timer(emu_timer &timer, device_timer_id id, int par uint8_t mm74c922_device::read() { - if (LOG) logerror("MM74C922 '%s' Data Read: %02x\n", tag(), m_data); + LOG("MM74C922 Data Read: %02x\n", m_data); return m_data; } @@ -120,7 +115,7 @@ void mm74c922_device::change_output_lines() { m_da = m_next_da; - if (LOG) logerror("MM74C922 '%s' Data Available: %u\n", tag(), m_da); + LOG("MM74C922 Data Available: %u\n", m_da); m_write_da(m_da); } @@ -167,7 +162,7 @@ void mm74c922_device::detect_keypress() m_next_da = 0; m_data = 0xff; // high-Z - if (LOG) logerror("MM74C922 '%s' Key Released\n", tag()); + LOG("MM74C922 Key Released\n"); } } else @@ -183,7 +178,7 @@ void mm74c922_device::detect_keypress() m_data = (y << 2) | m_x; - if (LOG) logerror("MM74C922 '%s' Key Depressed: X %u Y %u = %02x\n", tag(), m_x, y, m_data); + LOG("MM74C922 Key Depressed: X %u Y %u = %02x\n", m_x, y, m_data); return; } } diff --git a/src/devices/machine/mm74c922.h b/src/devices/machine/mm74c922.h index 6d56642ca2c..819731e3710 100644 --- a/src/devices/machine/mm74c922.h +++ b/src/devices/machine/mm74c922.h @@ -30,10 +30,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_MACHINE_MM74C922_H +#define MAME_MACHINE_MM74C922_H -#ifndef __MM74C922__ -#define __MM74C922__ +#pragma once @@ -83,12 +83,12 @@ public: static void static_set_cap_osc(device_t &device, double value) { downcast(device).m_cap_osc = value; } static void static_set_cap_debounce(device_t &device, double value) { downcast(device).m_cap_debounce = value; } - template static devcb_base &set_da_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_da.set_callback(object); } - template static devcb_base &set_x1_rd_callback(device_t &device, _Object object) { return downcast(device).m_read_x1.set_callback(object); } - template static devcb_base &set_x2_rd_callback(device_t &device, _Object object) { return downcast(device).m_read_x2.set_callback(object); } - template static devcb_base &set_x3_rd_callback(device_t &device, _Object object) { return downcast(device).m_read_x3.set_callback(object); } - template static devcb_base &set_x4_rd_callback(device_t &device, _Object object) { return downcast(device).m_read_x4.set_callback(object); } - template static devcb_base &set_x5_rd_callback(device_t &device, _Object object) { return downcast(device).m_read_x5.set_callback(object); } + template static devcb_base &set_da_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_da.set_callback(std::forward(cb)); } + template static devcb_base &set_x1_rd_callback(device_t &device, Object &&cb) { return downcast(device).m_read_x1.set_callback(std::forward(cb)); } + template static devcb_base &set_x2_rd_callback(device_t &device, Object &&cb) { return downcast(device).m_read_x2.set_callback(std::forward(cb)); } + template static devcb_base &set_x3_rd_callback(device_t &device, Object &&cb) { return downcast(device).m_read_x3.set_callback(std::forward(cb)); } + template static devcb_base &set_x4_rd_callback(device_t &device, Object &&cb) { return downcast(device).m_read_x4.set_callback(std::forward(cb)); } + template static devcb_base &set_x5_rd_callback(device_t &device, Object &&cb) { return downcast(device).m_read_x5.set_callback(std::forward(cb)); } uint8_t read(); @@ -129,9 +129,7 @@ private: // device type definition -extern const device_type MM74C922; +DECLARE_DEVICE_TYPE(MM74C922, mm74c922_device) extern const device_type MM74C923; - - -#endif +#endif // MAME_MACHINE_MM74C922_H diff --git a/src/devices/machine/mos6526.cpp b/src/devices/machine/mos6526.cpp index 05aa3b588e8..fd6bb5665bd 100644 --- a/src/devices/machine/mos6526.cpp +++ b/src/devices/machine/mos6526.cpp @@ -112,10 +112,10 @@ enum // DEVICE TYPE DEFINITIONS //************************************************************************** -const device_type MOS6526 = device_creator; -const device_type MOS6526A = device_creator; -const device_type MOS8520 = device_creator; -const device_type MOS5710 = device_creator; +DEFINE_DEVICE_TYPE(MOS6526, mos6526_device, "mos6526", "MOS 6526 CIA") +DEFINE_DEVICE_TYPE(MOS6526A, mos6526a_device, "mos6526a", "MOS 6526A CIA") +DEFINE_DEVICE_TYPE(MOS8520, mos8520_device, "mos8520", "MOS 8520 CIA") +DEFINE_DEVICE_TYPE(MOS5710, mos5710_device, "mos5710", "MOS 5710 CIA") @@ -587,8 +587,8 @@ inline void mos6526_device::synchronize() // mos6526_device - constructor //------------------------------------------------- -mos6526_device::mos6526_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, uint32_t variant, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), +mos6526_device::mos6526_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint32_t variant) + : device_t(mconfig, type, tag, owner, clock), device_execute_interface(mconfig, *this), m_icount(0), m_variant(variant), @@ -605,29 +605,17 @@ mos6526_device::mos6526_device(const machine_config &mconfig, device_type type, } mos6526_device::mos6526_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MOS6526, "MOS6526", tag, owner, clock, "mos6526", __FILE__), - device_execute_interface(mconfig, *this), - m_icount(0), - m_variant(TYPE_6526), - m_tod_clock(0), - m_write_irq(*this), - m_write_pc(*this), - m_write_cnt(*this), - m_write_sp(*this), - m_read_pa(*this), - m_write_pa(*this), - m_read_pb(*this), - m_write_pb(*this) + : mos6526_device(mconfig, MOS6526, tag, owner, clock, TYPE_6526) { } mos6526a_device::mos6526a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mos6526_device(mconfig, MOS6526A, "MOS6526A", tag, owner, clock, TYPE_6526A, "mos6526a", __FILE__) { } + : mos6526_device(mconfig, MOS6526A, tag, owner, clock, TYPE_6526A) { } mos8520_device::mos8520_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mos6526_device(mconfig, MOS8520, "MOS8520", tag, owner, clock, TYPE_8520, "mos8520", __FILE__) { } + : mos6526_device(mconfig, MOS8520, tag, owner, clock, TYPE_8520) { } mos5710_device::mos5710_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mos6526_device(mconfig, MOS5710, "MOS5710", tag, owner, clock, TYPE_5710, "mos5710", __FILE__) { } + : mos6526_device(mconfig, MOS5710, tag, owner, clock, TYPE_5710) { } //------------------------------------------------- diff --git a/src/devices/machine/mos6526.h b/src/devices/machine/mos6526.h index f40911ac0ac..a16650d8891 100644 --- a/src/devices/machine/mos6526.h +++ b/src/devices/machine/mos6526.h @@ -55,10 +55,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_MACHINE_MOS6526_H +#define MAME_MACHINE_MOS6526_H -#ifndef __MOS6526__ -#define __MOS6526__ +#pragma once @@ -107,19 +107,18 @@ class mos6526_device : public device_t, { public: // construction/destruction - mos6526_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, uint32_t variant, const char *shortname, const char *source); mos6526_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); static void static_set_tod_clock(device_t &device, int clock) { downcast(device).m_tod_clock = clock; } - template static devcb_base &set_irq_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_irq.set_callback(object); } - template static devcb_base &set_cnt_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_cnt.set_callback(object); } - template static devcb_base &set_sp_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_sp.set_callback(object); } - template static devcb_base &set_pa_rd_callback(device_t &device, _Object object) { return downcast(device).m_read_pa.set_callback(object); } - template static devcb_base &set_pa_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_pa.set_callback(object); } - template static devcb_base &set_pb_rd_callback(device_t &device, _Object object) { return downcast(device).m_read_pb.set_callback(object); } - template static devcb_base &set_pb_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_pb.set_callback(object); } - template static devcb_base &set_pc_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_pc.set_callback(object); } + template static devcb_base &set_irq_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_irq.set_callback(std::forward(cb)); } + template static devcb_base &set_cnt_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_cnt.set_callback(std::forward(cb)); } + template static devcb_base &set_sp_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_sp.set_callback(std::forward(cb)); } + template static devcb_base &set_pa_rd_callback(device_t &device, Object &&cb) { return downcast(device).m_read_pa.set_callback(std::forward(cb)); } + template static devcb_base &set_pa_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_pa.set_callback(std::forward(cb)); } + template static devcb_base &set_pb_rd_callback(device_t &device, Object &&cb) { return downcast(device).m_read_pb.set_callback(std::forward(cb)); } + template static devcb_base &set_pb_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_pb.set_callback(std::forward(cb)); } + template static devcb_base &set_pc_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_pc.set_callback(std::forward(cb)); } DECLARE_READ8_MEMBER( read ); DECLARE_WRITE8_MEMBER( write ); @@ -146,6 +145,8 @@ protected: TYPE_5710 }; + mos6526_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint32_t variant); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -153,7 +154,7 @@ protected: virtual void execute_run() override; int m_icount; - int m_variant; + const int m_variant; int m_tod_clock; inline void update_interrupt(); @@ -285,11 +286,9 @@ public: // device type definition -extern const device_type MOS6526; -extern const device_type MOS6526A; -extern const device_type MOS8520; -extern const device_type MOS5710; - - +DECLARE_DEVICE_TYPE(MOS6526, mos6526_device) +DECLARE_DEVICE_TYPE(MOS6526A, mos6526a_device) +DECLARE_DEVICE_TYPE(MOS8520, mos8520_device) +DECLARE_DEVICE_TYPE(MOS5710, mos5710_device) -#endif +#endif // MAME_MACHINE_MOS6526_H diff --git a/src/devices/machine/mos6529.cpp b/src/devices/machine/mos6529.cpp index d3e3c5a7764..a1487f13921 100644 --- a/src/devices/machine/mos6529.cpp +++ b/src/devices/machine/mos6529.cpp @@ -9,13 +9,8 @@ #include "emu.h" #include "mos6529.h" - - -//************************************************************************** -// MACROS / CONSTANTS -//************************************************************************** - -#define LOG 0 +//#define VERBOSE 1 +#include "logmacro.h" @@ -24,7 +19,7 @@ //************************************************************************** // device type definition -const device_type MOS6529 = device_creator; +DEFINE_DEVICE_TYPE(MOS6529, mos6529_device, "mos6529", "MOS 6529") @@ -37,7 +32,7 @@ const device_type MOS6529 = device_creator; //------------------------------------------------- mos6529_device::mos6529_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MOS6529, "MOS6529", tag, owner, clock, "mos6529", __FILE__), + : device_t(mconfig, MOS6529, tag, owner, clock), m_input(0), m_p0_handler(*this), m_p1_handler(*this), @@ -85,12 +80,12 @@ READ8_MEMBER( mos6529_device::read ) WRITE8_MEMBER( mos6529_device::write ) { - m_p0_handler((data>>0)&1); - m_p1_handler((data>>1)&1); - m_p2_handler((data>>2)&1); - m_p3_handler((data>>3)&1); - m_p4_handler((data>>4)&1); - m_p5_handler((data>>5)&1); - m_p6_handler((data>>6)&1); - m_p7_handler((data>>7)&1); + m_p0_handler(BIT(data, 0)); + m_p1_handler(BIT(data, 1)); + m_p2_handler(BIT(data, 2)); + m_p3_handler(BIT(data, 3)); + m_p4_handler(BIT(data, 4)); + m_p5_handler(BIT(data, 5)); + m_p6_handler(BIT(data, 6)); + m_p7_handler(BIT(data, 7)); } diff --git a/src/devices/machine/mos6529.h b/src/devices/machine/mos6529.h index c85ee075a15..bc7dc25df96 100644 --- a/src/devices/machine/mos6529.h +++ b/src/devices/machine/mos6529.h @@ -19,10 +19,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_MACHINE_MOS6529_H +#define MAME_MACHINE_MOS6529_H -#ifndef __MOS6529__ -#define __MOS6529__ +#pragma once @@ -68,14 +68,14 @@ public: // construction/destruction mos6529_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_p0_handler(device_t &device, _Object object) { return downcast(device).m_p0_handler.set_callback(object); } - template static devcb_base &set_p1_handler(device_t &device, _Object object) { return downcast(device).m_p1_handler.set_callback(object); } - template static devcb_base &set_p2_handler(device_t &device, _Object object) { return downcast(device).m_p2_handler.set_callback(object); } - template static devcb_base &set_p3_handler(device_t &device, _Object object) { return downcast(device).m_p3_handler.set_callback(object); } - template static devcb_base &set_p4_handler(device_t &device, _Object object) { return downcast(device).m_p4_handler.set_callback(object); } - template static devcb_base &set_p5_handler(device_t &device, _Object object) { return downcast(device).m_p5_handler.set_callback(object); } - template static devcb_base &set_p6_handler(device_t &device, _Object object) { return downcast(device).m_p6_handler.set_callback(object); } - template static devcb_base &set_p7_handler(device_t &device, _Object object) { return downcast(device).m_p7_handler.set_callback(object); } + template static devcb_base &set_p0_handler(device_t &device, Object &&cb) { return downcast(device).m_p0_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_p1_handler(device_t &device, Object &&cb) { return downcast(device).m_p1_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_p2_handler(device_t &device, Object &&cb) { return downcast(device).m_p2_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_p3_handler(device_t &device, Object &&cb) { return downcast(device).m_p3_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_p4_handler(device_t &device, Object &&cb) { return downcast(device).m_p4_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_p5_handler(device_t &device, Object &&cb) { return downcast(device).m_p5_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_p6_handler(device_t &device, Object &&cb) { return downcast(device).m_p6_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_p7_handler(device_t &device, Object &&cb) { return downcast(device).m_p7_handler.set_callback(std::forward(cb)); } DECLARE_READ8_MEMBER( read ); DECLARE_WRITE8_MEMBER( write ); @@ -109,4 +109,4 @@ protected: // device type definition extern const device_type MOS6529; -#endif +#endif // MAME_MACHINE_MOS6529_H diff --git a/src/devices/machine/mos6530.cpp b/src/devices/machine/mos6530.cpp index ce3b0d67b71..fab2f925d70 100644 --- a/src/devices/machine/mos6530.cpp +++ b/src/devices/machine/mos6530.cpp @@ -38,10 +38,10 @@ enum DEVICE INTERFACE ***************************************************************************/ -const device_type MOS6530 = device_creator; +DEFINE_DEVICE_TYPE(MOS6530, mos6530_device, "mos6530", "MOS 6530 RRIOT") mos6530_device::mos6530_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MOS6530, "MOS6530 RRIOT", tag, owner, clock, "mos6530", __FILE__), + : device_t(mconfig, MOS6530, tag, owner, clock), m_in_pa_cb(*this), m_out_pa_cb(*this), m_in_pb_cb(*this), diff --git a/src/devices/machine/mos6530.h b/src/devices/machine/mos6530.h index db0bc5a0b4c..a76a756c64a 100644 --- a/src/devices/machine/mos6530.h +++ b/src/devices/machine/mos6530.h @@ -29,21 +29,16 @@ **********************************************************************/ -#ifndef __MIOT6530_H__ -#define __MIOT6530_H__ +#ifndef MAME_MACHINE_MOS6530_H +#define MAME_MACHINE_MOS6530_H + +#pragma once /*************************************************************************** TYPE DEFINITIONS ***************************************************************************/ -struct mos6530_port -{ - uint8_t m_in; - uint8_t m_out; - uint8_t m_ddr; -}; - /*************************************************************************** MACROS / CONSTANTS ***************************************************************************/ @@ -52,12 +47,11 @@ class mos6530_device : public device_t { public: mos6530_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~mos6530_device() {} - template static devcb_base &set_in_pa_callback(device_t &device, _Object object) { return downcast(device).m_in_pa_cb.set_callback(object); } - template static devcb_base &set_out_pa_callback(device_t &device, _Object object) { return downcast(device).m_out_pa_cb.set_callback(object); } - template static devcb_base &set_in_pb_callback(device_t &device, _Object object) { return downcast(device).m_in_pb_cb.set_callback(object); } - template static devcb_base &set_out_pb_callback(device_t &device, _Object object) { return downcast(device).m_out_pb_cb.set_callback(object); } + template static devcb_base &set_in_pa_callback(device_t &device, Object &&cb) { return downcast(device).m_in_pa_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_pa_callback(device_t &device, Object &&cb) { return downcast(device).m_out_pa_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_in_pb_callback(device_t &device, Object &&cb) { return downcast(device).m_in_pb_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_pb_callback(device_t &device, Object &&cb) { return downcast(device).m_out_pb_cb.set_callback(std::forward(cb)); } DECLARE_READ8_MEMBER( read ); DECLARE_WRITE8_MEMBER( write ); @@ -75,6 +69,18 @@ protected: virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; private: + enum + { + TIMER_END_CALLBACK + }; + + struct mos6530_port + { + uint8_t m_in; + uint8_t m_out; + uint8_t m_ddr; + }; + // internal state devcb_read8 m_in_pa_cb; devcb_write8 m_out_pa_cb; @@ -98,14 +104,9 @@ private: void porta_in_set(uint8_t data, uint8_t mask); void portb_in_set(uint8_t data, uint8_t mask); - - enum - { - TIMER_END_CALLBACK - }; }; -extern const device_type MOS6530; +DECLARE_DEVICE_TYPE(MOS6530, mos6530_device) #define MCFG_MOS6530_IN_PA_CB(_devcb) \ @@ -120,5 +121,4 @@ extern const device_type MOS6530; #define MCFG_MOS6530_OUT_PB_CB(_devcb) \ devcb = &mos6530_device::set_out_pb_callback(*device, DEVCB_##_devcb); - -#endif +#endif // MAME_MACHINE_MOS6530_H diff --git a/src/devices/machine/mos6530n.cpp b/src/devices/machine/mos6530n.cpp index b2c78917098..ed4cd47a1d5 100644 --- a/src/devices/machine/mos6530n.cpp +++ b/src/devices/machine/mos6530n.cpp @@ -10,14 +10,13 @@ #include "emu.h" #include "mos6530n.h" +#define LOG_GENERAL (1U << 0) +#define LOG_TIMER (1U << 1) +//#define VERBOSE (LOG_GENERAL | LOG_TIMER) +#include "logmacro.h" -//************************************************************************** -// MACROS / CONSTANTS -//************************************************************************** - -#define LOG 0 -#define LOG_TIMER 0 +#define LOGTIMER(...) LOGMASKED(LOG_TIMER, __VA_ARGS__) @@ -25,21 +24,21 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type MOS6530n = device_creator; -const device_type MOS6532n = device_creator; +DEFINE_DEVICE_TYPE(MOS6530_NEW, mos6530_new_device, "mos6530_new", "MOS 6530 (new)") +DEFINE_DEVICE_TYPE(MOS6532_NEW, mos6532_new_device, "mos6532_new", "MOS 6532 (new)") -DEVICE_ADDRESS_MAP_START( rom_map, 8, mos6530_t ) +DEVICE_ADDRESS_MAP_START( rom_map, 8, mos6530_new_device ) ADDRESS_MAP_GLOBAL_MASK(0x3ff) AM_RANGE(0x000, 0x3ff) AM_READ(rom_r) ADDRESS_MAP_END -DEVICE_ADDRESS_MAP_START( ram_map, 8, mos6530_t ) +DEVICE_ADDRESS_MAP_START( ram_map, 8, mos6530_new_device ) ADDRESS_MAP_GLOBAL_MASK(0x3f) AM_RANGE(0x00, 0x3f) AM_READWRITE(ram_r, ram_w) ADDRESS_MAP_END -DEVICE_ADDRESS_MAP_START( io_map, 8, mos6530_t ) +DEVICE_ADDRESS_MAP_START( io_map, 8, mos6530_new_device ) ADDRESS_MAP_GLOBAL_MASK(0xf) AM_RANGE(0x00, 0x00) AM_MIRROR(0x8) AM_READWRITE(pa_data_r, pa_data_w) AM_RANGE(0x01, 0x01) AM_MIRROR(0x8) AM_READWRITE(pa_ddr_r, pa_ddr_w) @@ -52,12 +51,12 @@ DEVICE_ADDRESS_MAP_START( io_map, 8, mos6530_t ) AM_RANGE(0x05, 0x05) AM_MIRROR(0xa) AM_READ(irq_r) ADDRESS_MAP_END -DEVICE_ADDRESS_MAP_START( ram_map, 8, mos6532_t ) +DEVICE_ADDRESS_MAP_START( ram_map, 8, mos6532_new_device ) ADDRESS_MAP_GLOBAL_MASK(0x7f) AM_RANGE(0x00, 0x7f) AM_READWRITE(ram_r, ram_w) ADDRESS_MAP_END -DEVICE_ADDRESS_MAP_START( io_map, 8, mos6532_t ) +DEVICE_ADDRESS_MAP_START( io_map, 8, mos6532_new_device ) ADDRESS_MAP_GLOBAL_MASK(0x1f) AM_RANGE(0x00, 0x00) AM_MIRROR(0x18) AM_READWRITE(pa_data_r, pa_data_w) // SWCHA AM_RANGE(0x01, 0x01) AM_MIRROR(0x18) AM_READWRITE(pa_ddr_r, pa_ddr_w) // SWACNT @@ -71,7 +70,7 @@ DEVICE_ADDRESS_MAP_START( io_map, 8, mos6532_t ) AM_RANGE(0x04, 0x07) AM_MIRROR(0x8) AM_WRITE(edge_w) ADDRESS_MAP_END -READ8_MEMBER(mos6532_t::io_r) +READ8_MEMBER(mos6532_new_device::io_r) { offset &= 0x1f; uint8_t ret = 0; @@ -90,7 +89,7 @@ READ8_MEMBER(mos6532_t::io_r) return ret; } -WRITE8_MEMBER(mos6532_t::io_w) +WRITE8_MEMBER(mos6532_new_device::io_w) { offset &= 0x1f; @@ -111,50 +110,22 @@ WRITE8_MEMBER(mos6532_t::io_w) //************************************************************************** //------------------------------------------------- -// mos6530_base_t - constructor +// mos6530_device_base - constructor //------------------------------------------------- -mos6530_base_t::mos6530_base_t(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), +mos6530_device_base::mos6530_device_base(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), m_ram(*this, finder_base::DUMMY_TAG), m_rom(*this, DEVICE_SELF), m_irq_cb(*this), - m_in_pa_cb(*this), - m_out_pa_cb(*this), - m_in_pb_cb(*this), - m_out_pb_cb(*this), - m_in_pa0_cb(*this), - m_in_pa1_cb(*this), - m_in_pa2_cb(*this), - m_in_pa3_cb(*this), - m_in_pa4_cb(*this), - m_in_pa5_cb(*this), - m_in_pa6_cb(*this), - m_in_pa7_cb(*this), - m_out_pa0_cb(*this), - m_out_pa1_cb(*this), - m_out_pa2_cb(*this), - m_out_pa3_cb(*this), - m_out_pa4_cb(*this), - m_out_pa5_cb(*this), - m_out_pa6_cb(*this), - m_out_pa7_cb(*this), - m_in_pb0_cb(*this), - m_in_pb1_cb(*this), - m_in_pb2_cb(*this), - m_in_pb3_cb(*this), - m_in_pb4_cb(*this), - m_in_pb5_cb(*this), - m_in_pb6_cb(*this), - m_in_pb7_cb(*this), - m_out_pb0_cb(*this), - m_out_pb1_cb(*this), - m_out_pb2_cb(*this), - m_out_pb3_cb(*this), - m_out_pb4_cb(*this), - m_out_pb5_cb(*this), - m_out_pb6_cb(*this), - m_out_pb7_cb(*this), + m_in8_pa_cb(*this), + m_out8_pa_cb(*this), + m_in8_pb_cb(*this), + m_out8_pb_cb(*this), + m_in_pa_cb{ { *this }, { *this }, { *this }, { *this }, { *this }, { *this }, { *this }, { *this } }, + m_out_pa_cb{ { *this }, { *this }, { *this }, { *this }, { *this }, { *this }, { *this }, { *this } }, + m_in_pb_cb{ { *this }, { *this }, { *this }, { *this }, { *this }, { *this }, { *this }, { *this } }, + m_out_pb_cb{ { *this }, { *this }, { *this }, { *this }, { *this }, { *this }, { *this }, { *this } }, m_pa_in(0xff), m_pa_out(0), m_pa_ddr(0), @@ -175,65 +146,41 @@ mos6530_base_t::mos6530_base_t(const machine_config &mconfig, device_type type, //------------------------------------------------- -// mos6530_t - constructor +// mos6530_new_device - constructor //------------------------------------------------- -mos6530_t::mos6530_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mos6530_base_t(mconfig, MOS6530n, "MOS6530n", tag, owner, clock, "mos6530n", __FILE__) { } +mos6530_new_device::mos6530_new_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : mos6530_device_base(mconfig, MOS6530_NEW, tag, owner, clock) { } //------------------------------------------------- -// mos6532_t - constructor +// mos6532_new_device - constructor //------------------------------------------------- -mos6532_t::mos6532_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mos6530_base_t(mconfig, MOS6532n, "MOS6532n", tag, owner, clock, "mos6532n", __FILE__) { } +mos6532_new_device::mos6532_new_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : mos6530_device_base(mconfig, MOS6532_NEW, tag, owner, clock) { } //------------------------------------------------- // device_start - device-specific startup //------------------------------------------------- -void mos6530_base_t::device_start() +void mos6530_device_base::device_start() { // resolve callbacks m_irq_cb.resolve_safe(); - m_in_pa_cb.resolve(); - m_out_pa_cb.resolve(); - m_in_pb_cb.resolve(); - m_out_pb_cb.resolve(); - m_in_pa0_cb.resolve(); - m_in_pa1_cb.resolve(); - m_in_pa2_cb.resolve(); - m_in_pa3_cb.resolve(); - m_in_pa4_cb.resolve(); - m_in_pa5_cb.resolve(); - m_in_pa6_cb.resolve(); - m_in_pa7_cb.resolve(); - m_out_pa0_cb.resolve_safe(); - m_out_pa1_cb.resolve_safe(); - m_out_pa2_cb.resolve_safe(); - m_out_pa3_cb.resolve_safe(); - m_out_pa4_cb.resolve_safe(); - m_out_pa5_cb.resolve_safe(); - m_out_pa6_cb.resolve_safe(); - m_out_pa7_cb.resolve_safe(); - m_in_pb0_cb.resolve(); - m_in_pb1_cb.resolve(); - m_in_pb2_cb.resolve(); - m_in_pb3_cb.resolve(); - m_in_pb4_cb.resolve(); - m_in_pb5_cb.resolve(); - m_in_pb6_cb.resolve(); - m_in_pb7_cb.resolve(); - m_out_pb0_cb.resolve_safe(); - m_out_pb1_cb.resolve_safe(); - m_out_pb2_cb.resolve_safe(); - m_out_pb3_cb.resolve_safe(); - m_out_pb4_cb.resolve_safe(); - m_out_pb5_cb.resolve_safe(); - m_out_pb6_cb.resolve_safe(); - m_out_pb7_cb.resolve_safe(); + m_in8_pa_cb.resolve(); + m_out8_pa_cb.resolve(); + m_in8_pb_cb.resolve(); + m_out8_pb_cb.resolve(); + for (auto &cb : m_in_pa_cb) + cb.resolve(); + for (auto &cb : m_out_pa_cb) + cb.resolve(); + for (auto &cb : m_in_pa_cb) + cb.resolve(); + for (auto &cb : m_out_pa_cb) + cb.resolve(); // allocate timer t_gen = timer_alloc(0); @@ -255,17 +202,17 @@ void mos6530_base_t::device_start() save_item(NAME(m_timer)); } -void mos6530_t::device_start() +void mos6530_new_device::device_start() { - mos6530_base_t::device_start(); + mos6530_device_base::device_start(); // allocate RAM m_ram.allocate(0x40); } -void mos6532_t::device_start() +void mos6532_new_device::device_start() { - mos6530_base_t::device_start(); + mos6530_device_base::device_start(); // allocate RAM m_ram.allocate(0x80); @@ -276,7 +223,7 @@ void mos6532_t::device_start() // device_reset - device-specific reset //------------------------------------------------- -void mos6530_base_t::device_reset() +void mos6530_device_base::device_reset() { m_pa_out = 0xff; m_pa_ddr = 0; @@ -310,7 +257,7 @@ void mos6530_base_t::device_reset() // device_timer - handler timer events //------------------------------------------------- -void mos6530_base_t::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) +void mos6530_device_base::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) { live_sync(); live_run(); @@ -321,26 +268,26 @@ void mos6530_base_t::device_timer(emu_timer &timer, device_timer_id id, int para // update_pa - //------------------------------------------------- -void mos6530_base_t::update_pa() +void mos6530_device_base::update_pa() { uint8_t out = m_pa_out; uint8_t ddr = m_pa_ddr; uint8_t data = (out & ddr) | (ddr ^ 0xff); - if (m_out_pa_cb.isnull()) + if (m_out8_pa_cb.isnull()) { - m_out_pa0_cb(BIT(data, 0)); - m_out_pa1_cb(BIT(data, 1)); - m_out_pa2_cb(BIT(data, 2)); - m_out_pa3_cb(BIT(data, 3)); - m_out_pa4_cb(BIT(data, 4)); - m_out_pa5_cb(BIT(data, 5)); - m_out_pa6_cb(BIT(data, 6)); - m_out_pa7_cb(BIT(data, 7)); + m_out_pa_cb[0](BIT(data, 0)); + m_out_pa_cb[1](BIT(data, 1)); + m_out_pa_cb[2](BIT(data, 2)); + m_out_pa_cb[3](BIT(data, 3)); + m_out_pa_cb[4](BIT(data, 4)); + m_out_pa_cb[5](BIT(data, 5)); + m_out_pa_cb[6](BIT(data, 6)); + m_out_pa_cb[7](BIT(data, 7)); } else { - m_out_pa_cb(data); + m_out8_pa_cb(data); } } @@ -349,30 +296,30 @@ void mos6530_base_t::update_pa() // update_pb - //------------------------------------------------- -void mos6530_base_t::update_pb() +void mos6530_device_base::update_pb() { uint8_t out = m_pb_out; uint8_t ddr = m_pb_ddr; uint8_t data = (out & ddr) | (ddr ^ 0xff); - if (m_out_pb_cb.isnull()) + if (m_out8_pb_cb.isnull()) { - m_out_pb0_cb(BIT(data, 0)); - m_out_pb1_cb(BIT(data, 1)); - m_out_pb2_cb(BIT(data, 2)); - m_out_pb3_cb(BIT(data, 3)); - m_out_pb4_cb(BIT(data, 4)); - m_out_pb5_cb(BIT(data, 5)); - m_out_pb6_cb(BIT(data, 6)); - m_out_pb7_cb(BIT(data, 7)); + m_out_pb_cb[0](BIT(data, 0)); + m_out_pb_cb[1](BIT(data, 1)); + m_out_pb_cb[2](BIT(data, 2)); + m_out_pb_cb[3](BIT(data, 3)); + m_out_pb_cb[4](BIT(data, 4)); + m_out_pb_cb[5](BIT(data, 5)); + m_out_pb_cb[6](BIT(data, 6)); + m_out_pb_cb[7](BIT(data, 7)); } else { - m_out_pb_cb(data); + m_out8_pb_cb(data); } } -void mos6530_t::update_pb() +void mos6530_new_device::update_pb() { uint8_t out = m_pb_out; uint8_t ddr = m_pb_ddr; @@ -387,20 +334,20 @@ void mos6530_t::update_pb() } } - if (m_out_pb_cb.isnull()) + if (m_out8_pb_cb.isnull()) { - m_out_pb0_cb(BIT(data, 0)); - m_out_pb1_cb(BIT(data, 1)); - m_out_pb2_cb(BIT(data, 2)); - m_out_pb3_cb(BIT(data, 3)); - m_out_pb4_cb(BIT(data, 4)); - m_out_pb5_cb(BIT(data, 5)); - m_out_pb6_cb(BIT(data, 6)); - m_out_pb7_cb(BIT(data, 7)); + m_out_pb_cb[0](BIT(data, 0)); + m_out_pb_cb[1](BIT(data, 1)); + m_out_pb_cb[2](BIT(data, 2)); + m_out_pb_cb[3](BIT(data, 3)); + m_out_pb_cb[4](BIT(data, 4)); + m_out_pb_cb[5](BIT(data, 5)); + m_out_pb_cb[6](BIT(data, 6)); + m_out_pb_cb[7](BIT(data, 7)); } else { - m_out_pb_cb(data); + m_out8_pb_cb(data); } } @@ -409,7 +356,7 @@ void mos6530_t::update_pb() // update_irq - //------------------------------------------------- -void mos6530_base_t::update_irq() +void mos6530_device_base::update_irq() { int state = CLEAR_LINE; @@ -419,7 +366,7 @@ void mos6530_base_t::update_irq() m_irq_cb(state); } -void mos6530_t::update_irq() +void mos6530_new_device::update_irq() { update_pb(); } @@ -429,7 +376,7 @@ void mos6530_t::update_irq() // get_irq_flags - //------------------------------------------------- -uint8_t mos6530_base_t::get_irq_flags() +uint8_t mos6530_device_base::get_irq_flags() { uint8_t data = 0; @@ -439,7 +386,7 @@ uint8_t mos6530_base_t::get_irq_flags() return data; } -uint8_t mos6530_t::get_irq_flags() +uint8_t mos6530_new_device::get_irq_flags() { uint8_t data = 0; @@ -453,7 +400,7 @@ uint8_t mos6530_t::get_irq_flags() // edge_detect - //------------------------------------------------- -void mos6530_base_t::edge_detect() +void mos6530_device_base::edge_detect() { uint8_t ddr_out = m_pa_ddr; uint8_t ddr_in = m_pa_ddr ^ 0xff; @@ -462,7 +409,7 @@ void mos6530_base_t::edge_detect() if ((m_pa7 ^ state) && (m_pa7_dir ^ state) == 0) { - if (LOG) logerror("%s %s '%s' edge-detect IRQ\n", machine().time().as_string(), name(), tag()); + LOG("%s %s edge-detect IRQ\n", machine().time().as_string(), name()); m_irq_edge = true; update_irq(); @@ -476,9 +423,9 @@ void mos6530_base_t::edge_detect() // pa_w - //------------------------------------------------- -void mos6530_base_t::pa_w(int bit, int state) +void mos6530_device_base::pa_w(int bit, int state) { - if (LOG) logerror("%s %s %s '%s' Port A Data Bit %u State %u\n", machine().time().as_string(), machine().describe_context(), name(), tag(), bit, state); + LOG("%s %s %s Port A Data Bit %u State %u\n", machine().time().as_string(), machine().describe_context(), name(), bit, state); m_pa_in &= ~(1 << bit); m_pa_in |= (state << bit); @@ -491,9 +438,9 @@ void mos6530_base_t::pa_w(int bit, int state) // pb_w - //------------------------------------------------- -void mos6530_base_t::pb_w(int bit, int state) +void mos6530_device_base::pb_w(int bit, int state) { - if (LOG) logerror("%s %s %s '%s' Port B Data Bit %u State %u\n", machine().time().as_string(), machine().describe_context(), name(), tag(), bit, state); + LOG("%s %s %s Port B Data Bit %u State %u\n", machine().time().as_string(), machine().describe_context(), name(), bit, state); m_pb_in &= ~(1 << bit); m_pb_in |= (state << bit); @@ -504,24 +451,24 @@ void mos6530_base_t::pb_w(int bit, int state) // pa_data_r - //------------------------------------------------- -READ8_MEMBER( mos6530_base_t::pa_data_r ) +READ8_MEMBER( mos6530_device_base::pa_data_r ) { uint8_t in = 0; - if (m_in_pa_cb.isnull()) + if (m_in8_pa_cb.isnull()) { - in |= (m_in_pa0_cb.isnull() ? BIT(m_pa_in, 0) : m_in_pa0_cb()); - in |= (m_in_pa1_cb.isnull() ? BIT(m_pa_in, 1) : m_in_pa1_cb()) << 1; - in |= (m_in_pa2_cb.isnull() ? BIT(m_pa_in, 2) : m_in_pa2_cb()) << 2; - in |= (m_in_pa3_cb.isnull() ? BIT(m_pa_in, 3) : m_in_pa3_cb()) << 3; - in |= (m_in_pa4_cb.isnull() ? BIT(m_pa_in, 4) : m_in_pa4_cb()) << 4; - in |= (m_in_pa5_cb.isnull() ? BIT(m_pa_in, 5) : m_in_pa5_cb()) << 5; - in |= (m_in_pa6_cb.isnull() ? BIT(m_pa_in, 6) : m_in_pa6_cb()) << 6; - in |= (m_in_pa7_cb.isnull() ? BIT(m_pa_in, 7) : m_in_pa7_cb()) << 7; + in |= (m_in_pa_cb[0].isnull() ? BIT(m_pa_in, 0) : m_in_pa_cb[0]()); + in |= (m_in_pa_cb[1].isnull() ? BIT(m_pa_in, 1) : m_in_pa_cb[1]()) << 1; + in |= (m_in_pa_cb[2].isnull() ? BIT(m_pa_in, 2) : m_in_pa_cb[2]()) << 2; + in |= (m_in_pa_cb[3].isnull() ? BIT(m_pa_in, 3) : m_in_pa_cb[3]()) << 3; + in |= (m_in_pa_cb[4].isnull() ? BIT(m_pa_in, 4) : m_in_pa_cb[4]()) << 4; + in |= (m_in_pa_cb[5].isnull() ? BIT(m_pa_in, 5) : m_in_pa_cb[5]()) << 5; + in |= (m_in_pa_cb[6].isnull() ? BIT(m_pa_in, 6) : m_in_pa_cb[6]()) << 6; + in |= (m_in_pa_cb[7].isnull() ? BIT(m_pa_in, 7) : m_in_pa_cb[7]()) << 7; } else { - in = m_in_pa_cb(); + in = m_in8_pa_cb(); } uint8_t out = m_pa_out; @@ -529,7 +476,7 @@ READ8_MEMBER( mos6530_base_t::pa_data_r ) uint8_t ddr_in = m_pa_ddr ^ 0xff; uint8_t data = (out & ddr_out) | (in & ddr_in); - if (LOG) logerror("%s %s %s '%s' Port A Data In %02x\n", machine().time().as_string(), machine().describe_context(), name(), tag(), data); + LOG("%s %s %s Port A Data In %02x\n", machine().time().as_string(), machine().describe_context(), name(), data); return data; } @@ -539,11 +486,11 @@ READ8_MEMBER( mos6530_base_t::pa_data_r ) // pa_data_w - //------------------------------------------------- -WRITE8_MEMBER( mos6530_base_t::pa_data_w ) +WRITE8_MEMBER( mos6530_device_base::pa_data_w ) { m_pa_out = data; - if (LOG) logerror("%s %s %s '%s' Port A Data Out %02x\n", machine().time().as_string(), machine().describe_context(), name(), tag(), data); + LOG("%s %s %s Port A Data Out %02x\n", machine().time().as_string(), machine().describe_context(), name(), data); update_pa(); edge_detect(); @@ -554,11 +501,11 @@ WRITE8_MEMBER( mos6530_base_t::pa_data_w ) // pa_ddr_w - //------------------------------------------------- -WRITE8_MEMBER( mos6530_base_t::pa_ddr_w ) +WRITE8_MEMBER( mos6530_device_base::pa_ddr_w ) { m_pa_ddr = data; - if (LOG) logerror("%s %s %s '%s' Port A DDR %02x\n", machine().time().as_string(), machine().describe_context(), name(), tag(), data); + LOG("%s %s %s Port A DDR %02x\n", machine().time().as_string(), machine().describe_context(), name(), data); update_pa(); edge_detect(); @@ -569,24 +516,24 @@ WRITE8_MEMBER( mos6530_base_t::pa_ddr_w ) // pb_data_r - //------------------------------------------------- -READ8_MEMBER( mos6530_base_t::pb_data_r ) +READ8_MEMBER( mos6530_device_base::pb_data_r ) { uint8_t in = 0; - if (m_in_pb_cb.isnull()) + if (m_in8_pa_cb.isnull()) { - in |= (m_in_pb0_cb.isnull() ? BIT(m_pb_in, 0) : m_in_pb0_cb()); - in |= (m_in_pb1_cb.isnull() ? BIT(m_pb_in, 1) : m_in_pb1_cb()) << 1; - in |= (m_in_pb2_cb.isnull() ? BIT(m_pb_in, 2) : m_in_pb2_cb()) << 2; - in |= (m_in_pb3_cb.isnull() ? BIT(m_pb_in, 3) : m_in_pb3_cb()) << 3; - in |= (m_in_pb4_cb.isnull() ? BIT(m_pb_in, 4) : m_in_pb4_cb()) << 4; - in |= (m_in_pb5_cb.isnull() ? BIT(m_pb_in, 5) : m_in_pb5_cb()) << 5; - in |= (m_in_pb6_cb.isnull() ? BIT(m_pb_in, 6) : m_in_pb6_cb()) << 6; - in |= (m_in_pb7_cb.isnull() ? BIT(m_pb_in, 7) : m_in_pb7_cb()) << 7; + in |= (m_in_pa_cb[0].isnull() ? BIT(m_pa_in, 0) : m_in_pa_cb[0]()); + in |= (m_in_pa_cb[1].isnull() ? BIT(m_pa_in, 1) : m_in_pa_cb[1]()) << 1; + in |= (m_in_pa_cb[2].isnull() ? BIT(m_pa_in, 2) : m_in_pa_cb[2]()) << 2; + in |= (m_in_pa_cb[3].isnull() ? BIT(m_pa_in, 3) : m_in_pa_cb[3]()) << 3; + in |= (m_in_pa_cb[4].isnull() ? BIT(m_pa_in, 4) : m_in_pa_cb[4]()) << 4; + in |= (m_in_pa_cb[5].isnull() ? BIT(m_pa_in, 5) : m_in_pa_cb[5]()) << 5; + in |= (m_in_pa_cb[6].isnull() ? BIT(m_pa_in, 6) : m_in_pa_cb[6]()) << 6; + in |= (m_in_pa_cb[7].isnull() ? BIT(m_pa_in, 7) : m_in_pa_cb[7]()) << 7; } else { - in = m_in_pb_cb(); + in = m_in8_pa_cb(); } uint8_t out = m_pb_out; @@ -594,7 +541,7 @@ READ8_MEMBER( mos6530_base_t::pb_data_r ) uint8_t ddr_in = m_pb_ddr ^ 0xff; uint8_t data = (out & ddr_out) | (in & ddr_in); - if (LOG) logerror("%s %s %s '%s' Port B Data In %02x\n", machine().time().as_string(), machine().describe_context(), name(), tag(), data); + LOG("%s %s %s Port B Data In %02x\n", machine().time().as_string(), machine().describe_context(), name(), data); return data; } @@ -604,11 +551,11 @@ READ8_MEMBER( mos6530_base_t::pb_data_r ) // pb_data_w - //------------------------------------------------- -WRITE8_MEMBER( mos6530_base_t::pb_data_w ) +WRITE8_MEMBER( mos6530_device_base::pb_data_w ) { m_pb_out = data; - if (LOG) logerror("%s %s %s '%s' Port B Data Out %02x\n", machine().time().as_string(), machine().describe_context(), name(), tag(), data); + LOG("%s %s %s Port B Data Out %02x\n", machine().time().as_string(), machine().describe_context(), name(), data); update_pb(); } @@ -618,11 +565,11 @@ WRITE8_MEMBER( mos6530_base_t::pb_data_w ) // pb_ddr_w - //------------------------------------------------- -WRITE8_MEMBER( mos6530_base_t::pb_ddr_w ) +WRITE8_MEMBER( mos6530_device_base::pb_ddr_w ) { m_pb_ddr = data; - if (LOG) logerror("%s %s %s '%s' Port B DDR %02x\n", machine().time().as_string(), machine().describe_context(), name(), tag(), data); + LOG("%s %s %s Port B DDR %02x\n", machine().time().as_string(), machine().describe_context(), name(), data); update_pb(); } @@ -632,7 +579,7 @@ WRITE8_MEMBER( mos6530_base_t::pb_ddr_w ) // timer_r - //------------------------------------------------- -READ8_MEMBER( mos6530_base_t::timer_off_r ) +READ8_MEMBER( mos6530_device_base::timer_off_r ) { if (machine().side_effect_disabled()) return 0; @@ -640,7 +587,7 @@ READ8_MEMBER( mos6530_base_t::timer_off_r ) return timer_r(false); } -READ8_MEMBER( mos6530_base_t::timer_on_r ) +READ8_MEMBER( mos6530_device_base::timer_on_r ) { if (machine().side_effect_disabled()) return 0; @@ -648,7 +595,7 @@ READ8_MEMBER( mos6530_base_t::timer_on_r ) return timer_r(true); } -uint8_t mos6530_base_t::timer_r(bool ie) +uint8_t mos6530_device_base::timer_r(bool ie) { uint8_t data; @@ -662,7 +609,7 @@ uint8_t mos6530_base_t::timer_r(bool ie) data = cur_live.value; - if (LOG_TIMER) logerror("%s %s %s '%s' Timer read %02x IE %u\n", machine().time().as_string(), machine().describe_context(), name(), tag(), data, m_ie_timer ? 1 : 0); + LOGTIMER("%s %s %s Timer read %02x IE %u\n", machine().time().as_string(), machine().describe_context(), name(), data, m_ie_timer ? 1 : 0); checkpoint(); live_run(); @@ -675,7 +622,7 @@ uint8_t mos6530_base_t::timer_r(bool ie) // irq_r - //------------------------------------------------- -READ8_MEMBER( mos6530_base_t::irq_r ) +READ8_MEMBER( mos6530_device_base::irq_r ) { uint8_t data = get_irq_flags(); @@ -694,17 +641,17 @@ READ8_MEMBER( mos6530_base_t::irq_r ) // timer_w - //------------------------------------------------- -WRITE8_MEMBER( mos6530_base_t::timer_off_w ) +WRITE8_MEMBER( mos6530_device_base::timer_off_w ) { timer_w(offset, data, false); } -WRITE8_MEMBER( mos6530_base_t::timer_on_w ) +WRITE8_MEMBER( mos6530_device_base::timer_on_w ) { timer_w(offset, data, true); } -void mos6530_base_t::timer_w(offs_t offset, uint8_t data, bool ie) +void mos6530_device_base::timer_w(offs_t offset, uint8_t data, bool ie) { live_sync(); @@ -723,7 +670,7 @@ void mos6530_base_t::timer_w(offs_t offset, uint8_t data, bool ie) } update_irq(); - if (LOG_TIMER) logerror("%s %s %s '%s' Timer value %02x prescale %u IE %u\n", machine().time().as_string(), machine().describe_context(), name(), tag(), data, m_prescale, m_ie_timer ? 1 : 0); + LOGTIMER("%s %s %s Timer value %02x prescale %u IE %u\n", machine().time().as_string(), machine().describe_context(), name(), data, m_prescale, m_ie_timer ? 1 : 0); checkpoint(); @@ -740,12 +687,12 @@ void mos6530_base_t::timer_w(offs_t offset, uint8_t data, bool ie) // edge_w - //------------------------------------------------- -WRITE8_MEMBER( mos6530_base_t::edge_w ) +WRITE8_MEMBER( mos6530_device_base::edge_w ) { m_pa7_dir = BIT(data, 0); m_ie_edge = BIT(data, 1) ? false : true; - if (LOG) logerror("%s %s %s '%s' %s edge-detect, %s interrupt\n", machine().time().as_string(), machine().describe_context(), name(), tag(), m_pa7_dir ? "positive" : "negative", m_ie_edge ? "enable" : "disable"); + LOG("%s %s %s %s edge-detect, %s interrupt\n", machine().time().as_string(), machine().describe_context(), name(), m_pa7_dir ? "positive" : "negative", m_ie_edge ? "enable" : "disable"); } @@ -753,7 +700,7 @@ WRITE8_MEMBER( mos6530_base_t::edge_w ) // live_start - //------------------------------------------------- -void mos6530_base_t::live_start() +void mos6530_device_base::live_start() { cur_live.period = attotime::from_ticks(m_prescale, clock()); cur_live.tm = machine().time() + attotime::from_hz(clock()); @@ -767,17 +714,17 @@ void mos6530_base_t::live_start() live_run(); } -void mos6530_base_t::checkpoint() +void mos6530_device_base::checkpoint() { checkpoint_live = cur_live; } -void mos6530_base_t::rollback() +void mos6530_device_base::rollback() { cur_live = checkpoint_live; } -void mos6530_base_t::live_delay(int state) +void mos6530_device_base::live_delay(int state) { cur_live.next_state = state; if(cur_live.tm != machine().time()) @@ -786,7 +733,7 @@ void mos6530_base_t::live_delay(int state) live_sync(); } -void mos6530_base_t::live_sync() +void mos6530_device_base::live_sync() { if(!cur_live.tm.is_never()) { if(cur_live.tm > machine().time()) { @@ -806,7 +753,7 @@ void mos6530_base_t::live_sync() } } -void mos6530_base_t::live_abort() +void mos6530_device_base::live_abort() { if(!cur_live.tm.is_never() && cur_live.tm > machine().time()) { rollback(); @@ -819,7 +766,7 @@ void mos6530_base_t::live_abort() cur_live.tm_irq = attotime::never; } -void mos6530_base_t::live_run(const attotime &limit) +void mos6530_device_base::live_run(const attotime &limit) { if(cur_live.state == IDLE || cur_live.next_state != -1) return; @@ -836,7 +783,7 @@ void mos6530_base_t::live_run(const attotime &limit) live_delay(RUNNING_SYNCPOINT); return; } else { - if (LOG_TIMER) logerror("%s %s '%s' timer %02x\n", cur_live.tm.as_string(), name(), tag(), cur_live.value); + LOGTIMER("%s %s timer %02x\n", cur_live.tm.as_string(), name(), cur_live.value); cur_live.tm += cur_live.period; } @@ -844,7 +791,7 @@ void mos6530_base_t::live_run(const attotime &limit) } case RUNNING_SYNCPOINT: { - if (LOG_TIMER) logerror("%s %s '%s' timer %02x interrupt\n", cur_live.tm.as_string(), name(), tag(), cur_live.value); + LOGTIMER("%s %s timer %02x interrupt\n", cur_live.tm.as_string(), name(), cur_live.value); cur_live.tm_irq = cur_live.tm; m_irq_timer = true; @@ -864,7 +811,7 @@ void mos6530_base_t::live_run(const attotime &limit) cur_live.value--; - if (LOG_TIMER) logerror("%s %s '%s' timer %02x\n", cur_live.tm.as_string(), name(), tag(), cur_live.value); + LOGTIMER("%s %s timer %02x\n", cur_live.tm.as_string(), name(), cur_live.value); if (!cur_live.value) { cur_live.state = IDLE; diff --git a/src/devices/machine/mos6530n.h b/src/devices/machine/mos6530n.h index 721ce0aeac3..d7395de94a8 100644 --- a/src/devices/machine/mos6530n.h +++ b/src/devices/machine/mos6530n.h @@ -52,11 +52,10 @@ **********************************************************************/ -#pragma once - -#ifndef __MOS6530n__ -#define __MOS6530n__ +#ifndef MAME_MACHINE_MOS6530N_H +#define MAME_MACHINE_MOS6530N_H +#pragma once @@ -65,115 +64,115 @@ //************************************************************************** #define MCFG_MOS6530n_IRQ_CB(_write) \ - devcb = &mos6530_base_t::set_irq_wr_callback(*device, DEVCB_##_write); + devcb = &mos6530_device_base::set_irq_wr_callback(*device, DEVCB_##_write); #define MCFG_MOS6530n_IN_PA_CB(_read) \ - devcb = &mos6530_base_t::set_pa_rd_callback(*device, DEVCB_##_read); + devcb = &mos6530_device_base::set_pa_rd_callback(*device, DEVCB_##_read); #define MCFG_MOS6530n_OUT_PA_CB(_write) \ - devcb = &mos6530_base_t::set_pa_wr_callback(*device, DEVCB_##_write); + devcb = &mos6530_device_base::set_pa_wr_callback(*device, DEVCB_##_write); #define MCFG_MOS6530n_IN_PB_CB(_read) \ - devcb = &mos6530_base_t::set_pb_rd_callback(*device, DEVCB_##_read); + devcb = &mos6530_device_base::set_pb_rd_callback(*device, DEVCB_##_read); #define MCFG_MOS6530n_OUT_PB_CB(_write) \ - devcb = &mos6530_base_t::set_pb_wr_callback(*device, DEVCB_##_write); + devcb = &mos6530_device_base::set_pb_wr_callback(*device, DEVCB_##_write); #define MCFG_MOS6530n_IN_PA0_CB(_read) \ - devcb = &mos6530_base_t::set_pa0_rd_callback(*device, DEVCB_##_read); + devcb = &mos6530_device_base::set_pa_rd_callback<0>(*device, DEVCB_##_read); #define MCFG_MOS6530n_IN_PA1_CB(_read) \ - devcb = &mos6530_base_t::set_pa1_rd_callback(*device, DEVCB_##_read); + devcb = &mos6530_device_base::set_pa_rd_callback<1>(*device, DEVCB_##_read); #define MCFG_MOS6530n_IN_PA2_CB(_read) \ - devcb = &mos6530_base_t::set_pa2_rd_callback(*device, DEVCB_##_read); + devcb = &mos6530_device_base::set_pa_rd_callback<2>(*device, DEVCB_##_read); #define MCFG_MOS6530n_IN_PA3_CB(_read) \ - devcb = &mos6530_base_t::set_pa3_rd_callback(*device, DEVCB_##_read); + devcb = &mos6530_device_base::set_pa_rd_callback<3>(*device, DEVCB_##_read); #define MCFG_MOS6530n_IN_PA4_CB(_read) \ - devcb = &mos6530_base_t::set_pa4_rd_callback(*device, DEVCB_##_read); + devcb = &mos6530_device_base::set_pa_rd_callback<4>(*device, DEVCB_##_read); #define MCFG_MOS6530n_IN_PA5_CB(_read) \ - devcb = &mos6530_base_t::set_pa5_rd_callback(*device, DEVCB_##_read); + devcb = &mos6530_device_base::set_pa_rd_callback<5>(*device, DEVCB_##_read); #define MCFG_MOS6530n_IN_PA6_CB(_read) \ - devcb = &mos6530_base_t::set_pa6_rd_callback(*device, DEVCB_##_read); + devcb = &mos6530_device_base::set_pa_rd_callback<6>(*device, DEVCB_##_read); #define MCFG_MOS6530n_IN_PA7_CB(_read) \ - devcb = &mos6530_base_t::set_pa7_rd_callback(*device, DEVCB_##_read); + devcb = &mos6530_device_base::set_pa_rd_callback<7>(*device, DEVCB_##_read); #define MCFG_MOS6530n_OUT_PA0_CB(_write) \ - devcb = &mos6530_base_t::set_pa0_wr_callback(*device, DEVCB_##_write); + devcb = &mos6530_device_base::set_pa_wr_callback<0>(*device, DEVCB_##_write); #define MCFG_MOS6530n_OUT_PA1_CB(_write) \ - devcb = &mos6530_base_t::set_pa1_wr_callback(*device, DEVCB_##_write); + devcb = &mos6530_device_base::set_pa_wr_callback<1>(*device, DEVCB_##_write); #define MCFG_MOS6530n_OUT_PA2_CB(_write) \ - devcb = &mos6530_base_t::set_pa2_wr_callback(*device, DEVCB_##_write); + devcb = &mos6530_device_base::set_pa_wr_callback<2>(*device, DEVCB_##_write); #define MCFG_MOS6530n_OUT_PA3_CB(_write) \ - devcb = &mos6530_base_t::set_pa3_wr_callback(*device, DEVCB_##_write); + devcb = &mos6530_device_base::set_pa_wr_callback<3>(*device, DEVCB_##_write); #define MCFG_MOS6530n_OUT_PA4_CB(_write) \ - devcb = &mos6530_base_t::set_pa4_wr_callback(*device, DEVCB_##_write); + devcb = &mos6530_device_base::set_pa_wr_callback<4>(*device, DEVCB_##_write); #define MCFG_MOS6530n_OUT_PA5_CB(_write) \ - devcb = &mos6530_base_t::set_pa5_wr_callback(*device, DEVCB_##_write); + devcb = &mos6530_device_base::set_pa_wr_callback<5>(*device, DEVCB_##_write); #define MCFG_MOS6530n_OUT_PA6_CB(_write) \ - devcb = &mos6530_base_t::set_pa6_wr_callback(*device, DEVCB_##_write); + devcb = &mos6530_device_base::set_pa_wr_callback<6>(*device, DEVCB_##_write); #define MCFG_MOS6530n_OUT_PA7_CB(_write) \ - devcb = &mos6530_base_t::set_pa7_wr_callback(*device, DEVCB_##_write); + devcb = &mos6530_device_base::set_pa_wr_callback<7>(*device, DEVCB_##_write); #define MCFG_MOS6530n_IN_PB0_CB(_read) \ - devcb = &mos6530_base_t::set_pb0_rd_callback(*device, DEVCB_##_read); + devcb = &mos6530_device_base::set_pb_rd_callback<0>(*device, DEVCB_##_read); #define MCFG_MOS6530n_IN_PB1_CB(_read) \ - devcb = &mos6530_base_t::set_pb1_rd_callback(*device, DEVCB_##_read); + devcb = &mos6530_device_base::set_pb_rd_callback<1>(*device, DEVCB_##_read); #define MCFG_MOS6530n_IN_PB2_CB(_read) \ - devcb = &mos6530_base_t::set_pb2_rd_callback(*device, DEVCB_##_read); + devcb = &mos6530_device_base::set_pb_rd_callback<2>(*device, DEVCB_##_read); #define MCFG_MOS6530n_IN_PB3_CB(_read) \ - devcb = &mos6530_base_t::set_pb3_rd_callback(*device, DEVCB_##_read); + devcb = &mos6530_device_base::set_pb_rd_callback<3>(*device, DEVCB_##_read); #define MCFG_MOS6530n_IN_PB4_CB(_read) \ - devcb = &mos6530_base_t::set_pb4_rd_callback(*device, DEVCB_##_read); + devcb = &mos6530_device_base::set_pb_rd_callback<4>(*device, DEVCB_##_read); #define MCFG_MOS6530n_IN_PB5_CB(_read) \ - devcb = &mos6530_base_t::set_pb5_rd_callback(*device, DEVCB_##_read); + devcb = &mos6530_device_base::set_pb_rd_callback<5>(*device, DEVCB_##_read); #define MCFG_MOS6530n_IN_PB6_CB(_read) \ - devcb = &mos6530_base_t::set_pb6_rd_callback(*device, DEVCB_##_read); + devcb = &mos6530_device_base::set_pb_rd_callback<6>(*device, DEVCB_##_read); #define MCFG_MOS6530n_IN_PB7_CB(_read) \ - devcb = &mos6530_base_t::set_pb7_rd_callback(*device, DEVCB_##_read); + devcb = &mos6530_device_base::set_pb_rd_callback<7>(*device, DEVCB_##_read); #define MCFG_MOS6530n_OUT_PB0_CB(_write) \ - devcb = &mos6530_base_t::set_pb0_wr_callback(*device, DEVCB_##_write); + devcb = &mos6530_device_base::set_pb_wr_callback<0>(*device, DEVCB_##_write); #define MCFG_MOS6530n_OUT_PB1_CB(_write) \ - devcb = &mos6530_base_t::set_pb1_wr_callback(*device, DEVCB_##_write); + devcb = &mos6530_device_base::set_pb_wr_callback<1>(*device, DEVCB_##_write); #define MCFG_MOS6530n_OUT_PB2_CB(_write) \ - devcb = &mos6530_base_t::set_pb2_wr_callback(*device, DEVCB_##_write); + devcb = &mos6530_device_base::set_pb_wr_callback<2>(*device, DEVCB_##_write); #define MCFG_MOS6530n_OUT_PB3_CB(_write) \ - devcb = &mos6530_base_t::set_pb3_wr_callback(*device, DEVCB_##_write); + devcb = &mos6530_device_base::set_pb_wr_callback<3>(*device, DEVCB_##_write); #define MCFG_MOS6530n_OUT_PB4_CB(_write) \ - devcb = &mos6530_base_t::set_pb4_wr_callback(*device, DEVCB_##_write); + devcb = &mos6530_device_base::set_pb_wr_callback<4>(*device, DEVCB_##_write); #define MCFG_MOS6530n_OUT_PB5_CB(_write) \ - devcb = &mos6530_base_t::set_pb5_wr_callback(*device, DEVCB_##_write); + devcb = &mos6530_device_base::set_pb_wr_callback<5>(*device, DEVCB_##_write); #define MCFG_MOS6530n_OUT_PB6_CB(_write) \ - devcb = &mos6530_base_t::set_pb6_wr_callback(*device, DEVCB_##_write); + devcb = &mos6530_device_base::set_pb_wr_callback<6>(*device, DEVCB_##_write); #define MCFG_MOS6530n_OUT_PB7_CB(_write) \ - devcb = &mos6530_base_t::set_pb7_wr_callback(*device, DEVCB_##_write); + devcb = &mos6530_device_base::set_pb_wr_callback<7>(*device, DEVCB_##_write); @@ -181,51 +180,20 @@ // TYPE DEFINITIONS //************************************************************************** -// ======================> mos6530_base_t +// ======================> mos6530_device_base -class mos6530_base_t : public device_t +class mos6530_device_base : public device_t { public: - // construction/destruction - mos6530_base_t(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - - template static devcb_base &set_irq_wr_callback(device_t &device, _Object object) { return downcast(device).m_irq_cb.set_callback(object); } - template static devcb_base &set_pa_rd_callback(device_t &device, _Object object) { return downcast(device).m_in_pa_cb.set_callback(object); } - template static devcb_base &set_pa_wr_callback(device_t &device, _Object object) { return downcast(device).m_out_pa_cb.set_callback(object); } - template static devcb_base &set_pb_rd_callback(device_t &device, _Object object) { return downcast(device).m_in_pb_cb.set_callback(object); } - template static devcb_base &set_pb_wr_callback(device_t &device, _Object object) { return downcast(device).m_out_pb_cb.set_callback(object); } - template static devcb_base &set_pa0_rd_callback(device_t &device, _Object object) { return downcast(device).m_in_pa0_cb.set_callback(object); } - template static devcb_base &set_pa1_rd_callback(device_t &device, _Object object) { return downcast(device).m_in_pa1_cb.set_callback(object); } - template static devcb_base &set_pa2_rd_callback(device_t &device, _Object object) { return downcast(device).m_in_pa2_cb.set_callback(object); } - template static devcb_base &set_pa3_rd_callback(device_t &device, _Object object) { return downcast(device).m_in_pa3_cb.set_callback(object); } - template static devcb_base &set_pa4_rd_callback(device_t &device, _Object object) { return downcast(device).m_in_pa4_cb.set_callback(object); } - template static devcb_base &set_pa5_rd_callback(device_t &device, _Object object) { return downcast(device).m_in_pa5_cb.set_callback(object); } - template static devcb_base &set_pa6_rd_callback(device_t &device, _Object object) { return downcast(device).m_in_pa6_cb.set_callback(object); } - template static devcb_base &set_pa7_rd_callback(device_t &device, _Object object) { return downcast(device).m_in_pa7_cb.set_callback(object); } - template static devcb_base &set_pa0_wr_callback(device_t &device, _Object object) { return downcast(device).m_out_pa0_cb.set_callback(object); } - template static devcb_base &set_pa1_wr_callback(device_t &device, _Object object) { return downcast(device).m_out_pa1_cb.set_callback(object); } - template static devcb_base &set_pa2_wr_callback(device_t &device, _Object object) { return downcast(device).m_out_pa2_cb.set_callback(object); } - template static devcb_base &set_pa3_wr_callback(device_t &device, _Object object) { return downcast(device).m_out_pa3_cb.set_callback(object); } - template static devcb_base &set_pa4_wr_callback(device_t &device, _Object object) { return downcast(device).m_out_pa4_cb.set_callback(object); } - template static devcb_base &set_pa5_wr_callback(device_t &device, _Object object) { return downcast(device).m_out_pa5_cb.set_callback(object); } - template static devcb_base &set_pa6_wr_callback(device_t &device, _Object object) { return downcast(device).m_out_pa6_cb.set_callback(object); } - template static devcb_base &set_pa7_wr_callback(device_t &device, _Object object) { return downcast(device).m_out_pa7_cb.set_callback(object); } - template static devcb_base &set_pb0_rd_callback(device_t &device, _Object object) { return downcast(device).m_in_pb0_cb.set_callback(object); } - template static devcb_base &set_pb1_rd_callback(device_t &device, _Object object) { return downcast(device).m_in_pb1_cb.set_callback(object); } - template static devcb_base &set_pb2_rd_callback(device_t &device, _Object object) { return downcast(device).m_in_pb2_cb.set_callback(object); } - template static devcb_base &set_pb3_rd_callback(device_t &device, _Object object) { return downcast(device).m_in_pb3_cb.set_callback(object); } - template static devcb_base &set_pb4_rd_callback(device_t &device, _Object object) { return downcast(device).m_in_pb4_cb.set_callback(object); } - template static devcb_base &set_pb5_rd_callback(device_t &device, _Object object) { return downcast(device).m_in_pb5_cb.set_callback(object); } - template static devcb_base &set_pb6_rd_callback(device_t &device, _Object object) { return downcast(device).m_in_pb6_cb.set_callback(object); } - template static devcb_base &set_pb7_rd_callback(device_t &device, _Object object) { return downcast(device).m_in_pb7_cb.set_callback(object); } - template static devcb_base &set_pb0_wr_callback(device_t &device, _Object object) { return downcast(device).m_out_pb0_cb.set_callback(object); } - template static devcb_base &set_pb1_wr_callback(device_t &device, _Object object) { return downcast(device).m_out_pb1_cb.set_callback(object); } - template static devcb_base &set_pb2_wr_callback(device_t &device, _Object object) { return downcast(device).m_out_pb2_cb.set_callback(object); } - template static devcb_base &set_pb3_wr_callback(device_t &device, _Object object) { return downcast(device).m_out_pb3_cb.set_callback(object); } - template static devcb_base &set_pb4_wr_callback(device_t &device, _Object object) { return downcast(device).m_out_pb4_cb.set_callback(object); } - template static devcb_base &set_pb5_wr_callback(device_t &device, _Object object) { return downcast(device).m_out_pb5_cb.set_callback(object); } - template static devcb_base &set_pb6_wr_callback(device_t &device, _Object object) { return downcast(device).m_out_pb6_cb.set_callback(object); } - template static devcb_base &set_pb7_wr_callback(device_t &device, _Object object) { return downcast(device).m_out_pb7_cb.set_callback(object); } + template static devcb_base &set_irq_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_irq_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_pa_rd_callback(device_t &device, Object &&cb) { return downcast(device).m_in8_pa_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_pa_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_out8_pa_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_pb_rd_callback(device_t &device, Object &&cb) { return downcast(device).m_in8_pb_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_pb_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_out8_pb_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_pa_rd_callback(device_t &device, Object &&cb) { return downcast(device).m_in_pa_cb[N].set_callback(std::forward(cb)); } + template static devcb_base &set_pa_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_out_pa_cb[N].set_callback(std::forward(cb)); } + template static devcb_base &set_pb_rd_callback(device_t &device, Object &&cb) { return downcast(device).m_in_pb_cb[N].set_callback(std::forward(cb)); } + template static devcb_base &set_pb_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_out_pb_cb[N].set_callback(std::forward(cb)); } DECLARE_WRITE_LINE_MEMBER( pa0_w ) { pa_w(0, state); } DECLARE_WRITE_LINE_MEMBER( pa1_w ) { pa_w(1, state); } @@ -246,6 +214,9 @@ public: DECLARE_WRITE_LINE_MEMBER( pb7_w ) { pb_w(7, state); } protected: + // construction/destruction + mos6530_device_base(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -289,42 +260,14 @@ protected: optional_region_ptr m_rom; devcb_write_line m_irq_cb; - devcb_read8 m_in_pa_cb; - devcb_write8 m_out_pa_cb; - devcb_read8 m_in_pb_cb; - devcb_write8 m_out_pb_cb; - devcb_read_line m_in_pa0_cb; - devcb_read_line m_in_pa1_cb; - devcb_read_line m_in_pa2_cb; - devcb_read_line m_in_pa3_cb; - devcb_read_line m_in_pa4_cb; - devcb_read_line m_in_pa5_cb; - devcb_read_line m_in_pa6_cb; - devcb_read_line m_in_pa7_cb; - devcb_write_line m_out_pa0_cb; - devcb_write_line m_out_pa1_cb; - devcb_write_line m_out_pa2_cb; - devcb_write_line m_out_pa3_cb; - devcb_write_line m_out_pa4_cb; - devcb_write_line m_out_pa5_cb; - devcb_write_line m_out_pa6_cb; - devcb_write_line m_out_pa7_cb; - devcb_read_line m_in_pb0_cb; - devcb_read_line m_in_pb1_cb; - devcb_read_line m_in_pb2_cb; - devcb_read_line m_in_pb3_cb; - devcb_read_line m_in_pb4_cb; - devcb_read_line m_in_pb5_cb; - devcb_read_line m_in_pb6_cb; - devcb_read_line m_in_pb7_cb; - devcb_write_line m_out_pb0_cb; - devcb_write_line m_out_pb1_cb; - devcb_write_line m_out_pb2_cb; - devcb_write_line m_out_pb3_cb; - devcb_write_line m_out_pb4_cb; - devcb_write_line m_out_pb5_cb; - devcb_write_line m_out_pb6_cb; - devcb_write_line m_out_pb7_cb; + devcb_read8 m_in8_pa_cb; + devcb_write8 m_out8_pa_cb; + devcb_read8 m_in8_pb_cb; + devcb_write8 m_out8_pb_cb; + devcb_read_line m_in_pa_cb[8]; + devcb_write_line m_out_pa_cb[8]; + devcb_read_line m_in_pb_cb[8]; + devcb_write_line m_out_pb_cb[8]; uint8_t m_pa_in; uint8_t m_pa_out; @@ -371,11 +314,11 @@ protected: }; -class mos6530_t : public mos6530_base_t +class mos6530_new_device : public mos6530_device_base { public: // construction/destruction - mos6530_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + mos6530_new_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual DECLARE_ADDRESS_MAP(rom_map, 8); virtual DECLARE_ADDRESS_MAP(ram_map, 8); @@ -391,11 +334,11 @@ protected: }; -class mos6532_t : public mos6530_base_t +class mos6532_new_device : public mos6530_device_base { public: // construction/destruction - mos6532_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + mos6532_new_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual DECLARE_ADDRESS_MAP(ram_map, 8); virtual DECLARE_ADDRESS_MAP(io_map, 8); @@ -411,9 +354,7 @@ protected: // device type definition -extern const device_type MOS6530n; -extern const device_type MOS6532n; - - +DECLARE_DEVICE_TYPE(MOS6530_NEW, mos6530_new_device) +DECLARE_DEVICE_TYPE(MOS6532_NEW, mos6532_new_device) -#endif +#endif // MAME_MACHINE_MOS6530N_H diff --git a/src/devices/machine/mos6551.cpp b/src/devices/machine/mos6551.cpp index 97f31a39b52..91595615d6c 100644 --- a/src/devices/machine/mos6551.cpp +++ b/src/devices/machine/mos6551.cpp @@ -9,12 +9,14 @@ #include "emu.h" #include "mos6551.h" -#define LOG 0 +//#define VERBOSE 1 +#include "logmacro.h" -const device_type MOS6551 = device_creator; + +DEFINE_DEVICE_TYPE(MOS6551, mos6551_device, "mos6551", "MOS 6551 ACIA") mos6551_device::mos6551_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, MOS6551, "MOS6551", tag, owner, clock, "mos6551", __FILE__), + device_t(mconfig, MOS6551, tag, owner, clock), m_internal_clock(*this, "clock"), m_irq_handler(*this), m_txd_handler(*this), @@ -552,7 +554,7 @@ WRITE_LINE_MEMBER(mos6551_device::receiver_clock) { if (!m_rxd && !m_dtr) { - if (LOG) logerror("MOS6551 '%s': RX START BIT\n", tag()); + LOG("MOS6551: RX START BIT\n"); } else { @@ -574,7 +576,7 @@ WRITE_LINE_MEMBER(mos6551_device::receiver_clock) { m_rx_counter = 0; - if (LOG) logerror("MOS6551 '%s': RX false START BIT\n", tag()); + LOG("MOS6551: RX false START BIT\n"); } } break; @@ -586,11 +588,11 @@ WRITE_LINE_MEMBER(mos6551_device::receiver_clock) if (m_rx_bits < m_wordlength) { - if (LOG) logerror("MOS6551 '%s': RX DATA BIT %d %d\n", tag(), m_rx_bits, m_rxd); + LOG("MOS6551: RX DATA BIT %d %d\n", m_rx_bits, m_rxd); } else { - if (LOG) logerror("MOS6551 '%s': RX PARITY BIT %x\n", tag(), m_rxd); + LOG("MOS6551: RX PARITY BIT %x\n", m_rxd); } if (m_rxd) @@ -615,7 +617,7 @@ WRITE_LINE_MEMBER(mos6551_device::receiver_clock) { m_rx_counter = 0; - if (LOG) logerror("MOS6551 '%s': RX STOP BIT\n", tag()); + LOG("MOS6551: RX STOP BIT\n"); if (!(m_status & SR_RDRF)) { @@ -715,11 +717,11 @@ WRITE_LINE_MEMBER(mos6551_device::transmitter_clock) } else if (!(m_status & SR_TDRE)) { - if (LOG) logerror("MOS6551 '%s': TX DATA %x\n", tag(), m_tdr); + LOG("MOS6551: TX DATA %x\n", m_tdr); m_tx_output = OUTPUT_TXD; - if (LOG) logerror("MOS6551 '%s': TX START BIT\n", tag()); + LOG("MOS6551: TX START BIT\n"); m_status |= SR_TDRE; } @@ -727,7 +729,7 @@ WRITE_LINE_MEMBER(mos6551_device::transmitter_clock) { m_tx_output = OUTPUT_BREAK; - if (LOG) logerror("MOS6551 '%s': TX BREAK START\n", tag()); + LOG("MOS6551: TX BREAK START\n"); } else { @@ -757,7 +759,7 @@ WRITE_LINE_MEMBER(mos6551_device::transmitter_clock) if (m_tx_output == OUTPUT_TXD) { - if (LOG) logerror("MOS6551 '%s': TX DATA BIT %d %d\n", tag(), m_tx_bits, m_txd); + LOG("MOS6551: TX DATA BIT %d %d\n", m_tx_bits, m_txd); } } else if (m_tx_bits == m_wordlength && m_parity != PARITY_NONE) @@ -783,7 +785,7 @@ WRITE_LINE_MEMBER(mos6551_device::transmitter_clock) if (m_tx_output == OUTPUT_TXD) { - if (LOG) logerror("MOS6551 '%s': TX PARITY BIT %d\n", tag(), m_txd); + LOG("MOS6551: TX PARITY BIT %d\n", m_txd); } } else @@ -794,7 +796,7 @@ WRITE_LINE_MEMBER(mos6551_device::transmitter_clock) if (m_tx_output == OUTPUT_TXD) { - if (LOG) logerror("MOS6551 '%s': TX STOP BIT\n", tag()); + LOG("MOS6551: TX STOP BIT\n"); } } } @@ -807,7 +809,7 @@ WRITE_LINE_MEMBER(mos6551_device::transmitter_clock) { if (!m_brk) { - if (LOG) logerror("MOS6551 '%s': TX BREAK END\n", tag()); + LOG("MOS6551: TX BREAK END\n"); m_tx_counter = 0; m_tx_state = STATE_STOP; diff --git a/src/devices/machine/mos6551.h b/src/devices/machine/mos6551.h index 8ebed24e36f..febcbc3078f 100644 --- a/src/devices/machine/mos6551.h +++ b/src/devices/machine/mos6551.h @@ -23,10 +23,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_MACHINE_MOS6551_H +#define MAME_MACHINE_MOS6551_H -#ifndef __MOS6551__ -#define __MOS6551__ +#pragma once #include "machine/clock.h" @@ -54,11 +54,11 @@ public: mos6551_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); static void set_xtal(device_t &device, uint32_t xtal) { downcast(device).set_xtal(xtal); } - template static devcb_base &set_irq_handler(device_t &device, _Object object) { return downcast(device).m_irq_handler.set_callback(object); } - template static devcb_base &set_txd_handler(device_t &device, _Object object) { return downcast(device).m_txd_handler.set_callback(object); } - template static devcb_base &set_rxc_handler(device_t &device, _Object object) { return downcast(device).m_rxc_handler.set_callback(object); } - template static devcb_base &set_rts_handler(device_t &device, _Object object) { return downcast(device).m_rts_handler.set_callback(object); } - template static devcb_base &set_dtr_handler(device_t &device, _Object object) { return downcast(device).m_dtr_handler.set_callback(object); } + template static devcb_base &set_irq_handler(device_t &device, Object &&cb) { return downcast(device).m_irq_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_txd_handler(device_t &device, Object &&cb) { return downcast(device).m_txd_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_rxc_handler(device_t &device, Object &&cb) { return downcast(device).m_rxc_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_rts_handler(device_t &device, Object &&cb) { return downcast(device).m_rts_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_dtr_handler(device_t &device, Object &&cb) { return downcast(device).m_dtr_handler.set_callback(std::forward(cb)); } DECLARE_READ8_MEMBER(read); DECLARE_WRITE8_MEMBER(write); @@ -206,6 +206,6 @@ private: int m_tx_internal_clock; }; -extern const device_type MOS6551; +DECLARE_DEVICE_TYPE(MOS6551, mos6551_device) -#endif +#endif // MAME_MACHINE_MOS6551_H diff --git a/src/devices/machine/mos6702.cpp b/src/devices/machine/mos6702.cpp index 69268f6341e..a5fa3d4c088 100644 --- a/src/devices/machine/mos6702.cpp +++ b/src/devices/machine/mos6702.cpp @@ -9,13 +9,8 @@ #include "emu.h" #include "mos6702.h" - - -//************************************************************************** -// MACROS / CONSTANTS -//************************************************************************** - -#define LOG 0 +//#define VERBOSE 1 +#include "logmacro.h" @@ -23,7 +18,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type MOS6702 = device_creator; +DEFINE_DEVICE_TYPE(MOS6702, mos6702_device, "mos6702", "MOS 6702") @@ -36,7 +31,7 @@ const device_type MOS6702 = device_creator; //------------------------------------------------- mos6702_device::mos6702_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MOS6702, "MOS6702", tag, owner, clock, "mos6702", __FILE__) + : device_t(mconfig, MOS6702, tag, owner, clock) { } diff --git a/src/devices/machine/mos6702.h b/src/devices/machine/mos6702.h index 61723e1213c..4e7ef027b6e 100644 --- a/src/devices/machine/mos6702.h +++ b/src/devices/machine/mos6702.h @@ -19,11 +19,10 @@ **********************************************************************/ -#pragma once - -#ifndef __MOS6702__ -#define __MOS6702__ +#ifndef MAME_MACHINE_MOS6702_H +#define MAME_MACHINE_MOS6702_H +#pragma once @@ -31,8 +30,8 @@ // INTERFACE CONFIGURATION MACROS //************************************************************************** -#define MCFG_MOS6702_ADD(_tag, _clock) \ - MCFG_DEVICE_ADD(_tag, MOS6702, _clock) +#define MCFG_MOS6702_ADD(tag, clock) \ + MCFG_DEVICE_ADD(tag, MOS6702, clock) @@ -58,8 +57,6 @@ protected: // device type definition -extern const device_type MOS6702; - - +DECLARE_DEVICE_TYPE(MOS6702, mos6702_device) -#endif +#endif // MAME_MACHINE_MOS6702_H diff --git a/src/devices/machine/mos8706.cpp b/src/devices/machine/mos8706.cpp index d3127eb4e58..d3f8f42fa10 100644 --- a/src/devices/machine/mos8706.cpp +++ b/src/devices/machine/mos8706.cpp @@ -9,13 +9,8 @@ #include "emu.h" #include "mos8706.h" - - -//************************************************************************** -// MACROS / CONSTANTS -//************************************************************************** - -#define LOG 0 +//#define VERBOSE 1 +#include "logmacro.h" @@ -24,7 +19,7 @@ //************************************************************************** // device type definition -const device_type MOS8706 = device_creator; +DEFINE_DEVICE_TYPE(MOS8706, mos8706_device, "mos8706", "MOS 8706") @@ -37,7 +32,7 @@ const device_type MOS8706 = device_creator; //------------------------------------------------- mos8706_device::mos8706_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MOS8706, "MOS8706", tag, owner, clock, "mos8706", __FILE__) + : device_t(mconfig, MOS8706, tag, owner, clock) { } diff --git a/src/devices/machine/mos8706.h b/src/devices/machine/mos8706.h index 9628e130037..36cb6d55d5d 100644 --- a/src/devices/machine/mos8706.h +++ b/src/devices/machine/mos8706.h @@ -23,10 +23,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_MACHINE_MOS8706_H +#define MAME_MACHINE_MOS8706_H -#ifndef __MOS8706__ -#define __MOS8706__ +#pragma once @@ -35,8 +35,8 @@ // INTERFACE CONFIGURATION MACROS //************************************************************************** -#define MCFG_MOS8706_ADD(_tag, _clock) \ - MCFG_DEVICE_ADD((_tag), MOS8706, _clock) +#define MCFG_MOS8706_ADD(tag, clock) \ + MCFG_DEVICE_ADD((tag), MOS8706, (clock)) @@ -62,8 +62,7 @@ protected: // device type definition -extern const device_type MOS8706; - +DECLARE_DEVICE_TYPE(MOS8706, mos8706_device) -#endif +#endif // MAME_MACHINE_MOS8706_H diff --git a/src/devices/machine/mos8722.cpp b/src/devices/machine/mos8722.cpp index 1472320cf57..b55d8393a9f 100644 --- a/src/devices/machine/mos8722.cpp +++ b/src/devices/machine/mos8722.cpp @@ -9,13 +9,16 @@ #include "emu.h" #include "mos8722.h" +//#define VERBOSE 1 +#include "logmacro.h" + //************************************************************************** // DEVICE DEFINITIONS //************************************************************************** -const device_type MOS8722 = device_creator; +DEFINE_DEVICE_TYPE(MOS8722, mos8722_device, "mos8722", "MOS 8722 MMU") @@ -23,9 +26,6 @@ const device_type MOS8722 = device_creator; // MACROS / CONSTANTS //************************************************************************** -#define LOG 0 - - #define CR_IO BIT(m_reg[CR], 0) #define CR_ROM_LO BIT(m_reg[CR], 1) #define CR_ROM_MID ((m_reg[CR] >> 2) & 0x03) @@ -70,7 +70,7 @@ static const offs_t RCR_TOP_ADDRESS[4] = { 0xf000, 0xf000, 0xe000, 0xc000 }; //------------------------------------------------- mos8722_device::mos8722_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, MOS8722, "MOS8722", tag, owner, clock, "mos8722", __FILE__), + device_t(mconfig, MOS8722, tag, owner, clock), m_write_z80en(*this), m_write_fsdir(*this), m_read_game(*this), @@ -177,7 +177,7 @@ WRITE8_MEMBER( mos8722_device::write ) if (!CR_IO && offset >= 0xd500 && offset < 0xd50c) { - if (LOG) logerror("MOS8722 '%s' Write %01x : %02x\n", tag(), offset & 0x0f, data); + LOG("MOS8722 Write %01x : %02x\n", offset & 0x0f, data); switch (offset & 0x0f) { @@ -232,7 +232,7 @@ WRITE8_MEMBER( mos8722_device::write ) } else if (offset >= 0xff00 && offset < 0xff05) { - if (LOG) logerror("MOS8722 '%s' Write %01x : %02x\n", tag(), offset & 0x0f, data); + LOG("MOS8722 Write %01x : %02x\n", offset & 0x0f, data); switch (offset & 0x0f) { diff --git a/src/devices/machine/mos8722.h b/src/devices/machine/mos8722.h index d396877ba02..9f3286e4c30 100644 --- a/src/devices/machine/mos8722.h +++ b/src/devices/machine/mos8722.h @@ -33,10 +33,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_MACHINE_MOS8722_H +#define MAME_MACHINE_MOS8722_H -#ifndef __MOS8722__ -#define __MOS8722__ +#pragma once @@ -74,11 +74,11 @@ public: // construction/destruction mos8722_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_z80en_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_z80en.set_callback(object); } - template static devcb_base &set_fsdir_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_fsdir.set_callback(object); } - template static devcb_base &set_game_rd_callback(device_t &device, _Object object) { return downcast(device).m_read_game.set_callback(object); } - template static devcb_base &set_exrom_rd_callback(device_t &device, _Object object) { return downcast(device).m_read_exrom.set_callback(object); } - template static devcb_base &set_sense40_rd_callback(device_t &device, _Object object) { return downcast(device).m_read_sense40.set_callback(object); } + template static devcb_base &set_z80en_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_z80en.set_callback(std::forward(cb)); } + template static devcb_base &set_fsdir_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_fsdir.set_callback(std::forward(cb)); } + template static devcb_base &set_game_rd_callback(device_t &device, Object &&cb) { return downcast(device).m_read_game.set_callback(std::forward(cb)); } + template static devcb_base &set_exrom_rd_callback(device_t &device, Object &&cb) { return downcast(device).m_read_exrom.set_callback(std::forward(cb)); } + template static devcb_base &set_sense40_rd_callback(device_t &device, Object &&cb) { return downcast(device).m_read_sense40.set_callback(std::forward(cb)); } uint8_t read(offs_t offset, uint8_t data); @@ -146,8 +146,6 @@ private: // device type definition -extern const device_type MOS8722; - - +DECLARE_DEVICE_TYPE(MOS8722, mos8722_device) -#endif +#endif // MAME_MACHINE_MOS8722_H diff --git a/src/devices/machine/mos8726.cpp b/src/devices/machine/mos8726.cpp index 39d4f450fa8..f046cf5b294 100644 --- a/src/devices/machine/mos8726.cpp +++ b/src/devices/machine/mos8726.cpp @@ -29,7 +29,7 @@ // DEVICE TYPE DEFINITIONS //************************************************************************** -const device_type MOS8726 = device_creator; +DEFINE_DEVICE_TYPE(MOS8726, mos8726_device, "mos8726", "MOS 8726 DMA Controller") @@ -42,11 +42,12 @@ const device_type MOS8726 = device_creator; //------------------------------------------------- mos8726_device::mos8726_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MOS8726, "MOS8726", tag, owner, clock, "mos8726", __FILE__), - device_execute_interface(mconfig, *this), - m_icount(0), - m_bs(1) -{ } + : device_t(mconfig, MOS8726, tag, owner, clock) + , device_execute_interface(mconfig, *this) + , m_icount(0) + , m_bs(1) +{ +} //------------------------------------------------- diff --git a/src/devices/machine/mos8726.h b/src/devices/machine/mos8726.h index fbf771a4830..8435bf0f544 100644 --- a/src/devices/machine/mos8726.h +++ b/src/devices/machine/mos8726.h @@ -41,10 +41,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_MACHINE_MOS8726_H +#define MAME_MACHINE_MOS8726_H -#ifndef __MOS8726__ -#define __MOS8726__ +#pragma once @@ -53,8 +53,8 @@ // INTERFACE CONFIGURATION MACROS //************************************************************************** -#define MCFG_MOS8726_ADD(_tag) \ - MCFG_DEVICE_ADD(_tag, MOS8726, 1000000) // dummy clock +#define MCFG_MOS8726_ADD(tag) \ + MCFG_DEVICE_ADD((tag), MOS8726, 1000000) // dummy clock @@ -90,8 +90,6 @@ protected: // device type definition -extern const device_type MOS8726; - - +DECLARE_DEVICE_TYPE(MOS8726, mos8726_device) -#endif +#endif // MAME_MACHINE_MOS8726_H diff --git a/src/devices/machine/mpu401.cpp b/src/devices/machine/mpu401.cpp index cc65d695476..4fc99221f99 100644 --- a/src/devices/machine/mpu401.cpp +++ b/src/devices/machine/mpu401.cpp @@ -91,7 +91,7 @@ ROM_END // GLOBAL VARIABLES //************************************************************************** -const device_type MPU401 = device_creator; +DEFINE_DEVICE_TYPE(MPU401, mpu401_device, "mpu401", "Roland MPU-401 I/O box") //------------------------------------------------- // machine_config_additions - device-specific @@ -121,7 +121,7 @@ const tiny_rom_entry *mpu401_device::device_rom_region() const //------------------------------------------------- mpu401_device::mpu401_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, MPU401, "Roland MPU-401 I/O box", tag, owner, clock, "mpu401", __FILE__), + device_t(mconfig, MPU401, tag, owner, clock), m_ourcpu(*this, M6801_TAG), write_irq(*this) { diff --git a/src/devices/machine/mpu401.h b/src/devices/machine/mpu401.h index 46f4ed474d0..c73256b5273 100644 --- a/src/devices/machine/mpu401.h +++ b/src/devices/machine/mpu401.h @@ -1,18 +1,18 @@ // license:BSD-3-Clause // copyright-holders:R. Belmont -#pragma once +#ifndef MAME_MACHINE_MPU401_H +#define MAME_MACHINE_MPU401_H -#ifndef __MPU401_H__ -#define __MPU401_H__ +#pragma once #include "cpu/m6800/m6800.h" -#define MCFG_MPU401_ADD(_tag, _irqf ) \ - MCFG_DEVICE_ADD(_tag, MPU401, 0) \ - MCFG_IRQ_FUNC(_irqf) +#define MCFG_MPU401_ADD(tag, irqf) \ + MCFG_DEVICE_ADD((tag), MPU401, 0) \ + MCFG_IRQ_FUNC(irqf) -#define MCFG_IRQ_FUNC(_irqf) \ - devcb = &downcast(device)->set_irqf(DEVCB_##_irqf); +#define MCFG_IRQ_FUNC(irqf) \ + devcb = &downcast(device)->set_irqf(DEVCB_##irqf); //************************************************************************** // TYPE DEFINITIONS @@ -29,13 +29,11 @@ public: required_device m_ourcpu; - template devcb_base &set_irqf(_write wr) + template devcb_base &set_irqf(Write &&wr) { - return write_irq.set_callback(wr); + return write_irq.set_callback(std::forward(wr)); } - devcb_write_line write_irq; - DECLARE_READ8_MEMBER(regs_mode2_r); DECLARE_WRITE8_MEMBER(regs_mode2_w); DECLARE_READ8_MEMBER(asic_r); @@ -58,6 +56,8 @@ protected: virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; private: + devcb_write_line write_irq; + uint8_t m_port2; uint8_t m_command; uint8_t m_mpudata; @@ -66,6 +66,6 @@ private: }; // device type definition -extern const device_type MPU401; +DECLARE_DEVICE_TYPE(MPU401, mpu401_device) -#endif /* __MPU401_H__ */ +#endif // MAME_MACHINE_MPU401_H diff --git a/src/devices/machine/msm5832.cpp b/src/devices/machine/msm5832.cpp index e5db53f3ec8..711de519453 100644 --- a/src/devices/machine/msm5832.cpp +++ b/src/devices/machine/msm5832.cpp @@ -21,18 +21,18 @@ #include "emu.h" #include "msm5832.h" +//#define VERBOSE 1 +#include "logmacro.h" + // device type definition -const device_type MSM5832 = device_creator; +DEFINE_DEVICE_TYPE(MSM5832, msm5832_device, "msm5832", "OKI MSM5832 RTC") //************************************************************************** // MACROS / CONSTANTS //************************************************************************** -#define LOG 0 - - // registers enum { @@ -89,7 +89,7 @@ inline void msm5832_device::write_counter(int counter, int value) //------------------------------------------------- msm5832_device::msm5832_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MSM5832, "MSM5832", tag, owner, clock, "msm5832", __FILE__), + : device_t(mconfig, MSM5832, tag, owner, clock), device_rtc_interface(mconfig, *this), m_hold(0), m_address(0), @@ -148,7 +148,7 @@ void msm5832_device::device_timer(emu_timer &timer, device_timer_id id, int para void msm5832_device::rtc_clock_updated(int year, int month, int day, int day_of_week, int hour, int minute, int second) { - if (LOG) logerror("MSM5832 Clock Update: %d.%d.%d %d %d:%d:%d\n", year, month, day, day_of_week, hour, minute, second); + LOG("MSM5832 Clock Update: %d.%d.%d %d %d:%d:%d\n", year, month, day, day_of_week, hour, minute, second); write_counter(REGISTER_Y1, year); write_counter(REGISTER_MO1, month); @@ -166,7 +166,7 @@ void msm5832_device::rtc_clock_updated(int year, int month, int day, int day_of_ READ8_MEMBER( msm5832_device::data_r ) { - if (LOG) logerror("MSM5832 Register Read %01x: %01x\n", m_address, m_data & 0x0f); + LOG("MSM5832 Register Read %01x: %01x\n", m_address, m_data & 0x0f); return m_data & 0x0f; } @@ -178,7 +178,7 @@ READ8_MEMBER( msm5832_device::data_r ) WRITE8_MEMBER( msm5832_device::data_w ) { - if (LOG) logerror("MSM5832 Register Write %01x: %01x\n", m_address, data & 0x0f); + LOG("MSM5832 Register Write %01x: %01x\n", m_address, data & 0x0f); m_data = data & 0x0f; } @@ -190,7 +190,7 @@ WRITE8_MEMBER( msm5832_device::data_w ) void msm5832_device::address_w(uint8_t data) { - if (LOG) logerror("MSM5832 Address: %01x\n", data & 0x0f); + LOG("MSM5832 Address: %01x\n", data & 0x0f); m_address = data & 0x0f; @@ -219,7 +219,7 @@ void msm5832_device::address_w(uint8_t data) WRITE_LINE_MEMBER( msm5832_device::adj_w ) { - if (LOG) logerror("MSM5832 30 ADJ: %u\n", state); + LOG("MSM5832 30 ADJ: %u\n", state); if (state) { @@ -234,7 +234,7 @@ WRITE_LINE_MEMBER( msm5832_device::adj_w ) WRITE_LINE_MEMBER( msm5832_device::test_w ) { - if (LOG) logerror("MSM5832 TEST: %u\n", state); + LOG("MSM5832 TEST: %u\n", state); } @@ -244,7 +244,7 @@ WRITE_LINE_MEMBER( msm5832_device::test_w ) WRITE_LINE_MEMBER( msm5832_device::hold_w ) { - if (LOG) logerror("MSM5832 HOLD: %u\n", state); + LOG("MSM5832 HOLD: %u\n", state); m_hold = state; } @@ -256,7 +256,7 @@ WRITE_LINE_MEMBER( msm5832_device::hold_w ) WRITE_LINE_MEMBER( msm5832_device::read_w ) { - if (LOG) logerror("MSM5832 READ: %u\n", state); + LOG("MSM5832 READ: %u\n", state); m_read = state; } @@ -271,7 +271,7 @@ WRITE_LINE_MEMBER( msm5832_device::write_w ) if (m_write == state) return; - if (LOG) logerror("MSM5832 WR: %u\n", state); + LOG("MSM5832 WR: %u\n", state); if (m_cs && state) { @@ -298,7 +298,7 @@ WRITE_LINE_MEMBER( msm5832_device::write_w ) WRITE_LINE_MEMBER( msm5832_device::cs_w ) { - if (LOG) logerror("MSM5832 CS: %u\n", state); + LOG("MSM5832 CS: %u\n", state); m_cs = state; } diff --git a/src/devices/machine/msm5832.h b/src/devices/machine/msm5832.h index 3b7627e00db..a7878d11585 100644 --- a/src/devices/machine/msm5832.h +++ b/src/devices/machine/msm5832.h @@ -18,10 +18,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_MACHINE_MSM5832_H +#define MAME_MACHINE_MSM5832_H -#ifndef __MSM5832__ -#define __MSM5832__ +#pragma once #include "dirtc.h" @@ -31,8 +31,8 @@ // INTERFACE CONFIGURATION MACROS //************************************************************************** -#define MCFG_MSM5832_ADD(_tag, _clock) \ - MCFG_DEVICE_ADD(_tag, MSM5832, _clock) +#define MCFG_MSM5832_ADD(tag, clock) \ + MCFG_DEVICE_ADD((tag), MSM5832, (clock)) @@ -71,7 +71,7 @@ protected: virtual void rtc_clock_updated(int year, int month, int day, int day_of_week, int hour, int minute, int second) override; private: - static const device_timer_id TIMER_CLOCK = 0; + static constexpr device_timer_id TIMER_CLOCK = 0; inline int read_counter(int counter); inline void write_counter(int counter, int value); @@ -93,8 +93,6 @@ private: // device type definition -extern const device_type MSM5832; - - +DECLARE_DEVICE_TYPE(MSM5832, msm5832_device) -#endif +#endif // MAME_MACHINE_MSM5832_H diff --git a/src/devices/machine/msm58321.cpp b/src/devices/machine/msm58321.cpp index ed0ed62d8b9..4750cbf92c7 100644 --- a/src/devices/machine/msm58321.cpp +++ b/src/devices/machine/msm58321.cpp @@ -19,18 +19,19 @@ #include "emu.h" #include "msm58321.h" +//#define VERBOSE 1 +#include "logmacro.h" + + // device type definition -const device_type MSM58321 = device_creator; +DEFINE_DEVICE_TYPE(MSM58321, msm58321_device, "msm58321", "OKI MSM58321 RTC") //************************************************************************** // MACROS / CONSTANTS //************************************************************************** -#define LOG 0 - - // registers enum { @@ -173,7 +174,7 @@ inline void msm58321_device::write_counter(int address, int data) //------------------------------------------------- msm58321_device::msm58321_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MSM58321, "MSM58321", tag, owner, clock, "msm58321", __FILE__), + : device_t(mconfig, MSM58321, tag, owner, clock), device_rtc_interface(mconfig, *this), device_nvram_interface(mconfig, *this), m_year0(0), @@ -355,7 +356,7 @@ void msm58321_device::update_output() break; } - if (LOG) logerror("MSM58321 '%s' Register Read %s (%01x): %01x\n", tag(), reg_name(m_address), m_address, data & 0x0f); + LOG("MSM58321 Register Read %s (%01x): %01x\n", reg_name(m_address), m_address, data & 0x0f); } int d0 = (data >> 0) & 1; @@ -400,7 +401,7 @@ void msm58321_device::update_input() if (m_address_write) { - if (LOG) logerror("MSM58321 '%s' Latch Address %01x\n", tag(), data); + LOG("MSM58321 Latch Address %01x\n", data); // latch address m_address = data; @@ -411,7 +412,7 @@ void msm58321_device::update_input() switch(m_address) { case REGISTER_RESET: - if (LOG) logerror("MSM58321 '%s' Reset\n", tag()); + LOG("MSM58321 Reset\n"); if (!m_busy) { @@ -422,11 +423,11 @@ void msm58321_device::update_input() case REGISTER_REF0: case REGISTER_REF1: - if (LOG) logerror("MSM58321 '%s' Reference Signal\n", tag()); + LOG("MSM58321 Reference Signal\n"); break; default: - if (LOG) logerror("MSM58321 '%s' Register Write %s (%01x): %01x\n", tag(), reg_name(m_address), m_address, data); + LOG("MSM58321 Register Write %s (%01x): %01x\n", reg_name(m_address), m_address, data); switch (m_address) { @@ -474,7 +475,7 @@ WRITE_LINE_MEMBER( msm58321_device::cs2_w ) { if (m_cs2 != state) { - if (LOG) logerror("MSM58321 '%s' CS2: %u\n", tag(), state); + LOG("MSM58321 CS2: %u\n", state); m_cs2 = state; @@ -491,7 +492,7 @@ WRITE_LINE_MEMBER( msm58321_device::write_w ) { if (m_write != state) { - if (LOG) logerror("MSM58321 '%s' WRITE: %u\n", tag(), state); + LOG("MSM58321 WRITE: %u\n", state); m_write = state; @@ -508,7 +509,7 @@ WRITE_LINE_MEMBER( msm58321_device::read_w ) { if (m_read != state) { - if (LOG) logerror("MSM58321 '%s' READ: %u\n", tag(), state); + LOG("MSM58321 READ: %u\n", state); m_read = state; @@ -586,7 +587,7 @@ WRITE_LINE_MEMBER( msm58321_device::address_write_w ) { if (m_address_write != state) { - if (LOG) logerror("MSM58321 '%s' ADDRESS WRITE: %u\n", tag(), state); + LOG("MSM58321 ADDRESS WRITE: %u\n", state); m_address_write = state; @@ -603,7 +604,7 @@ WRITE_LINE_MEMBER( msm58321_device::stop_w ) { if (m_stop != state) { - if (LOG) logerror("MSM58321 '%s' STOP: %u\n", tag(), state); + LOG("MSM58321 STOP: %u\n", state); m_stop = state; } @@ -618,7 +619,7 @@ WRITE_LINE_MEMBER( msm58321_device::test_w ) { if (m_test != state) { - if (LOG) logerror("MSM58321 '%s' TEST: %u\n", tag(), state); + LOG("MSM58321 TEST: %u\n", state); m_test = state; } @@ -634,7 +635,7 @@ WRITE_LINE_MEMBER( msm58321_device::cs1_w ) { if (m_cs1 != state) { - if (LOG) logerror("MSM58321 '%s' CS1: %u\n", tag(), state); + LOG("MSM58321 CS1: %u\n", state); m_cs1 = state; diff --git a/src/devices/machine/msm58321.h b/src/devices/machine/msm58321.h index 30a585be4c6..d76a1e78de4 100644 --- a/src/devices/machine/msm58321.h +++ b/src/devices/machine/msm58321.h @@ -31,10 +31,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_MACHINE_MSM58321_H +#define MAME_MACHINE_MSM58321_H -#ifndef __MSM58321__ -#define __MSM58321__ +#pragma once #include "dirtc.h" @@ -76,11 +76,11 @@ public: msm58321_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // static configuration helpers - template static devcb_base &set_d0_handler(device_t &device, _Object object) { return downcast(device).m_d0_handler.set_callback(object); } - template static devcb_base &set_d1_handler(device_t &device, _Object object) { return downcast(device).m_d1_handler.set_callback(object); } - template static devcb_base &set_d2_handler(device_t &device, _Object object) { return downcast(device).m_d2_handler.set_callback(object); } - template static devcb_base &set_d3_handler(device_t &device, _Object object) { return downcast(device).m_d3_handler.set_callback(object); } - template static devcb_base &set_busy_handler(device_t &device, _Object object) { return downcast(device).m_busy_handler.set_callback(object); } + template static devcb_base &set_d0_handler(device_t &device, Object &&cb) { return downcast(device).m_d0_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_d1_handler(device_t &device, Object &&cb) { return downcast(device).m_d1_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_d2_handler(device_t &device, Object &&cb) { return downcast(device).m_d2_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_d3_handler(device_t &device, Object &&cb) { return downcast(device).m_d3_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_busy_handler(device_t &device, Object &&cb) { return downcast(device).m_busy_handler.set_callback(std::forward(cb)); } static void set_year0(device_t &device, int year0) { downcast(device).m_year0 = year0; } static void set_default_24h(device_t &device, bool default_24h) { downcast(device).m_default_24h = default_24h; } diff --git a/src/devices/machine/msm6242.cpp b/src/devices/machine/msm6242.cpp index fec76467966..63742faa087 100644 --- a/src/devices/machine/msm6242.cpp +++ b/src/devices/machine/msm6242.cpp @@ -16,6 +16,18 @@ #include "emu.h" #include "machine/msm6242.h" +#define LOG_GENERAL (1U << 0) +#define LOG_UNMAPPED (1U << 1) +#define LOG_IRQ (1U << 2) +#define LOG_IRQ_ENABLE (1U << 3) + +//#define VERBOSE (LOG_GENERAL | LOG_UNMAPPED | LOG_IRQ | LOG_IRQ_ENABLE) +#include "logmacro.h" + +#define LOGUNMAPPED(...) LOGMASKED(LOG_UNMAPPED, __VA_ARGS__) +#define LOGIRQ(...) LOGMASKED(LOG_IRQ, __VA_ARGS__) +#define LOGIRQENABLE(...) LOGMASKED(LOG_IRQ_ENABLE, __VA_ARGS__) + //************************************************************************** // CONSTANTS @@ -43,10 +55,6 @@ enum #define TIMER_RTC_CALLBACK 1 -#define LOG_UNMAPPED 0 -#define LOG_IRQ 0 -#define LOG_IRQ_ENABLE 0 - //************************************************************************** @@ -54,11 +62,11 @@ enum //************************************************************************** // device type definitions -const device_type MSM6242 = device_creator; -const device_type RTC62421 = device_creator; -const device_type RTC62423 = device_creator; -const device_type RTC72421 = device_creator; -const device_type RTC72423 = device_creator; +DEFINE_DEVICE_TYPE(MSM6242, msm6242_device, "msm6242", "OKI MSM6242 RTC") +DEFINE_DEVICE_TYPE(RTC62421, rtc62421_device, "rtc62421", "Epson RTC-62421 RTC") +DEFINE_DEVICE_TYPE(RTC62423, rtc62423_device, "rtc62423", "Epson RTC-62423 RTC") +DEFINE_DEVICE_TYPE(RTC72421, rtc72421_device, "rtc72421", "Epson RTC-72421 RTC") +DEFINE_DEVICE_TYPE(RTC72423, rtc72423_device, "rtc72423", "Epson RTC-72423 RTC") //************************************************************************** @@ -70,16 +78,14 @@ const device_type RTC72423 = device_creator; //------------------------------------------------- msm6242_device::msm6242_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MSM6242, "MSM6242 RTC", tag, owner, clock, "msm6242", __FILE__), - device_rtc_interface(mconfig, *this), - m_out_int_handler(*this) + : msm6242_device(mconfig, MSM6242, tag, owner, clock) { } -msm6242_device::msm6242_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *filename) - : device_t(mconfig, type, name, tag, owner, clock, shortname, filename), - device_rtc_interface(mconfig, *this), - m_out_int_handler(*this) +msm6242_device::msm6242_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) + , device_rtc_interface(mconfig, *this) + , m_out_int_handler(*this) { } @@ -185,8 +191,7 @@ void msm6242_device::irq(uint8_t irq_type) if (m_irq_flag == 1 && m_irq_type == irq_type) { // log if appropriate - if (LOG_IRQ) - logerror("%s: MSM6242 logging IRQ #%d\n", machine().describe_context(), (int) irq_type); + LOGIRQ("%s: MSM6242 logging IRQ #%u\n", machine().describe_context(), irq_type); // ...and assert the output line if (!m_out_int_handler.isnull()) @@ -491,8 +496,7 @@ READ8_MEMBER( msm6242_device::read ) default: result = 0x00; - if (LOG_UNMAPPED) - logerror("%s: MSM6242 unmapped offset %02x read\n", machine().describe_context(), offset); + LOGUNMAPPED("%s: MSM6242 unmapped offset %02x read\n", machine().describe_context(), offset); break; } @@ -527,8 +531,7 @@ WRITE8_MEMBER( msm6242_device::write ) m_irq_flag = 1; m_irq_type = (data & 0xc) >> 2; - if (LOG_IRQ_ENABLE) - logerror("%s: MSM6242 enabling irq '%s'\n", machine().describe_context(), irq_type_string(m_irq_type)); + LOGIRQENABLE("%s: MSM6242 enabling irq '%s'\n", machine().describe_context(), irq_type_string(m_irq_type)); } else { @@ -536,8 +539,7 @@ WRITE8_MEMBER( msm6242_device::write ) if ( !m_out_int_handler.isnull() ) m_out_int_handler( CLEAR_LINE ); - if (LOG_IRQ_ENABLE) - logerror("%s: MSM6242 disabling irq\n", machine().describe_context()); + LOGIRQENABLE("%s: MSM6242 disabling irq\n", machine().describe_context()); } break; @@ -555,8 +557,7 @@ WRITE8_MEMBER( msm6242_device::write ) break; default: - if (LOG_UNMAPPED) - logerror("%s: MSM6242 unmapped offset %02x written with %02x\n", machine().describe_context(), offset, data); + LOGUNMAPPED("%s: MSM6242 unmapped offset %02x written with %02x\n", machine().describe_context(), offset, data); break; } @@ -570,7 +571,7 @@ WRITE8_MEMBER( msm6242_device::write ) //------------------------------------------------- rtc62421_device::rtc62421_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : msm6242_device(mconfig, RTC62421, "RTC-62421", tag, owner, clock, "rtc62421", __FILE__) + : msm6242_device(mconfig, RTC62421, tag, owner, clock) { } @@ -580,7 +581,7 @@ rtc62421_device::rtc62421_device(const machine_config &mconfig, const char *tag, //------------------------------------------------- rtc62423_device::rtc62423_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : msm6242_device(mconfig, RTC62423, "RTC-62423", tag, owner, clock, "rtc62423", __FILE__) + : msm6242_device(mconfig, RTC62423, tag, owner, clock) { } @@ -590,7 +591,7 @@ rtc62423_device::rtc62423_device(const machine_config &mconfig, const char *tag, //------------------------------------------------- rtc72421_device::rtc72421_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : msm6242_device(mconfig, RTC72421, "RTC-72421", tag, owner, clock, "rtc72421", __FILE__) + : msm6242_device(mconfig, RTC72421, tag, owner, clock) { } @@ -600,6 +601,6 @@ rtc72421_device::rtc72421_device(const machine_config &mconfig, const char *tag, //------------------------------------------------- rtc72423_device::rtc72423_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : msm6242_device(mconfig, RTC72423, "RTC-72423", tag, owner, clock, "rtc72423", __FILE__) + : msm6242_device(mconfig, RTC72423, tag, owner, clock) { } diff --git a/src/devices/machine/msm6242.h b/src/devices/machine/msm6242.h index 89041c264fc..0a1ee9b1863 100644 --- a/src/devices/machine/msm6242.h +++ b/src/devices/machine/msm6242.h @@ -32,10 +32,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_MACHINE_MSM6242_H +#define MAME_MACHINE_MSM6242_H -#ifndef __MSM6242DEV_H__ -#define __MSM6242DEV_H__ +#pragma once #include "dirtc.h" @@ -46,21 +46,21 @@ // ======================> msm6242_device -class msm6242_device : public device_t, - public device_rtc_interface +class msm6242_device : public device_t, public device_rtc_interface { public: // construction/destruction msm6242_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - msm6242_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *filename); - template static devcb_base &set_out_int_handler(device_t &device, _Object object) { return downcast(device).m_out_int_handler.set_callback(object); } + template static devcb_base &set_out_int_handler(device_t &device, Object &&cb) { return downcast(device).m_out_int_handler.set_callback(std::forward(cb)); } // I/O operations DECLARE_WRITE8_MEMBER( write ); DECLARE_READ8_MEMBER( read ); protected: + msm6242_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -72,12 +72,12 @@ protected: virtual void rtc_clock_updated(int year, int month, int day, int day_of_week, int hour, int minute, int second) override; private: - static const int RTC_TICKS = ~0; + static constexpr int RTC_TICKS = ~0; - static const uint8_t IRQ_64THSECOND = 0; - static const uint8_t IRQ_SECOND = 1; - static const uint8_t IRQ_MINUTE = 2; - static const uint8_t IRQ_HOUR = 3; + static constexpr uint8_t IRQ_64THSECOND = 0; + static constexpr uint8_t IRQ_SECOND = 1; + static constexpr uint8_t IRQ_MINUTE = 2; + static constexpr uint8_t IRQ_HOUR = 3; // state uint8_t m_reg[3]; @@ -139,11 +139,11 @@ public: // device type definition -extern const device_type MSM6242; -extern const device_type RTC62421; -extern const device_type RTC62423; -extern const device_type RTC72421; -extern const device_type RTC72423; +DECLARE_DEVICE_TYPE(MSM6242, msm6242_device) +DECLARE_DEVICE_TYPE(RTC62421, rtc62421_device) +DECLARE_DEVICE_TYPE(RTC62423, rtc62423_device) +DECLARE_DEVICE_TYPE(RTC72421, rtc72421_device) +DECLARE_DEVICE_TYPE(RTC72423, rtc72423_device) -#endif /* __MSM6242DEV_H__ */ +#endif // MAME_MACHINE_MSM6242_H diff --git a/src/devices/machine/msm6253.cpp b/src/devices/machine/msm6253.cpp index 025e7d0d2d6..3c85f84879e 100644 --- a/src/devices/machine/msm6253.cpp +++ b/src/devices/machine/msm6253.cpp @@ -13,7 +13,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type MSM6253 = device_creator; +DEFINE_DEVICE_TYPE(MSM6253, msm6253_device, "msm6253", "OKI MSM6253 A/D Converter") //************************************************************************** // DEVICE DEFINITION @@ -24,14 +24,14 @@ const device_type MSM6253 = device_creator; //------------------------------------------------- msm6253_device::msm6253_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : device_t(mconfig, MSM6253, "MSM6253 A/D Converter", tag, owner, clock, "msm6253", __FILE__), - m_analog_ports(*this, {finder_base::DUMMY_TAG, finder_base::DUMMY_TAG, finder_base::DUMMY_TAG, finder_base::DUMMY_TAG}), - m_shift_register(0) + : device_t(mconfig, MSM6253, tag, owner, clock) + , m_analog_ports(*this, {finder_base::DUMMY_TAG, finder_base::DUMMY_TAG, finder_base::DUMMY_TAG, finder_base::DUMMY_TAG}) + , m_shift_register(0) { - m_analog_input_cb[0] = analog_port_read_delegate(FUNC(msm6253_device::port_read<0>), this); - m_analog_input_cb[1] = analog_port_read_delegate(FUNC(msm6253_device::port_read<1>), this); - m_analog_input_cb[2] = analog_port_read_delegate(FUNC(msm6253_device::port_read<2>), this); - m_analog_input_cb[3] = analog_port_read_delegate(FUNC(msm6253_device::port_read<3>), this); + m_analog_input_cb[0] = port_read_delegate(FUNC(msm6253_device::port_read<0>), this); + m_analog_input_cb[1] = port_read_delegate(FUNC(msm6253_device::port_read<1>), this); + m_analog_input_cb[2] = port_read_delegate(FUNC(msm6253_device::port_read<2>), this); + m_analog_input_cb[3] = port_read_delegate(FUNC(msm6253_device::port_read<3>), this); } //------------------------------------------------- diff --git a/src/devices/machine/msm6253.h b/src/devices/machine/msm6253.h index 68db51d3045..ce133438b30 100644 --- a/src/devices/machine/msm6253.h +++ b/src/devices/machine/msm6253.h @@ -18,10 +18,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_MACHINE_MSM6253_H +#define MAME_MACHINE_MSM6253_H -#ifndef DEVICES_MACHINE_MSM6253_H -#define DEVICES_MACHINE_MSM6253_H +#pragma once //************************************************************************** // CONFIGURATION MACROS @@ -37,41 +37,41 @@ msm6253_device::static_set_input_tag(*device, 3, "^" _input); #define MCFG_MSM6253_IN0_ANALOG_READ(_class, _method) \ - msm6253_device::static_set_input_cb(*device, 0, analog_port_read_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); + msm6253_device::static_set_input_cb(*device, 0, msm6253_device::port_read_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); #define MCFG_MSM6253_IN1_ANALOG_READ(_class, _method) \ - msm6253_device::static_set_input_cb(*device, 1, analog_port_read_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); + msm6253_device::static_set_input_cb(*device, 1, msm6253_device::port_read_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); #define MCFG_MSM6253_IN2_ANALOG_READ(_class, _method) \ - msm6253_device::static_set_input_cb(*device, 2, analog_port_read_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); + msm6253_device::static_set_input_cb(*device, 2, msm6253_device::port_read_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); #define MCFG_MSM6253_IN3_ANALOG_READ(_class, _method) \ - msm6253_device::static_set_input_cb(*device, 3, analog_port_read_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); + msm6253_device::static_set_input_cb(*device, 3, msm6253_device::port_read_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); #define MCFG_MSM6253_IN0_ANALOG_DEVREAD(_tag, _class, _method) \ - msm6253_device::static_set_input_cb(*device, 0, analog_port_read_delegate(&_class::_method, #_class "::" #_method, _tag)); + msm6253_device::static_set_input_cb(*device, 0, msm6253_device::port_read_delegate(&_class::_method, #_class "::" #_method, _tag)); #define MCFG_MSM6253_IN1_ANALOG_DEVREAD(_tag, _class, _method) \ - msm6253_device::static_set_input_cb(*device, 1, analog_port_read_delegate(&_class::_method, #_class "::" #_method, _tag)); + msm6253_device::static_set_input_cb(*device, 1, msm6253_device::port_read_delegate(&_class::_method, #_class "::" #_method, _tag)); #define MCFG_MSM6253_IN2_ANALOG_DEVREAD(_tag, _class, _method) \ - msm6253_device::static_set_input_cb(*device, 2, analog_port_read_delegate(&_class::_method, #_class "::" #_method, _tag)); + msm6253_device::static_set_input_cb(*device, 2, msm6253_device::port_read_delegate(&_class::_method, #_class "::" #_method, _tag)); #define MCFG_MSM6253_IN3_ANALOG_DEVREAD(_tag, _class, _method) \ - msm6253_device::static_set_input_cb(*device, 3, analog_port_read_delegate(&_class::_method, #_class "::" #_method, _tag)); + msm6253_device::static_set_input_cb(*device, 3, msm6253_device::port_read_delegate(&_class::_method, #_class "::" #_method, _tag)); //************************************************************************** // TYPE DEFINITIONS //************************************************************************** -typedef device_delegate analog_port_read_delegate; - // ======================> msm6253_device class msm6253_device : public device_t { public: + typedef device_delegate port_read_delegate; + // construction/destruction msm6253_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); // static configuration static void static_set_input_tag(device_t &device, int port, const char *tag) { downcast(device).m_analog_ports[port].set_tag(tag); } - static void static_set_input_cb(device_t &device, int port, analog_port_read_delegate &&cb) { downcast(device).m_analog_input_cb[port] = std::move(cb); } + static void static_set_input_cb(device_t &device, int port, port_read_delegate &&cb) { downcast(device).m_analog_input_cb[port] = std::move(cb); } // write handlers WRITE8_MEMBER(address_w); @@ -92,13 +92,13 @@ private: // input configuration optional_ioport_array<4> m_analog_ports; - analog_port_read_delegate m_analog_input_cb[4]; + port_read_delegate m_analog_input_cb[4]; // private data u8 m_shift_register; }; // device type definition -extern const device_type MSM6253; +DECLARE_DEVICE_TYPE(MSM6253, msm6253_device) #endif // DEVICES_MACHINE_MSM6253_H diff --git a/src/devices/machine/ncr5380.cpp b/src/devices/machine/ncr5380.cpp index 23e1ab1b821..adc309f6b60 100644 --- a/src/devices/machine/ncr5380.cpp +++ b/src/devices/machine/ncr5380.cpp @@ -24,7 +24,9 @@ #include "emu.h" #include "ncr5380.h" -#define VERBOSE (0) +//#define VERBOSE 1 +#include "logmacro.h" + static const char *const rnames[] = { @@ -72,14 +74,14 @@ static int get_cmd_len(int cbyte) // LIVE DEVICE //************************************************************************** -const device_type NCR5380 = device_creator; +DEFINE_DEVICE_TYPE(NCR5380, ncr5380_device, "ncr5380", "NCR 5380 SCSI") //------------------------------------------------- // ncr5380_device - constructor/destructor //------------------------------------------------- ncr5380_device::ncr5380_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - legacy_scsi_host_adapter(mconfig, NCR5380, "5380 SCSI", tag, owner, clock, "ncr5380", __FILE__), + legacy_scsi_host_adapter(mconfig, NCR5380, tag, owner, clock), m_irq_cb(*this) { } @@ -212,8 +214,7 @@ uint8_t ncr5380_device::ncr5380_read_reg(uint32_t offset) break; } - if (VERBOSE) - logerror("%s NCR5380: read %s (reg %d) = %02x\n", machine().describe_context(), rnames[reg], reg, rv); + LOG("%s NCR5380: read %s (reg %d) = %02x\n", machine().describe_context(), rnames[reg], reg, rv); return rv; } @@ -222,8 +223,7 @@ void ncr5380_device::ncr5380_write_reg(uint32_t offset, uint8_t data) { int reg = offset & 7; - if (VERBOSE) - logerror("%s NCR5380: %02x to %s (reg %d)\n", machine().describe_context(), data, wnames[reg], reg); + LOG("%s NCR5380: %02x to %s (reg %d)\n", machine().describe_context(), data, wnames[reg], reg); switch( reg ) { @@ -309,14 +309,12 @@ void ncr5380_device::ncr5380_write_reg(uint32_t offset, uint8_t data) // is the current command complete? if (get_cmd_len(m_5380_Command[0]) == m_cmd_ptr) { - if (VERBOSE) - logerror("%s NCR5380: Command (to ID %d): %x %x %x %x %x %x %x %x %x %x\n", machine().describe_context(), m_last_id, m_5380_Command[0], m_5380_Command[1], m_5380_Command[2], m_5380_Command[3], m_5380_Command[4], m_5380_Command[5], m_5380_Command[6], m_5380_Command[7], m_5380_Command[8], m_5380_Command[9]); + LOG("%s NCR5380: Command (to ID %d): %x %x %x %x %x %x %x %x %x %x\n", machine().describe_context(), m_last_id, m_5380_Command[0], m_5380_Command[1], m_5380_Command[2], m_5380_Command[3], m_5380_Command[4], m_5380_Command[5], m_5380_Command[6], m_5380_Command[7], m_5380_Command[8], m_5380_Command[9]); send_command(&m_5380_Command[0], 16); m_d_limit = get_length(); - if (VERBOSE) - logerror("NCR5380: Command returned %d bytes\n", m_d_limit); + LOG("NCR5380: Command returned %d bytes\n", m_d_limit); m_d_ptr = 0; @@ -347,14 +345,12 @@ void ncr5380_device::ncr5380_write_reg(uint32_t offset, uint8_t data) if (select(m_last_id)) { - if (VERBOSE) - logerror("NCR5380: Giving the bus for ID %d\n", m_last_id); + LOG("NCR5380: Giving the bus for ID %d\n", m_last_id); m_5380_Registers[R5380_BUSSTATUS] |= 0x40; } else { - if (VERBOSE) - logerror("NCR5380: Rejecting the bus for ID %d\n", m_last_id); + LOG("NCR5380: Rejecting the bus for ID %d\n", m_last_id); m_5380_Registers[R5380_BUSSTATUS] &= ~0x40; } } diff --git a/src/devices/machine/ncr5380.h b/src/devices/machine/ncr5380.h index 7acf34fe4f0..7c1c8d49a03 100644 --- a/src/devices/machine/ncr5380.h +++ b/src/devices/machine/ncr5380.h @@ -5,8 +5,10 @@ * */ -#ifndef _NCR5380_H_ -#define _NCR5380_H_ +#ifndef MAME_MACHINE_NCR5380_H +#define MAME_MACHINE_NCR5380_H + +#pragma once #include "legscsi.h" @@ -43,7 +45,7 @@ public: // construction/destruction ncr5380_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_irq_callback(device_t &device, _Object object) { return downcast(device).m_irq_cb.set_callback(object); } + template static devcb_base &set_irq_callback(device_t &device, Object &&cb) { return downcast(device).m_irq_cb.set_callback(std::forward(cb)); } // our API uint8_t ncr5380_read_reg(uint32_t offset); @@ -65,6 +67,6 @@ private: }; // device type definition -extern const device_type NCR5380; +DECLARE_DEVICE_TYPE(NCR5380, ncr5380_device) -#endif +#endif // MAME_MACHINE_NCR5380_H diff --git a/src/devices/machine/ncr5380n.cpp b/src/devices/machine/ncr5380n.cpp index fb57669f284..e52f2ff73bc 100644 --- a/src/devices/machine/ncr5380n.cpp +++ b/src/devices/machine/ncr5380n.cpp @@ -17,7 +17,7 @@ #include "emu.h" #include "ncr5380n.h" -const device_type NCR5380N = device_creator; +DEFINE_DEVICE_TYPE(NCR5380N, ncr5380n_device, "ncr5380_new", "NCR 5380 SCSI (new)") DEVICE_ADDRESS_MAP_START(map, 8, ncr5380n_device) AM_RANGE(0x0, 0x0) AM_READWRITE(scsidata_r, outdata_w) @@ -31,11 +31,12 @@ DEVICE_ADDRESS_MAP_START(map, 8, ncr5380n_device) ADDRESS_MAP_END ncr5380n_device::ncr5380n_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nscsi_device(mconfig, NCR5380N, "5380 SCSI (new)", tag, owner, clock, "ncr5380_new", __FILE__), tm(nullptr), status(0), istatus(0), m_mode(0), - m_outdata(0), m_busstatus(0), m_dmalatch(0), m_icommand(0), m_tcommand(0), clock_conv(0), sync_offset(0), sync_period(0), bus_id(0), select_timeout(0), - seq(0), tcount(0), mode(0), state(0), irq(false), drq(false), - m_irq_handler(*this), - m_drq_handler(*this) + : nscsi_device(mconfig, NCR5380N, tag, owner, clock) + , tm(nullptr), status(0), istatus(0), m_mode(0) + , m_outdata(0), m_busstatus(0), m_dmalatch(0), m_icommand(0), m_tcommand(0), clock_conv(0), sync_offset(0), sync_period(0), bus_id(0), select_timeout(0) + , seq(0), tcount(0), mode(0), state(0), irq(false), drq(false) + , m_irq_handler(*this) + , m_drq_handler(*this) { } diff --git a/src/devices/machine/ncr5380n.h b/src/devices/machine/ncr5380n.h index fdb83159b50..28f7f440925 100644 --- a/src/devices/machine/ncr5380n.h +++ b/src/devices/machine/ncr5380n.h @@ -8,8 +8,10 @@ *********************************************************************/ -#ifndef NCR5380N_H -#define NCR5380N_H +#ifndef MAME_MACHINE_NCR5380N_H +#define MAME_MACHINE_NCR5380N_H + +#pragma once #include "machine/nscsi_bus.h" @@ -25,8 +27,8 @@ public: ncr5380n_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // static configuration helpers - template static devcb_base &set_irq_handler(device_t &device, _Object object) { return downcast(device).m_irq_handler.set_callback(object); } - template static devcb_base &set_drq_handler(device_t &device, _Object object) { return downcast(device).m_drq_handler.set_callback(object); } + template static devcb_base &set_irq_handler(device_t &device, Object &&cb) { return downcast(device).m_irq_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_drq_handler(device_t &device, Object &&cb) { return downcast(device).m_drq_handler.set_callback(std::forward(cb)); } DECLARE_ADDRESS_MAP(map, 8); @@ -222,6 +224,6 @@ private: devcb_write_line m_drq_handler; }; -extern const device_type NCR5380N; +DECLARE_DEVICE_TYPE(NCR5380N, ncr5380n_device) -#endif +#endif // MAME_MACHINE_NCR5380N_H diff --git a/src/devices/machine/ncr5390.cpp b/src/devices/machine/ncr5390.cpp index f5fb37be436..729e486856d 100644 --- a/src/devices/machine/ncr5390.cpp +++ b/src/devices/machine/ncr5390.cpp @@ -6,7 +6,7 @@ #define DELAY_HACK -const device_type NCR5390 = device_creator; +DEFINE_DEVICE_TYPE(NCR5390, ncr5390_device, "ncr5390", "NCR 5390 SCSI") DEVICE_ADDRESS_MAP_START(map, 8, ncr5390_device) AM_RANGE(0x0, 0x0) AM_READWRITE(tcount_lo_r, tcount_lo_w) @@ -22,10 +22,11 @@ DEVICE_ADDRESS_MAP_START(map, 8, ncr5390_device) ADDRESS_MAP_END ncr5390_device::ncr5390_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nscsi_device(mconfig, NCR5390, "5390 SCSI", tag, owner, clock, "ncr5390", __FILE__), tm(nullptr), config(0), status(0), istatus(0), clock_conv(0), sync_offset(0), sync_period(0), bus_id(0), - select_timeout(0), seq(0), tcount(0), mode(0), fifo_pos(0), command_pos(0), state(0), xfr_phase(0), command_length(0), dma_dir(0), irq(false), drq(false), - m_irq_handler(*this), - m_drq_handler(*this) + : nscsi_device(mconfig, NCR5390, tag, owner, clock) + , tm(nullptr), config(0), status(0), istatus(0), clock_conv(0), sync_offset(0), sync_period(0), bus_id(0) + , select_timeout(0), seq(0), tcount(0), mode(0), fifo_pos(0), command_pos(0), state(0), xfr_phase(0), command_length(0), dma_dir(0), irq(false), drq(false) + , m_irq_handler(*this) + , m_drq_handler(*this) { } diff --git a/src/devices/machine/ncr5390.h b/src/devices/machine/ncr5390.h index 200e1acb57e..018f9fb5098 100644 --- a/src/devices/machine/ncr5390.h +++ b/src/devices/machine/ncr5390.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Olivier Galibert -#ifndef NCR5390_H -#define NCR5390_H +#ifndef MAME_MACHINE_NCR5390_H +#define MAME_MACHINE_NCR5390_H + +#pragma once #include "machine/nscsi_bus.h" @@ -17,8 +19,8 @@ public: ncr5390_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // static configuration helpers - template static devcb_base &set_irq_handler(device_t &device, _Object object) { return downcast(device).m_irq_handler.set_callback(object); } - template static devcb_base &set_drq_handler(device_t &device, _Object object) { return downcast(device).m_drq_handler.set_callback(object); } + template static devcb_base &set_irq_handler(device_t &device, Object &&cb) { return downcast(device).m_irq_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_drq_handler(device_t &device, Object &&cb) { return downcast(device).m_drq_handler.set_callback(std::forward(cb)); } DECLARE_ADDRESS_MAP(map, 8); @@ -227,6 +229,6 @@ private: devcb_write_line m_drq_handler; }; -extern const device_type NCR5390; +DECLARE_DEVICE_TYPE(NCR5390, ncr5390_device) -#endif +#endif // MAME_MACHINE_NCR5390_H diff --git a/src/devices/machine/ncr539x.cpp b/src/devices/machine/ncr539x.cpp index ac7cfcd7698..eedc81e2d05 100644 --- a/src/devices/machine/ncr539x.cpp +++ b/src/devices/machine/ncr539x.cpp @@ -13,8 +13,14 @@ #include "emu.h" #include "ncr539x.h" -#define VERBOSE (0) -#define VERBOSE_READS (0) +#define LOG_GENERAL (1U << 0) +#define LOG_READS (1U << 1) + +//#define VERBOSE (LOG_GENERAL | LOG_READS) +//#define LOG_OUTPUT_FUNC printf +#include "logmacro.h" + +#define LOGREADS(...) LOGMASKED(LOG_READS, __VA_ARGS__) enum { @@ -50,8 +56,6 @@ enum #define CR2_GENERATE_REGISTER_PARITY 0x02 #define CR2_GENERATE_DATA_PARITY 0x01 -#if VERBOSE -#if VERBOSE_READS static const char *rdregs[16] = { "Transfer count LSB", // 0 "Transfer count MSB", // 1 @@ -70,7 +74,6 @@ static const char *rdregs[16] = { "Transfer count HSB/Chip ID", "0xF" }; -#endif static const char *wrregs[16] = { "Start Transfer count LSB", @@ -90,7 +93,6 @@ static const char *wrregs[16] = { "Start Transfer count HSB", "Data Alignment" }; -#endif // get the length of a SCSI command based on its command byte type static int get_cmd_len(int cbyte) @@ -110,14 +112,14 @@ static int get_cmd_len(int cbyte) // LIVE DEVICE //************************************************************************** -const device_type NCR539X = device_creator; +DEFINE_DEVICE_TYPE(NCR539X, ncr539x_device, "ncr539x", "NCR/AMD 5394/5396 SCSI") //------------------------------------------------- // ncr539x_device - constructor/destructor //------------------------------------------------- ncr539x_device::ncr539x_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - legacy_scsi_host_adapter(mconfig, NCR539X, "539x SCSI", tag, owner, clock, "ncr539x", __FILE__), + legacy_scsi_host_adapter(mconfig, NCR539X, tag, owner, clock), m_out_irq_cb(*this), m_out_drq_cb(*this) { @@ -199,9 +201,7 @@ void ncr539x_device::device_timer(emu_timer &timer, device_timer_id tid, int par m_fifo_ptr = 0; m_selected = true; - #if VERBOSE - printf("Selecting w/o ATN, irq_status = %02x, status = %02x!\n", m_irq_status, m_status); - #endif + LOG("Selecting w/o ATN, irq_status = %02x, status = %02x!\n", m_irq_status, m_status); // if DMA is not enabled, there should already be a command loaded into the FIFO if (!(m_command & 0x80)) @@ -212,9 +212,7 @@ void ncr539x_device::device_timer(emu_timer &timer, device_timer_id tid, int par } else { - #if VERBOSE - printf("Select failed, no device @ ID %d!\n", m_last_id); - #endif + LOG("Select failed, no device @ ID %d!\n", m_last_id); m_status |= MAIN_STATUS_INTERRUPT; m_irq_status |= IRQ_STATUS_DISCONNECTED; } @@ -230,9 +228,7 @@ void ncr539x_device::device_timer(emu_timer &timer, device_timer_id tid, int par m_status |= MAIN_STATUS_INTERRUPT | SCSI_PHASE_COMMAND; m_fifo_ptr = 0; m_selected = true; - #if VERBOSE - printf("Selecting with ATN, irq_status = %02x, status = %02x!\n", m_irq_status, m_status); - #endif + LOG("Selecting with ATN, irq_status = %02x, status = %02x!\n", m_irq_status, m_status); // if DMA is not enabled, there should already be a command loaded into the FIFO if (!(m_command & 0x80)) @@ -243,9 +239,7 @@ void ncr539x_device::device_timer(emu_timer &timer, device_timer_id tid, int par } else { - #if VERBOSE - printf("Select failed, no device @ ID %d!\n", m_last_id); - #endif + LOG("Select failed, no device @ ID %d!\n", m_last_id); m_status |= MAIN_STATUS_INTERRUPT; m_irq_status |= IRQ_STATUS_DISCONNECTED; } @@ -253,9 +247,7 @@ void ncr539x_device::device_timer(emu_timer &timer, device_timer_id tid, int par break; case 0x11: // initiator command complete - #if VERBOSE - printf("Initiator command complete\n"); - #endif + LOG("Initiator command complete\n"); m_irq_status = IRQ_STATUS_SERVICE_REQUEST; m_status &= ~7; // clear phase bits m_status |= MAIN_STATUS_INTERRUPT | SCSI_PHASE_DATAIN; // go to data in phase (?) @@ -272,9 +264,7 @@ void ncr539x_device::device_timer(emu_timer &timer, device_timer_id tid, int par break; case 0x12: // message accepted - #if VERBOSE - printf("Message accepted\n"); - #endif + LOG("Message accepted\n"); m_irq_status = IRQ_STATUS_SERVICE_REQUEST; m_status |= MAIN_STATUS_INTERRUPT; m_out_irq_cb(ASSERT_LINE); @@ -294,11 +284,7 @@ READ8_MEMBER( ncr539x_device::read ) { uint8_t rv = 0; - #if VERBOSE - #if VERBOSE_READS - printf("539x: Read @ %s (%02x) (PC=%x) (status %02x irq_status %02x)\n", rdregs[offset], offset, space.device().safe_pc(), m_status, m_irq_status); - #endif - #endif + LOGREADS("539x: Read @ %s (%02x) (PC=%x) (status %02x irq_status %02x)\n", rdregs[offset], offset, space.device().safe_pc(), m_status, m_irq_status); switch (offset) { @@ -327,9 +313,7 @@ READ8_MEMBER( ncr539x_device::read ) m_xfer_count--; update_fifo_internal_state(fifo_bytes); - #if VERBOSE - printf("Read %02x from FIFO[%d], FIFO now contains %d bytes (PC=%x, m_buffer_remaining %x)\n", rv, m_fifo_read_ptr-1, fifo_bytes, space.device().safe_pc(), m_buffer_remaining); - #endif + LOG("Read %02x from FIFO[%d], FIFO now contains %d bytes (PC=%x, m_buffer_remaining %x)\n", rv, m_fifo_read_ptr-1, fifo_bytes, space.device().safe_pc(), m_buffer_remaining); if (fifo_bytes == 0) { @@ -348,15 +332,11 @@ READ8_MEMBER( ncr539x_device::read ) m_buffer_remaining -= fifo_fill_size; m_fifo_ptr = 0; update_fifo_internal_state(fifo_fill_size); - #if VERBOSE - printf("Refreshing FIFO (%x remaining from transfer, %x in buffer, %x in total)\n", m_xfer_count, m_buffer_remaining, m_total_data); - #endif + LOG("Refreshing FIFO (%x remaining from transfer, %x in buffer, %x in total)\n", m_xfer_count, m_buffer_remaining, m_total_data); } else { - #if VERBOSE - printf("FIFO empty, asserting service request (buffer_remaining %x)\n", m_buffer_remaining); - #endif + LOG("FIFO empty, asserting service request (buffer_remaining %x)\n", m_buffer_remaining); m_irq_status = IRQ_STATUS_SERVICE_REQUEST; m_status &= 0x7; // clear everything but the phase bits m_status |= MAIN_STATUS_INTERRUPT | MAIN_STATUS_COUNT_TO_ZERO; @@ -365,9 +345,7 @@ READ8_MEMBER( ncr539x_device::read ) // if no data at all, drop the phase if ((m_buffer_remaining + m_total_data) == 0) { - #if VERBOSE - printf("Out of data, setting phase STATUS\n"); - #endif + LOG("Out of data, setting phase STATUS\n"); m_status &= ~0x7; m_status |= SCSI_PHASE_STATUS; } @@ -436,10 +414,8 @@ READ8_MEMBER( ncr539x_device::read ) WRITE8_MEMBER( ncr539x_device::write ) { - #if VERBOSE //if (offset != 2) - printf("539x: Write %02x @ %s (%02x) (PC=%x)\n", data, wrregs[offset], offset, space.device().safe_pc()); - #endif + LOG("539x: Write %02x @ %s (%02x) (PC=%x)\n", data, wrregs[offset], offset, space.device().safe_pc()); switch (offset) { @@ -509,9 +485,7 @@ WRITE8_MEMBER( ncr539x_device::write ) int phase; phase = get_phase(); - #if VERBOSE - printf("Information transfer: phase %d buffer remaining %x\n", phase, m_buffer_remaining); - #endif + LOG("Information transfer: phase %d buffer remaining %x\n", phase, m_buffer_remaining); if (phase == SCSI_PHASE_DATAIN) // target -> initiator transfer { @@ -525,9 +499,7 @@ WRITE8_MEMBER( ncr539x_device::write ) amtToGet = m_total_data; } - #if VERBOSE - printf("amtToGet = %x\n", amtToGet); - #endif + LOG("amtToGet = %x\n", amtToGet); if (amtToGet > 0) { @@ -554,9 +526,7 @@ WRITE8_MEMBER( ncr539x_device::write ) fifo_fill_size = m_dma_size; } - #if VERBOSE - printf("filling FIFO from buffer[%x] for %x bytes\n", m_buffer_offset, fifo_fill_size); - #endif + LOG("filling FIFO from buffer[%x] for %x bytes\n", m_buffer_offset, fifo_fill_size); memcpy(m_fifo, &m_buffer[m_buffer_offset], fifo_fill_size); m_buffer_offset += fifo_fill_size; @@ -570,9 +540,7 @@ WRITE8_MEMBER( ncr539x_device::write ) m_status |= MAIN_STATUS_COUNT_TO_ZERO; - #if VERBOSE - printf("Information transfer: put %02x bytes into FIFO (dma size %x) (buffer remaining %x)\n", m_fifo_internal_state & 0x1f, m_dma_size, m_buffer_remaining); - #endif + LOG("Information transfer: put %02x bytes into FIFO (dma size %x) (buffer remaining %x)\n", m_fifo_internal_state & 0x1f, m_dma_size, m_buffer_remaining); } else if (phase == SCSI_PHASE_DATAOUT) { @@ -581,9 +549,7 @@ WRITE8_MEMBER( ncr539x_device::write ) { m_xfer_count = 0x10000; } - #if VERBOSE - printf("dma_size %x, xfer_count %x\n", m_dma_size, m_xfer_count); - #endif + LOG("dma_size %x, xfer_count %x\n", m_dma_size, m_xfer_count); m_status &= ~MAIN_STATUS_COUNT_TO_ZERO; m_fifo_ptr = 0; m_buffer_offset = 0; @@ -593,9 +559,7 @@ WRITE8_MEMBER( ncr539x_device::write ) break; case 0x24: // Terminate steps - #if VERBOSE - printf("Terminate steps\n"); - #endif + LOG("Terminate steps\n"); m_irq_status = IRQ_STATUS_SUCCESS | IRQ_STATUS_DISCONNECTED; m_status |= MAIN_STATUS_INTERRUPT; m_out_irq_cb(ASSERT_LINE); @@ -604,18 +568,14 @@ WRITE8_MEMBER( ncr539x_device::write ) break; case 0x27: // Disconnect - #if VERBOSE - printf("Disconnect\n"); - #endif + LOG("Disconnect\n"); m_irq_status = IRQ_STATUS_SUCCESS; m_status |= MAIN_STATUS_INTERRUPT; m_out_irq_cb(ASSERT_LINE); break; case 0x44: // Enable selection/reselection - #if VERBOSE - printf("Enable selection/reselection\n"); - #endif + LOG("Enable selection/reselection\n"); m_irq_status = IRQ_STATUS_SUCCESS; m_status |= MAIN_STATUS_INTERRUPT; m_out_irq_cb(ASSERT_LINE); @@ -630,9 +590,7 @@ WRITE8_MEMBER( ncr539x_device::write ) m_status |= MAIN_STATUS_INTERRUPT | SCSI_PHASE_COMMAND; m_fifo_ptr = 0; m_selected = true; - #if VERBOSE - printf("Reselecting with ATN3, irq_status = %02x, status = %02x!\n", m_irq_status, m_status); - #endif + LOG("Reselecting with ATN3, irq_status = %02x, status = %02x!\n", m_irq_status, m_status); // if DMA is not enabled, there should already be a command loaded into the FIFO if (!(m_command & 0x80)) @@ -643,9 +601,7 @@ WRITE8_MEMBER( ncr539x_device::write ) } else { - #if VERBOSE - printf("Reselect with ATN3 failed, no device @ ID %d!\n", m_last_id); - #endif + LOG("Reselect with ATN3 failed, no device @ ID %d!\n", m_last_id); m_status |= MAIN_STATUS_INTERRUPT; m_irq_status |= IRQ_STATUS_DISCONNECTED; } @@ -653,9 +609,7 @@ WRITE8_MEMBER( ncr539x_device::write ) break; default: // other commands are not instantaneous - #if VERBOSE - printf("Setting timer for command %02x\n", data); - #endif + LOG("Setting timer for command %02x\n", data); // 1x commands happen much faster if ((m_command & 0x70) == 0x10) { @@ -733,9 +687,7 @@ void ncr539x_device::exec_fifo() length = get_length(); phase = get_phase(); - #if VERBOSE - printf("Command executed (id %d), new phase %d, length %x\n", m_last_id, phase, length); - #endif + LOG("Command executed (id %d), new phase %d, length %x\n", m_last_id, phase, length); m_buffer_offset = m_buffer_size; m_buffer_remaining = 0; @@ -759,9 +711,7 @@ void ncr539x_device::fifo_write(uint8_t data) if (phase != SCSI_PHASE_DATAOUT) { - #if VERBOSE - printf("539x: Write %02x @ FIFO[%x]\n", data, m_fifo_ptr); - #endif + LOG("539x: Write %02x @ FIFO[%x]\n", data, m_fifo_ptr); m_fifo[m_fifo_ptr++] = data; update_fifo_internal_state(m_fifo_ptr); @@ -775,9 +725,7 @@ void ncr539x_device::fifo_write(uint8_t data) m_buffer[m_buffer_offset++] = data; m_xfer_count--; m_total_data--; - #if VERBOSE - printf("539x: Write %02x @ buffer[%x], xfer_count %x, total %x\n", data, m_buffer_offset-1, m_xfer_count, m_total_data); - #endif + LOG("539x: Write %02x @ buffer[%x], xfer_count %x, total %x\n", data, m_buffer_offset-1, m_xfer_count, m_total_data); // default to flushing our entire buffer int flush_size = m_buffer_size; @@ -790,9 +738,7 @@ void ncr539x_device::fifo_write(uint8_t data) if ((m_buffer_offset == flush_size) || (m_xfer_count == 0)) { - #if VERBOSE - printf("Flushing buffer to device, %x bytes left in buffer (%x total)\n", m_xfer_count, m_total_data); - #endif + LOG("Flushing buffer to device, %x bytes left in buffer (%x total)\n", m_xfer_count, m_total_data); write_data(m_buffer, flush_size); m_buffer_offset = 0; @@ -805,9 +751,7 @@ void ncr539x_device::fifo_write(uint8_t data) if ((m_xfer_count == 0) && (m_total_data == 0)) { - #if VERBOSE - printf("End of write, asserting service request\n"); - #endif + LOG("End of write, asserting service request\n"); m_buffer_offset = 0; m_irq_status = IRQ_STATUS_SERVICE_REQUEST; diff --git a/src/devices/machine/ncr539x.h b/src/devices/machine/ncr539x.h index 3803a1ca975..56a34e58e85 100644 --- a/src/devices/machine/ncr539x.h +++ b/src/devices/machine/ncr539x.h @@ -5,15 +5,12 @@ * */ -#ifndef _NCR539x_H_ -#define _NCR539x_H_ +#ifndef MAME_MACHINE_NCR539X_H +#define MAME_MACHINE_NCR539X_H -#include "legscsi.h" +#pragma once -//// 539x registers -//enum -//{ -//}; +#include "legscsi.h" // device stuff @@ -29,8 +26,8 @@ public: // construction/destruction ncr539x_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_out_irq_callback(device_t &device, _Object object) { return downcast(device).m_out_irq_cb.set_callback(object); } - template static devcb_base &set_out_drq_callback(device_t &device, _Object object) { return downcast(device).m_out_drq_cb.set_callback(object); } + template static devcb_base &set_out_irq_callback(device_t &device, Object &&cb) { return downcast(device).m_out_irq_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_drq_callback(device_t &device, Object &&cb) { return downcast(device).m_out_drq_cb.set_callback(std::forward(cb)); } // our API DECLARE_READ8_MEMBER(read); @@ -86,5 +83,6 @@ private: }; // device type definition -extern const device_type NCR539X; -#endif +DECLARE_DEVICE_TYPE(NCR539X, ncr539x_device) + +#endif // MAME_MACHINE_NCR539X_H diff --git a/src/devices/machine/netlist.cpp b/src/devices/machine/netlist.cpp index 953ad23c72b..5029b6a973c 100644 --- a/src/devices/machine/netlist.cpp +++ b/src/devices/machine/netlist.cpp @@ -27,54 +27,76 @@ #include -//#define LOG_DEV_CALLS(x) printf x -#define LOG_DEV_CALLS(x) do { } while (0) -const device_type NETLIST_CORE = device_creator; -const device_type NETLIST_CPU = device_creator; -const device_type NETLIST_SOUND = device_creator; +DEFINE_DEVICE_TYPE(NETLIST_CORE, netlist_mame_device, "netlist_core", "Netlist Core Device") +DEFINE_DEVICE_TYPE(NETLIST_CPU, netlist_mame_cpu_device, "netlist_cpu", "Netlist CPU Device") +DEFINE_DEVICE_TYPE(NETLIST_SOUND, netlist_mame_sound_device, "netlist_sound", "Netlist Sound Device") /* subdevices */ -const device_type NETLIST_ANALOG_INPUT = device_creator; -const device_type NETLIST_INT_INPUT = device_creator; -const device_type NETLIST_RAM_POINTER = device_creator; -const device_type NETLIST_LOGIC_INPUT = device_creator; -const device_type NETLIST_STREAM_INPUT = device_creator; +DEFINE_DEVICE_TYPE(NETLIST_ANALOG_INPUT, netlist_mame_analog_input_device, "nl_analog_in", "Netlist Analog Input") +DEFINE_DEVICE_TYPE(NETLIST_INT_INPUT, netlist_mame_int_input_device, "nl_int_out", "Netlist Integer Output") +DEFINE_DEVICE_TYPE(NETLIST_RAM_POINTER, netlist_mame_ram_pointer_device, "nl_ram_ptr", "Netlist RAM Pointer") +DEFINE_DEVICE_TYPE(NETLIST_LOGIC_INPUT, netlist_mame_logic_input_device, "nl_logic_in", "Netlist Logic Input") +DEFINE_DEVICE_TYPE(NETLIST_STREAM_INPUT, netlist_mame_stream_input_device, "nl_stream_in", "Netlist Stream Input") + +DEFINE_DEVICE_TYPE(NETLIST_LOGIC_OUTPUT, netlist_mame_logic_output_device, "nl_logic_out", "Netlist Logic Output") +DEFINE_DEVICE_TYPE(NETLIST_ANALOG_OUTPUT, netlist_mame_analog_output_device, "nl_analog_out", "Netlist Analog Output") +DEFINE_DEVICE_TYPE(NETLIST_STREAM_OUTPUT, netlist_mame_stream_output_device, "nl_stream_out", "Netlist Stream Output") -const device_type NETLIST_LOGIC_OUTPUT = device_creator; -const device_type NETLIST_ANALOG_OUTPUT = device_creator; -const device_type NETLIST_STREAM_OUTPUT = device_creator; // ---------------------------------------------------------------------------------------- // Special netlist extension devices .... // ---------------------------------------------------------------------------------------- -class netlist_mame_device_t; - -class netlist_mame_t : public netlist::netlist_t +class netlist_mame_device::netlist_mame_t : public netlist::netlist_t { public: - netlist_mame_t(netlist_mame_device_t &parent, const pstring &aname) - : netlist::netlist_t(aname), - m_parent(parent) - {} - virtual ~netlist_mame_t() { }; + netlist_mame_t(netlist_mame_device &parent, const pstring &aname) + : netlist::netlist_t(aname) + , m_parent(parent) + { + } + + running_machine &machine() { return m_parent.machine(); } - inline running_machine &machine(); - netlist_mame_device_t &parent() { return m_parent; } + netlist_mame_device &parent() { return m_parent; } protected: - - void vlog(const plib::plog_level &l, const pstring &ls) const override; + void vlog(const plib::plog_level &l, const pstring &ls) const override + { + switch (l) + { + case plib::plog_level::DEBUG: + m_parent.logerror("netlist DEBUG: %s\n", ls.c_str()); + break; + case plib::plog_level::INFO: + m_parent.logerror("netlist INFO: %s\n", ls.c_str()); + break; + case plib::plog_level::VERBOSE: + m_parent.logerror("netlist VERBOSE: %s\n", ls.c_str()); + break; + case plib::plog_level::WARNING: + m_parent.logerror("netlist WARNING: %s\n", ls.c_str()); + break; + case plib::plog_level::ERROR: + m_parent.logerror("netlist ERROR: %s\n", ls.c_str()); + break; + case plib::plog_level::FATAL: + emu_fatalerror error("netlist ERROR: %s\n", ls.c_str()); + throw error; + } + } private: - netlist_mame_device_t &m_parent; + netlist_mame_device &m_parent; }; +namespace { + // ---------------------------------------------------------------------------------------- // analog_callback // ---------------------------------------------------------------------------------------- @@ -83,12 +105,12 @@ class NETLIB_NAME(analog_callback) : public netlist::device_t { public: NETLIB_NAME(analog_callback)(netlist::netlist_t &anetlist, const pstring &name) - : device_t(anetlist, name) - , m_in(*this, "IN") - , m_cpu_device(nullptr) - , m_last(*this, "m_last", 0) + : device_t(anetlist, name) + , m_in(*this, "IN") + , m_cpu_device(nullptr) + , m_last(*this, "m_last", 0) { - m_cpu_device = downcast(&downcast(netlist()).parent()); + m_cpu_device = downcast(&downcast(netlist()).parent()); } ATTR_COLD void reset() override @@ -96,9 +118,9 @@ public: m_last = 0.0; } - ATTR_COLD void register_callback(netlist_analog_output_delegate callback) + ATTR_COLD void register_callback(netlist_mame_analog_output_device::output_delegate &&callback) { - m_callback = callback; + m_callback = std::move(callback); } NETLIB_UPDATEI() @@ -118,8 +140,8 @@ public: private: netlist::analog_input_t m_in; - netlist_analog_output_delegate m_callback; - netlist_mame_cpu_device_t *m_cpu_device; + netlist_mame_analog_output_device::output_delegate m_callback; + netlist_mame_cpu_device *m_cpu_device; netlist::state_var m_last; }; @@ -136,7 +158,7 @@ public: , m_cpu_device(nullptr) , m_last(*this, "m_last", 0) { - m_cpu_device = downcast(&downcast(netlist()).parent()); + m_cpu_device = downcast(&downcast(netlist()).parent()); } ATTR_COLD void reset() override @@ -144,9 +166,9 @@ public: m_last = 0; } - ATTR_COLD void register_callback(netlist_logic_output_delegate callback) + ATTR_COLD void register_callback(netlist_mame_logic_output_device::output_delegate &&callback) { - m_callback = callback; + m_callback = std::move(callback); } NETLIB_UPDATEI() @@ -166,11 +188,72 @@ public: private: netlist::logic_input_t m_in; - netlist_logic_output_delegate m_callback; - netlist_mame_cpu_device_t *m_cpu_device; + netlist_mame_logic_output_device::output_delegate m_callback; + netlist_mame_cpu_device *m_cpu_device; netlist::state_var m_last; }; +// ---------------------------------------------------------------------------------------- +// Extensions to interface netlist with MAME code .... +// ---------------------------------------------------------------------------------------- + +class netlist_source_memregion_t : public netlist::source_t +{ +public: + netlist_source_memregion_t(netlist::setup_t &setup, pstring name) + : netlist::source_t(setup), m_name(name) + { + } + + virtual std::unique_ptr stream(const pstring &name) override; +private: + pstring m_name; +}; + +class netlist_data_memregions_t : public netlist::source_t +{ +public: + netlist_data_memregions_t(netlist::setup_t &setup); + + virtual std::unique_ptr stream(const pstring &name) override; +}; + + +// ---------------------------------------------------------------------------------------- +// memregion source support +// ---------------------------------------------------------------------------------------- + +std::unique_ptr netlist_source_memregion_t::stream(const pstring &name) +{ + memory_region *mem = downcast(setup().netlist()).machine().root_device().memregion(m_name.c_str()); + return plib::make_unique_base(mem->base(), mem->bytes()); +} + +netlist_data_memregions_t::netlist_data_memregions_t(netlist::setup_t &setup) + : netlist::source_t(setup, netlist::source_t::DATA) +{ +} + +std::unique_ptr netlist_data_memregions_t::stream(const pstring &name) +{ + memory_region *mem = downcast(setup().netlist()).parent().memregion(name.c_str()); + //memory_region *mem = downcast(setup().netlist()).machine().root_device().memregion(name.c_str()); + if (mem != nullptr) + { + return plib::make_unique_base(mem->base(), mem->bytes()); + } + else + { + // This should be the last data provider being called - last resort + fatalerror("data named %s not found in device rom regions\n", name.c_str()); + return std::unique_ptr(nullptr); + } +} + +} // anonymous namespace + + + // ---------------------------------------------------------------------------------------- // sound_out // ---------------------------------------------------------------------------------------- @@ -332,48 +415,31 @@ private: int m_num_channel; }; -// ---------------------------------------------------------------------------------------- -// Extensions to interface netlist with MAME code .... -// ---------------------------------------------------------------------------------------- -class netlist_source_memregion_t : public netlist::source_t -{ -public: - netlist_source_memregion_t(netlist::setup_t &setup, pstring name) - : netlist::source_t(setup), m_name(name) - { - } +// netlib #defines this and it fights with logmacro.h +#undef LOG - virtual std::unique_ptr stream(const pstring &name) override; -private: - pstring m_name; -}; +#define LOG_GENERAL (1U << 0) +#define LOG_DEV_CALLS (1U << 1) -class netlist_data_memregions_t : public netlist::source_t -{ -public: - netlist_data_memregions_t(netlist::setup_t &setup); +//#define VERBOSE (LOG_GENERAL | LOG_DEV_CALLS) +//#define LOG_OUTPUT_FUNC printf +#include "logmacro.h" - virtual std::unique_ptr stream(const pstring &name) override; -}; +#define LOGDEVCALLS(...) LOGMASKED(LOG_DEV_CALLS, __VA_ARGS__) -netlist::setup_t &netlist_mame_device_t::setup() +netlist::setup_t &netlist_mame_device::setup() { return m_netlist->setup(); } -void netlist_mame_device_t::register_memregion_source(netlist::setup_t &setup, const char *name) +void netlist_mame_device::register_memregion_source(netlist::setup_t &setup, const char *name) { setup.register_source(plib::make_unique_base(setup, pstring(name, pstring::UTF8))); } -running_machine &netlist_mame_t::machine() -{ - return m_parent.machine(); -} - -void netlist_mame_analog_input_t::write(const double val) +void netlist_mame_analog_input_device::write(const double val) { if (is_sound_device()) { @@ -387,43 +453,41 @@ void netlist_mame_analog_input_t::write(const double val) } } - - -void netlist_mame_int_input_t::write(const uint32_t val) +void netlist_mame_int_input_device::write(const uint32_t val) { const uint32_t v = (val >> m_shift) & m_mask; if (v != (*m_param)()) synchronize(0, v); } -void netlist_mame_logic_input_t::write(const uint32_t val) +void netlist_mame_logic_input_device::write(const uint32_t val) { const uint32_t v = (val >> m_shift) & 1; if (v != (*m_param)()) synchronize(0, v); } -void netlist_mame_int_input_t::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) +void netlist_mame_int_input_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) { if (is_sound_device()) update_to_current_time(); m_param->setTo(param); } -void netlist_mame_logic_input_t::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) +void netlist_mame_logic_input_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) { if (is_sound_device()) update_to_current_time(); m_param->setTo(param); } -void netlist_ram_pointer_t::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) +void netlist_mame_ram_pointer_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) { m_data = (*m_param)(); } -void netlist_mame_cpu_device_t::state_string_export(const device_state_entry &entry, std::string &str) const +void netlist_mame_cpu_device::state_string_export(const device_state_entry &entry, std::string &str) const { if (entry.index() >= 0) { @@ -436,7 +500,7 @@ void netlist_mame_cpu_device_t::state_string_export(const device_state_entry &en // ---------------------------------------------------------------------------------------- -// netlist_mame_analog_input_t +// netlist_mame_analog_input_device // ---------------------------------------------------------------------------------------- void netlist_mame_sub_interface::static_set_mult_offset(device_t &device, const double mult, const double offset) @@ -447,24 +511,24 @@ void netlist_mame_sub_interface::static_set_mult_offset(device_t &device, const } -netlist_mame_analog_input_t::netlist_mame_analog_input_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, NETLIST_ANALOG_INPUT, "Netlist Analog Input", tag, owner, clock, "netlist_analog_input", __FILE__), - netlist_mame_sub_interface(*owner), - m_param(nullptr), - m_auto_port(true), - m_param_name("") +netlist_mame_analog_input_device::netlist_mame_analog_input_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, NETLIST_ANALOG_INPUT, tag, owner, clock) + , netlist_mame_sub_interface(*owner) + , m_param(nullptr) + , m_auto_port(true) + , m_param_name("") { } -void netlist_mame_analog_input_t::static_set_name(device_t &device, const char *param_name) +void netlist_mame_analog_input_device::static_set_name(device_t &device, const char *param_name) { - netlist_mame_analog_input_t &netlist = downcast(device); + netlist_mame_analog_input_device &netlist = downcast(device); netlist.m_param_name = param_name; } -void netlist_mame_analog_input_t::device_start() +void netlist_mame_analog_input_device::device_start() { - LOG_DEV_CALLS(("start %s\n", tag())); + LOGDEVCALLS("start\n"); netlist::param_t *p = this->nl_owner().setup().find_param(pstring(m_param_name, pstring::UTF8)); m_param = dynamic_cast(p); if (m_param == nullptr) @@ -481,104 +545,104 @@ void netlist_mame_analog_input_t::device_start() // ---------------------------------------------------------------------------------------- -// netlist_mame_analog_output_t +// netlist_mame_analog_output_device // ---------------------------------------------------------------------------------------- -netlist_mame_analog_output_t::netlist_mame_analog_output_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, NETLIST_ANALOG_OUTPUT, "Netlist Analog Output", tag, owner, clock, "netlist_analog_output", __FILE__), - netlist_mame_sub_interface(*owner), - m_in("") +netlist_mame_analog_output_device::netlist_mame_analog_output_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, NETLIST_ANALOG_OUTPUT, tag, owner, clock) + , netlist_mame_sub_interface(*owner) + , m_in("") { } -void netlist_mame_analog_output_t::static_set_params(device_t &device, const char *in_name, netlist_analog_output_delegate adelegate) +void netlist_mame_analog_output_device::static_set_params(device_t &device, const char *in_name, output_delegate &&adelegate) { - netlist_mame_analog_output_t &mame_output = downcast(device); + netlist_mame_analog_output_device &mame_output = downcast(device); mame_output.m_in = in_name; - mame_output.m_delegate = adelegate; + mame_output.m_delegate = std::move(adelegate); } -void netlist_mame_analog_output_t::custom_netlist_additions(netlist::setup_t &setup) +void netlist_mame_analog_output_device::custom_netlist_additions(netlist::setup_t &setup) { const pstring pin(m_in, pstring::UTF8); pstring dname = pstring("OUT_") + pin; m_delegate.bind_relative_to(owner()->machine().root_device()); plib::owned_ptr dev = plib::owned_ptr::Create(setup.netlist(), setup.build_fqn(dname)); - static_cast(dev.get())->register_callback(m_delegate); + static_cast(dev.get())->register_callback(std::move(m_delegate)); setup.netlist().register_dev(std::move(dev)); setup.register_link(dname + ".IN", pin); } -void netlist_mame_analog_output_t::device_start() +void netlist_mame_analog_output_device::device_start() { - LOG_DEV_CALLS(("start %s\n", tag())); + LOGDEVCALLS("start\n"); } // ---------------------------------------------------------------------------------------- -// netlist_mame_logic_output_t +// netlist_mame_logic_output_device // ---------------------------------------------------------------------------------------- -netlist_mame_logic_output_t::netlist_mame_logic_output_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, NETLIST_LOGIC_OUTPUT, "Netlist Logic Output", tag, owner, clock, "netlist_logic_output", __FILE__), - netlist_mame_sub_interface(*owner), - m_in("") +netlist_mame_logic_output_device::netlist_mame_logic_output_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, NETLIST_LOGIC_OUTPUT, tag, owner, clock) + , netlist_mame_sub_interface(*owner) + , m_in("") { } -void netlist_mame_logic_output_t::static_set_params(device_t &device, const char *in_name, netlist_logic_output_delegate adelegate) +void netlist_mame_logic_output_device::static_set_params(device_t &device, const char *in_name, output_delegate &&adelegate) { - netlist_mame_logic_output_t &mame_output = downcast(device); + netlist_mame_logic_output_device &mame_output = downcast(device); mame_output.m_in = in_name; - mame_output.m_delegate = adelegate; + mame_output.m_delegate = std::move(adelegate); } -void netlist_mame_logic_output_t::custom_netlist_additions(netlist::setup_t &setup) +void netlist_mame_logic_output_device::custom_netlist_additions(netlist::setup_t &setup) { pstring pin(m_in, pstring::UTF8); pstring dname = "OUT_" + pin; m_delegate.bind_relative_to(owner()->machine().root_device()); plib::owned_ptr dev = plib::owned_ptr::Create(setup.netlist(), setup.build_fqn(dname)); - static_cast(dev.get())->register_callback(m_delegate); + static_cast(dev.get())->register_callback(std::move(m_delegate)); setup.netlist().register_dev(std::move(dev)); setup.register_link(dname + ".IN", pin); } -void netlist_mame_logic_output_t::device_start() +void netlist_mame_logic_output_device::device_start() { - LOG_DEV_CALLS(("start %s\n", tag())); + LOGDEVCALLS("start\n"); } // ---------------------------------------------------------------------------------------- -// netlist_mame_int_input_t +// netlist_mame_int_input_device // ---------------------------------------------------------------------------------------- -netlist_mame_int_input_t::netlist_mame_int_input_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, NETLIST_INT_INPUT, "Netlist Integer Input", tag, owner, clock, "netlist_int_input", __FILE__), - netlist_mame_sub_interface(*owner), - m_param(nullptr), - m_mask(0xffffffff), - m_shift(0), - m_param_name("") +netlist_mame_int_input_device::netlist_mame_int_input_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, NETLIST_INT_INPUT, tag, owner, clock) + , netlist_mame_sub_interface(*owner) + , m_param(nullptr) + , m_mask(0xffffffff) + , m_shift(0) + , m_param_name("") { } -void netlist_mame_int_input_t::static_set_params(device_t &device, const char *param_name, const uint32_t mask, const uint32_t shift) +void netlist_mame_int_input_device::static_set_params(device_t &device, const char *param_name, const uint32_t mask, const uint32_t shift) { - netlist_mame_int_input_t &netlist = downcast(device); - LOG_DEV_CALLS(("static_set_params %s\n", device.tag())); + netlist_mame_int_input_device &netlist = downcast(device); + if (LOG_DEV_CALLS) device.logerror("static_set_params\n"); netlist.m_param_name = param_name; netlist.m_shift = shift; netlist.m_mask = mask; } -void netlist_mame_int_input_t::device_start() +void netlist_mame_int_input_device::device_start() { - LOG_DEV_CALLS(("start %s\n", tag())); - netlist::param_t *p = downcast(this->owner())->setup().find_param(pstring(m_param_name, pstring::UTF8)); + LOGDEVCALLS("start\n"); + netlist::param_t *p = downcast(this->owner())->setup().find_param(pstring(m_param_name, pstring::UTF8)); m_param = dynamic_cast(p); if (m_param == nullptr) { @@ -587,30 +651,30 @@ void netlist_mame_int_input_t::device_start() } // ---------------------------------------------------------------------------------------- -// netlist_mame_logic_input_t +// netlist_mame_logic_input_device // ---------------------------------------------------------------------------------------- -netlist_mame_logic_input_t::netlist_mame_logic_input_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, NETLIST_LOGIC_INPUT, "Netlist Logic Input", tag, owner, clock, "netlist_logic_input", __FILE__), - netlist_mame_sub_interface(*owner), - m_param(nullptr), - m_shift(0), - m_param_name("") +netlist_mame_logic_input_device::netlist_mame_logic_input_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, NETLIST_LOGIC_INPUT, tag, owner, clock) + , netlist_mame_sub_interface(*owner) + , m_param(nullptr) + , m_shift(0) + , m_param_name("") { } -void netlist_mame_logic_input_t::static_set_params(device_t &device, const char *param_name, const uint32_t shift) +void netlist_mame_logic_input_device::static_set_params(device_t &device, const char *param_name, const uint32_t shift) { - netlist_mame_logic_input_t &netlist = downcast(device); - LOG_DEV_CALLS(("static_set_params %s\n", device.tag())); + netlist_mame_logic_input_device &netlist = downcast(device); + if (LOG_DEV_CALLS) device.logerror("static_set_params\n"); netlist.m_param_name = param_name; netlist.m_shift = shift; } -void netlist_mame_logic_input_t::device_start() +void netlist_mame_logic_input_device::device_start() { - LOG_DEV_CALLS(("start %s\n", tag())); - netlist::param_t *p = downcast(this->owner())->setup().find_param(pstring(m_param_name, pstring::UTF8)); + LOGDEVCALLS("start\n"); + netlist::param_t *p = downcast(this->owner())->setup().find_param(pstring(m_param_name, pstring::UTF8)); m_param = dynamic_cast(p); if (m_param == nullptr) { @@ -620,29 +684,29 @@ void netlist_mame_logic_input_t::device_start() // ---------------------------------------------------------------------------------------- -// netlist_ram_pointer_t +// netlist_mame_ram_pointer_device // ---------------------------------------------------------------------------------------- -netlist_ram_pointer_t::netlist_ram_pointer_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, NETLIST_RAM_POINTER, "Netlist RAM Pointer", tag, owner, clock, "netlist_ram_pointer", __FILE__) - , netlist_mame_sub_interface(*owner) - , m_param(nullptr) - , m_param_name("") - , m_data(nullptr) +netlist_mame_ram_pointer_device::netlist_mame_ram_pointer_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, NETLIST_RAM_POINTER, tag, owner, clock) + , netlist_mame_sub_interface(*owner) + , m_param(nullptr) + , m_param_name("") + , m_data(nullptr) { } -void netlist_ram_pointer_t::static_set_params(device_t &device, const char *param_name) +void netlist_mame_ram_pointer_device::static_set_params(device_t &device, const char *param_name) { - netlist_ram_pointer_t &netlist = downcast(device); - LOG_DEV_CALLS(("static_set_params %s\n", device.tag())); + netlist_mame_ram_pointer_device &netlist = downcast(device); + if (LOG_DEV_CALLS) device.logerror("static_set_params\n"); netlist.m_param_name = param_name; } -void netlist_ram_pointer_t::device_start() +void netlist_mame_ram_pointer_device::device_start() { - LOG_DEV_CALLS(("start %s\n", tag())); - netlist::param_t *p = downcast(this->owner())->setup().find_param(pstring(m_param_name, pstring::UTF8)); + LOGDEVCALLS("start\n"); + netlist::param_t *p = downcast(this->owner())->setup().find_param(pstring(m_param_name, pstring::UTF8)); m_param = dynamic_cast(p); if (m_param == nullptr) { @@ -653,30 +717,30 @@ void netlist_ram_pointer_t::device_start() } // ---------------------------------------------------------------------------------------- -// netlist_mame_stream_input_t +// netlist_mame_stream_input_device // ---------------------------------------------------------------------------------------- -netlist_mame_stream_input_t::netlist_mame_stream_input_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, NETLIST_STREAM_INPUT, "Netlist Stream Input", tag, owner, clock, "netlist_stream_input", __FILE__), - netlist_mame_sub_interface(*owner), - m_channel(0), - m_param_name("") +netlist_mame_stream_input_device::netlist_mame_stream_input_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, NETLIST_STREAM_INPUT, tag, owner, clock) + , netlist_mame_sub_interface(*owner) + , m_channel(0) + , m_param_name("") { } -void netlist_mame_stream_input_t::static_set_params(device_t &device, int channel, const char *param_name) +void netlist_mame_stream_input_device::static_set_params(device_t &device, int channel, const char *param_name) { - netlist_mame_stream_input_t &netlist = downcast(device); + netlist_mame_stream_input_device &netlist = downcast(device); netlist.m_param_name = param_name; netlist.m_channel = channel; } -void netlist_mame_stream_input_t::device_start() +void netlist_mame_stream_input_device::device_start() { - LOG_DEV_CALLS(("start %s\n", tag())); + LOGDEVCALLS("start\n"); } -void netlist_mame_stream_input_t::custom_netlist_additions(netlist::setup_t &setup) +void netlist_mame_stream_input_device::custom_netlist_additions(netlist::setup_t &setup) { if (!setup.device_exists("STREAM_INPUT")) setup.register_dev("NETDEV_SOUND_IN", "STREAM_INPUT"); @@ -690,30 +754,30 @@ void netlist_mame_stream_input_t::custom_netlist_additions(netlist::setup_t &set } // ---------------------------------------------------------------------------------------- -// netlist_mame_stream_output_t +// netlist_mame_stream_output_device // ---------------------------------------------------------------------------------------- -netlist_mame_stream_output_t::netlist_mame_stream_output_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, NETLIST_STREAM_OUTPUT, "Netlist Stream Output", tag, owner, clock, "netlist_stream_output", __FILE__), - netlist_mame_sub_interface(*owner), - m_channel(0), - m_out_name("") +netlist_mame_stream_output_device::netlist_mame_stream_output_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, NETLIST_STREAM_OUTPUT, tag, owner, clock) + , netlist_mame_sub_interface(*owner) + , m_channel(0) + , m_out_name("") { } -void netlist_mame_stream_output_t::static_set_params(device_t &device, int channel, const char *out_name) +void netlist_mame_stream_output_device::static_set_params(device_t &device, int channel, const char *out_name) { - netlist_mame_stream_output_t &netlist = downcast(device); + netlist_mame_stream_output_device &netlist = downcast(device); netlist.m_out_name = out_name; netlist.m_channel = channel; } -void netlist_mame_stream_output_t::device_start() +void netlist_mame_stream_output_device::device_start() { - LOG_DEV_CALLS(("start %s\n", tag())); + LOGDEVCALLS("start\n"); } -void netlist_mame_stream_output_t::custom_netlist_additions(netlist::setup_t &setup) +void netlist_mame_stream_output_device::custom_netlist_additions(netlist::setup_t &setup) { //NETLIB_NAME(sound_out) *snd_out; pstring sname = plib::pfmt("STREAM_OUT_{1}")(m_channel); @@ -729,84 +793,49 @@ void netlist_mame_stream_output_t::custom_netlist_additions(netlist::setup_t &se // ---------------------------------------------------------------------------------------- -// netlist_mame_t +// netlist_mame_device // ---------------------------------------------------------------------------------------- -void netlist_mame_t::vlog(const plib::plog_level &l, const pstring &ls) const -{ - pstring errstr = ls; - - switch (l) - { - case plib::plog_level::DEBUG: - m_parent.logerror("netlist DEBUG: %s\n", errstr.c_str()); - break; - case plib::plog_level::INFO: - m_parent.logerror("netlist INFO: %s\n", errstr.c_str()); - break; - case plib::plog_level::VERBOSE: - m_parent.logerror("netlist VERBOSE: %s\n", errstr.c_str()); - break; - case plib::plog_level::WARNING: - m_parent.logerror("netlist WARNING: %s\n", errstr.c_str()); - break; - case plib::plog_level::ERROR: - m_parent.logerror("netlist ERROR: %s\n", errstr.c_str()); - break; - case plib::plog_level::FATAL: - emu_fatalerror error("netlist ERROR: %s\n", errstr.c_str()); - throw error; - } -} - -// ---------------------------------------------------------------------------------------- -// netlist_mame_device_t -// ---------------------------------------------------------------------------------------- - -netlist_mame_device_t::netlist_mame_device_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, NETLIST_CORE, "Netlist core device", tag, owner, clock, "netlist_core", __FILE__), - m_icount(0), - m_old(netlist::netlist_time::zero()), - m_netlist(nullptr), - m_setup_func(nullptr) +netlist_mame_device::netlist_mame_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : netlist_mame_device(mconfig, NETLIST_CORE, tag, owner, clock) { } -netlist_mame_device_t::netlist_mame_device_t(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *file) - : device_t(mconfig, type, name, tag, owner, clock, shortname, file), - m_icount(0), - m_old(netlist::netlist_time::zero()), - m_netlist(nullptr), - m_setup_func(nullptr) +netlist_mame_device::netlist_mame_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) + , m_icount(0) + , m_old(netlist::netlist_time::zero()) + , m_netlist(nullptr) + , m_setup_func(nullptr) { } -netlist_mame_device_t::~netlist_mame_device_t() +netlist_mame_device::~netlist_mame_device() { - LOG_DEV_CALLS(("~netlist_mame_device_t\n")); + LOGDEVCALLS("~netlist_mame_device\n"); } -void netlist_mame_device_t::static_set_constructor(device_t &device, void (*setup_func)(netlist::setup_t &)) +void netlist_mame_device::static_set_constructor(device_t &device, void (*setup_func)(netlist::setup_t &)) { - LOG_DEV_CALLS(("static_set_constructor\n")); - netlist_mame_device_t &netlist = downcast(device); + if (LOG_DEV_CALLS) device.logerror("static_set_constructor\n"); + netlist_mame_device &netlist = downcast(device); netlist.m_setup_func = setup_func; } -void netlist_mame_device_t::device_config_complete() +void netlist_mame_device::device_config_complete() { - LOG_DEV_CALLS(("device_config_complete %s %s\n", this->mconfig().gamedrv().name, this->tag())); + LOGDEVCALLS("device_config_complete %s\n", this->mconfig().gamedrv().name); } -void netlist_mame_device_t::device_validity_check(validity_checker &valid) const +void netlist_mame_device::device_validity_check(validity_checker &valid) const { - LOG_DEV_CALLS(("device_validity_check %s\n", this->mconfig().gamedrv().name)); + LOGDEVCALLS("device_validity_check %s\n", this->mconfig().gamedrv().name); } -void netlist_mame_device_t::device_start() +void netlist_mame_device::device_start() { - LOG_DEV_CALLS(("device_start entry %s\n", tag())); + LOGDEVCALLS("device_start entry\n"); //printf("clock is %d\n", clock()); @@ -822,7 +851,7 @@ void netlist_mame_device_t::device_start() netlist_mame_sub_interface *sdev = dynamic_cast(&d); if( sdev != nullptr ) { - LOG_DEV_CALLS(("Preparse subdevice %s/%s\n", d.name(), d.shortname())); + LOGDEVCALLS("Preparse subdevice %s/%s\n", d.name(), d.shortname()); sdev->pre_parse_action(setup()); } } @@ -838,7 +867,7 @@ void netlist_mame_device_t::device_start() netlist_mame_sub_interface *sdev = dynamic_cast(&d); if( sdev != nullptr ) { - LOG_DEV_CALLS(("Found subdevice %s/%s\n", d.name(), d.shortname())); + LOGDEVCALLS("Found subdevice %s/%s\n", d.name(), d.shortname()); sdev->custom_netlist_additions(setup()); } } @@ -854,53 +883,49 @@ void netlist_mame_device_t::device_start() m_old = netlist::netlist_time::zero(); m_rem = netlist::netlist_time::zero(); - LOG_DEV_CALLS(("device_start exit %s\n", tag())); + LOGDEVCALLS("device_start exit\n"); } -void netlist_mame_device_t::device_clock_changed() +void netlist_mame_device::device_clock_changed() { m_div = netlist::netlist_time::from_hz(clock()); netlist().log().debug("Setting clock {1} and divisor {2}\n", clock(), m_div.as_double()); } -void netlist_mame_device_t::device_reset() +void netlist_mame_device::device_reset() { - LOG_DEV_CALLS(("device_reset\n")); + LOGDEVCALLS("device_reset\n"); m_old = netlist::netlist_time::zero(); m_rem = netlist::netlist_time::zero(); netlist().reset(); } -void netlist_mame_device_t::device_stop() +void netlist_mame_device::device_stop() { - LOG_DEV_CALLS(("device_stop\n")); + LOGDEVCALLS("device_stop\n"); netlist().stop(); global_free(m_netlist); m_netlist = nullptr; } -ATTR_COLD void netlist_mame_device_t::device_post_load() +ATTR_COLD void netlist_mame_device::device_post_load() { - LOG_DEV_CALLS(("device_post_load\n")); + LOGDEVCALLS("device_post_load\n"); netlist().state().post_load(); netlist().rebuild_lists(); } -ATTR_COLD void netlist_mame_device_t::device_pre_save() +ATTR_COLD void netlist_mame_device::device_pre_save() { - LOG_DEV_CALLS(("device_pre_save\n")); + LOGDEVCALLS("device_pre_save\n"); netlist().state().pre_save(); } -void netlist_mame_device_t::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) -{ -} - -void netlist_mame_device_t::update_time_x() +void netlist_mame_device::update_time_x() { const netlist::netlist_time newt(netlist().time()); const netlist::netlist_time delta(newt - m_old + m_rem); @@ -910,13 +935,13 @@ void netlist_mame_device_t::update_time_x() m_icount -= d; } -void netlist_mame_device_t::check_mame_abort_slice() +void netlist_mame_device::check_mame_abort_slice() { if (m_icount <= 0) netlist().abort_current_queue_slice(); } -ATTR_COLD void netlist_mame_device_t::save_state() +ATTR_COLD void netlist_mame_device::save_state() { for (auto const & s : netlist().state().save_list()) { @@ -957,24 +982,24 @@ ATTR_COLD void netlist_mame_device_t::save_state() } // ---------------------------------------------------------------------------------------- -// netlist_mame_cpu_device_t +// netlist_mame_cpu_device // ---------------------------------------------------------------------------------------- -netlist_mame_cpu_device_t::netlist_mame_cpu_device_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : netlist_mame_device_t(mconfig, NETLIST_CPU, "Netlist CPU Device", tag, owner, clock, "netlist_cpu", __FILE__), - device_execute_interface(mconfig, *this), - device_state_interface(mconfig, *this), - device_disasm_interface(mconfig, *this), - device_memory_interface(mconfig, *this), - m_program_config("program", ENDIANNESS_LITTLE, 8, 12), // Interface is needed to keep debugger happy - m_genPC(0) +netlist_mame_cpu_device::netlist_mame_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : netlist_mame_device(mconfig, NETLIST_CPU, tag, owner, clock) + , device_execute_interface(mconfig, *this) + , device_state_interface(mconfig, *this) + , device_disasm_interface(mconfig, *this) + , device_memory_interface(mconfig, *this) + , m_program_config("program", ENDIANNESS_LITTLE, 8, 12) // Interface is needed to keep debugger happy + , m_genPC(0) { } -void netlist_mame_cpu_device_t::device_start() +void netlist_mame_cpu_device::device_start() { - netlist_mame_device_t::device_start(); + netlist_mame_device::device_start(); // State support @@ -999,22 +1024,22 @@ void netlist_mame_cpu_device_t::device_start() } -void netlist_mame_cpu_device_t::nl_register_devices() +void netlist_mame_cpu_device::nl_register_devices() { setup().factory().register_device( "NETDEV_CALLBACK", "nld_analog_callback", "-"); } -ATTR_COLD uint64_t netlist_mame_cpu_device_t::execute_clocks_to_cycles(uint64_t clocks) const +ATTR_COLD uint64_t netlist_mame_cpu_device::execute_clocks_to_cycles(uint64_t clocks) const { return clocks; } -ATTR_COLD uint64_t netlist_mame_cpu_device_t::execute_cycles_to_clocks(uint64_t cycles) const +ATTR_COLD uint64_t netlist_mame_cpu_device::execute_cycles_to_clocks(uint64_t cycles) const { return cycles; } -ATTR_COLD offs_t netlist_mame_cpu_device_t::disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) +ATTR_COLD offs_t netlist_mame_cpu_device::disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) { //char tmp[16]; unsigned startpc = pc; @@ -1031,7 +1056,7 @@ ATTR_COLD offs_t netlist_mame_cpu_device_t::disasm_disassemble(std::ostream &str return (pc - startpc); } -ATTR_HOT void netlist_mame_cpu_device_t::execute_run() +ATTR_HOT void netlist_mame_cpu_device::execute_run() { bool check_debugger = ((device_t::machine().debug_flags & DEBUG_FLAG_ENABLED) != 0); // debugging @@ -1055,25 +1080,25 @@ ATTR_HOT void netlist_mame_cpu_device_t::execute_run() } // ---------------------------------------------------------------------------------------- -// netlist_mame_sound_device_t +// netlist_mame_sound_device // ---------------------------------------------------------------------------------------- -netlist_mame_sound_device_t::netlist_mame_sound_device_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : netlist_mame_device_t(mconfig, NETLIST_SOUND, "Netlist Sound Device", tag, owner, clock, "netlist_sound", __FILE__), - device_sound_interface(mconfig, *this), - m_out{nullptr}, - m_in(nullptr), - m_stream(nullptr), - m_num_inputs(0), - m_num_outputs(0) +netlist_mame_sound_device::netlist_mame_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : netlist_mame_device(mconfig, NETLIST_SOUND, tag, owner, clock) + , device_sound_interface(mconfig, *this) + , m_out{nullptr} + , m_in(nullptr) + , m_stream(nullptr) + , m_num_inputs(0) + , m_num_outputs(0) { } -void netlist_mame_sound_device_t::device_start() +void netlist_mame_sound_device::device_start() { - netlist_mame_device_t::device_start(); + netlist_mame_device::device_start(); - LOG_DEV_CALLS(("sound device_start %s\n", tag())); + LOGDEVCALLS("sound device_start\n"); // Configure outputs @@ -1118,14 +1143,14 @@ void netlist_mame_sound_device_t::device_start() } -void netlist_mame_sound_device_t::nl_register_devices() +void netlist_mame_sound_device::nl_register_devices() { setup().factory().register_device("NETDEV_SOUND_OUT", "nld_sound_out", "+CHAN"); setup().factory().register_device("NETDEV_SOUND_IN", "nld_sound_in", "-"); } -void netlist_mame_sound_device_t::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) +void netlist_mame_sound_device::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) { for (int i=0; i < m_num_outputs; i++) { @@ -1152,35 +1177,3 @@ void netlist_mame_sound_device_t::sound_stream_update(sound_stream &stream, stre m_out[i]->buffer_reset(cur); } } - -// ---------------------------------------------------------------------------------------- -// memregion source support -// ---------------------------------------------------------------------------------------- - -std::unique_ptr netlist_source_memregion_t::stream(const pstring &name) -{ - memory_region *mem = downcast(setup().netlist()).machine().root_device().memregion(m_name.c_str()); - return plib::make_unique_base(mem->base(), mem->bytes()); -} - -netlist_data_memregions_t::netlist_data_memregions_t(netlist::setup_t &setup) -: netlist::source_t(setup, netlist::source_t::DATA) -{ -} - -std::unique_ptr netlist_data_memregions_t::stream(const pstring &name) -{ - memory_region *mem = downcast(setup().netlist()).parent().memregion(name.c_str()); - //memory_region *mem = downcast(setup().netlist()).machine().root_device().memregion(name.c_str()); - if (mem != nullptr) - { - return plib::make_unique_base(mem->base(), mem->bytes()); - } - else - { - // This should be the last data provider being called - last resort - fatalerror("data named %s not found in device rom regions\n", name.c_str()); - return std::unique_ptr(nullptr); - } -} - diff --git a/src/devices/machine/netlist.h b/src/devices/machine/netlist.h index a4e13611e82..55af64ecd8e 100644 --- a/src/devices/machine/netlist.h +++ b/src/devices/machine/netlist.h @@ -8,13 +8,13 @@ ****************************************************************************/ -#ifndef NETLIST_H -#define NETLIST_H - +#ifndef MAME_MACHINE_NETLIST_H +#define MAME_MACHINE_NETLIST_H #include "netlist/nl_time.h" -class netlist_mame_t; +class nld_sound_out; +class nld_sound_in; namespace netlist { class setup_t; @@ -24,63 +24,64 @@ namespace netlist { class param_ptr_t; } + // MAME specific configuration #define MCFG_NETLIST_SETUP(_setup) \ - netlist_mame_device_t::static_set_constructor(*device, NETLIST_NAME(_setup)); + netlist_mame_device::static_set_constructor(*device, NETLIST_NAME(_setup)); #define MCFG_NETLIST_ANALOG_INPUT(_basetag, _tag, _name) \ MCFG_DEVICE_ADD(_basetag ":" _tag, NETLIST_ANALOG_INPUT, 0) \ - netlist_mame_analog_input_t::static_set_name(*device, _name); + netlist_mame_analog_input_device::static_set_name(*device, _name); #define MCFG_NETLIST_ANALOG_MULT_OFFSET(_mult, _offset) \ netlist_mame_sub_interface::static_set_mult_offset(*device, _mult, _offset); #define MCFG_NETLIST_ANALOG_OUTPUT(_basetag, _tag, _IN, _class, _member, _class_tag) \ MCFG_DEVICE_ADD(_basetag ":" _tag, NETLIST_ANALOG_OUTPUT, 0) \ - netlist_mame_analog_output_t::static_set_params(*device, _IN, \ - netlist_analog_output_delegate(& _class :: _member, \ + netlist_mame_analog_output_device::static_set_params(*device, _IN, \ + netlist_mame_analog_output_device::output_delegate(& _class :: _member, \ # _class "::" # _member, _class_tag, (_class *)nullptr) ); #define MCFG_NETLIST_LOGIC_OUTPUT(_basetag, _tag, _IN, _class, _member, _class_tag) \ MCFG_DEVICE_ADD(_basetag ":" _tag, NETLIST_LOGIC_OUTPUT, 0) \ - netlist_mame_logic_output_t::static_set_params(*device, _IN, \ - netlist_logic_output_delegate(& _class :: _member, \ + netlist_mame_logic_output_device::static_set_params(*device, _IN, \ + netlist_mame_logic_output_device::output_delegate(& _class :: _member, \ # _class "::" # _member, _class_tag, (_class *)nullptr) ); #define MCFG_NETLIST_LOGIC_INPUT(_basetag, _tag, _name, _shift) \ MCFG_DEVICE_ADD(_basetag ":" _tag, NETLIST_LOGIC_INPUT, 0) \ - netlist_mame_logic_input_t::static_set_params(*device, _name, _shift); + netlist_mame_logic_input_device::static_set_params(*device, _name, _shift); #define MCFG_NETLIST_INT_INPUT(_basetag, _tag, _name, _shift, _mask) \ MCFG_DEVICE_ADD(_basetag ":" _tag, NETLIST_INT_INPUT, 0) \ - netlist_mame_int_input_t::static_set_params(*device, _name, _mask, _shift); + netlist_mame_int_input_device::static_set_params(*device, _name, _mask, _shift); #define MCFG_NETLIST_RAM_POINTER(_basetag, _tag, _name) \ MCFG_DEVICE_ADD(_basetag ":" _tag, NETLIST_RAM_POINTER, 0) \ - netlist_ram_pointer_t::static_set_params(*device, _name ".m_RAM"); + netlist_mame_ram_pointer_device::static_set_params(*device, _name ".m_RAM"); #define MCFG_NETLIST_STREAM_INPUT(_basetag, _chan, _name) \ MCFG_DEVICE_ADD(_basetag ":cin" # _chan, NETLIST_STREAM_INPUT, 0) \ - netlist_mame_stream_input_t::static_set_params(*device, _chan, _name); + netlist_mame_stream_input_device::static_set_params(*device, _chan, _name); #define MCFG_NETLIST_STREAM_OUTPUT(_basetag, _chan, _name) \ MCFG_DEVICE_ADD(_basetag ":cout" # _chan, NETLIST_STREAM_OUTPUT, 0) \ - netlist_mame_stream_output_t::static_set_params(*device, _chan, _name); + netlist_mame_stream_output_device::static_set_params(*device, _chan, _name); #define NETLIST_LOGIC_PORT_CHANGED(_base, _tag) \ - PORT_CHANGED_MEMBER(_base ":" _tag, netlist_mame_logic_input_t, input_changed, 0) + PORT_CHANGED_MEMBER(_base ":" _tag, netlist_mame_logic_input_device, input_changed, 0) #define NETLIST_INT_PORT_CHANGED(_base, _tag) \ - PORT_CHANGED_MEMBER(_base ":" _tag, netlist_mame_logic_input_t, input_changed, 0) + PORT_CHANGED_MEMBER(_base ":" _tag, netlist_mame_logic_input_device, input_changed, 0) #define NETLIST_ANALOG_PORT_CHANGED(_base, _tag) \ - PORT_CHANGED_MEMBER(_base ":" _tag, netlist_mame_analog_input_t, input_changed, 0) + PORT_CHANGED_MEMBER(_base ":" _tag, netlist_mame_analog_input_device, input_changed, 0) #define MEMREGION_SOURCE(_name) \ - netlist_mame_device_t::register_memregion_source(setup, _name); + netlist_mame_device::register_memregion_source(setup, _name); #define NETDEV_ANALOG_CALLBACK_MEMBER(_name) \ void _name(const double data, const attotime &time) @@ -91,17 +92,17 @@ namespace netlist { // ---------------------------------------------------------------------------------------- -// netlist_mame_device_t +// netlist_mame_device // ---------------------------------------------------------------------------------------- -class netlist_mame_device_t : public device_t +class netlist_mame_device : public device_t { public: + class netlist_mame_t; // construction/destruction - netlist_mame_device_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - netlist_mame_device_t(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *file); - virtual ~netlist_mame_device_t(); + netlist_mame_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + virtual ~netlist_mame_device(); static void static_set_constructor(device_t &device, void (*setup_func)(netlist::setup_t &)); @@ -117,9 +118,10 @@ public: int m_icount; protected: - // Custom to netlist ... + netlist_mame_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); - virtual void nl_register_devices() { }; + // Custom to netlist ... + virtual void nl_register_devices() { } // device_t overrides virtual void device_config_complete() override; @@ -129,8 +131,6 @@ protected: virtual void device_reset() override; virtual void device_post_load() override; virtual void device_pre_save() override; - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; - //virtual void device_debug_setup(); virtual void device_clock_changed() override; netlist::netlist_time m_div; @@ -148,36 +148,27 @@ private: }; // ---------------------------------------------------------------------------------------- -// netlist_mame_cpu_device_t +// netlist_mame_cpu_device // ---------------------------------------------------------------------------------------- -class netlist_mame_cpu_device_t : public netlist_mame_device_t, - public device_execute_interface, - public device_state_interface, - public device_disasm_interface, - public device_memory_interface +class netlist_mame_cpu_device : public netlist_mame_device, + public device_execute_interface, + public device_state_interface, + public device_disasm_interface, + public device_memory_interface { public: - // construction/destruction - netlist_mame_cpu_device_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual ~netlist_mame_cpu_device_t() {} + netlist_mame_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + protected: - // netlist_mame_device_t + // netlist_mame_device virtual void nl_register_devices() override; // device_t overrides - - //virtual void device_config_complete(); virtual void device_start() override; - //virtual void device_stop(); - //virtual void device_reset(); - //virtual void device_post_load(); - //virtual void device_pre_save(); - //virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr); // device_execute_interface overrides - virtual uint64_t execute_clocks_to_cycles(uint64_t clocks) const override; virtual uint64_t execute_cycles_to_clocks(uint64_t cycles) const override; @@ -189,69 +180,46 @@ protected: ATTR_COLD virtual offs_t disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) override; // device_memory_interface overrides - - address_space_config m_program_config; - - virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_0) const override + virtual const address_space_config *memory_space_config(address_spacenum spacenum) const override { - switch (spacenum) - { - case AS_PROGRAM: return &m_program_config; - case AS_IO: return nullptr; - default: return nullptr; - } + return (AS_PROGRAM == spacenum) ? &m_program_config : nullptr; } // device_state_interface overrides - virtual void state_string_export(const device_state_entry &entry, std::string &str) const override; -private: + address_space_config m_program_config; +private: int m_genPC; - }; -class nld_sound_out; -class nld_sound_in; - // ---------------------------------------------------------------------------------------- -// netlist_mame_sound_device_t +// netlist_mame_sound_device // ---------------------------------------------------------------------------------------- -class netlist_mame_sound_device_t : public netlist_mame_device_t, - public device_sound_interface +class netlist_mame_sound_device : public netlist_mame_device, + public device_sound_interface { public: - // construction/destruction - netlist_mame_sound_device_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual ~netlist_mame_sound_device_t() {} + netlist_mame_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); inline sound_stream *get_stream() { return m_stream; } // device_sound_interface overrides - virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; protected: - // netlist_mame_device_t + // netlist_mame_device virtual void nl_register_devices() override; // device_t overrides - - //virtual void device_config_complete(); virtual void device_start() override; - //virtual void device_stop(); - //virtual void device_reset(); - //virtual void device_post_load(); - //virtual void device_pre_save(); - //virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr); private: - - static const int MAX_OUT = 10; + static constexpr int MAX_OUT = 10; nld_sound_out *m_out[MAX_OUT]; nld_sound_in *m_in; sound_stream *m_stream; @@ -269,24 +237,20 @@ class netlist_mame_sub_interface public: // construction/destruction netlist_mame_sub_interface(device_t &aowner) - : m_offset(0.0), m_mult(1.0) + : m_offset(0.0), m_mult(1.0) + , m_owner(dynamic_cast(&aowner)) + , m_sound(dynamic_cast(&aowner)) { - m_owner = dynamic_cast(&aowner); - m_sound = dynamic_cast(&aowner); } - virtual ~netlist_mame_sub_interface() { } virtual void custom_netlist_additions(netlist::setup_t &setup) { } virtual void pre_parse_action(netlist::setup_t &setup) { } - inline netlist_mame_device_t &nl_owner() const { return *m_owner; } + inline netlist_mame_device &nl_owner() const { return *m_owner; } - inline bool is_sound_device() const { return (m_sound != nullptr); } + inline bool is_sound_device() const { return bool(m_sound); } - inline void update_to_current_time() - { - m_sound->get_stream()->update(); - } + inline void update_to_current_time() { m_sound->get_stream()->update(); } static void static_set_mult_offset(device_t &device, const double mult, const double offset); @@ -295,22 +259,20 @@ protected: double m_mult; private: - netlist_mame_device_t *m_owner; - netlist_mame_sound_device_t *m_sound; + netlist_mame_device *const m_owner; + netlist_mame_sound_device *const m_sound; }; // ---------------------------------------------------------------------------------------- -// netlist_mame_analog_input_t +// netlist_mame_analog_input_device // ---------------------------------------------------------------------------------------- -class netlist_mame_analog_input_t : public device_t, - public netlist_mame_sub_interface +class netlist_mame_analog_input_device : public device_t, public netlist_mame_sub_interface { public: // construction/destruction - netlist_mame_analog_input_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual ~netlist_mame_analog_input_t() { } + netlist_mame_analog_input_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); static void static_set_name(device_t &device, const char *param_name); @@ -319,7 +281,7 @@ public: inline DECLARE_INPUT_CHANGED_MEMBER(input_changed) { if (m_auto_port) - write(((double) newval - (double) field.minval())/((double) (field.maxval()-field.minval()) ) ); + write((double(newval) - double(field.minval())) / double(field.maxval() - field.minval())); else write(newval); } @@ -340,21 +302,18 @@ private: }; // ---------------------------------------------------------------------------------------- -// netlist_mame_analog_output_t +// netlist_mame_analog_output_device // ---------------------------------------------------------------------------------------- -typedef device_delegate netlist_analog_output_delegate; - -class netlist_mame_analog_output_t : public device_t, - public netlist_mame_sub_interface +class netlist_mame_analog_output_device : public device_t, public netlist_mame_sub_interface { public: + typedef device_delegate output_delegate; // construction/destruction - netlist_mame_analog_output_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual ~netlist_mame_analog_output_t() { } + netlist_mame_analog_output_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - static void static_set_params(device_t &device, const char *in_name, netlist_analog_output_delegate adelegate); + static void static_set_params(device_t &device, const char *in_name, output_delegate &&adelegate); protected: // device-level overrides @@ -363,25 +322,22 @@ protected: private: const char *m_in; - netlist_analog_output_delegate m_delegate; + output_delegate m_delegate; }; // ---------------------------------------------------------------------------------------- -// netlist_mame_logic_output_t +// netlist_mame_logic_output_device // ---------------------------------------------------------------------------------------- -typedef device_delegate netlist_logic_output_delegate; - -class netlist_mame_logic_output_t : public device_t, - public netlist_mame_sub_interface +class netlist_mame_logic_output_device : public device_t, public netlist_mame_sub_interface { public: + typedef device_delegate output_delegate; // construction/destruction - netlist_mame_logic_output_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual ~netlist_mame_logic_output_t() { } + netlist_mame_logic_output_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - static void static_set_params(device_t &device, const char *in_name, netlist_logic_output_delegate adelegate); + static void static_set_params(device_t &device, const char *in_name, output_delegate &&adelegate); protected: // device-level overrides @@ -390,21 +346,18 @@ protected: private: const char *m_in; - netlist_logic_output_delegate m_delegate; + output_delegate m_delegate; }; // ---------------------------------------------------------------------------------------- -// netlist_mame_int_input_t +// netlist_mame_int_input_device // ---------------------------------------------------------------------------------------- -class netlist_mame_int_input_t : public device_t, - public netlist_mame_sub_interface +class netlist_mame_int_input_device : public device_t, public netlist_mame_sub_interface { public: - // construction/destruction - netlist_mame_int_input_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual ~netlist_mame_int_input_t() { } + netlist_mame_int_input_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); static void static_set_params(device_t &device, const char *param_name, const uint32_t mask, const uint32_t shift); @@ -431,17 +384,14 @@ private: // ---------------------------------------------------------------------------------------- -// netlist_mame_logic_input_t +// netlist_mame_logic_input_device // ---------------------------------------------------------------------------------------- -class netlist_mame_logic_input_t : public device_t, - public netlist_mame_sub_interface +class netlist_mame_logic_input_device : public device_t, public netlist_mame_sub_interface { public: - // construction/destruction - netlist_mame_logic_input_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual ~netlist_mame_logic_input_t() { } + netlist_mame_logic_input_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); static void static_set_params(device_t &device, const char *param_name, const uint32_t shift); @@ -466,17 +416,14 @@ private: }; // ---------------------------------------------------------------------------------------- -// netlist_ram_pointer_t +// netlist_mame_ram_pointer_device // ---------------------------------------------------------------------------------------- -class netlist_ram_pointer_t: public device_t, - public netlist_mame_sub_interface +class netlist_mame_ram_pointer_device : public device_t, public netlist_mame_sub_interface { public: - // construction/destruction - netlist_ram_pointer_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual ~netlist_ram_pointer_t() { } + netlist_mame_ram_pointer_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); uint8_t* ptr() const { return m_data; } @@ -494,17 +441,14 @@ private: }; // ---------------------------------------------------------------------------------------- -// netlist_mame_stream_input_t +// netlist_mame_stream_input_device // ---------------------------------------------------------------------------------------- -class netlist_mame_stream_input_t : public device_t, - public netlist_mame_sub_interface +class netlist_mame_stream_input_device : public device_t, public netlist_mame_sub_interface { public: - // construction/destruction - netlist_mame_stream_input_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual ~netlist_mame_stream_input_t() { } + netlist_mame_stream_input_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); static void static_set_params(device_t &device, int channel, const char *param_name); @@ -518,17 +462,14 @@ private: }; // ---------------------------------------------------------------------------------------- -// netlist_mame_stream_output_t +// netlist_mame_stream_output_device // ---------------------------------------------------------------------------------------- -class netlist_mame_stream_output_t : public device_t, - public netlist_mame_sub_interface +class netlist_mame_stream_output_device : public device_t, public netlist_mame_sub_interface { public: - // construction/destruction - netlist_mame_stream_output_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual ~netlist_mame_stream_output_t() { } + netlist_mame_stream_output_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); static void static_set_params(device_t &device, int channel, const char *out_name); @@ -536,6 +477,7 @@ protected: // device-level overrides virtual void device_start() override; virtual void custom_netlist_additions(netlist::setup_t &setup) override; + private: uint32_t m_channel; const char *m_out_name; @@ -543,17 +485,16 @@ private: // device type definition -extern const device_type NETLIST_CORE; -extern const device_type NETLIST_CPU; -extern const device_type NETLIST_SOUND; -extern const device_type NETLIST_ANALOG_INPUT; -extern const device_type NETLIST_LOGIC_INPUT; -extern const device_type NETLIST_INT_INPUT; -extern const device_type NETLIST_RAM_POINTER; - -extern const device_type NETLIST_LOGIC_OUTPUT; -extern const device_type NETLIST_ANALOG_OUTPUT; -extern const device_type NETLIST_STREAM_INPUT; -extern const device_type NETLIST_STREAM_OUTPUT; - -#endif +DECLARE_DEVICE_TYPE(NETLIST_CORE, netlist_mame_device) +DECLARE_DEVICE_TYPE(NETLIST_CPU, netlist_mame_cpu_device) +DECLARE_DEVICE_TYPE(NETLIST_SOUND, netlist_mame_sound_device) +DECLARE_DEVICE_TYPE(NETLIST_ANALOG_INPUT, netlist_mame_analog_input_device) +DECLARE_DEVICE_TYPE(NETLIST_LOGIC_INPUT, netlist_mame_logic_input_device) +DECLARE_DEVICE_TYPE(NETLIST_INT_INPUT, netlist_mame_int_input_device) +DECLARE_DEVICE_TYPE(NETLIST_RAM_POINTER, netlist_mame_ram_pointer_device) +DECLARE_DEVICE_TYPE(NETLIST_LOGIC_OUTPUT, netlist_mame_logic_output_device) +DECLARE_DEVICE_TYPE(NETLIST_ANALOG_OUTPUT, netlist_mame_analog_output_device) +DECLARE_DEVICE_TYPE(NETLIST_STREAM_INPUT, netlist_mame_stream_input_device) +DECLARE_DEVICE_TYPE(NETLIST_STREAM_OUTPUT, netlist_mame_stream_output_device) + +#endif // MAME_MACHINE_NETLIST_H diff --git a/src/devices/machine/nmc9306.cpp b/src/devices/machine/nmc9306.cpp index 95ebedd10c7..d20e77a398b 100644 --- a/src/devices/machine/nmc9306.cpp +++ b/src/devices/machine/nmc9306.cpp @@ -9,14 +9,15 @@ #include "emu.h" #include "nmc9306.h" +//#define VERBOSE 1 +#include "logmacro.h" + //************************************************************************** // MACROS / CONSTANTS //************************************************************************** -#define LOG 0 - #define RAM_SIZE 32 @@ -56,7 +57,7 @@ enum //************************************************************************** // device type definition -const device_type NMC9306 = device_creator; +DEFINE_DEVICE_TYPE(NMC9306, nmc9306_device, "nmc9306", "NMC9306 EEPROM") //------------------------------------------------- // nmc9306_device - constructor @@ -104,7 +105,7 @@ inline void nmc9306_device::erase(offs_t offset) //------------------------------------------------- nmc9306_device::nmc9306_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, NMC9306, "NMC9306", tag, owner, clock, "nmc9306", __FILE__), + : device_t(mconfig, NMC9306, tag, owner, clock), device_nvram_interface(mconfig, *this), m_state(STATE_IDLE), m_ewen(false) @@ -189,7 +190,7 @@ WRITE_LINE_MEMBER( nmc9306_device::sk_w ) switch (m_state) { case STATE_IDLE: - if (LOG) logerror("NMC9306 '%s' Idle %u\n", tag(), m_di); + LOG("NMC9306 Idle %u\n", m_di); if (m_di) { @@ -200,7 +201,7 @@ WRITE_LINE_MEMBER( nmc9306_device::sk_w ) break; case STATE_COMMAND: - if (LOG) logerror("NMC9306 '%s' Command Bit %u\n", tag(), m_di); + LOG("NMC9306 Command Bit %u\n", m_di); m_command <<= 1; m_command |= m_di; @@ -214,7 +215,7 @@ WRITE_LINE_MEMBER( nmc9306_device::sk_w ) break; case STATE_ADDRESS: - if (LOG) logerror("NMC9306 '%s' Address Bit %u\n", tag(), m_di); + LOG("NMC9306 Address Bit %u\n", m_di); m_address <<= 1; m_address |= m_di; @@ -228,21 +229,21 @@ WRITE_LINE_MEMBER( nmc9306_device::sk_w ) switch (m_command & 0x03) { case EWDS: - if (LOG) logerror("NMC9306 '%s' EWDS\n", tag()); + LOG("NMC9306 EWDS\n"); m_ewen = false; m_state = STATE_IDLE; break; case WRAL: - if (LOG) logerror("NMC9306 '%s' WRAL\n", tag()); + LOG("NMC9306 WRAL\n"); break; case ERAL: - if (LOG) logerror("NMC9306 '%s' ERAL\n", tag()); + LOG("NMC9306 ERAL\n"); break; case EWEN: - if (LOG) logerror("NMC9306 '%s' EWEN\n", tag()); + LOG("NMC9306 EWEN\n"); m_ewen = true; m_state = STATE_IDLE; break; @@ -250,18 +251,18 @@ WRITE_LINE_MEMBER( nmc9306_device::sk_w ) break; case WRITE: - if (LOG) logerror("NMC9306 '%s' WRITE %u\n", tag(), m_address & 0x0f); + LOG("NMC9306 WRITE %u\n", m_address & 0x0f); m_state = STATE_DATA_IN; break; case READ: - if (LOG) logerror("NMC9306 '%s' READ %u\n", tag(), m_address & 0x0f); + LOG("NMC9306 READ %u\n", m_address & 0x0f); m_data = read(m_address & 0x0f); m_state = STATE_DATA_OUT; break; case ERASE: - if (LOG) logerror("NMC9306 '%s' ERASE %u\n", tag(), m_address & 0x0f); + LOG("NMC9306 ERASE %u\n", m_address & 0x0f); erase(m_address & 0x0f); m_state = STATE_ERASE; break; @@ -272,7 +273,7 @@ WRITE_LINE_MEMBER( nmc9306_device::sk_w ) break; case STATE_DATA_IN: - if (LOG) logerror("NMC9306 '%s' Data Bit IN %u\n", tag(), m_di); + LOG("NMC9306 Data Bit IN %u\n", m_di); m_data <<= 1; m_data |= m_di; @@ -287,7 +288,7 @@ WRITE_LINE_MEMBER( nmc9306_device::sk_w ) break; case STATE_DATA_OUT: - if (LOG) logerror("NMC9306 '%s' Data Bit OUT %u\n", tag(), m_di); + LOG("NMC9306 Data Bit OUT %u\n", m_di); m_do = BIT(m_data, 15); m_data <<= 1; diff --git a/src/devices/machine/nmc9306.h b/src/devices/machine/nmc9306.h index de929be42ff..097742685aa 100644 --- a/src/devices/machine/nmc9306.h +++ b/src/devices/machine/nmc9306.h @@ -13,17 +13,10 @@ **********************************************************************/ -#pragma once - -#ifndef __NMC9306__ -#define __NMC9306__ - - - +#ifndef MAME_MACHINE_NMC9306_H +#define MAME_MACHINE_NMC9306_H -//************************************************************************** -// MACROS / CONSTANTS -//************************************************************************** +#pragma once @@ -32,8 +25,8 @@ // INTERFACE CONFIGURATION MACROS //************************************************************************** -#define MCFG_NMC9306_ADD(_tag) \ - MCFG_DEVICE_ADD(_tag, NMC9306, 0) +#define MCFG_NMC9306_ADD(tag) \ + MCFG_DEVICE_ADD((tag), NMC9306, 0) @@ -86,7 +79,6 @@ private: // device type definition -extern const device_type NMC9306; - +DECLARE_DEVICE_TYPE(NMC9306, nmc9306_device) -#endif +#endif // MAME_MACHINE_NMC9306_H diff --git a/src/devices/machine/nsc810.cpp b/src/devices/machine/nsc810.cpp index a5314ecc3ab..bf06c34d9dc 100644 --- a/src/devices/machine/nsc810.cpp +++ b/src/devices/machine/nsc810.cpp @@ -15,18 +15,28 @@ #include "emu.h" #include "nsc810.h" +#define VERBOSE 1 +#include "logmacro.h" + + //************************************************************************** // DEVICE DEFINITIONS //************************************************************************** -#define LOG (1) - -const device_type NSC810 = device_creator; +DEFINE_DEVICE_TYPE(NSC810, nsc810_device, "nsc810", "National Semiconductor NSC810 RAM-I/O-Timer") nsc810_device::nsc810_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, NSC810, "National Semiconductor NSC810", tag, owner, clock, "nsc810", __FILE__), m_portA_latch(0), m_portB_latch(0), m_portC_latch(0), - m_ddrA(0), m_ddrB(0), m_ddrC(0), m_mode(0), m_timer0(nullptr), m_timer1(nullptr), m_timer0_mode(0), m_timer1_mode(0), m_timer0_counter(0), m_timer1_counter(0), - m_timer0_base(0), m_timer1_base(0), m_timer0_running(false), m_timer1_running(false), m_timer0_clock(0), m_timer1_clock(0), m_ramselect(false), + device_t(mconfig, NSC810, tag, owner, clock), + m_portA_latch(0), m_portB_latch(0), m_portC_latch(0), + m_ddrA(0), m_ddrB(0), m_ddrC(0), + m_mode(0), + m_timer0(nullptr), m_timer1(nullptr), + m_timer0_mode(0), m_timer1_mode(0), + m_timer0_counter(0), m_timer1_counter(0), + m_timer0_base(0), m_timer1_base(0), + m_timer0_running(false), m_timer1_running(false), + m_timer0_clock(0), m_timer1_clock(0), + m_ramselect(false), m_portA_r(*this), m_portB_r(*this), m_portC_r(*this), @@ -89,7 +99,7 @@ void nsc810_device::device_timer(emu_timer &timer, device_timer_id id, int param { m_timer0_out(ASSERT_LINE); m_timer0_counter = m_timer0_base; - if(LOG) logerror("NSC810 '%s': Timer 0 output set\n",tag()); + LOG("NSC810: Timer 0 output set\n"); } } break; @@ -101,7 +111,7 @@ void nsc810_device::device_timer(emu_timer &timer, device_timer_id id, int param { m_timer1_out(ASSERT_LINE); m_timer1_counter = m_timer1_base; - if(LOG) logerror("NSC810 '%s': Timer 1 output set\n",tag()); + LOG("NSC810: Timer 1 output set\n"); } } break; @@ -124,17 +134,17 @@ READ8_MEMBER(nsc810_device::read) case REG_PORTA: res = m_portA_latch &= m_ddrA; res |= (m_portA_r() & ~m_ddrA); - //if(LOG) logerror("NSC810 '%s': Port A data read %02x\n",tag(),res); + //LOG("NSC810: Port A data read %02x\n",res); break; case REG_PORTB: res = m_portB_latch &= m_ddrB; res |= (m_portB_r() & ~m_ddrB); - //if(LOG) logerror("NSC810 '%s': Port B data read %02x\n",tag(),res); + //LOG("NSC810: Port B data read %02x\n",res); break; case REG_PORTC: res = m_portC_latch &= m_ddrC; res |= (m_portC_r() & ~m_ddrC); - //if(LOG) logerror("NSC810 '%s': Port C data read %02x\n",tag(),res); + //LOG("NSC810: Port C data read %02x\n",res); break; case REG_MODE_TIMER0: res = m_timer0_mode; @@ -147,7 +157,7 @@ READ8_MEMBER(nsc810_device::read) if((m_timer0_mode & 0x07) == 0x01 || (m_timer0_mode & 0x07) == 0x02) { m_timer0_out(CLEAR_LINE); - if(LOG) logerror("NSC810 '%s': Timer 0 output reset\n",tag()); + LOG("NSC810: Timer 0 output reset\n"); } break; case REG_TIMER0_HIGH: @@ -155,7 +165,7 @@ READ8_MEMBER(nsc810_device::read) if((m_timer0_mode & 0x07) == 0x01 || (m_timer0_mode & 0x07) == 0x02) { m_timer0_out(CLEAR_LINE); - if(LOG) logerror("NSC810 '%s': Timer 0 output reset\n",tag()); + LOG("NSC810: Timer 0 output reset\n"); } break; case REG_TIMER1_LOW: @@ -163,7 +173,7 @@ READ8_MEMBER(nsc810_device::read) if((m_timer1_mode & 0x07) == 0x01 || (m_timer1_mode & 0x07) == 0x02) { m_timer1_out(0); - if(LOG) logerror("NSC810 '%s': Timer 1 output reset\n",tag()); + LOG("NSC810: Timer 1 output reset\n"); } break; case REG_TIMER1_HIGH: @@ -171,11 +181,11 @@ READ8_MEMBER(nsc810_device::read) if((m_timer1_mode & 0x07) == 0x01 || (m_timer1_mode & 0x07) == 0x02) { m_timer1_out(0); - if(LOG) logerror("NSC810 '%s': Timer 1 output reset\n",tag()); + LOG("NSC810: Timer 1 output reset\n"); } break; default: - if(LOG) logerror("NSC810 '%s': unused port %02x read\n",tag(),offset); + LOG("NSC810: unused port %02x read\n",offset); } } return res; @@ -197,75 +207,75 @@ WRITE8_MEMBER(nsc810_device::write) case REG_PORTA: m_portA_latch = data & ~m_ddrA; m_portA_w((0xff & ~m_ddrA) | (data & m_ddrA)); - if(LOG) logerror("NSC810 '%s': Port A data write %02x\n",tag(),data); + LOG("NSC810: Port A data write %02x\n",data); break; case REG_PORTB: m_portB_latch = data & ~m_ddrB; m_portB_w((0xff & ~m_ddrB) | (data & m_ddrB)); - if(LOG) logerror("NSC810 '%s': Port B data write %02x\n",tag(),data); + LOG("NSC810: Port B data write %02x\n",data); break; case REG_PORTC: m_portC_latch = data & ~m_ddrC; m_portC_w((0xff & ~m_ddrC) | (data & m_ddrC)); - if(LOG) logerror("NSC810 '%s': Port C data write %02x\n",tag(),data); + LOG("NSC810: Port C data write %02x\n",data); break; case REG_DDRA: m_ddrA = data; - if(LOG) logerror("NSC810 '%s': Port A direction write %02x\n",tag(),data); + LOG("NSC810: Port A direction write %02x\n",data); break; case REG_DDRB: m_ddrB = data; - if(LOG) logerror("NSC810 '%s': Port B direction write %02x\n",tag(),data); + LOG("NSC810: Port B direction write %02x\n",data); break; case REG_DDRC: m_ddrC = data; - if(LOG) logerror("NSC810 '%s': Port C direction write %02x\n",tag(),data); + LOG("NSC810: Port C direction write %02x\n",data); break; case REG_MODE_DEF: - if(LOG) logerror("NSC810 '%s': Mode Definition write %02x\n",tag(),data); + LOG("NSC810: Mode Definition write %02x\n",data); break; case REG_PORTA_BITCLR: - if(LOG) logerror("NSC810 '%s': Port A bit-clear write %02x\n",tag(),data); + LOG("NSC810: Port A bit-clear write %02x\n",data); break; case REG_PORTB_BITCLR: - if(LOG) logerror("NSC810 '%s': Port B bit-clear write %02x\n",tag(),data); + LOG("NSC810: Port B bit-clear write %02x\n",data); break; case REG_PORTC_BITCLR: - if(LOG) logerror("NSC810 '%s': Port C bit-clear write %02x\n",tag(),data); + LOG("NSC810: Port C bit-clear write %02x\n",data); break; case REG_PORTA_BITSET: - if(LOG) logerror("NSC810 '%s': Port A bit-set write %02x\n",tag(),data); + LOG("NSC810: Port A bit-set write %02x\n",data); break; case REG_PORTB_BITSET: - if(LOG) logerror("NSC810 '%s': Port B bit-set write %02x\n",tag(),data); + LOG("NSC810: Port B bit-set write %02x\n",data); break; case REG_PORTC_BITSET: - if(LOG) logerror("NSC810 '%s': Port C bit-set write %02x\n",tag(),data); + LOG("NSC810: Port C bit-set write %02x\n",data); break; case REG_TIMER0_LOW: m_timer0_base = (m_timer0_base & 0xff00) | data; m_timer0_counter = (m_timer0_counter & 0xff00) | data; - if(LOG) logerror("NSC810 '%s': Timer 0 low-byte write %02x (base=%04x)\n",tag(),data,m_timer0_base); + LOG("NSC810: Timer 0 low-byte write %02x (base=%04x)\n",data,m_timer0_base); break; case REG_TIMER0_HIGH: m_timer0_base = (m_timer0_base & 0x00ff) | (data << 8); m_timer0_counter = (m_timer0_counter & 0x00ff) | (data << 8); - if(LOG) logerror("NSC810 '%s': Timer 0 high-byte write %02x (base=%04x)\n",tag(),data,m_timer0_base); + LOG("NSC810: Timer 0 high-byte write %02x (base=%04x)\n",data,m_timer0_base); break; case REG_TIMER1_LOW: m_timer1_base = (m_timer1_base & 0xff00) | data; m_timer1_counter = (m_timer1_counter & 0xff00) | data; - if(LOG) logerror("NSC810 '%s': Timer 1 low-byte write %02x (base=%04x)\n",tag(),data,m_timer1_base); + LOG("NSC810: Timer 1 low-byte write %02x (base=%04x)\n",data,m_timer1_base); break; case REG_TIMER1_HIGH: m_timer1_base = (m_timer1_base & 0x00ff) | (data << 8); m_timer1_counter = (m_timer1_counter & 0x00ff) | (data << 8); - if(LOG) logerror("NSC810 '%s': Timer 1 high-byte write %02x (base=%04x)\n",tag(),data,m_timer1_base); + LOG("NSC810: Timer 1 high-byte write %02x (base=%04x)\n",data,m_timer1_base); break; case REG_TIMER0_STOP: m_timer0_running = false; m_timer0->reset(); - if(LOG) logerror("NSC810 '%s': Timer 0 Stop write %02x\n",tag(),data); + LOG("NSC810: Timer 0 Stop write %02x\n",tag(),data); break; case REG_TIMER0_START: if((m_timer0_mode & 0x07) != 0x00 && (m_timer0_mode & 0x07) != 0x07) @@ -280,12 +290,12 @@ WRITE8_MEMBER(nsc810_device::write) rate = m_timer0_clock; m_timer0->adjust(attotime::zero,0,attotime::from_hz(rate)); } - if(LOG) logerror("NSC810 '%s': Timer 0 Start write %02x\n",tag(),data); + LOG("NSC810: Timer 0 Start write %02x\n",data); break; case REG_TIMER1_STOP: m_timer1_running = false; m_timer1->reset(); - if(LOG) logerror("NSC810 '%s': Timer 1 Stop write %02x\n",tag(),data); + LOG("NSC810: Timer 1 Stop write %02x\n",data); break; case REG_TIMER1_START: if((m_timer1_mode & 0x07) != 0x00 && (m_timer1_mode & 0x07) != 0x07) @@ -298,18 +308,18 @@ WRITE8_MEMBER(nsc810_device::write) rate = m_timer0_clock; m_timer1->adjust(attotime::zero,0,attotime::from_hz(rate)); } - if(LOG) logerror("NSC810 '%s': Timer 1 Start write %02x\n",tag(),data); + LOG("NSC810: Timer 1 Start write %02x\n",data); break; case REG_MODE_TIMER0: m_timer0_mode = data; - if(LOG) logerror("NSC810 '%s': Timer 0 Mode write %02x\n",tag(),data); + LOG("NSC810: Timer 0 Mode write %02x\n",data); break; case REG_MODE_TIMER1: m_timer1_mode = data; - if(LOG) logerror("NSC810 '%s': Timer 1 Mode write %02x\n",tag(),data); + LOG("NSC810: Timer 1 Mode write %02x\n",data); break; default: - logerror("NSC810 '%s': Unused register %02x write %02x\n",tag(),offset,data); + logerror("NSC810: Unused register %02x write %02x\n",offset,data); } } } diff --git a/src/devices/machine/nsc810.h b/src/devices/machine/nsc810.h index 8d3c796ef14..d029e56bced 100644 --- a/src/devices/machine/nsc810.h +++ b/src/devices/machine/nsc810.h @@ -6,8 +6,10 @@ * Created on: 10/03/2014 */ -#ifndef NSC810_H_ -#define NSC810_H_ +#ifndef MAME_MACHINE_NSC810_H +#define MAME_MACHINE_NSC810_H + +#pragma once class nsc810_device : public device_t @@ -16,14 +18,14 @@ public: // construction/destruction nsc810_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_portA_read_callback(device_t &device, _Object object) { return downcast(device).m_portA_r.set_callback(object); } - template static devcb_base &set_portB_read_callback(device_t &device, _Object object) { return downcast(device).m_portB_r.set_callback(object); } - template static devcb_base &set_portC_read_callback(device_t &device, _Object object) { return downcast(device).m_portC_r.set_callback(object); } - template static devcb_base &set_portA_write_callback(device_t &device, _Object object) { return downcast(device).m_portA_w.set_callback(object); } - template static devcb_base &set_portB_write_callback(device_t &device, _Object object) { return downcast(device).m_portB_w.set_callback(object); } - template static devcb_base &set_portC_write_callback(device_t &device, _Object object) { return downcast(device).m_portC_w.set_callback(object); } - template static devcb_base &set_timer0_callback(device_t &device, _Object object) { return downcast(device).m_timer0_out.set_callback(object); } - template static devcb_base &set_timer1_callback(device_t &device, _Object object) { return downcast(device).m_timer1_out.set_callback(object); } + template static devcb_base &set_portA_read_callback(device_t &device, Object &&cb) { return downcast(device).m_portA_r.set_callback(std::forward(cb)); } + template static devcb_base &set_portB_read_callback(device_t &device, Object &&cb) { return downcast(device).m_portB_r.set_callback(std::forward(cb)); } + template static devcb_base &set_portC_read_callback(device_t &device, Object &&cb) { return downcast(device).m_portC_r.set_callback(std::forward(cb)); } + template static devcb_base &set_portA_write_callback(device_t &device, Object &&cb) { return downcast(device).m_portA_w.set_callback(std::forward(cb)); } + template static devcb_base &set_portB_write_callback(device_t &device, Object &&cb) { return downcast(device).m_portB_w.set_callback(std::forward(cb)); } + template static devcb_base &set_portC_write_callback(device_t &device, Object &&cb) { return downcast(device).m_portC_w.set_callback(std::forward(cb)); } + template static devcb_base &set_timer0_callback(device_t &device, Object &&cb) { return downcast(device).m_timer0_out.set_callback(std::forward(cb)); } + template static devcb_base &set_timer1_callback(device_t &device, Object &&cb) { return downcast(device).m_timer1_out.set_callback(std::forward(cb)); } void set_timer0_clock(uint32_t clk) { m_timer0_clock = clk; } void set_timer1_clock(uint32_t clk) { m_timer1_clock = clk; } @@ -67,8 +69,8 @@ private: devcb_write_line m_timer0_out; devcb_write_line m_timer1_out; - static const device_timer_id TIMER0_CLOCK = 0; - static const device_timer_id TIMER1_CLOCK = 1; + static constexpr device_timer_id TIMER0_CLOCK = 0; + static constexpr device_timer_id TIMER1_CLOCK = 1; enum { @@ -128,7 +130,6 @@ private: devcb = &nsc810_device::set_timer1_callback(*device, DEVCB_##_write); // device type definition -extern const device_type NSC810; - +DECLARE_DEVICE_TYPE(NSC810, nsc810_device) -#endif /* NSC810_H_ */ +#endif // MAME_MACHINE_NSC810_H diff --git a/src/devices/machine/nscsi_bus.cpp b/src/devices/machine/nscsi_bus.cpp index 819290ea904..c2e3426e4b7 100644 --- a/src/devices/machine/nscsi_bus.cpp +++ b/src/devices/machine/nscsi_bus.cpp @@ -3,14 +3,15 @@ #include "emu.h" #include "nscsi_bus.h" -const device_type NSCSI_BUS = device_creator; -const device_type NSCSI_CONNECTOR = device_creator; +DEFINE_DEVICE_TYPE(NSCSI_BUS, nscsi_bus_device, "nscsi_bus", "SCSI Bus (new)") +DEFINE_DEVICE_TYPE(NSCSI_CONNECTOR, nscsi_connector, "nscsi_connector", "SCSI Connector Abstraction (new)") + nscsi_bus_device::nscsi_bus_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, NSCSI_BUS, "NSCSI Bus", tag, owner, clock, "nscsi_bus", __FILE__), data(0), ctrl(0) + device_t(mconfig, NSCSI_BUS, tag, owner, clock), data(0), ctrl(0) { devcnt = 0; - memset(dev, 0, sizeof(dev)); + std::fill(std::begin(dev), std::end(dev), dev_t{ nullptr, 0, 0, 0 }); } void nscsi_bus_device::device_start() @@ -134,7 +135,7 @@ void nscsi_bus_device::device_config_complete() nscsi_connector::nscsi_connector(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, NSCSI_CONNECTOR, "NSCSI Connector Abstraction", tag, owner, clock, "nscsi_connector", __FILE__), + device_t(mconfig, NSCSI_CONNECTOR, tag, owner, clock), device_slot_interface(mconfig, *this) { } @@ -152,8 +153,8 @@ nscsi_device *nscsi_connector::get_device() return dynamic_cast(get_card_device()); } -nscsi_device::nscsi_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), +nscsi_device::nscsi_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), device_slot_card_interface(mconfig, *this) { scsi_id = scsi_refid = -1; @@ -176,11 +177,6 @@ void nscsi_device::device_start() save_item(NAME(scsi_id)); } -nscsi_full_device::nscsi_full_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - nscsi_device(mconfig, type, name, tag, owner, clock, shortname, source) -{ -} - const char *const nscsi_full_device::command_names[256] = { /* 00 */ "TEST_UNIT_READY", "REZERO", "?", "REQUEST_SENSE", "FORMAT_UNIT", "?", "?", "REASSIGN_BLOCKS", diff --git a/src/devices/machine/nscsi_bus.h b/src/devices/machine/nscsi_bus.h index d4e2faa0323..16a69b22444 100644 --- a/src/devices/machine/nscsi_bus.h +++ b/src/devices/machine/nscsi_bus.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Olivier Galibert -#ifndef __NSCSI_BUS_H__ -#define __NSCSI_BUS_H__ +#ifndef MAME_MACHINE_NSCSI_BUS_H +#define MAME_MACHINE_NSCSI_BUS_H + +#pragma once #define MCFG_NSCSI_BUS_ADD(_tag) \ @@ -59,8 +61,7 @@ protected: virtual void device_start() override; }; -class nscsi_device : public device_t, - public device_slot_card_interface +class nscsi_device : public device_t, public device_slot_card_interface { public: // Here because the biggest users are the devices, not the bus @@ -85,23 +86,22 @@ public: S_PHASE_MASK = S_MSG|S_CTL|S_INP }; - nscsi_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - void connect_to_bus(nscsi_bus_device *bus, int refid, int default_scsi_id); virtual void scsi_ctrl_changed(); + protected: + nscsi_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + virtual void device_start() override; + int scsi_id; int scsi_refid; nscsi_bus_device *scsi_bus; - - virtual void device_start() override; }; class nscsi_full_device : public nscsi_device { public: - nscsi_full_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - virtual void scsi_ctrl_changed() override; protected: enum { SCSI_TIMER = 100 }; @@ -271,9 +271,7 @@ protected: SBUF_SENSE }; - uint8_t scsi_cmdbuf[4096], scsi_sense_buffer[8]; - int scsi_cmdsize; - uint8_t scsi_identify; + using nscsi_device::nscsi_device; virtual void device_start() override; virtual void device_reset() override; @@ -356,6 +354,10 @@ protected: // Fast negation period (30ns) virtual attotime scsi_fast_negation_period(); + uint8_t scsi_cmdbuf[4096], scsi_sense_buffer[8]; + int scsi_cmdsize; + uint8_t scsi_identify; + private: enum { IDLE @@ -421,7 +423,7 @@ private: }; -extern const device_type NSCSI_BUS; -extern const device_type NSCSI_CONNECTOR; +DECLARE_DEVICE_TYPE(NSCSI_BUS, nscsi_bus_device) +DECLARE_DEVICE_TYPE(NSCSI_CONNECTOR, nscsi_connector) -#endif +#endif // MAME_MACHINE_NSCSI_BUS_H diff --git a/src/devices/machine/nscsi_cb.cpp b/src/devices/machine/nscsi_cb.cpp index 71e83f9a807..0bd3f76af21 100644 --- a/src/devices/machine/nscsi_cb.cpp +++ b/src/devices/machine/nscsi_cb.cpp @@ -3,10 +3,10 @@ #include "emu.h" #include "nscsi_cb.h" -const device_type NSCSI_CB = device_creator; +DEFINE_DEVICE_TYPE(NSCSI_CB, nscsi_callback_device, "nscsi_cb", "SCSI callback (new)") nscsi_callback_device::nscsi_callback_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nscsi_device(mconfig, NSCSI_CB, "SCSI callback (new)", tag, owner, clock, "nscsi_cb", __FILE__), + : nscsi_device(mconfig, NSCSI_CB, tag, owner, clock), m_write_rst(*this), m_write_atn(*this), m_write_ack(*this), diff --git a/src/devices/machine/nscsi_cb.h b/src/devices/machine/nscsi_cb.h index 9b193c6c876..27279e5eb04 100644 --- a/src/devices/machine/nscsi_cb.h +++ b/src/devices/machine/nscsi_cb.h @@ -1,10 +1,13 @@ // license:BSD-3-Clause // copyright-holders:Olivier Galibert -#ifndef NSCSI_CB_H -#define NSCSI_CB_H +#ifndef MAME_MACHINE_NSCSI_CB_H +#define MAME_MACHINE_NSCSI_CB_H + +#pragma once #include "machine/nscsi_bus.h" + #define MCFG_NSCSICB_RST_HANDLER(_line) \ devcb = &downcast(device)->set_rst_callback(DEVCB_##_line); @@ -32,20 +35,21 @@ #define MCFG_NSCSICB_BSY_HANDLER(_line) \ downcast(device)->set_bsy_callback(DEVCB_##_line); + class nscsi_callback_device : public nscsi_device { public: nscsi_callback_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template devcb_base &set_rst_callback(_line line) { return m_write_rst.set_callback(line); } - template devcb_base &set_atn_callback(_line line) { return m_write_atn.set_callback(line); } - template devcb_base &set_ack_callback(_line line) { return m_write_ack.set_callback(line); } - template devcb_base &set_req_callback(_line line) { return m_write_req.set_callback(line); } - template devcb_base &set_msg_callback(_line line) { return m_write_msg.set_callback(line); } - template devcb_base &set_io_callback(_line line) { return m_write_io.set_callback(line); } - template devcb_base &set_cd_callback(_line line) { return m_write_cd.set_callback(line); } - template devcb_base &set_sel_callback(_line line) { return m_write_sel.set_callback(line); } - template devcb_base &set_bsy_callback(_line line) { return m_write_bsy.set_callback(line); } + template devcb_base &set_rst_callback(Line &&cb) { return m_write_rst.set_callback(std::forward(cb)); } + template devcb_base &set_atn_callback(Line &&cb) { return m_write_atn.set_callback(std::forward(cb)); } + template devcb_base &set_ack_callback(Line &&cb) { return m_write_ack.set_callback(std::forward(cb)); } + template devcb_base &set_req_callback(Line &&cb) { return m_write_req.set_callback(std::forward(cb)); } + template devcb_base &set_msg_callback(Line &&cb) { return m_write_msg.set_callback(std::forward(cb)); } + template devcb_base &set_io_callback(Line &&cb) { return m_write_io.set_callback(std::forward(cb)); } + template devcb_base &set_cd_callback(Line &&cb) { return m_write_cd.set_callback(std::forward(cb)); } + template devcb_base &set_sel_callback(Line &&cb) { return m_write_sel.set_callback(std::forward(cb)); } + template devcb_base &set_bsy_callback(Line &&cb) { return m_write_bsy.set_callback(std::forward(cb)); } virtual void scsi_ctrl_changed() override; @@ -91,6 +95,6 @@ protected: uint32_t m_ctrl; }; -extern const device_type NSCSI_CB; +DECLARE_DEVICE_TYPE(NSCSI_CB, nscsi_callback_device) -#endif +#endif // MAME_MACHINE_NSCSI_CB_H diff --git a/src/devices/machine/nscsi_cd.cpp b/src/devices/machine/nscsi_cd.cpp index 8488907ee64..08559e6e99d 100644 --- a/src/devices/machine/nscsi_cd.cpp +++ b/src/devices/machine/nscsi_cd.cpp @@ -4,10 +4,10 @@ #include "machine/nscsi_cd.h" #include "imagedev/chd_cd.h" -const device_type NSCSI_CDROM = device_creator; +DEFINE_DEVICE_TYPE(NSCSI_CDROM, nscsi_cdrom_device, "scsi_cdrom", "SCSI CD-ROM") nscsi_cdrom_device::nscsi_cdrom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - nscsi_full_device(mconfig, NSCSI_CDROM, "SCSI CDROM", tag, owner, clock, "scsi_cdrom", __FILE__), cdrom(nullptr), bytes_per_sector(0), lba(0), cur_lba(0), blocks(0) + nscsi_full_device(mconfig, NSCSI_CDROM, tag, owner, clock), cdrom(nullptr), bytes_per_sector(0), lba(0), cur_lba(0), blocks(0) { } diff --git a/src/devices/machine/nscsi_cd.h b/src/devices/machine/nscsi_cd.h index 1299d9bfd8b..34631b5e246 100644 --- a/src/devices/machine/nscsi_cd.h +++ b/src/devices/machine/nscsi_cd.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Olivier Galibert -#ifndef __NSCSI_CD_H__ -#define __NSCSI_CD_H__ +#ifndef MAME_MACHINE_NSCSI_CD_H +#define MAME_MACHINE_NSCSI_CD_H + +#pragma once #include "machine/nscsi_bus.h" #include "cdrom.h" @@ -28,6 +30,6 @@ private: void return_no_cd(); }; -extern const device_type NSCSI_CDROM; +DECLARE_DEVICE_TYPE(NSCSI_CDROM, nscsi_cdrom_device) -#endif +#endif // MAME_MACHINE_NSCSI_CD_H diff --git a/src/devices/machine/nscsi_hd.cpp b/src/devices/machine/nscsi_hd.cpp index e45f78036d1..10afb96a8a4 100644 --- a/src/devices/machine/nscsi_hd.cpp +++ b/src/devices/machine/nscsi_hd.cpp @@ -4,15 +4,15 @@ #include "machine/nscsi_hd.h" #include "imagedev/harddriv.h" -const device_type NSCSI_HARDDISK = device_creator; +DEFINE_DEVICE_TYPE(NSCSI_HARDDISK, nscsi_harddisk_device, "scsi_harddisk", "SCSI Hard Disk") nscsi_harddisk_device::nscsi_harddisk_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - nscsi_full_device(mconfig, NSCSI_HARDDISK, "SCSI HARDDISK", tag, owner, clock, "scsi_harddisk", __FILE__), harddisk(nullptr), lba(0), cur_lba(0), blocks(0), bytes_per_sector(0) + nscsi_harddisk_device(mconfig, NSCSI_HARDDISK, tag, owner, clock) { } -nscsi_harddisk_device::nscsi_harddisk_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - nscsi_full_device(mconfig, type, name, tag, owner, clock, shortname, source), harddisk(nullptr), lba(0), cur_lba(0), blocks(0), bytes_per_sector(0) +nscsi_harddisk_device::nscsi_harddisk_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + nscsi_full_device(mconfig, type, tag, owner, clock), harddisk(nullptr), lba(0), cur_lba(0), blocks(0), bytes_per_sector(0) { } diff --git a/src/devices/machine/nscsi_hd.h b/src/devices/machine/nscsi_hd.h index 873f3b80c64..9032fe35c2d 100644 --- a/src/devices/machine/nscsi_hd.h +++ b/src/devices/machine/nscsi_hd.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Olivier Galibert -#ifndef __NSCSI_HD_H__ -#define __NSCSI_HD_H__ +#ifndef MAME_MACHINE_NSCSI_HD_H +#define MAME_MACHINE_NSCSI_HD_H + +#pragma once #include "machine/nscsi_bus.h" #include "harddisk.h" @@ -10,11 +12,12 @@ class nscsi_harddisk_device : public nscsi_full_device { public: nscsi_harddisk_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - nscsi_harddisk_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); virtual machine_config_constructor device_mconfig_additions() const override; protected: + nscsi_harddisk_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; virtual void device_reset() override; @@ -28,6 +31,6 @@ protected: int bytes_per_sector; }; -extern const device_type NSCSI_HARDDISK; +DECLARE_DEVICE_TYPE(NSCSI_HARDDISK, nscsi_harddisk_device) -#endif +#endif // MAME_MACHINE_NSCSI_HD_H diff --git a/src/devices/machine/nscsi_s1410.cpp b/src/devices/machine/nscsi_s1410.cpp index f35d30976ff..7b39b28a76c 100644 --- a/src/devices/machine/nscsi_s1410.cpp +++ b/src/devices/machine/nscsi_s1410.cpp @@ -3,10 +3,10 @@ #include "emu.h" #include "machine/nscsi_s1410.h" -const device_type NSCSI_S1410 = device_creator; +DEFINE_DEVICE_TYPE(NSCSI_S1410, nscsi_s1410_device, "scsi_s1410", "S1410 Hard Disk") nscsi_s1410_device::nscsi_s1410_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - nscsi_harddisk_device(mconfig, NSCSI_S1410, "S1410", tag, owner, clock, "scsi_s1410", __FILE__) + nscsi_harddisk_device(mconfig, NSCSI_S1410, tag, owner, clock) { } diff --git a/src/devices/machine/nscsi_s1410.h b/src/devices/machine/nscsi_s1410.h index 52cb014e7dd..a6234d4c027 100644 --- a/src/devices/machine/nscsi_s1410.h +++ b/src/devices/machine/nscsi_s1410.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Olivier Galibert -#ifndef __NSCSI_S1410_H__ -#define __NSCSI_S1410_H__ +#ifndef MAME_MACHINE_NSCSI_S1410_H +#define MAME_MACHINE_NSCSI_S1410_H + +#pragma once #include "machine/nscsi_bus.h" #include "machine/nscsi_hd.h" @@ -71,6 +73,6 @@ protected: uint8_t params[8]; }; -extern const device_type NSCSI_S1410; +DECLARE_DEVICE_TYPE(NSCSI_S1410, nscsi_s1410_device) -#endif +#endif // MAME_MACHINE_NSCSI_S1410_H diff --git a/src/devices/machine/nvram.cpp b/src/devices/machine/nvram.cpp index d18709234e4..f58c8c1de52 100644 --- a/src/devices/machine/nvram.cpp +++ b/src/devices/machine/nvram.cpp @@ -16,14 +16,14 @@ //************************************************************************** // device type definition -const device_type NVRAM = device_creator; +DEFINE_DEVICE_TYPE(NVRAM, nvram_device, "nvram", "NVRAM") //------------------------------------------------- // nvram_device - constructor //------------------------------------------------- nvram_device::nvram_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, NVRAM, "NVRAM", tag, owner, clock, "nvram", __FILE__), + : device_t(mconfig, NVRAM, tag, owner, clock), device_nvram_interface(mconfig, *this), m_region(*this, DEVICE_SELF), m_default_value(DEFAULT_ALL_1), @@ -50,11 +50,11 @@ void nvram_device::static_set_default_value(device_t &device, default_value valu // helper to set a custom callback //------------------------------------------------- -void nvram_device::static_set_custom_handler(device_t &device, nvram_init_delegate handler) +void nvram_device::static_set_custom_handler(device_t &device, init_delegate &&handler) { nvram_device &nvram = downcast(device); nvram.m_default_value = DEFAULT_CUSTOM; - nvram.m_custom_handler = handler; + nvram.m_custom_handler = std::move(handler); } diff --git a/src/devices/machine/nvram.h b/src/devices/machine/nvram.h index 30ee2d9088a..2a982b590e1 100644 --- a/src/devices/machine/nvram.h +++ b/src/devices/machine/nvram.h @@ -8,10 +8,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_MACHINE_NVRAM_H +#define MAME_MACHINE_NVRAM_H -#ifndef __NVRAM_H__ -#define __NVRAM_H__ +#pragma once @@ -33,7 +33,7 @@ nvram_device::static_set_default_value(*device, nvram_device::DEFAULT_NONE); #define MCFG_NVRAM_ADD_CUSTOM_DRIVER(_tag, _class, _method) \ MCFG_DEVICE_ADD(_tag, NVRAM, 0) \ - nvram_device::static_set_custom_handler(*device, nvram_init_delegate(&_class::_method, #_class "::" #_method, nullptr, (_class *)nullptr)); + nvram_device::static_set_custom_handler(*device, nvram_device::init_delegate(&_class::_method, #_class "::" #_method, nullptr, (_class *)nullptr)); #define MCFG_NVRAM_REPLACE_0FILL(_tag) \ MCFG_DEVICE_REPLACE(_tag, NVRAM, 0) \ @@ -46,26 +46,22 @@ nvram_device::static_set_default_value(*device, nvram_device::DEFAULT_RANDOM); #define MCFG_NVRAM_REPLACE_CUSTOM_DRIVER(_tag, _class, _method) \ MCFG_DEVICE_REPLACE(_tag, NVRAM, 0) \ - nvram_device::static_set_custom_handler(*device, nvram_init_delegate(&_class::_method, #_class "::" #_method, nullptr, (_class *)nullptr)); + nvram_device::static_set_custom_handler(*device, nvram_device::init_delegate(&_class::_method, #_class "::" #_method, nullptr, (_class *)nullptr)); //************************************************************************** // TYPE DEFINITIONS //************************************************************************** -class nvram_device; - - -// custom initialization for default state -typedef device_delegate nvram_init_delegate; - - // ======================> nvram_device class nvram_device : public device_t, public device_nvram_interface { public: + // custom initialization for default state + typedef device_delegate init_delegate; + // values enum default_value { @@ -81,7 +77,7 @@ public: // inline configuration helpers static void static_set_default_value(device_t &device, default_value value); - static void static_set_custom_handler(device_t &device, nvram_init_delegate callback); + static void static_set_custom_handler(device_t &device, init_delegate &&callback); // controls void set_base(void *base, size_t length) { m_base = base; m_length = length; } @@ -101,7 +97,7 @@ protected: // configuration state optional_memory_region m_region; default_value m_default_value; - nvram_init_delegate m_custom_handler; + init_delegate m_custom_handler; // runtime state void * m_base; @@ -110,7 +106,7 @@ protected: // device type definition -extern const device_type NVRAM; +DECLARE_DEVICE_TYPE(NVRAM, nvram_device) -#endif +#endif // MAME_DEVICES_MACHINE_NVRAM_H diff --git a/src/devices/machine/pc_fdc.cpp b/src/devices/machine/pc_fdc.cpp index 2698b43e06c..865de92ee86 100644 --- a/src/devices/machine/pc_fdc.cpp +++ b/src/devices/machine/pc_fdc.cpp @@ -16,8 +16,8 @@ #include "emu.h" #include "machine/pc_fdc.h" -const device_type PC_FDC_XT = device_creator; -const device_type PC_FDC_AT = device_creator; +DEFINE_DEVICE_TYPE(PC_FDC_XT, pc_fdc_xt_device, "pc_fdc_xt", "PC FDC (XT)") +DEFINE_DEVICE_TYPE(PC_FDC_AT, pc_fdc_at_device, "pc_fdc_at", "PC FDC (AT)") static MACHINE_CONFIG_FRAGMENT( cfg ) MCFG_UPD765A_ADD("upd765", false, false) @@ -45,8 +45,8 @@ DEVICE_ADDRESS_MAP_START(map, 8, pc_fdc_at_device) AM_RANGE(0x7, 0x7) AM_READWRITE(dir_r, ccr_w) ADDRESS_MAP_END -pc_fdc_family_device::pc_fdc_family_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - pc_fdc_interface(mconfig, type, name, tag, owner, clock, shortname, source), fdc(*this, "upd765"), +pc_fdc_family_device::pc_fdc_family_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + pc_fdc_interface(mconfig, type, tag, owner, clock), fdc(*this, "upd765"), intrq_cb(*this), drq_cb(*this) { @@ -183,10 +183,10 @@ void pc_fdc_family_device::check_drq() drq_cb(drq); } -pc_fdc_xt_device::pc_fdc_xt_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : pc_fdc_family_device(mconfig, PC_FDC_XT, "PC FDC XT", tag, owner, clock, "pc_fdc_xt", __FILE__) +pc_fdc_xt_device::pc_fdc_xt_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : pc_fdc_family_device(mconfig, PC_FDC_XT, tag, owner, clock) { } -pc_fdc_at_device::pc_fdc_at_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : pc_fdc_family_device(mconfig, PC_FDC_AT, "PC FDC AT", tag, owner, clock, "pc_fdc_at", __FILE__) +pc_fdc_at_device::pc_fdc_at_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : pc_fdc_family_device(mconfig, PC_FDC_AT, tag, owner, clock) { } diff --git a/src/devices/machine/pc_fdc.h b/src/devices/machine/pc_fdc.h index 5c41e5ea62c..a4df81fd23f 100644 --- a/src/devices/machine/pc_fdc.h +++ b/src/devices/machine/pc_fdc.h @@ -6,8 +6,10 @@ **********************************************************************/ -#ifndef PC_FDC_H -#define PC_FDC_H +#ifndef MAME_MACHINE_PC_FDC_H +#define MAME_MACHINE_PC_FDC_H + +#pragma once #include "machine/upd765.h" @@ -25,12 +27,8 @@ class pc_fdc_family_device : public pc_fdc_interface { public: - pc_fdc_family_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - - template static devcb_base &set_intrq_wr_callback(device_t &device, _Object object) { return downcast(device).intrq_cb.set_callback(object); } - template static devcb_base &set_drq_wr_callback(device_t &device, _Object object) { return downcast(device).drq_cb.set_callback(object); } - - required_device fdc; + template static devcb_base &set_intrq_wr_callback(device_t &device, Object &&cb) { return downcast(device).intrq_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_drq_wr_callback(device_t &device, Object &&cb) { return downcast(device).drq_cb.set_callback(std::forward(cb)); } virtual DECLARE_ADDRESS_MAP(map, 8) override; @@ -46,7 +44,11 @@ public: DECLARE_WRITE_LINE_MEMBER( irq_w ); DECLARE_WRITE_LINE_MEMBER( drq_w ); + required_device fdc; + protected: + pc_fdc_family_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; virtual void device_reset() override; virtual machine_config_constructor device_mconfig_additions() const override; @@ -76,7 +78,7 @@ public: virtual DECLARE_ADDRESS_MAP(map, 8) override; }; -extern const device_type PC_FDC_XT; -extern const device_type PC_FDC_AT; +DECLARE_DEVICE_TYPE(PC_FDC_XT, pc_fdc_xt_device) +DECLARE_DEVICE_TYPE(PC_FDC_AT, pc_fdc_at_device) -#endif /* PC_FDC_H */ +#endif // MAME_MACHINE_PC_FDC_H diff --git a/src/devices/machine/pc_lpt.cpp b/src/devices/machine/pc_lpt.cpp index d1676fc1232..cd336275dcd 100644 --- a/src/devices/machine/pc_lpt.cpp +++ b/src/devices/machine/pc_lpt.cpp @@ -10,10 +10,10 @@ #include "pc_lpt.h" -const device_type PC_LPT = device_creator; +DEFINE_DEVICE_TYPE(PC_LPT, pc_lpt_device, "pc_lpt", "PC LPT") pc_lpt_device::pc_lpt_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, PC_LPT, "PC-LPT", tag, owner, clock, "pc_lpt", __FILE__), + : device_t(mconfig, PC_LPT, tag, owner, clock), m_irq(1), m_data(0xff), m_control(0), m_irq_enabled(1), diff --git a/src/devices/machine/pc_lpt.h b/src/devices/machine/pc_lpt.h index 3cf812276d9..9dfb4764259 100644 --- a/src/devices/machine/pc_lpt.h +++ b/src/devices/machine/pc_lpt.h @@ -6,8 +6,10 @@ ***************************************************************************/ -#ifndef __PC_LPT_H__ -#define __PC_LPT_H__ +#ifndef MAME_MACHINE_PC_LPT_H +#define MAME_MACHINE_PC_LPT_H + +#pragma once #include "bus/centronics/ctronics.h" @@ -24,7 +26,7 @@ public: pc_lpt_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // static configuration helpers - template static devcb_base &set_irq_handler(device_t &device, _Object object) { return downcast(device).m_irq_handler.set_callback(object); } + template static devcb_base &set_irq_handler(device_t &device, Object &&cb) { return downcast(device).m_irq_handler.set_callback(std::forward(cb)); } DECLARE_READ8_MEMBER( read ); DECLARE_WRITE8_MEMBER( write ); @@ -82,6 +84,6 @@ private: required_device m_cent_ctrl_out; }; -extern const device_type PC_LPT; +DECLARE_DEVICE_TYPE(PC_LPT, pc_lpt_device) -#endif /* __PC_LPT__ */ +#endif // MAME_MACHINE_PC_LPT_H diff --git a/src/devices/machine/pccard.cpp b/src/devices/machine/pccard.cpp index dbbec3ce98f..6f8c177ef4e 100644 --- a/src/devices/machine/pccard.cpp +++ b/src/devices/machine/pccard.cpp @@ -25,10 +25,10 @@ WRITE16_MEMBER( pccard_interface::write_reg ) //printf("unhandled register write %08x %04x %04x\n", offset, data, mem_mask); } -const device_type PCCARD_SLOT = device_creator; +DEFINE_DEVICE_TYPE(PCCARD_SLOT, pccard_slot_device, "pccard", "PC Card Slot") pccard_slot_device::pccard_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, PCCARD_SLOT, "PCCARD SLOT", tag, owner, clock, "pccard", __FILE__), + device_t(mconfig, PCCARD_SLOT, tag, owner, clock), device_slot_interface(mconfig, *this), m_pccard(nullptr) { diff --git a/src/devices/machine/pccard.h b/src/devices/machine/pccard.h index 4e100429bef..9ae0eedf350 100644 --- a/src/devices/machine/pccard.h +++ b/src/devices/machine/pccard.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:smf -#pragma once +#ifndef MAME_MACHINE_PCCARD_H +#define MAME_MACHINE_PCCARD_H -#ifndef __PCCARD_H__ -#define __PCCARD_H__ +#pragma once class pccard_interface @@ -17,10 +17,9 @@ public: virtual ~pccard_interface() {} }; -extern const device_type PCCARD_SLOT; +DECLARE_DEVICE_TYPE(PCCARD_SLOT, pccard_slot_device) -class pccard_slot_device : public device_t, - public device_slot_interface +class pccard_slot_device : public device_t, public device_slot_interface { public: pccard_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); @@ -39,4 +38,4 @@ private: pccard_interface *m_pccard; }; -#endif +#endif // MAME_MACHINE_PCCARD_H diff --git a/src/devices/machine/pcf8593.cpp b/src/devices/machine/pcf8593.cpp index 5acab4ec7dc..331e12ccdbd 100644 --- a/src/devices/machine/pcf8593.cpp +++ b/src/devices/machine/pcf8593.cpp @@ -40,7 +40,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type PCF8593 = device_creator; +DEFINE_DEVICE_TYPE(PCF8593, pcf8593_device, "pcf8593", "PCF8593 RTC") //------------------------------------------------- @@ -48,9 +48,9 @@ const device_type PCF8593 = device_creator; //------------------------------------------------- pcf8593_device::pcf8593_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, PCF8593, "PCF8593 RTC", tag, owner, clock, "pcf8593", __FILE__), - device_rtc_interface(mconfig, *this), - device_nvram_interface(mconfig, *this) + : device_t(mconfig, PCF8593, tag, owner, clock) + , device_rtc_interface(mconfig, *this) + , device_nvram_interface(mconfig, *this) { } diff --git a/src/devices/machine/pcf8593.h b/src/devices/machine/pcf8593.h index 1de8b0ddbe2..e1527b6d6ad 100644 --- a/src/devices/machine/pcf8593.h +++ b/src/devices/machine/pcf8593.h @@ -8,8 +8,10 @@ *********************************************************************/ -#ifndef __PCF8593_H__ -#define __PCF8593_H__ +#ifndef MAME_MACHINE_PCF8593_H +#define MAME_MACHINE_PCF8593_H + +#pragma once #include "dirtc.h" @@ -74,6 +76,6 @@ private: }; // device type definition -extern const device_type PCF8593; +DECLARE_DEVICE_TYPE(PCF8593, pcf8593_device) -#endif /* __PCF8593_H__ */ +#endif // MAME_MACHINE_PCF8593_H diff --git a/src/devices/machine/pci-apic.cpp b/src/devices/machine/pci-apic.cpp index 26246eb675c..2a7c1a26261 100644 --- a/src/devices/machine/pci-apic.cpp +++ b/src/devices/machine/pci-apic.cpp @@ -3,10 +3,10 @@ #include "emu.h" #include "pci-apic.h" -const device_type APIC = device_creator; +DEFINE_DEVICE_TYPE(APIC, apic_device, "apic", "I/O Advanced Programmable Interrupt Controller") apic_device::apic_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : pci_device(mconfig, APIC, "I/O Advanced Programmable Interrupt Controller", tag, owner, clock, "apic", __FILE__) + : pci_device(mconfig, APIC, tag, owner, clock) { } diff --git a/src/devices/machine/pci-apic.h b/src/devices/machine/pci-apic.h index 8fffd1deb85..c7bb0b12cdb 100644 --- a/src/devices/machine/pci-apic.h +++ b/src/devices/machine/pci-apic.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Olivier Galibert -#ifndef PCI_APIC_H -#define PCI_APIC_H +#ifndef MAME_MACHINE_PCI_APIC_H +#define MAME_MACHINE_PCI_APIC_H + +#pragma once #include "pci.h" @@ -17,6 +19,6 @@ protected: virtual void device_reset() override; }; -extern const device_type APIC; +DECLARE_DEVICE_TYPE(APIC, apic_device) -#endif +#endif // MAME_MACHINE_PCI_APIC_H diff --git a/src/devices/machine/pci-ide.cpp b/src/devices/machine/pci-ide.cpp index e7c97b1b642..9af847777c5 100644 --- a/src/devices/machine/pci-ide.cpp +++ b/src/devices/machine/pci-ide.cpp @@ -3,10 +3,10 @@ #include "emu.h" #include "pci-ide.h" -const device_type IDE_PCI = device_creator; +DEFINE_DEVICE_TYPE(IDE_PCI, ide_pci_device, "ide_pci", "PCI IDE interface") ide_pci_device::ide_pci_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : pci_device(mconfig, IDE_PCI, "IDE PCI interface", tag, owner, clock, "ide_pci", __FILE__), + : pci_device(mconfig, IDE_PCI, tag, owner, clock), m_ide(*this, "ide"), m_ide2(*this, "ide2"), m_irq_num(-1), diff --git a/src/devices/machine/pci-ide.h b/src/devices/machine/pci-ide.h index bc736efd517..a258ee2028f 100644 --- a/src/devices/machine/pci-ide.h +++ b/src/devices/machine/pci-ide.h @@ -11,8 +11,10 @@ TODO: Add pci configuration write to PIF byte ***************************************************************************/ -#ifndef PCI_IDE_H -#define PCI_IDE_H +#ifndef MAME_MACHINE_PCI_IDE_H +#define MAME_MACHINE_PCI_IDE_H + +#pragma once #include "pci.h" #include "idectrl.h" @@ -43,8 +45,9 @@ public: DECLARE_READ32_MEMBER(ide2_read_cs1); DECLARE_WRITE32_MEMBER(ide2_write_cs1); void set_irq_info(const char *tag, const int irq_num); - template static devcb_base &set_irq_handler(device_t &device, _Object object) { return downcast(device).m_irq_handler.set_callback(object); } + template static devcb_base &set_irq_handler(device_t &device, Object &&cb) { return downcast(device).m_irq_handler.set_callback(std::forward(cb)); } void set_legacy_top(int val) { m_legacy_top = val & 0xfff; }; + protected: virtual void device_start() override; virtual void device_reset() override; @@ -73,6 +76,6 @@ private: DECLARE_WRITE32_MEMBER(address_base_w); }; -extern const device_type IDE_PCI; +DECLARE_DEVICE_TYPE(IDE_PCI, ide_pci_device) -#endif +#endif // MAME_MACHINE_PCI_IDE_H diff --git a/src/devices/machine/pci-sata.cpp b/src/devices/machine/pci-sata.cpp index 178bc4b12ce..fa854f08520 100644 --- a/src/devices/machine/pci-sata.cpp +++ b/src/devices/machine/pci-sata.cpp @@ -3,10 +3,10 @@ #include "emu.h" #include "pci-sata.h" -const device_type SATA = device_creator; +DEFINE_DEVICE_TYPE(SATA, sata_device, "sata", "SATA AHCI interface") sata_device::sata_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : pci_device(mconfig, SATA, "SATA AHCI interface", tag, owner, clock, "sata", __FILE__) + : pci_device(mconfig, SATA, tag, owner, clock) { } diff --git a/src/devices/machine/pci-sata.h b/src/devices/machine/pci-sata.h index 19dd69e95b3..c4ad5f15aaf 100644 --- a/src/devices/machine/pci-sata.h +++ b/src/devices/machine/pci-sata.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Olivier Galibert -#ifndef PCI_SATA_H -#define PCI_SATA_H +#ifndef MAME_MACHINE_PCI_SATA_H +#define MAME_MACHINE_PCI_SATA_H + +#pragma once #include "pci.h" @@ -25,6 +27,6 @@ private: DECLARE_ADDRESS_MAP(ide_command_posting_map, 32); }; -extern const device_type SATA; +DECLARE_DEVICE_TYPE(SATA, sata_device) -#endif +#endif // MAME_MACHINE_PCI_SATA_H diff --git a/src/devices/machine/pci-smbus.cpp b/src/devices/machine/pci-smbus.cpp index 36d9cf1be93..4a1c675b3f5 100644 --- a/src/devices/machine/pci-smbus.cpp +++ b/src/devices/machine/pci-smbus.cpp @@ -3,7 +3,7 @@ #include "emu.h" #include "pci-smbus.h" -const device_type SMBUS = device_creator; +DEFINE_DEVICE_TYPE(SMBUS, smbus_device, "smbus", "SMBus interface") DEVICE_ADDRESS_MAP_START(map, 32, smbus_device) AM_RANGE(0x00, 0x03) AM_READWRITE8 (hst_sts_r, hst_sts_w, 0x000000ff) @@ -28,7 +28,7 @@ DEVICE_ADDRESS_MAP_START(map, 32, smbus_device) ADDRESS_MAP_END smbus_device::smbus_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : pci_device(mconfig, SMBUS, "SMBUS interface", tag, owner, clock, "smbus", __FILE__) + : pci_device(mconfig, SMBUS, tag, owner, clock) { } diff --git a/src/devices/machine/pci-smbus.h b/src/devices/machine/pci-smbus.h index 6dac1d711a2..d61e45e2f25 100644 --- a/src/devices/machine/pci-smbus.h +++ b/src/devices/machine/pci-smbus.h @@ -1,7 +1,7 @@ // license:BSD-3-Clause // copyright-holders:Olivier Galibert -#ifndef PCI_SMBUS_H -#define PCI_SMBUS_H +#ifndef MAME_MACHINE_PCI_SMBUS_H +#define MAME_MACHINE_PCI_SMBUS_H #include "pci.h" @@ -62,6 +62,6 @@ private: uint8_t smlink_pin_ctl, smbus_pin_ctl, slv_sts, slv_cmd, notify_daddr, notify_dlow, notify_dhigh; }; -extern const device_type SMBUS; +DECLARE_DEVICE_TYPE(SMBUS, smbus_device) -#endif +#endif // MAME_MACHINE_PCI_SMBUS_H diff --git a/src/devices/machine/pci-usb.cpp b/src/devices/machine/pci-usb.cpp index 1bcdeb0e72a..2a0c8098be1 100644 --- a/src/devices/machine/pci-usb.cpp +++ b/src/devices/machine/pci-usb.cpp @@ -3,15 +3,15 @@ #include "emu.h" #include "pci-usb.h" -const device_type USB_OHCI = device_creator; -const device_type USB_UHCI = device_creator; -const device_type USB_EHCI = device_creator; +DEFINE_DEVICE_TYPE(USB_OHCI, usb_ohci_device, "usb_ohci", "USB 1.1 OHCI interface") +DEFINE_DEVICE_TYPE(USB_UHCI, usb_uhci_device, "usb_uhci", "USB 1.1 UHCI interface") +DEFINE_DEVICE_TYPE(USB_EHCI, usb_ehci_device, "usb_ehci", "USB 2.0 EHCI interface") DEVICE_ADDRESS_MAP_START(map, 32, usb_ohci_device) ADDRESS_MAP_END usb_ohci_device::usb_ohci_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : pci_device(mconfig, USB_OHCI, "USB 1.1 OHCI interface", tag, owner, clock, "usb_ohci", __FILE__) + : pci_device(mconfig, USB_OHCI, tag, owner, clock) { } @@ -30,7 +30,7 @@ DEVICE_ADDRESS_MAP_START(map, 32, usb_uhci_device) ADDRESS_MAP_END usb_uhci_device::usb_uhci_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : pci_device(mconfig, USB_UHCI, "USB 1.1 UHCI interface", tag, owner, clock, "usb_uhci", __FILE__) + : pci_device(mconfig, USB_UHCI, tag, owner, clock) { } @@ -49,7 +49,7 @@ DEVICE_ADDRESS_MAP_START(map, 32, usb_ehci_device) ADDRESS_MAP_END usb_ehci_device::usb_ehci_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : pci_device(mconfig, USB_EHCI, "USB 2.0 EHCI interface", tag, owner, clock, "usb_ehci", __FILE__) + : pci_device(mconfig, USB_EHCI, tag, owner, clock) { } diff --git a/src/devices/machine/pci-usb.h b/src/devices/machine/pci-usb.h index 2fc5b3ef396..8eb7d3860ba 100644 --- a/src/devices/machine/pci-usb.h +++ b/src/devices/machine/pci-usb.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Olivier Galibert -#ifndef PCI_USB_H -#define PCI_USB_H +#ifndef MAME_MACHINE_PCI_USB_H +#define MAME_MACHINE_PCI_USB_H + +#pragma once #include "pci.h" @@ -50,8 +52,8 @@ private: DECLARE_ADDRESS_MAP(map, 32); }; -extern const device_type USB_OHCI; -extern const device_type USB_UHCI; -extern const device_type USB_EHCI; +DECLARE_DEVICE_TYPE(USB_OHCI, usb_ohci_device) +DECLARE_DEVICE_TYPE(USB_UHCI, usb_uhci_device) +DECLARE_DEVICE_TYPE(USB_EHCI, usb_ehci_device) -#endif +#endif // MAME_MACHINE_PCI_USB_H diff --git a/src/devices/machine/pci.cpp b/src/devices/machine/pci.cpp index 5edc3890f6d..fec52315a23 100644 --- a/src/devices/machine/pci.cpp +++ b/src/devices/machine/pci.cpp @@ -3,8 +3,9 @@ #include "emu.h" #include "pci.h" -const device_type PCI_ROOT = device_creator; -const device_type PCI_BRIDGE = device_creator; +DEFINE_DEVICE_TYPE(PCI_ROOT, pci_root_device, "pci_root", "PCI virtual root") +DEFINE_DEVICE_TYPE(PCI_BRIDGE, pci_bridge_device, "pci_bridge", "PCI-PCI Bridge") + DEVICE_ADDRESS_MAP_START(config_map, 32, pci_device) AM_RANGE(0x00, 0x03) AM_READ16 (vendor_r, 0x0000ffff) @@ -61,9 +62,9 @@ DEVICE_ADDRESS_MAP_START(config_map, 32, pci_bridge_device) AM_RANGE(0x3c, 0x3f) AM_READWRITE16(bridge_control_r, bridge_control_w, 0xffff0000) ADDRESS_MAP_END -pci_device::pci_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), - m_region(*this, DEVICE_SELF) +pci_device::pci_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) + , m_region(*this, DEVICE_SELF) { main_id = 0xffffffff; revision = 0x00; @@ -413,8 +414,8 @@ void pci_device::set_map_flags(int id, int flags) remap_cb(); } -agp_device::agp_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : pci_device(mconfig, type, name, tag, owner, clock, shortname, source) +agp_device::agp_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : pci_device(mconfig, type, tag, owner, clock) { } @@ -431,16 +432,14 @@ void agp_device::device_reset() pci_bridge_device::pci_bridge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : pci_device(mconfig, PCI_BRIDGE, "PCI-PCI Bridge", tag, owner, clock, "pci_bridge", __FILE__), - device_memory_interface(mconfig, *this), - configure_space_config("configuration_space", ENDIANNESS_LITTLE, 32, 20) + : pci_bridge_device(mconfig, PCI_BRIDGE, tag, owner, clock) { } -pci_bridge_device::pci_bridge_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : pci_device(mconfig, type, name, tag, owner, clock, shortname, source), - device_memory_interface(mconfig, *this), - configure_space_config("configuration_space", ENDIANNESS_LITTLE, 32, 20) +pci_bridge_device::pci_bridge_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : pci_device(mconfig, type, tag, owner, clock) + , device_memory_interface(mconfig, *this) + , configure_space_config("configuration_space", ENDIANNESS_LITTLE, 32, 20) { } @@ -799,8 +798,8 @@ WRITE16_MEMBER(pci_bridge_device::bridge_control_w) } -agp_bridge_device::agp_bridge_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : pci_bridge_device(mconfig, type, name, tag, owner, clock, shortname, source) +agp_bridge_device::agp_bridge_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : pci_bridge_device(mconfig, type, tag, owner, clock) { } @@ -822,8 +821,8 @@ DEVICE_ADDRESS_MAP_START(io_configuration_access_map, 32, pci_host_device) ADDRESS_MAP_END -pci_host_device::pci_host_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : pci_bridge_device(mconfig, type, name, tag, owner, clock, shortname, source) +pci_host_device::pci_host_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : pci_bridge_device(mconfig, type, tag, owner, clock) { } @@ -906,7 +905,7 @@ void pci_host_device::root_config_write(uint8_t bus, uint8_t device, uint16_t re pci_root_device::pci_root_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, PCI_ROOT,"PCI virtual root", tag, owner, clock, "pci_root", __FILE__) + : device_t(mconfig, PCI_ROOT, tag, owner, clock) { } diff --git a/src/devices/machine/pci.h b/src/devices/machine/pci.h index a882f93b957..d1f16287043 100644 --- a/src/devices/machine/pci.h +++ b/src/devices/machine/pci.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Olivier Galibert -#ifndef PCI_H -#define PCI_H +#ifndef MAME_MACHINE_PCI_H +#define MAME_MACHINE_PCI_H + +#pragma once #define MCFG_PCI_ROOT_ADD(_tag) \ @@ -29,8 +31,6 @@ public: mapper_cb remap_cb, remap_config_cb; - pci_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - void set_ids(uint32_t main_id, uint8_t revision, uint32_t pclass, uint32_t subsystem_id); void set_multifunction_device(bool enable); @@ -85,6 +85,8 @@ public: DECLARE_WRITE8_MEMBER(interrupt_pin_w); protected: + pci_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + optional_memory_region m_region; enum { @@ -142,10 +144,9 @@ protected: }; class agp_device : public pci_device { -public: - agp_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - protected: + agp_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; virtual void device_reset() override; }; @@ -153,7 +154,6 @@ protected: class pci_bridge_device : public pci_device, public device_memory_interface { public: pci_bridge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - pci_bridge_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); virtual void set_remap_cb(mapper_cb _remap_cb) override; virtual void map_device(uint64_t memory_window_start, uint64_t memory_window_end, uint64_t memory_offset, address_space *memory_space, @@ -200,13 +200,7 @@ public: DECLARE_WRITE16_MEMBER(bridge_control_w); protected: - pci_device *sub_devices[32*8]; - std::vector all_devices; - std::vector all_bridges; - - uint32_t prefetch_baseu, prefetch_limitu; - uint16_t bridge_control, memory_base, memory_limit, prefetch_base, prefetch_limit, iobaseu, iolimitu; - uint8_t primary_bus, secondary_bus, subordinate_bus, iobase, iolimit; + pci_bridge_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); virtual void device_start() override; virtual void device_reset() override; @@ -222,15 +216,22 @@ protected: void propagate_config_write(uint8_t bus, uint8_t device, uint16_t reg, uint32_t data, uint32_t mem_mask); void config_write(uint8_t bus, uint8_t device, uint16_t reg, uint32_t data, uint32_t mem_mask); + pci_device *sub_devices[32*8]; + std::vector all_devices; + std::vector all_bridges; + + uint32_t prefetch_baseu, prefetch_limitu; + uint16_t bridge_control, memory_base, memory_limit, prefetch_base, prefetch_limit, iobaseu, iolimitu; + uint8_t primary_bus, secondary_bus, subordinate_bus, iobase, iolimit; + private: address_space_config configure_space_config; }; class agp_bridge_device : public pci_bridge_device { -public: - agp_bridge_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - protected: + agp_bridge_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; virtual void device_reset() override; }; @@ -239,30 +240,30 @@ class pci_host_device : public pci_bridge_device { public: DECLARE_ADDRESS_MAP(io_configuration_access_map, 32); - pci_host_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - protected: - address_space *memory_space, *io_space; + pci_host_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); - uint64_t memory_window_start, memory_window_end, memory_offset; - uint64_t io_window_start, io_window_end, io_offset; + DECLARE_READ32_MEMBER(config_address_r); + DECLARE_WRITE32_MEMBER(config_address_w); + DECLARE_READ32_MEMBER(config_data_r); + DECLARE_WRITE32_MEMBER(config_data_w); virtual void device_start() override; virtual void device_reset() override; virtual device_t *bus_root() override; - uint32_t config_address; - - DECLARE_READ32_MEMBER(config_address_r); - DECLARE_WRITE32_MEMBER(config_address_w); - DECLARE_READ32_MEMBER(config_data_r); - DECLARE_WRITE32_MEMBER(config_data_w); - uint32_t root_config_read(uint8_t bus, uint8_t device, uint16_t reg, uint32_t mem_mask); void root_config_write(uint8_t bus, uint8_t device, uint16_t reg, uint32_t data, uint32_t mem_mask); void regenerate_mapping(); + + address_space *memory_space, *io_space; + + uint64_t memory_window_start, memory_window_end, memory_offset; + uint64_t io_window_start, io_window_end, io_offset; + + uint32_t config_address; }; class pci_root_device : public device_t { @@ -274,7 +275,7 @@ protected: virtual void device_reset() override; }; -extern const device_type PCI_ROOT; -extern const device_type PCI_BRIDGE; +DECLARE_DEVICE_TYPE(PCI_ROOT, pci_root_device) +DECLARE_DEVICE_TYPE(PCI_BRIDGE, pci_bridge_device) -#endif +#endif // MAME_MACHINE_PCI_H diff --git a/src/devices/machine/pci9050.cpp b/src/devices/machine/pci9050.cpp index 6bfd3fdc983..c2dcf46cea1 100644 --- a/src/devices/machine/pci9050.cpp +++ b/src/devices/machine/pci9050.cpp @@ -24,7 +24,7 @@ #include "emu.h" #include "pci9050.h" -const device_type PCI9050 = device_creator; +DEFINE_DEVICE_TYPE(PCI9050, pci9050_device, "pci9050", "PLX PCI9050 PCI to Local Bus Bridge") DEVICE_ADDRESS_MAP_START(map, 32, pci9050_device) AM_RANGE(0x00, 0x0f) AM_READWRITE(lasrr_r, lasrr_w ) @@ -42,7 +42,7 @@ DEVICE_ADDRESS_MAP_START(empty, 32, pci9050_device) ADDRESS_MAP_END pci9050_device::pci9050_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : pci_device(mconfig, PCI9050, "PLX PCI9050 PCI to Local Bus Bridge", tag, owner, clock, "pci9050", __FILE__), + : pci_device(mconfig, PCI9050, tag, owner, clock), m_user_input_handler(*this), m_user_output_handler(*this) { for(int i=0; i<4; i++) { diff --git a/src/devices/machine/pci9050.h b/src/devices/machine/pci9050.h index cb6e07106d9..41b81a4d516 100644 --- a/src/devices/machine/pci9050.h +++ b/src/devices/machine/pci9050.h @@ -8,8 +8,10 @@ *********************************************************************/ -#ifndef _PCI9050_H -#define _PCI9050_H +#ifndef MAME_MACHINE_PCI9050_H +#define MAME_MACHINE_PCI9050_H + +#pragma once #include "machine/pci.h" @@ -25,8 +27,7 @@ #define MCFG_PCI9050_USER_OUTPUT_CALLBACK(_read) \ devcb = &pci9050_device::set_user_output_callback(*device, DEVCB_##_read); -class pci9050_device : - public pci_device +class pci9050_device : public pci_device { public: pci9050_device(const machine_config &mconfig, const char *tag, device_t *device, uint32_t clock); @@ -51,8 +52,8 @@ public: DECLARE_READ32_MEMBER( cntrl_r ); DECLARE_WRITE32_MEMBER(cntrl_w ); - template static devcb_base &set_user_input_callback(device_t &device, _Object object) { return downcast(device).m_user_input_handler.set_callback(object); } - template static devcb_base &set_user_output_callback(device_t &device, _Object object) { return downcast(device).m_user_output_handler.set_callback(object); } + template static devcb_base &set_user_input_callback(device_t &device, Object &&cb) { return downcast(device).m_user_input_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_user_output_callback(device_t &device, Object &&cb) { return downcast(device).m_user_output_handler.set_callback(std::forward(cb)); } void set_map(int id, const address_map_delegate &map, device_t *device); @@ -78,9 +79,8 @@ private: devcb_read32 m_user_input_handler; devcb_write32 m_user_output_handler; - }; -extern const device_type PCI9050; +DECLARE_DEVICE_TYPE(PCI9050, pci9050_device) -#endif +#endif // MAME_MACHINE_PCI9050_H diff --git a/src/devices/machine/pckeybrd.cpp b/src/devices/machine/pckeybrd.cpp index 76ace041e78..2ff9f5c7261 100644 --- a/src/devices/machine/pckeybrd.cpp +++ b/src/devices/machine/pckeybrd.cpp @@ -275,43 +275,27 @@ const at_keyboard_device::extended_keyboard_code at_keyboard_device::m_extended_ }; -const device_type PC_KEYB = device_creator; -const device_type AT_KEYB = device_creator; +DEFINE_DEVICE_TYPE(PC_KEYB, pc_keyboard_device, "pc_keyb", "PC Keyboard") +DEFINE_DEVICE_TYPE(AT_KEYB, at_keyboard_device, "at_keyb", "AT Keyboard") pc_keyboard_device::pc_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, PC_KEYB, "PC Keyboard", tag, owner, clock, "pc_keyb", __FILE__), - m_type(KEYBOARD_TYPE_PC), - m_ioport_0(*this, ":pc_keyboard_0"), - m_ioport_1(*this, ":pc_keyboard_1"), - m_ioport_2(*this, ":pc_keyboard_2"), - m_ioport_3(*this, ":pc_keyboard_3"), - m_ioport_4(*this, ":pc_keyboard_4"), - m_ioport_5(*this, ":pc_keyboard_5"), - m_ioport_6(*this, ":pc_keyboard_6"), - m_ioport_7(*this, ":pc_keyboard_7"), - m_out_keypress_func(*this) + pc_keyboard_device(mconfig, PC_KEYB, tag, owner, clock) { + m_type = KEYBOARD_TYPE::PC; } -pc_keyboard_device::pc_keyboard_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), - m_ioport_0(*this, ":pc_keyboard_0"), - m_ioport_1(*this, ":pc_keyboard_1"), - m_ioport_2(*this, ":pc_keyboard_2"), - m_ioport_3(*this, ":pc_keyboard_3"), - m_ioport_4(*this, ":pc_keyboard_4"), - m_ioport_5(*this, ":pc_keyboard_5"), - m_ioport_6(*this, ":pc_keyboard_6"), - m_ioport_7(*this, ":pc_keyboard_7"), +pc_keyboard_device::pc_keyboard_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), + m_ioport(*this, ":pc_keyboard_%u", 0), m_out_keypress_func(*this) { } at_keyboard_device::at_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - pc_keyboard_device(mconfig, AT_KEYB, "AT Keyboard", tag, owner, clock, "at_keyb", __FILE__), + pc_keyboard_device(mconfig, AT_KEYB, tag, owner, clock), m_scan_code_set(1) { - m_type = KEYBOARD_TYPE_AT; + m_type = KEYBOARD_TYPE::AT; } @@ -377,7 +361,7 @@ WRITE_LINE_MEMBER(pc_keyboard_device::enable) { if(state && !m_on) { - if(m_type == KEYBOARD_TYPE_PC) + if(m_type == KEYBOARD_TYPE::PC) reset(); else m_keyboard_timer->adjust(attotime::from_msec(5), 0, attotime::from_hz(60)); @@ -525,43 +509,10 @@ void at_keyboard_device::helper(const char *codes) uint32_t pc_keyboard_device::readport(int port) { - uint32_t result = 0; - switch(port) - { - case 0: - if (m_ioport_0.found()) - result = m_ioport_0->read(); - break; - case 1: - if (m_ioport_1.found()) - result = m_ioport_1->read(); - break; - case 2: - if (m_ioport_2.found()) - result = m_ioport_2->read(); - break; - case 3: - if (m_ioport_3.found()) - result = m_ioport_3->read(); - break; - case 4: - if (m_ioport_4.found()) - result = m_ioport_4->read(); - break; - case 5: - if (m_ioport_5.found()) - result = m_ioport_5->read(); - break; - case 6: - if (m_ioport_6.found()) - result = m_ioport_6->read(); - break; - case 7: - if (m_ioport_7.found()) - result = m_ioport_7->read(); - break; - } - return result; + if ((m_ioport.size() > port) && m_ioport[port].found()) + return m_ioport[port]->read(); + else + return 0; } void pc_keyboard_device::polling(void) @@ -614,7 +565,7 @@ void pc_keyboard_device::polling(void) } } - if(m_type != KEYBOARD_TYPE_PC) + if(m_type != KEYBOARD_TYPE::PC) { /* extended scan-codes */ for( i = 0x60; i < 0x70; i++ ) @@ -764,7 +715,7 @@ WRITE8_MEMBER(at_keyboard_device::write) queue_insert(0xfa); /* send keyboard code */ - if (m_type == KEYBOARD_TYPE_MF2) { + if (m_type == KEYBOARD_TYPE::MF2) { queue_insert(0xab); queue_insert(0x41); } diff --git a/src/devices/machine/pckeybrd.h b/src/devices/machine/pckeybrd.h index f7681bba884..419a10acafd 100644 --- a/src/devices/machine/pckeybrd.h +++ b/src/devices/machine/pckeybrd.h @@ -11,48 +11,50 @@ **********************************************************************/ -#ifndef PCKEYBRD_H -#define PCKEYBRD_H +#ifndef MAME_MACHINE_PCKEYBRD_H +#define MAME_MACHINE_PCKEYBRD_H + +#pragma once class pc_keyboard_device : public device_t { public: pc_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - pc_keyboard_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); DECLARE_READ8_MEMBER(read); DECLARE_WRITE_LINE_MEMBER(enable); - template static devcb_base &static_set_keypress_callback(device_t &device, _Object object) - { return downcast(device).m_out_keypress_func.set_callback(object); } + template static devcb_base &static_set_keypress_callback(device_t &device, Object &&cb) + { return downcast(device).m_out_keypress_func.set_callback(std::forward(cb)); } - enum KEYBOARD_TYPE + enum class KEYBOARD_TYPE { - KEYBOARD_TYPE_PC, - KEYBOARD_TYPE_AT, - KEYBOARD_TYPE_MF2 + PC, + AT, + MF2 }; - protected: + pc_keyboard_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; virtual void device_reset() override; virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; void queue_insert(uint8_t data); - void clear_buffer(void); + void clear_buffer(); int m_numlock; KEYBOARD_TYPE m_type; private: - void polling(void); + void polling(); uint32_t readport(int port); uint8_t unicode_char_to_at_keycode(char32_t ch); virtual void standard_scancode_insert(int our_code, int pressed); virtual void extended_scancode_insert(int code, int pressed) { } - int queue_size(void); + int queue_size(); int queue_chars(const char32_t *text, size_t text_len); bool accept_char(char32_t ch); bool charqueue_empty(); @@ -66,14 +68,7 @@ private: uint8_t m_tail; uint8_t m_make[128]; - optional_ioport m_ioport_0; - optional_ioport m_ioport_1; - optional_ioport m_ioport_2; - optional_ioport m_ioport_3; - optional_ioport m_ioport_4; - optional_ioport m_ioport_5; - optional_ioport m_ioport_6; - optional_ioport m_ioport_7; + optional_ioport_array<8> m_ioport; devcb_write_line m_out_keypress_func; emu_timer *m_keyboard_timer; @@ -87,7 +82,7 @@ public: DECLARE_WRITE8_MEMBER( write ); static void static_set_type(device_t &device, KEYBOARD_TYPE type, int default_set) - { downcast(device).m_scan_code_set = default_set; downcast(device).m_type = type; } + { downcast(device).m_scan_code_set = default_set; downcast(device).m_type = type; } protected: virtual void device_reset() override; @@ -97,7 +92,7 @@ private: virtual void standard_scancode_insert(int our_code, int pressed) override; virtual void extended_scancode_insert(int code, int pressed) override; void helper(const char *codes); - void clear_buffer_and_acknowledge(void); + void clear_buffer_and_acknowledge(); struct extended_keyboard_code { @@ -116,8 +111,8 @@ private: INPUT_PORTS_EXTERN( pc_keyboard ); INPUT_PORTS_EXTERN( at_keyboard ); -extern const device_type PC_KEYB; -extern const device_type AT_KEYB; +DECLARE_DEVICE_TYPE(PC_KEYB, pc_keyboard_device) +DECLARE_DEVICE_TYPE(AT_KEYB, at_keyboard_device) #define MCFG_PC_KEYB_ADD(_tag, _cb) \ MCFG_DEVICE_ADD(_tag, PC_KEYB, 0) \ @@ -125,7 +120,7 @@ extern const device_type AT_KEYB; #define MCFG_AT_KEYB_ADD(_tag, _def_set, _cb) \ MCFG_DEVICE_ADD(_tag, AT_KEYB, 0) \ - at_keyboard_device::static_set_type(*device, pc_keyboard_device::KEYBOARD_TYPE_AT, _def_set); \ + at_keyboard_device::static_set_type(*device, pc_keyboard_device::KEYBOARD_TYPE::AT, _def_set); \ devcb = &pc_keyboard_device::static_set_keypress_callback(*device, DEVCB_##_cb); #define MCFG_AT_MF2_KEYB_ADD(_tag, _def_set, _cb) \ @@ -133,4 +128,4 @@ extern const device_type AT_KEYB; at_keyboard_device::static_set_type(*device, pc_keyboard_device::KEYBOARD_TYPE_MF2, _def_set); \ devcb = &pc_keyboard_device::static_set_keypress_callback(*device, DEVCB_##_cb); -#endif /* PCKEYBRD_H */ +#endif // MAME_MACHINE_PCKEYBRD_H diff --git a/src/devices/machine/pdc.cpp b/src/devices/machine/pdc.cpp index f13a810f96a..7653239cd3c 100644 --- a/src/devices/machine/pdc.cpp +++ b/src/devices/machine/pdc.cpp @@ -113,7 +113,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type PDC = device_creator; +DEFINE_DEVICE_TYPE(PDC, pdc_device, "rolm_pdc", "ROLM PDC") //------------------------------------------------- // ROM( PDC ) @@ -308,7 +308,7 @@ ioport_constructor pdc_device::device_input_ports() const //------------------------------------------------- pdc_device::pdc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, PDC, "ROLM PDC", tag, owner, clock, "pdc", __FILE__), + device_t(mconfig, PDC, tag, owner, clock), m_pdccpu(*this, Z80_TAG), m_dma8237(*this, FDCDMA_TAG), m_fdc(*this, FDC_TAG), diff --git a/src/devices/machine/pdc.h b/src/devices/machine/pdc.h index 6d8354f08a9..0de893fcdc7 100644 --- a/src/devices/machine/pdc.h +++ b/src/devices/machine/pdc.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_MACHINE_PDC_H +#define MAME_MACHINE_PDC_H -#ifndef __R9751_PDC_H__ -#define __R9751_PDC_H__ +#pragma once #include "cpu/z80/z80.h" #include "machine/upd765.h" @@ -30,7 +30,7 @@ // ======================> pdc_device -class pdc_device : public device_t +class pdc_device : public device_t { public: /* Constructor and Destructor */ @@ -42,8 +42,8 @@ public: virtual const tiny_rom_entry *device_rom_region() const override; /* Callbacks */ - template static devcb_base &m68k_r_callback(device_t &device, _Object object) { return downcast(device).m_m68k_r_cb.set_callback(object); } - template static devcb_base &m68k_w_callback(device_t &device, _Object object) { return downcast(device).m_m68k_w_cb.set_callback(object); } + template static devcb_base &m68k_r_callback(device_t &device, Object &&cb) { return downcast(device).m_m68k_r_cb.set_callback(std::forward(cb)); } + template static devcb_base &m68k_w_callback(device_t &device, Object &&cb) { return downcast(device).m_m68k_w_cb.set_callback(std::forward(cb)); } /* Read and Write members */ DECLARE_WRITE_LINE_MEMBER(i8237_hreq_w); @@ -82,6 +82,7 @@ public: uint8_t reg_p21; uint8_t reg_p38; uint32_t fdd_68k_dma_address; /* FDD <-> m68k DMA read/write address */ + protected: /* Device-level overrides */ virtual void device_start() override; @@ -108,10 +109,12 @@ protected: /* Device type */ extern const device_type PDC; +DECLARE_DEVICE_TYPE(PDC, pdc_device) /* MCFG defines */ #define MCFG_PDC_R_CB(_devcb) \ devcb = &pdc_device::m68k_r_callback(*device, DEVCB_##_devcb); #define MCFG_PDC_W_CB(_devcb) \ devcb = &pdc_device::m68k_w_callback(*device, DEVCB_##_devcb); -#endif + +#endif // MAME_MACHINE_PDC_H diff --git a/src/devices/machine/phi.cpp b/src/devices/machine/phi.cpp index a81c5bd4e4d..42cede7e6d8 100644 --- a/src/devices/machine/phi.cpp +++ b/src/devices/machine/phi.cpp @@ -167,11 +167,11 @@ enum { #define CONTROLLER_ADDR 0x1e // PHI always has this address when it's a controller // Device type definition -const device_type PHI = device_creator; +DEFINE_DEVICE_TYPE(PHI, phi_device, "hp_phi", "HP Processor-to-HPIB Interface") // Constructors -phi_device::phi_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname) - : device_t(mconfig, type, name, tag, owner, clock, shortname, __FILE__), +phi_device::phi_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock), m_dio_read_func(*this), m_dio_write_func(*this), m_signal_wr_fns{ @@ -189,20 +189,7 @@ phi_device::phi_device(const machine_config &mconfig, device_type type, const ch } phi_device::phi_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, PHI, "HP PHI", tag, owner, clock, "phi", __FILE__), - m_dio_read_func(*this), - m_dio_write_func(*this), - m_signal_wr_fns{ - devcb_write_line(*this), - devcb_write_line(*this), - devcb_write_line(*this), - devcb_write_line(*this), - devcb_write_line(*this), - devcb_write_line(*this), - devcb_write_line(*this), - devcb_write_line(*this) }, - m_int_write_func(*this), - m_dmarq_write_func(*this) + : phi_device(mconfig, PHI, tag, owner, clock) { } diff --git a/src/devices/machine/phi.h b/src/devices/machine/phi.h index bd1a0906143..c3b78f1d8a0 100644 --- a/src/devices/machine/phi.h +++ b/src/devices/machine/phi.h @@ -8,8 +8,8 @@ *********************************************************************/ -#ifndef _PHI_H_ -#define _PHI_H_ +#ifndef MAME_MACHINE_PHI_H +#define MAME_MACHINE_PHI_H // Set read and write callbacks to access DIO bus on IEEE-488 #define MCFG_PHI_DIO_READWRITE_CB(_read , _write) \ @@ -49,18 +49,14 @@ #define MCFG_PHI_DMARQ_WRITE_CB(_write) \ phi_device::set_dmarq_write_cb(*device , DEVCB_##_write); -// Depth of inbound/outbound FIFOs -#define PHI_FIFO_SIZE 8 - class phi_device : public device_t { public: // construction/destruction - phi_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname); phi_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // See ieee488.h - typedef enum { + enum phi_488_signal_t { PHI_488_EOI, PHI_488_DAV, PHI_488_NRFD, @@ -70,7 +66,7 @@ public: PHI_488_ATN, PHI_488_REN, PHI_488_SIGNAL_COUNT - } phi_488_signal_t; + }; template static devcb_base& set_dio_read_cb(device_t &device , _Object object) { return downcast(device).m_dio_read_func.set_callback(object); } @@ -124,12 +120,17 @@ public: DECLARE_READ8_MEMBER(reg8_r); protected: + phi_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; private: + // Depth of inbound/outbound FIFOs + static constexpr unsigned FIFO_SIZE = 8; + devcb_read8 m_dio_read_func; devcb_write8 m_dio_write_func; devcb_write_line m_signal_wr_fns[ PHI_488_SIGNAL_COUNT ]; @@ -244,8 +245,8 @@ private: uint16_t m_reg_2nd_id; uint16_t m_reg_control; uint16_t m_reg_address; - util::fifo m_fifo_in; - util::fifo m_fifo_out; + util::fifo m_fifo_in; + util::fifo m_fifo_out; typedef enum { NBA_NONE, @@ -287,6 +288,6 @@ private: }; // device type definition -extern const device_type PHI; +DECLARE_DEVICE_TYPE(PHI, phi_device) -#endif /* _PHI_H_ */ +#endif // MAME_MACHINE_PHI_H diff --git a/src/devices/machine/pic8259.cpp b/src/devices/machine/pic8259.cpp index ecd15713912..266237d4efd 100644 --- a/src/devices/machine/pic8259.cpp +++ b/src/devices/machine/pic8259.cpp @@ -16,9 +16,16 @@ #include "emu.h" #include "machine/pic8259.h" -#define LOG_ICW 0 -#define LOG_OCW 0 -#define LOG_GENERAL 0 +#define LOG_GENERAL (1U << 0) +#define LOG_ICW (1U << 1) +#define LOG_OCW (1U << 2) + +//#define VERBOSE (LOG_GENERAL | LOG_ICW | LOG_OCW) +#include "logmacro.h" + +#define LOGICW(...) LOGMASKED(LOG_ICW, __VA_ARGS__) +#define LOGOCW(...) LOGMASKED(LOG_OCW, __VA_ARGS__) + ALLOW_SAVE_TYPE(pic8259_device::pic8259_state_t); // allow save_item on a non-fundamental type @@ -32,20 +39,14 @@ void pic8259_device::device_timer(emu_timer &timer, device_timer_id id, int para /* is this IRQ in service and not cascading and sfnm? */ if ((m_isr & mask) && !(m_master && m_cascade && m_nested && (m_slave & mask))) { - if (LOG_GENERAL) - { - logerror("pic8259_timerproc() %s: PIC IRQ #%d still in service\n", tag(), irq); - } + LOG("pic8259_timerproc(): PIC IRQ #%d still in service\n", irq); break; } /* is this IRQ pending and enabled? */ if ((m_state == STATE_READY) && (m_irr & mask) && !(m_imr & mask)) { - if (LOG_GENERAL) - { - logerror("pic8259_timerproc() %s: PIC triggering IRQ #%d\n", tag(), irq); - } + LOG("pic8259_timerproc(): PIC triggering IRQ #%d\n", irq); m_out_int_func(1); return; } @@ -64,8 +65,7 @@ void pic8259_device::set_irq_line(int irq, int state) if (state) { /* setting IRQ line */ - if (LOG_GENERAL) - logerror("pic8259_set_irq_line() %s: PIC set IRQ line #%d\n", tag(), irq); + LOG("pic8259_set_irq_line(): PIC set IRQ line #%d\n", irq); if(m_level_trig_mode || (!m_level_trig_mode && !(m_irq_lines & mask))) { @@ -76,10 +76,7 @@ void pic8259_device::set_irq_line(int irq, int state) else { /* clearing IRQ line */ - if (LOG_GENERAL) - { - logerror("pic8259_device::set_irq_line() %s: PIC cleared IRQ line #%d\n", tag(), irq); - } + LOG("pic8259_device::set_irq_line(): PIC cleared IRQ line #%d\n", irq); m_irq_lines &= ~mask; m_irr &= ~mask; @@ -97,19 +94,12 @@ uint32_t pic8259_device::acknowledge() /* is this IRQ pending and enabled? */ if ((m_irr & mask) && !(m_imr & mask)) { - if (LOG_GENERAL) - { - logerror("pic8259_acknowledge() %s: PIC acknowledge IRQ #%d\n", tag(), irq); - } + LOG("pic8259_acknowledge(): PIC acknowledge IRQ #%d\n", irq); if (!m_level_trig_mode) - { m_irr &= ~mask; - } if (!m_auto_eoi) - { m_isr |= mask; - } set_timer(); @@ -134,9 +124,10 @@ uint32_t pic8259_device::acknowledge() } } logerror("Spurious IRQ\n"); - if(m_is_x86) + if (m_is_x86) return m_base + 7; - return 0xcd0000 + (m_vector_addr_high << 8) + m_vector_addr_low + (7 << (3-m_vector_size)); + else + return 0xcd0000 + (m_vector_addr_high << 8) + m_vector_addr_low + (7 << (3-m_vector_size)); } @@ -204,10 +195,7 @@ WRITE8_MEMBER( pic8259_device::write ) if (data & 0x10) { /* write ICW1 - this pretty much resets the chip */ - if (LOG_ICW) - { - logerror("pic8259_device::write() %s: ICW1; data=0x%02X\n", tag(), data); - } + LOGICW("pic8259_device::write(): ICW1; data=0x%02X\n", data); m_imr = 0x00; m_isr = 0x00; @@ -225,10 +213,7 @@ WRITE8_MEMBER( pic8259_device::write ) if ((data & 0x98) == 0x08) { /* write OCW3 */ - if (LOG_OCW) - { - logerror("pic8259_device::write() %s: OCW3; data=0x%02X\n", tag(), data); - } + LOGOCW("pic8259_device::write(): OCW3; data=0x%02X\n", data); m_ocw3 = data; } @@ -238,10 +223,7 @@ WRITE8_MEMBER( pic8259_device::write ) uint8_t mask = 1 << n; /* write OCW2 */ - if (LOG_OCW) - { - logerror("pic8259_device::write() %s: OCW2; data=0x%02X\n", tag(), data); - } + LOGOCW("pic8259_device::write(): OCW2; data=0x%02X\n", data); switch (data & 0xe0) { @@ -303,10 +285,7 @@ WRITE8_MEMBER( pic8259_device::write ) case STATE_ICW2: /* write ICW2 */ - if (LOG_ICW) - { - logerror("pic8259_device::write() %s: ICW2; data=0x%02X\n", tag(), data); - } + LOGICW("pic8259_device::write(): ICW2; data=0x%02X\n", data); m_base = data & 0xf8; m_vector_addr_high = data ; @@ -322,10 +301,7 @@ WRITE8_MEMBER( pic8259_device::write ) case STATE_ICW3: /* write ICW3 */ - if (LOG_ICW) - { - logerror("pic8259_device::write() %s: ICW3; data=0x%02X\n", tag(), data); - } + LOGICW("pic8259_device::write(): ICW3; data=0x%02X\n", data); m_slave = data; m_state = m_icw4_needed ? STATE_ICW4 : STATE_READY; @@ -333,10 +309,7 @@ WRITE8_MEMBER( pic8259_device::write ) case STATE_ICW4: /* write ICW4 */ - if (LOG_ICW) - { - logerror("pic8259_device::write() %s: ICW4; data=0x%02X\n", tag(), data); - } + LOGICW("pic8259_device::write(): ICW4; data=0x%02X\n", data); m_nested = (data & 0x10) ? 1 : 0; m_mode = (data >> 2) & 3; @@ -347,10 +320,7 @@ WRITE8_MEMBER( pic8259_device::write ) case STATE_READY: /* write OCW1 - set interrupt mask register */ - if (LOG_OCW) - { - logerror("pic8259_device::write(): OCW1; data=0x%02X\n", data); - } + LOGOCW("pic8259_device::write(): OCW1; data=0x%02X\n", data); //printf("%s %02x\n",m_master ? "master pic8259 mask" : "slave pic8259 mask",data); m_imr = data; @@ -428,10 +398,10 @@ void pic8259_device::device_reset() m_master = m_sp_en_func(); } -const device_type PIC8259 = device_creator; +DEFINE_DEVICE_TYPE(PIC8259, pic8259_device, "pic8259", "Intel 8259 PIC") pic8259_device::pic8259_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, PIC8259, "8259 PIC", tag, owner, clock, "pit8259", __FILE__) + : device_t(mconfig, PIC8259, tag, owner, clock) , m_out_int_func(*this) , m_sp_en_func(*this) , m_read_slave_ack_func(*this) diff --git a/src/devices/machine/pic8259.h b/src/devices/machine/pic8259.h index 50f8da14ca8..c3360820edd 100644 --- a/src/devices/machine/pic8259.h +++ b/src/devices/machine/pic8259.h @@ -24,8 +24,8 @@ ***************************************************************************/ -#ifndef __PIC8259_H__ -#define __PIC8259_H__ +#ifndef MAME_MACHINE_PIC8259_H +#define MAME_MACHINE_PIC8259_H /*************************************************************************** @@ -44,9 +44,9 @@ class pic8259_device : public device_t public: pic8259_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &static_set_out_int_callback(device_t &device, _Object object) { return downcast(device).m_out_int_func.set_callback(object); } - template static devcb_base &static_set_sp_en_callback(device_t &device, _Object object) { return downcast(device).m_sp_en_func.set_callback(object); } - template static devcb_base &static_set_read_slave_ack_callback(device_t &device, _Object object) { return downcast(device).m_read_slave_ack_func.set_callback(object); } + template static devcb_base &static_set_out_int_callback(device_t &device, Object &&cb) { return downcast(device).m_out_int_func.set_callback(std::forward(cb)); } + template static devcb_base &static_set_sp_en_callback(device_t &device, Object &&cb) { return downcast(device).m_sp_en_func.set_callback(std::forward(cb)); } + template static devcb_base &static_set_read_slave_ack_callback(device_t &device, Object &&cb) { return downcast(device).m_read_slave_ack_func.set_callback(std::forward(cb)); } DECLARE_READ8_MEMBER( read ); DECLARE_WRITE8_MEMBER( write ); @@ -64,7 +64,7 @@ public: IRQ_CALLBACK_MEMBER(inta_cb); // used by m92.c until we can figure out how to hook it up in a way that doesn't break nbbatman (probably need correct IRQ timing / clears for the sprites IRQs - int HACK_get_base_vector() { return m_base; } + int HACK_get_base_vector() { return m_base; } protected: // device-level overrides @@ -73,7 +73,7 @@ protected: virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; private: - static const device_timer_id TIMER_CHECK_IRQ = 0; + static constexpr device_timer_id TIMER_CHECK_IRQ = 0; inline void set_timer() { timer_set(attotime::zero, TIMER_CHECK_IRQ); } void set_irq_line(int irq, int state); @@ -124,6 +124,6 @@ private: uint8_t m_is_x86; }; -extern const device_type PIC8259; +DECLARE_DEVICE_TYPE(PIC8259, pic8259_device) -#endif /* __PIC8259_H__ */ +#endif // MAME_MACHINE_PIC8259_H diff --git a/src/devices/machine/pit8253.cpp b/src/devices/machine/pit8253.cpp index 32cae233483..fdd7fec64e1 100644 --- a/src/devices/machine/pit8253.cpp +++ b/src/devices/machine/pit8253.cpp @@ -43,22 +43,17 @@ enum #define LOG2(msg) do { if (VERBOSE >= 2) logerror msg; } while (0) -const device_type PIT8253 = device_creator; +DEFINE_DEVICE_TYPE(PIT8253, pit8253_device, "pit8253", "Intel 8253 PIT") +DEFINE_DEVICE_TYPE(PIT8254, pit8254_device, "pit8254", "Intel 8254 PIT") pit8253_device::pit8253_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, PIT8253, "8253 PIT", tag, owner, clock, "pit8253", __FILE__), - m_clk0(0), - m_clk1(0), - m_clk2(0), - m_out0_handler(*this), - m_out1_handler(*this), - m_out2_handler(*this) + pit8253_device(mconfig, PIT8253, tag, owner, clock) { } -pit8253_device::pit8253_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), +pit8253_device::pit8253_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), m_clk0(0), m_clk1(0), m_clk2(0), @@ -69,10 +64,8 @@ pit8253_device::pit8253_device(const machine_config &mconfig, device_type type, } -const device_type PIT8254 = device_creator; - pit8254_device::pit8254_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : pit8253_device(mconfig, PIT8254, "8254 PIT", tag, owner, clock, "pit8254", __FILE__) + : pit8253_device(mconfig, PIT8254, tag, owner, clock) { } diff --git a/src/devices/machine/pit8253.h b/src/devices/machine/pit8253.h index 568491ed600..6c159efabfd 100644 --- a/src/devices/machine/pit8253.h +++ b/src/devices/machine/pit8253.h @@ -25,8 +25,10 @@ ***************************************************************************/ -#ifndef __PIT8253_H__ -#define __PIT8253_H__ +#ifndef MAME_MACHINE_PIT8253_H +#define MAME_MACHINE_PIT8253_H + +#pragma once /*************************************************************************** DEVICE CONFIGURATION MACROS @@ -55,16 +57,14 @@ class pit8253_device : public device_t { public: pit8253_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - pit8253_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - ~pit8253_device() {} // static configuration helpers static void set_clk0(device_t &device, double clk0) { downcast(device).m_clk0 = clk0; } static void set_clk1(device_t &device, double clk1) { downcast(device).m_clk1 = clk1; } static void set_clk2(device_t &device, double clk2) { downcast(device).m_clk2 = clk2; } - template static devcb_base &set_out0_handler(device_t &device, _Object object) { return downcast(device).m_out0_handler.set_callback(object); } - template static devcb_base &set_out1_handler(device_t &device, _Object object) { return downcast(device).m_out1_handler.set_callback(object); } - template static devcb_base &set_out2_handler(device_t &device, _Object object) { return downcast(device).m_out2_handler.set_callback(object); } + template static devcb_base &set_out0_handler(device_t &device, Object &&cb) { return downcast(device).m_out0_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_out1_handler(device_t &device, Object &&cb) { return downcast(device).m_out1_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_out2_handler(device_t &device, Object &&cb) { return downcast(device).m_out2_handler.set_callback(std::forward(cb)); } DECLARE_READ8_MEMBER(read); DECLARE_WRITE8_MEMBER(write); @@ -90,6 +90,8 @@ public: void set_clockin(int timer, double new_clockin); protected: + pit8253_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -155,7 +157,7 @@ private: void set_clock_signal(int timerno, int state); }; -extern const device_type PIT8253; +DECLARE_DEVICE_TYPE(PIT8253, pit8253_device) class pit8254_device : public pit8253_device @@ -167,6 +169,6 @@ protected: virtual void readback_command(uint8_t data) override; }; -extern const device_type PIT8254; +DECLARE_DEVICE_TYPE(PIT8254, pit8254_device) -#endif /* __PIT8253_H__ */ +#endif // MAME_MACHINE_PIT8253_H diff --git a/src/devices/machine/pla.cpp b/src/devices/machine/pla.cpp index 2c9b844b57d..a17335628f5 100644 --- a/src/devices/machine/pla.cpp +++ b/src/devices/machine/pla.cpp @@ -12,21 +12,22 @@ #include "plaparse.h" -const device_type PLA = device_creator; +DEFINE_DEVICE_TYPE(PLA, pla_device, "pla", "PLA") //------------------------------------------------- // pla_device - constructor //------------------------------------------------- pla_device::pla_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, PLA, "PLA", tag, owner, clock, "pla", __FILE__), - m_region(*this, DEVICE_SELF), - m_format(PLA_FMT_JEDBIN), - m_inputs(0), - m_outputs(0), - m_terms(0), - m_input_mask(0), - m_xor(0), m_cache_size(0), m_cache2_ptr(0) + : device_t(mconfig, PLA, tag, owner, clock) + , m_region(*this, DEVICE_SELF) + , m_format(FMT::JEDBIN) + , m_inputs(0) + , m_outputs(0) + , m_terms(0) + , m_input_mask(0) + , m_xor(0) + , m_cache_size(0), m_cache2_ptr(0) { } @@ -74,11 +75,11 @@ void pla_device::parse_fusemap() // read pla file switch (m_format) { - case PLA_FMT_JEDBIN: + case FMT::JEDBIN: result = jedbin_parse(m_region->base(), m_region->bytes(), &jed); break; - case PLA_FMT_BERKELEY: + case FMT::BERKELEY: result = pla_parse(m_region->base(), m_region->bytes(), &jed); break; } diff --git a/src/devices/machine/pla.h b/src/devices/machine/pla.h index 3187d200a00..be998c3184a 100644 --- a/src/devices/machine/pla.h +++ b/src/devices/machine/pla.h @@ -6,27 +6,11 @@ **********************************************************************/ -#pragma once - -#ifndef __PLA__ -#define __PLA__ - - +#ifndef MAME_MACHINE_PLA_H +#define MAME_MACHINE_PLA_H +#pragma once -//************************************************************************** -// MACROS / CONSTANTS -//************************************************************************** - -#define MAX_TERMS 512 -#define MAX_CACHE_BITS 20 -#define CACHE2_SIZE 8 - -enum -{ - PLA_FMT_JEDBIN = 0, - PLA_FMT_BERKELEY -}; @@ -34,17 +18,17 @@ enum // INTERFACE CONFIGURATION MACROS ///************************************************************************* -#define MCFG_PLA_ADD(_tag, _inputs, _outputs, _terms) \ - MCFG_DEVICE_ADD(_tag, PLA, 0) \ - pla_device::set_num_inputs(*device, _inputs); \ - pla_device::set_num_outputs(*device, _outputs); \ - pla_device::set_num_terms(*device, _terms); +#define MCFG_PLA_ADD(tag, inputs, outputs, terms) \ + MCFG_DEVICE_ADD((tag), PLA, 0) \ + pla_device::set_num_inputs(*device, (inputs)); \ + pla_device::set_num_outputs(*device, (outputs)); \ + pla_device::set_num_terms(*device, (terms)); -#define MCFG_PLA_INPUTMASK(_mask) \ - pla_device::set_inputmask(*device, _mask); +#define MCFG_PLA_INPUTMASK(mask) \ + pla_device::set_inputmask(*device, (mask)); -#define MCFG_PLA_FILEFORMAT(_format) \ - pla_device::set_format(*device, _format); +#define MCFG_PLA_FILEFORMAT(format) \ + pla_device::set_format(*device, (pla_device::FMT::format)); // macros for known (and used) devices @@ -67,13 +51,13 @@ enum F4 13 | | 16 F2 GND 14 |_____________| 15 F3 */ -#define MCFG_PLS100_ADD(_tag) \ - MCFG_PLA_ADD(_tag, 16, 8, 48) +#define MCFG_PLS100_ADD(tag) \ + MCFG_PLA_ADD((tag), 16, 8, 48) // MOS 8721 PLA // TODO: actual number of terms is unknown -#define MCFG_MOS8721_ADD(_tag) \ - MCFG_PLA_ADD(_tag, 27, 18, 379) +#define MCFG_MOS8721_ADD(tag) \ + MCFG_PLA_ADD((tag), 27, 18, 379) @@ -86,6 +70,12 @@ enum class pla_device : public device_t { public: + enum class FMT + { + JEDBIN = 0, + BERKELEY + }; + // construction/destruction pla_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); @@ -94,7 +84,7 @@ public: static void set_num_outputs(device_t &device, uint32_t o) { downcast(device).m_outputs = o; } static void set_num_terms(device_t &device, uint32_t t) { downcast(device).m_terms = t; } static void set_inputmask(device_t &device, uint32_t mask) { downcast(device).m_input_mask = mask; } // uint32_t! - static void set_format(device_t &device, int format) { downcast(device).m_format = format; } + static void set_format(device_t &device, FMT format) { downcast(device).m_format = format; } uint32_t inputs() { return m_inputs; } uint32_t outputs() { return m_outputs; } @@ -106,11 +96,15 @@ protected: virtual void device_start() override; private: + static constexpr unsigned MAX_TERMS = 512; + static constexpr unsigned MAX_CACHE_BITS = 20; + static constexpr unsigned CACHE2_SIZE = 8; + void parse_fusemap(); required_memory_region m_region; - int m_format; + FMT m_format; uint32_t m_inputs; uint32_t m_outputs; @@ -132,7 +126,6 @@ private: // device type definition -extern const device_type PLA; - +DECLARE_DEVICE_TYPE(PLA, pla_device) -#endif +#endif // MAME_MACHINE_PLA_H diff --git a/src/devices/machine/r10696.cpp b/src/devices/machine/r10696.cpp index f3a353b7ec0..1f6dd022aab 100644 --- a/src/devices/machine/r10696.cpp +++ b/src/devices/machine/r10696.cpp @@ -32,12 +32,9 @@ #include "emu.h" #include "machine/r10696.h" -#define VERBOSE 1 -#if VERBOSE -#define LOG(x) logerror x -#else -#define LOG(x) -#endif +//#define VERBOSE 1 +#include "logmacro.h" + /************************************* * @@ -45,12 +42,12 @@ * *************************************/ -const device_type R10696 = device_creator; +DEFINE_DEVICE_TYPE(R10696, r10696_device, "r10696", "Rockwell 10696 GPIO") r10696_device::r10696_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, R10696, "Rockwell 10696", tag, owner, clock, "r10696", __FILE__), - m_io_a(0), m_io_b(0), m_io_c(0), - m_iord(*this), m_iowr(*this) + : device_t(mconfig, R10696, tag, owner, clock) + , m_io_a(0), m_io_b(0), m_io_c(0) + , m_iord(*this), m_iowr(*this) { } diff --git a/src/devices/machine/r10696.h b/src/devices/machine/r10696.h index 16c3cd130bf..ef5d4c8e78f 100644 --- a/src/devices/machine/r10696.h +++ b/src/devices/machine/r10696.h @@ -13,8 +13,10 @@ **********************************************************************/ -#ifndef __R10696_H__ -#define __R10696_H__ +#ifndef MAME_MACHINE_R10696_H +#define MAME_MACHINE_R10696_H + +#pragma once #include "device.h" @@ -26,20 +28,20 @@ /* Set the read and write group (4-bit; nibble) delegates */ #define MCFG_R10696_IO(_devcb_rd,_devcb_wr) \ - r10696_device::set_iord(*device, DEVCB_##_devcb_rd); \ - r10696_device::set_iowr(*device, DEVCB_##_devcb_wr); + r10696_device::set_iord(*device, DEVCB_##_devcb_rd); \ + r10696_device::set_iowr(*device, DEVCB_##_devcb_wr); class r10696_device : public device_t { public: r10696_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~r10696_device() {} DECLARE_READ8_MEMBER ( io_r ); DECLARE_WRITE8_MEMBER( io_w ); - template static devcb_base &set_iord(device_t &device, _Object object) { return downcast(device).m_iord.set_callback(object); } - template static devcb_base &set_iowr(device_t &device, _Object object) { return downcast(device).m_iowr.set_callback(object); } + template static devcb_base &set_iord(device_t &device, Object &&cb) { return downcast(device).m_iord.set_callback(std::forward(cb)); } + template static devcb_base &set_iowr(device_t &device, Object &&cb) { return downcast(device).m_iowr.set_callback(std::forward(cb)); } + protected: // device-level overrides virtual void device_start() override; @@ -53,6 +55,6 @@ private: devcb_write8 m_iowr; //!< output line (write, offset = group, data = 4 bits) }; -extern const device_type R10696; +DECLARE_DEVICE_TYPE(R10696, r10696_device) -#endif /* __R10696_H__ */ +#endif // MAME_MACHINE_R10696_H diff --git a/src/devices/machine/r10788.cpp b/src/devices/machine/r10788.cpp index 75a486c1915..95b23c9ec9b 100644 --- a/src/devices/machine/r10788.cpp +++ b/src/devices/machine/r10788.cpp @@ -39,12 +39,9 @@ #include "emu.h" #include "machine/r10788.h" -#define VERBOSE 0 -#if VERBOSE -#define LOG(x) logerror x -#else -#define LOG(x) -#endif +//#define VERBOSE 1 +#include "logmacro.h" + /************************************* * @@ -52,13 +49,13 @@ * *************************************/ -const device_type R10788 = device_creator; +DEFINE_DEVICE_TYPE(R10788, r10788_device, "r10788", "Rockwell 10788 KDC") r10788_device::r10788_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, R10788, "Rockwell 10788", tag, owner, clock, "r10788", __FILE__), - m_ktr(0), m_kts(0), m_kla(0), m_klb(0), m_mask_a(15), m_mask_b(15), m_ker(0), - m_io_counter(0), m_scan_counter(0), - m_display(*this) + : device_t(mconfig, R10788, tag, owner, clock) + , m_ktr(0), m_kts(0), m_kla(0), m_klb(0), m_mask_a(15), m_mask_b(15), m_ker(0) + , m_io_counter(0), m_scan_counter(0) + , m_display(*this) { } @@ -117,11 +114,11 @@ void r10788_device::device_timer(emu_timer &timer, device_timer_id id, int param case TIMER_DISPLAY: data = (m_reg[0][m_scan_counter] & m_mask_a) + 16 * (m_reg[1][m_scan_counter] & m_mask_b); - LOG(("%s: scan counter:%2d data:%02x\n", __FUNCTION__, m_scan_counter, data)); + LOG("%s: scan counter:%2d data:%02x\n", __FUNCTION__, m_scan_counter, data); m_display(m_scan_counter, data, 0xff); break; default: - LOG(("%s: invalid timer id:%d\n", __FUNCTION__, id)); + LOG("%s: invalid timer id:%d\n", __FUNCTION__, id); } m_scan_counter = (m_scan_counter + 1) % 16; } @@ -144,39 +141,39 @@ WRITE8_MEMBER( r10788_device::io_w ) switch (offset) { case KTR: // Transfer Keyboard Return - LOG(("%s: KTR data:%02x\n", __FUNCTION__, data)); + LOG("%s: KTR data:%02x\n", __FUNCTION__, data); m_ktr = data; break; case KTS: // Transfer Keyboard Strobe - LOG(("%s: KTS data:%02x\n", __FUNCTION__, data)); + LOG("%s: KTS data:%02x\n", __FUNCTION__, data); m_kts = data; break; case KLA: // Load Display Register A - LOG(("%s: KLA [%2d] data:%02x\n", __FUNCTION__, m_io_counter, data)); + LOG("%s: KLA [%2d] data:%02x\n", __FUNCTION__, m_io_counter, data); m_kla = data; m_reg[0][m_io_counter] = m_kla; break; case KLB: // Load Display Register B - LOG(("%s: KLB [%2d] data:%02x\n", __FUNCTION__, m_io_counter, data)); + LOG("%s: KLB [%2d] data:%02x\n", __FUNCTION__, m_io_counter, data); m_klb = data; m_reg[1][m_io_counter] = m_kla; break; case KDN: // Turn On Display - LOG(("%s: KDN data:%02x\n", __FUNCTION__, data)); + LOG("%s: KDN data:%02x\n", __FUNCTION__, data); m_mask_a = 15; m_mask_b = 15; break; case KAF: // Turn Off A - LOG(("%s: KAF data:%02x\n", __FUNCTION__, data)); + LOG("%s: KAF data:%02x\n", __FUNCTION__, data); m_mask_a = 0; m_mask_b &= ~3; break; case KBF: // Turn Off B - LOG(("%s: KBF data:%02x\n", __FUNCTION__, data)); + LOG("%s: KBF data:%02x\n", __FUNCTION__, data); m_mask_b &= ~12; break; case KER: // Reset Keyboard Error - LOG(("%s: KER data:%02x\n", __FUNCTION__, data)); + LOG("%s: KER data:%02x\n", __FUNCTION__, data); m_ker = 10; break; } @@ -191,35 +188,35 @@ READ8_MEMBER( r10788_device::io_r ) { case KTR: // Transfer Keyboard Return data = m_ktr; - LOG(("%s: KTR data:%02x\n", __FUNCTION__, data)); + LOG("%s: KTR data:%02x\n", __FUNCTION__, data); break; case KTS: // Transfer Keyboard Strobe data = m_kts; - LOG(("%s: KTS data:%02x\n", __FUNCTION__, data)); + LOG("%s: KTS data:%02x\n", __FUNCTION__, data); break; case KLA: // Load Display Register A m_kla = m_reg[0][m_io_counter]; data = m_kla; - LOG(("%s: KLA [%2d] data:%02x\n", __FUNCTION__, m_io_counter, data)); + LOG("%s: KLA [%2d] data:%02x\n", __FUNCTION__, m_io_counter, data); break; case KLB: // Load Display Register B m_klb = m_reg[1][m_io_counter]; data = m_klb; - LOG(("%s: KLB [%2d] data:%02x\n", __FUNCTION__, m_io_counter, data)); + LOG("%s: KLB [%2d] data:%02x\n", __FUNCTION__, m_io_counter, data); // FIXME: does it automagically increment at KLB write? m_io_counter = (m_io_counter + 1) % 16; break; case KDN: // Turn On Display - LOG(("%s: KDN data:%02x\n", __FUNCTION__, data)); + LOG("%s: KDN data:%02x\n", __FUNCTION__, data); break; case KAF: // Turn Off A - LOG(("%s: KAF data:%02x\n", __FUNCTION__, data)); + LOG("%s: KAF data:%02x\n", __FUNCTION__, data); break; case KBF: // Turn Off B - LOG(("%s: KBF data:%02x\n", __FUNCTION__, data)); + LOG("%s: KBF data:%02x\n", __FUNCTION__, data); break; case KER: // Reset Keyboard Error - LOG(("%s: KER data:%02x\n", __FUNCTION__, data)); + LOG("%s: KER data:%02x\n", __FUNCTION__, data); break; } return data; diff --git a/src/devices/machine/r10788.h b/src/devices/machine/r10788.h index 0faed89fcd2..43c0b76ca88 100644 --- a/src/devices/machine/r10788.h +++ b/src/devices/machine/r10788.h @@ -12,8 +12,10 @@ **********************************************************************/ -#ifndef __R10788_H__ -#define __R10788_H__ +#ifndef MAME_MACHINE_R10788_H +#define MAME_MACHINE_R10788_H + +#pragma once #include "device.h" @@ -24,14 +26,13 @@ *************************************/ /* Set the writer used to update a display digit */ -#define MCFG_R10788_UPDATE(_devcb) \ - r10788_device::set_update(*device, DEVCB_##_devcb); +#define MCFG_R10788_UPDATE(devcb) \ + r10788_device::set_update(*device, DEVCB_##devcb); class r10788_device : public device_t { public: r10788_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~r10788_device() {} enum { KTR = 0xc, //!< Transfer Keyboard Return @@ -47,7 +48,8 @@ public: DECLARE_READ8_MEMBER ( io_r ); DECLARE_WRITE8_MEMBER( io_w ); - template static devcb_base &set_update(device_t &device, _Object object) { return downcast(device).m_display.set_callback(object); } + template static devcb_base &set_update(device_t &device, Object &&cb) { return downcast(device).m_display.set_callback(std::forward(cb)); } + protected: // device-level overrides virtual void device_start() override; @@ -71,6 +73,6 @@ private: emu_timer* m_timer; //!< timer running at clock / 18 / 36 }; -extern const device_type R10788; +DECLARE_DEVICE_TYPE(R10788, r10788_device) -#endif /* __R10788_H__ */ +#endif // MAME_MACHINE_R10788_H diff --git a/src/devices/machine/ra17xx.cpp b/src/devices/machine/ra17xx.cpp index 6324a70c9d7..d45dec77e91 100644 --- a/src/devices/machine/ra17xx.cpp +++ b/src/devices/machine/ra17xx.cpp @@ -40,12 +40,9 @@ #include "emu.h" #include "machine/ra17xx.h" -#define VERBOSE 1 -#if VERBOSE -#define LOG(x) logerror x -#else -#define LOG(x) -#endif +//#define VERBOSE 1 +#include "logmacro.h" + /************************************* * @@ -53,14 +50,14 @@ * *************************************/ -const device_type RA17XX = device_creator; +DEFINE_DEVICE_TYPE(RA17XX, ra17xx_device, "ra17xx", "Rockwell A17xx") ra17xx_device::ra17xx_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, RA17XX, "Rockwell A17XX", tag, owner, clock, "ra17xx", __FILE__), - m_enable(false), - m_iord(*this), - m_iowr(*this), - m_cpu(*this, finder_base::DUMMY_TAG) + : device_t(mconfig, RA17XX, tag, owner, clock) + , m_enable(false) + , m_iord(*this) + , m_iowr(*this) + , m_cpu(*this, finder_base::DUMMY_TAG) { } diff --git a/src/devices/machine/ra17xx.h b/src/devices/machine/ra17xx.h index d0d51902d57..a88111a9776 100644 --- a/src/devices/machine/ra17xx.h +++ b/src/devices/machine/ra17xx.h @@ -12,8 +12,8 @@ **********************************************************************/ -#ifndef __RA17XX_H__ -#define __RA17XX_H__ +#ifndef MAME_MACHINE_RA17XX_H +#define MAME_MACHINE_RA17XX_H #include "device.h" #include "cpu/pps4/pps4.h" @@ -24,27 +24,26 @@ * *************************************/ -/* Set the read line handler */ -#define MCFG_RA17XX_READ(_devcb) \ - ra17xx_device::set_iord(*device, DEVCB_##_devcb); -/* Set the write line handler */ -#define MCFG_RA17XX_WRITE(_devcb) \ - ra17xx_device::set_iowr(*device, DEVCB_##_devcb); +// Set the read line handler +#define MCFG_RA17XX_READ(devcb) \ + ra17xx_device::set_iord(*device, DEVCB_##devcb); +// Set the write line handler +#define MCFG_RA17XX_WRITE(devcb) \ + ra17xx_device::set_iowr(*device, DEVCB_##devcb); -#define MCFG_RA17XX_CPU(_tag) \ - ra17xx_device::set_cpu_tag(*device, "^" _tag); +#define MCFG_RA17XX_CPU(tag) \ + ra17xx_device::set_cpu_tag(*device, "^" tag); class ra17xx_device : public device_t { public: ra17xx_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~ra17xx_device() {} DECLARE_READ8_MEMBER ( io_r ); DECLARE_WRITE8_MEMBER( io_w ); - template static devcb_base &set_iord(device_t &device, _Object object) { return downcast(device).m_iord.set_callback(object); } - template static devcb_base &set_iowr(device_t &device, _Object object) { return downcast(device).m_iowr.set_callback(object); } + template static devcb_base &set_iord(device_t &device, Object &&cb) { return downcast(device).m_iord.set_callback(std::forward(cb)); } + template static devcb_base &set_iowr(device_t &device, Object &&cb) { return downcast(device).m_iowr.set_callback(std::forward(cb)); } static void set_cpu_tag(device_t &device, const char *tag) { downcast(device).m_cpu.set_tag(tag); } protected: @@ -61,6 +60,6 @@ private: required_device m_cpu; }; -extern const device_type RA17XX; +DECLARE_DEVICE_TYPE(RA17XX, ra17xx_device) -#endif /* __RA17XX_H__ */ +#endif // MAME_MACHINE_RA17XX_H diff --git a/src/devices/machine/ram.cpp b/src/devices/machine/ram.cpp index 49ff027ed0f..a57f144ae0d 100644 --- a/src/devices/machine/ram.cpp +++ b/src/devices/machine/ram.cpp @@ -12,8 +12,8 @@ #include #include "emu.h" -#include "emuopts.h" #include "ram.h" +#include "emuopts.h" /***************************************************************************** @@ -21,17 +21,15 @@ *****************************************************************************/ // device type definition -const device_type RAM = device_creator; +DEFINE_DEVICE_TYPE(RAM, ram_device, "ram", "RAM") -template class device_finder; -template class device_finder; //------------------------------------------------- // ram_device - constructor //------------------------------------------------- ram_device::ram_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, RAM, "RAM", tag, owner, clock, "ram", __FILE__) + : device_t(mconfig, RAM, tag, owner, clock) { m_size = 0; m_default_size = nullptr; diff --git a/src/devices/machine/ram.h b/src/devices/machine/ram.h index bd464977fa0..e35e9bf51c5 100644 --- a/src/devices/machine/ram.h +++ b/src/devices/machine/ram.h @@ -8,8 +8,10 @@ **************************************************************************/ -#ifndef MAME_DEVICES_MACHINE_RAM_H -#define MAME_DEVICES_MACHINE_RAM_H +#ifndef MAME_MACHINE_RAM_H +#define MAME_MACHINE_RAM_H + +#pragma once /*************************************************************************** @@ -47,7 +49,7 @@ TYPE DEFINITIONS ***************************************************************************/ -class ram_device : public device_t +class ram_device : public device_t { public: // construction/destruction @@ -68,7 +70,7 @@ public: // inline configuration helpers static void static_set_default_size(device_t &device, const char *default_size) { downcast(device).m_default_size = default_size; } static void static_set_extra_options(device_t &device, const char *extra_options) { downcast(device).m_extra_options = extra_options; } - static void static_set_default_value(device_t &device, uint8_t default_value) { downcast(device).m_default_value = default_value; } + static void static_set_default_value(device_t &device, uint8_t default_value) { downcast(device).m_default_value = default_value; } protected: virtual void device_start(void) override; @@ -87,12 +89,9 @@ private: // device type definition -extern const device_type RAM; +DECLARE_DEVICE_TYPE(RAM, ram_device) // device iterator typedef device_type_iterator ram_device_iterator; -extern template class device_finder; -extern template class device_finder; - -#endif // MAME_DEVICES_MACHINE_RAM_H +#endif // MAME_MACHINE_RAM_H diff --git a/src/devices/machine/rescap.h b/src/devices/machine/rescap.h index 23e4b9f4329..851a7c25528 100644 --- a/src/devices/machine/rescap.h +++ b/src/devices/machine/rescap.h @@ -1,7 +1,7 @@ // license:BSD-3-Clause // copyright-holders:Aaron Giles -#ifndef RC_MACROS_H -#define RC_MACROS_H +#ifndef MAME_MACHINE_RESCAP_H +#define MAME_MACHINE_RESCAP_H /* Little helpers for magnitude conversions */ #define RES_R(res) ((double)(res)) @@ -26,4 +26,4 @@ #define RES_2_SERIAL(r1,r2) ((r1)+(r2)) -#endif +#endif // MAME_MACHINE_RESCAP_H diff --git a/src/devices/machine/rf5c296.cpp b/src/devices/machine/rf5c296.cpp index dc88babbdb7..7627c0280aa 100644 --- a/src/devices/machine/rf5c296.cpp +++ b/src/devices/machine/rf5c296.cpp @@ -5,10 +5,10 @@ // rf5c296 is very inaccurate at that point, it hardcodes the gnet config -const device_type RF5C296 = device_creator; +DEFINE_DEVICE_TYPE(RF5C296, rf5c296_device, "rf5c296", "RF5C296 PC Card controller") rf5c296_device::rf5c296_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, RF5C296, "RF5C296 PC Card controller", tag, owner, clock, "rf5c296", __FILE__) + : device_t(mconfig, RF5C296, tag, owner, clock) , m_rf5c296_reg(0) , m_pccard(nullptr) , m_pccard_name(nullptr) diff --git a/src/devices/machine/rf5c296.h b/src/devices/machine/rf5c296.h index 2f9037b240c..f27644e0269 100644 --- a/src/devices/machine/rf5c296.h +++ b/src/devices/machine/rf5c296.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:smf -#pragma once +#ifndef MAME_MACHINE_RF5C296_H +#define MAME_MACHINE_RF5C296_H -#ifndef __RF5C296_H__ -#define __RF5C296_H__ +#pragma once #include "pccard.h" @@ -36,6 +36,6 @@ private: const char *m_pccard_name; }; -extern const device_type RF5C296; +DECLARE_DEVICE_TYPE(RF5C296, rf5c296_device) -#endif +#endif // MAME_MACHINE_RF5C296_H diff --git a/src/devices/machine/roc10937.cpp b/src/devices/machine/roc10937.cpp index 2573e9549b0..05d332106bb 100644 --- a/src/devices/machine/roc10937.cpp +++ b/src/devices/machine/roc10937.cpp @@ -125,20 +125,20 @@ static const int roc10937poslut[]= 0//15 }; -rocvfd_t::rocvfd_t(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source) +rocvfd_device::rocvfd_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock) { m_port_val=0; } -void rocvfd_t::static_set_value(device_t &device, int val) +void rocvfd_device::static_set_value(device_t &device, int val) { - rocvfd_t &roc = downcast(device); + rocvfd_device &roc = downcast(device); roc.m_port_val = val; } -void rocvfd_t::device_start() +void rocvfd_device::device_start() { save_item(NAME(m_port_val)); save_item(NAME(m_cursor_pos)); @@ -159,7 +159,7 @@ void rocvfd_t::device_start() device_reset(); } -void rocvfd_t::device_reset() +void rocvfd_device::device_reset() { m_cursor_pos = 0; m_window_size = 16; @@ -178,19 +178,19 @@ void rocvfd_t::device_reset() } /////////////////////////////////////////////////////////////////////////// -uint32_t rocvfd_t::set_display(uint32_t segin) +uint32_t rocvfd_device::set_display(uint32_t segin) { 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 rocvfd_t::device_post_load() +void rocvfd_device::device_post_load() { update_display(); } -void rocvfd_t::update_display() +void rocvfd_device::update_display() { for (int i =0; i<16; i++) { @@ -199,17 +199,17 @@ void rocvfd_t::update_display() } } -WRITE_LINE_MEMBER( rocvfd_t::sclk ) +WRITE_LINE_MEMBER( rocvfd_device::sclk ) { shift_clock(state); } -WRITE_LINE_MEMBER( rocvfd_t::data ) +WRITE_LINE_MEMBER( rocvfd_device::data ) { m_data = state; } -WRITE_LINE_MEMBER( rocvfd_t::por ) +WRITE_LINE_MEMBER( rocvfd_device::por ) { //If line goes low, reset mode is engaged, until such a time as it goes high again. if (!state) @@ -219,7 +219,7 @@ WRITE_LINE_MEMBER( rocvfd_t::por ) } -void rocvfd_t::shift_clock(int state) +void rocvfd_device::shift_clock(int state) { if (m_sclk != state) { @@ -244,39 +244,37 @@ void rocvfd_t::shift_clock(int state) } /////////////////////////////////////////////////////////////////////////// -const device_type ROC10937 = device_creator; - -roc10937_t::roc10937_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : rocvfd_t(mconfig, ROC10937, "Rockwell 10937 VFD controller and compatible", tag, owner, clock, "roc10937", __FILE__) +DEFINE_DEVICE_TYPE(ROC10937, roc10937_device, "roc10937", "Rockwell 10937 VFD controller") // and compatible +DEFINE_DEVICE_TYPE(MSC1937, msc1937_device, "msc1937", "OKI MSC1937 VFD controller") +DEFINE_DEVICE_TYPE(MIC10937, mic10937_device, "mic10937", "Micrel MIC10937 VFD controller") +DEFINE_DEVICE_TYPE(ROC10957, roc10957_device, "roc10957", "Rockwell 10957 VFD controller") // and compatible +DEFINE_DEVICE_TYPE(S16LF01, s16lf01_device, "s16lf01", "Samsung 16LF01 Series VFD controller") // and compatible + +roc10937_device::roc10937_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : rocvfd_device(mconfig, ROC10937, tag, owner, clock) { m_port_val=0; } -const device_type MSC1937 = device_creator; - -msc1937_t::msc1937_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : rocvfd_t(mconfig, MSC1937, "OKI MSC1937 VFD controller", tag, owner, clock, "msc1937", __FILE__) +msc1937_device::msc1937_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : rocvfd_device(mconfig, MSC1937, tag, owner, clock) { m_port_val=0; } -const device_type MIC10937 = device_creator; - -mic10937_t::mic10937_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : rocvfd_t(mconfig, MIC10937, "Micrel MIC10937 VFD controller", tag, owner, clock, "mic10937", __FILE__) +mic10937_device::mic10937_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : rocvfd_device(mconfig, MIC10937, tag, owner, clock) { m_port_val=0; } -const device_type S16LF01 = device_creator; - -s16lf01_t::s16lf01_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : rocvfd_t(mconfig, S16LF01, "Samsung 16LF01 Series VFD controller and compatible", tag, owner, clock, "s16lf01", __FILE__) +s16lf01_device::s16lf01_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : rocvfd_device(mconfig, S16LF01, tag, owner, clock) { m_port_val=0; } -void rocvfd_t::write_char(int data) +void rocvfd_device::write_char(int data) { if ( data & 0x80 ) { // Control data received @@ -327,15 +325,13 @@ void rocvfd_t::write_char(int data) } } -const device_type ROC10957 = device_creator; - -roc10957_t::roc10957_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : rocvfd_t(mconfig, ROC10957, "Rockwell 10957 VFD controller and compatible", tag, owner, clock, "roc10957", __FILE__) +roc10957_device::roc10957_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : rocvfd_device(mconfig, ROC10957, tag, owner, clock) { m_port_val=0; } -void roc10957_t::write_char(int data) +void roc10957_device::write_char(int data) { if ( data & 0x80 ) { // Control data received diff --git a/src/devices/machine/roc10937.h b/src/devices/machine/roc10937.h index da1b5799438..e0488697d86 100644 --- a/src/devices/machine/roc10937.h +++ b/src/devices/machine/roc10937.h @@ -7,64 +7,61 @@ OKI MSC1937 is a clone of this chip, with many others. **********************************************************************/ -#pragma once +#ifndef MAME_MACHINE_ROC10937_H +#define MAME_MACHINE_ROC10937_H -#ifndef ROC10937_H -#define ROC10937_H +#pragma once #define MCFG_ROC10937_ADD(_tag,_val) \ MCFG_DEVICE_ADD(_tag, ROC10937,60)\ MCFG_ROC10937_PORT(_val) #define MCFG_ROC10937_PORT(_val) \ - roc10937_t::static_set_value(*device, _val); + roc10937_device::static_set_value(*device, _val); #define MCFG_ROC10937_REMOVE(_tag) \ - MCFG_DEVICE_REMOVE(_tag) + MCFG_DEVICE_REMOVE(_tag) #define MCFG_ROC10957_ADD(_tag,_val) \ MCFG_DEVICE_ADD(_tag, ROC10957,60)\ MCFG_ROC10957_PORT(_val) #define MCFG_ROC10957_PORT(_val) \ - roc10957_t::static_set_value(*device, _val); + roc10957_device::static_set_value(*device, _val); #define MCFG_ROC10957_REMOVE(_tag) \ - MCFG_DEVICE_REMOVE(_tag) + MCFG_DEVICE_REMOVE(_tag) #define MCFG_MSC1937_ADD(_tag,_val) \ MCFG_DEVICE_ADD(_tag, ROC10937,60)\ MCFG_MSC1937_PORT(_val) #define MCFG_MSC1937_PORT(_val) \ - MCFG_ROC10937_PORT(_val) + MCFG_ROC10937_PORT(_val) #define MCFG_MSC1937_REMOVE(_tag) \ - MCFG_DEVICE_REMOVE(_tag) + MCFG_DEVICE_REMOVE(_tag) #define MCFG_MIC10937_ADD(_tag,_val) \ MCFG_DEVICE_ADD(_tag, MIC10937,60)\ MCFG_MIC10937_PORT(_val) #define MCFG_MIC10937_PORT(_val) \ - MCFG_ROC10937_PORT(_val) + MCFG_ROC10937_PORT(_val) #define MCFG_MIC10937_REMOVE(_tag) \ - MCFG_DEVICE_REMOVE(_tag) + MCFG_DEVICE_REMOVE(_tag) #define MCFG_S16LF01_ADD(_tag,_val) \ MCFG_DEVICE_ADD(_tag, S16LF01,60)\ MCFG_S16LF01_PORT(_val) #define MCFG_S16LF01_PORT(_val) \ - MCFG_ROC10937_PORT(_val) + MCFG_ROC10937_PORT(_val) -class rocvfd_t : public device_t { +class rocvfd_device : public device_t { public: - rocvfd_t(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - // inline configuration helpers static void static_set_value(device_t &device, int val); virtual void update_display(); - uint8_t m_port_val; void shift_clock(int data); void write_char(int data); uint32_t set_display(uint32_t segin); @@ -74,6 +71,9 @@ public: protected: + rocvfd_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + uint8_t m_port_val; int m_cursor_pos; int m_window_size; // window size int m_shift_count; @@ -95,37 +95,38 @@ protected: }; -class roc10937_t : public rocvfd_t { +class roc10937_device : public rocvfd_device { public: - roc10937_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + roc10937_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; -class msc1937_t : public rocvfd_t { +class msc1937_device : public rocvfd_device { public: - msc1937_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + msc1937_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; -class mic10937_t : public rocvfd_t { +class mic10937_device : public rocvfd_device { public: - mic10937_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + mic10937_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; -class roc10957_t : public rocvfd_t { +class roc10957_device : public rocvfd_device { public: - roc10957_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + roc10957_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); void write_char(int data); }; -class s16lf01_t : public rocvfd_t { +class s16lf01_device : public rocvfd_device { public: - s16lf01_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + s16lf01_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; -extern const device_type ROC10937; -extern const device_type MSC1937; -extern const device_type MIC10937; -extern const device_type ROC10957; -extern const device_type S16LF01; -#endif +DECLARE_DEVICE_TYPE(ROC10937, roc10937_device) +DECLARE_DEVICE_TYPE(MSC1937, msc1937_device) +DECLARE_DEVICE_TYPE(MIC10937, mic10937_device) +DECLARE_DEVICE_TYPE(ROC10957, roc10957_device) +DECLARE_DEVICE_TYPE(S16LF01, s16lf01_device) + +#endif // MAME_MACHINE_ROC10937_H diff --git a/src/devices/machine/rp5c01.cpp b/src/devices/machine/rp5c01.cpp index a7b9a3ec067..99eb81ca4df 100644 --- a/src/devices/machine/rp5c01.cpp +++ b/src/devices/machine/rp5c01.cpp @@ -21,7 +21,7 @@ // device type definition -const device_type RP5C01 = device_creator; +DEFINE_DEVICE_TYPE(RP5C01, rp5c01_device, "rp5c01", "Ricoh RP5C01 RTC") //************************************************************************** @@ -169,7 +169,7 @@ inline void rp5c01_device::check_alarm() //------------------------------------------------- rp5c01_device::rp5c01_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, RP5C01, "RP5C01", tag, owner, clock, "rp5c01", __FILE__), + : device_t(mconfig, RP5C01, tag, owner, clock), device_rtc_interface(mconfig, *this), device_nvram_interface(mconfig, *this), m_out_alarm_cb(*this), diff --git a/src/devices/machine/rp5c01.h b/src/devices/machine/rp5c01.h index c1e9ba5b808..c80d9c48405 100644 --- a/src/devices/machine/rp5c01.h +++ b/src/devices/machine/rp5c01.h @@ -18,10 +18,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_MACHINE_RP5C01_H +#define MAME_MACHINE_RP5C01_H -#ifndef __RP5C01__ -#define __RP5C01__ +#pragma once #include "dirtc.h" @@ -53,7 +53,7 @@ public: // construction/destruction rp5c01_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_out_alarm_callback(device_t &device, _Object object) { return downcast(device).m_out_alarm_cb.set_callback(object); } + template static devcb_base &set_out_alarm_callback(device_t &device, Object &&cb) { return downcast(device).m_out_alarm_cb.set_callback(std::forward(cb)); } static void remove_battery(device_t &device) { downcast(device).m_battery_backed = false; } DECLARE_READ8_MEMBER( read ); @@ -105,8 +105,6 @@ private: // device type definition -extern const device_type RP5C01; - - +DECLARE_DEVICE_TYPE(RP5C01, rp5c01_device) -#endif +#endif // MAME_MACHINE_RP5C01_H diff --git a/src/devices/machine/rp5c15.cpp b/src/devices/machine/rp5c15.cpp index 4c5d73c044c..7d9b3b9b320 100644 --- a/src/devices/machine/rp5c15.cpp +++ b/src/devices/machine/rp5c15.cpp @@ -19,15 +19,15 @@ #include "emu.h" #include "rp5c15.h" +//#define VERBOSE 1 +#include "logmacro.h" + //************************************************************************** // MACROS / CONSTANTS //************************************************************************** -#define LOG 0 - - // registers enum { @@ -106,7 +106,7 @@ enum //************************************************************************** // devices -const device_type RP5C15 = device_creator; +DEFINE_DEVICE_TYPE(RP5C15, rp5c15_device, "rp5c15", "Ricoh RP5C15 RTC") @@ -126,7 +126,7 @@ inline void rp5c15_device::set_alarm_line() if (m_alarm != alarm) { - if (LOG) logerror("RP5C15 '%s' Alarm %u\n", tag(), alarm); + LOG("RP5C15 Alarm %u\n", alarm); m_out_alarm_cb(alarm); m_alarm = alarm; @@ -184,7 +184,7 @@ inline void rp5c15_device::check_alarm() //------------------------------------------------- rp5c15_device::rp5c15_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, RP5C15, "RP5C15", tag, owner, clock, "rp5c15", __FILE__), + : device_t(mconfig, RP5C15, tag, owner, clock), device_rtc_interface(mconfig, *this), m_out_alarm_cb(*this), m_out_clkout_cb(*this), @@ -314,7 +314,7 @@ READ8_MEMBER( rp5c15_device::read ) break; } - if (LOG) logerror("RP5C15 '%s' Register %u Read %02x\n", tag(), offset, data); + LOG("RP5C15 Register %u Read %02x\n", offset, data); return data & 0x0f; } @@ -334,16 +334,13 @@ WRITE8_MEMBER( rp5c15_device::write ) case REGISTER_MODE: m_mode = data; - if (LOG) - { - logerror("RP5C15 '%s' Mode %u\n", tag(), data & MODE_MASK); - logerror("RP5C15 '%s' Timer %s\n", tag(), (data & MODE_TIMER_EN) ? "enabled" : "disabled"); - logerror("RP5C15 '%s' Alarm %s\n", tag(), (data & MODE_ALARM_EN) ? "enabled" : "disabled"); - } + LOG("RP5C15 Mode %u\n", data & MODE_MASK); + LOG("RP5C15 Timer %s\n", (data & MODE_TIMER_EN) ? "enabled" : "disabled"); + LOG("RP5C15 Alarm %s\n", (data & MODE_ALARM_EN) ? "enabled" : "disabled"); break; case REGISTER_TEST: - if (LOG) logerror("RP5C15 '%s' Test %u not supported!\n", tag(), data); + LOG("RP5C15 Test %u not supported!\n", data); break; case REGISTER_RESET: @@ -358,13 +355,10 @@ WRITE8_MEMBER( rp5c15_device::write ) } } - if (LOG) - { - if (data & RESET_ALARM) logerror("RP5C15 '%s' Alarm Reset\n", tag()); - if (data & RESET_TIMER) logerror("RP5C15 '%s' Timer Reset not supported!\n", tag()); - logerror("RP5C15 '%s' 16Hz Signal %s\n", tag(), (data & RESET_16_HZ) ? "disabled" : "enabled"); - logerror("RP5C15 '%s' 1Hz Signal %s\n", tag(), (data & RESET_1_HZ) ? "disabled" : "enabled"); - } + if (data & RESET_ALARM) LOG("RP5C15 Alarm Reset\n"); + if (data & RESET_TIMER) LOG("RP5C15 Timer Reset not supported!\n"); + LOG("RP5C15 16Hz Signal %s\n", (data & RESET_16_HZ) ? "disabled" : "enabled"); + LOG("RP5C15 1Hz Signal %s\n", (data & RESET_1_HZ) ? "disabled" : "enabled"); break; default: @@ -432,7 +426,7 @@ WRITE8_MEMBER( rp5c15_device::write ) break; } - if (LOG) logerror("RP5C15 '%s' Register %u Write %02x\n", tag(), offset, data); + LOG("RP5C15 Register %u Write %02x\n", offset, data); break; } } diff --git a/src/devices/machine/rp5c15.h b/src/devices/machine/rp5c15.h index 32c7a7a74ed..128d2da6d2c 100644 --- a/src/devices/machine/rp5c15.h +++ b/src/devices/machine/rp5c15.h @@ -18,10 +18,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_MACHINE_RP5C15_H +#define MAME_MACHINE_RP5C15_H -#ifndef __RP5C15__ -#define __RP5C15__ +#pragma once #include "dirtc.h" @@ -50,8 +50,8 @@ public: // construction/destruction rp5c15_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_out_alarm_callback(device_t &device, _Object object) { return downcast(device).m_out_alarm_cb.set_callback(object); } - template static devcb_base &set_out_clkout_callback(device_t &device, _Object object) { return downcast(device).m_out_clkout_cb.set_callback(object); } + template static devcb_base &set_out_alarm_callback(device_t &device, Object &&cb) { return downcast(device).m_out_alarm_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_clkout_callback(device_t &device, Object &&cb) { return downcast(device).m_out_clkout_cb.set_callback(std::forward(cb)); } DECLARE_READ8_MEMBER( read ); DECLARE_WRITE8_MEMBER( write ); @@ -97,8 +97,6 @@ private: // device type definition -extern const device_type RP5C15; - - +DECLARE_DEVICE_TYPE(RP5C15, rp5c15_device) -#endif +#endif // MAME_MACHINE_RP5C15_H diff --git a/src/devices/machine/rp5h01.cpp b/src/devices/machine/rp5h01.cpp index 2bf8dbdc6ee..21367354256 100644 --- a/src/devices/machine/rp5h01.cpp +++ b/src/devices/machine/rp5h01.cpp @@ -30,10 +30,10 @@ uint8_t const rp5h01_device::s_initial_data[0x10] = // rp5h01_device - constructor //------------------------------------------------- -const device_type RP5H01 = device_creator; +DEFINE_DEVICE_TYPE(RP5H01, rp5h01_device, "rp5h01", "RP5H01 6/7-bit Counter") rp5h01_device::rp5h01_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, RP5H01, "RP5H01 6/7-bit Counter", tag, owner, clock, "rp5h01", __FILE__) + : device_t(mconfig, RP5H01, tag, owner, clock) , m_data(nullptr) , m_rom(*this, DEVICE_SELF, 0x10) { diff --git a/src/devices/machine/rp5h01.h b/src/devices/machine/rp5h01.h index c6c69237415..10110c0ee79 100644 --- a/src/devices/machine/rp5h01.h +++ b/src/devices/machine/rp5h01.h @@ -16,20 +16,14 @@ ***************************************************************************/ -#ifndef __RP5H01_H__ -#define __RP5H01_H__ +#ifndef MAME_MACHINE_RP5H01_H +#define MAME_MACHINE_RP5H01_H /*************************************************************************** PARAMETERS ***************************************************************************/ -/* these also work as the address masks */ -enum { - COUNTER_MODE_6_BITS = 0x3f, - COUNTER_MODE_7_BITS = 0x7f -}; - /*************************************************************************** MACROS / CONSTANTS ***************************************************************************/ @@ -53,6 +47,12 @@ protected: virtual void device_reset() override; private: + /* these also work as the address masks */ + enum { + COUNTER_MODE_6_BITS = 0x3f, + COUNTER_MODE_7_BITS = 0x7f + }; + static uint8_t const s_initial_data[0x10]; // internal state @@ -65,7 +65,7 @@ private: optional_region_ptr m_rom; }; -extern const device_type RP5H01; +DECLARE_DEVICE_TYPE(RP5H01, rp5h01_device) #define MCFG_RP5H01_ADD(_tag) \ @@ -77,4 +77,4 @@ extern const device_type RP5H01; * assigned to device. */ -#endif /* __RP5H01_H__ */ +#endif // MAME_MACHINE_RP5H01_H diff --git a/src/devices/machine/rtc4543.cpp b/src/devices/machine/rtc4543.cpp index 761f1c0246b..ed3b0ee1bcd 100644 --- a/src/devices/machine/rtc4543.cpp +++ b/src/devices/machine/rtc4543.cpp @@ -17,12 +17,14 @@ #include "emu.h" #include "rtc4543.h" +//#define VERBOSE 1 +#include "logmacro.h" + + //************************************************************************** // MACROS / CONSTANTS //************************************************************************** -#define VERBOSE 0 - const char *rtc4543_device::s_reg_names[7] = { "second", @@ -40,7 +42,7 @@ const char *rtc4543_device::s_reg_names[7] = //************************************************************************** // device type definition -const device_type RTC4543 = device_creator; +DEFINE_DEVICE_TYPE(RTC4543, rtc4543_device, "rtc4543", "Epson R4543 RTC") //------------------------------------------------- @@ -48,16 +50,16 @@ const device_type RTC4543 = device_creator; //------------------------------------------------- rtc4543_device::rtc4543_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, RTC4543, "R4543 RTC", tag, owner, clock, "rtc4543", __FILE__), - device_rtc_interface(mconfig, *this), - data_cb(*this), m_ce(0), m_clk(0), m_wr(0), m_data(0), m_curbit(0), m_clock_timer(nullptr) + : rtc4543_device(mconfig, RTC4543, tag, owner, clock) { } -rtc4543_device::rtc4543_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *filename) - : device_t(mconfig, type, name, tag, owner, clock, shortname, filename), - device_rtc_interface(mconfig, *this), - data_cb(*this), m_ce(0), m_clk(0), m_wr(0), m_data(0), m_curbit(0), m_clock_timer(nullptr) +rtc4543_device::rtc4543_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) + , device_rtc_interface(mconfig, *this) + , data_cb(*this) + , m_ce(0), m_clk(0), m_wr(0), m_data(0), m_curbit(0) + , m_clock_timer(nullptr) { } @@ -134,12 +136,12 @@ WRITE_LINE_MEMBER( rtc4543_device::ce_w ) { if (!state && m_ce) // complete transfer { - if (VERBOSE) logerror("CE falling edge\n", state); + LOG("CE falling edge\n"); ce_falling(); } else if (state && !m_ce) // start new data transfer { - if (VERBOSE) logerror("CE rising edge\n", state); + LOG("CE rising edge\n"); ce_rising(); } @@ -175,8 +177,8 @@ void rtc4543_device::ce_falling() WRITE_LINE_MEMBER( rtc4543_device::wr_w ) { - if (VERBOSE && (state != m_wr)) - logerror("WR: %u\n", state); + if (state != m_wr) + LOG("WR: %u\n", state); m_wr = state; } @@ -194,12 +196,12 @@ WRITE_LINE_MEMBER( rtc4543_device::clk_w ) if (!m_clk && state) { clk_rising(); - if (VERBOSE) logerror("CLK rising edge (I/O: %u, bit %d)\n", m_data, bit); + LOG("CLK rising edge (I/O: %u, bit %d)\n", m_data, bit); } else if (m_clk && !state) { clk_falling(); - if (VERBOSE) logerror("CLK falling edge (I/O: %u, bit %d)\n", m_data, bit); + LOG("CLK falling edge (I/O: %u, bit %d)\n", m_data, bit); } } @@ -270,13 +272,10 @@ void rtc4543_device::load_bit(int reg) int bit = m_curbit & 7; // reload data? - if (VERBOSE) - { - if (bit == 0) - logerror("RTC sending low digit of %s: %x\n", s_reg_names[reg], m_regs[reg] & 0xf); - else if (bit == 4) - logerror("RTC sending high digit of %s: %x\n", s_reg_names[reg], (m_regs[reg] >> 4) & 0xf); - } + if (bit == 0) + LOG("RTC sending low digit of %s: %x\n", s_reg_names[reg], m_regs[reg] & 0xf); + else if (bit == 4) + LOG("RTC sending high digit of %s: %x\n", s_reg_names[reg], (m_regs[reg] >> 4) & 0xf); // shift data bit m_data = (m_regs[reg] >> bit) & 1; @@ -296,13 +295,10 @@ void rtc4543_device::store_bit(int reg) m_regs[reg] &= ~(1 << bit); m_regs[reg] |= m_data << bit; - if (VERBOSE) - { - if (bit == 7) - logerror("RTC received high digit of %s: %X\n", s_reg_names[reg], (m_regs[reg] >> 4) & 0xf); - else if (bit == 3) - logerror("RTC received low digit of %s: %X\n", s_reg_names[reg], m_regs[reg] & 0xf); - } + if (bit == 7) + LOG("RTC received high digit of %s: %X\n", s_reg_names[reg], (m_regs[reg] >> 4) & 0xf); + else if (bit == 3) + LOG("RTC received low digit of %s: %X\n", s_reg_names[reg], m_regs[reg] & 0xf); } @@ -329,16 +325,16 @@ void rtc4543_device::advance_bit() void rtc4543_device::update_effective() { - if (VERBOSE) - logerror("RTC updated: %02x.%02x.%02x (%01x) %02x:%02x:%02x\n", m_regs[6], m_regs[5], m_regs[4], m_regs[3], m_regs[2], m_regs[1], m_regs[0]); - set_time(false, - bcd_to_integer(m_regs[6]), // year - bcd_to_integer(m_regs[5]), // month - bcd_to_integer(m_regs[4]), // day - (m_regs[3] % 7) + 1, // day of week - bcd_to_integer(m_regs[2]), // hour - bcd_to_integer(m_regs[1]), // minute - bcd_to_integer(m_regs[0])); // second + LOG("RTC updated: %02x.%02x.%02x (%01x) %02x:%02x:%02x\n", m_regs[6], m_regs[5], m_regs[4], m_regs[3], m_regs[2], m_regs[1], m_regs[0]); + set_time( + false, + bcd_to_integer(m_regs[6]), // year + bcd_to_integer(m_regs[5]), // month + bcd_to_integer(m_regs[4]), // day + (m_regs[3] % 7) + 1, // day of week + bcd_to_integer(m_regs[2]), // hour + bcd_to_integer(m_regs[1]), // minute + bcd_to_integer(m_regs[0])); // second } @@ -347,7 +343,7 @@ void rtc4543_device::update_effective() //************************************************************************** // device type definition -const device_type JRC6355E = device_creator; +DEFINE_DEVICE_TYPE(JRC6355E, jrc6355e_device, "jrc6355e", "JRC 6355E RTC") //------------------------------------------------- @@ -355,7 +351,7 @@ const device_type JRC6355E = device_creator; //------------------------------------------------- jrc6355e_device::jrc6355e_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : rtc4543_device(mconfig, JRC6355E, "JRC 6355E RTC", tag, owner, clock, "jrc6355e", __FILE__) + : rtc4543_device(mconfig, JRC6355E, tag, owner, clock) { } diff --git a/src/devices/machine/rtc4543.h b/src/devices/machine/rtc4543.h index 1e29c9e7d57..fd63705ab91 100644 --- a/src/devices/machine/rtc4543.h +++ b/src/devices/machine/rtc4543.h @@ -7,10 +7,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_MACHINE_RTC4543_H +#define MAME_MACHINE_RTC4543_H -#ifndef __RTC4543_H__ -#define __RTC4543_H__ +#pragma once #include "dirtc.h" @@ -20,14 +20,14 @@ // INTERFACE CONFIGURATION MACROS //************************************************************************** -#define MCFG_RTC4543_ADD(_tag, _clock) \ - MCFG_DEVICE_ADD(_tag, RTC4543, _clock) +#define MCFG_RTC4543_ADD(tag, clock) \ + MCFG_DEVICE_ADD((tag), RTC4543, (clock)) -#define MCFG_RTC4543_DATA_CALLBACK(_devcb) \ - devcb = &rtc4543_device::set_data_cb(*device, DEVCB_##_devcb); +#define MCFG_RTC4543_DATA_CALLBACK(cb) \ + devcb = &rtc4543_device::set_data_cb(*device, DEVCB_##cb); -#define MCFG_JRC6355E_ADD(_tag, _clock) \ - MCFG_DEVICE_ADD(_tag, JRC6355E, _clock) +#define MCFG_JRC6355E_ADD(tag, clock) \ + MCFG_DEVICE_ADD((tag), JRC6355E, (clock)) @@ -45,7 +45,6 @@ class rtc4543_device : public device_t, public: // construction/destruction rtc4543_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - rtc4543_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *filename); DECLARE_WRITE_LINE_MEMBER( ce_w ); DECLARE_WRITE_LINE_MEMBER( wr_w ); @@ -53,9 +52,11 @@ public: DECLARE_READ_LINE_MEMBER( data_r ); DECLARE_WRITE_LINE_MEMBER( data_w ); - template static devcb_base &set_data_cb(device_t &device, _Object object) { return downcast(device).data_cb.set_callback(object); } + template static devcb_base &set_data_cb(device_t &device, Object &&cb) { return downcast(device).data_cb.set_callback(std::forward(cb)); } protected: + rtc4543_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -108,7 +109,7 @@ protected: // device type definition -extern const device_type RTC4543; -extern const device_type JRC6355E; +DECLARE_DEVICE_TYPE(RTC4543, rtc4543_device) +DECLARE_DEVICE_TYPE(JRC6355E, jrc6355e_device) -#endif +#endif // MAME_MACHINE_RTC4543_H diff --git a/src/devices/machine/rtc65271.cpp b/src/devices/machine/rtc65271.cpp index f45091efbc6..f44cc8255fc 100644 --- a/src/devices/machine/rtc65271.cpp +++ b/src/devices/machine/rtc65271.cpp @@ -646,16 +646,16 @@ TIMER_CALLBACK_MEMBER(rtc65271_device::rtc_end_update_cb) } // device type definition -const device_type RTC65271 = device_creator; +DEFINE_DEVICE_TYPE(RTC65271, rtc65271_device, "rtc65271", "Epson RTC-65271 RTC") //------------------------------------------------- // rtc65271_device - constructor //------------------------------------------------- rtc65271_device::rtc65271_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, RTC65271, "RTC-65271", tag, owner, clock, "rtc65271", __FILE__), - device_nvram_interface(mconfig, *this), - m_interrupt_cb(*this) + : device_t(mconfig, RTC65271, tag, owner, clock) + , device_nvram_interface(mconfig, *this) + , m_interrupt_cb(*this) { } diff --git a/src/devices/machine/rtc65271.h b/src/devices/machine/rtc65271.h index 961251f53b8..e32c87af8c7 100644 --- a/src/devices/machine/rtc65271.h +++ b/src/devices/machine/rtc65271.h @@ -4,15 +4,18 @@ rtc65271.h: include file for rtc65271.c */ -#ifndef __RTC65271_H__ -#define __RTC65271_H__ +#ifndef MAME_MACHINE_RTC65271_H +#define MAME_MACHINE_RTC65271_H + +#pragma once + //************************************************************************** // INTERFACE CONFIGURATION MACROS //************************************************************************** -#define MCFG_RTC65271_INTERRUPT_CB(_devcb) \ - devcb = &rtc65271_device::set_interrupt_callback(*device, DEVCB_##_devcb); +#define MCFG_RTC65271_INTERRUPT_CB(cb) \ + devcb = &rtc65271_device::set_interrupt_callback(*device, DEVCB_##cb); // ======================> rtc65271_device @@ -23,6 +26,14 @@ class rtc65271_device : public device_t, public: // construction/destruction rtc65271_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + + template static devcb_base &set_interrupt_callback(device_t &device, Object &&cb) { return downcast(device).m_interrupt_cb.set_callback(std::forward(cb)); } + + DECLARE_READ8_MEMBER( rtc_r ); + DECLARE_READ8_MEMBER( xram_r ); + DECLARE_WRITE8_MEMBER( rtc_w ); + DECLARE_WRITE8_MEMBER( xram_w ); + protected: // device-level overrides virtual void device_start() override; @@ -30,14 +41,7 @@ protected: virtual void nvram_default() override; virtual void nvram_read(emu_file &file) override; virtual void nvram_write(emu_file &file) override; -public: - template static devcb_base &set_interrupt_callback(device_t &device, _Object object) { return downcast(device).m_interrupt_cb.set_callback(object); } - - DECLARE_READ8_MEMBER( rtc_r ); - DECLARE_READ8_MEMBER( xram_r ); - DECLARE_WRITE8_MEMBER( rtc_w ); - DECLARE_WRITE8_MEMBER( xram_w ); private: uint8_t read(int xramsel, offs_t offset); void write(int xramsel, offs_t offset, uint8_t data); @@ -67,6 +71,6 @@ private: }; // device type definition -extern const device_type RTC65271; +DECLARE_DEVICE_TYPE(RTC65271, rtc65271_device) -#endif +#endif // MAME_MACHINE_RTC65271_H diff --git a/src/devices/machine/rtc9701.cpp b/src/devices/machine/rtc9701.cpp index 7d3b8b5867a..a37e79ed7ba 100644 --- a/src/devices/machine/rtc9701.cpp +++ b/src/devices/machine/rtc9701.cpp @@ -15,7 +15,7 @@ #include "machine/rtc9701.h" -ALLOW_SAVE_TYPE(rtc9701_state_t); +ALLOW_SAVE_TYPE(rtc9701_device::state_t); //************************************************************************** @@ -23,7 +23,7 @@ ALLOW_SAVE_TYPE(rtc9701_state_t); //************************************************************************** // device type definition -const device_type rtc9701 = device_creator; +DEFINE_DEVICE_TYPE(RTC9701, rtc9701_device, "rtc9701", "Epson RTC-9701-JE RTC/EEPROM") //************************************************************************** @@ -35,17 +35,19 @@ const device_type rtc9701 = device_creator; //------------------------------------------------- rtc9701_device::rtc9701_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, rtc9701, "RTC-9701", tag, owner, clock, "rtc9701", __FILE__), - device_nvram_interface(mconfig, *this), - m_latch(0), - m_reset_line(CLEAR_LINE), - m_clock_line(CLEAR_LINE), rtc_state(), cmd_stream_pos(0), current_cmd(0), rtc9701_address_pos(0), rtc9701_current_address(0), rtc9701_current_data(0), rtc9701_data_pos(0) + : device_t(mconfig, RTC9701, tag, owner, clock) + , device_nvram_interface(mconfig, *this) + , m_latch(0) + , m_reset_line(CLEAR_LINE) + , m_clock_line(CLEAR_LINE) + , rtc_state() + , cmd_stream_pos(0), current_cmd(0), rtc9701_address_pos(0), rtc9701_current_address(0), rtc9701_current_data(0), rtc9701_data_pos(0) { } TIMER_CALLBACK_MEMBER(rtc9701_device::timer_callback) { - static const uint8_t dpm[12] = { 0x31, 0x28, 0x31, 0x30, 0x31, 0x30, 0x31, 0x31, 0x30, 0x31, 0x30, 0x31 }; + static constexpr uint8_t dpm[12] = { 0x31, 0x28, 0x31, 0x30, 0x31, 0x30, 0x31, 0x31, 0x30, 0x31, 0x30, 0x31 }; int dpm_count; m_rtc.sec++; diff --git a/src/devices/machine/rtc9701.h b/src/devices/machine/rtc9701.h index 450c0c7c789..b0d35929945 100644 --- a/src/devices/machine/rtc9701.h +++ b/src/devices/machine/rtc9701.h @@ -8,10 +8,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_MACHINE_RTC9701_H +#define MAME_MACHINE_RTC9701_H -#ifndef __rtc9701DEV_H__ -#define __rtc9701DEV_H__ +#pragma once @@ -19,31 +19,14 @@ // INTERFACE CONFIGURATION MACROS //************************************************************************** -#define MCFG_RTC9701_ADD(_tag) \ - MCFG_DEVICE_ADD(_tag, rtc9701, XTAL_32_768kHz) +#define MCFG_RTC9701_ADD(tag) \ + MCFG_DEVICE_ADD((tag), RTC9701, XTAL_32_768kHz) //************************************************************************** // TYPE DEFINITIONS //************************************************************************** -enum rtc9701_state_t -{ - RTC9701_CMD_WAIT = 0, - RTC9701_RTC_READ, - RTC9701_RTC_WRITE, - RTC9701_EEPROM_READ, - RTC9701_EEPROM_WRITE, - RTC9701_AFTER_WRITE_ENABLE - -}; - -struct rtc_regs_t -{ - uint8_t sec, min, hour, day, wday, month, year; -}; - - // ======================> rtc9701_device class rtc9701_device : public device_t, @@ -62,6 +45,22 @@ public: TIMER_CALLBACK_MEMBER(timer_callback); protected: + enum state_t + { + RTC9701_CMD_WAIT = 0, + RTC9701_RTC_READ, + RTC9701_RTC_WRITE, + RTC9701_EEPROM_READ, + RTC9701_EEPROM_WRITE, + RTC9701_AFTER_WRITE_ENABLE + + }; + + struct regs_t + { + uint8_t sec, min, hour, day, wday, month, year; + }; + // device-level overrides virtual void device_validity_check(validity_checker &valid) const override; virtual void device_start() override; @@ -79,7 +78,7 @@ protected: int m_clock_line; - rtc9701_state_t rtc_state; + state_t rtc_state; int cmd_stream_pos; int current_cmd; @@ -91,19 +90,11 @@ protected: uint16_t rtc9701_data[0x100]; - rtc_regs_t m_rtc; + regs_t m_rtc; }; // device type definition -extern const device_type rtc9701; - - - -//************************************************************************** -// GLOBAL VARIABLES -//************************************************************************** - - +DECLARE_DEVICE_TYPE(RTC9701, rtc9701_device) -#endif +#endif // MAME_MACHINE_RTC9701_H diff --git a/src/devices/machine/s2636.cpp b/src/devices/machine/s2636.cpp index df28a4fc8cd..5fda7f586c1 100644 --- a/src/devices/machine/s2636.cpp +++ b/src/devices/machine/s2636.cpp @@ -90,7 +90,7 @@ FC2 | |C1 |C2 |C3 |C1 |C2 |C3 | W | | | color 3 | color 4 | | | | | - FC3 | |frm|pos| W | scroe format and position + FC3 | |frm|pos| W | score format and position | | | FC4 | | - | FC5 | | - | @@ -155,10 +155,10 @@ uint16_t const s2636_device::SCORE_FONT[16][5] = * *************************************/ -const device_type S2636 = device_creator; +DEFINE_DEVICE_TYPE(S2636, s2636_device, "s2636", "Signetics 2636 PVI") s2636_device::s2636_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, S2636, "Signetics 2636", tag, owner, clock, "s2636", __FILE__) + : device_t(mconfig, S2636, tag, owner, clock) , device_video_interface(mconfig, *this) , device_sound_interface(mconfig, *this) , m_divider(1) diff --git a/src/devices/machine/s2636.h b/src/devices/machine/s2636.h index 56c0d8f4b4b..507351b5ad9 100644 --- a/src/devices/machine/s2636.h +++ b/src/devices/machine/s2636.h @@ -6,8 +6,10 @@ **********************************************************************/ -#ifndef __S2636_H__ -#define __S2636_H__ +#ifndef MAME_MACHINE_S2636_H +#define MAME_MACHINE_S2636_H + +#pragma once #define S2636_IS_PIXEL_DRAWN(p) (((p) & 0x08) ? true : false) @@ -20,14 +22,14 @@ * *************************************/ -#define MCFG_S2636_OFFSETS(_yoffs, _xoffs) \ - s2636_device::set_offsets(*device, _yoffs, _xoffs); +#define MCFG_S2636_OFFSETS(yoffs, xoffs) \ + s2636_device::set_offsets(*device, (yoffs), (xoffs)); -#define MCFG_S2636_DIVIDER(_divider) \ - s2636_device::set_divider(*device, _divider); +#define MCFG_S2636_DIVIDER(divider) \ + s2636_device::set_divider(*device, (divider)); -#define MCFG_S2623_SET_INTREQ_CALLBACK(_devcb) \ - devcb = &s2636_device::set_intreq_cb(*device, DEVCB_##_devcb); +#define MCFG_S2623_SET_INTREQ_CALLBACK(cb) \ + devcb = &s2636_device::set_intreq_cb(*device, DEVCB_##cb); /************************************* @@ -42,7 +44,6 @@ class s2636_device : public device_t, { public: s2636_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~s2636_device() {} static void set_offsets(device_t &device, int y_offset, int x_offset) { @@ -57,10 +58,10 @@ public: dev.m_divider = divider; } - template static devcb_base &set_intreq_cb(device_t &device, _Object object) + template static devcb_base &set_intreq_cb(device_t &device, Object &&cb) { s2636_device &dev = downcast(device); - return dev.m_intreq_cb.set_callback(object); + return dev.m_intreq_cb.set_callback(std::forward(cb)); } // returns a BITMAP_FORMAT_IND16 bitmap the size of the screen @@ -175,6 +176,6 @@ private: bool m_sound_lvl; }; -extern const device_type S2636; +DECLARE_DEVICE_TYPE(S2636, s2636_device) -#endif /* __S2636_H__ */ +#endif // MAME_MACHINE_S2636_H diff --git a/src/devices/machine/s3520cf.cpp b/src/devices/machine/s3520cf.cpp index d1e0235dcb7..9e5100ed30f 100644 --- a/src/devices/machine/s3520cf.cpp +++ b/src/devices/machine/s3520cf.cpp @@ -24,7 +24,7 @@ TODO: //************************************************************************** // device type definition -const device_type S3520CF = device_creator; +DEFINE_DEVICE_TYPE(S3520CF, s3520cf_device, "s3520cf", "Seiko Epson S-3520CF RTC") //************************************************************************** @@ -36,13 +36,14 @@ const device_type S3520CF = device_creator; //------------------------------------------------- s3520cf_device::s3520cf_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, S3520CF, "S-3520CF RTC", tag, owner, clock, "s3520cf", __FILE__), m_dir(0), m_latch(0), m_reset_line(0), m_read_latch(0), m_current_cmd(0), m_cmd_stream_pos(0), m_rtc_addr(0), m_mode(0), m_sysr(0), m_rtc_state() + : device_t(mconfig, S3520CF, tag, owner, clock) + , m_dir(0), m_latch(0), m_reset_line(0), m_read_latch(0), m_current_cmd(0), m_cmd_stream_pos(0), m_rtc_addr(0), m_mode(0), m_sysr(0), m_rtc_state() { } TIMER_CALLBACK_MEMBER(s3520cf_device::timer_callback) { - static const uint8_t dpm[12] = { 0x31, 0x28, 0x31, 0x30, 0x31, 0x30, 0x31, 0x31, 0x30, 0x31, 0x30, 0x31 }; + static constexpr uint8_t dpm[12] = { 0x31, 0x28, 0x31, 0x30, 0x31, 0x30, 0x31, 0x31, 0x30, 0x31, 0x30, 0x31 }; int dpm_count; m_rtc.sec++; diff --git a/src/devices/machine/s3520cf.h b/src/devices/machine/s3520cf.h index beeea5d6cf0..168097e0e16 100644 --- a/src/devices/machine/s3520cf.h +++ b/src/devices/machine/s3520cf.h @@ -6,10 +6,10 @@ Seiko/Epson S-3520CF ***************************************************************************/ -#pragma once +#ifndef MAME_MACHINE_S3520CF_H +#define MAME_MACHINE_S3520CF_H -#ifndef __S3520CFDEV_H__ -#define __S3520CFDEV_H__ +#pragma once @@ -17,25 +17,13 @@ Seiko/Epson S-3520CF // INTERFACE CONFIGURATION MACROS //************************************************************************** -#define MCFG_S3520CF_ADD(_tag) \ - MCFG_DEVICE_ADD(_tag, S3520CF, XTAL_32_768kHz) +#define MCFG_S3520CF_ADD(tag) \ + MCFG_DEVICE_ADD((tag), S3520CF, XTAL_32_768kHz) //************************************************************************** // TYPE DEFINITIONS //************************************************************************** -enum s3520cf_state_t -{ - RTC_SET_ADDRESS = 0, - RTC_SET_DATA -}; - -struct rtc_regs_t -{ - uint8_t sec, min, hour, day, wday, month, year; -}; - - // ======================> s3520cf_device class s3520cf_device : public device_t @@ -53,6 +41,17 @@ public: TIMER_CALLBACK_MEMBER(timer_callback); protected: + enum state_t + { + RTC_SET_ADDRESS = 0, + RTC_SET_DATA + }; + + struct rtc_regs_t + { + uint8_t sec, min, hour, day, wday, month, year; + }; + // device-level overrides virtual void device_validity_check(validity_checker &valid) const override; virtual void device_start() override; @@ -69,21 +68,13 @@ protected: uint8_t m_rtc_addr; uint8_t m_mode, m_sysr; - s3520cf_state_t m_rtc_state; + state_t m_rtc_state; rtc_regs_t m_rtc; }; // device type definition -extern const device_type S3520CF; - - - -//************************************************************************** -// GLOBAL VARIABLES -//************************************************************************** - - +DECLARE_DEVICE_TYPE(S3520CF, s3520cf_device) -#endif +#endif // MAME_MACHINE_S3520CF_H diff --git a/src/devices/machine/s3c2400.cpp b/src/devices/machine/s3c2400.cpp index f844585dc45..c076abbd96d 100644 --- a/src/devices/machine/s3c2400.cpp +++ b/src/devices/machine/s3c2400.cpp @@ -16,18 +16,152 @@ #include "screen.h" +#define S3C24XX_SRCPND (0x00 / 4) // Interrupt Request Status +#define S3C24XX_INTMOD (0x04 / 4) // Interrupt Mode Control +#define S3C24XX_INTMSK (0x08 / 4) // Interrupt Mask Control +#define S3C24XX_PRIORITY (0x0C / 4) // IRQ Priority Control +#define S3C24XX_INTPND (0x10 / 4) // Interrupt Request Status +#define S3C24XX_INTOFFSET (0x14 / 4) // Interrupt Request Source Offset + +#define S3C24XX_DISRC (0x00 / 4) // DMA Initial Source +#define S3C24XX_DIDST (0x04 / 4) // DMA Initial Destination +#define S3C24XX_DCON (0x08 / 4) // DMA Control +#define S3C24XX_DSTAT (0x0C / 4) // DMA Count +#define S3C24XX_DCSRC (0x10 / 4) // DMA Current Source Address +#define S3C24XX_DCDST (0x14 / 4) // DMA Current Destination Address +#define S3C24XX_DMASKTRIG (0x18 / 4) // DMA Mask Trigger + +#define S3C24XX_LOCKTIME (0x00 / 4) // PLL Lock Time Counter +#define S3C24XX_MPLLCON (0x04 / 4) // MPLL Control +#define S3C24XX_UPLLCON (0x08 / 4) // UPLL Control +#define S3C24XX_CLKCON (0x0C / 4) // Clock Generator Control +#define S3C24XX_CLKSLOW (0x10 / 4) // Slow Clock Control +#define S3C24XX_CLKDIVN (0x14 / 4) // Clock Divider Control + +#define S3C24XX_LCDCON1 (0x00 / 4) // LCD Control 1 +#define S3C24XX_LCDCON2 (0x04 / 4) // LCD Control 2 +#define S3C24XX_LCDCON3 (0x08 / 4) // LCD Control 3 +#define S3C24XX_LCDCON4 (0x0C / 4) // LCD Control 4 +#define S3C24XX_LCDCON5 (0x10 / 4) // LCD Control 5 +#define S3C24XX_LCDSADDR1 (0x14 / 4) // STN/TFT: Frame Buffer Start Address 1 +#define S3C24XX_LCDSADDR2 (0x18 / 4) // STN/TFT: Frame Buffer Start Address 2 +#define S3C24XX_LCDSADDR3 (0x1C / 4) // STN/TFT: Virtual Screen Address Set +#define S3C24XX_REDLUT (0x20 / 4) // STN: Red Lookup Table +#define S3C24XX_GREENLUT (0x24 / 4) // STN: Green Lookup Table +#define S3C24XX_BLUELUT (0x28 / 4) // STN: Blue Lookup Table +#define S3C24XX_DITHMODE (0x4C / 4) // STN: Dithering Mode +#define S3C24XX_TPAL (0x50 / 4) // TFT: Temporary Palette + +#define S3C24XX_IICCON (0x00 / 4) // IIC Control +#define S3C24XX_IICSTAT (0x04 / 4) // IIC Status +#define S3C24XX_IICADD (0x08 / 4) // IIC Address +#define S3C24XX_IICDS (0x0C / 4) // IIC Data Shift + +#define S3C24XX_GPACON (0x00 / 4) // Port A Control +#define S3C24XX_GPADAT (0x04 / 4) // Port A Data +#define S3C24XX_GPBCON (0x08 / 4) // Port B Control +#define S3C24XX_GPBDAT (0x0C / 4) // Port B Data +#define S3C24XX_GPBUP (0x10 / 4) // Pull-up Control B +#define S3C24XX_GPCCON (0x14 / 4) // Port C Control +#define S3C24XX_GPCDAT (0x18 / 4) // Port C Data +#define S3C24XX_GPCUP (0x1C / 4) // Pull-up Control C +#define S3C24XX_GPDCON (0x20 / 4) // Port D Control +#define S3C24XX_GPDDAT (0x24 / 4) // Port D Data +#define S3C24XX_GPDUP (0x28 / 4) // Pull-up Control D +#define S3C24XX_GPECON (0x2C / 4) // Port E Control +#define S3C24XX_GPEDAT (0x30 / 4) // Port E Data +#define S3C24XX_GPEUP (0x34 / 4) // Pull-up Control E +#define S3C24XX_GPFCON (0x38 / 4) // Port F Control +#define S3C24XX_GPFDAT (0x3C / 4) // Port F Data +#define S3C24XX_GPFUP (0x40 / 4) // Pull-up Control F +#define S3C24XX_GPGCON (0x44 / 4) // Port G Control +#define S3C24XX_GPGDAT (0x48 / 4) // Port G Data +#define S3C24XX_GPGUP (0x4C / 4) // Pull-up Control G +#define S3C24XX_OPENCR (0x50 / 4) // Open Drain Enable +#define S3C24XX_MISCCR (0x54 / 4) // Miscellaneous Control +#define S3C24XX_EXTINT (0x58 / 4) // External Interrupt Control + +#define S3C24XX_GPADAT_MASK 0x0003FFFF +#define S3C24XX_GPBDAT_MASK 0x0000FFFF +#define S3C24XX_GPCDAT_MASK 0x0000FFFF +#define S3C24XX_GPDDAT_MASK 0x000007FF +#define S3C24XX_GPEDAT_MASK 0x00000FFF +#define S3C24XX_GPFDAT_MASK 0x0000007F +#define S3C24XX_GPGDAT_MASK 0x000003FF + +#define S3C24XX_INT_ADC 31 +#define S3C24XX_INT_RTC 30 +#define S3C24XX_INT_UTXD1 29 +#define S3C24XX_INT_UTXD0 28 +#define S3C24XX_INT_IIC 27 +#define S3C24XX_INT_USBH 26 +#define S3C24XX_INT_USBD 25 +#define S3C24XX_INT_URXD1 24 +#define S3C24XX_INT_URXD0 23 +#define S3C24XX_INT_SPI 22 +#define S3C24XX_INT_MMC 21 +#define S3C24XX_INT_DMA3 20 +#define S3C24XX_INT_DMA2 19 +#define S3C24XX_INT_DMA1 18 +#define S3C24XX_INT_DMA0 17 +#define S3C24XX_INT_RESERVED 16 +#define S3C24XX_INT_UERR 15 +#define S3C24XX_INT_TIMER4 14 +#define S3C24XX_INT_TIMER3 13 +#define S3C24XX_INT_TIMER2 12 +#define S3C24XX_INT_TIMER1 11 +#define S3C24XX_INT_TIMER0 10 +#define S3C24XX_INT_WDT 9 +#define S3C24XX_INT_TICK 8 +#define S3C24XX_INT_EINT7 7 +#define S3C24XX_INT_EINT6 6 +#define S3C24XX_INT_EINT5 5 +#define S3C24XX_INT_EINT4 4 +#define S3C24XX_INT_EINT3 3 +#define S3C24XX_INT_EINT2 2 +#define S3C24XX_INT_EINT1 1 +#define S3C24XX_INT_EINT0 0 + +#define S3C24XX_BPPMODE_STN_01 0x00 +#define S3C24XX_BPPMODE_STN_02 0x01 +#define S3C24XX_BPPMODE_STN_04 0x02 +#define S3C24XX_BPPMODE_STN_08 0x03 +#define S3C24XX_BPPMODE_STN_12_P 0x04 +#define S3C24XX_BPPMODE_STN_12_U 0x05 +#define S3C24XX_BPPMODE_STN_16 0x06 +#define S3C24XX_BPPMODE_TFT_01 0x08 +#define S3C24XX_BPPMODE_TFT_02 0x09 +#define S3C24XX_BPPMODE_TFT_04 0x0A +#define S3C24XX_BPPMODE_TFT_08 0x0B +#define S3C24XX_BPPMODE_TFT_16 0x0C +#define S3C24XX_BPPMODE_TFT_24 0x0D + +#define S3C24XX_PNRMODE_STN_04_DS 0 +#define S3C24XX_PNRMODE_STN_04_SS 1 +#define S3C24XX_PNRMODE_STN_08_SS 2 +#define S3C24XX_PNRMODE_TFT 3 + +#define S3C24XX_GPIO_PORT_A S3C2400_GPIO_PORT_A +#define S3C24XX_GPIO_PORT_B S3C2400_GPIO_PORT_B +#define S3C24XX_GPIO_PORT_C S3C2400_GPIO_PORT_C +#define S3C24XX_GPIO_PORT_D S3C2400_GPIO_PORT_D +#define S3C24XX_GPIO_PORT_E S3C2400_GPIO_PORT_E +#define S3C24XX_GPIO_PORT_F S3C2400_GPIO_PORT_F +#define S3C24XX_GPIO_PORT_G S3C2400_GPIO_PORT_G + + #define VERBOSE_LEVEL ( 0 ) -static inline void ATTR_PRINTF(3,4) verboselog( device_t &device, int n_level, const char *s_fmt, ...) +static inline void ATTR_PRINTF(3,4) verboselog(device_t &device, int n_level, const char *s_fmt, ...) { if (VERBOSE_LEVEL >= n_level) { va_list v; char buf[32768]; - va_start( v, s_fmt); + va_start(v, s_fmt); vsprintf( buf, s_fmt, v); - va_end( v); - device.logerror( "%s: %s", device.machine().describe_context( ), buf); + va_end(v); + device.logerror("%s: %s", device.machine().describe_context( ), buf); } } @@ -41,22 +175,22 @@ uint32_t s3c2400_device::screen_update(screen_device &screen, bitmap_rgb32 &bitm return s3c24xx_video_update(screen, bitmap, cliprect); } -const device_type S3C2400 = device_creator; +DEFINE_DEVICE_TYPE(S3C2400, s3c2400_device, "s3c2400", "Samsung S3C2400 SoC") s3c2400_device::s3c2400_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, S3C2400, "Samsung S3C2400", tag, owner, clock, "s3c2400", __FILE__), - m_palette(*this, finder_base::DUMMY_TAG), - m_cpu(*this, ":maincpu"), - m_pin_r_cb(*this), - m_pin_w_cb(*this), - m_port_r_cb(*this), - m_port_w_cb(*this), - m_scl_w_cb(*this), - m_sda_r_cb(*this), - m_sda_w_cb(*this), - m_data_r_cb(*this), - m_data_w_cb(*this), - m_flags(0) + : device_t(mconfig, S3C2400, tag, owner, clock) + , m_palette(*this, finder_base::DUMMY_TAG) + , m_cpu(*this, ":maincpu") + , m_pin_r_cb(*this) + , m_pin_w_cb(*this) + , m_port_r_cb(*this) + , m_port_w_cb(*this) + , m_scl_w_cb(*this) + , m_sda_r_cb(*this) + , m_sda_w_cb(*this) + , m_data_r_cb(*this) + , m_data_w_cb(*this) + , m_flags(0) { memset(&m_memcon, 0, sizeof(m_memcon)); memset(&m_usbhost, 0, sizeof(m_usbhost)); diff --git a/src/devices/machine/s3c2400.h b/src/devices/machine/s3c2400.h index c1625d095fc..4c58e4b67dd 100644 --- a/src/devices/machine/s3c2400.h +++ b/src/devices/machine/s3c2400.h @@ -6,8 +6,12 @@ *******************************************************************************/ -#ifndef __S3C2400_H__ -#define __S3C2400_H__ +#ifndef MAME_MACHINE_S3C2400_H +#define MAME_MACHINE_S3C2400_H + +#pragma once + +#include "s3c24xx.h" /******************************************************************************* @@ -16,38 +20,38 @@ #define S3C2400_TAG "s3c2400" -#define MCFG_S3C2400_PALETTE(_palette_tag) \ - s3c2400_device::static_set_palette_tag(*device, "^" _palette_tag); +#define MCFG_S3C2400_PALETTE(palette_tag) \ + s3c2400_device::static_set_palette_tag(*device, ("^" palette_tag)); -#define MCFG_S3C2400_CORE_PIN_R_CB(_devcb) \ - devcb = &s3c2400_device::set_core_pin_r_callback(*device, DEVCB_##_devcb); +#define MCFG_S3C2400_CORE_PIN_R_CB(cb) \ + devcb = &s3c2400_device::set_core_pin_r_callback(*device, DEVCB_##cb); -#define MCFG_S3C2400_CORE_PIN_W_CB(_devcb) \ - devcb = &s3c2400_device::set_core_pin_w_callback(*device, DEVCB_##_devcb); +#define MCFG_S3C2400_CORE_PIN_W_CB(cb) \ + devcb = &s3c2400_device::set_core_pin_w_callback(*device, DEVCB_##cb); -#define MCFG_S3C2400_GPIO_PORT_R_CB(_devcb) \ - devcb = &s3c2400_device::set_gpio_port_r_callback(*device, DEVCB_##_devcb); +#define MCFG_S3C2400_GPIO_PORT_R_CB(cb) \ + devcb = &s3c2400_device::set_gpio_port_r_callback(*device, DEVCB_##cb); -#define MCFG_S3C2400_GPIO_PORT_W_CB(_devcb) \ - devcb = &s3c2400_device::set_gpio_port_w_callback(*device, DEVCB_##_devcb); +#define MCFG_S3C2400_GPIO_PORT_W_CB(cb) \ + devcb = &s3c2400_device::set_gpio_port_w_callback(*device, DEVCB_##cb); -#define MCFG_S3C2400_I2C_SCL_W_CB(_devcb) \ - devcb = &s3c2400_device::set_i2c_scl_w_callback(*device, DEVCB_##_devcb); +#define MCFG_S3C2400_I2C_SCL_W_CB(cb) \ + devcb = &s3c2400_device::set_i2c_scl_w_callback(*device, DEVCB_##cb); -#define MCFG_S3C2400_I2C_SDA_R_CB(_devcb) \ - devcb = &s3c2400_device::set_i2c_sda_r_callback(*device, DEVCB_##_devcb); +#define MCFG_S3C2400_I2C_SDA_R_CB(cb) \ + devcb = &s3c2400_device::set_i2c_sda_r_callback(*device, DEVCB_##cb); -#define MCFG_S3C2400_I2C_SDA_W_CB(_devcb) \ - devcb = &s3c2400_device::set_i2c_sda_w_callback(*device, DEVCB_##_devcb); +#define MCFG_S3C2400_I2C_SDA_W_CB(cb) \ + devcb = &s3c2400_device::set_i2c_sda_w_callback(*device, DEVCB_##cb); -#define MCFG_S3C2400_ADC_DATA_R_CB(_devcb) \ - devcb = &s3c2400_device::set_adc_data_r_callback(*device, DEVCB_##_devcb); +#define MCFG_S3C2400_ADC_DATA_R_CB(cb) \ + devcb = &s3c2400_device::set_adc_data_r_callback(*device, DEVCB_##cb); -#define MCFG_S3C2400_I2S_DATA_W_CB(_devcb) \ - devcb = &s3c2400_device::set_i2s_data_w_callback(*device, DEVCB_##_devcb); +#define MCFG_S3C2400_I2S_DATA_W_CB(cb) \ + devcb = &s3c2400_device::set_i2s_data_w_callback(*device, DEVCB_##cb); -#define MCFG_S3C2400_LCD_FLAGS(_flags) \ - s3c2400_device::set_lcd_flags(*device, _flags); +#define MCFG_S3C2400_LCD_FLAGS(flags) \ + s3c2400_device::set_lcd_flags(*device, (flags)); enum { @@ -81,13 +85,6 @@ enum #define S3C24XX_BASE_INT 0x14400000 -#define S3C24XX_SRCPND (0x00 / 4) // Interrupt Request Status -#define S3C24XX_INTMOD (0x04 / 4) // Interrupt Mode Control -#define S3C24XX_INTMSK (0x08 / 4) // Interrupt Mask Control -#define S3C24XX_PRIORITY (0x0C / 4) // IRQ Priority Control -#define S3C24XX_INTPND (0x10 / 4) // Interrupt Request Status -#define S3C24XX_INTOFFSET (0x14 / 4) // Interrupt Request Source Offset - /* DMA */ #define S3C24XX_BASE_DMA_0 0x14600000 @@ -95,83 +92,24 @@ enum #define S3C24XX_BASE_DMA_2 0x14600040 #define S3C24XX_BASE_DMA_3 0x14600060 -#define S3C24XX_DISRC (0x00 / 4) // DMA Initial Source -#define S3C24XX_DIDST (0x04 / 4) // DMA Initial Destination -#define S3C24XX_DCON (0x08 / 4) // DMA Control -#define S3C24XX_DSTAT (0x0C / 4) // DMA Count -#define S3C24XX_DCSRC (0x10 / 4) // DMA Current Source Address -#define S3C24XX_DCDST (0x14 / 4) // DMA Current Destination Address -#define S3C24XX_DMASKTRIG (0x18 / 4) // DMA Mask Trigger - /* Clock & Power Management */ #define S3C24XX_BASE_CLKPOW 0x14800000 -#define S3C24XX_LOCKTIME (0x00 / 4) // PLL Lock Time Counter -#define S3C24XX_MPLLCON (0x04 / 4) // MPLL Control -#define S3C24XX_UPLLCON (0x08 / 4) // UPLL Control -#define S3C24XX_CLKCON (0x0C / 4) // Clock Generator Control -#define S3C24XX_CLKSLOW (0x10 / 4) // Slow Clock Control -#define S3C24XX_CLKDIVN (0x14 / 4) // Clock Divider Control - /* LCD Controller */ #define S3C24XX_BASE_LCD 0x14a00000 #define S3C24XX_BASE_LCDPAL 0x14a00400 -#define S3C24XX_LCDCON1 (0x00 / 4) // LCD Control 1 -#define S3C24XX_LCDCON2 (0x04 / 4) // LCD Control 2 -#define S3C24XX_LCDCON3 (0x08 / 4) // LCD Control 3 -#define S3C24XX_LCDCON4 (0x0C / 4) // LCD Control 4 -#define S3C24XX_LCDCON5 (0x10 / 4) // LCD Control 5 -#define S3C24XX_LCDSADDR1 (0x14 / 4) // STN/TFT: Frame Buffer Start Address 1 -#define S3C24XX_LCDSADDR2 (0x18 / 4) // STN/TFT: Frame Buffer Start Address 2 -#define S3C24XX_LCDSADDR3 (0x1C / 4) // STN/TFT: Virtual Screen Address Set -#define S3C24XX_REDLUT (0x20 / 4) // STN: Red Lookup Table -#define S3C24XX_GREENLUT (0x24 / 4) // STN: Green Lookup Table -#define S3C24XX_BLUELUT (0x28 / 4) // STN: Blue Lookup Table -#define S3C24XX_DITHMODE (0x4C / 4) // STN: Dithering Mode -#define S3C24XX_TPAL (0x50 / 4) // TFT: Temporary Palette - /* UART */ #define S3C24XX_BASE_UART_0 0x15000000 #define S3C24XX_BASE_UART_1 0x15004000 -#define S3C24XX_ULCON (0x00 / 4) // UART Line Control -#define S3C24XX_UCON (0x04 / 4) // UART Control -#define S3C24XX_UFCON (0x08 / 4) // UART FIFO Control -#define S3C24XX_UMCON (0x0C / 4) // UART Modem Control -#define S3C24XX_UTRSTAT (0x10 / 4) // UART Tx/Rx Status -#define S3C24XX_UERSTAT (0x14 / 4) // UART Rx Error Status -#define S3C24XX_UFSTAT (0x18 / 4) // UART FIFO Status -#define S3C24XX_UMSTAT (0x1C / 4) // UART Modem Status -#define S3C24XX_UTXH (0x20 / 4) // UART Transmission Hold -#define S3C24XX_URXH (0x24 / 4) // UART Receive Buffer -#define S3C24XX_UBRDIV (0x28 / 4) // UART Baud Rate Divisor - /* PWM Timer */ #define S3C24XX_BASE_PWM 0x15100000 -#define S3C24XX_TCFG0 (0x00 / 4) // Timer Configuration -#define S3C24XX_TCFG1 (0x04 / 4) // Timer Configuration -#define S3C24XX_TCON (0x08 / 4) // Timer Control -#define S3C24XX_TCNTB0 (0x0C / 4) // Timer Count Buffer 0 -#define S3C24XX_TCMPB0 (0x10 / 4) // Timer Compare Buffer 0 -#define S3C24XX_TCNTO0 (0x14 / 4) // Timer Count Observation 0 -#define S3C24XX_TCNTB1 (0x18 / 4) // Timer Count Buffer 1 -#define S3C24XX_TCMPB1 (0x1C / 4) // Timer Compare Buffer 1 -#define S3C24XX_TCNTO1 (0x20 / 4) // Timer Count Observation 1 -#define S3C24XX_TCNTB2 (0x24 / 4) // Timer Count Buffer 2 -#define S3C24XX_TCMPB2 (0x28 / 4) // Timer Compare Buffer 2 -#define S3C24XX_TCNTO2 (0x2C / 4) // Timer Count Observation 2 -#define S3C24XX_TCNTB3 (0x30 / 4) // Timer Count Buffer 3 -#define S3C24XX_TCMPB3 (0x34 / 4) // Timer Compare Buffer 3 -#define S3C24XX_TCNTO3 (0x38 / 4) // Timer Count Observation 3 -#define S3C24XX_TCNTB4 (0x3C / 4) // Timer Count Buffer 4 -#define S3C24XX_TCNTO4 (0x40 / 4) // Timer Count Observation 4 - /* USB Device */ #define S3C24XX_BASE_USBDEV 0x15200140 @@ -180,87 +118,22 @@ enum #define S3C24XX_BASE_WDT 0x15300000 -#define S3C24XX_WTCON (0x00 / 4) // Watchdog Timer Mode -#define S3C24XX_WTDAT (0x04 / 4) // Watchdog Timer Data -#define S3C24XX_WTCNT (0x08 / 4) // Watchdog Timer Count - /* IIC */ #define S3C24XX_BASE_IIC 0x15400000 -#define S3C24XX_IICCON (0x00 / 4) // IIC Control -#define S3C24XX_IICSTAT (0x04 / 4) // IIC Status -#define S3C24XX_IICADD (0x08 / 4) // IIC Address -#define S3C24XX_IICDS (0x0C / 4) // IIC Data Shift - /* IIS */ #define S3C24XX_BASE_IIS 0x15508000 -#define S3C24XX_IISCON (0x00 / 4) // IIS Control -#define S3C24XX_IISMOD (0x04 / 4) // IIS Mode -#define S3C24XX_IISPSR (0x08 / 4) // IIS Prescaler -#define S3C24XX_IISFCON (0x0C / 4) // IIS FIFO Control -#define S3C24XX_IISFIFO (0x10 / 4) // IIS FIFO Entry - /* I/O Port */ #define S3C24XX_BASE_GPIO 0x15600000 -#define S3C24XX_GPACON (0x00 / 4) // Port A Control -#define S3C24XX_GPADAT (0x04 / 4) // Port A Data -#define S3C24XX_GPBCON (0x08 / 4) // Port B Control -#define S3C24XX_GPBDAT (0x0C / 4) // Port B Data -#define S3C24XX_GPBUP (0x10 / 4) // Pull-up Control B -#define S3C24XX_GPCCON (0x14 / 4) // Port C Control -#define S3C24XX_GPCDAT (0x18 / 4) // Port C Data -#define S3C24XX_GPCUP (0x1C / 4) // Pull-up Control C -#define S3C24XX_GPDCON (0x20 / 4) // Port D Control -#define S3C24XX_GPDDAT (0x24 / 4) // Port D Data -#define S3C24XX_GPDUP (0x28 / 4) // Pull-up Control D -#define S3C24XX_GPECON (0x2C / 4) // Port E Control -#define S3C24XX_GPEDAT (0x30 / 4) // Port E Data -#define S3C24XX_GPEUP (0x34 / 4) // Pull-up Control E -#define S3C24XX_GPFCON (0x38 / 4) // Port F Control -#define S3C24XX_GPFDAT (0x3C / 4) // Port F Data -#define S3C24XX_GPFUP (0x40 / 4) // Pull-up Control F -#define S3C24XX_GPGCON (0x44 / 4) // Port G Control -#define S3C24XX_GPGDAT (0x48 / 4) // Port G Data -#define S3C24XX_GPGUP (0x4C / 4) // Pull-up Control G -#define S3C24XX_OPENCR (0x50 / 4) // Open Drain Enable -#define S3C24XX_MISCCR (0x54 / 4) // Miscellaneous Control -#define S3C24XX_EXTINT (0x58 / 4) // External Interrupt Control - -#define S3C24XX_GPADAT_MASK 0x0003FFFF -#define S3C24XX_GPBDAT_MASK 0x0000FFFF -#define S3C24XX_GPCDAT_MASK 0x0000FFFF -#define S3C24XX_GPDDAT_MASK 0x000007FF -#define S3C24XX_GPEDAT_MASK 0x00000FFF -#define S3C24XX_GPFDAT_MASK 0x0000007F -#define S3C24XX_GPGDAT_MASK 0x000003FF - /* RTC */ #define S3C24XX_BASE_RTC 0x15700040 -#define S3C24XX_RTCCON (0x00 / 4) // RTC Control -#define S3C24XX_TICNT (0x04 / 4) // Tick Time count -#define S3C24XX_RTCALM (0x10 / 4) // RTC Alarm Control -#define S3C24XX_ALMSEC (0x14 / 4) // Alarm Second -#define S3C24XX_ALMMIN (0x18 / 4) // Alarm Minute -#define S3C24XX_ALMHOUR (0x1C / 4) // Alarm Hour -#define S3C24XX_ALMDAY (0x20 / 4) // Alarm Day -#define S3C24XX_ALMMON (0x24 / 4) // Alarm Month -#define S3C24XX_ALMYEAR (0x28 / 4) // Alarm Year -#define S3C24XX_RTCRST (0x2C / 4) // RTC Round Reset -#define S3C24XX_BCDSEC (0x30 / 4) // BCD Second -#define S3C24XX_BCDMIN (0x34 / 4) // BCD Minute -#define S3C24XX_BCDHOUR (0x38 / 4) // BCD Hour -#define S3C24XX_BCDDAY (0x3C / 4) // BCD Day -#define S3C24XX_BCDDOW (0x40 / 4) // BCD Day of Week -#define S3C24XX_BCDMON (0x44 / 4) // BCD Month -#define S3C24XX_BCDYEAR (0x48 / 4) // BCD Year - /* A/D Converter */ #define S3C24XX_BASE_ADC 0x15800000 @@ -272,84 +145,13 @@ enum #define S3C24XX_BASE_SPI_0 0x15900000 -#define S3C24XX_SPCON (0x00 / 4) // SPI Control -#define S3C24XX_SPSTA (0x04 / 4) // SPI Status -#define S3C24XX_SPPIN (0x08 / 4) // SPI Pin Control -#define S3C24XX_SPPRE (0x0C / 4) // SPI Baud Rate Prescaler -#define S3C24XX_SPTDAT (0x10 / 4) // SPI Tx Data -#define S3C24XX_SPRDAT (0x14 / 4) // SPI Rx Data - /* MMC Interface */ #define S3C24XX_BASE_MMC 0x15a00000 /* ... */ -#define S3C24XX_INT_ADC 31 -#define S3C24XX_INT_RTC 30 -#define S3C24XX_INT_UTXD1 29 -#define S3C24XX_INT_UTXD0 28 -#define S3C24XX_INT_IIC 27 -#define S3C24XX_INT_USBH 26 -#define S3C24XX_INT_USBD 25 -#define S3C24XX_INT_URXD1 24 -#define S3C24XX_INT_URXD0 23 -#define S3C24XX_INT_SPI 22 -#define S3C24XX_INT_MMC 21 -#define S3C24XX_INT_DMA3 20 -#define S3C24XX_INT_DMA2 19 -#define S3C24XX_INT_DMA1 18 -#define S3C24XX_INT_DMA0 17 -#define S3C24XX_INT_RESERVED 16 -#define S3C24XX_INT_UERR 15 -#define S3C24XX_INT_TIMER4 14 -#define S3C24XX_INT_TIMER3 13 -#define S3C24XX_INT_TIMER2 12 -#define S3C24XX_INT_TIMER1 11 -#define S3C24XX_INT_TIMER0 10 -#define S3C24XX_INT_WDT 9 -#define S3C24XX_INT_TICK 8 -#define S3C24XX_INT_EINT7 7 -#define S3C24XX_INT_EINT6 6 -#define S3C24XX_INT_EINT5 5 -#define S3C24XX_INT_EINT4 4 -#define S3C24XX_INT_EINT3 3 -#define S3C24XX_INT_EINT2 2 -#define S3C24XX_INT_EINT1 1 -#define S3C24XX_INT_EINT0 0 - -#define S3C24XX_BPPMODE_STN_01 0x00 -#define S3C24XX_BPPMODE_STN_02 0x01 -#define S3C24XX_BPPMODE_STN_04 0x02 -#define S3C24XX_BPPMODE_STN_08 0x03 -#define S3C24XX_BPPMODE_STN_12_P 0x04 -#define S3C24XX_BPPMODE_STN_12_U 0x05 -#define S3C24XX_BPPMODE_STN_16 0x06 -#define S3C24XX_BPPMODE_TFT_01 0x08 -#define S3C24XX_BPPMODE_TFT_02 0x09 -#define S3C24XX_BPPMODE_TFT_04 0x0A -#define S3C24XX_BPPMODE_TFT_08 0x0B -#define S3C24XX_BPPMODE_TFT_16 0x0C -#define S3C24XX_BPPMODE_TFT_24 0x0D - -#define S3C24XX_PNRMODE_STN_04_DS 0 -#define S3C24XX_PNRMODE_STN_04_SS 1 -#define S3C24XX_PNRMODE_STN_08_SS 2 -#define S3C24XX_PNRMODE_TFT 3 - -#define S3C24XX_GPIO_PORT_A S3C2400_GPIO_PORT_A -#define S3C24XX_GPIO_PORT_B S3C2400_GPIO_PORT_B -#define S3C24XX_GPIO_PORT_C S3C2400_GPIO_PORT_C -#define S3C24XX_GPIO_PORT_D S3C2400_GPIO_PORT_D -#define S3C24XX_GPIO_PORT_E S3C2400_GPIO_PORT_E -#define S3C24XX_GPIO_PORT_F S3C2400_GPIO_PORT_F -#define S3C24XX_GPIO_PORT_G S3C2400_GPIO_PORT_G - -#define S3C24XX_UART_COUNT 2 -#define S3C24XX_DMA_COUNT 4 -#define S3C24XX_SPI_COUNT 1 - -class s3c2400_device : public device_t +class s3c2400_device : public device_t, protected s3c24xx_peripheral_types { public: s3c2400_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); @@ -357,24 +159,24 @@ public: // static configuration static void static_set_palette_tag(device_t &device, const char *tag); - template static devcb_base &set_core_pin_r_callback(device_t &device, _Object object) { return downcast(device).m_pin_r_cb.set_callback(object); } - template static devcb_base &set_core_pin_w_callback(device_t &device, _Object object) { return downcast(device).m_pin_w_cb.set_callback(object); } - template static devcb_base &set_gpio_port_r_callback(device_t &device, _Object object) { return downcast(device).m_port_r_cb.set_callback(object); } - template static devcb_base &set_gpio_port_w_callback(device_t &device, _Object object) { return downcast(device).m_port_w_cb.set_callback(object); } - template static devcb_base &set_i2c_scl_w_callback(device_t &device, _Object object) { return downcast(device).m_scl_w_cb.set_callback(object); } - template static devcb_base &set_i2c_sda_r_callback(device_t &device, _Object object) { return downcast(device).m_sda_r_cb.set_callback(object); } - template static devcb_base &set_i2c_sda_w_callback(device_t &device, _Object object) { return downcast(device).m_sda_w_cb.set_callback(object); } - template static devcb_base &set_adc_data_r_callback(device_t &device, _Object object) { return downcast(device).m_data_r_cb.set_callback(object); } - template static devcb_base &set_i2s_data_w_callback(device_t &device, _Object object) { return downcast(device).m_data_w_cb.set_callback(object); } + template static devcb_base &set_core_pin_r_callback(device_t &device, Object &&cb) { return downcast(device).m_pin_r_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_core_pin_w_callback(device_t &device, Object &&cb) { return downcast(device).m_pin_w_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_gpio_port_r_callback(device_t &device, Object &&cb) { return downcast(device).m_port_r_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_gpio_port_w_callback(device_t &device, Object &&cb) { return downcast(device).m_port_w_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_i2c_scl_w_callback(device_t &device, Object &&cb) { return downcast(device).m_scl_w_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_i2c_sda_r_callback(device_t &device, Object &&cb) { return downcast(device).m_sda_r_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_i2c_sda_w_callback(device_t &device, Object &&cb) { return downcast(device).m_sda_w_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_adc_data_r_callback(device_t &device, Object &&cb) { return downcast(device).m_data_r_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_i2s_data_w_callback(device_t &device, Object &&cb) { return downcast(device).m_data_w_cb.set_callback(std::forward(cb)); } static void set_lcd_flags(device_t &device, int flags) { downcast(device).m_flags = flags; } +protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; -private: - // internal state - required_device m_palette; -public: + + // FIXME: a bunch of this stuff needs to be public, or used from an internal memory map, but since nothing uses it yet, it's impossible to know what + // However, the previous situation where all internal state was public is clearly undesirable uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); void s3c24xx_reset(); @@ -428,8 +230,6 @@ public: void s3c24xx_request_irq(uint32_t int_type); READ32_MEMBER( s3c24xx_irq_r ); WRITE32_MEMBER( s3c24xx_irq_w ); - void s3c24xx_pwm_reset(); - uint16_t s3c24xx_pwm_calc_observation(int ch); READ32_MEMBER( s3c24xx_pwm_r ); void s3c24xx_pwm_start(int timer); void s3c24xx_pwm_stop(int timer); @@ -461,13 +261,10 @@ public: uint16_t s3c24xx_gpio_get_mask( uint32_t con, int val); READ32_MEMBER( s3c24xx_gpio_r ); WRITE32_MEMBER( s3c24xx_gpio_w ); - void s3c24xx_memcon_reset(); READ32_MEMBER( s3c24xx_memcon_r ); WRITE32_MEMBER( s3c24xx_memcon_w ); - void s3c24xx_usb_host_reset(); READ32_MEMBER( s3c24xx_usb_host_r ); WRITE32_MEMBER( s3c24xx_usb_host_w ); - void s3c24xx_uart_reset(); uint32_t s3c24xx_uart_r(uint32_t ch, uint32_t offset); void s3c24xx_uart_w(uint32_t ch, uint32_t offset, uint32_t data, uint32_t mem_mask); READ32_MEMBER( s3c24xx_uart_0_r ); @@ -478,8 +275,6 @@ public: void s3c24xx_usb_device_reset(); READ32_MEMBER( s3c24xx_usb_device_r ); WRITE32_MEMBER( s3c24xx_usb_device_w ); - void s3c24xx_wdt_reset(); - uint16_t s3c24xx_wdt_calc_current_count(); READ32_MEMBER( s3c24xx_wdt_r ); void s3c24xx_wdt_start(); void s3c24xx_wdt_stop(); @@ -500,7 +295,6 @@ public: READ32_MEMBER( s3c24xx_iic_r ); WRITE32_MEMBER( s3c24xx_iic_w ); TIMER_CALLBACK_MEMBER( s3c24xx_iic_timer_exp ); - void s3c24xx_iis_reset(); inline void iface_i2s_data_w(int ch, uint16_t data); void s3c24xx_iis_start(); void s3c24xx_iis_stop(); @@ -508,9 +302,7 @@ public: READ32_MEMBER( s3c24xx_iis_r ); WRITE32_MEMBER( s3c24xx_iis_w ); TIMER_CALLBACK_MEMBER( s3c24xx_iis_timer_exp ); - void s3c24xx_rtc_reset(); READ32_MEMBER( s3c24xx_rtc_r ); - void s3c24xx_rtc_recalc(); WRITE32_MEMBER( s3c24xx_rtc_w ); TIMER_CALLBACK_MEMBER( s3c24xx_rtc_timer_tick_count_exp ); void s3c24xx_rtc_update(); @@ -526,30 +318,23 @@ public: void s3c24xx_spi_w(uint32_t ch, uint32_t offset, uint32_t data, uint32_t mem_mask); READ32_MEMBER( s3c24xx_spi_0_r ); WRITE32_MEMBER( s3c24xx_spi_0_w ); - void s3c24xx_mmc_reset(); READ32_MEMBER( s3c24xx_mmc_r ); WRITE32_MEMBER( s3c24xx_mmc_w ); void s3c24xx_device_reset(); void s3c24xx_device_start(); - void s3c2400_uart_fifo_w(int uart, uint8_t data); +private: + static constexpr unsigned UART_COUNT = 2; + static constexpr unsigned DMA_COUNT = 4; + static constexpr unsigned SPI_COUNT = 1; + /******************************************************************************* TYPE DEFINITIONS *******************************************************************************/ - struct s3c24xx_memcon_regs_t - { - uint32_t data[0x34/4]; - }; - - struct s3c24xx_usbhost_regs_t - { - uint32_t data[0x5C/4]; - }; - - struct s3c24xx_irq_regs_t + struct irq_regs_t { uint32_t srcpnd; uint32_t intmod; @@ -559,7 +344,7 @@ public: uint32_t intoffset; }; - struct s3c24xx_dma_regs_t + struct dma_regs_t { uint32_t disrc; uint32_t didst; @@ -570,7 +355,7 @@ public: uint32_t dmasktrig; }; - struct s3c24xx_clkpow_regs_t + struct clkpow_regs_t { uint32_t locktime; uint32_t mpllcon; @@ -580,7 +365,7 @@ public: uint32_t clkdivn; }; - struct s3c24xx_lcd_regs_t + struct lcd_regs_t { uint32_t lcdcon1; uint32_t lcdcon2; @@ -598,60 +383,12 @@ public: uint32_t tpal; }; - struct s3c24xx_lcdpal_regs_t - { - uint32_t data[0x400/4]; - }; - - struct s3c24xx_uart_regs_t - { - uint32_t ulcon; - uint32_t ucon; - uint32_t ufcon; - uint32_t umcon; - uint32_t utrstat; - uint32_t uerstat; - uint32_t ufstat; - uint32_t umstat; - uint32_t utxh; - uint32_t urxh; - uint32_t ubrdiv; - }; - - struct s3c24xx_pwm_regs_t - { - uint32_t tcfg0; - uint32_t tcfg1; - uint32_t tcon; - uint32_t tcntb0; - uint32_t tcmpb0; - uint32_t tcnto0; - uint32_t tcntb1; - uint32_t tcmpb1; - uint32_t tcnto1; - uint32_t tcntb2; - uint32_t tcmpb2; - uint32_t tcnto2; - uint32_t tcntb3; - uint32_t tcmpb3; - uint32_t tcnto3; - uint32_t tcntb4; - uint32_t tcnto4; - }; - - struct s3c24xx_usbdev_regs_t + struct usbdev_regs_t { uint32_t data[0xBC/4]; }; - struct s3c24xx_wdt_regs_t - { - uint32_t wtcon; - uint32_t wtdat; - uint32_t wtcnt; - }; - - struct s3c24xx_iic_regs_t + struct iic_regs_t { uint32_t iiccon; uint32_t iicstat; @@ -659,16 +396,7 @@ public: uint32_t iicds; }; - struct s3c24xx_iis_regs_t - { - uint32_t iiscon; - uint32_t iismod; - uint32_t iispsr; - uint32_t iisfcon; - uint32_t iisfifo; - }; - - struct s3c24xx_gpio_regs_t + struct gpio_regs_t { uint32_t gpacon; uint32_t gpadat; @@ -695,79 +423,32 @@ public: uint32_t extint; }; - struct s3c24xx_rtc_regs_t - { - uint32_t rtccon; - uint32_t ticnt; - uint32_t reserved[2]; - uint32_t rtcalm; - uint32_t almsec; - uint32_t almmin; - uint32_t almhour; - uint32_t almday; - uint32_t almmon; - uint32_t almyear; - uint32_t rtcrst; - uint32_t bcdsec; - uint32_t bcdmin; - uint32_t bcdhour; - uint32_t bcdday; - uint32_t bcddow; - uint32_t bcdmon; - uint32_t bcdyear; - }; - - struct s3c24xx_adc_regs_t + struct adc_regs_t { uint32_t adccon; uint32_t adcdat; }; - struct s3c24xx_spi_regs_t - { - uint32_t spcon; - uint32_t spsta; - uint32_t sppin; - uint32_t sppre; - uint32_t sptdat; - uint32_t sprdat; - }; - - struct s3c24xx_mmc_regs_t - { - uint32_t data[0x40/4]; - }; - - struct s3c24xx_memcon_t - { - s3c24xx_memcon_regs_t regs; - }; - - struct s3c24xx_usbhost_t + struct irq_t { - s3c24xx_usbhost_regs_t regs; - }; - - struct s3c24xx_irq_t - { - s3c24xx_irq_regs_t regs; + irq_regs_t regs; int line_irq, line_fiq; }; - struct s3c24xx_dma_t + struct dma_t { - s3c24xx_dma_regs_t regs; + dma_regs_t regs; emu_timer *timer; }; - struct s3c24xx_clkpow_t + struct clkpow_t { - s3c24xx_clkpow_regs_t regs; + clkpow_regs_t regs; }; - struct s3c24xx_lcd_t + struct lcd_t { - s3c24xx_lcd_regs_t regs; + lcd_regs_t regs; emu_timer *timer; std::unique_ptr bitmap[2]; uint32_t vramaddr_cur; @@ -784,97 +465,49 @@ public: uint32_t dma_data, dma_bits; }; - struct s3c24xx_lcdpal_t - { - s3c24xx_lcdpal_regs_t regs; - }; - - struct s3c24xx_uart_t + struct usbdev_t { - s3c24xx_uart_regs_t regs; + usbdev_regs_t regs; }; - struct s3c24xx_pwm_t + struct iic_t { - s3c24xx_pwm_regs_t regs; - emu_timer *timer[5]; - uint32_t cnt[5]; - uint32_t cmp[5]; - uint32_t freq[5]; - }; - - struct s3c24xx_usbdev_t - { - s3c24xx_usbdev_regs_t regs; - }; - - struct s3c24xx_wdt_t - { - s3c24xx_wdt_regs_t regs; - emu_timer *timer; - }; - - struct s3c24xx_iic_t - { - s3c24xx_iic_regs_t regs; + iic_regs_t regs; emu_timer *timer; int count; }; - struct s3c24xx_iis_t + struct gpio_t { - s3c24xx_iis_regs_t regs; - emu_timer *timer; - uint16_t fifo[16/2]; - int fifo_index; + gpio_regs_t regs; }; - struct s3c24xx_gpio_t + struct adc_t { - s3c24xx_gpio_regs_t regs; - }; - - struct s3c24xx_rtc_t - { - s3c24xx_rtc_regs_t regs; - emu_timer *timer_tick_count; - emu_timer *timer_update; - }; - - struct s3c24xx_adc_t - { - s3c24xx_adc_regs_t regs; - }; - - struct s3c24xx_spi_t - { - s3c24xx_spi_regs_t regs; - }; - - struct s3c24xx_mmc_t - { - s3c24xx_mmc_regs_t regs; + adc_regs_t regs; }; + // internal state + required_device m_palette; - s3c24xx_memcon_t m_memcon; - s3c24xx_usbhost_t m_usbhost; - s3c24xx_irq_t m_irq; - s3c24xx_dma_t m_dma[S3C24XX_DMA_COUNT]; - s3c24xx_clkpow_t m_clkpow; - s3c24xx_lcd_t m_lcd; - s3c24xx_lcdpal_t m_lcdpal; - s3c24xx_uart_t m_uart[S3C24XX_UART_COUNT]; - s3c24xx_pwm_t m_pwm; - s3c24xx_usbdev_t m_usbdev; - s3c24xx_wdt_t m_wdt; - s3c24xx_iic_t m_iic; - s3c24xx_iis_t m_iis; - s3c24xx_gpio_t m_gpio; - s3c24xx_rtc_t m_rtc; - s3c24xx_adc_t m_adc; - s3c24xx_spi_t m_spi[S3C24XX_SPI_COUNT]; - s3c24xx_mmc_t m_mmc; + memcon_t m_memcon; + usbhost_t m_usbhost; + irq_t m_irq; + dma_t m_dma[DMA_COUNT]; + clkpow_t m_clkpow; + lcd_t m_lcd; + lcdpal_t m_lcdpal; + uart_t m_uart[UART_COUNT]; + pwm_t m_pwm; + usbdev_t m_usbdev; + wdt_t m_wdt; + iic_t m_iic; + iis_t m_iis; + gpio_t m_gpio; + rtc_t m_rtc; + adc_t m_adc; + spi_t m_spi[SPI_COUNT]; + mmc_t m_mmc; required_device m_cpu; devcb_read32 m_pin_r_cb; devcb_write32 m_pin_w_cb; @@ -888,7 +521,6 @@ public: int m_flags; }; -extern const device_type S3C2400; - +DECLARE_DEVICE_TYPE(S3C2400, s3c2400_device) -#endif +#endif // MAME_MACHINE_S3C2400_H diff --git a/src/devices/machine/s3c2410.cpp b/src/devices/machine/s3c2410.cpp index ff4fbbd060c..175138443ab 100644 --- a/src/devices/machine/s3c2410.cpp +++ b/src/devices/machine/s3c2410.cpp @@ -16,18 +16,208 @@ #include "screen.h" +#define S3C24XX_SRCPND (0x00 / 4) // Interrupt Request Status +#define S3C24XX_INTMOD (0x04 / 4) // Interrupt Mode Control +#define S3C24XX_INTMSK (0x08 / 4) // Interrupt Mask Control +#define S3C24XX_PRIORITY (0x0C / 4) // IRQ Priority Control +#define S3C24XX_INTPND (0x10 / 4) // Interrupt Request Status +#define S3C24XX_INTOFFSET (0x14 / 4) // Interrupt Request Source Offset +#define S3C24XX_SUBSRCPND (0x18 / 4) // Sub Source Pending +#define S3C24XX_INTSUBMSK (0x1C / 4) // Interrupt Sub Mask + +#define S3C24XX_DISRC (0x00 / 4) // DMA Initial Source +#define S3C24XX_DISRCC (0x04 / 4) // DMA Initial Source Control +#define S3C24XX_DIDST (0x08 / 4) // DMA Initial Destination +#define S3C24XX_DIDSTC (0x0C / 4) // DMA Initial Destination Control +#define S3C24XX_DCON (0x10 / 4) // DMA Control +#define S3C24XX_DSTAT (0x14 / 4) // DMA Count +#define S3C24XX_DCSRC (0x18 / 4) // DMA Current Source +#define S3C24XX_DCDST (0x1C / 4) // DMA Current Destination +#define S3C24XX_DMASKTRIG (0x20 / 4) // DMA Mask Trigger + +#define S3C24XX_LCDCON1 (0x00 / 4) // LCD Control 1 +#define S3C24XX_LCDCON2 (0x04 / 4) // LCD Control 2 +#define S3C24XX_LCDCON3 (0x08 / 4) // LCD Control 3 +#define S3C24XX_LCDCON4 (0x0C / 4) // LCD Control 4 +#define S3C24XX_LCDCON5 (0x10 / 4) // LCD Control 5 +#define S3C24XX_LCDSADDR1 (0x14 / 4) // STN/TFT: Frame Buffer Start Address 1 +#define S3C24XX_LCDSADDR2 (0x18 / 4) // STN/TFT: Frame Buffer Start Address 2 +#define S3C24XX_LCDSADDR3 (0x1C / 4) // STN/TFT: Virtual Screen Address Set +#define S3C24XX_REDLUT (0x20 / 4) // STN: Red Lookup Table +#define S3C24XX_GREENLUT (0x24 / 4) // STN: Green Lookup Table +#define S3C24XX_BLUELUT (0x28 / 4) // STN: Blue Lookup Table +#define S3C24XX_DITHMODE (0x4C / 4) // STN: Dithering Mode +#define S3C24XX_TPAL (0x50 / 4) // TFT: Temporary Palette +#define S3C24XX_LCDINTPND (0x54 / 4) // LCD Interrupt Pending +#define S3C24XX_LCDSRCPND (0x58 / 4) // LCD Interrupt Source +#define S3C24XX_LCDINTMSK (0x5C / 4) // LCD Interrupt Mask +#define S3C24XX_LPCSEL (0x60 / 4) // LPC3600 Control + +#define S3C24XX_NFCONF (0x00 / 4) // NAND Flash Configuration +#define S3C24XX_NFCMD (0x04 / 4) // NAND Flash Command +#define S3C24XX_NFADDR (0x08 / 4) // NAND Flash Address +#define S3C24XX_NFDATA (0x0C / 4) // NAND Flash Data +#define S3C24XX_NFSTAT (0x10 / 4) // NAND Flash Operation Status +#define S3C24XX_NFECC (0x14 / 4) // NAND Flash ECC + +#define S3C24XX_IICCON (0x00 / 4) // IIC Control +#define S3C24XX_IICSTAT (0x04 / 4) // IIC Status +#define S3C24XX_IICADD (0x08 / 4) // IIC Address +#define S3C24XX_IICDS (0x0C / 4) // IIC Data Shift + +#define S3C24XX_GPACON (0x00 / 4) // Port A Control +#define S3C24XX_GPADAT (0x04 / 4) // Port A Data +#define S3C24XX_GPBCON (0x10 / 4) // Port B Control +#define S3C24XX_GPBDAT (0x14 / 4) // Port B Data +#define S3C24XX_GPBUP (0x18 / 4) // Pull-up Control B +#define S3C24XX_GPCCON (0x20 / 4) // Port C Control +#define S3C24XX_GPCDAT (0x24 / 4) // Port C Data +#define S3C24XX_GPCUP (0x28 / 4) // Pull-up Control C +#define S3C24XX_GPDCON (0x30 / 4) // Port D Control +#define S3C24XX_GPDDAT (0x34 / 4) // Port D Data +#define S3C24XX_GPDUP (0x38 / 4) // Pull-up Control D +#define S3C24XX_GPECON (0x40 / 4) // Port E Control +#define S3C24XX_GPEDAT (0x44 / 4) // Port E Data +#define S3C24XX_GPEUP (0x48 / 4) // Pull-up Control E +#define S3C24XX_GPFCON (0x50 / 4) // Port F Control +#define S3C24XX_GPFDAT (0x54 / 4) // Port F Data +#define S3C24XX_GPFUP (0x58 / 4) // Pull-up Control F +#define S3C24XX_GPGCON (0x60 / 4) // Port G Control +#define S3C24XX_GPGDAT (0x64 / 4) // Port G Data +#define S3C24XX_GPGUP (0x68 / 4) // Pull-up Control G +#define S3C24XX_GPHCON (0x70 / 4) // Port H Control +#define S3C24XX_GPHDAT (0x74 / 4) // Port H Data +#define S3C24XX_GPHUP (0x78 / 4) // Pull-up Control H +#define S3C24XX_MISCCR (0x80 / 4) // Miscellaneous Control +#define S3C24XX_DCLKCON (0x84 / 4) // DCLK0/1 Control +#define S3C24XX_EXTINT0 (0x88 / 4) // External Interrupt Control Register 0 +#define S3C24XX_EXTINT1 (0x8C / 4) // External Interrupt Control Register 1 +#define S3C24XX_EXTINT2 (0x90 / 4) // External Interrupt Control Register 2 +#define S3C24XX_EINTFLT0 (0x94 / 4) // Reserved +#define S3C24XX_EINTFLT1 (0x98 / 4) // Reserved +#define S3C24XX_EINTFLT2 (0x9C / 4) // External Interrupt Filter Control Register 2 +#define S3C24XX_EINTFLT3 (0xA0 / 4) // External Interrupt Filter Control Register 3 +#define S3C24XX_EINTMASK (0xA4 / 4) // External Interrupt Mask +#define S3C24XX_EINTPEND (0xA8 / 4) // External Interrupt Pending +#define S3C24XX_GSTATUS0 (0xAC / 4) // External Pin Status +#define S3C24XX_GSTATUS1 (0xB0 / 4) // Chip ID +#define S3C24XX_GSTATUS2 (0xB4 / 4) // Reset Status +#define S3C24XX_GSTATUS3 (0xB8 / 4) // Inform Register +#define S3C24XX_GSTATUS4 (0xBC / 4) // Inform Register + +#define S3C24XX_GPADAT_MASK 0x007FFFFF +#define S3C24XX_GPBDAT_MASK 0x000007FF +#define S3C24XX_GPCDAT_MASK 0x0000FFFF +#define S3C24XX_GPDDAT_MASK 0x0000FFFF +#define S3C24XX_GPEDAT_MASK 0x0000FFFF +#define S3C24XX_GPFDAT_MASK 0x000000FF +#define S3C24XX_GPGDAT_MASK 0x0000FFFF +#define S3C24XX_GPHDAT_MASK 0x000007FF + +#define S3C24XX_ADCCON (0x00 / 4) // ADC Control +#define S3C24XX_ADCTSC (0x04 / 4) // ADC Touch Screen Control +#define S3C24XX_ADCDLY (0x08 / 4) // ADC Start or Interval Delay +#define S3C24XX_ADCDAT0 (0x0C / 4) // ADC Conversion Data +#define S3C24XX_ADCDAT1 (0x10 / 4) // ADC Conversion Data + +#define S3C24XX_INT_ADC 31 +#define S3C24XX_INT_RTC 30 +#define S3C24XX_INT_SPI1 29 +#define S3C24XX_INT_UART0 28 +#define S3C24XX_INT_IIC 27 +#define S3C24XX_INT_USBH 26 +#define S3C24XX_INT_USBD 25 +#define S3C24XX_INT_24 24 +#define S3C24XX_INT_UART1 23 +#define S3C24XX_INT_SPI0 22 +#define S3C24XX_INT_SDI 21 +#define S3C24XX_INT_DMA3 20 +#define S3C24XX_INT_DMA2 19 +#define S3C24XX_INT_DMA1 18 +#define S3C24XX_INT_DMA0 17 +#define S3C24XX_INT_LCD 16 +#define S3C24XX_INT_UART2 15 +#define S3C24XX_INT_TIMER4 14 +#define S3C24XX_INT_TIMER3 13 +#define S3C24XX_INT_TIMER2 12 +#define S3C24XX_INT_TIMER1 11 +#define S3C24XX_INT_TIMER0 10 +#define S3C24XX_INT_WDT 9 +#define S3C24XX_INT_TICK 8 +#define S3C24XX_INT_BATT_FLT 7 +#define S3C24XX_INT_6 6 +#define S3C24XX_INT_EINT8_23 5 +#define S3C24XX_INT_EINT4_7 4 +#define S3C24XX_INT_EINT3 3 +#define S3C24XX_INT_EINT2 2 +#define S3C24XX_INT_EINT1 1 +#define S3C24XX_INT_EINT0 0 + +#define S3C24XX_SUBINT_ADC 10 +#define S3C24XX_SUBINT_TC 9 +#define S3C24XX_SUBINT_ERR2 8 +#define S3C24XX_SUBINT_TXD2 7 +#define S3C24XX_SUBINT_RXD2 6 +#define S3C24XX_SUBINT_ERR1 5 +#define S3C24XX_SUBINT_TXD1 4 +#define S3C24XX_SUBINT_RXD1 3 +#define S3C24XX_SUBINT_ERR0 2 +#define S3C24XX_SUBINT_TXD0 1 +#define S3C24XX_SUBINT_RXD0 0 + +static const uint32_t MAP_SUBINT_TO_INT[11] = +{ + S3C24XX_INT_UART0, S3C24XX_INT_UART0, S3C24XX_INT_UART0, + S3C24XX_INT_UART1, S3C24XX_INT_UART1, S3C24XX_INT_UART1, + S3C24XX_INT_UART2, S3C24XX_INT_UART2, S3C24XX_INT_UART2, + S3C24XX_INT_ADC, S3C24XX_INT_ADC +}; + +#define S3C24XX_BPPMODE_STN_01 0x00 +#define S3C24XX_BPPMODE_STN_02 0x01 +#define S3C24XX_BPPMODE_STN_04 0x02 +#define S3C24XX_BPPMODE_STN_08 0x03 +#define S3C24XX_BPPMODE_STN_12_P 0x04 +#define S3C24XX_BPPMODE_STN_12_U 0x05 +#define S3C24XX_BPPMODE_STN_16 0x06 +#define S3C24XX_BPPMODE_TFT_01 0x08 +#define S3C24XX_BPPMODE_TFT_02 0x09 +#define S3C24XX_BPPMODE_TFT_04 0x0A +#define S3C24XX_BPPMODE_TFT_08 0x0B +#define S3C24XX_BPPMODE_TFT_16 0x0C +#define S3C24XX_BPPMODE_TFT_24 0x0D + +#define S3C24XX_PNRMODE_STN_04_DS 0 +#define S3C24XX_PNRMODE_STN_04_SS 1 +#define S3C24XX_PNRMODE_STN_08_SS 2 +#define S3C24XX_PNRMODE_TFT 3 + +#define S3C24XX_GPIO_PORT_A S3C2410_GPIO_PORT_A +#define S3C24XX_GPIO_PORT_B S3C2410_GPIO_PORT_B +#define S3C24XX_GPIO_PORT_C S3C2410_GPIO_PORT_C +#define S3C24XX_GPIO_PORT_D S3C2410_GPIO_PORT_D +#define S3C24XX_GPIO_PORT_E S3C2410_GPIO_PORT_E +#define S3C24XX_GPIO_PORT_F S3C2410_GPIO_PORT_F +#define S3C24XX_GPIO_PORT_G S3C2410_GPIO_PORT_G +#define S3C24XX_GPIO_PORT_H S3C2410_GPIO_PORT_H + +#define S3C24XX_CORE_PIN_NCON S3C2410_CORE_PIN_NCON +#define S3C24XX_CORE_PIN_OM0 S3C2410_CORE_PIN_OM0 +#define S3C24XX_CORE_PIN_OM1 S3C2410_CORE_PIN_OM1 + + #define VERBOSE_LEVEL ( 0 ) -static inline void ATTR_PRINTF(3,4) verboselog( device_t &device, int n_level, const char *s_fmt, ...) +static inline void ATTR_PRINTF(3,4) verboselog(device_t &device, int n_level, const char *s_fmt, ...) { if (VERBOSE_LEVEL >= n_level) { va_list v; char buf[32768]; - va_start( v, s_fmt); - vsprintf( buf, s_fmt, v); - va_end( v); - device.logerror( "%s: %s", device.machine().describe_context( ), buf); + va_start(v, s_fmt); + vsprintf(buf, s_fmt, v); + va_end(v); + device.logerror("%s: %s", device.machine().describe_context( ), buf); } } @@ -41,26 +231,26 @@ uint32_t s3c2410_device::screen_update(screen_device &screen, bitmap_rgb32 &bitm return s3c24xx_video_update(screen, bitmap, cliprect); } -const device_type S3C2410 = device_creator; +DEFINE_DEVICE_TYPE(S3C2410, s3c2410_device, "s3c2410", "Samsung S3C2410 SoC") s3c2410_device::s3c2410_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, S3C2410, "S3C2410 MCU", tag, owner, clock, "s3c2410", __FILE__), - m_palette(*this, finder_base::DUMMY_TAG), - m_cpu(*this, ":maincpu"), - m_pin_r_cb(*this), - m_pin_w_cb(*this), - m_port_r_cb(*this), - m_port_w_cb(*this), - m_scl_w_cb(*this), - m_sda_r_cb(*this), - m_sda_w_cb(*this), - m_data_r_cb(*this), - m_data_w_cb(*this), - m_command_w_cb(*this), - m_address_w_cb(*this), - m_nand_data_r_cb(*this), - m_nand_data_w_cb(*this), - m_flags(0) + : device_t(mconfig, S3C2410, tag, owner, clock) + , m_palette(*this, finder_base::DUMMY_TAG) + , m_cpu(*this, ":maincpu") + , m_pin_r_cb(*this) + , m_pin_w_cb(*this) + , m_port_r_cb(*this) + , m_port_w_cb(*this) + , m_scl_w_cb(*this) + , m_sda_r_cb(*this) + , m_sda_w_cb(*this) + , m_data_r_cb(*this) + , m_data_w_cb(*this) + , m_command_w_cb(*this) + , m_address_w_cb(*this) + , m_nand_data_r_cb(*this) + , m_nand_data_w_cb(*this) + , m_flags(0) { memset(m_steppingstone, 0, sizeof(m_steppingstone)); memset(&m_memcon, 0, sizeof(m_memcon)); diff --git a/src/devices/machine/s3c2410.h b/src/devices/machine/s3c2410.h index 3356f4d91fb..eadaf786a37 100644 --- a/src/devices/machine/s3c2410.h +++ b/src/devices/machine/s3c2410.h @@ -6,8 +6,12 @@ *******************************************************************************/ -#ifndef __S3C2410_H__ -#define __S3C2410_H__ +#ifndef MAME_MACHINE_S3C2410_H +#define MAME_MACHINE_S3C2410_H + +#pragma once + +#include "s3c24xx.h" /******************************************************************************* @@ -16,50 +20,50 @@ #define S3C2410_TAG "s3c2410" -#define MCFG_S3C2410_PALETTE(_palette_tag) \ - s3c2410_device::static_set_palette_tag(*device, "^" _palette_tag); +#define MCFG_S3C2410_PALETTE(palette_tag) \ + s3c2410_device::static_set_palette_tag(*device, ("^" palette_tag)); -#define MCFG_S3C2410_CORE_PIN_R_CB(_devcb) \ - devcb = &s3c2410_device::set_core_pin_r_callback(*device, DEVCB_##_devcb); +#define MCFG_S3C2410_CORE_PIN_R_CB(cb) \ + devcb = &s3c2410_device::set_core_pin_r_callback(*device, DEVCB_##cb); -#define MCFG_S3C2410_CORE_PIN_W_CB(_devcb) \ - devcb = &s3c2410_device::set_core_pin_w_callback(*device, DEVCB_##_devcb); +#define MCFG_S3C2410_CORE_PIN_W_CB(cb) \ + devcb = &s3c2410_device::set_core_pin_w_callback(*device, DEVCB_##cb); -#define MCFG_S3C2410_GPIO_PORT_R_CB(_devcb) \ - devcb = &s3c2410_device::set_gpio_port_r_callback(*device, DEVCB_##_devcb); +#define MCFG_S3C2410_GPIO_PORT_R_CB(cb) \ + devcb = &s3c2410_device::set_gpio_port_r_callback(*device, DEVCB_##cb); -#define MCFG_S3C2410_GPIO_PORT_W_CB(_devcb) \ - devcb = &s3c2410_device::set_gpio_port_w_callback(*device, DEVCB_##_devcb); +#define MCFG_S3C2410_GPIO_PORT_W_CB(cb) \ + devcb = &s3c2410_device::set_gpio_port_w_callback(*device, DEVCB_##cb); -#define MCFG_S3C2410_I2C_SCL_W_CB(_devcb) \ - devcb = &s3c2410_device::set_i2c_scl_w_callback(*device, DEVCB_##_devcb); +#define MCFG_S3C2410_I2C_SCL_W_CB(cb) \ + devcb = &s3c2410_device::set_i2c_scl_w_callback(*device, DEVCB_##cb); -#define MCFG_S3C2410_I2C_SDA_R_CB(_devcb) \ - devcb = &s3c2410_device::set_i2c_sda_r_callback(*device, DEVCB_##_devcb); +#define MCFG_S3C2410_I2C_SDA_R_CB(cb) \ + devcb = &s3c2410_device::set_i2c_sda_r_callback(*device, DEVCB_##cb); -#define MCFG_S3C2410_I2C_SDA_W_CB(_devcb) \ - devcb = &s3c2410_device::set_i2c_sda_w_callback(*device, DEVCB_##_devcb); +#define MCFG_S3C2410_I2C_SDA_W_CB(cb) \ + devcb = &s3c2410_device::set_i2c_sda_w_callback(*device, DEVCB_##cb); -#define MCFG_S3C2410_ADC_DATA_R_CB(_devcb) \ - devcb = &s3c2410_device::set_adc_data_r_callback(*device, DEVCB_##_devcb); +#define MCFG_S3C2410_ADC_DATA_R_CB(cb) \ + devcb = &s3c2410_device::set_adc_data_r_callback(*device, DEVCB_##cb); -#define MCFG_S3C2410_I2S_DATA_W_CB(_devcb) \ - devcb = &s3c2410_device::set_i2s_data_w_callback(*device, DEVCB_##_devcb); +#define MCFG_S3C2410_I2S_DATA_W_CB(cb) \ + devcb = &s3c2410_device::set_i2s_data_w_callback(*device, DEVCB_##cb); -#define MCFG_S3C2410_NAND_COMMAND_W_CB(_devcb) \ - devcb = &s3c2410_device::set_nand_command_w_callback(*device, DEVCB_##_devcb); +#define MCFG_S3C2410_NAND_COMMAND_W_CB(cb) \ + devcb = &s3c2410_device::set_nand_command_w_callback(*device, DEVCB_##cb); -#define MCFG_S3C2410_NAND_ADDRESS_W_CB(_devcb) \ - devcb = &s3c2410_device::set_nand_address_w_callback(*device, DEVCB_##_devcb); +#define MCFG_S3C2410_NAND_ADDRESS_W_CB(cb) \ + devcb = &s3c2410_device::set_nand_address_w_callback(*device, DEVCB_##cb); -#define MCFG_S3C2410_NAND_DATA_R_CB(_devcb) \ - devcb = &s3c2410_device::set_nand_data_r_callback(*device, DEVCB_##_devcb); +#define MCFG_S3C2410_NAND_DATA_R_CB(cb) \ + devcb = &s3c2410_device::set_nand_data_r_callback(*device, DEVCB_##cb); -#define MCFG_S3C2410_NAND_DATA_W_CB(_devcb) \ - devcb = &s3c2410_device::set_nand_data_w_callback(*device, DEVCB_##_devcb); +#define MCFG_S3C2410_NAND_DATA_W_CB(cb) \ + devcb = &s3c2410_device::set_nand_data_w_callback(*device, DEVCB_##cb); -#define MCFG_S3C2410_LCD_FLAGS(_flags) \ - s3c2410_device::set_lcd_flags(*device, _flags); +#define MCFG_S3C2410_LCD_FLAGS(flags) \ + s3c2410_device::set_lcd_flags(*device, (flags)); enum { @@ -101,15 +105,6 @@ enum #define S3C24XX_BASE_INT 0x4A000000 -#define S3C24XX_SRCPND (0x00 / 4) // Interrupt Request Status -#define S3C24XX_INTMOD (0x04 / 4) // Interrupt Mode Control -#define S3C24XX_INTMSK (0x08 / 4) // Interrupt Mask Control -#define S3C24XX_PRIORITY (0x0C / 4) // IRQ Priority Control -#define S3C24XX_INTPND (0x10 / 4) // Interrupt Request Status -#define S3C24XX_INTOFFSET (0x14 / 4) // Interrupt Request Source Offset -#define S3C24XX_SUBSRCPND (0x18 / 4) // Sub Source Pending -#define S3C24XX_INTSUBMSK (0x1C / 4) // Interrupt Sub Mask - /* DMA */ #define S3C24XX_BASE_DMA_0 0x4B000000 @@ -117,16 +112,6 @@ enum #define S3C24XX_BASE_DMA_2 0x4B000080 #define S3C24XX_BASE_DMA_3 0x4B0000C0 -#define S3C24XX_DISRC (0x00 / 4) // DMA Initial Source -#define S3C24XX_DISRCC (0x04 / 4) // DMA Initial Source Control -#define S3C24XX_DIDST (0x08 / 4) // DMA Initial Destination -#define S3C24XX_DIDSTC (0x0C / 4) // DMA Initial Destination Control -#define S3C24XX_DCON (0x10 / 4) // DMA Control -#define S3C24XX_DSTAT (0x14 / 4) // DMA Count -#define S3C24XX_DCSRC (0x18 / 4) // DMA Current Source -#define S3C24XX_DCDST (0x1C / 4) // DMA Current Destination -#define S3C24XX_DMASKTRIG (0x20 / 4) // DMA Mask Trigger - /* Clock & Power Management */ #define S3C24XX_BASE_CLKPOW 0x4C000000 @@ -143,75 +128,20 @@ enum #define S3C24XX_BASE_LCD 0x4D000000 #define S3C24XX_BASE_LCDPAL 0x4D000400 -#define S3C24XX_LCDCON1 (0x00 / 4) // LCD Control 1 -#define S3C24XX_LCDCON2 (0x04 / 4) // LCD Control 2 -#define S3C24XX_LCDCON3 (0x08 / 4) // LCD Control 3 -#define S3C24XX_LCDCON4 (0x0C / 4) // LCD Control 4 -#define S3C24XX_LCDCON5 (0x10 / 4) // LCD Control 5 -#define S3C24XX_LCDSADDR1 (0x14 / 4) // STN/TFT: Frame Buffer Start Address 1 -#define S3C24XX_LCDSADDR2 (0x18 / 4) // STN/TFT: Frame Buffer Start Address 2 -#define S3C24XX_LCDSADDR3 (0x1C / 4) // STN/TFT: Virtual Screen Address Set -#define S3C24XX_REDLUT (0x20 / 4) // STN: Red Lookup Table -#define S3C24XX_GREENLUT (0x24 / 4) // STN: Green Lookup Table -#define S3C24XX_BLUELUT (0x28 / 4) // STN: Blue Lookup Table -#define S3C24XX_DITHMODE (0x4C / 4) // STN: Dithering Mode -#define S3C24XX_TPAL (0x50 / 4) // TFT: Temporary Palette -#define S3C24XX_LCDINTPND (0x54 / 4) // LCD Interrupt Pending -#define S3C24XX_LCDSRCPND (0x58 / 4) // LCD Interrupt Source -#define S3C24XX_LCDINTMSK (0x5C / 4) // LCD Interrupt Mask -#define S3C24XX_LPCSEL (0x60 / 4) // LPC3600 Control - /* NAND Flash */ #define S3C24XX_BASE_NAND 0x4E000000 -#define S3C24XX_NFCONF (0x00 / 4) // NAND Flash Configuration -#define S3C24XX_NFCMD (0x04 / 4) // NAND Flash Command -#define S3C24XX_NFADDR (0x08 / 4) // NAND Flash Address -#define S3C24XX_NFDATA (0x0C / 4) // NAND Flash Data -#define S3C24XX_NFSTAT (0x10 / 4) // NAND Flash Operation Status -#define S3C24XX_NFECC (0x14 / 4) // NAND Flash ECC - /* UART */ #define S3C24XX_BASE_UART_0 0x50000000 #define S3C24XX_BASE_UART_1 0x50004000 #define S3C24XX_BASE_UART_2 0x50008000 -#define S3C24XX_ULCON (0x00 / 4) // UART Line Control -#define S3C24XX_UCON (0x04 / 4) // UART Control -#define S3C24XX_UFCON (0x08 / 4) // UART FIFO Control -#define S3C24XX_UMCON (0x0C / 4) // UART Modem Control -#define S3C24XX_UTRSTAT (0x10 / 4) // UART Tx/Rx Status -#define S3C24XX_UERSTAT (0x14 / 4) // UART Rx Error Status -#define S3C24XX_UFSTAT (0x18 / 4) // UART FIFO Status -#define S3C24XX_UMSTAT (0x1C / 4) // UART Modem Status -#define S3C24XX_UTXH (0x20 / 4) // UART Transmission Hold -#define S3C24XX_URXH (0x24 / 4) // UART Receive Buffer -#define S3C24XX_UBRDIV (0x28 / 4) // UART Baud Rate Divisor - /* PWM Timer */ #define S3C24XX_BASE_PWM 0x51000000 -#define S3C24XX_TCFG0 (0x00 / 4) // Timer Configuration -#define S3C24XX_TCFG1 (0x04 / 4) // Timer Configuration -#define S3C24XX_TCON (0x08 / 4) // Timer Control -#define S3C24XX_TCNTB0 (0x0C / 4) // Timer Count Buffer 0 -#define S3C24XX_TCMPB0 (0x10 / 4) // Timer Compare Buffer 0 -#define S3C24XX_TCNTO0 (0x14 / 4) // Timer Count Observation 0 -#define S3C24XX_TCNTB1 (0x18 / 4) // Timer Count Buffer 1 -#define S3C24XX_TCMPB1 (0x1C / 4) // Timer Compare Buffer 1 -#define S3C24XX_TCNTO1 (0x20 / 4) // Timer Count Observation 1 -#define S3C24XX_TCNTB2 (0x24 / 4) // Timer Count Buffer 2 -#define S3C24XX_TCMPB2 (0x28 / 4) // Timer Compare Buffer 2 -#define S3C24XX_TCNTO2 (0x2C / 4) // Timer Count Observation 2 -#define S3C24XX_TCNTB3 (0x30 / 4) // Timer Count Buffer 3 -#define S3C24XX_TCMPB3 (0x34 / 4) // Timer Compare Buffer 3 -#define S3C24XX_TCNTO3 (0x38 / 4) // Timer Count Observation 3 -#define S3C24XX_TCNTB4 (0x3C / 4) // Timer Count Buffer 4 -#define S3C24XX_TCNTO4 (0x40 / 4) // Timer Count Observation 4 - /* USB Device */ #define S3C24XX_BASE_USBDEV 0x52000140 @@ -220,222 +150,38 @@ enum #define S3C24XX_BASE_WDT 0x53000000 -#define S3C24XX_WTCON (0x00 / 4) // Watchdog Timer Mode -#define S3C24XX_WTDAT (0x04 / 4) // Watchdog Timer Data -#define S3C24XX_WTCNT (0x08 / 4) // Watchdog Timer Count - /* IIC */ #define S3C24XX_BASE_IIC 0x54000000 -#define S3C24XX_IICCON (0x00 / 4) // IIC Control -#define S3C24XX_IICSTAT (0x04 / 4) // IIC Status -#define S3C24XX_IICADD (0x08 / 4) // IIC Address -#define S3C24XX_IICDS (0x0C / 4) // IIC Data Shift - /* IIS */ #define S3C24XX_BASE_IIS 0x55000000 -#define S3C24XX_IISCON (0x00 / 4) // IIS Control -#define S3C24XX_IISMOD (0x04 / 4) // IIS Mode -#define S3C24XX_IISPSR (0x08 / 4) // IIS Prescaler -#define S3C24XX_IISFCON (0x0C / 4) // IIS FIFO Control -#define S3C24XX_IISFIFO (0x10 / 4) // IIS FIFO Entry - /* I/O Port */ #define S3C24XX_BASE_GPIO 0x56000000 -#define S3C24XX_GPACON (0x00 / 4) // Port A Control -#define S3C24XX_GPADAT (0x04 / 4) // Port A Data -#define S3C24XX_GPBCON (0x10 / 4) // Port B Control -#define S3C24XX_GPBDAT (0x14 / 4) // Port B Data -#define S3C24XX_GPBUP (0x18 / 4) // Pull-up Control B -#define S3C24XX_GPCCON (0x20 / 4) // Port C Control -#define S3C24XX_GPCDAT (0x24 / 4) // Port C Data -#define S3C24XX_GPCUP (0x28 / 4) // Pull-up Control C -#define S3C24XX_GPDCON (0x30 / 4) // Port D Control -#define S3C24XX_GPDDAT (0x34 / 4) // Port D Data -#define S3C24XX_GPDUP (0x38 / 4) // Pull-up Control D -#define S3C24XX_GPECON (0x40 / 4) // Port E Control -#define S3C24XX_GPEDAT (0x44 / 4) // Port E Data -#define S3C24XX_GPEUP (0x48 / 4) // Pull-up Control E -#define S3C24XX_GPFCON (0x50 / 4) // Port F Control -#define S3C24XX_GPFDAT (0x54 / 4) // Port F Data -#define S3C24XX_GPFUP (0x58 / 4) // Pull-up Control F -#define S3C24XX_GPGCON (0x60 / 4) // Port G Control -#define S3C24XX_GPGDAT (0x64 / 4) // Port G Data -#define S3C24XX_GPGUP (0x68 / 4) // Pull-up Control G -#define S3C24XX_GPHCON (0x70 / 4) // Port H Control -#define S3C24XX_GPHDAT (0x74 / 4) // Port H Data -#define S3C24XX_GPHUP (0x78 / 4) // Pull-up Control H -#define S3C24XX_MISCCR (0x80 / 4) // Miscellaneous Control -#define S3C24XX_DCLKCON (0x84 / 4) // DCLK0/1 Control -#define S3C24XX_EXTINT0 (0x88 / 4) // External Interrupt Control Register 0 -#define S3C24XX_EXTINT1 (0x8C / 4) // External Interrupt Control Register 1 -#define S3C24XX_EXTINT2 (0x90 / 4) // External Interrupt Control Register 2 -#define S3C24XX_EINTFLT0 (0x94 / 4) // Reserved -#define S3C24XX_EINTFLT1 (0x98 / 4) // Reserved -#define S3C24XX_EINTFLT2 (0x9C / 4) // External Interrupt Filter Control Register 2 -#define S3C24XX_EINTFLT3 (0xA0 / 4) // External Interrupt Filter Control Register 3 -#define S3C24XX_EINTMASK (0xA4 / 4) // External Interrupt Mask -#define S3C24XX_EINTPEND (0xA8 / 4) // External Interrupt Pending -#define S3C24XX_GSTATUS0 (0xAC / 4) // External Pin Status -#define S3C24XX_GSTATUS1 (0xB0 / 4) // Chip ID -#define S3C24XX_GSTATUS2 (0xB4 / 4) // Reset Status -#define S3C24XX_GSTATUS3 (0xB8 / 4) // Inform Register -#define S3C24XX_GSTATUS4 (0xBC / 4) // Inform Register - -#define S3C24XX_GPADAT_MASK 0x007FFFFF -#define S3C24XX_GPBDAT_MASK 0x000007FF -#define S3C24XX_GPCDAT_MASK 0x0000FFFF -#define S3C24XX_GPDDAT_MASK 0x0000FFFF -#define S3C24XX_GPEDAT_MASK 0x0000FFFF -#define S3C24XX_GPFDAT_MASK 0x000000FF -#define S3C24XX_GPGDAT_MASK 0x0000FFFF -#define S3C24XX_GPHDAT_MASK 0x000007FF - /* RTC */ #define S3C24XX_BASE_RTC 0x57000040 -#define S3C24XX_RTCCON (0x00 / 4) // RTC Control -#define S3C24XX_TICNT (0x04 / 4) // Tick Time count -#define S3C24XX_RTCALM (0x10 / 4) // RTC Alarm Control -#define S3C24XX_ALMSEC (0x14 / 4) // Alarm Second -#define S3C24XX_ALMMIN (0x18 / 4) // Alarm Minute -#define S3C24XX_ALMHOUR (0x1C / 4) // Alarm Hour -#define S3C24XX_ALMDAY (0x20 / 4) // Alarm Day -#define S3C24XX_ALMMON (0x24 / 4) // Alarm Month -#define S3C24XX_ALMYEAR (0x28 / 4) // Alarm Year -#define S3C24XX_RTCRST (0x2C / 4) // RTC Round Reset -#define S3C24XX_BCDSEC (0x30 / 4) // BCD Second -#define S3C24XX_BCDMIN (0x34 / 4) // BCD Minute -#define S3C24XX_BCDHOUR (0x38 / 4) // BCD Hour -#define S3C24XX_BCDDAY (0x3C / 4) // BCD Day -#define S3C24XX_BCDDOW (0x40 / 4) // BCD Day of Week -#define S3C24XX_BCDMON (0x44 / 4) // BCD Month -#define S3C24XX_BCDYEAR (0x48 / 4) // BCD Year - /* A/D Converter */ #define S3C24XX_BASE_ADC 0x58000000 -#define S3C24XX_ADCCON (0x00 / 4) // ADC Control -#define S3C24XX_ADCTSC (0x04 / 4) // ADC Touch Screen Control -#define S3C24XX_ADCDLY (0x08 / 4) // ADC Start or Interval Delay -#define S3C24XX_ADCDAT0 (0x0C / 4) // ADC Conversion Data -#define S3C24XX_ADCDAT1 (0x10 / 4) // ADC Conversion Data - /* SPI */ #define S3C24XX_BASE_SPI_0 0x59000000 #define S3C24XX_BASE_SPI_1 0x59000020 -#define S3C24XX_SPCON (0x00 / 4) // SPI Control -#define S3C24XX_SPSTA (0x04 / 4) // SPI Status -#define S3C24XX_SPPIN (0x08 / 4) // SPI Pin Control -#define S3C24XX_SPPRE (0x0C / 4) // SPI Baud Rate Prescaler -#define S3C24XX_SPTDAT (0x10 / 4) // SPI Tx Data -#define S3C24XX_SPRDAT (0x14 / 4) // SPI Rx Data - /* SD Interface */ #define S3C24XX_BASE_SDI 0x5A000000 /* ... */ -#define S3C24XX_INT_ADC 31 -#define S3C24XX_INT_RTC 30 -#define S3C24XX_INT_SPI1 29 -#define S3C24XX_INT_UART0 28 -#define S3C24XX_INT_IIC 27 -#define S3C24XX_INT_USBH 26 -#define S3C24XX_INT_USBD 25 -#define S3C24XX_INT_24 24 -#define S3C24XX_INT_UART1 23 -#define S3C24XX_INT_SPI0 22 -#define S3C24XX_INT_SDI 21 -#define S3C24XX_INT_DMA3 20 -#define S3C24XX_INT_DMA2 19 -#define S3C24XX_INT_DMA1 18 -#define S3C24XX_INT_DMA0 17 -#define S3C24XX_INT_LCD 16 -#define S3C24XX_INT_UART2 15 -#define S3C24XX_INT_TIMER4 14 -#define S3C24XX_INT_TIMER3 13 -#define S3C24XX_INT_TIMER2 12 -#define S3C24XX_INT_TIMER1 11 -#define S3C24XX_INT_TIMER0 10 -#define S3C24XX_INT_WDT 9 -#define S3C24XX_INT_TICK 8 -#define S3C24XX_INT_BATT_FLT 7 -#define S3C24XX_INT_6 6 -#define S3C24XX_INT_EINT8_23 5 -#define S3C24XX_INT_EINT4_7 4 -#define S3C24XX_INT_EINT3 3 -#define S3C24XX_INT_EINT2 2 -#define S3C24XX_INT_EINT1 1 -#define S3C24XX_INT_EINT0 0 - -#define S3C24XX_SUBINT_ADC 10 -#define S3C24XX_SUBINT_TC 9 -#define S3C24XX_SUBINT_ERR2 8 -#define S3C24XX_SUBINT_TXD2 7 -#define S3C24XX_SUBINT_RXD2 6 -#define S3C24XX_SUBINT_ERR1 5 -#define S3C24XX_SUBINT_TXD1 4 -#define S3C24XX_SUBINT_RXD1 3 -#define S3C24XX_SUBINT_ERR0 2 -#define S3C24XX_SUBINT_TXD0 1 -#define S3C24XX_SUBINT_RXD0 0 - -static const uint32_t MAP_SUBINT_TO_INT[11] = -{ - S3C24XX_INT_UART0, S3C24XX_INT_UART0, S3C24XX_INT_UART0, - S3C24XX_INT_UART1, S3C24XX_INT_UART1, S3C24XX_INT_UART1, - S3C24XX_INT_UART2, S3C24XX_INT_UART2, S3C24XX_INT_UART2, - S3C24XX_INT_ADC, S3C24XX_INT_ADC -}; - -#define S3C24XX_BPPMODE_STN_01 0x00 -#define S3C24XX_BPPMODE_STN_02 0x01 -#define S3C24XX_BPPMODE_STN_04 0x02 -#define S3C24XX_BPPMODE_STN_08 0x03 -#define S3C24XX_BPPMODE_STN_12_P 0x04 -#define S3C24XX_BPPMODE_STN_12_U 0x05 -#define S3C24XX_BPPMODE_STN_16 0x06 -#define S3C24XX_BPPMODE_TFT_01 0x08 -#define S3C24XX_BPPMODE_TFT_02 0x09 -#define S3C24XX_BPPMODE_TFT_04 0x0A -#define S3C24XX_BPPMODE_TFT_08 0x0B -#define S3C24XX_BPPMODE_TFT_16 0x0C -#define S3C24XX_BPPMODE_TFT_24 0x0D - -#define S3C24XX_PNRMODE_STN_04_DS 0 -#define S3C24XX_PNRMODE_STN_04_SS 1 -#define S3C24XX_PNRMODE_STN_08_SS 2 -#define S3C24XX_PNRMODE_TFT 3 - -#define S3C24XX_GPIO_PORT_A S3C2410_GPIO_PORT_A -#define S3C24XX_GPIO_PORT_B S3C2410_GPIO_PORT_B -#define S3C24XX_GPIO_PORT_C S3C2410_GPIO_PORT_C -#define S3C24XX_GPIO_PORT_D S3C2410_GPIO_PORT_D -#define S3C24XX_GPIO_PORT_E S3C2410_GPIO_PORT_E -#define S3C24XX_GPIO_PORT_F S3C2410_GPIO_PORT_F -#define S3C24XX_GPIO_PORT_G S3C2410_GPIO_PORT_G -#define S3C24XX_GPIO_PORT_H S3C2410_GPIO_PORT_H - -#define S3C24XX_CORE_PIN_NCON S3C2410_CORE_PIN_NCON -#define S3C24XX_CORE_PIN_OM0 S3C2410_CORE_PIN_OM0 -#define S3C24XX_CORE_PIN_OM1 S3C2410_CORE_PIN_OM1 - -#define S3C24XX_UART_COUNT 3 -#define S3C24XX_DMA_COUNT 4 -#define S3C24XX_SPI_COUNT 2 - -class s3c2410_device : public device_t +class s3c2410_device : public device_t, protected s3c24xx_peripheral_types { public: s3c2410_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); @@ -443,31 +189,35 @@ public: // static configuration static void static_set_palette_tag(device_t &device, const char *tag); - template static devcb_base &set_core_pin_r_callback(device_t &device, _Object object) { return downcast(device).m_pin_r_cb.set_callback(object); } - template static devcb_base &set_core_pin_w_callback(device_t &device, _Object object) { return downcast(device).m_pin_w_cb.set_callback(object); } - template static devcb_base &set_gpio_port_r_callback(device_t &device, _Object object) { return downcast(device).m_port_r_cb.set_callback(object); } - template static devcb_base &set_gpio_port_w_callback(device_t &device, _Object object) { return downcast(device).m_port_w_cb.set_callback(object); } - template static devcb_base &set_i2c_scl_w_callback(device_t &device, _Object object) { return downcast(device).m_scl_w_cb.set_callback(object); } - template static devcb_base &set_i2c_sda_r_callback(device_t &device, _Object object) { return downcast(device).m_sda_r_cb.set_callback(object); } - template static devcb_base &set_i2c_sda_w_callback(device_t &device, _Object object) { return downcast(device).m_sda_w_cb.set_callback(object); } - template static devcb_base &set_adc_data_r_callback(device_t &device, _Object object) { return downcast(device).m_data_r_cb.set_callback(object); } - template static devcb_base &set_i2s_data_w_callback(device_t &device, _Object object) { return downcast(device).m_data_w_cb.set_callback(object); } - template static devcb_base &set_nand_command_w_callback(device_t &device, _Object object) { return downcast(device).m_command_w_cb.set_callback(object); } - template static devcb_base &set_nand_address_w_callback(device_t &device, _Object object) { return downcast(device).m_address_w_cb.set_callback(object); } - template static devcb_base &set_nand_data_r_callback(device_t &device, _Object object) { return downcast(device).m_nand_data_r_cb.set_callback(object); } - template static devcb_base &set_nand_data_w_callback(device_t &device, _Object object) { return downcast(device).m_nand_data_w_cb.set_callback(object); } + template static devcb_base &set_core_pin_r_callback(device_t &device, Object &&cb) { return downcast(device).m_pin_r_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_core_pin_w_callback(device_t &device, Object &&cb) { return downcast(device).m_pin_w_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_gpio_port_r_callback(device_t &device, Object &&cb) { return downcast(device).m_port_r_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_gpio_port_w_callback(device_t &device, Object &&cb) { return downcast(device).m_port_w_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_i2c_scl_w_callback(device_t &device, Object &&cb) { return downcast(device).m_scl_w_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_i2c_sda_r_callback(device_t &device, Object &&cb) { return downcast(device).m_sda_r_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_i2c_sda_w_callback(device_t &device, Object &&cb) { return downcast(device).m_sda_w_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_adc_data_r_callback(device_t &device, Object &&cb) { return downcast(device).m_data_r_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_i2s_data_w_callback(device_t &device, Object &&cb) { return downcast(device).m_data_w_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_nand_command_w_callback(device_t &device, Object &&cb) { return downcast(device).m_command_w_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_nand_address_w_callback(device_t &device, Object &&cb) { return downcast(device).m_address_w_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_nand_data_r_callback(device_t &device, Object &&cb) { return downcast(device).m_nand_data_r_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_nand_data_w_callback(device_t &device, Object &&cb) { return downcast(device).m_nand_data_w_cb.set_callback(std::forward(cb)); } static void set_lcd_flags(device_t &device, int flags) { downcast(device).m_flags = flags; } DECLARE_WRITE_LINE_MEMBER( frnb_w ); + READ32_MEMBER( s3c24xx_lcd_r ); + + uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); + + void s3c2410_touch_screen(int state); + void s3c2410_request_eint(uint32_t number); + void s3c2410_nand_calculate_mecc(uint8_t *data, uint32_t size, uint8_t *mecc); + +protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; -private: - // internal state - required_device m_palette; -public: - uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); void s3c24xx_reset(); inline int iface_core_pin_r(int pin); @@ -500,7 +250,6 @@ public: void s3c24xx_video_start(); void bitmap_blend( bitmap_rgb32 &bitmap_dst, bitmap_rgb32 &bitmap_src_1, bitmap_rgb32 &bitmap_src_2); uint32_t s3c24xx_video_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); - READ32_MEMBER( s3c24xx_lcd_r ); int s3c24xx_lcd_configure_tft(); int s3c24xx_lcd_configure_stn(); int s3c24xx_lcd_configure(); @@ -525,8 +274,6 @@ public: void s3c24xx_request_eint(uint32_t number); READ32_MEMBER( s3c24xx_irq_r ); WRITE32_MEMBER( s3c24xx_irq_w ); - void s3c24xx_pwm_reset(); - uint16_t s3c24xx_pwm_calc_observation(int ch); READ32_MEMBER( s3c24xx_pwm_r ); void s3c24xx_pwm_start(int timer); void s3c24xx_pwm_stop(int timer); @@ -558,13 +305,10 @@ public: uint16_t s3c24xx_gpio_get_mask( uint32_t con, int val); READ32_MEMBER( s3c24xx_gpio_r ); WRITE32_MEMBER( s3c24xx_gpio_w ); - void s3c24xx_memcon_reset(); READ32_MEMBER( s3c24xx_memcon_r ); WRITE32_MEMBER( s3c24xx_memcon_w ); - void s3c24xx_usb_host_reset(); READ32_MEMBER( s3c24xx_usb_host_r ); WRITE32_MEMBER( s3c24xx_usb_host_w ); - void s3c24xx_uart_reset(); uint32_t s3c24xx_uart_r(uint32_t ch, uint32_t offset); void s3c24xx_uart_w(uint32_t ch, uint32_t offset, uint32_t data, uint32_t mem_mask); READ32_MEMBER( s3c24xx_uart_0_r ); @@ -577,8 +321,6 @@ public: void s3c24xx_usb_device_reset(); READ32_MEMBER( s3c24xx_usb_device_r ); WRITE32_MEMBER( s3c24xx_usb_device_w ); - void s3c24xx_wdt_reset(); - uint16_t s3c24xx_wdt_calc_current_count(); READ32_MEMBER( s3c24xx_wdt_r ); void s3c24xx_wdt_start(); void s3c24xx_wdt_stop(); @@ -599,7 +341,6 @@ public: READ32_MEMBER( s3c24xx_iic_r ); WRITE32_MEMBER( s3c24xx_iic_w ); TIMER_CALLBACK_MEMBER( s3c24xx_iic_timer_exp ); - void s3c24xx_iis_reset(); inline void iface_i2s_data_w(int ch, uint16_t data); void s3c24xx_iis_start(); void s3c24xx_iis_stop(); @@ -607,9 +348,7 @@ public: READ32_MEMBER( s3c24xx_iis_r ); WRITE32_MEMBER( s3c24xx_iis_w ); TIMER_CALLBACK_MEMBER( s3c24xx_iis_timer_exp ); - void s3c24xx_rtc_reset(); READ32_MEMBER( s3c24xx_rtc_r ); - void s3c24xx_rtc_recalc(); WRITE32_MEMBER( s3c24xx_rtc_w ); TIMER_CALLBACK_MEMBER( s3c24xx_rtc_timer_tick_count_exp ); void s3c24xx_rtc_update(); @@ -651,25 +390,17 @@ public: void s3c24xx_device_start(); void s3c2410_uart_fifo_w( int uart, uint8_t data); - void s3c2410_touch_screen( int state); - void s3c2410_request_eint( uint32_t number); - void s3c2410_nand_calculate_mecc( uint8_t *data, uint32_t size, uint8_t *mecc); + +private: + static constexpr unsigned UART_COUNT = 3; + static constexpr unsigned DMA_COUNT = 4; + static constexpr unsigned SPI_COUNT = 2; /******************************************************************************* TYPE DEFINITIONS *******************************************************************************/ - struct s3c24xx_memcon_regs_t - { - uint32_t data[0x34/4]; - }; - - struct s3c24xx_usbhost_regs_t - { - uint32_t data[0x5C/4]; - }; - - struct s3c24xx_irq_regs_t + struct irq_regs_t { uint32_t srcpnd; uint32_t intmod; @@ -681,7 +412,7 @@ public: uint32_t intsubmsk; }; - struct s3c24xx_dma_regs_t + struct dma_regs_t { uint32_t disrc; uint32_t disrcc; @@ -694,7 +425,7 @@ public: uint32_t dmasktrig; }; - struct s3c24xx_clkpow_regs_t + struct clkpow_regs_t { uint32_t locktime; uint32_t mpllcon; @@ -704,7 +435,7 @@ public: uint32_t clkdivn; }; - struct s3c24xx_lcd_regs_t + struct lcd_regs_t { uint32_t lcdcon1; uint32_t lcdcon2; @@ -726,12 +457,7 @@ public: uint32_t lpcsel; }; - struct s3c24xx_lcdpal_regs_t - { - uint32_t data[0x400/4]; - }; - - struct s3c24xx_nand_regs_t + struct nand_regs_t { uint32_t nfconf; uint32_t nfcmd; @@ -741,55 +467,12 @@ public: uint32_t nfecc; }; - struct s3c24xx_uart_regs_t - { - uint32_t ulcon; - uint32_t ucon; - uint32_t ufcon; - uint32_t umcon; - uint32_t utrstat; - uint32_t uerstat; - uint32_t ufstat; - uint32_t umstat; - uint32_t utxh; - uint32_t urxh; - uint32_t ubrdiv; - }; - - struct s3c24xx_pwm_regs_t - { - uint32_t tcfg0; - uint32_t tcfg1; - uint32_t tcon; - uint32_t tcntb0; - uint32_t tcmpb0; - uint32_t tcnto0; - uint32_t tcntb1; - uint32_t tcmpb1; - uint32_t tcnto1; - uint32_t tcntb2; - uint32_t tcmpb2; - uint32_t tcnto2; - uint32_t tcntb3; - uint32_t tcmpb3; - uint32_t tcnto3; - uint32_t tcntb4; - uint32_t tcnto4; - }; - - struct s3c24xx_usbdev_regs_t + struct usbdev_regs_t { uint32_t data[0x130/4]; }; - struct s3c24xx_wdt_regs_t - { - uint32_t wtcon; - uint32_t wtdat; - uint32_t wtcnt; - }; - - struct s3c24xx_iic_regs_t + struct iic_regs_t { uint32_t iiccon; uint32_t iicstat; @@ -797,16 +480,7 @@ public: uint32_t iicds; }; - struct s3c24xx_iis_regs_t - { - uint32_t iiscon; - uint32_t iismod; - uint32_t iispsr; - uint32_t iisfcon; - uint32_t iisfifo; - }; - - struct s3c24xx_gpio_regs_t + struct gpio_regs_t { uint32_t gpacon; uint32_t gpadat; @@ -858,29 +532,7 @@ public: uint32_t gstatus4; }; - struct s3c24xx_rtc_regs_t - { - uint32_t rtccon; - uint32_t ticnt; - uint32_t reserved[2]; - uint32_t rtcalm; - uint32_t almsec; - uint32_t almmin; - uint32_t almhour; - uint32_t almday; - uint32_t almmon; - uint32_t almyear; - uint32_t rtcrst; - uint32_t bcdsec; - uint32_t bcdmin; - uint32_t bcdhour; - uint32_t bcdday; - uint32_t bcddow; - uint32_t bcdmon; - uint32_t bcdyear; - }; - - struct s3c24xx_adc_regs_t + struct adc_regs_t { uint32_t adccon; uint32_t adctsc; @@ -889,51 +541,27 @@ public: uint32_t adcdat1; }; - struct s3c24xx_spi_regs_t - { - uint32_t spcon; - uint32_t spsta; - uint32_t sppin; - uint32_t sppre; - uint32_t sptdat; - uint32_t sprdat; - }; - - struct s3c24xx_sdi_regs_t - { - uint32_t data[0x44/4]; - }; - - struct s3c24xx_memcon_t - { - s3c24xx_memcon_regs_t regs; - }; - - struct s3c24xx_usbhost_t - { - s3c24xx_usbhost_regs_t regs; - }; - struct s3c24xx_irq_t + struct irq_t { - s3c24xx_irq_regs_t regs; + irq_regs_t regs; int line_irq, line_fiq; }; - struct s3c24xx_dma_t + struct dma_t { - s3c24xx_dma_regs_t regs; + dma_regs_t regs; emu_timer *timer; }; - struct s3c24xx_clkpow_t + struct clkpow_t { - s3c24xx_clkpow_regs_t regs; + clkpow_regs_t regs; }; - struct s3c24xx_lcd_t + struct lcd_t { - s3c24xx_lcd_regs_t regs; + lcd_regs_t regs; emu_timer *timer; std::unique_ptr bitmap[2]; uint32_t vramaddr_cur; @@ -950,106 +578,58 @@ public: uint32_t dma_data, dma_bits; }; - struct s3c24xx_lcdpal_t - { - s3c24xx_lcdpal_regs_t regs; - }; - - struct s3c24xx_nand_t + struct nand_t { - s3c24xx_nand_regs_t regs; + nand_regs_t regs; uint8_t mecc[3]; int ecc_pos, data_count; }; - struct s3c24xx_uart_t + struct usbdev_t { - s3c24xx_uart_regs_t regs; + usbdev_regs_t regs; }; - struct s3c24xx_pwm_t + struct iic_t { - s3c24xx_pwm_regs_t regs; - emu_timer *timer[5]; - uint32_t cnt[5]; - uint32_t cmp[5]; - uint32_t freq[5]; - }; - - struct s3c24xx_usbdev_t - { - s3c24xx_usbdev_regs_t regs; - }; - - struct s3c24xx_wdt_t - { - s3c24xx_wdt_regs_t regs; - emu_timer *timer; - uint32_t freq, cnt; - }; - - struct s3c24xx_iic_t - { - s3c24xx_iic_regs_t regs; + iic_regs_t regs; emu_timer *timer; int count; }; - struct s3c24xx_iis_t - { - s3c24xx_iis_regs_t regs; - emu_timer *timer; - uint16_t fifo[16/2]; - int fifo_index; - }; - - struct s3c24xx_gpio_t + struct gpio_t { - s3c24xx_gpio_regs_t regs; + gpio_regs_t regs; }; - struct s3c24xx_rtc_t + struct adc_t { - s3c24xx_rtc_regs_t regs; - emu_timer *timer_tick_count; - emu_timer *timer_update; + adc_regs_t regs; }; - struct s3c24xx_adc_t - { - s3c24xx_adc_regs_t regs; - }; - - struct s3c24xx_spi_t - { - s3c24xx_spi_regs_t regs; - }; - - struct s3c24xx_sdi_t - { - s3c24xx_sdi_regs_t regs; - }; + // internal state + required_device m_palette; uint8_t m_steppingstone[4*1024]; - s3c24xx_memcon_t m_memcon; - s3c24xx_usbhost_t m_usbhost; - s3c24xx_irq_t m_irq; - s3c24xx_dma_t m_dma[S3C24XX_DMA_COUNT]; - s3c24xx_clkpow_t m_clkpow; - s3c24xx_lcd_t m_lcd; - s3c24xx_lcdpal_t m_lcdpal; - s3c24xx_nand_t m_nand; - s3c24xx_uart_t m_uart[S3C24XX_UART_COUNT]; - s3c24xx_pwm_t m_pwm; - s3c24xx_usbdev_t m_usbdev; - s3c24xx_wdt_t m_wdt; - s3c24xx_iic_t m_iic; - s3c24xx_iis_t m_iis; - s3c24xx_gpio_t m_gpio; - s3c24xx_rtc_t m_rtc; - s3c24xx_adc_t m_adc; - s3c24xx_spi_t m_spi[S3C24XX_SPI_COUNT]; - s3c24xx_sdi_t m_sdi; + memcon_t m_memcon; + usbhost_t m_usbhost; + irq_t m_irq; + dma_t m_dma[DMA_COUNT]; + clkpow_t m_clkpow; + lcd_t m_lcd; + lcdpal_t m_lcdpal; + nand_t m_nand; + uart_t m_uart[UART_COUNT]; + pwm_t m_pwm; + usbdev_t m_usbdev; + wdt_t m_wdt; + iic_t m_iic; + iis_t m_iis; + gpio_t m_gpio; + rtc_t m_rtc; + adc_t m_adc; + spi_t m_spi[SPI_COUNT]; + sdi_t m_sdi; required_device m_cpu; devcb_read32 m_pin_r_cb; devcb_write32 m_pin_w_cb; @@ -1067,7 +647,6 @@ public: int m_flags; }; -extern const device_type S3C2410; - +DECLARE_DEVICE_TYPE(S3C2410, s3c2410_device) -#endif +#endif // MAME_MACHINE_S3C2410_H diff --git a/src/devices/machine/s3c2440.cpp b/src/devices/machine/s3c2440.cpp index 43c145bf544..bf707ea50cd 100644 --- a/src/devices/machine/s3c2440.cpp +++ b/src/devices/machine/s3c2440.cpp @@ -16,6 +16,211 @@ #include "screen.h" +#define S3C24XX_SRCPND (0x00 / 4) // Interrupt Request Status +#define S3C24XX_INTMOD (0x04 / 4) // Interrupt Mode Control +#define S3C24XX_INTMSK (0x08 / 4) // Interrupt Mask Control +#define S3C24XX_PRIORITY (0x0C / 4) // IRQ Priority Control +#define S3C24XX_INTPND (0x10 / 4) // Interrupt Request Status +#define S3C24XX_INTOFFSET (0x14 / 4) // Interrupt Request Source Offset +#define S3C24XX_SUBSRCPND (0x18 / 4) // Sub Source Pending +#define S3C24XX_INTSUBMSK (0x1C / 4) // Interrupt Sub Mask + +#define S3C24XX_DISRC (0x00 / 4) // DMA Initial Source +#define S3C24XX_DISRCC (0x04 / 4) // DMA Initial Source Control +#define S3C24XX_DIDST (0x08 / 4) // DMA Initial Destination +#define S3C24XX_DIDSTC (0x0C / 4) // DMA Initial Destination Control +#define S3C24XX_DCON (0x10 / 4) // DMA Control +#define S3C24XX_DSTAT (0x14 / 4) // DMA Count +#define S3C24XX_DCSRC (0x18 / 4) // DMA Current Source +#define S3C24XX_DCDST (0x1C / 4) // DMA Current Destination +#define S3C24XX_DMASKTRIG (0x20 / 4) // DMA Mask Trigger + +#define S3C24XX_LOCKTIME (0x00 / 4) // PLL Lock Time Counter +#define S3C24XX_MPLLCON (0x04 / 4) // MPLL Control +#define S3C24XX_UPLLCON (0x08 / 4) // UPLL Control +#define S3C24XX_CLKCON (0x0C / 4) // Clock Generator Control +#define S3C24XX_CLKSLOW (0x10 / 4) // Slow Clock Control +#define S3C24XX_CLKDIVN (0x14 / 4) // Clock Divider Control +#define S3C24XX_CAMDIVN (0x18 / 4) // Camera Clock Divider Control + +#define S3C24XX_LCDCON1 (0x00 / 4) // LCD Control 1 +#define S3C24XX_LCDCON2 (0x04 / 4) // LCD Control 2 +#define S3C24XX_LCDCON3 (0x08 / 4) // LCD Control 3 +#define S3C24XX_LCDCON4 (0x0C / 4) // LCD Control 4 +#define S3C24XX_LCDCON5 (0x10 / 4) // LCD Control 5 +#define S3C24XX_LCDSADDR1 (0x14 / 4) // STN/TFT: Frame Buffer Start Address 1 +#define S3C24XX_LCDSADDR2 (0x18 / 4) // STN/TFT: Frame Buffer Start Address 2 +#define S3C24XX_LCDSADDR3 (0x1C / 4) // STN/TFT: Virtual Screen Address Set +#define S3C24XX_REDLUT (0x20 / 4) // STN: Red Lookup Table +#define S3C24XX_GREENLUT (0x24 / 4) // STN: Green Lookup Table +#define S3C24XX_BLUELUT (0x28 / 4) // STN: Blue Lookup Table +#define S3C24XX_DITHMODE (0x4C / 4) // STN: Dithering Mode +#define S3C24XX_TPAL (0x50 / 4) // TFT: Temporary Palette +#define S3C24XX_LCDINTPND (0x54 / 4) // LCD Interrupt Pending +#define S3C24XX_LCDSRCPND (0x58 / 4) // LCD Interrupt Source +#define S3C24XX_LCDINTMSK (0x5C / 4) // LCD Interrupt Mask +#define S3C24XX_TCONSEL (0x60 / 4) // TCON (LPC3600/LCC3600) Control + +#define S3C24XX_IICCON (0x00 / 4) // IIC Control +#define S3C24XX_IICSTAT (0x04 / 4) // IIC Status +#define S3C24XX_IICADD (0x08 / 4) // IIC Address +#define S3C24XX_IICDS (0x0C / 4) // IIC Data Shift +#define S3C24XX_IICLC (0x10 / 4) // IIC Multi-Master Line Control + +#define S3C24XX_GPACON (0x00 / 4) // Port A Control +#define S3C24XX_GPADAT (0x04 / 4) // Port A Data +#define S3C24XX_GPBCON (0x10 / 4) // Port B Control +#define S3C24XX_GPBDAT (0x14 / 4) // Port B Data +#define S3C24XX_GPBUP (0x18 / 4) // Pull-up Control B +#define S3C24XX_GPCCON (0x20 / 4) // Port C Control +#define S3C24XX_GPCDAT (0x24 / 4) // Port C Data +#define S3C24XX_GPCUP (0x28 / 4) // Pull-up Control C +#define S3C24XX_GPDCON (0x30 / 4) // Port D Control +#define S3C24XX_GPDDAT (0x34 / 4) // Port D Data +#define S3C24XX_GPDUP (0x38 / 4) // Pull-up Control D +#define S3C24XX_GPECON (0x40 / 4) // Port E Control +#define S3C24XX_GPEDAT (0x44 / 4) // Port E Data +#define S3C24XX_GPEUP (0x48 / 4) // Pull-up Control E +#define S3C24XX_GPFCON (0x50 / 4) // Port F Control +#define S3C24XX_GPFDAT (0x54 / 4) // Port F Data +#define S3C24XX_GPFUP (0x58 / 4) // Pull-up Control F +#define S3C24XX_GPGCON (0x60 / 4) // Port G Control +#define S3C24XX_GPGDAT (0x64 / 4) // Port G Data +#define S3C24XX_GPGUP (0x68 / 4) // Pull-up Control G +#define S3C24XX_GPHCON (0x70 / 4) // Port H Control +#define S3C24XX_GPHDAT (0x74 / 4) // Port H Data +#define S3C24XX_GPHUP (0x78 / 4) // Pull-up Control H +#define S3C24XX_MISCCR (0x80 / 4) // Miscellaneous Control +#define S3C24XX_DCLKCON (0x84 / 4) // DCLK0/1 Control +#define S3C24XX_EXTINT0 (0x88 / 4) // External Interrupt Control Register 0 +#define S3C24XX_EXTINT1 (0x8C / 4) // External Interrupt Control Register 1 +#define S3C24XX_EXTINT2 (0x90 / 4) // External Interrupt Control Register 2 +#define S3C24XX_EINTFLT0 (0x94 / 4) // Reserved +#define S3C24XX_EINTFLT1 (0x98 / 4) // Reserved +#define S3C24XX_EINTFLT2 (0x9C / 4) // External Interrupt Filter Control Register 2 +#define S3C24XX_EINTFLT3 (0xA0 / 4) // External Interrupt Filter Control Register 3 +#define S3C24XX_EINTMASK (0xA4 / 4) // External Interrupt Mask +#define S3C24XX_EINTPEND (0xA8 / 4) // External Interrupt Pending +#define S3C24XX_GSTATUS0 (0xAC / 4) // External Pin Status +#define S3C24XX_GSTATUS1 (0xB0 / 4) // Chip ID +#define S3C24XX_GSTATUS2 (0xB4 / 4) // Reset Status +#define S3C24XX_GSTATUS3 (0xB8 / 4) // Inform Register +#define S3C24XX_GSTATUS4 (0xBC / 4) // Inform Register +#define S3C24XX_MSLCON (0xCC / 4) // Memory Sleep Control Register +#define S3C24XX_GPJCON (0xD0 / 4) // Port J Control +#define S3C24XX_GPJDAT (0xD4 / 4) // Port J Data +#define S3C24XX_GPJUP (0xD8 / 4) // Pull-up Control J + +#define S3C24XX_GPADAT_MASK 0x01FFFFFF +#define S3C24XX_GPBDAT_MASK 0x000007FF +#define S3C24XX_GPCDAT_MASK 0x0000FFFF +#define S3C24XX_GPDDAT_MASK 0x0000FFFF +#define S3C24XX_GPEDAT_MASK 0x0000FFFF +#define S3C24XX_GPFDAT_MASK 0x000000FF +#define S3C24XX_GPGDAT_MASK 0x0000FFFF +#define S3C24XX_GPHDAT_MASK 0x000007FF +#define S3C24XX_GPJDAT_MASK 0x0000FFFF + +#define S3C24XX_ADCCON (0x00 / 4) // ADC Control +#define S3C24XX_ADCTSC (0x04 / 4) // ADC Touch Screen Control +#define S3C24XX_ADCDLY (0x08 / 4) // ADC Start or Interval Delay +#define S3C24XX_ADCDAT0 (0x0C / 4) // ADC Conversion Data +#define S3C24XX_ADCDAT1 (0x10 / 4) // ADC Conversion Data +#define S3C24XX_ADCUPDN (0x14 / 4) // Stylus up or down interrupt status + +#define S3C24XX_INT_ADC 31 +#define S3C24XX_INT_RTC 30 +#define S3C24XX_INT_SPI1 29 +#define S3C24XX_INT_UART0 28 +#define S3C24XX_INT_IIC 27 +#define S3C24XX_INT_USBH 26 +#define S3C24XX_INT_USBD 25 +#define S3C24XX_INT_NFCON 24 +#define S3C24XX_INT_UART1 23 +#define S3C24XX_INT_SPI0 22 +#define S3C24XX_INT_SDI 21 +#define S3C24XX_INT_DMA3 20 +#define S3C24XX_INT_DMA2 19 +#define S3C24XX_INT_DMA1 18 +#define S3C24XX_INT_DMA0 17 +#define S3C24XX_INT_LCD 16 +#define S3C24XX_INT_UART2 15 +#define S3C24XX_INT_TIMER4 14 +#define S3C24XX_INT_TIMER3 13 +#define S3C24XX_INT_TIMER2 12 +#define S3C24XX_INT_TIMER1 11 +#define S3C24XX_INT_TIMER0 10 +#define S3C24XX_INT_WDT_AC97 9 +#define S3C24XX_INT_TICK 8 +#define S3C24XX_INT_BATT_FLT 7 +#define S3C24XX_INT_CAM 6 +#define S3C24XX_INT_EINT8_23 5 +#define S3C24XX_INT_EINT4_7 4 +#define S3C24XX_INT_EINT3 3 +#define S3C24XX_INT_EINT2 2 +#define S3C24XX_INT_EINT1 1 +#define S3C24XX_INT_EINT0 0 + +#define S3C24XX_SUBINT_AC97 14 +#define S3C24XX_SUBINT_WDT 13 +#define S3C24XX_SUBINT_CAM_P 12 +#define S3C24XX_SUBINT_CAM_C 11 +#define S3C24XX_SUBINT_ADC 10 +#define S3C24XX_SUBINT_TC 9 +#define S3C24XX_SUBINT_ERR2 8 +#define S3C24XX_SUBINT_TXD2 7 +#define S3C24XX_SUBINT_RXD2 6 +#define S3C24XX_SUBINT_ERR1 5 +#define S3C24XX_SUBINT_TXD1 4 +#define S3C24XX_SUBINT_RXD1 3 +#define S3C24XX_SUBINT_ERR0 2 +#define S3C24XX_SUBINT_TXD0 1 +#define S3C24XX_SUBINT_RXD0 0 + +static const uint32_t MAP_SUBINT_TO_INT[15] = +{ + S3C24XX_INT_UART0, S3C24XX_INT_UART0, S3C24XX_INT_UART0, + S3C24XX_INT_UART1, S3C24XX_INT_UART1, S3C24XX_INT_UART1, + S3C24XX_INT_UART2, S3C24XX_INT_UART2, S3C24XX_INT_UART2, + S3C24XX_INT_ADC, S3C24XX_INT_ADC, + S3C24XX_INT_CAM, S3C24XX_INT_CAM, + S3C24XX_INT_WDT_AC97, S3C24XX_INT_WDT_AC97 +}; + +#define S3C24XX_BPPMODE_STN_01 0x00 +#define S3C24XX_BPPMODE_STN_02 0x01 +#define S3C24XX_BPPMODE_STN_04 0x02 +#define S3C24XX_BPPMODE_STN_08 0x03 +#define S3C24XX_BPPMODE_STN_12_P 0x04 +#define S3C24XX_BPPMODE_STN_12_U 0x05 +#define S3C24XX_BPPMODE_STN_16 0x06 +#define S3C24XX_BPPMODE_TFT_01 0x08 +#define S3C24XX_BPPMODE_TFT_02 0x09 +#define S3C24XX_BPPMODE_TFT_04 0x0A +#define S3C24XX_BPPMODE_TFT_08 0x0B +#define S3C24XX_BPPMODE_TFT_16 0x0C +#define S3C24XX_BPPMODE_TFT_24 0x0D + +#define S3C24XX_PNRMODE_STN_04_DS 0 +#define S3C24XX_PNRMODE_STN_04_SS 1 +#define S3C24XX_PNRMODE_STN_08_SS 2 +#define S3C24XX_PNRMODE_TFT 3 + +#define S3C24XX_GPIO_PORT_A S3C2440_GPIO_PORT_A +#define S3C24XX_GPIO_PORT_B S3C2440_GPIO_PORT_B +#define S3C24XX_GPIO_PORT_C S3C2440_GPIO_PORT_C +#define S3C24XX_GPIO_PORT_D S3C2440_GPIO_PORT_D +#define S3C24XX_GPIO_PORT_E S3C2440_GPIO_PORT_E +#define S3C24XX_GPIO_PORT_F S3C2440_GPIO_PORT_F +#define S3C24XX_GPIO_PORT_G S3C2440_GPIO_PORT_G +#define S3C24XX_GPIO_PORT_H S3C2440_GPIO_PORT_H +#define S3C24XX_GPIO_PORT_J S3C2440_GPIO_PORT_J + +#define S3C24XX_CORE_PIN_NCON S3C2440_CORE_PIN_NCON +#define S3C24XX_CORE_PIN_OM0 S3C2440_CORE_PIN_OM0 +#define S3C24XX_CORE_PIN_OM1 S3C2440_CORE_PIN_OM1 + + #define VERBOSE_LEVEL ( 0 ) static inline void ATTR_PRINTF(3,4) verboselog( device_t &device, int n_level, const char *s_fmt, ...) @@ -41,26 +246,26 @@ uint32_t s3c2440_device::screen_update(screen_device &screen, bitmap_rgb32 &bitm return s3c24xx_video_update( screen, bitmap, cliprect); } -const device_type S3C2440 = device_creator; +DEFINE_DEVICE_TYPE(S3C2440, s3c2440_device, "s3c2440", "Samsung S3C2440 SoC") s3c2440_device::s3c2440_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, S3C2440, "Samsung S3C2440", tag, owner, clock, "s3c2440", __FILE__), - m_palette(*this, finder_base::DUMMY_TAG), - m_cpu(*this, ":maincpu"), - m_pin_r_cb(*this), - m_pin_w_cb(*this), - m_port_r_cb(*this), - m_port_w_cb(*this), - m_scl_w_cb(*this), - m_sda_r_cb(*this), - m_sda_w_cb(*this), - m_data_r_cb(*this), - m_data_w_cb(*this), - m_command_w_cb(*this), - m_address_w_cb(*this), - m_nand_data_r_cb(*this), - m_nand_data_w_cb(*this), - m_flags(0) + : device_t(mconfig, S3C2440, tag, owner, clock) + , m_palette(*this, finder_base::DUMMY_TAG) + , m_cpu(*this, ":maincpu") + , m_pin_r_cb(*this) + , m_pin_w_cb(*this) + , m_port_r_cb(*this) + , m_port_w_cb(*this) + , m_scl_w_cb(*this) + , m_sda_r_cb(*this) + , m_sda_w_cb(*this) + , m_data_r_cb(*this) + , m_data_w_cb(*this) + , m_command_w_cb(*this) + , m_address_w_cb(*this) + , m_nand_data_r_cb(*this) + , m_nand_data_w_cb(*this) + , m_flags(0) { memset(m_steppingstone, 0, sizeof(m_steppingstone)); memset(&m_memcon, 0, sizeof(m_memcon)); diff --git a/src/devices/machine/s3c2440.h b/src/devices/machine/s3c2440.h index 584c5f182f2..a90f4e96bed 100644 --- a/src/devices/machine/s3c2440.h +++ b/src/devices/machine/s3c2440.h @@ -6,8 +6,12 @@ *******************************************************************************/ -#ifndef __S3C2440_H__ -#define __S3C2440_H__ +#ifndef MAME_MACHINE_S3C2440_H +#define MAME_MACHINE_S3C2440_H + +#pragma once + +#include "s3c24xx.h" /******************************************************************************* MACROS / CONSTANTS @@ -100,15 +104,6 @@ enum #define S3C24XX_BASE_INT 0x4A000000 -#define S3C24XX_SRCPND (0x00 / 4) // Interrupt Request Status -#define S3C24XX_INTMOD (0x04 / 4) // Interrupt Mode Control -#define S3C24XX_INTMSK (0x08 / 4) // Interrupt Mask Control -#define S3C24XX_PRIORITY (0x0C / 4) // IRQ Priority Control -#define S3C24XX_INTPND (0x10 / 4) // Interrupt Request Status -#define S3C24XX_INTOFFSET (0x14 / 4) // Interrupt Request Source Offset -#define S3C24XX_SUBSRCPND (0x18 / 4) // Sub Source Pending -#define S3C24XX_INTSUBMSK (0x1C / 4) // Interrupt Sub Mask - /* DMA */ #define S3C24XX_BASE_DMA_0 0x4B000000 @@ -116,51 +111,15 @@ enum #define S3C24XX_BASE_DMA_2 0x4B000080 #define S3C24XX_BASE_DMA_3 0x4B0000C0 -#define S3C24XX_DISRC (0x00 / 4) // DMA Initial Source -#define S3C24XX_DISRCC (0x04 / 4) // DMA Initial Source Control -#define S3C24XX_DIDST (0x08 / 4) // DMA Initial Destination -#define S3C24XX_DIDSTC (0x0C / 4) // DMA Initial Destination Control -#define S3C24XX_DCON (0x10 / 4) // DMA Control -#define S3C24XX_DSTAT (0x14 / 4) // DMA Count -#define S3C24XX_DCSRC (0x18 / 4) // DMA Current Source -#define S3C24XX_DCDST (0x1C / 4) // DMA Current Destination -#define S3C24XX_DMASKTRIG (0x20 / 4) // DMA Mask Trigger - /* Clock & Power Management */ #define S3C24XX_BASE_CLKPOW 0x4C000000 -#define S3C24XX_LOCKTIME (0x00 / 4) // PLL Lock Time Counter -#define S3C24XX_MPLLCON (0x04 / 4) // MPLL Control -#define S3C24XX_UPLLCON (0x08 / 4) // UPLL Control -#define S3C24XX_CLKCON (0x0C / 4) // Clock Generator Control -#define S3C24XX_CLKSLOW (0x10 / 4) // Slow Clock Control -#define S3C24XX_CLKDIVN (0x14 / 4) // Clock Divider Control -#define S3C24XX_CAMDIVN (0x18 / 4) // Camera Clock Divider Control - /* LCD Controller */ #define S3C24XX_BASE_LCD 0x4D000000 #define S3C24XX_BASE_LCDPAL 0x4D000400 -#define S3C24XX_LCDCON1 (0x00 / 4) // LCD Control 1 -#define S3C24XX_LCDCON2 (0x04 / 4) // LCD Control 2 -#define S3C24XX_LCDCON3 (0x08 / 4) // LCD Control 3 -#define S3C24XX_LCDCON4 (0x0C / 4) // LCD Control 4 -#define S3C24XX_LCDCON5 (0x10 / 4) // LCD Control 5 -#define S3C24XX_LCDSADDR1 (0x14 / 4) // STN/TFT: Frame Buffer Start Address 1 -#define S3C24XX_LCDSADDR2 (0x18 / 4) // STN/TFT: Frame Buffer Start Address 2 -#define S3C24XX_LCDSADDR3 (0x1C / 4) // STN/TFT: Virtual Screen Address Set -#define S3C24XX_REDLUT (0x20 / 4) // STN: Red Lookup Table -#define S3C24XX_GREENLUT (0x24 / 4) // STN: Green Lookup Table -#define S3C24XX_BLUELUT (0x28 / 4) // STN: Blue Lookup Table -#define S3C24XX_DITHMODE (0x4C / 4) // STN: Dithering Mode -#define S3C24XX_TPAL (0x50 / 4) // TFT: Temporary Palette -#define S3C24XX_LCDINTPND (0x54 / 4) // LCD Interrupt Pending -#define S3C24XX_LCDSRCPND (0x58 / 4) // LCD Interrupt Source -#define S3C24XX_LCDINTMSK (0x5C / 4) // LCD Interrupt Mask -#define S3C24XX_TCONSEL (0x60 / 4) // TCON (LPC3600/LCC3600) Control - /* NAND Flash */ #define S3C24XX_BASE_NAND 0x4E000000 @@ -192,40 +151,10 @@ enum #define S3C24XX_BASE_UART_1 0x50004000 #define S3C24XX_BASE_UART_2 0x50008000 -#define S3C24XX_ULCON (0x00 / 4) // UART Line Control -#define S3C24XX_UCON (0x04 / 4) // UART Control -#define S3C24XX_UFCON (0x08 / 4) // UART FIFO Control -#define S3C24XX_UMCON (0x0C / 4) // UART Modem Control -#define S3C24XX_UTRSTAT (0x10 / 4) // UART Tx/Rx Status -#define S3C24XX_UERSTAT (0x14 / 4) // UART Rx Error Status -#define S3C24XX_UFSTAT (0x18 / 4) // UART FIFO Status -#define S3C24XX_UMSTAT (0x1C / 4) // UART Modem Status -#define S3C24XX_UTXH (0x20 / 4) // UART Transmission Hold -#define S3C24XX_URXH (0x24 / 4) // UART Receive Buffer -#define S3C24XX_UBRDIV (0x28 / 4) // UART Baud Rate Divisor - /* PWM Timer */ #define S3C24XX_BASE_PWM 0x51000000 -#define S3C24XX_TCFG0 (0x00 / 4) // Timer Configuration -#define S3C24XX_TCFG1 (0x04 / 4) // Timer Configuration -#define S3C24XX_TCON (0x08 / 4) // Timer Control -#define S3C24XX_TCNTB0 (0x0C / 4) // Timer Count Buffer 0 -#define S3C24XX_TCMPB0 (0x10 / 4) // Timer Compare Buffer 0 -#define S3C24XX_TCNTO0 (0x14 / 4) // Timer Count Observation 0 -#define S3C24XX_TCNTB1 (0x18 / 4) // Timer Count Buffer 1 -#define S3C24XX_TCMPB1 (0x1C / 4) // Timer Compare Buffer 1 -#define S3C24XX_TCNTO1 (0x20 / 4) // Timer Count Observation 1 -#define S3C24XX_TCNTB2 (0x24 / 4) // Timer Count Buffer 2 -#define S3C24XX_TCMPB2 (0x28 / 4) // Timer Compare Buffer 2 -#define S3C24XX_TCNTO2 (0x2C / 4) // Timer Count Observation 2 -#define S3C24XX_TCNTB3 (0x30 / 4) // Timer Count Buffer 3 -#define S3C24XX_TCMPB3 (0x34 / 4) // Timer Compare Buffer 3 -#define S3C24XX_TCNTO3 (0x38 / 4) // Timer Count Observation 3 -#define S3C24XX_TCNTB4 (0x3C / 4) // Timer Count Buffer 4 -#define S3C24XX_TCNTO4 (0x40 / 4) // Timer Count Observation 4 - /* USB Device */ #define S3C24XX_BASE_USBDEV 0x52000140 @@ -234,132 +163,31 @@ enum #define S3C24XX_BASE_WDT 0x53000000 -#define S3C24XX_WTCON (0x00 / 4) // Watchdog Timer Mode -#define S3C24XX_WTDAT (0x04 / 4) // Watchdog Timer Data -#define S3C24XX_WTCNT (0x08 / 4) // Watchdog Timer Count - /* IIC */ #define S3C24XX_BASE_IIC 0x54000000 -#define S3C24XX_IICCON (0x00 / 4) // IIC Control -#define S3C24XX_IICSTAT (0x04 / 4) // IIC Status -#define S3C24XX_IICADD (0x08 / 4) // IIC Address -#define S3C24XX_IICDS (0x0C / 4) // IIC Data Shift -#define S3C24XX_IICLC (0x10 / 4) // IIC Multi-Master Line Control - /* IIS */ #define S3C24XX_BASE_IIS 0x55000000 -#define S3C24XX_IISCON (0x00 / 4) // IIS Control -#define S3C24XX_IISMOD (0x04 / 4) // IIS Mode -#define S3C24XX_IISPSR (0x08 / 4) // IIS Prescaler -#define S3C24XX_IISFCON (0x0C / 4) // IIS FIFO Control -#define S3C24XX_IISFIFO (0x10 / 4) // IIS FIFO Entry - /* I/O Port */ #define S3C24XX_BASE_GPIO 0x56000000 -#define S3C24XX_GPACON (0x00 / 4) // Port A Control -#define S3C24XX_GPADAT (0x04 / 4) // Port A Data -#define S3C24XX_GPBCON (0x10 / 4) // Port B Control -#define S3C24XX_GPBDAT (0x14 / 4) // Port B Data -#define S3C24XX_GPBUP (0x18 / 4) // Pull-up Control B -#define S3C24XX_GPCCON (0x20 / 4) // Port C Control -#define S3C24XX_GPCDAT (0x24 / 4) // Port C Data -#define S3C24XX_GPCUP (0x28 / 4) // Pull-up Control C -#define S3C24XX_GPDCON (0x30 / 4) // Port D Control -#define S3C24XX_GPDDAT (0x34 / 4) // Port D Data -#define S3C24XX_GPDUP (0x38 / 4) // Pull-up Control D -#define S3C24XX_GPECON (0x40 / 4) // Port E Control -#define S3C24XX_GPEDAT (0x44 / 4) // Port E Data -#define S3C24XX_GPEUP (0x48 / 4) // Pull-up Control E -#define S3C24XX_GPFCON (0x50 / 4) // Port F Control -#define S3C24XX_GPFDAT (0x54 / 4) // Port F Data -#define S3C24XX_GPFUP (0x58 / 4) // Pull-up Control F -#define S3C24XX_GPGCON (0x60 / 4) // Port G Control -#define S3C24XX_GPGDAT (0x64 / 4) // Port G Data -#define S3C24XX_GPGUP (0x68 / 4) // Pull-up Control G -#define S3C24XX_GPHCON (0x70 / 4) // Port H Control -#define S3C24XX_GPHDAT (0x74 / 4) // Port H Data -#define S3C24XX_GPHUP (0x78 / 4) // Pull-up Control H -#define S3C24XX_MISCCR (0x80 / 4) // Miscellaneous Control -#define S3C24XX_DCLKCON (0x84 / 4) // DCLK0/1 Control -#define S3C24XX_EXTINT0 (0x88 / 4) // External Interrupt Control Register 0 -#define S3C24XX_EXTINT1 (0x8C / 4) // External Interrupt Control Register 1 -#define S3C24XX_EXTINT2 (0x90 / 4) // External Interrupt Control Register 2 -#define S3C24XX_EINTFLT0 (0x94 / 4) // Reserved -#define S3C24XX_EINTFLT1 (0x98 / 4) // Reserved -#define S3C24XX_EINTFLT2 (0x9C / 4) // External Interrupt Filter Control Register 2 -#define S3C24XX_EINTFLT3 (0xA0 / 4) // External Interrupt Filter Control Register 3 -#define S3C24XX_EINTMASK (0xA4 / 4) // External Interrupt Mask -#define S3C24XX_EINTPEND (0xA8 / 4) // External Interrupt Pending -#define S3C24XX_GSTATUS0 (0xAC / 4) // External Pin Status -#define S3C24XX_GSTATUS1 (0xB0 / 4) // Chip ID -#define S3C24XX_GSTATUS2 (0xB4 / 4) // Reset Status -#define S3C24XX_GSTATUS3 (0xB8 / 4) // Inform Register -#define S3C24XX_GSTATUS4 (0xBC / 4) // Inform Register -#define S3C24XX_MSLCON (0xCC / 4) // Memory Sleep Control Register -#define S3C24XX_GPJCON (0xD0 / 4) // Port J Control -#define S3C24XX_GPJDAT (0xD4 / 4) // Port J Data -#define S3C24XX_GPJUP (0xD8 / 4) // Pull-up Control J - -#define S3C24XX_GPADAT_MASK 0x01FFFFFF -#define S3C24XX_GPBDAT_MASK 0x000007FF -#define S3C24XX_GPCDAT_MASK 0x0000FFFF -#define S3C24XX_GPDDAT_MASK 0x0000FFFF -#define S3C24XX_GPEDAT_MASK 0x0000FFFF -#define S3C24XX_GPFDAT_MASK 0x000000FF -#define S3C24XX_GPGDAT_MASK 0x0000FFFF -#define S3C24XX_GPHDAT_MASK 0x000007FF -#define S3C24XX_GPJDAT_MASK 0x0000FFFF - /* RTC */ #define S3C24XX_BASE_RTC 0x57000040 -#define S3C24XX_RTCCON (0x00 / 4) // RTC Control -#define S3C24XX_TICNT (0x04 / 4) // Tick Time count -#define S3C24XX_RTCALM (0x10 / 4) // RTC Alarm Control -#define S3C24XX_ALMSEC (0x14 / 4) // Alarm Second -#define S3C24XX_ALMMIN (0x18 / 4) // Alarm Minute -#define S3C24XX_ALMHOUR (0x1C / 4) // Alarm Hour -#define S3C24XX_ALMDAY (0x20 / 4) // Alarm Day -#define S3C24XX_ALMMON (0x24 / 4) // Alarm Month -#define S3C24XX_ALMYEAR (0x28 / 4) // Alarm Year -#define S3C24XX_BCDSEC (0x30 / 4) // BCD Second -#define S3C24XX_BCDMIN (0x34 / 4) // BCD Minute -#define S3C24XX_BCDHOUR (0x38 / 4) // BCD Hour -#define S3C24XX_BCDDAY (0x3C / 4) // BCD Day -#define S3C24XX_BCDDOW (0x40 / 4) // BCD Day of Week -#define S3C24XX_BCDMON (0x44 / 4) // BCD Month -#define S3C24XX_BCDYEAR (0x48 / 4) // BCD Year - /* A/D Converter */ #define S3C24XX_BASE_ADC 0x58000000 -#define S3C24XX_ADCCON (0x00 / 4) // ADC Control -#define S3C24XX_ADCTSC (0x04 / 4) // ADC Touch Screen Control -#define S3C24XX_ADCDLY (0x08 / 4) // ADC Start or Interval Delay -#define S3C24XX_ADCDAT0 (0x0C / 4) // ADC Conversion Data -#define S3C24XX_ADCDAT1 (0x10 / 4) // ADC Conversion Data -#define S3C24XX_ADCUPDN (0x14 / 4) // Stylus up or down interrupt status - /* SPI */ #define S3C24XX_BASE_SPI_0 0x59000000 #define S3C24XX_BASE_SPI_1 0x59000020 -#define S3C24XX_SPCON (0x00 / 4) // SPI Control -#define S3C24XX_SPSTA (0x04 / 4) // SPI Status -#define S3C24XX_SPPIN (0x08 / 4) // SPI Pin Control -#define S3C24XX_SPPRE (0x0C / 4) // SPI Baud Rate Prescaler -#define S3C24XX_SPTDAT (0x10 / 4) // SPI Tx Data -#define S3C24XX_SPRDAT (0x14 / 4) // SPI Rx Data - /* SD Interface */ #define S3C24XX_BASE_SDI 0x5A000000 @@ -370,103 +198,7 @@ enum /* ... */ -#define S3C24XX_INT_ADC 31 -#define S3C24XX_INT_RTC 30 -#define S3C24XX_INT_SPI1 29 -#define S3C24XX_INT_UART0 28 -#define S3C24XX_INT_IIC 27 -#define S3C24XX_INT_USBH 26 -#define S3C24XX_INT_USBD 25 -#define S3C24XX_INT_NFCON 24 -#define S3C24XX_INT_UART1 23 -#define S3C24XX_INT_SPI0 22 -#define S3C24XX_INT_SDI 21 -#define S3C24XX_INT_DMA3 20 -#define S3C24XX_INT_DMA2 19 -#define S3C24XX_INT_DMA1 18 -#define S3C24XX_INT_DMA0 17 -#define S3C24XX_INT_LCD 16 -#define S3C24XX_INT_UART2 15 -#define S3C24XX_INT_TIMER4 14 -#define S3C24XX_INT_TIMER3 13 -#define S3C24XX_INT_TIMER2 12 -#define S3C24XX_INT_TIMER1 11 -#define S3C24XX_INT_TIMER0 10 -#define S3C24XX_INT_WDT_AC97 9 -#define S3C24XX_INT_TICK 8 -#define S3C24XX_INT_BATT_FLT 7 -#define S3C24XX_INT_CAM 6 -#define S3C24XX_INT_EINT8_23 5 -#define S3C24XX_INT_EINT4_7 4 -#define S3C24XX_INT_EINT3 3 -#define S3C24XX_INT_EINT2 2 -#define S3C24XX_INT_EINT1 1 -#define S3C24XX_INT_EINT0 0 - -#define S3C24XX_SUBINT_AC97 14 -#define S3C24XX_SUBINT_WDT 13 -#define S3C24XX_SUBINT_CAM_P 12 -#define S3C24XX_SUBINT_CAM_C 11 -#define S3C24XX_SUBINT_ADC 10 -#define S3C24XX_SUBINT_TC 9 -#define S3C24XX_SUBINT_ERR2 8 -#define S3C24XX_SUBINT_TXD2 7 -#define S3C24XX_SUBINT_RXD2 6 -#define S3C24XX_SUBINT_ERR1 5 -#define S3C24XX_SUBINT_TXD1 4 -#define S3C24XX_SUBINT_RXD1 3 -#define S3C24XX_SUBINT_ERR0 2 -#define S3C24XX_SUBINT_TXD0 1 -#define S3C24XX_SUBINT_RXD0 0 - -static const uint32_t MAP_SUBINT_TO_INT[15] = -{ - S3C24XX_INT_UART0, S3C24XX_INT_UART0, S3C24XX_INT_UART0, - S3C24XX_INT_UART1, S3C24XX_INT_UART1, S3C24XX_INT_UART1, - S3C24XX_INT_UART2, S3C24XX_INT_UART2, S3C24XX_INT_UART2, - S3C24XX_INT_ADC, S3C24XX_INT_ADC, - S3C24XX_INT_CAM, S3C24XX_INT_CAM, - S3C24XX_INT_WDT_AC97, S3C24XX_INT_WDT_AC97 -}; - -#define S3C24XX_BPPMODE_STN_01 0x00 -#define S3C24XX_BPPMODE_STN_02 0x01 -#define S3C24XX_BPPMODE_STN_04 0x02 -#define S3C24XX_BPPMODE_STN_08 0x03 -#define S3C24XX_BPPMODE_STN_12_P 0x04 -#define S3C24XX_BPPMODE_STN_12_U 0x05 -#define S3C24XX_BPPMODE_STN_16 0x06 -#define S3C24XX_BPPMODE_TFT_01 0x08 -#define S3C24XX_BPPMODE_TFT_02 0x09 -#define S3C24XX_BPPMODE_TFT_04 0x0A -#define S3C24XX_BPPMODE_TFT_08 0x0B -#define S3C24XX_BPPMODE_TFT_16 0x0C -#define S3C24XX_BPPMODE_TFT_24 0x0D - -#define S3C24XX_PNRMODE_STN_04_DS 0 -#define S3C24XX_PNRMODE_STN_04_SS 1 -#define S3C24XX_PNRMODE_STN_08_SS 2 -#define S3C24XX_PNRMODE_TFT 3 - -#define S3C24XX_GPIO_PORT_A S3C2440_GPIO_PORT_A -#define S3C24XX_GPIO_PORT_B S3C2440_GPIO_PORT_B -#define S3C24XX_GPIO_PORT_C S3C2440_GPIO_PORT_C -#define S3C24XX_GPIO_PORT_D S3C2440_GPIO_PORT_D -#define S3C24XX_GPIO_PORT_E S3C2440_GPIO_PORT_E -#define S3C24XX_GPIO_PORT_F S3C2440_GPIO_PORT_F -#define S3C24XX_GPIO_PORT_G S3C2440_GPIO_PORT_G -#define S3C24XX_GPIO_PORT_H S3C2440_GPIO_PORT_H -#define S3C24XX_GPIO_PORT_J S3C2440_GPIO_PORT_J - -#define S3C24XX_CORE_PIN_NCON S3C2440_CORE_PIN_NCON -#define S3C24XX_CORE_PIN_OM0 S3C2440_CORE_PIN_OM0 -#define S3C24XX_CORE_PIN_OM1 S3C2440_CORE_PIN_OM1 - -#define S3C24XX_UART_COUNT 3 -#define S3C24XX_DMA_COUNT 4 -#define S3C24XX_SPI_COUNT 2 - -class s3c2440_device : public device_t +class s3c2440_device : public device_t, protected s3c24xx_peripheral_types { public: s3c2440_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); @@ -474,32 +206,32 @@ public: // static configuration static void static_set_palette_tag(device_t &device, const char *tag); - template static devcb_base &set_core_pin_r_callback(device_t &device, _Object object) { return downcast(device).m_pin_r_cb.set_callback(object); } - template static devcb_base &set_core_pin_w_callback(device_t &device, _Object object) { return downcast(device).m_pin_w_cb.set_callback(object); } - template static devcb_base &set_gpio_port_r_callback(device_t &device, _Object object) { return downcast(device).m_port_r_cb.set_callback(object); } - template static devcb_base &set_gpio_port_w_callback(device_t &device, _Object object) { return downcast(device).m_port_w_cb.set_callback(object); } - template static devcb_base &set_i2c_scl_w_callback(device_t &device, _Object object) { return downcast(device).m_scl_w_cb.set_callback(object); } - template static devcb_base &set_i2c_sda_r_callback(device_t &device, _Object object) { return downcast(device).m_sda_r_cb.set_callback(object); } - template static devcb_base &set_i2c_sda_w_callback(device_t &device, _Object object) { return downcast(device).m_sda_w_cb.set_callback(object); } - template static devcb_base &set_adc_data_r_callback(device_t &device, _Object object) { return downcast(device).m_data_r_cb.set_callback(object); } - template static devcb_base &set_i2s_data_w_callback(device_t &device, _Object object) { return downcast(device).m_data_w_cb.set_callback(object); } - template static devcb_base &set_nand_command_w_callback(device_t &device, _Object object) { return downcast(device).m_command_w_cb.set_callback(object); } - template static devcb_base &set_nand_address_w_callback(device_t &device, _Object object) { return downcast(device).m_address_w_cb.set_callback(object); } - template static devcb_base &set_nand_data_r_callback(device_t &device, _Object object) { return downcast(device).m_nand_data_r_cb.set_callback(object); } - template static devcb_base &set_nand_data_w_callback(device_t &device, _Object object) { return downcast(device).m_nand_data_w_cb.set_callback(object); } + template static devcb_base &set_core_pin_r_callback(device_t &device, Object &&cb) { return downcast(device).m_pin_r_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_core_pin_w_callback(device_t &device, Object &&cb) { return downcast(device).m_pin_w_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_gpio_port_r_callback(device_t &device, Object &&cb) { return downcast(device).m_port_r_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_gpio_port_w_callback(device_t &device, Object &&cb) { return downcast(device).m_port_w_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_i2c_scl_w_callback(device_t &device, Object &&cb) { return downcast(device).m_scl_w_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_i2c_sda_r_callback(device_t &device, Object &&cb) { return downcast(device).m_sda_r_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_i2c_sda_w_callback(device_t &device, Object &&cb) { return downcast(device).m_sda_w_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_adc_data_r_callback(device_t &device, Object &&cb) { return downcast(device).m_data_r_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_i2s_data_w_callback(device_t &device, Object &&cb) { return downcast(device).m_data_w_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_nand_command_w_callback(device_t &device, Object &&cb) { return downcast(device).m_command_w_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_nand_address_w_callback(device_t &device, Object &&cb) { return downcast(device).m_address_w_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_nand_data_r_callback(device_t &device, Object &&cb) { return downcast(device).m_nand_data_r_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_nand_data_w_callback(device_t &device, Object &&cb) { return downcast(device).m_nand_data_w_cb.set_callback(std::forward(cb)); } static void set_lcd_flags(device_t &device, int flags) { downcast(device).m_flags = flags; } DECLARE_WRITE_LINE_MEMBER( frnb_w ); + uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); + + void s3c2440_touch_screen( int state); + void s3c2440_request_eint( uint32_t number); + protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; -private: - // internal state - required_device m_palette; -public: - uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); void s3c24xx_reset(); inline int iface_core_pin_r(int pin); @@ -557,8 +289,6 @@ public: void s3c24xx_request_eint(uint32_t number); READ32_MEMBER( s3c24xx_irq_r ); WRITE32_MEMBER( s3c24xx_irq_w ); - void s3c24xx_pwm_reset(); - uint16_t s3c24xx_pwm_calc_observation(int ch); READ32_MEMBER( s3c24xx_pwm_r ); void s3c24xx_pwm_start(int timer); void s3c24xx_pwm_stop(int timer); @@ -590,13 +320,10 @@ public: uint16_t s3c24xx_gpio_get_mask( uint32_t con, int val); READ32_MEMBER( s3c24xx_gpio_r ); WRITE32_MEMBER( s3c24xx_gpio_w ); - void s3c24xx_memcon_reset(); READ32_MEMBER( s3c24xx_memcon_r ); WRITE32_MEMBER( s3c24xx_memcon_w ); - void s3c24xx_usb_host_reset(); READ32_MEMBER( s3c24xx_usb_host_r ); WRITE32_MEMBER( s3c24xx_usb_host_w ); - void s3c24xx_uart_reset(); uint32_t s3c24xx_uart_r(uint32_t ch, uint32_t offset); void s3c24xx_uart_w(uint32_t ch, uint32_t offset, uint32_t data, uint32_t mem_mask); READ32_MEMBER( s3c24xx_uart_0_r ); @@ -609,8 +336,6 @@ public: void s3c24xx_usb_device_reset(); READ32_MEMBER( s3c24xx_usb_device_r ); WRITE32_MEMBER( s3c24xx_usb_device_w ); - void s3c24xx_wdt_reset(); - uint16_t s3c24xx_wdt_calc_current_count(); READ32_MEMBER( s3c24xx_wdt_r ); void s3c24xx_wdt_start(); void s3c24xx_wdt_stop(); @@ -631,7 +356,6 @@ public: READ32_MEMBER( s3c24xx_iic_r ); WRITE32_MEMBER( s3c24xx_iic_w ); TIMER_CALLBACK_MEMBER( s3c24xx_iic_timer_exp ); - void s3c24xx_iis_reset(); inline void iface_i2s_data_w(int ch, uint16_t data); void s3c24xx_iis_start(); void s3c24xx_iis_stop(); @@ -639,9 +363,7 @@ public: READ32_MEMBER( s3c24xx_iis_r ); WRITE32_MEMBER( s3c24xx_iis_w ); TIMER_CALLBACK_MEMBER( s3c24xx_iis_timer_exp ); - void s3c24xx_rtc_reset(); READ32_MEMBER( s3c24xx_rtc_r ); - void s3c24xx_rtc_recalc(); WRITE32_MEMBER( s3c24xx_rtc_w ); TIMER_CALLBACK_MEMBER( s3c24xx_rtc_timer_tick_count_exp ); void s3c24xx_rtc_update(); @@ -679,38 +401,27 @@ public: void s3c24xx_nand_init_ecc(); WRITE32_MEMBER( s3c24xx_nand_w ); ATTR_UNUSED WRITE_LINE_MEMBER( s3c24xx_pin_frnb_w ); - void s3c24xx_cam_reset(); READ32_MEMBER( s3c24xx_cam_r ); WRITE32_MEMBER( s3c24xx_cam_w ); - void s3c24xx_ac97_reset(); READ32_MEMBER( s3c24xx_ac97_r ); WRITE32_MEMBER( s3c24xx_ac97_w ); void s3c24xx_nand_auto_boot(); void s3c24xx_device_reset(); void s3c24xx_device_start(); - void s3c2440_uart_fifo_w( int uart, uint8_t data); - void s3c2440_touch_screen( int state); void s3c2440_request_irq( uint32_t int_type); - void s3c2440_request_eint( uint32_t number); +private: + static constexpr unsigned UART_COUNT = 3; + static constexpr unsigned DMA_COUNT = 4; + static constexpr unsigned SPI_COUNT = 2; /******************************************************************************* TYPE DEFINITIONS *******************************************************************************/ - struct s3c24xx_memcon_regs_t - { - uint32_t data[0x34/4]; - }; - - struct s3c24xx_usbhost_regs_t - { - uint32_t data[0x5C/4]; - }; - - struct s3c24xx_irq_regs_t + struct irq_regs_t { uint32_t srcpnd; uint32_t intmod; @@ -722,7 +433,7 @@ public: uint32_t intsubmsk; }; - struct s3c24xx_dma_regs_t + struct dma_regs_t { uint32_t disrc; uint32_t disrcc; @@ -735,7 +446,7 @@ public: uint32_t dmasktrig; }; - struct s3c24xx_clkpow_regs_t + struct clkpow_regs_t { uint32_t locktime; uint32_t mpllcon; @@ -746,7 +457,7 @@ public: uint32_t camdivn; }; - struct s3c24xx_lcd_regs_t + struct lcd_regs_t { uint32_t lcdcon1; uint32_t lcdcon2; @@ -768,12 +479,7 @@ public: uint32_t tconsel; }; - struct s3c24xx_lcdpal_regs_t - { - uint32_t data[0x400/4]; - }; - - struct s3c24xx_nand_regs_t + struct nand_regs_t { uint32_t nfconf; uint32_t nfcont; @@ -793,60 +499,12 @@ public: uint32_t nfeblk; }; - struct s3c24xx_cam_regs_t - { - uint32_t data[0xA4/4]; - }; - - struct s3c24xx_uart_regs_t - { - uint32_t ulcon; - uint32_t ucon; - uint32_t ufcon; - uint32_t umcon; - uint32_t utrstat; - uint32_t uerstat; - uint32_t ufstat; - uint32_t umstat; - uint32_t utxh; - uint32_t urxh; - uint32_t ubrdiv; - }; - - struct s3c24xx_pwm_regs_t - { - uint32_t tcfg0; - uint32_t tcfg1; - uint32_t tcon; - uint32_t tcntb0; - uint32_t tcmpb0; - uint32_t tcnto0; - uint32_t tcntb1; - uint32_t tcmpb1; - uint32_t tcnto1; - uint32_t tcntb2; - uint32_t tcmpb2; - uint32_t tcnto2; - uint32_t tcntb3; - uint32_t tcmpb3; - uint32_t tcnto3; - uint32_t tcntb4; - uint32_t tcnto4; - }; - - struct s3c24xx_usbdev_regs_t + struct usbdev_regs_t { uint32_t data[0x130/4]; }; - struct s3c24xx_wdt_regs_t - { - uint32_t wtcon; - uint32_t wtdat; - uint32_t wtcnt; - }; - - struct s3c24xx_iic_regs_t + struct iic_regs_t { uint32_t iiccon; uint32_t iicstat; @@ -855,16 +513,7 @@ public: uint32_t iiclc; }; - struct s3c24xx_iis_regs_t - { - uint32_t iiscon; - uint32_t iismod; - uint32_t iispsr; - uint32_t iisfcon; - uint32_t iisfifo; - }; - - struct s3c24xx_gpio_regs_t + struct gpio_regs_t { uint32_t gpacon; uint32_t gpadat; @@ -923,29 +572,7 @@ public: uint32_t gpjup; }; - struct s3c24xx_rtc_regs_t - { - uint32_t rtccon; - uint32_t ticnt; - uint32_t reserved[2]; - uint32_t rtcalm; - uint32_t almsec; - uint32_t almmin; - uint32_t almhour; - uint32_t almday; - uint32_t almmon; - uint32_t almyear; - uint32_t rtcrst; - uint32_t bcdsec; - uint32_t bcdmin; - uint32_t bcdhour; - uint32_t bcdday; - uint32_t bcddow; - uint32_t bcdmon; - uint32_t bcdyear; - }; - - struct s3c24xx_adc_regs_t + struct adc_regs_t { uint32_t adccon; uint32_t adctsc; @@ -955,56 +582,26 @@ public: uint32_t adcupdn; }; - struct s3c24xx_spi_regs_t - { - uint32_t spcon; - uint32_t spsta; - uint32_t sppin; - uint32_t sppre; - uint32_t sptdat; - uint32_t sprdat; - }; - - struct s3c24xx_sdi_regs_t + struct irq_t { - uint32_t data[0x44/4]; - }; - - struct s3c24xx_ac97_regs_t - { - uint32_t data[0x20/4]; - }; - - struct s3c24xx_memcon_t - { - s3c24xx_memcon_regs_t regs; - }; - - struct s3c24xx_usbhost_t - { - s3c24xx_usbhost_regs_t regs; - }; - - struct s3c24xx_irq_t - { - s3c24xx_irq_regs_t regs; + irq_regs_t regs; int line_irq, line_fiq; }; - struct s3c24xx_dma_t + struct dma_t { - s3c24xx_dma_regs_t regs; + dma_regs_t regs; emu_timer *timer; }; - struct s3c24xx_clkpow_t + struct clkpow_t { - s3c24xx_clkpow_regs_t regs; + clkpow_regs_t regs; }; - struct s3c24xx_lcd_t + struct lcd_t { - s3c24xx_lcd_regs_t regs; + lcd_regs_t regs; emu_timer *timer; std::unique_ptr bitmap[2]; uint32_t vramaddr_cur; @@ -1021,119 +618,61 @@ public: uint32_t dma_data, dma_bits; }; - struct s3c24xx_lcdpal_t + struct nand_t { - s3c24xx_lcdpal_regs_t regs; - }; - - struct s3c24xx_nand_t - { - s3c24xx_nand_regs_t regs; + nand_regs_t regs; uint8_t mecc[4]; uint8_t secc[2]; int ecc_pos, data_count; }; - struct s3c24xx_cam_t - { - s3c24xx_cam_regs_t regs; - }; - - struct s3c24xx_uart_t - { - s3c24xx_uart_regs_t regs; - }; - - struct s3c24xx_pwm_t - { - s3c24xx_pwm_regs_t regs; - emu_timer *timer[5]; - uint32_t cnt[5]; - uint32_t cmp[5]; - uint32_t freq[5]; - }; - - struct s3c24xx_usbdev_t - { - s3c24xx_usbdev_regs_t regs; - }; - - struct s3c24xx_wdt_t + struct usbdev_t { - s3c24xx_wdt_regs_t regs; - emu_timer *timer; + usbdev_regs_t regs; }; - struct s3c24xx_iic_t + struct iic_t { - s3c24xx_iic_regs_t regs; + iic_regs_t regs; emu_timer *timer; int count; }; - struct s3c24xx_iis_t + struct gpio_t { - s3c24xx_iis_regs_t regs; - emu_timer *timer; - uint16_t fifo[16/2]; - int fifo_index; + gpio_regs_t regs; }; - struct s3c24xx_gpio_t + struct adc_t { - s3c24xx_gpio_regs_t regs; - }; - - struct s3c24xx_rtc_t - { - s3c24xx_rtc_regs_t regs; - emu_timer *timer_tick_count; - emu_timer *timer_update; - }; - - struct s3c24xx_adc_t - { - s3c24xx_adc_regs_t regs; - }; - - struct s3c24xx_spi_t - { - s3c24xx_spi_regs_t regs; - }; - - struct s3c24xx_sdi_t - { - s3c24xx_sdi_regs_t regs; - }; - - struct s3c24xx_ac97_t - { - s3c24xx_ac97_regs_t regs; + adc_regs_t regs; }; + // internal state + required_device m_palette; uint8_t m_steppingstone[4*1024]; - s3c24xx_memcon_t m_memcon; - s3c24xx_usbhost_t m_usbhost; - s3c24xx_irq_t m_irq; - s3c24xx_dma_t m_dma[S3C24XX_DMA_COUNT]; - s3c24xx_clkpow_t m_clkpow; - s3c24xx_lcd_t m_lcd; - s3c24xx_lcdpal_t m_lcdpal; - s3c24xx_nand_t m_nand; - s3c24xx_cam_t m_cam; - s3c24xx_uart_t m_uart[S3C24XX_UART_COUNT]; - s3c24xx_pwm_t m_pwm; - s3c24xx_usbdev_t m_usbdev; - s3c24xx_wdt_t m_wdt; - s3c24xx_iic_t m_iic; - s3c24xx_iis_t m_iis; - s3c24xx_gpio_t m_gpio; - s3c24xx_rtc_t m_rtc; - s3c24xx_adc_t m_adc; - s3c24xx_spi_t m_spi[S3C24XX_SPI_COUNT]; - s3c24xx_sdi_t m_sdi; - s3c24xx_ac97_t m_ac97; + memcon_t m_memcon; + usbhost_t m_usbhost; + irq_t m_irq; + dma_t m_dma[DMA_COUNT]; + clkpow_t m_clkpow; + lcd_t m_lcd; + lcdpal_t m_lcdpal; + nand_t m_nand; + cam_t m_cam; + uart_t m_uart[UART_COUNT]; + pwm_t m_pwm; + usbdev_t m_usbdev; + wdt_t m_wdt; + iic_t m_iic; + iis_t m_iis; + gpio_t m_gpio; + rtc_t m_rtc; + adc_t m_adc; + spi_t m_spi[SPI_COUNT]; + sdi_t m_sdi; + ac97_t m_ac97; required_device m_cpu; devcb_read32 m_pin_r_cb; devcb_write32 m_pin_w_cb; @@ -1151,7 +690,6 @@ public: int m_flags; }; -extern const device_type S3C2440; - +DECLARE_DEVICE_TYPE(S3C2440, s3c2440_device) -#endif +#endif // MAME_MACHINE_S3C2440_H diff --git a/src/devices/machine/s3c24xx.cpp b/src/devices/machine/s3c24xx.cpp new file mode 100644 index 00000000000..40cebd1b643 --- /dev/null +++ b/src/devices/machine/s3c24xx.cpp @@ -0,0 +1,190 @@ +// license:BSD-3-Clause +// copyright-holders:Tim Schuerewegen +#include "emu.h" +#include "s3c24xx.h" + +#include "coreutil.h" + +#include +#include + +//#define VERBOSE 1 +#define LOG_OUTPUT_FUNC std::printf +#include "logmacro.h" + + +void s3c24xx_peripheral_types::usbhost_t::reset() +{ + std::memset(®s, 0, sizeof(regs)); +} + + +void s3c24xx_peripheral_types::memcon_t::reset() +{ + std::memset(®s, 0, sizeof(regs)); + regs.data[0x04 / 4] = 0x00000700; + regs.data[0x08 / 4] = 0x00000700; + regs.data[0x0c / 4] = 0x00000700; + regs.data[0x10 / 4] = 0x00000700; + regs.data[0x14 / 4] = 0x00000700; + regs.data[0x18 / 4] = 0x00000700; + regs.data[0x1c / 4] = 0x00018008; + regs.data[0x20 / 4] = 0x00018008; + regs.data[0x24 / 4] = 0x00AC0000; +} + + +void s3c24xx_peripheral_types::uart_t::reset() +{ + std::memset(®s, 0, sizeof(regs)); + regs.utrstat = 6; +} + + +void s3c24xx_peripheral_types::pwm_t::reset() +{ + std::memset(®s, 0, sizeof(regs)); + for (emu_timer *&tmr : timer) + tmr->adjust(attotime::never); +} + +uint16_t s3c24xx_peripheral_types::pwm_t::calc_observation(unsigned ch) const +{ + double const timeleft = timer[ch]->remaining().as_double(); + LOG("timeleft %f freq %d cntb %d cmpb %d\n", timeleft, freq[ch], cnt[ch], cmp[ch]); + double const x1 = 1 / (double(freq[ch]) / (cnt[ch] - cmp[ch] + 1)); + double const x2 = x1 / timeleft; + LOG("x1 %f\n", x1); + uint32_t cnto = cmp[ch] + ((cnt[ch]- cmp[ch]) / x2); + LOG("cnto %u\n", cnto); + return cnto; +} + + +void s3c24xx_peripheral_types::wdt_t::reset() +{ + std::memset(®s, 0, sizeof(regs)); + regs.wtcon = 0x8021; + regs.wtdat = 0x8000; + regs.wtcnt = 0x8000; + timer->adjust(attotime::never); +} + +uint16_t s3c24xx_peripheral_types::wdt_t::calc_current_count() const +{ + double const timeleft = timer->remaining().as_double(); + LOG("timeleft %f freq %d cnt %d\n", timeleft, freq, cnt); + double const x1 = 1 / (double(freq) / cnt); + double const x2 = x1 / timeleft; + printf("x1 %f\n", x1); + uint32_t const res = cnt / x2; + printf("cnt %d\n", res); + return res; +} + + +void s3c24xx_peripheral_types::iis_t::reset() +{ + std::memset(®s, 0, sizeof(regs)); + fifo_index = 0; + regs.iiscon = 0x0100; + timer->adjust(attotime::never); +} + + +void s3c24xx_peripheral_types::rtc_t::reset() +{ + std::memset(®s, 0, sizeof(regs)); + regs.almday = 1; + regs.almmon = 1; + timer_update->adjust(attotime::never); + timer_update->adjust(attotime::from_msec(1000), 0, attotime::from_msec(1000)); +} + +void s3c24xx_peripheral_types::rtc_t::recalc() +{ + if (BIT(regs.ticnt, 7)) + { + uint32_t const ttc = BITS(regs.ticnt, 6, 0); + double const freq = 128.0 / (ttc + 1); + LOG("ttc %u freq %f\n", ttc, freq); + timer_tick_count->adjust(attotime::from_hz(freq), 0, attotime::from_hz(freq)); + } + else + { + timer_tick_count->adjust(attotime::never); + } +} + +void s3c24xx_peripheral_types::rtc_t::update() +{ + // increase second + regs.bcdsec = bcd_adjust(regs.bcdsec + 1); + if (regs.bcdsec >= 0x60) + { + regs.bcdsec = 0; + // increase minute + regs.bcdmin = bcd_adjust(regs.bcdmin + 1); + if (regs.bcdmin >= 0x60) + { + regs.bcdmin = 0; + // increase hour + regs.bcdhour = bcd_adjust(regs.bcdhour + 1); + if (regs.bcdhour >= 0x24) + { + regs.bcdhour = 0; + // increase day-of-week + regs.bcddow = (regs.bcddow % 7) + 1; + // increase day + regs.bcdday = bcd_adjust(regs.bcdday + 1); + uint32_t const bcdday_max = dec_2_bcd(gregorian_days_in_month(bcd_2_dec(regs.bcdmon), bcd_2_dec(regs.bcdyear) + 2000)); + if (regs.bcdday > bcdday_max) + { + regs.bcdday = 1; + // increase month + regs.bcdmon = bcd_adjust(regs.bcdmon + 1); + if (regs.bcdmon >= 0x12) + { + regs.bcdmon = 1; + // increase year + regs.bcdyear = bcd_adjust(regs.bcdyear + 1); + if (regs.bcdyear >= 0x100) + { + regs.bcdyear = 0; + } + } + } + } + } + } +} + +bool s3c24xx_peripheral_types::rtc_t::check_alarm() const +{ + return + (regs.rtcalm & 0x40) && + (!(regs.rtcalm & 0x20) || (regs.almyear == regs.bcdyear)) && + (!(regs.rtcalm & 0x10) || (regs.almmon == regs.bcdmon)) && + (!(regs.rtcalm & 0x08) || (regs.almday == regs.bcdday)) && + (!(regs.rtcalm & 0x04) || (regs.almhour == regs.bcdhour)) && + (!(regs.rtcalm & 0x02) || (regs.almmin == regs.bcdmin)) && + (!(regs.rtcalm & 0x01) || (regs.almsec == regs.bcdsec)); +} + + +void s3c24xx_peripheral_types::mmc_t::reset() +{ + std::memset(®s, 0, sizeof(regs)); +} + + +void s3c24xx_peripheral_types::cam_t::reset() +{ + std::memset(®s, 0, sizeof(regs)); +} + + +void s3c24xx_peripheral_types::ac97_t::reset() +{ + std::memset(®s, 0, sizeof(regs)); +} diff --git a/src/devices/machine/s3c24xx.h b/src/devices/machine/s3c24xx.h new file mode 100644 index 00000000000..0e165afc5d4 --- /dev/null +++ b/src/devices/machine/s3c24xx.h @@ -0,0 +1,309 @@ +// license:BSD-3-Clause +// copyright-holders:Tim Schuerewegen +#ifndef MAME_MACHINE_S3C24XX_H +#define MAME_MACHINE_S3C24XX_H + +#pragma once + + +class s3c24xx_peripheral_types // TODO: better name for this +{ +protected: + template static constexpr auto BITS(A &&x, B &&m, C &&n) + { + return (x >> n) & ((uint32_t(1) << (m - n + 1)) - 1); + } + + template static constexpr auto CLR_BITS(A &&x, B &&m, C &&n) + { + return x & ~(((uint32_t(1) << (m - n + 1)) - 1) << n); + } + + struct memcon_regs_t + { + uint32_t data[0x34/4]; + }; + + struct usbhost_regs_t + { + uint32_t data[0x5c/4]; + }; + + struct lcdpal_regs_t + { + uint32_t data[0x400/4]; + }; + + struct uart_regs_t + { + uint32_t ulcon; + uint32_t ucon; + uint32_t ufcon; + uint32_t umcon; + uint32_t utrstat; + uint32_t uerstat; + uint32_t ufstat; + uint32_t umstat; + uint32_t utxh; + uint32_t urxh; + uint32_t ubrdiv; + }; + + struct pwm_regs_t + { + uint32_t tcfg0; + uint32_t tcfg1; + uint32_t tcon; + uint32_t tcntb0; + uint32_t tcmpb0; + uint32_t tcnto0; + uint32_t tcntb1; + uint32_t tcmpb1; + uint32_t tcnto1; + uint32_t tcntb2; + uint32_t tcmpb2; + uint32_t tcnto2; + uint32_t tcntb3; + uint32_t tcmpb3; + uint32_t tcnto3; + uint32_t tcntb4; + uint32_t tcnto4; + }; + + struct wdt_regs_t + { + uint32_t wtcon; + uint32_t wtdat; + uint32_t wtcnt; + }; + + struct iis_regs_t + { + uint32_t iiscon; + uint32_t iismod; + uint32_t iispsr; + uint32_t iisfcon; + uint32_t iisfifo; + }; + + struct rtc_regs_t + { + uint32_t rtccon; + uint32_t ticnt; + uint32_t reserved[2]; + uint32_t rtcalm; + uint32_t almsec; + uint32_t almmin; + uint32_t almhour; + uint32_t almday; + uint32_t almmon; + uint32_t almyear; + uint32_t rtcrst; + uint32_t bcdsec; + uint32_t bcdmin; + uint32_t bcdhour; + uint32_t bcdday; + uint32_t bcddow; + uint32_t bcdmon; + uint32_t bcdyear; + }; + + struct mmc_regs_t + { + uint32_t data[0x40/4]; + }; + + struct spi_regs_t + { + uint32_t spcon; + uint32_t spsta; + uint32_t sppin; + uint32_t sppre; + uint32_t sptdat; + uint32_t sprdat; + }; + + struct sdi_regs_t + { + uint32_t data[0x44/4]; + }; + + struct cam_regs_t + { + uint32_t data[0xa4/4]; + }; + + struct ac97_regs_t + { + uint32_t data[0x20/4]; + }; + + + struct memcon_t + { + void reset(); + + memcon_regs_t regs; + }; + + struct usbhost_t + { + void reset(); + + usbhost_regs_t regs; + }; + + struct lcdpal_t + { + lcdpal_regs_t regs; + }; + + struct uart_t + { + static constexpr offs_t ULCON = 0X00 / 4; // UART Line Control + static constexpr offs_t UCON = 0X04 / 4; // UART Control + static constexpr offs_t UFCON = 0X08 / 4; // UART FIFO Control + static constexpr offs_t UMCON = 0X0c / 4; // UART Modem Control + static constexpr offs_t UTRSTAT = 0X10 / 4; // UART Tx/Rx Status + static constexpr offs_t UERSTAT = 0X14 / 4; // UART Rx Error Status + static constexpr offs_t UFSTAT = 0X18 / 4; // UART FIFO Status + static constexpr offs_t UMSTAT = 0X1c / 4; // UART Modem Status + static constexpr offs_t UTXH = 0X20 / 4; // UART Transmission Hold + static constexpr offs_t URXH = 0X24 / 4; // UART Receive Buffer + static constexpr offs_t UBRDIV = 0X28 / 4; // UART Baud Rate Divisor + + void reset(); + + uart_regs_t regs; + }; + + struct pwm_t + { + static constexpr offs_t TCFG0 = 0x00 / 4; // Timer Configuration + static constexpr offs_t TCFG1 = 0x04 / 4; // Timer Configuration + static constexpr offs_t TCON = 0x08 / 4; // Timer Control + static constexpr offs_t TCNTB0 = 0x0c / 4; // Timer Count Buffer 0 + static constexpr offs_t TCMPB0 = 0x10 / 4; // Timer Compare Buffer 0 + static constexpr offs_t TCNTO0 = 0x14 / 4; // Timer Count Observation 0 + static constexpr offs_t TCNTB1 = 0x18 / 4; // Timer Count Buffer 1 + static constexpr offs_t TCMPB1 = 0x1c / 4; // Timer Compare Buffer 1 + static constexpr offs_t TCNTO1 = 0x20 / 4; // Timer Count Observation 1 + static constexpr offs_t TCNTB2 = 0x24 / 4; // Timer Count Buffer 2 + static constexpr offs_t TCMPB2 = 0x28 / 4; // Timer Compare Buffer 2 + static constexpr offs_t TCNTO2 = 0x2c / 4; // Timer Count Observation 2 + static constexpr offs_t TCNTB3 = 0x30 / 4; // Timer Count Buffer 3 + static constexpr offs_t TCMPB3 = 0x34 / 4; // Timer Compare Buffer 3 + static constexpr offs_t TCNTO3 = 0x38 / 4; // Timer Count Observation 3 + static constexpr offs_t TCNTB4 = 0x3c / 4; // Timer Count Buffer 4 + static constexpr offs_t TCNTO4 = 0x40 / 4; // Timer Count Observation 4 + + void reset(); + uint16_t calc_observation(unsigned ch) const; + + pwm_regs_t regs; + emu_timer *timer[5]; + uint32_t cnt[5]; + uint32_t cmp[5]; + uint32_t freq[5]; + }; + + struct wdt_t + { + static constexpr offs_t WTCON = 0x00 / 4; // Watchdog Timer Mode + static constexpr offs_t WTDAT = 0x04 / 4; // Watchdog Timer Data + static constexpr offs_t WTCNT = 0x08 / 4; // Watchdog Timer Count + + void reset(); + uint16_t calc_current_count() const; + + wdt_regs_t regs; + emu_timer *timer; + uint32_t freq, cnt; + }; + + struct iis_t + { + static constexpr offs_t IISCON = 0x00 / 4; // IIS Control + static constexpr offs_t IISMOD = 0x04 / 4; // IIS Mode + static constexpr offs_t IISPSR = 0x08 / 4; // IIS Prescaler + static constexpr offs_t IISFCON = 0x0c / 4; // IIS FIFO Control + static constexpr offs_t IISFIFO = 0x10 / 4; // IIS FIFO Entry + + void reset(); + + iis_regs_t regs; + emu_timer *timer; + uint16_t fifo[16/2]; + int fifo_index; + }; + + struct rtc_t + { + static constexpr offs_t RTCCON = 0x00 / 4; // RTC Control + static constexpr offs_t TICNT = 0x04 / 4; // Tick Time count + static constexpr offs_t RTCALM = 0x10 / 4; // RTC Alarm Control + static constexpr offs_t ALMSEC = 0x14 / 4; // Alarm Second + static constexpr offs_t ALMMIN = 0x18 / 4; // Alarm Minute + static constexpr offs_t ALMHOUR = 0x1c / 4; // Alarm Hour + static constexpr offs_t ALMDAY = 0x20 / 4; // Alarm Day + static constexpr offs_t ALMMON = 0x24 / 4; // Alarm Month + static constexpr offs_t ALMYEAR = 0x28 / 4; // Alarm Year + static constexpr offs_t RTCRST = 0x2c / 4; // RTC Round Reset + static constexpr offs_t BCDSEC = 0x30 / 4; // BCD Second + static constexpr offs_t BCDMIN = 0x34 / 4; // BCD Minute + static constexpr offs_t BCDHOUR = 0x38 / 4; // BCD Hour + static constexpr offs_t BCDDAY = 0x3c / 4; // BCD Day + static constexpr offs_t BCDDOW = 0x40 / 4; // BCD Day of Week + static constexpr offs_t BCDMON = 0x44 / 4; // BCD Month + static constexpr offs_t BCDYEAR = 0x48 / 4; // BCD Year + + void reset(); + void recalc(); + void update(); + bool check_alarm() const; + + rtc_regs_t regs; + emu_timer *timer_tick_count; + emu_timer *timer_update; + }; + + struct mmc_t + { + void reset(); + + mmc_regs_t regs; + }; + + struct spi_t + { + static constexpr offs_t SPCON = 0x00 / 4; // SPI Control + static constexpr offs_t SPSTA = 0x04 / 4; // SPI Status + static constexpr offs_t SPPIN = 0x08 / 4; // SPI Pin Control + static constexpr offs_t SPPRE = 0x0c / 4; // SPI Baud Rate Prescaler + static constexpr offs_t SPTDAT = 0x10 / 4; // SPI Tx Data + static constexpr offs_t SPRDAT = 0x14 / 4; // SPI Rx Data + + spi_regs_t regs; + }; + + struct sdi_t + { + sdi_regs_t regs; + }; + + struct cam_t + { + void reset(); + + cam_regs_t regs; + }; + + struct ac97_t + { + void reset(); + + ac97_regs_t regs; + }; +}; + +#endif // MAME_MACHINE_S3C24XX_H diff --git a/src/devices/machine/s3c24xx.hxx b/src/devices/machine/s3c24xx.hxx index 5481d485f15..2f7d616f702 100644 --- a/src/devices/machine/s3c24xx.hxx +++ b/src/devices/machine/s3c24xx.hxx @@ -19,9 +19,6 @@ #define CLOCK_MULTIPLIER 1 -#define BITS(x,m,n) (((x)>>(n))&(((uint32_t)1<<((m)-(n)+1))-1)) -#define CLR_BITS(x,m,n) ((x) & ~((((uint32_t)1 << ((m) - (n) + 1)) - 1) << n)) - #if defined(DEVICE_S3C2400) #define S3C24XX_TPAL_GET_TPALEN(x) BIT(x,16) @@ -109,26 +106,25 @@ int S3C24_CLASS_NAME::iface_core_pin_r(int pin) void S3C24_CLASS_NAME::s3c24xx_lcd_reset() { - s3c24xx_lcd_t *lcd = &m_lcd; - memset( &lcd->regs, 0, sizeof( lcd->regs)); - #if defined(DEVICE_S3C2410) - lcd->regs.lcdintmsk = 3; - lcd->regs.lpcsel = 4; - #elif defined(DEVICE_S3C2440) - lcd->regs.lcdintmsk = 3; - lcd->regs.tconsel = 0x0F84; - #endif - lcd->vramaddr_cur = lcd->vramaddr_max = 0; - lcd->offsize = 0; - lcd->pagewidth_cur = lcd->pagewidth_max = 0; - lcd->bppmode = 0; - lcd->bswp = lcd->hwswp = 0; - lcd->vpos = lcd->hpos = 0; - lcd->framerate = 0; - lcd->tpal = 0; - lcd->hpos_min = lcd->hpos_max = lcd->vpos_min = lcd->vpos_max = 0; - lcd->dma_data = lcd->dma_bits = 0; - lcd->timer->adjust( attotime::never); + memset( &m_lcd.regs, 0, sizeof( m_lcd.regs)); +#if defined(DEVICE_S3C2410) + m_lcd.regs.lcdintmsk = 3; + m_lcd.regs.lpcsel = 4; +#elif defined(DEVICE_S3C2440) + m_lcd.regs.lcdintmsk = 3; + m_lcd.regs.tconsel = 0x0F84; +#endif + m_lcd.vramaddr_cur = m_lcd.vramaddr_max = 0; + m_lcd.offsize = 0; + m_lcd.pagewidth_cur = m_lcd.pagewidth_max = 0; + m_lcd.bppmode = 0; + m_lcd.bswp = m_lcd.hwswp = 0; + m_lcd.vpos = m_lcd.hpos = 0; + m_lcd.framerate = 0; + m_lcd.tpal = 0; + m_lcd.hpos_min = m_lcd.hpos_max = m_lcd.vpos_min = m_lcd.vpos_max = 0; + m_lcd.dma_data = m_lcd.dma_bits = 0; + m_lcd.timer->adjust(attotime::never); } rgb_t S3C24_CLASS_NAME::s3c24xx_get_color_tft_16(uint16_t data) @@ -691,18 +687,18 @@ TIMER_CALLBACK_MEMBER( S3C24_CLASS_NAME::s3c24xx_lcd_timer_exp ) { switch (m_lcd.bppmode) { - case S3C24XX_BPPMODE_STN_01 : s3c24xx_lcd_render_stn_01(); break; - case S3C24XX_BPPMODE_STN_02 : s3c24xx_lcd_render_stn_02(); break; - case S3C24XX_BPPMODE_STN_04 : s3c24xx_lcd_render_stn_04(); break; - case S3C24XX_BPPMODE_STN_08 : s3c24xx_lcd_render_stn_08(); break; - case S3C24XX_BPPMODE_STN_12_P : s3c24xx_lcd_render_stn_12_p(); break; - case S3C24XX_BPPMODE_STN_12_U : s3c24xx_lcd_render_stn_12_u(); break; - case S3C24XX_BPPMODE_TFT_01 : s3c24xx_lcd_render_tft_01(); break; - case S3C24XX_BPPMODE_TFT_02 : s3c24xx_lcd_render_tft_02(); break; - case S3C24XX_BPPMODE_TFT_04 : s3c24xx_lcd_render_tft_04(); break; - case S3C24XX_BPPMODE_TFT_08 : s3c24xx_lcd_render_tft_08(); break; - case S3C24XX_BPPMODE_TFT_16 : s3c24xx_lcd_render_tft_16(); break; - default : verboselog( *this, 0, "s3c24xx_lcd_timer_exp: bppmode %d not supported\n", m_lcd.bppmode); break; + case S3C24XX_BPPMODE_STN_01: s3c24xx_lcd_render_stn_01(); break; + case S3C24XX_BPPMODE_STN_02: s3c24xx_lcd_render_stn_02(); break; + case S3C24XX_BPPMODE_STN_04: s3c24xx_lcd_render_stn_04(); break; + case S3C24XX_BPPMODE_STN_08: s3c24xx_lcd_render_stn_08(); break; + case S3C24XX_BPPMODE_STN_12_P: s3c24xx_lcd_render_stn_12_p(); break; + case S3C24XX_BPPMODE_STN_12_U: s3c24xx_lcd_render_stn_12_u(); break; + case S3C24XX_BPPMODE_TFT_01: s3c24xx_lcd_render_tft_01(); break; + case S3C24XX_BPPMODE_TFT_02: s3c24xx_lcd_render_tft_02(); break; + case S3C24XX_BPPMODE_TFT_04: s3c24xx_lcd_render_tft_04(); break; + case S3C24XX_BPPMODE_TFT_08: s3c24xx_lcd_render_tft_08(); break; + case S3C24XX_BPPMODE_TFT_16: s3c24xx_lcd_render_tft_16(); break; + default: verboselog( *this, 0, "s3c24xx_lcd_timer_exp: bppmode %d not supported\n", m_lcd.bppmode); break; } if ((m_lcd.vpos == m_lcd.vpos_min) && (m_lcd.hpos == m_lcd.hpos_min)) break; } @@ -730,20 +726,20 @@ void S3C24_CLASS_NAME::bitmap_blend( bitmap_rgb32 &bitmap_dst, bitmap_rgb32 &bit uint32_t *line2 = &bitmap_dst.pix32(y); for (int x = 0; x < bitmap_dst.width(); x++) { - uint32_t color0 = line0[x]; - uint32_t color1 = line1[x]; - uint16_t r0 = (color0 >> 16) & 0x000000ff; - uint16_t g0 = (color0 >> 8) & 0x000000ff; - uint16_t b0 = (color0 >> 0) & 0x000000ff; - uint16_t r1 = (color1 >> 16) & 0x000000ff; - uint16_t g1 = (color1 >> 8) & 0x000000ff; - uint16_t b1 = (color1 >> 0) & 0x000000ff; - uint8_t r = (uint8_t)((r0 + r1) >> 1); - uint8_t g = (uint8_t)((g0 + g1) >> 1); - uint8_t b = (uint8_t)((b0 + b1) >> 1); - line2[x] = (r << 16) | (g << 8) | b; - } + uint32_t color0 = line0[x]; + uint32_t color1 = line1[x]; + uint16_t r0 = (color0 >> 16) & 0x000000ff; + uint16_t g0 = (color0 >> 8) & 0x000000ff; + uint16_t b0 = (color0 >> 0) & 0x000000ff; + uint16_t r1 = (color1 >> 16) & 0x000000ff; + uint16_t g1 = (color1 >> 8) & 0x000000ff; + uint16_t b1 = (color1 >> 0) & 0x000000ff; + uint8_t r = (uint8_t)((r0 + r1) >> 1); + uint8_t g = (uint8_t)((g0 + g1) >> 1); + uint8_t b = (uint8_t)((b0 + b1) >> 1); + line2[x] = (r << 16) | (g << 8) | b; } + } } uint32_t S3C24_CLASS_NAME::s3c24xx_video_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) @@ -770,7 +766,7 @@ READ32_MEMBER( S3C24_CLASS_NAME::s3c24xx_lcd_r ) uint32_t data = ((uint32_t*)&m_lcd.regs)[offset]; switch (offset) { - case S3C24XX_LCDCON1 : + case S3C24XX_LCDCON1: { // make sure line counter is going uint32_t vpos = machine().first_screen()->vpos(); @@ -779,7 +775,7 @@ READ32_MEMBER( S3C24_CLASS_NAME::s3c24xx_lcd_r ) data = (data & ~0xFFFC0000) | ((m_lcd.vpos_max - vpos) << 18); } break; - case S3C24XX_LCDCON5 : + case S3C24XX_LCDCON5: { uint32_t vpos = machine().first_screen()->vpos(); data = data & ~0x00018000; @@ -861,10 +857,10 @@ int S3C24_CLASS_NAME::s3c24xx_lcd_configure_stn() verboselog( *this, 3, "LCD - framerate %f\n", framerate); switch (pnrmode) { - case S3C24XX_PNRMODE_STN_04_SS : width = ((hozval + 1) * 4); break; - case S3C24XX_PNRMODE_STN_04_DS : width = ((hozval + 1) * 4); break; - case S3C24XX_PNRMODE_STN_08_SS : width = ((hozval + 1) * 8 / 3); break; - default : width = 0; break; + case S3C24XX_PNRMODE_STN_04_SS: width = ((hozval + 1) * 4); break; + case S3C24XX_PNRMODE_STN_04_DS: width = ((hozval + 1) * 4); break; + case S3C24XX_PNRMODE_STN_08_SS: width = ((hozval + 1) * 8 / 3); break; + default: width = 0; break; } height = lineval + 1; m_lcd.framerate = framerate; @@ -965,25 +961,24 @@ WRITE32_MEMBER( S3C24_CLASS_NAME::s3c24xx_lcd_palette_w ) void S3C24_CLASS_NAME::s3c24xx_clkpow_reset() { - s3c24xx_clkpow_t *clkpow = &m_clkpow; - memset( &clkpow->regs, 0, sizeof( clkpow->regs)); - #if defined(DEVICE_S3C2400) - clkpow->regs.locktime = 0x00FFFFFF; - clkpow->regs.mpllcon = 0x0005C080; - clkpow->regs.upllcon = 0x00028080; - clkpow->regs.clkcon = 0x0000FFF8; - #elif defined(DEVICE_S3C2410) - clkpow->regs.locktime = 0x00FFFFFF; - clkpow->regs.mpllcon = 0x0005C080; - clkpow->regs.upllcon = 0x00028080; - clkpow->regs.clkcon = 0x0007FFF0; - #elif defined(DEVICE_S3C2440) - clkpow->regs.locktime = 0xFFFFFFFF; - clkpow->regs.mpllcon = 0x00096030; - clkpow->regs.upllcon = 0x0004D030; - clkpow->regs.clkcon = 0x00FFFFF0; - #endif - clkpow->regs.clkslow = 4; + memset( &m_clkpow.regs, 0, sizeof(m_clkpow.regs)); +#if defined(DEVICE_S3C2400) + m_clkpow.regs.locktime = 0x00FFFFFF; + m_clkpow.regs.mpllcon = 0x0005C080; + m_clkpow.regs.upllcon = 0x00028080; + m_clkpow.regs.clkcon = 0x0000FFF8; +#elif defined(DEVICE_S3C2410) + m_clkpow.regs.locktime = 0x00FFFFFF; + m_clkpow.regs.mpllcon = 0x0005C080; + m_clkpow.regs.upllcon = 0x00028080; + m_clkpow.regs.clkcon = 0x0007FFF0; +#elif defined(DEVICE_S3C2440) + m_clkpow.regs.locktime = 0xFFFFFFFF; + m_clkpow.regs.mpllcon = 0x00096030; + m_clkpow.regs.upllcon = 0x0004D030; + m_clkpow.regs.clkcon = 0x00FFFFF0; +#endif + m_clkpow.regs.clkslow = 4; } uint32_t S3C24_CLASS_NAME::s3c24xx_get_fclk() @@ -1020,10 +1015,10 @@ uint32_t S3C24_CLASS_NAME::s3c24xx_get_hclk() #else switch (BITS( m_clkpow.regs.clkdivn, 2, 1)) { - case 0 : return s3c24xx_get_fclk() / 1; - case 1 : return s3c24xx_get_fclk() / 2; - case 2 : return s3c24xx_get_fclk() / (4 * (BIT( m_clkpow.regs.camdivn, 9) + 1)); - case 3 : return s3c24xx_get_fclk() / (3 * (BIT( m_clkpow.regs.camdivn, 8) + 1)); + case 0: return s3c24xx_get_fclk() / 1; + case 1: return s3c24xx_get_fclk() / 2; + case 2: return s3c24xx_get_fclk() / (4 * (BIT( m_clkpow.regs.camdivn, 9) + 1)); + case 3: return s3c24xx_get_fclk() / (3 * (BIT( m_clkpow.regs.camdivn, 8) + 1)); } return 0; #endif @@ -1047,17 +1042,13 @@ WRITE32_MEMBER( S3C24_CLASS_NAME::s3c24xx_clkpow_w ) COMBINE_DATA(&((uint32_t*)&m_clkpow.regs)[offset]); switch (offset) { - case S3C24XX_MPLLCON : - { - verboselog( *this, 5, "CLKPOW - fclk %d hclk %d pclk %d\n", s3c24xx_get_fclk(), s3c24xx_get_hclk(), s3c24xx_get_pclk()); - m_cpu->set_unscaled_clock(s3c24xx_get_fclk() * CLOCK_MULTIPLIER); - } + case S3C24XX_MPLLCON : + verboselog( *this, 5, "CLKPOW - fclk %d hclk %d pclk %d\n", s3c24xx_get_fclk(), s3c24xx_get_hclk(), s3c24xx_get_pclk()); + m_cpu->set_unscaled_clock(s3c24xx_get_fclk() * CLOCK_MULTIPLIER); break; - case S3C24XX_CLKSLOW : - { - verboselog( *this, 5, "CLKPOW - fclk %d hclk %d pclk %d\n", s3c24xx_get_fclk(), s3c24xx_get_hclk(), s3c24xx_get_pclk()); - m_cpu->set_unscaled_clock(s3c24xx_get_fclk() * CLOCK_MULTIPLIER); - } + case S3C24XX_CLKSLOW : + verboselog( *this, 5, "CLKPOW - fclk %d hclk %d pclk %d\n", s3c24xx_get_fclk(), s3c24xx_get_hclk(), s3c24xx_get_pclk()); + m_cpu->set_unscaled_clock(s3c24xx_get_fclk() * CLOCK_MULTIPLIER); break; } } @@ -1066,16 +1057,15 @@ WRITE32_MEMBER( S3C24_CLASS_NAME::s3c24xx_clkpow_w ) void S3C24_CLASS_NAME::s3c24xx_irq_reset() { - s3c24xx_irq_t *irq = &m_irq; - memset( &irq->regs, 0, sizeof( irq->regs)); - irq->line_irq = irq->line_fiq = CLEAR_LINE; - irq->regs.intmsk = 0xFFFFFFFF; - irq->regs.priority = 0x7F; - #if defined(DEVICE_S3C2410) - irq->regs.intsubmsk = 0x07FF; - #elif defined(DEVICE_S3C2440) - irq->regs.intsubmsk = 0xFFFF; - #endif + memset(&m_irq.regs, 0, sizeof(m_irq.regs)); + m_irq.line_irq = m_irq.line_fiq = CLEAR_LINE; + m_irq.regs.intmsk = 0xFFFFFFFF; + m_irq.regs.priority = 0x7F; +#if defined(DEVICE_S3C2410) + m_irq.regs.intsubmsk = 0x07FF; +#elif defined(DEVICE_S3C2440) + m_irq.regs.intsubmsk = 0xFFFF; +#endif } void S3C24_CLASS_NAME::s3c24xx_check_pending_irq() @@ -1228,36 +1218,26 @@ WRITE32_MEMBER( S3C24_CLASS_NAME::s3c24xx_irq_w ) COMBINE_DATA(&((uint32_t*)&m_irq.regs)[offset]); switch (offset) { - case S3C24XX_SRCPND : - { - m_irq.regs.srcpnd = (old_value & ~data); // clear only the bit positions of SRCPND corresponding to those set to one in the data - m_irq.regs.intoffset = 0; // "This bit can be cleared automatically by clearing SRCPND and INTPND." - s3c24xx_check_pending_irq(); - } + case S3C24XX_SRCPND: + m_irq.regs.srcpnd = (old_value & ~data); // clear only the bit positions of SRCPND corresponding to those set to one in the data + m_irq.regs.intoffset = 0; // "This bit can be cleared automatically by clearing SRCPND and INTPND." + s3c24xx_check_pending_irq(); break; - case S3C24XX_INTMSK : - { - s3c24xx_check_pending_irq(); - } + case S3C24XX_INTMSK: + s3c24xx_check_pending_irq(); break; - case S3C24XX_INTPND : - { - m_irq.regs.intpnd = (old_value & ~data); // clear only the bit positions of INTPND corresponding to those set to one in the data - m_irq.regs.intoffset = 0; // "This bit can be cleared automatically by clearing SRCPND and INTPND." - s3c24xx_check_pending_irq(); - } + case S3C24XX_INTPND: + m_irq.regs.intpnd = (old_value & ~data); // clear only the bit positions of INTPND corresponding to those set to one in the data + m_irq.regs.intoffset = 0; // "This bit can be cleared automatically by clearing SRCPND and INTPND." + s3c24xx_check_pending_irq(); break; #if defined(DEVICE_S3C2410) || defined(DEVICE_S3C2440) - case S3C24XX_SUBSRCPND : - { - m_irq.regs.subsrcpnd = (old_value & ~data); // clear only the bit positions of SRCPND corresponding to those set to one in the data - s3c24xx_check_pending_subirq(); - } + case S3C24XX_SUBSRCPND : + m_irq.regs.subsrcpnd = (old_value & ~data); // clear only the bit positions of SRCPND corresponding to those set to one in the data + s3c24xx_check_pending_subirq(); break; - case S3C24XX_INTSUBMSK : - { - s3c24xx_check_pending_subirq(); - } + case S3C24XX_INTSUBMSK: + s3c24xx_check_pending_subirq(); break; #endif } @@ -1265,59 +1245,25 @@ WRITE32_MEMBER( S3C24_CLASS_NAME::s3c24xx_irq_w ) /* PWM Timer */ -void S3C24_CLASS_NAME::s3c24xx_pwm_reset() -{ - s3c24xx_pwm_t *pwm = &m_pwm; - memset( &pwm->regs, 0, sizeof( pwm->regs)); - for (int i = 0; i < 5; i++) - { - pwm->timer[i]->adjust( attotime::never); - } -} - -uint16_t S3C24_CLASS_NAME::s3c24xx_pwm_calc_observation(int ch) -{ - double timeleft, x1, x2; - uint32_t cnto; - timeleft = m_pwm.timer[ch]->remaining( ).as_double(); -// printf( "timeleft %f freq %d cntb %d cmpb %d\n", timeleft, m_pwm.freq[ch], m_pwm.cnt[ch], m_pwm.cmp[ch]); - x1 = 1 / ((double)m_pwm.freq[ch] / (m_pwm.cnt[ch]- m_pwm.cmp[ch] + 1)); - x2 = x1 / timeleft; -// printf( "x1 %f\n", x1); - cnto = m_pwm.cmp[ch] + ((m_pwm.cnt[ch]- m_pwm.cmp[ch]) / x2); -// printf( "cnto %d\n", cnto); - return cnto; -} - READ32_MEMBER( S3C24_CLASS_NAME::s3c24xx_pwm_r ) { uint32_t data = ((uint32_t*)&m_pwm.regs)[offset]; switch (offset) { - case S3C24XX_TCNTO0 : - { - data = (data & ~0x0000FFFF) | s3c24xx_pwm_calc_observation( 0); - } + case pwm_t::TCNTO0: + data = (data & ~0x0000FFFF) | m_pwm.calc_observation(0); break; - case S3C24XX_TCNTO1 : - { - data = (data & ~0x0000FFFF) | s3c24xx_pwm_calc_observation( 1); - } + case pwm_t::TCNTO1: + data = (data & ~0x0000FFFF) | m_pwm.calc_observation(1); break; - case S3C24XX_TCNTO2 : - { - data = (data & ~0x0000FFFF) | s3c24xx_pwm_calc_observation( 2); - } + case pwm_t::TCNTO2: + data = (data & ~0x0000FFFF) | m_pwm.calc_observation(2); break; - case S3C24XX_TCNTO3 : - { - data = (data & ~0x0000FFFF) | s3c24xx_pwm_calc_observation( 3); - } + case pwm_t::TCNTO3: + data = (data & ~0x0000FFFF) | m_pwm.calc_observation(3); break; - case S3C24XX_TCNTO4 : - { - data = (data & ~0x0000FFFF) | s3c24xx_pwm_calc_observation( 4); - } + case pwm_t::TCNTO4: + data = (data & ~0x0000FFFF) | m_pwm.calc_observation(4); break; } verboselog( *this, 9, "(PWM) %08X -> %08X\n", S3C24XX_BASE_PWM + (offset << 2), data); @@ -1326,9 +1272,9 @@ READ32_MEMBER( S3C24_CLASS_NAME::s3c24xx_pwm_r ) void S3C24_CLASS_NAME::s3c24xx_pwm_start(int timer) { - const int mux_table[] = { 2, 4, 8, 16}; - const int prescaler_shift[] = { 0, 0, 8, 8, 8}; - const int mux_shift[] = { 0, 4, 8, 12, 16}; + static constexpr int mux_table[] = { 2, 4, 8, 16 }; + static constexpr int prescaler_shift[] = { 0, 0, 8, 8, 8 }; + static constexpr int mux_shift[] = { 0, 4, 8, 12, 16 }; uint32_t pclk, prescaler, mux, cnt, cmp, auto_reload; double freq, hz; verboselog( *this, 1, "PWM %d start\n", timer); @@ -1346,45 +1292,33 @@ void S3C24_CLASS_NAME::s3c24xx_pwm_start(int timer) } switch (timer) { - case 0 : - { - cnt = BITS( m_pwm.regs.tcntb0, 15, 0); - cmp = BITS( m_pwm.regs.tcmpb0, 15, 0); - auto_reload = BIT( m_pwm.regs.tcon, 3); - } + case 0: + cnt = BITS(m_pwm.regs.tcntb0, 15, 0); + cmp = BITS(m_pwm.regs.tcmpb0, 15, 0); + auto_reload = BIT(m_pwm.regs.tcon, 3); break; - case 1 : - { - cnt = BITS( m_pwm.regs.tcntb1, 15, 0); - cmp = BITS( m_pwm.regs.tcmpb1, 15, 0); - auto_reload = BIT( m_pwm.regs.tcon, 11); - } + case 1: + cnt = BITS(m_pwm.regs.tcntb1, 15, 0); + cmp = BITS(m_pwm.regs.tcmpb1, 15, 0); + auto_reload = BIT(m_pwm.regs.tcon, 11); break; - case 2 : - { - cnt = BITS( m_pwm.regs.tcntb2, 15, 0); - cmp = BITS( m_pwm.regs.tcmpb2, 15, 0); - auto_reload = BIT( m_pwm.regs.tcon, 15); - } + case 2: + cnt = BITS(m_pwm.regs.tcntb2, 15, 0); + cmp = BITS(m_pwm.regs.tcmpb2, 15, 0); + auto_reload = BIT(m_pwm.regs.tcon, 15); break; - case 3 : - { - cnt = BITS( m_pwm.regs.tcntb3, 15, 0); - cmp = BITS( m_pwm.regs.tcmpb3, 15, 0); - auto_reload = BIT( m_pwm.regs.tcon, 19); - } + case 3: + cnt = BITS(m_pwm.regs.tcntb3, 15, 0); + cmp = BITS(m_pwm.regs.tcmpb3, 15, 0); + auto_reload = BIT(m_pwm.regs.tcon, 19); break; - case 4 : - { - cnt = BITS( m_pwm.regs.tcntb4, 15, 0); - cmp = 0; - auto_reload = BIT( m_pwm.regs.tcon, 22); - } + case 4: + cnt = BITS(m_pwm.regs.tcntb4, 15, 0); + cmp = 0; + auto_reload = BIT(m_pwm.regs.tcon, 22); break; - default : - { - cnt = cmp = auto_reload = 0; - } + default: + cnt = cmp = auto_reload = 0; break; } // hz = freq / (cnt - cmp + 1); @@ -1396,29 +1330,29 @@ void S3C24_CLASS_NAME::s3c24xx_pwm_start(int timer) { hz = freq / cnt; } - verboselog( *this, 5, "PWM %d - pclk=%d prescaler=%d div=%d freq=%f cnt=%d cmp=%d auto_reload=%d hz=%f\n", timer, pclk, prescaler, mux_table[mux], freq, cnt, cmp, auto_reload, hz); + verboselog(*this, 5, "PWM %d - pclk=%d prescaler=%d div=%d freq=%f cnt=%d cmp=%d auto_reload=%d hz=%f\n", timer, pclk, prescaler, mux_table[mux], freq, cnt, cmp, auto_reload, hz); m_pwm.cnt[timer] = cnt; m_pwm.cmp[timer] = cmp; m_pwm.freq[timer] = freq; if (auto_reload) { - m_pwm.timer[timer]->adjust( attotime::from_hz( hz), timer, attotime::from_hz( hz)); + m_pwm.timer[timer]->adjust(attotime::from_hz( hz), timer, attotime::from_hz(hz)); } else { - m_pwm.timer[timer]->adjust( attotime::from_hz( hz), timer); + m_pwm.timer[timer]->adjust(attotime::from_hz(hz), timer); } } void S3C24_CLASS_NAME::s3c24xx_pwm_stop(int timer) { - verboselog( *this, 1, "PWM %d stop\n", timer); - m_pwm.timer[timer]->adjust( attotime::never); + verboselog(*this, 1, "PWM %d stop\n", timer); + m_pwm.timer[timer]->adjust(attotime::never); } void S3C24_CLASS_NAME::s3c24xx_pwm_recalc(int timer) { - const int tcon_shift[] = { 0, 8, 12, 16, 20}; + static constexpr int tcon_shift[] = { 0, 8, 12, 16, 20 }; if (m_pwm.regs.tcon & (1 << tcon_shift[timer])) { s3c24xx_pwm_start(timer); @@ -1431,33 +1365,31 @@ void S3C24_CLASS_NAME::s3c24xx_pwm_recalc(int timer) WRITE32_MEMBER( S3C24_CLASS_NAME::s3c24xx_pwm_w ) { - uint32_t old_value = ((uint32_t*)&m_pwm.regs)[offset]; + uint32_t const old_value = ((uint32_t*)&m_pwm.regs)[offset]; verboselog( *this, 9, "(PWM) %08X <- %08X\n", S3C24XX_BASE_PWM + (offset << 2), data); COMBINE_DATA(&((uint32_t*)&m_pwm.regs)[offset]); switch (offset) { - case S3C24XX_TCON : + case pwm_t::TCON: + if (BIT(data ^ old_value, 0)) { - if ((data & (1 << 0)) != (old_value & (1 << 0))) - { - s3c24xx_pwm_recalc( 0); - } - if ((data & (1 << 8)) != (old_value & (1 << 8))) - { - s3c24xx_pwm_recalc( 1); - } - if ((data & (1 << 12)) != (old_value & (1 << 12))) - { - s3c24xx_pwm_recalc(2); - } - if ((data & (1 << 16)) != (old_value & (1 << 16))) - { - s3c24xx_pwm_recalc(3); - } - if ((data & (1 << 20)) != (old_value & (1 << 20))) - { - s3c24xx_pwm_recalc(4); - } + s3c24xx_pwm_recalc(0); + } + if (BIT(data ^ old_value, 8)) + { + s3c24xx_pwm_recalc(1); + } + if (BIT(data ^ old_value, 12)) + { + s3c24xx_pwm_recalc(2); + } + if (BIT(data ^ old_value, 16)) + { + s3c24xx_pwm_recalc(3); + } + if (BIT(data ^ old_value, 20)) + { + s3c24xx_pwm_recalc(4); } break; } @@ -1466,9 +1398,9 @@ WRITE32_MEMBER( S3C24_CLASS_NAME::s3c24xx_pwm_w ) TIMER_CALLBACK_MEMBER( S3C24_CLASS_NAME::s3c24xx_pwm_timer_exp ) { int ch = param; - const int ch_int[] = { S3C24XX_INT_TIMER0, S3C24XX_INT_TIMER1, S3C24XX_INT_TIMER2, S3C24XX_INT_TIMER3, S3C24XX_INT_TIMER4 }; - verboselog( *this, 2, "PWM %d timer callback\n", ch); - if (BITS( m_pwm.regs.tcfg1, 23, 20) == (ch + 1)) + static constexpr int ch_int[] = { S3C24XX_INT_TIMER0, S3C24XX_INT_TIMER1, S3C24XX_INT_TIMER2, S3C24XX_INT_TIMER3, S3C24XX_INT_TIMER4 }; + verboselog(*this, 2, "PWM %d timer callback\n", ch); + if (BITS(m_pwm.regs.tcfg1, 23, 20) == (ch + 1)) { s3c24xx_dma_request_pwm(); } @@ -1482,44 +1414,43 @@ TIMER_CALLBACK_MEMBER( S3C24_CLASS_NAME::s3c24xx_pwm_timer_exp ) void S3C24_CLASS_NAME::s3c24xx_dma_reset() { - for (auto & elem : m_dma) + for (dma_t &dma : m_dma) { - s3c24xx_dma_t *dma = &elem; - memset( &dma->regs, 0, sizeof( dma->regs)); - dma->timer->adjust( attotime::never); + memset(&dma.regs, 0, sizeof(dma.regs)); + dma.timer->adjust(attotime::never); } } void S3C24_CLASS_NAME::s3c24xx_dma_reload(int ch) { - s3c24xx_dma_regs_t *regs = &m_dma[ch].regs; - regs->dstat = S3C24XX_DSTAT_SET_CURR_TC( regs->dstat, S3C24XX_DCON_GET_TC( regs->dcon)); - regs->dcsrc = S3C24XX_DCSRC_SET_CURR_SRC( regs->dcsrc, S3C24XX_DISRC_GET_SADDR( regs->disrc)); - regs->dcdst = S3C24XX_DCDST_SET_CURR_DST( regs->dcdst, S3C24XX_DIDST_GET_DADDR( regs->didst)); + dma_regs_t *regs = &m_dma[ch].regs; + regs->dstat = S3C24XX_DSTAT_SET_CURR_TC(regs->dstat, S3C24XX_DCON_GET_TC(regs->dcon)); + regs->dcsrc = S3C24XX_DCSRC_SET_CURR_SRC(regs->dcsrc, S3C24XX_DISRC_GET_SADDR(regs->disrc)); + regs->dcdst = S3C24XX_DCDST_SET_CURR_DST(regs->dcdst, S3C24XX_DIDST_GET_DADDR(regs->didst)); } void S3C24_CLASS_NAME::s3c24xx_dma_trigger(int ch) { - s3c24xx_dma_regs_t *regs = &m_dma[ch].regs; + dma_regs_t *regs = &m_dma[ch].regs; uint32_t curr_tc, curr_src, curr_dst; - address_space &space = m_cpu->memory().space( AS_PROGRAM); + address_space &space = m_cpu->memory().space(AS_PROGRAM); int dsz, inc_src, inc_dst, servmode, tsz; - const uint32_t ch_int[] = { S3C24XX_INT_DMA0, S3C24XX_INT_DMA1, S3C24XX_INT_DMA2, S3C24XX_INT_DMA3}; - verboselog( *this, 5, "DMA %d trigger\n", ch); - curr_tc = S3C24XX_DSTAT_GET_CURR_TC( regs->dstat); - dsz = S3C24XX_DCON_GET_DSZ( regs->dcon); - curr_src = S3C24XX_DCSRC_GET_CURR_SRC( regs->dcsrc); - curr_dst = S3C24XX_DCDST_GET_CURR_DST( regs->dcdst); - servmode = S3C24XX_DCON_GET_SERVMODE( regs->dcon); - tsz = S3C24XX_DCON_GET_TSZ( regs->dcon); + static constexpr uint32_t ch_int[] = { S3C24XX_INT_DMA0, S3C24XX_INT_DMA1, S3C24XX_INT_DMA2, S3C24XX_INT_DMA3 }; + verboselog(*this, 5, "DMA %d trigger\n", ch); + curr_tc = S3C24XX_DSTAT_GET_CURR_TC(regs->dstat); + dsz = S3C24XX_DCON_GET_DSZ(regs->dcon); + curr_src = S3C24XX_DCSRC_GET_CURR_SRC(regs->dcsrc); + curr_dst = S3C24XX_DCDST_GET_CURR_DST(regs->dcdst); + servmode = S3C24XX_DCON_GET_SERVMODE(regs->dcon); + tsz = S3C24XX_DCON_GET_TSZ(regs->dcon); #if defined(DEVICE_S3C2400) - inc_src = BIT( regs->disrc, 29); - inc_dst = BIT( regs->didst, 29); + inc_src = BIT(regs->disrc, 29); + inc_dst = BIT(regs->didst, 29); #else inc_src = BIT( regs->disrcc, 0); - inc_dst = BIT( regs->didstc, 0); + inc_dst = BIT(regs->didstc, 0); #endif - verboselog( *this, 5, "DMA %d - curr_src %08X curr_dst %08X curr_tc %d dsz %d\n", ch, curr_src, curr_dst, curr_tc, dsz); + verboselog(*this, 5, "DMA %d - curr_src %08X curr_dst %08X curr_tc %d dsz %d\n", ch, curr_src, curr_dst, curr_tc, dsz); while (curr_tc > 0) { curr_tc--; @@ -1527,21 +1458,21 @@ void S3C24_CLASS_NAME::s3c24xx_dma_trigger(int ch) { switch (dsz) { - case 0 : space.write_byte( curr_dst, space.read_byte( curr_src)); break; - case 1 : space.write_word( curr_dst, space.read_word( curr_src)); break; - case 2 : space.write_dword( curr_dst, space.read_dword( curr_src)); break; + case 0: space.write_byte(curr_dst, space.read_byte( curr_src)); break; + case 1: space.write_word(curr_dst, space.read_word( curr_src)); break; + case 2: space.write_dword(curr_dst, space.read_dword( curr_src)); break; } if (inc_src == 0) curr_src += (1 << dsz); if (inc_dst == 0) curr_dst += (1 << dsz); } if (servmode == 0) break; } - regs->dcsrc = S3C24XX_DCSRC_SET_CURR_SRC( regs->dcsrc, curr_src); - regs->dcdst = S3C24XX_DCDST_SET_CURR_DST( regs->dcdst, curr_dst); - regs->dstat = S3C24XX_DSTAT_SET_CURR_TC( regs->dstat, curr_tc); + regs->dcsrc = S3C24XX_DCSRC_SET_CURR_SRC(regs->dcsrc, curr_src); + regs->dcdst = S3C24XX_DCDST_SET_CURR_DST(regs->dcdst, curr_dst); + regs->dstat = S3C24XX_DSTAT_SET_CURR_TC(regs->dstat, curr_tc); if (curr_tc == 0) { - if (S3C24XX_DCON_GET_RELOAD( regs->dcon) == 0) + if (S3C24XX_DCON_GET_RELOAD(regs->dcon) == 0) { s3c24xx_dma_reload(ch); } @@ -1549,7 +1480,7 @@ void S3C24_CLASS_NAME::s3c24xx_dma_trigger(int ch) { regs->dmasktrig &= ~(1 << 1); // clear on/off } - if (S3C24XX_DCON_GET_INT( regs->dcon) != 0) + if (S3C24XX_DCON_GET_INT(regs->dcon) != 0) { s3c24xx_request_irq(ch_int[ch]); } @@ -1558,12 +1489,10 @@ void S3C24_CLASS_NAME::s3c24xx_dma_trigger(int ch) void S3C24_CLASS_NAME::s3c24xx_dma_request_iis() { - s3c24xx_dma_regs_t *regs = &m_dma[2].regs; + dma_regs_t *regs = &m_dma[2].regs; verboselog( *this, 5, "s3c24xx_dma_request_iis\n"); - if ((S3C24XX_DMASKTRIG_GET_ON_OFF( regs->dmasktrig) != 0) && (S3C24XX_DCON_GET_SWHWSEL( regs->dcon) != 0) && (S3C24XX_DCON_GET_HWSRCSEL( regs->dcon) == 0)) - { + if ((S3C24XX_DMASKTRIG_GET_ON_OFF(regs->dmasktrig) != 0) && (S3C24XX_DCON_GET_SWHWSEL(regs->dcon) != 0) && (S3C24XX_DCON_GET_HWSRCSEL(regs->dcon) == 0)) s3c24xx_dma_trigger(2); - } } void S3C24_CLASS_NAME::s3c24xx_dma_request_pwm() @@ -1573,8 +1502,8 @@ void S3C24_CLASS_NAME::s3c24xx_dma_request_pwm() { if (i != 1) { - s3c24xx_dma_regs_t *regs = &m_dma[i].regs; - if ((S3C24XX_DMASKTRIG_GET_ON_OFF( regs->dmasktrig) != 0) && (S3C24XX_DCON_GET_SWHWSEL( regs->dcon) != 0) && (S3C24XX_DCON_GET_HWSRCSEL( regs->dcon) == 3)) + dma_regs_t *regs = &m_dma[i].regs; + if ((S3C24XX_DMASKTRIG_GET_ON_OFF(regs->dmasktrig) != 0) && (S3C24XX_DCON_GET_SWHWSEL(regs->dcon) != 0) && (S3C24XX_DCON_GET_HWSRCSEL(regs->dcon) == 3)) { s3c24xx_dma_trigger(i); } @@ -1585,51 +1514,45 @@ void S3C24_CLASS_NAME::s3c24xx_dma_request_pwm() void S3C24_CLASS_NAME::s3c24xx_dma_start(int ch) { uint32_t addr_src, addr_dst, tc; - s3c24xx_dma_regs_t *regs = &m_dma[ch].regs; + dma_regs_t *regs = &m_dma[ch].regs; uint32_t dsz, tsz, reload; int inc_src, inc_dst, _int, servmode, swhwsel, hwsrcsel; - verboselog( *this, 1, "DMA %d start\n", ch); - addr_src = S3C24XX_DISRC_GET_SADDR( regs->disrc); - addr_dst = S3C24XX_DIDST_GET_DADDR( regs->didst); - tc = S3C24XX_DCON_GET_TC( regs->dcon); - _int = S3C24XX_DCON_GET_INT( regs->dcon); - servmode = S3C24XX_DCON_GET_SERVMODE( regs->dcon); - hwsrcsel = S3C24XX_DCON_GET_HWSRCSEL( regs->dcon); - swhwsel = S3C24XX_DCON_GET_SWHWSEL( regs->dcon); - reload = S3C24XX_DCON_GET_RELOAD( regs->dcon); - dsz = S3C24XX_DCON_GET_DSZ( regs->dcon); - tsz = S3C24XX_DCON_GET_TSZ( regs->dcon); + verboselog(*this, 1, "DMA %d start\n", ch); + addr_src = S3C24XX_DISRC_GET_SADDR(regs->disrc); + addr_dst = S3C24XX_DIDST_GET_DADDR(regs->didst); + tc = S3C24XX_DCON_GET_TC(regs->dcon); + _int = S3C24XX_DCON_GET_INT(regs->dcon); + servmode = S3C24XX_DCON_GET_SERVMODE(regs->dcon); + hwsrcsel = S3C24XX_DCON_GET_HWSRCSEL(regs->dcon); + swhwsel = S3C24XX_DCON_GET_SWHWSEL(regs->dcon); + reload = S3C24XX_DCON_GET_RELOAD(regs->dcon); + dsz = S3C24XX_DCON_GET_DSZ(regs->dcon); + tsz = S3C24XX_DCON_GET_TSZ(regs->dcon); #if defined(DEVICE_S3C2400) - inc_src = BIT( regs->disrc, 29); - inc_dst = BIT( regs->didst, 29); + inc_src = BIT(regs->disrc, 29); + inc_dst = BIT(regs->didst, 29); #else - inc_src = BIT( regs->disrcc, 0); - inc_dst = BIT( regs->didstc, 0); + inc_src = BIT(regs->disrcc, 0); + inc_dst = BIT(regs->didstc, 0); #endif - verboselog( *this, 5, "DMA %d - addr_src %08X inc_src %d addr_dst %08X inc_dst %d int %d tsz %d servmode %d hwsrcsel %d swhwsel %d reload %d dsz %d tc %d\n", ch, addr_src, inc_src, addr_dst, inc_dst, _int, tsz, servmode, hwsrcsel, swhwsel, reload, dsz, tc); - verboselog( *this, 5, "DMA %d - copy %08X bytes from %08X (%s) to %08X (%s)\n", ch, (tc << dsz) << (tsz << 1), addr_src, inc_src ? "fix" : "inc", addr_dst, inc_dst ? "fix" : "inc"); + verboselog(*this, 5, "DMA %d - addr_src %08X inc_src %d addr_dst %08X inc_dst %d int %d tsz %d servmode %d hwsrcsel %d swhwsel %d reload %d dsz %d tc %d\n", ch, addr_src, inc_src, addr_dst, inc_dst, _int, tsz, servmode, hwsrcsel, swhwsel, reload, dsz, tc); + verboselog(*this, 5, "DMA %d - copy %08X bytes from %08X (%s) to %08X (%s)\n", ch, (tc << dsz) << (tsz << 1), addr_src, inc_src ? "fix" : "inc", addr_dst, inc_dst ? "fix" : "inc"); s3c24xx_dma_reload(ch); if (swhwsel == 0) - { s3c24xx_dma_trigger(ch); - } } void S3C24_CLASS_NAME::s3c24xx_dma_stop(int ch) { - verboselog( *this, 1, "DMA %d stop\n", ch); + verboselog(*this, 1, "DMA %d stop\n", ch); } void S3C24_CLASS_NAME::s3c24xx_dma_recalc(int ch) { if ((m_dma[ch].regs.dmasktrig & (1 << 1)) != 0) - { s3c24xx_dma_start(ch); - } else - { s3c24xx_dma_stop(ch); - } } uint32_t S3C24_CLASS_NAME::s3c24xx_dma_r(uint32_t ch, uint32_t offset) @@ -1643,24 +1566,18 @@ void S3C24_CLASS_NAME::s3c24xx_dma_w(uint32_t ch, uint32_t offset, uint32_t data COMBINE_DATA(&((uint32_t*)&m_dma[ch].regs)[offset]); switch (offset) { - case S3C24XX_DCON : + case S3C24XX_DCON : +#if 0 // is this code necessary ??? + if (BIT(data, 22)) // reload { - #if 0 // is this code necessary ??? - if ((data & (1 << 22)) != 0) // reload - { - s3c24xx_dma_regs_t *regs = &m_dma[ch].regs; - regs->dmasktrig &= ~(1 << 1); // clear on/off - } - #endif + dma_regs_t *regs = &m_dma[ch].regs; + regs->dmasktrig &= ~(1 << 1); // clear on/off } +#endif break; - case S3C24XX_DMASKTRIG : - { - if ((old_value & (1 << 1)) != (data & (1 << 1))) - { - s3c24xx_dma_recalc(ch); - } - } + case S3C24XX_DMASKTRIG : + if (BIT(data ^ old_value, 1)) + s3c24xx_dma_recalc(ch); break; } } @@ -1668,89 +1585,88 @@ void S3C24_CLASS_NAME::s3c24xx_dma_w(uint32_t ch, uint32_t offset, uint32_t data READ32_MEMBER( S3C24_CLASS_NAME::s3c24xx_dma_0_r ) { uint32_t data = s3c24xx_dma_r( 0, offset); - verboselog( *this, 9, "(DMA 0) %08X -> %08X\n", S3C24XX_BASE_DMA_0 + (offset << 2), data); + verboselog(*this, 9, "(DMA 0) %08X -> %08X\n", S3C24XX_BASE_DMA_0 + (offset << 2), data); return data; } READ32_MEMBER( S3C24_CLASS_NAME::s3c24xx_dma_1_r ) { - uint32_t data = s3c24xx_dma_r( 1, offset); - verboselog( *this, 9, "(DMA 1) %08X -> %08X\n", S3C24XX_BASE_DMA_1 + (offset << 2), data); + uint32_t data = s3c24xx_dma_r(1, offset); + verboselog(*this, 9, "(DMA 1) %08X -> %08X\n", S3C24XX_BASE_DMA_1 + (offset << 2), data); return data; } READ32_MEMBER( S3C24_CLASS_NAME::s3c24xx_dma_2_r ) { uint32_t data = s3c24xx_dma_r( 2, offset); - verboselog( *this, 9, "(DMA 2) %08X -> %08X\n", S3C24XX_BASE_DMA_2 + (offset << 2), data); + verboselog(*this, 9, "(DMA 2) %08X -> %08X\n", S3C24XX_BASE_DMA_2 + (offset << 2), data); return data; } READ32_MEMBER( S3C24_CLASS_NAME::s3c24xx_dma_3_r ) { uint32_t data = s3c24xx_dma_r( 3, offset); - verboselog( *this, 9, "(DMA 3) %08X -> %08X\n", S3C24XX_BASE_DMA_3 + (offset << 2), data); + verboselog(*this, 9, "(DMA 3) %08X -> %08X\n", S3C24XX_BASE_DMA_3 + (offset << 2), data); return data; } WRITE32_MEMBER( S3C24_CLASS_NAME::s3c24xx_dma_0_w ) { - verboselog( *this, 9, "(DMA 0) %08X <- %08X\n", S3C24XX_BASE_DMA_0 + (offset << 2), data); - s3c24xx_dma_w( 0, offset, data, mem_mask); + verboselog(*this, 9, "(DMA 0) %08X <- %08X\n", S3C24XX_BASE_DMA_0 + (offset << 2), data); + s3c24xx_dma_w(0, offset, data, mem_mask); } WRITE32_MEMBER( S3C24_CLASS_NAME::s3c24xx_dma_1_w ) { - verboselog( *this, 9, "(DMA 1) %08X <- %08X\n", S3C24XX_BASE_DMA_1 + (offset << 2), data); - s3c24xx_dma_w( 1, offset, data, mem_mask); + verboselog(*this, 9, "(DMA 1) %08X <- %08X\n", S3C24XX_BASE_DMA_1 + (offset << 2), data); + s3c24xx_dma_w(1, offset, data, mem_mask); } WRITE32_MEMBER( S3C24_CLASS_NAME::s3c24xx_dma_2_w ) { - verboselog( *this, 9, "(DMA 2) %08X <- %08X\n", S3C24XX_BASE_DMA_2 + (offset << 2), data); - s3c24xx_dma_w( 2, offset, data, mem_mask); + verboselog(*this, 9, "(DMA 2) %08X <- %08X\n", S3C24XX_BASE_DMA_2 + (offset << 2), data); + s3c24xx_dma_w(2, offset, data, mem_mask); } WRITE32_MEMBER( S3C24_CLASS_NAME::s3c24xx_dma_3_w ) { - verboselog( *this, 9, "(DMA 3) %08X <- %08X\n", S3C24XX_BASE_DMA_3 + (offset << 2), data); - s3c24xx_dma_w( 3, offset, data, mem_mask); + verboselog(*this, 9, "(DMA 3) %08X <- %08X\n", S3C24XX_BASE_DMA_3 + (offset << 2), data); + s3c24xx_dma_w(3, offset, data, mem_mask); } TIMER_CALLBACK_MEMBER( S3C24_CLASS_NAME::s3c24xx_dma_timer_exp ) { int ch = param; - verboselog( *this, 2, "DMA %d timer callback\n", ch); + verboselog(*this, 2, "DMA %d timer callback\n", ch); } /* I/O Port */ void S3C24_CLASS_NAME::s3c24xx_gpio_reset() { - s3c24xx_gpio_t *gpio = &m_gpio; - memset( &gpio->regs, 0, sizeof( gpio->regs)); - #if defined(DEVICE_S3C2400) - gpio->regs.gpacon = 0x0003FFFF; - gpio->regs.gpbcon = 0xAAAAAAAA; - gpio->regs.gpdup = 0x0620; - gpio->regs.gpeup = 0x0003; - #elif defined(DEVICE_S3C2410) - gpio->regs.gpacon = 0x007FFFFF; - gpio->regs.gpgup = 0xF800; - gpio->regs.misccr = 0x00010330; - gpio->regs.eintmask = 0x00FFFFF0; - gpio->regs.gstatus1 = 0x32410002; - #elif defined(DEVICE_S3C2440) - gpio->regs.gpacon = 0x00FFFFFF; - gpio->regs.gpgup = 0xFC00; - gpio->regs.misccr = 0x00010020; - gpio->regs.eintmask = 0x000FFFFF; - gpio->regs.gstatus1 = 0x32440001; - #endif - gpio->regs.gpdup = 0xF000; - #if defined(DEVICE_S3C2410) || defined(DEVICE_S3C2440) - gpio->regs.gstatus2 = 1 << 0; // Boot is caused by power on reset - #endif + memset(&m_gpio.regs, 0, sizeof(m_gpio.regs)); +#if defined(DEVICE_S3C2400) + m_gpio.regs.gpacon = 0x0003FFFF; + m_gpio.regs.gpbcon = 0xAAAAAAAA; + m_gpio.regs.gpdup = 0x0620; + m_gpio.regs.gpeup = 0x0003; +#elif defined(DEVICE_S3C2410) + m_gpio.regs.gpacon = 0x007FFFFF; + m_gpio.regs.gpgup = 0xF800; + m_gpio.regs.misccr = 0x00010330; + m_gpio.regs.eintmask = 0x00FFFFF0; + m_gpio.regs.gstatus1 = 0x32410002; +#elif defined(DEVICE_S3C2440) + m_gpio.regs.gpacon = 0x00FFFFFF; + m_gpio.regs.gpgup = 0xFC00; + m_gpio.regs.misccr = 0x00010020; + m_gpio.regs.eintmask = 0x000FFFFF; + m_gpio.regs.gstatus1 = 0x32440001; +#endif + m_gpio.regs.gpdup = 0xF000; +#if defined(DEVICE_S3C2410) || defined(DEVICE_S3C2440) + m_gpio.regs.gstatus2 = 1 << 0; // Boot is caused by power on reset +#endif } uint32_t S3C24_CLASS_NAME::iface_gpio_port_r(int port, uint32_t mask) @@ -1782,146 +1698,100 @@ uint16_t S3C24_CLASS_NAME::s3c24xx_gpio_get_mask( uint32_t con, int val) for (int i = 0; i < 16; i++) { if (((con >> (i << 1)) & 3) == val) - { mask = mask | (1 << i); - } } return mask; } READ32_MEMBER( S3C24_CLASS_NAME::s3c24xx_gpio_r ) { - s3c24xx_gpio_t *gpio = &m_gpio; uint32_t data = ((uint32_t*)&m_gpio.regs)[offset]; switch (offset) { - case S3C24XX_GPADAT : - { - data = iface_gpio_port_r( S3C24XX_GPIO_PORT_A, 0) & S3C24XX_GPADAT_MASK; - } + case S3C24XX_GPADAT : + data = iface_gpio_port_r( S3C24XX_GPIO_PORT_A, 0) & S3C24XX_GPADAT_MASK; break; - case S3C24XX_GPBDAT : - { - data = iface_gpio_port_r( S3C24XX_GPIO_PORT_B, s3c24xx_gpio_get_mask( gpio->regs.gpbcon, 0) & S3C24XX_GPBDAT_MASK) & S3C24XX_GPBDAT_MASK; - } + case S3C24XX_GPBDAT : + data = iface_gpio_port_r( S3C24XX_GPIO_PORT_B, s3c24xx_gpio_get_mask(m_gpio.regs.gpbcon, 0) & S3C24XX_GPBDAT_MASK) & S3C24XX_GPBDAT_MASK; break; - case S3C24XX_GPCDAT : - { - data = iface_gpio_port_r( S3C24XX_GPIO_PORT_C, s3c24xx_gpio_get_mask( gpio->regs.gpccon, 0) & S3C24XX_GPCDAT_MASK) & S3C24XX_GPCDAT_MASK; - } + case S3C24XX_GPCDAT : + data = iface_gpio_port_r( S3C24XX_GPIO_PORT_C, s3c24xx_gpio_get_mask(m_gpio.regs.gpccon, 0) & S3C24XX_GPCDAT_MASK) & S3C24XX_GPCDAT_MASK; break; - case S3C24XX_GPDDAT : - { - data = iface_gpio_port_r( S3C24XX_GPIO_PORT_D, s3c24xx_gpio_get_mask( gpio->regs.gpdcon, 0) & S3C24XX_GPDDAT_MASK) & S3C24XX_GPDDAT_MASK; - } + case S3C24XX_GPDDAT : + data = iface_gpio_port_r( S3C24XX_GPIO_PORT_D, s3c24xx_gpio_get_mask(m_gpio.regs.gpdcon, 0) & S3C24XX_GPDDAT_MASK) & S3C24XX_GPDDAT_MASK; break; - case S3C24XX_GPEDAT : - { - data = iface_gpio_port_r( S3C24XX_GPIO_PORT_E, s3c24xx_gpio_get_mask( gpio->regs.gpecon, 0) & S3C24XX_GPEDAT_MASK) & S3C24XX_GPEDAT_MASK; - } + case S3C24XX_GPEDAT : + data = iface_gpio_port_r( S3C24XX_GPIO_PORT_E, s3c24xx_gpio_get_mask(m_gpio.regs.gpecon, 0) & S3C24XX_GPEDAT_MASK) & S3C24XX_GPEDAT_MASK; break; - case S3C24XX_GPFDAT : - { - data = iface_gpio_port_r( S3C24XX_GPIO_PORT_F, s3c24xx_gpio_get_mask( gpio->regs.gpfcon, 0) & S3C24XX_GPFDAT_MASK) & S3C24XX_GPFDAT_MASK; - } + case S3C24XX_GPFDAT : + data = iface_gpio_port_r( S3C24XX_GPIO_PORT_F, s3c24xx_gpio_get_mask(m_gpio.regs.gpfcon, 0) & S3C24XX_GPFDAT_MASK) & S3C24XX_GPFDAT_MASK; break; - case S3C24XX_GPGDAT : - { - data = iface_gpio_port_r( S3C24XX_GPIO_PORT_G, s3c24xx_gpio_get_mask( gpio->regs.gpgcon, 0) & S3C24XX_GPGDAT_MASK) & S3C24XX_GPGDAT_MASK; - } + case S3C24XX_GPGDAT : + data = iface_gpio_port_r( S3C24XX_GPIO_PORT_G, s3c24xx_gpio_get_mask(m_gpio.regs.gpgcon, 0) & S3C24XX_GPGDAT_MASK) & S3C24XX_GPGDAT_MASK; break; #if defined(DEVICE_S3C2410) || defined(DEVICE_S3C2440) - case S3C24XX_GPHDAT : - { - data = iface_gpio_port_r( S3C24XX_GPIO_PORT_H, s3c24xx_gpio_get_mask( gpio->regs.gphcon, 0) & S3C24XX_GPHDAT_MASK) & S3C24XX_GPHDAT_MASK; - } + case S3C24XX_GPHDAT : + data = iface_gpio_port_r( S3C24XX_GPIO_PORT_H, s3c24xx_gpio_get_mask(m_gpio.regs.gphcon, 0) & S3C24XX_GPHDAT_MASK) & S3C24XX_GPHDAT_MASK; break; #endif #if defined(DEVICE_S3C2440) - case S3C24XX_GPJDAT : - { - data = iface_gpio_port_r( S3C24XX_GPIO_PORT_J, s3c24xx_gpio_get_mask( gpio->regs.gpjcon, 0) & S3C24XX_GPJDAT_MASK) & S3C24XX_GPJDAT_MASK; - } + case S3C24XX_GPJDAT : + data = iface_gpio_port_r( S3C24XX_GPIO_PORT_J, s3c24xx_gpio_get_mask(m_gpio.regs.gpjcon, 0) & S3C24XX_GPJDAT_MASK) & S3C24XX_GPJDAT_MASK; break; #endif } - verboselog( *this, 9, "(GPIO) %08X -> %08X\n", S3C24XX_BASE_GPIO + (offset << 2), data); + verboselog(*this, 9, "(GPIO) %08X -> %08X\n", S3C24XX_BASE_GPIO + (offset << 2), data); return data; } WRITE32_MEMBER( S3C24_CLASS_NAME::s3c24xx_gpio_w ) { - s3c24xx_gpio_t *gpio = &m_gpio; #if defined(DEVICE_S3C2410) || defined(DEVICE_S3C2440) uint32_t old_value = ((uint32_t*)&m_gpio.regs)[offset]; #endif - verboselog( *this, 9, "(GPIO) %08X <- %08X\n", S3C24XX_BASE_GPIO + (offset << 2), data); + verboselog(*this, 9, "(GPIO) %08X <- %08X\n", S3C24XX_BASE_GPIO + (offset << 2), data); COMBINE_DATA(&((uint32_t*)&m_gpio.regs)[offset]); switch (offset) { - case S3C24XX_GPADAT : - { - iface_gpio_port_w( S3C24XX_GPIO_PORT_A, gpio->regs.gpacon ^ 0xFFFFFFFF, data & S3C24XX_GPADAT_MASK); - } + case S3C24XX_GPADAT: + iface_gpio_port_w(S3C24XX_GPIO_PORT_A, m_gpio.regs.gpacon ^ 0xFFFFFFFF, data & S3C24XX_GPADAT_MASK); break; - case S3C24XX_GPBDAT : - { - iface_gpio_port_w( S3C24XX_GPIO_PORT_B, s3c24xx_gpio_get_mask( gpio->regs.gpbcon, 1) & S3C24XX_GPBDAT_MASK, data & S3C24XX_GPBDAT_MASK); - } + case S3C24XX_GPBDAT: + iface_gpio_port_w(S3C24XX_GPIO_PORT_B, s3c24xx_gpio_get_mask(m_gpio.regs.gpbcon, 1) & S3C24XX_GPBDAT_MASK, data & S3C24XX_GPBDAT_MASK); break; - case S3C24XX_GPCDAT : - { - iface_gpio_port_w( S3C24XX_GPIO_PORT_C, s3c24xx_gpio_get_mask( gpio->regs.gpccon, 1) & S3C24XX_GPCDAT_MASK, data & S3C24XX_GPCDAT_MASK); - } + case S3C24XX_GPCDAT: + iface_gpio_port_w(S3C24XX_GPIO_PORT_C, s3c24xx_gpio_get_mask(m_gpio.regs.gpccon, 1) & S3C24XX_GPCDAT_MASK, data & S3C24XX_GPCDAT_MASK); break; - case S3C24XX_GPDDAT : - { - iface_gpio_port_w( S3C24XX_GPIO_PORT_D, s3c24xx_gpio_get_mask( gpio->regs.gpdcon, 1) & S3C24XX_GPDDAT_MASK, data & S3C24XX_GPDDAT_MASK); - } + case S3C24XX_GPDDAT: + iface_gpio_port_w(S3C24XX_GPIO_PORT_D, s3c24xx_gpio_get_mask(m_gpio.regs.gpdcon, 1) & S3C24XX_GPDDAT_MASK, data & S3C24XX_GPDDAT_MASK); break; - case S3C24XX_GPEDAT : - { - iface_gpio_port_w( S3C24XX_GPIO_PORT_E, s3c24xx_gpio_get_mask( gpio->regs.gpecon, 1) & S3C24XX_GPEDAT_MASK, data & S3C24XX_GPEDAT_MASK); - } + case S3C24XX_GPEDAT: + iface_gpio_port_w(S3C24XX_GPIO_PORT_E, s3c24xx_gpio_get_mask(m_gpio.regs.gpecon, 1) & S3C24XX_GPEDAT_MASK, data & S3C24XX_GPEDAT_MASK); break; - case S3C24XX_GPFDAT : - { - iface_gpio_port_w( S3C24XX_GPIO_PORT_F, s3c24xx_gpio_get_mask( gpio->regs.gpfcon, 1) & S3C24XX_GPFDAT_MASK, data & S3C24XX_GPFDAT_MASK); - } + case S3C24XX_GPFDAT: + iface_gpio_port_w(S3C24XX_GPIO_PORT_F, s3c24xx_gpio_get_mask(m_gpio.regs.gpfcon, 1) & S3C24XX_GPFDAT_MASK, data & S3C24XX_GPFDAT_MASK); break; - case S3C24XX_GPGDAT : - { - iface_gpio_port_w( S3C24XX_GPIO_PORT_G, s3c24xx_gpio_get_mask( gpio->regs.gpgcon, 1) & S3C24XX_GPGDAT_MASK, data & S3C24XX_GPGDAT_MASK); - } + case S3C24XX_GPGDAT: + iface_gpio_port_w(S3C24XX_GPIO_PORT_G, s3c24xx_gpio_get_mask(m_gpio.regs.gpgcon, 1) & S3C24XX_GPGDAT_MASK, data & S3C24XX_GPGDAT_MASK); break; #if defined(DEVICE_S3C2410) || defined(DEVICE_S3C2440) - case S3C24XX_GPHDAT : - { - iface_gpio_port_w( S3C24XX_GPIO_PORT_H, s3c24xx_gpio_get_mask( gpio->regs.gphcon, 1) & S3C24XX_GPHDAT_MASK, data & S3C24XX_GPHDAT_MASK); - } + case S3C24XX_GPHDAT: + iface_gpio_port_w(S3C24XX_GPIO_PORT_H, s3c24xx_gpio_get_mask(m_gpio.regs.gphcon, 1) & S3C24XX_GPHDAT_MASK, data & S3C24XX_GPHDAT_MASK); break; - case S3C24XX_EINTPEND : - { - m_gpio.regs.eintpend = (old_value & ~data); - s3c24xx_check_pending_eint(); - } + case S3C24XX_EINTPEND: + m_gpio.regs.eintpend = (old_value & ~data); + s3c24xx_check_pending_eint(); break; - case S3C24XX_EINTMASK : - { - s3c24xx_check_pending_eint(); - } + case S3C24XX_EINTMASK: + s3c24xx_check_pending_eint(); break; - case S3C24XX_GSTATUS2 : - { - m_gpio.regs.gstatus2 = (old_value & ~data) & 7; // "The setting is cleared by writing '1' to this bit" - } + case S3C24XX_GSTATUS2: + m_gpio.regs.gstatus2 = (old_value & ~data) & 7; // "The setting is cleared by writing '1' to this bit" break; #endif #if defined(DEVICE_S3C2440) - case S3C24XX_GPJDAT : - { - iface_gpio_port_w( S3C24XX_GPIO_PORT_J, s3c24xx_gpio_get_mask( gpio->regs.gpjcon, 1) & S3C24XX_GPJDAT_MASK, data & S3C24XX_GPJDAT_MASK); - } + case S3C24XX_GPJDAT: + iface_gpio_port_w(S3C24XX_GPIO_PORT_J, s3c24xx_gpio_get_mask(m_gpio.regs.gpjcon, 1) & S3C24XX_GPJDAT_MASK, data & S3C24XX_GPJDAT_MASK); break; #endif } @@ -1929,43 +1799,22 @@ WRITE32_MEMBER( S3C24_CLASS_NAME::s3c24xx_gpio_w ) /* Memory Controller */ -void S3C24_CLASS_NAME::s3c24xx_memcon_reset() -{ - s3c24xx_memcon_t *memcon = &m_memcon; - memset( &memcon->regs, 0, sizeof( memcon->regs)); - memcon->regs.data[0x04/4] = 0x00000700; - memcon->regs.data[0x08/4] = 0x00000700; - memcon->regs.data[0x0C/4] = 0x00000700; - memcon->regs.data[0x10/4] = 0x00000700; - memcon->regs.data[0x14/4] = 0x00000700; - memcon->regs.data[0x18/4] = 0x00000700; - memcon->regs.data[0x1C/4] = 0x00018008; - memcon->regs.data[0x20/4] = 0x00018008; - memcon->regs.data[0x24/4] = 0x00AC0000; -} - READ32_MEMBER( S3C24_CLASS_NAME::s3c24xx_memcon_r ) { assert(offset < ARRAY_LENGTH(m_memcon.regs.data)); uint32_t data = m_memcon.regs.data[offset]; - verboselog( *this, 9, "(MEMCON) %08X -> %08X\n", S3C24XX_BASE_MEMCON + (offset << 2), data); + verboselog(*this, 9, "(MEMCON) %08X -> %08X\n", S3C24XX_BASE_MEMCON + (offset << 2), data); return data; } WRITE32_MEMBER( S3C24_CLASS_NAME::s3c24xx_memcon_w ) { - verboselog( *this, 9, "(MEMCON) %08X <- %08X\n", S3C24XX_BASE_MEMCON + (offset << 2), data); + verboselog(*this, 9, "(MEMCON) %08X <- %08X\n", S3C24XX_BASE_MEMCON + (offset << 2), data); COMBINE_DATA(&m_memcon.regs.data[offset]); } /* USB Host Controller */ -void S3C24_CLASS_NAME::s3c24xx_usb_host_reset() -{ - s3c24xx_usbhost_t *usbhost = &m_usbhost; - memset( &usbhost->regs, 0, sizeof( usbhost->regs)); -} - READ32_MEMBER( S3C24_CLASS_NAME::s3c24xx_usb_host_r ) { uint32_t data = m_usbhost.regs.data[offset]; @@ -1999,42 +1848,32 @@ READ32_MEMBER( S3C24_CLASS_NAME::s3c24xx_usb_host_r ) } break; } - verboselog( *this, 9, "(USB H) %08X -> %08X\n", S3C24XX_BASE_USBHOST + (offset << 2), data); + verboselog(*this, 9, "(USB H) %08X -> %08X\n", S3C24XX_BASE_USBHOST + (offset << 2), data); return data; } WRITE32_MEMBER( S3C24_CLASS_NAME::s3c24xx_usb_host_w ) { - verboselog( *this, 9, "(USB H) %08X <- %08X\n", S3C24XX_BASE_USBHOST + (offset << 2), data); + verboselog(*this, 9, "(USB H) %08X <- %08X\n", S3C24XX_BASE_USBHOST + (offset << 2), data); COMBINE_DATA(&m_usbhost.regs.data[offset]); } /* UART */ -void S3C24_CLASS_NAME::s3c24xx_uart_reset() -{ - for (auto & elem : m_uart) - { - s3c24xx_uart_t *uart = &elem; - memset( &uart->regs, 0, sizeof( uart->regs)); - uart->regs.utrstat = 6; - } -} - uint32_t S3C24_CLASS_NAME::s3c24xx_uart_r(uint32_t ch, uint32_t offset) { uint32_t data = ((uint32_t*)&m_uart[ch].regs)[offset]; switch (offset) { - case S3C24XX_UTRSTAT : + case uart_t::UTRSTAT: { data = (data & ~0x00000006) | 0x00000004 | 0x00000002; // [bit 2] Transmitter empty / [bit 1] Transmit buffer empty } break; - case S3C24XX_URXH : + case uart_t::URXH: { uint8_t rxdata = data & 0xFF; - verboselog( *this, 5, "UART %d read %02X (%c)\n", ch, rxdata, ((rxdata >= 32) && (rxdata < 128)) ? (char)rxdata : '?'); + verboselog(*this, 5, "UART %d read %02X (%c)\n", ch, rxdata, ((rxdata >= 32) && (rxdata < 128)) ? (char)rxdata : '?'); m_uart[ch].regs.utrstat &= ~1; // [bit 0] Receive buffer data ready } break; @@ -2047,17 +1886,17 @@ void S3C24_CLASS_NAME::s3c24xx_uart_w(uint32_t ch, uint32_t offset, uint32_t dat COMBINE_DATA(&((uint32_t*)&m_uart[ch].regs)[offset]); switch (offset) { - case S3C24XX_UFCON : + case uart_t::UFCON : { m_uart[ch].regs.ufcon &= ~((1 << 2) | (1 << 1)); // bits 1 and 2 are auto-cleared after resetting FIFO } break; - case S3C24XX_UTXH : + case uart_t::UTXH : { uint8_t txdata = data & 0xFF; verboselog( *this, 5, "UART %d write %02X (%c)\n", ch, txdata, ((txdata >= 32) && (txdata < 128)) ? (char)txdata : '?'); #ifdef UART_PRINTF - printf( "%c", ((txdata >= 32) && (txdata < 128)) ? (char)txdata : '?'); + printf("%c", ((txdata >= 32) && (txdata < 128)) ? (char)txdata : '?'); #endif } break; @@ -2066,14 +1905,14 @@ void S3C24_CLASS_NAME::s3c24xx_uart_w(uint32_t ch, uint32_t offset, uint32_t dat READ32_MEMBER( S3C24_CLASS_NAME::s3c24xx_uart_0_r ) { - uint32_t data = s3c24xx_uart_r( 0, offset); + uint32_t data = s3c24xx_uart_r(0, offset); // verboselog( *this, 9, "(UART 0) %08X -> %08X\n", S3C24XX_BASE_UART_0 + (offset << 2), data); return data; } READ32_MEMBER( S3C24_CLASS_NAME::s3c24xx_uart_1_r ) { - uint32_t data = s3c24xx_uart_r( 1, offset); + uint32_t data = s3c24xx_uart_r(1, offset); // verboselog( *this, 9, "(UART 1) %08X -> %08X\n", S3C24XX_BASE_UART_1 + (offset << 2), data); return data; } @@ -2082,7 +1921,7 @@ READ32_MEMBER( S3C24_CLASS_NAME::s3c24xx_uart_1_r ) READ32_MEMBER( S3C24_CLASS_NAME::s3c24xx_uart_2_r ) { - uint32_t data = s3c24xx_uart_r( 2, offset); + uint32_t data = s3c24xx_uart_r(2, offset); // verboselog( *this, 9, "(UART 2) %08X -> %08X\n", S3C24XX_BASE_UART_2 + (offset << 2), data); return data; } @@ -2092,13 +1931,13 @@ READ32_MEMBER( S3C24_CLASS_NAME::s3c24xx_uart_2_r ) WRITE32_MEMBER( S3C24_CLASS_NAME::s3c24xx_uart_0_w ) { // verboselog( *this, 9, "(UART 0) %08X <- %08X\n", S3C24XX_BASE_UART_0 + (offset << 2), data); - s3c24xx_uart_w( 0, offset, data, mem_mask); + s3c24xx_uart_w(0, offset, data, mem_mask); } WRITE32_MEMBER( S3C24_CLASS_NAME::s3c24xx_uart_1_w ) { // verboselog( *this, 9, "(UART 1) %08X <- %08X\n", S3C24XX_BASE_UART_1 + (offset << 2), data); - s3c24xx_uart_w( 1, offset, data, mem_mask); + s3c24xx_uart_w(1, offset, data, mem_mask); } #if defined(DEVICE_S3C2410) || defined(DEVICE_S3C2440) @@ -2106,7 +1945,7 @@ WRITE32_MEMBER( S3C24_CLASS_NAME::s3c24xx_uart_1_w ) WRITE32_MEMBER( S3C24_CLASS_NAME::s3c24xx_uart_2_w ) { // verboselog( *this, 9, "(UART 2) %08X <- %08X\n", S3C24XX_BASE_UART_2 + (offset << 2), data); - s3c24xx_uart_w( 2, offset, data, mem_mask); + s3c24xx_uart_w(2, offset, data, mem_mask); } #endif @@ -2122,91 +1961,57 @@ void S3C24_CLASS_NAME::s3c24xx_uart_fifo_w(int uart, uint8_t data) void S3C24_CLASS_NAME::s3c24xx_usb_device_reset() { - s3c24xx_usbdev_t *usbdev = &m_usbdev; - memset( &usbdev->regs, 0, sizeof( usbdev->regs)); - #if defined(DEVICE_S3C2400) - usbdev->regs.data[0x0C/4] = 0x033F; - usbdev->regs.data[0x14/4] = 0x000A; - usbdev->regs.data[0x24/4] = 0x0001; - usbdev->regs.data[0x44/4] = 0x0001; - usbdev->regs.data[0x54/4] = 0x0001; - usbdev->regs.data[0x64/4] = 0x0001; - usbdev->regs.data[0x74/4] = 0x0001; - usbdev->regs.data[0xB8/4] = 0x00FF; - #elif defined(DEVICE_S3C2410) || defined(DEVICE_S3C2440) - usbdev->regs.data[0x1C/4] = 0xFF; - usbdev->regs.data[0x2C/4] = 0x04; - usbdev->regs.data[0x40/4] = 0x01; - usbdev->regs.data[0x48/4] = 0x20; - #endif + memset(&m_usbdev.regs, 0, sizeof(m_usbdev.regs)); +#if defined(DEVICE_S3C2400) + m_usbdev.regs.data[0x0C/4] = 0x033F; + m_usbdev.regs.data[0x14/4] = 0x000A; + m_usbdev.regs.data[0x24/4] = 0x0001; + m_usbdev.regs.data[0x44/4] = 0x0001; + m_usbdev.regs.data[0x54/4] = 0x0001; + m_usbdev.regs.data[0x64/4] = 0x0001; + m_usbdev.regs.data[0x74/4] = 0x0001; + m_usbdev.regs.data[0xB8/4] = 0x00FF; +#elif defined(DEVICE_S3C2410) || defined(DEVICE_S3C2440) + m_usbdev.regs.data[0x1C/4] = 0xFF; + m_usbdev.regs.data[0x2C/4] = 0x04; + m_usbdev.regs.data[0x40/4] = 0x01; + m_usbdev.regs.data[0x48/4] = 0x20; +#endif } READ32_MEMBER( S3C24_CLASS_NAME::s3c24xx_usb_device_r ) { uint32_t data = m_usbdev.regs.data[offset]; - verboselog( *this, 9, "(USB D) %08X -> %08X\n", S3C24XX_BASE_USBDEV + (offset << 2), data); + verboselog(*this, 9, "(USB D) %08X -> %08X\n", S3C24XX_BASE_USBDEV + (offset << 2), data); return data; } WRITE32_MEMBER( S3C24_CLASS_NAME::s3c24xx_usb_device_w ) { - verboselog( *this, 9, "(USB D) %08X <- %08X\n", S3C24XX_BASE_USBDEV + (offset << 2), data); + verboselog(*this, 9, "(USB D) %08X <- %08X\n", S3C24XX_BASE_USBDEV + (offset << 2), data); COMBINE_DATA(&m_usbdev.regs.data[offset]); } /* Watchdog Timer */ -void S3C24_CLASS_NAME::s3c24xx_wdt_reset() -{ - s3c24xx_wdt_t *wdt = &m_wdt; - memset( &wdt->regs, 0, sizeof( wdt->regs)); - wdt->regs.wtcon = 0x8021; - wdt->regs.wtdat = 0x8000; - wdt->regs.wtcnt = 0x8000; - wdt->timer->adjust( attotime::never); -} - -#if defined(DEVICE_S3C2410) - -uint16_t S3C24_CLASS_NAME::s3c24xx_wdt_calc_current_count() -{ - double timeleft, x1, x2; - uint32_t cnt; - timeleft = m_wdt.timer->remaining( ).as_double(); -// printf( "timeleft %f freq %d cnt %d\n", timeleft, m_wdt.freq, m_wdt.cnt); - x1 = 1 / ((double)m_wdt.freq / m_wdt.cnt); - x2 = x1 / timeleft; -// printf( "x1 %f\n", x1); - cnt = m_wdt.cnt / x2; -// printf( "cnt %d\n", cnt); - return cnt; -} - -#else - -uint16_t S3C24_CLASS_NAME::s3c24xx_wdt_calc_current_count() -{ - return 0; -} - -#endif - READ32_MEMBER( S3C24_CLASS_NAME::s3c24xx_wdt_r ) { uint32_t data = ((uint32_t*)&m_wdt.regs)[offset]; switch (offset) { - case S3C24XX_WTCNT : + case wdt_t::WTCNT: + // is wdt active? + if (BIT(m_wdt.regs.wtcon, 5)) { - // is wdt active? - if ((m_wdt.regs.wtcon & (1 << 5)) != 0) - { - data = s3c24xx_wdt_calc_current_count(); - } +#if defined(DEVICE_S3C2410) + data = m_wdt.calc_current_count(); +#else + data = 0; +#endif } break; } - verboselog( *this, 9, "(WDT) %08X -> %08X\n", S3C24XX_BASE_WDT + (offset << 2), data); + verboselog(*this, 9, "(WDT) %08X -> %08X\n", S3C24XX_BASE_WDT + (offset << 2), data); return data; } @@ -2214,13 +2019,13 @@ void S3C24_CLASS_NAME::s3c24xx_wdt_start() { uint32_t pclk, prescaler, clock; double freq, hz; - verboselog( *this, 1, "WDT start\n"); + verboselog(*this, 1, "WDT start\n"); pclk = s3c24xx_get_pclk(); - prescaler = BITS( m_wdt.regs.wtcon, 15, 8); - clock = 16 << BITS( m_wdt.regs.wtcon, 4, 3); + prescaler = BITS(m_wdt.regs.wtcon, 15, 8); + clock = 16 << BITS(m_wdt.regs.wtcon, 4, 3); freq = (double)pclk / (prescaler + 1) / clock; hz = freq / m_wdt.regs.wtcnt; - verboselog( *this, 5, "WDT pclk %d prescaler %d clock %d freq %f hz %f\n", pclk, prescaler, clock, freq, hz); + verboselog(*this, 5, "WDT pclk %d prescaler %d clock %d freq %f hz %f\n", pclk, prescaler, clock, freq, hz); m_wdt.timer->adjust( attotime::from_hz( hz), 0, attotime::from_hz( hz)); #if defined(DEVICE_S3C2410) m_wdt.freq = freq; @@ -2231,20 +2036,20 @@ void S3C24_CLASS_NAME::s3c24xx_wdt_start() void S3C24_CLASS_NAME::s3c24xx_wdt_stop() { verboselog( *this, 1, "WDT stop\n"); - m_wdt.regs.wtcnt = s3c24xx_wdt_calc_current_count(); - m_wdt.timer->adjust( attotime::never); +#if defined(DEVICE_S3C2410) + m_wdt.regs.wtcnt = m_wdt.calc_current_count(); +#else + m_wdt.regs.wtcnt = 0; +#endif + m_wdt.timer->adjust(attotime::never); } void S3C24_CLASS_NAME::s3c24xx_wdt_recalc() { - if ((m_wdt.regs.wtcon & (1 << 5)) != 0) - { + if (BIT(m_wdt.regs.wtcon, 5)) s3c24xx_wdt_start(); - } else - { s3c24xx_wdt_stop(); - } } WRITE32_MEMBER( S3C24_CLASS_NAME::s3c24xx_wdt_w ) @@ -2254,13 +2059,9 @@ WRITE32_MEMBER( S3C24_CLASS_NAME::s3c24xx_wdt_w ) COMBINE_DATA(&((uint32_t*)&m_wdt.regs)[offset]); switch (offset) { - case S3C24XX_WTCON : - { - if ((data & (1 << 5)) != (old_value & (1 << 5))) - { - s3c24xx_wdt_recalc(); - } - } + case wdt_t::WTCON : + if (BIT(data ^ old_value, 5)) + s3c24xx_wdt_recalc(); break; } } @@ -2268,20 +2069,20 @@ WRITE32_MEMBER( S3C24_CLASS_NAME::s3c24xx_wdt_w ) TIMER_CALLBACK_MEMBER( S3C24_CLASS_NAME::s3c24xx_wdt_timer_exp ) { verboselog( *this, 2, "WDT timer callback\n"); - if ((m_wdt.regs.wtcon & (1 << 2)) != 0) + if (BIT(m_wdt.regs.wtcon, 2)) { #if defined(DEVICE_S3C2400) || defined(DEVICE_S3C2410) - s3c24xx_request_irq( S3C24XX_INT_WDT); + s3c24xx_request_irq(S3C24XX_INT_WDT); #else - s3c24xx_request_subirq( S3C24XX_SUBINT_WDT); + s3c24xx_request_subirq(S3C24XX_SUBINT_WDT); #endif } - if ((m_wdt.regs.wtcon & (1 << 0)) != 0) + if (BIT(m_wdt.regs.wtcon, 0)) { s3c24xx_reset(); - #if defined(DEVICE_S3C2410) || defined(DEVICE_S3C2440) +#if defined(DEVICE_S3C2410) || defined(DEVICE_S3C2440) m_gpio.regs.gstatus2 = 1 << 2; // Watchdog reset - #endif +#endif } } @@ -2289,129 +2090,122 @@ TIMER_CALLBACK_MEMBER( S3C24_CLASS_NAME::s3c24xx_wdt_timer_exp ) void S3C24_CLASS_NAME::s3c24xx_iic_reset() { - s3c24xx_iic_t *iic = &m_iic; - memset( &iic->regs, 0, sizeof( iic->regs)); - iic->count = 0; - iic->timer->adjust( attotime::never); + memset(&m_iic.regs, 0, sizeof(m_iic.regs)); + m_iic.count = 0; + m_iic.timer->adjust(attotime::never); } void S3C24_CLASS_NAME::iface_i2c_scl_w( int state) { if (!m_scl_w_cb.isnull()) - { - (m_scl_w_cb)( state); - } + m_scl_w_cb(state); } void S3C24_CLASS_NAME::iface_i2c_sda_w(int state) { if (!m_sda_w_cb.isnull()) - { - (m_sda_w_cb)(state); - } + m_sda_w_cb(state); } int S3C24_CLASS_NAME::iface_i2c_sda_r() { if (!m_sda_r_cb.isnull()) - { - return (m_sda_r_cb)(); - } + return m_sda_r_cb(); else - { - return 0; - } + return 1; } void S3C24_CLASS_NAME::i2c_send_start() { - verboselog( *this, 5, "i2c_send_start\n"); - iface_i2c_sda_w( 1); - iface_i2c_scl_w( 1); - iface_i2c_sda_w( 0); - iface_i2c_scl_w( 0); + // FIXME: this needs to sense busy condition and use realistic timing + verboselog(*this, 5, "i2c_send_start\n"); + iface_i2c_sda_w(1); + iface_i2c_scl_w(1); + iface_i2c_sda_w(0); + iface_i2c_scl_w(0); } void S3C24_CLASS_NAME::i2c_send_stop() { - verboselog( *this, 5, "i2c_send_stop\n"); - iface_i2c_sda_w( 0); - iface_i2c_scl_w( 1); - iface_i2c_sda_w( 1); - iface_i2c_scl_w( 0); + // FIXME: this needs realistic timing + verboselog(*this, 5, "i2c_send_stop\n"); + iface_i2c_sda_w(0); + iface_i2c_scl_w(1); + iface_i2c_sda_w(1); + iface_i2c_scl_w(0); } uint8_t S3C24_CLASS_NAME::i2c_receive_byte(int ack) { uint8_t data = 0; - verboselog( *this, 5, "i2c_receive_byte ...\n"); - iface_i2c_sda_w( 1); + verboselog(*this, 5, "i2c_receive_byte ...\n"); + iface_i2c_sda_w(1); for (int i = 0; i < 8; i++) { iface_i2c_scl_w( 1); data = (data << 1) + (iface_i2c_sda_r() ? 1 : 0); iface_i2c_scl_w( 0); } - verboselog( *this, 5, "recv data %02X\n", data); - verboselog( *this, 5, "send ack %d\n", ack); - iface_i2c_sda_w( ack ? 0 : 1); - iface_i2c_scl_w( 1); - iface_i2c_scl_w( 0); + verboselog(*this, 5, "recv data %02X\n", data); + verboselog(*this, 5, "send ack %d\n", ack); + iface_i2c_sda_w(ack ? 0 : 1); + iface_i2c_scl_w(1); + iface_i2c_scl_w(0); return data; } int S3C24_CLASS_NAME::i2c_send_byte(uint8_t data) { int ack; - verboselog( *this, 5, "i2c_send_byte ...\n"); - verboselog( *this, 5, "send data %02X\n", data); + verboselog(*this, 5, "i2c_send_byte ...\n"); + verboselog(*this, 5, "send data %02X\n", data); for (int i = 0; i < 8; i++) { - iface_i2c_sda_w( (data & 0x80) ? 1 : 0); + iface_i2c_sda_w((data & 0x80) ? 1 : 0); data = data << 1; - iface_i2c_scl_w( 1); - iface_i2c_scl_w( 0); + iface_i2c_scl_w(1); + iface_i2c_scl_w(0); } - iface_i2c_sda_w( 1); // ack bit - iface_i2c_scl_w( 1); + iface_i2c_sda_w(1); // ack bit + iface_i2c_scl_w(1); ack = iface_i2c_sda_r(); - verboselog( *this, 5, "recv ack %d\n", ack); - iface_i2c_scl_w( 0); + verboselog(*this, 5, "recv ack %d\n", ack); + iface_i2c_scl_w(0); return ack; } void S3C24_CLASS_NAME::iic_start() { int mode_selection; - verboselog( *this, 1, "IIC start\n"); + verboselog(*this, 1, "IIC start\n"); i2c_send_start(); mode_selection = BITS( m_iic.regs.iicstat, 7, 6); switch (mode_selection) { - case 2 : i2c_send_byte( m_iic.regs.iicds | 0x01); break; - case 3 : i2c_send_byte( m_iic.regs.iicds & 0xFE); break; + case 2: i2c_send_byte( m_iic.regs.iicds | 0x01); break; + case 3: i2c_send_byte( m_iic.regs.iicds & 0xFE); break; } m_iic.timer->adjust( attotime::from_usec( 1)); } void S3C24_CLASS_NAME::iic_stop() { - verboselog( *this, 1, "IIC stop\n"); + verboselog(*this, 1, "IIC stop\n"); i2c_send_stop(); - m_iic.timer->adjust( attotime::never); + m_iic.timer->adjust(attotime::never); } void S3C24_CLASS_NAME::iic_resume() { int mode_selection; - verboselog( *this, 1, "IIC resume\n"); - mode_selection = BITS( m_iic.regs.iicstat, 7, 6); + verboselog(*this, 1, "IIC resume\n"); + mode_selection = BITS(m_iic.regs.iicstat, 7, 6); switch (mode_selection) { - case 2 : m_iic.regs.iicds = i2c_receive_byte( BIT( m_iic.regs.iiccon, 7)); break; - case 3 : i2c_send_byte( m_iic.regs.iicds & 0xFF); break; + case 2: m_iic.regs.iicds = i2c_receive_byte(BIT( m_iic.regs.iiccon, 7)); break; + case 3: i2c_send_byte( m_iic.regs.iicds & 0xFF); break; } - m_iic.timer->adjust( attotime::from_usec( 1)); + m_iic.timer->adjust(attotime::from_usec(1)); } READ32_MEMBER( S3C24_CLASS_NAME::s3c24xx_iic_r ) @@ -2419,28 +2213,26 @@ READ32_MEMBER( S3C24_CLASS_NAME::s3c24xx_iic_r ) uint32_t data = ((uint32_t*)&m_iic.regs)[offset]; switch (offset) { - case S3C24XX_IICSTAT : - { - data = data & ~0x0000000F; - } + case S3C24XX_IICSTAT: + data = data & ~0x0000000F; break; } - verboselog( *this, 9, "(IIC) %08X -> %08X\n", S3C24XX_BASE_IIC + (offset << 2), data); + verboselog(*this, 9, "(IIC) %08X -> %08X\n", S3C24XX_BASE_IIC + (offset << 2), data); return data; } WRITE32_MEMBER( S3C24_CLASS_NAME::s3c24xx_iic_w ) { uint32_t old_value = ((uint32_t*)&m_iic.regs)[offset]; - verboselog( *this, 9, "(IIC) %08X <- %08X\n", S3C24XX_BASE_IIC + (offset << 2), data); + verboselog(*this, 9, "(IIC) %08X <- %08X\n", S3C24XX_BASE_IIC + (offset << 2), data); COMBINE_DATA(&((uint32_t*)&m_iic.regs)[offset]); switch (offset) { - case S3C24XX_IICCON : + case S3C24XX_IICCON: { int interrupt_pending_flag; #if 0 - const int div_table[] = { 16, 512}; + static constexpr int div_table[] = { 16, 512 }; int enable_interrupt, transmit_clock_value, tx_clock_source_selection double clock; transmit_clock_value = (data >> 0) & 0xF; @@ -2448,14 +2240,14 @@ WRITE32_MEMBER( S3C24_CLASS_NAME::s3c24xx_iic_w ) enable_interrupt = (data >> 5) & 1; clock = (double)s3c24xx_get_pclk() / div_table[tx_clock_source_selection] / (transmit_clock_value + 1); #endif - interrupt_pending_flag = BIT( old_value, 4); + interrupt_pending_flag = BIT(old_value, 4); if (interrupt_pending_flag != 0) { - interrupt_pending_flag = BIT( data, 4); + interrupt_pending_flag = BIT(data, 4); if (interrupt_pending_flag == 0) { int start_stop_condition; - start_stop_condition = BIT( m_iic.regs.iicstat, 5); + start_stop_condition = BIT(m_iic.regs.iicstat, 5); if (start_stop_condition != 0) { if (m_iic.count == 0) @@ -2476,7 +2268,7 @@ WRITE32_MEMBER( S3C24_CLASS_NAME::s3c24xx_iic_w ) } } break; - case S3C24XX_IICSTAT : + case S3C24XX_IICSTAT: { int interrupt_pending_flag; m_iic.count = 0; @@ -2510,9 +2302,9 @@ WRITE32_MEMBER( S3C24_CLASS_NAME::s3c24xx_iic_w ) TIMER_CALLBACK_MEMBER( S3C24_CLASS_NAME::s3c24xx_iic_timer_exp ) { int enable_interrupt; - verboselog( *this, 2, "IIC timer callback\n"); + verboselog(*this, 2, "IIC timer callback\n"); m_iic.count++; - enable_interrupt = BIT( m_iic.regs.iiccon, 5); + enable_interrupt = BIT(m_iic.regs.iiccon, 5); if (enable_interrupt) { m_iic.regs.iiccon |= (1 << 4); // [bit 4] interrupt is pending @@ -2522,21 +2314,10 @@ TIMER_CALLBACK_MEMBER( S3C24_CLASS_NAME::s3c24xx_iic_timer_exp ) /* IIS */ -void S3C24_CLASS_NAME::s3c24xx_iis_reset() -{ - s3c24xx_iis_t *iis = &m_iis; - memset( &iis->regs, 0, sizeof( iis->regs)); - iis->fifo_index = 0; - iis->regs.iiscon = 0x0100; - iis->timer->adjust( attotime::never); -} - void S3C24_CLASS_NAME::iface_i2s_data_w(int ch, uint16_t data) { if (!m_data_w_cb.isnull()) - { - (m_data_w_cb)( ch, data, 0); - } + (m_data_w_cb)(ch, data, 0); } void S3C24_CLASS_NAME::s3c24xx_iis_start() @@ -2563,14 +2344,10 @@ void S3C24_CLASS_NAME::s3c24xx_iis_stop() void S3C24_CLASS_NAME::s3c24xx_iis_recalc() { - if ((m_iis.regs.iiscon & (1 << 0)) != 0) - { + if (BIT(m_iis.regs.iiscon, 0)) s3c24xx_iis_start(); - } else - { s3c24xx_iis_stop(); - } } READ32_MEMBER( S3C24_CLASS_NAME::s3c24xx_iis_r ) @@ -2579,48 +2356,40 @@ READ32_MEMBER( S3C24_CLASS_NAME::s3c24xx_iis_r ) #if 0 switch (offset) { - case S3C24XX_IISCON : - { - data = data & ~1; // hack for mp3 player - } + case iis_t::IISCON : + data = data & ~1; // hack for mp3 player break; } #endif - verboselog( *this, 9, "(IIS) %08X -> %08X\n", S3C24XX_BASE_IIS + (offset << 2), data); + verboselog(*this, 9, "(IIS) %08X -> %08X\n", S3C24XX_BASE_IIS + (offset << 2), data); return data; } WRITE32_MEMBER( S3C24_CLASS_NAME::s3c24xx_iis_w ) { uint32_t old_value = ((uint32_t*)&m_iis.regs)[offset]; - verboselog( *this, 9, "(IIS) %08X <- %08X\n", S3C24XX_BASE_IIS + (offset << 2), data); + verboselog(*this, 9, "(IIS) %08X <- %08X\n", S3C24XX_BASE_IIS + (offset << 2), data); COMBINE_DATA(&((uint32_t*)&m_iis.regs)[offset]); switch (offset) { - case S3C24XX_IISCON : + case iis_t::IISCON : + if (BIT(data ^ old_value, 0)) + s3c24xx_iis_recalc(); + break; + case iis_t::IISFIFO : + if (ACCESSING_BITS_16_31) { - if ((old_value & (1 << 0)) != (data & (1 << 0))) - { - s3c24xx_iis_recalc(); - } + m_iis.fifo[m_iis.fifo_index++] = BITS(data, 31, 16); } - break; - case S3C24XX_IISFIFO : + if (ACCESSING_BITS_0_15) { - if (ACCESSING_BITS_16_31) - { - m_iis.fifo[m_iis.fifo_index++] = BITS( data, 31, 16); - } - if (ACCESSING_BITS_0_15) - { - m_iis.fifo[m_iis.fifo_index++] = BITS( data, 15, 0); - } - if (m_iis.fifo_index == 2) - { - m_iis.fifo_index = 0; - iface_i2s_data_w( 0, m_iis.fifo[0]); - iface_i2s_data_w( 1, m_iis.fifo[1]); - } + m_iis.fifo[m_iis.fifo_index++] = BITS(data, 15, 0); + } + if (m_iis.fifo_index == 2) + { + m_iis.fifo_index = 0; + iface_i2s_data_w(0, m_iis.fifo[0]); + iface_i2s_data_w(1, m_iis.fifo[1]); } break; } @@ -2628,22 +2397,12 @@ WRITE32_MEMBER( S3C24_CLASS_NAME::s3c24xx_iis_w ) TIMER_CALLBACK_MEMBER( S3C24_CLASS_NAME::s3c24xx_iis_timer_exp ) { - verboselog( *this, 2, "IIS timer callback\n"); + verboselog(*this, 2, "IIS timer callback\n"); s3c24xx_dma_request_iis(); } /* RTC */ -void S3C24_CLASS_NAME::s3c24xx_rtc_reset() -{ - s3c24xx_rtc_t *rtc = &m_rtc; - memset( &rtc->regs, 0, sizeof( rtc->regs)); - rtc->regs.almday = 1; - rtc->regs.almmon = 1; - rtc->timer_update->adjust( attotime::never); - rtc->timer_update->adjust( attotime::from_msec( 1000), 0, attotime::from_msec( 1000)); -} - READ32_MEMBER( S3C24_CLASS_NAME::s3c24xx_rtc_r ) { uint32_t data = ((uint32_t*)&m_rtc.regs)[offset]; @@ -2651,109 +2410,39 @@ READ32_MEMBER( S3C24_CLASS_NAME::s3c24xx_rtc_r ) return data; } -void S3C24_CLASS_NAME::s3c24xx_rtc_recalc() -{ - if (m_rtc.regs.ticnt & (1 << 7)) - { - uint32_t ttc; - double freq; - ttc = BITS( m_rtc.regs.ticnt, 6, 0); - freq = 128 / (ttc + 1); -// printf( "ttc %d freq %f\n", ttc, freq); - m_rtc.timer_tick_count->adjust( attotime::from_hz( freq), 0, attotime::from_hz( freq)); - } - else - { - m_rtc.timer_tick_count->adjust( attotime::never); - } -} - WRITE32_MEMBER( S3C24_CLASS_NAME::s3c24xx_rtc_w ) { verboselog( *this, 9, "(RTC) %08X <- %08X\n", S3C24XX_BASE_RTC + (offset << 2), data); COMBINE_DATA(&((uint32_t*)&m_rtc.regs)[offset]); switch (offset) { - case S3C24XX_TICNT : - { - s3c24xx_rtc_recalc(); - } + case rtc_t::TICNT : + m_rtc.recalc(); break; } } TIMER_CALLBACK_MEMBER( S3C24_CLASS_NAME::s3c24xx_rtc_timer_tick_count_exp ) { - verboselog( *this, 2, "RTC timer callback (tick count)\n"); - s3c24xx_request_irq( S3C24XX_INT_TICK); + verboselog(*this, 2, "RTC timer callback (tick count)\n"); + s3c24xx_request_irq(S3C24XX_INT_TICK); } void S3C24_CLASS_NAME::s3c24xx_rtc_update() { - uint32_t bcdday_max; - // increase second - m_rtc.regs.bcdsec = bcd_adjust( m_rtc.regs.bcdsec + 1); - if (m_rtc.regs.bcdsec >= 0x60) - { - m_rtc.regs.bcdsec = 0; - // increase minute - m_rtc.regs.bcdmin = bcd_adjust( m_rtc.regs.bcdmin + 1); - if (m_rtc.regs.bcdmin >= 0x60) - { - m_rtc.regs.bcdmin = 0; - // increase hour - m_rtc.regs.bcdhour = bcd_adjust( m_rtc.regs.bcdhour + 1); - if (m_rtc.regs.bcdhour >= 0x24) - { - m_rtc.regs.bcdhour = 0; - // increase day-of-week - m_rtc.regs.bcddow = (m_rtc.regs.bcddow % 7) + 1; - // increase day - m_rtc.regs.bcdday = bcd_adjust( m_rtc.regs.bcdday + 1); - bcdday_max = dec_2_bcd( gregorian_days_in_month( bcd_2_dec( m_rtc.regs.bcdmon), bcd_2_dec( m_rtc.regs.bcdyear) + 2000)); - if (m_rtc.regs.bcdday > bcdday_max) - { - m_rtc.regs.bcdday = 1; - // increase month - m_rtc.regs.bcdmon = bcd_adjust( m_rtc.regs.bcdmon + 1); - if (m_rtc.regs.bcdmon >= 0x12) - { - m_rtc.regs.bcdmon = 1; - // increase year - m_rtc.regs.bcdyear = bcd_adjust( m_rtc.regs.bcdyear + 1); - if (m_rtc.regs.bcdyear >= 0x100) - { - m_rtc.regs.bcdyear = 0; - } - } - } - } - } - } + m_rtc.update(); verboselog( *this, 5, "RTC - %04d/%02d/%02d %02d:%02d:%02d\n", bcd_2_dec( m_rtc.regs.bcdyear) + 2000, bcd_2_dec( m_rtc.regs.bcdmon), bcd_2_dec( m_rtc.regs.bcdday), bcd_2_dec( m_rtc.regs.bcdhour), bcd_2_dec( m_rtc.regs.bcdmin), bcd_2_dec( m_rtc.regs.bcdsec)); } void S3C24_CLASS_NAME::s3c24xx_rtc_check_alarm() { - if (m_rtc.regs.rtcalm & 0x40) - { - int isalarm = 1; - isalarm = isalarm && (((m_rtc.regs.rtcalm & 0x20) == 0) || (m_rtc.regs.almyear == m_rtc.regs.bcdyear)); - isalarm = isalarm && (((m_rtc.regs.rtcalm & 0x10) == 0) || (m_rtc.regs.almmon == m_rtc.regs.bcdmon)); - isalarm = isalarm && (((m_rtc.regs.rtcalm & 0x08) == 0) || (m_rtc.regs.almday == m_rtc.regs.bcdday)); - isalarm = isalarm && (((m_rtc.regs.rtcalm & 0x04) == 0) || (m_rtc.regs.almhour == m_rtc.regs.bcdhour)); - isalarm = isalarm && (((m_rtc.regs.rtcalm & 0x02) == 0) || (m_rtc.regs.almmin == m_rtc.regs.bcdmin)); - isalarm = isalarm && (((m_rtc.regs.rtcalm & 0x01) == 0) || (m_rtc.regs.almsec == m_rtc.regs.bcdsec)); - if (isalarm != 0) - { - s3c24xx_request_irq(S3C24XX_INT_RTC); - } - } + if (m_rtc.check_alarm()) + s3c24xx_request_irq(S3C24XX_INT_RTC); } TIMER_CALLBACK_MEMBER( S3C24_CLASS_NAME::s3c24xx_rtc_timer_update_exp ) { - verboselog( *this, 2, "RTC timer callback (update)\n"); + verboselog(*this, 2, "RTC timer callback (update)\n"); s3c24xx_rtc_update(); s3c24xx_rtc_check_alarm(); } @@ -2762,13 +2451,12 @@ TIMER_CALLBACK_MEMBER( S3C24_CLASS_NAME::s3c24xx_rtc_timer_update_exp ) void S3C24_CLASS_NAME::s3c24xx_adc_reset() { - s3c24xx_adc_t *adc = &m_adc; - memset( &adc->regs, 0, sizeof( adc->regs)); - adc->regs.adccon = 0x3FC4; - #if defined(DEVICE_S3C2410) || defined(DEVICE_S3C2440) - adc->regs.adctsc = 0x58; - adc->regs.adcdly = 0xFF; - #endif + memset(&m_adc.regs, 0, sizeof(m_adc.regs)); + m_adc.regs.adccon = 0x3FC4; +#if defined(DEVICE_S3C2410) || defined(DEVICE_S3C2440) + m_adc.regs.adctsc = 0x58; + m_adc.regs.adcdly = 0xFF; +#endif } uint32_t S3C24_CLASS_NAME::iface_adc_data_r(int ch) @@ -2776,13 +2464,13 @@ uint32_t S3C24_CLASS_NAME::iface_adc_data_r(int ch) if (!m_data_r_cb.isnull()) { int offs = ch; - #if defined(DEVICE_S3C2410) || defined(DEVICE_S3C2440) - if (BIT( m_adc.regs.adctsc, 2) != 0) +#if defined(DEVICE_S3C2410) || defined(DEVICE_S3C2440) + if (BIT(m_adc.regs.adctsc, 2) != 0) { offs += 2; } - #endif - return (m_data_r_cb)(offs, 0); +#endif + return m_data_r_cb(offs, 0); } else { @@ -2796,42 +2484,36 @@ READ32_MEMBER( S3C24_CLASS_NAME::s3c24xx_adc_r ) switch (offset) { #if defined(DEVICE_S3C2400) - case S3C24XX_ADCDAT : - { - data = (data & ~0x3FF) | (iface_adc_data_r( 0) & 0x3FF); - } + case S3C24XX_ADCDAT: + data = (data & ~0x3FF) | (iface_adc_data_r(0) & 0x3FF); break; #else - case S3C24XX_ADCDAT0 : - { - data = (data & ~0x3FF) | (iface_adc_data_r( 0) & 0x3FF); - } + case S3C24XX_ADCDAT0: + data = (data & ~0x3FF) | (iface_adc_data_r(0) & 0x3FF); break; - case S3C24XX_ADCDAT1 : - { - data = (data & ~0x3FF) | (iface_adc_data_r( 1) & 0x3FF); - } + case S3C24XX_ADCDAT1: + data = (data & ~0x3FF) | (iface_adc_data_r(1) & 0x3FF); break; #endif } - verboselog( *this, 9, "(ADC) %08X -> %08X\n", S3C24XX_BASE_ADC + (offset << 2), data); + verboselog(*this, 9, "(ADC) %08X -> %08X\n", S3C24XX_BASE_ADC + (offset << 2), data); return data; } void S3C24_CLASS_NAME::s3c24xx_adc_start() { - verboselog( *this, 1, "ADC start\n"); + verboselog(*this, 1, "ADC start\n"); m_adc.regs.adccon &= ~(1 << 0); // A/D conversion is completed m_adc.regs.adccon |= (1 << 15); // End of A/D conversion - #if defined(DEVICE_S3C2410) || defined(DEVICE_S3C2440) - s3c24xx_request_subirq( S3C24XX_SUBINT_ADC); - #endif +#if defined(DEVICE_S3C2410) || defined(DEVICE_S3C2440) + s3c24xx_request_subirq(S3C24XX_SUBINT_ADC); +#endif } WRITE32_MEMBER( S3C24_CLASS_NAME::s3c24xx_adc_w ) { uint32_t old_value = ((uint32_t*)&m_adc.regs)[offset]; - verboselog( *this, 9, "(ADC) %08X <- %08X\n", S3C24XX_BASE_ADC + (offset << 2), data); + verboselog(*this, 9, "(ADC) %08X <- %08X\n", S3C24XX_BASE_ADC + (offset << 2), data); COMBINE_DATA(&((uint32_t*)&m_adc.regs)[offset]); switch (offset) { @@ -2861,14 +2543,13 @@ void S3C24_CLASS_NAME::s3c24xx_touch_screen(int state) void S3C24_CLASS_NAME::s3c24xx_spi_reset() { - for (auto & elem : m_spi) + for (spi_t &spi : m_spi) { - s3c24xx_spi_t *spi = &elem; - memset( &spi->regs, 0, sizeof( spi->regs)); - spi->regs.spsta = 1; - #if defined(DEVICE_S3C2400) || defined(DEVICE_S3C2410) - spi->regs.sppin = 2; - #endif + memset(&spi.regs, 0, sizeof(spi.regs)); + spi.regs.spsta = 1; +#if defined(DEVICE_S3C2400) || defined(DEVICE_S3C2410) + spi.regs.sppin = 2; +#endif } } @@ -2877,10 +2558,8 @@ uint32_t S3C24_CLASS_NAME::s3c24xx_spi_r(uint32_t ch, uint32_t offset) uint32_t data = ((uint32_t*)&m_spi[ch].regs)[offset]; switch (offset) { - case S3C24XX_SPSTA : - { - data = data | (1 << 0); // [bit 0] Transfer Ready Flag - } + case spi_t::SPSTA : + data = data | (1 << 0); // [bit 0] Transfer Ready Flag break; } return data; @@ -2893,8 +2572,8 @@ void S3C24_CLASS_NAME::s3c24xx_spi_w(uint32_t ch, uint32_t offset, uint32_t data READ32_MEMBER( S3C24_CLASS_NAME::s3c24xx_spi_0_r ) { - uint32_t data = s3c24xx_spi_r( 0, offset); - verboselog( *this, 9, "(SPI 0) %08X -> %08X\n", S3C24XX_BASE_SPI_0 + (offset << 2), data); + uint32_t data = s3c24xx_spi_r(0, offset); + verboselog(*this, 9, "(SPI 0) %08X -> %08X\n", S3C24XX_BASE_SPI_0 + (offset << 2), data); return data; } @@ -2902,8 +2581,8 @@ READ32_MEMBER( S3C24_CLASS_NAME::s3c24xx_spi_0_r ) READ32_MEMBER( S3C24_CLASS_NAME::s3c24xx_spi_1_r ) { - uint32_t data = s3c24xx_spi_r( 1, offset); - verboselog( *this, 9, "(SPI 1) %08X -> %08X\n", S3C24XX_BASE_SPI_1 + (offset << 2), data); + uint32_t data = s3c24xx_spi_r(1, offset); + verboselog(*this, 9, "(SPI 1) %08X -> %08X\n", S3C24XX_BASE_SPI_1 + (offset << 2), data); return data; } @@ -2929,22 +2608,16 @@ WRITE32_MEMBER( S3C24_CLASS_NAME::s3c24xx_spi_1_w ) #if defined(DEVICE_S3C2400) -void S3C24_CLASS_NAME::s3c24xx_mmc_reset() -{ - s3c24xx_mmc_t *mmc = &m_mmc; - memset( &mmc->regs, 0, sizeof( mmc->regs)); -} - READ32_MEMBER( S3C24_CLASS_NAME::s3c24xx_mmc_r ) { uint32_t data = m_mmc.regs.data[offset]; - verboselog( *this, 9, "(MMC) %08X -> %08X\n", S3C24XX_BASE_MMC + (offset << 2), data); + verboselog(*this, 9, "(MMC) %08X -> %08X\n", S3C24XX_BASE_MMC + (offset << 2), data); return data; } WRITE32_MEMBER( S3C24_CLASS_NAME::s3c24xx_mmc_w ) { - verboselog( *this, 9, "(MMC) %08X <- %08X\n", S3C24XX_BASE_MMC + (offset << 2), data); + verboselog(*this, 9, "(MMC) %08X <- %08X\n", S3C24XX_BASE_MMC + (offset << 2), data); COMBINE_DATA(&m_mmc.regs.data[offset]); } @@ -2956,14 +2629,13 @@ WRITE32_MEMBER( S3C24_CLASS_NAME::s3c24xx_mmc_w ) void S3C24_CLASS_NAME::s3c24xx_sdi_reset() { - s3c24xx_sdi_t *sdi = &m_sdi; - memset( &sdi->regs, 0, sizeof( sdi->regs)); - #if defined(DEVICE_S3C2410) - sdi->regs.data[0x24/4] = 0x2000; - #elif defined(DEVICE_S3C2440) - sdi->regs.data[0x04/4] = 1; - sdi->regs.data[0x24/4] = 0x10000; - #endif + memset(&m_sdi.regs, 0, sizeof(m_sdi.regs)); +#if defined(DEVICE_S3C2410) + m_sdi.regs.data[0x24/4] = 0x2000; +#elif defined(DEVICE_S3C2440) + m_sdi.regs.data[0x04/4] = 1; + m_sdi.regs.data[0x24/4] = 0x10000; +#endif } READ32_MEMBER( S3C24_CLASS_NAME::s3c24xx_sdi_r ) @@ -2987,19 +2659,18 @@ WRITE32_MEMBER( S3C24_CLASS_NAME::s3c24xx_sdi_w ) void S3C24_CLASS_NAME::s3c24xx_nand_reset() { - s3c24xx_nand_t *nand = &m_nand; - memset( &nand->regs, 0, sizeof( nand->regs)); - #if defined(DEVICE_S3C2440) - nand->regs.nfconf = 0x1000; - nand->regs.nfcont = 0x0384; - #endif + memset(&m_nand.regs, 0, sizeof(m_nand.regs)); +#if defined(DEVICE_S3C2440) + m_nand.regs.nfconf = 0x1000; + m_nand.regs.nfcont = 0x0384; +#endif } void S3C24_CLASS_NAME::iface_nand_command_w(uint8_t data) { if (!m_command_w_cb.isnull()) { - (m_command_w_cb)( 0, data, 0xff); + m_command_w_cb(0, data, 0xff); } } @@ -3007,31 +2678,25 @@ void S3C24_CLASS_NAME::iface_nand_address_w(uint8_t data) { if (!m_address_w_cb.isnull()) { - (m_address_w_cb)( 0, data, 0xff); + m_address_w_cb(0, data, 0xff); } } uint8_t S3C24_CLASS_NAME::iface_nand_data_r() { if (!m_nand_data_r_cb.isnull()) - { - return (m_nand_data_r_cb)( 0, 0xff); - } + return m_nand_data_r_cb(0, 0xff); else - { return 0; - } } void S3C24_CLASS_NAME::iface_nand_data_w(uint8_t data) { if (!m_nand_data_w_cb.isnull()) - { - (m_nand_data_w_cb)(0, data, 0xff); - } + m_nand_data_w_cb(0, data, 0xff); } -void S3C24_CLASS_NAME::nand_update_mecc( uint8_t *ecc, int pos, uint8_t data) +void S3C24_CLASS_NAME::nand_update_mecc(uint8_t *ecc, int pos, uint8_t data) { int bit[8]; uint8_t temp; @@ -3098,40 +2763,41 @@ void S3C24_CLASS_NAME::nand_update_secc( uint8_t *ecc, int pos, uint8_t data) void S3C24_CLASS_NAME::s3c24xx_nand_update_ecc(uint8_t data) { - s3c24xx_nand_t *nand = &m_nand; uint8_t temp[4]; #if defined(DEVICE_S3C2410) - temp[0] = nand->mecc[0]; - temp[1] = nand->mecc[1]; - temp[2] = nand->mecc[2]; - nand_update_mecc( nand->mecc, nand->ecc_pos++, data); - verboselog( *this, 5, "NAND - MECC %03X - %02X %02X %02X -> %02X %02X %02X\n", nand->ecc_pos - 1, temp[0], temp[1], temp[2], nand->mecc[0], nand->mecc[1], nand->mecc[2]); - if (nand->ecc_pos == 512) nand->ecc_pos = 0; + temp[0] = m_nand.mecc[0]; + temp[1] = m_nand.mecc[1]; + temp[2] = m_nand.mecc[2]; + nand_update_mecc(m_nand.mecc, m_nand.ecc_pos++, data); + verboselog(*this, 5, "NAND - MECC %03X - %02X %02X %02X -> %02X %02X %02X\n", m_nand.ecc_pos - 1, temp[0], temp[1], temp[2], m_nand.mecc[0], m_nand.mecc[1], m_nand.mecc[2]); + if (m_nand.ecc_pos == 512) + m_nand.ecc_pos = 0; #else - if ((nand->regs.nfcont & (1 << 5)) == 0) + if (!BIT(m_nand.regs.nfcont, 5)) { - temp[0] = nand->mecc[0]; - temp[1] = nand->mecc[1]; - temp[2] = nand->mecc[2]; - temp[3] = nand->mecc[3]; - nand_update_mecc( nand->mecc, nand->ecc_pos++, data); - verboselog( *this, 5, "NAND - MECC %03X - %02X %02X %02X %02X -> %02X %02X %02X %02X\n", nand->ecc_pos - 1, temp[0], temp[1], temp[2], temp[3], nand->mecc[0], nand->mecc[1], nand->mecc[2], nand->mecc[3]); - if (nand->ecc_pos == 2048) nand->ecc_pos = 0; + temp[0] = m_nand.mecc[0]; + temp[1] = m_nand.mecc[1]; + temp[2] = m_nand.mecc[2]; + temp[3] = m_nand.mecc[3]; + nand_update_mecc( m_nand.mecc, m_nand.ecc_pos++, data); + verboselog( *this, 5, "NAND - MECC %03X - %02X %02X %02X %02X -> %02X %02X %02X %02X\n", m_nand.ecc_pos - 1, temp[0], temp[1], temp[2], temp[3], m_nand.mecc[0], m_nand.mecc[1], m_nand.mecc[2], m_nand.mecc[3]); + if (m_nand.ecc_pos == 2048) m_nand.ecc_pos = 0; } - if ((nand->regs.nfcont & (1 << 6)) == 0) + if (!BIT(m_nand.regs.nfcont, 6)) { - temp[0] = nand->secc[0]; - temp[1] = nand->secc[1]; - nand_update_secc( nand->secc, nand->ecc_pos++, data); - verboselog( *this, 5, "NAND - SECC %02X - %02X %02X -> %02X %02X\n", nand->ecc_pos - 1, temp[0], temp[1], nand->secc[0], nand->secc[1]); - if (nand->ecc_pos == 16) nand->ecc_pos = 0; + temp[0] = m_nand.secc[0]; + temp[1] = m_nand.secc[1]; + nand_update_secc(m_nand.secc, m_nand.ecc_pos++, data); + verboselog( *this, 5, "NAND - SECC %02X - %02X %02X -> %02X %02X\n", m_nand.ecc_pos - 1, temp[0], temp[1], m_nand.secc[0], m_nand.secc[1]); + if (m_nand.ecc_pos == 16) + m_nand.ecc_pos = 0; } #endif } void S3C24_CLASS_NAME::s3c24xx_nand_command_w(uint8_t data) { - verboselog( *this, 5, "NAND write command %02X\n", data); + verboselog(*this, 5, "NAND write command %02X\n", data); m_nand.data_count = 0; iface_nand_command_w( data); } @@ -3163,50 +2829,38 @@ READ32_MEMBER( S3C24_CLASS_NAME::s3c24xx_nand_r ) uint32_t data = ((uint32_t*)&m_nand.regs)[offset]; switch (offset) { - case S3C24XX_NFDATA : - { - data = 0; - #if defined(DEVICE_S3C2410) - data = data | s3c24xx_nand_data_r(); - #elif defined(DEVICE_S3C2440) - if ((mem_mask & 0x000000FF) != 0) data = data | (s3c24xx_nand_data_r() << 0); - if ((mem_mask & 0x0000FF00) != 0) data = data | (s3c24xx_nand_data_r() << 8); - if ((mem_mask & 0x00FF0000) != 0) data = data | (s3c24xx_nand_data_r() << 16); - if ((mem_mask & 0xFF000000) != 0) data = data | (s3c24xx_nand_data_r() << 24); - #endif - } + case S3C24XX_NFDATA: + data = 0; +#if defined(DEVICE_S3C2410) + data = data | s3c24xx_nand_data_r(); +#elif defined(DEVICE_S3C2440) + if ((mem_mask & 0x000000FF) != 0) data = data | (s3c24xx_nand_data_r() << 0); + if ((mem_mask & 0x0000FF00) != 0) data = data | (s3c24xx_nand_data_r() << 8); + if ((mem_mask & 0x00FF0000) != 0) data = data | (s3c24xx_nand_data_r() << 16); + if ((mem_mask & 0xFF000000) != 0) data = data | (s3c24xx_nand_data_r() << 24); +#endif break; #if defined(DEVICE_S3C2410) - case S3C24XX_NFECC : - { - data = ((m_nand.mecc[2] << 16) | (m_nand.mecc[1] << 8) | (m_nand.mecc[0] << 0)); - } + case S3C24XX_NFECC : + data = ((m_nand.mecc[2] << 16) | (m_nand.mecc[1] << 8) | (m_nand.mecc[0] << 0)); break; #endif #if defined(DEVICE_S3C2440) - case S3C24XX_NFMECC0 : - { - data = (m_nand.mecc[3] << 24) | (m_nand.mecc[2] << 16) | (m_nand.mecc[1] << 8) | (m_nand.mecc[0] << 0); - } + case S3C24XX_NFMECC0 : + data = (m_nand.mecc[3] << 24) | (m_nand.mecc[2] << 16) | (m_nand.mecc[1] << 8) | (m_nand.mecc[0] << 0); break; - case S3C24XX_NFSECC : - { - data = (m_nand.secc[1] << 8) | (m_nand.secc[0] << 0); - } + case S3C24XX_NFSECC : + data = (m_nand.secc[1] << 8) | (m_nand.secc[0] << 0); break; - case S3C24XX_NFESTAT0 : - { - data &= ~0x000000F; // no main/spare ECC errors - } + case S3C24XX_NFESTAT0 : + data &= ~0x000000F; // no main/spare ECC errors break; - case S3C24XX_NFESTAT1 : - { - data &= ~0x000000F; // no main/spare ECC errors - } + case S3C24XX_NFESTAT1 : + data &= ~0x000000F; // no main/spare ECC errors break; #endif } - verboselog( *this, 9, "(NAND) %08X -> %08X (%08X)\n", S3C24XX_BASE_NAND + (offset << 2), data, mem_mask); + verboselog(*this, 9, "(NAND) %08X -> %08X (%08X)\n", S3C24XX_BASE_NAND + (offset << 2), data, mem_mask); return data; } @@ -3216,11 +2870,11 @@ void S3C24_CLASS_NAME::s3c24xx_nand_init_ecc() m_nand.mecc[0] = 0xFF; m_nand.mecc[1] = 0xFF; m_nand.mecc[2] = 0xFF; - #if defined(DEVICE_S3C2440) +#if defined(DEVICE_S3C2440) m_nand.mecc[3] = 0xFF; m_nand.secc[0] = 0; m_nand.secc[1] = 0; - #endif +#endif m_nand.ecc_pos = 0; } @@ -3232,57 +2886,39 @@ WRITE32_MEMBER( S3C24_CLASS_NAME::s3c24xx_nand_w ) switch (offset) { #if defined(DEVICE_S3C2410) - case S3C24XX_NFCONF : - { - if ((data & (1 << 12)) != 0) - { - s3c24xx_nand_init_ecc(); - } - } + case S3C24XX_NFCONF: + if ((data & (1 << 12)) != 0) + s3c24xx_nand_init_ecc(); break; #endif #if defined(DEVICE_S3C2440) - case S3C24XX_NFCONT : - { - if ((data & (1 << 4)) != 0) - { - s3c24xx_nand_init_ecc(); - } - } + case S3C24XX_NFCONT: + if ((data & (1 << 4)) != 0) + s3c24xx_nand_init_ecc(); break; #endif - case S3C24XX_NFSTAT : - { - m_nand.regs.nfstat = (m_nand.regs.nfstat & ~0x03) | (old_value & 0x03); // read-only + case S3C24XX_NFSTAT: + m_nand.regs.nfstat = (m_nand.regs.nfstat & ~0x03) | (old_value & 0x03); // read-only #if defined(DEVICE_S3C2440) - if ((data & (1 << 2)) != 0) - { - m_nand.regs.nfstat &= ~(1 << 2); // "RnB_TransDetect, to clear this value write 1" - } + if ((data & (1 << 2)) != 0) + m_nand.regs.nfstat &= ~(1 << 2); // "RnB_TransDetect, to clear this value write 1" #endif - } break; - case S3C24XX_NFCMD : - { - s3c24xx_nand_command_w(data); - } + case S3C24XX_NFCMD: + s3c24xx_nand_command_w(data); break; - case S3C24XX_NFADDR : - { - s3c24xx_nand_address_w(data); - } + case S3C24XX_NFADDR: + s3c24xx_nand_address_w(data); break; - case S3C24XX_NFDATA : - { - #if defined(DEVICE_S3C2410) - s3c24xx_nand_data_w(data & 0xFF); - #elif defined(DEVICE_S3C2440) - if ((mem_mask & 0x000000FF) != 0) s3c24xx_nand_data_w((data >> 0) & 0xFF); - if ((mem_mask & 0x0000FF00) != 0) s3c24xx_nand_data_w((data >> 8) & 0xFF); - if ((mem_mask & 0x00FF0000) != 0) s3c24xx_nand_data_w((data >> 16) & 0xFF); - if ((mem_mask & 0xFF000000) != 0) s3c24xx_nand_data_w((data >> 24) & 0xFF); - #endif - } + case S3C24XX_NFDATA: +#if defined(DEVICE_S3C2410) + s3c24xx_nand_data_w(data & 0xFF); +#elif defined(DEVICE_S3C2440) + if ((mem_mask & 0x000000FF) != 0) s3c24xx_nand_data_w((data >> 0) & 0xFF); + if ((mem_mask & 0x0000FF00) != 0) s3c24xx_nand_data_w((data >> 8) & 0xFF); + if ((mem_mask & 0x00FF0000) != 0) s3c24xx_nand_data_w((data >> 16) & 0xFF); + if ((mem_mask & 0xFF000000) != 0) s3c24xx_nand_data_w((data >> 24) & 0xFF); +#endif break; } } @@ -3295,19 +2931,13 @@ ATTR_UNUSED WRITE_LINE_MEMBER( S3C24_CLASS_NAME::s3c24xx_pin_frnb_w ) { m_nand.regs.nfstat |= (1 << 2); if (BIT( m_nand.regs.nfcont, 9) != 0) - { s3c24xx_request_irq( S3C24XX_INT_NFCON); - } } #endif if (state == 0) - { m_nand.regs.nfstat &= ~(1 << 0); - } else - { m_nand.regs.nfstat |= (1 << 0); - } } #endif @@ -3316,22 +2946,16 @@ ATTR_UNUSED WRITE_LINE_MEMBER( S3C24_CLASS_NAME::s3c24xx_pin_frnb_w ) #if defined(DEVICE_S3C2440) -void S3C24_CLASS_NAME::s3c24xx_cam_reset() -{ - s3c24xx_cam_t *cam = &m_cam; - memset( &cam->regs, 0, sizeof( cam->regs)); -} - READ32_MEMBER( S3C24_CLASS_NAME::s3c24xx_cam_r ) { uint32_t data = m_cam.regs.data[offset]; - verboselog( *this, 9, "(CAM) %08X -> %08X\n", S3C24XX_BASE_CAM + (offset << 2), data); + verboselog(*this, 9, "(CAM) %08X -> %08X\n", S3C24XX_BASE_CAM + (offset << 2), data); return data; } WRITE32_MEMBER( S3C24_CLASS_NAME::s3c24xx_cam_w ) { - verboselog( *this, 9, "(CAM) %08X <- %08X\n", S3C24XX_BASE_CAM + (offset << 2), data); + verboselog(*this, 9, "(CAM) %08X <- %08X\n", S3C24XX_BASE_CAM + (offset << 2), data); COMBINE_DATA(&m_cam.regs.data[offset]); } @@ -3341,22 +2965,16 @@ WRITE32_MEMBER( S3C24_CLASS_NAME::s3c24xx_cam_w ) #if defined(DEVICE_S3C2440) -void S3C24_CLASS_NAME::s3c24xx_ac97_reset() -{ - s3c24xx_ac97_t *ac97 = &m_ac97; - memset( &ac97->regs, 0, sizeof( ac97->regs)); -} - READ32_MEMBER( S3C24_CLASS_NAME::s3c24xx_ac97_r ) { uint32_t data = m_ac97.regs.data[offset]; - verboselog( *this, 9, "(AC97) %08X -> %08X\n", S3C24XX_BASE_AC97 + (offset << 2), data); + verboselog(*this, 9, "(AC97) %08X -> %08X\n", S3C24XX_BASE_AC97 + (offset << 2), data); return data; } WRITE32_MEMBER( S3C24_CLASS_NAME::s3c24xx_ac97_w ) { - verboselog( *this, 9, "(AC97) %08X <- %08X\n", S3C24XX_BASE_AC97 + (offset << 2), data); + verboselog(*this, 9, "(AC97) %08X <- %08X\n", S3C24XX_BASE_AC97 + (offset << 2), data); COMBINE_DATA(&m_ac97.regs.data[offset]); } @@ -3368,24 +2986,20 @@ WRITE32_MEMBER( S3C24_CLASS_NAME::s3c24xx_ac97_w ) void S3C24_CLASS_NAME::s3c24xx_nand_auto_boot() { - int om0 = iface_core_pin_r( S3C24XX_CORE_PIN_OM0); - int om1 = iface_core_pin_r( S3C24XX_CORE_PIN_OM1); + int om0 = iface_core_pin_r(S3C24XX_CORE_PIN_OM0); + int om1 = iface_core_pin_r(S3C24XX_CORE_PIN_OM1); if ((om0 == 0) && (om1 == 0)) { - int ncon = iface_core_pin_r( S3C24XX_CORE_PIN_NCON); + int ncon = iface_core_pin_r(S3C24XX_CORE_PIN_NCON); uint8_t *ptr = m_steppingstone; int page_size, address_cycle; - #if defined(DEVICE_S3C2410) +#if defined(DEVICE_S3C2410) page_size = 512; if (ncon == 0) - { address_cycle = 3; // byte-page-page - } else - { address_cycle = 4; // byte-page-page-page - } - #elif defined(DEVICE_S3C2440) +#elif defined(DEVICE_S3C2440) uint32_t port_g = iface_gpio_port_r( S3C24XX_GPIO_PORT_G, 0); if (ncon == 0) { @@ -3413,28 +3027,28 @@ void S3C24_CLASS_NAME::s3c24xx_nand_auto_boot() address_cycle = 5; // byte-byte-page-page-page } } - #endif - iface_nand_command_w( 0xFF); +#endif + iface_nand_command_w(0xFF); for (int page = 0; page < (4 * 1024) / page_size; page++) { - iface_nand_command_w( 0x00); - iface_nand_address_w( 0x00); + iface_nand_command_w(0x00); + iface_nand_address_w(0x00); if (address_cycle > 4) { - iface_nand_address_w( 0x00); + iface_nand_address_w(0x00); } - iface_nand_address_w( (page >> 0) & 0xFF); - iface_nand_address_w( (page >> 8) & 0xFF); + iface_nand_address_w((page >> 0) & 0xFF); + iface_nand_address_w((page >> 8) & 0xFF); if (address_cycle > 3) { - iface_nand_address_w( (page >> 16) & 0xFF); + iface_nand_address_w((page >> 16) & 0xFF); } for (int i = 0; i < page_size; i++) { *ptr++ = iface_nand_data_r(); } } - iface_nand_command_w( 0xFF); + iface_nand_command_w(0xFF); } } @@ -3443,41 +3057,42 @@ void S3C24_CLASS_NAME::s3c24xx_nand_auto_boot() void S3C24_CLASS_NAME::s3c24xx_device_reset() { verboselog( *this, 1, "s3c24xx device reset\n"); - s3c24xx_uart_reset( ); - s3c24xx_pwm_reset(); + for (uart_t &uart : m_uart) + uart.reset(); + m_pwm.reset(); s3c24xx_dma_reset(); s3c24xx_iic_reset(); - s3c24xx_iis_reset(); + m_iis.reset(); s3c24xx_lcd_reset(); - s3c24xx_rtc_reset(); - s3c24xx_wdt_reset(); + m_rtc.reset(); + m_wdt.reset(); s3c24xx_irq_reset(); s3c24xx_gpio_reset(); - s3c24xx_memcon_reset(); + m_memcon.reset(); s3c24xx_clkpow_reset(); - s3c24xx_usb_host_reset(); + m_usbhost.reset(); s3c24xx_usb_device_reset(); s3c24xx_adc_reset(); s3c24xx_spi_reset(); - #if defined(DEVICE_S3C2400) - s3c24xx_mmc_reset(); - #endif - #if defined(DEVICE_S3C2410) || defined(DEVICE_S3C2440) +#if defined(DEVICE_S3C2400) + m_mmc.reset(); +#endif +#if defined(DEVICE_S3C2410) || defined(DEVICE_S3C2440) s3c24xx_sdi_reset(); s3c24xx_nand_reset(); - #endif - #if defined(DEVICE_S3C2440) - s3c24xx_cam_reset(); - s3c24xx_ac97_reset(); - #endif - #if defined(DEVICE_S3C2410) || defined(DEVICE_S3C2440) +#endif +#if defined(DEVICE_S3C2440) + m_cam.reset(); + m_ac97.reset(); +#endif +#if defined(DEVICE_S3C2410) || defined(DEVICE_S3C2440) s3c24xx_nand_auto_boot(); - #endif +#endif } void S3C24_CLASS_NAME::s3c24xx_device_start() { - verboselog( *this, 1, "s3c24xx device start\n"); + verboselog(*this, 1, "s3c24xx device start\n"); m_pin_r_cb.resolve(); m_pin_w_cb.resolve_safe(); m_port_r_cb.resolve(); @@ -3487,34 +3102,30 @@ void S3C24_CLASS_NAME::s3c24xx_device_start() m_sda_w_cb.resolve(); m_data_r_cb.resolve(); m_data_w_cb.resolve(); - #if !defined(DEVICE_S3C2400) +#if !defined(DEVICE_S3C2400) m_command_w_cb.resolve(); m_address_w_cb.resolve(); m_nand_data_r_cb.resolve(); m_nand_data_w_cb.resolve(); - #endif +#endif for (int i = 0; i < 5; i++) - { - m_pwm.timer[i] = machine().scheduler().timer_alloc(timer_expired_delegate( FUNC(S3C24_CLASS_NAME::s3c24xx_pwm_timer_exp), this)); - } + m_pwm.timer[i] = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(S3C24_CLASS_NAME::s3c24xx_pwm_timer_exp), this)); for (auto & elem : m_dma) - { - elem.timer = machine().scheduler().timer_alloc(timer_expired_delegate( FUNC(S3C24_CLASS_NAME::s3c24xx_dma_timer_exp), this)); - } - m_iic.timer = machine().scheduler().timer_alloc(timer_expired_delegate( FUNC(S3C24_CLASS_NAME::s3c24xx_iic_timer_exp), this)); - m_iis.timer = machine().scheduler().timer_alloc(timer_expired_delegate( FUNC(S3C24_CLASS_NAME::s3c24xx_iis_timer_exp), this)); - m_lcd.timer = machine().scheduler().timer_alloc(timer_expired_delegate( FUNC(S3C24_CLASS_NAME::s3c24xx_lcd_timer_exp), this)); - m_rtc.timer_tick_count = machine().scheduler().timer_alloc(timer_expired_delegate( FUNC(S3C24_CLASS_NAME::s3c24xx_rtc_timer_tick_count_exp), this)); - m_rtc.timer_update = machine().scheduler().timer_alloc(timer_expired_delegate( FUNC(S3C24_CLASS_NAME::s3c24xx_rtc_timer_update_exp), this)); - m_wdt.timer = machine().scheduler().timer_alloc(timer_expired_delegate( FUNC(S3C24_CLASS_NAME::s3c24xx_wdt_timer_exp), this)); - #if defined(DEVICE_S3C2410) || defined(DEVICE_S3C2440) - int om0 = iface_core_pin_r( S3C24XX_CORE_PIN_OM0); - int om1 = iface_core_pin_r( S3C24XX_CORE_PIN_OM1); + elem.timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(S3C24_CLASS_NAME::s3c24xx_dma_timer_exp), this)); + m_iic.timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(S3C24_CLASS_NAME::s3c24xx_iic_timer_exp), this)); + m_iis.timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(S3C24_CLASS_NAME::s3c24xx_iis_timer_exp), this)); + m_lcd.timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(S3C24_CLASS_NAME::s3c24xx_lcd_timer_exp), this)); + m_rtc.timer_tick_count = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(S3C24_CLASS_NAME::s3c24xx_rtc_timer_tick_count_exp), this)); + m_rtc.timer_update = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(S3C24_CLASS_NAME::s3c24xx_rtc_timer_update_exp), this)); + m_wdt.timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(S3C24_CLASS_NAME::s3c24xx_wdt_timer_exp), this)); +#if defined(DEVICE_S3C2410) || defined(DEVICE_S3C2440) + int om0 = iface_core_pin_r(S3C24XX_CORE_PIN_OM0); + int om1 = iface_core_pin_r(S3C24XX_CORE_PIN_OM1); if ((om0 == 0) && (om1 == 0)) { - address_space &space = m_cpu->memory().space( AS_PROGRAM); - space.install_ram( 0x00000000, 0x00000fff, m_steppingstone); - space.install_ram( 0x40000000, 0x40000fff, m_steppingstone); + address_space &space = m_cpu->memory().space(AS_PROGRAM); + space.install_ram(0x00000000, 0x00000fff, m_steppingstone); + space.install_ram(0x40000000, 0x40000fff, m_steppingstone); } - #endif +#endif } diff --git a/src/devices/machine/s3c44b0.cpp b/src/devices/machine/s3c44b0.cpp index ae5f9b0a4f2..eceb1f5c92c 100644 --- a/src/devices/machine/s3c44b0.cpp +++ b/src/devices/machine/s3c44b0.cpp @@ -18,6 +18,193 @@ #include "coreutil.h" +#define S3C44B0_INTCON (0x00 / 4) // Interrupt Control +#define S3C44B0_INTPND (0x04 / 4) // Interrupt Request Status +#define S3C44B0_INTMOD (0x08 / 4) // Interrupt Mode Control +#define S3C44B0_INTMSK (0x0C / 4) // Interrupt Mask Control +#define S3C44B0_I_PSLV (0x10 / 4) +#define S3C44B0_I_PMST (0x14 / 4) +#define S3C44B0_I_CSLV (0x18 / 4) +#define S3C44B0_I_CMST (0x1C / 4) +#define S3C44B0_I_ISPR (0x20 / 4) +#define S3C44B0_I_ISPC (0x24 / 4) +#define S3C44B0_F_ISPR (0x38 / 4) +#define S3C44B0_F_ISPC (0x3C / 4) + +#define S3C44B0_DCON (0x00 / 4) // DMA Control +#define S3C44B0_DISRC (0x04 / 4) // DMA Initial Source +#define S3C44B0_DIDST (0x08 / 4) // DMA Initial Destination +#define S3C44B0_DICNT (0x0C / 4) // DMA Initial Transfer Count +#define S3C44B0_DCSRC (0x10 / 4) // DMA Current Source Address +#define S3C44B0_DCDST (0x14 / 4) // DMA Current Destination Address +#define S3C44B0_DCCNT (0x18 / 4) // DMA Current Transfer Count + +#define S3C44B0_PLLCON (0x00 / 4) // PLL Control +#define S3C44B0_CLKCON (0x04 / 4) // Clock Generator Control +#define S3C44B0_CLKSLOW (0x08 / 4) // Slow Clock Control +#define S3C44B0_LOCKTIME (0x0C / 4) // PLL lock time Counter + +#define S3C44B0_LCDCON1 (0x00 / 4) // LCD Control 1 +#define S3C44B0_LCDCON2 (0x04 / 4) // LCD Control 2 +#define S3C44B0_LCDSADDR1 (0x08 / 4) // Frame Buffer Start Address 1 +#define S3C44B0_LCDSADDR2 (0x0C / 4) // Frame Buffer Start Address 2 +#define S3C44B0_LCDSADDR3 (0x10 / 4) // Virtual Screen Address Set +#define S3C44B0_REDLUT (0x14 / 4) // STN: Red Lookup Table +#define S3C44B0_GREENLUT (0x18 / 4) // STN: Green Lookup Table +#define S3C44B0_BLUELUT (0x1C / 4) // STN: Blue Lookup Table +#define S3C44B0_LCDCON3 (0x40 / 4) // LCD Control 3 +#define S3C44B0_DITHMODE (0x44 / 4) // STN: Dithering Mode + +#define S3C44B0_ULCON (0x00 / 4) // UART Line Control +#define S3C44B0_UCON (0x04 / 4) // UART Control +#define S3C44B0_UFCON (0x08 / 4) // UART FIFO Control +#define S3C44B0_UMCON (0x0C / 4) // UART Modem Control +#define S3C44B0_UTRSTAT (0x10 / 4) // UART Tx/Rx Status +#define S3C44B0_UERSTAT (0x14 / 4) // UART Rx Error Status +#define S3C44B0_UFSTAT (0x18 / 4) // UART FIFO Status +#define S3C44B0_UMSTAT (0x1C / 4) // UART Modem Status +#define S3C44B0_UTXH (0x20 / 4) // UART Transmission Hold +#define S3C44B0_URXH (0x24 / 4) // UART Receive Buffer +#define S3C44B0_UBRDIV (0x28 / 4) // UART Baud Rate Divisor + +#define S3C44B0_WTCON (0x00 / 4) // Watchdog Timer Mode +#define S3C44B0_WTDAT (0x04 / 4) // Watchdog Timer Data +#define S3C44B0_WTCNT (0x08 / 4) // Watchdog Timer Count + +#define S3C44B0_TCFG0 (0x00 / 4) // Timer Configuration +#define S3C44B0_TCFG1 (0x04 / 4) // Timer Configuration +#define S3C44B0_TCON (0x08 / 4) // Timer Control +#define S3C44B0_TCNTB0 (0x0C / 4) // Timer Count Buffer 0 +#define S3C44B0_TCMPB0 (0x10 / 4) // Timer Compare Buffer 0 +#define S3C44B0_TCNTO0 (0x14 / 4) // Timer Count Observation 0 +#define S3C44B0_TCNTB1 (0x18 / 4) // Timer Count Buffer 1 +#define S3C44B0_TCMPB1 (0x1C / 4) // Timer Compare Buffer 1 +#define S3C44B0_TCNTO1 (0x20 / 4) // Timer Count Observation 1 +#define S3C44B0_TCNTB2 (0x24 / 4) // Timer Count Buffer 2 +#define S3C44B0_TCMPB2 (0x28 / 4) // Timer Compare Buffer 2 +#define S3C44B0_TCNTO2 (0x2C / 4) // Timer Count Observation 2 +#define S3C44B0_TCNTB3 (0x30 / 4) // Timer Count Buffer 3 +#define S3C44B0_TCMPB3 (0x34 / 4) // Timer Compare Buffer 3 +#define S3C44B0_TCNTO3 (0x38 / 4) // Timer Count Observation 3 +#define S3C44B0_TCNTB4 (0x3C / 4) // Timer Count Buffer 4 +#define S3C44B0_TCMPB4 (0x40 / 4) // Timer Compare Buffer 4 +#define S3C44B0_TCNTO4 (0x44 / 4) // Timer Count Observation 4 +#define S3C44B0_TCNTB5 (0x48 / 4) // Timer Count Buffer 5 +#define S3C44B0_TCNTO5 (0x4C / 4) // Timer Count Observation 5 + +#define S3C44B0_IICCON (0x00 / 4) // IIC Control +#define S3C44B0_IICSTAT (0x04 / 4) // IIC Status +#define S3C44B0_IICADD (0x08 / 4) // IIC Address +#define S3C44B0_IICDS (0x0C / 4) // IIC Data Shift + +#define S3C44B0_IISCON (0x00 / 4) // IIS Control +#define S3C44B0_IISMOD (0x04 / 4) // IIS Mode +#define S3C44B0_IISPSR (0x08 / 4) // IIS Prescaler +#define S3C44B0_IISFCON (0x0C / 4) // IIS FIFO Control +#define S3C44B0_IISFIFO (0x10 / 4) // IIS FIFO Entry + +#define S3C44B0_GPACON (0x00 / 4) // Port A Control +#define S3C44B0_GPADAT (0x04 / 4) // Port A Data +#define S3C44B0_GPBCON (0x08 / 4) // Port B Control +#define S3C44B0_GPBDAT (0x0C / 4) // Port B Data +#define S3C44B0_GPCCON (0x10 / 4) // Port C Control +#define S3C44B0_GPCDAT (0x14 / 4) // Port C Data +#define S3C44B0_GPCUP (0x18 / 4) // Pull-up Control C +#define S3C44B0_GPDCON (0x1C / 4) // Port D Control +#define S3C44B0_GPDDAT (0x20 / 4) // Port D Data +#define S3C44B0_GPDUP (0x24 / 4) // Pull-up Control D +#define S3C44B0_GPECON (0x28 / 4) // Port E Control +#define S3C44B0_GPEDAT (0x2C / 4) // Port E Data +#define S3C44B0_GPEUP (0x30 / 4) // Pull-up Control E +#define S3C44B0_GPFCON (0x34 / 4) // Port F Control +#define S3C44B0_GPFDAT (0x38 / 4) // Port F Data +#define S3C44B0_GPFUP (0x3C / 4) // Pull-up Control F +#define S3C44B0_GPGCON (0x40 / 4) // Port G Control +#define S3C44B0_GPGDAT (0x44 / 4) // Port G Data +#define S3C44B0_GPGUP (0x48 / 4) // Pull-up Control G +#define S3C44B0_SPUCR (0x4C / 4) // Special Pull-up +#define S3C44B0_EXTINT (0x50 / 4) // External Interrupt Control +#define S3C44B0_EXTINTPND (0x54 / 4) // External Interrupt Pending + +#define S3C44B0_GPADAT_MASK 0x000003FF +#define S3C44B0_GPBDAT_MASK 0x000007FF +#define S3C44B0_GPCDAT_MASK 0x0000FFFF +#define S3C44B0_GPDDAT_MASK 0x000000FF +#define S3C44B0_GPEDAT_MASK 0x000001FF +#define S3C44B0_GPFDAT_MASK 0x000001FF +#define S3C44B0_GPGDAT_MASK 0x000000FF + +#define S3C44B0_RTCCON (0x00 / 4) // RTC Control +#define S3C44B0_RTCALM (0x10 / 4) // RTC Alarm Control +#define S3C44B0_ALMSEC (0x14 / 4) // Alarm Second +#define S3C44B0_ALMMIN (0x18 / 4) // Alarm Minute +#define S3C44B0_ALMHOUR (0x1C / 4) // Alarm Hour +#define S3C44B0_ALMDAY (0x20 / 4) // Alarm Day +#define S3C44B0_ALMMON (0x24 / 4) // Alarm Month +#define S3C44B0_ALMYEAR (0x28 / 4) // Alarm Year +#define S3C44B0_RTCRST (0x2C / 4) // RTC Round Reset +#define S3C44B0_BCDSEC (0x30 / 4) // BCD Second +#define S3C44B0_BCDMIN (0x34 / 4) // BCD Minute +#define S3C44B0_BCDHOUR (0x38 / 4) // BCD Hour +#define S3C44B0_BCDDAY (0x3C / 4) // BCD Day +#define S3C44B0_BCDDOW (0x40 / 4) // BCD Day of Week +#define S3C44B0_BCDMON (0x44 / 4) // BCD Month +#define S3C44B0_BCDYEAR (0x48 / 4) // BCD Year +#define S3C44B0_TICNT (0x4C / 4) // Tick Time count + +#define S3C44B0_ADCCON (0x00 / 4) // ADC Control +#define S3C44B0_ADCPSR (0x04 / 4) // ADC Prescaler +#define S3C44B0_ADCDAT (0x08 / 4) // ADC Data + +#define S3C44B0_SYSCFG (0x00 / 4) // System Configuration +#define S3C44B0_NCACHBE0 (0x04 / 4) // Non Cacheable Area 0 +#define S3C44B0_NCACHBE1 (0x08 / 4) // Non Cacheable Area 1 + +#define S3C44B0_INT_ADC 0 +#define S3C44B0_INT_RTC 1 +#define S3C44B0_INT_UTXD1 2 +#define S3C44B0_INT_UTXD0 3 +#define S3C44B0_INT_SIO 4 +#define S3C44B0_INT_IIC 5 +#define S3C44B0_INT_URXD1 6 +#define S3C44B0_INT_URXD0 7 +#define S3C44B0_INT_TIMER5 8 +#define S3C44B0_INT_TIMER4 9 +#define S3C44B0_INT_TIMER3 10 +#define S3C44B0_INT_TIMER2 11 +#define S3C44B0_INT_TIMER1 12 +#define S3C44B0_INT_TIMER0 13 +#define S3C44B0_INT_UERR 14 +#define S3C44B0_INT_WDT 15 +#define S3C44B0_INT_BDMA1 16 +#define S3C44B0_INT_BDMA0 17 +#define S3C44B0_INT_ZDMA1 18 +#define S3C44B0_INT_ZDMA0 19 +#define S3C44B0_INT_TICK 20 +#define S3C44B0_INT_EINT4_7 21 +#define S3C44B0_INT_EINT3 22 +#define S3C44B0_INT_EINT2 23 +#define S3C44B0_INT_EINT1 24 +#define S3C44B0_INT_EINT0 25 + +#define S3C44B0_MODESEL_01 0 +#define S3C44B0_MODESEL_02 1 +#define S3C44B0_MODESEL_04 2 +#define S3C44B0_MODESEL_08 3 + +#define S3C44B0_PNRMODE_STN_04_DS 0 +#define S3C44B0_PNRMODE_STN_04_SS 1 +#define S3C44B0_PNRMODE_STN_08_SS 2 + +#define S3C44B0_GPIO_PORT_A S3C44B0_GPIO_PORT_A +#define S3C44B0_GPIO_PORT_B S3C44B0_GPIO_PORT_B +#define S3C44B0_GPIO_PORT_C S3C44B0_GPIO_PORT_C +#define S3C44B0_GPIO_PORT_D S3C44B0_GPIO_PORT_D +#define S3C44B0_GPIO_PORT_E S3C44B0_GPIO_PORT_E +#define S3C44B0_GPIO_PORT_F S3C44B0_GPIO_PORT_F +#define S3C44B0_GPIO_PORT_G S3C44B0_GPIO_PORT_G + + #define VERBOSE_LEVEL ( 0 ) static inline void ATTR_PRINTF(3,4) verboselog( device_t &device, int n_level, const char *s_fmt, ...) @@ -33,17 +220,18 @@ static inline void ATTR_PRINTF(3,4) verboselog( device_t &device, int n_level, c } } -const device_type S3C44B0 = device_creator; +DEFINE_DEVICE_TYPE(S3C44B0, s3c44b0_device, "s3c44b0", "Samsung S3C44B0 SoC") s3c44b0_device::s3c44b0_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, S3C44B0, "Samsung S3C44B0", tag, owner, clock, "s3c44b0", __FILE__), m_cpu(nullptr), - m_port_r_cb(*this), - m_port_w_cb(*this), - m_scl_w_cb(*this), - m_sda_r_cb(*this), - m_sda_w_cb(*this), - m_data_r_cb(*this), - m_data_w_cb(*this) + : device_t(mconfig, S3C44B0, tag, owner, clock) + , m_cpu(nullptr) + , m_port_r_cb(*this) + , m_port_w_cb(*this) + , m_scl_w_cb(*this) + , m_sda_r_cb(*this) + , m_sda_w_cb(*this) + , m_data_r_cb(*this) + , m_data_w_cb(*this) { memset(&m_irq, 0, sizeof(s3c44b0_irq_t)); memset(m_zdma, 0, sizeof(s3c44b0_dma_t)*2); diff --git a/src/devices/machine/s3c44b0.h b/src/devices/machine/s3c44b0.h index 116aa1843a5..08c4282ad52 100644 --- a/src/devices/machine/s3c44b0.h +++ b/src/devices/machine/s3c44b0.h @@ -8,8 +8,10 @@ *******************************************************************************/ -#ifndef __S3C44B0_H__ -#define __S3C44B0_H__ +#ifndef MAME_MACHINE_S3C44B0_H +#define MAME_MACHINE_S3C44B0_H + +#pragma once /******************************************************************************* @@ -24,19 +26,6 @@ #define S3C44B0_BASE_INT 0x01E00000 -#define S3C44B0_INTCON (0x00 / 4) // Interrupt Control -#define S3C44B0_INTPND (0x04 / 4) // Interrupt Request Status -#define S3C44B0_INTMOD (0x08 / 4) // Interrupt Mode Control -#define S3C44B0_INTMSK (0x0C / 4) // Interrupt Mask Control -#define S3C44B0_I_PSLV (0x10 / 4) -#define S3C44B0_I_PMST (0x14 / 4) -#define S3C44B0_I_CSLV (0x18 / 4) -#define S3C44B0_I_CMST (0x1C / 4) -#define S3C44B0_I_ISPR (0x20 / 4) -#define S3C44B0_I_ISPC (0x24 / 4) -#define S3C44B0_F_ISPR (0x38 / 4) -#define S3C44B0_F_ISPC (0x3C / 4) - /* ZDMA & BDMA */ #define S3C44B0_BASE_ZDMA_0 0x01E80000 @@ -44,55 +33,19 @@ #define S3C44B0_BASE_BDMA_0 0x01F80000 #define S3C44B0_BASE_BDMA_1 0x01F80020 -#define S3C44B0_DCON (0x00 / 4) // DMA Control -#define S3C44B0_DISRC (0x04 / 4) // DMA Initial Source -#define S3C44B0_DIDST (0x08 / 4) // DMA Initial Destination -#define S3C44B0_DICNT (0x0C / 4) // DMA Initial Transfer Count -#define S3C44B0_DCSRC (0x10 / 4) // DMA Current Source Address -#define S3C44B0_DCDST (0x14 / 4) // DMA Current Destination Address -#define S3C44B0_DCCNT (0x18 / 4) // DMA Current Transfer Count - /* Clock & Power Management */ #define S3C44B0_BASE_CLKPOW 0x01D80000 -#define S3C44B0_PLLCON (0x00 / 4) // PLL Control -#define S3C44B0_CLKCON (0x04 / 4) // Clock Generator Control -#define S3C44B0_CLKSLOW (0x08 / 4) // Slow Clock Control -#define S3C44B0_LOCKTIME (0x0C / 4) // PLL lock time Counter - /* LCD Controller */ #define S3C44B0_BASE_LCD 0x01F00000 -#define S3C44B0_LCDCON1 (0x00 / 4) // LCD Control 1 -#define S3C44B0_LCDCON2 (0x04 / 4) // LCD Control 2 -#define S3C44B0_LCDSADDR1 (0x08 / 4) // Frame Buffer Start Address 1 -#define S3C44B0_LCDSADDR2 (0x0C / 4) // Frame Buffer Start Address 2 -#define S3C44B0_LCDSADDR3 (0x10 / 4) // Virtual Screen Address Set -#define S3C44B0_REDLUT (0x14 / 4) // STN: Red Lookup Table -#define S3C44B0_GREENLUT (0x18 / 4) // STN: Green Lookup Table -#define S3C44B0_BLUELUT (0x1C / 4) // STN: Blue Lookup Table -#define S3C44B0_LCDCON3 (0x40 / 4) // LCD Control 3 -#define S3C44B0_DITHMODE (0x44 / 4) // STN: Dithering Mode - /* UART */ #define S3C44B0_BASE_UART_0 0x01D00000 #define S3C44B0_BASE_UART_1 0x01D04000 -#define S3C44B0_ULCON (0x00 / 4) // UART Line Control -#define S3C44B0_UCON (0x04 / 4) // UART Control -#define S3C44B0_UFCON (0x08 / 4) // UART FIFO Control -#define S3C44B0_UMCON (0x0C / 4) // UART Modem Control -#define S3C44B0_UTRSTAT (0x10 / 4) // UART Tx/Rx Status -#define S3C44B0_UERSTAT (0x14 / 4) // UART Rx Error Status -#define S3C44B0_UFSTAT (0x18 / 4) // UART FIFO Status -#define S3C44B0_UMSTAT (0x1C / 4) // UART Modem Status -#define S3C44B0_UTXH (0x20 / 4) // UART Transmission Hold -#define S3C44B0_URXH (0x24 / 4) // UART Receive Buffer -#define S3C44B0_UBRDIV (0x28 / 4) // UART Baud Rate Divisor - /* SIO */ #define S3C44B0_BASE_SIO 0x01D14000 @@ -107,27 +60,6 @@ #define S3C44B0_BASE_PWM 0x01D50000 -#define S3C44B0_TCFG0 (0x00 / 4) // Timer Configuration -#define S3C44B0_TCFG1 (0x04 / 4) // Timer Configuration -#define S3C44B0_TCON (0x08 / 4) // Timer Control -#define S3C44B0_TCNTB0 (0x0C / 4) // Timer Count Buffer 0 -#define S3C44B0_TCMPB0 (0x10 / 4) // Timer Compare Buffer 0 -#define S3C44B0_TCNTO0 (0x14 / 4) // Timer Count Observation 0 -#define S3C44B0_TCNTB1 (0x18 / 4) // Timer Count Buffer 1 -#define S3C44B0_TCMPB1 (0x1C / 4) // Timer Compare Buffer 1 -#define S3C44B0_TCNTO1 (0x20 / 4) // Timer Count Observation 1 -#define S3C44B0_TCNTB2 (0x24 / 4) // Timer Count Buffer 2 -#define S3C44B0_TCMPB2 (0x28 / 4) // Timer Compare Buffer 2 -#define S3C44B0_TCNTO2 (0x2C / 4) // Timer Count Observation 2 -#define S3C44B0_TCNTB3 (0x30 / 4) // Timer Count Buffer 3 -#define S3C44B0_TCMPB3 (0x34 / 4) // Timer Compare Buffer 3 -#define S3C44B0_TCNTO3 (0x38 / 4) // Timer Count Observation 3 -#define S3C44B0_TCNTB4 (0x3C / 4) // Timer Count Buffer 4 -#define S3C44B0_TCMPB4 (0x40 / 4) // Timer Compare Buffer 4 -#define S3C44B0_TCNTO4 (0x44 / 4) // Timer Count Observation 4 -#define S3C44B0_TCNTB5 (0x48 / 4) // Timer Count Buffer 5 -#define S3C44B0_TCNTO5 (0x4C / 4) // Timer Count Observation 5 - /* USB Device */ #define S3C44B0_BASE_USBDEV 0x15200140 @@ -136,456 +68,37 @@ #define S3C44B0_BASE_WDT 0x01D30000 -#define S3C44B0_WTCON (0x00 / 4) // Watchdog Timer Mode -#define S3C44B0_WTDAT (0x04 / 4) // Watchdog Timer Data -#define S3C44B0_WTCNT (0x08 / 4) // Watchdog Timer Count - /* IIC */ #define S3C44B0_BASE_IIC 0x01D60000 -#define S3C44B0_IICCON (0x00 / 4) // IIC Control -#define S3C44B0_IICSTAT (0x04 / 4) // IIC Status -#define S3C44B0_IICADD (0x08 / 4) // IIC Address -#define S3C44B0_IICDS (0x0C / 4) // IIC Data Shift - /* IIS */ #define S3C44B0_BASE_IIS 0x01D18000 -#define S3C44B0_IISCON (0x00 / 4) // IIS Control -#define S3C44B0_IISMOD (0x04 / 4) // IIS Mode -#define S3C44B0_IISPSR (0x08 / 4) // IIS Prescaler -#define S3C44B0_IISFCON (0x0C / 4) // IIS FIFO Control -#define S3C44B0_IISFIFO (0x10 / 4) // IIS FIFO Entry - /* I/O Port */ #define S3C44B0_BASE_GPIO 0x01D20000 -#define S3C44B0_GPACON (0x00 / 4) // Port A Control -#define S3C44B0_GPADAT (0x04 / 4) // Port A Data -#define S3C44B0_GPBCON (0x08 / 4) // Port B Control -#define S3C44B0_GPBDAT (0x0C / 4) // Port B Data -#define S3C44B0_GPCCON (0x10 / 4) // Port C Control -#define S3C44B0_GPCDAT (0x14 / 4) // Port C Data -#define S3C44B0_GPCUP (0x18 / 4) // Pull-up Control C -#define S3C44B0_GPDCON (0x1C / 4) // Port D Control -#define S3C44B0_GPDDAT (0x20 / 4) // Port D Data -#define S3C44B0_GPDUP (0x24 / 4) // Pull-up Control D -#define S3C44B0_GPECON (0x28 / 4) // Port E Control -#define S3C44B0_GPEDAT (0x2C / 4) // Port E Data -#define S3C44B0_GPEUP (0x30 / 4) // Pull-up Control E -#define S3C44B0_GPFCON (0x34 / 4) // Port F Control -#define S3C44B0_GPFDAT (0x38 / 4) // Port F Data -#define S3C44B0_GPFUP (0x3C / 4) // Pull-up Control F -#define S3C44B0_GPGCON (0x40 / 4) // Port G Control -#define S3C44B0_GPGDAT (0x44 / 4) // Port G Data -#define S3C44B0_GPGUP (0x48 / 4) // Pull-up Control G -#define S3C44B0_SPUCR (0x4C / 4) // Special Pull-up -#define S3C44B0_EXTINT (0x50 / 4) // External Interrupt Control -#define S3C44B0_EXTINTPND (0x54 / 4) // External Interrupt Pending - -#define S3C44B0_GPADAT_MASK 0x000003FF -#define S3C44B0_GPBDAT_MASK 0x000007FF -#define S3C44B0_GPCDAT_MASK 0x0000FFFF -#define S3C44B0_GPDDAT_MASK 0x000000FF -#define S3C44B0_GPEDAT_MASK 0x000001FF -#define S3C44B0_GPFDAT_MASK 0x000001FF -#define S3C44B0_GPGDAT_MASK 0x000000FF - /* RTC */ #define S3C44B0_BASE_RTC 0x01D70040 -#define S3C44B0_RTCCON (0x00 / 4) // RTC Control -#define S3C44B0_RTCALM (0x10 / 4) // RTC Alarm Control -#define S3C44B0_ALMSEC (0x14 / 4) // Alarm Second -#define S3C44B0_ALMMIN (0x18 / 4) // Alarm Minute -#define S3C44B0_ALMHOUR (0x1C / 4) // Alarm Hour -#define S3C44B0_ALMDAY (0x20 / 4) // Alarm Day -#define S3C44B0_ALMMON (0x24 / 4) // Alarm Month -#define S3C44B0_ALMYEAR (0x28 / 4) // Alarm Year -#define S3C44B0_RTCRST (0x2C / 4) // RTC Round Reset -#define S3C44B0_BCDSEC (0x30 / 4) // BCD Second -#define S3C44B0_BCDMIN (0x34 / 4) // BCD Minute -#define S3C44B0_BCDHOUR (0x38 / 4) // BCD Hour -#define S3C44B0_BCDDAY (0x3C / 4) // BCD Day -#define S3C44B0_BCDDOW (0x40 / 4) // BCD Day of Week -#define S3C44B0_BCDMON (0x44 / 4) // BCD Month -#define S3C44B0_BCDYEAR (0x48 / 4) // BCD Year -#define S3C44B0_TICNT (0x4C / 4) // Tick Time count - /* A/D Converter */ #define S3C44B0_BASE_ADC 0x01D40000 -#define S3C44B0_ADCCON (0x00 / 4) // ADC Control -#define S3C44B0_ADCPSR (0x04 / 4) // ADC Prescaler -#define S3C44B0_ADCDAT (0x08 / 4) // ADC Data - /* CPU Wrapper */ #define S3C44B0_BASE_CPU_WRAPPER 0x01C00000 -#define S3C44B0_SYSCFG (0x00 / 4) // System Configuration -#define S3C44B0_NCACHBE0 (0x04 / 4) // Non Cacheable Area 0 -#define S3C44B0_NCACHBE1 (0x08 / 4) // Non Cacheable Area 1 - /* ... */ -#define S3C44B0_INT_ADC 0 -#define S3C44B0_INT_RTC 1 -#define S3C44B0_INT_UTXD1 2 -#define S3C44B0_INT_UTXD0 3 -#define S3C44B0_INT_SIO 4 -#define S3C44B0_INT_IIC 5 -#define S3C44B0_INT_URXD1 6 -#define S3C44B0_INT_URXD0 7 -#define S3C44B0_INT_TIMER5 8 -#define S3C44B0_INT_TIMER4 9 -#define S3C44B0_INT_TIMER3 10 -#define S3C44B0_INT_TIMER2 11 -#define S3C44B0_INT_TIMER1 12 -#define S3C44B0_INT_TIMER0 13 -#define S3C44B0_INT_UERR 14 -#define S3C44B0_INT_WDT 15 -#define S3C44B0_INT_BDMA1 16 -#define S3C44B0_INT_BDMA0 17 -#define S3C44B0_INT_ZDMA1 18 -#define S3C44B0_INT_ZDMA0 19 -#define S3C44B0_INT_TICK 20 -#define S3C44B0_INT_EINT4_7 21 -#define S3C44B0_INT_EINT3 22 -#define S3C44B0_INT_EINT2 23 -#define S3C44B0_INT_EINT1 24 -#define S3C44B0_INT_EINT0 25 - -#define S3C44B0_MODESEL_01 0 -#define S3C44B0_MODESEL_02 1 -#define S3C44B0_MODESEL_04 2 -#define S3C44B0_MODESEL_08 3 - -#define S3C44B0_PNRMODE_STN_04_DS 0 -#define S3C44B0_PNRMODE_STN_04_SS 1 -#define S3C44B0_PNRMODE_STN_08_SS 2 - -#define S3C44B0_GPIO_PORT_A S3C44B0_GPIO_PORT_A -#define S3C44B0_GPIO_PORT_B S3C44B0_GPIO_PORT_B -#define S3C44B0_GPIO_PORT_C S3C44B0_GPIO_PORT_C -#define S3C44B0_GPIO_PORT_D S3C44B0_GPIO_PORT_D -#define S3C44B0_GPIO_PORT_E S3C44B0_GPIO_PORT_E -#define S3C44B0_GPIO_PORT_F S3C44B0_GPIO_PORT_F -#define S3C44B0_GPIO_PORT_G S3C44B0_GPIO_PORT_G - /******************************************************************************* MACROS / CONSTANTS *******************************************************************************/ - -struct s3c44b0_memcon_regs_t -{ - uint32_t data[0x34/4]; -}; - -struct s3c44b0_irq_regs_t -{ - uint32_t intcon; - uint32_t intpnd; - uint32_t intmod; - uint32_t intmsk; - uint32_t i_pslv; - uint32_t i_pmst; - uint32_t i_cslv; - uint32_t i_cmst; - uint32_t i_ispr; - uint32_t i_ispc; - uint32_t reserved[4]; - uint32_t f_ispr; - uint32_t f_ispc; -}; - -struct s3c44b0_dma_regs_t -{ - uint32_t dcon; - uint32_t disrc; - uint32_t didst; - uint32_t dicnt; - uint32_t dcsrc; - uint32_t dcdst; - uint32_t dccnt; -}; - -struct s3c44b0_clkpow_regs_t -{ - uint32_t pllcon; - uint32_t clkcon; - uint32_t clkslow; - uint32_t locktime; -}; - -struct s3c44b0_lcd_regs_t -{ - uint32_t lcdcon1; - uint32_t lcdcon2; - uint32_t lcdsaddr1; - uint32_t lcdsaddr2; - uint32_t lcdsaddr3; - uint32_t redlut; - uint32_t greenlut; - uint32_t bluelut; - uint32_t reserved[8]; - uint32_t lcdcon3; - uint32_t dithmode; -}; - -struct s3c44b0_uart_regs_t -{ - uint32_t ulcon; - uint32_t ucon; - uint32_t ufcon; - uint32_t umcon; - uint32_t utrstat; - uint32_t uerstat; - uint32_t ufstat; - uint32_t umstat; - uint32_t utxh; - uint32_t urxh; - uint32_t ubrdiv; -}; - -struct s3c44b0_sio_regs_t -{ - uint32_t siocon; - uint32_t siodat; - uint32_t sbrdr; - uint32_t itvcnt; - uint32_t dcntz; -}; - -struct s3c44b0_pwm_regs_t -{ - uint32_t tcfg0; - uint32_t tcfg1; - uint32_t tcon; - uint32_t tcntb0; - uint32_t tcmpb0; - uint32_t tcnto0; - uint32_t tcntb1; - uint32_t tcmpb1; - uint32_t tcnto1; - uint32_t tcntb2; - uint32_t tcmpb2; - uint32_t tcnto2; - uint32_t tcntb3; - uint32_t tcmpb3; - uint32_t tcnto3; - uint32_t tcntb4; - uint32_t tcmpb4; - uint32_t tcnto4; - uint32_t tcntb5; - uint32_t tcnto5; -}; - -struct s3c44b0_wdt_regs_t -{ - uint32_t wtcon; - uint32_t wtdat; - uint32_t wtcnt; -}; - -struct s3c44b0_iic_regs_t -{ - uint32_t iiccon; - uint32_t iicstat; - uint32_t iicadd; - uint32_t iicds; -}; - -struct s3c44b0_iis_regs_t -{ - uint32_t iiscon; - uint32_t iismod; - uint32_t iispsr; - uint32_t iisfcon; - uint32_t iisfifo; -}; - -struct s3c44b0_gpio_regs_t -{ - uint32_t gpacon; - uint32_t gpadat; - uint32_t gpbcon; - uint32_t gpbdat; - uint32_t gpccon; - uint32_t gpcdat; - uint32_t gpcup; - uint32_t gpdcon; - uint32_t gpddat; - uint32_t gpdup; - uint32_t gpecon; - uint32_t gpedat; - uint32_t gpeup; - uint32_t gpfcon; - uint32_t gpfdat; - uint32_t gpfup; - uint32_t gpgcon; - uint32_t gpgdat; - uint32_t gpgup; - uint32_t spucr; - uint32_t extint; - uint32_t extintpnd; -}; - -struct s3c44b0_rtc_regs_t -{ - uint32_t rtccon; - uint32_t reserved[3]; - uint32_t rtcalm; - uint32_t almsec; - uint32_t almmin; - uint32_t almhour; - uint32_t almday; - uint32_t almmon; - uint32_t almyear; - uint32_t rtcrst; - uint32_t bcdsec; - uint32_t bcdmin; - uint32_t bcdhour; - uint32_t bcdday; - uint32_t bcddow; - uint32_t bcdmon; - uint32_t bcdyear; - uint32_t ticnt; -}; - -struct s3c44b0_adc_regs_t -{ - uint32_t adccon; - uint32_t adcpsr; - uint32_t adcdat; -}; - -struct s3c44b0_cpuwrap_regs_t -{ - uint32_t syscfg; - uint32_t ncachbe0; - uint32_t ncachbe1; -}; - -struct s3c44b0_memcon_t -{ - s3c44b0_memcon_regs_t regs; -}; - -struct s3c44b0_irq_t -{ - s3c44b0_irq_regs_t regs; - int line_irq, line_fiq; -}; - -struct s3c44b0_dma_t -{ - s3c44b0_dma_regs_t regs; - emu_timer *timer; -}; - -struct s3c44b0_clkpow_t -{ - s3c44b0_clkpow_regs_t regs; -}; - -struct rectangle_t -{ - int x1, y1, x2, y2; -}; - -struct s3c44b0_lcd_t -{ - s3c44b0_lcd_regs_t regs; - emu_timer *timer; - std::unique_ptr bitmap; - uint32_t vramaddr_cur; - uint32_t vramaddr_max; - uint32_t offsize; - uint32_t pagewidth_cur; - uint32_t pagewidth_max; - uint32_t modesel; - uint32_t bswp; - int vpos, hpos; - double framerate; - uint32_t hpos_min, hpos_max, hpos_end, vpos_min, vpos_max, vpos_end; - attotime frame_time; - attoseconds_t frame_period, pixeltime, scantime; -}; - -struct s3c44b0_uart_t -{ - s3c44b0_uart_regs_t regs; - emu_timer *timer; -}; - -struct s3c44b0_sio_t -{ - s3c44b0_sio_regs_t regs; - emu_timer *timer; -}; - -struct s3c44b0_pwm_t -{ - s3c44b0_pwm_regs_t regs; - emu_timer *timer[6]; - uint32_t cnt[6]; - uint32_t cmp[6]; - uint32_t freq[6]; -}; - -struct s3c44b0_wdt_t -{ - s3c44b0_wdt_regs_t regs; - emu_timer *timer; -}; - -struct s3c44b0_iic_t -{ - s3c44b0_iic_regs_t regs; - emu_timer *timer; - int count; -}; - -struct s3c44b0_iis_t -{ - s3c44b0_iis_regs_t regs; - emu_timer *timer; - uint16_t fifo[16/2]; - int fifo_index; -}; - -struct s3c44b0_gpio_t -{ - s3c44b0_gpio_regs_t regs; -}; - -struct s3c44b0_rtc_t -{ - s3c44b0_rtc_regs_t regs; - emu_timer *timer_tick_count; - emu_timer *timer_update; -}; - -struct s3c44b0_adc_t -{ - s3c44b0_adc_regs_t regs; - emu_timer *timer; -}; - -struct s3c44b0_cpuwrap_t -{ - s3c44b0_cpuwrap_regs_t regs; -}; - - enum { S3C44B0_GPIO_PORT_A = 0, @@ -597,19 +110,19 @@ enum S3C44B0_GPIO_PORT_G }; + class s3c44b0_device : public device_t { public: s3c44b0_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~s3c44b0_device() {} - template static devcb_base &set_gpio_port_r_callback(device_t &device, _Object object) { return downcast(device).m_port_r_cb.set_callback(object); } - template static devcb_base &set_gpio_port_w_callback(device_t &device, _Object object) { return downcast(device).m_port_w_cb.set_callback(object); } - template static devcb_base &set_i2c_scl_w_callback(device_t &device, _Object object) { return downcast(device).m_scl_w_cb.set_callback(object); } - template static devcb_base &set_i2c_sda_r_callback(device_t &device, _Object object) { return downcast(device).m_sda_r_cb.set_callback(object); } - template static devcb_base &set_i2c_sda_w_callback(device_t &device, _Object object) { return downcast(device).m_sda_w_cb.set_callback(object); } - template static devcb_base &set_adc_data_r_callback(device_t &device, _Object object) { return downcast(device).m_data_r_cb.set_callback(object); } - template static devcb_base &set_i2s_data_w_callback(device_t &device, _Object object) { return downcast(device).m_data_w_cb.set_callback(object); } + template static devcb_base &set_gpio_port_r_callback(device_t &device, Object &&cb) { return downcast(device).m_port_r_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_gpio_port_w_callback(device_t &device, Object &&cb) { return downcast(device).m_port_w_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_i2c_scl_w_callback(device_t &device, Object &&cb) { return downcast(device).m_scl_w_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_i2c_sda_r_callback(device_t &device, Object &&cb) { return downcast(device).m_sda_r_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_i2c_sda_w_callback(device_t &device, Object &&cb) { return downcast(device).m_sda_w_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_adc_data_r_callback(device_t &device, Object &&cb) { return downcast(device).m_data_r_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_i2s_data_w_callback(device_t &device, Object &&cb) { return downcast(device).m_data_w_cb.set_callback(std::forward(cb)); } DECLARE_READ32_MEMBER(lcd_r); DECLARE_READ32_MEMBER(clkpow_r); @@ -656,6 +169,308 @@ protected: virtual void device_reset() override; private: + struct s3c44b0_memcon_regs_t + { + uint32_t data[0x34/4]; + }; + + struct s3c44b0_irq_regs_t + { + uint32_t intcon; + uint32_t intpnd; + uint32_t intmod; + uint32_t intmsk; + uint32_t i_pslv; + uint32_t i_pmst; + uint32_t i_cslv; + uint32_t i_cmst; + uint32_t i_ispr; + uint32_t i_ispc; + uint32_t reserved[4]; + uint32_t f_ispr; + uint32_t f_ispc; + }; + + struct s3c44b0_dma_regs_t + { + uint32_t dcon; + uint32_t disrc; + uint32_t didst; + uint32_t dicnt; + uint32_t dcsrc; + uint32_t dcdst; + uint32_t dccnt; + }; + + struct s3c44b0_clkpow_regs_t + { + uint32_t pllcon; + uint32_t clkcon; + uint32_t clkslow; + uint32_t locktime; + }; + + struct s3c44b0_lcd_regs_t + { + uint32_t lcdcon1; + uint32_t lcdcon2; + uint32_t lcdsaddr1; + uint32_t lcdsaddr2; + uint32_t lcdsaddr3; + uint32_t redlut; + uint32_t greenlut; + uint32_t bluelut; + uint32_t reserved[8]; + uint32_t lcdcon3; + uint32_t dithmode; + }; + + struct s3c44b0_uart_regs_t + { + uint32_t ulcon; + uint32_t ucon; + uint32_t ufcon; + uint32_t umcon; + uint32_t utrstat; + uint32_t uerstat; + uint32_t ufstat; + uint32_t umstat; + uint32_t utxh; + uint32_t urxh; + uint32_t ubrdiv; + }; + + struct s3c44b0_sio_regs_t + { + uint32_t siocon; + uint32_t siodat; + uint32_t sbrdr; + uint32_t itvcnt; + uint32_t dcntz; + }; + + struct s3c44b0_pwm_regs_t + { + uint32_t tcfg0; + uint32_t tcfg1; + uint32_t tcon; + uint32_t tcntb0; + uint32_t tcmpb0; + uint32_t tcnto0; + uint32_t tcntb1; + uint32_t tcmpb1; + uint32_t tcnto1; + uint32_t tcntb2; + uint32_t tcmpb2; + uint32_t tcnto2; + uint32_t tcntb3; + uint32_t tcmpb3; + uint32_t tcnto3; + uint32_t tcntb4; + uint32_t tcmpb4; + uint32_t tcnto4; + uint32_t tcntb5; + uint32_t tcnto5; + }; + + struct s3c44b0_wdt_regs_t + { + uint32_t wtcon; + uint32_t wtdat; + uint32_t wtcnt; + }; + + struct s3c44b0_iic_regs_t + { + uint32_t iiccon; + uint32_t iicstat; + uint32_t iicadd; + uint32_t iicds; + }; + + struct s3c44b0_iis_regs_t + { + uint32_t iiscon; + uint32_t iismod; + uint32_t iispsr; + uint32_t iisfcon; + uint32_t iisfifo; + }; + + struct s3c44b0_gpio_regs_t + { + uint32_t gpacon; + uint32_t gpadat; + uint32_t gpbcon; + uint32_t gpbdat; + uint32_t gpccon; + uint32_t gpcdat; + uint32_t gpcup; + uint32_t gpdcon; + uint32_t gpddat; + uint32_t gpdup; + uint32_t gpecon; + uint32_t gpedat; + uint32_t gpeup; + uint32_t gpfcon; + uint32_t gpfdat; + uint32_t gpfup; + uint32_t gpgcon; + uint32_t gpgdat; + uint32_t gpgup; + uint32_t spucr; + uint32_t extint; + uint32_t extintpnd; + }; + + struct s3c44b0_rtc_regs_t + { + uint32_t rtccon; + uint32_t reserved[3]; + uint32_t rtcalm; + uint32_t almsec; + uint32_t almmin; + uint32_t almhour; + uint32_t almday; + uint32_t almmon; + uint32_t almyear; + uint32_t rtcrst; + uint32_t bcdsec; + uint32_t bcdmin; + uint32_t bcdhour; + uint32_t bcdday; + uint32_t bcddow; + uint32_t bcdmon; + uint32_t bcdyear; + uint32_t ticnt; + }; + + struct s3c44b0_adc_regs_t + { + uint32_t adccon; + uint32_t adcpsr; + uint32_t adcdat; + }; + + struct s3c44b0_cpuwrap_regs_t + { + uint32_t syscfg; + uint32_t ncachbe0; + uint32_t ncachbe1; + }; + + struct s3c44b0_memcon_t + { + s3c44b0_memcon_regs_t regs; + }; + + struct s3c44b0_irq_t + { + s3c44b0_irq_regs_t regs; + int line_irq, line_fiq; + }; + + struct s3c44b0_dma_t + { + s3c44b0_dma_regs_t regs; + emu_timer *timer; + }; + + struct s3c44b0_clkpow_t + { + s3c44b0_clkpow_regs_t regs; + }; + + struct rectangle_t + { + int x1, y1, x2, y2; + }; + + struct s3c44b0_lcd_t + { + s3c44b0_lcd_regs_t regs; + emu_timer *timer; + std::unique_ptr bitmap; + uint32_t vramaddr_cur; + uint32_t vramaddr_max; + uint32_t offsize; + uint32_t pagewidth_cur; + uint32_t pagewidth_max; + uint32_t modesel; + uint32_t bswp; + int vpos, hpos; + double framerate; + uint32_t hpos_min, hpos_max, hpos_end, vpos_min, vpos_max, vpos_end; + attotime frame_time; + attoseconds_t frame_period, pixeltime, scantime; + }; + + struct s3c44b0_uart_t + { + s3c44b0_uart_regs_t regs; + emu_timer *timer; + }; + + struct s3c44b0_sio_t + { + s3c44b0_sio_regs_t regs; + emu_timer *timer; + }; + + struct s3c44b0_pwm_t + { + s3c44b0_pwm_regs_t regs; + emu_timer *timer[6]; + uint32_t cnt[6]; + uint32_t cmp[6]; + uint32_t freq[6]; + }; + + struct s3c44b0_wdt_t + { + s3c44b0_wdt_regs_t regs; + emu_timer *timer; + }; + + struct s3c44b0_iic_t + { + s3c44b0_iic_regs_t regs; + emu_timer *timer; + int count; + }; + + struct s3c44b0_iis_t + { + s3c44b0_iis_regs_t regs; + emu_timer *timer; + uint16_t fifo[16/2]; + int fifo_index; + }; + + struct s3c44b0_gpio_t + { + s3c44b0_gpio_regs_t regs; + }; + + struct s3c44b0_rtc_t + { + s3c44b0_rtc_regs_t regs; + emu_timer *timer_tick_count; + emu_timer *timer_update; + }; + + struct s3c44b0_adc_t + { + s3c44b0_adc_regs_t regs; + emu_timer *timer; + }; + + struct s3c44b0_cpuwrap_t + { + s3c44b0_cpuwrap_regs_t regs; + }; + + // internal state // LCD Controller rgb_t lcd_get_color_stn_04(uint8_t data); @@ -786,29 +601,29 @@ private: void s3c44b0_postload(); }; -extern const device_type S3C44B0; +DECLARE_DEVICE_TYPE(S3C44B0, s3c44b0_device) -#define MCFG_S3C44B0_GPIO_PORT_R_CB(_devcb) \ - devcb = &s3c44b0_device::set_gpio_port_r_callback(*device, DEVCB_##_devcb); +#define MCFG_S3C44B0_GPIO_PORT_R_CB(cb) \ + devcb = &s3c44b0_device::set_gpio_port_r_callback(*device, DEVCB_##cb); -#define MCFG_S3C44B0_GPIO_PORT_W_CB(_devcb) \ - devcb = &s3c44b0_device::set_gpio_port_w_callback(*device, DEVCB_##_devcb); +#define MCFG_S3C44B0_GPIO_PORT_W_CB(cb) \ + devcb = &s3c44b0_device::set_gpio_port_w_callback(*device, DEVCB_##cb); -#define MCFG_S3C44B0_I2C_SCL_W_CB(_devcb) \ - devcb = &s3c44b0_device::set_i2c_scl_w_callback(*device, DEVCB_##_devcb); +#define MCFG_S3C44B0_I2C_SCL_W_CB(cb) \ + devcb = &s3c44b0_device::set_i2c_scl_w_callback(*device, DEVCB_##cb); -#define MCFG_S3C44B0_I2C_SDA_R_CB(_devcb) \ - devcb = &s3c44b0_device::set_i2c_sda_r_callback(*device, DEVCB_##_devcb); +#define MCFG_S3C44B0_I2C_SDA_R_CB(cb) \ + devcb = &s3c44b0_device::set_i2c_sda_r_callback(*device, DEVCB_##cb); -#define MCFG_S3C44B0_I2C_SDA_W_CB(_devcb) \ - devcb = &s3c44b0_device::set_i2c_sda_w_callback(*device, DEVCB_##_devcb); +#define MCFG_S3C44B0_I2C_SDA_W_CB(cb) \ + devcb = &s3c44b0_device::set_i2c_sda_w_callback(*device, DEVCB_##cb); -#define MCFG_S3C44B0_ADC_DATA_R_CB(_devcb) \ - devcb = &s3c44b0_device::set_adc_data_r_callback(*device, DEVCB_##_devcb); +#define MCFG_S3C44B0_ADC_DATA_R_CB(cb) \ + devcb = &s3c44b0_device::set_adc_data_r_callback(*device, DEVCB_##cb); -#define MCFG_S3C44B0_I2S_DATA_W_CB(_devcb) \ - devcb = &s3c44b0_device::set_i2s_data_w_callback(*device, DEVCB_##_devcb); +#define MCFG_S3C44B0_I2S_DATA_W_CB(cb) \ + devcb = &s3c44b0_device::set_i2s_data_w_callback(*device, DEVCB_##cb); -#endif +#endif // MAME_MACHINE_S3C44B0_H diff --git a/src/devices/machine/scnxx562.cpp b/src/devices/machine/scnxx562.cpp index eb4f782e1b9..c0db91ceb85 100644 --- a/src/devices/machine/scnxx562.cpp +++ b/src/devices/machine/scnxx562.cpp @@ -86,19 +86,22 @@ DONE (x) (p=partly) NMOS CMOS /* Useful temporary debug printout format */ // printf("TAG %lld %s%s Data:%d\n", machine().firstcpu->total_cycles(), __PRETTY_FUNCTION__, m_owner->tag(), data); -#define VERBOSE 0 - -#define LOGPRINT(x) { do { if (VERBOSE) logerror x; } while (0); } -#define LOG(x) {} -#define LOGR(x) {} -#define LOGTX(x) {} -#define LOGRX(x) {} -#define LOGSETUP(x) {} LOGPRINT(x) -#define LOGINT(x) {} - -#if VERBOSE > 1 -#define logerror printf -#endif +#define LOG_GENERAL (1U << 0) +#define LOG_R (1U << 1) +#define LOG_TX (1U << 2) +#define LOG_RX (1U << 3) +#define LOG_SETUP (1U << 4) +#define LOG_INT (1U << 5) + +//#define VERBOSE (LOG_SETUP) +//#define LOG_OUTPUT_FUNC printf +#include "logmacro.h" + +#define LOGR(...) LOGMASKED(LOG_R, __VA_ARGS__) +#define LOGTX(...) LOGMASKED(LOG_TX, __VA_ARGS__) +#define LOGRX(...) LOGMASKED(LOG_RX, __VA_ARGS__) +#define LOGSETUP(...) LOGMASKED(LOG_SETUP, __VA_ARGS__) +#define LOGINT(...) LOGMASKED(LOG_INT, __VA_ARGS__) #ifdef _MSC_VER #define FUNCNAME __func__ @@ -115,12 +118,12 @@ DONE (x) (p=partly) NMOS CMOS // DEVICE DEFINITIONS //************************************************************************** // device type definition -const device_type DUSCC = device_creator; -const device_type DUSCC_CHANNEL = device_creator; -const device_type DUSCC26562 = device_creator; -const device_type DUSCC26C562 = device_creator; -const device_type DUSCC68562 = device_creator; -const device_type DUSCC68C562 = device_creator; +DEFINE_DEVICE_TYPE(DUSCC, duscc_device, "dussc", "Philips Dual SSC") +DEFINE_DEVICE_TYPE(DUSCC_CHANNEL, duscc_channel, "duscc_channel", "Philips Dual SCC Channel") +DEFINE_DEVICE_TYPE(DUSCC26562, duscc26562_device, "duscc26c562", "Philips SCN26562 Dual SCC") +DEFINE_DEVICE_TYPE(DUSCC26C562, duscc26c562_device, "duscc26562", "Philips SCN26C562 Dual SCC") +DEFINE_DEVICE_TYPE(DUSCC68562, duscc68562_device, "duscc68562", "Philips SCN68562 Dual SCC") +DEFINE_DEVICE_TYPE(DUSCC68C562, duscc68c562_device, "duscc68c562", "Philips SCN68C562 Dual SCC") //------------------------------------------------- // device_mconfig_additions - @@ -142,79 +145,64 @@ machine_config_constructor duscc_device::device_mconfig_additions() const //------------------------------------------------- // duscc_device - constructor //------------------------------------------------- -duscc_device::duscc_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, uint32_t variant, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_z80daisy_interface(mconfig, *this), - m_chanA(*this, CHANA_TAG), - m_chanB(*this, CHANB_TAG), +duscc_device::duscc_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint32_t variant) + : device_t(mconfig, type, tag, owner, clock) + , device_z80daisy_interface(mconfig, *this) + , m_chanA(*this, CHANA_TAG) + , m_chanB(*this, CHANB_TAG) #if 0 - m_rxca(0), - m_txca(0), - m_rxcb(0), - m_txcb(0), + , m_rxca(0), + , m_txca(0), + , m_rxcb(0), + , m_txcb(0), #endif - m_out_txda_cb(*this), - m_out_dtra_cb(*this), - m_out_rtsa_cb(*this), - m_out_synca_cb(*this), - m_out_rtxca_cb(*this), - m_out_trxca_cb(*this), - m_out_txdb_cb(*this), - m_out_dtrb_cb(*this), - m_out_rtsb_cb(*this), - m_out_syncb_cb(*this), - m_out_rtxcb_cb(*this), - m_out_trxcb_cb(*this), - m_out_int_cb(*this), - m_variant(variant), - m_gsr(0), - m_ivr(0), - m_ivrm(0), - m_icr(0) + , m_out_txda_cb(*this) + , m_out_dtra_cb(*this) + , m_out_rtsa_cb(*this) + , m_out_synca_cb(*this) + , m_out_rtxca_cb(*this) + , m_out_trxca_cb(*this) + , m_out_txdb_cb(*this) + , m_out_dtrb_cb(*this) + , m_out_rtsb_cb(*this) + , m_out_syncb_cb(*this) + , m_out_rtxcb_cb(*this) + , m_out_trxcb_cb(*this) + , m_out_int_cb(*this) + , m_variant(variant) + , m_gsr(0) + , m_ivr(0) + , m_ivrm(0) + , m_icr(0) { for (auto & elem : m_int_state) elem = 0; } duscc_device::duscc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, DUSCC, "DUSCC", tag, owner, clock, "duscc", __FILE__), - device_z80daisy_interface(mconfig, *this), - m_chanA(*this, CHANA_TAG), - m_chanB(*this, CHANB_TAG), - m_out_txda_cb(*this), - m_out_dtra_cb(*this), - m_out_rtsa_cb(*this), - m_out_synca_cb(*this), - m_out_rtxca_cb(*this), - m_out_trxca_cb(*this), - m_out_txdb_cb(*this), - m_out_dtrb_cb(*this), - m_out_rtsb_cb(*this), - m_out_syncb_cb(*this), - m_out_rtxcb_cb(*this), - m_out_trxcb_cb(*this), - m_out_int_cb(*this), - m_variant(TYPE_DUSCC), - m_gsr(0), - m_ivr(0), - m_ivrm(0), - m_icr(0) + : duscc_device(mconfig, DUSCC, tag, owner, clock, TYPE_DUSCC) { - for (auto & elem : m_int_state) - elem = 0; } duscc26562_device::duscc26562_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : duscc_device(mconfig, DUSCC26562, "DUSCC 26562", tag, owner, clock, TYPE_DUSCC26562, "duscc26562", __FILE__){ } + : duscc_device(mconfig, DUSCC26562, tag, owner, clock, TYPE_DUSCC26562) +{ +} -duscc26C562_device::duscc26C562_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : duscc_device(mconfig, DUSCC26C562, "DUSCC 26C562", tag, owner, clock, TYPE_DUSCC26C562, "duscc26c562", __FILE__){ } +duscc26c562_device::duscc26c562_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : duscc_device(mconfig, DUSCC26C562, tag, owner, clock, TYPE_DUSCC26C562) +{ +} duscc68562_device::duscc68562_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : duscc_device(mconfig, DUSCC68562, "DUSCC 68562", tag, owner, clock, TYPE_DUSCC68562, "duscc68562", __FILE__){ } + : duscc_device(mconfig, DUSCC68562, tag, owner, clock, TYPE_DUSCC68562) +{ +} -duscc68C562_device::duscc68C562_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : duscc_device(mconfig, DUSCC68C562, "DUSCC 68C562", tag, owner, clock, TYPE_DUSCC68C562, "duscc68c562", __FILE__){ } +duscc68c562_device::duscc68c562_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : duscc_device(mconfig, DUSCC68C562, tag, owner, clock, TYPE_DUSCC68C562) +{ +} //------------------------------------------------- // device_start - device-specific startup @@ -222,7 +210,7 @@ duscc68C562_device::duscc68C562_device(const machine_config &mconfig, const char void duscc_device::device_start() { - LOG(("%s\n", FUNCNAME)); + LOG("%s\n", FUNCNAME); // resolve callbacks m_out_txda_cb.resolve_safe(); @@ -249,7 +237,7 @@ void duscc_device::device_start() save_item(NAME(m_ivrm)); // TODO: add serial device and daisy device save states - LOG((" - DUSCC variant %02x\n", m_variant)); + LOG(" - DUSCC variant %02x\n", m_variant); } @@ -259,7 +247,7 @@ void duscc_device::device_start() void duscc_device::device_reset() { - LOG(("%s %s \n",tag(), FUNCNAME)); + LOG("%s %s \n",tag(), FUNCNAME); m_chanA->reset(); m_chanB->reset(); @@ -314,9 +302,9 @@ int duscc_device::z80daisy_irq_state() { int state = 0; - LOGINT(("%s %s A:[%02x][%02x][%02x][%02x] B:[%02x][%02x][%02x][%02x] ",tag(), FUNCNAME, + LOGINT("%s %s A:[%02x][%02x][%02x][%02x] B:[%02x][%02x][%02x][%02x] ",tag(), FUNCNAME, m_int_state[0], m_int_state[1], m_int_state[2], m_int_state[3], - m_int_state[4], m_int_state[5], m_int_state[6], m_int_state[7])); + m_int_state[4], m_int_state[5], m_int_state[6], m_int_state[7]); // loop over all interrupt sources for (auto & elem : m_int_state) @@ -330,7 +318,7 @@ int duscc_device::z80daisy_irq_state() state |= elem; } - LOGINT((" - Interrupt State %02x\n", state)); + LOGINT(" - Interrupt State %02x\n", state); return state; } @@ -342,7 +330,7 @@ int duscc_device::z80daisy_irq_state() int duscc_device::z80daisy_irq_ack() { - LOGINT(("%s %s()\n",tag(), FUNCNAME)); + LOGINT("%s %s()\n",tag(), FUNCNAME); // loop over all interrupt sources for (auto & elem : m_int_state) @@ -353,20 +341,20 @@ int duscc_device::z80daisy_irq_ack() // clear interrupt, switch to the IEO state, and update the IRQs elem = Z80_DAISY_IEO; check_interrupts(); - LOGINT((" - Found an INT request, ")); + LOGINT(" - Found an INT request, "); if ((m_icr & REG_ICR_VEC_MODE_MASK) == REG_ICR_VEC_MODE_NONE) { - LOGINT(("but ICR set to use autovector, returning -1\n")); + LOGINT("but ICR set to use autovector, returning -1\n"); return -1; } else { - LOGINT(("returning IVRM: %02x\n", m_ivrm )); + LOGINT("returning IVRM: %02x\n", m_ivrm ); return m_ivrm; } } } - LOGINT((" - Found NO INT request, returning -1\n")); + LOGINT(" - Found NO INT request, returning -1\n"); return -1; // Signal no-vector, same as autovector but caller should know the difference } @@ -377,7 +365,7 @@ int duscc_device::z80daisy_irq_ack() void duscc_device::z80daisy_irq_reti() { - LOGINT(("%s %s \n",tag(), FUNCNAME)); + LOGINT("%s %s \n",tag(), FUNCNAME); // loop over all interrupt sources for (auto & elem : m_int_state) @@ -396,7 +384,7 @@ void duscc_device::z80daisy_irq_reti() READ8_MEMBER( duscc_device::iack ) { - LOGINT(("%s %s - returning vector:%02x\n",tag(), FUNCNAME, m_ivrm)); + LOGINT("%s %s - returning vector:%02x\n",tag(), FUNCNAME, m_ivrm); int vec = z80daisy_irq_ack(); z80daisy_irq_reti(); return vec; @@ -404,7 +392,7 @@ READ8_MEMBER( duscc_device::iack ) void duscc_device::check_interrupts() { - LOGINT(("%s %s()\n",tag(), FUNCNAME)); + LOGINT("%s %s()\n",tag(), FUNCNAME); int state = (z80daisy_irq_state() & Z80_DAISY_INT) ? ASSERT_LINE : CLEAR_LINE; // "If no interrupt is pending, an H'FF' is output when reading the IVRM." @@ -423,7 +411,7 @@ void duscc_device::check_interrupts() void duscc_device::reset_interrupts() { - LOGINT(("%s %s\n",tag(), FUNCNAME)); + LOGINT("%s %s\n",tag(), FUNCNAME); // reset internal interrupt sources for (auto & elem : m_int_state) @@ -452,7 +440,7 @@ uint8_t duscc_device::modify_vector(uint8_t vec, int index, uint8_t src) 1 1 1 Ch B external or C/T status -------------------------------------------------- */ - LOGINT(("%s %c %s, vec:%02x src=%02x\n",tag(), 'A' + index, FUNCNAME, vec, src)); + LOGINT("%s %c %s, vec:%02x src=%02x\n",tag(), 'A' + index, FUNCNAME, vec, src); // TODO: Prevent modification if no vector has been programmed, even if it is the default vector. if ((m_icr & REG_ICR_VEC_MOD) != 0) // Affect vector? @@ -460,18 +448,18 @@ uint8_t duscc_device::modify_vector(uint8_t vec, int index, uint8_t src) // Modify vector according to "Vector Include Status" bit (REG_ICR_V2V4_MOD) if ((m_icr & REG_ICR_V2V4_MOD) != 0) { // Affect V2-V4 - LOGINT((" - Affect V2-V4 with status")); + LOGINT(" - Affect V2-V4 with status"); vec &= 0x07 << 3; vec |= src << 3; } else // Affect V0-V2 { - LOGINT((" - Affect V0-V2 with status")); + LOGINT(" - Affect V0-V2 with status"); vec &= 0x07 << 0; vec |= src << 0; } } - LOGINT((" - Returning vector %02x\n", vec)); + LOGINT(" - Returning vector %02x\n", vec); return vec; } @@ -499,13 +487,13 @@ void duscc_device::trigger_interrupt(int index, int state) uint8_t source = 0; int priority_level = 0; - LOGINT(("%s %s:%c %02x \n",FUNCNAME, tag(), 'A' + index, state)); + LOGINT("%s %s:%c %02x \n",FUNCNAME, tag(), 'A' + index, state); /* The Interrup Controll Register (ICR) bits, must be set for the correspondning channel */ // ICR Check is probably by the caller but we check again to be sure if ((m_icr & (index == CHANNEL_A ? REG_ICR_CHA : REG_ICR_CHB)) == 0) { - LOGINT(("The Interrupt Control Register [%02x] bit for this channel is not set, blocking attempt to interrupt\n", m_icr)); + LOGINT("The Interrupt Control Register [%02x] bit for this channel is not set, blocking attempt to interrupt\n", m_icr); return; } @@ -525,7 +513,7 @@ void duscc_device::trigger_interrupt(int index, int state) // trigger interrupt m_int_state[priority_level] |= Z80_DAISY_INT; - LOGINT((" - Interrupt Priority Level %d, caused by Source %02x with vector %02x\n",priority_level, source, m_ivrm )); + LOGINT(" - Interrupt Priority Level %d, caused by Source %02x with vector %02x\n",priority_level, source, m_ivrm ); // check for interrupts check_interrupts(); @@ -552,25 +540,25 @@ WRITE8_MEMBER( duscc_device::write ) // DUSCC CHANNEL //************************************************************************** duscc_channel::duscc_channel(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, DUSCC_CHANNEL, "DUSCC channel", tag, owner, clock, "duscc_channel", __FILE__), - device_serial_interface(mconfig, *this), - m_brg_rx_rate(0), - m_brg_tx_rate(0), - m_brg_const(1), - m_rx_error(0), - m_rx_clock(0), - m_rx_first(0), - m_rx_break(0), - m_rxd(0), - m_cts(0), - m_dcd(0), - m_tx_data(0), - m_tx_clock(0), - m_dtr(0), - m_rts(0), - m_sync(0) -{ - LOG(("%s\n",FUNCNAME)); + : device_t(mconfig, DUSCC_CHANNEL, tag, owner, clock) + , device_serial_interface(mconfig, *this) + , m_brg_rx_rate(0) + , m_brg_tx_rate(0) + , m_brg_const(1) + , m_rx_error(0) + , m_rx_clock(0) + , m_rx_first(0) + , m_rx_break(0) + , m_rxd(0) + , m_cts(0) + , m_dcd(0) + , m_tx_data(0) + , m_tx_clock(0) + , m_dtr(0) + , m_rts(0) + , m_sync(0) +{ + LOG("%s\n",FUNCNAME); // Reset all registers m_cmr1 = m_cmr2 = m_s1r = m_s2r = m_tpr = m_ttr = m_rpr = m_rtr @@ -600,17 +588,17 @@ duscc_channel::duscc_channel(const machine_config &mconfig, const char *tag, dev void duscc_channel::device_start() { - LOG(("%s\n", FUNCNAME)); + LOG("%s\n", FUNCNAME); m_uart = downcast(owner()); m_index = m_uart->get_channel_index(this); - m_rx_fifo_sz = (m_uart->m_variant & SET_CMOS) ? 16 : 4; + m_rx_fifo_sz = (m_uart->m_variant & duscc_device::SET_CMOS) ? 16 : 4; m_rx_fifo_wp = m_rx_fifo_rp = 0; - m_tx_fifo_sz = (m_uart->m_variant & SET_CMOS) ? 16 : 4; + m_tx_fifo_sz = (m_uart->m_variant & duscc_device::SET_CMOS) ? 16 : 4; m_tx_fifo_wp = m_tx_fifo_rp = 0; - m_cid = (m_uart->m_variant & SET_CMOS) ? 0x7f : 0xff; // TODO: support CMOS rev A = 0xbf + m_cid = (m_uart->m_variant & duscc_device::SET_CMOS) ? 0x7f : 0xff; // TODO: support CMOS rev A = 0xbf // Timers duscc_timer = timer_alloc(TIMER_ID); @@ -685,7 +673,7 @@ void duscc_channel::device_start() void duscc_channel::device_reset() { - LOG(("%s\n", FUNCNAME)); + LOG("%s\n", FUNCNAME); // Reset RS232 emulation receive_register_reset(); @@ -753,7 +741,7 @@ void duscc_channel::device_timer(emu_timer &timer, device_timer_id id, int param if ( ( (m_ctcr & REG_CTCR_ZERO_DET_INT) == 1 ) && ( (m_uart->m_icr & (m_index == duscc_device::CHANNEL_A ? duscc_device::REG_ICR_CHA : duscc_device::REG_ICR_CHB) ) != 0) ) { - LOG(("Zero Detect Interrupt pending\n")); + LOG("Zero Detect Interrupt pending\n"); m_uart->trigger_interrupt(m_index, INT_EXTCTSTAT); } @@ -825,11 +813,11 @@ void duscc_channel::device_timer(emu_timer &timer, device_timer_id id, int param m_uart->m_out_trxcb_cb(m_trxc); break; default: - LOGR(("Unhandled Timer ID passed to device_serial_interface%d\n", id)); + LOGR("Unhandled Timer ID passed to device_serial_interface%d\n", id); device_serial_interface::device_timer(timer, id, param, ptr); break; } - // LOG(("%s %d\n", FUNCNAME, id)); + // LOG("%s %d\n", FUNCNAME, id); } /* The DUSCC 16 bit Timer @@ -874,13 +862,13 @@ void duscc_channel::device_timer(emu_timer &timer, device_timer_id id, int param */ uint8_t duscc_channel::do_dusccreg_ctcr_r() { - LOG(("%s(%02x)\n", FUNCNAME, m_ctcr)); + LOG("%s(%02x)\n", FUNCNAME, m_ctcr); return m_ctcr; } void duscc_channel::do_dusccreg_ctcr_w(uint8_t data) { - LOG(("%s(%02x) - not supported yet\n", FUNCNAME, data)); + LOG("%s(%02x) - not supported yet\n", FUNCNAME, data); m_ctcr = data; return; } @@ -893,14 +881,14 @@ void duscc_channel::do_dusccreg_ctcr_w(uint8_t data) uint8_t duscc_channel::do_dusccreg_ctprh_r() { uint8_t ret = ((m_ctpr >> 8) & 0xff ); - LOG(("%s(%02x)\n", FUNCNAME, ret)); + LOG("%s(%02x)\n", FUNCNAME, ret); return ret; } void duscc_channel::do_dusccreg_ctprh_w(uint8_t data) { - LOG(("%s(%02x)\n", FUNCNAME, data)); + LOG("%s(%02x)\n", FUNCNAME, data); m_ctpr &= ~0x0000ff00; m_ctpr |= ((data << 8) & 0x0000ff00); return; @@ -914,13 +902,13 @@ void duscc_channel::do_dusccreg_ctprh_w(uint8_t data) uint8_t duscc_channel::do_dusccreg_ctprl_r() { uint8_t ret = (m_ctpr & 0xff); - LOG(("%s(%02x)\n", FUNCNAME, ret)); + LOG("%s(%02x)\n", FUNCNAME, ret); return ret; } void duscc_channel::do_dusccreg_ctprl_w(uint8_t data) { - LOG(("%s(%02x)\n", FUNCNAME, data)); + LOG("%s(%02x)\n", FUNCNAME, data); m_ctpr &= ~0x000000ff; m_ctpr |= (data & 0x000000ff); return; @@ -935,7 +923,7 @@ void duscc_channel::do_dusccreg_ctprl_w(uint8_t data) uint8_t duscc_channel::do_dusccreg_cth_r() { uint8_t ret = ((m_ct >> 8) & 0xff ); - LOG(("%s(%02x)\n", FUNCNAME, ret)); + LOG("%s(%02x)\n", FUNCNAME, ret); return ret; } @@ -948,7 +936,7 @@ uint8_t duscc_channel::do_dusccreg_cth_r() uint8_t duscc_channel::do_dusccreg_ctl_r() { uint8_t ret = (m_ct & 0xff); - LOG(("%s(%02x)\n", FUNCNAME, ret)); + LOG("%s(%02x)\n", FUNCNAME, ret); return ret; } @@ -962,7 +950,7 @@ void duscc_channel::tra_callback() { int db = transmit_register_get_data_bit(); - LOGR((LLFORMAT " %s() \"%s \"Channel %c transmit data bit %d\n", machine().firstcpu->total_cycles(), FUNCNAME, m_owner->tag(), 'A' + m_index, db)); + LOGR(LLFORMAT " %s() \"%s \"Channel %c transmit data bit %d\n", machine().firstcpu->total_cycles(), FUNCNAME, m_owner->tag(), 'A' + m_index, db); // transmit data if (m_index == duscc_device::CHANNEL_A) @@ -972,7 +960,7 @@ void duscc_channel::tra_callback() } else { - LOG((LLFORMAT " %s() \"%s \"Channel %c Failed to transmit \n", machine().firstcpu->total_cycles(), FUNCNAME, m_owner->tag(), 'A' + m_index)); + LOG(LLFORMAT " %s() \"%s \"Channel %c Failed to transmit \n", machine().firstcpu->total_cycles(), FUNCNAME, m_owner->tag(), 'A' + m_index); logerror("%s Channel %c Failed to transmit\n", FUNCNAME, 'A' + m_index); } } @@ -1012,7 +1000,7 @@ void duscc_channel::rcv_callback() { if (m_rcv == 1) { - LOG((LLFORMAT " %s() \"%s \"Channel %c received data bit %d\n", machine().firstcpu->total_cycles(), FUNCNAME, m_owner->tag(), 'A' + m_index, m_rxd)); + LOG(LLFORMAT " %s() \"%s \"Channel %c received data bit %d\n", machine().firstcpu->total_cycles(), FUNCNAME, m_owner->tag(), 'A' + m_index, m_rxd); receive_register_update_bit(m_rxd); } } @@ -1028,7 +1016,7 @@ void duscc_channel::rcv_complete() receive_register_extract(); data = get_received_char(); - LOGINT((LLFORMAT " %s() \"%s \"Channel %c Received Data %c\n", machine().firstcpu->total_cycles(), FUNCNAME, m_owner->tag(), 'A' + m_index, data)); + LOGINT(LLFORMAT " %s() \"%s \"Channel %c Received Data %c\n", machine().firstcpu->total_cycles(), FUNCNAME, m_owner->tag(), 'A' + m_index, data); receive_data(data); } @@ -1062,7 +1050,7 @@ int duscc_channel::get_tx_clock_mode() void duscc_channel::set_rts(int state) { - LOG(("%s(%d) \"%s\": %c \n", FUNCNAME, state, m_owner->tag(), 'A' + m_index)); + LOG("%s(%d) \"%s\": %c \n", FUNCNAME, state, m_owner->tag(), 'A' + m_index); if (m_index == duscc_device::CHANNEL_A) m_uart->m_out_rtsa_cb(state); else @@ -1163,61 +1151,61 @@ int duscc_channel::get_tx_word_length() uint8_t duscc_channel::do_dusccreg_cmr1_r() { - LOG(("%s(%02x)\n", FUNCNAME, m_cmr1)); + LOG("%s(%02x)\n", FUNCNAME, m_cmr1); return m_cmr1; } uint8_t duscc_channel::do_dusccreg_cmr2_r() { - LOG(("%s(%02x)\n", FUNCNAME, m_cmr2)); + LOG("%s(%02x)\n", FUNCNAME, m_cmr2); return m_cmr2; } uint8_t duscc_channel::do_dusccreg_s1r_r() { - LOG(("%s(%02x)\n", FUNCNAME, m_s1r)); + LOG("%s(%02x)\n", FUNCNAME, m_s1r); return m_s1r; } uint8_t duscc_channel::do_dusccreg_s2r_r() { - LOG(("%s(%02x)\n", FUNCNAME, m_s2r)); + LOG("%s(%02x)\n", FUNCNAME, m_s2r); return m_s2r; } uint8_t duscc_channel::do_dusccreg_tpr_r() { - LOG(("%s(%02x)\n", FUNCNAME, m_tpr)); + LOG("%s(%02x)\n", FUNCNAME, m_tpr); return m_tpr; } uint8_t duscc_channel::do_dusccreg_ttr_r() { - LOG(("%s(%02x)\n", FUNCNAME, m_ttr)); + LOG("%s(%02x)\n", FUNCNAME, m_ttr); return m_ttr; } uint8_t duscc_channel::do_dusccreg_rpr_r() { - LOG(("%s(%02x)\n", FUNCNAME, m_rpr)); + LOG("%s(%02x)\n", FUNCNAME, m_rpr); return m_rpr; } uint8_t duscc_channel::do_dusccreg_rtr_r() { - LOG(("%s(%02x)\n", FUNCNAME, m_rtr)); + LOG("%s(%02x)\n", FUNCNAME, m_rtr); return m_rtr; } uint8_t duscc_channel::do_dusccreg_omr_r() { - LOG(("%s(%02x)\n", FUNCNAME, m_omr)); + LOG("%s(%02x)\n", FUNCNAME, m_omr); return m_omr; } uint8_t duscc_channel::do_dusccreg_pcr_r() { - LOG(("%s(%02x)\n", FUNCNAME, m_pcr)); + LOG("%s(%02x)\n", FUNCNAME, m_pcr); return m_pcr; } @@ -1225,7 +1213,7 @@ uint8_t duscc_channel::do_dusccreg_pcr_r() register returns the last invoked command (with bits 4 and 5 set to 1). */ uint8_t duscc_channel::do_dusccreg_ccr_r() { - LOG(("%s\n", FUNCNAME)); + LOG("%s\n", FUNCNAME); return (uint8_t) m_ccr | 1 << 4 | 1 << 5; } @@ -1233,8 +1221,8 @@ uint8_t duscc_channel::do_dusccreg_rxfifo_r() { uint8_t data = 0; - LOGINT(("%s\n", FUNCNAME)); - LOGRX((" - RX rp:%d wp:%d sz:%d\n", m_rx_fifo_rp, m_rx_fifo_wp, m_rx_fifo_sz)); + LOGINT("%s\n", FUNCNAME); + LOGRX(" - RX rp:%d wp:%d sz:%d\n", m_rx_fifo_rp, m_rx_fifo_wp, m_rx_fifo_sz); /* So is there a character in the FIFO? */ if (m_rx_fifo_rp != m_rx_fifo_wp) @@ -1243,12 +1231,12 @@ uint8_t duscc_channel::do_dusccreg_rxfifo_r() m_rx_error_fifo[m_rx_fifo_rp] = 0; // Loose the old errors m_rx_fifo_rp_step(); m_rsr |= (m_rx_error_fifo[m_rx_fifo_rp] & (REG_RSR_CHAR_COMPARE | REG_RSR_FRAMING_ERROR | REG_RSR_PARITY_ERROR)); // Get new errors - LOGINT((" - RX reading out data:%02x '%c'\n", data, isalnum(data) ? data : ' ')); + LOGINT(" - RX reading out data:%02x '%c'\n", data, isalnum(data) ? data : ' '); } else { logerror("- RX FIFO empty despite RxREADY\n"); - LOGINT(("- RX FIFO empty despite RxREADY\n")); + LOGINT("- RX FIFO empty despite RxREADY\n"); } return (uint8_t) data; @@ -1256,13 +1244,13 @@ uint8_t duscc_channel::do_dusccreg_rxfifo_r() uint8_t duscc_channel::do_dusccreg_rsr_r() { - LOG(("%s: %02x\n", FUNCNAME, m_rsr)); + LOG("%s: %02x\n", FUNCNAME, m_rsr); return (uint8_t) m_rsr; } uint8_t duscc_channel::do_dusccreg_trsr_r() { - LOG(("%s(%02x)\n", FUNCNAME, m_trsr)); + LOG("%s(%02x)\n", FUNCNAME, m_trsr); return m_trsr; } @@ -1296,21 +1284,21 @@ uint8_t duscc_channel::do_dusccreg_ictsr_r() uint8_t duscc_channel::do_dusccreg_gsr_r() { static uint8_t old_gsr = 0; - if (m_uart->m_gsr != old_gsr) LOG(("%s <- %02x\n", FUNCNAME, m_uart->m_gsr)); + if (m_uart->m_gsr != old_gsr) LOG("%s <- %02x\n", FUNCNAME, m_uart->m_gsr); old_gsr = m_uart->m_gsr; return m_uart->m_gsr; } uint8_t duscc_channel::do_dusccreg_ier_r() { - LOGINT(("%s <- %02x\n", FUNCNAME, m_ier)); + LOGINT("%s <- %02x\n", FUNCNAME, m_ier); return (uint8_t) m_ier; } uint8_t duscc_channel::do_dusccreg_cid_r() { - LOG(("%s\n", FUNCNAME)); - if ( m_uart->m_variant != SET_CMOS ) + LOG("%s\n", FUNCNAME); + if ( !(m_uart->m_variant & duscc_device::SET_CMOS) ) { logerror("Attempt read out CDUSCC register CID on an NDUSCC\n"); return 0; @@ -1326,76 +1314,76 @@ uint8_t duscc_channel::do_dusccreg_cid_r() uint8_t duscc_channel::do_dusccreg_ivr_ivrm_r() { - LOG(("%s", FUNCNAME)); + LOG("%s", FUNCNAME); if ( m_index == duscc_device::CHANNEL_A ) { - LOG(("(%02x)\n", m_uart->m_ivr)); + LOG("(%02x)\n", m_uart->m_ivr); return m_uart->m_ivr; // Interrupt vector as programmed } else { - LOG((" - IVRM\n")); + LOG(" - IVRM\n"); return m_uart->m_ivrm; // Modified Interrupt vector } } uint8_t duscc_channel::do_dusccreg_icr_r() { - LOG(("%s(%02x)\n", FUNCNAME, m_uart->m_icr)); + LOG("%s(%02x)\n", FUNCNAME, m_uart->m_icr); return m_uart->m_icr; } uint8_t duscc_channel::do_dusccreg_mrr_r() { - LOG(("%s(%02x)\n", FUNCNAME, m_mrr)); + LOG("%s(%02x)\n", FUNCNAME, m_mrr); return m_mrr; } uint8_t duscc_channel::do_dusccreg_ier1_r() { - LOG(("%s(%02x)\n", FUNCNAME, m_ier1)); + LOG("%s(%02x)\n", FUNCNAME, m_ier1); return m_ier1; } uint8_t duscc_channel::do_dusccreg_ier2_r() { - LOG(("%s(%02x)\n", FUNCNAME, m_ier2)); + LOG("%s(%02x)\n", FUNCNAME, m_ier2); return m_ier2; } uint8_t duscc_channel::do_dusccreg_ier3_r() { - LOG(("%s(%02x)\n", FUNCNAME, m_ier3)); + LOG("%s(%02x)\n", FUNCNAME, m_ier3); return m_ier3; } uint8_t duscc_channel::do_dusccreg_trcr_r() { - LOG(("%s(%02x)\n", FUNCNAME, m_trcr)); + LOG("%s(%02x)\n", FUNCNAME, m_trcr); return m_trcr; } uint8_t duscc_channel::do_dusccreg_rflr_r() { - LOG(("%s(%02x)\n", FUNCNAME, m_rflr)); + LOG("%s(%02x)\n", FUNCNAME, m_rflr); return m_rflr; } uint8_t duscc_channel::do_dusccreg_ftlr_r() { - LOG(("%s(%02x)\n", FUNCNAME, m_ftlr)); + LOG("%s(%02x)\n", FUNCNAME, m_ftlr); return m_ftlr; } uint8_t duscc_channel::do_dusccreg_trmsr_r() { - LOG(("%s(%02x)\n", FUNCNAME, m_trmsr)); + LOG("%s(%02x)\n", FUNCNAME, m_trmsr); return m_trmsr; } uint8_t duscc_channel::do_dusccreg_telr_r() { - LOG(("%s(%02x)\n", FUNCNAME, m_telr)); + LOG("%s(%02x)\n", FUNCNAME, m_telr); return m_telr; } @@ -1459,10 +1447,10 @@ uint8_t duscc_channel::do_dusccreg_telr_r() */ void duscc_channel::do_dusccreg_cmr1_w(uint8_t data) { - LOG(("%s(%02x)\n", FUNCNAME, data)); + LOG("%s(%02x)\n", FUNCNAME, data); m_cmr1 = data; - LOG(("- Setting up %s mode\n", (m_cmr1 & REG_CMR1_CPMODE_MASK) == REG_CMR1_CPMODE_ASYNC ? "ASYNC" : "SYNC")); - LOG(("- Parity: %s\n", ((m_cmr1 & REG_CMR1_PMMODE_MASK) == REG_CMR1_PMMODE_PARITY ? (m_cmr1 & REG_CMR1_PARITY ? "odd" : "even") : "none"))); + LOG("- Setting up %s mode\n", (m_cmr1 & REG_CMR1_CPMODE_MASK) == REG_CMR1_CPMODE_ASYNC ? "ASYNC" : "SYNC"); + LOG("- Parity: %s\n", ((m_cmr1 & REG_CMR1_PMMODE_MASK) == REG_CMR1_PMMODE_PARITY ? (m_cmr1 & REG_CMR1_PARITY ? "odd" : "even") : "none")); return; } @@ -1537,9 +1525,9 @@ void duscc_channel::do_dusccreg_cmr1_w(uint8_t data) */ void duscc_channel::do_dusccreg_cmr2_w(uint8_t data) { - LOG(("%s(%02x)\n", FUNCNAME, data)); + LOG("%s(%02x)\n", FUNCNAME, data); m_cmr2 = data; - LOG(("- Preparing for %s driven transfers\n", (m_cmr2 & REG_CMR2_DTI_MASK) == REG_CMR2_DTI_NODMA ? "polled or interrupt" : "dma")); + LOG("- Preparing for %s driven transfers\n", (m_cmr2 & REG_CMR2_DTI_MASK) == REG_CMR2_DTI_NODMA ? "polled or interrupt" : "dma"); return; } @@ -1557,7 +1545,7 @@ void duscc_channel::do_dusccreg_cmr2_w(uint8_t data) */ void duscc_channel::do_dusccreg_s1r_w(uint8_t data) { - LOG(("%s(%02x) - not supported yet\n", FUNCNAME, data)); + LOG("%s(%02x) - not supported yet\n", FUNCNAME, data); m_s1r = data; return; } @@ -1571,7 +1559,7 @@ void duscc_channel::do_dusccreg_s1r_w(uint8_t data) address octets, it contains the partial address used to compare the second received address octet.*/ void duscc_channel::do_dusccreg_s2r_w(uint8_t data) { - LOG(("%s(%02x) - not supported yet\n", FUNCNAME, data)); + LOG("%s(%02x) - not supported yet\n", FUNCNAME, data); m_s2r = data; return; } @@ -1617,12 +1605,12 @@ void duscc_channel::do_dusccreg_s2r_w(uint8_t data) */ void duscc_channel::do_dusccreg_tpr_w(uint8_t data) { - LOG(("%s(%02x) Setting up Transmit Parameters\n", FUNCNAME, data)); + LOG("%s(%02x) Setting up Transmit Parameters\n", FUNCNAME, data); m_tpr = data; - LOG(("- RTS %u\n", (m_tpr & REG_TPR_RTS) ? 1 : 0)); - LOG(("- CTS %u\n", (m_tpr & REG_TPR_CTS) ? 1 : 0)); - LOG(("- Stop Bits %s\n", stop_bits_tostring(get_stop_bits()))); - LOG(("- Data Tx bits %u\n", get_tx_word_length())); + LOG("- RTS %u\n", (m_tpr & REG_TPR_RTS) ? 1 : 0); + LOG("- CTS %u\n", (m_tpr & REG_TPR_CTS) ? 1 : 0); + LOG("- Stop Bits %s\n", stop_bits_tostring(get_stop_bits())); + LOG("- Data Tx bits %u\n", get_tx_word_length()); update_serial(); return; @@ -1661,28 +1649,28 @@ void duscc_channel::do_dusccreg_tpr_w(uint8_t data) */ void duscc_channel::do_dusccreg_ttr_w(uint8_t data) { - LOG(("%s(%02x) Setting up Transmit Timing\n", FUNCNAME, data)); + LOG("%s(%02x) Setting up Transmit Timing\n", FUNCNAME, data); m_ttr = data; - LOG(("- External source: %s\n", (m_ttr & REG_TTR_EXT) ? "TRxC" : "RTxC")); - LOG(("- Transmit Clock: ")); + LOG("- External source: %s\n", (m_ttr & REG_TTR_EXT) ? "TRxC" : "RTxC"); + LOG("- Transmit Clock: "); switch(m_ttr & REG_TTR_TXCLK_MASK) { - case REG_TTR_TXCLK_1XEXT: LOG(("1x External - not implemented\n")); break; - case REG_TTR_TXCLK_16XEXT: LOG(("16x External - not implemented\n")); break; - case REG_TTR_TXCLK_DPLL: LOG(("DPLL - not implemented\n")); break; + case REG_TTR_TXCLK_1XEXT: LOG("1x External - not implemented\n"); break; + case REG_TTR_TXCLK_16XEXT: LOG("16x External - not implemented\n"); break; + case REG_TTR_TXCLK_DPLL: LOG("DPLL - not implemented\n"); break; case REG_TTR_TXCLK_BRG: - LOG(("BRG\n")); + LOG("BRG\n"); m_brg_tx_rate = get_baudrate(m_ttr & REG_TTR_BRG_RATE_MASK); break; - case REG_TTR_TXCLK_2X_OTHER: LOG(("2x other channel C/T - not implemented\n")); break; - case REG_TTR_TXCLK_32X_OTHER: LOG(("32x other channel C/T - not implemented\n")); break; - case REG_TTR_TXCLK_2X_OWN: LOG(("2x own channel C/T - not implemented\n")); break; - case REG_TTR_TXCLK_32X_OWN: LOG(("32x own channel C/T - not implemented\n")); break; - default: LOG(("DUSCC: Wrong programming\n")); break; // Should never happen + case REG_TTR_TXCLK_2X_OTHER: LOG("2x other channel C/T - not implemented\n"); break; + case REG_TTR_TXCLK_32X_OTHER: LOG("32x other channel C/T - not implemented\n"); break; + case REG_TTR_TXCLK_2X_OWN: LOG("2x own channel C/T - not implemented\n"); break; + case REG_TTR_TXCLK_32X_OWN: LOG("32x own channel C/T - not implemented\n"); break; + default: LOG("DUSCC: Wrong programming\n"); break; // Should never happen } - LOG(("- BRG Tx rate %u assuming a 14.7456MHz CLK crystal\n", get_baudrate(m_ttr & REG_TTR_BRG_RATE_MASK))); + LOG("- BRG Tx rate %u assuming a 14.7456MHz CLK crystal\n", get_baudrate(m_ttr & REG_TTR_BRG_RATE_MASK)); update_serial(); return; @@ -1760,12 +1748,12 @@ void duscc_channel::do_dusccreg_ttr_w(uint8_t data) */ void duscc_channel::do_dusccreg_rpr_w(uint8_t data) { - LOG(("%s(%02x) Setting up Receiver Parameters\n", FUNCNAME, data)); + LOG("%s(%02x) Setting up Receiver Parameters\n", FUNCNAME, data); m_rpr = data; - LOG(("- RTS output %u\n", (m_rpr & REG_RPR_RTS) ? 1 : 0)); - LOG(("- Strip Parity %u\n", (m_rpr & REG_RPR_STRIP_PARITY && get_rx_word_length() < 8) ? 1 : 0)); - LOG(("- DCD/SYNIN input %u\n", (m_rpr & REG_RPR_DCD) ? 1 : 0)); - LOG(("- Data Rx bits %u\n", get_rx_word_length())); + LOG("- RTS output %u\n", (m_rpr & REG_RPR_RTS) ? 1 : 0); + LOG("- Strip Parity %u\n", (m_rpr & REG_RPR_STRIP_PARITY && get_rx_word_length() < 8) ? 1 : 0); + LOG("- DCD/SYNIN input %u\n", (m_rpr & REG_RPR_DCD) ? 1 : 0); + LOG("- Data Rx bits %u\n", get_rx_word_length()); update_serial(); return; @@ -1797,28 +1785,28 @@ void duscc_channel::do_dusccreg_rpr_w(uint8_t data) void duscc_channel::do_dusccreg_rtr_w(uint8_t data) { - LOG(("%s(%02x) Setting up Receiver Timing\n", FUNCNAME, data)); + LOG("%s(%02x) Setting up Receiver Timing\n", FUNCNAME, data); m_rtr = data; - LOG(("- External source: %s\n", (m_rtr & REG_RTR_EXT) ? "TRxC" : "RTxC")); - LOG(("- Receiver Clock: ")); + LOG("- External source: %s\n", (m_rtr & REG_RTR_EXT) ? "TRxC" : "RTxC"); + LOG("- Receiver Clock: "); switch(m_rtr & REG_RTR_RXCLK_MASK) { - case REG_RTR_RXCLK_1XEXT: LOG(("1x External - not implemented\n")); break; - case REG_RTR_RXCLK_16XEXT: LOG(("16x External - not implemented\n")); break; + case REG_RTR_RXCLK_1XEXT: LOG("1x External - not implemented\n"); break; + case REG_RTR_RXCLK_16XEXT: LOG("16x External - not implemented\n"); break; case REG_RTR_RXCLK_BRG: - LOG(("BRG\n")); + LOG("BRG\n"); m_brg_rx_rate = get_baudrate(m_rtr & REG_RTR_BRG_RATE_MASK); break; - case REG_RTR_RXCLK_CT: LOG(("C/T of channel - not implemented\n")); break; - case REG_RTR_RXCLK_DPLL_64X_X1: LOG(("DPLL, source = 64X X1/CLK - not implemented\n")); break; - case REG_RTR_RXCLK_DPLL_32X_EXT:LOG(("DPLL, source = 32X External - not implemented\n")); break; - case REG_RTR_RXCLK_DPLL_32X_BRG:LOG(("DPLL, source = 32X BRG - not implemented\n")); break; - case REG_RTR_RXCLK_DPLL_32X_CT: LOG(("DPLL, source = 32X C/T - not implemented\n")); break; - default: LOG(("DUSCC: Wrong programming\n")); break; // Should never happen + case REG_RTR_RXCLK_CT: LOG("C/T of channel - not implemented\n"); break; + case REG_RTR_RXCLK_DPLL_64X_X1: LOG("DPLL, source = 64X X1/CLK - not implemented\n"); break; + case REG_RTR_RXCLK_DPLL_32X_EXT:LOG("DPLL, source = 32X External - not implemented\n"); break; + case REG_RTR_RXCLK_DPLL_32X_BRG:LOG("DPLL, source = 32X BRG - not implemented\n"); break; + case REG_RTR_RXCLK_DPLL_32X_CT: LOG("DPLL, source = 32X C/T - not implemented\n"); break; + default: LOG("DUSCC: Wrong programming\n"); break; // Should never happen } - LOG(("- BRG Rx rate %u assuming a 14.7456MHz CLK crystal\n", get_baudrate(m_rtr & REG_RTR_BRG_RATE_MASK))); + LOG("- BRG Rx rate %u assuming a 14.7456MHz CLK crystal\n", get_baudrate(m_rtr & REG_RTR_BRG_RATE_MASK)); update_serial(); return; @@ -1863,22 +1851,22 @@ void duscc_channel::do_dusccreg_rtr_w(uint8_t data) */ void duscc_channel::do_dusccreg_omr_w(uint8_t data) { - LOG(("%s(%02x) Output and Miscellaneous Register\n", FUNCNAME, data)); + LOG("%s(%02x) Output and Miscellaneous Register\n", FUNCNAME, data); m_omr = data; - LOG(("- Tx Residual Character Length is ")); + LOG("- Tx Residual Character Length is "); if ((m_omr & REG_OMR_TXRCL_MASK) == REG_OMR_TXRCL_8BIT) { - LOG(("determined by TPR[1:0], the Transmitter Parameter Register\n")); + LOG("determined by TPR[1:0], the Transmitter Parameter Register\n"); } else { - LOG(("%u bits\n", (((m_omr & REG_OMR_TXRCL_MASK) >> 5) & 0x07) + 1)); + LOG("%u bits\n", (((m_omr & REG_OMR_TXRCL_MASK) >> 5) & 0x07) + 1); } - LOG(("- TxRDY activated by %s\n", m_omr & REG_OMR_TXRDY_ACTIVATED ? "FIFO empty" : "FIFO not full")); - LOG(("- RxRDY activated by %s\n", m_omr & REG_OMR_RXRDY_ACTIVATED ? "FIFO full" : "FIFO not empty")); - LOG(("- GP02, if configured as output, is: %u\n", m_omr & REG_OMR_GP02 ? 0 : 1)); - LOG(("- GP01, if configured as output, is: %u\n", m_omr & REG_OMR_GP01 ? 0 : 1)); - LOG(("- RTS, either pin if configured as output, is: %u\n", m_omr & REG_OMR_RTS ? 0 : 1)); + LOG("- TxRDY activated by %s\n", m_omr & REG_OMR_TXRDY_ACTIVATED ? "FIFO empty" : "FIFO not full"); + LOG("- RxRDY activated by %s\n", m_omr & REG_OMR_RXRDY_ACTIVATED ? "FIFO full" : "FIFO not empty"); + LOG("- GP02, if configured as output, is: %u\n", m_omr & REG_OMR_GP02 ? 0 : 1); + LOG("- GP01, if configured as output, is: %u\n", m_omr & REG_OMR_GP01 ? 0 : 1); + LOG("- RTS, either pin if configured as output, is: %u\n", m_omr & REG_OMR_RTS ? 0 : 1); return; } @@ -1911,34 +1899,34 @@ void duscc_channel::do_dusccreg_omr_w(uint8_t data) */ void duscc_channel::do_dusccreg_pcr_w(uint8_t data) { - LOG(("%c %s(%02x)\n", 'A' + m_index, FUNCNAME, data)); + LOG("%c %s(%02x)\n", 'A' + m_index, FUNCNAME, data); m_pcr = data; - LOG(("- The X2/IDCN pin is %s\n", m_index == duscc_device::CHANNEL_B ? "ignored for channel B" : - ((m_pcr & REG_PCR_X2_IDC) ? "crystal input" : "daisy chain interrupt output"))); - LOG(("- The GP02/RTS pin is %s\n", m_pcr & REG_PCR_GP02_RTS ? "RTS" : "GP02")); - LOG(("- The SYNOUT/RTS pin is %s\n", m_pcr & REG_PCR_SYNOUT_RTS ? "RTS" : "SYNOUT")); + LOG("- The X2/IDCN pin is %s\n", m_index == duscc_device::CHANNEL_B ? "ignored for channel B" : + ((m_pcr & REG_PCR_X2_IDC) ? "crystal input" : "daisy chain interrupt output")); + LOG("- The GP02/RTS pin is %s\n", m_pcr & REG_PCR_GP02_RTS ? "RTS" : "GP02"); + LOG("- The SYNOUT/RTS pin is %s\n", m_pcr & REG_PCR_SYNOUT_RTS ? "RTS" : "SYNOUT"); - LOG(("- The RTxC pin is ")); + LOG("- The RTxC pin is "); switch ( m_pcr & REG_PCR_RTXC_MASK ) { - case REG_PCR_RTXC_INPUT: LOG(("- an input\n")); break; - case REG_PCR_RTXC_CNTR_OUT: LOG(("- a counter/timer output\n")); break; - case REG_PCR_RTXC_TXCLK_OUT:LOG(("- a Tx clock output\n")); break; - case REG_PCR_RTXC_RXCLK_OUT:LOG(("- a Rx clock output\n")); break; - default: LOG(("DUSCC: Wrong programming\n")); break; // Should never happen + case REG_PCR_RTXC_INPUT: LOG("- an input\n"); break; + case REG_PCR_RTXC_CNTR_OUT: LOG("- a counter/timer output\n"); break; + case REG_PCR_RTXC_TXCLK_OUT:LOG("- a Tx clock output\n"); break; + case REG_PCR_RTXC_RXCLK_OUT:LOG("- a Rx clock output\n"); break; + default: LOG("DUSCC: Wrong programming\n"); break; // Should never happen } - LOG(("- The TRxC pin is ")); + LOG("- The TRxC pin is "); switch( m_pcr & REG_PCR_TRXC_MASK ) { - case REG_PCR_TRXC_INPUT: LOG(("- an input\n")); break; - case REG_PCR_TRXC_CRYST_OUT:LOG(("- a crystal/2 output\n")); break; - case REG_PCR_TRXC_DPLL_OUT: LOG(("- a DPLL output\n")); break; - case REG_PCR_TRXC_CNTR_OUT: LOG(("- a counter/timer output\n")); break; - case REG_PCR_TRXC_TXBRG_OUT:LOG(("- a Tx BRG output\n")); break; - case REG_PCR_TRXC_RXBRG_OUT:LOG(("- a Rx BRG output\n")); break; - case REG_PCR_TRXC_TXCLK_OUT:LOG(("- a Tx CLK output\n")); break; - case REG_PCR_TRXC_RXCLK_OUT:LOG(("- a Rx CLK output\n")); break; - default: LOG(("Wrong programming\n")); break; // Should never happen + case REG_PCR_TRXC_INPUT: LOG("- an input\n"); break; + case REG_PCR_TRXC_CRYST_OUT:LOG("- a crystal/2 output\n"); break; + case REG_PCR_TRXC_DPLL_OUT: LOG("- a DPLL output\n"); break; + case REG_PCR_TRXC_CNTR_OUT: LOG("- a counter/timer output\n"); break; + case REG_PCR_TRXC_TXBRG_OUT:LOG("- a Tx BRG output\n"); break; + case REG_PCR_TRXC_RXBRG_OUT:LOG("- a Rx BRG output\n"); break; + case REG_PCR_TRXC_TXCLK_OUT:LOG("- a Tx CLK output\n"); break; + case REG_PCR_TRXC_RXCLK_OUT:LOG("- a Rx CLK output\n"); break; + default: LOG("Wrong programming\n"); break; // Should never happen } return; @@ -1955,7 +1943,7 @@ void duscc_channel::do_dusccreg_ccr_w(uint8_t data) int rate; m_ccr = data; - LOG(("%c %s(%02x)\n", 'A' + m_index, FUNCNAME, data)); + LOG("%c %s(%02x)\n", 'A' + m_index, FUNCNAME, data); switch(m_ccr) { // TRANSMITTER COMMANDS @@ -1965,7 +1953,7 @@ void duscc_channel::do_dusccreg_ccr_w(uint8_t data) Also clears the transmitter status bits (TRSR[7:4]) and resets the TxRDY status bit (GSR[I] or GSR[5] for Channels A and B, respectively). The counter/timer and other registers are not affected*/ - case REG_CCR_RESET_TX: LOGINT(("- Reset Tx\n")); + case REG_CCR_RESET_TX: LOGINT("- Reset Tx\n"); set_tra_rate(0); m_tx_fifo_wp = m_tx_fifo_rp = 0; m_trsr &= 0x0f; @@ -1975,7 +1963,7 @@ void duscc_channel::do_dusccreg_ccr_w(uint8_t data) /* Enable transmitter. Enables transmitter operation, conditioned by the state of the CTS ENABLE Tx bit, TPR[2]. Has no effect if invoked when the transmitter has previously been enabled.*/ - case REG_CCR_ENABLE_TX: LOGINT(("- Enable Tx\n")); + case REG_CCR_ENABLE_TX: LOGINT("- Enable Tx\n"); m_uart->m_gsr |= (m_index == duscc_device::CHANNEL_A ? REG_GSR_CHAN_A_TXREADY : REG_GSR_CHAN_B_TXREADY); m_tra = 1; set_tra_rate(m_brg_tx_rate); @@ -1986,7 +1974,7 @@ void duscc_channel::do_dusccreg_ccr_w(uint8_t data) currently in the FIFO, or any loaded subsequently prior to attaining an empty condition, will be transmitted. TODO: let all the chararcters be transmitted before shutting down shifter */ - case REG_CCR_DISABLE_TX: LOGINT(("- Disable Tx\n")); + case REG_CCR_DISABLE_TX: LOGINT("- Disable Tx\n"); set_tra_rate(0); m_tra = 0; m_uart->m_gsr &= ~(m_index == duscc_device::CHANNEL_A ? REG_GSR_CHAN_A_TXREADY : REG_GSR_CHAN_B_TXREADY); @@ -1998,7 +1986,7 @@ void duscc_channel::do_dusccreg_ccr_w(uint8_t data) clears the data path, and clears the receiver status (RSR[7:0], TRSR[3:0], and either GSR[O] or GSR[4] for Channels A and B, respectively). The counter/timer and other registers are not affected.*/ - case REG_CCR_RESET_RX: LOGINT(("- Reset Rx\n")); + case REG_CCR_RESET_RX: LOGINT("- Reset Rx\n"); set_rcv_rate(0); m_rx_fifo_wp = m_rx_fifo_rp = 0; m_trsr &= 0xf0; @@ -2009,14 +1997,14 @@ void duscc_channel::do_dusccreg_ccr_w(uint8_t data) /* Enable receiver. Causes receiver operation to begin, conditioned by the state of the DCD ENABLED Rx bit, RPR[2]. Receiver goes into START, SYN, or FLAG search mode depending on channel protocol mode. Has no effect if invoked when the receiver has previously been enabled.*/ - case REG_CCR_ENABLE_RX: LOGINT(("- Enable Rx\n")); + case REG_CCR_ENABLE_RX: LOGINT("- Enable Rx\n"); m_rcv = 1; set_rcv_rate(m_brg_rx_rate); break; /* Disable receiver. Terminates operation of the receiver. Any character currently being assembled will be lost. Does not affect FIFO or any status.*/ - case REG_CCR_DISABLE_RX: LOGINT(("- Disable Rx\n")); + case REG_CCR_DISABLE_RX: LOGINT("- Disable Rx\n"); m_rcv = 0; m_uart->m_gsr &= ~(m_index == duscc_device::CHANNEL_A ? REG_GSR_CHAN_A_RXREADY : REG_GSR_CHAN_B_RXREADY); break; @@ -2024,43 +2012,43 @@ void duscc_channel::do_dusccreg_ccr_w(uint8_t data) // COUNTER/TIMER COMMANDS /* Start. Starts the counteritimer and prescaler. */ - case REG_CCR_START_TIMER: LOG(("- Start Counter/Timer\n")); + case REG_CCR_START_TIMER: LOG("- Start Counter/Timer\n"); rate = 100; // TODO: calculate correct rate duscc_timer->adjust(attotime::from_hz(rate), TIMER_ID_RTXC, attotime::from_hz(rate)); break; /* Stop. Stops the counter/timer and prescaler. Since the command may be asynchronous with the selected clock source, the counter/timer and/or prescaler may count one or more additional cycles before stopping.. */ - case REG_CCR_STOP_TIMER: LOG(("- Stop Counter/Timer\n")); + case REG_CCR_STOP_TIMER: LOG("- Stop Counter/Timer\n"); duscc_timer->adjust(attotime::never); break; /* Preset to FFFF. Presets the counter timer to H'FFFF' and the prescaler to its initial value. This command causes the C/T output to go Low.*/ - case REG_CCR_PRST_FFFF: LOG(("- Preset 0xffff to Counter/Timer\n")); + case REG_CCR_PRST_FFFF: LOG("- Preset 0xffff to Counter/Timer\n"); m_ct = 0xffff; break; /* Preset from CTPRH/CTPRL. Transfers the current value in the counter/timer preset registers to the counter/timer and presets the prescaler to its initial value. This command causes the C/T output to go Low. */ - case REG_CCR_PRST_CTPR: LOG(("- Preset CTPR to Counter/Timer\n")); + case REG_CCR_PRST_CTPR: LOG("- Preset CTPR to Counter/Timer\n"); m_ct = m_ctpr; break; - default: LOG((" - command %02x not implemented yet\n", data)); + default: LOG(" - command %02x not implemented yet\n", data); } return; } void duscc_channel::do_dusccreg_txfifo_w(uint8_t data) { - LOGTX((" - TX %s(%02x)'%c'\n", FUNCNAME,data, isalnum(data) ? data : ' ')); + LOGTX(" - TX %s(%02x)'%c'\n", FUNCNAME,data, isalnum(data) ? data : ' '); /* Tx FIFO is full or...? */ if (m_tx_fifo_wp + 1 == m_tx_fifo_rp || ( (m_tx_fifo_wp + 1 == m_tx_fifo_sz) && (m_tx_fifo_rp == 0) )) { logerror("- TX FIFO is full, discarding data\n"); - LOG(("- TX FIFO is full, discarding data\n")); + LOG("- TX FIFO is full, discarding data\n"); } else // ..there is still room { @@ -2076,7 +2064,7 @@ void duscc_channel::do_dusccreg_txfifo_w(uint8_t data) { if ( is_transmit_register_empty()) // Is the shift register loaded? { - LOG(("- Setting up transmitter\n")); + LOG("- Setting up transmitter\n"); transmit_register_setup(m_tx_data_fifo[m_tx_fifo_rp]); // Load the shift register, reload is done in tra_complete() m_tx_fifo_rp_step(); } @@ -2113,21 +2101,21 @@ void duscc_channel::do_dusccreg_txfifo_w(uint8_t data) message is received. Asserted status bits can be programmed to generate an interrupt (see Interrupt Enable Register).*/ void duscc_channel::do_dusccreg_rsr_w(uint8_t data) { - LOG(("%c %s(%02x)\n", 'A' + m_index, FUNCNAME, data)); + LOG("%c %s(%02x)\n", 'A' + m_index, FUNCNAME, data); m_rsr &= ~data; // Clear only bits which are 1:s return; } void duscc_channel::do_dusccreg_trsr_w(uint8_t data) { - LOG(("%s: %02x - not supported yet\n", FUNCNAME, data)); + LOG("%s: %02x - not supported yet\n", FUNCNAME, data); m_trsr = data; return; } void duscc_channel::do_dusccreg_ictsr_w(uint8_t data) { - LOG(("%s: %02x - not supported yet\n", FUNCNAME, data)); + LOG("%s: %02x - not supported yet\n", FUNCNAME, data); m_ictsr = data; return; } @@ -2153,7 +2141,7 @@ void duscc_channel::do_dusccreg_ictsr_w(uint8_t data) receiver' command is invoked.*/ void duscc_channel::do_dusccreg_gsr_w(uint8_t data) { - LOG(("%c %s(%02x)\n", 'A' + m_index, FUNCNAME, data)); + LOG("%c %s(%02x)\n", 'A' + m_index, FUNCNAME, data); m_uart->m_gsr &= (data & REG_GSR_XXREADY_MASK); // Reset only XXREADY bits, the rest needs to be reset by the source return; // TODO: Check of the XXREADY source bits should be reset too } @@ -2163,15 +2151,15 @@ void duscc_channel::do_dusccreg_gsr_w(uint8_t data) condition for an interrupt to be generated is that the channel's master interrupt enabled bit, ICR[O] or ICR[1], be asserted.*/ void duscc_channel::do_dusccreg_ier_w(uint8_t data) { - LOGINT(("%c %s(%02x)\n", 'A' + m_index, FUNCNAME, data)); - if (REG_IER_DCD_CTS & (data ^ m_ier)) LOGINT(("- DCD/CTS interrups %s\n", (data & REG_IER_DCD_CTS) ? "enabled" : "disabled" )); - if (REG_IER_TXRDY & (data ^ m_ier)) LOGINT(("- TXRDY interrupts %s\n", (data & REG_IER_TXRDY) ? "enabled" : "disabled" )); - if (REG_IER_TRSR73 & (data ^ m_ier)) LOGINT(("- TRSR73 interrupts %s\n", (data & REG_IER_TRSR73) ? "enabled" : "disabled" )); - if (REG_IER_RXRDY & (data ^ m_ier)) LOGINT(("- RXRDY interrupts %s\n", (data & REG_IER_RXRDY) ? "enabled" : "disabled" )); - if (REG_IER_RSR76 & (data ^ m_ier)) LOGINT(("- RSR76 interrupts %s\n", (data & REG_IER_RSR76) ? "enabled" : "disabled" )); - if (REG_IER_RSR54 & (data ^ m_ier)) LOGINT(("- RSR54 interrupts %s\n", (data & REG_IER_RSR54) ? "enabled" : "disabled" )); - if (REG_IER_RSR32 & (data ^ m_ier)) LOGINT(("- RSR32 interrupts %s\n", (data & REG_IER_RSR32) ? "enabled" : "disabled" )); - if (REG_IER_RSR10 & (data ^ m_ier)) LOGINT(("- RSR10 interrupts %s\n", (data & REG_IER_RSR10) ? "enabled" : "disabled" )); + LOGINT("%c %s(%02x)\n", 'A' + m_index, FUNCNAME, data); + if (REG_IER_DCD_CTS & (data ^ m_ier)) LOGINT("- DCD/CTS interrups %s\n", (data & REG_IER_DCD_CTS) ? "enabled" : "disabled" ); + if (REG_IER_TXRDY & (data ^ m_ier)) LOGINT("- TXRDY interrupts %s\n", (data & REG_IER_TXRDY) ? "enabled" : "disabled" ); + if (REG_IER_TRSR73 & (data ^ m_ier)) LOGINT("- TRSR73 interrupts %s\n", (data & REG_IER_TRSR73) ? "enabled" : "disabled" ); + if (REG_IER_RXRDY & (data ^ m_ier)) LOGINT("- RXRDY interrupts %s\n", (data & REG_IER_RXRDY) ? "enabled" : "disabled" ); + if (REG_IER_RSR76 & (data ^ m_ier)) LOGINT("- RSR76 interrupts %s\n", (data & REG_IER_RSR76) ? "enabled" : "disabled" ); + if (REG_IER_RSR54 & (data ^ m_ier)) LOGINT("- RSR54 interrupts %s\n", (data & REG_IER_RSR54) ? "enabled" : "disabled" ); + if (REG_IER_RSR32 & (data ^ m_ier)) LOGINT("- RSR32 interrupts %s\n", (data & REG_IER_RSR32) ? "enabled" : "disabled" ); + if (REG_IER_RSR10 & (data ^ m_ier)) LOGINT("- RSR10 interrupts %s\n", (data & REG_IER_RSR10) ? "enabled" : "disabled" ); m_ier = data; m_uart->check_interrupts(); return; @@ -2180,18 +2168,18 @@ void duscc_channel::do_dusccreg_ier_w(uint8_t data) void duscc_channel::do_dusccreg_ivr_w(uint8_t data) { m_uart->m_ivr = data; - LOG(("%s(%02x)\n", FUNCNAME, data)); + LOG("%s(%02x)\n", FUNCNAME, data); return; } void duscc_channel::do_dusccreg_icr_w(uint8_t data) { m_uart->m_icr = data; - LOG(("%s(%02x)\n", FUNCNAME, data)); - if (duscc_device::REG_ICR_CHB & (data ^ m_uart->m_icr)) LOG(("- Channel B interrupts %s\n", (data & duscc_device::REG_ICR_CHB) ? "enabled" : "disabled" )); - if (duscc_device::REG_ICR_CHA & (data ^ m_uart->m_icr)) LOG(("- Channel A interrupts %s\n", (data & duscc_device::REG_ICR_CHA) ? "enabled" : "disabled" )); - if (duscc_device::REG_ICR_VEC_MOD & (data ^ m_uart->m_icr)) LOG(("- Vector is %s\n", (data & duscc_device::REG_ICR_VEC_MOD) ? "modified" : "unmodified" )); - if (duscc_device::REG_ICR_V2V4_MOD & (data ^ m_uart->m_icr)) LOG(("- Vector bits %s modified\n", (data & duscc_device::REG_ICR_V2V4_MOD) ? "4:2" : "2:0" )); + LOG("%s(%02x)\n", FUNCNAME, data); + if (duscc_device::REG_ICR_CHB & (data ^ m_uart->m_icr)) LOG("- Channel B interrupts %s\n", (data & duscc_device::REG_ICR_CHB) ? "enabled" : "disabled" ); + if (duscc_device::REG_ICR_CHA & (data ^ m_uart->m_icr)) LOG("- Channel A interrupts %s\n", (data & duscc_device::REG_ICR_CHA) ? "enabled" : "disabled" ); + if (duscc_device::REG_ICR_VEC_MOD & (data ^ m_uart->m_icr)) LOG("- Vector is %s\n", (data & duscc_device::REG_ICR_VEC_MOD) ? "modified" : "unmodified" ); + if (duscc_device::REG_ICR_V2V4_MOD & (data ^ m_uart->m_icr)) LOG("- Vector bits %s modified\n", (data & duscc_device::REG_ICR_V2V4_MOD) ? "4:2" : "2:0" ); // TODO: LOG the other bits as well m_uart->m_icr = data; return; @@ -2199,8 +2187,8 @@ void duscc_channel::do_dusccreg_icr_w(uint8_t data) void duscc_channel::do_dusccreg_sea_rea_w(uint8_t data) { - LOG(("%s(%02x)\n", FUNCNAME, data)); - if ( m_uart->m_variant != SET_CMOS ) + LOG("%s(%02x)\n", FUNCNAME, data); + if ( !(m_uart->m_variant & duscc_device::SET_CMOS) ) { logerror("Attempt set/clear the CDUSCC A7 bit on an NDUSCC\n"); m_a7 = 0; // refuse access to CDUSCC registers on an NDUSCC @@ -2228,8 +2216,8 @@ uint8_t duscc_channel::read(offs_t &offset) { uint8_t data = 0; int reg = (offset | m_a7) & ~0x20; // Add extended rgisters and remove the channel B bit from offset - LOG(("\"%s\" %s: %c : Register read '%02x' <- [%02x]", m_owner->tag(), FUNCNAME, 'A' + m_index, data, reg )); - LOGR((" * %c Reg %02x -> %02x \n", 'A' + m_index, reg, data)); + LOG("\"%s\" %s: %c : Register read '%02x' <- [%02x]", m_owner->tag(), FUNCNAME, 'A' + m_index, data, reg ); + LOGR(" * %c Reg %02x -> %02x \n", 'A' + m_index, reg, data); switch (reg) { case REG_CMR1: data = do_dusccreg_cmr1_r(); break; @@ -2266,7 +2254,7 @@ uint8_t duscc_channel::read(offs_t &offset) logerror("%s: %c : Unsupported RRx register:%02x\n", FUNCNAME, 'A' + m_index, reg); } - LOGR(("%s \"%s\": %c : Register R%d read '%02x'\n", FUNCNAME, m_owner->tag(), 'A' + m_index, reg, data)); + LOGR("%s \"%s\": %c : Register R%d read '%02x'\n", FUNCNAME, m_owner->tag(), 'A' + m_index, reg, data); return data; } @@ -2278,8 +2266,8 @@ void duscc_channel::write(uint8_t data, offs_t &offset) { int reg = (offset | m_a7) & ~0x20; // Add extended rgisters and remove the channel B bit from offset - LOGSETUP((" * %s%c Reg %02x <- %02x \n", m_owner->tag(), 'A' + m_index, reg, data)); - LOG(("\"%s\" %s: %c : Register write '%02x' -> [%02x]", m_owner->tag(), FUNCNAME, 'A' + m_index, data, reg )); + LOGSETUP(" * %s%c Reg %02x <- %02x \n", m_owner->tag(), 'A' + m_index, reg, data); + LOG("\"%s\" %s: %c : Register write '%02x' -> [%02x]", m_owner->tag(), FUNCNAME, 'A' + m_index, data, reg ); switch (reg) { case REG_CMR1: do_dusccreg_cmr1_w(data); break; @@ -2294,8 +2282,8 @@ void duscc_channel::write(uint8_t data, offs_t &offset) case REG_CTPRL: do_dusccreg_ctprl_w(data); break; case REG_CTCR: do_dusccreg_ctcr_w(data); break; case REG_OMR: do_dusccreg_omr_w(data); break; -// case REG_CTH: LOG(("REG_CTH \n")); break; // Read only register -// case REG_CTL: LOG(("REG_CTL \n")); break; // Read only register +// case REG_CTH: LOG("REG_CTH \n"); break; // Read only register +// case REG_CTL: LOG("REG_CTL \n"); break; // Read only register case REG_PCR: do_dusccreg_pcr_w(data); break; case REG_CCR: do_dusccreg_ccr_w(data); break; case REG_TXFIFO_0: do_dusccreg_txfifo_w(data); break; @@ -2310,16 +2298,16 @@ void duscc_channel::write(uint8_t data, offs_t &offset) case REG_IVR: do_dusccreg_ivr_w(data); break; case REG_ICR: do_dusccreg_icr_w(data); break; // CDUSCC Extended registers - requires A7 to be set through REG_SEA -// case REG_MRR: LOG(("REG_MRR \n")); break; +// case REG_MRR: LOG("REG_MRR \n"); break; case REG_SEA: do_dusccreg_sea_rea_w(data); break; /* Also supports REG_REA depending on which channel is written to */ - case REG_IER1: LOG(("REG_IER1\n")); break; - case REG_IER2: LOG(("REG_IER2\n")); break; - case REG_IER3: LOG(("REG_IER3\n")); break; - case REG_TRCR: LOG(("REG_TRCR\n")); break; - case REG_RFLR: LOG(("REG_RFLR\n")); break; - case REG_FTLR: LOG(("REG_FTLR\n")); break; - case REG_TRMSR: LOG(("REG_TRMSR\n")); break; - case REG_TELR: LOG(("REG_TELR\n")); break; + case REG_IER1: LOG("REG_IER1\n"); break; + case REG_IER2: LOG("REG_IER2\n"); break; + case REG_IER3: LOG("REG_IER3\n"); break; + case REG_TRCR: LOG("REG_TRCR\n"); break; + case REG_RFLR: LOG("REG_RFLR\n"); break; + case REG_FTLR: LOG("REG_FTLR\n"); break; + case REG_TRMSR: LOG("REG_TRMSR\n"); break; + case REG_TELR: LOG("REG_TELR\n"); break; default: logerror("%s: %c : Unsupported WRx register:%02x(%02x)\n", FUNCNAME, 'A' + m_index, reg, data); @@ -2350,7 +2338,7 @@ void duscc_channel::m_rx_fifo_rp_step() if (m_rx_fifo_rp == m_rx_fifo_wp) { // no more characters available in the FIFO - LOGINT(("Clear RXRDY in GSR because FIFO is emptied\n")); + LOGINT("Clear RXRDY in GSR because FIFO is emptied\n"); m_uart->m_gsr &= ~(m_index == duscc_device::CHANNEL_A ? REG_GSR_CHAN_A_RXREADY : REG_GSR_CHAN_B_RXREADY); } } @@ -2371,7 +2359,7 @@ void duscc_channel::m_tx_fifo_rp_step() void duscc_channel::receive_data(uint8_t data) { - LOG(("\"%s\": %c : Receive Data Byte '%02x'\n", m_owner->tag(), 'A' + m_index, data)); + LOG("\"%s\": %c : Receive Data Byte '%02x'\n", m_owner->tag(), 'A' + m_index, data); if (m_rx_fifo_wp + 1 == m_rx_fifo_rp || ( (m_rx_fifo_wp + 1 == m_rx_fifo_sz) && (m_rx_fifo_rp == 0) )) { @@ -2384,7 +2372,7 @@ void duscc_channel::receive_data(uint8_t data) { m_rx_data_fifo[m_rx_fifo_wp] = data; m_rsr &= ~REG_RSR_OVERRUN_ERROR; - LOGINT((" - Setting RXRDY in GSR for channel %c\n", 'A' + m_index)); + LOGINT(" - Setting RXRDY in GSR for channel %c\n", 'A' + m_index); m_uart->m_gsr |= (m_index == duscc_device::CHANNEL_A ? REG_GSR_CHAN_A_RXREADY : REG_GSR_CHAN_B_RXREADY); m_rx_fifo_wp++; @@ -2416,7 +2404,7 @@ void duscc_channel::receive_data(uint8_t data) WRITE_LINE_MEMBER( duscc_channel::cts_w ) { - LOG(("\"%s\" %s: %c : CTS %u\n", m_owner->tag(), FUNCNAME, 'A' + m_index, state)); + LOG("\"%s\" %s: %c : CTS %u\n", m_owner->tag(), FUNCNAME, 'A' + m_index, state); if (m_cts != state) { @@ -2446,7 +2434,7 @@ WRITE_LINE_MEMBER( duscc_channel::cts_w ) //------------------------------------------------- WRITE_LINE_MEMBER( duscc_channel::dcd_w ) { - LOG(("\"%s\" %s: %c : DCD %u - not implemented\n", m_owner->tag(), FUNCNAME, 'A' + m_index, state)); + LOG("\"%s\" %s: %c : DCD %u - not implemented\n", m_owner->tag(), FUNCNAME, 'A' + m_index, state); #if 0 if (m_dcd != state) @@ -2470,7 +2458,7 @@ WRITE_LINE_MEMBER( duscc_channel::dcd_w ) WRITE_LINE_MEMBER( duscc_channel::ri_w ) { - LOG(("\"%s\" %s: %c : RI %u - not implemented\n", m_owner->tag(), FUNCNAME, 'A' + m_index, state)); + LOG("\"%s\" %s: %c : RI %u - not implemented\n", m_owner->tag(), FUNCNAME, 'A' + m_index, state); #if 0 if (m_ri != state) { @@ -2485,7 +2473,7 @@ WRITE_LINE_MEMBER( duscc_channel::ri_w ) //------------------------------------------------- WRITE_LINE_MEMBER( duscc_channel::sync_w ) { - LOG(("\"%s\" %s: %c : SYNC %u - not implemented\n", m_owner->tag(), FUNCNAME, 'A' + m_index, state)); + LOG("\"%s\" %s: %c : SYNC %u - not implemented\n", m_owner->tag(), FUNCNAME, 'A' + m_index, state); } //------------------------------------------------- @@ -2493,7 +2481,7 @@ WRITE_LINE_MEMBER( duscc_channel::sync_w ) //------------------------------------------------- WRITE_LINE_MEMBER( duscc_channel::rxc_w ) { - LOG(("\"%s\" %s: %c : RXC %u - not implemented\n", m_owner->tag(), FUNCNAME, 'A' + m_index, state)); + LOG("\"%s\" %s: %c : RXC %u - not implemented\n", m_owner->tag(), FUNCNAME, 'A' + m_index, state); } //------------------------------------------------- @@ -2501,7 +2489,7 @@ WRITE_LINE_MEMBER( duscc_channel::rxc_w ) //------------------------------------------------- WRITE_LINE_MEMBER( duscc_channel::txc_w ) { - LOG(("\"%s\" %s: %c : TXC %u - not implemented\n", m_owner->tag(), FUNCNAME, 'A' + m_index, state)); + LOG("\"%s\" %s: %c : TXC %u - not implemented\n", m_owner->tag(), FUNCNAME, 'A' + m_index, state); } //------------------------------------------------- @@ -2523,8 +2511,8 @@ void duscc_channel::update_serial() else parity = PARITY_NONE; - LOG((LLFORMAT " %s() \"%s \"Channel %c setting data frame %d+%d%c%d\n", machine().firstcpu->total_cycles(), FUNCNAME, m_owner->tag(), 'A' + m_index, 1, - data_bit_count, parity == PARITY_NONE ? 'N' : parity == PARITY_EVEN ? 'E' : 'O', (stop_bits + 1) / 2)); + LOG(LLFORMAT " %s() \"%s \"Channel %c setting data frame %d+%d%c%d\n", machine().firstcpu->total_cycles(), FUNCNAME, m_owner->tag(), 'A' + m_index, 1, + data_bit_count, parity == PARITY_NONE ? 'N' : parity == PARITY_EVEN ? 'E' : 'O', (stop_bits + 1) / 2); set_data_frame(1, data_bit_count, parity, stop_bits); @@ -2533,27 +2521,27 @@ void duscc_channel::update_serial() if (m_rxc > 0) { set_rcv_rate(m_rxc / clocks); - LOG((" - Receiver clock: %d mode: %d rate: %d/%xh\n", m_rxc, clocks, m_rxc / clocks, m_rxc / clocks)); + LOG(" - Receiver clock: %d mode: %d rate: %d/%xh\n", m_rxc, clocks, m_rxc / clocks, m_rxc / clocks); } clocks = get_tx_clock_mode(); if (m_txc > 0) { set_tra_rate(m_txc / clocks); - LOG((" - Transmit clock: %d mode: %d rate: %d/%xh\n", m_rxc, clocks, m_rxc / clocks, m_rxc / clocks)); + LOG(" - Transmit clock: %d mode: %d rate: %d/%xh\n", m_rxc, clocks, m_rxc / clocks, m_rxc / clocks); } if (m_brg_rx_rate != 0) { if (m_brg_rx_rate == 1) m_brg_rx_rate = 0; // BRG being disabled set_rcv_rate(m_brg_rx_rate); - LOG((" - Baud Rate Generator: %d mode: RX:%dx\n", m_brg_rx_rate, get_rx_clock_mode())); + LOG(" - Baud Rate Generator: %d mode: RX:%dx\n", m_brg_rx_rate, get_rx_clock_mode()); } if (m_brg_tx_rate != 0) { if (m_brg_tx_rate == 1) m_brg_tx_rate = 0; // BRG being disabled set_tra_rate(m_brg_tx_rate); - LOG((" - Baud Rate Generator: %d mode: TX:%dx\n", m_brg_tx_rate, get_tx_clock_mode())); + LOG(" - Baud Rate Generator: %d mode: TX:%dx\n", m_brg_tx_rate, get_tx_clock_mode()); } } @@ -2562,7 +2550,7 @@ void duscc_channel::update_serial() //------------------------------------------------- void duscc_channel::set_dtr(int state) { - LOG(("%s(%d)\n", FUNCNAME, state)); + LOG("%s(%d)\n", FUNCNAME, state); m_dtr = state; if (m_index == duscc_device::CHANNEL_A) diff --git a/src/devices/machine/scnxx562.h b/src/devices/machine/scnxx562.h index bae0b801594..5be52c6201a 100644 --- a/src/devices/machine/scnxx562.h +++ b/src/devices/machine/scnxx562.h @@ -36,8 +36,10 @@ ***************************************************************************/ -#ifndef __SCNXX562_H__ -#define __SCNXX562_H__ +#ifndef MAME_MACHINE_SCNXX562_H +#define MAME_MACHINE_SCNXX562_H + +#pragma once #include "cpu/z80/z80daisy.h" @@ -45,7 +47,7 @@ // DEVICE CONFIGURATION MACROS //************************************************************************** -#define LOCAL_BRG 0 +//#define LOCAL_BRG 0 FIXME - what is this for? the name is overly generic and shouldn't be in global namespace /* Variant ADD macros - use the right one to enable the right feature set! */ #define MCFG_DUSCC26562_ADD(_tag, _clock, _rxa, _txa, _rxb, _txb) \ @@ -122,25 +124,13 @@ class duscc_device; -class duscc_channel : public device_t, - public device_serial_interface +class duscc_channel : public device_t, public device_serial_interface { friend class duscc_device; public: duscc_channel(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; - - // device_serial_interface overrides - virtual void tra_callback() override; - virtual void tra_complete() override; - virtual void rcv_callback() override; - virtual void rcv_complete() override; - // read register handlers uint8_t do_dusccreg_cmr1_r(); uint8_t do_dusccreg_cmr2_r(); @@ -229,6 +219,18 @@ public: DECLARE_WRITE_LINE_MEMBER( txc_w ); DECLARE_WRITE_LINE_MEMBER( sync_w ); +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + + // device_serial_interface overrides + virtual void tra_callback() override; + virtual void tra_complete() override; + virtual void rcv_callback() override; + virtual void rcv_complete() override; + int m_rxc; int m_txc; int m_tra; @@ -276,7 +278,6 @@ public: uint8_t m_trmsr; uint8_t m_telr; -protected: enum // Needs to be 0-3 in unmodified prio level { INT_RXREADY = 0, @@ -598,31 +599,28 @@ protected: // ======================> duscc_device - -class duscc_device : public device_t - ,public device_z80daisy_interface +class duscc_device : public device_t, public device_z80daisy_interface { friend class duscc_channel; public: // construction/destruction - duscc_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, uint32_t variant, const char *shortname, const char *source); duscc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_out_txda_callback(device_t &device, _Object object) { return downcast(device).m_out_txda_cb.set_callback(object); } - template static devcb_base &set_out_dtra_callback(device_t &device, _Object object) { return downcast(device).m_out_dtra_cb.set_callback(object); } - template static devcb_base &set_out_rtsa_callback(device_t &device, _Object object) { return downcast(device).m_out_rtsa_cb.set_callback(object); } - template static devcb_base &set_out_synca_callback(device_t &device, _Object object) { return downcast(device).m_out_synca_cb.set_callback(object); } - template static devcb_base &set_out_rtxca_callback(device_t &device, _Object object) { return downcast(device).m_out_rtxca_cb.set_callback(object); } - template static devcb_base &set_out_trxca_callback(device_t &device, _Object object) { return downcast(device).m_out_trxca_cb.set_callback(object); } - - template static devcb_base &set_out_txdb_callback(device_t &device, _Object object) { return downcast(device).m_out_txdb_cb.set_callback(object); } - template static devcb_base &set_out_dtrb_callback(device_t &device, _Object object) { return downcast(device).m_out_dtrb_cb.set_callback(object); } - template static devcb_base &set_out_rtsb_callback(device_t &device, _Object object) { return downcast(device).m_out_rtsb_cb.set_callback(object); } - template static devcb_base &set_out_syncb_callback(device_t &device, _Object object) { return downcast(device).m_out_syncb_cb.set_callback(object); } - template static devcb_base &set_out_rtxcb_callback(device_t &device, _Object object) { return downcast(device).m_out_rtxcb_cb.set_callback(object); } - template static devcb_base &set_out_trxcb_callback(device_t &device, _Object object) { return downcast(device).m_out_trxcb_cb.set_callback(object); } - template static devcb_base &set_out_int_callback(device_t &device, _Object object) { return downcast(device).m_out_int_cb.set_callback(object); } + template static devcb_base &set_out_txda_callback(device_t &device, Object &&cb) { return downcast(device).m_out_txda_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_dtra_callback(device_t &device, Object &&cb) { return downcast(device).m_out_dtra_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_rtsa_callback(device_t &device, Object &&cb) { return downcast(device).m_out_rtsa_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_synca_callback(device_t &device, Object &&cb) { return downcast(device).m_out_synca_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_rtxca_callback(device_t &device, Object &&cb) { return downcast(device).m_out_rtxca_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_trxca_callback(device_t &device, Object &&cb) { return downcast(device).m_out_trxca_cb.set_callback(std::forward(cb)); } + + template static devcb_base &set_out_txdb_callback(device_t &device, Object &&cb) { return downcast(device).m_out_txdb_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_dtrb_callback(device_t &device, Object &&cb) { return downcast(device).m_out_dtrb_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_rtsb_callback(device_t &device, Object &&cb) { return downcast(device).m_out_rtsb_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_syncb_callback(device_t &device, Object &&cb) { return downcast(device).m_out_syncb_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_rtxcb_callback(device_t &device, Object &&cb) { return downcast(device).m_out_rtxcb_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_trxcb_callback(device_t &device, Object &&cb) { return downcast(device).m_out_trxcb_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_int_callback(device_t &device, Object &&cb) { return downcast(device).m_out_int_cb.set_callback(std::forward(cb)); } static void configure_channels(device_t &device, int rxa, int txa, int rxb, int txb) { @@ -665,6 +663,8 @@ public: DECLARE_WRITE_LINE_MEMBER( syncb_w ) { m_chanB->sync_w(state); } protected: + duscc_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint32_t variant); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -675,7 +675,7 @@ protected: void reset_interrupts(); uint8_t modify_vector(uint8_t vect, int i, uint8_t src); void trigger_interrupt(int index, int state); - int get_channel_index(duscc_channel *ch) { return (ch == m_chanA) ? 0 : 1; } + int get_channel_index(duscc_channel *ch) const { return (ch == m_chanA) ? 0 : 1; } // Variants in the DUSCC family enum @@ -685,10 +685,10 @@ protected: TYPE_DUSCC26C562 = 0x004, TYPE_DUSCC68562 = 0x008, TYPE_DUSCC68C562 = 0x010, - }; -#define SET_NMOS ( duscc_device::TYPE_DUSCC26562 | duscc_device::TYPE_DUSCC68562 ) -#define SET_CMOS ( duscc_device::TYPE_DUSCC26C562 | duscc_device::TYPE_DUSCC68C562 ) + SET_NMOS = TYPE_DUSCC26562 | TYPE_DUSCC68562, + SET_CMOS = TYPE_DUSCC26C562 | TYPE_DUSCC68C562 + }; enum { @@ -748,12 +748,12 @@ protected: }; // device type definition -extern const device_type DUSCC; -extern const device_type DUSCC_CHANNEL; -extern const device_type DUSCC26562; -extern const device_type DUSCC26C562; -extern const device_type DUSCC68562; -extern const device_type DUSCC68C562; +DECLARE_DEVICE_TYPE(DUSCC, duscc_device) +DECLARE_DEVICE_TYPE(DUSCC_CHANNEL, duscc_channel) +DECLARE_DEVICE_TYPE(DUSCC26562, duscc26562_device) +DECLARE_DEVICE_TYPE(DUSCC26C562, duscc26c562_device) +DECLARE_DEVICE_TYPE(DUSCC68562, duscc68562_device) +DECLARE_DEVICE_TYPE(DUSCC68C562, duscc68C562_device) class duscc26562_device : public duscc_device { @@ -761,10 +761,10 @@ public : duscc26562_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; -class duscc26C562_device : public duscc_device +class duscc26c562_device : public duscc_device { public : - duscc26C562_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + duscc26c562_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; class duscc68562_device : public duscc_device @@ -773,10 +773,10 @@ public : duscc68562_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; -class duscc68C562_device : public duscc_device +class duscc68c562_device : public duscc_device { public : - duscc68C562_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + duscc68c562_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; -#endif // __SCNXX562_H__ +#endif // MAME_MACHINE_SCNXX562_H diff --git a/src/devices/machine/serflash.cpp b/src/devices/machine/serflash.cpp index 37248396495..a25d27e683c 100644 --- a/src/devices/machine/serflash.cpp +++ b/src/devices/machine/serflash.cpp @@ -9,24 +9,28 @@ #include "machine/serflash.h" -ALLOW_SAVE_TYPE(flash_state_t); +ALLOW_SAVE_TYPE(serflash_device::flash_state_t); //************************************************************************** // LIVE DEVICE //************************************************************************** // device type definition -const device_type SERFLASH = device_creator; +DEFINE_DEVICE_TYPE(SERFLASH, serflash_device, "serflash", "Serial Flash") //------------------------------------------------- // serflash_device - constructor //------------------------------------------------- serflash_device::serflash_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, SERFLASH, "Serial Flash", tag, owner, clock, "serflash", __FILE__), - device_nvram_interface(mconfig, *this), - m_length(0), m_region(nullptr), m_flash_state(), m_flash_enab(0), m_flash_cmd_seq(0), m_flash_cmd_prev(0), m_flash_addr_seq(0), m_flash_read_seq(0), m_flash_row(0), - m_flash_col(0), m_flash_page_addr(0), m_flash_page_index(0), m_last_flash_cmd(0), m_flash_addr(0) + : device_t(mconfig, SERFLASH, tag, owner, clock) + , device_nvram_interface(mconfig, *this) + , m_length(0) + , m_region(nullptr) + , m_flash_state() + , m_flash_enab(0) + , m_flash_cmd_seq(0), m_flash_cmd_prev(0), m_flash_addr_seq(0), m_flash_read_seq(0) + , m_flash_row(0), m_flash_col(0), m_flash_page_addr(0), m_flash_page_index(0), m_last_flash_cmd(0), m_flash_addr(0) { } @@ -38,8 +42,8 @@ serflash_device::serflash_device(const machine_config &mconfig, const char *tag, void serflash_device::device_start() { - m_length = machine().root_device().memregion( tag() )->bytes(); - m_region = machine().root_device().memregion( tag() )->base(); + m_length = machine().root_device().memregion(tag())->bytes(); + m_region = machine().root_device().memregion(tag())->base(); m_flashwritemap.resize(m_length / FLASH_PAGE_SIZE); memset(&m_flashwritemap[0], 0, m_length / FLASH_PAGE_SIZE); diff --git a/src/devices/machine/serflash.h b/src/devices/machine/serflash.h index b7df13b6957..b021f50e7c4 100644 --- a/src/devices/machine/serflash.h +++ b/src/devices/machine/serflash.h @@ -2,17 +2,10 @@ // copyright-holders:David Haywood, Luca Elia /* Serial Flash */ -#pragma once - -#ifndef __SERFLASH_H__ -#define __SERFLASH_H__ - - -#define FLASH_PAGE_SIZE (2048+64) - - - +#ifndef MAME_MACHINE_SERFLASH_H +#define MAME_MACHINE_SERFLASH_H +#pragma once //************************************************************************** @@ -20,26 +13,22 @@ //************************************************************************** #define MCFG_SERFLASH_ADD(_tag) \ - MCFG_DEVICE_ADD(_tag, SERFLASH, 0) + MCFG_DEVICE_ADD(_tag, SERFLASH, 0) + + //************************************************************************** // TYPE DEFINITIONS //************************************************************************** -class serflash_device; - -typedef enum { STATE_IDLE = 0, STATE_READ, STATE_READ_ID, STATE_READ_STATUS, STATE_BLOCK_ERASE, STATE_PAGE_PROGRAM } flash_state_t; -//const char *m_flash_state_name[] = { "IDLE", "READ", "READ_ID", "READ_STATUS", "BLOCK ERASE", "PAGE PROGRAM" }; - -// custom initialization for default state -typedef device_delegate serflash_init_delegate; - // ======================> serflash_device -class serflash_device : public device_t, - public device_nvram_interface +class serflash_device : public device_t, public device_nvram_interface { public: + // custom initialization for default state + typedef device_delegate init_delegate; + // construction/destruction serflash_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); @@ -57,6 +46,10 @@ public: DECLARE_WRITE8_MEMBER(n3d_flash_addr_w); protected: + static constexpr unsigned FLASH_PAGE_SIZE = 2048+64; + + enum flash_state_t { STATE_IDLE = 0, STATE_READ, STATE_READ_ID, STATE_READ_STATUS, STATE_BLOCK_ERASE, STATE_PAGE_PROGRAM }; + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -95,14 +88,10 @@ protected: uint32_t m_flash_addr; uint8_t m_flash_page_data[FLASH_PAGE_SIZE]; - - - }; // device type definition -extern const device_type SERFLASH; - +DECLARE_DEVICE_TYPE(SERFLASH, serflash_device) -#endif +#endif // MAME_MACHINE_SERFLASH_H diff --git a/src/devices/machine/smartmed.cpp b/src/devices/machine/smartmed.cpp index eeca71b78f1..7e4153797f6 100644 --- a/src/devices/machine/smartmed.cpp +++ b/src/devices/machine/smartmed.cpp @@ -22,7 +22,7 @@ #include "smartmed.h" -#define MAX_SMARTMEDIA 1 +namespace { /* machine-independent big-endian 32-bit integer */ struct UINT32BE @@ -30,13 +30,13 @@ struct UINT32BE uint8_t bytes[4]; }; -static inline uint32_t get_UINT32BE(UINT32BE word) +inline uint32_t get_UINT32BE(UINT32BE word) { return (word.bytes[0] << 24) | (word.bytes[1] << 16) | (word.bytes[2] << 8) | word.bytes[3]; } #ifdef UNUSED_FUNCTION -static inline void set_UINT32BE(UINT32BE *word, uint32_t data) +inline void set_UINT32BE(UINT32BE *word, uint32_t data) { word->bytes[0] = (data >> 24) & 0xff; word->bytes[1] = (data >> 16) & 0xff; @@ -69,37 +69,28 @@ enum header_len = sizeof(SM_disk_image_header) }; +} // anonymous namespace -const device_type NAND = device_creator; + +DEFINE_DEVICE_TYPE(NAND, nand_device, "nand", "NAND Flash Memory") nand_device::nand_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, NAND, "NAND Flash Memory", tag, owner, clock, "nand", __FILE__), - m_page_data_size(0), - m_page_total_size(0), - m_num_pages(0), - m_log2_pages_per_block(0), - m_pagereg(nullptr), - m_id_len(0), - m_col_address_cycles(0), - m_row_address_cycles(0), - m_sequential_row_read(0), - m_write_rnb(*this) + : nand_device(mconfig, NAND, tag, owner, clock) { - memset(m_id, 0, sizeof(m_id)); } -nand_device::nand_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), - m_page_data_size(0), - m_page_total_size(0), - m_num_pages(0), - m_log2_pages_per_block(0), - m_pagereg(nullptr), - m_id_len(0), - m_col_address_cycles(0), - m_row_address_cycles(0), - m_sequential_row_read(0), - m_write_rnb(*this) +nand_device::nand_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) + , m_page_data_size(0) + , m_page_total_size(0) + , m_num_pages(0) + , m_log2_pages_per_block(0) + , m_pagereg(nullptr) + , m_id_len(0) + , m_col_address_cycles(0) + , m_row_address_cycles(0) + , m_sequential_row_read(0) + , m_write_rnb(*this) { memset(m_id, 0, sizeof(m_id)); } @@ -121,9 +112,9 @@ void nand_device::device_start() m_mode_3065 = 0; m_pagereg = std::make_unique(m_page_total_size); - #ifdef SMARTMEDIA_IMAGE_SAVE +#ifdef SMARTMEDIA_IMAGE_SAVE m_image_format = 0; - #endif +#endif m_write_rnb.resolve_safe(); } @@ -182,9 +173,9 @@ image_init_result smartmedia_image_device::smartmedia_format_1() } fread(m_data_ptr, m_page_total_size*m_num_pages); - #ifdef SMARTMEDIA_IMAGE_SAVE +#ifdef SMARTMEDIA_IMAGE_SAVE m_image_format = 1; - #endif +#endif return image_init_result::PASS; } @@ -272,9 +263,9 @@ image_init_result smartmedia_image_device::smartmedia_format_2() fread(m_data_ptr, m_page_total_size*m_num_pages); - #ifdef SMARTMEDIA_IMAGE_SAVE +#ifdef SMARTMEDIA_IMAGE_SAVE m_image_format = 2; - #endif +#endif return image_init_result::PASS; } @@ -300,7 +291,7 @@ image_init_result smartmedia_image_device::call_load() */ void smartmedia_image_device::call_unload() { - #ifdef SMARTMEDIA_IMAGE_SAVE +#ifdef SMARTMEDIA_IMAGE_SAVE if (!is_readonly()) { if (m_image_format == 1) @@ -329,7 +320,7 @@ void smartmedia_image_device::call_unload() fwrite( m_data_ptr, m_page_total_size * m_num_pages); } } - #endif +#endif m_page_data_size = 0; m_page_total_size = 0; @@ -352,9 +343,9 @@ void smartmedia_image_device::call_unload() m_row_address_cycles = 0; m_sequential_row_read = 0; - #ifdef SMARTMEDIA_IMAGE_SAVE +#ifdef SMARTMEDIA_IMAGE_SAVE m_image_format = 0; - #endif +#endif return; } @@ -777,10 +768,10 @@ void nand_device::device_reset() } -const device_type SMARTMEDIA = device_creator; +DEFINE_DEVICE_TYPE(SMARTMEDIA, smartmedia_image_device, "smartmedia", "SmartMedia Flash card") smartmedia_image_device::smartmedia_image_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : nand_device(mconfig, SMARTMEDIA, "SmartMedia Flash ROM", tag, owner, clock, "smartmedia", __FILE__), - device_image_interface(mconfig, *this) + : nand_device(mconfig, SMARTMEDIA, tag, owner, clock) + , device_image_interface(mconfig, *this) { } diff --git a/src/devices/machine/smartmed.h b/src/devices/machine/smartmed.h index f8efcc2df0b..12f7e8c7539 100644 --- a/src/devices/machine/smartmed.h +++ b/src/devices/machine/smartmed.h @@ -4,136 +4,116 @@ smartmed.h: header file for smartmed.c */ -#ifndef __SMARTMEDIA_H__ -#define __SMARTMEDIA_H__ +#ifndef MAME_MACHINE_SMARTMEDIA_H +#define MAME_MACHINE_SMARTMEDIA_H + +#pragma once #include "formats/imageutl.h" #include "softlist_dev.h" //#define SMARTMEDIA_IMAGE_SAVE -#define MCFG_NAND_TYPE(_type) \ - nand_device::set_nand_type(*device, _type); +#define MCFG_NAND_TYPE(type) \ + nand_device::set_nand_type(*device, (nand_device::chip::type)); -#define MCFG_NAND_RNB_CALLBACK(_write) \ - devcb = &nand_device::set_rnb_wr_callback(*device, DEVCB_##_write); +#define MCFG_NAND_RNB_CALLBACK(write) \ + devcb = &nand_device::set_rnb_wr_callback(*device, DEVCB_##write); /*************************************************************************** TYPE DEFINITIONS ***************************************************************************/ -enum sm_mode_t -{ - SM_M_INIT, // initial state - SM_M_READ, // read page data - SM_M_PROGRAM, // program page data - SM_M_ERASE, // erase block data - SM_M_READSTATUS,// read status - SM_M_READID, // read ID - SM_M_30, - SM_M_RANDOM_DATA_INPUT, - SM_M_RANDOM_DATA_OUTPUT -}; - -enum pointer_sm_mode_t -{ - SM_PM_A, // accessing first 256-byte half of 512-byte data field - SM_PM_B, // accessing second 256-byte half of 512-byte data field - SM_PM_C // accessing spare field -}; - - -// "Sequential Row Read is available only on K9F5608U0D_Y,P,V,F or K9F5608D0D_Y,P" -enum -{ - NAND_CHIP_K9F5608U0D = 0, // K9F5608U0D - NAND_CHIP_K9F5608U0D_J, // K9F5608U0D-Jxxx - NAND_CHIP_K9F5608U0B, // K9F5608U0B - NAND_CHIP_K9F1G08U0B, // K9F1G08U0B - NAND_CHIP_K9LAG08U0M // K9LAG08U0M -}; - // ======================> nand_device class nand_device : public device_t { public: + // "Sequential Row Read is available only on K9F5608U0D_Y,P,V,F or K9F5608D0D_Y,P" + enum class chip + { + K9F5608U0D = 0, // K9F5608U0D + K9F5608U0D_J, // K9F5608U0D-Jxxx + K9F5608U0B, // K9F5608U0B + K9F1G08U0B, // K9F1G08U0B + K9LAG08U0M // K9LAG08U0M + }; + // construction/destruction nand_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - nand_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - template static devcb_base &set_rnb_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_rnb.set_callback(object); } + template static devcb_base &set_rnb_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_rnb.set_callback(std::forward(cb)); } - static void set_nand_type(device_t &device, int type) + static void set_nand_type(device_t &device, chip type) { nand_device &dev = downcast(device); switch (type) { - case NAND_CHIP_K9F5608U0D: - dev.m_id_len = 2; - dev.m_id[0] = 0xec; - dev.m_id[1] = 0x75; - dev.m_page_data_size = 512; - dev.m_page_total_size = 512 + 16; - dev.m_log2_pages_per_block = compute_log2(32); - dev.m_num_pages = 32 * 2048; - dev.m_col_address_cycles = 1; - dev.m_row_address_cycles = 2; - dev.m_sequential_row_read = 1; - break; - case NAND_CHIP_K9F5608U0D_J: - case NAND_CHIP_K9F5608U0B: - dev.m_id_len = 2; - dev.m_id[0] = 0xec; - dev.m_id[1] = 0x75; - dev.m_page_data_size = 512; - dev.m_page_total_size = 512 + 16; - dev.m_log2_pages_per_block = compute_log2(32); - dev.m_num_pages = 32 * 2048; - dev.m_col_address_cycles = 1; - dev.m_row_address_cycles = 2; - dev.m_sequential_row_read = 0; - break; - case NAND_CHIP_K9F1G08U0B: - dev.m_id_len = 5; - dev.m_id[0] = 0xec; - dev.m_id[1] = 0xf1; - dev.m_id[2] = 0x00; - dev.m_id[3] = 0x95; - dev.m_id[4] = 0x40; - dev.m_page_data_size = 2048; - dev.m_page_total_size = 2048 + 64; - dev.m_log2_pages_per_block = compute_log2(64); - dev.m_num_pages = 64 * 1024; - dev.m_col_address_cycles = 2; - dev.m_row_address_cycles = 2; - dev.m_sequential_row_read = 0; - break; - case NAND_CHIP_K9LAG08U0M: - dev.m_id_len = 5; - dev.m_id[0] = 0xec; - dev.m_id[1] = 0xd5; - dev.m_id[2] = 0x55; - dev.m_id[3] = 0x25; - dev.m_id[4] = 0x68; - dev.m_page_data_size = 2048; - dev.m_page_total_size = 2048 + 64; - dev.m_log2_pages_per_block = compute_log2(128); - dev.m_num_pages = 128 * 8192; - dev.m_col_address_cycles = 2; - dev.m_row_address_cycles = 3; - dev.m_sequential_row_read = 0; - break; - default: - printf("Unknown NAND type!\n"); - dev.m_id_len = 0; - dev.m_page_data_size = 0; - dev.m_page_total_size = 0; - dev.m_log2_pages_per_block = 0; - dev.m_num_pages = 0; - dev.m_col_address_cycles = 0; - dev.m_row_address_cycles = 0; - dev.m_sequential_row_read = 0; - break; + case chip::K9F5608U0D: + dev.m_id_len = 2; + dev.m_id[0] = 0xec; + dev.m_id[1] = 0x75; + dev.m_page_data_size = 512; + dev.m_page_total_size = 512 + 16; + dev.m_log2_pages_per_block = compute_log2(32); + dev.m_num_pages = 32 * 2048; + dev.m_col_address_cycles = 1; + dev.m_row_address_cycles = 2; + dev.m_sequential_row_read = 1; + break; + case chip::K9F5608U0D_J: + case chip::K9F5608U0B: + dev.m_id_len = 2; + dev.m_id[0] = 0xec; + dev.m_id[1] = 0x75; + dev.m_page_data_size = 512; + dev.m_page_total_size = 512 + 16; + dev.m_log2_pages_per_block = compute_log2(32); + dev.m_num_pages = 32 * 2048; + dev.m_col_address_cycles = 1; + dev.m_row_address_cycles = 2; + dev.m_sequential_row_read = 0; + break; + case chip::K9F1G08U0B: + dev.m_id_len = 5; + dev.m_id[0] = 0xec; + dev.m_id[1] = 0xf1; + dev.m_id[2] = 0x00; + dev.m_id[3] = 0x95; + dev.m_id[4] = 0x40; + dev.m_page_data_size = 2048; + dev.m_page_total_size = 2048 + 64; + dev.m_log2_pages_per_block = compute_log2(64); + dev.m_num_pages = 64 * 1024; + dev.m_col_address_cycles = 2; + dev.m_row_address_cycles = 2; + dev.m_sequential_row_read = 0; + break; + case chip::K9LAG08U0M: + dev.m_id_len = 5; + dev.m_id[0] = 0xec; + dev.m_id[1] = 0xd5; + dev.m_id[2] = 0x55; + dev.m_id[3] = 0x25; + dev.m_id[4] = 0x68; + dev.m_page_data_size = 2048; + dev.m_page_total_size = 2048 + 64; + dev.m_log2_pages_per_block = compute_log2(128); + dev.m_num_pages = 128 * 8192; + dev.m_col_address_cycles = 2; + dev.m_row_address_cycles = 3; + dev.m_sequential_row_read = 0; + break; + default: + printf("Unknown NAND type!\n"); + dev.m_id_len = 0; + dev.m_page_data_size = 0; + dev.m_page_total_size = 0; + dev.m_log2_pages_per_block = 0; + dev.m_num_pages = 0; + dev.m_col_address_cycles = 0; + dev.m_row_address_cycles = 0; + dev.m_sequential_row_read = 0; + break; } } @@ -147,7 +127,30 @@ public: void data_w(uint8_t data); void set_data_ptr(void *ptr); + protected: + enum sm_mode_t + { + SM_M_INIT, // initial state + SM_M_READ, // read page data + SM_M_PROGRAM, // program page data + SM_M_ERASE, // erase block data + SM_M_READSTATUS,// read status + SM_M_READID, // read ID + SM_M_30, + SM_M_RANDOM_DATA_INPUT, + SM_M_RANDOM_DATA_OUTPUT + }; + + enum pointer_sm_mode_t + { + SM_PM_A, // accessing first 256-byte half of 512-byte data field + SM_PM_B, // accessing second 256-byte half of 512-byte data field + SM_PM_C // accessing spare field + }; + + nand_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -190,15 +193,14 @@ protected: devcb_write_line m_write_rnb; - #ifdef SMARTMEDIA_IMAGE_SAVE +#ifdef SMARTMEDIA_IMAGE_SAVE int m_image_format; - #endif +#endif }; -class smartmedia_image_device : public nand_device, - public device_image_interface +class smartmedia_image_device : public nand_device, public device_image_interface { public: // construction/destruction @@ -222,13 +224,12 @@ public: protected: image_init_result smartmedia_format_1(); image_init_result smartmedia_format_2(); - int detect_geometry( uint8_t id1, uint8_t id2); + int detect_geometry(uint8_t id1, uint8_t id2); }; // device type definition -extern const device_type NAND; -extern const device_type SMARTMEDIA; - +DECLARE_DEVICE_TYPE(NAND, nand_device) +DECLARE_DEVICE_TYPE(SMARTMEDIA, smartmedia_image_device) -#endif /* __SMARTMEDIA_H__ */ +#endif // MAME_MACHINE_SMARTMEDIA_H diff --git a/src/devices/machine/smc91c9x.cpp b/src/devices/machine/smc91c9x.cpp index 1a44d1ad74b..4905581af21 100644 --- a/src/devices/machine/smc91c9x.cpp +++ b/src/devices/machine/smc91c9x.cpp @@ -105,9 +105,9 @@ static const char *const ethernet_regname[64] = DEVICE INTERFACE ***************************************************************************/ -smc91c9x_device::smc91c9x_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), - m_irq_handler(*this) +smc91c9x_device::smc91c9x_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) + , m_irq_handler(*this) { } @@ -181,18 +181,18 @@ void smc91c9x_device::device_reset() } -const device_type SMC91C94 = device_creator; +DEFINE_DEVICE_TYPE(SMC91C94, smc91c94_device, "smc91c94", "SMC91C94 Ethernet Controller") smc91c94_device::smc91c94_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : smc91c9x_device(mconfig, SMC91C94, "SMC91C94 Ethernet Controller", tag, owner, clock, "smc91c94", __FILE__) + : smc91c9x_device(mconfig, SMC91C94, tag, owner, clock) { } -const device_type SMC91C96 = device_creator; +DEFINE_DEVICE_TYPE(SMC91C96, smc91c96_device, "smc91c96", "SMC91C96 Ethernet Controller") smc91c96_device::smc91c96_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : smc91c9x_device(mconfig, SMC91C96, "SMC91C96", tag, owner, clock, "smc91c96", __FILE__) + : smc91c9x_device(mconfig, SMC91C96, tag, owner, clock) { } diff --git a/src/devices/machine/smc91c9x.h b/src/devices/machine/smc91c9x.h index f83d7a6a39a..3723049a639 100644 --- a/src/devices/machine/smc91c9x.h +++ b/src/devices/machine/smc91c9x.h @@ -8,11 +8,8 @@ **************************************************************************/ -#ifndef __SMC91C9X__ -#define __SMC91C9X__ - -#define ETHER_BUFFER_SIZE (2048) -#define ETHER_RX_BUFFERS (4) +#ifndef MAME_MACHINE_SMC91C9X_H +#define MAME_MACHINE_SMC91C9X_H /*************************************************************************** TYPE DEFINITIONS @@ -21,20 +18,22 @@ class smc91c9x_device : public device_t { public: - smc91c9x_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - ~smc91c9x_device() {} - - template static devcb_base &set_irq_callback(device_t &device, _Object object) { return downcast(device).m_irq_handler.set_callback(object); } + template static devcb_base &set_irq_callback(device_t &device, Object &&cb) { return downcast(device).m_irq_handler.set_callback(std::forward(cb)); } DECLARE_READ16_MEMBER( read ); DECLARE_WRITE16_MEMBER( write ); protected: + smc91c9x_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; private: + static constexpr unsigned ETHER_BUFFER_SIZE = 2048; + static constexpr unsigned ETHER_RX_BUFFERS = 4; + // internal state devcb_write_line m_irq_handler; @@ -70,31 +69,31 @@ public: smc91c94_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; -extern const device_type SMC91C94; - class smc91c96_device : public smc91c9x_device { public: smc91c96_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; -extern const device_type SMC91C96; + +DECLARE_DEVICE_TYPE(SMC91C94, smc91c94_device) +DECLARE_DEVICE_TYPE(SMC91C96, smc91c96_device) + /*************************************************************************** DEVICE CONFIGURATION MACROS ***************************************************************************/ -#define MCFG_SMC91C94_ADD(_tag) \ - MCFG_DEVICE_ADD(_tag, SMC91C94, 0) - -#define MCFG_SMC91C94_IRQ_CALLBACK(_write) \ - devcb = &smc91c94_device::set_irq_callback(*device, DEVCB_##_write); +#define MCFG_SMC91C94_ADD(tag) \ + MCFG_DEVICE_ADD((tag), SMC91C94, 0) -#define MCFG_SMC91C96_ADD(_tag) \ - MCFG_DEVICE_ADD(_tag, SMC91C96, 0) +#define MCFG_SMC91C94_IRQ_CALLBACK(write) \ + devcb = &smc91c94_device::set_irq_callback(*device, DEVCB_##write); -#define MCFG_SMC91C96_IRQ_CALLBACK(_write) \ - devcb = &smc91c96_device::set_irq_callback(*device, DEVCB_##_write); +#define MCFG_SMC91C96_ADD(tag) \ + MCFG_DEVICE_ADD((tag), SMC91C96, 0) +#define MCFG_SMC91C96_IRQ_CALLBACK(write) \ + devcb = &smc91c96_device::set_irq_callback(*device, DEVCB_##write); -#endif +#endif // MAME_MACHINE_SMC91C9X_H diff --git a/src/devices/machine/sonydriv.cpp b/src/devices/machine/sonydriv.cpp index 64b09eebe90..c8d95b77672 100644 --- a/src/devices/machine/sonydriv.cpp +++ b/src/devices/machine/sonydriv.cpp @@ -33,8 +33,9 @@ *********************************************************************/ #include "emu.h" -#include "machine/applefdc.h" #include "sonydriv.h" + +#include "machine/applefdc.h" #include "formats/ap_dsk35.h" #include "imagedev/flopdrv.h" @@ -525,14 +526,14 @@ void sony_set_speed(int speed) } // device type definition -const device_type FLOPPY_SONY = device_creator; +DEFINE_DEVICE_TYPE(FLOPPY_SONY, sonydriv_floppy_image_device, "floppy_sonny", "Floppy Disk [Sony]") //------------------------------------------------- // sonydriv_floppy_image_device - constructor //------------------------------------------------- sonydriv_floppy_image_device::sonydriv_floppy_image_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : legacy_floppy_image_device(mconfig, FLOPPY_SONY, "Floppy Disk [Sony]", tag, owner, clock, "floppy_sonny", __FILE__) + : legacy_floppy_image_device(mconfig, FLOPPY_SONY, tag, owner, clock) { } diff --git a/src/devices/machine/sonydriv.h b/src/devices/machine/sonydriv.h index b382efd47bf..82404805a16 100644 --- a/src/devices/machine/sonydriv.h +++ b/src/devices/machine/sonydriv.h @@ -8,8 +8,10 @@ *********************************************************************/ -#ifndef SONYDRIV_H -#define SONYDRIV_H +#ifndef MAME_MACHINE_SONYDRIV_H +#define MAME_MACHINE_SONYDRIV_H + +#pragma once #include "imagedev/flopdrv.h" @@ -24,29 +26,30 @@ enum }; #endif -void sony_set_lines(device_t *device,uint8_t lines); -void sony_set_enable_lines(device_t *device,int enable_mask); -void sony_set_sel_line(device_t *device,int sel); +void sony_set_lines(device_t *device, uint8_t lines); +void sony_set_enable_lines(device_t *device, int enable_mask); +void sony_set_sel_line(device_t *device, int sel); void sony_set_speed(int speed); uint8_t sony_read_data(device_t *device); -void sony_write_data(device_t *device,uint8_t data); +void sony_write_data(device_t *device, uint8_t data); int sony_read_status(device_t *device); -class sonydriv_floppy_image_device : public legacy_floppy_image_device +class sonydriv_floppy_image_device : public legacy_floppy_image_device { public: // construction/destruction sonydriv_floppy_image_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual void call_unload() override; + protected: virtual void device_start() override; }; // device type definition -extern const device_type FLOPPY_SONY; +DECLARE_DEVICE_TYPE(FLOPPY_SONY, sonydriv_floppy_image_device) #define MCFG_LEGACY_FLOPPY_SONY_2_DRIVES_ADD(_config) \ MCFG_DEVICE_ADD(FLOPPY_0, FLOPPY_SONY, 0) \ @@ -66,6 +69,4 @@ extern const device_type FLOPPY_SONY; MCFG_DEVICE_MODIFY(FLOPPY_1) \ MCFG_LEGACY_FLOPPY_CONFIG(_config) - - -#endif /* SONYDRIV_H */ +#endif // MAME_MACHINE_SONYDRIV_H diff --git a/src/devices/machine/spchrom.cpp b/src/devices/machine/spchrom.cpp index 60396aca84e..3cd95b87c2e 100644 --- a/src/devices/machine/spchrom.cpp +++ b/src/devices/machine/spchrom.cpp @@ -23,10 +23,10 @@ #define TMS5220_ADDRESS_MASK 0x3FFFFUL /* 18-bit mask for tms5220 address */ // device type definition -const device_type SPEECHROM = device_creator; +DEFINE_DEVICE_TYPE(SPEECHROM, speechrom_device, "speechrom", "TI Speech ROM") speechrom_device::speechrom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, SPEECHROM, "SPEECHROM", tag, owner, clock, "speechrom", __FILE__), m_speechrom_data(nullptr), m_speechROMlen(0), + : device_t(mconfig, SPEECHROM, tag, owner, clock), m_speechrom_data(nullptr), m_speechROMlen(0), m_speechROMaddr(0), m_load_pointer(0), m_ROM_bits_count(0), diff --git a/src/devices/machine/spchrom.h b/src/devices/machine/spchrom.h index 62a881ad523..f84350da358 100644 --- a/src/devices/machine/spchrom.h +++ b/src/devices/machine/spchrom.h @@ -5,8 +5,10 @@ * */ -#ifndef __SPCHROMS_H -#define __SPCHROMS_H +#ifndef MAME_MACHINE_SPCHROM_H +#define MAME_MACHINE_SPCHROM_H + +#pragma once class speechrom_device : public device_t @@ -21,6 +23,7 @@ public: void read_and_branch(); void set_reverse_bit_order(bool reverse) { m_reverse = reverse; } +protected: // device-level overrides virtual void device_start() override; @@ -35,6 +38,6 @@ private: // device type definition -extern const device_type SPEECHROM; +DECLARE_DEVICE_TYPE(SPEECHROM, speechrom_device) -#endif +#endif // MAME_MACHINE_SPCHROM_H diff --git a/src/devices/machine/steppers.cpp b/src/devices/machine/steppers.cpp index 20a33cb27c9..b965fee8e9d 100644 --- a/src/devices/machine/steppers.cpp +++ b/src/devices/machine/steppers.cpp @@ -41,14 +41,14 @@ #include "emu.h" #include "steppers.h" -const device_type STEPPER = device_creator; +DEFINE_DEVICE_TYPE(STEPPER, stepper_device, "stepper", "Stepper Motor") stepper_device::stepper_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, STEPPER, "Stepper Motor", tag, owner, clock, "stepper", __FILE__), - m_optic_cb(*this) - { - m_max_steps=(48*2); - } + : device_t(mconfig, STEPPER, tag, owner, clock) + , m_optic_cb(*this) +{ + m_max_steps=(48*2); +} /////////////////////////////////////////////////////////////////////////// void stepper_device::update_optic() diff --git a/src/devices/machine/steppers.h b/src/devices/machine/steppers.h index 2f51c195507..40e675714db 100644 --- a/src/devices/machine/steppers.h +++ b/src/devices/machine/steppers.h @@ -12,8 +12,10 @@ /////////////////////////////////////////////////////////////////////////// -#ifndef INC_STEPPERS -#define INC_STEPPERS +#ifndef MAME_MACHINE_STEPPERS_H +#define MAME_MACHINE_STEPPERS_H + +#pragma once #define NOT_A_REEL 0 #define STARPOINT_48STEP_REEL 1 /* STARPOINT RMXXX reel unit */ @@ -95,42 +97,43 @@ #define MCFG_STEPPER_OPTIC_CALLBACK(_write) \ devcb = &stepper_device::set_optic_handler(*device, DEVCB_##_write); -class stepper_device; -extern const device_type STEPPER; +DECLARE_DEVICE_TYPE(STEPPER, stepper_device) class stepper_device : public device_t { public: stepper_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_optic_handler(device_t &device, _Object object) { return downcast(device).m_optic_cb.set_callback(object); } + template static devcb_base &set_optic_handler(device_t &device, Object &&cb) { return downcast(device).m_optic_cb.set_callback(std::forward(cb)); } static void set_reel_type(device_t &device, uint8_t type) { downcast(device).m_type = type; switch ( type ) - { default: - case STARPOINT_48STEP_REEL: /* STARPOINT RMxxx */ - case BARCREST_48STEP_REEL : /* Barcrest Reel unit */ - case MPU3_48STEP_REEL : - case GAMESMAN_48STEP_REEL : /* Gamesman GMxxxx */ - case PROJECT_48STEP_REEL : + { + default: + case STARPOINT_48STEP_REEL: /* STARPOINT RMxxx */ + case BARCREST_48STEP_REEL : /* Barcrest Reel unit */ + case MPU3_48STEP_REEL : + case GAMESMAN_48STEP_REEL : /* Gamesman GMxxxx */ + case PROJECT_48STEP_REEL : downcast(device).m_max_steps = (48*2); break; - case GAMESMAN_100STEP_REEL : + case GAMESMAN_100STEP_REEL : downcast(device).m_max_steps = (100*2); break; - case STARPOINT_144STEP_DICE :/* STARPOINT 1DCU DICE mechanism */ + case STARPOINT_144STEP_DICE :/* STARPOINT 1DCU DICE mechanism */ //Dice reels are 48 step motors, but complete three full cycles between opto updates downcast(device).m_max_steps = ((48*3)*2); break; - case STARPOINT_200STEP_REEL : - case GAMESMAN_200STEP_REEL : - case ECOIN_200STEP_REEL : + case STARPOINT_200STEP_REEL : + case GAMESMAN_200STEP_REEL : + case ECOIN_200STEP_REEL : downcast(device).m_max_steps = (200*2); break; } } + static void set_max_steps(device_t &device, int16_t steps) { downcast(device).m_max_steps = steps; } static void set_start_index(device_t &device, int16_t index) { downcast(device).m_index_start = index; } static void set_end_index(device_t &device, int16_t index) { downcast(device).m_index_end = index; } @@ -176,4 +179,4 @@ private: devcb_write_line m_optic_cb; }; -#endif +#endif // MAME_MACHINE_STEPPERS_H diff --git a/src/devices/machine/strata.cpp b/src/devices/machine/strata.cpp index 7b729614028..3f32b62739f 100644 --- a/src/devices/machine/strata.cpp +++ b/src/devices/machine/strata.cpp @@ -23,7 +23,6 @@ #include "emu.h" #include "strata.h" -#define MAX_STRATA 1 #define FEEPROM_SIZE 0x800000 // 64Mbit #define BLOCK_SIZE 0x020000 @@ -44,11 +43,11 @@ #define SET_BLOCKLOCK(block) (m_blocklock[(block) >> 3] |= 1 << ((block) & 7)) #define CLEAR_BLOCKLOCK(block) (m_blocklock[(block) >> 3] &= ~(1 << ((block) & 7))) -const device_type STRATAFLASH = device_creator; +DEFINE_DEVICE_TYPE(STRATAFLASH, strataflash_device, "strataflash", "Intel 28F640J5") strataflash_device::strataflash_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, STRATAFLASH, "Intel 28F640J5", tag, owner, clock, "strataflash", __FILE__), - device_nvram_interface(mconfig, *this) + : device_t(mconfig, STRATAFLASH, tag, owner, clock) + , device_nvram_interface(mconfig, *this) { } @@ -179,7 +178,7 @@ void strataflash_device::nvram_write(emu_file &file) //------------------------------------------------- // device_start - device-specific startup //------------------------------------------------- -void strataflash_device::device_start(void) +void strataflash_device::device_start() { m_mode = FM_NORMAL; m_status = 0x80; diff --git a/src/devices/machine/strata.h b/src/devices/machine/strata.h index d3957e610f6..450b0ebd201 100644 --- a/src/devices/machine/strata.h +++ b/src/devices/machine/strata.h @@ -1,8 +1,10 @@ // license:BSD-3-Clause // copyright-holders:Raphael Nabet, Michael Zapf -/* - strata.h: header file for strata.c -*/ +#ifndef MAME_MACHINE_STRATA_H +#define MAME_MACHINE_STRATA_H + +#pragma once + class strataflash_device : public device_t, public device_nvram_interface { @@ -67,7 +69,9 @@ private: uint8_t* m_prot_regs; // protection registers }; -extern const device_type STRATAFLASH; +DECLARE_DEVICE_TYPE(STRATAFLASH, strataflash_device) #define MCFG_STRATAFLASH_ADD(_tag) \ - MCFG_DEVICE_ADD(_tag, STRATAFLASH, 0) + MCFG_DEVICE_ADD(_tag, STRATAFLASH, 0) + +#endif // MAME_MACHINE_STRATA_H diff --git a/src/devices/machine/t10mmc.h b/src/devices/machine/t10mmc.h index a2598380a5f..83d55bb673e 100644 --- a/src/devices/machine/t10mmc.h +++ b/src/devices/machine/t10mmc.h @@ -6,8 +6,10 @@ t10mmc.h ***************************************************************************/ -#ifndef _T10MMC_H_ -#define _T10MMC_H_ +#ifndef MAME_MACHINE_T10MMC_H +#define MAME_MACHINE_T10MMC_H + +#pragma once #include "t10spc.h" #include "imagedev/chd_cd.h" @@ -68,4 +70,4 @@ protected: device_t *m_device; }; -#endif +#endif // MAME_MACHINE_T10MMC_H diff --git a/src/devices/machine/t10sbc.h b/src/devices/machine/t10sbc.h index 4c3c45c0393..fa0053e74f7 100644 --- a/src/devices/machine/t10sbc.h +++ b/src/devices/machine/t10sbc.h @@ -6,8 +6,10 @@ t10sbc.h ***************************************************************************/ -#ifndef _T10SBC_H_ -#define _T10SBC_H_ +#ifndef MAME_MACHINE_T10SBC_H +#define MAME_MACHINE_T10SBC_H + +#pragma once #include "t10spc.h" #include "imagedev/harddriv.h" @@ -39,4 +41,4 @@ protected: device_t *m_device; }; -#endif +#endif // MAME_MACHINE_T10SBC_H diff --git a/src/devices/machine/t10spc.h b/src/devices/machine/t10spc.h index bc17b11b4f0..254ce87a4c0 100644 --- a/src/devices/machine/t10spc.h +++ b/src/devices/machine/t10spc.h @@ -6,8 +6,10 @@ t10spc.h ***************************************************************************/ -#ifndef _T10SPC_H_ -#define _T10SPC_H_ +#ifndef MAME_MACHINE_T10SPC_H +#define MAME_MACHINE_T10SPC_H + +#pragma once class t10spc @@ -17,7 +19,7 @@ public: { } - virtual ~t10spc() {}; + virtual ~t10spc() { } virtual void SetDevice( void *device ) = 0; virtual void GetDevice( void **device ) = 0; @@ -138,4 +140,4 @@ protected: #define SCSI_PHASE_BUS_FREE ( 8 ) #define SCSI_PHASE_SELECT ( 9 ) -#endif +#endif // MAME_MACHINE_T10SPC_H diff --git a/src/devices/machine/tc009xlvc.cpp b/src/devices/machine/tc009xlvc.cpp index 10a9387a9c4..d85e1c6be35 100644 --- a/src/devices/machine/tc009xlvc.cpp +++ b/src/devices/machine/tc009xlvc.cpp @@ -17,7 +17,7 @@ #include "screen.h" -const device_type TC0091LVC = device_creator; +DEFINE_DEVICE_TYPE(TC0091LVC, tc0091lvc_device, "tc009xlvc", "Taito TC0091LVC") READ8_MEMBER(tc0091lvc_device::tc0091lvc_paletteram_r) @@ -168,7 +168,7 @@ static ADDRESS_MAP_START( tc0091lvc_map8, AS_0, 8, tc0091lvc_device ) ADDRESS_MAP_END tc0091lvc_device::tc0091lvc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, TC0091LVC, "Taito TC0091LVC", tag, owner, clock, "tc0091lvc", __FILE__) + : device_t(mconfig, TC0091LVC, tag, owner, clock) , device_memory_interface(mconfig, *this) , m_space_config("tc0091lvc", ENDIANNESS_LITTLE, 8,20, 0, nullptr, *ADDRESS_MAP_NAME(tc0091lvc_map8)) , m_gfxdecode(*this, finder_base::DUMMY_TAG) diff --git a/src/devices/machine/tc009xlvc.h b/src/devices/machine/tc009xlvc.h index 35c88edfbd5..2a4cb000c27 100644 --- a/src/devices/machine/tc009xlvc.h +++ b/src/devices/machine/tc009xlvc.h @@ -6,14 +6,13 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_MACHINE_TL009XLVC_H +#define MAME_MACHINE_TL009XLVC_H -#ifndef __ramdacDEV_H__ -#define __ramdacDEV_H__ +#pragma once -class tc0091lvc_device : public device_t, - public device_memory_interface +class tc0091lvc_device : public device_t, public device_memory_interface { public: tc0091lvc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); @@ -45,6 +44,15 @@ public: TILE_GET_INFO_MEMBER(get_bg1_tile_info); TILE_GET_INFO_MEMBER(get_tx_tile_info); + uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + void screen_eof(); + +protected: + virtual void device_start() override; + virtual const address_space_config *memory_space_config(address_spacenum spacenum) const override; + + void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, uint8_t global_flip); + uint8_t *m_pcg1_ram; uint8_t *m_pcg2_ram; uint8_t *m_vram0; @@ -66,21 +74,14 @@ public: uint8_t m_pcg_ram[0x10000]; uint8_t m_sprram_buffer[0x400]; - uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - void draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, uint8_t global_flip); - void screen_eof(void); - -protected: - virtual void device_start() override; - virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_0) const override; address_space_config m_space_config; required_device m_gfxdecode; }; -extern const device_type TC0091LVC; +DECLARE_DEVICE_TYPE(TC0091LVC, tc0091lvc_device) -#define MCFG_TC0091LVC_GFXDECODE(_gfxtag) \ - tc0091lvc_device::static_set_gfxdecode_tag(*device, "^" _gfxtag); +#define MCFG_TC0091LVC_GFXDECODE(gfxtag) \ + tc0091lvc_device::static_set_gfxdecode_tag(*device, ("^" gfxtag)); -#endif +#endif // MAME_MACHINE_TL009XLVC_H diff --git a/src/devices/machine/terminal.cpp b/src/devices/machine/terminal.cpp index 5a34a04a304..22ba422aab9 100644 --- a/src/devices/machine/terminal.cpp +++ b/src/devices/machine/terminal.cpp @@ -143,49 +143,52 @@ static const uint8_t terminal_font[256*16] = 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; -generic_terminal_device::generic_terminal_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source) +generic_terminal_device::generic_terminal_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, unsigned w, unsigned h) + : device_t(mconfig, type, tag, owner, clock) , m_palette(*this, "palette") , m_io_term_conf(*this, "TERM_CONF") + , m_width(w) + , m_height(h) + , m_buffer() , m_x_pos(0) , m_framecnt(0) , m_y_pos(0) , m_bell_timer(nullptr) , m_beeper(*this, "beeper") - , m_keyboard_cb(*this) + , m_keyboard_cb() { } generic_terminal_device::generic_terminal_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : generic_terminal_device(mconfig, GENERIC_TERMINAL, "Generic Terminal", tag, owner, clock, "generic_terminal", __FILE__) + : generic_terminal_device(mconfig, GENERIC_TERMINAL, tag, owner, clock, TERMINAL_WIDTH, TERMINAL_HEIGHT) { } void generic_terminal_device::scroll_line() { - memmove(m_buffer,m_buffer+TERMINAL_WIDTH,(TERMINAL_HEIGHT-1)*TERMINAL_WIDTH); - memset(m_buffer + TERMINAL_WIDTH*(TERMINAL_HEIGHT-1),0x20,TERMINAL_WIDTH); + memmove(m_buffer.get(), m_buffer.get() + m_width, (m_height - 1) * m_width); + memset(m_buffer.get() + (m_width * (m_height - 1)), 0x20, m_width); } void generic_terminal_device::write_char(uint8_t data) { - m_buffer[m_y_pos*TERMINAL_WIDTH+m_x_pos] = data; + m_buffer[m_y_pos*m_width+m_x_pos] = data; m_x_pos++; - if (m_x_pos >= TERMINAL_WIDTH) + if (m_x_pos >= m_width) { m_x_pos = 0; m_y_pos++; - if (m_y_pos >= TERMINAL_HEIGHT) + if (m_y_pos >= m_height) { scroll_line(); - m_y_pos = TERMINAL_HEIGHT-1; + m_y_pos = m_height-1; } } } void generic_terminal_device::clear() { - std::fill(std::begin(m_buffer), std::end(m_buffer), 0x20); + std::fill_n(m_buffer.get(), m_width * m_height, 0x20); m_x_pos = 0; m_y_pos = 0; } @@ -212,7 +215,7 @@ void generic_terminal_device::term_write(uint8_t data) break; case 0x09: // horizontal tab - m_x_pos = (std::min)((m_x_pos & 0xf8) + 8, TERMINAL_WIDTH - 1); + m_x_pos = (std::min)((m_x_pos & 0xf8) + 8, m_width - 1); break; case 0x0d: // carriage return @@ -221,10 +224,10 @@ void generic_terminal_device::term_write(uint8_t data) case 0x0a: // linefeed m_y_pos++; - if (m_y_pos >= TERMINAL_HEIGHT) + if (m_y_pos >= m_height) { scroll_line(); - m_y_pos = TERMINAL_HEIGHT - 1; + m_y_pos = m_height - 1; } if (options & 0x040) m_x_pos = 0; break; @@ -251,7 +254,7 @@ void generic_terminal_device::term_write(uint8_t data) uint32_t generic_terminal_device::update(screen_device &device, bitmap_rgb32 &bitmap, const rectangle &cliprect) { const uint16_t options = m_io_term_conf->read(); - uint16_t cursor = m_y_pos * TERMINAL_WIDTH + m_x_pos; + uint16_t cursor = m_y_pos * m_width + m_x_pos; uint8_t y,ra,chr,gfx; uint16_t sy=0,ma=0,x; @@ -271,13 +274,13 @@ uint32_t generic_terminal_device::update(screen_device &device, bitmap_rgb32 &bi m_framecnt++; - for (y = 0; y < TERMINAL_HEIGHT; y++) + for (y = 0; y < m_height; y++) { for (ra = 0; ra < 10; ra++) { uint32_t *p = &bitmap.pix32(sy++); - for (x = ma; x < ma + TERMINAL_WIDTH; x++) + for (x = ma; x < ma + m_width; x++) { chr = m_buffer[x]; gfx = terminal_font[(chr<<4) | ra ]; @@ -310,12 +313,12 @@ uint32_t generic_terminal_device::update(screen_device &device, bitmap_rgb32 &bi *p++ = (BIT( gfx, 0 ))?font_color:0; } } - ma += TERMINAL_WIDTH; + ma += m_width; } return 0; } -WRITE8_MEMBER( generic_terminal_device::kbd_put ) +void generic_terminal_device::kbd_put(u8 data) { if (m_io_term_conf->read() & 0x100) term_write(data); send_key(data); @@ -329,14 +332,14 @@ static MACHINE_CONFIG_FRAGMENT( generic_terminal ) MCFG_SCREEN_ADD_MONOCHROME(TERMINAL_SCREEN_TAG, RASTER, rgb_t::white()) MCFG_SCREEN_REFRESH_RATE(50) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_SIZE(TERMINAL_WIDTH*8, TERMINAL_HEIGHT*10) - MCFG_SCREEN_VISIBLE_AREA(0, TERMINAL_WIDTH*8-1, 0, TERMINAL_HEIGHT*10-1) + MCFG_SCREEN_SIZE(generic_terminal_device::TERMINAL_WIDTH*8, generic_terminal_device::TERMINAL_HEIGHT*10) + MCFG_SCREEN_VISIBLE_AREA(0, generic_terminal_device::TERMINAL_WIDTH*8-1, 0, generic_terminal_device::TERMINAL_HEIGHT*10-1) MCFG_SCREEN_UPDATE_DEVICE(DEVICE_SELF, generic_terminal_device, update) MCFG_PALETTE_ADD_MONOCHROME("palette") MCFG_DEVICE_ADD(KEYBOARD_TAG, GENERIC_KEYBOARD, 0) - MCFG_GENERIC_KEYBOARD_CB(WRITE8(generic_terminal_device, kbd_put)) + MCFG_GENERIC_KEYBOARD_CB(PUT(generic_terminal_device, kbd_put)) MCFG_SPEAKER_STANDARD_MONO("bell") MCFG_SOUND_ADD("beeper", BEEP, 2'000) @@ -350,9 +353,10 @@ machine_config_constructor generic_terminal_device::device_mconfig_additions() c void generic_terminal_device::device_start() { + m_buffer = std::make_unique(m_width * m_height); m_bell_timer = timer_alloc(BELL_TIMER_ID); - m_keyboard_cb.resolve_safe(); - save_item(NAME(m_buffer)); + m_keyboard_cb.bind_relative_to(*owner()); + save_pointer(NAME(m_buffer.get()), m_width * m_height); save_item(NAME(m_x_pos)); save_item(NAME(m_framecnt)); save_item(NAME(m_y_pos)); @@ -446,4 +450,4 @@ ioport_constructor generic_terminal_device::device_input_ports() const return INPUT_PORTS_NAME(generic_terminal); } -const device_type GENERIC_TERMINAL = device_creator; +DEFINE_DEVICE_TYPE(GENERIC_TERMINAL, generic_terminal_device, "generic_terminal", "Generic Terminal") diff --git a/src/devices/machine/terminal.h b/src/devices/machine/terminal.h index 47988d64138..dc430f2a83f 100644 --- a/src/devices/machine/terminal.h +++ b/src/devices/machine/terminal.h @@ -1,39 +1,44 @@ // license:BSD-3-Clause // copyright-holders:Miodrag Milanovic -#ifndef MAME_DEVICES_TERMINAL_H -#define MAME_DEVICES_TERMINAL_H +#ifndef MAME_MACHINE_TERMINAL_H +#define MAME_MACHINE_TERMINAL_H + +#pragma once #include "machine/keyboard.h" #include "sound/beep.h" + #define TERMINAL_SCREEN_TAG "terminal_screen" + /*************************************************************************** DEVICE CONFIGURATION MACROS ***************************************************************************/ -#define MCFG_GENERIC_TERMINAL_KEYBOARD_CB(_devcb) \ - devcb = &generic_terminal_device::set_keyboard_callback(*device, DEVCB_##_devcb); +#define MCFG_GENERIC_TERMINAL_KEYBOARD_CB(cb) \ + generic_terminal_device::set_keyboard_callback(*device, (KEYBOARDCB_##cb)); + /*************************************************************************** FUNCTION PROTOTYPES ***************************************************************************/ -#define TERMINAL_WIDTH 80 -#define TERMINAL_HEIGHT 24 - INPUT_PORTS_EXTERN( generic_terminal ); class generic_terminal_device : public device_t { public: - generic_terminal_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); + static constexpr unsigned TERMINAL_WIDTH = 80; + static constexpr unsigned TERMINAL_HEIGHT = 24; + generic_terminal_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_keyboard_callback(device_t &device, _Object object) { return downcast(device).m_keyboard_cb.set_callback(object); } + template static void set_keyboard_callback(device_t &device, Object &&cb) + { downcast(device).m_keyboard_cb = std::forward(cb); } DECLARE_WRITE8_MEMBER(write) { term_write(data); } - DECLARE_WRITE8_MEMBER(kbd_put); + void kbd_put(u8 data); uint32_t update(screen_device &device, bitmap_rgb32 &bitmap, const rectangle &cliprect); virtual ioport_constructor device_input_ports() const override; @@ -42,16 +47,20 @@ public: protected: enum { BELL_TIMER_ID = 20'000 }; + generic_terminal_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, unsigned w, unsigned h); + virtual void term_write(uint8_t data); virtual void device_start() override; virtual void device_reset() override; virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; - virtual void send_key(uint8_t code) { m_keyboard_cb((offs_t)0, code); } + virtual void send_key(uint8_t code) { m_keyboard_cb(code); } optional_device m_palette; required_ioport m_io_term_conf; - uint8_t m_buffer[TERMINAL_WIDTH * 50]; // make big enough for teleprinter + unsigned const m_width; + unsigned const m_height; + std::unique_ptr m_buffer; uint8_t m_x_pos; private: @@ -64,9 +73,9 @@ private: emu_timer *m_bell_timer; required_device m_beeper; - devcb_write8 m_keyboard_cb; + generic_keyboard_device::output_delegate m_keyboard_cb; }; -extern const device_type GENERIC_TERMINAL; +DECLARE_DEVICE_TYPE(GENERIC_TERMINAL, generic_terminal_device) -#endif /* MAME_DEVICES_TERMINAL_H */ +#endif // MAME_DEVICES_TERMINAL_H diff --git a/src/devices/machine/timekpr.cpp b/src/devices/machine/timekpr.cpp index d63b6984609..4269b3379ea 100644 --- a/src/devices/machine/timekpr.cpp +++ b/src/devices/machine/timekpr.cpp @@ -19,12 +19,12 @@ #include "machine/timehelp.h" // device type definition -const device_type M48T02 = device_creator; -const device_type M48T35 = device_creator; -const device_type M48T37 = device_creator; -const device_type M48T58 = device_creator; -const device_type MK48T08 = device_creator; -const device_type MK48T12 = device_creator; +DEFINE_DEVICE_TYPE(M48T02, m48t02_device, "m48t02", "M48T02 Timekeeper") +DEFINE_DEVICE_TYPE(M48T35, m48t35_device, "m48t35", "M48T35 Timekeeper") +DEFINE_DEVICE_TYPE(M48T37, m48t37_device, "m48t37", "M48T37 Timekeeper") +DEFINE_DEVICE_TYPE(M48T58, m48t58_device, "m48t58", "M48T58 Timekeeper") +DEFINE_DEVICE_TYPE(MK48T08, mk48t08_device, "mk48t08", "MK48T08 Timekeeper") +DEFINE_DEVICE_TYPE(MK48T12, mk48t12_device, "mk48t12", "MK48T12 Timekeeper") /*************************************************************************** @@ -88,8 +88,8 @@ static int counter_from_ram( uint8_t *data, int offset ) // timekeeper_device_config - constructor //------------------------------------------------- -timekeeper_device::timekeeper_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source, int size) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source) +timekeeper_device::timekeeper_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int size) + : device_t(mconfig, type, tag, owner, clock) , device_nvram_interface(mconfig, *this) , m_default_data(*this, DEVICE_SELF, size) , m_size(size) @@ -97,7 +97,7 @@ timekeeper_device::timekeeper_device(const machine_config &mconfig, device_type } m48t02_device::m48t02_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : timekeeper_device(mconfig, M48T02, "M48T02 Timekeeper", tag, owner, clock, "m48t02", __FILE__, 0x800) + : timekeeper_device(mconfig, M48T02, tag, owner, clock, 0x800) { m_offset_control = 0x7f8; m_offset_seconds = 0x7f9; @@ -112,7 +112,7 @@ m48t02_device::m48t02_device(const machine_config &mconfig, const char *tag, dev } m48t35_device::m48t35_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : timekeeper_device(mconfig, M48T35, "M48T35 Timekeeper", tag, owner, clock, "m48t35", __FILE__, 0x8000) + : timekeeper_device(mconfig, M48T35, tag, owner, clock, 0x8000) { m_offset_control = 0x7ff8; m_offset_seconds = 0x7ff9; @@ -127,7 +127,7 @@ m48t35_device::m48t35_device(const machine_config &mconfig, const char *tag, dev } m48t37_device::m48t37_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : timekeeper_device(mconfig, M48T37, "M48T37 Timekeeper", tag, owner, clock, "m48t37", __FILE__, 0x8000) + : timekeeper_device(mconfig, M48T37, tag, owner, clock, 0x8000) { m_offset_control = 0x7ff8; m_offset_seconds = 0x7ff9; @@ -142,7 +142,7 @@ m48t37_device::m48t37_device(const machine_config &mconfig, const char *tag, dev } m48t58_device::m48t58_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : timekeeper_device(mconfig, M48T58, "M48T58 Timekeeper", tag, owner, clock, "m48t58", __FILE__, 0x2000) + : timekeeper_device(mconfig, M48T58, tag, owner, clock, 0x2000) { m_offset_control = 0x1ff8; m_offset_seconds = 0x1ff9; @@ -157,7 +157,7 @@ m48t58_device::m48t58_device(const machine_config &mconfig, const char *tag, dev } mk48t08_device::mk48t08_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : timekeeper_device(mconfig, MK48T08, "MK48T08 Timekeeper", tag, owner, clock, "m48t08", __FILE__, 0x2000) + : timekeeper_device(mconfig, MK48T08, tag, owner, clock, 0x2000) { m_offset_control = 0x1ff8; m_offset_seconds = 0x1ff9; @@ -172,7 +172,7 @@ mk48t08_device::mk48t08_device(const machine_config &mconfig, const char *tag, d } mk48t12_device::mk48t12_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : timekeeper_device(mconfig, MK48T12, "MK48T12 Timekeeper", tag, owner, clock, "m48t12", __FILE__, 0x2000) + : timekeeper_device(mconfig, MK48T12, tag, owner, clock, 0x2000) { m_offset_control = 0x7f8; m_offset_seconds = 0x7f9; diff --git a/src/devices/machine/timekpr.h b/src/devices/machine/timekpr.h index 87fb03d1771..63e2e3374ce 100644 --- a/src/devices/machine/timekpr.h +++ b/src/devices/machine/timekpr.h @@ -14,10 +14,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_MACHINE_TIMEKPR_H +#define MAME_MACHINE_TIMEKPR_H -#ifndef __TIMEKPR_H__ -#define __TIMEKPR_H__ +#pragma once @@ -53,18 +53,16 @@ // ======================> timekeeper_device -class timekeeper_device : public device_t, - public device_nvram_interface +class timekeeper_device : public device_t, public device_nvram_interface { -protected: - // construction/destruction - timekeeper_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source, int size); - public: DECLARE_WRITE8_MEMBER( write ); DECLARE_READ8_MEMBER( read ); protected: + // construction/destruction + timekeeper_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int size); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -94,7 +92,7 @@ private: optional_region_ptr m_default_data; protected: - int m_size; + int const m_size; int m_offset_control; int m_offset_seconds; int m_offset_minutes; @@ -144,11 +142,11 @@ public: }; // device type definition -extern const device_type M48T02; -extern const device_type M48T35; -extern const device_type M48T37; -extern const device_type M48T58; -extern const device_type MK48T08; -extern const device_type MK48T12; - -#endif // __TIMEKPR_H__ +DECLARE_DEVICE_TYPE(M48T02, m48t02_device) +DECLARE_DEVICE_TYPE(M48T35, m48t35_device) +DECLARE_DEVICE_TYPE(M48T37, m48t37_device) +DECLARE_DEVICE_TYPE(M48T58, m48t58_device) +DECLARE_DEVICE_TYPE(MK48T08, mk48t08_device) +DECLARE_DEVICE_TYPE(MK48T12, mk48t12_device) + +#endif // MAME_MACHINE_TIMEKPR_H diff --git a/src/devices/machine/tmc0430.cpp b/src/devices/machine/tmc0430.cpp index d3adcb1a5b1..70b0c5e539e 100644 --- a/src/devices/machine/tmc0430.cpp +++ b/src/devices/machine/tmc0430.cpp @@ -104,7 +104,7 @@ Constructor. */ tmc0430_device::tmc0430_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, TMC0430, "TMC0430 device (GROM)", tag, owner, clock, "grom", __FILE__), + : device_t(mconfig, TMC0430, tag, owner, clock), m_gromready(*this), m_current_clock_level(CLEAR_LINE), m_current_ident(0), @@ -334,7 +334,7 @@ WRITE8_MEMBER( tmc0430_device::write ) DEVICE FUNCTIONS ***************************************************************************/ -void tmc0430_device::device_start(void) +void tmc0430_device::device_start() { m_gromready.resolve_safe(); save_item(NAME(m_current_clock_level)); @@ -348,7 +348,7 @@ void tmc0430_device::device_start(void) save_item(NAME(m_buffer)); } -void tmc0430_device::device_reset(void) +void tmc0430_device::device_reset() { // The memory region must be defined in the owning component m_memptr = owner()->memregion(m_regionname)->base() + m_offset; @@ -363,4 +363,4 @@ int tmc0430_device::debug_get_address() return m_address; } -const device_type TMC0430 = device_creator; +DEFINE_DEVICE_TYPE(TMC0430, tmc0430_device, "grom", "TMC0430 GROM") diff --git a/src/devices/machine/tmc0430.h b/src/devices/machine/tmc0430.h index f0ae99b8d06..a090ae7b0a6 100644 --- a/src/devices/machine/tmc0430.h +++ b/src/devices/machine/tmc0430.h @@ -10,8 +10,10 @@ February 2012: Rewritten as class ***************************************************************************/ -#ifndef __TMC0430__ -#define __TMC0430__ +#ifndef MAME_MACHINE_TMC0430_H +#define MAME_MACHINE_TMC0430_H + +#pragma once extern const device_type TMC0430; @@ -31,7 +33,7 @@ class tmc0430_device : public device_t public: tmc0430_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_ready_wr_callback(device_t &device, _Object object) { return downcast(device).m_gromready.set_callback(object); } + template static devcb_base &set_ready_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_gromready.set_callback(std::forward(cb)); } DECLARE_READ8Z_MEMBER(readz); DECLARE_WRITE8_MEMBER(write); @@ -57,8 +59,8 @@ public: bool idle() { return (m_phase == 0 && m_current_clock_level==CLEAR_LINE); } protected: - void device_start(void) override; - void device_reset(void) override; + void device_start() override; + void device_reset() override; private: // Ready callback. This line is usually connected to the READY pin of the CPU. @@ -107,8 +109,8 @@ private: }; #define MCFG_GROM_ADD(_tag, _ident, _region, _offset, _ready) \ - MCFG_DEVICE_ADD(_tag, TMC0430, 0) \ - tmc0430_device::set_region_and_ident(*device, _region, _offset, _ident); \ - tmc0430_device::set_ready_wr_callback(*device, DEVCB_##_ready); + MCFG_DEVICE_ADD(_tag, TMC0430, 0) \ + tmc0430_device::set_region_and_ident(*device, _region, _offset, _ident); \ + tmc0430_device::set_ready_wr_callback(*device, DEVCB_##_ready); -#endif +#endif // MAME_MACHINE_TMC0430_H diff --git a/src/devices/machine/tmp68301.cpp b/src/devices/machine/tmp68301.cpp index 3a4f5e47ebf..3f5b22e8bf7 100644 --- a/src/devices/machine/tmp68301.cpp +++ b/src/devices/machine/tmp68301.cpp @@ -19,7 +19,7 @@ #include "emu.h" #include "machine/tmp68301.h" -const device_type TMP68301 = device_creator; +DEFINE_DEVICE_TYPE(TMP68301, tmp68301_device, "tmp68301", "Toshiba TMP68301") static ADDRESS_MAP_START( tmp68301_regs, AS_0, 16, tmp68301_device ) // AM_RANGE(0x000,0x3ff) AM_RAM @@ -100,7 +100,7 @@ WRITE16_MEMBER(tmp68301_device::pdr_w) tmp68301_device::tmp68301_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, TMP68301, "TMP68301", tag, owner, clock, "tmp68301", __FILE__), + : device_t(mconfig, TMP68301, tag, owner, clock), device_memory_interface(mconfig, *this), m_in_parallel_cb(*this), m_out_parallel_cb(*this), diff --git a/src/devices/machine/tmp68301.h b/src/devices/machine/tmp68301.h index 7d83089e94c..facb06a9e65 100644 --- a/src/devices/machine/tmp68301.h +++ b/src/devices/machine/tmp68301.h @@ -1,18 +1,20 @@ // license:BSD-3-Clause // copyright-holders:Luca Elia -#ifndef TMP68301_H -#define TMP68301_H +#ifndef MAME_MACHINE_TMP68301_H +#define MAME_MACHINE_TMP68301_H + +#pragma once //************************************************************************** // INTERFACE CONFIGURATION MACROS //************************************************************************** /* TODO: serial ports, frequency & hook it up with m68k */ -#define MCFG_TMP68301_IN_PARALLEL_CB(_devcb) \ - devcb = &tmp68301_device::set_in_parallel_callback(*device, DEVCB_##_devcb); +#define MCFG_TMP68301_IN_PARALLEL_CB(cb) \ + devcb = &tmp68301_device::set_in_parallel_callback(*device, (DEVCB_##cb)); -#define MCFG_TMP68301_OUT_PARALLEL_CB(_devcb) \ - devcb = &tmp68301_device::set_out_parallel_callback(*device, DEVCB_##_devcb); +#define MCFG_TMP68301_OUT_PARALLEL_CB(cb) \ + devcb = &tmp68301_device::set_out_parallel_callback(*device, (DEVCB_##cb)); //************************************************************************** @@ -26,10 +28,9 @@ class tmp68301_device : public device_t, { public: tmp68301_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~tmp68301_device() {} - template static devcb_base &set_in_parallel_callback(device_t &device, _Object object) { return downcast(device).m_in_parallel_cb.set_callback(object); } - template static devcb_base &set_out_parallel_callback(device_t &device, _Object object) { return downcast(device).m_out_parallel_cb.set_callback(object); } + template static devcb_base &set_in_parallel_callback(device_t &device, Object &&cb) { return downcast(device).m_in_parallel_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_parallel_callback(device_t &device, Object &&cb) { return downcast(device).m_out_parallel_cb.set_callback(std::forward(cb)); } // Hardware Registers DECLARE_READ16_MEMBER( regs_r ); @@ -52,13 +53,21 @@ public: DECLARE_WRITE16_MEMBER(pdir_w); IRQ_CALLBACK_MEMBER(irq_callback); + protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; - virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_0) const override; + virtual const address_space_config *memory_space_config(address_spacenum spacenum) const override; private: + TIMER_CALLBACK_MEMBER( timer_callback ); + void update_timer( int i ); + void update_irq_state(); + + inline uint16_t read_word(offs_t address); + inline void write_word(offs_t address, uint16_t data); + devcb_read16 m_in_parallel_cb; devcb_write16 m_out_parallel_cb; @@ -70,21 +79,15 @@ private: uint16_t m_irq_vector[8]; - TIMER_CALLBACK_MEMBER( timer_callback ); - void update_timer( int i ); - void update_irq_state(); - uint16_t m_imr; uint16_t m_iisr; uint16_t m_scr; uint16_t m_pdir; uint16_t m_pdr; - inline uint16_t read_word(offs_t address); - inline void write_word(offs_t address, uint16_t data); const address_space_config m_space_config; }; -extern const device_type TMP68301; +DECLARE_DEVICE_TYPE(TMP68301, tmp68301_device) -#endif +#endif // MAME_MACHINE_TMP68301_H diff --git a/src/devices/machine/tms1024.cpp b/src/devices/machine/tms1024.cpp index c3447a0f5a4..596699cef69 100644 --- a/src/devices/machine/tms1024.cpp +++ b/src/devices/machine/tms1024.cpp @@ -17,27 +17,28 @@ #include "machine/tms1024.h" -const device_type TMS1024 = device_creator; -const device_type TMS1025 = device_creator; +DEFINE_DEVICE_TYPE(TMS1024, tms1024_device, "tms1024", "TMS1024 I/O Expander") +DEFINE_DEVICE_TYPE(TMS1025, tms1025_device, "tms1025", "TMS1025 I/O Expander") //------------------------------------------------- // constructor //------------------------------------------------- -tms1024_device::tms1024_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, u32 clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), m_h(0), m_s(0), m_std(0), m_ms(0), - m_read_port{{*this}, {*this}, {*this}, {*this}, {*this}, {*this}, {*this}}, - m_write_port{{*this}, {*this}, {*this}, {*this}, {*this}, {*this}, {*this}} +tms1024_device::tms1024_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock) + : device_t(mconfig, type, tag, owner, clock) + , m_h(0), m_s(0), m_std(0), m_ms(0) + , m_read_port{{*this}, {*this}, {*this}, {*this}, {*this}, {*this}, {*this}} + , m_write_port{{*this}, {*this}, {*this}, {*this}, {*this}, {*this}, {*this}} { } tms1024_device::tms1024_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : tms1024_device(mconfig, TMS1024, "TMS1024 I/O Expander", tag, owner, clock, "tms1024", __FILE__) + : tms1024_device(mconfig, TMS1024, tag, owner, clock) { } tms1025_device::tms1025_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : tms1024_device(mconfig, TMS1025, "TMS1025 I/O Expander", tag, owner, clock, "tms1025", __FILE__) + : tms1024_device(mconfig, TMS1025, tag, owner, clock) { } @@ -107,8 +108,8 @@ WRITE_LINE_MEMBER(tms1024_device::write_std) else { // reset all ports - for (int i = TMS1025_PORT1; i <= TMS1025_PORT7; i++) - (m_write_port[i])((offs_t)(i), 0); + for (int i = PORT1; i <= PORT7; i++) + (m_write_port[i])(offs_t(i), 0); } } diff --git a/src/devices/machine/tms1024.h b/src/devices/machine/tms1024.h index 89f6139a786..fec6685c42d 100644 --- a/src/devices/machine/tms1024.h +++ b/src/devices/machine/tms1024.h @@ -6,8 +6,10 @@ */ -#ifndef _TMS1024_H_ -#define _TMS1024_H_ +#ifndef MAME_MACHINE_TMS1024_H +#define MAME_MACHINE_TMS1024_H + +#pragma once @@ -15,22 +17,10 @@ // 4-bit ports (3210 = DCBA) // valid ports: 4-7 for TMS1024, 1-7 for TMS1025 -#define MCFG_TMS1025_READ_PORT_CB(X, _devcb) \ - devcb = &tms1024_device::set_read_port_callback(*device, X, DEVCB_##_devcb); -#define MCFG_TMS1025_WRITE_PORT_CB(X, _devcb) \ - devcb = &tms1024_device::set_write_port_callback(*device, X, DEVCB_##_devcb); - -enum -{ - TMS1025_PORT1 = 0, - TMS1025_PORT2, - TMS1025_PORT3, - TMS1025_PORT4, - TMS1025_PORT5, - TMS1025_PORT6, - TMS1025_PORT7 -}; - +#define MCFG_TMS1025_READ_PORT_CB(X, cb) \ + devcb = &tms1024_device::set_read_port_callback<(tms1024_device::X)>(*device, (DEVCB_##cb)); +#define MCFG_TMS1025_WRITE_PORT_CB(X, cb) \ + devcb = &tms1024_device::set_write_port_callback<(tms1024_device::X)>(*device, (DEVCB_##cb)); // pinout reference @@ -65,19 +55,27 @@ enum class tms1024_device : public device_t { public: + enum + { + PORT1 = 0, + PORT2, + PORT3, + PORT4, + PORT5, + PORT6, + PORT7 + }; + tms1024_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); - tms1024_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, u32 clock, const char *shortname, const char *source); // static configuration helpers - template static devcb_base &set_read_port_callback(device_t &device, int port, _Object &&object) + template static devcb_base &set_read_port_callback(device_t &device, Object &&cb) { - assert(port >= TMS1025_PORT1 && port <= TMS1025_PORT7); - return downcast(device).m_read_port[port].set_callback(std::forward<_Object>(object)); + return downcast(device).m_read_port[N].set_callback(std::forward(cb)); } - template static devcb_base &set_write_port_callback(device_t &device, int port, _Object &&object) + template static devcb_base &set_write_port_callback(device_t &device, Object &&cb) { - assert(port >= TMS1025_PORT1 && port <= TMS1025_PORT7); - return downcast(device).m_write_port[port].set_callback(std::forward<_Object>(object)); + return downcast(device).m_write_port[N].set_callback(std::forward(cb)); } DECLARE_WRITE8_MEMBER(write_h); @@ -87,6 +85,8 @@ public: DECLARE_WRITE_LINE_MEMBER(write_ms); protected: + tms1024_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock); + // device-level overrides virtual void device_start() override; @@ -109,8 +109,7 @@ public: -extern const device_type TMS1024; -extern const device_type TMS1025; - +DECLARE_DEVICE_TYPE(TMS1024, tms1024_device) +DECLARE_DEVICE_TYPE(TMS1025, tms1025_device) -#endif /* _TMS1024_H_ */ +#endif // MAME_MACHINE_TMS1024_H diff --git a/src/devices/machine/tms5501.cpp b/src/devices/machine/tms5501.cpp index 70e9ab0ebb8..d5c75012e7c 100644 --- a/src/devices/machine/tms5501.cpp +++ b/src/devices/machine/tms5501.cpp @@ -27,7 +27,7 @@ const uint8_t tms5501_device::rst_vector[] = { 0xc7, 0xcf, 0xd7, 0xdf, 0xe7, 0xe //************************************************************************** // device type definition -const device_type TMS5501 = device_creator; +DEFINE_DEVICE_TYPE(TMS5501, tms5501_device, "tms5501", "TMS5501 Multifunction I/O") // I/O address map @@ -55,7 +55,7 @@ ADDRESS_MAP_END //------------------------------------------------- tms5501_device::tms5501_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, TMS5501, "TMS5501", tag, owner, clock, "tms5501", __FILE__), + device_t(mconfig, TMS5501, tag, owner, clock), device_serial_interface(mconfig, *this), m_write_irq(*this), m_write_xmt(*this), diff --git a/src/devices/machine/tms5501.h b/src/devices/machine/tms5501.h index 746082f07a5..b403b32b43d 100644 --- a/src/devices/machine/tms5501.h +++ b/src/devices/machine/tms5501.h @@ -29,10 +29,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_MACHINE_TMS5501_H +#define MAME_MACHINE_TMS5501_H -#ifndef __TMS5501__ -#define __TMS5501__ +#pragma once @@ -68,10 +68,10 @@ public: // construction/destruction tms5501_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_irq_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_irq.set_callback(object); } - template static devcb_base &set_xmt_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_xmt.set_callback(object); } - template static devcb_base &set_xi_rd_callback(device_t &device, _Object object) { return downcast(device).m_read_xi.set_callback(object); } - template static devcb_base &set_xo_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_xo.set_callback(object); } + template static devcb_base &set_irq_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_irq.set_callback(std::forward(cb)); } + template static devcb_base &set_xmt_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_xmt.set_callback(std::forward(cb)); } + template static devcb_base &set_xi_rd_callback(device_t &device, Object &&cb) { return downcast(device).m_read_xi.set_callback(std::forward(cb)); } + template static devcb_base &set_xo_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_xo.set_callback(std::forward(cb)); } virtual DECLARE_ADDRESS_MAP(io_map, 8); @@ -188,7 +188,6 @@ private: // device type definition extern const device_type TMS5501; +DECLARE_DEVICE_TYPE(TMS5501, tms5501_device) - - -#endif +#endif // MAME_MACHINE_TMS5501_H diff --git a/src/devices/machine/tms6100.cpp b/src/devices/machine/tms6100.cpp index 2ffc32d1638..d2fb40cef36 100644 --- a/src/devices/machine/tms6100.cpp +++ b/src/devices/machine/tms6100.cpp @@ -26,28 +26,26 @@ // device definitions -const device_type TMS6100 = device_creator; +DEFINE_DEVICE_TYPE(TMS6100, tms6100_device, "tms6100", "TMS6100 VSM") +DEFINE_DEVICE_TYPE(M58819, m58819_device, "m58819s", "M68819S") -tms6100_device::tms6100_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, u32 clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), - m_rom(*this, DEVICE_SELF), - m_reverse_bits(false), - m_4bit_mode(false) + +tms6100_device::tms6100_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock) + : device_t(mconfig, type, tag, owner, clock) + , m_rom(*this, DEVICE_SELF) + , m_reverse_bits(false) + , m_4bit_mode(false) { } tms6100_device::tms6100_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : device_t(mconfig, TMS6100, "TMS6100", tag, owner, clock, "tms6100", __FILE__), - m_rom(*this, DEVICE_SELF), - m_reverse_bits(false), - m_4bit_mode(false) + : tms6100_device(mconfig, TMS6100, tag, owner, clock) { } -const device_type M58819 = device_creator; m58819_device::m58819_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : tms6100_device(mconfig, M58819, "M58819S", tag, owner, clock, "m58819s", __FILE__) + : tms6100_device(mconfig, M58819, tag, owner, clock) { } diff --git a/src/devices/machine/tms6100.h b/src/devices/machine/tms6100.h index 6e9de083875..ec1f3b9817c 100644 --- a/src/devices/machine/tms6100.h +++ b/src/devices/machine/tms6100.h @@ -6,8 +6,10 @@ ***********************************************************************************************/ -#ifndef __TMS6100_H__ -#define __TMS6100_H__ +#ifndef MAME_MACHINE_TMS6100_H +#define MAME_MACHINE_TMS6100_H + +#pragma once @@ -19,7 +21,7 @@ // note: in 4-bit mode, use data_r, otherwise use data_line_r #define MCFG_TMS6100_4BIT_MODE() \ - tms6100_device::enable_4bit_mode(*device); + tms6100_device::enable_4bit_mode(*device); // pinout reference @@ -94,7 +96,6 @@ class tms6100_device : public device_t { public: tms6100_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); - tms6100_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, u32 clock, const char *shortname, const char *source); static void enable_4bit_mode(device_t &device) { downcast(device).m_4bit_mode = true; } @@ -109,6 +110,8 @@ public: DECLARE_READ_LINE_MEMBER(data_line_r); protected: + tms6100_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock); + // device-level overrides virtual void device_start() override; @@ -147,8 +150,7 @@ protected: }; -extern const device_type TMS6100; -extern const device_type M58819; - +DECLARE_DEVICE_TYPE(TMS6100, tms6100_device) +DECLARE_DEVICE_TYPE(M58819, m58819_device) -#endif /* __TMS6100_H__ */ +#endif // MAME_MACHINE_TMS6100_H diff --git a/src/devices/machine/tms9901.cpp b/src/devices/machine/tms9901.cpp index c27d790d375..b0d557b3abf 100644 --- a/src/devices/machine/tms9901.cpp +++ b/src/devices/machine/tms9901.cpp @@ -119,40 +119,31 @@ TODO: Tests on a real machine *****************************************************************************/ -#include #include "emu.h" - #include "tms9901.h" -/* - Debugging flags. -*/ -#define TRACE_PINS 0 -#define TRACE_CLOCK 0 -#define TRACE_MODE 0 +#include + +#define LOG_GENERAL (1U << 0) +#define LOG_PINS (1U << 1) +#define LOG_CLOCK (1U << 2) +#define LOG_MODE (1U << 3) + +//#define VERBOSE (LOG_PINS | LOG_CLOCK | LOG_MODE) +#include "logmacro.h" + +#define LOGPINS(...) LOGMASKED(LOG_PINS, __VA_ARGS__) +#define LOGCLOCK(...) LOGMASKED(LOG_CLOCK, __VA_ARGS__) +#define LOGMODE(...) LOGMASKED(LOG_MODE, __VA_ARGS__) + /* Constructor */ tms9901_device::tms9901_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) -: device_t(mconfig, TMS9901, "TMS9901 Programmable System Interface", tag, owner, clock, "tms9901", __FILE__), +: device_t(mconfig, TMS9901, tag, owner, clock), m_read_block(*this), - m_write_p0(*this), - m_write_p1(*this), - m_write_p2(*this), - m_write_p3(*this), - m_write_p4(*this), - m_write_p5(*this), - m_write_p6(*this), - m_write_p7(*this), - m_write_p8(*this), - m_write_p9(*this), - m_write_p10(*this), - m_write_p11(*this), - m_write_p12(*this), - m_write_p13(*this), - m_write_p14(*this), - m_write_p15(*this), + m_write_p{{*this},{*this},{*this},{*this},{*this},{*this},{*this},{*this},{*this},{*this},{*this},{*this},{*this},{*this},{*this},{*this}}, m_interrupt(*this) { } @@ -160,7 +151,7 @@ tms9901_device::tms9901_device(const machine_config &mconfig, const char *tag, d /* should be called after any change to int_state or enabled_ints. */ -void tms9901_device::field_interrupts(void) +void tms9901_device::field_interrupts() { int current_ints; @@ -171,13 +162,13 @@ void tms9901_device::field_interrupts(void) // if timer is enabled, INT3 pin is overridden by timer if (m_timer_int_pending) { - if (TRACE_CLOCK) logerror("%s: timer fires\n", tag()); - current_ints |= TMS9901_INT3; + LOGCLOCK("timer fires\n"); + current_ints |= INT3; } else { - if (TRACE_CLOCK) logerror("%s: timer clear\n", tag()); - current_ints &= ~TMS9901_INT3; + LOGCLOCK("timer clear\n"); + current_ints &= ~INT3; } } @@ -241,7 +232,7 @@ void tms9901_device::set_single_int(int pin_number, int state) /* load the content of m_clock_register into the decrementer */ -void tms9901_device::timer_reload(void) +void tms9901_device::timer_reload() { if (m_clock_register != 0) { /* reset clock interval */ @@ -292,7 +283,7 @@ READ8_MEMBER( tms9901_device::read ) // INTx levels that have been signaled via the set_single_int method. // This may mean that those levels must be latched by the callee. if (!m_read_block.isnull()) - answer |= m_read_block(TMS9901_CB_INT7); + answer |= m_read_block(CB_INT7); // Remove the bits that are set as outputs (can only be INT7*) answer &= ~m_pio_direction_mirror; @@ -300,7 +291,7 @@ READ8_MEMBER( tms9901_device::read ) // Set those bits here answer |= (m_pio_output_mirror & m_pio_direction_mirror) & 0xFF; } - if (TRACE_PINS) logerror("%s: input on lines INT7..CB = %02x\n", tag(), answer); + LOGPINS("input on lines INT7..CB = %02x\n", answer); break; case 1: if (m_clock_mode) @@ -314,13 +305,13 @@ READ8_MEMBER( tms9901_device::read ) { // See above concerning the INT levels. if (!m_read_block.isnull()) - answer |= m_read_block(TMS9901_INT8_INT15); + answer |= m_read_block(INT8_INT15); // Remove the bits that are set as outputs (can be any line) answer &= ~(m_pio_direction_mirror >> 8); answer |= (m_pio_output_mirror & m_pio_direction_mirror) >> 8; } - if (TRACE_PINS) logerror("%s: input on lines INT15..int8_t = %02x\n", tag(), answer); + LOGPINS("input on lines INT15..int8_t = %02x\n", answer); break; case 2: /* exit timer mode */ @@ -328,26 +319,26 @@ READ8_MEMBER( tms9901_device::read ) // m_clock_mode = false; if (!m_read_block.isnull()) - answer = m_read_block(TMS9901_P0_P7); + answer = m_read_block(P0_P7); else answer = 0; answer &= ~m_pio_direction; answer |= (m_pio_output & m_pio_direction) & 0xFF; - if (TRACE_PINS) logerror("%s: input on lines P7..P0 = %02x\n", tag(), answer); + LOGPINS("input on lines P7..P0 = %02x\n", answer); break; case 3: // MZ: see above // m_clock_mode = false; if (!m_read_block.isnull()) - answer = m_read_block(TMS9901_P8_P15); + answer = m_read_block(P8_P15); else answer = 0; answer &= ~(m_pio_direction >> 8); answer |= (m_pio_output & m_pio_direction) >> 8; - if (TRACE_PINS) logerror("%s: input on lines P15..P8 = %02x\n", tag(), answer); + LOGPINS("input on lines P15..P8 = %02x\n", answer); break; } @@ -376,7 +367,7 @@ WRITE8_MEMBER ( tms9901_device::write ) if (offset >= 0x10) { int pin = offset & 0x0F; - if (TRACE_PINS) logerror("%s: output on P%d = %d\n", tag(), pin, data); + LOGPINS("output on P%d = %d\n", pin, data); int bit = (1 << pin); @@ -408,74 +399,21 @@ WRITE8_MEMBER ( tms9901_device::write ) m_pio_output_mirror &= ~mirror_bit; } - switch (offset) - { - case 0x10: - if (!m_write_p0.isnull()) m_write_p0(data); - break; - case 0x11: - if (!m_write_p1.isnull()) m_write_p1(data); - break; - case 0x12: - if (!m_write_p2.isnull()) m_write_p2(data); - break; - case 0x13: - if (!m_write_p3.isnull()) m_write_p3(data); - break; - case 0x14: - if (!m_write_p4.isnull()) m_write_p4(data); - break; - case 0x15: - if (!m_write_p5.isnull()) m_write_p5(data); - break; - case 0x16: - if (!m_write_p6.isnull()) m_write_p6(data); - break; - case 0x17: - if (!m_write_p7.isnull()) m_write_p7(data); - break; - case 0x18: - if (!m_write_p8.isnull()) m_write_p8(data); - break; - case 0x19: - if (!m_write_p9.isnull()) m_write_p9(data); - break; - case 0x1A: - if (!m_write_p10.isnull()) m_write_p10(data); - break; - case 0x1B: - if (!m_write_p11.isnull()) m_write_p11(data); - break; - case 0x1C: - if (!m_write_p12.isnull()) m_write_p12(data); - break; - case 0x1D: - if (!m_write_p13.isnull()) m_write_p13(data); - break; - case 0x1E: - if (!m_write_p14.isnull()) m_write_p14(data); - break; - case 0x1F: - if (!m_write_p15.isnull()) m_write_p15(data); - break; - - } - return; + m_write_p[offset - 0x10](data); } - - if (offset == 0) + else if (offset == 0) { // Write to control bit (CB) if (data == 0) { // Switch to interrupt mode; quit clock mode m_clock_mode = false; - if (TRACE_MODE) logerror("%s: int mode\n", tag()); + LOGMODE("int mode\n"); } else { m_clock_mode = true; - if (TRACE_MODE) logerror("%s: clock mode\n", tag()); + LOGMODE("clock mode\n"); // we are switching to clock mode: latch the current value of // the decrementer register if (m_clock_register != 0) @@ -484,73 +422,70 @@ WRITE8_MEMBER ( tms9901_device::write ) m_clock_read_register = 0; /* timer inactive... */ } } - else + else if (offset == 0x0f) { - if (offset == 0x0f) - { - if (m_clock_mode) - { /* in clock mode this is the soft reset bit */ - if (!data) - { // TMS9901 soft reset (RST2*) - // Spec: "Writing a 0 to bit 15 while in the clock mode executes a soft reset on the I/O pins. - // [...] RST2* will program all ports to the input mode" - m_pio_direction = 0; - m_pio_direction_mirror = 0; - - // "RST1* (power-up reset) will reset all mask bits low." - // Spec is not clear on whether the mask bits are also reset by RST2* - // TODO: Check on a real machine. (I'd guess from the text they are not touched) - m_enabled_ints = 0; - if (TRACE_MODE) logerror("%s: Soft reset (RST2*)\n", tag()); - } - } - else - { /* modify interrupt enable mask */ - if (data) - m_enabled_ints |= 0x4000; /* set bit */ - else - m_enabled_ints &= ~0x4000; /* unset bit */ - - if (TRACE_PINS) logerror("%s: interrupts = %04x\n", tag(), m_enabled_ints); - field_interrupts(); /* changed interrupt state */ + if (m_clock_mode) + { /* in clock mode this is the soft reset bit */ + if (!data) + { // TMS9901 soft reset (RST2*) + // Spec: "Writing a 0 to bit 15 while in the clock mode executes a soft reset on the I/O pins. + // [...] RST2* will program all ports to the input mode" + m_pio_direction = 0; + m_pio_direction_mirror = 0; + + // "RST1* (power-up reset) will reset all mask bits low." + // Spec is not clear on whether the mask bits are also reset by RST2* + // TODO: Check on a real machine. (I'd guess from the text they are not touched) + m_enabled_ints = 0; + LOGMODE("Soft reset (RST2*)\n"); } } else - { - // write one bit to 9901 (bits 1-14) - // - // m_clock_mode==false ? Disable/Enable an interrupt - // : Bit in clock interval - // - // offset is the index of the modified bit of register (-> interrupt number -1) - if (m_clock_mode) - { /* modify clock interval */ - int bit = 1 << ((offset & 0x0F) - 1); /* corresponding mask */ - - if (data) - m_clock_register |= bit; /* set bit */ - else - m_clock_register &= ~bit; /* clear bit */ - - /* reset clock timer (page 8) */ - if (TRACE_CLOCK) logerror("%s: clock register = %04x\n", tag(), m_clock_register); - timer_reload(); - } + { /* modify interrupt enable mask */ + if (data) + m_enabled_ints |= 0x4000; /* set bit */ + else + m_enabled_ints &= ~0x4000; /* unset bit */ + + LOGMODE("interrupts = %04x\n", m_enabled_ints); + field_interrupts(); /* changed interrupt state */ + } + } + else + { + // write one bit to 9901 (bits 1-14) + // + // m_clock_mode==false ? Disable/Enable an interrupt + // : Bit in clock interval + // + // offset is the index of the modified bit of register (-> interrupt number -1) + if (m_clock_mode) + { /* modify clock interval */ + int bit = 1 << ((offset & 0x0F) - 1); /* corresponding mask */ + + if (data) + m_clock_register |= bit; /* set bit */ else - { /* modify interrupt enable mask */ - int bit = 1 << (offset & 0x0F); /* corresponding mask */ + m_clock_register &= ~bit; /* clear bit */ - if (data) - m_enabled_ints |= bit; /* set bit */ - else - m_enabled_ints &= ~bit; /* unset bit */ + /* reset clock timer (page 8) */ + LOGCLOCK("clock register = %04x\n", m_clock_register); + timer_reload(); + } + else + { /* modify interrupt enable mask */ + int bit = 1 << (offset & 0x0F); /* corresponding mask */ - if (offset == 3) - m_timer_int_pending = false; /* SBO 3 clears pending timer interrupt (??) */ + if (data) + m_enabled_ints |= bit; /* set bit */ + else + m_enabled_ints &= ~bit; /* unset bit */ - if (TRACE_MODE) logerror("%s: enabled interrupts = %04x\n", tag(), m_enabled_ints); - field_interrupts(); /* changed interrupt state */ - } + if (offset == 3) + m_timer_int_pending = false; /* SBO 3 clears pending timer interrupt (??) */ + + LOGMODE("enabled interrupts = %04x\n"); + field_interrupts(); /* changed interrupt state */ } } } @@ -566,7 +501,7 @@ void tms9901_device::device_timer(emu_timer &timer, device_timer_id id, int para if (id==DECREMENTER) // we have only that one { m_decrementer_value--; - if (TRACE_CLOCK) logerror("%s: decrementer = %d\n", tag(), m_decrementer_value); + LOGCLOCK("decrementer = %d\n", m_decrementer_value); if (m_decrementer_value<=0) { m_timer_int_pending = true; // decrementer interrupt requested @@ -580,7 +515,7 @@ void tms9901_device::device_timer(emu_timer &timer, device_timer_id id, int para device_stop - device-specific stop -------------------------------------------------*/ -void tms9901_device::device_stop(void) +void tms9901_device::device_stop() { } @@ -588,7 +523,7 @@ void tms9901_device::device_stop(void) device_reset - device-specific reset -------------------------------------------------*/ -void tms9901_device::device_reset(void) +void tms9901_device::device_reset() { do_reset(); } @@ -628,29 +563,15 @@ void tms9901_device::do_reset() device_start - device-specific startup -------------------------------------------------*/ -void tms9901_device::device_start(void) +void tms9901_device::device_start() { m_decrementer = timer_alloc(DECREMENTER); m_decrementer->adjust(attotime::from_hz(clock() / 64.), 0, attotime::from_hz(clock() / 64.)); m_decrementer->enable(false); m_read_block.resolve(); - m_write_p0.resolve(); - m_write_p1.resolve(); - m_write_p2.resolve(); - m_write_p3.resolve(); - m_write_p4.resolve(); - m_write_p5.resolve(); - m_write_p6.resolve(); - m_write_p7.resolve(); - m_write_p8.resolve(); - m_write_p9.resolve(); - m_write_p10.resolve(); - m_write_p11.resolve(); - m_write_p12.resolve(); - m_write_p13.resolve(); - m_write_p14.resolve(); - m_write_p15.resolve(); + for (auto &cb : m_write_p) + cb.resolve_safe(); m_interrupt.resolve(); m_clock_register = 0; @@ -670,4 +591,4 @@ void tms9901_device::device_start(void) save_item(NAME(m_clock_read_register)); } -const device_type TMS9901 = device_creator; +DEFINE_DEVICE_TYPE(TMS9901, tms9901_device, "tms9901", "TMS9901 Programmable System Interface") diff --git a/src/devices/machine/tms9901.h b/src/devices/machine/tms9901.h index 1ec5d3287c4..f83e8ad6e22 100644 --- a/src/devices/machine/tms9901.h +++ b/src/devices/machine/tms9901.h @@ -12,8 +12,8 @@ *****************************************************************************/ -#ifndef __TMS9901_H__ -#define __TMS9901_H__ +#ifndef MAME_MACHINE_TMS9901_H +#define MAME_MACHINE_TMS9901_H extern const device_type TMS9901; @@ -22,32 +22,6 @@ extern const device_type TMS9901; MACROS ***************************************************************************/ -// Masks for the interrupts levels available on TMS9901 - -#define TMS9901_INT1 0x0002 -#define TMS9901_INT2 0x0004 -#define TMS9901_INT3 0x0008 // overridden by the timer interrupt -#define TMS9901_INT4 0x0010 -#define TMS9901_INT5 0x0020 -#define TMS9901_INT6 0x0040 -#define TMS9901_INT7 0x0080 -#define TMS9901_INT8 0x0100 -#define TMS9901_INT9 0x0200 -#define TMS9901_INTA 0x0400 -#define TMS9901_INTB 0x0800 -#define TMS9901_INTC 0x1000 -#define TMS9901_INTD 0x2000 -#define TMS9901_INTE 0x4000 -#define TMS9901_INTF 0x8000 - -enum -{ - TMS9901_CB_INT7 = 0, - TMS9901_INT8_INT15 = 1, - TMS9901_P0_P7 = 2, - TMS9901_P8_P15 = 3 -}; - /*************************************************************************** CLASS DEFINITION ***************************************************************************/ @@ -55,6 +29,31 @@ enum class tms9901_device : public device_t { public: + // Masks for the interrupts levels available on TMS9901 + static constexpr int INT1 = 0x0002; + static constexpr int INT2 = 0x0004; + static constexpr int INT3 = 0x0008; // overridden by the timer interrupt + static constexpr int INT4 = 0x0010; + static constexpr int INT5 = 0x0020; + static constexpr int INT6 = 0x0040; + static constexpr int INT7 = 0x0080; + static constexpr int INT8 = 0x0100; + static constexpr int INT9 = 0x0200; + static constexpr int INTA = 0x0400; + static constexpr int INTB = 0x0800; + static constexpr int INTC = 0x1000; + static constexpr int INTD = 0x2000; + static constexpr int INTE = 0x4000; + static constexpr int INTF = 0x8000; + + enum + { + CB_INT7 = 0, + INT8_INT15 = 1, + P0_P7 = 2, + P8_P15 = 3 + }; + tms9901_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); void set_single_int(int pin_number, int state); @@ -64,37 +63,20 @@ public: DECLARE_READ8_MEMBER( read ); DECLARE_WRITE8_MEMBER( write ); - template static devcb_base &static_set_readblock_callback(device_t &device, _Object object) { return downcast(device).m_read_block.set_callback(object); } - - template static devcb_base &static_set_p0_callback(device_t &device, _Object object) { return downcast(device).m_write_p0.set_callback(object); } - template static devcb_base &static_set_p1_callback(device_t &device, _Object object) { return downcast(device).m_write_p1.set_callback(object); } - template static devcb_base &static_set_p2_callback(device_t &device, _Object object) { return downcast(device).m_write_p2.set_callback(object); } - template static devcb_base &static_set_p3_callback(device_t &device, _Object object) { return downcast(device).m_write_p3.set_callback(object); } - template static devcb_base &static_set_p4_callback(device_t &device, _Object object) { return downcast(device).m_write_p4.set_callback(object); } - template static devcb_base &static_set_p5_callback(device_t &device, _Object object) { return downcast(device).m_write_p5.set_callback(object); } - template static devcb_base &static_set_p6_callback(device_t &device, _Object object) { return downcast(device).m_write_p6.set_callback(object); } - template static devcb_base &static_set_p7_callback(device_t &device, _Object object) { return downcast(device).m_write_p7.set_callback(object); } - template static devcb_base &static_set_p8_callback(device_t &device, _Object object) { return downcast(device).m_write_p8.set_callback(object); } - template static devcb_base &static_set_p9_callback(device_t &device, _Object object) { return downcast(device).m_write_p9.set_callback(object); } - template static devcb_base &static_set_p10_callback(device_t &device, _Object object) { return downcast(device).m_write_p10.set_callback(object); } - template static devcb_base &static_set_p11_callback(device_t &device, _Object object) { return downcast(device).m_write_p11.set_callback(object); } - template static devcb_base &static_set_p12_callback(device_t &device, _Object object) { return downcast(device).m_write_p12.set_callback(object); } - template static devcb_base &static_set_p13_callback(device_t &device, _Object object) { return downcast(device).m_write_p13.set_callback(object); } - template static devcb_base &static_set_p14_callback(device_t &device, _Object object) { return downcast(device).m_write_p14.set_callback(object); } - template static devcb_base &static_set_p15_callback(device_t &device, _Object object) { return downcast(device).m_write_p15.set_callback(object); } - - template static devcb_base &static_set_intlevel_callback(device_t &device, _Object object) { return downcast(device).m_interrupt.set_callback(object); } + template static devcb_base &static_set_readblock_callback(device_t &device, Object &&cb) { return downcast(device).m_read_block.set_callback(std::forward(cb)); } + template static devcb_base &static_set_p_callback(device_t &device, Object &&cb) { return downcast(device).m_write_p[N].set_callback(std::forward(cb)); } + template static devcb_base &static_set_intlevel_callback(device_t &device, Object &&cb) { return downcast(device).m_interrupt.set_callback(std::forward(cb)); } private: - static const device_timer_id DECREMENTER = 0; + static constexpr device_timer_id DECREMENTER = 0; virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; - void timer_reload(void); - void field_interrupts(void); + void timer_reload(); + void field_interrupts(); - void device_start(void) override; - void device_stop(void) override; - void device_reset(void) override; + void device_start() override; + void device_stop() override; + void device_reset() override; // Common method for device_reset and rst1_line void do_reset(); @@ -145,22 +127,7 @@ private: devcb_read8 m_read_block; // I/O lines, used for output. When used as inputs, the levels are delivered via the m_read_block - devcb_write_line m_write_p0; - devcb_write_line m_write_p1; - devcb_write_line m_write_p2; - devcb_write_line m_write_p3; - devcb_write_line m_write_p4; - devcb_write_line m_write_p5; - devcb_write_line m_write_p6; - devcb_write_line m_write_p7; - devcb_write_line m_write_p8; - devcb_write_line m_write_p9; - devcb_write_line m_write_p10; - devcb_write_line m_write_p11; - devcb_write_line m_write_p12; - devcb_write_line m_write_p13; - devcb_write_line m_write_p14; - devcb_write_line m_write_p15; + devcb_write_line m_write_p[16]; // The invocation corresponds to the INTREQ signal (with the level passed as data) // and the address delivers the interrupt level (0-15) @@ -175,54 +142,54 @@ private: devcb = &tms9901_device::static_set_readblock_callback( *device, DEVCB_##_read ); #define MCFG_TMS9901_P0_HANDLER( _write ) \ - devcb = &tms9901_device::static_set_p0_callback( *device, DEVCB_##_write ); + devcb = &tms9901_device::static_set_p_callback<0>( *device, DEVCB_##_write ); #define MCFG_TMS9901_P1_HANDLER( _write ) \ - devcb = &tms9901_device::static_set_p1_callback( *device, DEVCB_##_write ); + devcb = &tms9901_device::static_set_p_callback<1>( *device, DEVCB_##_write ); #define MCFG_TMS9901_P2_HANDLER( _write ) \ - devcb = &tms9901_device::static_set_p2_callback( *device, DEVCB_##_write ); + devcb = &tms9901_device::static_set_p_callback<2>( *device, DEVCB_##_write ); #define MCFG_TMS9901_P3_HANDLER( _write ) \ - devcb = &tms9901_device::static_set_p3_callback( *device, DEVCB_##_write ); + devcb = &tms9901_device::static_set_p_callback<3>( *device, DEVCB_##_write ); #define MCFG_TMS9901_P4_HANDLER( _write ) \ - devcb = &tms9901_device::static_set_p4_callback( *device, DEVCB_##_write ); + devcb = &tms9901_device::static_set_p_callback<4>( *device, DEVCB_##_write ); #define MCFG_TMS9901_P5_HANDLER( _write ) \ - devcb = &tms9901_device::static_set_p5_callback( *device, DEVCB_##_write ); + devcb = &tms9901_device::static_set_p_callback<5>( *device, DEVCB_##_write ); #define MCFG_TMS9901_P6_HANDLER( _write ) \ - devcb = &tms9901_device::static_set_p6_callback( *device, DEVCB_##_write ); + devcb = &tms9901_device::static_set_p_callback<6>( *device, DEVCB_##_write ); #define MCFG_TMS9901_P7_HANDLER( _write ) \ - devcb = &tms9901_device::static_set_p7_callback( *device, DEVCB_##_write ); + devcb = &tms9901_device::static_set_p_callback<7>( *device, DEVCB_##_write ); #define MCFG_TMS9901_P8_HANDLER( _write ) \ - devcb = &tms9901_device::static_set_p8_callback( *device, DEVCB_##_write ); + devcb = &tms9901_device::static_set_p_callback<8>( *device, DEVCB_##_write ); #define MCFG_TMS9901_P9_HANDLER( _write ) \ - devcb = &tms9901_device::static_set_p9_callback( *device, DEVCB_##_write ); + devcb = &tms9901_device::static_set_p_callback<9>( *device, DEVCB_##_write ); #define MCFG_TMS9901_P10_HANDLER( _write ) \ - devcb = &tms9901_device::static_set_p10_callback( *device, DEVCB_##_write ); + devcb = &tms9901_device::static_set_p_callback<10>( *device, DEVCB_##_write ); #define MCFG_TMS9901_P11_HANDLER( _write ) \ - devcb = &tms9901_device::static_set_p11_callback( *device, DEVCB_##_write ); + devcb = &tms9901_device::static_set_p_callback<11>( *device, DEVCB_##_write ); #define MCFG_TMS9901_P12_HANDLER( _write ) \ - devcb = &tms9901_device::static_set_p12_callback( *device, DEVCB_##_write ); + devcb = &tms9901_device::static_set_p_callback<12>( *device, DEVCB_##_write ); #define MCFG_TMS9901_P13_HANDLER( _write ) \ - devcb = &tms9901_device::static_set_p13_callback( *device, DEVCB_##_write ); + devcb = &tms9901_device::static_set_p_callback<13>( *device, DEVCB_##_write ); #define MCFG_TMS9901_P14_HANDLER( _write ) \ - devcb = &tms9901_device::static_set_p14_callback( *device, DEVCB_##_write ); + devcb = &tms9901_device::static_set_p_callback<14>( *device, DEVCB_##_write ); #define MCFG_TMS9901_P15_HANDLER( _write ) \ - devcb = &tms9901_device::static_set_p15_callback( *device, DEVCB_##_write ); + devcb = &tms9901_device::static_set_p_callback<15>( *device, DEVCB_##_write ); #define MCFG_TMS9901_INTLEVEL_HANDLER( _intlevel ) \ devcb = &tms9901_device::static_set_intlevel_callback( *device, DEVCB_##_intlevel ); -#endif /* __TMS9901_H__ */ +#endif // MAME_MACHINE_TMS9901_H diff --git a/src/devices/machine/tms9902.cpp b/src/devices/machine/tms9902.cpp index 7e2db622d31..c25ea5eacc1 100644 --- a/src/devices/machine/tms9902.cpp +++ b/src/devices/machine/tms9902.cpp @@ -39,15 +39,29 @@ *****************************************************************************/ #include "emu.h" -#include #include "tms9902.h" -#define TRACE_LINES 0 -#define TRACE_CRU 0 -#define TRACE_DETAIL 0 -#define TRACE_BUFFER 0 -#define TRACE_ERROR 1 -#define TRACE_SETTING 0 +#include + +#define LOG_GENERAL (1U << 0) +#define LOG_LINES (1U << 1) +#define LOG_CRU (1U << 2) +#define LOG_DETAIL (1U << 3) +#define LOG_BUFFER (1U << 4) +#define LOG_ERROR (1U << 5) +#define LOG_SETTING (1U << 6) + +#define VERBOSE (LOG_ERROR) +#include "logmacro.h" + +#define LOGGENERAL(...) LOGMASKED(LOG_GENERAL, __VA_ARGS__) +#define LOGLINES(...) LOGMASKED(LOG_LINES, __VA_ARGS__) +#define LOGCRU(...) LOGMASKED(LOG_CRU, __VA_ARGS__) +#define LOGDETAIL(...) LOGMASKED(LOG_DETAIL, __VA_ARGS__) +#define LOGBUFFER(...) LOGMASKED(LOG_BUFFER, __VA_ARGS__) +#define LOGERROR(...) LOGMASKED(LOG_ERROR, __VA_ARGS__) +#define LOGSETTING(...) LOGMASKED(LOG_SETTING, __VA_ARGS__) + enum { @@ -66,11 +80,11 @@ enum Constructor */ tms9902_device::tms9902_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, TMS9902, "TMS9902 ACC", tag, owner, clock, "tms9902", __FILE__), - m_int_cb(*this), - m_rcv_cb(*this), - m_xmit_cb(*this), - m_ctrl_cb(*this) + : device_t(mconfig, TMS9902, tag, owner, clock) + , m_int_cb(*this) + , m_rcv_cb(*this) + , m_xmit_cb(*this) + , m_ctrl_cb(*this) { } @@ -79,19 +93,19 @@ tms9902_device::tms9902_device(const machine_config &mconfig, const char *tag, d */ void tms9902_device::field_interrupts() { - bool new_int = (m_DSCH && m_DSCENB) + bool const new_int = (m_DSCH && m_DSCENB) || (m_RBRL && m_RIENB) || (m_XBRE && m_XBIENB) || (m_TIMELP && m_TIMENB); - if (TRACE_DETAIL) logerror("interrupt flags (DSCH = %02x, DSCENB = %02x), (RBRL = %02x, RIENB = %02x), (XBRE = %02x, XBIENB = %02x), (TIMELP = %02x, TIMENB = %02x)\n", - m_DSCH, m_DSCENB, m_RBRL, m_RIENB, m_XBRE, m_XBIENB, m_TIMELP, m_TIMENB); + LOGDETAIL("interrupt flags (DSCH = %02x, DSCENB = %02x), (RBRL = %02x, RIENB = %02x), (XBRE = %02x, XBIENB = %02x), (TIMELP = %02x, TIMENB = %02x)\n", + m_DSCH, m_DSCENB, m_RBRL, m_RIENB, m_XBRE, m_XBIENB, m_TIMELP, m_TIMENB); if (new_int != m_INT) { // Only consider edges m_INT = new_int; - if (TRACE_LINES) logerror("/INT = %s\n", (m_INT)? "asserted" : "cleared"); - m_int_cb(m_INT? ASSERT_LINE : CLEAR_LINE); + LOGLINES("/INT = %s\n", m_INT ? "asserted" : "cleared"); + m_int_cb(m_INT ? ASSERT_LINE : CLEAR_LINE); } } @@ -106,7 +120,7 @@ void tms9902_device::rcv_cts(line_state state) // CTSin is an internal register of the TMS9902 with positive logic m_CTSin = (state==ASSERT_LINE); - if (TRACE_LINES) logerror("CTS* = %s\n", (state==ASSERT_LINE)? "asserted" : "cleared"); + LOGLINES("CTS* = %s\n", (state==ASSERT_LINE)? "asserted" : "cleared"); if (m_CTSin != previous) { @@ -136,7 +150,7 @@ void tms9902_device::rcv_cts(line_state state) else { m_DSCH = false; - if (TRACE_LINES) logerror("no change in CTS line, no interrupt.\n"); + LOGLINES("no change in CTS line, no interrupt.\n"); } } @@ -155,7 +169,7 @@ void tms9902_device::set_clock(bool state) void tms9902_device::rcv_dsr(line_state state) { bool previous = m_DSRin; - if (TRACE_LINES) logerror("DSR* = %s\n", (state==ASSERT_LINE)? "asserted" : "cleared"); + LOGLINES("DSR* = %s\n", (state==ASSERT_LINE)? "asserted" : "cleared"); m_DSRin = (state==ASSERT_LINE); if (m_DSRin != previous) @@ -166,7 +180,7 @@ void tms9902_device::rcv_dsr(line_state state) else { m_DSCH = false; - if (TRACE_LINES) logerror("no change in DSR line, no interrupt.\n"); + LOGLINES("no change in DSR line, no interrupt.\n"); } } @@ -189,14 +203,14 @@ void tms9902_device::rcv_data(uint8_t data) // Receive buffer was empty m_RBRL = true; m_ROVER = false; - if (TRACE_BUFFER) logerror("Receive buffer loaded with byte %02x; RIENB=%d\n", data, m_RIENB); + LOGBUFFER("Receive buffer loaded with byte %02x; RIENB=%d\n", data, m_RIENB); field_interrupts(); } else { // Receive buffer was full m_ROVER = true; - if (TRACE_ERROR) logerror("Receive buffer still loaded; overflow error\n"); + LOGERROR("Receive buffer still loaded; overflow error\n"); } } @@ -210,7 +224,7 @@ void tms9902_device::rcv_data(uint8_t data) */ void tms9902_device::rcv_framing_error() { - if (TRACE_ERROR) logerror("Detected framing error\n"); + LOGERROR("Detected framing error\n"); m_RFER = true; } @@ -222,7 +236,7 @@ void tms9902_device::rcv_framing_error() */ void tms9902_device::rcv_parity_error() { - if (TRACE_ERROR) logerror("Detected parity error\n"); + LOGERROR("Detected parity error\n"); m_RPER = true; } @@ -234,7 +248,7 @@ void tms9902_device::rcv_parity_error() */ void tms9902_device::rcv_break(bool value) { - if (TRACE_ERROR) logerror("Receive BREAK=%d (no effect)\n", value? 1:0); + LOGERROR("Receive BREAK=%d (no effect)\n", value? 1:0); } //------------------------------------------------ @@ -297,7 +311,7 @@ void tms9902_device::send_break(bool state) if (state != m_BRKout) { m_BRKout = state; - if (TRACE_LINES) logerror("Sending BREAK=%d\n", state? 1:0); + LOGLINES("Sending BREAK=%d\n", state? 1:0); // Signal BRK (on/off) to the remote site m_ctrl_cb((offs_t)(EXCEPT | BRK), state? 1:0); @@ -329,7 +343,7 @@ double tms9902_device::get_baudpoll() void tms9902_device::set_receive_data_rate() { int value = (m_CLK4M? 0x800 : 0) | (m_RDV8? 0x400 : 0) | m_RDR; - if (TRACE_SETTING) logerror("receive rate = %04x\n", value); + LOGSETTING("receive rate = %04x\n", value); // Calculate the ratio between receive baud rate and polling frequency double fint = m_clock_rate / ((m_CLK4M) ? 4.0 : 3.0); @@ -340,7 +354,7 @@ void tms9902_device::set_receive_data_rate() // Thus the callback function should add up this value on each poll // and deliver a data input not before it sums up to 1. m_baudpoll = (double)(baud / (10*POLLING_FREQ)); - if (TRACE_SETTING) logerror ("baudpoll = %f\n", m_baudpoll); + LOGSETTING("baudpoll = %f\n", m_baudpoll); m_last_config_value = value; m_ctrl_cb((offs_t)CONFIG, RATERECV); @@ -353,7 +367,7 @@ void tms9902_device::set_receive_data_rate() void tms9902_device::set_transmit_data_rate() { int value = (m_CLK4M? 0x800 : 0) | (m_XDV8? 0x400 : 0) | m_XDR; - if (TRACE_SETTING) logerror("set transmit rate = %04x\n", value); + LOGSETTING("set transmit rate = %04x\n", value); m_last_config_value = value; m_ctrl_cb((offs_t)CONFIG, RATEXMIT); } @@ -361,7 +375,7 @@ void tms9902_device::set_transmit_data_rate() void tms9902_device::set_stop_bits() { int value = m_STOPB; - if (TRACE_SETTING) logerror("set stop bits = %02x\n", value); + LOGSETTING("set stop bits = %02x\n", value); m_last_config_value = value; m_ctrl_cb((offs_t)CONFIG, STOPBITS); } @@ -369,7 +383,7 @@ void tms9902_device::set_stop_bits() void tms9902_device::set_data_bits() { int value = m_RCL; - if (TRACE_SETTING) logerror("set data bits = %02x\n", value); + LOGSETTING("set data bits = %02x\n", value); m_last_config_value = value; m_ctrl_cb((offs_t)CONFIG, DATABITS); } @@ -377,7 +391,7 @@ void tms9902_device::set_data_bits() void tms9902_device::set_parity() { int value = (m_PENB? 2:0) | (m_ODDP? 1:0); - if (TRACE_SETTING) logerror("set parity = %02x\n", value); + LOGSETTING("set parity = %02x\n", value); m_last_config_value = value; m_ctrl_cb((offs_t)CONFIG, PARITY); } @@ -386,7 +400,7 @@ void tms9902_device::transmit_line_state() { // 00ab cdef = setting line RTS=a, CTS=b, DSR=c, DCD=d, DTR=e, RI=f // The 9902 only outputs RTS and BRK - if (TRACE_SETTING) logerror("transmitting line state (only RTS) = %02x\n", (m_RTSout)? 1:0); + LOGSETTING("transmitting line state (only RTS) = %02x\n", (m_RTSout)? 1:0); m_last_config_value = (m_RTSout)? RTS : 0; m_ctrl_cb((offs_t)(LINES | RTS), RTS); } @@ -398,7 +412,7 @@ void tms9902_device::set_rts(line_state state) if (lstate != m_RTSout) { // Signal RTS to the modem - if (TRACE_SETTING) logerror("Set RTS=%d\n", lstate? 1:0); + LOGSETTING("Set RTS=%d\n", lstate? 1:0); m_RTSout = lstate; transmit_line_state(); } @@ -429,7 +443,7 @@ void tms9902_device::initiate_transmit() field_interrupts(); - if (TRACE_BUFFER) logerror("transmit XSR=%02x, RCL=%02x\n", m_XSR, m_RCL); + LOGBUFFER("transmit XSR=%02x, RCL=%02x\n", m_XSR, m_RCL); m_xmit_cb((offs_t)0, m_XSR & (0xff >> (3-m_RCL))); @@ -502,11 +516,11 @@ READ8_MEMBER( tms9902_device::cruread ) break; case 0: // Bits 7-0 - if (TRACE_CRU) logerror("Reading received byte = %02x\n", m_RBR); + LOGCRU("Reading received byte = %02x\n", m_RBR); answer = m_RBR; break; } - if (TRACE_CRU && TRACE_DETAIL) logerror("Reading flag bits %d - %d = %02x\n", ((offset+1)*8-1), offset*8, answer); + if (VERBOSE & LOG_DETAIL) LOGCRU("Reading flag bits %d - %d = %02x\n", ((offset+1)*8-1), offset*8, answer); return answer; } @@ -586,7 +600,7 @@ WRITE8_MEMBER( tms9902_device::cruwrite ) data &= 1; /* clear extra bits */ offset &= 0x1F; - if (TRACE_CRU && TRACE_DETAIL) logerror("Setting bit %d = %02x\n", offset, data); + if (VERBOSE & LOG_DETAIL) LOGCRU("Setting bit %d = %02x\n", offset, data); if (offset <= 10) { @@ -750,7 +764,7 @@ WRITE8_MEMBER( tms9902_device::cruwrite ) } return; case 17: - if (TRACE_CRU) logerror("set BRKON=%d; BRK=%d\n", data, m_BRKout? 1:0); + LOGCRU("set BRKON=%d; BRK=%d\n", data, m_BRKout? 1:0); m_BRKON = (data!=0); if (m_BRKout && data==0) { @@ -778,13 +792,13 @@ WRITE8_MEMBER( tms9902_device::cruwrite ) // (the only way to clear the flag!) m_RIENB = (data!=0); m_RBRL = false; - if (TRACE_CRU) logerror("Set RBRL=0, set RIENB=%d\n", data); + LOGCRU("Set RBRL=0, set RIENB=%d\n", data); field_interrupts(); return; case 19: /* Transmit Buffer Interrupt Enable */ m_XBIENB = (data!=0); - if (TRACE_CRU) logerror("set XBIENB=%d\n", data); + LOGCRU("set XBIENB=%d\n", data); field_interrupts(); return; case 20: @@ -798,7 +812,7 @@ WRITE8_MEMBER( tms9902_device::cruwrite ) /* Data Set Change Interrupt Enable */ m_DSCENB = (data!=0); m_DSCH = false; - if (TRACE_CRU) logerror("set DSCH=0, set DSCENB=%d\n", data); + LOGCRU("set DSCH=0, set DSCENB=%d\n", data); field_interrupts(); return; case 31: @@ -853,4 +867,4 @@ void tms9902_device::device_start() m_sendtimer = timer_alloc(SENDTIMER); } -const device_type TMS9902 = device_creator; +DEFINE_DEVICE_TYPE(TMS9902, tms9902_device, "tms9902", "TMS9902 ACC") diff --git a/src/devices/machine/tms9902.h b/src/devices/machine/tms9902.h index 238f66bbca7..ecff8ad1ac6 100644 --- a/src/devices/machine/tms9902.h +++ b/src/devices/machine/tms9902.h @@ -11,47 +11,49 @@ *****************************************************************************/ -#ifndef __TMS9902_H__ -#define __TMS9902_H__ - - -// Serial control protocol values -#define TYPE_TMS9902 0x01 - -// Configuration (output only) -#define CONFIG 0x80 -#define RATERECV 0x70 -#define RATEXMIT 0x60 -#define DATABITS 0x50 -#define STOPBITS 0x40 -#define PARITY 0x30 - -// Exceptional states (BRK: both directions; FRMERR/PARERR: input only) -#define EXCEPT 0x40 -#define BRK 0x02 -#define FRMERR 0x04 -#define PARERR 0x06 - -// Line states (RTS, DTR: output; CTS, DSR, RI, DCD: input) -#define LINES 0x00 -#define RTS 0x20 -#define CTS 0x10 -#define DSR 0x08 -#define DCD 0x04 -#define DTR 0x02 -#define RI 0x01 - -extern const device_type TMS9902; +#ifndef MAME_MACHINE_TMS9902_H +#define MAME_MACHINE_TMS9902_H + +#pragma once + + +DECLARE_DEVICE_TYPE(TMS9902, tms9902_device) class tms9902_device : public device_t { public: + // Serial control protocol values + static constexpr unsigned TYPE_TMS9902 = 0x01; + + // Configuration (output only) + static constexpr unsigned CONFIG = 0x80; + static constexpr unsigned RATERECV = 0x70; + static constexpr unsigned RATEXMIT = 0x60; + static constexpr unsigned DATABITS = 0x50; + static constexpr unsigned STOPBITS = 0x40; + static constexpr unsigned PARITY = 0x30; + + // Exceptional states (BRK: both directions; FRMERR/PARERR: input only) + static constexpr unsigned EXCEPT = 0x40; + static constexpr unsigned BRK = 0x02; + static constexpr unsigned FRMERR = 0x04; + static constexpr unsigned PARERR = 0x06; + + // Line states (RTS, DTR: output; CTS, DSR, RI, DCD: input) + static constexpr unsigned LINES = 0x00; + static constexpr unsigned RTS = 0x20; + static constexpr unsigned CTS = 0x10; + static constexpr unsigned DSR = 0x08; + static constexpr unsigned DCD = 0x04; + static constexpr unsigned DTR = 0x02; + static constexpr unsigned RI = 0x01; + tms9902_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_int_callback(device_t &device, _Object object) { return downcast(device).m_int_cb.set_callback(object); } - template static devcb_base &set_rcv_callback(device_t &device, _Object object) { return downcast(device).m_rcv_cb.set_callback(object); } - template static devcb_base &set_xmit_callback(device_t &device, _Object object) { return downcast(device).m_xmit_cb.set_callback(object); } - template static devcb_base &set_ctrl_callback(device_t &device, _Object object) { return downcast(device).m_ctrl_cb.set_callback(object); } + template static devcb_base &set_int_callback(device_t &device, Object &&cb) { return downcast(device).m_int_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_rcv_callback(device_t &device, Object &&cb) { return downcast(device).m_rcv_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_xmit_callback(device_t &device, Object &&cb) { return downcast(device).m_xmit_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_ctrl_callback(device_t &device, Object &&cb) { return downcast(device).m_ctrl_cb.set_callback(std::forward(cb)); } void set_clock(bool state); @@ -187,16 +189,16 @@ private: DEVICE CONFIGURATION MACROS ***************************************************************************/ -#define MCFG_TMS9902_INT_CB(_devcb) \ - devcb = &tms9902_device::set_int_callback(*device, DEVCB_##_devcb); +#define MCFG_TMS9902_INT_CB(cb) \ + devcb = &tms9902_device::set_int_callback(*device, (DEVCB_##cb)); -#define MCFG_TMS9902_RCV_CB(_devcb) \ - devcb = &tms9902_device::set_rcv_callback(*device, DEVCB_##_devcb); +#define MCFG_TMS9902_RCV_CB(cb) \ + devcb = &tms9902_device::set_rcv_callback(*device, (DEVCB_##cb)); -#define MCFG_TMS9902_XMIT_CB(_devcb) \ - devcb = &tms9902_device::set_xmit_callback(*device, DEVCB_##_devcb); +#define MCFG_TMS9902_XMIT_CB(cb) \ + devcb = &tms9902_device::set_xmit_callback(*device, (DEVCB_##cb)); -#define MCFG_TMS9902_CTRL_CB(_devcb) \ - devcb = &tms9902_device::set_ctrl_callback(*device, DEVCB_##_devcb); +#define MCFG_TMS9902_CTRL_CB(cb) \ + devcb = &tms9902_device::set_ctrl_callback(*device, (DEVCB_##cb)); -#endif /* __TMS9902_H__ */ +#endif // MAME_MACHINE_TMS9902_H diff --git a/src/devices/machine/upd1990a.cpp b/src/devices/machine/upd1990a.cpp index 7a71e318380..a37840c405f 100644 --- a/src/devices/machine/upd1990a.cpp +++ b/src/devices/machine/upd1990a.cpp @@ -17,13 +17,8 @@ #include "emu.h" #include "upd1990a.h" - - -//************************************************************************** -// MACROS / CONSTANTS -//************************************************************************** - -#define LOG 0 +//#define VERBOSE 1 +#include "logmacro.h" @@ -32,8 +27,8 @@ //************************************************************************** // device type definition -const device_type UPD1990A = device_creator; -const device_type UPD4990A = device_creator; +DEFINE_DEVICE_TYPE(UPD1990A, upd1990a_device, "upd1990a", "uPD1990A RTC") +DEFINE_DEVICE_TYPE(UPD4990A, upd4990a_device, "upd4990a", "uPD4990A RTC") @@ -45,26 +40,24 @@ const device_type UPD4990A = device_creator; // upd1990a_device - constructor //------------------------------------------------- -upd1990a_device::upd1990a_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, uint32_t variant, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_rtc_interface(mconfig, *this), - m_write_data(*this), - m_write_tp(*this), - m_variant(variant) +upd1990a_device::upd1990a_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint32_t variant) + : device_t(mconfig, type, tag, owner, clock) + , device_rtc_interface(mconfig, *this) + , m_write_data(*this) + , m_write_tp(*this) + , m_variant(variant) { } upd1990a_device::upd1990a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, UPD1990A, "uPD1990A", tag, owner, clock, "upd1990a", __FILE__), - device_rtc_interface(mconfig, *this), - m_write_data(*this), - m_write_tp(*this), - m_variant(TYPE_1990A) + : upd1990a_device(mconfig, UPD1990A, tag, owner, clock, TYPE_1990A) { } upd4990a_device::upd4990a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : upd1990a_device(mconfig, UPD4990A, "uPD4990A RTC", tag, owner, clock, TYPE_4990A, "upd4990a", __FILE__) { } + : upd1990a_device(mconfig, UPD4990A, tag, owner, clock, TYPE_4990A) +{ +} bool upd1990a_device::is_serial_mode() @@ -202,7 +195,7 @@ WRITE_LINE_MEMBER( upd1990a_device::stb_w ) if (!m_cs) return; - if (LOG) logerror("uPD1990A '%s' STB %u\n", tag(), state); + LOG("uPD1990A STB %u\n", state); // rising edge if (!m_stb && state) @@ -217,7 +210,7 @@ WRITE_LINE_MEMBER( upd1990a_device::stb_w ) m_c = MODE_TEST; } - if (LOG) logerror("uPD1990A '%s' Command %x\n", tag(), m_c); + LOG("uPD1990A Command %x\n", m_c); // common functions if (m_c == MODE_REGISTER_HOLD || (m_c >= MODE_TP_64HZ && m_c < MODE_TEST)) @@ -388,7 +381,7 @@ WRITE_LINE_MEMBER( upd1990a_device::clk_w ) if (!m_cs) return; - if (LOG) logerror("uPD1990A '%s' CLK %u\n", tag(), state); + LOG("uPD1990A CLK %u\n", state); // rising edge if (!m_clk && state) @@ -433,14 +426,14 @@ WRITE_LINE_MEMBER( upd1990a_device::clk_w ) WRITE_LINE_MEMBER( upd1990a_device::cs_w ) { // chip select - if (LOG) logerror("uPD1990A '%s' CS %u\n", tag(), state); + LOG("uPD1990A CS %u\n", state); m_cs = state; } WRITE_LINE_MEMBER( upd1990a_device::oe_w ) { // output enable - if (LOG) logerror("uPD1990A '%s' OE %u\n", tag(), state); + LOG("uPD1990A OE %u\n", state); int prev_oe = m_oe; m_oe = state; @@ -451,26 +444,26 @@ WRITE_LINE_MEMBER( upd1990a_device::oe_w ) WRITE_LINE_MEMBER( upd1990a_device::c0_w ) { - if (LOG) logerror("uPD1990A '%s' C0 %u\n", tag(), state); + LOG("uPD1990A C0 %u\n", state); m_c_unlatched = (m_c_unlatched & 0x06) | state; } WRITE_LINE_MEMBER( upd1990a_device::c1_w ) { - if (LOG) logerror("uPD1990A '%s' C1 %u\n", tag(), state); + LOG("uPD1990A C1 %u\n", state); m_c_unlatched = (m_c_unlatched & 0x05) | (state << 1); } WRITE_LINE_MEMBER( upd1990a_device::c2_w ) { - if (LOG) logerror("uPD1990A '%s' C2 %u\n", tag(), state); + LOG("uPD1990A C2 %u\n", state); m_c_unlatched = (m_c_unlatched & 0x03) | (state << 2); } WRITE_LINE_MEMBER( upd1990a_device::data_in_w ) { // data input - if (LOG) logerror("uPD1990A '%s' DATA IN %u\n", tag(), state); + LOG("uPD1990A DATA IN %u\n", state); m_data_in = state; } diff --git a/src/devices/machine/upd1990a.h b/src/devices/machine/upd1990a.h index af901ce798c..a9438b836e9 100644 --- a/src/devices/machine/upd1990a.h +++ b/src/devices/machine/upd1990a.h @@ -16,10 +16,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_MACHINE_UPD1990A_H +#define MAME_MACHINE_UPD1990A_H -#ifndef __UPD1990A__ -#define __UPD1990A__ +#pragma once #include "dirtc.h" @@ -47,16 +47,14 @@ // ======================> upd1990a_device -class upd1990a_device : public device_t, - public device_rtc_interface +class upd1990a_device : public device_t, public device_rtc_interface { public: // construction/destruction - upd1990a_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, uint32_t variant, const char *shortname, const char *source); upd1990a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template void set_data_callback(_data data) { m_write_data.set_callback(data); } - template void set_tp_callback(_tp tp) { m_write_tp.set_callback(tp); } + template void set_data_callback(Object &&data) { m_write_data.set_callback(std::forward(data)); } + template void set_tp_callback(Object &&tp) { m_write_tp.set_callback(std::forward(tp)); } DECLARE_WRITE_LINE_MEMBER( oe_w ); DECLARE_WRITE_LINE_MEMBER( cs_w ); @@ -71,6 +69,8 @@ public: protected: // device-level overrides + upd1990a_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint32_t variant); + virtual void device_start() override; virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; @@ -130,7 +130,7 @@ private: bool m_testmode; // testmode active - int m_variant; + int const m_variant; // timers emu_timer *m_timer_clock; @@ -153,9 +153,7 @@ public: // device type definitions -extern const device_type UPD1990A; -extern const device_type UPD4990A; - - +DECLARE_DEVICE_TYPE(UPD1990A, upd1990a_device) +DECLARE_DEVICE_TYPE(UPD4990A, upd4990a_device) -#endif +#endif // MAME_MACHINE_UPD1990A_H diff --git a/src/devices/machine/upd4701.cpp b/src/devices/machine/upd4701.cpp index 9fd7b6de7b7..8b6c161efbf 100644 --- a/src/devices/machine/upd4701.cpp +++ b/src/devices/machine/upd4701.cpp @@ -16,11 +16,12 @@ #define MASK_SWITCHES ( 7 ) #define MASK_COUNTER ( 0xfff ) -const device_type UPD4701 = device_creator; +DEFINE_DEVICE_TYPE(UPD4701, upd4701_device, "upd4701", "uPD4701 Encoder") upd4701_device::upd4701_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, UPD4701, "uPD4701 Encoder", tag, owner, clock, "upd4701", __FILE__), m_cs(0), m_xy(0), m_ul(0), m_resetx(0), m_resety(0), m_latchx(0), m_latchy(0), - m_startx(0), m_starty(0), m_x(0), m_y(0), m_switches(0), m_latchswitches(0), m_cf(0) + : device_t(mconfig, UPD4701, tag, owner, clock) + , m_cs(0), m_xy(0), m_ul(0), m_resetx(0), m_resety(0), m_latchx(0), m_latchy(0) + , m_startx(0), m_starty(0), m_x(0), m_y(0), m_switches(0), m_latchswitches(0), m_cf(0) { } diff --git a/src/devices/machine/upd4701.h b/src/devices/machine/upd4701.h index ca9432e6d56..c2959df138b 100644 --- a/src/devices/machine/upd4701.h +++ b/src/devices/machine/upd4701.h @@ -8,8 +8,11 @@ ***************************************************************************/ -#ifndef __UPD4701_H__ -#define __UPD4701_H__ +#ifndef MAME_MACHINE_UPD4701_H +#define MAME_MACHINE_UPD4701_H + +#pragma once + /*************************************************************************** MACROS / CONSTANTS @@ -57,10 +60,10 @@ private: int m_cf; }; -extern const device_type UPD4701; +DECLARE_DEVICE_TYPE(UPD4701, upd4701_device) -#define MCFG_UPD4701_ADD(_tag) \ - MCFG_DEVICE_ADD(_tag, UPD4701, 0) +#define MCFG_UPD4701_ADD(tag) \ + MCFG_DEVICE_ADD((tag), UPD4701, 0) -#endif /* __UPD4701_H__ */ +#endif // MAME_MACHINE_UPD4701_H diff --git a/src/devices/machine/upd4992.cpp b/src/devices/machine/upd4992.cpp index 95e76c5cdc1..a6c81fb9d13 100644 --- a/src/devices/machine/upd4992.cpp +++ b/src/devices/machine/upd4992.cpp @@ -22,7 +22,7 @@ //************************************************************************** // device type definition -const device_type UPD4992 = device_creator; +DEFINE_DEVICE_TYPE(UPD4992, upd4992_device, "upd4992", "uPD4992 RTC") //************************************************************************** @@ -34,8 +34,9 @@ const device_type UPD4992 = device_creator; //------------------------------------------------- upd4992_device::upd4992_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, UPD4992, "uPD4992 RTC", tag, owner, clock, "upd4992", __FILE__), - device_rtc_interface(mconfig, *this), m_timer_clock(nullptr) + : device_t(mconfig, UPD4992, tag, owner, clock) + , device_rtc_interface(mconfig, *this) + , m_timer_clock(nullptr) { } diff --git a/src/devices/machine/upd4992.h b/src/devices/machine/upd4992.h index 9825e02e3ef..433506a5bcf 100644 --- a/src/devices/machine/upd4992.h +++ b/src/devices/machine/upd4992.h @@ -6,10 +6,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_MACHINE_UPD4992_H +#define MAME_MACHINE_UPD4992_H -#ifndef __UPD4992DEV_H__ -#define __UPD4992DEV_H__ +#pragma once #include "dirtc.h" @@ -18,8 +18,8 @@ // INTERFACE CONFIGURATION MACROS //************************************************************************** -#define MCFG_UPD4992_ADD(_tag) \ - MCFG_DEVICE_ADD(_tag, UPD4992, XTAL_32_768kHz) +#define MCFG_UPD4992_ADD(tag) \ + MCFG_DEVICE_ADD((tag), UPD4992, XTAL_32_768kHz) //************************************************************************** // TYPE DEFINITIONS @@ -27,8 +27,7 @@ // ======================> upd4992_device -class upd4992_device : public device_t, - public device_rtc_interface +class upd4992_device : public device_t, public device_rtc_interface { public: // construction/destruction @@ -61,13 +60,6 @@ private: // device type definition extern const device_type UPD4992; +DECLARE_DEVICE_TYPE(UPD4992, upd4992_device) - - -//************************************************************************** -// GLOBAL VARIABLES -//************************************************************************** - - - -#endif +#endif // MAME_MACHINE_UPD4992_H diff --git a/src/devices/machine/upd7002.cpp b/src/devices/machine/upd7002.cpp index 17335ddde26..69b9bb262ee 100644 --- a/src/devices/machine/upd7002.cpp +++ b/src/devices/machine/upd7002.cpp @@ -16,10 +16,10 @@ /* Device Interface */ -const device_type UPD7002 = device_creator; +DEFINE_DEVICE_TYPE(UPD7002, upd7002_device, "upd7002", "uPD7002 ADC") upd7002_device::upd7002_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, UPD7002, "uPD7002", tag, owner, clock, "upd7002", __FILE__), m_status(0), m_data1(0), m_data0(0), m_digitalvalue(0), m_conversion_counter(0) + : device_t(mconfig, UPD7002, tag, owner, clock), m_status(0), m_data1(0), m_data0(0), m_digitalvalue(0), m_conversion_counter(0) { } diff --git a/src/devices/machine/upd7002.h b/src/devices/machine/upd7002.h index 16a57fcc281..b4ebc801a17 100644 --- a/src/devices/machine/upd7002.h +++ b/src/devices/machine/upd7002.h @@ -10,17 +10,17 @@ * ****************************************************************************/ -#ifndef UPD7002_H_ -#define UPD7002_H_ +#ifndef MAME_MACHINE_UPD7002_H +#define MAME_MACHINE_UPD7002_H + +#pragma once /*************************************************************************** TYPE DEFINITIONS ***************************************************************************/ -typedef device_delegate upd7002_get_analogue_delegate; #define UPD7002_GET_ANALOGUE(name) int name(int channel_number) -typedef device_delegate upd7002_eoc_delegate; #define UPD7002_EOC(name) void name(int data) @@ -31,11 +31,13 @@ typedef device_delegate upd7002_eoc_delegate; class upd7002_device : public device_t { public: + typedef device_delegate get_analogue_delegate; + typedef device_delegate eoc_delegate; + upd7002_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~upd7002_device() {} - static void set_get_analogue_callback(device_t &device, upd7002_get_analogue_delegate callback) { downcast(device).m_get_analogue_cb = callback; } - static void set_eoc_callback(device_t &device, upd7002_eoc_delegate callback) { downcast(device).m_eoc_cb = callback; } + static void set_get_analogue_callback(device_t &device, get_analogue_delegate &&callback) { downcast(device).m_get_analogue_cb = std::move(callback); } + static void set_eoc_callback(device_t &device, eoc_delegate &&callback) { downcast(device).m_eoc_cb = std::move(callback); } DECLARE_READ8_MEMBER(eoc_r); DECLARE_READ8_MEMBER(read); @@ -81,8 +83,8 @@ private: only then at the end of the second conversion will the conversion complete function run */ int m_conversion_counter; - upd7002_get_analogue_delegate m_get_analogue_cb; - upd7002_eoc_delegate m_eoc_cb; + get_analogue_delegate m_get_analogue_cb; + eoc_delegate m_eoc_cb; enum { @@ -90,7 +92,7 @@ private: }; }; -extern const device_type UPD7002; +DECLARE_DEVICE_TYPE(UPD7002, upd7002_device) /*************************************************************************** @@ -98,9 +100,9 @@ extern const device_type UPD7002; ***************************************************************************/ #define MCFG_UPD7002_GET_ANALOGUE_CB(_class, _method) \ - upd7002_device::set_get_analogue_callback(*device, upd7002_get_analogue_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); + upd7002_device::set_get_analogue_callback(*device, upd7002_device::get_analogue_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); #define MCFG_UPD7002_EOC_CB(_class, _method) \ - upd7002_device::set_eoc_callback(*device, upd7002_eoc_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); + upd7002_device::set_eoc_callback(*device, upd7002_device::eoc_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); -#endif /* UPD7002_H_ */ +#endif // MAME_MACHINE_UPD7002_H diff --git a/src/devices/machine/upd71071.cpp b/src/devices/machine/upd71071.cpp index fadebc5cb83..cbb9b79600b 100644 --- a/src/devices/machine/upd71071.cpp +++ b/src/devices/machine/upd71071.cpp @@ -90,26 +90,17 @@ #include "machine/upd71071.h" -const device_type UPD71071 = device_creator; +DEFINE_DEVICE_TYPE(UPD71071, upd71071_device, "upd71071", "NEC uPD71071 DMA Controller") upd71071_device::upd71071_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, UPD71071, "NEC uPD71071", tag, owner, clock, "upd71071", __FILE__), - m_upd_clock(0), - m_out_hreq_cb(*this), - m_out_eop_cb(*this), - m_dma_read_0_cb(*this), - m_dma_read_1_cb(*this), - m_dma_read_2_cb(*this), - m_dma_read_3_cb(*this), - m_dma_write_0_cb(*this), - m_dma_write_1_cb(*this), - m_dma_write_2_cb(*this), - m_dma_write_3_cb(*this), - m_out_dack_0_cb(*this), - m_out_dack_1_cb(*this), - m_out_dack_2_cb(*this), - m_out_dack_3_cb(*this), - m_cpu(*this, finder_base::DUMMY_TAG) + : device_t(mconfig, UPD71071, tag, owner, clock) + , m_upd_clock(0) + , m_out_hreq_cb(*this) + , m_out_eop_cb(*this) + , m_dma_read_cb{ {*this}, {*this}, {*this}, {*this} } + , m_dma_write_cb{ {*this}, {*this}, {*this}, {*this} } + , m_out_dack_cb{ {*this}, {*this}, {*this}, {*this} } + , m_cpu(*this, finder_base::DUMMY_TAG) { } @@ -121,22 +112,14 @@ void upd71071_device::device_start() { m_out_hreq_cb.resolve_safe(); m_out_eop_cb.resolve_safe(); - m_dma_read_0_cb.resolve_safe(0); - m_dma_read_1_cb.resolve_safe(0); - m_dma_read_2_cb.resolve_safe(0); - m_dma_read_3_cb.resolve_safe(0); - m_dma_write_0_cb.resolve_safe(); - m_dma_write_1_cb.resolve_safe(); - m_dma_write_2_cb.resolve_safe(); - m_dma_write_3_cb.resolve_safe(); - m_out_dack_0_cb.resolve_safe(); - m_out_dack_1_cb.resolve_safe(); - m_out_dack_2_cb.resolve_safe(); - m_out_dack_3_cb.resolve_safe(); - for (auto & elem : m_timer) - { - elem = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(upd71071_device::dma_transfer_timer),this)); - } + for (auto &cb : m_dma_read_cb) + cb.resolve_safe(0); + for (auto &cb : m_dma_write_cb) + cb.resolve_safe(); + for (auto &cb : m_out_dack_cb) + cb.resolve_safe(); + for (auto &elem : m_timer) + elem = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(upd71071_device::dma_transfer_timer), this)); m_selected_channel = 0; m_reg.device_control = 0; @@ -176,104 +159,86 @@ TIMER_CALLBACK_MEMBER(upd71071_device::dma_transfer_timer) switch (m_reg.mode_control[channel] & 0x0c) { - case 0x00: // Verify + case 0x00: // Verify + break; + case 0x04: // I/O -> memory + switch (channel) + { + case 0: + case 1: + case 2: + case 3: + if (!m_dma_read_cb[channel].isnull()) + data = m_dma_read_cb[channel](0); break; - case 0x04: // I/O -> memory - switch (channel) - { - case 0: - if (!m_dma_read_0_cb.isnull()) - data = m_dma_read_0_cb(0); - break; - case 1: - if (!m_dma_read_1_cb.isnull()) - data = m_dma_read_1_cb(0); - break; - case 2: - if (!m_dma_read_2_cb.isnull()) - data = m_dma_read_2_cb(0); - break; - case 3: - if (!m_dma_read_3_cb.isnull()) - data = m_dma_read_3_cb(0); - break; - } + } - if (m_cpu) - { - address_space& space = m_cpu->space(AS_PROGRAM); - space.write_byte(m_reg.address_current[channel], data & 0xff); - } - else - { - printf("upd71071_device: dma_transfer_timer - write to memory, no dest space %02x\n", data & 0xff); - } + if (m_cpu) + { + address_space& space = m_cpu->space(AS_PROGRAM); + space.write_byte(m_reg.address_current[channel], data & 0xff); + } + else + { + printf("upd71071_device: dma_transfer_timer - write to memory, no dest space %02x\n", data & 0xff); + } - if (m_reg.mode_control[channel] & 0x20) // Address direction - m_reg.address_current[channel]--; - else - m_reg.address_current[channel]++; - m_reg.count_current[channel]--; - if(m_reg.count_current[channel] == 0xffff) - { - if (m_reg.mode_control[channel] & 0x10) // auto-initialise - { - m_reg.address_current[channel] = m_reg.address_base[channel]; - m_reg.count_current[channel] = m_reg.count_base[channel]; - } - // TODO: send terminal count - set_eop(ASSERT_LINE); - } - break; - case 0x08: // memory -> I/O - if (m_cpu) - { - address_space& space = m_cpu->space(AS_PROGRAM); - data = space.read_byte(m_reg.address_current[channel]); - } - else + if (m_reg.mode_control[channel] & 0x20) // Address direction + m_reg.address_current[channel]--; + else + m_reg.address_current[channel]++; + m_reg.count_current[channel]--; + if(m_reg.count_current[channel] == 0xffff) + { + if (m_reg.mode_control[channel] & 0x10) // auto-initialise { - printf("upd71071_device: dma_transfer_timer - read from memory, no src space\n"); - data = 0x00; + m_reg.address_current[channel] = m_reg.address_base[channel]; + m_reg.count_current[channel] = m_reg.count_base[channel]; } + // TODO: send terminal count + set_eop(ASSERT_LINE); + } + break; + case 0x08: // memory -> I/O + if (m_cpu) + { + address_space& space = m_cpu->space(AS_PROGRAM); + data = space.read_byte(m_reg.address_current[channel]); + } + else + { + printf("upd71071_device: dma_transfer_timer - read from memory, no src space\n"); + data = 0x00; + } - switch (channel) - { - case 0: - if (!m_dma_write_0_cb.isnull()) - m_dma_write_0_cb((offs_t)0, data); - break; - case 1: - if (!m_dma_write_1_cb.isnull()) - m_dma_write_1_cb((offs_t)0, data); - break; - case 2: - if (!m_dma_write_2_cb.isnull()) - m_dma_write_2_cb((offs_t)0, data); - break; - case 3: - if (!m_dma_write_3_cb.isnull()) - m_dma_write_3_cb((offs_t)0, data); - break; - } - if (m_reg.mode_control[channel] & 0x20) // Address direction - m_reg.address_current[channel]--; - else - m_reg.address_current[channel]++; - m_reg.count_current[channel]--; - if(m_reg.count_current[channel] == 0xffff) + switch (channel) + { + case 0: + case 1: + case 2: + case 3: + if (!m_dma_write_cb[channel].isnull()) + m_dma_write_cb[channel](offs_t(0), data); + break; + } + if (m_reg.mode_control[channel] & 0x20) // Address direction + m_reg.address_current[channel]--; + else + m_reg.address_current[channel]++; + m_reg.count_current[channel]--; + if(m_reg.count_current[channel] == 0xffff) + { + if (m_reg.mode_control[channel] & 0x10) // auto-initialise { - if (m_reg.mode_control[channel] & 0x10) // auto-initialise - { - m_reg.address_current[channel] = m_reg.address_base[channel]; - m_reg.count_current[channel] = m_reg.count_base[channel]; - } - // TODO: send terminal count - set_eop(ASSERT_LINE); + m_reg.address_current[channel] = m_reg.address_base[channel]; + m_reg.count_current[channel] = m_reg.count_base[channel]; } - break; - case 0x0c: // Invalid - break; + // TODO: send terminal count + set_eop(ASSERT_LINE); + } + break; + case 0x0c: // Invalid + break; } } @@ -308,21 +273,20 @@ int upd71071_device::dmarq(int state, int channel) // start transfer switch (m_reg.mode_control[channel] & 0xc0) { - case 0x00: // Demand - // TODO - set_eop(CLEAR_LINE); - m_timer[channel]->adjust(attotime::from_hz(m_upd_clock), channel); - break; - case 0x40: // Single - m_timer[channel]->adjust(attotime::from_hz(m_upd_clock), channel); - break; - case 0x80: // Block - // TODO - break; - case 0xc0: // Cascade - // TODO - break; - + case 0x00: // Demand + // TODO + set_eop(CLEAR_LINE); + m_timer[channel]->adjust(attotime::from_hz(m_upd_clock), channel); + break; + case 0x40: // Single + m_timer[channel]->adjust(attotime::from_hz(m_upd_clock), channel); + break; + case 0x80: // Block + // TODO + break; + case 0xc0: // Cascade + // TODO + break; } } else @@ -341,72 +305,72 @@ READ8_MEMBER(upd71071_device::read) logerror("DMA: read from register %02x\n",offset); switch(offset) { - case 0x01: // Channel - ret = (1 << m_selected_channel); - if (m_base != 0) - ret |= 0x10; - break; - case 0x02: // Count (low) - if (m_base != 0) - ret = m_reg.count_base[m_selected_channel] & 0xff; - else - ret = m_reg.count_current[m_selected_channel] & 0xff; - break; - case 0x03: // Count (high) - if (m_base != 0) - ret = (m_reg.count_base[m_selected_channel] >> 8) & 0xff; - else - ret = (m_reg.count_current[m_selected_channel] >> 8) & 0xff; - break; - case 0x04: // Address (low) - if (m_base != 0) - ret = m_reg.address_base[m_selected_channel] & 0xff; - else - ret = m_reg.address_current[m_selected_channel] & 0xff; - break; - case 0x05: // Address (mid) - if (m_base != 0) - ret = (m_reg.address_base[m_selected_channel] >> 8) & 0xff; - else - ret = (m_reg.address_current[m_selected_channel] >> 8) & 0xff; - break; - case 0x06: // Address (high) - if (m_base != 0) - ret = (m_reg.address_base[m_selected_channel] >> 16) & 0xff; - else - ret = (m_reg.address_current[m_selected_channel] >> 16) & 0xff; - break; - case 0x07: // Address (highest) - if (m_base != 0) - ret = (m_reg.address_base[m_selected_channel] >> 24) & 0xff; - else - ret = (m_reg.address_current[m_selected_channel] >> 24) & 0xff; - break; - case 0x08: // Device control (low) - ret = m_reg.device_control & 0xff; - break; - case 0x09: // Device control (high) - ret = (m_reg.device_control >> 8) & 0xff; - break; - case 0x0a: // Mode control - ret = m_reg.mode_control[m_selected_channel]; - break; - case 0x0b: // Status - ret = m_reg.status; - m_reg.status &= ~0x0f; // resets END/TC? - break; - case 0x0c: // Temporary (low) - ret = m_reg.temp_h; - break; - case 0x0d: // Temporary (high) - ret = m_reg.temp_l; - break; - case 0x0e: // Request - ret = m_reg.request; - break; - case 0x0f: // Mask - ret = m_reg.mask; - break; + case 0x01: // Channel + ret = (1 << m_selected_channel); + if (m_base != 0) + ret |= 0x10; + break; + case 0x02: // Count (low) + if (m_base != 0) + ret = m_reg.count_base[m_selected_channel] & 0xff; + else + ret = m_reg.count_current[m_selected_channel] & 0xff; + break; + case 0x03: // Count (high) + if (m_base != 0) + ret = (m_reg.count_base[m_selected_channel] >> 8) & 0xff; + else + ret = (m_reg.count_current[m_selected_channel] >> 8) & 0xff; + break; + case 0x04: // Address (low) + if (m_base != 0) + ret = m_reg.address_base[m_selected_channel] & 0xff; + else + ret = m_reg.address_current[m_selected_channel] & 0xff; + break; + case 0x05: // Address (mid) + if (m_base != 0) + ret = (m_reg.address_base[m_selected_channel] >> 8) & 0xff; + else + ret = (m_reg.address_current[m_selected_channel] >> 8) & 0xff; + break; + case 0x06: // Address (high) + if (m_base != 0) + ret = (m_reg.address_base[m_selected_channel] >> 16) & 0xff; + else + ret = (m_reg.address_current[m_selected_channel] >> 16) & 0xff; + break; + case 0x07: // Address (highest) + if (m_base != 0) + ret = (m_reg.address_base[m_selected_channel] >> 24) & 0xff; + else + ret = (m_reg.address_current[m_selected_channel] >> 24) & 0xff; + break; + case 0x08: // Device control (low) + ret = m_reg.device_control & 0xff; + break; + case 0x09: // Device control (high) + ret = (m_reg.device_control >> 8) & 0xff; + break; + case 0x0a: // Mode control + ret = m_reg.mode_control[m_selected_channel]; + break; + case 0x0b: // Status + ret = m_reg.status; + m_reg.status &= ~0x0f; // resets END/TC? + break; + case 0x0c: // Temporary (low) + ret = m_reg.temp_h; + break; + case 0x0d: // Temporary (high) + ret = m_reg.temp_l; + break; + case 0x0e: // Request + ret = m_reg.request; + break; + case 0x0f: // Mask + ret = m_reg.mask; + break; } return ret; } @@ -415,86 +379,86 @@ WRITE8_MEMBER(upd71071_device::write) { switch (offset) { - case 0x00: // Initialise - // TODO: reset (bit 0) - m_buswidth = data & 0x02; - if (data & 0x01) - soft_reset(); - logerror("DMA: Initialise [%02x]\n",data); - break; - case 0x01: // Channel - m_selected_channel = data & 0x03; - m_base = data & 0x04; - logerror("DMA: Channel selected [%02x]\n",data); - break; - case 0x02: // Count (low) - m_reg.count_base[m_selected_channel] = - (m_reg.count_base[m_selected_channel] & 0xff00) | data; - if (m_base == 0) - m_reg.count_current[m_selected_channel] = - (m_reg.count_current[m_selected_channel] & 0xff00) | data; - logerror("DMA: Channel %i Counter set [%04x]\n",m_selected_channel,m_reg.count_base[m_selected_channel]); - break; - case 0x03: // Count (high) - m_reg.count_base[m_selected_channel] = - (m_reg.count_base[m_selected_channel] & 0x00ff) | (data << 8); - if (m_base == 0) - m_reg.count_current[m_selected_channel] = - (m_reg.count_current[m_selected_channel] & 0x00ff) | (data << 8); - logerror("DMA: Channel %i Counter set [%04x]\n",m_selected_channel,m_reg.count_base[m_selected_channel]); - break; - case 0x04: // Address (low) - m_reg.address_base[m_selected_channel] = - (m_reg.address_base[m_selected_channel] & 0xffffff00) | data; - if (m_base == 0) - m_reg.address_current[m_selected_channel] = - (m_reg.address_current[m_selected_channel] & 0xffffff00) | data; - logerror("DMA: Channel %i Address set [%08x]\n",m_selected_channel,m_reg.address_base[m_selected_channel]); - break; - case 0x05: // Address (mid) - m_reg.address_base[m_selected_channel] = - (m_reg.address_base[m_selected_channel] & 0xffff00ff) | (data << 8); - if (m_base == 0) - m_reg.address_current[m_selected_channel] = - (m_reg.address_current[m_selected_channel] & 0xffff00ff) | (data << 8); - logerror("DMA: Channel %i Address set [%08x]\n",m_selected_channel,m_reg.address_base[m_selected_channel]); - break; - case 0x06: // Address (high) - m_reg.address_base[m_selected_channel] = - (m_reg.address_base[m_selected_channel] & 0xff00ffff) | (data << 16); - if (m_base == 0) - m_reg.address_current[m_selected_channel] = - (m_reg.address_current[m_selected_channel] & 0xff00ffff) | (data << 16); - logerror("DMA: Channel %i Address set [%08x]\n",m_selected_channel,m_reg.address_base[m_selected_channel]); - break; - case 0x07: // Address (highest) - m_reg.address_base[m_selected_channel] = - (m_reg.address_base[m_selected_channel] & 0x00ffffff) | (data << 24); - if (m_base == 0) - m_reg.address_current[m_selected_channel] = - (m_reg.address_current[m_selected_channel] & 0x00ffffff) | (data << 24); - logerror("DMA: Channel %i Address set [%08x]\n",m_selected_channel,m_reg.address_base[m_selected_channel]); - break; - case 0x08: // Device control (low) - m_reg.device_control = (m_reg.device_control & 0xff00) | data; - logerror("DMA: Device control set [%04x]\n",m_reg.device_control); - break; - case 0x09: // Device control (high) - m_reg.device_control = (m_reg.device_control & 0x00ff) | (data << 8); - logerror("DMA: Device control set [%04x]\n",m_reg.device_control); - break; - case 0x0a: // Mode control - m_reg.mode_control[m_selected_channel] = data; - logerror("DMA: Channel %i Mode control set [%02x]\n",m_selected_channel,m_reg.mode_control[m_selected_channel]); - break; - case 0x0e: // Request - m_reg.request = data; - logerror("DMA: Request set [%02x]\n",data); - break; - case 0x0f: // Mask - m_reg.mask = data; - logerror("DMA: Mask set [%02x]\n",data); - break; + case 0x00: // Initialise + // TODO: reset (bit 0) + m_buswidth = data & 0x02; + if (data & 0x01) + soft_reset(); + logerror("DMA: Initialise [%02x]\n",data); + break; + case 0x01: // Channel + m_selected_channel = data & 0x03; + m_base = data & 0x04; + logerror("DMA: Channel selected [%02x]\n",data); + break; + case 0x02: // Count (low) + m_reg.count_base[m_selected_channel] = + (m_reg.count_base[m_selected_channel] & 0xff00) | data; + if (m_base == 0) + m_reg.count_current[m_selected_channel] = + (m_reg.count_current[m_selected_channel] & 0xff00) | data; + logerror("DMA: Channel %i Counter set [%04x]\n",m_selected_channel,m_reg.count_base[m_selected_channel]); + break; + case 0x03: // Count (high) + m_reg.count_base[m_selected_channel] = + (m_reg.count_base[m_selected_channel] & 0x00ff) | (data << 8); + if (m_base == 0) + m_reg.count_current[m_selected_channel] = + (m_reg.count_current[m_selected_channel] & 0x00ff) | (data << 8); + logerror("DMA: Channel %i Counter set [%04x]\n",m_selected_channel,m_reg.count_base[m_selected_channel]); + break; + case 0x04: // Address (low) + m_reg.address_base[m_selected_channel] = + (m_reg.address_base[m_selected_channel] & 0xffffff00) | data; + if (m_base == 0) + m_reg.address_current[m_selected_channel] = + (m_reg.address_current[m_selected_channel] & 0xffffff00) | data; + logerror("DMA: Channel %i Address set [%08x]\n",m_selected_channel,m_reg.address_base[m_selected_channel]); + break; + case 0x05: // Address (mid) + m_reg.address_base[m_selected_channel] = + (m_reg.address_base[m_selected_channel] & 0xffff00ff) | (data << 8); + if (m_base == 0) + m_reg.address_current[m_selected_channel] = + (m_reg.address_current[m_selected_channel] & 0xffff00ff) | (data << 8); + logerror("DMA: Channel %i Address set [%08x]\n",m_selected_channel,m_reg.address_base[m_selected_channel]); + break; + case 0x06: // Address (high) + m_reg.address_base[m_selected_channel] = + (m_reg.address_base[m_selected_channel] & 0xff00ffff) | (data << 16); + if (m_base == 0) + m_reg.address_current[m_selected_channel] = + (m_reg.address_current[m_selected_channel] & 0xff00ffff) | (data << 16); + logerror("DMA: Channel %i Address set [%08x]\n",m_selected_channel,m_reg.address_base[m_selected_channel]); + break; + case 0x07: // Address (highest) + m_reg.address_base[m_selected_channel] = + (m_reg.address_base[m_selected_channel] & 0x00ffffff) | (data << 24); + if (m_base == 0) + m_reg.address_current[m_selected_channel] = + (m_reg.address_current[m_selected_channel] & 0x00ffffff) | (data << 24); + logerror("DMA: Channel %i Address set [%08x]\n",m_selected_channel,m_reg.address_base[m_selected_channel]); + break; + case 0x08: // Device control (low) + m_reg.device_control = (m_reg.device_control & 0xff00) | data; + logerror("DMA: Device control set [%04x]\n",m_reg.device_control); + break; + case 0x09: // Device control (high) + m_reg.device_control = (m_reg.device_control & 0x00ff) | (data << 8); + logerror("DMA: Device control set [%04x]\n",m_reg.device_control); + break; + case 0x0a: // Mode control + m_reg.mode_control[m_selected_channel] = data; + logerror("DMA: Channel %i Mode control set [%02x]\n",m_selected_channel,m_reg.mode_control[m_selected_channel]); + break; + case 0x0e: // Request + m_reg.request = data; + logerror("DMA: Request set [%02x]\n",data); + break; + case 0x0f: // Mask + m_reg.mask = data; + logerror("DMA: Mask set [%02x]\n",data); + break; } } diff --git a/src/devices/machine/upd71071.h b/src/devices/machine/upd71071.h index 4a4b6d1c330..21720d295d6 100644 --- a/src/devices/machine/upd71071.h +++ b/src/devices/machine/upd71071.h @@ -1,52 +1,25 @@ // license:BSD-3-Clause // copyright-holders:Barry Rodewald -#ifndef __UPD71071_H__ -#define __UPD71071_H__ +#ifndef MAME_MACHINE_UPD71071_H +#define MAME_MACHINE_UPD71071_H +#pragma once -struct upd71071_reg -{ - uint8_t initialise; - uint8_t channel; - uint16_t count_current[4]; - uint16_t count_base[4]; - uint32_t address_current[4]; - uint32_t address_base[4]; - uint16_t device_control; - uint8_t mode_control[4]; - uint8_t status; - uint8_t temp_l; - uint8_t temp_h; - uint8_t request; - uint8_t mask; -}; - class upd71071_device : public device_t { public: upd71071_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~upd71071_device() {} static void static_set_cpu_tag(device_t &device, const char *tag) { downcast(device).m_cpu.set_tag(tag); } static void set_clock(device_t &device, int clock) { downcast(device).m_upd_clock = clock; } - template static devcb_base &set_out_hreq_callback(device_t &device, _Object object) { return downcast(device).m_out_hreq_cb.set_callback(object); } - template static devcb_base &set_out_eop_callback(device_t &device, _Object object) { return downcast(device).m_out_eop_cb.set_callback(object); } - - template static devcb_base &set_dma_read_0_callback(device_t &device, _Object object) { return downcast(device).m_dma_read_0_cb.set_callback(object); } - template static devcb_base &set_dma_read_1_callback(device_t &device, _Object object) { return downcast(device).m_dma_read_1_cb.set_callback(object); } - template static devcb_base &set_dma_read_2_callback(device_t &device, _Object object) { return downcast(device).m_dma_read_2_cb.set_callback(object); } - template static devcb_base &set_dma_read_3_callback(device_t &device, _Object object) { return downcast(device).m_dma_read_3_cb.set_callback(object); } - template static devcb_base &set_dma_write_0_callback(device_t &device, _Object object) { return downcast(device).m_dma_write_0_cb.set_callback(object); } - template static devcb_base &set_dma_write_1_callback(device_t &device, _Object object) { return downcast(device).m_dma_write_1_cb.set_callback(object); } - template static devcb_base &set_dma_write_2_callback(device_t &device, _Object object) { return downcast(device).m_dma_write_2_cb.set_callback(object); } - template static devcb_base &set_dma_write_3_callback(device_t &device, _Object object) { return downcast(device).m_dma_write_3_cb.set_callback(object); } + template static devcb_base &set_out_hreq_callback(device_t &device, Object &&cb) { return downcast(device).m_out_hreq_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_eop_callback(device_t &device, Object &&cb) { return downcast(device).m_out_eop_cb.set_callback(std::forward(cb)); } - template static devcb_base &set_out_dack_0_callback(device_t &device, _Object object) { return downcast(device).m_out_dack_0_cb.set_callback(object); } - template static devcb_base &set_out_dack_1_callback(device_t &device, _Object object) { return downcast(device).m_out_dack_1_cb.set_callback(object); } - template static devcb_base &set_out_dack_2_callback(device_t &device, _Object object) { return downcast(device).m_out_dack_2_cb.set_callback(object); } - template static devcb_base &set_out_dack_3_callback(device_t &device, _Object object) { return downcast(device).m_out_dack_3_cb.set_callback(object); } + template static devcb_base &set_dma_read_callback(device_t &device, Object &&cb) { return downcast(device).m_dma_read_cb[N].set_callback(std::forward(cb)); } + template static devcb_base &set_dma_write_callback(device_t &device, Object &&cb) { return downcast(device).m_dma_write_cb[N].set_callback(std::forward(cb)); } + template static devcb_base &set_out_dack_callback(device_t &device, Object &&cb) { return downcast(device).m_out_dack_cb[N].set_callback(std::forward(cb)); } DECLARE_READ8_MEMBER(read); DECLARE_WRITE8_MEMBER(write); @@ -60,11 +33,28 @@ protected: virtual void device_start() override; private: - // internal state + struct upd71071_reg + { + uint8_t initialise; + uint8_t channel; + uint16_t count_current[4]; + uint16_t count_base[4]; + uint32_t address_current[4]; + uint32_t address_base[4]; + uint16_t device_control; + uint8_t mode_control[4]; + uint8_t status; + uint8_t temp_l; + uint8_t temp_h; + uint8_t request; + uint8_t mask; + }; + void soft_reset(); TIMER_CALLBACK_MEMBER(dma_transfer_timer); - struct upd71071_reg m_reg; + // internal state + upd71071_reg m_reg; int m_selected_channel; int m_buswidth; int m_dmarq[4]; @@ -75,71 +65,62 @@ private: int m_upd_clock; devcb_write_line m_out_hreq_cb; devcb_write_line m_out_eop_cb; - devcb_read16 m_dma_read_0_cb; - devcb_read16 m_dma_read_1_cb; - devcb_read16 m_dma_read_2_cb; - devcb_read16 m_dma_read_3_cb; - devcb_write16 m_dma_write_0_cb; - devcb_write16 m_dma_write_1_cb; - devcb_write16 m_dma_write_2_cb; - devcb_write16 m_dma_write_3_cb; - devcb_write_line m_out_dack_0_cb; - devcb_write_line m_out_dack_1_cb; - devcb_write_line m_out_dack_2_cb; - devcb_write_line m_out_dack_3_cb; + devcb_read16 m_dma_read_cb[4]; + devcb_write16 m_dma_write_cb[4]; + devcb_write_line m_out_dack_cb[4]; int m_hreq; int m_eop; optional_device m_cpu; }; -extern const device_type UPD71071; +DECLARE_DEVICE_TYPE(UPD71071, upd71071_device) -#define MCFG_UPD71071_CPU(_tag) \ - upd71071_device::static_set_cpu_tag(*device, "^" _tag); +#define MCFG_UPD71071_CPU(tag) \ + upd71071_device::static_set_cpu_tag(*device, ("^" tag)); -#define MCFG_UPD71071_CLOCK(_clk) \ - upd71071_device::set_clock(*device, _clk); +#define MCFG_UPD71071_CLOCK(clk) \ + upd71071_device::set_clock(*device, (clk)); -#define MCFG_UPD71071_OUT_HREQ_CB(_devcb) \ - devcb = &upd71071_device::set_out_hreq_callback(*device, DEVCB_##_devcb); +#define MCFG_UPD71071_OUT_HREQ_CB(cb) \ + devcb = &upd71071_device::set_out_hreq_callback(*device, (DEVCB_##cb)); -#define MCFG_UPD71071_OUT_EOP_CB(_devcb) \ - devcb = &upd71071_device::set_out_eop_callback(*device, DEVCB_##_devcb); +#define MCFG_UPD71071_OUT_EOP_CB(cb) \ + devcb = &upd71071_device::set_out_eop_callback(*device, (DEVCB_##cb)); -#define MCFG_UPD71071_DMA_READ_0_CB(_devcb) \ - devcb = &upd71071_device::set_dma_read_0_callback(*device, DEVCB_##_devcb); +#define MCFG_UPD71071_DMA_READ_0_CB(cb) \ + devcb = &upd71071_device::set_dma_read_callback<0>(*device, (DEVCB_##cb)); -#define MCFG_UPD71071_DMA_READ_1_CB(_devcb) \ - devcb = &upd71071_device::set_dma_read_1_callback(*device, DEVCB_##_devcb); +#define MCFG_UPD71071_DMA_READ_1_CB(cb) \ + devcb = &upd71071_device::set_dma_read_callback<1>(*device, (DEVCB_##cb)); -#define MCFG_UPD71071_DMA_READ_2_CB(_devcb) \ - devcb = &upd71071_device::set_dma_read_2_callback(*device, DEVCB_##_devcb); +#define MCFG_UPD71071_DMA_READ_2_CB(cb) \ + devcb = &upd71071_device::set_dma_read_callback<2>(*device, (DEVCB_##cb)); -#define MCFG_UPD71071_DMA_READ_3_CB(_devcb) \ - devcb = &upd71071_device::set_dma_read_3_callback(*device, DEVCB_##_devcb); +#define MCFG_UPD71071_DMA_READ_3_CB(cb) \ + devcb = &upd71071_device::set_dma_read_callback<3>(*device, (DEVCB_##cb)); -#define MCFG_UPD71071_DMA_WRITE_0_CB(_devcb) \ - devcb = &upd71071_device::set_dma_write_0_callback(*device, DEVCB_##_devcb); +#define MCFG_UPD71071_DMA_WRITE_0_CB(cb) \ + devcb = &upd71071_device::set_dma_write_callback<0>(*device, (DEVCB_##cb)); -#define MCFG_UPD71071_DMA_WRITE_1_CB(_devcb) \ - devcb = &upd71071_device::set_dma_write_1_callback(*device, DEVCB_##_devcb); +#define MCFG_UPD71071_DMA_WRITE_1_CB(cb) \ + devcb = &upd71071_device::set_dma_write_callback<1>(*device, (DEVCB_##cb)); -#define MCFG_UPD71071_DMA_WRITE_2_CB(_devcb) \ - devcb = &upd71071_device::set_dma_write_2_callback(*device, DEVCB_##_devcb); +#define MCFG_UPD71071_DMA_WRITE_2_CB(cb) \ + devcb = &upd71071_device::set_dma_write_callback<2>(*device, (DEVCB_##cb)); -#define MCFG_UPD71071_DMA_WRITE_3_CB(_devcb) \ - devcb = &upd71071_device::set_dma_write_3_callback(*device, DEVCB_##_devcb); +#define MCFG_UPD71071_DMA_WRITE_3_CB(cb) \ + devcb = &upd71071_device::set_dma_write_callback<3>(*device, (DEVCB_##cb)); -#define MCFG_UPD71071_OUT_DACK_0_CB(_devcb) \ - devcb = &upd71071_device::set_out_dack_0_callback(*device, DEVCB_##_devcb); +#define MCFG_UPD71071_OUT_DACK_0_CB(cb) \ + devcb = &upd71071_device::set_out_dack_callback<0>(*device, (DEVCB_##cb)); -#define MCFG_UPD71071_OUT_DACK_1_CB(_devcb) \ - devcb = &upd71071_device::set_out_dack_1_callback(*device, DEVCB_##_devcb); +#define MCFG_UPD71071_OUT_DACK_1_CB(cb) \ + devcb = &upd71071_device::set_out_dack_callback<1>(*device, (DEVCB_##cb)); -#define MCFG_UPD71071_OUT_DACK_2_CB(_devcb) \ - devcb = &upd71071_device::set_out_dack_2_callback(*device, DEVCB_##_devcb); +#define MCFG_UPD71071_OUT_DACK_2_CB(cb) \ + devcb = &upd71071_device::set_out_dack_callback<2>(*device, (DEVCB_##cb)); -#define MCFG_UPD71071_OUT_DACK_3_CB(_devcb) \ - devcb = &upd71071_device::set_out_dack_3_callback(*device, DEVCB_##_devcb); +#define MCFG_UPD71071_OUT_DACK_3_CB(cb) \ + devcb = &upd71071_device::set_out_dack_callback<3>(*device, (DEVCB_##cb)); -#endif /*UPD71071_H_*/ +#endif // MAME_MACHINE_UPD71071_H diff --git a/src/devices/machine/upd765.cpp b/src/devices/machine/upd765.cpp index bbae185d7d6..2884063e27a 100644 --- a/src/devices/machine/upd765.cpp +++ b/src/devices/machine/upd765.cpp @@ -7,18 +7,18 @@ #define LOG 0 -const device_type UPD765A = device_creator; -const device_type UPD765B = device_creator; -const device_type I8272A = device_creator; -const device_type UPD72065 = device_creator; -const device_type SMC37C78 = device_creator; -const device_type N82077AA = device_creator; -const device_type PC_FDC_SUPERIO = device_creator; -const device_type DP8473 = device_creator; -const device_type PC8477A = device_creator; -const device_type WD37C65C = device_creator; -const device_type MCS3201 = device_creator; -const device_type TC8566AF = device_creator; +DEFINE_DEVICE_TYPE(UPD765A, upd765a_device, "upd765a", "NEC uPD765A FDC") +DEFINE_DEVICE_TYPE(UPD765B, upd765b_device, "upd765b", "NEC uPD765B FDC") +DEFINE_DEVICE_TYPE(I8272A, i8272a_device, "i8272a", "Intel 8272A FDC") +DEFINE_DEVICE_TYPE(UPD72065, upd72065_device, "upd72065", "NEC uPD72065 FDC") +DEFINE_DEVICE_TYPE(SMC37C78, smc37c78_device, "smc37c78", "SMC FDC73C78 FDC") +DEFINE_DEVICE_TYPE(N82077AA, n82077aa_device, "n82077aa", "Intel N82077AA FDC") +DEFINE_DEVICE_TYPE(PC_FDC_SUPERIO, pc_fdc_superio_device, "pc_fdc_superio", "PC FDC SUPERIO") +DEFINE_DEVICE_TYPE(DP8473, dp8473_device, "dp8473", "National Semiconductor DP8473 FDC") +DEFINE_DEVICE_TYPE(PC8477A, pc8477a_device, "pc8477a", "National Semiconductor PC8477A FDC") +DEFINE_DEVICE_TYPE(WD37C65C, wd37c65c_device, "wd37c65c", "Western Digital WD37C65C FDC") +DEFINE_DEVICE_TYPE(MCS3201, mcs3201_device, "mcs3201", "Motorola MCS3201 FDC") +DEFINE_DEVICE_TYPE(TC8566AF, tc8566af_device, "tc8566af", "Toshiba TC8566AF FDC") DEVICE_ADDRESS_MAP_START(map, 8, upd765a_device) AM_RANGE(0x0, 0x0) AM_READ(msr_r) @@ -109,10 +109,10 @@ DEVICE_ADDRESS_MAP_START( map, 8, tc8566af_device ) ADDRESS_MAP_END -int upd765_family_device::rates[4] = { 500000, 300000, 250000, 1000000 }; +constexpr int upd765_family_device::rates[4]; -upd765_family_device::upd765_family_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - pc_fdc_interface(mconfig, type, name, tag, owner, clock, shortname, source), +upd765_family_device::upd765_family_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + pc_fdc_interface(mconfig, type, tag, owner, clock), intrq_cb(*this), drq_cb(*this), hdl_cb(*this) @@ -2419,60 +2419,60 @@ bool upd765_family_device::sector_matches() const cur_live.idbuf[3] == command[5]; } -upd765a_device::upd765a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : upd765_family_device(mconfig, UPD765A, "UPD765A", tag, owner, clock, "upd765a", __FILE__) +upd765a_device::upd765a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : upd765_family_device(mconfig, UPD765A, tag, owner, clock) { dor_reset = 0x0c; } -upd765b_device::upd765b_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : upd765_family_device(mconfig, UPD765B, "UPD765B", tag, owner, clock, "upd765b", __FILE__) +upd765b_device::upd765b_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : upd765_family_device(mconfig, UPD765B, tag, owner, clock) { dor_reset = 0x0c; } -i8272a_device::i8272a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : upd765_family_device(mconfig, I8272A, "I8272A", tag, owner, clock, "i8272a", __FILE__) +i8272a_device::i8272a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : upd765_family_device(mconfig, I8272A, tag, owner, clock) { dor_reset = 0x0c; } -upd72065_device::upd72065_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : upd765_family_device(mconfig, UPD72065, "UPD72065", tag, owner, clock, "upd72065", __FILE__) +upd72065_device::upd72065_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : upd765_family_device(mconfig, UPD72065, tag, owner, clock) { dor_reset = 0x0c; } -smc37c78_device::smc37c78_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : upd765_family_device(mconfig, SMC37C78, "SMC37C78", tag, owner, clock, "smc37c78", __FILE__) +smc37c78_device::smc37c78_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : upd765_family_device(mconfig, SMC37C78, tag, owner, clock) { ready_connected = false; select_connected = true; } -n82077aa_device::n82077aa_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : upd765_family_device(mconfig, N82077AA, "N82077AA", tag, owner, clock, "n82077aa", __FILE__) +n82077aa_device::n82077aa_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : upd765_family_device(mconfig, N82077AA, tag, owner, clock) { ready_connected = false; select_connected = true; } -pc_fdc_superio_device::pc_fdc_superio_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : upd765_family_device(mconfig, PC_FDC_SUPERIO, "PC FDC SUPERIO", tag, owner, clock, "pc_fdc_superio", __FILE__) +pc_fdc_superio_device::pc_fdc_superio_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : upd765_family_device(mconfig, PC_FDC_SUPERIO, tag, owner, clock) { ready_polled = false; ready_connected = false; select_connected = true; } -dp8473_device::dp8473_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : upd765_family_device(mconfig, DP8473, "DP8473", tag, owner, clock, "dp8473", __FILE__) +dp8473_device::dp8473_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : upd765_family_device(mconfig, DP8473, tag, owner, clock) { ready_polled = false; ready_connected = false; select_connected = true; } -pc8477a_device::pc8477a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : upd765_family_device(mconfig, PC8477A, "PC8477A", tag, owner, clock, "pc8477a", __FILE__) +pc8477a_device::pc8477a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : upd765_family_device(mconfig, PC8477A, tag, owner, clock) { ready_polled = true; ready_connected = false; select_connected = true; } -wd37c65c_device::wd37c65c_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : upd765_family_device(mconfig, WD37C65C, "WD37C65C", tag, owner, clock, "wd37c65c", __FILE__) +wd37c65c_device::wd37c65c_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : upd765_family_device(mconfig, WD37C65C, tag, owner, clock) { ready_polled = true; ready_connected = false; @@ -2480,7 +2480,7 @@ wd37c65c_device::wd37c65c_device(const machine_config &mconfig, const char *tag, } mcs3201_device::mcs3201_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - upd765_family_device(mconfig, MCS3201, "Motorola MCS3201", tag, owner, clock, "mcs3201", __FILE__), + upd765_family_device(mconfig, MCS3201, tag, owner, clock), m_input_handler(*this) { dor_reset = 0x0c; @@ -2501,7 +2501,7 @@ READ8_MEMBER( mcs3201_device::input_r ) } tc8566af_device::tc8566af_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : upd765_family_device(mconfig, TC8566AF, "TC8566AF", tag, owner, clock, "tc8566af", __FILE__) + : upd765_family_device(mconfig, TC8566AF, tag, owner, clock) , m_cr1(0) { ready_polled = true; diff --git a/src/devices/machine/upd765.h b/src/devices/machine/upd765.h index 458d832190c..143419114cd 100644 --- a/src/devices/machine/upd765.h +++ b/src/devices/machine/upd765.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Olivier Galibert -#ifndef __UPD765_F_H__ -#define __UPD765_F_H__ +#ifndef MAME_DEVICES_MACHINE_UPD765_H +#define MAME_DEVICES_MACHINE_UPD765_H + +#pragma once #include "imagedev/floppy.h" #include "fdc_pll.h" @@ -70,12 +72,13 @@ /* Interface required for PC ISA wrapping */ class pc_fdc_interface : public device_t { +protected: + using device_t::device_t; + public: typedef delegate byte_read_cb; typedef delegate byte_write_cb; - pc_fdc_interface(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : device_t(mconfig, type, name, tag, owner, clock, shortname, source) {} - /* Note that the address map must cover and handle the whole 0-7 * range. The upd765, while conforming to the rest of the * interface, is not eligible as a result. @@ -94,11 +97,9 @@ class upd765_family_device : public pc_fdc_interface { public: enum { MODE_AT, MODE_PS2, MODE_M30 }; - upd765_family_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - - template static devcb_base &set_intrq_wr_callback(device_t &device, _Object object) { return downcast(device).intrq_cb.set_callback(object); } - template static devcb_base &set_drq_wr_callback(device_t &device, _Object object) { return downcast(device).drq_cb.set_callback(object); } - template static devcb_base &set_hdl_wr_callback(device_t &device, _Object object) { return downcast(device).hdl_cb.set_callback(object); } + template static devcb_base &set_intrq_wr_callback(device_t &device, Object &&cb) { return downcast(device).intrq_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_drq_wr_callback(device_t &device, Object &&cb) { return downcast(device).drq_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_hdl_wr_callback(device_t &device, Object &&cb) { return downcast(device).hdl_cb.set_callback(std::forward(cb)); } virtual DECLARE_ADDRESS_MAP(map, 8) override = 0; @@ -140,6 +141,8 @@ public: void soft_reset(); protected: + upd765_family_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; virtual void device_reset() override; virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; @@ -306,7 +309,7 @@ protected: fdc_pll_t pll; }; - static int rates[4]; + static constexpr int rates[4] = { 500000, 300000, 250000, 1000000 }; bool ready_connected, ready_polled, select_connected; @@ -491,7 +494,7 @@ public: mcs3201_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // static configuration helpers - template static devcb_base &set_input_handler(device_t &device, _Object object) { return downcast(device).m_input_handler.set_callback(object); } + template static devcb_base &set_input_handler(device_t &device, Object &&cb) { return downcast(device).m_input_handler.set_callback(std::forward(cb)); } virtual DECLARE_ADDRESS_MAP(map, 8) override; DECLARE_READ8_MEMBER( input_r ); @@ -518,17 +521,17 @@ private: uint8_t m_cr1; }; -extern const device_type UPD765A; -extern const device_type UPD765B; -extern const device_type I8272A; -extern const device_type UPD72065; -extern const device_type SMC37C78; -extern const device_type N82077AA; -extern const device_type PC_FDC_SUPERIO; -extern const device_type DP8473; -extern const device_type PC8477A; -extern const device_type WD37C65C; -extern const device_type MCS3201; -extern const device_type TC8566AF; - -#endif +DECLARE_DEVICE_TYPE(UPD765A, upd765a_device) +DECLARE_DEVICE_TYPE(UPD765B, upd765b_device) +DECLARE_DEVICE_TYPE(I8272A, i8272a_device) +DECLARE_DEVICE_TYPE(UPD72065, upd72065_device) +DECLARE_DEVICE_TYPE(SMC37C78, smc37c78_device) +DECLARE_DEVICE_TYPE(N82077AA, n82077aa_device) +DECLARE_DEVICE_TYPE(PC_FDC_SUPERIO, pc_fdc_superio_device) +DECLARE_DEVICE_TYPE(DP8473, dp8473_device) +DECLARE_DEVICE_TYPE(PC8477A, pc8477a_device) +DECLARE_DEVICE_TYPE(WD37C65C, wd37c65c_device) +DECLARE_DEVICE_TYPE(MCS3201, mcs3201_device) +DECLARE_DEVICE_TYPE(TC8566AF, tc8566af_device) + +#endif // MAME_DEVICES_MACHINE_UPD765_H diff --git a/src/devices/machine/v3021.cpp b/src/devices/machine/v3021.cpp index c448ac3a4ea..c405641b72f 100644 --- a/src/devices/machine/v3021.cpp +++ b/src/devices/machine/v3021.cpp @@ -22,7 +22,7 @@ //************************************************************************** // device type definition -const device_type v3021 = device_creator; +DEFINE_DEVICE_TYPE(V3021, v3021_device, "v3021", "V3021 RTC") //************************************************************************** @@ -34,13 +34,13 @@ const device_type v3021 = device_creator; //------------------------------------------------- v3021_device::v3021_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, v3021, "V3021 RTC", tag, owner, clock, "v3021", __FILE__), m_cal_mask(0), m_cal_com(0), m_cal_cnt(0), m_cal_val(0) + : device_t(mconfig, V3021, tag, owner, clock), m_cal_mask(0), m_cal_com(0), m_cal_cnt(0), m_cal_val(0) { } TIMER_CALLBACK_MEMBER(v3021_device::timer_callback) { - static const uint8_t dpm[12] = { 0x31, 0x28, 0x31, 0x30, 0x31, 0x30, 0x31, 0x31, 0x30, 0x31, 0x30, 0x31 }; + static constexpr uint8_t dpm[12] = { 0x31, 0x28, 0x31, 0x30, 0x31, 0x30, 0x31, 0x31, 0x30, 0x31, 0x30, 0x31 }; int dpm_count; m_rtc.sec++; diff --git a/src/devices/machine/v3021.h b/src/devices/machine/v3021.h index 5a968e30bfb..d7ac0eae603 100644 --- a/src/devices/machine/v3021.h +++ b/src/devices/machine/v3021.h @@ -10,10 +10,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_MACHINE_V3021_H +#define MAME_MACHINE_V3021_H -#ifndef __v3021DEV_H__ -#define __v3021DEV_H__ +#pragma once @@ -22,21 +22,15 @@ //************************************************************************** #define MCFG_V3021_ADD(_tag) \ - MCFG_DEVICE_ADD(_tag, v3021, XTAL_32_768kHz) + MCFG_DEVICE_ADD(_tag, V3021, XTAL_32_768kHz) //************************************************************************** // TYPE DEFINITIONS //************************************************************************** -struct rtc_regs_t -{ - uint8_t sec, min, hour, day, wday, month, year; -}; - - // ======================> v3021_device -class v3021_device : public device_t +class v3021_device : public device_t { public: // construction/destruction @@ -48,6 +42,11 @@ public: TIMER_CALLBACK_MEMBER(timer_callback); protected: + struct rtc_regs_t + { + uint8_t sec, min, hour, day, wday, month, year; + }; + // device-level overrides virtual void device_validity_check(validity_checker &valid) const override; virtual void device_start() override; @@ -60,14 +59,6 @@ protected: // device type definition -extern const device_type v3021; - - - -//************************************************************************** -// GLOBAL VARIABLES -//************************************************************************** - - +DECLARE_DEVICE_TYPE(V3021, v3021_device) -#endif +#endif // MAME_MACHINE_V3021_H diff --git a/src/devices/machine/vrc4373.cpp b/src/devices/machine/vrc4373.cpp index c37b64025aa..ea4ed0dd716 100644 --- a/src/devices/machine/vrc4373.cpp +++ b/src/devices/machine/vrc4373.cpp @@ -3,11 +3,72 @@ #include "emu.h" #include "vrc4373.h" -#define LOG_NILE (0) -#define LOG_NILE_MASTER (0) -#define LOG_NILE_TARGET (0) - -const device_type VRC4373 = device_creator; +#define LOG_GENERAL (1U << 0) +#define LOG_NILE (1U << 1) +#define LOG_NILE_MASTER (1U << 2) +#define LOG_NILE_TARGET (1U << 3) + +//#define VERBOSE (LOG_NILE | LOG_NILE_MASTER | LOG_NILE_TARGET) +#include "logmacro.h" + +#define LOGNILE(...) LOGMASKED(LOG_NILE, __VA_ARGS__) +#define LOGNILEMASTER(...) LOGMASKED(LOG_NILE_MASTER, __VA_ARGS__) +#define LOGNILETARGET(...) LOGMASKED(LOG_NILE_TARGET, __VA_ARGS__) + + +#define VRC4373_PAGESHIFT 12 + +/* NILE 3 registers 0x000-0x0ff */ +#define NREG_BMCR (0x000/4) +#define NREG_SIMM1 (0x004/4) +#define NREG_SIMM2 (0x008/4) +#define NREG_SIMM3 (0x00C/4) +#define NREG_SIMM4 (0x010/4) +#define NREG_PCIMW1 (0x014/4) +#define NREG_PCIMW2 (0x018/4) +#define NREG_PCITW1 (0x01C/4) +#define NREG_PCITW2 (0x020/4) +#define NREG_PCIMIOW (0x024/4) +#define NREG_PCICDR (0x028/4) +#define NREG_PCICAR (0x02C/4) +#define NREG_PCIMB1 (0x030/4) +#define NREG_PCIMB2 (0x034/4) +#define NREG_DMACR1 (0x038/4) +#define NREG_DMAMAR1 (0x03C/4) +#define NREG_DMAPCI1 (0x040/4) +#define NREG_DMACR2 (0x044/4) +#define NREG_DMAMAR2 (0x048/4) +#define NREG_DMAPCI2 (0x04C/4) + +#define NREG_BESR (0x050/4) +#define NREG_ICSR (0x054/4) +#define NREG_DRAMRCR (0x058/4) +#define NREG_BOOTWP (0x05C/4) +#define NREG_PCIEAR (0x060/4) +#define NREG_DMA_REM (0x064/4) +#define NREG_DMA_CMAR (0x068/4) +#define NREG_DMA_CPAR (0x06C/4) +#define NREG_PCIRC (0x070/4) +#define NREG_PCIEN (0x074/4) +#define NREG_PMIR (0x078/4) + +#define PCI_BUS_CLOCK 33000000 +// Number of dma words to transfer at a time, real hardware bursts 8 +#define DMA_BURST_SIZE 128 +#define DMA_TIMER_PERIOD attotime::from_hz(PCI_BUS_CLOCK / 32) + +#define DMA_BUSY 0x80000000 +#define DMA_INT_EN 0x40000000 +#define DMA_RW 0x20000000 +#define DMA_GO 0x10000000 +#define DMA_SUS 0x08000000 +#define DMA_INC 0x04000000 +#define DMA_MIO 0x02000000 +#define DMA_RST 0x01000000 +#define DMA_BLK_SIZE 0x000fffff + + +DEFINE_DEVICE_TYPE(VRC4373, vrc4373_device, "vrc4373", "NEC VRC4373 System Controller") DEVICE_ADDRESS_MAP_START(config_map, 32, vrc4373_device) AM_RANGE(0x40, 0x43) AM_READWRITE (pcictrl_r, pcictrl_w) @@ -30,7 +91,7 @@ DEVICE_ADDRESS_MAP_START(target2_map, 32, vrc4373_device) ADDRESS_MAP_END vrc4373_device::vrc4373_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : pci_host_device(mconfig, VRC4373, "NEC VRC4373 System Controller", tag, owner, clock, "vrc4373", __FILE__), + : pci_host_device(mconfig, VRC4373, tag, owner, clock), m_cpu_space(nullptr), m_cpu(nullptr), cpu_tag(nullptr), m_irq_num(-1), m_ram_size(0x0), m_simm0_size(0x0), m_mem_config("memory_space", ENDIANNESS_LITTLE, 32, 32), m_io_config("io_space", ENDIANNESS_LITTLE, 32, 32), m_pci1_laddr(0), m_pci2_laddr(0), m_pci_io_laddr(0), m_target1_laddr(0), m_target2_laddr(0), @@ -136,9 +197,7 @@ void vrc4373_device::map_cpu_space() m_ram.resize(winSize / 4); m_cpu_space->install_ram(winStart, winEnd, m_ram.data()); m_cpu->add_fastram(winStart, winEnd, false, m_ram.data()); - if (LOG_NILE) - logerror("map_cpu_space ram_size=%08X ram_base=%08X\n", winSize, winStart); - //printf("map_cpu_space ram_size=%08X bytes ram_base=%08X\n", winSize, winStart); + LOGNILE("map_cpu_space ram_size=%08X ram_base=%08X\n", winSize, winStart); } // Map SIMMs @@ -156,9 +215,7 @@ void vrc4373_device::map_cpu_space() m_simm[simIndex].resize(winSize / 4); m_cpu_space->install_ram(winStart, winEnd, m_simm[simIndex].data()); m_cpu->add_fastram(winStart, winEnd, false, m_simm[simIndex].data()); - if (LOG_NILE) - logerror("map_cpu_space simm_size[%i]=%08X simm_base=%08X\n", simIndex, winSize, winStart); - //printf("map_cpu_space simm_size[%i]=%08X bytes simm_base=%08X\n", simIndex, winSize, winStart); + LOGNILE("map_cpu_space simm_size[%i]=%08X simm_base=%08X\n", simIndex, winSize, winStart); } } @@ -169,8 +226,7 @@ void vrc4373_device::map_cpu_space() winSize = winEnd - winStart + 1; m_cpu_space->install_read_handler(winStart, winEnd, read32_delegate(FUNC(vrc4373_device::master1_r), this)); m_cpu_space->install_write_handler(winStart, winEnd, write32_delegate(FUNC(vrc4373_device::master1_w), this)); - if (LOG_NILE) - logerror("%s: map_cpu_space Master Window 1 start=%08X end=%08X size=%08X laddr=%08X\n", tag(), winStart, winEnd, winSize, m_pci1_laddr); + LOGNILE("map_cpu_space Master Window 1 start=%08X end=%08X size=%08X laddr=%08X\n", winStart, winEnd, winSize, m_pci1_laddr); } // PCI Master Window 2 if (m_cpu_regs[NREG_PCIMW2]&0x1000) { @@ -179,8 +235,7 @@ void vrc4373_device::map_cpu_space() winSize = winEnd - winStart + 1; m_cpu_space->install_read_handler(winStart, winEnd, read32_delegate(FUNC(vrc4373_device::master2_r), this)); m_cpu_space->install_write_handler(winStart, winEnd, write32_delegate(FUNC(vrc4373_device::master2_w), this)); - if (LOG_NILE) - logerror("%s: map_cpu_space Master Window 2 start=%08X end=%08X size=%08X laddr=%08X\n", tag(), winStart, winEnd, winSize, m_pci2_laddr); + LOGNILE("map_cpu_space Master Window 2 start=%08X end=%08X size=%08X laddr=%08X\n", winStart, winEnd, winSize, m_pci2_laddr); } // PCI IO Window if (m_cpu_regs[NREG_PCIMIOW]&0x1000) { @@ -189,8 +244,7 @@ void vrc4373_device::map_cpu_space() winSize = winEnd - winStart + 1; m_cpu_space->install_read_handler(winStart, winEnd, read32_delegate(FUNC(vrc4373_device::master_io_r), this)); m_cpu_space->install_write_handler(winStart, winEnd, write32_delegate(FUNC(vrc4373_device::master_io_w), this)); - if (LOG_NILE) - logerror("%s: map_cpu_space IO Window start=%08X end=%08X size=%08X laddr=%08X\n", tag(), winStart, winEnd, winSize, m_pci_io_laddr); + LOGNILE("map_cpu_space IO Window start=%08X end=%08X size=%08X laddr=%08X\n", tag(), winStart, winEnd, winSize, m_pci_io_laddr); } } @@ -206,8 +260,7 @@ void vrc4373_device::map_extra(uint64_t memory_window_start, uint64_t memory_win winSize = winEnd - winStart + 1; memory_space->install_read_handler(winStart, winEnd, read32_delegate(FUNC(vrc4373_device::target1_r), this)); memory_space->install_write_handler(winStart, winEnd, write32_delegate(FUNC(vrc4373_device::target1_w), this)); - if (LOG_NILE) - logerror("%s: map_extra Target Window 1 start=%08X end=%08X size=%08X laddr=%08X\n", tag(), winStart, winEnd, winSize, m_target1_laddr); + LOGNILE("map_extra Target Window 1 start=%08X end=%08X size=%08X laddr=%08X\n", winStart, winEnd, winSize, m_target1_laddr); } // PCI Target Window 2 if (m_cpu_regs[NREG_PCITW2]&0x1000) { @@ -216,8 +269,7 @@ void vrc4373_device::map_extra(uint64_t memory_window_start, uint64_t memory_win winSize = winEnd - winStart + 1; memory_space->install_read_handler(winStart, winEnd, read32_delegate(FUNC(vrc4373_device::target2_r), this)); memory_space->install_write_handler(winStart, winEnd, write32_delegate(FUNC(vrc4373_device::target2_w), this)); - if (LOG_NILE) - logerror("%s: map_extra Target Window 2 start=%08X end=%08X size=%08X laddr=%08X\n", tag(), winStart, winEnd, winSize, m_target2_laddr); + LOGNILE("map_extra Target Window 2 start=%08X end=%08X size=%08X laddr=%08X\n", winStart, winEnd, winSize, m_target2_laddr); } } @@ -228,96 +280,83 @@ void vrc4373_device::reset_all_mappings() void vrc4373_device::set_cpu_tag(const char *_cpu_tag) { - if (LOG_NILE) - logerror("%s: set_cpu_tag\n", tag()); + LOGNILE("set_cpu_tag\n"); cpu_tag = _cpu_tag; } // PCI bus control READ32_MEMBER (vrc4373_device::pcictrl_r) { uint32_t result = 0; - if (LOG_NILE) - logerror("%06X:nile pcictrl_r from offset %02X = %08X & %08X\n", space.device().safe_pc(), offset*4, result, mem_mask); + LOGNILE("%06X:nile pcictrl_r from offset %02X = %08X & %08X\n", space.device().safe_pc(), offset*4, result, mem_mask); return result; } WRITE32_MEMBER (vrc4373_device::pcictrl_w) { - if (LOG_NILE) - logerror("%06X:nile pcictrl_w to offset %02X = %08X & %08X\n", space.device().safe_pc(), offset*4, data, mem_mask); + LOGNILE("%06X:nile pcictrl_w to offset %02X = %08X & %08X\n", space.device().safe_pc(), offset*4, data, mem_mask); } // PCI Master Window 1 READ32_MEMBER (vrc4373_device::master1_r) { uint32_t result = this->space(AS_DATA).read_dword(m_pci1_laddr | (offset*4), mem_mask); - if (LOG_NILE_MASTER) - logerror("%06X:nile master1 read from offset %02X = %08X & %08X\n", space.device().safe_pc(), offset*4, result, mem_mask); + LOGNILEMASTER("%06X:nile master1 read from offset %02X = %08X & %08X\n", space.device().safe_pc(), offset*4, result, mem_mask); return result; } WRITE32_MEMBER (vrc4373_device::master1_w) { this->space(AS_DATA).write_dword(m_pci1_laddr | (offset*4), data, mem_mask); - if (LOG_NILE_MASTER) - logerror("%06X:nile master1 write to offset %02X = %08X & %08X\n", space.device().safe_pc(), offset*4, data, mem_mask); + LOGNILEMASTER("%06X:nile master1 write to offset %02X = %08X & %08X\n", space.device().safe_pc(), offset*4, data, mem_mask); } // PCI Master Window 2 READ32_MEMBER (vrc4373_device::master2_r) { uint32_t result = this->space(AS_DATA).read_dword(m_pci2_laddr | (offset*4), mem_mask); - if (LOG_NILE_MASTER) - logerror("%06X:nile master2 read from offset %02X = %08X & %08X\n", space.device().safe_pc(), offset*4, result, mem_mask); + LOGNILEMASTER("%06X:nile master2 read from offset %02X = %08X & %08X\n", space.device().safe_pc(), offset*4, result, mem_mask); return result; } WRITE32_MEMBER (vrc4373_device::master2_w) { this->space(AS_DATA).write_dword(m_pci2_laddr | (offset*4), data, mem_mask); - if (LOG_NILE_MASTER) - logerror("%06X:nile master2 write to offset %02X = %08X & %08X\n", space.device().safe_pc(), offset*4, data, mem_mask); + LOGNILEMASTER("%06X:nile master2 write to offset %02X = %08X & %08X\n", space.device().safe_pc(), offset*4, data, mem_mask); } // PCI Master IO Window READ32_MEMBER (vrc4373_device::master_io_r) { uint32_t result = this->space(AS_IO).read_dword(m_pci_io_laddr | (offset*4), mem_mask); - if (LOG_NILE_MASTER) - logerror("%06X:nile master io read from offset %02X = %08X & %08X\n", space.device().safe_pc(), offset*4, result, mem_mask); + LOGNILEMASTER("%06X:nile master io read from offset %02X = %08X & %08X\n", space.device().safe_pc(), offset*4, result, mem_mask); return result; } WRITE32_MEMBER (vrc4373_device::master_io_w) { this->space(AS_IO).write_dword(m_pci_io_laddr | (offset*4), data, mem_mask); - if (LOG_NILE_MASTER) - logerror("%06X:nile master io write to offset %02X = %08X & %08X\n", space.device().safe_pc(), offset*4, data, mem_mask); + LOGNILEMASTER("%06X:nile master io write to offset %02X = %08X & %08X\n", space.device().safe_pc(), offset*4, data, mem_mask); } // PCI Target Window 1 READ32_MEMBER (vrc4373_device::target1_r) { uint32_t result = m_cpu->space(AS_PROGRAM).read_dword(m_target1_laddr | (offset*4), mem_mask); - if (LOG_NILE_TARGET) - logerror("%08X:nile target1 read from offset %02X = %08X & %08X\n", m_cpu->device_t::safe_pc(), offset*4, result, mem_mask); + LOGNILETARGET("%08X:nile target1 read from offset %02X = %08X & %08X\n", m_cpu->device_t::safe_pc(), offset*4, result, mem_mask); return result; } WRITE32_MEMBER (vrc4373_device::target1_w) { m_cpu->space(AS_PROGRAM).write_dword(m_target1_laddr | (offset*4), data, mem_mask); - if (LOG_NILE_TARGET) - logerror("%08X:nile target1 write to offset %02X = %08X & %08X\n", m_cpu->device_t::safe_pc(), offset*4, data, mem_mask); + LOGNILETARGET("%08X:nile target1 write to offset %02X = %08X & %08X\n", m_cpu->device_t::safe_pc(), offset*4, data, mem_mask); } // PCI Target Window 2 READ32_MEMBER (vrc4373_device::target2_r) { uint32_t result = m_cpu->space(AS_PROGRAM).read_dword(m_target2_laddr | (offset*4), mem_mask); - if (LOG_NILE_TARGET) - logerror("%08X:nile target2 read from offset %02X = %08X & %08X\n", m_cpu->device_t::safe_pc(), offset*4, result, mem_mask); + LOGNILETARGET("%08X:nile target2 read from offset %02X = %08X & %08X\n", m_cpu->device_t::safe_pc(), offset*4, result, mem_mask); return result; } WRITE32_MEMBER (vrc4373_device::target2_w) { m_cpu->space(AS_PROGRAM).write_dword(m_target2_laddr | (offset*4), data, mem_mask); - if (LOG_NILE_TARGET) - logerror("%08X:nile target2 write to offset %02X = %08X & %08X\n", m_cpu->device_t::safe_pc(), offset*4, data, mem_mask); + LOGNILETARGET("%08X:nile target2 write to offset %02X = %08X & %08X\n", m_cpu->device_t::safe_pc(), offset*4, data, mem_mask); } // DMA Transfer @@ -327,8 +366,7 @@ TIMER_CALLBACK_MEMBER (vrc4373_device::dma_transfer) // Check for dma suspension if (m_cpu_regs[NREG_DMACR1 + which * 0xc] & DMA_SUS) { - if (LOG_NILE) - logerror("%08X:nile DMA Suspended PCI: %08X MEM: %08X Words: %X\n", m_cpu->space(AS_PROGRAM).device().safe_pc(), m_cpu_regs[NREG_DMA_CPAR], m_cpu_regs[NREG_DMA_CMAR], m_cpu_regs[NREG_DMA_REM]); + LOGNILE("%08X:nile DMA Suspended PCI: %08X MEM: %08X Words: %X\n", m_cpu->space(AS_PROGRAM).device().safe_pc(), m_cpu_regs[NREG_DMA_CPAR], m_cpu_regs[NREG_DMA_CMAR], m_cpu_regs[NREG_DMA_REM]); return; } @@ -398,15 +436,13 @@ READ32_MEMBER (vrc4373_device::cpu_if_r) default: break; } - if (LOG_NILE) - logerror("%06X:nile read from offset %02X = %08X & %08X\n", space.device().safe_pc(), offset*4, result, mem_mask); + LOGNILE("%06X:nile read from offset %02X = %08X & %08X\n", space.device().safe_pc(), offset*4, result, mem_mask); return result; } WRITE32_MEMBER(vrc4373_device::cpu_if_w) { - if (LOG_NILE) - logerror("%06X:nile write to offset %02X = %08X & %08X\n", space.device().safe_pc(), offset*4, data, mem_mask); + LOGNILE("%06X:nile write to offset %02X = %08X & %08X\n", space.device().safe_pc(), offset*4, data, mem_mask); uint32_t modData, oldData; oldData = m_cpu_regs[offset]; @@ -472,8 +508,7 @@ WRITE32_MEMBER(vrc4373_device::cpu_if_w) // Start the transfer m_dma_timer->set_param(which); m_dma_timer->adjust(attotime::zero, 0, DMA_TIMER_PERIOD); - if (LOG_NILE) - logerror("%08X:nile Start DMA Lane %i PCI: %08X MEM: %08X Words: %X\n", m_cpu->space(AS_PROGRAM).device().safe_pc(), which, m_cpu_regs[NREG_DMA_CPAR], m_cpu_regs[NREG_DMA_CMAR], m_cpu_regs[NREG_DMA_REM]); + LOGNILE("%08X:nile Start DMA Lane %i PCI: %08X MEM: %08X Words: %X\n", m_cpu->space(AS_PROGRAM).device().safe_pc(), which, m_cpu_regs[NREG_DMA_CPAR], m_cpu_regs[NREG_DMA_CMAR], m_cpu_regs[NREG_DMA_REM]); } break; case NREG_BMCR: diff --git a/src/devices/machine/vrc4373.h b/src/devices/machine/vrc4373.h index ed0f842ef60..9555ee777ba 100644 --- a/src/devices/machine/vrc4373.h +++ b/src/devices/machine/vrc4373.h @@ -2,8 +2,10 @@ // copyright-holders:Ted Green // NEC VRC 4373 System Controller -#ifndef VRC4373_H -#define VRC4373_H +#ifndef MAME_MACHINE_VRC4373_H +#define MAME_MACHINE_VRC4373_H + +#pragma once #include "pci.h" #include "cpu/mips/mips3.h" @@ -18,57 +20,6 @@ #define MCFG_VRC4373_SET_SIMM0(_size) \ downcast(device)->set_simm0_size(_size); -#define VRC4373_PAGESHIFT 12 - -/* NILE 3 registers 0x000-0x0ff */ -#define NREG_BMCR (0x000/4) -#define NREG_SIMM1 (0x004/4) -#define NREG_SIMM2 (0x008/4) -#define NREG_SIMM3 (0x00C/4) -#define NREG_SIMM4 (0x010/4) -#define NREG_PCIMW1 (0x014/4) -#define NREG_PCIMW2 (0x018/4) -#define NREG_PCITW1 (0x01C/4) -#define NREG_PCITW2 (0x020/4) -#define NREG_PCIMIOW (0x024/4) -#define NREG_PCICDR (0x028/4) -#define NREG_PCICAR (0x02C/4) -#define NREG_PCIMB1 (0x030/4) -#define NREG_PCIMB2 (0x034/4) -#define NREG_DMACR1 (0x038/4) -#define NREG_DMAMAR1 (0x03C/4) -#define NREG_DMAPCI1 (0x040/4) -#define NREG_DMACR2 (0x044/4) -#define NREG_DMAMAR2 (0x048/4) -#define NREG_DMAPCI2 (0x04C/4) - -#define NREG_BESR (0x050/4) -#define NREG_ICSR (0x054/4) -#define NREG_DRAMRCR (0x058/4) -#define NREG_BOOTWP (0x05C/4) -#define NREG_PCIEAR (0x060/4) -#define NREG_DMA_REM (0x064/4) -#define NREG_DMA_CMAR (0x068/4) -#define NREG_DMA_CPAR (0x06C/4) -#define NREG_PCIRC (0x070/4) -#define NREG_PCIEN (0x074/4) -#define NREG_PMIR (0x078/4) - -#define PCI_BUS_CLOCK 33000000 -// Number of dma words to transfer at a time, real hardware bursts 8 -#define DMA_BURST_SIZE 128 -#define DMA_TIMER_PERIOD attotime::from_hz(PCI_BUS_CLOCK / 32) - -#define DMA_BUSY 0x80000000 -#define DMA_INT_EN 0x40000000 -#define DMA_RW 0x20000000 -#define DMA_GO 0x10000000 -#define DMA_SUS 0x08000000 -#define DMA_INC 0x04000000 -#define DMA_MIO 0x02000000 -#define DMA_RST 0x01000000 -#define DMA_BLK_SIZE 0x000fffff - class vrc4373_device : public pci_host_device { public: @@ -109,13 +60,20 @@ public: DECLARE_WRITE32_MEMBER(target2_w); protected: - address_space *m_cpu_space; - virtual const address_space_config *memory_space_config(address_spacenum spacenum) const override; virtual void device_start() override; virtual void device_reset() override; + + virtual const address_space_config *memory_space_config(address_spacenum spacenum) const override; + TIMER_CALLBACK_MEMBER(dma_transfer); + address_space *m_cpu_space; + private: + DECLARE_ADDRESS_MAP(cpu_map, 32); + + void map_cpu_space(); + mips3_device *m_cpu; const char *cpu_tag; int m_irq_num; @@ -124,10 +82,6 @@ private: address_space_config m_mem_config, m_io_config; - DECLARE_ADDRESS_MAP(cpu_map, 32); - - void map_cpu_space(); - std::vector m_ram; std::vector m_simm[4]; @@ -143,6 +97,6 @@ private: }; -extern const device_type VRC4373; +DECLARE_DEVICE_TYPE(VRC4373, vrc4373_device) -#endif +#endif // MAME_MACHINE_VRC4373_H diff --git a/src/devices/machine/vrc5074.cpp b/src/devices/machine/vrc5074.cpp index 4d8285e24f0..4f984af7a1b 100644 --- a/src/devices/machine/vrc5074.cpp +++ b/src/devices/machine/vrc5074.cpp @@ -12,7 +12,113 @@ #define LOG_NILE_TARGET (0) #define PRINTF_SERIAL (0) -const device_type VRC5074 = device_creator; +/* NILE 4 registers 0x000-0x0ff */ +#define NREG_SDRAM0 (0x000/4) +#define NREG_SDRAM1 (0x008/4) +#define NREG_DCS2 (0x010/4) /* SIO misc */ +#define NREG_DCS3 (0x018/4) /* ADC */ +#define NREG_DCS4 (0x020/4) /* CMOS */ +#define NREG_DCS5 (0x028/4) /* SIO */ +#define NREG_DCS6 (0x030/4) /* IOASIC */ +#define NREG_DCS7 (0x038/4) /* ethernet */ +#define NREG_DCS8 (0x040/4) +#define NREG_PCIW0 (0x060/4) +#define NREG_PCIW1 (0x068/4) +#define NREG_INTCS (0x070/4) +#define NREG_BOOTCS (0x078/4) +#define NREG_CPUSTAT (0x080/4) +#define NREG_INTCTRL (0x088/4) +#define NREG_INTSTAT0 (0x090/4) +#define NREG_INTSTAT1 (0x098/4) +#define NREG_INTCLR (0x0A0/4) +#define NREG_INTPPES (0x0A8/4) +#define NREG_PCIERR (0x0B8/4) +#define NREG_MEMCTRL (0x0C0/4) +#define NREG_ACSTIME (0x0C8/4) +#define NREG_CHKERR (0x0D0/4) +#define NREG_PCICTRL (0x0E0/4) +#define NREG_PCIARB (0x0E8/4) +#define NREG_PCIINIT0 (0x0F0/4) +#define NREG_PCIINIT1 (0x0F8/4) + +/* NILE 4 registers 0x100-0x1ff */ +#define NREG_LCNFG (0x100/4) +#define NREG_LCST2 (0x110/4) +#define NREG_LCST3 (0x118/4) +#define NREG_LCST4 (0x120/4) +#define NREG_LCST5 (0x128/4) +#define NREG_LCST6 (0x130/4) +#define NREG_LCST7 (0x138/4) +#define NREG_LCST8 (0x140/4) +#define NREG_DCSFN (0x150/4) +#define NREG_DCSIO (0x158/4) +#define NREG_BCST (0x178/4) +#define NREG_DMACTRL0 (0x180/4) +#define NREG_DMASRCA0 (0x188/4) +#define NREG_DMADESA0 (0x190/4) +#define NREG_DMACTRL1 (0x198/4) +#define NREG_DMASRCA1 (0x1A0/4) +#define NREG_DMADESA1 (0x1A8/4) +#define NREG_T0CTRL (0x1C0/4) +#define NREG_T0CNTR (0x1C8/4) +#define NREG_T1CTRL (0x1D0/4) +#define NREG_T1CNTR (0x1D8/4) +#define NREG_T2CTRL (0x1E0/4) +#define NREG_T2CNTR (0x1E8/4) +#define NREG_T3CTRL (0x1F0/4) +#define NREG_T3CNTR (0x1F8/4) + +/* NILE 4 registers 0x300-0x3ff */ +#define NREG_UARTRBR (0x00/4) +#define NREG_UARTTHR (0x00/4) +#define NREG_UARTIER (0x08/4) +#define NREG_UARTDLL (0x00/4) +#define NREG_UARTDLM (0x08/4) +#define NREG_UARTIIR (0x10/4) +#define NREG_UARTFCR (0x10/4) +#define NREG_UARTLCR (0x18/4) +#define NREG_UARTMCR (0x20/4) +#define NREG_UARTLSR (0x28/4) +#define NREG_UARTMSR (0x30/4) +#define NREG_UARTSCR (0x38/4) + +/* NILE 4 interrupts */ +#define NINT_CPCE (0) +#define NINT_CNTD (1) +#define NINT_MCE (2) +#define NINT_DMA (3) +#define NINT_UART (4) +#define NINT_WDOG (5) +#define NINT_GPT (6) +#define NINT_LBRTD (7) +#define NINT_INTA (8) +#define NINT_INTB (9) +#define NINT_INTC (10) +#define NINT_INTD (11) +#define NINT_INTE (12) +#define NINT_RESV (13) +#define NINT_PCIS (14) +#define NINT_PCIE (15) + +#define TIMER_PERIOD attotime::from_hz(SYSTEM_CLOCK) + +#define PCI_BUS_CLOCK 33000000 +// Number of dma words to transfer at a time, real hardware bursts 8 +#define DMA_BURST_SIZE 128 +#define DMA_TIMER_PERIOD attotime::from_hz(PCI_BUS_CLOCK / 32) + +#define DMA_BUSY 0x80000000 +#define DMA_INTEN 0x40000000 +#define DMA_INTVLD 0x20000000 +#define DMA_GO 0x10000000 +#define DMA_SUS 0x08000000 +#define DMA_DSTINC 0x04000000 +#define DMA_SRCINC 0x02000000 +#define DMA_RST 0x01000000 +#define DMA_BLK_SIZE 0x000fffff + + +DEFINE_DEVICE_TYPE(VRC5074, vrc5074_device, "vrc5074", "NEC VRC5074 System Controller") DEVICE_ADDRESS_MAP_START(config_map, 32, vrc5074_device) AM_RANGE(0x00000018, 0x00000027) AM_READWRITE(sdram_addr_r, sdram_addr_w) @@ -34,7 +140,7 @@ DEVICE_ADDRESS_MAP_START(target1_map, 32, vrc5074_device) ADDRESS_MAP_END vrc5074_device::vrc5074_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : pci_host_device(mconfig, VRC5074, "NEC VRC5074 System Controller", tag, owner, clock, "vrc5074", __FILE__), + : pci_host_device(mconfig, VRC5074, tag, owner, clock), m_cpu_space(nullptr), m_cpu(nullptr), cpu_tag(nullptr), m_mem_config("memory_space", ENDIANNESS_LITTLE, 32, 32), m_io_config("io_space", ENDIANNESS_LITTLE, 32, 32), diff --git a/src/devices/machine/vrc5074.h b/src/devices/machine/vrc5074.h index f1e2e01787a..8b31e2c4f54 100644 --- a/src/devices/machine/vrc5074.h +++ b/src/devices/machine/vrc5074.h @@ -2,8 +2,10 @@ // copyright-holders: Aaron Giles, Ted Green // NEC VRC 5074 System Controller -#ifndef VRC5074_H -#define VRC5074_H +#ifndef MAME_MACHINE_VRC5074_H +#define MAME_MACHINE_VRC5074_H + +#pragma once #include "pci.h" #include "cpu/mips/mips3.h" @@ -18,121 +20,16 @@ #define MCFG_VRC5074_SET_CS(_cs_num, _map) \ downcast(device)->set_map(_cs_num, address_map_delegate(ADDRESS_MAP_NAME(_map), #_map), owner); -/* NILE 4 registers 0x000-0x0ff */ -#define NREG_SDRAM0 (0x000/4) -#define NREG_SDRAM1 (0x008/4) -#define NREG_DCS2 (0x010/4) /* SIO misc */ -#define NREG_DCS3 (0x018/4) /* ADC */ -#define NREG_DCS4 (0x020/4) /* CMOS */ -#define NREG_DCS5 (0x028/4) /* SIO */ -#define NREG_DCS6 (0x030/4) /* IOASIC */ -#define NREG_DCS7 (0x038/4) /* ethernet */ -#define NREG_DCS8 (0x040/4) -#define NREG_PCIW0 (0x060/4) -#define NREG_PCIW1 (0x068/4) -#define NREG_INTCS (0x070/4) -#define NREG_BOOTCS (0x078/4) -#define NREG_CPUSTAT (0x080/4) -#define NREG_INTCTRL (0x088/4) -#define NREG_INTSTAT0 (0x090/4) -#define NREG_INTSTAT1 (0x098/4) -#define NREG_INTCLR (0x0A0/4) -#define NREG_INTPPES (0x0A8/4) -#define NREG_PCIERR (0x0B8/4) -#define NREG_MEMCTRL (0x0C0/4) -#define NREG_ACSTIME (0x0C8/4) -#define NREG_CHKERR (0x0D0/4) -#define NREG_PCICTRL (0x0E0/4) -#define NREG_PCIARB (0x0E8/4) -#define NREG_PCIINIT0 (0x0F0/4) -#define NREG_PCIINIT1 (0x0F8/4) - -/* NILE 4 registers 0x100-0x1ff */ -#define NREG_LCNFG (0x100/4) -#define NREG_LCST2 (0x110/4) -#define NREG_LCST3 (0x118/4) -#define NREG_LCST4 (0x120/4) -#define NREG_LCST5 (0x128/4) -#define NREG_LCST6 (0x130/4) -#define NREG_LCST7 (0x138/4) -#define NREG_LCST8 (0x140/4) -#define NREG_DCSFN (0x150/4) -#define NREG_DCSIO (0x158/4) -#define NREG_BCST (0x178/4) -#define NREG_DMACTRL0 (0x180/4) -#define NREG_DMASRCA0 (0x188/4) -#define NREG_DMADESA0 (0x190/4) -#define NREG_DMACTRL1 (0x198/4) -#define NREG_DMASRCA1 (0x1A0/4) -#define NREG_DMADESA1 (0x1A8/4) -#define NREG_T0CTRL (0x1C0/4) -#define NREG_T0CNTR (0x1C8/4) -#define NREG_T1CTRL (0x1D0/4) -#define NREG_T1CNTR (0x1D8/4) -#define NREG_T2CTRL (0x1E0/4) -#define NREG_T2CNTR (0x1E8/4) -#define NREG_T3CTRL (0x1F0/4) -#define NREG_T3CNTR (0x1F8/4) - -/* NILE 4 registers 0x300-0x3ff */ -#define NREG_UARTRBR (0x00/4) -#define NREG_UARTTHR (0x00/4) -#define NREG_UARTIER (0x08/4) -#define NREG_UARTDLL (0x00/4) -#define NREG_UARTDLM (0x08/4) -#define NREG_UARTIIR (0x10/4) -#define NREG_UARTFCR (0x10/4) -#define NREG_UARTLCR (0x18/4) -#define NREG_UARTMCR (0x20/4) -#define NREG_UARTLSR (0x28/4) -#define NREG_UARTMSR (0x30/4) -#define NREG_UARTSCR (0x38/4) - -/* NILE 4 interrupts */ -#define NINT_CPCE (0) -#define NINT_CNTD (1) -#define NINT_MCE (2) -#define NINT_DMA (3) -#define NINT_UART (4) -#define NINT_WDOG (5) -#define NINT_GPT (6) -#define NINT_LBRTD (7) -#define NINT_INTA (8) -#define NINT_INTB (9) -#define NINT_INTC (10) -#define NINT_INTD (11) -#define NINT_INTE (12) -#define NINT_RESV (13) -#define NINT_PCIS (14) -#define NINT_PCIE (15) - -#define SYSTEM_CLOCK 100000000 -#define TIMER_PERIOD attotime::from_hz(SYSTEM_CLOCK) - -#define PCI_BUS_CLOCK 33000000 -// Number of dma words to transfer at a time, real hardware bursts 8 -#define DMA_BURST_SIZE 128 -#define DMA_TIMER_PERIOD attotime::from_hz(PCI_BUS_CLOCK / 32) - -#define DMA_BUSY 0x80000000 -#define DMA_INTEN 0x40000000 -#define DMA_INTVLD 0x20000000 -#define DMA_GO 0x10000000 -#define DMA_SUS 0x08000000 -#define DMA_DSTINC 0x04000000 -#define DMA_SRCINC 0x02000000 -#define DMA_RST 0x01000000 -#define DMA_BLK_SIZE 0x000fffff - - class vrc5074_device : public pci_host_device { public: + static constexpr unsigned SYSTEM_CLOCK = 100000000; + vrc5074_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual void reset_all_mappings() override; virtual void map_extra(uint64_t memory_window_start, uint64_t memory_window_end, uint64_t memory_offset, address_space *memory_space, uint64_t io_window_start, uint64_t io_window_end, uint64_t io_offset, address_space *io_space) override; - void postload(void); + void postload(); void set_cpu_tag(const char *tag); void set_sdram_size(const int index, const int size) { m_sdram_size[index] = size; }; @@ -203,13 +100,13 @@ private: uint32_t m_serial_regs[0x40 / 4]; uint16_t m_nile_irq_state; - void setup_pci_space(void); + void setup_pci_space(); uint32_t m_pci_laddr[2], m_pci_mask[2], m_pci_type[2]; uint32_t m_sdram_addr[2]; }; -extern const device_type VRC5074; +DECLARE_DEVICE_TYPE(VRC5074, vrc5074_device) -#endif +#endif // MAME_MACHINE_VRC5074_H diff --git a/src/devices/machine/vt82c496.cpp b/src/devices/machine/vt82c496.cpp index 2abaac5a449..f7f58db89fe 100644 --- a/src/devices/machine/vt82c496.cpp +++ b/src/devices/machine/vt82c496.cpp @@ -13,12 +13,12 @@ IMPLEMENTATION ***************************************************************************/ -const device_type VT82C496 = device_creator; +DEFINE_DEVICE_TYPE(VT82C496, vt82c496_device, "vt82c496", "VIA VT82C496 system chipset") vt82c496_device::vt82c496_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, VT82C496, "VIA VT82C496G system chipset", tag, owner, clock, "vt82c496", __FILE__), m_cpu_tag(nullptr), m_region_tag(nullptr), m_space(nullptr), m_ram(nullptr), m_rom(nullptr), m_reg_select(0) - { + : device_t(mconfig, VT82C496, tag, owner, clock), m_cpu_tag(nullptr), m_region_tag(nullptr), m_space(nullptr), m_ram(nullptr), m_rom(nullptr), m_reg_select(0) +{ } void vt82c496_device::device_start() diff --git a/src/devices/machine/vt82c496.h b/src/devices/machine/vt82c496.h index 027647acfa4..60a89060db0 100644 --- a/src/devices/machine/vt82c496.h +++ b/src/devices/machine/vt82c496.h @@ -6,8 +6,10 @@ */ -#ifndef __VT82C496_H__ -#define __VT82C496_H__ +#ifndef MAME_MACHINE_VT82C496_H +#define MAME_MACHINE_VT82C496_H + +#pragma once #include "ram.h" @@ -53,7 +55,6 @@ private: }; // device type definition -extern const device_type VT82C496; - +DECLARE_DEVICE_TYPE(VT82C496, vt82c496_device) -#endif /* __VT82C496_H__ */ +#endif // MAME_MACHINE_VT82C496_H diff --git a/src/devices/machine/vt83c461.cpp b/src/devices/machine/vt83c461.cpp index 781fc34b9ca..e085924e107 100644 --- a/src/devices/machine/vt83c461.cpp +++ b/src/devices/machine/vt83c461.cpp @@ -3,13 +3,8 @@ #include "emu.h" #include "vt83c461.h" -/*************************************************************************** - DEBUGGING -***************************************************************************/ - -#define VERBOSE 0 - -#define LOG(x) do { if (VERBOSE) logerror x; } while (0) +//#define VERBOSE 1 +#include "logmacro.h" #define VT83C461_CONFIG_UNK 1 @@ -17,10 +12,10 @@ #define VT83C461_CONFIG_DATA 3 -const device_type VT83C461 = device_creator; +DEFINE_DEVICE_TYPE(VT83C461, vt83c461_device, "vt83c461", "VIA VT83C461 IDE Controller") vt83c461_device::vt83c461_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - ide_controller_32_device(mconfig, VT83C461, "VIA VT83C461", tag, owner, clock, "vt83c461", __FILE__), + ide_controller_32_device(mconfig, VT83C461, tag, owner, clock), m_config_unknown(0), m_config_register_num(0) { @@ -45,7 +40,7 @@ READ32_MEMBER( vt83c461_device::read_config ) uint32_t result = 0; /* logit */ - LOG(("%s:IDE via config read at %X, mem_mask=%d\n", machine().describe_context(), offset, mem_mask)); + LOG("%s:IDE via config read at %X, mem_mask=%d\n", machine().describe_context(), offset, mem_mask); switch(offset) { @@ -79,7 +74,7 @@ WRITE32_MEMBER( vt83c461_device::write_config ) // printf( "vt83c461 write config %04x %08x %04x\n", offset, data, mem_mask ); /* logit */ - LOG(("%s:IDE via config write to %X = %08X, mem_mask=%d\n", machine().describe_context(), offset, data, mem_mask)); + LOG("%s:IDE via config write to %X = %08X, mem_mask=%d\n", machine().describe_context(), offset, data, mem_mask); switch (offset) { diff --git a/src/devices/machine/vt83c461.h b/src/devices/machine/vt83c461.h index 2577fdd6dfa..26dc2916641 100644 --- a/src/devices/machine/vt83c461.h +++ b/src/devices/machine/vt83c461.h @@ -8,10 +8,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_MACHINE_VT83C461_H +#define MAME_MACHINE_VT83C461_H -#ifndef __VT83C461_H__ -#define __VT83C461_H__ +#pragma once #include "idectrl.h" @@ -27,8 +27,6 @@ MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _slave, _fixed) \ MCFG_DEVICE_MODIFY(_tag) -#define IDE_CONFIG_REGISTERS 0x10 - class vt83c461_device : public ide_controller_32_device { public: @@ -41,11 +39,13 @@ protected: virtual void device_start() override; private: + static constexpr unsigned IDE_CONFIG_REGISTERS= 0x10; + uint8_t m_config_unknown; uint8_t m_config_register[IDE_CONFIG_REGISTERS]; uint8_t m_config_register_num; }; -extern const device_type VT83C461; +DECLARE_DEVICE_TYPE(VT83C461, vt83c461_device) -#endif +#endif // MAME_MACHINE_VT83C461_H diff --git a/src/devices/machine/watchdog.cpp b/src/devices/machine/watchdog.cpp index 9c4d05de71d..0eb841369cb 100644 --- a/src/devices/machine/watchdog.cpp +++ b/src/devices/machine/watchdog.cpp @@ -19,17 +19,17 @@ // WATCHDOG TIMER DEVICE //************************************************************************** -const device_type WATCHDOG_TIMER = device_creator; +DEFINE_DEVICE_TYPE(WATCHDOG_TIMER, watchdog_timer_device, "watchdog", "Watchdog Timer") //------------------------------------------------- // watchdog_timer_device - constructor //------------------------------------------------- watchdog_timer_device::watchdog_timer_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, WATCHDOG_TIMER, "Watchdog timer", tag, owner, clock, "watchdog", __FILE__), - m_vblank_count(0), - m_time(attotime::zero), - m_screen_tag(nullptr) + : device_t(mconfig, WATCHDOG_TIMER, tag, owner, clock) + , m_vblank_count(0) + , m_time(attotime::zero) + , m_screen_tag(nullptr) { } diff --git a/src/devices/machine/watchdog.h b/src/devices/machine/watchdog.h index 85f792203f8..2e17fcdea98 100644 --- a/src/devices/machine/watchdog.h +++ b/src/devices/machine/watchdog.h @@ -1,10 +1,10 @@ // license:BSD-3-Clause // copyright-holders:Aaron Giles -#pragma once +#ifndef MAME_MACHINE_WATCHDOG_H +#define MAME_MACHINE_WATCHDOG_H -#ifndef __WATCHDOG_H__ -#define __WATCHDOG_H__ +#pragma once //************************************************************************** @@ -78,7 +78,7 @@ private: // GLOBAL VARIABLES //************************************************************************** -extern const device_type WATCHDOG_TIMER; +DECLARE_DEVICE_TYPE(WATCHDOG_TIMER, watchdog_timer_device) -#endif +#endif // MAME_MACHINE_WATCHDOG_H diff --git a/src/devices/machine/wd11c00_17.cpp b/src/devices/machine/wd11c00_17.cpp index d6b21f43330..499601c943f 100644 --- a/src/devices/machine/wd11c00_17.cpp +++ b/src/devices/machine/wd11c00_17.cpp @@ -9,15 +9,14 @@ #include "emu.h" #include "machine/wd11c00_17.h" +#define VERBOSE 1 +#include "logmacro.h" //************************************************************************** // MACROS / CONSTANTS //************************************************************************** -#define LOG 1 - - // status register #define STATUS_IRQ 0x20 #define STATUS_DRQ 0x10 @@ -37,7 +36,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type WD11C00_17 = device_creator; +DEFINE_DEVICE_TYPE(WD11C00_17, wd11c00_17_device, "wd11c00_17", "Western Digital WD11C00-17") //************************************************************************** @@ -177,25 +176,25 @@ inline void wd11c00_17_device::select() //------------------------------------------------- wd11c00_17_device::wd11c00_17_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, WD11C00_17, "Western Digital WD11C00-17", tag, owner, clock, "wd11c00_17", __FILE__), - m_out_irq5_cb(*this), - m_out_drq3_cb(*this), - m_out_mr_cb(*this), - m_out_busy_cb(*this), - m_out_req_cb(*this), - m_out_ra3_cb(*this), - m_in_rd322_cb(*this), - m_in_ramcs_cb(*this), - m_out_ramwr_cb(*this), - m_in_cs1010_cb(*this), - m_out_cs1010_cb(*this), - m_status(0), - m_ra(0), - m_irq5(CLEAR_LINE), - m_drq3(CLEAR_LINE), - m_busy(1), - m_req(0), - m_ra3(0) + : device_t(mconfig, WD11C00_17, tag, owner, clock) + , m_out_irq5_cb(*this) + , m_out_drq3_cb(*this) + , m_out_mr_cb(*this) + , m_out_busy_cb(*this) + , m_out_req_cb(*this) + , m_out_ra3_cb(*this) + , m_in_rd322_cb(*this) + , m_in_ramcs_cb(*this) + , m_out_ramwr_cb(*this) + , m_in_cs1010_cb(*this) + , m_out_cs1010_cb(*this) + , m_status(0) + , m_ra(0) + , m_irq5(CLEAR_LINE) + , m_drq3(CLEAR_LINE) + , m_busy(1) + , m_req(0) + , m_ra3(0) { } @@ -246,9 +245,9 @@ READ8_MEMBER( wd11c00_17_device::io_r ) switch (offset) { case 0: // Read Data, Board to Host - if (LOG) logerror("%s WD11C00-17 '%s' Read Data %03x:", machine().describe_context(), tag(), m_ra); + LOG("%s WD11C00-17 Read Data %03x:", machine().describe_context(), m_ra); data = read_data(); - if (LOG) logerror("%02x\n", data); + LOG("%02x\n", data); break; case 1: // Read Board Hardware Status @@ -277,23 +276,23 @@ WRITE8_MEMBER( wd11c00_17_device::io_w ) switch (offset) { case 0: // Write Data, Host to Board - if (LOG) logerror("%s WD11C00-17 '%s' Write Data %03x:%02x\n", machine().describe_context(), tag(), m_ra, data); + LOG("%s WD11C00-17 Write Data %03x:%02x\n", machine().describe_context(), m_ra, data); write_data(data); break; case 1: // Board Software Reset - if (LOG) logerror("%s WD11C00-17 '%s' Software Reset\n", machine().describe_context(), tag()); + LOG("%s WD11C00-17 Software Reset\n", machine().describe_context()); software_reset(); break; case 2: // Board Select - if (LOG) logerror("%s WD11C00-17 '%s' Select\n", machine().describe_context(), tag()); + LOG("%s WD11C00-17 Select\n", machine().describe_context()); increment_address(); // HACK select(); break; case 3: // Set/Reset DMA, IRQ Masks - if (LOG) logerror("%s WD11C00-17 '%s' Mask IRQ %u DMA %u\n", machine().describe_context(), tag(), BIT(data, 1), BIT(data, 0)); + LOG("%s WD11C00-17 Mask IRQ %u DMA %u\n", machine().describe_context(), BIT(data, 1), BIT(data, 0)); m_mask = data; check_interrupt(); break; @@ -332,9 +331,9 @@ READ8_MEMBER( wd11c00_17_device::read ) switch (offset) { case 0x00: - if (LOG) logerror("%s WD11C00-17 '%s' Read RAM %03x:", machine().describe_context(), tag(), m_ra); + LOG("%s WD11C00-17 Read RAM %03x:", machine().describe_context(), m_ra); data = read_data(); - if (LOG) logerror("%02x\n", data); + LOG("%02x\n", data); break; case 0x20: @@ -355,7 +354,7 @@ WRITE8_MEMBER( wd11c00_17_device::write ) switch (offset) { case 0x00: - if (LOG) logerror("%s WD11C00-17 '%s' Write RAM %03x:%02x\n", machine().describe_context(), tag(), m_ra, data); + LOG("%s WD11C00-17 Write RAM %03x:%02x\n", machine().describe_context(), m_ra, data); write_data(data); if (m_ra > 0x400) m_ecc_not_0 = 0; // HACK break; @@ -366,7 +365,7 @@ WRITE8_MEMBER( wd11c00_17_device::write ) case 0x60: m_ra = (data & 0x07) << 8; - if (LOG) logerror("%s WD11C00-17 '%s' RA %03x\n", machine().describe_context(), tag(), m_ra); + LOG("%s WD11C00-17 RA %03x\n", machine().describe_context(), m_ra); check_interrupt(); break; } @@ -379,7 +378,7 @@ WRITE8_MEMBER( wd11c00_17_device::write ) WRITE_LINE_MEMBER( wd11c00_17_device::ireq_w ) { - if (LOG) logerror("%s WD11C00-17 '%s' IREQ %u\n", machine().describe_context(), tag(), state); + LOG("%s WD11C00-17 IREQ %u\n", machine().describe_context(), state); if (state) m_status |= STATUS_REQ; else m_status &= ~STATUS_REQ; @@ -408,7 +407,7 @@ WRITE_LINE_MEMBER( wd11c00_17_device::ireq_w ) WRITE_LINE_MEMBER( wd11c00_17_device::io_w ) { - if (LOG) logerror("%s WD11C00-17 '%s' I/O %u\n", machine().describe_context(), tag(), state); + LOG("%s WD11C00-17 I/O %u\n", machine().describe_context(), state); if (state) m_status |= STATUS_I_O; else m_status &= ~STATUS_I_O; } @@ -420,7 +419,7 @@ WRITE_LINE_MEMBER( wd11c00_17_device::io_w ) WRITE_LINE_MEMBER( wd11c00_17_device::cd_w ) { - if (LOG) logerror("%s WD11C00-17 '%s' C/D %u\n", machine().describe_context(), tag(), state); + LOG("%s WD11C00-17 C/D %u\n", machine().describe_context(), state); if (state) m_status |= STATUS_C_D; else m_status &= ~STATUS_C_D; } @@ -432,7 +431,7 @@ WRITE_LINE_MEMBER( wd11c00_17_device::cd_w ) WRITE_LINE_MEMBER( wd11c00_17_device::clct_w ) { - if (LOG) logerror("%s WD11C00-17 '%s' CLCT %u\n", machine().describe_context(), tag(), state); + LOG("%s WD11C00-17 CLCT %u\n", machine().describe_context(), state); if (state) { @@ -448,7 +447,7 @@ WRITE_LINE_MEMBER( wd11c00_17_device::clct_w ) WRITE_LINE_MEMBER( wd11c00_17_device::mode_w ) { - if (LOG) logerror("%s WD11C00-17 '%s' MODE %u\n", machine().describe_context(), tag(), state); + LOG("%s WD11C00-17 MODE %u\n", machine().describe_context(), state); m_mode = state; m_ecc_not_0 = state; // HACK diff --git a/src/devices/machine/wd11c00_17.h b/src/devices/machine/wd11c00_17.h index 593f24f0c75..15c712425f9 100644 --- a/src/devices/machine/wd11c00_17.h +++ b/src/devices/machine/wd11c00_17.h @@ -6,12 +6,10 @@ **********************************************************************/ -#pragma once - -#ifndef __WD11C00_17__ -#define __WD11C00_17__ - +#ifndef MAME_MACHINE_WD11C00_17_H +#define MAME_MACHINE_WD11C00_17_H +#pragma once @@ -64,17 +62,17 @@ public: // construction/destruction wd11c00_17_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_out_irq5_callback(device_t &device, _Object object) { return downcast(device).m_out_irq5_cb.set_callback(object); } - template static devcb_base &set_out_drq3_callback(device_t &device, _Object object) { return downcast(device).m_out_drq3_cb.set_callback(object); } - template static devcb_base &set_out_mr_callback(device_t &device, _Object object) { return downcast(device).m_out_mr_cb.set_callback(object); } - template static devcb_base &set_out_busy_callback(device_t &device, _Object object) { return downcast(device).m_out_busy_cb.set_callback(object); } - template static devcb_base &set_out_req_callback(device_t &device, _Object object) { return downcast(device).m_out_req_cb.set_callback(object); } - template static devcb_base &set_out_ra3_callback(device_t &device, _Object object) { return downcast(device).m_out_ra3_cb.set_callback(object); } - template static devcb_base &set_in_rd322_callback(device_t &device, _Object object) { return downcast(device).m_in_rd322_cb.set_callback(object); } - template static devcb_base &set_in_ramcs_callback(device_t &device, _Object object) { return downcast(device).m_in_ramcs_cb.set_callback(object); } - template static devcb_base &set_out_ramwr_callback(device_t &device, _Object object) { return downcast(device).m_out_ramwr_cb.set_callback(object); } - template static devcb_base &set_in_cs1010_callback(device_t &device, _Object object) { return downcast(device).m_in_cs1010_cb.set_callback(object); } - template static devcb_base &set_out_cs1010_callback(device_t &device, _Object object) { return downcast(device).m_out_cs1010_cb.set_callback(object); } + template static devcb_base &set_out_irq5_callback(device_t &device, Object &&cb) { return downcast(device).m_out_irq5_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_drq3_callback(device_t &device, Object &&cb) { return downcast(device).m_out_drq3_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_mr_callback(device_t &device, Object &&cb) { return downcast(device).m_out_mr_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_busy_callback(device_t &device, Object &&cb) { return downcast(device).m_out_busy_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_req_callback(device_t &device, Object &&cb) { return downcast(device).m_out_req_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_ra3_callback(device_t &device, Object &&cb) { return downcast(device).m_out_ra3_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_in_rd322_callback(device_t &device, Object &&cb) { return downcast(device).m_in_rd322_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_in_ramcs_callback(device_t &device, Object &&cb) { return downcast(device).m_in_ramcs_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_ramwr_callback(device_t &device, Object &&cb) { return downcast(device).m_out_ramwr_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_in_cs1010_callback(device_t &device, Object &&cb) { return downcast(device).m_in_cs1010_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_cs1010_callback(device_t &device, Object &&cb) { return downcast(device).m_out_cs1010_cb.set_callback(std::forward(cb)); } DECLARE_READ8_MEMBER( io_r ); DECLARE_WRITE8_MEMBER( io_w ); @@ -136,6 +134,6 @@ private: // device type definition -extern const device_type WD11C00_17; +DECLARE_DEVICE_TYPE(WD11C00_17, wd11c00_17_device) -#endif +#endif // MAME_MACHINE_WD11C00_17_H diff --git a/src/devices/machine/wd2010.cpp b/src/devices/machine/wd2010.cpp index 8ed394f5b60..52bdd98905a 100644 --- a/src/devices/machine/wd2010.cpp +++ b/src/devices/machine/wd2010.cpp @@ -33,6 +33,17 @@ Implements WD2010 / WD1010 controller basics. MCFG_WD2010_IN_SC_CB(VCC) // SEEK COMPLETE = VCC **********************************************************************/ +#include "emu.h" +#include "machine/wd2010.h" + +#define VERBOSE 1 +#include "logmacro.h" + + +//************************************************************************** +// MACROS / CONSTANTS +//************************************************************************** + // WD 2010 CONFIGURATION (2048 cylinder limit) #define STEP_LIMIT 2048 #define CYLINDER_HIGH_MASK 0x07 @@ -48,15 +59,6 @@ Implements WD2010 / WD1010 controller basics. // -------------------------------------------------------- -#include "emu.h" -#include "machine/wd2010.h" - -//************************************************************************** -// MACROS / CONSTANTS -//************************************************************************** - -#define LOG 1 - // task file enum { @@ -89,7 +91,7 @@ enum #define DRIVE \ ((m_task_file[TASK_FILE_SDH_REGISTER] >> 3) & 0x03) -static const int SECTOR_SIZES[4] = { 256, 512, 1024, 128 }; +static constexpr int SECTOR_SIZES[4] = { 256, 512, 1024, 128 }; #define SECTOR_SIZE \ SECTOR_SIZES[(m_task_file[TASK_FILE_SDH_REGISTER] >> 5) & 0x03] @@ -132,7 +134,7 @@ static const int SECTOR_SIZES[4] = { 256, 512, 1024, 128 }; // DEVICE DEFINITIONS //************************************************************************** -const device_type WD2010 = device_creator; +DEFINE_DEVICE_TYPE(WD2010, wd2010_device, "wd2010", "Western Digital WD2010 Winchester Disk Controller") //************************************************************************** @@ -144,24 +146,24 @@ const device_type WD2010 = device_creator; //------------------------------------------------- wd2010_device::wd2010_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) -: device_t(mconfig, WD2010, "Western Digital WD2010", tag, owner, clock, "wd2010", __FILE__), -m_out_intrq_cb(*this), -m_out_bdrq_cb(*this), -m_out_bcr_cb(*this), -m_in_bcs_cb(*this), -m_in_brdy_cb(*this), -m_out_bcs_cb(*this), -m_out_dirin_cb(*this), -m_out_step_cb(*this), -m_out_rwc_cb(*this), -m_out_wg_cb(*this), -m_in_drdy_cb(*this), -m_in_index_cb(*this), -m_in_wf_cb(*this), -m_in_tk000_cb(*this), -m_in_sc_cb(*this), -m_status(0), -m_error(0) + : device_t(mconfig, WD2010, tag, owner, clock) + , m_out_intrq_cb(*this) + , m_out_bdrq_cb(*this) + , m_out_bcr_cb(*this) + , m_in_bcs_cb(*this) + , m_in_brdy_cb(*this) + , m_out_bcs_cb(*this) + , m_out_dirin_cb(*this) + , m_out_step_cb(*this) + , m_out_rwc_cb(*this) + , m_out_wg_cb(*this) + , m_in_drdy_cb(*this) + , m_in_index_cb(*this) + , m_in_wf_cb(*this) + , m_in_tk000_cb(*this) + , m_in_sc_cb(*this) + , m_status(0) + , m_error(0) { } @@ -246,10 +248,10 @@ READ8_MEMBER(wd2010_device::read) if (offset == TASK_FILE_SDH_REGISTER) { - logerror("(READ) %s WD2010 '%s' SDH: %u\n", machine().describe_context(), tag(), data); - logerror("(READ) %s WD2010 '%s' Head: %u\n", machine().describe_context(), tag(), HEAD); - logerror("(READ) %s WD2010 '%s' Drive: %u\n", machine().describe_context(), tag(), DRIVE); - logerror("(READ) %s WD2010 '%s' Sector Size: %u\n", machine().describe_context(), tag(), SECTOR_SIZE); + logerror("(READ) %s WD2010 SDH: %u\n", machine().describe_context(), data); + logerror("(READ) %s WD2010 Head: %u\n", machine().describe_context(), HEAD); + logerror("(READ) %s WD2010 Drive: %u\n", machine().describe_context(), DRIVE); + logerror("(READ) %s WD2010 Sector Size: %u\n", machine().describe_context(), SECTOR_SIZE); } break; @@ -270,33 +272,30 @@ WRITE8_MEMBER(wd2010_device::write) switch (offset) { case TASK_FILE_WRITE_PRECOMP_CYLINDER: - if (LOG) logerror("%s WD2010 '%s' Write Precomp Cylinder: %u\n", machine().describe_context(), tag(), WRITE_PRECOMP_CYLINDER); + LOG("%s WD2010 Write Precomp Cylinder: %u\n", machine().describe_context(), WRITE_PRECOMP_CYLINDER); break; case TASK_FILE_SECTOR_COUNT: - if (LOG) logerror("%s WD2010 '%s' Sector Count: %u\n", machine().describe_context(), tag(), SECTOR_COUNT); + LOG("%s WD2010 Sector Count: %u\n", machine().describe_context(), SECTOR_COUNT); break; case TASK_FILE_SECTOR_NUMBER: - if (LOG) logerror("%s WD2010 '%s' Sector Number: %u\n", machine().describe_context(), tag(), SECTOR_NUMBER); + LOG("%s WD2010 Sector Number: %u\n", machine().describe_context(), SECTOR_NUMBER); break; case TASK_FILE_CYLINDER_LOW: - if (LOG) logerror("%s WD2010 '%s' Cylinder (lower bits set): %u\n", machine().describe_context(), tag(), CYLINDER); + LOG("%s WD2010 Cylinder (lower bits set): %u\n", machine().describe_context(), CYLINDER); break; case TASK_FILE_CYLINDER_HIGH: - if (LOG) logerror("%s WD2010 '%s' Cylinder (MSB bits set): %u\n", machine().describe_context(), tag(), CYLINDER); + LOG("%s WD2010 Cylinder (MSB bits set): %u\n", machine().describe_context(), CYLINDER); break; case TASK_FILE_SDH_REGISTER: - if (LOG) - { - logerror("(WRITE) %s WD2010 '%s' SDH: %u\n", machine().describe_context(), tag(), data); - logerror("(WRITE) %s WD2010 '%s' Head: %u\n", machine().describe_context(), tag(), HEAD); - logerror("(WRITE) %s WD2010 '%s' Drive: %u\n", machine().describe_context(), tag(), DRIVE); - logerror("(WRITE) %s WD2010 '%s' Sector Size: %u\n", machine().describe_context(), tag(), SECTOR_SIZE); - } + LOG("(WRITE) %s WD2010 SDH: %u\n", machine().describe_context(), data); + LOG("(WRITE) %s WD2010 Head: %u\n", machine().describe_context(), HEAD); + LOG("(WRITE) %s WD2010 Drive: %u\n", machine().describe_context(), DRIVE); + LOG("(WRITE) %s WD2010 Sector Size: %u\n", machine().describe_context(), SECTOR_SIZE); break; case TASK_FILE_COMMAND: @@ -306,12 +305,12 @@ WRITE8_MEMBER(wd2010_device::write) if (data == COMMAND_COMPUTE_CORRECTION) { - if (LOG) logerror("%s WD2010 '%s' COMPUTE CORRECTION\n", machine().describe_context(), tag()); + LOG("%s WD2010 COMPUTE CORRECTION\n", machine().describe_context()); compute_correction(data); } else if ((data & COMMAND_SET_PARAMETER_MASK) == COMMAND_SET_PARAMETER) { - if (LOG) logerror("%s WD2010 '%s' SET PARAMETER\n", machine().describe_context(), tag()); + LOG("%s WD2010 SET PARAMETER\n", machine().describe_context()); set_parameter(data); } else @@ -319,32 +318,32 @@ WRITE8_MEMBER(wd2010_device::write) switch (data & COMMAND_MASK) { case COMMAND_RESTORE: - if (LOG) logerror("%s WD2010 '%s' RESTORE\n", machine().describe_context(), tag()); + LOG("%s WD2010 RESTORE\n", machine().describe_context()); restore(data); break; case COMMAND_SEEK: - if (LOG) logerror("%s WD2010 '%s' SEEK\n", machine().describe_context(), tag()); + LOG("%s WD2010 SEEK\n", machine().describe_context()); seek(data); break; case COMMAND_READ_SECTOR: - if (LOG) logerror("%s WD2010 '%s' READ SECTOR (I = %u) (M = %u)\n", machine().describe_context(), tag(), ((data & 8)>0), ((data & 4)>0)); + LOG("%s WD2010 READ SECTOR (I = %u) (M = %u)\n", machine().describe_context(), ((data & 8)>0), ((data & 4)>0)); read_sector(data); break; case COMMAND_WRITE_SECTOR: - if (LOG) logerror("%s WD2010 '%s' WRITE SECTOR (M = %u)\n", machine().describe_context(), tag(), ((data & 4) > 0)); + LOG("%s WD2010 WRITE SECTOR (M = %u)\n", machine().describe_context(), ((data & 4) > 0)); write_sector(data); break; case COMMAND_SCAN_ID: - if (LOG) logerror("%s WD2010 '%s' SCAN ID\n", machine().describe_context(), tag()); + LOG("%s WD2010 SCAN ID\n", machine().describe_context()); scan_id(data); break; case COMMAND_WRITE_FORMAT: - if (LOG) logerror("%s WD2010 '%s' WRITE FORMAT\n", machine().describe_context(), tag()); + LOG("%s WD2010 WRITE FORMAT\n", machine().describe_context()); format(data); break; } diff --git a/src/devices/machine/wd2010.h b/src/devices/machine/wd2010.h index 0c8817b1276..da76fa0af9d 100644 --- a/src/devices/machine/wd2010.h +++ b/src/devices/machine/wd2010.h @@ -6,11 +6,10 @@ **********************************************************************/ -#pragma once - -#ifndef __WD2010__ -#define __WD2010__ +#ifndef MAME_MACHINE_WD2010_H +#define MAME_MACHINE_WD2010_H +#pragma once @@ -76,21 +75,21 @@ public: // construction/destruction wd2010_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_out_intrq_callback(device_t &device, _Object object) { return downcast(device).m_out_intrq_cb.set_callback(object); } - template static devcb_base &set_out_bdrq_callback(device_t &device, _Object object) { return downcast(device).m_out_bdrq_cb.set_callback(object); } - template static devcb_base &set_out_bcr_callback(device_t &device, _Object object) { return downcast(device).m_out_bcr_cb.set_callback(object); } - template static devcb_base &set_in_brdy_callback(device_t &device, _Object object) { return downcast(device).m_in_brdy_cb.set_callback(object); } - template static devcb_base &set_in_bcs_callback(device_t &device, _Object object) { return downcast(device).m_in_bcs_cb.set_callback(object); } - template static devcb_base &set_out_bcs_callback(device_t &device, _Object object) { return downcast(device).m_out_bcs_cb.set_callback(object); } - template static devcb_base &set_out_dirin_callback(device_t &device, _Object object) { return downcast(device).m_out_dirin_cb.set_callback(object); } - template static devcb_base &set_out_step_callback(device_t &device, _Object object) { return downcast(device).m_out_step_cb.set_callback(object); } - template static devcb_base &set_out_rwc_callback(device_t &device, _Object object) { return downcast(device).m_out_rwc_cb.set_callback(object); } - template static devcb_base &set_out_wg_callback(device_t &device, _Object object) { return downcast(device).m_out_wg_cb.set_callback(object); } - template static devcb_base &set_in_drdy_callback(device_t &device, _Object object) { return downcast(device).m_in_drdy_cb.set_callback(object); } - template static devcb_base &set_in_index_callback(device_t &device, _Object object) { return downcast(device).m_in_index_cb.set_callback(object); } - template static devcb_base &set_in_wf_callback(device_t &device, _Object object) { return downcast(device).m_in_wf_cb.set_callback(object); } - template static devcb_base &set_in_tk000_callback(device_t &device, _Object object) { return downcast(device).m_in_tk000_cb.set_callback(object); } - template static devcb_base &set_in_sc_callback(device_t &device, _Object object) { return downcast(device).m_in_sc_cb.set_callback(object); } + template static devcb_base &set_out_intrq_callback(device_t &device, Object &&cb) { return downcast(device).m_out_intrq_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_bdrq_callback(device_t &device, Object &&cb) { return downcast(device).m_out_bdrq_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_bcr_callback(device_t &device, Object &&cb) { return downcast(device).m_out_bcr_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_in_brdy_callback(device_t &device, Object &&cb) { return downcast(device).m_in_brdy_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_in_bcs_callback(device_t &device, Object &&cb) { return downcast(device).m_in_bcs_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_bcs_callback(device_t &device, Object &&cb) { return downcast(device).m_out_bcs_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_dirin_callback(device_t &device, Object &&cb) { return downcast(device).m_out_dirin_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_step_callback(device_t &device, Object &&cb) { return downcast(device).m_out_step_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_rwc_callback(device_t &device, Object &&cb) { return downcast(device).m_out_rwc_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_wg_callback(device_t &device, Object &&cb) { return downcast(device).m_out_wg_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_in_drdy_callback(device_t &device, Object &&cb) { return downcast(device).m_in_drdy_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_in_index_callback(device_t &device, Object &&cb) { return downcast(device).m_in_index_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_in_wf_callback(device_t &device, Object &&cb) { return downcast(device).m_in_wf_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_in_tk000_callback(device_t &device, Object &&cb) { return downcast(device).m_in_tk000_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_in_sc_callback(device_t &device, Object &&cb) { return downcast(device).m_in_sc_cb.set_callback(std::forward(cb)); } DECLARE_READ8_MEMBER( read ); DECLARE_WRITE8_MEMBER( write ); @@ -151,6 +150,6 @@ private: }; // device type definition -extern const device_type WD2010; +DECLARE_DEVICE_TYPE(WD2010, wd2010_device) -#endif +#endif // MAME_MACHINE_WD2010_H diff --git a/src/devices/machine/wd33c93.cpp b/src/devices/machine/wd33c93.cpp index ba20d5c324a..c4706dc8f05 100644 --- a/src/devices/machine/wd33c93.cpp +++ b/src/devices/machine/wd33c93.cpp @@ -16,8 +16,9 @@ #include "emu.h" #include "wd33c93.h" -#define VERBOSE 0 -#define LOG(x) do { if (VERBOSE) logerror x; } while (0) +//#define VERBOSE 1 +#include "logmacro.h" + /* WD commands */ #define WD_CMD_RESET 0x00 @@ -137,7 +138,7 @@ #define SRCID_ER 0x80 /* convernience functions */ -uint8_t wd33c93_device::getunit( void ) +uint8_t wd33c93_device::getunit() { /* return the destination unit id */ return regs[WD_DESTINATION_ID] & SRCID_MASK; @@ -151,7 +152,7 @@ void wd33c93_device::set_xfer_count( int count ) regs[ WD_TRANSFER_COUNT_MSB ] = ( count >> 16 ) & 0xff; } -int wd33c93_device::get_xfer_count( void ) +int wd33c93_device::get_xfer_count() { /* get the count */ int count = regs[ WD_TRANSFER_COUNT_MSB ]; @@ -473,7 +474,7 @@ WRITE8_MEMBER(wd33c93_device::write) case 1: { - LOG(( "WD33C93: PC=%08x - Write REG=%02x, data = %02x\n", space.device().safe_pc(), sasr, data )); + LOG( "WD33C93: PC=%08x - Write REG=%02x, data = %02x\n", space.device().safe_pc(), sasr, data ); /* update the register */ regs[sasr] = data; @@ -481,7 +482,7 @@ WRITE8_MEMBER(wd33c93_device::write) /* if we receive a command, schedule to process it */ if ( sasr == WD_COMMAND ) { - LOG(( "WDC33C93: PC=%08x - Executing command %08x - unit %d\n", space.device().safe_pc(), data, getunit() )); + LOG( "WDC33C93: PC=%08x - Executing command %08x - unit %d\n", space.device().safe_pc(), data, getunit() ); /* signal we're processing it */ regs[WD_AUXILIARY_STATUS] |= ASR_CIP; @@ -630,7 +631,7 @@ READ8_MEMBER(wd33c93_device::read) m_irq_cb(0); } - LOG(( "WD33C93: PC=%08x - Status read (%02x)\n", space.device().safe_pc(), regs[WD_SCSI_STATUS] )); + LOG( "WD33C93: PC=%08x - Status read (%02x)\n", space.device().safe_pc(), regs[WD_SCSI_STATUS] ); } else if ( sasr == WD_DATA ) { @@ -699,7 +700,7 @@ READ8_MEMBER(wd33c93_device::read) } } - LOG(( "WD33C93: PC=%08x - Data read (%02x)\n", space.device().safe_pc(), regs[WD_DATA] )); + LOG( "WD33C93: PC=%08x - Data read (%02x)\n", space.device().safe_pc(), regs[WD_DATA] ); /* get the register value */ ret = regs[sasr]; @@ -724,7 +725,7 @@ READ8_MEMBER(wd33c93_device::read) } wd33c93_device::wd33c93_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - legacy_scsi_host_adapter(mconfig, WD33C93, "33C93 SCSI", tag, owner, clock, "wd33c93", __FILE__), + legacy_scsi_host_adapter(mconfig, WD33C93, tag, owner, clock), m_irq_cb(*this) { } @@ -804,4 +805,4 @@ int wd33c93_device::get_dma_count() return get_xfer_count(); } -const device_type WD33C93 = device_creator; +DEFINE_DEVICE_TYPE(WD33C93, wd33c93_device, "wd33c93", "Western Digital WD33C93 SCSI") diff --git a/src/devices/machine/wd33c93.h b/src/devices/machine/wd33c93.h index b8929d8b791..5559f16b1c8 100644 --- a/src/devices/machine/wd33c93.h +++ b/src/devices/machine/wd33c93.h @@ -5,50 +5,15 @@ * */ -#ifndef _WD33C93_H_ -#define _WD33C93_H_ +#ifndef MAME_MACHINE_WD33C93_H +#define MAME_MACHINE_WD33C93_H -#include "legscsi.h" - -/* wd register names */ - -enum -{ - WD_OWN_ID = 0x00, - WD_CONTROL = 0x01, - WD_TIMEOUT_PERIOD = 0x02, - WD_CDB_1 = 0x03, - WD_CDB_2 = 0x04, - WD_CDB_3 = 0x05, - WD_CDB_4 = 0x06, - WD_CDB_5 = 0x07, - WD_CDB_6 = 0x08, - WD_CDB_7 = 0x09, - WD_CDB_8 = 0x0a, - WD_CDB_9 = 0x0b, - WD_CDB_10 = 0x0c, - WD_CDB_11 = 0x0d, - WD_CDB_12 = 0x0e, - WD_TARGET_LUN = 0x0f, - WD_COMMAND_PHASE = 0x10, - WD_SYNCHRONOUS_TRANSFER = 0x11, - WD_TRANSFER_COUNT_MSB = 0x12, - WD_TRANSFER_COUNT = 0x13, - WD_TRANSFER_COUNT_LSB = 0x14, - WD_DESTINATION_ID = 0x15, - WD_SOURCE_ID = 0x16, - WD_SCSI_STATUS = 0x17, - WD_COMMAND = 0x18, - WD_DATA = 0x19, - WD_QUEUE_TAG = 0x1a, - WD_AUXILIARY_STATUS = 0x1f -}; +#pragma once -#define TEMP_INPUT_LEN 262144 -#define FIFO_SIZE 12 +#include "legscsi.h" -#define MCFG_WD33C93_IRQ_CB(_devcb) \ - devcb = &wd33c93_device::set_irq_callback(*device, DEVCB_##_devcb); +#define MCFG_WD33C93_IRQ_CB(cb) \ + devcb = &wd33c93_device::set_irq_callback(*device, (DEVCB_##cb)); class wd33c93_device : public legacy_scsi_host_adapter { @@ -72,11 +37,47 @@ protected: virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; private: - uint8_t getunit( void ); - void set_xfer_count( int count ); - int get_xfer_count( void ); - void complete_immediate( int status ); - void complete_cmd( uint8_t status ); + // wd register names + enum + { + WD_OWN_ID = 0x00, + WD_CONTROL = 0x01, + WD_TIMEOUT_PERIOD = 0x02, + WD_CDB_1 = 0x03, + WD_CDB_2 = 0x04, + WD_CDB_3 = 0x05, + WD_CDB_4 = 0x06, + WD_CDB_5 = 0x07, + WD_CDB_6 = 0x08, + WD_CDB_7 = 0x09, + WD_CDB_8 = 0x0a, + WD_CDB_9 = 0x0b, + WD_CDB_10 = 0x0c, + WD_CDB_11 = 0x0d, + WD_CDB_12 = 0x0e, + WD_TARGET_LUN = 0x0f, + WD_COMMAND_PHASE = 0x10, + WD_SYNCHRONOUS_TRANSFER = 0x11, + WD_TRANSFER_COUNT_MSB = 0x12, + WD_TRANSFER_COUNT = 0x13, + WD_TRANSFER_COUNT_LSB = 0x14, + WD_DESTINATION_ID = 0x15, + WD_SOURCE_ID = 0x16, + WD_SCSI_STATUS = 0x17, + WD_COMMAND = 0x18, + WD_DATA = 0x19, + WD_QUEUE_TAG = 0x1a, + WD_AUXILIARY_STATUS = 0x1f + }; + + static constexpr unsigned TEMP_INPUT_LEN = 262144; + static constexpr unsigned FIFO_SIZE = 12; + + uint8_t getunit(); + void set_xfer_count(int count); + int get_xfer_count(); + void complete_immediate(int status); + void complete_cmd(uint8_t status); void unimplemented_cmd(); void invalid_cmd(); void reset_cmd(); @@ -104,6 +105,6 @@ private: }; // device type definition -extern const device_type WD33C93; +DECLARE_DEVICE_TYPE(WD33C93, wd33c93_device) -#endif +#endif // MAME_MACHINE_WD33C93_H diff --git a/src/devices/machine/wd7600.cpp b/src/devices/machine/wd7600.cpp index 806ac43b718..b2fe76f43e4 100644 --- a/src/devices/machine/wd7600.cpp +++ b/src/devices/machine/wd7600.cpp @@ -15,9 +15,11 @@ #include "emu.h" #include "machine/wd7600.h" -const device_type WD7600 = device_creator; +#define VERBOSE 1 +#include "logmacro.h" -#define LOG (1) + +DEFINE_DEVICE_TYPE(WD7600, wd7600_device, "wd7600", "Western Digital WD7600 chipset") static MACHINE_CONFIG_FRAGMENT( wd7600 ) MCFG_DEVICE_ADD("dma1", AM9517A, 0) @@ -97,7 +99,7 @@ void wd7600_device::static_set_keybctag(device_t &device, const char *tag) } wd7600_device::wd7600_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, WD7600, "WD 7600 chipset", tag, owner, clock, "wd7600", __FILE__), + device_t(mconfig, WD7600, tag, owner, clock), m_read_ior(*this), m_write_iow(*this), m_write_tc(*this), @@ -316,20 +318,20 @@ WRITE_LINE_MEMBER( wd7600_device::ctc_out2_w ) // Keyboard WRITE8_MEMBER( wd7600_device::keyb_data_w ) { -// if(LOG) logerror("WD7600 '%s': keyboard data write %02x\n", tag(), data); +// LOG("WD7600: keyboard data write %02x\n", data); m_keybc->data_w(space,0,data); } READ8_MEMBER( wd7600_device::keyb_data_r ) { uint8_t ret = m_keybc->data_r(space,0); -// if(LOG) logerror("WD7600 '%s': keyboard data read %02x\n", tag(), ret); +// LOG("WD7600: keyboard data read %02x\n", ret); return ret; } WRITE8_MEMBER( wd7600_device::keyb_cmd_w ) { -// if(LOG) logerror("WD7600 '%s': keyboard command %02x\n", tag(), data); +// LOG("WD7600: keyboard command %02x\n", data); m_keybc->command_w(space,0,data); } @@ -473,7 +475,7 @@ WRITE8_MEMBER( wd7600_device::a20_reset_w ) { m_write_cpureset(1); m_write_cpureset(0); - if(LOG) logerror("WD7600 '%s': System reset\n",tag()); + LOG("WD7600: System reset\n"); } } @@ -495,7 +497,7 @@ WRITE16_MEMBER(wd7600_device::refresh_w) { // TODO: select serial/parallel I/O port location m_refresh_ctrl = data; - if(LOG) logerror("WD7600 '%s': Refresh Control write %04x\n",tag(),data); + LOG("WD7600: Refresh Control write %04x\n", data); } // port 0x2872 - chip select @@ -507,7 +509,7 @@ READ16_MEMBER(wd7600_device::chipsel_r) WRITE16_MEMBER(wd7600_device::chipsel_w) { m_chip_sel = data; - if(LOG) logerror("WD7600 '%s': Chip Select write %04x\n",tag(),data); + LOG("WD7600: Chip Select write %04x\n", data); } // port 0x3872 - Memory Control @@ -519,7 +521,7 @@ READ16_MEMBER(wd7600_device::mem_ctrl_r) WRITE16_MEMBER(wd7600_device::mem_ctrl_w) { m_memory_ctrl = data; - if(LOG) logerror("WD7600 '%s': Memory Control write %04x\n",tag(),data); + LOG("WD7600: Memory Control write %04x\n", data); } // port 0x4872 - Bank 0 and 1 start address @@ -533,12 +535,12 @@ WRITE16_MEMBER(wd7600_device::bank_01_start_w) if(ACCESSING_BITS_0_7) { m_bank_start[0] = data & 0xff; - if(LOG) logerror("WD7600 '%s': Bank 0 start address %08x\n",tag(),m_bank_start[0] << 16); + LOG("WD7600: Bank 0 start address %08x\n", m_bank_start[0] << 16); } if(ACCESSING_BITS_8_15) { m_bank_start[1] = (data & 0xff00) >> 8; - if(LOG) logerror("WD7600 '%s': Bank 1 start address %08x\n",tag(),m_bank_start[1] << 16); + LOG("WD7600: Bank 1 start address %08x\n", m_bank_start[1] << 16); } } @@ -553,12 +555,12 @@ WRITE16_MEMBER(wd7600_device::bank_23_start_w) if(ACCESSING_BITS_0_7) { m_bank_start[2] = data & 0xff; - if(LOG) logerror("WD7600 '%s': Bank 2 start address %08x\n",tag(),m_bank_start[2] << 16); + LOG("WD7600: Bank 2 start address %08x\n", m_bank_start[2] << 16); } if(ACCESSING_BITS_8_15) { m_bank_start[3] = (data & 0xff00) >> 8; - if(LOG) logerror("WD7600 '%s': Bank 3 start address %08x\n",tag(),m_bank_start[3] << 16); + LOG("WD7600: Bank 3 start address %08x\n", m_bank_start[3] << 16); } } @@ -571,7 +573,7 @@ READ16_MEMBER(wd7600_device::split_addr_r) WRITE16_MEMBER(wd7600_device::split_addr_w) { m_split_start = data; - if(LOG) logerror("WD7600 '%s': Split start address write %04x\n",tag(),data); + LOG("WD7600: Split start address write %04x\n", data); } // port 0x9872 - Diagnostic @@ -583,5 +585,5 @@ READ16_MEMBER(wd7600_device::diag_r) WRITE16_MEMBER(wd7600_device::diag_w) { m_diagnostic = data; - if(LOG) logerror("WD7600 '%s': Diagnostic write %04x\n",tag(),data); + LOG("WD7600: Diagnostic write %04x\n", data); } diff --git a/src/devices/machine/wd7600.h b/src/devices/machine/wd7600.h index 84e97e2d975..0f8a65d7964 100644 --- a/src/devices/machine/wd7600.h +++ b/src/devices/machine/wd7600.h @@ -6,8 +6,10 @@ * Created on: 5/05/2014 */ -#ifndef WD7600_H_ -#define WD7600_H_ +#ifndef MAME_MACHINE_WD7600_H +#define MAME_MACHINE_WD7600_H + +#pragma once #include "machine/am9517a.h" #include "machine/pic8259.h" @@ -68,15 +70,15 @@ public: virtual machine_config_constructor device_mconfig_additions() const override; // callbacks - template devcb_base &set_ior_callback(_ior ior) { return m_read_ior.set_callback(ior); } - template devcb_base &set_iow_callback(_iow iow) { return m_write_iow.set_callback(iow); } - template devcb_base &set_tc_callback(_tc tc) { return m_write_tc.set_callback(tc); } - template devcb_base &set_hold_callback(_hold hold) { return m_write_hold.set_callback(hold); } - template devcb_base &set_cpureset_callback(_cpureset cpureset) { return m_write_cpureset.set_callback(cpureset); } - template devcb_base &set_nmi_callback(_nmi nmi) { return m_write_nmi.set_callback(nmi); } - template devcb_base &set_intr_callback(_intr intr) { return m_write_intr.set_callback(intr); } - template devcb_base &set_a20m_callback(_a20m a20m) { return m_write_a20m.set_callback(a20m); } - template devcb_base &set_spkr_callback(_spkr spkr) { return m_write_spkr.set_callback(spkr); } + template devcb_base &set_ior_callback(Object &&ior) { return m_read_ior.set_callback(std::forward(ior)); } + template devcb_base &set_iow_callback(Object &&iow) { return m_write_iow.set_callback(std::forward(iow)); } + template devcb_base &set_tc_callback(Object &&tc) { return m_write_tc.set_callback(std::forward(tc)); } + template devcb_base &set_hold_callback(Object &&hold) { return m_write_hold.set_callback(std::forward(hold)); } + template devcb_base &set_cpureset_callback(Object &&cpureset) { return m_write_cpureset.set_callback(std::forward(cpureset)); } + template devcb_base &set_nmi_callback(Object &&nmi) { return m_write_nmi.set_callback(std::forward(nmi)); } + template devcb_base &set_intr_callback(Object &&intr) { return m_write_intr.set_callback(std::forward(intr)); } + template devcb_base &set_a20m_callback(Object &&a20m) { return m_write_a20m.set_callback(std::forward(a20m)); } + template devcb_base &set_spkr_callback(Object &&spkr) { return m_write_spkr.set_callback(std::forward(spkr)); } // inline configuration static void static_set_cputag(device_t &device, const char *tag); @@ -234,6 +236,6 @@ private: }; // device type definition -extern const device_type WD7600; +DECLARE_DEVICE_TYPE(WD7600, wd7600_device) -#endif /* WD7600_H_ */ +#endif // MAME_MACHINE_WD7600_H diff --git a/src/devices/machine/wd_fdc.cpp b/src/devices/machine/wd_fdc.cpp index f64c1117ed4..f629fdc08bd 100644 --- a/src/devices/machine/wd_fdc.cpp +++ b/src/devices/machine/wd_fdc.cpp @@ -5,29 +5,35 @@ #include "debugger.h" -const device_type FD1771 = device_creator; -const device_type FD1781 = device_creator; -const device_type FD1791 = device_creator; -const device_type FD1792 = device_creator; -const device_type FD1793 = device_creator; -const device_type KR1818VG93 = device_creator; -const device_type FD1794 = device_creator; -const device_type FD1795 = device_creator; -const device_type FD1797 = device_creator; -const device_type MB8866 = device_creator; -const device_type MB8876 = device_creator; -const device_type MB8877 = device_creator; -const device_type FD1761 = device_creator; -const device_type FD1763 = device_creator; -const device_type FD1765 = device_creator; -const device_type FD1767 = device_creator; -const device_type WD2791 = device_creator; -const device_type WD2793 = device_creator; -const device_type WD2795 = device_creator; -const device_type WD2797 = device_creator; -const device_type WD1770 = device_creator; -const device_type WD1772 = device_creator; -const device_type WD1773 = device_creator; +DEFINE_DEVICE_TYPE(FD1771, fd1771_device, "fd1771", "FD1771 FDC") + +DEFINE_DEVICE_TYPE(FD1781, fd1781_device, "fd1781", "FD1781 FDC") + +DEFINE_DEVICE_TYPE(FD1791, fd1791_device, "fd1791", "FD1791 FDC") +DEFINE_DEVICE_TYPE(FD1792, fd1792_device, "fd1792", "FD1792 FDC") +DEFINE_DEVICE_TYPE(FD1793, fd1793_device, "fd1793", "FD1793 FDC") +DEFINE_DEVICE_TYPE(KR1818VG93, kr1818vg93_device, "kr1818vg93", "KR1818VG93 FDC") +DEFINE_DEVICE_TYPE(FD1794, fd1794_device, "fd1794", "FD1794 FDC") +DEFINE_DEVICE_TYPE(FD1795, fd1795_device, "fd1795", "FD1795 FDC") +DEFINE_DEVICE_TYPE(FD1797, fd1797_device, "fd1797", "FD1797 FDC") + +DEFINE_DEVICE_TYPE(MB8866, mb8866_device, "mb8866", "Fujitsu MB8866 FDC") +DEFINE_DEVICE_TYPE(MB8876, mb8876_device, "mb8876", "Fujitsu MB8876 FDC") +DEFINE_DEVICE_TYPE(MB8877, mb8877_device, "mb8877", "Fujitsu MB8877 FDC") + +DEFINE_DEVICE_TYPE(FD1761, fd1761_device, "fd1761", "FD1761 FDC") +DEFINE_DEVICE_TYPE(FD1763, fd1763_device, "fd1763", "FD1763 FDC") +DEFINE_DEVICE_TYPE(FD1765, fd1765_device, "fd1765", "FD1765 FDC") +DEFINE_DEVICE_TYPE(FD1767, fd1767_device, "fd1767", "FD1767 FDC") + +DEFINE_DEVICE_TYPE(WD2791, wd2791_device, "wd2791", "Western Digital WD2791 FDC") +DEFINE_DEVICE_TYPE(WD2793, wd2793_device, "wd2793", "Western Digital WD2793 FDC") +DEFINE_DEVICE_TYPE(WD2795, wd2795_device, "wd2795", "Western Digital WD2795 FDC") +DEFINE_DEVICE_TYPE(WD2797, wd2797_device, "wd2797", "Western Digital WD2797 FDC") + +DEFINE_DEVICE_TYPE(WD1770, wd1770_device, "wd1770", "Western Digital WD1770 FDC") +DEFINE_DEVICE_TYPE(WD1772, wd1772_device, "wd1772", "Western Digital WD1772 FDC") +DEFINE_DEVICE_TYPE(WD1773, wd1773_device, "wd1773", "Western Digital WD1773 FDC") /* Debugging flags. Set to 0 or 1. @@ -66,8 +72,8 @@ const device_type WD1773 = device_creator; // Show state machine #define TRACE_STATE 0 -wd_fdc_t::wd_fdc_t(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), +wd_fdc_device_base::wd_fdc_device_base(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), intrq_cb(*this), drq_cb(*this), hld_cb(*this), @@ -78,17 +84,17 @@ wd_fdc_t::wd_fdc_t(const machine_config &mconfig, device_type type, const char * disable_motor_control = false; } -void wd_fdc_t::set_force_ready(bool _force_ready) +void wd_fdc_device_base::set_force_ready(bool _force_ready) { force_ready = _force_ready; } -void wd_fdc_t::set_disable_motor_control(bool _disable_motor_control) +void wd_fdc_device_base::set_disable_motor_control(bool _disable_motor_control) { disable_motor_control = _disable_motor_control; } -void wd_fdc_t::device_start() +void wd_fdc_device_base::device_start() { intrq_cb.resolve(); drq_cb.resolve(); @@ -123,12 +129,12 @@ void wd_fdc_t::device_start() save_item(NAME(last_dir)); } -void wd_fdc_t::device_reset() +void wd_fdc_device_base::device_reset() { soft_reset(); } -void wd_fdc_t::soft_reset() +void wd_fdc_device_base::soft_reset() { command = 0x00; main_state = IDLE; @@ -166,7 +172,7 @@ void wd_fdc_t::soft_reset() t_gen->adjust(attotime::zero); } -void wd_fdc_t::set_floppy(floppy_image_device *_floppy) +void wd_fdc_device_base::set_floppy(floppy_image_device *_floppy) { if(floppy == _floppy) return; @@ -186,15 +192,15 @@ void wd_fdc_t::set_floppy(floppy_image_device *_floppy) if(floppy) { if(motor_control && !disable_motor_control) floppy->mon_w(status & S_MON ? 0 : 1); - floppy->setup_index_pulse_cb(floppy_image_device::index_pulse_cb(&wd_fdc_t::index_callback, this)); - floppy->setup_ready_cb(floppy_image_device::ready_cb(&wd_fdc_t::ready_callback, this)); + floppy->setup_index_pulse_cb(floppy_image_device::index_pulse_cb(&wd_fdc_device_base::index_callback, this)); + floppy->setup_ready_cb(floppy_image_device::ready_cb(&wd_fdc_device_base::ready_callback, this)); } if(prev_ready != next_ready) ready_callback(floppy, next_ready); } -void wd_fdc_t::dden_w(bool _dden) +void wd_fdc_device_base::dden_w(bool _dden) { if(disable_mfm) { logerror("Error, this chip does not have a dden line\n"); @@ -207,7 +213,7 @@ void wd_fdc_t::dden_w(bool _dden) } } -std::string wd_fdc_t::tts(const attotime &t) +std::string wd_fdc_device_base::tts(const attotime &t) { char buf[256]; int nsec = t.attoseconds() / ATTOSECONDS_PER_NANOSECOND; @@ -215,12 +221,12 @@ std::string wd_fdc_t::tts(const attotime &t) return buf; } -std::string wd_fdc_t::ttsn() +std::string wd_fdc_device_base::ttsn() { return tts(machine().time()); } -void wd_fdc_t::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) +void wd_fdc_device_base::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) { if (TRACE_EVENT) logerror("Event fired for timer %s\n", (id==TM_GEN)? "TM_GEN" : (id==TM_CMD)? "TM_CMD" : (id==TM_TRACK)? "TM_TRACK" : "TM_SECTOR"); live_sync(); @@ -235,7 +241,7 @@ void wd_fdc_t::device_timer(emu_timer &timer, device_timer_id id, int param, voi general_continue(); } -void wd_fdc_t::command_end() +void wd_fdc_device_base::command_end() { main_state = sub_state = IDLE; motor_timeout = 0; @@ -248,7 +254,7 @@ void wd_fdc_t::command_end() } } -void wd_fdc_t::seek_start(int state) +void wd_fdc_device_base::seek_start(int state) { if (TRACE_COMMAND) logerror("cmd: seek %d %x (track=%d)\n", state, data, track); main_state = state; @@ -265,7 +271,7 @@ void wd_fdc_t::seek_start(int state) seek_continue(); } -void wd_fdc_t::seek_continue() +void wd_fdc_device_base::seek_continue() { for(;;) { switch(sub_state) { @@ -411,7 +417,7 @@ void wd_fdc_t::seek_continue() } } -bool wd_fdc_t::sector_matches() const +bool wd_fdc_device_base::sector_matches() const { if(TRACE_MATCH) logerror("matching read T=%02x H=%02x S=%02x L=%02x - searched T=%02x S=%02x\n", @@ -428,12 +434,12 @@ bool wd_fdc_t::sector_matches() const return !(cur_live.idbuf[1] & 1); } -bool wd_fdc_t::is_ready() +bool wd_fdc_device_base::is_ready() { return !ready_hooked || force_ready || (floppy && !floppy->ready_r()); } -void wd_fdc_t::read_sector_start() +void wd_fdc_device_base::read_sector_start() { if (TRACE_COMMAND) logerror("cmd: read sector%s (c=%02x) t=%d, s=%d\n", command & 0x10 ? " multiple" : "", command, track, sector); if(!is_ready()) { @@ -451,7 +457,7 @@ void wd_fdc_t::read_sector_start() read_sector_continue(); } -void wd_fdc_t::read_sector_continue() +void wd_fdc_device_base::read_sector_continue() { for(;;) { switch(sub_state) { @@ -533,7 +539,7 @@ void wd_fdc_t::read_sector_continue() } } -void wd_fdc_t::read_track_start() +void wd_fdc_device_base::read_track_start() { if (TRACE_COMMAND) logerror("cmd: read track (c=%02x) t=%d\n", command, track); @@ -552,7 +558,7 @@ void wd_fdc_t::read_track_start() read_track_continue(); } -void wd_fdc_t::read_track_continue() +void wd_fdc_device_base::read_track_continue() { for(;;) { switch(sub_state) { @@ -612,7 +618,7 @@ void wd_fdc_t::read_track_continue() } } -void wd_fdc_t::read_id_start() +void wd_fdc_device_base::read_id_start() { if (TRACE_COMMAND) logerror("cmd: read id (c=%02x)\n", command); if(!is_ready()) { @@ -630,7 +636,7 @@ void wd_fdc_t::read_id_start() read_id_continue(); } -void wd_fdc_t::read_id_continue() +void wd_fdc_device_base::read_id_continue() { for(;;) { switch(sub_state) { @@ -687,7 +693,7 @@ void wd_fdc_t::read_id_continue() } } -void wd_fdc_t::write_track_start() +void wd_fdc_device_base::write_track_start() { if (TRACE_COMMAND) logerror("cmd: write track (c=%02x) t=%d\n", command, track); @@ -711,7 +717,7 @@ void wd_fdc_t::write_track_start() write_track_continue(); } -void wd_fdc_t::write_track_continue() +void wd_fdc_device_base::write_track_continue() { for(;;) { switch(sub_state) { @@ -798,7 +804,7 @@ void wd_fdc_t::write_track_continue() } -void wd_fdc_t::write_sector_start() +void wd_fdc_device_base::write_sector_start() { if (TRACE_COMMAND) logerror("cmd: write sector%s (c=%02x) t=%d, s=%d\n", command & 0x10 ? " multiple" : "", command, track, sector); @@ -817,7 +823,7 @@ void wd_fdc_t::write_sector_start() write_sector_continue(); } -void wd_fdc_t::write_sector_continue() +void wd_fdc_device_base::write_sector_continue() { for(;;) { switch(sub_state) { @@ -896,7 +902,7 @@ void wd_fdc_t::write_sector_continue() } } -void wd_fdc_t::interrupt_start() +void wd_fdc_device_base::interrupt_start() { if (TRACE_COMMAND) logerror("cmd: forced interrupt (c=%02x)\n", command); @@ -938,7 +944,7 @@ void wd_fdc_t::interrupt_start() } } -void wd_fdc_t::general_continue() +void wd_fdc_device_base::general_continue() { if(cur_live.state != IDLE) { live_run(); @@ -973,7 +979,7 @@ void wd_fdc_t::general_continue() } } -void wd_fdc_t::do_generic() +void wd_fdc_device_base::do_generic() { switch(sub_state) { case IDLE: @@ -1009,7 +1015,7 @@ void wd_fdc_t::do_generic() } } -void wd_fdc_t::do_cmd_w() +void wd_fdc_device_base::do_cmd_w() { // Only available command when busy is interrupt if(main_state != IDLE && (cmd_buffer & 0xf0) != 0xd0) { @@ -1065,7 +1071,7 @@ void wd_fdc_t::do_cmd_w() } } -void wd_fdc_t::cmd_w(uint8_t val) +void wd_fdc_device_base::cmd_w(uint8_t val) { if (TRACE_COMP) logerror("Initiating command %02x\n", val); if (inverted_bus) val ^= 0xff; @@ -1095,7 +1101,7 @@ void wd_fdc_t::cmd_w(uint8_t val) } } -uint8_t wd_fdc_t::status_r() +uint8_t wd_fdc_device_base::status_r() { if(intrq && !(intrq_cond & I_IMM)) { intrq = false; @@ -1138,13 +1144,13 @@ uint8_t wd_fdc_t::status_r() return val; } -void wd_fdc_t::do_track_w() +void wd_fdc_device_base::do_track_w() { track = track_buffer; track_buffer = -1; } -void wd_fdc_t::track_w(uint8_t val) +void wd_fdc_device_base::track_w(uint8_t val) { if (inverted_bus) val ^= 0xff; @@ -1156,7 +1162,7 @@ void wd_fdc_t::track_w(uint8_t val) delay_cycles(t_track, dden ? delay_register_commit*2 : delay_register_commit); } -uint8_t wd_fdc_t::track_r() +uint8_t wd_fdc_device_base::track_r() { uint8_t val = track; if (inverted_bus) val ^= 0xff; @@ -1164,13 +1170,13 @@ uint8_t wd_fdc_t::track_r() return val; } -void wd_fdc_t::do_sector_w() +void wd_fdc_device_base::do_sector_w() { sector = sector_buffer; sector_buffer = -1; } -void wd_fdc_t::sector_w(uint8_t val) +void wd_fdc_device_base::sector_w(uint8_t val) { if (inverted_bus) val ^= 0xff; @@ -1188,7 +1194,7 @@ void wd_fdc_t::sector_w(uint8_t val) delay_cycles(t_sector, dden ? delay_register_commit*2 : delay_register_commit); } -uint8_t wd_fdc_t::sector_r() +uint8_t wd_fdc_device_base::sector_r() { uint8_t val = sector; if (inverted_bus) val ^= 0xff; @@ -1196,7 +1202,7 @@ uint8_t wd_fdc_t::sector_r() return val; } -void wd_fdc_t::data_w(uint8_t val) +void wd_fdc_device_base::data_w(uint8_t val) { if (inverted_bus) val ^= 0xff; @@ -1204,7 +1210,7 @@ void wd_fdc_t::data_w(uint8_t val) drop_drq(); } -uint8_t wd_fdc_t::data_r() +uint8_t wd_fdc_device_base::data_r() { drop_drq(); @@ -1214,7 +1220,7 @@ uint8_t wd_fdc_t::data_r() return val; } -void wd_fdc_t::gen_w(int reg, uint8_t val) +void wd_fdc_device_base::gen_w(int reg, uint8_t val) { switch(reg) { case 0: cmd_w(val); break; @@ -1224,7 +1230,7 @@ void wd_fdc_t::gen_w(int reg, uint8_t val) } } -uint8_t wd_fdc_t::gen_r(int reg) +uint8_t wd_fdc_device_base::gen_r(int reg) { switch(reg) { case 0: return status_r(); @@ -1235,12 +1241,12 @@ uint8_t wd_fdc_t::gen_r(int reg) return 0xff; } -void wd_fdc_t::delay_cycles(emu_timer *tm, int cycles) +void wd_fdc_device_base::delay_cycles(emu_timer *tm, int cycles) { tm->adjust(clocks_to_attotime(cycles*clock_ratio)); } -void wd_fdc_t::spinup() +void wd_fdc_device_base::spinup() { if(command & 0x08) sub_state = SPINUP_DONE; @@ -1254,7 +1260,7 @@ void wd_fdc_t::spinup() floppy->mon_w(0); } -void wd_fdc_t::ready_callback(floppy_image_device *floppy, int state) +void wd_fdc_device_base::ready_callback(floppy_image_device *floppy, int state) { // why is this even possible? if (!floppy) @@ -1271,7 +1277,7 @@ void wd_fdc_t::ready_callback(floppy_image_device *floppy, int state) } } -void wd_fdc_t::index_callback(floppy_image_device *floppy, int state) +void wd_fdc_device_base::index_callback(floppy_image_device *floppy, int state) { live_sync(); @@ -1362,32 +1368,32 @@ void wd_fdc_t::index_callback(floppy_image_device *floppy, int state) general_continue(); } -bool wd_fdc_t::intrq_r() +bool wd_fdc_device_base::intrq_r() { return intrq; } -bool wd_fdc_t::drq_r() +bool wd_fdc_device_base::drq_r() { return drq; } -bool wd_fdc_t::hld_r() +bool wd_fdc_device_base::hld_r() { return hld; } -void wd_fdc_t::hlt_w(bool state) +void wd_fdc_device_base::hlt_w(bool state) { hlt = state; } -bool wd_fdc_t::enp_r() +bool wd_fdc_device_base::enp_r() { return enp; } -void wd_fdc_t::live_start(int state) +void wd_fdc_device_base::live_start(int state) { cur_live.tm = machine().time(); cur_live.state = state; @@ -1411,26 +1417,26 @@ void wd_fdc_t::live_start(int state) live_run(); } -void wd_fdc_t::checkpoint() +void wd_fdc_device_base::checkpoint() { pll_commit(floppy, cur_live.tm); checkpoint_live = cur_live; pll_save_checkpoint(); } -void wd_fdc_t::rollback() +void wd_fdc_device_base::rollback() { cur_live = checkpoint_live; pll_retrieve_checkpoint(); } -void wd_fdc_t::live_delay(int state) +void wd_fdc_device_base::live_delay(int state) { cur_live.next_state = state; t_gen->adjust(cur_live.tm - machine().time()); } -void wd_fdc_t::live_sync() +void wd_fdc_device_base::live_sync() { if(!cur_live.tm.is_never()) { if(cur_live.tm > machine().time()) { @@ -1455,7 +1461,7 @@ void wd_fdc_t::live_sync() } } -void wd_fdc_t::live_abort() +void wd_fdc_device_base::live_abort() { if(!cur_live.tm.is_never() && cur_live.tm > machine().time()) { rollback(); @@ -1468,7 +1474,7 @@ void wd_fdc_t::live_abort() cur_live.next_state = -1; } -bool wd_fdc_t::read_one_bit(const attotime &limit) +bool wd_fdc_device_base::read_one_bit(const attotime &limit) { int bit = pll_get_next_bit(cur_live.tm, floppy, limit); if(bit < 0) @@ -1486,7 +1492,7 @@ bool wd_fdc_t::read_one_bit(const attotime &limit) return false; } -bool wd_fdc_t::write_one_bit(const attotime &limit) +bool wd_fdc_device_base::write_one_bit(const attotime &limit) { bool bit = cur_live.shift_reg & 0x8000; if(pll_write_next_bit(bit, cur_live.tm, floppy, limit)) @@ -1502,14 +1508,14 @@ bool wd_fdc_t::write_one_bit(const attotime &limit) return false; } -void wd_fdc_t::live_write_raw(uint16_t raw) +void wd_fdc_device_base::live_write_raw(uint16_t raw) { if (TRACE_WRITE) logerror("write raw %04x, CRC=%04x\n", raw, cur_live.crc); cur_live.shift_reg = raw; cur_live.data_bit_context = raw & 1; } -void wd_fdc_t::live_write_mfm(uint8_t mfm) +void wd_fdc_device_base::live_write_mfm(uint8_t mfm) { bool context = cur_live.data_bit_context; uint16_t raw = 0; @@ -1527,7 +1533,7 @@ void wd_fdc_t::live_write_mfm(uint8_t mfm) } -void wd_fdc_t::live_write_fm(uint8_t fm) +void wd_fdc_device_base::live_write_fm(uint8_t fm) { uint16_t raw = 0xaaaa; for(int i=0; i<8; i++) @@ -1539,7 +1545,7 @@ void wd_fdc_t::live_write_fm(uint8_t fm) if (TRACE_WRITE) logerror("live_write_fm byte=%02x, raw=%04x, CRC=%04x\n", fm, raw, cur_live.crc); } -void wd_fdc_t::live_run(attotime limit) +void wd_fdc_device_base::live_run(attotime limit) { if(cur_live.state == IDLE || cur_live.next_state != -1) return; @@ -2101,7 +2107,7 @@ void wd_fdc_t::live_run(attotime limit) } } -void wd_fdc_t::set_drq() +void wd_fdc_device_base::set_drq() { if(drq) { status |= S_LOST; @@ -2115,7 +2121,7 @@ void wd_fdc_t::set_drq() } } -void wd_fdc_t::drop_drq() +void wd_fdc_device_base::drop_drq() { if(drq) { drq = false; @@ -2130,23 +2136,23 @@ void wd_fdc_t::drop_drq() } } -int wd_fdc_t::calc_sector_size(uint8_t size, uint8_t command) const +int wd_fdc_device_base::calc_sector_size(uint8_t size, uint8_t command) const { return 128 << (size & 3); } -int wd_fdc_t::settle_time() const +int wd_fdc_device_base::settle_time() const { return 60000; } -wd_fdc_analog_t::wd_fdc_analog_t(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - wd_fdc_t(mconfig, type, name, tag, owner, clock, shortname, source) +wd_fdc_analog_device_base::wd_fdc_analog_device_base(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + wd_fdc_device_base(mconfig, type, tag, owner, clock) { clock_ratio = 1; } -void wd_fdc_analog_t::pll_reset(bool fm, bool enmf, const attotime &when) +void wd_fdc_analog_device_base::pll_reset(bool fm, bool enmf, const attotime &when) { int clocks = 2; @@ -2157,50 +2163,50 @@ void wd_fdc_analog_t::pll_reset(bool fm, bool enmf, const attotime &when) cur_pll.set_clock(clocks_to_attotime(clocks)); } -void wd_fdc_analog_t::pll_start_writing(const attotime &tm) +void wd_fdc_analog_device_base::pll_start_writing(const attotime &tm) { cur_pll.start_writing(tm); } -void wd_fdc_analog_t::pll_commit(floppy_image_device *floppy, const attotime &tm) +void wd_fdc_analog_device_base::pll_commit(floppy_image_device *floppy, const attotime &tm) { cur_pll.commit(floppy, tm); } -void wd_fdc_analog_t::pll_stop_writing(floppy_image_device *floppy, const attotime &tm) +void wd_fdc_analog_device_base::pll_stop_writing(floppy_image_device *floppy, const attotime &tm) { cur_pll.stop_writing(floppy, tm); } -void wd_fdc_analog_t::pll_save_checkpoint() +void wd_fdc_analog_device_base::pll_save_checkpoint() { checkpoint_pll = cur_pll; } -void wd_fdc_analog_t::pll_retrieve_checkpoint() +void wd_fdc_analog_device_base::pll_retrieve_checkpoint() { cur_pll = checkpoint_pll; } -int wd_fdc_analog_t::pll_get_next_bit(attotime &tm, floppy_image_device *floppy, const attotime &limit) +int wd_fdc_analog_device_base::pll_get_next_bit(attotime &tm, floppy_image_device *floppy, const attotime &limit) { return cur_pll.get_next_bit(tm, floppy, limit); } -bool wd_fdc_analog_t::pll_write_next_bit(bool bit, attotime &tm, floppy_image_device *floppy, const attotime &limit) +bool wd_fdc_analog_device_base::pll_write_next_bit(bool bit, attotime &tm, floppy_image_device *floppy, const attotime &limit) { return cur_pll.write_next_bit(bit, tm, floppy, limit); } -wd_fdc_digital_t::wd_fdc_digital_t(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - wd_fdc_t(mconfig, type, name, tag, owner, clock, shortname, source) +wd_fdc_digital_device_base::wd_fdc_digital_device_base(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + wd_fdc_device_base(mconfig, type, tag, owner, clock) { clock_ratio = 4; } -const int wd_fdc_digital_t::wd_digital_step_times[4] = { 12000, 24000, 40000, 60000 }; +constexpr int wd_fdc_digital_device_base::wd_digital_step_times[4]; -void wd_fdc_digital_t::pll_reset(bool fm, bool enmf, const attotime &when) +void wd_fdc_digital_device_base::pll_reset(bool fm, bool enmf, const attotime &when) { int clocks = 1; @@ -2211,48 +2217,48 @@ void wd_fdc_digital_t::pll_reset(bool fm, bool enmf, const attotime &when) cur_pll.set_clock(clocks_to_attotime(clocks)); } -void wd_fdc_digital_t::pll_start_writing(const attotime &tm) +void wd_fdc_digital_device_base::pll_start_writing(const attotime &tm) { cur_pll.start_writing(tm); } -void wd_fdc_digital_t::pll_commit(floppy_image_device *floppy, const attotime &tm) +void wd_fdc_digital_device_base::pll_commit(floppy_image_device *floppy, const attotime &tm) { cur_pll.commit(floppy, tm); } -void wd_fdc_digital_t::pll_stop_writing(floppy_image_device *floppy, const attotime &tm) +void wd_fdc_digital_device_base::pll_stop_writing(floppy_image_device *floppy, const attotime &tm) { cur_pll.stop_writing(floppy, tm); } -int wd_fdc_digital_t::pll_get_next_bit(attotime &tm, floppy_image_device *floppy, const attotime &limit) +int wd_fdc_digital_device_base::pll_get_next_bit(attotime &tm, floppy_image_device *floppy, const attotime &limit) { return cur_pll.get_next_bit(tm, floppy, limit); } -bool wd_fdc_digital_t::pll_write_next_bit(bool bit, attotime &tm, floppy_image_device *floppy, const attotime &limit) +bool wd_fdc_digital_device_base::pll_write_next_bit(bool bit, attotime &tm, floppy_image_device *floppy, const attotime &limit) { return cur_pll.write_next_bit(bit, tm, floppy, limit); } -void wd_fdc_digital_t::pll_save_checkpoint() +void wd_fdc_digital_device_base::pll_save_checkpoint() { checkpoint_pll = cur_pll; } -void wd_fdc_digital_t::pll_retrieve_checkpoint() +void wd_fdc_digital_device_base::pll_retrieve_checkpoint() { cur_pll = checkpoint_pll; } -void wd_fdc_digital_t::digital_pll_t::set_clock(const attotime &period) +void wd_fdc_digital_device_base::digital_pll_t::set_clock(const attotime &period) { for(int i=0; i<42; i++) delays[i] = period*(i+1); } -void wd_fdc_digital_t::digital_pll_t::reset(const attotime &when) +void wd_fdc_digital_device_base::digital_pll_t::reset(const attotime &when) { counter = 0; increment = 128; @@ -2268,7 +2274,7 @@ void wd_fdc_digital_t::digital_pll_t::reset(const attotime &when) write_start_time = attotime::never; } -int wd_fdc_digital_t::digital_pll_t::get_next_bit(attotime &tm, floppy_image_device *floppy, const attotime &limit) +int wd_fdc_digital_device_base::digital_pll_t::get_next_bit(attotime &tm, floppy_image_device *floppy, const attotime &limit) { attotime when = floppy ? floppy->get_next_transition(ctime) : attotime::never; @@ -2348,19 +2354,19 @@ int wd_fdc_digital_t::digital_pll_t::get_next_bit(attotime &tm, floppy_image_dev return bit; } -void wd_fdc_digital_t::digital_pll_t::start_writing(const attotime &tm) +void wd_fdc_digital_device_base::digital_pll_t::start_writing(const attotime &tm) { write_start_time = tm; write_position = 0; } -void wd_fdc_digital_t::digital_pll_t::stop_writing(floppy_image_device *floppy, const attotime &tm) +void wd_fdc_digital_device_base::digital_pll_t::stop_writing(floppy_image_device *floppy, const attotime &tm) { commit(floppy, tm); write_start_time = attotime::never; } -bool wd_fdc_digital_t::digital_pll_t::write_next_bit(bool bit, attotime &tm, floppy_image_device *floppy, const attotime &limit) +bool wd_fdc_digital_device_base::digital_pll_t::write_next_bit(bool bit, attotime &tm, floppy_image_device *floppy, const attotime &limit) { if(write_start_time.is_never()) { write_start_time = ctime; @@ -2390,7 +2396,7 @@ bool wd_fdc_digital_t::digital_pll_t::write_next_bit(bool bit, attotime &tm, flo return false; } -void wd_fdc_digital_t::digital_pll_t::commit(floppy_image_device *floppy, const attotime &tm) +void wd_fdc_digital_device_base::digital_pll_t::commit(floppy_image_device *floppy, const attotime &tm) { if(write_start_time.is_never() || tm == write_start_time) return; @@ -2401,9 +2407,9 @@ void wd_fdc_digital_t::digital_pll_t::commit(floppy_image_device *floppy, const write_position = 0; } -fd1771_t::fd1771_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : wd_fdc_analog_t(mconfig, FD1771, "FD1771", tag, owner, clock, "fd1771", __FILE__) +fd1771_device::fd1771_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : wd_fdc_analog_device_base(mconfig, FD1771, tag, owner, clock) { - const static int fd1771_step_times[4] = { 12000, 12000, 20000, 40000 }; + constexpr static int fd1771_step_times[4] = { 12000, 12000, 20000, 40000 }; step_times = fd1771_step_times; delay_register_commit = 16; @@ -2418,7 +2424,7 @@ fd1771_t::fd1771_t(const machine_config &mconfig, const char *tag, device_t *own nonsticky_immint = false; } -int fd1771_t::calc_sector_size(uint8_t size, uint8_t command) const +int fd1771_device::calc_sector_size(uint8_t size, uint8_t command) const { if(command & 0x08) return 128 << (size & 3); @@ -2426,9 +2432,9 @@ int fd1771_t::calc_sector_size(uint8_t size, uint8_t command) const return size ? size << 4 : 4096; } -fd1781_t::fd1781_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : wd_fdc_analog_t(mconfig, FD1781, "FD1781", tag, owner, clock, "fd1781", __FILE__) +fd1781_device::fd1781_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : wd_fdc_analog_device_base(mconfig, FD1781, tag, owner, clock) { - const static int fd1781_step_times[4] = { 6000, 12000, 20000, 40000 }; + constexpr static int fd1781_step_times[4] = { 6000, 12000, 20000, 40000 }; step_times = fd1781_step_times; delay_register_commit = 16; @@ -2443,7 +2449,7 @@ fd1781_t::fd1781_t(const machine_config &mconfig, const char *tag, device_t *own nonsticky_immint = false; } -int fd1781_t::calc_sector_size(uint8_t size, uint8_t command) const +int fd1781_device::calc_sector_size(uint8_t size, uint8_t command) const { if(command & 0x08) return 128 << (size & 3); @@ -2451,10 +2457,10 @@ int fd1781_t::calc_sector_size(uint8_t size, uint8_t command) const return size ? size << 4 : 4096; } -const int wd_fdc_t::fd179x_step_times[4] = { 6000, 12000, 20000, 30000 }; -const int wd_fdc_t::fd176x_step_times[4] = { 12000, 24000, 40000, 60000 }; +constexpr int wd_fdc_device_base::fd179x_step_times[4]; +constexpr int wd_fdc_device_base::fd176x_step_times[4]; -fd1791_t::fd1791_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : wd_fdc_analog_t(mconfig, FD1791, "FD1791", tag, owner, clock, "fd1791", __FILE__) +fd1791_device::fd1791_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : wd_fdc_analog_device_base(mconfig, FD1791, tag, owner, clock) { step_times = fd179x_step_times; delay_register_commit = 4; @@ -2470,7 +2476,7 @@ fd1791_t::fd1791_t(const machine_config &mconfig, const char *tag, device_t *own nonsticky_immint = false; } -fd1792_t::fd1792_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : wd_fdc_analog_t(mconfig, FD1792, "FD1792", tag, owner, clock, "fd1792", __FILE__) +fd1792_device::fd1792_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : wd_fdc_analog_device_base(mconfig, FD1792, tag, owner, clock) { step_times = fd179x_step_times; delay_register_commit = 4; @@ -2486,7 +2492,7 @@ fd1792_t::fd1792_t(const machine_config &mconfig, const char *tag, device_t *own nonsticky_immint = false; } -fd1793_t::fd1793_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : wd_fdc_analog_t(mconfig, FD1793, "FD1793", tag, owner, clock, "fd1793", __FILE__) +fd1793_device::fd1793_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : wd_fdc_analog_device_base(mconfig, FD1793, tag, owner, clock) { step_times = fd179x_step_times; delay_register_commit = 4; @@ -2502,7 +2508,7 @@ fd1793_t::fd1793_t(const machine_config &mconfig, const char *tag, device_t *own nonsticky_immint = false; } -kr1818vg93_t::kr1818vg93_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : wd_fdc_analog_t(mconfig, KR1818VG93, "KR1818VG93", tag, owner, clock, "kr1818vg93", __FILE__) +kr1818vg93_device::kr1818vg93_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : wd_fdc_analog_device_base(mconfig, KR1818VG93, tag, owner, clock) { step_times = fd179x_step_times; delay_register_commit = 4; @@ -2518,7 +2524,7 @@ kr1818vg93_t::kr1818vg93_t(const machine_config &mconfig, const char *tag, devic nonsticky_immint = true; } -fd1794_t::fd1794_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : wd_fdc_analog_t(mconfig, FD1794, "FD1794", tag, owner, clock, "fd1794", __FILE__) +fd1794_device::fd1794_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : wd_fdc_analog_device_base(mconfig, FD1794, tag, owner, clock) { step_times = fd179x_step_times; delay_register_commit = 4; @@ -2534,7 +2540,7 @@ fd1794_t::fd1794_t(const machine_config &mconfig, const char *tag, device_t *own nonsticky_immint = false; } -fd1795_t::fd1795_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : wd_fdc_analog_t(mconfig, FD1795, "FD1795", tag, owner, clock, "fd1795", __FILE__) +fd1795_device::fd1795_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : wd_fdc_analog_device_base(mconfig, FD1795, tag, owner, clock) { step_times = fd179x_step_times; delay_register_commit = 4; @@ -2550,7 +2556,7 @@ fd1795_t::fd1795_t(const machine_config &mconfig, const char *tag, device_t *own nonsticky_immint = false; } -int fd1795_t::calc_sector_size(uint8_t size, uint8_t command) const +int fd1795_device::calc_sector_size(uint8_t size, uint8_t command) const { if(command & 0x08) return 128 << (size & 3); @@ -2558,7 +2564,7 @@ int fd1795_t::calc_sector_size(uint8_t size, uint8_t command) const return 128 << ((size + 1) & 3); } -fd1797_t::fd1797_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : wd_fdc_analog_t(mconfig, FD1797, "FD1797", tag, owner, clock, "fd1797", __FILE__) +fd1797_device::fd1797_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : wd_fdc_analog_device_base(mconfig, FD1797, tag, owner, clock) { step_times = fd179x_step_times; delay_register_commit = 4; @@ -2574,7 +2580,7 @@ fd1797_t::fd1797_t(const machine_config &mconfig, const char *tag, device_t *own nonsticky_immint = false; } -int fd1797_t::calc_sector_size(uint8_t size, uint8_t command) const +int fd1797_device::calc_sector_size(uint8_t size, uint8_t command) const { if(command & 0x08) return 128 << (size & 3); @@ -2582,7 +2588,7 @@ int fd1797_t::calc_sector_size(uint8_t size, uint8_t command) const return 128 << ((size + 1) & 3); } -mb8866_t::mb8866_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : wd_fdc_analog_t(mconfig, MB8866, "MB8866", tag, owner, clock, "mb8866", __FILE__) +mb8866_device::mb8866_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : wd_fdc_analog_device_base(mconfig, MB8866, tag, owner, clock) { step_times = fd179x_step_times; delay_register_commit = 4; @@ -2598,7 +2604,7 @@ mb8866_t::mb8866_t(const machine_config &mconfig, const char *tag, device_t *own nonsticky_immint = false; } -mb8876_t::mb8876_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : wd_fdc_analog_t(mconfig, MB8876, "MB8876", tag, owner, clock, "mb8876", __FILE__) +mb8876_device::mb8876_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : wd_fdc_analog_device_base(mconfig, MB8876, tag, owner, clock) { step_times = fd179x_step_times; delay_register_commit = 4; @@ -2614,7 +2620,7 @@ mb8876_t::mb8876_t(const machine_config &mconfig, const char *tag, device_t *own nonsticky_immint = false; } -mb8877_t::mb8877_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : wd_fdc_analog_t(mconfig, MB8877, "MB8877", tag, owner, clock, "mb8877", __FILE__) +mb8877_device::mb8877_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : wd_fdc_analog_device_base(mconfig, MB8877, tag, owner, clock) { step_times = fd179x_step_times; delay_register_commit = 4; @@ -2630,7 +2636,7 @@ mb8877_t::mb8877_t(const machine_config &mconfig, const char *tag, device_t *own nonsticky_immint = false; } -fd1761_t::fd1761_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : wd_fdc_analog_t(mconfig, FD1761, "FD1761", tag, owner, clock, "fd1761", __FILE__) +fd1761_device::fd1761_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : wd_fdc_analog_device_base(mconfig, FD1761, tag, owner, clock) { step_times = fd176x_step_times; delay_register_commit = 16; @@ -2646,7 +2652,7 @@ fd1761_t::fd1761_t(const machine_config &mconfig, const char *tag, device_t *own nonsticky_immint = false; } -fd1763_t::fd1763_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : wd_fdc_analog_t(mconfig, FD1763, "FD1763", tag, owner, clock, "fd1763", __FILE__) +fd1763_device::fd1763_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : wd_fdc_analog_device_base(mconfig, FD1763, tag, owner, clock) { step_times = fd176x_step_times; delay_register_commit = 16; @@ -2662,7 +2668,7 @@ fd1763_t::fd1763_t(const machine_config &mconfig, const char *tag, device_t *own nonsticky_immint = false; } -fd1765_t::fd1765_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : wd_fdc_analog_t(mconfig, FD1765, "FD1765", tag, owner, clock, "fd1765", __FILE__) +fd1765_device::fd1765_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : wd_fdc_analog_device_base(mconfig, FD1765, tag, owner, clock) { step_times = fd176x_step_times; delay_register_commit = 16; @@ -2678,7 +2684,7 @@ fd1765_t::fd1765_t(const machine_config &mconfig, const char *tag, device_t *own nonsticky_immint = false; } -int fd1765_t::calc_sector_size(uint8_t size, uint8_t command) const +int fd1765_device::calc_sector_size(uint8_t size, uint8_t command) const { if(command & 0x08) return 128 << (size & 3); @@ -2686,7 +2692,7 @@ int fd1765_t::calc_sector_size(uint8_t size, uint8_t command) const return 128 << ((size + 1) & 3); } -fd1767_t::fd1767_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : wd_fdc_analog_t(mconfig, FD1767, "FD1767", tag, owner, clock, "fd1767", __FILE__) +fd1767_device::fd1767_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : wd_fdc_analog_device_base(mconfig, FD1767, tag, owner, clock) { step_times = fd179x_step_times; delay_register_commit = 16; @@ -2702,7 +2708,7 @@ fd1767_t::fd1767_t(const machine_config &mconfig, const char *tag, device_t *own nonsticky_immint = false; } -int fd1767_t::calc_sector_size(uint8_t size, uint8_t command) const +int fd1767_device::calc_sector_size(uint8_t size, uint8_t command) const { if(command & 0x08) return 128 << (size & 3); @@ -2710,7 +2716,7 @@ int fd1767_t::calc_sector_size(uint8_t size, uint8_t command) const return 128 << ((size + 1) & 3); } -wd2791_t::wd2791_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : wd_fdc_analog_t(mconfig, WD2791, "WD2791", tag, owner, clock, "wd2791", __FILE__) +wd2791_device::wd2791_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : wd_fdc_analog_device_base(mconfig, WD2791, tag, owner, clock) { step_times = fd179x_step_times; delay_register_commit = 16; @@ -2726,7 +2732,7 @@ wd2791_t::wd2791_t(const machine_config &mconfig, const char *tag, device_t *own nonsticky_immint = false; } -wd2793_t::wd2793_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : wd_fdc_analog_t(mconfig, WD2793, "WD2793", tag, owner, clock, "wd2793", __FILE__) +wd2793_device::wd2793_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : wd_fdc_analog_device_base(mconfig, WD2793, tag, owner, clock) { step_times = fd179x_step_times; delay_register_commit = 16; @@ -2742,7 +2748,7 @@ wd2793_t::wd2793_t(const machine_config &mconfig, const char *tag, device_t *own nonsticky_immint = false; } -wd2795_t::wd2795_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : wd_fdc_analog_t(mconfig, WD2795, "WD2795", tag, owner, clock, "wd2795", __FILE__) +wd2795_device::wd2795_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : wd_fdc_analog_device_base(mconfig, WD2795, tag, owner, clock) { step_times = fd179x_step_times; delay_register_commit = 16; @@ -2758,7 +2764,7 @@ wd2795_t::wd2795_t(const machine_config &mconfig, const char *tag, device_t *own nonsticky_immint = false; } -int wd2795_t::calc_sector_size(uint8_t size, uint8_t command) const +int wd2795_device::calc_sector_size(uint8_t size, uint8_t command) const { if(command & 0x08) return 128 << (size & 3); @@ -2766,7 +2772,7 @@ int wd2795_t::calc_sector_size(uint8_t size, uint8_t command) const return 128 << ((size + 1) & 3); } -wd2797_t::wd2797_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : wd_fdc_analog_t(mconfig, WD2797, "WD2797", tag, owner, clock, "wd2797", __FILE__) +wd2797_device::wd2797_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : wd_fdc_analog_device_base(mconfig, WD2797, tag, owner, clock) { step_times = fd179x_step_times; delay_register_commit = 16; @@ -2782,7 +2788,7 @@ wd2797_t::wd2797_t(const machine_config &mconfig, const char *tag, device_t *own nonsticky_immint = false; } -int wd2797_t::calc_sector_size(uint8_t size, uint8_t command) const +int wd2797_device::calc_sector_size(uint8_t size, uint8_t command) const { if(command & 0x08) return 128 << (size & 3); @@ -2790,7 +2796,7 @@ int wd2797_t::calc_sector_size(uint8_t size, uint8_t command) const return 128 << ((size + 1) & 3); } -wd1770_t::wd1770_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : wd_fdc_digital_t(mconfig, WD1770, "WD1770", tag, owner, clock, "wd1770", __FILE__) +wd1770_device::wd1770_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : wd_fdc_digital_device_base(mconfig, WD1770, tag, owner, clock) { step_times = wd_digital_step_times; delay_register_commit = 32; @@ -2806,7 +2812,7 @@ wd1770_t::wd1770_t(const machine_config &mconfig, const char *tag, device_t *own nonsticky_immint = false; } -wd1772_t::wd1772_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : wd_fdc_digital_t(mconfig, WD1772, "WD1772", tag, owner, clock, "wd1772", __FILE__) +wd1772_device::wd1772_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : wd_fdc_digital_device_base(mconfig, WD1772, tag, owner, clock) { const static int wd1772_step_times[4] = { 12000, 24000, 4000, 6000 }; @@ -2824,12 +2830,12 @@ wd1772_t::wd1772_t(const machine_config &mconfig, const char *tag, device_t *own nonsticky_immint = false; } -int wd1772_t::settle_time() const +int wd1772_device::settle_time() const { return 30000; } -wd1773_t::wd1773_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : wd_fdc_digital_t(mconfig, WD1773, "WD1773", tag, owner, clock, "wd1773", __FILE__) +wd1773_device::wd1773_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : wd_fdc_digital_device_base(mconfig, WD1773, tag, owner, clock) { step_times = wd_digital_step_times; delay_register_commit = 32; diff --git a/src/devices/machine/wd_fdc.h b/src/devices/machine/wd_fdc.h index beafbce6622..e3811b003f1 100644 --- a/src/devices/machine/wd_fdc.h +++ b/src/devices/machine/wd_fdc.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Olivier Galibert -#ifndef WD_FDC_H -#define WD_FDC_H +#ifndef MAME_MACHINE_WD_FDC_H +#define MAME_MACHINE_WD_FDC_H + +#pragma once #include "imagedev/floppy.h" #include "fdc_pll.h" @@ -113,35 +115,33 @@ MCFG_DEVICE_ADD(_tag, WD1773, _clock) #define MCFG_WD_FDC_FORCE_READY \ - downcast(device)->set_force_ready(true); + downcast(device)->set_force_ready(true); #define MCFG_WD_FDC_DISABLE_MOTOR_CONTROL \ - downcast(device)->set_disable_motor_control(true); + downcast(device)->set_disable_motor_control(true); #define MCFG_WD_FDC_INTRQ_CALLBACK(_write) \ - devcb = &wd_fdc_t::set_intrq_wr_callback(*device, DEVCB_##_write); + devcb = &wd_fdc_device_base::set_intrq_wr_callback(*device, DEVCB_##_write); #define MCFG_WD_FDC_DRQ_CALLBACK(_write) \ - devcb = &wd_fdc_t::set_drq_wr_callback(*device, DEVCB_##_write); + devcb = &wd_fdc_device_base::set_drq_wr_callback(*device, DEVCB_##_write); #define MCFG_WD_FDC_HLD_CALLBACK(_write) \ - devcb = &wd_fdc_t::set_hld_wr_callback(*device, DEVCB_##_write); + devcb = &wd_fdc_device_base::set_hld_wr_callback(*device, DEVCB_##_write); #define MCFG_WD_FDC_ENP_CALLBACK(_write) \ - devcb = &wd_fdc_t::set_enp_wr_callback(*device, DEVCB_##_write); + devcb = &wd_fdc_device_base::set_enp_wr_callback(*device, DEVCB_##_write); #define MCFG_WD_FDC_ENMF_CALLBACK(_read) \ - devcb = &wd_fdc_t::set_enmf_rd_callback(*device, DEVCB_##_read); + devcb = &wd_fdc_device_base::set_enmf_rd_callback(*device, DEVCB_##_read); -class wd_fdc_t : public device_t { +class wd_fdc_device_base : public device_t { public: - wd_fdc_t(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - - template static devcb_base &set_intrq_wr_callback(device_t &device, _Object object) { return downcast(device).intrq_cb.set_callback(object); } - template static devcb_base &set_drq_wr_callback(device_t &device, _Object object) { return downcast(device).drq_cb.set_callback(object); } - template static devcb_base &set_hld_wr_callback(device_t &device, _Object object) { return downcast(device).hld_cb.set_callback(object); } - template static devcb_base &set_enp_wr_callback(device_t &device, _Object object) { return downcast(device).enp_cb.set_callback(object); } - template static devcb_base &set_enmf_rd_callback(device_t &device, _Object object) { return downcast(device).enmf_cb.set_callback(object); } + template static devcb_base &set_intrq_wr_callback(device_t &device, Object &&cb) { return downcast(device).intrq_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_drq_wr_callback(device_t &device, Object &&cb) { return downcast(device).drq_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_hld_wr_callback(device_t &device, Object &&cb) { return downcast(device).hld_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_enp_wr_callback(device_t &device, Object &&cb) { return downcast(device).enp_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_enmf_rd_callback(device_t &device, Object &&cb) { return downcast(device).enmf_cb.set_callback(std::forward(cb)); } void soft_reset(); @@ -172,7 +172,7 @@ public: void gen_w(int reg, uint8_t val); uint8_t gen_r(int reg); - DECLARE_READ8_MEMBER( read ) { return gen_r(offset);} + DECLARE_READ8_MEMBER( read ) { return gen_r(offset); } DECLARE_WRITE8_MEMBER( write ) { gen_w(offset,data); } bool intrq_r(); @@ -186,6 +186,8 @@ public: void index_callback(floppy_image_device *floppy, int state); protected: + wd_fdc_device_base(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // Chip-specific configuration flags bool disable_mfm; bool enmf; @@ -202,8 +204,8 @@ protected: int delay_register_commit; int delay_command_commit; - static const int fd179x_step_times[4]; - static const int fd176x_step_times[4]; + static constexpr int fd179x_step_times[4] = { 6000, 12000, 20000, 30000 }; + static constexpr int fd176x_step_times[4] = { 12000, 24000, 40000, 60000 }; virtual void device_start() override; virtual void device_reset() override; @@ -449,11 +451,10 @@ private: void set_drq(); }; -class wd_fdc_analog_t : public wd_fdc_t { -public: - wd_fdc_analog_t(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - +class wd_fdc_analog_device_base : public wd_fdc_device_base { protected: + wd_fdc_analog_device_base(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void pll_reset(bool fm, bool enmf, const attotime &when) override; virtual void pll_start_writing(const attotime &tm) override; virtual void pll_commit(floppy_image_device *floppy, const attotime &tm) override; @@ -467,12 +468,11 @@ private: fdc_pll_t cur_pll, checkpoint_pll; }; -class wd_fdc_digital_t : public wd_fdc_t { -public: - wd_fdc_digital_t(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - +class wd_fdc_digital_device_base : public wd_fdc_device_base { protected: - static const int wd_digital_step_times[4]; + wd_fdc_digital_device_base(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + static constexpr int wd_digital_step_times[4] = { 12000, 24000, 40000, 60000 }; virtual void pll_reset(bool fm, bool enmf, const attotime &when) override; virtual void pll_start_writing(const attotime &tm) override; @@ -511,178 +511,178 @@ private: digital_pll_t cur_pll, checkpoint_pll; }; -class fd1771_t : public wd_fdc_analog_t { +class fd1771_device : public wd_fdc_analog_device_base { public: - fd1771_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + fd1771_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); protected: virtual int calc_sector_size(uint8_t size, uint8_t command) const override; }; -class fd1781_t : public wd_fdc_analog_t { +class fd1781_device : public wd_fdc_analog_device_base { public: - fd1781_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + fd1781_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); protected: virtual int calc_sector_size(uint8_t size, uint8_t command) const override; }; -class fd1791_t : public wd_fdc_analog_t { +class fd1791_device : public wd_fdc_analog_device_base { public: - fd1791_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + fd1791_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; -class fd1792_t : public wd_fdc_analog_t { +class fd1792_device : public wd_fdc_analog_device_base { public: - fd1792_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + fd1792_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; -class fd1793_t : public wd_fdc_analog_t { +class fd1793_device : public wd_fdc_analog_device_base { public: - fd1793_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + fd1793_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; -class kr1818vg93_t : public wd_fdc_analog_t { +class kr1818vg93_device : public wd_fdc_analog_device_base { public: - kr1818vg93_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + kr1818vg93_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; -class fd1794_t : public wd_fdc_analog_t { +class fd1794_device : public wd_fdc_analog_device_base { public: - fd1794_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + fd1794_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; -class fd1795_t : public wd_fdc_analog_t { +class fd1795_device : public wd_fdc_analog_device_base { public: - fd1795_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + fd1795_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); protected: virtual int calc_sector_size(uint8_t size, uint8_t command) const override; }; -class fd1797_t : public wd_fdc_analog_t { +class fd1797_device : public wd_fdc_analog_device_base { public: - fd1797_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + fd1797_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); protected: virtual int calc_sector_size(uint8_t size, uint8_t command) const override; }; -class mb8866_t : public wd_fdc_analog_t { +class mb8866_device : public wd_fdc_analog_device_base { public: - mb8866_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + mb8866_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; -class mb8876_t : public wd_fdc_analog_t { +class mb8876_device : public wd_fdc_analog_device_base { public: - mb8876_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + mb8876_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; -class mb8877_t : public wd_fdc_analog_t { +class mb8877_device : public wd_fdc_analog_device_base { public: - mb8877_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + mb8877_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; -class fd1761_t : public wd_fdc_analog_t { +class fd1761_device : public wd_fdc_analog_device_base { public: - fd1761_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + fd1761_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; -class fd1763_t : public wd_fdc_analog_t { +class fd1763_device : public wd_fdc_analog_device_base { public: - fd1763_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + fd1763_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; -class fd1765_t : public wd_fdc_analog_t { +class fd1765_device : public wd_fdc_analog_device_base { public: - fd1765_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + fd1765_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); protected: virtual int calc_sector_size(uint8_t size, uint8_t command) const override; }; -class fd1767_t : public wd_fdc_analog_t { +class fd1767_device : public wd_fdc_analog_device_base { public: - fd1767_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + fd1767_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); protected: virtual int calc_sector_size(uint8_t size, uint8_t command) const override; }; -class wd2791_t : public wd_fdc_analog_t { +class wd2791_device : public wd_fdc_analog_device_base { public: - wd2791_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + wd2791_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); DECLARE_WRITE_LINE_MEMBER(enmf_w) { enmf = state ? false : true; } }; -class wd2793_t : public wd_fdc_analog_t { +class wd2793_device : public wd_fdc_analog_device_base { public: - wd2793_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + wd2793_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); DECLARE_WRITE_LINE_MEMBER(enmf_w) { enmf = state ? false : true; } }; -class wd2795_t : public wd_fdc_analog_t { +class wd2795_device : public wd_fdc_analog_device_base { public: - wd2795_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + wd2795_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); protected: virtual int calc_sector_size(uint8_t size, uint8_t command) const override; }; -class wd2797_t : public wd_fdc_analog_t { +class wd2797_device : public wd_fdc_analog_device_base { public: - wd2797_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + wd2797_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); protected: virtual int calc_sector_size(uint8_t size, uint8_t command) const override; }; -class wd1770_t : public wd_fdc_digital_t { +class wd1770_device : public wd_fdc_digital_device_base { public: - wd1770_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + wd1770_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; -class wd1772_t : public wd_fdc_digital_t { +class wd1772_device : public wd_fdc_digital_device_base { public: - wd1772_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + wd1772_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); protected: virtual int settle_time() const override; }; -class wd1773_t : public wd_fdc_digital_t { +class wd1773_device : public wd_fdc_digital_device_base { public: - wd1773_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + wd1773_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; -extern const device_type FD1771; +DECLARE_DEVICE_TYPE(FD1771, fd1771_device) -extern const device_type FD1781; +DECLARE_DEVICE_TYPE(FD1781, fd1781_device) -extern const device_type FD1791; -extern const device_type FD1792; -extern const device_type FD1793; -extern const device_type FD1794; -extern const device_type KR1818VG93; -extern const device_type FD1795; -extern const device_type FD1797; +DECLARE_DEVICE_TYPE(FD1791, fd1791_device) +DECLARE_DEVICE_TYPE(FD1792, fd1792_device) +DECLARE_DEVICE_TYPE(FD1793, fd1793_device) +DECLARE_DEVICE_TYPE(KR1818VG93, kr1818vg93_device) +DECLARE_DEVICE_TYPE(FD1794, fd1794_device) +DECLARE_DEVICE_TYPE(FD1795, fd1795_device) +DECLARE_DEVICE_TYPE(FD1797, fd1797_device) -extern const device_type MB8866; -extern const device_type MB8876; -extern const device_type MB8877; +DECLARE_DEVICE_TYPE(MB8866, mb8866_device) +DECLARE_DEVICE_TYPE(MB8876, mb8876_device) +DECLARE_DEVICE_TYPE(MB8877, mb8877_device) -extern const device_type FD1761; -extern const device_type FD1763; -extern const device_type FD1765; -extern const device_type FD1767; +DECLARE_DEVICE_TYPE(FD1761, fd1761_device) +DECLARE_DEVICE_TYPE(FD1763, fd1763_device) +DECLARE_DEVICE_TYPE(FD1765, fd1765_device) +DECLARE_DEVICE_TYPE(FD1767, fd1767_device) -extern const device_type WD2791; -extern const device_type WD2793; -extern const device_type WD2795; -extern const device_type WD2797; +DECLARE_DEVICE_TYPE(WD2791, wd2791_device) +DECLARE_DEVICE_TYPE(WD2793, wd2793_device) +DECLARE_DEVICE_TYPE(WD2795, wd2795_device) +DECLARE_DEVICE_TYPE(WD2797, wd2797_device) -extern const device_type WD1770; -extern const device_type WD1772; -extern const device_type WD1773; +DECLARE_DEVICE_TYPE(WD1770, wd1770_device) +DECLARE_DEVICE_TYPE(WD1772, wd1772_device) +DECLARE_DEVICE_TYPE(WD1773, wd1773_device) -#endif +#endif // MAME_MACHINE_WD_FDC_H diff --git a/src/devices/machine/wozfdc.cpp b/src/devices/machine/wozfdc.cpp index 522a04c3496..1350ce4b126 100644 --- a/src/devices/machine/wozfdc.cpp +++ b/src/devices/machine/wozfdc.cpp @@ -9,9 +9,10 @@ *********************************************************************/ #include "emu.h" +#include "wozfdc.h" + #include "imagedev/floppy.h" #include "formats/ap2_dsk.h" -#include "wozfdc.h" /*************************************************************************** PARAMETERS @@ -21,8 +22,8 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type DISKII_FDC = device_creator; -const device_type APPLEIII_FDC = device_creator; +DEFINE_DEVICE_TYPE(DISKII_FDC, diskii_fdc_device, "d2fdc", "Apple Disk II floppy controller") +DEFINE_DEVICE_TYPE(APPLEIII_FDC, appleiii_fdc_device, "a3fdc", "Apple III floppy controller") #define DISKII_P6_REGION "diskii_rom_p6" @@ -44,18 +45,18 @@ const tiny_rom_entry *wozfdc_device::device_rom_region() const // LIVE DEVICE //************************************************************************** -wozfdc_device::wozfdc_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source) +wozfdc_device::wozfdc_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock) { } -diskii_fdc::diskii_fdc(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - wozfdc_device(mconfig, DISKII_FDC, "Apple Disk II floppy controller", tag, owner, clock, "d2fdc", __FILE__) +diskii_fdc_device::diskii_fdc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + wozfdc_device(mconfig, DISKII_FDC, tag, owner, clock) { } -appleiii_fdc::appleiii_fdc(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - wozfdc_device(mconfig, APPLEIII_FDC, "Apple III floppy controller", tag, owner, clock, "a3fdc", __FILE__) +appleiii_fdc_device::appleiii_fdc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + wozfdc_device(mconfig, APPLEIII_FDC, tag, owner, clock) { } @@ -149,7 +150,7 @@ void wozfdc_device::a3_update_drive_sel() } } -void diskii_fdc::device_reset() +void diskii_fdc_device::device_reset() { wozfdc_device::device_reset(); external_drive_select = false; @@ -160,7 +161,7 @@ void diskii_fdc::device_reset() } } -void appleiii_fdc::device_reset() +void appleiii_fdc_device::device_reset() { wozfdc_device::device_reset(); external_drive_select = true; @@ -420,7 +421,7 @@ void wozfdc_device::lss_sync() } // set the two images for the Disk II -void diskii_fdc::set_floppies(floppy_connector *f0, floppy_connector *f1) +void diskii_fdc_device::set_floppies(floppy_connector *f0, floppy_connector *f1) { floppy0 = f0; floppy1 = f1; @@ -431,7 +432,7 @@ void diskii_fdc::set_floppies(floppy_connector *f0, floppy_connector *f1) } } -void appleiii_fdc::set_floppies_4(floppy_connector *f0, floppy_connector *f1, floppy_connector *f2, floppy_connector *f3) +void appleiii_fdc_device::set_floppies_4(floppy_connector *f0, floppy_connector *f1, floppy_connector *f2, floppy_connector *f3) { floppy0 = f0; floppy1 = f1; @@ -444,19 +445,19 @@ void appleiii_fdc::set_floppies_4(floppy_connector *f0, floppy_connector *f1, fl } } -READ8_MEMBER(appleiii_fdc::read_c0dx) +READ8_MEMBER(appleiii_fdc_device::read_c0dx) { control_dx(offset); return 0xff; } -WRITE8_MEMBER(appleiii_fdc::write_c0dx) +WRITE8_MEMBER(appleiii_fdc_device::write_c0dx) { control_dx(offset); } -void appleiii_fdc::control_dx(int offset) +void appleiii_fdc_device::control_dx(int offset) { switch (offset) { diff --git a/src/devices/machine/wozfdc.h b/src/devices/machine/wozfdc.h index 639cccb8ba7..beb076ee11c 100644 --- a/src/devices/machine/wozfdc.h +++ b/src/devices/machine/wozfdc.h @@ -8,10 +8,10 @@ *********************************************************************/ -#pragma once +#ifndef MAME_MACHINE_WOZFDC_H +#define MAME_MACHINE_WOZFDC_H -#ifndef __WOZFDC_H__ -#define __WOZFDC_H__ +#pragma once #include "imagedev/floppy.h" #include "formats/flopimg.h" @@ -24,13 +24,7 @@ class wozfdc_device: public device_t { - friend class diskii_fdc; - friend class appleiii_fdc; - public: - // construction/destruction - wozfdc_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - // optional information overrides virtual const tiny_rom_entry *device_rom_region() const override; @@ -38,18 +32,29 @@ public: DECLARE_WRITE8_MEMBER(write); protected: + // construction/destruction + wozfdc_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; virtual void device_reset() override; virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; - floppy_connector *floppy0, *floppy1, *floppy2, *floppy3; - floppy_image_device *floppy; + void control(int offset); + void phase(int ph, bool on); + uint64_t time_to_cycles(const attotime &tm); + attotime cycles_to_time(uint64_t cycles); + void a3_update_drive_sel(); + + void lss_start(); + void lss_sync(); -private: enum { MODE_IDLE, MODE_ACTIVE, MODE_DELAY }; + floppy_connector *floppy0, *floppy1, *floppy2, *floppy3; + floppy_image_device *floppy; + uint64_t cycles; uint8_t data_reg, address; attotime write_start_time; @@ -68,45 +73,38 @@ private: int drvsel; int enable1; - - void control(int offset); - void phase(int ph, bool on); - uint64_t time_to_cycles(const attotime &tm); - attotime cycles_to_time(uint64_t cycles); - void a3_update_drive_sel(); - - void lss_start(); - void lss_sync(); }; -class diskii_fdc : public wozfdc_device +class diskii_fdc_device : public wozfdc_device { public: - diskii_fdc(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - - virtual void device_reset() override; + diskii_fdc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); void set_floppies(floppy_connector *f0, floppy_connector *f1); + +protected: + virtual void device_reset() override; }; -class appleiii_fdc : public wozfdc_device +class appleiii_fdc_device : public wozfdc_device { public: - appleiii_fdc(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - - virtual void device_reset() override; + appleiii_fdc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); void set_floppies_4(floppy_connector *f0, floppy_connector *f1, floppy_connector *f2, floppy_connector *f3); DECLARE_READ8_MEMBER(read_c0dx); DECLARE_WRITE8_MEMBER(write_c0dx); +protected: + virtual void device_reset() override; + private: void control_dx(int offset); }; // device type definition -extern const device_type DISKII_FDC; -extern const device_type APPLEIII_FDC; +DECLARE_DEVICE_TYPE(DISKII_FDC, diskii_fdc_device) +DECLARE_DEVICE_TYPE(APPLEIII_FDC, appleiii_fdc_device) -#endif /* __WOZFDC_H__ */ +#endif // MAME_MACHINE_WOZFDC_H diff --git a/src/devices/machine/x2212.cpp b/src/devices/machine/x2212.cpp index abd92ad1b7e..a78e5992246 100644 --- a/src/devices/machine/x2212.cpp +++ b/src/devices/machine/x2212.cpp @@ -31,38 +31,29 @@ ADDRESS_MAP_END //************************************************************************** // device type definition -const device_type X2212 = device_creator; -const device_type X2210 = device_creator; +DEFINE_DEVICE_TYPE(X2212, x2212_device, "x2212", "Xicor X2212 256x4 NVRAM") +DEFINE_DEVICE_TYPE(X2210, x2210_device, "x2210", "Xicor X2210 64x4 NVRAM") //------------------------------------------------- // x2212_device - constructor //------------------------------------------------- x2212_device::x2212_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, X2212, "X2212 NVRAM", tag, owner, clock, "x2212", __FILE__), - device_memory_interface(mconfig, *this), - device_nvram_interface(mconfig, *this), - m_auto_save(false), - m_sram_space_config("SRAM", ENDIANNESS_BIG, 8, 8, 0, *ADDRESS_MAP_NAME(x2212_sram_map)), - m_e2prom_space_config("E2PROM", ENDIANNESS_BIG, 8, 8, 0, *ADDRESS_MAP_NAME(x2212_e2prom_map)), - m_store(false), - m_array_recall(false), - m_size_data(0x100), - m_default_data(*this, DEVICE_SELF, 0x100) + : x2212_device(mconfig, X2212, tag, owner, clock, 0x100) { } -x2212_device::x2212_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source, int size_data) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_memory_interface(mconfig, *this), - device_nvram_interface(mconfig, *this), - m_auto_save(false), - m_sram_space_config("SRAM", ENDIANNESS_BIG, 8, 8, 0, *ADDRESS_MAP_NAME(x2212_sram_map)), - m_e2prom_space_config("E2PROM", ENDIANNESS_BIG, 8, 8, 0, *ADDRESS_MAP_NAME(x2212_e2prom_map)), - m_store(false), - m_array_recall(false), - m_size_data(size_data), - m_default_data(*this, DEVICE_SELF, size_data) +x2212_device::x2212_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int size_data) + : device_t(mconfig, type, tag, owner, clock) + , device_memory_interface(mconfig, *this) + , device_nvram_interface(mconfig, *this) + , m_auto_save(false) + , m_sram_space_config("SRAM", ENDIANNESS_BIG, 8, 8, 0, *ADDRESS_MAP_NAME(x2212_sram_map)) + , m_e2prom_space_config("E2PROM", ENDIANNESS_BIG, 8, 8, 0, *ADDRESS_MAP_NAME(x2212_e2prom_map)) + , m_store(false) + , m_array_recall(false) + , m_size_data(size_data) + , m_default_data(*this, DEVICE_SELF, size_data) { } @@ -240,6 +231,6 @@ WRITE_LINE_MEMBER( x2212_device::recall ) x2210_device::x2210_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : x2212_device(mconfig, X2210, "X2210", tag, owner, clock, "x2210", __FILE__, 0x40) + : x2212_device(mconfig, X2210, tag, owner, clock, 0x40) { } diff --git a/src/devices/machine/x2212.h b/src/devices/machine/x2212.h index 7c049f380e2..f819cb350b1 100644 --- a/src/devices/machine/x2212.h +++ b/src/devices/machine/x2212.h @@ -8,10 +8,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_MACHINE_X2212_H +#define MAME_MACHINE_X2212_H -#ifndef __X2212_H__ -#define __X2212_H__ +#pragma once @@ -49,7 +49,6 @@ class x2212_device : public device_t, public: // construction/destruction x2212_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - x2212_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source, int size_data); // inline configuration helpers static void static_set_auto_save(device_t &device); @@ -62,6 +61,8 @@ public: DECLARE_WRITE_LINE_MEMBER( recall ); protected: + x2212_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int size_data); + // internal helpers void store(); void recall(); @@ -91,11 +92,11 @@ protected: bool m_store; bool m_array_recall; - int m_size_data; + int const m_size_data; optional_region_ptr m_default_data; }; -class x2210_device : public x2212_device +class x2210_device : public x2212_device { public: x2210_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); @@ -103,8 +104,7 @@ public: // device type definition -extern const device_type X2212; -extern const device_type X2210; - +DECLARE_DEVICE_TYPE(X2212, x2212_device) +DECLARE_DEVICE_TYPE(X2210, x2210_device) -#endif +#endif // MAME_MACHINE_X2212_H diff --git a/src/devices/machine/x76f041.cpp b/src/devices/machine/x76f041.cpp index e0a1280aff7..03fb5b65bf9 100644 --- a/src/devices/machine/x76f041.cpp +++ b/src/devices/machine/x76f041.cpp @@ -32,10 +32,10 @@ inline void ATTR_PRINTF( 3, 4 ) x76f041_device::verboselog( int n_level, const c } // device type definition -const device_type X76F041 = device_creator; +DEFINE_DEVICE_TYPE(X76F041, x76f041_device, "x76f041", "X76F041 Secure SerialFlash") x76f041_device::x76f041_device( const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock ) - : device_t( mconfig, X76F041, "X76F041 Flash", tag, owner, clock, "x76f041", __FILE__ ), + : device_t( mconfig, X76F041, tag, owner, clock ), device_nvram_interface(mconfig, *this), m_region(*this, DEVICE_SELF), m_cs( 0 ), diff --git a/src/devices/machine/x76f041.h b/src/devices/machine/x76f041.h index 33bf5b45f9b..8ccce9ba035 100644 --- a/src/devices/machine/x76f041.h +++ b/src/devices/machine/x76f041.h @@ -7,10 +7,10 @@ * */ -#pragma once +#ifndef MAME_MACHINE_X76F041_H +#define MAME_MACHINE_X76F041_H -#ifndef __X76F041_H__ -#define __X76F041_H__ +#pragma once #define MCFG_X76F041_ADD( _tag ) \ @@ -123,6 +123,6 @@ private: // device type definition -extern const device_type X76F041; +DECLARE_DEVICE_TYPE(X76F041, x76f041_device) -#endif +#endif // MAME_MACHINE_X76F041_H diff --git a/src/devices/machine/x76f100.cpp b/src/devices/machine/x76f100.cpp index 4ff06be9f84..4c74bb5b7ad 100644 --- a/src/devices/machine/x76f100.cpp +++ b/src/devices/machine/x76f100.cpp @@ -30,10 +30,10 @@ inline void ATTR_PRINTF( 3, 4 ) x76f100_device::verboselog( int n_level, const c } // device type definition -const device_type X76F100 = device_creator; +DEFINE_DEVICE_TYPE(X76F100, x76f100_device, "x76f100", "X76F100 Secure SerialFlash") x76f100_device::x76f100_device( const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock ) - : device_t( mconfig, X76F100, "X76F100 Flash", tag, owner, clock, "x76f100", __FILE__ ), + : device_t( mconfig, X76F100, tag, owner, clock ), device_nvram_interface(mconfig, *this), m_region(*this, DEVICE_SELF), m_cs( 0 ), diff --git a/src/devices/machine/x76f100.h b/src/devices/machine/x76f100.h index 995b59510e0..8757ed4f7eb 100644 --- a/src/devices/machine/x76f100.h +++ b/src/devices/machine/x76f100.h @@ -7,17 +7,16 @@ * */ -#pragma once +#ifndef MAME_MACHINE_X76F100_H +#define MAME_MACHINE_X76F100_H -#ifndef __X76F100_H__ -#define __X76F100_H__ +#pragma once -#define MCFG_X76F100_ADD( _tag ) \ - MCFG_DEVICE_ADD( _tag, X76F100, 0 ) +#define MCFG_X76F100_ADD( tag ) \ + MCFG_DEVICE_ADD( (tag), X76F100, 0 ) -class x76f100_device : public device_t, - public device_nvram_interface +class x76f100_device : public device_t, public device_nvram_interface { public: // construction/destruction @@ -86,6 +85,6 @@ private: }; // device type definition -extern const device_type X76F100; +DECLARE_DEVICE_TYPE(X76F100, x76f100_device) -#endif +#endif // MAME_MACHINE_X76F100_H diff --git a/src/devices/machine/ym2148.cpp b/src/devices/machine/ym2148.cpp index c36ad7b2bf3..f58d98b7536 100644 --- a/src/devices/machine/ym2148.cpp +++ b/src/devices/machine/ym2148.cpp @@ -13,11 +13,11 @@ TODO: #include "ym2148.h" -const device_type YM2148 = device_creator; +DEFINE_DEVICE_TYPE(YM2148, ym2148_device, "ym2148", "Yamaha YM2148 MIDI/Keyboard Interface") ym2148_device::ym2148_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, YM2148, "YM2148", tag, owner, clock, "ym2148", __FILE__) + : device_t(mconfig, YM2148, tag, owner, clock) , device_serial_interface(mconfig, *this) , m_txd_handler(*this) , m_irq_handler(*this) @@ -30,7 +30,7 @@ ym2148_device::ym2148_device(const machine_config &mconfig, const char *tag, dev , m_data_in(0) , m_control(0) , m_status(0), m_timer(nullptr) - , m_rxd(1) + , m_rxd(1) , m_tx_busy(false) { } diff --git a/src/devices/machine/ym2148.h b/src/devices/machine/ym2148.h index 5ca91bd8883..61fe8d01214 100644 --- a/src/devices/machine/ym2148.h +++ b/src/devices/machine/ym2148.h @@ -8,8 +8,10 @@ *********************************************************************/ -#ifndef __YM2148_H__ -#define __YM2148_H__ +#ifndef MAME_MACHINE_YM2148_H +#define MAME_MACHINE_YM2148_H + +#pragma once //************************************************************************** @@ -29,18 +31,17 @@ devcb = &ym2148_device::set_irq_handler(*device, DEVCB_##_devcb); -class ym2148_device : public device_t, - public device_serial_interface +class ym2148_device : public device_t, public device_serial_interface { public: // construction/destruction ym2148_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // static configuration helpers - template static devcb_base &set_txd_handler(device_t &device, _Object object) { return downcast(device).m_txd_handler.set_callback(object); } - template static devcb_base &set_port_write_handler(device_t &device, _Object object) { return downcast(device).m_port_write_handler.set_callback(object); } - template static devcb_base &set_port_read_handler(device_t &device, _Object object) { return downcast(device).m_port_read_handler.set_callback(object); } - template static devcb_base &set_irq_handler(device_t &device, _Object object) { return downcast(device).m_irq_handler.set_callback(object); } + template static devcb_base &set_txd_handler(device_t &device, Object &&cb) { return downcast(device).m_txd_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_port_write_handler(device_t &device, Object &&cb) { return downcast(device).m_port_write_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_port_read_handler(device_t &device, Object &&cb) { return downcast(device).m_port_read_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_irq_handler(device_t &device, Object &&cb) { return downcast(device).m_irq_handler.set_callback(std::forward(cb)); } DECLARE_READ8_MEMBER(read); DECLARE_WRITE8_MEMBER(write); @@ -87,7 +88,6 @@ private: }; -extern const device_type YM2148; - +DECLARE_DEVICE_TYPE(YM2148, ym2148_device) -#endif +#endif // MAME_MACHINE_YM2148_H diff --git a/src/devices/machine/z80ctc.cpp b/src/devices/machine/z80ctc.cpp index 302572e9a90..cab0738e22c 100644 --- a/src/devices/machine/z80ctc.cpp +++ b/src/devices/machine/z80ctc.cpp @@ -72,14 +72,14 @@ const int WAITING_FOR_TRIG = 0x100; //************************************************************************** // device type definition -const device_type Z80CTC = device_creator; +DEFINE_DEVICE_TYPE(Z80CTC, z80ctc_device, "z80ctc", "Z80 CTC") //------------------------------------------------- // z80ctc_device - constructor //------------------------------------------------- z80ctc_device::z80ctc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, Z80CTC, "Z80 CTC", tag, owner, clock, "z80ctc", __FILE__), + : device_t(mconfig, Z80CTC, tag, owner, clock), device_z80daisy_interface(mconfig, *this), m_intr_cb(*this), m_zc0_cb(*this), diff --git a/src/devices/machine/z80ctc.h b/src/devices/machine/z80ctc.h index 71e36ccc52a..66d1ea0698a 100644 --- a/src/devices/machine/z80ctc.h +++ b/src/devices/machine/z80ctc.h @@ -23,8 +23,10 @@ ***************************************************************************/ -#ifndef __Z80CTC_H__ -#define __Z80CTC_H__ +#ifndef MAME_MACHINE_Z80CTC_H +#define MAME_MACHINE_Z80CTC_H + +#pragma once #include "cpu/z80/z80daisy.h" @@ -60,10 +62,10 @@ public: // construction/destruction z80ctc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_intr_callback(device_t &device, _Object object) { return downcast(device).m_intr_cb.set_callback(object); } - template static devcb_base &set_zc0_callback(device_t &device, _Object object) { return downcast(device).m_zc0_cb.set_callback(object); } - template static devcb_base &set_zc1_callback(device_t &device, _Object object) { return downcast(device).m_zc1_cb.set_callback(object); } - template static devcb_base &set_zc2_callback(device_t &device, _Object object) { return downcast(device).m_zc2_cb.set_callback(object); } + template static devcb_base &set_intr_callback(device_t &device, Object &&cb) { return downcast(device).m_intr_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_zc0_callback(device_t &device, Object &&cb) { return downcast(device).m_zc0_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_zc1_callback(device_t &device, Object &&cb) { return downcast(device).m_zc1_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_zc2_callback(device_t &device, Object &&cb) { return downcast(device).m_zc2_cb.set_callback(std::forward(cb)); } // read/write handlers DECLARE_READ8_MEMBER( read ); @@ -130,7 +132,7 @@ private: // device type definition -extern const device_type Z80CTC; +DECLARE_DEVICE_TYPE(Z80CTC, z80ctc_device) -#endif +#endif // MAME_MACHINE_Z80CTC_H diff --git a/src/devices/machine/z80dart.cpp b/src/devices/machine/z80dart.cpp index 56613998b12..de68752a594 100644 --- a/src/devices/machine/z80dart.cpp +++ b/src/devices/machine/z80dart.cpp @@ -3,7 +3,7 @@ /*************************************************************************** Intel 8274 Multi-Protocol Serial Controller emulation - NEC uPD7201 Multiprotocol Serial Communications Controller emulation + NEC µPD7201 Multiprotocol Serial Communications Controller emulation Z80-DART Dual Asynchronous Receiver/Transmitter emulation Z80-SIO/0/1/2/3/4 Serial Input/Output Controller emulation @@ -32,17 +32,9 @@ #include "emu.h" #include "z80dart.h" -//************************************************************************** -// MACROS / CONSTANTS -//************************************************************************** - -#define VERBOSE 0 -#define LOGPRINT(x) do { if (VERBOSE) logerror x; } while (0) -#define LOG(x) {} LOGPRINT(x) - -#if VERBOSE == 2 -#define logerror printf -#endif +//#define VERBOSE 1 +//#define LOG_OUTPUT_FUNC printf +#include "logmacro.h" #define CHANA_TAG "cha" #define CHANB_TAG "chb" @@ -52,15 +44,15 @@ //************************************************************************** // device type definition -const device_type Z80DART = device_creator; -const device_type Z80DART_CHANNEL = device_creator; -const device_type Z80SIO0 = device_creator; -const device_type Z80SIO1 = device_creator; -const device_type Z80SIO2 = device_creator; -const device_type Z80SIO3 = device_creator; -const device_type Z80SIO4 = device_creator; -const device_type I8274 = device_creator; -const device_type UPD7201 = device_creator; +DEFINE_DEVICE_TYPE(Z80DART, z80dart_device, "z80dart", "Z80 DART") +DEFINE_DEVICE_TYPE(Z80DART_CHANNEL, z80dart_channel, "z80dart_channel", "Z80 DART channel") +DEFINE_DEVICE_TYPE(Z80SIO0, z80sio0_device, "z80sio0", "Z80 SIO/0") +DEFINE_DEVICE_TYPE(Z80SIO1, z80sio1_device, "z80sio1", "Z80 SIO/1") +DEFINE_DEVICE_TYPE(Z80SIO2, z80sio2_device, "z80sio2", "Z80 SIO/2") +DEFINE_DEVICE_TYPE(Z80SIO3, z80sio3_device, "z80sio3", "Z80 SIO/3") +DEFINE_DEVICE_TYPE(Z80SIO4, z80sio4_device, "z80sio4", "Z80 SIO/4") +DEFINE_DEVICE_TYPE(I8274, i8274_device, "i8274", "Intel 8274 MPSC") +DEFINE_DEVICE_TYPE(UPD7201, upd7201_device, "upd7201", "NEC uPD7201 MPSC") //------------------------------------------------- @@ -87,98 +79,73 @@ machine_config_constructor z80dart_device::device_mconfig_additions() const // z80dart_device - constructor //------------------------------------------------- -z80dart_device::z80dart_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, uint32_t variant, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_z80daisy_interface(mconfig, *this), - m_chanA(*this, CHANA_TAG), - m_chanB(*this, CHANB_TAG), - m_rxca(0), - m_txca(0), - m_rxcb(0), - m_txcb(0), - m_out_txda_cb(*this), - m_out_dtra_cb(*this), - m_out_rtsa_cb(*this), - m_out_wrdya_cb(*this), - m_out_synca_cb(*this), - m_out_txdb_cb(*this), - m_out_dtrb_cb(*this), - m_out_rtsb_cb(*this), - m_out_wrdyb_cb(*this), - m_out_syncb_cb(*this), - m_out_int_cb(*this), - m_out_rxdrqa_cb(*this), - m_out_txdrqa_cb(*this), - m_out_rxdrqb_cb(*this), - m_out_txdrqb_cb(*this), - m_variant(variant) +z80dart_device::z80dart_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint32_t variant) + : device_t(mconfig, type, tag, owner, clock) + , device_z80daisy_interface(mconfig, *this) + , m_chanA(*this, CHANA_TAG) + , m_chanB(*this, CHANB_TAG) + , m_rxca(0) + , m_txca(0) + , m_rxcb(0) + , m_txcb(0) + , m_out_txda_cb(*this) + , m_out_dtra_cb(*this) + , m_out_rtsa_cb(*this) + , m_out_wrdya_cb(*this) + , m_out_synca_cb(*this) + , m_out_txdb_cb(*this) + , m_out_dtrb_cb(*this) + , m_out_rtsb_cb(*this) + , m_out_wrdyb_cb(*this) + , m_out_syncb_cb(*this) + , m_out_int_cb(*this) + , m_out_rxdrqa_cb(*this) + , m_out_txdrqa_cb(*this) + , m_out_rxdrqb_cb(*this) + , m_out_txdrqb_cb(*this) + , m_variant(variant) { for (auto & elem : m_int_state) elem = 0; } z80dart_device::z80dart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, Z80DART, "Z80 DART", tag, owner, clock, "z80dart", __FILE__), - device_z80daisy_interface(mconfig, *this), - m_chanA(*this, CHANA_TAG), - m_chanB(*this, CHANB_TAG), - m_rxca(0), - m_txca(0), - m_rxcb(0), - m_txcb(0), - m_out_txda_cb(*this), - m_out_dtra_cb(*this), - m_out_rtsa_cb(*this), - m_out_wrdya_cb(*this), - m_out_synca_cb(*this), - m_out_txdb_cb(*this), - m_out_dtrb_cb(*this), - m_out_rtsb_cb(*this), - m_out_wrdyb_cb(*this), - m_out_syncb_cb(*this), - m_out_int_cb(*this), - m_out_rxdrqa_cb(*this), - m_out_txdrqa_cb(*this), - m_out_rxdrqb_cb(*this), - m_out_txdrqb_cb(*this), - m_variant(TYPE_DART) + : z80dart_device(mconfig, Z80DART, tag, owner, clock, TYPE_DART) { - for (auto & elem : m_int_state) - elem = 0; } z80sio0_device::z80sio0_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : z80dart_device(mconfig, Z80SIO0, "Z80 SIO/0", tag, owner, clock, TYPE_SIO0, "z80sio0", __FILE__) + : z80dart_device(mconfig, Z80SIO0, tag, owner, clock, TYPE_SIO0) { } z80sio1_device::z80sio1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : z80dart_device(mconfig, Z80SIO1, "Z80 SIO/1", tag, owner, clock, TYPE_SIO1, "z80sio1", __FILE__) + : z80dart_device(mconfig, Z80SIO1, tag, owner, clock, TYPE_SIO1) { } z80sio2_device::z80sio2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : z80dart_device(mconfig, Z80SIO2, "Z80 SIO/2", tag, owner, clock, TYPE_SIO2, "z80sio2", __FILE__) + : z80dart_device(mconfig, Z80SIO2, tag, owner, clock, TYPE_SIO2) { } z80sio3_device::z80sio3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : z80dart_device(mconfig, Z80SIO3, "Z80 SIO/3", tag, owner, clock, TYPE_SIO3, "z80sio3", __FILE__) + : z80dart_device(mconfig, Z80SIO3, tag, owner, clock, TYPE_SIO3) { } z80sio4_device::z80sio4_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : z80dart_device(mconfig, Z80SIO4, "Z80 SIO/4", tag, owner, clock, TYPE_SIO4, "z80sio4", __FILE__) + : z80dart_device(mconfig, Z80SIO4, tag, owner, clock, TYPE_SIO4) { } i8274_device::i8274_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : z80dart_device(mconfig, I8274, "I8274", tag, owner, clock, TYPE_I8274, "i8274", __FILE__) + : z80dart_device(mconfig, I8274, tag, owner, clock, TYPE_I8274) { } upd7201_device::upd7201_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : z80dart_device(mconfig, UPD7201, "uPD7201", tag, owner, clock, TYPE_UPD7201, "upd7201", __FILE__) + : z80dart_device(mconfig, UPD7201, tag, owner, clock, TYPE_UPD7201) { } @@ -207,12 +174,12 @@ void z80dart_device::device_start() m_out_txdrqb_cb.resolve_safe(); // configure channel A - m_chanA->m_rxc = m_rxca; - m_chanA->m_txc = m_txca; + m_chanA->set_rxc(m_rxca); + m_chanA->set_txc(m_txca); // configure channel B - m_chanB->m_rxc = m_rxcb; - m_chanB->m_txc = m_txcb; + m_chanB->set_rxc(m_rxcb); + m_chanB->set_txc(m_txcb); // state saving save_item(NAME(m_int_state)); @@ -225,7 +192,7 @@ void z80dart_device::device_start() void z80dart_device::device_reset() { - LOG(("Z80DART \"%s\" Reset\n", tag())); + LOG("Z80DART \"%s\" Reset\n", tag()); m_chanA->reset(); m_chanB->reset(); @@ -240,9 +207,9 @@ int z80dart_device::z80daisy_irq_state() int state = 0; int i; - LOG(("Z80DART \"%s\" : Interrupt State A:%d%d%d%d B:%d%d%d%d\n", tag(), + LOG("Z80DART \"%s\" : Interrupt State A:%d%d%d%d B:%d%d%d%d\n", tag(), m_int_state[0], m_int_state[1], m_int_state[2], m_int_state[3], - m_int_state[4], m_int_state[5], m_int_state[6], m_int_state[7])); + m_int_state[4], m_int_state[5], m_int_state[6], m_int_state[7]); // loop over all interrupt sources for (i = 0; i < 8; i++) @@ -256,7 +223,7 @@ int z80dart_device::z80daisy_irq_state() state |= m_int_state[i]; } - LOG(("Z80DART \"%s\" : Interrupt State %u\n", tag(), state)); + LOG("Z80DART \"%s\" : Interrupt State %u\n", tag(), state); return state; } @@ -270,7 +237,7 @@ int z80dart_device::z80daisy_irq_ack() { int i; - LOG(("Z80DART \"%s\" Interrupt Acknowledge\n", tag())); + LOG("Z80DART \"%s\" Interrupt Acknowledge\n", tag()); // loop over all interrupt sources for (i = 0; i < 8; i++) @@ -280,18 +247,18 @@ int z80dart_device::z80daisy_irq_ack() { // clear interrupt, switch to the IEO state, and update the IRQs m_int_state[i] = Z80_DAISY_IEO; - m_chanA->m_rr[0] &= ~z80dart_channel::RR0_INTERRUPT_PENDING; + m_chanA->clr_interrupt_pending(); check_interrupts(); - LOG(("Z80DART \"%s\" : Interrupt Acknowledge Vector %02x\n", tag(), m_chanB->m_rr[2])); + LOG("Z80DART \"%s\" : Interrupt Acknowledge Vector %02x\n", tag(), m_chanB->get_vector()); - return m_chanB->m_rr[2]; + return m_chanB->get_vector(); } } //logerror("z80dart_irq_ack: failed to find an interrupt to ack!\n"); - return m_chanB->m_rr[2]; + return m_chanB->get_vector(); } @@ -303,7 +270,7 @@ void z80dart_device::z80daisy_irq_reti() { int i; - LOG(("Z80DART \"%s\" Return from Interrupt\n", tag())); + LOG("Z80DART \"%s\" Return from Interrupt\n", tag()); // loop over all interrupt sources for (i = 0; i < 8; i++) @@ -374,7 +341,7 @@ void z80dart_device::trigger_interrupt(int index, int state) break; } - if(m_chanA->m_wr[2] & z80dart_channel::WR2_PRIORITY) + if(m_chanA->get_priority()) { priority = (prio_level * 2) + index; } @@ -382,7 +349,7 @@ void z80dart_device::trigger_interrupt(int index, int state) { priority = (prio_level == 2) ? index + 4 : ((index * 2) + prio_level); } - if (m_chanB->m_wr[1] & z80dart_channel::WR1_STATUS_VECTOR) + if (m_chanB->get_status_vector()) { vector = (!index << 2) | state; if((m_chanA->m_wr[1] & 0x18) == z80dart_channel::WR2_MODE_8086_8088) @@ -398,21 +365,21 @@ void z80dart_device::trigger_interrupt(int index, int state) else { priority = (index << 2) | state; - if (m_chanB->m_wr[1] & z80dart_channel::WR1_STATUS_VECTOR) + if (m_chanB->get_status_vector()) { // status affects vector vector = (m_chanB->m_wr[2] & 0xf1) | (!index << 3) | (state << 1); } } - LOG(("Z80DART \"%s\" Channel %c : Interrupt Request %u\n", tag(), 'A' + index, state)); + LOG("Z80DART \"%s\" Channel %c : Interrupt Request %u\n", tag(), 'A' + index, state); // update vector register - m_chanB->m_rr[2] = vector; + m_chanB->set_vector(vector); // trigger interrupt m_int_state[priority] |= Z80_DAISY_INT; - m_chanA->m_rr[0] |= z80dart_channel::RR0_INTERRUPT_PENDING; + m_chanA->set_interrupt_pending(); // check for interrupt check_interrupts(); @@ -501,22 +468,22 @@ WRITE8_MEMBER( z80dart_device::ba_cd_w ) //------------------------------------------------- z80dart_channel::z80dart_channel(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, Z80DART_CHANNEL, "Z80 DART channel", tag, owner, clock, "z80dart_channel", __FILE__), - device_serial_interface(mconfig, *this), - m_rx_error(0), - m_rx_clock(0), - m_rx_first(0), - m_rx_break(0), - m_rx_rr0_latch(0), - m_rxd(0), - m_ri(0), - m_cts(0), - m_dcd(0), - m_tx_data(0), - m_tx_clock(0), - m_dtr(0), - m_rts(0), - m_sync(0) + : device_t(mconfig, Z80DART_CHANNEL, tag, owner, clock) + , device_serial_interface(mconfig, *this) + , m_rx_error(0) + , m_rx_clock(0) + , m_rx_first(0) + , m_rx_break(0) + , m_rx_rr0_latch(0) + , m_rxd(0) + , m_ri(0) + , m_cts(0) + , m_dcd(0) + , m_tx_data(0) + , m_tx_clock(0) + , m_dtr(0) + , m_rts(0) + , m_sync(0) { for (auto & elem : m_rr) elem = 0; @@ -631,7 +598,7 @@ void z80dart_channel::tra_complete() { if ((m_wr[5] & WR5_TX_ENABLE) && !(m_wr[5] & WR5_SEND_BREAK) && !(m_rr[0] & RR0_TX_BUFFER_EMPTY)) { - LOG(("Z80DART \"%s\" Channel %c : Transmit Data Byte '%02x'\n", m_owner->tag(), 'A' + m_index, m_tx_data)); + LOG("Z80DART \"%s\" Channel %c : Transmit Data Byte '%02x'\n", m_owner->tag(), 'A' + m_index, m_tx_data); transmit_register_setup(m_tx_data); @@ -802,7 +769,7 @@ uint8_t z80dart_channel::control_read() break; } - //LOG(("Z80DART \"%s\" Channel %c : Control Register Read '%02x'\n", m_owner->tag(), 'A' + m_index, data)); + //LOG("Z80DART \"%s\" Channel %c : Control Register Read '%02x'\n", m_owner->tag(), 'A' + m_index, data); return data; } @@ -817,7 +784,7 @@ void z80dart_channel::control_write(uint8_t data) int reg = m_wr[0] & WR0_REGISTER_MASK; uint8_t prev = m_wr[reg]; - LOG(("Z80DART \"%s\" Channel %c : Control Register Write '%02x'\n", m_owner->tag(), 'A' + m_index, data)); + LOG("Z80DART \"%s\" Channel %c : Control Register Write '%02x'\n", m_owner->tag(), 'A' + m_index, data); // write data to selected register if (reg < 6) @@ -835,11 +802,11 @@ void z80dart_channel::control_write(uint8_t data) switch (data & WR0_COMMAND_MASK) { case WR0_NULL: - LOG(("Z80DART \"%s\" Channel %c : Null\n", m_owner->tag(), 'A' + m_index)); + LOG("Z80DART \"%s\" Channel %c : Null\n", m_owner->tag(), 'A' + m_index); break; case WR0_SEND_ABORT: - LOG(("Z80DART \"%s\" Channel %c : Send Abort\n", m_owner->tag(), 'A' + m_index)); + LOG("Z80DART \"%s\" Channel %c : Send Abort\n", m_owner->tag(), 'A' + m_index); logerror("Z80DART \"%s\" Channel %c : unsupported command: Send Abort\n", m_owner->tag(), 'A' + m_index); break; @@ -853,40 +820,40 @@ void z80dart_channel::control_write(uint8_t data) m_rx_rr0_latch = 0; - LOG(("Z80DART \"%s\" Channel %c : Reset External/Status Interrupt\n", m_owner->tag(), 'A' + m_index)); + LOG("Z80DART \"%s\" Channel %c : Reset External/Status Interrupt\n", m_owner->tag(), 'A' + m_index); break; case WR0_CHANNEL_RESET: // channel reset - LOG(("Z80DART \"%s\" Channel %c : Channel Reset\n", m_owner->tag(), 'A' + m_index)); + LOG("Z80DART \"%s\" Channel %c : Channel Reset\n", m_owner->tag(), 'A' + m_index); device_reset(); break; case WR0_ENABLE_INT_NEXT_RX: // enable interrupt on next receive character - LOG(("Z80DART \"%s\" Channel %c : Enable Interrupt on Next Received Character\n", m_owner->tag(), 'A' + m_index)); + LOG("Z80DART \"%s\" Channel %c : Enable Interrupt on Next Received Character\n", m_owner->tag(), 'A' + m_index); m_rx_first = 1; break; case WR0_RESET_TX_INT: // reset transmitter interrupt pending - LOG(("Z80DART \"%s\" Channel %c : Reset Transmitter Interrupt Pending\n", m_owner->tag(), 'A' + m_index)); + LOG("Z80DART \"%s\" Channel %c : Reset Transmitter Interrupt Pending\n", m_owner->tag(), 'A' + m_index); logerror("Z80DART \"%s\" Channel %c : unsupported command: Reset Transmitter Interrupt Pending\n", m_owner->tag(), 'A' + m_index); break; case WR0_ERROR_RESET: // error reset - LOG(("Z80DART \"%s\" Channel %c : Error Reset\n", m_owner->tag(), 'A' + m_index)); + LOG("Z80DART \"%s\" Channel %c : Error Reset\n", m_owner->tag(), 'A' + m_index); m_rr[1] &= ~(RR1_CRC_FRAMING_ERROR | RR1_RX_OVERRUN_ERROR | RR1_PARITY_ERROR); break; case WR0_RETURN_FROM_INT: // return from interrupt - LOG(("Z80DART \"%s\" Channel %c : Return from Interrupt\n", m_owner->tag(), 'A' + m_index)); + LOG("Z80DART \"%s\" Channel %c : Return from Interrupt\n", m_owner->tag(), 'A' + m_index); m_uart->z80daisy_irq_reti(); if((m_uart->m_variant == z80dart_device::TYPE_I8274) || (m_uart->m_variant == z80dart_device::TYPE_UPD7201)) { - if (m_uart->m_chanB->m_wr[1] & z80dart_channel::WR1_STATUS_VECTOR) + if (m_uart->m_chanB->get_status_vector()) { if((m_uart->m_chanA->m_wr[1] & 0x18) == z80dart_channel::WR2_MODE_8086_8088) m_uart->m_chanB->m_rr[2] = (m_uart->m_chanB->m_wr[2] & 0xf8) | 0x07; @@ -899,29 +866,29 @@ void z80dart_channel::control_write(uint8_t data) break; case 1: - LOG(("Z80DART \"%s\" Channel %c : External Interrupt Enable %u\n", m_owner->tag(), 'A' + m_index, (data & WR1_EXT_INT_ENABLE) ? 1 : 0)); - LOG(("Z80DART \"%s\" Channel %c : Transmit Interrupt Enable %u\n", m_owner->tag(), 'A' + m_index, (data & WR1_TX_INT_ENABLE) ? 1 : 0)); - LOG(("Z80DART \"%s\" Channel %c : Status Affects Vector %u\n", m_owner->tag(), 'A' + m_index, (data & WR1_STATUS_VECTOR) ? 1 : 0)); - LOG(("Z80DART \"%s\" Channel %c : Wait/Ready Enable %u\n", m_owner->tag(), 'A' + m_index, (data & WR1_WRDY_ENABLE) ? 1 : 0)); - LOG(("Z80DART \"%s\" Channel %c : Wait/Ready Function %s\n", m_owner->tag(), 'A' + m_index, (data & WR1_WRDY_FUNCTION) ? "Ready" : "Wait")); - LOG(("Z80DART \"%s\" Channel %c : Wait/Ready on %s\n", m_owner->tag(), 'A' + m_index, (data & WR1_WRDY_ON_RX_TX) ? "Receive" : "Transmit")); + LOG("Z80DART \"%s\" Channel %c : External Interrupt Enable %u\n", m_owner->tag(), 'A' + m_index, (data & WR1_EXT_INT_ENABLE) ? 1 : 0); + LOG("Z80DART \"%s\" Channel %c : Transmit Interrupt Enable %u\n", m_owner->tag(), 'A' + m_index, (data & WR1_TX_INT_ENABLE) ? 1 : 0); + LOG("Z80DART \"%s\" Channel %c : Status Affects Vector %u\n", m_owner->tag(), 'A' + m_index, (data & WR1_STATUS_VECTOR) ? 1 : 0); + LOG("Z80DART \"%s\" Channel %c : Wait/Ready Enable %u\n", m_owner->tag(), 'A' + m_index, (data & WR1_WRDY_ENABLE) ? 1 : 0); + LOG("Z80DART \"%s\" Channel %c : Wait/Ready Function %s\n", m_owner->tag(), 'A' + m_index, (data & WR1_WRDY_FUNCTION) ? "Ready" : "Wait"); + LOG("Z80DART \"%s\" Channel %c : Wait/Ready on %s\n", m_owner->tag(), 'A' + m_index, (data & WR1_WRDY_ON_RX_TX) ? "Receive" : "Transmit"); switch (data & WR1_RX_INT_MODE_MASK) { case WR1_RX_INT_DISABLE: - LOG(("Z80DART \"%s\" Channel %c : Receiver Interrupt Disabled\n", m_owner->tag(), 'A' + m_index)); + LOG("Z80DART \"%s\" Channel %c : Receiver Interrupt Disabled\n", m_owner->tag(), 'A' + m_index); break; case WR1_RX_INT_FIRST: - LOG(("Z80DART \"%s\" Channel %c : Receiver Interrupt on First Character\n", m_owner->tag(), 'A' + m_index)); + LOG("Z80DART \"%s\" Channel %c : Receiver Interrupt on First Character\n", m_owner->tag(), 'A' + m_index); break; case WR1_RX_INT_ALL_PARITY: - LOG(("Z80DART \"%s\" Channel %c : Receiver Interrupt on All Characters, Parity Affects Vector\n", m_owner->tag(), 'A' + m_index)); + LOG("Z80DART \"%s\" Channel %c : Receiver Interrupt on All Characters, Parity Affects Vector\n", m_owner->tag(), 'A' + m_index); break; case WR1_RX_INT_ALL: - LOG(("Z80DART \"%s\" Channel %c : Receiver Interrupt on All Characters\n", m_owner->tag(), 'A' + m_index)); + LOG("Z80DART \"%s\" Channel %c : Receiver Interrupt on All Characters\n", m_owner->tag(), 'A' + m_index); break; } @@ -932,40 +899,40 @@ void z80dart_channel::control_write(uint8_t data) // interrupt vector if (m_index == z80dart_device::CHANNEL_B) { - if(m_wr[1] & z80dart_channel::WR1_STATUS_VECTOR) + if(get_status_vector()) m_rr[2] = ( m_rr[2] & 0x0e ) | ( m_wr[2] & 0xF1); else m_rr[2] = m_wr[2]; } m_uart->check_interrupts(); - LOG(("Z80DART \"%s\" Channel %c : Interrupt Vector %02x\n", m_owner->tag(), 'A' + m_index, data)); + LOG("Z80DART \"%s\" Channel %c : Interrupt Vector %02x\n", m_owner->tag(), 'A' + m_index, data); break; case 3: - LOG(("Z80DART \"%s\" Channel %c : Receiver Enable %u\n", m_owner->tag(), 'A' + m_index, (data & WR3_RX_ENABLE) ? 1 : 0)); - LOG(("Z80DART \"%s\" Channel %c : Auto Enables %u\n", m_owner->tag(), 'A' + m_index, (data & WR3_AUTO_ENABLES) ? 1 : 0)); - LOG(("Z80DART \"%s\" Channel %c : Receiver Bits/Character %u\n", m_owner->tag(), 'A' + m_index, get_rx_word_length())); + LOG("Z80DART \"%s\" Channel %c : Receiver Enable %u\n", m_owner->tag(), 'A' + m_index, (data & WR3_RX_ENABLE) ? 1 : 0); + LOG("Z80DART \"%s\" Channel %c : Auto Enables %u\n", m_owner->tag(), 'A' + m_index, (data & WR3_AUTO_ENABLES) ? 1 : 0); + LOG("Z80DART \"%s\" Channel %c : Receiver Bits/Character %u\n", m_owner->tag(), 'A' + m_index, get_rx_word_length()); if (data != prev) update_serial(); break; case 4: - LOG(("Z80DART \"%s\" Channel %c : Parity Enable %u\n", m_owner->tag(), 'A' + m_index, (data & WR4_PARITY_ENABLE) ? 1 : 0)); - LOG(("Z80DART \"%s\" Channel %c : Parity %s\n", m_owner->tag(), 'A' + m_index, (data & WR4_PARITY_EVEN) ? "Even" : "Odd")); - LOG(("Z80DART \"%s\" Channel %c : Stop Bits %s\n", m_owner->tag(), 'A' + m_index, stop_bits_tostring(get_stop_bits()))); - LOG(("Z80DART \"%s\" Channel %c : Clock Mode %uX\n", m_owner->tag(), 'A' + m_index, get_clock_mode())); + LOG("Z80DART \"%s\" Channel %c : Parity Enable %u\n", m_owner->tag(), 'A' + m_index, (data & WR4_PARITY_ENABLE) ? 1 : 0); + LOG("Z80DART \"%s\" Channel %c : Parity %s\n", m_owner->tag(), 'A' + m_index, (data & WR4_PARITY_EVEN) ? "Even" : "Odd"); + LOG("Z80DART \"%s\" Channel %c : Stop Bits %s\n", m_owner->tag(), 'A' + m_index, stop_bits_tostring(get_stop_bits())); + LOG("Z80DART \"%s\" Channel %c : Clock Mode %uX\n", m_owner->tag(), 'A' + m_index, get_clock_mode()); if (data != prev) update_serial(); break; case 5: - LOG(("Z80DART \"%s\" Channel %c : Transmitter Enable %u\n", m_owner->tag(), 'A' + m_index, (data & WR5_TX_ENABLE) ? 1 : 0)); - LOG(("Z80DART \"%s\" Channel %c : Transmitter Bits/Character %u\n", m_owner->tag(), 'A' + m_index, get_tx_word_length())); - LOG(("Z80DART \"%s\" Channel %c : Send Break %u\n", m_owner->tag(), 'A' + m_index, (data & WR5_SEND_BREAK) ? 1 : 0)); - LOG(("Z80DART \"%s\" Channel %c : Request to Send %u\n", m_owner->tag(), 'A' + m_index, (data & WR5_RTS) ? 1 : 0)); - LOG(("Z80DART \"%s\" Channel %c : Data Terminal Ready %u\n", m_owner->tag(), 'A' + m_index, (data & WR5_DTR) ? 1 : 0)); + LOG("Z80DART \"%s\" Channel %c : Transmitter Enable %u\n", m_owner->tag(), 'A' + m_index, (data & WR5_TX_ENABLE) ? 1 : 0); + LOG("Z80DART \"%s\" Channel %c : Transmitter Bits/Character %u\n", m_owner->tag(), 'A' + m_index, get_tx_word_length()); + LOG("Z80DART \"%s\" Channel %c : Send Break %u\n", m_owner->tag(), 'A' + m_index, (data & WR5_SEND_BREAK) ? 1 : 0); + LOG("Z80DART \"%s\" Channel %c : Request to Send %u\n", m_owner->tag(), 'A' + m_index, (data & WR5_RTS) ? 1 : 0); + LOG("Z80DART \"%s\" Channel %c : Data Terminal Ready %u\n", m_owner->tag(), 'A' + m_index, (data & WR5_DTR) ? 1 : 0); if (data != prev) update_serial(); @@ -987,12 +954,12 @@ void z80dart_channel::control_write(uint8_t data) break; case 6: - LOG(("Z80DART \"%s\" Channel %c : Transmit Sync %02x\n", m_owner->tag(), 'A' + m_index, data)); + LOG("Z80DART \"%s\" Channel %c : Transmit Sync %02x\n", m_owner->tag(), 'A' + m_index, data); m_sync = (m_sync & 0xff00) | data; break; case 7: - LOG(("Z80DART \"%s\" Channel %c : Receive Sync %02x\n", m_owner->tag(), 'A' + m_index, data)); + LOG("Z80DART \"%s\" Channel %c : Receive Sync %02x\n", m_owner->tag(), 'A' + m_index, data); m_sync = (data << 8) | (m_sync & 0xff); break; } @@ -1022,7 +989,7 @@ uint8_t z80dart_channel::data_read() } } - LOG(("Z80DART \"%s\" Channel %c : Data Register Read '%02x'\n", m_owner->tag(), 'A' + m_index, data)); + LOG("Z80DART \"%s\" Channel %c : Data Register Read '%02x'\n", m_owner->tag(), 'A' + m_index, data); return data; } @@ -1038,7 +1005,7 @@ void z80dart_channel::data_write(uint8_t data) if ((m_wr[5] & WR5_TX_ENABLE) && is_transmit_register_empty()) { - LOG(("Z80DART \"%s\" Channel %c : Transmit Data Byte '%02x'\n", m_owner->tag(), 'A' + m_index, m_tx_data)); + LOG("Z80DART \"%s\" Channel %c : Transmit Data Byte '%02x'\n", m_owner->tag(), 'A' + m_index, m_tx_data); transmit_register_setup(m_tx_data); @@ -1055,7 +1022,7 @@ void z80dart_channel::data_write(uint8_t data) m_rr[1] &= ~RR1_ALL_SENT; - LOG(("Z80DART \"%s\" Channel %c : Data Register Write '%02x'\n", m_owner->tag(), 'A' + m_index, data)); + LOG("Z80DART \"%s\" Channel %c : Data Register Write '%02x'\n", m_owner->tag(), 'A' + m_index, data); } @@ -1065,7 +1032,7 @@ void z80dart_channel::data_write(uint8_t data) void z80dart_channel::receive_data(uint8_t data) { - LOG(("Z80DART \"%s\" Channel %c : Receive Data Byte '%02x'\n", m_owner->tag(), 'A' + m_index, data)); + LOG("Z80DART \"%s\" Channel %c : Receive Data Byte '%02x'\n", m_owner->tag(), 'A' + m_index, data); if (m_rx_data_fifo.full()) { @@ -1125,7 +1092,7 @@ void z80dart_channel::receive_data(uint8_t data) WRITE_LINE_MEMBER( z80dart_channel::cts_w ) { - LOG(("Z80DART \"%s\" Channel %c : CTS %u\n", m_owner->tag(), 'A' + m_index, state)); + LOG("Z80DART \"%s\" Channel %c : CTS %u\n", m_owner->tag(), 'A' + m_index, state); if (m_cts != state) { @@ -1164,7 +1131,7 @@ WRITE_LINE_MEMBER( z80dart_channel::cts_w ) WRITE_LINE_MEMBER( z80dart_channel::dcd_w ) { - LOG(("Z80DART \"%s\" Channel %c : DCD %u\n", m_owner->tag(), 'A' + m_index, state)); + LOG("Z80DART \"%s\" Channel %c : DCD %u\n", m_owner->tag(), 'A' + m_index, state); if (m_dcd != state) { @@ -1202,7 +1169,7 @@ WRITE_LINE_MEMBER( z80dart_channel::dcd_w ) WRITE_LINE_MEMBER( z80dart_channel::ri_w ) { - LOG(("Z80DART \"%s\" Channel %c : RI %u\n", m_owner->tag(), 'A' + m_index, state)); + LOG("Z80DART \"%s\" Channel %c : RI %u\n", m_owner->tag(), 'A' + m_index, state); if (m_ri != state) { @@ -1235,7 +1202,7 @@ WRITE_LINE_MEMBER( z80dart_channel::ri_w ) WRITE_LINE_MEMBER( z80dart_channel::sync_w ) { - LOG(("Z80DART \"%s\" Channel %c : SYNC %u\n", m_owner->tag(), 'A' + m_index, state)); + LOG("Z80DART \"%s\" Channel %c : SYNC %u\n", m_owner->tag(), 'A' + m_index, state); } @@ -1245,7 +1212,7 @@ WRITE_LINE_MEMBER( z80dart_channel::sync_w ) WRITE_LINE_MEMBER( z80dart_channel::rxc_w ) { - //LOG(("Z80DART \"%s\" Channel %c : Receiver Clock Pulse\n", m_owner->tag(), m_index + 'A')); + //LOG("Z80DART \"%s\" Channel %c : Receiver Clock Pulse\n", m_owner->tag(), m_index + 'A'); int clocks = get_clock_mode(); if (clocks == 1) rx_clock_w(state); @@ -1267,7 +1234,7 @@ WRITE_LINE_MEMBER( z80dart_channel::rxc_w ) WRITE_LINE_MEMBER( z80dart_channel::txc_w ) { - //LOG(("Z80DART \"%s\" Channel %c : Transmitter Clock Pulse\n", m_owner->tag(), m_index + 'A')); + //LOG("Z80DART \"%s\" Channel %c : Transmitter Clock Pulse\n", m_owner->tag(), m_index + 'A'); int clocks = get_clock_mode(); if (clocks == 1) tx_clock_w(state); diff --git a/src/devices/machine/z80dart.h b/src/devices/machine/z80dart.h index 74dde60a269..2d391de37f4 100644 --- a/src/devices/machine/z80dart.h +++ b/src/devices/machine/z80dart.h @@ -142,8 +142,10 @@ ***************************************************************************/ -#ifndef __Z80DART_H__ -#define __Z80DART_H__ +#ifndef MAME_MACHINE_Z80DART_H +#define MAME_MACHINE_Z80DART_H + +#pragma once #include "cpu/z80/z80daisy.h" @@ -245,11 +247,45 @@ class z80dart_device; class z80dart_channel : public device_t, public device_serial_interface { - friend class z80dart_device; - + friend class z80dart_device; // FIXME: still accesses m_rr and m_wr directly in a couple of places public: + enum + { + INT_TRANSMIT = 0, + INT_EXTERNAL, + INT_RECEIVE, + INT_SPECIAL + }; + z80dart_channel(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + DECLARE_WRITE_LINE_MEMBER( write_rx ); + DECLARE_WRITE_LINE_MEMBER( cts_w ); + DECLARE_WRITE_LINE_MEMBER( dcd_w ); + DECLARE_WRITE_LINE_MEMBER( ri_w ); + DECLARE_WRITE_LINE_MEMBER( rxc_w ); + DECLARE_WRITE_LINE_MEMBER( txc_w ); + DECLARE_WRITE_LINE_MEMBER( sync_w ); + + uint8_t control_read(); + void control_write(uint8_t data); + + uint8_t data_read(); + void data_write(uint8_t data); + + void set_rxc(int rxc) { m_rxc = rxc; } + void set_txc(int txc) { m_txc = txc; } + + void clr_interrupt_pending() { m_rr[0] &= ~RR0_INTERRUPT_PENDING; } + void set_interrupt_pending() { m_rr[0] |= RR0_INTERRUPT_PENDING; } + + uint8_t get_vector() const { return m_rr[2]; } + void set_vector(uint8_t vector) { m_rr[2] = vector; } + + bool get_status_vector() const { return m_wr[1] & WR1_STATUS_VECTOR; } + bool get_priority() const { return m_wr[2] & WR2_PRIORITY; } + +protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -261,22 +297,8 @@ public: virtual void rcv_callback() override; virtual void rcv_complete() override; - uint8_t control_read(); - void control_write(uint8_t data); - - uint8_t data_read(); - void data_write(uint8_t data); - void receive_data(uint8_t data); - DECLARE_WRITE_LINE_MEMBER( write_rx ); - DECLARE_WRITE_LINE_MEMBER( cts_w ); - DECLARE_WRITE_LINE_MEMBER( dcd_w ); - DECLARE_WRITE_LINE_MEMBER( ri_w ); - DECLARE_WRITE_LINE_MEMBER( rxc_w ); - DECLARE_WRITE_LINE_MEMBER( txc_w ); - DECLARE_WRITE_LINE_MEMBER( sync_w ); - int m_rxc; int m_txc; @@ -284,15 +306,6 @@ public: uint8_t m_rr[3]; // read register uint8_t m_wr[6]; // write register -protected: - enum - { - INT_TRANSMIT = 0, - INT_EXTERNAL, - INT_RECEIVE, - INT_SPECIAL - }; - enum { RR0_RX_CHAR_AVAILABLE = 0x01, @@ -465,24 +478,23 @@ class z80dart_device : public device_t, public: // construction/destruction - z80dart_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, uint32_t variant, const char *shortname, const char *source); z80dart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_out_txda_callback(device_t &device, _Object object) { return downcast(device).m_out_txda_cb.set_callback(object); } - template static devcb_base &set_out_dtra_callback(device_t &device, _Object object) { return downcast(device).m_out_dtra_cb.set_callback(object); } - template static devcb_base &set_out_rtsa_callback(device_t &device, _Object object) { return downcast(device).m_out_rtsa_cb.set_callback(object); } - template static devcb_base &set_out_wrdya_callback(device_t &device, _Object object) { return downcast(device).m_out_wrdya_cb.set_callback(object); } - template static devcb_base &set_out_synca_callback(device_t &device, _Object object) { return downcast(device).m_out_synca_cb.set_callback(object); } - template static devcb_base &set_out_txdb_callback(device_t &device, _Object object) { return downcast(device).m_out_txdb_cb.set_callback(object); } - template static devcb_base &set_out_dtrb_callback(device_t &device, _Object object) { return downcast(device).m_out_dtrb_cb.set_callback(object); } - template static devcb_base &set_out_rtsb_callback(device_t &device, _Object object) { return downcast(device).m_out_rtsb_cb.set_callback(object); } - template static devcb_base &set_out_wrdyb_callback(device_t &device, _Object object) { return downcast(device).m_out_wrdyb_cb.set_callback(object); } - template static devcb_base &set_out_syncb_callback(device_t &device, _Object object) { return downcast(device).m_out_syncb_cb.set_callback(object); } - template static devcb_base &set_out_int_callback(device_t &device, _Object object) { return downcast(device).m_out_int_cb.set_callback(object); } - template static devcb_base &set_out_rxdrqa_callback(device_t &device, _Object object) { return downcast(device).m_out_rxdrqa_cb.set_callback(object); } - template static devcb_base &set_out_txdrqa_callback(device_t &device, _Object object) { return downcast(device).m_out_txdrqa_cb.set_callback(object); } - template static devcb_base &set_out_rxdrqb_callback(device_t &device, _Object object) { return downcast(device).m_out_rxdrqb_cb.set_callback(object); } - template static devcb_base &set_out_txdrqb_callback(device_t &device, _Object object) { return downcast(device).m_out_txdrqb_cb.set_callback(object); } + template static devcb_base &set_out_txda_callback(device_t &device, Object &&cb) { return downcast(device).m_out_txda_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_dtra_callback(device_t &device, Object &&cb) { return downcast(device).m_out_dtra_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_rtsa_callback(device_t &device, Object &&cb) { return downcast(device).m_out_rtsa_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_wrdya_callback(device_t &device, Object &&cb) { return downcast(device).m_out_wrdya_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_synca_callback(device_t &device, Object &&cb) { return downcast(device).m_out_synca_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_txdb_callback(device_t &device, Object &&cb) { return downcast(device).m_out_txdb_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_dtrb_callback(device_t &device, Object &&cb) { return downcast(device).m_out_dtrb_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_rtsb_callback(device_t &device, Object &&cb) { return downcast(device).m_out_rtsb_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_wrdyb_callback(device_t &device, Object &&cb) { return downcast(device).m_out_wrdyb_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_syncb_callback(device_t &device, Object &&cb) { return downcast(device).m_out_syncb_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_int_callback(device_t &device, Object &&cb) { return downcast(device).m_out_int_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_rxdrqa_callback(device_t &device, Object &&cb) { return downcast(device).m_out_rxdrqa_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_txdrqa_callback(device_t &device, Object &&cb) { return downcast(device).m_out_txdrqa_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_rxdrqb_callback(device_t &device, Object &&cb) { return downcast(device).m_out_rxdrqb_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_txdrqb_callback(device_t &device, Object &&cb) { return downcast(device).m_out_txdrqb_cb.set_callback(std::forward(cb)); } static void configure_channels(device_t &device, int rxa, int txa, int rxb, int txb) { @@ -528,6 +540,8 @@ public: DECLARE_WRITE_LINE_MEMBER( syncb_w ) { m_chanB->sync_w(state); } protected: + z80dart_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint32_t variant); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -591,13 +605,13 @@ protected: int m_int_state[8]; // interrupt state - int m_variant; + int const m_variant; }; // ======================> z80sio0_device -class z80sio0_device : public z80dart_device +class z80sio0_device : public z80dart_device { public: // construction/destruction @@ -668,15 +682,14 @@ public: // device type definition -extern const device_type Z80DART_CHANNEL; -extern const device_type Z80DART; -extern const device_type Z80SIO0; -extern const device_type Z80SIO1; -extern const device_type Z80SIO2; -extern const device_type Z80SIO3; -extern const device_type Z80SIO4; -extern const device_type I8274; -extern const device_type UPD7201; - - -#endif +DECLARE_DEVICE_TYPE(Z80DART_CHANNEL, z80dart_channel) +DECLARE_DEVICE_TYPE(Z80DART, z80dart_device) +DECLARE_DEVICE_TYPE(Z80SIO0, z80sio0_device) +DECLARE_DEVICE_TYPE(Z80SIO1, z80sio1_device) +DECLARE_DEVICE_TYPE(Z80SIO2, z80sio2_device) +DECLARE_DEVICE_TYPE(Z80SIO3, z80sio3_device) +DECLARE_DEVICE_TYPE(Z80SIO4, z80sio4_device) +DECLARE_DEVICE_TYPE(I8274, i8274_device) +DECLARE_DEVICE_TYPE(UPD7201, upd7201_device) + +#endif // MAME_MACHINE_Z80DART_H diff --git a/src/devices/machine/z80dma.cpp b/src/devices/machine/z80dma.cpp index 782f7d75ee7..831c20e7aff 100644 --- a/src/devices/machine/z80dma.cpp +++ b/src/devices/machine/z80dma.cpp @@ -25,8 +25,14 @@ #include "emu.h" #include "z80dma.h" -#include "cpu/z80/z80daisy.h" +#define LOG_GENERAL (1U << 0) +#define LOG_DMA (1U << 1) + +//#define VERBOSE (LOG_GENERAL | LOG_DMA) +#include "logmacro.h" + +#define LOGDMA(...) LOGMASKED(LOG_DMA, __VA_ARGS__) //************************************************************************** // CONSTANTS @@ -40,26 +46,26 @@ enum INT_MATCH_END_OF_BLOCK }; -const int COMMAND_RESET = 0xc3; -const int COMMAND_RESET_PORT_A_TIMING = 0xc7; -const int COMMAND_RESET_PORT_B_TIMING = 0xcb; -const int COMMAND_LOAD = 0xcf; -const int COMMAND_CONTINUE = 0xd3; -const int COMMAND_DISABLE_INTERRUPTS = 0xaf; -const int COMMAND_ENABLE_INTERRUPTS = 0xab; -const int COMMAND_RESET_AND_DISABLE_INTERRUPTS = 0xa3; -const int COMMAND_ENABLE_AFTER_RETI = 0xb7; -const int COMMAND_READ_STATUS_BYTE = 0xbf; -const int COMMAND_REINITIALIZE_STATUS_BYTE = 0x8b; -const int COMMAND_INITIATE_READ_SEQUENCE = 0xa7; -const int COMMAND_FORCE_READY = 0xb3; -const int COMMAND_ENABLE_DMA = 0x87; -const int COMMAND_DISABLE_DMA = 0x83; -const int COMMAND_READ_MASK_FOLLOWS = 0xbb; - -const int TM_TRANSFER = 0x01; -const int TM_SEARCH = 0x02; -const int TM_SEARCH_TRANSFER = 0x03; +constexpr int COMMAND_RESET = 0xc3; +constexpr int COMMAND_RESET_PORT_A_TIMING = 0xc7; +constexpr int COMMAND_RESET_PORT_B_TIMING = 0xcb; +constexpr int COMMAND_LOAD = 0xcf; +constexpr int COMMAND_CONTINUE = 0xd3; +constexpr int COMMAND_DISABLE_INTERRUPTS = 0xaf; +constexpr int COMMAND_ENABLE_INTERRUPTS = 0xab; +constexpr int COMMAND_RESET_AND_DISABLE_INTERRUPTS = 0xa3; +constexpr int COMMAND_ENABLE_AFTER_RETI = 0xb7; +constexpr int COMMAND_READ_STATUS_BYTE = 0xbf; +constexpr int COMMAND_REINITIALIZE_STATUS_BYTE = 0x8b; +constexpr int COMMAND_INITIATE_READ_SEQUENCE = 0xa7; +constexpr int COMMAND_FORCE_READY = 0xb3; +constexpr int COMMAND_ENABLE_DMA = 0x87; +constexpr int COMMAND_DISABLE_DMA = 0x83; +constexpr int COMMAND_READ_MASK_FOLLOWS = 0xbb; + +constexpr int TM_TRANSFER = 0x01; +constexpr int TM_SEARCH = 0x02; +constexpr int TM_SEARCH_TRANSFER = 0x03; @@ -67,9 +73,6 @@ const int TM_SEARCH_TRANSFER = 0x03; // MACROS //************************************************************************** -#define LOG 0 -#define DMA_LOG 0 - #define REGNUM(_m, _s) (((_m)<<3) + (_s)) #define GET_REGNUM(_r) (&(_r) - &(WR0)) #define REG(_m, _s) m_regs[REGNUM(_m,_s)] @@ -140,22 +143,22 @@ const int TM_SEARCH_TRANSFER = 0x03; //************************************************************************** // device type definition -const device_type Z80DMA = device_creator; +DEFINE_DEVICE_TYPE(Z80DMA, z80dma_device, "z80dma", "Z80 DMA Controller") //------------------------------------------------- // z80dma_device - constructor //------------------------------------------------- z80dma_device::z80dma_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, Z80DMA, "Z80 DMA", tag, owner, clock, "z80dma", __FILE__), - device_z80daisy_interface(mconfig, *this), - m_out_busreq_cb(*this), - m_out_int_cb(*this), - m_out_bao_cb(*this), - m_in_mreq_cb(*this), - m_out_mreq_cb(*this), - m_in_iorq_cb(*this), - m_out_iorq_cb(*this) + : device_t(mconfig, Z80DMA, tag, owner, clock) + , device_z80daisy_interface(mconfig, *this) + , m_out_busreq_cb(*this) + , m_out_int_cb(*this) + , m_out_bao_cb(*this) + , m_in_mreq_cb(*this) + , m_out_mreq_cb(*this) + , m_in_iorq_cb(*this) + , m_out_iorq_cb(*this) { } @@ -251,7 +254,7 @@ int z80dma_device::z80daisy_irq_state() state = Z80_DAISY_IEO; } - if (LOG) logerror("Z80DMA '%s' Interrupt State: %u\n", tag(), state); + LOG("Z80DMA Interrupt State: %u\n", state); return state; } @@ -266,7 +269,7 @@ int z80dma_device::z80daisy_irq_ack() { if (m_ip) { - if (LOG) logerror("Z80DMA '%s' Interrupt Acknowledge\n", tag()); + LOG("Z80DMA Interrupt Acknowledge\n"); // clear interrupt pending flag m_ip = 0; @@ -293,7 +296,7 @@ void z80dma_device::z80daisy_irq_reti() { if (m_ius) { - if (LOG) logerror("Z80DMA '%s' Return from Interrupt\n", tag()); + LOG("Z80DMA Return from Interrupt\n"); // clear interrupt under service flag m_ius = 0; @@ -354,7 +357,7 @@ void z80dma_device::trigger_interrupt(int level) m_status &= ~0x08; - if (LOG) logerror("Z80DMA '%s' Interrupt Pending\n", tag()); + LOG("Z80DMA Interrupt Pending\n"); interrupt_check(); } @@ -381,7 +384,7 @@ void z80dma_device::do_read() else m_latch = m_in_iorq_cb(m_addressA); - if (DMA_LOG) logerror("Z80DMA '%s' A src: %04x %s -> data: %02x\n", tag(), m_addressA, PORTA_MEMORY ? "mem" : "i/o", m_latch); + LOGDMA("Z80DMA A src: %04x %s -> data: %02x\n", m_addressA, PORTA_MEMORY ? "mem" : "i/o", m_latch); } else { @@ -390,7 +393,7 @@ void z80dma_device::do_read() else m_latch = m_in_iorq_cb(m_addressB); - if (DMA_LOG) logerror("Z80DMA '%s' B src: %04x %s -> data: %02x\n", tag(), m_addressB, PORTB_MEMORY ? "mem" : "i/o", m_latch); + LOGDMA("Z80DMA B src: %04x %s -> data: %02x\n", m_addressB, PORTB_MEMORY ? "mem" : "i/o", m_latch); } break; default: @@ -413,7 +416,7 @@ void z80dma_device::do_transfer_write() else m_out_iorq_cb((offs_t)m_addressB, m_latch); - if (DMA_LOG) logerror("Z80DMA '%s' B dst: %04x %s\n", tag(), m_addressB, PORTB_MEMORY ? "mem" : "i/o"); + LOGDMA("Z80DMA B dst: %04x %s\n", m_addressB, PORTB_MEMORY ? "mem" : "i/o"); } else { @@ -422,7 +425,7 @@ void z80dma_device::do_transfer_write() else m_out_iorq_cb((offs_t)m_addressA, m_latch); - if (DMA_LOG) logerror("Z80DMA '%s' A dst: %04x %s\n", tag(), m_addressA, PORTA_MEMORY ? "mem" : "i/o"); + LOGDMA("Z80DMA A dst: %04x %s\n", m_addressA, PORTA_MEMORY ? "mem" : "i/o"); } } @@ -431,7 +434,7 @@ void z80dma_device::do_search() uint8_t load_byte,match_byte; load_byte = m_latch | MASK_BYTE; match_byte = MATCH_BYTE | MASK_BYTE; - //if (LOG) logerror("%02x %02x\n",load_byte,match_byte)); + //LOG("%02x %02x\n",load_byte,match_byte)); if (load_byte == match_byte) { if (INT_ON_MATCH) @@ -524,7 +527,7 @@ TIMER_CALLBACK_MEMBER(z80dma_device::timerproc) if(TRANSFER_MODE == TM_TRANSFER) m_status |= 0x10; // no match found update_status(); - if (LOG) logerror("Z80DMA '%s' End of Block\n", tag()); + LOG("Z80DMA End of Block\n"); if (INT_ON_END_OF_BLOCK) { @@ -533,7 +536,7 @@ TIMER_CALLBACK_MEMBER(z80dma_device::timerproc) if (AUTO_RESTART) { - if (LOG) logerror("Z80DMA '%s' Auto Restart\n", tag()); + LOG("Z80DMA Auto Restart\n"); m_dma_enabled = 1; m_addressA = PORTA_ADDRESS; @@ -606,7 +609,7 @@ uint8_t z80dma_device::read() if(m_read_cur_follow >= m_read_num_follow) m_read_cur_follow = 0; - if (LOG) logerror("Z80DMA '%s' Read %02x\n", tag(), res); + LOG("Z80DMA Read %02x\n", res); return res; } @@ -624,21 +627,21 @@ void z80dma_device::write(uint8_t data) if ((data & 0x87) == 0) // WR2 { - if (LOG) logerror("Z80DMA '%s' WR2 %02x\n", tag(), data); + LOG("Z80DMA WR2 %02x\n", data); WR2 = data; if (data & 0x40) m_regs_follow[m_num_follow++] = GET_REGNUM(PORTB_TIMING); } else if ((data & 0x87) == 0x04) // WR1 { - if (LOG) logerror("Z80DMA '%s' WR1 %02x\n", tag(), data); + LOG("Z80DMA WR1 %02x\n", data); WR1 = data; if (data & 0x40) m_regs_follow[m_num_follow++] = GET_REGNUM(PORTA_TIMING); } else if ((data & 0x80) == 0) // WR0 { - if (LOG) logerror("Z80DMA '%s' WR0 %02x\n", tag(), data); + LOG("Z80DMA WR0 %02x\n", data); WR0 = data; if (data & 0x08) m_regs_follow[m_num_follow++] = GET_REGNUM(PORTA_ADDRESS_L); @@ -651,7 +654,7 @@ void z80dma_device::write(uint8_t data) } else if ((data & 0x83) == 0x80) // WR3 { - if (LOG) logerror("Z80DMA '%s' WR3 %02x\n", tag(), data); + LOG("Z80DMA WR3 %02x\n", data); WR3 = data; if (data & 0x08) m_regs_follow[m_num_follow++] = GET_REGNUM(MASK_BYTE); @@ -660,7 +663,7 @@ void z80dma_device::write(uint8_t data) } else if ((data & 0x83) == 0x81) // WR4 { - if (LOG) logerror("Z80DMA '%s' WR4 %02x\n", tag(), data); + LOG("Z80DMA WR4 %02x\n", data); WR4 = data; if (data & 0x04) m_regs_follow[m_num_follow++] = GET_REGNUM(PORTB_ADDRESS_L); @@ -671,12 +674,12 @@ void z80dma_device::write(uint8_t data) } else if ((data & 0xC7) == 0x82) // WR5 { - if (LOG) logerror("Z80DMA '%s' WR5 %02x\n", tag(), data); + LOG("Z80DMA WR5 %02x\n", data); WR5 = data; } else if ((data & 0x83) == 0x83) // WR6 { - if (LOG) logerror("Z80DMA '%s' WR6 %02x\n", tag(), data); + LOG("Z80DMA WR6 %02x\n", data); m_dma_enabled = 0; WR6 = data; @@ -686,7 +689,7 @@ void z80dma_device::write(uint8_t data) case COMMAND_ENABLE_AFTER_RETI: fatalerror("Z80DMA '%s' Unimplemented WR6 command %02x\n", tag(), data); case COMMAND_READ_STATUS_BYTE: - if (LOG) logerror("Z80DMA '%s' CMD Read status Byte\n", tag()); + LOG("Z80DMA CMD Read status Byte\n"); READ_MASK = 1; m_read_regs_follow[0] = m_status; break; @@ -698,7 +701,7 @@ void z80dma_device::write(uint8_t data) m_status |= 0x08; break; case COMMAND_INITIATE_READ_SEQUENCE: - if (LOG) logerror("Z80DMA '%s' Initiate Read Sequence\n", tag()); + LOG("Z80DMA Initiate Read Sequence\n"); m_read_cur_follow = m_read_num_follow = 0; if(READ_MASK & 0x01) { m_read_regs_follow[m_read_num_follow++] = m_status; } if(READ_MASK & 0x02) { m_read_regs_follow[m_read_num_follow++] = m_count & 0xff; } //byte counter (low) @@ -709,7 +712,7 @@ void z80dma_device::write(uint8_t data) if(READ_MASK & 0x40) { m_read_regs_follow[m_read_num_follow++] = m_addressB >> 8; } //port B address (high) break; case COMMAND_RESET: - if (LOG) logerror("Z80DMA '%s' Reset\n", tag()); + LOG("Z80DMA Reset\n"); m_dma_enabled = 0; m_force_ready = 0; m_ip = 0; @@ -734,71 +737,71 @@ void z80dma_device::write(uint8_t data) m_count = BLOCKLEN; m_status |= 0x30; - if (LOG) logerror("Z80DMA '%s' Load A: %x B: %x N: %x\n", tag(), m_addressA, m_addressB, m_count); + LOG("Z80DMA Load A: %x B: %x N: %x\n", m_addressA, m_addressB, m_count); break; case COMMAND_DISABLE_DMA: - if (LOG) logerror("Z80DMA '%s' Disable DMA\n", tag()); + LOG("Z80DMA Disable DMA\n"); m_dma_enabled = 0; break; case COMMAND_ENABLE_DMA: - if (LOG) logerror("Z80DMA '%s' Enable DMA\n", tag()); + LOG("Z80DMA Enable DMA\n"); m_dma_enabled = 1; update_status(); break; case COMMAND_READ_MASK_FOLLOWS: - if (LOG) logerror("Z80DMA '%s' Set Read Mask\n", tag()); + LOG("Z80DMA Set Read Mask\n"); m_regs_follow[m_num_follow++] = GET_REGNUM(READ_MASK); break; case COMMAND_CONTINUE: - if (LOG) logerror("Z80DMA '%s' Continue\n", tag()); + LOG("Z80DMA Continue\n"); m_count = BLOCKLEN; m_dma_enabled = 1; //"match not found" & "end of block" status flags zeroed here m_status |= 0x30; break; case COMMAND_RESET_PORT_A_TIMING: - if (LOG) logerror("Z80DMA '%s' Reset Port A Timing\n", tag()); + LOG("Z80DMA Reset Port A Timing\n"); PORTA_TIMING = 0; break; case COMMAND_RESET_PORT_B_TIMING: - if (LOG) logerror("Z80DMA '%s' Reset Port B Timing\n", tag()); + LOG("Z80DMA Reset Port B Timing\n"); PORTB_TIMING = 0; break; case COMMAND_FORCE_READY: - if (LOG) logerror("Z80DMA '%s' Force Ready\n", tag()); + LOG("Z80DMA Force Ready\n"); m_force_ready = 1; update_status(); break; case COMMAND_ENABLE_INTERRUPTS: - if (LOG) logerror("Z80DMA '%s' Enable IRQ\n", tag()); + LOG("Z80DMA Enable IRQ\n"); WR3 |= 0x20; break; case COMMAND_DISABLE_INTERRUPTS: - if (LOG) logerror("Z80DMA '%s' Disable IRQ\n", tag()); + LOG("Z80DMA Disable IRQ\n"); WR3 &= ~0x20; break; case COMMAND_REINITIALIZE_STATUS_BYTE: - if (LOG) logerror("Z80DMA '%s' Reinitialize status byte\n", tag()); + LOG("Z80DMA Reinitialize status byte\n"); m_status |= 0x30; m_ip = 0; break; case 0xFB: case 0xFF: // TODO: p8k triggers this, it probably crashed. - if (LOG) logerror("Z80DMA '%s' undocumented command triggered 0x%02X!\n", tag(), data); + LOG("Z80DMA undocumented command triggered 0x%02X!\n", data); break; default: - printf("Z80DMA '%s' Unknown WR6 command %02x\n", tag(), data); + logerror("Z80DMA Unknown WR6 command %02x\n", data); } } else if(data == 0x8e) //newtype on Sharp X1, unknown purpose - printf("Z80DMA '%s' Unknown base register %02x\n", tag(), data); + logerror("Z80DMA Unknown base register %02x\n", data); else fatalerror("Z80DMA '%s' Unknown base register %02x\n", tag(), data); m_cur_follow = 0; } else { - if (LOG) logerror("Z80DMA '%s' Write %02x\n", tag(), data); + LOG("Z80DMA Write %02x\n", data); int nreg = m_regs_follow[m_cur_follow]; m_regs[nreg] = data; @@ -858,7 +861,7 @@ TIMER_CALLBACK_MEMBER(z80dma_device::rdy_write_callback) WRITE_LINE_MEMBER(z80dma_device::rdy_w) { - if (LOG) logerror("Z80DMA '%s' RDY: %d Active High: %d\n", tag(), state, READY_ACTIVE_HIGH); + LOG("Z80DMA RDY: %d Active High: %d\n", state, READY_ACTIVE_HIGH); machine().scheduler().synchronize(timer_expired_delegate(FUNC(z80dma_device::rdy_write_callback),this), state); } diff --git a/src/devices/machine/z80dma.h b/src/devices/machine/z80dma.h index 7080854ef5f..ca9ec83ff0a 100644 --- a/src/devices/machine/z80dma.h +++ b/src/devices/machine/z80dma.h @@ -29,8 +29,10 @@ ***************************************************************************/ -#ifndef __Z80DMA__ -#define __Z80DMA__ +#ifndef MAME_MACHINE_Z80DMA_H +#define MAME_MACHINE_Z80DMA_H + +#pragma once #include "cpu/z80/z80daisy.h" @@ -75,13 +77,13 @@ public: // construction/destruction z80dma_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_out_busreq_callback(device_t &device, _Object object) { return downcast(device).m_out_busreq_cb.set_callback(object); } - template static devcb_base &set_out_int_callback(device_t &device, _Object object) { return downcast(device).m_out_int_cb.set_callback(object); } - template static devcb_base &set_out_bao_callback(device_t &device, _Object object) { return downcast(device).m_out_bao_cb.set_callback(object); } - template static devcb_base &set_in_mreq_callback(device_t &device, _Object object) { return downcast(device).m_in_mreq_cb.set_callback(object); } - template static devcb_base &set_out_mreq_callback(device_t &device, _Object object) { return downcast(device).m_out_mreq_cb.set_callback(object); } - template static devcb_base &set_in_iorq_callback(device_t &device, _Object object) { return downcast(device).m_in_iorq_cb.set_callback(object); } - template static devcb_base &set_out_iorq_callback(device_t &device, _Object object) { return downcast(device).m_out_iorq_cb.set_callback(object); } + template static devcb_base &set_out_busreq_callback(device_t &device, Object &&cb) { return downcast(device).m_out_busreq_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_int_callback(device_t &device, Object &&cb) { return downcast(device).m_out_int_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_bao_callback(device_t &device, Object &&cb) { return downcast(device).m_out_bao_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_in_mreq_callback(device_t &device, Object &&cb) { return downcast(device).m_in_mreq_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_mreq_callback(device_t &device, Object &&cb) { return downcast(device).m_out_mreq_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_in_iorq_callback(device_t &device, Object &&cb) { return downcast(device).m_in_iorq_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_iorq_callback(device_t &device, Object &&cb) { return downcast(device).m_out_iorq_cb.set_callback(std::forward(cb)); } uint8_t read(); void write(uint8_t data); @@ -159,5 +161,6 @@ private: // device type definition extern const device_type Z80DMA; +DECLARE_DEVICE_TYPE(Z80DMA, z80dma_device) -#endif +#endif // MAME_MACHINE_Z80DMA_H diff --git a/src/devices/machine/z80pio.cpp b/src/devices/machine/z80pio.cpp index bfa58c80f84..b4a3ce133ce 100644 --- a/src/devices/machine/z80pio.cpp +++ b/src/devices/machine/z80pio.cpp @@ -16,7 +16,6 @@ #include "emu.h" #include "z80pio.h" -#include "cpu/z80/z80daisy.h" //************************************************************************** @@ -32,14 +31,14 @@ //************************************************************************** // device type definition -const device_type Z80PIO = device_creator; +DEFINE_DEVICE_TYPE(Z80PIO, z80pio_device, "z80pio", "Z80 PIO") //------------------------------------------------- // z80pio_device - constructor //------------------------------------------------- z80pio_device::z80pio_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, Z80PIO, "Z80 PIO", tag, owner, clock, "z80pio", __FILE__), + device_t(mconfig, Z80PIO, tag, owner, clock), device_z80daisy_interface(mconfig, *this), m_out_int_cb(*this), m_in_pa_cb(*this), diff --git a/src/devices/machine/z80pio.h b/src/devices/machine/z80pio.h index bc8cbf531f7..7ac9f3a2f3a 100644 --- a/src/devices/machine/z80pio.h +++ b/src/devices/machine/z80pio.h @@ -29,8 +29,10 @@ ***************************************************************************/ -#ifndef __Z80PIO__ -#define __Z80PIO__ +#ifndef MAME_MACHINE_Z80PIO_H +#define MAME_MACHINE_Z80PIO_H + +#pragma once #include "cpu/z80/z80daisy.h" @@ -82,13 +84,13 @@ public: // construction/destruction z80pio_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_out_int_callback(device_t &device, _Object object) { return downcast(device).m_out_int_cb.set_callback(object); } - template static devcb_base &set_in_pa_callback(device_t &device, _Object object) { return downcast(device).m_in_pa_cb.set_callback(object); } - template static devcb_base &set_out_pa_callback(device_t &device, _Object object) { return downcast(device).m_out_pa_cb.set_callback(object); } - template static devcb_base &set_out_ardy_callback(device_t &device, _Object object) { return downcast(device).m_out_ardy_cb.set_callback(object); } - template static devcb_base &set_in_pb_callback(device_t &device, _Object object) { return downcast(device).m_in_pb_cb.set_callback(object); } - template static devcb_base &set_out_pb_callback(device_t &device, _Object object) { return downcast(device).m_out_pb_cb.set_callback(object); } - template static devcb_base &set_out_brdy_callback(device_t &device, _Object object) { return downcast(device).m_out_brdy_cb.set_callback(object); } + template static devcb_base &set_out_int_callback(device_t &device, Object &&cb) { return downcast(device).m_out_int_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_in_pa_callback(device_t &device, Object &&cb) { return downcast(device).m_in_pa_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_pa_callback(device_t &device, Object &&cb) { return downcast(device).m_out_pa_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_ardy_callback(device_t &device, Object &&cb) { return downcast(device).m_out_ardy_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_in_pb_callback(device_t &device, Object &&cb) { return downcast(device).m_in_pb_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_pb_callback(device_t &device, Object &&cb) { return downcast(device).m_out_pb_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_brdy_callback(device_t &device, Object &&cb) { return downcast(device).m_out_brdy_cb.set_callback(std::forward(cb)); } // I/O line access int rdy(int which) { return m_port[which].rdy(); } @@ -254,7 +256,6 @@ private: // device type definition -extern const device_type Z80PIO; - +DECLARE_DEVICE_TYPE(Z80PIO, z80pio_device) -#endif +#endif // MAME_MACHINE_Z80PIO_H diff --git a/src/devices/machine/z80scc.cpp b/src/devices/machine/z80scc.cpp index 68b53b73493..f6f6ccfc920 100644 --- a/src/devices/machine/z80scc.cpp +++ b/src/devices/machine/z80scc.cpp @@ -119,7 +119,7 @@ DONE (x) (p=partly) NMOS CMOS ESCC EMSCC #endif /* LOCAL _BRG is set in z80scc.h, local timer based BRG is not complete and will be removed if not needed for synchrounous mode */ -#if LOCAL_BRG +#if Z80SCC_USE_LOCAL_BRG #define START_BIT_HUNT 1 #define START_BIT_ADJUST 1 #else @@ -134,16 +134,16 @@ DONE (x) (p=partly) NMOS CMOS ESCC EMSCC // DEVICE DEFINITIONS //************************************************************************** // device type definition -const device_type Z80SCC = device_creator; -const device_type Z80SCC_CHANNEL = device_creator; -const device_type SCC8030 = device_creator; -const device_type SCC80C30 = device_creator; -const device_type SCC80230 = device_creator; -const device_type SCC8530N = device_creator; // remove trailing N when 8530scc.c is fully replaced and removed -const device_type SCC85C30 = device_creator; -const device_type SCC85230 = device_creator; -const device_type SCC85233 = device_creator; -const device_type SCC8523L = device_creator; +DEFINE_DEVICE_TYPE(Z80SCC, z80scc_device, "z80scc", "Z80 SCC") +DEFINE_DEVICE_TYPE(Z80SCC_CHANNEL, z80scc_channel, "z80scc_channel", "Z80 SCC Channel") +DEFINE_DEVICE_TYPE(SCC8030, scc8030_device, "scc8030", "Zilog Z8030 SCC") +DEFINE_DEVICE_TYPE(SCC80C30, scc80c30_device, "scc80c30", "Zilog Z80C30 SCC") +DEFINE_DEVICE_TYPE(SCC80230, scc80230_device, "scc80230", "Zilog Z80230 ESCC") +DEFINE_DEVICE_TYPE(SCC8530N, scc8530_device, "scc8530", "Zilog Z8530 SCC") // remove trailing N when 8530scc.c is fully replaced and removed +DEFINE_DEVICE_TYPE(SCC85C30, scc85c30_device, "scc85c30", "Zilog Z85C30 SCC") +DEFINE_DEVICE_TYPE(SCC85230, scc85230_device, "scc85230", "Zilog Z85230 ESCC") +DEFINE_DEVICE_TYPE(SCC85233, scc85233_device, "scc85233", "Zilog Z85233 EMSCC") +DEFINE_DEVICE_TYPE(SCC8523L, scc8523l_device, "scc8523l", "Zilog Z8523L SCC") //------------------------------------------------- // device_mconfig_additions - @@ -166,8 +166,8 @@ machine_config_constructor z80scc_device::device_mconfig_additions() const // z80scc_device - constructor //------------------------------------------------- -z80scc_device::z80scc_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, uint32_t variant, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), +z80scc_device::z80scc_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint32_t variant) + : device_t(mconfig, type, tag, owner, clock), device_z80daisy_interface(mconfig, *this), m_chanA(*this, CHANA_TAG), m_chanB(*this, CHANB_TAG), @@ -198,35 +198,49 @@ z80scc_device::z80scc_device(const machine_config &mconfig, device_type type, co } z80scc_device::z80scc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : z80scc_device(mconfig, Z80SCC, "Z80 SCC", tag, owner, clock, TYPE_Z80SCC, "z80scc", __FILE__) + : z80scc_device(mconfig, Z80SCC, tag, owner, clock, TYPE_Z80SCC) { - for (auto & elem : m_int_state) - elem = 0; } scc8030_device::scc8030_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : z80scc_device(mconfig, SCC8030, "SCC 8030", tag, owner, clock, TYPE_SCC8030, "scc8030", __FILE__){ } + : z80scc_device(mconfig, SCC8030, tag, owner, clock, TYPE_SCC8030) +{ +} -scc80C30_device::scc80C30_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : z80scc_device(mconfig, SCC80C30, "SCC 80C30", tag, owner, clock, TYPE_SCC80C30, "scc80c30", __FILE__){ } +scc80c30_device::scc80c30_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : z80scc_device(mconfig, SCC80C30, tag, owner, clock, TYPE_SCC80C30) +{ +} scc80230_device::scc80230_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : z80scc_device(mconfig, SCC80230, "SCC 80230", tag, owner, clock, TYPE_SCC80230, "scc80230", __FILE__){ } + : z80scc_device(mconfig, SCC80230, tag, owner, clock, TYPE_SCC80230) +{ +} scc8530_device::scc8530_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : z80scc_device(mconfig, SCC8530N, "SCC 8530", tag, owner, clock, TYPE_SCC8530, "scc8530", __FILE__){ } + : z80scc_device(mconfig, SCC8530N, tag, owner, clock, TYPE_SCC8530) +{ +} -scc85C30_device::scc85C30_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : z80scc_device(mconfig, SCC85C30, "SCC 85C30", tag, owner, clock, TYPE_SCC85C30, "scc85c30", __FILE__){ } +scc85c30_device::scc85c30_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : z80scc_device(mconfig, SCC85C30, tag, owner, clock, TYPE_SCC85C30) +{ +} scc85230_device::scc85230_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : z80scc_device(mconfig, SCC85230, "SCC 85230", tag, owner, clock, TYPE_SCC85230, "scc85230", __FILE__){ } + : z80scc_device(mconfig, SCC85230, tag, owner, clock, TYPE_SCC85230) +{ +} scc85233_device::scc85233_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : z80scc_device(mconfig, SCC85233, "SCC 85233", tag, owner, clock, TYPE_SCC85233, "scc85233", __FILE__){ } + : z80scc_device(mconfig, SCC85233, tag, owner, clock, TYPE_SCC85233) +{ +} -scc8523L_device::scc8523L_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : z80scc_device(mconfig, SCC8523L, "SCC 8523L", tag, owner, clock, TYPE_SCC8523L, "scc8523l", __FILE__){ } +scc8523l_device::scc8523l_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : z80scc_device(mconfig, SCC8523L, tag, owner, clock, TYPE_SCC8523L) +{ +} //------------------------------------------------- // device_start - device-specific startup @@ -838,9 +852,9 @@ WRITE8_MEMBER( z80scc_device::ba_cd_inv_w ) //------------------------------------------------- z80scc_channel::z80scc_channel(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, Z80SCC_CHANNEL, "Z80 SCC channel", tag, owner, clock, "z80scc_channel", __FILE__), + : device_t(mconfig, Z80SCC_CHANNEL, tag, owner, clock), device_serial_interface(mconfig, *this), -#if LOCAL_BRG +#if Z80SCC_USE_LOCAL_BRG m_brg_counter(0), #else m_brg_rate(0), @@ -893,13 +907,13 @@ void z80scc_channel::device_start() m_uart->m_wr0_ptrbits = 0; - m_rx_fifo_sz = (m_uart->m_variant & SET_ESCC) ? 8 : 3; + m_rx_fifo_sz = (m_uart->m_variant & z80scc_device::SET_ESCC) ? 8 : 3; m_rx_fifo_wp = m_rx_fifo_rp = 0; - m_tx_fifo_sz = (m_uart->m_variant & SET_ESCC) ? 4 : 1; + m_tx_fifo_sz = (m_uart->m_variant & z80scc_device::SET_ESCC) ? 4 : 1; m_tx_fifo_wp = m_tx_fifo_rp = 0; -#if LOCAL_BRG +#if Z80SCC_USE_LOCAL_BRG // baudrate clocks and timers baudtimer = timer_alloc(TIMER_ID_BAUD); #endif @@ -982,7 +996,7 @@ void z80scc_channel::device_reset() m_wr3 &= 0x01; m_wr4 = 0x04; m_wr5 = 0x00; - if (m_uart->m_variant & (z80scc_device::TYPE_SCC85C30 | SET_ESCC)) + if (m_uart->m_variant & (z80scc_device::TYPE_SCC85C30 | z80scc_device::SET_ESCC)) m_wr7 = 0x20; // WR9,WR10,WR11 and WR14 has a different hard reset (see z80scc_device::device_reset()) values m_uart->m_wr9 &= 0xdf; @@ -1015,7 +1029,7 @@ void z80scc_channel::device_timer(emu_timer &timer, device_timer_id id, int para { // LOG("%s %d\n", FUNCNAME, id); -#if LOCAL_BRG +#if Z80SCC_USE_LOCAL_BRG switch(id) { case TIMER_ID_BAUD: @@ -1128,7 +1142,7 @@ void z80scc_channel::tra_complete() if (m_wr1 & WR1_TX_INT_ENABLE && m_tx_int_disarm == 0) { - if ((m_uart->m_variant & SET_ESCC) && + if ((m_uart->m_variant & z80scc_device::SET_ESCC) && (m_wr7p & WR7P_TX_FIFO_EMPTY) && m_tx_fifo_wp == m_tx_fifo_rp) // ESCC and fifo empty bit set and fifo is completelly empty? { @@ -1373,7 +1387,7 @@ uint8_t z80scc_channel::do_sccreg_rr2() { LOGINT(" - Checking an INT source %d\n", i); m_rr2 = m_uart->modify_vector(m_rr2, i < 3 ? z80scc_device::CHANNEL_A : z80scc_device::CHANNEL_B, m_uart->m_int_source[i] & 3); - if ((m_uart->m_variant & (SET_ESCC | SET_CMOS)) && (m_uart->m_wr9 & WR9_BIT_IACK)) + if ((m_uart->m_variant & (z80scc_device::SET_ESCC | z80scc_device::SET_CMOS)) && (m_uart->m_wr9 & WR9_BIT_IACK)) { LOGINT(" - Found an INT request to ack while reading RR2\n"); elem = Z80_DAISY_IEO; // Set IUS bit (called IEO in z80 daisy lingo) @@ -1411,7 +1425,7 @@ uint8_t z80scc_channel::do_sccreg_rr3() uint8_t z80scc_channel::do_sccreg_rr4() { LOGR("%s\n", FUNCNAME); - if (m_uart->m_variant & (SET_ESCC | z80scc_device::TYPE_SCC85C30)) + if (m_uart->m_variant & (z80scc_device::SET_ESCC | z80scc_device::TYPE_SCC85C30)) return (BIT(m_wr7, 6) ? m_wr4 : m_rr0); else return m_rr0; @@ -1424,7 +1438,7 @@ uint8_t z80scc_channel::do_sccreg_rr4() uint8_t z80scc_channel::do_sccreg_rr5() { LOGR("%s\n", FUNCNAME); - if (m_uart->m_variant & (SET_ESCC | z80scc_device::TYPE_SCC85C30)) + if (m_uart->m_variant & (z80scc_device::SET_ESCC | z80scc_device::TYPE_SCC85C30)) return BIT(m_wr7, 6) ? m_wr5 : m_rr1; else return m_rr1; @@ -1459,7 +1473,7 @@ uint8_t z80scc_channel::do_sccreg_rr6() uint8_t z80scc_channel::do_sccreg_rr7() { LOGR("%s\n", FUNCNAME); - if (!(m_uart->m_variant & (SET_NMOS))) + if (!(m_uart->m_variant & (z80scc_device::SET_NMOS))) { logerror(" %s() not implemented feature\n", FUNCNAME); return 0; @@ -1482,7 +1496,7 @@ uint8_t z80scc_channel::do_sccreg_rr8() uint8_t z80scc_channel::do_sccreg_rr9() { LOGR("%s\n", FUNCNAME); - if (m_uart->m_variant & (SET_ESCC | z80scc_device::TYPE_SCC85C30)) + if (m_uart->m_variant & (z80scc_device::SET_ESCC | z80scc_device::TYPE_SCC85C30)) return BIT(m_wr7, 6) ? m_wr3 : m_rr13; else return m_rr13; @@ -1503,7 +1517,7 @@ uint8_t z80scc_channel::do_sccreg_rr10() uint8_t z80scc_channel::do_sccreg_rr11() { LOGR("%s\n", FUNCNAME); - if (m_uart->m_variant & (SET_ESCC | z80scc_device::TYPE_SCC85C30)) + if (m_uart->m_variant & (z80scc_device::SET_ESCC | z80scc_device::TYPE_SCC85C30)) return BIT(m_wr7, 6) ? m_wr10 : m_rr15; else return m_rr15; @@ -1532,7 +1546,7 @@ On the NMOS/CMOS version, a read to this location returns an image of RR10.*/ uint8_t z80scc_channel::do_sccreg_rr14() { LOGR("%s\n", FUNCNAME); - if (m_uart->m_variant & (SET_ESCC | z80scc_device::TYPE_SCC85C30)) + if (m_uart->m_variant & (z80scc_device::SET_ESCC | z80scc_device::TYPE_SCC85C30)) return BIT(m_wr7, 6) ? m_wr7 : m_rr10; else return m_rr10; @@ -1559,7 +1573,7 @@ uint8_t z80scc_channel::scc_register_read( uint8_t reg) uint8_t wreg = 0; /* Sort out 80X30 limitations in register access */ - if (BIT(m_wr15, 2) == 0 || m_uart->m_variant & SET_NMOS) + if (BIT(m_wr15, 2) == 0 || m_uart->m_variant & z80scc_device::SET_NMOS) { if (reg > 3 && reg < 8) reg &= 0x03; else if (reg == 9) reg = 13; @@ -1567,7 +1581,7 @@ uint8_t z80scc_channel::scc_register_read( uint8_t reg) } else if (BIT(m_wr15, 2) != 0) { - if (m_uart->m_variant & SET_ESCC && BIT(m_wr7p, 6) != 0) + if (m_uart->m_variant & z80scc_device::SET_ESCC && BIT(m_wr7p, 6) != 0) { if (reg > 3 && reg < 6) wreg = 1; else if (reg == 9) { reg = 3; wreg = 1; } @@ -1637,7 +1651,7 @@ void z80scc_channel::do_sccreg_wr0(uint8_t data) { m_wr0 = data; - if (m_uart->m_variant & SET_Z85X3X) + if (m_uart->m_variant & z80scc_device::SET_Z85X3X) m_uart->m_wr0_ptrbits = data & WR0_REGISTER_MASK; switch (data & WR0_COMMAND_MASK) @@ -1649,7 +1663,7 @@ void z80scc_channel::do_sccreg_wr0(uint8_t data) version of the SCC. Note that WR0 changes form depending upon the SCC version. Register access for the Z80X30 version of the SCC is accomplished through direct addressing*/ - if (m_uart->m_variant & SET_Z85X3X) + if (m_uart->m_variant & z80scc_device::SET_Z85X3X) { LOG("%s %s: %c : - Point High command\n", FUNCNAME, m_owner->tag(), 'A' + m_index); m_uart->m_wr0_ptrbits |= 8; @@ -1681,7 +1695,7 @@ void z80scc_channel::do_sccreg_wr0(uint8_t data) priority conditions to request interrupts. This command allows the use of the internal daisy chain (even in systems without an external daisy chain) and is the last operation in an interrupt service routine. */ - if (m_uart->m_variant & (SET_NMOS)) + if (m_uart->m_variant & z80scc_device::SET_NMOS) { logerror("WR0 SWI ack command not supported on NMOS\n"); LOGCMD("%s: %c : WR0_RESET_HIGHEST_IUS command not available on NMOS!\n", m_owner->tag(), 'A' + m_index); @@ -1759,7 +1773,7 @@ void z80scc_channel::do_sccreg_wr0(uint8_t data) logerror(" Wrong CRC reset/init command:%02x\n", data & WR0_CRC_RESET_CODE_MASK); } - if ( m_uart->m_variant & SET_Z85X3X) + if (m_uart->m_variant & z80scc_device::SET_Z85X3X) { m_uart->m_wr0_ptrbits &= ~WR0_REGISTER_MASK; m_uart->m_wr0_ptrbits |= (m_wr0 & (WR0_REGISTER_MASK)); @@ -1934,7 +1948,7 @@ void z80scc_channel::do_sccreg_wr9(uint8_t data) /*"The effects of this command are identical to those of a hardware reset, except that the Shift Right/Shift Left bit is not changed and the MIE, Status High/Status Low and DLC bits take the programmed values that accompany this command." */ - if (m_uart->m_variant & SET_Z80X30) + if (m_uart->m_variant & z80scc_device::SET_Z80X30) { uint8_t tmp_wr0 = m_wr0; // Save the Shift Left/Shift Right bits m_uart->device_reset(); @@ -2144,7 +2158,7 @@ void z80scc_channel::do_sccreg_wr14(uint8_t data) { LOG(" - PCLK as source\n"); -#if LOCAL_BRG +#if Z80SCC_USE_LOCAL_BRG baudtimer->adjust(attotime::from_hz(rate), TIMER_ID_BAUD, attotime::from_hz(rate)); // Start the baudrate generator #if START_BIT_HUNT m_rcv_mode = RCV_SEEKING; @@ -2158,7 +2172,7 @@ void z80scc_channel::do_sccreg_wr14(uint8_t data) } else if ( (m_wr14 & WR14_BRG_ENABLE) && !(data & WR14_BRG_ENABLE) ) // baud rate generator being disabled? { -#if LOCAL_BRG +#if Z80SCC_USE_LOCAL_BRG baudtimer->adjust(attotime::never, TIMER_ID_BAUD, attotime::never); // Stop the baudrate generator m_brg_counter = 0; #endif @@ -2422,7 +2436,7 @@ void z80scc_channel::data_write(uint8_t data) m_tx_int_disarm = 0; if (m_wr1 & WR1_TX_INT_ENABLE) { - if ((m_uart->m_variant & SET_ESCC) && + if ((m_uart->m_variant & z80scc_device::SET_ESCC) && (m_wr7p & WR7P_TX_FIFO_EMPTY) && m_tx_fifo_wp == m_tx_fifo_rp) // ESCC and fifo empty bit set and fifo is completelly empty? { diff --git a/src/devices/machine/z80scc.h b/src/devices/machine/z80scc.h index 00b5de33c90..f7004d4a3d9 100644 --- a/src/devices/machine/z80scc.h +++ b/src/devices/machine/z80scc.h @@ -30,8 +30,10 @@ ***************************************************************************/ -#ifndef __Z80SCC_H__ -#define __Z80SCC_H__ +#ifndef MAME_MACHINE_Z80SCC_H +#define MAME_MACHINE_Z80SCC_H + +#pragma once #include "cpu/z80/z80daisy.h" @@ -39,7 +41,7 @@ // DEVICE CONFIGURATION MACROS //************************************************************************** -#define LOCAL_BRG 0 +#define Z80SCC_USE_LOCAL_BRG 0 /* Variant ADD macros - use the right one to enable the right feature set! */ #define MCFG_SCC8030_ADD(_tag, _clock, _rxa, _txa, _rxb, _txb) \ @@ -564,7 +566,7 @@ protected: TIMER_ID_TRXC }; -#if LOCAL_BRG +#if Z80SCC_USE_LOCAL_BRG emu_timer *baudtimer; uint16_t m_brg_counter; #else @@ -634,31 +636,29 @@ protected: // ======================> z80scc_device -class z80scc_device : public device_t - ,public device_z80daisy_interface +class z80scc_device : public device_t, public device_z80daisy_interface { friend class z80scc_channel; public: // construction/destruction - z80scc_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, uint32_t variant, const char *shortname, const char *source); z80scc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_out_txda_callback(device_t &device, _Object object) { return downcast(device).m_out_txda_cb.set_callback(object); } - template static devcb_base &set_out_dtra_callback(device_t &device, _Object object) { return downcast(device).m_out_dtra_cb.set_callback(object); } - template static devcb_base &set_out_rtsa_callback(device_t &device, _Object object) { return downcast(device).m_out_rtsa_cb.set_callback(object); } - template static devcb_base &set_out_wrdya_callback(device_t &device, _Object object) { return downcast(device).m_out_wrdya_cb.set_callback(object); } - template static devcb_base &set_out_synca_callback(device_t &device, _Object object) { return downcast(device).m_out_synca_cb.set_callback(object); } - template static devcb_base &set_out_txdb_callback(device_t &device, _Object object) { return downcast(device).m_out_txdb_cb.set_callback(object); } - template static devcb_base &set_out_dtrb_callback(device_t &device, _Object object) { return downcast(device).m_out_dtrb_cb.set_callback(object); } - template static devcb_base &set_out_rtsb_callback(device_t &device, _Object object) { return downcast(device).m_out_rtsb_cb.set_callback(object); } - template static devcb_base &set_out_wrdyb_callback(device_t &device, _Object object) { return downcast(device).m_out_wrdyb_cb.set_callback(object); } - template static devcb_base &set_out_syncb_callback(device_t &device, _Object object) { return downcast(device).m_out_syncb_cb.set_callback(object); } - template static devcb_base &set_out_int_callback(device_t &device, _Object object) { return downcast(device).m_out_int_cb.set_callback(object); } - template static devcb_base &set_out_rxdrqa_callback(device_t &device, _Object object) { return downcast(device).m_out_rxdrqa_cb.set_callback(object); } - template static devcb_base &set_out_txdrqa_callback(device_t &device, _Object object) { return downcast(device).m_out_txdrqa_cb.set_callback(object); } - template static devcb_base &set_out_rxdrqb_callback(device_t &device, _Object object) { return downcast(device).m_out_rxdrqb_cb.set_callback(object); } - template static devcb_base &set_out_txdrqb_callback(device_t &device, _Object object) { return downcast(device).m_out_txdrqb_cb.set_callback(object); } + template static devcb_base &set_out_txda_callback(device_t &device, Object &&cb) { return downcast(device).m_out_txda_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_dtra_callback(device_t &device, Object &&cb) { return downcast(device).m_out_dtra_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_rtsa_callback(device_t &device, Object &&cb) { return downcast(device).m_out_rtsa_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_wrdya_callback(device_t &device, Object &&cb) { return downcast(device).m_out_wrdya_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_synca_callback(device_t &device, Object &&cb) { return downcast(device).m_out_synca_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_txdb_callback(device_t &device, Object &&cb) { return downcast(device).m_out_txdb_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_dtrb_callback(device_t &device, Object &&cb) { return downcast(device).m_out_dtrb_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_rtsb_callback(device_t &device, Object &&cb) { return downcast(device).m_out_rtsb_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_wrdyb_callback(device_t &device, Object &&cb) { return downcast(device).m_out_wrdyb_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_syncb_callback(device_t &device, Object &&cb) { return downcast(device).m_out_syncb_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_int_callback(device_t &device, Object &&cb) { return downcast(device).m_out_int_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_rxdrqa_callback(device_t &device, Object &&cb) { return downcast(device).m_out_rxdrqa_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_txdrqa_callback(device_t &device, Object &&cb) { return downcast(device).m_out_txdrqa_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_rxdrqb_callback(device_t &device, Object &&cb) { return downcast(device).m_out_rxdrqb_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_txdrqb_callback(device_t &device, Object &&cb) { return downcast(device).m_out_txdrqb_cb.set_callback(std::forward(cb)); } static void configure_channels(device_t &device, int rxa, int txa, int rxb, int txb) { @@ -713,11 +713,12 @@ public: DECLARE_WRITE_LINE_MEMBER( rxtxcb_w ) { m_chanB->rxc_w(state); m_chanB->txc_w(state); } DECLARE_WRITE_LINE_MEMBER( synca_w ) { m_chanA->sync_w(state); } DECLARE_WRITE_LINE_MEMBER( syncb_w ) { m_chanB->sync_w(state); } - int update_extint(int i ); + int update_extint(int i); int get_extint_priority(int type); - protected: + z80scc_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint32_t variant); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -748,17 +749,16 @@ protected: TYPE_SCC85C30 = 0x020, TYPE_SCC85230 = 0x040, TYPE_SCC85233 = 0x080, - TYPE_SCC8523L = 0x100 + TYPE_SCC8523L = 0x100, + + SET_NMOS = TYPE_SCC8030 | TYPE_SCC8530, + SET_CMOS = TYPE_SCC80C30 | TYPE_SCC85C30, + SET_ESCC = TYPE_SCC80230 | TYPE_SCC85230 | TYPE_SCC8523L, + SET_EMSCC = TYPE_SCC85233, + SET_Z80X30 = TYPE_SCC8030 | TYPE_SCC80C30 | TYPE_SCC80230, + SET_Z85X3X = TYPE_SCC8530 | TYPE_SCC85C30 | TYPE_SCC85230 | TYPE_SCC8523L | TYPE_SCC85233 }; -#define SET_NMOS ( z80scc_device::TYPE_SCC8030 | z80scc_device::TYPE_SCC8530 ) -#define SET_CMOS ( z80scc_device::TYPE_SCC80C30 | z80scc_device::TYPE_SCC85C30 ) -#define SET_ESCC ( z80scc_device::TYPE_SCC80230 | z80scc_device::TYPE_SCC85230 | z80scc_device::TYPE_SCC8523L ) -#define SET_EMSCC z80scc_device::TYPE_SCC85233 -#define SET_Z80X30 ( z80scc_device::TYPE_SCC8030 | z80scc_device::TYPE_SCC80C30 | z80scc_device::TYPE_SCC80230 ) -#define SET_Z85X3X ( z80scc_device::TYPE_SCC8530 | z80scc_device::TYPE_SCC85C30 | z80scc_device::TYPE_SCC85230 \ - | z80scc_device::TYPE_SCC8523L | z80scc_device::TYPE_SCC85233 ) - enum { CHANNEL_A = 0, @@ -795,68 +795,68 @@ protected: int m_int_state[6]; // interrupt state int m_int_source[6]; // interrupt source - int m_variant; + int const m_variant; uint8_t m_wr0_ptrbits; }; class scc8030_device : public z80scc_device { -public : +public: scc8030_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; -class scc80C30_device : public z80scc_device +class scc80c30_device : public z80scc_device { -public : - scc80C30_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); +public: + scc80c30_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; class scc80230_device : public z80scc_device { -public : +public: scc80230_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; class scc8530_device : public z80scc_device { -public : +public: scc8530_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; -class scc85C30_device : public z80scc_device +class scc85c30_device : public z80scc_device { -public : - scc85C30_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); +public: + scc85c30_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; class scc85230_device : public z80scc_device { -public : +public: scc85230_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; class scc85233_device : public z80scc_device { -public : +public: scc85233_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; -class scc8523L_device : public z80scc_device +class scc8523l_device : public z80scc_device { -public : - scc8523L_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); +public: + scc8523l_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; // device type definition -extern const device_type Z80SCC; -extern const device_type Z80SCC_CHANNEL; -extern const device_type SCC8030; -extern const device_type SCC80C30; -extern const device_type SCC80230; -extern const device_type SCC8530N; // remove trailing N when 8530scc.c is fully replaced and removed -extern const device_type SCC85C30; -extern const device_type SCC85230; -extern const device_type SCC85233; -extern const device_type SCC8523L; - -#endif // __Z80SCC_H__ +DECLARE_DEVICE_TYPE(Z80SCC, z80scc_device) +DECLARE_DEVICE_TYPE(Z80SCC_CHANNEL, z80scc_channel) +DECLARE_DEVICE_TYPE(SCC8030, scc8030_device) +DECLARE_DEVICE_TYPE(SCC80C30, scc80c30_device) +DECLARE_DEVICE_TYPE(SCC80230, scc80230_device) +DECLARE_DEVICE_TYPE(SCC8530N, scc8530_device) // remove trailing N when 8530scc.c is fully replaced and removed +DECLARE_DEVICE_TYPE(SCC85C30, scc85c30_device) +DECLARE_DEVICE_TYPE(SCC85230, scc85230_device) +DECLARE_DEVICE_TYPE(SCC85233, scc85233_device) +DECLARE_DEVICE_TYPE(SCC8523L, scc8523l_device) + +#endif // MAME_MACHINE_Z80SCC_H diff --git a/src/devices/machine/z80sio.cpp b/src/devices/machine/z80sio.cpp index 5a26319f7b4..aaf861bcfc8 100644 --- a/src/devices/machine/z80sio.cpp +++ b/src/devices/machine/z80sio.cpp @@ -98,10 +98,10 @@ //************************************************************************** // device type definition -const device_type Z80SIO = device_creator; -const device_type Z80SIO_CHANNEL = device_creator; -const device_type UPD7201N = device_creator; // Remove trailing N when z80dart.cpp's 7201 implementation is fully replaced -const device_type I8274N = device_creator; // Remove trailing N when z80dart.cpp's 8274 implementation is fully replaced +DEFINE_DEVICE_TYPE(Z80SIO, z80sio_device, "z80sio", "Z80 SIO") +DEFINE_DEVICE_TYPE(Z80SIO_CHANNEL, z80sio_channel, "z80sio_channel", "Z80 SIO channel") +DEFINE_DEVICE_TYPE(UPD7201_NEW, upd7201_new_device, "upd7201_new", "NEC uPD7201 MPSC (new)") // Remove trailing N when z80dart.cpp's 7201 implementation is fully replaced +DEFINE_DEVICE_TYPE(I8274_NEW, i8274_new_device, "i8274_new", "Intel 8274 MPSC (new)") // Remove trailing N when z80dart.cpp's 8274 implementation is fully replaced //------------------------------------------------- // device_mconfig_additions - @@ -123,8 +123,8 @@ machine_config_constructor z80sio_device::device_mconfig_additions() const //------------------------------------------------- // z80sio_device - constructor //------------------------------------------------- -z80sio_device::z80sio_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, uint32_t variant, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), +z80sio_device::z80sio_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint32_t variant) + : device_t(mconfig, type, tag, owner, clock), device_z80daisy_interface(mconfig, *this), m_chanA(*this, CHANA_TAG), m_chanB(*this, CHANB_TAG), @@ -155,41 +155,19 @@ z80sio_device::z80sio_device(const machine_config &mconfig, device_type type, co } z80sio_device::z80sio_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, Z80SIO, "Z80 SIO", tag, owner, clock, "z80sio", __FILE__), - device_z80daisy_interface(mconfig, *this), - m_chanA(*this, CHANA_TAG), - m_chanB(*this, CHANB_TAG), - m_rxca(0), - m_txca(0), - m_rxcb(0), - m_txcb(0), - m_out_txda_cb(*this), - m_out_dtra_cb(*this), - m_out_rtsa_cb(*this), - m_out_wrdya_cb(*this), - m_out_synca_cb(*this), - m_out_txdb_cb(*this), - m_out_dtrb_cb(*this), - m_out_rtsb_cb(*this), - m_out_wrdyb_cb(*this), - m_out_syncb_cb(*this), - m_out_int_cb(*this), - m_out_rxdrqa_cb(*this), - m_out_txdrqa_cb(*this), - m_out_rxdrqb_cb(*this), - m_out_txdrqb_cb(*this), - m_variant(TYPE_Z80SIO), - m_cputag("maincpu") + : z80sio_device(mconfig, Z80SIO, tag, owner, clock, TYPE_Z80SIO) { - for (auto & elem : m_int_state) - elem = 0; } -upd7201N_device::upd7201N_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : z80sio_device(mconfig, UPD7201N, "UPD 7201", tag, owner, clock, TYPE_UPD7201, "upd7201n", __FILE__){ } +upd7201_new_device::upd7201_new_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : z80sio_device(mconfig, UPD7201_NEW, tag, owner, clock, TYPE_UPD7201) +{ +} -i8274N_device::i8274N_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : z80sio_device(mconfig, I8274N, "i8274", tag, owner, clock, TYPE_I8274, "i8274n", __FILE__){ } +i8274_new_device::i8274_new_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : z80sio_device(mconfig, I8274_NEW, tag, owner, clock, TYPE_I8274) +{ +} //------------------------------------------------- // device_start - device-specific startup @@ -535,22 +513,22 @@ WRITE8_MEMBER( z80sio_device::ba_cd_w ) // z80sio_channel - constructor //------------------------------------------------- z80sio_channel::z80sio_channel(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, Z80SIO_CHANNEL, "Z80 SIO channel", tag, owner, clock, "z80sio_channel", __FILE__), - device_serial_interface(mconfig, *this), - m_rx_error(0), - m_rx_clock(0), - m_rx_first(0), - m_rx_break(0), - m_rx_rr0_latch(0), - m_rxd(0), - m_sh(0), - m_cts(0), - m_dcd(0), - m_tx_data(0), - m_tx_clock(0), - m_dtr(0), - m_rts(0), - m_sync(0) + : device_t(mconfig, Z80SIO_CHANNEL, tag, owner, clock) + , device_serial_interface(mconfig, *this) + , m_rx_error(0) + , m_rx_clock(0) + , m_rx_first(0) + , m_rx_break(0) + , m_rx_rr0_latch(0) + , m_rxd(0) + , m_sh(0) + , m_cts(0) + , m_dcd(0) + , m_tx_data(0) + , m_tx_clock(0) + , m_dtr(0) + , m_rts(0) + , m_sync(0) { LOG("%s\n",FUNCNAME); // Reset all registers diff --git a/src/devices/machine/z80sio.h b/src/devices/machine/z80sio.h index 1800577f69d..33400530721 100644 --- a/src/devices/machine/z80sio.h +++ b/src/devices/machine/z80sio.h @@ -52,8 +52,10 @@ ***************************************************************************/ -#ifndef __Z80SIO_H__ -#define __Z80SIO_H__ +#ifndef MAME_MACHINE_Z80SIO_H +#define MAME_MACHINE_Z80SIO_H + +#pragma once #include "cpu/z80/z80daisy.h" @@ -69,11 +71,11 @@ MCFG_Z80SIO_OFFSETS(_rxa, _txa, _rxb, _txb) #define MCFG_UPD7201_ADD(_tag, _clock, _rxa, _txa, _rxb, _txb) \ - MCFG_DEVICE_ADD(_tag, UPD7201N, _clock) \ + MCFG_DEVICE_ADD(_tag, UPD7201_NEW, _clock) \ MCFG_Z80SIO_OFFSETS(_rxa, _txa, _rxb, _txb) #define MCFG_I8274_ADD(_tag, _clock, _rxa, _txa, _rxb, _txb) \ - MCFG_DEVICE_ADD(_tag, I8274N, _clock) \ + MCFG_DEVICE_ADD(_tag, I8274_NEW, _clock) \ MCFG_Z80SIO_OFFSETS(_rxa, _txa, _rxb, _txb) /* Generic macros */ @@ -228,7 +230,7 @@ protected: // Read registers enum { - REG_RR0_STATUS = 0, + REG_RR0_STATUS = 0, REG_RR1_SPEC_RCV_COND = 1, REG_RR2_INTERRUPT_VECT = 2 }; @@ -238,10 +240,10 @@ protected: { REG_WR0_COMMAND_REGPT = 0, REG_WR1_INT_DMA_ENABLE = 1, - REG_WR2_INT_VECTOR = 2, - REG_WR3_RX_CONTROL = 3, - REG_WR4_RX_TX_MODES = 4, - REG_WR5_TX_CONTROL = 5, + REG_WR2_INT_VECTOR = 2, + REG_WR3_RX_CONTROL = 3, + REG_WR4_RX_TX_MODES = 4, + REG_WR5_TX_CONTROL = 5, REG_WR6_SYNC_OR_SDLC_A = 6, REG_WR7_SYNC_OR_SDLC_F = 7 }; @@ -250,91 +252,91 @@ protected: { RR0_RX_CHAR_AVAILABLE = 0x01, RR0_INTERRUPT_PENDING = 0x02, - RR0_TX_BUFFER_EMPTY = 0x04, - RR0_DCD = 0x08, - RR0_SYNC_HUNT = 0x10, - RR0_CTS = 0x20, - RR0_TX_UNDERRUN = 0x40, - RR0_BREAK_ABORT = 0x80 + RR0_TX_BUFFER_EMPTY = 0x04, + RR0_DCD = 0x08, + RR0_SYNC_HUNT = 0x10, + RR0_CTS = 0x20, + RR0_TX_UNDERRUN = 0x40, + RR0_BREAK_ABORT = 0x80 }; enum { - RR1_ALL_SENT = 0x01, + RR1_ALL_SENT = 0x01, RR1_RESIDUE_CODE_MASK = 0x0e, - RR1_PARITY_ERROR = 0x10, + RR1_PARITY_ERROR = 0x10, RR1_RX_OVERRUN_ERROR = 0x20, RR1_CRC_FRAMING_ERROR = 0x40, - RR1_END_OF_FRAME = 0x80 + RR1_END_OF_FRAME = 0x80 }; enum { - RR2_INT_VECTOR_MASK = 0xff, - RR2_INT_VECTOR_V1 = 0x02, - RR2_INT_VECTOR_V2 = 0x04, - RR2_INT_VECTOR_V3 = 0x08 + RR2_INT_VECTOR_MASK = 0xff, + RR2_INT_VECTOR_V1 = 0x02, + RR2_INT_VECTOR_V2 = 0x04, + RR2_INT_VECTOR_V3 = 0x08 }; enum { - WR0_REGISTER_MASK = 0x07, - WR0_COMMAND_MASK = 0x38, - WR0_NULL = 0x00, - WR0_SEND_ABORT = 0x08, - WR0_RESET_EXT_STATUS = 0x10, - WR0_CHANNEL_RESET = 0x18, - WR0_ENABLE_INT_NEXT_RX = 0x20, - WR0_RESET_TX_INT = 0x28, - WR0_ERROR_RESET = 0x30, - WR0_RETURN_FROM_INT = 0x38, - WR0_CRC_RESET_CODE_MASK = 0xc0, - WR0_CRC_RESET_NULL = 0x00, - WR0_CRC_RESET_RX = 0x40, - WR0_CRC_RESET_TX = 0x80, + WR0_REGISTER_MASK = 0x07, + WR0_COMMAND_MASK = 0x38, + WR0_NULL = 0x00, + WR0_SEND_ABORT = 0x08, + WR0_RESET_EXT_STATUS = 0x10, + WR0_CHANNEL_RESET = 0x18, + WR0_ENABLE_INT_NEXT_RX = 0x20, + WR0_RESET_TX_INT = 0x28, + WR0_ERROR_RESET = 0x30, + WR0_RETURN_FROM_INT = 0x38, + WR0_CRC_RESET_CODE_MASK = 0xc0, + WR0_CRC_RESET_NULL = 0x00, + WR0_CRC_RESET_RX = 0x40, + WR0_CRC_RESET_TX = 0x80, WR0_CRC_RESET_TX_UNDERRUN = 0xc0 }; enum { - WR1_EXT_INT_ENABLE = 0x01, - WR1_TX_INT_ENABLE = 0x02, - WR1_STATUS_VECTOR = 0x04, + WR1_EXT_INT_ENABLE = 0x01, + WR1_TX_INT_ENABLE = 0x02, + WR1_STATUS_VECTOR = 0x04, WR1_RX_INT_MODE_MASK = 0x18, - WR1_RX_INT_DISABLE = 0x00, - WR1_RX_INT_FIRST = 0x08, + WR1_RX_INT_DISABLE = 0x00, + WR1_RX_INT_FIRST = 0x08, WR1_RX_INT_ALL_PARITY = 0x10, // not supported - WR1_RX_INT_ALL = 0x18, - WR1_WRDY_ON_RX_TX = 0x20, // not supported - WR1_WRDY_FUNCTION = 0x40, // not supported - WR1_WRDY_ENABLE = 0x80 // not supported + WR1_RX_INT_ALL = 0x18, + WR1_WRDY_ON_RX_TX = 0x20, // not supported + WR1_WRDY_FUNCTION = 0x40, // not supported + WR1_WRDY_ENABLE = 0x80 // not supported }; enum { - WR2_DATA_XFER_INT = 0x00, // not supported + WR2_DATA_XFER_INT = 0x00, // not supported WR2_DATA_XFER_DMA_INT = 0x01, // not supported - WR2_DATA_XFER_DMA = 0x02, // not supported + WR2_DATA_XFER_DMA = 0x02, // not supported WR2_DATA_XFER_ILLEGAL = 0x03, // not supported - WR2_DATA_XFER_MASK = 0x03, // not supported - WR2_PRIORITY = 0x04, // not supported - WR2_MODE_8085_1 = 0x00, // not supported - WR2_MODE_8085_2 = 0x08, // not supported - WR2_MODE_8086_8088 = 0x10, // not supported - WR2_MODE_ILLEGAL = 0x18, // not supported - WR2_MODE_MASK = 0x18, // not supported - WR2_VECTORED_INT = 0x20, // not supported + WR2_DATA_XFER_MASK = 0x03, // not supported + WR2_PRIORITY = 0x04, // not supported + WR2_MODE_8085_1 = 0x00, // not supported + WR2_MODE_8085_2 = 0x08, // not supported + WR2_MODE_8086_8088 = 0x10, // not supported + WR2_MODE_ILLEGAL = 0x18, // not supported + WR2_MODE_MASK = 0x18, // not supported + WR2_VECTORED_INT = 0x20, // not supported WR2_PIN10_SYNDETB_RTSB = 0x80 // not supported }; enum { - WR3_RX_ENABLE = 0x01, + WR3_RX_ENABLE = 0x01, WR3_SYNC_CHAR_LOAD_INHIBIT= 0x02, // not supported WR3_ADDRESS_SEARCH_MODE = 0x04, // not supported - WR3_RX_CRC_ENABLE = 0x08, // not supported + WR3_RX_CRC_ENABLE = 0x08, // not supported WR3_ENTER_HUNT_PHASE = 0x10, // not supported - WR3_AUTO_ENABLES = 0x20, + WR3_AUTO_ENABLES = 0x20, WR3_RX_WORD_LENGTH_MASK = 0xc0, WR3_RX_WORD_LENGTH_5 = 0x00, WR3_RX_WORD_LENGTH_7 = 0x40, @@ -344,37 +346,37 @@ protected: enum { - WR4_PARITY_ENABLE = 0x01, - WR4_PARITY_EVEN = 0x02, - WR4_STOP_BITS_MASK = 0x0c, - WR4_STOP_BITS_1 = 0x04, - WR4_STOP_BITS_1_5 = 0x08, // not supported - WR4_STOP_BITS_2 = 0x0c, - WR4_SYNC_MODE_MASK = 0x30, // not supported - WR4_SYNC_MODE_8_BIT = 0x00, // not supported + WR4_PARITY_ENABLE = 0x01, + WR4_PARITY_EVEN = 0x02, + WR4_STOP_BITS_MASK = 0x0c, + WR4_STOP_BITS_1 = 0x04, + WR4_STOP_BITS_1_5 = 0x08, // not supported + WR4_STOP_BITS_2 = 0x0c, + WR4_SYNC_MODE_MASK = 0x30, // not supported + WR4_SYNC_MODE_8_BIT = 0x00, // not supported WR4_SYNC_MODE_16_BIT = 0x10, // not supported - WR4_SYNC_MODE_SDLC = 0x20, // not supported - WR4_SYNC_MODE_EXT = 0x30, // not supported - WR4_CLOCK_RATE_MASK = 0xc0, - WR4_CLOCK_RATE_X1 = 0x00, - WR4_CLOCK_RATE_X16 = 0x40, - WR4_CLOCK_RATE_X32 = 0x80, - WR4_CLOCK_RATE_X64 = 0xc0 + WR4_SYNC_MODE_SDLC = 0x20, // not supported + WR4_SYNC_MODE_EXT = 0x30, // not supported + WR4_CLOCK_RATE_MASK = 0xc0, + WR4_CLOCK_RATE_X1 = 0x00, + WR4_CLOCK_RATE_X16 = 0x40, + WR4_CLOCK_RATE_X32 = 0x80, + WR4_CLOCK_RATE_X64 = 0xc0 }; enum { - WR5_TX_CRC_ENABLE = 0x01, // not supported - WR5_RTS = 0x02, - WR5_CRC16 = 0x04, // not supported - WR5_TX_ENABLE = 0x08, - WR5_SEND_BREAK = 0x10, + WR5_TX_CRC_ENABLE = 0x01, // not supported + WR5_RTS = 0x02, + WR5_CRC16 = 0x04, // not supported + WR5_TX_ENABLE = 0x08, + WR5_SEND_BREAK = 0x10, WR5_TX_WORD_LENGTH_MASK = 0x60, WR5_TX_WORD_LENGTH_5 = 0x00, WR5_TX_WORD_LENGTH_6 = 0x40, WR5_TX_WORD_LENGTH_7 = 0x20, WR5_TX_WORD_LENGTH_8 = 0x60, - WR5_DTR = 0x80 + WR5_DTR = 0x80 }; void update_serial(); @@ -426,24 +428,23 @@ class z80sio_device : public device_t, public: // construction/destruction - z80sio_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, uint32_t variant, const char *shortname, const char *source); z80sio_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_out_txda_callback(device_t &device, _Object object) { return downcast(device).m_out_txda_cb.set_callback(object); } - template static devcb_base &set_out_dtra_callback(device_t &device, _Object object) { return downcast(device).m_out_dtra_cb.set_callback(object); } - template static devcb_base &set_out_rtsa_callback(device_t &device, _Object object) { return downcast(device).m_out_rtsa_cb.set_callback(object); } - template static devcb_base &set_out_wrdya_callback(device_t &device, _Object object) { return downcast(device).m_out_wrdya_cb.set_callback(object); } - template static devcb_base &set_out_synca_callback(device_t &device, _Object object) { return downcast(device).m_out_synca_cb.set_callback(object); } - template static devcb_base &set_out_txdb_callback(device_t &device, _Object object) { return downcast(device).m_out_txdb_cb.set_callback(object); } - template static devcb_base &set_out_dtrb_callback(device_t &device, _Object object) { return downcast(device).m_out_dtrb_cb.set_callback(object); } - template static devcb_base &set_out_rtsb_callback(device_t &device, _Object object) { return downcast(device).m_out_rtsb_cb.set_callback(object); } - template static devcb_base &set_out_wrdyb_callback(device_t &device, _Object object) { return downcast(device).m_out_wrdyb_cb.set_callback(object); } - template static devcb_base &set_out_syncb_callback(device_t &device, _Object object) { return downcast(device).m_out_syncb_cb.set_callback(object); } - template static devcb_base &set_out_int_callback(device_t &device, _Object object) { return downcast(device).m_out_int_cb.set_callback(object); } - template static devcb_base &set_out_rxdrqa_callback(device_t &device, _Object object) { return downcast(device).m_out_rxdrqa_cb.set_callback(object); } - template static devcb_base &set_out_txdrqa_callback(device_t &device, _Object object) { return downcast(device).m_out_txdrqa_cb.set_callback(object); } - template static devcb_base &set_out_rxdrqb_callback(device_t &device, _Object object) { return downcast(device).m_out_rxdrqb_cb.set_callback(object); } - template static devcb_base &set_out_txdrqb_callback(device_t &device, _Object object) { return downcast(device).m_out_txdrqb_cb.set_callback(object); } + template static devcb_base &set_out_txda_callback(device_t &device, Object &&cb) { return downcast(device).m_out_txda_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_dtra_callback(device_t &device, Object &&cb) { return downcast(device).m_out_dtra_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_rtsa_callback(device_t &device, Object &&cb) { return downcast(device).m_out_rtsa_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_wrdya_callback(device_t &device, Object &&cb) { return downcast(device).m_out_wrdya_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_synca_callback(device_t &device, Object &&cb) { return downcast(device).m_out_synca_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_txdb_callback(device_t &device, Object &&cb) { return downcast(device).m_out_txdb_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_dtrb_callback(device_t &device, Object &&cb) { return downcast(device).m_out_dtrb_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_rtsb_callback(device_t &device, Object &&cb) { return downcast(device).m_out_rtsb_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_wrdyb_callback(device_t &device, Object &&cb) { return downcast(device).m_out_wrdyb_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_syncb_callback(device_t &device, Object &&cb) { return downcast(device).m_out_syncb_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_int_callback(device_t &device, Object &&cb) { return downcast(device).m_out_int_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_rxdrqa_callback(device_t &device, Object &&cb) { return downcast(device).m_out_rxdrqa_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_txdrqa_callback(device_t &device, Object &&cb) { return downcast(device).m_out_txdrqa_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_rxdrqb_callback(device_t &device, Object &&cb) { return downcast(device).m_out_rxdrqb_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_txdrqb_callback(device_t &device, Object &&cb) { return downcast(device).m_out_txdrqb_cb.set_callback(std::forward(cb)); } static void static_set_cputag(device_t &device, const char *tag) { @@ -493,6 +494,8 @@ public: DECLARE_WRITE_LINE_MEMBER( syncb_w ) { m_chanB->sync_w(state); } protected: + z80sio_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint32_t variant); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -558,22 +561,22 @@ protected: const char *m_cputag; }; -class upd7201N_device : public z80sio_device +class upd7201_new_device : public z80sio_device { -public : - upd7201N_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); +public: + upd7201_new_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; -class i8274N_device : public z80sio_device +class i8274_new_device : public z80sio_device { -public : - i8274N_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); +public: + i8274_new_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; // device type definition -extern const device_type Z80SIO; -extern const device_type Z80SIO_CHANNEL; -extern const device_type UPD7201N; -extern const device_type I8274N; +DECLARE_DEVICE_TYPE(Z80SIO, z80sio_device) +DECLARE_DEVICE_TYPE(Z80SIO_CHANNEL, z80sio_channel) +DECLARE_DEVICE_TYPE(UPD7201_NEW, upd7201_new_device) +DECLARE_DEVICE_TYPE(I8274_NEW, i8274_new_device) -#endif +#endif // MAME_MACHINE_Z80SIO_H diff --git a/src/devices/machine/z80sti.cpp b/src/devices/machine/z80sti.cpp index c86cb6d659e..cc69a2967bb 100644 --- a/src/devices/machine/z80sti.cpp +++ b/src/devices/machine/z80sti.cpp @@ -19,22 +19,16 @@ #include "emu.h" #include "z80sti.h" #include "cpu/z80/z80.h" -#include "cpu/z80/z80daisy.h" - - -// device type definition -const device_type Z80STI = device_creator; +//#define VERBOSE 1 +#include "logmacro.h" -//************************************************************************** -// DEBUGGING -//************************************************************************** -#define VERBOSE 0 +// device type definition +DEFINE_DEVICE_TYPE(Z80STI, z80sti_device, "z80sti", "Mostek MK3801 STI") -#define LOG(x) do { if (VERBOSE) logerror x; } while (0) @@ -83,25 +77,25 @@ const int z80sti_device::PRESCALER[] = { 0, 4, 10, 16, 50, 64, 100, 200 }; //------------------------------------------------- z80sti_device::z80sti_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, Z80STI, "Mostek MK3801", tag, owner, clock, "z80sti", __FILE__), - device_serial_interface(mconfig, *this), - device_z80daisy_interface(mconfig, *this), - m_out_int_cb(*this), - m_in_gpio_cb(*this), - m_out_gpio_cb(*this), - m_out_so_cb(*this), - m_out_tao_cb(*this), - m_out_tbo_cb(*this), - m_out_tco_cb(*this), - m_out_tdo_cb(*this), - m_rx_clock(0), - m_tx_clock(0), - m_gpip(0), - m_aer(0), - m_ier(0), - m_ipr(0), - m_isr(0), - m_imr(0) + : device_t(mconfig, Z80STI, tag, owner, clock) + , device_serial_interface(mconfig, *this) + , device_z80daisy_interface(mconfig, *this) + , m_out_int_cb(*this) + , m_in_gpio_cb(*this) + , m_out_gpio_cb(*this) + , m_out_so_cb(*this) + , m_out_tao_cb(*this) + , m_out_tbo_cb(*this) + , m_out_tco_cb(*this) + , m_out_tdo_cb(*this) + , m_rx_clock(0) + , m_tx_clock(0) + , m_gpip(0) + , m_aer(0) + , m_ier(0) + , m_ipr(0) + , m_isr(0) + , m_imr(0) { for (auto & elem : m_int_state) { @@ -249,7 +243,7 @@ int z80sti_device::z80daisy_irq_state() } } - LOG(("Z80STI '%s' Interrupt State: %u\n", tag(), state)); + LOG("Z80STI Interrupt State: %u\n", state); return state; } @@ -282,7 +276,7 @@ int z80sti_device::z80daisy_irq_ack() check_interrupts(); - LOG(("Z80STI '%s' Interrupt Acknowledge Vector: %02x\n", tag(), vector)); + LOG("Z80STI Interrupt Acknowledge Vector: %02x\n", vector); return vector; } @@ -302,7 +296,7 @@ void z80sti_device::z80daisy_irq_reti() { int i; - LOG(("Z80STI '%s' Return from Interrupt\n", tag())); + LOG("Z80STI Return from Interrupt\n"); // loop over all interrupt sources for (i = 15; i >= 0; i--) @@ -421,39 +415,39 @@ WRITE8_MEMBER( z80sti_device::write ) switch (m_pvr & 0x07) { case REGISTER_IR_SCR: - LOG(("Z80STI '%s' Sync Character Register: %x\n", tag(), data)); + LOG("Z80STI Sync Character Register: %x\n", data); m_scr = data; break; case REGISTER_IR_TDDR: - LOG(("Z80STI '%s' Timer D Data Register: %x\n", tag(), data)); + LOG("Z80STI Timer D Data Register: %x\n", data); m_tdr[TIMER_D] = data; break; case REGISTER_IR_TCDR: - LOG(("Z80STI '%s' Timer C Data Register: %x\n", tag(), data)); + LOG("Z80STI Timer C Data Register: %x\n", data); m_tdr[TIMER_C] = data; break; case REGISTER_IR_AER: - LOG(("Z80STI '%s' Active Edge Register: %x\n", tag(), data)); + LOG("Z80STI Active Edge Register: %x\n", data); m_aer = data; break; case REGISTER_IR_IERB: - LOG(("Z80STI '%s' Interrupt Enable Register B: %x\n", tag(), data)); + LOG("Z80STI Interrupt Enable Register B: %x\n", data); m_ier = (m_ier & 0xff00) | data; check_interrupts(); break; case REGISTER_IR_IERA: - LOG(("Z80STI '%s' Interrupt Enable Register A: %x\n", tag(), data)); + LOG("Z80STI Interrupt Enable Register A: %x\n", data); m_ier = (data << 8) | (m_ier & 0xff); check_interrupts(); break; case REGISTER_IR_DDR: - LOG(("Z80STI '%s' Data Direction Register: %x\n", tag(), data)); + LOG("Z80STI Data Direction Register: %x\n", data); m_ddr = data; break; @@ -464,8 +458,8 @@ WRITE8_MEMBER( z80sti_device::write ) m_tcdc = data; - LOG(("Z80STI '%s' Timer C Prescaler: %u\n", tag(), tcc)); - LOG(("Z80STI '%s' Timer D Prescaler: %u\n", tag(), tdc)); + LOG("Z80STI Timer C Prescaler: %u\n", tcc); + LOG("Z80STI Timer D Prescaler: %u\n", tdc); if (tcc) m_timer[TIMER_C]->adjust(attotime::from_hz(clock() / tcc), TIMER_C, attotime::from_hz(clock() / tcc)); @@ -479,7 +473,7 @@ WRITE8_MEMBER( z80sti_device::write ) if (BIT(data, 7)) { - LOG(("Z80STI '%s' Timer A Reset\n", tag())); + LOG("Z80STI Timer A Reset\n"); m_to[TIMER_A] = 0; m_out_tao_cb(m_to[TIMER_A]); @@ -487,7 +481,7 @@ WRITE8_MEMBER( z80sti_device::write ) if (BIT(data, 3)) { - LOG(("Z80STI '%s' Timer B Reset\n", tag())); + LOG("Z80STI Timer B Reset\n"); m_to[TIMER_B] = 0; m_out_tbo_cb(m_to[TIMER_B]); @@ -498,7 +492,7 @@ WRITE8_MEMBER( z80sti_device::write ) break; case REGISTER_GPIP: - LOG(("Z80STI '%s' General Purpose I/O Register: %x\n", tag(), data)); + LOG("Z80STI General Purpose I/O Register: %x\n", data); m_gpip = data & m_ddr; m_out_gpio_cb((offs_t)0, m_gpip); break; @@ -506,7 +500,7 @@ WRITE8_MEMBER( z80sti_device::write ) case REGISTER_IPRB: { int i; - LOG(("Z80STI '%s' Interrupt Pending Register B: %x\n", tag(), data)); + LOG("Z80STI Interrupt Pending Register B: %x\n", data); m_ipr &= (m_ipr & 0xff00) | data; for (i = 0; i < 16; i++) @@ -521,7 +515,7 @@ WRITE8_MEMBER( z80sti_device::write ) case REGISTER_IPRA: { int i; - LOG(("Z80STI '%s' Interrupt Pending Register A: %x\n", tag(), data)); + LOG("Z80STI Interrupt Pending Register A: %x\n", data); m_ipr &= (data << 8) | (m_ipr & 0xff); for (i = 0; i < 16; i++) @@ -534,32 +528,32 @@ WRITE8_MEMBER( z80sti_device::write ) break; case REGISTER_ISRB: - LOG(("Z80STI '%s' Interrupt In-Service Register B: %x\n", tag(), data)); + LOG("Z80STI Interrupt In-Service Register B: %x\n", data); m_isr &= (m_isr & 0xff00) | data; break; case REGISTER_ISRA: - LOG(("Z80STI '%s' Interrupt In-Service Register A: %x\n", tag(), data)); + LOG("Z80STI Interrupt In-Service Register A: %x\n", data); m_isr &= (data << 8) | (m_isr & 0xff); break; case REGISTER_IMRB: - LOG(("Z80STI '%s' Interrupt Mask Register B: %x\n", tag(), data)); + LOG("Z80STI Interrupt Mask Register B: %x\n", data); m_imr = (m_imr & 0xff00) | data; m_isr &= m_imr; check_interrupts(); break; case REGISTER_IMRA: - LOG(("Z80STI '%s' Interrupt Mask Register A: %x\n", tag(), data)); + LOG("Z80STI Interrupt Mask Register A: %x\n", data); m_imr = (data << 8) | (m_imr & 0xff); m_isr &= m_imr; check_interrupts(); break; case REGISTER_PVR: - LOG(("Z80STI '%s' Interrupt Vector: %02x\n", tag(), data & 0xe0)); - LOG(("Z80STI '%s' IR Address: %01x\n", tag(), data & 0x07)); + LOG("Z80STI Interrupt Vector: %02x\n", data & 0xe0); + LOG("Z80STI IR Address: %01x\n", data & 0x07); m_pvr = data; break; @@ -570,8 +564,8 @@ WRITE8_MEMBER( z80sti_device::write ) m_tabc = data; - LOG(("Z80STI '%s' Timer A Prescaler: %u\n", tag(), tac)); - LOG(("Z80STI '%s' Timer B Prescaler: %u\n", tag(), tbc)); + LOG("Z80STI Timer A Prescaler: %u\n", tac); + LOG("Z80STI Timer B Prescaler: %u\n", tbc); if (tac) m_timer[TIMER_A]->adjust(attotime::from_hz(clock() / tac), TIMER_A, attotime::from_hz(clock() / tac)); @@ -586,32 +580,32 @@ WRITE8_MEMBER( z80sti_device::write ) break; case REGISTER_TBDR: - LOG(("Z80STI '%s' Timer B Data Register: %x\n", tag(), data)); + LOG("Z80STI Timer B Data Register: %x\n", tag(), data); m_tdr[TIMER_B] = data; break; case REGISTER_TADR: - LOG(("Z80STI '%s' Timer A Data Register: %x\n", tag(), data)); + LOG("Z80STI Timer A Data Register: %x\n", tag(), data); m_tdr[TIMER_A] = data; break; case REGISTER_UCR: - LOG(("Z80STI '%s' USART Control Register: %x\n", tag(), data)); + LOG("Z80STI USART Control Register: %x\n", tag(), data); m_ucr = data; break; case REGISTER_RSR: - LOG(("Z80STI '%s' Receiver Status Register: %x\n", tag(), data)); + LOG("Z80STI Receiver Status Register: %x\n", tag(), data); m_rsr = data; break; case REGISTER_TSR: - LOG(("Z80STI '%s' Transmitter Status Register: %x\n", tag(), data)); + LOG("Z80STI Transmitter Status Register: %x\n", tag(), data); m_tsr = data; break; case REGISTER_UDR: - LOG(("Z80STI '%s' USART Data Register: %x\n", tag(), data)); + LOG("Z80STI USART Data Register: %x\n", tag(), data); m_udr = data; break; } @@ -626,7 +620,7 @@ void z80sti_device::timer_count(int index) { if (m_tmc[index] == 0x01) { - //LOG(("Z80STI '%s' Timer %c Expired\n", tag(), 'A' + index)); + //LOG("Z80STI Timer %c Expired\n", 'A' + index); // toggle timer output signal m_to[index] = !m_to[index]; @@ -649,7 +643,7 @@ void z80sti_device::timer_count(int index) if (m_ier & (1 << INT_LEVEL_TIMER[index])) { - LOG(("Z80STI '%s' Interrupt Pending for Timer %c\n", tag(), 'A' + index)); + LOG("Z80STI for Timer %c\n", 'A' + index); // signal timer elapsed interrupt take_interrupt(INT_LEVEL_TIMER[index]); @@ -677,11 +671,11 @@ void z80sti_device::gpip_input(int bit, int state) if ((old_state ^ aer) && !(state ^ aer)) { - LOG(("Z80STI '%s' Edge Transition Detected on Bit: %u\n", tag(), bit)); + LOG("Z80STI Edge Transition Detected on Bit: %u\n", bit); if (m_ier & (1 << INT_LEVEL_GPIP[bit])) { - LOG(("Z80STI '%s' Interrupt Pending for P%u\n", tag(), bit)); + LOG("Z80STI Interrupt Pending for P%u\n", bit); take_interrupt(INT_LEVEL_GPIP[bit]); } diff --git a/src/devices/machine/z80sti.h b/src/devices/machine/z80sti.h index 4f480da4a42..9661c9b9052 100644 --- a/src/devices/machine/z80sti.h +++ b/src/devices/machine/z80sti.h @@ -29,8 +29,10 @@ **********************************************************************/ -#ifndef __Z80STI__ -#define __Z80STI__ +#ifndef MAME_MACHINE_Z80STI_H +#define MAME_MACHINE_Z80STI_H + +#pragma once #include "cpu/z80/z80daisy.h" @@ -83,14 +85,14 @@ public: // construction/destruction z80sti_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_out_int_callback(device_t &device, _Object object) { return downcast(device).m_out_int_cb.set_callback(object); } - template static devcb_base &set_in_gpio_callback(device_t &device, _Object object) { return downcast(device).m_in_gpio_cb.set_callback(object); } - template static devcb_base &set_out_gpio_callback(device_t &device, _Object object) { return downcast(device).m_out_gpio_cb.set_callback(object); } - template static devcb_base &set_out_so_callback(device_t &device, _Object object) { return downcast(device).m_out_so_cb.set_callback(object); } - template static devcb_base &set_out_tao_callback(device_t &device, _Object object) { return downcast(device).m_out_tao_cb.set_callback(object); } - template static devcb_base &set_out_tbo_callback(device_t &device, _Object object) { return downcast(device).m_out_tbo_cb.set_callback(object); } - template static devcb_base &set_out_tco_callback(device_t &device, _Object object) { return downcast(device).m_out_tco_cb.set_callback(object); } - template static devcb_base &set_out_tdo_callback(device_t &device, _Object object) { return downcast(device).m_out_tdo_cb.set_callback(object); } + template static devcb_base &set_out_int_callback(device_t &device, Object &&cb) { return downcast(device).m_out_int_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_in_gpio_callback(device_t &device, Object &&cb) { return downcast(device).m_in_gpio_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_gpio_callback(device_t &device, Object &&cb) { return downcast(device).m_out_gpio_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_so_callback(device_t &device, Object &&cb) { return downcast(device).m_out_so_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_tao_callback(device_t &device, Object &&cb) { return downcast(device).m_out_tao_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_tbo_callback(device_t &device, Object &&cb) { return downcast(device).m_out_tbo_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_tco_callback(device_t &device, Object &&cb) { return downcast(device).m_out_tco_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_tdo_callback(device_t &device, Object &&cb) { return downcast(device).m_out_tdo_cb.set_callback(std::forward(cb)); } static void set_rx_clock(device_t &device, int clock) { downcast(device).m_rx_clock = clock; } static void set_tx_clock(device_t &device, int clock) { downcast(device).m_tx_clock = clock; } @@ -243,8 +245,6 @@ private: // device type definition -extern const device_type Z80STI; - - +DECLARE_DEVICE_TYPE(Z80STI, z80sti_device) -#endif +#endif // MAME_MACHINE_Z80STI_H diff --git a/src/devices/machine/z8536.cpp b/src/devices/machine/z8536.cpp index d4240605c5e..7021335e767 100644 --- a/src/devices/machine/z8536.cpp +++ b/src/devices/machine/z8536.cpp @@ -24,21 +24,22 @@ #include "emu.h" #include "z8536.h" +//#define VERBOSE 1 +#include "logmacro.h" + // device type definition -const device_type Z8536 = device_creator; +DEFINE_DEVICE_TYPE(Z8536, z8536_device, "z8536", "Zilog Z8536 CIO") //************************************************************************** // MACROS / CONSTANTS //************************************************************************** -#define LOG 0 - -static const char *PMS_PTS[] = { "Bit", "Input", "Output", "Bidirectional" }; -static const char *PMS_PMS[] = { "Disabled", "AND", "OR", "OR-PEV" }; -static const char *CTMS_DCS[] = { "Pulse", "One-shot", "Square Wave", "Do not use" }; +static char const *const PMS_PTS[] = { "Bit", "Input", "Output", "Bidirectional" }; +static char const *const PMS_PMS[] = { "Disabled", "AND", "OR", "OR-PEV" }; +static char const *const CTMS_DCS[] = { "Pulse", "One-shot", "Square Wave", "Do not use" }; // master interrupt control register @@ -238,7 +239,7 @@ void z8536_device::check_interrupt() if (m_irq != state) { - if (LOG) logerror("%s Z8536 '%s' Interrupt: %u\n", machine().describe_context(), tag(), state); + LOG("%s Z8536 Interrupt: %u\n", machine().describe_context(), state); m_irq = state; m_write_irq(state); } @@ -343,7 +344,7 @@ void z8536_device::write_register(offs_t offset, uint8_t data) case MASTER_INTERRUPT_CONTROL: if (data & MICR_RESET) { - if (LOG) logerror("%s Z8536 '%s' Reset\n", machine().describe_context(), tag()); + LOG("%s Z8536 Reset\n", machine().describe_context()); device_reset(); } else @@ -353,32 +354,26 @@ void z8536_device::write_register(offs_t offset, uint8_t data) m_state = STATE_0; } - if (LOG) - { - if (LOG) logerror("%s Z8536 '%s' Master Interrupt Enable: %u\n", machine().describe_context(), tag(), (data & MICR_MIE) ? 1 : 0); - if (LOG) logerror("%s Z8536 '%s' Disable Lower Chain: %u\n", machine().describe_context(), tag(), (data & MICR_DLC) ? 1 : 0); - if (LOG) logerror("%s Z8536 '%s' No Vector: %u\n", machine().describe_context(), tag(), (data & MICR_NV) ? 1 : 0); - if (LOG) logerror("%s Z8536 '%s' Port A Vector Includes Status: %u\n", machine().describe_context(), tag(), (data & MICR_PA_VIS) ? 1 : 0); - if (LOG) logerror("%s Z8536 '%s' Port B Vector Includes Status: %u\n", machine().describe_context(), tag(), (data & MICR_PB_VIS) ? 1 : 0); - if (LOG) logerror("%s Z8536 '%s' Counter/Timer Vector Includes Status: %u\n", machine().describe_context(), tag(), (data & MICR_CT_VIS) ? 1 : 0); - if (LOG) logerror("%s Z8536 '%s' Right Justified Address: %u\n", machine().describe_context(), tag(), (data & MICR_RJA) ? 1 : 0); - } + LOG("%s Z8536 Master Interrupt Enable: %u\n", machine().describe_context(), (data & MICR_MIE) ? 1 : 0); + LOG("%s Z8536 Disable Lower Chain: %u\n", machine().describe_context(), (data & MICR_DLC) ? 1 : 0); + LOG("%s Z8536 No Vector: %u\n", machine().describe_context(), (data & MICR_NV) ? 1 : 0); + LOG("%s Z8536 Port A Vector Includes Status: %u\n", machine().describe_context(), (data & MICR_PA_VIS) ? 1 : 0); + LOG("%s Z8536 Port B Vector Includes Status: %u\n", machine().describe_context(), (data & MICR_PB_VIS) ? 1 : 0); + LOG("%s Z8536 Counter/Timer Vector Includes Status: %u\n", machine().describe_context(), (data & MICR_CT_VIS) ? 1 : 0); + LOG("%s Z8536 Right Justified Address: %u\n", machine().describe_context(), (data & MICR_RJA) ? 1 : 0); m_register[offset] = data; } break; case MASTER_CONFIGURATION_CONTROL: - if (LOG) - { - if (LOG) logerror("%s Z8536 '%s' Port B Enable: %u\n", machine().describe_context(), tag(), (data & MCCR_PBE) ? 1 : 0); - if (LOG) logerror("%s Z8536 '%s' Counter/Timer 1 Enable: %u\n", machine().describe_context(), tag(), (data & MCCR_CT1E) ? 1 : 0); - if (LOG) logerror("%s Z8536 '%s' Counter/Timer 2 Enable: %u\n", machine().describe_context(), tag(), (data & MCCR_CT2E) ? 1 : 0); - if (LOG) logerror("%s Z8536 '%s' Port C and Counter/Timer 3 Enable: %u\n", machine().describe_context(), tag(), (data & MCCR_PCE_CT3E) ? 1 : 0); - if (LOG) logerror("%s Z8536 '%s' Port A Enable: %u\n", machine().describe_context(), tag(), (data & MCCR_PAE) ? 1 : 0); - if (LOG) logerror("%s Z8536 '%s' Port Link Control: %u\n", machine().describe_context(), tag(), (data & MCCR_PLC) ? 1 : 0); - if (LOG) logerror("%s Z8536 '%s' Counter/Timer Link Controls: %u\n", machine().describe_context(), tag(), data & MCCR_LC_MASK); - } + LOG("%s Z8536 Port B Enable: %u\n", machine().describe_context(), (data & MCCR_PBE) ? 1 : 0); + LOG("%s Z8536 Counter/Timer 1 Enable: %u\n", machine().describe_context(), (data & MCCR_CT1E) ? 1 : 0); + LOG("%s Z8536 Counter/Timer 2 Enable: %u\n", machine().describe_context(), (data & MCCR_CT2E) ? 1 : 0); + LOG("%s Z8536 Port C and Counter/Timer 3 Enable: %u\n", machine().describe_context(), (data & MCCR_PCE_CT3E) ? 1 : 0); + LOG("%s Z8536 Port A Enable: %u\n", machine().describe_context(), (data & MCCR_PAE) ? 1 : 0); + LOG("%s Z8536 Port Link Control: %u\n", machine().describe_context(), (data & MCCR_PLC) ? 1 : 0); + LOG("%s Z8536 Counter/Timer Link Controls: %u\n", machine().describe_context(), data & MCCR_LC_MASK); m_register[offset] = data; @@ -390,32 +385,32 @@ void z8536_device::write_register(offs_t offset, uint8_t data) break; case PORT_A_INTERRUPT_VECTOR: - if (LOG) logerror("%s Z8536 '%s' Port A Interrupt Vector: %02x\n", machine().describe_context(), tag(), data); + LOG("%s Z8536 Port A Interrupt Vector: %02x\n", machine().describe_context(), data); m_register[offset] = data; break; case PORT_B_INTERRUPT_VECTOR: - if (LOG) logerror("%s Z8536 '%s' Port B Interrupt Vector: %02x\n", machine().describe_context(), tag(), data); + LOG("%s Z8536 Port B Interrupt Vector: %02x\n", machine().describe_context(), data); m_register[offset] = data; break; case COUNTER_TIMER_INTERRUPT_VECTOR: - if (LOG) logerror("%s Z8536 '%s' Counter/Timer Interrupt Vector: %02x\n", machine().describe_context(), tag(), data); + LOG("%s Z8536 Counter/Timer Interrupt Vector: %02x\n", machine().describe_context(), data); m_register[offset] = data; break; case PORT_C_DATA_PATH_POLARITY: - if (LOG) logerror("%s Z8536 '%s' Port C Data Path Polarity: %02x\n", machine().describe_context(), tag(), data); + LOG("%s Z8536 Port C Data Path Polarity: %02x\n", machine().describe_context(), data); m_register[offset] = data; break; case PORT_C_DATA_DIRECTION: - if (LOG) logerror("%s Z8536 '%s' Port C Data Direction: %02x\n", machine().describe_context(), tag(), data); + LOG("%s Z8536 Port C Data Direction: %02x\n", machine().describe_context(), data); m_register[offset] = data; break; case PORT_C_SPECIAL_IO_CONTROL: - if (LOG) logerror("%s Z8536 '%s' Port C Special I/O Control: %02x\n", machine().describe_context(), tag(), data); + LOG("%s Z8536 Port C Special I/O Control: %02x\n", machine().describe_context(), data); m_register[offset] = data; break; @@ -424,17 +419,17 @@ void z8536_device::write_register(offs_t offset, uint8_t data) { char port = 'A' + offset - PORT_A_COMMAND_AND_STATUS; - if (LOG) logerror("%s Z8536 '%s' Port %c Interrupt on Error: %u\n", machine().describe_context(), tag(), port, (data & PCS_IOE) ? 1 : 0); + LOG("%s Z8536 Port %c Interrupt on Error: %u\n", machine().describe_context(), port, (data & PCS_IOE) ? 1 : 0); switch (data >> 5) { - case IC_CLEAR_IP_IUS: m_register[offset] &= ~(PCS_IP | PCS_IUS); if (LOG) logerror("%s Z8536 '%s' Port %c Clear IP/IUS\n", machine().describe_context(), tag(), port); break; - case IC_SET_IUS: m_register[offset] |= PCS_IUS; if (LOG) logerror("%s Z8536 '%s' Port %c Set IUS\n", machine().describe_context(), tag(), port); break; - case IC_CLEAR_IUS: m_register[offset] &= ~PCS_IUS; if (LOG) logerror("%s Z8536 '%s' Port %c Clear IUS\n", machine().describe_context(), tag(), port); break; - case IC_SET_IP: m_register[offset] |= PCS_IP; if (LOG) logerror("%s Z8536 '%s' Port %c Set IP\n", machine().describe_context(), tag(), port); break; - case IC_CLEAR_IP: m_register[offset] &= ~PCS_IP; if (LOG) logerror("%s Z8536 '%s' Port %c Clear IP\n", machine().describe_context(), tag(), port); break; - case IC_SET_IE: m_register[offset] |= PCS_IE; if (LOG) logerror("%s Z8536 '%s' Port %c Set IE\n", machine().describe_context(), tag(), port); break; - case IC_CLEAR_IE: m_register[offset] &= ~PCS_IE; if (LOG) logerror("%s Z8536 '%s' Port %c Clear IE\n", machine().describe_context(), tag(), port); break; + case IC_CLEAR_IP_IUS: m_register[offset] &= ~(PCS_IP | PCS_IUS); LOG("%s Z8536 Port %c Clear IP/IUS\n", machine().describe_context(), port); break; + case IC_SET_IUS: m_register[offset] |= PCS_IUS; LOG("%s Z8536 Port %c Set IUS\n", machine().describe_context(), port); break; + case IC_CLEAR_IUS: m_register[offset] &= ~PCS_IUS; LOG("%s Z8536 Port %c Clear IUS\n", machine().describe_context(), port); break; + case IC_SET_IP: m_register[offset] |= PCS_IP; LOG("%s Z8536 Port %c Set IP\n", machine().describe_context(), port); break; + case IC_CLEAR_IP: m_register[offset] &= ~PCS_IP; LOG("%s Z8536 Port %c Clear IP\n", machine().describe_context(), port); break; + case IC_SET_IE: m_register[offset] |= PCS_IE; LOG("%s Z8536 Port %c Set IE\n", machine().describe_context(), port); break; + case IC_CLEAR_IE: m_register[offset] &= ~PCS_IE; LOG("%s Z8536 Port %c Clear IE\n", machine().describe_context(), port); break; } m_register[offset] = (m_register[offset] & ~PCS_IOE) | (data & PCS_IOE); @@ -450,22 +445,19 @@ void z8536_device::write_register(offs_t offset, uint8_t data) { int counter = offset - COUNTER_TIMER_1_COMMAND_AND_STATUS; - if (LOG) - { - if (LOG) logerror("%s Z8536 '%s' Counter/Timer %u Trigger Command Bit: %u\n", machine().describe_context(), tag(), counter + 1, (data & CTCS_TCB) ? 1 : 0); - if (LOG) logerror("%s Z8536 '%s' Counter/Timer %u Gate Command Bit: %u\n", machine().describe_context(), tag(), counter + 1, (data & CTCS_GCB) ? 1 : 0); - if (LOG) logerror("%s Z8536 '%s' Counter/Timer %u Read Counter Control: %u\n", machine().describe_context(), tag(), counter + 1, (data & CTCS_RCC) ? 1 : 0); - } + LOG("%s Z8536 Counter/Timer %u Trigger Command Bit: %u\n", machine().describe_context(), counter + 1, (data & CTCS_TCB) ? 1 : 0); + LOG("%s Z8536 Counter/Timer %u Gate Command Bit: %u\n", machine().describe_context(), counter + 1, (data & CTCS_GCB) ? 1 : 0); + LOG("%s Z8536 Counter/Timer %u Read Counter Control: %u\n", machine().describe_context(), counter + 1, (data & CTCS_RCC) ? 1 : 0); switch (data >> 5) { - case IC_CLEAR_IP_IUS: m_register[offset] &= ~(CTCS_IP | CTCS_IUS);if (LOG) logerror("%s Z8536 '%s' Counter/Timer %u Clear IP/IUS\n", machine().describe_context(), tag(), counter + 1); break; - case IC_SET_IUS: m_register[offset] |= CTCS_IUS; if (LOG) logerror("%s Z8536 '%s' Counter/Timer %u Set IUS\n", machine().describe_context(), tag(), counter + 1); break; - case IC_CLEAR_IUS: m_register[offset] &= ~CTCS_IUS; if (LOG) logerror("%s Z8536 '%s' Counter/Timer %u Clear IUS\n", machine().describe_context(), tag(), counter + 1); break; - case IC_SET_IP: m_register[offset] |= CTCS_IP; if (LOG) logerror("%s Z8536 '%s' Counter/Timer %u Set IP\n", machine().describe_context(), tag(), counter + 1); break; - case IC_CLEAR_IP: m_register[offset] &= ~CTCS_IP; if (LOG) logerror("%s Z8536 '%s' Counter/Timer %u Clear IP\n", machine().describe_context(), tag(), counter + 1); break; - case IC_SET_IE: m_register[offset] |= CTCS_IE; if (LOG) logerror("%s Z8536 '%s' Counter/Timer %u Set IE\n", machine().describe_context(), tag(), counter + 1); break; - case IC_CLEAR_IE: m_register[offset] &= ~CTCS_IE; if (LOG) logerror("%s Z8536 '%s' Counter/Timer %u Clear IE\n", machine().describe_context(), tag(), counter + 1); break; + case IC_CLEAR_IP_IUS: m_register[offset] &= ~(CTCS_IP | CTCS_IUS);LOG("%s Z8536 Counter/Timer %u Clear IP/IUS\n", machine().describe_context(), counter + 1); break; + case IC_SET_IUS: m_register[offset] |= CTCS_IUS; LOG("%s Z8536 Counter/Timer %u Set IUS\n", machine().describe_context(), counter + 1); break; + case IC_CLEAR_IUS: m_register[offset] &= ~CTCS_IUS; LOG("%s Z8536 Counter/Timer %u Clear IUS\n", machine().describe_context(), counter + 1); break; + case IC_SET_IP: m_register[offset] |= CTCS_IP; LOG("%s Z8536 Counter/Timer %u Set IP\n", machine().describe_context(), counter + 1); break; + case IC_CLEAR_IP: m_register[offset] &= ~CTCS_IP; LOG("%s Z8536 Counter/Timer %u Clear IP\n", machine().describe_context(), counter + 1); break; + case IC_SET_IE: m_register[offset] |= CTCS_IE; LOG("%s Z8536 Counter/Timer %u Set IE\n", machine().describe_context(), counter + 1); break; + case IC_CLEAR_IE: m_register[offset] &= ~CTCS_IE; LOG("%s Z8536 Counter/Timer %u Clear IE\n", machine().describe_context(), counter + 1); break; } // gate command bit @@ -511,11 +503,7 @@ void z8536_device::write_register(offs_t offset, uint8_t data) case COUNTER_TIMER_1_TIME_CONSTANT_MS_BYTE: case COUNTER_TIMER_2_TIME_CONSTANT_MS_BYTE: case COUNTER_TIMER_3_TIME_CONSTANT_MS_BYTE: - if (LOG) - { - int counter = (offset - COUNTER_TIMER_1_TIME_CONSTANT_MS_BYTE) >> 1; - if (LOG) logerror("%s Z8536 '%s' Counter/Timer %u Time Constant MSB: %02x\n", machine().describe_context(), tag(), counter + 1, data); - } + LOG("%s Z8536 Counter/Timer %u Time Constant MSB: %02x\n", machine().describe_context(), ((offset - COUNTER_TIMER_1_TIME_CONSTANT_MS_BYTE) >> 1) + 1, data); m_register[offset] = data; break; @@ -523,11 +511,7 @@ void z8536_device::write_register(offs_t offset, uint8_t data) case COUNTER_TIMER_1_TIME_CONSTANT_LS_BYTE: case COUNTER_TIMER_2_TIME_CONSTANT_LS_BYTE: case COUNTER_TIMER_3_TIME_CONSTANT_LS_BYTE: - if (LOG) - { - int counter = (offset - COUNTER_TIMER_1_TIME_CONSTANT_LS_BYTE) >> 1; - if (LOG) logerror("%s Z8536 '%s' Counter/Timer %u Time Constant LSB: %02x\n", machine().describe_context(), tag(), counter + 1, data); - } + LOG("%s Z8536 Counter/Timer %u Time Constant LSB: %02x\n", machine().describe_context(), ((offset - COUNTER_TIMER_1_TIME_CONSTANT_LS_BYTE) >> 1) + 1, data); m_register[offset] = data; break; @@ -535,18 +519,18 @@ void z8536_device::write_register(offs_t offset, uint8_t data) case COUNTER_TIMER_1_MODE_SPECIFICATION: case COUNTER_TIMER_2_MODE_SPECIFICATION: case COUNTER_TIMER_3_MODE_SPECIFICATION: - if (LOG) + if (VERBOSE) { - int counter = offset - COUNTER_TIMER_1_MODE_SPECIFICATION; - int dcs = data & CTMS_DCS_MASK; - - logerror("%s Z8536 '%s' Counter/Timer %u Mode: %s\n", machine().describe_context(), tag(), counter + 1, (data & CTMS_CSC) ? "Continuous" : "Single Cycle"); - logerror("%s Z8536 '%s' Counter/Timer %u External Output Enable: %u\n", machine().describe_context(), tag(), counter + 1, (data & CTMS_EOE) ? 1 : 0); - logerror("%s Z8536 '%s' Counter/Timer %u External Count Enable: %u\n", machine().describe_context(), tag(), counter + 1, (data & CTMS_ECE) ? 1 : 0); - logerror("%s Z8536 '%s' Counter/Timer %u External Trigger Enable: %u\n", machine().describe_context(), tag(), counter + 1, (data & CTMS_ETE) ? 1 : 0); - logerror("%s Z8536 '%s' Counter/Timer %u External Gate Enable: %u\n", machine().describe_context(), tag(), counter + 1, (data & CTMS_EDE) ? 1 : 0); - logerror("%s Z8536 '%s' Counter/Timer %u Retrigger Enable: %u\n", machine().describe_context(), tag(), counter + 1, (data & CTMS_REB) ? 1 : 0); - logerror("%s Z8536 '%s' Counter/Timer %u Output Duty Cycle: %s\n", machine().describe_context(), tag(), counter + 1, CTMS_DCS[dcs]); + int const counter = offset - COUNTER_TIMER_1_MODE_SPECIFICATION; + int const dcs = data & CTMS_DCS_MASK; + + LOG("%s Z8536 Counter/Timer %u Mode: %s\n", machine().describe_context(), counter + 1, (data & CTMS_CSC) ? "Continuous" : "Single Cycle"); + LOG("%s Z8536 Counter/Timer %u External Output Enable: %u\n", machine().describe_context(), counter + 1, (data & CTMS_EOE) ? 1 : 0); + LOG("%s Z8536 Counter/Timer %u External Count Enable: %u\n", machine().describe_context(), counter + 1, (data & CTMS_ECE) ? 1 : 0); + LOG("%s Z8536 Counter/Timer %u External Trigger Enable: %u\n", machine().describe_context(), counter + 1, (data & CTMS_ETE) ? 1 : 0); + LOG("%s Z8536 Counter/Timer %u External Gate Enable: %u\n", machine().describe_context(), counter + 1, (data & CTMS_EDE) ? 1 : 0); + LOG("%s Z8536 Counter/Timer %u Retrigger Enable: %u\n", machine().describe_context(), counter + 1, (data & CTMS_REB) ? 1 : 0); + LOG("%s Z8536 Counter/Timer %u Output Duty Cycle: %s\n", machine().describe_context(), counter + 1, CTMS_DCS[dcs]); } m_register[offset] = data; @@ -554,22 +538,22 @@ void z8536_device::write_register(offs_t offset, uint8_t data) case PORT_A_MODE_SPECIFICATION: case PORT_B_MODE_SPECIFICATION: - if (LOG) + if (VERBOSE) { - char port = BIT(offset, 3) ? 'B' : 'A'; - int pts = (data & PMS_PTS_MASK) >> 6; - int pms = (data & PMS_PMS_MASK) >> 1; + char const port = BIT(offset, 3) ? 'B' : 'A'; + int const pts = (data & PMS_PTS_MASK) >> 6; + int const pms = (data & PMS_PMS_MASK) >> 1; - logerror("%s Z8536 '%s' Port %c Port Type: %s\n", machine().describe_context(), tag(), port, PMS_PTS[pts]); - logerror("%s Z8536 '%s' Port %c Interrupt on 2 Bytes: %u\n", machine().describe_context(), tag(), port, (data & PMS_ITB) ? 1 : 0); - logerror("%s Z8536 '%s' Port %c Single Buffer: %u\n", machine().describe_context(), tag(), port, (data & PMS_SB) ? 1 : 0); - logerror("%s Z8536 '%s' Port %c Interrupt on Match Only: %u\n", machine().describe_context(), tag(), port, (data & PMS_IMO) ? 1 : 0); - logerror("%s Z8536 '%s' Port %c Pattern Mode: %s\n", machine().describe_context(), tag(), port, PMS_PMS[pms]); + LOG("%s Z8536 Port %c Port Type: %s\n", machine().describe_context(), port, PMS_PTS[pts]); + LOG("%s Z8536 Port %c Interrupt on 2 Bytes: %u\n", machine().describe_context(), port, (data & PMS_ITB) ? 1 : 0); + LOG("%s Z8536 Port %c Single Buffer: %u\n", machine().describe_context(), port, (data & PMS_SB) ? 1 : 0); + LOG("%s Z8536 Port %c Interrupt on Match Only: %u\n", machine().describe_context(), port, (data & PMS_IMO) ? 1 : 0); + LOG("%s Z8536 Port %c Pattern Mode: %s\n", machine().describe_context(), port, PMS_PMS[pms]); if (pts == PTS_BIT) - logerror("%s Z8536 '%s' Port %c Latch on Pattern Match: %u\n", machine().describe_context(), tag(), port, (data & PMS_LPM) ? 1 : 0); + LOG("%s Z8536 Port %c Latch on Pattern Match: %u\n", machine().describe_context(), port, (data & PMS_LPM) ? 1 : 0); else - logerror("%s Z8536 '%s' Port %c Deskew Timer Enable: %u\n", machine().describe_context(), tag(), port, (data & PMS_DTE) ? 1 : 0); + LOG("%s Z8536 Port %c Deskew Timer Enable: %u\n", machine().describe_context(), port, (data & PMS_DTE) ? 1 : 0); } m_register[offset] = data; @@ -582,44 +566,44 @@ void z8536_device::write_register(offs_t offset, uint8_t data) case PORT_A_DATA_PATH_POLARITY: case PORT_B_DATA_PATH_POLARITY: - if (LOG) logerror("%s Z8536 '%s' Port %c Data Path Polarity: %02x\n", machine().describe_context(), tag(), BIT(offset, 3) ? 'B' : 'A', data); + LOG("%s Z8536 Port %c Data Path Polarity: %02x\n", machine().describe_context(), BIT(offset, 3) ? 'B' : 'A', data); m_register[offset] = data; break; case PORT_A_DATA_DIRECTION: case PORT_B_DATA_DIRECTION: - if (LOG) logerror("%s Z8536 '%s' Port %c Data Direction: %02x\n", machine().describe_context(), tag(), BIT(offset, 3) ? 'B' : 'A', data); + LOG("%s Z8536 Port %c Data Direction: %02x\n", machine().describe_context(), BIT(offset, 3) ? 'B' : 'A', data); m_register[offset] = data; break; case PORT_A_SPECIAL_IO_CONTROL: case PORT_B_SPECIAL_IO_CONTROL: - if (LOG) logerror("%s Z8536 '%s' Port %c Special I/O Control: %02x\n", machine().describe_context(), tag(), BIT(offset, 3) ? 'B' : 'A', data); + LOG("%s Z8536 Port %c Special I/O Control: %02x\n", machine().describe_context(), BIT(offset, 3) ? 'B' : 'A', data); m_register[offset] = data; break; case PORT_A_PATTERN_POLARITY: case PORT_B_PATTERN_POLARITY: - if (LOG) logerror("%s Z8536 '%s' Port %c Pattern Polarity: %02x\n", machine().describe_context(), tag(), BIT(offset, 3) ? 'B' : 'A', data); + LOG("%s Z8536 Port %c Pattern Polarity: %02x\n", machine().describe_context(), BIT(offset, 3) ? 'B' : 'A', data); m_register[offset] = data; break; case PORT_A_PATTERN_TRANSITION: case PORT_B_PATTERN_TRANSITION: - if (LOG) logerror("%s Z8536 '%s' Port %c Pattern Transition: %02x\n", machine().describe_context(), tag(), BIT(offset, 3) ? 'B' : 'A', data); + LOG("%s Z8536 Port %c Pattern Transition: %02x\n", machine().describe_context(), BIT(offset, 3) ? 'B' : 'A', data); m_register[offset] = data; break; case PORT_A_PATTERN_MASK: case PORT_B_PATTERN_MASK: - if (LOG) logerror("%s Z8536 '%s' Port %c Pattern Mask: %02x\n", machine().describe_context(), tag(), BIT(offset, 3) ? 'B' : 'A', data); + LOG("%s Z8536 Port %c Pattern Mask: %02x\n", machine().describe_context(), BIT(offset, 3) ? 'B' : 'A', data); m_register[offset] = data; match_pattern(BIT(offset, 3)); check_interrupt(); break; default: - logerror("%s: Z8536 '%s' Unimplemented write %02x to register %u\n", machine().describe_context(), tag(), data, offset); + logerror("%s: Z8536 Unimplemented write %02x to register %u\n", machine().describe_context(), data, offset); m_register[offset] = data; } } @@ -735,7 +719,7 @@ void z8536_device::count(device_timer_id id) } else { - if (LOG) logerror("%s Z8536 '%s' Counter/Timer %u Interrupt Pending\n", machine().describe_context(), tag(), id + 1); + LOG("%s Z8536 Counter/Timer %u Interrupt Pending\n", machine().describe_context(), id + 1); // set interrupt pending bit m_register[COUNTER_TIMER_1_COMMAND_AND_STATUS + id] |= CTCS_IP; @@ -748,7 +732,7 @@ void z8536_device::count(device_timer_id id) } else { - if (LOG) logerror("%s Z8536 '%s' Counter/Timer %u Terminal Count\n", machine().describe_context(), tag(), id + 1); + LOG("%s Z8536 Counter/Timer %u Terminal Count\n", machine().describe_context(), id + 1); // clear count in progress bit m_register[COUNTER_TIMER_1_COMMAND_AND_STATUS + id] &= ~CTCS_CIP; @@ -768,7 +752,7 @@ void z8536_device::trigger(device_timer_id id) // ignore triggers during countdown if retrigger is disabled if (!(m_register[COUNTER_TIMER_1_MODE_SPECIFICATION + id] & CTMS_REB) && (m_register[COUNTER_TIMER_1_COMMAND_AND_STATUS + id] & CTCS_CIP)) return; - if (LOG) logerror("%s Z8536 '%s' Counter/Timer %u Trigger\n", machine().describe_context(), tag(), id + 1); + LOG("%s Z8536 Counter/Timer %u Trigger\n", machine().describe_context(), id + 1); // load counter with time constant m_counter[id] = (m_register[COUNTER_TIMER_1_TIME_CONSTANT_MS_BYTE + (id << 1)] << 8) | m_register[COUNTER_TIMER_1_TIME_CONSTANT_LS_BYTE + (id << 1)]; @@ -805,7 +789,7 @@ void z8536_device::match_pattern(int port) if (m_match[port]) { - if (LOG) logerror("%s Z8536 '%s' Port %c Interrupt Pending\n", machine().describe_context(), tag(), 'A' + port); + LOG("%s Z8536 Port %c Interrupt Pending\n", machine().describe_context(), 'A' + port); m_register[PORT_A_COMMAND_AND_STATUS + port] |= PCS_IP; check_interrupt(); } @@ -830,7 +814,7 @@ void z8536_device::external_port_w(int port, int bit, int state) if (!BIT(ddr, bit)) return; - if (LOG) logerror("%s Z8536 '%s' Port %c Bit %u: %u\n", machine().describe_context(), tag(), 'A' + port, bit, state); + LOG("%s Z8536 Port %c Bit %u: %u\n", machine().describe_context(), 'A' + port, bit, state); m_input[port] = (m_input[port] & ~(1 << bit)) | (state << bit); @@ -854,7 +838,7 @@ void z8536_device::external_port_w(int port, int bit, int state) //------------------------------------------------- z8536_device::z8536_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, Z8536, "Zilog Z8536", tag, owner, clock, "z8536", __FILE__), + device_t(mconfig, Z8536, tag, owner, clock), device_z80daisy_interface(mconfig, *this), m_write_irq(*this), m_read_pa(*this), @@ -1087,7 +1071,7 @@ int z8536_device::intack_r() get_interrupt_vector(); int data = m_register[CURRENT_VECTOR]; - if (LOG) logerror("%s Z8536 '%s' Interrupt Acknowledge: %02x\n", machine().describe_context(), tag(), data); + LOG("%s Z8536 Interrupt Acknowledge: %02x\n", machine().describe_context(), data); // set interrupt under service bit if ((m_register[COUNTER_TIMER_3_COMMAND_AND_STATUS] & (CTCS_IP | CTCS_IE)) == (CTCS_IP | CTCS_IE)) diff --git a/src/devices/machine/z8536.h b/src/devices/machine/z8536.h index e000196a97a..3a21628e53f 100644 --- a/src/devices/machine/z8536.h +++ b/src/devices/machine/z8536.h @@ -29,10 +29,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_MACHINE_Z8536_H +#define MAME_MACHINE_Z8536_H -#ifndef __Z8536__ -#define __Z8536__ +#pragma once #include "cpu/z80/z80daisy.h" @@ -78,13 +78,13 @@ public: // construction/destruction z8536_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_irq_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_irq.set_callback(object); } - template static devcb_base &set_pa_rd_callback(device_t &device, _Object object) { return downcast(device).m_read_pa.set_callback(object); } - template static devcb_base &set_pa_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_pa.set_callback(object); } - template static devcb_base &set_pb_rd_callback(device_t &device, _Object object) { return downcast(device).m_read_pb.set_callback(object); } - template static devcb_base &set_pb_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_pb.set_callback(object); } - template static devcb_base &set_pc_rd_callback(device_t &device, _Object object) { return downcast(device).m_read_pc.set_callback(object); } - template static devcb_base &set_pc_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_pc.set_callback(object); } + template static devcb_base &set_irq_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_irq.set_callback(std::forward(cb)); } + template static devcb_base &set_pa_rd_callback(device_t &device, Object &&cb) { return downcast(device).m_read_pa.set_callback(std::forward(cb)); } + template static devcb_base &set_pa_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_pa.set_callback(std::forward(cb)); } + template static devcb_base &set_pb_rd_callback(device_t &device, Object &&cb) { return downcast(device).m_read_pb.set_callback(std::forward(cb)); } + template static devcb_base &set_pb_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_pb.set_callback(std::forward(cb)); } + template static devcb_base &set_pc_rd_callback(device_t &device, Object &&cb) { return downcast(device).m_read_pc.set_callback(std::forward(cb)); } + template static devcb_base &set_pc_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_pc.set_callback(std::forward(cb)); } DECLARE_READ8_MEMBER( read ); DECLARE_WRITE8_MEMBER( write ); @@ -345,8 +345,6 @@ private: // device type definition -extern const device_type Z8536; - - +DECLARE_DEVICE_TYPE(Z8536, z8536_device) -#endif +#endif // MAME_MACHINE_Z8536_H diff --git a/src/devices/sound/2203intf.cpp b/src/devices/sound/2203intf.cpp index 56db3d8da38..32f5612607a 100644 --- a/src/devices/sound/2203intf.cpp +++ b/src/devices/sound/2203intf.cpp @@ -4,46 +4,16 @@ #include "2203intf.h" #include "fm.h" -static void psg_set_clock(void *param, int clock) +const ssg_callbacks ym2203_device::psgintf = { - ym2203_device *ym2203 = (ym2203_device *) param; - ym2203->ay_set_clock(clock); -} - -static void psg_write(void *param, int address, int data) -{ - ym2203_device *ym2203 = (ym2203_device *) param; - ym2203->ay8910_write_ym(address, data); -} - -static int psg_read(void *param) -{ - ym2203_device *ym2203 = (ym2203_device *) param; - return ym2203->ay8910_read_ym(); -} - -static void psg_reset(void *param) -{ - ym2203_device *ym2203 = (ym2203_device *) param; - ym2203->ay8910_reset_ym(); -} - -static const ssg_callbacks psgintf = -{ - psg_set_clock, - psg_write, - psg_read, - psg_reset + &ym2203_device::psg_set_clock, + &ym2203_device::psg_write, + &ym2203_device::psg_read, + &ym2203_device::psg_reset }; /* IRQ Handler */ -static void IRQHandler(void *param,int irq) -{ - ym2203_device *ym2203 = (ym2203_device *) param; - ym2203->_IRQHandler(irq); -} - -void ym2203_device::_IRQHandler(int irq) +void ym2203_device::irq_handler(int irq) { if (!m_irq_handler.isnull()) m_irq_handler(irq); @@ -64,13 +34,7 @@ void ym2203_device::device_timer(emu_timer &timer, device_timer_id id, int param } } -static void timer_handler(void *param,int c,int count,int clock) -{ - ym2203_device *ym2203 = (ym2203_device *) param; - ym2203->_timer_handler(c, count, clock); -} - -void ym2203_device::_timer_handler(int c,int count,int clock) +void ym2203_device::timer_handler(int c, int count, int clock) { if( count == 0 ) { /* Reset FM Timer */ @@ -85,18 +49,6 @@ void ym2203_device::_timer_handler(int c,int count,int clock) } } -/* update request from fm.c */ -void ym2203_update_request(void *param) -{ - ym2203_device *ym2203 = (ym2203_device *) param; - ym2203->_ym2203_update_request(); -} - -void ym2203_device::_ym2203_update_request() -{ - m_stream->update(); -} - //------------------------------------------------- // sound_stream_update - handle a stream update //------------------------------------------------- @@ -133,7 +85,7 @@ void ym2203_device::device_start() /* Initialize FM emurator */ int rate = clock()/72; /* ??? */ - m_chip = ym2203_init(this,this,clock(),rate,timer_handler,IRQHandler,&psgintf); + m_chip = ym2203_init(this,clock(),rate,&ym2203_device::static_timer_handler,&ym2203_device::static_irq_handler,&psgintf); assert_always(m_chip != nullptr, "Error creating YM2203 chip"); } @@ -202,10 +154,13 @@ WRITE8_MEMBER( ym2203_device::write_port_w ) write(space, 1, data); } -const device_type YM2203 = device_creator; +DEFINE_DEVICE_TYPE(YM2203, ym2203_device, "ym2203", "YM2203 OPN") ym2203_device::ym2203_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : ay8910_device(mconfig, YM2203, "YM2203", tag, owner, clock, PSG_TYPE_YM, 3, 2, "ym2203", __FILE__), - m_irq_handler(*this) + : ay8910_device(mconfig, YM2203, tag, owner, clock, PSG_TYPE_YM, 3, 2) + , m_stream(nullptr) + , m_timer{ nullptr, nullptr } + , m_chip(nullptr) + , m_irq_handler(*this) { } diff --git a/src/devices/sound/2203intf.h b/src/devices/sound/2203intf.h index 20c63887a04..af1a2f622a9 100644 --- a/src/devices/sound/2203intf.h +++ b/src/devices/sound/2203intf.h @@ -1,16 +1,18 @@ // license:BSD-3-Clause // copyright-holders:Ernesto Corvi -#pragma once +#ifndef MAME_SOUND_2203INTF_H +#define MAME_SOUND_2203INTF_H -#ifndef __2203INTF_H__ -#define __2203INTF_H__ +#pragma once #include "ay8910.h" -void ym2203_update_request(void *param); -#define MCFG_YM2203_IRQ_HANDLER(_devcb) \ - devcb = &ym2203_device::set_irq_handler(*device, DEVCB_##_devcb); +struct ssg_callbacks; + + +#define MCFG_YM2203_IRQ_HANDLER(cb) \ + devcb = &ym2203_device::set_irq_handler(*device, (DEVCB_##cb)); class ym2203_device : public ay8910_device { @@ -18,7 +20,7 @@ public: ym2203_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // static configuration helpers - template static devcb_base &set_irq_handler(device_t &device, _Object object) { return downcast(device).m_irq_handler.set_callback(object); } + template static devcb_base &set_irq_handler(device_t &device, Object &&cb) { return downcast(device).m_irq_handler.set_callback(std::forward(cb)); } DECLARE_READ8_MEMBER( read ); DECLARE_WRITE8_MEMBER( write ); @@ -28,9 +30,8 @@ public: DECLARE_WRITE8_MEMBER( control_port_w ); DECLARE_WRITE8_MEMBER( write_port_w ); - void _IRQHandler(int irq); - void _timer_handler(int c,int count,int clock); - void _ym2203_update_request(); + // update request from fm.cpp + static void update_request(device_t *param) { downcast(param)->update_request(); } protected: // device-level overrides @@ -44,16 +45,24 @@ protected: void stream_generate(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples); private: + void irq_handler(int irq); + void timer_handler(int c, int count, int clock); + void update_request() { m_stream->update(); } + void calculate_rates(); + static void static_irq_handler(device_t *param, int irq) { downcast(param)->irq_handler(irq); } + static void static_timer_handler(device_t *param, int c, int count, int clock) { downcast(param)->timer_handler(c, count, clock); } + // internal state sound_stream * m_stream; emu_timer * m_timer[2]; void * m_chip; devcb_write_line m_irq_handler; -}; -extern const device_type YM2203; + static const ssg_callbacks psgintf; +}; +DECLARE_DEVICE_TYPE(YM2203, ym2203_device) -#endif /* __2203INTF_H__ */ +#endif // MAME_SOUND_2203INTF_H diff --git a/src/devices/sound/2608intf.cpp b/src/devices/sound/2608intf.cpp index a5471151aa0..ffe48e48efd 100644 --- a/src/devices/sound/2608intf.cpp +++ b/src/devices/sound/2608intf.cpp @@ -17,46 +17,16 @@ #include "2608intf.h" #include "fm.h" -static void psg_set_clock(void *param, int clock) +const ssg_callbacks ym2608_device::psgintf = { - ym2608_device *ym2608 = (ym2608_device *) param; - ym2608->ay_set_clock(clock); -} - -static void psg_write(void *param, int address, int data) -{ - ym2608_device *ym2608 = (ym2608_device *) param; - ym2608->ay8910_write_ym(address, data); -} - -static int psg_read(void *param) -{ - ym2608_device *ym2608 = (ym2608_device *) param; - return ym2608->ay8910_read_ym(); -} - -static void psg_reset(void *param) -{ - ym2608_device *ym2608 = (ym2608_device *) param; - ym2608->ay8910_reset_ym(); -} - -static const ssg_callbacks psgintf = -{ - psg_set_clock, - psg_write, - psg_read, - psg_reset + &ym2608_device::psg_set_clock, + &ym2608_device::psg_write, + &ym2608_device::psg_read, + &ym2608_device::psg_reset }; /* IRQ Handler */ -static void IRQHandler(void *param,int irq) -{ - ym2608_device *ym2608 = (ym2608_device *) param; - ym2608->_IRQHandler(irq); -} - -void ym2608_device::_IRQHandler(int irq) +void ym2608_device::irq_handler(int irq) { if (!m_irq_handler.isnull()) m_irq_handler(irq); @@ -77,13 +47,7 @@ void ym2608_device::device_timer(emu_timer &timer, device_timer_id id, int param } } -static void timer_handler(void *param,int c,int count,int clock) -{ - ym2608_device *ym2608 = (ym2608_device *) param; - ym2608->_timer_handler(c, count, clock); -} - -void ym2608_device::_timer_handler(int c,int count,int clock) +void ym2608_device::timer_handler(int c,int count,int clock) { if( count == 0 ) { /* Reset FM Timer */ @@ -98,18 +62,6 @@ void ym2608_device::_timer_handler(int c,int count,int clock) } } -/* update request from fm.c */ -void ym2608_update_request(void *param) -{ - ym2608_device *ym2608 = (ym2608_device *) param; - ym2608->_ym2608_update_request(); -} - -void ym2608_device::_ym2608_update_request() -{ - m_stream->update(); -} - //------------------------------------------------- // sound_stream_update - handle a stream update //------------------------------------------------- @@ -149,9 +101,9 @@ void ym2608_device::device_start() pcmsizea = m_region->bytes(); /* initialize YM2608 */ - m_chip = ym2608_init(this,this,clock(),rate, + m_chip = ym2608_init(this,clock(),rate, pcmbufa,pcmsizea, - timer_handler,IRQHandler,&psgintf); + &ym2608_device::static_timer_handler,&ym2608_device::static_irq_handler,&psgintf); assert_always(m_chip != nullptr, "Error creating YM2608 chip"); } @@ -184,12 +136,15 @@ WRITE8_MEMBER( ym2608_device::write ) ym2608_write(m_chip, offset & 3, data); } -const device_type YM2608 = device_creator; +DEFINE_DEVICE_TYPE(YM2608, ym2608_device, "ym2608", "YM2608 OPNA") ym2608_device::ym2608_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : ay8910_device(mconfig, YM2608, "YM2608", tag, owner, clock, PSG_TYPE_YM, 1, 2, "ym2608", __FILE__), - m_irq_handler(*this), - m_region(*this, DEVICE_SELF) + : ay8910_device(mconfig, YM2608, tag, owner, clock, PSG_TYPE_YM, 1, 2) + , m_stream(nullptr) + , m_timer{ nullptr, nullptr } + , m_chip(nullptr) + , m_irq_handler(*this) + , m_region(*this, DEVICE_SELF) { } diff --git a/src/devices/sound/2608intf.h b/src/devices/sound/2608intf.h index 25551a01227..67deb180164 100644 --- a/src/devices/sound/2608intf.h +++ b/src/devices/sound/2608intf.h @@ -1,16 +1,18 @@ // license:BSD-3-Clause // copyright-holders:Ernesto Corvi -#pragma once +#ifndef MAME_SOUND_2608INTF_H +#define MAME_SOUND_2608INTF_H -#ifndef __2608INTF_H__ -#define __2608INTF_H__ +#pragma once #include "ay8910.h" -void ym2608_update_request(void *param); -#define MCFG_YM2608_IRQ_HANDLER(_devcb) \ - devcb = &ym2608_device::set_irq_handler(*device, DEVCB_##_devcb); +struct ssg_callbacks; + + +#define MCFG_YM2608_IRQ_HANDLER(cb) \ + devcb = &ym2608_device::set_irq_handler(*device, DEVCB_##cb); class ym2608_device : public ay8910_device { @@ -18,14 +20,13 @@ public: ym2608_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // static configuration helpers - template static devcb_base &set_irq_handler(device_t &device, _Object object) { return downcast(device).m_irq_handler.set_callback(object); } + template static devcb_base &set_irq_handler(device_t &device, Object &&cb) { return downcast(device).m_irq_handler.set_callback(std::forward(cb)); } DECLARE_READ8_MEMBER( read ); DECLARE_WRITE8_MEMBER( write ); - void _IRQHandler(int irq); - void _timer_handler(int c,int count,int clock); - void _ym2608_update_request(); + // update request from fm.cpp + static void update_request(device_t *param) { downcast(param)->update_request(); } protected: // device-level overrides @@ -36,18 +37,26 @@ protected: virtual void device_reset() override; virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; - void stream_generate(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples); + private: + void irq_handler(int irq); + void timer_handler(int c, int count, int clock); + void update_request() { m_stream->update(); } + + static void static_irq_handler(device_t *param, int irq) { downcast(param)->irq_handler(irq); } + static void static_timer_handler(device_t *param, int c, int count, int clock) { downcast(param)->timer_handler(c, count, clock); } + // internal state sound_stream * m_stream; emu_timer * m_timer[2]; void * m_chip; devcb_write_line m_irq_handler; required_memory_region m_region; -}; -extern const device_type YM2608; + static const ssg_callbacks psgintf; +}; +DECLARE_DEVICE_TYPE(YM2608, ym2608_device) -#endif /* __2608INTF_H__ */ +#endif // MAME_SOUND_2608INTF_H diff --git a/src/devices/sound/2610intf.cpp b/src/devices/sound/2610intf.cpp index 8660056c828..ae208511d03 100644 --- a/src/devices/sound/2610intf.cpp +++ b/src/devices/sound/2610intf.cpp @@ -17,50 +17,18 @@ #include "2610intf.h" #include "fm.h" -const char* YM2610_TAG = "ymsnd"; -const char* YM2610_DELTAT_TAG = "ymsnd.deltat"; +char const *const ym2610_device::YM2610_TAG = "ymsnd"; +char const *const ym2610_device::YM2610_DELTAT_TAG = "ymsnd.deltat"; -static void psg_set_clock(void *param, int clock) +const ssg_callbacks ym2610_device::psgintf = { - ym2610_device *ym2610 = (ym2610_device *) param; - ym2610->ay_set_clock(clock); -} - -static void psg_write(void *param, int address, int data) -{ - ym2610_device *ym2610 = (ym2610_device *) param; - ym2610->ay8910_write_ym(address, data); -} - -static int psg_read(void *param) -{ - ym2610_device *ym2610 = (ym2610_device *) param; - return ym2610->ay8910_read_ym(); -} - -static void psg_reset(void *param) -{ - ym2610_device *ym2610 = (ym2610_device *) param; - ym2610->ay8910_reset_ym(); -} - -static const ssg_callbacks psgintf = -{ - psg_set_clock, - psg_write, - psg_read, - psg_reset + &ym2610_device::psg_set_clock, + &ym2610_device::psg_write, + &ym2610_device::psg_read, + &ym2610_device::psg_reset }; -/*------------------------- TM2610 -------------------------------*/ -/* IRQ Handler */ -static void IRQHandler(void *param,int irq) -{ - ym2610_device *ym2610 = (ym2610_device *) param; - ym2610->_IRQHandler(irq); -} - -void ym2610_device::_IRQHandler(int irq) +void ym2610_device::irq_handler(int irq) { if (!m_irq_handler.isnull()) m_irq_handler(irq); @@ -81,13 +49,7 @@ void ym2610_device::device_timer(emu_timer &timer, device_timer_id id, int param } } -static void timer_handler(void *param,int c,int count,int clock) -{ - ym2610_device *ym2610 = (ym2610_device *) param; - ym2610->_timer_handler(c, count, clock); -} - -void ym2610_device::_timer_handler(int c,int count,int clock) +void ym2610_device::timer_handler(int c,int count,int clock) { if( count == 0 ) { /* Reset FM Timer */ @@ -102,18 +64,6 @@ void ym2610_device::_timer_handler(int c,int count,int clock) } } -/* update request from fm.c */ -void ym2610_update_request(void *param) -{ - ym2610_device *ym2610 = (ym2610_device *) param; - ym2610->_ym2610_update_request(); -} - -void ym2610_device::_ym2610_update_request() -{ - m_stream->update(); -} - //------------------------------------------------- // sound_stream_update - handle a stream update //------------------------------------------------- @@ -172,9 +122,9 @@ void ym2610_device::device_start() } /**** initialize YM2610 ****/ - m_chip = ym2610_init(this,this,clock(),rate, + m_chip = ym2610_init(this,clock(),rate, pcmbufa,pcmsizea,pcmbufb,pcmsizeb, - timer_handler,IRQHandler,&psgintf); + &ym2610_device::static_timer_handler,&ym2610_device::static_irq_handler,&psgintf); assert_always(m_chip != nullptr, "Error creating YM2610 chip"); } @@ -208,25 +158,25 @@ WRITE8_MEMBER( ym2610_device::write ) } -const device_type YM2610 = device_creator; +DEFINE_DEVICE_TYPE(YM2610, ym2610_device, "ym2610", "YM2610 OPNB") ym2610_device::ym2610_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : ay8910_device(mconfig, YM2610, "YM2610", tag, owner, clock, PSG_TYPE_YM, 1, 0, "ym2610", __FILE__) - , m_irq_handler(*this) - , m_region(*this, DEVICE_SELF) + : ym2610_device(mconfig, YM2610, tag, owner, clock) { } -ym2610_device::ym2610_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : ay8910_device(mconfig, type, name, tag, owner, clock, PSG_TYPE_YM, 1, 0, shortname, source) +ym2610_device::ym2610_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : ay8910_device(mconfig, type, tag, owner, clock, PSG_TYPE_YM, 1, 0) + , m_stream(nullptr) + , m_timer{ nullptr, nullptr } , m_irq_handler(*this) , m_region(*this, DEVICE_SELF) { } -const device_type YM2610B = device_creator; +DEFINE_DEVICE_TYPE(YM2610B, ym2610b_device, "ym2610b", "YM2610B OPNB") ym2610b_device::ym2610b_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : ym2610_device(mconfig, YM2610B, "YM2610B", tag, owner, clock, "ym2610b", __FILE__) + : ym2610_device(mconfig, YM2610B, tag, owner, clock) { } diff --git a/src/devices/sound/2610intf.h b/src/devices/sound/2610intf.h index 4eff12cb54b..80c47988e41 100644 --- a/src/devices/sound/2610intf.h +++ b/src/devices/sound/2610intf.h @@ -1,37 +1,39 @@ // license:BSD-3-Clause // copyright-holders:Ernesto Corvi -#pragma once +#ifndef MAME_SOUND_2610INTF_H +#define MAME_SOUND_2610INTF_H -#ifndef __2610INTF_H__ -#define __2610INTF_H__ +#pragma once #include "ay8910.h" -void ym2610_update_request(void *param); -#define MCFG_YM2610_IRQ_HANDLER(_devcb) \ - devcb = &ym2610_device::set_irq_handler(*device, DEVCB_##_devcb); +struct ssg_callbacks; + + +#define MCFG_YM2610_IRQ_HANDLER(cb) \ + devcb = &ym2610_device::set_irq_handler(*device, (DEVCB_##cb)); class ym2610_device : public ay8910_device { public: ym2610_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ym2610_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); // static configuration helpers - template static devcb_base &set_irq_handler(device_t &device, _Object object) { return downcast(device).m_irq_handler.set_callback(object); } + template static devcb_base &set_irq_handler(device_t &device, Object &&cb) { return downcast(device).m_irq_handler.set_callback(std::forward(cb)); } DECLARE_READ8_MEMBER( read ); DECLARE_WRITE8_MEMBER( write ); - void _IRQHandler(int irq); - void _timer_handler(int c,int count,int clock); - void _ym2610_update_request(); + // update request from fm.cpp + static void update_request(device_t *param) { downcast(param)->update_request(); } - static const char* YM2610_TAG; - static const char* YM2610_DELTAT_TAG; + static char const *const YM2610_TAG; + static char const *const YM2610_DELTAT_TAG; protected: + ym2610_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_post_load() override; @@ -45,24 +47,34 @@ protected: void * m_chip; private: + void irq_handler(int irq); + void timer_handler(int c, int count, int clock); + void update_request() { m_stream->update(); } + + static void static_irq_handler(device_t *param, int irq) { downcast(param)->irq_handler(irq); } + static void static_timer_handler(device_t *param, int c, int count, int clock) { downcast(param)->timer_handler(c, count, clock); } + // internal state sound_stream * m_stream; emu_timer * m_timer[2]; devcb_write_line m_irq_handler; required_memory_region m_region; + + static const ssg_callbacks psgintf; }; -extern const device_type YM2610; class ym2610b_device : public ym2610_device { public: ym2610b_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); +protected: virtual void stream_generate(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; }; -extern const device_type YM2610B; +DECLARE_DEVICE_TYPE(YM2610, ym2610_device) +DECLARE_DEVICE_TYPE(YM2610B, ym2610b_device) -#endif /* __2610INTF_H__ */ +#endif // MAME_SOUND_2610INTF_H diff --git a/src/devices/sound/2612intf.cpp b/src/devices/sound/2612intf.cpp index b6a1d42b398..7350d04a624 100644 --- a/src/devices/sound/2612intf.cpp +++ b/src/devices/sound/2612intf.cpp @@ -17,15 +17,9 @@ #include "2612intf.h" #include "fm.h" -/*------------------------- TM2612 -------------------------------*/ +/*------------------------- YM2612 -------------------------------*/ /* IRQ Handler */ -static void IRQHandler(void *param,int irq) -{ - ym2612_device *ym2612 = (ym2612_device *) param; - ym2612->_IRQHandler(irq); -} - -void ym2612_device::_IRQHandler(int irq) +void ym2612_device::irq_handler(int irq) { if (!m_irq_handler.isnull()) m_irq_handler(irq); @@ -46,13 +40,7 @@ void ym2612_device::device_timer(emu_timer &timer, device_timer_id id, int param } } -static void timer_handler(void *param,int c,int count,int clock) -{ - ym2612_device *ym2612 = (ym2612_device *) param; - ym2612->_timer_handler(c, count, clock); -} - -void ym2612_device::_timer_handler(int c,int count,int clock) +void ym2612_device::timer_handler(int c,int count,int clock) { if( count == 0 ) { /* Reset FM Timer */ @@ -67,18 +55,6 @@ void ym2612_device::_timer_handler(int c,int count,int clock) } } -/* update request from fm.c */ -void ym2612_update_request(void *param) -{ - ym2612_device *ym2612 = (ym2612_device *) param; - ym2612->_ym2612_update_request(); -} - -void ym2612_device::_ym2612_update_request() -{ - m_stream->update(); -} - //------------------------------------------------- // sound_stream_update - handle a stream update //------------------------------------------------- @@ -114,7 +90,7 @@ void ym2612_device::device_start() m_stream = machine().sound().stream_alloc(*this,0,2,rate); /**** initialize YM2612 ****/ - m_chip = ym2612_init(this,this,clock(),rate,timer_handler,IRQHandler); + m_chip = ym2612_init(this,clock(),rate,&ym2612_device::static_timer_handler,&ym2612_device::static_irq_handler); assert_always(m_chip != nullptr, "Error creating YM2612 chip"); } @@ -164,26 +140,27 @@ WRITE8_MEMBER( ym2612_device::write ) } -const device_type YM2612 = device_creator; +DEFINE_DEVICE_TYPE(YM2612, ym2612_device, "ym2612", "YM2612 OPN2") ym2612_device::ym2612_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, YM2612, "YM2612", tag, owner, clock, "ym2612", __FILE__), - device_sound_interface(mconfig, *this), - m_irq_handler(*this) + : ym2612_device(mconfig, YM2612, tag, owner, clock) { } -ym2612_device::ym2612_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_sound_interface(mconfig, *this), - m_irq_handler(*this) +ym2612_device::ym2612_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) + , device_sound_interface(mconfig, *this) + , m_stream(nullptr) + , m_timer{ nullptr, nullptr } + , m_chip(nullptr) + , m_irq_handler(*this) { } -const device_type YM3438 = device_creator; +DEFINE_DEVICE_TYPE(YM3438, ym3438_device, "ym3438", "YM3438 OPN2C") ym3438_device::ym3438_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : ym2612_device(mconfig, YM3438, "YM3438", tag, owner, clock, "ym3438", __FILE__) + : ym2612_device(mconfig, YM3438, tag, owner, clock) { } diff --git a/src/devices/sound/2612intf.h b/src/devices/sound/2612intf.h index 0695893f548..371e29cc408 100644 --- a/src/devices/sound/2612intf.h +++ b/src/devices/sound/2612intf.h @@ -1,34 +1,31 @@ // license:BSD-3-Clause // copyright-holders:Ernesto Corvi -#pragma once - -#ifndef __2612INTF_H__ -#define __2612INTF_H__ +#ifndef MAME_SOUND_2612INTF_H +#define MAME_SOUND_2612INTF_H +#pragma once -void ym2612_update_request(void *param); -#define MCFG_YM2612_IRQ_HANDLER(_devcb) \ - devcb = &ym2612_device::set_irq_handler(*device, DEVCB_##_devcb); +#define MCFG_YM2612_IRQ_HANDLER(cb) \ + devcb = &ym2612_device::set_irq_handler(*device, (DEVCB_##cb)); -class ym2612_device : public device_t, - public device_sound_interface +class ym2612_device : public device_t, public device_sound_interface { public: ym2612_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ym2612_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); // static configuration helpers - template static devcb_base &set_irq_handler(device_t &device, _Object object) { return downcast(device).m_irq_handler.set_callback(object); } + template static devcb_base &set_irq_handler(device_t &device, Object &&cb) { return downcast(device).m_irq_handler.set_callback(std::forward(cb)); } DECLARE_READ8_MEMBER( read ); DECLARE_WRITE8_MEMBER( write ); - void _IRQHandler(int irq); - void _timer_handler(int c,int count,int clock); - void _ym2612_update_request(); + // update request from fm.cpp + static void update_request(device_t *param) { downcast(param)->update_request(); } protected: + ym2612_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_post_load() override; @@ -42,6 +39,13 @@ protected: virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; private: + void irq_handler(int irq); + void timer_handler(int c, int count, int clock); + void update_request() { m_stream->update(); } + + static void static_irq_handler(device_t *param, int irq) { downcast(param)->irq_handler(irq); } + static void static_timer_handler(device_t *param, int c, int count, int clock) { downcast(param)->timer_handler(c, count, clock); } + void calculate_rates(); sound_stream * m_stream; @@ -50,8 +54,6 @@ private: devcb_write_line m_irq_handler; }; -extern const device_type YM2612; - class ym3438_device : public ym2612_device { @@ -59,7 +61,8 @@ public: ym3438_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; -extern const device_type YM3438; +DECLARE_DEVICE_TYPE(YM2612, ym2612_device) +DECLARE_DEVICE_TYPE(YM3438, ym3438_device) -#endif /* __2612INTF_H__ */ +#endif // MAME_SOUND_2612INTF_H diff --git a/src/devices/sound/262intf.cpp b/src/devices/sound/262intf.cpp index 2131d71666f..c4da329ecff 100644 --- a/src/devices/sound/262intf.cpp +++ b/src/devices/sound/262intf.cpp @@ -13,13 +13,7 @@ /* IRQ Handler */ -static void IRQHandler(void *param,int irq) -{ - ymf262_device *ymf262 = (ymf262_device *) param; - ymf262->_IRQHandler(irq); -} - -void ymf262_device::_IRQHandler(int irq) +void ymf262_device::irq_handler(int irq) { if (!m_irq_handler.isnull()) m_irq_handler(irq); @@ -41,13 +35,7 @@ void ymf262_device::device_timer(emu_timer &timer, device_timer_id id, int param } -static void timer_handler(void *param, int c, const attotime &period) -{ - ymf262_device *ymf262 = (ymf262_device *) param; - ymf262->_timer_handler(c, period); -} - -void ymf262_device::_timer_handler(int c, const attotime &period) +void ymf262_device::timer_handler(int c, const attotime &period) { if( period == attotime::zero ) { /* Reset FM Timer */ @@ -59,17 +47,6 @@ void ymf262_device::_timer_handler(int c, const attotime &period) } } -void ymf262_update_request(void *param, int interval) -{ - ymf262_device *ymf262 = (ymf262_device *) param; - ymf262->_ymf262_update_request(); -} - -void ymf262_device::_ymf262_update_request() -{ - m_stream->update(); -} - //------------------------------------------------- @@ -106,9 +83,9 @@ void ymf262_device::device_start() m_stream = machine().sound().stream_alloc(*this,0,4,rate); /* YMF262 setup */ - ymf262_set_timer_handler (m_chip, timer_handler, this); - ymf262_set_irq_handler (m_chip, IRQHandler, this); - ymf262_set_update_handler(m_chip, ymf262_update_request, this); + ymf262_set_timer_handler (m_chip, &ymf262_device::static_timer_handler, this); + ymf262_set_irq_handler (m_chip, &ymf262_device::static_irq_handler, this); + ymf262_set_update_handler(m_chip, &ymf262_device::static_update_request, this); m_timer[0] = timer_alloc(0); m_timer[1] = timer_alloc(1); @@ -143,11 +120,14 @@ WRITE8_MEMBER( ymf262_device::write ) ymf262_write(m_chip, offset & 3, data); } -const device_type YMF262 = device_creator; +DEFINE_DEVICE_TYPE(YMF262, ymf262_device, "ymf262", "YMF262 OPL3") ymf262_device::ymf262_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, YMF262, "YMF262", tag, owner, clock, "ymf262", __FILE__), - device_sound_interface(mconfig, *this), - m_irq_handler(*this) + : device_t(mconfig, YMF262, tag, owner, clock) + , device_sound_interface(mconfig, *this) + , m_stream(nullptr) + , m_timer{ nullptr, nullptr } + , m_chip(nullptr) + , m_irq_handler(*this) { } diff --git a/src/devices/sound/262intf.h b/src/devices/sound/262intf.h index ed44eb4b58f..912568f669a 100644 --- a/src/devices/sound/262intf.h +++ b/src/devices/sound/262intf.h @@ -1,32 +1,25 @@ // license:BSD-3-Clause // copyright-holders:Ernesto Corvi -#pragma once +#ifndef MAME_SOUND_262INTF_H +#define MAME_SOUND_262INTF_H -#ifndef __262INTF_H__ -#define __262INTF_H__ +#pragma once -#define MCFG_YMF262_IRQ_HANDLER(_devcb) \ - devcb = &ymf262_device::set_irq_handler(*device, DEVCB_##_devcb); +#define MCFG_YMF262_IRQ_HANDLER(cb) \ + devcb = &ymf262_device::set_irq_handler(*device, (DEVCB_##cb)); -class ymf262_device : public device_t, - public device_sound_interface +class ymf262_device : public device_t, public device_sound_interface { public: ymf262_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // static configuration helpers - template static devcb_base &set_irq_handler(device_t &device, _Object object) { return downcast(device).m_irq_handler.set_callback(object); } + template static devcb_base &set_irq_handler(device_t &device, Object &&cb) { return downcast(device).m_irq_handler.set_callback(std::forward(cb)); } DECLARE_READ8_MEMBER( read ); DECLARE_WRITE8_MEMBER( write ); - void _IRQHandler(int irq); - void _timer_handler(int c, const attotime &period); - void _ymf262_update_request(); - - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; - protected: // device-level overrides virtual void device_post_load() override; @@ -34,9 +27,20 @@ protected: virtual void device_stop() override; virtual void device_reset() override; + virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + // sound stream update overrides virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; + private: + void irq_handler(int irq); + void timer_handler(int c, const attotime &period); + void update_request() { m_stream->update(); } + + static void static_irq_handler(device_t *param, int irq) { downcast(param)->irq_handler(irq); } + static void static_timer_handler(device_t *param, int c, const attotime &period) { downcast(param)->timer_handler(c, period); } + static void static_update_request(device_t *param, int interval) { downcast(param)->update_request(); } + // internal state sound_stream * m_stream; emu_timer * m_timer[2]; @@ -44,7 +48,6 @@ private: devcb_write_line m_irq_handler; }; -extern const device_type YMF262; - +DECLARE_DEVICE_TYPE(YMF262, ymf262_device) -#endif /* __262INTF_H__ */ +#endif // MAME_SOUND_262INTF_H diff --git a/src/devices/sound/315-5641.cpp b/src/devices/sound/315-5641.cpp index be2e0cff4db..f45f3071ae7 100644 --- a/src/devices/sound/315-5641.cpp +++ b/src/devices/sound/315-5641.cpp @@ -5,10 +5,10 @@ #include "emu.h" #include "315-5641.h" -const device_type SEGA_315_5641_PCM = device_creator; +DEFINE_DEVICE_TYPE(SEGA_315_5641_PCM, sega_315_5641_pcm_device, "315_5641_pcm", "Sega 315-5641 PCM") sega_315_5641_pcm_device::sega_315_5641_pcm_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : upd7759_device(mconfig, SEGA_315_5641_PCM, "315-5641 PCM", tag, owner, clock, "315_5641_pcm", __FILE__), m_fifo_read(0), m_fifo_write(0) + : upd7759_device(mconfig, SEGA_315_5641_PCM, tag, owner, clock), m_fifo_read(0), m_fifo_write(0) { } diff --git a/src/devices/sound/315-5641.h b/src/devices/sound/315-5641.h index b26328629fa..700fcaccaa2 100644 --- a/src/devices/sound/315-5641.h +++ b/src/devices/sound/315-5641.h @@ -4,6 +4,11 @@ // this is the PICO sound chip, we are not sure if it's the same as a 7759 or not, it requires FIFO logic // which the 7759 does _not_ have but it is possible that is handled somewhere else on the PICO hardware. +#ifndef MAME_SOUND_315_5641_H +#define MAME_SOUND_315_5641_H + +#pragma once + #include "upd7759.h" @@ -13,20 +18,22 @@ class sega_315_5641_pcm_device : public upd7759_device public: sega_315_5641_pcm_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - uint8_t get_fifo_space(); - void advance_state() override; virtual DECLARE_WRITE8_MEMBER(port_w) override; - uint8_t m_fifo_data[0x40]; - uint8_t m_fifo_read; // last read offset (will read in m_fifo_read+1) - uint8_t m_fifo_write; // write offset + uint8_t get_fifo_space(); protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; + void advance_state() override; + uint8_t m_fifo_data[0x40]; + uint8_t m_fifo_read; // last read offset (will read in m_fifo_read+1) + uint8_t m_fifo_write; // write offset }; -extern const device_type SEGA_315_5641_PCM; +DECLARE_DEVICE_TYPE(SEGA_315_5641_PCM, sega_315_5641_pcm_device) + +#endif // MAME_SOUND_315_5641_H diff --git a/src/devices/sound/3526intf.cpp b/src/devices/sound/3526intf.cpp index f59a60f114e..86ee4a5c0b7 100644 --- a/src/devices/sound/3526intf.cpp +++ b/src/devices/sound/3526intf.cpp @@ -24,13 +24,7 @@ /* IRQ Handler */ -static void IRQHandler(void *param,int irq) -{ - ym3526_device *ym3526 = (ym3526_device *) param; - ym3526->_IRQHandler(irq); -} - -void ym3526_device::_IRQHandler(int irq) +void ym3526_device::irq_handler(int irq) { if (!m_irq_handler.isnull()) m_irq_handler(irq); @@ -51,13 +45,7 @@ void ym3526_device::device_timer(emu_timer &timer, device_timer_id id, int param } } -static void timer_handler(void *param,int c,const attotime &period) -{ - ym3526_device *ym3526 = (ym3526_device *) param; - ym3526->_timer_handler(c, period); -} - -void ym3526_device::_timer_handler(int c,const attotime &period) +void ym3526_device::timer_handler(int c,const attotime &period) { if( period == attotime::zero ) { /* Reset FM Timer */ @@ -69,18 +57,6 @@ void ym3526_device::_timer_handler(int c,const attotime &period) } } -/* update request from fm.c */ -void ym3526_update_request(void *param, int interval) -{ - ym3526_device *ym3526 = (ym3526_device *) param; - ym3526->_ym3526_update_request(); -} - -void ym3526_device::_ym3526_update_request() -{ - m_stream->update(); -} - //------------------------------------------------- @@ -111,9 +87,9 @@ void ym3526_device::device_start() calculate_rates(); /* YM3526 setup */ - ym3526_set_timer_handler (m_chip, timer_handler, this); - ym3526_set_irq_handler (m_chip, IRQHandler, this); - ym3526_set_update_handler(m_chip, ym3526_update_request, this); + ym3526_set_timer_handler (m_chip, &ym3526_device::static_timer_handler, this); + ym3526_set_irq_handler (m_chip, &ym3526_device::static_irq_handler, this); + ym3526_set_update_handler(m_chip, &ym3526_device::static_update_request, this); m_timer[0] = timer_alloc(0); m_timer[1] = timer_alloc(1); @@ -170,13 +146,14 @@ WRITE8_MEMBER( ym3526_device::control_port_w ) { write(space, 0, data); } WRITE8_MEMBER( ym3526_device::write_port_w ) { write(space, 1, data); } -const device_type YM3526 = device_creator; +DEFINE_DEVICE_TYPE(YM3526, ym3526_device, "ym3526", "YM3526 OPL") ym3526_device::ym3526_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, YM3526, "YM3526", tag, owner, clock, "ym3526", __FILE__), - device_sound_interface(mconfig, *this), - m_stream(nullptr), - m_chip(nullptr), - m_irq_handler(*this) + : device_t(mconfig, YM3526, tag, owner, clock) + , device_sound_interface(mconfig, *this) + , m_stream(nullptr) + , m_timer{ nullptr, nullptr } + , m_chip(nullptr) + , m_irq_handler(*this) { } diff --git a/src/devices/sound/3526intf.h b/src/devices/sound/3526intf.h index 2c448c526ad..1f53b5b9969 100644 --- a/src/devices/sound/3526intf.h +++ b/src/devices/sound/3526intf.h @@ -1,22 +1,21 @@ // license:BSD-3-Clause // copyright-holders:Ernesto Corvi -#pragma once +#ifndef MAME_SOUND_3526INTF_H +#define MAME_SOUND_3526INTF_H -#ifndef __3526INTF_H__ -#define __3526INTF_H__ +#pragma once -#define MCFG_YM3526_IRQ_HANDLER(_devcb) \ - devcb = &ym3526_device::set_irq_handler(*device, DEVCB_##_devcb); +#define MCFG_YM3526_IRQ_HANDLER(cb) \ + devcb = &ym3526_device::set_irq_handler(*device, (DEVCB_##cb)); -class ym3526_device : public device_t, - public device_sound_interface +class ym3526_device : public device_t, public device_sound_interface { public: ym3526_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // static configuration helpers - template static devcb_base &set_irq_handler(device_t &device, _Object object) { return downcast(device).m_irq_handler.set_callback(object); } + template static devcb_base &set_irq_handler(device_t &device, Object &&cb) { return downcast(device).m_irq_handler.set_callback(std::forward(cb)); } DECLARE_READ8_MEMBER( read ); DECLARE_WRITE8_MEMBER( write ); @@ -26,10 +25,6 @@ public: DECLARE_WRITE8_MEMBER( control_port_w ); DECLARE_WRITE8_MEMBER( write_port_w ); - void _IRQHandler(int irq); - void _timer_handler(int c,const attotime &period); - void _ym3526_update_request(); - protected: // device-level overrides virtual void device_start() override; @@ -43,8 +38,16 @@ protected: virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; private: + void irq_handler(int irq); + void timer_handler(int c, const attotime &period); + void update_request() { m_stream->update(); } + void calculate_rates(); + static void static_irq_handler(device_t *param, int irq) { downcast(param)->irq_handler(irq); } + static void static_timer_handler(device_t *param, int c, const attotime &period) { downcast(param)->timer_handler(c, period); } + static void static_update_request(device_t *param, int interval) { downcast(param)->update_request(); } + // internal state sound_stream * m_stream; emu_timer * m_timer[2]; @@ -52,7 +55,6 @@ private: devcb_write_line m_irq_handler; }; -extern const device_type YM3526; - +DECLARE_DEVICE_TYPE(YM3526, ym3526_device) -#endif /* __3526INTF_H__ */ +#endif // MAME_SOUND_3526INTF_H diff --git a/src/devices/sound/3812intf.cpp b/src/devices/sound/3812intf.cpp index e9d42a0723b..c234554febc 100644 --- a/src/devices/sound/3812intf.cpp +++ b/src/devices/sound/3812intf.cpp @@ -23,13 +23,7 @@ #include "sound/fmopl.h" -static void IRQHandler(void *param,int irq) -{ - ym3812_device *ym3812 = (ym3812_device *) param; - ym3812->_IRQHandler(irq); -} - -void ym3812_device::_IRQHandler(int irq) +void ym3812_device::irq_handler(int irq) { if (!m_irq_handler.isnull()) m_irq_handler(irq); @@ -50,13 +44,7 @@ void ym3812_device::device_timer(emu_timer &timer, device_timer_id id, int param } } -static void timer_handler(void *param,int c,const attotime &period) -{ - ym3812_device *ym3812 = (ym3812_device *) param; - ym3812->_timer_handler(c, period); -} - -void ym3812_device::_timer_handler(int c, const attotime &period) +void ym3812_device::timer_handler(int c, const attotime &period) { if( period == attotime::zero ) { /* Reset FM Timer */ @@ -69,18 +57,6 @@ void ym3812_device::_timer_handler(int c, const attotime &period) } -static void ym3812_update_request(void * param, int interval) -{ - ym3812_device *ym3812 = (ym3812_device *) param; - ym3812->_ym3812_update_request(); -} - -void ym3812_device::_ym3812_update_request() -{ - m_stream->update(); -} - - //------------------------------------------------- // sound_stream_update - handle a stream update //------------------------------------------------- @@ -107,9 +83,9 @@ void ym3812_device::device_start() calculate_rates(); /* YM3812 setup */ - ym3812_set_timer_handler (m_chip, timer_handler, this); - ym3812_set_irq_handler (m_chip, IRQHandler, this); - ym3812_set_update_handler(m_chip, ym3812_update_request, this); + ym3812_set_timer_handler (m_chip, ym3812_device::static_timer_handler, this); + ym3812_set_irq_handler (m_chip, ym3812_device::static_irq_handler, this); + ym3812_set_update_handler(m_chip, ym3812_device::static_update_request, this); m_timer[0] = timer_alloc(0); m_timer[1] = timer_alloc(1); @@ -163,16 +139,17 @@ WRITE8_MEMBER( ym3812_device::write ) READ8_MEMBER( ym3812_device::status_port_r ) { return read(space, 0); } READ8_MEMBER( ym3812_device::read_port_r ) { return read(space, 1); } WRITE8_MEMBER( ym3812_device::control_port_w ) { write(space, 0, data); } -WRITE8_MEMBER( ym3812_device::write_port_w ) { write( space, 1, data); } +WRITE8_MEMBER( ym3812_device::write_port_w ) { write(space, 1, data); } -const device_type YM3812 = device_creator; +DEFINE_DEVICE_TYPE(YM3812, ym3812_device, "ym3812", "YM3812 OPL2") ym3812_device::ym3812_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, YM3812, "YM3812", tag, owner, clock, "ym3812", __FILE__), - device_sound_interface(mconfig, *this), - m_stream(nullptr), - m_chip(nullptr), - m_irq_handler(*this) + : device_t(mconfig, YM3812, tag, owner, clock) + , device_sound_interface(mconfig, *this) + , m_stream(nullptr) + , m_timer{ nullptr, nullptr } + , m_chip(nullptr) + , m_irq_handler(*this) { } diff --git a/src/devices/sound/3812intf.h b/src/devices/sound/3812intf.h index d76a633d55b..6dfff0bec9d 100644 --- a/src/devices/sound/3812intf.h +++ b/src/devices/sound/3812intf.h @@ -1,22 +1,19 @@ // license:BSD-3-Clause // copyright-holders:Ernesto Corvi -#pragma once +#ifndef MAME_SOUND_3812INTF_H +#define MAME_SOUND_3812INTF_H -#ifndef __3812INTF_H__ -#define __3812INTF_H__ +#define MCFG_YM3812_IRQ_HANDLER(cb) \ + devcb = &ym3812_device::set_irq_handler(*device, (DEVCB_##cb)); -#define MCFG_YM3812_IRQ_HANDLER(_devcb) \ - devcb = &ym3812_device::set_irq_handler(*device, DEVCB_##_devcb); - -class ym3812_device : public device_t, - public device_sound_interface +class ym3812_device : public device_t, public device_sound_interface { public: ym3812_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // static configuration helpers - template static devcb_base &set_irq_handler(device_t &device, _Object object) { return downcast(device).m_irq_handler.set_callback(object); } + template static devcb_base &set_irq_handler(device_t &device, Object &&cb) { return downcast(device).m_irq_handler.set_callback(std::forward(cb)); } DECLARE_READ8_MEMBER( read ); DECLARE_WRITE8_MEMBER( write ); @@ -26,10 +23,6 @@ public: DECLARE_WRITE8_MEMBER( control_port_w ); DECLARE_WRITE8_MEMBER( write_port_w ); - void _IRQHandler(int irq); - void _timer_handler(int c, const attotime &period); - void _ym3812_update_request(); - protected: // device-level overrides virtual void device_start() override; @@ -43,15 +36,23 @@ protected: virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; private: + void irq_handler(int irq); + void timer_handler(int c, const attotime &period); + void update_request() { m_stream->update(); } + void calculate_rates(); + static void static_irq_handler(device_t *param, int irq) { downcast(param)->irq_handler(irq); } + static void static_timer_handler(device_t *param, int c, const attotime &period) { downcast(param)->timer_handler(c, period); } + static void static_update_request(device_t *param, int interval) { downcast(param)->update_request(); } + sound_stream * m_stream; emu_timer * m_timer[2]; void * m_chip; devcb_write_line m_irq_handler; }; -extern const device_type YM3812; +DECLARE_DEVICE_TYPE(YM3812, ym3812_device) -#endif /* __3812INTF_H__ */ +#endif // MAME_SOUND_3812INTF_H diff --git a/src/devices/sound/8950intf.cpp b/src/devices/sound/8950intf.cpp index 3b6b32eca20..a6f8be7aa2b 100644 --- a/src/devices/sound/8950intf.cpp +++ b/src/devices/sound/8950intf.cpp @@ -23,13 +23,7 @@ #include "fmopl.h" -static void IRQHandler(void *param,int irq) -{ - y8950_device *y8950 = (y8950_device *) param; - y8950->_IRQHandler(irq); -} - -void y8950_device::_IRQHandler(int irq) +void y8950_device::irq_handler(int irq) { m_irq_handler(irq); } @@ -48,13 +42,7 @@ void y8950_device::device_timer(emu_timer &timer, device_timer_id id, int param, } } -static void timer_handler(void *param, int c, const attotime &period) -{ - y8950_device *y8950 = (y8950_device *) param; - y8950->_timer_handler(c, period); -} - -void y8950_device::_timer_handler(int c, const attotime &period) +void y8950_device::timer_handler(int c, const attotime &period) { if( period == attotime::zero ) { /* Reset FM Timer */ @@ -67,50 +55,6 @@ void y8950_device::_timer_handler(int c, const attotime &period) } -static unsigned char Y8950PortHandler_r(void *param) -{ - y8950_device *y8950 = (y8950_device *) param; - return y8950->_Y8950PortHandler_r(); -} - -unsigned char y8950_device::_Y8950PortHandler_r() -{ - return m_io_read_handler(0); -} - -static void Y8950PortHandler_w(void *param,unsigned char data) -{ - y8950_device *y8950 = (y8950_device *) param; - y8950->_Y8950PortHandler_w(data); -} - -void y8950_device::_Y8950PortHandler_w(unsigned char data) -{ - m_io_write_handler((offs_t)0,data); -} - -static unsigned char Y8950KeyboardHandler_r(void *param) -{ - y8950_device *y8950 = (y8950_device *) param; - return y8950->_Y8950KeyboardHandler_r(); -} - -unsigned char y8950_device::_Y8950KeyboardHandler_r() -{ - return m_keyboard_read_handler(0); -} - -static void Y8950KeyboardHandler_w(void *param,unsigned char data) -{ - y8950_device *y8950 = (y8950_device *) param; - y8950->_Y8950KeyboardHandler_w(data); -} - -void y8950_device::_Y8950KeyboardHandler_w(unsigned char data) -{ - m_keyboard_write_handler((offs_t)0,data); -} - //------------------------------------------------- // sound_stream_update - handle a stream update //------------------------------------------------- @@ -120,17 +64,6 @@ void y8950_device::sound_stream_update(sound_stream &stream, stream_sample_t **i y8950_update_one(m_chip, outputs[0], samples); } -static void y8950_update_request(void *param, int interval) -{ - y8950_device *y8950 = (y8950_device *) param; - y8950->_y8950_update_request(); -} - -void y8950_device::_y8950_update_request() -{ - m_stream->update(); -} - //------------------------------------------------- // device_start - device-specific startup @@ -155,13 +88,13 @@ void y8950_device::device_start() m_stream = machine().sound().stream_alloc(*this,0,1,rate); /* port and keyboard handler */ - y8950_set_port_handler(m_chip, Y8950PortHandler_w, Y8950PortHandler_r, this); - y8950_set_keyboard_handler(m_chip, Y8950KeyboardHandler_w, Y8950KeyboardHandler_r, this); + y8950_set_port_handler(m_chip, &y8950_device::static_port_handler_w, &y8950_device::static_port_handler_r, this); + y8950_set_keyboard_handler(m_chip, &y8950_device::static_keyboard_handler_w, &y8950_device::static_keyboard_handler_r, this); /* Y8950 setup */ - y8950_set_timer_handler (m_chip, timer_handler, this); - y8950_set_irq_handler (m_chip, IRQHandler, this); - y8950_set_update_handler(m_chip, y8950_update_request, this); + y8950_set_timer_handler (m_chip, &y8950_device::static_timer_handler, this); + y8950_set_irq_handler (m_chip, &y8950_device::static_irq_handler, this); + y8950_set_update_handler(m_chip, &y8950_device::static_update_request, this); m_timer[0] = timer_alloc(0); m_timer[1] = timer_alloc(1); @@ -202,18 +135,19 @@ WRITE8_MEMBER( y8950_device::control_port_w ) { write(space, 0, data); } WRITE8_MEMBER( y8950_device::write_port_w ) { write(space, 1, data); } -const device_type Y8950 = device_creator; +DEFINE_DEVICE_TYPE(Y8950, y8950_device, "y8950", "Y8950 MSX-Audio") y8950_device::y8950_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, Y8950, "Y8950", tag, owner, clock, "y8950", __FILE__), - device_sound_interface(mconfig, *this), - m_stream(nullptr), - m_chip(nullptr), - m_irq_handler(*this), - m_keyboard_read_handler(*this), - m_keyboard_write_handler(*this), - m_io_read_handler(*this), - m_io_write_handler(*this), - m_region(*this, DEVICE_SELF) + : device_t(mconfig, Y8950, tag, owner, clock) + , device_sound_interface(mconfig, *this) + , m_stream(nullptr) + , m_timer{ nullptr, nullptr } + , m_chip(nullptr) + , m_irq_handler(*this) + , m_keyboard_read_handler(*this) + , m_keyboard_write_handler(*this) + , m_io_read_handler(*this) + , m_io_write_handler(*this) + , m_region(*this, DEVICE_SELF) { } diff --git a/src/devices/sound/8950intf.h b/src/devices/sound/8950intf.h index 3e6e0497f08..81a00c36662 100644 --- a/src/devices/sound/8950intf.h +++ b/src/devices/sound/8950intf.h @@ -1,38 +1,37 @@ // license:BSD-3-Clause // copyright-holders:Ernesto Corvi -#pragma once +#ifndef MAME_SOUND_8950INTF_H +#define MAME_SOUND_8950INTF_H -#ifndef __8950INTF_H__ -#define __8950INTF_H__ +#pragma once -#define MCFG_Y8950_IRQ_HANDLER(_devcb) \ - devcb = &y8950_device::set_irq_handler(*device, DEVCB_##_devcb); +#define MCFG_Y8950_IRQ_HANDLER(cb) \ + devcb = &y8950_device::set_irq_handler(*device, (DEVCB_##cb)); -#define MCFG_Y8950_KEYBOARD_READ_HANDLER(_devcb) \ - devcb = &y8950_device::set_keyboard_read_handler(*device, DEVCB_##_devcb); +#define MCFG_Y8950_KEYBOARD_READ_HANDLER(cb) \ + devcb = &y8950_device::set_keyboard_read_handler(*device, (DEVCB_##cb)); -#define MCFG_Y8950_KEYBOARD_WRITE_HANDLER(_devcb) \ - devcb = &y8950_device::set_keyboard_write_handler(*device, DEVCB_##_devcb); +#define MCFG_Y8950_KEYBOARD_WRITE_HANDLER(cb) \ + devcb = &y8950_device::set_keyboard_write_handler(*device, (DEVCB_##cb)); -#define MCFG_Y8950_IO_READ_HANDLER(_devcb) \ - devcb = &y8950_device::set_io_read_handler(*device, DEVCB_##_devcb); +#define MCFG_Y8950_IO_READ_HANDLER(cb) \ + devcb = &y8950_device::set_io_read_handler(*device, (DEVCB_##cb)); -#define MCFG_Y8950_IO_WRITE_HANDLER(_devcb) \ - devcb = &y8950_device::set_io_write_handler(*device, DEVCB_##_devcb); +#define MCFG_Y8950_IO_WRITE_HANDLER(cb) \ + devcb = &y8950_device::set_io_write_handler(*device, (DEVCB_##cb)); -class y8950_device : public device_t, - public device_sound_interface +class y8950_device : public device_t, public device_sound_interface { public: y8950_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // static configuration helpers - template static devcb_base &set_irq_handler(device_t &device, _Object object) { return downcast(device).m_irq_handler.set_callback(object); } - template static devcb_base &set_keyboard_read_handler(device_t &device, _Object object) { return downcast(device).m_keyboard_read_handler.set_callback(object); } - template static devcb_base &set_keyboard_write_handler(device_t &device, _Object object) { return downcast(device).m_keyboard_write_handler.set_callback(object); } - template static devcb_base &set_io_read_handler(device_t &device, _Object object) { return downcast(device).m_io_read_handler.set_callback(object); } - template static devcb_base &set_io_write_handler(device_t &device, _Object object) { return downcast(device).m_io_write_handler.set_callback(object); } + template static devcb_base &set_irq_handler(device_t &device, Object &&cb) { return downcast(device).m_irq_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_keyboard_read_handler(device_t &device, Object &&cb) { return downcast(device).m_keyboard_read_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_keyboard_write_handler(device_t &device, Object &&cb) { return downcast(device).m_keyboard_write_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_io_read_handler(device_t &device, Object &&cb) { return downcast(device).m_io_read_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_io_write_handler(device_t &device, Object &&cb) { return downcast(device).m_io_write_handler.set_callback(std::forward(cb)); } DECLARE_READ8_MEMBER( read ); DECLARE_WRITE8_MEMBER( write ); @@ -42,14 +41,6 @@ public: DECLARE_WRITE8_MEMBER( control_port_w ); DECLARE_WRITE8_MEMBER( write_port_w ); - void _IRQHandler(int irq); - void _timer_handler(int c, const attotime &period); - void _y8950_update_request(); - unsigned char _Y8950PortHandler_r(); - void _Y8950PortHandler_w(unsigned char data); - unsigned char _Y8950KeyboardHandler_r(); - void _Y8950KeyboardHandler_w(unsigned char data); - protected: // device-level overrides virtual void device_start() override; @@ -62,6 +53,24 @@ protected: virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; private: + void irq_handler(int irq); + void timer_handler(int c, const attotime &period); + void update_request() { m_stream->update(); } + + unsigned char port_handler_r() { return m_io_read_handler(0); } + void port_handler_w(unsigned char data) { m_io_write_handler(offs_t(0), data); } + unsigned char keyboard_handler_r() { return m_keyboard_read_handler(0); } + void keyboard_handler_w(unsigned char data) { m_keyboard_write_handler(offs_t(0), data); } + + static void static_irq_handler(device_t *param, int irq) { downcast(param)->irq_handler(irq); } + static void static_timer_handler(device_t *param, int c, const attotime &period) { downcast(param)->timer_handler(c, period); } + static void static_update_request(device_t *param, int interval) { downcast(param)->update_request(); } + + static unsigned char static_port_handler_r(device_t *param) { return downcast(param)->port_handler_r(); } + static void static_port_handler_w(device_t *param, unsigned char data) { downcast(param)->port_handler_w(data); } + static unsigned char static_keyboard_handler_r(device_t *param) { return downcast(param)->keyboard_handler_r(); } + static void static_keyboard_handler_w(device_t *param, unsigned char data) { downcast(param)->keyboard_handler_w(data); } + // internal state sound_stream * m_stream; emu_timer * m_timer[2]; @@ -74,7 +83,6 @@ private: required_memory_region m_region; }; -extern const device_type Y8950; - +DECLARE_DEVICE_TYPE(Y8950, y8950_device) -#endif /* __8950INTF_H__ */ +#endif // MAME_SOUND_8950INTF_H diff --git a/src/devices/sound/ad1848.cpp b/src/devices/sound/ad1848.cpp index 33e2df9ecac..34adb2d3290 100644 --- a/src/devices/sound/ad1848.cpp +++ b/src/devices/sound/ad1848.cpp @@ -10,10 +10,10 @@ #include "speaker.h" -const device_type AD1848 = device_creator; +DEFINE_DEVICE_TYPE(AD1848, ad1848_device, "ad1848", "Analog Device AD1848") ad1848_device::ad1848_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, AD1848, "Analog Devices AD1848", tag, owner, clock, "ad1848", __FILE__), + device_t(mconfig, AD1848, tag, owner, clock), m_irq_cb(*this), m_drq_cb(*this), m_ldac(*this, "ldac"), @@ -81,7 +81,7 @@ READ8_MEMBER(ad1848_device::read) WRITE8_MEMBER(ad1848_device::write) { - const int div_factor[] = {3072, 1536, 896, 768, 448, 384, 512, 2560}; + static constexpr int div_factor[] = {3072, 1536, 896, 768, 448, 384, 512, 2560}; switch(offset) { case 0: diff --git a/src/devices/sound/ad1848.h b/src/devices/sound/ad1848.h index f0c881c891c..4b410adcdf2 100644 --- a/src/devices/sound/ad1848.h +++ b/src/devices/sound/ad1848.h @@ -1,31 +1,38 @@ // license:BSD-3-Clause // copyright-holders:Carl -#ifndef _AD1848_H_ -#define _AD1848_H_ +#ifndef MAME_SOUND_AD1848_H +#define MAME_SOUND_AD1848_H + +#pragma once #include "sound/dac.h" -#define MCFG_AD1848_IRQ_CALLBACK(_cb) \ - devcb = &ad1848_device::set_irq_callback(*device, DEVCB_##_cb); -#define MCFG_AD1848_DRQ_CALLBACK(_cb) \ - devcb = &ad1848_device::set_drq_callback(*device, DEVCB_##_cb); +#define MCFG_AD1848_IRQ_CALLBACK(cb) \ + devcb = &ad1848_device::set_irq_callback(*device, (DEVCB_##cb)); + +#define MCFG_AD1848_DRQ_CALLBACK(cb) \ + devcb = &ad1848_device::set_drq_callback(*device, (DEVCB_##cb)); class ad1848_device : public device_t { public: ad1848_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + + template static devcb_base &set_irq_callback(device_t &device, Object &&cb) { return downcast(device).m_irq_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_drq_callback(device_t &device, Object &&cb) { return downcast(device).m_drq_cb.set_callback(std::forward(cb)); } + + virtual machine_config_constructor device_mconfig_additions() const override; + DECLARE_READ8_MEMBER(read); DECLARE_WRITE8_MEMBER(write); DECLARE_READ8_MEMBER(dack_r); DECLARE_WRITE8_MEMBER(dack_w); - template static devcb_base &set_irq_callback(device_t &device, _Object object) { return downcast(device).m_irq_cb.set_callback(object); } - template static devcb_base &set_drq_callback(device_t &device, _Object object) { return downcast(device).m_drq_cb.set_callback(object); } - virtual machine_config_constructor device_mconfig_additions() const override; protected: virtual void device_start() override; virtual void device_reset() override; virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + private: union { struct { @@ -61,6 +68,6 @@ private: emu_timer *m_timer; }; -extern const device_type AD1848; +DECLARE_DEVICE_TYPE(AD1848, ad1848_device) -#endif +#endif // MAME_SOUND_AD1848_H diff --git a/src/devices/sound/aica.cpp b/src/devices/sound/aica.cpp index b0708e4f135..f636f209576 100644 --- a/src/devices/sound/aica.cpp +++ b/src/devices/sound/aica.cpp @@ -35,8 +35,8 @@ */ //SLOT PARAMETERS -#define KEYONEX(slot) ((slot->udata.data[0x0]>>0x0)&0x8000) -#define KEYONB(slot) ((slot->udata.data[0x0]>>0x0)&0x4000) +#define KEYONEX(slot) ((slot->udata.data[0x0]>>0x0)&0x8000) +#define KEYONB(slot) ((slot->udata.data[0x0]>>0x0)&0x4000) #define SSCTL(slot) ((slot->udata.data[0x0]>>0xA)&0x0001) #define LPCTL(slot) ((slot->udata.data[0x0]>>0x9)&0x0001) #define PCMS(slot) ((slot->udata.data[0x0]>>0x7)&0x0003) @@ -51,7 +51,7 @@ #define D1R(slot) ((slot->udata.data[0x10/2]>>0x6)&0x001F) #define AR(slot) ((slot->udata.data[0x10/2]>>0x0)&0x001F) -#define LPSLNK(slot) ((slot->udata.data[0x14/2]>>0x0)&0x4000) +#define LPSLNK(slot) ((slot->udata.data[0x14/2]>>0x0)&0x4000) #define KRS(slot) ((slot->udata.data[0x14/2]>>0xA)&0x000F) #define DL(slot) ((slot->udata.data[0x14/2]>>0x5)&0x001F) #define RR(slot) ((slot->udata.data[0x14/2]>>0x0)&0x001F) @@ -63,9 +63,9 @@ #define LFORE(slot) ((slot->udata.data[0x1c/2]>>0x0)&0x8000) #define LFOF(slot) ((slot->udata.data[0x1c/2]>>0xA)&0x001F) -#define PLFOWS(slot) ((slot->udata.data[0x1c/2]>>0x8)&0x0003) +#define PLFOWS(slot) ((slot->udata.data[0x1c/2]>>0x8)&0x0003) #define PLFOS(slot) ((slot->udata.data[0x1c/2]>>0x5)&0x0007) -#define ALFOWS(slot) ((slot->udata.data[0x1c/2]>>0x3)&0x0003) +#define ALFOWS(slot) ((slot->udata.data[0x1c/2]>>0x3)&0x0003) #define ALFOS(slot) ((slot->udata.data[0x1c/2]>>0x0)&0x0007) #define ISEL(slot) ((slot->udata.data[0x20/2]>>0x0)&0x000F) @@ -78,32 +78,32 @@ #define EFPAN(slot) ((m_EFSPAN[slot*4]>>0)&0x001f) //Envelope times in ms -static const double ARTimes[64]={100000/*infinity*/,100000/*infinity*/,8100.0,6900.0,6000.0,4800.0,4000.0,3400.0,3000.0,2400.0,2000.0,1700.0,1500.0, +static constexpr double ARTimes[64]={100000/*infinity*/,100000/*infinity*/,8100.0,6900.0,6000.0,4800.0,4000.0,3400.0,3000.0,2400.0,2000.0,1700.0,1500.0, 1200.0,1000.0,860.0,760.0,600.0,500.0,430.0,380.0,300.0,250.0,220.0,190.0,150.0,130.0,110.0,95.0, 76.0,63.0,55.0,47.0,38.0,31.0,27.0,24.0,19.0,15.0,13.0,12.0,9.4,7.9,6.8,6.0,4.7,3.8,3.4,3.0,2.4, 2.0,1.8,1.6,1.3,1.1,0.93,0.85,0.65,0.53,0.44,0.40,0.35,0.0,0.0}; -static const double DRTimes[64]={100000/*infinity*/,100000/*infinity*/,118200.0,101300.0,88600.0,70900.0,59100.0,50700.0,44300.0,35500.0,29600.0,25300.0,22200.0,17700.0, +static constexpr double DRTimes[64]={100000/*infinity*/,100000/*infinity*/,118200.0,101300.0,88600.0,70900.0,59100.0,50700.0,44300.0,35500.0,29600.0,25300.0,22200.0,17700.0, 14800.0,12700.0,11100.0,8900.0,7400.0,6300.0,5500.0,4400.0,3700.0,3200.0,2800.0,2200.0,1800.0,1600.0,1400.0,1100.0, 920.0,790.0,690.0,550.0,460.0,390.0,340.0,270.0,230.0,200.0,170.0,140.0,110.0,98.0,85.0,68.0,57.0,49.0,43.0,34.0, 28.0,25.0,22.0,18.0,14.0,12.0,11.0,8.5,7.1,6.1,5.4,4.3,3.6,3.1}; #define MEM4B(aica) ((m_udata.data[0]>>0x0)&0x0200) -#define DAC18B(aica) ((m_udata.data[0]>>0x0)&0x0100) +#define DAC18B(aica) ((m_udata.data[0]>>0x0)&0x0100) #define MVOL(aica) ((m_udata.data[0]>>0x0)&0x000F) #define RBL(aica) ((m_udata.data[2]>>0xD)&0x0003) #define RBP(aica) ((m_udata.data[2]>>0x0)&0x0fff) -#define MOFULL(aica) ((m_udata.data[4]>>0x0)&0x1000) -#define MOEMPTY(aica) ((m_udata.data[4]>>0x0)&0x0800) +#define MOFULL(aica) ((m_udata.data[4]>>0x0)&0x1000) +#define MOEMPTY(aica) ((m_udata.data[4]>>0x0)&0x0800) #define MIOVF(aica) ((m_udata.data[4]>>0x0)&0x0400) -#define MIFULL(aica) ((m_udata.data[4]>>0x0)&0x0200) -#define MIEMPTY(aica) ((m_udata.data[4]>>0x0)&0x0100) +#define MIFULL(aica) ((m_udata.data[4]>>0x0)&0x0200) +#define MIEMPTY(aica) ((m_udata.data[4]>>0x0)&0x0100) #define AFSEL(aica) ((m_udata.data[0xc/2]>>0x0)&0x4000) #define MSLC(aica) ((m_udata.data[0xc/2]>>0x8)&0x3F) -#define SCILV0(aica) ((m_udata.data[0xa8/2]>>0x0)&0xff) -#define SCILV1(aica) ((m_udata.data[0xac/2]>>0x0)&0xff) -#define SCILV2(aica) ((m_udata.data[0xb0/2]>>0x0)&0xff) +#define SCILV0(aica) ((m_udata.data[0xa8/2]>>0x0)&0xff) +#define SCILV1(aica) ((m_udata.data[0xac/2]>>0x0)&0xff) +#define SCILV2(aica) ((m_udata.data[0xb0/2]>>0x0)&0xff) #define MCIEB(aica) ((m_udata.data[0xb4/2]>>0x0)&0xff) #define MCIPD(aica) ((m_udata.data[0xb8/2]>>0x0)&0xff) @@ -118,7 +118,7 @@ static const double DRTimes[64]={100000/*infinity*/,100000/*infinity*/,118200.0, #define SCITMA 6 #define SCITMB 7 -static const float SDLT[16]={-1000000.0,-42.0,-39.0,-36.0,-33.0,-30.0,-27.0,-24.0,-21.0,-18.0,-15.0,-12.0,-9.0,-6.0,-3.0,0.0}; +static constexpr float SDLT[16]={-1000000.0,-42.0,-39.0,-36.0,-33.0,-30.0,-27.0,-24.0,-21.0,-18.0,-15.0,-12.0,-9.0,-6.0,-3.0,0.0}; unsigned char aica_device::DecodeSCI(unsigned char irq) { @@ -338,10 +338,10 @@ void aica_device::Compute_LFO(AICA_SLOT *slot) } #define ADPCMSHIFT 8 -#define ADFIX(f) (int) ((float) f*(float) (1<udata.data[0]&=~0x4000; } -#define log_base_2(n) (log((float) n)/log((float) 2)) - void aica_device::Init() { int i; @@ -922,7 +920,7 @@ void aica_device::w16(address_space &space,unsigned int addr,unsigned short val) if (addr == 0x3bfe) { - aica_dsp_start(&m_DSP); + m_DSP.start(); } } else if(addr<0x4000) @@ -1035,8 +1033,6 @@ unsigned short aica_device::r16(address_space &space, unsigned int addr) } -#define REVSIGN(v) ((~v)+1) - #ifdef UNUSED_FUNCTION void aica_device::TimersAddTicks(int ticks) { @@ -1267,7 +1263,7 @@ void aica_device::DoMasterSamples(int nsamples) sample=UpdateSlot(slot); Enc=((TL(slot))<<0x0)|((IMXL(slot))<<0xd); - aica_dsp_setsample(&m_DSP,(sample*m_LPANTABLE[Enc])>>(SHIFT-2),ISEL(slot),IMXL(slot)); + m_DSP.setsample((sample*m_LPANTABLE[Enc])>>(SHIFT-2),ISEL(slot),IMXL(slot)); Enc=((TL(slot))<<0x0)|((DIPAN(slot))<<0x8)|((DISDL(slot))<<0xd); { smpl+=(sample*m_LPANTABLE[Enc])>>SHIFT; @@ -1279,7 +1275,7 @@ void aica_device::DoMasterSamples(int nsamples) } // process the DSP - aica_dsp_step(&m_DSP); + m_DSP.step(); // mix DSP output for(i=0;i<16;++i) @@ -1468,10 +1464,10 @@ READ16_MEMBER( aica_device::midi_out_r ) return val; } -const device_type AICA = device_creator; +DEFINE_DEVICE_TYPE(AICA, aica_device, "aica", "AICA") aica_device::aica_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, AICA, "AICA", tag, owner, clock, "aica", __FILE__), + : device_t(mconfig, AICA, tag, owner, clock), device_sound_interface(mconfig, *this), m_master(false), m_roffset(0), diff --git a/src/devices/sound/aica.h b/src/devices/sound/aica.h index 744c80aea9f..9ec0c4734de 100644 --- a/src/devices/sound/aica.h +++ b/src/devices/sound/aica.h @@ -6,74 +6,25 @@ Sega/Yamaha AICA emulation */ -#ifndef __AICA_H__ -#define __AICA_H__ +#ifndef MAME_SOUND_AICA_H +#define MAME_SOUND_AICA_H -#include "aicadsp.h" - -#define MCFG_AICA_MASTER \ - aica_device::set_master(*device); +#pragma once -#define MCFG_AICA_ROFFSET(_offs) \ - aica_device::set_roffset(*device, _offs); - -#define MCFG_AICA_IRQ_CB(_devcb) \ - devcb = &aica_device::set_irq_callback(*device, DEVCB_##_devcb); +#include "aicadsp.h" -#define MCFG_AICA_MAIN_IRQ_CB(_devcb) \ - devcb = &aica_device::set_main_irq_callback(*device, DEVCB_##_devcb); -enum AICA_STATE {AICA_ATTACK,AICA_DECAY1,AICA_DECAY2,AICA_RELEASE}; +#define MCFG_AICA_MASTER \ + aica_device::set_master(*device); -struct AICA_LFO_t -{ - unsigned short phase; - uint32_t phase_step; - int *table; - int *scale; -}; +#define MCFG_AICA_ROFFSET(offs) \ + aica_device::set_roffset(*device, (offs)); +#define MCFG_AICA_IRQ_CB(cb) \ + devcb = &aica_device::set_irq_callback(*device, (DEVCB_##cb)); -struct AICA_EG_t -{ - int volume; // - AICA_STATE state; - int step; - //step vals - int AR; //Attack - int D1R; //Decay1 - int D2R; //Decay2 - int RR; //Release - - int DL; //Decay level - uint8_t LPLINK; -}; - -struct AICA_SLOT -{ - union - { - uint16_t data[0x40]; //only 0x1a bytes used - uint8_t datab[0x80]; - } udata; - uint8_t active; //this slot is currently playing - uint8_t *base; //samples base address - uint32_t prv_addr; // previous play address (for ADPCM) - uint32_t cur_addr; //current play address (24.8) - uint32_t nxt_addr; //next play address - uint32_t step; //pitch step (24.8) - uint8_t Backwards; //the wave is playing backwards - AICA_EG_t EG; //Envelope - AICA_LFO_t PLFO; //Phase LFO - AICA_LFO_t ALFO; //Amplitude LFO - int slot; - int cur_sample; //current ADPCM sample - int cur_quant; //current ADPCM step - int curstep; - int cur_lpquant, cur_lpsample, cur_lpstep; - uint8_t *adbase, *adlpbase; - uint8_t lpend; -}; +#define MCFG_AICA_MAIN_IRQ_CB(cb) \ + devcb = &aica_device::set_main_irq_callback(*device, (DEVCB_##cb)); class aica_device : public device_t, public device_sound_interface @@ -83,8 +34,8 @@ public: static void set_master(device_t &device) { downcast(device).m_master = true; } static void set_roffset(device_t &device, int roffset) { downcast(device).m_roffset = roffset; } - template static devcb_base &set_irq_callback(device_t &device, _Object object) { return downcast(device).m_irq_cb.set_callback(object); } - template static devcb_base &set_main_irq_callback(device_t &device, _Object object) { return downcast(device).m_main_irq_cb.set_callback(object); } + template static devcb_base &set_irq_callback(device_t &device, Object &&cb) { return downcast(device).m_irq_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_main_irq_callback(device_t &device, Object &&cb) { return downcast(device).m_main_irq_cb.set_callback(std::forward(cb)); } // AICA register access DECLARE_READ16_MEMBER( read ); @@ -102,7 +53,60 @@ protected: // sound stream update overrides virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; + private: + enum AICA_STATE {AICA_ATTACK,AICA_DECAY1,AICA_DECAY2,AICA_RELEASE}; + + struct AICA_LFO_t + { + unsigned short phase; + uint32_t phase_step; + int *table; + int *scale; + }; + + struct AICA_EG_t + { + int volume; // + AICA_STATE state; + int step; + //step vals + int AR; //Attack + int D1R; //Decay1 + int D2R; //Decay2 + int RR; //Release + + int DL; //Decay level + uint8_t LPLINK; + }; + + struct AICA_SLOT + { + union + { + uint16_t data[0x40]; //only 0x1a bytes used + uint8_t datab[0x80]; + } udata; + uint8_t active; //this slot is currently playing + uint8_t *base; //samples base address + uint32_t prv_addr; // previous play address (for ADPCM) + uint32_t cur_addr; //current play address (24.8) + uint32_t nxt_addr; //next play address + uint32_t step; //pitch step (24.8) + uint8_t Backwards; //the wave is playing backwards + AICA_EG_t EG; //Envelope + AICA_LFO_t PLFO; //Phase LFO + AICA_LFO_t ALFO; //Amplitude LFO + int slot; + int cur_sample; //current ADPCM sample + int cur_quant; //current ADPCM step + int curstep; + int cur_lpquant, cur_lpsample, cur_lpstep; + uint8_t *adbase, *adlpbase; + uint8_t lpend; + }; + + unsigned char DecodeSCI(unsigned char irq); void ResetInterrupts(); @@ -183,13 +187,13 @@ private: emu_timer *m_timerA, *m_timerB, *m_timerC; // DMA stuff - struct{ + struct { uint32_t dmea; uint16_t drga; uint16_t dlg; uint8_t dgate; uint8_t ddir; - }m_dma; + } m_dma; int m_ARTABLE[64], m_DRTABLE[64]; diff --git a/src/devices/sound/aicadsp.cpp b/src/devices/sound/aicadsp.cpp index e556e01a68e..8ede8c6822f 100644 --- a/src/devices/sound/aicadsp.cpp +++ b/src/devices/sound/aicadsp.cpp @@ -55,14 +55,14 @@ static int32_t UNPACK(uint16_t val) return uval; } -void aica_dsp_init(AICADSP *DSP) +void AICADSP::init() { - memset(DSP,0,sizeof(AICADSP)); - DSP->RBL=0x8000; - DSP->Stopped=1; + memset(this,0,sizeof(*this)); + RBL=0x8000; + Stopped=1; } -void aica_dsp_step(AICADSP *DSP) +void AICADSP::step() { int32_t ACC=0; //26 bit int32_t SHIFTED=0; //24 bit @@ -77,19 +77,19 @@ void aica_dsp_step(AICADSP *DSP) uint32_t ADRS_REG=0; //13 bit int step; - if(DSP->Stopped) + if(Stopped) return; - memset(DSP->EFREG,0,2*16); + memset(EFREG,0,2*16); #if 0 int dump=0; FILE *f=nullptr; if(dump) f=fopen("dsp.txt","wt"); #endif - for(step=0;stepLastStep;++step) + for(step=0;stepMPRO+step*8; + uint16_t *IPtr=MPRO+step*8; // if(IPtr[0]==0 && IPtr[1]==0 && IPtr[2]==0 && IPtr[3]==0) // break; @@ -157,9 +157,9 @@ void aica_dsp_step(AICADSP *DSP) //INPUTS RW assert(IRA<0x32); if(IRA<=0x1f) - INPUTS=DSP->MEMS[IRA]; + INPUTS=MEMS[IRA]; else if(IRA<=0x2F) - INPUTS=DSP->MIXS[IRA-0x20]<<4; //MIXS is 20 bit + INPUTS=MIXS[IRA-0x20]<<4; //MIXS is 20 bit else if(IRA<=0x31) INPUTS=0; @@ -170,7 +170,7 @@ void aica_dsp_step(AICADSP *DSP) if(IWT) { - DSP->MEMS[IWA]=MEMVAL; //MEMVAL was selected in previous MRD + MEMS[IWA]=MEMVAL; //MEMVAL was selected in previous MRD if(IRA==IWA) INPUTS=MEMVAL; } @@ -183,7 +183,7 @@ void aica_dsp_step(AICADSP *DSP) B=ACC; else { - B=DSP->TEMP[(TRA+DSP->DEC)&0x7F]; + B=TEMP[(TRA+DEC)&0x7F]; B<<=8; B>>=8; //if(B&0x00800000) @@ -200,7 +200,7 @@ void aica_dsp_step(AICADSP *DSP) X=INPUTS; else { - X=DSP->TEMP[(TRA+DSP->DEC)&0x7F]; + X=TEMP[(TRA+DEC)&0x7F]; X<<=8; X>>=8; //if(X&0x00800000) @@ -211,7 +211,7 @@ void aica_dsp_step(AICADSP *DSP) if(YSEL==0) Y=FRC_REG; else if(YSEL==1) - Y=DSP->COEF[COEF<<1]>>3; //COEF is 16 bits + Y=this->COEF[COEF<<1]>>3; //COEF is 16 bits else if(YSEL==2) Y=(Y_REG>>11)&0x1FFF; else if(YSEL==3) @@ -266,7 +266,7 @@ void aica_dsp_step(AICADSP *DSP) ACC=(int) v+B; if(TWT) - DSP->TEMP[(TWA+DSP->DEC)&0x7F]=SHIFTED; + TEMP[(TWA+DEC)&0x7F]=SHIFTED; if(FRCL) { @@ -279,34 +279,34 @@ void aica_dsp_step(AICADSP *DSP) if(MRD || MWT) //if(0) { - ADDR=DSP->MADRS[MASA<<1]; + ADDR=MADRS[MASA<<1]; if(!TABLE) - ADDR+=DSP->DEC; + ADDR+=DEC; if(ADREB) ADDR+=ADRS_REG&0x0FFF; if(NXADR) ADDR++; if(!TABLE) - ADDR&=DSP->RBL-1; + ADDR&=RBL-1; else ADDR&=0xFFFF; //ADDR<<=1; - //ADDR+=DSP->RBP<<13; - //MEMVAL=DSP->AICARAM[ADDR>>1]; - ADDR+=DSP->RBP<<10; + //ADDR+=RBP<<13; + //MEMVAL=AICARAM[ADDR>>1]; + ADDR+=RBP<<10; if(MRD && (step&1)) //memory only allowed on odd? DoA inserts NOPs on even { if(NOFL) - MEMVAL=DSP->AICARAM[ADDR]<<8; + MEMVAL=AICARAM[ADDR]<<8; else - MEMVAL=UNPACK(DSP->AICARAM[ADDR]); + MEMVAL=UNPACK(AICARAM[ADDR]); } if(MWT && (step&1)) { if(NOFL) - DSP->AICARAM[ADDR]=SHIFTED>>8; + AICARAM[ADDR]=SHIFTED>>8; else - DSP->AICARAM[ADDR]=PACK(SHIFTED); + AICARAM[ADDR]=PACK(SHIFTED); } } @@ -319,34 +319,33 @@ void aica_dsp_step(AICADSP *DSP) } if(EWT) - DSP->EFREG[EWA]+=SHIFTED>>8; + EFREG[EWA]+=SHIFTED>>8; } - --DSP->DEC; - memset(DSP->MIXS,0,4*16); + --DEC; + memset(MIXS,0,4*16); // if(f) // fclose(f); } -void aica_dsp_setsample(AICADSP *DSP,int32_t sample,int SEL,int MXL) +void AICADSP::setsample(int32_t sample,int SEL,int MXL) { - //DSP->MIXS[SEL]+=sample<<(MXL+1)/*7*/; - DSP->MIXS[SEL]+=sample; + //MIXS[SEL]+=sample<<(MXL+1)/*7*/; + MIXS[SEL]+=sample; // if(MXL) // int a=1; } -void aica_dsp_start(AICADSP *DSP) +void AICADSP::start() { int i; - DSP->Stopped=0; + Stopped=0; for(i=127;i>=0;--i) { - uint16_t *IPtr=DSP->MPRO+i*8; + uint16_t *IPtr=MPRO+i*8; if(IPtr[0]!=0 || IPtr[2]!=0 || IPtr[4]!=0 || IPtr[6]!=0) break; } - DSP->LastStep=i+1; - + LastStep=i+1; } diff --git a/src/devices/sound/aicadsp.h b/src/devices/sound/aicadsp.h index 54c2b2ab21e..2ac022394cf 100644 --- a/src/devices/sound/aicadsp.h +++ b/src/devices/sound/aicadsp.h @@ -1,13 +1,18 @@ // license:BSD-3-Clause // copyright-holders:ElSemi, Deunan Knute, R. Belmont -#pragma once +#ifndef MAME_SOUND_AICADSP_H +#define MAME_SOUND_AICADSP_H -#ifndef __AICADSP_H__ -#define __AICADSP_H__ +#pragma once //the DSP Context struct AICADSP { + void init(); + void setsample(int32_t sample, int32_t SEL, int32_t MXL); + void step(); + void start(); + //Config uint16_t *AICARAM; uint32_t AICARAM_LENGTH; @@ -34,9 +39,4 @@ struct AICADSP int LastStep; }; -void aica_dsp_init(AICADSP *DSP); -void aica_dsp_setsample(AICADSP *DSP, int32_t sample, int32_t SEL, int32_t MXL); -void aica_dsp_step(AICADSP *DSP); -void aica_dsp_start(AICADSP *DSP); - -#endif /* __AICADSP_H__ */ +#endif // MAME_SOUND_AICADSP_H diff --git a/src/devices/sound/asc.cpp b/src/devices/sound/asc.cpp index 7cce59b579f..97a9c8e3130 100644 --- a/src/devices/sound/asc.cpp +++ b/src/devices/sound/asc.cpp @@ -35,7 +35,7 @@ #include "asc.h" // device type definition -const device_type ASC = device_creator; +DEFINE_DEVICE_TYPE(ASC, asc_device, "asc", "ASC") //************************************************************************** // LIVE DEVICE @@ -46,10 +46,11 @@ const device_type ASC = device_creator; //------------------------------------------------- asc_device::asc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, ASC, "ASC", tag, owner, clock, "asc", __FILE__), - device_sound_interface(mconfig, *this), - write_irq(*this), - m_chip_type(0) + : device_t(mconfig, ASC, tag, owner, clock) + , device_sound_interface(mconfig, *this) + , write_irq(*this) + , m_chip_type(asc_type::ASC) + , m_timer(nullptr) { } @@ -59,7 +60,7 @@ asc_device::asc_device(const machine_config &mconfig, const char *tag, device_t // the chip type //------------------------------------------------- -void asc_device::static_set_type(device_t &device, int type) +void asc_device::static_set_type(device_t &device, asc_type type) { asc_device &asc = downcast(device); asc.m_chip_type = type; @@ -170,7 +171,7 @@ void asc_device::sound_stream_update(sound_stream &stream, stream_sample_t **inp switch (m_chip_type) { - case ASC_TYPE_SONORA: + case asc_type::SONORA: if (m_fifo_cap_a < 0x200) { m_regs[R_FIFOSTAT-0x800] |= 0x4; // fifo less than half full @@ -272,16 +273,16 @@ READ8_MEMBER( asc_device::read ) case R_VERSION: switch (m_chip_type) { - case ASC_TYPE_ASC: + case asc_type::ASC: return 0; - case ASC_TYPE_V8: - case ASC_TYPE_EAGLE: - case ASC_TYPE_SPICE: - case ASC_TYPE_VASP: + case asc_type::V8: + case asc_type::EAGLE: + case asc_type::SPICE: + case asc_type::VASP: return 0xe8; - case ASC_TYPE_SONORA: + case asc_type::SONORA: return 0xbc; default: // return the actual register value @@ -292,10 +293,10 @@ READ8_MEMBER( asc_device::read ) case R_MODE: switch (m_chip_type) { - case ASC_TYPE_V8: - case ASC_TYPE_EAGLE: - case ASC_TYPE_SPICE: - case ASC_TYPE_VASP: + case asc_type::V8: + case asc_type::EAGLE: + case asc_type::SPICE: + case asc_type::VASP: return 1; default: @@ -306,10 +307,10 @@ READ8_MEMBER( asc_device::read ) case R_CONTROL: switch (m_chip_type) { - case ASC_TYPE_V8: - case ASC_TYPE_EAGLE: - case ASC_TYPE_SPICE: - case ASC_TYPE_VASP: + case asc_type::V8: + case asc_type::EAGLE: + case asc_type::SPICE: + case asc_type::VASP: return 1; default: @@ -318,7 +319,7 @@ READ8_MEMBER( asc_device::read ) break; case R_FIFOSTAT: - if (m_chip_type == ASC_TYPE_V8) + if (m_chip_type == asc_type::V8) { rv = 3; } diff --git a/src/devices/sound/asc.h b/src/devices/sound/asc.h index c9bbc7ae868..d8dfa6e30f1 100644 --- a/src/devices/sound/asc.h +++ b/src/devices/sound/asc.h @@ -9,30 +9,10 @@ ***************************************************************************/ -#pragma once - -#ifndef __ASC_H__ -#define __ASC_H__ - - +#ifndef MAME_SOUND_ASC_H +#define MAME_SOUND_ASC_H - -//************************************************************************** -// CONSTANTS -//************************************************************************** - -// chip behavior types -enum -{ - ASC_TYPE_ASC = 0, // original discrete Apple Sound Chip - ASC_TYPE_EASC = 1, // discrete Enhanced Apple Sound Chip - ASC_TYPE_V8 = 2, // Subset of ASC included in the V8 ASIC (LC/LCII) - ASC_TYPE_EAGLE = 3, // Subset of ASC included in the Eagle ASIC (Classic II) - ASC_TYPE_SPICE = 4, // Subset of ASC included in the Spice ASIC (Color Classic) - ASC_TYPE_SONORA = 5, // Subset of ASC included in the Sonora ASIC (LCIII) - ASC_TYPE_VASP = 6, // Subset of ASC included in the VASP ASIC (IIvx/IIvi) - ASC_TYPE_ARDBEG = 7 // Subset of ASC included in the Ardbeg ASIC (LC520) -}; +#pragma once @@ -51,10 +31,12 @@ enum MCFG_IRQ_FUNC(_irqf) #define MCFG_ASC_TYPE(_type) \ - asc_device::static_set_type(*device, _type); + asc_device::static_set_type(*device, asc_device::asc_type::_type); + #define MCFG_IRQ_FUNC(_irqf) \ devcb = &downcast(device)->set_irqf(DEVCB_##_irqf); + //************************************************************************** // TYPE DEFINITIONS //************************************************************************** @@ -64,25 +46,35 @@ enum class asc_device : public device_t, public device_sound_interface { public: + // chip behavior types + enum class asc_type : uint8_t + { + ASC = 0, // original discrete Apple Sound Chip + EASC = 1, // discrete Enhanced Apple Sound Chip + V8 = 2, // Subset of ASC included in the V8 ASIC (LC/LCII) + EAGLE = 3, // Subset of ASC included in the Eagle ASIC (Classic II) + SPICE = 4, // Subset of ASC included in the Spice ASIC (Color Classic) + SONORA = 5, // Subset of ASC included in the Sonora ASIC (LCIII) + VASP = 6, // Subset of ASC included in the VASP ASIC (IIvx/IIvi) + ARDBEG = 7 // Subset of ASC included in the Ardbeg ASIC (LC520) + }; + + // construction/destruction asc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // inline configuration helpers - static void static_set_type(device_t &device, int type); + static void static_set_type(device_t &device, asc_type type); - template devcb_base &set_irqf(_write wr) + template devcb_base &set_irqf(Write &&wr) { - return write_irq.set_callback(wr); + return write_irq.set_callback(std::forward(wr)); } - devcb_write_line write_irq; - DECLARE_READ8_MEMBER(read); DECLARE_WRITE8_MEMBER(write); - sound_stream *m_stream; - protected: enum { @@ -111,8 +103,12 @@ protected: virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; + devcb_write_line write_irq; + + sound_stream *m_stream; + // inline data - uint8_t m_chip_type; + asc_type m_chip_type; uint8_t m_fifo_a[0x400]; uint8_t m_fifo_b[0x400]; @@ -130,7 +126,6 @@ protected: // device type definition -extern const device_type ASC; - +DECLARE_DEVICE_TYPE(ASC, asc_device) -#endif /* __ASC_H__ */ +#endif // MAME_SOUND_ASC_H diff --git a/src/devices/sound/astrocde.cpp b/src/devices/sound/astrocde.cpp index b5d23dcb751..1e8349bbd9d 100644 --- a/src/devices/sound/astrocde.cpp +++ b/src/devices/sound/astrocde.cpp @@ -46,7 +46,7 @@ // device type definition -const device_type ASTROCADE = device_creator; +DEFINE_DEVICE_TYPE(ASTROCADE, astrocade_device, "astrocade", "Astrocade") //************************************************************************** @@ -58,7 +58,7 @@ const device_type ASTROCADE = device_creator; //------------------------------------------------- astrocade_device::astrocade_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, ASTROCADE, "Astrocade", tag, owner, clock, "astrocade", __FILE__), + : device_t(mconfig, ASTROCADE, tag, owner, clock), device_sound_interface(mconfig, *this), m_stream(nullptr), m_master_count(0), diff --git a/src/devices/sound/astrocde.h b/src/devices/sound/astrocde.h index 2feccd84437..c24c51d70ec 100644 --- a/src/devices/sound/astrocde.h +++ b/src/devices/sound/astrocde.h @@ -1,19 +1,20 @@ // license:BSD-3-Clause // copyright-holders:Aaron Giles,Frank Palazzolo -#pragma once +#ifndef MAME_SOUND_ASTROCDE_H +#define MAME_SOUND_ASTROCDE_H -#ifndef __ASTROCDE_H__ -#define __ASTROCDE_H__ +#pragma once //************************************************************************** // INTERFACE CONFIGURATION MACROS //************************************************************************** -#define MCFG_ASTROCADE_ADD(_tag, _clock) \ - MCFG_DEVICE_ADD(_tag, ASTROCADE, _clock) -#define MCFG_ASTROCADE_REPLACE(_tag, _clock) \ - MCFG_DEVICE_REPLACE(_tag, ASTROCADE, _clock) +#define MCFG_ASTROCADE_ADD(tag, clock) \ + MCFG_DEVICE_ADD((tag), ASTROCADE, (clock)) + +#define MCFG_ASTROCADE_REPLACE(tag, clock) \ + MCFG_DEVICE_REPLACE((tag), ASTROCADE, (clock)) @@ -23,12 +24,10 @@ // ======================> astrocade_device -class astrocade_device : public device_t, - public device_sound_interface +class astrocade_device : public device_t, public device_sound_interface { public: astrocade_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~astrocade_device() { } protected: // device-level overrides @@ -44,7 +43,6 @@ public: private: void state_save_register(); -private: sound_stream *m_stream; /* sound stream */ uint8_t m_reg[8]; /* 8 control registers */ @@ -67,7 +65,6 @@ private: uint8_t m_bitswap[256]; /* bitswap table */ }; -extern const device_type ASTROCADE; - +DECLARE_DEVICE_TYPE(ASTROCADE, astrocade_device) -#endif /* __ASTROCDE_H__ */ +#endif // MAME_SOUND_ASTROCDE_H diff --git a/src/devices/sound/awacs.cpp b/src/devices/sound/awacs.cpp index b2d405668ea..0c9c5417ffc 100644 --- a/src/devices/sound/awacs.cpp +++ b/src/devices/sound/awacs.cpp @@ -14,7 +14,8 @@ #include "awacs.h" // device type definition -const device_type AWACS = device_creator; +DEFINE_DEVICE_TYPE(AWACS, awacs_device, "awacs", "AWACS") + //************************************************************************** // LIVE DEVICE @@ -25,8 +26,12 @@ const device_type AWACS = device_creator; //------------------------------------------------- awacs_device::awacs_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, AWACS, "AWACS", tag, owner, clock, "awacs", __FILE__), - device_sound_interface(mconfig, *this), m_stream(nullptr), m_play_ptr(0), m_buffer_size(0), m_buffer_num(0), m_playback_enable(false), m_dma_space(nullptr), m_dma_offset_0(0), m_dma_offset_1(0), m_timer(nullptr) + : device_t(mconfig, AWACS, tag, owner, clock) + , device_sound_interface(mconfig, *this) + , m_stream(nullptr) + , m_play_ptr(0), m_buffer_size(0), m_buffer_num(0), m_playback_enable(false) + , m_dma_space(nullptr), m_dma_offset_0(0), m_dma_offset_1(0) + , m_timer(nullptr) { } diff --git a/src/devices/sound/awacs.h b/src/devices/sound/awacs.h index a18a23f4a54..d0dd5cb2441 100644 --- a/src/devices/sound/awacs.h +++ b/src/devices/sound/awacs.h @@ -8,10 +8,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_SOUND_AWACS_H +#define MAME_SOUND_AWACS_H -#ifndef __AWACS_H__ -#define __AWACS_H__ +#pragma once @@ -47,8 +47,6 @@ public: void set_dma_base(address_space &space, int offset0, int offset1); - sound_stream *m_stream; - protected: // device-level overrides virtual void device_start() override; @@ -57,6 +55,8 @@ protected: virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; + sound_stream *m_stream; + // inline data uint8_t m_regs[0x100]; @@ -71,7 +71,6 @@ protected: // device type definition -extern const device_type AWACS; - +DECLARE_DEVICE_TYPE(AWACS, awacs_device) -#endif /* __AWACS_H__ */ +#endif // MAME_SOUND_AWACS_H diff --git a/src/devices/sound/ay8910.cpp b/src/devices/sound/ay8910.cpp index 4583c11a591..b0eaabbcc69 100644 --- a/src/devices/sound/ay8910.cpp +++ b/src/devices/sound/ay8910.cpp @@ -426,20 +426,20 @@ static const ay8910_device::mosfet_param ay8910_mosfet_param = 4.9, 16, { - 0.00076, - 0.80536, - 1.13106, - 1.65952, - 2.42261, - 3.60536, - 5.34893, - 8.96871, - 10.97202, - 19.32370, - 29.01935, - 38.82026, - 55.50539, - 78.44395, + 0.00076, + 0.80536, + 1.13106, + 1.65952, + 2.42261, + 3.60536, + 5.34893, + 8.96871, + 10.97202, + 19.32370, + 29.01935, + 38.82026, + 55.50539, + 78.44395, 109.49257, 153.72985, } @@ -580,7 +580,7 @@ uint16_t ay8910_device::mix_3D() { int indx = 0, chan; - for (chan = 0; chan < AY8910_NUM_CHANNELS; chan++) + for (chan = 0; chan < NUM_CHANNELS; chan++) if (TONE_ENVELOPE(chan) != 0) { if (type() == AY8914) // AY8914 Has a two bit tone_envelope field @@ -706,13 +706,13 @@ void ay8910_device::ay8910_write_reg(int r, int v) void ay8910_device::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) { - stream_sample_t *buf[AY8910_NUM_CHANNELS]; + stream_sample_t *buf[NUM_CHANNELS]; int chan; buf[0] = outputs[0]; buf[1] = nullptr; buf[2] = nullptr; - if (m_streams == AY8910_NUM_CHANNELS) + if (m_streams == NUM_CHANNELS) { buf[1] = outputs[1]; buf[2] = outputs[2]; @@ -721,7 +721,7 @@ void ay8910_device::sound_stream_update(sound_stream &stream, stream_sample_t ** /* hack to prevent us from hanging when starting filtered outputs */ if (!m_ready) { - for (chan = 0; chan < AY8910_NUM_CHANNELS; chan++) + for (chan = 0; chan < NUM_CHANNELS; chan++) if (buf[chan] != nullptr) memset(buf[chan], 0, samples * sizeof(*buf[chan])); } @@ -736,7 +736,7 @@ void ay8910_device::sound_stream_update(sound_stream &stream, stream_sample_t ** /* buffering loop */ while (samples) { - for (chan = 0; chan < AY8910_NUM_CHANNELS; chan++) + for (chan = 0; chan < NUM_CHANNELS; chan++) { m_count[chan]++; if (m_count[chan] >= TONE_PERIOD(chan)) @@ -766,7 +766,7 @@ void ay8910_device::sound_stream_update(sound_stream &stream, stream_sample_t ** } } - for (chan = 0; chan < AY8910_NUM_CHANNELS; chan++) + for (chan = 0; chan < NUM_CHANNELS; chan++) { m_vol_enabled[chan] = (m_output[chan] | TONE_ENABLEQ(chan)) & (NOISE_OUTPUT() | NOISE_ENABLEQ(chan)); } @@ -807,7 +807,7 @@ void ay8910_device::sound_stream_update(sound_stream &stream, stream_sample_t ** if (m_streams == 3) { - for (chan = 0; chan < AY8910_NUM_CHANNELS; chan++) + for (chan = 0; chan < NUM_CHANNELS; chan++) if (TONE_ENVELOPE(chan) != 0) { if (type() == AY8914) // AY8914 Has a two bit tone_envelope field @@ -848,15 +848,15 @@ void ay8910_device::build_mixer_table() if (m_type != PSG_TYPE_AY) fatalerror("AY8910_RESISTOR_OUTPUT currently only supported for AY8910 devices."); - for (chan=0; chan < AY8910_NUM_CHANNELS; chan++) + for (chan=0; chan < NUM_CHANNELS; chan++) { build_mosfet_resistor_table(ay8910_mosfet_param, m_res_load[chan], m_vol_table[chan]); build_mosfet_resistor_table(ay8910_mosfet_param, m_res_load[chan], m_env_table[chan]); } } - else if (m_streams == AY8910_NUM_CHANNELS) + else if (m_streams == NUM_CHANNELS) { - for (chan=0; chan < AY8910_NUM_CHANNELS; chan++) + for (chan=0; chan < NUM_CHANNELS; chan++) { build_single_table(m_res_load[chan], m_par, normalize, m_vol_table[chan], m_zero_is_off); build_single_table(m_res_load[chan], m_par_env, normalize, m_env_table[chan], 0); @@ -1188,53 +1188,16 @@ WRITE8_MEMBER( ay8914_device::write ) -const device_type AY8910 = device_creator; +DEFINE_DEVICE_TYPE(AY8910, ay8910_device, "ay8910", "AY-3-8910A") ay8910_device::ay8910_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, AY8910, "AY-3-8910A", tag, owner, clock, "ay8910", __FILE__), - device_sound_interface(mconfig, *this), - m_type(PSG_TYPE_AY), - m_streams(3), - m_ioports(2), - m_ready(0), - m_channel(nullptr), - m_active(false), - m_register_latch(0), - m_last_enable(0), - m_prescale_noise(0), - m_count_noise(0), - m_count_env(0), - m_env_step(0), - m_env_volume(0), - m_hold(0), - m_alternate(0), - m_attack(0), - m_holding(0), - m_rng(0), - m_env_step_mask(0x0f), - m_step(2), - m_zero_is_off(1), - m_par(&ay8910_param), - m_par_env(&ay8910_param), - m_flags(AY8910_LEGACY_OUTPUT), - m_port_a_read_cb(*this), - m_port_b_read_cb(*this), - m_port_a_write_cb(*this), - m_port_b_write_cb(*this) + : ay8910_device(mconfig, AY8910, tag, owner, clock, PSG_TYPE_AY, 3, 2) { - memset(&m_regs,0,sizeof(m_regs)); - memset(&m_count,0,sizeof(m_count)); - memset(&m_output,0,sizeof(m_output)); - memset(&m_vol_enabled,0,sizeof(m_vol_enabled)); - memset(&m_vol_table,0,sizeof(m_vol_table)); - memset(&m_env_table,0,sizeof(m_env_table)); - memset(&m_vol3d_table,0,sizeof(m_vol3d_table)); - m_res_load[0] = m_res_load[1] = m_res_load[2] = 1000; //Default values for resistor loads } -ay8910_device::ay8910_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, - psg_type_t psg_type, int streams, int ioports, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), +ay8910_device::ay8910_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, + psg_type_t psg_type, int streams, int ioports) + : device_t(mconfig, type, tag, owner, clock), device_sound_interface(mconfig, *this), m_type(psg_type), m_streams(streams), @@ -1298,65 +1261,65 @@ void ay8910_device::set_type(psg_type_t psg_type) } } -const device_type AY8912 = device_creator; +DEFINE_DEVICE_TYPE(AY8912, ay8912_device, "ay8912", "AY-3-8912A") ay8912_device::ay8912_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : ay8910_device(mconfig, AY8912, "AY-3-8912A", tag, owner, clock, PSG_TYPE_AY, 3, 1, "ay8912", __FILE__) + : ay8910_device(mconfig, AY8912, tag, owner, clock, PSG_TYPE_AY, 3, 1) { } -const device_type AY8913 = device_creator; +DEFINE_DEVICE_TYPE(AY8913, ay8913_device, "ay8913", "AY-3-8913A") ay8913_device::ay8913_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : ay8910_device(mconfig, AY8913, "AY-3-8913A", tag, owner, clock, PSG_TYPE_AY, 3, 0, "ay8913", __FILE__) + : ay8910_device(mconfig, AY8913, tag, owner, clock, PSG_TYPE_AY, 3, 0) { } -const device_type AY8914 = device_creator; +DEFINE_DEVICE_TYPE(AY8914, ay8914_device, "ay8914", "AY-3-8914A") ay8914_device::ay8914_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : ay8910_device(mconfig, AY8914, "AY-3-8914", tag, owner, clock, PSG_TYPE_AY, 3, 2, "ay8914", __FILE__) + : ay8910_device(mconfig, AY8914, tag, owner, clock, PSG_TYPE_AY, 3, 2) { } -const device_type AY8930 = device_creator; +DEFINE_DEVICE_TYPE(AY8930, ay8930_device, "ay8930", "AY-3-8930A") ay8930_device::ay8930_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : ay8910_device(mconfig, AY8930, "AY8930", tag, owner, clock, PSG_TYPE_AY, 3, 2, "ay8930", __FILE__) + : ay8910_device(mconfig, AY8930, tag, owner, clock, PSG_TYPE_AY, 3, 2) { } -const device_type YM2149 = device_creator; +DEFINE_DEVICE_TYPE(YM2149, ym2149_device, "ym2149", "YM2149") ym2149_device::ym2149_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : ay8910_device(mconfig, YM2149, "YM2149", tag, owner, clock, PSG_TYPE_YM, 3, 2, "ym2149", __FILE__) + : ay8910_device(mconfig, YM2149, tag, owner, clock, PSG_TYPE_YM, 3, 2) { } -const device_type YM3439 = device_creator; +DEFINE_DEVICE_TYPE(YM3439, ym3439_device, "ym3439", "YM3439") ym3439_device::ym3439_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : ay8910_device(mconfig, YM3439, "YM3439", tag, owner, clock, PSG_TYPE_YM, 3, 2, "ym3429", __FILE__) + : ay8910_device(mconfig, YM3439, tag, owner, clock, PSG_TYPE_YM, 3, 2) { } -const device_type YMZ284 = device_creator; +DEFINE_DEVICE_TYPE(YMZ284, ymz284_device, "ymz284", "YMZ284") ymz284_device::ymz284_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : ay8910_device(mconfig, YMZ284, "YMZ284", tag, owner, clock, PSG_TYPE_YM, 1, 0, "ymz284", __FILE__) + : ay8910_device(mconfig, YMZ284, tag, owner, clock, PSG_TYPE_YM, 1, 0) { } -const device_type YMZ294 = device_creator; +DEFINE_DEVICE_TYPE(YMZ294, ymz294_device, "ymz294", "YMZ294") ymz294_device::ymz294_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : ay8910_device(mconfig, YMZ294, "YMZ294", tag, owner, clock, PSG_TYPE_YM, 1, 0, "ymz294", __FILE__) + : ay8910_device(mconfig, YMZ294, tag, owner, clock, PSG_TYPE_YM, 1, 0) { } diff --git a/src/devices/sound/ay8910.h b/src/devices/sound/ay8910.h index c4ea3f0f603..44c04bf36b0 100644 --- a/src/devices/sound/ay8910.h +++ b/src/devices/sound/ay8910.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Couriersud -#pragma once +#ifndef MAME_SOUND_AY8910_H +#define MAME_SOUND_AY8910_H -#ifndef __AY8910_H__ -#define __AY8910_H__ +#pragma once /* @@ -67,9 +67,6 @@ OKI M5255, Winbond WF19054, JFC 95101, File KC89C72, Toshiba T7766A : difference #define YM2149_PIN26_LOW (0x10) -#define AY8910_NUM_CHANNELS 3 - - #define MCFG_AY8910_OUTPUT_TYPE(_flag) \ ay8910_device::set_flags(*device, _flag); @@ -101,17 +98,15 @@ public: // construction/destruction ay8910_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ay8910_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, - uint32_t clock, psg_type_t psg_type, int streams, int ioports, const char *shortname, const char *source); // static configuration helpers static void set_flags(device_t &device, int flags) { downcast(device).m_flags = flags; } static void set_psg_type(device_t &device, psg_type_t psg_type) { downcast(device).set_type(psg_type); } static void set_resistors_load(device_t &device, int res_load0, int res_load1, int res_load2) { downcast(device).m_res_load[0] = res_load0; downcast(device).m_res_load[1] = res_load1; downcast(device).m_res_load[2] = res_load2; } - template static devcb_base &set_port_a_read_callback(device_t &device, _Object object) { return downcast(device).m_port_a_read_cb.set_callback(object); } - template static devcb_base &set_port_b_read_callback(device_t &device, _Object object) { return downcast(device).m_port_b_read_cb.set_callback(object); } - template static devcb_base &set_port_a_write_callback(device_t &device, _Object object) { return downcast(device).m_port_a_write_cb.set_callback(object); } - template static devcb_base &set_port_b_write_callback(device_t &device, _Object object) { return downcast(device).m_port_b_write_cb.set_callback(object); } + template static devcb_base &set_port_a_read_callback(device_t &device, Object &&cb) { return downcast(device).m_port_a_read_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_port_b_read_callback(device_t &device, Object &&cb) { return downcast(device).m_port_b_read_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_port_a_write_callback(device_t &device, Object &&cb) { return downcast(device).m_port_a_write_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_port_b_write_callback(device_t &device, Object &&cb) { return downcast(device).m_port_b_write_cb.set_callback(std::forward(cb)); } DECLARE_READ8_MEMBER( data_r ); DECLARE_WRITE8_MEMBER( address_w ); @@ -148,11 +143,16 @@ public: double m_Kn[32]; }; + // internal interface for PSG component of YM device + // FIXME: these should be private, but vector06 accesses them directly void ay8910_write_ym(int addr, uint8_t data); uint8_t ay8910_read_ym(); void ay8910_reset_ym(); protected: + ay8910_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, + uint32_t clock, psg_type_t psg_type, int streams, int ioports); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -161,7 +161,15 @@ protected: // sound stream update overrides virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; + // trampolines for callbacks from fm.cpp + static void psg_set_clock(device_t *device, int clock) { downcast(device)->ay_set_clock(clock); } + static void psg_write(device_t *device, int address, int data) { downcast(device)->ay8910_write_ym(address, data); } + static int psg_read(device_t *device) { return downcast(device)->ay8910_read_ym(); } + static void psg_reset(device_t *device) { downcast(device)->ay8910_reset_ym(); } + private: + static constexpr unsigned NUM_CHANNELS = 3; + // internal helpers void set_type(psg_type_t psg_type); inline uint16_t mix_3D(); @@ -179,8 +187,8 @@ private: int32_t m_register_latch; uint8_t m_regs[16]; int32_t m_last_enable; - int32_t m_count[AY8910_NUM_CHANNELS]; - uint8_t m_output[AY8910_NUM_CHANNELS]; + int32_t m_count[NUM_CHANNELS]; + uint8_t m_output[NUM_CHANNELS]; uint8_t m_prescale_noise; int32_t m_count_noise; int32_t m_count_env; @@ -192,11 +200,11 @@ private: /* init parameters ... */ int m_step; int m_zero_is_off; - uint8_t m_vol_enabled[AY8910_NUM_CHANNELS]; + uint8_t m_vol_enabled[NUM_CHANNELS]; const ay_ym_param *m_par; const ay_ym_param *m_par_env; - int32_t m_vol_table[AY8910_NUM_CHANNELS][16]; - int32_t m_env_table[AY8910_NUM_CHANNELS][32]; + int32_t m_vol_table[NUM_CHANNELS][16]; + int32_t m_env_table[NUM_CHANNELS][32]; int32_t m_vol3d_table[8*32*32*32]; int m_flags; /* Flags */ int m_res_load[3]; /* Load on channel in ohms */ @@ -206,7 +214,7 @@ private: devcb_write8 m_port_b_write_cb; }; -extern const device_type AY8910; +DECLARE_DEVICE_TYPE(AY8910, ay8910_device) class ay8912_device : public ay8910_device { @@ -214,7 +222,7 @@ public: ay8912_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; -extern const device_type AY8912; +DECLARE_DEVICE_TYPE(AY8912, ay8912_device) class ay8913_device : public ay8910_device { @@ -222,7 +230,7 @@ public: ay8913_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; -extern const device_type AY8913; +DECLARE_DEVICE_TYPE(AY8913, ay8913_device) class ay8914_device : public ay8910_device { @@ -234,7 +242,7 @@ public: DECLARE_WRITE8_MEMBER( write ); }; -extern const device_type AY8914; +DECLARE_DEVICE_TYPE(AY8914, ay8914_device) class ay8930_device : public ay8910_device { @@ -242,7 +250,7 @@ public: ay8930_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; -extern const device_type AY8930; +DECLARE_DEVICE_TYPE(AY8930, ay8930_device) class ym2149_device : public ay8910_device { @@ -250,7 +258,7 @@ public: ym2149_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; -extern const device_type YM2149; +DECLARE_DEVICE_TYPE(YM2149, ym2149_device) class ym3439_device : public ay8910_device { @@ -258,7 +266,7 @@ public: ym3439_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; -extern const device_type YM3439; +DECLARE_DEVICE_TYPE(YM3439, ym3439_device) class ymz284_device : public ay8910_device { @@ -266,7 +274,7 @@ public: ymz284_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; -extern const device_type YMZ284; +DECLARE_DEVICE_TYPE(YMZ284, ymz284_device) class ymz294_device : public ay8910_device { @@ -274,7 +282,7 @@ public: ymz294_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; -extern const device_type YMZ294; +DECLARE_DEVICE_TYPE(YMZ294, ymz294_device) -#endif /* __AY8910_H__ */ +#endif // MAME_DEVICES_SOUND_AY8910_H diff --git a/src/devices/sound/beep.cpp b/src/devices/sound/beep.cpp index 1b986fa6c61..6212bed7915 100644 --- a/src/devices/sound/beep.cpp +++ b/src/devices/sound/beep.cpp @@ -20,7 +20,7 @@ // device type definition -const device_type BEEP = device_creator; +DEFINE_DEVICE_TYPE(BEEP, beep_device, "beep", "Beep") //************************************************************************** @@ -32,11 +32,11 @@ const device_type BEEP = device_creator; //------------------------------------------------- beep_device::beep_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, BEEP, "Beep", tag, owner, clock, "beep", __FILE__), - device_sound_interface(mconfig, *this), - m_stream(nullptr), - m_enable(0), - m_frequency(clock) + : device_t(mconfig, BEEP, tag, owner, clock) + , device_sound_interface(mconfig, *this) + , m_stream(nullptr) + , m_enable(0) + , m_frequency(clock) { } diff --git a/src/devices/sound/beep.h b/src/devices/sound/beep.h index fe946cd0d2f..388d0fa6261 100644 --- a/src/devices/sound/beep.h +++ b/src/devices/sound/beep.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Kevin Thacker -#pragma once +#ifndef MAME_SOUND_BEEP_H +#define MAME_SOUND_BEEP_H -#ifndef __BEEP_H__ -#define __BEEP_H__ +#pragma once //************************************************************************** // TYPE DEFINITIONS @@ -16,7 +16,6 @@ class beep_device : public device_t, { public: beep_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~beep_device() { } protected: // device-level overrides @@ -37,7 +36,6 @@ private: int16_t m_signal; /* current signal */ }; -extern const device_type BEEP; - +DECLARE_DEVICE_TYPE(BEEP, beep_device) -#endif /* __BEEP_H__ */ +#endif // MAME_SOUND_BEEP_H diff --git a/src/devices/sound/bsmt2000.cpp b/src/devices/sound/bsmt2000.cpp index b45a2e40f3f..c1c3937bf46 100644 --- a/src/devices/sound/bsmt2000.cpp +++ b/src/devices/sound/bsmt2000.cpp @@ -18,7 +18,7 @@ // device type definition -const device_type BSMT2000 = device_creator; +DEFINE_DEVICE_TYPE(BSMT2000, bsmt2000_device, "bsmt2000", "BSMT2000") //************************************************************************** @@ -26,14 +26,14 @@ const device_type BSMT2000 = device_creator; //************************************************************************** // program map for the DSP (points to internal ROM) -static ADDRESS_MAP_START( tms_program_map, AS_PROGRAM, 16, bsmt2000_device) +static ADDRESS_MAP_START(tms_program_map, AS_PROGRAM, 16, bsmt2000_device) ADDRESS_MAP_UNMAP_HIGH AM_RANGE(0x000, 0xfff) AM_ROM ADDRESS_MAP_END // I/O map for the DSP -static ADDRESS_MAP_START( tms_io_map, AS_IO, 16, bsmt2000_device) +static ADDRESS_MAP_START(tms_io_map, AS_IO, 16, bsmt2000_device) AM_RANGE(0, 0) AM_READWRITE(tms_register_r, tms_rom_addr_w) AM_RANGE(1, 1) AM_READWRITE(tms_data_r, tms_rom_bank_w) AM_RANGE(2, 2) AM_READ(tms_rom_r) @@ -70,19 +70,19 @@ ROM_END //------------------------------------------------- bsmt2000_device::bsmt2000_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, BSMT2000, "BSMT2000", tag, owner, clock, "bsmt2000", __FILE__), - device_sound_interface(mconfig, *this), - device_rom_interface(mconfig, *this, 32), - m_ready_callback(nullptr), - m_stream(nullptr), - m_cpu(nullptr), - m_register_select(0), - m_write_data(0), - m_rom_address(0), - m_rom_bank(0), - m_left_data(0), - m_right_data(0), - m_write_pending(false) + : device_t(mconfig, BSMT2000, tag, owner, clock) + , device_sound_interface(mconfig, *this) + , device_rom_interface(mconfig, *this, 32) + , m_ready_callback() + , m_stream(nullptr) + , m_cpu(*this, "bsmt2000") + , m_register_select(0) + , m_write_data(0) + , m_rom_address(0) + , m_rom_bank(0) + , m_left_data(0) + , m_right_data(0) + , m_write_pending(false) { } @@ -92,10 +92,10 @@ bsmt2000_device::bsmt2000_device(const machine_config &mconfig, const char *tag, // helper to set the ready callback //------------------------------------------------- -void bsmt2000_device::static_set_ready_callback(device_t &device, ready_callback callback) +void bsmt2000_device::static_set_ready_callback(device_t &device, ready_callback &&callback) { bsmt2000_device &bsmt = downcast(device); - bsmt.m_ready_callback = callback; + bsmt.m_ready_callback = std::move(callback); } @@ -127,8 +127,7 @@ machine_config_constructor bsmt2000_device::device_mconfig_additions() const void bsmt2000_device::device_start() { - // find our CPU - m_cpu = subdevice("bsmt2000"); + m_ready_callback.bind_relative_to(*owner()); // create the stream; BSMT typically runs at 24MHz and writes to a DAC, so // in theory we should generate a 24MHz stream, but that's certainly overkill @@ -269,8 +268,8 @@ READ16_MEMBER( bsmt2000_device::tms_data_r ) { // also implicitly clear the write pending flag m_write_pending = false; - if (m_ready_callback != nullptr) - (*m_ready_callback)(*this); + if (!m_ready_callback.isnull()) + m_ready_callback(); return m_write_data; } diff --git a/src/devices/sound/bsmt2000.h b/src/devices/sound/bsmt2000.h index c23ce6daf6a..9a7494777c5 100644 --- a/src/devices/sound/bsmt2000.h +++ b/src/devices/sound/bsmt2000.h @@ -8,10 +8,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_SOUND_BSMT2000_H +#define MAME_SOUND_BSMT2000_H -#ifndef __BSMT2000_H__ -#define __BSMT2000_H__ +#pragma once #include "cpu/tms32010/tms32010.h" @@ -24,8 +24,8 @@ MCFG_DEVICE_ADD(_tag, BSMT2000, _clock) #define MCFG_BSMT2000_REPLACE(_tag, _clock) \ MCFG_DEVICE_REPLACE(_tag, BSMT2000, _clock) -#define MCFG_BSMT2000_READY_CALLBACK(_callback) \ - bsmt2000_device::static_set_ready_callback(*device, _callback); +#define MCFG_BSMT2000_READY_CALLBACK(_class, _method) \ + bsmt2000_device::static_set_ready_callback(*device, bsmt2000_device::ready_callback(&_class::_method, #_class "::" #_method, nullptr, (_class *)nullptr)); //************************************************************************** @@ -39,14 +39,14 @@ class bsmt2000_device : public device_t, public device_sound_interface, public device_rom_interface { - typedef void (*ready_callback)(bsmt2000_device &device); - public: + typedef device_delegate ready_callback; + // construction/destruction bsmt2000_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // inline configuration helpers - static void static_set_ready_callback(device_t &device, ready_callback callback); + static void static_set_ready_callback(device_t &device, ready_callback &&callback); // public interface uint16_t read_status(); @@ -92,7 +92,7 @@ private: // internal state sound_stream * m_stream; - tms32015_device * m_cpu; + required_device m_cpu; uint16_t m_register_select; uint16_t m_write_data; uint16_t m_rom_address; @@ -104,7 +104,6 @@ private: // device type definition -extern const device_type BSMT2000; - +DECLARE_DEVICE_TYPE(BSMT2000, bsmt2000_device) -#endif /* __BSMT2000_H__ */ +#endif // MAME_SOUND_BSMT2000_H diff --git a/src/devices/sound/c140.cpp b/src/devices/sound/c140.cpp index 42bebcf452d..826f8cc5036 100644 --- a/src/devices/sound/c140.cpp +++ b/src/devices/sound/c140.cpp @@ -67,7 +67,7 @@ struct voice_registers // device type definition -const device_type C140 = device_creator; +DEFINE_DEVICE_TYPE(C140, c140_device, "c140", "Namco C140") //************************************************************************** @@ -87,11 +87,11 @@ static inline int limit(int32_t in) //------------------------------------------------- c140_device::c140_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, C140, "C140", tag, owner, clock, "c140", __FILE__) + : device_t(mconfig, C140, tag, owner, clock) , device_sound_interface(mconfig, *this) , m_sample_rate(0) , m_stream(nullptr) - , m_banking_type(0) + , m_banking_type(C140_TYPE::SYSTEM2) , m_mixer_buffer_left(nullptr) , m_mixer_buffer_right(nullptr) , m_baserate(0) @@ -128,7 +128,7 @@ void c140_device::device_start() memset(m_REG,0,sizeof(m_REG)); - for(int i = 0; i < C140_MAX_VOICE; i++) + for(int i = 0; i < MAX_VOICE; i++) { init_voice(&m_voi[i]); } @@ -139,7 +139,7 @@ void c140_device::device_start() save_item(NAME(m_REG)); - for (int i = 0; i < C140_MAX_VOICE; i++) + for (int i = 0; i < MAX_VOICE; i++) { save_item(NAME(m_voi[i].ptoffset), i); save_item(NAME(m_voi[i].pos), i); @@ -187,7 +187,7 @@ void c140_device::sound_stream_update(sound_stream &stream, stream_sample_t **in memset(m_mixer_buffer_right.get(), 0, samples * sizeof(int16_t)); /* get the number of voices to update */ - voicecnt = (m_banking_type == C140_TYPE_ASIC219) ? 16 : 24; + voicecnt = (m_banking_type == C140_TYPE::ASIC219) ? 16 : 24; //--- audio update for( i=0;ivolume_left*32)/C140_MAX_VOICE; //32ch -> 24ch - rvol=(vreg->volume_right*32)/C140_MAX_VOICE; + lvol=(vreg->volume_left*32)/MAX_VOICE; //32ch -> 24ch + rvol=(vreg->volume_right*32)/MAX_VOICE; /* Set mixer outputs base pointers */ lmix = m_mixer_buffer_left.get(); @@ -229,7 +229,7 @@ void c140_device::sound_stream_update(sound_stream &stream, stream_sample_t **in dltdt=v->dltdt; /* Switch on data type - compressed PCM is only for C140 */ - if ((v->mode&8) && (m_banking_type != C140_TYPE_ASIC219)) + if ((v->mode&8) && (m_banking_type != C140_TYPE::ASIC219)) { //compressed PCM (maybe correct...) /* Loop for enough to fill sample buffer as requested */ @@ -305,7 +305,7 @@ void c140_device::sound_stream_update(sound_stream &stream, stream_sample_t **in { prevdt=lastdt; - if (m_banking_type == C140_TYPE_ASIC219) + if (m_banking_type == C140_TYPE::ASIC219) { lastdt = pSampleData[BYTE_XOR_BE(pos)]; @@ -376,7 +376,7 @@ WRITE8_MEMBER( c140_device::c140_w ) offset&=0x1ff; // mirror the bank registers on the 219, fixes bkrtmaq (and probably xday2 based on notes in the HLE) - if ((offset >= 0x1f8) && (m_banking_type == C140_TYPE_ASIC219)) + if ((offset >= 0x1f8) && (m_banking_type == C140_TYPE::ASIC219)) { offset -= 8; } @@ -401,7 +401,7 @@ WRITE8_MEMBER( c140_device::c140_w ) v->mode = data; // on the 219 asic, addresses are in words - if (m_banking_type == C140_TYPE_ASIC219) + if (m_banking_type == C140_TYPE::ASIC219) { v->sample_loop = (vreg->loop_msb*256 + vreg->loop_lsb)*2; v->sample_start = (vreg->start_msb*256 + vreg->start_lsb)*2; @@ -470,18 +470,18 @@ long c140_device::find_sample(long adrs, long bank, int voice) switch (m_banking_type) { - case C140_TYPE_SYSTEM2: + case C140_TYPE::SYSTEM2: // System 2 banking newadr = ((adrs&0x200000)>>2)|(adrs&0x7ffff); break; - case C140_TYPE_SYSTEM21: + case C140_TYPE::SYSTEM21: // System 21 banking. // similar to System 2's. newadr = ((adrs&0x300000)>>1)+(adrs&0x7ffff); break; - case C140_TYPE_ASIC219: + case C140_TYPE::ASIC219: // ASIC219's banking is fairly simple newadr = ((m_REG[asic219banks[voice/4]]&0x3) * 0x20000) + adrs; break; diff --git a/src/devices/sound/c140.h b/src/devices/sound/c140.h index fe37021e466..ff1e2c87d6d 100644 --- a/src/devices/sound/c140.h +++ b/src/devices/sound/c140.h @@ -2,74 +2,29 @@ // copyright-holders:R. Belmont /* C140.h */ -#pragma once - -#ifndef __C140_H__ -#define __C140_H__ +#ifndef MAME_SOUND_C140_H +#define MAME_SOUND_C140_H -#define C140_MAX_VOICE 24 - -enum -{ - C140_TYPE_SYSTEM2, - C140_TYPE_SYSTEM21, - C140_TYPE_ASIC219 -}; +#pragma once //************************************************************************** // INTERFACE CONFIGURATION MACROS //************************************************************************** -#define MCFG_C140_ADD(_tag, _clock) \ - MCFG_DEVICE_ADD(_tag, C140, _clock) -#define MCFG_C140_REPLACE(_tag, _clock) \ - MCFG_DEVICE_REPLACE(_tag, C140, _clock) +#define MCFG_C140_ADD(tag, clock) \ + MCFG_DEVICE_ADD((tag), C140, (clock)) + +#define MCFG_C140_REPLACE(tag, clock) \ + MCFG_DEVICE_REPLACE((tag), C140, (clock)) -#define MCFG_C140_BANK_TYPE(_type) \ - c140_device::set_bank_type(*device, _type); +#define MCFG_C140_BANK_TYPE(type) \ + c140_device::set_bank_type(*device, (c140_device::C140_TYPE::type)); //************************************************************************** // TYPE DEFINITIONS //************************************************************************** -struct C140_VOICE -{ - C140_VOICE() : - ptoffset(0), - pos(0), - key(0), - lastdt(0), - prevdt(0), - dltdt(0), - rvol(0), - lvol(0), - frequency(0), - bank(0), - mode(0), - sample_start(0), - sample_end(0), - sample_loop(0) {} - - int32_t ptoffset; - int32_t pos; - int32_t key; - //--work - int32_t lastdt; - int32_t prevdt; - int32_t dltdt; - //--reg - int32_t rvol; - int32_t lvol; - int32_t frequency; - int32_t bank; - int32_t mode; - - int32_t sample_start; - int32_t sample_end; - int32_t sample_loop; -}; - // ======================> c140_device @@ -77,11 +32,22 @@ class c140_device : public device_t, public device_sound_interface { public: + enum class C140_TYPE + { + SYSTEM2, + SYSTEM21, + ASIC219 + }; + c140_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~c140_device() { } // static configuration - static void set_bank_type(device_t &device, int bank) { downcast(device).m_banking_type = bank; } + static void set_bank_type(device_t &device, C140_TYPE bank) { downcast(device).m_banking_type = bank; } + + DECLARE_READ8_MEMBER( c140_r ); + DECLARE_WRITE8_MEMBER( c140_w ); + + void set_base(void *base); protected: // device-level overrides @@ -90,21 +56,38 @@ protected: // sound stream update overrides virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; -public: - DECLARE_READ8_MEMBER( c140_r ); - DECLARE_WRITE8_MEMBER( c140_w ); - -public: - void set_base(void *base); - private: + static constexpr unsigned MAX_VOICE = 24; + + struct C140_VOICE + { + C140_VOICE() { } + + int32_t ptoffset = 0; + int32_t pos = 0; + int32_t key = 0; + //--work + int32_t lastdt = 0; + int32_t prevdt = 0; + int32_t dltdt = 0; + //--reg + int32_t rvol = 0; + int32_t lvol = 0; + int32_t frequency = 0; + int32_t bank = 0; + int32_t mode = 0; + + int32_t sample_start = 0; + int32_t sample_end = 0; + int32_t sample_loop = 0; + }; + void init_voice( C140_VOICE *v ); long find_sample(long adrs, long bank, int voice); -private: int m_sample_rate; sound_stream *m_stream; - int m_banking_type; + C140_TYPE m_banking_type; /* internal buffers */ std::unique_ptr m_mixer_buffer_left; std::unique_ptr m_mixer_buffer_right; @@ -116,10 +99,9 @@ private: int16_t m_pcmtbl[8]; //2000.06.26 CAB - C140_VOICE m_voi[C140_MAX_VOICE]; + C140_VOICE m_voi[MAX_VOICE]; }; -extern const device_type C140; - +DECLARE_DEVICE_TYPE(C140, c140_device) -#endif /* __C140_H__ */ +#endif // MAME_SOUND_C140_H diff --git a/src/devices/sound/c352.cpp b/src/devices/sound/c352.cpp index d8e6dc03c63..581cddd3968 100644 --- a/src/devices/sound/c352.cpp +++ b/src/devices/sound/c352.cpp @@ -19,11 +19,12 @@ #include "emu.h" #include "c352.h" -#define VERBOSE (0) -#define LOG(x) do { if (VERBOSE) logerror x; } while (0) +//#define VERBOSE 1 +#include "logmacro.h" + // device type definition -const device_type C352 = device_creator; +DEFINE_DEVICE_TYPE(C352, c352_device, "c352", "Namco C352") //************************************************************************** // LIVE DEVICE @@ -34,9 +35,10 @@ const device_type C352 = device_creator; //------------------------------------------------- c352_device::c352_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, C352, "C352", tag, owner, clock, "c352", __FILE__), - device_sound_interface(mconfig, *this), - device_rom_interface(mconfig, *this, 24) + : device_t(mconfig, C352, tag, owner, clock) + , device_sound_interface(mconfig, *this) + , device_rom_interface(mconfig, *this, 24) + , m_stream(nullptr) { } diff --git a/src/devices/sound/c352.h b/src/devices/sound/c352.h index 52e0048092b..4cfce7b7591 100644 --- a/src/devices/sound/c352.h +++ b/src/devices/sound/c352.h @@ -1,20 +1,22 @@ // license:BSD-3-Clause // copyright-holders:R. Belmont, superctr +#ifndef MAME_SOUND_C352_H +#define MAME_SOUND_C352_H + #pragma once -#ifndef __C352_H__ -#define __C352_H__ //************************************************************************** // INTERFACE CONFIGURATION MACROS //************************************************************************** -#define MCFG_C352_ADD(_tag, _clock, _setting) \ - MCFG_DEVICE_ADD(_tag, C352, _clock) \ - MCFG_C352_DIVIDER(_setting) +#define MCFG_C352_ADD(tag, clock, setting) \ + MCFG_DEVICE_ADD((tag), C352, (clock)) \ + MCFG_C352_DIVIDER(setting) + +#define MCFG_C352_DIVIDER(setting) \ + c352_device::static_set_divider(*device, (setting)); -#define MCFG_C352_DIVIDER(_setting) \ - c352_device::static_set_divider(*device, _setting); //************************************************************************** // TYPE DEFINITIONS @@ -36,8 +38,6 @@ public: DECLARE_READ16_MEMBER(read); DECLARE_WRITE16_MEMBER(write); - sound_stream *m_stream; - protected: // device-level overrides virtual void device_start() override; @@ -93,6 +93,14 @@ private: }; + void fetch_sample(c352_voice_t* v); + void ramp_volume(c352_voice_t* v,int ch,uint8_t val); + + unsigned short read_reg16(unsigned long address); + void write_reg16(unsigned long address, unsigned short val); + + sound_stream *m_stream; + int m_sample_rate_base; int m_divider; @@ -100,16 +108,10 @@ private: uint16_t m_random; uint16_t m_control; // control flags, purpose unknown. - - void fetch_sample(c352_voice_t* v); - void ramp_volume(c352_voice_t* v,int ch,uint8_t val); - - unsigned short read_reg16(unsigned long address); - void write_reg16(unsigned long address, unsigned short val); }; // device type definition -extern const device_type C352; +DECLARE_DEVICE_TYPE(C352, c352_device) -#endif /* __C352_H__ */ +#endif // MAME_SOUND_C352_H diff --git a/src/devices/sound/c6280.cpp b/src/devices/sound/c6280.cpp index db3f4fcb406..1cae1437d49 100644 --- a/src/devices/sound/c6280.cpp +++ b/src/devices/sound/c6280.cpp @@ -41,9 +41,6 @@ #include "emu.h" #include "c6280.h" -/* only needed for io_buffer */ -#include "cpu/h6280/h6280.h" - void c6280_device::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) { @@ -229,10 +226,10 @@ WRITE8_MEMBER( c6280_device::c6280_w ) } } -const device_type C6280 = device_creator; +DEFINE_DEVICE_TYPE(C6280, c6280_device, "c6280", "Hudson HuC6280") c6280_device::c6280_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, C6280, "HuC6280", tag, owner, clock, "c6280", __FILE__) + : device_t(mconfig, C6280, tag, owner, clock) , device_sound_interface(mconfig, *this) , m_cpudevice(*this, finder_base::DUMMY_TAG) { diff --git a/src/devices/sound/c6280.h b/src/devices/sound/c6280.h index 0c95dbfc1b9..d69a1736416 100644 --- a/src/devices/sound/c6280.h +++ b/src/devices/sound/c6280.h @@ -1,14 +1,13 @@ // license:BSD-3-Clause // copyright-holders:Charles MacDonald -#pragma once +#ifndef MAME_SOUND_C6280_H +#define MAME_SOUND_C6280_H -#ifndef __C6280_H__ -#define __C6280_H__ +#pragma once #include "cpu/h6280/h6280.h" -class c6280_device : public device_t, - public device_sound_interface +class c6280_device : public device_t, public device_sound_interface { public: c6280_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); @@ -55,10 +54,9 @@ private: uint32_t m_wave_freq_tab[4096]; }; -extern const device_type C6280; - -#define MCFG_C6280_CPU(_tag) \ - c6280_device::set_devicecpu_tag(*device, "^" _tag); +DECLARE_DEVICE_TYPE(C6280, c6280_device) +#define MCFG_C6280_CPU(tag) \ + c6280_device::set_devicecpu_tag(*device, ("^" tag)); -#endif /* __C6280_H__ */ +#endif // MAME_SOUND_C6280_H diff --git a/src/devices/sound/cdda.cpp b/src/devices/sound/cdda.cpp index 2e4ec409a26..e24a8d9bf46 100644 --- a/src/devices/sound/cdda.cpp +++ b/src/devices/sound/cdda.cpp @@ -231,10 +231,12 @@ int16_t cdda_device::get_channel_volume(int channel) return m_audio_volume[channel]; } -const device_type CDDA = device_creator; +DEFINE_DEVICE_TYPE(CDDA, cdda_device, "cdda", "CD/DA") cdda_device::cdda_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, CDDA, "CD/DA", tag, owner, clock, "cdda", __FILE__), - device_sound_interface(mconfig, *this) + : device_t(mconfig, CDDA, tag, owner, clock) + , device_sound_interface(mconfig, *this) + , m_disc(nullptr) + , m_stream(nullptr) { } diff --git a/src/devices/sound/cdda.h b/src/devices/sound/cdda.h index 4bbcb253ed2..28633f94fd7 100644 --- a/src/devices/sound/cdda.h +++ b/src/devices/sound/cdda.h @@ -1,14 +1,14 @@ // license:BSD-3-Clause // copyright-holders:Aaron Giles,smf -#pragma once +#ifndef MAME_SOUND_CDDA_H +#define MAME_SOUND_CDDA_H -#ifndef __CDDA_H__ -#define __CDDA_H__ +#pragma once #include "cdrom.h" -class cdda_device : public device_t, - public device_sound_interface + +class cdda_device : public device_t, public device_sound_interface { public: cdda_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); @@ -25,8 +25,6 @@ public: int audio_paused(); int audio_ended(); - cdrom_file * m_disc; - protected: // device-level overrides virtual void device_start() override; @@ -37,6 +35,8 @@ protected: private: void get_audio_data(stream_sample_t *bufL, stream_sample_t *bufR, uint32_t samples_wanted); + cdrom_file * m_disc; + // internal state sound_stream * m_stream; @@ -49,7 +49,6 @@ private: int16_t m_audio_volume[2]; }; -extern const device_type CDDA; - +DECLARE_DEVICE_TYPE(CDDA, cdda_device) -#endif /* __CDDA_H__ */ +#endif // MAME_SOUND_CDDA_H diff --git a/src/devices/sound/cdp1863.cpp b/src/devices/sound/cdp1863.cpp index 2b6396084dd..07bc4aa9704 100644 --- a/src/devices/sound/cdp1863.cpp +++ b/src/devices/sound/cdp1863.cpp @@ -17,15 +17,15 @@ #include "emu.h" #include "cdp1863.h" +//#define VERBOSE 1 +#include "logmacro.h" + //************************************************************************** // MACROS / CONSTANTS //************************************************************************** -#define LOG 0 - - #define CDP1863_DEFAULT_LATCH 0x35 @@ -35,7 +35,7 @@ //************************************************************************** // devices -const device_type CDP1863 = device_creator; +DEFINE_DEVICE_TYPE(CDP1863, cdp1863_device, "cdp1863", "RCA CDP1863") @@ -48,11 +48,11 @@ const device_type CDP1863 = device_creator; //------------------------------------------------- cdp1863_device::cdp1863_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, CDP1863, "CDP1863", tag, owner, clock, "cdp1863", __FILE__), - device_sound_interface(mconfig, *this), - m_stream(nullptr), - m_clock1(clock), - m_clock2(0) + : device_t(mconfig, CDP1863, tag, owner, clock) + , device_sound_interface(mconfig, *this) + , m_stream(nullptr) + , m_clock1(clock) + , m_clock2(0) { } diff --git a/src/devices/sound/cdp1863.h b/src/devices/sound/cdp1863.h index d1f1b438d83..189a04ae5c9 100644 --- a/src/devices/sound/cdp1863.h +++ b/src/devices/sound/cdp1863.h @@ -17,10 +17,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_SOUND_CDP1863_H +#define MAME_SOUND_CDP1863_H -#ifndef __CDP1863__ -#define __CDP1863__ +#pragma once @@ -81,8 +81,6 @@ private: // device type definition -extern const device_type CDP1863; - - +DECLARE_DEVICE_TYPE(CDP1863, cdp1863_device) -#endif +#endif // MAME_SOUND_CDP1863_H diff --git a/src/devices/sound/cdp1864.cpp b/src/devices/sound/cdp1864.cpp index a42300aca00..24c46e0aea6 100644 --- a/src/devices/sound/cdp1864.cpp +++ b/src/devices/sound/cdp1864.cpp @@ -36,7 +36,7 @@ #define CDP1864_CYCLES_DMA_ACTIVE 8*8 #define CDP1864_CYCLES_DMA_WAIT 6*8 -const int cdp1864_device::bckgnd[] = { 2, 0, 4, 1 }; +constexpr int cdp1864_device::bckgnd[]; @@ -45,7 +45,7 @@ const int cdp1864_device::bckgnd[] = { 2, 0, 4, 1 }; //************************************************************************** // devices -const device_type CDP1864 = device_creator; +DEFINE_DEVICE_TYPE(CDP1864, cdp1864_device, "cdp1864", "RCA CDP1864") @@ -58,7 +58,7 @@ const device_type CDP1864 = device_creator; //------------------------------------------------- cdp1864_device::cdp1864_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, CDP1864, "CDP1864", tag, owner, clock, "cdp1864", __FILE__), + : device_t(mconfig, CDP1864, tag, owner, clock), device_sound_interface(mconfig, *this), device_video_interface(mconfig, *this), m_read_inlace(*this), @@ -128,8 +128,8 @@ void cdp1864_device::device_start() void cdp1864_device::device_reset() { - m_int_timer->adjust(m_screen->time_until_pos(CDP1864_SCANLINE_INT_START, 0)); - m_efx_timer->adjust(m_screen->time_until_pos(CDP1864_SCANLINE_EFX_TOP_START, 0)); + m_int_timer->adjust(m_screen->time_until_pos(SCANLINE_INT_START, 0)); + m_efx_timer->adjust(m_screen->time_until_pos(SCANLINE_EFX_TOP_START, 0)); m_dma_timer->adjust(clocks_to_attotime(CDP1864_CYCLES_DMA_START)); m_disp = 0; @@ -153,14 +153,14 @@ void cdp1864_device::device_timer(emu_timer &timer, device_timer_id id, int para switch (id) { case TIMER_INT: - if (scanline == CDP1864_SCANLINE_INT_START) + if (scanline == SCANLINE_INT_START) { if (m_disp) { m_write_irq(ASSERT_LINE); } - m_int_timer->adjust(m_screen->time_until_pos( CDP1864_SCANLINE_INT_END, 0)); + m_int_timer->adjust(m_screen->time_until_pos(SCANLINE_INT_END, 0)); } else { @@ -169,31 +169,31 @@ void cdp1864_device::device_timer(emu_timer &timer, device_timer_id id, int para m_write_irq(CLEAR_LINE); } - m_int_timer->adjust(m_screen->time_until_pos(CDP1864_SCANLINE_INT_START, 0)); + m_int_timer->adjust(m_screen->time_until_pos(SCANLINE_INT_START, 0)); } break; case TIMER_EFX: switch (scanline) { - case CDP1864_SCANLINE_EFX_TOP_START: + case SCANLINE_EFX_TOP_START: m_write_efx(ASSERT_LINE); - m_efx_timer->adjust(m_screen->time_until_pos(CDP1864_SCANLINE_EFX_TOP_END, 0)); + m_efx_timer->adjust(m_screen->time_until_pos(SCANLINE_EFX_TOP_END, 0)); break; - case CDP1864_SCANLINE_EFX_TOP_END: + case SCANLINE_EFX_TOP_END: m_write_efx(CLEAR_LINE); - m_efx_timer->adjust(m_screen->time_until_pos(CDP1864_SCANLINE_EFX_BOTTOM_START, 0)); + m_efx_timer->adjust(m_screen->time_until_pos(SCANLINE_EFX_BOTTOM_START, 0)); break; - case CDP1864_SCANLINE_EFX_BOTTOM_START: + case SCANLINE_EFX_BOTTOM_START: m_write_efx(ASSERT_LINE); - m_efx_timer->adjust(m_screen->time_until_pos(CDP1864_SCANLINE_EFX_BOTTOM_END, 0)); + m_efx_timer->adjust(m_screen->time_until_pos(SCANLINE_EFX_BOTTOM_END, 0)); break; - case CDP1864_SCANLINE_EFX_BOTTOM_END: + case SCANLINE_EFX_BOTTOM_END: m_write_efx(CLEAR_LINE); - m_efx_timer->adjust(m_screen->time_until_pos(CDP1864_SCANLINE_EFX_TOP_START, 0)); + m_efx_timer->adjust(m_screen->time_until_pos(SCANLINE_EFX_TOP_START, 0)); break; } break; @@ -203,7 +203,7 @@ void cdp1864_device::device_timer(emu_timer &timer, device_timer_id id, int para { if (m_disp) { - if (scanline >= CDP1864_SCANLINE_DISPLAY_START && scanline < CDP1864_SCANLINE_DISPLAY_END) + if (scanline >= SCANLINE_DISPLAY_START && scanline < SCANLINE_DISPLAY_END) { m_write_dma_out(CLEAR_LINE); } @@ -217,7 +217,7 @@ void cdp1864_device::device_timer(emu_timer &timer, device_timer_id id, int para { if (m_disp) { - if (scanline >= CDP1864_SCANLINE_DISPLAY_START && scanline < CDP1864_SCANLINE_DISPLAY_END) + if (scanline >= SCANLINE_DISPLAY_START && scanline < SCANLINE_DISPLAY_END) { m_write_dma_out(ASSERT_LINE); } diff --git a/src/devices/sound/cdp1864.h b/src/devices/sound/cdp1864.h index d27d817f605..1827e9e9ca6 100644 --- a/src/devices/sound/cdp1864.h +++ b/src/devices/sound/cdp1864.h @@ -32,8 +32,8 @@ **********************************************************************/ -#ifndef MAME_DEVICES_SOUND_CDP1864_H -#define MAME_DEVICES_SOUND_CDP1864_H +#ifndef MAME_SOUND_CDP1864_H +#define MAME_SOUND_CDP1864_H #pragma once @@ -50,32 +50,6 @@ #define CDP1864_CLOCK XTAL_1_75MHz -#define CDP1864_VISIBLE_COLUMNS 64 -#define CDP1864_VISIBLE_LINES 192 - -#define CDP1864_HBLANK_END 1 * 8 -#define CDP1864_HBLANK_START 13 * 8 -#define CDP1864_HSYNC_START 0 * 8 -#define CDP1864_HSYNC_END 1 * 8 -#define CDP1864_SCREEN_START 4 * 8 -#define CDP1864_SCREEN_END 12 * 8 -#define CDP1864_SCREEN_WIDTH 14 * 8 - -#define CDP1864_TOTAL_SCANLINES 312 - -#define CDP1864_SCANLINE_VBLANK_START CDP1864_TOTAL_SCANLINES - 4 -#define CDP1864_SCANLINE_VBLANK_END 20 -#define CDP1864_SCANLINE_VSYNC_START 0 -#define CDP1864_SCANLINE_VSYNC_END 4 -#define CDP1864_SCANLINE_DISPLAY_START 60 // ??? -#define CDP1864_SCANLINE_DISPLAY_END CDP1864_SCANLINE_DISPLAY_START + CDP1864_VISIBLE_LINES -#define CDP1864_SCANLINE_INT_START CDP1864_SCANLINE_DISPLAY_START - 2 -#define CDP1864_SCANLINE_INT_END CDP1864_SCANLINE_DISPLAY_START -#define CDP1864_SCANLINE_EFX_TOP_START CDP1864_SCANLINE_DISPLAY_START - 4 -#define CDP1864_SCANLINE_EFX_TOP_END CDP1864_SCANLINE_DISPLAY_START -#define CDP1864_SCANLINE_EFX_BOTTOM_START CDP1864_SCANLINE_DISPLAY_END - 4 -#define CDP1864_SCANLINE_EFX_BOTTOM_END CDP1864_SCANLINE_DISPLAY_END - //************************************************************************** @@ -83,23 +57,23 @@ //************************************************************************** #define MCFG_CDP1864_ADD(_tag, _screen_tag, _clock, _inlace, _irq, _dma_out, _efx, _hsync, _rdata, _bdata, _gdata) \ - MCFG_SOUND_ADD(_tag, CDP1864, _clock) \ - MCFG_VIDEO_SET_SCREEN(_screen_tag) \ - downcast(device)->set_inlace_callback(DEVCB_##_inlace); \ - downcast(device)->set_irq_callback(DEVCB_##_irq); \ - downcast(device)->set_dma_out_callback(DEVCB_##_dma_out); \ - downcast(device)->set_efx_callback(DEVCB_##_efx); \ - downcast(device)->set_hsync_callback(DEVCB_##_hsync); \ - downcast(device)->set_rdata_callback(DEVCB_##_rdata); \ - downcast(device)->set_bdata_callback(DEVCB_##_bdata); \ - downcast(device)->set_gdata_callback(DEVCB_##_gdata); + MCFG_SOUND_ADD(_tag, CDP1864, _clock) \ + MCFG_VIDEO_SET_SCREEN(_screen_tag) \ + downcast(device)->set_inlace_callback(DEVCB_##_inlace); \ + downcast(device)->set_irq_callback(DEVCB_##_irq); \ + downcast(device)->set_dma_out_callback(DEVCB_##_dma_out); \ + downcast(device)->set_efx_callback(DEVCB_##_efx); \ + downcast(device)->set_hsync_callback(DEVCB_##_hsync); \ + downcast(device)->set_rdata_callback(DEVCB_##_rdata); \ + downcast(device)->set_bdata_callback(DEVCB_##_bdata); \ + downcast(device)->set_gdata_callback(DEVCB_##_gdata); #define MCFG_CDP1864_CHROMINANCE(_r, _b, _g, _bkg) \ - downcast(device)->set_chrominance_resistors(_r, _b, _g, _bkg); + downcast(device)->set_chrominance_resistors(_r, _b, _g, _bkg); #define MCFG_CDP1864_SCREEN_ADD(_tag, _clock) \ - MCFG_SCREEN_ADD(_tag, RASTER) \ - MCFG_SCREEN_RAW_PARAMS(_clock, CDP1864_SCREEN_WIDTH, CDP1864_HBLANK_END, CDP1864_HBLANK_START, CDP1864_TOTAL_SCANLINES, CDP1864_SCANLINE_VBLANK_END, CDP1864_SCANLINE_VBLANK_START) + MCFG_SCREEN_ADD(_tag, RASTER) \ + MCFG_SCREEN_RAW_PARAMS(_clock, cdp1864_device::SCREEN_WIDTH, cdp1864_device::HBLANK_END, cdp1864_device::HBLANK_START, cdp1864_device::TOTAL_SCANLINES, cdp1864_device::SCANLINE_VBLANK_END, cdp1864_device::SCANLINE_VBLANK_START) @@ -114,17 +88,43 @@ class cdp1864_device : public device_t, public device_video_interface { public: + static constexpr unsigned VISIBLE_COLUMNS = 64; + static constexpr unsigned VISIBLE_LINES = 192; + + static constexpr unsigned HBLANK_END = 1 * 8; + static constexpr unsigned HBLANK_START = 13 * 8; + static constexpr unsigned HSYNC_START = 0 * 8; + static constexpr unsigned HSYNC_END = 1 * 8; + static constexpr unsigned SCREEN_START = 4 * 8; + static constexpr unsigned SCREEN_END = 12 * 8; + static constexpr unsigned SCREEN_WIDTH = 14 * 8; + + static constexpr unsigned TOTAL_SCANLINES = 312; + + static constexpr unsigned SCANLINE_VBLANK_START = TOTAL_SCANLINES - 4; + static constexpr unsigned SCANLINE_VBLANK_END = 20; + static constexpr unsigned SCANLINE_VSYNC_START = 0; + static constexpr unsigned SCANLINE_VSYNC_END = 4; + static constexpr unsigned SCANLINE_DISPLAY_START = 60; // ??? + static constexpr unsigned SCANLINE_DISPLAY_END = SCANLINE_DISPLAY_START + VISIBLE_LINES; + static constexpr unsigned SCANLINE_INT_START = SCANLINE_DISPLAY_START - 2; + static constexpr unsigned SCANLINE_INT_END = SCANLINE_DISPLAY_START; + static constexpr unsigned SCANLINE_EFX_TOP_START = SCANLINE_DISPLAY_START - 4; + static constexpr unsigned SCANLINE_EFX_TOP_END = SCANLINE_DISPLAY_START; + static constexpr unsigned SCANLINE_EFX_BOTTOM_START = SCANLINE_DISPLAY_END - 4; + static constexpr unsigned SCANLINE_EFX_BOTTOM_END = SCANLINE_DISPLAY_END; + // construction/destruction cdp1864_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template void set_inlace_callback(_inlace inlace) { m_read_inlace.set_callback(inlace); } - template void set_irq_callback(_irq irq) { m_write_irq.set_callback(irq); } - template void set_dma_out_callback(_dma_out dma_out) { m_write_dma_out.set_callback(dma_out); } - template void set_efx_callback(_efx efx) { m_write_efx.set_callback(efx); } - template void set_hsync_callback(_hsync hsync) { m_write_hsync.set_callback(hsync); } - template void set_rdata_callback(_rdata rdata) { m_read_rdata.set_callback(rdata); } - template void set_bdata_callback(_bdata bdata) { m_read_bdata.set_callback(bdata); } - template void set_gdata_callback(_gdata gdata) { m_read_gdata.set_callback(gdata); } + template void set_inlace_callback(Object &&inlace) { m_read_inlace.set_callback(std::forward(inlace)); } + template void set_irq_callback(Object &&irq) { m_write_irq.set_callback(std::forward(irq)); } + template void set_dma_out_callback(Object &&dma_out) { m_write_dma_out.set_callback(std::forward(dma_out)); } + template void set_efx_callback(Object &&efx) { m_write_efx.set_callback(std::forward(efx)); } + template void set_hsync_callback(Object &&hsync) { m_write_hsync.set_callback(std::forward(hsync)); } + template void set_rdata_callback(Object &&rdata) { m_read_rdata.set_callback(std::forward(rdata)); } + template void set_bdata_callback(Object &&bdata) { m_read_bdata.set_callback(std::forward(bdata)); } + template void set_gdata_callback(Object &&gdata) { m_read_gdata.set_callback(std::forward(gdata)); } void set_chrominance_resistors(double r, double b, double g, double bkg) { m_chr_r = r; m_chr_b = b; m_chr_g = g; m_chr_bkg = bkg; } DECLARE_READ8_MEMBER( dispon_r ); @@ -161,7 +161,7 @@ private: void initialize_palette(); - static const int bckgnd[]; + static constexpr int bckgnd[] = { 2, 0, 4, 1 }; devcb_read_line m_read_inlace; devcb_read_line m_read_rdata; @@ -202,6 +202,6 @@ private: // device type definition -extern const device_type CDP1864; +DECLARE_DEVICE_TYPE(CDP1864, cdp1864_device) #endif // MAME_DEVICES_SOUND_CDP1864_H diff --git a/src/devices/sound/cdp1869.cpp b/src/devices/sound/cdp1869.cpp index b9dae5d4884..a30170095dd 100644 --- a/src/devices/sound/cdp1869.cpp +++ b/src/devices/sound/cdp1869.cpp @@ -19,14 +19,14 @@ #include "emu.h" #include "cdp1869.h" +//#define VERBOSE 1 +#include "logmacro.h" //************************************************************************** // MACROS / CONSTANTS //************************************************************************** -#define LOG 0 - #define CDP1869_WEIGHT_RED 30 // % of max luminance #define CDP1869_WEIGHT_GREEN 59 #define CDP1869_WEIGHT_BLUE 11 @@ -56,7 +56,7 @@ enum //************************************************************************** // device type definition -const device_type CDP1869 = device_creator; +DEFINE_DEVICE_TYPE(CDP1869, cdp1869_device, "cdp1869", "RCA CDP1869 VIS") // I/O map DEVICE_ADDRESS_MAP_START( io_map, 8, cdp1869_device ) @@ -175,16 +175,16 @@ inline int cdp1869_device::read_pcb(offs_t pma, offs_t cma, uint8_t pmd) inline void cdp1869_device::update_prd_changed_timer() { - int start = CDP1869_SCANLINE_PREDISPLAY_START_PAL; - int end = CDP1869_SCANLINE_PREDISPLAY_END_PAL; + int start = SCANLINE_PREDISPLAY_START_PAL; + int end = SCANLINE_PREDISPLAY_END_PAL; int next_state; int scanline = m_screen->vpos(); int next_scanline; if (is_ntsc()) { - start = CDP1869_SCANLINE_PREDISPLAY_START_NTSC; - end = CDP1869_SCANLINE_PREDISPLAY_END_NTSC; + start = SCANLINE_PREDISPLAY_START_NTSC; + end = SCANLINE_PREDISPLAY_END_NTSC; } if (scanline < start) @@ -341,7 +341,7 @@ inline int cdp1869_device::get_pen(int ccb0, int ccb1, int pcb) //------------------------------------------------- cdp1869_device::cdp1869_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, CDP1869, "RCA CDP1869", tag, owner, clock, "cdp1869", __FILE__), + device_t(mconfig, CDP1869, tag, owner, clock), device_sound_interface(mconfig, *this), device_video_interface(mconfig, *this), device_memory_interface(mconfig, *this), @@ -572,7 +572,7 @@ void cdp1869_device::draw_line(bitmap_rgb32 &bitmap, const rectangle &rect, int data <<= 2; - for (i = 0; i < CDP1869_CHAR_WIDTH; i++) + for (i = 0; i < CHAR_WIDTH; i++) { if (data & 0x80) { @@ -940,25 +940,25 @@ uint32_t cdp1869_device::screen_update(screen_device &screen, bitmap_rgb32 &bitm if (is_ntsc()) { - outer.min_x = CDP1869_HBLANK_END; - outer.max_x = CDP1869_HBLANK_START - 1; - outer.min_y = CDP1869_SCANLINE_VBLANK_END_NTSC; - outer.max_y = CDP1869_SCANLINE_VBLANK_START_NTSC - 1; - screen_rect.min_x = CDP1869_SCREEN_START_NTSC; - screen_rect.max_x = CDP1869_SCREEN_END - 1; - screen_rect.min_y = CDP1869_SCANLINE_DISPLAY_START_NTSC; - screen_rect.max_y = CDP1869_SCANLINE_DISPLAY_END_NTSC - 1; + outer.min_x = HBLANK_END; + outer.max_x = HBLANK_START - 1; + outer.min_y = SCANLINE_VBLANK_END_NTSC; + outer.max_y = SCANLINE_VBLANK_START_NTSC - 1; + screen_rect.min_x = SCREEN_START_NTSC; + screen_rect.max_x = SCREEN_END - 1; + screen_rect.min_y = SCANLINE_DISPLAY_START_NTSC; + screen_rect.max_y = SCANLINE_DISPLAY_END_NTSC - 1; } else { - outer.min_x = CDP1869_HBLANK_END; - outer.max_x = CDP1869_HBLANK_START - 1; - outer.min_y = CDP1869_SCANLINE_VBLANK_END_PAL; - outer.max_y = CDP1869_SCANLINE_VBLANK_START_PAL - 1; - screen_rect.min_x = CDP1869_SCREEN_START_PAL; - screen_rect.max_x = CDP1869_SCREEN_END - 1; - screen_rect.min_y = CDP1869_SCANLINE_DISPLAY_START_PAL; - screen_rect.max_y = CDP1869_SCANLINE_DISPLAY_END_PAL - 1; + outer.min_x = HBLANK_END; + outer.max_x = HBLANK_START - 1; + outer.min_y = SCANLINE_VBLANK_END_PAL; + outer.max_y = SCANLINE_VBLANK_START_PAL - 1; + screen_rect.min_x = SCREEN_START_PAL; + screen_rect.max_x = SCREEN_END - 1; + screen_rect.min_y = SCANLINE_DISPLAY_START_PAL; + screen_rect.max_y = SCANLINE_DISPLAY_END_PAL - 1; } outer &= cliprect; @@ -966,7 +966,7 @@ uint32_t cdp1869_device::screen_update(screen_device &screen, bitmap_rgb32 &bitm if (!m_dispoff) { - int width = CDP1869_CHAR_WIDTH; + int width = CHAR_WIDTH; int height = get_lines(); if (!m_freshorz) diff --git a/src/devices/sound/cdp1869.h b/src/devices/sound/cdp1869.h index b2125c89caf..f80da696867 100644 --- a/src/devices/sound/cdp1869.h +++ b/src/devices/sound/cdp1869.h @@ -73,8 +73,8 @@ **********************************************************************/ -#ifndef MAME_DEVICES_SOUND_CDP1869_H -#define MAME_DEVICES_SOUND_CDP1869_H +#ifndef MAME_SOUND_CDP1869_H +#define MAME_SOUND_CDP1869_H #pragma once @@ -82,73 +82,23 @@ -//************************************************************************** -// MACROS / CONSTANTS -//************************************************************************** - -#define CDP1869_DOT_CLK_PAL (float)XTAL_5_626MHz -#define CDP1869_DOT_CLK_NTSC (float)XTAL_5_67MHz -#define CDP1869_COLOR_CLK_PAL (float)XTAL_8_867236MHz -#define CDP1869_COLOR_CLK_NTSC (float)XTAL_7_15909MHz - -#define CDP1869_CPU_CLK_PAL (CDP1869_DOT_CLK_PAL / 2) -#define CDP1869_CPU_CLK_NTSC (CDP1869_DOT_CLK_NTSC / 2) - -#define CDP1869_CHAR_WIDTH 6 - -#define CDP1869_HSYNC_START (56 * CDP1869_CHAR_WIDTH) -#define CDP1869_HSYNC_END (60 * CDP1869_CHAR_WIDTH) -#define CDP1869_HBLANK_START (54 * CDP1869_CHAR_WIDTH) -#define CDP1869_HBLANK_END ( 5 * CDP1869_CHAR_WIDTH) -#define CDP1869_SCREEN_START_PAL ( 9 * CDP1869_CHAR_WIDTH) -#define CDP1869_SCREEN_START_NTSC (10 * CDP1869_CHAR_WIDTH) -#define CDP1869_SCREEN_START (10 * CDP1869_CHAR_WIDTH) -#define CDP1869_SCREEN_END (50 * CDP1869_CHAR_WIDTH) -#define CDP1869_SCREEN_WIDTH (60 * CDP1869_CHAR_WIDTH) - -#define CDP1869_TOTAL_SCANLINES_PAL 312 -#define CDP1869_SCANLINE_VBLANK_START_PAL 304 -#define CDP1869_SCANLINE_VBLANK_END_PAL 10 -#define CDP1869_SCANLINE_VSYNC_START_PAL 308 -#define CDP1869_SCANLINE_VSYNC_END_PAL 312 -#define CDP1869_SCANLINE_DISPLAY_START_PAL 44 -#define CDP1869_SCANLINE_DISPLAY_END_PAL 260 -#define CDP1869_SCANLINE_PREDISPLAY_START_PAL 43 -#define CDP1869_SCANLINE_PREDISPLAY_END_PAL 260 -#define CDP1869_VISIBLE_SCANLINES_PAL (CDP1869_SCANLINE_DISPLAY_END_PAL - CDP1869_SCANLINE_DISPLAY_START_PAL) - -#define CDP1869_TOTAL_SCANLINES_NTSC 262 -#define CDP1869_SCANLINE_VBLANK_START_NTSC 252 -#define CDP1869_SCANLINE_VBLANK_END_NTSC 10 -#define CDP1869_SCANLINE_VSYNC_START_NTSC 258 -#define CDP1869_SCANLINE_VSYNC_END_NTSC 262 -#define CDP1869_SCANLINE_DISPLAY_START_NTSC 36 -#define CDP1869_SCANLINE_DISPLAY_END_NTSC 228 -#define CDP1869_SCANLINE_PREDISPLAY_START_NTSC 35 -#define CDP1869_SCANLINE_PREDISPLAY_END_NTSC 228 -#define CDP1869_VISIBLE_SCANLINES_NTSC (CDP1869_SCANLINE_DISPLAY_END_NTSC - CDP1869_SCANLINE_DISPLAY_START_NTSC) - -#define CDP1869_PALETTE_LENGTH 8+64 - - - //************************************************************************** // INTERFACE CONFIGURATION MACROS //************************************************************************** #define MCFG_CDP1869_ADD(_tag, _pixclock, _map) \ - MCFG_DEVICE_ADD(_tag, CDP1869, _pixclock) \ - MCFG_DEVICE_ADDRESS_MAP(AS_0, _map) + MCFG_DEVICE_ADD(_tag, CDP1869, _pixclock) \ + MCFG_DEVICE_ADDRESS_MAP(AS_0, _map) #define MCFG_CDP1869_SCREEN_PAL_ADD(_cdptag, _tag, _clock) \ - MCFG_SCREEN_ADD(_tag, RASTER) \ - MCFG_SCREEN_UPDATE_DEVICE(_cdptag, cdp1869_device, screen_update) \ - MCFG_SCREEN_RAW_PARAMS(_clock, CDP1869_SCREEN_WIDTH, CDP1869_HBLANK_END, CDP1869_HBLANK_START, CDP1869_TOTAL_SCANLINES_PAL, CDP1869_SCANLINE_VBLANK_END_PAL, CDP1869_SCANLINE_VBLANK_START_PAL) + MCFG_SCREEN_ADD(_tag, RASTER) \ + MCFG_SCREEN_UPDATE_DEVICE(_cdptag, cdp1869_device, screen_update) \ + MCFG_SCREEN_RAW_PARAMS(_clock, cdp1869_device::SCREEN_WIDTH, cdp1869_device::HBLANK_END, cdp1869_device::HBLANK_START, cdp1869_device::TOTAL_SCANLINES_PAL, cdp1869_device::SCANLINE_VBLANK_END_PAL, cdp1869_device::SCANLINE_VBLANK_START_PAL) #define MCFG_CDP1869_SCREEN_NTSC_ADD(_cdptag, _tag, _clock) \ - MCFG_SCREEN_ADD(_tag, RASTER) \ - MCFG_SCREEN_UPDATE_DEVICE(_cdptag, cdp1869_device, screen_update) \ - MCFG_SCREEN_RAW_PARAMS(_clock, CDP1869_SCREEN_WIDTH, CDP1869_HBLANK_END, CDP1869_HBLANK_START, CDP1869_TOTAL_SCANLINES_NTSC, CDP1869_SCANLINE_VBLANK_END_NTSC, CDP1869_SCANLINE_VBLANK_START_NTSC) + MCFG_SCREEN_ADD(_tag, RASTER) \ + MCFG_SCREEN_UPDATE_DEVICE(_cdptag, cdp1869_device, screen_update) \ + MCFG_SCREEN_RAW_PARAMS(_clock, cdp1869_device::SCREEN_WIDTH, cdp1869_device::HBLANK_END, cdp1869_device::HBLANK_START, cdp1869_device::TOTAL_SCANLINES_NTSC, cdp1869_device::SCANLINE_VBLANK_END_NTSC, cdp1869_device::SCANLINE_VBLANK_START_NTSC) #define MCFG_CDP1869_SET_SCREEN MCFG_VIDEO_SET_SCREEN @@ -157,31 +107,28 @@ #define CDP1869_PCB_READ_MEMBER(name) int name(uint16_t pma, uint8_t cma, uint8_t pmd) #define MCFG_CDP1869_PAL_NTSC_CALLBACK(_read) \ - devcb = &cdp1869_device::set_pal_ntsc_rd_callback(*device, DEVCB_##_read); + devcb = &cdp1869_device::set_pal_ntsc_rd_callback(*device, DEVCB_##_read); #define MCFG_CDP1869_PRD_CALLBACK(_write) \ - devcb = &cdp1869_device::set_prd_wr_callback(*device, DEVCB_##_write); + devcb = &cdp1869_device::set_prd_wr_callback(*device, DEVCB_##_write); #define MCFG_CDP1869_COLOR_CLOCK(_clk) \ - cdp1869_device::static_set_color_clock(*device, _clk); + cdp1869_device::static_set_color_clock(*device, _clk); #define MCFG_CDP1869_CHAR_RAM_READ_OWNER(_class, _method) \ - cdp1869_device::static_set_char_ram_read(*device, cdp1869_char_ram_read_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); + cdp1869_device::static_set_char_ram_read(*device, cdp1869_device::char_ram_read_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); #define MCFG_CDP1869_CHAR_RAM_WRITE_OWNER(_class, _method) \ - cdp1869_device::static_set_char_ram_write(*device, cdp1869_char_ram_write_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); + cdp1869_device::static_set_char_ram_write(*device, cdp1869_device::char_ram_write_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); #define MCFG_CDP1869_CHAR_PCB_READ_OWNER(_class, _method) \ - cdp1869_device::static_set_pcb_read(*device, cdp1869_pcb_read_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); + cdp1869_device::static_set_pcb_read(*device, cdp1869_device::pcb_read_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); + //************************************************************************** // TYPE DEFINITIONS //************************************************************************** -typedef device_delegate cdp1869_char_ram_read_delegate; -typedef device_delegate cdp1869_char_ram_write_delegate; -typedef device_delegate cdp1869_pcb_read_delegate; - // ======================> cdp1869_device class cdp1869_device : public device_t, @@ -190,14 +137,62 @@ class cdp1869_device : public device_t, public device_memory_interface { public: + static constexpr float DOT_CLK_PAL = XTAL_5_626MHz; + static constexpr float DOT_CLK_NTSC = XTAL_5_67MHz; + static constexpr float COLOR_CLK_PAL = XTAL_8_867236MHz; + static constexpr float COLOR_CLK_NTSC = XTAL_7_15909MHz; + + static constexpr float CPU_CLK_PAL = DOT_CLK_PAL / 2; + static constexpr float CPU_CLK_NTSC = DOT_CLK_NTSC / 2; + + static constexpr unsigned CHAR_WIDTH = 6; + + static constexpr unsigned HSYNC_START = 56 * CHAR_WIDTH; + static constexpr unsigned HSYNC_END = 60 * CHAR_WIDTH; + static constexpr unsigned HBLANK_START = 54 * CHAR_WIDTH; + static constexpr unsigned HBLANK_END = 5 * CHAR_WIDTH; + static constexpr unsigned SCREEN_START_PAL = 9 * CHAR_WIDTH; + static constexpr unsigned SCREEN_START_NTSC = 10 * CHAR_WIDTH; + static constexpr unsigned SCREEN_START = 10 * CHAR_WIDTH; + static constexpr unsigned SCREEN_END = 50 * CHAR_WIDTH; + static constexpr unsigned SCREEN_WIDTH = 60 * CHAR_WIDTH; + + static constexpr unsigned TOTAL_SCANLINES_PAL = 312; + static constexpr unsigned SCANLINE_VBLANK_START_PAL = 304; + static constexpr unsigned SCANLINE_VBLANK_END_PAL = 10; + static constexpr unsigned SCANLINE_VSYNC_START_PAL = 308; + static constexpr unsigned SCANLINE_VSYNC_END_PAL = 312; + static constexpr unsigned SCANLINE_DISPLAY_START_PAL = 44; + static constexpr unsigned SCANLINE_DISPLAY_END_PAL = 260; + static constexpr unsigned SCANLINE_PREDISPLAY_START_PAL = 43; + static constexpr unsigned SCANLINE_PREDISPLAY_END_PAL = 260; + static constexpr unsigned VISIBLE_SCANLINES_PAL = SCANLINE_DISPLAY_END_PAL - SCANLINE_DISPLAY_START_PAL; + + static constexpr unsigned TOTAL_SCANLINES_NTSC = 262; + static constexpr unsigned SCANLINE_VBLANK_START_NTSC = 252; + static constexpr unsigned SCANLINE_VBLANK_END_NTSC = 10; + static constexpr unsigned SCANLINE_VSYNC_START_NTSC = 258; + static constexpr unsigned SCANLINE_VSYNC_END_NTSC = 262; + static constexpr unsigned SCANLINE_DISPLAY_START_NTSC = 36; + static constexpr unsigned SCANLINE_DISPLAY_END_NTSC = 228; + static constexpr unsigned SCANLINE_PREDISPLAY_START_NTSC = 35; + static constexpr unsigned SCANLINE_PREDISPLAY_END_NTSC = 228; + static constexpr unsigned VISIBLE_SCANLINES_NTSC = SCANLINE_DISPLAY_END_NTSC - SCANLINE_DISPLAY_START_NTSC; + + static constexpr unsigned PALETTE_LENGTH = 8+64; + + typedef device_delegate char_ram_read_delegate; + typedef device_delegate char_ram_write_delegate; + typedef device_delegate pcb_read_delegate; + // construction/destruction cdp1869_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_pal_ntsc_rd_callback(device_t &device, _Object object) { return downcast(device).m_read_pal_ntsc.set_callback(object); } - template static devcb_base &set_prd_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_prd.set_callback(object); } - static void static_set_char_ram_read(device_t &device, cdp1869_char_ram_read_delegate callback) { downcast(device).m_in_char_ram_func = callback; } - static void static_set_char_ram_write(device_t &device, cdp1869_char_ram_write_delegate callback) { downcast(device).m_out_char_ram_func = callback; } - static void static_set_pcb_read(device_t &device, cdp1869_pcb_read_delegate callback) { downcast(device).m_in_pcb_func = callback; } + template static devcb_base &set_pal_ntsc_rd_callback(device_t &device, Object &&cb) { return downcast(device).m_read_pal_ntsc.set_callback(std::forward(cb)); } + template static devcb_base &set_prd_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_prd.set_callback(std::forward(cb)); } + static void static_set_char_ram_read(device_t &device, char_ram_read_delegate &&cb) { downcast(device).m_in_char_ram_func = std::move(cb); } + static void static_set_char_ram_write(device_t &device, char_ram_write_delegate &&cb) { downcast(device).m_out_char_ram_func = std::move(cb); } + static void static_set_pcb_read(device_t &device, pcb_read_delegate &&cb) { downcast(device).m_in_pcb_func = std::move(cb); } static void static_set_color_clock(device_t &device, int color_clock) { downcast(device).m_color_clock = color_clock; } DECLARE_PALETTE_INIT(cdp1869); @@ -255,9 +250,9 @@ protected: private: devcb_read_line m_read_pal_ntsc; devcb_write_line m_write_prd; - cdp1869_pcb_read_delegate m_in_pcb_func; - cdp1869_char_ram_read_delegate m_in_char_ram_func; - cdp1869_char_ram_write_delegate m_out_char_ram_func; + pcb_read_delegate m_in_pcb_func; + char_ram_read_delegate m_in_char_ram_func; + char_ram_write_delegate m_out_char_ram_func; int m_color_clock; //address_space *m_page_ram; @@ -295,8 +290,6 @@ private: // device type definition -extern const device_type CDP1869; - - +DECLARE_DEVICE_TYPE(CDP1869, cdp1869_device) -#endif // MAME_DEVICES_SOUND_CDP1869_H +#endif // MAME_SOUND_CDP1869_H diff --git a/src/devices/sound/cem3394.cpp b/src/devices/sound/cem3394.cpp index d4b1e9ef501..08734c31023 100644 --- a/src/devices/sound/cem3394.cpp +++ b/src/devices/sound/cem3394.cpp @@ -41,42 +41,42 @@ From the datasheet: - CEM3394_VCO_FREQUENCY: + VCO_FREQUENCY: -4.0 ... +4.0 -0.75 V/octave f = exp(V) * 431.894 - CEM3394_MODULATION_AMOUNT + MODULATION_AMOUNT 0.0 ... +3.5 0.0 == 0.01 x frequency 3.5 == 2.00 x frequency - CEM3394_WAVE_SELECT + WAVE_SELECT -0.5 ... -0.2 == triangle +0.9 ... +1.5 == triangle + sawtooth +2.3 ... +3.9 == sawtooth - CEM3394_PULSE_WIDTH + PULSE_WIDTH 0.0 ... +2.0 0.0 == 0% duty cycle +2.0 == 100% duty cycle - CEM3394_MIXER_BALANCE + MIXER_BALANCE -4.0 ... +4.0 0.0 both at -6dB -20 dB/V - CEM3394_FILTER_RESONANCE + FILTER_RESONANCE 0.0 ... +2.5 0.0 == no resonance +2.5 == oscillation - CEM3394_FILTER_FREQENCY + FILTER_FREQENCY -3.0 ... +4.0 -0.375 V/octave 0.0 == 1300Hz - CEM3394_FINAL_GAIN + FINAL_GAIN 0.0 ... +4.0 -20 dB/V 0.0 == -90dB @@ -105,7 +105,7 @@ // device type definition -const device_type CEM3394 = device_creator; +DEFINE_DEVICE_TYPE(CEM3394, cem3394_device, "cem3394", "CEM3394") //************************************************************************** // LIVE DEVICE @@ -116,7 +116,7 @@ const device_type CEM3394 = device_creator; //------------------------------------------------- cem3394_device::cem3394_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, CEM3394, "CEM3394", tag, owner, clock, "cem3394", __FILE__), + : device_t(mconfig, CEM3394, tag, owner, clock), device_sound_interface(mconfig, *this), m_stream(nullptr), m_vco_zero_freq(0.0), @@ -217,7 +217,7 @@ void cem3394_device::sound_stream_update(sound_stream &stream, stream_sample_t * if (int_volume != 0) { if (m_wave_select == 0 && !ext_volume) - logerror("%f V didn't cut it\n", m_values[CEM3394_WAVE_SELECT]); + logerror("%f V didn't cut it\n", m_values[WAVE_SELECT]); /* handle the pulse component; it maxes out at 0x1932, which is 27% smaller than */ /* the sawtooth (since the value is constant, this is the best place to have an */ @@ -327,7 +327,7 @@ void cem3394_device::sound_stream_update(sound_stream &stream, stream_sample_t * void cem3394_device::device_start() { /* copy global parameters */ - m_sample_rate = CEM3394_SAMPLE_RATE; + m_sample_rate = SAMPLE_RATE; m_inv_sample_rate = 1.0 / (double)m_sample_rate; /* allocate stream channels, 1 per chip */ @@ -426,13 +426,13 @@ void cem3394_device::set_voltage(int input, double voltage) switch (input) { /* frequency varies from -4.0 to +4.0, at 0.75V/octave */ - case CEM3394_VCO_FREQUENCY: + case VCO_FREQUENCY: temp = m_vco_zero_freq * pow(2.0, -voltage * (1.0 / 0.75)); m_step = (uint32_t)(temp * m_inv_sample_rate * FRACTION_ONE_D); break; /* wave select determines triangle/sawtooth enable */ - case CEM3394_WAVE_SELECT: + case WAVE_SELECT: m_wave_select &= ~(WAVE_TRIANGLE | WAVE_SAWTOOTH); if (voltage >= -0.5 && voltage <= -0.2) m_wave_select |= WAVE_TRIANGLE; @@ -443,7 +443,7 @@ void cem3394_device::set_voltage(int input, double voltage) break; /* pulse width determines duty cycle; 0.0 means 0%, 2.0 means 100% */ - case CEM3394_PULSE_WIDTH: + case PULSE_WIDTH: if (voltage < 0.0) { m_pulse_width = 0; @@ -460,13 +460,13 @@ void cem3394_device::set_voltage(int input, double voltage) break; /* final gain is pretty self-explanatory; 0.0 means ~90dB, 4.0 means 0dB */ - case CEM3394_FINAL_GAIN: + case FINAL_GAIN: m_volume = compute_db_volume(voltage); break; /* mixer balance is a pan between the external input and the internal input */ /* 0.0 is equal parts of both; positive values favor external, negative favor internal */ - case CEM3394_MIXER_BALANCE: + case MIXER_BALANCE: if (voltage >= 0.0) { m_mixer_internal = compute_db_volume(3.55 - voltage); @@ -480,14 +480,14 @@ void cem3394_device::set_voltage(int input, double voltage) break; /* filter frequency varies from -4.0 to +4.0, at 0.375V/octave */ - case CEM3394_FILTER_FREQENCY: + case FILTER_FREQENCY: temp = m_filter_zero_freq * pow(2.0, -voltage * (1.0 / 0.375)); m_filter_step = (uint32_t)(temp * m_inv_sample_rate * FRACTION_ONE_D); break; /* modulation depth is 0.01 at 0V and 2.0 at 3.5V; how it grows from one to the other */ /* is still unclear at this point */ - case CEM3394_MODULATION_AMOUNT: + case MODULATION_AMOUNT: if (voltage < 0.0) m_modulation_depth = (uint32_t)(0.01 * FRACTION_ONE_D); else if (voltage > 3.5) @@ -497,7 +497,7 @@ void cem3394_device::set_voltage(int input, double voltage) break; /* this is not yet implemented */ - case CEM3394_FILTER_RESONANCE: + case FILTER_RESONANCE: break; } } @@ -509,13 +509,13 @@ double cem3394_device::get_parameter(int input) switch (input) { - case CEM3394_VCO_FREQUENCY: + case VCO_FREQUENCY: return m_vco_zero_freq * pow(2.0, -voltage * (1.0 / 0.75)); - case CEM3394_WAVE_SELECT: + case WAVE_SELECT: return voltage; - case CEM3394_PULSE_WIDTH: + case PULSE_WIDTH: if (voltage <= 0.0) return 0.0; else if (voltage >= 2.0) @@ -523,13 +523,13 @@ double cem3394_device::get_parameter(int input) else return voltage * 0.5; - case CEM3394_FINAL_GAIN: + case FINAL_GAIN: return compute_db(voltage); - case CEM3394_MIXER_BALANCE: + case MIXER_BALANCE: return voltage * 0.25; - case CEM3394_MODULATION_AMOUNT: + case MODULATION_AMOUNT: if (voltage < 0.0) return 0.01; else if (voltage > 3.5) @@ -537,7 +537,7 @@ double cem3394_device::get_parameter(int input) else return (voltage * (1.0 / 3.5)) * 1.99 + 0.01; - case CEM3394_FILTER_RESONANCE: + case FILTER_RESONANCE: if (voltage < 0.0) return 0.0; else if (voltage > 2.5) @@ -545,7 +545,7 @@ double cem3394_device::get_parameter(int input) else return voltage * (1.0 / 2.5); - case CEM3394_FILTER_FREQENCY: + case FILTER_FREQENCY: return m_filter_zero_freq * pow(2.0, -voltage * (1.0 / 0.375)); } return 0.0; diff --git a/src/devices/sound/cem3394.h b/src/devices/sound/cem3394.h index 67a8fce7cc8..2240534006d 100644 --- a/src/devices/sound/cem3394.h +++ b/src/devices/sound/cem3394.h @@ -1,26 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Aaron Giles -#pragma once - -#ifndef __CEM3394_H__ -#define __CEM3394_H__ - -#define CEM3394_SAMPLE_RATE (44100*4) +#ifndef MAME_SOUND_CEM3394_H +#define MAME_SOUND_CEM3394_H -// inputs -enum -{ - CEM3394_VCO_FREQUENCY = 0, - CEM3394_MODULATION_AMOUNT, - CEM3394_WAVE_SELECT, - CEM3394_PULSE_WIDTH, - CEM3394_MIXER_BALANCE, - CEM3394_FILTER_RESONANCE, - CEM3394_FILTER_FREQENCY, - CEM3394_FINAL_GAIN -}; - -typedef device_delegate cem3394_ext_input_delegate; +#pragma once #define CEM3394_EXT_INPUT(_name) void _name(int count, short *buffer) @@ -34,7 +17,7 @@ typedef device_delegate cem3394_ext_input_deleg MCFG_DEVICE_REPLACE(_tag, CEM3394, _clock) #define MCFG_CEM3394_EXT_INPUT_CB(_class, _method) \ - cem3394_device::set_ext_input_callback(*device, cem3394_ext_input_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); + cem3394_device::set_ext_input_callback(*device, cem3394_device::ext_input_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); #define MCFG_CEM3394_VCO_ZERO(_freq) \ cem3394_device::set_vco_zero_freq(*device, _freq); @@ -43,14 +26,29 @@ typedef device_delegate cem3394_ext_input_deleg cem3394_device::set_filter_zero_freq(*device, _freq); -class cem3394_device : public device_t, - public device_sound_interface +class cem3394_device : public device_t, public device_sound_interface { public: + static constexpr unsigned SAMPLE_RATE = 44100*4; + + // inputs + enum + { + VCO_FREQUENCY = 0, + MODULATION_AMOUNT, + WAVE_SELECT, + PULSE_WIDTH, + MIXER_BALANCE, + FILTER_RESONANCE, + FILTER_FREQENCY, + FINAL_GAIN + }; + + typedef device_delegate ext_input_delegate; + cem3394_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~cem3394_device() { } - static void set_ext_input_callback(device_t &device, cem3394_ext_input_delegate callback) { downcast(device).m_ext_cb = callback; } + static void set_ext_input_callback(device_t &device, ext_input_delegate &&callback) { downcast(device).m_ext_cb = std::move(callback); } static void set_vco_zero_freq(device_t &device, double freq) { downcast(device).m_vco_zero_freq = freq; } static void set_filter_zero_freq(device_t &device, double freq) { downcast(device).m_filter_zero_freq = freq; } @@ -66,14 +64,14 @@ public: void set_voltage(int input, double voltage); // Get the translated parameter associated with the given input as follows: - // CEM3394_VCO_FREQUENCY: frequency in Hz - // CEM3394_MODULATION_AMOUNT: scale factor, 0.0 to 2.0 - // CEM3394_WAVE_SELECT: voltage from this line - // CEM3394_PULSE_WIDTH: width fraction, from 0.0 to 1.0 - // CEM3394_MIXER_BALANCE: balance, from -1.0 to 1.0 - // CEM3394_FILTER_RESONANCE: resonance, from 0.0 to 1.0 - // CEM3394_FILTER_FREQENCY: frequency, in Hz - // CEM3394_FINAL_GAIN: gain, in dB + // VCO_FREQUENCY: frequency in Hz + // MODULATION_AMOUNT: scale factor, 0.0 to 2.0 + // WAVE_SELECT: voltage from this line + // PULSE_WIDTH: width fraction, from 0.0 to 1.0 + // MIXER_BALANCE: balance, from -1.0 to 1.0 + // FILTER_RESONANCE: resonance, from 0.0 to 1.0 + // FILTER_FREQENCY: frequency, in Hz + // FINAL_GAIN: gain, in dB double get_parameter(int input); private: @@ -81,7 +79,7 @@ private: uint32_t compute_db_volume(double voltage); private: - cem3394_ext_input_delegate m_ext_cb; /* callback to generate external samples */ + ext_input_delegate m_ext_cb; /* callback to generate external samples */ sound_stream *m_stream; /* our stream */ double m_vco_zero_freq; /* frequency of VCO at 0.0V */ @@ -111,7 +109,6 @@ private: std::unique_ptr m_external_buffer; }; -extern const device_type CEM3394; - +DECLARE_DEVICE_TYPE(CEM3394, cem3394_device) -#endif /* __CEM3394_H__ */ +#endif // MAME_SOUND_CEM3394_H diff --git a/src/devices/sound/dac.cpp b/src/devices/sound/dac.cpp index dd0e24b6829..c095ba3ee05 100644 --- a/src/devices/sound/dac.cpp +++ b/src/devices/sound/dac.cpp @@ -12,8 +12,8 @@ ***************************************************************************/ -#define DAC_GENERATOR_EPILOG(_dac_type, _dac_class) \ -const device_type _dac_type = device_creator<_dac_class>; +#define DAC_GENERATOR_EPILOG(_dac_type, _dac_class, _dac_description, _dac_shortname) \ +DEFINE_DEVICE_TYPE(_dac_type, _dac_class, _dac_shortname, _dac_description) #include "emu.h" #include "dac.h" diff --git a/src/devices/sound/dac.h b/src/devices/sound/dac.h index ca309f7ddc3..48e9d61566b 100644 --- a/src/devices/sound/dac.h +++ b/src/devices/sound/dac.h @@ -12,8 +12,12 @@ ***************************************************************************/ -#ifndef __DAC_H__ -#define __DAC_H__ +#ifndef MAME_SOUND_DAC_H +#define MAME_SOUND_DAC_H + +#pragma once + +#include #define DAC_VREF_POS_INPUT (0) @@ -40,16 +44,13 @@ public: virtual DECLARE_WRITE16_MEMBER(write) = 0; }; -template -stream_sample_t dac_multiply(const double vref, const stream_sample_t code) +template +constexpr stream_sample_t dac_multiply(const double vref, const stream_sample_t code) { - if (bits > 1) - return (vref * code) / (1 << (bits)); - - return vref * code; + return (bits > 1) ? ((vref * code) / (1 << bits)) : (vref * code); } -template +template class dac_code { protected: @@ -66,7 +67,7 @@ protected: inline void setCode(stream_sample_t code) { - code &= ~(~0U << bits); + code &= ~(~std::make_unsigned_t(0) << bits); if (m_code != code) { m_stream->update(); @@ -77,34 +78,29 @@ protected: virtual void sound_stream_update_tag(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) = 0; }; -template -class dac_code_binary : - protected dac_code +template +class dac_code_binary : protected dac_code { protected: - dac_code_binary(double gain) : - dac_code(gain) - { - } + using dac_code::dac_code; virtual void sound_stream_update_tag(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override { for (int samp = 0; samp < samples; samp++) { - double vref_pos = inputs[DAC_VREF_POS_INPUT][samp] * this->m_gain; - double vref_neg = inputs[DAC_VREF_NEG_INPUT][samp] * this->m_gain; - stream_sample_t vout = vref_neg + dac_multiply(vref_pos - vref_neg, this->m_code); + double const vref_pos = inputs[DAC_VREF_POS_INPUT][samp] * this->m_gain; + double const vref_neg = inputs[DAC_VREF_NEG_INPUT][samp] * this->m_gain; + stream_sample_t const vout = vref_neg + dac_multiply(vref_pos - vref_neg, this->m_code); outputs[0][samp] = vout; } } }; -template -class dac_code_ones_complement : - protected dac_code +template +class dac_code_ones_complement : protected dac_code { protected: - dac_code_ones_complement(double gain) : dac_code(gain) {} + using dac_code::dac_code; virtual void sound_stream_update_tag(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override { @@ -112,8 +108,8 @@ protected: { for (int samp = 0; samp < samples; samp++) { - double vref_neg = inputs[DAC_VREF_NEG_INPUT][samp] * this->m_gain; - stream_sample_t vout = dac_multiply(vref_neg, this->m_code ^ ~(~0U << bits)); + double const vref_neg = inputs[DAC_VREF_NEG_INPUT][samp] * this->m_gain; + stream_sample_t const vout = dac_multiply(vref_neg, this->m_code ^ ~(~0U << bits)); outputs[0][samp] = vout; } } @@ -121,45 +117,37 @@ protected: { for (int samp = 0; samp < samples; samp++) { - double vref_pos = inputs[DAC_VREF_POS_INPUT][samp] * this->m_gain; - stream_sample_t vout = dac_multiply(vref_pos, this->m_code); + double const vref_pos = inputs[DAC_VREF_POS_INPUT][samp] * this->m_gain; + stream_sample_t const vout = dac_multiply(vref_pos, this->m_code); outputs[0][samp] = vout; } } } }; -template -class dac_code_twos_complement : - protected dac_code +template +class dac_code_twos_complement : protected dac_code { protected: - dac_code_twos_complement(double gain) : - dac_code(gain) - { - } + using dac_code::dac_code; virtual void sound_stream_update_tag(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override { for (int samp = 0; samp < samples; samp++) { - double vref_pos = inputs[DAC_VREF_POS_INPUT][samp] * this->m_gain; - double vref_neg = inputs[DAC_VREF_NEG_INPUT][samp] * this->m_gain; - stream_sample_t vout = vref_neg + dac_multiply(vref_pos - vref_neg, this->m_code ^ (1 << (bits - 1))); + double const vref_pos = inputs[DAC_VREF_POS_INPUT][samp] * this->m_gain; + double const vref_neg = inputs[DAC_VREF_NEG_INPUT][samp] * this->m_gain; + stream_sample_t const vout = vref_neg + dac_multiply(vref_pos - vref_neg, this->m_code ^ (1 << (bits - 1))); outputs[0][samp] = vout; } } }; -template -class dac_code_sign_magntitude : - protected dac_code +template +class dac_code_sign_magntitude : protected dac_code { protected: - dac_code_sign_magntitude(double gain) : - dac_code(gain) - { - } + using dac_code::dac_code; virtual void sound_stream_update_tag(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override { @@ -167,8 +155,8 @@ protected: { for (int samp = 0; samp < samples; samp++) { - double vref_neg = inputs[DAC_VREF_NEG_INPUT][samp] * this->m_gain; - stream_sample_t vout = dac_multiply(vref_neg, this->m_code ^ (1 << (bits - 1))); + double const vref_neg = inputs[DAC_VREF_NEG_INPUT][samp] * this->m_gain; + stream_sample_t const vout = dac_multiply(vref_neg, this->m_code ^ (1 << (bits - 1))); outputs[0][samp] = vout; } } @@ -176,8 +164,8 @@ protected: { for (int samp = 0; samp < samples; samp++) { - double vref_pos = inputs[DAC_VREF_POS_INPUT][samp] * this->m_gain; - stream_sample_t vout = dac_multiply(vref_pos, this->m_code); + double const vref_pos = inputs[DAC_VREF_POS_INPUT][samp] * this->m_gain; + stream_sample_t const vout = dac_multiply(vref_pos, this->m_code); outputs[0][samp] = vout; } } @@ -191,8 +179,8 @@ class dac_device : public device_t, protected _dac_code { protected: - dac_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source, double gain) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), + dac_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, double gain) : + device_t(mconfig, type, tag, owner, clock), device_sound_interface(mconfig, *this), _dac_code(gain) { @@ -219,8 +207,8 @@ class dac_generator : public dac_device<_dac_code> { public: - dac_generator(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source, double gain) : - dac_device<_dac_code>(mconfig, type, name, tag, owner, clock, shortname, source, gain) + dac_generator(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, double gain) : + dac_device<_dac_code>(mconfig, type, tag, owner, clock, gain) { } @@ -234,8 +222,8 @@ class dac_generator : public dac_device<_dac_code> { public: - dac_generator(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source, double gain) : - dac_device<_dac_code>(mconfig, type, name, tag, owner, clock, shortname, source, gain) + dac_generator(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, double gain) : + dac_device<_dac_code>(mconfig, type, tag, owner, clock, gain) { } @@ -249,8 +237,8 @@ class dac_generator : public dac_device<_dac_code> { public: - dac_generator(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source, double gain) : - dac_device<_dac_code>(mconfig, type, name, tag, owner, clock, shortname, source, gain) + dac_generator(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, double gain) : + dac_device<_dac_code>(mconfig, type, tag, owner, clock, gain) { } @@ -258,22 +246,22 @@ public: virtual DECLARE_WRITE16_MEMBER(write) override { this->setCode(data); } }; -const double dac_gain_r2r = 1.0; -const double dac_gain_binary_weighted = 2.0; +constexpr double dac_gain_r2r = 1.0; +constexpr double dac_gain_binary_weighted = 2.0; #ifndef DAC_GENERATOR_EPILOG -#define DAC_GENERATOR_EPILOG(_dac_type, _dac_class) // +#define DAC_GENERATOR_EPILOG(_dac_type, _dac_class, _dac_description, _dac_shortname) #endif #define DAC_GENERATOR(_dac_type, _dac_class, _dac_interface, _dac_coding, _dac_gain, _dac_description, _dac_shortname) \ -extern const device_type _dac_type; \ +DECLARE_DEVICE_TYPE(_dac_type, _dac_class) \ class _dac_class : public dac_generator<_dac_interface, _dac_coding> \ {\ public: \ _dac_class(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : \ - dac_generator(mconfig, _dac_type, _dac_description, tag, owner, clock, _dac_shortname, __FILE__, _dac_gain) {} \ + dac_generator(mconfig, _dac_type, tag, owner, clock, _dac_gain) {} \ }; \ -DAC_GENERATOR_EPILOG(_dac_type, _dac_class) +DAC_GENERATOR_EPILOG(_dac_type, _dac_class, _dac_description, _dac_shortname) // DAC chips DAC_GENERATOR(AD557, ad557_device, dac_byte_interface, dac_code_binary<8>, dac_gain_r2r, "AD557", "ad557") @@ -321,4 +309,4 @@ DAC_GENERATOR(DAC_16BIT_R2R_TWOS_COMPLEMENT, dac_16bit_r2r_twos_complement_devic #undef DAC_GENERATOR #undef DAC_GENERATOR_EPILOG -#endif /* __DAC_H__ */ +#endif // MAME_SOUND_DAC_H diff --git a/src/devices/sound/dac76.cpp b/src/devices/sound/dac76.cpp index 53739e1c254..388ccb7f2b0 100644 --- a/src/devices/sound/dac76.cpp +++ b/src/devices/sound/dac76.cpp @@ -23,7 +23,7 @@ constexpr int dac76_device::m_level[]; // DEVICE DEFINITIONS //************************************************************************** -const device_type DAC76 = device_creator; +DEFINE_DEVICE_TYPE(DAC76, dac76_device, "dac76", "PMI DAC-76 COMDAC") //************************************************************************** @@ -35,7 +35,7 @@ const device_type DAC76 = device_creator; //------------------------------------------------- dac76_device::dac76_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, DAC76, "DAC-76 COMDAC", tag, owner, clock, "dac76", __FILE__), + device_t(mconfig, DAC76, tag, owner, clock), device_sound_interface(mconfig, *this), m_stream(nullptr), m_chord(0), diff --git a/src/devices/sound/dac76.h b/src/devices/sound/dac76.h index ee0a4225e47..c9a78c51a19 100644 --- a/src/devices/sound/dac76.h +++ b/src/devices/sound/dac76.h @@ -19,10 +19,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_SOUND_DAC76_H +#define MAME_SOUND_DAC76_H -#ifndef __DAC76_H__ -#define __DAC76_H__ +#pragma once @@ -70,6 +70,6 @@ private: }; // device type definition -extern const device_type DAC76; +DECLARE_DEVICE_TYPE(DAC76, dac76_device) -#endif // __DAC76_H__ +#endif // MAME_SOUND_DAC76_H diff --git a/src/devices/sound/dave.cpp b/src/devices/sound/dave.cpp index 342ba571aaf..c67385cef71 100644 --- a/src/devices/sound/dave.cpp +++ b/src/devices/sound/dave.cpp @@ -9,14 +9,14 @@ #include "emu.h" #include "dave.h" +//#define VERBOSE 1 +#include "logmacro.h" //************************************************************************** // MACROS / CONSTANTS //************************************************************************** -#define LOG 0 - #define STEP 0x08000 @@ -25,7 +25,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type DAVE = device_creator; +DEFINE_DEVICE_TYPE(DAVE, dave_device, "dave", "Inteligent Designs DAVE") DEVICE_ADDRESS_MAP_START( z80_program_map, 8, dave_device ) @@ -54,7 +54,7 @@ ADDRESS_MAP_END //------------------------------------------------- dave_device::dave_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, DAVE, "DAVE", tag, owner, clock, "dave", __FILE__), + : device_t(mconfig, DAVE, tag, owner, clock), device_memory_interface(mconfig, *this), device_sound_interface(mconfig, *this), m_program_space_config("program", ENDIANNESS_LITTLE, 8, 22, 0, *ADDRESS_MAP_NAME(program_map)), diff --git a/src/devices/sound/dave.h b/src/devices/sound/dave.h index 10e9fb26905..6630ff27115 100644 --- a/src/devices/sound/dave.h +++ b/src/devices/sound/dave.h @@ -6,8 +6,8 @@ **********************************************************************/ -#ifndef MAME_DEVICES_SOUND_DAVE_H -#define MAME_DEVICES_SOUND_DAVE_H +#ifndef MAME_SOUND_DAVE_H +#define MAME_SOUND_DAVE_H #pragma once @@ -55,9 +55,9 @@ class dave_device : public device_t, public: dave_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_irq_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_irq.set_callback(object); } - template static devcb_base &set_lh_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_lh.set_callback(object); } - template static devcb_base &set_rh_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_rh.set_callback(object); } + template static devcb_base &set_irq_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_irq.set_callback(std::forward(cb)); } + template static devcb_base &set_lh_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_lh.set_callback(std::forward(cb)); } + template static devcb_base &set_rh_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_rh.set_callback(std::forward(cb)); } virtual DECLARE_ADDRESS_MAP(z80_program_map, 8); virtual DECLARE_ADDRESS_MAP(z80_io_map, 8); @@ -146,6 +146,6 @@ private: // device type definition -extern const device_type DAVE; +DECLARE_DEVICE_TYPE(DAVE, dave_device) -#endif // MAME_DEVICES_SOUND_DAVE_H +#endif // MAME_SOUND_DAVE_H diff --git a/src/devices/sound/digitalk.cpp b/src/devices/sound/digitalk.cpp index 329eb1c1e7f..d69f9098cc3 100644 --- a/src/devices/sound/digitalk.cpp +++ b/src/devices/sound/digitalk.cpp @@ -240,7 +240,7 @@ complete set of waveforms is repeated R times. // Quantized intensity values, first index is the volume, second the // intensity (positive half only, real value goes -8..7) -static const short pcm_levels[8][8] = { +static constexpr short pcm_levels[8][8] = { { 473, 945, 1418, 1890, 2363, 2835, 3308, 3781 }, { 655, 1310, 1966, 2621, 3276, 3931, 4586, 5242 }, { 925, 1851, 2776, 3702, 4627, 5553, 6478, 7404 }, @@ -251,20 +251,20 @@ static const short pcm_levels[8][8] = { { 4095, 8190, 12285, 16380, 20475, 24570, 28665, 32760 }, }; -static const int delta1[16] = { -4, -4, -1, -1, -2, -2, 0, 0, 0, 0, 2, 2, 1, 1, 4, 4 }; -static const int delta2[16] = { 0, -1, -2, -3, 1, 0, -1, -2, 2, 1, 0, -1, 3, 2, 1, 0 }; +static constexpr int delta1[16] = { -4, -4, -1, -1, -2, -2, 0, 0, 0, 0, 2, 2, 1, 1, 4, 4 }; +static constexpr int delta2[16] = { 0, -1, -2, -3, 1, 0, -1, -2, 2, 1, 0, -1, 3, 2, 1, 0 }; // Frequency quantizations, values are in units of 128us. -static const int pitch_vals[32] = { +static constexpr int pitch_vals[32] = { 97, 95, 92, 89, 87, 84, 82, 80, 77, 75, 73, 71, 69, 67, 65, 63, 61, 60, 58, 56, 55, 53, 52, 50, 49, 48, 46, 45, 43, 42, 41, 40 }; -const device_type DIGITALKER = device_creator; +DEFINE_DEVICE_TYPE(DIGITALKER, digitalker_device, "digitalker", "MM54104 Digitalker") digitalker_device::digitalker_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, DIGITALKER, "Digitalker", tag, owner, clock, "digitalker", __FILE__), + : device_t(mconfig, DIGITALKER, tag, owner, clock), device_sound_interface(mconfig, *this), m_rom(*this, DEVICE_SELF), m_stream(nullptr), diff --git a/src/devices/sound/digitalk.h b/src/devices/sound/digitalk.h index d63aeaa3eb9..b93ee4a42f3 100644 --- a/src/devices/sound/digitalk.h +++ b/src/devices/sound/digitalk.h @@ -1,17 +1,20 @@ // license:BSD-3-Clause // copyright-holders:Olivier Galibert -#ifndef _DIGITALKER_H_ -#define _DIGITALKER_H_ +#ifndef MAME_SOUND_DIGITALK_H +#define MAME_SOUND_DIGITALK_H + +#pragma once //************************************************************************** // INTERFACE CONFIGURATION MACROS //************************************************************************** -#define MCFG_DIGITALKER_ADD(_tag, _clock) \ - MCFG_DEVICE_ADD(_tag, DIGITALKER, _clock) -#define MCFG_DIGITALKER_REPLACE(_tag, _clock) \ - MCFG_DEVICE_REPLACE(_tag, DIGITALKER, _clock) +#define MCFG_DIGITALKER_ADD(tag, clock) \ + MCFG_DEVICE_ADD((tag), DIGITALKER, (clock)) + +#define MCFG_DIGITALKER_REPLACE(tag, clock) \ + MCFG_DEVICE_REPLACE((tag), DIGITALKER, (clock)) //************************************************************************** @@ -20,18 +23,18 @@ // ======================> digitalker_device -class digitalker_device : public device_t, - public device_sound_interface +class digitalker_device : public device_t, public device_sound_interface { public: digitalker_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~digitalker_device() { } void digitalker_0_cs_w(int line); void digitalker_0_cms_w(int line); void digitalker_0_wr_w(int line); int digitalker_0_intr_r(); + DECLARE_WRITE8_MEMBER(digitalker_data_w); + protected: // device-level overrides virtual void device_start() override; @@ -39,9 +42,6 @@ protected: // sound stream update overrides virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; -public: - DECLARE_WRITE8_MEMBER(digitalker_data_w); - private: void digitalker_write(uint8_t *adr, uint8_t vol, int8_t dac); uint8_t digitalker_pitch_next(uint8_t val, uint8_t prev, int step); @@ -58,7 +58,6 @@ private: int digitalker_intr_r(); void digitalker_register_for_save(); -private: required_region_ptr m_rom; sound_stream *m_stream; @@ -95,7 +94,6 @@ private: int16_t m_dac[128]; }; -extern const device_type DIGITALKER; - +DECLARE_DEVICE_TYPE(DIGITALKER, digitalker_device) -#endif +#endif // MAME_SOUND_DIGITALK_H diff --git a/src/devices/sound/disc_cls.h b/src/devices/sound/disc_cls.h index fbc8f2508f8..1855fbc5444 100644 --- a/src/devices/sound/disc_cls.h +++ b/src/devices/sound/disc_cls.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:K.Wilkins,Couriersud,Derrick Renaud,Frank Palazzolo -#pragma once +#ifndef MAME_SOUND_DISC_CLS_H +#define MAME_SOUND_DISC_CLS_H -#ifndef __DISC_CLS_H__ -#define __DISC_CLS_H__ +#pragma once /*********************************************************************** * @@ -255,4 +255,4 @@ public: #include "disc_flt.h" #include "disc_dev.h" -#endif /* __DISCRETE_H__ */ +#endif // MAME_SOUND_DISC_CLS_H diff --git a/src/devices/sound/disc_dev.h b/src/devices/sound/disc_dev.h index 19d96339889..35803662197 100644 --- a/src/devices/sound/disc_dev.h +++ b/src/devices/sound/disc_dev.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:K.Wilkins,Couriersud,Derrick Renaud,Frank Palazzolo -#pragma once +#ifndef MAME_SOUND_DISC_DEV_H +#define MAME_SOUND_DISC_DEV_H -#ifndef __DISC_DEV_H__ -#define __DISC_DEV_H__ +#pragma once /*********************************************************************** * @@ -126,4 +126,4 @@ DISCRETE_CLASS_STEP_RESET(dsd_ls624, 1, int m_out_type; ); -#endif /* __DISC_WAV_H__ */ +#endif // MAME_SOUND_DISC_DEV_H diff --git a/src/devices/sound/disc_flt.h b/src/devices/sound/disc_flt.h index 1ec801110a1..63ee98b24ea 100644 --- a/src/devices/sound/disc_flt.h +++ b/src/devices/sound/disc_flt.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:K.Wilkins,Couriersud,Derrick Renaud,Frank Palazzolo -#pragma once +#ifndef MAME_SOUND_DISC_FLT_H +#define MAME_SOUND_DISC_FLT_H -#ifndef __DISC_FLTH__ -#define __DISC_FLT_H__ +#pragma once /*********************************************************************** * @@ -177,4 +177,4 @@ DISCRETE_CLASS_STEP_RESET(dst_rcdisc2N, 1, ); -#endif /* __DISC_FLT_H__ */ +#endif // MAME_SOUND_DISC_FLT_H diff --git a/src/devices/sound/disc_mth.h b/src/devices/sound/disc_mth.h index 99c387b245a..418554b2ce4 100644 --- a/src/devices/sound/disc_mth.h +++ b/src/devices/sound/disc_mth.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:K.Wilkins,Couriersud,Derrick Renaud,Frank Palazzolo -#pragma once +#ifndef MAME_SOUND_DISC_MTH_H +#define MAME_SOUND_DISC_MTH_H -#ifndef __DISC_MTH_H__ -#define __DISC_MTH_H__ +#pragma once /*********************************************************************** * @@ -236,4 +236,4 @@ DISCRETE_CLASS_STEP(dst_xtime_or, 1, /* no context */ ); DISCRETE_CLASS_STEP(dst_xtime_xor, 1, /* no context */ ); -#endif /* __DISC_WAV_H__ */ +#endif // MAME_SOUND_DISC_MTH_H diff --git a/src/devices/sound/disc_wav.h b/src/devices/sound/disc_wav.h index c9d6ea36a6c..5c6e23dd399 100644 --- a/src/devices/sound/disc_wav.h +++ b/src/devices/sound/disc_wav.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:K.Wilkins,Couriersud,Derrick Renaud,Frank Palazzolo -#pragma once +#ifndef MAME_SOUND_DISC_WAV_H +#define MAME_SOUND_DISC_WAV_H -#ifndef __DISC_WAV_H__ -#define __DISC_WAV_H__ +#pragma once /*********************************************************************** * @@ -190,4 +190,4 @@ DISCRETE_CLASS_STEP_RESET(dss_adsrenv, 1, ); -#endif /* __DISC_WAV_H__ */ +#endif // MAME_SOUND_DISC_WAV_H diff --git a/src/devices/sound/discrete.cpp b/src/devices/sound/discrete.cpp index 62c8707067a..847f24f9f17 100644 --- a/src/devices/sound/discrete.cpp +++ b/src/devices/sound/discrete.cpp @@ -36,16 +36,19 @@ ************************************************************************/ #include "emu.h" -#include "wavwrite.h" #include "discrete.h" + +#include "wavwrite.h" + #include #include + /* for_each collides with c++ standard libraries - include it here */ #define for_each(_T, _e, _l) for (_T _e = (_l)->begin_ptr() ; _e <= (_l)->end_ptr(); _e++) // device type definition -const device_type DISCRETE = device_creator; +DEFINE_DEVICE_TYPE(DISCRETE, discrete_sound_device, "discrete", "Discrete Sound") /************************************* * @@ -835,8 +838,8 @@ void discrete_device::static_set_intf(device_t &device, const discrete_block *in // discrete_device - constructor //------------------------------------------------- -discrete_device::discrete_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, type, name, tag, owner, clock, "discrete", __FILE__), +discrete_device::discrete_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock), m_intf(nullptr), m_sample_rate(0), m_sample_time(0), @@ -851,7 +854,7 @@ discrete_device::discrete_device(const machine_config &mconfig, device_type type } discrete_sound_device::discrete_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : discrete_device(mconfig, DISCRETE, "DISCRETE", tag, owner, clock), + : discrete_device(mconfig, DISCRETE, tag, owner, clock), device_sound_interface(mconfig, *this), m_stream(nullptr) { diff --git a/src/devices/sound/discrete.h b/src/devices/sound/discrete.h index b51c459194f..da0197b7e67 100644 --- a/src/devices/sound/discrete.h +++ b/src/devices/sound/discrete.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:K.Wilkins,Couriersud,Derrick Renaud,Frank Palazzolo -#pragma once +#ifndef MAME_SOUND_DISCRETE_H +#define MAME_SOUND_DISCRETE_H -#ifndef __DISCRETE_H__ -#define __DISCRETE_H__ +#pragma once #include "machine/rescap.h" @@ -4282,7 +4282,7 @@ class discrete_device : public device_t protected: // construction/destruction - discrete_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock); + discrete_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); public: // inline configuration helpers @@ -4405,7 +4405,7 @@ private: }; // device type definition -extern const device_type DISCRETE; +DECLARE_DEVICE_TYPE(DISCRETE, discrete_sound_device) /************************************* * @@ -4731,4 +4731,4 @@ discrete_base_node *discrete_create_node(discrete_device * pdev, const discrete_ -#endif /* __DISCRETE_H__ */ +#endif // MAME_SOUND_DISCRETE_H diff --git a/src/devices/sound/dmadac.cpp b/src/devices/sound/dmadac.cpp index fc8f3a3b8fe..497861caae8 100644 --- a/src/devices/sound/dmadac.cpp +++ b/src/devices/sound/dmadac.cpp @@ -10,18 +10,10 @@ #include "emu.h" #include "dmadac.h" +//#define VERBOSE 1 +#include "logmacro.h" -/************************************* - * - * Debugging - * - *************************************/ - -#define VERBOSE 0 - -#define LOG(x) do { if (VERBOSE) logerror x; } while (0) - /************************************* * @@ -119,7 +111,8 @@ void dmadac_sound_device::transfer(int channel, offs_t channel_spacing, offs_t f logerror("dmadac_transfer: buffer overrun (short %d frames)\n", total_frames - j); } - //LOG(("dmadac_transfer - %d samples, %d effective, %d in buffer\n", total_frames, (int)(total_frames * (double)DEFAULT_SAMPLE_RATE / dmadac[first_channel].frequency), dmadac[first_channel].curinpos - dmadac[first_channel].curoutpos)); + // FIXME: this line has rotted and can no longer compile - it should be fixed and uncommented or removed + //LOG("dmadac_transfer - %d samples, %d effective, %d in buffer\n", total_frames, int(total_frames * double(DEFAULT_SAMPLE_RATE) / dmadac[first_channel].frequency), dmadac[first_channel].curinpos - dmadac[first_channel].curoutpos); } @@ -196,10 +189,10 @@ void dmadac_sound_device::set_volume(uint16_t volume) m_volume = volume; } -const device_type DMADAC = device_creator; +DEFINE_DEVICE_TYPE(DMADAC, dmadac_sound_device, "dmadac", "DMA-driven DAC") dmadac_sound_device::dmadac_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, DMADAC, "DMA-driven DAC", tag, owner, clock, "dmadac", __FILE__), + : device_t(mconfig, DMADAC, tag, owner, clock), device_sound_interface(mconfig, *this), m_buffer(nullptr), m_bufin(0), diff --git a/src/devices/sound/dmadac.h b/src/devices/sound/dmadac.h index 5350eadf872..4222d020e86 100644 --- a/src/devices/sound/dmadac.h +++ b/src/devices/sound/dmadac.h @@ -7,14 +7,13 @@ * **********************************************************************************************/ -#pragma once +#ifndef MAME_SOUND_DMADAC_H +#define MAME_SOUND_DMADAC_H -#ifndef __DMADAC_H__ -#define __DMADAC_H__ +#pragma once -class dmadac_sound_device : public device_t, - public device_sound_interface +class dmadac_sound_device : public device_t, public device_sound_interface { public: dmadac_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); @@ -31,6 +30,7 @@ protected: // sound stream update overrides virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; + private: // internal state /* sound stream and buffers */ @@ -45,7 +45,7 @@ private: double m_frequency; }; -extern const device_type DMADAC; +DECLARE_DEVICE_TYPE(DMADAC, dmadac_sound_device) void dmadac_transfer(dmadac_sound_device **devlist, uint8_t num_channels, offs_t channel_spacing, offs_t frame_spacing, offs_t total_frames, int16_t *data); @@ -53,4 +53,4 @@ void dmadac_enable(dmadac_sound_device **devlist, uint8_t num_channels, uint8_t void dmadac_set_frequency(dmadac_sound_device **devlist, uint8_t num_channels, double frequency); void dmadac_set_volume(dmadac_sound_device **devlist, uint8_t num_channels, uint16_t volume); -#endif /* __DMADAC_H__ */ +#endif // MAME_SOUND_DMADAC_H diff --git a/src/devices/sound/es1373.cpp b/src/devices/sound/es1373.cpp index 2a93d309110..81658546ab2 100644 --- a/src/devices/sound/es1373.cpp +++ b/src/devices/sound/es1373.cpp @@ -11,6 +11,66 @@ #define LOG_ES_FILE (0) +/* Ensonic ES1373 registers 0x00-0x3f */ +#define ES_INT_CS_CTRL (0x00/4) +#define ES_INT_CS_STATUS (0x04/4) +#define ES_UART_DATA (0x08/4) +#define ES_UART_STATUS (0x09/4) +#define ES_UART_CTRL (0x09/4) +#define ES_UART_RSVD (0x0A/4) +#define ES_MEM_PAGE (0x0C/4) +#define ES_SRC_IF (0x10/4) +#define ES_CODEC (0x14/4) +#define ES_LEGACY (0x18/4) +#define ES_CHAN_CTRL (0x1C/4) +#define ES_SERIAL_CTRL (0x20/4) +#define ES_DAC1_CNT (0x24/4) +#define ES_DAC2_CNT (0x28/4) +#define ES_ADC_CNT (0x2C/4) +#define ES_HOST_IF0 (0x30/4) +#define ES_HOST_IF1 (0x34/4) +#define ES_HOST_IF2 (0x38/4) +#define ES_HOST_IF3 (0x3C/4) + +// Interrupt/Chip Select Control Register (ES_INT_CS_CTRL) bits +#define ICCTRL_ADC_STOP_MASK 0x00002000 +#define ICCTRL_DAC1_EN_MASK 0x00000040 +#define ICCTRL_DAC2_EN_MASK 0x00000020 +#define ICCTRL_ADC_EN_MASK 0x00000010 +#define ICCTRL_UART_EN_MASK 0x00000008 +#define ICCTRL_JYSTK_EN_MASK 0x00000004 + +// Interrupt/Chip Select Status Register (ES_INT_CS_STATUS) bits +#define ICSTATUS_INTR_MASK 0x80000000 +#define ICSTATUS_DAC1_INT_MASK 0x00000004 +#define ICSTATUS_DAC2_INT_MASK 0x00000002 +#define ICSTATUS_ADC_INT_MASK 0x00000001 + +// Serial Interface Control Register (ES_SERIAL_CTRL) bits +#define SCTRL_P2_END_MASK 0x00380000 +#define SCTRL_P2_START_MASK 0x00070000 +#define SCTRL_R1_LOOP_MASK 0x00008000 +#define SCTRL_P2_LOOP_MASK 0x00004000 +#define SCTRL_P1_LOOP_MASK 0x00002000 +#define SCTRL_P2_PAUSE_MASK 0x00001000 +#define SCTRL_P1_PAUSE_MASK 0x00000800 +#define SCTRL_R1_INT_EN_MASK 0x00000400 +#define SCTRL_P2_INT_EN_MASK 0x00000200 +#define SCTRL_P1_INT_EN_MASK 0x00000100 +#define SCTRL_P1_RELOAD_MASK 0x00000080 +#define SCTRL_P2_STOP_MASK 0x00000040 +#define SCTRL_R1_S_MASK 0x00000030 +#define SCTRL_P2_S_MASK 0x0000000C +#define SCTRL_P1_S_MASK 0x00000003 + +#define SCTRL_8BIT_MONO 0x0 +#define SCTRL_8BIT_STEREO 0x1 +#define SCTRL_16BIT_MONO 0x2 +#define SCTRL_16BIT_STEREO 0x3 + +#define ES_PCI_READ 0 +#define ES_PCI_WRITE 1 + static MACHINE_CONFIG_FRAGMENT( es1373 ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") MACHINE_CONFIG_END @@ -20,14 +80,14 @@ machine_config_constructor es1373_device::device_mconfig_additions() const return MACHINE_CONFIG_NAME( es1373 ); } -const device_type ES1373 = device_creator; +DEFINE_DEVICE_TYPE(ES1373, es1373_device, "es1373", "Creative Labs Ensoniq AudioPCI97 ES1373") DEVICE_ADDRESS_MAP_START(map, 32, es1373_device) AM_RANGE(0x00, 0x3f) AM_READWRITE (reg_r, reg_w) ADDRESS_MAP_END es1373_device::es1373_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : pci_device(mconfig, ES1373, "Creative Labs Ensoniq AudioPCI97 ES1373", tag, owner, clock, "es1373", __FILE__), + : pci_device(mconfig, ES1373, tag, owner, clock), device_sound_interface(mconfig, *this), m_stream(nullptr), m_eslog(nullptr), m_tempCount(0), m_timer(nullptr), m_memory_space(nullptr), m_cpu_tag(nullptr), m_cpu(nullptr), m_irq_num(-1) diff --git a/src/devices/sound/es1373.h b/src/devices/sound/es1373.h index f66c5a0c75b..848e175fa58 100644 --- a/src/devices/sound/es1373.h +++ b/src/devices/sound/es1373.h @@ -2,10 +2,10 @@ // copyright-holders:Ted Green // Creative Labs Ensonic AudioPCI97 ES1373 -#pragma once +#ifndef MAME_SOUND_ES1373_H +#define MAME_SOUND_ES1373_H -#ifndef ES1373_H -#define ES1373_H +#pragma once #include "machine/pci.h" @@ -16,86 +16,11 @@ #define MCFG_ES1373_IRQ_ADD(_cpu_tag, _irq_num) \ downcast(device)->set_irq_info(_cpu_tag, _irq_num); -/* Ensonic ES1373 registers 0x00-0x3f */ -#define ES_INT_CS_CTRL (0x00/4) -#define ES_INT_CS_STATUS (0x04/4) -#define ES_UART_DATA (0x08/4) -#define ES_UART_STATUS (0x09/4) -#define ES_UART_CTRL (0x09/4) -#define ES_UART_RSVD (0x0A/4) -#define ES_MEM_PAGE (0x0C/4) -#define ES_SRC_IF (0x10/4) -#define ES_CODEC (0x14/4) -#define ES_LEGACY (0x18/4) -#define ES_CHAN_CTRL (0x1C/4) -#define ES_SERIAL_CTRL (0x20/4) -#define ES_DAC1_CNT (0x24/4) -#define ES_DAC2_CNT (0x28/4) -#define ES_ADC_CNT (0x2C/4) -#define ES_HOST_IF0 (0x30/4) -#define ES_HOST_IF1 (0x34/4) -#define ES_HOST_IF2 (0x38/4) -#define ES_HOST_IF3 (0x3C/4) - -// Interrupt/Chip Select Control Register (ES_INT_CS_CTRL) bits -#define ICCTRL_ADC_STOP_MASK 0x00002000 -#define ICCTRL_DAC1_EN_MASK 0x00000040 -#define ICCTRL_DAC2_EN_MASK 0x00000020 -#define ICCTRL_ADC_EN_MASK 0x00000010 -#define ICCTRL_UART_EN_MASK 0x00000008 -#define ICCTRL_JYSTK_EN_MASK 0x00000004 - -// Interrupt/Chip Select Status Register (ES_INT_CS_STATUS) bits -#define ICSTATUS_INTR_MASK 0x80000000 -#define ICSTATUS_DAC1_INT_MASK 0x00000004 -#define ICSTATUS_DAC2_INT_MASK 0x00000002 -#define ICSTATUS_ADC_INT_MASK 0x00000001 - -// Serial Interface Control Register (ES_SERIAL_CTRL) bits -#define SCTRL_P2_END_MASK 0x00380000 -#define SCTRL_P2_START_MASK 0x00070000 -#define SCTRL_R1_LOOP_MASK 0x00008000 -#define SCTRL_P2_LOOP_MASK 0x00004000 -#define SCTRL_P1_LOOP_MASK 0x00002000 -#define SCTRL_P2_PAUSE_MASK 0x00001000 -#define SCTRL_P1_PAUSE_MASK 0x00000800 -#define SCTRL_R1_INT_EN_MASK 0x00000400 -#define SCTRL_P2_INT_EN_MASK 0x00000200 -#define SCTRL_P1_INT_EN_MASK 0x00000100 -#define SCTRL_P1_RELOAD_MASK 0x00000080 -#define SCTRL_P2_STOP_MASK 0x00000040 -#define SCTRL_R1_S_MASK 0x00000030 -#define SCTRL_P2_S_MASK 0x0000000C -#define SCTRL_P1_S_MASK 0x00000003 - -#define SCTRL_8BIT_MONO 0x0 -#define SCTRL_8BIT_STEREO 0x1 -#define SCTRL_16BIT_MONO 0x2 -#define SCTRL_16BIT_STEREO 0x3 - -#define ES_PCI_READ 0 -#define ES_PCI_WRITE 1 - -struct chan_info { - int number; - bool enable; - bool int_en; - bool loop_en; - bool initialized; - uint8_t format; // Format of channel - uint32_t buf_wptr; // Address to sample cache memory - uint32_t buf_rptr; // Address to sample cache memory - uint16_t buf_count; // Number of samples that have been played - uint16_t buf_size; // Number of samples minus one to play - uint32_t pci_addr; // PCI Address for system memory accesses - uint16_t pci_count; // Number of 32 bits transferred - uint16_t pci_size; // Total number of words (32 bits) minus one in system memory -}; - class es1373_device : public pci_device, public device_sound_interface { public: es1373_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + virtual void map_extra(uint64_t memory_window_start, uint64_t memory_window_end, uint64_t memory_offset, address_space *memory_space, uint64_t io_window_start, uint64_t io_window_end, uint64_t io_offset, address_space *io_space) override; @@ -108,9 +33,6 @@ public: // optional information overrides virtual machine_config_constructor device_mconfig_additions() const override; - // Sound stream - sound_stream *m_stream; - protected: virtual void device_start() override; virtual void device_stop() override; @@ -118,9 +40,32 @@ protected: virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; + // Sound stream + sound_stream *m_stream; + FILE *m_eslog; private: + struct chan_info { + int number; + bool enable; + bool int_en; + bool loop_en; + bool initialized; + uint8_t format; // Format of channel + uint32_t buf_wptr; // Address to sample cache memory + uint32_t buf_rptr; // Address to sample cache memory + uint16_t buf_count; // Number of samples that have been played + uint16_t buf_size; // Number of samples minus one to play + uint32_t pci_addr; // PCI Address for system memory accesses + uint16_t pci_count; // Number of 32 bits transferred + uint16_t pci_size; // Total number of words (32 bits) minus one in system memory + }; + + void transfer_pci_audio(chan_info& chan, int type); + uint32_t calc_size(const uint8_t &format); + void send_audio_out(chan_info& chan, uint32_t intr_mask, stream_sample_t *outL, stream_sample_t *outR, int samples); + uint32_t m_tempCount; emu_timer *m_timer; address_space *m_memory_space; @@ -135,12 +80,8 @@ private: chan_info m_dac1; chan_info m_dac2; chan_info m_adc; - void transfer_pci_audio(chan_info& chan, int type); - uint32_t calc_size(const uint8_t &format); - void send_audio_out(chan_info& chan, uint32_t intr_mask, stream_sample_t *outL, stream_sample_t *outR, int samples); - }; -extern const device_type ES1373; +DECLARE_DEVICE_TYPE(ES1373, es1373_device) -#endif +#endif // MAME_SOUND_ES1373_H diff --git a/src/devices/sound/es5503.cpp b/src/devices/sound/es5503.cpp index 39b57df0b3e..1e3c29b268a 100644 --- a/src/devices/sound/es5503.cpp +++ b/src/devices/sound/es5503.cpp @@ -36,13 +36,13 @@ #include "es5503.h" // device type definition -const device_type ES5503 = device_creator; +DEFINE_DEVICE_TYPE(ES5503, es5503_device, "es5503", "Ensoniq ES5503") // useful constants -static const uint16_t wavesizes[8] = { 256, 512, 1024, 2048, 4096, 8192, 16384, 32768 }; -static const uint32_t wavemasks[8] = { 0x1ff00, 0x1fe00, 0x1fc00, 0x1f800, 0x1f000, 0x1e000, 0x1c000, 0x18000 }; -static const uint32_t accmasks[8] = { 0xff, 0x1ff, 0x3ff, 0x7ff, 0xfff, 0x1fff, 0x3fff, 0x7fff }; -static const int resshifts[8] = { 9, 10, 11, 12, 13, 14, 15, 16 }; +static constexpr uint16_t wavesizes[8] = { 256, 512, 1024, 2048, 4096, 8192, 16384, 32768 }; +static constexpr uint32_t wavemasks[8] = { 0x1ff00, 0x1fe00, 0x1fc00, 0x1f800, 0x1f000, 0x1e000, 0x1c000, 0x18000 }; +static constexpr uint32_t accmasks[8] = { 0xff, 0x1ff, 0x3ff, 0x7ff, 0xfff, 0x1fff, 0x3fff, 0x7fff }; +static constexpr int resshifts[8] = { 9, 10, 11, 12, 13, 14, 15, 16 }; //************************************************************************** // LIVE DEVICE @@ -53,7 +53,7 @@ static const int resshifts[8] = { 9, 10, 11, 12, 13, 14, 15, 16 }; //------------------------------------------------- es5503_device::es5503_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, ES5503, "Ensoniq ES5503", tag, owner, clock, "es5503", __FILE__), + : device_t(mconfig, ES5503, tag, owner, clock), device_sound_interface(mconfig, *this), device_rom_interface(mconfig, *this, 17), m_irq_func(*this), diff --git a/src/devices/sound/es5503.h b/src/devices/sound/es5503.h index 2c226471b3a..577e71568d9 100644 --- a/src/devices/sound/es5503.h +++ b/src/devices/sound/es5503.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:R. Belmont -#pragma once +#ifndef MAME_SOUND_ES5503_H +#define MAME_SOUND_ES5503_H -#ifndef __ES5503_H__ -#define __ES5503_H__ +#pragma once // channels must be a power of two @@ -31,16 +31,14 @@ public: static void static_set_channels(device_t &device, int channels); - template static devcb_base &static_set_irqf(device_t &device, _Object object) { return downcast(device).m_irq_func.set_callback(object); } - template static devcb_base &static_set_adcf(device_t &device, _Object object) { return downcast(device).m_adc_func.set_callback(object); } + template static devcb_base &static_set_irqf(device_t &device, Object &&cb) { return downcast(device).m_irq_func.set_callback(std::forward(cb)); } + template static devcb_base &static_set_adcf(device_t &device, Object &&cb) { return downcast(device).m_adc_func.set_callback(std::forward(cb)); } DECLARE_READ8_MEMBER(read); DECLARE_WRITE8_MEMBER(write); uint8_t get_channel_strobe() { return m_channel_strobe; } - sound_stream *m_stream; - protected: // device-level overrides virtual void device_start() override; @@ -53,6 +51,8 @@ protected: // device_rom_interface overrides virtual void rom_bank_updated() override; + sound_stream *m_stream; + devcb_write_line m_irq_func; devcb_read8 m_adc_func; @@ -99,6 +99,6 @@ private: // device type definition -extern const device_type ES5503; +DECLARE_DEVICE_TYPE(ES5503, es5503_device) -#endif /* __ES5503_H__ */ +#endif // MAME_SOUND_ES5503_H diff --git a/src/devices/sound/es5506.cpp b/src/devices/sound/es5506.cpp index d5205a6996b..9c3b548e8a9 100644 --- a/src/devices/sound/es5506.cpp +++ b/src/devices/sound/es5506.cpp @@ -85,6 +85,10 @@ Ensoniq OTIS - ES5505 Ensoniq OTTO - #include "emu.h" #include "es5506.h" +#if ES5506_MAKE_WAVS +#include "sound/wavwrite.h" +#endif + /********************************************************************************************** @@ -95,10 +99,6 @@ Ensoniq OTIS - ES5505 Ensoniq OTTO - #define LOG_COMMANDS 0 #define RAINE_CHECK 0 -#if MAKE_WAVS -#include "sound/wavwrite.h" -#endif - #define MAX_SAMPLE_CHUNK 10000 #define ULAW_MAXBITS 8 @@ -127,8 +127,8 @@ Ensoniq OTIS - ES5505 Ensoniq OTTO - #define CONTROL_STOPMASK (CONTROL_STOP1 | CONTROL_STOP0) -es550x_device::es550x_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), +es550x_device::es550x_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock), device_sound_interface(mconfig, *this), m_stream(nullptr), m_sample_rate(0), @@ -145,9 +145,9 @@ es550x_device::es550x_device(const machine_config &mconfig, device_type type, co m_scratch(nullptr), m_ulaw_lookup(nullptr), m_volume_lookup(nullptr), - #if MAKE_WAVS +#if ES5506_MAKE_WAVS m_wavraw(nullptr), - #endif +#endif m_eslog(nullptr), m_region0(nullptr), m_region1(nullptr), @@ -163,10 +163,10 @@ es550x_device::es550x_device(const machine_config &mconfig, device_type type, co } } -const device_type ES5506 = device_creator; +DEFINE_DEVICE_TYPE(ES5506, es5506_device, "es5506", "Ensoniq ES5506") es5506_device::es5506_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : es550x_device(mconfig, ES5506, "ES5506", tag, owner, clock, "es5506", __FILE__) + : es550x_device(mconfig, ES5506, tag, owner, clock) { } @@ -324,7 +324,7 @@ void es550x_device::device_stop() m_eslog = nullptr; } - #if MAKE_WAVS +#if ES5506_MAKE_WAVS { int i; @@ -334,13 +334,13 @@ void es550x_device::device_stop() wav_close(es5506[i].m_wavraw); } } - #endif +#endif } -const device_type ES5505 = device_creator; +DEFINE_DEVICE_TYPE(ES5505, es5505_device, "es5505", "Ensoniq ES5505") es5505_device::es5505_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : es550x_device(mconfig, ES5505, "ES5505", tag, owner, clock, "es5505", __FILE__) + : es550x_device(mconfig, ES5505, tag, owner, clock) { } @@ -2236,7 +2236,7 @@ void es550x_device::sound_stream_update(sound_stream &stream, stream_sample_t ** void es5506_device::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) { -#if MAKE_WAVS +#if ES5506_MAKE_WAVS /* start the logging once we have a sample rate */ if (m_sample_rate) { @@ -2253,7 +2253,7 @@ void es5506_device::sound_stream_update(sound_stream &stream, stream_sample_t ** generate_samples(outputs, offset, length); -#if MAKE_WAVS +#if ES5506_MAKE_WAVS /* log the raw data */ if (m_wavraw) { /* determine left/right source data */ @@ -2282,7 +2282,7 @@ void es5506_device::sound_stream_update(sound_stream &stream, stream_sample_t ** void es5505_device::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) { -#if MAKE_WAVS +#if ES5506_MAKE_WAVS /* start the logging once we have a sample rate */ if (m_sample_rate) { @@ -2299,7 +2299,7 @@ void es5505_device::sound_stream_update(sound_stream &stream, stream_sample_t ** generate_samples(outputs, offset, length); -#if MAKE_WAVS +#if ES5506_MAKE_WAVS /* log the raw data */ if (m_wavraw) { /* determine left/right source data */ diff --git a/src/devices/sound/es5506.h b/src/devices/sound/es5506.h index 4c367be82b8..e83004e191c 100644 --- a/src/devices/sound/es5506.h +++ b/src/devices/sound/es5506.h @@ -7,12 +7,12 @@ * **********************************************************************************************/ -#pragma once +#ifndef MAME_SOUND_ES5506_H +#define MAME_SOUND_ES5506_H -#ifndef __ES5506_H__ -#define __ES5506_H__ +#pragma once -#define MAKE_WAVS 0 +#define ES5506_MAKE_WAVS 0 #define MCFG_ES5506_REGION0(_region) \ es5506_device::set_region0(*device, _region); @@ -52,82 +52,54 @@ devcb = &es5505_device::set_read_port_callback(*device, DEVCB_##_devcb); -/* struct describing a single playing voice */ - -struct es550x_voice -{ - es550x_voice(): - control(0), - freqcount(0), - start(0), - lvol(0), - end(0), - lvramp(0), - accum(0), - rvol(0), - rvramp(0), - ecount(0), - k2(0), - k2ramp(0), - k1(0), - k1ramp(0), - o4n1(0), - o3n1(0), - o3n2(0), - o2n1(0), - o2n2(0), - o1n1(0), - exbank(0), - index(0), - filtcount(0), - accum_mask(0) {} - - /* external state */ - uint32_t control; /* control register */ - uint32_t freqcount; /* frequency count register */ - uint32_t start; /* start register */ - uint32_t lvol; /* left volume register */ - uint32_t end; /* end register */ - uint32_t lvramp; /* left volume ramp register */ - uint32_t accum; /* accumulator register */ - uint32_t rvol; /* right volume register */ - uint32_t rvramp; /* right volume ramp register */ - uint32_t ecount; /* envelope count register */ - uint32_t k2; /* k2 register */ - uint32_t k2ramp; /* k2 ramp register */ - uint32_t k1; /* k1 register */ - uint32_t k1ramp; /* k1 ramp register */ - int32_t o4n1; /* filter storage O4(n-1) */ - int32_t o3n1; /* filter storage O3(n-1) */ - int32_t o3n2; /* filter storage O3(n-2) */ - int32_t o2n1; /* filter storage O2(n-1) */ - int32_t o2n2; /* filter storage O2(n-2) */ - int32_t o1n1; /* filter storage O1(n-1) */ - uint32_t exbank; /* external address bank */ - - /* internal state */ - uint8_t index; /* index of this voice */ - uint8_t filtcount; /* filter count */ - uint32_t accum_mask; -}; - -class es550x_device : public device_t, - public device_sound_interface +class es550x_device : public device_t, public device_sound_interface { public: - es550x_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - ~es550x_device() {} - static void set_region0(device_t &device, const char *region0) { downcast(device).m_region0 = region0; } static void set_region1(device_t &device, const char *region1) { downcast(device).m_region1 = region1; } static void set_region2(device_t &device, const char *region2) { downcast(device).m_region2 = region2; } static void set_region3(device_t &device, const char *region3) { downcast(device).m_region3 = region3; } static void set_channels(device_t &device, int channels) { downcast(device).m_channels = channels; } - template static devcb_base &set_irq_callback(device_t &device, _Object object) { return downcast(device).m_irq_cb.set_callback(object); } - template static devcb_base &set_read_port_callback(device_t &device, _Object object) { return downcast(device).m_read_port_cb.set_callback(object); } - + template static devcb_base &set_irq_callback(device_t &device, Object &&cb) { return downcast(device).m_irq_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_read_port_callback(device_t &device, Object &&cb) { return downcast(device).m_read_port_cb.set_callback(std::forward(cb)); } protected: + // struct describing a single playing voice + struct es550x_voice + { + es550x_voice() { } + + // external state + uint32_t control = 0; // control register + uint32_t freqcount = 0; // frequency count register + uint32_t start = 0; // start register + uint32_t lvol = 0; // left volume register + uint32_t end = 0; // end register + uint32_t lvramp = 0; // left volume ramp register + uint32_t accum = 0; // accumulator register + uint32_t rvol = 0; // right volume register + uint32_t rvramp = 0; // right volume ramp register + uint32_t ecount = 0; // envelope count register + uint32_t k2 = 0; // k2 register + uint32_t k2ramp = 0; // k2 ramp register + uint32_t k1 = 0; // k1 register + uint32_t k1ramp = 0; // k1 ramp register + int32_t o4n1 = 0; // filter storage O4(n-1) + int32_t o3n1 = 0; // filter storage O3(n-1) + int32_t o3n2 = 0; // filter storage O3(n-2) + int32_t o2n1 = 0; // filter storage O2(n-1) + int32_t o2n2 = 0; // filter storage O2(n-2) + int32_t o1n1 = 0; // filter storage O1(n-1) + uint32_t exbank = 0; // external address bank + + // internal state + uint8_t index = 0; // index of this voice + uint8_t filtcount = 0; // filter count + uint32_t accum_mask = 0; + }; + + es550x_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_stop() override; @@ -136,6 +108,14 @@ protected: // sound stream update overrides virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; + void update_irq_state(); + void update_internal_irq_state(); + void compute_tables(); + + void generate_dummy(es550x_voice *voice, uint16_t *base, int32_t *lbuffer, int32_t *rbuffer, int samples); + void generate_ulaw(es550x_voice *voice, uint16_t *base, int32_t *lbuffer, int32_t *rbuffer, int samples); + void generate_pcm(es550x_voice *voice, uint16_t *base, int32_t *lbuffer, int32_t *rbuffer, int samples); + // internal state sound_stream *m_stream; /* which stream are we using */ int m_sample_rate; /* current sample rate */ @@ -159,9 +139,9 @@ protected: std::unique_ptr m_ulaw_lookup; std::unique_ptr m_volume_lookup; - #if MAKE_WAVS +#if ES5506_MAKE_WAVS void * m_wavraw; /* raw waveform */ - #endif +#endif FILE *m_eslog; @@ -172,14 +152,6 @@ protected: int m_channels; /* number of output channels: 1 .. 6 */ devcb_write_line m_irq_cb; /* irq callback */ devcb_read16 m_read_port_cb; /* input port read */ - - void update_irq_state(); - void update_internal_irq_state(); - void compute_tables(); - - void generate_dummy(es550x_voice *voice, uint16_t *base, int32_t *lbuffer, int32_t *rbuffer, int samples); - void generate_ulaw(es550x_voice *voice, uint16_t *base, int32_t *lbuffer, int32_t *rbuffer, int samples); - void generate_pcm(es550x_voice *voice, uint16_t *base, int32_t *lbuffer, int32_t *rbuffer, int samples); }; @@ -212,7 +184,7 @@ private: inline uint32_t reg_read_test(es550x_voice *voice, offs_t offset); }; -extern const device_type ES5506; +DECLARE_DEVICE_TYPE(ES5506, es5506_device) class es5505_device : public es550x_device @@ -242,7 +214,7 @@ private: inline uint16_t reg_read_test(es550x_voice *voice, offs_t offset); }; -extern const device_type ES5505; +DECLARE_DEVICE_TYPE(ES5505, es5505_device) -#endif /* __ES5506_H__ */ +#endif // MAME_SOUND_ES5506_H diff --git a/src/devices/sound/es8712.cpp b/src/devices/sound/es8712.cpp index fe1e94fb01e..f0d65a7e75c 100644 --- a/src/devices/sound/es8712.cpp +++ b/src/devices/sound/es8712.cpp @@ -26,14 +26,14 @@ /* step size index shift table */ -static const int index_shift[8] = { -1, -1, -1, -1, 2, 4, 6, 8 }; +static constexpr int index_shift[8] = { -1, -1, -1, -1, 2, 4, 6, 8 }; /* lookup table for the precomputed difference */ static int diff_lookup[49*16]; // device type definition -const device_type ES8712 = device_creator; +DEFINE_DEVICE_TYPE(ES8712, es8712_device, "es8712", "Excellent Systems ES8712 ADPCM") //************************************************************************** @@ -45,7 +45,7 @@ const device_type ES8712 = device_creator; //------------------------------------------------- es8712_device::es8712_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, ES8712, "ES8712", tag, owner, clock, "es8712", __FILE__), + : device_t(mconfig, ES8712, tag, owner, clock), device_sound_interface(mconfig, *this), m_rom(*this, DEVICE_SELF), m_reset_handler(*this), diff --git a/src/devices/sound/es8712.h b/src/devices/sound/es8712.h index 4daed51294f..112846fe98b 100644 --- a/src/devices/sound/es8712.h +++ b/src/devices/sound/es8712.h @@ -2,10 +2,10 @@ // copyright-holders:Quench /* An interface for the ES8712 ADPCM chip */ -#pragma once +#ifndef MAME_SOUND_ES8712_H +#define MAME_SOUND_ES8712_H -#ifndef __ES8712_H__ -#define __ES8712_H__ +#pragma once //************************************************************************** // INTERFACE CONFIGURATION MACROS @@ -26,15 +26,20 @@ // ======================> es8712_device -class es8712_device : public device_t, - public device_sound_interface +class es8712_device : public device_t, public device_sound_interface { public: es8712_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~es8712_device() { } // static configuration - template static devcb_base &set_reset_handler(device_t &device, _Object object) { return downcast(device).m_reset_handler.set_callback(object); } + template static devcb_base &set_reset_handler(device_t &device, Object &&cb) { return downcast(device).m_reset_handler.set_callback(std::forward(cb)); } + + DECLARE_WRITE8_MEMBER(write); + DECLARE_READ8_MEMBER(read); + + void play(); + void set_bank_base(int base); + void set_frequency(int frequency); protected: // device-level overrides @@ -44,21 +49,11 @@ protected: // sound stream update overrides virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; -public: - DECLARE_WRITE8_MEMBER(write); - DECLARE_READ8_MEMBER(read); - -public: - void play(); - void set_bank_base(int base); - void set_frequency(int frequency); - private: void compute_tables(); void generate_adpcm(stream_sample_t *buffer, int samples); void es8712_state_save_register(); -private: required_region_ptr m_rom; devcb_write_line m_reset_handler; @@ -79,7 +74,6 @@ private: sound_stream *m_stream; /* which stream are we playing on? */ }; -extern const device_type ES8712; - +DECLARE_DEVICE_TYPE(ES8712, es8712_device) -#endif /* __ES8712_H__ */ +#endif // MAME_SOUND_ES8712_H diff --git a/src/devices/sound/esqpump.cpp b/src/devices/sound/esqpump.cpp index a6a5cbb3c2b..f11356d56f8 100644 --- a/src/devices/sound/esqpump.cpp +++ b/src/devices/sound/esqpump.cpp @@ -11,16 +11,17 @@ #include "emu.h" #include "sound/esqpump.h" -const device_type ESQ_5505_5510_PUMP = device_creator; +DEFINE_DEVICE_TYPE(ESQ_5505_5510_PUMP, esq_5505_5510_pump_device, "esq_5505_5510_pump", "Ensoniq 5505/5506 to 5510 interface") -esq_5505_5510_pump::esq_5505_5510_pump(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, ESQ_5505_5510_PUMP, "ESQ_5505_5510_PUMP", tag, owner, clock, "esq_5505_5510_pump", __FILE__), - device_sound_interface(mconfig, *this), m_stream(nullptr), m_timer(nullptr), m_otis(nullptr), m_esp(nullptr), - m_esp_halted(true), ticks_spent_processing(0), samples_processed(0) +esq_5505_5510_pump_device::esq_5505_5510_pump_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, ESQ_5505_5510_PUMP, tag, owner, clock) + , device_sound_interface(mconfig, *this) + , m_stream(nullptr), m_timer(nullptr), m_otis(nullptr), m_esp(nullptr) + , m_esp_halted(true), ticks_spent_processing(0), samples_processed(0) { } -void esq_5505_5510_pump::device_start() +void esq_5505_5510_pump_device::device_start() { logerror("Clock = %d\n", clock()); @@ -48,12 +49,12 @@ void esq_5505_5510_pump::device_start() #endif } -void esq_5505_5510_pump::device_stop() +void esq_5505_5510_pump_device::device_stop() { m_timer->enable(false); } -void esq_5505_5510_pump::device_reset() +void esq_5505_5510_pump_device::device_reset() { int64_t nsec_per_sample = 100 * 16 * 21; attotime sample_time(0, 1000000000 * nsec_per_sample); @@ -63,7 +64,7 @@ void esq_5505_5510_pump::device_reset() m_timer->enable(true); } -void esq_5505_5510_pump::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) +void esq_5505_5510_pump_device::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) { if (samples != 1) { logerror("Pump: request for %d samples\n", samples); @@ -165,7 +166,7 @@ void esq_5505_5510_pump::sound_stream_update(sound_stream &stream, stream_sample #endif } -void esq_5505_5510_pump::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) { +void esq_5505_5510_pump_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) { // ecery time there's a new sample period, update the stream! m_stream->update(); } diff --git a/src/devices/sound/esqpump.h b/src/devices/sound/esqpump.h index b904a023c3c..637ee8ab618 100644 --- a/src/devices/sound/esqpump.h +++ b/src/devices/sound/esqpump.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Christian Brunschen -#pragma once +#ifndef MAME_SOUND_ESQPUMP_H +#define MAME_SOUND_ESQPUMP_H -#ifndef _ESQPUMP_H_ -#define _ESQPUMP_H_ +#pragma once #include "sound/es5506.h" #include "cpu/es5510/es5510.h" @@ -13,11 +13,10 @@ #define PUMP_FAKE_ESP_PROCESSING 0 #define PUMP_REPLACE_ESP_PROGRAM 0 -class esq_5505_5510_pump : public device_t, - public device_sound_interface +class esq_5505_5510_pump_device : public device_t, public device_sound_interface { public: - esq_5505_5510_pump(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + esq_5505_5510_pump_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); void set_otis(es5505_device *otis) { m_otis = otis; } void set_esp(es5510_device *esp) { m_esp = esp; } @@ -118,6 +117,6 @@ private: #endif }; -extern const device_type ESQ_5505_5510_PUMP; +DECLARE_DEVICE_TYPE(ESQ_5505_5510_PUMP, esq_5505_5510_pump_device) -#endif +#endif // MAME_SOUND_ESQPUMP_H diff --git a/src/devices/sound/flt_rc.cpp b/src/devices/sound/flt_rc.cpp index 56585593721..361af1a74a8 100644 --- a/src/devices/sound/flt_rc.cpp +++ b/src/devices/sound/flt_rc.cpp @@ -5,7 +5,7 @@ // device type definition -const device_type FILTER_RC = device_creator; +DEFINE_DEVICE_TYPE(FILTER_RC, filter_rc_device, "filter_rc", "RC Filter") //************************************************************************** @@ -17,12 +17,12 @@ const device_type FILTER_RC = device_creator; //------------------------------------------------- filter_rc_device::filter_rc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, FILTER_RC, "RC Filter", tag, owner, clock, "filter_rc", __FILE__), + : device_t(mconfig, FILTER_RC, tag, owner, clock), device_sound_interface(mconfig, *this), m_stream(nullptr), m_k(0), m_memory(0), - m_type(FLT_RC_LOWPASS), + m_type(LOWPASS), m_R1(1), m_R2(1), m_R3(1), @@ -62,15 +62,15 @@ void filter_rc_device::sound_stream_update(sound_stream &stream, stream_sample_t switch (m_type) { - case FLT_RC_LOWPASS: + case LOWPASS: while (samples--) { memory += ((*src++ - memory) * m_k) / 0x10000; *dst++ = memory; } break; - case FLT_RC_HIGHPASS: - case FLT_RC_AC: + case HIGHPASS: + case AC: while (samples--) { *dst++ = *src - memory; @@ -88,7 +88,7 @@ void filter_rc_device::recalc() switch (m_type) { - case FLT_RC_LOWPASS: + case LOWPASS: if (m_C == 0.0) { /* filter disabled */ @@ -97,8 +97,8 @@ void filter_rc_device::recalc() } Req = (m_R1 * (m_R2 + m_R3)) / (m_R1 + m_R2 + m_R3); break; - case FLT_RC_HIGHPASS: - case FLT_RC_AC: + case HIGHPASS: + case AC: if (m_C == 0.0) { /* filter disabled */ diff --git a/src/devices/sound/flt_rc.h b/src/devices/sound/flt_rc.h index e34b0811261..7a7851393bf 100644 --- a/src/devices/sound/flt_rc.h +++ b/src/devices/sound/flt_rc.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Derrick Renaud, Couriersud -#pragma once +#ifndef MAME_SOUND_FLT_RC_H +#define MAME_SOUND_FLT_RC_H -#ifndef __FLT_RC_H__ -#define __FLT_RC_H__ +#pragma once #include "machine/rescap.h" @@ -53,25 +53,26 @@ MCFG_DEVICE_REPLACE(_tag, FILTER_RC, _clock) #define MCFG_FILTER_RC_AC() \ - filter_rc_device::static_set_rc(*device, FLT_RC_AC, 10000, 0, 0, CAP_U(1)); + filter_rc_device::static_set_rc(*device, filter_rc_device::AC, 10000, 0, 0, CAP_U(1)); //************************************************************************** // TYPE DEFINITIONS //************************************************************************** -#define FLT_RC_LOWPASS 0 -#define FLT_RC_HIGHPASS 1 -#define FLT_RC_AC 2 - // ======================> filter_rc_device -class filter_rc_device : public device_t, - public device_sound_interface +class filter_rc_device : public device_t, public device_sound_interface { public: + enum + { + LOWPASS = 0, + HIGHPASS = 1, + AC = 2 + }; + filter_rc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~filter_rc_device() { } // static configuration static void static_set_rc(device_t &device, int type, double R1, double R2, double R3, double C); @@ -99,6 +100,6 @@ private: double m_C; }; -extern const device_type FILTER_RC; +DECLARE_DEVICE_TYPE(FILTER_RC, filter_rc_device) -#endif /* __FLT_RC_H__ */ +#endif // MAME_SOUND_FLT_RC_H diff --git a/src/devices/sound/flt_vol.cpp b/src/devices/sound/flt_vol.cpp index f6c4ea1564e..eec55c413f8 100644 --- a/src/devices/sound/flt_vol.cpp +++ b/src/devices/sound/flt_vol.cpp @@ -5,14 +5,14 @@ // device type definition -const device_type FILTER_VOLUME = device_creator; +DEFINE_DEVICE_TYPE(FILTER_VOLUME, filter_volume_device, "filter_volume", "Volume Filter") //------------------------------------------------- // filter_volume_device - constructor //------------------------------------------------- filter_volume_device::filter_volume_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, FILTER_VOLUME, "Volume Filter", tag, owner, clock, "filter_volume", __FILE__), + : device_t(mconfig, FILTER_VOLUME, tag, owner, clock), device_sound_interface(mconfig, *this), m_stream(nullptr), m_gain(0) @@ -49,5 +49,5 @@ void filter_volume_device::sound_stream_update(sound_stream &stream, stream_samp void filter_volume_device::flt_volume_set_volume(float volume) { m_stream->update(); - m_gain = (int)(volume * 256); + m_gain = int(volume * 256); } diff --git a/src/devices/sound/flt_vol.h b/src/devices/sound/flt_vol.h index 08f49607158..b0f9234d1ae 100644 --- a/src/devices/sound/flt_vol.h +++ b/src/devices/sound/flt_vol.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Derrick Renaud, Couriersud -#pragma once +#ifndef MAME_SOUND_FLT_VOL_H +#define MAME_SOUND_FLT_VOL_H -#ifndef __FLT_VOL_H__ -#define __FLT_VOL_H__ +#pragma once @@ -23,12 +23,10 @@ // ======================> filter_volume_device -class filter_volume_device : public device_t, - public device_sound_interface +class filter_volume_device : public device_t, public device_sound_interface { public: filter_volume_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~filter_volume_device() { } void flt_volume_set_volume(float volume); @@ -44,7 +42,7 @@ private: int m_gain; }; -extern const device_type FILTER_VOLUME; +DECLARE_DEVICE_TYPE(FILTER_VOLUME, filter_volume_device) -#endif /* __FLT_VOL_H__ */ +#endif // MAME_SOUND_FLT_VOL_H diff --git a/src/devices/sound/fm.cpp b/src/devices/sound/fm.cpp index e9910028bb6..9213e230b88 100644 --- a/src/devices/sound/fm.cpp +++ b/src/devices/sound/fm.cpp @@ -1,7 +1,5 @@ // license:GPL-2.0+ // copyright-holders:Jarek Burczynski,Tatsuyuki Satoh -#define YM2610B_WARNING - /* ** ** File: fm.c -- software implementation of Yamaha FM sound generator @@ -114,6 +112,8 @@ /************************************************************************/ #include "emu.h" + +#define YM2610B_WARNING #include "fm.h" @@ -122,6 +122,20 @@ #include "ymdeltat.h" #endif + +#if BUILD_YM2203 +#include "2203intf.h" +#endif /* BUILD_YM2203 */ + +#if BUILD_YM2608 +#include "2608intf.h" +#endif /* BUILD_YM2608 */ + +#if (BUILD_YM2610||BUILD_YM2610B) +#include "2610intf.h" +#endif /* (BUILD_YM2610||BUILD_YM2610B) */ + + /* shared function building option */ #define BUILD_OPN (BUILD_YM2203||BUILD_YM2608||BUILD_YM2610||BUILD_YM2610B) #define BUILD_OPN_PRESCALER (BUILD_YM2203||BUILD_YM2608) @@ -589,7 +603,6 @@ struct FM_CH struct FM_ST { device_t *device; - void * param; /* this chip parameter */ int clock; /* master clock (Hz) */ int rate; /* sampling rate (Hz) */ double freqbase; /* frequency base */ @@ -702,7 +715,7 @@ static inline void FM_STATUS_SET(FM_ST *ST,int flag) { ST->irq = 1; /* callback user interrupt handler (IRQ is OFF to ON) */ - if(ST->IRQ_Handler) (ST->IRQ_Handler)(ST->param,1); + if(ST->IRQ_Handler) (ST->IRQ_Handler)(ST->device,1); } } @@ -715,7 +728,7 @@ static inline void FM_STATUS_RESET(FM_ST *ST,int flag) { ST->irq = 0; /* callback user interrupt handler (IRQ is ON to OFF) */ - if(ST->IRQ_Handler) (ST->IRQ_Handler)(ST->param,0); + if(ST->IRQ_Handler) (ST->IRQ_Handler)(ST->device,0); } } @@ -729,7 +742,7 @@ static inline void FM_IRQMASK_SET(FM_ST *ST,int flag) } /* OPN Mode Register Write */ -static inline void set_timers( FM_ST *ST, void *n, int v ) +static inline void set_timers( FM_ST *ST, device_t *n, int v ) { /* b7 = CSM MODE */ /* b6 = 3 slot mode */ @@ -793,7 +806,7 @@ static inline void TimerAOver(FM_ST *ST) if(ST->mode & 0x04) FM_STATUS_SET(ST,0x01); /* clear or reload the counter */ ST->TAC = (1024-ST->TA); - if (ST->timer_handler) (ST->timer_handler)(ST->param,0,ST->TAC * ST->timer_prescaler,ST->clock); + if (ST->timer_handler) (ST->timer_handler)(ST->device,0,ST->TAC * ST->timer_prescaler,ST->clock); } /* Timer B Overflow */ static inline void TimerBOver(FM_ST *ST) @@ -802,7 +815,7 @@ static inline void TimerBOver(FM_ST *ST) if(ST->mode & 0x08) FM_STATUS_SET(ST,0x02); /* clear or reload the counter */ ST->TBC = ( 256-ST->TB)<<4; - if (ST->timer_handler) (ST->timer_handler)(ST->param,1,ST->TBC * ST->timer_prescaler,ST->clock); + if (ST->timer_handler) (ST->timer_handler)(ST->device,1,ST->TBC * ST->timer_prescaler,ST->clock); } @@ -1744,7 +1757,7 @@ static void OPNSetPres(FM_OPN *OPN, int pres, int timer_prescaler, int SSGpres) OPN->ST.timer_prescaler = timer_prescaler; /* SSG part prescaler set */ - if( SSGpres ) (*OPN->ST.SSG->set_clock)( OPN->ST.param, OPN->ST.clock * 2 / SSGpres ); + if( SSGpres ) (*OPN->ST.SSG->set_clock)( OPN->ST.device, OPN->ST.clock * 2 / SSGpres ); /* make time tables */ init_timetables( &OPN->ST, dt_tab ); @@ -1814,7 +1827,7 @@ static void OPNWriteMode(FM_OPN *OPN, int r, int v) OPN->ST.TB = v; break; case 0x27: /* mode, timer control */ - set_timers( &(OPN->ST),OPN->ST.param,v ); + set_timers( &(OPN->ST),OPN->ST.device,v ); break; case 0x28: /* key on / off */ c = v & 0x03; @@ -2088,17 +2101,19 @@ static void OPNPrescaler_w(FM_OPN *OPN , int addr, int pre_divider) /*****************************************************************************/ /* here's the virtual YM2203(OPN) */ -struct YM2203 +namespace { +struct ym2203_state { uint8_t REGS[256]; /* registers */ FM_OPN OPN; /* OPN state */ FM_CH CH[3]; /* channel state */ }; +} // anonymous namespace /* Generate samples for one of the YM2203s */ void ym2203_update_one(void *chip, FMSAMPLE *buffer, int length) { - YM2203 *F2203 = (YM2203 *)chip; + ym2203_state *F2203 = (ym2203_state *)chip; FM_OPN *OPN = &F2203->OPN; int i; FMSAMPLE *buf = buffer; @@ -2184,13 +2199,13 @@ void ym2203_update_one(void *chip, FMSAMPLE *buffer, int length) void ym2203_reset_chip(void *chip) { int i; - YM2203 *F2203 = (YM2203 *)chip; + ym2203_state *F2203 = (ym2203_state *)chip; FM_OPN *OPN = &F2203->OPN; /* Reset Prescaler */ OPNPrescaler_w(OPN, 0 , 1 ); /* reset SSG section */ - (*OPN->ST.SSG->reset)(OPN->ST.param); + (*OPN->ST.SSG->reset)(OPN->ST.device); /* status clear */ FM_IRQMASK_SET(&OPN->ST,0x03); FM_BUSY_CLEAR(&OPN->ST); @@ -2212,7 +2227,7 @@ void ym2203_postload(void *chip) { if (chip) { - YM2203 *F2203 = (YM2203 *)chip; + ym2203_state *F2203 = (ym2203_state *)chip; int r; /* prescaler */ @@ -2221,8 +2236,8 @@ void ym2203_postload(void *chip) /* SSG registers */ for(r=0;r<16;r++) { - (*F2203->OPN.ST.SSG->write)(F2203->OPN.ST.param,0,r); - (*F2203->OPN.ST.SSG->write)(F2203->OPN.ST.param,1,F2203->REGS[r]); + (*F2203->OPN.ST.SSG->write)(F2203->OPN.ST.device,0,r); + (*F2203->OPN.ST.SSG->write)(F2203->OPN.ST.device,1,F2203->REGS[r]); } /* OPN registers */ @@ -2240,7 +2255,7 @@ void ym2203_postload(void *chip) } } -static void YM2203_save_state(YM2203 *F2203, device_t *device) +static void YM2203_save_state(ym2203_state *F2203, device_t *device) { device->save_item(NAME(F2203->REGS)); FMsave_state_st(device,&F2203->OPN.ST); @@ -2257,13 +2272,12 @@ static void YM2203_save_state(YM2203 *F2203, device_t *device) 'clock' is the chip clock in Hz 'rate' is sampling rate */ -void * ym2203_init(void *param, device_t *device, int clock, int rate, - FM_TIMERHANDLER timer_handler,FM_IRQHANDLER IRQHandler, const ssg_callbacks *ssg) +void * ym2203_init(device_t *device, int clock, int rate, FM_TIMERHANDLER timer_handler,FM_IRQHANDLER IRQHandler, const ssg_callbacks *ssg) { - YM2203 *F2203; + ym2203_state *F2203; /* allocate ym2203 state space */ - F2203 = auto_alloc_clear(device->machine(), ()); + F2203 = auto_alloc_clear(device->machine(), ()); if( !init_tables() ) { @@ -2271,7 +2285,6 @@ void * ym2203_init(void *param, device_t *device, int clock, int rate, return nullptr; } - F2203->OPN.ST.param = param; F2203->OPN.type = TYPE_YM2203; F2203->OPN.P_CH = F2203->CH; F2203->OPN.ST.device = device; @@ -2290,7 +2303,7 @@ void * ym2203_init(void *param, device_t *device, int clock, int rate, void ym2203_clock_changed(void *chip, int clock, int rate) { - YM2203 *FM2203 = (YM2203 *)chip; + ym2203_state *FM2203 = (ym2203_state *)chip; FM2203->OPN.ST.clock = clock; FM2203->OPN.ST.rate = rate; @@ -2299,7 +2312,7 @@ void ym2203_clock_changed(void *chip, int clock, int rate) /* shut down emulator */ void ym2203_shutdown(void *chip) { - YM2203 *FM2203 = (YM2203 *)chip; + ym2203_state *FM2203 = (ym2203_state *)chip; FMCloseTable(); auto_free(FM2203->OPN.ST.device->machine(), FM2203); @@ -2308,7 +2321,7 @@ void ym2203_shutdown(void *chip) /* YM2203 I/O interface */ int ym2203_write(void *chip,int a,uint8_t v) { - YM2203 *F2203 = (YM2203 *)chip; + ym2203_state *F2203 = (ym2203_state *)chip; FM_OPN *OPN = &F2203->OPN; if( !(a&1) ) @@ -2316,7 +2329,7 @@ int ym2203_write(void *chip,int a,uint8_t v) OPN->ST.address = (v &= 0xff); /* Write register to SSG emulator */ - if( v < 16 ) (*OPN->ST.SSG->write)(OPN->ST.param,0,v); + if( v < 16 ) (*OPN->ST.SSG->write)(OPN->ST.device,0,v); /* prescaler select : 2d,2e,2f */ if( v >= 0x2d && v <= 0x2f ) @@ -2330,15 +2343,15 @@ int ym2203_write(void *chip,int a,uint8_t v) { case 0x00: /* 0x00-0x0f : SSG section */ /* Write data to SSG emulator */ - (*OPN->ST.SSG->write)(OPN->ST.param,a,v); + (*OPN->ST.SSG->write)(OPN->ST.device,a,v); break; case 0x20: /* 0x20-0x2f : Mode section */ - ym2203_update_req(OPN->ST.param); + ym2203_device::update_request(OPN->ST.device); /* write register */ OPNWriteMode(OPN,addr,v); break; default: /* 0x30-0xff : OPN section */ - ym2203_update_req(OPN->ST.param); + ym2203_device::update_request(OPN->ST.device); /* write register */ OPNWriteReg(OPN,addr,v); } @@ -2349,7 +2362,7 @@ int ym2203_write(void *chip,int a,uint8_t v) uint8_t ym2203_read(void *chip,int a) { - YM2203 *F2203 = (YM2203 *)chip; + ym2203_state *F2203 = (ym2203_state *)chip; int addr = F2203->OPN.ST.address; uint8_t ret = 0; @@ -2359,14 +2372,14 @@ uint8_t ym2203_read(void *chip,int a) } else { /* data port (only SSG) */ - if( addr < 16 ) ret = (*F2203->OPN.ST.SSG->read)(F2203->OPN.ST.param); + if( addr < 16 ) ret = (*F2203->OPN.ST.SSG->read)(F2203->OPN.ST.device); } return ret; } int ym2203_timer_over(void *chip,int c) { - YM2203 *F2203 = (YM2203 *)chip; + ym2203_state *F2203 = (ym2203_state *)chip; if( c ) { /* Timer B */ @@ -2374,7 +2387,7 @@ int ym2203_timer_over(void *chip,int c) } else { /* Timer A */ - ym2203_update_req(F2203->OPN.ST.param); + ym2203_device::update_request(F2203->OPN.ST.device); /* timer update */ TimerAOver( &(F2203->OPN.ST) ); /* CSM mode key,TL control */ @@ -2391,6 +2404,14 @@ int ym2203_timer_over(void *chip,int c) #if (BUILD_YM2608||BUILD_YM2610||BUILD_YM2610B) +namespace { +/**** YM2610 ADPCM defines ****/ +constexpr unsigned ADPCM_SHIFT = 16; /* frequency step rate */ +constexpr unsigned ADPCMA_ADDRESS_SHIFT = 8; /* adpcm A address shift */ + +/* speedup purposes only */ +static int jedi_table[ 49*16 ]; + /* ADPCM type A channel struct */ struct ADPCM_CH { @@ -2412,7 +2433,7 @@ struct ADPCM_CH }; /* here's the virtual YM2610 */ -struct YM2610 +struct ym2610_state { uint8_t REGS[512]; /* registers */ FM_OPN OPN; /* OPN state */ @@ -2432,236 +2453,231 @@ struct YM2610 uint8_t irqmask; /* YM2608 only */ device_t *device; -}; - -/* here is the virtual YM2608 */ -typedef YM2610 YM2608; - - -/**** YM2610 ADPCM defines ****/ -#define ADPCM_SHIFT (16) /* frequency step rate */ -#define ADPCMA_ADDRESS_SHIFT 8 /* adpcm A address shift */ - -/* Algorithm and tables verified on real YM2608 and YM2610 */ - -/* usual ADPCM table (16 * 1.1^N) */ -static const int steps[49] = -{ - 16, 17, 19, 21, 23, 25, 28, - 31, 34, 37, 41, 45, 50, 55, - 60, 66, 73, 80, 88, 97, 107, - 118, 130, 143, 157, 173, 190, 209, - 230, 253, 279, 307, 337, 371, 408, - 449, 494, 544, 598, 658, 724, 796, - 876, 963, 1060, 1166, 1282, 1411, 1552 -}; - -/* different from the usual ADPCM table */ -static const int step_inc[8] = { -1*16, -1*16, -1*16, -1*16, 2*16, 5*16, 7*16, 9*16 }; - -/* speedup purposes only */ -static int jedi_table[ 49*16 ]; - -static void Init_ADPCMATable(void) -{ - int step, nib; + /* different from the usual ADPCM table */ + static constexpr int step_inc[8] = { -1*16, -1*16, -1*16, -1*16, 2*16, 5*16, 7*16, 9*16 }; - for (step = 0; step < 49; step++) + /* ADPCM A (Non control type) : calculate one channel output */ + inline void ADPCMA_calc_chan( ADPCM_CH *ch ) { - /* loop over all nibbles and compute the difference */ - for (nib = 0; nib < 16; nib++) - { - int value = (2*(nib & 0x07) + 1) * steps[step] / 8; - jedi_table[step*16 + nib] = (nib&0x08) ? -value : value; - } - } -} - -/* ADPCM A (Non control type) : calculate one channel output */ -static inline void ADPCMA_calc_chan( YM2610 *F2610, ADPCM_CH *ch ) -{ - uint32_t step; - uint8_t data; - + uint32_t step; + uint8_t data; - ch->now_step += ch->step; - if ( ch->now_step >= (1<now_step >> ADPCM_SHIFT; - ch->now_step &= (1< instead of == */ - /* YM2610 checks lower 20 bits only, the 4 MSB bits are sample bank */ - /* Here we use 1<<21 to compensate for nibble calculations */ - if ( (ch->now_addr & ((1<<21)-1)) == ((ch->end<<1) & ((1<<21)-1)) ) - { - ch->flag = 0; - F2610->adpcm_arrivedEndAddress |= ch->flagMask; - return; - } + ch->now_step += ch->step; + if ( ch->now_step >= (1<now_step >> ADPCM_SHIFT; + ch->now_step &= (1< instead of == */ + /* YM2610 checks lower 20 bits only, the 4 MSB bits are sample bank */ + /* Here we use 1<<21 to compensate for nibble calculations */ + + if ( (ch->now_addr & ((1<<21)-1)) == ((ch->end<<1) & ((1<<21)-1)) ) + { + ch->flag = 0; + adpcm_arrivedEndAddress |= ch->flagMask; + return; + } #if 0 - if ( ch->now_addr > (F2610->pcmsizeA<<1) ) - { - LOG(LOG_WAR,("YM2610: Attempting to play past adpcm rom size!\n" )); - return; - } + if ( ch->now_addr > (pcmsizeA<<1) ) + { + LOG(LOG_WAR,("YM2610: Attempting to play past adpcm rom size!\n" )); + return; + } #endif - if ( ch->now_addr&1 ) - data = ch->now_data & 0x0f; - else - { - ch->now_data = *(F2610->pcmbuf+(ch->now_addr>>1)); - data = (ch->now_data >> 4) & 0x0f; - } + if ( ch->now_addr&1 ) + data = ch->now_data & 0x0f; + else + { + ch->now_data = *(pcmbuf+(ch->now_addr>>1)); + data = (ch->now_data >> 4) & 0x0f; + } - ch->now_addr++; + ch->now_addr++; - ch->adpcm_acc += jedi_table[ch->adpcm_step + data]; + ch->adpcm_acc += jedi_table[ch->adpcm_step + data]; - /* extend 12-bit signed int */ - if (ch->adpcm_acc & ~0x7ff) - ch->adpcm_acc |= ~0xfff; - else - ch->adpcm_acc &= 0xfff; - - ch->adpcm_step += step_inc[data & 7]; - Limit( ch->adpcm_step, 48*16, 0*16 ); + /* extend 12-bit signed int */ + if (ch->adpcm_acc & ~0x7ff) + ch->adpcm_acc |= ~0xfff; + else + ch->adpcm_acc &= 0xfff; - }while(--step); + ch->adpcm_step += step_inc[data & 7]; + Limit( ch->adpcm_step, 48*16, 0*16 ); - /* calc pcm * volume data */ - ch->adpcm_out = ((ch->adpcm_acc * ch->vol_mul) >> ch->vol_shift) & ~3; /* multiply, shift and mask out 2 LSB bits */ - } + }while(--step); - /* output for work of output channels (out_adpcm[OPNxxxx])*/ - *(ch->pan) += ch->adpcm_out; -} + /* calc pcm * volume data */ + ch->adpcm_out = ((ch->adpcm_acc * ch->vol_mul) >> ch->vol_shift) & ~3; /* multiply, shift and mask out 2 LSB bits */ + } -/* ADPCM type A Write */ -static void FM_ADPCMAWrite(YM2610 *F2610,int r,int v) -{ - ADPCM_CH *adpcm = F2610->adpcm; - uint8_t c = r&0x07; + /* output for work of output channels (out_adpcm[OPNxxxx])*/ + *(ch->pan) += ch->adpcm_out; + } - F2610->adpcmreg[r] = v&0xff; /* stock data */ - switch( r ) + /* ADPCM type A Write */ + void FM_ADPCMAWrite(int r,int v) { - case 0x00: /* DM,--,C5,C4,C3,C2,C1,C0 */ - if( !(v&0x80) ) + uint8_t c = r&0x07; + + adpcmreg[r] = v&0xff; /* stock data */ + switch( r ) { - /* KEY ON */ - for( c = 0; c < 6; c++ ) + case 0x00: /* DM,--,C5,C4,C3,C2,C1,C0 */ + if( !(v&0x80) ) { - if( (v>>c)&1 ) + /* KEY ON */ + for( c = 0; c < 6; c++ ) { - /**** start adpcm ****/ - adpcm[c].step = (uint32_t)((float)(1<OPN.ST.freqbase)/3.0f); - adpcm[c].now_addr = adpcm[c].start<<1; - adpcm[c].now_step = 0; - adpcm[c].adpcm_acc = 0; - adpcm[c].adpcm_step= 0; - adpcm[c].adpcm_out = 0; - adpcm[c].flag = 1; - - if(F2610->pcmbuf==nullptr) - { /* Check ROM Mapped */ - F2610->device->logerror("YM2608-YM2610: ADPCM-A rom not mapped\n"); - adpcm[c].flag = 0; - } - else + if( (v>>c)&1 ) { - if(adpcm[c].end >= F2610->pcm_size) - { /* Check End in Range */ - F2610->device->logerror("YM2610: ADPCM-A end out of range: $%08x\n",adpcm[c].end); - /*adpcm[c].end = F2610->pcm_size-1;*/ /* JB: DO NOT uncomment this, otherwise you will break the comparison in the ADPCM_CALC_CHA() */ + /**** start adpcm ****/ + adpcm[c].step = (uint32_t)((float)(1<logerror("YM2608-YM2610: ADPCM-A rom not mapped\n"); + adpcm[c].flag = 0; } - if(adpcm[c].start >= F2610->pcm_size) /* Check Start in Range */ + else { - F2610->device->logerror("YM2608-YM2610: ADPCM-A start out of range: $%08x\n",adpcm[c].start); - adpcm[c].flag = 0; + if(adpcm[c].end >= pcm_size) + { /* Check End in Range */ + device->logerror("YM2610: ADPCM-A end out of range: $%08x\n",adpcm[c].end); + /*adpcm[c].end = pcm_size-1;*/ /* JB: DO NOT uncomment this, otherwise you will break the comparison in the ADPCM_CALC_CHA() */ + } + if(adpcm[c].start >= pcm_size) /* Check Start in Range */ + { + device->logerror("YM2608-YM2610: ADPCM-A start out of range: $%08x\n",adpcm[c].start); + adpcm[c].flag = 0; + } } } } } - } - else - { - /* KEY OFF */ - for( c = 0; c < 6; c++ ) - if( (v>>c)&1 ) - adpcm[c].flag = 0; - } - break; - case 0x01: /* B0-5 = TL */ - F2610->adpcmTL = (v & 0x3f) ^ 0x3f; - for( c = 0; c < 6; c++ ) - { - int volume = F2610->adpcmTL + adpcm[c].IL; - - if ( volume >= 63 ) /* This is correct, 63 = quiet */ + else { - adpcm[c].vol_mul = 0; - adpcm[c].vol_shift = 0; + /* KEY OFF */ + for( c = 0; c < 6; c++ ) + if( (v>>c)&1 ) + adpcm[c].flag = 0; } - else + break; + case 0x01: /* B0-5 = TL */ + adpcmTL = (v & 0x3f) ^ 0x3f; + for( c = 0; c < 6; c++ ) { - adpcm[c].vol_mul = 15 - (volume & 7); /* so called 0.75 dB */ - adpcm[c].vol_shift = 1 + (volume >> 3); /* Yamaha engineers used the approximation: each -6 dB is close to divide by two (shift right) */ + int volume = adpcmTL + adpcm[c].IL; + + if ( volume >= 63 ) /* This is correct, 63 = quiet */ + { + adpcm[c].vol_mul = 0; + adpcm[c].vol_shift = 0; + } + else + { + adpcm[c].vol_mul = 15 - (volume & 7); /* so called 0.75 dB */ + adpcm[c].vol_shift = 1 + (volume >> 3); /* Yamaha engineers used the approximation: each -6 dB is close to divide by two (shift right) */ + } + + /* calc pcm * volume data */ + adpcm[c].adpcm_out = ((adpcm[c].adpcm_acc * adpcm[c].vol_mul) >> adpcm[c].vol_shift) & ~3; /* multiply, shift and mask out low 2 bits */ } + break; + default: + c = r&0x07; + if( c >= 0x06 ) return; + switch( r&0x38 ) + { + case 0x08: /* B7=L,B6=R, B4-0=IL */ + { + int volume; - /* calc pcm * volume data */ - adpcm[c].adpcm_out = ((adpcm[c].adpcm_acc * adpcm[c].vol_mul) >> adpcm[c].vol_shift) & ~3; /* multiply, shift and mask out low 2 bits */ - } - break; - default: - c = r&0x07; - if( c >= 0x06 ) return; - switch( r&0x38 ) - { - case 0x08: /* B7=L,B6=R, B4-0=IL */ - { - int volume; + adpcm[c].IL = (v & 0x1f) ^ 0x1f; - adpcm[c].IL = (v & 0x1f) ^ 0x1f; + volume = adpcmTL + adpcm[c].IL; + + if ( volume >= 63 ) /* This is correct, 63 = quiet */ + { + adpcm[c].vol_mul = 0; + adpcm[c].vol_shift = 0; + } + else + { + adpcm[c].vol_mul = 15 - (volume & 7); /* so called 0.75 dB */ + adpcm[c].vol_shift = 1 + (volume >> 3); /* Yamaha engineers used the approximation: each -6 dB is close to divide by two (shift right) */ + } - volume = F2610->adpcmTL + adpcm[c].IL; + adpcm[c].pan = &OPN.out_adpcm[(v>>6)&0x03]; - if ( volume >= 63 ) /* This is correct, 63 = quiet */ - { - adpcm[c].vol_mul = 0; - adpcm[c].vol_shift = 0; + /* calc pcm * volume data */ + adpcm[c].adpcm_out = ((adpcm[c].adpcm_acc * adpcm[c].vol_mul) >> adpcm[c].vol_shift) & ~3; /* multiply, shift and mask out low 2 bits */ } - else - { - adpcm[c].vol_mul = 15 - (volume & 7); /* so called 0.75 dB */ - adpcm[c].vol_shift = 1 + (volume >> 3); /* Yamaha engineers used the approximation: each -6 dB is close to divide by two (shift right) */ + break; + case 0x10: + case 0x18: + adpcm[c].start = ( (adpcmreg[0x18 + c]*0x0100 | adpcmreg[0x10 + c]) << ADPCMA_ADDRESS_SHIFT); + break; + case 0x20: + case 0x28: + adpcm[c].end = ( (adpcmreg[0x28 + c]*0x0100 | adpcmreg[0x20 + c]) << ADPCMA_ADDRESS_SHIFT); + adpcm[c].end += (1<OPN.out_adpcm[(v>>6)&0x03]; +}; - /* calc pcm * volume data */ - adpcm[c].adpcm_out = ((adpcm[c].adpcm_acc * adpcm[c].vol_mul) >> adpcm[c].vol_shift) & ~3; /* multiply, shift and mask out low 2 bits */ - } - break; - case 0x10: - case 0x18: - adpcm[c].start = ( (F2610->adpcmreg[0x18 + c]*0x0100 | F2610->adpcmreg[0x10 + c]) << ADPCMA_ADDRESS_SHIFT); - break; - case 0x20: - case 0x28: - adpcm[c].end = ( (F2610->adpcmreg[0x28 + c]*0x0100 | F2610->adpcmreg[0x20 + c]) << ADPCMA_ADDRESS_SHIFT); - adpcm[c].end += (1<OPN; YM_DELTAT *DELTAT = &F2608->deltaT; int i,j; @@ -2797,13 +2814,13 @@ void ym2608_update_one(void *chip, FMSAMPLE **buffer, int length) /* deltaT ADPCM */ if( DELTAT->portstate&0x80 ) - YM_DELTAT_ADPCM_CALC(DELTAT); + DELTAT->ADPCM_CALC(); /* ADPCMA */ for( j = 0; j < 6; j++ ) { if( F2608->adpcm[j].flag ) - ADPCMA_calc_chan( F2608, &F2608->adpcm[j]); + F2608->ADPCMA_calc_chan( &F2608->adpcm[j]); } /* advance envelope generator */ @@ -2872,7 +2889,7 @@ void ym2608_postload(void *chip) { if (chip) { - YM2608 *F2608 = (YM2608 *)chip; + ym2608_state *F2608 = (ym2608_state *)chip; int r; /* prescaler */ @@ -2883,8 +2900,8 @@ void ym2608_postload(void *chip) /* SSG registers */ for(r=0;r<16;r++) { - (*F2608->OPN.ST.SSG->write)(F2608->OPN.ST.param,0,r); - (*F2608->OPN.ST.SSG->write)(F2608->OPN.ST.param,1,F2608->REGS[r]); + (*F2608->OPN.ST.SSG->write)(F2608->OPN.ST.device,0,r); + (*F2608->OPN.ST.SSG->write)(F2608->OPN.ST.device,1,F2608->REGS[r]); } /* OPN registers */ @@ -2905,15 +2922,15 @@ void ym2608_postload(void *chip) /* FM channels */ /*FM_channel_postload(F2608->CH,6);*/ /* rhythm(ADPCMA) */ - FM_ADPCMAWrite(F2608,1,F2608->REGS[0x111]); + F2608->FM_ADPCMAWrite(1,F2608->REGS[0x111]); for( r=0x08 ; r<0x0c ; r++) - FM_ADPCMAWrite(F2608,r,F2608->REGS[r+0x110]); + F2608->FM_ADPCMAWrite(r,F2608->REGS[r+0x110]); /* Delta-T ADPCM unit */ - YM_DELTAT_postload(&F2608->deltaT , &F2608->REGS[0x100] ); + F2608->deltaT.postload( &F2608->REGS[0x100] ); } } -static void YM2608_save_state(YM2608 *F2608, device_t *device) +static void YM2608_save_state(ym2608_state *F2608, device_t *device) { device->save_item(NAME(F2608->REGS)); FMsave_state_st(device,&F2608->OPN.ST); @@ -2927,29 +2944,28 @@ static void YM2608_save_state(YM2608 *F2608, device_t *device) /* rhythm(ADPCMA) */ FMsave_state_adpcma(device,F2608->adpcm); /* Delta-T ADPCM unit */ - YM_DELTAT_savestate(device,&F2608->deltaT); + F2608->deltaT.savestate(device); } #endif /* MAME_EMU_SAVE_H */ static void YM2608_deltat_status_set(void *chip, uint8_t changebits) { - YM2608 *F2608 = (YM2608 *)chip; + ym2608_state *F2608 = (ym2608_state *)chip; FM_STATUS_SET(&(F2608->OPN.ST), changebits); } static void YM2608_deltat_status_reset(void *chip, uint8_t changebits) { - YM2608 *F2608 = (YM2608 *)chip; + ym2608_state *F2608 = (ym2608_state *)chip; FM_STATUS_RESET(&(F2608->OPN.ST), changebits); } /* YM2608(OPNA) */ -void * ym2608_init(void *param, device_t *device, int clock, int rate, - void *pcmrom,int pcmsize, +void * ym2608_init(device_t *device, int clock, int rate, void *pcmrom,int pcmsize, FM_TIMERHANDLER timer_handler,FM_IRQHANDLER IRQHandler, const ssg_callbacks *ssg) { - YM2608 *F2608; + ym2608_state *F2608; /* allocate extend state space */ - F2608 = auto_alloc_clear(device->machine(), ()); + F2608 = auto_alloc_clear(device->machine(), ()); /* allocate total level table (128kb space) */ if( !init_tables() ) { @@ -2958,7 +2974,6 @@ void * ym2608_init(void *param, device_t *device, int clock, int rate, } F2608->device = device; - F2608->OPN.ST.param = param; F2608->OPN.type = TYPE_YM2608; F2608->OPN.P_CH = F2608->CH; F2608->OPN.ST.device = device; @@ -2999,7 +3014,7 @@ void * ym2608_init(void *param, device_t *device, int clock, int rate, /* shut down emulator */ void ym2608_shutdown(void *chip) { - YM2608 *F2608 = (YM2608 *)chip; + ym2608_state *F2608 = (ym2608_state *)chip; FMCloseTable(); auto_free(F2608->OPN.ST.device->machine(), F2608); @@ -3009,7 +3024,7 @@ void ym2608_shutdown(void *chip) void ym2608_reset_chip(void *chip) { int i; - YM2608 *F2608 = (YM2608 *)chip; + ym2608_state *F2608 = (ym2608_state *)chip; FM_OPN *OPN = &F2608->OPN; YM_DELTAT *DELTAT = &F2608->deltaT; @@ -3017,7 +3032,7 @@ void ym2608_reset_chip(void *chip) OPNPrescaler_w(OPN , 0 , 2); F2608->deltaT.freqbase = OPN->ST.freqbase; /* reset SSG section */ - (*OPN->ST.SSG->reset)(OPN->ST.param); + (*OPN->ST.SSG->reset)(OPN->ST.device); /* status clear */ FM_BUSY_CLEAR(&OPN->ST); @@ -3081,7 +3096,7 @@ void ym2608_reset_chip(void *chip) DELTAT->output_pointer = OPN->out_delta; DELTAT->portshift = 5; /* always 5bits shift */ /* ASG */ DELTAT->output_range = 1<<23; - YM_DELTAT_ADPCM_Reset(DELTAT,OUTD_CENTER,YM_DELTAT_EMULATION_MODE_NORMAL,F2608->device); + DELTAT->ADPCM_Reset(OUTD_CENTER,YM_DELTAT::EMULATION_MODE_NORMAL,F2608->device); } /* YM2608 write */ @@ -3090,7 +3105,7 @@ void ym2608_reset_chip(void *chip) /* v = value */ int ym2608_write(void *chip, int a,uint8_t v) { - YM2608 *F2608 = (YM2608 *)chip; + ym2608_state *F2608 = (ym2608_state *)chip; FM_OPN *OPN = &F2608->OPN; int addr; @@ -3104,7 +3119,7 @@ int ym2608_write(void *chip, int a,uint8_t v) F2608->addr_A1 = 0; /* Write register to SSG emulator */ - if( v < 16 ) (*OPN->ST.SSG->write)(OPN->ST.param,0,v); + if( v < 16 ) (*OPN->ST.SSG->write)(OPN->ST.device,0,v); /* prescaler selecter : 2d,2e,2f */ if( v >= 0x2d && v <= 0x2f ) { @@ -3123,11 +3138,11 @@ int ym2608_write(void *chip, int a,uint8_t v) { case 0x00: /* SSG section */ /* Write data to SSG emulator */ - (*OPN->ST.SSG->write)(OPN->ST.param,a,v); + (*OPN->ST.SSG->write)(OPN->ST.device,a,v); break; case 0x10: /* 0x10-0x1f : Rhythm section */ - ym2608_update_req(OPN->ST.param); - FM_ADPCMAWrite(F2608,addr-0x10,v); + ym2608_device::update_request(OPN->ST.device); + F2608->FM_ADPCMAWrite(addr-0x10,v); break; case 0x20: /* Mode Register */ switch(addr) @@ -3136,12 +3151,12 @@ int ym2608_write(void *chip, int a,uint8_t v) YM2608IRQMaskWrite(OPN, F2608, v); break; default: - ym2608_update_req(OPN->ST.param); + ym2608_device::update_request(OPN->ST.device); OPNWriteMode(OPN,addr,v); } break; default: /* OPN section */ - ym2608_update_req(OPN->ST.param); + ym2608_device::update_request(OPN->ST.device); OPNWriteReg(OPN,addr,v); } break; @@ -3157,7 +3172,7 @@ int ym2608_write(void *chip, int a,uint8_t v) addr = OPN->ST.address; F2608->REGS[addr | 0x100] = v; - ym2608_update_req(OPN->ST.param); + ym2608_device::update_request(OPN->ST.device); switch( addr & 0xf0 ) { case 0x00: /* DELTAT PORT */ @@ -3168,7 +3183,7 @@ int ym2608_write(void *chip, int a,uint8_t v) break; default: /* 0x00-0x0d */ - YM_DELTAT_ADPCM_Write(&F2608->deltaT,addr,v); + F2608->deltaT.ADPCM_Write(addr,v); } break; case 0x10: /* IRQ Flag control */ @@ -3186,7 +3201,7 @@ int ym2608_write(void *chip, int a,uint8_t v) uint8_t ym2608_read(void *chip,int a) { - YM2608 *F2608 = (YM2608 *)chip; + ym2608_state *F2608 = (ym2608_state *)chip; int addr = F2608->OPN.ST.address; uint8_t ret = 0; @@ -3198,7 +3213,7 @@ uint8_t ym2608_read(void *chip,int a) break; case 1: /* status 0, ID */ - if( addr < 16 ) ret = (*F2608->OPN.ST.SSG->read)(F2608->OPN.ST.param); + if( addr < 16 ) ret = (*F2608->OPN.ST.SSG->read)(F2608->OPN.ST.device); else if(addr == 0xff) ret = 0x01; /* ID code */ break; @@ -3210,7 +3225,7 @@ uint8_t ym2608_read(void *chip,int a) case 3: if(addr == 0x08) { - ret = YM_DELTAT_ADPCM_Read(&F2608->deltaT); + ret = F2608->deltaT.ADPCM_Read(); } else { @@ -3227,14 +3242,14 @@ uint8_t ym2608_read(void *chip,int a) int ym2608_timer_over(void *chip,int c) { - YM2608 *F2608 = (YM2608 *)chip; + ym2608_state *F2608 = (ym2608_state *)chip; switch(c) { #if 0 case 2: { /* BUFRDY flag */ - YM_DELTAT_BRDY_callback( &F2608->deltaT ); + F2608->deltaT.BRDY_callback(); } break; #endif @@ -3245,7 +3260,7 @@ int ym2608_timer_over(void *chip,int c) break; case 0: { /* Timer A */ - ym2608_update_req(F2608->OPN.ST.param); + ym2608_device::update_request(F2608->OPN.ST.device); /* timer update */ TimerAOver( &(F2608->OPN.ST) ); /* CSM mode key,TL controll */ @@ -3272,7 +3287,7 @@ int ym2608_timer_over(void *chip,int c) /* Generate samples for one of the YM2610s */ void ym2610_update_one(void *chip, FMSAMPLE **buffer, int length) { - YM2610 *F2610 = (YM2610 *)chip; + ym2610_state *F2610 = (ym2610_state *)chip; FM_OPN *OPN = &F2610->OPN; YM_DELTAT *DELTAT = &F2610->deltaT; int i,j; @@ -3294,9 +3309,9 @@ void ym2610_update_one(void *chip, FMSAMPLE **buffer, int length) #define FM_MSG_YM2610B "YM2610-%p.CH%d is playing,Check whether the type of the chip is YM2610B\n" /* Check YM2610B warning message */ if( FM_KEY_IS(&F2610->CH[0].SLOT[3]) ) - LOG(F2610->device,LOG_WAR,(FM_MSG_YM2610B,F2610->OPN.ST.param,0)); + LOG(F2610->device,LOG_WAR,(FM_MSG_YM2610B,F2610->OPN.ST.device,0)); if( FM_KEY_IS(&F2610->CH[3].SLOT[3]) ) - LOG(F2610->device,LOG_WAR,(FM_MSG_YM2610B,F2610->OPN.ST.param,3)); + LOG(F2610->device,LOG_WAR,(FM_MSG_YM2610B,F2610->OPN.ST.device,3)); #endif /* refresh PG and EG */ @@ -3352,13 +3367,13 @@ void ym2610_update_one(void *chip, FMSAMPLE **buffer, int length) /* deltaT ADPCM */ if( DELTAT->portstate&0x80 ) - YM_DELTAT_ADPCM_CALC(DELTAT); + DELTAT->ADPCM_CALC(); /* ADPCMA */ for( j = 0; j < 6; j++ ) { if( F2610->adpcm[j].flag ) - ADPCMA_calc_chan( F2610, &F2610->adpcm[j]); + F2610->ADPCMA_calc_chan(&F2610->adpcm[j]); } /* buffering */ @@ -3408,7 +3423,7 @@ void ym2610_update_one(void *chip, FMSAMPLE **buffer, int length) /* Generate samples for one of the YM2610Bs */ void ym2610b_update_one(void *chip, FMSAMPLE **buffer, int length) { - YM2610 *F2610 = (YM2610 *)chip; + ym2610_state *F2610 = (ym2610_state *)chip; FM_OPN *OPN = &F2610->OPN; YM_DELTAT *DELTAT = &F2610->deltaT; int i,j; @@ -3488,13 +3503,13 @@ void ym2610b_update_one(void *chip, FMSAMPLE **buffer, int length) /* deltaT ADPCM */ if( DELTAT->portstate&0x80 ) - YM_DELTAT_ADPCM_CALC(DELTAT); + DELTAT->ADPCM_CALC(); /* ADPCMA */ for( j = 0; j < 6; j++ ) { if( F2610->adpcm[j].flag ) - ADPCMA_calc_chan( F2610, &F2610->adpcm[j]); + F2610->ADPCMA_calc_chan(&F2610->adpcm[j]); } /* buffering */ @@ -3549,14 +3564,14 @@ void ym2610_postload(void *chip) { if (chip) { - YM2610 *F2610 = (YM2610 *)chip; + ym2610_state *F2610 = (ym2610_state *)chip; int r; /* SSG registers */ for(r=0;r<16;r++) { - (*F2610->OPN.ST.SSG->write)(F2610->OPN.ST.param,0,r); - (*F2610->OPN.ST.SSG->write)(F2610->OPN.ST.param,1,F2610->REGS[r]); + (*F2610->OPN.ST.SSG->write)(F2610->OPN.ST.device,0,r); + (*F2610->OPN.ST.SSG->write)(F2610->OPN.ST.device,1,F2610->REGS[r]); } /* OPN registers */ @@ -3578,21 +3593,21 @@ void ym2610_postload(void *chip) /*FM_channel_postload(F2610->CH,6);*/ /* rhythm(ADPCMA) */ - FM_ADPCMAWrite(F2610,1,F2610->REGS[0x101]); + F2610->FM_ADPCMAWrite(1,F2610->REGS[0x101]); for( r=0 ; r<6 ; r++) { - FM_ADPCMAWrite(F2610,r+0x08,F2610->REGS[r+0x108]); - FM_ADPCMAWrite(F2610,r+0x10,F2610->REGS[r+0x110]); - FM_ADPCMAWrite(F2610,r+0x18,F2610->REGS[r+0x118]); - FM_ADPCMAWrite(F2610,r+0x20,F2610->REGS[r+0x120]); - FM_ADPCMAWrite(F2610,r+0x28,F2610->REGS[r+0x128]); + F2610->FM_ADPCMAWrite(r+0x08,F2610->REGS[r+0x108]); + F2610->FM_ADPCMAWrite(r+0x10,F2610->REGS[r+0x110]); + F2610->FM_ADPCMAWrite(r+0x18,F2610->REGS[r+0x118]); + F2610->FM_ADPCMAWrite(r+0x20,F2610->REGS[r+0x120]); + F2610->FM_ADPCMAWrite(r+0x28,F2610->REGS[r+0x128]); } /* Delta-T ADPCM unit */ - YM_DELTAT_postload(&F2610->deltaT , &F2610->REGS[0x010] ); + F2610->deltaT.postload( &F2610->REGS[0x010] ); } } -static void YM2610_save_state(YM2610 *F2610, device_t *device) +static void YM2610_save_state(ym2610_state *F2610, device_t *device) { device->save_item(NAME(F2610->REGS)); FMsave_state_st(device,&F2610->OPN.ST); @@ -3608,30 +3623,29 @@ static void YM2610_save_state(YM2610 *F2610, device_t *device) /* rhythm(ADPCMA) */ FMsave_state_adpcma(device,F2610->adpcm); /* Delta-T ADPCM unit */ - YM_DELTAT_savestate(device,&F2610->deltaT); + F2610->deltaT.savestate(device); } #endif /* MAME_EMU_SAVE_H */ static void YM2610_deltat_status_set(void *chip, uint8_t changebits) { - YM2610 *F2610 = (YM2610 *)chip; + ym2610_state *F2610 = (ym2610_state *)chip; F2610->adpcm_arrivedEndAddress |= changebits; } static void YM2610_deltat_status_reset(void *chip, uint8_t changebits) { - YM2610 *F2610 = (YM2610 *)chip; + ym2610_state *F2610 = (ym2610_state *)chip; F2610->adpcm_arrivedEndAddress &= (~changebits); } -void *ym2610_init(void *param, device_t *device, int clock, int rate, - void *pcmroma,int pcmsizea,void *pcmromb,int pcmsizeb, +void *ym2610_init(device_t *device, int clock, int rate, void *pcmroma,int pcmsizea,void *pcmromb,int pcmsizeb, FM_TIMERHANDLER timer_handler,FM_IRQHANDLER IRQHandler, const ssg_callbacks *ssg) { - YM2610 *F2610; + ym2610_state *F2610; /* allocate extend state space */ - F2610 = auto_alloc_clear(device->machine(), ()); + F2610 = auto_alloc_clear(device->machine(), ()); /* allocate total level table (128kb space) */ if( !init_tables() ) { @@ -3641,7 +3655,6 @@ void *ym2610_init(void *param, device_t *device, int clock, int rate, F2610->device = device; /* FM */ - F2610->OPN.ST.param = param; F2610->OPN.type = TYPE_YM2610; F2610->OPN.P_CH = F2610->CH; F2610->OPN.ST.device = device; @@ -3673,7 +3686,7 @@ void *ym2610_init(void *param, device_t *device, int clock, int rate, /* shut down emulator */ void ym2610_shutdown(void *chip) { - YM2610 *F2610 = (YM2610 *)chip; + ym2610_state *F2610 = (ym2610_state *)chip; FMCloseTable(); auto_free(F2610->OPN.ST.device->machine(), F2610); @@ -3683,7 +3696,7 @@ void ym2610_shutdown(void *chip) void ym2610_reset_chip(void *chip) { int i; - YM2610 *F2610 = (YM2610 *)chip; + ym2610_state *F2610 = (ym2610_state *)chip; FM_OPN *OPN = &F2610->OPN; YM_DELTAT *DELTAT = &F2610->deltaT; @@ -3713,7 +3726,7 @@ void ym2610_reset_chip(void *chip) /* Reset Prescaler */ OPNSetPres( OPN, 6*24, 6*24, 4*2); /* OPN 1/6 , SSG 1/4 */ /* reset SSG section */ - (*OPN->ST.SSG->reset)(OPN->ST.param); + (*OPN->ST.SSG->reset)(OPN->ST.device); /* status clear */ FM_IRQMASK_SET(&OPN->ST,0x03); FM_BUSY_CLEAR(&OPN->ST); @@ -3763,7 +3776,7 @@ void ym2610_reset_chip(void *chip) DELTAT->output_pointer = OPN->out_delta; DELTAT->portshift = 8; /* allways 8bits shift */ DELTAT->output_range = 1<<23; - YM_DELTAT_ADPCM_Reset(DELTAT,OUTD_CENTER,YM_DELTAT_EMULATION_MODE_YM2610,F2610->device); + DELTAT->ADPCM_Reset(OUTD_CENTER,YM_DELTAT::EMULATION_MODE_YM2610,F2610->device); } /* YM2610 write */ @@ -3772,7 +3785,7 @@ void ym2610_reset_chip(void *chip) /* v = value */ int ym2610_write(void *chip, int a, uint8_t v) { - YM2610 *F2610 = (YM2610 *)chip; + ym2610_state *F2610 = (ym2610_state *)chip; FM_OPN *OPN = &F2610->OPN; int addr; int ch; @@ -3786,7 +3799,7 @@ int ym2610_write(void *chip, int a, uint8_t v) F2610->addr_A1 = 0; /* Write register to SSG emulator */ - if( v < 16 ) (*OPN->ST.SSG->write)(OPN->ST.param,0,v); + if( v < 16 ) (*OPN->ST.SSG->write)(OPN->ST.device,0,v); break; case 1: /* data port 0 */ @@ -3799,10 +3812,10 @@ int ym2610_write(void *chip, int a, uint8_t v) { case 0x00: /* SSG section */ /* Write data to SSG emulator */ - (*OPN->ST.SSG->write)(OPN->ST.param,a,v); + (*OPN->ST.SSG->write)(OPN->ST.device,a,v); break; case 0x10: /* DeltaT ADPCM */ - ym2610_update_req(OPN->ST.param); + ym2610_device::update_request(OPN->ST.device); switch(addr) { @@ -3817,7 +3830,7 @@ int ym2610_write(void *chip, int a, uint8_t v) case 0x1a: /* delta-n H */ case 0x1b: /* volume */ { - YM_DELTAT_ADPCM_Write(&F2610->deltaT,addr-0x10,v); + F2610->deltaT.ADPCM_Write(addr-0x10,v); } break; @@ -3842,11 +3855,11 @@ int ym2610_write(void *chip, int a, uint8_t v) break; case 0x20: /* Mode Register */ - ym2610_update_req(OPN->ST.param); + ym2610_device::update_request(OPN->ST.device); OPNWriteMode(OPN,addr,v); break; default: /* OPN section */ - ym2610_update_req(OPN->ST.param); + ym2610_device::update_request(OPN->ST.device); /* write register */ OPNWriteReg(OPN,addr,v); } @@ -3861,12 +3874,12 @@ int ym2610_write(void *chip, int a, uint8_t v) if (F2610->addr_A1 != 1) break; /* verified on real YM2608 */ - ym2610_update_req(OPN->ST.param); + ym2610_device::update_request(OPN->ST.device); addr = OPN->ST.address; F2610->REGS[addr | 0x100] = v; if( addr < 0x30 ) /* 100-12f : ADPCM A section */ - FM_ADPCMAWrite(F2610,addr,v); + F2610->FM_ADPCMAWrite(addr,v); else OPNWriteReg(OPN,addr | 0x100,v); } @@ -3875,7 +3888,7 @@ int ym2610_write(void *chip, int a, uint8_t v) uint8_t ym2610_read(void *chip,int a) { - YM2610 *F2610 = (YM2610 *)chip; + ym2610_state *F2610 = (ym2610_state *)chip; int addr = F2610->OPN.ST.address; uint8_t ret = 0; @@ -3885,7 +3898,7 @@ uint8_t ym2610_read(void *chip,int a) ret = FM_STATUS_FLAG(&F2610->OPN.ST) & 0x83; break; case 1: /* data 0 */ - if( addr < 16 ) ret = (*F2610->OPN.ST.SSG->read)(F2610->OPN.ST.param); + if( addr < 16 ) ret = (*F2610->OPN.ST.SSG->read)(F2610->OPN.ST.device); if( addr == 0xff ) ret = 0x01; break; case 2: /* status 1 : ADPCM status */ @@ -3904,7 +3917,7 @@ uint8_t ym2610_read(void *chip,int a) int ym2610_timer_over(void *chip,int c) { - YM2610 *F2610 = (YM2610 *)chip; + ym2610_state *F2610 = (ym2610_state *)chip; if( c ) { /* Timer B */ @@ -3912,7 +3925,7 @@ int ym2610_timer_over(void *chip,int c) } else { /* Timer A */ - ym2610_update_req(F2610->OPN.ST.param); + ym2610_device::update_request(F2610->OPN.ST.device); /* timer update */ TimerAOver( &(F2610->OPN.ST) ); /* CSM mode key,TL controll */ diff --git a/src/devices/sound/fm.h b/src/devices/sound/fm.h index f5be86ad8a1..60bdb9c4ec0 100644 --- a/src/devices/sound/fm.h +++ b/src/devices/sound/fm.h @@ -5,10 +5,10 @@ */ -#pragma once +#ifndef MAME_SOUND_FM_H +#define MAME_SOUND_FM_H -#ifndef __FM_H__ -#define __FM_H__ +#pragma once /* --- select emulation chips --- */ #define BUILD_YM2203 (1) /* build YM2203(OPN) emulator */ @@ -32,47 +32,23 @@ /* used by YM2203,YM2608,and YM2610 */ struct ssg_callbacks { - void (*set_clock)(void *param, int clock); - void (*write)(void *param, int address, int data); - int (*read)(void *param); - void (*reset)(void *param); + void (*set_clock)(device_t *device, int clock); + void (*write)(device_t *device, int address, int data); + int (*read)(device_t *device); + void (*reset)(device_t *device); }; /* --- external callback functions for realtime update --- */ #if FM_BUSY_FLAG_SUPPORT -#define TIME_TYPE attotime +using TIME_TYPE = attotime; #define UNDEFINED_TIME attotime::zero #define FM_GET_TIME_NOW(machine) (machine)->time() -#define ADD_TIMES(t1, t2) ((t1) + (t2)) -#define COMPARE_TIMES(t1, t2) (((t1) == (t2)) ? 0 : ((t1) < (t2)) ? -1 : 1) -#define MULTIPLY_TIME_BY_INT(t,i) ((t) * (i)) +inline TIME_TYPE ADD_TIMES(TIME_TYPE const &t1, TIME_TYPE const &t2) { return t1 + t2; } +constexpr int COMPARE_TIMES(TIME_TYPE const &t1, TIME_TYPE const &t2) { return (t1 == t2) ? 0 : (t1 < t2) ? -1 : 1; } +template constexpr TIME_TYPE MULTIPLY_TIME_BY_INT(TIME_TYPE const &t, X &&i) { return t * i; } #endif -#if BUILD_YM2203 - /* in 2203intf.c */ - void ym2203_update_request(void *param); - #define ym2203_update_req(chip) ym2203_update_request(chip) -#endif /* BUILD_YM2203 */ - -#if BUILD_YM2608 - /* in 2608intf.c */ - void ym2608_update_request(void *param); - #define ym2608_update_req(chip) ym2608_update_request(chip); -#endif /* BUILD_YM2608 */ - -#if (BUILD_YM2610||BUILD_YM2610B) - /* in 2610intf.c */ - void ym2610_update_request(void *param); - #define ym2610_update_req(chip) ym2610_update_request(chip); -#endif /* (BUILD_YM2610||BUILD_YM2610B) */ - -#if (BUILD_YM2612||BUILD_YM3438) - /* in 2612intf.c */ - void ym2612_update_request(void *param); - #define ym2612_update_req(chip) ym2612_update_request(chip); -#endif /* (BUILD_YM2612||BUILD_YM3438) */ - typedef stream_sample_t FMSAMPLE; /* @@ -84,8 +60,8 @@ typedef unsigned char FMSAMPLE; #endif */ -typedef void (*FM_TIMERHANDLER)(void *param,int c,int cnt,int clock); -typedef void (*FM_IRQHANDLER)(void *param,int irq); +typedef void (*FM_TIMERHANDLER)(device_t *device,int c,int cnt,int clock); +typedef void (*FM_IRQHANDLER)(device_t *device,int irq); /* FM_TIMERHANDLER : Stop or Start timer */ /* int n = chip number */ /* int c = Channel 0=TimerA,1=TimerB */ @@ -109,7 +85,7 @@ typedef void (*FM_IRQHANDLER)(void *param,int irq); ** 'IRQHandler' IRQ callback handler when changed IRQ level ** return 0 = success */ -void * ym2203_init(void *param, device_t *device, int baseclock, int rate, +void * ym2203_init(device_t *device, int baseclock, int rate, FM_TIMERHANDLER TimerHandler,FM_IRQHANDLER IRQHandler, const ssg_callbacks *ssg); /* @@ -157,7 +133,7 @@ void ym2203_postload(void *chip); #if BUILD_YM2608 /* -------------------- YM2608(OPNA) Interface -------------------- */ -void * ym2608_init(void *param, device_t *device, int baseclock, int rate, +void * ym2608_init(device_t *device, int baseclock, int rate, void *pcmroma,int pcmsizea, FM_TIMERHANDLER TimerHandler,FM_IRQHANDLER IRQHandler, const ssg_callbacks *ssg); void ym2608_shutdown(void *chip); @@ -172,7 +148,7 @@ void ym2608_postload(void *chip); #if (BUILD_YM2610||BUILD_YM2610B) /* -------------------- YM2610(OPNB) Interface -------------------- */ -void * ym2610_init(void *param, device_t *device, int baseclock, int rate, +void * ym2610_init(device_t *device, int baseclock, int rate, void *pcmroma,int pcmasize,void *pcmromb,int pcmbsize, FM_TIMERHANDLER TimerHandler,FM_IRQHANDLER IRQHandler, const ssg_callbacks *ssg); void ym2610_shutdown(void *chip); @@ -190,7 +166,7 @@ void ym2610_postload(void *chip); #endif /* (BUILD_YM2610||BUILD_YM2610B) */ #if (BUILD_YM2612||BUILD_YM3438) -void * ym2612_init(void *param, device_t *device, int baseclock, int rate, +void * ym2612_init(device_t *device, int baseclock, int rate, FM_TIMERHANDLER TimerHandler,FM_IRQHANDLER IRQHandler); void ym2612_clock_changed(void *chip, int clock, int rate); void ym2612_shutdown(void *chip); @@ -204,4 +180,4 @@ void ym2612_postload(void *chip); #endif /* (BUILD_YM2612||BUILD_YM3438) */ -#endif /* __FM_H__ */ +#endif // MAME_SOUND_FM_H diff --git a/src/devices/sound/fm2612.cpp b/src/devices/sound/fm2612.cpp index 026cbbf7cd1..91d27686fe0 100644 --- a/src/devices/sound/fm2612.cpp +++ b/src/devices/sound/fm2612.cpp @@ -137,6 +137,11 @@ #include "emu.h" #include "fm.h" +#if (BUILD_YM2612||BUILD_YM3438) +#include "2612intf.h" +#endif /* (BUILD_YM2612||BUILD_YM3438) */ + + /* shared function building option */ #define BUILD_OPN (BUILD_YM2203||BUILD_YM2608||BUILD_YM2610||BUILD_YM2610B||BUILD_YM2612||BUILD_YM3438) #define BUILD_OPN_PRESCALER (BUILD_YM2203||BUILD_YM2608) @@ -605,7 +610,6 @@ struct fm2612_FM_CH struct fm2612_FM_ST { device_t *device; - void * param; /* this chip parameter */ double freqbase; /* frequency base */ int timer_prescaler; /* timer prescaler */ uint8_t irq; /* interrupt level */ @@ -683,7 +687,7 @@ struct fm2612_FM_OPN }; /* here's the virtual YM2612 */ -struct YM2612 +struct ym2612_state { uint8_t REGS[512]; /* registers */ fm2612_FM_OPN OPN; /* OPN state */ @@ -722,7 +726,7 @@ static inline void FM_STATUS_SET(fm2612_FM_ST *ST,int flag) { ST->irq = 1; /* callback user interrupt handler (IRQ is OFF to ON) */ - if(ST->IRQ_Handler) (ST->IRQ_Handler)(ST->param,1); + if(ST->IRQ_Handler) (ST->IRQ_Handler)(ST->device,1); } } @@ -735,7 +739,7 @@ static inline void FM_STATUS_RESET(fm2612_FM_ST *ST,int flag) { ST->irq = 0; /* callback user interrupt handler (IRQ is ON to OFF) */ - if(ST->IRQ_Handler) (ST->IRQ_Handler)(ST->param,0); + if(ST->IRQ_Handler) (ST->IRQ_Handler)(ST->device,0); } } @@ -880,7 +884,7 @@ static inline void FM_KEYOFF_CSM(fm2612_FM_CH *CH , int s ) } /* OPN Mode Register Write */ -static inline void set_timers(fm2612_FM_OPN *OPN, fm2612_FM_ST *ST, void *n, int v) +static inline void set_timers(fm2612_FM_OPN *OPN, fm2612_FM_ST *ST, device_t *n, int v) { /* b7 = CSM MODE */ /* b6 = 3 slot mode */ @@ -947,7 +951,7 @@ static inline void set_timers(fm2612_FM_OPN *OPN, fm2612_FM_ST *ST, void *n, int { ST->irq = 0; /* callback user interrupt handler (IRQ is ON to OFF) */ - if(ST->IRQ_Handler) (ST->IRQ_Handler)(ST->param, 0); + if(ST->IRQ_Handler) (ST->IRQ_Handler)(ST->device, 0); } ST->mode = v; } @@ -960,7 +964,7 @@ static inline void TimerAOver(fm2612_FM_ST *ST) if(ST->mode & 0x04) FM_STATUS_SET(ST,0x01); /* clear or reload the counter */ ST->TAC = (1024-ST->TA); - if (ST->timer_handler) (ST->timer_handler)(ST->param,0,ST->TAC * ST->timer_prescaler,ST->clock); + if (ST->timer_handler) (ST->timer_handler)(ST->device,0,ST->TAC * ST->timer_prescaler,ST->clock); } /* Timer B Overflow */ static inline void TimerBOver(fm2612_FM_ST *ST) @@ -969,7 +973,7 @@ static inline void TimerBOver(fm2612_FM_ST *ST) if(ST->mode & 0x08) FM_STATUS_SET(ST,0x02); /* clear or reload the counter */ ST->TBC = ( 256-ST->TB)<<4; - if (ST->timer_handler) (ST->timer_handler)(ST->param,1,ST->TBC * ST->timer_prescaler,ST->clock); + if (ST->timer_handler) (ST->timer_handler)(ST->device,1,ST->TBC * ST->timer_prescaler,ST->clock); } @@ -1596,7 +1600,7 @@ static inline signed int op_calc1(uint32_t phase, unsigned int env, signed int p return tl_tab[p]; } -static inline void chan_calc(YM2612 *F2612, fm2612_FM_OPN *OPN, fm2612_FM_CH *CH) +static inline void chan_calc(ym2612_state *F2612, fm2612_FM_OPN *OPN, fm2612_FM_CH *CH) { uint32_t AM = OPN->LFO_AM >> CH->ams; unsigned int eg_out = volume_calc(&CH->SLOT[SLOT1]); @@ -1766,7 +1770,7 @@ static void OPNWriteMode(fm2612_FM_OPN *OPN, int r, int v) OPN->ST.TB = v; break; case 0x27: /* mode, timer control */ - set_timers( OPN, &(OPN->ST),OPN->ST.param,v ); + set_timers( OPN, &(OPN->ST),OPN->ST.device,v ); break; case 0x28: /* key on / off */ c = v & 0x03; @@ -2039,7 +2043,7 @@ static void OPNSetPres(fm2612_FM_OPN *OPN, int pres, int timer_prescaler, int SS OPN->ST.timer_prescaler = timer_prescaler; /* SSG part prescaler set */ - if( SSGpres ) (*OPN->ST.SSG->set_clock)( OPN->ST.param, OPN->ST.clock * 2 / SSGpres ); + if( SSGpres ) (*OPN->ST.SSG->set_clock)( OPN->ST.device, OPN->ST.clock * 2 / SSGpres ); /* make time tables */ init_timetables(OPN, OPN->ST.freqbase); @@ -2177,7 +2181,7 @@ static void init_tables(void) /* Generate samples for one of the YM2612s */ void ym2612_update_one(void *chip, FMSAMPLE **buffer, int length) { - YM2612 *F2612 = (YM2612 *)chip; + ym2612_state *F2612 = (ym2612_state *)chip; fm2612_FM_OPN *OPN = &F2612->OPN; int32_t *out_fm = OPN->out_fm; int i; @@ -2325,7 +2329,7 @@ void ym2612_postload(void *chip) { if (chip) { - YM2612 *F2612 = (YM2612 *)chip; + ym2612_state *F2612 = (ym2612_state *)chip; int r; /* DAC data & port */ @@ -2351,7 +2355,7 @@ void ym2612_postload(void *chip) } } -static void YM2612_save_state(YM2612 *F2612, device_t *device) +static void YM2612_save_state(ym2612_state *F2612, device_t *device) { device->save_item(NAME(F2612->REGS)); FMsave_state_st(device,&F2612->OPN.ST); @@ -2366,18 +2370,17 @@ static void YM2612_save_state(YM2612 *F2612, device_t *device) #endif /* MAME_EMU_SAVE_H */ /* initialize YM2612 emulator(s) */ -void * ym2612_init(void *param, device_t *device, int clock, int rate, +void * ym2612_init(device_t *device, int clock, int rate, FM_TIMERHANDLER timer_handler,FM_IRQHANDLER IRQHandler) { - YM2612 *F2612; + ym2612_state *F2612; /* allocate extend state space */ - F2612 = auto_alloc_clear(device->machine(), ()); + F2612 = auto_alloc_clear(device->machine(), ()); /* allocate total level table (128kb space) */ init_tables(); F2612->device = device; - F2612->OPN.ST.param = param; F2612->OPN.type = TYPE_YM2612; F2612->OPN.P_CH = F2612->CH; F2612->OPN.ST.device = device; @@ -2397,7 +2400,7 @@ void * ym2612_init(void *param, device_t *device, int clock, int rate, void ym2612_clock_changed(void *chip, int clock, int rate) { - YM2612 *F2612 = (YM2612 *)chip; + ym2612_state *F2612 = (ym2612_state *)chip; F2612->OPN.ST.clock = clock; F2612->OPN.ST.rate = rate; @@ -2406,7 +2409,7 @@ void ym2612_clock_changed(void *chip, int clock, int rate) /* shut down emulator */ void ym2612_shutdown(void *chip) { - YM2612 *F2612 = (YM2612 *)chip; + ym2612_state *F2612 = (ym2612_state *)chip; FMCloseTable(); auto_free(F2612->OPN.ST.device->machine(), F2612); @@ -2416,7 +2419,7 @@ void ym2612_shutdown(void *chip) void ym2612_reset_chip(void *chip) { int i; - YM2612 *F2612 = (YM2612 *)chip; + ym2612_state *F2612 = (ym2612_state *)chip; fm2612_FM_OPN *OPN = &F2612->OPN; OPNSetPres( OPN, 6*24, 6*24, 0); @@ -2465,7 +2468,7 @@ void ym2612_reset_chip(void *chip) /* v = value */ int ym2612_write(void *chip, int a, uint8_t v) { - YM2612 *F2612 = (YM2612 *)chip; + ym2612_state *F2612 = (ym2612_state *)chip; int addr; v &= 0xff; /* adjust to 8 bit bus */ @@ -2489,7 +2492,7 @@ int ym2612_write(void *chip, int a, uint8_t v) switch( addr ) { case 0x2a: /* DAC data (YM2612) */ - ym2612_update_req(F2612->OPN.ST.param); + ym2612_device::update_request(F2612->OPN.ST.device); F2612->dacout = ((int)v - 0x80) << 6; /* level unknown */ break; case 0x2b: /* DAC Sel (YM2612) */ @@ -2497,13 +2500,13 @@ int ym2612_write(void *chip, int a, uint8_t v) F2612->dacen = v & 0x80; break; default: /* OPN section */ - ym2612_update_req(F2612->OPN.ST.param); + ym2612_device::update_request(F2612->OPN.ST.device); /* write register */ OPNWriteMode(&(F2612->OPN),addr,v); } break; default: /* 0x30-0xff OPN section */ - ym2612_update_req(F2612->OPN.ST.param); + ym2612_device::update_request(F2612->OPN.ST.device); /* write register */ OPNWriteReg(&(F2612->OPN),addr,v); } @@ -2520,7 +2523,7 @@ int ym2612_write(void *chip, int a, uint8_t v) addr = F2612->OPN.ST.address; F2612->REGS[addr | 0x100] = v; - ym2612_update_req(F2612->OPN.ST.param); + ym2612_device::update_request(F2612->OPN.ST.device); OPNWriteReg(&(F2612->OPN),addr | 0x100,v); break; } @@ -2529,7 +2532,7 @@ int ym2612_write(void *chip, int a, uint8_t v) uint8_t ym2612_read(void *chip,int a) { - YM2612 *F2612 = (YM2612 *)chip; + ym2612_state *F2612 = (ym2612_state *)chip; switch( a&3) { @@ -2538,7 +2541,7 @@ uint8_t ym2612_read(void *chip,int a) case 1: case 2: case 3: - LOG(F2612->device,LOG_WAR,("YM2612 #%p:A=%d read unmapped area\n",F2612->OPN.ST.param,a)); + LOG(F2612->device,LOG_WAR,("YM2612 #%p:A=%d read unmapped area\n",F2612->OPN.ST.device,a)); return FM_STATUS_FLAG(&F2612->OPN.ST); } return 0; @@ -2546,7 +2549,7 @@ uint8_t ym2612_read(void *chip,int a) int ym2612_timer_over(void *chip,int c) { - YM2612 *F2612 = (YM2612 *)chip; + ym2612_state *F2612 = (ym2612_state *)chip; if( c ) { /* Timer B */ @@ -2554,7 +2557,7 @@ int ym2612_timer_over(void *chip,int c) } else { /* Timer A */ - ym2612_update_req(F2612->OPN.ST.param); + ym2612_device::update_request(F2612->OPN.ST.device); /* timer update */ TimerAOver( &(F2612->OPN.ST) ); /* CSM mode key,TL controll */ diff --git a/src/devices/sound/fmopl.cpp b/src/devices/sound/fmopl.cpp index fe4d80a1bc6..a9c15478779 100644 --- a/src/devices/sound/fmopl.cpp +++ b/src/devices/sound/fmopl.cpp @@ -194,6 +194,14 @@ static FILE *sample[1]; #define OPL_TYPE_Y8950 (OPL_TYPE_ADPCM|OPL_TYPE_KEYBOARD|OPL_TYPE_IO) +namespace { + +// TODO: make these static members + +#define RATE_STEPS (8) +extern const unsigned char eg_rate_shift[16+64+16]; +extern const unsigned char eg_rate_select[16+64+16]; + struct OPL_SLOT { @@ -234,6 +242,33 @@ struct OPL_SLOT /* waveform select */ uint16_t wavetable; + + void KEYON(uint32_t key_set) + { + if( !key ) + { + /* restart Phase Generator */ + Cnt = 0; + /* phase -> Attack */ + state = EG_ATT; + } + key |= key_set; + } + + void KEYOFF(uint32_t key_clr) + { + if( key ) + { + key &= key_clr; + + if( !key ) + { + /* phase -> Release */ + if (state>EG_REL) + state = EG_REL; + } + } + } }; struct OPL_CH @@ -244,6 +279,36 @@ struct OPL_CH uint32_t fc; /* Freq. Increment base */ uint32_t ksl_base; /* KeyScaleLevel Base step */ uint8_t kcode; /* key code (for key scaling) */ + + + /* update phase increment counter of operator (also update the EG rates if necessary) */ + void CALC_FCSLOT(OPL_SLOT &SLOT) + { + /* (frequency) phase increment counter */ + SLOT.Incr = fc * SLOT.mul; + int const ksr = kcode >> SLOT.KSR; + + if( SLOT.ksr != ksr ) + { + SLOT.ksr = ksr; + + /* calculate envelope generator rates */ + if ((SLOT.ar + SLOT.ksr) < 16+62) + { + SLOT.eg_sh_ar = eg_rate_shift [SLOT.ar + SLOT.ksr ]; + SLOT.eg_sel_ar = eg_rate_select[SLOT.ar + SLOT.ksr ]; + } + else + { + SLOT.eg_sh_ar = 0; + SLOT.eg_sel_ar = 13*RATE_STEPS; + } + SLOT.eg_sh_dr = eg_rate_shift [SLOT.dr + SLOT.ksr ]; + SLOT.eg_sel_dr = eg_rate_select[SLOT.dr + SLOT.ksr ]; + SLOT.eg_sh_rr = eg_rate_shift [SLOT.rr + SLOT.ksr ]; + SLOT.eg_sel_rr = eg_rate_select[SLOT.rr + SLOT.ksr ]; + } + } }; /* OPL state */ @@ -291,19 +356,19 @@ struct FM_OPL uint8_t portLatch; OPL_PORTHANDLER_R porthandler_r; OPL_PORTHANDLER_W porthandler_w; - void * port_param; + device_t * port_param; OPL_PORTHANDLER_R keyboardhandler_r; OPL_PORTHANDLER_W keyboardhandler_w; - void * keyboard_param; + device_t * keyboard_param; #endif /* external event callback handlers */ OPL_TIMERHANDLER timer_handler; /* TIMER handler */ - void *TimerParam; /* TIMER parameter */ + device_t *TimerParam; /* TIMER parameter */ OPL_IRQHANDLER IRQHandler; /* IRQ handler */ - void *IRQParam; /* IRQ parameter */ + device_t *IRQParam; /* IRQ parameter */ OPL_UPDATEHANDLER UpdateHandler;/* stream update handler */ - void *UpdateParam; /* stream update parameter */ + device_t *UpdateParam; /* stream update parameter */ uint8_t type; /* chip type */ uint8_t address; /* address register */ @@ -322,6 +387,619 @@ struct FM_OPL #if BUILD_Y8950 int32_t output_deltat[4]; /* for Y8950 DELTA-T, chip is mono, that 4 here is just for safety */ #endif + + + /* status set and IRQ handling */ + void STATUS_SET(int flag) + { + /* set status flag */ + status |= flag; + if(!(status & 0x80)) + { + if(status & statusmask) + { /* IRQ on */ + status |= 0x80; + /* callback user interrupt handler (IRQ is OFF to ON) */ + if(IRQHandler) (IRQHandler)(IRQParam,1); + } + } + } + + /* status reset and IRQ handling */ + void STATUS_RESET(int flag) + { + /* reset status flag */ + status &=~flag; + if(status & 0x80) + { + if (!(status & statusmask) ) + { + status &= 0x7f; + /* callback user interrupt handler (IRQ is ON to OFF) */ + if(IRQHandler) (IRQHandler)(IRQParam,0); + } + } + } + + /* IRQ mask set */ + void STATUSMASK_SET(int flag) + { + statusmask = flag; + /* IRQ handling check */ + STATUS_SET(0); + STATUS_RESET(0); + } + + + /* advance LFO to next sample */ + void advance_lfo() + { + /* LFO */ + lfo_am_cnt += lfo_am_inc; + if (lfo_am_cnt >= (uint32_t(LFO_AM_TAB_ELEMENTS) << LFO_SH)) /* lfo_am_table is 210 elements long */ + lfo_am_cnt -= (uint32_t(LFO_AM_TAB_ELEMENTS) << LFO_SH); + + uint8_t const tmp = lfo_am_table[ lfo_am_cnt >> LFO_SH ]; + + LFO_AM = lfo_am_depth ? tmp : tmp >> 2; + + lfo_pm_cnt += lfo_pm_inc; + LFO_PM = (lfo_pm_cnt>>LFO_SH & 7) | lfo_pm_depth_range; + } + + /* advance to next sample */ + void advance() + { + eg_timer += eg_timer_add; + + while (eg_timer >= eg_timer_overflow) + { + eg_timer -= eg_timer_overflow; + + eg_cnt++; + + for (int i=0; i<9*2; i++) + { + OPL_CH &CH = P_CH[i/2]; + OPL_SLOT &op = CH.SLOT[i&1]; + + /* Envelope Generator */ + switch(op.state) + { + case EG_ATT: /* attack phase */ + if ( !(eg_cnt & ((1<>op.eg_sh_ar)&7)]) + ) >>3; + + if (op.volume <= MIN_ATT_INDEX) + { + op.volume = MIN_ATT_INDEX; + op.state = EG_DEC; + } + + } + break; + + case EG_DEC: /* decay phase */ + if ( !(eg_cnt & ((1<>op.eg_sh_dr)&7)]; + + if ( op.volume >= op.sl ) + op.state = EG_SUS; + + } + break; + + case EG_SUS: /* sustain phase */ + + /* this is important behaviour: + one can change percusive/non-percussive modes on the fly and + the chip will remain in sustain phase - verified on real YM3812 */ + + if(op.eg_type) /* non-percussive mode */ + { + /* do nothing */ + } + else /* percussive mode */ + { + /* during sustain phase chip adds Release Rate (in percussive mode) */ + if ( !(eg_cnt & ((1<>op.eg_sh_rr)&7)]; + + if ( op.volume >= MAX_ATT_INDEX ) + op.volume = MAX_ATT_INDEX; + } + /* else do nothing in sustain phase */ + } + break; + + case EG_REL: /* release phase */ + if ( !(eg_cnt & ((1<>op.eg_sh_rr)&7)]; + + if ( op.volume >= MAX_ATT_INDEX ) + { + op.volume = MAX_ATT_INDEX; + op.state = EG_OFF; + } + + } + break; + + default: + break; + } + } + } + + for (int i=0; i<9*2; i++) + { + OPL_CH &CH = P_CH[i/2]; + OPL_SLOT &op = CH.SLOT[i&1]; + + /* Phase Generator */ + if(op.vib) + { + unsigned int block_fnum = CH.block_fnum; + unsigned int const fnum_lfo = (block_fnum&0x0380) >> 7; + + signed int const lfo_fn_table_index_offset = lfo_pm_table[LFO_PM + 16*fnum_lfo ]; + + if (lfo_fn_table_index_offset) /* LFO phase modulation active */ + { + block_fnum += lfo_fn_table_index_offset; + uint8_t const block = (block_fnum&0x1c00) >> 10; + op.Cnt += (fn_tab[block_fnum&0x03ff] >> (7-block)) * op.mul; + } + else /* LFO phase modulation = zero */ + { + op.Cnt += op.Incr; + } + } + else /* LFO phase modulation disabled for this operator */ + { + op.Cnt += op.Incr; + } + } + + /* The Noise Generator of the YM3812 is 23-bit shift register. + * Period is equal to 2^23-2 samples. + * Register works at sampling frequency of the chip, so output + * can change on every sample. + * + * Output of the register and input to the bit 22 is: + * bit0 XOR bit14 XOR bit15 XOR bit22 + * + * Simply use bit 22 as the noise output. + */ + + noise_p += noise_f; + int i = noise_p >> FREQ_SH; /* number of events (shifts of the shift register) */ + noise_p &= FREQ_MASK; + while (i) + { + /* + uint32_t j; + j = ( (noise_rng) ^ (noise_rng>>14) ^ (noise_rng>>15) ^ (noise_rng>>22) ) & 1; + noise_rng = (j<<22) | (noise_rng>>1); + */ + + /* + Instead of doing all the logic operations above, we + use a trick here (and use bit 0 as the noise output). + The difference is only that the noise bit changes one + step ahead. This doesn't matter since we don't know + what is real state of the noise_rng after the reset. + */ + + if (noise_rng & 1) noise_rng ^= 0x800302; + noise_rng >>= 1; + + i--; + } + } + + /* calculate output */ + void CALC_CH(OPL_CH &CH) + { + OPL_SLOT *SLOT; + unsigned int env; + signed int out; + + phase_modulation = 0; + + /* SLOT 1 */ + SLOT = &CH.SLOT[SLOT1]; + env = volume_calc(*SLOT); + out = SLOT->op1_out[0] + SLOT->op1_out[1]; + SLOT->op1_out[0] = SLOT->op1_out[1]; + *SLOT->connect1 += SLOT->op1_out[0]; + SLOT->op1_out[1] = 0; + if( env < ENV_QUIET ) + { + if (!SLOT->FB) + out = 0; + SLOT->op1_out[1] = op_calc1(SLOT->Cnt, env, (out<FB), SLOT->wavetable ); + } + + /* SLOT 2 */ + SLOT++; + env = volume_calc(*SLOT); + if( env < ENV_QUIET ) + output[0] += op_calc(SLOT->Cnt, env, phase_modulation, SLOT->wavetable); + } + + /* + operators used in the rhythm sounds generation process: + + Envelope Generator: + + channel operator register number Bass High Snare Tom Top + / slot number TL ARDR SLRR Wave Drum Hat Drum Tom Cymbal + 6 / 0 12 50 70 90 f0 + + 6 / 1 15 53 73 93 f3 + + 7 / 0 13 51 71 91 f1 + + 7 / 1 16 54 74 94 f4 + + 8 / 0 14 52 72 92 f2 + + 8 / 1 17 55 75 95 f5 + + + Phase Generator: + + channel operator register number Bass High Snare Tom Top + / slot number MULTIPLE Drum Hat Drum Tom Cymbal + 6 / 0 12 30 + + 6 / 1 15 33 + + 7 / 0 13 31 + + + + 7 / 1 16 34 ----- n o t u s e d ----- + 8 / 0 14 32 + + 8 / 1 17 35 + + + + channel operator register number Bass High Snare Tom Top + number number BLK/FNUM2 FNUM Drum Hat Drum Tom Cymbal + 6 12,15 B6 A6 + + + 7 13,16 B7 A7 + + + + + 8 14,17 B8 A8 + + + + + */ + + /* calculate rhythm */ + + void CALC_RH() + { + unsigned int const noise = BIT(noise_rng, 0); + + OPL_SLOT *SLOT; + signed int out; + unsigned int env; + + + /* Bass Drum (verified on real YM3812): + - depends on the channel 6 'connect' register: + when connect = 0 it works the same as in normal (non-rhythm) mode (op1->op2->out) + when connect = 1 _only_ operator 2 is present on output (op2->out), operator 1 is ignored + - output sample always is multiplied by 2 + */ + + phase_modulation = 0; + /* SLOT 1 */ + SLOT = &P_CH[6].SLOT[SLOT1]; + env = volume_calc(*SLOT); + + out = SLOT->op1_out[0] + SLOT->op1_out[1]; + SLOT->op1_out[0] = SLOT->op1_out[1]; + + if (!SLOT->CON) + phase_modulation = SLOT->op1_out[0]; + /* else ignore output of operator 1 */ + + SLOT->op1_out[1] = 0; + if( env < ENV_QUIET ) + { + if (!SLOT->FB) + out = 0; + SLOT->op1_out[1] = op_calc1(SLOT->Cnt, env, (out<FB), SLOT->wavetable ); + } + + /* SLOT 2 */ + SLOT++; + env = volume_calc(*SLOT); + if( env < ENV_QUIET ) + output[0] += op_calc(SLOT->Cnt, env, phase_modulation, SLOT->wavetable) * 2; + + + /* Phase generation is based on: */ + /* HH (13) channel 7->slot 1 combined with channel 8->slot 2 (same combination as TOP CYMBAL but different output phases) */ + /* SD (16) channel 7->slot 1 */ + /* TOM (14) channel 8->slot 1 */ + /* TOP (17) channel 7->slot 1 combined with channel 8->slot 2 (same combination as HIGH HAT but different output phases) */ + + /* Envelope generation based on: */ + /* HH channel 7->slot1 */ + /* SD channel 7->slot2 */ + /* TOM channel 8->slot1 */ + /* TOP channel 8->slot2 */ + + + /* The following formulas can be well optimized. + I leave them in direct form for now (in case I've missed something). + */ + + /* High Hat (verified on real YM3812) */ + OPL_SLOT const &SLOT7_1 = P_CH[7].SLOT[SLOT1]; + OPL_SLOT const &SLOT8_2 = P_CH[8].SLOT[SLOT2]; + env = volume_calc(SLOT7_1); + if( env < ENV_QUIET ) + { + /* high hat phase generation: + phase = d0 or 234 (based on frequency only) + phase = 34 or 2d0 (based on noise) + */ + + /* base frequency derived from operator 1 in channel 7 */ + unsigned char const bit7 = BIT(SLOT7_1.Cnt >> FREQ_SH, 7); + unsigned char const bit3 = BIT(SLOT7_1.Cnt >> FREQ_SH, 3); + unsigned char const bit2 = BIT(SLOT7_1.Cnt >> FREQ_SH, 2); + + unsigned char const res1 = (bit2 ^ bit7) | bit3; + + /* when res1 = 0 phase = 0x000 | 0xd0; */ + /* when res1 = 1 phase = 0x200 | (0xd0>>2); */ + uint32_t phase = res1 ? (0x200|(0xd0>>2)) : 0xd0; + + /* enable gate based on frequency of operator 2 in channel 8 */ + unsigned char const bit5e= BIT(SLOT8_2.Cnt >> FREQ_SH, 5); + unsigned char const bit3e= BIT(SLOT8_2.Cnt >> FREQ_SH, 3); + + unsigned char const res2 = bit3e ^ bit5e; + + /* when res2 = 0 pass the phase from calculation above (res1); */ + /* when res2 = 1 phase = 0x200 | (0xd0>>2); */ + if (res2) + phase = (0x200|(0xd0>>2)); + + + /* when phase & 0x200 is set and noise=1 then phase = 0x200|0xd0 */ + /* when phase & 0x200 is set and noise=0 then phase = 0x200|(0xd0>>2), ie no change */ + if (phase&0x200) + { + if (noise) + phase = 0x200|0xd0; + } + else + /* when phase & 0x200 is clear and noise=1 then phase = 0xd0>>2 */ + /* when phase & 0x200 is clear and noise=0 then phase = 0xd0, ie no change */ + { + if (noise) + phase = 0xd0>>2; + } + + output[0] += op_calc(phase<> FREQ_SH, 8); + + /* when bit8 = 0 phase = 0x100; */ + /* when bit8 = 1 phase = 0x200; */ + uint32_t phase = bit8 ? 0x200 : 0x100; + + /* Noise bit XOR'es phase by 0x100 */ + /* when noisebit = 0 pass the phase from calculation above */ + /* when noisebit = 1 phase ^= 0x100; */ + /* in other words: phase ^= (noisebit<<8); */ + if (noise) + phase ^= 0x100; + + output[0] += op_calc(phase<> FREQ_SH, 7); + unsigned char const bit3 = BIT(SLOT7_1.Cnt >> FREQ_SH, 3); + unsigned char const bit2 = BIT(SLOT7_1.Cnt >> FREQ_SH, 2); + + unsigned char const res1 = (bit2 ^ bit7) | bit3; + + /* when res1 = 0 phase = 0x000 | 0x100; */ + /* when res1 = 1 phase = 0x200 | 0x100; */ + uint32_t phase = res1 ? 0x300 : 0x100; + + /* enable gate based on frequency of operator 2 in channel 8 */ + unsigned char const bit5e= BIT(SLOT8_2.Cnt >> FREQ_SH, 5); + unsigned char const bit3e= BIT(SLOT8_2.Cnt >> FREQ_SH, 3); + + unsigned char const res2 = bit3e ^ bit5e; + /* when res2 = 0 pass the phase from calculation above (res1); */ + /* when res2 = 1 phase = 0x200 | 0x100; */ + if (res2) + phase = 0x300; + + output[0] += op_calc(phase<> 6]; + SLOT.TL = (v&0x3f)<<(ENV_BITS-1-7); /* 7 bits TL (bit 6 = always 0) */ + + SLOT.TLL = SLOT.TL + (CH.ksl_base >> SLOT.ksl); + } + + /* set attack rate & decay rate */ + void set_ar_dr(int slot, int v) + { + OPL_CH &CH = P_CH[slot/2]; + OPL_SLOT &SLOT = CH.SLOT[slot&1]; + + SLOT.ar = (v>>4) ? 16 + ((v>>4) <<2) : 0; + + if ((SLOT.ar + SLOT.ksr) < 16+62) + { + SLOT.eg_sh_ar = eg_rate_shift [SLOT.ar + SLOT.ksr ]; + SLOT.eg_sel_ar = eg_rate_select[SLOT.ar + SLOT.ksr ]; + } + else + { + SLOT.eg_sh_ar = 0; + SLOT.eg_sel_ar = 13*RATE_STEPS; + } + + SLOT.dr = (v&0x0f)? 16 + ((v&0x0f)<<2) : 0; + SLOT.eg_sh_dr = eg_rate_shift [SLOT.dr + SLOT.ksr ]; + SLOT.eg_sel_dr = eg_rate_select[SLOT.dr + SLOT.ksr ]; + } + + /* set sustain level & release rate */ + void set_sl_rr(int slot, int v) + { + OPL_CH &CH = P_CH[slot/2]; + OPL_SLOT &SLOT = CH.SLOT[slot&1]; + + SLOT.sl = sl_tab[ v>>4 ]; + + SLOT.rr = (v&0x0f)? 16 + ((v&0x0f)<<2) : 0; + SLOT.eg_sh_rr = eg_rate_shift [SLOT.rr + SLOT.ksr ]; + SLOT.eg_sel_rr = eg_rate_select[SLOT.rr + SLOT.ksr ]; + } + + + void WriteReg(int r, int v); + void ResetChip(); + void postload(); + + + /* lock/unlock for common table */ + static int LockTable(device_t *device) + { + num_lock++; + if(num_lock>1) return 0; + + /* first time */ + + /* allocate total level table (128kb space) */ + if( !init_tables() ) + { + num_lock--; + return -1; + } + + return 0; + } + + static void UnLockTable() + { + if(num_lock) num_lock--; + if(num_lock) return; + + /* last time */ + CloseTable(); + } + +private: + uint32_t volume_calc(OPL_SLOT const &OP) const + { + return OP.TLL + uint32_t(OP.volume) + (LFO_AM & OP.AMmask); + } + + static inline signed int op_calc(uint32_t phase, unsigned int env, signed int pm, unsigned int wave_tab) + { + uint32_t const p = (env<<4) + sin_tab[wave_tab + ((((signed int)((phase & ~FREQ_MASK) + (pm<<16))) >> FREQ_SH ) & SIN_MASK) ]; + + return (p >= TL_TAB_LEN) ? 0 : tl_tab[p]; + } + + static inline signed int op_calc1(uint32_t phase, unsigned int env, signed int pm, unsigned int wave_tab) + { + uint32_t const p = (env<<4) + sin_tab[wave_tab + ((((signed int)((phase & ~FREQ_MASK) + pm )) >> FREQ_SH ) & SIN_MASK) ]; + + return (p >= TL_TAB_LEN) ? 0 : tl_tab[p]; + } + + + static int init_tables(); + + static void CloseTable() + { +#ifdef SAVE_SAMPLE + fclose(sample[0]); +#endif + } + + + static constexpr uint32_t SC(uint32_t db) { return uint32_t(db * (2.0 / ENV_STEP)); } + + + static constexpr double DV = 0.1875 / 2.0; + + + /* TL_TAB_LEN is calculated as: + * 12 - sinus amplitude bits (Y axis) + * 2 - sinus sign bit (Y axis) + * TL_RES_LEN - sinus resolution (X axis) + */ + static constexpr unsigned TL_TAB_LEN = 12 * 2 * TL_RES_LEN; + static constexpr unsigned ENV_QUIET = TL_TAB_LEN >> 4; + + static constexpr unsigned LFO_AM_TAB_ELEMENTS = 210; + + static const double ksl_tab[8*16]; + static const uint32_t ksl_shift[4]; + static const uint32_t sl_tab[16]; + static const unsigned char eg_inc[15 * RATE_STEPS]; + + static const uint8_t mul_tab[16]; + static signed int tl_tab[TL_TAB_LEN]; + static unsigned int sin_tab[SIN_LEN * 4]; + + static const uint8_t lfo_am_table[LFO_AM_TAB_ELEMENTS]; + static const int8_t lfo_pm_table[8 * 8 * 2]; + + static int num_lock; }; @@ -338,8 +1016,7 @@ static const int slot_array[32]= /* key scale level */ /* table is 3dB/octave , DV converts this into 6dB/octave */ /* 0.1875 is bit 0 weight of the envelope counter (volume) expressed in the 'decibel' scale */ -#define DV (0.1875/2.0) -static const double ksl_tab[8*16]= +const double FM_OPL::ksl_tab[8*16]= { /* OCT 0 */ 0.000/DV, 0.000/DV, 0.000/DV, 0.000/DV, @@ -382,24 +1059,20 @@ static const double ksl_tab[8*16]= 18.000/DV,18.750/DV,19.125/DV,19.500/DV, 19.875/DV,20.250/DV,20.625/DV,21.000/DV }; -#undef DV /* 0 / 3.0 / 1.5 / 6.0 dB/OCT */ -static const uint32_t ksl_shift[4] = { 31, 1, 2, 0 }; +const uint32_t FM_OPL::ksl_shift[4] = { 31, 1, 2, 0 }; /* sustain level table (3dB per step) */ /* 0 - 15: 0, 3, 6, 9,12,15,18,21,24,27,30,33,36,39,42,93 (dB)*/ -#define SC(db) (uint32_t) ( db * (2.0/ENV_STEP) ) -static const uint32_t sl_tab[16]={ - SC( 0),SC( 1),SC( 2),SC(3 ),SC(4 ),SC(5 ),SC(6 ),SC( 7), +const uint32_t FM_OPL::sl_tab[16]={ + SC( 0),SC( 1),SC( 2),SC( 3),SC( 4),SC( 5),SC( 6),SC( 7), SC( 8),SC( 9),SC(10),SC(11),SC(12),SC(13),SC(14),SC(31) }; -#undef SC -#define RATE_STEPS (8) -static const unsigned char eg_inc[15*RATE_STEPS]={ +const unsigned char FM_OPL::eg_inc[15*RATE_STEPS]={ /*cycle:0 1 2 3 4 5 6 7*/ /* 0 */ 0,1, 0,1, 0,1, 0,1, /* rates 00..12 0 (increment by 0 or 1) */ @@ -426,7 +1099,7 @@ static const unsigned char eg_inc[15*RATE_STEPS]={ #define O(a) (a*RATE_STEPS) /*note that there is no O(13) in this table - it's directly in the code */ -static const unsigned char eg_rate_select[16+64+16]={ /* Envelope Generator rates (16 + 64 rates + 16 RKS) */ +const unsigned char eg_rate_select[16+64+16]={ /* Envelope Generator rates (16 + 64 rates + 16 RKS) */ /* 16 infinite time rates */ O(14),O(14),O(14),O(14),O(14),O(14),O(14),O(14), O(14),O(14),O(14),O(14),O(14),O(14),O(14),O(14), @@ -435,712 +1108,212 @@ O(14),O(14),O(14),O(14),O(14),O(14),O(14),O(14), O( 0),O( 1),O( 2),O( 3), O( 0),O( 1),O( 2),O( 3), O( 0),O( 1),O( 2),O( 3), -O( 0),O( 1),O( 2),O( 3), -O( 0),O( 1),O( 2),O( 3), -O( 0),O( 1),O( 2),O( 3), -O( 0),O( 1),O( 2),O( 3), -O( 0),O( 1),O( 2),O( 3), -O( 0),O( 1),O( 2),O( 3), -O( 0),O( 1),O( 2),O( 3), -O( 0),O( 1),O( 2),O( 3), -O( 0),O( 1),O( 2),O( 3), -O( 0),O( 1),O( 2),O( 3), - -/* rate 13 */ -O( 4),O( 5),O( 6),O( 7), - -/* rate 14 */ -O( 8),O( 9),O(10),O(11), - -/* rate 15 */ -O(12),O(12),O(12),O(12), - -/* 16 dummy rates (same as 15 3) */ -O(12),O(12),O(12),O(12),O(12),O(12),O(12),O(12), -O(12),O(12),O(12),O(12),O(12),O(12),O(12),O(12), - -}; -#undef O - -/*rate 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 */ -/*shift 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 0, 0, 0 */ -/*mask 4095, 2047, 1023, 511, 255, 127, 63, 31, 15, 7, 3, 1, 0, 0, 0, 0 */ - -#define O(a) (a*1) -static const unsigned char eg_rate_shift[16+64+16]={ /* Envelope Generator counter shifts (16 + 64 rates + 16 RKS) */ -/* 16 infinite time rates */ -O(0),O(0),O(0),O(0),O(0),O(0),O(0),O(0), -O(0),O(0),O(0),O(0),O(0),O(0),O(0),O(0), - -/* rates 00-12 */ -O(12),O(12),O(12),O(12), -O(11),O(11),O(11),O(11), -O(10),O(10),O(10),O(10), -O( 9),O( 9),O( 9),O( 9), -O( 8),O( 8),O( 8),O( 8), -O( 7),O( 7),O( 7),O( 7), -O( 6),O( 6),O( 6),O( 6), -O( 5),O( 5),O( 5),O( 5), -O( 4),O( 4),O( 4),O( 4), -O( 3),O( 3),O( 3),O( 3), -O( 2),O( 2),O( 2),O( 2), -O( 1),O( 1),O( 1),O( 1), -O( 0),O( 0),O( 0),O( 0), - -/* rate 13 */ -O( 0),O( 0),O( 0),O( 0), - -/* rate 14 */ -O( 0),O( 0),O( 0),O( 0), - -/* rate 15 */ -O( 0),O( 0),O( 0),O( 0), - -/* 16 dummy rates (same as 15 3) */ -O( 0),O( 0),O( 0),O( 0),O( 0),O( 0),O( 0),O( 0), -O( 0),O( 0),O( 0),O( 0),O( 0),O( 0),O( 0),O( 0), - -}; -#undef O - - -/* multiple table */ -#define ML 2 -static const uint8_t mul_tab[16]= { -/* 1/2, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,10,12,12,15,15 */ - ML/2, 1*ML, 2*ML, 3*ML, 4*ML, 5*ML, 6*ML, 7*ML, - 8*ML, 9*ML,10*ML,10*ML,12*ML,12*ML,15*ML,15*ML -}; -#undef ML - -/* TL_TAB_LEN is calculated as: -* 12 - sinus amplitude bits (Y axis) -* 2 - sinus sign bit (Y axis) -* TL_RES_LEN - sinus resolution (X axis) -*/ -#define TL_TAB_LEN (12*2*TL_RES_LEN) -static signed int tl_tab[TL_TAB_LEN]; - -#define ENV_QUIET (TL_TAB_LEN>>4) - -/* sin waveform table in 'decibel' scale */ -/* four waveforms on OPL2 type chips */ -static unsigned int sin_tab[SIN_LEN * 4]; - - -/* LFO Amplitude Modulation table (verified on real YM3812) - 27 output levels (triangle waveform); 1 level takes one of: 192, 256 or 448 samples - - Length: 210 elements. - - Each of the elements has to be repeated - exactly 64 times (on 64 consecutive samples). - The whole table takes: 64 * 210 = 13440 samples. - - When AM = 1 data is used directly - When AM = 0 data is divided by 4 before being used (losing precision is important) -*/ - -#define LFO_AM_TAB_ELEMENTS 210 - -static const uint8_t lfo_am_table[LFO_AM_TAB_ELEMENTS] = { -0,0,0,0,0,0,0, -1,1,1,1, -2,2,2,2, -3,3,3,3, -4,4,4,4, -5,5,5,5, -6,6,6,6, -7,7,7,7, -8,8,8,8, -9,9,9,9, -10,10,10,10, -11,11,11,11, -12,12,12,12, -13,13,13,13, -14,14,14,14, -15,15,15,15, -16,16,16,16, -17,17,17,17, -18,18,18,18, -19,19,19,19, -20,20,20,20, -21,21,21,21, -22,22,22,22, -23,23,23,23, -24,24,24,24, -25,25,25,25, -26,26,26, -25,25,25,25, -24,24,24,24, -23,23,23,23, -22,22,22,22, -21,21,21,21, -20,20,20,20, -19,19,19,19, -18,18,18,18, -17,17,17,17, -16,16,16,16, -15,15,15,15, -14,14,14,14, -13,13,13,13, -12,12,12,12, -11,11,11,11, -10,10,10,10, -9,9,9,9, -8,8,8,8, -7,7,7,7, -6,6,6,6, -5,5,5,5, -4,4,4,4, -3,3,3,3, -2,2,2,2, -1,1,1,1 -}; - -/* LFO Phase Modulation table (verified on real YM3812) */ -static const int8_t lfo_pm_table[8*8*2] = { -/* FNUM2/FNUM = 00 0xxxxxxx (0x0000) */ -0, 0, 0, 0, 0, 0, 0, 0, /*LFO PM depth = 0*/ -0, 0, 0, 0, 0, 0, 0, 0, /*LFO PM depth = 1*/ - -/* FNUM2/FNUM = 00 1xxxxxxx (0x0080) */ -0, 0, 0, 0, 0, 0, 0, 0, /*LFO PM depth = 0*/ -1, 0, 0, 0,-1, 0, 0, 0, /*LFO PM depth = 1*/ - -/* FNUM2/FNUM = 01 0xxxxxxx (0x0100) */ -1, 0, 0, 0,-1, 0, 0, 0, /*LFO PM depth = 0*/ -2, 1, 0,-1,-2,-1, 0, 1, /*LFO PM depth = 1*/ - -/* FNUM2/FNUM = 01 1xxxxxxx (0x0180) */ -1, 0, 0, 0,-1, 0, 0, 0, /*LFO PM depth = 0*/ -3, 1, 0,-1,-3,-1, 0, 1, /*LFO PM depth = 1*/ - -/* FNUM2/FNUM = 10 0xxxxxxx (0x0200) */ -2, 1, 0,-1,-2,-1, 0, 1, /*LFO PM depth = 0*/ -4, 2, 0,-2,-4,-2, 0, 2, /*LFO PM depth = 1*/ - -/* FNUM2/FNUM = 10 1xxxxxxx (0x0280) */ -2, 1, 0,-1,-2,-1, 0, 1, /*LFO PM depth = 0*/ -5, 2, 0,-2,-5,-2, 0, 2, /*LFO PM depth = 1*/ - -/* FNUM2/FNUM = 11 0xxxxxxx (0x0300) */ -3, 1, 0,-1,-3,-1, 0, 1, /*LFO PM depth = 0*/ -6, 3, 0,-3,-6,-3, 0, 3, /*LFO PM depth = 1*/ - -/* FNUM2/FNUM = 11 1xxxxxxx (0x0380) */ -3, 1, 0,-1,-3,-1, 0, 1, /*LFO PM depth = 0*/ -7, 3, 0,-3,-7,-3, 0, 3 /*LFO PM depth = 1*/ -}; - - -/* lock level of common table */ -static int num_lock = 0; - - -#define SLOT7_1 (&OPL->P_CH[7].SLOT[SLOT1]) -#define SLOT7_2 (&OPL->P_CH[7].SLOT[SLOT2]) -#define SLOT8_1 (&OPL->P_CH[8].SLOT[SLOT1]) -#define SLOT8_2 (&OPL->P_CH[8].SLOT[SLOT2]) - - - - -static inline int limit( int val, int max, int min ) { - if ( val > max ) - val = max; - else if ( val < min ) - val = min; - - return val; -} - - -/* status set and IRQ handling */ -static inline void OPL_STATUS_SET(FM_OPL *OPL,int flag) -{ - /* set status flag */ - OPL->status |= flag; - if(!(OPL->status & 0x80)) - { - if(OPL->status & OPL->statusmask) - { /* IRQ on */ - OPL->status |= 0x80; - /* callback user interrupt handler (IRQ is OFF to ON) */ - if(OPL->IRQHandler) (OPL->IRQHandler)(OPL->IRQParam,1); - } - } -} - -/* status reset and IRQ handling */ -static inline void OPL_STATUS_RESET(FM_OPL *OPL,int flag) -{ - /* reset status flag */ - OPL->status &=~flag; - if((OPL->status & 0x80)) - { - if (!(OPL->status & OPL->statusmask) ) - { - OPL->status &= 0x7f; - /* callback user interrupt handler (IRQ is ON to OFF) */ - if(OPL->IRQHandler) (OPL->IRQHandler)(OPL->IRQParam,0); - } - } -} - -/* IRQ mask set */ -static inline void OPL_STATUSMASK_SET(FM_OPL *OPL,int flag) -{ - OPL->statusmask = flag; - /* IRQ handling check */ - OPL_STATUS_SET(OPL,0); - OPL_STATUS_RESET(OPL,0); -} - - -/* advance LFO to next sample */ -static inline void advance_lfo(FM_OPL *OPL) -{ - uint8_t tmp; - - /* LFO */ - OPL->lfo_am_cnt += OPL->lfo_am_inc; - if (OPL->lfo_am_cnt >= ((uint32_t)LFO_AM_TAB_ELEMENTS<lfo_am_cnt -= ((uint32_t)LFO_AM_TAB_ELEMENTS<lfo_am_cnt >> LFO_SH ]; - - if (OPL->lfo_am_depth) - OPL->LFO_AM = tmp; - else - OPL->LFO_AM = tmp>>2; - - OPL->lfo_pm_cnt += OPL->lfo_pm_inc; - OPL->LFO_PM = ((OPL->lfo_pm_cnt>>LFO_SH) & 7) | OPL->lfo_pm_depth_range; -} - -/* advance to next sample */ -static inline void advance(FM_OPL *OPL) -{ - OPL_CH *CH; - OPL_SLOT *op; - int i; - - OPL->eg_timer += OPL->eg_timer_add; - - while (OPL->eg_timer >= OPL->eg_timer_overflow) - { - OPL->eg_timer -= OPL->eg_timer_overflow; - - OPL->eg_cnt++; - - for (i=0; i<9*2; i++) - { - CH = &OPL->P_CH[i/2]; - op = &CH->SLOT[i&1]; - - /* Envelope Generator */ - switch(op->state) - { - case EG_ATT: /* attack phase */ - if ( !(OPL->eg_cnt & ((1<eg_sh_ar)-1) ) ) - { - op->volume += (~op->volume * - (eg_inc[op->eg_sel_ar + ((OPL->eg_cnt>>op->eg_sh_ar)&7)]) - ) >>3; - - if (op->volume <= MIN_ATT_INDEX) - { - op->volume = MIN_ATT_INDEX; - op->state = EG_DEC; - } - - } - break; - - case EG_DEC: /* decay phase */ - if ( !(OPL->eg_cnt & ((1<eg_sh_dr)-1) ) ) - { - op->volume += eg_inc[op->eg_sel_dr + ((OPL->eg_cnt>>op->eg_sh_dr)&7)]; - - if ( op->volume >= op->sl ) - op->state = EG_SUS; - - } - break; - - case EG_SUS: /* sustain phase */ - - /* this is important behaviour: - one can change percusive/non-percussive modes on the fly and - the chip will remain in sustain phase - verified on real YM3812 */ - - if(op->eg_type) /* non-percussive mode */ - { - /* do nothing */ - } - else /* percussive mode */ - { - /* during sustain phase chip adds Release Rate (in percussive mode) */ - if ( !(OPL->eg_cnt & ((1<eg_sh_rr)-1) ) ) - { - op->volume += eg_inc[op->eg_sel_rr + ((OPL->eg_cnt>>op->eg_sh_rr)&7)]; - - if ( op->volume >= MAX_ATT_INDEX ) - op->volume = MAX_ATT_INDEX; - } - /* else do nothing in sustain phase */ - } - break; - - case EG_REL: /* release phase */ - if ( !(OPL->eg_cnt & ((1<eg_sh_rr)-1) ) ) - { - op->volume += eg_inc[op->eg_sel_rr + ((OPL->eg_cnt>>op->eg_sh_rr)&7)]; - - if ( op->volume >= MAX_ATT_INDEX ) - { - op->volume = MAX_ATT_INDEX; - op->state = EG_OFF; - } - - } - break; - - default: - break; - } - } - } - - for (i=0; i<9*2; i++) - { - CH = &OPL->P_CH[i/2]; - op = &CH->SLOT[i&1]; - - /* Phase Generator */ - if(op->vib) - { - uint8_t block; - unsigned int block_fnum = CH->block_fnum; - - unsigned int fnum_lfo = (block_fnum&0x0380) >> 7; - - signed int lfo_fn_table_index_offset = lfo_pm_table[OPL->LFO_PM + 16*fnum_lfo ]; - - if (lfo_fn_table_index_offset) /* LFO phase modulation active */ - { - block_fnum += lfo_fn_table_index_offset; - block = (block_fnum&0x1c00) >> 10; - op->Cnt += (OPL->fn_tab[block_fnum&0x03ff] >> (7-block)) * op->mul; - } - else /* LFO phase modulation = zero */ - { - op->Cnt += op->Incr; - } - } - else /* LFO phase modulation disabled for this operator */ - { - op->Cnt += op->Incr; - } - } - - /* The Noise Generator of the YM3812 is 23-bit shift register. - * Period is equal to 2^23-2 samples. - * Register works at sampling frequency of the chip, so output - * can change on every sample. - * - * Output of the register and input to the bit 22 is: - * bit0 XOR bit14 XOR bit15 XOR bit22 - * - * Simply use bit 22 as the noise output. - */ - - OPL->noise_p += OPL->noise_f; - i = OPL->noise_p >> FREQ_SH; /* number of events (shifts of the shift register) */ - OPL->noise_p &= FREQ_MASK; - while (i) - { - /* - uint32_t j; - j = ( (OPL->noise_rng) ^ (OPL->noise_rng>>14) ^ (OPL->noise_rng>>15) ^ (OPL->noise_rng>>22) ) & 1; - OPL->noise_rng = (j<<22) | (OPL->noise_rng>>1); - */ - - /* - Instead of doing all the logic operations above, we - use a trick here (and use bit 0 as the noise output). - The difference is only that the noise bit changes one - step ahead. This doesn't matter since we don't know - what is real state of the noise_rng after the reset. - */ - - if (OPL->noise_rng & 1) OPL->noise_rng ^= 0x800302; - OPL->noise_rng >>= 1; - - i--; - } -} - - -static inline signed int op_calc(uint32_t phase, unsigned int env, signed int pm, unsigned int wave_tab) -{ - uint32_t p; - - p = (env<<4) + sin_tab[wave_tab + ((((signed int)((phase & ~FREQ_MASK) + (pm<<16))) >> FREQ_SH ) & SIN_MASK) ]; - - if (p >= TL_TAB_LEN) - return 0; - return tl_tab[p]; -} - -static inline signed int op_calc1(uint32_t phase, unsigned int env, signed int pm, unsigned int wave_tab) -{ - uint32_t p; - - p = (env<<4) + sin_tab[wave_tab + ((((signed int)((phase & ~FREQ_MASK) + pm )) >> FREQ_SH ) & SIN_MASK) ]; - - if (p >= TL_TAB_LEN) - return 0; - return tl_tab[p]; -} - - -#define volume_calc(OP) ((OP)->TLL + ((uint32_t)(OP)->volume) + (OPL->LFO_AM & (OP)->AMmask)) - -/* calculate output */ -static inline void OPL_CALC_CH( FM_OPL *OPL, OPL_CH *CH ) -{ - OPL_SLOT *SLOT; - unsigned int env; - signed int out; - - OPL->phase_modulation = 0; - - /* SLOT 1 */ - SLOT = &CH->SLOT[SLOT1]; - env = volume_calc(SLOT); - out = SLOT->op1_out[0] + SLOT->op1_out[1]; - SLOT->op1_out[0] = SLOT->op1_out[1]; - *SLOT->connect1 += SLOT->op1_out[0]; - SLOT->op1_out[1] = 0; - if( env < ENV_QUIET ) - { - if (!SLOT->FB) - out = 0; - SLOT->op1_out[1] = op_calc1(SLOT->Cnt, env, (out<FB), SLOT->wavetable ); - } - - /* SLOT 2 */ - SLOT++; - env = volume_calc(SLOT); - if( env < ENV_QUIET ) - OPL->output[0] += op_calc(SLOT->Cnt, env, OPL->phase_modulation, SLOT->wavetable); -} - -/* - operators used in the rhythm sounds generation process: - - Envelope Generator: - -channel operator register number Bass High Snare Tom Top -/ slot number TL ARDR SLRR Wave Drum Hat Drum Tom Cymbal - 6 / 0 12 50 70 90 f0 + - 6 / 1 15 53 73 93 f3 + - 7 / 0 13 51 71 91 f1 + - 7 / 1 16 54 74 94 f4 + - 8 / 0 14 52 72 92 f2 + - 8 / 1 17 55 75 95 f5 + - - Phase Generator: - -channel operator register number Bass High Snare Tom Top -/ slot number MULTIPLE Drum Hat Drum Tom Cymbal - 6 / 0 12 30 + - 6 / 1 15 33 + - 7 / 0 13 31 + + + - 7 / 1 16 34 ----- n o t u s e d ----- - 8 / 0 14 32 + - 8 / 1 17 35 + + - -channel operator register number Bass High Snare Tom Top -number number BLK/FNUM2 FNUM Drum Hat Drum Tom Cymbal - 6 12,15 B6 A6 + - - 7 13,16 B7 A7 + + + +O( 0),O( 1),O( 2),O( 3), +O( 0),O( 1),O( 2),O( 3), +O( 0),O( 1),O( 2),O( 3), +O( 0),O( 1),O( 2),O( 3), +O( 0),O( 1),O( 2),O( 3), +O( 0),O( 1),O( 2),O( 3), +O( 0),O( 1),O( 2),O( 3), +O( 0),O( 1),O( 2),O( 3), +O( 0),O( 1),O( 2),O( 3), +O( 0),O( 1),O( 2),O( 3), - 8 14,17 B8 A8 + + + +/* rate 13 */ +O( 4),O( 5),O( 6),O( 7), -*/ +/* rate 14 */ +O( 8),O( 9),O(10),O(11), -/* calculate rhythm */ +/* rate 15 */ +O(12),O(12),O(12),O(12), -static inline void OPL_CALC_RH( FM_OPL *OPL, OPL_CH *CH, unsigned int noise ) -{ - OPL_SLOT *SLOT; - signed int out; - unsigned int env; +/* 16 dummy rates (same as 15 3) */ +O(12),O(12),O(12),O(12),O(12),O(12),O(12),O(12), +O(12),O(12),O(12),O(12),O(12),O(12),O(12),O(12), +}; +#undef O - /* Bass Drum (verified on real YM3812): - - depends on the channel 6 'connect' register: - when connect = 0 it works the same as in normal (non-rhythm) mode (op1->op2->out) - when connect = 1 _only_ operator 2 is present on output (op2->out), operator 1 is ignored - - output sample always is multiplied by 2 - */ +/*rate 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 */ +/*shift 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 0, 0, 0 */ +/*mask 4095, 2047, 1023, 511, 255, 127, 63, 31, 15, 7, 3, 1, 0, 0, 0, 0 */ - OPL->phase_modulation = 0; - /* SLOT 1 */ - SLOT = &CH[6].SLOT[SLOT1]; - env = volume_calc(SLOT); +#define O(a) (a*1) +const unsigned char eg_rate_shift[16+64+16]={ /* Envelope Generator counter shifts (16 + 64 rates + 16 RKS) */ +/* 16 infinite time rates */ +O(0),O(0),O(0),O(0),O(0),O(0),O(0),O(0), +O(0),O(0),O(0),O(0),O(0),O(0),O(0),O(0), - out = SLOT->op1_out[0] + SLOT->op1_out[1]; - SLOT->op1_out[0] = SLOT->op1_out[1]; +/* rates 00-12 */ +O(12),O(12),O(12),O(12), +O(11),O(11),O(11),O(11), +O(10),O(10),O(10),O(10), +O( 9),O( 9),O( 9),O( 9), +O( 8),O( 8),O( 8),O( 8), +O( 7),O( 7),O( 7),O( 7), +O( 6),O( 6),O( 6),O( 6), +O( 5),O( 5),O( 5),O( 5), +O( 4),O( 4),O( 4),O( 4), +O( 3),O( 3),O( 3),O( 3), +O( 2),O( 2),O( 2),O( 2), +O( 1),O( 1),O( 1),O( 1), +O( 0),O( 0),O( 0),O( 0), - if (!SLOT->CON) - OPL->phase_modulation = SLOT->op1_out[0]; - /* else ignore output of operator 1 */ +/* rate 13 */ +O( 0),O( 0),O( 0),O( 0), - SLOT->op1_out[1] = 0; - if( env < ENV_QUIET ) - { - if (!SLOT->FB) - out = 0; - SLOT->op1_out[1] = op_calc1(SLOT->Cnt, env, (out<FB), SLOT->wavetable ); - } +/* rate 14 */ +O( 0),O( 0),O( 0),O( 0), - /* SLOT 2 */ - SLOT++; - env = volume_calc(SLOT); - if( env < ENV_QUIET ) - OPL->output[0] += op_calc(SLOT->Cnt, env, OPL->phase_modulation, SLOT->wavetable) * 2; +/* rate 15 */ +O( 0),O( 0),O( 0),O( 0), +/* 16 dummy rates (same as 15 3) */ +O( 0),O( 0),O( 0),O( 0),O( 0),O( 0),O( 0),O( 0), +O( 0),O( 0),O( 0),O( 0),O( 0),O( 0),O( 0),O( 0), - /* Phase generation is based on: */ - /* HH (13) channel 7->slot 1 combined with channel 8->slot 2 (same combination as TOP CYMBAL but different output phases) */ - /* SD (16) channel 7->slot 1 */ - /* TOM (14) channel 8->slot 1 */ - /* TOP (17) channel 7->slot 1 combined with channel 8->slot 2 (same combination as HIGH HAT but different output phases) */ +}; +#undef O - /* Envelope generation based on: */ - /* HH channel 7->slot1 */ - /* SD channel 7->slot2 */ - /* TOM channel 8->slot1 */ - /* TOP channel 8->slot2 */ +/* multiple table */ +#define ML 2 +const uint8_t FM_OPL::mul_tab[16]= { +/* 1/2, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,10,12,12,15,15 */ + ML/2, 1*ML, 2*ML, 3*ML, 4*ML, 5*ML, 6*ML, 7*ML, + 8*ML, 9*ML,10*ML,10*ML,12*ML,12*ML,15*ML,15*ML +}; +#undef ML - /* The following formulas can be well optimized. - I leave them in direct form for now (in case I've missed something). - */ +signed int FM_OPL::tl_tab[TL_TAB_LEN]; - /* High Hat (verified on real YM3812) */ - env = volume_calc(SLOT7_1); - if( env < ENV_QUIET ) - { - /* high hat phase generation: - phase = d0 or 234 (based on frequency only) - phase = 34 or 2d0 (based on noise) - */ +/* sin waveform table in 'decibel' scale */ +/* four waveforms on OPL2 type chips */ +unsigned int FM_OPL::sin_tab[SIN_LEN * 4]; - /* base frequency derived from operator 1 in channel 7 */ - unsigned char bit7 = ((SLOT7_1->Cnt>>FREQ_SH)>>7)&1; - unsigned char bit3 = ((SLOT7_1->Cnt>>FREQ_SH)>>3)&1; - unsigned char bit2 = ((SLOT7_1->Cnt>>FREQ_SH)>>2)&1; - unsigned char res1 = (bit2 ^ bit7) | bit3; +/* LFO Amplitude Modulation table (verified on real YM3812) + 27 output levels (triangle waveform); 1 level takes one of: 192, 256 or 448 samples - /* when res1 = 0 phase = 0x000 | 0xd0; */ - /* when res1 = 1 phase = 0x200 | (0xd0>>2); */ - uint32_t phase = res1 ? (0x200|(0xd0>>2)) : 0xd0; + Length: 210 elements. - /* enable gate based on frequency of operator 2 in channel 8 */ - unsigned char bit5e= ((SLOT8_2->Cnt>>FREQ_SH)>>5)&1; - unsigned char bit3e= ((SLOT8_2->Cnt>>FREQ_SH)>>3)&1; + Each of the elements has to be repeated + exactly 64 times (on 64 consecutive samples). + The whole table takes: 64 * 210 = 13440 samples. - unsigned char res2 = (bit3e ^ bit5e); + When AM = 1 data is used directly + When AM = 0 data is divided by 4 before being used (losing precision is important) +*/ - /* when res2 = 0 pass the phase from calculation above (res1); */ - /* when res2 = 1 phase = 0x200 | (0xd0>>2); */ - if (res2) - phase = (0x200|(0xd0>>2)); +const uint8_t FM_OPL::lfo_am_table[LFO_AM_TAB_ELEMENTS] = { +0,0,0,0,0,0,0, +1,1,1,1, +2,2,2,2, +3,3,3,3, +4,4,4,4, +5,5,5,5, +6,6,6,6, +7,7,7,7, +8,8,8,8, +9,9,9,9, +10,10,10,10, +11,11,11,11, +12,12,12,12, +13,13,13,13, +14,14,14,14, +15,15,15,15, +16,16,16,16, +17,17,17,17, +18,18,18,18, +19,19,19,19, +20,20,20,20, +21,21,21,21, +22,22,22,22, +23,23,23,23, +24,24,24,24, +25,25,25,25, +26,26,26, +25,25,25,25, +24,24,24,24, +23,23,23,23, +22,22,22,22, +21,21,21,21, +20,20,20,20, +19,19,19,19, +18,18,18,18, +17,17,17,17, +16,16,16,16, +15,15,15,15, +14,14,14,14, +13,13,13,13, +12,12,12,12, +11,11,11,11, +10,10,10,10, +9,9,9,9, +8,8,8,8, +7,7,7,7, +6,6,6,6, +5,5,5,5, +4,4,4,4, +3,3,3,3, +2,2,2,2, +1,1,1,1 +}; +/* LFO Phase Modulation table (verified on real YM3812) */ +const int8_t FM_OPL::lfo_pm_table[8*8*2] = { +/* FNUM2/FNUM = 00 0xxxxxxx (0x0000) */ +0, 0, 0, 0, 0, 0, 0, 0, /*LFO PM depth = 0*/ +0, 0, 0, 0, 0, 0, 0, 0, /*LFO PM depth = 1*/ - /* when phase & 0x200 is set and noise=1 then phase = 0x200|0xd0 */ - /* when phase & 0x200 is set and noise=0 then phase = 0x200|(0xd0>>2), ie no change */ - if (phase&0x200) - { - if (noise) - phase = 0x200|0xd0; - } - else - /* when phase & 0x200 is clear and noise=1 then phase = 0xd0>>2 */ - /* when phase & 0x200 is clear and noise=0 then phase = 0xd0, ie no change */ - { - if (noise) - phase = 0xd0>>2; - } +/* FNUM2/FNUM = 00 1xxxxxxx (0x0080) */ +0, 0, 0, 0, 0, 0, 0, 0, /*LFO PM depth = 0*/ +1, 0, 0, 0,-1, 0, 0, 0, /*LFO PM depth = 1*/ - OPL->output[0] += op_calc(phase<wavetable) * 2; - } +/* FNUM2/FNUM = 01 0xxxxxxx (0x0100) */ +1, 0, 0, 0,-1, 0, 0, 0, /*LFO PM depth = 0*/ +2, 1, 0,-1,-2,-1, 0, 1, /*LFO PM depth = 1*/ - /* Snare Drum (verified on real YM3812) */ - env = volume_calc(SLOT7_2); - if( env < ENV_QUIET ) - { - /* base frequency derived from operator 1 in channel 7 */ - unsigned char bit8 = ((SLOT7_1->Cnt>>FREQ_SH)>>8)&1; +/* FNUM2/FNUM = 01 1xxxxxxx (0x0180) */ +1, 0, 0, 0,-1, 0, 0, 0, /*LFO PM depth = 0*/ +3, 1, 0,-1,-3,-1, 0, 1, /*LFO PM depth = 1*/ - /* when bit8 = 0 phase = 0x100; */ - /* when bit8 = 1 phase = 0x200; */ - uint32_t phase = bit8 ? 0x200 : 0x100; +/* FNUM2/FNUM = 10 0xxxxxxx (0x0200) */ +2, 1, 0,-1,-2,-1, 0, 1, /*LFO PM depth = 0*/ +4, 2, 0,-2,-4,-2, 0, 2, /*LFO PM depth = 1*/ - /* Noise bit XOR'es phase by 0x100 */ - /* when noisebit = 0 pass the phase from calculation above */ - /* when noisebit = 1 phase ^= 0x100; */ - /* in other words: phase ^= (noisebit<<8); */ - if (noise) - phase ^= 0x100; +/* FNUM2/FNUM = 10 1xxxxxxx (0x0280) */ +2, 1, 0,-1,-2,-1, 0, 1, /*LFO PM depth = 0*/ +5, 2, 0,-2,-5,-2, 0, 2, /*LFO PM depth = 1*/ - OPL->output[0] += op_calc(phase<wavetable) * 2; - } +/* FNUM2/FNUM = 11 0xxxxxxx (0x0300) */ +3, 1, 0,-1,-3,-1, 0, 1, /*LFO PM depth = 0*/ +6, 3, 0,-3,-6,-3, 0, 3, /*LFO PM depth = 1*/ - /* Tom Tom (verified on real YM3812) */ - env = volume_calc(SLOT8_1); - if( env < ENV_QUIET ) - OPL->output[0] += op_calc(SLOT8_1->Cnt, env, 0, SLOT8_1->wavetable) * 2; +/* FNUM2/FNUM = 11 1xxxxxxx (0x0380) */ +3, 1, 0,-1,-3,-1, 0, 1, /*LFO PM depth = 0*/ +7, 3, 0,-3,-7,-3, 0, 3 /*LFO PM depth = 1*/ +}; - /* Top Cymbal (verified on real YM3812) */ - env = volume_calc(SLOT8_2); - if( env < ENV_QUIET ) - { - /* base frequency derived from operator 1 in channel 7 */ - unsigned char bit7 = ((SLOT7_1->Cnt>>FREQ_SH)>>7)&1; - unsigned char bit3 = ((SLOT7_1->Cnt>>FREQ_SH)>>3)&1; - unsigned char bit2 = ((SLOT7_1->Cnt>>FREQ_SH)>>2)&1; - unsigned char res1 = (bit2 ^ bit7) | bit3; +/* lock level of common table */ +int FM_OPL::num_lock = 0; - /* when res1 = 0 phase = 0x000 | 0x100; */ - /* when res1 = 1 phase = 0x200 | 0x100; */ - uint32_t phase = res1 ? 0x300 : 0x100; - /* enable gate based on frequency of operator 2 in channel 8 */ - unsigned char bit5e= ((SLOT8_2->Cnt>>FREQ_SH)>>5)&1; - unsigned char bit3e= ((SLOT8_2->Cnt>>FREQ_SH)>>3)&1; - unsigned char res2 = (bit3e ^ bit5e); - /* when res2 = 0 pass the phase from calculation above (res1); */ - /* when res2 = 1 phase = 0x200 | 0x100; */ - if (res2) - phase = 0x300; +static inline int limit( int val, int max, int min ) { + if ( val > max ) + val = max; + else if ( val < min ) + val = min; - OPL->output[0] += op_calc(phase<wavetable) * 2; - } + return val; } /* generic table initialize */ -static int init_tables(void) +int FM_OPL::init_tables() { signed int i,x; signed int n; @@ -1246,39 +1419,31 @@ static int init_tables(void) return 1; } -static void OPLCloseTable( void ) -{ -#ifdef SAVE_SAMPLE - fclose(sample[0]); -#endif -} - - -static void OPL_initalize(FM_OPL *OPL) +void FM_OPL::initialize() { int i; /* frequency base */ - OPL->freqbase = (OPL->rate) ? ((double)OPL->clock / 72.0) / OPL->rate : 0; + freqbase = (rate) ? ((double)clock / 72.0) / rate : 0; #if 0 - OPL->rate = (double)OPL->clock / 72.0; - OPL->freqbase = 1.0; + rate = (double)clock / 72.0; + freqbase = 1.0; #endif - /*logerror("freqbase=%f\n", OPL->freqbase);*/ + /*logerror("freqbase=%f\n", freqbase);*/ /* Timer base time */ - OPL->TimerBase = attotime::from_hz(OPL->clock) * 72; + TimerBase = attotime::from_hz(clock) * 72; /* make fnumber -> increment counter table */ for( i=0 ; i < 1024 ; i++ ) { /* opn phase increment counter = 20bit */ - OPL->fn_tab[i] = (uint32_t)( (double)i * 64 * OPL->freqbase * (1<<(FREQ_SH-10)) ); /* -10 because chip works with 10.10 fixed point, while we use 16.16 */ + fn_tab[i] = (uint32_t)( (double)i * 64 * freqbase * (1<<(FREQ_SH-10)) ); /* -10 because chip works with 10.10 fixed point, while we use 16.16 */ #if 0 logerror("FMOPL.C: fn_tab[%4i] = %08x (dec=%8i)\n", - i, OPL->fn_tab[i]>>6, OPL->fn_tab[i]>>6 ); + i, fn_tab[i]>>6, fn_tab[i]>>6 ); #endif } @@ -1303,146 +1468,24 @@ static void OPL_initalize(FM_OPL *OPL) /* Amplitude modulation: 27 output levels (triangle waveform); 1 level takes one of: 192, 256 or 448 samples */ /* One entry from LFO_AM_TABLE lasts for 64 samples */ - OPL->lfo_am_inc = (1.0 / 64.0 ) * (1<freqbase; + lfo_am_inc = (1.0 / 64.0 ) * (1<lfo_pm_inc = (1.0 / 1024.0) * (1<freqbase; + lfo_pm_inc = (1.0 / 1024.0) * (1<lfo_am_inc = %8x ; OPL->lfo_pm_inc = %8x\n", OPL->lfo_am_inc, OPL->lfo_pm_inc);*/ + /*logerror ("lfo_am_inc = %8x ; lfo_pm_inc = %8x\n", lfo_am_inc, lfo_pm_inc);*/ /* Noise generator: a step takes 1 sample */ - OPL->noise_f = (1.0 / 1.0) * (1<freqbase; - - OPL->eg_timer_add = (1<freqbase; - OPL->eg_timer_overflow = ( 1 ) * (1<eg_timer_add, OPL->eg_timer_overflow);*/ - -} - -static inline void FM_KEYON(OPL_SLOT *SLOT, uint32_t key_set) -{ - if( !SLOT->key ) - { - /* restart Phase Generator */ - SLOT->Cnt = 0; - /* phase -> Attack */ - SLOT->state = EG_ATT; - } - SLOT->key |= key_set; -} - -static inline void FM_KEYOFF(OPL_SLOT *SLOT, uint32_t key_clr) -{ - if( SLOT->key ) - { - SLOT->key &= key_clr; - - if( !SLOT->key ) - { - /* phase -> Release */ - if (SLOT->state>EG_REL) - SLOT->state = EG_REL; - } - } -} - -/* update phase increment counter of operator (also update the EG rates if necessary) */ -static inline void CALC_FCSLOT(OPL_CH *CH,OPL_SLOT *SLOT) -{ - int ksr; - - /* (frequency) phase increment counter */ - SLOT->Incr = CH->fc * SLOT->mul; - ksr = CH->kcode >> SLOT->KSR; - - if( SLOT->ksr != ksr ) - { - SLOT->ksr = ksr; - - /* calculate envelope generator rates */ - if ((SLOT->ar + SLOT->ksr) < 16+62) - { - SLOT->eg_sh_ar = eg_rate_shift [SLOT->ar + SLOT->ksr ]; - SLOT->eg_sel_ar = eg_rate_select[SLOT->ar + SLOT->ksr ]; - } - else - { - SLOT->eg_sh_ar = 0; - SLOT->eg_sel_ar = 13*RATE_STEPS; - } - SLOT->eg_sh_dr = eg_rate_shift [SLOT->dr + SLOT->ksr ]; - SLOT->eg_sel_dr = eg_rate_select[SLOT->dr + SLOT->ksr ]; - SLOT->eg_sh_rr = eg_rate_shift [SLOT->rr + SLOT->ksr ]; - SLOT->eg_sel_rr = eg_rate_select[SLOT->rr + SLOT->ksr ]; - } -} - -/* set multi,am,vib,EG-TYP,KSR,mul */ -static inline void set_mul(FM_OPL *OPL,int slot,int v) -{ - OPL_CH *CH = &OPL->P_CH[slot/2]; - OPL_SLOT *SLOT = &CH->SLOT[slot&1]; - - SLOT->mul = mul_tab[v&0x0f]; - SLOT->KSR = (v&0x10) ? 0 : 2; - SLOT->eg_type = (v&0x20); - SLOT->vib = (v&0x40); - SLOT->AMmask = (v&0x80) ? ~0 : 0; - CALC_FCSLOT(CH,SLOT); -} - -/* set ksl & tl */ -static inline void set_ksl_tl(FM_OPL *OPL,int slot,int v) -{ - OPL_CH *CH = &OPL->P_CH[slot/2]; - OPL_SLOT *SLOT = &CH->SLOT[slot&1]; - - SLOT->ksl = ksl_shift[v >> 6]; - SLOT->TL = (v&0x3f)<<(ENV_BITS-1-7); /* 7 bits TL (bit 6 = always 0) */ - - SLOT->TLL = SLOT->TL + (CH->ksl_base>>SLOT->ksl); -} - -/* set attack rate & decay rate */ -static inline void set_ar_dr(FM_OPL *OPL,int slot,int v) -{ - OPL_CH *CH = &OPL->P_CH[slot/2]; - OPL_SLOT *SLOT = &CH->SLOT[slot&1]; - - SLOT->ar = (v>>4) ? 16 + ((v>>4) <<2) : 0; - - if ((SLOT->ar + SLOT->ksr) < 16+62) - { - SLOT->eg_sh_ar = eg_rate_shift [SLOT->ar + SLOT->ksr ]; - SLOT->eg_sel_ar = eg_rate_select[SLOT->ar + SLOT->ksr ]; - } - else - { - SLOT->eg_sh_ar = 0; - SLOT->eg_sel_ar = 13*RATE_STEPS; - } - - SLOT->dr = (v&0x0f)? 16 + ((v&0x0f)<<2) : 0; - SLOT->eg_sh_dr = eg_rate_shift [SLOT->dr + SLOT->ksr ]; - SLOT->eg_sel_dr = eg_rate_select[SLOT->dr + SLOT->ksr ]; -} - -/* set sustain level & release rate */ -static inline void set_sl_rr(FM_OPL *OPL,int slot,int v) -{ - OPL_CH *CH = &OPL->P_CH[slot/2]; - OPL_SLOT *SLOT = &CH->SLOT[slot&1]; - - SLOT->sl = sl_tab[ v>>4 ]; + noise_f = (1.0 / 1.0) * (1<rr = (v&0x0f)? 16 + ((v&0x0f)<<2) : 0; - SLOT->eg_sh_rr = eg_rate_shift [SLOT->rr + SLOT->ksr ]; - SLOT->eg_sel_rr = eg_rate_select[SLOT->rr + SLOT->ksr ]; + eg_timer_add = (1<type&OPL_TYPE_WAVESEL) + if(type&OPL_TYPE_WAVESEL) { - OPL->wavesel = v&0x20; + wavesel = v&0x20; /* do not change the waveform previously selected */ } break; case 0x02: /* Timer 1 */ - OPL->T[0] = (256-v)*4; + T[0] = (256-v)*4; break; case 0x03: /* Timer 2 */ - OPL->T[1] = (256-v)*16; + T[1] = (256-v)*16; break; case 0x04: /* IRQ clear / mask and Timer enable */ if(v&0x80) { /* IRQ flag clear */ - OPL_STATUS_RESET(OPL,0x7f-0x08); /* don't reset BFRDY flag or we will have to call deltat module to set the flag */ + STATUS_RESET(0x7f-0x08); /* don't reset BFRDY flag or we will have to call deltat module to set the flag */ } else { /* set IRQ mask ,timer enable*/ @@ -1482,45 +1525,45 @@ static void OPLWriteReg(FM_OPL *OPL, int r, int v) uint8_t st2 = (v>>1)&1; /* IRQRST,T1MSK,t2MSK,EOSMSK,BRMSK,x,ST2,ST1 */ - OPL_STATUS_RESET(OPL, v & (0x78-0x08) ); - OPL_STATUSMASK_SET(OPL, (~v) & 0x78 ); + STATUS_RESET(v & (0x78-0x08)); + STATUSMASK_SET((~v) & 0x78); /* timer 2 */ - if(OPL->st[1] != st2) + if(st[1] != st2) { - attotime period = st2 ? (OPL->TimerBase * OPL->T[1]) : attotime::zero; - OPL->st[1] = st2; - if (OPL->timer_handler) (OPL->timer_handler)(OPL->TimerParam,1,period); + attotime period = st2 ? (TimerBase * T[1]) : attotime::zero; + st[1] = st2; + if (timer_handler) (timer_handler)(TimerParam,1,period); } /* timer 1 */ - if(OPL->st[0] != st1) + if(st[0] != st1) { - attotime period = st1 ? (OPL->TimerBase * OPL->T[0]) : attotime::zero; - OPL->st[0] = st1; - if (OPL->timer_handler) (OPL->timer_handler)(OPL->TimerParam,0,period); + attotime period = st1 ? (TimerBase * T[0]) : attotime::zero; + st[0] = st1; + if (timer_handler) (timer_handler)(TimerParam,0,period); } } break; #if BUILD_Y8950 case 0x06: /* Key Board OUT */ - if(OPL->type&OPL_TYPE_KEYBOARD) + if(type&OPL_TYPE_KEYBOARD) { - if(OPL->keyboardhandler_w) - OPL->keyboardhandler_w(OPL->keyboard_param,v); + if(keyboardhandler_w) + keyboardhandler_w(keyboard_param,v); else - OPL->device->logerror("Y8950: write unmapped KEYBOARD port\n"); + device->logerror("Y8950: write unmapped KEYBOARD port\n"); } break; case 0x07: /* DELTA-T control 1 : START,REC,MEMDATA,REPT,SPOFF,x,x,RST */ - if(OPL->type&OPL_TYPE_ADPCM) - YM_DELTAT_ADPCM_Write(OPL->deltat,r-0x07,v); + if(type&OPL_TYPE_ADPCM) + deltat->ADPCM_Write(r-0x07,v); break; #endif case 0x08: /* MODE,DELTA-T control 2 : CSM,NOTESEL,x,x,smpl,da/ad,64k,rom */ - OPL->mode = v; + mode = v; #if BUILD_Y8950 - if(OPL->type&OPL_TYPE_ADPCM) - YM_DELTAT_ADPCM_Write(OPL->deltat,r-0x07,v&0x0f); /* mask 4 LSBs in register 08 for DELTA-T unit */ + if(type&OPL_TYPE_ADPCM) + deltat->ADPCM_Write(r-0x07,v&0x0f); /* mask 4 LSBs in register 08 for DELTA-T unit */ #endif break; @@ -1535,107 +1578,107 @@ static void OPLWriteReg(FM_OPL *OPL, int r, int v) case 0x10: /* DELTA-N */ case 0x11: /* DELTA-N */ case 0x12: /* ADPCM volume */ - if(OPL->type&OPL_TYPE_ADPCM) - YM_DELTAT_ADPCM_Write(OPL->deltat,r-0x07,v); + if(type&OPL_TYPE_ADPCM) + deltat->ADPCM_Write(r-0x07,v); break; case 0x15: /* DAC data high 8 bits (F7,F6...F2) */ case 0x16: /* DAC data low 2 bits (F1, F0 in bits 7,6) */ case 0x17: /* DAC data shift (S2,S1,S0 in bits 2,1,0) */ - OPL->device->logerror("FMOPL.C: DAC data register written, but not implemented reg=%02x val=%02x\n",r,v); + device->logerror("FMOPL.C: DAC data register written, but not implemented reg=%02x val=%02x\n",r,v); break; case 0x18: /* I/O CTRL (Direction) */ - if(OPL->type&OPL_TYPE_IO) - OPL->portDirection = v&0x0f; + if(type&OPL_TYPE_IO) + portDirection = v&0x0f; break; case 0x19: /* I/O DATA */ - if(OPL->type&OPL_TYPE_IO) + if(type&OPL_TYPE_IO) { - OPL->portLatch = v; - if(OPL->porthandler_w) - OPL->porthandler_w(OPL->port_param,v&OPL->portDirection); + portLatch = v; + if(porthandler_w) + porthandler_w(port_param,v&portDirection); } break; #endif default: - OPL->device->logerror("FMOPL.C: write to unknown register: %02x\n",r); + device->logerror("FMOPL.C: write to unknown register: %02x\n",r); break; } break; case 0x20: /* am ON, vib ON, ksr, eg_type, mul */ slot = slot_array[r&0x1f]; if(slot < 0) return; - set_mul(OPL,slot,v); + set_mul(slot,v); break; case 0x40: slot = slot_array[r&0x1f]; if(slot < 0) return; - set_ksl_tl(OPL,slot,v); + set_ksl_tl(slot,v); break; case 0x60: slot = slot_array[r&0x1f]; if(slot < 0) return; - set_ar_dr(OPL,slot,v); + set_ar_dr(slot,v); break; case 0x80: slot = slot_array[r&0x1f]; if(slot < 0) return; - set_sl_rr(OPL,slot,v); + set_sl_rr(slot,v); break; case 0xa0: if (r == 0xbd) /* am depth, vibrato depth, r,bd,sd,tom,tc,hh */ { - OPL->lfo_am_depth = v & 0x80; - OPL->lfo_pm_depth_range = (v&0x40) ? 8 : 0; + lfo_am_depth = v & 0x80; + lfo_pm_depth_range = (v&0x40) ? 8 : 0; - OPL->rhythm = v&0x3f; + rhythm = v&0x3f; - if(OPL->rhythm&0x20) + if(rhythm&0x20) { /* BD key on/off */ if(v&0x10) { - FM_KEYON (&OPL->P_CH[6].SLOT[SLOT1], 2); - FM_KEYON (&OPL->P_CH[6].SLOT[SLOT2], 2); + P_CH[6].SLOT[SLOT1].KEYON(2); + P_CH[6].SLOT[SLOT2].KEYON(2); } else { - FM_KEYOFF(&OPL->P_CH[6].SLOT[SLOT1],~2); - FM_KEYOFF(&OPL->P_CH[6].SLOT[SLOT2],~2); + P_CH[6].SLOT[SLOT1].KEYOFF(~2); + P_CH[6].SLOT[SLOT2].KEYOFF(~2); } /* HH key on/off */ - if(v&0x01) FM_KEYON (&OPL->P_CH[7].SLOT[SLOT1], 2); - else FM_KEYOFF(&OPL->P_CH[7].SLOT[SLOT1],~2); + if(v&0x01) P_CH[7].SLOT[SLOT1].KEYON ( 2); + else P_CH[7].SLOT[SLOT1].KEYOFF(~2); /* SD key on/off */ - if(v&0x08) FM_KEYON (&OPL->P_CH[7].SLOT[SLOT2], 2); - else FM_KEYOFF(&OPL->P_CH[7].SLOT[SLOT2],~2); + if(v&0x08) P_CH[7].SLOT[SLOT2].KEYON ( 2); + else P_CH[7].SLOT[SLOT2].KEYOFF(~2); /* TOM key on/off */ - if(v&0x04) FM_KEYON (&OPL->P_CH[8].SLOT[SLOT1], 2); - else FM_KEYOFF(&OPL->P_CH[8].SLOT[SLOT1],~2); + if(v&0x04) P_CH[8].SLOT[SLOT1].KEYON ( 2); + else P_CH[8].SLOT[SLOT1].KEYOFF(~2); /* TOP-CY key on/off */ - if(v&0x02) FM_KEYON (&OPL->P_CH[8].SLOT[SLOT2], 2); - else FM_KEYOFF(&OPL->P_CH[8].SLOT[SLOT2],~2); + if(v&0x02) P_CH[8].SLOT[SLOT2].KEYON ( 2); + else P_CH[8].SLOT[SLOT2].KEYOFF(~2); } else { /* BD key off */ - FM_KEYOFF(&OPL->P_CH[6].SLOT[SLOT1],~2); - FM_KEYOFF(&OPL->P_CH[6].SLOT[SLOT2],~2); + P_CH[6].SLOT[SLOT1].KEYOFF(~2); + P_CH[6].SLOT[SLOT2].KEYOFF(~2); /* HH key off */ - FM_KEYOFF(&OPL->P_CH[7].SLOT[SLOT1],~2); + P_CH[7].SLOT[SLOT1].KEYOFF(~2); /* SD key off */ - FM_KEYOFF(&OPL->P_CH[7].SLOT[SLOT2],~2); + P_CH[7].SLOT[SLOT2].KEYOFF(~2); /* TOM key off */ - FM_KEYOFF(&OPL->P_CH[8].SLOT[SLOT1],~2); + P_CH[8].SLOT[SLOT1].KEYOFF(~2); /* TOP-CY off */ - FM_KEYOFF(&OPL->P_CH[8].SLOT[SLOT2],~2); + P_CH[8].SLOT[SLOT2].KEYOFF(~2); } return; } /* keyon,block,fnum */ if( (r&0x0f) > 8) return; - CH = &OPL->P_CH[r&0x0f]; + CH = &P_CH[r&0x0f]; if(!(r&0x10)) { /* a0-a8 */ block_fnum = (CH->block_fnum&0x1f00) | v; @@ -1646,13 +1689,13 @@ static void OPLWriteReg(FM_OPL *OPL, int r, int v) if(v&0x20) { - FM_KEYON (&CH->SLOT[SLOT1], 1); - FM_KEYON (&CH->SLOT[SLOT2], 1); + CH->SLOT[SLOT1].KEYON ( 1); + CH->SLOT[SLOT2].KEYON ( 1); } else { - FM_KEYOFF(&CH->SLOT[SLOT1],~1); - FM_KEYOFF(&CH->SLOT[SLOT2],~1); + CH->SLOT[SLOT1].KEYOFF(~1); + CH->SLOT[SLOT2].KEYOFF(~1); } } /* update */ @@ -1663,7 +1706,7 @@ static void OPLWriteReg(FM_OPL *OPL, int r, int v) CH->block_fnum = block_fnum; CH->ksl_base = static_cast(ksl_tab[block_fnum>>6]); - CH->fc = OPL->fn_tab[block_fnum&0x03ff] >> (7-block); + CH->fc = fn_tab[block_fnum&0x03ff] >> (7-block); /* BLK 2,1,0 bits -> bits 3,2,1 of kcode */ CH->kcode = (CH->block_fnum&0x1c00)>>9; @@ -1671,7 +1714,7 @@ static void OPLWriteReg(FM_OPL *OPL, int r, int v) /* the info below is actually opposite to what is stated in the Manuals (verifed on real YM3812) */ /* if notesel == 0 -> lsb of kcode is bit 10 (MSB) of fnum */ /* if notesel == 1 -> lsb of kcode is bit 9 (MSB-1) of fnum */ - if (OPL->mode&0x40) + if (mode&0x40) CH->kcode |= (CH->block_fnum&0x100)>>8; /* notesel == 1 */ else CH->kcode |= (CH->block_fnum&0x200)>>9; /* notesel == 0 */ @@ -1681,25 +1724,25 @@ static void OPLWriteReg(FM_OPL *OPL, int r, int v) CH->SLOT[SLOT2].TLL = CH->SLOT[SLOT2].TL + (CH->ksl_base>>CH->SLOT[SLOT2].ksl); /* refresh frequency counter in both SLOTs of this channel */ - CALC_FCSLOT(CH,&CH->SLOT[SLOT1]); - CALC_FCSLOT(CH,&CH->SLOT[SLOT2]); + CH->CALC_FCSLOT(CH->SLOT[SLOT1]); + CH->CALC_FCSLOT(CH->SLOT[SLOT2]); } break; case 0xc0: /* FB,C */ if( (r&0x0f) > 8) return; - CH = &OPL->P_CH[r&0x0f]; + CH = &P_CH[r&0x0f]; CH->SLOT[SLOT1].FB = (v>>1)&7 ? ((v>>1)&7) + 7 : 0; CH->SLOT[SLOT1].CON = v&1; - CH->SLOT[SLOT1].connect1 = CH->SLOT[SLOT1].CON ? &OPL->output[0] : &OPL->phase_modulation; + CH->SLOT[SLOT1].connect1 = CH->SLOT[SLOT1].CON ? &output[0] : &phase_modulation; break; case 0xe0: /* waveform select */ /* simply ignore write to the waveform select register if selecting not enabled in test register */ - if(OPL->wavesel) + if(wavesel) { slot = slot_array[r&0x1f]; if(slot < 0) return; - CH = &OPL->P_CH[slot/2]; + CH = &P_CH[slot/2]; CH->SLOT[slot&1].wavetable = (v&0x03)*SIN_LEN; } @@ -1707,136 +1750,101 @@ static void OPLWriteReg(FM_OPL *OPL, int r, int v) } } -/* lock/unlock for common table */ -static int OPL_LockTable(device_t *device) -{ - num_lock++; - if(num_lock>1) return 0; - - /* first time */ - - /* allocate total level table (128kb space) */ - if( !init_tables() ) - { - num_lock--; - return -1; - } - - return 0; -} - -static void OPL_UnLockTable(void) -{ - if(num_lock) num_lock--; - if(num_lock) return; - - /* last time */ - OPLCloseTable(); -} - -static void OPLResetChip(FM_OPL *OPL) +void FM_OPL::ResetChip() { - int c,s; - int i; - - OPL->eg_timer = 0; - OPL->eg_cnt = 0; + eg_timer = 0; + eg_cnt = 0; - OPL->noise_rng = 1; /* noise shift register */ - OPL->mode = 0; /* normal mode */ - OPL_STATUS_RESET(OPL,0x7f); + noise_rng = 1; /* noise shift register */ + mode = 0; /* normal mode */ + STATUS_RESET(0x7f); /* reset with register write */ - OPLWriteReg(OPL,0x01,0); /* wavesel disable */ - OPLWriteReg(OPL,0x02,0); /* Timer1 */ - OPLWriteReg(OPL,0x03,0); /* Timer2 */ - OPLWriteReg(OPL,0x04,0); /* IRQ mask clear */ - for(i = 0xff ; i >= 0x20 ; i-- ) OPLWriteReg(OPL,i,0); + WriteReg(0x01,0); /* wavesel disable */ + WriteReg(0x02,0); /* Timer1 */ + WriteReg(0x03,0); /* Timer2 */ + WriteReg(0x04,0); /* IRQ mask clear */ + for(int i = 0xff ; i >= 0x20 ; i-- ) WriteReg(i,0); /* reset operator parameters */ - for( c = 0 ; c < 9 ; c++ ) + for(OPL_CH &CH : P_CH) { - OPL_CH *CH = &OPL->P_CH[c]; - for(s = 0 ; s < 2 ; s++ ) + for(OPL_SLOT &SLOT : CH.SLOT) { /* wave table */ - CH->SLOT[s].wavetable = 0; - CH->SLOT[s].state = EG_OFF; - CH->SLOT[s].volume = MAX_ATT_INDEX; + SLOT.wavetable = 0; + SLOT.state = EG_OFF; + SLOT.volume = MAX_ATT_INDEX; } } #if BUILD_Y8950 - if(OPL->type&OPL_TYPE_ADPCM) + if(type&OPL_TYPE_ADPCM) { - YM_DELTAT *DELTAT = OPL->deltat; + YM_DELTAT *DELTAT = deltat; - DELTAT->freqbase = OPL->freqbase; - DELTAT->output_pointer = &OPL->output_deltat[0]; + DELTAT->freqbase = freqbase; + DELTAT->output_pointer = &output_deltat[0]; DELTAT->portshift = 5; DELTAT->output_range = 1<<23; - YM_DELTAT_ADPCM_Reset(DELTAT,0,YM_DELTAT_EMULATION_MODE_NORMAL,OPL->device); + DELTAT->ADPCM_Reset(0,YM_DELTAT::EMULATION_MODE_NORMAL,device); } #endif } -static void OPL_postload(FM_OPL *OPL) +void FM_OPL::postload() { - int slot, ch; - - for( ch=0 ; ch < 9 ; ch++ ) + for(OPL_CH &CH : P_CH) { - OPL_CH *CH = &OPL->P_CH[ch]; - /* Look up key scale level */ - uint32_t block_fnum = CH->block_fnum; - CH->ksl_base = static_cast(ksl_tab[block_fnum >> 6]); - CH->fc = OPL->fn_tab[block_fnum & 0x03ff] >> (7 - (block_fnum >> 10)); + uint32_t const block_fnum = CH.block_fnum; + CH.ksl_base = static_cast(ksl_tab[block_fnum >> 6]); + CH.fc = fn_tab[block_fnum & 0x03ff] >> (7 - (block_fnum >> 10)); - for( slot=0 ; slot < 2 ; slot++ ) + for(OPL_SLOT &SLOT : CH.SLOT) { - OPL_SLOT *SLOT = &CH->SLOT[slot]; - /* Calculate key scale rate */ - SLOT->ksr = CH->kcode >> SLOT->KSR; + SLOT.ksr = CH.kcode >> SLOT.KSR; /* Calculate attack, decay and release rates */ - if ((SLOT->ar + SLOT->ksr) < 16+62) + if ((SLOT.ar + SLOT.ksr) < 16+62) { - SLOT->eg_sh_ar = eg_rate_shift [SLOT->ar + SLOT->ksr ]; - SLOT->eg_sel_ar = eg_rate_select[SLOT->ar + SLOT->ksr ]; + SLOT.eg_sh_ar = eg_rate_shift [SLOT.ar + SLOT.ksr ]; + SLOT.eg_sel_ar = eg_rate_select[SLOT.ar + SLOT.ksr ]; } else { - SLOT->eg_sh_ar = 0; - SLOT->eg_sel_ar = 13*RATE_STEPS; + SLOT.eg_sh_ar = 0; + SLOT.eg_sel_ar = 13*RATE_STEPS; } - SLOT->eg_sh_dr = eg_rate_shift [SLOT->dr + SLOT->ksr ]; - SLOT->eg_sel_dr = eg_rate_select[SLOT->dr + SLOT->ksr ]; - SLOT->eg_sh_rr = eg_rate_shift [SLOT->rr + SLOT->ksr ]; - SLOT->eg_sel_rr = eg_rate_select[SLOT->rr + SLOT->ksr ]; + SLOT.eg_sh_dr = eg_rate_shift [SLOT.dr + SLOT.ksr ]; + SLOT.eg_sel_dr = eg_rate_select[SLOT.dr + SLOT.ksr ]; + SLOT.eg_sh_rr = eg_rate_shift [SLOT.rr + SLOT.ksr ]; + SLOT.eg_sel_rr = eg_rate_select[SLOT.rr + SLOT.ksr ]; /* Calculate phase increment */ - SLOT->Incr = CH->fc * SLOT->mul; + SLOT.Incr = CH.fc * SLOT.mul; /* Total level */ - SLOT->TLL = SLOT->TL + (CH->ksl_base >> SLOT->ksl); + SLOT.TLL = SLOT.TL + (CH.ksl_base >> SLOT.ksl); /* Connect output */ - SLOT->connect1 = SLOT->CON ? &OPL->output[0] : &OPL->phase_modulation; + SLOT.connect1 = SLOT.CON ? &output[0] : &phase_modulation; } } #if BUILD_Y8950 - if ( (OPL->type & OPL_TYPE_ADPCM) && (OPL->deltat) ) + if ( (type & OPL_TYPE_ADPCM) && (deltat) ) { // We really should call the postlod function for the YM_DELTAT, but it's hard without registers // (see the way the YM2610 does it) - //YM_DELTAT_postload(OPL->deltat, REGS); + //deltat->postload(REGS); } #endif } +} // anonymous namespace + static void OPLsave_state_channel(device_t *device, OPL_CH *CH) { @@ -1910,7 +1918,7 @@ static void OPL_save_state(FM_OPL *OPL, device_t *device) #if BUILD_Y8950 if ( (OPL->type & OPL_TYPE_ADPCM) && (OPL->deltat) ) { - YM_DELTAT_savestate(device, OPL->deltat); + OPL->deltat->savestate(device); } if ( OPL->type & OPL_TYPE_IO ) @@ -1925,7 +1933,7 @@ static void OPL_save_state(FM_OPL *OPL, device_t *device) device->save_item(NAME(OPL->statusmask)); device->save_item(NAME(OPL->mode)); - device->machine().save().register_postload(save_prepost_delegate(FUNC(OPL_postload), OPL)); + device->machine().save().register_postload(save_prepost_delegate(FUNC(FM_OPL::postload), OPL)); } static void OPL_clock_changed(FM_OPL *OPL, uint32_t clock, uint32_t rate) @@ -1934,7 +1942,7 @@ static void OPL_clock_changed(FM_OPL *OPL, uint32_t clock, uint32_t rate) OPL->rate = rate; /* init global tables */ - OPL_initalize(OPL); + OPL->initialize(); } @@ -1947,7 +1955,7 @@ static FM_OPL *OPLCreate(device_t *device, uint32_t clock, uint32_t rate, int ty FM_OPL *OPL; int state_size; - if (OPL_LockTable(device) == -1) return nullptr; + if (FM_OPL::LockTable(device) == -1) return nullptr; /* calculate OPL state size */ state_size = sizeof(FM_OPL); @@ -1981,26 +1989,26 @@ static FM_OPL *OPLCreate(device_t *device, uint32_t clock, uint32_t rate, int ty /* Destroy one of virtual YM3812 */ static void OPLDestroy(FM_OPL *OPL) { - OPL_UnLockTable(); + FM_OPL::UnLockTable(); auto_free(OPL->device->machine(), OPL); } /* Optional handlers */ -static void OPLSetTimerHandler(FM_OPL *OPL,OPL_TIMERHANDLER timer_handler,void *param) +static void OPLSetTimerHandler(FM_OPL *OPL,OPL_TIMERHANDLER timer_handler,device_t *device) { OPL->timer_handler = timer_handler; - OPL->TimerParam = param; + OPL->TimerParam = device; } -static void OPLSetIRQHandler(FM_OPL *OPL,OPL_IRQHANDLER IRQHandler,void *param) +static void OPLSetIRQHandler(FM_OPL *OPL,OPL_IRQHANDLER IRQHandler,device_t *device) { OPL->IRQHandler = IRQHandler; - OPL->IRQParam = param; + OPL->IRQParam = device; } -static void OPLSetUpdateHandler(FM_OPL *OPL,OPL_UPDATEHANDLER UpdateHandler,void *param) +static void OPLSetUpdateHandler(FM_OPL *OPL,OPL_UPDATEHANDLER UpdateHandler,device_t *device) { OPL->UpdateHandler = UpdateHandler; - OPL->UpdateParam = param; + OPL->UpdateParam = device; } static int OPLWrite(FM_OPL *OPL,int a,int v) @@ -2012,7 +2020,7 @@ static int OPLWrite(FM_OPL *OPL,int a,int v) else { /* data port */ if(OPL->UpdateHandler) OPL->UpdateHandler(OPL->UpdateParam,0); - OPLWriteReg(OPL,OPL->address,v); + OPL->WriteReg(OPL->address,v); } return OPL->status>>7; } @@ -2055,7 +2063,7 @@ static unsigned char OPLRead(FM_OPL *OPL,int a) { uint8_t val; - val = YM_DELTAT_ADPCM_Read(OPL->deltat); + val = OPL->deltat->ADPCM_Read(); /*logerror("Y8950: read ADPCM value read=%02x\n",val);*/ return val; } @@ -2086,13 +2094,13 @@ static unsigned char OPLRead(FM_OPL *OPL,int a) /* CSM Key Controll */ static inline void CSMKeyControll(OPL_CH *CH) { - FM_KEYON (&CH->SLOT[SLOT1], 4); - FM_KEYON (&CH->SLOT[SLOT2], 4); + CH->SLOT[SLOT1].KEYON(4); + CH->SLOT[SLOT2].KEYON(4); /* The key off should happen exactly one sample later - not implemented correctly yet */ - FM_KEYOFF(&CH->SLOT[SLOT1], ~4); - FM_KEYOFF(&CH->SLOT[SLOT2], ~4); + CH->SLOT[SLOT1].KEYOFF(~4); + CH->SLOT[SLOT2].KEYOFF(~4); } @@ -2100,11 +2108,11 @@ static int OPLTimerOver(FM_OPL *OPL,int c) { if( c ) { /* Timer B */ - OPL_STATUS_SET(OPL,0x20); + OPL->STATUS_SET(0x20); } else { /* Timer A */ - OPL_STATUS_SET(OPL,0x40); + OPL->STATUS_SET(0x40); /* CSM mode key,TL controll */ if( OPL->mode & 0x80 ) { /* CSM mode total level latch and auto key on */ @@ -2152,7 +2160,7 @@ void ym3812_shutdown(void *chip) void ym3812_reset_chip(void *chip) { FM_OPL *YM3812 = (FM_OPL *)chip; - OPLResetChip(YM3812); + YM3812->ResetChip(); } int ym3812_write(void *chip, int a, int v) @@ -2173,20 +2181,20 @@ int ym3812_timer_over(void *chip, int c) return OPLTimerOver(YM3812, c); } -void ym3812_set_timer_handler(void *chip, OPL_TIMERHANDLER timer_handler, void *param) +void ym3812_set_timer_handler(void *chip, OPL_TIMERHANDLER timer_handler, device_t *device) { FM_OPL *YM3812 = (FM_OPL *)chip; - OPLSetTimerHandler(YM3812, timer_handler, param); + OPLSetTimerHandler(YM3812, timer_handler, device); } -void ym3812_set_irq_handler(void *chip,OPL_IRQHANDLER IRQHandler,void *param) +void ym3812_set_irq_handler(void *chip,OPL_IRQHANDLER IRQHandler,device_t *device) { FM_OPL *YM3812 = (FM_OPL *)chip; - OPLSetIRQHandler(YM3812, IRQHandler, param); + OPLSetIRQHandler(YM3812, IRQHandler, device); } -void ym3812_set_update_handler(void *chip,OPL_UPDATEHANDLER UpdateHandler,void *param) +void ym3812_set_update_handler(void *chip,OPL_UPDATEHANDLER UpdateHandler,device_t *device) { FM_OPL *YM3812 = (FM_OPL *)chip; - OPLSetUpdateHandler(YM3812, UpdateHandler, param); + OPLSetUpdateHandler(YM3812, UpdateHandler, device); } @@ -2210,25 +2218,25 @@ void ym3812_update_one(void *chip, OPLSAMPLE *buffer, int length) OPL->output[0] = 0; - advance_lfo(OPL); + OPL->advance_lfo(); /* FM part */ - OPL_CALC_CH(OPL, &OPL->P_CH[0]); - OPL_CALC_CH(OPL, &OPL->P_CH[1]); - OPL_CALC_CH(OPL, &OPL->P_CH[2]); - OPL_CALC_CH(OPL, &OPL->P_CH[3]); - OPL_CALC_CH(OPL, &OPL->P_CH[4]); - OPL_CALC_CH(OPL, &OPL->P_CH[5]); + OPL->CALC_CH(OPL->P_CH[0]); + OPL->CALC_CH(OPL->P_CH[1]); + OPL->CALC_CH(OPL->P_CH[2]); + OPL->CALC_CH(OPL->P_CH[3]); + OPL->CALC_CH(OPL->P_CH[4]); + OPL->CALC_CH(OPL->P_CH[5]); if(!rhythm) { - OPL_CALC_CH(OPL, &OPL->P_CH[6]); - OPL_CALC_CH(OPL, &OPL->P_CH[7]); - OPL_CALC_CH(OPL, &OPL->P_CH[8]); + OPL->CALC_CH(OPL->P_CH[6]); + OPL->CALC_CH(OPL->P_CH[7]); + OPL->CALC_CH(OPL->P_CH[8]); } else /* Rhythm part */ { - OPL_CALC_RH(OPL, &OPL->P_CH[0], (OPL->noise_rng>>0)&1 ); + OPL->CALC_RH(); } lt = OPL->output[0]; @@ -2248,7 +2256,7 @@ void ym3812_update_one(void *chip, OPLSAMPLE *buffer, int length) /* store to sound buffer */ buf[i] = lt; - advance(OPL); + OPL->advance(); } } @@ -2284,7 +2292,7 @@ void ym3526_shutdown(void *chip) void ym3526_reset_chip(void *chip) { FM_OPL *YM3526 = (FM_OPL *)chip; - OPLResetChip(YM3526); + YM3526->ResetChip(); } int ym3526_write(void *chip, int a, int v) @@ -2305,20 +2313,20 @@ int ym3526_timer_over(void *chip, int c) return OPLTimerOver(YM3526, c); } -void ym3526_set_timer_handler(void *chip, OPL_TIMERHANDLER timer_handler, void *param) +void ym3526_set_timer_handler(void *chip, OPL_TIMERHANDLER timer_handler, device_t *device) { FM_OPL *YM3526 = (FM_OPL *)chip; - OPLSetTimerHandler(YM3526, timer_handler, param); + OPLSetTimerHandler(YM3526, timer_handler, device); } -void ym3526_set_irq_handler(void *chip,OPL_IRQHANDLER IRQHandler,void *param) +void ym3526_set_irq_handler(void *chip,OPL_IRQHANDLER IRQHandler,device_t *device) { FM_OPL *YM3526 = (FM_OPL *)chip; - OPLSetIRQHandler(YM3526, IRQHandler, param); + OPLSetIRQHandler(YM3526, IRQHandler, device); } -void ym3526_set_update_handler(void *chip,OPL_UPDATEHANDLER UpdateHandler,void *param) +void ym3526_set_update_handler(void *chip,OPL_UPDATEHANDLER UpdateHandler,device_t *device) { FM_OPL *YM3526 = (FM_OPL *)chip; - OPLSetUpdateHandler(YM3526, UpdateHandler, param); + OPLSetUpdateHandler(YM3526, UpdateHandler, device); } @@ -2342,25 +2350,25 @@ void ym3526_update_one(void *chip, OPLSAMPLE *buffer, int length) OPL->output[0] = 0; - advance_lfo(OPL); + OPL->advance_lfo(); /* FM part */ - OPL_CALC_CH(OPL, &OPL->P_CH[0]); - OPL_CALC_CH(OPL, &OPL->P_CH[1]); - OPL_CALC_CH(OPL, &OPL->P_CH[2]); - OPL_CALC_CH(OPL, &OPL->P_CH[3]); - OPL_CALC_CH(OPL, &OPL->P_CH[4]); - OPL_CALC_CH(OPL, &OPL->P_CH[5]); + OPL->CALC_CH(OPL->P_CH[0]); + OPL->CALC_CH(OPL->P_CH[1]); + OPL->CALC_CH(OPL->P_CH[2]); + OPL->CALC_CH(OPL->P_CH[3]); + OPL->CALC_CH(OPL->P_CH[4]); + OPL->CALC_CH(OPL->P_CH[5]); if(!rhythm) { - OPL_CALC_CH(OPL, &OPL->P_CH[6]); - OPL_CALC_CH(OPL, &OPL->P_CH[7]); - OPL_CALC_CH(OPL, &OPL->P_CH[8]); + OPL->CALC_CH(OPL->P_CH[6]); + OPL->CALC_CH(OPL->P_CH[7]); + OPL->CALC_CH(OPL->P_CH[8]); } else /* Rhythm part */ { - OPL_CALC_RH(OPL, &OPL->P_CH[0], (OPL->noise_rng>>0)&1 ); + OPL->CALC_RH(); } lt = OPL->output[0]; @@ -2380,7 +2388,7 @@ void ym3526_update_one(void *chip, OPLSAMPLE *buffer, int length) /* store to sound buffer */ buf[i] = lt; - advance(OPL); + OPL->advance(); } } @@ -2394,12 +2402,12 @@ void ym3526_update_one(void *chip, OPLSAMPLE *buffer, int length) static void Y8950_deltat_status_set(void *chip, uint8_t changebits) { FM_OPL *Y8950 = (FM_OPL *)chip; - OPL_STATUS_SET(Y8950, changebits); + Y8950->STATUS_SET(changebits); } static void Y8950_deltat_status_reset(void *chip, uint8_t changebits) { FM_OPL *Y8950 = (FM_OPL *)chip; - OPL_STATUS_RESET(Y8950, changebits); + Y8950->STATUS_RESET(changebits); } void *y8950_init(device_t *device, uint32_t clock, uint32_t rate) @@ -2433,7 +2441,7 @@ void y8950_shutdown(void *chip) void y8950_reset_chip(void *chip) { FM_OPL *Y8950 = (FM_OPL *)chip; - OPLResetChip(Y8950); + Y8950->ResetChip(); } int y8950_write(void *chip, int a, int v) @@ -2453,20 +2461,20 @@ int y8950_timer_over(void *chip, int c) return OPLTimerOver(Y8950, c); } -void y8950_set_timer_handler(void *chip, OPL_TIMERHANDLER timer_handler, void *param) +void y8950_set_timer_handler(void *chip, OPL_TIMERHANDLER timer_handler, device_t *device) { FM_OPL *Y8950 = (FM_OPL *)chip; - OPLSetTimerHandler(Y8950, timer_handler, param); + OPLSetTimerHandler(Y8950, timer_handler, device); } -void y8950_set_irq_handler(void *chip,OPL_IRQHANDLER IRQHandler,void *param) +void y8950_set_irq_handler(void *chip,OPL_IRQHANDLER IRQHandler,device_t *device) { FM_OPL *Y8950 = (FM_OPL *)chip; - OPLSetIRQHandler(Y8950, IRQHandler, param); + OPLSetIRQHandler(Y8950, IRQHandler, device); } -void y8950_set_update_handler(void *chip,OPL_UPDATEHANDLER UpdateHandler,void *param) +void y8950_set_update_handler(void *chip,OPL_UPDATEHANDLER UpdateHandler,device_t *device) { FM_OPL *Y8950 = (FM_OPL *)chip; - OPLSetUpdateHandler(Y8950, UpdateHandler, param); + OPLSetUpdateHandler(Y8950, UpdateHandler, device); } void y8950_set_delta_t_memory(void *chip, void * deltat_mem_ptr, int deltat_mem_size ) @@ -2498,29 +2506,29 @@ void y8950_update_one(void *chip, OPLSAMPLE *buffer, int length) OPL->output[0] = 0; OPL->output_deltat[0] = 0; - advance_lfo(OPL); + OPL->advance_lfo(); /* deltaT ADPCM */ if( DELTAT->portstate&0x80 ) - YM_DELTAT_ADPCM_CALC(DELTAT); + DELTAT->ADPCM_CALC(); /* FM part */ - OPL_CALC_CH(OPL, &OPL->P_CH[0]); - OPL_CALC_CH(OPL, &OPL->P_CH[1]); - OPL_CALC_CH(OPL, &OPL->P_CH[2]); - OPL_CALC_CH(OPL, &OPL->P_CH[3]); - OPL_CALC_CH(OPL, &OPL->P_CH[4]); - OPL_CALC_CH(OPL, &OPL->P_CH[5]); + OPL->CALC_CH(OPL->P_CH[0]); + OPL->CALC_CH(OPL->P_CH[1]); + OPL->CALC_CH(OPL->P_CH[2]); + OPL->CALC_CH(OPL->P_CH[3]); + OPL->CALC_CH(OPL->P_CH[4]); + OPL->CALC_CH(OPL->P_CH[5]); if(!rhythm) { - OPL_CALC_CH(OPL, &OPL->P_CH[6]); - OPL_CALC_CH(OPL, &OPL->P_CH[7]); - OPL_CALC_CH(OPL, &OPL->P_CH[8]); + OPL->CALC_CH(OPL->P_CH[6]); + OPL->CALC_CH(OPL->P_CH[7]); + OPL->CALC_CH(OPL->P_CH[8]); } else /* Rhythm part */ { - OPL_CALC_RH(OPL, &OPL->P_CH[0], (OPL->noise_rng>>0)&1 ); + OPL->CALC_RH(); } lt = OPL->output[0] + (OPL->output_deltat[0]>>11); @@ -2540,25 +2548,25 @@ void y8950_update_one(void *chip, OPLSAMPLE *buffer, int length) /* store to sound buffer */ buf[i] = lt; - advance(OPL); + OPL->advance(); } } -void y8950_set_port_handler(void *chip,OPL_PORTHANDLER_W PortHandler_w,OPL_PORTHANDLER_R PortHandler_r,void * param) +void y8950_set_port_handler(void *chip,OPL_PORTHANDLER_W PortHandler_w,OPL_PORTHANDLER_R PortHandler_r,device_t *device) { FM_OPL *OPL = (FM_OPL *)chip; OPL->porthandler_w = PortHandler_w; OPL->porthandler_r = PortHandler_r; - OPL->port_param = param; + OPL->port_param = device; } -void y8950_set_keyboard_handler(void *chip,OPL_PORTHANDLER_W KeyboardHandler_w,OPL_PORTHANDLER_R KeyboardHandler_r,void * param) +void y8950_set_keyboard_handler(void *chip,OPL_PORTHANDLER_W KeyboardHandler_w,OPL_PORTHANDLER_R KeyboardHandler_r,device_t *device) { FM_OPL *OPL = (FM_OPL *)chip; OPL->keyboardhandler_w = KeyboardHandler_w; OPL->keyboardhandler_r = KeyboardHandler_r; - OPL->keyboard_param = param; + OPL->keyboard_param = device; } #endif diff --git a/src/devices/sound/fmopl.h b/src/devices/sound/fmopl.h index 89c19876fa6..c5366d7badb 100644 --- a/src/devices/sound/fmopl.h +++ b/src/devices/sound/fmopl.h @@ -1,9 +1,12 @@ // license:GPL-2.0+ // copyright-holders:Jarek Burczynski,Tatsuyuki Satoh +#ifndef MAME_SOUND_FMOPL_H +#define MAME_SOUND_FMOPL_H + #pragma once -#ifndef __FMOPL_H__ -#define __FMOPL_H__ +#include + /* --- select emulation chips --- */ #define BUILD_YM3812 (1) @@ -13,17 +16,6 @@ /* select output bits size of output : 8 or 16 */ #define OPL_SAMPLE_BITS 16 -/* compiler dependence */ -#ifndef __OSDCOMM_H__ -#define __OSDCOMM_H__ -typedef unsigned char uint8_t; /* unsigned 8bit */ -typedef unsigned short uint16_t; /* unsigned 16bit */ -typedef unsigned int uint32_t; /* unsigned 32bit */ -typedef signed char int8_t; /* signed 8bit */ -typedef signed short int16_t; /* signed 16bit */ -typedef signed int int32_t; /* signed 32bit */ -#endif /* __OSDCOMM_H__ */ - typedef stream_sample_t OPLSAMPLE; /* #if (OPL_SAMPLE_BITS==16) @@ -34,11 +26,11 @@ typedef int8_t OPLSAMPLE; #endif */ -typedef void (*OPL_TIMERHANDLER)(void *param,int timer,const attotime &period); -typedef void (*OPL_IRQHANDLER)(void *param,int irq); -typedef void (*OPL_UPDATEHANDLER)(void *param,int min_interval_us); -typedef void (*OPL_PORTHANDLER_W)(void *param,unsigned char data); -typedef unsigned char (*OPL_PORTHANDLER_R)(void *param); +typedef void (*OPL_TIMERHANDLER)(device_t *device,int timer,const attotime &period); +typedef void (*OPL_IRQHANDLER)(device_t *device,int irq); +typedef void (*OPL_UPDATEHANDLER)(device_t *device,int min_interval_us); +typedef void (*OPL_PORTHANDLER_W)(device_t *device,unsigned char data); +typedef unsigned char (*OPL_PORTHANDLER_R)(device_t *device); #if BUILD_YM3812 @@ -52,9 +44,9 @@ unsigned char ym3812_read(void *chip, int a); int ym3812_timer_over(void *chip, int c); void ym3812_update_one(void *chip, OPLSAMPLE *buffer, int length); -void ym3812_set_timer_handler(void *chip, OPL_TIMERHANDLER TimerHandler, void *param); -void ym3812_set_irq_handler(void *chip, OPL_IRQHANDLER IRQHandler, void *param); -void ym3812_set_update_handler(void *chip, OPL_UPDATEHANDLER UpdateHandler, void *param); +void ym3812_set_timer_handler(void *chip, OPL_TIMERHANDLER TimerHandler, device_t *device); +void ym3812_set_irq_handler(void *chip, OPL_IRQHANDLER IRQHandler, device_t *device); +void ym3812_set_update_handler(void *chip, OPL_UPDATEHANDLER UpdateHandler, device_t *device); #endif /* BUILD_YM3812 */ @@ -85,9 +77,9 @@ int ym3526_timer_over(void *chip, int c); */ void ym3526_update_one(void *chip, OPLSAMPLE *buffer, int length); -void ym3526_set_timer_handler(void *chip, OPL_TIMERHANDLER TimerHandler, void *param); -void ym3526_set_irq_handler(void *chip, OPL_IRQHANDLER IRQHandler, void *param); -void ym3526_set_update_handler(void *chip, OPL_UPDATEHANDLER UpdateHandler, void *param); +void ym3526_set_timer_handler(void *chip, OPL_TIMERHANDLER TimerHandler, device_t *device); +void ym3526_set_irq_handler(void *chip, OPL_IRQHANDLER IRQHandler, device_t *device); +void ym3526_set_update_handler(void *chip, OPL_UPDATEHANDLER UpdateHandler, device_t *device); #endif /* BUILD_YM3526 */ @@ -95,8 +87,8 @@ void ym3526_set_update_handler(void *chip, OPL_UPDATEHANDLER UpdateHandler, void #if BUILD_Y8950 /* Y8950 port handlers */ -void y8950_set_port_handler(void *chip, OPL_PORTHANDLER_W PortHandler_w, OPL_PORTHANDLER_R PortHandler_r, void *param); -void y8950_set_keyboard_handler(void *chip, OPL_PORTHANDLER_W KeyboardHandler_w, OPL_PORTHANDLER_R KeyboardHandler_r, void *param); +void y8950_set_port_handler(void *chip, OPL_PORTHANDLER_W PortHandler_w, OPL_PORTHANDLER_R PortHandler_r, device_t *device); +void y8950_set_keyboard_handler(void *chip, OPL_PORTHANDLER_W KeyboardHandler_w, OPL_PORTHANDLER_R KeyboardHandler_r, device_t *device); void y8950_set_delta_t_memory(void *chip, void * deltat_mem_ptr, int deltat_mem_size ); void * y8950_init(device_t *device, uint32_t clock, uint32_t rate); @@ -107,11 +99,11 @@ unsigned char y8950_read (void *chip, int a); int y8950_timer_over(void *chip, int c); void y8950_update_one(void *chip, OPLSAMPLE *buffer, int length); -void y8950_set_timer_handler(void *chip, OPL_TIMERHANDLER TimerHandler, void *param); -void y8950_set_irq_handler(void *chip, OPL_IRQHANDLER IRQHandler, void *param); -void y8950_set_update_handler(void *chip, OPL_UPDATEHANDLER UpdateHandler, void *param); +void y8950_set_timer_handler(void *chip, OPL_TIMERHANDLER TimerHandler, device_t *device); +void y8950_set_irq_handler(void *chip, OPL_IRQHANDLER IRQHandler, device_t *device); +void y8950_set_update_handler(void *chip, OPL_UPDATEHANDLER UpdateHandler, device_t *device); #endif /* BUILD_Y8950 */ -#endif /* __FMOPL_H__ */ +#endif // MAME_SOUND_FMOPL_H diff --git a/src/devices/sound/gaelco.cpp b/src/devices/sound/gaelco.cpp index b1b1d111788..e96b4d77459 100644 --- a/src/devices/sound/gaelco.cpp +++ b/src/devices/sound/gaelco.cpp @@ -54,15 +54,15 @@ static wav_file* wavraw; // Raw waveform Gaelco GAE1 sound device ============================================================================*/ -const device_type GAELCO_GAE1 = device_creator; +DEFINE_DEVICE_TYPE(GAELCO_GAE1, gaelco_gae1_device, "gaelco_gae1", "Gaelco GAE1") gaelco_gae1_device::gaelco_gae1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : gaelco_gae1_device(mconfig, GAELCO_GAE1, "Gaelco GAE1", tag, owner, clock, "gaelco_gae1", __FILE__) + : gaelco_gae1_device(mconfig, GAELCO_GAE1, tag, owner, clock) { } -gaelco_gae1_device::gaelco_gae1_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source) +gaelco_gae1_device::gaelco_gae1_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) , device_sound_interface(mconfig, *this) , m_stream(nullptr) , m_snd_data(*this, finder_base::DUMMY_TAG) @@ -85,9 +85,9 @@ void gaelco_gae1_device::sound_stream_update(sound_stream &stream, stream_sample int output_l = 0, output_r = 0; /* for each channel */ - for (ch = 0; ch < GAELCO_NUM_CHANNELS; ch ++){ + for (ch = 0; ch < NUM_CHANNELS; ch ++){ int ch_data_l = 0, ch_data_r = 0; - gaelco_sound_channel *channel = &m_channel[ch]; + sound_channel *channel = &m_channel[ch]; /* if the channel is playing */ if (channel->active == 1){ @@ -162,8 +162,8 @@ void gaelco_gae1_device::sound_stream_update(sound_stream &stream, stream_sample if (output_r < -32768) output_r = -32768; #else /* ponderate channels */ - output_l /= GAELCO_NUM_CHANNELS; - output_r /= GAELCO_NUM_CHANNELS; + output_l /= NUM_CHANNELS; + output_r /= NUM_CHANNELS; #endif /* now that we have computed all channels, save current data to the output buffer */ @@ -195,7 +195,7 @@ READ16_MEMBER( gaelco_gae1_device::gaelcosnd_r ) WRITE16_MEMBER( gaelco_gae1_device::gaelcosnd_w ) { - gaelco_sound_channel *channel = &m_channel[offset >> 3]; + sound_channel *channel = &m_channel[offset >> 3]; LOG_READ_WRITES(("%s: (GAE1): write %04x to %04x\n", machine().describe_context(), data, offset)); @@ -241,9 +241,9 @@ void gaelco_gae1_device::device_start() m_stream = stream_alloc(0, 2, 8000); /* init volume table */ - for (int vol = 0; vol < GAELCO_VOLUME_LEVELS; vol++){ + for (int vol = 0; vol < VOLUME_LEVELS; vol++){ for (int j = -128; j <= 127; j++){ - m_volume_table[vol][(j ^ 0x80) & 0xff] = (vol*j*256)/(GAELCO_VOLUME_LEVELS - 1); + m_volume_table[vol][(j ^ 0x80) & 0xff] = (vol*j*256)/(VOLUME_LEVELS - 1); } } @@ -264,9 +264,9 @@ void gaelco_gae1_device::device_stop() Gaelco CG-1V sound device ============================================================================*/ -const device_type GAELCO_CG1V = device_creator; +DEFINE_DEVICE_TYPE(GAELCO_CG1V, gaelco_cg1v_device, "gaelco_cg1v", "Gaelco CG1V") gaelco_cg1v_device::gaelco_cg1v_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : gaelco_gae1_device(mconfig, GAELCO_CG1V, "Gaelco CG1V", tag, owner, clock, "gaelco_cg1v", __FILE__) + : gaelco_gae1_device(mconfig, GAELCO_CG1V, tag, owner, clock) { } diff --git a/src/devices/sound/gaelco.h b/src/devices/sound/gaelco.h index b17c72e3de0..ed099823b5a 100644 --- a/src/devices/sound/gaelco.h +++ b/src/devices/sound/gaelco.h @@ -1,12 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Manuel Abadia -#pragma once - -#ifndef __GAELCO_SND_H__ -#define __GAELCO_SND_H__ +#ifndef MAME_SOUND_GAELCO_H +#define MAME_SOUND_GAELCO_H -#define GAELCO_NUM_CHANNELS 0x07 -#define GAELCO_VOLUME_LEVELS 0x10 +#pragma once //************************************************************************** @@ -24,15 +21,6 @@ // TYPE DEFINITIONS //************************************************************************** -// ======================> Sound Channel - -struct gaelco_sound_channel -{ - int active; // is it playing? - int loop; // = 0 no looping, = 1 looping - int chunkNum; // current chunk if looping -}; - // ======================> gaelco_gae1_device @@ -41,8 +29,6 @@ class gaelco_gae1_device : public device_t, { public: gaelco_gae1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - gaelco_gae1_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - ~gaelco_gae1_device() { } static void set_snd_data_tag(device_t &device, const char *tag) { downcast(device).m_snd_data.set_tag(tag); } static void set_bank_offsets(device_t &device, int offs1, int offs2, int offs3, int offs4) @@ -54,7 +40,12 @@ public: dev.m_banks[3] = offs4; } + DECLARE_WRITE16_MEMBER( gaelcosnd_w ); + DECLARE_READ16_MEMBER( gaelcosnd_r ); + protected: + gaelco_gae1_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_stop() override; @@ -62,23 +53,29 @@ protected: // sound stream update overrides virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; -public: - DECLARE_WRITE16_MEMBER( gaelcosnd_w ); - DECLARE_READ16_MEMBER( gaelcosnd_r ); - private: - sound_stream *m_stream; /* our stream */ - required_region_ptr m_snd_data; /* PCM data */ - int m_banks[4]; /* start of each ROM bank */ - gaelco_sound_channel m_channel[GAELCO_NUM_CHANNELS]; /* 7 stereo channels */ + static constexpr unsigned NUM_CHANNELS = 0x07; + static constexpr unsigned VOLUME_LEVELS = 0x10; + + struct sound_channel + { + int active; // is it playing? + int loop; // = 0 no looping, = 1 looping + int chunkNum; // current chunk if looping + }; + + sound_stream *m_stream; /* our stream */ + required_region_ptr m_snd_data; /* PCM data */ + int m_banks[4]; /* start of each ROM bank */ + sound_channel m_channel[NUM_CHANNELS]; /* 7 stereo channels */ uint16_t m_sndregs[0x38]; // Table for converting from 8 to 16 bits with volume control - int16_t m_volume_table[GAELCO_VOLUME_LEVELS][256]; + int16_t m_volume_table[VOLUME_LEVELS][256]; }; -extern const device_type GAELCO_GAE1; +DECLARE_DEVICE_TYPE(GAELCO_GAE1, gaelco_gae1_device) @@ -90,7 +87,7 @@ public: gaelco_cg1v_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; -extern const device_type GAELCO_CG1V; +DECLARE_DEVICE_TYPE(GAELCO_CG1V, gaelco_cg1v_device) -#endif /* __GAELCO_SND_H__ */ +#endif // MAME_SOUND_GAELCO_H diff --git a/src/devices/sound/gb.cpp b/src/devices/sound/gb.cpp index ef06c7a84da..3589cf05b06 100644 --- a/src/devices/sound/gb.cpp +++ b/src/devices/sound/gb.cpp @@ -71,10 +71,10 @@ const int gameboy_sound_device::wave_duty_table[4][8] = }; // device type definitions -const device_type DMG_APU = device_creator; -//const device_type CGB02_APU = device_creator; -const device_type CGB04_APU = device_creator; -//const device_type CGB05_APU = device_creator; +DEFINE_DEVICE_TYPE(DMG_APU, dmg_apu_device, "dmg_apu", "LR35902 APU") +//DEFINE_DEVICE_TYPE(CGB02_APU, cgb02_apu_device, "cgb02_apu", fullname) +DEFINE_DEVICE_TYPE(CGB04_APU, cgb04_apu_device, "cgb04_apu", "CGB04 APU") +//DEFINE_DEVICE_TYPE(CGB05_APU, cgb05_apu_device, "cgb05_apu", fullname) //************************************************************************** // LIVE DEVICE @@ -84,21 +84,21 @@ const device_type CGB04_APU = device_creator; // gameboy_sound_device - constructor //------------------------------------------------- -gameboy_sound_device::gameboy_sound_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source) +gameboy_sound_device::gameboy_sound_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) , device_sound_interface(mconfig, *this) { } dmg_apu_device::dmg_apu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : gameboy_sound_device(mconfig, DMG_APU, "LR35902 APU", tag, owner, clock, "dmg_apu", __FILE__) + : gameboy_sound_device(mconfig, DMG_APU, tag, owner, clock) { } cgb04_apu_device::cgb04_apu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : gameboy_sound_device(mconfig, CGB04_APU, "CGB04 APU", tag, owner, clock, "cgb04_apu", __FILE__) + : gameboy_sound_device(mconfig, CGB04_APU, tag, owner, clock) { } diff --git a/src/devices/sound/gb.h b/src/devices/sound/gb.h index 2a1ff031464..f4139d0b1a6 100644 --- a/src/devices/sound/gb.h +++ b/src/devices/sound/gb.h @@ -1,8 +1,8 @@ // license:BSD-3-Clause // copyright-holders:Anthony Kruize, Wilbert Pol // thanks-to:Shay Green -#ifndef __GBSOUND_H__ -#define __GBSOUND_H__ +#ifndef MAME_SOUND_GB_H +#define MAME_SOUND_GB_H class gameboy_sound_device : public device_t, @@ -10,7 +10,6 @@ class gameboy_sound_device : public device_t, { public: gameboy_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - gameboy_sound_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); DECLARE_READ8_MEMBER(sound_r); virtual DECLARE_READ8_MEMBER(wave_r) = 0; @@ -18,6 +17,8 @@ public: virtual DECLARE_WRITE8_MEMBER(wave_w) = 0; protected: + gameboy_sound_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -191,9 +192,9 @@ protected: }; -extern const device_type DMG_APU; -//extern const device_type CGB02_APU; -extern const device_type CGB04_APU; -//extern const device_type CGB05_APU; +DECLARE_DEVICE_TYPE(DMG_APU, dmg_apu_device) +//DECLARE_DEVICE_TYPE(CGB02_APU, cgb02_apu_device) +DECLARE_DEVICE_TYPE(CGB04_APU, cgb04_apu_device) +//DECLARE_DEVICE_TYPE(CGB05_APU, cgb05_apu_device) -#endif +#endif // MAME_SOUND_GB_H diff --git a/src/devices/sound/hc55516.cpp b/src/devices/sound/hc55516.cpp index 59a248e6b7f..99cc782dc20 100644 --- a/src/devices/sound/hc55516.cpp +++ b/src/devices/sound/hc55516.cpp @@ -23,30 +23,15 @@ -const device_type HC55516 = device_creator; +DEFINE_DEVICE_TYPE(HC55516, hc55516_device, "hc55516", "HC-55516") hc55516_device::hc55516_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, HC55516, "HC-55516", tag, owner, clock, "hc55516", __FILE__), - device_sound_interface(mconfig, *this), - m_channel(nullptr), - m_active_clock_hi(0), - m_shiftreg_mask(0), - m_last_clock_state(0), - m_digit(0), - m_new_digit(0), - m_shiftreg(0), - m_curr_sample(0), - m_next_sample(0), - m_update_count(0), - m_filter(0), - m_integrator(0), - m_charge(0), - m_decay(0), - m_leak(0) + : hc55516_device(mconfig, HC55516, tag, owner, clock) { } -hc55516_device::hc55516_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), + +hc55516_device::hc55516_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock), device_sound_interface(mconfig, *this), m_channel(nullptr), m_active_clock_hi(0), @@ -84,10 +69,10 @@ void hc55516_device::device_reset() m_last_clock_state = 0; } -const device_type MC3417 = device_creator; +DEFINE_DEVICE_TYPE(MC3417, mc3417_device, "mc3417", "MC3417") mc3417_device::mc3417_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : hc55516_device(mconfig, MC3417, "MC3417", tag, owner, clock, "mc3417", __FILE__) + : hc55516_device(mconfig, MC3417, tag, owner, clock) { } @@ -101,10 +86,10 @@ void mc3417_device::device_start() } -const device_type MC3418 = device_creator; +DEFINE_DEVICE_TYPE(MC3418, mc3418_device, "mc3418", "MC3418") mc3418_device::mc3418_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : hc55516_device(mconfig, MC3418, "MC3418", tag, owner, clock, "mc3418", __FILE__) + : hc55516_device(mconfig, MC3418, tag, owner, clock) { } diff --git a/src/devices/sound/hc55516.h b/src/devices/sound/hc55516.h index 23d853ef001..d375de7c413 100644 --- a/src/devices/sound/hc55516.h +++ b/src/devices/sound/hc55516.h @@ -1,17 +1,14 @@ // license:BSD-3-Clause // copyright-holders:Aaron Giles -#pragma once +#ifndef MAME_SOUND_HC55516_H +#define MAME_SOUND_HC55516_H -#ifndef __HC55516_H__ -#define __HC55516_H__ +#pragma once -class hc55516_device : public device_t, - public device_sound_interface +class hc55516_device : public device_t, public device_sound_interface { public: hc55516_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - hc55516_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - ~hc55516_device() {} /* sets the digit (0 or 1) */ void digit_w(int digit); @@ -23,6 +20,8 @@ public: int clock_state_r(); protected: + hc55516_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -60,12 +59,12 @@ protected: void process_digit(); }; -extern const device_type HC55516; class mc3417_device : public hc55516_device { public: mc3417_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + protected: // device-level overrides virtual void device_start() override; @@ -74,12 +73,12 @@ protected: virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; }; -extern const device_type MC3417; class mc3418_device : public hc55516_device { public: mc3418_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + protected: // device-level overrides virtual void device_start() override; @@ -88,7 +87,9 @@ protected: virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; }; -extern const device_type MC3418; +DECLARE_DEVICE_TYPE(HC55516, hc55516_device) +DECLARE_DEVICE_TYPE(MC3417, mc3417_device) +DECLARE_DEVICE_TYPE(MC3418, mc3418_device) -#endif /* __HC55516_H__ */ +#endif // MAME_SOUND_HC55516_H diff --git a/src/devices/sound/i5000.cpp b/src/devices/sound/i5000.cpp index d1532929ff5..7c8a19111fc 100644 --- a/src/devices/sound/i5000.cpp +++ b/src/devices/sound/i5000.cpp @@ -21,11 +21,12 @@ // device type definition -const device_type I5000_SND = device_creator; +DEFINE_DEVICE_TYPE(I5000_SND, i5000snd_device, "i5000snd", "Imagetek I5000 Sound") i5000snd_device::i5000snd_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, I5000_SND, "I5000", tag, owner, clock, "i5000snd", __FILE__), - device_sound_interface(mconfig, *this), m_stream(nullptr), m_rom_base(nullptr), m_rom_mask(0) + : device_t(mconfig, I5000_SND, tag, owner, clock) + , device_sound_interface(mconfig, *this) + , m_stream(nullptr), m_rom_base(nullptr), m_rom_mask(0) { } diff --git a/src/devices/sound/i5000.h b/src/devices/sound/i5000.h index 26880fe7c79..4cec4245810 100644 --- a/src/devices/sound/i5000.h +++ b/src/devices/sound/i5000.h @@ -6,10 +6,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_SOUND_I5000_H +#define MAME_SOUND_I5000_H -#ifndef __I5000_H__ -#define __I5000_H__ +#pragma once #include "sound/okiadpcm.h" @@ -39,8 +39,6 @@ public: DECLARE_READ16_MEMBER(read); DECLARE_WRITE16_MEMBER(write); - sound_stream *m_stream; - protected: // device-level overrides virtual void device_start() override; @@ -48,6 +46,8 @@ protected: virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; + sound_stream *m_stream; + private: struct channel_t { @@ -85,5 +85,6 @@ private: // device type definition extern const device_type I5000_SND; +DECLARE_DEVICE_TYPE(I5000_SND, i5000snd_device) -#endif /* __I5000_H__ */ +#endif // MAME_SOUND_I5000_H diff --git a/src/devices/sound/ics2115.cpp b/src/devices/sound/ics2115.cpp index 0b0db0768fe..12062e9a509 100644 --- a/src/devices/sound/ics2115.cpp +++ b/src/devices/sound/ics2115.cpp @@ -15,10 +15,10 @@ //#define ICS2115_ISOLATE 6 // device type definition -const device_type ICS2115 = device_creator; +DEFINE_DEVICE_TYPE(ICS2115, ics2115_device, "ics2115", "ICS2115") ics2115_device::ics2115_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, ICS2115, "ICS2115", tag, owner, clock, "ics2115", __FILE__), + : device_t(mconfig, ICS2115, tag, owner, clock), device_sound_interface(mconfig, *this), m_stream(nullptr), m_rom(*this, DEVICE_SELF), m_irq_cb(*this), m_active_osc(0), m_osc_select(0), m_reg_select(0), m_irq_enabled(0), m_irq_pending(0), m_irq_on(false), m_vmode(0) @@ -135,7 +135,7 @@ void ics2115_device::device_reset() } //TODO: improve using next-state logic from column 126 of patent 5809466 -int ics2115_voice::update_volume_envelope() +int ics2115_device::ics2115_voice::update_volume_envelope() { int ret = 0; if(vol_ctrl.bitflags.done || vol_ctrl.bitflags.stop) @@ -180,7 +180,7 @@ int ics2115_voice::update_volume_envelope() return ret; } -/*uint32_t ics2115_voice::next_address() +/*uint32_t ics2115_device::ics2115_voice::next_address() { //Patent 6,246,774 B1, Column 111, Row 25 //LEN BLEN DIR BC NextAddress @@ -195,7 +195,7 @@ int ics2115_voice::update_volume_envelope() }*/ -int ics2115_voice::update_oscillator() +int ics2115_device::ics2115_voice::update_oscillator() { int ret = 0; if(osc_conf.bitflags.stop) @@ -281,12 +281,12 @@ stream_sample_t ics2115_device::get_sample(ics2115_voice& voice) return sample; } -bool ics2115_voice::playing() +bool ics2115_device::ics2115_voice::playing() { return state.bitflags.on && !((vol_ctrl.bitflags.done || vol_ctrl.bitflags.stop) && osc_conf.bitflags.stop); } -void ics2115_voice::update_ramp() { +void ics2115_device::ics2115_voice::update_ramp() { //slow attack if (state.bitflags.on && !osc_conf.bitflags.stop) { if (state.bitflags.ramp < 0x40) diff --git a/src/devices/sound/ics2115.h b/src/devices/sound/ics2115.h index c383b1e11f7..45fe8e7061e 100644 --- a/src/devices/sound/ics2115.h +++ b/src/devices/sound/ics2115.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Alex Marshall,nimitz,austere -#pragma once +#ifndef MAME_SOUND_ICS2115_H +#define MAME_SOUND_ICS2115_H -#ifndef __ICS2115_H__ -#define __ICS2115_H__ +#pragma once //************************************************************************** @@ -20,70 +20,6 @@ // TYPE DEFINITIONS //************************************************************************** -struct ics2115_voice { - struct { - int32_t left; - uint32_t acc, start, end; - uint16_t fc; - uint8_t ctl, saddr; - } osc; - - struct { - int32_t left; - uint32_t add; - uint32_t start, end; - uint32_t acc; - uint16_t regacc; - uint8_t incr; - uint8_t pan, mode; - } vol; - - union { - struct { - uint8_t ulaw : 1; - uint8_t stop : 1; //stops wave + vol envelope - uint8_t eightbit : 1; - uint8_t loop : 1; - uint8_t loop_bidir : 1; - uint8_t irq : 1; - uint8_t invert : 1; - uint8_t irq_pending: 1; - //IRQ on variable? - } bitflags; - uint8_t value; - } osc_conf; - - union { - struct { - uint8_t done : 1; //indicates ramp has stopped - uint8_t stop : 1; //stops the ramp - uint8_t rollover : 1; //rollover (TODO) - uint8_t loop : 1; - uint8_t loop_bidir : 1; - uint8_t irq : 1; //enable IRQ generation - uint8_t invert : 1; //invert direction - uint8_t irq_pending: 1; //(read only) IRQ pending - //noenvelope == (done | disable) - } bitflags; - uint8_t value; - } vol_ctrl; - - //Possibly redundant state. => improvements of wavetable logic - //may lead to its elimination. - union { - struct { - uint8_t on : 1; - uint8_t ramp : 7; // 100 0000 = 0x40 maximum - } bitflags; - uint8_t value; - } state; - - bool playing(); - int update_volume_envelope(); - int update_oscillator(); - void update_ramp(); -}; - // ======================> ics2115_device class ics2115_device : public device_t, public device_sound_interface @@ -92,7 +28,7 @@ public: // construction/destruction ics2115_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_irq_callback(device_t &device, _Object object) { return downcast(device).m_irq_cb.set_callback(object); } + template static devcb_base &set_irq_callback(device_t &device, Object &&cb) { return downcast(device).m_irq_cb.set_callback(std::forward(cb)); } DECLARE_READ8_MEMBER(read); DECLARE_WRITE8_MEMBER(write); @@ -101,11 +37,72 @@ public: TIMER_CALLBACK_MEMBER(timer_cb_0); TIMER_CALLBACK_MEMBER(timer_cb_1); - sound_stream *m_stream; +protected: + static constexpr uint16_t revision = 0x1; - static const uint16_t revision = 0x1; + struct ics2115_voice { + struct { + int32_t left; + uint32_t acc, start, end; + uint16_t fc; + uint8_t ctl, saddr; + } osc; -protected: + struct { + int32_t left; + uint32_t add; + uint32_t start, end; + uint32_t acc; + uint16_t regacc; + uint8_t incr; + uint8_t pan, mode; + } vol; + + union { + struct { + uint8_t ulaw : 1; + uint8_t stop : 1; //stops wave + vol envelope + uint8_t eightbit : 1; + uint8_t loop : 1; + uint8_t loop_bidir : 1; + uint8_t irq : 1; + uint8_t invert : 1; + uint8_t irq_pending: 1; + //IRQ on variable? + } bitflags; + uint8_t value; + } osc_conf; + + union { + struct { + uint8_t done : 1; //indicates ramp has stopped + uint8_t stop : 1; //stops the ramp + uint8_t rollover : 1; //rollover (TODO) + uint8_t loop : 1; + uint8_t loop_bidir : 1; + uint8_t irq : 1; //enable IRQ generation + uint8_t invert : 1; //invert direction + uint8_t irq_pending: 1; //(read only) IRQ pending + //noenvelope == (done | disable) + } bitflags; + uint8_t value; + } vol_ctrl; + + //Possibly redundant state. => improvements of wavetable logic + //may lead to its elimination. + union { + struct { + uint8_t on : 1; + uint8_t ramp : 7; // 100 0000 = 0x40 maximum + } bitflags; + uint8_t value; + } state; + + bool playing(); + int update_volume_envelope(); + int update_oscillator(); + void update_ramp(); + }; // device-level overrides virtual void device_start() override; @@ -114,6 +111,19 @@ protected: // internal callbacks virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; + //internal register helper functions + uint16_t reg_read(); + void reg_write(uint8_t data, bool msb); + void recalc_timer(int timer); + void keyon(); + void recalc_irq(); + + //stream helper functions + int fill_output(ics2115_voice& voice, stream_sample_t *outputs[2], int samples); + stream_sample_t get_sample(ics2115_voice& voice); + + sound_stream *m_stream; + // internal state required_region_ptr m_rom; devcb_write_line m_irq_cb; @@ -138,21 +148,10 @@ protected: //Unknown variable, seems to be effected by 0x12. Further investigation //Required. uint8_t m_vmode; - - //internal register helper functions - uint16_t reg_read(); - void reg_write(uint8_t data, bool msb); - void recalc_timer(int timer); - void keyon(); - void recalc_irq(); - - //stream helper functions - int fill_output(ics2115_voice& voice, stream_sample_t *outputs[2], int samples); - stream_sample_t get_sample(ics2115_voice& voice); }; // device type definition -extern const device_type ICS2115; +DECLARE_DEVICE_TYPE(ICS2115, ics2115_device) -#endif /* __ICS2115_H__ */ +#endif // MAME_SOUND_ICS2115_H diff --git a/src/devices/sound/iremga20.cpp b/src/devices/sound/iremga20.cpp index f05944a4123..da12101b320 100644 --- a/src/devices/sound/iremga20.cpp +++ b/src/devices/sound/iremga20.cpp @@ -35,7 +35,7 @@ Revisions: // device type definition -const device_type IREMGA20 = device_creator; +DEFINE_DEVICE_TYPE(IREMGA20, iremga20_device, "iremga20", "Irem GA20") //************************************************************************** @@ -47,7 +47,7 @@ const device_type IREMGA20 = device_creator; //------------------------------------------------- iremga20_device::iremga20_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, IREMGA20, "Irem GA20", tag, owner, clock, "iremga20", __FILE__), + : device_t(mconfig, IREMGA20, tag, owner, clock), device_sound_interface(mconfig, *this), m_rom(*this, DEVICE_SELF), m_stream(nullptr) diff --git a/src/devices/sound/iremga20.h b/src/devices/sound/iremga20.h index 4c5c064871e..ee0607496bd 100644 --- a/src/devices/sound/iremga20.h +++ b/src/devices/sound/iremga20.h @@ -5,10 +5,10 @@ Irem GA20 PCM Sound Chip *********************************************************/ -#pragma once +#ifndef MAME_SOUND_IREMGA20_H +#define MAME_SOUND_IREMGA20_H -#ifndef __IREMGA20_H__ -#define __IREMGA20_H__ +#pragma once //************************************************************************** @@ -25,20 +25,6 @@ // TYPE DEFINITIONS //************************************************************************** -struct IremGA20_channel_def -{ - uint32_t rate; - uint32_t size; - uint32_t start; - uint32_t pos; - uint32_t frac; - uint32_t end; - uint32_t volume; - uint32_t pan; - uint32_t effect; - uint32_t play; -}; - // ======================> iremga20_device @@ -47,7 +33,9 @@ class iremga20_device : public device_t, { public: iremga20_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~iremga20_device() { } + + DECLARE_WRITE8_MEMBER( irem_ga20_w ); + DECLARE_READ8_MEMBER( irem_ga20_r ); protected: // device-level overrides @@ -57,21 +45,29 @@ protected: // sound stream update overrides virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; -public: - DECLARE_WRITE8_MEMBER( irem_ga20_w ); - DECLARE_READ8_MEMBER( irem_ga20_r ); - private: + struct channel_def + { + uint32_t rate; + uint32_t size; + uint32_t start; + uint32_t pos; + uint32_t frac; + uint32_t end; + uint32_t volume; + uint32_t pan; + uint32_t effect; + uint32_t play; + }; + void iremga20_reset(); -private: required_region_ptr m_rom; sound_stream *m_stream; uint16_t m_regs[0x40]; - IremGA20_channel_def m_channel[4]; + channel_def m_channel[4]; }; -extern const device_type IREMGA20; - +DECLARE_DEVICE_TYPE(IREMGA20, iremga20_device) -#endif /* __IREMGA20_H__ */ +#endif // MAME_SOUND_IREMGA20_H diff --git a/src/devices/sound/k005289.cpp b/src/devices/sound/k005289.cpp index 91075735ae8..9e65eb5783d 100644 --- a/src/devices/sound/k005289.cpp +++ b/src/devices/sound/k005289.cpp @@ -42,7 +42,7 @@ #define CLOCK_DIVIDER 32 // device type definition -const device_type K005289 = device_creator; +DEFINE_DEVICE_TYPE(K005289, k005289_device, "k005289", "K005289 SCC") //************************************************************************** @@ -54,14 +54,14 @@ const device_type K005289 = device_creator; //------------------------------------------------- k005289_device::k005289_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, K005289, "K005289 SCC", tag, owner, clock, "k005289", __FILE__), - device_sound_interface(mconfig, *this), - m_sound_prom(*this, DEVICE_SELF), - m_stream(nullptr), - m_rate(0), - m_mixer_table(nullptr), - m_mixer_lookup(nullptr), - m_mixer_buffer(nullptr) + : device_t(mconfig, K005289, tag, owner, clock) + , device_sound_interface(mconfig, *this) + , m_sound_prom(*this, DEVICE_SELF) + , m_stream(nullptr) + , m_rate(0) + , m_mixer_table(nullptr) + , m_mixer_lookup(nullptr) + , m_mixer_buffer(nullptr) { } diff --git a/src/devices/sound/k005289.h b/src/devices/sound/k005289.h index a84378fac98..96647ddce04 100644 --- a/src/devices/sound/k005289.h +++ b/src/devices/sound/k005289.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Bryan McPhail -#pragma once +#ifndef MAME_SOUND_K005289_H +#define MAME_SOUND_K005289_H -#ifndef __K005289_H__ -#define __K005289_H__ +#pragma once //************************************************************************** @@ -23,16 +23,7 @@ class k005289_device : public device_t, { public: k005289_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~k005289_device() { } - -protected: - // device-level overrides - virtual void device_start() override; - - // sound stream update overrides - virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; -public: DECLARE_WRITE8_MEMBER( k005289_control_A_w ); DECLARE_WRITE8_MEMBER( k005289_control_B_w ); DECLARE_WRITE8_MEMBER( ld1_w ); @@ -40,6 +31,13 @@ public: DECLARE_WRITE8_MEMBER( tg1_w ); DECLARE_WRITE8_MEMBER( tg2_w ); +protected: + // device-level overrides + virtual void device_start() override; + + // sound stream update overrides + virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; + private: void make_mixer_table(int voices); @@ -59,7 +57,6 @@ private: uint8_t m_volume[2]; }; -extern const device_type K005289; - +DECLARE_DEVICE_TYPE(K005289, k005289_device) -#endif /* __K005289_H__ */ +#endif // MAME_SOUND_K005289_H diff --git a/src/devices/sound/k007232.cpp b/src/devices/sound/k007232.cpp index ec9cbeb53a4..96f89ff628f 100644 --- a/src/devices/sound/k007232.cpp +++ b/src/devices/sound/k007232.cpp @@ -145,13 +145,13 @@ static const float kdaca_fn[][2] = { /*************************************************************/ -const device_type K007232 = device_creator; +DEFINE_DEVICE_TYPE(K007232, k007232_device, "k007232", "K007232 PCM Controller") k007232_device::k007232_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, K007232, "K007232 PCM Controller", tag, owner, clock, "k007232", __FILE__), - device_sound_interface(mconfig, *this), - m_rom(*this, DEVICE_SELF), - m_port_write_handler(*this) + : device_t(mconfig, K007232, tag, owner, clock) + , device_sound_interface(mconfig, *this) + , m_rom(*this, DEVICE_SELF) + , m_port_write_handler(*this) { } diff --git a/src/devices/sound/k007232.h b/src/devices/sound/k007232.h index d8083ebf867..874cb410ba2 100644 --- a/src/devices/sound/k007232.h +++ b/src/devices/sound/k007232.h @@ -4,25 +4,21 @@ /* Konami PCM controller */ /*********************************************************/ -#pragma once - -#ifndef __K007232_H__ -#define __K007232_H__ +#ifndef MAME_SOUND_K007232_H +#define MAME_SOUND_K007232_H -#define KDAC_A_PCM_MAX (2) /* Channels per chip */ +#pragma once #define MCFG_K007232_PORT_WRITE_HANDLER(_devcb) \ devcb = &k007232_device::set_port_write_handler(*device, DEVCB_##_devcb); -class k007232_device : public device_t, - public device_sound_interface +class k007232_device : public device_t, public device_sound_interface { public: k007232_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~k007232_device() {} - template static devcb_base &set_port_write_handler(device_t &device, _Object object) { return downcast(device).m_port_write_handler.set_callback(object); } + template static devcb_base &set_port_write_handler(device_t &device, Object &&cb) { return downcast(device).m_port_write_handler.set_callback(std::forward(cb)); } DECLARE_WRITE8_MEMBER( write ); DECLARE_READ8_MEMBER( read ); @@ -49,6 +45,8 @@ protected: void KDAC_A_make_fncode(); private: + static constexpr unsigned KDAC_A_PCM_MAX = 2; /* Channels per chip */ + // internal state required_region_ptr m_rom; @@ -68,7 +66,6 @@ private: devcb_write8 m_port_write_handler; }; -extern const device_type K007232; - +DECLARE_DEVICE_TYPE(K007232, k007232_device) -#endif /* __K007232_H__ */ +#endif // MAME_SOUND_K007232_H diff --git a/src/devices/sound/k051649.cpp b/src/devices/sound/k051649.cpp index 599686f0622..1114fa47c6c 100644 --- a/src/devices/sound/k051649.cpp +++ b/src/devices/sound/k051649.cpp @@ -32,7 +32,7 @@ // device type definition -const device_type K051649 = device_creator; +DEFINE_DEVICE_TYPE(K051649, k051649_device, "k051649", "K051649 SCC1") //************************************************************************** @@ -44,7 +44,7 @@ const device_type K051649 = device_creator; //------------------------------------------------- k051649_device::k051649_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, K051649, "K051649 SCC1", tag, owner, clock, "k051649", __FILE__), + : device_t(mconfig, K051649, tag, owner, clock), device_sound_interface(mconfig, *this), m_stream(nullptr), m_mclock(0), @@ -82,16 +82,13 @@ void k051649_device::device_start() void k051649_device::device_reset() { - k051649_sound_channel *voice = m_channel_list; - int i; - // reset all the voices - for (i = 0; i < 5; i++) + for (sound_channel &voice : m_channel_list) { - voice[i].frequency = 0; - voice[i].volume = 0xf; - voice[i].counter = 0; - voice[i].key = 0; + voice.frequency = 0; + voice.volume = 0xf; + voice.counter = 0; + voice.key = 0; } // other parameters @@ -105,28 +102,23 @@ void k051649_device::device_reset() void k051649_device::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) { - k051649_sound_channel *voice=m_channel_list; - stream_sample_t *buffer = outputs[0]; - short *mix; - int i,j; - // zap the contents of the mixer buffer memset(m_mixer_buffer.get(), 0, samples * sizeof(short)); - for (j = 0; j < 5; j++) + for (sound_channel &voice : m_channel_list) { // channel is halted for freq < 9 - if (voice[j].frequency > 8) + if (voice.frequency > 8) { - const signed char *w = voice[j].waveram; - int v=voice[j].volume * voice[j].key; - int c=voice[j].counter; - int step = ((int64_t)m_mclock * (1 << FREQ_BITS)) / (float)((voice[j].frequency + 1) * 16 * (m_rate / 32)) + 0.5f; + const signed char *w = voice.waveram; + int v=voice.volume * voice.key; + int c=voice.counter; + int step = ((int64_t(m_mclock) << FREQ_BITS) / float((voice.frequency + 1) * 16 * (m_rate / 32))) + 0.5f; - mix = m_mixer_buffer.get(); + short *mix = m_mixer_buffer.get(); // add our contribution - for (i = 0; i < samples; i++) + for (int i = 0; i < samples; i++) { int offs; @@ -136,13 +128,14 @@ void k051649_device::sound_stream_update(sound_stream &stream, stream_sample_t * } // update the counter for this voice - voice[j].counter = c; + voice.counter = c; } } // mix it down - mix = m_mixer_buffer.get(); - for (i = 0; i < samples; i++) + stream_sample_t *buffer = outputs[0]; + short *mix = m_mixer_buffer.get(); + for (int i = 0; i < samples; i++) *buffer++ = m_mixer_lookup[*mix++]; } diff --git a/src/devices/sound/k051649.h b/src/devices/sound/k051649.h index 787413d257e..d405617bcbf 100644 --- a/src/devices/sound/k051649.h +++ b/src/devices/sound/k051649.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Bryan McPhail -#pragma once +#ifndef MAME_SOUND_K051649_H +#define MAME_SOUND_K051649_H -#ifndef __K051649_H__ -#define __K051649_H__ +#pragma once //************************************************************************** @@ -20,25 +20,6 @@ // TYPE DEFINITIONS //************************************************************************** -// Parameters for a channel -struct k051649_sound_channel -{ - k051649_sound_channel() : - counter(0), - frequency(0), - volume(0), - key(0) - { - memset(waveram, 0, sizeof(signed char)*32); - } - - unsigned long counter; - int frequency; - int volume; - int key; - signed char waveram[32]; -}; - // ======================> k051649_device @@ -47,17 +28,7 @@ class k051649_device : public device_t, { public: k051649_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~k051649_device() { } - -protected: - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - - // sound stream update overrides - virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; -public: DECLARE_WRITE8_MEMBER( k051649_waveform_w ); DECLARE_READ8_MEMBER ( k051649_waveform_r ); DECLARE_WRITE8_MEMBER( k051649_volume_w ); @@ -69,11 +40,37 @@ public: DECLARE_WRITE8_MEMBER( k052539_waveform_w ); DECLARE_READ8_MEMBER ( k052539_waveform_r ); +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + + // sound stream update overrides + virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; + private: + // Parameters for a channel + struct sound_channel + { + sound_channel() : + counter(0), + frequency(0), + volume(0), + key(0) + { + memset(waveram, 0, sizeof(signed char)*32); + } + + unsigned long counter; + int frequency; + int volume; + int key; + signed char waveram[32]; + }; + void make_mixer_table(int voices); -private: - k051649_sound_channel m_channel_list[5]; + sound_channel m_channel_list[5]; /* global sound parameters */ sound_stream *m_stream; @@ -89,7 +86,6 @@ private: uint8_t m_test; }; -extern const device_type K051649; - +DECLARE_DEVICE_TYPE(K051649, k051649_device) -#endif /* __K051649_H__ */ +#endif // MAME_SOUND_K051649_H diff --git a/src/devices/sound/k053260.cpp b/src/devices/sound/k053260.cpp index 313c9d9b3a8..764f02487f9 100644 --- a/src/devices/sound/k053260.cpp +++ b/src/devices/sound/k053260.cpp @@ -62,7 +62,7 @@ // device type definition -const device_type K053260 = device_creator; +DEFINE_DEVICE_TYPE(K053260, k053260_device, "k053260", "K053260 KDSC") //************************************************************************** @@ -74,12 +74,13 @@ const device_type K053260 = device_creator; //------------------------------------------------- k053260_device::k053260_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, K053260, "K053260 KDSC", tag, owner, clock, "k053260", __FILE__) + : device_t(mconfig, K053260, tag, owner, clock) , device_sound_interface(mconfig, *this) , device_rom_interface(mconfig, *this, 21) , m_stream(nullptr) , m_keyon(0) , m_mode(0) + , m_voice{ { *this }, { *this }, { *this }, { *this } } { memset(m_portdata, 0, sizeof(m_portdata)); } @@ -99,7 +100,7 @@ void k053260_device::device_start() save_item(NAME(m_mode)); for (int i = 0; i < 4; i++) - m_voice[i].voice_start(*this, i); + m_voice[i].voice_start(i); } @@ -288,8 +289,8 @@ void k053260_device::sound_stream_update(sound_stream &stream, stream_sample_t * } else { - memset( outputs[0], 0, samples * sizeof(*outputs[0])); - memset( outputs[1], 0, samples * sizeof(*outputs[1])); + memset(outputs[0], 0, samples * sizeof(*outputs[0])); + memset(outputs[1], 0, samples * sizeof(*outputs[1])); } } @@ -298,24 +299,22 @@ void k053260_device::sound_stream_update(sound_stream &stream, stream_sample_t * // KDSC_Voice - one of the four voices //************************************************************************** -void k053260_device::KDSC_Voice::voice_start(k053260_device &device, int index) +void k053260_device::KDSC_Voice::voice_start(int index) { - m_device = &device; - voice_reset(); - device.save_item(NAME(m_position), index); - device.save_item(NAME(m_pan_volume), index); - device.save_item(NAME(m_counter), index); - device.save_item(NAME(m_output), index); - device.save_item(NAME(m_playing), index); - device.save_item(NAME(m_start), index); - device.save_item(NAME(m_length), index); - device.save_item(NAME(m_pitch), index); - device.save_item(NAME(m_volume), index); - device.save_item(NAME(m_pan), index); - device.save_item(NAME(m_loop), index); - device.save_item(NAME(m_kadpcm), index); + m_device.save_item(NAME(m_position), index); + m_device.save_item(NAME(m_pan_volume), index); + m_device.save_item(NAME(m_counter), index); + m_device.save_item(NAME(m_output), index); + m_device.save_item(NAME(m_playing), index); + m_device.save_item(NAME(m_start), index); + m_device.save_item(NAME(m_length), index); + m_device.save_item(NAME(m_pitch), index); + m_device.save_item(NAME(m_volume), index); + m_device.save_item(NAME(m_pan), index); + m_device.save_item(NAME(m_loop), index); + m_device.save_item(NAME(m_kadpcm), index); } void k053260_device::KDSC_Voice::voice_reset() @@ -389,7 +388,7 @@ void k053260_device::KDSC_Voice::key_on() m_counter = 0x1000 - CLOCKS_PER_SAMPLE; // force update on next sound_stream_update m_output = 0; m_playing = true; - if (LOG) m_device->logerror("K053260: start = %06x, length = %06x, pitch = %04x, vol = %02x, loop = %s, %s\n", + if (LOG) m_device.logerror("K053260: start = %06x, length = %06x, pitch = %04x, vol = %02x, loop = %s, %s\n", m_start, m_length, m_pitch, m_volume, m_loop ? "yes" : "no", m_kadpcm ? "KADPCM" : "PCM" ); } @@ -432,7 +431,7 @@ void k053260_device::KDSC_Voice::play(stream_sample_t *outputs) } } - uint8_t romdata = m_device->read_byte(m_start + bytepos); + uint8_t romdata = m_device.read_byte(m_start + bytepos); if (m_kadpcm) { @@ -456,5 +455,5 @@ uint8_t k053260_device::KDSC_Voice::read_rom() m_position = (m_position + 1) & 0xffff; - return m_device->read_byte(offs); + return m_device.read_byte(offs); } diff --git a/src/devices/sound/k053260.h b/src/devices/sound/k053260.h index dc5cd431c8b..a938a420090 100644 --- a/src/devices/sound/k053260.h +++ b/src/devices/sound/k053260.h @@ -6,23 +6,24 @@ *********************************************************/ -#pragma once +#ifndef MAME_SOUND_K053260_H +#define MAME_SOUND_K053260_H -#ifndef __K053260_H__ -#define __K053260_H__ +#pragma once //************************************************************************** // INTERFACE CONFIGURATION MACROS //************************************************************************** -#define MCFG_K053260_ADD(_tag, _clock) \ - MCFG_DEVICE_ADD(_tag, K053260, _clock) -#define MCFG_K053260_REPLACE(_tag, _clock) \ - MCFG_DEVICE_REPLACE(_tag, K053260, _clock) +#define MCFG_K053260_ADD(tag, clock) \ + MCFG_DEVICE_ADD((tag), K053260, (clock)) -#define MCFG_K053260_REGION(_tag) \ - k053260_device::set_region_tag(*device, "^" _tag); +#define MCFG_K053260_REPLACE(tag, clock) \ + MCFG_DEVICE_REPLACE((tag), K053260, (clock)) + +#define MCFG_K053260_REGION(tag) \ + k053260_device::set_region_tag(*device, ("^" tag)); //************************************************************************** @@ -37,7 +38,6 @@ class k053260_device : public device_t, { public: k053260_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~k053260_device() { } DECLARE_READ8_MEMBER( main_read ); DECLARE_WRITE8_MEMBER( main_write ); @@ -68,11 +68,9 @@ private: class KDSC_Voice { public: - KDSC_Voice() : m_device(nullptr), m_position(0), m_counter(0), m_output(0), m_playing(false), m_start(0), m_length(0), m_pitch(0), m_volume(0), m_pan(0), m_loop(false), m_kadpcm(false) - { - } + KDSC_Voice(k053260_device &device) : m_device(device), m_pan_volume{ 0, 0 } { } - inline void voice_start(k053260_device &device, int index); + inline void voice_start(int index); inline void voice_reset(); inline void set_register(offs_t offset, uint8_t data); inline void set_loop_kadpcm(uint8_t data); @@ -86,30 +84,28 @@ private: private: // pointer to owning device - k053260_device *m_device; + k053260_device &m_device; // live state - uint32_t m_position; + uint32_t m_position = 0; uint16_t m_pan_volume[2]; - uint16_t m_counter; - int8_t m_output; - bool m_playing; + uint16_t m_counter = 0; + int8_t m_output = 0; + bool m_playing = false; // per voice registers - uint32_t m_start; - uint16_t m_length; - uint16_t m_pitch; - uint8_t m_volume; + uint32_t m_start = 0; + uint16_t m_length = 0; + uint16_t m_pitch = 0; + uint8_t m_volume = 0; // bit packed registers - uint8_t m_pan; - bool m_loop; - bool m_kadpcm; + uint8_t m_pan = 0; + bool m_loop = false; + bool m_kadpcm = false; } m_voice[4]; - - friend class k053260_device::KDSC_Voice; }; -extern const device_type K053260; +DECLARE_DEVICE_TYPE(K053260, k053260_device) -#endif /* __K053260_H__ */ +#endif // MAME_SOUND_K053260_H diff --git a/src/devices/sound/k054539.cpp b/src/devices/sound/k054539.cpp index 5674e0b84e2..c5dc57c0528 100644 --- a/src/devices/sound/k054539.cpp +++ b/src/devices/sound/k054539.cpp @@ -12,13 +12,14 @@ #include "emu.h" #include "k054539.h" -const device_type K054539 = device_creator; +//#define VERBOSE 1 +#include "logmacro.h" -#define VERBOSE 0 -#define LOG(x) do { if (VERBOSE) logerror x; } while (0) + +DEFINE_DEVICE_TYPE(K054539, k054539_device, "k054539", "K054539 ADPCM") k054539_device::k054539_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, K054539, "K054539 ADPCM", tag, owner, clock, "k054539", __FILE__), + : device_t(mconfig, K054539, tag, owner, clock), device_sound_interface(mconfig, *this), flags(0), ram(nullptr), @@ -278,7 +279,7 @@ void k054539_device::sound_stream_update(sound_stream &stream, stream_sample_t * break; } default: - LOG(("Unknown sample type %x for channel %d\n", base2[0] & 0xc, ch)); + LOG("Unknown sample type %x for channel %d\n", base2[0] & 0xc, ch); break; } lval += cur_val * lvol; @@ -501,7 +502,7 @@ READ8_MEMBER(k054539_device::read) case 0x22c: break; default: - LOG(("K054539 read %03x\n", offset)); + LOG("K054539 read %03x\n", offset); break; } return regs[offset]; diff --git a/src/devices/sound/k054539.h b/src/devices/sound/k054539.h index 11991e1155b..d6a946cec73 100644 --- a/src/devices/sound/k054539.h +++ b/src/devices/sound/k054539.h @@ -6,34 +6,27 @@ *********************************************************/ -#pragma once +#ifndef MAME_SOUND_K054539_H +#define MAME_SOUND_K054539_H -#ifndef __K054539_H__ -#define __K054539_H__ +#pragma once -typedef device_delegate k054539_cb_delegate; #define K054539_CB_MEMBER(_name) void _name(double left, double right) #define MCFG_K054539_APAN_CB(_class, _method) \ - k054539_device::set_analog_callback(*device, k054539_cb_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); + k054539_device::set_analog_callback(*device, k054539_device::cb_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); #define MCFG_K054539_REGION_OVERRRIDE(_region) \ - k054539_device::set_override(*device, "^" _region); + k054539_device::set_override(*device, "^" _region); #define MCFG_K054539_TIMER_HANDLER(_devcb) \ - devcb = &k054539_device::set_timer_handler(*device, DEVCB_##_devcb); + devcb = &k054539_device::set_timer_handler(*device, DEVCB_##_devcb); -//* control flags, may be set at DRIVER_INIT(). -#define K054539_RESET_FLAGS 0 -#define K054539_REVERSE_STEREO 1 -#define K054539_DISABLE_REVERB 2 -#define K054539_UPDATE_AT_KEYON 4 - -class k054539_device : public device_t, - public device_sound_interface +class k054539_device : public device_t, public device_sound_interface { public: + // control flags, may be set at DRIVER_INIT(). enum { RESET_FLAGS = 0, REVERSE_STEREO = 1, @@ -41,13 +34,15 @@ public: UPDATE_AT_KEYON = 4 }; + typedef device_delegate cb_delegate; + // construction/destruction k054539_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // static configuration helpers - static void set_analog_callback(device_t &device, k054539_cb_delegate callback) { downcast(device).m_apan_cb = callback; } + static void set_analog_callback(device_t &device, cb_delegate &&cb) { downcast(device).m_apan_cb = std::move(cb); } static void set_override(device_t &device, const char *rgnoverride) { downcast(device).m_rom.set_tag(rgnoverride); } - template static devcb_base &set_timer_handler(device_t &device, _Object object) { return downcast(device).m_timer_handler.set_callback(object); } + template static devcb_base &set_timer_handler(device_t &device, Object &&cb) { return downcast(device).m_timer_handler.set_callback(std::forward(cb)); } DECLARE_WRITE8_MEMBER(write); @@ -109,7 +104,7 @@ private: emu_timer *m_timer; uint32_t m_timer_state; devcb_write_line m_timer_handler; - k054539_cb_delegate m_apan_cb; + cb_delegate m_apan_cb; bool regupdate(); void keyon(int channel); @@ -117,6 +112,6 @@ private: void init_chip(); }; -extern const device_type K054539; +DECLARE_DEVICE_TYPE(K054539, k054539_device) -#endif /* __K054539_H__ */ +#endif // MAME_SOUND_K054539_H diff --git a/src/devices/sound/k056800.cpp b/src/devices/sound/k056800.cpp index 5ee7a6c9ad9..2bb499eb414 100644 --- a/src/devices/sound/k056800.cpp +++ b/src/devices/sound/k056800.cpp @@ -12,7 +12,7 @@ -const device_type K056800 = device_creator; +DEFINE_DEVICE_TYPE(K056800, k056800_device, "k056800", "K056800 MIRAC") @@ -21,8 +21,12 @@ const device_type K056800 = device_creator; //------------------------------------------------- k056800_device::k056800_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, K056800, "K056800 MIRAC", tag, owner, clock, "k056800", __FILE__), m_int_pending(false), m_int_enabled(false), - m_int_handler(*this) + : device_t(mconfig, K056800, tag, owner, clock) + , m_int_pending(false) + , m_int_enabled(false) + , m_host_to_snd_regs{ 0, 0, 0, 0 } + , m_snd_to_host_regs{ 0, 0 } + , m_int_handler(*this) { } diff --git a/src/devices/sound/k056800.h b/src/devices/sound/k056800.h index d17a8943c5e..182700d9b1f 100644 --- a/src/devices/sound/k056800.h +++ b/src/devices/sound/k056800.h @@ -6,18 +6,19 @@ *********************************************************/ -#ifndef __K056800_H__ -#define __K056800_H__ +#ifndef MAME_SOUND_K056800_H +#define MAME_SOUND_K056800_H /*************************************************************************** DEVICE CONFIGURATION MACROS ***************************************************************************/ -#define MCFG_K056800_ADD(_tag, _clock) \ - MCFG_DEVICE_ADD(_tag, K056800, _clock) -#define MCFG_K056800_INT_HANDLER(_devcb) \ - devcb = &k056800_device::set_int_handler(*device, DEVCB_##_devcb); +#define MCFG_K056800_ADD(tag, clock) \ + MCFG_DEVICE_ADD((tag), K056800, (clock)) + +#define MCFG_K056800_INT_HANDLER(cb) \ + devcb = &k056800_device::set_int_handler(*device, (DEVCB_##cb)); @@ -32,7 +33,7 @@ public: k056800_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // static configuration helpers - template static devcb_base &set_int_handler(device_t &device, _Object object) { return downcast(device).m_int_handler.set_callback(object); } + template static devcb_base &set_int_handler(device_t &device, Object &&cb) { return downcast(device).m_int_handler.set_callback(std::forward(cb)); } DECLARE_READ8_MEMBER( host_r ); DECLARE_WRITE8_MEMBER( host_w ); @@ -54,8 +55,6 @@ private: devcb_write_line m_int_handler; }; -extern const device_type K056800; - - +DECLARE_DEVICE_TYPE(K056800, k056800_device) -#endif /* __K056800_H__ */ +#endif // MAME_SOUND_K056800_H diff --git a/src/devices/sound/l7a1045_l6028_dsp_a.cpp b/src/devices/sound/l7a1045_l6028_dsp_a.cpp index a1378a80a01..1312452b7c0 100644 --- a/src/devices/sound/l7a1045_l6028_dsp_a.cpp +++ b/src/devices/sound/l7a1045_l6028_dsp_a.cpp @@ -89,7 +89,7 @@ // device type definition -const device_type L7A1045 = device_creator; +DEFINE_DEVICE_TYPE(L7A1045, l7a1045_sound_device, "l7a1045", "L7A1045 L6028 DSP-A") //************************************************************************** @@ -101,7 +101,7 @@ const device_type L7A1045 = device_creator; //------------------------------------------------- l7a1045_sound_device::l7a1045_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, L7A1045, "L7A1045 L6028 DSP-A", tag, owner, clock, "l7a1045_custom", __FILE__), + : device_t(mconfig, L7A1045, tag, owner, clock), device_sound_interface(mconfig, *this), m_stream(nullptr), m_key(0), @@ -326,7 +326,7 @@ WRITE16_MEMBER(l7a1045_sound_device::sound_status_w) { l7a1045_voice *vptr = &m_voice[m_audiochannel]; - #if 0 +#if 0 if(vptr->start != 0) { printf("%08x START\n",vptr->start); @@ -335,7 +335,7 @@ WRITE16_MEMBER(l7a1045_sound_device::sound_status_w) for(int i=0;i<0x10;i++) printf("%02x (%02x) = %04x%04x%04x\n",m_audiochannel,i,m_audiodat[i][m_audiochannel].dat[2],m_audiodat[i][m_audiochannel].dat[1],m_audiodat[i][m_audiochannel].dat[0]); } - #endif +#endif vptr->frac = 0; vptr->pos = 0; diff --git a/src/devices/sound/l7a1045_l6028_dsp_a.h b/src/devices/sound/l7a1045_l6028_dsp_a.h index 4d2f7692c44..5b49990f7c7 100644 --- a/src/devices/sound/l7a1045_l6028_dsp_a.h +++ b/src/devices/sound/l7a1045_l6028_dsp_a.h @@ -1,28 +1,14 @@ // license:LGPL-2.1+ // copyright-holders:David Haywood, Angelo Salese, ElSemi +#ifndef MAME_SOUND_L7A1045_L6028_DSP_A_H +#define MAME_SOUND_L7A1045_L6028_DSP_A_H + +#pragma once + //************************************************************************** // TYPE DEFINITIONS //************************************************************************** -struct l7a1045_voice -{ - l7a1045_voice() : end(0), mode(false), - pos(0), - frac(0), l_volume(0), r_volume(0) - { - //memset(regs, 0, sizeof(uint32_t)*8); - start = 0; - } - - uint32_t start; - uint32_t end; - bool mode; - uint32_t pos; - uint32_t frac; - uint16_t l_volume; - uint16_t r_volume; -}; - // ======================> l7a1045_sound_device class l7a1045_sound_device : public device_t, @@ -30,7 +16,6 @@ class l7a1045_sound_device : public device_t, { public: l7a1045_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~l7a1045_sound_device() { } // void set_base(int8_t* base) { m_base = base; } @@ -45,6 +30,19 @@ protected: virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; private: + struct l7a1045_voice + { + l7a1045_voice() { } + + uint32_t start = 0; + uint32_t end = 0; + bool mode = false; + uint32_t pos = 0; + uint32_t frac = 0; + uint16_t l_volume = 0; + uint16_t r_volume = 0; + }; + sound_stream *m_stream; l7a1045_voice m_voice[32]; uint32_t m_key; @@ -65,4 +63,6 @@ private: DECLARE_WRITE16_MEMBER(sound_status_w); }; -extern const device_type L7A1045; +DECLARE_DEVICE_TYPE(L7A1045, l7a1045_sound_device) + +#endif // MAME_SOUND_L7A1045_L6028_DSP_A_H diff --git a/src/devices/sound/lmc1992.cpp b/src/devices/sound/lmc1992.cpp index 469b98ec307..84eb7f7c9d7 100644 --- a/src/devices/sound/lmc1992.cpp +++ b/src/devices/sound/lmc1992.cpp @@ -23,15 +23,15 @@ #include "emu.h" #include "lmc1992.h" +//#define VERBOSE 1 +#include "logmacro.h" + //************************************************************************** // MACROS / CONSTANTS //************************************************************************** -#define LOG 0 - - #define MICROWIRE_DEVICE_ADDRESS 2 @@ -64,7 +64,7 @@ enum //************************************************************************** // devices -const device_type LMC1992 = device_creator; +DEFINE_DEVICE_TYPE(LMC1992, lmc1992_device, "lmc1992", "LMC1992") @@ -83,47 +83,47 @@ inline void lmc1992_device::execute_command(int addr, int data) case FUNCTION_INPUT_SELECT: if (data == INPUT_SELECT_OPEN) { - if (LOG) logerror("LMC1992 '%s' Input Select : OPEN\n", tag()); + LOG("LMC1992 Input Select : OPEN\n"); } else { - if (LOG) logerror("LMC1992 '%s' Input Select : INPUT%u\n", tag(), data); + LOG("LMC1992 Input Select : INPUT%u\n", data); } m_input = data; break; case FUNCTION_BASS: - if (LOG) logerror("LMC1992 '%s' Bass : %i dB\n", tag(), -40 + (data * 2)); + LOG("LMC1992 Bass : %i dB\n", -40 + (data * 2)); m_bass = data; break; case FUNCTION_TREBLE: - if (LOG) logerror("LMC1992 '%s' Treble : %i dB\n", tag(), -40 + (data * 2)); + LOG("LMC1992 Treble : %i dB\n", -40 + (data * 2)); m_treble = data; break; case FUNCTION_VOLUME: - if (LOG) logerror("LMC1992 '%s' Volume : %i dB\n", tag(), -80 + (data * 2)); + LOG("LMC1992 Volume : %i dB\n", -80 + (data * 2)); m_volume = data; break; case FUNCTION_RIGHT_FRONT_FADER: - if (LOG) logerror("LMC1992 '%s' Right Front Fader : %i dB\n", tag(), -40 + (data * 2)); + LOG("LMC1992 Right Front Fader : %i dB\n", -40 + (data * 2)); m_fader_rf = data; break; case FUNCTION_LEFT_FRONT_FADER: - if (LOG) logerror("LMC1992 '%s' Left Front Fader : %i dB\n", tag(), -40 + (data * 2)); + LOG("LMC1992 Left Front Fader : %i dB\n", -40 + (data * 2)); m_fader_lf = data; break; case FUNCTION_RIGHT_REAR_FADER: - if (LOG) logerror("LMC1992 '%s' Right Rear Fader : %i dB\n", tag(), -40 + (data * 2)); + LOG("LMC1992 Right Rear Fader : %i dB\n", -40 + (data * 2)); m_fader_rr = data; break; case FUNCTION_LEFT_REAR_FADER: - if (LOG) logerror("LMC1992 '%s' Left Rear Fader : %i dB\n", tag(), -40 + (data * 2)); + LOG("LMC1992 Left Rear Fader : %i dB\n", -40 + (data * 2)); m_fader_lr = data; break; } @@ -140,8 +140,8 @@ inline void lmc1992_device::execute_command(int addr, int data) //------------------------------------------------- lmc1992_device::lmc1992_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, LMC1992, "LMC1992", tag, owner, clock, "lmc1992", __FILE__), - device_sound_interface(mconfig, *this) + : device_t(mconfig, LMC1992, tag, owner, clock) + , device_sound_interface(mconfig, *this) { } diff --git a/src/devices/sound/lmc1992.h b/src/devices/sound/lmc1992.h index d672bfc15a6..42473eaf7fd 100644 --- a/src/devices/sound/lmc1992.h +++ b/src/devices/sound/lmc1992.h @@ -24,10 +24,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_SOUND_LMC1992_H +#define MAME_SOUND_LMC1992_H -#ifndef __LMC1992__ -#define __LMC1992__ +#pragma once @@ -105,8 +105,6 @@ private: // device type definition -extern const device_type LMC1992; - - +DECLARE_DEVICE_TYPE(LMC1992, lmc1992_device) -#endif +#endif // MAME_SOUND_LMC1992_H diff --git a/src/devices/sound/mas3507d.cpp b/src/devices/sound/mas3507d.cpp index 358badd121f..4b972b46dfc 100644 --- a/src/devices/sound/mas3507d.cpp +++ b/src/devices/sound/mas3507d.cpp @@ -8,12 +8,13 @@ #include "mas3507d.h" // device type definition -const device_type MAS3507D = device_creator; +DEFINE_DEVICE_TYPE(MAS3507D, mas3507d_device, "mas3507d", "MAS 3507D MPEG decoder") mas3507d_device::mas3507d_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MAS3507D, "MAS3507D", tag, owner, clock, "mas3507d", __FILE__), - device_sound_interface(mconfig, *this), i2c_bus_state(), i2c_bus_address(), i2c_scli(false), i2c_sclo(false), i2c_sdai(false), i2c_sdao(false), - i2c_bus_curbit(0), i2c_bus_curval(0), i2c_subdest(), i2c_command(), i2c_bytecount(0), i2c_io_bank(0), i2c_io_adr(0), i2c_io_count(0), i2c_io_val(0) + : device_t(mconfig, MAS3507D, tag, owner, clock) + , device_sound_interface(mconfig, *this) + , i2c_bus_state(), i2c_bus_address(), i2c_scli(false), i2c_sclo(false), i2c_sdai(false), i2c_sdao(false) + , i2c_bus_curbit(0), i2c_bus_curval(0), i2c_subdest(), i2c_command(), i2c_bytecount(0), i2c_io_bank(0), i2c_io_adr(0), i2c_io_count(0), i2c_io_val(0) { } diff --git a/src/devices/sound/mas3507d.h b/src/devices/sound/mas3507d.h index 844a09c47aa..2f5935b6402 100644 --- a/src/devices/sound/mas3507d.h +++ b/src/devices/sound/mas3507d.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Olivier Galibert -#pragma once +#ifndef MAME_SOUND_MAS3507D_H +#define MAME_SOUND_MAS3507D_H -#ifndef __MAS3507D_H__ -#define __MAS3507D_H__ +#pragma once //************************************************************************** @@ -63,6 +63,6 @@ private: // device type definition -extern const device_type MAS3507D; +DECLARE_DEVICE_TYPE(MAS3507D, mas3507d_device) -#endif /* __MAS3507D_H__ */ +#endif // MAME_SOUND_MAS3507D_H diff --git a/src/devices/sound/mea8000.cpp b/src/devices/sound/mea8000.cpp index d800adebfa4..f7709a6957c 100644 --- a/src/devices/sound/mea8000.cpp +++ b/src/devices/sound/mea8000.cpp @@ -27,22 +27,20 @@ **********************************************************************/ -#include - #include "emu.h" #include "mea8000.h" +#include -#define VERBOSE 0 - -/* define to use double instead of int (slow but useful for debugging) */ -#undef FLOAT_MODE +//#define VERBOSE 1 +#include "logmacro.h" /******************* utilitiy function and macros ********************/ -#define LOG(x) do { if (VERBOSE) logerror x; } while (0) +ALLOW_SAVE_TYPE( mea8000_device::mea8000_state ); + /* digital filters work at 8 kHz */ #define F0 (clock() / 480) @@ -58,6 +56,8 @@ /************************* quantization tables ***********************/ +/* table amplitude [-QUANT,QUANT] */ +#define QUANT 512 /* frequency, in Hz */ @@ -111,11 +111,11 @@ static const int pi_table[32] = -const device_type MEA8000 = device_creator; +DEFINE_DEVICE_TYPE(MEA8000, mea8000_device, "mea8000", "Philips/Signetics MEA 8000 speech synthesizer") mea8000_device::mea8000_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MEA8000, "Philips / Signetics MEA 8000 speech synthesizer", tag, owner, clock, "mea8000", __FILE__), + : device_t(mconfig, MEA8000, tag, owner, clock), device_sound_interface(mconfig, *this), m_write_req(*this), m_stream(nullptr), @@ -205,7 +205,7 @@ void mea8000_device::init_tables() } -#ifndef FLOAT_MODE /* uint16_t version */ +#ifndef MEA8000_FLOAT_MODE /* uint16_t version */ @@ -385,18 +385,18 @@ void mea8000_device::decode_frame() m_framelog = fd + 6 /* 64 samples / ms */ + 3; m_framelength = 1 << m_framelog; m_bufpos = 0; -#ifdef FLOAT_MODE - LOG(("mea800_decode_frame: pitch=%i noise=%i fm1=%gHz bw1=%gHz fm2=%gHz bw2=%gHz fm3=%gHz bw3=%gHz fm4=%gHz bw4=%gHz ampl=%g fd=%ims\n", +#ifdef MEA8000_FLOAT_MODE + LOG("mea800_decode_frame: pitch=%i noise=%i fm1=%gHz bw1=%gHz fm2=%gHz bw2=%gHz fm3=%gHz bw3=%gHz fm4=%gHz bw4=%gHz ampl=%g fd=%ims\n", m_pitch, m_noise, m_f[0].fm, m_f[0].bw, m_f[1].fm, m_f[1].bw, m_f[2].fm, m_f[2].bw, m_f[3].fm, m_f[3].bw, - m_ampl/1000., 8 << fd)); + m_ampl/1000., 8 << fd); #else - LOG(("mea800_decode_frame: pitch=%i noise=%i fm1=%iHz bw1=%iHz fm2=%iHz bw2=%iHz fm3=%iHz bw3=%iHz fm4=%iHz bw4=%iHz ampl=%g fd=%ims\n", + LOG("mea800_decode_frame: pitch=%i noise=%i fm1=%iHz bw1=%iHz fm2=%iHz bw2=%iHz fm3=%iHz bw3=%iHz fm4=%iHz bw4=%iHz ampl=%g fd=%ims\n", m_pitch, m_noise, m_f[0].fm, m_f[0].bw, m_f[1].fm, m_f[1].bw, m_f[2].fm, m_f[2].bw, m_f[3].fm, m_f[3].bw, - m_ampl/1000., 8 << fd)); + m_ampl/1000., 8 << fd); #endif } @@ -459,27 +459,27 @@ TIMER_CALLBACK_MEMBER( mea8000_device::timer_expire ) if (m_bufpos == 4) { /* we have a successor */ - LOG(("%f mea8000_timer_expire: new frame\n", machine().time().as_double())); + LOG("%f mea8000_timer_expire: new frame\n", machine().time().as_double()); decode_frame(); start_frame(); } else if (m_cont) { /* repeat mode */ - LOG(("%f mea8000_timer_expire: repeat frame\n", machine().time().as_double())); + LOG("%f mea8000_timer_expire: repeat frame\n", machine().time().as_double()); start_frame(); } /* slow stop */ else if (m_state == MEA8000_STARTED) { m_ampl = 0; - LOG(("%f mea8000_timer_expire: fade frame\n", machine().time().as_double())); + LOG("%f mea8000_timer_expire: fade frame\n", machine().time().as_double()); start_frame(); m_state = MEA8000_SLOWING; } else if (m_state == MEA8000_SLOWING) { - LOG(("%f mea8000_timer_expire: stop frame\n", machine().time().as_double())); + LOG("%f mea8000_timer_expire: stop frame\n", machine().time().as_double()); stop_frame(); } update_req(); @@ -503,7 +503,7 @@ READ8_MEMBER( mea8000_device::read ) case 1: /* ready to accept next frame */ #if 0 - LOG(("%s %f: mea8000_r ready=%i\n", machine().describe_context(), machine().time().as_double(), accept_byte())); + LOG("%s %f: mea8000_r ready=%i\n", machine().describe_context(), machine().time().as_double(), accept_byte()); #endif return accept_byte() << 7; @@ -522,20 +522,20 @@ WRITE8_MEMBER( mea8000_device::write ) { /* got pitch byte before first frame */ m_pitch = 2 * data; - LOG(("%s %f: mea8000_w pitch %i\n", machine().describe_context(), machine().time().as_double(), m_pitch)); + LOG("%s %f: mea8000_w pitch %i\n", machine().describe_context(), machine().time().as_double(), m_pitch); m_state = MEA8000_WAIT_FIRST; m_bufpos = 0; } else if (m_bufpos == 4) { /* overflow */ - LOG(("%s %f: mea8000_w data overflow %02X\n", machine().describe_context(), machine().time().as_double(), data)); + LOG("%s %f: mea8000_w data overflow %02X\n", machine().describe_context(), machine().time().as_double(), data); } else { /* enqueue frame byte */ - LOG(("%s %f: mea8000_w data %02X in frame pos %i\n", machine().describe_context(), machine().time().as_double(), - data, m_bufpos)); + LOG("%s %f: mea8000_w data %02X in frame pos %i\n", machine().describe_context(), machine().time().as_double(), + data, m_bufpos); m_buf[m_bufpos] = data; m_bufpos++; if (m_bufpos == 4 && m_state == MEA8000_WAIT_FIRST) @@ -567,9 +567,9 @@ WRITE8_MEMBER( mea8000_device::write ) if (stop) stop_frame(); - LOG(( "%s %f: mea8000_w command %02X stop=%i cont=%i roe=%i\n", + LOG( "%s %f: mea8000_w command %02X stop=%i cont=%i roe=%i\n", machine().describe_context(), machine().time().as_double(), data, - stop, m_cont, m_roe)); + stop, m_cont, m_roe); update_req(); break; diff --git a/src/devices/sound/mea8000.h b/src/devices/sound/mea8000.h index ff1ff4ad926..3cc2daec605 100644 --- a/src/devices/sound/mea8000.h +++ b/src/devices/sound/mea8000.h @@ -8,55 +8,24 @@ **********************************************************************/ -#ifndef __MEA8000_H__ -#define __MEA8000_H__ +#ifndef MAME_SOUND_MEA8000_H +#define MAME_SOUND_MEA8000_H + +#pragma once #define MCFG_MEA8000_REQ_CALLBACK(_write) \ devcb = &mea8000_device::set_reqwr_callback(*device, DEVCB_##_write); -/* table amplitude [-QUANT,QUANT] */ -#define QUANT 512 - -/* filter coefficients from frequencies */ -#define TABLE_LEN 3600 - -/* noise generator table */ -#define NOISE_LEN 8192 +/* define to use double instead of int (slow but useful for debugging) */ +#undef MEA8000_FLOAT_MODE -/* finite machine state controlling frames */ -enum mea8000_state -{ - MEA8000_STOPPED, /* nothing to do, timer disabled */ - MEA8000_WAIT_FIRST, /* received pitch, wait for first full trame, timer disabled */ - MEA8000_STARTED, /* playing a frame, timer on */ - MEA8000_SLOWING /* repeating last frame with decreasing amplitude, timer on */ -}; - -ALLOW_SAVE_TYPE( mea8000_state ); - - -struct filter_t -{ -#ifdef FLOAT_MODE - double fm, last_fm; /* frequency, in Hz */ - double bw, last_bw; /* band-width, in Hz */ - double output, last_output; /* filter state */ -#else - uint16_t fm, last_fm; - uint16_t bw, last_bw; - int32_t output, last_output; -#endif -}; - -class mea8000_device : public device_t, - public device_sound_interface +class mea8000_device : public device_t, public device_sound_interface { public: mea8000_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~mea8000_device() {} - template static devcb_base &set_req_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_req.set_callback(object); } + template static devcb_base &set_req_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_req.set_callback(std::forward(cb)); } DECLARE_READ8_MEMBER(read); DECLARE_WRITE8_MEMBER(write); @@ -67,12 +36,38 @@ protected: virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; private: - // internal state + /* filter coefficients from frequencies */ + static constexpr unsigned TABLE_LEN = 3600; + + /* noise generator table */ + static constexpr unsigned NOISE_LEN = 8192; + + /* finite machine state controlling frames */ + enum mea8000_state + { + MEA8000_STOPPED, /* nothing to do, timer disabled */ + MEA8000_WAIT_FIRST, /* received pitch, wait for first full trame, timer disabled */ + MEA8000_STARTED, /* playing a frame, timer on */ + MEA8000_SLOWING /* repeating last frame with decreasing amplitude, timer on */ + }; + + struct filter_t + { +#ifdef MEA8000_FLOAT_MODE + double fm, last_fm; /* frequency, in Hz */ + double bw, last_bw; /* band-width, in Hz */ + double output, last_output; /* filter state */ +#else + uint16_t fm, last_fm; + uint16_t bw, last_bw; + int32_t output, last_output; +#endif + }; int accept_byte(); void update_req(); void init_tables(); -#ifndef FLOAT_MODE /* uint16_t version */ +#ifndef MEA8000_FLOAT_MODE /* uint16_t version */ int interp(uint16_t org, uint16_t dst); int filter_step(int i, int input); int noise_gen(); @@ -129,7 +124,6 @@ private: }; -extern const device_type MEA8000; +DECLARE_DEVICE_TYPE(MEA8000, mea8000_device) - -#endif +#endif // MAME_SOUND_MEA8000_H diff --git a/src/devices/sound/mm5837.cpp b/src/devices/sound/mm5837.cpp index 7a8626eaf77..ac48a540194 100644 --- a/src/devices/sound/mm5837.cpp +++ b/src/devices/sound/mm5837.cpp @@ -23,7 +23,7 @@ constexpr int mm5837_device::m_frequency[]; // DEVICE DEFINITIONS //************************************************************************** -const device_type MM5837 = device_creator; +DEFINE_DEVICE_TYPE(MM5837, mm5837_device, "mm5837", "MM5837 Digital Noise Source") //************************************************************************** @@ -35,7 +35,7 @@ const device_type MM5837 = device_creator; //------------------------------------------------- mm5837_device::mm5837_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, MM5837, "MM5837 Digital Noise Source", tag, owner, clock, "mm5837", __FILE__), + device_t(mconfig, MM5837, tag, owner, clock), m_output_cb(*this), m_vdd(0), m_timer(nullptr), diff --git a/src/devices/sound/mm5837.h b/src/devices/sound/mm5837.h index cd312c1a572..a06cedbc939 100644 --- a/src/devices/sound/mm5837.h +++ b/src/devices/sound/mm5837.h @@ -14,10 +14,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_SOUND_MM5837_H +#define MAME_SOUND_MM5837_H -#ifndef __MM5837_H__ -#define __MM5837_H__ +#pragma once @@ -47,8 +47,8 @@ public: // configuration static void set_vdd_voltage(device_t &device, int voltage) { downcast(device).m_vdd = voltage; } - template static devcb_base &set_output_callback(device_t &device, _Object object) - { return downcast(device).m_output_cb.set_callback(object); } + template static devcb_base &set_output_callback(device_t &device, Object &&cb) + { return downcast(device).m_output_cb.set_callback(std::forward(cb)); } protected: // device-level overrides @@ -75,6 +75,6 @@ private: }; // device type definition -extern const device_type MM5837; +DECLARE_DEVICE_TYPE(MM5837, mm5837_device) -#endif // __MM5837_H__ +#endif // MAME_SOUND_MM5837_H diff --git a/src/devices/sound/mos6560.cpp b/src/devices/sound/mos6560.cpp index 126064c37db..8738fbc58ea 100644 --- a/src/devices/sound/mos6560.cpp +++ b/src/devices/sound/mos6560.cpp @@ -675,9 +675,9 @@ void mos6560_device::sound_start() } -const device_type MOS6560 = device_creator; -const device_type MOS6561 = device_creator; -const device_type MOS656X_ATTACK_UFO = device_creator; +DEFINE_DEVICE_TYPE(MOS6560, mos6560_device, "mos6560", "MOS 6560 VIC") +DEFINE_DEVICE_TYPE(MOS6561, mos6561_device, "mos6561", "MOS 6561 VIC") +DEFINE_DEVICE_TYPE(MOS656X_ATTACK_UFO, mos656x_attack_ufo_device, "mos656x_attack_ufo", "MOS 656X VIC (Attack UFO)") // default address maps static ADDRESS_MAP_START( mos6560_videoram_map, AS_0, 8, mos6560_device ) @@ -688,8 +688,8 @@ static ADDRESS_MAP_START( mos6560_colorram_map, AS_1, 8, mos6560_device ) AM_RANGE(0x000, 0x3ff) AM_RAM ADDRESS_MAP_END -mos6560_device::mos6560_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, uint32_t variant, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), +mos6560_device::mos6560_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint32_t variant) + : device_t(mconfig, type, tag, owner, clock), device_memory_interface(mconfig, *this), device_sound_interface(mconfig, *this), device_video_interface(mconfig, *this), @@ -702,23 +702,19 @@ mos6560_device::mos6560_device(const machine_config &mconfig, device_type type, } mos6560_device::mos6560_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MOS6560, "MOS6560", tag, owner, clock, "mos6560", __FILE__), - device_memory_interface(mconfig, *this), - device_sound_interface(mconfig, *this), - device_video_interface(mconfig, *this), - m_variant(TYPE_6560), - m_videoram_space_config("videoram", ENDIANNESS_LITTLE, 8, 14, 0, nullptr, *ADDRESS_MAP_NAME(mos6560_videoram_map)), - m_colorram_space_config("colorram", ENDIANNESS_LITTLE, 8, 10, 0, nullptr, *ADDRESS_MAP_NAME(mos6560_colorram_map)), - m_read_potx(*this), - m_read_poty(*this) + : mos6560_device(mconfig, MOS6560, tag, owner, clock, TYPE_6560) { } mos6561_device::mos6561_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - :mos6560_device(mconfig, MOS6561, "MOS6561", tag, owner, clock, TYPE_6561, "mos6561", __FILE__) { } + : mos6560_device(mconfig, MOS6561, tag, owner, clock, TYPE_6561) +{ +} mos656x_attack_ufo_device::mos656x_attack_ufo_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - :mos6560_device(mconfig, MOS656X_ATTACK_UFO, "MOS656X", tag, owner, clock, TYPE_ATTACK_UFO, "mos656x_attack_ufo", __FILE__) { } + : mos6560_device(mconfig, MOS656X_ATTACK_UFO, tag, owner, clock, TYPE_ATTACK_UFO) +{ +} //------------------------------------------------- diff --git a/src/devices/sound/mos6560.h b/src/devices/sound/mos6560.h index 77a715fd67a..761017b55b5 100644 --- a/src/devices/sound/mos6560.h +++ b/src/devices/sound/mos6560.h @@ -29,8 +29,8 @@ ***************************************************************************/ -#ifndef MAME_DEVICES_SOUND_MOS6560_H -#define MAME_DEVICES_SOUND_MOS6560_H +#ifndef MAME_SOUND_MOS6560_H +#define MAME_SOUND_MOS6560_H #pragma once @@ -134,11 +134,10 @@ class mos6560_device : public device_t, public device_video_interface { public: - mos6560_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, uint32_t variant, const char *shortname, const char *source); mos6560_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_potx_rd_callback(device_t &device, _Object object) { return downcast(device).m_read_potx.set_callback(object); } - template static devcb_base &set_poty_rd_callback(device_t &device, _Object object) { return downcast(device).m_read_poty.set_callback(object); } + template static devcb_base &set_potx_rd_callback(device_t &device, Object &&cb) { return downcast(device).m_read_potx.set_callback(std::forward(cb)); } + template static devcb_base &set_poty_rd_callback(device_t &device, Object &&cb) { return downcast(device).m_read_poty.set_callback(std::forward(cb)); } virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_0) const override; @@ -164,6 +163,8 @@ protected: TIMER_LINE }; + mos6560_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint32_t variant); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -182,7 +183,7 @@ protected: void sound_start(); void raster_interrupt_gen(); - int m_variant; + const int m_variant; const address_space_config m_videoram_space_config; const address_space_config m_colorram_space_config; @@ -231,7 +232,7 @@ protected: // ======================> mos6561_device -class mos6561_device : public mos6560_device +class mos6561_device : public mos6560_device { public: // construction/destruction @@ -241,7 +242,7 @@ public: // ======================> mos656x_attack_ufo_device -class mos656x_attack_ufo_device : public mos6560_device +class mos656x_attack_ufo_device : public mos6560_device { public: // construction/destruction @@ -250,10 +251,8 @@ public: // device type definitions -extern const device_type MOS6560; -extern const device_type MOS6561; -extern const device_type MOS656X_ATTACK_UFO; - - +DECLARE_DEVICE_TYPE(MOS6560, mos6560_device) +DECLARE_DEVICE_TYPE(MOS6561, mos6561_device) +DECLARE_DEVICE_TYPE(MOS656X_ATTACK_UFO, mos656x_attack_ufo_device) -#endif // MAME_DEVICES_SOUND_MOS6560_H +#endif // MAME_SOUND_MOS6560_H diff --git a/src/devices/sound/mos6581.cpp b/src/devices/sound/mos6581.cpp index 635605736d9..8648e86bbc9 100644 --- a/src/devices/sound/mos6581.cpp +++ b/src/devices/sound/mos6581.cpp @@ -25,8 +25,8 @@ //************************************************************************** // device type definition -const device_type MOS6581 = device_creator; -const device_type MOS8580 = device_creator; +DEFINE_DEVICE_TYPE(MOS6581, mos6581_device, "mos6581", "MOS 6581 SID") +DEFINE_DEVICE_TYPE(MOS8580, mos8580_device, "mos8580", "MOS 8580 SID") @@ -38,31 +38,25 @@ const device_type MOS8580 = device_creator; // mos6581_device - constructor //------------------------------------------------- -mos6581_device::mos6581_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, uint32_t variant, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_sound_interface(mconfig, *this), - m_read_potx(*this), - m_read_poty(*this), - m_stream(nullptr), - m_variant(variant) +mos6581_device::mos6581_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint32_t variant) + : device_t(mconfig, type, tag, owner, clock) + , device_sound_interface(mconfig, *this) + , m_read_potx(*this) + , m_read_poty(*this) + , m_stream(nullptr) + , m_variant(variant) + , m_token(make_unique_clear()) + { - m_token = global_alloc_clear(); } mos6581_device::mos6581_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MOS6581, "MOS6581", tag, owner, clock, "mos6581", __FILE__), - device_sound_interface(mconfig, *this), - m_read_potx(*this), - m_read_poty(*this), - m_stream(nullptr), - m_variant(TYPE_6581) + : mos6581_device(mconfig, MOS6581, tag, owner, clock, TYPE_6581) { - m_token = global_alloc_clear(); } mos6581_device::~mos6581_device() { - global_free(m_token); } //------------------------------------------------- @@ -70,7 +64,7 @@ mos6581_device::~mos6581_device() //------------------------------------------------- mos8580_device::mos8580_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mos6581_device(mconfig, MOS8580, "MOS8580", tag, owner, clock, TYPE_8580, "mos8580", __FILE__) + : mos6581_device(mconfig, MOS8580, tag, owner, clock, TYPE_8580) { } @@ -95,7 +89,7 @@ void mos6581_device::device_start() m_token->clock = clock(); m_token->type = m_variant; - sid6581_init(m_token); + m_token->init(); sidInitWaveformTables(m_variant); } @@ -106,7 +100,7 @@ void mos6581_device::device_start() void mos6581_device::device_reset() { - sidEmuReset(m_token); + m_token->reset(); } @@ -117,7 +111,7 @@ void mos6581_device::device_reset() void mos6581_device::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) { - sidEmuFillBuffer(m_token, outputs[0], samples); + m_token->fill_buffer(outputs[0], samples); } @@ -140,7 +134,7 @@ READ8_MEMBER( mos6581_device::read ) break; default: - data = sid6581_port_r(machine(), m_token, offset); + data = m_token->port_r(machine(), offset); break; } @@ -154,5 +148,5 @@ READ8_MEMBER( mos6581_device::read ) WRITE8_MEMBER( mos6581_device::write ) { - sid6581_port_w(m_token, offset, data); + m_token->port_w(offset, data); } diff --git a/src/devices/sound/mos6581.h b/src/devices/sound/mos6581.h index a441adb82dc..a8dfc0e18de 100644 --- a/src/devices/sound/mos6581.h +++ b/src/devices/sound/mos6581.h @@ -23,10 +23,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_SOUND_MOS6581_H +#define MAME_SOUND_MOS6581_H -#ifndef __MOS6581__ -#define __MOS6581__ +#pragma once @@ -51,27 +51,28 @@ struct SID6581_t; -class mos6581_device : public device_t, - public device_sound_interface +class mos6581_device : public device_t, public device_sound_interface { public: - mos6581_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, uint32_t variant, const char *shortname, const char *source); + // used by the actual SID emulator + enum + { + TYPE_6581, + TYPE_8580 + }; + mos6581_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); ~mos6581_device(); - template static devcb_base &set_potx_rd_callback(device_t &device, _Object object) { return downcast(device).m_read_potx.set_callback(object); } - template static devcb_base &set_poty_rd_callback(device_t &device, _Object object) { return downcast(device).m_read_poty.set_callback(object); } + template static devcb_base &set_potx_rd_callback(device_t &device, Object &&cb) { return downcast(device).m_read_potx.set_callback(std::forward(cb)); } + template static devcb_base &set_poty_rd_callback(device_t &device, Object &&cb) { return downcast(device).m_read_poty.set_callback(std::forward(cb)); } DECLARE_READ8_MEMBER( read ); DECLARE_WRITE8_MEMBER( write ); - enum - { - TYPE_6581, - TYPE_8580 - }; - protected: + mos6581_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint32_t variant); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -85,9 +86,9 @@ private: sound_stream *m_stream; - int m_variant; + int const m_variant; - SID6581_t *m_token; + std::unique_ptr m_token; }; @@ -101,8 +102,7 @@ public: // device type definition -extern const device_type MOS6581; -extern const device_type MOS8580; - +DECLARE_DEVICE_TYPE(MOS6581, mos6581_device) +DECLARE_DEVICE_TYPE(MOS8580, mos8580_device) -#endif +#endif // MAME_SOUND_MOS6581_H diff --git a/src/devices/sound/mos7360.cpp b/src/devices/sound/mos7360.cpp index b1ccf2264c5..37799e1830e 100644 --- a/src/devices/sound/mos7360.cpp +++ b/src/devices/sound/mos7360.cpp @@ -17,9 +17,6 @@ // MACROS / CONSTANTS //************************************************************************** -#define LOG 0 - - #define VERBOSE_LEVEL 0 #define DBG_LOG(N,M,A) \ do { \ @@ -82,8 +79,8 @@ #define FRAMECOLOR (m_reg[0x19] & 0x7f) #define TED7360_CLOCK (m_clock / 4) -#define TED7360_VRETRACERATE ((m_clock == TED7360PAL_CLOCK) ? TED7360PAL_VRETRACERATE : TED7360NTSC_VRETRACERATE) -#define TED7360_LINES ((m_clock == TED7360PAL_CLOCK) ? TED7360PAL_LINES : TED7360NTSC_LINES) +#define TED7360_VRETRACERATE ((m_clock == TED7360PAL_CLOCK) ? PAL_VRETRACERATE : NTSC_VRETRACERATE) +#define TED7360_LINES ((m_clock == TED7360PAL_CLOCK) ? PAL_LINES : NTSC_LINES) static const rgb_t PALETTE_MOS[] = { @@ -159,8 +156,17 @@ static const rgb_t PALETTE_MOS[] = // GLOBAL VARIABLES //************************************************************************** +constexpr unsigned mos7360_device::NTSC_VRETRACERATE; +constexpr unsigned mos7360_device::PAL_VRETRACERATE; +constexpr unsigned mos7360_device::HRETRACERATE; +constexpr unsigned mos7360_device::HSIZE; +constexpr unsigned mos7360_device::VSIZE; +constexpr unsigned mos7360_device::NTSC_LINES; +constexpr unsigned mos7360_device::PAL_LINES; + + // device type definition -const device_type MOS7360 = device_creator; +DEFINE_DEVICE_TYPE(MOS7360, mos7360_device, "mos7360", "MOS 7360 TED") // default address maps @@ -256,7 +262,7 @@ inline uint8_t mos7360_device::read_rom(offs_t offset) //------------------------------------------------- mos7360_device::mos7360_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MOS7360, "MOS7360", tag, owner, clock, "mos7360", __FILE__), + : device_t(mconfig, MOS7360, tag, owner, clock), device_memory_interface(mconfig, *this), device_sound_interface(mconfig, *this), device_video_interface(mconfig, *this), diff --git a/src/devices/sound/mos7360.h b/src/devices/sound/mos7360.h index 102110bc83e..3cdeb6fb368 100644 --- a/src/devices/sound/mos7360.h +++ b/src/devices/sound/mos7360.h @@ -29,10 +29,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_SOUND_MOS7360_H +#define MAME_SOUND_MOS7360_H -#ifndef __MOS7360__ -#define __MOS7360__ +#pragma once @@ -43,7 +43,7 @@ #define MCFG_MOS7360_ADD(_tag, _screen_tag, _cpu_tag, _clock, _videoram_map, _irq, _k) \ MCFG_SCREEN_ADD(_screen_tag, RASTER) \ - MCFG_SCREEN_REFRESH_RATE(TED7360PAL_VRETRACERATE) \ + MCFG_SCREEN_REFRESH_RATE(mos7360_device::PAL_VRETRACERATE) \ MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) \ MCFG_SCREEN_SIZE(336, 216) \ MCFG_SCREEN_VISIBLE_AREA(0, 336 - 1, 0, 216 - 1) \ @@ -59,25 +59,11 @@ // MACROS / CONSTANTS //************************************************************************** -#define TED7360NTSC_VRETRACERATE 60 -#define TED7360PAL_VRETRACERATE 50 -#define TED7360_HRETRACERATE 15625 - -/* the following values depend on the VIC clock, - * but to achieve TV-frequency the clock must have a fix frequency */ -#define TED7360_HSIZE 320 -#define TED7360_VSIZE 200 - /* of course you clock select an other clock, but for accurate */ /* video timing (these are used in c16/c116/plus4) */ #define TED7360NTSC_CLOCK (14318180/4) #define TED7360PAL_CLOCK (17734470/5) -/* pal 50 Hz vertical screen refresh, screen consists of 312 lines - * ntsc 60 Hz vertical screen refresh, screen consists of 262 lines */ -#define TED7360NTSC_LINES 261 -#define TED7360PAL_LINES 312 - /*************************************************************************** @@ -92,14 +78,28 @@ class mos7360_device : public device_t, public device_video_interface { public: + static constexpr unsigned NTSC_VRETRACERATE = 60; + static constexpr unsigned PAL_VRETRACERATE = 50; + static constexpr unsigned HRETRACERATE = 15625; + + /* the following values depend on the VIC clock, + * but to achieve TV-frequency the clock must have a fix frequency */ + static constexpr unsigned HSIZE = 320; + static constexpr unsigned VSIZE = 200; + + /* pal 50 Hz vertical screen refresh, screen consists of 312 lines + * ntsc 60 Hz vertical screen refresh, screen consists of 262 lines */ + static constexpr unsigned NTSC_LINES = 261; + static constexpr unsigned PAL_LINES = 312; + // construction/destruction //mos7360_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock); mos7360_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template void set_callbacks(const char *cpu_tag, _irq irq, _k k) { + template void set_callbacks(const char *cpu_tag, Irq &&irq, K &&k) { m_cpu_tag = cpu_tag; - m_write_irq.set_callback(irq); - m_read_k.set_callback(k); + m_write_irq.set_callback(std::forward(irq)); + m_read_k.set_callback(std::forward(k)); } virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_0) const override; @@ -197,8 +197,6 @@ protected: // device type definition -extern const device_type MOS7360; - - +DECLARE_DEVICE_TYPE(MOS7360, mos7360_device) -#endif +#endif // MAME_SOUND_MOS7360_H diff --git a/src/devices/sound/mpeg_audio.h b/src/devices/sound/mpeg_audio.h index 57ed805a79a..4641dd9beb0 100644 --- a/src/devices/sound/mpeg_audio.h +++ b/src/devices/sound/mpeg_audio.h @@ -6,8 +6,10 @@ ***************************************************************************/ -#ifndef __MPEG_AUDIO_H__ -#define __MPEG_AUDIO_H__ +#ifndef MAME_SOUND_MPEG_AUDIO_H +#define MAME_SOUND_MPEG_AUDIO_H + +#pragma once class mpeg_audio { public: @@ -125,4 +127,4 @@ private: } }; -#endif +#endif // MAME_SOUND_MPEG_AUDIO_H diff --git a/src/devices/sound/msm5205.cpp b/src/devices/sound/msm5205.cpp index 1e34719149a..89858f040e0 100644 --- a/src/devices/sound/msm5205.cpp +++ b/src/devices/sound/msm5205.cpp @@ -56,17 +56,17 @@ */ -const device_type MSM5205 = device_creator; -const device_type MSM6585 = device_creator; +DEFINE_DEVICE_TYPE(MSM5205, msm5205_device, "msm5205", "MSM5205") +DEFINE_DEVICE_TYPE(MSM6585, msm6585_device, "msm6585", "MSM6585") msm5205_device::msm5205_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : msm5205_device(mconfig, MSM5205, "MSM5205", tag, owner, clock, "msm5205", __FILE__) + : msm5205_device(mconfig, MSM5205, tag, owner, clock) { } -msm5205_device::msm5205_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, u32 clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), +msm5205_device::msm5205_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock) + : device_t(mconfig, type, tag, owner, clock), device_sound_interface(mconfig, *this), m_s1(false), m_s2(false), @@ -77,7 +77,7 @@ msm5205_device::msm5205_device(const machine_config &mconfig, device_type type, msm6585_device::msm6585_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : msm5205_device(mconfig, MSM6585, "MSM6585", tag, owner, clock, "msm6585", __FILE__) + : msm5205_device(mconfig, MSM6585, tag, owner, clock) { } diff --git a/src/devices/sound/msm5205.h b/src/devices/sound/msm5205.h index 156d4bfc448..e8c496b388a 100644 --- a/src/devices/sound/msm5205.h +++ b/src/devices/sound/msm5205.h @@ -1,54 +1,43 @@ // license:BSD-3-Clause // copyright-holders:Aaron Giles -#pragma once +#ifndef MAME_SOUND_MSM5205_H +#define MAME_SOUND_MSM5205_H -#ifndef __MSM5205_H__ -#define __MSM5205_H__ +#pragma once /* an interface for the MSM5205 and similar chips */ -/* prescaler selector defines */ -/* MSM5205 default master clock is 384KHz */ -#define MSM5205_S96_3B 0 /* prescaler 1/96(4KHz) , data 3bit */ -#define MSM5205_S48_3B 1 /* prescaler 1/48(8KHz) , data 3bit */ -#define MSM5205_S64_3B 2 /* prescaler 1/64(6KHz) , data 3bit */ -#define MSM5205_SEX_3B 3 /* VCLK slave mode , data 3bit */ -#define MSM5205_S96_4B 4 /* prescaler 1/96(4KHz) , data 4bit */ -#define MSM5205_S48_4B 5 /* prescaler 1/48(8KHz) , data 4bit */ -#define MSM5205_S64_4B 6 /* prescaler 1/64(6KHz) , data 4bit */ -#define MSM5205_SEX_4B 7 /* VCLK slave mode , data 4bit */ - -/* MSM6585 default master clock is 640KHz */ -#define MSM6585_S160 (4+8) /* prescaler 1/160(4KHz), data 4bit */ -#define MSM6585_S40 (5+8) /* prescaler 1/40(16KHz), data 4bit */ -#define MSM6585_S80 (6+8) /* prescaler 1/80 (8KHz), data 4bit */ -#define MSM6585_S20 (7+8) /* prescaler 1/20(32KHz), data 4bit */ - +#define MCFG_MSM5205_PRESCALER_SELECTOR(select) \ + msm5205_device::set_prescaler_selector(*device, (msm5205_device::select)); -#define MCFG_MSM5205_PRESCALER_SELECTOR(_select) \ - msm5205_device::set_prescaler_selector(*device, _select); +#define MCFG_MSM5205_VCLK_CB(cb) \ + devcb = &msm5205_device::set_vclk_callback(*device, (DEVCB_##cb)); -#define MCFG_MSM5205_VCLK_CB(_devcb) \ - devcb = &msm5205_device::set_vclk_callback(*device, DEVCB_##_devcb); +#define MCFG_MSM6585_PRESCALER_SELECTOR(select) \ + msm6585_device::set_prescaler_selector(*device, (msm6585_device::select)); -#define MCFG_MSM6585_PRESCALER_SELECTOR(_select) \ - msm6585_device::set_prescaler_selector(*device, _select); +#define MCFG_MSM6585_VCLK_CB(cb) \ + devcb = &msm6585_device::set_vclk_callback(*device, (DEVCB_##cb)); -#define MCFG_MSM6585_VCLK_CB(_devcb) \ - devcb = &msm6585_device::set_vclk_callback(*device, DEVCB_##_devcb); - -class msm5205_device : public device_t, - public device_sound_interface +class msm5205_device : public device_t, public device_sound_interface { public: + /* MSM5205 default master clock is 384KHz */ + static constexpr int S96_3B = 0; /* prescaler 1/96(4KHz) , data 3bit */ + static constexpr int S48_3B = 1; /* prescaler 1/48(8KHz) , data 3bit */ + static constexpr int S64_3B = 2; /* prescaler 1/64(6KHz) , data 3bit */ + static constexpr int SEX_3B = 3; /* VCLK slave mode , data 3bit */ + static constexpr int S96_4B = 4; /* prescaler 1/96(4KHz) , data 4bit */ + static constexpr int S48_4B = 5; /* prescaler 1/48(8KHz) , data 4bit */ + static constexpr int S64_4B = 6; /* prescaler 1/64(6KHz) , data 4bit */ + static constexpr int SEX_4B = 7; /* VCLK slave mode , data 4bit */ + msm5205_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); - msm5205_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, u32 clock, const char *shortname, const char *source); - ~msm5205_device() {} static void set_prescaler_selector(device_t &device, int select); - template static devcb_base &set_vclk_callback(device_t &device, _Object object) { return downcast(device).m_vclk_cb.set_callback(object); } + template static devcb_base &set_vclk_callback(device_t &device, Object &&cb) { return downcast(device).m_vclk_cb.set_callback(std::forward(cb)); } // reset signal should keep for 2cycle of VCLK DECLARE_WRITE_LINE_MEMBER(reset_w); @@ -68,6 +57,8 @@ public: DECLARE_WRITE_LINE_MEMBER(s2_w); protected: + msm5205_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -96,11 +87,16 @@ protected: devcb_write_line m_vclk_cb; }; -extern const device_type MSM5205; class msm6585_device : public msm5205_device { public: + /* MSM6585 default master clock is 640KHz */ + static constexpr int S160 = 4 + 8; /* prescaler 1/160(4KHz), data 4bit */ + static constexpr int S40 = 5 + 8; /* prescaler 1/40(16KHz), data 4bit */ + static constexpr int S80 = 6 + 8; /* prescaler 1/80 (8KHz), data 4bit */ + static constexpr int S20 = 7 + 8; /* prescaler 1/20(32KHz), data 4bit */ + msm6585_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); protected: @@ -110,7 +106,8 @@ protected: virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; }; -extern const device_type MSM6585; +DECLARE_DEVICE_TYPE(MSM5205, msm5205_device) +DECLARE_DEVICE_TYPE(MSM6585, msm6585_device) -#endif /* __MSM5205_H__ */ +#endif // MAME_SOUND_MSM5205_H diff --git a/src/devices/sound/msm5232.cpp b/src/devices/sound/msm5232.cpp index 772bdbd01b4..fa8ef48387d 100644 --- a/src/devices/sound/msm5232.cpp +++ b/src/devices/sound/msm5232.cpp @@ -1,7 +1,6 @@ // license:GPL-2.0+ // copyright-holders:Jarek Burczynski, Hiromitsu Shioya #include "emu.h" - #include "msm5232.h" #define CLOCK_RATE_DIVIDER 16 @@ -11,12 +10,14 @@ 8 channel tone generator */ -const device_type MSM5232 = device_creator; +DEFINE_DEVICE_TYPE(MSM5232, msm5232_device, "msm5232", "MSM5232") msm5232_device::msm5232_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MSM5232, "MSM5232", tag, owner, clock, "msm5232", __FILE__), - device_sound_interface(mconfig, *this), m_stream(nullptr), m_noise_cnt(0), m_noise_step(0), m_noise_rng(0), m_noise_clocks(0), m_UpdateStep(0), m_control1(0), m_control2(0), m_gate(0), m_chip_clock(0), m_rate(0), - m_gate_handler_cb(*this) + : device_t(mconfig, MSM5232, tag, owner, clock) + , device_sound_interface(mconfig, *this) + , m_stream(nullptr) + , m_noise_cnt(0), m_noise_step(0), m_noise_rng(0), m_noise_clocks(0), m_UpdateStep(0), m_control1(0), m_control2(0), m_gate(0), m_chip_clock(0), m_rate(0) + , m_gate_handler_cb(*this) { } diff --git a/src/devices/sound/msm5232.h b/src/devices/sound/msm5232.h index cee3fe1c09e..b650461267b 100644 --- a/src/devices/sound/msm5232.h +++ b/src/devices/sound/msm5232.h @@ -1,9 +1,9 @@ // license:GPL-2.0+ // copyright-holders:Jarek Burczynski, Hiromitsu Shioya -#pragma once +#ifndef MAME_SOUND_MSM5232_H +#define MAME_SOUND_MSM5232_H -#ifndef __MSM5232_H__ -#define __MSM5232_H__ +#pragma once #define MCFG_MSM5232_SET_CAPACITORS(_a, _b, _c, _d, _e, _f, _g, _h) \ @@ -12,44 +12,15 @@ #define MCFG_MSM5232_GATE_HANDLER_CB(_devcb) \ devcb = &msm5232_device::set_gate_handler_callback(*device, DEVCB_##_devcb); -struct VOICE { - uint8_t mode; - - int TG_count_period; - int TG_count; - - uint8_t TG_cnt; /* 7 bits binary counter (frequency output) */ - uint8_t TG_out16; /* bit number (of TG_cnt) for 16' output */ - uint8_t TG_out8; /* bit number (of TG_cnt) for 8' output */ - uint8_t TG_out4; /* bit number (of TG_cnt) for 4' output */ - uint8_t TG_out2; /* bit number (of TG_cnt) for 2' output */ - - int egvol; - int eg_sect; - int counter; - int eg; - - uint8_t eg_arm; /* attack/release mode */ - - double ar_rate; - double dr_rate; - double rr_rate; - - int pitch; /* current pitch data */ - - int GF; -}; - class msm5232_device : public device_t, public device_sound_interface { public: msm5232_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~msm5232_device() {} static void static_set_capacitors(device_t &device, double cap1, double cap2, double cap3, double cap4, double cap5, double cap6, double cap7, double cap8); - template static devcb_base &set_gate_handler_callback(device_t &device, _Object object) { return downcast(device).m_gate_handler_cb.set_callback(object); } + template static devcb_base &set_gate_handler_callback(device_t &device, Object &&cb) { return downcast(device).m_gate_handler_cb.set_callback(std::forward(cb)); } DECLARE_WRITE8_MEMBER( write ); void set_clock(int clock); @@ -63,7 +34,35 @@ protected: // sound stream update overrides virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; - private: +private: + struct VOICE { + uint8_t mode; + + int TG_count_period; + int TG_count; + + uint8_t TG_cnt; /* 7 bits binary counter (frequency output) */ + uint8_t TG_out16; /* bit number (of TG_cnt) for 16' output */ + uint8_t TG_out8; /* bit number (of TG_cnt) for 8' output */ + uint8_t TG_out4; /* bit number (of TG_cnt) for 4' output */ + uint8_t TG_out2; /* bit number (of TG_cnt) for 2' output */ + + int egvol; + int eg_sect; + int counter; + int eg; + + uint8_t eg_arm; /* attack/release mode */ + + double ar_rate; + double dr_rate; + double rr_rate; + + int pitch; /* current pitch data */ + + int GF; + }; + // internal state sound_stream *m_stream; @@ -105,7 +104,6 @@ protected: void postload(); }; -extern const device_type MSM5232; - +DECLARE_DEVICE_TYPE(MSM5232, msm5232_device) -#endif /* __MSM5232_H__ */ +#endif // MAME_SOUND_MSM5232_H diff --git a/src/devices/sound/multipcm.cpp b/src/devices/sound/multipcm.cpp index 31ffb2705d8..7f9205bd0d5 100644 --- a/src/devices/sound/multipcm.cpp +++ b/src/devices/sound/multipcm.cpp @@ -71,8 +71,8 @@ const int32_t multipcm_device::VALUE_TO_CHANNEL[32] = 21,22,23,24,25,26,27, -1, }; -const uint32_t multipcm_device::TL_SHIFT = 12; -const uint32_t multipcm_device::EG_SHIFT = 16; +constexpr uint32_t multipcm_device::TL_SHIFT; +constexpr uint32_t multipcm_device::EG_SHIFT; void multipcm_device::init_sample(sample_t *sample, uint32_t index) { @@ -187,7 +187,7 @@ void multipcm_device::envelope_generator_calc(slot_t *slot) LFO SECTION *****************************/ -const uint32_t multipcm_device::LFO_SHIFT = 8; +constexpr uint32_t multipcm_device::LFO_SHIFT; const float multipcm_device::LFO_FREQ[8] = // In Hertz { @@ -284,8 +284,8 @@ void multipcm_device::lfo_init() uint32_t multipcm_device::value_to_fixed(const uint32_t bits, const float value) { - const float float_shift = (float)(1 << bits); - return (uint32_t)(float_shift * value); + const float float_shift = float(1 << bits); + return uint32_t(float_shift * value); } int32_t multipcm_device::pitch_lfo_step(lfo_t *lfo) @@ -307,7 +307,7 @@ int32_t multipcm_device::amplitude_lfo_step(lfo_t *lfo) void multipcm_device::lfo_compute_step(lfo_t *lfo, uint32_t lfo_frequency, uint32_t lfo_scale, int32_t amplitude_lfo) { float step = (float)LFO_FREQ[lfo_frequency] * 256.0f / (float)m_rate; - lfo->m_phase_step = (uint32_t)((float)(1 << LFO_SHIFT) * step); + lfo->m_phase_step = uint32_t(float(1 << LFO_SHIFT) * step); if (amplitude_lfo) { lfo->m_table = m_amplitude_table; @@ -464,10 +464,10 @@ void multipcm_device::set_bank(uint32_t leftoffs, uint32_t rightoffs) printf("%08x, %08x\n", leftoffs, rightoffs); } -const device_type MULTIPCM = device_creator; +DEFINE_DEVICE_TYPE(MULTIPCM, multipcm_device, "multipcm", "Sega/Yamaha 315-5560 MultiPCM") multipcm_device::multipcm_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MULTIPCM, "Sega/Yamaha 315-5560", tag, owner, clock, "multipcm", __FILE__), + : device_t(mconfig, MULTIPCM, tag, owner, clock), device_sound_interface(mconfig, *this), device_rom_interface(mconfig, *this, 24), m_stream(nullptr), diff --git a/src/devices/sound/multipcm.h b/src/devices/sound/multipcm.h index 333e50b32bc..c3f9c6c9aaa 100644 --- a/src/devices/sound/multipcm.h +++ b/src/devices/sound/multipcm.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Miguel Angel Horna -#pragma once +#ifndef MAME_SOUND_MULTIPCM_H +#define MAME_SOUND_MULTIPCM_H -#ifndef __MULTIPCM_H__ -#define __MULTIPCM_H__ +#pragma once class multipcm_device : public device_t, public device_sound_interface, @@ -11,7 +11,6 @@ class multipcm_device : public device_t, { public: multipcm_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~multipcm_device() {} DECLARE_WRITE8_MEMBER( write ); DECLARE_READ8_MEMBER( read ); @@ -134,20 +133,19 @@ private: int16_t clamp_to_int16(int32_t value); - static const uint32_t TL_SHIFT; + static constexpr uint32_t TL_SHIFT = 12; static const int32_t VALUE_TO_CHANNEL[32]; - static const uint32_t EG_SHIFT; + static constexpr uint32_t EG_SHIFT = 16; static const double BASE_TIMES[64]; - static const uint32_t LFO_SHIFT; + static constexpr uint32_t LFO_SHIFT = 8; static const float LFO_FREQ[8]; static const float PHASE_SCALE_LIMIT[8]; static const float AMPLITUDE_SCALE_LIMIT[8]; }; -extern const device_type MULTIPCM; - +DECLARE_DEVICE_TYPE(MULTIPCM, multipcm_device) -#endif /* __MULTIPCM_H__ */ +#endif // MAME_SOUND_MULTIPCM_H diff --git a/src/devices/sound/n63701x.cpp b/src/devices/sound/n63701x.cpp index dda616698d3..fae1ff01edd 100644 --- a/src/devices/sound/n63701x.cpp +++ b/src/devices/sound/n63701x.cpp @@ -29,13 +29,13 @@ static const int vol_table[4] = { 26, 84, 200, 258 }; // device type definition -const device_type NAMCO_63701X = device_creator; +DEFINE_DEVICE_TYPE(NAMCO_63701X, namco_63701x_device, "namco_63701x", "Namco 63701X") namco_63701x_device::namco_63701x_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, NAMCO_63701X, "Namco 63701X", tag, owner, clock, "namco_63701x", __FILE__), - device_sound_interface(mconfig, *this), - m_rom(*this, DEVICE_SELF), - m_stream(nullptr) + : device_t(mconfig, NAMCO_63701X, tag, owner, clock) + , device_sound_interface(mconfig, *this) + , m_rom(*this, DEVICE_SELF) + , m_stream(nullptr) { } diff --git a/src/devices/sound/n63701x.h b/src/devices/sound/n63701x.h index 335bd4f387d..50046252a53 100644 --- a/src/devices/sound/n63701x.h +++ b/src/devices/sound/n63701x.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Nicola Salmoria -#pragma once +#ifndef MAME_SOUND_N63701X_H +#define MAME_SOUND_N63701X_H -#ifndef __N63701X_H__ -#define __N63701X_H__ +#pragma once //************************************************************************** // INTERFACE CONFIGURATION MACROS @@ -19,24 +19,6 @@ // TYPE DEFINITIONS //************************************************************************** -struct voice_63701x -{ - voice_63701x() - : select(0), - playing(0), - base_addr(0), - position(0), - volume(0), - silence_counter(0) {} - - int select; - int playing; - int base_addr; - int position; - int volume; - int silence_counter; -}; - // ======================> namco_63701x_device @@ -45,7 +27,8 @@ class namco_63701x_device : public device_t, { public: namco_63701x_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~namco_63701x_device() { } + + DECLARE_WRITE8_MEMBER(namco_63701x_w); protected: // device-level overrides @@ -54,16 +37,24 @@ protected: // sound stream update overrides virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; -public: - DECLARE_WRITE8_MEMBER(namco_63701x_w); - private: + struct voice_63701x + { + voice_63701x() { } + + int select = 0; + int playing = 0; + int base_addr = 0; + int position = 0; + int volume = 0; + int silence_counter = 0; + }; + required_region_ptr m_rom; voice_63701x m_voices[2]; sound_stream *m_stream; /* channel assigned by the mixer */ }; -extern const device_type NAMCO_63701X; - +DECLARE_DEVICE_TYPE(NAMCO_63701X, namco_63701x_device) -#endif /* __N63701X_H__ */ +#endif // MAME_SOUND_N63701X_H diff --git a/src/devices/sound/namco.cpp b/src/devices/sound/namco.cpp index cd2ab748555..42427ad4573 100644 --- a/src/devices/sound/namco.cpp +++ b/src/devices/sound/namco.cpp @@ -43,12 +43,12 @@ /* a position of waveform sample */ #define WAVEFORM_POSITION(n) (((n) >> m_f_fracbits) & 0x1f) -const device_type NAMCO = device_creator; -const device_type NAMCO_15XX = device_creator; -const device_type NAMCO_CUS30 = device_creator; +DEFINE_DEVICE_TYPE(NAMCO, namco_device, "namco", "Namco") +DEFINE_DEVICE_TYPE(NAMCO_15XX, namco_15xx_device, "namco_15xx", "Namco 15xx") +DEFINE_DEVICE_TYPE(NAMCO_CUS30, namco_cus30_device, "namco_cus30", "Namco CUS30") -namco_audio_device::namco_audio_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, __FILE__) +namco_audio_device::namco_audio_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) , device_sound_interface(mconfig, *this) , m_wave_ptr(*this, DEVICE_SELF) , m_last_channel(nullptr) @@ -66,17 +66,17 @@ namco_audio_device::namco_audio_device(const machine_config &mconfig, device_typ } namco_device::namco_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : namco_audio_device(mconfig, NAMCO, "Namco", tag, owner, clock, "namco", __FILE__) + : namco_audio_device(mconfig, NAMCO, tag, owner, clock) { } namco_15xx_device::namco_15xx_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - :namco_audio_device(mconfig, NAMCO_15XX, "Namco 15XX", tag, owner, clock, "namco_15xx", __FILE__) + :namco_audio_device(mconfig, NAMCO_15XX, tag, owner, clock) { } namco_cus30_device::namco_cus30_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : namco_audio_device(mconfig, NAMCO_CUS30, "Namco CUS30", tag, owner, clock, "namco_cus30", __FILE__) + : namco_audio_device(mconfig, NAMCO_CUS30, tag, owner, clock) { } diff --git a/src/devices/sound/namco.h b/src/devices/sound/namco.h index ab9347021c2..0bb8a614300 100644 --- a/src/devices/sound/namco.h +++ b/src/devices/sound/namco.h @@ -1,14 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Nicola Salmoria,Aaron Giles -#pragma once - -#ifndef __NAMCO_H__ -#define __NAMCO_H__ - -/* 8 voices max */ -#define MAX_VOICES 8 +#ifndef MAME_SOUND_NAMCO_H +#define MAME_SOUND_NAMCO_H -#define MAX_VOLUME 16 +#pragma once #define MCFG_NAMCO_AUDIO_VOICES(_voices) \ @@ -18,32 +13,34 @@ namco_audio_device::set_stereo(*device, _stereo); -/* this structure defines the parameters for a channel */ -struct sound_channel -{ - uint32_t frequency; - uint32_t counter; - int32_t volume[2]; - int32_t noise_sw; - int32_t noise_state; - int32_t noise_seed; - uint32_t noise_counter; - int32_t noise_hold; - int32_t waveform_select; -}; - class namco_audio_device : public device_t, public device_sound_interface { public: - namco_audio_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - ~namco_audio_device() {} - // static configuration static void set_voices(device_t &device, int voices) { downcast(device).m_voices = voices; } static void set_stereo(device_t &device, int stereo) { downcast(device).m_stereo = stereo; } protected: + static constexpr unsigned MAX_VOICES = 8; + static constexpr unsigned MAX_VOLUME = 16; + + /* this structure defines the parameters for a channel */ + struct sound_channel + { + uint32_t frequency; + uint32_t counter; + int32_t volume[2]; + int32_t noise_sw; + int32_t noise_state; + int32_t noise_seed; + uint32_t noise_counter; + int32_t noise_hold; + int32_t waveform_select; + }; + + namco_audio_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; @@ -96,7 +93,6 @@ protected: virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; }; -extern const device_type NAMCO; class namco_15xx_device : public namco_audio_device { @@ -113,7 +109,6 @@ protected: virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; }; -extern const device_type NAMCO_15XX; class namco_cus30_device : public namco_audio_device { @@ -130,6 +125,9 @@ protected: virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; }; -extern const device_type NAMCO_CUS30; -#endif /* __NAMCO_H__ */ +DECLARE_DEVICE_TYPE(NAMCO, namco_device) +DECLARE_DEVICE_TYPE(NAMCO_15XX, namco_15xx_device) +DECLARE_DEVICE_TYPE(NAMCO_CUS30, namco_cus30_device) + +#endif // MAME_SOUND_NAMCO_H diff --git a/src/devices/sound/nes_apu.cpp b/src/devices/sound/nes_apu.cpp index d2b6a98b900..5d95163846a 100644 --- a/src/devices/sound/nes_apu.cpp +++ b/src/devices/sound/nes_apu.cpp @@ -57,7 +57,7 @@ /* INTERNAL FUNCTIONS */ /* INITIALIZE WAVE TIMES RELATIVE TO SAMPLE RATE */ -static void create_vbltimes(uint32 * table,const uint8 *vbl,unsigned int rate) +static void create_vbltimes(u32 * table,const u8 *vbl,unsigned int rate) { int i; @@ -87,7 +87,7 @@ void nesapu_device::create_syncs(unsigned long sps) } /* INITIALIZE NOISE LOOKUP TABLE */ -static void create_noise(uint8 *buf, const int bits, int size) +static void create_noise(u8 *buf, const int bits, int size) { int m = 0x0011; int xor_val, i; @@ -103,10 +103,10 @@ static void create_noise(uint8 *buf, const int bits, int size) } } -const device_type NES_APU = device_creator; +DEFINE_DEVICE_TYPE(NES_APU, nesapu_device, "nesapu", "N2A03 APU") -nesapu_device::nesapu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, NES_APU, "N2A03 APU", tag, owner, clock, "nesapu", __FILE__), +nesapu_device::nesapu_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) + : device_t(mconfig, NES_APU, tag, owner, clock), device_sound_interface(mconfig, *this), m_apu_incsize(0.0), m_samps_per_sync(0), @@ -156,7 +156,7 @@ void nesapu_device::calculate_rates() m_real_rate = m_samps_per_sync * screen_device::DEFAULT_FRAME_RATE; } m_buffer_size = m_samps_per_sync; - m_apu_incsize = (float) (clock() / (float) m_real_rate); + m_apu_incsize = float(clock() / (float) m_real_rate); create_vbltimes(m_vbl_times,vbl_length,m_samps_per_sync); create_syncs(m_samps_per_sync); @@ -176,7 +176,7 @@ void nesapu_device::calculate_rates() void nesapu_device::device_start() { - create_noise(m_noise_lut, 13, NOISE_LONG); + create_noise(m_noise_lut, 13, apu_t::NOISE_LONG); (m_APU.dpcm).memory = &downcast(*owner()).space(AS_PROGRAM); @@ -242,11 +242,11 @@ void nesapu_device::device_start() /* TODO: sound channels should *ALL* have DC volume decay */ /* OUTPUT SQUARE WAVE SAMPLE (VALUES FROM -16 to +15) */ -int8 nesapu_device::apu_square(square_t *chan) +s8 nesapu_device::apu_square(apu_t::square_t *chan) { int env_delay; int sweep_delay; - int8 output; + s8 output; /* reg0: 0-3=volume, 4=envelope, 5=hold, 6-7=duty cycle ** reg1: 0-2=sweep shifts, 3=sweep inc/dec, 4-6=sweep length, 7=sweep on @@ -313,14 +313,14 @@ int8 nesapu_device::apu_square(square_t *chan) if (chan->adder < (duty_lut[chan->regs[0] >> 6])) output = -output; - return (int8) output; + return (s8) output; } /* OUTPUT TRIANGLE WAVE SAMPLE (VALUES FROM -16 to +15) */ -int8 nesapu_device::apu_triangle(triangle_t *chan) +s8 nesapu_device::apu_triangle(apu_t::triangle_t *chan) { int freq; - int8 output; + s8 output; /* reg0: 7=holdnote, 6-0=linear length counter ** reg2: low 8 bits of frequency ** reg3: 7-3=length counter, 2-0=high 3 bits of frequency @@ -371,15 +371,15 @@ int8 nesapu_device::apu_triangle(triangle_t *chan) chan->output_vol = output; } - return (int8) chan->output_vol; + return (s8) chan->output_vol; } /* OUTPUT NOISE WAVE SAMPLE (VALUES FROM -16 to +15) */ -int8 nesapu_device::apu_noise(noise_t *chan) +s8 nesapu_device::apu_noise(apu_t::noise_t *chan) { int freq, env_delay; - uint8 outvol; - uint8 output; + u8 outvol; + u8 output; /* reg0: 0-3=volume, 4=envelope, 5=hold ** reg2: 7=small(93 byte) sample,3-0=freq lookup @@ -420,9 +420,9 @@ int8 nesapu_device::apu_noise(noise_t *chan) chan->phaseacc += freq; chan->cur_pos++; - if (NOISE_SHORT == chan->cur_pos && (chan->regs[2] & 0x80)) + if (apu_t::NOISE_SHORT == chan->cur_pos && (chan->regs[2] & 0x80)) chan->cur_pos = 0; - else if (NOISE_LONG == chan->cur_pos) + else if (apu_t::NOISE_LONG == chan->cur_pos) chan->cur_pos = 0; } @@ -438,14 +438,14 @@ int8 nesapu_device::apu_noise(noise_t *chan) if (m_noise_lut[chan->cur_pos] & 0x80) /* make it negative */ output = -output; - return (int8) output; + return (s8) output; } /* RESET DPCM PARAMETERS */ -static inline void apu_dpcmreset(dpcm_t *chan) +static inline void apu_dpcmreset(apu_t::dpcm_t *chan) { - chan->address = 0xC000 + (uint16) (chan->regs[2] << 6); - chan->length = (uint16) (chan->regs[3] << 4) + 1; + chan->address = 0xC000 + u16(chan->regs[2] << 6); + chan->length = u16(chan->regs[3] << 4) + 1; chan->bits_left = chan->length << 3; chan->irq_occurred = false; chan->enabled = true; /* Fixed * Proper DPCM channel ENABLE/DISABLE flag behaviour*/ @@ -454,7 +454,7 @@ static inline void apu_dpcmreset(dpcm_t *chan) /* OUTPUT DPCM WAVE SAMPLE (VALUES FROM -64 to +63) */ /* TODO: centerline naughtiness */ -int8 nesapu_device::apu_dpcm(dpcm_t *chan) +s8 nesapu_device::apu_dpcm(apu_t::dpcm_t *chan) { int freq, bit_pos; @@ -514,36 +514,36 @@ int8 nesapu_device::apu_dpcm(dpcm_t *chan) else if (chan->vol < -64) chan->vol = -64; - return (int8) (chan->vol); + return (s8) (chan->vol); } /* WRITE REGISTER VALUE */ -inline void nesapu_device::apu_regwrite(int address, uint8 value) +inline void nesapu_device::apu_regwrite(int address, u8 value) { int chan = (address & 4) ? 1 : 0; switch (address) { /* squares */ - case APU_WRA0: - case APU_WRB0: + case apu_t::WRA0: + case apu_t::WRB0: m_APU.squ[chan].regs[0] = value; break; - case APU_WRA1: - case APU_WRB1: + case apu_t::WRA1: + case apu_t::WRB1: m_APU.squ[chan].regs[1] = value; break; - case APU_WRA2: - case APU_WRB2: + case apu_t::WRA2: + case apu_t::WRB2: m_APU.squ[chan].regs[2] = value; if (m_APU.squ[chan].enabled) m_APU.squ[chan].freq = ((((m_APU.squ[chan].regs[3] & 7) << 8) + value) + 1) << 16; break; - case APU_WRA3: - case APU_WRB3: + case apu_t::WRA3: + case apu_t::WRB3: m_APU.squ[chan].regs[3] = value; if (m_APU.squ[chan].enabled) @@ -556,7 +556,7 @@ inline void nesapu_device::apu_regwrite(int address, uint8 value) break; /* triangle */ - case APU_WRC0: + case apu_t::WRC0: m_APU.tri.regs[0] = value; if (m_APU.tri.enabled) @@ -572,11 +572,11 @@ inline void nesapu_device::apu_regwrite(int address, uint8 value) m_APU.tri.regs[1] = value; break; - case APU_WRC2: + case apu_t::WRC2: m_APU.tri.regs[2] = value; break; - case APU_WRC3: + case apu_t::WRC3: m_APU.tri.regs[3] = value; /* this is somewhat of a hack. there is some latency on the Real @@ -607,7 +607,7 @@ inline void nesapu_device::apu_regwrite(int address, uint8 value) break; /* noise */ - case APU_WRD0: + case apu_t::WRD0: m_APU.noi.regs[0] = value; break; @@ -616,11 +616,11 @@ inline void nesapu_device::apu_regwrite(int address, uint8 value) m_APU.noi.regs[1] = value; break; - case APU_WRD2: + case apu_t::WRD2: m_APU.noi.regs[2] = value; break; - case APU_WRD3: + case apu_t::WRD3: m_APU.noi.regs[3] = value; if (m_APU.noi.enabled) @@ -631,7 +631,7 @@ inline void nesapu_device::apu_regwrite(int address, uint8 value) break; /* DMC */ - case APU_WRE0: + case apu_t::WRE0: m_APU.dpcm.regs[0] = value; if (0 == (value & 0x80)) { downcast(m_APU.dpcm.memory->device()).set_input_line(N2A03_APU_IRQ_LINE, CLEAR_LINE); @@ -639,29 +639,29 @@ inline void nesapu_device::apu_regwrite(int address, uint8 value) } break; - case APU_WRE1: /* 7-bit DAC */ + case apu_t::WRE1: /* 7-bit DAC */ //m_APU.dpcm.regs[1] = value - 0x40; m_APU.dpcm.regs[1] = value & 0x7F; m_APU.dpcm.vol = (m_APU.dpcm.regs[1]-64); break; - case APU_WRE2: + case apu_t::WRE2: m_APU.dpcm.regs[2] = value; //apu_dpcmreset(m_APU.dpcm); break; - case APU_WRE3: + case apu_t::WRE3: m_APU.dpcm.regs[3] = value; break; - case APU_IRQCTRL: + case apu_t::IRQCTRL: if(value & 0x80) m_APU.step_mode = 5; else m_APU.step_mode = 4; break; - case APU_SMASK: + case apu_t::SMASK: if (value & 0x01) m_APU.squ[0].enabled = true; else @@ -723,7 +723,7 @@ logerror("invalid apu write: $%02X at $%04X\n", value, address); /* READ VALUES FROM REGISTERS */ -inline uint8 nesapu_device::apu_read(int address) +inline u8 nesapu_device::apu_read(int address) { if (address == 0x15) /*FIXED* Address $4015 has different behaviour*/ { @@ -753,7 +753,7 @@ inline uint8 nesapu_device::apu_read(int address) } /* WRITE VALUE TO TEMP REGISTRY AND QUEUE EVENT */ -inline void nesapu_device::apu_write(int address, uint8 value) +inline void nesapu_device::apu_write(int address, u8 value) { m_APU.regs[address]=value; m_stream->update(); diff --git a/src/devices/sound/nes_apu.h b/src/devices/sound/nes_apu.h index 067f98deffd..473aa7e4c68 100644 --- a/src/devices/sound/nes_apu.h +++ b/src/devices/sound/nes_apu.h @@ -23,11 +23,13 @@ *****************************************************************************/ +#ifndef MAME_SOUND_NES_APU_H +#define MAME_SOUND_NES_APU_H + #pragma once -#ifndef __NES_APU_H__ -#define __NES_APU_H__ +#include "nes_defs.h" /* AN EXPLANATION * @@ -37,18 +39,10 @@ * processor, as each is shared. */ -#include "nes_defs.h" - -/* GLOBAL CONSTANTS */ -#define SYNCS_MAX1 0x20 -#define SYNCS_MAX2 0x80 - -class nesapu_device : public device_t, - public device_sound_interface +class nesapu_device : public device_t, public device_sound_interface { public: - nesapu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~nesapu_device() {} + nesapu_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); virtual void device_clock_changed() override; @@ -63,29 +57,33 @@ protected: virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; private: + /* GLOBAL CONSTANTS */ + static constexpr unsigned SYNCS_MAX1 = 0x20; + static constexpr unsigned SYNCS_MAX2 = 0x80; + // internal state apu_t m_APU; /* Actual APUs */ float m_apu_incsize; /* Adjustment increment */ - uint32 m_samps_per_sync; /* Number of samples per vsync */ - uint32 m_buffer_size; /* Actual buffer size in bytes */ - uint32 m_real_rate; /* Actual playback rate */ - uint8 m_noise_lut[NOISE_LONG]; /* Noise sample lookup table */ - uint32 m_vbl_times[0x20]; /* VBL durations in samples */ - uint32 m_sync_times1[SYNCS_MAX1]; /* Samples per sync table */ - uint32 m_sync_times2[SYNCS_MAX2]; /* Samples per sync table */ + u32 m_samps_per_sync; /* Number of samples per vsync */ + u32 m_buffer_size; /* Actual buffer size in bytes */ + u32 m_real_rate; /* Actual playback rate */ + u8 m_noise_lut[apu_t::NOISE_LONG]; /* Noise sample lookup table */ + u32 m_vbl_times[0x20]; /* VBL durations in samples */ + u32 m_sync_times1[SYNCS_MAX1]; /* Samples per sync table */ + u32 m_sync_times2[SYNCS_MAX2]; /* Samples per sync table */ sound_stream *m_stream; void calculate_rates(); void create_syncs(unsigned long sps); - int8 apu_square(square_t *chan); - int8 apu_triangle(triangle_t *chan); - int8 apu_noise(noise_t *chan); - int8 apu_dpcm(dpcm_t *chan); - inline void apu_regwrite(int address, uint8 value); - inline uint8 apu_read(int address); - inline void apu_write(int address, uint8 value); + s8 apu_square(apu_t::square_t *chan); + s8 apu_triangle(apu_t::triangle_t *chan); + s8 apu_noise(apu_t::noise_t *chan); + s8 apu_dpcm(apu_t::dpcm_t *chan); + inline void apu_regwrite(int address, u8 value); + inline u8 apu_read(int address); + inline void apu_write(int address, u8 value); }; -extern const device_type NES_APU; +DECLARE_DEVICE_TYPE(NES_APU, nesapu_device) -#endif /* __NES_APU_H__ */ +#endif // MAME_SOUND_NES_APU_H diff --git a/src/devices/sound/nes_defs.h b/src/devices/sound/nes_defs.h index 29a9de4c016..da538740c65 100644 --- a/src/devices/sound/nes_defs.h +++ b/src/devices/sound/nes_defs.h @@ -23,199 +23,139 @@ *****************************************************************************/ -#pragma once - -#ifndef __NES_DEFS_H__ -#define __NES_DEFS_H__ - -/* REGULAR TYPE DEFINITIONS */ -typedef int8_t int8; -typedef int16_t int16; -typedef int32_t int32; -typedef uint8_t uint8; -typedef uint16_t uint16; -typedef uint32_t uint32; +#ifndef MAME_SOUND_NES_DEFS_H +#define MAME_SOUND_NES_DEFS_H +#pragma once -/* QUEUE TYPES */ -#ifdef USE_QUEUE - -#define QUEUE_SIZE 0x2000 -#define QUEUE_MAX (QUEUE_SIZE-1) -struct queue_t +/* APU type */ +struct apu_t { - queue_t(): - pos(0), - reg(""),val("") {} + /* REGULAR TYPE DEFINITIONS */ + typedef int8_t int8; + typedef int16_t int16; + typedef int32_t int32; + typedef uint8_t uint8; + typedef uint16_t uint16; + typedef uint32_t uint32; - int pos; - unsigned char reg, val; -}; -#endif + /* CHANNEL TYPE DEFINITIONS */ -/* REGISTER DEFINITIONS */ -#define APU_WRA0 0x00 -#define APU_WRA1 0x01 -#define APU_WRA2 0x02 -#define APU_WRA3 0x03 -#define APU_WRB0 0x04 -#define APU_WRB1 0x05 -#define APU_WRB2 0x06 -#define APU_WRB3 0x07 -#define APU_WRC0 0x08 -#define APU_WRC2 0x0A -#define APU_WRC3 0x0B -#define APU_WRD0 0x0C -#define APU_WRD2 0x0E -#define APU_WRD3 0x0F -#define APU_WRE0 0x10 -#define APU_WRE1 0x11 -#define APU_WRE2 0x12 -#define APU_WRE3 0x13 -#define APU_SMASK 0x15 -#define APU_IRQCTRL 0x17 - -#define NOISE_LONG 0x4000 -#define NOISE_SHORT 93 - -/* CHANNEL TYPE DEFINITIONS */ - -/* Square Wave */ -struct square_t -{ + /* Square Wave */ + struct square_t + { square_t() { for (auto & elem : regs) - { elem = 0; - } - vbl_length =0; - freq = 0; - phaseacc = 0.0; - output_vol = 0.0; - env_phase = 0.0; - sweep_phase = 0.0; - adder = 0; - env_vol = 0; - enabled = false; } - uint8 regs[4]; - int vbl_length; - int freq; - float phaseacc; - float output_vol; - float env_phase; - float sweep_phase; - uint8 adder; - uint8 env_vol; - bool enabled; -}; - -/* Triangle Wave */ -struct triangle_t -{ + uint8 regs[4]; + int vbl_length = 0; + int freq = 0; + float phaseacc = 0.0; + float output_vol = 0.0; + float env_phase = 0.0; + float sweep_phase = 0.0; + uint8 adder = 0; + uint8 env_vol = 0; + bool enabled = false; + }; + + /* Triangle Wave */ + struct triangle_t + { triangle_t() { for (auto & elem : regs) - { elem = 0; - } - linear_length =0; - vbl_length =0; - write_latency = 0; - phaseacc = 0.0; - output_vol = 0.0; - adder = 0; - counter_started = false; - enabled = false; } - uint8 regs[4]; /* regs[1] unused */ - int linear_length; - int vbl_length; - int write_latency; - float phaseacc; - float output_vol; - uint8 adder; - bool counter_started; - bool enabled; -}; - -/* Noise Wave */ -struct noise_t -{ + uint8 regs[4]; /* regs[1] unused */ + int linear_length = 0; + int vbl_length = 0; + int write_latency = 0; + float phaseacc = 0.0; + float output_vol = 0.0; + uint8 adder = 0; + bool counter_started = false; + bool enabled = false; + }; + + /* Noise Wave */ + struct noise_t + { noise_t() { for (auto & elem : regs) - { elem = 0; - } - cur_pos =0; - vbl_length =0; - phaseacc = 0.0; - output_vol = 0.0; - env_phase = 0.0; - env_vol = 0; - enabled = false; } - uint8 regs[4]; /* regs[1] unused */ - int cur_pos; - int vbl_length; - float phaseacc; - float output_vol; - float env_phase; - uint8 env_vol; - bool enabled; -}; - -/* DPCM Wave */ -struct dpcm_t -{ + uint8 regs[4]; /* regs[1] unused */ + int cur_pos = 0; + int vbl_length = 0; + float phaseacc = 0.0; + float output_vol = 0.0; + float env_phase = 0.0; + uint8 env_vol = 0; + bool enabled = false; + }; + + /* DPCM Wave */ + struct dpcm_t + { dpcm_t() { - for (auto & elem : regs) - { - elem = 0; - } - address = 0; - length = 0; - bits_left = 0; - phaseacc = 0.0; - output_vol = 0.0; - cur_byte = 0; - enabled = false; - irq_occurred = false; - memory = nullptr; - vol = 0; + for (auto & elem : regs) + elem = 0; } - uint8 regs[4]; - uint32 address; - uint32 length; - int bits_left; - float phaseacc; - float output_vol; - uint8 cur_byte; - bool enabled; - bool irq_occurred; - address_space *memory; - signed char vol; -}; - -/* APU type */ -struct apu_t -{ - apu_t() - { + uint8 regs[4]; + uint32 address = 0; + uint32 length = 0; + int bits_left = 0; + float phaseacc = 0.0; + float output_vol = 0.0; + uint8 cur_byte = 0; + bool enabled = false; + bool irq_occurred = false; + address_space *memory = nullptr; + signed char vol = 0; + }; + + + /* REGISTER DEFINITIONS */ + static constexpr unsigned WRA0 = 0x00; + static constexpr unsigned WRA1 = 0x01; + static constexpr unsigned WRA2 = 0x02; + static constexpr unsigned WRA3 = 0x03; + static constexpr unsigned WRB0 = 0x04; + static constexpr unsigned WRB1 = 0x05; + static constexpr unsigned WRB2 = 0x06; + static constexpr unsigned WRB3 = 0x07; + static constexpr unsigned WRC0 = 0x08; + static constexpr unsigned WRC2 = 0x0A; + static constexpr unsigned WRC3 = 0x0B; + static constexpr unsigned WRD0 = 0x0C; + static constexpr unsigned WRD2 = 0x0E; + static constexpr unsigned WRD3 = 0x0F; + static constexpr unsigned WRE0 = 0x10; + static constexpr unsigned WRE1 = 0x11; + static constexpr unsigned WRE2 = 0x12; + static constexpr unsigned WRE3 = 0x13; + static constexpr unsigned SMASK = 0x15; + static constexpr unsigned IRQCTRL = 0x17; + + static constexpr unsigned NOISE_LONG = 0x4000; + static constexpr unsigned NOISE_SHORT = 93; + + + apu_t() + { memset(regs, 0, sizeof(regs)); - buffer = nullptr; - buf_pos = 0; - step_mode = 0; - } + } /* Sound channels */ square_t squ[2]; @@ -227,27 +167,38 @@ struct apu_t unsigned char regs[0x18]; /* Sound pointers */ - void *buffer; + void *buffer = nullptr; #ifdef USE_QUEUE + static constexpr unsigned QUEUE_SIZE = 0x2000; + static constexpr unsigned QUEUE_MAX = QUEUE_SIZE - 1; + + struct queue_t + { + queue_t() { } + + int pos = 0; + unsigned char reg = 0, val = 0; + }; + /* Event queue */ queue_t queue[QUEUE_SIZE]; int head, tail; #else - int buf_pos; + int buf_pos = 0; #endif - int step_mode; + int step_mode = 0; }; /* CONSTANTS */ /* vblank length table used for squares, triangle, noise */ -static const uint8 vbl_length[32] = +static const apu_t::uint8 vbl_length[32] = { 5, 127, 10, 1, 19, 2, 40, 3, 80, 4, 30, 5, 7, 6, 13, 7, 6, 8, 12, 9, 24, 10, 48, 11, 96, 12, 36, 13, 8, 14, 16, 15 @@ -278,4 +229,4 @@ static const int duty_lut[4] = 2, 4, 8, 12 }; -#endif /* __NES_DEFS_H__ */ +#endif // MAME_SOUND_NES_DEFS_H diff --git a/src/devices/sound/nile.cpp b/src/devices/sound/nile.cpp index 34b907fe686..2e28d2e4fac 100644 --- a/src/devices/sound/nile.cpp +++ b/src/devices/sound/nile.cpp @@ -50,10 +50,10 @@ enum }; -const device_type NILE = device_creator; +DEFINE_DEVICE_TYPE(NILE, nile_device, "nile", "Seta ST-0026 NiLe") nile_device::nile_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, NILE, "NiLe", tag, owner, clock, "nile", __FILE__), + : device_t(mconfig, NILE, tag, owner, clock), device_sound_interface(mconfig, *this), m_stream(nullptr), m_sound_ram(*this, DEVICE_SELF), diff --git a/src/devices/sound/nile.h b/src/devices/sound/nile.h index 20a4f6140a1..fdfead14ead 100644 --- a/src/devices/sound/nile.h +++ b/src/devices/sound/nile.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Tomasz Slanina -#pragma once +#ifndef MAME_SOUND_NILE_H +#define MAME_SOUND_NILE_H -#ifndef __NILE_H__ -#define __NILE_H__ +#pragma once //************************************************************************** @@ -20,8 +20,6 @@ // TYPE DEFINITIONS //************************************************************************** -#define NILE_VOICES 8 - // ======================> nile_device class nile_device : public device_t, @@ -29,7 +27,6 @@ class nile_device : public device_t, { public: nile_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~nile_device() { } protected: // device-level overrides @@ -45,6 +42,8 @@ public: DECLARE_READ16_MEMBER( nile_sndctrl_r ); private: + static constexpr unsigned NILE_VOICES = 8; + sound_stream *m_stream; required_region_ptr m_sound_ram; uint16_t m_sound_regs[0x80]; @@ -54,7 +53,6 @@ private: uint16_t m_ctrl; }; -extern const device_type NILE; - +DECLARE_DEVICE_TYPE(NILE, nile_device) -#endif /* __NILE_H__ */ +#endif // MAME_SOUND_NILE_H diff --git a/src/devices/sound/okiadpcm.h b/src/devices/sound/okiadpcm.h index 3c2dc91dcce..62ff8d9a5fc 100644 --- a/src/devices/sound/okiadpcm.h +++ b/src/devices/sound/okiadpcm.h @@ -8,10 +8,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_SOUND_OKIADPCM_H +#define MAME_SOUND_OKIADPCM_H -#ifndef __OKIADPCM_H__ -#define __OKIADPCM_H__ +#pragma once // ======================> oki_adpcm_state @@ -61,4 +61,4 @@ private: }; -#endif // __OKIADPCM_H__ +#endif // MAME_SOUND_OKIADPCM_H diff --git a/src/devices/sound/okim6258.cpp b/src/devices/sound/okim6258.cpp index e67a6bcb12e..ac82ea267d9 100644 --- a/src/devices/sound/okim6258.cpp +++ b/src/devices/sound/okim6258.cpp @@ -35,7 +35,7 @@ static int tables_computed = 0; // device type definition -const device_type OKIM6258 = device_creator; +DEFINE_DEVICE_TYPE(OKIM6258, okim6258_device, "okim6258", "OKI MSM6258 ADPCM") //************************************************************************** @@ -47,7 +47,7 @@ const device_type OKIM6258 = device_creator; //------------------------------------------------- okim6258_device::okim6258_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, OKIM6258, "OKI6258", tag, owner, clock, "okim6258", __FILE__), + : device_t(mconfig, OKIM6258, tag, owner, clock), device_sound_interface(mconfig, *this), m_status(0), m_master_clock(0), @@ -70,7 +70,7 @@ okim6258_device::okim6258_device(const machine_config &mconfig, const char *tag, ***********************************************************************************************/ -static void compute_tables(void) +static void compute_tables() { /* nibble to bit map */ static const int nbl2bit[16][4] = @@ -121,7 +121,7 @@ void okim6258_device::device_start() m_signal = -2; m_step = 0; - okim6258_state_save_register(); + state_save_register(); } @@ -186,7 +186,7 @@ void okim6258_device::sound_stream_update(sound_stream &stream, stream_sample_t ***********************************************************************************************/ -void okim6258_device::okim6258_state_save_register() +void okim6258_device::state_save_register() { save_item(NAME(m_status)); save_item(NAME(m_master_clock)); @@ -269,7 +269,7 @@ int okim6258_device::get_vclk() ***********************************************************************************************/ -READ8_MEMBER( okim6258_device::okim6258_status_r ) +READ8_MEMBER( okim6258_device::status_r ) { m_stream->update(); @@ -282,7 +282,7 @@ READ8_MEMBER( okim6258_device::okim6258_status_r ) okim6258_data_w -- write to the control port of an OKIM6258-compatible chip ***********************************************************************************************/ -WRITE8_MEMBER( okim6258_device::okim6258_data_w ) +WRITE8_MEMBER( okim6258_device::data_w ) { /* update the stream */ m_stream->update(); @@ -298,7 +298,7 @@ WRITE8_MEMBER( okim6258_device::okim6258_data_w ) ***********************************************************************************************/ -WRITE8_MEMBER( okim6258_device::okim6258_ctrl_w ) +WRITE8_MEMBER( okim6258_device::ctrl_w ) { m_stream->update(); diff --git a/src/devices/sound/okim6258.h b/src/devices/sound/okim6258.h index ad8985ad5cd..65313d8480d 100644 --- a/src/devices/sound/okim6258.h +++ b/src/devices/sound/okim6258.h @@ -1,38 +1,29 @@ // license:BSD-3-Clause // copyright-holders:Barry Rodewald -#pragma once - -#ifndef __OKIM6258_H__ -#define __OKIM6258_H__ - -#define FOSC_DIV_BY_1024 0 -#define FOSC_DIV_BY_768 1 -#define FOSC_DIV_BY_512 2 +#ifndef MAME_SOUND_OKIM6258_H +#define MAME_SOUND_OKIM6258_H -#define TYPE_3BITS 0 -#define TYPE_4BITS 1 - -#define OUTPUT_10BITS 10 -#define OUTPUT_12BITS 12 +#pragma once //************************************************************************** // INTERFACE CONFIGURATION MACROS //************************************************************************** -#define MCFG_OKIM6258_ADD(_tag, _clock) \ - MCFG_DEVICE_ADD(_tag, OKIM6258, _clock) -#define MCFG_OKIM6258_REPLACE(_tag, _clock) \ - MCFG_DEVICE_REPLACE(_tag, OKIM6258, _clock) +#define MCFG_OKIM6258_ADD(tag, clock) \ + MCFG_DEVICE_ADD((tag), OKIM6258, (clock)) + +#define MCFG_OKIM6258_REPLACE(tag, clock) \ + MCFG_DEVICE_REPLACE((tag), OKIM6258, (clock)) -#define MCFG_OKIM6258_DIVIDER(_div) \ - okim6258_device::set_start_div(*device, _div); +#define MCFG_OKIM6258_DIVIDER(div) \ + okim6258_device::set_start_div(*device, (okim6258_device::div)); -#define MCFG_OKIM6258_ADPCM_TYPE(_type) \ - okim6258_device::set_type(*device, _type); +#define MCFG_OKIM6258_ADPCM_TYPE(type) \ + okim6258_device::set_type(*device, (okim6258_device::type)); -#define MCFG_OKIM6258_OUT_BITS(_bits) \ - okim6258_device::set_outbits(*device, _bits); +#define MCFG_OKIM6258_OUT_BITS(bits) \ + okim6258_device::set_outbits(*device, (okim6258_device::bits)); //************************************************************************** @@ -45,14 +36,31 @@ class okim6258_device : public device_t, public device_sound_interface { public: + static constexpr int FOSC_DIV_BY_1024 = 0; + static constexpr int FOSC_DIV_BY_768 = 1; + static constexpr int FOSC_DIV_BY_512 = 2; + + static constexpr int TYPE_3BITS = 0; + static constexpr int TYPE_4BITS = 1; + + static constexpr int OUTPUT_10BITS = 10; + static constexpr int OUTPUT_12BITS = 12; + okim6258_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~okim6258_device() { } // static configuration static void set_start_div(device_t &device, int div) { downcast(device).m_start_divider = div; } static void set_type(device_t &device, int type) { downcast(device).m_adpcm_type = type; } static void set_outbits(device_t &device, int outbit) { downcast(device).m_output_bits = outbit; } + DECLARE_READ8_MEMBER( status_r ); + DECLARE_WRITE8_MEMBER( data_w ); + DECLARE_WRITE8_MEMBER( ctrl_w ); + + void set_divider(int val); + void set_clock(int val); + int get_vclk(); + protected: // device-level overrides virtual void device_start() override; @@ -61,21 +69,10 @@ protected: // sound stream update overrides virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; -public: - DECLARE_READ8_MEMBER( okim6258_status_r ); - DECLARE_WRITE8_MEMBER( okim6258_data_w ); - DECLARE_WRITE8_MEMBER( okim6258_ctrl_w ); - -public: - void set_divider(int val); - void set_clock(int val); - int get_vclk(); - private: - void okim6258_state_save_register(); + void state_save_register(); int16_t clock_adpcm(uint8_t nibble); -private: uint8_t m_status; uint32_t m_master_clock; /* master clock frequency */ @@ -93,7 +90,6 @@ private: int32_t m_step; }; -extern const device_type OKIM6258; - +DECLARE_DEVICE_TYPE(OKIM6258, okim6258_device) -#endif /* __OKIM6258_H__ */ +#endif // MAME_SOUND_OKIM6258_H diff --git a/src/devices/sound/okim6295.cpp b/src/devices/sound/okim6295.cpp index c7c49abf7b3..16eb4915462 100644 --- a/src/devices/sound/okim6295.cpp +++ b/src/devices/sound/okim6295.cpp @@ -46,7 +46,7 @@ //************************************************************************** // device type definition -const device_type OKIM6295 = device_creator; +DEFINE_DEVICE_TYPE(OKIM6295, okim6295_device, "okim6295", "OKI MSM6295 ADPCM") // volume lookup table. The manual lists only 9 steps, ~3dB per step. Given the dB values, // that seems to map to a 5-bit volume control. Any volume parameter beyond the 9th index @@ -81,7 +81,7 @@ const uint8_t okim6295_device::s_volume_table[16] = //------------------------------------------------- okim6295_device::okim6295_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, OKIM6295, "OKI6295", tag, owner, clock, "okim6295", __FILE__), + : device_t(mconfig, OKIM6295, tag, owner, clock), device_sound_interface(mconfig, *this), device_rom_interface(mconfig, *this, 18), m_region(*this, DEVICE_SELF), diff --git a/src/devices/sound/okim6295.h b/src/devices/sound/okim6295.h index 87310cedb29..8366bd7b272 100644 --- a/src/devices/sound/okim6295.h +++ b/src/devices/sound/okim6295.h @@ -8,41 +8,29 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_SOUND_OKIM6295_H +#define MAME_SOUND_OKIM6295_H -#ifndef __OKIM6295_H__ -#define __OKIM6295_H__ +#pragma once #include "sound/okiadpcm.h" -//************************************************************************** -// CONSTANTS -//************************************************************************** - -enum -{ - OKIM6295_PIN7_LOW = 0, - OKIM6295_PIN7_HIGH = 1 -}; - - - //************************************************************************** // INTERFACE CONFIGURATION MACROS //************************************************************************** -#define MCFG_OKIM6295_ADD(_tag, _clock, _pin7) \ - MCFG_DEVICE_ADD(_tag, OKIM6295, _clock) \ - MCFG_OKIM6295_PIN7(_pin7) +#define MCFG_OKIM6295_ADD(tag, clock, pin7) \ + MCFG_DEVICE_ADD((tag), OKIM6295, (clock)) \ + MCFG_OKIM6295_PIN7(pin7) -#define MCFG_OKIM6295_REPLACE(_tag, _clock, _pin7) \ - MCFG_DEVICE_REPLACE(_tag, OKIM6295, _clock) \ - MCFG_OKIM6295_PIN7(_pin7) +#define MCFG_OKIM6295_REPLACE(tag, clock, pin7) \ + MCFG_DEVICE_REPLACE((tag), OKIM6295, (clock)) \ + MCFG_OKIM6295_PIN7(pin7) -#define MCFG_OKIM6295_PIN7(_pin7) \ - okim6295_device::static_set_pin7(*device, _pin7); +#define MCFG_OKIM6295_PIN7(pin7) \ + okim6295_device::static_set_pin7(*device, (okim6295_device::pin7)); //************************************************************************** @@ -57,6 +45,12 @@ class okim6295_device : public device_t, public device_rom_interface { public: + enum + { + PIN7_LOW = 0, + PIN7_HIGH = 1 + }; + // construction/destruction okim6295_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); @@ -104,7 +98,7 @@ protected: optional_memory_region m_region; // internal state - static const int OKIM6295_VOICES = 4; + static constexpr int OKIM6295_VOICES = 4; okim_voice m_voice[OKIM6295_VOICES]; int32_t m_command; @@ -116,7 +110,7 @@ protected: // device type definition -extern const device_type OKIM6295; +DECLARE_DEVICE_TYPE(OKIM6295, okim6295_device) -#endif /* __OKIM6295_H__ */ +#endif // MAME_SOUND_OKIM6295_H diff --git a/src/devices/sound/okim6376.cpp b/src/devices/sound/okim6376.cpp index 1a852599529..17adf11b49f 100644 --- a/src/devices/sound/okim6376.cpp +++ b/src/devices/sound/okim6376.cpp @@ -20,7 +20,7 @@ //#define MAX_WORDS 111 #define OKIVERBOSE 0 -#define MSM6376LOG(x) do { if (OKIVERBOSE) logerror x; } while (0) +#define MSM6376LOG(...) do { if (OKIVERBOSE) logerror(__VA_ARGS__); } while (0) /* step size index shift table */ static const int index_shift[8] = { -1, -1, -1, -1, 2, 4, 6, 8 }; @@ -57,7 +57,7 @@ static int tables_computed = 0; ***********************************************************************************************/ -static void compute_tables(void) +static void compute_tables() { /* nibble to bit map */ static const int nbl2bit[16][4] = @@ -98,22 +98,22 @@ static void compute_tables(void) ***********************************************************************************************/ -static void reset_adpcm(struct ADPCMVoice *voice) +void okim6376_device::ADPCMVoice::reset() { /* make sure we have our tables */ if (!tables_computed) compute_tables(); /* reset the signal/step */ - voice->signal = -2; - voice->step = 0; + signal = -2; + step = 0; } -const device_type OKIM6376 = device_creator; +DEFINE_DEVICE_TYPE(OKIM6376, okim6376_device, "okim6376", "OKI MSM6376 ADPCM") okim6376_device::okim6376_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, OKIM6376, "OKI6376", tag, owner, clock, "okim6376", __FILE__), + : device_t(mconfig, OKIM6376, tag, owner, clock), device_sound_interface(mconfig, *this), m_region_base(*this, DEVICE_SELF), //m_command[OKIM6376_VOICES], @@ -166,7 +166,7 @@ void okim6376_device::device_start() { /* initialize the rest of the structure */ m_voice[voice].volume = 0; - reset_adpcm(&m_voice[voice]); + m_voice[voice].reset(); } okim6376_state_save_register(); @@ -192,25 +192,25 @@ void okim6376_device::device_reset() ***********************************************************************************************/ -static int16_t clock_adpcm(struct ADPCMVoice *voice, uint8_t nibble) +int16_t okim6376_device::ADPCMVoice::clock(uint8_t nibble) { - voice->signal += diff_lookup[voice->step * 16 + (nibble & 15)]; + signal += diff_lookup[step * 16 + (nibble & 15)]; /* clamp to the maximum 12bit */ - if (voice->signal > 2047) - voice->signal = 2047; - else if (voice->signal < -2048) - voice->signal = -2048; + if (signal > 2047) + signal = 2047; + else if (signal < -2048) + signal = -2048; /* adjust the step size and clamp */ - voice->step += index_shift[nibble & 7]; - if (voice->step > 48) - voice->step = 48; - else if (voice->step < 0) - voice->step = 0; + step += index_shift[nibble & 7]; + if (step > 48) + step = 48; + else if (step < 0) + step = 0; /* return the signal */ - return voice->signal; + return signal; } @@ -248,7 +248,7 @@ void okim6376_device::oki_process(int channel, int command) voice->count = 0; /* also reset the ADPCM parameters */ - reset_adpcm(voice); + voice->reset(); if (channel == 0) { /* We set channel 2's audio separately */ @@ -327,7 +327,7 @@ void okim6376_device::generate_adpcm(struct ADPCMVoice *voice, int16_t *buffer, /* output to the buffer, scaling by the volume */ /* signal in range -4096..4095, volume in range 2..16 => signal * volume / 2 in range -32768..32767 */ - *buffer++ = clock_adpcm(voice, nibble) * voice->volume / 2; + *buffer++ = voice->clock(nibble) * voice->volume / 2; ++sample; --count; @@ -429,14 +429,14 @@ READ_LINE_MEMBER( okim6376_device::busy_r ) READ_LINE_MEMBER( okim6376_device::nar_r ) { - MSM6376LOG(("OKIM6376:'%s' NAR %x\n",tag(),m_nar)); + MSM6376LOG("OKIM6376: NAR %x\n",m_nar); return m_nar; } WRITE_LINE_MEMBER( okim6376_device::ch2_w ) { m_ch2_update = 0;//Clear flag - MSM6376LOG(("OKIM6376:'%s' CH2 %x\n",tag(),state)); + MSM6376LOG("OKIM6376: CH2 %x\n",state); if (m_ch2 != state) { @@ -449,7 +449,7 @@ WRITE_LINE_MEMBER( okim6376_device::ch2_w ) struct ADPCMVoice *voice0 = &m_voice[0]; struct ADPCMVoice *voice1 = &m_voice[1]; // We set to channel 2 - MSM6376LOG(("OKIM6376:'%s' Channel 1\n",tag())); + MSM6376LOG("OKIM6376: Channel 1\n"); m_channel = 1; if ((voice0->playing)&&(m_st)) @@ -464,7 +464,7 @@ WRITE_LINE_MEMBER( okim6376_device::ch2_w ) { m_stage[1]=0; oki_process(1, m_command[1]); - MSM6376LOG(("OKIM6376:'%s' Channel 0\n",tag())); + MSM6376LOG("OKIM6376: Channel 0\n"); m_channel = 0; } } @@ -475,7 +475,7 @@ WRITE_LINE_MEMBER( okim6376_device::st_w ) //As in STart, presumably, this triggers everything m_st_update = 0;//Clear flag - MSM6376LOG(("OKIM6376:'%s' ST %x\n",tag(),state)); + MSM6376LOG("OKIM6376: ST %x\n",state); if (m_st != state) { @@ -487,7 +487,7 @@ WRITE_LINE_MEMBER( okim6376_device::st_w ) struct ADPCMVoice *voice = &m_voice[m_channel]; { m_st_pulses ++; - MSM6376LOG(("OKIM6376:'%s' ST pulses %x\n",tag(),m_st_pulses)); + MSM6376LOG("OKIM6376: ST pulses %x\n",m_st_pulses); if (m_st_pulses > 3) { m_st_pulses = 3; //undocumented behaviour beyond 3 pulses diff --git a/src/devices/sound/okim6376.h b/src/devices/sound/okim6376.h index af2c8f3494f..7fe83bbf5a5 100644 --- a/src/devices/sound/okim6376.h +++ b/src/devices/sound/okim6376.h @@ -1,32 +1,17 @@ // license:BSD-3-Clause // copyright-holders:Mirko Buffoni, James Wallace -#pragma once +#ifndef MAME_SOUND_OKIM6376_H +#define MAME_SOUND_OKIM6376_H -#ifndef __OKIM6376_H__ -#define __OKIM6376_H__ +#pragma once /* an interface for the OKIM6376 and similar chips (CPU interface only) */ -/* struct describing a single playing ADPCM voice */ -struct ADPCMVoice -{ - uint8_t playing; /* 1 if we are actively playing */ - - uint32_t base_offset; /* pointer to the base memory location */ - uint32_t sample; /* current sample number */ - uint32_t count; /* total samples to play */ - - uint32_t volume; /* output volume */ - int32_t signal; - int32_t step; -}; - class okim6376_device : public device_t, public device_sound_interface { public: okim6376_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~okim6376_device() {} DECLARE_WRITE8_MEMBER( write ); @@ -38,7 +23,6 @@ public: void set_frequency(int frequency); - protected: // device-level overrides virtual void device_start() override; @@ -48,10 +32,27 @@ protected: virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; private: + /* struct describing a single playing ADPCM voice */ + struct ADPCMVoice + { + uint8_t playing; /* 1 if we are actively playing */ + + uint32_t base_offset; /* pointer to the base memory location */ + uint32_t sample; /* current sample number */ + uint32_t count; /* total samples to play */ + + uint32_t volume; /* output volume */ + int32_t signal; + int32_t step; + + void reset(); + int16_t clock(uint8_t nibble); + }; + // internal state required_region_ptr m_region_base; /* pointer to the base of the region */ - #define OKIM6376_VOICES 2 + static constexpr unsigned OKIM6376_VOICES = 2; struct ADPCMVoice m_voice[OKIM6376_VOICES]; int32_t m_command[OKIM6376_VOICES]; int32_t m_latch; /* Command data is held before transferring to either channel */ @@ -76,6 +77,6 @@ private: void adpcm_state_save_register(struct ADPCMVoice *voice, int index); }; -extern const device_type OKIM6376; +DECLARE_DEVICE_TYPE(OKIM6376, okim6376_device) -#endif /* __OKIM6376_H__ */ +#endif // MAME_SOUND_OKIM6376_H diff --git a/src/devices/sound/okim9810.cpp b/src/devices/sound/okim9810.cpp index 35ce795d877..369d3f6ac5b 100644 --- a/src/devices/sound/okim9810.cpp +++ b/src/devices/sound/okim9810.cpp @@ -17,7 +17,7 @@ //************************************************************************** // device type definition -const device_type OKIM9810 = device_creator; +DEFINE_DEVICE_TYPE(OKIM9810, okim9810_device, "okim9810", "OKI MSM9810 ADPCM") // volume lookup table. The manual lists a full 16 steps, 2dB per step. // Given the dB values, that seems to map to a 7-bit volume control. @@ -73,14 +73,14 @@ const uint32_t okim9810_device::s_sampling_freq_table[16] = //------------------------------------------------- okim9810_device::okim9810_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, OKIM9810, "OKI9810", tag, owner, clock, "okim9810", __FILE__), + : device_t(mconfig, OKIM9810, tag, owner, clock), device_sound_interface(mconfig, *this), device_rom_interface(mconfig, *this, 24), m_stream(nullptr), m_TMP_register(0x00), m_global_volume(0x00), - m_filter_type(OKIM9810_SECONDARY_FILTER), - m_output_level(OKIM9810_OUTPUT_TO_DIRECT_DAC) + m_filter_type(SECONDARY_FILTER), + m_output_level(OUTPUT_TO_DIRECT_DAC) { } @@ -340,8 +340,8 @@ void okim9810_device::write_command(uint8_t data) m_voice[channel].m_playbackAlgo = (startFlags & 0x30) >> 4; m_voice[channel].m_samplingFreq = s_sampling_freq_table[startFlags & 0x0f]; - if (m_voice[channel].m_playbackAlgo == OKIM9810_ADPCM_PLAYBACK || - m_voice[channel].m_playbackAlgo == OKIM9810_ADPCM2_PLAYBACK) + if (m_voice[channel].m_playbackAlgo == ADPCM_PLAYBACK || + m_voice[channel].m_playbackAlgo == ADPCM2_PLAYBACK) m_voice[channel].m_count *= 2; else osd_printf_warning("MSM9810: UNIMPLEMENTED PLAYBACK METHOD %d\n", m_voice[channel].m_playbackAlgo); @@ -394,14 +394,14 @@ WRITE8_MEMBER( okim9810_device::write ) //----------------------------------------------------------- // TMP is written when the CMD pin is high -void okim9810_device::write_TMP_register(uint8_t data) +void okim9810_device::write_tmp_register(uint8_t data) { m_TMP_register = data; } -WRITE8_MEMBER( okim9810_device::write_TMP_register ) +WRITE8_MEMBER( okim9810_device::write_tmp_register ) { - write_TMP_register(data); + write_tmp_register(data); } @@ -414,7 +414,7 @@ WRITE8_MEMBER( okim9810_device::write_TMP_register ) //------------------------------------------------- okim9810_device::okim_voice::okim_voice() - : m_playbackAlgo(OKIM9810_ADPCM2_PLAYBACK), + : m_playbackAlgo(ADPCM2_PLAYBACK), m_looping(false), m_startFlags(0), m_endFlags(0), @@ -472,13 +472,13 @@ void okim9810_device::okim_voice::generate_audio(device_rom_interface &rom, int nibble0 = rom.read_byte(m_base_offset + m_sample / 2) >> (((m_sample & 1) << 2) ^ 4); switch (m_playbackAlgo) { - case OKIM9810_ADPCM_PLAYBACK: + case ADPCM_PLAYBACK: { m_adpcm.reset(); m_startSample = (int32_t)m_adpcm.clock(nibble0); break; } - case OKIM9810_ADPCM2_PLAYBACK: + case ADPCM2_PLAYBACK: { m_adpcm2.reset(); m_startSample = (int32_t)m_adpcm2.clock(nibble0); @@ -498,12 +498,12 @@ void okim9810_device::okim_voice::generate_audio(device_rom_interface &rom, int nibble1 = rom.read_byte(m_base_offset + (m_sample+1) / 2) >> ((((m_sample+1) & 1) << 2) ^ 4); switch (m_playbackAlgo) { - case OKIM9810_ADPCM_PLAYBACK: + case ADPCM_PLAYBACK: { m_endSample = (int32_t)m_adpcm.clock(nibble1); break; } - case OKIM9810_ADPCM2_PLAYBACK: + case ADPCM2_PLAYBACK: { m_endSample = (int32_t)m_adpcm2.clock(nibble1); break; @@ -518,7 +518,7 @@ void okim9810_device::okim_voice::generate_audio(device_rom_interface &rom, int32_t interpValue = (int32_t)((float)m_startSample + (((float)m_endSample-(float)m_startSample) * progress)); // if filtering is unwanted - if (filter_type != OKIM9810_SECONDARY_FILTER && filter_type != OKIM9810_PRIMARY_FILTER) + if (filter_type != SECONDARY_FILTER && filter_type != PRIMARY_FILTER) interpValue = m_startSample; // output to the stereo buffers, scaling by the volume diff --git a/src/devices/sound/okim9810.h b/src/devices/sound/okim9810.h index 61dd46b779f..f1a025a8577 100644 --- a/src/devices/sound/okim9810.h +++ b/src/devices/sound/okim9810.h @@ -12,10 +12,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_SOUND_OKIM9810_H +#define MAME_SOUND_OKIM9810_H -#ifndef __OKIM9810_H__ -#define __OKIM9810_H__ +#pragma once #include "okiadpcm.h" @@ -24,29 +24,6 @@ // CONSTANTS //************************************************************************** -enum -{ - OKIM9810_ADPCM_PLAYBACK = 0, - OKIM9810_ADPCM2_PLAYBACK = 1, - OKIM9810_STRAIGHT8_PLAYBACK = 2, - OKIM9810_NONLINEAR8_PLAYBACK = 3 -}; - -enum -{ - OKIM9810_SECONDARY_FILTER = 0, - OKIM9810_PRIMARY_FILTER = 1, - OKIM9810_NO_FILTER = 2, - OKIM9810_NO_FILTER2 = 3 -}; - -enum -{ - OKIM9810_OUTPUT_TO_DIRECT_DAC = 0, - OKIM9810_OUTPUT_TO_VOLTAGE_FOLLOWER = 1 -}; - - //************************************************************************** // INTERFACE CONFIGURATION MACROS //************************************************************************** @@ -75,14 +52,36 @@ public: okim9810_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); uint8_t read_status(); - void write_TMP_register(uint8_t command); + void write_tmp_register(uint8_t command); void write_command(uint8_t command); DECLARE_READ8_MEMBER( read ); DECLARE_WRITE8_MEMBER( write ); - DECLARE_WRITE8_MEMBER( write_TMP_register ); + DECLARE_WRITE8_MEMBER( write_tmp_register ); protected: + enum + { + ADPCM_PLAYBACK = 0, + ADPCM2_PLAYBACK = 1, + STRAIGHT8_PLAYBACK = 2, + NONLINEAR8_PLAYBACK = 3 + }; + + enum + { + SECONDARY_FILTER = 0, + PRIMARY_FILTER = 1, + NO_FILTER = 2, + NO_FILTER2 = 3 + }; + + enum + { + OUTPUT_TO_DIRECT_DAC = 0, + OUTPUT_TO_VOLTAGE_FOLLOWER = 1 + }; + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -146,7 +145,7 @@ protected: uint8_t m_filter_type; // interpolation filter type set with the OPT command uint8_t m_output_level; // flag stating if a voltage follower is connected - static const int OKIM9810_VOICES = 8; + static constexpr int OKIM9810_VOICES = 8; okim_voice m_voice[OKIM9810_VOICES]; static const uint32_t s_sampling_freq_table[16]; @@ -154,8 +153,6 @@ protected: // device type definition -extern const device_type OKIM9810; - - +DECLARE_DEVICE_TYPE(OKIM9810, okim9810_device) -#endif // __OKIM9810_H__ +#endif // MAME_SOUND_OKIM9810_H diff --git a/src/devices/sound/pcd3311.cpp b/src/devices/sound/pcd3311.cpp index b2ab6fc8130..d332caa3400 100644 --- a/src/devices/sound/pcd3311.cpp +++ b/src/devices/sound/pcd3311.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type PCD3311 = device_creator; +DEFINE_DEVICE_TYPE(PCD3311, pcd3311_device, "pcd3311", "PCD3311") @@ -24,11 +24,11 @@ const device_type PCD3311 = device_creator; //************************************************************************** //------------------------------------------------- -// pcd3311_t - constructor +// pcd3311_device - constructor //------------------------------------------------- -pcd3311_t::pcd3311_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, PCD3311, "PCD3311", tag, owner, clock, "pcd3311", __FILE__), +pcd3311_device::pcd3311_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, PCD3311, tag, owner, clock), device_sound_interface(mconfig, *this) { } @@ -38,7 +38,7 @@ pcd3311_t::pcd3311_t(const machine_config &mconfig, const char *tag, device_t *o // device_start - device-specific startup //------------------------------------------------- -void pcd3311_t::device_start() +void pcd3311_device::device_start() { save_item(NAME(m_a0)); save_item(NAME(m_mode)); @@ -52,6 +52,6 @@ void pcd3311_t::device_start() // our sound stream //------------------------------------------------- -void pcd3311_t::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) +void pcd3311_device::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) { } diff --git a/src/devices/sound/pcd3311.h b/src/devices/sound/pcd3311.h index 00e2fdc8eb9..9abb61f8c21 100644 --- a/src/devices/sound/pcd3311.h +++ b/src/devices/sound/pcd3311.h @@ -17,10 +17,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_SOUND_PCD3311_H +#define MAME_SOUND_PCD3311_H -#ifndef __PCD3311__ -#define __PCD3311__ +#pragma once @@ -29,14 +29,14 @@ // TYPE DEFINITIONS //************************************************************************** -// ======================> pcd3311_t +// ======================> pcd3311_device -class pcd3311_t : public device_t, +class pcd3311_device : public device_t, public device_sound_interface { public: // construction/destruction - pcd3311_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + pcd3311_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); DECLARE_WRITE8_MEMBER( write ) { m_data = data; } DECLARE_WRITE_LINE_MEMBER( strobe_w ) { m_strobe = state; } @@ -59,8 +59,6 @@ private: // device type definition -extern const device_type PCD3311; - - +DECLARE_DEVICE_TYPE(PCD3311, pcd3311_device) -#endif +#endif // MAME_SOUND_PCD3311_H diff --git a/src/devices/sound/pci-ac97.cpp b/src/devices/sound/pci-ac97.cpp index b263c50b803..daee927bc6b 100644 --- a/src/devices/sound/pci-ac97.cpp +++ b/src/devices/sound/pci-ac97.cpp @@ -3,7 +3,7 @@ #include "emu.h" #include "pci-ac97.h" -const device_type AC97 = device_creator; +DEFINE_DEVICE_TYPE(AC97, ac97_device, "ac97", "AC'97 Audio") DEVICE_ADDRESS_MAP_START(native_audio_mixer_map, 32, ac97_device) ADDRESS_MAP_END @@ -18,7 +18,7 @@ DEVICE_ADDRESS_MAP_START(bus_mastering_map, 32, ac97_device) ADDRESS_MAP_END ac97_device::ac97_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : pci_device(mconfig, AC97, "AC97 audio", tag, owner, clock, "ac97", __FILE__) + : pci_device(mconfig, AC97, tag, owner, clock) { } diff --git a/src/devices/sound/pci-ac97.h b/src/devices/sound/pci-ac97.h index 00cddfd29ef..0f88f10f338 100644 --- a/src/devices/sound/pci-ac97.h +++ b/src/devices/sound/pci-ac97.h @@ -1,12 +1,14 @@ // license:BSD-3-Clause // copyright-holders:Olivier Galibert -#ifndef PCI_AC97_H -#define PCI_AC97_H +#ifndef MAME_SOUND_PCI_AC97_H +#define MAME_SOUND_PCI_AC97_H + +#pragma once #include "machine/pci.h" #define MCFG_AC97_ADD(_tag, _main_id, _revision, _subdevice_id) \ - MCFG_PCI_DEVICE_ADD(_tag, AC97, _main_id, _revision, 0x040300, _subdevice_id) + MCFG_PCI_DEVICE_ADD(_tag, AC97, _main_id, _revision, 0x040300, _subdevice_id) class ac97_device : public pci_device { public: @@ -23,6 +25,6 @@ private: DECLARE_ADDRESS_MAP(bus_mastering_map, 32); }; -extern const device_type AC97; +DECLARE_DEVICE_TYPE(AC97, ac97_device) -#endif +#endif // MAME_SOUND_PCI_AC97_H diff --git a/src/devices/sound/pokey.cpp b/src/devices/sound/pokey.cpp index 61cd505a28e..adb4fe8dd42 100644 --- a/src/devices/sound/pokey.cpp +++ b/src/devices/sound/pokey.cpp @@ -167,7 +167,7 @@ static const int clock_divisors[3] = {1, DIV_64, DIV_15}; // device type definition -const device_type POKEY = device_creator; +DEFINE_DEVICE_TYPE(POKEY, pokey_device, "pokey", "Atari C012294 POKEY") //************************************************************************** // LIVE DEVICE @@ -178,21 +178,14 @@ const device_type POKEY = device_creator; //------------------------------------------------- pokey_device::pokey_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, POKEY, "POKEY", tag, owner, clock, "pokey", __FILE__), + : device_t(mconfig, POKEY, tag, owner, clock), device_sound_interface(mconfig, *this), device_execute_interface(mconfig, *this), device_state_interface(mconfig, *this), m_output_type(LEGACY_LINEAR), m_icount(0), m_stream(nullptr), - m_pot0_r_cb(*this), - m_pot1_r_cb(*this), - m_pot2_r_cb(*this), - m_pot3_r_cb(*this), - m_pot4_r_cb(*this), - m_pot5_r_cb(*this), - m_pot6_r_cb(*this), - m_pot7_r_cb(*this), + m_pot_r_cb{ {*this}, {*this}, {*this}, {*this}, {*this}, {*this}, {*this}, {*this} }, m_allpot_r_cb(*this), m_serin_r_cb(*this), m_serout_w_cb(*this) @@ -275,14 +268,8 @@ void pokey_device::device_start() m_POTx[i] = 0; } - m_pot0_r_cb.resolve(); - m_pot1_r_cb.resolve(); - m_pot2_r_cb.resolve(); - m_pot3_r_cb.resolve(); - m_pot4_r_cb.resolve(); - m_pot5_r_cb.resolve(); - m_pot6_r_cb.resolve(); - m_pot7_r_cb.resolve(); + for (devcb_read8 &cb : m_pot_r_cb) + cb.resolve(); m_allpot_r_cb.resolve(); m_serin_r_cb.resolve(); m_serout_w_cb.resolve_safe(); @@ -1113,184 +1100,25 @@ void pokey_device::pokey_potgo(void) for( pot = 0; pot < 8; pot++ ) { m_POTx[pot] = 228; - switch (pot) + if( !m_pot_r_cb[pot].isnull() ) { - case 0: - if( !m_pot0_r_cb.isnull() ) - { - int r = m_pot0_r_cb(pot); - - LOG(("POKEY %s pot_r(%d) returned $%02x\n", tag(), pot, r)); - if (r >= 228) - { - r = 228; - } - if (r == 0) - { - /* immediately set the ready - bit of m_ALLPOT - * In this case, most likely no capacitor is connected - */ - m_ALLPOT |= (1<= 228) - { - r = 228; - } - if (r == 0) - { - /* immediately set the ready - bit of m_ALLPOT - * In this case, most likely no capacitor is connected - */ - m_ALLPOT |= (1<= 228) - { - r = 228; - } - if (r == 0) - { - /* immediately set the ready - bit of m_ALLPOT - * In this case, most likely no capacitor is connected - */ - m_ALLPOT |= (1<= 228) - { - r = 228; - } - if (r == 0) - { - /* immediately set the ready - bit of m_ALLPOT - * In this case, most likely no capacitor is connected - */ - m_ALLPOT |= (1<= 228) - { - r = 228; - } - if (r == 0) - { - /* immediately set the ready - bit of m_ALLPOT - * In this case, most likely no capacitor is connected - */ - m_ALLPOT |= (1<= 228) - { - r = 228; - } - if (r == 0) - { - /* immediately set the ready - bit of m_ALLPOT - * In this case, most likely no capacitor is connected - */ - m_ALLPOT |= (1<= 228) - { - r = 228; - } - if (r == 0) - { - /* immediately set the ready - bit of m_ALLPOT - * In this case, most likely no capacitor is connected - */ - m_ALLPOT |= (1<= 228) - { - r = 228; - } - if (r == 0) - { - /* immediately set the ready - bit of m_ALLPOT - * In this case, most likely no capacitor is connected - */ - m_ALLPOT |= (1<= 228) + { + r = 228; + } + if (r == 0) + { + /* immediately set the ready - bit of m_ALLPOT + * In this case, most likely no capacitor is connected + */ + m_ALLPOT |= (1< pokey_kb_cb_delegate; -typedef device_delegate pokey_int_cb_delegate; - #define POKEY_KEYBOARD_CB_MEMBER(_name) uint8_t _name(uint8_t k543210) #define POKEY_INTERRUPT_CB_MEMBER(_name) void _name(int mask) @@ -67,28 +59,28 @@ typedef device_delegate pokey_int_cb_delegate; //************************************************************************** #define MCFG_POKEY_POT0_R_CB(_devcb) \ - devcb = &pokey_device::set_pot0_r_callback(*device, DEVCB_##_devcb); + devcb = &pokey_device::set_pot_r_callback<0>(*device, DEVCB_##_devcb); #define MCFG_POKEY_POT1_R_CB(_devcb) \ - devcb = &pokey_device::set_pot1_r_callback(*device, DEVCB_##_devcb); + devcb = &pokey_device::set_pot_r_callback<1>(*device, DEVCB_##_devcb); #define MCFG_POKEY_POT2_R_CB(_devcb) \ - devcb = &pokey_device::set_pot2_r_callback(*device, DEVCB_##_devcb); + devcb = &pokey_device::set_pot_r_callback<2>(*device, DEVCB_##_devcb); #define MCFG_POKEY_POT3_R_CB(_devcb) \ - devcb = &pokey_device::set_pot3_r_callback(*device, DEVCB_##_devcb); + devcb = &pokey_device::set_pot_r_callback<3>(*device, DEVCB_##_devcb); #define MCFG_POKEY_POT4_R_CB(_devcb) \ - devcb = &pokey_device::set_pot4_r_callback(*device, DEVCB_##_devcb); + devcb = &pokey_device::set_pot_r_callback<4>(*device, DEVCB_##_devcb); #define MCFG_POKEY_POT5_R_CB(_devcb) \ - devcb = &pokey_device::set_pot5_r_callback(*device, DEVCB_##_devcb); + devcb = &pokey_device::set_pot_r_callback<5>(*device, DEVCB_##_devcb); #define MCFG_POKEY_POT6_R_CB(_devcb) \ - devcb = &pokey_device::set_pot6_r_callback(*device, DEVCB_##_devcb); + devcb = &pokey_device::set_pot_r_callback<6>(*device, DEVCB_##_devcb); #define MCFG_POKEY_POT7_R_CB(_devcb) \ - devcb = &pokey_device::set_pot7_r_callback(*device, DEVCB_##_devcb); + devcb = &pokey_device::set_pot_r_callback<7>(*device, DEVCB_##_devcb); #define MCFG_POKEY_ALLPOT_R_CB(_devcb) \ devcb = &pokey_device::set_allpot_r_callback(*device, DEVCB_##_devcb); @@ -102,10 +94,10 @@ typedef device_delegate pokey_int_cb_delegate; /* k543210 = k5 ... k0 returns bit0: kr1, bit1: kr2 */ /* all are, in contrast to actual hardware, ACTIVE_HIGH */ #define MCFG_POKEY_KEYBOARD_CB(_class, _method) \ - pokey_device::set_keyboard_callback(*device, pokey_kb_cb_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); + pokey_device::set_keyboard_callback(*device, pokey_device::kb_cb_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); #define MCFG_POKEY_INTERRUPT_CB(_class, _method) \ - pokey_device::set_interrupt_callback(*device, pokey_int_cb_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); + pokey_device::set_interrupt_callback(*device, pokey_device::int_cb_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); #define MCFG_POKEY_OUTPUT_RC(_R, _C, _V) \ @@ -144,6 +136,14 @@ class pokey_device : public device_t, { public: + typedef device_delegate kb_cb_delegate; + typedef device_delegate int_cb_delegate; + + /* CONSTANT DEFINITIONS */ + + /* exact 1.79 MHz clock freq (of the Atari 800 that is) */ + static constexpr unsigned FREQ_17_EXACT = 1789790; + enum { POK_KEY_BREAK = 0x30, @@ -210,20 +210,13 @@ public: // construction/destruction pokey_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_pot0_r_callback(device_t &device, _Object object) { return downcast(device).m_pot0_r_cb.set_callback(object); } - template static devcb_base &set_pot1_r_callback(device_t &device, _Object object) { return downcast(device).m_pot1_r_cb.set_callback(object); } - template static devcb_base &set_pot2_r_callback(device_t &device, _Object object) { return downcast(device).m_pot2_r_cb.set_callback(object); } - template static devcb_base &set_pot3_r_callback(device_t &device, _Object object) { return downcast(device).m_pot3_r_cb.set_callback(object); } - template static devcb_base &set_pot4_r_callback(device_t &device, _Object object) { return downcast(device).m_pot4_r_cb.set_callback(object); } - template static devcb_base &set_pot5_r_callback(device_t &device, _Object object) { return downcast(device).m_pot5_r_cb.set_callback(object); } - template static devcb_base &set_pot6_r_callback(device_t &device, _Object object) { return downcast(device).m_pot6_r_cb.set_callback(object); } - template static devcb_base &set_pot7_r_callback(device_t &device, _Object object) { return downcast(device).m_pot7_r_cb.set_callback(object); } - template static devcb_base &set_allpot_r_callback(device_t &device, _Object object) { return downcast(device).m_allpot_r_cb.set_callback(object); } - template static devcb_base &set_serin_r_callback(device_t &device, _Object object) { return downcast(device).m_serin_r_cb.set_callback(object); } - template static devcb_base &set_serout_w_callback(device_t &device, _Object object) { return downcast(device).m_serout_w_cb.set_callback(object); } - - static void set_keyboard_callback(device_t &device, pokey_kb_cb_delegate callback) { downcast(device).m_keyboard_r = callback; } - static void set_interrupt_callback(device_t &device, pokey_int_cb_delegate callback) { downcast(device).m_irq_f = callback; } + template static devcb_base &set_pot_r_callback(device_t &device, Object &&cb) { return downcast(device).m_pot_r_cb[N].set_callback(std::forward(cb)); } + template static devcb_base &set_allpot_r_callback(device_t &device, Object &&cb) { return downcast(device).m_allpot_r_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_serin_r_callback(device_t &device, Object &&cb) { return downcast(device).m_serin_r_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_serout_w_callback(device_t &device, Object &&cb) { return downcast(device).m_serout_w_cb.set_callback(std::forward(cb)); } + + static void set_keyboard_callback(device_t &device, kb_cb_delegate &&cb) { downcast(device).m_keyboard_r = std::move(cb); } + static void set_interrupt_callback(device_t &device, int_cb_delegate &&cb) { downcast(device).m_irq_f = std::move(cb); } DECLARE_READ8_MEMBER( read ); DECLARE_WRITE8_MEMBER( write ); @@ -260,7 +253,6 @@ protected: private: - class pokey_channel { public: @@ -303,7 +295,7 @@ private: } }; - static const int POKEY_CHANNELS = 4; + static constexpr int POKEY_CHANNELS = 4; uint32_t step_one_clock(); void step_keyboard(); @@ -334,20 +326,13 @@ private: uint32_t m_p9; /* poly9 index */ uint32_t m_p17; /* poly17 index */ - devcb_read8 m_pot0_r_cb; - devcb_read8 m_pot1_r_cb; - devcb_read8 m_pot2_r_cb; - devcb_read8 m_pot3_r_cb; - devcb_read8 m_pot4_r_cb; - devcb_read8 m_pot5_r_cb; - devcb_read8 m_pot6_r_cb; - devcb_read8 m_pot7_r_cb; + devcb_read8 m_pot_r_cb[8]; devcb_read8 m_allpot_r_cb; devcb_read8 m_serin_r_cb; devcb_write8 m_serout_w_cb; - pokey_kb_cb_delegate m_keyboard_r; - pokey_int_cb_delegate m_irq_f; + kb_cb_delegate m_keyboard_r; + int_cb_delegate m_irq_f; uint8_t m_POTx[8]; /* POTx (R/D200-D207) */ uint8_t m_AUDCTL; /* AUDCTL (W/D208) */ @@ -376,6 +361,6 @@ private: // device type definition -extern const device_type POKEY; +DECLARE_DEVICE_TYPE(POKEY, pokey_device) -#endif /* __POKEY_H__ */ +#endif // MAME_SOUND_POKEY_H diff --git a/src/devices/sound/qs1000.cpp b/src/devices/sound/qs1000.cpp index c34171e39c6..f5b365451be 100644 --- a/src/devices/sound/qs1000.cpp +++ b/src/devices/sound/qs1000.cpp @@ -131,7 +131,7 @@ // device type definition -const device_type QS1000 = device_creator; +DEFINE_DEVICE_TYPE(QS1000, qs1000_device, "qs1000", "QS1000") //************************************************************************** // GLOBAL VARIABLES @@ -175,7 +175,7 @@ ROM_END // qs1000_device - constructor //------------------------------------------------- qs1000_device::qs1000_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, QS1000, "QS1000", tag, owner, clock, "qs1000", __FILE__), + : device_t(mconfig, QS1000, tag, owner, clock), device_sound_interface(mconfig, *this), device_rom_interface(mconfig, *this, 24), m_external_rom(false), diff --git a/src/devices/sound/qs1000.h b/src/devices/sound/qs1000.h index b7f2f07b45e..16201ea2424 100644 --- a/src/devices/sound/qs1000.h +++ b/src/devices/sound/qs1000.h @@ -8,10 +8,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_SOUND_QS1000_H +#define MAME_SOUND_QS1000_H -#ifndef __QS1000_H__ -#define __QS1000_H__ +#pragma once #include "cpu/mcs51/mcs51.h" #include "sound/okiadpcm.h" @@ -48,9 +48,6 @@ // TYPE DEFINITIONS //************************************************************************** -#define QS1000_CHANNELS 32 -#define QS1000_ADDRESS_MASK 0xffffff - // ======================> qs1000_device class qs1000_device : public device_t, @@ -62,33 +59,18 @@ public: qs1000_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); static void set_external_rom(device_t &device, bool external_rom) { downcast(device).m_external_rom = external_rom; } - template static devcb_base &set_in_p1_callback(device_t &device, _Object object) { return downcast(device).m_in_p1_cb.set_callback(object); } - template static devcb_base &set_in_p2_callback(device_t &device, _Object object) { return downcast(device).m_in_p2_cb.set_callback(object); } - template static devcb_base &set_in_p3_callback(device_t &device, _Object object) { return downcast(device).m_in_p3_cb.set_callback(object); } - template static devcb_base &set_out_p1_callback(device_t &device, _Object object) { return downcast(device).m_out_p1_cb.set_callback(object); } - template static devcb_base &set_out_p2_callback(device_t &device, _Object object) { return downcast(device).m_out_p2_cb.set_callback(object); } - template static devcb_base &set_out_p3_callback(device_t &device, _Object object) { return downcast(device).m_out_p3_cb.set_callback(object); } - //template static devcb_base &set_serial_w_callback(device_t &device, _Object object) { return downcast(device).m_serial_w_cb.set_callback(object); } + template static devcb_base &set_in_p1_callback(device_t &device, Object &&cb) { return downcast(device).m_in_p1_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_in_p2_callback(device_t &device, Object &&cb) { return downcast(device).m_in_p2_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_in_p3_callback(device_t &device, Object &&cb) { return downcast(device).m_in_p3_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_p1_callback(device_t &device, Object &&cb) { return downcast(device).m_out_p1_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_p2_callback(device_t &device, Object &&cb) { return downcast(device).m_out_p2_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_p3_callback(device_t &device, Object &&cb) { return downcast(device).m_out_p3_cb.set_callback(std::forward(cb)); } + //template static devcb_base &set_serial_w_callback(device_t &device, Object &&cb) { return downcast(device).m_serial_w_cb.set_callback(std::forward(cb)); } // external void serial_in(uint8_t data); void set_irq(int state); -protected: - // device-level overrides - virtual const tiny_rom_entry *device_rom_region() const override; - virtual machine_config_constructor device_mconfig_additions() const override; - virtual void device_start() override; - virtual void device_reset() override; - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; - - // device_sound_interface overrides - virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; - - // device_rom_interface overrides - virtual void rom_bank_updated() override; - -public: DECLARE_WRITE8_MEMBER( wave_w ); DECLARE_READ8_MEMBER( p0_r ); @@ -105,6 +87,24 @@ public: DECLARE_READ8_MEMBER( data_to_i8052 ); +protected: + // device-level overrides + virtual const tiny_rom_entry *device_rom_region() const override; + virtual machine_config_constructor device_mconfig_additions() const override; + virtual void device_start() override; + virtual void device_reset() override; + virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + + // device_sound_interface overrides + virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; + + // device_rom_interface overrides + virtual void rom_bank_updated() override; + +private: + static constexpr unsigned QS1000_CHANNELS = 32; + static constexpr offs_t QS1000_ADDRESS_MASK = 0x00ffffff; + enum { QS1000_KEYON = 1, @@ -157,7 +157,6 @@ public: // device type definition -extern const device_type QS1000; - +DECLARE_DEVICE_TYPE(QS1000, qs1000_device) -#endif /* __QS1000_H__ */ +#endif // MAME_SOUND_QS1000_H diff --git a/src/devices/sound/qsound.cpp b/src/devices/sound/qsound.cpp index ea297c03af1..06fdfad684b 100644 --- a/src/devices/sound/qsound.cpp +++ b/src/devices/sound/qsound.cpp @@ -20,7 +20,7 @@ - understand higher bits of reg 0 - understand reg 9 - understand other writes to $90-$ff area - + Links: https://siliconpr0n.org/map/capcom/dl-1425 @@ -30,7 +30,7 @@ #include "qsound.h" // device type definition -const device_type QSOUND = device_creator; +DEFINE_DEVICE_TYPE(QSOUND, qsound_device, "qsound", "Q-Sound") // program map for the DSP16A; note that apparently Western Electric/AT&T @@ -80,7 +80,7 @@ ROM_END //------------------------------------------------- qsound_device::qsound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, QSOUND, "Q-Sound", tag, owner, clock, "qsound", __FILE__), + : device_t(mconfig, QSOUND, tag, owner, clock), device_sound_interface(mconfig, *this), m_cpu(*this, "qsound"), m_sample_rom(*this, DEVICE_SELF), diff --git a/src/devices/sound/qsound.h b/src/devices/sound/qsound.h index 7c73b4ddf63..fa5732dab1f 100644 --- a/src/devices/sound/qsound.h +++ b/src/devices/sound/qsound.h @@ -6,10 +6,10 @@ *********************************************************/ -#pragma once +#ifndef MAME_SOUND_QSOUND_H +#define MAME_SOUND_QSOUND_H -#ifndef __QSOUND_H__ -#define __QSOUND_H__ +#pragma once #include "cpu/dsp16/dsp16.h" @@ -28,12 +28,10 @@ // ======================> qsound_device -class qsound_device : public device_t, - public device_sound_interface +class qsound_device : public device_t, public device_sound_interface { public: qsound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~qsound_device() { } DECLARE_WRITE8_MEMBER(qsound_w); DECLARE_READ8_MEMBER(qsound_r); @@ -75,7 +73,6 @@ private: void write_data(uint8_t address, uint16_t data); }; -extern const device_type QSOUND; - +DECLARE_DEVICE_TYPE(QSOUND, qsound_device) -#endif /* __QSOUND_H__ */ +#endif // MAME_SOUND_QSOUND_H diff --git a/src/devices/sound/rf5c400.cpp b/src/devices/sound/rf5c400.cpp index df355b5a03c..39440c66991 100644 --- a/src/devices/sound/rf5c400.cpp +++ b/src/devices/sound/rf5c400.cpp @@ -20,19 +20,27 @@ #include "emu.h" #include "rf5c400.h" -static int volume_table[256]; -static double pan_table[0x64]; - -/* envelope parameter (experimental) */ -#define ENV_AR_SPEED 0.1 -#define ENV_MIN_AR 0x02 -#define ENV_MAX_AR 0x80 -#define ENV_DR_SPEED 2.0 -#define ENV_MIN_DR 0x20 -#define ENV_MAX_DR 0x73 -#define ENV_RR_SPEED 0.7 -#define ENV_MIN_RR 0x20 -#define ENV_MAX_RR 0x54 +namespace { + +int volume_table[256]; +double pan_table[0x64]; + +void init_static_tables() +{ + // init volume/pan tables + double max = 255.0; + for (int i = 0; i < 256; i++) { + volume_table[i] = uint16_t(max); + max /= pow(10.0, double((4.5 / (256.0 / 16.0)) / 20)); + } + for (int i = 0; i < 0x48; i++) { + pan_table[i] = sqrt(double(0x47 - i)) / sqrt(double(0x47)); + } + for (int i = 0x48; i < 0x64; i++) { + pan_table[i] = 0.0; + } +} + /* PCM type */ enum @@ -52,9 +60,62 @@ enum PHASE_RELEASE }; +} // anonymous namespace + // device type definition -const device_type RF5C400 = device_creator; +DEFINE_DEVICE_TYPE(RF5C400, rf5c400_device, "rf5c400", "Ricoh RF5C400") + + +rf5c400_device::envelope_tables::envelope_tables() +{ + std::fill(std::begin(m_ar), std::end(m_ar), 0.0); + std::fill(std::begin(m_dr), std::end(m_dr), 0.0); + std::fill(std::begin(m_rr), std::end(m_rr), 0.0); +} + +void rf5c400_device::envelope_tables::init(uint32_t clock) +{ + /* envelope parameter (experimental) */ + static constexpr double ENV_AR_SPEED = 0.1; + static constexpr int ENV_MIN_AR = 0x02; + static constexpr int ENV_MAX_AR = 0x80; + static constexpr double ENV_DR_SPEED = 2.0; + static constexpr int ENV_MIN_DR = 0x20; + static constexpr int ENV_MAX_DR = 0x73; + static constexpr double ENV_RR_SPEED = 0.7; + static constexpr int ENV_MIN_RR = 0x20; + static constexpr int ENV_MAX_RR = 0x54; + + double r; + + // attack + r = 1.0 / (ENV_AR_SPEED * (clock / 384)); + for (int i = 0; i < ENV_MIN_AR; i++) + m_ar[i] = 1.0; + for (int i = ENV_MIN_AR; i < ENV_MAX_AR; i++) + m_ar[i] = r * (ENV_MAX_AR - i) / (ENV_MAX_AR - ENV_MIN_AR); + for (int i = ENV_MAX_AR; i < 0x9f; i++) + m_ar[i] = 0.0; + + // decay + r = -5.0 / (ENV_DR_SPEED * (clock / 384)); + for (int i = 0; i < ENV_MIN_DR; i++) + m_dr[i] = r; + for (int i = ENV_MIN_DR; i < ENV_MAX_DR; i++) + m_dr[i] = r * (ENV_MAX_DR - i) / (ENV_MAX_DR - ENV_MIN_DR); + for (int i = ENV_MAX_DR; i < 0x9f; i++) + m_dr[i] = 0.0; + + // release + r = -5.0 / (ENV_RR_SPEED * (clock / 384)); + for (int i = 0; i < ENV_MIN_RR; i++) + m_rr[i] = r; + for (int i = ENV_MIN_RR; i < ENV_MAX_RR; i++) + m_rr[i] = r * (ENV_MAX_RR - i) / (ENV_MAX_RR - ENV_MIN_RR); + for (int i = ENV_MAX_RR; i < 0x9f; i++) + m_rr[i] = 0.0; +} //************************************************************************** @@ -66,14 +127,12 @@ const device_type RF5C400 = device_creator; //------------------------------------------------- rf5c400_device::rf5c400_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, RF5C400, "RF5C400", tag, owner, clock, "rf5c400", __FILE__), - device_sound_interface(mconfig, *this), - m_rom(*this, DEVICE_SELF), - m_stream(nullptr) + : device_t(mconfig, RF5C400, tag, owner, clock) + , device_sound_interface(mconfig, *this) + , m_rom(*this, DEVICE_SELF) + , m_stream(nullptr) + , m_env_tables() { - memset(m_env_ar_table, 0, sizeof(double)*0x9f); - memset(m_env_dr_table, 0, sizeof(double)*0x9f); - memset(m_env_rr_table, 0, sizeof(double)*0x9f); } @@ -84,7 +143,45 @@ rf5c400_device::rf5c400_device(const machine_config &mconfig, const char *tag, d void rf5c400_device::device_start() { - rf5c400_init_chip(); + init_static_tables(); + m_env_tables.init(clock()); + + // init channel info + for (rf5c400_channel &chan : m_channels) + { + chan.env_phase = PHASE_NONE; + chan.env_level = 0.0; + chan.env_step = 0.0; + chan.env_scale = 1.0; + } + + for (int i = 0; i < ARRAY_LENGTH(m_channels); i++) + { + save_item(NAME(m_channels[i].startH), i); + save_item(NAME(m_channels[i].startL), i); + save_item(NAME(m_channels[i].freq), i); + save_item(NAME(m_channels[i].endL), i); + save_item(NAME(m_channels[i].endHloopH), i); + save_item(NAME(m_channels[i].loopL), i); + save_item(NAME(m_channels[i].pan), i); + save_item(NAME(m_channels[i].effect), i); + save_item(NAME(m_channels[i].volume), i); + save_item(NAME(m_channels[i].attack), i); + save_item(NAME(m_channels[i].decay), i); + save_item(NAME(m_channels[i].release), i); + save_item(NAME(m_channels[i].cutoff), i); + save_item(NAME(m_channels[i].pos), i); + save_item(NAME(m_channels[i].step), i); + save_item(NAME(m_channels[i].keyon), i); + save_item(NAME(m_channels[i].env_phase), i); + save_item(NAME(m_channels[i].env_level), i); + save_item(NAME(m_channels[i].env_step), i); + save_item(NAME(m_channels[i].env_scale), i); + } + + m_stream = stream_alloc(0, 2, clock() / 384); + + m_rommask = m_rom.length() - 1; } //------------------------------------------------- @@ -167,8 +264,7 @@ void rf5c400_device::sound_stream_update(sound_stream &stream, stream_sample_t * } else { - env_step = - m_env_dr_table[decode80(channel->decay >> 8)]; + env_step = m_env_tables.dr(*channel); } env_rstep = env_step * channel->env_scale; } @@ -217,130 +313,7 @@ void rf5c400_device::sound_stream_update(sound_stream &stream, stream_sample_t * /*****************************************************************************/ -uint8_t rf5c400_device::decode80(uint8_t val) -{ - if (val & 0x80) - { - val = (val & 0x7f) + 0x1f; - } - - return val; -} - -void rf5c400_device::rf5c400_init_chip() -{ - int i; - - // init volume table - { - double max=255.0; - for (i = 0; i < 256; i++) { - volume_table[i]=(uint16_t)max; - max /= pow(10.0,(double)((4.5/(256.0/16.0))/20)); - } - for(i = 0; i < 0x48; i++) { - pan_table[i] = sqrt( (double)(0x47 - i) ) / sqrt( (double)0x47 ); - } - for(i = 0x48; i < 0x64; i++) { - pan_table[i] = 0.0; - } - } - - // init envelope table - { - double r; - - // attack - r = 1.0 / (ENV_AR_SPEED * (clock() / 384)); - for (i = 0; i < ENV_MIN_AR; i++) - { - m_env_ar_table[i] = 1.0; - } - for (i = ENV_MIN_AR; i < ENV_MAX_AR; i++) - { - m_env_ar_table[i] = - r * (ENV_MAX_AR - i) / (ENV_MAX_AR - ENV_MIN_AR); - } - for (i = ENV_MAX_AR; i < 0x9f; i++) - { - m_env_ar_table[i] = 0.0; - } - - // decay - r = -5.0 / (ENV_DR_SPEED * (clock() / 384)); - for (i = 0; i < ENV_MIN_DR; i++) - { - m_env_dr_table[i] = r; - } - for (i = ENV_MIN_DR; i < ENV_MAX_DR; i++) - { - m_env_dr_table[i] = - r * (ENV_MAX_DR - i) / (ENV_MAX_DR - ENV_MIN_DR); - } - for (i = ENV_MAX_DR; i < 0x9f; i++) - { - m_env_dr_table[i] = 0.0; - } - - // release - r = -5.0 / (ENV_RR_SPEED * (clock() / 384)); - for (i = 0; i < ENV_MIN_RR; i++) - { - m_env_rr_table[i] = r; - } - for (i = ENV_MIN_RR; i < ENV_MAX_RR; i++) - { - m_env_rr_table[i] = - r * (ENV_MAX_RR - i) / (ENV_MAX_RR - ENV_MIN_RR); - } - for (i = ENV_MAX_RR; i < 0x9f; i++) - { - m_env_rr_table[i] = 0.0; - } - } - - // init channel info - for (i = 0; i < 32; i++) - { - m_channels[i].env_phase = PHASE_NONE; - m_channels[i].env_level = 0.0; - m_channels[i].env_step = 0.0; - m_channels[i].env_scale = 1.0; - } - - for (i = 0; i < ARRAY_LENGTH(m_channels); i++) - { - save_item(NAME(m_channels[i].startH), i); - save_item(NAME(m_channels[i].startL), i); - save_item(NAME(m_channels[i].freq), i); - save_item(NAME(m_channels[i].endL), i); - save_item(NAME(m_channels[i].endHloopH), i); - save_item(NAME(m_channels[i].loopL), i); - save_item(NAME(m_channels[i].pan), i); - save_item(NAME(m_channels[i].effect), i); - save_item(NAME(m_channels[i].volume), i); - save_item(NAME(m_channels[i].attack), i); - save_item(NAME(m_channels[i].decay), i); - save_item(NAME(m_channels[i].release), i); - save_item(NAME(m_channels[i].cutoff), i); - save_item(NAME(m_channels[i].pos), i); - save_item(NAME(m_channels[i].step), i); - save_item(NAME(m_channels[i].keyon), i); - save_item(NAME(m_channels[i].env_phase), i); - save_item(NAME(m_channels[i].env_level), i); - save_item(NAME(m_channels[i].env_step), i); - save_item(NAME(m_channels[i].env_scale), i); - } - - m_stream = stream_alloc(0, 2, clock()/384); - - m_rommask = m_rom.length() - 1; -} - - -/*****************************************************************************/ - -static uint16_t rf5c400_status = 0; +static uint16_t rf5c400_status = 0; // a static one of these for all instances of the chip? how does that work? READ16_MEMBER( rf5c400_device::rf5c400_r ) { switch(offset) @@ -388,8 +361,7 @@ WRITE16_MEMBER( rf5c400_device::rf5c400_w ) m_channels[ch].env_phase = PHASE_ATTACK; m_channels[ch].env_level = 0.0; - m_channels[ch].env_step = - m_env_ar_table[decode80(m_channels[ch].attack >> 8)]; + m_channels[ch].env_step = m_env_tables.ar(m_channels[ch]); break; case 0x40: if (m_channels[ch].env_phase != PHASE_NONE) @@ -401,8 +373,7 @@ WRITE16_MEMBER( rf5c400_device::rf5c400_w ) } else { - m_channels[ch].env_step = - m_env_rr_table[decode80(m_channels[ch].release >> 8)]; + m_channels[ch].env_step = m_env_tables.rr(m_channels[ch]); } } break; diff --git a/src/devices/sound/rf5c400.h b/src/devices/sound/rf5c400.h index 5ec45d35baf..6fe27863f70 100644 --- a/src/devices/sound/rf5c400.h +++ b/src/devices/sound/rf5c400.h @@ -2,10 +2,10 @@ // copyright-holders:Ville Linde /* Ricoh RF5C400 emulator */ -#pragma once +#ifndef MAME_SOUND_RF5C400_H +#define MAME_SOUND_RF5C400_H -#ifndef __RF5C400_H__ -#define __RF5C400_H__ +#pragma once //************************************************************************** // INTERFACE CONFIGURATION MACROS @@ -21,57 +21,6 @@ // TYPE DEFINITIONS //************************************************************************** -struct rf5c400_channel -{ - rf5c400_channel() : - startH(0), - startL(0), - freq(0), - endL(0), - endHloopH(0), - loopL(0), - pan(0), - effect(0), - volume(0), - attack(0), - decay(0), - release(0), - cutoff(0), - pos(0), - step(0), - keyon(0), - env_phase(0), - env_level(0.0), - env_step(0.0), - env_scale(0.0) - { } - - uint16_t startH; - uint16_t startL; - uint16_t freq; - uint16_t endL; - uint16_t endHloopH; - uint16_t loopL; - uint16_t pan; - uint16_t effect; - uint16_t volume; - - uint16_t attack; - uint16_t decay; - uint16_t release; - - uint16_t cutoff; - - uint64_t pos; - uint64_t step; - uint16_t keyon; - - uint8_t env_phase; - double env_level; - double env_step; - double env_scale; -}; - // ======================> rf5c400_device @@ -80,7 +29,9 @@ class rf5c400_device : public device_t, { public: rf5c400_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~rf5c400_device() { } + + DECLARE_READ16_MEMBER( rf5c400_r ); + DECLARE_WRITE16_MEMBER( rf5c400_w ); protected: // device-level overrides @@ -89,24 +40,61 @@ protected: // sound stream update overrides virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; -public: - DECLARE_READ16_MEMBER( rf5c400_r ); - DECLARE_WRITE16_MEMBER( rf5c400_w ); - private: - void rf5c400_init_chip(); + struct rf5c400_channel + { + rf5c400_channel() { } + + uint16_t startH = 0; + uint16_t startL = 0; + uint16_t freq = 0; + uint16_t endL = 0; + uint16_t endHloopH = 0; + uint16_t loopL = 0; + uint16_t pan = 0; + uint16_t effect = 0; + uint16_t volume = 0; + + uint16_t attack = 0; + uint16_t decay = 0; + uint16_t release = 0; + + uint16_t cutoff = 0; + + uint64_t pos = 0; + uint64_t step = 0; + uint16_t keyon = 0; + + uint8_t env_phase = 0; + double env_level = 0.0; + double env_step = 0.0; + double env_scale = 0.0; + }; + + class envelope_tables + { + public: + envelope_tables(); + void init(uint32_t clock); + double ar(rf5c400_channel const &chan) const { return m_ar[decode80(chan.attack >> 8)]; } + double dr(rf5c400_channel const &chan) const { return m_dr[decode80(chan.decay >> 8)]; } + double rr(rf5c400_channel const &chan) const { return m_rr[decode80(chan.release >> 8)]; } + private: + static constexpr uint8_t decode80(uint8_t val) { return (val & 0x80) ? ((val & 0x7f) + 0x1f) : val; } + double m_ar[0x9f]; + double m_dr[0x9f]; + double m_rr[0x9f]; + }; + uint8_t decode80(uint8_t val); -private: required_region_ptr m_rom; uint32_t m_rommask; sound_stream *m_stream; - double m_env_ar_table[0x9f]; - double m_env_dr_table[0x9f]; - double m_env_rr_table[0x9f]; + envelope_tables m_env_tables; rf5c400_channel m_channels[32]; @@ -114,7 +102,6 @@ private: uint16_t m_ext_mem_data; }; -extern const device_type RF5C400; - +DECLARE_DEVICE_TYPE(RF5C400, rf5c400_device) -#endif /* __RF5C400_H__ */ +#endif // MAME_SOUND_RF5C400_H diff --git a/src/devices/sound/rf5c68.cpp b/src/devices/sound/rf5c68.cpp index 532e3dcaf26..05366f3b968 100644 --- a/src/devices/sound/rf5c68.cpp +++ b/src/devices/sound/rf5c68.cpp @@ -9,7 +9,7 @@ // device type definition -const device_type RF5C68 = device_creator; +DEFINE_DEVICE_TYPE(RF5C68, rf5c68_device, "rf5c68", "Ricoh RF5C68") //************************************************************************** @@ -21,14 +21,14 @@ const device_type RF5C68 = device_creator; //------------------------------------------------- rf5c68_device::rf5c68_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, RF5C68, "RF5C68", tag, owner, clock, "rf5c68", __FILE__), + : device_t(mconfig, RF5C68, tag, owner, clock), device_sound_interface(mconfig, *this), m_stream(nullptr), m_cbank(0), m_wbank(0), m_enable(0) { - memset(m_data, 0, sizeof(uint8_t)*0x10000); + std::fill(std::begin(m_data), std::end(m_data), 0); } @@ -56,7 +56,6 @@ void rf5c68_device::sound_stream_update(sound_stream &stream, stream_sample_t ** { stream_sample_t *left = outputs[0]; stream_sample_t *right = outputs[1]; - int i, j; /* start with clean buffers */ memset(left, 0, samples * sizeof(*left)); @@ -67,40 +66,38 @@ void rf5c68_device::sound_stream_update(sound_stream &stream, stream_sample_t ** return; /* loop over channels */ - for (i = 0; i < RF5C68_NUM_CHANNELS; i++) + for (pcm_channel &chan : m_chan) { - rf5c68_pcm_channel *chan = &m_chan[i]; - /* if this channel is active, accumulate samples */ - if (chan->enable) + if (chan.enable) { - int lv = (chan->pan & 0x0f) * chan->env; - int rv = ((chan->pan >> 4) & 0x0f) * chan->env; + int lv = (chan.pan & 0x0f) * chan.env; + int rv = ((chan.pan >> 4) & 0x0f) * chan.env; /* loop over the sample buffer */ - for (j = 0; j < samples; j++) + for (int j = 0; j < samples; j++) { int sample; /* trigger sample callback */ if(!m_sample_end_cb.isnull()) { - if(((chan->addr >> 11) & 0xfff) == 0xfff) - m_sample_end_cb((chan->addr >> 11)/0x2000); + if(((chan.addr >> 11) & 0xfff) == 0xfff) + m_sample_end_cb((chan.addr >> 11)/0x2000); } /* fetch the sample and handle looping */ - sample = m_data[(chan->addr >> 11) & 0xffff]; + sample = m_data[(chan.addr >> 11) & 0xffff]; if (sample == 0xff) { - chan->addr = chan->loopst << 11; - sample = m_data[(chan->addr >> 11) & 0xffff]; + chan.addr = chan.loopst << 11; + sample = m_data[(chan.addr >> 11) & 0xffff]; /* if we loop to a loop point, we're effectively dead */ if (sample == 0xff) break; } - chan->addr += chan->step; + chan.addr += chan.step; /* add to the buffer */ if (sample & 0x80) @@ -119,7 +116,7 @@ void rf5c68_device::sound_stream_update(sound_stream &stream, stream_sample_t ** } /* now clamp and shift the result (output is only 10 bits) */ - for (j = 0; j < samples; j++) + for (int j = 0; j < samples; j++) { stream_sample_t temp; @@ -154,7 +151,7 @@ READ8_MEMBER( rf5c68_device::rf5c68_r ) WRITE8_MEMBER( rf5c68_device::rf5c68_w ) { - rf5c68_pcm_channel *chan = &m_chan[m_cbank]; + pcm_channel &chan = m_chan[m_cbank]; int i; /* force the stream to update first */ @@ -164,33 +161,33 @@ WRITE8_MEMBER( rf5c68_device::rf5c68_w ) switch (offset) { case 0x00: /* envelope */ - chan->env = data; + chan.env = data; break; case 0x01: /* pan */ - chan->pan = data; + chan.pan = data; break; case 0x02: /* FDL */ - chan->step = (chan->step & 0xff00) | (data & 0x00ff); + chan.step = (chan.step & 0xff00) | (data & 0x00ff); break; case 0x03: /* FDH */ - chan->step = (chan->step & 0x00ff) | ((data << 8) & 0xff00); + chan.step = (chan.step & 0x00ff) | ((data << 8) & 0xff00); break; case 0x04: /* LSL */ - chan->loopst = (chan->loopst & 0xff00) | (data & 0x00ff); + chan.loopst = (chan.loopst & 0xff00) | (data & 0x00ff); break; case 0x05: /* LSH */ - chan->loopst = (chan->loopst & 0x00ff) | ((data << 8) & 0xff00); + chan.loopst = (chan.loopst & 0x00ff) | ((data << 8) & 0xff00); break; case 0x06: /* ST */ - chan->start = data; - if (!chan->enable) - chan->addr = chan->start << (8 + 11); + chan.start = data; + if (!chan.enable) + chan.addr = chan.start << (8 + 11); break; case 0x07: /* control reg */ diff --git a/src/devices/sound/rf5c68.h b/src/devices/sound/rf5c68.h index f16271f1518..2354f874209 100644 --- a/src/devices/sound/rf5c68.h +++ b/src/devices/sound/rf5c68.h @@ -4,12 +4,10 @@ /* ricoh RF5C68(or clone) PCM controller */ /*********************************************************/ -#pragma once - -#ifndef __RF5C68_H__ -#define __RF5C68_H__ +#ifndef MAME_SOUND_RF5C68_H +#define MAME_SOUND_RF5C68_H -#define RF5C68_NUM_CHANNELS (8) +#pragma once //************************************************************************** @@ -22,48 +20,32 @@ MCFG_DEVICE_REPLACE(_tag, RF5C68, _clock) #define MCFG_RF5C68_SAMPLE_END_CB(_class, _method) \ - rf5c68_device::set_end_callback(*device, rf5c68_sample_end_cb_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); + rf5c68_device::set_end_callback(*device, rf5c68_device::sample_end_cb_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); //************************************************************************** // TYPE DEFINITIONS //************************************************************************** -typedef device_delegate rf5c68_sample_end_cb_delegate; - #define RF5C68_SAMPLE_END_CB_MEMBER(_name) void _name(int channel) -struct rf5c68_pcm_channel -{ - rf5c68_pcm_channel() : - enable(0), - env(0), - pan(0), - start(0), - addr(0), - step(0), - loopst(0) {} - - uint8_t enable; - uint8_t env; - uint8_t pan; - uint8_t start; - uint32_t addr; - uint16_t step; - uint16_t loopst; -}; - - // ======================> rf5c68_device class rf5c68_device : public device_t, public device_sound_interface { public: + typedef device_delegate sample_end_cb_delegate; + rf5c68_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~rf5c68_device() { } - static void set_end_callback(device_t &device, rf5c68_sample_end_cb_delegate callback) { downcast(device).m_sample_end_cb = callback; } + static void set_end_callback(device_t &device, sample_end_cb_delegate &&cb) { downcast(device).m_sample_end_cb = std::move(cb); } + + DECLARE_READ8_MEMBER( rf5c68_r ); + DECLARE_WRITE8_MEMBER( rf5c68_w ); + + DECLARE_READ8_MEMBER( rf5c68_mem_r ); + DECLARE_WRITE8_MEMBER( rf5c68_mem_w ); protected: // device-level overrides @@ -72,25 +54,32 @@ protected: // sound stream update overrides virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; -public: - DECLARE_READ8_MEMBER( rf5c68_r ); - DECLARE_WRITE8_MEMBER( rf5c68_w ); +private: + static constexpr unsigned NUM_CHANNELS = 8; - DECLARE_READ8_MEMBER( rf5c68_mem_r ); - DECLARE_WRITE8_MEMBER( rf5c68_mem_w ); + struct pcm_channel + { + pcm_channel() { } + + uint8_t enable = 0; + uint8_t env = 0; + uint8_t pan = 0; + uint8_t start = 0; + uint32_t addr = 0; + uint16_t step = 0; + uint16_t loopst = 0; + }; -private: sound_stream* m_stream; - rf5c68_pcm_channel m_chan[RF5C68_NUM_CHANNELS]; + pcm_channel m_chan[NUM_CHANNELS]; uint8_t m_cbank; uint8_t m_wbank; uint8_t m_enable; uint8_t m_data[0x10000]; - rf5c68_sample_end_cb_delegate m_sample_end_cb; + sample_end_cb_delegate m_sample_end_cb; }; -extern const device_type RF5C68; - +DECLARE_DEVICE_TYPE(RF5C68, rf5c68_device) -#endif /* __RF5C68_H__ */ +#endif // MAME_SOUND_RF5C68_H diff --git a/src/devices/sound/s14001a.cpp b/src/devices/sound/s14001a.cpp index 9bc112232f2..68bf81212d8 100644 --- a/src/devices/sound/s14001a.cpp +++ b/src/devices/sound/s14001a.cpp @@ -106,11 +106,110 @@ and off as it normally does during speech). Once START has gone low-high-low, th #include "emu.h" #include "s14001a.h" +namespace { + +uint8_t Mux8To2(bool bVoicedP2, uint8_t uPPQtrP2, uint8_t uDeltaAdrP2, uint8_t uRomDataP2) +{ + // pick two bits of rom data as delta + + if (bVoicedP2 && (uPPQtrP2 & 0x01)) // mirroring + uDeltaAdrP2 ^= 0x03; // count backwards + + // emulate 8 to 2 mux to obtain delta from byte (bigendian) + switch (uDeltaAdrP2) + { + case 0x00: + return (uRomDataP2 & 0xC0) >> 6; + case 0x01: + return (uRomDataP2 & 0x30) >> 4; + case 0x02: + return (uRomDataP2 & 0x0C) >> 2; + case 0x03: + return (uRomDataP2 & 0x03) >> 0; + default: + return 0xFF; + } +} + + +void CalculateIncrement(bool bVoicedP2, uint8_t uPPQtrP2, bool bPPQStartP2, uint8_t uDelta, uint8_t uDeltaOldP2, uint8_t &uDeltaOldP1, uint8_t &uIncrementP2, bool &bAddP2) +{ + // uPPQtr, pitch period quarter counter; 2 lsb of uLength + // bPPStart, start of a pitch period + // implemented to mimic silicon (a bit) + + // beginning of a pitch period + if ((uPPQtrP2 == 0x00) && bPPQStartP2) // note this is done for voiced and unvoiced + uDeltaOldP2 = 0x02; + + static constexpr uint8_t uIncrements[4][4] = + { + // 00 01 10 11 + { 3, 3, 1, 1,}, // 00 + { 1, 1, 0, 0,}, // 01 + { 0, 0, 1, 1,}, // 10 + { 1, 1, 3, 3 }, // 11 + }; + + bool const MIRROR = BIT(uPPQtrP2, 0); + + // calculate increment from delta, always done even if silent to update uDeltaOld + // in silicon a PLA determined 0,1,3 and add/subtract and passed uDelta to uDeltaOld + if (!bVoicedP2 || !MIRROR) + { + uIncrementP2 = uIncrements[uDelta][uDeltaOldP2]; + bAddP2 = uDelta >= 0x02; + } + else + { + uIncrementP2 = uIncrements[uDeltaOldP2][uDelta]; + bAddP2 = uDeltaOldP2 < 0x02; + } + uDeltaOldP1 = uDelta; + if (bVoicedP2 && bPPQStartP2 && MIRROR) + uIncrementP2 = 0; // no change when first starting mirroring +} + + +uint8_t CalculateOutput(bool bVoiced, bool bXSilence, uint8_t uPPQtr, bool bPPQStart, uint8_t uLOutput, uint8_t uIncrementP2, bool bAddP2) +{ + // implemented to mimic silicon (a bit) + // limits output to 0x00 and 0x0f + + bool const SILENCE = BIT(uPPQtr, 1); + + // determine output + if (bXSilence || (bVoiced && SILENCE)) + return 7; + + // beginning of a pitch period + if ((uPPQtr == 0x00) && bPPQStart) // note this is done for voiced and nonvoiced + uLOutput = 7; + + // adder + uint8_t uTmp = uLOutput; + if (!bAddP2) + uTmp ^= 0x0F; // turns subtraction into addition + + // add 0, 1, 3; limit at 15 + uTmp += uIncrementP2; + if (uTmp > 15) + uTmp = 15; + + if (!bAddP2) + uTmp ^= 0x0F; // turns addition back to subtraction + + return uTmp; +} + +} // anonymous namespace + + // device definition -const device_type S14001A = device_creator; +DEFINE_DEVICE_TYPE(S14001A, s14001a_device, "s14001a", "SSi TSI S14001A") s14001a_device::s14001a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, S14001A, "S14001A", tag, owner, clock, "s14001a", __FILE__), + : device_t(mconfig, S14001A, tag, owner, clock), device_sound_interface(mconfig, *this), m_SpeechRom(*this, DEVICE_SELF), m_stream(nullptr), @@ -471,96 +570,6 @@ bool s14001a_device::Clock() return true; } -uint8_t s14001a_device::Mux8To2(bool bVoicedP2, uint8_t uPPQtrP2, uint8_t uDeltaAdrP2, uint8_t uRomDataP2) -{ - // pick two bits of rom data as delta - - if (bVoicedP2 && uPPQtrP2&0x01) // mirroring - { - uDeltaAdrP2 ^= 0x03; // count backwards - } - // emulate 8 to 2 mux to obtain delta from byte (bigendian) - switch (uDeltaAdrP2) - { - case 0x00: - return (uRomDataP2&0xC0)>>6; - case 0x01: - return (uRomDataP2&0x30)>>4; - case 0x02: - return (uRomDataP2&0x0C)>>2; - case 0x03: - return (uRomDataP2&0x03)>>0; - } - return 0xFF; -} - -void s14001a_device::CalculateIncrement(bool bVoicedP2, uint8_t uPPQtrP2, bool bPPQStartP2, uint8_t uDelta, uint8_t uDeltaOldP2, uint8_t &uDeltaOldP1, uint8_t &uIncrementP2, bool &bAddP2) -{ - // uPPQtr, pitch period quarter counter; 2 lsb of uLength - // bPPStart, start of a pitch period - // implemented to mimic silicon (a bit) - - // beginning of a pitch period - if (uPPQtrP2 == 0x00 && bPPQStartP2) // note this is done for voiced and unvoiced - { - uDeltaOldP2 = 0x02; - } - static const uint8_t uIncrements[4][4] = - { - // 00 01 10 11 - { 3, 3, 1, 1,}, // 00 - { 1, 1, 0, 0,}, // 01 - { 0, 0, 1, 1,}, // 10 - { 1, 1, 3, 3 }, // 11 - }; - -#define MIRROR (uPPQtrP2&0x01) - - // calculate increment from delta, always done even if silent to update uDeltaOld - // in silicon a PLA determined 0,1,3 and add/subtract and passed uDelta to uDeltaOld - if (!bVoicedP2 || !MIRROR) - { - uIncrementP2 = uIncrements[uDelta][uDeltaOldP2]; - bAddP2 = uDelta >= 0x02; - } - else - { - uIncrementP2 = uIncrements[uDeltaOldP2][uDelta]; - bAddP2 = uDeltaOldP2 < 0x02; - } - uDeltaOldP1 = uDelta; - if (bVoicedP2 && bPPQStartP2 && MIRROR) uIncrementP2 = 0; // no change when first starting mirroring -} - -uint8_t s14001a_device::CalculateOutput(bool bVoiced, bool bXSilence, uint8_t uPPQtr, bool bPPQStart, uint8_t uLOutput, uint8_t uIncrementP2, bool bAddP2) -{ - // implemented to mimic silicon (a bit) - // limits output to 0x00 and 0x0f - uint8_t uTmp; // used for subtraction - -#define SILENCE (uPPQtr&0x02) - - // determine output - if (bXSilence || (bVoiced && SILENCE)) return 7; - - // beginning of a pitch period - if (uPPQtr == 0x00 && bPPQStart) // note this is done for voiced and nonvoiced - { - uLOutput = 7; - } - - // adder - uTmp = uLOutput; - if (!bAddP2) uTmp ^= 0x0F; // turns subtraction into addition - - // add 0, 1, 3; limit at 15 - uTmp += uIncrementP2; - if (uTmp > 15) uTmp = 15; - - if (!bAddP2) uTmp ^= 0x0F; // turns addition back to subtraction - return uTmp; -} - void s14001a_device::ClearStatistics() { m_uNPitchPeriods = 0; diff --git a/src/devices/sound/s14001a.h b/src/devices/sound/s14001a.h index f73840102d9..c16d7e0aa75 100644 --- a/src/devices/sound/s14001a.h +++ b/src/devices/sound/s14001a.h @@ -5,8 +5,8 @@ SSi TSI S14001A speech IC emulator */ -#ifndef __S14001A_H__ -#define __S14001A_H__ +#ifndef MAME_SOUND_S14001A_H +#define MAME_SOUND_S14001A_H #define MCFG_S14001A_BSY_HANDLER(_devcb) \ devcb = &s14001a_device::set_bsy_handler(*device, DEVCB_##_devcb); @@ -15,16 +15,14 @@ devcb = &s14001a_device::set_ext_read_handler(*device, DEVCB_##_devcb); -class s14001a_device : public device_t, - public device_sound_interface +class s14001a_device : public device_t, public device_sound_interface { public: s14001a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~s14001a_device() {} // static configuration helpers - template static devcb_base &set_bsy_handler(device_t &device, _Object object) { return downcast(device).m_bsy_handler.set_callback(object); } - template static devcb_base &set_ext_read_handler(device_t &device, _Object object) { return downcast(device).m_ext_read_handler.set_callback(object); } + template static devcb_base &set_bsy_handler(device_t &device, Object &&cb) { return downcast(device).m_bsy_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_ext_read_handler(device_t &device, Object &&cb) { return downcast(device).m_ext_read_handler.set_callback(std::forward(cb)); } DECLARE_READ_LINE_MEMBER(busy_r); // /BUSY (pin 40) DECLARE_READ_LINE_MEMBER(romen_r); // ROM /EN (pin 9) @@ -42,26 +40,14 @@ protected: virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; private: - required_region_ptr m_SpeechRom; - sound_stream * m_stream; - - devcb_write_line m_bsy_handler; - devcb_read8 m_ext_read_handler; - uint8_t readmem(uint16_t offset, bool phase); bool Clock(); // called once to toggle external clock twice // emulator helper functions - uint8_t Mux8To2(bool bVoicedP2, uint8_t uPPQtrP2, uint8_t uDeltaAdrP2, uint8_t uRomDataP2); - void CalculateIncrement(bool bVoicedP2, uint8_t uPPQtrP2, bool bPPQStartP2, uint8_t uDeltaP2, uint8_t uDeltaOldP2, uint8_t &uDeltaOldP1, uint8_t &uIncrementP2, bool &bAddP2); - uint8_t CalculateOutput(bool bVoicedP2, bool bXSilenceP2, uint8_t uPPQtrP2, bool bPPQStartP2, uint8_t uLOutputP2, uint8_t uIncrementP2, bool bAddP2); void ClearStatistics(); void GetStatistics(uint32_t &uNPitchPeriods, uint32_t &uNVoiced, uint32_t &uNControlWords); void SetPrintLevel(uint32_t uPrintLevel) { m_uPrintLevel = uPrintLevel; } - // internal state - bool m_bPhase1; // 1 bit internal clock - enum states { IDLE = 0, @@ -74,6 +60,15 @@ private: DELAY }; + required_region_ptr m_SpeechRom; + sound_stream * m_stream; + + devcb_write_line m_bsy_handler; + devcb_read8 m_ext_read_handler; + + // internal state + bool m_bPhase1; // 1 bit internal clock + // registers states m_uStateP1; // 3 bits states m_uStateP2; @@ -132,7 +127,6 @@ private: uint32_t m_uPrintLevel; }; -extern const device_type S14001A; - +DECLARE_DEVICE_TYPE(S14001A, s14001a_device) -#endif /* __S14001A_H__ */ +#endif // MAME_SOUND_S14001A_H diff --git a/src/devices/sound/saa1099.cpp b/src/devices/sound/saa1099.cpp index c1ce05f5a2a..9f58367da5b 100644 --- a/src/devices/sound/saa1099.cpp +++ b/src/devices/sound/saa1099.cpp @@ -71,14 +71,14 @@ #define LEFT 0x00 #define RIGHT 0x01 -static const int amplitude_lookup[16] = { +static constexpr int amplitude_lookup[16] = { 0*32767/16, 1*32767/16, 2*32767/16, 3*32767/16, 4*32767/16, 5*32767/16, 6*32767/16, 7*32767/16, 8*32767/16, 9*32767/16, 10*32767/16, 11*32767/16, 12*32767/16, 13*32767/16, 14*32767/16, 15*32767/16 }; -static const uint8_t envelope[8][64] = { +static constexpr uint8_t envelope[8][64] = { /* zero amplitude */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -123,7 +123,7 @@ static const uint8_t envelope[8][64] = { // device type definition -const device_type SAA1099 = device_creator; +DEFINE_DEVICE_TYPE(SAA1099, saa1099_device, "saa1099", "Philips SAA1099") //************************************************************************** // LIVE DEVICE @@ -134,21 +134,21 @@ const device_type SAA1099 = device_creator; //------------------------------------------------- saa1099_device::saa1099_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, SAA1099, "SAA1099", tag, owner, clock, "saa1099", __FILE__), - device_sound_interface(mconfig, *this), - m_stream(nullptr), - m_all_ch_enable(0), - m_sync_state(0), - m_selected_reg(0), - m_sample_rate(0.0) + : device_t(mconfig, SAA1099, tag, owner, clock) + , device_sound_interface(mconfig, *this) + , m_stream(nullptr) + , m_noise_params{ 0, 0 } + , m_env_enable{ 0, 0 } + , m_env_reverse_right{ 0, 0 } + , m_env_mode{ 0, 0 } + , m_env_bits{ 0, 0 } + , m_env_clock{ 0, 0 } + , m_env_step{ 0, 0 } + , m_all_ch_enable(0) + , m_sync_state(0) + , m_selected_reg(0) + , m_sample_rate(0.0) { - memset(m_noise_params, 0, sizeof(int)*2); - memset(m_env_enable, 0, sizeof(int)*2); - memset(m_env_reverse_right, 0, sizeof(int)*2); - memset(m_env_mode, 0, sizeof(int)*2); - memset(m_env_bits, 0, sizeof(int)*2); - memset(m_env_clock, 0, sizeof(int)*2); - memset(m_env_step, 0, sizeof(int)*2); } diff --git a/src/devices/sound/saa1099.h b/src/devices/sound/saa1099.h index 6863bd73e76..db89f8ccbd1 100644 --- a/src/devices/sound/saa1099.h +++ b/src/devices/sound/saa1099.h @@ -4,10 +4,10 @@ Philips SAA1099 Sound driver **********************************************/ -#pragma once +#ifndef MAME_SOUND_SAA1099_H +#define MAME_SOUND_SAA1099_H -#ifndef __SAA1099_H__ -#define __SAA1099_H__ +#pragma once //************************************************************************** // INTERFACE CONFIGURATION MACROS @@ -23,47 +23,6 @@ // TYPE DEFINITIONS //************************************************************************** -struct saa1099_channel -{ - saa1099_channel() : - frequency(0), - freq_enable(0), - noise_enable(0), - octave(0), - counter(0.0), - freq(0.0), - level(0) - { - memset(amplitude, 0, sizeof(int)*2); - memset(envelope, 0, sizeof(int)*2); - } - - int frequency; /* frequency (0x00..0xff) */ - int freq_enable; /* frequency enable */ - int noise_enable; /* noise enable */ - int octave; /* octave (0x00..0x07) */ - int amplitude[2]; /* amplitude (0x00..0x0f) */ - int envelope[2]; /* envelope (0x00..0x0f or 0x10 == off) */ - - /* vars to simulate the square wave */ - double counter; - double freq; - int level; -}; - -struct saa1099_noise -{ - saa1099_noise() : - counter(0.0), - freq(0.0), - level(0xFFFFFFFF) {} - - /* vars to simulate the noise generator output */ - double counter; - double freq; - uint32_t level; /* noise polynomial shifter */ -}; - // ======================> saa1099_device @@ -72,7 +31,9 @@ class saa1099_device : public device_t, { public: saa1099_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~saa1099_device() { } + + DECLARE_WRITE8_MEMBER( control_w ); + DECLARE_WRITE8_MEMBER( data_w ); protected: // device-level overrides @@ -81,14 +42,36 @@ protected: // sound stream update overrides virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; -public: - DECLARE_WRITE8_MEMBER( control_w ); - DECLARE_WRITE8_MEMBER( data_w ); - private: + struct saa1099_channel + { + saa1099_channel() : amplitude{ 0, 0 }, envelope{ 0, 0 } { } + + int frequency = 0; /* frequency (0x00..0xff) */ + int freq_enable = 0; /* frequency enable */ + int noise_enable = 0; /* noise enable */ + int octave = 0; /* octave (0x00..0x07) */ + int amplitude[2]; /* amplitude (0x00..0x0f) */ + int envelope[2]; /* envelope (0x00..0x0f or 0x10 == off) */ + + /* vars to simulate the square wave */ + double counter = 0.0; + double freq = 0.0; + int level = 0; + }; + + struct saa1099_noise + { + saa1099_noise() { } + + /* vars to simulate the noise generator output */ + double counter = 0.0; + double freq = 0.0; + uint32_t level = 0xFFFFFFFF; /* noise polynomial shifter */ + }; + void envelope_w(int ch); -private: sound_stream *m_stream; /* our stream */ int m_noise_params[2]; /* noise generators parameters */ int m_env_enable[2]; /* envelope generators enable */ @@ -106,7 +89,6 @@ private: int m_master_clock; }; -extern const device_type SAA1099; - +DECLARE_DEVICE_TYPE(SAA1099, saa1099_device) -#endif /* __SAA1099_H__ */ +#endif // MAME_SOUND_SAA1099_H diff --git a/src/devices/sound/samples.cpp b/src/devices/sound/samples.cpp index 3363d8ad026..40ff619cdce 100644 --- a/src/devices/sound/samples.cpp +++ b/src/devices/sound/samples.cpp @@ -23,8 +23,10 @@ ***************************************************************************/ #include "emu.h" -#include "emuopts.h" #include "samples.h" + +#include "emuopts.h" + #include "flac.h" @@ -33,7 +35,7 @@ //************************************************************************** // device type definition -const device_type SAMPLES = device_creator; +DEFINE_DEVICE_TYPE(SAMPLES, samples_device, "samples", "Samples") @@ -46,18 +48,15 @@ const device_type SAMPLES = device_creator; //------------------------------------------------- samples_device::samples_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, SAMPLES, "Samples", tag, owner, clock, "samples", __FILE__), - device_sound_interface(mconfig, *this), - m_channels(0), - m_names(nullptr) + : samples_device(mconfig, SAMPLES, tag, owner, clock) { } -samples_device::samples_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_sound_interface(mconfig, *this), - m_channels(0), - m_names(nullptr) +samples_device::samples_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) + , device_sound_interface(mconfig, *this) + , m_channels(0) + , m_names(nullptr) { } diff --git a/src/devices/sound/samples.h b/src/devices/sound/samples.h index 798dccc588f..7b0c4cc3446 100644 --- a/src/devices/sound/samples.h +++ b/src/devices/sound/samples.h @@ -8,8 +8,8 @@ ***************************************************************************/ -#ifndef MAME_DEVICES_SOUND_SAMPLES_H -#define MAME_DEVICES_SOUND_SAMPLES_H +#ifndef MAME_SOUND_SAMPLES_H +#define MAME_SOUND_SAMPLES_H #pragma once @@ -19,7 +19,7 @@ //************************************************************************** // device type definition -extern const device_type SAMPLES; +DECLARE_DEVICE_TYPE(SAMPLES, samples_device) @@ -33,12 +33,10 @@ extern const device_type SAMPLES; #define MCFG_SAMPLES_NAMES(_names) \ samples_device::static_set_samples_names(*device, _names); -typedef device_delegate samples_start_cb_delegate; - #define SAMPLES_START_CB_MEMBER(_name) void _name() #define MCFG_SAMPLES_START_CB(_class, _method) \ - samples_device::set_samples_start_callback(*device, samples_start_cb_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); + samples_device::set_samples_start_callback(*device, samples_device::start_cb_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); //************************************************************************** // TYPE DEFINITIONS @@ -50,13 +48,15 @@ class samples_device : public device_t, public device_sound_interface { public: + typedef device_delegate start_cb_delegate; + // construction/destruction samples_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // static configuration helpers static void static_set_channels(device_t &device, uint8_t channels) { downcast(device).m_channels = channels; } static void static_set_samples_names(device_t &device, const char *const *names) { downcast(device).m_names = names; } - static void set_samples_start_callback(device_t &device, samples_start_cb_delegate callback) { downcast(device).m_samples_start_cb = callback; } + static void set_samples_start_callback(device_t &device, start_cb_delegate &&cb) { downcast(device).m_samples_start_cb = std::move(cb); } // getters bool playing(uint8_t channel) const; @@ -87,11 +87,10 @@ public: // interface uint8_t m_channels; // number of discrete audio channels needed const char *const *m_names; // array of sample names - samples_start_cb_delegate m_samples_start_cb; // optional callback protected: // subclasses can do it this way - samples_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); + samples_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); // device-level overrides virtual void device_start() override; @@ -121,14 +120,16 @@ protected: static bool read_flac_sample(emu_file &file, sample_t &sample); bool load_samples(); + start_cb_delegate m_samples_start_cb; // optional callback + // internal state std::vector m_channel; std::vector m_sample; // internal constants - static const uint8_t FRAC_BITS = 24; - static const uint32_t FRAC_ONE = 1 << FRAC_BITS; - static const uint32_t FRAC_MASK = FRAC_ONE - 1; + static constexpr uint8_t FRAC_BITS = 24; + static constexpr uint32_t FRAC_ONE = 1 << FRAC_BITS; + static constexpr uint32_t FRAC_MASK = FRAC_ONE - 1; }; // iterator, since lots of people are interested in these devices @@ -148,12 +149,12 @@ public: } // getters - const char *altbasename() const { return (m_samples.m_names != nullptr && m_samples.m_names[0] != nullptr && m_samples.m_names[0][0] == '*') ? &m_samples.m_names[0][1] : nullptr; } + const char *altbasename() const { return (m_samples.m_names && m_samples.m_names[0] && m_samples.m_names[0][0] == '*') ? &m_samples.m_names[0][1] : nullptr; } // iteration const char *first() { - if (m_samples.m_names == nullptr || m_samples.m_names[0] == nullptr) + if (!m_samples.m_names || !m_samples.m_names[0]) return nullptr; m_current = 0; if (m_samples.m_names[0][0] == '*') @@ -163,7 +164,7 @@ public: const char *next() { - if (m_current == -1 || m_samples.m_names[m_current] == nullptr) + if (m_current == -1 || !m_samples.m_names[m_current]) return nullptr; return m_samples.m_names[m_current++]; } @@ -171,9 +172,9 @@ public: // counting int count() { - int save = m_current; + int const save = m_current; int result = 0; - for (const char *scan = first(); scan != nullptr; scan = next()) + for (const char *scan = first(); scan; scan = next()) result++; m_current = save; return result; @@ -185,5 +186,4 @@ private: int m_current; }; - -#endif // MAME_DEVICES_SOUND_SAMPLES_H +#endif // MAME_SOUND_SAMPLES_H diff --git a/src/devices/sound/sb0400.cpp b/src/devices/sound/sb0400.cpp index 6fbbf0a2f85..22b256ccfbe 100644 --- a/src/devices/sound/sb0400.cpp +++ b/src/devices/sound/sb0400.cpp @@ -3,13 +3,13 @@ #include "emu.h" #include "sb0400.h" -const device_type SB0400 = device_creator; +DEFINE_DEVICE_TYPE(SB0400, sb0400_device, "sb0400", "Creative Labs SB0400 Audigy2 Value") DEVICE_ADDRESS_MAP_START(map, 32, sb0400_device) ADDRESS_MAP_END sb0400_device::sb0400_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : pci_device(mconfig, SB0400, "Creative Labs SB0400 Audigy2 Value", tag, owner, clock, "sb0400", __FILE__) + : pci_device(mconfig, SB0400, tag, owner, clock) { } diff --git a/src/devices/sound/sb0400.h b/src/devices/sound/sb0400.h index cf4c899b9ee..b2d612a6dc9 100644 --- a/src/devices/sound/sb0400.h +++ b/src/devices/sound/sb0400.h @@ -2,8 +2,8 @@ // copyright-holders:Olivier Galibert // Creative labs SB0400 Audigy2 Value -#ifndef SB0400_H -#define SB0400_H +#ifndef MAME_SOUND_SB0400_H +#define MAME_SOUND_SB0400_H #include "machine/pci.h" @@ -22,6 +22,6 @@ private: DECLARE_ADDRESS_MAP(map, 32); }; -extern const device_type SB0400; +DECLARE_DEVICE_TYPE(SB0400, sb0400_device) -#endif +#endif // MAME_SOUND_SB0400_H diff --git a/src/devices/sound/scsp.cpp b/src/devices/sound/scsp.cpp index 41bcaf13c8d..9ca21c9db55 100644 --- a/src/devices/sound/scsp.cpp +++ b/src/devices/sound/scsp.cpp @@ -31,9 +31,10 @@ */ #include "emu.h" -#include "sound/cdda.h" #include "scsp.h" +#include "sound/cdda.h" + #define ICLIP16(x) (x<-32768)?-32768:((x>32767)?32767:x) @@ -111,19 +112,19 @@ static const double DRTimes[64]={100000/*infinity*/,100000/*infinity*/,118200.0, 28.0,25.0,22.0,18.0,14.0,12.0,11.0,8.5,7.1,6.1,5.4,4.3,3.6,3.1}; #define MEM4B() ((m_udata.data[0]>>0x0)&0x0200) -#define DAC18B() ((m_udata.data[0]>>0x0)&0x0100) +#define DAC18B() ((m_udata.data[0]>>0x0)&0x0100) #define MVOL() ((m_udata.data[0]>>0x0)&0x000F) #define RBL() ((m_udata.data[1]>>0x7)&0x0003) #define RBP() ((m_udata.data[1]>>0x0)&0x003F) -#define MOFULL() ((m_udata.data[2]>>0x0)&0x1000) -#define MOEMPTY() ((m_udata.data[2]>>0x0)&0x0800) +#define MOFULL() ((m_udata.data[2]>>0x0)&0x1000) +#define MOEMPTY() ((m_udata.data[2]>>0x0)&0x0800) #define MIOVF() ((m_udata.data[2]>>0x0)&0x0400) -#define MIFULL() ((m_udata.data[2]>>0x0)&0x0200) -#define MIEMPTY() ((m_udata.data[2]>>0x0)&0x0100) +#define MIFULL() ((m_udata.data[2]>>0x0)&0x0200) +#define MIEMPTY() ((m_udata.data[2]>>0x0)&0x0100) -#define SCILV0() ((m_udata.data[0x24/2]>>0x0)&0xff) -#define SCILV1() ((m_udata.data[0x26/2]>>0x0)&0xff) -#define SCILV2() ((m_udata.data[0x28/2]>>0x0)&0xff) +#define SCILV0() ((m_udata.data[0x24/2]>>0x0)&0xff) +#define SCILV1() ((m_udata.data[0x26/2]>>0x0)&0xff) +#define SCILV2() ((m_udata.data[0x28/2]>>0x0)&0xff) #define SCIEX0 0 #define SCIEX1 1 @@ -141,10 +142,10 @@ static const double DRTimes[64]={100000/*infinity*/,100000/*infinity*/,118200.0, static const float SDLT[8]={-1000000.0f,-36.0f,-30.0f,-24.0f,-18.0f,-12.0f,-6.0f,0.0f}; -const device_type SCSP = device_creator; +DEFINE_DEVICE_TYPE(SCSP, scsp_device, "scsp", "YMF292-F SCSP") scsp_device::scsp_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, SCSP, "SCSP", tag, owner, clock, "scsp", __FILE__), + : device_t(mconfig, SCSP, tag, owner, clock), device_sound_interface(mconfig, *this), m_roffset(0), m_irq_cb(*this), @@ -499,7 +500,7 @@ void scsp_device::init() { int i; - SCSPDSP_Init(&m_DSP); + m_DSP.Init(); m_IrqTimA = m_IrqTimBC = m_IrqMidi = 0; m_MidiR=m_MidiW = 0; @@ -954,7 +955,7 @@ void scsp_device::w16(address_space &space,unsigned int addr,unsigned short val) if(addr==0xBF0) { - SCSPDSP_Start(&m_DSP); + m_DSP.Start(); } } } @@ -1241,7 +1242,7 @@ void scsp_device::DoMasterSamples(int nsamples) for(sl=0;sl<32;++sl) { -#if FM_DELAY +#if SCSP_FM_DELAY m_RBUFDST=m_DELAYBUF+m_DELAYPTR; #else m_RBUFDST=m_RINGBUF+m_BUFPTR; @@ -1255,7 +1256,7 @@ void scsp_device::DoMasterSamples(int nsamples) sample=UpdateSlot(slot); Enc=((TL(slot))<<0x0)|((IMXL(slot))<<0xd); - SCSPDSP_SetSample(&m_DSP,(sample*m_LPANTABLE[Enc])>>(SHIFT-2),ISEL(slot),IMXL(slot)); + m_DSP.SetSample((sample*m_LPANTABLE[Enc])>>(SHIFT-2),ISEL(slot),IMXL(slot)); Enc=((TL(slot))<<0x0)|((DIPAN(slot))<<0x8)|((DISDL(slot))<<0xd); { smpl+=(sample*m_LPANTABLE[Enc])>>SHIFT; @@ -1263,18 +1264,18 @@ void scsp_device::DoMasterSamples(int nsamples) } } -#if FM_DELAY - m_RINGBUF[(m_BUFPTR+64-(FM_DELAY-1))&63] = m_DELAYBUF[(m_DELAYPTR+FM_DELAY-(FM_DELAY-1))%FM_DELAY]; +#if SCSP_FM_DELAY + m_RINGBUF[(m_BUFPTR+64-(SCSP_FM_DELAY-1))&63] = m_DELAYBUF[(m_DELAYPTR+SCSP_FM_DELAY-(SCSP_FM_DELAY-1))%SCSP_FM_DELAY]; #endif ++m_BUFPTR; m_BUFPTR&=63; -#if FM_DELAY +#if SCSP_FM_DELAY ++m_DELAYPTR; - if(m_DELAYPTR>FM_DELAY-1) m_DELAYPTR=0; + if(m_DELAYPTR>SCSP_FM_DELAY-1) m_DELAYPTR=0; #endif } - SCSPDSP_Step(&m_DSP); + m_DSP.Step(); for(i=0;i<16;++i) { diff --git a/src/devices/sound/scsp.h b/src/devices/sound/scsp.h index fe3101b7827..54aad08ae5e 100644 --- a/src/devices/sound/scsp.h +++ b/src/devices/sound/scsp.h @@ -4,14 +4,14 @@ SCSP (YMF292-F) header */ -#pragma once +#ifndef MAME_SOUND_SCSP_H +#define MAME_SOUND_SCSP_H -#ifndef __SCSP_H__ -#define __SCSP_H__ +#pragma once #include "scspdsp.h" -#define FM_DELAY 0 // delay in number of slots processed before samples are written to the FM ring buffer +#define SCSP_FM_DELAY 0 // delay in number of slots processed before samples are written to the FM ring buffer // driver code indicates should be 4, but sounds distorted then @@ -25,54 +25,6 @@ devcb = &scsp_device::set_main_irq_callback(*device, DEVCB_##_devcb); -enum SCSP_STATE {SCSP_ATTACK,SCSP_DECAY1,SCSP_DECAY2,SCSP_RELEASE}; - -struct SCSP_EG_t -{ - int volume; // - SCSP_STATE state; - int step; - //step vals - int AR; //Attack - int D1R; //Decay1 - int D2R; //Decay2 - int RR; //Release - - int DL; //Decay level - uint8_t EGHOLD; - uint8_t LPLINK; -}; - -struct SCSP_LFO_t -{ - uint16_t phase; - uint32_t phase_step; - int *table; - int *scale; -}; - -struct SCSP_SLOT -{ - union - { - uint16_t data[0x10]; //only 0x1a bytes used - uint8_t datab[0x20]; - } udata; - - uint8_t Backwards; //the wave is playing backwards - uint8_t active; //this slot is currently playing - uint8_t *base; //samples base address - uint32_t cur_addr; //current play address (24.8) - uint32_t nxt_addr; //next play address - uint32_t step; //pitch step (24.8) - SCSP_EG_t EG; //Envelope - SCSP_LFO_t PLFO; //Phase LFO - SCSP_LFO_t ALFO; //Amplitude LFO - int slot; - int16_t Prev; //Previous sample (for interpolation) -}; - - class scsp_device : public device_t, public device_sound_interface { @@ -80,8 +32,8 @@ public: scsp_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); static void set_roffset(device_t &device, int roffset) { downcast(device).m_roffset = roffset; } - template static devcb_base &set_irq_callback(device_t &device, _Object object) { return downcast(device).m_irq_cb.set_callback(object); } - template static devcb_base &set_main_irq_callback(device_t &device, _Object object) { return downcast(device).m_main_irq_cb.set_callback(object); } + template static devcb_base &set_irq_callback(device_t &device, Object &&cb) { return downcast(device).m_irq_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_main_irq_callback(device_t &device, Object &&cb) { return downcast(device).m_main_irq_cb.set_callback(std::forward(cb)); } // SCSP register access DECLARE_READ16_MEMBER( read ); @@ -101,6 +53,53 @@ protected: virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; private: + enum SCSP_STATE { SCSP_ATTACK, SCSP_DECAY1, SCSP_DECAY2, SCSP_RELEASE }; + + struct SCSP_EG_t + { + int volume; // + SCSP_STATE state; + int step; + //step vals + int AR; //Attack + int D1R; //Decay1 + int D2R; //Decay2 + int RR; //Release + + int DL; //Decay level + uint8_t EGHOLD; + uint8_t LPLINK; + }; + + struct SCSP_LFO_t + { + uint16_t phase; + uint32_t phase_step; + int *table; + int *scale; + }; + + struct SCSP_SLOT + { + union + { + uint16_t data[0x10]; //only 0x1a bytes used + uint8_t datab[0x20]; + } udata; + + uint8_t Backwards; //the wave is playing backwards + uint8_t active; //this slot is currently playing + uint8_t *base; //samples base address + uint32_t cur_addr; //current play address (24.8) + uint32_t nxt_addr; //next play address + uint32_t step; //pitch step (24.8) + SCSP_EG_t EG; //Envelope + SCSP_LFO_t PLFO; //Phase LFO + SCSP_LFO_t ALFO; //Amplitude LFO + int slot; + int16_t Prev; //Previous sample (for interpolation) + }; + int m_roffset; /* offset in the region */ devcb_write8 m_irq_cb; /* irq callback */ devcb_write_line m_main_irq_cb; @@ -114,8 +113,8 @@ private: SCSP_SLOT m_Slots[32]; int16_t m_RINGBUF[128]; uint8_t m_BUFPTR; -#if FM_DELAY - int16_t m_DELAYBUF[FM_DELAY]; +#if SCSP_FM_DELAY + int16_t m_DELAYBUF[SCSP_FM_DELAY]; uint8_t m_DELAYPTR; #endif uint8_t *m_SCSPRAM; @@ -209,7 +208,6 @@ private: void LFO_ComputeStep(SCSP_LFO_t *LFO, uint32_t LFOF, uint32_t LFOWS, uint32_t LFOS, int ALFO); }; -extern const device_type SCSP; - +DECLARE_DEVICE_TYPE(SCSP, scsp_device) -#endif /* __SCSP_H__ */ +#endif // MAME_SOUND_SCSP_H diff --git a/src/devices/sound/scspdsp.cpp b/src/devices/sound/scspdsp.cpp index aa98600577e..7a93d27cc86 100644 --- a/src/devices/sound/scspdsp.cpp +++ b/src/devices/sound/scspdsp.cpp @@ -3,15 +3,14 @@ #include "emu.h" #include "scspdsp.h" -static uint16_t PACK(int32_t val) -{ - uint32_t temp; - int sign,exponent,k; +namespace { - sign = (val >> 23) & 0x1; - temp = (val ^ (val << 1)) & 0xFFFFFF; - exponent = 0; - for (k=0; k<12; k++) +uint16_t PACK(int32_t val) +{ + int const sign = BIT(val, 23); + uint32_t temp = (val ^ (val << 1)) & 0xFFFFFF; + int exponent = 0; + for (int k=0; k<12; k++) { if (temp & 0x800000) break; @@ -27,25 +26,24 @@ static uint16_t PACK(int32_t val) val |= sign << 15; val |= exponent << 11; - return (uint16_t)val; + return uint16_t(val); } static int32_t UNPACK(uint16_t val) { - int sign,exponent,mantissa; - int32_t uval; - - sign = (val >> 15) & 0x1; - exponent = (val >> 11) & 0xF; - mantissa = val & 0x7FF; - uval = mantissa << 11; + int const sign = BIT(val, 15); + int exponent = (val >> 11) & 0xF; + int const mantissa = val & 0x7FF; + uint32_t uval = mantissa << 11; if (exponent > 11) { exponent = 11; uval |= sign << 22; } else + { uval |= (sign ^ 1) << 22; + } uval |= sign << 23; uval <<= 8; uval >>= 8; @@ -54,82 +52,80 @@ static int32_t UNPACK(uint16_t val) return uval; } -void SCSPDSP_Init(SCSPDSP *DSP) +} // anonymous namespace + + +void SCSPDSP::Init() { - memset(DSP,0,sizeof(SCSPDSP)); - DSP->RBL=0x8000; - DSP->Stopped=1; + memset(this, 0, sizeof(*this)); + RBL = 0x8000; + Stopped = 1; } -void SCSPDSP_Step(SCSPDSP *DSP) +void SCSPDSP::Step() { - int32_t ACC=0; //26 bit - int32_t SHIFTED=0; //24 bit - int32_t X; //24 bit - int32_t Y=0; //13 bit - int32_t B; //26 bit - int32_t INPUTS; //24 bit - int32_t MEMVAL=0; - int32_t FRC_REG=0; //13 bit - int32_t Y_REG=0; //24 bit - uint32_t ADDR; - uint32_t ADRS_REG=0; //13 bit - int step; - - if(DSP->Stopped) + if (Stopped) return; - memset(DSP->EFREG,0,2*16); + std::fill(std::begin(EFREG), std::end(EFREG), 0); + #if 0 int dump=0; FILE *f=nullptr; if(dump) f=fopen("dsp.txt","wt"); #endif - for(step=0;stepLastStep;++step) + + int32_t ACC=0; //26 bit + int32_t SHIFTED=0; //24 bit + int32_t Y=0; //13 bit + int32_t MEMVAL=0; + int32_t FRC_REG=0; //13 bit + int32_t Y_REG=0; //24 bit + uint32_t ADRS_REG=0; //13 bit + + for (int step = 0; step < /*128*/LastStep; ++step) { - uint16_t *IPtr=DSP->MPRO+step*4; - -// if(IPtr[0]==0 && IPtr[1]==0 && IPtr[2]==0 && IPtr[3]==0) -// break; - - uint32_t TRA=(IPtr[0]>>8)&0x7F; - uint32_t TWT=(IPtr[0]>>7)&0x01; - uint32_t TWA=(IPtr[0]>>0)&0x7F; - - uint32_t XSEL=(IPtr[1]>>15)&0x01; - uint32_t YSEL=(IPtr[1]>>13)&0x03; - uint32_t IRA=(IPtr[1]>>6)&0x3F; - uint32_t IWT=(IPtr[1]>>5)&0x01; - uint32_t IWA=(IPtr[1]>>0)&0x1F; - - uint32_t TABLE=(IPtr[2]>>15)&0x01; - uint32_t MWT=(IPtr[2]>>14)&0x01; - uint32_t MRD=(IPtr[2]>>13)&0x01; - uint32_t EWT=(IPtr[2]>>12)&0x01; - uint32_t EWA=(IPtr[2]>>8)&0x0F; - uint32_t ADRL=(IPtr[2]>>7)&0x01; - uint32_t FRCL=(IPtr[2]>>6)&0x01; - uint32_t SHIFT=(IPtr[2]>>4)&0x03; - uint32_t YRL=(IPtr[2]>>3)&0x01; - uint32_t NEGB=(IPtr[2]>>2)&0x01; - uint32_t ZERO=(IPtr[2]>>1)&0x01; - uint32_t BSEL=(IPtr[2]>>0)&0x01; - - uint32_t NOFL=(IPtr[3]>>15)&1; //???? - uint32_t COEF=(IPtr[3]>>9)&0x3f; - - uint32_t MASA=(IPtr[3]>>2)&0x1f; //??? - uint32_t ADREB=(IPtr[3]>>1)&0x1; - uint32_t NXADR=(IPtr[3]>>0)&0x1; - - int64_t v; + uint16_t *const IPtr = MPRO + step*4; + + //if (!IPtr[0] && !IPtr[1] && !IPtr[2] && !IPtr[3]) + //break; + + uint32_t const TRA =(IPtr[0] >> 8) & 0x7F; + uint32_t const TWT =(IPtr[0] >> 7) & 0x01; + uint32_t const TWA =(IPtr[0] >> 0) & 0x7F; + + uint32_t const XSEL =(IPtr[1] >> 15) & 0x01; + uint32_t const YSEL =(IPtr[1] >> 13) & 0x03; + uint32_t const IRA =(IPtr[1] >> 6) & 0x3F; + uint32_t const IWT =(IPtr[1] >> 5) & 0x01; + uint32_t const IWA =(IPtr[1] >> 0) & 0x1F; + + uint32_t const TABLE =(IPtr[2] >> 15) & 0x01; + uint32_t const MWT =(IPtr[2] >> 14) & 0x01; + uint32_t const MRD =(IPtr[2] >> 13) & 0x01; + uint32_t const EWT =(IPtr[2] >> 12) & 0x01; + uint32_t const EWA =(IPtr[2] >> 8) & 0x0F; + uint32_t const ADRL =(IPtr[2] >> 7) & 0x01; + uint32_t const FRCL =(IPtr[2] >> 6) & 0x01; + uint32_t const SHIFT =(IPtr[2] >> 4) & 0x03; + uint32_t const YRL =(IPtr[2] >> 3) & 0x01; + uint32_t const NEGB =(IPtr[2] >> 2) & 0x01; + uint32_t const ZERO =(IPtr[2] >> 1) & 0x01; + uint32_t const BSEL =(IPtr[2] >> 0) & 0x01; + + uint32_t const NOFL =(IPtr[3] >> 15) & 0x01; //???? + uint32_t const COEF =(IPtr[3] >> 9) & 0x3f; + + uint32_t const MASA =(IPtr[3] >> 2) & 0x1f; //??? + uint32_t const ADREB =(IPtr[3] >> 1) & 0x01; + uint32_t const NXADR =(IPtr[3] >> 0) & 0x01; //operations are done at 24 bit precision #if 0 - if(MASA) + if (MASA) int a=1; - if(NOFL) + if (NOFL) int a=1; // int dump=0; @@ -153,203 +149,194 @@ void SCSPDSP_Step(SCSPDSP *DSP) fprintf(f,"\n"); } #endif + //INPUTS RW -// colmns97 hits this -// assert(IRA<0x32); - if(IRA<=0x1f) - INPUTS=DSP->MEMS[IRA]; - else if(IRA<=0x2F) - INPUTS=DSP->MIXS[IRA-0x20]<<4; //MIXS is 20 bit - else if(IRA<=0x31) - INPUTS=0; + // colmns97 hits this + //assert(IRA<0x32); + int32_t INPUTS; // 24-bit + if (IRA <= 0x1f) + INPUTS = MEMS[IRA]; + else if (IRA <= 0x2F) + INPUTS = MIXS[IRA - 0x20] << 4; //MIXS is 20 bit + else if (IRA <= 0x31) + INPUTS = 0; else return; - INPUTS<<=8; - INPUTS>>=8; - //if(INPUTS&0x00800000) - // INPUTS|=0xFF000000; + INPUTS <<= 8; + INPUTS >>= 8; + //if(INPUTS & 0x00800000) + //INPUTS |= 0xFF000000; - if(IWT) + if (IWT) { - DSP->MEMS[IWA]=MEMVAL; //MEMVAL was selected in previous MRD - if(IRA==IWA) - INPUTS=MEMVAL; + MEMS[IWA] = MEMVAL; // MEMVAL was selected in previous MRD + if (IRA == IWA) + INPUTS = MEMVAL; } //Operand sel - //B - if(!ZERO) + int32_t B; // 26-bit + if (!ZERO) { - if(BSEL) - B=ACC; + if (BSEL) + B = ACC; else { - B=DSP->TEMP[(TRA+DSP->DEC)&0x7F]; - B<<=8; - B>>=8; - //if(B&0x00800000) - // B|=0xFF000000; //Sign extend + B = TEMP[(TRA + DEC) & 0x7F]; + B <<= 8; + B >>= 8; + //if (B & 0x00800000) + //B |= 0xFF000000; //Sign extend } - if(NEGB) - B=0-B; + if (NEGB) + B = 0 - B; } else - B=0; + B = 0; - //X - if(XSEL) - X=INPUTS; + int32_t X; // 24-bit + if (XSEL) + X = INPUTS; else { - X=DSP->TEMP[(TRA+DSP->DEC)&0x7F]; - X<<=8; - X>>=8; - //if(X&0x00800000) - // X|=0xFF000000; + X = TEMP[(TRA + DEC) & 0x7F]; + X <<= 8; + X >>= 8; + //if (X & 0x00800000) + //X |= 0xFF000000; } - //Y - if(YSEL==0) - Y=FRC_REG; - else if(YSEL==1) - Y=DSP->COEF[COEF]>>3; //COEF is 16 bits - else if(YSEL==2) - Y=(Y_REG>>11)&0x1FFF; - else if(YSEL==3) - Y=(Y_REG>>4)&0x0FFF; + if (YSEL == 0) + Y = FRC_REG; + else if (YSEL == 1) + Y = this->COEF[COEF] >> 3; //COEF is 16 bits + else if (YSEL == 2) + Y = (Y_REG >> 11) & 0x1FFF; + else if (YSEL == 3) + Y = (Y_REG >> 4) & 0x0FFF; - if(YRL) - Y_REG=INPUTS; + if (YRL) + Y_REG = INPUTS; //Shifter - if(SHIFT==0) + if (SHIFT == 0) { - SHIFTED=ACC; - if(SHIFTED>0x007FFFFF) - SHIFTED=0x007FFFFF; - if(SHIFTED<(-0x00800000)) - SHIFTED=-0x00800000; + SHIFTED = std::max(std::min(ACC, 0x007FFFFF), -0x00800000); } - else if(SHIFT==1) + else if (SHIFT == 1) { - SHIFTED=ACC*2; - if(SHIFTED>0x007FFFFF) - SHIFTED=0x007FFFFF; - if(SHIFTED<(-0x00800000)) - SHIFTED=-0x00800000; + SHIFTED = std::max(std::min(ACC * 2, 0x007FFFFF), -0x00800000); } - else if(SHIFT==2) + else if (SHIFT == 2) { - SHIFTED=ACC*2; - SHIFTED<<=8; - SHIFTED>>=8; - //SHIFTED&=0x00FFFFFF; - //if(SHIFTED&0x00800000) - // SHIFTED|=0xFF000000; + SHIFTED = ACC * 2; + SHIFTED <<= 8; + SHIFTED >>= 8; + //SHIFTED &= 0x00FFFFFF; + //if (SHIFTED & 0x00800000) + //SHIFTED |= 0xFF000000; } else if(SHIFT==3) { - SHIFTED=ACC; - SHIFTED<<=8; - SHIFTED>>=8; - //SHIFTED&=0x00FFFFFF; - //if(SHIFTED&0x00800000) - // SHIFTED|=0xFF000000; + SHIFTED = ACC; + SHIFTED <<= 8; + SHIFTED >>= 8; + //SHIFTED &= 0x00FFFFFF; + //if (SHIFTED & 0x00800000) + //SHIFTED |= 0xFF000000; } //ACCUM - Y<<=19; - Y>>=19; - //if(Y&0x1000) - // Y|=0xFFFFF000; + Y <<= 19; + Y >>= 19; + //if (Y & 0x1000) + //Y |= 0xFFFFF000; - v=(((int64_t) X*(int64_t) Y)>>12); - ACC=(int) v+B; + int64_t const v = (int64_t(X) * int64_t(Y)) >> 12; + ACC = int(v + B); - if(TWT) - DSP->TEMP[(TWA+DSP->DEC)&0x7F]=SHIFTED; + if (TWT) + TEMP[(TWA + DEC) & 0x7F] = SHIFTED; - if(FRCL) + if (FRCL) { - if(SHIFT==3) - FRC_REG=SHIFTED&0x0FFF; + if(SHIFT == 3) + FRC_REG = SHIFTED & 0x0FFF; else - FRC_REG=(SHIFTED>>11)&0x1FFF; + FRC_REG = (SHIFTED >> 11) & 0x1FFF; } - if(MRD || MWT) - //if(0) + if (MRD || MWT) + //if (0) { - ADDR=DSP->MADRS[MASA]; - if(!TABLE) - ADDR+=DSP->DEC; - if(ADREB) - ADDR+=ADRS_REG&0x0FFF; - if(NXADR) + uint32_t ADDR = MADRS[MASA]; + if (!TABLE) + ADDR += DEC; + if (ADREB) + ADDR += ADRS_REG & 0x0FFF; + if (NXADR) ADDR++; - if(!TABLE) - ADDR&=DSP->RBL-1; + if (!TABLE) + ADDR &= RBL - 1; else - ADDR&=0xFFFF; - //ADDR<<=1; - //ADDR+=DSP->RBP<<13; - //MEMVAL=DSP->SCSPRAM[ADDR>>1]; - ADDR+=DSP->RBP<<12; + ADDR &= 0xFFFF; + //ADDR <<= 1; + //ADDR += RBP << 13; + //MEMVAL = SCSPRAM[ADDR >> 1]; + ADDR += RBP << 12; if (ADDR > 0x7ffff) ADDR = 0; - if(MRD && (step&1)) //memory only allowed on odd? DoA inserts NOPs on even + if (MRD && (step & 1)) //memory only allowed on odd? DoA inserts NOPs on even { - if(NOFL) - MEMVAL=DSP->SCSPRAM[ADDR]<<8; + if (NOFL) + MEMVAL = SCSPRAM[ADDR] << 8; else - MEMVAL=UNPACK(DSP->SCSPRAM[ADDR]); + MEMVAL = UNPACK(SCSPRAM[ADDR]); } - if(MWT && (step&1)) + if (MWT && (step & 1)) { - if(NOFL) - DSP->SCSPRAM[ADDR]=SHIFTED>>8; + if (NOFL) + SCSPRAM[ADDR] = SHIFTED >> 8; else - DSP->SCSPRAM[ADDR]=PACK(SHIFTED); + SCSPRAM[ADDR] = PACK(SHIFTED); } } - if(ADRL) + if (ADRL) { - if(SHIFT==3) - ADRS_REG=(SHIFTED>>12)&0xFFF; + if (SHIFT == 3) + ADRS_REG = (SHIFTED >> 12) & 0xFFF; else - ADRS_REG=(INPUTS>>16); + ADRS_REG = INPUTS >> 16; } - if(EWT) - DSP->EFREG[EWA]+=SHIFTED>>8; + if (EWT) + EFREG[EWA] += SHIFTED >> 8; } - --DSP->DEC; - memset(DSP->MIXS,0,4*16); -// if(f) -// fclose(f); + --DEC; + std::fill(std::begin(MIXS), std::end(MIXS), 0); + //if (f) + //fclose(f); } -void SCSPDSP_SetSample(SCSPDSP *DSP,int32_t sample,int SEL,int MXL) +void SCSPDSP::SetSample(int32_t sample,int SEL,int MXL) { - //DSP->MIXS[SEL]+=sample<<(MXL+1)/*7*/; - DSP->MIXS[SEL]+=sample; -// if(MXL) -// int a=1; + //MIXS[SEL] += sample << (MXL + 1)/*7*/; + MIXS[SEL] += sample; + //if (MXL) + //int a = 1; } -void SCSPDSP_Start(SCSPDSP *DSP) +void SCSPDSP::Start() { + Stopped = 0; int i; - DSP->Stopped=0; - for(i=127;i>=0;--i) + for (i = 127; i >= 0; --i) { - uint16_t *IPtr=DSP->MPRO+i*4; - - if(IPtr[0]!=0 || IPtr[1]!=0 || IPtr[2]!=0 || IPtr[3]!=0) + uint16_t const *const IPtr = MPRO + (i * 4); + if (IPtr[0] || IPtr[1] || IPtr[2] || IPtr[3]) break; } - DSP->LastStep=i+1; - + LastStep = i + 1; } diff --git a/src/devices/sound/scspdsp.h b/src/devices/sound/scspdsp.h index 7b8e4eda2dc..29bcb43c241 100644 --- a/src/devices/sound/scspdsp.h +++ b/src/devices/sound/scspdsp.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:ElSemi, R. Belmont -#pragma once +#ifndef MAME_SOUND_SCSPDSP_H +#define MAME_SOUND_SCSPDSP_H -#ifndef __SCSPDSP_H__ -#define __SCSPDSP_H__ +#pragma once //the DSP Context struct SCSPDSP @@ -32,11 +32,11 @@ struct SCSPDSP int Stopped; int LastStep; -}; -void SCSPDSP_Init(SCSPDSP *DSP); -void SCSPDSP_SetSample(SCSPDSP *DSP, int32_t sample, int32_t SEL, int32_t MXL); -void SCSPDSP_Step(SCSPDSP *DSP); -void SCSPDSP_Start(SCSPDSP *DSP); + void Init(); + void SetSample(int32_t sample, int32_t SEL, int32_t MXL); + void Step(); + void Start(); +}; -#endif /* __SCSPDSP_H__ */ +#endif // MAME_SOUND_SCSPDSP_H diff --git a/src/devices/sound/segapcm.cpp b/src/devices/sound/segapcm.cpp index 9068dd262d0..86fdedfb206 100644 --- a/src/devices/sound/segapcm.cpp +++ b/src/devices/sound/segapcm.cpp @@ -9,7 +9,7 @@ // device type definition -const device_type SEGAPCM = device_creator; +DEFINE_DEVICE_TYPE(SEGAPCM, segapcm_device, "segapcm", "Sega PCM") //------------------------------------------------- @@ -17,7 +17,7 @@ const device_type SEGAPCM = device_creator; //------------------------------------------------- segapcm_device::segapcm_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, SEGAPCM, "Sega PCM", tag, owner, clock, "segapcm", __FILE__), + : device_t(mconfig, SEGAPCM, tag, owner, clock), device_sound_interface(mconfig, *this), device_rom_interface(mconfig, *this, 21), m_ram(nullptr), diff --git a/src/devices/sound/segapcm.h b/src/devices/sound/segapcm.h index 2ba7769f7d9..ec3e8d2dbfa 100644 --- a/src/devices/sound/segapcm.h +++ b/src/devices/sound/segapcm.h @@ -4,30 +4,27 @@ /* SEGA 8bit PCM */ /*********************************************************/ -#pragma once - -#ifndef __SEGAPCM_H__ -#define __SEGAPCM_H__ +#ifndef MAMESOUND_SEGAPCM_H +#define MAMESOUND_SEGAPCM_H -#define BANK_256 (11) -#define BANK_512 (12) -#define BANK_12M (13) -#define BANK_MASK7 (0x70<<16) -#define BANK_MASKF (0xf0<<16) -#define BANK_MASKF8 (0xf8<<16) +#pragma once //************************************************************************** // INTERFACE CONFIGURATION MACROS //************************************************************************** -#define MCFG_SEGAPCM_ADD(_tag, _clock) \ - MCFG_DEVICE_ADD(_tag, SEGAPCM, _clock) -#define MCFG_SEGAPCM_REPLACE(_tag, _clock) \ - MCFG_DEVICE_REPLACE(_tag, SEGAPCM, _clock) +#define MCFG_SEGAPCM_ADD(tag, clock) \ + MCFG_DEVICE_ADD((tag), SEGAPCM, (clock)) + +#define MCFG_SEGAPCM_REPLACE(tag, clock) \ + MCFG_DEVICE_REPLACE((tag), SEGAPCM, (clock)) -#define MCFG_SEGAPCM_BANK(_bank) \ - segapcm_device::set_bank(*device, _bank); +#define MCFG_SEGAPCM_BANK(bank) \ + segapcm_device::set_bank(*device, (segapcm_device::bank)); + +#define MCFG_SEGAPCM_BANK_MASK(bank, mask) \ + segapcm_device::set_bank(*device, (segapcm_device::bank) | (segapcm_device::mask)); //************************************************************************** @@ -39,8 +36,14 @@ class segapcm_device : public device_t, public device_rom_interface { public: + static constexpr int BANK_256 = 11; + static constexpr int BANK_512 = 12; + static constexpr int BANK_12M = 13; + static constexpr int BANK_MASK7 = 0x70 << 16; + static constexpr int BANK_MASKF = 0xf0 << 16; + static constexpr int BANK_MASKF8 = 0xf8 << 16; + segapcm_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~segapcm_device() { } // static configuration static void set_bank(device_t &device, int bank) { downcast(device).m_bank = bank; } @@ -67,7 +70,6 @@ private: sound_stream* m_stream; }; -extern const device_type SEGAPCM; - +DECLARE_DEVICE_TYPE(SEGAPCM, segapcm_device) -#endif /* __SEGAPCM_H__ */ +#endif // MAMESOUND_SEGAPCM_H diff --git a/src/devices/sound/sid.cpp b/src/devices/sound/sid.cpp index d39bc0ed037..1535c56a69e 100644 --- a/src/devices/sound/sid.cpp +++ b/src/devices/sound/sid.cpp @@ -15,24 +15,27 @@ */ #include "emu.h" -#include "sidvoice.h" -#include "sidenvel.h" #include "sid.h" -static std::unique_ptr filterTable; -static std::unique_ptr bandPassParam; +#include "sidenvel.h" + + +namespace { + +std::unique_ptr filterTable; +std::unique_ptr bandPassParam; #define lowPassParam filterTable -static float filterResTable[16]; +float filterResTable[16]; #define maxLogicalVoices 4 -static const int mix16monoMiddleIndex = 256*maxLogicalVoices/2; -static uint16_t mix16mono[256*maxLogicalVoices]; +const int mix16monoMiddleIndex = 256*maxLogicalVoices/2; +uint16_t mix16mono[256*maxLogicalVoices]; -static uint16_t zero16bit=0; /* either signed or unsigned */ +uint16_t zero16bit=0; /* either signed or unsigned */ //uint32_t splitBufferLen; -static void MixerInit(int threeVoiceAmplify) +void MixerInit(int threeVoiceAmplify) { long si; uint16_t ui; @@ -54,67 +57,69 @@ static void MixerInit(int threeVoiceAmplify) } +} // anonymous namespace -static inline void syncEm(SID6581_t *This) + +inline void SID6581_t::syncEm() { - int sync1 = (This->optr1.modulator->cycleLenCount <= 0); - int sync2 = (This->optr2.modulator->cycleLenCount <= 0); - int sync3 = (This->optr3.modulator->cycleLenCount <= 0); + bool const sync1(optr1.modulator->cycleLenCount <= 0); + bool const sync2(optr2.modulator->cycleLenCount <= 0); + bool const sync3(optr3.modulator->cycleLenCount <= 0); - This->optr1.cycleLenCount--; - This->optr2.cycleLenCount--; - This->optr3.cycleLenCount--; + optr1.cycleLenCount--; + optr2.cycleLenCount--; + optr3.cycleLenCount--; - if (This->optr1.sync && sync1) + if (optr1.sync && sync1) { - This->optr1.cycleLenCount = 0; - This->optr1.outProc = &sidWaveCalcNormal; + optr1.cycleLenCount = 0; + optr1.outProc = &sidOperator::wave_calc_normal; #if defined(DIRECT_FIXPOINT) optr1.waveStep.l = 0; #else - This->optr1.waveStep = (This->optr1.waveStepPnt = 0); + optr1.waveStep = optr1.waveStepPnt = 0; #endif } - if (This->optr2.sync && sync2) + if (optr2.sync && sync2) { - This->optr2.cycleLenCount = 0; - This->optr2.outProc = &sidWaveCalcNormal; + optr2.cycleLenCount = 0; + optr2.outProc = &sidOperator::wave_calc_normal; #if defined(DIRECT_FIXPOINT) - This->optr2.waveStep.l = 0; + optr2.waveStep.l = 0; #else - This->optr2.waveStep = (This->optr2.waveStepPnt = 0); + optr2.waveStep = optr2.waveStepPnt = 0; #endif } - if (This->optr3.sync && sync3) + if (optr3.sync && sync3) { - This->optr3.cycleLenCount = 0; - This->optr3.outProc = &sidWaveCalcNormal; + optr3.cycleLenCount = 0; + optr3.outProc = &sidOperator::wave_calc_normal; #if defined(DIRECT_FIXPOINT) optr3.waveStep.l = 0; #else - This->optr3.waveStep = (This->optr3.waveStepPnt = 0); + optr3.waveStep = optr3.waveStepPnt = 0; #endif } } -void sidEmuFillBuffer(SID6581_t *This, stream_sample_t *buffer, uint32_t bufferLen ) +void SID6581_t::fill_buffer(stream_sample_t *buffer, uint32_t bufferLen) { -//void* fill16bitMono( SID6581_t *This, void* buffer, uint32_t numberOfSamples ) +//void* SID6581_t::fill16bitMono(void* buffer, uint32_t numberOfSamples) for ( ; bufferLen > 0; bufferLen-- ) { - *buffer++ = (int16_t) mix16mono[(unsigned)(mix16monoMiddleIndex - +(*This->optr1.outProc)(&This->optr1) - +(*This->optr2.outProc)(&This->optr2) - +(This->optr3.outProc(&This->optr3)&This->optr3_outputmask) + *buffer++ = (int16_t) mix16mono[unsigned(mix16monoMiddleIndex + +(*optr1.outProc)(&optr1) + +(*optr2.outProc)(&optr2) + +(optr3.outProc(&optr3)&optr3_outputmask) /* hack for digi sounds does n't seam to come from a tone operator ghostbusters and goldrunner everything except volume zeroed */ - +(This->masterVolume<<2) + +(masterVolume<<2) // +(*sampleEmuRout)() )]; - syncEm(This); + syncEm(); } } @@ -123,29 +128,29 @@ void sidEmuFillBuffer(SID6581_t *This, stream_sample_t *buffer, uint32_t bufferL /* Reset. */ -int sidEmuReset(SID6581_t *This) +bool SID6581_t::reset() { - sidClearOperator( &This->optr1 ); - enveEmuResetOperator( &This->optr1 ); - sidClearOperator( &This->optr2 ); - enveEmuResetOperator( &This->optr2 ); - sidClearOperator( &This->optr3 ); - enveEmuResetOperator( &This->optr3 ); - This->optr3_outputmask = ~0; /* on */ + optr1.clear(); + enveEmuResetOperator( &optr1 ); + optr2.clear(); + enveEmuResetOperator( &optr2 ); + optr3.clear(); + enveEmuResetOperator( &optr3 ); + optr3_outputmask = ~0; /* on */ -// sampleEmuReset(); + //sampleEmuReset(); - This->filter.Type = (This->filter.CurType = 0); - This->filter.Value = 0; - This->filter.Dy = (This->filter.ResDy = 0); + filter.Type = filter.CurType = 0; + filter.Value = 0; + filter.Dy = filter.ResDy = 0; - sidEmuSet( &This->optr1 ); - sidEmuSet( &This->optr2 ); - sidEmuSet( &This->optr3 ); + optr1.set(); + optr2.set(); + optr3.set(); - sidEmuSet2( &This->optr1 ); - sidEmuSet2( &This->optr2 ); - sidEmuSet2( &This->optr3 ); + optr1.set2(); + optr2.set2(); + optr3.set2(); return true; } @@ -210,143 +215,147 @@ static void filterTableInit(running_machine &machine) filterResTable[15] = resDyMax; } -void sid6581_init (SID6581_t *This) +void SID6581_t::init() { - This->optr1.sid=This; - This->optr2.sid=This; - This->optr3.sid=This; - - This->optr1.modulator = &This->optr3; - This->optr3.carrier = &This->optr1; - This->optr1.filtVoiceMask = 1; + optr1.sid = this; + optr2.sid = this; + optr3.sid = this; - This->optr2.modulator = &This->optr1; - This->optr1.carrier = &This->optr2; - This->optr2.filtVoiceMask = 2; + optr1.modulator = &optr3; + optr3.carrier = &optr1; + optr1.filtVoiceMask = 1; - This->optr3.modulator = &This->optr2; - This->optr2.carrier = &This->optr3; - This->optr3.filtVoiceMask = 4; + optr2.modulator = &optr1; + optr1.carrier = &optr2; + optr2.filtVoiceMask = 2; + optr3.modulator = &optr2; + optr2.carrier = &optr3; + optr3.filtVoiceMask = 4; - This->PCMsid = (uint32_t)(This->PCMfreq * (16777216.0 / This->clock)); - This->PCMsidNoise = (uint32_t)((This->clock*256.0)/This->PCMfreq); + PCMsid = uint32_t(PCMfreq * (16777216.0 / clock)); + PCMsidNoise = uint32_t((clock * 256.0) / PCMfreq); - This->filter.Enabled = true; + filter.Enabled = true; - sidInitMixerEngine(This->device->machine()); - filterTableInit(This->device->machine()); + sidInitMixerEngine(device->machine()); + filterTableInit(device->machine()); - sidInitWaveformTables(This->type); + sidInitWaveformTables(type); - enveEmuInit(This->PCMfreq, true); + enveEmuInit(PCMfreq, true); MixerInit(0); - sidEmuReset(This); + reset(); } -void sid6581_port_w (SID6581_t *This, int offset, int data) + +void SID6581_t::port_w(int offset, int data) { offset &= 0x1f; - switch (offset) { - case 0x19: case 0x1a: case 0x1b: case 0x1c: - case 0x1d: - case 0x1e: - case 0x1f: - break; - case 0x15: case 0x16: case 0x17: - case 0x18: - This->mixer_channel->update(); - This->reg[offset] = data; - This->masterVolume = ( This->reg[0x18] & 15 ); - This->masterVolumeAmplIndex = This->masterVolume << 8; - - if ((This->reg[0x18]&0x80) && - ((This->reg[0x17]&This->optr3.filtVoiceMask)==0)) - This->optr3_outputmask = 0; /* off */ + case 0x19: + case 0x1a: + case 0x1b: + case 0x1c: + case 0x1d: + case 0x1e: + case 0x1f: + break; + + case 0x15: + case 0x16: + case 0x17: + case 0x18: + mixer_channel->update(); + reg[offset] = data; + masterVolume = reg[0x18] & 15; + masterVolumeAmplIndex = masterVolume << 8; + + if ((reg[0x18] & 0x80) && !(reg[0x17] & optr3.filtVoiceMask)) + optr3_outputmask = 0; /* off */ + else + optr3_outputmask = ~0; /* on */ + + filter.Type = reg[0x18] & 0x70; + if (filter.Type != filter.CurType) + { + filter.CurType = filter.Type; + optr1.filtLow = optr1.filtRef = 0; + optr2.filtLow = optr2.filtRef = 0; + optr3.filtLow = optr3.filtRef = 0; + } + if (filter.Enabled ) + { + filter.Value = 0x7ff & ((reg[0x15] & 7) | (uint16_t(reg[0x16]) << 3)); + if (filter.Type == 0x20) + filter.Dy = bandPassParam ? bandPassParam[filter.Value] : 0.0f; else - This->optr3_outputmask = ~0; /* on */ - - This->filter.Type = This->reg[0x18] & 0x70; - if (This->filter.Type != This->filter.CurType) - { - This->filter.CurType = This->filter.Type; - This->optr1.filtLow = (This->optr1.filtRef = 0); - This->optr2.filtLow = (This->optr2.filtRef = 0); - This->optr3.filtLow = (This->optr3.filtRef = 0); - } - if ( This->filter.Enabled ) - { - This->filter.Value = 0x7ff & ( (This->reg[0x15]&7) | ( (uint16_t)This->reg[0x16] << 3 )); - if (This->filter.Type == 0x20) - This->filter.Dy = bandPassParam ? bandPassParam[This->filter.Value] : 0.0f; - else - This->filter.Dy = lowPassParam ? lowPassParam[This->filter.Value] : 0.0f; - This->filter.ResDy = filterResTable[This->reg[0x17] >> 4] - This->filter.Dy; - if ( This->filter.ResDy < 1.0f ) - This->filter.ResDy = 1.0f; - } - - sidEmuSet( &This->optr1 ); - sidEmuSet( &This->optr3 ); - sidEmuSet( &This->optr2 ); - - // relies on sidEmuSet also for other channels! - sidEmuSet2( &This->optr1 ); - sidEmuSet2( &This->optr2 ); - sidEmuSet2( &This->optr3 ); - break; - - default: - This->mixer_channel->update(); - This->reg[offset] = data; - - if (offset<7) { - This->optr1.reg[offset] = data; - } else if (offset<14) { - This->optr2.reg[offset-7] = data; - } else if (offset<21) { - This->optr3.reg[offset-14] = data; - } - - sidEmuSet( &This->optr1 ); - sidEmuSet( &This->optr3 ); - sidEmuSet( &This->optr2 ); - - // relies on sidEmuSet also for other channels! - sidEmuSet2( &This->optr1 ); - sidEmuSet2( &This->optr2 ); - sidEmuSet2( &This->optr3 ); - break; + filter.Dy = lowPassParam ? lowPassParam[filter.Value] : 0.0f; + filter.ResDy = filterResTable[reg[0x17] >> 4] - filter.Dy; + if (filter.ResDy < 1.0f) + filter.ResDy = 1.0f; + } + + optr1.set(); + optr3.set(); + optr2.set(); + + // relies on sidEmuSet also for other channels! + optr1.set2(); + optr2.set2(); + optr3.set2(); + break; + + default: + mixer_channel->update(); + reg[offset] = data; + + if (offset < 7) + optr1.reg[offset] = data; + else if (offset < 14) + optr2.reg[offset - 7] = data; + else if (offset < 21) + optr3.reg[offset - 14] = data; + + optr1.set(); + optr3.set(); + optr2.set(); + + // relies on sidEmuSet also for other channels! + optr1.set2(); + optr2.set2(); + optr3.set2(); + break; } } -int sid6581_port_r (running_machine &machine, SID6581_t *This, int offset) + +int SID6581_t::port_r(running_machine &machine, int offset) { + /* SIDPLAY reads last written at a sid address value */ int data; -/* SIDPLAY reads last written at a sid address value */ offset &= 0x1f; switch (offset) { case 0x1d: case 0x1e: case 0x1f: - data=0xff; - break; + data = 0xff; + break; case 0x1b: - This->mixer_channel->update(); - data = This->optr3.output; - break; + mixer_channel->update(); + data = optr3.output; + break; case 0x1c: - This->mixer_channel->update(); - data = This->optr3.enveVol; - break; + mixer_channel->update(); + data = optr3.enveVol; + break; default: - data=This->reg[offset]; + data = reg[offset]; } return data; } diff --git a/src/devices/sound/sid.h b/src/devices/sound/sid.h index 095f711bdc8..a57f2ff6b5f 100644 --- a/src/devices/sound/sid.h +++ b/src/devices/sound/sid.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Peter Trauner -#pragma once +#ifndef MAME_SOUND_SID_H +#define MAME_SOUND_SID_H -#ifndef __SID_H__ -#define __SID_H__ +#pragma once /* approximation of the sid6581 chip @@ -41,7 +41,6 @@ struct SID6581_t uint8_t masterVolume; uint16_t masterVolumeAmplIndex; - struct { int Enabled; @@ -52,15 +51,18 @@ struct SID6581_t sidOperator optr1, optr2, optr3; int optr3_outputmask; -}; -void sid6581_init (SID6581_t *This); + void init(); + + bool reset(); -int sidEmuReset(SID6581_t *This); + int port_r(running_machine &machine, int offset); + void port_w(int offset, int data); -int sid6581_port_r (running_machine &machine, SID6581_t *This, int offset); -void sid6581_port_w (SID6581_t *This, int offset, int data); + void fill_buffer(stream_sample_t *buffer, uint32_t bufferLen); -void sidEmuFillBuffer(SID6581_t *This, stream_sample_t *buffer, uint32_t bufferLen ); +private: + void syncEm(); +}; -#endif /* __SID_H__ */ +#endif // MAME_SOUND_SID_H diff --git a/src/devices/sound/side6581.h b/src/devices/sound/side6581.h index 4870d96008c..c1a25c2a525 100644 --- a/src/devices/sound/side6581.h +++ b/src/devices/sound/side6581.h @@ -4,10 +4,10 @@ // /home/ms/source/sidplay/libsidplay/emu/RCS/enve_dl.h,v // -#pragma once +#ifndef MAME_SOUND_SIDE6581_H +#define MAME_SOUND_SIDE6581_H -#ifndef __SIDE6581_H__ -#define __SIDE6581_H__ +#pragma once // @@ -125,4 +125,4 @@ static const uint8_t releaseTab[] = }; -#endif /* __SIDE6581_H__ */ +#endif // MAME_SOUND_SIDE6581_H diff --git a/src/devices/sound/sidenvel.cpp b/src/devices/sound/sidenvel.cpp index e998558bdf5..2dc805797d1 100644 --- a/src/devices/sound/sidenvel.cpp +++ b/src/devices/sound/sidenvel.cpp @@ -33,11 +33,12 @@ /*========================================================================= */ #include "emu.h" -#include "sidvoice.h" -#include "sid.h" +#include "sidenvel.h" +#include "sid.h" #include "side6581.h" -#include "sidenvel.h" +#include "sidvoice.h" + const uint8_t masterVolumeLevels[16] = { diff --git a/src/devices/sound/sidenvel.h b/src/devices/sound/sidenvel.h index 61bd57b20e8..224b4967f20 100644 --- a/src/devices/sound/sidenvel.h +++ b/src/devices/sound/sidenvel.h @@ -4,10 +4,12 @@ // /home/ms/source/sidplay/libsidplay/emu/RCS/envelope.h,v // +#ifndef MAME_SOUND_SIDENVEL_H +#define MAME_SOUND_SIDENVEL_H + #pragma once -#ifndef __SIDENVEL_H__ -#define __SIDENVEL_H__ +#include "sidvoice.h" extern void enveEmuInit(uint32_t updateFreq, int measuredValues); @@ -36,4 +38,4 @@ enum }; -#endif /* __SIDENVEL_H__ */ +#endif // MAME_SOUND_SIDENVEL_H diff --git a/src/devices/sound/sidvoice.cpp b/src/devices/sound/sidvoice.cpp index de521a63e2f..9bc9a720ca7 100644 --- a/src/devices/sound/sidvoice.cpp +++ b/src/devices/sound/sidvoice.cpp @@ -2,11 +2,15 @@ // copyright-holders:Peter Trauner #include "emu.h" #include "sidvoice.h" + #include "sid.h" #include "sidenvel.h" #include "sidw6581.h" #include "sidw8580.h" +#include "sound/mos6581.h" + + static uint8_t triangleTable[4096]; static uint8_t sawtoothTable[4096]; static uint8_t squareTable[2*4096]; @@ -23,6 +27,7 @@ static const uint8_t* waveform70; static uint8_t noiseTableLSB[1<<8]; #endif + static std::unique_ptr ampMod1x8; static const uint32_t noiseSeed = 0x7ffff8; @@ -274,58 +279,6 @@ static void sidMode74(sidOperator* pVoice) { /* */ /* */ -static inline void waveCalcCycleLen(sidOperator* pVoice) -{ -#if defined(DIRECT_FIXPOINT) - pVoice->cycleAddLen.w[HI] = 0; - pVoice->cycleAddLen.l += pVoice->cycleLen.l; - pVoice->cycleLenCount = pVoice->cycleAddLen.w[HI]; -#else - pVoice->cycleAddLenPnt += pVoice->cycleLenPnt; - pVoice->cycleLenCount = pVoice->cycleLen; - if ( pVoice->cycleAddLenPnt > 65535 ) pVoice->cycleLenCount++; - pVoice->cycleAddLenPnt &= 0xFFFF; -#endif - /* If we keep the value cycleLen between 1 <= x <= 65535, */ - /* the following check is not required. */ -/* if ( pVoice->cycleLenCount == 0 ) */ -/* { */ -/*#if defined(DIRECT_FIXPOINT) */ -/* pVoice->waveStep.l = 0; */ -/*#else */ -/* pVoice->waveStep = (pVoice->waveStepPnt = 0); */ -/*#endif */ -/* pVoice->cycleLenCount = 0; */ -/* } */ -/* else */ - { -#if defined(DIRECT_FIXPOINT) - uint16_t diff = pVoice->cycleLenCount - pVoice->cycleLen.w[HI]; -#else - uint16_t diff = pVoice->cycleLenCount - pVoice->cycleLen; -#endif - if ( pVoice->wavePre[diff].len != pVoice->cycleLenCount ) - { - pVoice->wavePre[diff].len = pVoice->cycleLenCount; -#if defined(DIRECT_FIXPOINT) - pVoice->wavePre[diff].stp = (pVoice->waveStepAdd.l = (4096UL*65536UL) / pVoice->cycleLenCount); -#else - pVoice->wavePre[diff].stp = (pVoice->waveStepAdd = 4096UL / pVoice->cycleLenCount); - pVoice->wavePre[diff].pnt = (pVoice->waveStepAddPnt = ((4096UL % pVoice->cycleLenCount) * 65536UL) / pVoice->cycleLenCount); -#endif - } - else - { -#if defined(DIRECT_FIXPOINT) - pVoice->waveStepAdd.l = pVoice->wavePre[diff].stp; -#else - pVoice->waveStepAdd = pVoice->wavePre[diff].stp; - pVoice->waveStepAddPnt = pVoice->wavePre[diff].pnt; -#endif - } - } /* see above (opening bracket) */ -} - static inline void waveCalcFilter(sidOperator* pVoice) { if ( pVoice->filtEnabled ) @@ -402,32 +355,6 @@ static int8_t waveCalcMute(sidOperator* pVoice) } -int8_t sidWaveCalcNormal(sidOperator* pVoice) -{ - if ( pVoice->cycleLenCount <= 0 ) - { - waveCalcCycleLen(pVoice); - if (( pVoice->SIDctrl & 0x40 ) == 0x40 ) - { - pVoice->pulseIndex = pVoice->newPulseIndex; - if ( pVoice->pulseIndex > 2048 ) - { -#if defined(DIRECT_FIXPOINT) - pVoice->waveStep.w[HI] = 0; -#else - pVoice->waveStep = 0; -#endif - } - } - } - (*pVoice->waveProc)(pVoice); - pVoice->filtIO = ampMod1x8[(*pVoice->ADSRproc)(pVoice)|pVoice->output]; -// pVoice->filtIO = pVoice->sid->masterVolume; // test for digi sound - waveCalcFilter(pVoice); - return pVoice->filtIO;//&pVoice->outputMask; -} - - static int8_t waveCalcRangeCheck(sidOperator* pVoice) { #if defined(DIRECT_FIXPOINT) @@ -442,7 +369,7 @@ static int8_t waveCalcRangeCheck(sidOperator* pVoice) { /* Next step switch back to normal calculation. */ pVoice->cycleLenCount = 0; - pVoice->outProc = &sidWaveCalcNormal; + pVoice->outProc = &sidOperator::wave_calc_normal; #if defined(DIRECT_FIXPOINT) pVoice->waveStep.w[HI] = 4095; #else @@ -454,262 +381,325 @@ static int8_t waveCalcRangeCheck(sidOperator* pVoice) return pVoice->filtIO;//&pVoice->outputMask; } -/* -------------------------------------------------- Operator frame set-up 1 */ +/* MOS-8580, MOS-6581 (no 70) */ +static ptr2sidVoidFunc sidModeNormalTable[16] = +{ + sidMode00, sidMode10, sidMode20, sidMode30, sidMode40, sidMode50, sidMode60, sidMode70, + sidMode80, sidModeLock, sidModeLock, sidModeLock, sidModeLock, sidModeLock, sidModeLock, sidModeLock +}; -void sidEmuSet(sidOperator* pVoice) +/* MOS-8580, MOS-6581 (no 74) */ +static ptr2sidVoidFunc sidModeRingTable[16] = { - uint8_t enveTemp, newWave, oldWave; - uint8_t ADtemp; - uint8_t SRtemp; - uint8_t tmpSusVol; + sidMode00, sidMode14, sidMode00, sidMode34, sidMode00, sidMode54, sidMode00, sidMode74, + sidModeLock, sidModeLock, sidModeLock, sidModeLock, sidModeLock, sidModeLock, sidModeLock, sidModeLock +}; + + +void sidOperator::clear() +{ + SIDfreq = 0; + SIDctrl = 0; + SIDAD = 0; + SIDSR = 0; + + sync = false; + + pulseIndex = newPulseIndex = SIDpulseWidth = 0; + curSIDfreq = curNoiseFreq = 0; + + output = noiseOutput = 0; + filtIO = 0; + + filtEnabled = false; + filtLow = filtRef = 0; + + cycleLenCount = 0; +#if defined(DIRECT_FIXPOINT) + cycleLen.l = cycleAddLen.l = 0; +#else + cycleLen = cycleLenPnt = 0; + cycleAddLenPnt = 0; +#endif + + outProc = waveCalcMute; - pVoice->SIDfreq = pVoice->reg[0]|(pVoice->reg[1]<<8); +#if defined(DIRECT_FIXPOINT) + waveStepAdd.l = waveStep.l = 0; + wavePre[0].len = (wavePre[0].stp = 0); + wavePre[1].len = (wavePre[1].stp = 0); +#else + waveStepAdd = waveStepAddPnt = 0; + waveStep = waveStepPnt = 0; + wavePre[0].len = 0; + wavePre[0].stp = wavePre[0].pnt = 0; + wavePre[1].len = 0; + wavePre[1].stp = wavePre[1].pnt = 0; +#endif + waveStepOld = 0; - pVoice->SIDpulseWidth = (pVoice->reg[2]|(pVoice->reg[3]<<8)) & 0x0FFF; - pVoice->newPulseIndex = 4096 - pVoice->SIDpulseWidth; #if defined(DIRECT_FIXPOINT) - if ( ((pVoice->waveStep.w[HI] + pVoice->pulseIndex) >= 0x1000) - && ((pVoice->waveStep.w[HI] + pVoice->newPulseIndex) >= 0x1000) ) + noiseReg.l = noiseSeed; +#else + noiseReg = noiseSeed; +#endif + noiseStepAdd = noiseStep = 0; + noiseIsLocked = false; +} + + +/* -------------------------------------------------- Operator frame set-up 1 */ + +void sidOperator::set() +{ + SIDfreq = reg[0] | (reg[1] << 8); + + SIDpulseWidth = (reg[2] | (reg[3] << 8)) & 0x0FFF; + newPulseIndex = 4096 - SIDpulseWidth; +#if defined(DIRECT_FIXPOINT) + if (((waveStep.w[HI] + pulseIndex) >= 0x1000) && ((waveStep.w[HI] + newPulseIndex) >= 0x1000)) { - pVoice->pulseIndex = pVoice->newPulseIndex; + pulseIndex = newPulseIndex; } - else if ( ((pVoice->waveStep.w[HI] + pVoice->pulseIndex) < 0x1000) - && ((pVoice->waveStep.w[HI] + pVoice->newPulseIndex) < 0x1000) ) + else if (((waveStep.w[HI] + pulseIndex) < 0x1000) && ((waveStep.w[HI] + newPulseIndex) < 0x1000)) { - pVoice->pulseIndex = pVoice->newPulseIndex; + pulseIndex = newPulseIndex; } #else - if ( ((pVoice->waveStep + pVoice->pulseIndex) >= 0x1000) - && ((pVoice->waveStep + pVoice->newPulseIndex) >= 0x1000) ) + if (((waveStep + pulseIndex) >= 0x1000) && ((waveStep + newPulseIndex) >= 0x1000)) { - pVoice->pulseIndex = pVoice->newPulseIndex; + pulseIndex = newPulseIndex; } - else if ( ((pVoice->waveStep + pVoice->pulseIndex) < 0x1000) - && ((pVoice->waveStep + pVoice->newPulseIndex) < 0x1000) ) + else if (((waveStep + pulseIndex) < 0x1000) && ((waveStep + newPulseIndex) < 0x1000)) { - pVoice->pulseIndex = pVoice->newPulseIndex; + pulseIndex = newPulseIndex; } #endif + uint8_t const oldWave = SIDctrl; + uint8_t const newWave = reg[4] | (reg[5] << 8); // FIXME: what's actually supposed to happen here? + uint8_t enveTemp = ADSRctrl; + SIDctrl = newWave; - oldWave = pVoice->SIDctrl; - enveTemp = pVoice->ADSRctrl; - pVoice->SIDctrl = (newWave = pVoice->reg[4]|(pVoice->reg[5]<<8)); - - if (( newWave & 1 ) ==0 ) + if (!(newWave & 1)) { - if (( oldWave & 1 ) !=0 ) + if (oldWave & 1) enveTemp = ENVE_STARTRELEASE; -/* else if ( pVoice->gateOnCtrl ) */ -/* { */ -/* enveTemp = ENVE_STARTSHORTATTACK; */ -/* } */ +#if 0 + else if (gateOnCtrl) + enveTemp = ENVE_STARTSHORTATTACK; +#endif } - else if ( /*pVoice->gateOffCtrl || */((oldWave&1)==0) ) + else if (/*gateOffCtrl || */!(oldWave & 1)) { enveTemp = ENVE_STARTATTACK; } - if ((( oldWave ^ newWave ) & 0xF0 ) != 0 ) - { - pVoice->cycleLenCount = 0; - } + if ((oldWave ^ newWave) & 0xF0) + cycleLenCount = 0; - ADtemp = pVoice->reg[5]; - SRtemp = pVoice->reg[6]; - if ( pVoice->SIDAD != ADtemp ) - { + uint8_t const ADtemp = reg[5]; + uint8_t const SRtemp = reg[6]; + if (SIDAD != ADtemp) enveTemp |= ENVE_ALTER; - } - else if ( pVoice->SIDSR != SRtemp ) - { + else if (SIDSR != SRtemp) enveTemp |= ENVE_ALTER; - } - pVoice->SIDAD = ADtemp; - pVoice->SIDSR = SRtemp; - tmpSusVol = masterVolumeLevels[SRtemp >> 4]; - if (pVoice->ADSRctrl != ENVE_SUSTAIN) /* !!! */ - { - pVoice->enveSusVol = tmpSusVol; - } + + SIDAD = ADtemp; + SIDSR = SRtemp; + uint8_t const tmpSusVol = masterVolumeLevels[SRtemp >> 4]; + if (ADSRctrl != ENVE_SUSTAIN) // !!! + enveSusVol = tmpSusVol; + else if (enveSusVol > enveVol) + enveSusVol = 0; else - { - if ( pVoice->enveSusVol > pVoice->enveVol ) - pVoice->enveSusVol = 0; - else - pVoice->enveSusVol = tmpSusVol; - } + enveSusVol = tmpSusVol; - pVoice->ADSRproc = enveModeTable[enveTemp>>1]; /* shifting out the KEY-bit */ - pVoice->ADSRctrl = enveTemp & (255-ENVE_ALTER-1); + ADSRproc = enveModeTable[enveTemp >> 1]; // shifting out the KEY-bit + ADSRctrl = enveTemp & (255 - ENVE_ALTER - 1); - pVoice->filtEnabled = pVoice->sid->filter.Enabled && - ((pVoice->sid->reg[0x17] & pVoice->filtVoiceMask)!=0); + filtEnabled = sid->filter.Enabled && (sid->reg[0x17] & filtVoiceMask); } -/* -------------------------------------------------- Operator frame set-up 2 */ -/* MOS-8580, MOS-6581 (no 70) */ -static ptr2sidVoidFunc sidModeNormalTable[16] = -{ - sidMode00, sidMode10, sidMode20, sidMode30, sidMode40, sidMode50, sidMode60, sidMode70, - sidMode80, sidModeLock, sidModeLock, sidModeLock, sidModeLock, sidModeLock, sidModeLock, sidModeLock -}; - -/* MOS-8580, MOS-6581 (no 74) */ -static ptr2sidVoidFunc sidModeRingTable[16] = -{ - sidMode00, sidMode14, sidMode00, sidMode34, sidMode00, sidMode54, sidMode00, sidMode74, - sidModeLock, sidModeLock, sidModeLock, sidModeLock, sidModeLock, sidModeLock, sidModeLock, sidModeLock -}; +/* -------------------------------------------------- Operator frame set-up 2 */ -void sidClearOperator( sidOperator* pVoice ) +void sidOperator::set2() { - pVoice->SIDfreq = 0; - pVoice->SIDctrl = 0; - pVoice->SIDAD = 0; - pVoice->SIDSR = 0; - - pVoice->sync = false; - - pVoice->pulseIndex = (pVoice->newPulseIndex = (pVoice->SIDpulseWidth = 0)); - pVoice->curSIDfreq = (pVoice->curNoiseFreq = 0); - - pVoice->output = (pVoice->noiseOutput = 0); - pVoice->filtIO = 0; + outProc = &sidOperator::wave_calc_normal; + sync = false; - pVoice->filtEnabled = false; - pVoice->filtLow = (pVoice->filtRef = 0); - - pVoice->cycleLenCount = 0; + if ((SIDfreq < 16) || (SIDctrl & 8)) + //if (/*(SIDfreq < 16) || */(SIDctrl & 8)) + { + outProc = waveCalcMute; + if (SIDfreq == 0) + { #if defined(DIRECT_FIXPOINT) - pVoice->cycleLen.l = (pVoice->cycleAddLen.l = 0); + cycleLen.l = cycleAddLen.l = 0; + waveStep.l = 0; #else - pVoice->cycleLen = (pVoice->cycleLenPnt = 0); - pVoice->cycleAddLenPnt = 0; + cycleLen = cycleLenPnt = 0; + cycleAddLenPnt = 0; + waveStep = 0; + waveStepPnt = 0; #endif - - pVoice->outProc = waveCalcMute; - + curSIDfreq = curNoiseFreq = 0; + noiseStepAdd = 0; + cycleLenCount = 0; + } + if (SIDctrl & 8) + { + if (noiseIsLocked) + { + noiseIsLocked = false; #if defined(DIRECT_FIXPOINT) - pVoice->waveStepAdd.l = (pVoice->waveStep.l = 0); - pVoice->wavePre[0].len = (pVoice->wavePre[0].stp = 0); - pVoice->wavePre[1].len = (pVoice->wavePre[1].stp = 0); + noiseReg.l = noiseSeed; #else - pVoice->waveStepAdd = (pVoice->waveStepAddPnt = 0); - pVoice->waveStep = (pVoice->waveStepPnt = 0); - pVoice->wavePre[0].len = 0; - pVoice->wavePre[0].stp = (pVoice->wavePre[0].pnt = 0); - pVoice->wavePre[1].len = 0; - pVoice->wavePre[1].stp = (pVoice->wavePre[1].pnt = 0); + noiseReg = noiseSeed; #endif - pVoice->waveStepOld = 0; - + } + } + } + else + { + if (curSIDfreq != SIDfreq) + { + curSIDfreq = SIDfreq; + // We keep the value cycleLen between 1 <= x <= 65535. + // This makes a range-check in wave_calc_cycle_len() unrequired. #if defined(DIRECT_FIXPOINT) - pVoice->noiseReg.l = noiseSeed; + cycleLen.l = ((sid->PCMsid << 12) / SIDfreq) << 4; + if (cycleLenCount > 0) + { + wave_calc_cycle_len(); + outProc = &waveCalcRangeCheck; + } #else - pVoice->noiseReg = noiseSeed; + cycleLen = sid->PCMsid / SIDfreq; + cycleLenPnt = ((sid->PCMsid % SIDfreq) * 65536UL) / SIDfreq; + if (cycleLenCount > 0) + { + wave_calc_cycle_len(); + outProc = &waveCalcRangeCheck; + } #endif - pVoice->noiseStepAdd = (pVoice->noiseStep = 0); - pVoice->noiseIsLocked = false; + } + + if ((SIDctrl & 0x80) && (curNoiseFreq != SIDfreq)) + { + curNoiseFreq = SIDfreq; + noiseStepAdd = (sid->PCMsidNoise * SIDfreq) >> 8; + if (noiseStepAdd >= (1L << 21)) + sidModeNormalTable[8] = sidMode80hp; + else + sidModeNormalTable[8] = sidMode80; + } + + if (SIDctrl & 2) + { + if (!modulator->SIDfreq || (modulator->SIDctrl & 8 )) + { + } + else if ((carrier->SIDctrl & 2) && (modulator->SIDfreq >= (SIDfreq << 1))) + { + } + else + { + sync = true; + } + } + + if (((SIDctrl & 0x14 ) == 0x14) && modulator->SIDfreq) + waveProc = sidModeRingTable[SIDctrl >> 4]; + else + waveProc = sidModeNormalTable[SIDctrl >> 4]; + } } -void sidEmuSet2(sidOperator* pVoice) -{ - pVoice->outProc = &sidWaveCalcNormal; - pVoice->sync = false; - if ( (pVoice->SIDfreq < 16) || ((pVoice->SIDctrl & 8) != 0) ) -// if ( /*(pVoice->SIDfreq < 16) || */((pVoice->SIDctrl & 8) != 0) ) - { - pVoice->outProc = waveCalcMute; - if (pVoice->SIDfreq == 0) +int8_t sidOperator::wave_calc_normal(sidOperator* pVoice) +{ + if (pVoice->cycleLenCount <= 0) { + pVoice->wave_calc_cycle_len(); + if (pVoice->SIDctrl & 0x40) + { + pVoice->pulseIndex = pVoice->newPulseIndex; + if (pVoice->pulseIndex > 2048) + { #if defined(DIRECT_FIXPOINT) - pVoice->cycleLen.l = (pVoice->cycleAddLen.l = 0); - pVoice->waveStep.l = 0; + pVoice->waveStep.w[HI] = 0; #else - pVoice->cycleLen = (pVoice->cycleLenPnt = 0); - pVoice->cycleAddLenPnt = 0; - pVoice->waveStep = 0; - pVoice->waveStepPnt = 0; + pVoice->waveStep = 0; #endif - pVoice->curSIDfreq = (pVoice->curNoiseFreq = 0); - pVoice->noiseStepAdd = 0; - pVoice->cycleLenCount = 0; + } + } } - if ((pVoice->SIDctrl & 8) != 0) + + (*pVoice->waveProc)(pVoice); + pVoice->filtIO = ampMod1x8[(*pVoice->ADSRproc)(pVoice) | pVoice->output]; + //pVoice->filtIO = pVoice->sid->masterVolume; // test for digi sound + waveCalcFilter(pVoice); + return pVoice->filtIO;//&pVoice->outputMask; +} + + +inline void sidOperator::wave_calc_cycle_len() +{ +#if defined(DIRECT_FIXPOINT) + cycleAddLen.w[HI] = 0; + cycleAddLen.l += cycleLen.l; + cycleLenCount = cycleAddLen.w[HI]; +#else + cycleAddLenPnt += cycleLenPnt; + cycleLenCount = cycleLen; + if (cycleAddLenPnt > 65535) + cycleLenCount++; + cycleAddLenPnt &= 0xFFFF; +#endif + // If we keep the value cycleLen between 1 <= x <= 65535, the following check is not required. +#if 0 + if (!cycleLenCount) { - if (pVoice->noiseIsLocked) - { - pVoice->noiseIsLocked = false; #if defined(DIRECT_FIXPOINT) - pVoice->noiseReg.l = noiseSeed; + waveStep.l = 0; #else - pVoice->noiseReg = noiseSeed; + waveStep = waveStepPnt = 0; #endif - } - } + cycleLenCount = 0; } else +#endif { - if ( pVoice->curSIDfreq != pVoice->SIDfreq ) - { - pVoice->curSIDfreq = pVoice->SIDfreq; - /* We keep the value cycleLen between 1 <= x <= 65535. */ - /* This makes a range-check in waveCalcCycleLen() unrequired. */ #if defined(DIRECT_FIXPOINT) - pVoice->cycleLen.l = ((pVoice->sid->PCMsid << 12) / pVoice->SIDfreq) << 4; - if (pVoice->cycleLenCount > 0) - { - waveCalcCycleLen(pVoice); - pVoice->outProc = &waveCalcRangeCheck; - } + uint16_t diff = cycleLenCount - cycleLen.w[HI]; #else - pVoice->cycleLen = pVoice->sid->PCMsid / pVoice->SIDfreq; - pVoice->cycleLenPnt = (( pVoice->sid->PCMsid % pVoice->SIDfreq ) * 65536UL ) / pVoice->SIDfreq; - if (pVoice->cycleLenCount > 0) - { - waveCalcCycleLen(pVoice); - pVoice->outProc = &waveCalcRangeCheck; - } + uint16_t diff = cycleLenCount - cycleLen; #endif - } - - if ((( pVoice->SIDctrl & 0x80 ) == 0x80 ) && ( pVoice->curNoiseFreq != pVoice->SIDfreq )) - { - pVoice->curNoiseFreq = pVoice->SIDfreq; - pVoice->noiseStepAdd = (pVoice->sid->PCMsidNoise * pVoice->SIDfreq) >> 8; - if (pVoice->noiseStepAdd >= (1L<<21)) - sidModeNormalTable[8] = sidMode80hp; - else - sidModeNormalTable[8] = sidMode80; - } - - if (( pVoice->SIDctrl & 2 ) != 0 ) - { - if ( ( pVoice->modulator->SIDfreq == 0 ) || (( pVoice->modulator->SIDctrl & 8 ) != 0 ) ) + if (wavePre[diff].len != cycleLenCount) { - ; - } - else if ( (( pVoice->carrier->SIDctrl & 2 ) != 0 ) && - ( pVoice->modulator->SIDfreq >= ( pVoice->SIDfreq << 1 )) ) - { - ; + wavePre[diff].len = cycleLenCount; +#if defined(DIRECT_FIXPOINT) + wavePre[diff].stp = waveStepAdd.l = (4096UL*65536UL) / cycleLenCount; +#else + wavePre[diff].stp = waveStepAdd = 4096UL / cycleLenCount; + wavePre[diff].pnt = waveStepAddPnt = ((4096UL % cycleLenCount) * 65536UL) / cycleLenCount; +#endif } else { - pVoice->sync = true; +#if defined(DIRECT_FIXPOINT) + waveStepAdd.l = wavePre[diff].stp; +#else + waveStepAdd = wavePre[diff].stp; + waveStepAddPnt = wavePre[diff].pnt; +#endif } - } - - if ((( pVoice->SIDctrl & 0x14 ) == 0x14 ) && ( pVoice->modulator->SIDfreq != 0 )) - pVoice->waveProc = sidModeRingTable[pVoice->SIDctrl >> 4]; - else - pVoice->waveProc = sidModeNormalTable[pVoice->SIDctrl >> 4]; - } + } // see above (opening bracket) } + void sidInitWaveformTables(int type) { int i,j; diff --git a/src/devices/sound/sidvoice.h b/src/devices/sound/sidvoice.h index cf32eb7f066..c2cb00a5225 100644 --- a/src/devices/sound/sidvoice.h +++ b/src/devices/sound/sidvoice.h @@ -1,32 +1,30 @@ // license:BSD-3-Clause // copyright-holders:Peter Trauner -#pragma once +#ifndef MAME_SOUND_SIDVOICE_H +#define MAME_SOUND_SIDVOICE_H -#ifndef __SIDVOICE_H__ -#define __SIDVOICE_H__ +#pragma once /* approximation of the sid6581 chip this part is for 1 (of the 3) voices of a chip */ -#include "sound/mos6581.h" +struct SID6581_t; -struct sw_storage +struct sidOperator { - uint16_t len; + struct sw_storage + { + uint16_t len; #if defined(DIRECT_FIXPOINT) - uint32_t stp; + uint32_t stp; #else - uint32_t pnt; - int16_t stp; + uint32_t pnt; + int16_t stp; #endif -}; - -struct SID6581_t; + }; -struct sidOperator -{ SID6581_t *sid; uint8_t reg[7]; uint32_t SIDfreq; @@ -57,8 +55,8 @@ struct sidOperator uint16_t cycleLen, cycleLenPnt; #endif - int8_t(*outProc)(sidOperator *); - void(*waveProc)(sidOperator *); + int8_t (*outProc)(sidOperator *); + void (*waveProc)(sidOperator *); #if defined(DIRECT_FIXPOINT) cpuLword waveStep, waveStepAdd; @@ -67,7 +65,7 @@ struct sidOperator uint32_t waveStepPnt, waveStepAddPnt; #endif uint16_t waveStepOld; - struct sw_storage wavePre[2]; + sw_storage wavePre[2]; #if defined(DIRECT_FIXPOINT) && defined(LARGE_NOISE_TABLE) cpuLword noiseReg; @@ -95,18 +93,21 @@ struct sidOperator #endif uint8_t enveVol, enveSusVol; uint16_t enveShortAttackCount; + + void clear(); + + void set(); + void set2(); + static int8_t wave_calc_normal(sidOperator *pVoice); + +private: + void wave_calc_cycle_len(); }; typedef int8_t (*ptr2sidFunc)(sidOperator *); typedef uint16_t (*ptr2sidUwordFunc)(sidOperator *); typedef void (*ptr2sidVoidFunc)(sidOperator *); -void sidClearOperator( sidOperator* pVoice ); - -void sidEmuSet(sidOperator* pVoice); -void sidEmuSet2(sidOperator* pVoice); -int8_t sidWaveCalcNormal(sidOperator* pVoice); - void sidInitWaveformTables(int type); void sidInitMixerEngine(running_machine &machine); @@ -117,4 +118,4 @@ extern ptr2sidVoidFunc sid8580ModeNormalTable[16]; extern ptr2sidVoidFunc sid8580ModeRingTable[16]; #endif -#endif /* __SIDVOICE_H__ */ +#endif // MAME_SOUND_SIDVOICE_H diff --git a/src/devices/sound/sidw6581.h b/src/devices/sound/sidw6581.h index 2f9a79d2fcf..16c6a4a630f 100644 --- a/src/devices/sound/sidw6581.h +++ b/src/devices/sound/sidw6581.h @@ -1,7 +1,9 @@ // license:GPL-2.0+ // copyright-holders:Dag Lem -#ifndef WAVE6581_h -#define WAVE6581_h +#ifndef MAME_SOUND_SIDW6581_H +#define MAME_SOUND_SIDW6581_H + +#pragma once /* * MOS-6581 R1, R3, R4 @@ -1050,4 +1052,4 @@ static const uint8_t waveform70_6581[4096+4096] = 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,0x30, 0x0, 0x0, 0x0,0x78,0x78,0x7e,0x7f,0x7f }; -#endif // WAVE6581_h +#endif // MAME_SOUND_SIDW6581_H diff --git a/src/devices/sound/sidw8580.h b/src/devices/sound/sidw8580.h index cb5b4a1c6ab..13159b51c5a 100644 --- a/src/devices/sound/sidw8580.h +++ b/src/devices/sound/sidw8580.h @@ -1,9 +1,9 @@ // license:GPL-2.0+ // copyright-holders:Dag Lem -#pragma once +#ifndef MAME_SOUND_SIDW8580_H +#define MAME_SOUND_SIDW8580_H -#ifndef __SIDW8580_H__ -#define __SIDW8580_H__ +#pragma once /* MOS-8580 R5 waveforms $30,$50,$60,$70 @@ -1395,5 +1395,4 @@ static const uint8_t waveform70_8580[4096+4096] = 0xff,0xff,0xff,0xff }; - -#endif /* __SIDW8580_H__ */ +#endif // MAME_SOUND_SIDW8580_H diff --git a/src/devices/sound/sn76477.cpp b/src/devices/sound/sn76477.cpp index f845b1ae0a4..c259b3cb0ed 100644 --- a/src/devices/sound/sn76477.cpp +++ b/src/devices/sound/sn76477.cpp @@ -38,9 +38,10 @@ *****************************************************************************/ #include "emu.h" -#include "wavwrite.h" #include "sn76477.h" +#include "wavwrite.h" + /***************************************************************************** * @@ -74,12 +75,12 @@ #define LOG_WAV_FILE_NAME "sn76477_%s.wav" -#define LOG(n,x) do { if (VERBOSE >= (n)) logerror x; } while (0) +#define LOG(n,...) do { if (VERBOSE >= (n)) logerror(__VA_ARGS__); } while (0) #define CHECK_BOOLEAN assert((state & 0x01) == state) #define CHECK_POSITIVE assert(data >= 0.0) #define CHECK_VOLTAGE assert((data >= 0.0) && (data <= 5.0)) -#define CHECK_CAP_VOLTAGE assert(((data >= 0.0) && (data <= 5.0)) || (data == SN76477_EXTERNAL_VOLTAGE_DISCONNECT)) +#define CHECK_CAP_VOLTAGE assert(((data >= 0.0) && (data <= 5.0)) || (data == EXTERNAL_VOLTAGE_DISCONNECT)) /***************************************************************************** * @@ -121,7 +122,7 @@ #define OUT_LOW_CLIP_THRESHOLD (0.715) /* the minimum voltage that can be put out (measured) */ /* gain factors for OUT voltage in 0.1V increments (measured) */ -static const double out_pos_gain[] = +static constexpr double out_pos_gain[] = { 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.01, /* 0.0 - 0.9V */ 0.03, 0.11, 0.15, 0.19, 0.21, 0.23, 0.26, 0.29, 0.31, 0.33, /* 1.0 - 1.9V */ @@ -130,9 +131,9 @@ static const double out_pos_gain[] = 0.90, 0.93, 0.96, 0.98, 1.00 /* 4.0 - 4.4V */ }; -static const double out_neg_gain[] = +static constexpr double out_neg_gain[] = { - 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, -0.01, /* 0.0 - 0.9V */ + 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, -0.01, /* 0.0 - 0.9V */ -0.02, -0.09, -0.13, -0.15, -0.17, -0.19, -0.22, -0.24, -0.26, -0.28, /* 1.0 - 1.9V */ -0.30, -0.32, -0.34, -0.37, -0.39, -0.41, -0.44, -0.46, -0.48, -0.51, /* 2.0 - 2.9V */ -0.53, -0.56, -0.58, -0.60, -0.62, -0.65, -0.67, -0.69, -0.72, -0.74, /* 3.0 - 3.9V */ @@ -140,10 +141,10 @@ static const double out_neg_gain[] = }; -const device_type SN76477 = device_creator; +DEFINE_DEVICE_TYPE(SN76477, sn76477_device, "sn76477", "TI SN76477 CSG") sn76477_device::sn76477_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, SN76477, "SN76477", tag, owner, clock, "sn76477", __FILE__), + : device_t(mconfig, SN76477, tag, owner, clock), device_sound_interface(mconfig, *this), m_enable(0), m_envelope_mode(0), @@ -626,7 +627,7 @@ void sn76477_device::log_enable_line() "Enabled", "Inhibited" }; - LOG(1, ("SN76477 '%s': Enable line (9): %d [%s]\n", tag(), m_enable, desc[m_enable])); + LOG(1, "SN76477: Enable line (9): %d [%s]\n", m_enable, desc[m_enable]); } @@ -638,7 +639,7 @@ void sn76477_device::log_mixer_mode() "SLF/Noise", "SLF/VCO/Noise", "SLF/VCO", "Inhibit" }; - LOG(1, ("SN76477 '%s': Mixer mode (25-27): %d [%s]\n", tag(), m_mixer_mode, desc[m_mixer_mode])); + LOG(1, "SN76477: Mixer mode (25-27): %d [%s]\n", m_mixer_mode, desc[m_mixer_mode]); } @@ -649,7 +650,7 @@ void sn76477_device::log_envelope_mode() "VCO", "One-Shot", "Mixer Only", "VCO with Alternating Polarity" }; - LOG(1, ("SN76477 '%s': Envelope mode (1,28): %d [%s]\n", tag(), m_envelope_mode, desc[m_envelope_mode])); + LOG(1, "SN76477: Envelope mode (1,28): %d [%s]\n", m_envelope_mode, desc[m_envelope_mode]); } @@ -660,7 +661,7 @@ void sn76477_device::log_vco_mode() "External (Pin 16)", "Internal (SLF)" }; - LOG(1, ("SN76477 '%s': VCO mode (22): %d [%s]\n", tag(), m_vco_mode, desc[m_vco_mode])); + LOG(1, "SN76477: VCO mode (22): %d [%s]\n", m_vco_mode, desc[m_vco_mode]); } @@ -670,16 +671,16 @@ void sn76477_device::log_one_shot_time() { if (compute_one_shot_cap_charging_rate() > 0) { - LOG(1, ("SN76477 '%s': One-shot time (23,24): %.4f sec\n", tag(), ONE_SHOT_CAP_VOLTAGE_RANGE * (1 / compute_one_shot_cap_charging_rate()))); + LOG(1, "SN76477: One-shot time (23,24): %.4f sec\n", ONE_SHOT_CAP_VOLTAGE_RANGE * (1 / compute_one_shot_cap_charging_rate())); } else { - LOG(1, ("SN76477 '%s': One-shot time (23,24): N/A\n", tag())); + LOG(1, "SN76477: One-shot time (23,24): N/A\n"); } } else { - LOG(1, ("SN76477 '%s': One-shot time (23,24): External (cap = %.2fV)\n", tag(), m_one_shot_cap_voltage)); + LOG(1, "SN76477: One-shot time (23,24): External (cap = %.2fV)\n", m_one_shot_cap_voltage); } } @@ -693,29 +694,29 @@ void sn76477_device::log_slf_freq() double charging_time = (1 / compute_slf_cap_charging_rate()) * SLF_CAP_VOLTAGE_RANGE; double discharging_time = (1 / compute_slf_cap_discharging_rate()) * SLF_CAP_VOLTAGE_RANGE; - LOG(1, ("SN76477 '%s': SLF frequency (20,21): %.2f Hz\n", tag(), 1 / (charging_time + discharging_time))); + LOG(1, "SN76477: SLF frequency (20,21): %.2f Hz\n", 1 / (charging_time + discharging_time)); } else { - LOG(1, ("SN76477 '%s': SLF frequency (20,21): N/A\n", tag())); + LOG(1, "SN76477: SLF frequency (20,21): N/A\n"); } } else { - LOG(1, ("SN76477 '%s': SLF frequency (20,21): External (cap = %.2fV)\n", tag(), m_slf_cap_voltage)); + LOG(1, "SN76477: SLF frequency (20,21): External (cap = %.2fV)\n", m_slf_cap_voltage); } } void sn76477_device::log_vco_pitch_voltage() { - LOG(1, ("SN76477 '%s': VCO pitch voltage (19): %.2fV\n", tag(), m_pitch_voltage)); + LOG(1, "SN76477: VCO pitch voltage (19): %.2fV\n", m_pitch_voltage); } void sn76477_device::log_vco_duty_cycle() { - LOG(1, ("SN76477 '%s': VCO duty cycle (16,19): %.0f%%\n", tag(), compute_vco_duty_cycle() * 100.0)); + LOG(1, "SN76477: VCO duty cycle (16,19): %.0f%%\n", compute_vco_duty_cycle() * 100.0); } @@ -728,16 +729,16 @@ void sn76477_device::log_vco_freq() double min_freq = compute_vco_cap_charging_discharging_rate() / (2 * VCO_CAP_VOLTAGE_RANGE); double max_freq = compute_vco_cap_charging_discharging_rate() / (2 * VCO_TO_SLF_VOLTAGE_DIFF); - LOG(1, ("SN76477 '%s': VCO frequency (17,18): %.2f Hz - %.1f Hz\n", tag(), min_freq, max_freq)); + LOG(1, "SN76477: VCO frequency (17,18): %.2f Hz - %.1f Hz\n", min_freq, max_freq); } else { - LOG(1, ("SN76477 '%s': VCO frequency (17,18): N/A\n", tag())); + LOG(1, "SN76477: VCO frequency (17,18): N/A\n"); } } else { - LOG(1, ("SN76477 '%s': VCO frequency (17,18): External (cap = %.2fV)\n", tag(), m_vco_cap_voltage)); + LOG(1, "SN76477: VCO frequency (17,18): External (cap = %.2fV)\n", m_vco_cap_voltage); } } @@ -749,13 +750,13 @@ void sn76477_device::log_vco_ext_voltage() double min_freq = compute_vco_cap_charging_discharging_rate() / (2 * VCO_CAP_VOLTAGE_RANGE); double max_freq = compute_vco_cap_charging_discharging_rate() / (2 * VCO_TO_SLF_VOLTAGE_DIFF); - LOG(1, ("SN76477 '%s': VCO ext. voltage (16): %.2fV (%.2f Hz)\n", tag(), + LOG(1, "SN76477: VCO ext. voltage (16): %.2fV (%.2f Hz)\n", m_vco_voltage, - min_freq + ((max_freq - min_freq) * m_vco_voltage / VCO_MAX_EXT_VOLTAGE))); + min_freq + ((max_freq - min_freq) * m_vco_voltage / VCO_MAX_EXT_VOLTAGE)); } else { - LOG(1, ("SN76477 '%s': VCO ext. voltage (16): %.2fV (saturated, no output)\n", tag(), m_vco_voltage)); + LOG(1, "SN76477: VCO ext. voltage (16): %.2fV (saturated, no output)\n", m_vco_voltage); } } @@ -764,17 +765,17 @@ void sn76477_device::log_noise_gen_freq() { if (m_noise_clock_ext) { - LOG(1, ("SN76477 '%s': Noise gen frequency (4): External\n", tag())); + LOG(1, "SN76477: Noise gen frequency (4): External\n"); } else { if (compute_noise_gen_freq() > 0) { - LOG(1, ("SN76477 '%s': Noise gen frequency (4): %d Hz\n", tag(), compute_noise_gen_freq())); + LOG(1, "SN76477: Noise gen frequency (4): %d Hz\n", compute_noise_gen_freq()); } else { - LOG(1, ("SN76477 '%s': Noise gen frequency (4): N/A\n", tag())); + LOG(1, "SN76477: Noise gen frequency (4): N/A\n"); } } } @@ -793,21 +794,21 @@ void sn76477_device::log_noise_filter_freq() double charging_time = (1 / charging_rate) * NOISE_CAP_VOLTAGE_RANGE; double discharging_time = (1 / charging_rate) * NOISE_CAP_VOLTAGE_RANGE; - LOG(1, ("SN76477 '%s': Noise filter frequency (5,6): %.0f Hz\n", tag(), 1 / (charging_time + discharging_time))); + LOG(1, "SN76477: Noise filter frequency (5,6): %.0f Hz\n", 1 / (charging_time + discharging_time)); } else { - LOG(1, ("SN76477 '%s': Noise filter frequency (5,6): Very Large (Filtering Disabled)\n", tag())); + LOG(1, "SN76477: Noise filter frequency (5,6): Very Large (Filtering Disabled)\n"); } } else { - LOG(1, ("SN76477 '%s': Noise filter frequency (5,6): N/A\n", tag())); + LOG(1, "SN76477: Noise filter frequency (5,6): N/A\n"); } } else { - LOG(1, ("SN76477 '%s': Noise filter frequency (5,6): External (cap = %.2fV)\n", tag(), m_noise_filter_cap)); + LOG(1, "SN76477: Noise filter frequency (5,6): External (cap = %.2fV)\n", m_noise_filter_cap); } } @@ -818,16 +819,16 @@ void sn76477_device::log_attack_time() { if (compute_attack_decay_cap_charging_rate() > 0) { - LOG(1, ("SN76477 '%s': Attack time (8,10): %.4f sec\n", tag(), AD_CAP_VOLTAGE_RANGE * (1 / compute_attack_decay_cap_charging_rate()))); + LOG(1, "SN76477: Attack time (8,10): %.4f sec\n", AD_CAP_VOLTAGE_RANGE * (1 / compute_attack_decay_cap_charging_rate())); } else { - LOG(1, ("SN76477 '%s': Attack time (8,10): N/A\n", tag())); + LOG(1, "SN76477: Attack time (8,10): N/A\n"); } } else { - LOG(1, ("SN76477 '%s': Attack time (8,10): External (cap = %.2fV)\n", tag(), m_attack_decay_cap_voltage)); + LOG(1, "SN76477: Attack time (8,10): External (cap = %.2fV)\n", m_attack_decay_cap_voltage); } } @@ -838,27 +839,26 @@ void sn76477_device::log_decay_time() { if (compute_attack_decay_cap_discharging_rate() > 0) { - LOG(1, ("SN76477 '%s': Decay time (7,8): %.4f sec\n", tag(), AD_CAP_VOLTAGE_RANGE * (1 / compute_attack_decay_cap_discharging_rate()))); + LOG(1, "SN76477: Decay time (7,8): %.4f sec\n", AD_CAP_VOLTAGE_RANGE * (1 / compute_attack_decay_cap_discharging_rate())); } else { - LOG(1, ("SN76477 '%s': Decay time (8,10): N/A\n", tag())); + LOG(1, "SN76477: Decay time (8,10): N/A\n"); } } else { - LOG(1, ("SN76477 '%s': Decay time (7, 8): External (cap = %.2fV)\n", tag(), m_attack_decay_cap_voltage)); + LOG(1, "SN76477: Decay time (7, 8): External (cap = %.2fV)\n", m_attack_decay_cap_voltage); } } void sn76477_device::log_voltage_out() { - LOG(1, ("SN76477 '%s': Voltage OUT range (11,12): %.2fV - %.2fV (clips above %.2fV)\n", - tag(), + LOG(1, "SN76477: Voltage OUT range (11,12): %.2fV - %.2fV (clips above %.2fV)\n", OUT_CENTER_LEVEL_VOLTAGE + compute_center_to_peak_voltage_out() * out_neg_gain[(int)(AD_CAP_VOLTAGE_MAX * 10)], OUT_CENTER_LEVEL_VOLTAGE + compute_center_to_peak_voltage_out() * out_pos_gain[(int)(AD_CAP_VOLTAGE_MAX * 10)], - OUT_HIGH_CLIP_THRESHOLD)); + OUT_HIGH_CLIP_THRESHOLD); } @@ -897,7 +897,7 @@ void sn76477_device::open_wav_file() sprintf(wav_file_name, LOG_WAV_FILE_NAME, tag()); m_file = wav_open(wav_file_name, m_our_sample_rate, 2); - LOG(1, ("SN76477 '%s': Logging output: %s\n", tag(), wav_file_name)); + LOG(1, "SN76477: Logging output: %s\n", wav_file_name); } @@ -1128,7 +1128,7 @@ void sn76477_device::one_shot_cap_voltage_w(double data) { CHECK_CAP_VOLTAGE; - if (data == SN76477_EXTERNAL_VOLTAGE_DISCONNECT) + if (data == EXTERNAL_VOLTAGE_DISCONNECT) { /* switch to internal, if not already */ if (m_one_shot_cap_voltage_ext) @@ -1208,7 +1208,7 @@ void sn76477_device::slf_cap_voltage_w(double data) { CHECK_CAP_VOLTAGE; - if (data == SN76477_EXTERNAL_VOLTAGE_DISCONNECT) + if (data == EXTERNAL_VOLTAGE_DISCONNECT) { /* switch to internal, if not already */ if (m_slf_cap_voltage_ext) @@ -1286,7 +1286,7 @@ void sn76477_device::vco_cap_voltage_w(double data) { CHECK_CAP_VOLTAGE; - if (data == SN76477_EXTERNAL_VOLTAGE_DISCONNECT) + if (data == EXTERNAL_VOLTAGE_DISCONNECT) { /* switch to internal, if not already */ if (m_vco_cap_voltage_ext) @@ -1462,7 +1462,7 @@ void sn76477_device::noise_filter_cap_voltage_w(double data) { CHECK_CAP_VOLTAGE; - if (data == SN76477_EXTERNAL_VOLTAGE_DISCONNECT) + if (data == EXTERNAL_VOLTAGE_DISCONNECT) { /* switch to internal, if not already */ if (m_noise_filter_cap_voltage_ext) @@ -1562,7 +1562,7 @@ void sn76477_device::attack_decay_cap_voltage_w(double data) { CHECK_CAP_VOLTAGE; - if (data == SN76477_EXTERNAL_VOLTAGE_DISCONNECT) + if (data == EXTERNAL_VOLTAGE_DISCONNECT) { /* switch to internal, if not already */ if (m_attack_decay_cap_voltage_ext) diff --git a/src/devices/sound/sn76477.h b/src/devices/sound/sn76477.h index 19b331bacdf..a785fc936d6 100644 --- a/src/devices/sound/sn76477.h +++ b/src/devices/sound/sn76477.h @@ -35,10 +35,10 @@ *****************************************************************************/ -#pragma once +#ifndef MAME_SOUND_SN76477_H +#define MAME_SOUND_SN76477_H -#ifndef __SN76477_H__ -#define __SN76477_H__ +#pragma once #include "machine/rescap.h" @@ -94,7 +94,6 @@ class sn76477_device : public device_t, { public: sn76477_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~sn76477_device() {} static void set_noise_params(device_t &device, double clock_res, double filter_res, double filter_cap) { @@ -171,7 +170,7 @@ public: void feedback_res_w(double data); /* these functions take a capacitor value in Farads or the voltage on it in Volts */ - #define SN76477_EXTERNAL_VOLTAGE_DISCONNECT (-1.0) /* indicates that the voltage is internally computed, + static constexpr double EXTERNAL_VOLTAGE_DISCONNECT = -1.0; /* indicates that the voltage is internally computed, can be used in all the functions that take a voltage on a capacitor */ void one_shot_cap_w(double data); @@ -306,7 +305,6 @@ private: void state_save_register(); }; -extern const device_type SN76477; - +DECLARE_DEVICE_TYPE(SN76477, sn76477_device) -#endif/* __SN76477_H__ */ +#endif // MAME_SOUND_SN76477_H diff --git a/src/devices/sound/sn76496.cpp b/src/devices/sound/sn76496.cpp index c60b587f3a5..bccb53c27bb 100644 --- a/src/devices/sound/sn76496.cpp +++ b/src/devices/sound/sn76496.cpp @@ -130,53 +130,81 @@ #define MAX_OUTPUT 0x7fff -sn76496_base_device::sn76496_base_device(const machine_config &mconfig, device_type type, const char *name, - const char *tag, int feedbackmask, int noisetap1, int noisetap2, bool negate, bool stereo, int clockdivider, int sega, - device_t *owner, uint32_t clock, const char *shortname, const char *source) - - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_sound_interface(mconfig, *this), - m_ready_handler(*this), - m_feedback_mask(feedbackmask), - m_whitenoise_tap1(noisetap1), - m_whitenoise_tap2(noisetap2), - m_negate(negate), - m_stereo(stereo), - m_clock_divider(clockdivider), - m_sega_style_psg(sega) +sn76496_base_device::sn76496_base_device( + const machine_config &mconfig, + device_type type, + const char *tag, + int feedbackmask, + int noisetap1, + int noisetap2, + bool negate, + bool stereo, + int clockdivider, + bool sega, + device_t *owner, + uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) + , device_sound_interface(mconfig, *this) + , m_ready_handler(*this) + , m_feedback_mask(feedbackmask) + , m_whitenoise_tap1(noisetap1) + , m_whitenoise_tap2(noisetap2) + , m_negate(negate) + , m_stereo(stereo) + , m_clock_divider(clockdivider) + , m_sega_style_psg(sega) { } sn76496_device::sn76496_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : sn76496_base_device(mconfig, SN76496, "SN76496", tag, 0x10000, 0x04, 0x08, false, false, 8, true, owner, clock, "sn76496", __FILE__) - { } + : sn76496_base_device(mconfig, SN76496, tag, 0x10000, 0x04, 0x08, false, false, 8, true, owner, clock) +{ +} + u8106_device::u8106_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : sn76496_base_device(mconfig, U8106, "U8106", tag, 0x4000, 0x01, 0x02, true, false, 8, true, owner, clock, "u8106", __FILE__) - { } + : sn76496_base_device(mconfig, U8106, tag, 0x4000, 0x01, 0x02, true, false, 8, true, owner, clock) +{ +} + y2404_device::y2404_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : sn76496_base_device(mconfig, Y2404, "Y2404", tag, 0x10000, 0x04, 0x08, false, false, 8, true, owner, clock, "y2404", __FILE__) - { } + : sn76496_base_device(mconfig, Y2404, tag, 0x10000, 0x04, 0x08, false, false, 8, true, owner, clock) +{ +} + sn76489_device::sn76489_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : sn76496_base_device(mconfig, SN76489, "SN76489", tag, 0x4000, 0x01, 0x02, true, false, 8, true, owner, clock, "sn76489", __FILE__) - { } + : sn76496_base_device(mconfig, SN76489, tag, 0x4000, 0x01, 0x02, true, false, 8, true, owner, clock) +{ +} + sn76489a_device::sn76489a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : sn76496_base_device(mconfig, SN76489A, "SN76489A", tag, 0x10000, 0x04, 0x08, false, false, 8, true, owner, clock, "sn76489a", __FILE__) - { } + : sn76496_base_device(mconfig, SN76489A, tag, 0x10000, 0x04, 0x08, false, false, 8, true, owner, clock) +{ +} + sn76494_device::sn76494_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : sn76496_base_device(mconfig, SN76494, "SN76494", tag, 0x10000, 0x04, 0x08, false, false, 1, true, owner, clock, "sn76494", __FILE__) - { } + : sn76496_base_device(mconfig, SN76494, tag, 0x10000, 0x04, 0x08, false, false, 1, true, owner, clock) +{ +} + sn94624_device::sn94624_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : sn76496_base_device(mconfig, SN94624, "SN94624", tag, 0x4000, 0x01, 0x02, true, false, 1, true, owner, clock, "sn94624", __FILE__) - { } + : sn76496_base_device(mconfig, SN94624, tag, 0x4000, 0x01, 0x02, true, false, 1, true, owner, clock) +{ +} + ncr7496_device::ncr7496_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : sn76496_base_device(mconfig, NCR7496, "NCR7496", tag, 0x8000, 0x02, 0x20, false, false, 8, true, owner, clock, "ncr7496", __FILE__) - { } + : sn76496_base_device(mconfig, NCR7496, tag, 0x8000, 0x02, 0x20, false, false, 8, true, owner, clock) +{ +} + gamegear_device::gamegear_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : sn76496_base_device(mconfig, GAMEGEAR, "Game Gear PSG", tag, 0x8000, 0x01, 0x08, true, true, 8, false, owner, clock, "gamegear_psg", __FILE__) - { } + : sn76496_base_device(mconfig, GAMEGEAR, tag, 0x8000, 0x01, 0x08, true, true, 8, false, owner, clock) +{ +} + segapsg_device::segapsg_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : sn76496_base_device(mconfig, SEGAPSG, "SEGA VDP PSG", tag, 0x8000, 0x01, 0x08, true, false, 8, false, owner, clock, "segapsg", __FILE__) - { } + : sn76496_base_device(mconfig, SEGAPSG, tag, 0x8000, 0x01, 0x08, true, false, 8, false, owner, clock) +{ +} void sn76496_base_device::device_start() @@ -434,13 +462,13 @@ void sn76496_base_device::register_for_save_states() // save_item(NAME(m_sega_style_psg)); } -const device_type SN76496 = device_creator; -const device_type U8106 = device_creator; -const device_type Y2404 = device_creator; -const device_type SN76489 = device_creator; -const device_type SN76489A = device_creator; -const device_type SN76494 = device_creator; -const device_type SN94624 = device_creator; -const device_type NCR7496 = device_creator; -const device_type GAMEGEAR = device_creator; -const device_type SEGAPSG = device_creator; +DEFINE_DEVICE_TYPE(SN76496, sn76496_device, "sn76496", "SN76496") +DEFINE_DEVICE_TYPE(U8106, u8106_device, "u8106", "U8106") +DEFINE_DEVICE_TYPE(Y2404, y2404_device, "y2404", "Y2404") +DEFINE_DEVICE_TYPE(SN76489, sn76489_device, "sn76489", "SN76489") +DEFINE_DEVICE_TYPE(SN76489A, sn76489a_device, "sn76489a", "SN76489A") +DEFINE_DEVICE_TYPE(SN76494, sn76494_device, "sn76494", "SN76494") +DEFINE_DEVICE_TYPE(SN94624, sn94624_device, "sn94624", "SN94624") +DEFINE_DEVICE_TYPE(NCR7496, ncr7496_device, "ncr7496", "NCR7496") +DEFINE_DEVICE_TYPE(GAMEGEAR, gamegear_device, "gamegear_psg", "Game Gear PSG") +DEFINE_DEVICE_TYPE(SEGAPSG, segapsg_device, "segapsg", "Sega VDP PSG") diff --git a/src/devices/sound/sn76496.h b/src/devices/sound/sn76496.h index 936df36ea24..22ad524e308 100644 --- a/src/devices/sound/sn76496.h +++ b/src/devices/sound/sn76496.h @@ -1,34 +1,31 @@ // license:BSD-3-Clause // copyright-holders:Nicola Salmoria +#ifndef MAME_SOUND_SN76496_H +#define MAME_SOUND_SN76496_H + #pragma once -#ifndef __SN76496_H__ -#define __SN76496_H__ +DECLARE_DEVICE_TYPE(SN76496, sn76496_device) +DECLARE_DEVICE_TYPE(U8106, u8106_device) +DECLARE_DEVICE_TYPE(Y2404, y2404_device) +DECLARE_DEVICE_TYPE(SN76489, sn76489_device) +DECLARE_DEVICE_TYPE(SN76489A, sn76489a_device) +DECLARE_DEVICE_TYPE(SN76494, sn76494_device) +DECLARE_DEVICE_TYPE(SN94624, sn94624_device) +DECLARE_DEVICE_TYPE(NCR7496, ncr7496_device) +DECLARE_DEVICE_TYPE(GAMEGEAR, gamegear_device) +DECLARE_DEVICE_TYPE(SEGAPSG, segapsg_device) -extern const device_type SN76496; -extern const device_type U8106; -extern const device_type Y2404; -extern const device_type SN76489; -extern const device_type SN76489A; -extern const device_type SN76494; -extern const device_type SN94624; -extern const device_type NCR7496; -extern const device_type GAMEGEAR; -extern const device_type SEGAPSG; -#define MCFG_SN76496_READY_HANDLER(_devcb) \ - devcb = &sn76496_base_device::set_ready_handler(*device, DEVCB_##_devcb); +#define MCFG_SN76496_READY_HANDLER(cb) \ + devcb = &sn76496_base_device::set_ready_handler(*device, (DEVCB_##cb)); class sn76496_base_device : public device_t, public device_sound_interface { public: - sn76496_base_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, - int feedbackmask, int noisetap1, int noisetap2, bool negate, bool stereo, int clockdivider, int sega, - device_t *owner, uint32_t clock, const char *shortname, const char *source); - // static configuration helpers - template static devcb_base &set_ready_handler(device_t &device, _Object object) { return downcast(device).m_ready_handler.set_callback(object); } + template static devcb_base &set_ready_handler(device_t &device, Object &&cb) { return downcast(device).m_ready_handler.set_callback(std::forward(cb)); } DECLARE_WRITE8_MEMBER( stereo_w ); void write(uint8_t data); @@ -36,6 +33,20 @@ public: DECLARE_READ_LINE_MEMBER( ready_r ) { return m_ready_state ? 1 : 0; } protected: + sn76496_base_device( + const machine_config &mconfig, + device_type type, + const char *tag, + int feedbackmask, + int noisetap1, + int noisetap2, + bool negate, + bool stereo, + int clockdivider, + bool sega, + device_t *owner, + uint32_t clock); + virtual void device_start() override; virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; @@ -141,4 +152,4 @@ public: segapsg_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; -#endif /* __SN76496_H__ */ +#endif // MAME_SOUND_SN76496_H diff --git a/src/devices/sound/snkwave.cpp b/src/devices/sound/snkwave.cpp index c7b4ff4ef5a..4a16946199b 100644 --- a/src/devices/sound/snkwave.cpp +++ b/src/devices/sound/snkwave.cpp @@ -12,17 +12,14 @@ #include "snkwave.h" -#define CLOCK_SHIFT 8 - - -const device_type SNKWAVE = device_creator; +DEFINE_DEVICE_TYPE(SNKWAVE, snkwave_device, "snkwave", "SNK Wave") //------------------------------------------------- // snkwave_device - constructor //------------------------------------------------- snkwave_device::snkwave_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, SNKWAVE, "SNK Wave", tag, owner, clock, "snkwave", __FILE__), + : device_t(mconfig, SNKWAVE, tag, owner, clock), device_sound_interface(mconfig, *this), m_stream(nullptr), m_external_clock(0), @@ -31,7 +28,7 @@ snkwave_device::snkwave_device(const machine_config &mconfig, const char *tag, d m_counter(0), m_waveform_position(0) { - memset(m_waveform, 0, sizeof(m_waveform)); + std::fill(std::begin(m_waveform), std::end(m_waveform), 0); } //------------------------------------------------- @@ -58,7 +55,7 @@ void snkwave_device::device_start() save_item(NAME(m_frequency)); save_item(NAME(m_counter)); save_item(NAME(m_waveform_position)); - save_pointer(NAME(m_waveform), SNKWAVE_WAVEFORM_LENGTH); + save_pointer(NAME(m_waveform), WAVEFORM_LENGTH); } @@ -96,7 +93,7 @@ void snkwave_device::sound_stream_update(sound_stream &stream, stream_sample_t * { out += m_waveform[m_waveform_position] * steps; m_counter = m_frequency; - m_waveform_position = (m_waveform_position + 1) & (SNKWAVE_WAVEFORM_LENGTH-1); + m_waveform_position = (m_waveform_position + 1) & (WAVEFORM_LENGTH-1); loops -= steps; } else @@ -144,10 +141,10 @@ WRITE8_MEMBER( snkwave_device::snkwave_w ) */ void snkwave_device::update_waveform(unsigned int offset, uint8_t data) { - assert(offset < SNKWAVE_WAVEFORM_LENGTH/4); + assert(offset < WAVEFORM_LENGTH/4); m_waveform[offset * 2] = ((data & 0x38) >> 3) << (12-CLOCK_SHIFT); m_waveform[offset * 2 + 1] = ((data & 0x07) >> 0) << (12-CLOCK_SHIFT); - m_waveform[SNKWAVE_WAVEFORM_LENGTH-2 - offset * 2] = ~m_waveform[offset * 2 + 1]; - m_waveform[SNKWAVE_WAVEFORM_LENGTH-1 - offset * 2] = ~m_waveform[offset * 2]; + m_waveform[WAVEFORM_LENGTH-2 - offset * 2] = ~m_waveform[offset * 2 + 1]; + m_waveform[WAVEFORM_LENGTH-1 - offset * 2] = ~m_waveform[offset * 2]; } diff --git a/src/devices/sound/snkwave.h b/src/devices/sound/snkwave.h index f825cbab2b4..b05f483139d 100644 --- a/src/devices/sound/snkwave.h +++ b/src/devices/sound/snkwave.h @@ -1,11 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Nicola Salmoria -#pragma once - -#ifndef __SNKWAVE_H__ -#define __SNKWAVE_H__ +#ifndef MAME_SOUND_SNKWAVE_H +#define MAME_SOUND_SNKWAVE_H -#define SNKWAVE_WAVEFORM_LENGTH 16 +#pragma once //************************************************************************** // INTERFACE CONFIGURATION MACROS @@ -29,7 +27,8 @@ class snkwave_device : public device_t, { public: snkwave_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~snkwave_device() { } + + DECLARE_WRITE8_MEMBER( snkwave_w ); protected: // device-level overrides @@ -38,13 +37,12 @@ protected: // sound stream update overrides virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; -public: - DECLARE_WRITE8_MEMBER( snkwave_w ); - private: + static constexpr unsigned WAVEFORM_LENGTH = 16; + static constexpr unsigned CLOCK_SHIFT = 8; + void update_waveform(unsigned int offset, uint8_t data); -private: sound_stream *m_stream; int m_external_clock; int m_sample_rate; @@ -55,10 +53,9 @@ private: int m_waveform_position; // decoded waveform table - int16_t m_waveform[SNKWAVE_WAVEFORM_LENGTH]; + int16_t m_waveform[WAVEFORM_LENGTH]; }; -extern const device_type SNKWAVE; - +DECLARE_DEVICE_TYPE(SNKWAVE, snkwave_device) -#endif /* __SNKWAVE_H__ */ +#endif // MAME_SOUND_SNKWAVE_H diff --git a/src/devices/sound/sp0250.cpp b/src/devices/sound/sp0250.cpp index e4dcd28249d..21d7a4f2ec5 100644 --- a/src/devices/sound/sp0250.cpp +++ b/src/devices/sound/sp0250.cpp @@ -34,10 +34,10 @@ should be 312, but 312 = 39*8 so it doesn't look right because a divider by 39 i */ #define CLOCK_DIVIDER (7*6*8) -const device_type SP0250 = device_creator; +DEFINE_DEVICE_TYPE(SP0250, sp0250_device, "sp0250", "GI SP0250 LPC") sp0250_device::sp0250_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, SP0250, "SP0250", tag, owner, clock, "sp0250", __FILE__), + : device_t(mconfig, SP0250, tag, owner, clock), device_sound_interface(mconfig, *this), m_amp(0), m_pitch(0), diff --git a/src/devices/sound/sp0250.h b/src/devices/sound/sp0250.h index e9f8e40829a..11c063ecf8d 100644 --- a/src/devices/sound/sp0250.h +++ b/src/devices/sound/sp0250.h @@ -1,18 +1,16 @@ // license:BSD-3-Clause // copyright-holders:Olivier Galibert -#pragma once +#ifndef MAME_SOUND_SP0250_H +#define MAME_SOUND_SP0250_H -#ifndef __SP0250_H__ -#define __SP0250_H__ +#pragma once -class sp0250_device : public device_t, - public device_sound_interface +class sp0250_device : public device_t, public device_sound_interface { public: sp0250_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~sp0250_device() {} - template static devcb_base &set_drq_callback(device_t &device, _Object object) { return downcast(device).m_drq.set_callback(object); } + template static devcb_base &set_drq_callback(device_t &device, Object &&cb) { return downcast(device).m_drq.set_callback(std::forward(cb)); } DECLARE_WRITE8_MEMBER( write ); uint8_t drq_r(); @@ -48,11 +46,9 @@ private: TIMER_CALLBACK_MEMBER( timer_tick ); }; -extern const device_type SP0250; +DECLARE_DEVICE_TYPE(SP0250, sp0250_device) #define MCFG_SP0250_DRQ_CALLBACK(_write) \ devcb = &sp0250_device::set_drq_callback(*device, DEVCB_##_write); - - -#endif /* __SP0250_H__ */ +#endif // MAME_SOUND_SP0250_H diff --git a/src/devices/sound/sp0256.cpp b/src/devices/sound/sp0256.cpp index 5e8777e8de2..0dfe8194cc7 100644 --- a/src/devices/sound/sp0256.cpp +++ b/src/devices/sound/sp0256.cpp @@ -23,6 +23,15 @@ #include "emu.h" #include "sp0256.h" +#define LOG_GENERAL (1U << 0) +#define LOG_FIFO (1U << 1) + +//#define VERBOSE (LOG_GENERAL | LOG_FIFO) +#include "logmacro.h" + +#define LOGFIFO(...) LOGMASKED(LOG_FIFO, __VA_ARGS__) + + #define CLOCK_DIVIDER (7*6*8) #define HIGH_QUALITY @@ -33,49 +42,9 @@ #define FIFO_ADDR (0x1800 << 3) /* SP0256 address of SPB260 speech FIFO. */ -#define VERBOSE 0 -#define DEBUG_FIFO 0 - -#define LOG(x) do { if (VERBOSE) logerror x; } while (0) - -#define LOG_FIFO(x) do { if (DEBUG_FIFO) logerror x; } while (0) - -#define SET_SBY(line_state) { \ - if (m_sby_line != line_state) \ - { \ - m_sby_line = line_state; \ - m_sby_cb(m_sby_line); \ - } \ -} - -/* ======================================================================== */ -/* qtbl -- Coefficient Quantization Table. This comes from a */ -/* SP0250 data sheet, and should be correct for SP0256. */ -/* ======================================================================== */ -static const int16_t qtbl[128] = -{ - 0, 9, 17, 25, 33, 41, 49, 57, - 65, 73, 81, 89, 97, 105, 113, 121, - 129, 137, 145, 153, 161, 169, 177, 185, - 193, 201, 209, 217, 225, 233, 241, 249, - 257, 265, 273, 281, 289, 297, 301, 305, - 309, 313, 317, 321, 325, 329, 333, 337, - 341, 345, 349, 353, 357, 361, 365, 369, - 373, 377, 381, 385, 389, 393, 397, 401, - 405, 409, 413, 417, 421, 425, 427, 429, - 431, 433, 435, 437, 439, 441, 443, 445, - 447, 449, 451, 453, 455, 457, 459, 461, - 463, 465, 467, 469, 471, 473, 475, 477, - 479, 481, 482, 483, 484, 485, 486, 487, - 488, 489, 490, 491, 492, 493, 494, 495, - 496, 497, 498, 499, 500, 501, 502, 503, - 504, 505, 506, 507, 508, 509, 510, 511 -}; - - // device type definition -const device_type SP0256 = device_creator; +DEFINE_DEVICE_TYPE(SP0256, sp0256_device, "sp0256", "GI SP0256 Narrator Speech Processor") //************************************************************************** @@ -83,11 +52,14 @@ const device_type SP0256 = device_creator; //************************************************************************** sp0256_device::sp0256_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, SP0256, "SP0256", tag, owner, clock, "sp0256", __FILE__), - device_sound_interface(mconfig, *this), - m_rom(*this, DEVICE_SELF), - m_drq_cb(*this), - m_sby_cb(*this) + : device_t(mconfig, SP0256, tag, owner, clock) + , device_sound_interface(mconfig, *this) + , m_rom(*this, DEVICE_SELF) + , m_stream(nullptr) + , m_drq_cb(*this) + , m_sby_cb(*this) + , m_scratch() + , m_lrq_timer(nullptr) { } @@ -191,7 +163,7 @@ void sp0256_device::device_reset() m_silent = 1; m_sby_line = 0; m_drq_cb(1); - SET_SBY(1) + SET_SBY(1); m_lrq = 0; m_lrq_timer->adjust(attotime::from_ticks(50, m_clock)); @@ -202,7 +174,7 @@ void sp0256_device::device_reset() /* ======================================================================== */ /* LIMIT -- Limiter function for digital sample output. */ /* ======================================================================== */ -static inline int16_t limit(int16_t s) +inline int16_t sp0256_device::lpc12_t::limit(int16_t s) { #ifdef HIGH_QUALITY /* Higher quality than the original, but who cares? */ if (s > 8191) return 8191; @@ -217,11 +189,9 @@ static inline int16_t limit(int16_t s) /* ======================================================================== */ /* LPC12_UPDATE -- Update the 12-pole filter, outputting samples. */ /* ======================================================================== */ -static inline int lpc12_update(struct lpc12_t *f, int num_samp, int16_t *out, uint32_t *optr) +inline int sp0256_device::lpc12_t::update(int num_samp, int16_t *out, uint32_t *optr) { - int i, j; - int16_t samp; - int do_int; + int i; int oidx = *optr; /* -------------------------------------------------------------------- */ @@ -233,44 +203,41 @@ static inline int lpc12_update(struct lpc12_t *f, int num_samp, int16_t *out, ui /* ---------------------------------------------------------------- */ /* Generate a series of periodic impulses, or random noise. */ /* ---------------------------------------------------------------- */ - do_int = 0; - samp = 0; - if (f->per) + bool do_int = false; + uint16_t samp = 0; + if (per) { - if (f->cnt <= 0) + if (cnt <= 0) { - f->cnt += f->per; - samp = f->amp; - f->rpt--; - do_int = f->interp; + cnt += per; + samp = amp; + rpt--; + do_int = interp; - for (j = 0; j < 6; j++) - f->z_data[j][1] = f->z_data[j][0] = 0; - - } else + for (int j = 0; j < 6; j++) + z_data[j][1] = z_data[j][0] = 0; + } + else { samp = 0; - f->cnt--; + cnt--; } - - } else + } + else { - int bit; - - if (--f->cnt <= 0) + if (--cnt <= 0) { - do_int = f->interp; - f->cnt = PER_NOISE; - f->rpt--; - for (j = 0; j < 6; j++) - f->z_data[j][0] = f->z_data[j][1] = 0; + do_int = interp; + cnt = PER_NOISE; + rpt--; + for (int j = 0; j < 6; j++) + z_data[j][0] = z_data[j][1] = 0; } - bit = f->rng & 1; - f->rng = (f->rng >> 1) ^ (bit ? 0x4001 : 0); + const bool bit(rng & 1); + rng = (rng >> 1) ^ (bit ? 0x4001 : 0); - if (bit) { samp = f->amp; } - else { samp = -f->amp; } + samp = bit ? amp : -amp; } /* ---------------------------------------------------------------- */ @@ -278,20 +245,19 @@ static inline int lpc12_update(struct lpc12_t *f, int num_samp, int16_t *out, ui /* ---------------------------------------------------------------- */ if (do_int) { - f->r[0] += f->r[14]; - f->r[1] += f->r[15]; + r[0] += r[14]; + r[1] += r[15]; - f->amp = (f->r[0] & 0x1F) << (((f->r[0] & 0xE0) >> 5) + 0); - f->per = f->r[1]; - - do_int = 0; + amp = (r[0] & 0x1F) << (((r[0] & 0xE0) >> 5) + 0); + per = r[1]; } /* ---------------------------------------------------------------- */ /* Stop if we expire our repeat counter and return the actual */ /* number of samples we did. */ /* ---------------------------------------------------------------- */ - if (f->rpt <= 0) break; + if (rpt <= 0) + break; /* ---------------------------------------------------------------- */ /* Each 2nd order stage looks like one of these. The App. Manual */ @@ -321,19 +287,19 @@ static inline int lpc12_update(struct lpc12_t *f, int num_samp, int16_t *out, ui /* +-----------[B]<---------+ */ /* */ /* ---------------------------------------------------------------- */ - for (j = 0; j < 6; j++) + for (int j = 0; j < 6; j++) { - samp += (((int)f->b_coef[j] * (int)f->z_data[j][1]) >> 9); - samp += (((int)f->f_coef[j] * (int)f->z_data[j][0]) >> 8); + samp += (int(b_coef[j]) * int(z_data[j][1])) >> 9; + samp += (int(f_coef[j]) * int(z_data[j][0])) >> 8; - f->z_data[j][1] = f->z_data[j][0]; - f->z_data[j][0] = samp; + z_data[j][1] = z_data[j][0]; + z_data[j][0] = samp; } #ifdef HIGH_QUALITY /* Higher quality than the original, but who cares? */ out[oidx++ & SCBUF_MASK] = limit(samp) << 2; #else - out[oidx++ & SCBUF_MASK] = (limit(samp >> 4) << 8); + out[oidx++ & SCBUF_MASK] = limit(samp >> 4) << 8; #endif } @@ -342,41 +308,61 @@ static inline int lpc12_update(struct lpc12_t *f, int num_samp, int16_t *out, ui return i; } -static const int stage_map[6] = { 0, 1, 2, 3, 4, 5 }; - /* ======================================================================== */ /* LPC12_REGDEC -- Decode the register set in the filter bank. */ /* ======================================================================== */ -static inline void lpc12_regdec(struct lpc12_t *f) +inline void sp0256_device::lpc12_t::regdec() { - int i; - /* -------------------------------------------------------------------- */ /* Decode the Amplitude and Period registers. Force the 'cnt' to 0 */ /* to get an initial impulse. We compensate elsewhere by setting */ /* the repeat count to "repeat + 1". */ /* -------------------------------------------------------------------- */ - f->amp = (f->r[0] & 0x1F) << (((f->r[0] & 0xE0) >> 5) + 0); - f->cnt = 0; - f->per = f->r[1]; + amp = (r[0] & 0x1F) << (((r[0] & 0xE0) >> 5) + 0); + cnt = 0; + per = r[1]; /* -------------------------------------------------------------------- */ /* Decode the filter coefficients from the quant table. */ /* -------------------------------------------------------------------- */ - for (i = 0; i < 6; i++) + for (int i = 0; i < 6; i++) { - #define IQ(x) (((x) & 0x80) ? qtbl[0x7F & -(x)] : -qtbl[(x)]) - - f->b_coef[stage_map[i]] = IQ(f->r[2 + 2*i]); - f->f_coef[stage_map[i]] = IQ(f->r[3 + 2*i]); + /* ======================================================================== */ + /* qtbl -- Coefficient Quantization Table. This comes from a */ + /* SP0250 data sheet, and should be correct for SP0256. */ + /* ======================================================================== */ + static constexpr int16_t qtbl[128] = + { + 0, 9, 17, 25, 33, 41, 49, 57, + 65, 73, 81, 89, 97, 105, 113, 121, + 129, 137, 145, 153, 161, 169, 177, 185, + 193, 201, 209, 217, 225, 233, 241, 249, + 257, 265, 273, 281, 289, 297, 301, 305, + 309, 313, 317, 321, 325, 329, 333, 337, + 341, 345, 349, 353, 357, 361, 365, 369, + 373, 377, 381, 385, 389, 393, 397, 401, + 405, 409, 413, 417, 421, 425, 427, 429, + 431, 433, 435, 437, 439, 441, 443, 445, + 447, 449, 451, 453, 455, 457, 459, 461, + 463, 465, 467, 469, 471, 473, 475, 477, + 479, 481, 482, 483, 484, 485, 486, 487, + 488, 489, 490, 491, 492, 493, 494, 495, + 496, 497, 498, 499, 500, 501, 502, 503, + 504, 505, 506, 507, 508, 509, 510, 511 + }; + + static constexpr int stage_map[6] = { 0, 1, 2, 3, 4, 5 }; + + auto IQ = [] (uint8_t x) { return (x & 0x80) ? qtbl[0x7F & -x] : -qtbl[x]; }; + + b_coef[stage_map[i]] = IQ(r[2 + 2*i]); + f_coef[stage_map[i]] = IQ(r[3 + 2*i]); } /* -------------------------------------------------------------------- */ /* Set the Interp flag based on whether we have interpolation parms */ /* -------------------------------------------------------------------- */ - f->interp = f->r[14] || f->r[15]; - - return; + interp = r[14] || r[15]; } /* ======================================================================== */ @@ -759,8 +745,8 @@ uint32_t sp0256_device::getb( int len ) data = ((d1 << 10) | d0) >> m_fifo_bitp; - LOG_FIFO(("sp0256: RD_FIFO %.3X %d.%d %d\n", data & ((1 << len) - 1), - m_fifo_tail, m_fifo_bitp, m_fifo_head)); + LOGFIFO("sp0256: RD_FIFO %.3X %d.%d %d\n", data & ((1 << len) - 1), + m_fifo_tail, m_fifo_bitp, m_fifo_head); /* ---------------------------------------------------------------- */ /* Note the PC doesn't advance when we execute from FIFO. */ @@ -845,7 +831,7 @@ void sp0256_device::micro() for (i = 0; i < 16; i++) m_filt.r[i] = 0; - SET_SBY(1) + SET_SBY(1); return; } @@ -859,11 +845,11 @@ void sp0256_device::micro() repeat = 0; ctrl_xfer = 0; - LOG(("$%.4X.%.1X: OPCODE %d%d%d%d.%d%d\n", + LOG("$%.4X.%.1X: OPCODE %d%d%d%d.%d%d\n", (m_pc >> 3) - 1, m_pc & 7, !!(opcode & 1), !!(opcode & 2), !!(opcode & 4), !!(opcode & 8), - !!(m_mode&4), !!(m_mode&2))); + !!(m_mode&4), !!(m_mode&2)); /* ---------------------------------------------------------------- */ /* Handle the special cases for specific opcodes. */ @@ -982,7 +968,7 @@ void sp0256_device::micro() /* ---------------------------------------------------------------- */ if (ctrl_xfer) { - LOG(("jumping to $%.4X.%.1X: ", m_pc >> 3, m_pc & 7)); + LOG("jumping to $%.4X.%.1X: ", m_pc >> 3, m_pc & 7); /* ------------------------------------------------------------ */ /* Set our "FIFO Selected" flag based on whether we're going */ @@ -990,7 +976,7 @@ void sp0256_device::micro() /* ------------------------------------------------------------ */ m_fifo_sel = m_pc == FIFO_ADDR; - LOG(("%s ", m_fifo_sel ? "FIFO" : "ROM")); + LOG("%s ", m_fifo_sel ? "FIFO" : "ROM"); /* ------------------------------------------------------------ */ /* Control transfers to the FIFO cause it to discard the */ @@ -998,14 +984,14 @@ void sp0256_device::micro() /* ------------------------------------------------------------ */ if (m_fifo_sel && m_fifo_bitp) { - LOG(("bitp = %d -> Flush", m_fifo_bitp)); + LOG("bitp = %d -> Flush", m_fifo_bitp); /* Discard partially-read decle. */ if (m_fifo_tail < m_fifo_head) m_fifo_tail++; m_fifo_bitp = 0; } - LOG(("\n")); + LOG("\n"); continue; } @@ -1017,7 +1003,7 @@ void sp0256_device::micro() if (!repeat) continue; m_filt.rpt = repeat + 1; - LOG(("repeat = %d\n", repeat)); + LOG("repeat = %d\n", repeat); i = (opcode << 3) | (m_mode & 6); idx0 = sp0256_df_idx[i++]; @@ -1047,8 +1033,8 @@ void sp0256_device::micro() field = cr & CR_FIELD; value = 0; - LOG(("$%.4X.%.1X: len=%2d shf=%2d prm=%2d d=%d f=%d ", - m_pc >> 3, m_pc & 7, len, shf, prm, !!delta, !!field)); + LOG("$%.4X.%.1X: len=%2d shf=%2d prm=%2d d=%d f=%d ", + m_pc >> 3, m_pc & 7, len, shf, prm, !!delta, !!field); /* ------------------------------------------------------------ */ /* Clear any registers that were requested to be cleared. */ /* ------------------------------------------------------------ */ @@ -1072,7 +1058,7 @@ void sp0256_device::micro() } else { - LOG((" (no update)\n")); + LOG(" (no update)\n"); continue; } @@ -1090,9 +1076,9 @@ void sp0256_device::micro() if (shf) value <<= shf; - LOG(("v=%.2X (%c%.2X) ", value & 0xFF, + LOG("v=%.2X (%c%.2X) ", value & 0xFF, value & 0x80 ? '-' : '+', - 0xFF & (value & 0x80 ? -value : value))); + 0xFF & (value & 0x80 ? -value : value)); m_silent = 0; @@ -1101,12 +1087,12 @@ void sp0256_device::micro() /* ------------------------------------------------------------ */ if (field) { - LOG(("--field-> r[%2d] = %.2X -> ", prm, m_filt.r[prm])); + LOG("--field-> r[%2d] = %.2X -> ", prm, m_filt.r[prm]); m_filt.r[prm] &= ~(~0 << shf); /* Clear the old bits. */ m_filt.r[prm] |= value; /* Merge in the new bits. */ - LOG(("%.2X\n", m_filt.r[prm])); + LOG("%.2X\n", m_filt.r[prm]); continue; } @@ -1116,11 +1102,11 @@ void sp0256_device::micro() /* ------------------------------------------------------------ */ if (delta) { - LOG(("--delta-> r[%2d] = %.2X -> ", prm, m_filt.r[prm])); + LOG("--delta-> r[%2d] = %.2X -> ", prm, m_filt.r[prm]); m_filt.r[prm] += value; - LOG(("%.2X\n", m_filt.r[prm])); + LOG("%.2X\n", m_filt.r[prm]); continue; } @@ -1129,7 +1115,7 @@ void sp0256_device::micro() /* Otherwise, just write the new value. */ /* ------------------------------------------------------------ */ m_filt.r[prm] = value; - LOG(("--value-> r[%2d] = %.2X\n", prm, m_filt.r[prm])); + LOG("--value-> r[%2d] = %.2X\n", prm, m_filt.r[prm]); } /* ---------------------------------------------------------------- */ @@ -1144,7 +1130,7 @@ void sp0256_device::micro() /* ---------------------------------------------------------------- */ /* Now that we've updated the registers, go decode them. */ /* ---------------------------------------------------------------- */ - lpc12_regdec(&m_filt); + m_filt.regdec(); /* ---------------------------------------------------------------- */ /* Break out since we now have a repeat count. */ @@ -1162,7 +1148,7 @@ WRITE8_MEMBER( sp0256_device::ald_w ) /* ---------------------------------------------------------------- */ if (!m_lrq) { - LOG(("sp0256: Dropped ALD write\n")); + LOG("sp0256: Dropped ALD write\n"); return; } @@ -1174,7 +1160,7 @@ WRITE8_MEMBER( sp0256_device::ald_w ) m_lrq = 0; m_ald = (0xff & data) << 4; m_drq_cb(0); - SET_SBY(0) + SET_SBY(0); return; } @@ -1244,7 +1230,7 @@ WRITE16_MEMBER( sp0256_device::spb640_w ) /* ---------------------------------------------------------------- */ if ((m_fifo_head - m_fifo_tail) >= 64) { - LOG(("spb640: Dropped FIFO write\n")); + LOG("spb640: Dropped FIFO write\n"); return; } @@ -1252,8 +1238,8 @@ WRITE16_MEMBER( sp0256_device::spb640_w ) /* FIFO up the lower 10 bits of the data. */ /* ---------------------------------------------------------------- */ - LOG(("spb640: WR_FIFO %.3X %d.%d %d\n", data & 0x3ff, - m_fifo_tail, m_fifo_bitp, m_fifo_head)); + LOG("spb640: WR_FIFO %.3X %d.%d %d\n", data & 0x3ff, + m_fifo_tail, m_fifo_bitp, m_fifo_head); m_fifo[m_fifo_head++ & 63] = data & 0x3ff; @@ -1343,8 +1329,7 @@ void sp0256_device::sound_stream_update(sound_stream &stream, stream_sample_t ** } else { - did_samp += lpc12_update(&m_filt, do_samp, - m_scratch.get(), &m_sc_head); + did_samp += m_filt.update(do_samp, m_scratch.get(), &m_sc_head); } m_sc_head &= SCBUF_MASK; diff --git a/src/devices/sound/sp0256.h b/src/devices/sound/sp0256.h index 4b13885e92c..b7c08e72a46 100644 --- a/src/devices/sound/sp0256.h +++ b/src/devices/sound/sp0256.h @@ -30,10 +30,10 @@ */ -#pragma once +#ifndef MAME_SOUND_SP0256_H +#define MAME_SOUND_SP0256_H -#ifndef __SP0256_H__ -#define __SP0256_H__ +#pragma once #define MCFG_SP0256_DATA_REQUEST_CB(_devcb) \ devcb = &sp0256_device::set_data_request_callback(*device, DEVCB_##_devcb); @@ -42,27 +42,14 @@ devcb = &sp0256_device::set_standby_callback(*device, DEVCB_##_devcb); -struct lpc12_t -{ - int rpt, cnt; /* Repeat counter, Period down-counter. */ - uint32_t per, rng; /* Period, Amplitude, Random Number Generator */ - int amp; - int16_t f_coef[6]; /* F0 through F5. */ - int16_t b_coef[6]; /* B0 through B5. */ - int16_t z_data[6][2]; /* Time-delay data for the filter stages. */ - uint8_t r[16]; /* The encoded register set. */ - int interp; -}; - class sp0256_device : public device_t, public device_sound_interface { public: sp0256_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~sp0256_device() { } - template static devcb_base &set_data_request_callback(device_t &device, _Object object) { return downcast(device).m_drq_cb.set_callback(object); } - template static devcb_base &set_standby_callback(device_t &device, _Object object) { return downcast(device).m_sby_cb.set_callback(object); } + template static devcb_base &set_data_request_callback(device_t &device, Object &&cb) { return downcast(device).m_drq_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_standby_callback(device_t &device, Object &&cb) { return downcast(device).m_sby_cb.set_callback(std::forward(cb)); } DECLARE_WRITE8_MEMBER(ald_w); DECLARE_READ_LINE_MEMBER(lrq_r); @@ -83,41 +70,69 @@ protected: virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; private: + struct lpc12_t + { + int update(int num_samp, int16_t *out, uint32_t *optr); + void regdec(); + + int rpt, cnt; // Repeat counter, Period down-counter. + uint32_t per, rng; // Period, Amplitude, Random Number Generator + int amp; + int16_t f_coef[6]; // F0 through F5. + int16_t b_coef[6]; // B0 through B5. + int16_t z_data[6][2]; // Time-delay data for the filter stages. + uint8_t r[16]; // The encoded register set. + int interp; + + private: + static int16_t limit(int16_t s); + }; + uint32_t getb(int len); void micro(); - required_region_ptr m_rom; /* 64K ROM. */ - sound_stream *m_stream; /* MAME core sound stream */ - devcb_write_line m_drq_cb; /* Data request callback */ - devcb_write_line m_sby_cb; /* Standby callback */ - - int m_sby_line; /* Standby line state */ - int m_cur_len; /* Fullness of current sound buffer. */ - - int m_silent; /* Flag: SP0256 is silent. */ - - std::unique_ptr m_scratch; /* Scratch buffer for audio. */ - uint32_t m_sc_head; /* Head pointer into scratch circular buf */ - uint32_t m_sc_tail; /* Tail pointer into scratch circular buf */ - - struct lpc12_t m_filt; /* 12-pole filter */ - int m_lrq; /* Load ReQuest. == 0 if we can accept a load */ - int m_ald; /* Address LoaD. < 0 if no command pending. */ - int m_pc; /* Microcontroller's PC value. */ - int m_stack; /* Microcontroller's PC stack. */ - int m_fifo_sel; /* True when executing from FIFO. */ - int m_halted; /* True when CPU is halted. */ - uint32_t m_mode; /* Mode register. */ - uint32_t m_page; /* Page set by SETPAGE */ - - uint32_t m_fifo_head; /* FIFO head pointer (where new data goes). */ - uint32_t m_fifo_tail; /* FIFO tail pointer (where data comes from). */ - uint32_t m_fifo_bitp; /* FIFO bit-pointer (for partial decles). */ - uint16_t m_fifo[64]; /* The 64-decle FIFO. */ + + void SET_SBY(int line_state) + { + if (m_sby_line != line_state) + { + m_sby_line = line_state; + m_sby_cb(m_sby_line); + } + } + + required_region_ptr m_rom; // 64K ROM. + sound_stream *m_stream; // MAME core sound stream + devcb_write_line m_drq_cb; // Data request callback + devcb_write_line m_sby_cb; // Standby callback + + int m_sby_line; // Standby line state + int m_cur_len; // Fullness of current sound buffer. + + int m_silent; // Flag: SP0256 is silent. + + std::unique_ptr m_scratch; // Scratch buffer for audio. + uint32_t m_sc_head; // Head pointer into scratch circular buf + uint32_t m_sc_tail; // Tail pointer into scratch circular buf + + lpc12_t m_filt; // 12-pole filter + int m_lrq; // Load ReQuest. == 0 if we can accept a load + int m_ald; // Address LoaD. < 0 if no command pending. + int m_pc; // Microcontroller's PC value. + int m_stack; // Microcontroller's PC stack. + int m_fifo_sel; // True when executing from FIFO. + int m_halted; // True when CPU is halted. + uint32_t m_mode; // Mode register. + uint32_t m_page; // Page set by SETPAGE + + uint32_t m_fifo_head; // FIFO head pointer (where new data goes). + uint32_t m_fifo_tail; // FIFO tail pointer (where data comes from). + uint32_t m_fifo_bitp; // FIFO bit-pointer (for partial decles). + uint16_t m_fifo[64]; // The 64-decle FIFO. emu_timer *m_lrq_timer; }; -extern const device_type SP0256; +DECLARE_DEVICE_TYPE(SP0256, sp0256_device) -#endif /* __SP0256_H__ */ +#endif // MAME_SOUND_SP0256_H diff --git a/src/devices/sound/spkrdev.cpp b/src/devices/sound/spkrdev.cpp index 4af44791921..fc912fbd367 100644 --- a/src/devices/sound/spkrdev.cpp +++ b/src/devices/sound/spkrdev.cpp @@ -76,20 +76,17 @@ #include "sound/spkrdev.h" -static const int16_t default_levels[2] = {0, 32767}; +static constexpr int16_t default_levels[2] = {0, 32767}; // Internal oversampling factor (interm. samples vs stream samples) -static const int RATE_MULTIPLIER = 4; +static constexpr int RATE_MULTIPLIER = 4; -const device_type SPEAKER_SOUND = device_creator; - -template class device_finder; -template class device_finder; +DEFINE_DEVICE_TYPE(SPEAKER_SOUND, speaker_sound_device, "speaker_sound_device", "Filtered 1-bit DAC") speaker_sound_device::speaker_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, SPEAKER_SOUND, "Filtered 1-bit DAC", tag, owner, clock, "speaker_sound", __FILE__) + : device_t(mconfig, SPEAKER_SOUND, tag, owner, clock) , device_sound_interface(mconfig, *this) , m_num_levels(2) , m_levels(default_levels) diff --git a/src/devices/sound/spkrdev.h b/src/devices/sound/spkrdev.h index 4fdb0a92ff6..42bf3625876 100644 --- a/src/devices/sound/spkrdev.h +++ b/src/devices/sound/spkrdev.h @@ -7,18 +7,12 @@ driven by one or more output bits **********************************************************************/ -#ifndef MAME_DEVICES_SOUND_SPKRDEV_H -#define MAME_DEVICES_SOUND_SPKRDEV_H +#ifndef MAME_SOUND_SPKRDEV_H +#define MAME_SOUND_SPKRDEV_H #pragma once -// Length of anti-aliasing filter kernel, measured in number of intermediate samples -enum -{ - FILTER_LENGTH = 64 -}; - #define MCFG_SPEAKER_LEVELS(_num, _levels) \ speaker_sound_device::static_set_levels(*device, _num, _levels); @@ -43,6 +37,12 @@ protected: virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; private: + // Length of anti-aliasing filter kernel, measured in number of intermediate samples + enum + { + FILTER_LENGTH = 64 + }; + // internal state // Updates the composed volume array according to time @@ -87,9 +87,6 @@ private: const int16_t *m_levels; /* optional: pointer to level lookup table */ }; -extern const device_type SPEAKER_SOUND; - -extern template class device_finder; -extern template class device_finder; +DECLARE_DEVICE_TYPE(SPEAKER_SOUND, speaker_sound_device) -#endif // MAME_DEVICES_SOUND_SPKRDEV_H +#endif // MAME_SOUND_SPKRDEV_H diff --git a/src/devices/sound/spu.cpp b/src/devices/sound/spu.cpp index 755717f1fc9..383287b9114 100644 --- a/src/devices/sound/spu.cpp +++ b/src/devices/sound/spu.cpp @@ -34,31 +34,11 @@ #endif // device type definition -const device_type SPU = device_creator; +DEFINE_DEVICE_TYPE(SPU, spu_device, "psxspu", "PlayStation SPU") // // // -static inline unsigned int min(unsigned int a, unsigned int b) -{ - return (a > b) ? b : a; -} - -static inline unsigned int max(unsigned int a, unsigned int b) -{ - return (a > b) ? a : b; -} - -static inline double mindb(double a, double b) -{ - return (a > b) ? b : a; -} - -static inline double maxdb(double a, double b) -{ - return (a > b) ? a : b; -} - enum spu_registers { spureg_voice=0, @@ -240,7 +220,7 @@ static const int filter_coef[5][2]= // GLOBAL VARIABLES //************************************************************************** -reverb_params *spu_reverb_cfg=nullptr; +spu_device::reverb_params *spu_device::spu_reverb_cfg=nullptr; float spu_device::freq_multiplier=1.0f; @@ -955,7 +935,7 @@ static int shift_register15(int &shift) //------------------------------------------------- spu_device::spu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, SPU, "SPU", tag, owner, clock, "spu", __FILE__), + device_t(mconfig, SPU, tag, owner, clock), device_sound_interface(mconfig, *this), m_irq_handler(*this), dirty_flags(-1), @@ -1316,8 +1296,8 @@ void spu_device::flush_cache(sample_cache *sc, sc->start, sc->end);*/ - sc->invalid_start=min(sc->invalid_start,istart); - sc->invalid_end=max(sc->invalid_end,iend); + sc->invalid_start=(std::min)(sc->invalid_start,istart); + sc->invalid_end=(std::max)(sc->invalid_end,iend); sc->valid=false; sc->remove_ref(); } @@ -1364,7 +1344,7 @@ spu_device::sample_cache *spu_device::get_sample_cache(const unsigned int addr) if ((a < 0x80000) && (ap->flags&adpcmflag_loop)) sc->is_loop=true; - sc->end=min(spu_ram_size,a+16); + sc->end=(std::min)(spu_ram_size,a+16); unsigned int sz=((sc->end-sc->start)>>4)*28; sc->data=new signed short [sz]; @@ -1461,7 +1441,7 @@ void spu_device::update_voice_events(voiceinfo *vi) // Voice is inside loop cache, return time until end of that if lower assert(vi->lcptrloop_cache->len); - vi->samplestoend=min(vi->samplestoend, + vi->samplestoend=(std::min)(vi->samplestoend, (unsigned int)((((int64_t)(vi->loop_cache->len-vi->lcptr)<<12)-vi->dptr)+(vi->pitch-1))/vi->pitch); } @@ -1675,9 +1655,9 @@ bool spu_device::process_voice(const unsigned int v, // Play up to end of sample, envelope event, or IRQ, whichever comes first unsigned int ntoplay=fm?1:num, - nextevent=min(vi->samplestoend, - min(vi->samplestoirq,vi->envsamples)); - ntoplay=min(ntoplay,nextevent); + nextevent=(std::min)(vi->samplestoend, + (std::min)(vi->samplestoirq,vi->envsamples)); + ntoplay=(std::min)(ntoplay,nextevent); if (ntoplay) { @@ -1968,7 +1948,7 @@ void spu_device::generate_voice(const unsigned int v, if (((sp+end)>=ep) && (vi->pitch)) { - num_stitch=min(n,max(0x1fff/vi->pitch,1)); + num_stitch=(std::min)(n,(std::max)(0x1fffU/vi->pitch,1U)); n-=num_stitch; } @@ -2214,7 +2194,7 @@ bool spu_device::update_envelope(const int v) break; case 4: // release - voice[v].env_level=mindb(1.0f,maxdb(0.0f,voice[v].env_level)); + voice[v].env_level=(std::min)(1.0f,(std::max)(0.0f,voice[v].env_level)); voice[v].env_delta=voice[v].env_rr; if (voice[v].env_rr == -0.0f) // 0.0 release means infinite time { @@ -2421,7 +2401,7 @@ void spu_device::generate_xa(void *ptr, const unsigned int sz) if (ss) { ss<<=xa_channels; - ss=min(ss,(int)xa_buffer->get_bytes_in()); + ss=(std::min)(ss,(int)xa_buffer->get_bytes_in()); xa_buffer->increment_tail(ss); sp=(signed short *)xa_buffer->get_tail_ptr(); @@ -2583,7 +2563,7 @@ void spu_device::generate(void *ptr, const unsigned int sz) while ((left) && (output_size)) { - unsigned int n=min(min(left,output_buffer_size-output_head),output_size); + unsigned int n=(std::min)((std::min)(left,output_buffer_size-output_head),output_size); memcpy(dp,output_buf[0]+output_head,n); rev->process((signed short *)dp, @@ -2629,7 +2609,7 @@ void spu_device::update_irq_event() voice[i].hitirq=true; } else { - samplestoirq=min(samplestoirq,voice[i].samplestoirq); + samplestoirq=(std::min)(samplestoirq,voice[i].samplestoirq); } } } @@ -2675,7 +2655,7 @@ void spu_device::process_until(const unsigned int tsample) // Drop samples from the head of the queue if its full - process_samples=min(process_samples,output_buffer_size>>2); + process_samples=(std::min)(process_samples,output_buffer_size>>2); unsigned int nsz=output_size+(process_samples<<2); if (nsz>output_buffer_size) { @@ -2689,7 +2669,7 @@ void spu_device::process_until(const unsigned int tsample) // Decide how many samples to process taking into account buffer // wrap in output queue. Get pointers to the queues. - process_samples=min(process_samples, + process_samples=(std::min)(process_samples, (output_buffer_size-output_tail)>>2); unsigned char *outptr=output_buf[0]+output_tail, diff --git a/src/devices/sound/spu.h b/src/devices/sound/spu.h index a04b45b439d..fe55ce98ab0 100644 --- a/src/devices/sound/spu.h +++ b/src/devices/sound/spu.h @@ -1,11 +1,9 @@ // license:BSD-3-Clause // copyright-holders:pSXAuthor, R. Belmont -#pragma once - -#ifndef __SPU_H__ -#define __SPU_H__ +#ifndef MAME_SOUND_SPU_H +#define MAME_SOUND_SPU_H -#include "spureverb.h" +#pragma once //************************************************************************** // INTERFACE CONFIGURATION MACROS @@ -20,13 +18,11 @@ MCFG_PSX_SPU_WRITE_HANDLER(DEVWRITE16(_tag, spu_device, write)) \ MCFG_DEVICE_ADD(_tag, SPU, _clock) \ MCFG_SPU_IRQ_HANDLER(DEVWRITELINE("maincpu:irq", psxirq_device, intin9)) \ - MCFG_PSX_DMA_CHANNEL_READ( "maincpu", 4, psx_dma_read_delegate(&spu_device::dma_read, (spu_device *) device ) ) \ - MCFG_PSX_DMA_CHANNEL_WRITE( "maincpu", 4, psx_dma_write_delegate(&spu_device::dma_write, (spu_device *) device ) ) + MCFG_PSX_DMA_CHANNEL_READ( "maincpu", 4, psxdma_device::read_delegate(&spu_device::dma_read, (spu_device *) device ) ) \ + MCFG_PSX_DMA_CHANNEL_WRITE( "maincpu", 4, psxdma_device::write_delegate(&spu_device::dma_write, (spu_device *) device ) ) // ======================> spu_device -const unsigned int spu_base_frequency_hz=44100; - class stream_buffer; class spu_device : public device_t, public device_sound_interface @@ -45,6 +41,9 @@ class spu_device : public device_t, public device_sound_interface }; protected: + static constexpr unsigned int spu_base_frequency_hz=44100; + class reverb; + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -53,6 +52,15 @@ protected: virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; + static constexpr float ms_to_rate(float ms) { return 1.0f / (ms * (float(spu_base_frequency_hz) / 1000.0f)); } + static constexpr float s_to_rate(float s) { return ms_to_rate(s * 1000.0f); } + static const float linear_rate[]; + static const float pos_exp_rate[]; + static const float neg_exp_rate[]; + static const float decay_rate[]; + static const float linear_release_rate[]; + static const float exp_release_rate[]; + // internal state devcb_write_line m_irq_handler; @@ -137,16 +145,15 @@ protected: #pragma pack(pop,spureg) - struct reverb_preset - { - const char *name; - unsigned short param[32]; - reverb_params cfg; - }; + struct reverb_params; + struct reverb_preset; reverb_preset *cur_reverb_preset; + sound_stream *m_stream; + static reverb_preset reverb_presets[]; + static reverb_params *spu_reverb_cfg; void key_on(const int v); void key_off(const int v); @@ -224,7 +231,7 @@ public: spu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // static configuration helpers - template static devcb_base &set_irq_handler(device_t &device, _Object object) { return downcast(device).m_irq_handler.set_callback(object); } + template static devcb_base &set_irq_handler(device_t &device, Object &&cb) { return downcast(device).m_irq_handler.set_callback(std::forward(cb)); } void dma_read( uint32_t *ram, uint32_t n_address, int32_t n_size ); void dma_write( uint32_t *ram, uint32_t n_address, int32_t n_size ); @@ -238,15 +245,11 @@ public: void flush_xa(const unsigned int sector=0); void flush_cdda(const unsigned int sector=0); - sound_stream *m_stream; - DECLARE_READ16_MEMBER( read ); DECLARE_WRITE16_MEMBER( write ); }; -extern reverb_params *spu_reverb_cfg; - // device type definition -extern const device_type SPU; +DECLARE_DEVICE_TYPE(SPU, spu_device) -#endif +#endif // MAME_SOUND_SPU_H diff --git a/src/devices/sound/spu_tables.cpp b/src/devices/sound/spu_tables.cpp index d41286df115..922f2c2bccb 100644 --- a/src/devices/sound/spu_tables.cpp +++ b/src/devices/sound/spu_tables.cpp @@ -2,18 +2,9 @@ // copyright-holders:pSXAuthor, R. Belmont #include "emu.h" #include "spu.h" +#include "spureverb.h" -static inline float ms_to_rate(const float ms) -{ - return 1.0f/(ms*((float)spu_base_frequency_hz/1000.0f)); -} - -static inline float s_to_rate(const float s) -{ - return ms_to_rate(s*1000.0f); -} - -static float linear_rate[]= +const float spu_device::linear_rate[]= { ms_to_rate(0.05f), ms_to_rate(0.06f), @@ -125,9 +116,8 @@ static float linear_rate[]= s_to_rate(6080.0f) }; -static const int num_linear_rates=ARRAY_LENGTH(linear_rate); -static const float pos_exp_rate[]= +const float spu_device::pos_exp_rate[]= { ms_to_rate(0.09f), ms_to_rate(0.11f), @@ -231,9 +221,8 @@ static const float pos_exp_rate[]= s_to_rate(2664.0f) }; -static const int num_pos_exp_rates=ARRAY_LENGTH(pos_exp_rate); -static const float neg_exp_rate[]= +const float spu_device::neg_exp_rate[]= { ms_to_rate(0.07f), ms_to_rate(0.09f), @@ -345,9 +334,8 @@ static const float neg_exp_rate[]= s_to_rate(11200.0f) }; -static const int num_neg_exp_rates=ARRAY_LENGTH(neg_exp_rate); -static const float decay_rate[16]= +const float spu_device::decay_rate[16]= { ms_to_rate(0.07f), ms_to_rate(0.18f), @@ -367,7 +355,7 @@ static const float decay_rate[16]= s_to_rate(3.4f), }; -static const float linear_release_rate[]= +const float spu_device::linear_release_rate[]= { ms_to_rate(0.04f), ms_to_rate(0.09f), @@ -398,9 +386,8 @@ static const float linear_release_rate[]= s_to_rate(3040.0f) }; -static const int num_linear_release_rates=ARRAY_LENGTH(linear_release_rate); -static const float exp_release_rate[]= +const float spu_device::exp_release_rate[]= { ms_to_rate(0.07f), ms_to_rate(0.18f), @@ -431,7 +418,6 @@ static const float exp_release_rate[]= s_to_rate(7008.0f) }; -static const int num_exp_release_rates=ARRAY_LENGTH(exp_release_rate); // // @@ -631,6 +617,7 @@ spu_device::reverb_preset spu_device::reverb_presets[]= float spu_device::get_linear_rate(const int n) { + static constexpr int num_linear_rates=ARRAY_LENGTH(linear_rate); if (n>=num_linear_rates) return 0.0f; return linear_rate[n]*freq_multiplier; } @@ -643,6 +630,7 @@ float spu_device::get_linear_rate_neg_phase(const int n) float spu_device::get_pos_exp_rate(const int n) { + static constexpr int num_pos_exp_rates=ARRAY_LENGTH(pos_exp_rate); if (n>=num_pos_exp_rates) return 0.0f; return pos_exp_rate[n]*freq_multiplier; } @@ -655,6 +643,7 @@ float spu_device::get_pos_exp_rate_neg_phase(const int n) float spu_device::get_neg_exp_rate(const int n) { + static constexpr int num_neg_exp_rates=ARRAY_LENGTH(neg_exp_rate); if (n>=num_neg_exp_rates) return 0.0f; return -neg_exp_rate[n]*freq_multiplier; } @@ -677,12 +666,14 @@ float spu_device::get_sustain_level(const int n) float spu_device::get_linear_release_rate(const int n) { + static constexpr int num_linear_release_rates=ARRAY_LENGTH(linear_release_rate); if (n>=num_linear_release_rates) return 0.0f; return linear_release_rate[n]*freq_multiplier; } float spu_device::get_exp_release_rate(const int n) { + static constexpr int num_exp_release_rates=ARRAY_LENGTH(exp_release_rate); if (n>=num_exp_release_rates) return 0.0f; return exp_release_rate[n]*freq_multiplier; } diff --git a/src/devices/sound/spureverb.cpp b/src/devices/sound/spureverb.cpp index 3c784acbbee..cf747af1acb 100644 --- a/src/devices/sound/spureverb.cpp +++ b/src/devices/sound/spureverb.cpp @@ -17,18 +17,16 @@ // // -static inline int clamp(int v) +static constexpr int clamp(int v) { - if (v<-32768) return -32768; - if (v>32767) return 32767; - return v; + return (v<-32768) ? -32768 : (v>32767) ? 32767 : v; } // // // -reverb::reverb(const int hz, const int maxdelay) +spu_device::reverb::reverb(const int hz, const int maxdelay) : yp(0), max_delay(maxdelay), sound_hz(hz) @@ -54,7 +52,7 @@ reverb::reverb(const int hz, const int maxdelay) // // -reverb::~reverb() +spu_device::reverb::~reverb() { for (int c=0; c<2; c++) { @@ -70,7 +68,7 @@ reverb::~reverb() // // -void reverb::bandpass(signed short *sp, +void spu_device::reverb::bandpass(signed short *sp, const reverb_params *rp, const unsigned int sz) { @@ -98,7 +96,7 @@ void reverb::bandpass(signed short *sp, } } -void reverb::comb_allpass1(signed short *sp, +void spu_device::reverb::comb_allpass1(signed short *sp, signed short *dp, const comb_param &comb_delay, const int comb_gain, @@ -148,7 +146,7 @@ void reverb::comb_allpass1(signed short *sp, // // -void reverb::comb_allpass4(signed short *sp, +void spu_device::reverb::comb_allpass4(signed short *sp, signed short *dp, const comb_param &comb_delay, const int comb_gain, @@ -235,7 +233,7 @@ void reverb::comb_allpass4(signed short *sp, // // -void reverb::comb_allpass(signed short *sp, +void spu_device::reverb::comb_allpass(signed short *sp, signed short *dp, const reverb_params *rp, const int wetvol_l, @@ -312,7 +310,7 @@ void reverb::comb_allpass(signed short *sp, // // -void reverb::process(signed short *output, +void spu_device::reverb::process(signed short *output, signed short *reverb_input, const reverb_params *rp, const int wetvol_l, diff --git a/src/devices/sound/spureverb.h b/src/devices/sound/spureverb.h index 9f64c5c7f19..64b174bcfb6 100644 --- a/src/devices/sound/spureverb.h +++ b/src/devices/sound/spureverb.h @@ -1,71 +1,86 @@ // license:BSD-3-Clause // copyright-holders:pSXAuthor, R. Belmont -#ifndef _included_reverb_ - #define _included_reverb_ +#ifndef MAME_SOUND_SPUREVERB_H +#define MAME_SOUND_SPUREVERB_H - struct reverb_params - { - float band_pole, - band_gain, +#pragma once - comb_delay[2][4], - comb_gain, +#include "spu.h" - allpass_delay, - allpass_gain; - }; - class reverb - { - signed short *y[2][4], - *x[2], - *ax[2], - *ay[2], - bx1[2][2],by1[2]; - int yp, - max_delay, - sound_hz; - typedef int comb_param[2][4]; +struct spu_device::reverb_params +{ + float band_pole, + band_gain, + comb_delay[2][4], + comb_gain, + allpass_delay, + allpass_gain; +}; - void comb_allpass(signed short *sp, - signed short *dp, - const reverb_params *rp, - const int wetvol_l, - const int wetvol_r, - const unsigned int _sz); - void comb_allpass4(signed short *sp, - signed short *dp, - const comb_param &comb_delay, - const int comb_gain, - const int allpass_delay, - const int allpass_gain, - const int *rvol, - const unsigned int sz); - void comb_allpass1(signed short *sp, - signed short *dp, - const comb_param &comb_delay, - const int comb_gain, - const int allpass_delay, - const int allpass_gain, - const int *rvol, - const unsigned int sz); - void bandpass(signed short *sp, - const reverb_params *rp, - const unsigned int sz); +struct spu_device::reverb_preset +{ + const char *name; + unsigned short param[32]; + reverb_params cfg; +}; - public: - reverb(const int hz, const int maxdelay=65536); - ~reverb(); +class spu_device::reverb +{ + signed short + *y[2][4], + *x[2], + *ax[2], + *ay[2], + bx1[2][2],by1[2]; + int yp, max_delay, sound_hz; + typedef int comb_param[2][4]; - void process(signed short *output, - signed short *reverb_input, - const reverb_params *rp, - const int wetvol_l, - const int wetvol_r, - const unsigned int sz); - }; -#endif + void comb_allpass( + signed short *sp, + signed short *dp, + const reverb_params *rp, + const int wetvol_l, + const int wetvol_r, + const unsigned int _sz); + void comb_allpass4( + signed short *sp, + signed short *dp, + const comb_param &comb_delay, + const int comb_gain, + const int allpass_delay, + const int allpass_gain, + const int *rvol, + const unsigned int sz); + void comb_allpass1( + signed short *sp, + signed short *dp, + const comb_param &comb_delay, + const int comb_gain, + const int allpass_delay, + const int allpass_gain, + const int *rvol, + const unsigned int sz); + void bandpass(signed short *sp, + const reverb_params *rp, + const unsigned int sz); + +public: + reverb(const int hz, const int maxdelay=65536); + ~reverb(); + + void process( + signed short *output, + signed short *reverb_input, + const reverb_params *rp, + const int wetvol_l, + const int wetvol_r, + const unsigned int sz); + +}; + +#endif // MAME_SOUND_SPUREVERB_H diff --git a/src/devices/sound/st0016.cpp b/src/devices/sound/st0016.cpp index 9f186fa03e0..d2f0653364a 100644 --- a/src/devices/sound/st0016.cpp +++ b/src/devices/sound/st0016.cpp @@ -8,12 +8,12 @@ #include "emu.h" #include "st0016.h" -#define VERBOSE (0) -#define LOG(x) do { if (VERBOSE) logerror x; } while (0) +//#define VERBOSE 1 +#include "logmacro.h" // device type definition -const device_type ST0016 = device_creator; +DEFINE_DEVICE_TYPE(ST0016, st0016_device, "st0016", "Seta ST0016 (Audio)") //************************************************************************** @@ -25,15 +25,15 @@ const device_type ST0016 = device_creator; //------------------------------------------------- st0016_device::st0016_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, ST0016, "ST0016 (Audio)", tag, owner, clock, "st0016_audio", __FILE__), - device_sound_interface(mconfig, *this), - m_stream(nullptr), - m_ram_read_cb(*this) + : device_t(mconfig, ST0016, tag, owner, clock) + , device_sound_interface(mconfig, *this) + , m_stream(nullptr) + , m_ram_read_cb(*this) + , m_vpos{ 0, 0, 0, 0, 0, 0, 0, 0 } + , m_frac{ 0, 0, 0, 0, 0, 0, 0, 0 } + , m_lponce{ 0, 0, 0, 0, 0, 0, 0, 0 } { - memset(m_vpos, 0, sizeof(int)*8); - memset(m_frac, 0, sizeof(int)*8); - memset(m_lponce, 0, sizeof(int)*8); - memset(m_regs, 0, sizeof(uint8_t)*0x100); + std::fill(std::begin(m_regs), std::end(m_regs), 0); } @@ -152,13 +152,13 @@ WRITE8_MEMBER( st0016_device::st0016_snd_w ) { m_vpos[voice] = m_frac[voice] = m_lponce[voice] = 0; - LOG(("Key on V%02d: st %06x-%06x lp %06x-%06x frq %x flg %x\n", voice, + LOG("Key on V%02d: st %06x-%06x lp %06x-%06x frq %x flg %x\n", voice, m_regs[vbase+2]<<16 | m_regs[vbase+1]<<8 | m_regs[vbase+2], m_regs[vbase+0xe]<<16 | m_regs[vbase+0xd]<<8 | m_regs[vbase+0xc], m_regs[vbase+6]<<16 | m_regs[vbase+5]<<8 | m_regs[vbase+4], m_regs[vbase+0xa]<<16 | m_regs[vbase+0x9]<<8 | m_regs[vbase+0x8], m_regs[vbase+0x11]<<8 | m_regs[vbase+0x10], - m_regs[vbase+0x16])); + m_regs[vbase+0x16]); } } } diff --git a/src/devices/sound/st0016.h b/src/devices/sound/st0016.h index 8a621d0114a..6138e352368 100644 --- a/src/devices/sound/st0016.h +++ b/src/devices/sound/st0016.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:R. Belmont, Tomasz Slanina, David Haywood -#pragma once +#ifndef MAME_SOUND_ST0016_H +#define MAME_SOUND_ST0016_H -#ifndef __ST0016_H__ -#define __ST0016_H__ +#pragma once //************************************************************************** @@ -19,14 +19,15 @@ // ======================> st0016_device -class st0016_device : public device_t, - public device_sound_interface +class st0016_device : public device_t, public device_sound_interface { public: st0016_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~st0016_device() { } - template static devcb_base &set_soundram_callback(device_t &device, _Object object) { return downcast(device).m_ram_read_cb.set_callback(object); } + template static devcb_base &set_soundram_callback(device_t &device, Object &&cb) { return downcast(device).m_ram_read_cb.set_callback(std::forward(cb)); } + + DECLARE_READ8_MEMBER( st0016_snd_r ); + DECLARE_WRITE8_MEMBER( st0016_snd_w ); protected: // device-level overrides @@ -35,10 +36,6 @@ protected: // sound stream update overrides virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; -public: - DECLARE_READ8_MEMBER( st0016_snd_r ); - DECLARE_WRITE8_MEMBER( st0016_snd_w ); - private: sound_stream *m_stream; devcb_read8 m_ram_read_cb; @@ -48,7 +45,6 @@ private: uint8_t m_regs[0x100]; }; -extern const device_type ST0016; - +DECLARE_DEVICE_TYPE(ST0016, st0016_device) -#endif /* __ST0016_H__ */ +#endif // MAME_SOUND_ST0016_H diff --git a/src/devices/sound/t6721a.cpp b/src/devices/sound/t6721a.cpp index 4cf3d2914c2..f4ea65a92b5 100644 --- a/src/devices/sound/t6721a.cpp +++ b/src/devices/sound/t6721a.cpp @@ -9,13 +9,8 @@ #include "emu.h" #include "t6721a.h" - - -//************************************************************************** -// MACROS / CONSTANTS -//************************************************************************** - -#define LOG 0 +//#define VERBOSE 1 +#include "logmacro.h" @@ -24,7 +19,7 @@ //************************************************************************** // device type definition -const device_type T6721A = device_creator; +DEFINE_DEVICE_TYPE(T6721A, t6721a_device, "t6721a", "Toshiba T6721A") @@ -37,7 +32,7 @@ const device_type T6721A = device_creator; //------------------------------------------------- t6721a_device::t6721a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, T6721A, "T6721A", tag, owner, clock, "t6721a", __FILE__), + : device_t(mconfig, T6721A, tag, owner, clock), device_sound_interface(mconfig, *this), m_write_eos(*this), m_write_phi2(*this), diff --git a/src/devices/sound/t6721a.h b/src/devices/sound/t6721a.h index f9d45ffb2d4..81157e4c47f 100644 --- a/src/devices/sound/t6721a.h +++ b/src/devices/sound/t6721a.h @@ -30,10 +30,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_SOUND_T6721A_H +#define MAME_SOUND_T6721A_H -#ifndef __T6721__ -#define __T6721__ +#pragma once @@ -69,10 +69,10 @@ public: t6721a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // static configuration helpers - template devcb_base &set_eos_callback(_eos eos) { return m_write_eos.set_callback(eos); } - template devcb_base &set_phi2_callback(_phi2 phi2) { return m_write_phi2.set_callback(phi2); } - template devcb_base &set_dtrd_callback(_dtrd dtrd) { return m_write_dtrd.set_callback(dtrd); } - template devcb_base &set_apd_callback(_apd apd) { return m_write_apd.set_callback(apd); } + template devcb_base &set_eos_callback(Object &&eos) { return m_write_eos.set_callback(std::forward(eos)); } + template devcb_base &set_phi2_callback(Object &&phi2) { return m_write_phi2.set_callback(std::forward(phi2)); } + template devcb_base &set_dtrd_callback(Object &&dtrd) { return m_write_dtrd.set_callback(std::forward(dtrd)); } + template devcb_base &set_apd_callback(Object &&apd) { return m_write_apd.set_callback(std::forward(apd)); } DECLARE_READ8_MEMBER( read ); DECLARE_WRITE8_MEMBER( write ); @@ -115,8 +115,6 @@ private: // device type definition -extern const device_type T6721A; - - +DECLARE_DEVICE_TYPE(T6721A, t6721a_device) -#endif +#endif // MAME_SOUND_T6721A_H diff --git a/src/devices/sound/t6w28.cpp b/src/devices/sound/t6w28.cpp index ffc966d0720..2f155644c5c 100644 --- a/src/devices/sound/t6w28.cpp +++ b/src/devices/sound/t6w28.cpp @@ -347,10 +347,11 @@ void t6w28_device::set_enable(bool enable) m_enabled = enable; } -const device_type T6W28 = device_creator; +DEFINE_DEVICE_TYPE(T6W28, t6w28_device, "t6w28", "T6W28") t6w28_device::t6w28_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, T6W28, "T6W28", tag, owner, clock, "t6w28", __FILE__), - device_sound_interface(mconfig, *this) + : device_t(mconfig, T6W28, tag, owner, clock) + , device_sound_interface(mconfig, *this) + , m_channel(nullptr) { } diff --git a/src/devices/sound/t6w28.h b/src/devices/sound/t6w28.h index e40a41e4401..e62852e77b6 100644 --- a/src/devices/sound/t6w28.h +++ b/src/devices/sound/t6w28.h @@ -1,12 +1,11 @@ // license:BSD-3-Clause // copyright-holders:Wilbert Pol -#pragma once +#ifndef MAME_SOUND_T6W28_H +#define MAME_SOUND_T6W28_H -#ifndef __T6W28_H__ -#define __T6W28_H__ +#pragma once -class t6w28_device : public device_t, - public device_sound_interface +class t6w28_device : public device_t, public device_sound_interface { public: t6w28_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); @@ -41,7 +40,6 @@ private: bool m_enabled; }; -extern const device_type T6W28; - +DECLARE_DEVICE_TYPE(T6W28, t6w28_device) -#endif /* __T6W28_H__ */ +#endif // MAME_SOUND_T6W28_H diff --git a/src/devices/sound/tc8830f.cpp b/src/devices/sound/tc8830f.cpp index 7a997d9d19f..37a6fecdbe3 100644 --- a/src/devices/sound/tc8830f.cpp +++ b/src/devices/sound/tc8830f.cpp @@ -22,10 +22,10 @@ // device type definition -const device_type TC8830F = device_creator; +DEFINE_DEVICE_TYPE(TC8830F, tc8830f_device, "tc8830f", "Toshiba TC8830F") tc8830f_device::tc8830f_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, TC8830F, "TC8830F", tag, owner, clock, "tc8830f", __FILE__), + : device_t(mconfig, TC8830F, tag, owner, clock), device_sound_interface(mconfig, *this), m_stream(nullptr), m_playing(false), m_address(0), diff --git a/src/devices/sound/tc8830f.h b/src/devices/sound/tc8830f.h index b34c9c35110..43784fd8f1f 100644 --- a/src/devices/sound/tc8830f.h +++ b/src/devices/sound/tc8830f.h @@ -6,10 +6,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_SOUND_TC8830F_H +#define MAME_SOUND_TC8830F_H -#ifndef __TC8830F_H__ -#define __TC8830F_H__ +#pragma once //************************************************************************** @@ -37,8 +37,6 @@ public: void reset(); void write_p(uint8_t data); - sound_stream *m_stream; - protected: // device-level overrides virtual void device_start() override; @@ -48,6 +46,8 @@ protected: virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; private: + sound_stream *m_stream; + bool m_playing; uint32_t m_address; uint32_t m_stop_address; @@ -65,6 +65,6 @@ private: // device type definition -extern const device_type TC8830F; +DECLARE_DEVICE_TYPE(TC8830F, tc8830f_device) -#endif /* __TC8830F_H__ */ +#endif // MAME_SOUND_TC8830F_H diff --git a/src/devices/sound/tiaintf.cpp b/src/devices/sound/tiaintf.cpp index ea473c535c0..9df0166ca86 100644 --- a/src/devices/sound/tiaintf.cpp +++ b/src/devices/sound/tiaintf.cpp @@ -5,7 +5,7 @@ #include "tiasound.h" // device type definition -const device_type TIA = device_creator; +DEFINE_DEVICE_TYPE(TIA, tia_device, "tia_sound", "Atari TIA (Sound)") //************************************************************************** @@ -17,7 +17,7 @@ const device_type TIA = device_creator; //------------------------------------------------- tia_device::tia_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, TIA, "TIA", tag, owner, clock, "tia_sound", __FILE__), + : device_t(mconfig, TIA, tag, owner, clock), device_sound_interface(mconfig, *this), m_channel(nullptr), m_chip(nullptr) diff --git a/src/devices/sound/tiaintf.h b/src/devices/sound/tiaintf.h index 1995b2f55c6..8117c6f4672 100644 --- a/src/devices/sound/tiaintf.h +++ b/src/devices/sound/tiaintf.h @@ -1,9 +1,9 @@ // license:GPL-2.0+ // copyright-holders:Ron Fries,Dan Boris -#pragma once +#ifndef MAME_SOUND_TIAINTF_H +#define MAME_SOUND_TIAINTF_H -#ifndef __TIAINTF_H__ -#define __TIAINTF_H__ +#pragma once //************************************************************************** // INTERFACE CONFIGURATION MACROS @@ -21,12 +21,12 @@ // ======================> tia_device -class tia_device : public device_t, - public device_sound_interface +class tia_device : public device_t, public device_sound_interface { public: tia_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~tia_device() { } + + DECLARE_WRITE8_MEMBER( tia_sound_w ); protected: // device-level overrides @@ -36,15 +36,11 @@ protected: // sound stream update overrides virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; -public: - DECLARE_WRITE8_MEMBER( tia_sound_w ); - private: sound_stream *m_channel; void *m_chip; }; -extern const device_type TIA; - +DECLARE_DEVICE_TYPE(TIA, tia_device) -#endif /* __TIAINTF_H__ */ +#endif // MAME_SOUND_TIAINTF_H diff --git a/src/devices/sound/tiasound.cpp b/src/devices/sound/tiasound.cpp index 944f6aa33d1..0e8275fb33f 100644 --- a/src/devices/sound/tiasound.cpp +++ b/src/devices/sound/tiasound.cpp @@ -88,6 +88,8 @@ /* LOCAL GLOBAL VARIABLE DEFINITIONS */ +namespace { + struct tia { /* structures to hold the 6 tia sound control bytes */ @@ -138,9 +140,11 @@ struct tia /* has a 13:18 ratio (of course, 13+18 = 31). This could also be */ /* implemented by using counters. */ -static const uint8_t Div31[POLY5_SIZE] = +constexpr uint8_t Div31[POLY5_SIZE] = {0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; +} // anonymous namespace + /*****************************************************************************/ /* Module: tia_sound_w() */ diff --git a/src/devices/sound/tiasound.h b/src/devices/sound/tiasound.h index 522e95b85ab..b406bf14598 100644 --- a/src/devices/sound/tiasound.h +++ b/src/devices/sound/tiasound.h @@ -34,14 +34,14 @@ /* bear this legend. */ /* */ /*****************************************************************************/ -#pragma once +#ifndef MAME_SOUND_TIASOUND_H +#define MAME_SOUND_TIASOUND_H -#ifndef __TIASOUND_H__ -#define __TIASOUND_H__ +#pragma once void *tia_sound_init(device_t *device, int clock, int sample_rate, int gain); void tia_sound_free(void *chip); -void tia_process (void *chip, stream_sample_t *buffer, int length); +void tia_process(void *chip, stream_sample_t *buffer, int length); void tia_write(void *chip, offs_t offset, uint8_t data); -#endif /* __TIASOUND_H__ */ +#endif // MAME_SOUND_TIASOUND_H diff --git a/src/devices/sound/tms3615.cpp b/src/devices/sound/tms3615.cpp index 5d9eac4e41e..85f1ec5ece0 100644 --- a/src/devices/sound/tms3615.cpp +++ b/src/devices/sound/tms3615.cpp @@ -6,11 +6,11 @@ #define VMIN 0x0000 #define VMAX 0x7fff -static const int divisor[TMS3615_TONES] = { 478, 451, 426, 402, 379, 358, 338, 319, 301, 284, 268, 253, 239 }; +const int tms3615_device::divisor[TMS3615_TONES] = { 478, 451, 426, 402, 379, 358, 338, 319, 301, 284, 268, 253, 239 }; // device type definition -const device_type TMS3615 = device_creator; +DEFINE_DEVICE_TYPE(TMS3615, tms3615_device, "tms3615", "TMS3615") //************************************************************************** @@ -22,17 +22,17 @@ const device_type TMS3615 = device_creator; //------------------------------------------------- tms3615_device::tms3615_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, TMS3615, "TMS3615", tag, owner, clock, "tms3615", __FILE__), - device_sound_interface(mconfig, *this), - m_channel(nullptr), - m_samplerate(0), - m_basefreq(0), - m_output8(0), - m_output16(0), - m_enable(0) + : device_t(mconfig, TMS3615, tag, owner, clock) + , device_sound_interface(mconfig, *this) + , m_channel(nullptr) + , m_samplerate(0) + , m_basefreq(0) + , m_output8(0) + , m_output16(0) + , m_enable(0) { - memset(m_counter8, 0, TMS3615_TONES); - memset(m_counter16, 0, TMS3615_TONES); + std::fill(std::begin(m_counter8), std::end(m_counter8), 0); + std::fill(std::begin(m_counter16), std::end(m_counter16), 0); } @@ -55,8 +55,8 @@ void tms3615_device::device_start() void tms3615_device::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) { int samplerate = m_samplerate; - stream_sample_t *buffer8 = outputs[TMS3615_FOOTAGE_8]; - stream_sample_t *buffer16 = outputs[TMS3615_FOOTAGE_16]; + stream_sample_t *buffer8 = outputs[FOOTAGE_8]; + stream_sample_t *buffer16 = outputs[FOOTAGE_16]; while( samples-- > 0 ) { diff --git a/src/devices/sound/tms3615.h b/src/devices/sound/tms3615.h index 71ca5ac080e..88060e327c8 100644 --- a/src/devices/sound/tms3615.h +++ b/src/devices/sound/tms3615.h @@ -1,13 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Juergen Buchmueller -#pragma once - -#ifndef __TMS3615_H__ -#define __TMS3615_H__ +#ifndef MAME_SOUND_TMS3615_H +#define MAME_SOUND_TMS3615_H -#define TMS3615_TONES 13 -#define TMS3615_FOOTAGE_8 0 -#define TMS3615_FOOTAGE_16 1 +#pragma once //************************************************************************** @@ -27,12 +23,15 @@ // ======================> tms3615_device -class tms3615_device : public device_t, - public device_sound_interface +class tms3615_device : public device_t, public device_sound_interface { public: + static constexpr unsigned FOOTAGE_8 = 0; + static constexpr unsigned FOOTAGE_16 = 1; + tms3615_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~tms3615_device() { } + + void enable_w(int enable); protected: // device-level overrides @@ -41,22 +40,21 @@ protected: // sound stream update overrides virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; -public: - void enable_w(int enable); - private: - sound_stream *m_channel; /* returned by stream_create() */ - int m_samplerate; /* output sample rate */ - int m_basefreq; /* chip's base frequency */ - int m_counter8[TMS3615_TONES]; /* tone frequency counter for 8' */ - int m_counter16[TMS3615_TONES]; /* tone frequency counter for 16'*/ - int m_output8; /* output signal bits for 8' */ - int m_output16; /* output signal bits for 16' */ - int m_enable; /* mask which tones to play */ + static constexpr unsigned TMS3615_TONES = 13; + static const int divisor[TMS3615_TONES]; + + sound_stream *m_channel; // returned by stream_create() + int m_samplerate; // output sample rate + int m_basefreq; // chip's base frequency + int m_counter8[TMS3615_TONES]; // tone frequency counter for 8' + int m_counter16[TMS3615_TONES]; // tone frequency counter for 16' + int m_output8; // output signal bits for 8' + int m_output16; // output signal bits for 16' + int m_enable; // mask which tones to play }; [[deprecated("Use TMS36XX instead")]] extern const device_type TMS3615; - -#endif /* __TMS3615_H__ */ +#endif // MAME_SOUND_TMS3615_H diff --git a/src/devices/sound/tms36xx.cpp b/src/devices/sound/tms36xx.cpp index 5375117b444..54ec071dfa8 100644 --- a/src/devices/sound/tms36xx.cpp +++ b/src/devices/sound/tms36xx.cpp @@ -4,8 +4,8 @@ #include "tms36xx.h" #define VERBOSE 1 +#include "logmacro.h" -#define LOG(x) do { if (VERBOSE) logerror x; } while (0) /* the frequencies are later adjusted by "* clock / FSCALE" */ #define FSCALE 1024 @@ -309,7 +309,7 @@ static const int *const tunes[] = {nullptr,tune1,tune2,tune3,tune4}; // device type definition -const device_type TMS36XX = device_creator; +DEFINE_DEVICE_TYPE(TMS36XX, tms36xx_device, "tms36xx", "TMS36XX") //************************************************************************** @@ -321,7 +321,7 @@ const device_type TMS36XX = device_creator; //------------------------------------------------- tms36xx_device::tms36xx_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, TMS36XX, "TMS36XX", tag, owner, clock, "tms36xx", __FILE__), + : device_t(mconfig, TMS36XX, tag, owner, clock), device_sound_interface(mconfig, *this), m_subtype(nullptr), m_channel(nullptr), @@ -369,12 +369,12 @@ void tms36xx_device::device_start() } tms3617_enable(enable); - LOG(("TMS36xx samplerate %d\n", m_samplerate)); - LOG(("TMS36xx basefreq %d\n", m_basefreq)); - LOG(("TMS36xx decay %d,%d,%d,%d,%d,%d\n", + LOG("TMS36xx samplerate %d\n", m_samplerate); + LOG("TMS36xx basefreq %d\n", m_basefreq); + LOG("TMS36xx decay %d,%d,%d,%d,%d,%d\n", m_decay[0], m_decay[1], m_decay[2], - m_decay[3], m_decay[4], m_decay[5])); - LOG(("TMS36xx speed %d\n", m_speed)); + m_decay[3], m_decay[4], m_decay[5]); + LOG("TMS36xx speed %d\n", m_speed); save_item(NAME(m_octave)); save_item(NAME(m_tune_counter)); @@ -460,7 +460,7 @@ void tms36xx_device::mm6221aa_tune_w(int tune) if( tune == m_tune_num ) return; - LOG(("%s tune:%X\n", m_subtype, tune)); + LOG("%s tune:%X\n", m_subtype, tune); /* update the stream before changing the tune */ m_channel->update(); @@ -483,7 +483,7 @@ void tms36xx_device::tms36xx_note_w(int octave, int note) if (note > 12) return; - LOG(("%s octave:%X note:%X\n", m_subtype, octave, note)); + LOG("%s octave:%X note:%X\n", m_subtype, octave, note); /* update the stream before changing the tune */ m_channel->update(); @@ -532,7 +532,7 @@ void tms36xx_device::tms3617_enable(int enable) /* update the stream before changing the tune */ m_channel->update(); - LOG(("%s enable voices", m_subtype)); + LOG("%s enable voices", m_subtype); for (i = 0; i < 6; i++) { if (enable & (1 << i)) @@ -541,17 +541,17 @@ void tms36xx_device::tms3617_enable(int enable) switch (i) { - case 0: LOG((" 16'")); break; - case 1: LOG((" 8'")); break; - case 2: LOG((" 5 1/3'")); break; - case 3: LOG((" 4'")); break; - case 4: LOG((" 2 2/3'")); break; - case 5: LOG((" 2'")); break; + case 0: LOG(" 16'"); break; + case 1: LOG(" 8'"); break; + case 2: LOG(" 5 1/3'"); break; + case 3: LOG(" 4'"); break; + case 4: LOG(" 2 2/3'"); break; + case 5: LOG(" 2'"); break; } } } /* set the enable mask and number of active voices */ m_enable = enable; m_voices = bits; - LOG(("%s\n", bits ? "" : " none")); + LOG("%s\n", bits ? "" : " none"); } diff --git a/src/devices/sound/tms36xx.h b/src/devices/sound/tms36xx.h index 07b15cb45a4..5eb471980d7 100644 --- a/src/devices/sound/tms36xx.h +++ b/src/devices/sound/tms36xx.h @@ -1,21 +1,22 @@ // license:BSD-3-Clause // copyright-holders:Juergen Buchmueller -#pragma once +#ifndef MAME_SOUND_TMS36XX_H +#define MAME_SOUND_TMS36XX_H -#ifndef __TMS36XX_H__ -#define __TMS36XX_H__ +#pragma once //************************************************************************** // INTERFACE CONFIGURATION MACROS //************************************************************************** -#define MCFG_TMS36XX_ADD(_tag, _clock) \ - MCFG_DEVICE_ADD(_tag, TMS36XX, _clock) -#define MCFG_TMS36XX_REPLACE(_tag, _clock) \ - MCFG_DEVICE_REPLACE(_tag, TMS36XX, _clock) +#define MCFG_TMS36XX_ADD(tag, clock) \ + MCFG_DEVICE_ADD((tag), TMS36XX, (clock)) -#define MCFG_TMS36XX_TYPE(_type) \ - tms36xx_device::set_subtype(*device, _type); +#define MCFG_TMS36XX_REPLACE(tag, clock) \ + MCFG_DEVICE_REPLACE((tag), TMS36XX, (clock)) + +#define MCFG_TMS36XX_TYPE(type) \ + tms36xx_device::set_subtype(*device, (tms36xx_device::subtype::type)); #define MCFG_TMS36XX_DECAY_TIMES(_dec0, _dec1, _dec2, _dec3, _dec4, _dec5) \ tms36xx_device::set_decays(*device, _dec0, _dec1, _dec2, _dec3, _dec4, _dec5); @@ -28,13 +29,6 @@ // TYPE DEFINITIONS //************************************************************************** -// subtypes -#define MM6221AA 21 // Phoenix (fixed melodies) -#define TMS3615 15 // Naughty Boy, Pleiads (13 notes, one output) -#define TMS3617 17 // Monster Bash (13 notes, six outputs) - -#define TMS36XX_VMIN 0x0000 -#define TMS36XX_VMAX 0x7fff // ======================> tms36xx_device @@ -43,25 +37,31 @@ class tms36xx_device : public device_t, public device_sound_interface { public: + enum class subtype + { + MM6221AA = 21, // Phoenix (fixed melodies) + TMS3615 = 15, // Naughty Boy, Pleiads (13 notes, one output) + TMS3617 = 17 // Monster Bash (13 notes, six outputs) + }; + tms36xx_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~tms36xx_device() { } - static void set_subtype(device_t &device, int type) + static void set_subtype(device_t &device, subtype type) { tms36xx_device &dev = downcast(device); switch (type) { - case MM6221AA: + case subtype::MM6221AA: dev.m_subtype = "MM6221AA"; break; - case TMS3615: + case subtype::TMS3615: dev.m_subtype = "TMS3615"; break; - case TMS3617: + case subtype::TMS3617: dev.m_subtype = "TMS3617"; break; default: - fatalerror("Invalid TMS36XX type: %d\n", type); + fatalerror("Invalid TMS36XX type: %d\n", int(type)); break; } } @@ -81,6 +81,9 @@ public: } protected: + static constexpr unsigned TMS36XX_VMIN = 0x0000; + static constexpr unsigned TMS36XX_VMAX = 0x7fff; + // device-level overrides virtual void device_start() override; @@ -132,6 +135,7 @@ private: }; extern const device_type TMS36XX; +DECLARE_DEVICE_TYPE(TMS36XX, tms36xx_device) -#endif /* __TMS36XX_H__ */ +#endif // MAME_SOUND_TMS36XX_H diff --git a/src/devices/sound/tms5110.cpp b/src/devices/sound/tms5110.cpp index 74ba519d649..1c69dc8d2d8 100644 --- a/src/devices/sound/tms5110.cpp +++ b/src/devices/sound/tms5110.cpp @@ -14,7 +14,7 @@ Todo: - implement CS - - TMS5110_CMD_TEST_TALK is only partially implemented + - CMD_TEST_TALK is only partially implemented TMS5100: @@ -147,35 +147,6 @@ static int16_t clip_analog(int16_t cliptemp); #define DEBUG_5110 0 -void tms5110_device::set_variant(int variant) -{ - switch (variant) - { - case TMS5110_IS_TMC0281: - m_coeff = &T0280B_0281A_coeff; - break; - case TMS5110_IS_TMC0281D: - m_coeff = &T0280D_0281D_coeff; - break; - case TMS5110_IS_CD2801: - m_coeff = &T0280F_2801A_coeff; - break; - case TMS5110_IS_M58817: - m_coeff = &M58817_coeff; - break; - case TMS5110_IS_CD2802: - m_coeff = &T0280F_2802_coeff; - break; - case TMS5110_IS_TMS5110A: - m_coeff = &tms5110a_coeff; - break; - default: - fatalerror("Unknown variant in tms5110_create\n"); - } - - m_variant = variant; -} - void tms5110_device::new_int_write(uint8_t rc, uint8_t m0, uint8_t m1, uint8_t addr) { if (!m_m0_cb.isnull()) @@ -213,8 +184,6 @@ uint8_t tms5110_device::new_int_read() void tms5110_device::register_for_save_states() { - save_item(NAME(m_variant)); - save_item(NAME(m_PDC)); save_item(NAME(m_CTL_pins)); save_item(NAME(m_SPEN)); @@ -234,7 +203,7 @@ void tms5110_device::register_for_save_states() save_item(NAME(m_new_frame_energy_idx)); save_item(NAME(m_new_frame_pitch_idx)); save_item(NAME(m_new_frame_k_idx)); -#ifdef PERFECT_INTERPOLATION_HACK +#ifdef TMS5110_PERFECT_INTERPOLATION_HACK save_item(NAME(m_old_frame_energy_idx)); save_item(NAME(m_old_frame_pitch_idx)); save_item(NAME(m_old_frame_k_idx)); @@ -369,7 +338,7 @@ void tms5110_device::process(int16_t *buffer, unsigned int size) //m_RNG = 0x1234; // end HACK -#ifdef PERFECT_INTERPOLATION_HACK +#ifdef TMS5110_PERFECT_INTERPOLATION_HACK /* remember previous frame energy, pitch, and coefficients */ m_old_frame_energy_idx = m_new_frame_energy_idx; m_old_frame_pitch_idx = m_new_frame_pitch_idx; @@ -381,10 +350,8 @@ void tms5110_device::process(int16_t *buffer, unsigned int size) parse_frame(); /* if the new frame is a stop frame, unset both TALK and SPEN (via TCON). TALKD remains active while the energy is ramping to 0. */ - if (NEW_FRAME_STOP_FLAG == 1) - { + if (NEW_FRAME_STOP_FLAG()) m_TALK = m_SPEN = 0; - } /* in all cases where interpolation would be inhibited, set the inhibit flag; otherwise clear it. * Interpolation inhibit cases: @@ -393,18 +360,18 @@ void tms5110_device::process(int16_t *buffer, unsigned int size) * Old frame was unvoiced, new is voiced * Old frame was unvoiced, new frame is silence/zero energy (non-existent on tms51xx rev D and F (present and working on tms52xx, present but buggy on tms51xx rev A and B)) */ - if ( ((OLD_FRAME_UNVOICED_FLAG == 0) && NEW_FRAME_UNVOICED_FLAG) - || ((OLD_FRAME_UNVOICED_FLAG == 1) && !NEW_FRAME_UNVOICED_FLAG) - || ((OLD_FRAME_SILENCE_FLAG == 1) && !NEW_FRAME_SILENCE_FLAG) ) - //|| ((m_inhibit == 1) && (OLD_FRAME_UNVOICED_FLAG == 1) && (NEW_FRAME_SILENCE_FLAG == 1)) ) //TMS51xx INTERP BUG1 - //|| ((OLD_FRAME_UNVOICED_FLAG == 1) && (NEW_FRAME_SILENCE_FLAG == 1)) ) + if ( ((OLD_FRAME_UNVOICED_FLAG() == 0) && NEW_FRAME_UNVOICED_FLAG()) + || ((OLD_FRAME_UNVOICED_FLAG() == 1) && !NEW_FRAME_UNVOICED_FLAG()) + || ((OLD_FRAME_SILENCE_FLAG() == 1) && !NEW_FRAME_SILENCE_FLAG()) ) + //|| ((m_inhibit == 1) && (OLD_FRAME_UNVOICED_FLAG() == 1) && NEW_FRAME_SILENCE_FLAG()) ) //TMS51xx INTERP BUG1 + //|| ((OLD_FRAME_UNVOICED_FLAG() == 1) && NEW_FRAME_SILENCE_FLAG()) ) m_inhibit = 1; else // normal frame, normal interpolation m_inhibit = 0; #ifdef DEBUG_GENERATION /* Debug info for current parsed frame */ - fprintf(stderr, "OLDE: %d; NEWE: %d; OLDP: %d; NEWP: %d ", OLD_FRAME_SILENCE_FLAG, NEW_FRAME_SILENCE_FLAG, OLD_FRAME_UNVOICED_FLAG, NEW_FRAME_UNVOICED_FLAG); + fprintf(stderr, "OLDE: %d; NEWE: %d; OLDP: %d; NEWP: %d ", OLD_FRAME_SILENCE_FLAG(), NEW_FRAME_SILENCE_FLAG(), OLD_FRAME_UNVOICED_FLAG(), NEW_FRAME_UNVOICED_FLAG()); fprintf(stderr,"Processing new frame: "); if (m_inhibit == 0) fprintf(stderr, "Normal Frame\n"); @@ -431,7 +398,7 @@ void tms5110_device::process(int16_t *buffer, unsigned int size) else // Not a new frame, just interpolate the existing frame. { int inhibit_state = ((m_inhibit==1)&&(m_IP != 0)); // disable inhibit when reaching the last interp period, but don't overwrite the m_inhibit value -#ifdef PERFECT_INTERPOLATION_HACK +#ifdef TMS5110_PERFECT_INTERPOLATION_HACK int samples_per_frame = m_subc_reload?175:266; // either (13 A cycles + 12 B cycles) * 7 interps for normal SPEAK/SPKEXT, or (13*2 A cycles + 12 B cycles) * 7 interps for SPKSLOW //int samples_per_frame = m_subc_reload?200:304; // either (13 A cycles + 12 B cycles) * 8 interps for normal SPEAK/SPKEXT, or (13*2 A cycles + 12 B cycles) * 8 interps for SPKSLOW int current_sample = (m_subcycle - m_subc_reload)+(m_PC*(3-m_subc_reload))+((m_subc_reload?25:38)*((m_IP-1)&7)); @@ -483,7 +450,7 @@ void tms5110_device::process(int16_t *buffer, unsigned int size) } // calculate the output - if (OLD_FRAME_UNVOICED_FLAG == 1) + if (OLD_FRAME_UNVOICED_FLAG() == 1) { // generate unvoiced samples here if (m_RNG & 1) @@ -491,7 +458,7 @@ void tms5110_device::process(int16_t *buffer, unsigned int size) else m_excitation_data = 0x40; } - else /* (OLD_FRAME_UNVOICED_FLAG == 0) */ + else /* (OLD_FRAME_UNVOICED_FLAG() == 0) */ { // generate voiced samples here /* US patent 4331836 Figure 14B shows, and logic would hold, that a pitch based chirp @@ -524,7 +491,7 @@ void tms5110_device::process(int16_t *buffer, unsigned int size) for (i=0; i<10; i++) fprintf(stderr,"K%d:%04d ", i+1, m_current_k[i]); fprintf(stderr,"Out:%06d ", this_sample); -//#ifdef PERFECT_INTERPOLATION_HACK +//#ifdef TMS5110_PERFECT_INTERPOLATION_HACK // fprintf(stderr,"%d%d%d%d",m_old_zpar,m_zpar,m_old_uv_zpar,m_uv_zpar); //#else // fprintf(stderr,"x%dx%d",m_zpar,m_uv_zpar); @@ -569,9 +536,9 @@ void tms5110_device::process(int16_t *buffer, unsigned int size) if (m_IP == 7) // RESETL4 { // Latch OLDE and OLDP - //if (OLD_FRAME_SILENCE_FLAG) m_uv_zpar = 0; // TMS51xx INTERP BUG2 - OLD_FRAME_SILENCE_FLAG = NEW_FRAME_SILENCE_FLAG; // m_OLDE - OLD_FRAME_UNVOICED_FLAG = NEW_FRAME_UNVOICED_FLAG; // m_OLDP + //if (OLD_FRAME_SILENCE_FLAG()) m_uv_zpar = 0; // TMS51xx INTERP BUG2 + OLD_FRAME_SILENCE_FLAG() = NEW_FRAME_SILENCE_FLAG() ? 1 : 0; // m_OLDE + OLD_FRAME_UNVOICED_FLAG() = NEW_FRAME_UNVOICED_FLAG() ? 1 : 0; // m_OLDP /* if TALK was clear last frame, halt speech now, since TALKD (latched from TALK on new frame) just went inactive. */ #ifdef DEBUG_GENERATION if ((!m_TALK) && (!m_SPEN)) @@ -827,7 +794,7 @@ void tms5110_device::PDC_set(int data) #endif switch (m_CTL_pins & 0xe) /*CTL1 - don't care*/ { - case TMS5110_CMD_RESET: + case CMD_RESET: #ifdef DEBUG_COMMAND_DUMP fprintf(stderr,"RESET\n"); #endif @@ -835,21 +802,21 @@ void tms5110_device::PDC_set(int data) reset(); break; - case TMS5110_CMD_LOAD_ADDRESS: + case CMD_LOAD_ADDRESS: #ifdef DEBUG_COMMAND_DUMP fprintf(stderr,"LOAD ADDRESS\n"); #endif m_next_is_address = true; break; - case TMS5110_CMD_OUTPUT: + case CMD_OUTPUT: #ifdef DEBUG_COMMAND_DUMP fprintf(stderr,"OUTPUT (from read-bit buffer)\n"); #endif m_state = CTL_STATE_NEXT_OUTPUT; break; - case TMS5110_CMD_SPKSLOW: + case CMD_SPKSLOW: #ifdef DEBUG_COMMAND_DUMP fprintf(stderr,"SPKSLOW\n"); #endif @@ -863,14 +830,14 @@ void tms5110_device::PDC_set(int data) m_uv_zpar = 1; // zero k4-k10 as well m_OLDE = 1; // 'silence/zpar' frames are zero energy m_OLDP = 1; // 'silence/zpar' frames are zero pitch -#ifdef PERFECT_INTERPOLATION_HACK +#ifdef TMS5110_PERFECT_INTERPOLATION_HACK m_old_zpar = 1; // zero all the old parameters m_old_uv_zpar = 1; // zero old k4-k10 as well #endif m_subc_reload = 0; // SPKSLOW means this is 0 break; - case TMS5110_CMD_READ_BIT: + case CMD_READ_BIT: #ifdef DEBUG_COMMAND_DUMP fprintf(stderr,"READ BIT\n"); #endif @@ -887,7 +854,7 @@ void tms5110_device::PDC_set(int data) } break; - case TMS5110_CMD_SPEAK: + case CMD_SPEAK: #ifdef DEBUG_COMMAND_DUMP fprintf(stderr,"SPEAK\n"); #endif @@ -901,14 +868,14 @@ void tms5110_device::PDC_set(int data) m_uv_zpar = 1; // zero k4-k10 as well m_OLDE = 1; // 'silence/zpar' frames are zero energy m_OLDP = 1; // 'silence/zpar' frames are zero pitch -#ifdef PERFECT_INTERPOLATION_HACK +#ifdef TMS5110_PERFECT_INTERPOLATION_HACK m_old_zpar = 1; // zero all the old parameters m_old_uv_zpar = 1; // zero old k4-k10 as well #endif m_subc_reload = 1; // SPEAK means this is 1 break; - case TMS5110_CMD_READ_BRANCH: + case CMD_READ_BRANCH: #ifdef DEBUG_COMMAND_DUMP fprintf(stderr,"READ AND BRANCH\n"); #endif @@ -921,7 +888,7 @@ void tms5110_device::PDC_set(int data) m_schedule_dummy_read = false; break; - case TMS5110_CMD_TEST_TALK: + case CMD_TEST_TALK: #ifdef DEBUG_COMMAND_DUMP fprintf(stderr,"TEST TALK\n"); #endif @@ -951,7 +918,7 @@ void tms5110_device::PDC_set(int data) void tms5110_device::parse_frame() { int i, rep_flag; -#ifdef PERFECT_INTERPOLATION_HACK +#ifdef TMS5110_PERFECT_INTERPOLATION_HACK m_old_uv_zpar = m_uv_zpar; m_old_zpar = m_zpar; #endif @@ -982,7 +949,7 @@ void tms5110_device::parse_frame() fprintf(stderr," "); #endif // if the new frame is unvoiced, be sure to zero out the k5-k10 parameters - m_uv_zpar = NEW_FRAME_UNVOICED_FLAG; + m_uv_zpar = NEW_FRAME_UNVOICED_FLAG() ? 1 : 0; // if this is a repeat frame, just do nothing, it will reuse the old coefficients if (rep_flag) return; @@ -1049,7 +1016,29 @@ static const unsigned int example_word_TEN[619]={ void tms5110_device::device_start() { - set_variant(TMS5110_IS_TMS5110A); + switch (m_variant) + { + case TMS5110_IS_TMC0281: + m_coeff = &T0280B_0281A_coeff; + break; + case TMS5110_IS_TMC0281D: + m_coeff = &T0280D_0281D_coeff; + break; + case TMS5110_IS_CD2801: + m_coeff = &T0280F_2801A_coeff; + break; + case TMS5110_IS_M58817: + m_coeff = &M58817_coeff; + break; + case TMS5110_IS_CD2802: + m_coeff = &T0280F_2802_coeff; + break; + case TMS5110_IS_TMS5110A: + m_coeff = &tms5110a_coeff; + break; + default: + fatalerror("Unknown variant in tms5110_create\n"); + } /* resolve lines */ m_m0_cb.resolve(); @@ -1067,86 +1056,6 @@ void tms5110_device::device_start() register_for_save_states(); } -//------------------------------------------------- -// device_start - device-specific startup -//------------------------------------------------- - -void tms5100_device::device_start() -{ - tms5110_device::device_start(); - set_variant(TMS5110_IS_TMC0281); -} - -//------------------------------------------------- -// device_start - device-specific startup -//------------------------------------------------- - -void tmc0281_device::device_start() -{ - tms5110_device::device_start(); - set_variant(TMS5110_IS_TMC0281); -} - -//------------------------------------------------- -// device_start - device-specific startup -//------------------------------------------------- - -void tms5100a_device::device_start() -{ - tms5110_device::device_start(); - set_variant(TMS5110_IS_TMC0281D); -} - -//------------------------------------------------- -// device_start - device-specific startup -//------------------------------------------------- - -void tmc0281d_device::device_start() -{ - tms5110_device::device_start(); - set_variant(TMS5110_IS_TMC0281D); -} - -//------------------------------------------------- -// device_start - device-specific startup -//------------------------------------------------- - -void cd2801_device::device_start() -{ - tms5110_device::device_start(); - set_variant(TMS5110_IS_CD2801); -} - -//------------------------------------------------- -// device_start - device-specific startup -//------------------------------------------------- - -void cd2802_device::device_start() -{ - tms5110_device::device_start(); - set_variant(TMS5110_IS_CD2802); -} - -//------------------------------------------------- -// device_start - device-specific startup -//------------------------------------------------- - -void tms5110a_device::device_start() -{ - tms5110_device::device_start(); - set_variant(TMS5110_IS_TMS5110A); -} - -//------------------------------------------------- -// device_start - device-specific startup -//------------------------------------------------- - -void m58817_device::device_start() -{ - tms5110_device::device_start(); - set_variant(TMS5110_IS_M58817); -} - //------------------------------------------------- // device_reset - device-specific reset @@ -1164,7 +1073,7 @@ void tms5110_device::device_reset() m_PDC = 0; /* initialize the energy/pitch/k states */ -#ifdef PERFECT_INTERPOLATION_HACK +#ifdef TMS5110_PERFECT_INTERPOLATION_HACK m_old_frame_energy_idx = m_old_frame_pitch_idx = 0; memset(m_old_frame_k_idx, 0, sizeof(m_old_frame_k_idx)); m_old_zpar = m_old_uv_zpar = 0; @@ -1256,8 +1165,8 @@ READ8_MEMBER( tms5110_device::ctl_r ) m_stream->update(); if (m_state == CTL_STATE_TTALK_OUTPUT) { - if (DEBUG_5110) logerror("Status read while outputting Test Talk (status=%2d)\n", TALK_STATUS); - return (TALK_STATUS << 0); /*CTL1 = still talking ? */ + if (DEBUG_5110) logerror("Status read while outputting Test Talk (status=%2d)\n", TALK_STATUS()); + return (TALK_STATUS() << 0); /*CTL1 = still talking ? */ } else if (m_state == CTL_STATE_OUTPUT) { @@ -1275,7 +1184,7 @@ READ8_MEMBER( m58817_device::status_r ) { /* bring up to date first */ m_stream->update(); - return (TALK_STATUS << 0); /*CTL1 = still talking ? */ + return (TALK_STATUS() << 0); /*CTL1 = still talking ? */ } /****************************************************************************** @@ -1521,17 +1430,27 @@ WRITE_LINE_MEMBER( tmsprom_device::enable_w ) TMS 5110 device definition -------------------------------------------------*/ -const device_type TMS5110 = device_creator; +DEFINE_DEVICE_TYPE(TMS5110, tms5110_device, "tms5110", "TMS5110") +DEFINE_DEVICE_TYPE(TMS5100, tms5100_device, "tms5100", "TMS5100") +DEFINE_DEVICE_TYPE(TMC0281, tmc0281_device, "tmc0281", "TMC0281") +DEFINE_DEVICE_TYPE(TMS5100A, tms5100a_device, "tms5100a", "TMS5100A") +DEFINE_DEVICE_TYPE(TMC0281D, tmc0281d_device, "tmc0281d", "TMC0281D") +DEFINE_DEVICE_TYPE(CD2801, cd2801_device, "cd2801", "CD2801") +DEFINE_DEVICE_TYPE(CD2802, cd2802_device, "cd2802", "CD2802") +DEFINE_DEVICE_TYPE(TMS5110A, tms5110a_device, "tms5110a", "TMS5110A") +DEFINE_DEVICE_TYPE(M58817, m58817_device, "m58817", "M58817") + tms5110_device::tms5110_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : tms5110_device(mconfig, TMS5110, "TMS5110", tag, owner, clock, "tms5110", __FILE__) + : tms5110_device(mconfig, TMS5110, tag, owner, clock, TMS5110_IS_TMS5110A) { } -tms5110_device::tms5110_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source) +tms5110_device::tms5110_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int variant) + : device_t(mconfig, type, tag, owner, clock) , device_sound_interface(mconfig, *this) , m_table(*this, DEVICE_SELF) + , m_variant(variant) , m_m0_cb(*this) , m_m1_cb(*this) , m_addr_cb(*this) @@ -1541,67 +1460,58 @@ tms5110_device::tms5110_device(const machine_config &mconfig, device_type type, } -const device_type TMS5100 = device_creator; - tms5100_device::tms5100_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : tms5110_device(mconfig, TMS5100, "TMS5100", tag, owner, clock, "tms5100", __FILE__) + : tms5110_device(mconfig, TMS5100, tag, owner, clock, TMS5110_IS_TMC0281) { } -const device_type TMC0281 = device_creator; tmc0281_device::tmc0281_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : tms5110_device(mconfig, TMC0281, "TMC0281", tag, owner, clock, "tmc0281", __FILE__) + : tms5110_device(mconfig, TMC0281, tag, owner, clock, TMS5110_IS_TMC0281) { } -const device_type TMS5100A = device_creator; tms5100a_device::tms5100a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : tms5110_device(mconfig, TMS5100A, "TMS5100A", tag, owner, clock, "tms5100a", __FILE__) + : tms5110_device(mconfig, TMS5100A, tag, owner, clock, TMS5110_IS_TMC0281D) { } -const device_type TMC0281D = device_creator; tmc0281d_device::tmc0281d_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : tms5110_device(mconfig, TMC0281D, "TMC0281D", tag, owner, clock, "tmc0281d", __FILE__) + : tms5110_device(mconfig, TMC0281D, tag, owner, clock, TMS5110_IS_TMC0281D) { } -const device_type CD2801 = device_creator; cd2801_device::cd2801_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : tms5110_device(mconfig, CD2801, "CD2801", tag, owner, clock, "cd2801", __FILE__) + : tms5110_device(mconfig, CD2801, tag, owner, clock, TMS5110_IS_CD2801) { } -const device_type CD2802 = device_creator; cd2802_device::cd2802_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : tms5110_device(mconfig, CD2802, "CD2802", tag, owner, clock, "cd2802", __FILE__) + : tms5110_device(mconfig, CD2802, tag, owner, clock, TMS5110_IS_CD2802) { } -const device_type TMS5110A = device_creator; tms5110a_device::tms5110a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : tms5110_device(mconfig, TMS5110A, "TMS5110A", tag, owner, clock, "tms5110a", __FILE__) + : tms5110_device(mconfig, TMS5110A, tag, owner, clock, TMS5110_IS_TMS5110A) { } -const device_type M58817 = device_creator; m58817_device::m58817_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : tms5110_device(mconfig, M58817, "M58817", tag, owner, clock, "m58817", __FILE__) + : tms5110_device(mconfig, M58817, tag, owner, clock, TMS5110_IS_M58817) { } -const device_type TMSPROM = device_creator; +DEFINE_DEVICE_TYPE(TMSPROM, tmsprom_device, "tmsprom", "TMSPROM") tmsprom_device::tmsprom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, TMSPROM, "TMSPROM", tag, owner, clock, "tmsprom", __FILE__), + : device_t(mconfig, TMSPROM, tag, owner, clock), m_rom(*this, DEVICE_SELF), m_prom(*this, finder_base::DUMMY_TAG, 0x20), m_rom_size(0), diff --git a/src/devices/sound/tms5110.h b/src/devices/sound/tms5110.h index 02c010bc66d..5fe20f8fcc2 100644 --- a/src/devices/sound/tms5110.h +++ b/src/devices/sound/tms5110.h @@ -1,30 +1,13 @@ // license:BSD-3-Clause // copyright-holders:Frank Palazzolo, Jarek Burczynski, Aaron Giles, Jonathan Gevaryahu, Couriersud -#pragma once +#ifndef MAME_SOUND_TMS5110_H +#define MAME_SOUND_TMS5110_H -#ifndef __TMS5110_H__ -#define __TMS5110_H__ +#pragma once /* HACK: if defined, uses impossibly perfect 'straight line' interpolation */ -#undef PERFECT_INTERPOLATION_HACK - -/* TMS5110 commands */ - /* CTL8 CTL4 CTL2 CTL1 | PDC's */ - /* (MSB) (LSB) | required */ -#define TMS5110_CMD_RESET (0) /* 0 0 0 x | 1 */ -#define TMS5110_CMD_LOAD_ADDRESS (2) /* 0 0 1 x | 2 */ -#define TMS5110_CMD_OUTPUT (4) /* 0 1 0 x | 3 */ -#define TMS5110_CMD_SPKSLOW (6) /* 0 1 1 x | 1 */ -/* Note: TMS5110_CMD_SPKSLOW is undocumented on the datasheets, it only appears - on the patents. It might not actually work properly on some of the real - chips as manufactured. Acts the same as CMD_SPEAK, but makes the - interpolator take two A cycles wherever it would normally only take one, - effectively making speech of any given word take 1.5x as long as normal. */ -#define TMS5110_CMD_READ_BIT (8) /* 1 0 0 x | 1 */ -#define TMS5110_CMD_SPEAK (10) /* 1 0 1 x | 1 */ -#define TMS5110_CMD_READ_BRANCH (12) /* 1 1 0 x | 1 */ -#define TMS5110_CMD_TEST_TALK (14) /* 1 1 1 x | 3 */ +#undef TMS5110_PERFECT_INTERPOLATION_HACK /* clock rate = 80 * output sample rate, */ /* usually 640000 for 8000 Hz sample rate or */ @@ -46,31 +29,47 @@ devcb = &tms5110_device::set_romclk_callback(*device, DEVCB_##_devcb); -class tms5110_device : public device_t, - public device_sound_interface +class tms5110_device : public device_t, public device_sound_interface { public: + /* TMS5110 commands */ + /* CTL8 CTL4 CTL2 CTL1 | PDC's */ + /* (MSB) (LSB) | required */ + static constexpr uint8_t CMD_RESET = 0; /* 0 0 0 x | 1 */ + static constexpr uint8_t CMD_LOAD_ADDRESS = 2; /* 0 0 1 x | 2 */ + static constexpr uint8_t CMD_OUTPUT = 4; /* 0 1 0 x | 3 */ + static constexpr uint8_t CMD_SPKSLOW = 6; /* 0 1 1 x | 1 */ + /* Note: TMS5110_CMD_SPKSLOW is undocumented on the datasheets, it only appears + on the patents. It might not actually work properly on some of the real + chips as manufactured. Acts the same as CMD_SPEAK, but makes the + interpolator take two A cycles wherever it would normally only take one, + effectively making speech of any given word take 1.5x as long as normal. */ + static constexpr uint8_t CMD_READ_BIT = 8; /* 1 0 0 x | 1 */ + static constexpr uint8_t CMD_SPEAK = 10; /* 1 0 1 x | 1 */ + static constexpr uint8_t CMD_READ_BRANCH = 12; /* 1 1 0 x | 1 */ + static constexpr uint8_t CMD_TEST_TALK = 14; /* 1 1 1 x | 3 */ + tms5110_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - tms5110_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - template static devcb_base &set_m0_callback(device_t &device, _Object object) { return downcast(device).m_m0_cb.set_callback(object); } - template static devcb_base &set_m1_callback(device_t &device, _Object object) { return downcast(device).m_m1_cb.set_callback(object); } - template static devcb_base &set_addr_callback(device_t &device, _Object object) { return downcast(device).m_addr_cb.set_callback(object); } - template static devcb_base &set_data_callback(device_t &device, _Object object) { return downcast(device).m_data_cb.set_callback(object); } - template static devcb_base &set_romclk_callback(device_t &device, _Object object) { return downcast(device).m_romclk_cb.set_callback(object); } + template static devcb_base &set_m0_callback(device_t &device, Object &&cb) { return downcast(device).m_m0_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_m1_callback(device_t &device, Object &&cb) { return downcast(device).m_m1_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_addr_callback(device_t &device, Object &&cb) { return downcast(device).m_addr_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_data_callback(device_t &device, Object &&cb) { return downcast(device).m_data_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_romclk_callback(device_t &device, Object &&cb) { return downcast(device).m_romclk_cb.set_callback(std::forward(cb)); } DECLARE_WRITE8_MEMBER( ctl_w ); DECLARE_READ8_MEMBER( ctl_r ); DECLARE_WRITE_LINE_MEMBER( pdc_w ); - /* this is only used by cvs.c - * it is not related at all to the speech generation - * and conflicts with the new rom controller interface. - */ + // this is only used by cvs.c + // it is not related at all to the speech generation and conflicts with the new ROM controller interface. DECLARE_READ8_MEMBER( romclk_hack_r ); void set_frequency(int frequency); + protected: + tms5110_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int variant); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -80,11 +79,10 @@ protected: // sound stream update overrides virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; - void set_variant(int variant); + uint8_t TALK_STATUS() const { return m_SPEN | m_TALKD; } uint8_t m_SPEN; /* set on speak command, cleared on stop command or reset command */ uint8_t m_TALK; /* set on SPEN & RESETL4(pc12->pc0 transition), cleared on stop command or reset command */ -#define TALK_STATUS (m_SPEN|m_TALKD) uint8_t m_TALKD; /* TALK(TCON) value, latched every RESETL4 */ sound_stream *m_stream; @@ -100,12 +98,19 @@ private: void PDC_set(int data); void parse_frame(); + uint8_t &OLD_FRAME_SILENCE_FLAG() { return m_OLDE; } // 1 if E=0, 0 otherwise. + uint8_t &OLD_FRAME_UNVOICED_FLAG() { return m_OLDP; } // 1 if P=0 (unvoiced), 0 if voiced + + bool NEW_FRAME_STOP_FLAG() const { return m_new_frame_energy_idx == 0x0F; } // 1 if this is a stop (Energy = 0x0F) frame + bool NEW_FRAME_SILENCE_FLAG() const { return m_new_frame_energy_idx == 0; } // ditto as above + bool NEW_FRAME_UNVOICED_FLAG() const { return m_new_frame_pitch_idx == 0; } // ditto as above + // internal state /* table */ optional_region_ptr m_table; /* coefficient tables */ - int m_variant; /* Variant of the 5110 - see tms5110.h */ + const int m_variant; /* Variant of the 5110 - see tms5110.h */ /* coefficient tables */ const struct tms5100_coeffs *m_coeff; @@ -134,21 +139,16 @@ private: devcb_write_line m_romclk_cb; // rom clock - Only used to drive the data lines /* these contain data describing the current and previous voice frames */ -#define OLD_FRAME_SILENCE_FLAG m_OLDE // 1 if E=0, 0 otherwise. -#define OLD_FRAME_UNVOICED_FLAG m_OLDP // 1 if P=0 (unvoiced), 0 if voiced uint8_t m_OLDE; uint8_t m_OLDP; -#define NEW_FRAME_STOP_FLAG (m_new_frame_energy_idx == 0xF) // 1 if this is a stop (Energy = 0xF) frame -#define NEW_FRAME_SILENCE_FLAG (m_new_frame_energy_idx == 0) // ditto as above -#define NEW_FRAME_UNVOICED_FLAG (m_new_frame_pitch_idx == 0) // ditto as above uint8_t m_new_frame_energy_idx; uint8_t m_new_frame_pitch_idx; uint8_t m_new_frame_k_idx[10]; /* these are all used to contain the current state of the sound generation */ -#ifndef PERFECT_INTERPOLATION_HACK +#ifndef TMS5110_PERFECT_INTERPOLATION_HACK int16_t m_current_energy; int16_t m_current_pitch; int16_t m_current_k[10]; @@ -200,84 +200,55 @@ private: emu_timer *m_romclk_hack_timer; }; -extern const device_type TMS5110; class tms5100_device : public tms5110_device { public: tms5100_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); -protected: - // device-level overrides - virtual void device_start() override; }; -extern const device_type TMS5100; class tmc0281_device : public tms5110_device { public: tmc0281_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); -protected: - // device-level overrides - virtual void device_start() override; }; -extern const device_type TMC0281; class tms5100a_device : public tms5110_device { public: tms5100a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); -protected: - // device-level overrides - virtual void device_start() override; }; -extern const device_type TMS5100A; class tmc0281d_device : public tms5110_device { public: tmc0281d_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); -protected: - // device-level overrides - virtual void device_start() override; }; -extern const device_type TMC0281D; class cd2801_device : public tms5110_device { public: cd2801_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); -protected: - // device-level overrides - virtual void device_start() override; }; -extern const device_type CD2801; class cd2802_device : public tms5110_device { public: cd2802_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); -protected: - // device-level overrides - virtual void device_start() override; }; -extern const device_type CD2802; class tms5110a_device : public tms5110_device { public: tms5110a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); -protected: - // device-level overrides - virtual void device_start() override; }; -extern const device_type TMS5110A; class m58817_device : public tms5110_device { @@ -285,13 +256,18 @@ public: m58817_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); DECLARE_READ8_MEMBER( status_r ); - -protected: - // device-level overrides - virtual void device_start() override; }; -extern const device_type M58817; + +DECLARE_DEVICE_TYPE(TMS5110, tms5110_device) +DECLARE_DEVICE_TYPE(TMS5100, tms5100_device) +DECLARE_DEVICE_TYPE(TMC0281, tmc0281_device) +DECLARE_DEVICE_TYPE(TMS5100A, tms5100a_device) +DECLARE_DEVICE_TYPE(TMC0281D, tmc0281d_device) +DECLARE_DEVICE_TYPE(CD2801, cd2801_device) +DECLARE_DEVICE_TYPE(CD2802, cd2802_device) +DECLARE_DEVICE_TYPE(TMS5110A, tms5110a_device) +DECLARE_DEVICE_TYPE(M58817, m58817_device) @@ -360,7 +336,7 @@ private: emu_timer *m_romclk_timer; }; -extern const device_type TMSPROM; +DECLARE_DEVICE_TYPE(TMSPROM, tmsprom_device) #define MCFG_TMSPROM_REGION(_region) \ tmsprom_device::set_region(*device, "^" _region); @@ -395,4 +371,4 @@ extern const device_type TMSPROM; #define MCFG_TMSPROM_CTL_CB(_devcb) \ devcb = &tmsprom_device::set_ctl_callback(*device, DEVCB_##_devcb); -#endif /* __TMS5110_H__ */ +#endif // MAME_SOUND_TMS5110_H diff --git a/src/devices/sound/tms5220.cpp b/src/devices/sound/tms5220.cpp index 7a6e54b5335..e538b630f95 100644 --- a/src/devices/sound/tms5220.cpp +++ b/src/devices/sound/tms5220.cpp @@ -438,47 +438,8 @@ static const uint8_t reload_table[4] = { 0, 2, 4, 6 }; //sample count reload for #include "tms5110r.hxx" -void tms5220_device::set_variant(int variant) -{ - switch (variant) - { - case TMS5220_IS_TMC0281: - m_coeff = &T0280B_0281A_coeff; - break; - case TMS5220_IS_TMC0281D: - m_coeff = &T0280D_0281D_coeff; - break; - case TMS5220_IS_CD2801: - m_coeff = &T0280F_2801A_coeff; - break; - case TMS5220_IS_M58817: - m_coeff = &M58817_coeff; - break; - case TMS5220_IS_CD2802: - m_coeff = &T0280F_2802_coeff; - break; - case TMS5220_IS_TMS5110A: - m_coeff = &tms5110a_coeff; - break; - case TMS5220_IS_5200: - case TMS5220_IS_CD2501ECD: - m_coeff = &T0285_2501E_coeff; - break; - case TMS5220_IS_5220C: - case TMS5220_IS_5220: - m_coeff = &tms5220_coeff; - break; - default: - fatalerror("Unknown variant in tms5220_set_variant\n"); - } - m_variant = variant; -} - - void tms5220_device::register_for_save_states() { - save_item(NAME(m_variant)); - save_item(NAME(m_fifo)); save_item(NAME(m_fifo_head)); save_item(NAME(m_fifo_tail)); @@ -501,7 +462,7 @@ void tms5220_device::register_for_save_states() save_item(NAME(m_new_frame_energy_idx)); save_item(NAME(m_new_frame_pitch_idx)); save_item(NAME(m_new_frame_k_idx)); -#ifdef PERFECT_INTERPOLATION_HACK +#ifdef TMS5220_PERFECT_INTERPOLATION_HACK save_item(NAME(m_old_frame_energy_idx)); save_item(NAME(m_old_frame_pitch_idx)); save_item(NAME(m_old_frame_k_idx)); @@ -681,7 +642,7 @@ void tms5220_device::data_write(int data) m_uv_zpar = 1; // zero k4-k10 as well m_OLDE = 1; // 'silence/zpar' frames are zero energy m_OLDP = 1; // 'silence/zpar' frames are zero pitch -#ifdef PERFECT_INTERPOLATION_HACK +#ifdef TMS5220_PERFECT_INTERPOLATION_HACK m_old_zpar = 1; // zero all the old parameters m_old_uv_zpar = 1; // zero old k4-k10 as well #endif @@ -774,7 +735,7 @@ void tms5220_device::update_fifo_status_and_ints() // generate an interrupt if /TS was active, and is now inactive. // also, in this case, regardless if DDIS was set, unset it. - if (m_previous_TALK_STATUS == 1 && (TALK_STATUS == 0)) + if ((m_previous_TALK_STATUS == 1) && (TALK_STATUS() == 0)) { #ifdef VERBOSE logerror("Talk status WAS 1, is now 0, unsetting DDIS and firing an interrupt!\n"); @@ -782,7 +743,7 @@ void tms5220_device::update_fifo_status_and_ints() set_interrupt_state(1); m_DDIS = 0; } - m_previous_TALK_STATUS = TALK_STATUS; + m_previous_TALK_STATUS = TALK_STATUS(); } @@ -866,9 +827,9 @@ int tms5220_device::status_read() /* clear the interrupt pin on status read */ set_interrupt_state(0); #ifdef DEBUG_PIN_READS - logerror("Status read: TS=%d BL=%d BE=%d\n", TALK_STATUS, m_buffer_low, m_buffer_empty); + logerror("Status read: TS=%d BL=%d BE=%d\n", TALK_STATUS(), m_buffer_low, m_buffer_empty); #endif - return (TALK_STATUS << 7) | (m_buffer_low << 6) | (m_buffer_empty << 5); + return (TALK_STATUS() << 7) | (m_buffer_low << 6) | (m_buffer_empty << 5); } } @@ -980,7 +941,7 @@ void tms5220_device::process(int16_t *buffer, unsigned int size) /* appropriately override the interp count if needed; this will be incremented after the frame parse! */ m_IP = reload_table[m_c_variant_rate&0x3]; -#ifdef PERFECT_INTERPOLATION_HACK +#ifdef TMS5220_PERFECT_INTERPOLATION_HACK /* remember previous frame energy, pitch, and coefficients */ m_old_frame_energy_idx = m_new_frame_energy_idx; m_old_frame_pitch_idx = m_new_frame_pitch_idx; @@ -992,7 +953,7 @@ void tms5220_device::process(int16_t *buffer, unsigned int size) parse_frame(); /* if the new frame is a stop frame, unset both TALK and SPEN (via TCON). TALKD remains active while the energy is ramping to 0. */ - if (NEW_FRAME_STOP_FLAG == 1) + if (NEW_FRAME_STOP_FLAG()) { m_TALK = m_SPEN = 0; update_fifo_status_and_ints(); // probably not necessary... @@ -1005,18 +966,18 @@ void tms5220_device::process(int16_t *buffer, unsigned int size) * Old frame was unvoiced, new is voiced * Old frame was unvoiced, new frame is silence/zero energy (non-existent on tms51xx rev D and F (present and working on tms52xx, present but buggy on tms51xx rev A and B)) */ - if ( ((OLD_FRAME_UNVOICED_FLAG == 0) && NEW_FRAME_UNVOICED_FLAG) - || ((OLD_FRAME_UNVOICED_FLAG == 1) && !NEW_FRAME_UNVOICED_FLAG) - || ((OLD_FRAME_SILENCE_FLAG == 1) && !NEW_FRAME_SILENCE_FLAG) - //|| ((m_inhibit == 1) && (OLD_FRAME_UNVOICED_FLAG == 1) && (NEW_FRAME_SILENCE_FLAG == 1)) ) //TMS51xx INTERP BUG1 - || ((OLD_FRAME_UNVOICED_FLAG == 1) && NEW_FRAME_SILENCE_FLAG) ) + if ( ((OLD_FRAME_UNVOICED_FLAG() == 0) && NEW_FRAME_UNVOICED_FLAG()) + || ((OLD_FRAME_UNVOICED_FLAG() == 1) && !NEW_FRAME_UNVOICED_FLAG()) + || ((OLD_FRAME_SILENCE_FLAG() == 1) && !NEW_FRAME_SILENCE_FLAG()) + //|| ((m_inhibit == 1) && (OLD_FRAME_UNVOICED_FLAG() == 1) && NEW_FRAME_SILENCE_FLAG()) ) //TMS51xx INTERP BUG1 + || ((OLD_FRAME_UNVOICED_FLAG() == 1) && NEW_FRAME_SILENCE_FLAG()) ) m_inhibit = 1; else // normal frame, normal interpolation m_inhibit = 0; #ifdef DEBUG_GENERATION /* Debug info for current parsed frame */ - logerror( "OLDE: %d; NEWE: %d; OLDP: %d; NEWP: %d ", OLD_FRAME_SILENCE_FLAG, NEW_FRAME_SILENCE_FLAG, OLD_FRAME_UNVOICED_FLAG, NEW_FRAME_UNVOICED_FLAG); + logerror( "OLDE: %d; NEWE: %d; OLDP: %d; NEWP: %d ", OLD_FRAME_SILENCE_FLAG(), NEW_FRAME_SILENCE_FLAG(), OLD_FRAME_UNVOICED_FLAG(), NEW_FRAME_UNVOICED_FLAG()); logerror("Processing new frame: "); if (m_inhibit == 0) logerror( "Normal Frame\n"); @@ -1043,7 +1004,7 @@ void tms5220_device::process(int16_t *buffer, unsigned int size) else // Not a new frame, just interpolate the existing frame. { int inhibit_state = ((m_inhibit==1)&&(m_IP != 0)); // disable inhibit when reaching the last interp period, but don't overwrite the m_inhibit value -#ifdef PERFECT_INTERPOLATION_HACK +#ifdef TMS5220_PERFECT_INTERPOLATION_HACK int samples_per_frame = m_subc_reload?175:266; // either (13 A cycles + 12 B cycles) * 7 interps for normal SPEAK/SPKEXT, or (13*2 A cycles + 12 B cycles) * 7 interps for SPKSLOW //int samples_per_frame = m_subc_reload?200:304; // either (13 A cycles + 12 B cycles) * 8 interps for normal SPEAK/SPKEXT, or (13*2 A cycles + 12 B cycles) * 8 interps for SPKSLOW int current_sample = (m_subcycle - m_subc_reload)+(m_PC*(3-m_subc_reload))+((m_subc_reload?25:38)*((m_IP-1)&7)); @@ -1095,7 +1056,7 @@ void tms5220_device::process(int16_t *buffer, unsigned int size) } // calculate the output - if (OLD_FRAME_UNVOICED_FLAG == 1) + if (OLD_FRAME_UNVOICED_FLAG() == 1) { // generate unvoiced samples here if (m_RNG & 1) @@ -1103,7 +1064,7 @@ void tms5220_device::process(int16_t *buffer, unsigned int size) else m_excitation_data = 0x40; } - else /* (OLD_FRAME_UNVOICED_FLAG == 0) */ + else /* (OLD_FRAME_UNVOICED_FLAG() == 0) */ { // generate voiced samples here /* US patent 4331836 Figure 14B shows, and logic would hold, that a pitch based chirp @@ -1136,7 +1097,7 @@ void tms5220_device::process(int16_t *buffer, unsigned int size) for (i=0; i<10; i++) logerror("K%d:%04d ", i+1, m_current_k[i]); logerror("Out:%06d ", this_sample); -//#ifdef PERFECT_INTERPOLATION_HACK +//#ifdef TMS5220_PERFECT_INTERPOLATION_HACK // logerror("%d%d%d%d",m_old_zpar,m_zpar,m_old_uv_zpar,m_uv_zpar); //#else // logerror("x%dx%d",m_zpar,m_uv_zpar); @@ -1181,9 +1142,9 @@ void tms5220_device::process(int16_t *buffer, unsigned int size) if (m_IP == 7) // RESETL4 { // Latch OLDE and OLDP - //if (OLD_FRAME_SILENCE_FLAG) m_uv_zpar = 0; // TMS51xx INTERP BUG2 - OLD_FRAME_SILENCE_FLAG = NEW_FRAME_SILENCE_FLAG; // m_OLDE - OLD_FRAME_UNVOICED_FLAG = NEW_FRAME_UNVOICED_FLAG; // m_OLDP + //if (OLD_FRAME_SILENCE_FLAG()) m_uv_zpar = 0; // TMS51xx INTERP BUG2 + OLD_FRAME_SILENCE_FLAG() = NEW_FRAME_SILENCE_FLAG() ? 1 : 0; // m_OLDE + OLD_FRAME_UNVOICED_FLAG() = NEW_FRAME_UNVOICED_FLAG() ? 1 : 0; // m_OLDP /* if TALK was clear last frame, halt speech now, since TALKD (latched from TALK on new frame) just went inactive. */ #ifdef DEBUG_GENERATION logerror("RESETL4, about to update status: IP=%d, PC=%d, subcycle=%d, m_SPEN=%d, m_TALK=%d, m_TALKD=%d\n", m_IP, m_PC, m_subcycle, m_SPEN, m_TALK, m_TALKD); @@ -1395,7 +1356,7 @@ void tms5220_device::process_command(unsigned char cmd) switch (cmd & 0x70) { case 0x10 : /* read byte */ - if (TALK_STATUS == 0) /* TALKST must be clear for RDBY */ + if (TALK_STATUS() == 0) /* TALKST must be clear for RDBY */ { if (m_schedule_dummy_read) { @@ -1417,7 +1378,7 @@ void tms5220_device::process_command(unsigned char cmd) break; case 0x30 : /* read and branch */ - if (TALK_STATUS == 0) /* TALKST must be clear for RB */ + if (TALK_STATUS() == 0) /* TALKST must be clear for RB */ { #ifdef VERBOSE logerror("read and branch command received\n"); @@ -1429,7 +1390,7 @@ void tms5220_device::process_command(unsigned char cmd) break; case 0x40 : /* load address */ - if (TALK_STATUS == 0) /* TALKST must be clear for LA */ + if (TALK_STATUS() == 0) /* TALKST must be clear for LA */ { /* tms5220 data sheet says that if we load only one 4-bit nibble, it won't work. This code does not care about this. */ @@ -1455,7 +1416,7 @@ void tms5220_device::process_command(unsigned char cmd) m_uv_zpar = 1; // zero k4-k10 as well m_OLDE = 1; // 'silence/zpar' frames are zero energy m_OLDP = 1; // 'silence/zpar' frames are zero pitch -#ifdef PERFECT_INTERPOLATION_HACK +#ifdef TMS5220_PERFECT_INTERPOLATION_HACK m_old_zpar = 1; // zero all the old parameters m_old_uv_zpar = 1; // zero old k4-k10 as well #endif @@ -1479,7 +1440,7 @@ void tms5220_device::process_command(unsigned char cmd) m_uv_zpar = 1; // zero k4-k10 as well m_OLDE = 1; // 'silence/zpar' frames are zero energy m_OLDP = 1; // 'silence/zpar' frames are zero pitch -#ifdef PERFECT_INTERPOLATION_HACK +#ifdef TMS5220_PERFECT_INTERPOLATION_HACK m_old_zpar = 1; // zero all the old parameters m_old_uv_zpar = 1; // zero old k4-k10 as well #endif @@ -1519,7 +1480,7 @@ void tms5220_device::process_command(unsigned char cmd) void tms5220_device::parse_frame() { int i, rep_flag; -#ifdef PERFECT_INTERPOLATION_HACK +#ifdef TMS5220_PERFECT_INTERPOLATION_HACK m_old_uv_zpar = m_uv_zpar; m_old_zpar = m_zpar; #endif @@ -1573,7 +1534,7 @@ void tms5220_device::parse_frame() logerror(" "); #endif // if the new frame is unvoiced, be sure to zero out the k5-k10 parameters - m_uv_zpar = NEW_FRAME_UNVOICED_FLAG; + m_uv_zpar = NEW_FRAME_UNVOICED_FLAG() ? 1 : 0; update_fifo_status_and_ints(); if (m_DDIS && m_buffer_empty) goto ranout; // if this is a repeat frame, just do nothing, it will reuse the old coefficients @@ -1682,7 +1643,37 @@ void tms5220_device::device_start() m_speechrom = nullptr; } - set_variant(TMS5220_IS_5220); + switch (m_variant) + { + case TMS5220_IS_TMC0281: + m_coeff = &T0280B_0281A_coeff; + break; + case TMS5220_IS_TMC0281D: + m_coeff = &T0280D_0281D_coeff; + break; + case TMS5220_IS_CD2801: + m_coeff = &T0280F_2801A_coeff; + break; + case TMS5220_IS_M58817: + m_coeff = &M58817_coeff; + break; + case TMS5220_IS_CD2802: + m_coeff = &T0280F_2802_coeff; + break; + case TMS5220_IS_TMS5110A: + m_coeff = &tms5110a_coeff; + break; + case TMS5220_IS_5200: + case TMS5220_IS_CD2501ECD: + m_coeff = &T0285_2501E_coeff; + break; + case TMS5220_IS_5220C: + case TMS5220_IS_5220: + m_coeff = &tms5220_coeff; + break; + default: + fatalerror("Unknown variant in tms5220_set_variant\n"); + } m_clock = clock(); /* resolve callbacks */ @@ -1707,46 +1698,6 @@ void tms5220_device::device_start() register_for_save_states(); } -//------------------------------------------------- -// device_start - device-specific startup -//------------------------------------------------- - -void tms5220c_device::device_start() -{ - tms5220_device::device_start(); - set_variant(TMS5220_IS_5220C); -} - -//------------------------------------------------- -// device_start - device-specific startup -//------------------------------------------------- - -void cd2501e_device::device_start() -{ - tms5220_device::device_start(); - set_variant(TMS5220_IS_CD2501E); -} - -//------------------------------------------------- -// device_start - device-specific startup -//------------------------------------------------- - -void tms5200_device::device_start() -{ - tms5220_device::device_start(); - set_variant(TMS5220_IS_5200); -} - -//------------------------------------------------- -// device_start - device-specific startup -//------------------------------------------------- - -void cd2501ecd_device::device_start() -{ - tms5220_device::device_start(); - set_variant(TMS5220_IS_CD2501ECD); -} - //------------------------------------------------- // device_reset - device-specific reset //------------------------------------------------- @@ -1768,7 +1719,7 @@ void tms5220_device::device_reset() m_RDB_flag = false; /* initialize the energy/pitch/k states */ -#ifdef PERFECT_INTERPOLATION_HACK +#ifdef TMS5220_PERFECT_INTERPOLATION_HACK m_old_frame_energy_idx = m_old_frame_pitch_idx = 0; memset(m_old_frame_k_idx, 0, sizeof(m_old_frame_k_idx)); m_old_zpar = 0; @@ -2206,64 +2157,54 @@ void tms5220_device::set_frequency(int frequency) m_clock = frequency; } -const device_type TMS5220C = device_creator; + +DEFINE_DEVICE_TYPE(TMS5220C, tms5220c_device, "tms5220c", "TMS5220C") +DEFINE_DEVICE_TYPE(TMS5220, tms5220_device, "tms5220", "TMS5220") +DEFINE_DEVICE_TYPE(CD2501E, cd2501e_device, "cd2501e", "CD2501E") +DEFINE_DEVICE_TYPE(TMS5200, tms5200_device, "tms5200", "TMS5200") +DEFINE_DEVICE_TYPE(CD2501ECD, cd2501ecd_device, "cd2501ecd", "CD2501ECD") + tms5220c_device::tms5220c_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : tms5220_device(mconfig, TMS5220C, "TMS5220C", tag, owner, clock, "tms5220c", __FILE__) + : tms5220_device(mconfig, TMS5220C, tag, owner, clock, TMS5220_IS_5220C) { } -const device_type TMS5220 = device_creator; - tms5220_device::tms5220_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, TMS5220, "TMS5220", tag, owner, clock, "tms5220", __FILE__), - device_sound_interface(mconfig, *this), - m_irq_handler(*this), - m_readyq_handler(*this), - m_speechrom_tag(nullptr), - m_m0_cb(*this), - m_m1_cb(*this), - m_addr_cb(*this), - m_data_cb(*this), - m_romclk_cb(*this) + : tms5220_device(mconfig, TMS5220, tag, owner, clock, TMS5220_IS_5220) { } -tms5220_device::tms5220_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_sound_interface(mconfig, *this), - m_irq_handler(*this), - m_readyq_handler(*this), - m_speechrom_tag(nullptr), - m_m0_cb(*this), - m_m1_cb(*this), - m_addr_cb(*this), - m_data_cb(*this), - m_romclk_cb(*this) +tms5220_device::tms5220_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int variant) + : device_t(mconfig, type, tag, owner, clock) + , device_sound_interface(mconfig, *this) + , m_variant(variant) + , m_irq_handler(*this) + , m_readyq_handler(*this) + , m_speechrom_tag(nullptr) + , m_m0_cb(*this) + , m_m1_cb(*this) + , m_addr_cb(*this) + , m_data_cb(*this) + , m_romclk_cb(*this) { } -const device_type CD2501E = device_creator; - cd2501e_device::cd2501e_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : tms5220_device(mconfig, CD2501E, "CD2501E", tag, owner, clock, "cd2501e", __FILE__) + : tms5220_device(mconfig, CD2501E, tag, owner, clock, TMS5220_IS_CD2501E) { } -const device_type TMS5200 = device_creator; - tms5200_device::tms5200_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : tms5220_device(mconfig, TMS5200, "TMS5200", tag, owner, clock, "tms5200", __FILE__) + : tms5220_device(mconfig, TMS5200, tag, owner, clock, TMS5220_IS_5200) { } -const device_type CD2501ECD = device_creator; - cd2501ecd_device::cd2501ecd_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : tms5220_device(mconfig, CD2501ECD, "CD2501ECD", tag, owner, clock, "cd2501ecd", __FILE__) + : tms5220_device(mconfig, CD2501ECD, tag, owner, clock, TMS5220_IS_CD2501ECD) { } diff --git a/src/devices/sound/tms5220.h b/src/devices/sound/tms5220.h index 25ba8e07e45..96f5dc9b738 100644 --- a/src/devices/sound/tms5220.h +++ b/src/devices/sound/tms5220.h @@ -1,22 +1,14 @@ // license:BSD-3-Clause // copyright-holders:Frank Palazzolo, Aaron Giles, Jonathan Gevaryahu, Raphael Nabet, Couriersud, Michael Zapf -#pragma once +#ifndef MAME_SOUND_TMS5220_H +#define MAME_SOUND_TMS5220_H -#ifndef __TMS5220_H__ -#define __TMS5220_H__ +#pragma once #include "machine/spchrom.h" -enum -{ - RS=2, - WS=1 -}; - /* HACK: if defined, uses impossibly perfect 'straight line' interpolation */ -#undef PERFECT_INTERPOLATION_HACK - -#define FIFO_SIZE 16 +#undef TMS5220_PERFECT_INTERPOLATION_HACK /* clock rate = 80 * output sample rate, */ /* usually 640000 for 8000 Hz sample rate or */ @@ -49,30 +41,33 @@ enum #define MCFG_TMS52XX_ROMCLK_CB(_devcb) \ devcb = &tms5220_device::set_romclk_callback(*device, DEVCB_##_devcb); -class tms5220_device : public device_t, - public device_sound_interface + +class tms5220_device : public device_t, public device_sound_interface { public: + enum + { + RS=2, + WS=1 + }; + tms5220_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - tms5220_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); // static configuration helpers - template static devcb_base &set_irq_handler(device_t &device, _Object object) { return downcast(device).m_irq_handler.set_callback(object); } - template static devcb_base &set_readyq_handler(device_t &device, _Object object) { return downcast(device).m_readyq_handler.set_callback(object); } + template static devcb_base &set_irq_handler(device_t &device, Object &&cb) { return downcast(device).m_irq_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_readyq_handler(device_t &device, Object &&cb) { return downcast(device).m_readyq_handler.set_callback(std::forward(cb)); } // old VSM support, remove me! static void set_speechrom_tag(device_t &device, const char *_tag) { downcast(device).m_speechrom_tag = _tag; } // new VSM support - template static devcb_base &set_m0_callback(device_t &device, _Object object) { return downcast(device).m_m0_cb.set_callback(object); } - template static devcb_base &set_m1_callback(device_t &device, _Object object) { return downcast(device).m_m1_cb.set_callback(object); } - template static devcb_base &set_addr_callback(device_t &device, _Object object) { return downcast(device).m_addr_cb.set_callback(object); } - template static devcb_base &set_data_callback(device_t &device, _Object object) { return downcast(device).m_data_cb.set_callback(object); } - template static devcb_base &set_romclk_callback(device_t &device, _Object object) { return downcast(device).m_romclk_cb.set_callback(object); } - - /* Control lines - once written to will switch interface into - * "true" timing behaviour. - */ + template static devcb_base &set_m0_callback(device_t &device, Object &&cb) { return downcast(device).m_m0_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_m1_callback(device_t &device, Object &&cb) { return downcast(device).m_m1_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_addr_callback(device_t &device, Object &&cb) { return downcast(device).m_addr_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_data_callback(device_t &device, Object &&cb) { return downcast(device).m_data_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_romclk_callback(device_t &device, Object &&cb) { return downcast(device).m_romclk_cb.set_callback(std::forward(cb)); } - /* all lines with suffix q are active low! */ + // Control lines - once written to will switch interface into * "true" timing behaviour. + + // all lines with suffix q are active low! WRITE_LINE_MEMBER( rsq_w ); WRITE_LINE_MEMBER( wsq_w ); @@ -97,6 +92,8 @@ public: void set_frequency(int frequency); protected: + tms5220_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int variant); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -106,9 +103,9 @@ protected: // sound stream update overrides virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; - void set_variant(int variant); - private: + static constexpr unsigned FIFO_SIZE = 16; + // 51xx and VSM related void new_int_write(uint8_t rc, uint8_t m0, uint8_t m1, uint8_t addr); void new_int_write_addr(uint8_t addr); @@ -130,10 +127,17 @@ private: void set_interrupt_state(int state); void update_ready_state(); + uint8_t TALK_STATUS() const { return m_SPEN | m_TALKD; } + uint8_t &OLD_FRAME_SILENCE_FLAG() { return m_OLDE; } // 1 if E=0, 0 otherwise. + uint8_t &OLD_FRAME_UNVOICED_FLAG() { return m_OLDP; } // 1 if P=0 (unvoiced), 0 if voiced + bool NEW_FRAME_STOP_FLAG() const { return m_new_frame_energy_idx == 0x0F; } // 1 if this is a stop (Energy = 0xF) frame + bool NEW_FRAME_SILENCE_FLAG() const { return m_new_frame_energy_idx == 0; } // ditto as above + bool NEW_FRAME_UNVOICED_FLAG() const { return m_new_frame_pitch_idx == 0; } // ditto as above + // internal state /* coefficient tables */ - int m_variant; /* Variant of the 5xxx - see tms5110r.h */ + const int m_variant; /* Variant of the 5xxx - see tms5110r.h */ /* coefficient tables */ const struct tms5100_coeffs *m_coeff; @@ -169,7 +173,6 @@ private: uint8_t m_SPEN; /* set on speak(or speak external and BL falling edge) command, cleared on stop command, reset command, or buffer out */ uint8_t m_DDIS; /* If 1, DDIS is 1, i.e. Speak External command in progress, writes go to FIFO. */ uint8_t m_TALK; /* set on SPEN & RESETL4(pc12->pc0 transition), cleared on stop command or reset command */ -#define TALK_STATUS (m_SPEN|m_TALKD) uint8_t m_TALKD; /* TALK(TCON) value, latched every RESETL4 */ uint8_t m_buffer_low; /* If 1, FIFO has less than 8 bytes in it */ uint8_t m_buffer_empty; /* If 1, FIFO is empty */ @@ -177,21 +180,16 @@ private: uint8_t m_ready_pin; /* state of the READY pin (output) */ /* these contain data describing the current and previous voice frames */ -#define OLD_FRAME_SILENCE_FLAG m_OLDE // 1 if E=0, 0 otherwise. -#define OLD_FRAME_UNVOICED_FLAG m_OLDP // 1 if P=0 (unvoiced), 0 if voiced uint8_t m_OLDE; uint8_t m_OLDP; -#define NEW_FRAME_STOP_FLAG (m_new_frame_energy_idx == 0xF) // 1 if this is a stop (Energy = 0xF) frame -#define NEW_FRAME_SILENCE_FLAG (m_new_frame_energy_idx == 0) // ditto as above -#define NEW_FRAME_UNVOICED_FLAG (m_new_frame_pitch_idx == 0) // ditto as above uint8_t m_new_frame_energy_idx; uint8_t m_new_frame_pitch_idx; uint8_t m_new_frame_k_idx[10]; /* these are all used to contain the current state of the sound generation */ -#ifndef PERFECT_INTERPOLATION_HACK +#ifndef TMS5220_PERFECT_INTERPOLATION_HACK int16_t m_current_energy; int16_t m_current_pitch; int16_t m_current_k[10]; @@ -270,50 +268,39 @@ private: devcb_write_line m_romclk_cb; // rom clock - Only used to drive the data lines }; -extern const device_type TMS5220; class tms5220c_device : public tms5220_device { public: tms5220c_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); -protected: - // device-level overrides - virtual void device_start() override; }; -extern const device_type TMS5220C; class cd2501e_device : public tms5220_device { public: cd2501e_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); -protected: - // device-level overrides - virtual void device_start() override; }; -extern const device_type CD2501E; class tms5200_device : public tms5220_device { public: tms5200_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); -protected: - // device-level overrides - virtual void device_start() override; }; -extern const device_type TMS5200; class cd2501ecd_device : public tms5220_device { public: cd2501ecd_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); -protected: - // device-level overrides - virtual void device_start() override; }; -extern const device_type CD2501ECD; -#endif +DECLARE_DEVICE_TYPE(TMS5220, tms5220_device) +DECLARE_DEVICE_TYPE(TMS5220C, tms5220c_device) +DECLARE_DEVICE_TYPE(CD2501E, cd2501e_device) +DECLARE_DEVICE_TYPE(TMS5200, tms5200_device) +DECLARE_DEVICE_TYPE(CD2501ECD, cd2501ecd_device) + +#endif // MAME_SOUND_TMS5220_H diff --git a/src/devices/sound/upd1771.cpp b/src/devices/sound/upd1771.cpp index 067f681f581..c156c084681 100644 --- a/src/devices/sound/upd1771.cpp +++ b/src/devices/sound/upd1771.cpp @@ -172,8 +172,11 @@ #include "emu.h" #include "upd1771.h" +//#define VERBOSE 1 +#include "logmacro.h" -#define LOG 0 + +namespace { /* Each of the 8 waveforms have been extracted from the uPD1771c-017 internal @@ -202,7 +205,7 @@ const signed char WAVEFORMS[8][32]={ #define NOISE_SIZE 255 -static unsigned char noise_tbl[]= +const unsigned char noise_tbl[]= { 0x1c,0x86,0x8a,0x8f,0x98,0xa1,0xad,0xbe,0xd9,0x8a,0x66,0x4d,0x40,0x33,0x2b,0x23, 0x1e,0x8a,0x90,0x97,0xa4,0xae,0xb8,0xd6,0xec,0xe9,0x69,0x4a,0x3e,0x34,0x2d,0x27, @@ -223,20 +226,21 @@ static unsigned char noise_tbl[]= }; - #define STATE_SILENCE 0 #define STATE_NOISE 1 #define STATE_TONE 2 #define STATE_ADPCM 3 +} // anonymous namespace + -const device_type UPD1771C = device_creator; +DEFINE_DEVICE_TYPE(UPD1771C, upd1771c_device, "upd1771c", "NEC uPD1771C 017") upd1771c_device::upd1771c_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, UPD1771C, "NEC uPD1771C 017", tag, owner, clock, "upd1771c", __FILE__), - device_sound_interface(mconfig, *this), - m_ack_handler(*this) + : device_t(mconfig, UPD1771C, tag, owner, clock) + , device_sound_interface(mconfig, *this) + , m_ack_handler(*this) { } @@ -363,8 +367,7 @@ Byte9: 0b???VVVVV Low Freq2 volume WRITE8_MEMBER( upd1771c_device::write ) { - //if (LOG) - // logerror( "upd1771_w: received byte 0x%02x\n", data ); + LOG("upd1771_w: received byte 0x%02x\n", data); m_ack_handler(0); diff --git a/src/devices/sound/upd1771.h b/src/devices/sound/upd1771.h index 77c5eed3ea9..5dfcfd9a540 100644 --- a/src/devices/sound/upd1771.h +++ b/src/devices/sound/upd1771.h @@ -6,12 +6,10 @@ **********************************************************************/ -#ifndef __UPD1771_H__ -#define __UPD1771_H__ +#ifndef MAME_SOUND_UPD1771_H +#define MAME_SOUND_UPD1771_H -#define MAX_PACKET_SIZE 0x8000 - #define MCFG_UPD1771_ACK_HANDLER(_devcb) \ devcb = &upd1771c_device::set_ack_handler(*device, DEVCB_##_devcb); @@ -25,9 +23,8 @@ class upd1771c_device : public device_t, { public: upd1771c_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~upd1771c_device() {} - template static devcb_base &set_ack_handler(device_t &device, _Object object) { return downcast(device).m_ack_handler.set_callback(object); } + template static devcb_base &set_ack_handler(device_t &device, Object &&cb) { return downcast(device).m_ack_handler.set_callback(std::forward(cb)); } DECLARE_READ8_MEMBER( read ); DECLARE_WRITE8_MEMBER( write ); @@ -42,13 +39,15 @@ protected: virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; private: + static constexpr unsigned MAX_PACKET_SIZE = 0x8000; + + TIMER_CALLBACK_MEMBER(ack_callback); + // internal state sound_stream *m_channel; devcb_write_line m_ack_handler; emu_timer *m_timer; - TIMER_CALLBACK_MEMBER(ack_callback); - uint8_t m_packet[MAX_PACKET_SIZE]; uint32_t m_index; uint8_t m_expected_bytes; @@ -78,7 +77,6 @@ private: uint32_t m_n_ppos[3]; //period pos }; -extern const device_type UPD1771C; - +DECLARE_DEVICE_TYPE(UPD1771C, upd1771c_device) -#endif /* __UPD1771_H__ */ +#endif // MAME_SOUND_UPD1771_H diff --git a/src/devices/sound/upd7752.cpp b/src/devices/sound/upd7752.cpp index 33554e5a1b8..1e368a0db1a 100644 --- a/src/devices/sound/upd7752.cpp +++ b/src/devices/sound/upd7752.cpp @@ -13,12 +13,20 @@ skeleton device +/* status flags */ +#define BSY 1<<7 +#define REQ 1<<6 +#define EXT 1<<5 +#define ERR 1<<4 + + //************************************************************************** // GLOBAL VARIABLES //************************************************************************** // device type definition -const device_type UPD7752 = device_creator; +DEFINE_DEVICE_TYPE(UPD7752, upd7752_device, "upd7752", "NEC uPD7752") + /* TODO: unknown exact size */ static ADDRESS_MAP_START( upd7752_ram, AS_0, 8, upd7752_device ) @@ -35,7 +43,7 @@ ADDRESS_MAP_END //------------------------------------------------- upd7752_device::upd7752_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, UPD7752, "uPD7752", tag, owner, clock, "upd7752", __FILE__), + : device_t(mconfig, UPD7752, tag, owner, clock), device_sound_interface(mconfig, *this), device_memory_interface(mconfig, *this), m_stream(nullptr), m_space_config("ram", ENDIANNESS_LITTLE, 8, 16, 0, nullptr, *ADDRESS_MAP_NAME(upd7752_ram)), m_status(0), m_ram_addr(0), m_mode(0) diff --git a/src/devices/sound/upd7752.h b/src/devices/sound/upd7752.h index 13085eab5bb..af3988bd46c 100644 --- a/src/devices/sound/upd7752.h +++ b/src/devices/sound/upd7752.h @@ -1,22 +1,10 @@ // license:BSD-3-Clause // copyright-holders:Angelo Salese -/*************************************************************************** - -Template for skeleton device - -***************************************************************************/ +#ifndef MAME_SOUND_UPD7752_H +#define MAME_SOUND_UPD7752_H #pragma once -#ifndef __UPD7752DEV_H__ -#define __UPD7752DEV_H__ - -/* status flags */ -#define BSY 1<<7 -#define REQ 1<<6 -#define EXT 1<<5 -#define ERR 1<<4 - //************************************************************************** // INTERFACE CONFIGURATION MACROS @@ -31,9 +19,7 @@ Template for skeleton device // ======================> upd7752_device -class upd7752_device : public device_t, - public device_sound_interface, - public device_memory_interface +class upd7752_device : public device_t, public device_sound_interface, public device_memory_interface { public: // construction/destruction @@ -42,7 +28,6 @@ public: // I/O operations DECLARE_WRITE8_MEMBER( write ); DECLARE_READ8_MEMBER( read ); - virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_0) const override; protected: // device-level overrides @@ -51,13 +36,15 @@ protected: virtual void device_reset() override; virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; + virtual const address_space_config *memory_space_config(address_spacenum spacenum) const override; private: - sound_stream *m_stream; - const address_space_config m_space_config; + sound_stream *m_stream; + const address_space_config m_space_config; uint8_t m_status; uint16_t m_ram_addr; uint8_t m_mode; + void status_change(uint8_t flag,bool type); inline uint8_t readbyte(offs_t address); inline void writebyte(offs_t address, uint8_t data); @@ -65,14 +52,6 @@ private: // device type definition -extern const device_type UPD7752; - - - -//************************************************************************** -// GLOBAL VARIABLES -//************************************************************************** - - +DECLARE_DEVICE_TYPE(UPD7752, upd7752_device) -#endif +#endif // MAME_SOUND_UPD7752_H diff --git a/src/devices/sound/upd7759.cpp b/src/devices/sound/upd7759.cpp index e1b8dd88ad6..684164c03e8 100644 --- a/src/devices/sound/upd7759.cpp +++ b/src/devices/sound/upd7759.cpp @@ -144,8 +144,8 @@ #define FRAC_MASK (FRAC_ONE - 1) -upd775x_device::upd775x_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source) +upd775x_device::upd775x_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) , device_sound_interface(mconfig, *this) , m_channel(nullptr) , m_sample_offset_shift(0) @@ -176,29 +176,28 @@ upd775x_device::upd775x_device(const machine_config &mconfig, device_type type, , m_romoffset(0) , m_rommask(0) , m_drqcallback(*this) - { - } +{ +} -const device_type UPD7759 = device_creator; +DEFINE_DEVICE_TYPE(UPD7759, upd7759_device, "upd7759", "NEC uPD7759") upd7759_device::upd7759_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : upd775x_device(mconfig, UPD7759, "uPD7759", tag, owner, clock, "upd7759", __FILE__) - , m_timer(nullptr) + : upd7759_device(mconfig, UPD7759, tag, owner, clock) { } -upd7759_device::upd7759_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : upd775x_device(mconfig, type, name, tag, owner, clock, shortname, source) +upd7759_device::upd7759_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : upd775x_device(mconfig, type, tag, owner, clock) , m_timer(nullptr) { } -const device_type UPD7756 = device_creator; +DEFINE_DEVICE_TYPE(UPD7756, upd7756_device, "upd7756", "NEC uPD7756") upd7756_device::upd7756_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : upd775x_device(mconfig, UPD7756, "uPD7756", tag, owner, clock, "upd7756", __FILE__) + : upd775x_device(mconfig, UPD7756, tag, owner, clock) { } diff --git a/src/devices/sound/upd7759.h b/src/devices/sound/upd7759.h index f075c41c1dc..62f8502ba05 100644 --- a/src/devices/sound/upd7759.h +++ b/src/devices/sound/upd7759.h @@ -1,27 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Juergen Buchmueller, Mike Balfour, Howie Cohen, Olivier Galibert, Aaron Giles -#pragma once - -#ifndef __UPD7759_H__ -#define __UPD7759_H__ +#ifndef MAME_SOUND_UPD7759_H +#define MAME_SOUND_UPD7759_H -/* chip states */ -enum -{ - STATE_IDLE, - STATE_DROP_DRQ, - STATE_START, - STATE_FIRST_REQ, - STATE_LAST_SAMPLE, - STATE_DUMMY1, - STATE_ADDR_MSB, - STATE_ADDR_LSB, - STATE_DUMMY2, - STATE_BLOCK_HEADER, - STATE_NIBBLE_COUNT, - STATE_NIBBLE_MSN, - STATE_NIBBLE_LSN -}; +#pragma once /* NEC uPD7759/55/56/P56/57/58 ADPCM Speech Processor */ @@ -33,14 +15,10 @@ enum #define UPD7759_STANDARD_CLOCK XTAL_640kHz -class upd775x_device : public device_t, - public device_sound_interface +class upd775x_device : public device_t, public device_sound_interface { public: - upd775x_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - ~upd775x_device() {} - - template static devcb_base &set_drq_callback(device_t &device, _Object object) { return downcast(device).m_drqcallback.set_callback(object); } + template static devcb_base &set_drq_callback(device_t &device, Object &&cb) { return downcast(device).m_drqcallback.set_callback(std::forward(cb)); } void set_bank_base(offs_t base); @@ -50,6 +28,26 @@ public: void postload(); protected: + // chip states + enum + { + STATE_IDLE, + STATE_DROP_DRQ, + STATE_START, + STATE_FIRST_REQ, + STATE_LAST_SAMPLE, + STATE_DUMMY1, + STATE_ADDR_MSB, + STATE_ADDR_LSB, + STATE_DUMMY2, + STATE_BLOCK_HEADER, + STATE_NIBBLE_COUNT, + STATE_NIBBLE_MSN, + STATE_NIBBLE_LSN + }; + + upd775x_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -57,6 +55,9 @@ protected: // sound stream update overrides virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; + void update_adpcm(int data); + virtual void advance_state(); + // internal state sound_stream *m_channel; /* stream channel for playback */ @@ -101,30 +102,29 @@ protected: uint32_t m_rommask; /* maximum address offset */ devcb_write_line m_drqcallback; - - void update_adpcm(int data); - virtual void advance_state(); }; class upd7759_device : public upd775x_device { public: upd7759_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - upd7759_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); + DECLARE_WRITE_LINE_MEMBER( start_w ); + +protected: enum { TIMER_SLAVE_UPDATE }; + upd7759_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; virtual void device_reset() override; virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; - emu_timer *m_timer; /* timer */ - - DECLARE_WRITE_LINE_MEMBER( start_w ); + emu_timer *m_timer; }; class upd7756_device : public upd775x_device @@ -132,15 +132,16 @@ class upd7756_device : public upd775x_device public: upd7756_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + DECLARE_WRITE_LINE_MEMBER( start_w ); + +protected: virtual void device_start() override; virtual void device_reset() override; virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; - - DECLARE_WRITE_LINE_MEMBER( start_w ); }; -extern const device_type UPD7759; -extern const device_type UPD7756; +DECLARE_DEVICE_TYPE(UPD7759, upd7759_device) +DECLARE_DEVICE_TYPE(UPD7756, upd7756_device) #define MCFG_UPD7759_DRQ_CALLBACK(_write) \ devcb = &upd7759_device::set_drq_callback(*device, DEVCB_##_write); @@ -148,4 +149,4 @@ extern const device_type UPD7756; #define MCFG_UPD7756_DRQ_CALLBACK(_write) \ devcb = &upd7756_device::set_drq_callback(*device, DEVCB_##_write); -#endif /* __UPD7759_H__ */ +#endif // MAME_SOUND_UPD7759_H diff --git a/src/devices/sound/vlm5030.cpp b/src/devices/sound/vlm5030.cpp index 2a097aada94..b77a5bfc193 100644 --- a/src/devices/sound/vlm5030.cpp +++ b/src/devices/sound/vlm5030.cpp @@ -157,10 +157,10 @@ static const int vlm5030_speed_table[8] = IP_SIZE_SLOW }; -const device_type VLM5030 = device_creator; +DEFINE_DEVICE_TYPE(VLM5030, vlm5030_device, "vlm5030", "Sanyo VLM5030") vlm5030_device::vlm5030_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, VLM5030, "VLM5030", tag, owner, clock, "vlm5030", __FILE__), + : device_t(mconfig, VLM5030, tag, owner, clock), device_sound_interface(mconfig, *this), device_rom_interface(mconfig, *this, 16), m_channel(nullptr), diff --git a/src/devices/sound/vlm5030.h b/src/devices/sound/vlm5030.h index 88bbcc19f98..48e0d712b2f 100644 --- a/src/devices/sound/vlm5030.h +++ b/src/devices/sound/vlm5030.h @@ -1,16 +1,14 @@ // license:BSD-3-Clause // copyright-holders:Tatsuyuki Satoh -#pragma once +#ifndef MAME_SOUND_VLM5030_H +#define MAME_SOUND_VLM5030_H -#ifndef __VLM5030_H__ -#define __VLM5030_H__ +#pragma once - class vlm5030_device : public device_t, - public device_sound_interface, public device_rom_interface - { - public: +class vlm5030_device : public device_t, public device_sound_interface, public device_rom_interface +{ +public: vlm5030_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~vlm5030_device() {} /* get BSY pin level */ DECLARE_READ_LINE_MEMBER( bsy ); @@ -43,7 +41,7 @@ private: const address_space_config m_space_config; // internal state - sound_stream * m_channel; + sound_stream *m_channel; /* coefficient tables */ const struct tms5100_coeffs *m_coeff; @@ -95,7 +93,6 @@ private: void restore_state(); }; -extern const device_type VLM5030; - +DECLARE_DEVICE_TYPE(VLM5030, vlm5030_device) -#endif /* __VLM5030_H__ */ +#endif // MAME_SOUND_VLM5030_H diff --git a/src/devices/sound/volt_reg.cpp b/src/devices/sound/volt_reg.cpp index 6e179599907..aeb2bd6285a 100644 --- a/src/devices/sound/volt_reg.cpp +++ b/src/devices/sound/volt_reg.cpp @@ -11,11 +11,12 @@ #include "emu.h" #include "volt_reg.h" -const device_type VOLTAGE_REGULATOR = device_creator; +DEFINE_DEVICE_TYPE(VOLTAGE_REGULATOR, voltage_regulator_device, "volt_reg", "Voltage Regulator") voltage_regulator_device::voltage_regulator_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, VOLTAGE_REGULATOR, "Voltage Regulator", tag, owner, clock, "volt_reg", __FILE__), + device_t(mconfig, VOLTAGE_REGULATOR, tag, owner, clock), device_sound_interface(mconfig, *this), + m_stream(nullptr), m_output(0) { } diff --git a/src/devices/sound/volt_reg.h b/src/devices/sound/volt_reg.h index 18adb8264c6..dd036dbad28 100644 --- a/src/devices/sound/volt_reg.h +++ b/src/devices/sound/volt_reg.h @@ -8,21 +8,21 @@ ***************************************************************************/ -#ifndef __VOLTAGE_REGULATOR_H__ -#define __VOLTAGE_REGULATOR_H__ +#ifndef MAME_SOUND_VOLT_REG_H +#define MAME_SOUND_VOLT_REG_H + +#pragma once #define MCFG_VOLTAGE_REGULATOR_OUTPUT(_output) \ voltage_regulator_device::set_output(*device, _output); -class voltage_regulator_device : public device_t, - public device_sound_interface +class voltage_regulator_device : public device_t, public device_sound_interface { public: static void set_output(device_t &device, double analogue_dc) { downcast(device).m_output = (analogue_dc * 32768) / 5.0f; } voltage_regulator_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~voltage_regulator_device() { } virtual bool issound() override { return false; } @@ -38,6 +38,6 @@ private: stream_sample_t m_output; }; -extern const device_type VOLTAGE_REGULATOR; +DECLARE_DEVICE_TYPE(VOLTAGE_REGULATOR, voltage_regulator_device) -#endif +#endif // MAME_SOUND_VOLT_REG_H diff --git a/src/devices/sound/votrax.cpp b/src/devices/sound/votrax.cpp index 1068554aab3..d2741b0a7dc 100644 --- a/src/devices/sound/votrax.cpp +++ b/src/devices/sound/votrax.cpp @@ -26,7 +26,7 @@ tp1 = phi clock (tied to f2q rom access) #include "votrax.h" -const device_type VOTRAX_SC01 = device_creator; +DEFINE_DEVICE_TYPE(VOTRAX_SC01, votrax_sc01_device, "votrax", "Votrax SC-01") // ROM definition for the Votrax phone ROM ROM_START( votrax_sc01 ) @@ -76,7 +76,7 @@ const double votrax_sc01_device::s_glottal_wave[9] = votrax_sc01_device::votrax_sc01_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, VOTRAX_SC01, "Votrax SC-01", tag, owner, clock, "votrax", __FILE__), + : device_t(mconfig, VOTRAX_SC01, tag, owner, clock), device_sound_interface(mconfig, *this), m_stream(nullptr), m_rom(*this, "internal"), diff --git a/src/devices/sound/votrax.h b/src/devices/sound/votrax.h index dd39efc9eb4..0ec75317227 100644 --- a/src/devices/sound/votrax.h +++ b/src/devices/sound/votrax.h @@ -7,11 +7,11 @@ Votrax SC01A simulation ***************************************************************************/ +#ifndef MAME_SOUND_VOTRAX_H +#define MAME_SOUND_VOTRAX_H #pragma once -#ifndef VOTRAX_H -#define VOTRAX_H #define MCFG_VOTRAX_SC01_REQUEST_CB(_devcb) \ devcb = &downcast(device)->set_ar_callback(DEVCB_##_devcb); @@ -23,7 +23,7 @@ public: // construction/destruction votrax_sc01_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template devcb_base &set_ar_callback(_Object object) { return m_ar_cb.set_callback(object); } + template devcb_base &set_ar_callback(Object &&cb) { return m_ar_cb.set_callback(std::forward(cb)); } DECLARE_WRITE8_MEMBER(write); DECLARE_WRITE8_MEMBER(inflection_w); @@ -182,12 +182,11 @@ private: }; - //************************************************************************** // GLOBAL VARIABLES //************************************************************************** // device type definition -extern const device_type VOTRAX_SC01; +DECLARE_DEVICE_TYPE(VOTRAX_SC01, votrax_sc01_device) -#endif /* VOTRAX_H */ +#endif // MAME_SOUND_VOTRAX_H diff --git a/src/devices/sound/vrc6.cpp b/src/devices/sound/vrc6.cpp index a377e736301..e632cce1cdb 100644 --- a/src/devices/sound/vrc6.cpp +++ b/src/devices/sound/vrc6.cpp @@ -19,7 +19,7 @@ #define DISABLE_VRC6_SOUND // not ready yet // device type definition -const device_type VRC6 = device_creator; +DEFINE_DEVICE_TYPE(VRC6, vrc6snd_device, "vrc6snd", "Konami VRC6 (Sound)") //************************************************************************** // LIVE DEVICE @@ -30,8 +30,14 @@ const device_type VRC6 = device_creator; //------------------------------------------------- vrc6snd_device::vrc6snd_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, VRC6, "VRC6 sound", tag, owner, clock, "vrc6snd", __FILE__), - device_sound_interface(mconfig, *this), m_freqctrl(0), m_sawrate(0), m_sawfrql(0), m_sawfrqh(0), m_sawclock(0), m_sawaccum(0), m_stream(nullptr) + : device_t(mconfig, VRC6, tag, owner, clock) + , device_sound_interface(mconfig, *this) + , m_freqctrl(0), m_pulsectrl{ 0, 0 }, m_sawrate(0) + , m_pulsefrql{ 0, 0 }, m_pulsefrqh{ 0, 0 }, m_pulseduty{ 0, 0 } + , m_sawfrql(0), m_sawfrqh(0), m_sawclock(0), m_sawaccum(0) + , m_ticks{ 0, 0, 0 } + , m_output{ 0, 0, 0 } + , m_stream(nullptr) { } diff --git a/src/devices/sound/vrc6.h b/src/devices/sound/vrc6.h index 6e1afe6f8ef..61449bc0216 100644 --- a/src/devices/sound/vrc6.h +++ b/src/devices/sound/vrc6.h @@ -7,10 +7,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_SOUND_VRC6_H +#define MAME_SOUND_VRC6_H -#ifndef __VRC6_H__ -#define __VRC6_H__ +#pragma once //************************************************************************** // INTERFACE CONFIGURATION MACROS @@ -57,5 +57,4 @@ private: // device type definition extern const device_type VRC6; - -#endif /* __VRC6_H__ */ +#endif // MAME_SOUND_VRC6_H diff --git a/src/devices/sound/vrender0.cpp b/src/devices/sound/vrender0.cpp index 4968376dff5..385575ab426 100644 --- a/src/devices/sound/vrender0.cpp +++ b/src/devices/sound/vrender0.cpp @@ -77,14 +77,14 @@ static const unsigned short ULawTo16[]= // LIVE DEVICE //************************************************************************** -const device_type VRENDER0 = device_creator; +DEFINE_DEVICE_TYPE(VRENDER0, vrender0_device, "vrender0", "VRender0") //------------------------------------------------- // vrender0_device - constructor //------------------------------------------------- vrender0_device::vrender0_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, VRENDER0, "VRender0", tag, owner, clock, "vrender0", __FILE__), + : device_t(mconfig, VRENDER0, tag, owner, clock), device_sound_interface(mconfig, *this), m_TexBase(nullptr), m_FBBase(nullptr), diff --git a/src/devices/sound/vrender0.h b/src/devices/sound/vrender0.h index ebf93b71378..5ad9046aede 100644 --- a/src/devices/sound/vrender0.h +++ b/src/devices/sound/vrender0.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:ElSemi -#pragma once +#ifndef MAME_SOUND_VRENDER0_H +#define MAME_SOUND_VRENDER0_H -#ifndef __VRENDER0_H__ -#define __VRENDER0_H__ +#pragma once //************************************************************************** @@ -30,7 +30,6 @@ class vrender0_device : public device_t, { public: vrender0_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~vrender0_device() { } // static configuration static void set_reg_base(device_t &device, int base) { downcast(device).m_reg_base = base; } @@ -57,7 +56,6 @@ private: void VR0_RenderAudio(int nsamples, stream_sample_t *l, stream_sample_t *r); }; -extern const device_type VRENDER0; - +DECLARE_DEVICE_TYPE(VRENDER0, vrender0_device) -#endif /* __VRENDER0_H__ */ +#endif // MAME_SOUND_VRENDER0_H diff --git a/src/devices/sound/wave.cpp b/src/devices/sound/wave.cpp index 8515ec5237f..7383805d05e 100644 --- a/src/devices/sound/wave.cpp +++ b/src/devices/sound/wave.cpp @@ -31,13 +31,14 @@ void wave_device::static_set_cassette_tag(device_t &device, const char *cassette wave.m_cassette_tag = cassette_tag; } -const device_type WAVE = device_creator; +DEFINE_DEVICE_TYPE(WAVE, wave_device, "wave", "Wave") wave_device::wave_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, WAVE, "Wave", tag, owner, clock, "wave", __FILE__), - device_sound_interface(mconfig, *this), m_cass(nullptr) + : device_t(mconfig, WAVE, tag, owner, clock) + , device_sound_interface(mconfig, *this) + , m_cassette_tag(nullptr) + , m_cass(nullptr) { - m_cassette_tag = nullptr; } //------------------------------------------------- diff --git a/src/devices/sound/wave.h b/src/devices/sound/wave.h index f5881a83d58..da7797dfbca 100644 --- a/src/devices/sound/wave.h +++ b/src/devices/sound/wave.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Nathan Woods -#pragma once +#ifndef MAME_SOUND_WAVE_H +#define MAME_SOUND_WAVE_H -#ifndef __WAVE_H__ -#define __WAVE_H__ +#pragma once #include "imagedev/cassette.h" @@ -12,8 +12,7 @@ * CassetteWave interface *****************************************************************************/ -class wave_device : public device_t, - public device_sound_interface +class wave_device : public device_t, public device_sound_interface { public: wave_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); @@ -32,7 +31,7 @@ private: cassette_image_device *m_cass; }; -extern const device_type WAVE; +DECLARE_DEVICE_TYPE(WAVE, wave_device) #define WAVE_TAG "wave" @@ -43,4 +42,4 @@ extern const device_type WAVE; MCFG_SOUND_ADD( _tag, WAVE, 0 ) \ wave_device::static_set_cassette_tag(*device, _cass_tag); -#endif /* __WAVE_H__ */ +#endif // MAME_SOUND_WAVE_H diff --git a/src/devices/sound/x1_010.cpp b/src/devices/sound/x1_010.cpp index bbaff50d15d..04f896fc82f 100644 --- a/src/devices/sound/x1_010.cpp +++ b/src/devices/sound/x1_010.cpp @@ -59,9 +59,12 @@ Registers: #define VERBOSE_REGISTER_WRITE 0 #define VERBOSE_REGISTER_READ 0 -#define LOG_SOUND(x) do { if (VERBOSE_SOUND) logerror x; } while (0) -#define LOG_REGISTER_WRITE(x) do { if (VERBOSE_REGISTER_WRITE) logerror x; } while (0) -#define LOG_REGISTER_READ(x) do { if (VERBOSE_REGISTER_READ) logerror x; } while (0) +#define LOG_SOUND(...) do { if (VERBOSE_SOUND) logerror(__VA_ARGS__); } while (0) +#define LOG_REGISTER_WRITE(...) do { if (VERBOSE_REGISTER_WRITE) logerror(__VA_ARGS__); } while (0) +#define LOG_REGISTER_READ(...) do { if (VERBOSE_REGISTER_READ) logerror(__VA_ARGS__); } while (0) + + +namespace { #define FREQ_BASE_BITS 8 // Frequency fixed decimal shift bits #define ENV_BASE_BITS 16 // wave form envelope fixed decimal shift bits @@ -78,15 +81,17 @@ struct X1_010_CHANNEL { unsigned char reserve[2]; }; +} // anonymous namespace + /* mixer tables and internal buffers */ //static short *mixer_buffer = nullptr; -const device_type X1_010 = device_creator; +DEFINE_DEVICE_TYPE(X1_010, x1_010_device, "x1_010", "Seta X1-010") x1_010_device::x1_010_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, X1_010, "X1-010", tag, owner, clock, "x1_010", __FILE__), + : device_t(mconfig, X1_010, tag, owner, clock), device_sound_interface(mconfig, *this), m_region(*this, DEVICE_SELF), m_rate(0), @@ -95,10 +100,10 @@ x1_010_device::x1_010_device(const machine_config &mconfig, const char *tag, dev m_sound_enable(0), m_base_clock(0) { - memset(m_reg, 0, sizeof(m_reg)); - memset(m_HI_WORD_BUF, 0, sizeof(m_HI_WORD_BUF)); - memset(m_smp_offset, 0, sizeof(SETA_NUM_CHANNELS)); - memset(m_env_offset, 0, sizeof(SETA_NUM_CHANNELS)); + std::fill(std::begin(m_reg), std::end(m_reg), 0); + std::fill(std::begin(m_HI_WORD_BUF), std::end(m_HI_WORD_BUF), 0); + std::fill(std::begin(m_smp_offset), std::end(m_smp_offset), 0); + std::fill(std::begin(m_env_offset), std::end(m_env_offset), 0); } //------------------------------------------------- @@ -112,12 +117,12 @@ void x1_010_device::device_start() m_base_clock = clock(); m_rate = clock() / 512; - for( i = 0; i < SETA_NUM_CHANNELS; i++ ) { + for( i = 0; i < NUM_CHANNELS; i++ ) { m_smp_offset[i] = 0; m_env_offset[i] = 0; } /* Print some more debug info */ - LOG_SOUND(("masterclock = %d rate = %d\n", clock(), m_rate )); + LOG_SOUND("masterclock = %d rate = %d\n", clock(), m_rate ); /* get stream channels */ m_stream = machine().sound().stream_alloc(*this, 0, 2, m_rate); @@ -154,12 +159,12 @@ WRITE8_MEMBER( x1_010_device::write ) channel = offset/sizeof(X1_010_CHANNEL); reg = offset%sizeof(X1_010_CHANNEL); - if( channel < SETA_NUM_CHANNELS && reg == 0 + if( channel < NUM_CHANNELS && reg == 0 && (m_reg[offset]&1) == 0 && (data&1) != 0 ) { m_smp_offset[channel] = 0; m_env_offset[channel] = 0; } - LOG_REGISTER_WRITE(("%s: offset %6X : data %2X\n", machine().describe_context(), offset, data )); + LOG_REGISTER_WRITE("%s: offset %6X : data %2X\n", machine().describe_context(), offset, data); m_reg[offset] = data; } @@ -172,7 +177,7 @@ READ16_MEMBER( x1_010_device::word_r ) ret = m_HI_WORD_BUF[offset]<<8; ret += (read( space, offset )&0xff); - LOG_REGISTER_READ(( "%s: Read X1-010 Offset:%04X Data:%04X\n", machine().describe_context(), offset, ret )); + LOG_REGISTER_READ("%s: Read X1-010 Offset:%04X Data:%04X\n", machine().describe_context(), offset, ret); return ret; } @@ -180,7 +185,7 @@ WRITE16_MEMBER( x1_010_device::word_w ) { m_HI_WORD_BUF[offset] = (data>>8)&0xff; write( space, offset, data&0xff ); - LOG_REGISTER_WRITE(( "%s: Write X1-010 Offset:%04X Data:%04X\n", machine().describe_context(), offset, data )); + LOG_REGISTER_WRITE("%s: Write X1-010 Offset:%04X Data:%04X\n", machine().describe_context(), offset, data); } @@ -202,7 +207,7 @@ void x1_010_device::sound_stream_update(sound_stream &stream, stream_sample_t ** // if( m_sound_enable == 0 ) return; - for( ch = 0; ch < SETA_NUM_CHANNELS; ch++ ) { + for( ch = 0; ch < NUM_CHANNELS; ch++ ) { reg = (X1_010_CHANNEL *)&(m_reg[ch*sizeof(X1_010_CHANNEL)]); if( (reg->status&1) != 0 ) { // Key On stream_sample_t *bufL = outputs[0]; @@ -221,8 +226,8 @@ void x1_010_device::sound_stream_update(sound_stream &stream, stream_sample_t ** smp_step = (uint32_t)((float)m_base_clock/8192.0f *freq*(1<>FREQ_BASE_BITS; @@ -248,8 +253,8 @@ void x1_010_device::sound_stream_update(sound_stream &stream, stream_sample_t ** env_step = (uint32_t)((float)m_base_clock/128.0f/1024.0f/4.0f*reg->start*(1<volume, ch, reg->end, freq, smp_step, smp_offs )); + LOG_SOUND("Play waveform %X, channel %X volume %X freq %4X step %X offset %X\n", + reg->volume, ch, reg->end, freq, smp_step, smp_offs); } for( i = 0; i < samples; i++ ) { int vol; diff --git a/src/devices/sound/x1_010.h b/src/devices/sound/x1_010.h index d2eb07d3999..9ba80bc95a0 100644 --- a/src/devices/sound/x1_010.h +++ b/src/devices/sound/x1_010.h @@ -1,18 +1,14 @@ // license:BSD-3-Clause // copyright-holders:Luca Elia -#pragma once - -#ifndef __X1_010_H__ -#define __X1_010_H__ +#ifndef MAME_SOUND_X1_010_H +#define MAME_SOUND_X1_010_H -#define SETA_NUM_CHANNELS 16 +#pragma once -class x1_010_device : public device_t, - public device_sound_interface +class x1_010_device : public device_t, public device_sound_interface { public: x1_010_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~x1_010_device() {} // static configuration static void set_address(device_t &device, int addr) { downcast(device).m_adr = addr; } @@ -31,7 +27,10 @@ protected: // sound stream update overrides virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; + private: + static constexpr unsigned NUM_CHANNELS = 16; + // internal state /* Variables only used here */ @@ -42,17 +41,16 @@ private: int m_sound_enable; // sound output enable/disable uint8_t m_reg[0x2000]; // X1-010 Register & wave form area uint8_t m_HI_WORD_BUF[0x2000]; // X1-010 16bit access ram check avoidance work - uint32_t m_smp_offset[SETA_NUM_CHANNELS]; - uint32_t m_env_offset[SETA_NUM_CHANNELS]; + uint32_t m_smp_offset[NUM_CHANNELS]; + uint32_t m_env_offset[NUM_CHANNELS]; uint32_t m_base_clock; }; -extern const device_type X1_010; +DECLARE_DEVICE_TYPE(X1_010, x1_010_device) #define MCFG_X1_010_ADDRESS(_addr) \ x1_010_device::set_address(*device, _addr); - -#endif /* __X1_010_H__ */ +#endif // MAME_SOUND_X1_010_H diff --git a/src/devices/sound/ym2151.cpp b/src/devices/sound/ym2151.cpp index b35787d0d1d..a86227af86b 100644 --- a/src/devices/sound/ym2151.cpp +++ b/src/devices/sound/ym2151.cpp @@ -4,7 +4,7 @@ #include "emu.h" #include "ym2151.h" -const device_type YM2151 = device_creator; +DEFINE_DEVICE_TYPE(YM2151, ym2151_device, "ym2151", "Yamaha YM2151 OPM") #define FREQ_SH 16 /* 16.16 fixed point (frequency calculations) */ @@ -1650,7 +1650,7 @@ void ym2151_device::advance() //------------------------------------------------- ym2151_device::ym2151_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, YM2151, "YM2151", tag, owner, clock, "ym2151", __FILE__), + : device_t(mconfig, YM2151, tag, owner, clock), device_sound_interface(mconfig, *this), m_stream(nullptr), m_lastreg(0), diff --git a/src/devices/sound/ym2151.h b/src/devices/sound/ym2151.h index 0858a01abb9..57b1efb80eb 100644 --- a/src/devices/sound/ym2151.h +++ b/src/devices/sound/ym2151.h @@ -30,10 +30,10 @@ ** Ishmair - for the datasheet and motivation. */ -#pragma once +#ifndef MAME_SOUND_YM2151_H +#define MAME_SOUND_YM2151_H -#ifndef __YM2151_H__ -#define __YM2151_H__ +#pragma once //************************************************************************** @@ -64,8 +64,8 @@ public: ym2151_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // static configuration helpers - template static devcb_base &set_irq_handler(device_t &device, _Object object) { return downcast(device).m_irqhandler.set_callback(object); } - template static devcb_base &set_port_write_handler(device_t &device, _Object object) { return downcast(device).m_portwritehandler.set_callback(object); } + template static devcb_base &set_irq_handler(device_t &device, Object &&cb) { return downcast(device).m_irqhandler.set_callback(std::forward(cb)); } + template static devcb_base &set_port_write_handler(device_t &device, Object &&cb) { return downcast(device).m_portwritehandler.set_callback(std::forward(cb)); } // read/write DECLARE_READ8_MEMBER( read ); @@ -273,7 +273,7 @@ private: // device type definition -extern const device_type YM2151; +DECLARE_DEVICE_TYPE(YM2151, ym2151_device) -#endif /* __2151INTF_H__ */ +#endif // MAME_SOUND_YM2151_H diff --git a/src/devices/sound/ym2413.cpp b/src/devices/sound/ym2413.cpp index 76fcb144df0..4d9da3d1dee 100644 --- a/src/devices/sound/ym2413.cpp +++ b/src/devices/sound/ym2413.cpp @@ -1675,10 +1675,10 @@ WRITE8_MEMBER( ym2413_device::data_port_w ) write_reg(address, data); } -const device_type YM2413 = device_creator; +DEFINE_DEVICE_TYPE(YM2413, ym2413_device, "ym2413", "Yamaha YM2413 OPLL") ym2413_device::ym2413_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, YM2413, "YM2413", tag, owner, clock, "ym2413", __FILE__), - device_sound_interface(mconfig, *this) + : device_t(mconfig, YM2413, tag, owner, clock) + , device_sound_interface(mconfig, *this) { } diff --git a/src/devices/sound/ym2413.h b/src/devices/sound/ym2413.h index 21494ed00f5..410ed10fcf9 100644 --- a/src/devices/sound/ym2413.h +++ b/src/devices/sound/ym2413.h @@ -1,13 +1,12 @@ // license:GPL-2.0+ // copyright-holders:Jarek Burczynski,Ernesto Corvi -#pragma once +#ifndef MAME_SOUND_YM2413_H +#define MAME_SOUND_YM2413_H -#ifndef __YM2413_H__ -#define __YM2413_H__ +#pragma once -class ym2413_device : public device_t, - public device_sound_interface +class ym2413_device : public device_t, public device_sound_interface { public: ym2413_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); @@ -17,8 +16,6 @@ public: DECLARE_WRITE8_MEMBER( register_port_w ); DECLARE_WRITE8_MEMBER( data_port_w ); - void _ym2413_update_request(); - protected: // device-level overrides virtual void device_start() override; @@ -185,6 +182,6 @@ private: }; -extern const device_type YM2413; +DECLARE_DEVICE_TYPE(YM2413, ym2413_device) -#endif /*__YM2413_H__*/ +#endif // MAME_SOUND_YM2413_H diff --git a/src/devices/sound/ymdeltat.cpp b/src/devices/sound/ymdeltat.cpp index 835443b67dd..8970228f060 100644 --- a/src/devices/sound/ymdeltat.cpp +++ b/src/devices/sound/ymdeltat.cpp @@ -67,6 +67,8 @@ #include "emu.h" #include "ymdeltat.h" +#define YM_DELTAT_SHIFT (16) + #define YM_DELTAT_DELTA_MAX (24576) #define YM_DELTAT_DELTA_MIN (127) #define YM_DELTAT_DELTA_DEF (127) @@ -78,73 +80,73 @@ /* Forecast to next Forecast (rate = *8) */ /* 1/8 , 3/8 , 5/8 , 7/8 , 9/8 , 11/8 , 13/8 , 15/8 */ -static const int32_t ym_deltat_decode_tableB1[16] = { +static constexpr int32_t ym_deltat_decode_tableB1[16] = { 1, 3, 5, 7, 9, 11, 13, 15, -1, -3, -5, -7, -9, -11, -13, -15, }; /* delta to next delta (rate= *64) */ /* 0.9 , 0.9 , 0.9 , 0.9 , 1.2 , 1.6 , 2.0 , 2.4 */ -static const int32_t ym_deltat_decode_tableB2[16] = { +static constexpr int32_t ym_deltat_decode_tableB2[16] = { 57, 57, 57, 57, 77, 102, 128, 153, 57, 57, 57, 57, 77, 102, 128, 153 }; #if 0 -void YM_DELTAT_BRDY_callback(YM_DELTAT *DELTAT) +void YM_DELTAT::BRDY_callback() { logerror("BRDY_callback reached (flag set) !\n"); /* set BRDY bit in status register */ - if(DELTAT->status_set_handler) - if(DELTAT->status_change_BRDY_bit) - (DELTAT->status_set_handler)(DELTAT->status_change_which_chip, DELTAT->status_change_BRDY_bit); + if(status_set_handler) + if(status_change_BRDY_bit) + (status_set_handler)(status_change_which_chip, status_change_BRDY_bit); } #endif -uint8_t YM_DELTAT_ADPCM_Read(YM_DELTAT *DELTAT) +uint8_t YM_DELTAT::ADPCM_Read() { uint8_t v = 0; /* external memory read */ - if ( (DELTAT->portstate & 0xe0)==0x20 ) + if ( (portstate & 0xe0)==0x20 ) { /* two dummy reads */ - if (DELTAT->memread) + if (memread) { - DELTAT->now_addr = DELTAT->start << 1; - DELTAT->memread--; + now_addr = start << 1; + memread--; return 0; } - if ( DELTAT->now_addr != (DELTAT->end<<1) ) + if ( now_addr != (end<<1) ) { - v = DELTAT->memory[DELTAT->now_addr>>1]; + v = memory[now_addr>>1]; - /*logerror("YM Delta-T memory read $%08x, v=$%02x\n", DELTAT->now_addr >> 1, v);*/ + /*logerror("YM Delta-T memory read $%08x, v=$%02x\n", now_addr >> 1, v);*/ - DELTAT->now_addr+=2; /* two nibbles at a time */ + now_addr+=2; /* two nibbles at a time */ /* reset BRDY bit in status register, which means we are reading the memory now */ - if(DELTAT->status_reset_handler) - if(DELTAT->status_change_BRDY_bit) - (DELTAT->status_reset_handler)(DELTAT->status_change_which_chip, DELTAT->status_change_BRDY_bit); + if(status_reset_handler) + if(status_change_BRDY_bit) + (status_reset_handler)(status_change_which_chip, status_change_BRDY_bit); /* setup a timer that will callback us in 10 master clock cycles for Y8950 * in the callback set the BRDY flag to 1 , which means we have another data ready. * For now, we don't really do this; we simply reset and set the flag in zero time, so that the IRQ will work. */ /* set BRDY bit in status register */ - if(DELTAT->status_set_handler) - if(DELTAT->status_change_BRDY_bit) - (DELTAT->status_set_handler)(DELTAT->status_change_which_chip, DELTAT->status_change_BRDY_bit); + if(status_set_handler) + if(status_change_BRDY_bit) + (status_set_handler)(status_change_which_chip, status_change_BRDY_bit); } else { /* set EOS bit in status register */ - if(DELTAT->status_set_handler) - if(DELTAT->status_change_EOS_bit) - (DELTAT->status_set_handler)(DELTAT->status_change_which_chip, DELTAT->status_change_EOS_bit); + if(status_set_handler) + if(status_change_EOS_bit) + (status_set_handler)(status_change_which_chip, status_change_EOS_bit); } } @@ -153,13 +155,13 @@ uint8_t YM_DELTAT_ADPCM_Read(YM_DELTAT *DELTAT) /* 0-DRAM x1, 1-ROM, 2-DRAM x8, 3-ROM (3 is bad setting - not allowed by the manual) */ -static const uint8_t dram_rightshift[4]={3,0,0,0}; +static constexpr uint8_t dram_rightshift[4]={3,0,0,0}; /* DELTA-T ADPCM write register */ -void YM_DELTAT_ADPCM_Write(YM_DELTAT *DELTAT,int r,int v) +void YM_DELTAT::ADPCM_Write(int r, int v) { if(r>=0x10) return; - DELTAT->reg[r] = v; /* stock data */ + reg[r] = v; /* stock data */ switch( r ) { @@ -198,87 +200,87 @@ value: START, REC, MEMDAT, REPEAT, SPOFF, x,x,RESET meaning: */ /* handle emulation mode */ - if(DELTAT->emulation_mode == YM_DELTAT_EMULATION_MODE_YM2610) + if(emulation_mode == EMULATION_MODE_YM2610) { v |= 0x20; /* YM2610 always uses external memory and doesn't even have memory flag bit. */ } - DELTAT->portstate = v & (0x80|0x40|0x20|0x10|0x01); /* start, rec, memory mode, repeat flag copy, reset(bit0) */ + portstate = v & (0x80|0x40|0x20|0x10|0x01); /* start, rec, memory mode, repeat flag copy, reset(bit0) */ - if( DELTAT->portstate&0x80 )/* START,REC,MEMDATA,REPEAT,SPOFF,--,--,RESET */ + if( portstate&0x80 )/* START,REC,MEMDATA,REPEAT,SPOFF,--,--,RESET */ { /* set PCM BUSY bit */ - DELTAT->PCM_BSY = 1; + PCM_BSY = 1; /* start ADPCM */ - DELTAT->now_step = 0; - DELTAT->acc = 0; - DELTAT->prev_acc = 0; - DELTAT->adpcml = 0; - DELTAT->adpcmd = YM_DELTAT_DELTA_DEF; - DELTAT->now_data = 0; + now_step = 0; + acc = 0; + prev_acc = 0; + adpcml = 0; + adpcmd = YM_DELTAT_DELTA_DEF; + now_data = 0; } - if( DELTAT->portstate&0x20 ) /* do we access external memory? */ + if( portstate&0x20 ) /* do we access external memory? */ { - DELTAT->now_addr = DELTAT->start << 1; - DELTAT->memread = 2; /* two dummy reads needed before accesing external memory via register $08*/ + now_addr = start << 1; + memread = 2; /* two dummy reads needed before accesing external memory via register $08*/ /* if yes, then let's check if ADPCM memory is mapped and big enough */ - if(DELTAT->memory == nullptr) + if(memory == nullptr) { - DELTAT->device->logerror("YM Delta-T ADPCM rom not mapped\n"); - DELTAT->portstate = 0x00; - DELTAT->PCM_BSY = 0; + device->logerror("YM Delta-T ADPCM rom not mapped\n"); + portstate = 0x00; + PCM_BSY = 0; } else { - if( DELTAT->end >= DELTAT->memory_size ) /* Check End in Range */ + if( end >= memory_size ) /* Check End in Range */ { - DELTAT->device->logerror("YM Delta-T ADPCM end out of range: $%08x\n", DELTAT->end); - DELTAT->end = DELTAT->memory_size - 1; + device->logerror("YM Delta-T ADPCM end out of range: $%08x\n", end); + end = memory_size - 1; } - if( DELTAT->start >= DELTAT->memory_size ) /* Check Start in Range */ + if( start >= memory_size ) /* Check Start in Range */ { - DELTAT->device->logerror("YM Delta-T ADPCM start out of range: $%08x\n", DELTAT->start); - DELTAT->portstate = 0x00; - DELTAT->PCM_BSY = 0; + device->logerror("YM Delta-T ADPCM start out of range: $%08x\n", start); + portstate = 0x00; + PCM_BSY = 0; } } } else /* we access CPU memory (ADPCM data register $08) so we only reset now_addr here */ { - DELTAT->now_addr = 0; + now_addr = 0; } - if( DELTAT->portstate&0x01 ) + if( portstate&0x01 ) { - DELTAT->portstate = 0x00; + portstate = 0x00; /* clear PCM BUSY bit (in status register) */ - DELTAT->PCM_BSY = 0; + PCM_BSY = 0; /* set BRDY flag */ - if(DELTAT->status_set_handler) - if(DELTAT->status_change_BRDY_bit) - (DELTAT->status_set_handler)(DELTAT->status_change_which_chip, DELTAT->status_change_BRDY_bit); + if(status_set_handler) + if(status_change_BRDY_bit) + (status_set_handler)(status_change_which_chip, status_change_BRDY_bit); } break; case 0x01: /* L,R,-,-,SAMPLE,DA/AD,RAMTYPE,ROM */ /* handle emulation mode */ - if(DELTAT->emulation_mode == YM_DELTAT_EMULATION_MODE_YM2610) + if(emulation_mode == EMULATION_MODE_YM2610) { v |= 0x01; /* YM2610 always uses ROM as an external memory and doesn't tave ROM/RAM memory flag bit. */ } - DELTAT->pan = &DELTAT->output_pointer[(v>>6)&0x03]; - if ((DELTAT->control2 & 3) != (v & 3)) + pan = &output_pointer[(v>>6)&0x03]; + if ((control2 & 3) != (v & 3)) { /*0-DRAM x1, 1-ROM, 2-DRAM x8, 3-ROM (3 is bad setting - not allowed by the manual) */ - if (DELTAT->DRAMportshift != dram_rightshift[v&3]) + if (DRAMportshift != dram_rightshift[v&3]) { - DELTAT->DRAMportshift = dram_rightshift[v&3]; + DRAMportshift = dram_rightshift[v&3]; /* final shift value depends on chip type and memory type selected: 8 for YM2610 (ROM only), @@ -288,24 +290,24 @@ value: START, REC, MEMDAT, REPEAT, SPOFF, x,x,RESET meaning: */ /* refresh addresses */ - DELTAT->start = (DELTAT->reg[0x3]*0x0100 | DELTAT->reg[0x2]) << (DELTAT->portshift - DELTAT->DRAMportshift); - DELTAT->end = (DELTAT->reg[0x5]*0x0100 | DELTAT->reg[0x4]) << (DELTAT->portshift - DELTAT->DRAMportshift); - DELTAT->end += (1 << (DELTAT->portshift-DELTAT->DRAMportshift) ) - 1; - DELTAT->limit = (DELTAT->reg[0xd]*0x0100 | DELTAT->reg[0xc]) << (DELTAT->portshift - DELTAT->DRAMportshift); + start = (reg[0x3]*0x0100 | reg[0x2]) << (portshift - DRAMportshift); + end = (reg[0x5]*0x0100 | reg[0x4]) << (portshift - DRAMportshift); + end += (1 << (portshift-DRAMportshift) ) - 1; + limit = (reg[0xd]*0x0100 | reg[0xc]) << (portshift - DRAMportshift); } } - DELTAT->control2 = v; + control2 = v; break; case 0x02: /* Start Address L */ case 0x03: /* Start Address H */ - DELTAT->start = (DELTAT->reg[0x3]*0x0100 | DELTAT->reg[0x2]) << (DELTAT->portshift - DELTAT->DRAMportshift); - /*logerror("DELTAT start: 02=%2x 03=%2x addr=%8x\n",DELTAT->reg[0x2], DELTAT->reg[0x3],DELTAT->start );*/ + start = (reg[0x3]*0x0100 | reg[0x2]) << (portshift - DRAMportshift); + /*logerror("DELTAT start: 02=%2x 03=%2x addr=%8x\n",reg[0x2], reg[0x3],start );*/ break; case 0x04: /* Stop Address L */ case 0x05: /* Stop Address H */ - DELTAT->end = (DELTAT->reg[0x5]*0x0100 | DELTAT->reg[0x4]) << (DELTAT->portshift - DELTAT->DRAMportshift); - DELTAT->end += (1 << (DELTAT->portshift-DELTAT->DRAMportshift) ) - 1; - /*logerror("DELTAT end : 04=%2x 05=%2x addr=%8x\n",DELTAT->reg[0x4], DELTAT->reg[0x5],DELTAT->end );*/ + end = (reg[0x5]*0x0100 | reg[0x4]) << (portshift - DRAMportshift); + end += (1 << (portshift-DRAMportshift) ) - 1; + /*logerror("DELTAT end : 04=%2x 05=%2x addr=%8x\n",reg[0x4], reg[0x5],end );*/ break; case 0x06: /* Prescale L (ADPCM and Record frq) */ case 0x07: /* Prescale H */ @@ -326,70 +328,70 @@ value: START, REC, MEMDAT, REPEAT, SPOFF, x,x,RESET meaning: */ /* external memory write */ - if ( (DELTAT->portstate & 0xe0)==0x60 ) + if ( (portstate & 0xe0)==0x60 ) { - if (DELTAT->memread) + if (memread) { - DELTAT->now_addr = DELTAT->start << 1; - DELTAT->memread = 0; + now_addr = start << 1; + memread = 0; } - /*logerror("YM Delta-T memory write $%08x, v=$%02x\n", DELTAT->now_addr >> 1, v);*/ + /*logerror("YM Delta-T memory write $%08x, v=$%02x\n", now_addr >> 1, v);*/ - if ( DELTAT->now_addr != (DELTAT->end<<1) ) + if ( now_addr != (end<<1) ) { - DELTAT->memory[DELTAT->now_addr>>1] = v; - DELTAT->now_addr+=2; /* two nibbles at a time */ + memory[now_addr>>1] = v; + now_addr+=2; /* two nibbles at a time */ /* reset BRDY bit in status register, which means we are processing the write */ - if(DELTAT->status_reset_handler) - if(DELTAT->status_change_BRDY_bit) - (DELTAT->status_reset_handler)(DELTAT->status_change_which_chip, DELTAT->status_change_BRDY_bit); + if(status_reset_handler) + if(status_change_BRDY_bit) + (status_reset_handler)(status_change_which_chip, status_change_BRDY_bit); /* setup a timer that will callback us in 10 master clock cycles for Y8950 * in the callback set the BRDY flag to 1 , which means we have written the data. * For now, we don't really do this; we simply reset and set the flag in zero time, so that the IRQ will work. */ /* set BRDY bit in status register */ - if(DELTAT->status_set_handler) - if(DELTAT->status_change_BRDY_bit) - (DELTAT->status_set_handler)(DELTAT->status_change_which_chip, DELTAT->status_change_BRDY_bit); + if(status_set_handler) + if(status_change_BRDY_bit) + (status_set_handler)(status_change_which_chip, status_change_BRDY_bit); } else { /* set EOS bit in status register */ - if(DELTAT->status_set_handler) - if(DELTAT->status_change_EOS_bit) - (DELTAT->status_set_handler)(DELTAT->status_change_which_chip, DELTAT->status_change_EOS_bit); + if(status_set_handler) + if(status_change_EOS_bit) + (status_set_handler)(status_change_which_chip, status_change_EOS_bit); } return; } /* ADPCM synthesis from CPU */ - if ( (DELTAT->portstate & 0xe0)==0x80 ) + if ( (portstate & 0xe0)==0x80 ) { - DELTAT->CPU_data = v; + CPU_data = v; /* Reset BRDY bit in status register, which means we are full of data */ - if(DELTAT->status_reset_handler) - if(DELTAT->status_change_BRDY_bit) - (DELTAT->status_reset_handler)(DELTAT->status_change_which_chip, DELTAT->status_change_BRDY_bit); + if(status_reset_handler) + if(status_change_BRDY_bit) + (status_reset_handler)(status_change_which_chip, status_change_BRDY_bit); return; } break; case 0x09: /* DELTA-N L (ADPCM Playback Prescaler) */ case 0x0a: /* DELTA-N H */ - DELTAT->delta = (DELTAT->reg[0xa]*0x0100 | DELTAT->reg[0x9]); - DELTAT->step = (uint32_t)( (double)(DELTAT->delta /* *(1<<(YM_DELTAT_SHIFT-16)) */ ) * (DELTAT->freqbase) ); - /*logerror("DELTAT deltan:09=%2x 0a=%2x\n",DELTAT->reg[0x9], DELTAT->reg[0xa]);*/ + delta = (reg[0xa]*0x0100 | reg[0x9]); + step = uint32_t( double(delta /* *(1<<(YM_DELTAT_SHIFT-16)) */ ) * (freqbase) ); + /*logerror("DELTAT deltan:09=%2x 0a=%2x\n",reg[0x9], reg[0xa]);*/ break; case 0x0b: /* Output level control (volume, linear) */ { - int32_t oldvol = DELTAT->volume; - DELTAT->volume = (v&0xff) * (DELTAT->output_range/256) / YM_DELTAT_DECODE_RANGE; + const int32_t oldvol = volume; + volume = (v&0xff) * (output_range/256) / YM_DELTAT_DECODE_RANGE; /* v * ((1<<16)>>8) >> 15; * thus: v * (1<<8) >> 15; * thus: output_range must be (1 << (15+8)) at least @@ -399,66 +401,65 @@ value: START, REC, MEMDAT, REPEAT, SPOFF, x,x,RESET meaning: /*logerror("DELTAT vol = %2x\n",v&0xff);*/ if( oldvol != 0 ) { - DELTAT->adpcml = (int)((double)DELTAT->adpcml / (double)oldvol * (double)DELTAT->volume); + adpcml = int(double(adpcml) / double(oldvol) * double(volume)); } } break; case 0x0c: /* Limit Address L */ case 0x0d: /* Limit Address H */ - DELTAT->limit = (DELTAT->reg[0xd]*0x0100 | DELTAT->reg[0xc]) << (DELTAT->portshift - DELTAT->DRAMportshift); - /*logerror("DELTAT limit: 0c=%2x 0d=%2x addr=%8x\n",DELTAT->reg[0xc], DELTAT->reg[0xd],DELTAT->limit );*/ + limit = (reg[0xd]*0x0100 | reg[0xc]) << (portshift - DRAMportshift); + /*logerror("DELTAT limit: 0c=%2x 0d=%2x addr=%8x\n",reg[0xc], reg[0xd],limit );*/ break; } } -void YM_DELTAT_ADPCM_Reset(YM_DELTAT *DELTAT,int pan,int emulation_mode,device_t *device) +void YM_DELTAT::ADPCM_Reset(int panidx, int emulation_mode, device_t *dev) { - DELTAT->device = device; - DELTAT->now_addr = 0; - DELTAT->now_step = 0; - DELTAT->step = 0; - DELTAT->start = 0; - DELTAT->end = 0; - DELTAT->limit = ~0; /* this way YM2610 and Y8950 (both of which don't have limit address reg) will still work */ - DELTAT->volume = 0; - DELTAT->pan = &DELTAT->output_pointer[pan]; - DELTAT->acc = 0; - DELTAT->prev_acc = 0; - DELTAT->adpcmd = 127; - DELTAT->adpcml = 0; - DELTAT->emulation_mode = (uint8_t)emulation_mode; - DELTAT->portstate = (emulation_mode == YM_DELTAT_EMULATION_MODE_YM2610) ? 0x20 : 0; - DELTAT->control2 = (emulation_mode == YM_DELTAT_EMULATION_MODE_YM2610) ? 0x01 : 0; /* default setting depends on the emulation mode. MSX demo called "facdemo_4" doesn't setup control2 register at all and still works */ - DELTAT->DRAMportshift = dram_rightshift[DELTAT->control2 & 3]; + device = dev; + now_addr = 0; + now_step = 0; + step = 0; + start = 0; + end = 0; + limit = ~0; /* this way YM2610 and Y8950 (both of which don't have limit address reg) will still work */ + volume = 0; + pan = &output_pointer[panidx]; + acc = 0; + prev_acc = 0; + adpcmd = 127; + adpcml = 0; + emulation_mode = (uint8_t)emulation_mode; + portstate = (emulation_mode == EMULATION_MODE_YM2610) ? 0x20 : 0; + control2 = (emulation_mode == EMULATION_MODE_YM2610) ? 0x01 : 0; /* default setting depends on the emulation mode. MSX demo called "facdemo_4" doesn't setup control2 register at all and still works */ + DRAMportshift = dram_rightshift[control2 & 3]; /* The flag mask register disables the BRDY after the reset, however ** as soon as the mask is enabled the flag needs to be set. */ /* set BRDY bit in status register */ - if(DELTAT->status_set_handler) - if(DELTAT->status_change_BRDY_bit) - (DELTAT->status_set_handler)(DELTAT->status_change_which_chip, DELTAT->status_change_BRDY_bit); + if(status_set_handler) + if(status_change_BRDY_bit) + (status_set_handler)(status_change_which_chip, status_change_BRDY_bit); } -void YM_DELTAT_postload(YM_DELTAT *DELTAT,uint8_t *regs) +void YM_DELTAT::postload(uint8_t *regs) { - int r; - /* to keep adpcml */ - DELTAT->volume = 0; + volume = 0; /* update */ - for(r=1;r<16;r++) - YM_DELTAT_ADPCM_Write(DELTAT,r,regs[r]); - DELTAT->reg[0] = regs[0]; + for(int r=1;r<16;r++) + ADPCM_Write(r,regs[r]); + reg[0] = regs[0]; /* current rom data */ - if (DELTAT->memory) - DELTAT->now_data = *(DELTAT->memory + (DELTAT->now_addr>>1) ); + if (memory) + now_data = *(memory + (now_addr>>1)); } -void YM_DELTAT_savestate(device_t *device,YM_DELTAT *DELTAT) +void YM_DELTAT::savestate(device_t *device) { #ifdef MAME_EMU_SAVE_H + YM_DELTAT *const DELTAT = this; // makes the save name sensible device->save_item(NAME(DELTAT->portstate)); device->save_item(NAME(DELTAT->now_addr)); device->save_item(NAME(DELTAT->now_step)); @@ -615,7 +616,7 @@ static inline void YM_DELTAT_synthesis_from_CPU_memory(YM_DELTAT *DELTAT) /* ADPCM B (Delta-T control type) */ -void YM_DELTAT_ADPCM_CALC(YM_DELTAT *DELTAT) +void YM_DELTAT::ADPCM_CALC() { /* some examples: @@ -630,22 +631,22 @@ value: START, REC, MEMDAT, REPEAT, SPOFF, x,x,RESET meaning: */ - if ( (DELTAT->portstate & 0xe0)==0xa0 ) + if ( (portstate & 0xe0)==0xa0 ) { - YM_DELTAT_synthesis_from_external_memory(DELTAT); + YM_DELTAT_synthesis_from_external_memory(this); return; } - if ( (DELTAT->portstate & 0xe0)==0x80 ) + if ( (portstate & 0xe0)==0x80 ) { /* ADPCM synthesis from CPU-managed memory (from reg $08) */ - YM_DELTAT_synthesis_from_CPU_memory(DELTAT); /* change output based on data in ADPCM data reg ($08) */ + YM_DELTAT_synthesis_from_CPU_memory(this); /* change output based on data in ADPCM data reg ($08) */ return; } //todo: ADPCM analysis -// if ( (DELTAT->portstate & 0xe0)==0xc0 ) -// if ( (DELTAT->portstate & 0xe0)==0xe0 ) +// if ( (portstate & 0xe0)==0xc0 ) +// if ( (portstate & 0xe0)==0xe0 ) return; } diff --git a/src/devices/sound/ymdeltat.h b/src/devices/sound/ymdeltat.h index 364ef4d4fe6..be5926d2107 100644 --- a/src/devices/sound/ymdeltat.h +++ b/src/devices/sound/ymdeltat.h @@ -1,21 +1,19 @@ // license:GPL-2.0+ // copyright-holders:Jarek Burczynski -#pragma once - -#ifndef __YMDELTAT_H__ -#define __YMDELTAT_H__ +#ifndef MAME_SOUND_YMDELTAT_H +#define MAME_SOUND_YMDELTAT_H -#define YM_DELTAT_SHIFT (16) - -#define YM_DELTAT_EMULATION_MODE_NORMAL 0 -#define YM_DELTAT_EMULATION_MODE_YM2610 1 +#pragma once typedef void (*STATUS_CHANGE_HANDLER)(void *chip, uint8_t status_bits); /* DELTA-T (adpcm type B) struct */ -struct YM_DELTAT { /* AT: rearranged and tightened structure */ +struct YM_DELTAT { /* AT: rearranged and tightened structure */ + static constexpr int EMULATION_MODE_NORMAL = 0; + static constexpr int EMULATION_MODE_YM2610 = 1; + uint8_t *memory; int32_t *output_pointer;/* pointer of output pointers */ int32_t *pan; /* pan : &output_pointer[pan] */ @@ -72,16 +70,16 @@ struct YM_DELTAT { /* AT: rearranged and tightened structure */ uint8_t reg[16]; /* adpcm registers */ uint8_t emulation_mode; /* which chip we're emulating */ device_t *device; -}; -/*void YM_DELTAT_BRDY_callback(YM_DELTAT *DELTAT);*/ + /*void BRDY_callback();*/ -uint8_t YM_DELTAT_ADPCM_Read(YM_DELTAT *DELTAT); -void YM_DELTAT_ADPCM_Write(YM_DELTAT *DELTAT,int r,int v); -void YM_DELTAT_ADPCM_Reset(YM_DELTAT *DELTAT,int pan,int emulation_mode, device_t *device); -void YM_DELTAT_ADPCM_CALC(YM_DELTAT *DELTAT); + uint8_t ADPCM_Read(); + void ADPCM_Write(int r, int v); + void ADPCM_Reset(int panidx, int emulation_mode, device_t *dev); + void ADPCM_CALC(); -void YM_DELTAT_postload(YM_DELTAT *DELTAT,uint8_t *regs); -void YM_DELTAT_savestate(device_t *device,YM_DELTAT *DELTAT); + void postload(uint8_t *regs); + void savestate(device_t *device); +}; -#endif /* __YMDELTAT_H__ */ +#endif // MAME_SOUND_YMDELTAT_H diff --git a/src/devices/sound/ymf262.cpp b/src/devices/sound/ymf262.cpp index 68d4e352f3b..f69c15da9d4 100644 --- a/src/devices/sound/ymf262.cpp +++ b/src/devices/sound/ymf262.cpp @@ -113,6 +113,8 @@ differences between OPL2 and OPL3 shown in datasheets: #define CONN_PHASEMOD 19 #define CONN_PHASEMOD2 20 +namespace { + /* save output as raw 16-bit sample */ /*#define SAVE_SAMPLE*/ @@ -188,8 +190,8 @@ struct OPL3_SLOT uint8_t waveform_number; unsigned int wavetable; -//unsigned char reserved[128-84];//speedup: pump up the struct size to power of 2 -unsigned char reserved[128-100];//speedup: pump up the struct size to power of 2 + //unsigned char reserved[128-84];//speedup: pump up the struct size to power of 2 + unsigned char reserved[128-100];//speedup: pump up the struct size to power of 2 }; @@ -214,7 +216,7 @@ struct OPL3_CH */ uint8_t extended; /* set to 1 if this channel forms up a 4op channel with another channel(only used by first of pair of channels, ie 0,1,2 and 9,10,11) */ -unsigned char reserved[512-272];//speedup:pump up the struct size to power of 2 + unsigned char reserved[512-272];//speedup:pump up the struct size to power of 2 }; @@ -266,12 +268,12 @@ struct OPL3 uint8_t nts; /* NTS (note select) */ /* external event callback handlers */ - OPL3_TIMERHANDLER timer_handler;/* TIMER handler */ - void *TimerParam; /* TIMER parameter */ - OPL3_IRQHANDLER IRQHandler; /* IRQ handler */ - void *IRQParam; /* IRQ parameter */ - OPL3_UPDATEHANDLER UpdateHandler;/* stream update handler */ - void *UpdateParam; /* stream update parameter */ + OPL3_TIMERHANDLER timer_handler; + device_t *TimerParam; + OPL3_IRQHANDLER IRQHandler; + device_t *IRQParam; + OPL3_UPDATEHANDLER UpdateHandler; + device_t *UpdateParam; uint8_t type; /* chip type */ int clock; /* master clock (Hz) */ @@ -279,8 +281,27 @@ struct OPL3 double freqbase; /* frequency base */ attotime TimerBase; /* Timer base time (==sampling time)*/ device_t *device; + + /* Optional handlers */ + void SetTimerHandler(OPL3_TIMERHANDLER handler, device_t *device) + { + timer_handler = handler; + TimerParam = device; + } + void SetIRQHandler(OPL3_IRQHANDLER handler, device_t *device) + { + IRQHandler = handler; + IRQParam = device; + } + void SetUpdateHandler(OPL3_UPDATEHANDLER handler, device_t *device) + { + UpdateHandler = handler; + UpdateParam = device; + } }; +} // anonymous namespace + /* mapping of register number (offset) to slot number used by the emulator */ @@ -2358,24 +2379,6 @@ static void OPL3Destroy(OPL3 *chip) } -/* Optional handlers */ - -static void OPL3SetTimerHandler(OPL3 *chip,OPL3_TIMERHANDLER timer_handler,void *param) -{ - chip->timer_handler = timer_handler; - chip->TimerParam = param; -} -static void OPL3SetIRQHandler(OPL3 *chip,OPL3_IRQHANDLER IRQHandler,void *param) -{ - chip->IRQHandler = IRQHandler; - chip->IRQParam = param; -} -static void OPL3SetUpdateHandler(OPL3 *chip,OPL3_UPDATEHANDLER UpdateHandler,void *param) -{ - chip->UpdateHandler = UpdateHandler; - chip->UpdateParam = param; -} - /* YMF262 I/O interface */ static int OPL3Write(OPL3 *chip, int a, int v) { @@ -2569,17 +2572,17 @@ int ymf262_timer_over(void *chip, int c) return OPL3TimerOver((OPL3 *)chip, c); } -void ymf262_set_timer_handler(void *chip, OPL3_TIMERHANDLER timer_handler, void *param) +void ymf262_set_timer_handler(void *chip, OPL3_TIMERHANDLER timer_handler, device_t *device) { - OPL3SetTimerHandler((OPL3 *)chip, timer_handler, param); + reinterpret_cast(chip)->SetTimerHandler(timer_handler, device); } -void ymf262_set_irq_handler(void *chip,OPL3_IRQHANDLER IRQHandler,void *param) +void ymf262_set_irq_handler(void *chip, OPL3_IRQHANDLER IRQHandler, device_t *device) { - OPL3SetIRQHandler((OPL3 *)chip, IRQHandler, param); + reinterpret_cast(chip)->SetIRQHandler(IRQHandler, device); } -void ymf262_set_update_handler(void *chip,OPL3_UPDATEHANDLER UpdateHandler,void *param) +void ymf262_set_update_handler(void *chip, OPL3_UPDATEHANDLER UpdateHandler, device_t *device) { - OPL3SetUpdateHandler((OPL3 *)chip, UpdateHandler, param); + reinterpret_cast(chip)->SetUpdateHandler(UpdateHandler, device); } diff --git a/src/devices/sound/ymf262.h b/src/devices/sound/ymf262.h index ce357181999..b82a89b9724 100644 --- a/src/devices/sound/ymf262.h +++ b/src/devices/sound/ymf262.h @@ -1,24 +1,13 @@ // license:GPL-2.0+ // copyright-holders:Jarek Burczynski -#pragma once +#ifndef MAME_SOUND_YMF262_H +#define MAME_SOUND_YMF262_H -#ifndef __YMF262_H__ -#define __YMF262_H__ +#pragma once /* select number of output bits: 8 or 16 */ #define OPL3_SAMPLE_BITS 16 -/* compiler dependence */ -#ifndef __OSDCOMM_H__ -#define __OSDCOMM_H__ -typedef unsigned char uint8_t; /* unsigned 8bit */ -typedef unsigned short uint16_t; /* unsigned 16bit */ -typedef unsigned int uint32_t; /* unsigned 32bit */ -typedef signed char int8_t; /* signed 8bit */ -typedef signed short int16_t; /* signed 16bit */ -typedef signed int int32_t; /* signed 32bit */ -#endif - typedef stream_sample_t OPL3SAMPLE; /* #if (OPL3_SAMPLE_BITS==16) @@ -29,9 +18,9 @@ typedef int8_t OPL3SAMPLE; #endif */ -typedef void (*OPL3_TIMERHANDLER)(void *param,int timer,const attotime &period); -typedef void (*OPL3_IRQHANDLER)(void *param,int irq); -typedef void (*OPL3_UPDATEHANDLER)(void *param,int min_interval_us); +typedef void (*OPL3_TIMERHANDLER)(device_t *device,int timer,const attotime &period); +typedef void (*OPL3_IRQHANDLER)(device_t *device,int irq); +typedef void (*OPL3_UPDATEHANDLER)(device_t *device,int min_interval_us); void *ymf262_init(device_t *device, int clock, int rate); @@ -43,9 +32,9 @@ unsigned char ymf262_read(void *chip, int a); int ymf262_timer_over(void *chip, int c); void ymf262_update_one(void *chip, OPL3SAMPLE **buffers, int length); -void ymf262_set_timer_handler(void *chip, OPL3_TIMERHANDLER TimerHandler, void *param); -void ymf262_set_irq_handler(void *chip, OPL3_IRQHANDLER IRQHandler, void *param); -void ymf262_set_update_handler(void *chip, OPL3_UPDATEHANDLER UpdateHandler, void *param); +void ymf262_set_timer_handler(void *chip, OPL3_TIMERHANDLER TimerHandler, device_t *device); +void ymf262_set_irq_handler(void *chip, OPL3_IRQHANDLER IRQHandler, device_t *device); +void ymf262_set_update_handler(void *chip, OPL3_UPDATEHANDLER UpdateHandler, device_t *device); -#endif /* __YMF262_H__ */ +#endif // MAME_SOUND_YMF262_H diff --git a/src/devices/sound/ymf271.cpp b/src/devices/sound/ymf271.cpp index 74ac30f0ca6..aeae81a9f49 100644 --- a/src/devices/sound/ymf271.cpp +++ b/src/devices/sound/ymf271.cpp @@ -1744,10 +1744,10 @@ void ymf271_device::device_reset() m_irq_handler(0); } -const device_type YMF271 = device_creator; +DEFINE_DEVICE_TYPE(YMF271, ymf271_device, "ymf271", "Yamaha YMF271") ymf271_device::ymf271_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, YMF271, "YMF271", tag, owner, clock, "ymf271", __FILE__) + : device_t(mconfig, YMF271, tag, owner, clock) , device_sound_interface(mconfig, *this) , m_timerA(0) , m_timerB(0) diff --git a/src/devices/sound/ymf271.h b/src/devices/sound/ymf271.h index 5c8598b54e6..aab5763f597 100644 --- a/src/devices/sound/ymf271.h +++ b/src/devices/sound/ymf271.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Olivier Galibert, R. Belmont, hap -#pragma once +#ifndef MAME_SOUND_YMF271_H +#define MAME_SOUND_YMF271_H -#ifndef __YMF271_H__ -#define __YMF271_H__ +#pragma once #define MCFG_YMF271_IRQ_HANDLER(_devcb) \ @@ -21,9 +21,9 @@ public: ymf271_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // static configuration helpers - template static devcb_base &set_irq_handler(device_t &device, _Object object) { return downcast(device).m_irq_handler.set_callback(object); } - template static devcb_base &set_ext_read_handler(device_t &device, _Object object) { return downcast(device).m_ext_read_handler.set_callback(object); } - template static devcb_base &set_ext_write_handler(device_t &device, _Object object) { return downcast(device).m_ext_write_handler.set_callback(object); } + template static devcb_base &set_irq_handler(device_t &device, Object &&cb) { return downcast(device).m_irq_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_ext_read_handler(device_t &device, Object &&cb) { return downcast(device).m_ext_read_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_ext_write_handler(device_t &device, Object &&cb) { return downcast(device).m_ext_write_handler.set_callback(std::forward(cb)); } DECLARE_READ8_MEMBER( read ); DECLARE_WRITE8_MEMBER( write ); @@ -36,6 +36,7 @@ protected: // sound stream update overrides virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; + private: struct YMF271Slot { @@ -158,7 +159,6 @@ private: devcb_write8 m_ext_write_handler; }; -extern const device_type YMF271; - +DECLARE_DEVICE_TYPE(YMF271, ymf271_device) -#endif /* __YMF271_H__ */ +#endif // MAME_SOUND_YMF271_H diff --git a/src/devices/sound/ymf278b.cpp b/src/devices/sound/ymf278b.cpp index a57f006d06c..ab76ffa4a90 100644 --- a/src/devices/sound/ymf278b.cpp +++ b/src/devices/sound/ymf278b.cpp @@ -942,28 +942,6 @@ void ymf278b_device::register_save_state() // device_start - device-specific startup //------------------------------------------------- -static void ymf278b_ymf262_irq_handler(void *param,int irq) -{ -} - - -static void ymf278b_ymf262_timer_handler(void *param, int c, const attotime &period) -{ -} - -static void ymf278b_ymf262_update_request(void *param, int interval) -{ - ymf278b_device *ymf278b = (ymf278b_device *) param; - ymf278b->ymf262_update_request(); -} - - -void ymf278b_device::ymf262_update_request() -{ - m_stream_ymf262->update(); -} - - void ymf278b_device::device_start() { int i; @@ -1019,19 +997,19 @@ void ymf278b_device::device_start() m_stream_ymf262 = machine().sound().stream_alloc(*this, 0, 4, ymf262_clock / 288); /* YMF262 setup */ - ymf262_set_timer_handler (m_ymf262, ymf278b_ymf262_timer_handler, this); - ymf262_set_irq_handler (m_ymf262, ymf278b_ymf262_irq_handler, this); - ymf262_set_update_handler(m_ymf262, ymf278b_ymf262_update_request, this); + ymf262_set_timer_handler (m_ymf262, ymf278b_device::static_timer_handler, this); + ymf262_set_irq_handler (m_ymf262, ymf278b_device::static_irq_handler, this); + ymf262_set_update_handler(m_ymf262, ymf278b_device::static_update_request, this); } -const device_type YMF278B = device_creator; +DEFINE_DEVICE_TYPE(YMF278B, ymf278b_device, "ymf278b", "Yamaha YMF278B OPL4") ymf278b_device::ymf278b_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, YMF278B, "YMF278B", tag, owner, clock, "ymf278b", __FILE__), - device_sound_interface(mconfig, *this), - device_rom_interface(mconfig, *this, 22), - m_irq_handler(*this), - m_last_fm_data(0) + : device_t(mconfig, YMF278B, tag, owner, clock) + , device_sound_interface(mconfig, *this) + , device_rom_interface(mconfig, *this, 22) + , m_irq_handler(*this) + , m_last_fm_data(0) { } diff --git a/src/devices/sound/ymf278b.h b/src/devices/sound/ymf278b.h index 1d1388630e8..545ac90dad8 100644 --- a/src/devices/sound/ymf278b.h +++ b/src/devices/sound/ymf278b.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:R. Belmont, Olivier Galibert, hap -#pragma once +#ifndef MAME_SOUND_YMF278B_H +#define MAME_SOUND_YMF278B_H -#ifndef __YMF278B_H__ -#define __YMF278B_H__ +#pragma once #define YMF278B_STD_CLOCK (33868800) /* standard clock for OPL4 */ @@ -11,21 +11,17 @@ #define MCFG_YMF278B_IRQ_HANDLER(_devcb) \ devcb = &ymf278b_device::set_irq_handler(*device, DEVCB_##_devcb); -class ymf278b_device : public device_t, - public device_sound_interface, - public device_rom_interface +class ymf278b_device : public device_t, public device_sound_interface, public device_rom_interface { public: ymf278b_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // static configuration helpers - template static devcb_base &set_irq_handler(device_t &device, _Object object) { return downcast(device).m_irq_handler.set_callback(object); } + template static devcb_base &set_irq_handler(device_t &device, Object &&cb) { return downcast(device).m_irq_handler.set_callback(std::forward(cb)); } DECLARE_READ8_MEMBER( read ); DECLARE_WRITE8_MEMBER( write ); - void ymf262_update_request(); - protected: // device-level overrides virtual void device_start() override; @@ -95,6 +91,12 @@ private: void precompute_rate_tables(); void register_save_state(); + void update_request() { m_stream_ymf262->update(); } + + static void static_irq_handler(device_t *param, int irq) { } + static void static_timer_handler(device_t *param, int c, const attotime &period) { } + static void static_update_request(device_t *param, int interval) { downcast(param)->update_request(); } + // internal state uint8_t m_pcmregs[256]; YMF278BSlot m_slots[24]; @@ -137,7 +139,6 @@ private: sound_stream * m_stream_ymf262; }; -extern const device_type YMF278B; - +DECLARE_DEVICE_TYPE(YMF278B, ymf278b_device) -#endif /* __YMF278B_H__ */ +#endif // MAME_SOUND_YMF278B_H diff --git a/src/devices/sound/ymz280b.cpp b/src/devices/sound/ymz280b.cpp index 40e9578557f..5bbbc07205b 100644 --- a/src/devices/sound/ymz280b.cpp +++ b/src/devices/sound/ymz280b.cpp @@ -33,6 +33,10 @@ #include "emu.h" #include "ymz280b.h" +#if YMZ280B_MAKE_WAVS +#include "sound/wavwrite.h" +#endif + #define MAX_SAMPLE_CHUNK 10000 @@ -43,14 +47,10 @@ #define INTERNAL_BUFFER_SIZE (1 << 15) #define INTERNAL_SAMPLE_RATE (m_master_clock * 2.0) -#if MAKE_WAVS -#include "sound/wavwrite.h" -#endif - /* step size index shift table */ -static const int index_scale[8] = { 0x0e6, 0x0e6, 0x0e6, 0x0e6, 0x133, 0x199, 0x200, 0x266 }; +static constexpr int index_scale[8] = { 0x0e6, 0x0e6, 0x0e6, 0x0e6, 0x133, 0x199, 0x200, 0x266 }; /* lookup table for the precomputed difference */ static int diff_lookup[16]; @@ -166,7 +166,7 @@ void ymz280b_device::update_irq_state_timer_common(int voicenum) ***********************************************************************************************/ -static void compute_tables(void) +static void compute_tables() { /* loop over all nibbles and compute the difference */ for (int nib = 0; nib < 16; nib++) @@ -643,7 +643,7 @@ void ymz280b_device::device_start() save_item(NAME(m_voice[j].irq_schedule), j); } -#if MAKE_WAVS +#if YMZ280B_MAKE_WAVS m_wavresample = wav_open("resamp.wav", INTERNAL_SAMPLE_RATE, 2); #endif } @@ -940,25 +940,25 @@ WRITE8_MEMBER( ymz280b_device::write ) } -const device_type YMZ280B = device_creator; +DEFINE_DEVICE_TYPE(YMZ280B, ymz280b_device, "ymz280b", "Yamaha YMZ280B PCMD8") ymz280b_device::ymz280b_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, YMZ280B, "YMZ280B", tag, owner, clock, "ymz280b", __FILE__), - device_sound_interface(mconfig, *this), - m_current_register(0), - m_status_register(0), - m_irq_state(0), - m_irq_mask(0), - m_irq_enable(0), - m_keyon_enable(0), - m_ext_mem_enable(0), - m_ext_readlatch(0), - m_ext_mem_address_hi(0), - m_ext_mem_address_mid(0), - m_ext_mem_address(0), - m_irq_handler(*this), - m_ext_read_handler(*this), - m_ext_write_handler(*this) + : device_t(mconfig, YMZ280B, tag, owner, clock) + , device_sound_interface(mconfig, *this) + , m_current_register(0) + , m_status_register(0) + , m_irq_state(0) + , m_irq_mask(0) + , m_irq_enable(0) + , m_keyon_enable(0) + , m_ext_mem_enable(0) + , m_ext_readlatch(0) + , m_ext_mem_address_hi(0) + , m_ext_mem_address_mid(0) + , m_ext_mem_address(0) + , m_irq_handler(*this) + , m_ext_read_handler(*this) + , m_ext_write_handler(*this) { memset(m_voice, 0, sizeof(m_voice)); } diff --git a/src/devices/sound/ymz280b.h b/src/devices/sound/ymz280b.h index 267a9b570b6..7891fd21807 100644 --- a/src/devices/sound/ymz280b.h +++ b/src/devices/sound/ymz280b.h @@ -7,13 +7,13 @@ * **********************************************************************************************/ -#pragma once +#ifndef MAME_SOUND_YMZ280B_H +#define MAME_SOUND_YMZ280B_H -#ifndef __YMZ280B_H__ -#define __YMZ280B_H__ +#pragma once -#define MAKE_WAVS 0 +#define YMZ280B_MAKE_WAVS 0 #define MCFG_YMZ280B_IRQ_HANDLER(_devcb) \ devcb = &ymz280b_device::set_irq_handler(*device, DEVCB_##_devcb); @@ -24,16 +24,15 @@ #define MCFG_YMZ280B_EXT_WRITE_HANDLER(_devcb) \ devcb = &ymz280b_device::set_ext_write_handler(*device, DEVCB_##_devcb); -class ymz280b_device : public device_t, - public device_sound_interface +class ymz280b_device : public device_t, public device_sound_interface { public: ymz280b_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // static configuration helpers - template static devcb_base &set_irq_handler(device_t &device, _Object object) { return downcast(device).m_irq_handler.set_callback(object); } - template static devcb_base &set_ext_read_handler(device_t &device, _Object object) { return downcast(device).m_ext_read_handler.set_callback(object); } - template static devcb_base &set_ext_write_handler(device_t &device, _Object object) { return downcast(device).m_ext_write_handler.set_callback(object); } + template static devcb_base &set_irq_handler(device_t &device, Object &&cb) { return downcast(device).m_irq_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_ext_read_handler(device_t &device, Object &&cb) { return downcast(device).m_ext_read_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_ext_write_handler(device_t &device, Object &&cb) { return downcast(device).m_ext_write_handler.set_callback(std::forward(cb)); } DECLARE_READ8_MEMBER( read ); DECLARE_WRITE8_MEMBER( write ); @@ -47,8 +46,8 @@ protected: // sound stream update overrides virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; -private: +private: /* struct describing a single playing ADPCM voice */ struct YMZ280BVoice { @@ -120,12 +119,11 @@ private: uint32_t m_mem_size; sound_stream *m_stream; /* which stream are we using */ std::unique_ptr m_scratch; -#if MAKE_WAVS +#if YMZ280B_MAKE_WAVS void *m_wavresample; /* resampled waveform */ #endif }; -extern const device_type YMZ280B; - +DECLARE_DEVICE_TYPE(YMZ280B, ymz280b_device) -#endif /* __YMZ280B_H__ */ +#endif // MAME_SOUND_YMZ280B_H diff --git a/src/devices/sound/ymz770.cpp b/src/devices/sound/ymz770.cpp index 5bdb7e9a89d..11b30d08eb1 100644 --- a/src/devices/sound/ymz770.cpp +++ b/src/devices/sound/ymz770.cpp @@ -24,22 +24,23 @@ TODO: #include "mpeg_audio.h" // device type definition -const device_type YMZ770 = device_creator; +DEFINE_DEVICE_TYPE(YMZ770, ymz770_device, "ymz770", "Yamaha YMZ770 AMMS-A") //------------------------------------------------- // ymz770_device - constructor //------------------------------------------------- ymz770_device::ymz770_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, YMZ770, "Yamaha YMZ770", tag, owner, clock, "ymz770", __FILE__), - device_sound_interface(mconfig, *this), m_stream(nullptr), - m_cur_reg(0), - m_mute(0), - m_doen(0), - m_vlma(0), - m_bsl(0), - m_cpl(0), - m_rom(*this, DEVICE_SELF) + : device_t(mconfig, YMZ770, tag, owner, clock) + , device_sound_interface(mconfig, *this) + , m_stream(nullptr) + , m_cur_reg(0) + , m_mute(0) + , m_doen(0) + , m_vlma(0) + , m_bsl(0) + , m_cpl(0) + , m_rom(*this, DEVICE_SELF) { } diff --git a/src/devices/sound/ymz770.h b/src/devices/sound/ymz770.h index 3fdc104dc2c..b7f047dc4b4 100644 --- a/src/devices/sound/ymz770.h +++ b/src/devices/sound/ymz770.h @@ -6,10 +6,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_SOUND_YMZ770_H +#define MAME_SOUND_YMZ770_H -#ifndef __YMZ770_H__ -#define __YMZ770_H__ +#pragma once //************************************************************************** // CONSTANTS @@ -36,41 +36,13 @@ class mpeg_audio; class ymz770_device : public device_t, public device_sound_interface { - struct ymz_channel - { - uint8_t phrase; - uint8_t pan; - uint8_t volume; - uint8_t control; - - bool is_playing, last_block; - - mpeg_audio *decoder; - - int16_t output_data[0x1000]; - int output_remaining; - int output_ptr; - int atbl; - int pptr; - - uint8_t sequence; - uint8_t seqcontrol; - uint8_t seqdelay; - uint8_t *seqdata; - bool is_seq_playing; - }; - - public: // construction/destruction ymz770_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); DECLARE_WRITE8_MEMBER(write); - sound_stream *m_stream; - protected: - // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -79,6 +51,8 @@ protected: void internal_reg_write(uint8_t reg, uint8_t data); + sound_stream *m_stream; + // data uint8_t m_cur_reg; uint8_t m_mute; // mute chip @@ -88,11 +62,36 @@ protected: uint8_t m_cpl; // clip limiter required_region_ptr m_rom; +private: + struct ymz_channel + { + uint8_t phrase; + uint8_t pan; + uint8_t volume; + uint8_t control; + + bool is_playing, last_block; + + mpeg_audio *decoder; + + int16_t output_data[0x1000]; + int output_remaining; + int output_ptr; + int atbl; + int pptr; + + uint8_t sequence; + uint8_t seqcontrol; + uint8_t seqdelay; + uint8_t *seqdata; + bool is_seq_playing; + }; + ymz_channel m_channels[8]; }; // device type definition -extern const device_type YMZ770; +DECLARE_DEVICE_TYPE(YMZ770, ymz770_device) -#endif /* __ymz770_H__ */ +#endif // MAME_SOUND_YMZ770_H diff --git a/src/devices/sound/zsg2.cpp b/src/devices/sound/zsg2.cpp index 9cef9c598b3..6300f02b84e 100644 --- a/src/devices/sound/zsg2.cpp +++ b/src/devices/sound/zsg2.cpp @@ -59,18 +59,18 @@ TODO: // device type definition -const device_type ZSG2 = device_creator; +DEFINE_DEVICE_TYPE(ZSG2, zsg2_device, "zsg2", "ZOOM ZSG-2") //------------------------------------------------- // zsg2_device - constructor //------------------------------------------------- zsg2_device::zsg2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, ZSG2, "ZSG-2", tag, owner, clock, "zsg2", __FILE__), - device_sound_interface(mconfig, *this), - m_mem_base(*this, DEVICE_SELF), - m_read_address(0), - m_ext_read_handler(*this) + : device_t(mconfig, ZSG2, tag, owner, clock) + , device_sound_interface(mconfig, *this) + , m_mem_base(*this, DEVICE_SELF) + , m_read_address(0) + , m_ext_read_handler(*this) { } diff --git a/src/devices/sound/zsg2.h b/src/devices/sound/zsg2.h index e894562fa7f..c54e2dce3c4 100644 --- a/src/devices/sound/zsg2.h +++ b/src/devices/sound/zsg2.h @@ -4,10 +4,10 @@ ZOOM ZSG-2 custom wavetable synthesizer */ -#pragma once +#ifndef MAME_SOUND_ZSG2_H +#define MAME_SOUND_ZSG2_H -#ifndef __ZSG2_H__ -#define __ZSG2_H__ +#pragma once //************************************************************************** @@ -30,10 +30,9 @@ class zsg2_device : public device_t, { public: zsg2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~zsg2_device() { } // static configuration helpers - template static devcb_base &set_ext_read_handler(device_t &device, _Object object) { return downcast(device).m_ext_read_handler.set_callback(object); } + template static devcb_base &set_ext_read_handler(device_t &device, Object &&cb) { return downcast(device).m_ext_read_handler.set_callback(std::forward(cb)); } DECLARE_READ16_MEMBER(read); DECLARE_WRITE16_MEMBER(write); @@ -86,7 +85,6 @@ private: int16_t *prepare_samples(uint32_t offset); }; -extern const device_type ZSG2; - +DECLARE_DEVICE_TYPE(ZSG2, zsg2_device) -#endif /* __ZSG2_H__ */ +#endif // MAME_SOUND_ZSG2_H diff --git a/src/devices/video/315_5124.cpp b/src/devices/video/315_5124.cpp index 9588f3e6052..e49325d6c25 100644 --- a/src/devices/video/315_5124.cpp +++ b/src/devices/video/315_5124.cpp @@ -68,6 +68,11 @@ PAL frame timing #include "video/315_5124.h" +#define SEGA315_5124_PALETTE_SIZE (64 + 16) +#define SEGA315_5378_PALETTE_SIZE 4096 + +#define VRAM_SIZE 0x4000 + #define STATUS_VINT 0x80 /* Pending vertical interrupt flag */ #define STATUS_SPROVR 0x40 /* Sprite overflow flag */ #define STATUS_SPRCOL 0x20 /* Object collision flag */ @@ -84,8 +89,8 @@ PAL frame timing #define DISPLAY_DISABLED_HPOS 24 /* not verified, works if above 18 (for 'pstrike2') and below 25 (for 'fantdizzy') */ #define DISPLAY_CB_HPOS 2 /* fixes 'roadrash' (SMS game) title scrolling, due to line counter reload timing */ -#define DRAW_TIME_GG 94 /* 9 + 2 + 14 + 8 + 13 + 96/2 */ -#define DRAW_TIME_SMS 46 /* 9 + 2 + 14 + 8 + 13 */ +#define DRAW_TIME_GG 94 /* 9 + 2 + 14 + 8 + 13 + 96/2 */ +#define DRAW_TIME_SMS 46 /* 9 + 2 + 14 + 8 + 13 */ #define PRIORITY_BIT 0x1000 #define BACKDROP_COLOR ((m_vdp_mode == 4 ? 0x10 : 0x00) + (m_reg[0x07] & 0x0f)) @@ -97,17 +102,17 @@ PAL frame timing #define BOTTOM_BORDER 4 #define BOTTOM_BLANKING 5 -static const uint8_t ntsc_192[6] = { 3, 13, 27, 192, 24, 3 }; -static const uint8_t ntsc_224[6] = { 3, 13, 11, 224, 8, 3 }; -static const uint8_t ntsc_240[6] = { 3, 13, 3, 240, 0, 3 }; -static const uint8_t pal_192[6] = { 3, 13, 54, 192, 48, 3 }; -static const uint8_t pal_224[6] = { 3, 13, 38, 224, 32, 3 }; -static const uint8_t pal_240[6] = { 3, 13, 30, 240, 24, 3 }; +static constexpr uint8_t ntsc_192[6] = { 3, 13, 27, 192, 24, 3 }; +static constexpr uint8_t ntsc_224[6] = { 3, 13, 11, 224, 8, 3 }; +static constexpr uint8_t ntsc_240[6] = { 3, 13, 3, 240, 0, 3 }; +static constexpr uint8_t pal_192[6] = { 3, 13, 54, 192, 48, 3 }; +static constexpr uint8_t pal_224[6] = { 3, 13, 38, 224, 32, 3 }; +static constexpr uint8_t pal_240[6] = { 3, 13, 30, 240, 24, 3 }; -const device_type SEGA315_5124 = device_creator; -const device_type SEGA315_5246 = device_creator; -const device_type SEGA315_5378 = device_creator; +DEFINE_DEVICE_TYPE(SEGA315_5124, sega315_5124_device, "sega315_5124", "Sega 315-5124 SMS1 VDP") +DEFINE_DEVICE_TYPE(SEGA315_5246, sega315_5246_device, "sega315_5246", "Sega 315-5246 SMS2 VDP") +DEFINE_DEVICE_TYPE(SEGA315_5378, sega315_5378_device, "sega315_5378", "Sega 315-5378 Gamegear VDP") PALETTE_INIT_MEMBER(sega315_5124_device, sega315_5124) @@ -161,24 +166,13 @@ ADDRESS_MAP_END sega315_5124_device::sega315_5124_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t( mconfig, SEGA315_5124, "Sega 315-5124 VDP", tag, owner, clock, "sega315_5124", __FILE__) - , device_memory_interface(mconfig, *this) - , device_video_interface(mconfig, *this) - , m_cram_size( SEGA315_5124_CRAM_SIZE ) - , m_palette_offset( 0 ) - , m_supports_224_240( false ) - , m_is_pal(false) - , m_int_cb(*this) - , m_csync_cb(*this) - , m_pause_cb(*this) - , m_space_config("videoram", ENDIANNESS_LITTLE, 8, 14, 0, nullptr, *ADDRESS_MAP_NAME(sega315_5124)) - , m_palette(*this, "palette") + : sega315_5124_device(mconfig, SEGA315_5124, tag, owner, clock, SEGA315_5124_CRAM_SIZE, 0, false) { } -sega315_5124_device::sega315_5124_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, uint8_t cram_size, uint8_t palette_offset, bool supports_224_240, const char *shortname, const char *source) - : device_t( mconfig, type, name, tag, owner, clock, shortname, source) +sega315_5124_device::sega315_5124_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint8_t cram_size, uint8_t palette_offset, bool supports_224_240) + : device_t(mconfig, type, tag, owner, clock) , device_memory_interface(mconfig, *this) , device_video_interface(mconfig, *this) , m_cram_size( cram_size ) @@ -195,13 +189,13 @@ sega315_5124_device::sega315_5124_device(const machine_config &mconfig, device_t sega315_5246_device::sega315_5246_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : sega315_5124_device( mconfig, SEGA315_5246, "Sega 315-5246 VDP", tag, owner, clock, SEGA315_5124_CRAM_SIZE, 0, true, "sega315_5246", __FILE__) + : sega315_5124_device(mconfig, SEGA315_5246, tag, owner, clock, SEGA315_5124_CRAM_SIZE, 0, true) { } sega315_5378_device::sega315_5378_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : sega315_5124_device( mconfig, SEGA315_5378, "Sega 315-5378 VDP", tag, owner, clock, SEGA315_5378_CRAM_SIZE, 0x10, true, "sega315_5378", __FILE__) + : sega315_5124_device(mconfig, SEGA315_5378, tag, owner, clock, SEGA315_5378_CRAM_SIZE, 0x10, true) { } @@ -318,7 +312,7 @@ void sega315_5124_device::hcount_latch_at_hpos( int hpos ) /* The hcount value returned by the VDP seems to be based on the previous hpos */ int hclock = hpos - 1; if (hclock < 0) - hclock += SEGA315_5124_WIDTH; + hclock += WIDTH; m_hcounter = ((hclock - active_scr_start) >> 1) & 0xff; } @@ -347,7 +341,7 @@ void sega315_5124_device::device_timer(emu_timer &timer, device_timer_id id, int case TIMER_DRAW: update_palette(); - draw_scanline( SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH, param, m_screen->vpos() - param ); + draw_scanline( LBORDER_START + LBORDER_WIDTH, param, m_screen->vpos() - param ); break; case TIMER_LBORDER: @@ -358,8 +352,8 @@ void sega315_5124_device::device_timer(emu_timer &timer, device_timer_id id, int update_palette(); /* Draw left border */ - rec.min_x = SEGA315_5124_LBORDER_START; - rec.max_x = SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH - 1; + rec.min_x = LBORDER_START; + rec.max_x = LBORDER_START + LBORDER_WIDTH - 1; m_tmpbitmap.fill(m_palette->pen(m_current_palette[BACKDROP_COLOR]), rec); m_y1_bitmap.fill(( m_reg[0x07] & 0x0f ) ? 1 : 0, rec); } @@ -373,8 +367,8 @@ void sega315_5124_device::device_timer(emu_timer &timer, device_timer_id id, int update_palette(); /* Draw right border */ - rec.min_x = SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH + 256; - rec.max_x = rec.min_x + SEGA315_5124_RBORDER_WIDTH - 1; + rec.min_x = LBORDER_START + LBORDER_WIDTH + 256; + rec.max_x = rec.min_x + RBORDER_WIDTH - 1; m_tmpbitmap.fill(m_palette->pen(m_current_palette[BACKDROP_COLOR]), rec); m_y1_bitmap.fill(( m_reg[0x07] & 0x0f ) ? 1 : 0, rec); } @@ -480,8 +474,8 @@ void sega315_5124_device::process_line_timer() } /* Draw borders */ - m_lborder_timer->adjust( m_screen->time_until_pos( vpos, SEGA315_5124_LBORDER_START ), vpos ); - m_rborder_timer->adjust( m_screen->time_until_pos( vpos, SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH + 256 ), vpos ); + m_lborder_timer->adjust( m_screen->time_until_pos( vpos, LBORDER_START ), vpos ); + m_rborder_timer->adjust( m_screen->time_until_pos( vpos, LBORDER_START + LBORDER_WIDTH + 256 ), vpos ); /* Draw middle of the border */ /* We need to do this through the regular drawing function */ @@ -513,8 +507,8 @@ void sega315_5124_device::process_line_timer() } /* Draw borders */ - m_lborder_timer->adjust( m_screen->time_until_pos( vpos, SEGA315_5124_LBORDER_START ), vpos ); - m_rborder_timer->adjust( m_screen->time_until_pos( vpos, SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH + 256 ), vpos ); + m_lborder_timer->adjust( m_screen->time_until_pos( vpos, LBORDER_START ), vpos ); + m_rborder_timer->adjust( m_screen->time_until_pos( vpos, LBORDER_START + LBORDER_WIDTH + 256 ), vpos ); /* Draw active display */ select_sprites( vpos - vpos_limit ); @@ -536,8 +530,8 @@ void sega315_5124_device::process_line_timer() } /* Draw borders */ - m_lborder_timer->adjust( m_screen->time_until_pos( vpos, SEGA315_5124_LBORDER_START ), vpos ); - m_rborder_timer->adjust( m_screen->time_until_pos( vpos, SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH + 256 ), vpos ); + m_lborder_timer->adjust( m_screen->time_until_pos( vpos, LBORDER_START ), vpos ); + m_rborder_timer->adjust( m_screen->time_until_pos( vpos, LBORDER_START + LBORDER_WIDTH + 256 ), vpos ); /* Draw middle of the border */ /* We need to do this through the regular drawing function */ @@ -594,7 +588,7 @@ void sega315_5124_device::check_pending_flags() remaining time, what could also occur due to the ahead time of the timeslice. */ if (m_pending_flags_timer->remaining() == attotime::zero) { - hpos = SEGA315_5124_WIDTH - 1; + hpos = WIDTH - 1; } else { @@ -1606,7 +1600,7 @@ void sega315_5124_device::device_start() m_display_timer = timer_alloc(TIMER_LINE); m_display_timer->adjust(m_screen->time_until_pos(0, DISPLAY_CB_HPOS), 0, m_screen->scan_period()); m_pending_flags_timer = timer_alloc(TIMER_FLAGS); - m_pending_flags_timer->adjust(m_screen->time_until_pos(0, SEGA315_5124_WIDTH - 1), 0, m_screen->scan_period()); + m_pending_flags_timer->adjust(m_screen->time_until_pos(0, WIDTH - 1), 0, m_screen->scan_period()); m_draw_timer = timer_alloc(TIMER_DRAW); m_lborder_timer = timer_alloc(TIMER_LBORDER); m_rborder_timer = timer_alloc(TIMER_RBORDER); diff --git a/src/devices/video/315_5124.h b/src/devices/video/315_5124.h index e3ab1f23559..8ca1b734d9f 100644 --- a/src/devices/video/315_5124.h +++ b/src/devices/video/315_5124.h @@ -8,54 +8,21 @@ **************************************************************************/ -#ifndef MAME_DEVICES_VIDEO_315_5124_H -#define MAME_DEVICES_VIDEO_315_5124_H +#ifndef MAME_VIDEO_315_5124_H +#define MAME_VIDEO_315_5124_H #pragma once #include "screen.h" -/*************************************************************************** - CONSTANTS -***************************************************************************/ - -#define SEGA315_5124_WIDTH 342 /* 342 pixels */ -#define SEGA315_5124_HEIGHT_NTSC 262 /* 262 lines */ -#define SEGA315_5124_HEIGHT_PAL 313 /* 313 lines */ -#define SEGA315_5124_LBORDER_START (9 + 2 + 14 + 8) -#define SEGA315_5124_LBORDER_WIDTH 13 /* 13 pixels */ -#define SEGA315_5124_RBORDER_WIDTH 15 /* 15 pixels */ -#define SEGA315_5124_TBORDER_START (3 + 13) -#define SEGA315_5124_NTSC_192_TBORDER_HEIGHT (0x1b) /* 27 lines */ -//#define SEGA315_5124_NTSC_192_BBORDER_HEIGHT (0x18) /* 24 lines */ -#define SEGA315_5124_NTSC_224_TBORDER_HEIGHT (0x0b) /* 11 lines */ -//#define SEGA315_5124_NTSC_224_BBORDER_HEIGHT (0x08) /* 8 lines */ -//#define SEGA315_5124_PAL_192_TBORDER_HEIGHT (0x36) /* 54 lines */ -//#define SEGA315_5124_PAL_192_BBORDER_HEIGHT (0x30) /* 48 lines */ -//#define SEGA315_5124_PAL_224_TBORDER_HEIGHT (0x26) /* 38 lines */ -//#define SEGA315_5124_PAL_224_BBORDER_HEIGHT (0x20) /* 32 lines */ -#define SEGA315_5124_PAL_240_TBORDER_HEIGHT (0x1e) /* 30 lines */ -//#define SEGA315_5124_PAL_240_BBORDER_HEIGHT (0x18) /* 24 lines */ - - -#define SEGA315_5124_PALETTE_SIZE (64+16) -#define SEGA315_5378_PALETTE_SIZE 4096 - - -#define SEGA315_5378_CRAM_SIZE 0x40 /* 32 colors x 2 bytes per color = 64 bytes */ -#define SEGA315_5124_CRAM_SIZE 0x20 /* 32 colors x 1 bytes per color = 32 bytes */ - -#define VRAM_SIZE 0x4000 - - /*************************************************************************** TYPE DEFINITIONS ***************************************************************************/ -extern const device_type SEGA315_5124; /* aka SMS1 vdp */ -extern const device_type SEGA315_5246; /* aka SMS2 vdp */ -extern const device_type SEGA315_5378; /* aka Gamegear vdp */ +DECLARE_DEVICE_TYPE(SEGA315_5124, sega315_5124_device) /* aka SMS1 vdp */ +DECLARE_DEVICE_TYPE(SEGA315_5246, sega315_5246_device) /* aka SMS2 vdp */ +DECLARE_DEVICE_TYPE(SEGA315_5378, sega315_5378_device) /* aka Gamegear vdp */ class sega315_5124_device : public device_t, @@ -63,17 +30,33 @@ class sega315_5124_device : public device_t, public device_video_interface { public: + static constexpr unsigned WIDTH = 342; /* 342 pixels */ + static constexpr unsigned HEIGHT_NTSC = 262; /* 262 lines */ + static constexpr unsigned HEIGHT_PAL = 313; /* 313 lines */ + static constexpr unsigned LBORDER_START = 9 + 2 + 14 + 8; + static constexpr unsigned LBORDER_WIDTH = 13; /* 13 pixels */ + static constexpr unsigned RBORDER_WIDTH = 15; /* 15 pixels */ + static constexpr unsigned TBORDER_START = 3 + 13; + static constexpr unsigned NTSC_192_TBORDER_HEIGHT = 0x1b; /* 27 lines */ + //static constexpr unsigned NTSC_192_BBORDER_HEIGHT = 0x18; /* 24 lines */ + static constexpr unsigned NTSC_224_TBORDER_HEIGHT = 0x0b; /* 11 lines */ + //static constexpr unsigned NTSC_224_BBORDER_HEIGHT = 0x08; /* 8 lines */ + //static constexpr unsigned PAL_192_TBORDER_HEIGHT = 0x36; /* 54 lines */ + //static constexpr unsigned PAL_192_BBORDER_HEIGHT = 0x30; /* 48 lines */ + //static constexpr unsigned PAL_224_TBORDER_HEIGHT = 0x26; /* 38 lines */ + //static constexpr unsigned PAL_224_BBORDER_HEIGHT = 0x20; /* 32 lines */ + static constexpr unsigned PAL_240_TBORDER_HEIGHT = 0x1e; /* 30 lines */ + //static constexpr unsigned PAL_240_BBORDER_HEIGHT = 0x18; /* 24 lines */ + + // construction/destruction sega315_5124_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - sega315_5124_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, uint8_t cram_size, uint8_t palette_offset, bool supports_224_240, const char *shortname, const char *source); static void set_signal_type(device_t &device, bool is_pal) { downcast(device).m_is_pal = is_pal; } - - - template static devcb_base &set_int_callback(device_t &device, _Object object) { return downcast(device).m_int_cb.set_callback(object); } - template static devcb_base &set_csync_callback(device_t &device, _Object object) { return downcast(device).m_csync_cb.set_callback(object); } - template static devcb_base &set_pause_callback(device_t &device, _Object object) { return downcast(device).m_pause_cb.set_callback(object); } + template static devcb_base &set_int_callback(device_t &device, Object &&cb) { return downcast(device).m_int_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_csync_callback(device_t &device, Object &&cb) { return downcast(device).m_csync_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_pause_callback(device_t &device, Object &&cb) { return downcast(device).m_pause_cb.set_callback(std::forward(cb)); } DECLARE_READ8_MEMBER( vram_read ); DECLARE_WRITE8_MEMBER( vram_write ); @@ -84,34 +67,24 @@ public: DECLARE_PALETTE_INIT( sega315_5124 ); - void hcount_latch() { hcount_latch_at_hpos( m_screen->hpos() ); }; - void hcount_latch_at_hpos( int hpos ); + void hcount_latch() { hcount_latch_at_hpos(m_screen->hpos()); }; + void hcount_latch_at_hpos(int hpos); void stop_timers(); bitmap_rgb32 &get_bitmap() { return m_tmpbitmap; }; bitmap_ind8 &get_y1_bitmap() { return m_y1_bitmap; }; /* update the screen */ - uint32_t screen_update( screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect ); + uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); - virtual void set_sega315_5124_compatibility_mode( bool sega315_5124_compatibility_mode ) { }; + virtual void set_sega315_5124_compatibility_mode(bool sega315_5124_compatibility_mode) { } protected: - void set_display_settings(); - void set_frame_timing(); - virtual void update_palette(); - virtual void cram_write(uint8_t data); - virtual void draw_scanline( int pixel_offset_x, int pixel_plot_y, int line ); - virtual void blit_scanline( int *line_buffer, int *priority_selected, int pixel_offset_x, int pixel_plot_y, int line ); - virtual uint16_t get_name_table_row(int row); - void process_line_timer(); - void select_sprites( int line ); - void draw_scanline_mode4( int *line_buffer, int *priority_selected, int line ); - void draw_sprites_mode4( int *line_buffer, int *priority_selected, int line ); - void draw_sprites_tms9918_mode( int *line_buffer, int line ); - void draw_scanline_mode2( int *line_buffer, int line ); - void draw_scanline_mode0( int *line_buffer, int line ); - void check_pending_flags(); + static constexpr unsigned SEGA315_5378_CRAM_SIZE = 0x40; /* 32 colors x 2 bytes per color = 64 bytes */ + static constexpr unsigned SEGA315_5124_CRAM_SIZE = 0x20; /* 32 colors x 1 bytes per color = 32 bytes */ + + + sega315_5124_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint8_t cram_size, uint8_t palette_offset, bool supports_224_240); // device-level overrides virtual void device_start() override; @@ -119,7 +92,23 @@ protected: virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; virtual machine_config_constructor device_mconfig_additions() const override; - virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_0) const override { return (spacenum == AS_0) ? &m_space_config : nullptr; } + virtual const address_space_config *memory_space_config(address_spacenum spacenum) const override { return (spacenum == AS_0) ? &m_space_config : nullptr; } + + void set_display_settings(); + void set_frame_timing(); + virtual void update_palette(); + virtual void cram_write(uint8_t data); + virtual void draw_scanline(int pixel_offset_x, int pixel_plot_y, int line); + virtual void blit_scanline(int *line_buffer, int *priority_selected, int pixel_offset_x, int pixel_plot_y, int line); + virtual uint16_t get_name_table_row(int row); + void process_line_timer(); + void select_sprites(int line); + void draw_scanline_mode4(int *line_buffer, int *priority_selected, int line); + void draw_sprites_mode4(int *line_buffer, int *priority_selected, int line); + void draw_sprites_tms9918_mode(int *line_buffer, int line); + void draw_scanline_mode2(int *line_buffer, int line); + void draw_scanline_mode0(int *line_buffer, int line); + void check_pending_flags(); void vdp_postload(); @@ -130,7 +119,7 @@ protected: uint8_t m_reg9copy; /* Internal copy of register 9 (Y-Scroll) */ uint8_t m_addrmode; /* Type of VDP action */ uint16_t m_addr; /* Contents of internal VDP address register */ - uint8_t m_cram_size; /* CRAM size */ + const uint8_t m_cram_size; /* CRAM size */ uint8_t m_cram_mask; /* Mask to switch between SMS and GG CRAM sizes */ int m_cram_dirty; /* Have there been any changes to the CRAM area */ int m_pending_reg_write; @@ -147,8 +136,8 @@ protected: const uint8_t *m_frame_timing; bitmap_rgb32 m_tmpbitmap; bitmap_ind8 m_y1_bitmap; - uint8_t m_palette_offset; - bool m_supports_224_240; + const uint8_t m_palette_offset; + const bool m_supports_224_240; bool m_display_disabled; uint16_t m_sprite_base; uint16_t m_sprite_pattern_line[8]; @@ -175,14 +164,14 @@ protected: const address_space_config m_space_config; /* Timers */ - static const device_timer_id TIMER_LINE = 0; - static const device_timer_id TIMER_DRAW = 1; - static const device_timer_id TIMER_LBORDER = 2; - static const device_timer_id TIMER_RBORDER = 3; - static const device_timer_id TIMER_HINT = 4; - static const device_timer_id TIMER_VINT = 5; - static const device_timer_id TIMER_NMI = 6; - static const device_timer_id TIMER_FLAGS = 7; + static constexpr device_timer_id TIMER_LINE = 0; + static constexpr device_timer_id TIMER_DRAW = 1; + static constexpr device_timer_id TIMER_LBORDER = 2; + static constexpr device_timer_id TIMER_RBORDER = 3; + static constexpr device_timer_id TIMER_HINT = 4; + static constexpr device_timer_id TIMER_VINT = 5; + static constexpr device_timer_id TIMER_NMI = 6; + static constexpr device_timer_id TIMER_FLAGS = 7; required_device m_palette; }; @@ -205,7 +194,7 @@ public: DECLARE_PALETTE_INIT( sega315_5378 ); - virtual void set_sega315_5124_compatibility_mode( bool sega315_5124_compatibility_mode ) override; + virtual void set_sega315_5124_compatibility_mode(bool sega315_5124_compatibility_mode) override; protected: virtual void device_reset() override; @@ -267,4 +256,4 @@ protected: devcb = &sega315_5378_device::set_pause_callback(*device, DEVCB_##_devcb); -#endif // MAME_DEVICES_VIDEO_315_5124_H +#endif // MAME_VIDEO_315_5124_H diff --git a/src/devices/video/315_5313.cpp b/src/devices/video/315_5313.cpp index c6f9e28e456..a8af6681295 100644 --- a/src/devices/video/315_5313.cpp +++ b/src/devices/video/315_5313.cpp @@ -9,17 +9,155 @@ #include "sound/sn76496.h" + +/* The VDP occupies addresses C00000h to C0001Fh. + + C00000h - Data port (8=r/w, 16=r/w) + C00002h - Data port (mirror) + C00004h - Control port (8=r/w, 16=r/w) + C00006h - Control port (mirror) + C00008h - HV counter (8/16=r/o) + C0000Ah - HV counter (mirror) + C0000Ch - HV counter (mirror) + C0000Eh - HV counter (mirror) + C00011h - SN76489 PSG (8=w/o) + C00013h - SN76489 PSG (mirror) + C00015h - SN76489 PSG (mirror) + C00017h - SN76489 PSG (mirror) +*/ + +#define MEGADRIV_VDP_VRAM(address) m_vram[(address)&0x7fff] + + + +/* + + $00 - Mode Set Register No. 1 + ----------------------------- + + d7 - No effect + d6 - No effect + d5 - No effect + d4 - IE1 (Horizontal interrupt enable) + d3 - 1= Invalid display setting + d2 - Palette select + d1 - M3 (HV counter latch enable) + d0 - Display disable + + */ + +#define MEGADRIVE_REG0_UNUSED ((m_regs[0x00]&0xc0)>>6) +#define MEGADRIVE_REG0_BLANK_LEFT ((m_regs[0x00]&0x20)>>5) // like SMS, not used by any commercial games? +#define MEGADRIVE_REG0_IRQ4_ENABLE ((m_regs[0x00]&0x10)>>4) +#define MEGADRIVE_REG0_INVALID_MODE ((m_regs[0x00]&0x08)>>3) // invalid display mode, unhandled +#define MEGADRIVE_REG0_SPECIAL_PAL ((m_regs[0x00]&0x04)>>2) // strange palette mode, unhandled +#define MEGADRIVE_REG0_HVLATCH_ENABLE ((m_regs[0x00]&0x02)>>1) // HV Latch, used by lightgun games +#define MEGADRIVE_REG0_DISPLAY_DISABLE ((m_regs[0x00]&0x01)>>0) + +/* + + $01 - Mode Set Register No. 2 + ----------------------------- + + d7 - TMS9918 / Genesis display select + d6 - DISP (Display Enable) + d5 - IE0 (Vertical Interrupt Enable) + d4 - M1 (DMA Enable) + d3 - M2 (PAL / NTSC) + d2 - SMS / Genesis display select + d1 - 0 (No effect) + d0 - 0 (See notes) + +*/ + +#define MEGADRIVE_REG01_TMS9918_SELECT ((m_regs[0x01]&0x80)>>7) +#define MEGADRIVE_REG01_DISP_ENABLE ((m_regs[0x01]&0x40)>>6) +#define MEGADRIVE_REG01_IRQ6_ENABLE ((m_regs[0x01]&0x20)>>5) +#define MEGADRIVE_REG01_DMA_ENABLE ((m_regs[0x01]&0x10)>>4) +#define MEGADRIVE_REG01_240_LINE ((m_regs[0x01]&0x08)>>3) +#define MEGADRIVE_REG01_SMS_SELECT ((m_regs[0x01]&0x04)>>2) +#define MEGADRIVE_REG01_UNUSED ((m_regs[0x01]&0x02)>>1) +#define MEGADRIVE_REG01_STRANGE_VIDEO ((m_regs[0x01]&0x01)>>0) // unhandled, does strange things to the display + +#define MEGADRIVE_REG02_UNUSED1 ((m_regs[0x02]&0xc0)>>6) +#define MEGADRIVE_REG02_PATTERN_ADDR_A ((m_regs[0x02]&0x38)>>3) +#define MEGADRIVE_REG02_UNUSED2 ((m_regs[0x02]&0x07)>>0) + +#define MEGADRIVE_REG03_UNUSED1 ((m_regs[0x03]&0xc0)>>6) +#define MEGADRIVE_REG03_PATTERN_ADDR_W ((m_regs[0x03]&0x3e)>>1) +#define MEGADRIVE_REG03_UNUSED2 ((m_regs[0x03]&0x01)>>0) + +#define MEGADRIVE_REG04_UNUSED ((m_regs[0x04]&0xf8)>>3) +#define MEGADRIVE_REG04_PATTERN_ADDR_B ((m_regs[0x04]&0x07)>>0) + +#define MEGADRIVE_REG05_UNUSED ((m_regs[0x05]&0x80)>>7) +#define MEGADRIVE_REG05_SPRITE_ADDR ((m_regs[0x05]&0x7f)>>0) + +/* 6? */ + +#define MEGADRIVE_REG07_UNUSED ((m_regs[0x07]&0xc0)>>6) +#define MEGADRIVE_REG07_BGCOLOUR ((m_regs[0x07]&0x3f)>>0) + +/* 8? */ +/* 9? */ + +#define MEGADRIVE_REG0A_HINT_VALUE ((m_regs[0x0a]&0xff)>>0) + +#define MEGADRIVE_REG0B_UNUSED ((m_regs[0x0b]&0xf0)>>4) +#define MEGADRIVE_REG0B_IRQ2_ENABLE ((m_regs[0x0b]&0x08)>>3) +#define MEGADRIVE_REG0B_VSCROLL_MODE ((m_regs[0x0b]&0x04)>>2) +#define MEGADRIVE_REG0B_HSCROLL_MODE ((m_regs[0x0b]&0x03)>>0) + +#define MEGADRIVE_REG0C_RS0 ((m_regs[0x0c]&0x80)>>7) +#define MEGADRIVE_REG0C_UNUSED1 ((m_regs[0x0c]&0x40)>>6) +#define MEGADRIVE_REG0C_SPECIAL ((m_regs[0x0c]&0x20)>>5) +#define MEGADRIVE_REG0C_UNUSED2 ((m_regs[0x0c]&0x10)>>4) +#define MEGADRIVE_REG0C_SHADOW_HIGLIGHT ((m_regs[0x0c]&0x08)>>3) +#define MEGADRIVE_REG0C_INTERLEAVE ((m_regs[0x0c]&0x06)>>1) +#define MEGADRIVE_REG0C_RS1 ((m_regs[0x0c]&0x01)>>0) + +#define MEGADRIVE_REG0D_UNUSED ((m_regs[0x0d]&0xc0)>>6) +#define MEGADRIVE_REG0D_HSCROLL_ADDR ((m_regs[0x0d]&0x3f)>>0) + +/* e? */ + +#define MEGADRIVE_REG0F_AUTO_INC ((m_regs[0x0f]&0xff)>>0) + +#define MEGADRIVE_REG10_UNUSED1 ((m_regs[0x10]&0xc0)>>6) +#define MEGADRIVE_REG10_VSCROLL_SIZE ((m_regs[0x10]&0x30)>>4) +#define MEGADRIVE_REG10_UNUSED2 ((m_regs[0x10]&0x0c)>>2) +#define MEGADRIVE_REG10_HSCROLL_SIZE ((m_regs[0x10]&0x03)>>0) + +#define MEGADRIVE_REG11_WINDOW_RIGHT ((m_regs[0x11]&0x80)>>7) +#define MEGADRIVE_REG11_UNUSED ((m_regs[0x11]&0x60)>>5) +#define MEGADRIVE_REG11_WINDOW_HPOS ((m_regs[0x11]&0x1f)>>0) + +#define MEGADRIVE_REG12_WINDOW_DOWN ((m_regs[0x12]&0x80)>>7) +#define MEGADRIVE_REG12_UNUSED ((m_regs[0x12]&0x60)>>5) +#define MEGADRIVE_REG12_WINDOW_VPOS ((m_regs[0x12]&0x1f)>>0) + +#define MEGADRIVE_REG13_DMALENGTH1 ((m_regs[0x13]&0xff)>>0) + +#define MEGADRIVE_REG14_DMALENGTH2 ((m_regs[0x14]&0xff)>>0) + +#define MEGADRIVE_REG15_DMASOURCE1 ((m_regs[0x15]&0xff)>>0) +#define MEGADRIVE_REG16_DMASOURCE2 ((m_regs[0x16]&0xff)>>0) + +#define MEGADRIVE_REG17_DMASOURCE3 ((m_regs[0x17]&0xff)>>0) +#define MEGADRIVE_REG17_DMATYPE ((m_regs[0x17]&0xc0)>>6) +#define MEGADRIVE_REG17_UNUSED ((m_regs[0x17]&0x3f)>>0) + + #define MAX_HPOSITION 480 -const device_type SEGA315_5313 = device_creator; +DEFINE_DEVICE_TYPE(SEGA315_5313, sega315_5313_device, "sega315_5313", "Sega 315-5313 Megadrive VDP") -sega315_5313_device::sega315_5313_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : sega315_5124_device(mconfig, SEGA315_5313, "Sega 315-5313 Megadrive VDP", tag, owner, clock, SEGA315_5124_CRAM_SIZE, 0, true, "sega315_5313", __FILE__), m_render_bitmap(nullptr), - m_render_line(nullptr), m_render_line_raw(nullptr), m_megadriv_scanline_timer(nullptr), - m_sndirqline_callback(*this), - m_lv6irqline_callback(*this), - m_lv4irqline_callback(*this), m_command_pending(0), m_command_part1(0), m_command_part2(0), m_vdp_code(0), m_vdp_address(0), m_vram_fill_pending(0), m_vram_fill_length(0), m_irq4counter(0), +sega315_5313_device::sega315_5313_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + sega315_5124_device(mconfig, SEGA315_5313, tag, owner, clock, SEGA315_5124_CRAM_SIZE, 0, true), + m_render_bitmap(nullptr), m_render_line(nullptr), m_render_line_raw(nullptr), m_megadriv_scanline_timer(nullptr), + m_sndirqline_callback(*this), m_lv6irqline_callback(*this), m_lv4irqline_callback(*this), + m_command_pending(0), m_command_part1(0), m_command_part2(0), m_vdp_code(0), m_vdp_address(0), m_vram_fill_pending(0), m_vram_fill_length(0), m_irq4counter(0), m_imode_odd_frame(0), m_sprite_collision(0), m_irq6_pending(0), m_irq4_pending(0), m_scanline_counter(0), m_vblank_flag(0), m_imode(0), m_visible_scanlines(0), m_irq6_scanline(0), m_z80irq_scanline(0), m_total_scanlines(0), m_base_total_scanlines(0), m_framerate(0), m_vdp_pal(0), m_use_cram(0), m_dma_delay(0), m_regs(nullptr), m_vram(nullptr), m_cram(nullptr), m_vsram(nullptr), m_internal_sprite_attribute_table(nullptr), m_irq6_on_timer(nullptr), m_irq4_on_timer(nullptr), diff --git a/src/devices/video/315_5313.h b/src/devices/video/315_5313.h index 592c0be54e5..5be1f05d4b6 100644 --- a/src/devices/video/315_5313.h +++ b/src/devices/video/315_5313.h @@ -1,6 +1,8 @@ // license:BSD-3-Clause // copyright-holders:David Haywood /* Sega Megadrive / Genesis VDP */ +#ifndef MAME_VIDEO_315_5313_H +#define MAME_VIDEO_315_5313_H #pragma once @@ -8,144 +10,6 @@ #include "cpu/m68000/m68000.h" -/* The VDP occupies addresses C00000h to C0001Fh. - - C00000h - Data port (8=r/w, 16=r/w) - C00002h - Data port (mirror) - C00004h - Control port (8=r/w, 16=r/w) - C00006h - Control port (mirror) - C00008h - HV counter (8/16=r/o) - C0000Ah - HV counter (mirror) - C0000Ch - HV counter (mirror) - C0000Eh - HV counter (mirror) - C00011h - SN76489 PSG (8=w/o) - C00013h - SN76489 PSG (mirror) - C00015h - SN76489 PSG (mirror) - C00017h - SN76489 PSG (mirror) -*/ - -#define MEGADRIV_VDP_VRAM(address) m_vram[(address)&0x7fff] - - - -/* - - $00 - Mode Set Register No. 1 - ----------------------------- - - d7 - No effect - d6 - No effect - d5 - No effect - d4 - IE1 (Horizontal interrupt enable) - d3 - 1= Invalid display setting - d2 - Palette select - d1 - M3 (HV counter latch enable) - d0 - Display disable - - */ - -#define MEGADRIVE_REG0_UNUSED ((m_regs[0x00]&0xc0)>>6) -#define MEGADRIVE_REG0_BLANK_LEFT ((m_regs[0x00]&0x20)>>5) // like SMS, not used by any commercial games? -#define MEGADRIVE_REG0_IRQ4_ENABLE ((m_regs[0x00]&0x10)>>4) -#define MEGADRIVE_REG0_INVALID_MODE ((m_regs[0x00]&0x08)>>3) // invalid display mode, unhandled -#define MEGADRIVE_REG0_SPECIAL_PAL ((m_regs[0x00]&0x04)>>2) // strange palette mode, unhandled -#define MEGADRIVE_REG0_HVLATCH_ENABLE ((m_regs[0x00]&0x02)>>1) // HV Latch, used by lightgun games -#define MEGADRIVE_REG0_DISPLAY_DISABLE ((m_regs[0x00]&0x01)>>0) - -/* - - $01 - Mode Set Register No. 2 - ----------------------------- - - d7 - TMS9918 / Genesis display select - d6 - DISP (Display Enable) - d5 - IE0 (Vertical Interrupt Enable) - d4 - M1 (DMA Enable) - d3 - M2 (PAL / NTSC) - d2 - SMS / Genesis display select - d1 - 0 (No effect) - d0 - 0 (See notes) - -*/ - -#define MEGADRIVE_REG01_TMS9918_SELECT ((m_regs[0x01]&0x80)>>7) -#define MEGADRIVE_REG01_DISP_ENABLE ((m_regs[0x01]&0x40)>>6) -#define MEGADRIVE_REG01_IRQ6_ENABLE ((m_regs[0x01]&0x20)>>5) -#define MEGADRIVE_REG01_DMA_ENABLE ((m_regs[0x01]&0x10)>>4) -#define MEGADRIVE_REG01_240_LINE ((m_regs[0x01]&0x08)>>3) -#define MEGADRIVE_REG01_SMS_SELECT ((m_regs[0x01]&0x04)>>2) -#define MEGADRIVE_REG01_UNUSED ((m_regs[0x01]&0x02)>>1) -#define MEGADRIVE_REG01_STRANGE_VIDEO ((m_regs[0x01]&0x01)>>0) // unhandled, does strange things to the display - -#define MEGADRIVE_REG02_UNUSED1 ((m_regs[0x02]&0xc0)>>6) -#define MEGADRIVE_REG02_PATTERN_ADDR_A ((m_regs[0x02]&0x38)>>3) -#define MEGADRIVE_REG02_UNUSED2 ((m_regs[0x02]&0x07)>>0) - -#define MEGADRIVE_REG03_UNUSED1 ((m_regs[0x03]&0xc0)>>6) -#define MEGADRIVE_REG03_PATTERN_ADDR_W ((m_regs[0x03]&0x3e)>>1) -#define MEGADRIVE_REG03_UNUSED2 ((m_regs[0x03]&0x01)>>0) - -#define MEGADRIVE_REG04_UNUSED ((m_regs[0x04]&0xf8)>>3) -#define MEGADRIVE_REG04_PATTERN_ADDR_B ((m_regs[0x04]&0x07)>>0) - -#define MEGADRIVE_REG05_UNUSED ((m_regs[0x05]&0x80)>>7) -#define MEGADRIVE_REG05_SPRITE_ADDR ((m_regs[0x05]&0x7f)>>0) - -/* 6? */ - -#define MEGADRIVE_REG07_UNUSED ((m_regs[0x07]&0xc0)>>6) -#define MEGADRIVE_REG07_BGCOLOUR ((m_regs[0x07]&0x3f)>>0) - -/* 8? */ -/* 9? */ - -#define MEGADRIVE_REG0A_HINT_VALUE ((m_regs[0x0a]&0xff)>>0) - -#define MEGADRIVE_REG0B_UNUSED ((m_regs[0x0b]&0xf0)>>4) -#define MEGADRIVE_REG0B_IRQ2_ENABLE ((m_regs[0x0b]&0x08)>>3) -#define MEGADRIVE_REG0B_VSCROLL_MODE ((m_regs[0x0b]&0x04)>>2) -#define MEGADRIVE_REG0B_HSCROLL_MODE ((m_regs[0x0b]&0x03)>>0) - -#define MEGADRIVE_REG0C_RS0 ((m_regs[0x0c]&0x80)>>7) -#define MEGADRIVE_REG0C_UNUSED1 ((m_regs[0x0c]&0x40)>>6) -#define MEGADRIVE_REG0C_SPECIAL ((m_regs[0x0c]&0x20)>>5) -#define MEGADRIVE_REG0C_UNUSED2 ((m_regs[0x0c]&0x10)>>4) -#define MEGADRIVE_REG0C_SHADOW_HIGLIGHT ((m_regs[0x0c]&0x08)>>3) -#define MEGADRIVE_REG0C_INTERLEAVE ((m_regs[0x0c]&0x06)>>1) -#define MEGADRIVE_REG0C_RS1 ((m_regs[0x0c]&0x01)>>0) - -#define MEGADRIVE_REG0D_UNUSED ((m_regs[0x0d]&0xc0)>>6) -#define MEGADRIVE_REG0D_HSCROLL_ADDR ((m_regs[0x0d]&0x3f)>>0) - -/* e? */ - -#define MEGADRIVE_REG0F_AUTO_INC ((m_regs[0x0f]&0xff)>>0) - -#define MEGADRIVE_REG10_UNUSED1 ((m_regs[0x10]&0xc0)>>6) -#define MEGADRIVE_REG10_VSCROLL_SIZE ((m_regs[0x10]&0x30)>>4) -#define MEGADRIVE_REG10_UNUSED2 ((m_regs[0x10]&0x0c)>>2) -#define MEGADRIVE_REG10_HSCROLL_SIZE ((m_regs[0x10]&0x03)>>0) - -#define MEGADRIVE_REG11_WINDOW_RIGHT ((m_regs[0x11]&0x80)>>7) -#define MEGADRIVE_REG11_UNUSED ((m_regs[0x11]&0x60)>>5) -#define MEGADRIVE_REG11_WINDOW_HPOS ((m_regs[0x11]&0x1f)>>0) - -#define MEGADRIVE_REG12_WINDOW_DOWN ((m_regs[0x12]&0x80)>>7) -#define MEGADRIVE_REG12_UNUSED ((m_regs[0x12]&0x60)>>5) -#define MEGADRIVE_REG12_WINDOW_VPOS ((m_regs[0x12]&0x1f)>>0) - -#define MEGADRIVE_REG13_DMALENGTH1 ((m_regs[0x13]&0xff)>>0) - -#define MEGADRIVE_REG14_DMALENGTH2 ((m_regs[0x14]&0xff)>>0) - -#define MEGADRIVE_REG15_DMASOURCE1 ((m_regs[0x15]&0xff)>>0) -#define MEGADRIVE_REG16_DMASOURCE2 ((m_regs[0x16]&0xff)>>0) - -#define MEGADRIVE_REG17_DMASOURCE3 ((m_regs[0x17]&0xff)>>0) -#define MEGADRIVE_REG17_DMATYPE ((m_regs[0x17]&0xc0)>>6) -#define MEGADRIVE_REG17_UNUSED ((m_regs[0x17]&0x3f)>>0) - - #define MCFG_SEGA315_5313_IS_PAL(_bool) \ sega315_5313_device::set_signal_type(*device, _bool); @@ -175,35 +39,35 @@ // Temporary solution while 32x VDP mixing and scanline interrupting is moved outside MD VDP -typedef device_delegate md_32x_scanline_delegate; -typedef device_delegate md_32x_interrupt_delegate; -typedef device_delegate md_32x_scanline_helper_delegate; - #define MCFG_SEGA315_5313_32X_SCANLINE_CB(_class, _method) \ - sega315_5313_device::set_md_32x_scanline(*device, md_32x_scanline_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); + sega315_5313_device::set_md_32x_scanline(*device, sega315_5313_device::md_32x_scanline_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); #define MCFG_SEGA315_5313_32X_INTERRUPT_CB(_class, _method) \ - sega315_5313_device::set_md_32x_interrupt(*device, md_32x_interrupt_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); + sega315_5313_device::set_md_32x_interrupt(*device, sega315_5313_device::md_32x_interrupt_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); #define MCFG_SEGA315_5313_32X_SCANLINE_HELPER_CB(_class, _method) \ - sega315_5313_device::set_md_32x_scanline_helper(*device, md_32x_scanline_helper_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); + sega315_5313_device::set_md_32x_scanline_helper(*device, sega315_5313_device::md_32x_scanline_helper_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); class sega315_5313_device : public sega315_5124_device { public: + typedef device_delegate md_32x_scanline_delegate; + typedef device_delegate md_32x_interrupt_delegate; + typedef device_delegate md_32x_scanline_helper_delegate; + sega315_5313_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_sndirqline_callback(device_t &device, _Object object) { return downcast(device).m_sndirqline_callback.set_callback(object); } - template static devcb_base &set_lv6irqline_callback(device_t &device, _Object object) { return downcast(device).m_lv6irqline_callback.set_callback(object); } - template static devcb_base &set_lv4irqline_callback(device_t &device, _Object object) { return downcast(device).m_lv4irqline_callback.set_callback(object); } + template static devcb_base &set_sndirqline_callback(device_t &device, Object &&cb) { return downcast(device).m_sndirqline_callback.set_callback(std::forward(cb)); } + template static devcb_base &set_lv6irqline_callback(device_t &device, Object &&cb) { return downcast(device).m_lv6irqline_callback.set_callback(std::forward(cb)); } + template static devcb_base &set_lv4irqline_callback(device_t &device, Object &&cb) { return downcast(device).m_lv4irqline_callback.set_callback(std::forward(cb)); } static void set_alt_timing(device_t &device, int use_alt_timing); static void set_palwrite_base(device_t &device, int palwrite_base); static void static_set_palette_tag(device_t &device, const char *tag); - static void set_md_32x_scanline(device_t &device, md_32x_scanline_delegate callback) { downcast(device).m_32x_scanline_func = callback; } - static void set_md_32x_interrupt(device_t &device, md_32x_interrupt_delegate callback) { downcast(device).m_32x_interrupt_func = callback; } - static void set_md_32x_scanline_helper(device_t &device, md_32x_scanline_helper_delegate callback) { downcast(device).m_32x_scanline_helper_func = callback; } + static void set_md_32x_scanline(device_t &device, md_32x_scanline_delegate &&cb) { downcast(device).m_32x_scanline_func = std::move(cb); } + static void set_md_32x_interrupt(device_t &device, md_32x_interrupt_delegate &&cb) { downcast(device).m_32x_interrupt_func = std::move(cb); } + static void set_md_32x_scanline_helper(device_t &device, md_32x_scanline_helper_delegate &&cb) { downcast(device).m_32x_scanline_helper_func = std::move(cb); } int m_use_alt_timing; // use MAME scanline timer instead, render only one scanline to a single line buffer, to be rendered by a partial update call.. experimental @@ -220,8 +84,8 @@ public: TIMER_CALLBACK_MEMBER(irq4_on_timer_callback); void vdp_handle_eof(); void device_reset_old(); - void vdp_clear_irq6_pending(void) { m_irq6_pending = 0; }; - void vdp_clear_irq4_pending(void) { m_irq4_pending = 0; }; + void vdp_clear_irq6_pending() { m_irq6_pending = 0; }; + void vdp_clear_irq4_pending() { m_irq4_pending = 0; }; // set some VDP variables at start (shall be moved to a device interface?) void set_scanline_counter(int scanline) { m_scanline_counter = scanline; } @@ -234,7 +98,7 @@ public: int get_imode() { return m_imode; } - void vdp_clear_bitmap(void) + void vdp_clear_bitmap() { if (m_render_bitmap) m_render_bitmap->fill(0); @@ -265,7 +129,6 @@ protected: md_32x_scanline_helper_delegate m_32x_scanline_helper_func; private: - int m_command_pending; // 2nd half of command pending.. uint16_t m_command_part1; uint16_t m_command_part2; @@ -355,4 +218,6 @@ private: }; -extern const device_type SEGA315_5313; +DECLARE_DEVICE_TYPE(SEGA315_5313, sega315_5313_device) + +#endif // MAME_VIDEO_315_5313_H diff --git a/src/devices/video/bufsprite.cpp b/src/devices/video/bufsprite.cpp index b7cd1302158..1c7180ec8cd 100644 --- a/src/devices/video/bufsprite.cpp +++ b/src/devices/video/bufsprite.cpp @@ -17,34 +17,31 @@ //************************************************************************** // device type definition -const device_type BUFFERED_SPRITERAM8 = device_creator; -const device_type BUFFERED_SPRITERAM16 = device_creator; -const device_type BUFFERED_SPRITERAM32 = device_creator; -const device_type BUFFERED_SPRITERAM64 = device_creator; +DEFINE_DEVICE_TYPE(BUFFERED_SPRITERAM8, buffered_spriteram8_device, "buffered_spriteram8", "Buffered 8-bit Sprite RAM") +DEFINE_DEVICE_TYPE(BUFFERED_SPRITERAM16, buffered_spriteram16_device, "buffered_spriteram16", "Buffered 16-bit Sprite RAM") +DEFINE_DEVICE_TYPE(BUFFERED_SPRITERAM32, buffered_spriteram32_device, "buffered_spriteram32", "Buffered 32-bit Sprite RAM") +DEFINE_DEVICE_TYPE(BUFFERED_SPRITERAM64, buffered_spriteram64_device, "buffered_spriteram64", "Buffered 64-bit Sprite RAM") -template -buffered_spriteram_device<_Type>::buffered_spriteram_device( +template +buffered_spriteram_device::buffered_spriteram_device( const machine_config &mconfig, device_type type, - const char *name, const char *tag, device_t *owner, - uint32_t clock, - const char *shortname, - const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source) + uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) , m_spriteram(*this, DEVICE_SELF) { } -template -void buffered_spriteram_device<_Type>::device_start() +template +void buffered_spriteram_device::device_start() { - if (m_spriteram != nullptr) + if (m_spriteram) { - m_buffered.resize(m_spriteram.bytes() / sizeof(_Type)); + m_buffered.resize(m_spriteram.bytes() / sizeof(Type)); save_item(NAME(m_buffered)); } } @@ -52,27 +49,27 @@ void buffered_spriteram_device<_Type>::device_start() buffered_spriteram8_device::buffered_spriteram8_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : buffered_spriteram_device(mconfig, BUFFERED_SPRITERAM8, "Buffered 8-bit Sprite RAM", tag, owner, clock, "buffered_spriteram8", __FILE__) + : buffered_spriteram_device(mconfig, BUFFERED_SPRITERAM8, tag, owner, clock) { } buffered_spriteram16_device::buffered_spriteram16_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : buffered_spriteram_device(mconfig, BUFFERED_SPRITERAM16, "Buffered 16-bit Sprite RAM", tag, owner, clock, "buffered_spriteram16", __FILE__) + : buffered_spriteram_device(mconfig, BUFFERED_SPRITERAM16, tag, owner, clock) { } buffered_spriteram32_device::buffered_spriteram32_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : buffered_spriteram_device(mconfig, BUFFERED_SPRITERAM32, "Buffered 32-bit Sprite RAM", tag, owner, clock, "buffered_spriteram32", __FILE__) + : buffered_spriteram_device(mconfig, BUFFERED_SPRITERAM32, tag, owner, clock) { } buffered_spriteram64_device::buffered_spriteram64_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : buffered_spriteram_device(mconfig, BUFFERED_SPRITERAM64, "Buffered 64-bit Sprite RAM", tag, owner, clock, "buffered_spriteram64", __FILE__) + : buffered_spriteram_device(mconfig, BUFFERED_SPRITERAM64, tag, owner, clock) { } diff --git a/src/devices/video/bufsprite.h b/src/devices/video/bufsprite.h index 2293efef536..995f0894eaf 100644 --- a/src/devices/video/bufsprite.h +++ b/src/devices/video/bufsprite.h @@ -8,8 +8,8 @@ *********************************************************************/ -#ifndef MAME_DEVICES_VIDEO_BUFSPRITE_H -#define MAME_DEVICES_VIDEO_BUFSPRITE_H +#ifndef MAME_VIDEO_BUFSPRITE_H +#define MAME_VIDEO_BUFSPRITE_H #pragma once @@ -20,10 +20,10 @@ //************************************************************************** // device type definition -extern const device_type BUFFERED_SPRITERAM8; -extern const device_type BUFFERED_SPRITERAM16; -extern const device_type BUFFERED_SPRITERAM32; -extern const device_type BUFFERED_SPRITERAM64; +DECLARE_DEVICE_TYPE(BUFFERED_SPRITERAM8, buffered_spriteram8_device) +DECLARE_DEVICE_TYPE(BUFFERED_SPRITERAM16, buffered_spriteram16_device) +DECLARE_DEVICE_TYPE(BUFFERED_SPRITERAM32, buffered_spriteram32_device) +DECLARE_DEVICE_TYPE(BUFFERED_SPRITERAM64, buffered_spriteram64_device) @@ -48,50 +48,47 @@ extern const device_type BUFFERED_SPRITERAM64; // ======================> buffered_spriteram_device // base class to manage buffered spriteram -template +template class buffered_spriteram_device : public device_t { public: - // construction - buffered_spriteram_device( - const machine_config &mconfig, - device_type type, - const char *name, - const char *tag, - device_t *owner, - uint32_t clock, - const char *shortname, - const char *source); - // getters - _Type *live() const { return m_spriteram; } - _Type *buffer() { return &m_buffered[0]; } + Type *live() const { return m_spriteram; } + Type *buffer() { return &m_buffered[0]; } uint32_t bytes() const { return m_spriteram.bytes(); } // operations - _Type *copy(uint32_t srcoffset = 0, uint32_t srclength = 0x7fffffff) + Type *copy(uint32_t srcoffset = 0, uint32_t srclength = 0x7fffffff) { assert(m_spriteram != nullptr); if (m_spriteram != nullptr) - memcpy(&m_buffered[0], m_spriteram + srcoffset, (std::min)(srclength, m_spriteram.bytes() / sizeof(_Type) - srcoffset) * sizeof(_Type)); + memcpy(&m_buffered[0], m_spriteram + srcoffset, (std::min)(srclength, m_spriteram.bytes() / sizeof(Type) - srcoffset) * sizeof(Type)); return &m_buffered[0]; } // read/write handlers - void write(address_space &space, offs_t offset, _Type data, _Type mem_mask = ~_Type(0)) { copy(); } + void write(address_space &space, offs_t offset, Type data, Type mem_mask = ~Type(0)) { copy(); } // VBLANK handlers DECLARE_WRITE_LINE_MEMBER(vblank_copy_rising) { if (state) copy(); } DECLARE_WRITE_LINE_MEMBER(vblank_copy_falling) { if (!state) copy(); } protected: + // construction + buffered_spriteram_device( + const machine_config &mconfig, + device_type type, + const char *tag, + device_t *owner, + uint32_t clock); + // first-time setup virtual void device_start() override; private: // internal state - required_shared_ptr<_Type> m_spriteram; - std::vector<_Type> m_buffered; + required_shared_ptr m_spriteram; + std::vector m_buffered; }; @@ -135,4 +132,4 @@ public: }; -#endif // MAME_DEVICES_VIDEO_BUFSPRITE_H +#endif // MAME_VIDEO_BUFSPRITE_H diff --git a/src/devices/video/cdp1861.cpp b/src/devices/video/cdp1861.cpp index 9e3723bdfdd..72a4fec46a7 100644 --- a/src/devices/video/cdp1861.cpp +++ b/src/devices/video/cdp1861.cpp @@ -15,9 +15,9 @@ // MACROS / CONSTANTS //************************************************************************** -#define CDP1861_CYCLES_DMA_START 2*8 -#define CDP1861_CYCLES_DMA_ACTIVE 8*8 -#define CDP1861_CYCLES_DMA_WAIT 6*8 +#define CDP1861_CYCLES_DMA_START (2*8) +#define CDP1861_CYCLES_DMA_ACTIVE (8*8) +#define CDP1861_CYCLES_DMA_WAIT (6*8) @@ -26,7 +26,7 @@ //************************************************************************** // device type definition -const device_type CDP1861 = device_creator; +DEFINE_DEVICE_TYPE(CDP1861, cdp1861_device, "cdp1861", "RCA CDP1861") @@ -39,7 +39,7 @@ const device_type CDP1861 = device_creator; //------------------------------------------------- cdp1861_device::cdp1861_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, CDP1861, "CDP1861", tag, owner, clock, "cdp1861", __FILE__), + : device_t(mconfig, CDP1861, tag, owner, clock), device_video_interface(mconfig, *this), m_write_irq(*this), m_write_dma_out(*this), @@ -85,8 +85,8 @@ void cdp1861_device::device_start() void cdp1861_device::device_reset() { - m_int_timer->adjust(m_screen->time_until_pos(CDP1861_SCANLINE_INT_START, 0)); - m_efx_timer->adjust(m_screen->time_until_pos(CDP1861_SCANLINE_EFX_TOP_START, 0)); + m_int_timer->adjust(m_screen->time_until_pos(SCANLINE_INT_START, 0)); + m_efx_timer->adjust(m_screen->time_until_pos(SCANLINE_EFX_TOP_START, 0)); m_dma_timer->adjust(clocks_to_attotime(CDP1861_CYCLES_DMA_START)); m_disp = 0; @@ -110,14 +110,14 @@ void cdp1861_device::device_timer(emu_timer &timer, device_timer_id id, int para switch (id) { case TIMER_INT: - if (scanline == CDP1861_SCANLINE_INT_START) + if (scanline == SCANLINE_INT_START) { if (m_disp) { m_write_irq(ASSERT_LINE); } - m_int_timer->adjust(m_screen->time_until_pos( CDP1861_SCANLINE_INT_END, 0)); + m_int_timer->adjust(m_screen->time_until_pos( SCANLINE_INT_END, 0)); } else { @@ -126,31 +126,31 @@ void cdp1861_device::device_timer(emu_timer &timer, device_timer_id id, int para m_write_irq(CLEAR_LINE); } - m_int_timer->adjust(m_screen->time_until_pos(CDP1861_SCANLINE_INT_START, 0)); + m_int_timer->adjust(m_screen->time_until_pos(SCANLINE_INT_START, 0)); } break; case TIMER_EFX: switch (scanline) { - case CDP1861_SCANLINE_EFX_TOP_START: + case SCANLINE_EFX_TOP_START: m_write_efx(ASSERT_LINE); - m_efx_timer->adjust(m_screen->time_until_pos(CDP1861_SCANLINE_EFX_TOP_END, 0)); + m_efx_timer->adjust(m_screen->time_until_pos(SCANLINE_EFX_TOP_END, 0)); break; - case CDP1861_SCANLINE_EFX_TOP_END: + case SCANLINE_EFX_TOP_END: m_write_efx(CLEAR_LINE); - m_efx_timer->adjust(m_screen->time_until_pos(CDP1861_SCANLINE_EFX_BOTTOM_START, 0)); + m_efx_timer->adjust(m_screen->time_until_pos(SCANLINE_EFX_BOTTOM_START, 0)); break; - case CDP1861_SCANLINE_EFX_BOTTOM_START: + case SCANLINE_EFX_BOTTOM_START: m_write_efx(ASSERT_LINE); - m_efx_timer->adjust(m_screen->time_until_pos(CDP1861_SCANLINE_EFX_BOTTOM_END, 0)); + m_efx_timer->adjust(m_screen->time_until_pos(SCANLINE_EFX_BOTTOM_END, 0)); break; - case CDP1861_SCANLINE_EFX_BOTTOM_END: + case SCANLINE_EFX_BOTTOM_END: m_write_efx(CLEAR_LINE); - m_efx_timer->adjust(m_screen->time_until_pos(CDP1861_SCANLINE_EFX_TOP_START, 0)); + m_efx_timer->adjust(m_screen->time_until_pos(SCANLINE_EFX_TOP_START, 0)); break; } break; @@ -160,7 +160,7 @@ void cdp1861_device::device_timer(emu_timer &timer, device_timer_id id, int para { if (m_disp) { - if (scanline >= CDP1861_SCANLINE_DISPLAY_START && scanline < CDP1861_SCANLINE_DISPLAY_END) + if (scanline >= SCANLINE_DISPLAY_START && scanline < SCANLINE_DISPLAY_END) { m_write_dma_out(CLEAR_LINE); } @@ -174,7 +174,7 @@ void cdp1861_device::device_timer(emu_timer &timer, device_timer_id id, int para { if (m_disp) { - if (scanline >= CDP1861_SCANLINE_DISPLAY_START && scanline < CDP1861_SCANLINE_DISPLAY_END) + if (scanline >= SCANLINE_DISPLAY_START && scanline < SCANLINE_DISPLAY_END) { m_write_dma_out(ASSERT_LINE); } diff --git a/src/devices/video/cdp1861.h b/src/devices/video/cdp1861.h index c925583d853..41a9609b651 100644 --- a/src/devices/video/cdp1861.h +++ b/src/devices/video/cdp1861.h @@ -21,44 +21,14 @@ **********************************************************************/ -#ifndef MAME_DEVICES_VIDEO_CDP1861_H -#define MAME_DEVICES_VIDEO_CDP1861_H +#ifndef MAME_VIDEO_CDP1861_H +#define MAME_VIDEO_CDP1861_H #pragma once #include "screen.h" -//************************************************************************** -// MACROS / CONSTANTS -//************************************************************************** - -#define CDP1861_VISIBLE_COLUMNS 64 -#define CDP1861_VISIBLE_LINES 128 - -#define CDP1861_HBLANK_START 14 * 8 -#define CDP1861_HBLANK_END 12 -#define CDP1861_HSYNC_START 0 -#define CDP1861_HSYNC_END 12 -#define CDP1861_SCREEN_WIDTH 14 * 8 - -#define CDP1861_TOTAL_SCANLINES 262 - -#define CDP1861_SCANLINE_DISPLAY_START 80 -#define CDP1861_SCANLINE_DISPLAY_END 208 -#define CDP1861_SCANLINE_VBLANK_START 262 -#define CDP1861_SCANLINE_VBLANK_END 16 -#define CDP1861_SCANLINE_VSYNC_START 16 -#define CDP1861_SCANLINE_VSYNC_END 0 -#define CDP1861_SCANLINE_INT_START CDP1861_SCANLINE_DISPLAY_START - 2 -#define CDP1861_SCANLINE_INT_END CDP1861_SCANLINE_DISPLAY_START -#define CDP1861_SCANLINE_EFX_TOP_START CDP1861_SCANLINE_DISPLAY_START - 4 -#define CDP1861_SCANLINE_EFX_TOP_END CDP1861_SCANLINE_DISPLAY_START -#define CDP1861_SCANLINE_EFX_BOTTOM_START CDP1861_SCANLINE_DISPLAY_END - 4 -#define CDP1861_SCANLINE_EFX_BOTTOM_END CDP1861_SCANLINE_DISPLAY_END - - - //************************************************************************** // INTERFACE CONFIGURATION MACROS //************************************************************************** @@ -77,7 +47,7 @@ MCFG_VIDEO_SET_SCREEN(_tag) \ MCFG_SCREEN_ADD(_tag, RASTER) \ MCFG_SCREEN_UPDATE_DEVICE(_cdptag, cdp1861_device, screen_update) \ - MCFG_SCREEN_RAW_PARAMS(_clock, CDP1861_SCREEN_WIDTH, CDP1861_HBLANK_END, CDP1861_HBLANK_START, CDP1861_TOTAL_SCANLINES, CDP1861_SCANLINE_VBLANK_END, CDP1861_SCANLINE_VBLANK_START) + MCFG_SCREEN_RAW_PARAMS(_clock, cdp1861_device::SCREEN_WIDTH, cdp1861_device::HBLANK_END, cdp1861_device::HBLANK_START, cdp1861_device::TOTAL_SCANLINES, cdp1861_device::SCANLINE_VBLANK_END, cdp1861_device::SCANLINE_VBLANK_START) @@ -91,12 +61,36 @@ class cdp1861_device : public device_t, public device_video_interface { public: + static constexpr unsigned VISIBLE_COLUMNS = 64; + static constexpr unsigned VISIBLE_LINES = 128; + + static constexpr unsigned HBLANK_START = 14 * 8; + static constexpr unsigned HBLANK_END = 12; + static constexpr unsigned HSYNC_START = 0; + static constexpr unsigned HSYNC_END = 12; + static constexpr unsigned SCREEN_WIDTH = 14 * 8; + + static constexpr unsigned TOTAL_SCANLINES = 262; + + static constexpr unsigned SCANLINE_DISPLAY_START = 80; + static constexpr unsigned SCANLINE_DISPLAY_END = 208; + static constexpr unsigned SCANLINE_VBLANK_START = 262; + static constexpr unsigned SCANLINE_VBLANK_END = 16; + static constexpr unsigned SCANLINE_VSYNC_START = 16; + static constexpr unsigned SCANLINE_VSYNC_END = 0; + static constexpr unsigned SCANLINE_INT_START = SCANLINE_DISPLAY_START - 2; + static constexpr unsigned SCANLINE_INT_END = SCANLINE_DISPLAY_START; + static constexpr unsigned SCANLINE_EFX_TOP_START = SCANLINE_DISPLAY_START - 4; + static constexpr unsigned SCANLINE_EFX_TOP_END = SCANLINE_DISPLAY_START; + static constexpr unsigned SCANLINE_EFX_BOTTOM_START = SCANLINE_DISPLAY_END - 4; + static constexpr unsigned SCANLINE_EFX_BOTTOM_END = SCANLINE_DISPLAY_END; + // construction/destruction cdp1861_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_irq_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_irq.set_callback(object); } - template static devcb_base &set_dma_out_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_dma_out.set_callback(object); } - template static devcb_base &set_efx_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_efx.set_callback(object); } + template static devcb_base &set_irq_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_irq.set_callback(std::forward(cb)); } + template static devcb_base &set_dma_out_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_dma_out.set_callback(std::forward(cb)); } + template static devcb_base &set_efx_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_efx.set_callback(std::forward(cb)); } DECLARE_WRITE8_MEMBER( dma_w ); DECLARE_WRITE_LINE_MEMBER( disp_on_w ); @@ -137,7 +131,6 @@ private: // device type definition -extern const device_type CDP1861; - +DECLARE_DEVICE_TYPE(CDP1861, cdp1861_device) -#endif // MAME_DEVICES_VIDEO_CDP1861_H +#endif // MAME_VIDEO_CDP1861_H diff --git a/src/devices/video/cdp1862.cpp b/src/devices/video/cdp1862.cpp index 4d7525195c0..498bb4a8584 100644 --- a/src/devices/video/cdp1862.cpp +++ b/src/devices/video/cdp1862.cpp @@ -17,7 +17,7 @@ // MACROS / CONSTANTS //************************************************************************** -static const int CDP1862_BACKGROUND_COLOR_SEQUENCE[] = { 2, 0, 1, 4 }; +static constexpr int CDP1862_BACKGROUND_COLOR_SEQUENCE[] = { 2, 0, 1, 4 }; @@ -26,7 +26,7 @@ static const int CDP1862_BACKGROUND_COLOR_SEQUENCE[] = { 2, 0, 1, 4 }; //************************************************************************** // device type definition -const device_type CDP1862 = device_creator; +DEFINE_DEVICE_TYPE(CDP1862, cdp1862_device, "cdp1862", "RCA CDP1862") @@ -79,7 +79,7 @@ inline void cdp1862_device::initialize_palette() //------------------------------------------------- cdp1862_device::cdp1862_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, CDP1862, "CDP1862", tag, owner, clock, "cdp1862", __FILE__), + : device_t(mconfig, CDP1862, tag, owner, clock), device_video_interface(mconfig, *this), m_read_rd(*this), m_read_bd(*this), diff --git a/src/devices/video/cdp1862.h b/src/devices/video/cdp1862.h index c93cf05c2c5..d0699565f6b 100644 --- a/src/devices/video/cdp1862.h +++ b/src/devices/video/cdp1862.h @@ -21,10 +21,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_VIDEO_CDP1862_H +#define MAME_VIDEO_CDP1862_H -#ifndef __CDP1862__ -#define __CDP1862__ +#pragma once @@ -71,9 +71,9 @@ public: // construction/destruction cdp1862_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_rd_rd_callback(device_t &device, _Object object) { return downcast(device).m_read_rd.set_callback(object); } - template static devcb_base &set_bd_rd_callback(device_t &device, _Object object) { return downcast(device).m_read_bd.set_callback(object); } - template static devcb_base &set_gd_rd_callback(device_t &device, _Object object) { return downcast(device).m_read_gd.set_callback(object); } + template static devcb_base &set_rd_rd_callback(device_t &device, Object &&cb) { return downcast(device).m_read_rd.set_callback(std::forward(cb)); } + template static devcb_base &set_bd_rd_callback(device_t &device, Object &&cb) { return downcast(device).m_read_bd.set_callback(std::forward(cb)); } + template static devcb_base &set_gd_rd_callback(device_t &device, Object &&cb) { return downcast(device).m_read_gd.set_callback(std::forward(cb)); } static void static_set_luminance(device_t &device, double r, double b, double g, double bkg) { downcast(device).m_lum_r = r; downcast(device).m_lum_b = b; downcast(device).m_lum_g = g; downcast(device).m_lum_bkg = bkg; } static void static_set_chrominance(device_t &device, double r, double b, double g, double bkg) { downcast(device).m_chr_r = r; downcast(device).m_chr_b = b; downcast(device).m_chr_g = g; downcast(device).m_chr_bkg = bkg; } @@ -115,8 +115,6 @@ private: // device type definition -extern const device_type CDP1862; - - +DECLARE_DEVICE_TYPE(CDP1862, cdp1862_device) -#endif +#endif // MAME_VIDEO_CDP1862_H diff --git a/src/devices/video/cesblit.cpp b/src/devices/video/cesblit.cpp index 88d98f5ea84..e25b4cb56c5 100644 --- a/src/devices/video/cesblit.cpp +++ b/src/devices/video/cesblit.cpp @@ -60,7 +60,7 @@ ***************************************************************************/ // device type definition -const device_type CESBLIT = device_creator; +DEFINE_DEVICE_TYPE(CESBLIT, cesblit_device, "cesblit", "CES Blitter FPGA") /*************************************************************************** LIVE DEVICE @@ -71,12 +71,13 @@ const device_type CESBLIT = device_creator; //------------------------------------------------- cesblit_device::cesblit_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, CESBLIT, "CES Blitter FPGA", tag, owner, clock, "cesblit", __FILE__), + device_t(mconfig, CESBLIT, tag, owner, clock), device_video_interface(mconfig, *this), device_memory_interface(mconfig, *this), - m_space_config("blitter_space", ENDIANNESS_BIG, 16,23), + m_space_config("blitter_space", ENDIANNESS_BIG, 16, 23), m_blit_irq_cb(*this) -{ } +{ +} //------------------------------------------------- // device_start - device-specific startup diff --git a/src/devices/video/cesblit.h b/src/devices/video/cesblit.h index 24aa79f3a70..93b0598c830 100644 --- a/src/devices/video/cesblit.h +++ b/src/devices/video/cesblit.h @@ -6,10 +6,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_VIDEO_CESBLIT_H +#define MAME_VIDEO_CESBLIT_H -#ifndef CESBLIT_H -#define CESBLIT_H +#pragma once /*************************************************************************** INTERFACE CONFIGURATION MACROS @@ -46,7 +46,7 @@ public: // static configuration void set_compute_addr(compute_addr_t compute_addr) { m_compute_addr = compute_addr; } static void static_set_compute_addr(device_t &device, compute_addr_t compute_addr) { downcast(device).set_compute_addr(compute_addr); } - template static devcb_base &static_set_irq_callback(device_t &device, _Object object) { return downcast(device).m_blit_irq_cb.set_callback(object); } + template static devcb_base &static_set_irq_callback(device_t &device, Object &&cb) { return downcast(device).m_blit_irq_cb.set_callback(std::forward(cb)); } DECLARE_WRITE16_MEMBER(color_w); DECLARE_WRITE16_MEMBER(addr_hi_w); @@ -59,7 +59,7 @@ protected: // device-level overrides virtual void device_start() override; virtual void device_stop() override; - virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_PROGRAM) const override { return (spacenum == AS_PROGRAM) ? &m_space_config: nullptr; } + virtual const address_space_config *memory_space_config(address_spacenum spacenum) const override { return (spacenum == AS_PROGRAM) ? &m_space_config : nullptr; } void do_blit(); @@ -80,6 +80,6 @@ protected: ***************************************************************************/ // device type definition -extern const device_type CESBLIT; +DECLARE_DEVICE_TYPE(CESBLIT, cesblit_device) -#endif +#endif // MAME_VIDEO_CESBLIT_H diff --git a/src/devices/video/cgapal.h b/src/devices/video/cgapal.h index c5dfafd636e..15c282be953 100644 --- a/src/devices/video/cgapal.h +++ b/src/devices/video/cgapal.h @@ -1,5 +1,11 @@ // license:BSD-3-Clause // copyright-holders:Wilbert Pol -#define CGA_PALETTE_SETS 83 /* one for colour, one for mono, - * 81 for colour composite */ +#ifndef MAME_VIDEO_CGAPAL_H +#define MAME_VIDEO_CGAPAL_H + +#pragma once + +static constexpr unsigned CGA_PALETTE_SETS = 83; // one for colour, one for mono, 81 for colour composite extern const unsigned char cga_palette[16 * CGA_PALETTE_SETS][3]; + +#endif // MAME_VIDEO_CGAPAL_H diff --git a/src/devices/video/clgd542x.cpp b/src/devices/video/clgd542x.cpp index bcb36beef49..e14f268d18b 100644 --- a/src/devices/video/clgd542x.cpp +++ b/src/devices/video/clgd542x.cpp @@ -41,22 +41,22 @@ #define TEXT_COPY_9COLUMN(ch) (((ch & 0xe0) == 0xc0)&&(vga.attribute.data[0x10]&4)) -const device_type CIRRUS_GD5428 = device_creator; -const device_type CIRRUS_GD5430 = device_creator; +DEFINE_DEVICE_TYPE(CIRRUS_GD5428, cirrus_gd5428_device, "clgd5428", "Cirrus Logic GD5428") +DEFINE_DEVICE_TYPE(CIRRUS_GD5430, cirrus_gd5430_device, "clgd5430", "Cirrus Logic GD5430") cirrus_gd5428_device::cirrus_gd5428_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cirrus_gd5428_device(mconfig, CIRRUS_GD5428, "Cirrus Logic GD5428", tag, owner, clock, "clgd5428", __FILE__) + : cirrus_gd5428_device(mconfig, CIRRUS_GD5428, tag, owner, clock) { } -cirrus_gd5428_device::cirrus_gd5428_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : svga_device(mconfig, type, name, tag, owner, clock, shortname, source) +cirrus_gd5428_device::cirrus_gd5428_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : svga_device(mconfig, type, tag, owner, clock) { } cirrus_gd5430_device::cirrus_gd5430_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cirrus_gd5428_device(mconfig, CIRRUS_GD5430, "Cirrus Logic GD5430", tag, owner, clock, "clgd5430", __FILE__) + : cirrus_gd5428_device(mconfig, CIRRUS_GD5430, tag, owner, clock) { } diff --git a/src/devices/video/clgd542x.h b/src/devices/video/clgd542x.h index 1579c2a0c0b..9bfffe8a15e 100644 --- a/src/devices/video/clgd542x.h +++ b/src/devices/video/clgd542x.h @@ -5,6 +5,10 @@ Cirrus Logic GD542x/3x video chipsets */ +#ifndef MAME_VIDEO_CLGD542X_H +#define MAME_VIDEO_CLGD542X_H + +#pragma once #include "video/pc_vga.h" @@ -16,7 +20,7 @@ class cirrus_gd5428_device : public svga_device public: // construction/destruction cirrus_gd5428_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - cirrus_gd5428_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); + virtual READ8_MEMBER(port_03c0_r) override; virtual WRITE8_MEMBER(port_03c0_w) override; virtual READ8_MEMBER(port_03b0_r) override; @@ -27,7 +31,10 @@ public: virtual WRITE8_MEMBER(mem_w) override; virtual uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) override; + protected: + cirrus_gd5428_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -83,6 +90,7 @@ protected: uint8_t m_vclk_denom[4]; inline uint8_t cirrus_vga_latch_write(int offs, uint8_t data); + private: void cirrus_define_video_mode(); uint8_t cirrus_seq_reg_read(uint8_t index); @@ -104,10 +112,13 @@ class cirrus_gd5430_device : public cirrus_gd5428_device { public: cirrus_gd5430_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + protected: virtual void device_start() override; }; // device type definition -extern const device_type CIRRUS_GD5428; -extern const device_type CIRRUS_GD5430; +DECLARE_DEVICE_TYPE(CIRRUS_GD5428, cirrus_gd5428_device) +DECLARE_DEVICE_TYPE(CIRRUS_GD5430, cirrus_gd5430_device) + +#endif // MAME_VIDEO_CLGD542X_H diff --git a/src/devices/video/crt9007.cpp b/src/devices/video/crt9007.cpp index 90eb521ffc2..bf018d821f7 100644 --- a/src/devices/video/crt9007.cpp +++ b/src/devices/video/crt9007.cpp @@ -36,13 +36,16 @@ #include "screen.h" +//#define VERBOSE 1 +#include "logmacro.h" + //************************************************************************** // DEVICE DEFINITIONS //************************************************************************** -const device_type CRT9007 = device_creator; +DEFINE_DEVICE_TYPE(CRT9007, crt9007_device, "crt9007", "SMC SRT9007 VPAC") @@ -50,8 +53,6 @@ const device_type CRT9007 = device_creator; // MACROS / CONSTANTS //************************************************************************** -#define LOG 0 - #define HAS_VALID_PARAMETERS \ (m_reg[0x00] && m_reg[0x01] && m_reg[0x07] && m_reg[0x08] && m_reg[0x09]) @@ -221,7 +222,7 @@ const int STATUS_LIGHT_PEN_UPDATE = 0x20; //************************************************************************** // default address map -static ADDRESS_MAP_START( crt9007, AS_0, 8, crt9007_t ) +static ADDRESS_MAP_START( crt9007, AS_0, 8, crt9007_device ) AM_RANGE(0x0000, 0x3fff) AM_RAM ADDRESS_MAP_END @@ -235,7 +236,7 @@ ADDRESS_MAP_END // readbyte - read a byte at the given address //------------------------------------------------- -inline uint8_t crt9007_t::readbyte(offs_t address) +inline uint8_t crt9007_device::readbyte(offs_t address) { return space().read_byte(address); } @@ -245,7 +246,7 @@ inline uint8_t crt9007_t::readbyte(offs_t address) // trigger_interrupt - //------------------------------------------------- -inline void crt9007_t::trigger_interrupt(int line) +inline void crt9007_device::trigger_interrupt(int line) { if (INTERRUPT_ENABLE & line) { @@ -255,7 +256,7 @@ inline void crt9007_t::trigger_interrupt(int line) if (!(status & STATUS_INTERRUPT_PENDING)) { - if (LOG) logerror("CRT9007 '%s' INT 1\n", tag()); + LOG("CRT9007 INT 1\n"); m_write_int(ASSERT_LINE); } } @@ -266,7 +267,7 @@ inline void crt9007_t::trigger_interrupt(int line) // update_cblank_line - //------------------------------------------------- -inline void crt9007_t::update_cblank_line() +inline void crt9007_device::update_cblank_line() { int x = m_screen->hpos(); int y = m_screen->vpos(); @@ -278,7 +279,7 @@ inline void crt9007_t::update_cblank_line() { m_cblank = cblank; - if (LOG) logerror("CRT9007 '%s' y %03u x %04u : CBLANK %u\n", tag(), y, x, m_cblank); + LOG("CRT9007 y %03u x %04u : CBLANK %u\n", y, x, m_cblank); m_write_cblank(m_cblank); } @@ -289,7 +290,7 @@ inline void crt9007_t::update_cblank_line() // update_hsync_timer - //------------------------------------------------- -inline void crt9007_t::update_hsync_timer(int state) +inline void crt9007_device::update_hsync_timer(int state) { int y = m_screen->vpos(); @@ -306,7 +307,7 @@ inline void crt9007_t::update_hsync_timer(int state) // update_vsync_timer - //------------------------------------------------- -inline void crt9007_t::update_vsync_timer(int state) +inline void crt9007_device::update_vsync_timer(int state) { int next_y = state ? m_vsync_start : m_vsync_end; @@ -320,7 +321,7 @@ inline void crt9007_t::update_vsync_timer(int state) // update_vlt_timer - //------------------------------------------------- -inline void crt9007_t::update_vlt_timer(int state) +inline void crt9007_device::update_vlt_timer(int state) { // this signal is active during all visible scan lines and during the horizontal trace at vertical retrace int y = m_screen->vpos(); @@ -338,7 +339,7 @@ inline void crt9007_t::update_vlt_timer(int state) // update_curs_timer - //------------------------------------------------- -inline void crt9007_t::update_curs_timer(int state) +inline void crt9007_device::update_curs_timer(int state) { // this signal is active for 1 character time for all scanlines within the data row // TODO @@ -349,7 +350,7 @@ inline void crt9007_t::update_curs_timer(int state) // update_drb_timer - //------------------------------------------------- -inline void crt9007_t::update_drb_timer(int state) +inline void crt9007_device::update_drb_timer(int state) { // this signal is active for 1 full scan line (VLT edge to edge) at the top scan line of each new row // there is 1 extra DRB signal during the 1st scanline of the vertical retrace interval @@ -385,7 +386,7 @@ inline void crt9007_t::update_drb_timer(int state) // update_dma_timer - //------------------------------------------------- -inline void crt9007_t::update_dma_timer() +inline void crt9007_device::update_dma_timer() { // TODO } @@ -395,7 +396,7 @@ inline void crt9007_t::update_dma_timer() // recompute_parameters - //------------------------------------------------- -inline void crt9007_t::recompute_parameters() +inline void crt9007_device::recompute_parameters() { // check that necessary registers have been loaded if (!HAS_VALID_PARAMETERS) return; @@ -428,11 +429,8 @@ inline void crt9007_t::recompute_parameters() //visarea.set(m_hsync_end, horiz_pix_total - 1, m_vsync_end, vert_pix_total - 1); - //if (LOG) - //{ - // logerror("CRT9007 '%s' Screen: %u x %u @ %f Hz\n", tag(), horiz_pix_total, vert_pix_total, 1 / ATTOSECONDS_TO_DOUBLE(refresh)); - // logerror("CRT9007 '%s' Visible Area: (%u, %u) - (%u, %u)\n", tag(), visarea.min_x, visarea.min_y, visarea.max_x, visarea.max_y); - //} + //LOG("CRT9007 Screen: %u x %u @ %f Hz\n", horiz_pix_total, vert_pix_total, 1 / ATTOSECONDS_TO_DOUBLE(refresh)); + //LOG("CRT9007 Visible Area: (%u, %u) - (%u, %u)\n", visarea.min_x, visarea.min_y, visarea.max_x, visarea.max_y); //m_screen->configure(horiz_pix_total, vert_pix_total, visarea, refresh); @@ -448,11 +446,11 @@ inline void crt9007_t::recompute_parameters() //************************************************************************** //------------------------------------------------- -// crt9007_t - constructor +// crt9007_device - constructor //------------------------------------------------- -crt9007_t::crt9007_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, CRT9007, "SMC CRT9007", tag, owner, clock, "crt9007", __FILE__), +crt9007_device::crt9007_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, CRT9007, tag, owner, clock), device_memory_interface(mconfig, *this), device_video_interface(mconfig, *this), m_space_config("videoram", ENDIANNESS_LITTLE, 8, 14, 0, nullptr, *ADDRESS_MAP_NAME(crt9007)), @@ -477,7 +475,7 @@ crt9007_t::crt9007_t(const machine_config &mconfig, const char *tag, device_t *o // device_start - device-specific startup //------------------------------------------------- -void crt9007_t::device_start() +void crt9007_device::device_start() { // allocate timers m_hsync_timer = timer_alloc(TIMER_HSYNC); @@ -506,7 +504,7 @@ void crt9007_t::device_start() // device_reset - device-specific reset //------------------------------------------------- -void crt9007_t::device_reset() +void crt9007_device::device_reset() { m_disp = 0; m_vs = 0; @@ -553,7 +551,7 @@ void crt9007_t::device_reset() // device_clock_changed - handle clock change //------------------------------------------------- -void crt9007_t::device_clock_changed() +void crt9007_device::device_clock_changed() { recompute_parameters(); } @@ -563,7 +561,7 @@ void crt9007_t::device_clock_changed() // device_timer - handle timer events //------------------------------------------------- -void crt9007_t::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) +void crt9007_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) { int x = m_screen->hpos(); int y = m_screen->vpos(); @@ -573,7 +571,7 @@ void crt9007_t::device_timer(emu_timer &timer, device_timer_id id, int param, vo case TIMER_HSYNC: m_hs = param; - if (LOG) logerror("CRT9007 '%s' y %03u x %04u : HS %u\n", tag(), y, x, m_hs); + LOG("CRT9007 y %03u x %04u : HS %u\n", y, x, m_hs); m_write_hs(m_hs); @@ -585,7 +583,7 @@ void crt9007_t::device_timer(emu_timer &timer, device_timer_id id, int param, vo case TIMER_VSYNC: m_vs = param; - if (LOG) logerror("CRT9007 '%s' y %03u x %04u : VS %u\n", tag(), y, x, m_vs); + LOG("CRT9007 y %03u x %04u : VS %u\n", y, x, m_vs); m_write_vs(param); @@ -607,7 +605,7 @@ void crt9007_t::device_timer(emu_timer &timer, device_timer_id id, int param, vo case TIMER_VLT: m_vlt = param; - if (LOG) logerror("CRT9007 '%s' y %03u x %04u : VLT %u\n", tag(), y, x, m_vlt); + LOG("CRT9007 y %03u x %04u : VLT %u\n", y, x, m_vlt); m_write_vlt(param); @@ -615,7 +613,7 @@ void crt9007_t::device_timer(emu_timer &timer, device_timer_id id, int param, vo break; case TIMER_CURS: - if (LOG) logerror("CRT9007 '%s' y %03u x %04u : CURS %u\n", tag(), y, x, param); + LOG("CRT9007 y %03u x %04u : CURS %u\n", y, x, param); m_write_curs(param); @@ -625,7 +623,7 @@ void crt9007_t::device_timer(emu_timer &timer, device_timer_id id, int param, vo case TIMER_DRB: m_drb = param; - if (LOG) logerror("CRT9007 '%s' y %03u x %04u : DRB %u\n", tag(), y, x, m_drb); + LOG("CRT9007 y %03u x %04u : DRB %u\n", y, x, m_drb); m_write_drb(param); @@ -637,7 +635,7 @@ void crt9007_t::device_timer(emu_timer &timer, device_timer_id id, int param, vo m_dma_delay = DMA_BURST_DELAY; m_dmar = 1; - if (LOG) logerror("CRT9007 '%s' DMAR 1\n", tag()); + LOG("CRT9007 DMAR 1\n"); m_write_dmar(ASSERT_LINE); } @@ -658,7 +656,7 @@ void crt9007_t::device_timer(emu_timer &timer, device_timer_id id, int param, vo // any address spaces owned by this device //------------------------------------------------- -const address_space_config *crt9007_t::memory_space_config(address_spacenum spacenum) const +const address_space_config *crt9007_device::memory_space_config(address_spacenum spacenum) const { return (spacenum == AS_0) ? &m_space_config : nullptr; } @@ -668,19 +666,19 @@ const address_space_config *crt9007_t::memory_space_config(address_spacenum spac // read - register read //------------------------------------------------- -READ8_MEMBER( crt9007_t::read ) +READ8_MEMBER( crt9007_device::read ) { uint8_t data = 0; switch (offset) { case 0x15: - if (LOG) logerror("CRT9007 '%s' Start\n", tag()); + LOG("CRT9007 Start\n"); m_disp = 1; break; case 0x16: - if (LOG) logerror("CRT9007 '%s' Reset\n", tag()); + LOG("CRT9007 Reset\n"); device_reset(); break; @@ -697,7 +695,7 @@ READ8_MEMBER( crt9007_t::read ) // reset interrupt pending bit m_status &= ~STATUS_INTERRUPT_PENDING; - if (LOG) logerror("CRT9007 '%s' INT 0\n", tag()); + LOG("CRT9007 INT 0\n"); m_write_int(CLEAR_LINE); break; @@ -713,7 +711,7 @@ READ8_MEMBER( crt9007_t::read ) break; default: - logerror("CRT9007 '%s' Read from Invalid Register: %02x!\n", tag(), offset); + logerror("CRT9007 Read from Invalid Register: %02x!\n", offset); } return data; @@ -724,7 +722,7 @@ READ8_MEMBER( crt9007_t::read ) // write - register write //------------------------------------------------- -WRITE8_MEMBER( crt9007_t::write ) +WRITE8_MEMBER( crt9007_device::write ) { m_reg[offset] = data; @@ -732,160 +730,136 @@ WRITE8_MEMBER( crt9007_t::write ) { case 0x00: recompute_parameters(); - if (LOG) logerror("CRT9007 '%s' Characters per Horizontal Period: %u\n", tag(), CHARACTERS_PER_HORIZONTAL_PERIOD); + LOG("CRT9007 Characters per Horizontal Period: %u\n", CHARACTERS_PER_HORIZONTAL_PERIOD); break; case 0x01: recompute_parameters(); - if (LOG) logerror("CRT9007 '%s' Characters per Data Row: %u\n", tag(), CHARACTERS_PER_DATA_ROW); + LOG("CRT9007 Characters per Data Row: %u\n", CHARACTERS_PER_DATA_ROW); break; case 0x02: recompute_parameters(); - if (LOG) logerror("CRT9007 '%s' Horizontal Delay: %u\n", tag(), HORIZONTAL_DELAY); + LOG("CRT9007 Horizontal Delay: %u\n", HORIZONTAL_DELAY); break; case 0x03: recompute_parameters(); - if (LOG) logerror("CRT9007 '%s' Horizontal Sync Width: %u\n", tag(), HORIZONTAL_SYNC_WIDTH); + LOG("CRT9007 Horizontal Sync Width: %u\n", HORIZONTAL_SYNC_WIDTH); break; case 0x04: recompute_parameters(); - if (LOG) logerror("CRT9007 '%s' Vertical Sync Width: %u\n", tag(), VERTICAL_SYNC_WIDTH); + LOG("CRT9007 Vertical Sync Width: %u\n", VERTICAL_SYNC_WIDTH); break; case 0x05: recompute_parameters(); - if (LOG) logerror("CRT9007 '%s' Vertical Delay: %u\n", tag(), VERTICAL_DELAY); + LOG("CRT9007 Vertical Delay: %u\n", VERTICAL_DELAY); break; case 0x06: recompute_parameters(); - if (LOG) - { - logerror("CRT9007 '%s' Pin Configuration: %u\n", tag(), PIN_CONFIGURATION); - logerror("CRT9007 '%s' Cursor Skew: %u\n", tag(), CURSOR_SKEW); - logerror("CRT9007 '%s' Blank Skew: %u\n", tag(), BLANK_SKEW); - } + LOG("CRT9007 Pin Configuration: %u\n", PIN_CONFIGURATION); + LOG("CRT9007 Cursor Skew: %u\n", CURSOR_SKEW); + LOG("CRT9007 Blank Skew: %u\n", BLANK_SKEW); break; case 0x07: recompute_parameters(); - if (LOG) logerror("CRT9007 '%s' Visible Data Rows per Frame: %u\n", tag(), VISIBLE_DATA_ROWS_PER_FRAME); + LOG("CRT9007 Visible Data Rows per Frame: %u\n", VISIBLE_DATA_ROWS_PER_FRAME); break; case 0x08: recompute_parameters(); - if (LOG) logerror("CRT9007 '%s' Scan Lines per Data Row: %u\n", tag(), SCAN_LINES_PER_DATA_ROW); + LOG("CRT9007 Scan Lines per Data Row: %u\n", SCAN_LINES_PER_DATA_ROW); break; case 0x09: recompute_parameters(); - if (LOG) logerror("CRT9007 '%s' Scan Lines per Frame: %u\n", tag(), SCAN_LINES_PER_FRAME); + LOG("CRT9007 Scan Lines per Frame: %u\n", SCAN_LINES_PER_FRAME); break; case 0x0a: - if (LOG) - { - logerror("CRT9007 '%s' DMA Burst Count: %u\n", tag(), DMA_BURST_COUNT); - logerror("CRT9007 '%s' DMA Burst Delay: %u\n", tag(), DMA_BURST_DELAY); - logerror("CRT9007 '%s' DMA Disable: %u\n", tag(), DMA_DISABLE); - } + LOG("CRT9007 DMA Burst Count: %u\n", DMA_BURST_COUNT); + LOG("CRT9007 DMA Burst Delay: %u\n", DMA_BURST_DELAY); + LOG("CRT9007 DMA Disable: %u\n", DMA_DISABLE); break; case 0x0b: - if (LOG) - { - logerror("CRT9007 '%s' %s Height Cursor\n", tag(), SINGLE_HEIGHT_CURSOR ? "Single" : "Double"); - logerror("CRT9007 '%s' Operation Mode: %u\n", tag(), OPERATION_MODE); - logerror("CRT9007 '%s' Interlace Mode: %u\n", tag(), INTERLACE_MODE); - logerror("CRT9007 '%s' %s Mechanism\n", tag(), PAGE_BLANK ? "Page Blank" : "Smooth Scroll"); - } + LOG("CRT9007 %s Height Cursor\n", SINGLE_HEIGHT_CURSOR ? "Single" : "Double"); + LOG("CRT9007 Operation Mode: %u\n", OPERATION_MODE); + LOG("CRT9007 Interlace Mode: %u\n", INTERLACE_MODE); + LOG("CRT9007 %s Mechanism\n", PAGE_BLANK ? "Page Blank" : "Smooth Scroll"); break; case 0x0c: break; case 0x0d: - if (LOG) - { - logerror("CRT9007 '%s' Table Start Register: %04x\n", tag(), TABLE_START); - logerror("CRT9007 '%s' Address Mode: %u\n", tag(), ADDRESS_MODE); - } + LOG("CRT9007 Table Start Register: %04x\n", TABLE_START); + LOG("CRT9007 Address Mode: %u\n", ADDRESS_MODE); break; case 0x0e: break; case 0x0f: - if (LOG) - { - logerror("CRT9007 '%s' Auxialiary Address Register 1: %04x\n", tag(), AUXILIARY_ADDRESS_1); - logerror("CRT9007 '%s' Row Attributes: %u\n", tag(), ROW_ATTRIBUTES_1); - } + LOG("CRT9007 Auxialiary Address Register 1: %04x\n", AUXILIARY_ADDRESS_1); + LOG("CRT9007 Row Attributes: %u\n", ROW_ATTRIBUTES_1); break; case 0x10: - if (LOG) logerror("CRT9007 '%s' Sequential Break Register 1: %u\n", tag(), SEQUENTIAL_BREAK_1); + LOG("CRT9007 Sequential Break Register 1: %u\n", SEQUENTIAL_BREAK_1); break; case 0x11: - if (LOG) logerror("CRT9007 '%s' Data Row Start Register: %u\n", tag(), DATA_ROW_START); + LOG("CRT9007 Data Row Start Register: %u\n", DATA_ROW_START); break; case 0x12: - if (LOG) logerror("CRT9007 '%s' Data Row End/Sequential Break Register 2: %u\n", tag(), SEQUENTIAL_BREAK_2); + LOG("CRT9007 Data Row End/Sequential Break Register 2: %u\n", SEQUENTIAL_BREAK_2); break; case 0x13: break; case 0x14: - if (LOG) - { - logerror("CRT9007 '%s' Auxiliary Address Register 2: %04x\n", tag(), AUXILIARY_ADDRESS_2); - logerror("CRT9007 '%s' Row Attributes: %u\n", tag(), ROW_ATTRIBUTES_2); - } + LOG("CRT9007 Auxiliary Address Register 2: %04x\n", AUXILIARY_ADDRESS_2); + LOG("CRT9007 Row Attributes: %u\n", ROW_ATTRIBUTES_2); break; case 0x15: - if (LOG) logerror("CRT9007 '%s' Start\n", tag()); + LOG("CRT9007 Start\n"); m_disp = 1; break; case 0x16: - if (LOG) logerror("CRT9007 '%s' Reset\n", tag()); + LOG("CRT9007 Reset\n"); device_reset(); break; case 0x17: - if (LOG) - { - logerror("CRT9007 '%s' Smooth Scroll Offset: %u\n", tag(), SMOOTH_SCROLL_OFFSET); - logerror("CRT9007 '%s' Smooth Scroll Offset Overflow: %u\n", tag(), SMOOTH_SCROLL_OFFSET_OVERFLOW); - } + LOG("CRT9007 Smooth Scroll Offset: %u\n", SMOOTH_SCROLL_OFFSET); + LOG("CRT9007 Smooth Scroll Offset Overflow: %u\n", SMOOTH_SCROLL_OFFSET_OVERFLOW); break; case 0x18: - if (LOG) logerror("CRT9007 '%s' Vertical Cursor Register: %u\n", tag(), VERTICAL_CURSOR); + LOG("CRT9007 Vertical Cursor Register: %u\n", VERTICAL_CURSOR); break; case 0x19: - if (LOG) logerror("CRT9007 '%s' Horizontal Cursor Register: %u\n", tag(), HORIZONTAL_CURSOR); + LOG("CRT9007 Horizontal Cursor Register: %u\n", HORIZONTAL_CURSOR); break; case 0x1a: - if (LOG) - { - logerror("CRT9007 '%s' Frame Timer: %u\n", tag(), FRAME_TIMER); - logerror("CRT9007 '%s' Light Pen Interrupt: %u\n", tag(), LIGHT_PEN_INTERRUPT); - logerror("CRT9007 '%s' Vertical Retrace Interrupt: %u\n", tag(), VERTICAL_RETRACE_INTERRUPT); - } + LOG("CRT9007 Frame Timer: %u\n", FRAME_TIMER); + LOG("CRT9007 Light Pen Interrupt: %u\n", LIGHT_PEN_INTERRUPT); + LOG("CRT9007 Vertical Retrace Interrupt: %u\n", VERTICAL_RETRACE_INTERRUPT); break; default: - logerror("CRT9007 '%s' Write to Invalid Register: %02x!\n", tag(), offset); + logerror("CRT9007 Write to Invalid Register: %02x!\n", offset); } } @@ -894,9 +868,9 @@ WRITE8_MEMBER( crt9007_t::write ) // ack_w - DMA acknowledge //------------------------------------------------- -WRITE_LINE_MEMBER( crt9007_t::ack_w ) +WRITE_LINE_MEMBER( crt9007_device::ack_w ) { - if (LOG) logerror("CRT9007 '%s' ACK: %u\n", tag(), state); + LOG("CRT9007 ACK: %u\n", state); if (m_dmar && !m_ack && state) { @@ -912,9 +886,9 @@ WRITE_LINE_MEMBER( crt9007_t::ack_w ) // lpstb_w - light pen strobe //------------------------------------------------- -WRITE_LINE_MEMBER( crt9007_t::lpstb_w ) +WRITE_LINE_MEMBER( crt9007_device::lpstb_w ) { - if (LOG) logerror("CRT9007 '%s' LPSTB: %u\n", tag(), state); + LOG("CRT9007 LPSTB: %u\n", state); if (!m_lpstb && state) { @@ -929,7 +903,7 @@ WRITE_LINE_MEMBER( crt9007_t::lpstb_w ) // set_character_width - //------------------------------------------------- -void crt9007_t::set_character_width(int value) +void crt9007_device::set_character_width(int value) { m_hpixels_per_column = value; diff --git a/src/devices/video/crt9007.h b/src/devices/video/crt9007.h index dbfbc7986fb..0618a62853e 100644 --- a/src/devices/video/crt9007.h +++ b/src/devices/video/crt9007.h @@ -29,17 +29,10 @@ **********************************************************************/ -#pragma once - -#ifndef __CRT9007__ -#define __CRT9007__ - - - +#ifndef MAME_VIDEO_CRT9007_H +#define MAME_VIDEO_CRT9007_H -//************************************************************************** -// MACROS / CONSTANTS -//************************************************************************** +#pragma once @@ -49,40 +42,40 @@ //************************************************************************** #define MCFG_CRT9007_CHARACTER_WIDTH(_value) \ - crt9007_t::static_set_character_width(*device, _value); + crt9007_device::static_set_character_width(*device, _value); #define MCFG_CRT9007_INT_CALLBACK(_write) \ - devcb = &crt9007_t::set_int_wr_callback(*device, DEVCB_##_write); + devcb = &crt9007_device::set_int_wr_callback(*device, DEVCB_##_write); #define MCFG_CRT9007_DMAR_CALLBACK(_write) \ - devcb = &crt9007_t::set_dmar_wr_callback(*device, DEVCB_##_write); + devcb = &crt9007_device::set_dmar_wr_callback(*device, DEVCB_##_write); #define MCFG_CRT9007_VS_CALLBACK(_write) \ - devcb = &crt9007_t::set_vs_wr_callback(*device, DEVCB_##_write); + devcb = &crt9007_device::set_vs_wr_callback(*device, DEVCB_##_write); #define MCFG_CRT9007_HS_CALLBACK(_write) \ - devcb = &crt9007_t::set_hs_wr_callback(*device, DEVCB_##_write); + devcb = &crt9007_device::set_hs_wr_callback(*device, DEVCB_##_write); #define MCFG_CRT9007_VLT_CALLBACK(_write) \ - devcb = &crt9007_t::set_vlt_wr_callback(*device, DEVCB_##_write); + devcb = &crt9007_device::set_vlt_wr_callback(*device, DEVCB_##_write); #define MCFG_CRT9007_CURS_CALLBACK(_write) \ - devcb = &crt9007_t::set_curs_wr_callback(*device, DEVCB_##_write); + devcb = &crt9007_device::set_curs_wr_callback(*device, DEVCB_##_write); #define MCFG_CRT9007_DRB_CALLBACK(_write) \ - devcb = &crt9007_t::set_drb_wr_callback(*device, DEVCB_##_write); + devcb = &crt9007_device::set_drb_wr_callback(*device, DEVCB_##_write); #define MCFG_CRT9007_WBEN_CALLBACK(_write) \ - devcb = &crt9007_t::set_wben_wr_callback(*device, DEVCB_##_write); + devcb = &crt9007_device::set_wben_wr_callback(*device, DEVCB_##_write); #define MCFG_CRT9007_CBLANK_CALLBACK(_write) \ - devcb = &crt9007_t::set_cblank_wr_callback(*device, DEVCB_##_write); + devcb = &crt9007_device::set_cblank_wr_callback(*device, DEVCB_##_write); #define MCFG_CRT9007_SLG_CALLBACK(_write) \ - devcb = &crt9007_t::set_slg_wr_callback(*device, DEVCB_##_write); + devcb = &crt9007_device::set_slg_wr_callback(*device, DEVCB_##_write); #define MCFG_CRT9007_SLD_CALLBACK(_write) \ - devcb = &crt9007_t::set_sld_wr_callback(*device, DEVCB_##_write); + devcb = &crt9007_device::set_sld_wr_callback(*device, DEVCB_##_write); @@ -90,29 +83,29 @@ // TYPE DEFINITIONS //************************************************************************** -// ======================> crt9007_t +// ======================> crt9007_device -class crt9007_t : public device_t, +class crt9007_device : public device_t, public device_memory_interface, public device_video_interface { public: // construction/destruction - crt9007_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - - static void static_set_character_width(device_t &device, int value) { downcast(device).m_hpixels_per_column = value; } - - template static devcb_base &set_int_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_int.set_callback(object); } - template static devcb_base &set_dmar_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_dmar.set_callback(object); } - template static devcb_base &set_vs_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_vs.set_callback(object); } - template static devcb_base &set_hs_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_hs.set_callback(object); } - template static devcb_base &set_vlt_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_vlt.set_callback(object); } - template static devcb_base &set_curs_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_curs.set_callback(object); } - template static devcb_base &set_drb_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_drb.set_callback(object); } - template static devcb_base &set_wben_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_wben.set_callback(object); } - template static devcb_base &set_cblank_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_cblank.set_callback(object); } - template static devcb_base &set_slg_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_slg.set_callback(object); } - template static devcb_base &set_sld_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_sld.set_callback(object); } + crt9007_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + + static void static_set_character_width(device_t &device, int value) { downcast(device).m_hpixels_per_column = value; } + + template static devcb_base &set_int_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_int.set_callback(std::forward(cb)); } + template static devcb_base &set_dmar_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_dmar.set_callback(std::forward(cb)); } + template static devcb_base &set_vs_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_vs.set_callback(std::forward(cb)); } + template static devcb_base &set_hs_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_hs.set_callback(std::forward(cb)); } + template static devcb_base &set_vlt_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_vlt.set_callback(std::forward(cb)); } + template static devcb_base &set_curs_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_curs.set_callback(std::forward(cb)); } + template static devcb_base &set_drb_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_drb.set_callback(std::forward(cb)); } + template static devcb_base &set_wben_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_wben.set_callback(std::forward(cb)); } + template static devcb_base &set_cblank_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_cblank.set_callback(std::forward(cb)); } + template static devcb_base &set_slg_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_slg.set_callback(std::forward(cb)); } + template static devcb_base &set_sld_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_sld.set_callback(std::forward(cb)); } DECLARE_READ8_MEMBER( read ); DECLARE_WRITE8_MEMBER( write ); @@ -214,8 +207,6 @@ private: // device type definition -extern const device_type CRT9007; - - +DECLARE_DEVICE_TYPE(CRT9007, crt9007_device) -#endif +#endif // MAME_VIDEO_CRT9007_H diff --git a/src/devices/video/crt9021.cpp b/src/devices/video/crt9021.cpp index b34ed316bd4..5b4d7195cde 100644 --- a/src/devices/video/crt9021.cpp +++ b/src/devices/video/crt9021.cpp @@ -38,20 +38,16 @@ #include "screen.h" - -//************************************************************************** -// DEVICE DEFINITIONS -//************************************************************************** - -const device_type CRT9021 = device_creator; +//#define VERBOSE 1 +#include "logmacro.h" //************************************************************************** -// MACROS / CONSTANTS +// DEVICE DEFINITIONS //************************************************************************** -#define LOG 0 +DEFINE_DEVICE_TYPE(CRT9021, crt9021_device, "crt9021", "SMC CRT9021 VAC") @@ -60,11 +56,11 @@ const device_type CRT9021 = device_creator; //************************************************************************** //------------------------------------------------- -// crt9021_t - constructor +// crt9021_device - constructor //------------------------------------------------- -crt9021_t::crt9021_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, CRT9021, "SMC CRT9021", tag, owner, clock, "crt9021", __FILE__), +crt9021_device::crt9021_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, CRT9021, tag, owner, clock), device_video_interface(mconfig, *this), m_data(0), m_ms0(0), @@ -96,7 +92,7 @@ crt9021_t::crt9021_t(const machine_config &mconfig, const char *tag, device_t *o // device_start - device-specific startup //------------------------------------------------- -void crt9021_t::device_start() +void crt9021_device::device_start() { // register bitmap m_screen->register_screen_bitmap(m_bitmap); @@ -132,9 +128,9 @@ void crt9021_t::device_start() // ld_sh_w - load/shift //------------------------------------------------- -WRITE_LINE_MEMBER( crt9021_t::ld_sh_w ) +WRITE_LINE_MEMBER( crt9021_device::ld_sh_w ) { - if (LOG) logerror("CRT9021 '%s' LD/SH: %u\n", tag(), state); + LOG("CRT9021 LD/SH: %u\n", state); if (!m_ld_sh && state) { @@ -172,9 +168,9 @@ WRITE_LINE_MEMBER( crt9021_t::ld_sh_w ) // vsync_w - vertical sync //------------------------------------------------- -WRITE_LINE_MEMBER( crt9021_t::vsync_w ) +WRITE_LINE_MEMBER( crt9021_device::vsync_w ) { - if (LOG) logerror("CRT9021 '%s' VSYNC: %u\n", tag(), state); + LOG("CRT9021 VSYNC: %u\n", state); } @@ -182,7 +178,7 @@ WRITE_LINE_MEMBER( crt9021_t::vsync_w ) // screen_update - update screen //------------------------------------------------- -uint32_t crt9021_t::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) +uint32_t crt9021_device::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { m_bitmap.fill(rgb_t::black(), cliprect); diff --git a/src/devices/video/crt9021.h b/src/devices/video/crt9021.h index 36639d3b498..2a0b3620c4d 100644 --- a/src/devices/video/crt9021.h +++ b/src/devices/video/crt9021.h @@ -23,10 +23,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_VIDEO_CRT9021_H +#define MAME_VIDEO_CRT9021_H -#ifndef __CRT9021__ -#define __CRT9021__ +#pragma once @@ -39,26 +39,25 @@ #define MCFG_CRT9021_DRAW_CHARACTER_CALLBACK_OWNER(_class, _method) \ - crt9021_t::static_set_display_callback(*device, crt9021_draw_character_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); + crt9021_device::static_set_display_callback(*device, crt9021_device::draw_character_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); //************************************************************************** // TYPE DEFINITIONS //************************************************************************** -typedef device_delegate crt9021_draw_character_delegate; - -// ======================> crt9021_t +// ======================> crt9021_device -class crt9021_t : public device_t, - public device_video_interface +class crt9021_device : public device_t, public device_video_interface { public: + typedef device_delegate draw_character_delegate; + // construction/destruction - crt9021_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + crt9021_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - static void static_set_display_callback(device_t &device, crt9021_draw_character_delegate callback) { downcast(device).m_display_cb = callback; } + static void static_set_display_callback(device_t &device, draw_character_delegate &&cb) { downcast(device).m_display_cb = std::move(cb); } void write(uint8_t data) { m_data = data; } DECLARE_WRITE8_MEMBER( write ) { write(data); } @@ -97,7 +96,7 @@ private: MS_UNDERLINE }; - crt9021_draw_character_delegate m_display_cb; + draw_character_delegate m_display_cb; bitmap_rgb32 m_bitmap; @@ -131,8 +130,6 @@ private: // device type definition -extern const device_type CRT9021; - - +DECLARE_DEVICE_TYPE(CRT9021, crt9021_device) -#endif +#endif // MAME_VIDEO_CRT9021_H diff --git a/src/devices/video/crt9212.cpp b/src/devices/video/crt9212.cpp index 922826f37ff..575624d3dda 100644 --- a/src/devices/video/crt9212.cpp +++ b/src/devices/video/crt9212.cpp @@ -9,21 +9,16 @@ #include "emu.h" #include "crt9212.h" - - -//************************************************************************** -// DEVICE DEFINITIONS -//************************************************************************** - -const device_type CRT9212 = device_creator; +//#define VERBOSE 1 +#include "logmacro.h" //************************************************************************** -// MACROS / CONSTANTS +// DEVICE DEFINITIONS //************************************************************************** -#define LOG 0 +DEFINE_DEVICE_TYPE(CRT9212, crt9212_device, "crt9212", "SMC CRT9212 DRB") @@ -32,11 +27,11 @@ const device_type CRT9212 = device_creator; //************************************************************************** //------------------------------------------------- -// crt9212_t - constructor +// crt9212_device - constructor //------------------------------------------------- -crt9212_t::crt9212_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, CRT9212, "SMC CRT9212", tag, owner, clock, "crt9212", __FILE__), +crt9212_device::crt9212_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, CRT9212, tag, owner, clock), m_write_dout(*this), m_write_rof(*this), m_write_wof(*this), @@ -64,7 +59,7 @@ crt9212_t::crt9212_t(const machine_config &mconfig, const char *tag, device_t *o // device_start - device-specific startup //------------------------------------------------- -void crt9212_t::device_start() +void crt9212_device::device_start() { // resolve callbacks m_write_dout.resolve_safe(); @@ -97,7 +92,7 @@ void crt9212_t::device_start() // clrcnt_w - clear counter //------------------------------------------------- -WRITE_LINE_MEMBER( crt9212_t::clrcnt_w ) +WRITE_LINE_MEMBER( crt9212_device::clrcnt_w ) { if (m_clrcnt && !state) { @@ -112,7 +107,7 @@ WRITE_LINE_MEMBER( crt9212_t::clrcnt_w ) // rclk_w - read clock //------------------------------------------------- -WRITE_LINE_MEMBER( crt9212_t::rclk_w ) +WRITE_LINE_MEMBER( crt9212_device::rclk_w ) { if (!m_rclk && state) { @@ -139,7 +134,7 @@ WRITE_LINE_MEMBER( crt9212_t::rclk_w ) m_clrcnt_edge = false; } - if (m_ren_int && (m_rac < CRT9212_RAM_SIZE)) + if (m_ren_int && (m_rac < RAM_SIZE)) { // output data m_write_dout(m_ram[m_rac][!m_buffer]); @@ -147,7 +142,7 @@ WRITE_LINE_MEMBER( crt9212_t::rclk_w ) // increment read address counter m_rac++; - if (m_rac == CRT9212_RAM_SIZE - 1) + if (m_rac == RAM_SIZE - 1) { // set read overflow m_write_rof(1); @@ -165,11 +160,11 @@ WRITE_LINE_MEMBER( crt9212_t::rclk_w ) // wclk_w - write clock //------------------------------------------------- -WRITE_LINE_MEMBER( crt9212_t::wclk_w ) +WRITE_LINE_MEMBER( crt9212_device::wclk_w ) { if (!m_wclk && state) { - if (m_wen_int && (m_wac < CRT9212_RAM_SIZE)) + if (m_wen_int && (m_wac < RAM_SIZE)) { // input data m_ram[m_rac][m_buffer] = m_data_latch; @@ -177,7 +172,7 @@ WRITE_LINE_MEMBER( crt9212_t::wclk_w ) // increment write address counter m_wac++; - if (m_wac == CRT9212_RAM_SIZE - 1) + if (m_wac == RAM_SIZE - 1) { // set write overflow m_write_wof(1); diff --git a/src/devices/video/crt9212.h b/src/devices/video/crt9212.h index 699594b98e0..99023a0fe76 100644 --- a/src/devices/video/crt9212.h +++ b/src/devices/video/crt9212.h @@ -23,19 +23,11 @@ **********************************************************************/ -#pragma once - -#ifndef __CRT9212__ -#define __CRT9212__ - - - +#ifndef MAME_VIDEO_CRT9212_H +#define MAME_VIDEO_CRT9212_H -//************************************************************************** -// MACROS / CONSTANTS -//************************************************************************** +#pragma once -const int CRT9212_RAM_SIZE = 135; @@ -44,16 +36,16 @@ const int CRT9212_RAM_SIZE = 135; //************************************************************************** #define MCFG_CRT9212_WEN2_VCC() \ - crt9212_t::static_set_wen2(*device, 1); + crt9212_device::static_set_wen2(*device, 1); #define MCFG_CRT9212_DOUT_CALLBACK(_write) \ - devcb = &crt9212_t::set_dout_wr_callback(*device, DEVCB_##_write); + devcb = &crt9212_device::set_dout_wr_callback(*device, DEVCB_##_write); #define MCFG_CRT9212_ROF_CALLBACK(_write) \ - devcb = &crt9212_t::set_rof_wr_callback(*device, DEVCB_##_write); + devcb = &crt9212_device::set_rof_wr_callback(*device, DEVCB_##_write); #define MCFG_CRT9212_WOF_CALLBACK(_write) \ - devcb = &crt9212_t::set_wof_wr_callback(*device, DEVCB_##_write); + devcb = &crt9212_device::set_wof_wr_callback(*device, DEVCB_##_write); @@ -61,19 +53,19 @@ const int CRT9212_RAM_SIZE = 135; // TYPE DEFINITIONS //************************************************************************** -// ======================> crt9212_t +// ======================> crt9212_device -class crt9212_t : public device_t +class crt9212_device : public device_t { public: // construction/destruction - crt9212_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + crt9212_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - static void static_set_wen2(device_t &device, int state) { downcast(device).m_wen2 = state; } + static void static_set_wen2(device_t &device, int state) { downcast(device).m_wen2 = state; } - template static devcb_base &set_dout_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_dout.set_callback(object); } - template static devcb_base &set_rof_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_rof.set_callback(object); } - template static devcb_base &set_wof_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_wof.set_callback(object); } + template static devcb_base &set_dout_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_dout.set_callback(std::forward(cb)); } + template static devcb_base &set_rof_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_rof.set_callback(std::forward(cb)); } + template static devcb_base &set_wof_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_wof.set_callback(std::forward(cb)); } DECLARE_WRITE8_MEMBER( write ) { m_data = data; } DECLARE_WRITE_LINE_MEMBER( clrcnt_w ); @@ -90,6 +82,8 @@ protected: virtual void device_start() override; private: + static constexpr int RAM_SIZE = 135; + devcb_write8 m_write_dout; devcb_write_line m_write_rof; devcb_write_line m_write_wof; @@ -110,7 +104,7 @@ private: uint8_t m_data_latch; int m_ren_int; int m_wen_int; - uint8_t m_ram[CRT9212_RAM_SIZE][2]; + uint8_t m_ram[RAM_SIZE][2]; int m_buffer; int m_rac; int m_wac; diff --git a/src/devices/video/crtc_ega.cpp b/src/devices/video/crtc_ega.cpp index f993d883047..b7318d33f99 100644 --- a/src/devices/video/crtc_ega.cpp +++ b/src/devices/video/crtc_ega.cpp @@ -13,15 +13,15 @@ #include "screen.h" +#define VERBOSE 1 +#include "logmacro.h" -#define LOG (1) - -const device_type CRTC_EGA = device_creator; +DEFINE_DEVICE_TYPE(CRTC_EGA, crtc_ega_device, "crtc_ega", "IBM EGA CRT Controller") crtc_ega_device::crtc_ega_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, CRTC_EGA, "crtc_EGA", tag, owner, clock, "crtc_ega", __FILE__), device_video_interface(mconfig, *this, false) + : device_t(mconfig, CRTC_EGA, tag, owner, clock), device_video_interface(mconfig, *this, false) , m_res_out_de_cb(*this), m_res_out_hsync_cb(*this), m_res_out_vsync_cb(*this), m_res_out_vblank_cb(*this) , m_horiz_char_total(0), m_horiz_disp(0), m_horiz_blank_start(0), m_horiz_blank_end(0) , m_ena_vert_access(0), m_de_skew(0) @@ -80,7 +80,7 @@ READ8_MEMBER( crtc_ega_device::register_r ) WRITE8_MEMBER( crtc_ega_device::register_w ) { - if (LOG) logerror("%s CRTC_EGA: reg 0x%02x = 0x%02x\n", machine().describe_context(), m_register_address_latch, data); + LOG("%s CRTC_EGA: reg 0x%02x = 0x%02x\n", machine().describe_context(), m_register_address_latch, data); switch (m_register_address_latch) { @@ -198,7 +198,7 @@ void crtc_ega_device::recompute_parameters(bool postload) rectangle visarea(0, max_visible_x, 0, max_visible_y); - if (LOG) logerror("CRTC_EGA config screen: HTOTAL: 0x%x VTOTAL: 0x%x MAX_X: 0x%x MAX_Y: 0x%x HSYNC: 0x%x-0x%x VSYNC: 0x%x-0x%x Freq: %ffps\n", + LOG("CRTC_EGA config screen: HTOTAL: 0x%x VTOTAL: 0x%x MAX_X: 0x%x MAX_Y: 0x%x HSYNC: 0x%x-0x%x VSYNC: 0x%x-0x%x Freq: %ffps\n", horiz_pix_total, vert_pix_total, max_visible_x, max_visible_y, hsync_on_pos, hsync_off_pos - 1, vsync_on_pos, vsync_off_pos - 1, 1 / ATTOSECONDS_TO_DOUBLE(refresh)); if ( m_screen != nullptr ) @@ -209,7 +209,7 @@ void crtc_ega_device::recompute_parameters(bool postload) else { m_has_valid_parameters = false; - if (LOG) logerror("CRTC_EGA bad config screen: HTOTAL: 0x%x VTOTAL: 0x%x MAX_X: 0x%x MAX_Y: 0x%x HSYNC: 0x%x-0x%x VSYNC: 0x%x-0x%x\n", + LOG("CRTC_EGA bad config screen: HTOTAL: 0x%x VTOTAL: 0x%x MAX_X: 0x%x MAX_Y: 0x%x HSYNC: 0x%x-0x%x VSYNC: 0x%x-0x%x\n", horiz_pix_total, vert_pix_total, max_visible_x, max_visible_y, hsync_on_pos, hsync_off_pos - 1, vsync_on_pos, vsync_off_pos - 1); } diff --git a/src/devices/video/crtc_ega.h b/src/devices/video/crtc_ega.h index 587cb7e90b9..cd30ba53f33 100644 --- a/src/devices/video/crtc_ega.h +++ b/src/devices/video/crtc_ega.h @@ -6,17 +6,8 @@ **********************************************************************/ -#ifndef __CRTC_EGA__ -#define __CRTC_EGA__ - - -/* callback definitions */ -typedef device_delegate crtc_ega_begin_update_delegate; - -typedef device_delegate crtc_ega_row_update_delegate; - -typedef device_delegate crtc_ega_end_update_delegate; +#ifndef MAME_VIDEO_CRTC_EGA_H +#define MAME_VIDEO_CRTC_EGA_H #define CRTC_EGA_BEGIN_UPDATE(_name) void _name(bitmap_ind16 &bitmap, const rectangle &cliprect) @@ -30,13 +21,13 @@ typedef device_delegate #define MCFG_CRTC_EGA_SET_SCREEN MCFG_VIDEO_SET_SCREEN #define MCFG_CRTC_EGA_BEGIN_UPDATE_CB(_class, _method) \ - crtc_ega_device::set_begin_update_callback(*device, crtc_ega_begin_update_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); + crtc_ega_device::set_begin_update_callback(*device, crtc_ega_device::begin_update_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); #define MCFG_CRTC_EGA_ROW_UPDATE_CB(_class, _method) \ - crtc_ega_device::set_row_update_callback(*device, crtc_ega_row_update_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); + crtc_ega_device::set_row_update_callback(*device, crtc_ega_device::row_update_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); #define MCFG_CRTC_EGA_END_UPDATE_CB(_class, _method) \ - crtc_ega_device::set_end_update_callback(*device, crtc_ega_end_update_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); + crtc_ega_device::set_end_update_callback(*device, crtc_ega_device::end_update_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); #define MCFG_CRTC_EGA_HPIXELS_PER_COLUMN(_pix) \ crtc_ega_device::set_hpixels_per_column(*device, _pix); @@ -58,20 +49,26 @@ class crtc_ega_device : public device_t, public device_video_interface { public: + /* callback definitions */ + typedef device_delegate begin_update_delegate; + typedef device_delegate row_update_delegate; + typedef device_delegate end_update_delegate; + + crtc_ega_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_res_out_de_callback(device_t &device, _Object object) - { return downcast(device).m_res_out_de_cb.set_callback(object); } - template static devcb_base &set_res_out_hsync_callback(device_t &device, _Object object) - { return downcast(device).m_res_out_hsync_cb.set_callback(object); } - template static devcb_base &set_res_out_vsync_callback(device_t &device, _Object object) - { return downcast(device).m_res_out_vsync_cb.set_callback(object); } - template static devcb_base &set_res_out_vblank_callback(device_t &device, _Object object) - { return downcast(device).m_res_out_vblank_cb.set_callback(object); } - - static void set_begin_update_callback(device_t &device, crtc_ega_begin_update_delegate callback) { downcast(device).m_begin_update_cb = callback; } - static void set_row_update_callback(device_t &device, crtc_ega_row_update_delegate callback) { downcast(device).m_row_update_cb = callback; } - static void set_end_update_callback(device_t &device, crtc_ega_end_update_delegate callback) { downcast(device).m_end_update_cb = callback; } + template static devcb_base &set_res_out_de_callback(device_t &device, Object &&cb) + { return downcast(device).m_res_out_de_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_res_out_hsync_callback(device_t &device, Object &&cb) + { return downcast(device).m_res_out_hsync_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_res_out_vsync_callback(device_t &device, Object &&cb) + { return downcast(device).m_res_out_vsync_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_res_out_vblank_callback(device_t &device, Object &&cb) + { return downcast(device).m_res_out_vblank_cb.set_callback(std::forward(cb)); } + + static void set_begin_update_callback(device_t &device, begin_update_delegate &&cb) { downcast(device).m_begin_update_cb = std::move(cb); } + static void set_row_update_callback(device_t &device, row_update_delegate &&cb) { downcast(device).m_row_update_cb = std::move(cb); } + static void set_end_update_callback(device_t &device, end_update_delegate &&cb) { downcast(device).m_end_update_cb = std::move(cb); } static void set_hpixels_per_column(device_t &device, int hpixels_per_column) { downcast(device).m_hpixels_per_column = hpixels_per_column; } /* select one of the registers for reading or writing */ @@ -119,16 +116,16 @@ private: /* if specified, this gets called before any pixel update, optionally return a pointer that will be passed to the update and tear down callbacks */ - crtc_ega_begin_update_delegate m_begin_update_cb; + begin_update_delegate m_begin_update_cb; /* this gets called for every row, the driver must output x_count * hpixels_per_column pixels. cursor_x indicates the character position where the cursor is, or -1 if there is no cursor on this row */ - crtc_ega_row_update_delegate m_row_update_cb; + row_update_delegate m_row_update_cb; /* if specified, this gets called after all row updating is complete */ - crtc_ega_end_update_delegate m_end_update_cb; + end_update_delegate m_end_update_cb; /* ega/vga register file */ uint8_t m_horiz_char_total; /* 0x00 */ @@ -190,13 +187,13 @@ private: int16_t m_cursor_x; /* timers */ - static const device_timer_id TIMER_LINE = 0; - static const device_timer_id TIMER_DE_OFF = 1; - static const device_timer_id TIMER_CUR_ON = 2; - static const device_timer_id TIMER_CUR_OFF = 3; - static const device_timer_id TIMER_HSYNC_ON = 4; - static const device_timer_id TIMER_HSYNC_OFF = 5; - static const device_timer_id TIMER_LIGHT_PEN_LATCH = 6; + static constexpr device_timer_id TIMER_LINE = 0; + static constexpr device_timer_id TIMER_DE_OFF = 1; + static constexpr device_timer_id TIMER_CUR_ON = 2; + static constexpr device_timer_id TIMER_CUR_OFF = 3; + static constexpr device_timer_id TIMER_HSYNC_ON = 4; + static constexpr device_timer_id TIMER_HSYNC_OFF = 5; + static constexpr device_timer_id TIMER_LIGHT_PEN_LATCH = 6; emu_timer *m_line_timer; emu_timer *m_de_off_timer; @@ -230,6 +227,6 @@ private: void update_cursor_state(); }; -extern const device_type CRTC_EGA; +DECLARE_DEVICE_TYPE(CRTC_EGA, crtc_ega_device) -#endif +#endif // MAME_VIDEO_CRTC_EGA_H diff --git a/src/devices/video/dl1416.cpp b/src/devices/video/dl1416.cpp index f79c33e9717..dfa7315e522 100644 --- a/src/devices/video/dl1416.cpp +++ b/src/devices/video/dl1416.cpp @@ -96,7 +96,7 @@ class dl1414t_device : public dl1414_device { public: dl1414t_device(machine_config const &mconfig, char const *tag, device_t *owner, uint32_t clock) - : dl1414_device(mconfig, DL1414T, "DL1414T", tag, owner, clock, "dl1414t", __FILE__) + : dl1414_device(mconfig, DL1414T, tag, owner, clock) { } @@ -112,7 +112,7 @@ class dl1416b_device : public dl1416_device { public: dl1416b_device(machine_config const &mconfig, const char *tag, device_t *owner, uint32_t clock) - : dl1416_device(mconfig, DL1416B, "DL1416B", tag, owner, clock, "dl1416b", __FILE__) + : dl1416_device(mconfig, DL1416B, tag, owner, clock) { } @@ -136,7 +136,7 @@ class dl1416t_device : public dl1416_device { public: dl1416t_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : dl1416_device(mconfig, DL1416T, "DL1416T", tag, owner, clock, "dl1416t", __FILE__) + : dl1416_device(mconfig, DL1416T, tag, owner, clock) { } @@ -164,9 +164,9 @@ protected: DEVICE TYPE GLOBALS *****************************************************************************/ -device_type const DL1414T = device_creator; -device_type const DL1416B = device_creator; -device_type const DL1416T = device_creator; +DEFINE_DEVICE_TYPE(DL1414T, dl1414t_device, "dl1414t", "DL1414T") +DEFINE_DEVICE_TYPE(DL1416B, dl1416b_device, "dl1416b", "DL1416B") +DEFINE_DEVICE_TYPE(DL1416T, dl1416t_device, "dl1416t", "DL1416T") @@ -177,13 +177,10 @@ device_type const DL1416T = device_creator; dl1414_device::dl1414_device( machine_config const &mconfig, device_type type, - char const *name, char const *tag, device_t *owner, - uint32_t clock, - char const *shortname, - char const *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source) + uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) , m_update_cb(*this) , m_digit_ram{ 0x00, 0x00, 0x00, 0x00 } , m_cursor_state{ false, false, false, false } @@ -199,13 +196,10 @@ dl1414_device::dl1414_device( dl1416_device::dl1416_device( machine_config const &mconfig, device_type type, - char const *name, char const *tag, device_t *owner, - uint32_t clock, - char const *shortname, - char const *source) - : dl1414_device(mconfig, type, name, tag, owner, clock, shortname, source) + uint32_t clock) + : dl1414_device(mconfig, type, tag, owner, clock) , m_cu_in(true) { } diff --git a/src/devices/video/dl1416.h b/src/devices/video/dl1416.h index e5f5a894321..dbc67b97787 100644 --- a/src/devices/video/dl1416.h +++ b/src/devices/video/dl1416.h @@ -11,8 +11,10 @@ * ****************************************************************************/ -#ifndef MAME_DEVICES_VIDEO_DL1416_H -#define MAME_DEVICES_VIDEO_DL1416_H +#ifndef MAME_VIDEO_DL1416_H +#define MAME_VIDEO_DL1416_H + +#pragma once /*************************************************************************** @@ -42,8 +44,8 @@ extern device_type const DL1416T; class dl1414_device : public device_t { public: - template static devcb_base &set_update_handler(device_t &device, Object &&object) - { return downcast(device).m_update_cb.set_callback(std::forward(object)); } + template static devcb_base &set_update_handler(device_t &device, Object &&cb) + { return downcast(device).m_update_cb.set_callback(std::forward(cb)); } // signal-level interface DECLARE_WRITE_LINE_MEMBER(wr_w); // write strobe (rising edge) @@ -58,12 +60,9 @@ protected: dl1414_device( machine_config const &mconfig, device_type type, - char const *name, char const *tag, device_t *owner, - uint32_t clock, - char const *shortname, - char const *source); + uint32_t clock); // device-level overrides virtual void device_start() override; @@ -95,12 +94,9 @@ protected: dl1416_device( machine_config const &mconfig, device_type type, - char const *name, char const *tag, device_t *owner, - uint32_t clock, - char const *shortname, - char const *source); + uint32_t clock); // device-level overrides virtual void device_start() override; @@ -112,4 +108,4 @@ private: bool m_cu_in; }; -#endif // MAME_DEVICES_VIDEO_DL1416_H +#endif // MAME_VIDEO_DL1416_H diff --git a/src/devices/video/dm9368.cpp b/src/devices/video/dm9368.cpp index 8b06f49f81d..9c53b911daf 100644 --- a/src/devices/video/dm9368.cpp +++ b/src/devices/video/dm9368.cpp @@ -9,13 +9,15 @@ #include "emu.h" #include "dm9368.h" +//#define VERBOSE 1 +#include "logmacro.h" //************************************************************************** // DEVICE DEFINITION //************************************************************************** -const device_type DM9368 = device_creator; +DEFINE_DEVICE_TYPE(DM9368, dm9368_device, "dm9368", "Fairchild DM9368 7-Segment Decoder") @@ -23,10 +25,7 @@ const device_type DM9368 = device_creator; // MACROS / CONSTANTS //************************************************************************** -#define LOG 0 - - -const uint8_t dm9368_device::m_segment_data[16] = +constexpr uint8_t dm9368_device::m_segment_data[16] = { 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x67, 0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71 }; @@ -42,7 +41,7 @@ const uint8_t dm9368_device::m_segment_data[16] = //------------------------------------------------- dm9368_device::dm9368_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, DM9368, "DM9368 7-Segment Decoder", tag, owner, clock, "dm9368", __FILE__), + device_t(mconfig, DM9368, tag, owner, clock), device_output_interface(mconfig, *this), m_write_rbo(*this), m_rbi(1), @@ -72,19 +71,19 @@ void dm9368_device::device_start() void dm9368_device::a_w(uint8_t data) { - int a = data & 0x0f; + int const a = data & 0x0f; uint8_t value = 0; if (!m_rbi && !a) { - if (LOG) logerror("DM9368 '%s' Blanked Rippling Zero\n", tag()); + LOG("DM9368 Blanked Rippling Zero\n"); // blank rippling 0 m_rbo = 0; } else { - if (LOG) logerror("DM9368 '%s' Output Data: %u = %02x\n", tag(), a, m_segment_data[a]); + LOG("DM9368 Output Data: %u = %02x\n", a, m_segment_data[a]); value = m_segment_data[a]; diff --git a/src/devices/video/dm9368.h b/src/devices/video/dm9368.h index 2c6c1ca908c..f28c4347db4 100644 --- a/src/devices/video/dm9368.h +++ b/src/devices/video/dm9368.h @@ -17,10 +17,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_VIDEO_DM9368_H +#define MAME_VIDEO_DM9368_H -#ifndef __DM9368__ -#define __DM9368__ +#pragma once @@ -67,8 +67,6 @@ private: // device type definition -extern const device_type DM9368; - - +DECLARE_DEVICE_TYPE(DM9368, dm9368_device) -#endif +#endif // MAME_VIDEO_DM9368_H diff --git a/src/devices/video/ef9340_1.cpp b/src/devices/video/ef9340_1.cpp index 8bc8838b592..484cc67cfbf 100644 --- a/src/devices/video/ef9340_1.cpp +++ b/src/devices/video/ef9340_1.cpp @@ -17,17 +17,17 @@ // device type definition -const device_type EF9340_1 = device_creator; +DEFINE_DEVICE_TYPE(EF9340_1, ef9340_1_device, "ef9340_1", "Thomson EF9340+EF9341") -static const uint8_t bgr2rgb[8] = +static constexpr uint8_t bgr2rgb[8] = { 0x00, 0x04, 0x02, 0x06, 0x01, 0x05, 0x03, 0x07 }; ef9340_1_device::ef9340_1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, EF9340_1, "EF9340+EF9341", tag, owner, clock, "ef9340_1", __FILE__) + : device_t(mconfig, EF9340_1, tag, owner, clock) , device_video_interface(mconfig, *this), m_line_timer(nullptr) //, m_start_vpos(START_Y) //, m_start_vblank(START_Y + SCREEN_HEIGHT) diff --git a/src/devices/video/ef9340_1.h b/src/devices/video/ef9340_1.h index 6a7246ae42a..e5cbd23964a 100644 --- a/src/devices/video/ef9340_1.h +++ b/src/devices/video/ef9340_1.h @@ -9,10 +9,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_VIDEO_EF9340_1_H +#define MAME_VIDEO_EF9340_1_H -#ifndef __EF9340_1_H__ -#define __EF9340_1_H__ +#pragma once @@ -47,7 +47,7 @@ protected: void ef9340_scanline(int vpos); /* timers */ - static const device_timer_id TIMER_LINE = 0; + static constexpr device_timer_id TIMER_LINE = 0; emu_timer *m_line_timer; @@ -75,6 +75,6 @@ protected: // device type definition -extern const device_type EF9340_1; +DECLARE_DEVICE_TYPE(EF9340_1, ef9340_1_device) -#endif /* __EF9340_1_H__ */ +#endif // MAME_VIDEO_EF9340_1_H diff --git a/src/devices/video/ef9345.cpp b/src/devices/video/ef9345.cpp index 1379a20587e..e0385007b7b 100644 --- a/src/devices/video/ef9345.cpp +++ b/src/devices/video/ef9345.cpp @@ -9,7 +9,7 @@ This code is based on Daniel Coulom's implementation in DCVG5k and DCAlice released by Daniel Coulom under GPL license - TS9347 variant support added by Jean-François DEL NERO + TS9347 variant support added by Jean-François DEL NERO *********************************************************************/ #include "emu.h" @@ -29,8 +29,8 @@ //************************************************************************** // devices -const device_type EF9345 = device_creator; -const device_type TS9347 = device_creator; +DEFINE_DEVICE_TYPE(EF9345, ef9345_device, "ef9345", "EF9345") +DEFINE_DEVICE_TYPE(TS9347, ts9347_device, "ts9347", "TS9347") // default address map static ADDRESS_MAP_START( ef9345, AS_0, 8, ef9345_device ) @@ -102,18 +102,12 @@ inline void ef9345_device::inc_y(uint8_t r) //------------------------------------------------- ef9345_device::ef9345_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, EF9345, "EF9345", tag, owner, clock, "ef9345", __FILE__), - device_memory_interface(mconfig, *this), - device_video_interface(mconfig, *this), - m_space_config("videoram", ENDIANNESS_LITTLE, 8, 16, 0, nullptr, *ADDRESS_MAP_NAME(ef9345)), - m_charset(*this, DEVICE_SELF), - m_variant(EF9345_MODE::TYPE_EF9345), - m_palette(*this, finder_base::DUMMY_TAG) + ef9345_device(mconfig, EF9345, tag, owner, clock, EF9345_MODE::TYPE_EF9345) { } -ef9345_device::ef9345_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, EF9345_MODE variant, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), +ef9345_device::ef9345_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, EF9345_MODE variant) : + device_t(mconfig, type, tag, owner, clock), device_memory_interface(mconfig, *this), device_video_interface(mconfig, *this), m_space_config("videoram", ENDIANNESS_LITTLE, 8, 16, 0, nullptr, *ADDRESS_MAP_NAME(ef9345)), @@ -124,7 +118,9 @@ ef9345_device::ef9345_device(const machine_config &mconfig, device_type type, co } ts9347_device::ts9347_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : ef9345_device(mconfig, TS9347, "TS9347",tag, owner, clock, EF9345_MODE::TYPE_TS9347,"ts9347",__FILE__){ } + : ef9345_device(mconfig, TS9347, tag, owner, clock, EF9345_MODE::TYPE_TS9347) +{ +} //------------------------------------------------- // static_set_palette_tag: Set the tag of the diff --git a/src/devices/video/ef9345.h b/src/devices/video/ef9345.h index a6102fe96cc..8f58eb2c4a6 100644 --- a/src/devices/video/ef9345.h +++ b/src/devices/video/ef9345.h @@ -8,12 +8,11 @@ *********************************************************************/ +#ifndef MAME_VIDEO_EF9345_H +#define MAME_VIDEO_EF9345_H #pragma once -#ifndef __EF9345_H__ -#define __EF9345_H__ - #define MCFG_EF9345_PALETTE(_palette_tag) \ ef9345_device::static_set_palette_tag(*device, "^" _palette_tag); @@ -49,7 +48,7 @@ protected: }; // pass-through constructor - ef9345_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, EF9345_MODE variant, const char *shortname, const char *source); + ef9345_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, EF9345_MODE variant); // device-level overrides virtual void device_start() override; @@ -57,7 +56,7 @@ protected: virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; // device_config_memory_interface overrides - virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_0) const override; + virtual const address_space_config *memory_space_config(address_spacenum spacenum) const override; // address space configurations const address_space_config m_space_config; @@ -69,7 +68,6 @@ protected: inline void inc_y(uint8_t r); private: - void set_busy_flag(int period); void draw_char_40(uint8_t *c, uint16_t x, uint16_t y); void draw_char_80(uint8_t *c, uint16_t x, uint16_t y); @@ -125,12 +123,12 @@ private: class ts9347_device : public ef9345_device { -public : +public: ts9347_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; // device type definition -extern const device_type EF9345; -extern const device_type TS9347; +DECLARE_DEVICE_TYPE(EF9345, ef9345_device) +DECLARE_DEVICE_TYPE(TS9347, ts9347_device) -#endif +#endif // MAME_VIDEO_EF9345_H diff --git a/src/devices/video/ef9364.cpp b/src/devices/video/ef9364.cpp index 6957a57d676..5be327900f4 100644 --- a/src/devices/video/ef9364.cpp +++ b/src/devices/video/ef9364.cpp @@ -28,13 +28,13 @@ // devices -const device_type EF9364 = device_creator; +DEFINE_DEVICE_TYPE(EF9364, ef9364_device, "ef9364", "Thomson EF9364") //------------------------------------------------- // default address map //------------------------------------------------- static ADDRESS_MAP_START( ef9364, AS_0, 8, ef9364_device ) - AM_RANGE(0x00000, ( ( EF9364_TXTPLANE_MAX_SIZE * EF9364_MAX_TXTPLANES ) - 1 ) ) AM_RAM + AM_RANGE(0x00000, ( ( ef9364_device::TXTPLANE_MAX_SIZE * ef9364_device::MAX_TXTPLANES ) - 1 ) ) AM_RAM ADDRESS_MAP_END //------------------------------------------------- @@ -60,7 +60,7 @@ const address_space_config *ef9364_device::memory_space_config(address_spacenum //------------------------------------------------- ef9364_device::ef9364_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, EF9364, "EF9364", tag, owner, clock, "ef9364", __FILE__), + device_t(mconfig, EF9364, tag, owner, clock), device_memory_interface(mconfig, *this), device_video_interface(mconfig, *this), m_space_config("textram", ENDIANNESS_LITTLE, 8, 12, 0, nullptr, *ADDRESS_MAP_NAME(ef9364)), @@ -117,8 +117,8 @@ void ef9364_device::device_start() { m_textram = &space(0); - bitplane_xres = EF9364_NB_OF_COLUMNS*8; - bitplane_yres = EF9364_NB_OF_ROWS*(8+4); + bitplane_xres = NB_OF_COLUMNS*8; + bitplane_yres = NB_OF_ROWS*(8+4); vsync_scanline_pos = 250; @@ -149,7 +149,7 @@ void ef9364_device::device_reset() char_latch = 0x00; - for(i=0;iwrite_byte ( i , 0x7F ); } @@ -199,15 +199,15 @@ uint32_t ef9364_device::screen_update(screen_device &screen, bitmap_rgb32 &bitma int x,y,r; unsigned char c; - for( r = 0 ; r < EF9364_NB_OF_ROWS ; r++ ) + for( r = 0 ; r < NB_OF_ROWS ; r++ ) { for( y = 0 ; y < 8 ; y++ ) { - for( x = 0 ; x < EF9364_NB_OF_COLUMNS * 8 ; x++ ) + for( x = 0 ; x < NB_OF_COLUMNS * 8 ; x++ ) { if( ( ( x >> 3 ) != x_curs_pos ) || ( r != y_curs_pos ) || !cursor_state) { - c = m_textram->read_byte( ( r * EF9364_NB_OF_COLUMNS ) + ( x>>3 ) ); + c = m_textram->read_byte( ( r * NB_OF_COLUMNS ) + ( x>>3 ) ); if( m_charset[((c&0x7F)<<3) + y] & (0x80>>(x&7)) ) m_screen_out.pix32((r*12)+y, x) = palette[1]; @@ -261,11 +261,11 @@ void ef9364_device::command_w(uint8_t cmd) switch( cmd&7 ) { case 0x0: // Page Erase & Cursor home - for( y=0 ; y < EF9364_NB_OF_ROWS ; y++ ) + for( y=0 ; y < NB_OF_ROWS ; y++ ) { - for( x=0 ; x < EF9364_NB_OF_COLUMNS ; x++ ) + for( x=0 ; x < NB_OF_COLUMNS ; x++ ) { - m_textram->write_byte ( y * EF9364_NB_OF_COLUMNS + x , 0x7F ); + m_textram->write_byte ( y * NB_OF_COLUMNS + x , 0x7F ); } } x_curs_pos = 0; @@ -273,32 +273,32 @@ void ef9364_device::command_w(uint8_t cmd) break; case 0x1: // Erase to end of the line and return cursor - for( ; x_curs_pos < EF9364_NB_OF_COLUMNS ; x_curs_pos++ ) + for( ; x_curs_pos < NB_OF_COLUMNS ; x_curs_pos++ ) { - m_textram->write_byte ( y_curs_pos * EF9364_NB_OF_COLUMNS + x_curs_pos , 0x7F ); + m_textram->write_byte ( y_curs_pos * NB_OF_COLUMNS + x_curs_pos , 0x7F ); } x_curs_pos = 0; break; case 0x2: // Line feed y_curs_pos++; - if( y_curs_pos >= EF9364_NB_OF_ROWS ) + if( y_curs_pos >= NB_OF_ROWS ) { // Scroll - for( j = 1 ; j < EF9364_NB_OF_ROWS ; j++ ) + for( j = 1 ; j < NB_OF_ROWS ; j++ ) { - for( i = 0 ; i < EF9364_NB_OF_COLUMNS ; i++ ) + for( i = 0 ; i < NB_OF_COLUMNS ; i++ ) { - m_textram->write_byte ( (j-1) * EF9364_NB_OF_COLUMNS + i , m_textram->read_byte ( j * EF9364_NB_OF_COLUMNS + i ) ); + m_textram->write_byte ( (j-1) * NB_OF_COLUMNS + i , m_textram->read_byte ( j * NB_OF_COLUMNS + i ) ); } } // Erase last line - for( i = 0 ; i < EF9364_NB_OF_COLUMNS ; i++ ) + for( i = 0 ; i < NB_OF_COLUMNS ; i++ ) { - m_textram->write_byte ( ( EF9364_NB_OF_ROWS - 1 ) * EF9364_NB_OF_COLUMNS + i , 0x7F ); + m_textram->write_byte ( ( NB_OF_ROWS - 1 ) * NB_OF_COLUMNS + i , 0x7F ); } - y_curs_pos = EF9364_NB_OF_ROWS - 1; + y_curs_pos = NB_OF_ROWS - 1; } break; @@ -312,9 +312,9 @@ void ef9364_device::command_w(uint8_t cmd) break; case 0x5: // Erasure of cursor Line. - for( x = 0 ; x < EF9364_NB_OF_COLUMNS ; x++ ) + for( x = 0 ; x < NB_OF_COLUMNS ; x++ ) { - m_textram->write_byte ( y_curs_pos * EF9364_NB_OF_COLUMNS + x , 0x7F ); + m_textram->write_byte ( y_curs_pos * NB_OF_COLUMNS + x , 0x7F ); } break; @@ -325,30 +325,30 @@ void ef9364_device::command_w(uint8_t cmd) case 0x7: // Write char if(cmd&0x8) - m_textram->write_byte ( y_curs_pos * EF9364_NB_OF_COLUMNS + x_curs_pos , char_latch ); + m_textram->write_byte ( y_curs_pos * NB_OF_COLUMNS + x_curs_pos , char_latch ); x_curs_pos++; - if( x_curs_pos >= EF9364_NB_OF_COLUMNS ) + if( x_curs_pos >= NB_OF_COLUMNS ) { x_curs_pos=0; y_curs_pos++; - if( y_curs_pos >= EF9364_NB_OF_ROWS ) + if( y_curs_pos >= NB_OF_ROWS ) { // Scroll - for( j = 1 ; j < EF9364_NB_OF_ROWS ; j++ ) + for( j = 1 ; j < NB_OF_ROWS ; j++ ) { - for( i = 0 ; i < EF9364_NB_OF_COLUMNS ; i++ ) + for( i = 0 ; i < NB_OF_COLUMNS ; i++ ) { - m_textram->write_byte ( (j-1) * EF9364_NB_OF_COLUMNS + i , m_textram->read_byte ( j * EF9364_NB_OF_COLUMNS + i ) ); + m_textram->write_byte ( (j-1) * NB_OF_COLUMNS + i , m_textram->read_byte ( j * NB_OF_COLUMNS + i ) ); } } // Erase last line - for( i = 0 ; i < EF9364_NB_OF_COLUMNS ; i++ ) + for( i = 0 ; i < NB_OF_COLUMNS ; i++ ) { - m_textram->write_byte ( ( EF9364_NB_OF_ROWS - 1 ) * EF9364_NB_OF_COLUMNS + i , 0x7F ); + m_textram->write_byte ( ( NB_OF_ROWS - 1 ) * NB_OF_COLUMNS + i , 0x7F ); } - y_curs_pos = EF9364_NB_OF_ROWS - 1; + y_curs_pos = NB_OF_ROWS - 1; } } break; diff --git a/src/devices/video/ef9364.h b/src/devices/video/ef9364.h index 2adc99905ee..2a6f20c0f48 100644 --- a/src/devices/video/ef9364.h +++ b/src/devices/video/ef9364.h @@ -8,16 +8,10 @@ *********************************************************************/ -#pragma once - -#ifndef __EF9364_H__ -#define __EF9364_H__ +#ifndef MAME_VIDEO_EF9364_H +#define MAME_VIDEO_EF9364_H -#define EF9364_NB_OF_COLUMNS 64 -#define EF9364_NB_OF_ROWS 16 - -#define EF9364_TXTPLANE_MAX_SIZE ( EF9364_NB_OF_COLUMNS * EF9364_NB_OF_ROWS ) -#define EF9364_MAX_TXTPLANES 2 +#pragma once #define MCFG_EF9364_PALETTE(_palette_tag) \ ef9364_device::static_set_palette_tag(*device, "^" _palette_tag); @@ -39,6 +33,12 @@ class ef9364_device : public device_t, public device_video_interface { public: + static constexpr unsigned NB_OF_COLUMNS = 64; + static constexpr unsigned NB_OF_ROWS = 16; + + static constexpr unsigned TXTPLANE_MAX_SIZE = NB_OF_COLUMNS * NB_OF_ROWS; + static constexpr unsigned MAX_TXTPLANES = 2; + // construction/destruction ef9364_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); @@ -47,7 +47,6 @@ public: static void static_set_nb_of_pages(device_t &device, int nb_bitplanes ); // device interface - void update_scanline(uint16_t scanline); void set_color_entry( int index, uint8_t r, uint8_t g, uint8_t b ); @@ -98,6 +97,6 @@ private: }; // device type definition -extern const device_type EF9364; +DECLARE_DEVICE_TYPE(EF9364, ef9364_device) -#endif +#endif // MAME_VIDEO_EF9364_H diff --git a/src/devices/video/ef9365.cpp b/src/devices/video/ef9365.cpp index ee57644ccaa..84f0ce7655f 100644 --- a/src/devices/video/ef9365.cpp +++ b/src/devices/video/ef9365.cpp @@ -69,15 +69,34 @@ #include "screen.h" +//#define VERBOSE 1 +#include "logmacro.h" + + +namespace { + +#define EF936X_REG_STATUS 0x00 +#define EF936X_REG_CMD 0x00 +#define EF936X_REG_CTRL1 0x01 +#define EF936X_REG_CTRL2 0x02 +#define EF936X_REG_CSIZE 0x03 +#define EF936X_REG_DELTAX 0x05 +#define EF936X_REG_DELTAY 0x07 +#define EF936X_REG_X_MSB 0x08 +#define EF936X_REG_X_LSB 0x09 +#define EF936X_REG_Y_MSB 0x0A +#define EF936X_REG_Y_LSB 0x0B +#define EF936X_REG_XLP 0x0C +#define EF936X_REG_YLP 0x0D + -#ifdef DBGMODE //------------------------------------------------- // Some debug mode const strings // to trace the commands and registers accesses. //------------------------------------------------- // Registers list -const char * register_names[]= +const char *const register_names[]= { "0x00 - CMD / STATUS", "0x01 - CTRL 1 ", @@ -98,7 +117,7 @@ const char * register_names[]= }; // Commands list -const char * commands_names[]= +const char *const commands_names[]= { "0x00 - Set bit 1 of CTRL1 : Pen selection", "0x01 - Clear bit 1 of CTRL1 : Eraser selection", @@ -122,10 +141,11 @@ const char * commands_names[]= "0x80<>0xFF - Small vector generation", }; -#endif +} // anonymous namespace + // devices -const device_type EF9365 = device_creator; +DEFINE_DEVICE_TYPE(EF9365, ef9365_device, "ef9365", "Thomson EF9365") ROM_START( ef9365 ) ROM_REGION( 0x1E0, "ef9365", 0 ) @@ -147,7 +167,7 @@ const tiny_rom_entry *ef9365_device::device_rom_region() const // Up to 512*512 per bitplane, 8 bitplanes max. //------------------------------------------------- static ADDRESS_MAP_START( ef9365, AS_0, 8, ef9365_device ) - AM_RANGE(0x00000, ( ( EF936X_BITPLANE_MAX_SIZE * EF936X_MAX_BITPLANES ) - 1 ) ) AM_RAM + AM_RANGE(0x00000, ( ( ef9365_device::BITPLANE_MAX_SIZE * ef9365_device::MAX_BITPLANES ) - 1 ) ) AM_RAM ADDRESS_MAP_END //------------------------------------------------- @@ -174,7 +194,7 @@ const address_space_config *ef9365_device::memory_space_config(address_spacenum //------------------------------------------------- ef9365_device::ef9365_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, EF9365, "EF9365", tag, owner, clock, "ef9365", __FILE__), + device_t(mconfig, EF9365, tag, owner, clock), device_memory_interface(mconfig, *this), device_video_interface(mconfig, *this), m_space_config("videoram", ENDIANNESS_LITTLE, 8, 18, 0, nullptr, *ADDRESS_MAP_NAME(ef9365)), @@ -216,48 +236,48 @@ void ef9365_device::static_set_display_mode(device_t &device, int display_mode ) { switch(display_mode) { - case EF936X_256x256_DISPLAY_MODE: - downcast(device).bitplane_xres = 256; - downcast(device).bitplane_yres = 256; - downcast(device).vsync_scanline_pos = 250; - downcast(device).overflow_mask_x = 0xFF00; - downcast(device).overflow_mask_y = 0xFF00; + case DISPLAY_MODE_256x256: + downcast(device).bitplane_xres = 256; + downcast(device).bitplane_yres = 256; + downcast(device).vsync_scanline_pos = 250; + downcast(device).overflow_mask_x = 0xFF00; + downcast(device).overflow_mask_y = 0xFF00; break; - case EF936X_512x512_DISPLAY_MODE: - downcast(device).bitplane_xres = 512; - downcast(device).bitplane_yres = 512; - downcast(device).vsync_scanline_pos = 506; - downcast(device).overflow_mask_x = 0xFE00; - downcast(device).overflow_mask_y = 0xFE00; + case DISPLAY_MODE_512x512: + downcast(device).bitplane_xres = 512; + downcast(device).bitplane_yres = 512; + downcast(device).vsync_scanline_pos = 506; + downcast(device).overflow_mask_x = 0xFE00; + downcast(device).overflow_mask_y = 0xFE00; break; - case EF936X_512x256_DISPLAY_MODE: - downcast(device).bitplane_xres = 512; - downcast(device).bitplane_yres = 256; - downcast(device).vsync_scanline_pos = 250; - downcast(device).overflow_mask_x = 0xFE00; - downcast(device).overflow_mask_y = 0xFF00; + case DISPLAY_MODE_512x256: + downcast(device).bitplane_xres = 512; + downcast(device).bitplane_yres = 256; + downcast(device).vsync_scanline_pos = 250; + downcast(device).overflow_mask_x = 0xFE00; + downcast(device).overflow_mask_y = 0xFF00; break; - case EF936X_128x128_DISPLAY_MODE: - downcast(device).bitplane_xres = 128; - downcast(device).bitplane_yres = 128; - downcast(device).vsync_scanline_pos = 124; - downcast(device).overflow_mask_x = 0xFF80; - downcast(device).overflow_mask_y = 0xFF80; + case DISPLAY_MODE_128x128: + downcast(device).bitplane_xres = 128; + downcast(device).bitplane_yres = 128; + downcast(device).vsync_scanline_pos = 124; + downcast(device).overflow_mask_x = 0xFF80; + downcast(device).overflow_mask_y = 0xFF80; break; - case EF936X_64x64_DISPLAY_MODE: - downcast(device).bitplane_xres = 64; - downcast(device).bitplane_yres = 64; - downcast(device).vsync_scanline_pos = 62; - downcast(device).overflow_mask_x = 0xFFC0; - downcast(device).overflow_mask_y = 0xFFC0; + case DISPLAY_MODE_64x64: + downcast(device).bitplane_xres = 64; + downcast(device).bitplane_yres = 64; + downcast(device).vsync_scanline_pos = 62; + downcast(device).overflow_mask_x = 0xFFC0; + downcast(device).overflow_mask_y = 0xFFC0; break; - default: - downcast(device).logerror("Invalid EF9365 Display mode: %02x\n", display_mode); - downcast(device).bitplane_xres = 256; - downcast(device).bitplane_yres = 256; - downcast(device).vsync_scanline_pos = 250; - downcast(device).overflow_mask_x = 0xFF00; - downcast(device).overflow_mask_y = 0xFF00; + default: + downcast(device).logerror("Invalid EF9365 Display mode: %02x\n", display_mode); + downcast(device).bitplane_xres = 256; + downcast(device).bitplane_yres = 256; + downcast(device).vsync_scanline_pos = 250; + downcast(device).overflow_mask_x = 0xFF00; + downcast(device).overflow_mask_y = 0xFF00; break; } } @@ -512,9 +532,9 @@ void ef9365_device::plot(int x_pos,int y_pos) for( p = 0 ; p < nb_of_bitplanes ; p++ ) { if( m_current_color & (0x01 << p) ) - m_videoram->write_byte ( (EF936X_BITPLANE_MAX_SIZE*p) + (((y_pos*bitplane_xres) + x_pos)>>3), m_videoram->read_byte( (EF936X_BITPLANE_MAX_SIZE*p) + (((y_pos*bitplane_xres) + x_pos)>>3)) | (0x80 >> (((y_pos*bitplane_xres) + x_pos)&7) ) ); + m_videoram->write_byte ( (BITPLANE_MAX_SIZE*p) + (((y_pos*bitplane_xres) + x_pos)>>3), m_videoram->read_byte( (BITPLANE_MAX_SIZE*p) + (((y_pos*bitplane_xres) + x_pos)>>3)) | (0x80 >> (((y_pos*bitplane_xres) + x_pos)&7) ) ); else - m_videoram->write_byte ( (EF936X_BITPLANE_MAX_SIZE*p) + (((y_pos*bitplane_xres) + x_pos)>>3), m_videoram->read_byte( (EF936X_BITPLANE_MAX_SIZE*p) + (((y_pos*bitplane_xres) + x_pos)>>3)) & ~(0x80 >> (((y_pos*bitplane_xres) + x_pos)&7) ) ); + m_videoram->write_byte ( (BITPLANE_MAX_SIZE*p) + (((y_pos*bitplane_xres) + x_pos)>>3), m_videoram->read_byte( (BITPLANE_MAX_SIZE*p) + (((y_pos*bitplane_xres) + x_pos)>>3)) & ~(0x80 >> (((y_pos*bitplane_xres) + x_pos)&7) ) ); } } else @@ -522,7 +542,7 @@ void ef9365_device::plot(int x_pos,int y_pos) // Eraser for( p = 0 ; p < nb_of_bitplanes ; p++ ) { - m_videoram->write_byte ( (EF936X_BITPLANE_MAX_SIZE*p) + (((y_pos*bitplane_xres) + x_pos)>>3), m_videoram->read_byte( (EF936X_BITPLANE_MAX_SIZE*p) + (((y_pos*bitplane_xres) + x_pos)>>3)) | (0x80 >> (((y_pos*bitplane_xres) + x_pos)&7) ) ); + m_videoram->write_byte ( (BITPLANE_MAX_SIZE*p) + (((y_pos*bitplane_xres) + x_pos)>>3), m_videoram->read_byte( (BITPLANE_MAX_SIZE*p) + (((y_pos*bitplane_xres) + x_pos)>>3)) | (0x80 >> (((y_pos*bitplane_xres) + x_pos)&7) ) ); } } } @@ -890,19 +910,17 @@ void ef9365_device::dump_bitplanes_word() pixel_ptr = ( ( ( ( bitplane_yres - 1 ) - ( get_y_reg() & ( bitplane_yres - 1 ) ) ) * bitplane_xres ) + ( get_x_reg() & ( bitplane_xres - 1 ) ) ); - #ifdef DBGMODE - printf("dump : x = %d , y = %d\n", get_x_reg() ,get_y_reg()); - #endif + LOG("dump : x = %d , y = %d\n", get_x_reg() ,get_y_reg()); for( p = 0; p < nb_of_bitplanes ; p++ ) { if( pixel_ptr & 0x4 ) { - m_readback_latch[p] = ( m_videoram->read_byte( (EF936X_BITPLANE_MAX_SIZE*p) + (pixel_ptr>>3) ) ) & 0xF ; + m_readback_latch[p] = ( m_videoram->read_byte( (BITPLANE_MAX_SIZE*p) + (pixel_ptr>>3) ) ) & 0xF ; } else { - m_readback_latch[p] = ( m_videoram->read_byte( (EF936X_BITPLANE_MAX_SIZE*p) + (pixel_ptr>>3) ) >> 4 ) & 0xF ; + m_readback_latch[p] = ( m_videoram->read_byte( (BITPLANE_MAX_SIZE*p) + (pixel_ptr>>3) ) >> 4 ) & 0xF ; } } @@ -927,9 +945,9 @@ void ef9365_device::screen_scanning( int force_clear ) for( p = 0 ; p < nb_of_bitplanes ; p++ ) { if( m_current_color & (0x01 << p) ) - m_videoram->write_byte ( (EF936X_BITPLANE_MAX_SIZE*p) + (((y*bitplane_xres) + x)>>3), m_videoram->read_byte( (EF936X_BITPLANE_MAX_SIZE*p) + (((y*bitplane_xres) + x)>>3)) | (0x80 >> (((y*bitplane_xres) + x)&7) ) ); + m_videoram->write_byte ( (BITPLANE_MAX_SIZE*p) + (((y*bitplane_xres) + x)>>3), m_videoram->read_byte( (BITPLANE_MAX_SIZE*p) + (((y*bitplane_xres) + x)>>3)) | (0x80 >> (((y*bitplane_xres) + x)&7) ) ); else - m_videoram->write_byte ( (EF936X_BITPLANE_MAX_SIZE*p) + (((y*bitplane_xres) + x)>>3), m_videoram->read_byte( (EF936X_BITPLANE_MAX_SIZE*p) + (((y*bitplane_xres) + x)>>3)) & ~(0x80 >> (((y*bitplane_xres) + x)&7) ) ); + m_videoram->write_byte ( (BITPLANE_MAX_SIZE*p) + (((y*bitplane_xres) + x)>>3), m_videoram->read_byte( (BITPLANE_MAX_SIZE*p) + (((y*bitplane_xres) + x)>>3)) & ~(0x80 >> (((y*bitplane_xres) + x)&7) ) ); } } } @@ -942,7 +960,7 @@ void ef9365_device::screen_scanning( int force_clear ) { for( p = 0 ; p < nb_of_bitplanes ; p++ ) { - m_videoram->write_byte ( (EF936X_BITPLANE_MAX_SIZE*p) + (((y*bitplane_xres) + x)>>3), m_videoram->read_byte( (EF936X_BITPLANE_MAX_SIZE*p) + (((y*bitplane_xres) + x)>>3)) | (0x80 >> (((y*bitplane_xres) + x)&7) ) ); + m_videoram->write_byte ( (BITPLANE_MAX_SIZE*p) + (((y*bitplane_xres) + x)>>3), m_videoram->read_byte( (BITPLANE_MAX_SIZE*p) + (((y*bitplane_xres) + x)>>3)) | (0x80 >> (((y*bitplane_xres) + x)&7) ) ); } } } @@ -961,9 +979,7 @@ void ef9365_device::ef9365_exec(uint8_t cmd) if( ( cmd>>4 ) == 0 ) { - #ifdef DBGMODE - printf("EF9365 Command : %s\n", commands_names[cmd & 0xF]); - #endif + LOG("EF9365 Command : %s\n", commands_names[cmd & 0xF]); switch(cmd & 0xF) { @@ -1041,12 +1057,10 @@ void ef9365_device::ef9365_exec(uint8_t cmd) { if ( ( cmd>>4 ) == 1 ) { - #ifdef DBGMODE if( cmd & 0x08 ) - printf("EF9365 Command : [0x%.2X] %s\n", cmd, commands_names[0x11]); + LOG("EF9365 Command : [0x%.2X] %s\n", cmd, commands_names[0x11]); else - printf("EF9365 Command : [0x%.2X] %s\n", cmd, commands_names[0x10]); - #endif + LOG("EF9365 Command : [0x%.2X] %s\n", cmd, commands_names[0x10]); tmp_delta_x = m_registers[EF936X_REG_DELTAX]; tmp_delta_y = m_registers[EF936X_REG_DELTAY]; @@ -1094,9 +1108,7 @@ void ef9365_device::ef9365_exec(uint8_t cmd) { if( ( cmd>>4 ) >= 0x8 ) { - #ifdef DBGMODE - printf("EF9365 Command : [0x%.2X] %s\n", cmd, commands_names[0x13]); - #endif + LOG("EF9365 Command : [0x%.2X] %s\n", cmd, commands_names[0x13]); tmp_delta_x = ( cmd >> 5 ) & 3; tmp_delta_y = ( cmd >> 3 ) & 3; @@ -1137,9 +1149,7 @@ void ef9365_device::ef9365_exec(uint8_t cmd) { // Draw character - #ifdef DBGMODE - printf("EF9365 Command : [0x%.2X] %s\n", cmd, commands_names[0x12]); - #endif + LOG("EF9365 Command : [0x%.2X] %s\n", cmd, commands_names[0x12]); busy_cycles = draw_character( cmd - 0x20, 0 , 0 ); set_busy_flag( cycles_to_us( busy_cycles ) ); @@ -1167,7 +1177,7 @@ uint32_t ef9365_device::screen_update(screen_device &screen, bitmap_rgb32 &bitma for( p = 0; p < nb_of_bitplanes; p++) { - if( m_videoram->read_byte( (EF936X_BITPLANE_MAX_SIZE*p) + (ptr>>3)) & (0x80>>(ptr&7))) + if( m_videoram->read_byte( (BITPLANE_MAX_SIZE*p) + (ptr>>3)) & (0x80>>(ptr&7))) { color_index |= (0x01< [ 0x%.2X ] - %s\n", register_names[offset&0xF],return_value, machine().describe_context() ); - #endif + LOG("EF9365 [ %s ] RD> [ 0x%.2X ] - %s\n", register_names[offset&0xF],return_value, machine().describe_context() ); return return_value; } @@ -1304,9 +1312,7 @@ READ8_MEMBER( ef9365_device::data_r ) WRITE8_MEMBER( ef9365_device::data_w ) { - #ifdef DBGMODE - printf("EF9365 [ %s ] m_charset; address_space *m_videoram; @@ -118,7 +122,7 @@ private: uint16_t overflow_mask_y; int vsync_scanline_pos; - uint8_t m_readback_latch[EF936X_MAX_BITPLANES]; // Last DRAM Readback buffer (Filled after a Direct Memory Access Request command) + uint8_t m_readback_latch[MAX_BITPLANES]; // Last DRAM Readback buffer (Filled after a Direct Memory Access Request command) int m_readback_latch_pix_offset; uint32_t clock_freq; @@ -132,27 +136,6 @@ private: }; // device type definition -extern const device_type EF9365; - -#define EF936X_REG_STATUS 0x00 -#define EF936X_REG_CMD 0x00 -#define EF936X_REG_CTRL1 0x01 -#define EF936X_REG_CTRL2 0x02 -#define EF936X_REG_CSIZE 0x03 -#define EF936X_REG_DELTAX 0x05 -#define EF936X_REG_DELTAY 0x07 -#define EF936X_REG_X_MSB 0x08 -#define EF936X_REG_X_LSB 0x09 -#define EF936X_REG_Y_MSB 0x0A -#define EF936X_REG_Y_LSB 0x0B -#define EF936X_REG_XLP 0x0C -#define EF936X_REG_YLP 0x0D - -#define EF936X_256x256_DISPLAY_MODE 0x00 -#define EF936X_512x512_DISPLAY_MODE 0x01 -#define EF936X_512x256_DISPLAY_MODE 0x02 -#define EF936X_128x128_DISPLAY_MODE 0x03 -#define EF936X_64x64_DISPLAY_MODE 0x04 - - -#endif +DECLARE_DEVICE_TYPE(EF9365, ef9365_device) + +#endif // MAME_VIDEO_EF9365_H diff --git a/src/devices/video/ef9369.cpp b/src/devices/video/ef9369.cpp index 84d69c88117..2a00ff76de3 100644 --- a/src/devices/video/ef9369.cpp +++ b/src/devices/video/ef9369.cpp @@ -7,15 +7,16 @@ ***************************************************************************/ #include "emu.h" -#include #include "ef9369.h" +#include + //************************************************************************** // DEVICE DEFINITIONS //************************************************************************** -const device_type EF9369 = device_creator; +DEFINE_DEVICE_TYPE(EF9369, ef9369_device, "ef9369", "Thomson EF9369 Single Chip Color Palette") //************************************************************************** @@ -27,8 +28,8 @@ const device_type EF9369 = device_creator; //------------------------------------------------- ef9369_device::ef9369_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, EF9369, "EF9369 Single Chip Color Palette", tag, owner, clock, "ef9369", __FILE__), - m_address(0) + : device_t(mconfig, EF9369, tag, owner, clock) + , m_address(0) { std::fill(m_ca, m_ca + NUMCOLORS, 0); std::fill(m_cb, m_cb + NUMCOLORS, 0); diff --git a/src/devices/video/ef9369.h b/src/devices/video/ef9369.h index 63b28d2cac7..b25a892a662 100644 --- a/src/devices/video/ef9369.h +++ b/src/devices/video/ef9369.h @@ -24,10 +24,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_VIDEO_EF9369_H +#define MAME_VIDEO_EF9369_H -#ifndef __EF9369_H__ -#define __EF9369_H__ +#pragma once @@ -39,14 +39,13 @@ MCFG_DEVICE_ADD(_tag, EF9369, 0) \ #define MCFG_EF9369_COLOR_UPDATE_CB(_class, _method) \ - ef9369_device::set_color_update_callback(*device, ef9369_color_update_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); + ef9369_device::set_color_update_callback(*device, ef9369_device::color_update_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); //************************************************************************** // TYPE DEFINITIONS //************************************************************************** -typedef device_delegate ef9369_color_update_delegate; #define EF9369_COLOR_UPDATE(name) void name(int entry, bool m, uint8_t ca, uint8_t cb, uint8_t cc) // ======================> ef9369_device @@ -54,17 +53,19 @@ typedef device_delegate color_update_delegate; + // construction/destruction ef9369_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // configuration - static void set_color_update_callback(device_t &device, ef9369_color_update_delegate callback) { downcast(device).m_color_update_cb = callback; } + static void set_color_update_callback(device_t &device, color_update_delegate &&cb) { downcast(device).m_color_update_cb = std::move(cb); } DECLARE_READ8_MEMBER(data_r); DECLARE_WRITE8_MEMBER(data_w); DECLARE_WRITE8_MEMBER(address_w); - static const int NUMCOLORS = 16; + static constexpr int NUMCOLORS = 16; protected: // device-level overrides @@ -72,7 +73,7 @@ protected: virtual void device_reset() override; private: - ef9369_color_update_delegate m_color_update_cb; + color_update_delegate m_color_update_cb; // state uint8_t m_ca[NUMCOLORS], m_cb[NUMCOLORS], m_cc[NUMCOLORS]; // actually 4-bit @@ -81,6 +82,6 @@ private: }; // device type definition -extern const device_type EF9369; +DECLARE_DEVICE_TYPE(EF9369, ef9369_device) -#endif // __EF9369_H__ +#endif // MAME_VIDEO_EF9369_H diff --git a/src/devices/video/epic12.cpp b/src/devices/video/epic12.cpp index 68d1098abd5..b0ca59b160a 100644 --- a/src/devices/video/epic12.cpp +++ b/src/devices/video/epic12.cpp @@ -6,13 +6,13 @@ #include "epic12.h" - -const device_type EPIC12 = device_creator; +DEFINE_DEVICE_TYPE(EPIC12, epic12_device, "epic12", "EPIC12 Blitter") epic12_device::epic12_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, EPIC12, "EP1C12 Blitter", tag, owner, clock, "epic12", __FILE__), - device_video_interface(mconfig, *this), m_ram16(nullptr), m_gfx_size(0), m_bitmaps(nullptr), m_use_ram(nullptr), - m_main_ramsize(0), m_main_rammask(0), m_maincpu(nullptr), m_ram16_copy(nullptr), m_work_queue(nullptr) + : device_t(mconfig, EPIC12, tag, owner, clock) + , device_video_interface(mconfig, *this) + , m_ram16(nullptr), m_gfx_size(0), m_bitmaps(nullptr), m_use_ram(nullptr) + , m_main_ramsize(0), m_main_rammask(0), m_maincpu(nullptr), m_ram16_copy(nullptr), m_work_queue(nullptr) { m_is_unsafe = 0; m_delay_scale = 0; @@ -29,7 +29,7 @@ epic12_device::epic12_device(const machine_config &mconfig, const char *tag, dev m_gfx_scroll_0_y_shadowcopy = 0; m_gfx_scroll_1_x_shadowcopy = 0; m_gfx_scroll_1_y_shadowcopy = 0; - epic12_device_blit_delay = 0; + blit_delay = 0; } TIMER_CALLBACK_MEMBER( epic12_device::blitter_delay_callback ) @@ -84,11 +84,11 @@ void epic12_device::device_reset() { for (x=0;x<0x20;x++) { - epic12_device_colrtable[x][y] = (x*y) / 0x1f; - if (epic12_device_colrtable[x][y]>0x1f) epic12_device_colrtable[x][y] = 0x1f; + colrtable[x][y] = (x*y) / 0x1f; + if (colrtable[x][y]>0x1f) colrtable[x][y] = 0x1f; - epic12_device_colrtable_rev[x^0x1f][y] = (x*y) / 0x1f; - if (epic12_device_colrtable_rev[x^0x1f][y]>0x1f) epic12_device_colrtable_rev[x^0x1f][y] = 0x1f; + colrtable_rev[x^0x1f][y] = (x*y) / 0x1f; + if (colrtable_rev[x^0x1f][y]>0x1f) colrtable_rev[x^0x1f][y] = 0x1f; } } @@ -97,8 +97,8 @@ void epic12_device::device_reset() { for (x=0;x<0x20;x++) { - epic12_device_colrtable_add[x][y] = (x+y); - if (epic12_device_colrtable_add[x][y]>0x1f) epic12_device_colrtable_add[x][y] = 0x1f; + colrtable_add[x][y] = (x+y); + if (colrtable_add[x][y]>0x1f) colrtable_add[x][y] = 0x1f; } } @@ -106,10 +106,10 @@ void epic12_device::device_reset() } // todo, get these into the device class without ruining performance -uint8_t epic12_device_colrtable[0x20][0x40]; -uint8_t epic12_device_colrtable_rev[0x20][0x40]; -uint8_t epic12_device_colrtable_add[0x20][0x20]; -uint64_t epic12_device_blit_delay; +uint8_t epic12_device::colrtable[0x20][0x40]; +uint8_t epic12_device::colrtable_rev[0x20][0x40]; +uint8_t epic12_device::colrtable_add[0x20][0x20]; +uint64_t epic12_device::blit_delay; inline uint16_t epic12_device::READ_NEXT_WORD(offs_t *addr) { @@ -204,7 +204,7 @@ inline void epic12_device::gfx_upload(offs_t *addr) -epic12_device_blitfunction epic12_device_f0_ti1_tr1_blit_funcs[] = +const epic12_device::blitfunction epic12_device::f0_ti1_tr1_blit_funcs[64] = { epic12_device::draw_sprite_f0_ti1_tr1_s0_d0, epic12_device::draw_sprite_f0_ti1_tr1_s1_d0, epic12_device::draw_sprite_f0_ti1_tr1_s2_d0, epic12_device::draw_sprite_f0_ti1_tr1_s3_d0, epic12_device::draw_sprite_f0_ti1_tr1_s4_d0, epic12_device::draw_sprite_f0_ti1_tr1_s5_d0, epic12_device::draw_sprite_f0_ti1_tr1_s6_d0, epic12_device::draw_sprite_f0_ti1_tr1_s7_d0, epic12_device::draw_sprite_f0_ti1_tr1_s0_d1, epic12_device::draw_sprite_f0_ti1_tr1_s1_d1, epic12_device::draw_sprite_f0_ti1_tr1_s2_d1, epic12_device::draw_sprite_f0_ti1_tr1_s3_d1, epic12_device::draw_sprite_f0_ti1_tr1_s4_d1, epic12_device::draw_sprite_f0_ti1_tr1_s5_d1, epic12_device::draw_sprite_f0_ti1_tr1_s6_d1, epic12_device::draw_sprite_f0_ti1_tr1_s7_d1, @@ -216,7 +216,7 @@ epic12_device_blitfunction epic12_device_f0_ti1_tr1_blit_funcs[] = epic12_device::draw_sprite_f0_ti1_tr1_s0_d7, epic12_device::draw_sprite_f0_ti1_tr1_s1_d7, epic12_device::draw_sprite_f0_ti1_tr1_s2_d7, epic12_device::draw_sprite_f0_ti1_tr1_s3_d7, epic12_device::draw_sprite_f0_ti1_tr1_s4_d7, epic12_device::draw_sprite_f0_ti1_tr1_s5_d7, epic12_device::draw_sprite_f0_ti1_tr1_s6_d7, epic12_device::draw_sprite_f0_ti1_tr1_s7_d7, }; -epic12_device_blitfunction epic12_device_f0_ti1_tr0_blit_funcs[] = +const epic12_device::blitfunction epic12_device::f0_ti1_tr0_blit_funcs[64] = { epic12_device::draw_sprite_f0_ti1_tr0_s0_d0, epic12_device::draw_sprite_f0_ti1_tr0_s1_d0, epic12_device::draw_sprite_f0_ti1_tr0_s2_d0, epic12_device::draw_sprite_f0_ti1_tr0_s3_d0, epic12_device::draw_sprite_f0_ti1_tr0_s4_d0, epic12_device::draw_sprite_f0_ti1_tr0_s5_d0, epic12_device::draw_sprite_f0_ti1_tr0_s6_d0, epic12_device::draw_sprite_f0_ti1_tr0_s7_d0, epic12_device::draw_sprite_f0_ti1_tr0_s0_d1, epic12_device::draw_sprite_f0_ti1_tr0_s1_d1, epic12_device::draw_sprite_f0_ti1_tr0_s2_d1, epic12_device::draw_sprite_f0_ti1_tr0_s3_d1, epic12_device::draw_sprite_f0_ti1_tr0_s4_d1, epic12_device::draw_sprite_f0_ti1_tr0_s5_d1, epic12_device::draw_sprite_f0_ti1_tr0_s6_d1, epic12_device::draw_sprite_f0_ti1_tr0_s7_d1, @@ -228,7 +228,7 @@ epic12_device_blitfunction epic12_device_f0_ti1_tr0_blit_funcs[] = epic12_device::draw_sprite_f0_ti1_tr0_s0_d7, epic12_device::draw_sprite_f0_ti1_tr0_s1_d7, epic12_device::draw_sprite_f0_ti1_tr0_s2_d7, epic12_device::draw_sprite_f0_ti1_tr0_s3_d7, epic12_device::draw_sprite_f0_ti1_tr0_s4_d7, epic12_device::draw_sprite_f0_ti1_tr0_s5_d7, epic12_device::draw_sprite_f0_ti1_tr0_s6_d7, epic12_device::draw_sprite_f0_ti1_tr0_s7_d7, }; -epic12_device_blitfunction epic12_device_f1_ti1_tr1_blit_funcs[] = +const epic12_device::blitfunction epic12_device::f1_ti1_tr1_blit_funcs[64] = { epic12_device::draw_sprite_f1_ti1_tr1_s0_d0, epic12_device::draw_sprite_f1_ti1_tr1_s1_d0, epic12_device::draw_sprite_f1_ti1_tr1_s2_d0, epic12_device::draw_sprite_f1_ti1_tr1_s3_d0, epic12_device::draw_sprite_f1_ti1_tr1_s4_d0, epic12_device::draw_sprite_f1_ti1_tr1_s5_d0, epic12_device::draw_sprite_f1_ti1_tr1_s6_d0, epic12_device::draw_sprite_f1_ti1_tr1_s7_d0, epic12_device::draw_sprite_f1_ti1_tr1_s0_d1, epic12_device::draw_sprite_f1_ti1_tr1_s1_d1, epic12_device::draw_sprite_f1_ti1_tr1_s2_d1, epic12_device::draw_sprite_f1_ti1_tr1_s3_d1, epic12_device::draw_sprite_f1_ti1_tr1_s4_d1, epic12_device::draw_sprite_f1_ti1_tr1_s5_d1, epic12_device::draw_sprite_f1_ti1_tr1_s6_d1, epic12_device::draw_sprite_f1_ti1_tr1_s7_d1, @@ -240,7 +240,7 @@ epic12_device_blitfunction epic12_device_f1_ti1_tr1_blit_funcs[] = epic12_device::draw_sprite_f1_ti1_tr1_s0_d7, epic12_device::draw_sprite_f1_ti1_tr1_s1_d7, epic12_device::draw_sprite_f1_ti1_tr1_s2_d7, epic12_device::draw_sprite_f1_ti1_tr1_s3_d7, epic12_device::draw_sprite_f1_ti1_tr1_s4_d7, epic12_device::draw_sprite_f1_ti1_tr1_s5_d7, epic12_device::draw_sprite_f1_ti1_tr1_s6_d7, epic12_device::draw_sprite_f1_ti1_tr1_s7_d7, }; -epic12_device_blitfunction epic12_device_f1_ti1_tr0_blit_funcs[] = +const epic12_device::blitfunction epic12_device::f1_ti1_tr0_blit_funcs[64] = { epic12_device::draw_sprite_f1_ti1_tr0_s0_d0, epic12_device::draw_sprite_f1_ti1_tr0_s1_d0, epic12_device::draw_sprite_f1_ti1_tr0_s2_d0, epic12_device::draw_sprite_f1_ti1_tr0_s3_d0, epic12_device::draw_sprite_f1_ti1_tr0_s4_d0, epic12_device::draw_sprite_f1_ti1_tr0_s5_d0, epic12_device::draw_sprite_f1_ti1_tr0_s6_d0, epic12_device::draw_sprite_f1_ti1_tr0_s7_d0, epic12_device::draw_sprite_f1_ti1_tr0_s0_d1, epic12_device::draw_sprite_f1_ti1_tr0_s1_d1, epic12_device::draw_sprite_f1_ti1_tr0_s2_d1, epic12_device::draw_sprite_f1_ti1_tr0_s3_d1, epic12_device::draw_sprite_f1_ti1_tr0_s4_d1, epic12_device::draw_sprite_f1_ti1_tr0_s5_d1, epic12_device::draw_sprite_f1_ti1_tr0_s6_d1, epic12_device::draw_sprite_f1_ti1_tr0_s7_d1, @@ -254,7 +254,7 @@ epic12_device_blitfunction epic12_device_f1_ti1_tr0_blit_funcs[] = -epic12_device_blitfunction epic12_device_f0_ti0_tr1_blit_funcs[] = +const epic12_device::blitfunction epic12_device::f0_ti0_tr1_blit_funcs[64] = { epic12_device::draw_sprite_f0_ti0_tr1_s0_d0, epic12_device::draw_sprite_f0_ti0_tr1_s1_d0, epic12_device::draw_sprite_f0_ti0_tr1_s2_d0, epic12_device::draw_sprite_f0_ti0_tr1_s3_d0, epic12_device::draw_sprite_f0_ti0_tr1_s4_d0, epic12_device::draw_sprite_f0_ti0_tr1_s5_d0, epic12_device::draw_sprite_f0_ti0_tr1_s6_d0, epic12_device::draw_sprite_f0_ti0_tr1_s7_d0, epic12_device::draw_sprite_f0_ti0_tr1_s0_d1, epic12_device::draw_sprite_f0_ti0_tr1_s1_d1, epic12_device::draw_sprite_f0_ti0_tr1_s2_d1, epic12_device::draw_sprite_f0_ti0_tr1_s3_d1, epic12_device::draw_sprite_f0_ti0_tr1_s4_d1, epic12_device::draw_sprite_f0_ti0_tr1_s5_d1, epic12_device::draw_sprite_f0_ti0_tr1_s6_d1, epic12_device::draw_sprite_f0_ti0_tr1_s7_d1, @@ -266,7 +266,7 @@ epic12_device_blitfunction epic12_device_f0_ti0_tr1_blit_funcs[] = epic12_device::draw_sprite_f0_ti0_tr1_s0_d7, epic12_device::draw_sprite_f0_ti0_tr1_s1_d7, epic12_device::draw_sprite_f0_ti0_tr1_s2_d7, epic12_device::draw_sprite_f0_ti0_tr1_s3_d7, epic12_device::draw_sprite_f0_ti0_tr1_s4_d7, epic12_device::draw_sprite_f0_ti0_tr1_s5_d7, epic12_device::draw_sprite_f0_ti0_tr1_s6_d7, epic12_device::draw_sprite_f0_ti0_tr1_s7_d7, }; -epic12_device_blitfunction epic12_device_f0_ti0_tr0_blit_funcs[] = +const epic12_device::blitfunction epic12_device::f0_ti0_tr0_blit_funcs[64] = { epic12_device::draw_sprite_f0_ti0_tr0_s0_d0, epic12_device::draw_sprite_f0_ti0_tr0_s1_d0, epic12_device::draw_sprite_f0_ti0_tr0_s2_d0, epic12_device::draw_sprite_f0_ti0_tr0_s3_d0, epic12_device::draw_sprite_f0_ti0_tr0_s4_d0, epic12_device::draw_sprite_f0_ti0_tr0_s5_d0, epic12_device::draw_sprite_f0_ti0_tr0_s6_d0, epic12_device::draw_sprite_f0_ti0_tr0_s7_d0, epic12_device::draw_sprite_f0_ti0_tr0_s0_d1, epic12_device::draw_sprite_f0_ti0_tr0_s1_d1, epic12_device::draw_sprite_f0_ti0_tr0_s2_d1, epic12_device::draw_sprite_f0_ti0_tr0_s3_d1, epic12_device::draw_sprite_f0_ti0_tr0_s4_d1, epic12_device::draw_sprite_f0_ti0_tr0_s5_d1, epic12_device::draw_sprite_f0_ti0_tr0_s6_d1, epic12_device::draw_sprite_f0_ti0_tr0_s7_d1, @@ -278,7 +278,7 @@ epic12_device_blitfunction epic12_device_f0_ti0_tr0_blit_funcs[] = epic12_device::draw_sprite_f0_ti0_tr0_s0_d7, epic12_device::draw_sprite_f0_ti0_tr0_s1_d7, epic12_device::draw_sprite_f0_ti0_tr0_s2_d7, epic12_device::draw_sprite_f0_ti0_tr0_s3_d7, epic12_device::draw_sprite_f0_ti0_tr0_s4_d7, epic12_device::draw_sprite_f0_ti0_tr0_s5_d7, epic12_device::draw_sprite_f0_ti0_tr0_s6_d7, epic12_device::draw_sprite_f0_ti0_tr0_s7_d7, }; -epic12_device_blitfunction epic12_device_f1_ti0_tr1_blit_funcs[] = +const epic12_device::blitfunction epic12_device::f1_ti0_tr1_blit_funcs[64] = { epic12_device::draw_sprite_f1_ti0_tr1_s0_d0, epic12_device::draw_sprite_f1_ti0_tr1_s1_d0, epic12_device::draw_sprite_f1_ti0_tr1_s2_d0, epic12_device::draw_sprite_f1_ti0_tr1_s3_d0, epic12_device::draw_sprite_f1_ti0_tr1_s4_d0, epic12_device::draw_sprite_f1_ti0_tr1_s5_d0, epic12_device::draw_sprite_f1_ti0_tr1_s6_d0, epic12_device::draw_sprite_f1_ti0_tr1_s7_d0, epic12_device::draw_sprite_f1_ti0_tr1_s0_d1, epic12_device::draw_sprite_f1_ti0_tr1_s1_d1, epic12_device::draw_sprite_f1_ti0_tr1_s2_d1, epic12_device::draw_sprite_f1_ti0_tr1_s3_d1, epic12_device::draw_sprite_f1_ti0_tr1_s4_d1, epic12_device::draw_sprite_f1_ti0_tr1_s5_d1, epic12_device::draw_sprite_f1_ti0_tr1_s6_d1, epic12_device::draw_sprite_f1_ti0_tr1_s7_d1, @@ -290,7 +290,7 @@ epic12_device_blitfunction epic12_device_f1_ti0_tr1_blit_funcs[] = epic12_device::draw_sprite_f1_ti0_tr1_s0_d7, epic12_device::draw_sprite_f1_ti0_tr1_s1_d7, epic12_device::draw_sprite_f1_ti0_tr1_s2_d7, epic12_device::draw_sprite_f1_ti0_tr1_s3_d7, epic12_device::draw_sprite_f1_ti0_tr1_s4_d7, epic12_device::draw_sprite_f1_ti0_tr1_s5_d7, epic12_device::draw_sprite_f1_ti0_tr1_s6_d7, epic12_device::draw_sprite_f1_ti0_tr1_s7_d7, }; -epic12_device_blitfunction epic12_device_f1_ti0_tr0_blit_funcs[] = +const epic12_device::blitfunction epic12_device::f1_ti0_tr0_blit_funcs[64] = { epic12_device::draw_sprite_f1_ti0_tr0_s0_d0, epic12_device::draw_sprite_f1_ti0_tr0_s1_d0, epic12_device::draw_sprite_f1_ti0_tr0_s2_d0, epic12_device::draw_sprite_f1_ti0_tr0_s3_d0, epic12_device::draw_sprite_f1_ti0_tr0_s4_d0, epic12_device::draw_sprite_f1_ti0_tr0_s5_d0, epic12_device::draw_sprite_f1_ti0_tr0_s6_d0, epic12_device::draw_sprite_f1_ti0_tr0_s7_d0, epic12_device::draw_sprite_f1_ti0_tr0_s0_d1, epic12_device::draw_sprite_f1_ti0_tr0_s1_d1, epic12_device::draw_sprite_f1_ti0_tr0_s2_d1, epic12_device::draw_sprite_f1_ti0_tr0_s3_d1, epic12_device::draw_sprite_f1_ti0_tr0_s4_d1, epic12_device::draw_sprite_f1_ti0_tr0_s5_d1, epic12_device::draw_sprite_f1_ti0_tr0_s6_d1, epic12_device::draw_sprite_f1_ti0_tr0_s7_d1, @@ -320,7 +320,7 @@ inline void epic12_device::gfx_draw_shadow_copy(address_space &space, offs_t *ad // todo, calcualte clipping. - epic12_device_blit_delay += w*h; + blit_delay += w*h; } @@ -409,7 +409,7 @@ inline void epic12_device::gfx_draw(offs_t *addr) } else { - epic12_device_f0_ti1_tr1_blit_funcs[s_mode | (d_mode<<3)](draw_params); + f0_ti1_tr1_blit_funcs[s_mode | (d_mode<<3)](draw_params); } } else @@ -420,7 +420,7 @@ inline void epic12_device::gfx_draw(offs_t *addr) } else { - epic12_device_f0_ti1_tr0_blit_funcs[s_mode | (d_mode<<3)](draw_params); + f0_ti1_tr0_blit_funcs[s_mode | (d_mode<<3)](draw_params); } } } @@ -434,7 +434,7 @@ inline void epic12_device::gfx_draw(offs_t *addr) } else { - epic12_device_f1_ti1_tr1_blit_funcs[s_mode | (d_mode<<3)](draw_params); + f1_ti1_tr1_blit_funcs[s_mode | (d_mode<<3)](draw_params); } } else @@ -445,7 +445,7 @@ inline void epic12_device::gfx_draw(offs_t *addr) } else { - epic12_device_f1_ti1_tr0_blit_funcs[s_mode | (d_mode<<3)](draw_params); + f1_ti1_tr0_blit_funcs[s_mode | (d_mode<<3)](draw_params); } } } @@ -495,7 +495,7 @@ inline void epic12_device::gfx_draw(offs_t *addr) } else { - epic12_device_f0_ti0_tr1_blit_funcs[s_mode | (d_mode<<3)](draw_params); + f0_ti0_tr1_blit_funcs[s_mode | (d_mode<<3)](draw_params); } } else @@ -506,7 +506,7 @@ inline void epic12_device::gfx_draw(offs_t *addr) } else { - epic12_device_f0_ti0_tr0_blit_funcs[s_mode | (d_mode<<3)](draw_params); + f0_ti0_tr0_blit_funcs[s_mode | (d_mode<<3)](draw_params); } } } @@ -520,7 +520,7 @@ inline void epic12_device::gfx_draw(offs_t *addr) } else { - epic12_device_f1_ti0_tr1_blit_funcs[s_mode | (d_mode<<3)](draw_params); + f1_ti0_tr1_blit_funcs[s_mode | (d_mode<<3)](draw_params); } } else @@ -531,7 +531,7 @@ inline void epic12_device::gfx_draw(offs_t *addr) } else { - epic12_device_f1_ti0_tr0_blit_funcs[s_mode | (d_mode<<3)](draw_params); + f1_ti0_tr0_blit_funcs[s_mode | (d_mode<<3)](draw_params); } } } @@ -681,7 +681,7 @@ void *epic12_device::blit_request_callback_unsafe(void *param, int threadid) { epic12_device *object = reinterpret_cast(param); - epic12_device_blit_delay = 0; + blit_delay = 0; object->gfx_exec_unsafe(); return nullptr; } @@ -721,13 +721,13 @@ WRITE32_MEMBER( epic12_device::gfx_exec_w ) osd_work_item_release(m_blitter_request); } - epic12_device_blit_delay = 0; + blit_delay = 0; gfx_create_shadow_copy(space); // create a copy of the blit list so we can safely thread it. - if (epic12_device_blit_delay) + if (blit_delay) { m_blitter_busy = 1; - m_blitter_delay_timer->adjust(attotime::from_nsec(epic12_device_blit_delay*8)); // NOT accurate timing (currently ignored anyway) + m_blitter_delay_timer->adjust(attotime::from_nsec(blit_delay*8)); // NOT accurate timing (currently ignored anyway) } m_gfx_addr_shadowcopy = m_gfx_addr; @@ -760,10 +760,10 @@ WRITE32_MEMBER( epic12_device::gfx_exec_w_unsafe ) osd_work_item_release(m_blitter_request); } - if (epic12_device_blit_delay) + if (blit_delay) { m_blitter_busy = 1; - int delay = epic12_device_blit_delay*(15 * m_delay_scale / 50); + int delay = blit_delay*(15 * m_delay_scale / 50); //printf("delay %d\n", delay); m_blitter_delay_timer->adjust(attotime::from_nsec(delay)); } diff --git a/src/devices/video/epic12.h b/src/devices/video/epic12.h index 07edae65a79..ce2bb88c5d3 100644 --- a/src/devices/video/epic12.h +++ b/src/devices/video/epic12.h @@ -1,6 +1,10 @@ // license:BSD-3-Clause // copyright-holders:David Haywood, Luca Elia, MetalliC /* emulation of Altera Cyclone EPIC12 FPGA programmed as a blitter */ +#ifndef MAME_VIDEO_EPIC12_H +#define MAME_VIDEO_EPIC12_H + +#pragma once #define MCFG_EPIC12_ADD(_tag) \ MCFG_DEVICE_ADD(_tag, EPIC12, 0) @@ -9,42 +13,7 @@ epic12_device::set_mainramsize(*device, _rgn); -extern uint8_t epic12_device_colrtable[0x20][0x40]; -extern uint8_t epic12_device_colrtable_rev[0x20][0x40]; -extern uint8_t epic12_device_colrtable_add[0x20][0x20]; -extern uint64_t epic12_device_blit_delay; - -struct _clr_t -{ - uint8_t b,g,r,t; -}; - -typedef struct _clr_t clr_t; - -union colour_t -{ - clr_t trgb; - uint32_t u32; -}; - -typedef void (*epic12_device_blitfunction)(bitmap_rgb32 *, - const rectangle *, - uint32_t *, /* gfx */ - int , /* src_x */ - int , /* src_y */ - const int , /* dst_x_start */ - const int , /* dst_y_start */ - int , /* dimx */ - int , /* dimy */ - const int , /* flipy */ - const uint8_t , /* s_alpha */ - const uint8_t , /* d_alpha */ - //int , /* tint */ - const clr_t * ); - - -class epic12_device : public device_t, - public device_video_interface +class epic12_device : public device_t, public device_video_interface { public: epic12_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); @@ -114,6 +83,167 @@ public: void gfx_exec_unsafe(void); static void *blit_request_callback_unsafe(void *param, int threadid); +protected: + struct clr_t + { + // clr_t to r5g5b5 + uint32_t to_pen() const + { + // --t- ---- rrrr r--- gggg g--- bbbb b--- format + return (r << (16 + 3)) | (g << (8 + 3)) | (b << 3); + + // --t- ---- ---r rrrr ---g gggg ---b bbbb format + //return (r << 16) | (g << 8) | b; + } + + + void add_with_clr_mul_fixed(const clr_t &clr0, uint8_t mulfixed_val, const clr_t &mulfixed_clr0) + { + r = colrtable_add[clr0.r][colrtable[mulfixed_clr0.r][mulfixed_val]]; + g = colrtable_add[clr0.g][colrtable[mulfixed_clr0.g][mulfixed_val]]; + b = colrtable_add[clr0.b][colrtable[mulfixed_clr0.b][mulfixed_val]]; + } + + void add_with_clr_mul_3param(const clr_t &clr0, const clr_t &clr1, const clr_t &clr2) + { + r = colrtable_add[clr0.r][colrtable[clr2.r][clr1.r]]; + g = colrtable_add[clr0.g][colrtable[clr2.g][clr1.g]]; + b = colrtable_add[clr0.b][colrtable[clr2.b][clr1.b]]; + } + + void add_with_clr_square(const clr_t &clr0, const clr_t &clr1) + { + r = colrtable_add[clr0.r][colrtable[clr1.r][clr1.r]]; + g = colrtable_add[clr0.r][colrtable[clr1.g][clr1.g]]; + b = colrtable_add[clr0.r][colrtable[clr1.b][clr1.b]]; + } + + void add_with_clr_mul_fixed_rev(const clr_t &clr0, uint8_t val, const clr_t &clr1) + { + r = colrtable_add[clr0.r][colrtable_rev[val][clr1.r]]; + g = colrtable_add[clr0.g][colrtable_rev[val][clr1.g]]; + b = colrtable_add[clr0.b][colrtable_rev[val][clr1.b]]; + } + + void add_with_clr_mul_rev_3param(const clr_t &clr0, const clr_t &clr1, const clr_t &clr2) + { + r = colrtable_add[clr0.r][colrtable_rev[clr2.r][clr1.r]]; + g = colrtable_add[clr0.g][colrtable_rev[clr2.g][clr1.g]]; + b = colrtable_add[clr0.b][colrtable_rev[clr2.b][clr1.b]]; + } + + void add_with_clr_mul_rev_square(const clr_t &clr0, const clr_t &clr1) + { + r = colrtable_add[clr0.r][colrtable_rev[(clr1.r)][(clr1.r)]]; + g = colrtable_add[clr0.g][colrtable_rev[(clr1.g)][(clr1.g)]]; + b = colrtable_add[clr0.b][colrtable_rev[(clr1.b)][(clr1.b)]]; + } + + + void add(const clr_t &clr0, const clr_t &clr1) + { + //r = clr0.r + clr1.r; + //g = clr0.g + clr1.g; + //b = clr0.b + clr1.b; + + // use pre-clamped lookup table + r = colrtable_add[clr0.r][clr1.r]; + g = colrtable_add[clr0.g][clr1.g]; + b = colrtable_add[clr0.b][clr1.b]; + } + + + void mul(const clr_t &clr1) + { + r = colrtable[r][clr1.r]; + g = colrtable[g][clr1.g]; + b = colrtable[b][clr1.b]; + } + + void square(const clr_t &clr1) + { + r = colrtable[clr1.r][clr1.r]; + g = colrtable[clr1.g][clr1.g]; + b = colrtable[clr1.b][clr1.b]; + } + + void mul_3param(const clr_t &clr1, const clr_t &clr2) + { + r = colrtable[clr2.r][clr1.r]; + g = colrtable[clr2.g][clr1.g]; + b = colrtable[clr2.b][clr1.b]; + } + + void mul_rev(const clr_t &clr1) + { + r = colrtable_rev[r][clr1.r]; + g = colrtable_rev[g][clr1.g]; + b = colrtable_rev[b][clr1.b]; + } + + void mul_rev_square(const clr_t &clr1) + { + r = colrtable_rev[clr1.r][clr1.r]; + g = colrtable_rev[clr1.g][clr1.g]; + b = colrtable_rev[clr1.b][clr1.b]; + } + + + void mul_rev_3param(const clr_t &clr1, const clr_t &clr2) + { + r = colrtable_rev[clr2.r][clr1.r]; + g = colrtable_rev[clr2.g][clr1.g]; + b = colrtable_rev[clr2.b][clr1.b]; + } + + void mul_fixed(uint8_t val, const clr_t &clr0) + { + r = colrtable[val][clr0.r]; + g = colrtable[val][clr0.g]; + b = colrtable[val][clr0.b]; + } + + void mul_fixed_rev(uint8_t val, const clr_t &clr0) + { + r = colrtable_rev[val][clr0.r]; + g = colrtable_rev[val][clr0.g]; + b = colrtable_rev[val][clr0.b]; + } + + void copy(const clr_t &clr0) + { + r = clr0.r; + g = clr0.g; + b = clr0.b; + } + + + uint8_t b, g, r, t; + }; + + union colour_t + { + clr_t trgb; + uint32_t u32; + }; + + typedef void (*blitfunction)( + bitmap_rgb32 *, + const rectangle *, + uint32_t *gfx, + int src_x, + int src_y, + const int dst_x_start, + const int dst_y_start, + int dimx, + int dimy, + const int flipy, + const uint8_t s_alpha, + const uint8_t d_alpha, + //int tint, + const clr_t *); + + #define BLIT_FUNCTION static void #define BLIT_PARAMS bitmap_rgb32 *bitmap, const rectangle *clip, uint32_t *gfx, int src_x, int src_y, const int dst_x_start, const int dst_y_start, int dimx, int dimy, const int flipy, const uint8_t s_alpha, const uint8_t d_alpha, const clr_t *tint_clr @@ -668,146 +798,13 @@ public: // convert separate r,g,b biases (0..80..ff) to clr_t (-1f..0..1f) - static inline void tint_to_clr(uint8_t r, uint8_t g, uint8_t b, clr_t *clr) + void tint_to_clr(uint8_t r, uint8_t g, uint8_t b, clr_t *clr) { clr->r = r>>2; clr->g = g>>2; clr->b = b>>2; }; - // clr_t to r5g5b5 - static inline uint32_t clr_to_pen(const clr_t *clr) - { - // --t- ---- rrrr r--- gggg g--- bbbb b--- format - return (clr->r << (16+3)) | (clr->g << (8+3)) | (clr->b << 3); - - // --t- ---- ---r rrrr ---g gggg ---b bbbb format - // return (clr->r << (16)) | (clr->g << (8)) | (clr->b); - }; - - - static inline void clr_add_with_clr_mul_fixed(clr_t *clr, const clr_t *clr0, const uint8_t mulfixed_val, const clr_t *mulfixed_clr0) - { - clr->r = epic12_device_colrtable_add[clr0->r][epic12_device_colrtable[(mulfixed_clr0->r)][mulfixed_val]]; - clr->g = epic12_device_colrtable_add[clr0->g][epic12_device_colrtable[(mulfixed_clr0->g)][mulfixed_val]]; - clr->b = epic12_device_colrtable_add[clr0->b][epic12_device_colrtable[(mulfixed_clr0->b)][mulfixed_val]]; - } - - static inline void clr_add_with_clr_mul_3param(clr_t *clr, const clr_t *clr0, const clr_t *clr1, const clr_t *clr2) - { - clr->r = epic12_device_colrtable_add[clr0->r][epic12_device_colrtable[(clr2->r)][(clr1->r)]]; - clr->g = epic12_device_colrtable_add[clr0->g][epic12_device_colrtable[(clr2->g)][(clr1->g)]]; - clr->b = epic12_device_colrtable_add[clr0->b][epic12_device_colrtable[(clr2->b)][(clr1->b)]]; - } - - static inline void clr_add_with_clr_square(clr_t *clr, const clr_t *clr0, const clr_t *clr1) - { - clr->r = epic12_device_colrtable_add[clr0->r][epic12_device_colrtable[(clr1->r)][(clr1->r)]]; - clr->g = epic12_device_colrtable_add[clr0->r][epic12_device_colrtable[(clr1->g)][(clr1->g)]]; - clr->b = epic12_device_colrtable_add[clr0->r][epic12_device_colrtable[(clr1->b)][(clr1->b)]]; - } - - static inline void clr_add_with_clr_mul_fixed_rev(clr_t *clr, const clr_t *clr0, const uint8_t val, const clr_t *clr1) - { - clr->r = epic12_device_colrtable_add[clr0->r][epic12_device_colrtable_rev[val][(clr1->r)]]; - clr->g = epic12_device_colrtable_add[clr0->g][epic12_device_colrtable_rev[val][(clr1->g)]]; - clr->b = epic12_device_colrtable_add[clr0->b][epic12_device_colrtable_rev[val][(clr1->b)]]; - } - - static inline void clr_add_with_clr_mul_rev_3param(clr_t *clr, const clr_t *clr0, const clr_t *clr1, const clr_t *clr2) - { - clr->r = epic12_device_colrtable_add[clr0->r][epic12_device_colrtable_rev[(clr2->r)][(clr1->r)]]; - clr->g = epic12_device_colrtable_add[clr0->g][epic12_device_colrtable_rev[(clr2->g)][(clr1->g)]]; - clr->b = epic12_device_colrtable_add[clr0->b][epic12_device_colrtable_rev[(clr2->b)][(clr1->b)]]; - } - - static inline void clr_add_with_clr_mul_rev_square(clr_t *clr, const clr_t *clr0, const clr_t *clr1) - { - clr->r = epic12_device_colrtable_add[clr0->r][epic12_device_colrtable_rev[(clr1->r)][(clr1->r)]]; - clr->g = epic12_device_colrtable_add[clr0->g][epic12_device_colrtable_rev[(clr1->g)][(clr1->g)]]; - clr->b = epic12_device_colrtable_add[clr0->b][epic12_device_colrtable_rev[(clr1->b)][(clr1->b)]]; - } - - - static inline void clr_add(clr_t *clr, const clr_t *clr0, const clr_t *clr1) - { - /* - clr->r = clr0->r + clr1->r; - clr->g = clr0->g + clr1->g; - clr->b = clr0->b + clr1->b; - */ - // use pre-clamped lookup table - clr->r = epic12_device_colrtable_add[clr0->r][clr1->r]; - clr->g = epic12_device_colrtable_add[clr0->g][clr1->g]; - clr->b = epic12_device_colrtable_add[clr0->b][clr1->b]; - - } - - - static inline void clr_mul(clr_t *clr0, const clr_t *clr1) - { - clr0->r = epic12_device_colrtable[(clr0->r)][(clr1->r)]; - clr0->g = epic12_device_colrtable[(clr0->g)][(clr1->g)]; - clr0->b = epic12_device_colrtable[(clr0->b)][(clr1->b)]; - } - - static inline void clr_square(clr_t *clr0, const clr_t *clr1) - { - clr0->r = epic12_device_colrtable[(clr1->r)][(clr1->r)]; - clr0->g = epic12_device_colrtable[(clr1->g)][(clr1->g)]; - clr0->b = epic12_device_colrtable[(clr1->b)][(clr1->b)]; - } - - static inline void clr_mul_3param(clr_t *clr0, const clr_t *clr1, const clr_t *clr2) - { - clr0->r = epic12_device_colrtable[(clr2->r)][(clr1->r)]; - clr0->g = epic12_device_colrtable[(clr2->g)][(clr1->g)]; - clr0->b = epic12_device_colrtable[(clr2->b)][(clr1->b)]; - } - - static inline void clr_mul_rev(clr_t *clr0, const clr_t *clr1) - { - clr0->r = epic12_device_colrtable_rev[(clr0->r)][(clr1->r)]; - clr0->g = epic12_device_colrtable_rev[(clr0->g)][(clr1->g)]; - clr0->b = epic12_device_colrtable_rev[(clr0->b)][(clr1->b)]; - } - - static inline void clr_mul_rev_square(clr_t *clr0, const clr_t *clr1) - { - clr0->r = epic12_device_colrtable_rev[(clr1->r)][(clr1->r)]; - clr0->g = epic12_device_colrtable_rev[(clr1->g)][(clr1->g)]; - clr0->b = epic12_device_colrtable_rev[(clr1->b)][(clr1->b)]; - } - - - static inline void clr_mul_rev_3param(clr_t *clr0, const clr_t *clr1, const clr_t *clr2) - { - clr0->r = epic12_device_colrtable_rev[(clr2->r)][(clr1->r)]; - clr0->g = epic12_device_colrtable_rev[(clr2->g)][(clr1->g)]; - clr0->b = epic12_device_colrtable_rev[(clr2->b)][(clr1->b)]; - } - - static inline void clr_mul_fixed(clr_t *clr, const uint8_t val, const clr_t *clr0) - { - clr->r = epic12_device_colrtable[val][(clr0->r)]; - clr->g = epic12_device_colrtable[val][(clr0->g)]; - clr->b = epic12_device_colrtable[val][(clr0->b)]; - } - - static inline void clr_mul_fixed_rev(clr_t *clr, const uint8_t val, const clr_t *clr0) - { - clr->r = epic12_device_colrtable_rev[val][(clr0->r)]; - clr->g = epic12_device_colrtable_rev[val][(clr0->g)]; - clr->b = epic12_device_colrtable_rev[val][(clr0->b)]; - } - - static inline void clr_copy(clr_t *clr, const clr_t *clr0) - { - clr->r = clr0->r; - clr->g = clr0->g; - clr->b = clr0->b; - } - // (1|s|d) * s_factor * s + (1|s|d) * d_factor * d @@ -821,10 +818,11 @@ public: // 7: * -protected: virtual void device_start() override; virtual void device_reset() override; + TIMER_CALLBACK_MEMBER( blitter_delay_callback ); + osd_work_queue *m_work_queue; osd_work_item *m_blitter_request; @@ -832,9 +830,22 @@ protected: emu_timer *m_blitter_delay_timer; int m_blitter_busy; - TIMER_CALLBACK_MEMBER( blitter_delay_callback ); + static uint8_t colrtable[0x20][0x40]; + static uint8_t colrtable_rev[0x20][0x40]; + static uint8_t colrtable_add[0x20][0x20]; + static uint64_t blit_delay; + + static const blitfunction f0_ti1_tr1_blit_funcs[64]; + static const blitfunction f0_ti1_tr0_blit_funcs[64]; + static const blitfunction f1_ti1_tr1_blit_funcs[64]; + static const blitfunction f1_ti1_tr0_blit_funcs[64]; + static const blitfunction f0_ti0_tr1_blit_funcs[64]; + static const blitfunction f0_ti0_tr0_blit_funcs[64]; + static const blitfunction f1_ti0_tr1_blit_funcs[64]; + static const blitfunction f1_ti0_tr0_blit_funcs[64]; }; +DECLARE_DEVICE_TYPE(EPIC12, epic12_device) -extern const device_type EPIC12; +#endif // MAME_VIDEO_EPIC12_H diff --git a/src/devices/video/epic12in.hxx b/src/devices/video/epic12in.hxx index 13f29e6f609..a74249f986e 100644 --- a/src/devices/video/epic12in.hxx +++ b/src/devices/video/epic12in.hxx @@ -86,23 +86,23 @@ void epic12_device::FUNCNAME(BLIT_PARAMS) // wrong/unsafe slowdown sim if (dimy > starty && dimx > startx) { - epic12_device_blit_delay += (dimy - starty)*(dimx - startx); + blit_delay += (dimy - starty)*(dimx - startx); - //printf("delay is now %d\n", epic12_device_blit_delay); + //printf("delay is now %d\n", blit_delay); } #if BLENDED == 1 #if _SMODE == 0 #if _DMODE == 0 - const uint8_t* salpha_table = epic12_device_colrtable[s_alpha]; - const uint8_t* dalpha_table = epic12_device_colrtable[d_alpha]; + const uint8_t* salpha_table = colrtable[s_alpha]; + const uint8_t* dalpha_table = colrtable[d_alpha]; #endif #if _DMODE == 5 - const uint8_t* salpha_table = epic12_device_colrtable[s_alpha]; + const uint8_t* salpha_table = colrtable[s_alpha]; #endif #if _DMODE == 1 - const uint8_t* salpha_table = epic12_device_colrtable[s_alpha]; + const uint8_t* salpha_table = colrtable[s_alpha]; #endif #endif @@ -110,7 +110,7 @@ void epic12_device::FUNCNAME(BLIT_PARAMS) #if _SMODE == 2 #if _DMODE == 0 - const uint8_t* dalpha_table = epic12_device_colrtable[d_alpha]; + const uint8_t* dalpha_table = colrtable[d_alpha]; #endif #endif #endif diff --git a/src/devices/video/epic12pixel.hxx b/src/devices/video/epic12pixel.hxx index 65666470e40..f324e629b97 100644 --- a/src/devices/video/epic12pixel.hxx +++ b/src/devices/video/epic12pixel.hxx @@ -42,7 +42,7 @@ // source * intesity and clamp #if TINT == 1 - clr_mul(&s_clr.trgb, tint_clr); + s_clr.trgb.mul(*tint_clr); #endif #if BLENDED == 1 @@ -58,98 +58,98 @@ //g_profiler.start(PROFILER_USER1); // this is used extensively in the games (ingame, futari title screens etc.) - s_clr.trgb.r = epic12_device_colrtable_add[salpha_table[(s_clr.trgb.r)]][dalpha_table[(d_clr.trgb.r)]]; - s_clr.trgb.g = epic12_device_colrtable_add[salpha_table[(s_clr.trgb.g)]][dalpha_table[(d_clr.trgb.g)]]; - s_clr.trgb.b = epic12_device_colrtable_add[salpha_table[(s_clr.trgb.b)]][dalpha_table[(d_clr.trgb.b)]]; + s_clr.trgb.r = colrtable_add[salpha_table[(s_clr.trgb.r)]][dalpha_table[(d_clr.trgb.r)]]; + s_clr.trgb.g = colrtable_add[salpha_table[(s_clr.trgb.g)]][dalpha_table[(d_clr.trgb.g)]]; + s_clr.trgb.b = colrtable_add[salpha_table[(s_clr.trgb.b)]][dalpha_table[(d_clr.trgb.b)]]; #elif _DMODE == 1 //g_profiler.start(PROFILER_USER2); // futari ~7% - s_clr.trgb.r = epic12_device_colrtable_add[salpha_table[(s_clr.trgb.r)]][epic12_device_colrtable[(s_clr.trgb.r)][(d_clr.trgb.r)]]; - s_clr.trgb.g = epic12_device_colrtable_add[salpha_table[(s_clr.trgb.g)]][epic12_device_colrtable[(s_clr.trgb.g)][(d_clr.trgb.g)]]; - s_clr.trgb.b = epic12_device_colrtable_add[salpha_table[(s_clr.trgb.b)]][epic12_device_colrtable[(s_clr.trgb.b)][(d_clr.trgb.b)]]; + s_clr.trgb.r = colrtable_add[salpha_table[(s_clr.trgb.r)]][colrtable[(s_clr.trgb.r)][(d_clr.trgb.r)]]; + s_clr.trgb.g = colrtable_add[salpha_table[(s_clr.trgb.g)]][colrtable[(s_clr.trgb.g)][(d_clr.trgb.g)]]; + s_clr.trgb.b = colrtable_add[salpha_table[(s_clr.trgb.b)]][colrtable[(s_clr.trgb.b)][(d_clr.trgb.b)]]; #elif _DMODE == 2 //g_profiler.start(PROFILER_USER3); - clr_mul_fixed(&clr0.trgb, s_alpha, &s_clr.trgb); - clr_add_with_clr_square(&s_clr.trgb, &clr0.trgb, &d_clr.trgb); + clr0.trgb.mul_fixed(s_alpha, s_clr.trgb); + s_clr.trgb.add_with_clr_square(clr0.trgb, d_clr.trgb); #elif _DMODE == 3 //g_profiler.start(PROFILER_USER4); - clr_mul_fixed(&clr0.trgb, s_alpha, &s_clr.trgb); - clr_add(&s_clr.trgb, &clr0.trgb, &d_clr.trgb); + clr0.trgb.mul_fixed(s_alpha, s_clr.trgb); + s_clr.trgb.add(clr0.trgb, d_clr.trgb); #elif _DMODE == 4 //g_profiler.start(PROFILER_USER5); - clr_mul_fixed(&clr0.trgb, s_alpha, &s_clr.trgb); - clr_add_with_clr_mul_fixed_rev(&s_clr.trgb, &clr0.trgb, d_alpha, &d_clr.trgb); + clr0.trgb.mul_fixed(s_alpha, s_clr.trgb); + s_clr.trgb.add_with_clr_mul_fixed_rev(clr0.trgb, d_alpha, d_clr.trgb); #elif _DMODE == 5 // futari black character select ~13% //g_profiler.start(PROFILER_USER6); - s_clr.trgb.r = epic12_device_colrtable_add[salpha_table[(s_clr.trgb.r)]][epic12_device_colrtable_rev[(s_clr.trgb.r)][(d_clr.trgb.r)]]; - s_clr.trgb.g = epic12_device_colrtable_add[salpha_table[(s_clr.trgb.g)]][epic12_device_colrtable_rev[(s_clr.trgb.g)][(d_clr.trgb.g)]]; - s_clr.trgb.b = epic12_device_colrtable_add[salpha_table[(s_clr.trgb.b)]][epic12_device_colrtable_rev[(s_clr.trgb.b)][(d_clr.trgb.b)]]; + s_clr.trgb.r = colrtable_add[salpha_table[(s_clr.trgb.r)]][colrtable_rev[(s_clr.trgb.r)][(d_clr.trgb.r)]]; + s_clr.trgb.g = colrtable_add[salpha_table[(s_clr.trgb.g)]][colrtable_rev[(s_clr.trgb.g)][(d_clr.trgb.g)]]; + s_clr.trgb.b = colrtable_add[salpha_table[(s_clr.trgb.b)]][colrtable_rev[(s_clr.trgb.b)][(d_clr.trgb.b)]]; #elif _DMODE == 6 //g_profiler.start(PROFILER_USER7); - clr_mul_fixed(&clr0.trgb, s_alpha, &s_clr.trgb); - clr_add_with_clr_mul_rev_square(&s_clr.trgb, &clr0.trgb, &d_clr.trgb); + clr0.trgb.mul_fixed(s_alpha, s_clr.trgb); + s_clr.trgb.add_with_clr_mul_rev_square(clr0.trgb, d_clr.trgb); #elif _DMODE == 7 //g_profiler.start(PROFILER_USER8); - clr_mul_fixed(&clr0.trgb, s_alpha, &s_clr.trgb); - clr_add(&s_clr.trgb, &clr0.trgb, &d_clr.trgb); + clr0.trgb.mul_fixed(s_alpha, s_clr.trgb); + s_clr.trgb.add(clr0.trgb, d_clr.trgb); #endif //g_profiler.stop(); #elif _SMODE == 1 //g_profiler.start(PROFILER_USER6); - clr_square(&clr0.trgb, &s_clr.trgb); + clr0.trgb.square(s_clr.trgb); #elif _SMODE == 2 // g_profiler.start(PROFILER_USER4); #if _DMODE == 0 // this is used heavily on espgal2 highscore screen (~28%) optimized to avoid use of temp clr0 variable - s_clr.trgb.r = epic12_device_colrtable_add[epic12_device_colrtable[(d_clr.trgb.r)][(s_clr.trgb.r)]][dalpha_table[(d_clr.trgb.r)]]; - s_clr.trgb.g = epic12_device_colrtable_add[epic12_device_colrtable[(d_clr.trgb.g)][(s_clr.trgb.g)]][dalpha_table[(d_clr.trgb.g)]]; - s_clr.trgb.b = epic12_device_colrtable_add[epic12_device_colrtable[(d_clr.trgb.b)][(s_clr.trgb.b)]][dalpha_table[(d_clr.trgb.b)]]; + s_clr.trgb.r = colrtable_add[colrtable[(d_clr.trgb.r)][(s_clr.trgb.r)]][dalpha_table[(d_clr.trgb.r)]]; + s_clr.trgb.g = colrtable_add[colrtable[(d_clr.trgb.g)][(s_clr.trgb.g)]][dalpha_table[(d_clr.trgb.g)]]; + s_clr.trgb.b = colrtable_add[colrtable[(d_clr.trgb.b)][(s_clr.trgb.b)]][dalpha_table[(d_clr.trgb.b)]]; #elif _DMODE == 1 - clr_mul_3param(&clr0.trgb, &s_clr.trgb, &d_clr.trgb); - clr_add_with_clr_mul_3param(&s_clr.trgb, &clr0.trgb, &d_clr.trgb, &s_clr.trgb); + clr0.trgb.mul_3param(s_clr.trgb, d_clr.trgb); + s_clr.trgb.add_with_clr_mul_3param(clr0.trgb, d_clr.trgb, s_clr.trgb); #elif _DMODE == 2 - clr_mul_3param(&clr0.trgb, &s_clr.trgb, &d_clr.trgb); - clr_add_with_clr_square(&s_clr.trgb, &clr0.trgb, &d_clr.trgb); + clr0.trgb.mul_3param(s_clr.trgb, d_clr.trgb); + s_clr.trgb.add_with_clr_square(clr0.trgb, d_clr.trgb); #elif _DMODE == 3 - clr_mul_3param(&clr0.trgb, &s_clr.trgb, &d_clr.trgb); - clr_add(&s_clr.trgb, &clr0.trgb, &d_clr.trgb); + clr0.trgb.mul_3param(s_clr.trgb, d_clr.trgb); + s_clr.trgb.add(clr0.trgb, d_clr.trgb); #elif _DMODE == 4 - clr_mul_3param(&clr0.trgb, &s_clr.trgb, &d_clr.trgb); - clr_add_with_clr_mul_fixed_rev(&s_clr.trgb, &clr0.trgb, d_alpha, &d_clr.trgb); + clr0.trgb.mul_3param(s_clr.trgb, d_clr.trgb); + s_clr.trgb.add_with_clr_mul_fixed_rev(clr0.trgb, d_alpha, d_clr.trgb); #elif _DMODE == 5 - clr_mul_3param(&clr0.trgb, &s_clr.trgb, &d_clr.trgb); - clr_add_with_clr_mul_rev_3param(&s_clr.trgb, &clr0.trgb, &d_clr.trgb, &s_clr.trgb); + clr0.trgb.mul_3param(s_clr.trgb, d_clr.trgb); + s_clr.trgb.add_with_clr_mul_rev_3param(clr0.trgb, d_clr.trgb, s_clr.trgb); #elif _DMODE == 6 - clr_mul_3param(&clr0.trgb, &s_clr.trgb, &d_clr.trgb); - clr_add_with_clr_mul_rev_square(&s_clr.trgb, &clr0.trgb, &d_clr.trgb); + clr0.trgb.mul_3param(s_clr.trgb, d_clr.trgb); + s_clr.trgb.add_with_clr_mul_rev_square(clr0.trgb, d_clr.trgb); #elif _DMODE == 7 - clr_mul_3param(&clr0.trgb, &s_clr.trgb, &d_clr.trgb); - clr_add(&s_clr.trgb, &clr0.trgb, &d_clr.trgb); + clr0.trgb.mul_3param(s_clr.trgb, d_clr.trgb); + s_clr.trgb.add(clr0.trgb, d_clr.trgb); #endif //g_profiler.stop(); #elif _SMODE == 3 //g_profiler.start(PROFILER_USER1); - clr_copy(&clr0.trgb, &s_clr.trgb); + clr0.trgb.copy(s_clr.trgb); #elif _SMODE == 4 //g_profiler.start(PROFILER_USER2); - clr_mul_fixed_rev(&clr0.trgb, s_alpha, &s_clr.trgb); + clr0.trgb.mul_fixed_rev(s_alpha, s_clr.trgb); #elif _SMODE == 5 //g_profiler.start(PROFILER_USER3); - clr_mul_rev_square(&clr0.trgb, &s_clr.trgb); + clr0.trgb.mul_rev_square(s_clr.trgb); #elif _SMODE == 6 //g_profiler.start(PROFILER_USER4); - clr_mul_rev_3param(&clr0.trgb, &s_clr.trgb, &d_clr.trgb); + clr0.trgb.mul_rev_3param(s_clr.trgb, d_clr.trgb); #elif _SMODE == 7 //g_profiler.start(PROFILER_USER5); - clr_copy(&clr0.trgb, &s_clr.trgb); + clr0.trgb.copy(s_clr.trgb); #endif @@ -158,22 +158,22 @@ #if _SMODE != 0 #if _DMODE == 0 - clr_add_with_clr_mul_fixed(&s_clr.trgb, &clr0.trgb, d_alpha, &d_clr.trgb); + s_clr.trgb.add_with_clr_mul_fixed(clr0.trgb, d_alpha, d_clr.trgb); #elif _DMODE == 1 - clr_add_with_clr_mul_3param(&s_clr.trgb, &clr0.trgb, &d_clr.trgb, &s_clr.trgb); + s_clr.trgb.add_with_clr_mul_3param(clr0.trgb, d_clr.trgb, s_clr.trgb); #elif _DMODE == 2 - clr_add_with_clr_square(&s_clr.trgb, &clr0.trgb, &d_clr.trgb); + s_clr.trgb.add_with_clr_square(clr0.trgb, d_clr.trgb); #elif _DMODE == 3 - clr_add(&s_clr.trgb, &clr0.trgb, &d_clr.trgb); + s_clr.trgb.add(clr0.trgb, d_clr.trgb); #elif _DMODE == 4 - clr_add_with_clr_mul_fixed_rev(&s_clr.trgb, &clr0.trgb, d_alpha, &d_clr.trgb); + s_clr.trgb.add_with_clr_mul_fixed_rev(clr0.trgb, d_alpha, d_clr.trgb); #elif _DMODE == 5 - clr_add_with_clr_mul_rev_3param(&s_clr.trgb, &clr0.trgb, &d_clr.trgb, &s_clr.trgb); + s_clr.trgb.add_with_clr_mul_rev_3param(clr0.trgb, d_clr.trgb, s_clr.trgb); #elif _DMODE == 6 - clr_add_with_clr_mul_rev_square(&s_clr.trgb, &clr0.trgb, &d_clr.trgb); + s_clr.trgb.add_with_clr_mul_rev_square(clr0.trgb, d_clr.trgb); #elif _DMODE == 7 - clr_add(&s_clr.trgb, &clr0.trgb, &d_clr.trgb); + s_clr.trgb.add(clr0.trgb, d_clr.trgb); #endif //g_profiler.stop(); @@ -184,8 +184,8 @@ #endif // write result - *bmp = clr_to_pen(&s_clr.trgb)|(pen&0x20000000); - //*bmp = (s_clr.u32<<3)|(pen&0x20000000); // using the union is actually significantly slower than our clr_to_pen function! + *bmp = s_clr.trgb.to_pen()|(pen&0x20000000); + //*bmp = (s_clr.u32<<3)|(pen&0x20000000); // using the union is actually significantly slower than our to_pen function! #endif // END NOT REALLY SIMPLE diff --git a/src/devices/video/fixfreq.cpp b/src/devices/video/fixfreq.cpp index 88875b8eb67..a64c6d812b3 100644 --- a/src/devices/video/fixfreq.cpp +++ b/src/devices/video/fixfreq.cpp @@ -16,14 +16,9 @@ #include "emu.h" #include "fixfreq.h" -/*************************************************************************** - - Local variables +//#define VERBOSE 1 +#include "logmacro.h" -***************************************************************************/ - -//#define VERBOSE_OUT(x) printf x -#define VERBOSE_OUT(x) /*************************************************************************** @@ -31,11 +26,12 @@ ***************************************************************************/ // device type definition -const device_type FIXFREQ = device_creator; +DEFINE_DEVICE_TYPE(FIXFREQ, fixedfreq_device, "fixfreq", "Fixed-Frequency Monochrome Monitor") -fixedfreq_device::fixedfreq_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_video_interface(mconfig, *this, false), m_htotal(0), m_vtotal(0), m_vid(0), m_last_x(0), m_last_y(0), m_cur_bm(0), +fixedfreq_device::fixedfreq_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock), + device_video_interface(mconfig, *this, false), + m_htotal(0), m_vtotal(0), m_vid(0), m_last_x(0), m_last_y(0), m_cur_bm(0), // default to NTSC "704x480@30i" m_monitor_clock(13500000), m_hvisible(704), @@ -48,26 +44,13 @@ fixedfreq_device::fixedfreq_device(const machine_config &mconfig, device_type ty m_vbackporch(525), m_fieldcount(2), m_sync_threshold(0.3), - m_gain(1.0 / 3.7), m_vint(0), m_int_trig(0), m_mult(0), m_sig_vsync(0), m_sig_composite(0), m_sig_field(0) + m_gain(1.0 / 3.7), + m_vint(0), m_int_trig(0), m_mult(0), m_sig_vsync(0), m_sig_composite(0), m_sig_field(0) { } fixedfreq_device::fixedfreq_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, FIXFREQ, "Fixed Frequency Monochrome Monitor", tag, owner, clock, "fixfreq", __FILE__), - device_video_interface(mconfig, *this, false), - // default to NTSC "704x480@30i" - m_monitor_clock(13500000), - m_hvisible(704), - m_hfrontporch(728), - m_hsync(791), - m_hbackporch(858), - m_vvisible(480), - m_vfrontporch(486), - m_vsync(492), - m_vbackporch(525), - m_fieldcount(2), - m_sync_threshold(0.3), - m_gain(1.0 / 3.7) + : fixedfreq_device(mconfig, FIXFREQ, tag, owner, clock) { } @@ -160,7 +143,7 @@ void fixedfreq_device::recompute_parameters(bool postload) m_int_trig = (exp(- 3.0/(3.0+3.0))) - exp(-1.0); m_mult = (double) (m_monitor_clock) / (double) m_htotal * 1.0; // / (3.0 + 3.0); - VERBOSE_OUT(("trigger %f with len %f\n", m_int_trig, 1e6 / m_mult)); + LOG("trigger %f with len %f\n", m_int_trig, 1e6 / m_mult); m_bitmap[0] = std::make_unique(m_htotal, m_vtotal); m_bitmap[1] = std::make_unique(m_htotal, m_vtotal); @@ -211,7 +194,7 @@ int fixedfreq_device::sync_separator(const attotime &time, double newval) { m_sig_field = last_comp; /* force false-progressive */ m_sig_field = (m_sig_field ^ 1) ^ last_comp; /* if there is no field switch, auto switch */ - VERBOSE_OUT(("Field: %d\n", m_sig_field)); + LOG("Field: %d\n", m_sig_field); } if (!last_comp && m_sig_composite) { @@ -266,16 +249,16 @@ NETDEV_ANALOG_CALLBACK_MEMBER(fixedfreq_device::update_vid) } if (sync & 1) { - VERBOSE_OUT(("VSYNC %d %d\n", pixels, m_last_y + m_sig_field)); + LOG("VSYNC %d %d\n", pixels, m_last_y + m_sig_field); } if (sync & 2) { - VERBOSE_OUT(("HSYNC up %d\n", pixels)); + LOG("HSYNC up %d\n", pixels); //if (m_last_y == 27) printf("HSYNC up %d %d\n", m_last_y, pixels); } if (sync & 4) { - VERBOSE_OUT(("HSYNC down %f %d %f\n", time.as_double()* 1e6, pixels, m_vid)); + LOG("HSYNC down %f %d %f\n", time.as_double()* 1e6, pixels, m_vid); } if (sync & 1) diff --git a/src/devices/video/fixfreq.h b/src/devices/video/fixfreq.h index 080013ad1a6..e475c2f8b4f 100644 --- a/src/devices/video/fixfreq.h +++ b/src/devices/video/fixfreq.h @@ -11,8 +11,8 @@ ***************************************************************************/ -#ifndef MAME_DEVICES_VIDEO_FIXFREQ_H -#define MAME_DEVICES_VIDEO_FIXFREQ_H +#ifndef MAME_VIDEO_FIXFREQ_H +#define MAME_VIDEO_FIXFREQ_H #include "machine/netlist.h" #include "screen.h" @@ -67,13 +67,11 @@ // ======================> vga_device -class fixedfreq_device : public device_t, - public device_video_interface +class fixedfreq_device : public device_t, public device_video_interface { public: // construction/destruction fixedfreq_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - fixedfreq_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); // inline configuration helpers static void set_minitor_clock(device_t &device, uint32_t clock) { downcast(device).m_monitor_clock = clock; } @@ -102,6 +100,8 @@ public: NETDEV_ANALOG_CALLBACK_MEMBER(update_vid); protected: + fixedfreq_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -156,6 +156,6 @@ private: // device type definition -extern const device_type FIXFREQ; +DECLARE_DEVICE_TYPE(FIXFREQ, fixedfreq_device) -#endif // MAME_DEVICES_VIDEO_FIXFREQ_H +#endif // MAME_VIDEO_FIXFREQ_H diff --git a/src/devices/video/gb_lcd.cpp b/src/devices/video/gb_lcd.cpp index 7e50ad9da51..953e0e88165 100644 --- a/src/devices/video/gb_lcd.cpp +++ b/src/devices/video/gb_lcd.cpp @@ -160,9 +160,8 @@ TODO: #include "screen.h" - -#define ENABLE_LOGGING 0 -#define LOG(x) do { if (ENABLE_LOGGING) logerror x; } while(0) +//#define VERBOSE 1 +#include "logmacro.h" #define LCDCONT m_vid_regs[0x00] /* LCD control register */ @@ -312,49 +311,44 @@ static const uint8_t ags_oam_fingerprint[0x100] = { #endif -const device_type DMG_PPU = device_creator; -const device_type MGB_PPU = device_creator; -const device_type SGB_PPU = device_creator; -const device_type CGB_PPU = device_creator; +DEFINE_DEVICE_TYPE(DMG_PPU, dmg_ppu_device, "dmg_ppu", "DMG PPU") +DEFINE_DEVICE_TYPE(MGB_PPU, mgb_ppu_device, "mgb_ppu", "MGB PPU") +DEFINE_DEVICE_TYPE(SGB_PPU, sgb_ppu_device, "sgb_ppu", "SGB PPU") +DEFINE_DEVICE_TYPE(CGB_PPU, cgb_ppu_device, "cgb_ppu", "CGB PPU") -dmg_ppu_device::dmg_ppu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source, uint32_t vram_size) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source) - , device_video_interface(mconfig, *this) - , m_lr35902(*this, finder_base::DUMMY_TAG) - , m_sgb_border_hack(0) - , m_enable_experimental_engine(false) - , m_oam_size(0x100) - , m_vram_size(vram_size) +dmg_ppu_device::dmg_ppu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint32_t vram_size) + : device_t(mconfig, type, tag, owner, clock) + , device_video_interface(mconfig, *this) + , m_lr35902(*this, finder_base::DUMMY_TAG) + , m_sgb_border_hack(0) + , m_enable_experimental_engine(false) + , m_oam_size(0x100) + , m_vram_size(vram_size) { } dmg_ppu_device::dmg_ppu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, DMG_PPU, "DMG PPU", tag, owner, clock, "dmg_ppu", __FILE__) - , device_video_interface(mconfig, *this) - , m_lr35902(*this, finder_base::DUMMY_TAG) - , m_sgb_border_hack(0) - , m_oam_size(0x100) - , m_vram_size(0x2000) + : dmg_ppu_device(mconfig, DMG_PPU, tag, owner, clock, 0x2000) { m_enable_experimental_engine = true; } mgb_ppu_device::mgb_ppu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : dmg_ppu_device(mconfig, MGB_PPU, "MGB PPU", tag, owner, clock, "mgb_ppu", __FILE__, 0x2000) + : dmg_ppu_device(mconfig, MGB_PPU, tag, owner, clock, 0x2000) { m_enable_experimental_engine = true; } sgb_ppu_device::sgb_ppu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : dmg_ppu_device(mconfig, SGB_PPU, "SGB PPU", tag, owner, clock, "sgb_ppu", __FILE__, 0x2000) + : dmg_ppu_device(mconfig, SGB_PPU, tag, owner, clock, 0x2000) { m_enable_experimental_engine = false; } cgb_ppu_device::cgb_ppu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : dmg_ppu_device(mconfig, CGB_PPU, "CGB PPU", tag, owner, clock, "cgb_ppu", __FILE__, 0x4000) + : dmg_ppu_device(mconfig, CGB_PPU, tag, owner, clock, 0x4000) { m_enable_experimental_engine = false; } @@ -686,7 +680,7 @@ void dmg_ppu_device::calculate_window_cycles() { m_window_cycles = 0; - LOG(("m_window_x = %d, m_window_y = %d\n", m_window_x, m_window_y)); + LOG("m_window_x = %d, m_window_y = %d\n", m_window_x, m_window_y); if ((LCDCONT & WINDOW_ENABLED) && m_window_x < 167 && m_window_y < 144) { @@ -785,7 +779,7 @@ void dmg_ppu_device::select_sprites() { if (sprite_occurs[i]) { - LOG(("sprite_occurs[%d] = %02x\n", i, sprite_occurs[i])); + LOG("sprite_occurs[%d] = %02x\n", i, sprite_occurs[i]); } if (sprite_occurs[i]) @@ -799,7 +793,7 @@ void dmg_ppu_device::select_sprites() } } - LOG(("m_sprite_cycles = %d\n", m_sprite_cycles)); + LOG("m_sprite_cycles = %d\n", m_sprite_cycles); } } } @@ -820,14 +814,14 @@ void dmg_ppu_device::update_line_state(uint64_t cycles) m_line.scrollx_to_apply++; } -//LOG(("tile_cycle = %u, starting = %s, drawing = %s\n", m_line.tile_cycle, m_line.starting ? "true" : "false", m_line.drawing ? "true" : "false")); + //LOG("tile_cycle = %u, starting = %s, drawing = %s\n", m_line.tile_cycle, m_line.starting ? "true" : "false", m_line.drawing ? "true" : "false"); // output next pixel if (m_line.drawing) { if (m_line.scrollx_to_apply > 0) { // TODO: Determine when the scrollx shifts are applied when window-x is <= 0x07 -LOG(("scrollx_to_apply: %u\n", m_line.scrollx_to_apply)); + LOG("scrollx_to_apply: %u\n", m_line.scrollx_to_apply); if (!m_line.window_active) { m_line.shift_register <<= 2; @@ -843,7 +837,7 @@ LOG(("scrollx_to_apply: %u\n", m_line.scrollx_to_apply)); { if (m_line.pixels_drawn < 8) { - LOG(("draw pixel %u\n", m_line.pixels_drawn)); + LOG("draw pixel %u\n", m_line.pixels_drawn); } plot_pixel(m_line.pixels_drawn, m_current_line, m_gb_bpal[m_line.shift_register >> 14]); m_bg_zbuf[m_line.pixels_drawn] = m_line.shift_register >> 14; @@ -875,7 +869,7 @@ LOG(("scrollx_to_apply: %u\n", m_line.scrollx_to_apply)); } if (m_line.pixels_drawn < 8) { - LOG(("m_current_line: %u, tile_count: %02x, plane0 = %02x, plane1 = %02x, shift_register = %04x\n", m_current_line, m_line.tile_count, m_line.plane0, m_line.plane1, m_line.shift_register)); + LOG("m_current_line: %u, tile_count: %02x, plane0 = %02x, plane1 = %02x, shift_register = %04x\n", m_current_line, m_line.tile_count, m_line.plane0, m_line.plane1, m_line.shift_register); } if (m_line.sequence_counter >= 2) { @@ -908,7 +902,7 @@ LOG(("scrollx_to_apply: %u\n", m_line.scrollx_to_apply)); m_line.pattern = m_vram.get()[m_line.pattern_address] ^ m_gb_tile_no_mod; if (m_line.tile_count < 8) { - LOG(("tile_count = %u, y = %u, pattern = %02x, pattern_address = %04x\n", m_line.tile_count, m_current_line, m_line.pattern, m_line.pattern_address)); + LOG("tile_count = %u, y = %u, pattern = %02x, pattern_address = %04x\n", m_line.tile_count, m_current_line, m_line.pattern, m_line.pattern_address); } break; @@ -916,7 +910,7 @@ LOG(("scrollx_to_apply: %u\n", m_line.scrollx_to_apply)); m_line.tile_address = m_gb_chrgen_offs + ((m_line.pattern << 4) | ((m_line.y & 0x07) << 1)); if (m_line.tile_count < 8) { - LOG(("tile_count = %u, tile_address = %04x, pattern = %02x, y = %u, m_gb_chrgen_offs = %04x\n", m_line.tile_count, m_line.tile_address, m_line.pattern, m_line.y & 7, m_gb_chrgen_offs)); + LOG("tile_count = %u, tile_address = %04x, pattern = %02x, y = %u, m_gb_chrgen_offs = %04x\n", m_line.tile_count, m_line.tile_address, m_line.pattern, m_line.y & 7, m_gb_chrgen_offs); } break; @@ -975,7 +969,7 @@ LOG(("scrollx_to_apply: %u\n", m_line.scrollx_to_apply)); break; case 9: // eat scrollx delay cycles before starting window - LOG(("eating scrollx_to_apply: %u\n", m_line.scrollx_to_apply)); + LOG("eating scrollx_to_apply: %u\n", m_line.scrollx_to_apply); m_line.window_compare_position--; m_line.scrollx_to_apply--; m_cycles_left++; @@ -1018,12 +1012,12 @@ void dmg_ppu_device::check_start_of_window() // Check for start of window if (m_line.window_compare_position < 16) { - LOG(("check window this line, m_current_line = %u, WNDPOSY = %u, WNDPOSX = %u, m_line.window_compare_position = %u, tile_cycle = %u, window_start_y = %u, pixels_drawn = %u\n", m_current_line, WNDPOSY, WNDPOSX, m_line.window_compare_position, m_line.tile_cycle, m_line.window_start_y[m_line.window_start_y_index], m_line.pixels_drawn)); + LOG("check window this line, m_current_line = %u, WNDPOSY = %u, WNDPOSX = %u, m_line.window_compare_position = %u, tile_cycle = %u, window_start_y = %u, pixels_drawn = %u\n", m_current_line, WNDPOSY, WNDPOSX, m_line.window_compare_position, m_line.tile_cycle, m_line.window_start_y[m_line.window_start_y_index], m_line.pixels_drawn); } if (/*LCDCONT*/(m_line.window_enable[m_line.window_enable_index] & WINDOW_ENABLED) && !m_line.window_active && (m_frame_window_active || /*m_current_line >= m_window_y*/ m_line.window_should_trigger || m_current_line == m_line.window_start_y[m_line.window_start_y_index]) && m_line.window_compare_position == /*WNDPOSX*/ m_line.window_start_x[m_line.window_start_y_index] && m_line.window_compare_position < 0xA6) { -LOG(("enable window, m_current_line = %u, WNDPOSY = %u, WNDPOSX = %u, m_line.window_compare_position = %u, pixels_drawn = %u\n", m_current_line, WNDPOSY, WNDPOSX, m_line.window_compare_position, m_line.pixels_drawn)); + LOG("enable window, m_current_line = %u, WNDPOSY = %u, WNDPOSX = %u, m_line.window_compare_position = %u, pixels_drawn = %u\n", m_current_line, WNDPOSY, WNDPOSX, m_line.window_compare_position, m_line.pixels_drawn); m_line.starting = true; m_line.window_active = true; m_frame_window_active = true; @@ -2050,7 +2044,7 @@ void dmg_ppu_device::update_state() if (LCDCONT & ENABLED) { - LOG(("m_cycles_left = %u, cycles = %u, CURLINE = %u, m_next_state = %s\n", m_cycles_left, cycles, CURLINE, state_to_string(m_next_state))); + LOG("m_cycles_left = %u, cycles = %u, CURLINE = %u, m_next_state = %s\n", m_cycles_left, cycles, CURLINE, state_to_string(m_next_state)); if (m_cycles_left > 0) { @@ -2129,7 +2123,7 @@ void dmg_ppu_device::update_state() check_stat_irq(); m_stat_lyc_int = ((CMPLINE == CURLINE) && (LCDSTAT & LY_LYC_INT_ENABLED)) ? true : false; - LOG(("GB_LCD_STATE_LYXX_M0_INC: CMPLINE = %02x, CURLINE = %02x, LCDSTAT = %02x, m_stat_lyc_int = %s\n", CMPLINE, CURLINE, LCDSTAT, m_stat_lyc_int ? "true":"false")); + LOG("GB_LCD_STATE_LYXX_M0_INC: CMPLINE = %02x, CURLINE = %02x, LCDSTAT = %02x, m_stat_lyc_int = %s\n", CMPLINE, CURLINE, LCDSTAT, m_stat_lyc_int ? "true":"false"); /* Reset LY==LYC STAT bit */ LCDSTAT &= ~LY_LYC_FLAG; /* Check if we're going into VBlank next */ @@ -2179,7 +2173,7 @@ void dmg_ppu_device::update_state() { m_line.window_should_trigger = true; } -LOG(("window should trigger = %s, m_current_line = %u, m_window_y = %u\n", m_line.window_should_trigger ? "true" : "false", m_current_line, m_window_y)); + LOG("window should trigger = %s, m_current_line = %u, m_window_y = %u\n", m_line.window_should_trigger ? "true" : "false", m_current_line, m_window_y); state_cycles = 80 - 8; m_next_state = GB_LCD_STATE_LYXX_M3; @@ -2221,7 +2215,7 @@ LOG(("window should trigger = %s, m_current_line = %u, m_window_y = %u\n", m_lin { m_line.window_should_trigger = true; } -LOG(("window should trigger = %s, m_current_line = %u, m_window_y = %u\n", m_line.window_should_trigger ? "true" : "false", m_current_line, m_window_y)); + LOG("window should trigger = %s, m_current_line = %u, m_window_y = %u\n", m_line.window_should_trigger ? "true" : "false", m_current_line, m_window_y); m_next_state = GB_LCD_STATE_LYXX_M3; state_cycles = 80 - 8; break; @@ -2305,7 +2299,7 @@ LOG(("window should trigger = %s, m_current_line = %u, m_window_y = %u\n", m_lin case GB_LCD_STATE_LY9X_M1_INC: /* Increment scanline counter */ increment_scanline(); - LOG(("GB_LCD_STATE_LY9X_M1_INC: m_stat_lyc_int = %s\n", m_stat_lyc_int ? "true" : "false")); + LOG("GB_LCD_STATE_LY9X_M1_INC: m_stat_lyc_int = %s\n", m_stat_lyc_int ? "true" : "false"); /* Reset LY==LYC STAT bit */ LCDSTAT &= ~LY_LYC_FLAG; if (m_current_line == 153) @@ -2439,7 +2433,7 @@ void cgb_ppu_device::update_hdma_state(uint64_t cycles) void cgb_ppu_device::hdma_trans(uint16_t length) { - LOG(("hdma_trans\n")); + LOG("hdma_trans\n"); m_hdma_length = length; m_hdma_cycles_to_start = 4; update_state(); @@ -2448,7 +2442,7 @@ void cgb_ppu_device::hdma_trans(uint16_t length) void cgb_ppu_device::hdma_trans_execute() { - LOG(("hdma_trans_execute\n")); + LOG("hdma_trans_execute\n"); uint16_t length = m_hdma_length; uint16_t src, dst; @@ -2456,7 +2450,7 @@ void cgb_ppu_device::hdma_trans_execute() // 102 Dalmatians uses destination 0000 and expects data to be DMAed. dst = 0x8000 | (HDMA3 << 8) | (HDMA4 & 0xF0); - //LOG(("length = %04x, src = %04x, dst = %04x\n", length, src, dst)); + //LOG("length = %04x, src = %04x, dst = %04x\n", length, src, dst); while (length > 0) { if (dst & 0x8000) @@ -2507,7 +2501,7 @@ void cgb_ppu_device::update_state() if (LCDCONT & ENABLED) { - LOG(("m_cycles_left = %d, cycles = %d, m_next_state = %s\n", m_cycles_left, cycles, state_to_string(m_next_state))); + LOG("m_cycles_left = %d, cycles = %d, m_next_state = %s\n", m_cycles_left, cycles, state_to_string(m_next_state)); if (m_cycles_left > 0) { @@ -2595,7 +2589,7 @@ void cgb_ppu_device::update_state() m_stat_mode2_int = (LCDSTAT & MODE_2_INT_ENABLED) ? true : false; check_stat_irq(); m_stat_lyc_int = ((m_cmp_line == CURLINE) && (LCDSTAT & LY_LYC_INT_ENABLED)) ? true : false; - LOG(("GB_LCD_STATE_LYXX_M0_INC: m_cmp_line = %u, CURLINE = %u, LCDSTAT = %02x, m_stat_lyc_int = %s\n", m_cmp_line, CURLINE, LCDSTAT, m_stat_lyc_int ? "true" : "false")); + LOG("GB_LCD_STATE_LYXX_M0_INC: m_cmp_line = %u, CURLINE = %u, LCDSTAT = %02x, m_stat_lyc_int = %s\n", m_cmp_line, CURLINE, LCDSTAT, m_stat_lyc_int ? "true" : "false"); m_hdma_possible = 0; /* Check if we're going into VBlank next */ if (CURLINE == 144) @@ -2742,7 +2736,7 @@ void cgb_ppu_device::update_state() break; case GB_LCD_STATE_LY00_M1: /* we stay in VBlank but current line counter should already be incremented */ - LOG(("GB_LCD_STATE_LY00_M1, CURLINE=%u, CMPLINE=%u, m_stat_lyc_int=%s\n", CURLINE, CMPLINE, m_stat_lyc_int ? "true" : "false")); + LOG("GB_LCD_STATE_LY00_M1, CURLINE=%u, CMPLINE=%u, m_stat_lyc_int=%s\n", CURLINE, CMPLINE, m_stat_lyc_int ? "true" : "false"); /* Check LY=LYC for line #153 */ if (CURLINE == CMPLINE) { @@ -2760,7 +2754,7 @@ void cgb_ppu_device::update_state() case GB_LCD_STATE_LY00_M1_1: increment_scanline(); m_stat_lyc_int = ((CMPLINE == CURLINE) && (LCDSTAT & LY_LYC_INT_ENABLED)) ? true : false; - LOG(("GB_LCD_STATE_LY00_M1_1, m_stat_lyc_int = %s\n", m_stat_lyc_int ? "true" : "false")); + LOG("GB_LCD_STATE_LY00_M1_1, m_stat_lyc_int = %s\n", m_stat_lyc_int ? "true" : "false"); m_next_state = GB_LCD_STATE_LY00_M1_2; state_cycles = 4; break; @@ -2889,7 +2883,7 @@ READ8_MEMBER(dmg_ppu_device::vram_r) if (!machine().side_effect_disabled()) { update_state(); - LOG(("vram_r: offset=0x%04x\n", offset)); + LOG("vram_r: offset=0x%04x\n", offset); } return (m_vram_locked == LOCKED) ? 0xff : m_vram[offset + (m_vram_bank * 0x2000)]; @@ -2911,7 +2905,7 @@ READ8_MEMBER(dmg_ppu_device::oam_r) if (!machine().side_effect_disabled()) { update_state(); - LOG(("oam_r: offset=0x%02x\n", offset)); + LOG("oam_r: offset=0x%02x\n", offset); } return (m_oam_locked == LOCKED || m_oam_locked_reading == LOCKED || m_oam_dma_processing) ? 0xff : m_oam[offset]; @@ -2934,9 +2928,9 @@ READ8_MEMBER(dmg_ppu_device::video_r) if (!machine().side_effect_disabled()) { update_state(); - if (offset == 1) LOG(("STAT read\n")); - if (offset == 0x28) LOG(("BCPS read, palette is %s\n", m_pal_locked == LOCKED ? "LOCKED" : "UNLOCKED")); - if (offset == 0x29) LOG(("BCPD read, palette is %s\n", m_pal_locked == LOCKED ? "LOCKED" : "UNLOCKED")); + if (offset == 1) LOG("STAT read\n"); + if (offset == 0x28) LOG("BCPS read, palette is %s\n", m_pal_locked == LOCKED ? "LOCKED" : "UNLOCKED"); + if (offset == 0x29) LOG("BCPD read, palette is %s\n", m_pal_locked == LOCKED ? "LOCKED" : "UNLOCKED"); } return m_vid_regs[offset]; @@ -2945,7 +2939,7 @@ READ8_MEMBER(dmg_ppu_device::video_r) bool dmg_ppu_device::stat_write(uint8_t new_data) { - LOG(("stat_write: old_data = %02x, new_data = %02x\n", LCDSTAT & 0x78, new_data & 0x78)); + LOG("stat_write: old_data = %02x, new_data = %02x\n", LCDSTAT & 0x78, new_data & 0x78); bool new_lyc_int = m_stat_lyc_int; @@ -3040,22 +3034,22 @@ void dmg_ppu_device::check_stat_irq() { bool new_stat_int = m_stat_mode0_int || m_stat_mode1_int || m_stat_mode2_int || m_stat_lyc_int || m_stat_write_int; - LOG(("m_mode = %d, m_stat_mode0_int = %s, m_stat_mode1_int = %s, m_stat_mode2_int = %s, m_stat_lyc_int = %s\n", + LOG("m_mode = %d, m_stat_mode0_int = %s, m_stat_mode1_int = %s, m_stat_mode2_int = %s, m_stat_lyc_int = %s\n", m_mode, m_stat_mode0_int ? "true" : "false", m_stat_mode1_int ? "true" : "false", m_stat_mode2_int ? "true" : "false", m_stat_lyc_int ? "true" : "false" - )); + ); if (new_stat_int && !m_stat_int) { - LOG(("--m_stat_mode0_int = %s, m_stat_mode1_int = %s, m_stat_mode2_int = %s, m_stat_lyc_int = %s\n", + LOG("--m_stat_mode0_int = %s, m_stat_mode1_int = %s, m_stat_mode2_int = %s, m_stat_lyc_int = %s\n", m_stat_mode0_int ? "true" : "false", m_stat_mode1_int ? "true" : "false", m_stat_mode2_int ? "true" : "false", m_stat_lyc_int ? "true" : "false" - )); + ); m_lr35902->set_input_line(lr35902_cpu_device::LCD_INT, ASSERT_LINE); m_lr35902->execute_set_input(lr35902_cpu_device::LCD_INT, ASSERT_LINE); @@ -3069,7 +3063,7 @@ void dmg_ppu_device::check_stat_irq() WRITE8_MEMBER(dmg_ppu_device::video_w) { update_state(); - LOG(("video_w: offset = %02x, data = %02x\n", offset, data)); + LOG("video_w: offset = %02x, data = %02x\n", offset, data); switch (offset) { @@ -3123,7 +3117,7 @@ WRITE8_MEMBER(dmg_ppu_device::video_w) { if (CURLINE == data || (m_state == GB_LCD_STATE_LY00_M1 && CURLINE == 0 && data == 153)) { - LOG(("write LYC, if\n")); + LOG("write LYC, if\n"); LCDSTAT |= LY_LYC_FLAG; /* Generate lcd interrupt if requested */ if (LCDSTAT & LY_LYC_INT_ENABLED) @@ -3142,7 +3136,7 @@ WRITE8_MEMBER(dmg_ppu_device::video_w) } else { - LOG(("write LYC, else\n")); + LOG("write LYC, else\n"); LCDSTAT &= ~LY_LYC_FLAG; m_stat_lyc_int = false; check_stat_irq(); @@ -3180,7 +3174,7 @@ WRITE8_MEMBER(dmg_ppu_device::video_w) break; case 0x03: /* SCX - Scroll X */ update_scanline(m_lr35902->attotime_to_cycles(m_lcd_timer->remaining())); - LOG(("SCX: scrollx_delay = %d, m_cycles_left = %d\n", m_line.scrollx_delay, m_cycles_left)); + LOG("SCX: scrollx_delay = %d, m_cycles_left = %d\n", m_line.scrollx_delay, m_cycles_left); if (m_line.scrollx_delay > 0) { // Additional delay cycles; not sure if this is correct. @@ -3190,10 +3184,10 @@ WRITE8_MEMBER(dmg_ppu_device::video_w) } break; case 0x0A: /* WY - Window Y position */ - LOG(("WY write, m_cycles_left = %d\n", m_cycles_left)); + LOG("WY write, m_cycles_left = %d\n", m_cycles_left); break; case 0x0B: /* WX - Window X position */ - LOG(("WX write, m_cycles_left = %d\n", m_cycles_left)); + LOG("WX write, m_cycles_left = %d\n", m_cycles_left); break; default: /* Unknown register, no change */ return; @@ -3206,9 +3200,9 @@ READ8_MEMBER(cgb_ppu_device::video_r) if (!machine().side_effect_disabled()) { update_state(); - if (offset == 1) LOG(("STAT read\n")); - if (offset == 0x28) LOG(("BCPS read, palette is %s\n", m_pal_locked == LOCKED ? "LOCKED" : "UNLOCKED")); - if (offset == 0x29) LOG(("BCPD read, palette is %s\n", m_pal_locked == LOCKED ? "LOCKED" : "UNLOCKED")); + if (offset == 1) LOG("STAT read\n"); + if (offset == 0x28) LOG("BCPS read, palette is %s\n", m_pal_locked == LOCKED ? "LOCKED" : "UNLOCKED"); + if (offset == 0x29) LOG("BCPD read, palette is %s\n", m_pal_locked == LOCKED ? "LOCKED" : "UNLOCKED"); } switch (offset) @@ -3232,7 +3226,7 @@ READ8_MEMBER(cgb_ppu_device::video_r) bool cgb_ppu_device::stat_write(uint8_t new_data) { - LOG(("stat_write: old_data = %02x, new_data = %02x\n", LCDSTAT & 0x78, new_data & 0x78)); + LOG("stat_write: old_data = %02x, new_data = %02x\n", LCDSTAT & 0x78, new_data & 0x78); bool new_lyc_int = m_stat_lyc_int; @@ -3292,7 +3286,7 @@ bool cgb_ppu_device::stat_write(uint8_t new_data) WRITE8_MEMBER(cgb_ppu_device::video_w) { update_state(); - LOG(("video_w\n")); + LOG("video_w\n"); switch (offset) { @@ -3343,7 +3337,7 @@ WRITE8_MEMBER(cgb_ppu_device::video_w) { if (CURLINE == data && m_state != GB_LCD_STATE_LY00_M1 && m_state != GB_LCD_STATE_LYXX_M0_PRE_INC) { - LOG(("write LYC, if, CURLINE=%u\n", CURLINE)); + LOG("write LYC, if, CURLINE=%u\n", CURLINE); LCDSTAT |= LY_LYC_FLAG; /* Generate lcd interrupt if requested */ @@ -3355,7 +3349,7 @@ WRITE8_MEMBER(cgb_ppu_device::video_w) } else { - LOG(("write LYC, else, CURLINE=%u\n", CURLINE)); + LOG("write LYC, else, CURLINE=%u\n", CURLINE); LCDSTAT &= ~LY_LYC_FLAG; check_stat_irq(); @@ -3429,7 +3423,7 @@ WRITE8_MEMBER(cgb_ppu_device::video_w) } break; case 0x28: /* BCPS - Background palette specification */ - LOG(("BCPS write %02x\n", data)); + LOG("BCPS write %02x\n", data); GBCBCPS = data; if (data & 0x01) @@ -3438,7 +3432,7 @@ WRITE8_MEMBER(cgb_ppu_device::video_w) GBCBCPD = m_cgb_bpal[(data >> 1) & 0x1F] & 0xFF; break; case 0x29: /* BCPD - background palette data */ - LOG(("BCPD write %02x, palette is %s\n", data, m_pal_locked == LOCKED ? "LOCKED" : "UNLOCKED")); + LOG("BCPD write %02x, palette is %s\n", data, m_pal_locked == LOCKED ? "LOCKED" : "UNLOCKED"); if (m_pal_locked == LOCKED) { diff --git a/src/devices/video/gb_lcd.h b/src/devices/video/gb_lcd.h index 6e3587439d9..974e2d76cab 100644 --- a/src/devices/video/gb_lcd.h +++ b/src/devices/video/gb_lcd.h @@ -6,31 +6,19 @@ * ****************************************************************************/ -#ifndef __GB_LCD_H__ -#define __GB_LCD_H__ +#ifndef MAME_VIDEO_GB_LCD_H +#define MAME_VIDEO_GB_LCD_H -#include "cpu/lr35902/lr35902.h" +#pragma once +#include "cpu/lr35902/lr35902.h" -struct layer_struct { - uint8_t enabled; - uint8_t *bg_tiles; - uint8_t *bg_map; - uint8_t xindex; - uint8_t xshift; - uint8_t xstart; - uint8_t xend; - /* GBC specific */ - uint8_t *gbc_map; - int16_t bgline; -}; class dmg_ppu_device : public device_t, public device_video_interface { public: - dmg_ppu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source, uint32_t vram_size); dmg_ppu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); static void static_set_lr35902_tag(device_t &device, const char *tag) { downcast(device).m_lr35902.set_tag(tag); } @@ -65,6 +53,19 @@ protected: LY_LYC_FLAG = 0x04 }; + struct layer_struct { + uint8_t enabled; + uint8_t *bg_tiles; + uint8_t *bg_map; + uint8_t xindex; + uint8_t xshift; + uint8_t xstart; + uint8_t xend; + /* GBC specific */ + uint8_t *gbc_map; + int16_t bgline; + }; + inline void plot_pixel(int x, int y, uint16_t color); void select_sprites(); @@ -72,6 +73,8 @@ protected: virtual void update_sprites(); virtual void update_scanline(uint32_t cycles_to_go); + dmg_ppu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint32_t vram_size); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -226,8 +229,8 @@ protected: void check_start_of_window(); private: - uint32_t m_oam_size; - uint32_t m_vram_size; + const uint32_t m_oam_size; + const uint32_t m_vram_size; }; @@ -288,10 +291,10 @@ protected: }; -extern const device_type DMG_PPU; -extern const device_type MGB_PPU; -extern const device_type SGB_PPU; -extern const device_type CGB_PPU; +DECLARE_DEVICE_TYPE(DMG_PPU, dmg_ppu_device) +DECLARE_DEVICE_TYPE(MGB_PPU, mgb_ppu_device) +DECLARE_DEVICE_TYPE(SGB_PPU, sgb_ppu_device) +DECLARE_DEVICE_TYPE(CGB_PPU, cgb_ppu_device) #define MCFG_DMG_PPU_ADD(_tag, _cpu_tag ) \ @@ -311,4 +314,4 @@ extern const device_type CGB_PPU; dmg_ppu_device::static_set_lr35902_tag(*device, "^" _cpu_tag); -#endif /* GB_LCD_H_ */ +#endif // MAME_VIDEO_GB_LCD_H diff --git a/src/devices/video/gba_lcd.cpp b/src/devices/video/gba_lcd.cpp index 71d094ae8cf..21184df0888 100644 --- a/src/devices/video/gba_lcd.cpp +++ b/src/devices/video/gba_lcd.cpp @@ -140,10 +140,10 @@ private: uint16_t m_attr2; }; -const device_type GBA_LCD = device_creator; +DEFINE_DEVICE_TYPE(GBA_LCD, gba_lcd_device, "gba_lcd", "GBA LCD") gba_lcd_device::gba_lcd_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, GBA_LCD, "GBA LCD", tag, owner, clock, "gba_lcd", __FILE__) + : device_t(mconfig, GBA_LCD, tag, owner, clock) , device_video_interface(mconfig, *this) , m_int_hblank_cb(*this) , m_int_vblank_cb(*this) diff --git a/src/devices/video/gba_lcd.h b/src/devices/video/gba_lcd.h index 3df855b4535..263e5973bee 100644 --- a/src/devices/video/gba_lcd.h +++ b/src/devices/video/gba_lcd.h @@ -10,11 +10,10 @@ ***************************************************************************/ -#pragma once - -#ifndef __GBA_LCD_H__ -#define __GBA_LCD_H__ +#ifndef MAME_VIDEO_GBA_LCD_H +#define MAME_VIDEO_GBA_LCD_H +#pragma once @@ -23,7 +22,7 @@ //************************************************************************** // device type definition -extern const device_type GBA_LCD; +DECLARE_DEVICE_TYPE(GBA_LCD, gba_lcd_device) //************************************************************************** @@ -103,29 +102,29 @@ public: TIMER_CALLBACK_MEMBER(perform_hbl); TIMER_CALLBACK_MEMBER(perform_scan); - template static devcb_base &set_int_hblank_callback(device_t &device, _Object object) + template static devcb_base &set_int_hblank_callback(device_t &device, Object &&cb) { - return downcast(device).m_int_hblank_cb.set_callback(object); + return downcast(device).m_int_hblank_cb.set_callback(std::forward(cb)); } - template static devcb_base &set_int_vblank_callback(device_t &device, _Object object) + template static devcb_base &set_int_vblank_callback(device_t &device, Object &&cb) { - return downcast(device).m_int_vblank_cb.set_callback(object); + return downcast(device).m_int_vblank_cb.set_callback(std::forward(cb)); } - template static devcb_base &set_int_vcount_callback(device_t &device, _Object object) + template static devcb_base &set_int_vcount_callback(device_t &device, Object &&cb) { - return downcast(device).m_int_vcount_cb.set_callback(object); + return downcast(device).m_int_vcount_cb.set_callback(std::forward(cb)); } - template static devcb_base &set_dma_hblank_callback(device_t &device, _Object object) + template static devcb_base &set_dma_hblank_callback(device_t &device, Object &&cb) { - return downcast(device).m_dma_hblank_cb.set_callback(object); + return downcast(device).m_dma_hblank_cb.set_callback(std::forward(cb)); } - template static devcb_base &set_dma_vblank_callback(device_t &device, _Object object) + template static devcb_base &set_dma_vblank_callback(device_t &device, Object &&cb) { - return downcast(device).m_dma_vblank_cb.set_callback(object); + return downcast(device).m_dma_vblank_cb.set_callback(std::forward(cb)); } protected: @@ -250,4 +249,4 @@ private: static constexpr uint32_t TRANSPARENT_PIXEL = 0x80000000; }; -#endif /* GBA_LCD_H_ */ +#endif // MAME_VIDEO_GBA_LCD_H diff --git a/src/devices/video/gf4500.cpp b/src/devices/video/gf4500.cpp index 6b539cf65a3..4f48a14b9ef 100644 --- a/src/devices/video/gf4500.cpp +++ b/src/devices/video/gf4500.cpp @@ -31,12 +31,12 @@ static inline void ATTR_PRINTF(3,4) verboselog( device_t &device, int n_level, c #define GF4500_FRAMEBUF_OFFSET 0x20000 -const device_type GF4500 = device_creator; +DEFINE_DEVICE_TYPE(GF4500, gf4500_device, "gf4500", "NVIDIA GoForce 4500") gf4500_device::gf4500_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, GF4500, "NVIDIA GoForce 4500", tag, owner, clock, "gf4500", __FILE__), m_data(nullptr), m_screen_x(0), m_screen_y(0), m_screen_x_max(0), m_screen_y_max(0), m_screen_x_min(0), m_screen_y_min(0) - { + : device_t(mconfig, GF4500, tag, owner, clock), m_data(nullptr), m_screen_x(0), m_screen_y(0), m_screen_x_max(0), m_screen_y_max(0), m_screen_x_min(0), m_screen_y_min(0) +{ } diff --git a/src/devices/video/gf4500.h b/src/devices/video/gf4500.h index 01435ea5b61..e06af73c5c4 100644 --- a/src/devices/video/gf4500.h +++ b/src/devices/video/gf4500.h @@ -8,15 +8,16 @@ */ -#ifndef __GF4500_H__ -#define __GF4500_H__ +#ifndef MAME_VIDEO_GF4500_H +#define MAME_VIDEO_GF4500_H + +#pragma once class gf4500_device : public device_t { public: gf4500_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~gf4500_device() {} DECLARE_READ32_MEMBER( read ); @@ -49,7 +50,6 @@ private: MCFG_DEVICE_ADD(_tag, GF4500, 0) -extern const device_type GF4500; - +DECLARE_DEVICE_TYPE(GF4500, gf4500_device) -#endif /* __GF4500_H__ */ +#endif // MAME_VIDEO_GF4500_H diff --git a/src/devices/video/gf7600gs.cpp b/src/devices/video/gf7600gs.cpp index 4b35d3a8f97..407178ab73f 100644 --- a/src/devices/video/gf7600gs.cpp +++ b/src/devices/video/gf7600gs.cpp @@ -3,7 +3,7 @@ #include "emu.h" #include "gf7600gs.h" -const device_type GEFORCE_7600GS = device_creator; +DEFINE_DEVICE_TYPE(GEFORCE_7600GS, geforce_7600gs_device, "geforce_7600gs", "NVIDIA GeForce 7600GS") DEVICE_ADDRESS_MAP_START(map1, 32, geforce_7600gs_device) ADDRESS_MAP_END @@ -15,7 +15,7 @@ DEVICE_ADDRESS_MAP_START(map3, 32, geforce_7600gs_device) ADDRESS_MAP_END geforce_7600gs_device::geforce_7600gs_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : pci_device(mconfig, GEFORCE_7600GS, "NVidia GeForce 7600GS", tag, owner, clock, "geforce_7600gs", __FILE__) + : pci_device(mconfig, GEFORCE_7600GS, tag, owner, clock) { } diff --git a/src/devices/video/gf7600gs.h b/src/devices/video/gf7600gs.h index f2a44ca903a..b2d21011c83 100644 --- a/src/devices/video/gf7600gs.h +++ b/src/devices/video/gf7600gs.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Olivier Galibert -#ifndef GF7600GS_H -#define GF7600GS_H +#ifndef MAME_VIDEO_GF7600GS_H +#define MAME_VIDEO_GF7600GS_H + +#pragma once #include "machine/pci.h" @@ -22,6 +24,6 @@ private: DECLARE_ADDRESS_MAP(map3, 32); }; -extern const device_type GEFORCE_7600GS; +DECLARE_DEVICE_TYPE(GEFORCE_7600GS, geforce_7600gs_device) -#endif +#endif // MAME_VIDEO_GF7600GS_H diff --git a/src/devices/video/hd44102.cpp b/src/devices/video/hd44102.cpp index 00d2cf8d85d..43a413920e8 100644 --- a/src/devices/video/hd44102.cpp +++ b/src/devices/video/hd44102.cpp @@ -9,15 +9,15 @@ #include "emu.h" #include "hd44102.h" +//#define VERBOSE 1 +#include "logmacro.h" + //************************************************************************** // MACROS / CONSTANTS //************************************************************************** -#define LOG 0 - - #define CONTROL_DISPLAY_OFF 0x38 #define CONTROL_DISPLAY_ON 0x39 #define CONTROL_COUNT_DOWN_MODE 0x3a @@ -34,7 +34,7 @@ // device type definition -const device_type HD44102 = device_creator; +DEFINE_DEVICE_TYPE(HD44102, hd44102_device, "hd44102", "Hitachi HD44102 LCD Controller") //************************************************************************** @@ -68,7 +68,7 @@ inline void hd44102_device::count_up_or_down() //------------------------------------------------- hd44102_device::hd44102_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, HD44102, "HD44102", tag, owner, clock, "hd44102", __FILE__), + : device_t(mconfig, HD44102, tag, owner, clock), device_video_interface(mconfig, *this), m_cs2(0), m_page(0), @@ -172,51 +172,51 @@ WRITE8_MEMBER( hd44102_device::control_w ) switch (data) { case CONTROL_DISPLAY_OFF: - if (LOG) logerror("HD44102 '%s' Display Off\n", tag()); + LOG("HD44102 Display Off\n"); m_status |= STATUS_DISPLAY_OFF; break; case CONTROL_DISPLAY_ON: - if (LOG) logerror("HD44102 '%s' Display On\n", tag()); + LOG("HD44102 Display On\n"); m_status &= ~STATUS_DISPLAY_OFF; break; case CONTROL_COUNT_DOWN_MODE: - if (LOG) logerror("HD44102 '%s' Count Down Mode\n", tag()); + LOG("HD44102 Count Down Mode\n"); m_status &= ~STATUS_COUNT_UP; break; case CONTROL_COUNT_UP_MODE: - if (LOG) logerror("HD44102 '%s' Count Up Mode\n", tag()); + LOG("HD44102 Count Up Mode\n"); m_status |= STATUS_COUNT_UP; break; default: { - int x = (data & CONTROL_X_ADDRESS_MASK) >> 6; - int y = data & CONTROL_Y_ADDRESS_MASK; + const int x = (data & CONTROL_X_ADDRESS_MASK) >> 6; + const int y = data & CONTROL_Y_ADDRESS_MASK; - if ((data & CONTROL_Y_ADDRESS_MASK) == CONTROL_DISPLAY_START_PAGE) - { - if (LOG) logerror("HD44102 '%s' Display Start Page %u\n", tag(), x); + if ((data & CONTROL_Y_ADDRESS_MASK) == CONTROL_DISPLAY_START_PAGE) + { + LOG("HD44102 Display Start Page %u\n", x); - m_page = x; - } - else if (y > 49) - { - logerror("HD44102 '%s' Invalid Address X %u Y %u (%02x)!\n", tag(), data, x, y); - } - else - { - if (LOG) logerror("HD44102 '%s' Address X %u Y %u (%02x)\n", tag(), data, x, y); + m_page = x; + } + else if (y > 49) + { + logerror("HD44102 Invalid Address X %u Y %u (%02x)!\n", data, x, y); + } + else + { + LOG("HD44102 Address X %u Y %u (%02x)\n", data, x, y); - m_x = x; - m_y = y; - } + m_x = x; + m_y = y; + } } } } diff --git a/src/devices/video/hd44102.h b/src/devices/video/hd44102.h index 7aa19f2a8ea..c9746d417ec 100644 --- a/src/devices/video/hd44102.h +++ b/src/devices/video/hd44102.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_VIDEO_HD44102_H +#define MAME_VIDEO_HD44102_H -#ifndef __HD44102__ -#define __HD44102__ +#pragma once @@ -78,8 +78,6 @@ private: // device type definition -extern const device_type HD44102; - - +DECLARE_DEVICE_TYPE(HD44102, hd44102_device) -#endif +#endif // MAME_VIDEO_HD44102_H diff --git a/src/devices/video/hd44352.cpp b/src/devices/video/hd44352.cpp index 55eef9b31a2..7fa4b53f1d0 100644 --- a/src/devices/video/hd44352.cpp +++ b/src/devices/video/hd44352.cpp @@ -24,7 +24,7 @@ // devices -const device_type HD44352 = device_creator; +DEFINE_DEVICE_TYPE(HD44352, hd44352_device, "hd44352", "Hitachi HD44352 LCD Controller") //************************************************************************** // live device @@ -35,7 +35,7 @@ const device_type HD44352 = device_creator; //------------------------------------------------- hd44352_device::hd44352_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock): - device_t(mconfig, HD44352, "hd44352", tag, owner, clock, "hd44352", __FILE__), + device_t(mconfig, HD44352, tag, owner, clock), m_on_cb(*this), m_char_rom(*this, DEVICE_SELF) { diff --git a/src/devices/video/hd44352.h b/src/devices/video/hd44352.h index f5546f93e91..a7dff37b904 100644 --- a/src/devices/video/hd44352.h +++ b/src/devices/video/hd44352.h @@ -6,10 +6,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_VIDEO_HD44352_H +#define MAME_VIDEO_HD44352_H -#ifndef __hd44352_H__ -#define __hd44352_H__ +#pragma once #define MCFG_HD44352_ON_CB(_devcb) \ @@ -22,14 +22,13 @@ // ======================> hd44352_device -class hd44352_device : - public device_t +class hd44352_device : public device_t { public: // construction/destruction hd44352_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_on_callback(device_t &device, _Object object) { return downcast(device).m_on_cb.set_callback(object); } + template static devcb_base &set_on_callback(device_t &device, Object &&cb) { return downcast(device).m_on_cb.set_callback(std::forward(cb)); } // device interface uint8_t data_read(); @@ -77,6 +76,6 @@ private: }; // device type definition -extern const device_type HD44352; +DECLARE_DEVICE_TYPE(HD44352, hd44352_device) -#endif +#endif // MAME_VIDEO_HD44352_H diff --git a/src/devices/video/hd44780.cpp b/src/devices/video/hd44780.cpp index 5b40d9d14a9..8f3451352ab 100644 --- a/src/devices/video/hd44780.cpp +++ b/src/devices/video/hd44780.cpp @@ -13,14 +13,16 @@ #include "emu.h" #include "video/hd44780.h" -#define LOG 0 +//#define VERBOSE 1 +#include "logmacro.h" + //************************************************************************** // DEVICE DEFINITIONS //************************************************************************** -const device_type HD44780 = device_creator; -const device_type KS0066_F05 = device_creator; +DEFINE_DEVICE_TYPE(HD44780, hd44780_device, "hd44780_a00", "Hitachi HD44780 A00 LCD Controller") +DEFINE_DEVICE_TYPE(KS0066_F05, ks0066_f05_device, "ks0066_f05", "Samsung KS0066 F05 LCD Controller") //------------------------------------------------- @@ -46,20 +48,20 @@ ROM_END //------------------------------------------------- hd44780_device::hd44780_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : hd44780_device(mconfig, HD44780, "HD44780 A00", tag, owner, clock, "hd44780_a00", __FILE__) + : hd44780_device(mconfig, HD44780, tag, owner, clock) { set_charset_type(CHARSET_HD44780_A00); } -hd44780_device::hd44780_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source) +hd44780_device::hd44780_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) , m_cgrom(nullptr) , m_cgrom_region(*this, DEVICE_SELF) { } ks0066_f05_device::ks0066_f05_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - hd44780_device(mconfig, KS0066_F05, "KS0066 F05", tag, owner, clock, "ks0066_f05", __FILE__) + hd44780_device(mconfig, KS0066_F05, tag, owner, clock) { set_charset_type(CHARSET_KS0066_F05); } @@ -392,7 +394,7 @@ WRITE8_MEMBER(hd44780_device::control_write) correct_ac(); set_busy_flag(37); - if (LOG) logerror("HD44780 '%s': set DDRAM address %x\n", tag(), m_ac); + LOG("HD44780: set DDRAM address %x\n", m_ac); return; } else if (BIT(m_ir, 6)) @@ -402,7 +404,7 @@ WRITE8_MEMBER(hd44780_device::control_write) m_ac = m_ir & 0x3f; set_busy_flag(37); - if (LOG) logerror("HD44780 '%s': set CGRAM address %x\n", tag(), m_ac); + LOG("HD44780: set CGRAM address %x\n", m_ac); return; } else if (BIT(m_ir, 5)) @@ -420,7 +422,7 @@ WRITE8_MEMBER(hd44780_device::control_write) correct_ac(); set_busy_flag(37); - if (LOG) logerror("HD44780 '%s': char size 5x%d, data len %d, lines %d\n", tag(), m_char_size, m_data_len, m_num_line); + LOG("HD44780: char size 5x%d, data len %d, lines %d\n", m_char_size, m_data_len, m_num_line); return; } else if (BIT(m_ir, 4)) @@ -428,7 +430,7 @@ WRITE8_MEMBER(hd44780_device::control_write) // cursor or display shift int direction = (BIT(m_ir, 2)) ? +1 : -1; - if (LOG) logerror("HD44780 '%s': %s shift %d\n", tag(), BIT(m_ir, 3) ? "display" : "cursor", direction); + LOG("HD44780: %s shift %d\n", BIT(m_ir, 3) ? "display" : "cursor", direction); if (BIT(m_ir, 3)) shift_display(direction); @@ -445,7 +447,7 @@ WRITE8_MEMBER(hd44780_device::control_write) m_blink_on = BIT(m_ir, 0); set_busy_flag(37); - if (LOG) logerror("HD44780 '%s': display %d, cursor %d, blink %d\n", tag(), m_display_on, m_cursor_on, m_blink_on); + LOG("HD44780: display %d, cursor %d, blink %d\n", m_display_on, m_cursor_on, m_blink_on); } else if (BIT(m_ir, 2)) { @@ -454,12 +456,12 @@ WRITE8_MEMBER(hd44780_device::control_write) m_shift_on = BIT(m_ir, 0); set_busy_flag(37); - if (LOG) logerror("HD44780 '%s': entry mode set: direction %d, shift %d\n", tag(), m_direction, m_shift_on); + LOG("HD44780: entry mode set: direction %d, shift %d\n", m_direction, m_shift_on); } else if (BIT(m_ir, 1)) { // return home - if (LOG) logerror("HD44780 '%s': return home\n", tag()); + LOG("HD44780: return home\n"); m_ac = 0; m_active_ram = DDRAM; @@ -470,7 +472,7 @@ WRITE8_MEMBER(hd44780_device::control_write) else if (BIT(m_ir, 0)) { // clear display - if (LOG) logerror("HD44780 '%s': clear display\n", tag()); + LOG("HD44780: clear display\n"); m_ac = 0; m_active_ram = DDRAM; @@ -505,7 +507,7 @@ WRITE8_MEMBER(hd44780_device::data_write) { if (m_busy_flag) { - logerror("HD44780 '%s': Ignoring data write %02x due of busy flag\n", tag(), data); + logerror("HD44780: Ignoring data write %02x due of busy flag\n", data); return; } @@ -528,7 +530,7 @@ WRITE8_MEMBER(hd44780_device::data_write) m_dr = data; } - if (LOG) logerror("HD44780 '%s': %sRAM write %x %x '%c'\n", tag(), m_active_ram == DDRAM ? "DD" : "CG", m_ac, m_dr, isprint(m_dr) ? m_dr : '.'); + LOG("HD44780: %sRAM write %x %x '%c'\n", m_active_ram == DDRAM ? "DD" : "CG", m_ac, m_dr, isprint(m_dr) ? m_dr : '.'); if (m_active_ram == DDRAM) m_ddram[m_ac] = m_dr; @@ -545,7 +547,7 @@ READ8_MEMBER(hd44780_device::data_read) { uint8_t data = (m_active_ram == DDRAM) ? m_ddram[m_ac] : m_cgram[m_ac]; - if (LOG) logerror("HD44780 '%s': %sRAM read %x %c\n", tag(), m_active_ram == DDRAM ? "DD" : "CG", m_ac, data); + LOG("HD44780: %sRAM read %x %c\n", m_active_ram == DDRAM ? "DD" : "CG", m_ac, data); if (m_data_len == 4) { diff --git a/src/devices/video/hd44780.h b/src/devices/video/hd44780.h index bb62a27d1d8..f56f286ce13 100644 --- a/src/devices/video/hd44780.h +++ b/src/devices/video/hd44780.h @@ -6,10 +6,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_VIDEO_HD44780_H +#define MAME_VIDEO_HD44780_H -#ifndef __HD44780_H__ -#define __HD44780_H__ +#pragma once #define MCFG_HD44780_ADD( _tag ) \ @@ -22,28 +22,28 @@ hd44780_device::static_set_lcd_size(*device, _lines, _chars); #define MCFG_HD44780_PIXEL_UPDATE_CB(_class, _method) \ - hd44780_device::static_set_pixel_update_cb(*device, hd44780_pixel_update_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); + hd44780_device::static_set_pixel_update_cb(*device, hd44780_device::pixel_update_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); //************************************************************************** // TYPE DEFINITIONS //************************************************************************** -typedef device_delegate hd44780_pixel_update_delegate; #define HD44780_PIXEL_UPDATE(name) void name(bitmap_ind16 &bitmap, uint8_t line, uint8_t pos, uint8_t y, uint8_t x, int state) // ======================> hd44780_device -class hd44780_device : public device_t +class hd44780_device : public device_t { public: + typedef device_delegate pixel_update_delegate; + // construction/destruction hd44780_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - hd44780_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); // static configuration helpers static void static_set_lcd_size(device_t &device, int _lines, int _chars) { hd44780_device &dev=downcast(device); dev.m_lines = _lines; dev.m_chars = _chars; } - static void static_set_pixel_update_cb(device_t &device, hd44780_pixel_update_delegate callback) { downcast(device).m_pixel_update_cb = callback; } + static void static_set_pixel_update_cb(device_t &device, pixel_update_delegate &&cb) { downcast(device).m_pixel_update_cb = std::move(cb); } // device interface virtual DECLARE_WRITE8_MEMBER(write); @@ -57,6 +57,8 @@ public: virtual uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); protected: + hd44780_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -92,15 +94,15 @@ private: void pixel_update(bitmap_ind16 &bitmap, uint8_t line, uint8_t pos, uint8_t y, uint8_t x, int state); // internal state - static const device_timer_id TIMER_BUSY = 0; - static const device_timer_id TIMER_BLINKING = 1; + static constexpr device_timer_id TIMER_BUSY = 0; + static constexpr device_timer_id TIMER_BLINKING = 1; emu_timer * m_blink_timer; emu_timer * m_busy_timer; uint8_t m_lines; // number of lines uint8_t m_chars; // chars for line - hd44780_pixel_update_delegate m_pixel_update_cb; // pixel update callback + pixel_update_delegate m_pixel_update_cb; // pixel update callback bool m_busy_flag; // busy flag uint8_t m_ddram[0x80]; // internal display data RAM @@ -141,7 +143,7 @@ public: }; // device type definition -extern const device_type HD44780; -extern const device_type KS0066_F05; +DECLARE_DEVICE_TYPE(HD44780, hd44780_device) +DECLARE_DEVICE_TYPE(KS0066_F05, ks0066_f05_device) -#endif +#endif // MAME_VIDEO_HD44780_H diff --git a/src/devices/video/hd61830.cpp b/src/devices/video/hd61830.cpp index 21fb8f66513..f235b1b3d12 100644 --- a/src/devices/video/hd61830.cpp +++ b/src/devices/video/hd61830.cpp @@ -11,13 +11,16 @@ #include "screen.h" +//#define VERBOSE 1 +#include "logmacro.h" + //************************************************************************** // DEVICE DEFINITIONS //************************************************************************** -const device_type HD61830 = device_creator; +DEFINE_DEVICE_TYPE(HD61830, hd61830_device, "hd61830", "Hitachi HD61830B LCD Controller") const device_type HD61830B = HD61830; @@ -49,44 +52,17 @@ const tiny_rom_entry *hd61830_device::device_rom_region() const // MACROS / CONSTANTS //************************************************************************** -#define LOG 0 - -static const int CYCLES[] = +static constexpr int CYCLES[] = { 4, 4, 4, 4, 4, -1, -1, -1, 4, 4, 4, 4, 6, 6, 36, 36 }; -const int MODE_EXTERNAL_CG = 0x01; -const int MODE_GRAPHIC = 0x02; -const int MODE_CURSOR = 0x04; -const int MODE_BLINK = 0x08; -const int MODE_MASTER = 0x10; -const int MODE_DISPLAY_ON = 0x20; - - - -//************************************************************************** -// INLINE HELPERS -//************************************************************************** - -//------------------------------------------------- -// readbyte - read a byte at the given address -//------------------------------------------------- - -inline uint8_t hd61830_device::readbyte(offs_t address) -{ - return space().read_byte(address); -} - - -//------------------------------------------------- -// writebyte - write a byte at the given address -//------------------------------------------------- - -inline void hd61830_device::writebyte(offs_t address, uint8_t data) -{ - space().write_byte(address, data); -} +static constexpr int MODE_EXTERNAL_CG = 0x01; +static constexpr int MODE_GRAPHIC = 0x02; +static constexpr int MODE_CURSOR = 0x04; +static constexpr int MODE_BLINK = 0x08; +static constexpr int MODE_MASTER = 0x10; +static constexpr int MODE_DISPLAY_ON = 0x20; @@ -99,7 +75,7 @@ inline void hd61830_device::writebyte(offs_t address, uint8_t data) //------------------------------------------------- hd61830_device::hd61830_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, HD61830, "HD61830 LCDC", tag, owner, clock, "hd61830", __FILE__), + device_t(mconfig, HD61830, tag, owner, clock), device_memory_interface(mconfig, *this), device_video_interface(mconfig, *this), m_read_rd(*this), @@ -199,7 +175,7 @@ void hd61830_device::set_busy_flag() READ8_MEMBER( hd61830_device::status_r ) { - if (LOG) logerror("HD61830 '%s' Status Read: %s\n", tag(), m_bf ? "busy" : "ready"); + LOG("HD61830 Status Read: %s\n", m_bf ? "busy" : "ready"); return m_bf ? 0x80 : 0; } @@ -223,7 +199,7 @@ READ8_MEMBER( hd61830_device::data_r ) { uint8_t data = m_dor; - if (LOG) logerror("HD61830 '%s' Display Data Read %02x\n", tag(), m_dor); + LOG("HD61830 Display Data Read %02x\n", m_dor); m_dor = readbyte(m_cac); @@ -241,7 +217,7 @@ WRITE8_MEMBER( hd61830_device::data_w ) { if (m_bf) { - logerror("HD61830 '%s' Ignoring data write %02x due to business\n", tag(), data); + logerror("HD61830 Ignoring data write %02x due to business\n", data); return; } @@ -250,53 +226,50 @@ WRITE8_MEMBER( hd61830_device::data_w ) case INSTRUCTION_MODE_CONTROL: m_mcr = data; - if (LOG) - { - logerror("HD61830 '%s' %s CG\n", tag(), (data & MODE_EXTERNAL_CG) ? "External" : "Internal"); - logerror("HD61830 '%s' %s Display Mode\n", tag(), (data & MODE_GRAPHIC) ? "Graphic" : "Character"); - logerror("HD61830 '%s' %s Mode\n", tag(), (data & MODE_MASTER) ? "Master" : "Slave"); - logerror("HD61830 '%s' Cursor %s\n", tag(), (data & MODE_CURSOR) ? "On" : "Off"); - logerror("HD61830 '%s' Blink %s\n", tag(), (data & MODE_BLINK) ? "On" : "Off"); - logerror("HD61830 '%s' Display %s\n", tag(), (data & MODE_DISPLAY_ON) ? "On" : "Off"); - } + LOG("HD61830 %s CG\n", (data & MODE_EXTERNAL_CG) ? "External" : "Internal"); + LOG("HD61830 %s Display Mode\n", (data & MODE_GRAPHIC) ? "Graphic" : "Character"); + LOG("HD61830 %s Mode\n", (data & MODE_MASTER) ? "Master" : "Slave"); + LOG("HD61830 Cursor %s\n", (data & MODE_CURSOR) ? "On" : "Off"); + LOG("HD61830 Blink %s\n", (data & MODE_BLINK) ? "On" : "Off"); + LOG("HD61830 Display %s\n", (data & MODE_DISPLAY_ON) ? "On" : "Off"); break; case INSTRUCTION_CHARACTER_PITCH: m_hp = (data & 0x07) + 1; m_vp = (data >> 4) + 1; - if (LOG) logerror("HD61830 '%s' Horizontal Character Pitch: %u\n", tag(), m_hp); - if (LOG) logerror("HD61830 '%s' Vertical Character Pitch: %u\n", tag(), m_vp); + LOG("HD61830 Horizontal Character Pitch: %u\n", m_hp); + LOG("HD61830 Vertical Character Pitch: %u\n", m_vp); break; case INSTRUCTION_NUMBER_OF_CHARACTERS: m_hn = (data & 0x7f) + 1; - if (LOG) logerror("HD61830 '%s' Number of Characters: %u\n", tag(), m_hn); + LOG("HD61830 Number of Characters: %u\n", m_hn); break; case INSTRUCTION_NUMBER_OF_TIME_DIVISIONS: m_nx = (data & 0x7f) + 1; - if (LOG) logerror("HD61830 '%s' Number of Time Divisions: %u\n", tag(), m_nx); + LOG("HD61830 Number of Time Divisions: %u\n", m_nx); break; case INSTRUCTION_CURSOR_POSITION: m_cp = (data & 0x7f) + 1; - if (LOG) logerror("HD61830 '%s' Cursor Position: %u\n", tag(), m_cp); + LOG("HD61830 Cursor Position: %u\n", m_cp); break; case INSTRUCTION_DISPLAY_START_LOW: m_dsa = (m_dsa & 0xff00) | data; - if (LOG) logerror("HD61830 '%s' Display Start Address Low %04x\n", tag(), m_dsa); + LOG("HD61830 Display Start Address Low %04x\n", m_dsa); break; case INSTRUCTION_DISPLAY_START_HIGH: m_dsa = (data << 8) | (m_dsa & 0xff); - if (LOG) logerror("HD61830 '%s' Display Start Address High %04x\n", tag(), m_dsa); + LOG("HD61830 Display Start Address High %04x\n", m_dsa); break; case INSTRUCTION_CURSOR_ADDRESS_LOW: @@ -309,19 +282,19 @@ WRITE8_MEMBER( hd61830_device::data_w ) m_cac = (m_cac & 0xff00) | data; } - if (LOG) logerror("HD61830 '%s' Cursor Address Low %02x: %04x\n", tag(), data, m_cac); + LOG("HD61830 Cursor Address Low %02x: %04x\n", data, m_cac); break; case INSTRUCTION_CURSOR_ADDRESS_HIGH: m_cac = (data << 8) | (m_cac & 0xff); - if (LOG) logerror("HD61830 '%s' Cursor Address High %02x: %04x\n", tag(), data, m_cac); + LOG("HD61830 Cursor Address High %02x: %04x\n", data, m_cac); break; case INSTRUCTION_DISPLAY_DATA_WRITE: writebyte(m_cac, data); - if (LOG) logerror("HD61830 '%s' Display Data Write %02x -> %04x row %u col %u\n", tag(), data, m_cac, m_cac / 40, m_cac % 40); + LOG("HD61830 Display Data Write %02x -> %04x row %u col %u\n", data, m_cac, m_cac / 40, m_cac % 40); m_cac++; break; @@ -333,7 +306,7 @@ WRITE8_MEMBER( hd61830_device::data_w ) md &= ~(1 << bit); - if (LOG) logerror("HD61830 '%s' Clear Bit %u at %04x\n", tag(), bit + 1, m_cac); + LOG("HD61830 Clear Bit %u at %04x\n", bit + 1, m_cac); writebyte(m_cac, md); @@ -348,7 +321,7 @@ WRITE8_MEMBER( hd61830_device::data_w ) md |= 1 << bit; - if (LOG) logerror("HD61830 '%s' Set Bit %u at %04x\n", tag(), bit + 1, m_cac); + LOG("HD61830 Set Bit %u at %04x\n", bit + 1, m_cac); writebyte(m_cac, md); @@ -357,7 +330,7 @@ WRITE8_MEMBER( hd61830_device::data_w ) break; default: - logerror("HD61830 '%s' Illegal Instruction %02x!\n", tag(), m_ir); + logerror("HD61830 Illegal Instruction %02x!\n", m_ir); return; } diff --git a/src/devices/video/hd61830.h b/src/devices/video/hd61830.h index 05f2ac1b3a2..e454ec79a97 100644 --- a/src/devices/video/hd61830.h +++ b/src/devices/video/hd61830.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_VIDEO_HD61830_H +#define MAME_VIDEO_HD61830_H -#ifndef __HD61830__ -#define __HD61830__ +#pragma once @@ -37,7 +37,7 @@ public: // construction/destruction hd61830_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_rd_rd_callback(device_t &device, _Object object) { return downcast(device).m_read_rd.set_callback(object); } + template static devcb_base &set_rd_rd_callback(device_t &device, Object &&cb) { return downcast(device).m_read_rd.set_callback(std::forward(cb)); } DECLARE_READ8_MEMBER( status_r ); DECLARE_WRITE8_MEMBER( control_w ); @@ -55,10 +55,10 @@ protected: virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; // device_memory_interface overrides - virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_0) const override; + virtual const address_space_config *memory_space_config(address_spacenum spacenum) const override; - inline uint8_t readbyte(offs_t address); - inline void writebyte(offs_t address, uint8_t data); + uint8_t readbyte(offs_t address) { return space().read_byte(address); } + void writebyte(offs_t address, uint8_t data) { space().write_byte(address, data); } private: enum @@ -116,9 +116,7 @@ private: // device type definition -extern const device_type HD61830; +DECLARE_DEVICE_TYPE(HD61830, hd61830_device) extern const device_type HD61830B; - - -#endif +#endif // MAME_VIDEO_HD61830_H diff --git a/src/devices/video/hd63484.cpp b/src/devices/video/hd63484.cpp index 06f7a1dc20c..0345362ebd6 100644 --- a/src/devices/video/hd63484.cpp +++ b/src/devices/video/hd63484.cpp @@ -25,7 +25,7 @@ //------------------------------------------------- hd63484_device::hd63484_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, HD63484, "HD63484 CRTC", tag, owner, clock, "hd63484", __FILE__), + : device_t(mconfig, HD63484, tag, owner, clock), device_memory_interface(mconfig, *this), device_video_interface(mconfig, *this), m_auto_configure_screen(true), @@ -331,7 +331,7 @@ enum -------------------------------------------------*/ // devices -const device_type HD63484 = device_creator; +DEFINE_DEVICE_TYPE(HD63484, hd63484_device, "hd63484", "Hitachi HD63484 ACRTC") ROM_START( hd63484 ) diff --git a/src/devices/video/hd63484.h b/src/devices/video/hd63484.h index 83e2bbcb232..0bdb703f388 100644 --- a/src/devices/video/hd63484.h +++ b/src/devices/video/hd63484.h @@ -7,15 +7,11 @@ **************************************************************************/ -#pragma once - -#ifndef __HD63484__ -#define __HD63484__ - - +#ifndef MAME_VIDEO_HD63484_H +#define MAME_VIDEO_HD63484_H +#pragma once -typedef device_delegate hd63484_display_delegate; /*************************************************************************** @@ -30,7 +26,7 @@ typedef device_delegate(owner))); + hd63484_device::static_set_display_callback(*device, hd63484_device::display_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); #define MCFG_HD63484_AUTO_CONFIGURE_SCREEN(_val) \ hd63484_device::static_set_auto_configure_screen(*device, _val); @@ -40,15 +36,17 @@ typedef device_delegate hd63484_device -class hd63484_device : public device_t, +class hd63484_device : public device_t, public device_memory_interface, public device_video_interface { public: + typedef device_delegate display_delegate; + // construction/destruction hd63484_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - static void static_set_display_callback(device_t &device, hd63484_display_delegate callback) { downcast(device).m_display_cb = callback; } + static void static_set_display_callback(device_t &device, display_delegate &&cb) { downcast(device).m_display_cb = std::move(cb); } static void static_set_auto_configure_screen(device_t &device, bool auto_configure_screen) { downcast(device).m_auto_configure_screen = auto_configure_screen; } DECLARE_WRITE16_MEMBER( address_w ); @@ -115,7 +113,7 @@ private: void register_save_state(); - hd63484_display_delegate m_display_cb; + display_delegate m_display_cb; bool m_auto_configure_screen; uint8_t m_ar; @@ -188,6 +186,6 @@ private: }; // device type definition -extern const device_type HD63484; +DECLARE_DEVICE_TYPE(HD63484, hd63484_device) -#endif /* __HD63484_H__ */ +#endif // MAME_VIDEO_HD63484_H diff --git a/src/devices/video/hd66421.cpp b/src/devices/video/hd66421.cpp index a19dc11c750..a6c834d5db0 100644 --- a/src/devices/video/hd66421.cpp +++ b/src/devices/video/hd66421.cpp @@ -11,14 +11,17 @@ #include "emu.h" #include "hd66421.h" + //************************************************************************** // MACROS / CONSTANTS //************************************************************************** +//#define HD66421_BRIGHTNESS_DOES_NOT_WORK + #define LOG_LEVEL 1 #define _logerror(level,x) do { if (LOG_LEVEL > level) logerror x; } while (0) -#define HD66421_RAM_SIZE (HD66421_WIDTH * HD66421_HEIGHT / 4) // 2-bits per pixel +#define HD66421_RAM_SIZE (hd66421_device::WIDTH * hd66421_device::HEIGHT / 4) // 2-bits per pixel // R0 - control register 1 #define LCD_R0_RMW 0x80 // read-modify-write mode @@ -65,7 +68,7 @@ //************************************************************************** // devices -const device_type HD66421 = device_creator; +DEFINE_DEVICE_TYPE(HD66421, hd66421_device, "hd66421", "Hitachi HD66421 LCD Controller") // default address map @@ -117,7 +120,7 @@ inline void hd66421_device::writebyte(offs_t address, uint8_t data) //------------------------------------------------- hd66421_device::hd66421_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, HD66421, "Hitachi HD66421 LCD Controller", tag, owner, clock, "hd66421", __FILE__), + : device_t(mconfig, HD66421, tag, owner, clock), device_memory_interface(mconfig, *this), m_space_config("videoram", ENDIANNESS_LITTLE, 8, 17, 0, nullptr, *ADDRESS_MAP_NAME(hd66421)), m_cmd(0), @@ -181,20 +184,20 @@ WRITE8_MEMBER( hd66421_device::reg_dat_w ) case LCD_REG_RAM : { uint8_t r1; - writebyte(m_y * (HD66421_WIDTH / 4) + m_x, data); + writebyte(m_y * (WIDTH / 4) + m_x, data); r1 = m_reg[LCD_REG_CONTROL_2]; if (r1 & 0x02) m_x++; else m_y++; - if (m_x >= (HD66421_WIDTH / 4)) + if (m_x >= (WIDTH / 4)) { m_x = 0; m_y++; } - if (m_y >= HD66421_HEIGHT) + if (m_y >= HEIGHT) m_y = 0; } break; @@ -222,11 +225,11 @@ uint32_t hd66421_device::update_screen(screen_device &screen, bitmap_ind16 &bitm if (temp > 31) temp = 31; bright = 1.0 * temp / 31; pen[i] = i; - #ifdef HD66421_BRIGHTNESS_DOES_NOT_WORK +#ifdef HD66421_BRIGHTNESS_DOES_NOT_WORK m_palette->set_pen_color(pen[i], 255 * bright, 255 * bright, 255 * bright); - #else +#else m_palette->set_pen_contrast(pen[i], bright); - #endif +#endif } // draw bitmap (bottom to top) @@ -234,7 +237,7 @@ uint32_t hd66421_device::update_screen(screen_device &screen, bitmap_ind16 &bitm { int x, y; x = 0; - y = HD66421_HEIGHT - 1; + y = HEIGHT - 1; for (int i = 0; i < HD66421_RAM_SIZE; i++) { @@ -242,7 +245,7 @@ uint32_t hd66421_device::update_screen(screen_device &screen, bitmap_ind16 &bitm plot_pixel(bitmap, x++, y, pen[(readbyte(i) >> 4) & 3]); plot_pixel(bitmap, x++, y, pen[(readbyte(i) >> 2) & 3]); plot_pixel(bitmap, x++, y, pen[(readbyte(i) >> 0) & 3]); - if (x >= HD66421_WIDTH) + if (x >= WIDTH) { x = 0; y = y - 1; @@ -251,7 +254,7 @@ uint32_t hd66421_device::update_screen(screen_device &screen, bitmap_ind16 &bitm } else { - rectangle rect(0, HD66421_WIDTH - 1, 0, HD66421_HEIGHT - 1); + rectangle rect(0, WIDTH - 1, 0, HEIGHT - 1); bitmap.fill(m_palette->white_pen(), rect); } diff --git a/src/devices/video/hd66421.h b/src/devices/video/hd66421.h index d7a00d91107..3be6de49536 100644 --- a/src/devices/video/hd66421.h +++ b/src/devices/video/hd66421.h @@ -8,23 +8,11 @@ ***************************************************************************/ -#pragma once - -#ifndef __HD66421_H__ -#define __HD66421_H__ - - -///************************************************************************* -// MACROS / CONSTANTS -///************************************************************************* - -//#define HD66421_BRIGHTNESS_DOES_NOT_WORK - -#define HD66421_WIDTH 160 -#define HD66421_HEIGHT 100 +#ifndef MAME_VIDEO_HD66421_H +#define MAME_VIDEO_HD66421_H +#pragma once -/*----------- defined in video/hd66421.c -----------*/ ///************************************************************************* // INTERFACE CONFIGURATION MACROS @@ -43,6 +31,9 @@ class hd66421_device : public device_t, public device_memory_interface { public: + static constexpr unsigned WIDTH = 160; + static constexpr unsigned HEIGHT = 100; + // construction/destruction hd66421_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); @@ -78,7 +69,6 @@ private: // device type definition -extern const device_type HD66421; - +DECLARE_DEVICE_TYPE(HD66421, hd66421_device) -#endif +#endif // MAME_VIDEO_HD66421_H diff --git a/src/devices/video/hlcd0515.cpp b/src/devices/video/hlcd0515.cpp index 2f691eb839d..c930897d0bd 100644 --- a/src/devices/video/hlcd0515.cpp +++ b/src/devices/video/hlcd0515.cpp @@ -17,26 +17,27 @@ #include "video/hlcd0515.h" -const device_type HLCD0515 = device_creator; -const device_type HLCD0569 = device_creator; +DEFINE_DEVICE_TYPE(HLCD0515, hlcd0515_device, "hlcd0515", "Hughes HLCD 0515 LCD Driver") +DEFINE_DEVICE_TYPE(HLCD0569, hlcd0569_device, "hlcd0569", "Hughes HLCD 0569 LCD Driver") //------------------------------------------------- // constructor //------------------------------------------------- -hlcd0515_device::hlcd0515_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, u32 clock, u8 colmax, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), - m_colmax(colmax), m_write_cols(*this), m_write_data(*this) +hlcd0515_device::hlcd0515_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, u8 colmax) + : device_t(mconfig, type, tag, owner, clock) + , m_colmax(colmax) + , m_write_cols(*this), m_write_data(*this) { } hlcd0515_device::hlcd0515_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : hlcd0515_device(mconfig, HLCD0515, "HLCD 0515 LCD Driver", tag, owner, clock, 25, "hlcd0515", __FILE__) + : hlcd0515_device(mconfig, HLCD0515, tag, owner, clock, 25) { } hlcd0569_device::hlcd0569_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : hlcd0515_device(mconfig, HLCD0569, "HLCD 0569 LCD Driver", tag, owner, clock, 24, "hlcd0569", __FILE__) + : hlcd0515_device(mconfig, HLCD0569, tag, owner, clock, 24) { } diff --git a/src/devices/video/hlcd0515.h b/src/devices/video/hlcd0515.h index 899ed199576..16a62d74756 100644 --- a/src/devices/video/hlcd0515.h +++ b/src/devices/video/hlcd0515.h @@ -6,18 +6,10 @@ */ -#ifndef _HLCD0515_H_ -#define _HLCD0515_H_ - - -// COL/ROW pins (offset for ROW) -#define MCFG_HLCD0515_WRITE_COLS_CB(_devcb) \ - devcb = &hlcd0515_device::set_write_cols_callback(*device, DEVCB_##_devcb); - -// DATA OUT pin, don't use on HLCD0569 -#define MCFG_HLCD0515_WRITE_DATA_CB(_devcb) \ - devcb = &hlcd0515_device::set_write_data_callback(*device, DEVCB_##_devcb); +#ifndef MAME_VIDEO_HLCD0515_H +#define MAME_VIDEO_HLCD0515_H +#pragma once // pinout reference @@ -50,21 +42,32 @@ Internally, this is divided by 2, and by number of rows to get display refresh frequency. */ + +// COL/ROW pins (offset for ROW) +#define MCFG_HLCD0515_WRITE_COLS_CB(_devcb) \ + devcb = &hlcd0515_device::set_write_cols_callback(*device, DEVCB_##_devcb); + +// DATA OUT pin, don't use on HLCD0569 +#define MCFG_HLCD0515_WRITE_DATA_CB(_devcb) \ + devcb = &hlcd0515_device::set_write_data_callback(*device, DEVCB_##_devcb); + + class hlcd0515_device : public device_t { public: hlcd0515_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); - hlcd0515_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, u32 clock, u8 colmax, const char *shortname, const char *source); // static configuration helpers - template static devcb_base &set_write_cols_callback(device_t &device, Object &&object) { return downcast(device).m_write_cols.set_callback(std::forward(object)); } - template static devcb_base &set_write_data_callback(device_t &device, Object &&object) { return downcast(device).m_write_data.set_callback(std::forward(object)); } + template static devcb_base &set_write_cols_callback(device_t &device, Object &&cb) { return downcast(device).m_write_cols.set_callback(std::forward(cb)); } + template static devcb_base &set_write_data_callback(device_t &device, Object &&cb) { return downcast(device).m_write_data.set_callback(std::forward(cb)); } DECLARE_WRITE_LINE_MEMBER(write_clock); DECLARE_WRITE_LINE_MEMBER(write_cs); DECLARE_WRITE_LINE_MEMBER(write_data) { m_data = (state) ? 1 : 0; } protected: + hlcd0515_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, u8 colmax); + // device-level overrides virtual void device_start() override; virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; @@ -72,7 +75,7 @@ protected: virtual void set_control(); void clock_data(int col); - u8 m_colmax; // number of column pins + const u8 m_colmax; // number of column pins int m_cs; // input pin state int m_clock; // " @@ -104,9 +107,7 @@ protected: }; +DECLARE_DEVICE_TYPE(HLCD0515, hlcd0515_device) +DECLARE_DEVICE_TYPE(HLCD0569, hlcd0569_device) -extern const device_type HLCD0515; -extern const device_type HLCD0569; - - -#endif /* _HLCD0515_H_ */ +#endif // MAME_VIDEO_HLCD0515_H diff --git a/src/devices/video/hlcd0538.cpp b/src/devices/video/hlcd0538.cpp index 402ece29d6e..c409e6be528 100644 --- a/src/devices/video/hlcd0538.cpp +++ b/src/devices/video/hlcd0538.cpp @@ -16,26 +16,26 @@ #include "video/hlcd0538.h" -const device_type HLCD0538 = device_creator; -const device_type HLCD0539 = device_creator; +DEFINE_DEVICE_TYPE(HLCD0538, hlcd0538_device, "hlcd0538", "Hughes HLCD 0538 LCD Driver") +DEFINE_DEVICE_TYPE(HLCD0539, hlcd0539_device, "hlcd0539", "Hughes HLCD 0539 LCD Driver") //------------------------------------------------- // constructor //------------------------------------------------- -hlcd0538_device::hlcd0538_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, u32 clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), - m_write_cols(*this), m_write_interrupt(*this) +hlcd0538_device::hlcd0538_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock) + : device_t(mconfig, type, tag, owner, clock) + , m_write_cols(*this), m_write_interrupt(*this) { } hlcd0538_device::hlcd0538_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : hlcd0538_device(mconfig, HLCD0538, "HLCD 0538 LCD Driver", tag, owner, clock, "hlcd0538", __FILE__) + : hlcd0538_device(mconfig, HLCD0538, tag, owner, clock) { } hlcd0539_device::hlcd0539_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : hlcd0538_device(mconfig, HLCD0539, "HLCD 0539 LCD Driver", tag, owner, clock, "hlcd0539", __FILE__) + : hlcd0538_device(mconfig, HLCD0539, tag, owner, clock) { } diff --git a/src/devices/video/hlcd0538.h b/src/devices/video/hlcd0538.h index 3d49460b80a..8bdbb4a83f1 100644 --- a/src/devices/video/hlcd0538.h +++ b/src/devices/video/hlcd0538.h @@ -6,18 +6,10 @@ */ -#ifndef _HLCD0538_H_ -#define _HLCD0538_H_ - - -// C/R pins (0538: d0-d7 for rows) -#define MCFG_HLCD0538_WRITE_COLS_CB(_devcb) \ - devcb = &hlcd0538_device::set_write_cols_callback(*device, DEVCB_##_devcb); - -// INTERRUPT pin -#define MCFG_HLCD0538_INTERRUPT_CB(_devcb) \ - devcb = &hlcd0538_device::set_write_interrupt_callback(*device, DEVCB_##_devcb); +#ifndef MAME_VIDEO_HLCD0538_H +#define MAME_VIDEO_HLCD0538_H +#pragma once // pinout reference @@ -47,21 +39,32 @@ HLCD 0539 has 8 more C pins(1-8) in place of R pins. */ + +// C/R pins (0538: d0-d7 for rows) +#define MCFG_HLCD0538_WRITE_COLS_CB(_devcb) \ + devcb = &hlcd0538_device::set_write_cols_callback(*device, DEVCB_##_devcb); + +// INTERRUPT pin +#define MCFG_HLCD0538_INTERRUPT_CB(_devcb) \ + devcb = &hlcd0538_device::set_write_interrupt_callback(*device, DEVCB_##_devcb); + + class hlcd0538_device : public device_t { public: hlcd0538_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); - hlcd0538_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, u32 clock, const char *shortname, const char *source); // static configuration helpers - template static devcb_base &set_write_cols_callback(device_t &device, Object &&object) { return downcast(device).m_write_cols.set_callback(std::forward(object)); } - template static devcb_base &set_write_interrupt_callback(device_t &device, Object &&object) { return downcast(device).m_write_interrupt.set_callback(std::forward(object)); } + template static devcb_base &set_write_cols_callback(device_t &device, Object &&cb) { return downcast(device).m_write_cols.set_callback(std::forward(cb)); } + template static devcb_base &set_write_interrupt_callback(device_t &device, Object &&cb) { return downcast(device).m_write_interrupt.set_callback(std::forward(cb)); } DECLARE_WRITE_LINE_MEMBER(write_clk); DECLARE_WRITE_LINE_MEMBER(write_lcd); DECLARE_WRITE_LINE_MEMBER(write_data) { m_data = (state) ? 1 : 0; } protected: + hlcd0538_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock); + // device-level overrides virtual void device_start() override; @@ -84,8 +87,7 @@ public: -extern const device_type HLCD0538; -extern const device_type HLCD0539; - +DECLARE_DEVICE_TYPE(HLCD0538, hlcd0538_device) +DECLARE_DEVICE_TYPE(HLCD0539, hlcd0539_device) -#endif /* _HLCD0538_H_ */ +#endif // MAME_VIDEO_HLCD0538_H diff --git a/src/devices/video/hp1ll3.cpp b/src/devices/video/hp1ll3.cpp index b87c8a15342..21b6a2b4550 100644 --- a/src/devices/video/hp1ll3.cpp +++ b/src/devices/video/hp1ll3.cpp @@ -37,6 +37,98 @@ #include "screen.h" +///************************************************************************* +// MACROS / CONSTANTS +///************************************************************************* + +/* + * command types (send) + * + * 0 -- no data + * 1 -- write 1 word of data, then command + * 2 -- write 2 words of data, then command + * 3 -- write command, then 11 words of data (= CONF only?) + * 4 -- write 1 word of data, then command, then write X words of data, then write NOP + * + * (read) + * + * 3 -- ??? + * 4 -- write 1 word of data, then command, then read X words of data, then write NOP + */ +#define NOP 0 // type 0 +#define CONF 2 // type 3, configure GPU (screen size, timings...). 11 words of data. +#define DISVID 3 // type 0, disable video +#define ENVID 4 // type 0, enable video +#define WRMEM 7 // type 4, write GPU memory at offset, terminate by NOP +#define RDMEM 8 // type 4, read GPU memory from offset, terminate by NOP +#define WRSAD 9 // type 1, set screen area start address +#define WRORG 10 // type 1, set ??? +#define WRDAD 11 // type 1, set data area start address (16x16 area fill, sprite and cursor) +#define WRRR 12 // type 1, set replacement rule (rasterop) +#define MOVEP 13 // type 2, move pointer +#define IMOVEP 14 +#define DRAWP 15 // type 2, draw line +#define IDRAWP 16 +#define RDP 17 +#define WRUDL 18 // type 1, set user-defined line pattern (16-bit) +#define WRWINSIZ 19 // type 2, set ??? +#define WRWINORG 20 // type 2, set ??? +#define COPY 21 // type 2 +#define FILL 22 // type 1, fill area +#define FRAME 23 // type _, draw rectangle +#define SCROLUP 24 // type 2 +#define SCROLDN 25 // type 2 +#define SCROLLF 26 // type 2 +#define SCROLRT 27 // type 2 +#define RDWIN 28 // type 1 +#define WRWIN 29 // type 1 +#define RDWINPARM 30 +#define CR 31 +#define CRLFx 32 +#define LABEL 36 // type 1, draw text +#define ENSP 38 // type 0, enable sprite +#define DISSP 39 // type 0, disable sprite +#define MOVESP 40 // type 2, move sprite +#define IMOVESP 41 +#define RDSP 42 +#define DRAWPX 43 // type _, draw single pixel +#define WRFAD 44 // type 1, set font area start address +#define ENCURS 45 // type 0 +#define DISCURS 46 // type 0 +#define ID 63 + + +/* + * Replacement Rules (rops). sources: + * + * - NetBSD's diofbvar.h (definitions for Topcat chip) + * - pdf/hp/9000_300/specs/A-5958-4362-9_Series_300_Display_Color_Card_Theory_of_Operation_Oct85.pdf + * refers to TOPCAT documentation p/n A-1FH2-2001-7 (not online) + */ +#define RR_FORCE_ZERO 0x0 +#define RR_CLEAR RR_FORCE_ZERO +#define RR_AND 0x1 +#define RR_AND_NOT_OLD 0x2 +#define RR_NEW 0x3 +#define RR_COPY RR_NEW +#define RR_AND_NOT_NEW 0x4 +#define RR_OLD 0x5 +#define RR_XOR 0x6 +#define RR_OR 0x7 +#define RR_NOR 0x8 +#define RR_XNOR 0x9 +#define RR_NOT_OLD 0xa +#define RR_INVERT RR_NOT_OLD +#define RR_OR_NOT_OLD 0xb +#define RR_NOT_NEW 0xc +#define RR_COPYINVERTED RR_NOT_NEW +#define RR_OR_NOT_NEW 0xd +#define RR_NAND 0xe +#define RR_FORCE_ONE 0xf + +#define WS 16 // bits in a word + + //************************************************************************** // MACROS / CONSTANTS //************************************************************************** @@ -64,7 +156,7 @@ //************************************************************************** // devices -const device_type HP1LL3 = device_creator; +DEFINE_DEVICE_TYPE(HP1LL3, hp1ll3_device, "hp1ll3", "Hewlett-Packard 1LL3-0005 GPU") //************************************************************************** @@ -76,7 +168,7 @@ const device_type HP1LL3 = device_creator; //------------------------------------------------- hp1ll3_device::hp1ll3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, HP1LL3, "Hewlett-Package 1LL3-0005 GPU", tag, owner, clock, "hp1ll3", __FILE__) + : device_t(mconfig, HP1LL3, tag, owner, clock) , device_video_interface(mconfig, *this) { } diff --git a/src/devices/video/hp1ll3.h b/src/devices/video/hp1ll3.h index f95b8dcb32b..ab8b047a977 100644 --- a/src/devices/video/hp1ll3.h +++ b/src/devices/video/hp1ll3.h @@ -6,103 +6,11 @@ ***************************************************************************/ +#ifndef MAME_VIDEO_HP1LL3_H +#define MAME_VIDEO_HP1LL3_H #pragma once -#ifndef __HP1LL3_H__ -#define __HP1LL3_H__ - -///************************************************************************* -// MACROS / CONSTANTS -///************************************************************************* - -/* - * command types (send) - * - * 0 -- no data - * 1 -- write 1 word of data, then command - * 2 -- write 2 words of data, then command - * 3 -- write command, then 11 words of data (= CONF only?) - * 4 -- write 1 word of data, then command, then write X words of data, then write NOP - * - * (read) - * - * 3 -- ??? - * 4 -- write 1 word of data, then command, then read X words of data, then write NOP - */ -#define NOP 0 // type 0 -#define CONF 2 // type 3, configure GPU (screen size, timings...). 11 words of data. -#define DISVID 3 // type 0, disable video -#define ENVID 4 // type 0, enable video -#define WRMEM 7 // type 4, write GPU memory at offset, terminate by NOP -#define RDMEM 8 // type 4, read GPU memory from offset, terminate by NOP -#define WRSAD 9 // type 1, set screen area start address -#define WRORG 10 // type 1, set ??? -#define WRDAD 11 // type 1, set data area start address (16x16 area fill, sprite and cursor) -#define WRRR 12 // type 1, set replacement rule (rasterop) -#define MOVEP 13 // type 2, move pointer -#define IMOVEP 14 -#define DRAWP 15 // type 2, draw line -#define IDRAWP 16 -#define RDP 17 -#define WRUDL 18 // type 1, set user-defined line pattern (16-bit) -#define WRWINSIZ 19 // type 2, set ??? -#define WRWINORG 20 // type 2, set ??? -#define COPY 21 // type 2 -#define FILL 22 // type 1, fill area -#define FRAME 23 // type _, draw rectangle -#define SCROLUP 24 // type 2 -#define SCROLDN 25 // type 2 -#define SCROLLF 26 // type 2 -#define SCROLRT 27 // type 2 -#define RDWIN 28 // type 1 -#define WRWIN 29 // type 1 -#define RDWINPARM 30 -#define CR 31 -#define CRLFx 32 -#define LABEL 36 // type 1, draw text -#define ENSP 38 // type 0, enable sprite -#define DISSP 39 // type 0, disable sprite -#define MOVESP 40 // type 2, move sprite -#define IMOVESP 41 -#define RDSP 42 -#define DRAWPX 43 // type _, draw single pixel -#define WRFAD 44 // type 1, set font area start address -#define ENCURS 45 // type 0 -#define DISCURS 46 // type 0 -#define ID 63 - - -/* - * Replacement Rules (rops). sources: - * - * - NetBSD's diofbvar.h (definitions for Topcat chip) - * - pdf/hp/9000_300/specs/A-5958-4362-9_Series_300_Display_Color_Card_Theory_of_Operation_Oct85.pdf - * refers to TOPCAT documentation p/n A-1FH2-2001-7 (not online) - */ -#define RR_FORCE_ZERO 0x0 -#define RR_CLEAR RR_FORCE_ZERO -#define RR_AND 0x1 -#define RR_AND_NOT_OLD 0x2 -#define RR_NEW 0x3 -#define RR_COPY RR_NEW -#define RR_AND_NOT_NEW 0x4 -#define RR_OLD 0x5 -#define RR_XOR 0x6 -#define RR_OR 0x7 -#define RR_NOR 0x8 -#define RR_XNOR 0x9 -#define RR_NOT_OLD 0xa -#define RR_INVERT RR_NOT_OLD -#define RR_OR_NOT_OLD 0xb -#define RR_NOT_NEW 0xc -#define RR_COPYINVERTED RR_NOT_NEW -#define RR_OR_NOT_NEW 0xd -#define RR_NAND 0xe -#define RR_FORCE_ONE 0xf - -#define WS 16 // bits in a word - ///************************************************************************* // INTERFACE CONFIGURATION MACROS @@ -118,8 +26,7 @@ // ======================> hp1ll3_device -class hp1ll3_device : public device_t, - public device_video_interface +class hp1ll3_device : public device_t, public device_video_interface { public: // construction/destruction @@ -170,7 +77,6 @@ private: // device type definition -extern const device_type HP1LL3; - +DECLARE_DEVICE_TYPE(HP1LL3, hp1ll3_device) -#endif +#endif // MAME_VIDEO_HP1LL3_H diff --git a/src/devices/video/huc6202.cpp b/src/devices/video/huc6202.cpp index e5a4d2438c1..bbacd956e26 100644 --- a/src/devices/video/huc6202.cpp +++ b/src/devices/video/huc6202.cpp @@ -7,27 +7,29 @@ **********************************************************************/ #include "emu.h" -#include "huc6270.h" #include "huc6202.h" +#include "huc6270.h" + -const device_type HUC6202 = device_creator; +DEFINE_DEVICE_TYPE(HUC6202, huc6202_device, "huc6202", "Hudson HuC6202 VPC") huc6202_device::huc6202_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, HUC6202, "HuC6202 VPC", tag, owner, clock, "huc6202", __FILE__), - m_next_pixel_0_cb(*this), - m_time_til_next_event_0_cb(*this), - m_vsync_changed_0_cb(*this), - m_hsync_changed_0_cb(*this), - m_read_0_cb(*this), - m_write_0_cb(*this), - m_next_pixel_1_cb(*this), - m_time_til_next_event_1_cb(*this), - m_vsync_changed_1_cb(*this), - m_hsync_changed_1_cb(*this), - m_read_1_cb(*this), - m_write_1_cb(*this), m_window1(0), m_window2(0), m_io_device(0), m_map_index(0), m_map_dirty(0) + : device_t(mconfig, HUC6202, tag, owner, clock) + , m_next_pixel_0_cb(*this) + , m_time_til_next_event_0_cb(*this) + , m_vsync_changed_0_cb(*this) + , m_hsync_changed_0_cb(*this) + , m_read_0_cb(*this) + , m_write_0_cb(*this) + , m_next_pixel_1_cb(*this) + , m_time_til_next_event_1_cb(*this) + , m_vsync_changed_1_cb(*this) + , m_hsync_changed_1_cb(*this) + , m_read_1_cb(*this) + , m_write_1_cb(*this) + , m_window1(0), m_window2(0), m_io_device(0), m_map_index(0), m_map_dirty(0) { } diff --git a/src/devices/video/huc6202.h b/src/devices/video/huc6202.h index 5ad529a3e35..3a3c90076e3 100644 --- a/src/devices/video/huc6202.h +++ b/src/devices/video/huc6202.h @@ -6,9 +6,10 @@ **********************************************************************/ -#ifndef __HUC6202_H_ -#define __HUC6202_H_ +#ifndef MAME_VIDEO_HUC6202_H +#define MAME_VIDEO_HUC6202_H +#pragma once #define MCFG_HUC6202_NEXT_PIXEL_0_CB(_devcb) \ @@ -54,18 +55,18 @@ public: // construction/destruction huc6202_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_next_pixel_0_callback(device_t &device, _Object object) { return downcast(device).m_next_pixel_0_cb.set_callback(object); } - template static devcb_base &set_time_til_next_event_0_callback(device_t &device, _Object object) { return downcast(device).m_time_til_next_event_0_cb.set_callback(object); } - template static devcb_base &set_vsync_changed_0_callback(device_t &device, _Object object) { return downcast(device).m_vsync_changed_0_cb.set_callback(object); } - template static devcb_base &set_hsync_changed_0_callback(device_t &device, _Object object) { return downcast(device).m_hsync_changed_0_cb.set_callback(object); } - template static devcb_base &set_read_0_callback(device_t &device, _Object object) { return downcast(device).m_read_0_cb.set_callback(object); } - template static devcb_base &set_write_0_callback(device_t &device, _Object object) { return downcast(device).m_write_0_cb.set_callback(object); } - template static devcb_base &set_next_pixel_1_callback(device_t &device, _Object object) { return downcast(device).m_next_pixel_1_cb.set_callback(object); } - template static devcb_base &set_time_til_next_event_1_callback(device_t &device, _Object object) { return downcast(device).m_time_til_next_event_1_cb.set_callback(object); } - template static devcb_base &set_vsync_changed_1_callback(device_t &device, _Object object) { return downcast(device).m_vsync_changed_1_cb.set_callback(object); } - template static devcb_base &set_hsync_changed_1_callback(device_t &device, _Object object) { return downcast(device).m_hsync_changed_1_cb.set_callback(object); } - template static devcb_base &set_read_1_callback(device_t &device, _Object object) { return downcast(device).m_read_1_cb.set_callback(object); } - template static devcb_base &set_write_1_callback(device_t &device, _Object object) { return downcast(device).m_write_1_cb.set_callback(object); } + template static devcb_base &set_next_pixel_0_callback(device_t &device, Object &&cb) { return downcast(device).m_next_pixel_0_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_time_til_next_event_0_callback(device_t &device, Object &&cb) { return downcast(device).m_time_til_next_event_0_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_vsync_changed_0_callback(device_t &device, Object &&cb) { return downcast(device).m_vsync_changed_0_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_hsync_changed_0_callback(device_t &device, Object &&cb) { return downcast(device).m_hsync_changed_0_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_read_0_callback(device_t &device, Object &&cb) { return downcast(device).m_read_0_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_write_0_callback(device_t &device, Object &&cb) { return downcast(device).m_write_0_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_next_pixel_1_callback(device_t &device, Object &&cb) { return downcast(device).m_next_pixel_1_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_time_til_next_event_1_callback(device_t &device, Object &&cb) { return downcast(device).m_time_til_next_event_1_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_vsync_changed_1_callback(device_t &device, Object &&cb) { return downcast(device).m_vsync_changed_1_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_hsync_changed_1_callback(device_t &device, Object &&cb) { return downcast(device).m_hsync_changed_1_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_read_1_callback(device_t &device, Object &&cb) { return downcast(device).m_read_1_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_write_1_callback(device_t &device, Object &&cb) { return downcast(device).m_write_1_cb.set_callback(std::forward(cb)); } DECLARE_READ8_MEMBER( read ); DECLARE_WRITE8_MEMBER( write ); @@ -123,7 +124,6 @@ private: }; -extern const device_type HUC6202; +DECLARE_DEVICE_TYPE(HUC6202, huc6202_device) - -#endif +#endif // MAME_VIDEO_HUC6202_H diff --git a/src/devices/video/huc6260.cpp b/src/devices/video/huc6260.cpp index 1676924dee2..3b00c9f7c7f 100644 --- a/src/devices/video/huc6260.cpp +++ b/src/devices/video/huc6260.cpp @@ -21,13 +21,18 @@ #include "screen.h" +//#define VERBOSE 1 +#include "logmacro.h" -#define LOG 0 #define HUC6260_HSYNC_LENGTH 237 -#define HUC6260_HSYNC_START ( HUC6260_WPF - HUC6260_HSYNC_LENGTH ) +#define HUC6260_HSYNC_START ( huc6260_device::WPF - HUC6260_HSYNC_LENGTH ) +constexpr unsigned huc6260_device::PALETTE_SIZE; +constexpr unsigned huc6260_device::WPF; +constexpr unsigned huc6260_device::LPF; + PALETTE_INIT_MEMBER(huc6260_device, huc6260) { int i; @@ -45,11 +50,11 @@ PALETTE_INIT_MEMBER(huc6260_device, huc6260) } -const device_type HUC6260 = device_creator; +DEFINE_DEVICE_TYPE(HUC6260, huc6260_device, "huc6260", "Hudson HuC6260 VCE") huc6260_device::huc6260_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, HUC6260, "HuC6260 VCE", tag, owner, clock, "huc6260", __FILE__), + : device_t(mconfig, HUC6260, tag, owner, clock), device_video_interface(mconfig, *this), m_next_pixel_data_cb(*this), m_time_til_next_event_cb(*this), @@ -83,7 +88,7 @@ void huc6260_device::device_timer(emu_timer &timer, device_timer_id id, int para bitmap_line[ h ] = m_palette[ m_pixel_data ]; m_pixel_clock = ( m_pixel_clock + 1 ) % m_pixels_per_clock; - h = ( h + 1 ) % HUC6260_WPF; + h = ( h + 1 ) % WPF; switch( h ) { @@ -92,7 +97,7 @@ void huc6260_device::device_timer(emu_timer &timer, device_timer_id id, int para // if ( v == 0 ) // { // /* Check if the screen should be resized */ -// m_height = HUC6260_LPF - ( m_blur ? 1 : 0 ); +// m_height = LPF - ( m_blur ? 1 : 0 ); // if ( m_height != video_screen_get_height( m_screen ) ) // { // rectangle visible_area; @@ -103,7 +108,7 @@ void huc6260_device::device_timer(emu_timer &timer, device_timer_id id, int para // visible_area.max_x = 64 + 1024 + 64 - 1; // visible_area.max_y = 18 + 242 - 1; // -// video_screen_configure( m_screen, HUC6260_WPF, m_height, &visible_area, HZ_TO_ATTOSECONDS( device->clock / ( HUC6260_WPF * m_height ) ) ); +// video_screen_configure( m_screen, WPF, m_height, &visible_area, HZ_TO_ATTOSECONDS( device->clock / ( WPF * m_height ) ) ); // } // } break; @@ -160,10 +165,10 @@ void huc6260_device::device_timer(emu_timer &timer, device_timer_id id, int para event_hpos = hpos + next_event_clocks; event_vpos = vpos; - while ( event_hpos > HUC6260_WPF ) + while ( event_hpos > WPF ) { event_vpos += 1; - event_hpos -= HUC6260_WPF; + event_hpos -= WPF; } if ( event_vpos < v || ( event_vpos == v && event_hpos <= h ) ) @@ -256,7 +261,7 @@ WRITE8_MEMBER( huc6260_device::write ) void huc6260_device::device_start() { m_timer = timer_alloc(); - m_bmp = std::make_unique(HUC6260_WPF, HUC6260_LPF ); + m_bmp = std::make_unique(WPF, LPF); /* Resolve callbacks */ m_hsync_changed_cb.resolve(); @@ -299,7 +304,7 @@ void huc6260_device::device_reset() } static MACHINE_CONFIG_FRAGMENT( huc6260 ) - MCFG_PALETTE_ADD("palette", HUC6260_PALETTE_SIZE ) + MCFG_PALETTE_ADD("palette", huc6260_device::PALETTE_SIZE) MCFG_PALETTE_INIT_OWNER(huc6260_device, huc6260) MACHINE_CONFIG_END diff --git a/src/devices/video/huc6260.h b/src/devices/video/huc6260.h index f90a7946e20..c560f3df0f1 100644 --- a/src/devices/video/huc6260.h +++ b/src/devices/video/huc6260.h @@ -6,17 +6,10 @@ **********************************************************************/ +#ifndef MAME_VIDEO_HUC6260_H +#define MAME_VIDEO_HUC6260_H -#ifndef __HUC6260_H_ -#define __HUC6260_H_ - - - -#define HUC6260_PALETTE_SIZE 1024 - -/* Screen timing stuff */ -#define HUC6260_WPF 1365 /* width of a line in frame including blanking areas */ -#define HUC6260_LPF 263 /* max number of lines in a single frame */ +#pragma once #define MCFG_HUC6260_NEXT_PIXEL_DATA_CB(_devcb) \ @@ -36,13 +29,20 @@ class huc6260_device : public device_t, public device_video_interface { public: + static constexpr unsigned PALETTE_SIZE = 1024; + + /* Screen timing stuff */ + static constexpr unsigned WPF = 1365; // width of a line in frame including blanking areas + static constexpr unsigned LPF = 263; // max number of lines in a single frame + + // construction/destruction huc6260_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_next_pixel_data_callback(device_t &device, _Object object) { return downcast(device).m_next_pixel_data_cb.set_callback(object); } - template static devcb_base &set_time_til_next_event_callback(device_t &device, _Object object) { return downcast(device).m_time_til_next_event_cb.set_callback(object); } - template static devcb_base &set_vsync_changed_callback(device_t &device, _Object object) { return downcast(device).m_vsync_changed_cb.set_callback(object); } - template static devcb_base &set_hsync_changed_callback(device_t &device, _Object object) { return downcast(device).m_hsync_changed_cb.set_callback(object); } + template static devcb_base &set_next_pixel_data_callback(device_t &device, Object &&cb) { return downcast(device).m_next_pixel_data_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_time_til_next_event_callback(device_t &device, Object &&cb) { return downcast(device).m_time_til_next_event_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_vsync_changed_callback(device_t &device, Object &&cb) { return downcast(device).m_vsync_changed_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_hsync_changed_callback(device_t &device, Object &&cb) { return downcast(device).m_hsync_changed_cb.set_callback(std::forward(cb)); } void video_update(bitmap_ind16 &bitmap, const rectangle &cliprect); DECLARE_READ8_MEMBER( read ); @@ -91,7 +91,6 @@ private: }; -extern const device_type HUC6260; - +DECLARE_DEVICE_TYPE(HUC6260, huc6260_device) -#endif +#endif // MAME_VIDEO_HUC6260_H diff --git a/src/devices/video/huc6261.cpp b/src/devices/video/huc6261.cpp index e9ca25d236d..9029b57d54f 100644 --- a/src/devices/video/huc6261.cpp +++ b/src/devices/video/huc6261.cpp @@ -18,18 +18,21 @@ #include "screen.h" +//#define VERBOSE 1 +#include "logmacro.h" -#define LOG 0 #define HUC6261_HSYNC_LENGTH 237 -#define HUC6261_HSYNC_START ( HUC6261_WPF - HUC6261_HSYNC_LENGTH ) +#define HUC6261_HSYNC_START ( huc6261_device::WPF - HUC6261_HSYNC_LENGTH ) +constexpr unsigned huc6261_device::WPF; +constexpr unsigned huc6261_device::LPF; -const device_type HUC6261 = device_creator; +DEFINE_DEVICE_TYPE(HUC6261, huc6261_device, "huc6261", "Hudson HuC6261 VCE") huc6261_device::huc6261_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, HUC6261, "HuC6261", tag, owner, clock, "huc6261", __FILE__), + : device_t(mconfig, HUC6261, tag, owner, clock), device_video_interface(mconfig, *this), m_huc6270_a_tag(nullptr), m_huc6270_b_tag(nullptr), m_huc6272_tag(nullptr), m_huc6270_a(nullptr), m_huc6270_b(nullptr), m_huc6272(nullptr), @@ -118,7 +121,7 @@ void huc6261_device::device_timer(emu_timer &timer, device_timer_id id, int para bitmap_line[ h ] = yuv2rgb( m_palette[ m_pixel_data_b ] ); m_pixel_clock = ( m_pixel_clock + 1 ) % m_pixels_per_clock; - h = ( h + 1 ) % HUC6261_WPF; + h = ( h + 1 ) % WPF; switch( h ) { @@ -128,7 +131,7 @@ void huc6261_device::device_timer(emu_timer &timer, device_timer_id id, int para // if ( v == 0 ) // { // /* Check if the screen should be resized */ -// m_height = HUC6261_LPF - ( m_blur ? 1 : 0 ); +// m_height = LPF - ( m_blur ? 1 : 0 ); // if ( m_height != video_screen_get_height( m_screen ) ) // { // rectangle visible_area; @@ -139,7 +142,7 @@ void huc6261_device::device_timer(emu_timer &timer, device_timer_id id, int para // visible_area.max_x = 64 + 1024 + 64 - 1; // visible_area.max_y = 18 + 242 - 1; // -// video_screen_configure( m_screen, HUC6261_WPF, m_height, &visible_area, HZ_TO_ATTOSECONDS( device->clock / ( HUC6261_WPF * m_height ) ) ); +// video_screen_configure( m_screen, WPF, m_height, &visible_area, HZ_TO_ATTOSECONDS( device->clock / ( WPF * m_height ) ) ); // } // } break; @@ -189,7 +192,7 @@ void huc6261_device::device_timer(emu_timer &timer, device_timer_id id, int para /* Ask our slave device for time until next possible event */ { - uint16_t next_event_clocks = HUC6261_WPF; //m_get_time_til_next_event( 0, 0xffff ); + uint16_t next_event_clocks = WPF; //m_get_time_til_next_event( 0, 0xffff ); int event_hpos, event_vpos; /* Adjust for pixel clocks per pixel */ @@ -200,10 +203,10 @@ void huc6261_device::device_timer(emu_timer &timer, device_timer_id id, int para event_hpos = hpos + next_event_clocks; event_vpos = vpos; - while ( event_hpos > HUC6261_WPF ) + while ( event_hpos > WPF ) { event_vpos += 1; - event_hpos -= HUC6261_WPF; + event_hpos -= WPF; } if ( event_vpos < v || ( event_vpos == v && event_hpos <= h ) ) @@ -420,7 +423,7 @@ void huc6261_device::device_start() m_huc6270_b = machine().device(m_huc6270_b_tag); m_huc6272 = machine().device(m_huc6272_tag); - m_bmp = std::make_unique(HUC6261_WPF, HUC6261_LPF ); + m_bmp = std::make_unique(WPF, LPF); /* We want to have valid devices */ assert( m_huc6270_a != nullptr ); diff --git a/src/devices/video/huc6261.h b/src/devices/video/huc6261.h index 1e49f35dd9c..195c1e05127 100644 --- a/src/devices/video/huc6261.h +++ b/src/devices/video/huc6261.h @@ -6,17 +6,14 @@ **********************************************************************/ +#ifndef MAME_VIDEO_HUC6261_H +#define MAME_VIDEO_HUC6261_H -#ifndef __HUC6261_H_ -#define __HUC6261_H_ +#pragma once #include "video/huc6270.h" #include "video/huc6272.h" -/* Screen timing stuff */ -#define HUC6261_WPF 1365 /* width of a line in frame including blanking areas */ -#define HUC6261_LPF 263 /* max number of lines in a single frame */ - #define MCFG_HUC6261_VDC1(_tag) \ huc6261_device::set_vdc1_tag(*device, _tag); @@ -32,6 +29,10 @@ class huc6261_device : public device_t, public device_video_interface { public: + // Screen timing stuff + static constexpr unsigned WPF = 1365; // width of a line in frame including blanking areas + static constexpr unsigned LPF = 263; // max number of lines in a single frame + // construction/destruction huc6261_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); @@ -77,12 +78,12 @@ private: emu_timer *m_timer; std::unique_ptr m_bmp; int32_t m_uv_lookup[65536][3]; + inline uint32_t yuv2rgb(uint32_t yuv); inline void apply_pal_offs(uint16_t *pix_data); }; -extern const device_type HUC6261; - +DECLARE_DEVICE_TYPE(HUC6261, huc6261_device) -#endif +#endif // MAME_VIDEO_HUC6261_H diff --git a/src/devices/video/huc6270.cpp b/src/devices/video/huc6270.cpp index bf367eaa4eb..9b71192b005 100644 --- a/src/devices/video/huc6270.cpp +++ b/src/devices/video/huc6270.cpp @@ -54,7 +54,9 @@ TODO #include "emu.h" #include "huc6270.h" -#define LOG 0 +//#define VERBOSE 1 +#include "logmacro.h" + enum { MAWR = 0x00, @@ -91,15 +93,15 @@ ALLOW_SAVE_TYPE(huc6270_device::huc6270_h_state); #define HUC6270_CR 0x01 /* Set when sprite #0 overlaps with another sprite */ -const device_type HUC6270 = device_creator; +DEFINE_DEVICE_TYPE(HUC6270, huc6270_device, "huc6270", "Hudson HuC6270 VDC") -const uint8_t huc6270_device::vram_increments[4] = { 1, 32, 64, 128 }; +constexpr uint8_t huc6270_device::vram_increments[4]; huc6270_device::huc6270_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, HUC6270, "HuC6270 VDC", tag, owner, clock, "huc6270", __FILE__), - m_vram_size(0), - m_irq_changed_cb(*this) + : device_t(mconfig, HUC6270, tag, owner, clock) + , m_vram_size(0) + , m_irq_changed_cb(*this) { } @@ -109,18 +111,15 @@ huc6270_device::huc6270_device(const machine_config &mconfig, const char *tag, d */ inline void huc6270_device::fetch_bat_tile_row() { - uint16_t bat_data, data1, data2, data3, data4, tile_palette; - int i; - - bat_data = m_vram[ m_bat_address & m_vram_mask ]; - tile_palette = ( bat_data >> 8 ) & 0xF0; - data1 = m_vram[ ( ( ( bat_data & 0x0FFF ) << 4 ) + m_bat_row + 0 ) & m_vram_mask ]; - data2 = ( data1 >> 7 ) & 0x1FE; - data3 = m_vram[ ( ( ( bat_data & 0x0FFF ) << 4 ) + m_bat_row + 8 ) & m_vram_mask ]; - data4 = ( data3 >> 5 ) & 0x7F8; + const uint16_t bat_data = m_vram[ m_bat_address & m_vram_mask ]; + const uint16_t tile_palette = ( bat_data >> 8 ) & 0xF0; + uint16_t data1 = m_vram[ ( ( ( bat_data & 0x0FFF ) << 4 ) + m_bat_row + 0 ) & m_vram_mask ]; + uint16_t data2 = ( data1 >> 7 ) & 0x1FE; + uint16_t data3 = m_vram[ ( ( ( bat_data & 0x0FFF ) << 4 ) + m_bat_row + 8 ) & m_vram_mask ]; + uint16_t data4 = ( data3 >> 5 ) & 0x7F8; data3 <<= 2; - for ( i = 7; i >= 0; i-- ) + for ( int i = 7; i >= 0; i-- ) { uint16_t c = ( data1 & 0x01 ) | ( data2 & 0x02 ) | ( data3 & 0x04 ) | ( data4 & 0x08 ); @@ -304,7 +303,7 @@ inline void huc6270_device::handle_vblank() { int i; - if (LOG) logerror("SATB transfer from %05x\n", m_dvssr << 1 ); + LOG("SATB transfer from %05x\n", m_dvssr << 1 ); for ( i = 0; i < 4 * 64; i += 4 ) { m_sat[i + 0] = m_vram[ ( m_dvssr + i + 0 ) & m_vram_mask ] & 0x03FF; @@ -364,7 +363,7 @@ inline void huc6270_device::next_horz_state() { case HUC6270_HDS: m_bxr_latched = m_bxr; -//if (LOG) printf("latched bxr vpos=%d, hpos=%d\n", video_screen_get_vpos(device->machine->first_screen()), video_screen_get_hpos(device->machine->first_screen())); + //LOG("latched bxr vpos=%d, hpos=%d\n", video_screen_get_vpos(device->machine->first_screen()), video_screen_get_hpos(device->machine->first_screen())); m_horz_state = HUC6270_HDW; m_horz_to_go = ( m_hdr & 0x7F ) + 1; { @@ -509,7 +508,7 @@ WRITE_LINE_MEMBER( huc6270_device::vsync_changed ) int desr_inc = ( m_dcr & 0x0008 ) ? -1 : +1; int sour_inc = ( m_dcr & 0x0004 ) ? -1 : +1; - if (LOG) logerror("doing dma sour = %04x, desr = %04x, lenr = %04x\n", m_sour, m_desr, m_lenr ); + LOG("doing dma sour = %04x, desr = %04x, lenr = %04x\n", m_sour, m_desr, m_lenr ); do { uint16_t data = m_vram[ m_sour & m_vram_mask ]; m_vram[ m_desr & m_vram_mask ] = data; @@ -608,7 +607,7 @@ READ8_MEMBER( huc6270_device::read ) WRITE8_MEMBER( huc6270_device::write ) { - if (LOG) logerror("%s: huc6270 write %02x <- %02x ", machine().describe_context(), offset, data); + LOG("%s: huc6270 write %02x <- %02x ", machine().describe_context(), offset, data); switch ( offset & 3 ) { @@ -644,18 +643,18 @@ WRITE8_MEMBER( huc6270_device::write ) // m_status |= HUC6270_RR; // m_irq_changed_cb( ASSERT_LINE ); // } -//if (LOG) printf("%04x: RCR (%03x) written at %d,%d\n", activecpu_get_pc(), huc6270->m_rcr, video_screen_get_vpos(device->machine->first_screen()), video_screen_get_hpos(device->machine->first_screen()) ); +//LOG("%04x: RCR (%03x) written at %d,%d\n", activecpu_get_pc(), huc6270->m_rcr, video_screen_get_vpos(device->machine->first_screen()), video_screen_get_hpos(device->machine->first_screen()) ); break; case BXR: /* background x-scroll register LSB */ m_bxr = ( m_bxr & 0x0300 ) | data; -//if (LOG) printf("*********************** BXR written %d at %d,%d\n", m_bxr, video_screen_get_vpos(device->machine->first_screen()), video_screen_get_hpos(device->machine->first_screen()) ); +//LOG("*********************** BXR written %d at %d,%d\n", m_bxr, video_screen_get_vpos(device->machine->first_screen()), video_screen_get_hpos(device->machine->first_screen()) ); break; case BYR: /* background y-scroll register LSB */ m_byr = ( m_byr & 0x0100 ) | data; m_byr_latched = m_byr; -//if (LOG) printf("******************** BYR written %d at %d,%d\n", huc6270->m_byr, video_screen_get_vpos(device->machine->first_screen()), video_screen_get_hpos(device->machine->first_screen()) ); +//LOG("******************** BYR written %d at %d,%d\n", huc6270->m_byr, video_screen_get_vpos(device->machine->first_screen()), video_screen_get_hpos(device->machine->first_screen()) ); break; case MWR: /* memory width register LSB */ @@ -795,7 +794,7 @@ WRITE8_MEMBER( huc6270_device::write ) } break; } - if (LOG) logerror("\n"); + LOG("\n"); } diff --git a/src/devices/video/huc6270.h b/src/devices/video/huc6270.h index a66dc703a34..8ecbbdf7c40 100644 --- a/src/devices/video/huc6270.h +++ b/src/devices/video/huc6270.h @@ -6,8 +6,10 @@ **********************************************************************/ -#ifndef __HUC6270_H_ -#define __HUC6270_H_ +#ifndef MAME_VIDEO_HUC6270_H +#define MAME_VIDEO_HUC6270_H + +#pragma once #define MCFG_HUC6270_VRAM_SIZE(_size) \ @@ -16,14 +18,14 @@ #define MCFG_HUC6270_IRQ_CHANGED_CB(_devcb) \ devcb = &huc6270_device::set_irq_changed_callback(*device, DEVCB_##_devcb); -class huc6270_device : public device_t +class huc6270_device : public device_t { public: // construction/destruction huc6270_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); static void set_vram_size(device_t &device, uint32_t vram_size) { downcast(device).m_vram_size = vram_size; } - template static devcb_base &set_irq_changed_callback(device_t &device, _Object object) { return downcast(device).m_irq_changed_cb.set_callback(object); } + template static devcb_base &set_irq_changed_callback(device_t &device, Object &&cb) { return downcast(device).m_irq_changed_cb.set_callback(std::forward(cb)); } DECLARE_READ8_MEMBER( read ); DECLARE_WRITE8_MEMBER( write ); @@ -52,7 +54,6 @@ protected: inline void next_horz_state(); private: - enum huc6270_v_state { HUC6270_VSW, HUC6270_VDS, @@ -130,11 +131,10 @@ private: std::unique_ptr m_vram; uint16_t m_vram_mask; - const static uint8_t vram_increments[4]; + static constexpr uint8_t vram_increments[4] = { 1, 32, 64, 128 }; }; -extern const device_type HUC6270; - +DECLARE_DEVICE_TYPE(HUC6270, huc6270_device) -#endif +#endif // MAME_VIDEO_HUC6270_H diff --git a/src/devices/video/huc6271.cpp b/src/devices/video/huc6271.cpp index b9379c9d6af..a17d85f9679 100644 --- a/src/devices/video/huc6271.cpp +++ b/src/devices/video/huc6271.cpp @@ -16,7 +16,7 @@ //************************************************************************** // device type definition -const device_type huc6271 = device_creator; +DEFINE_DEVICE_TYPE(HUC6271, huc6271_device, "huc6271", "Hudson HuC6271 \"Rainbow\"") //************************************************************************** @@ -32,9 +32,9 @@ static ADDRESS_MAP_START( data_map, AS_DATA, 32, huc6271_device ) ADDRESS_MAP_END huc6271_device::huc6271_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, huc6271, "HuC6271 \"Rainbow\"", tag, owner, clock, "huc6271", __FILE__), - device_memory_interface(mconfig, *this), - m_data_space_config("data", ENDIANNESS_LITTLE, 32, 32, 0, nullptr, *ADDRESS_MAP_NAME(data_map)) + : device_t(mconfig, HUC6271, tag, owner, clock) + , device_memory_interface(mconfig, *this) + , m_data_space_config("data", ENDIANNESS_LITTLE, 32, 32, 0, nullptr, *ADDRESS_MAP_NAME(data_map)) { } diff --git a/src/devices/video/huc6271.h b/src/devices/video/huc6271.h index 1197991160e..eba09821ff0 100644 --- a/src/devices/video/huc6271.h +++ b/src/devices/video/huc6271.h @@ -6,10 +6,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_VIDEO_HUC6271_H +#define MAME_VIDEO_HUC6271_H -#ifndef __HUC6271DEV_H__ -#define __HUC6271DEV_H__ +#pragma once @@ -17,8 +17,8 @@ // INTERFACE CONFIGURATION MACROS //************************************************************************** -#define MCFG_HUC6271_ADD(_tag,_freq) \ - MCFG_DEVICE_ADD(_tag, huc6271, _freq) +#define MCFG_HUC6271_ADD(tag, freq) \ + MCFG_DEVICE_ADD((tag), HUC6271, (freq)) //************************************************************************** // TYPE DEFINITIONS @@ -39,10 +39,9 @@ public: protected: // device-level overrides -// virtual void device_validity_check(validity_checker &valid) const; virtual void device_start() override; virtual void device_reset() override; - virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_DATA) const override; + virtual const address_space_config *memory_space_config(address_spacenum spacenum) const override; private: const address_space_config m_data_space_config; @@ -50,14 +49,6 @@ private: // device type definition -extern const device_type huc6271; - - - -//************************************************************************** -// GLOBAL VARIABLES -//************************************************************************** - - +DECLARE_DEVICE_TYPE(HUC6271, huc6271_device) -#endif +#endif // MAME_VIDEO_HUC6271_H diff --git a/src/devices/video/huc6272.cpp b/src/devices/video/huc6272.cpp index af38859df0e..cea9315df2d 100644 --- a/src/devices/video/huc6272.cpp +++ b/src/devices/video/huc6272.cpp @@ -20,7 +20,7 @@ //************************************************************************** // device type definition -const device_type huc6272 = device_creator; +DEFINE_DEVICE_TYPE(HUC6272, huc6272_device, "huc6272", "Hudson HuC6272 \"King\"") static ADDRESS_MAP_START( microprg_map, AS_PROGRAM, 16, huc6272_device ) AM_RANGE(0x00, 0x0f) AM_RAM AM_SHARE("microprg_ram") @@ -41,7 +41,7 @@ ADDRESS_MAP_END //------------------------------------------------- huc6272_device::huc6272_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, huc6272, "HuC6272 \"King\"", tag, owner, clock, "huc6272", __FILE__), + : device_t(mconfig, HUC6272, tag, owner, clock), device_memory_interface(mconfig, *this), m_program_space_config("microprg", ENDIANNESS_LITTLE, 16, 4, 0, nullptr, *ADDRESS_MAP_NAME(microprg_map)), m_data_space_config("kram", ENDIANNESS_LITTLE, 32, 21, 0, nullptr, *ADDRESS_MAP_NAME(kram_map)), diff --git a/src/devices/video/huc6272.h b/src/devices/video/huc6272.h index ed903eae786..51788d08a69 100644 --- a/src/devices/video/huc6272.h +++ b/src/devices/video/huc6272.h @@ -6,10 +6,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_VIDEO_HUC6272_H +#define MAME_VIDEO_HUC6272_H -#ifndef __huc6272DEV_H__ -#define __huc6272DEV_H__ +#pragma once #include "bus/scsi/scsi.h" #include "bus/scsi/scsicd.h" @@ -20,14 +20,14 @@ // INTERFACE CONFIGURATION MACROS //************************************************************************** -#define MCFG_HUC6272_ADD(_tag,_freq) \ - MCFG_DEVICE_ADD(_tag, huc6272, _freq) +#define MCFG_HUC6272_ADD(tag, freq) \ + MCFG_DEVICE_ADD((tag), HUC6272, (freq)) -#define MCFG_HUC6272_IRQ_CHANGED_CB(_devcb) \ - devcb = &huc6272_device::set_irq_changed_callback(*device, DEVCB_##_devcb); +#define MCFG_HUC6272_IRQ_CHANGED_CB(cb) \ + devcb = &huc6272_device::set_irq_changed_callback(*device, (DEVCB_##cb)); -#define MCFG_HUC6272_RAINBOW(_tag) \ - huc6272_device::set_rainbow_tag(*device, _tag); +#define MCFG_HUC6272_RAINBOW(tag) \ + huc6272_device::set_rainbow_tag(*device, (tag)); //************************************************************************** @@ -43,7 +43,7 @@ public: // construction/destruction huc6272_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_irq_changed_callback(device_t &device, _Object object) { return downcast(device).m_irq_changed_cb.set_callback(object); } + template static devcb_base &set_irq_changed_callback(device_t &device, Object &&cb) { return downcast(device).m_irq_changed_cb.set_callback(std::forward(cb)); } static void set_rainbow_tag(device_t &device, const char *tag) { downcast(device).m_huc6271_tag = tag; } // I/O operations @@ -97,7 +97,7 @@ private: required_shared_ptr m_microprg_ram; required_shared_ptr m_kram_page0; required_shared_ptr m_kram_page1; - required_device m_scsibus; + required_device m_scsibus; required_device m_scsi_data_in; required_device m_scsi_data_out; required_device m_scsi_ctrl_in; @@ -111,14 +111,6 @@ private: }; // device type definition -extern const device_type huc6272; - - - -//************************************************************************** -// GLOBAL VARIABLES -//************************************************************************** - - +DECLARE_DEVICE_TYPE(HUC6272, huc6272_device) -#endif +#endif // MAME_VIDEO_HUC6272_H diff --git a/src/devices/video/i8244.cpp b/src/devices/video/i8244.cpp index bf1de11dcbb..8ca44d172a2 100644 --- a/src/devices/video/i8244.cpp +++ b/src/devices/video/i8244.cpp @@ -17,8 +17,8 @@ // device type definition -const device_type I8244 = device_creator; -const device_type I8245 = device_creator; +DEFINE_DEVICE_TYPE(I8244, i8244_device, "i8244", "Intel 8244") +DEFINE_DEVICE_TYPE(I8245, i8245_device, "i8245", "Intel 8245") // Kevtris verified that the data below matches a dump @@ -105,20 +105,13 @@ static const uint8_t bgr2rgb[8] = //------------------------------------------------- i8244_device::i8244_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, I8244, "I8244", tag, owner, clock, "i8244", __FILE__) - , device_sound_interface(mconfig, *this) - , device_video_interface(mconfig, *this) - , m_irq_func(*this) - , m_postprocess_func(*this) - , m_start_vpos(START_Y) - , m_start_vblank(START_Y + SCREEN_HEIGHT) - , m_screen_lines(LINES) + : i8244_device(mconfig, I8244, tag, owner, clock, i8244_device::LINES) { } -i8244_device::i8244_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, int lines, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source) +i8244_device::i8244_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int lines) + : device_t(mconfig, type, tag, owner, clock) , device_sound_interface(mconfig, *this) , device_video_interface(mconfig, *this) , m_irq_func(*this) @@ -131,7 +124,7 @@ i8244_device::i8244_device(const machine_config &mconfig, device_type type, cons i8245_device::i8245_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : i8244_device(mconfig, I8245, "I8245", tag, owner, clock, i8245_device::LINES, "i8245", __FILE__) + : i8244_device(mconfig, I8245, tag, owner, clock, i8245_device::LINES) { } diff --git a/src/devices/video/i8244.h b/src/devices/video/i8244.h index c3e3dcfd5ee..a67652fd1e4 100644 --- a/src/devices/video/i8244.h +++ b/src/devices/video/i8244.h @@ -8,10 +8,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_VIDEO_I8244_H +#define MAME_VIDEO_I8244_H -#ifndef __I8244_H__ -#define __I8244_H__ +#pragma once @@ -38,38 +38,6 @@ TYPE DEFINITIONS ***************************************************************************/ -union vdc_t { - uint8_t reg[0x100]; - struct { - struct { - uint8_t y,x,color,res; - } sprites[4]; - struct { - uint8_t y,x,ptr,color; - } foreground[12]; - struct { - struct { - uint8_t y,x,ptr,color; - } single[4]; - } quad[4]; - uint8_t shape[4][8]; - uint8_t control; - uint8_t status; - uint8_t collision; - uint8_t color; - uint8_t y; - uint8_t x; - uint8_t res; - uint8_t shift1; - uint8_t shift2; - uint8_t shift3; - uint8_t sound; - uint8_t res2[5+0x10]; - uint8_t hgrid[2][0x10]; - uint8_t vgrid[0x10]; - } s; -}; - // ======================> i8244_device @@ -80,12 +48,11 @@ class i8244_device : public device_t public: // construction/destruction i8244_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - i8244_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, int lines, const char *shortname, const char *source); // static configuration helpers static void set_screen_tag(device_t &device, const char *screen_tag) { downcast(device).m_screen_tag = screen_tag; } - template static devcb_base &set_irq_cb(device_t &device, _Object object) { return downcast(device).m_irq_func.set_callback(object); } - template static devcb_base &set_postprocess_cb(device_t &device, _Object object) { return downcast(device).m_postprocess_func.set_callback(object); } + template static devcb_base &set_irq_cb(device_t &device, Object &&cb) { return downcast(device).m_irq_func.set_callback(std::forward(cb)); } + template static devcb_base &set_postprocess_cb(device_t &device, Object &&cb) { return downcast(device).m_postprocess_func.set_callback(std::forward(cb)); } DECLARE_READ8_MEMBER(read); DECLARE_WRITE8_MEMBER(write); @@ -98,15 +65,49 @@ public: inline bitmap_ind16 *get_bitmap() { return &m_tmp_bitmap; } // Global constants - static const int START_ACTIVE_SCAN = 42; - static const int BORDER_SIZE = 10; - static const int END_ACTIVE_SCAN = 42 + 10 + 320 + 10; - static const int START_Y = 1; - static const int SCREEN_HEIGHT = 243; - static const int LINE_CLOCKS = 455; - static const int LINES = 262; + static constexpr int START_ACTIVE_SCAN = 42; + static constexpr int BORDER_SIZE = 10; + static constexpr int END_ACTIVE_SCAN = 42 + 10 + 320 + 10; + static constexpr int START_Y = 1; + static constexpr int SCREEN_HEIGHT = 243; + static constexpr int LINE_CLOCKS = 455; + static constexpr int LINES = 262; protected: + union vdc_t { + uint8_t reg[0x100]; + struct { + struct { + uint8_t y,x,color,res; + } sprites[4]; + struct { + uint8_t y,x,ptr,color; + } foreground[12]; + struct { + struct { + uint8_t y,x,ptr,color; + } single[4]; + } quad[4]; + uint8_t shape[4][8]; + uint8_t control; + uint8_t status; + uint8_t collision; + uint8_t color; + uint8_t y; + uint8_t x; + uint8_t res; + uint8_t shift1; + uint8_t shift2; + uint8_t shift3; + uint8_t sound; + uint8_t res2[5+0x10]; + uint8_t hgrid[2][0x10]; + uint8_t vgrid[0x10]; + } s; + }; + + i8244_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int lines); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -121,11 +122,11 @@ protected: offs_t fix_register_mirrors( offs_t offset ); // Local constants - static const uint8_t VDC_CONTROL_REG_STROBE_XY = 0x02; + static constexpr uint8_t VDC_CONTROL_REG_STROBE_XY = 0x02; /* timers */ - static const device_timer_id TIMER_LINE = 0; - static const device_timer_id TIMER_HBLANK = 1; + static constexpr device_timer_id TIMER_LINE = 0; + static constexpr device_timer_id TIMER_HBLANK = 1; // callbacks devcb_write_line m_irq_func; @@ -156,13 +157,12 @@ public: // construction/destruction i8245_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - static const int LINES = 312; + static constexpr int LINES = 312; }; // device type definition -extern const device_type I8244; -extern const device_type I8245; - +DECLARE_DEVICE_TYPE(I8244, i8244_device) +DECLARE_DEVICE_TYPE(I8245, i8245_device) -#endif /* __I8244_H__ */ +#endif // MAME_VIDEO_I8244_H diff --git a/src/devices/video/i82730.cpp b/src/devices/video/i82730.cpp index 296dc0ef2d4..1137ff6b0df 100644 --- a/src/devices/video/i82730.cpp +++ b/src/devices/video/i82730.cpp @@ -27,9 +27,9 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type I82730 = device_creator; +DEFINE_DEVICE_TYPE(I82730, i82730_device, "i82730", "Intel 82730") -const char *i82730_device::m_command_names[] = +const char *const i82730_device::s_command_names[] = { /* 00 */ "NOP", /* 01 */ "START DISPLAY", @@ -55,7 +55,7 @@ const char *i82730_device::m_command_names[] = //------------------------------------------------- i82730_device::i82730_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, I82730, "I82730", tag, owner, clock, "i82730", __FILE__), + device_t(mconfig, I82730, tag, owner, clock), device_video_interface(mconfig, *this), m_sint_handler(*this), m_cpu_tag(nullptr), m_program(nullptr), @@ -250,8 +250,8 @@ void i82730_device::execute_command() uint8_t command = read_byte(m_cbp + 1); uint16_t tmp; - if (VERBOSE_COMMANDS && command < ARRAY_LENGTH(m_command_names)) - logerror("%s('%s'): executing command: %s [cbp = %08x]\n", shortname(), basetag(), m_command_names[command], m_cbp); + if (VERBOSE_COMMANDS && command < ARRAY_LENGTH(s_command_names)) + logerror("%s('%s'): executing command: %s [cbp = %08x]\n", shortname(), basetag(), s_command_names[command], m_cbp); tmp = read_word(m_cbp + 2); m_list_switch = BIT(tmp, 6); @@ -303,7 +303,7 @@ void i82730_device::execute_command() // LPEN ENABLE case 0x07: - fatalerror("%s('%s'): Unimplemented command %s\n", shortname(), basetag(), m_command_names[command]); + fatalerror("%s('%s'): Unimplemented command %s\n", shortname(), basetag(), s_command_names[command]); break; // READ STATUS @@ -314,17 +314,17 @@ void i82730_device::execute_command() // LD CUR POS case 0x09: - fatalerror("%s('%s'): Unimplemented command %s\n", shortname(), basetag(), m_command_names[command]); + fatalerror("%s('%s'): Unimplemented command %s\n", shortname(), basetag(), s_command_names[command]); break; // SELF TEST case 0x0a: - fatalerror("%s('%s'): Unimplemented command %s\n", shortname(), basetag(), m_command_names[command]); + fatalerror("%s('%s'): Unimplemented command %s\n", shortname(), basetag(), s_command_names[command]); break; // TEST ROW BUFFER case 0x0b: - fatalerror("%s('%s'): Unimplemented command %s\n", shortname(), basetag(), m_command_names[command]); + fatalerror("%s('%s'): Unimplemented command %s\n", shortname(), basetag(), s_command_names[command]); break; default: diff --git a/src/devices/video/i82730.h b/src/devices/video/i82730.h index 2e459803d93..f9de659e825 100644 --- a/src/devices/video/i82730.h +++ b/src/devices/video/i82730.h @@ -8,10 +8,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_VIDEO_I82730_H +#define MAME_VIDEO_I82730_H -#ifndef __I82730_H__ -#define __I82730_H__ +#pragma once @@ -27,15 +27,13 @@ devcb = &i82730_device::set_sint_handler(*device, DEVCB_##_devcb); #define MCFG_I82730_UPDATE_ROW_CB(_class, _method) \ - i82730_device::set_update_row_callback(*device, i82730_update_row_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); + i82730_device::set_update_row_callback(*device, i82730_device::update_row_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); //************************************************************************** // TYPE DEFINITIONS //************************************************************************** -typedef device_delegate i82730_update_row_delegate; - #define I82730_UPDATE_ROW(name) \ void name(bitmap_rgb32 &bitmap, uint16_t *data, uint8_t lc, uint16_t y, int x_count) @@ -45,16 +43,18 @@ typedef device_delegate update_row_delegate; + // construction/destruction i82730_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // callbacks - template static devcb_base &set_sint_handler(device_t &device, _Object object) - { return downcast(device).m_sint_handler.set_callback(object); } + template static devcb_base &set_sint_handler(device_t &device, Object &&cb) + { return downcast(device).m_sint_handler.set_callback(std::forward(cb)); } // inline configuration static void set_cpu_tag(device_t &device, device_t *owner, const char *tag); - static void set_update_row_callback(device_t &device, i82730_update_row_delegate callback) { downcast(device).m_update_row_cb = callback; } + static void set_update_row_callback(device_t &device, update_row_delegate &&cb) { downcast(device).m_update_row_cb = std::move(cb); } uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); @@ -80,7 +80,7 @@ private: VDIP = 0x100 // virtual display in progress }; - static const char* m_command_names[]; + static const char *const s_command_names[]; bool sysbus_16bit() { return BIT(m_sysbus, 0); } @@ -97,7 +97,7 @@ private: TIMER_CALLBACK_MEMBER(row_update); devcb_write_line m_sint_handler; - i82730_update_row_delegate m_update_row_cb; + update_row_delegate m_update_row_cb; const char *m_cpu_tag; address_space *m_program; @@ -151,6 +151,6 @@ private: }; // device type definition -extern const device_type I82730; +DECLARE_DEVICE_TYPE(I82730, i82730_device) -#endif // __I82730_H__ +#endif // MAME_VIDEO_I82730_H diff --git a/src/devices/video/i8275.cpp b/src/devices/video/i8275.cpp index b2f7cfc8daf..99081d83d59 100644 --- a/src/devices/video/i8275.cpp +++ b/src/devices/video/i8275.cpp @@ -19,16 +19,17 @@ #include "screen.h" +//#define VERBOSE 1 +#include "logmacro.h" + //************************************************************************** // MACROS / CONSTANTS //************************************************************************** -#define LOG 0 - -const int DMA_BURST_SPACING[] = { 0, 7, 15, 23, 31, 39, 47, 55 }; +static const int DMA_BURST_SPACING[] = { 0, 7, 15, 23, 31, 39, 47, 55 }; #define DOUBLE_SPACED_ROWS \ @@ -82,7 +83,7 @@ const int i8275_device::character_attribute[3][16] = //************************************************************************** // device type definition -const device_type I8275 = device_creator; +DEFINE_DEVICE_TYPE(I8275, i8275_device, "i8275x", "Intel 8275 CRTC") @@ -95,7 +96,7 @@ const device_type I8275 = device_creator; //------------------------------------------------- i8275_device::i8275_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, I8275, "I8275 CRTC", tag, owner, clock, "i8275x", __FILE__), + device_t(mconfig, I8275, tag, owner, clock), device_video_interface(mconfig, *this), m_write_irq(*this), m_write_drq(*this), @@ -204,24 +205,24 @@ void i8275_device::device_timer(emu_timer &timer, device_timer_id id, int param, switch (id) { case TIMER_HRTC_ON: - //if (LOG) logerror("I8275 '%s' y %u x %u HRTC 1\n", tag(), y, x); + //LOG("I8275 y %u x %u HRTC 1\n", y, x); m_write_hrtc(1); break; case TIMER_DRQ_ON: - //if (LOG) logerror("I8275 '%s' y %u x %u DRQ 1\n", tag(), y, x); + //LOG("I8275 y %u x %u DRQ 1\n", y, x); m_write_drq(1); break; case TIMER_SCANLINE: if (!(m_status & ST_VE)) break; - //if (LOG) logerror("I8275 '%s' y %u x %u HRTC 0\n", tag(), y, x); + //LOG("I8275 y %u x %u HRTC 0\n", y, x); m_write_hrtc(0); if (m_scanline == 0) { - //if (LOG) logerror("I8275 '%s' y %u x %u VRTC 0\n", tag(), y, x); + //LOG("I8275 y %u x %u VRTC 0\n", y, x); m_write_vrtc(0); } @@ -234,7 +235,7 @@ void i8275_device::device_timer(emu_timer &timer, device_timer_id id, int param, m_status |= ST_DU; m_du = true; - //if (LOG) logerror("I8275 '%s' y %u x %u DMA Underrun\n", tag(), y, x); + //LOG("I8275 y %u x %u DMA Underrun\n", y, x); m_write_drq(0); } @@ -259,7 +260,7 @@ void i8275_device::device_timer(emu_timer &timer, device_timer_id id, int param, { if (m_status & ST_IE) { - //if (LOG) logerror("I8275 '%s' y %u x %u IRQ 1\n", tag(), y, x); + //LOG("I8275 y %u x %u IRQ 1\n", y, x); m_status |= ST_IR; m_write_irq(ASSERT_LINE); } @@ -267,7 +268,7 @@ void i8275_device::device_timer(emu_timer &timer, device_timer_id id, int param, if (m_scanline == m_vrtc_scanline) { - //if (LOG) logerror("I8275 '%s' y %u x %u VRTC 1\n", tag(), y, x); + //LOG("I8275 y %u x %u VRTC 1\n", y, x); m_write_vrtc(1); // reset field attributes @@ -459,7 +460,7 @@ READ8_MEMBER( i8275_device::read ) if (m_status & ST_IR) { - //if (LOG) logerror("I8275 '%s' IRQ 0\n", tag()); + //LOG("I8275 IRQ 0\n"); m_write_irq(CLEAR_LINE); } @@ -488,15 +489,15 @@ WRITE8_MEMBER( i8275_device::write ) { if (offset & 0x01) { - if (LOG) logerror("I8275 '%s' Command %02x\n", tag(), data); + LOG("I8275 Command %02x\n", data); switch (data >> 5) { case CMD_RESET: - if (LOG) logerror("I8275 '%s' Reset\n", tag()); + LOG("I8275 Reset\n"); m_status &= ~ST_IE; - if (LOG) logerror("I8275 '%s' IRQ 0\n", tag()); + LOG("I8275 IRQ 0\n"); m_write_irq(CLEAR_LINE); m_write_drq(0); @@ -505,49 +506,47 @@ WRITE8_MEMBER( i8275_device::write ) break; case CMD_START_DISPLAY: - { - m_param[REG_DMA] = data; - if (LOG) logerror("I8275 '%s' Start Display %u %u\n", tag(), DMA_BURST_COUNT, DMA_BURST_SPACE); - m_status |= (ST_IE | ST_VE); - } + m_param[REG_DMA] = data; + LOG("I8275 Start Display %u %u\n", DMA_BURST_COUNT, DMA_BURST_SPACE); + m_status |= (ST_IE | ST_VE); break; case CMD_STOP_DISPLAY: - if (LOG) logerror("I8275 '%s' Stop Display\n", tag()); + LOG("I8275 Stop Display\n"); m_status &= ~ST_VE; break; case CMD_READ_LIGHT_PEN: - if (LOG) logerror("I8275 '%s' Read Light Pen\n", tag()); + LOG("I8275 Read Light Pen\n"); m_param_idx = REG_LPEN_COL; m_param_end = REG_LPEN_ROW; break; case CMD_LOAD_CURSOR: - if (LOG) logerror("I8275 '%s' Load Cursor\n", tag()); + LOG("I8275 Load Cursor\n"); m_param_idx = REG_CUR_COL; m_param_end = REG_CUR_ROW; break; case CMD_ENABLE_INTERRUPT: - if (LOG) logerror("I8275 '%s' Enable Interrupt\n", tag()); + LOG("I8275 Enable Interrupt\n"); m_status |= ST_IE; break; case CMD_DISABLE_INTERRUPT: - if (LOG) logerror("I8275 '%s' Disable Interrupt\n", tag()); + LOG("I8275 Disable Interrupt\n"); m_status &= ~ST_IE; break; case CMD_PRESET_COUNTERS: - if (LOG) logerror("I8275 '%s' Preset Counters\n", tag()); + LOG("I8275 Preset Counters\n"); m_scanline = 0; break; } } else { - if (LOG) logerror("I8275 '%s' Parameter %02x\n", tag(), data); + LOG("I8275 Parameter %02x\n", data); m_param[m_param_idx] = data; @@ -567,7 +566,7 @@ WRITE8_MEMBER( i8275_device::write ) WRITE8_MEMBER( i8275_device::dack_w ) { - //if (LOG) logerror("I8275 '%s' y %u x %u DACK %04x:%02x %u\n", tag(), m_screen->vpos(), m_screen->hpos(), offset, data, m_buffer_idx); + //LOG("I8275 y %u x %u DACK %04x:%02x %u\n", m_screen->vpos(), m_screen->hpos(), offset, data, m_buffer_idx); m_write_drq(0); @@ -673,7 +672,7 @@ void i8275_device::recompute_parameters() int max_visible_x = (CHARACTERS_PER_ROW * m_hpixels_per_column) - 1; int max_visible_y = (CHARACTER_ROWS_PER_FRAME * SCANLINES_PER_ROW) - 1; - if (LOG) logerror("width %u height %u max_x %u max_y %u refresh %f\n", horiz_pix_total, vert_pix_total, max_visible_x, max_visible_y, 1 / ATTOSECONDS_TO_DOUBLE(refresh)); + LOG("width %u height %u max_x %u max_y %u refresh %f\n", horiz_pix_total, vert_pix_total, max_visible_x, max_visible_y, 1 / ATTOSECONDS_TO_DOUBLE(refresh)); rectangle visarea; visarea.set(0, max_visible_x, 0, max_visible_y); @@ -686,7 +685,7 @@ void i8275_device::recompute_parameters() m_vrtc_scanline = CHARACTER_ROWS_PER_FRAME * SCANLINES_PER_ROW; m_vrtc_drq_scanline = vert_pix_total - SCANLINES_PER_ROW; - if (LOG) logerror("irq_y %u vrtc_y %u drq_y %u\n", m_irq_scanline, m_vrtc_scanline, m_vrtc_drq_scanline); + LOG("irq_y %u vrtc_y %u drq_y %u\n", m_irq_scanline, m_vrtc_scanline, m_vrtc_drq_scanline); m_scanline_timer->adjust(m_screen->time_until_pos(0, 0), 0, m_screen->scan_period()); diff --git a/src/devices/video/i8275.h b/src/devices/video/i8275.h index affc47e1f64..edb2e43e855 100644 --- a/src/devices/video/i8275.h +++ b/src/devices/video/i8275.h @@ -29,10 +29,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_VIDEO_I8275_H +#define MAME_VIDEO_I8275_H -#ifndef __I8275x__ -#define __I8275x__ +#pragma once @@ -48,7 +48,7 @@ i8275_device::static_set_character_width(*device, _value); #define MCFG_I8275_DRAW_CHARACTER_CALLBACK_OWNER(_class, _method) \ - i8275_device::static_set_display_callback(*device, i8275_draw_character_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); + i8275_device::static_set_display_callback(*device, i8275_device::draw_character_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); #define MCFG_I8275_DRQ_CALLBACK(_write) \ devcb = &i8275_device::set_drq_wr_callback(*device, DEVCB_##_write); @@ -68,8 +68,6 @@ // TYPE DEFINITIONS //************************************************************************** -typedef device_delegate i8275_draw_character_delegate; - // ======================> i8275_device @@ -77,16 +75,18 @@ class i8275_device : public device_t, public device_video_interface { public: + typedef device_delegate draw_character_delegate; + // construction/destruction i8275_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); static void static_set_character_width(device_t &device, int value) { downcast(device).m_hpixels_per_column = value; } - static void static_set_display_callback(device_t &device, i8275_draw_character_delegate callback) { downcast(device).m_display_cb = callback; } + static void static_set_display_callback(device_t &device, draw_character_delegate &&cb) { downcast(device).m_display_cb = std::move(cb); } - template static devcb_base &set_drq_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_drq.set_callback(object); } - template static devcb_base &set_irq_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_irq.set_callback(object); } - template static devcb_base &set_hrtc_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_hrtc.set_callback(object); } - template static devcb_base &set_vrtc_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_vrtc.set_callback(object); } + template static devcb_base &set_drq_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_drq.set_callback(std::forward(cb)); } + template static devcb_base &set_irq_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_irq.set_callback(std::forward(cb)); } + template static devcb_base &set_hrtc_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_hrtc.set_callback(std::forward(cb)); } + template static devcb_base &set_vrtc_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_vrtc.set_callback(std::forward(cb)); } DECLARE_READ8_MEMBER( read ); DECLARE_WRITE8_MEMBER( write ); @@ -183,7 +183,7 @@ protected: devcb_write_line m_write_hrtc; devcb_write_line m_write_vrtc; - i8275_draw_character_delegate m_display_cb; + draw_character_delegate m_display_cb; int m_hpixels_per_column; bitmap_rgb32 m_bitmap; @@ -228,8 +228,6 @@ protected: // device type definition -extern const device_type I8275; - - +DECLARE_DEVICE_TYPE(I8275, i8275_device) -#endif +#endif // MAME_VIDEO_I8275_H diff --git a/src/devices/video/jangou_blitter.cpp b/src/devices/video/jangou_blitter.cpp index d7d446fb813..b5e75a44eff 100644 --- a/src/devices/video/jangou_blitter.cpp +++ b/src/devices/video/jangou_blitter.cpp @@ -23,7 +23,7 @@ //************************************************************************** // device type definition -const device_type JANGOU_BLITTER = device_creator; +DEFINE_DEVICE_TYPE(JANGOU_BLITTER, jangou_blitter_device, "jangou_blitter", "Jangou Blitter Custom Chip") //************************************************************************** @@ -35,7 +35,7 @@ const device_type JANGOU_BLITTER = device_creator; //------------------------------------------------- jangou_blitter_device::jangou_blitter_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, JANGOU_BLITTER, "Jangou Blitter Custom Chip", tag, owner, clock, "jangou_blitter", __FILE__) + : device_t(mconfig, JANGOU_BLITTER, tag, owner, clock) { } diff --git a/src/devices/video/jangou_blitter.h b/src/devices/video/jangou_blitter.h index 031a0cc7ebe..5160f42850e 100644 --- a/src/devices/video/jangou_blitter.h +++ b/src/devices/video/jangou_blitter.h @@ -1,16 +1,11 @@ // license:BSD-3-Clause // copyright-holders:Angelo Salese -/*************************************************************************** -Template for skeleton device - -***************************************************************************/ +#ifndef MAME_VIDEO_JANGOU_BLITTER_H +#define MAME_VIDEO_JANGOU_BLITTER_H #pragma once -#ifndef __JANGOU_BLITTERDEV_H__ -#define __JANGOU_BLITTERDEV_H__ - //************************************************************************** @@ -39,7 +34,7 @@ public: DECLARE_WRITE8_MEMBER( bltflip_w ); DECLARE_READ_LINE_MEMBER( status_r ); - uint8_t m_blit_buffer[256 * 256]; + const uint8_t &blit_buffer(unsigned y, unsigned x) const { return m_blit_buffer[(256 * y) + x]; } protected: // device-level overrides @@ -47,6 +42,8 @@ protected: virtual void device_reset() override; private: + uint8_t m_blit_buffer[256 * 256]; + void plot_gfx_pixel( uint8_t pix, int x, int y ); uint8_t gfx_nibble( uint32_t niboffset ); uint8_t m_pen_data[0x10]; @@ -58,14 +55,6 @@ private: // device type definition -extern const device_type JANGOU_BLITTER; - - - -//************************************************************************** -// GLOBAL VARIABLES -//************************************************************************** - - +DECLARE_DEVICE_TYPE(JANGOU_BLITTER, jangou_blitter_device) -#endif +#endif // MAME_VIDEO_JANGOU_BLITTER_H diff --git a/src/devices/video/m50458.cpp b/src/devices/video/m50458.cpp index b8fa3984599..1b34b718c8e 100644 --- a/src/devices/video/m50458.cpp +++ b/src/devices/video/m50458.cpp @@ -27,7 +27,7 @@ //************************************************************************** // device type definition -const device_type M50458 = device_creator; +DEFINE_DEVICE_TYPE(M50458, m50458_device, "m50458", "Mitsubishi M50458 OSD") static ADDRESS_MAP_START( m50458_vram, AS_0, 16, m50458_device ) AM_RANGE(0x0000, 0x023f) AM_RAM // vram @@ -174,10 +174,10 @@ inline void m50458_device::write_word(offs_t address, uint16_t data) //------------------------------------------------- m50458_device::m50458_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, M50458, "M50458 OSD", tag, owner, clock, "m50458", __FILE__), - device_memory_interface(mconfig, *this), - device_video_interface(mconfig, *this), - m_space_config("videoram", ENDIANNESS_LITTLE, 16, 16, 0, nullptr, *ADDRESS_MAP_NAME(m50458_vram)) + : device_t(mconfig, M50458, tag, owner, clock) + , device_memory_interface(mconfig, *this) + , device_video_interface(mconfig, *this) + , m_space_config("videoram", ENDIANNESS_LITTLE, 16, 16, 0, nullptr, *ADDRESS_MAP_NAME(m50458_vram)) { } diff --git a/src/devices/video/m50458.h b/src/devices/video/m50458.h index 15c8e03ff00..d4eebc4e9a8 100644 --- a/src/devices/video/m50458.h +++ b/src/devices/video/m50458.h @@ -6,10 +6,10 @@ Mitsubishi M50458 OSD chip ***************************************************************************/ -#pragma once +#ifndef MAME_VIDEO_M50458_H +#define MAME_VIDEO_M50458_H -#ifndef __M50458DEV_H__ -#define __M50458DEV_H__ +#pragma once @@ -26,12 +26,6 @@ Mitsubishi M50458 OSD chip // TYPE DEFINITIONS //************************************************************************** -enum m50458_state_t -{ - OSD_SET_ADDRESS = 0, - OSD_SET_DATA -}; - // ======================> m50458_device class m50458_device : public device_t, @@ -59,11 +53,17 @@ public: virtual const tiny_rom_entry *device_rom_region() const override; protected: + enum m50458_state_t + { + OSD_SET_ADDRESS = 0, + OSD_SET_DATA + }; + // device-level overrides virtual void device_validity_check(validity_checker &valid) const override; virtual void device_start() override; virtual void device_reset() override; - virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_0) const override; + virtual const address_space_config *memory_space_config(address_spacenum spacenum) const override; int m_latch; int m_reset_line; @@ -92,14 +92,6 @@ private: // device type definition -extern const device_type M50458; - - - -//************************************************************************** -// GLOBAL VARIABLES -//************************************************************************** - - +DECLARE_DEVICE_TYPE(M50458, m50458_device) -#endif +#endif // MAME_VIDEO_M50458_H diff --git a/src/devices/video/mb90082.cpp b/src/devices/video/mb90082.cpp index d962d701fa4..ef668a91732 100644 --- a/src/devices/video/mb90082.cpp +++ b/src/devices/video/mb90082.cpp @@ -21,7 +21,7 @@ //************************************************************************** // device type definition -const device_type MB90082 = device_creator; +DEFINE_DEVICE_TYPE(MB90082, mb90082_device, "mb90082", "Fujitsu MB90082 OSD") static ADDRESS_MAP_START( mb90082_vram, AS_0, 16, mb90082_device ) AM_RANGE(0x0000, 0x023f) AM_RAM // main screen vram @@ -86,9 +86,9 @@ inline void mb90082_device::write_word(offs_t address, uint16_t data) //------------------------------------------------- mb90082_device::mb90082_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MB90082, "MB90082 OSD", tag, owner, clock, "mb90082", __FILE__), - device_memory_interface(mconfig, *this), - m_space_config("videoram", ENDIANNESS_LITTLE, 16, 16, 0, nullptr, *ADDRESS_MAP_NAME(mb90082_vram)) + : device_t(mconfig, MB90082, tag, owner, clock) + , device_memory_interface(mconfig, *this) + , m_space_config("videoram", ENDIANNESS_LITTLE, 16, 16, 0, nullptr, *ADDRESS_MAP_NAME(mb90082_vram)) { } diff --git a/src/devices/video/mb90082.h b/src/devices/video/mb90082.h index 493c8fc0079..9014b14a79e 100644 --- a/src/devices/video/mb90082.h +++ b/src/devices/video/mb90082.h @@ -6,10 +6,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_VIDEO_MB90082DEV_H +#define MAME_VIDEO_MB90082DEV_H -#ifndef __MB90082DEV_H__ -#define __MB90082DEV_H__ +#pragma once @@ -24,12 +24,6 @@ // TYPE DEFINITIONS //************************************************************************** -enum -{ - OSD_COMMAND = 0, - OSD_DATA -}; - // ======================> mb90082_device @@ -52,9 +46,15 @@ protected: virtual void device_validity_check(validity_checker &valid) const override; virtual void device_start() override; virtual void device_reset() override; - virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_0) const override; + virtual const address_space_config *memory_space_config(address_spacenum spacenum) const override; private: + enum + { + OSD_COMMAND = 0, + OSD_DATA + }; + uint8_t m_cmd_ff; uint8_t m_cmd,m_cmd_param; uint8_t m_reset_line; @@ -72,14 +72,6 @@ private: // device type definition -extern const device_type MB90082; - - - -//************************************************************************** -// GLOBAL VARIABLES -//************************************************************************** - - +DECLARE_DEVICE_TYPE(MB90082, mb90082_device) -#endif +#endif // MAME_VIDEO_MB90082DEV_H diff --git a/src/devices/video/mb_vcu.cpp b/src/devices/video/mb_vcu.cpp index 39ad396f185..d149d5880a0 100644 --- a/src/devices/video/mb_vcu.cpp +++ b/src/devices/video/mb_vcu.cpp @@ -30,7 +30,7 @@ TODO: //************************************************************************** // device type definition -const device_type MB_VCU = device_creator; +DEFINE_DEVICE_TYPE(MB_VCU, mb_vcu_device, "mb_vcu", "Mazer Blazer custom VCU") //------------------------------------------------- // static_set_palette_tag: Set the tag of the @@ -151,7 +151,7 @@ inline void mb_vcu_device::write_io(offs_t address, uint8_t data) //------------------------------------------------- mb_vcu_device::mb_vcu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MB_VCU, "Mazer Blazer custom VCU", tag, owner, clock, "mb_vcu", __FILE__) + : device_t(mconfig, MB_VCU, tag, owner, clock) , device_memory_interface(mconfig, *this) , device_video_interface(mconfig, *this) , m_videoram_space_config("videoram", ENDIANNESS_LITTLE, 8, 19, 0, nullptr, *ADDRESS_MAP_NAME(mb_vcu_vram)) diff --git a/src/devices/video/mb_vcu.h b/src/devices/video/mb_vcu.h index 8c15ded23dc..4171f14b03b 100644 --- a/src/devices/video/mb_vcu.h +++ b/src/devices/video/mb_vcu.h @@ -1,9 +1,9 @@ // license:LGPL-2.1+ // copyright-holders:Angelo Salese -#pragma once +#ifndef MAME_VIDEO_MB_VCU_H +#define MAME_VIDEO_MB_VCU_H -#ifndef __MB_VCUDEV_H__ -#define __MB_VCUDEV_H__ +#pragma once //************************************************************************** @@ -45,7 +45,8 @@ protected: virtual void device_validity_check(validity_checker &valid) const override; virtual void device_start() override; virtual void device_reset() override; - virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_0) const override; + virtual const address_space_config *memory_space_config(address_spacenum spacenum) const override; + private: inline uint8_t read_byte(offs_t address); inline void write_byte(offs_t address, uint8_t data); @@ -76,7 +77,7 @@ private: // device type definition -extern const device_type MB_VCU; +DECLARE_DEVICE_TYPE(MB_VCU, mb_vcu_device) //************************************************************************** @@ -89,4 +90,4 @@ extern const device_type MB_VCU; #define MCFG_MB_VCU_PALETTE(_palette_tag) \ mb_vcu_device::static_set_palette_tag(*device, "^" _palette_tag); -#endif +#endif // MAME_VIDEO_MB_VCU_H diff --git a/src/devices/video/mc6845.cpp b/src/devices/video/mc6845.cpp index b5804a94f4c..4bf1c757c2e 100644 --- a/src/devices/video/mc6845.cpp +++ b/src/devices/video/mc6845.cpp @@ -43,23 +43,23 @@ #include "screen.h" +//#define VERBOSE 1 +#include "logmacro.h" -#define LOG (0) - -const device_type MC6845 = device_creator; -const device_type MC6845_1 = device_creator; -const device_type R6545_1 = device_creator; -const device_type C6545_1 = device_creator; -const device_type H46505 = device_creator; -const device_type HD6845 = device_creator; -const device_type SY6545_1 = device_creator; -const device_type SY6845E = device_creator; -const device_type HD6345 = device_creator; -const device_type AMS40041 = device_creator; -const device_type AMS40489 = device_creator; -const device_type MOS8563 = device_creator; -const device_type MOS8568 = device_creator; +DEFINE_DEVICE_TYPE(MC6845, mc6845_device, "mc6845", "Motorola MC6845 CRTC") +DEFINE_DEVICE_TYPE(MC6845_1, mc6845_1_device, "mc6845_1", "Motorola MC6845-1 CRTC") +DEFINE_DEVICE_TYPE(R6545_1, r6545_1_device, "r6545_1", "Rockwell R6545-1 CRTC") +DEFINE_DEVICE_TYPE(C6545_1, c6545_1_device, "c6545_1", "C6545-1 CRTC") +DEFINE_DEVICE_TYPE(H46505, h46505_device, "h46505", "Hitachi HD46505 CRTC") +DEFINE_DEVICE_TYPE(HD6845, hd6845_device, "hd6845", "Hitachi HD6845 CRTC") +DEFINE_DEVICE_TYPE(SY6545_1, sy6545_1_device, "sy6545_1", "Synertek SY6545-1 CRTC") +DEFINE_DEVICE_TYPE(SY6845E, sy6845e_device, "sy6845e", "Synertek SY6845E CRTC") +DEFINE_DEVICE_TYPE(HD6345, hd6345_device, "hd6345", "Hitachi HD6345 CRTC") +DEFINE_DEVICE_TYPE(AMS40041, ams40041_device, "ams40041", "AMS40041 CRTC") +DEFINE_DEVICE_TYPE(AMS40489, ams40489_device, "ams40489", "AMS40489 ASIC (CRTC)") +DEFINE_DEVICE_TYPE(MOS8563, mos8563_device, "mos8563", "MOS 8563 VDC") +DEFINE_DEVICE_TYPE(MOS8568, mos8568_device, "mos8568", "MOS 8568 VDC") /* mode macros */ @@ -91,8 +91,8 @@ const device_type MOS8568 = device_creator; #define ATTR_ALTERNATE_CHARSET BIT(attr, 7) -mc6845_device::mc6845_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), +mc6845_device::mc6845_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock), device_video_interface(mconfig, *this, false), m_show_border_area(true), m_interlace_adjust(0), @@ -109,19 +109,7 @@ mc6845_device::mc6845_device(const machine_config &mconfig, device_type type, co } mc6845_device::mc6845_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MC6845, "MC6845 CRTC", tag, owner, clock, "mc6845", __FILE__), - device_video_interface(mconfig, *this, false), - m_show_border_area(true), - m_interlace_adjust(0), - m_visarea_adjust_min_x(0), - m_visarea_adjust_max_x(0), - m_visarea_adjust_min_y(0), - m_visarea_adjust_max_y(0), - m_hpixels_per_column(0), - m_out_de_cb(*this), - m_out_cur_cb(*this), - m_out_hsync_cb(*this), - m_out_vsync_cb(*this) + : mc6845_device(mconfig, MC6845, tag, owner, clock) { } @@ -210,7 +198,7 @@ READ8_MEMBER( mc6845_device::register_r ) WRITE8_MEMBER( mc6845_device::register_w ) { - if (LOG) logerror("%s:M6845 reg 0x%02x = 0x%02x\n", machine().describe_context(), m_register_address_latch, data); + LOG("%s:M6845 reg 0x%02x = 0x%02x\n", machine().describe_context(), m_register_address_latch, data); switch (m_register_address_latch) { @@ -358,7 +346,7 @@ READ8_MEMBER( mos8563_device::register_r ) WRITE8_MEMBER( mos8563_device::register_w ) { - if (LOG) logerror("%s:MOS8563 reg 0x%02x = 0x%02x\n", machine().describe_context(), m_register_address_latch, data); + LOG("%s:MOS8563 reg 0x%02x = 0x%02x\n", machine().describe_context(), m_register_address_latch, data); switch (m_register_address_latch) { @@ -445,7 +433,7 @@ READ8_MEMBER( hd6345_device::register_r ) WRITE8_MEMBER( hd6345_device::register_w ) { - if (LOG) logerror("%s:HD6345 reg 0x%02x = 0x%02x\n", machine().describe_context(), m_register_address_latch, data); + LOG("%s:HD6345 reg 0x%02x = 0x%02x\n", machine().describe_context(), m_register_address_latch, data); switch (m_register_address_latch) { @@ -587,7 +575,7 @@ void mc6845_device::recompute_parameters(bool postload) else visarea.set(0 + m_visarea_adjust_min_x, max_visible_x + m_visarea_adjust_max_x, 0 + m_visarea_adjust_min_y, max_visible_y + m_visarea_adjust_max_y); - if (LOG) logerror("M6845 config screen: HTOTAL: %d VTOTAL: %d MAX_X: %d MAX_Y: %d HSYNC: %d-%d VSYNC: %d-%d Freq: %ffps\n", + LOG("M6845 config screen: HTOTAL: %d VTOTAL: %d MAX_X: %d MAX_Y: %d HSYNC: %d-%d VSYNC: %d-%d Freq: %ffps\n", horiz_pix_total, vert_pix_total, max_visible_x, max_visible_y, hsync_on_pos, hsync_off_pos - 1, vsync_on_pos, vsync_off_pos - 1, 1 / ATTOSECONDS_TO_DOUBLE(refresh)); if ( m_screen != nullptr ) @@ -1049,7 +1037,7 @@ uint32_t mc6845_device::screen_update(screen_device &screen, bitmap_rgb32 &bitma } else { - if (LOG) logerror("M6845: Invalid screen parameters - display disabled!!!\n"); + LOG("M6845: Invalid screen parameters - display disabled!!!\n"); } return 0; @@ -1328,7 +1316,7 @@ void mos8563_device::device_start() m_update_ready_bit = 1; // default update_row delegate - m_update_row_cb = mc6845_update_row_delegate(FUNC(mos8563_device::vdc_update_row), this); + m_update_row_cb = update_row_delegate(FUNC(mos8563_device::vdc_update_row), this); m_char_blink_state = false; m_char_blink_count = 0; @@ -1441,8 +1429,8 @@ const address_space_config *mos8563_device::memory_space_config(address_spacenum { switch (spacenum) { - case AS_0: return &m_videoram_space_config; - default: return nullptr; + case AS_0: return &m_videoram_space_config; + default: return nullptr; } } @@ -1453,66 +1441,66 @@ ADDRESS_MAP_END r6545_1_device::r6545_1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mc6845_device(mconfig, R6545_1, "R6545-1 CRTC", tag, owner, clock, "r6545_1", __FILE__) + : mc6845_device(mconfig, R6545_1, tag, owner, clock) { } h46505_device::h46505_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mc6845_device(mconfig, H46505, "H46505 CRTC", tag, owner, clock, "h46505", __FILE__) + : mc6845_device(mconfig, H46505, tag, owner, clock) { } mc6845_1_device::mc6845_1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mc6845_device(mconfig, MC6845_1, "MC6845-1 CRTC", tag, owner, clock, "mc6845_1", __FILE__) + : mc6845_device(mconfig, MC6845_1, tag, owner, clock) { } hd6845_device::hd6845_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mc6845_device(mconfig, HD6845, "HD6845 CRTC", tag, owner, clock, "hd6845", __FILE__) + : mc6845_device(mconfig, HD6845, tag, owner, clock) { } c6545_1_device::c6545_1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mc6845_device(mconfig, C6545_1, "C6545-1 CRTC", tag, owner, clock, "c6545_1", __FILE__) + : mc6845_device(mconfig, C6545_1, tag, owner, clock) { } sy6545_1_device::sy6545_1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mc6845_device(mconfig, SY6545_1, "SY6545-1 CRTC", tag, owner, clock, "sy6545_1", __FILE__) + : mc6845_device(mconfig, SY6545_1, tag, owner, clock) { } sy6845e_device::sy6845e_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mc6845_device(mconfig, SY6845E, "SY6845E CRTC", tag, owner, clock, "sy6845e", __FILE__) + : mc6845_device(mconfig, SY6845E, tag, owner, clock) { } hd6345_device::hd6345_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mc6845_device(mconfig, HD6345, "HD6345 CRTC", tag, owner, clock, "hd6345", __FILE__) + : mc6845_device(mconfig, HD6345, tag, owner, clock) { } ams40041_device::ams40041_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mc6845_device(mconfig, AMS40041, "AMS40041 CRTC", tag, owner, clock, "ams40041", __FILE__) + : mc6845_device(mconfig, AMS40041, tag, owner, clock) { } ams40489_device::ams40489_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mc6845_device(mconfig, AMS40489, "AMS40489 ASIC (CRTC)", tag, owner, clock, "ams40489", __FILE__) + : mc6845_device(mconfig, AMS40489, tag, owner, clock) { } -mos8563_device::mos8563_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : mc6845_device(mconfig, type, name, tag, owner, clock, shortname, source), +mos8563_device::mos8563_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : mc6845_device(mconfig, type, tag, owner, clock), device_memory_interface(mconfig, *this), m_videoram_space_config("videoram", ENDIANNESS_LITTLE, 8, 16, 0, nullptr, *ADDRESS_MAP_NAME(mos8563_videoram_map)), m_palette(*this, "palette") @@ -1522,17 +1510,13 @@ mos8563_device::mos8563_device(const machine_config &mconfig, device_type type, mos8563_device::mos8563_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mc6845_device(mconfig, MOS8563, "MOS8563", tag, owner, clock, "mos8563", __FILE__), - device_memory_interface(mconfig, *this), - m_videoram_space_config("videoram", ENDIANNESS_LITTLE, 8, 16, 0, nullptr, *ADDRESS_MAP_NAME(mos8563_videoram_map)), - m_palette(*this, "palette") + : mos8563_device(mconfig, MOS8563, tag, owner, clock) { - set_clock_scale(1.0/8); } mos8568_device::mos8568_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mos8563_device(mconfig, MOS8568, "MOS8568", tag, owner, clock, "mos8568", __FILE__) + : mos8563_device(mconfig, MOS8568, tag, owner, clock) { } diff --git a/src/devices/video/mc6845.h b/src/devices/video/mc6845.h index 5bbe24cb432..dead2602689 100644 --- a/src/devices/video/mc6845.h +++ b/src/devices/video/mc6845.h @@ -6,9 +6,10 @@ **********************************************************************/ -#ifndef __MC6845__ -#define __MC6845__ +#ifndef MAME_VIDEO_MC6845_H +#define MAME_VIDEO_MC6845_H +#pragma once #define MCFG_MC6845_ADD(_tag, _variant, _screen_tag, _clock) \ @@ -36,19 +37,19 @@ mc6845_device::set_char_width(*device, _pixels); #define MCFG_MC6845_RECONFIGURE_CB(_class, _method) \ - mc6845_device::set_reconfigure_callback(*device, mc6845_reconfigure_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); + mc6845_device::set_reconfigure_callback(*device, mc6845_device::reconfigure_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); #define MCFG_MC6845_BEGIN_UPDATE_CB(_class, _method) \ - mc6845_device::set_begin_update_callback(*device, mc6845_begin_update_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); + mc6845_device::set_begin_update_callback(*device, mc6845_device::begin_update_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); #define MCFG_MC6845_UPDATE_ROW_CB(_class, _method) \ - mc6845_device::set_update_row_callback(*device, mc6845_update_row_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); + mc6845_device::set_update_row_callback(*device, mc6845_device::update_row_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); #define MCFG_MC6845_END_UPDATE_CB(_class, _method) \ - mc6845_device::set_end_update_callback(*device, mc6845_end_update_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); + mc6845_device::set_end_update_callback(*device, mc6845_device::end_update_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); #define MCFG_MC6845_ADDR_CHANGED_CB(_class, _method) \ - mc6845_device::set_on_update_addr_change_callback(*device, mc6845_on_update_addr_changed_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); + mc6845_device::set_on_update_addr_change_callback(*device, mc6845_device::on_update_addr_changed_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); #define MCFG_MC6845_OUT_DE_CB(_write) \ devcb = &mc6845_device::set_out_de_callback(*device, DEVCB_##_write); @@ -64,42 +65,31 @@ /* callback definitions */ -typedef device_delegate mc6845_reconfigure_delegate; #define MC6845_RECONFIGURE(name) void name(int width, int height, const rectangle &visarea, attoseconds_t frame_period) -typedef device_delegate mc6845_begin_update_delegate; #define MC6845_BEGIN_UPDATE(name) void name(bitmap_rgb32 &bitmap, const rectangle &cliprect) -typedef device_delegate mc6845_update_row_delegate; #define MC6845_UPDATE_ROW(name) void name(bitmap_rgb32 &bitmap, const rectangle &cliprect, uint16_t ma, uint8_t ra, \ uint16_t y, uint8_t x_count, int8_t cursor_x, int de, int hbp, int vbp) -typedef device_delegate mc6845_end_update_delegate; #define MC6845_END_UPDATE(name) void name(bitmap_rgb32 &bitmap, const rectangle &cliprect) -typedef device_delegate mc6845_on_update_addr_changed_delegate; #define MC6845_ON_UPDATE_ADDR_CHANGED(name) void name(int address, int strobe) class mc6845_device : public device_t, public device_video_interface { - friend class mc6845_1_device; - friend class r6545_1_device; - friend class c6545_1_device; - friend class h46505_device; - friend class hd6845_device; - friend class sy6545_1_device; - friend class sy6845e_device; - friend class hd6345_device; - friend class ams40041_device; - friend class ams40489_device; - public: + typedef device_delegate reconfigure_delegate; + typedef device_delegate begin_update_delegate; + typedef device_delegate update_row_delegate; + typedef device_delegate end_update_delegate; + typedef device_delegate on_update_addr_changed_delegate; + // construction/destruction mc6845_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - mc6845_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); static void set_show_border_area(device_t &device, bool show) { downcast(device).m_show_border_area = show; } static void set_visarea_adjust(device_t &device, int min_x, int max_x, int min_y, int max_y) @@ -112,16 +102,16 @@ public: } static void set_char_width(device_t &device, int pixels) { downcast(device).m_hpixels_per_column = pixels; } - static void set_reconfigure_callback(device_t &device, mc6845_reconfigure_delegate callback) { downcast(device).m_reconfigure_cb = callback; } - static void set_begin_update_callback(device_t &device, mc6845_begin_update_delegate callback) { downcast(device).m_begin_update_cb = callback; } - static void set_update_row_callback(device_t &device, mc6845_update_row_delegate callback) { downcast(device).m_update_row_cb = callback; } - static void set_end_update_callback(device_t &device, mc6845_end_update_delegate callback) { downcast(device).m_end_update_cb = callback; } - static void set_on_update_addr_change_callback(device_t &device, mc6845_on_update_addr_changed_delegate callback) { downcast(device).m_on_update_addr_changed_cb = callback; } + static void set_reconfigure_callback(device_t &device, reconfigure_delegate &&cb) { downcast(device).m_reconfigure_cb = std::move(cb); } + static void set_begin_update_callback(device_t &device, begin_update_delegate &&cb) { downcast(device).m_begin_update_cb = std::move(cb); } + static void set_update_row_callback(device_t &device, update_row_delegate &&cb) { downcast(device).m_update_row_cb = std::move(cb); } + static void set_end_update_callback(device_t &device, end_update_delegate &&cb) { downcast(device).m_end_update_cb = std::move(cb); } + static void set_on_update_addr_change_callback(device_t &device, on_update_addr_changed_delegate &&cb) { downcast(device).m_on_update_addr_changed_cb = std::move(cb); } - template static devcb_base &set_out_de_callback(device_t &device, _Object object) { return downcast(device).m_out_de_cb.set_callback(object); } - template static devcb_base &set_out_cur_callback(device_t &device, _Object object) { return downcast(device).m_out_cur_cb.set_callback(object); } - template static devcb_base &set_out_hsync_callback(device_t &device, _Object object) { return downcast(device).m_out_hsync_cb.set_callback(object); } - template static devcb_base &set_out_vsync_callback(device_t &device, _Object object) { return downcast(device).m_out_vsync_cb.set_callback(object); } + template static devcb_base &set_out_de_callback(device_t &device, Object &&cb) { return downcast(device).m_out_de_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_cur_callback(device_t &device, Object &&cb) { return downcast(device).m_out_cur_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_hsync_callback(device_t &device, Object &&cb) { return downcast(device).m_out_hsync_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_vsync_callback(device_t &device, Object &&cb) { return downcast(device).m_out_vsync_cb.set_callback(std::forward(cb)); } /* select one of the registers for reading or writing */ DECLARE_WRITE8_MEMBER( address_w ); @@ -168,6 +158,8 @@ public: uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); protected: + mc6845_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -290,26 +282,26 @@ protected: int m_hpixels_per_column; /* number of pixels per video memory address */ - mc6845_reconfigure_delegate m_reconfigure_cb; + reconfigure_delegate m_reconfigure_cb; /* if specified, this gets called before any pixel update, optionally return a pointer that will be passed to the update and tear down callbacks */ - mc6845_begin_update_delegate m_begin_update_cb; + begin_update_delegate m_begin_update_cb; /* this gets called for every row, the driver must output x_count * hpixels_per_column pixels. cursor_x indicates the character position where the cursor is, or -1 if there is no cursor on this row */ - mc6845_update_row_delegate m_update_row_cb; + update_row_delegate m_update_row_cb; /* if specified, this gets called after all row updating is complete */ - mc6845_end_update_delegate m_end_update_cb; + end_update_delegate m_end_update_cb; /* Called whenever the update address changes * For vblank/hblank timing strobe indicates the physical update. * vblank/hblank timing not supported yet! */ - mc6845_on_update_addr_changed_delegate m_on_update_addr_changed_cb; + on_update_addr_changed_delegate m_on_update_addr_changed_cb; /* if specified, this gets called for every change of the display enable pin (pin 18) */ devcb_write_line m_out_de_cb; @@ -435,7 +427,6 @@ class mos8563_device : public mc6845_device, public device_memory_interface { public: - mos8563_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); mos8563_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_0) const override; @@ -453,6 +444,8 @@ public: MC6845_UPDATE_ROW( vdc_update_row ); protected: + mos8563_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual machine_config_constructor device_mconfig_additions() const override; virtual void device_start() override; @@ -507,20 +500,18 @@ protected: }; -extern const device_type MC6845; -extern const device_type MC6845_1; -extern const device_type R6545_1; -extern const device_type C6545_1; -extern const device_type H46505; -extern const device_type HD6845; -extern const device_type SY6545_1; -extern const device_type SY6845E; -extern const device_type HD6345; -extern const device_type AMS40041; -extern const device_type AMS40489; -extern const device_type MOS8563; -extern const device_type MOS8568; - - - -#endif +DECLARE_DEVICE_TYPE(MC6845, mc6845_device) +DECLARE_DEVICE_TYPE(MC6845_1, mc6845_1_device) +DECLARE_DEVICE_TYPE(R6545_1, r6545_1_device) +DECLARE_DEVICE_TYPE(C6545_1, c6545_1_device) +DECLARE_DEVICE_TYPE(H46505, h46505_device) +DECLARE_DEVICE_TYPE(HD6845, hd6845_device) +DECLARE_DEVICE_TYPE(SY6545_1, sy6545_1_device) +DECLARE_DEVICE_TYPE(SY6845E, sy6845e_device) +DECLARE_DEVICE_TYPE(HD6345, hd6345_device) +DECLARE_DEVICE_TYPE(AMS40041, ams40041_device) +DECLARE_DEVICE_TYPE(AMS40489, ams40489_device) +DECLARE_DEVICE_TYPE(MOS8563, mos8563_device) +DECLARE_DEVICE_TYPE(MOS8568, mos8568_device) + +#endif // MAME_VIDEO_MC6845_H diff --git a/src/devices/video/mc6847.cpp b/src/devices/video/mc6847.cpp index e3781147f60..22f6cef81a0 100644 --- a/src/devices/video/mc6847.cpp +++ b/src/devices/video/mc6847.cpp @@ -129,12 +129,12 @@ const uint32_t mc6847_base_device::s_palette[mc6847_base_device::PALETTE_LENGTH] // ctor //------------------------------------------------- -mc6847_friend_device::mc6847_friend_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, - const uint8_t *fontdata, bool is_mc6847t1, double tpfs, int field_sync_falling_edge_scanline, bool supports_partial_body_scanlines, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), - m_write_hsync(*this), - m_write_fsync(*this), - m_character_map(fontdata, is_mc6847t1) +mc6847_friend_device::mc6847_friend_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, + const uint8_t *fontdata, bool is_mc6847t1, double tpfs, int field_sync_falling_edge_scanline, bool supports_partial_body_scanlines) + : device_t(mconfig, type, tag, owner, clock) + , m_write_hsync(*this) + , m_write_fsync(*this) + , m_character_map(fontdata, is_mc6847t1) { m_tpfs = tpfs; m_supports_partial_body_scanlines = supports_partial_body_scanlines; @@ -154,9 +154,9 @@ inline emu_timer *mc6847_friend_device::setup_timer(device_timer_id id, double o { emu_timer *timer = timer_alloc(id); timer->adjust( - attotime::from_ticks(offset * 4, m_clock * 4), - 0, - attotime::from_ticks(period * 4, m_clock * 4)); + attotime::from_ticks(offset * 4, m_clock * 4), + 0, + attotime::from_ticks(period * 4, m_clock * 4)); return timer; } @@ -166,7 +166,7 @@ inline emu_timer *mc6847_friend_device::setup_timer(device_timer_id id, double o // device_start - device-specific startup //------------------------------------------------- -void mc6847_friend_device::device_start(void) +void mc6847_friend_device::device_start() { m_write_hsync.resolve_safe(); m_write_fsync.resolve_safe(); @@ -204,7 +204,7 @@ void mc6847_friend_device::device_start(void) // device_start - device-specific reset //------------------------------------------------- -void mc6847_friend_device::device_reset(void) +void mc6847_friend_device::device_reset() { device_t::device_reset(); m_video_changed = true; @@ -216,7 +216,7 @@ void mc6847_friend_device::device_reset(void) // device_post_load - device-specific post load //------------------------------------------------- -void mc6847_friend_device::device_post_load(void) +void mc6847_friend_device::device_post_load() { device_t::device_post_load(); m_video_changed = true; @@ -228,7 +228,7 @@ void mc6847_friend_device::device_post_load(void) // update_field_sync_timer //------------------------------------------------- -void mc6847_friend_device::update_field_sync_timer(void) +void mc6847_friend_device::update_field_sync_timer() { // are we expecting field sync? bool expected_field_sync = (m_physical_scanline < m_field_sync_falling_edge_scanline) @@ -268,7 +268,7 @@ void mc6847_friend_device::device_timer(emu_timer &timer, device_timer_id id, in // new_frame //------------------------------------------------- -inline void mc6847_friend_device::new_frame(void) +inline void mc6847_friend_device::new_frame() { m_physical_scanline = 0; m_logical_scanline = 0; @@ -397,7 +397,7 @@ inline void mc6847_friend_device::change_field_sync(bool line) // next_scanline //------------------------------------------------- -inline void mc6847_friend_device::next_scanline(void) +inline void mc6847_friend_device::next_scanline() { /* advance to next scanline */ m_physical_scanline++; @@ -464,7 +464,7 @@ void mc6847_friend_device::field_sync_changed(bool line) // enter_bottom_border //------------------------------------------------- -void mc6847_friend_device::enter_bottom_border(void) +void mc6847_friend_device::enter_bottom_border() { } @@ -526,7 +526,7 @@ void mc6847_friend_device::video_flush() // describe_context //------------------------------------------------- -const char *mc6847_friend_device::describe_context(void) +const char *mc6847_friend_device::describe_context() { static char buffer[128]; snprintf(buffer, ARRAY_LENGTH(buffer), "%s (scanline %s:%d)", @@ -546,8 +546,8 @@ const char *mc6847_friend_device::describe_context(void) // ctor //------------------------------------------------- -mc6847_base_device::mc6847_base_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const uint8_t *fontdata, double tpfs, const char *shortname, const char *source) : - mc6847_friend_device(mconfig, type, name, tag, owner, clock, fontdata, (type == MC6847T1_NTSC) || (type == MC6847T1_PAL), tpfs, 25+191, true, shortname, source), +mc6847_base_device::mc6847_base_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, const uint8_t *fontdata, double tpfs) : + mc6847_friend_device(mconfig, type, tag, owner, clock, fontdata, (type == MC6847T1_NTSC) || (type == MC6847T1_PAL), tpfs, 25+191, true), m_input_cb(*this), m_black_and_white(false), m_fixed_mode(0), @@ -1760,14 +1760,14 @@ mc6847_base_device::pixel_t mc6847_base_device::artifacter::mix_color(double fac // VARIATIONS //************************************************************************** -const device_type MC6847_NTSC = device_creator; -const device_type MC6847_PAL = device_creator; -const device_type MC6847Y_NTSC = device_creator; -const device_type MC6847Y_PAL = device_creator; -const device_type MC6847T1_NTSC = device_creator; -const device_type MC6847T1_PAL = device_creator; -const device_type S68047 = device_creator; -const device_type M5C6847P1 = device_creator; +DEFINE_DEVICE_TYPE(MC6847_NTSC, mc6847_ntsc_device, "mc6847_ntsc", "Motorola MC6847 VDG (NTSC)") +DEFINE_DEVICE_TYPE(MC6847_PAL, mc6847_pal_device, "mc6847_pal", "Motorola MC6847 VDG (PAL)") +DEFINE_DEVICE_TYPE(MC6847Y_NTSC, mc6847y_ntsc_device, "mc6847y_ntsc", "Motorola MC6847Y VDG (NTSC)") +DEFINE_DEVICE_TYPE(MC6847Y_PAL, mc6847y_pal_device, "mc6847y_pal", "Motorola MC6847Y VDG (PAL)") +DEFINE_DEVICE_TYPE(MC6847T1_NTSC, mc6847t1_ntsc_device, "mc6847t1_ntsc", "Motorola MC6847T1 VDG (NTSC)") +DEFINE_DEVICE_TYPE(MC6847T1_PAL, mc6847t1_pal_device, "mc6847t1_pal", "Motorola MC6847T1 VDG (PAL)") +DEFINE_DEVICE_TYPE(S68047, s68047_device, "s68047", "AMI S68047") +DEFINE_DEVICE_TYPE(M5C6847P1, m5c6847p1_device, "m5c6847p1", "Mitsubishi M5C6847P-1 VDG") @@ -1776,7 +1776,7 @@ const device_type M5C6847P1 = device_creator; //------------------------------------------------- mc6847_ntsc_device::mc6847_ntsc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mc6847_base_device(mconfig, MC6847_NTSC, "MC6847_NTSC", tag, owner, clock, ntsc_square_fontdata8x12, 262.0, "mc6847_ntsc", __FILE__) + : mc6847_base_device(mconfig, MC6847_NTSC, tag, owner, clock, ntsc_square_fontdata8x12, 262.0) { } @@ -1787,7 +1787,7 @@ mc6847_ntsc_device::mc6847_ntsc_device(const machine_config &mconfig, const char //------------------------------------------------- mc6847_pal_device::mc6847_pal_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mc6847_base_device(mconfig, MC6847_PAL, "MC6847_PAL", tag, owner, clock, pal_square_fontdata8x12, 313.0, "mc6847_pal", __FILE__) + : mc6847_base_device(mconfig, MC6847_PAL, tag, owner, clock, pal_square_fontdata8x12, 313.0) { } @@ -1798,7 +1798,7 @@ mc6847_pal_device::mc6847_pal_device(const machine_config &mconfig, const char * //------------------------------------------------- mc6847y_ntsc_device::mc6847y_ntsc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mc6847_base_device(mconfig, MC6847Y_NTSC, "MC6847Y_NTSC", tag, owner, clock, ntsc_square_fontdata8x12, 262.5, "mc6847y", __FILE__) + : mc6847_base_device(mconfig, MC6847Y_NTSC, tag, owner, clock, ntsc_square_fontdata8x12, 262.5) { } @@ -1809,7 +1809,7 @@ mc6847y_ntsc_device::mc6847y_ntsc_device(const machine_config &mconfig, const ch //------------------------------------------------- mc6847y_pal_device::mc6847y_pal_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mc6847_base_device(mconfig, MC6847Y_PAL, "MC6847Y_PAL", tag, owner, clock, pal_square_fontdata8x12, 313.0, "mc6847y_pal", __FILE__) + : mc6847_base_device(mconfig, MC6847Y_PAL, tag, owner, clock, pal_square_fontdata8x12, 313.0) { } @@ -1820,7 +1820,7 @@ mc6847y_pal_device::mc6847y_pal_device(const machine_config &mconfig, const char //------------------------------------------------- mc6847t1_ntsc_device::mc6847t1_ntsc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mc6847_base_device(mconfig, MC6847T1_NTSC, "MC6847T1_NTSC", tag, owner, clock, ntsc_round_fontdata8x12, 262.0, "mc6847t1_ntsc", __FILE__) + : mc6847_base_device(mconfig, MC6847T1_NTSC, tag, owner, clock, ntsc_round_fontdata8x12, 262.0) { } @@ -1831,7 +1831,7 @@ mc6847t1_ntsc_device::mc6847t1_ntsc_device(const machine_config &mconfig, const //------------------------------------------------- mc6847t1_pal_device::mc6847t1_pal_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mc6847_base_device(mconfig, MC6847T1_PAL, "MC6847T1_PAL", tag, owner, clock, pal_round_fontdata8x12, 313.0, "mc6847t1_pal", __FILE__) + : mc6847_base_device(mconfig, MC6847T1_PAL, tag, owner, clock, pal_round_fontdata8x12, 313.0) { } @@ -1842,7 +1842,7 @@ mc6847t1_pal_device::mc6847t1_pal_device(const machine_config &mconfig, const ch //------------------------------------------------- s68047_device::s68047_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mc6847_base_device(mconfig, S68047, "S68047", tag, owner, clock, s68047_fontdata8x12, 262.0, "s68047", __FILE__) + : mc6847_base_device(mconfig, S68047, tag, owner, clock, s68047_fontdata8x12, 262.0) { } @@ -1891,6 +1891,6 @@ const uint32_t s68047_device::s_s68047_hack_palette[16] = //------------------------------------------------- m5c6847p1_device::m5c6847p1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mc6847_base_device(mconfig, M5C6847P1, "M5C6847P-1", tag, owner, clock, ntsc_square_fontdata8x12, 262.5, "m5c6847p1", __FILE__) + : mc6847_base_device(mconfig, M5C6847P1, tag, owner, clock, ntsc_square_fontdata8x12, 262.5) { } diff --git a/src/devices/video/mc6847.h b/src/devices/video/mc6847.h index 100d3033877..781def31804 100644 --- a/src/devices/video/mc6847.h +++ b/src/devices/video/mc6847.h @@ -7,24 +7,14 @@ Implementation of Motorola 6847 video hardware chip ***************************************************************************/ -#ifndef MAME_DEVICES_VIDEO_MC6847_H -#define MAME_DEVICES_VIDEO_MC6847_H +#ifndef MAME_VIDEO_MC6847_H +#define MAME_VIDEO_MC6847_H #pragma once #include "screen.h" -#define MC6847_MODE_AG 0x80 -#define MC6847_MODE_GM2 0x40 -#define MC6847_MODE_GM1 0x20 -#define MC6847_MODE_GM0 0x10 -#define MC6847_MODE_CSS 0x08 -#define MC6847_MODE_AS 0x04 -#define MC6847_MODE_INTEXT 0x02 -#define MC6847_MODE_INV 0x01 - - //************************************************************************** // MC6847 CONFIGURATION / INTERFACE //************************************************************************** @@ -52,7 +42,7 @@ devcb = &mc6847_friend_device::set_fsync_wr_callback(*device, DEVCB_##_write); #define MCFG_MC6847_CHARROM_CALLBACK(_class, _method) \ - mc6847_friend_device::set_get_char_rom(*device, mc6847_get_char_rom_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); + mc6847_friend_device::set_get_char_rom(*device, mc6847_friend_device::get_char_rom_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); #define MCFG_MC6847_INPUT_CALLBACK(_read) \ devcb = &mc6847_base_device::set_input_callback(*device, DEVCB_##_read); @@ -64,7 +54,6 @@ mc6847_base_device::set_black_and_white(*device, _bw); -typedef device_delegate mc6847_get_char_rom_delegate; #define MC6847_GET_CHARROM_MEMBER(_name) uint8_t _name(uint8_t ch, int line) @@ -81,34 +70,36 @@ INPUT_PORTS_EXTERN(mc6847_artifacting); class mc6847_friend_device : public device_t { public: + // video mode constants + static constexpr uint8_t MODE_AG = 0x80; + static constexpr uint8_t MODE_GM2 = 0x40; + static constexpr uint8_t MODE_GM1 = 0x20; + static constexpr uint8_t MODE_GM0 = 0x10; + static constexpr uint8_t MODE_CSS = 0x08; + static constexpr uint8_t MODE_AS = 0x04; + static constexpr uint8_t MODE_INTEXT = 0x02; + static constexpr uint8_t MODE_INV = 0x01; + + typedef device_delegate get_char_rom_delegate; + // inlines - bool hs_r(void) { return m_horizontal_sync; } - bool fs_r(void) { return m_field_sync; } + bool hs_r() const { return m_horizontal_sync; } + bool fs_r() const { return m_field_sync; } - template static devcb_base &set_hsync_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_hsync.set_callback(object); } - template static devcb_base &set_fsync_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_fsync.set_callback(object); } + template static devcb_base &set_hsync_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_hsync.set_callback(std::forward(cb)); } + template static devcb_base &set_fsync_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_fsync.set_callback(std::forward(cb)); } - static void set_get_char_rom(device_t &device, mc6847_get_char_rom_delegate callback) { downcast(device).m_charrom_cb = callback; } + static void set_get_char_rom(device_t &device, get_char_rom_delegate &&cb) { downcast(device).m_charrom_cb = std::move(cb); } protected: - mc6847_friend_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, - const uint8_t *fontdata, bool is_mc6847t1, double tpfs, int field_sync_falling_edge_scanline, bool supports_partial_body_scanlines, const char *shortname, const char *source); - - // video mode constants - static const uint8_t MODE_AG = 0x80; - static const uint8_t MODE_GM2 = 0x40; - static const uint8_t MODE_GM1 = 0x20; - static const uint8_t MODE_GM0 = 0x10; - static const uint8_t MODE_CSS = 0x08; - static const uint8_t MODE_AS = 0x04; - static const uint8_t MODE_INTEXT = 0x02; - static const uint8_t MODE_INV = 0x01; + mc6847_friend_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, + const uint8_t *fontdata, bool is_mc6847t1, double tpfs, int field_sync_falling_edge_scanline, bool supports_partial_body_scanlines); // timer constants - static const device_timer_id TIMER_FRAME = 0; - static const device_timer_id TIMER_HSYNC_OFF = 1; - static const device_timer_id TIMER_HSYNC_ON = 2; - static const device_timer_id TIMER_FSYNC = 3; + static constexpr device_timer_id TIMER_FRAME = 0; + static constexpr device_timer_id TIMER_HSYNC_OFF = 1; + static constexpr device_timer_id TIMER_HSYNC_ON = 2; + static constexpr device_timer_id TIMER_FSYNC = 3; // fonts static const uint8_t pal_round_fontdata8x12[]; @@ -211,7 +202,7 @@ protected: // artifacting config void setup_config(device_t *device); - void poll_config(void) { m_artifacting = (m_config!=nullptr) ? m_config->read() : 0; } + void poll_config() { m_artifacting = (m_config!=nullptr) ? m_config->read() : 0; } // artifacting application template @@ -275,30 +266,30 @@ protected: /* if specified, this reads the external char rom off of the driver state */ // moved here from mc6847_base_device so to be useable in GIME - mc6847_get_char_rom_delegate m_charrom_cb; + get_char_rom_delegate m_charrom_cb; // incidentals character_map m_character_map; artifacter m_artifacter; // device-level overrides - virtual void device_start(void) override; + virtual void device_start() override; virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; - virtual void device_reset(void) override; - virtual void device_post_load(void) override; + virtual void device_reset() override; + virtual void device_post_load() override; // other overridables - virtual void new_frame(void); + virtual void new_frame(); virtual void horizontal_sync_changed(bool line); virtual void field_sync_changed(bool line); - virtual void enter_bottom_border(void); + virtual void enter_bottom_border(); virtual void record_border_scanline(uint16_t physical_scanline); virtual void record_body_scanline(uint16_t physical_scanline, uint16_t logical_scanline) = 0; virtual void record_partial_body_scanline(uint16_t physical_scanline, uint16_t logical_scanline, int32_t start_clock, int32_t end_clock) = 0; // miscellaneous - void video_flush(void); - const char *describe_context(void); + void video_flush(); + const char *describe_context(); // setup functions emu_timer *setup_timer(device_timer_id id, double offset, double period); @@ -348,7 +339,7 @@ protected: } // checks to see if the video has changed - ATTR_FORCE_INLINE bool has_video_changed(void) + ATTR_FORCE_INLINE bool has_video_changed() { /* poll the artifacting config */ m_artifacter.poll_config(); @@ -410,7 +401,7 @@ protected: // template function for emitting samples template uint32_t emit_mc6847_samples(uint8_t mode, const uint8_t *data, int length, pixel_t *RESTRICT pixels, const pixel_t *RESTRICT palette, - mc6847_get_char_rom_delegate get_char_rom, int x, int y) + get_char_rom_delegate const &get_char_rom, int x, int y) { uint32_t result; if (mode & MODE_AG) @@ -505,8 +496,8 @@ private: // functions void change_horizontal_sync(bool line); void change_field_sync(bool line); - void update_field_sync_timer(void); - void next_scanline(void); + void update_field_sync_timer(); + void next_scanline(); int32_t get_clocks_since_hsync(); // debugging @@ -517,7 +508,7 @@ private: class mc6847_base_device : public mc6847_friend_device { public: - template static devcb_base &set_input_callback(device_t &device, _Object object) { return downcast(device).m_input_cb.set_callback(object); } + template static devcb_base &set_input_callback(device_t &device, Object &&cb) { return downcast(device).m_input_cb.set_callback(std::forward(cb)); } static void set_get_fixed_mode(device_t &device, uint8_t mode) { downcast(device).m_fixed_mode = mode; } static void set_black_and_white(device_t &device, bool bw) { downcast(device).m_black_and_white = bw; } @@ -538,7 +529,7 @@ public: DECLARE_WRITE_LINE_MEMBER( inv_w ) { change_mode(MODE_INV, state); } protected: - mc6847_base_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const uint8_t *fontdata, double tpfs, const char *shortname, const char *source); + mc6847_base_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, const uint8_t *fontdata, double tpfs); // device-level overrides virtual void device_start() override; @@ -552,7 +543,7 @@ protected: void set_custom_palette(const pixel_t *custom_palette) { - if ( m_palette != m_bw_palette ) + if (m_palette != m_bw_palette) { m_palette = custom_palette ? custom_palette : s_palette; } @@ -692,13 +683,13 @@ public: }; -extern const device_type MC6847_NTSC; -extern const device_type MC6847_PAL; -extern const device_type MC6847Y_NTSC; -extern const device_type MC6847Y_PAL; -extern const device_type MC6847T1_NTSC; -extern const device_type MC6847T1_PAL; -extern const device_type S68047; -extern const device_type M5C6847P1; +DECLARE_DEVICE_TYPE(MC6847_NTSC, mc6847_ntsc_device) +DECLARE_DEVICE_TYPE(MC6847_PAL, mc6847_pal_device) +DECLARE_DEVICE_TYPE(MC6847Y_NTSC, mc6847t1_ntsc_device) +DECLARE_DEVICE_TYPE(MC6847Y_PAL, mc6847y_pal_device) +DECLARE_DEVICE_TYPE(MC6847T1_NTSC, mc6847t1_ntsc_device) +DECLARE_DEVICE_TYPE(MC6847T1_PAL, mc6847t1_pal_device) +DECLARE_DEVICE_TYPE(S68047, s68047_device) +DECLARE_DEVICE_TYPE(M5C6847P1, m5c6847p1_device) -#endif // MAME_DEVICES_VIDEO_MC6847_H +#endif // MAME_VIDEO_MC6847_H diff --git a/src/devices/video/mga2064w.cpp b/src/devices/video/mga2064w.cpp index 3dfd13dcec1..7bc5816c942 100644 --- a/src/devices/video/mga2064w.cpp +++ b/src/devices/video/mga2064w.cpp @@ -3,10 +3,10 @@ #include "emu.h" #include "mga2064w.h" -const device_type MGA2064W = device_creator; +DEFINE_DEVICE_TYPE(MGA2064W, mga2064w_device, "mga2064w", "Matrox Millennium") mga2064w_device::mga2064w_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : pci_device(mconfig, MGA2064W, "Matrox Millennium", tag, owner, clock, "mga2064w", __FILE__) + : pci_device(mconfig, MGA2064W, tag, owner, clock) { } diff --git a/src/devices/video/mga2064w.h b/src/devices/video/mga2064w.h index 844f75254d1..8da3bdb0527 100644 --- a/src/devices/video/mga2064w.h +++ b/src/devices/video/mga2064w.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Olivier Galibert -#ifndef MGA2064W_H -#define MGA2064W_H +#ifndef MAME_VIDEO_MGA2064W_H +#define MAME_VIDEO_MGA2064W_H + +#pragma once #include "machine/pci.h" @@ -15,10 +17,8 @@ public: protected: virtual void device_start() override; virtual void device_reset() override; - -private: }; -extern const device_type MGA2064W; +DECLARE_DEVICE_TYPE(MGA2064W, mga2064w_device); -#endif +#endif // MAME_VIDEO_MGA2064W_H diff --git a/src/devices/video/mos6566.cpp b/src/devices/video/mos6566.cpp index 17bdd0018c5..a521238515e 100644 --- a/src/devices/video/mos6566.cpp +++ b/src/devices/video/mos6566.cpp @@ -215,13 +215,13 @@ static const rgb_t PALETTE_MOS[] = // DEVICE DEFINITIONS //************************************************************************** -const device_type MOS6566 = device_creator; -const device_type MOS6567 = device_creator; -const device_type MOS8562 = device_creator; -const device_type MOS8564 = device_creator; -const device_type MOS6569 = device_creator; -const device_type MOS8565 = device_creator; -const device_type MOS8566 = device_creator; +DEFINE_DEVICE_TYPE(MOS6566, mos6566_device, "mos6566", "MOS 6566 VIC-II") +DEFINE_DEVICE_TYPE(MOS6567, mos6567_device, "mos6567", "MOS 6567 VIC-II") +DEFINE_DEVICE_TYPE(MOS8562, mos8562_device, "mos8562", "MOS 8562 VIC-II") +DEFINE_DEVICE_TYPE(MOS8564, mos8564_device, "mos8564", "MOS 8564 VIC-II") +DEFINE_DEVICE_TYPE(MOS6569, mos6569_device, "mos6569", "MOS 6569 VIC-II") +DEFINE_DEVICE_TYPE(MOS8565, mos8565_device, "mos8565", "MOS 8565 VIC-II") +DEFINE_DEVICE_TYPE(MOS8566, mos8566_device, "mos8566", "MOS 8566 VIC-II") // default address maps @@ -576,12 +576,12 @@ inline void mos6566_device::draw_multi( uint16_t p, uint8_t c0, uint8_t c1, uint //------------------------------------------------- mos6566_device::mos6566_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mos6566_device(mconfig, MOS6566, "MOS6566", tag, owner, clock, TYPE_6566, "mos6566", __FILE__) + : mos6566_device(mconfig, MOS6566, tag, owner, clock, TYPE_6566) { } -mos6566_device::mos6566_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, uint32_t variant, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), +mos6566_device::mos6566_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint32_t variant) + : device_t(mconfig, type, tag, owner, clock), device_memory_interface(mconfig, *this), device_video_interface(mconfig, *this), device_execute_interface(mconfig, *this), @@ -601,28 +601,44 @@ mos6566_device::mos6566_device(const machine_config &mconfig, device_type type, } mos6567_device::mos6567_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - :mos6566_device(mconfig, MOS6567, "MOS6567", tag, owner, clock, TYPE_6567, "mos6567", __FILE__) { } + : mos6567_device(mconfig, MOS6567, tag, owner, clock, TYPE_6567) +{ +} -mos6567_device::mos6567_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, uint32_t variant, const char *shortname, const char *source) - :mos6566_device(mconfig, type, name, tag, owner, clock, variant, shortname, source) { } +mos6567_device::mos6567_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint32_t variant) + : mos6566_device(mconfig, type, tag, owner, clock, variant) +{ +} mos8562_device::mos8562_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - :mos6567_device(mconfig, MOS8562, "MOS8562", tag, owner, clock, TYPE_8562, "mos8562", __FILE__) { } + : mos6567_device(mconfig, MOS8562, tag, owner, clock, TYPE_8562) +{ +} mos8564_device::mos8564_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - :mos6567_device(mconfig, MOS8564, "MOS8564", tag, owner, clock, TYPE_8564, "mos8564", __FILE__) { } + : mos6567_device(mconfig, MOS8564, tag, owner, clock, TYPE_8564) +{ +} mos6569_device::mos6569_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - :mos6566_device(mconfig, MOS6569, "MOS6569", tag, owner, clock, TYPE_6569, "mos6569", __FILE__) { } + : mos6569_device(mconfig, MOS6569, tag, owner, clock, TYPE_6569) +{ +} -mos6569_device::mos6569_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, uint32_t variant, const char *shortname, const char *source) - :mos6566_device(mconfig, type, name, tag, owner, clock, variant, shortname, source) { } +mos6569_device::mos6569_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint32_t variant) + : mos6566_device(mconfig, type, tag, owner, clock, variant) +{ +} mos8565_device::mos8565_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - :mos6569_device(mconfig, MOS8565, "MOS8565", tag, owner, clock, TYPE_8565, "mos8565", __FILE__) { } + : mos6569_device(mconfig, MOS8565, tag, owner, clock, TYPE_8565) +{ +} mos8566_device::mos8566_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - :mos6569_device(mconfig, MOS8566, "MOS8566", tag, owner, clock, TYPE_8566, "mos8566", __FILE__) { } + : mos6569_device(mconfig, MOS8566, tag, owner, clock, TYPE_8566) +{ +} //------------------------------------------------- diff --git a/src/devices/video/mos6566.h b/src/devices/video/mos6566.h index eedd627d6f9..b045286f1cf 100644 --- a/src/devices/video/mos6566.h +++ b/src/devices/video/mos6566.h @@ -77,10 +77,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_VIDEO_MOS6566_H +#define MAME_VIDEO_MOS6566_H -#ifndef __MOS6566__ -#define __MOS6566__ +#pragma once @@ -210,16 +210,15 @@ class mos6566_device : public device_t, { public: // construction/destruction - mos6566_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, uint32_t variant, const char *shortname, const char *source); mos6566_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); static void static_set_cpu_tag(device_t &device, const char *tag) { downcast(device).m_cpu.set_tag(tag); } - template static devcb_base &set_irq_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_irq.set_callback(object); } - template static devcb_base &set_ba_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_ba.set_callback(object); } - template static devcb_base &set_aec_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_aec.set_callback(object); } - template static devcb_base &set_k_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_k.set_callback(object); } + template static devcb_base &set_irq_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_irq.set_callback(std::forward(cb)); } + template static devcb_base &set_ba_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_ba.set_callback(std::forward(cb)); } + template static devcb_base &set_aec_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_aec.set_callback(std::forward(cb)); } + template static devcb_base &set_k_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_k.set_callback(std::forward(cb)); } - virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_0) const override; + virtual const address_space_config *memory_space_config(address_spacenum spacenum) const override; DECLARE_READ8_MEMBER( read ); DECLARE_WRITE8_MEMBER( write ); @@ -250,17 +249,13 @@ protected: TYPE_8569 // PAL-N VIC-IIe (C128) }; + mos6566_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint32_t variant); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; virtual void execute_run() override; - int m_icount; - int m_variant; - - const address_space_config m_videoram_space_config; - const address_space_config m_colorram_space_config; - inline void set_interrupt( int mask ); inline void clear_interrupt( int mask ); inline void set_ba(int state); @@ -286,6 +281,12 @@ protected: void draw_graphics(); void draw_sprites(); + int m_icount; + const int m_variant; + + const address_space_config m_videoram_space_config; + const address_space_config m_colorram_space_config; + devcb_write_line m_write_irq; devcb_write_line m_write_ba; devcb_write_line m_write_aec; @@ -374,7 +375,9 @@ class mos6567_device : public mos6566_device public: // construction/destruction mos6567_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - mos6567_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, uint32_t variant, const char *shortname, const char *source); + +protected: + mos6567_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint32_t variant); }; @@ -396,6 +399,7 @@ public: // construction/destruction mos8564_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); +protected: // device_execute_interface overrides virtual uint64_t execute_clocks_to_cycles(uint64_t clocks) const override { return (clocks / 8); } virtual uint64_t execute_cycles_to_clocks(uint64_t cycles) const override { return (cycles * 8); } @@ -409,7 +413,9 @@ class mos6569_device : public mos6566_device public: // construction/destruction mos6569_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - mos6569_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, uint32_t variant, const char *shortname, const char *source); + +protected: + mos6569_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint32_t variant); // device-level overrides virtual void execute_run() override; @@ -434,6 +440,7 @@ public: // construction/destruction mos8566_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); +protected: // device_execute_interface overrides virtual uint64_t execute_clocks_to_cycles(uint64_t clocks) const override { return (clocks / 8); } virtual uint64_t execute_cycles_to_clocks(uint64_t cycles) const override { return (cycles * 8); } @@ -441,14 +448,12 @@ public: // device type definitions -extern const device_type MOS6566; -extern const device_type MOS6567; -extern const device_type MOS8562; -extern const device_type MOS8564; -extern const device_type MOS6569; -extern const device_type MOS8565; -extern const device_type MOS8566; - - - -#endif +DECLARE_DEVICE_TYPE(MOS6566, mos6566_device) +DECLARE_DEVICE_TYPE(MOS6567, mos6567_device) +DECLARE_DEVICE_TYPE(MOS8562, mos8562_device) +DECLARE_DEVICE_TYPE(MOS8564, mos8564_device) +DECLARE_DEVICE_TYPE(MOS6569, mos6569_device) +DECLARE_DEVICE_TYPE(MOS8565, mos8565_device) +DECLARE_DEVICE_TYPE(MOS8566, mos8566_device) + +#endif // MAME_VIDEO_MOS6566_H diff --git a/src/devices/video/msm6222b.cpp b/src/devices/video/msm6222b.cpp index 632314a49dd..1e342e04084 100644 --- a/src/devices/video/msm6222b.cpp +++ b/src/devices/video/msm6222b.cpp @@ -13,28 +13,29 @@ #include "emu.h" #include "msm6222b.h" -const device_type MSM6222B = device_creator; -const device_type MSM6222B_01 = device_creator; +DEFINE_DEVICE_TYPE(MSM6222B, msm6222b_device, "msm6222b", "Oki MSM6222B-xx LCD Controller") +DEFINE_DEVICE_TYPE(MSM6222B_01, msm6222b_01_device, "msm6222b01", "Oki MSM6222B-01 LCD Controller") ROM_START( msm6222b_01 ) ROM_REGION( 0x1000, "cgrom", 0 ) ROM_LOAD( "msm6222b-01.bin", 0x0000, 0x1000, CRC(8ffa8521) SHA1(e108b520e6d20459a7bbd5958bbfa1d551a690bd) ) ROM_END -msm6222b_device::msm6222b_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), cursor_direction(false), cursor_blinking(false), two_line(false), shift_on_write(false), double_height(false), cursor_on(false), display_on(false), adc(0), shift(0), - m_cgrom(*this, finder_base::DUMMY_TAG) +msm6222b_device::msm6222b_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), + m_cgrom(*this, finder_base::DUMMY_TAG), + cursor_direction(false), cursor_blinking(false), two_line(false), shift_on_write(false), double_height(false), cursor_on(false), display_on(false), adc(0), shift(0) { } msm6222b_device::msm6222b_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, MSM6222B, "msm6222b-xx", tag, owner, clock, "msm6222b", __FILE__), cursor_direction(false), cursor_blinking(false), two_line(false), shift_on_write(false), double_height(false), cursor_on(false), display_on(false), adc(0), shift(0), - m_cgrom(*this, DEVICE_SELF) + msm6222b_device(mconfig, MSM6222B, tag, owner, clock) { + m_cgrom.set_tag(DEVICE_SELF); } msm6222b_01_device::msm6222b_01_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - msm6222b_device(mconfig, MSM6222B_01, "msm6222b-01", tag, owner, clock, "msm6222b01", __FILE__) + msm6222b_device(mconfig, MSM6222B_01, tag, owner, clock) { // load the fixed cgrom m_cgrom.set_tag("cgrom"); diff --git a/src/devices/video/msm6222b.h b/src/devices/video/msm6222b.h index c09bb0ee973..9cf3623e25f 100644 --- a/src/devices/video/msm6222b.h +++ b/src/devices/video/msm6222b.h @@ -10,8 +10,10 @@ ***************************************************************************/ -#ifndef __MSM6222B_H__ -#define __MSM6222B_H__ +#ifndef MAME_VIDEO_MSM6222B_H +#define MAME_VIDEO_MSM6222B_H + +#pragma once #define MCFG_MSM6222B_ADD( _tag ) \ MCFG_DEVICE_ADD( _tag, MSM6222B, 0 ) @@ -22,7 +24,6 @@ class msm6222b_device : public device_t { public: msm6222b_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - msm6222b_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); void control_w(uint8_t data); uint8_t control_r(); @@ -33,20 +34,22 @@ public: const uint8_t *render(); protected: + msm6222b_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; + optional_region_ptr m_cgrom; + + void cursor_step(bool direction); + void shift_step(bool direction); + bool blink_on() const; + private: uint8_t cgram[8*8]; uint8_t ddram[80]; uint8_t render_buf[80*16]; bool cursor_direction, cursor_blinking, two_line, shift_on_write, double_height, cursor_on, display_on; uint8_t adc, shift; -protected: - optional_region_ptr m_cgrom; - - void cursor_step(bool direction); - void shift_step(bool direction); - bool blink_on() const; }; class msm6222b_01_device : public msm6222b_device { @@ -57,7 +60,7 @@ protected: virtual const tiny_rom_entry *device_rom_region() const override; }; -extern const device_type MSM6222B; -extern const device_type MSM6222B_01; +DECLARE_DEVICE_TYPE(MSM6222B, msm6222b_device) +DECLARE_DEVICE_TYPE(MSM6222B_01, msm6222b_01_device) -#endif +#endif // MAME_VIDEO_MSM6222B_H diff --git a/src/devices/video/msm6255.cpp b/src/devices/video/msm6255.cpp index 516dd8a0f12..d7ee5ce7903 100644 --- a/src/devices/video/msm6255.cpp +++ b/src/devices/video/msm6255.cpp @@ -9,15 +9,14 @@ #include "emu.h" #include "msm6255.h" +//#define VERBOSE 1 +#include "logmacro.h" //************************************************************************** // MACROS / CONSTANTS //************************************************************************** -#define LOG 0 - - #define MOR_GRAPHICS 0x01 #define MOR_4_BIT_PARALLEL 0x02 #define MOR_2_BIT_PARALLEL 0x04 @@ -52,7 +51,7 @@ //************************************************************************** // device type definition -const device_type MSM6255 = device_creator; +DEFINE_DEVICE_TYPE(MSM6255, msm6255_device, "msm6255", "Oki MSM6255 LCD Controller") // I/O map DEVICE_ADDRESS_MAP_START( map, 8, msm6255_device ) @@ -76,7 +75,7 @@ ADDRESS_MAP_END //------------------------------------------------- msm6255_device::msm6255_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, MSM6255, "MSM6255", tag, owner, clock, "msm6255", __FILE__), + device_t(mconfig, MSM6255, tag, owner, clock), device_memory_interface(mconfig, *this), device_video_interface(mconfig, *this), m_space_config("videoram", ENDIANNESS_LITTLE, 8, 20, 0, nullptr, *ADDRESS_MAP_NAME(msm6255)), diff --git a/src/devices/video/msm6255.h b/src/devices/video/msm6255.h index 45e43d24b20..8028d69f86c 100644 --- a/src/devices/video/msm6255.h +++ b/src/devices/video/msm6255.h @@ -6,11 +6,10 @@ **********************************************************************/ -#pragma once - -#ifndef __MSM6255__ -#define __MSM6255__ +#ifndef MAME_VIDEO_MSM6255_H +#define MAME_VIDEO_MSM6255_H +#pragma once @@ -44,7 +43,7 @@ protected: virtual void device_reset() override; // device_memory_interface overrides - virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_0) const override; + virtual const address_space_config *memory_space_config(address_spacenum spacenum) const override; private: // registers @@ -87,8 +86,6 @@ private: // device type definition -extern const device_type MSM6255; - - +DECLARE_DEVICE_TYPE(MSM6255, msm6255_device) -#endif +#endif // MAME_VIDEO_MSM6255_H diff --git a/src/devices/video/pc_vga.cpp b/src/devices/video/pc_vga.cpp index b6869a63b59..076f93aeb7e 100644 --- a/src/devices/video/pc_vga.cpp +++ b/src/devices/video/pc_vga.cpp @@ -121,78 +121,78 @@ enum ***************************************************************************/ // device type definition -const device_type VGA = device_creator; -const device_type TSENG_VGA = device_creator; -const device_type S3_VGA = device_creator; -const device_type GAMTOR_VGA = device_creator; -const device_type ATI_VGA = device_creator; -const device_type IBM8514A = device_creator; -const device_type MACH8 = device_creator; - -vga_device::vga_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source) +DEFINE_DEVICE_TYPE(VGA, vga_device, "vga", "VGA") +DEFINE_DEVICE_TYPE(TSENG_VGA, tseng_vga_device, "tseng_vga", "Tseng Labs VGA") +DEFINE_DEVICE_TYPE(S3_VGA, s3_vga_device, "s3_vga", "S3 Graphics VGA") +DEFINE_DEVICE_TYPE(GAMTOR_VGA, gamtor_vga_device, "gamtor_vga", "GAMTOR VGA") +DEFINE_DEVICE_TYPE(ATI_VGA, ati_vga_device, "ati_vga", "ATi VGA") +DEFINE_DEVICE_TYPE(IBM8514A, ibm8514a_device, "ibm8514a", "IBM 8514/A Video") +DEFINE_DEVICE_TYPE(MACH8, mach8_device, "mach8", "Mach8") + +vga_device::vga_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) , m_palette(*this, "^palette") , m_screen(*this,"^screen") { } vga_device::vga_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : vga_device(mconfig, VGA, "VGA", tag, owner, clock, "vga", __FILE__) + : vga_device(mconfig, VGA, tag, owner, clock) { } -svga_device::svga_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : vga_device(mconfig, type, name, tag, owner, clock, shortname, source) +svga_device::svga_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : vga_device(mconfig, type, tag, owner, clock) { } tseng_vga_device::tseng_vga_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : svga_device(mconfig, TSENG_VGA, "TSENG LABS VGA", tag, owner, clock, "tseng_vga", __FILE__) + : svga_device(mconfig, TSENG_VGA, tag, owner, clock) { } s3_vga_device::s3_vga_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : s3_vga_device(mconfig, S3_VGA, "S3 Graphics VGA", tag, owner, clock, "s3_vga", __FILE__) + : s3_vga_device(mconfig, S3_VGA, tag, owner, clock) { } -s3_vga_device::s3_vga_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : ati_vga_device(mconfig, type, name, tag, owner, clock, shortname, source) +s3_vga_device::s3_vga_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : ati_vga_device(mconfig, type, tag, owner, clock) { } gamtor_vga_device::gamtor_vga_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : svga_device(mconfig, GAMTOR_VGA, "GAMTOR VGA", tag, owner, clock, "gamtor_vga", __FILE__) + : svga_device(mconfig, GAMTOR_VGA, tag, owner, clock) { } ati_vga_device::ati_vga_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : ati_vga_device(mconfig, ATI_VGA, "ATI VGA", tag, owner, clock, "ati_vga", __FILE__) + : ati_vga_device(mconfig, ATI_VGA, tag, owner, clock) { } -ati_vga_device::ati_vga_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : svga_device(mconfig, type, name, tag, owner, clock, shortname, source) +ati_vga_device::ati_vga_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : svga_device(mconfig, type, tag, owner, clock) { } ibm8514a_device::ibm8514a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : ibm8514a_device(mconfig, IBM8514A, "IBM8514A Video", tag, owner, clock, "ibm8514a", __FILE__) + : ibm8514a_device(mconfig, IBM8514A, tag, owner, clock) { } -ibm8514a_device::ibm8514a_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source) +ibm8514a_device::ibm8514a_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) { } -mach8_device::mach8_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : ibm8514a_device(mconfig, type, name, tag, owner, clock, shortname, source) +mach8_device::mach8_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : ibm8514a_device(mconfig, type, tag, owner, clock) { } mach8_device::mach8_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mach8_device(mconfig, MACH8, "MACH8", tag, owner, clock, "mach8", __FILE__) + : mach8_device(mconfig, MACH8, tag, owner, clock) { } diff --git a/src/devices/video/pc_vga.h b/src/devices/video/pc_vga.h index dbfad026886..1107282b8c2 100644 --- a/src/devices/video/pc_vga.h +++ b/src/devices/video/pc_vga.h @@ -8,8 +8,8 @@ ***************************************************************************/ -#ifndef MAME_DEVICES_VIDEO_PC_VGA_H -#define MAME_DEVICES_VIDEO_PC_VGA_H +#ifndef MAME_VIDEO_PC_VGA_H +#define MAME_VIDEO_PC_VGA_H #include "screen.h" @@ -18,21 +18,6 @@ MACHINE_CONFIG_EXTERN( pcvideo_trident_vga ); MACHINE_CONFIG_EXTERN( pcvideo_gamtor_vga ); MACHINE_CONFIG_EXTERN( pcvideo_s3_vga ); -enum -{ - SCREEN_OFF = 0, - TEXT_MODE, - VGA_MODE, - EGA_MODE, - CGA_MODE, - MONO_MODE, - RGB8_MODE, - RGB15_MODE, - RGB16_MODE, - RGB24_MODE, - RGB32_MODE -}; - // ======================> vga_device class vga_device : public device_t @@ -59,7 +44,22 @@ public: virtual TIMER_CALLBACK_MEMBER(vblank_timer_cb); protected: - vga_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); + enum + { + SCREEN_OFF = 0, + TEXT_MODE, + VGA_MODE, + EGA_MODE, + CGA_MODE, + MONO_MODE, + RGB8_MODE, + RGB15_MODE, + RGB16_MODE, + RGB24_MODE, + RGB32_MODE + }; + + vga_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); // device-level overrides virtual void device_start() override; @@ -89,20 +89,20 @@ protected: { uint8_t res = 0; - switch(vga.gc.logical_op & 3) + switch (vga.gc.logical_op & 3) { - case 0: /* NONE */ - res = (data & mask) | (vga.gc.latch[plane] & ~mask); - break; - case 1: /* AND */ - res = (data | ~mask) & (vga.gc.latch[plane]); - break; - case 2: /* OR */ - res = (data & mask) | (vga.gc.latch[plane]); - break; - case 3: /* XOR */ - res = (data & mask) ^ (vga.gc.latch[plane]); - break; + case 0: /* NONE */ + res = (data & mask) | (vga.gc.latch[plane] & ~mask); + break; + case 1: /* AND */ + res = (data | ~mask) & (vga.gc.latch[plane]); + break; + case 2: /* OR */ + res = (data & mask) | (vga.gc.latch[plane]); + break; + case 3: /* XOR */ + res = (data & mask) ^ (vga.gc.latch[plane]); + break; } return res; @@ -238,7 +238,7 @@ protected: // device type definition -extern const device_type VGA; +DECLARE_DEVICE_TYPE(VGA, vga_device) // ======================> svga_device @@ -250,7 +250,7 @@ public: protected: // construction/destruction - svga_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); + svga_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); void svga_vh_rgb8(bitmap_rgb32 &bitmap, const rectangle &cliprect); void svga_vh_rgb15(bitmap_rgb32 &bitmap, const rectangle &cliprect); @@ -380,8 +380,9 @@ public: uint8_t wait_vector_count; } ibm8514; + protected: - ibm8514a_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); + ibm8514a_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); virtual void device_start() override; virtual void device_config_complete() override; @@ -402,7 +403,7 @@ private: }; // device type definition -extern const device_type IBM8514A; +DECLARE_DEVICE_TYPE(IBM8514A, ibm8514a_device) #define MCFG_8514A_ADD(_tag, _param) \ MCFG_DEVICE_ADD(_tag, IBM8514A, 0) \ @@ -413,7 +414,7 @@ extern const device_type IBM8514A; downcast(device)->set_vga_owner(); -class mach8_device : public ibm8514a_device +class mach8_device : public ibm8514a_device { public: mach8_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); @@ -445,7 +446,7 @@ public: READ16_MEMBER(mach8_clksel_r) { return mach8.clksel; } protected: - mach8_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); + mach8_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); virtual void device_start() override; struct { @@ -457,7 +458,7 @@ protected: }; // device type definition -extern const device_type MACH8; +DECLARE_DEVICE_TYPE(MACH8, mach8_device) #define MCFG_MACH8_ADD(_tag, _param) \ MCFG_DEVICE_ADD(_tag, MACH8, 0) \ @@ -511,12 +512,12 @@ private: // device type definition -extern const device_type TSENG_VGA; +DECLARE_DEVICE_TYPE(TSENG_VGA, tseng_vga_device) // ======================> ati_vga_device -class ati_vga_device : public svga_device +class ati_vga_device : public svga_device { public: // construction/destruction @@ -535,7 +536,7 @@ public: mach8_device* get_8514() { return m_8514; } protected: - ati_vga_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); + ati_vga_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); virtual void device_start() override; private: void ati_define_video_mode(); @@ -549,7 +550,7 @@ private: }; // device type definition -extern const device_type ATI_VGA; +DECLARE_DEVICE_TYPE(ATI_VGA, ati_vga_device) // ======================> s3_vga_device @@ -577,7 +578,7 @@ public: ibm8514a_device* get_8514() { return m_8514; } protected: - s3_vga_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); + s3_vga_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); // device-level overrides virtual void device_start() override; @@ -640,7 +641,7 @@ private: }; // device type definition -extern const device_type S3_VGA; +DECLARE_DEVICE_TYPE(S3_VGA, s3_vga_device) // ======================> gamtor_vga_device @@ -663,7 +664,7 @@ public: // device type definition -extern const device_type GAMTOR_VGA; +DECLARE_DEVICE_TYPE(GAMTOR_VGA, gamtor_vga_device) /* pega notes (paradise) @@ -706,4 +707,4 @@ extern const device_type GAMTOR_VGA; */ -#endif /* MAME_DEVICES_VIDEO_PC_VGA_H */ +#endif // MAME_VIDEO_PC_VGA_H diff --git a/src/devices/video/pcd8544.cpp b/src/devices/video/pcd8544.cpp index 89ce964d6c0..0cca6742b05 100644 --- a/src/devices/video/pcd8544.cpp +++ b/src/devices/video/pcd8544.cpp @@ -11,14 +11,15 @@ #include "screen.h" +//#define VERBOSE 1 +#include "logmacro.h" -#define LOG 0 //************************************************************************** // DEVICE DEFINITIONS //************************************************************************** -const device_type PCD8544 = device_creator; +DEFINE_DEVICE_TYPE(PCD8544, pcd8544_device, "pcd8544_device", "Philips PCD8544 LCD Controller") //************************************************************************** @@ -30,7 +31,7 @@ const device_type PCD8544 = device_creator; //------------------------------------------------- pcd8544_device::pcd8544_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, PCD8544, "PCD8544", tag, owner, clock, "pcd8544", __FILE__) + device_t(mconfig, PCD8544, tag, owner, clock) { } @@ -85,7 +86,7 @@ void pcd8544_device::exec_command(uint8_t cmd) if(cmd & 0x80) { m_op_vol = cmd & 0x7f; - if (LOG) logerror("PCD8544: set Vop %d\n", m_op_vol); + LOG("PCD8544: set Vop %d\n", m_op_vol); } else if(cmd & 0x40) { @@ -94,12 +95,12 @@ void pcd8544_device::exec_command(uint8_t cmd) else if(cmd & 0x20) { m_mode = cmd & 0x07; - if (LOG) logerror("PCD8544: set PD=%d V=%d H=%d\n", BIT(m_mode, 2), BIT(m_mode, 1), BIT(m_mode, 0)); + LOG("PCD8544: set PD=%d V=%d H=%d\n", BIT(m_mode, 2), BIT(m_mode, 1), BIT(m_mode, 0)); } else if(cmd & 0x10) { m_bias = cmd & 0x07; - if (LOG) logerror("PCD8544: set bias system %d\n", m_bias); + LOG("PCD8544: set bias system %d\n", m_bias); } else if(cmd & 0x08) { @@ -108,7 +109,7 @@ void pcd8544_device::exec_command(uint8_t cmd) else if(cmd & 0x04) { m_temp_coef = cmd & 0x03; - if (LOG) logerror("PCD8544: set temperature coefficient %d\n", m_temp_coef); + LOG("PCD8544: set temperature coefficient %d\n", m_temp_coef); } else if (cmd) { @@ -120,17 +121,17 @@ void pcd8544_device::exec_command(uint8_t cmd) if(cmd & 0x80) { m_addr_x = (cmd & 0x7f) % 84; - if (LOG) logerror("PCD8544: set X-address %d\n", cmd & 0x7f); + LOG("PCD8544: set X-address %d\n", cmd & 0x7f); } else if(cmd & 0x40) { m_addr_y = (cmd & 0x07) % 6; - if (LOG) logerror("PCD8544: set Y-address %d\n", cmd & 0x07); + LOG("PCD8544: set Y-address %d\n", cmd & 0x07); } else if(cmd & 0x20) { m_mode = cmd & 0x07; - if (LOG) logerror("PCD8544: set PD=%d V=%d H=%d\n", BIT(m_mode, 2), BIT(m_mode, 1), BIT(m_mode, 0)); + LOG("PCD8544: set PD=%d V=%d H=%d\n", BIT(m_mode, 2), BIT(m_mode, 1), BIT(m_mode, 0)); } else if(cmd & 0x10) { @@ -139,7 +140,7 @@ void pcd8544_device::exec_command(uint8_t cmd) else if(cmd & 0x08) { m_control = ((cmd & 0x04) >> 1) | (cmd & 0x01); - if (LOG) logerror("PCD8544: set D=%d E=%d\n", BIT(m_control, 1), BIT(m_control, 0)); + LOG("PCD8544: set D=%d E=%d\n", BIT(m_control, 1), BIT(m_control, 0)); } else if (cmd) { diff --git a/src/devices/video/pcd8544.h b/src/devices/video/pcd8544.h index e8066f6eb65..8a5c71e6e95 100644 --- a/src/devices/video/pcd8544.h +++ b/src/devices/video/pcd8544.h @@ -6,24 +6,23 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_VIDEO_PCD8544_H +#define MAME_VIDEO_PCD8544_H -#ifndef __PCD8544_H__ -#define __PCD8544_H__ +#pragma once //************************************************************************** // TYPE DEFINITIONS //************************************************************************** -typedef device_delegate pcd8544_screen_update_delegate; #define PCD8544_SCREEN_UPDATE(name) void name(device_t &device, bitmap_ind16 &bitmap, const rectangle &cliprect , uint8_t *vram, int inv) #define MCFG_PCD8544_ADD( _tag ) \ MCFG_DEVICE_ADD( _tag, PCD8544, 0 ) #define MCFG_PCD8544_SCREEN_UPDATE_CALLBACK(_class, _method) \ - pcd8544_device::static_set_screen_update_cb(*device, pcd8544_screen_update_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); + pcd8544_device::static_set_screen_update_cb(*device, pcd8544_device::screen_update_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); // ======================> pcd8544_device @@ -31,9 +30,11 @@ typedef device_delegate screen_update_delegate; + // construction/destruction pcd8544_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - static void static_set_screen_update_cb(device_t &device, pcd8544_screen_update_delegate _cb) { downcast(device).m_screen_update_cb = _cb; } + static void static_set_screen_update_cb(device_t &device, screen_update_delegate &&cb) { downcast(device).m_screen_update_cb = std::move(cb); } // device interface DECLARE_WRITE_LINE_MEMBER(sdin_w); @@ -50,7 +51,7 @@ protected: void write_data(uint8_t data); private: - pcd8544_screen_update_delegate m_screen_update_cb; // screen update callback + screen_update_delegate m_screen_update_cb; // screen update callback int m_sdin; int m_sclk; int m_dc; @@ -67,6 +68,6 @@ private: }; // device type definition -extern const device_type PCD8544; +DECLARE_DEVICE_TYPE(PCD8544, pcd8544_device) -#endif +#endif // MAME_VIDEO_PCD8544_H diff --git a/src/devices/video/poly.h b/src/devices/video/poly.h index a8b606bc08e..2c88c29a47f 100644 --- a/src/devices/video/poly.h +++ b/src/devices/video/poly.h @@ -32,8 +32,8 @@ ***************************************************************************/ -#ifndef MAME_DEVICES_VIDEO_POLY_H -#define MAME_DEVICES_VIDEO_POLY_H +#ifndef MAME_VIDEO_POLY_H +#define MAME_VIDEO_POLY_H #pragma once @@ -50,56 +50,21 @@ // keep statistics #define KEEP_POLY_STATISTICS 0 -// turn this on to log the reasons for any long waits -#define LOG_WAITS 0 - -// number of profiling ticks before we consider a wait "long" -#define LOG_WAIT_THRESHOLD 1000 - - - -/*************************************************************************** - CONSTANTS -***************************************************************************/ - -#define POLYFLAG_INCLUDE_BOTTOM_EDGE 0x01 -#define POLYFLAG_INCLUDE_RIGHT_EDGE 0x02 -#define POLYFLAG_NO_WORK_QUEUE 0x04 - -#define SCANLINES_PER_BUCKET 8 -#define CACHE_LINE_SIZE 64 // this is a general guess -#define TOTAL_BUCKETS (512 / SCANLINES_PER_BUCKET) -#define UNITS_PER_POLY (100 / SCANLINES_PER_BUCKET) - //************************************************************************** // TYPE DEFINITIONS //************************************************************************** -//------------------------------------------------- -// global helpers for float base types -//------------------------------------------------- - -inline float poly_floor(float x) { return floorf(x); } -inline float poly_abs(float x) { return fabsf(x); } -inline float poly_recip(float x) { return 1.0f / x; } - - -//------------------------------------------------- -// global helpers for double base types -//------------------------------------------------- - -inline double poly_floor(double x) { return floor(x); } -inline double poly_abs(double x) { return fabs(x); } -inline double poly_recip(double x) { return 1.0 / x; } - - // poly_manager is a template class template class poly_manager { public: + static constexpr uint8_t FLAG_INCLUDE_BOTTOM_EDGE = 0x01; + static constexpr uint8_t FLAG_INCLUDE_RIGHT_EDGE = 0x02; + static constexpr uint8_t FLAG_NO_WORK_QUEUE = 0x04; + // each vertex has an X/Y coordinate and a set of parameters struct vertex_t { @@ -159,6 +124,17 @@ public: int zclip_if_less(int numverts, const vertex_t *v, vertex_t *outv, int paramcount, _BaseType clipval); private: + // turn this on to log the reasons for any long waits + static constexpr bool POLY_LOG_WAITS = false; + + // number of profiling ticks before we consider a wait "long" + static constexpr osd_ticks_t POLY_LOG_WAIT_THRESHOLD = 1000; + + static constexpr int SCANLINES_PER_BUCKET = 8; + static constexpr int CACHE_LINE_SIZE = 64; // this is a general guess + static constexpr int TOTAL_BUCKETS = (512 / SCANLINES_PER_BUCKET); + static constexpr int UNITS_PER_POLY = (100 / SCANLINES_PER_BUCKET); + // polygon_info describes a single polygon, which includes the poly_params struct polygon_info { @@ -180,6 +156,24 @@ private: extent_t extent[SCANLINES_PER_BUCKET]; // array of scanline extents }; + //------------------------------------------------- + // global helpers for float base types + //------------------------------------------------- + + static float poly_floor(float x) { return floorf(x); } + static float poly_abs(float x) { return fabsf(x); } + static float poly_recip(float x) { return 1.0f / x; } + + + //------------------------------------------------- + // global helpers for double base types + //------------------------------------------------- + + static double poly_floor(double x) { return floor(x); } + static double poly_abs(double x) { return fabs(x); } + static double poly_recip(double x) { return 1.0 / x; } + + // class for managing an array of items template class poly_array @@ -309,7 +303,7 @@ poly_manager<_BaseType, _ObjectData, _MaxParams, _MaxPolys>::poly_manager(runnin #endif // create the work queue - if (!(flags & POLYFLAG_NO_WORK_QUEUE)) + if (!(flags & FLAG_NO_WORK_QUEUE)) m_queue = osd_work_queue_alloc(WORK_QUEUE_FLAG_MULTI | WORK_QUEUE_FLAG_HIGH_FREQ); // request a pre-save callback for synchronization @@ -336,7 +330,7 @@ poly_manager<_BaseType, _ObjectData, _MaxParams, _MaxPolys>::poly_manager(screen #endif // create the work queue - if (!(flags & POLYFLAG_NO_WORK_QUEUE)) + if (!(flags & FLAG_NO_WORK_QUEUE)) m_queue = osd_work_queue_alloc(WORK_QUEUE_FLAG_MULTI | WORK_QUEUE_FLAG_HIGH_FREQ); // request a pre-save callback for synchronization @@ -454,7 +448,7 @@ void poly_manager<_BaseType, _ObjectData, _MaxParams, _MaxPolys>::wait(const cha osd_ticks_t time; // remember the start time if we're logging - if (LOG_WAITS) + if (POLY_LOG_WAITS) time = get_profile_ticks(); // wait for all pending work items to complete @@ -467,10 +461,10 @@ void poly_manager<_BaseType, _ObjectData, _MaxParams, _MaxPolys>::wait(const cha work_item_callback(&m_unit[unitnum], 0); // log any long waits - if (LOG_WAITS) + if (POLY_LOG_WAITS) { time = get_profile_ticks() - time; - if (time > LOG_WAIT_THRESHOLD) + if (time > POLY_LOG_WAIT_THRESHOLD) machine().logerror("Poly:Waited %d cycles for %s\n", (int)time, debug_reason); } @@ -528,7 +522,7 @@ uint32_t poly_manager<_BaseType, _ObjectData, _MaxParams, _MaxPolys>::render_til // clip coordinates int32_t v1yclip = v1y; - int32_t v2yclip = v2y + ((m_flags & POLYFLAG_INCLUDE_BOTTOM_EDGE) ? 1 : 0); + int32_t v2yclip = v2y + ((m_flags & FLAG_INCLUDE_BOTTOM_EDGE) ? 1 : 0); v1yclip = std::max(v1yclip, cliprect.min_y); v2yclip = std::min(v2yclip, cliprect.max_y + 1); if (v2yclip - v1yclip <= 0) @@ -570,7 +564,7 @@ uint32_t poly_manager<_BaseType, _ObjectData, _MaxParams, _MaxPolys>::render_til } // include the right edge if requested - if (m_flags & POLYFLAG_INCLUDE_RIGHT_EDGE) + if (m_flags & FLAG_INCLUDE_RIGHT_EDGE) istopx++; // apply left/right clipping @@ -673,7 +667,7 @@ uint32_t poly_manager<_BaseType, _ObjectData, _MaxParams, _MaxPolys>::render_tri // clip coordinates int32_t v1yclip = v1y; - int32_t v3yclip = v3y + ((m_flags & POLYFLAG_INCLUDE_BOTTOM_EDGE) ? 1 : 0); + int32_t v3yclip = v3y + ((m_flags & FLAG_INCLUDE_BOTTOM_EDGE) ? 1 : 0); v1yclip = std::max(v1yclip, cliprect.min_y); v3yclip = std::min(v3yclip, cliprect.max_y + 1); if (v3yclip - v1yclip <= 0) @@ -784,7 +778,7 @@ uint32_t poly_manager<_BaseType, _ObjectData, _MaxParams, _MaxPolys>::render_tri } // include the right edge if requested - if (m_flags & POLYFLAG_INCLUDE_RIGHT_EDGE) + if (m_flags & FLAG_INCLUDE_RIGHT_EDGE) istopx++; // apply left/right clipping @@ -971,7 +965,7 @@ uint32_t poly_manager<_BaseType, _ObjectData, _MaxParams, _MaxPolys>::render_pol // clip coordinates int32_t minyclip = miny; - int32_t maxyclip = maxy + ((m_flags & POLYFLAG_INCLUDE_BOTTOM_EDGE) ? 1 : 0); + int32_t maxyclip = maxy + ((m_flags & FLAG_INCLUDE_BOTTOM_EDGE) ? 1 : 0); minyclip = std::max(minyclip, cliprect.min_y); maxyclip = std::min(maxyclip, cliprect.max_y + 1); if (maxyclip - minyclip <= 0) @@ -1104,7 +1098,7 @@ uint32_t poly_manager<_BaseType, _ObjectData, _MaxParams, _MaxPolys>::render_pol } // include the right edge if requested - if (m_flags & POLYFLAG_INCLUDE_RIGHT_EDGE) + if (m_flags & FLAG_INCLUDE_RIGHT_EDGE) istopx++; // apply left/right clipping diff --git a/src/devices/video/polylgcy.cpp b/src/devices/video/polylgcy.cpp index 5e8383062ca..2b3f8ccee02 100644 --- a/src/devices/video/polylgcy.cpp +++ b/src/devices/video/polylgcy.cpp @@ -10,8 +10,12 @@ #include "emu.h" #include "polylgcy.h" + #include + +namespace { + /*************************************************************************** DEBUGGING ***************************************************************************/ @@ -71,7 +75,7 @@ struct poly_edge const poly_vertex * v1; /* pointer to first vertex */ const poly_vertex * v2; /* pointer to second vertex */ float dxdy; /* dx/dy along the edge */ - float dpdy[MAX_VERTEX_PARAMS];/* per-parameter dp/dy values */ + float dpdy[POLYLGCY_MAX_VERTEX_PARAMS];/* per-parameter dp/dy values */ }; @@ -133,9 +137,11 @@ struct polygon_info poly_draw_scanline_func callback; /* callback to handle a scanline's worth of work */ int32_t xorigin; /* X origin for all parameters */ int32_t yorigin; /* Y origin for all parameters */ - poly_param param[MAX_VERTEX_PARAMS];/* array of parameter data */ + poly_param param[POLYLGCY_MAX_VERTEX_PARAMS];/* array of parameter data */ }; +} // anonymous namespace + /* full poly manager description */ struct legacy_poly_manager @@ -331,13 +337,13 @@ legacy_poly_manager *poly_alloc(running_machine &machine, int max_polys, size_t poly->extra = allocate_array(machine, &poly->extra_size, poly->extra_count); /* allocate triangle work units */ - poly->unit_size = (flags & POLYFLAG_ALLOW_QUADS) ? sizeof(quad_work_unit) : sizeof(tri_work_unit); + poly->unit_size = (flags & POLYLGCY_FLAG_ALLOW_QUADS) ? sizeof(quad_work_unit) : sizeof(tri_work_unit); poly->unit_count = std::min(poly->polygon_count * UNITS_PER_POLY, 65535U); poly->unit_next = 0; poly->unit = (work_unit **)allocate_array(machine, &poly->unit_size, poly->unit_count); /* create the work queue */ - if (!(flags & POLYFLAG_NO_WORK_QUEUE)) + if (!(flags & POLYLGCY_FLAG_NO_WORK_QUEUE)) poly->queue = osd_work_queue_alloc(WORK_QUEUE_FLAG_MULTI | WORK_QUEUE_FLAG_HIGH_FREQ); /* request a pre-save callback for synchronization */ @@ -500,7 +506,7 @@ uint32_t poly_render_triangle(legacy_poly_manager *poly, void *dest, const recta /* clip coordinates */ v1yclip = v1y; - v3yclip = v3y + ((poly->flags & POLYFLAG_INCLUDE_BOTTOM_EDGE) ? 1 : 0); + v3yclip = v3y + ((poly->flags & POLYLGCY_FLAG_INCLUDE_BOTTOM_EDGE) ? 1 : 0); v1yclip = std::max(v1yclip, cliprect.min_y); v3yclip = std::min(v3yclip, cliprect.max_y + 1); if (v3yclip - v1yclip <= 0) @@ -572,7 +578,7 @@ uint32_t poly_render_triangle(legacy_poly_manager *poly, void *dest, const recta } /* include the right edge if requested */ - if (poly->flags & POLYFLAG_INCLUDE_RIGHT_EDGE) + if (poly->flags & POLYLGCY_FLAG_INCLUDE_RIGHT_EDGE) istopx++; /* apply left/right clipping */ @@ -772,7 +778,7 @@ uint32_t poly_render_quad(legacy_poly_manager *poly, void *dest, const rectangle int32_t pixels = 0; uint32_t startunit; - assert(poly->flags & POLYFLAG_ALLOW_QUADS); + assert(poly->flags & POLYLGCY_FLAG_ALLOW_QUADS); /* arrays make things easier */ v[0] = v1; @@ -800,7 +806,7 @@ uint32_t poly_render_quad(legacy_poly_manager *poly, void *dest, const rectangle /* clip coordinates */ minyclip = miny; - maxyclip = maxy + ((poly->flags & POLYFLAG_INCLUDE_BOTTOM_EDGE) ? 1 : 0); + maxyclip = maxy + ((poly->flags & POLYLGCY_FLAG_INCLUDE_BOTTOM_EDGE) ? 1 : 0); minyclip = std::max(minyclip, cliprect.min_y); maxyclip = std::min(maxyclip, cliprect.max_y + 1); if (maxyclip - minyclip <= 0) @@ -937,7 +943,7 @@ uint32_t poly_render_quad(legacy_poly_manager *poly, void *dest, const rectangle } /* include the right edge if requested */ - if (poly->flags & POLYFLAG_INCLUDE_RIGHT_EDGE) + if (poly->flags & POLYLGCY_FLAG_INCLUDE_RIGHT_EDGE) istopx++; /* apply left/right clipping */ @@ -1002,7 +1008,7 @@ uint32_t poly_render_quad_fan(legacy_poly_manager *poly, void *dest, const recta uint32_t poly_render_polygon(legacy_poly_manager *poly, void *dest, const rectangle &cliprect, poly_draw_scanline_func callback, int paramcount, int numverts, const poly_vertex *v) { - poly_edge fedgelist[MAX_POLYGON_VERTS - 1], bedgelist[MAX_POLYGON_VERTS - 1]; + poly_edge fedgelist[POLYLGCY_MAX_POLYGON_VERTS - 1], bedgelist[POLYLGCY_MAX_POLYGON_VERTS - 1]; const poly_edge *ledge, *redge; poly_edge *edgeptr; int minv, maxv, curv; @@ -1014,7 +1020,7 @@ uint32_t poly_render_polygon(legacy_poly_manager *poly, void *dest, const rectan uint32_t startunit; int vertnum; - assert(poly->flags & POLYFLAG_ALLOW_QUADS); + assert(poly->flags & POLYLGCY_FLAG_ALLOW_QUADS); /* determine min/max Y vertices */ minv = maxv = 0; @@ -1032,7 +1038,7 @@ uint32_t poly_render_polygon(legacy_poly_manager *poly, void *dest, const rectan /* clip coordinates */ minyclip = miny; - maxyclip = maxy + ((poly->flags & POLYFLAG_INCLUDE_BOTTOM_EDGE) ? 1 : 0); + maxyclip = maxy + ((poly->flags & POLYLGCY_FLAG_INCLUDE_BOTTOM_EDGE) ? 1 : 0); minyclip = std::max(minyclip, cliprect.min_y); maxyclip = std::min(maxyclip, cliprect.max_y + 1); if (maxyclip - minyclip <= 0) @@ -1169,7 +1175,7 @@ uint32_t poly_render_polygon(legacy_poly_manager *poly, void *dest, const rectan } /* include the right edge if requested */ - if (poly->flags & POLYFLAG_INCLUDE_RIGHT_EDGE) + if (poly->flags & POLYLGCY_FLAG_INCLUDE_RIGHT_EDGE) istopx++; /* apply left/right clipping */ diff --git a/src/devices/video/polylgcy.h b/src/devices/video/polylgcy.h index fe7f13205f4..142ca5c073b 100644 --- a/src/devices/video/polylgcy.h +++ b/src/devices/video/polylgcy.h @@ -32,23 +32,23 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_VIDEO_POLYLGCY_H +#define MAME_VIDEO_POLYLGCY_H -#ifndef __POLYLGCY_H__ -#define __POLYLGCY_H__ +#pragma once /*************************************************************************** CONSTANTS ***************************************************************************/ -#define MAX_VERTEX_PARAMS 6 -#define MAX_POLYGON_VERTS 32 +static constexpr unsigned POLYLGCY_MAX_VERTEX_PARAMS = 6; +static constexpr unsigned POLYLGCY_MAX_POLYGON_VERTS = 32; -#define POLYFLAG_INCLUDE_BOTTOM_EDGE 0x01 -#define POLYFLAG_INCLUDE_RIGHT_EDGE 0x02 -#define POLYFLAG_NO_WORK_QUEUE 0x04 -#define POLYFLAG_ALLOW_QUADS 0x08 +static constexpr uint8_t POLYLGCY_FLAG_INCLUDE_BOTTOM_EDGE = 0x01; +static constexpr uint8_t POLYLGCY_FLAG_INCLUDE_RIGHT_EDGE = 0x02; +static constexpr uint8_t POLYLGCY_FLAG_NO_WORK_QUEUE = 0x04; +static constexpr uint8_t POLYLGCY_FLAG_ALLOW_QUADS = 0x08; @@ -65,7 +65,7 @@ struct poly_vertex { float x; /* X coordinate */ float y; /* Y coordinate */ - float p[MAX_VERTEX_PARAMS]; /* interpolated parameter values */ + float p[POLYLGCY_MAX_VERTEX_PARAMS]; /* interpolated parameter values */ }; @@ -82,7 +82,7 @@ struct poly_extent { int16_t startx; /* starting X coordinate (inclusive) */ int16_t stopx; /* ending X coordinate (exclusive) */ - poly_param_extent param[MAX_VERTEX_PARAMS]; /* starting and dx values for each parameter */ + poly_param_extent param[POLYLGCY_MAX_VERTEX_PARAMS]; /* starting and dx values for each parameter */ }; @@ -152,4 +152,4 @@ uint32_t poly_render_polygon(legacy_poly_manager *poly, void *dest, const rectan int poly_zclip_if_less(int numverts, const poly_vertex *v, poly_vertex *outv, int paramcount, float clipval); -#endif /* __POLYLGCY_H__ */ +#endif // MAME_VIDEO_POLYLGCY_H diff --git a/src/devices/video/ppu2c0x.cpp b/src/devices/video/ppu2c0x.cpp index 0d787209d15..a64f890c805 100644 --- a/src/devices/video/ppu2c0x.cpp +++ b/src/devices/video/ppu2c0x.cpp @@ -75,15 +75,15 @@ static const pen_t default_colortable[] = //************************************************************************** // devices -const device_type PPU_2C02 = device_creator; -const device_type PPU_2C03B = device_creator; -const device_type PPU_2C04 = device_creator; -const device_type PPU_2C07 = device_creator; -const device_type PPU_PALC = device_creator; -const device_type PPU_2C05_01 = device_creator; -const device_type PPU_2C05_02 = device_creator; -const device_type PPU_2C05_03 = device_creator; -const device_type PPU_2C05_04 = device_creator; +DEFINE_DEVICE_TYPE(PPU_2C02, ppu2c02_device, "ppu2c02", "2C02 PPU") +DEFINE_DEVICE_TYPE(PPU_2C03B, ppu2c03b_device, "ppu2c03b", "2C03B PPC") +DEFINE_DEVICE_TYPE(PPU_2C04, ppu2c04_device, "ppu2c04", "2C04 PPU") +DEFINE_DEVICE_TYPE(PPU_2C07, ppu2c07_device, "ppu2c07", "2C07 PPU") +DEFINE_DEVICE_TYPE(PPU_PALC, ppupalc_device, "ppupalc", "Generic PAL Clone PPU") +DEFINE_DEVICE_TYPE(PPU_2C05_01, ppu2c05_01_device, "ppu2c05_01", "2C05_01 PPU") +DEFINE_DEVICE_TYPE(PPU_2C05_02, ppu2c05_02_device, "ppu2c05_02", "2C05_02 PPU") +DEFINE_DEVICE_TYPE(PPU_2C05_03, ppu2c05_03_device, "ppu2c05_03", "2C05_03 PPU") +DEFINE_DEVICE_TYPE(PPU_2C05_04, ppu2c05_04_device, "ppu2c05_04", "2C05_04 PPU") // default address map @@ -105,10 +105,10 @@ const address_space_config *ppu2c0x_device::memory_space_config(address_spacenum // static -void ppu2c0x_device::set_nmi_delegate(device_t &device,ppu2c0x_nmi_delegate cb) +void ppu2c0x_device::set_nmi_delegate(device_t &device, nmi_delegate &&cb) { ppu2c0x_device &dev = downcast(device); - dev.m_nmi_callback_proc = cb; + dev.m_nmi_callback_proc = std::move(cb); } //------------------------------------------------- // ppu2c0x_device - constructor @@ -117,14 +117,14 @@ void ppu2c0x_device::set_nmi_delegate(device_t &device,ppu2c0x_nmi_delegate cb) void ppu2c0x_device::device_config_complete() { /* reset the callbacks */ - m_latch = ppu2c0x_latch_delegate(); - m_scanline_callback_proc = ppu2c0x_scanline_delegate(); - m_hblank_callback_proc = ppu2c0x_hblank_delegate(); - m_vidaccess_callback_proc = ppu2c0x_vidaccess_delegate(); + m_latch = latch_delegate(); + m_scanline_callback_proc = scanline_delegate(); + m_hblank_callback_proc = hblank_delegate(); + m_vidaccess_callback_proc = vidaccess_delegate(); } -ppu2c0x_device::ppu2c0x_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source) +ppu2c0x_device::ppu2c0x_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) , device_memory_interface(mconfig, *this) , device_video_interface(mconfig, *this) , m_space_config("videoram", ENDIANNESS_LITTLE, 8, 17, 0, nullptr, *ADDRESS_MAP_NAME(ppu2c0x)) @@ -152,62 +152,62 @@ ppu2c0x_device::ppu2c0x_device(const machine_config &mconfig, device_type type, memset(m_palette_ram, 0, ARRAY_LENGTH(m_palette_ram)); - m_scanlines_per_frame = PPU_NTSC_SCANLINES_PER_FRAME; - m_vblank_first_scanline = PPU_VBLANK_FIRST_SCANLINE; + m_scanlines_per_frame = NTSC_SCANLINES_PER_FRAME; + m_vblank_first_scanline = VBLANK_FIRST_SCANLINE; /* usually, no security value... */ m_security_value = 0; - m_nmi_callback_proc = ppu2c0x_nmi_delegate(); + m_nmi_callback_proc = nmi_delegate(); } // NTSC NES -ppu2c02_device::ppu2c02_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : ppu2c0x_device(mconfig, PPU_2C02, "2C02 PPU", tag, owner, clock, "ppu2c02", __FILE__) +ppu2c02_device::ppu2c02_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : ppu2c0x_device(mconfig, PPU_2C02, tag, owner, clock) { } // Playchoice 10 -ppu2c03b_device::ppu2c03b_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : ppu2c0x_device(mconfig, PPU_2C03B, "2C03B PPU", tag, owner, clock, "ppu2c03b", __FILE__) +ppu2c03b_device::ppu2c03b_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : ppu2c0x_device(mconfig, PPU_2C03B, tag, owner, clock) { } // Vs. Unisystem -ppu2c04_device::ppu2c04_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : ppu2c0x_device(mconfig, PPU_2C04, "2C04 PPU", tag, owner, clock, "ppu2c04", __FILE__) +ppu2c04_device::ppu2c04_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : ppu2c0x_device(mconfig, PPU_2C04, tag, owner, clock) { } // PAL NES -ppu2c07_device::ppu2c07_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : ppu2c0x_device(mconfig, PPU_2C07, "2C07 PPU", tag, owner, clock, "ppu2c07", __FILE__) +ppu2c07_device::ppu2c07_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : ppu2c0x_device(mconfig, PPU_2C07, tag, owner, clock) { - m_scanlines_per_frame = PPU_PAL_SCANLINES_PER_FRAME; + m_scanlines_per_frame = PAL_SCANLINES_PER_FRAME; } // PAL clones -ppupalc_device::ppupalc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : ppu2c0x_device(mconfig, PPU_PALC, "Generic PAL Clone PPU", tag, owner, clock, "ppupalc", __FILE__) +ppupalc_device::ppupalc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : ppu2c0x_device(mconfig, PPU_PALC, tag, owner, clock) { - m_scanlines_per_frame = PPU_PAL_SCANLINES_PER_FRAME; - m_vblank_first_scanline = PPU_VBLANK_FIRST_SCANLINE_PALC; + m_scanlines_per_frame = PAL_SCANLINES_PER_FRAME; + m_vblank_first_scanline = VBLANK_FIRST_SCANLINE_PALC; } // The PPU_2C05 variants have different protection value, set at device start, but otherwise are all the same... // Vs. Unisystem (Ninja Jajamaru Kun) -ppu2c05_01_device::ppu2c05_01_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : ppu2c0x_device(mconfig, PPU_2C05_01, "2C05_01 PPU", tag, owner, clock, "ppu2c05_01", __FILE__) +ppu2c05_01_device::ppu2c05_01_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : ppu2c0x_device(mconfig, PPU_2C05_01, tag, owner, clock) { m_security_value = 0x1b; // game (jajamaru) doesn't seem to ever actually check it } // Vs. Unisystem (Mighty Bomb Jack) -ppu2c05_02_device::ppu2c05_02_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : ppu2c0x_device(mconfig, PPU_2C05_02, "2C05_02 PPU", tag, owner, clock, "ppu2c05_02", __FILE__) +ppu2c05_02_device::ppu2c05_02_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : ppu2c0x_device(mconfig, PPU_2C05_02, tag, owner, clock) { m_security_value = 0x3d; } // Vs. Unisystem (Gumshoe) -ppu2c05_03_device::ppu2c05_03_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : ppu2c0x_device(mconfig, PPU_2C05_03, "2C05_03 PPU", tag, owner, clock, "ppu2c05_03", __FILE__) +ppu2c05_03_device::ppu2c05_03_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : ppu2c0x_device(mconfig, PPU_2C05_03, tag, owner, clock) { m_security_value = 0x1c; } // Vs. Unisystem (Top Gun) -ppu2c05_04_device::ppu2c05_04_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : ppu2c0x_device(mconfig, PPU_2C05_04, "2C05_04 PPU", tag, owner, clock, "ppu2c05_04", __FILE__) +ppu2c05_04_device::ppu2c05_04_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : ppu2c0x_device(mconfig, PPU_2C05_04, tag, owner, clock) { m_security_value = 0x1b; } @@ -948,7 +948,7 @@ void ppu2c0x_device::render_scanline( void ) void ppu2c0x_device::update_scanline( void ) { - if (m_scanline <= PPU_BOTTOM_VISIBLE_SCANLINE) + if (m_scanline <= BOTTOM_VISIBLE_SCANLINE) { /* Render this scanline if appropriate */ if (m_regs[PPU_CONTROL1] & (PPU_CONTROL1_BACKGROUND | PPU_CONTROL1_SPRITES)) @@ -1149,7 +1149,7 @@ WRITE8_MEMBER( ppu2c0x_device::write ) } #ifdef MAME_DEBUG - if (m_scanline <= PPU_BOTTOM_VISIBLE_SCANLINE) + if (m_scanline <= BOTTOM_VISIBLE_SCANLINE) { logerror("PPU register %d write %02x during non-vblank scanline %d (MAME %d, beam pos: %d)\n", offset, data, m_scanline, m_screen->vpos(), m_screen->hpos()); } @@ -1200,7 +1200,7 @@ WRITE8_MEMBER( ppu2c0x_device::write ) case PPU_SPRITE_DATA: /* 4 */ // If the PPU is currently rendering the screen, 0xff is written instead of the desired data. if (m_use_sprite_write_limitation) - if (m_scanline <= PPU_BOTTOM_VISIBLE_SCANLINE) + if (m_scanline <= BOTTOM_VISIBLE_SCANLINE) data = 0xff; m_spriteram[m_regs[PPU_SPRITE_ADDRESS]] = data; m_regs[PPU_SPRITE_ADDRESS] = (m_regs[PPU_SPRITE_ADDRESS] + 1) & 0xff; diff --git a/src/devices/video/ppu2c0x.h b/src/devices/video/ppu2c0x.h index b37d765c475..0ae702fdf1d 100644 --- a/src/devices/video/ppu2c0x.h +++ b/src/devices/video/ppu2c0x.h @@ -9,10 +9,10 @@ ******************************************************************************/ -#pragma once +#ifndef MAME_VIDEO_PPU2C0X_H +#define MAME_VIDEO_PPU2C0X_H -#ifndef __PPU_2C03B_H__ -#define __PPU_2C03B_H__ +#pragma once ///************************************************************************* // MACROS / CONSTANTS @@ -30,58 +30,6 @@ #define PPU_DRAW_OAM 1 -// registers definition -enum -{ - PPU_CONTROL0 = 0, - PPU_CONTROL1, - PPU_STATUS, - PPU_SPRITE_ADDRESS, - PPU_SPRITE_DATA, - PPU_SCROLL, - PPU_ADDRESS, - PPU_DATA, - PPU_MAX_REG -}; - -// bit definitions for (some of) the registers -enum -{ - PPU_CONTROL0_INC = 0x04, - PPU_CONTROL0_SPR_SELECT = 0x08, - PPU_CONTROL0_CHR_SELECT = 0x10, - PPU_CONTROL0_SPRITE_SIZE = 0x20, - PPU_CONTROL0_NMI = 0x80, - - PPU_CONTROL1_DISPLAY_MONO = 0x01, - PPU_CONTROL1_BACKGROUND_L8 = 0x02, - PPU_CONTROL1_SPRITES_L8 = 0x04, - PPU_CONTROL1_BACKGROUND = 0x08, - PPU_CONTROL1_SPRITES = 0x10, - PPU_CONTROL1_COLOR_EMPHASIS = 0xe0, - - PPU_STATUS_8SPRITES = 0x20, - PPU_STATUS_SPRITE0_HIT = 0x40, - PPU_STATUS_VBLANK = 0x80 -}; - -enum -{ - PPU_NTSC_SCANLINES_PER_FRAME = 262, - PPU_PAL_SCANLINES_PER_FRAME = 312, - - PPU_BOTTOM_VISIBLE_SCANLINE = 239, - PPU_VBLANK_FIRST_SCANLINE = 241, - PPU_VBLANK_FIRST_SCANLINE_PALC = 291, - PPU_VBLANK_LAST_SCANLINE_NTSC = 260, - PPU_VBLANK_LAST_SCANLINE_PAL = 310 - - // Both the scanline immediately before and immediately after VBLANK - // are non-rendering and non-vblank. -}; - -/*----------- defined in video/ppu2c0x.c -----------*/ - ///************************************************************************* // INTERFACE CONFIGURATION MACROS ///************************************************************************* @@ -117,7 +65,7 @@ enum ppu2c0x_device::set_color_base(*device, _color); #define MCFG_PPU2C0X_SET_NMI(_class, _method) \ - ppu2c0x_device::set_nmi_delegate(*device, ppu2c0x_nmi_delegate(&_class::_method, #_class "::" #_method, nullptr, (_class *)nullptr)); + ppu2c0x_device::set_nmi_delegate(*device, ppu2c0x_device::nmi_delegate(&_class::_method, #_class "::" #_method, nullptr, (_class *)nullptr)); #define MCFG_PPU2C0X_IGNORE_SPRITE_WRITE_LIMIT \ ppu2c0x_device::use_sprite_write_limitation_disable(*device); @@ -125,12 +73,6 @@ enum ///************************************************************************* // TYPE DEFINITIONS ///************************************************************************* -typedef device_delegate ppu2c0x_scanline_delegate; -typedef device_delegate ppu2c0x_hblank_delegate; -typedef device_delegate ppu2c0x_nmi_delegate; -typedef device_delegate ppu2c0x_vidaccess_delegate; -typedef device_delegate ppu2c0x_latch_delegate; - // ======================> ppu2c0x_device @@ -139,25 +81,35 @@ class ppu2c0x_device : public device_t, public device_video_interface { public: - // construction/destruction - ppu2c0x_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); + typedef device_delegate scanline_delegate; + typedef device_delegate hblank_delegate; + typedef device_delegate nmi_delegate; + typedef device_delegate vidaccess_delegate; + typedef device_delegate latch_delegate; + + enum + { + NTSC_SCANLINES_PER_FRAME = 262, + PAL_SCANLINES_PER_FRAME = 312, + + BOTTOM_VISIBLE_SCANLINE = 239, + VBLANK_FIRST_SCANLINE = 241, + VBLANK_FIRST_SCANLINE_PALC = 291, + VBLANK_LAST_SCANLINE_NTSC = 260, + VBLANK_LAST_SCANLINE_PAL = 310 + + // Both the scanline immediately before and immediately after VBLANK + // are non-rendering and non-vblank. + }; DECLARE_READ8_MEMBER( read ); DECLARE_WRITE8_MEMBER( write ); DECLARE_READ8_MEMBER( palette_read ); DECLARE_WRITE8_MEMBER( palette_write ); - virtual void device_start() override; - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; - virtual void device_config_complete() override; - // device_config_memory_interface overrides - virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_0) const override; - // address space configurations - const address_space_config m_space_config; - static void set_cpu_tag(device_t &device, const char *tag) { downcast(device).m_cpu.set_tag(tag); } static void set_color_base(device_t &device, int colorbase) { downcast(device).m_color_base = colorbase; } - static void set_nmi_delegate(device_t &device, ppu2c0x_nmi_delegate cb); + static void set_nmi_delegate(device_t &device, nmi_delegate &&cb); /* routines */ void init_palette( palette_device &palette, int first_entry ); @@ -174,9 +126,9 @@ public: int get_colorbase() { return m_color_base; }; int get_current_scanline() { return m_scanline; }; - void set_scanline_callback( ppu2c0x_scanline_delegate cb ) { m_scanline_callback_proc = cb; m_scanline_callback_proc.bind_relative_to(*owner()); }; - void set_hblank_callback( ppu2c0x_hblank_delegate cb ) { m_hblank_callback_proc = cb; m_hblank_callback_proc.bind_relative_to(*owner()); }; - void set_vidaccess_callback( ppu2c0x_vidaccess_delegate cb ) { m_vidaccess_callback_proc = cb; m_vidaccess_callback_proc.bind_relative_to(*owner()); }; + void set_scanline_callback( scanline_delegate &&cb ) { m_scanline_callback_proc = std::move(cb); m_scanline_callback_proc.bind_relative_to(*owner()); }; + void set_hblank_callback( hblank_delegate &&cb ) { m_hblank_callback_proc = std::move(cb); m_hblank_callback_proc.bind_relative_to(*owner()); }; + void set_vidaccess_callback( vidaccess_delegate &&cb ) { m_vidaccess_callback_proc = std::move(cb); m_vidaccess_callback_proc.bind_relative_to(*owner()); }; void set_scanlines_per_frame( int scanlines ) { m_scanlines_per_frame = scanlines; }; // MMC5 has to be able to check this @@ -185,12 +137,10 @@ public: int get_tilenum() { return m_tilecount; }; //27/12/2002 (HACK!) - void set_latch( ppu2c0x_latch_delegate cb ) { m_latch = cb; m_latch.bind_relative_to(*owner()); }; + void set_latch( latch_delegate &&cb ) { m_latch = std::move(cb); m_latch.bind_relative_to(*owner()); }; // void update_screen(bitmap_t &bitmap, const rectangle &cliprect); - required_device m_cpu; - // some bootleg / clone hardware appears to ignore this static void use_sprite_write_limitation_disable(device_t &device) { @@ -199,14 +149,64 @@ public: } protected: + // registers definition + enum + { + PPU_CONTROL0 = 0, + PPU_CONTROL1, + PPU_STATUS, + PPU_SPRITE_ADDRESS, + PPU_SPRITE_DATA, + PPU_SCROLL, + PPU_ADDRESS, + PPU_DATA, + PPU_MAX_REG + }; + + // bit definitions for (some of) the registers + enum + { + PPU_CONTROL0_INC = 0x04, + PPU_CONTROL0_SPR_SELECT = 0x08, + PPU_CONTROL0_CHR_SELECT = 0x10, + PPU_CONTROL0_SPRITE_SIZE = 0x20, + PPU_CONTROL0_NMI = 0x80, + + PPU_CONTROL1_DISPLAY_MONO = 0x01, + PPU_CONTROL1_BACKGROUND_L8 = 0x02, + PPU_CONTROL1_SPRITES_L8 = 0x04, + PPU_CONTROL1_BACKGROUND = 0x08, + PPU_CONTROL1_SPRITES = 0x10, + PPU_CONTROL1_COLOR_EMPHASIS = 0xe0, + + PPU_STATUS_8SPRITES = 0x20, + PPU_STATUS_SPRITE0_HIT = 0x40, + PPU_STATUS_VBLANK = 0x80 + }; + + // construction/destruction + ppu2c0x_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + virtual void device_start() override; + virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + virtual void device_config_complete() override; + + // device_config_memory_interface overrides + virtual const address_space_config *memory_space_config(address_spacenum spacenum) const override; + + // address space configurations + const address_space_config m_space_config; + + required_device m_cpu; + int m_scanlines_per_frame; /* number of scanlines per frame */ int m_security_value; /* 2C05 protection */ int m_vblank_first_scanline; /* the very first scanline where VBLANK occurs */ private: - static const device_timer_id TIMER_HBLANK = 0; - static const device_timer_id TIMER_NMI = 1; - static const device_timer_id TIMER_SCANLINE = 2; + static constexpr device_timer_id TIMER_HBLANK = 0; + static constexpr device_timer_id TIMER_NMI = 1; + static constexpr device_timer_id TIMER_SCANLINE = 2; inline uint8_t readbyte(offs_t address); inline void writebyte(offs_t address, uint8_t data); @@ -216,10 +216,10 @@ private: std::unique_ptr m_colortable; /* color table modified at run time */ std::unique_ptr m_colortable_mono; /* monochromatic color table modified at run time */ int m_scanline; /* scanline count */ - ppu2c0x_scanline_delegate m_scanline_callback_proc; /* optional scanline callback */ - ppu2c0x_hblank_delegate m_hblank_callback_proc; /* optional hblank callback */ - ppu2c0x_vidaccess_delegate m_vidaccess_callback_proc; /* optional video access callback */ - ppu2c0x_nmi_delegate m_nmi_callback_proc; /* nmi access callback from interface */ + scanline_delegate m_scanline_callback_proc; /* optional scanline callback */ + hblank_delegate m_hblank_callback_proc; /* optional hblank callback */ + vidaccess_delegate m_vidaccess_callback_proc; /* optional video access callback */ + nmi_delegate m_nmi_callback_proc; /* nmi access callback from interface */ int m_regs[PPU_MAX_REG]; /* registers */ int m_refresh_data; /* refresh-related */ int m_refresh_latch; /* refresh-related */ @@ -237,7 +237,7 @@ private: int m_scan_scale; /* scan scale */ int m_tilecount; /* MMC5 can change attributes to subsets of the 34 visible tiles */ int m_draw_phase; /* MMC5 uses different regs for BG and OAM */ - ppu2c0x_latch_delegate m_latch; + latch_delegate m_latch; // timers emu_timer *m_hblank_timer; /* hblank period at end of each scanline */ @@ -295,15 +295,14 @@ public: // device type definition //extern const device_type PPU_2C0X; -extern const device_type PPU_2C02; // NTSC NES -extern const device_type PPU_2C03B; // Playchoice 10 -extern const device_type PPU_2C04; // Vs. Unisystem -extern const device_type PPU_2C07; // PAL NES -extern const device_type PPU_PALC; // PAL Clones -extern const device_type PPU_2C05_01; // Vs. Unisystem (Ninja Jajamaru Kun) -extern const device_type PPU_2C05_02; // Vs. Unisystem (Mighty Bomb Jack) -extern const device_type PPU_2C05_03; // Vs. Unisystem (Gumshoe) -extern const device_type PPU_2C05_04; // Vs. Unisystem (Top Gun) - - -#endif +DECLARE_DEVICE_TYPE(PPU_2C02, ppu2c02_device) // NTSC NES +DECLARE_DEVICE_TYPE(PPU_2C03B, ppu2c03b_device) // Playchoice 10 +DECLARE_DEVICE_TYPE(PPU_2C04, ppu2c04_device) // Vs. Unisystem +DECLARE_DEVICE_TYPE(PPU_2C07, ppu2c07_device) // PAL NES +DECLARE_DEVICE_TYPE(PPU_PALC, ppupalc_device) // PAL Clones +DECLARE_DEVICE_TYPE(PPU_2C05_01, ppu2c05_01_device) // Vs. Unisystem (Ninja Jajamaru Kun) +DECLARE_DEVICE_TYPE(PPU_2C05_02, ppu2c05_02_device) // Vs. Unisystem (Mighty Bomb Jack) +DECLARE_DEVICE_TYPE(PPU_2C05_03, ppu2c05_03_device) // Vs. Unisystem (Gumshoe) +DECLARE_DEVICE_TYPE(PPU_2C05_04, ppu2c05_04_device) // Vs. Unisystem (Top Gun) + +#endif // MAME_VIDEO_PPU2C0X_H diff --git a/src/devices/video/psx.cpp b/src/devices/video/psx.cpp index 6b2963babdf..ad49dfe4802 100644 --- a/src/devices/video/psx.cpp +++ b/src/devices/video/psx.cpp @@ -8,34 +8,33 @@ */ #include "emu.h" - -#define DEBUG_VIEWER ( 0 ) #include "video/psx.h" #include "screen.h" +#define STOP_ON_ERROR ( 0 ) + #define VERBOSE_LEVEL ( 0 ) // device type definition -const device_type CXD8514Q = device_creator; -const device_type CXD8538Q = device_creator; -const device_type CXD8561Q = device_creator; -const device_type CXD8561BQ = device_creator; -const device_type CXD8561CQ = device_creator; -const device_type CXD8654Q = device_creator; - -psxgpu_device::psxgpu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), - m_vblank_handler(*this) -#if DEBUG_VIEWER -, - m_screen(*this, "screen") +DEFINE_DEVICE_TYPE(CXD8514Q, cxd8514q_device, "cxd8514q", "CXD8514Q GPU") +DEFINE_DEVICE_TYPE(CXD8538Q, cxd8538q_device, "cxd8538q", "CXD8538Q GPU") +DEFINE_DEVICE_TYPE(CXD8561Q, cxd8561q_device, "cxd8561q", "CXD8561Q GPU") +DEFINE_DEVICE_TYPE(CXD8561BQ, cxd8561bq_device, "cxd8561bq", "CXD8561BQ GPU") +DEFINE_DEVICE_TYPE(CXD8561CQ, cxd8561cq_device, "cxd8561cq", "CXD8561CQ GPU") +DEFINE_DEVICE_TYPE(CXD8654Q, cxd8654q_device, "cxd8654q", "CXD8654Q GPU") + +psxgpu_device::psxgpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) + , m_vblank_handler(*this) +#if PSXGPU_DEBUG_VIEWER + , m_screen(*this, "screen") #endif { } -void psxgpu_device::device_start( void ) +void psxgpu_device::device_start() { m_vblank_handler.resolve_safe(); @@ -49,38 +48,38 @@ void psxgpu_device::device_start( void ) } } -void psxgpu_device::device_reset( void ) +void psxgpu_device::device_reset() { gpu_reset(); } cxd8514q_device::cxd8514q_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : psxgpu_device(mconfig, CXD8514Q, "CXD8514Q GPU", tag, owner, clock, "cxd8514q", __FILE__) + : psxgpu_device(mconfig, CXD8514Q, tag, owner, clock) { } cxd8538q_device::cxd8538q_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : psxgpu_device(mconfig, CXD8538Q, "CXD8538Q GPU", tag, owner, clock, "cxd8538q", __FILE__) + : psxgpu_device(mconfig, CXD8538Q, tag, owner, clock) { } cxd8561q_device::cxd8561q_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : psxgpu_device(mconfig, CXD8561Q, "CXD8561Q GPU", tag, owner, clock, "cxd8561q", __FILE__) + : psxgpu_device(mconfig, CXD8561Q, tag, owner, clock) { } cxd8561bq_device::cxd8561bq_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : psxgpu_device(mconfig, CXD8561BQ, "CXD8561BQ", tag, owner, clock, "cxd8561bq", __FILE__) + : psxgpu_device(mconfig, CXD8561BQ, tag, owner, clock) { } cxd8561cq_device::cxd8561cq_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : psxgpu_device(mconfig, CXD8561CQ, "CXD8561CQ GPU", tag, owner, clock, "cxd8561cq", __FILE__) + : psxgpu_device(mconfig, CXD8561CQ, tag, owner, clock) { } cxd8654q_device::cxd8654q_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : psxgpu_device(mconfig, CXD8654Q, "CXD8654Q GPU", tag, owner, clock, "cxd8654q", __FILE__) + : psxgpu_device(mconfig, CXD8654Q, tag, owner, clock) { } @@ -117,9 +116,9 @@ static inline void ATTR_PRINTF(3,4) verboselog( device_t& device, int n_level, c } } -#if DEBUG_VIEWER +#if PSXGPU_DEBUG_VIEWER -void psxgpu_device::DebugMeshInit( void ) +void psxgpu_device::DebugMeshInit() { int width = m_screen->width(); int height = m_screen->height(); @@ -241,12 +240,12 @@ void psxgpu_device::DebugMesh( int n_coordx, int n_coordy ) } } -void psxgpu_device::DebugMeshEnd( void ) +void psxgpu_device::DebugMeshEnd() { m_debug.n_coord = 0; } -void psxgpu_device::DebugCheckKeys( void ) +void psxgpu_device::DebugCheckKeys() { if( machine().input().code_pressed_once( KEYCODE_M ) ) { @@ -437,7 +436,7 @@ void psxgpu_device::updatevisiblearea() break; } -#if DEBUG_VIEWER +#if PSXGPU_DEBUG_VIEWER if( m_debug.b_mesh || m_debug.b_texture ) { n_screenheight = 1024; @@ -461,7 +460,7 @@ void psxgpu_device::psx_gpu_init( int n_gputype ) m_n_gputype = n_gputype; -#if DEBUG_VIEWER +#if PSXGPU_DEBUG_VIEWER DebugMeshInit(); #endif @@ -622,7 +621,7 @@ uint32_t psxgpu_device::update_screen(screen_device &screen, bitmap_ind16 &bitma int n_overscantop; int n_overscanleft; -#if DEBUG_VIEWER +#if PSXGPU_DEBUG_VIEWER if( DebugMeshDisplay( bitmap, cliprect ) ) { return 0; @@ -1393,7 +1392,7 @@ void psxgpu_device::FlatPolygon( int n_points ) uint16_t *p_vram; -#if DEBUG_VIEWER +#if PSXGPU_DEBUG_VIEWER if( m_debug.n_skip == 1 ) { return; @@ -1546,7 +1545,7 @@ void psxgpu_device::FlatTexturedPolygon( int n_points ) uint16_t *p_vram; uint32_t n_bgr; -#if DEBUG_VIEWER +#if PSXGPU_DEBUG_VIEWER if( m_debug.n_skip == 2 ) { return; @@ -1745,7 +1744,7 @@ void psxgpu_device::GouraudPolygon( int n_points ) uint16_t *p_vram; -#if DEBUG_VIEWER +#if PSXGPU_DEBUG_VIEWER if( m_debug.n_skip == 3 ) { return; @@ -1956,7 +1955,7 @@ void psxgpu_device::GouraudTexturedPolygon( int n_points ) uint16_t *p_vram; uint32_t n_bgr; -#if DEBUG_VIEWER +#if PSXGPU_DEBUG_VIEWER if( m_debug.n_skip == 4 ) { return; @@ -2175,7 +2174,7 @@ void psxgpu_device::GouraudTexturedPolygon( int n_points ) } } -void psxgpu_device::MonochromeLine( void ) +void psxgpu_device::MonochromeLine() { PAIR n_x; PAIR n_y; @@ -2193,7 +2192,7 @@ void psxgpu_device::MonochromeLine( void ) uint32_t n_b; uint16_t *p_vram; -#if DEBUG_VIEWER +#if PSXGPU_DEBUG_VIEWER if( m_debug.n_skip == 5 ) { return; @@ -2270,7 +2269,7 @@ void psxgpu_device::MonochromeLine( void ) } } -void psxgpu_device::GouraudLine( void ) +void psxgpu_device::GouraudLine() { PAIR n_x; PAIR n_y; @@ -2297,7 +2296,7 @@ void psxgpu_device::GouraudLine( void ) PAIR n_cb2; uint16_t *p_vram; -#if DEBUG_VIEWER +#if PSXGPU_DEBUG_VIEWER if( m_debug.n_skip == 6 ) { return; @@ -2386,7 +2385,7 @@ void psxgpu_device::GouraudLine( void ) } } -void psxgpu_device::FrameBufferRectangleDraw( void ) +void psxgpu_device::FrameBufferRectangleDraw() { PAIR n_r; PAIR n_g; @@ -2397,7 +2396,7 @@ void psxgpu_device::FrameBufferRectangleDraw( void ) int16_t n_x; uint16_t *p_vram; -#if DEBUG_VIEWER +#if PSXGPU_DEBUG_VIEWER if( m_debug.n_skip == 7 ) { return; @@ -2436,7 +2435,7 @@ void psxgpu_device::FrameBufferRectangleDraw( void ) } } -void psxgpu_device::FlatRectangle( void ) +void psxgpu_device::FlatRectangle() { int16_t n_y; int16_t n_x; @@ -2459,7 +2458,7 @@ void psxgpu_device::FlatRectangle( void ) int32_t n_h; uint16_t *p_vram; -#if DEBUG_VIEWER +#if PSXGPU_DEBUG_VIEWER if( m_debug.n_skip == 8 ) { return; @@ -2506,7 +2505,7 @@ void psxgpu_device::FlatRectangle( void ) } } -void psxgpu_device::FlatRectangle8x8( void ) +void psxgpu_device::FlatRectangle8x8() { int16_t n_y; int16_t n_x; @@ -2529,7 +2528,7 @@ void psxgpu_device::FlatRectangle8x8( void ) int32_t n_h; uint16_t *p_vram; -#if DEBUG_VIEWER +#if PSXGPU_DEBUG_VIEWER if( m_debug.n_skip == 9 ) { return; @@ -2576,7 +2575,7 @@ void psxgpu_device::FlatRectangle8x8( void ) } } -void psxgpu_device::FlatRectangle16x16( void ) +void psxgpu_device::FlatRectangle16x16() { int16_t n_y; int16_t n_x; @@ -2599,7 +2598,7 @@ void psxgpu_device::FlatRectangle16x16( void ) int32_t n_h; uint16_t *p_vram; -#if DEBUG_VIEWER +#if PSXGPU_DEBUG_VIEWER if( m_debug.n_skip == 10 ) { return; @@ -2646,7 +2645,7 @@ void psxgpu_device::FlatRectangle16x16( void ) } } -void psxgpu_device::FlatTexturedRectangle( void ) +void psxgpu_device::FlatTexturedRectangle() { int16_t n_y; int16_t n_x; @@ -2680,7 +2679,7 @@ void psxgpu_device::FlatTexturedRectangle( void ) uint16_t *p_clut; uint16_t n_bgr; -#if DEBUG_VIEWER +#if PSXGPU_DEBUG_VIEWER if( m_debug.n_skip == 11 ) { return; @@ -2749,7 +2748,7 @@ void psxgpu_device::FlatTexturedRectangle( void ) } } -void psxgpu_device::Sprite8x8( void ) +void psxgpu_device::Sprite8x8() { int16_t n_y; int16_t n_x; @@ -2783,7 +2782,7 @@ void psxgpu_device::Sprite8x8( void ) uint16_t *p_clut; uint16_t n_bgr; -#if DEBUG_VIEWER +#if PSXGPU_DEBUG_VIEWER if( m_debug.n_skip == 12 ) { return; @@ -2852,7 +2851,7 @@ void psxgpu_device::Sprite8x8( void ) } } -void psxgpu_device::Sprite16x16( void ) +void psxgpu_device::Sprite16x16() { int16_t n_y; int16_t n_x; @@ -2886,7 +2885,7 @@ void psxgpu_device::Sprite16x16( void ) uint16_t *p_clut; uint16_t n_bgr; -#if DEBUG_VIEWER +#if PSXGPU_DEBUG_VIEWER if( m_debug.n_skip == 13 ) { return; @@ -2955,7 +2954,7 @@ void psxgpu_device::Sprite16x16( void ) } } -void psxgpu_device::Dot( void ) +void psxgpu_device::Dot() { int32_t n_x; int32_t n_y; @@ -2964,7 +2963,7 @@ void psxgpu_device::Dot( void ) uint32_t n_b; uint16_t *p_vram; -#if DEBUG_VIEWER +#if PSXGPU_DEBUG_VIEWER if( m_debug.n_skip == 14 ) { return; @@ -2993,7 +2992,7 @@ void psxgpu_device::Dot( void ) } } -void psxgpu_device::MoveImage( void ) +void psxgpu_device::MoveImage() { int16_t n_w; int16_t n_h; @@ -3003,7 +3002,7 @@ void psxgpu_device::MoveImage( void ) int16_t n_dstx; uint16_t *p_vram; -#if DEBUG_VIEWER +#if PSXGPU_DEBUG_VIEWER if( m_debug.n_skip == 15 ) { return; @@ -3749,7 +3748,7 @@ void psxgpu_device::vblank(screen_device &screen, bool vblank_state) { if( vblank_state ) { -#if DEBUG_VIEWER +#if PSXGPU_DEBUG_VIEWER DebugCheckKeys(); #endif @@ -3758,7 +3757,7 @@ void psxgpu_device::vblank(screen_device &screen, bool vblank_state) } } -void psxgpu_device::gpu_reset( void ) +void psxgpu_device::gpu_reset() { verboselog( *this, 1, "reset gpu\n" ); n_gpu_buffer_offset = 0; diff --git a/src/devices/video/psx.h b/src/devices/video/psx.h index d3b56642222..b60e1d1a69f 100644 --- a/src/devices/video/psx.h +++ b/src/devices/video/psx.h @@ -7,10 +7,12 @@ * */ +#ifndef MAME_VIDEO_PSX_H +#define MAME_VIDEO_PSX_H + #pragma once -#ifndef __PSXGPU_H__ -#define __PSXGPU_H__ +#define PSXGPU_DEBUG_VIEWER ( 0 ) #define MCFG_PSX_GPU_VBLANK_HANDLER(_devcb) \ @@ -21,211 +23,212 @@ MCFG_PSX_GPU_READ_HANDLER(DEVREAD32(tag, psxgpu_device, read)) \ MCFG_PSX_GPU_WRITE_HANDLER(DEVWRITE32(tag, psxgpu_device, write)) \ MCFG_DEVICE_ADD( tag, type, clock ) \ - ((psxgpu_device *) device)->vramSize = _vramSize; \ + psxgpu_device::set_vram_size(*device, _vramSize); \ MCFG_PSX_GPU_VBLANK_HANDLER(DEVWRITELINE(cputag ":irq", psxirq_device, intin0)) \ - MCFG_PSX_DMA_CHANNEL_READ( cputag, 2, psx_dma_write_delegate(&psxgpu_device::dma_read, (psxgpu_device *) device ) ) \ - MCFG_PSX_DMA_CHANNEL_WRITE( cputag, 2, psx_dma_read_delegate(&psxgpu_device::dma_write, (psxgpu_device *) device ) ) + MCFG_PSX_DMA_CHANNEL_READ( cputag, 2, psxdma_device::write_delegate(&psxgpu_device::dma_read, (psxgpu_device *) device ) ) \ + MCFG_PSX_DMA_CHANNEL_WRITE( cputag, 2, psxdma_device::read_delegate(&psxgpu_device::dma_write, (psxgpu_device *) device ) ) #define MCFG_PSXGPU_REPLACE( cputag, tag, type, _vramSize, clock ) \ MCFG_DEVICE_MODIFY( cputag ) \ MCFG_PSX_GPU_READ_HANDLER(DEVREAD32(tag, psxgpu_device, read)) \ MCFG_PSX_GPU_WRITE_HANDLER(DEVWRITE32(tag, psxgpu_device, write)) \ MCFG_DEVICE_REPLACE( tag, type, clock ) \ - ((psxgpu_device *) device)->vramSize = _vramSize; \ + psxgpu_device::set_vram_size(*device, _vramSize); \ MCFG_PSX_GPU_VBLANK_HANDLER(DEVWRITELINE(cputag ":irq", psxirq_device, intin0)) \ - MCFG_PSX_DMA_CHANNEL_READ( cputag, 2, psx_dma_write_delegate(&psxgpu_device::dma_read, (psxgpu_device *) device ) ) \ - MCFG_PSX_DMA_CHANNEL_WRITE( cputag, 2, psx_dma_read_delegate(&psxgpu_device::dma_write, (psxgpu_device *) device ) ) + MCFG_PSX_DMA_CHANNEL_READ( cputag, 2, psxdma_device::write_delegate(&psxgpu_device::dma_read, (psxgpu_device *) device ) ) \ + MCFG_PSX_DMA_CHANNEL_WRITE( cputag, 2, psxdma_device::read_delegate(&psxgpu_device::dma_write, (psxgpu_device *) device ) ) #define MCFG_PSXGPU_VBLANK_CALLBACK( _delegate ) \ ((screen_device *) config.device_find( device, "screen" ))->register_vblank_callback( _delegate ); -extern const device_type CXD8514Q; -extern const device_type CXD8538Q; -extern const device_type CXD8561Q; -extern const device_type CXD8561BQ; -extern const device_type CXD8561CQ; -extern const device_type CXD8654Q; - -#define STOP_ON_ERROR ( 0 ) - -#define MAX_LEVEL ( 32 ) -#define MID_LEVEL ( ( MAX_LEVEL / 2 ) << 8 ) -#define MAX_SHADE ( 0x100 ) -#define MID_SHADE ( 0x80 ) +DECLARE_DEVICE_TYPE(CXD8514Q, cxd8514q_device) +DECLARE_DEVICE_TYPE(CXD8538Q, cxd8538q_device) +DECLARE_DEVICE_TYPE(CXD8561Q, cxd8561q_device) +DECLARE_DEVICE_TYPE(CXD8561BQ, cxd8561bq_device) +DECLARE_DEVICE_TYPE(CXD8561CQ, cxd8561cq_device) +DECLARE_DEVICE_TYPE(CXD8654Q, cxd8654q_device) -#define DEBUG_COORDS ( 10 ) - -struct psx_gpu_debug +class psxgpu_device : public device_t { - std::unique_ptr mesh; - int b_clear; - int b_mesh; - int n_skip; - int b_texture; - int n_interleave; - int n_coord; - int n_coordx[ DEBUG_COORDS ]; - int n_coordy[ DEBUG_COORDS ]; -}; +public: + virtual machine_config_constructor device_mconfig_additions() const override; -struct FLATVERTEX -{ - PAIR n_coord; -}; + // static configuration helpers + template static devcb_base &set_vblank_handler(device_t &device, Object &&cb) { return downcast(device).m_vblank_handler.set_callback(std::forward(cb)); } + static void set_vram_size(device_t &device, int size) { downcast(device).vramSize = size; } -struct GOURAUDVERTEX -{ - PAIR n_bgr; - PAIR n_coord; -}; + uint32_t update_screen(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + DECLARE_WRITE32_MEMBER( write ); + DECLARE_READ32_MEMBER( read ); + void dma_read( uint32_t *ram, uint32_t n_address, int32_t n_size ); + void dma_write( uint32_t *ram, uint32_t n_address, int32_t n_size ); + void lightgun_set( int, int ); + void vblank(screen_device &screen, bool vblank_state); + DECLARE_PALETTE_INIT( psx ); -struct FLATTEXTUREDVERTEX -{ - PAIR n_coord; - PAIR n_texture; -}; +protected: + static constexpr unsigned MAX_LEVEL = 32; + static constexpr unsigned MID_LEVEL = (MAX_LEVEL / 2) << 8; + static constexpr unsigned MAX_SHADE = 0x100; + static constexpr unsigned MID_SHADE = 0x80; -struct GOURAUDTEXTUREDVERTEX -{ - PAIR n_bgr; - PAIR n_coord; - PAIR n_texture; -}; + // construction/destruction + psxgpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); -union PACKET -{ - uint32_t n_entry[ 16 ]; + virtual void device_start() override; + virtual void device_reset() override; - struct - { - PAIR n_cmd; - struct FLATVERTEX vertex[ 2 ]; - PAIR n_size; - } MoveImage; + int vramSize; - struct - { - PAIR n_bgr; - PAIR n_coord; - PAIR n_size; - } FlatRectangle; +private: + static constexpr unsigned DEBUG_COORDS = 10; - struct + struct psx_gpu_debug { - PAIR n_bgr; - PAIR n_coord; - } FlatRectangle8x8; - - struct + std::unique_ptr mesh; + int b_clear; + int b_mesh; + int n_skip; + int b_texture; + int n_interleave; + int n_coord; + int n_coordx[ DEBUG_COORDS ]; + int n_coordy[ DEBUG_COORDS ]; + }; + + struct FLATVERTEX { - PAIR n_bgr; PAIR n_coord; - } FlatRectangle16x16; + }; - struct + struct GOURAUDVERTEX { PAIR n_bgr; PAIR n_coord; - PAIR n_texture; - } Sprite8x8; + }; - struct + struct FLATTEXTUREDVERTEX { - PAIR n_bgr; PAIR n_coord; PAIR n_texture; - } Sprite16x16; + }; - struct + struct GOURAUDTEXTUREDVERTEX { PAIR n_bgr; PAIR n_coord; PAIR n_texture; - PAIR n_size; - } FlatTexturedRectangle; + }; - struct + union PACKET { - PAIR n_bgr; - struct FLATVERTEX vertex[ 4 ]; - } FlatPolygon; - - struct - { - struct GOURAUDVERTEX vertex[ 4 ]; - } GouraudPolygon; - - struct - { - PAIR n_bgr; - struct FLATVERTEX vertex[ 2 ]; - } MonochromeLine; - - struct - { - struct GOURAUDVERTEX vertex[ 2 ]; - } GouraudLine; - - struct - { - PAIR n_bgr; - struct FLATTEXTUREDVERTEX vertex[ 4 ]; - } FlatTexturedPolygon; + uint32_t n_entry[ 16 ]; + + struct + { + PAIR n_cmd; + struct FLATVERTEX vertex[ 2 ]; + PAIR n_size; + } MoveImage; + + struct + { + PAIR n_bgr; + PAIR n_coord; + PAIR n_size; + } FlatRectangle; + + struct + { + PAIR n_bgr; + PAIR n_coord; + } FlatRectangle8x8; + + struct + { + PAIR n_bgr; + PAIR n_coord; + } FlatRectangle16x16; + + struct + { + PAIR n_bgr; + PAIR n_coord; + PAIR n_texture; + } Sprite8x8; + + struct + { + PAIR n_bgr; + PAIR n_coord; + PAIR n_texture; + } Sprite16x16; + + struct + { + PAIR n_bgr; + PAIR n_coord; + PAIR n_texture; + PAIR n_size; + } FlatTexturedRectangle; + + struct + { + PAIR n_bgr; + struct FLATVERTEX vertex[ 4 ]; + } FlatPolygon; + + struct + { + struct GOURAUDVERTEX vertex[ 4 ]; + } GouraudPolygon; + + struct + { + PAIR n_bgr; + struct FLATVERTEX vertex[ 2 ]; + } MonochromeLine; + + struct + { + struct GOURAUDVERTEX vertex[ 2 ]; + } GouraudLine; + + struct + { + PAIR n_bgr; + struct FLATTEXTUREDVERTEX vertex[ 4 ]; + } FlatTexturedPolygon; + + struct + { + struct GOURAUDTEXTUREDVERTEX vertex[ 4 ]; + } GouraudTexturedPolygon; + + struct + { + PAIR n_bgr; + struct FLATVERTEX vertex; + } Dot; + }; - struct - { - struct GOURAUDTEXTUREDVERTEX vertex[ 4 ]; - } GouraudTexturedPolygon; - - struct - { - PAIR n_bgr; - struct FLATVERTEX vertex; - } Dot; -}; - -class psxgpu_device : public device_t -{ -public: - // construction/destruction - psxgpu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - virtual machine_config_constructor device_mconfig_additions() const override; - - // static configuration helpers - template static devcb_base &set_vblank_handler(device_t &device, _Object object) { return downcast(device).m_vblank_handler.set_callback(object); } - - uint32_t update_screen(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - DECLARE_WRITE32_MEMBER( write ); - DECLARE_READ32_MEMBER( read ); - void dma_read( uint32_t *ram, uint32_t n_address, int32_t n_size ); - void dma_write( uint32_t *ram, uint32_t n_address, int32_t n_size ); - void lightgun_set( int, int ); - int vramSize; - void vblank(screen_device &screen, bool vblank_state); - DECLARE_PALETTE_INIT( psx ); - -protected: - virtual void device_start() override; - virtual void device_reset() override; - -private: void updatevisiblearea(); void decode_tpage( uint32_t tpage ); void FlatPolygon( int n_points ); void FlatTexturedPolygon( int n_points ); void GouraudPolygon( int n_points ); void GouraudTexturedPolygon( int n_points ); - void MonochromeLine( void ); - void GouraudLine( void ); - void FrameBufferRectangleDraw( void ); - void FlatRectangle( void ); - void FlatRectangle8x8( void ); - void FlatRectangle16x16( void ); - void FlatTexturedRectangle( void ); - void Sprite8x8( void ); - void Sprite16x16( void ); - void Dot( void ); - void MoveImage( void ); + void MonochromeLine(); + void GouraudLine(); + void FrameBufferRectangleDraw(); + void FlatRectangle(); + void FlatRectangle8x8(); + void FlatRectangle16x16(); + void FlatTexturedRectangle(); + void Sprite8x8(); + void Sprite16x16(); + void Dot(); + void MoveImage(); void psx_gpu_init( int n_gputype ); void gpu_reset(); void gpu_read( uint32_t *p_ram, int32_t n_size ); @@ -302,12 +305,12 @@ private: devcb_write_line m_vblank_handler; -#if defined(DEBUG_VIEWER) && DEBUG_VIEWER +#if defined(PSXGPU_DEBUG_VIEWER) && PSXGPU_DEBUG_VIEWER required_device m_screen; - void DebugMeshInit( void ); + void DebugMeshInit(); void DebugMesh( int n_coordx, int n_coordy ); - void DebugMeshEnd( void ); - void DebugCheckKeys( void ); + void DebugMeshEnd(); + void DebugCheckKeys(); int DebugMeshDisplay( bitmap_ind16 &bitmap, const rectangle &cliprect ); int DebugTextureDisplay( bitmap_ind16 &bitmap ); @@ -357,4 +360,4 @@ public: cxd8654q_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; -#endif +#endif // MAME_VIDEO_PSX_H diff --git a/src/devices/video/ramdac.cpp b/src/devices/video/ramdac.cpp index 195365fff91..7014d464a5a 100644 --- a/src/devices/video/ramdac.cpp +++ b/src/devices/video/ramdac.cpp @@ -29,7 +29,7 @@ ADDRESS_MAP_END //************************************************************************** // device type definition -const device_type RAMDAC = device_creator; +DEFINE_DEVICE_TYPE(RAMDAC, ramdac_device, "ramdac", "RAMDAC") //************************************************************************** @@ -41,7 +41,7 @@ const device_type RAMDAC = device_creator; //------------------------------------------------- ramdac_device::ramdac_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, RAMDAC, "RAMDAC", tag, owner, clock, "ramdac", __FILE__), + : device_t(mconfig, RAMDAC, tag, owner, clock), device_memory_interface(mconfig, *this), m_space_config("videoram", ENDIANNESS_LITTLE, 8, 10, 0, nullptr, *ADDRESS_MAP_NAME(ramdac_palram)), m_palette(*this, finder_base::DUMMY_TAG), diff --git a/src/devices/video/ramdac.h b/src/devices/video/ramdac.h index 9ae4ce030d2..709cda23711 100644 --- a/src/devices/video/ramdac.h +++ b/src/devices/video/ramdac.h @@ -6,10 +6,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_VIDEO_RAMDAC_H +#define MAME_VIDEO_RAMDAC_H -#ifndef __ramdacDEV_H__ -#define __ramdacDEV_H__ +#pragma once @@ -85,7 +85,6 @@ private: // device type definition -extern const device_type RAMDAC; - +DECLARE_DEVICE_TYPE(RAMDAC, ramdac_device) -#endif +#endif // MAME_VIDEO_RAMDAC_H diff --git a/src/devices/video/saa5050.cpp b/src/devices/video/saa5050.cpp index a06a30299e0..cebcbe7e40e 100644 --- a/src/devices/video/saa5050.cpp +++ b/src/devices/video/saa5050.cpp @@ -26,14 +26,14 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type SAA5050 = device_creator; -const device_type SAA5051 = device_creator; -const device_type SAA5052 = device_creator; -const device_type SAA5053 = device_creator; -const device_type SAA5054 = device_creator; -const device_type SAA5055 = device_creator; -const device_type SAA5056 = device_creator; -const device_type SAA5057 = device_creator; +DEFINE_DEVICE_TYPE(SAA5050, saa5050_device, "saa5050", "Mullard SA5050") +DEFINE_DEVICE_TYPE(SAA5051, saa5051_device, "saa5051", "Mullard SA5051") +DEFINE_DEVICE_TYPE(SAA5052, saa5052_device, "saa5052", "Mullard SA5052") +DEFINE_DEVICE_TYPE(SAA5053, saa5053_device, "saa5053", "Mullard SA5053") +DEFINE_DEVICE_TYPE(SAA5054, saa5054_device, "saa5054", "Mullard SA5054") +DEFINE_DEVICE_TYPE(SAA5055, saa5055_device, "saa5055", "Mullard SA5055") +DEFINE_DEVICE_TYPE(SAA5056, saa5056_device, "saa5056", "Mullard SA5056") +DEFINE_DEVICE_TYPE(SAA5057, saa5057_device, "saa5057", "Mullard SA5057") //------------------------------------------------- @@ -174,8 +174,8 @@ const tiny_rom_entry *saa5057_device::device_rom_region() const // saa5050_device - constructor //------------------------------------------------- -saa5050_device::saa5050_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), +saa5050_device::saa5050_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), m_char_rom(*this, "chargen"), m_read_d(*this), m_frame_count(0), @@ -186,36 +186,44 @@ saa5050_device::saa5050_device(const machine_config &mconfig, device_type type, } saa5050_device::saa5050_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, SAA5050, "SAA5050 Video", tag, owner, clock, "saa5050", __FILE__), - m_char_rom(*this, "chargen"), - m_read_d(*this), - m_frame_count(0), - m_cols(0), - m_rows(0), - m_size(0) + saa5050_device(mconfig, SAA5050, tag, owner, clock) { } saa5051_device::saa5051_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : saa5050_device(mconfig, SAA5051, "SAA5051", tag, owner, clock, "saa5051", __FILE__) { } + : saa5050_device(mconfig, SAA5051, tag, owner, clock) +{ +} saa5052_device::saa5052_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : saa5050_device(mconfig, SAA5052, "SAA5052", tag, owner, clock, "saa5052", __FILE__) { } + : saa5050_device(mconfig, SAA5052, tag, owner, clock) +{ +} saa5053_device::saa5053_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : saa5050_device(mconfig, SAA5053, "SAA5053", tag, owner, clock, "saa5053", __FILE__) { } + : saa5050_device(mconfig, SAA5053, tag, owner, clock) +{ +} saa5054_device::saa5054_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : saa5050_device(mconfig, SAA5054, "SAA5054", tag, owner, clock, "saa5054", __FILE__) { } + : saa5050_device(mconfig, SAA5054, tag, owner, clock) +{ +} saa5055_device::saa5055_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : saa5050_device(mconfig, SAA5055, "SAA5055", tag, owner, clock, "saa5055", __FILE__) { } + : saa5050_device(mconfig, SAA5055, tag, owner, clock) +{ +} saa5056_device::saa5056_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : saa5050_device(mconfig, SAA5056, "SAA5056", tag, owner, clock, "saa5056", __FILE__) { } + : saa5050_device(mconfig, SAA5056, tag, owner, clock) +{ +} saa5057_device::saa5057_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : saa5050_device(mconfig, SAA5057, "SAA5057", tag, owner, clock, "saa5057", __FILE__) { } + : saa5050_device(mconfig, SAA5057, tag, owner, clock) +{ +} diff --git a/src/devices/video/saa5050.h b/src/devices/video/saa5050.h index c88d840227c..4d943cefd0b 100644 --- a/src/devices/video/saa5050.h +++ b/src/devices/video/saa5050.h @@ -23,10 +23,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_VIDEO_SAA5050_H +#define MAME_VIDEO_SAA5050_H -#ifndef __SAA5050__ -#define __SAA5050__ +#pragma once @@ -54,12 +54,11 @@ class saa5050_device : public device_t { public: // construction/destruction - saa5050_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); saa5050_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); static void static_set_screen_size(device_t &device, int cols, int rows, int size) { downcast(device).m_cols = cols; downcast(device).m_rows = rows; downcast(device).m_size = size; } - template static devcb_base &set_d_rd_callback(device_t &device, _Object object) { return downcast(device).m_read_d.set_callback(object); } + template static devcb_base &set_d_rd_callback(device_t &device, Object &&cb) { return downcast(device).m_read_d.set_callback(std::forward(cb)); } // optional information overrides virtual const tiny_rom_entry *device_rom_region() const override; @@ -78,6 +77,8 @@ public: uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); protected: + saa5050_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -254,15 +255,13 @@ public: // device type definition -extern const device_type SAA5050; // English -extern const device_type SAA5051; // German -extern const device_type SAA5052; // Swedish/Finnish -extern const device_type SAA5053; // Italian -extern const device_type SAA5054; // Belgian -extern const device_type SAA5055; // US ASCII -extern const device_type SAA5056; // Hebrew -extern const device_type SAA5057; // Cyrillic - - - -#endif +DECLARE_DEVICE_TYPE(SAA5050, saa5050_device) // English +DECLARE_DEVICE_TYPE(SAA5051, saa5051_device) // German +DECLARE_DEVICE_TYPE(SAA5052, saa5052_device) // Swedish/Finnish +DECLARE_DEVICE_TYPE(SAA5053, saa5053_device) // Italian +DECLARE_DEVICE_TYPE(SAA5054, saa5054_device) // Belgian +DECLARE_DEVICE_TYPE(SAA5055, saa5055_device) // US ASCII +DECLARE_DEVICE_TYPE(SAA5056, saa5056_device) // Hebrew +DECLARE_DEVICE_TYPE(SAA5057, saa5057_device) // Cyrillic + +#endif // MAME_VIDEO_SAA5050_H diff --git a/src/devices/video/scn2674.cpp b/src/devices/video/scn2674.cpp index 517580c2231..e5058e3a90c 100644 --- a/src/devices/video/scn2674.cpp +++ b/src/devices/video/scn2674.cpp @@ -9,11 +9,11 @@ #include "screen.h" +//#define VERBOSE 1 +#include "logmacro.h" -#define S674VERBOSE 0 -#define LOG2674(x) do { if (S674VERBOSE) logerror x; } while (0) -const device_type SCN2674_VIDEO = device_creator; +DEFINE_DEVICE_TYPE(SCN2674_VIDEO, scn2674_device, "scn2674", "Signetics SCN2674 AVDC") // default address map @@ -22,19 +22,34 @@ static ADDRESS_MAP_START( scn2674_vram, AS_0, 8, scn2674_device ) ADDRESS_MAP_END scn2674_device::scn2674_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, SCN2674_VIDEO, "Signetics SCN2674 AVDC", tag, owner, clock, "scn2674_device", __FILE__), - device_video_interface(mconfig, *this), - device_memory_interface(mconfig, *this), - m_irq_cb(*this), m_IR_pointer(0), m_screen1_l(0), m_screen1_h(0), m_cursor_l(0), m_cursor_h(0), m_screen2_l(0), m_screen2_h(0), m_irq_register(0), m_status_register(0), m_irq_mask(0), - m_gfx_enabled(0), m_display_enabled(0), m_display_enabled_field(0), m_display_enabled_scanline(0), m_cursor_enabled(0), m_hpixels_per_column(0), m_text_hpixels_per_column(0), - m_gfx_hpixels_per_column(0), m_IR0_double_ht_wd(0), m_IR0_scanline_per_char_row(0), m_IR0_sync_select(0), m_IR0_buffer_mode_select(0), m_IR1_interlace_enable(0), m_IR1_equalizing_constant(0), - m_IR2_row_table(0), m_IR2_horz_sync_width(0), m_IR2_horz_back_porch(0), m_IR3_vert_front_porch(0), m_IR3_vert_back_porch(0), m_IR4_rows_per_screen(0), m_IR4_character_blink_rate_divisor(0), - m_IR5_character_per_row(0), m_IR6_cursor_first_scanline(0), m_IR6_cursor_last_scanline(0), m_IR7_cursor_underline_position(0), m_IR7_cursor_rate_divisor(0), m_IR7_cursor_blink(0), - m_IR7_vsync_width(0), m_IR8_display_buffer_first_address_LSB(0), m_IR9_display_buffer_first_address_MSB(0), m_IR9_display_buffer_last_address(0), m_IR10_display_pointer_address_lower(0), - m_IR11_display_pointer_address_upper(0), m_IR11_reset_scanline_counter_on_scrollup(0), m_IR11_reset_scanline_counter_on_scrolldown(0), m_IR12_scroll_start(0), m_IR12_split_register_1(0), - m_IR13_scroll_end(0), m_IR13_split_register_2(0), m_IR14_scroll_lines(0), m_IR14_double_1(0), m_IR14_double_2(0), m_spl1(0), m_spl2(0), m_dbl1(0), m_buffer(0), m_linecounter(0), m_address(0), - m_start1change(0), m_irq_state(0), m_scanline_timer(nullptr), - m_space_config("videoram", ENDIANNESS_LITTLE, 8, 16, 0, nullptr, *ADDRESS_MAP_NAME(scn2674_vram)) + : device_t(mconfig, SCN2674_VIDEO, tag, owner, clock) + , device_video_interface(mconfig, *this) + , device_memory_interface(mconfig, *this) + , m_irq_cb(*this) + , m_IR_pointer(0) + , m_screen1_l(0), m_screen1_h(0), m_cursor_l(0), m_cursor_h(0), m_screen2_l(0), m_screen2_h(0) + , m_irq_register(0), m_status_register(0), m_irq_mask(0) + , m_gfx_enabled(0), m_display_enabled(0), m_display_enabled_field(0), m_display_enabled_scanline(0), m_cursor_enabled(0) + , m_hpixels_per_column(0), m_text_hpixels_per_column(0), m_gfx_hpixels_per_column(0) + , m_IR0_double_ht_wd(0), m_IR0_scanline_per_char_row(0), m_IR0_sync_select(0), m_IR0_buffer_mode_select(0) + , m_IR1_interlace_enable(0), m_IR1_equalizing_constant(0) + , m_IR2_row_table(0), m_IR2_horz_sync_width(0), m_IR2_horz_back_porch(0) + , m_IR3_vert_front_porch(0), m_IR3_vert_back_porch(0) + , m_IR4_rows_per_screen(0), m_IR4_character_blink_rate_divisor(0) + , m_IR5_character_per_row(0) + , m_IR6_cursor_first_scanline(0), m_IR6_cursor_last_scanline(0) + , m_IR7_cursor_underline_position(0), m_IR7_cursor_rate_divisor(0), m_IR7_cursor_blink(0), m_IR7_vsync_width(0) + , m_IR8_display_buffer_first_address_LSB(0) + , m_IR9_display_buffer_first_address_MSB(0), m_IR9_display_buffer_last_address(0) + , m_IR10_display_pointer_address_lower(0) + , m_IR11_display_pointer_address_upper(0), m_IR11_reset_scanline_counter_on_scrollup(0), m_IR11_reset_scanline_counter_on_scrolldown(0) + , m_IR12_scroll_start(0), m_IR12_split_register_1(0) + , m_IR13_scroll_end(0), m_IR13_split_register_2(0) + , m_IR14_scroll_lines(0), m_IR14_double_1(0), m_IR14_double_2(0) + , m_spl1(0), m_spl2(0), m_dbl1(0) + , m_buffer(0), m_linecounter(0), m_address(0), m_start1change(0), m_irq_state(0) + , m_scanline_timer(nullptr) + , m_space_config("videoram", ENDIANNESS_LITTLE, 8, 16, 0, nullptr, *ADDRESS_MAP_NAME(scn2674_vram)) { } @@ -119,7 +134,7 @@ void scn2674_device::device_reset() // 15 Initialization Registers (8-bit each) void scn2674_device::write_init_regs(uint8_t data) { - LOG2674(("scn2674_write_init_regs %02x %02x\n",m_IR_pointer,data)); + LOG("scn2674_write_init_regs %02x %02x\n",m_IR_pointer,data); switch ( m_IR_pointer) /* display some debug info, set mame specific variables */ { @@ -129,18 +144,18 @@ void scn2674_device::write_init_regs(uint8_t data) m_IR0_sync_select = (data&0x04)>>2; m_IR0_buffer_mode_select = (data&0x03); - LOG2674(("IR0 - Double Ht Wd %02x\n",m_IR0_double_ht_wd));//affects IR14 as well - LOG2674(("IR0 - Scanlines per Character Row %02x\n",m_IR0_scanline_per_char_row));//value+1 = scanlines - LOG2674(("IR0 - Sync Select %02x\n",m_IR0_sync_select));//1 = csync - LOG2674(("IR0 - Buffer Mode Select %02x\n",m_IR0_buffer_mode_select)); //0 independent 1 transparent 2 shared 3 row + LOG("IR0 - Double Ht Wd %02x\n",m_IR0_double_ht_wd);//affects IR14 as well + LOG("IR0 - Scanlines per Character Row %02x\n",m_IR0_scanline_per_char_row);//value+1 = scanlines + LOG("IR0 - Sync Select %02x\n",m_IR0_sync_select);//1 = csync + LOG("IR0 - Buffer Mode Select %02x\n",m_IR0_buffer_mode_select); //0 independent 1 transparent 2 shared 3 row break; case 1: m_IR1_interlace_enable = (data&0x80)>>7; m_IR1_equalizing_constant = (data&0x7f)+1; - LOG2674(("IR1 - Interlace Enable %02x\n",m_IR1_interlace_enable)); - LOG2674(("IR1 - Equalizing Constant %02i CCLKs\n",m_IR1_equalizing_constant)); + LOG("IR1 - Interlace Enable %02x\n",m_IR1_interlace_enable); + LOG("IR1 - Equalizing Constant %02i CCLKs\n",m_IR1_equalizing_constant); break; case 2: @@ -148,25 +163,25 @@ void scn2674_device::write_init_regs(uint8_t data) m_IR2_horz_sync_width = (((data&0x78)>>3)*2) + 2; m_IR2_horz_back_porch = ((data&0x07)*4) - 1; - LOG2674(("IR2 - Row Table %02x\n",m_IR2_row_table)); - LOG2674(("IR2 - Horizontal Sync Width %02i CCLKs\n",m_IR2_horz_sync_width)); - LOG2674(("IR2 - Horizontal Back Porch %02i CCLKs\n",m_IR2_horz_back_porch)); + LOG("IR2 - Row Table %02x\n",m_IR2_row_table); + LOG("IR2 - Horizontal Sync Width %02i CCLKs\n",m_IR2_horz_sync_width); + LOG("IR2 - Horizontal Back Porch %02i CCLKs\n",m_IR2_horz_back_porch); break; case 3: m_IR3_vert_front_porch = (((data&0xe0)>>5) * 4)+4 ; m_IR3_vert_back_porch = ((data&0x1f) * 2) + 4; - LOG2674(("IR3 - Vertical Front Porch %02i Lines\n",m_IR3_vert_front_porch)); - LOG2674(("IR3 - Vertical Back Porch %02i Lines\n",m_IR3_vert_back_porch)); + LOG("IR3 - Vertical Front Porch %02i Lines\n",m_IR3_vert_front_porch); + LOG("IR3 - Vertical Back Porch %02i Lines\n",m_IR3_vert_back_porch); break; case 4: m_IR4_rows_per_screen = (data&0x7f) + 1; m_IR4_character_blink_rate_divisor = ((data & 0x80)>>7 ? 128:64); - LOG2674(("IR4 - Rows Per Screen %02i\n",m_IR4_rows_per_screen)); - LOG2674(("IR4 - Character Blink Rate = 1/%02i\n",m_IR4_character_blink_rate_divisor)); + LOG("IR4 - Rows Per Screen %02i\n",m_IR4_rows_per_screen); + LOG("IR4 - Character Blink Rate = 1/%02i\n",m_IR4_character_blink_rate_divisor); break; case 5: @@ -174,14 +189,14 @@ void scn2674_device::write_init_regs(uint8_t data) cccc cccc c = Characters Per Row */ m_IR5_character_per_row = data + 1; - LOG2674(("IR5 - Active Characters Per Row %02i\n",m_IR5_character_per_row)); + LOG("IR5 - Active Characters Per Row %02i\n",m_IR5_character_per_row); break; case 6: m_IR6_cursor_last_scanline = (data & 0x0f); m_IR6_cursor_first_scanline = (data & 0xf0)>>4; - LOG2674(("IR6 - First Line of Cursor %02x\n",m_IR6_cursor_first_scanline)); - LOG2674(("IR6 - Last Line of Cursor %02x\n",m_IR6_cursor_last_scanline)); + LOG("IR6 - First Line of Cursor %02x\n",m_IR6_cursor_first_scanline); + LOG("IR6 - Last Line of Cursor %02x\n",m_IR6_cursor_last_scanline); break; case 7: @@ -193,28 +208,28 @@ void scn2674_device::write_init_regs(uint8_t data) m_IR7_vsync_width = vsync_table[(data & 0xC0)>>6]; - LOG2674(("IR7 - Underline Position %02x\n",m_IR7_cursor_underline_position)); - LOG2674(("IR7 - Cursor rate 1/%02i\n",m_IR7_cursor_rate_divisor)); - LOG2674(("IR7 - Cursor blink %02x\n",m_IR7_cursor_blink)); - LOG2674(("IR7 - Vsync Width %02i Lines\n",m_IR7_vsync_width)); + LOG("IR7 - Underline Position %02x\n",m_IR7_cursor_underline_position); + LOG("IR7 - Cursor rate 1/%02i\n",m_IR7_cursor_rate_divisor); + LOG("IR7 - Cursor blink %02x\n",m_IR7_cursor_blink); + LOG("IR7 - Vsync Width %02i Lines\n",m_IR7_vsync_width); break; } case 8: m_IR8_display_buffer_first_address_LSB = data; - LOG2674(("IR8 - Display Buffer First Address LSB %02x\n",m_IR8_display_buffer_first_address_LSB)); + LOG("IR8 - Display Buffer First Address LSB %02x\n",m_IR8_display_buffer_first_address_LSB); break; case 9: m_IR9_display_buffer_first_address_MSB = data & 0x0f; m_IR9_display_buffer_last_address = (data & 0xf0)>>4; - LOG2674(("IR9 - Display Buffer First Address MSB %02x\n",m_IR9_display_buffer_first_address_MSB)); - LOG2674(("IR9 - Display Buffer Last Address %02x\n",m_IR9_display_buffer_last_address)); + LOG("IR9 - Display Buffer First Address MSB %02x\n",m_IR9_display_buffer_first_address_MSB); + LOG("IR9 - Display Buffer Last Address %02x\n",m_IR9_display_buffer_last_address); break; case 10: m_IR10_display_pointer_address_lower = data; - LOG2674(("IR10 - Display Pointer Address Lower %02x\n",m_IR10_display_pointer_address_lower)); + LOG("IR10 - Display Pointer Address Lower %02x\n",m_IR10_display_pointer_address_lower); break; case 11: @@ -222,23 +237,23 @@ void scn2674_device::write_init_regs(uint8_t data) m_IR11_reset_scanline_counter_on_scrollup= (data&0x40 >> 6); m_IR11_reset_scanline_counter_on_scrolldown= (data&0x80 >> 7); - LOG2674(("IR11 - Display Pointer Address Lower %02x\n",m_IR11_display_pointer_address_upper)); - LOG2674(("IR11 - Reset Scanline Counter on Scroll Up %02x\n",m_IR11_reset_scanline_counter_on_scrollup)); - LOG2674(("IR11 - Reset Scanline Counter on Scroll Down %02x\n",m_IR11_reset_scanline_counter_on_scrolldown)); + LOG("IR11 - Display Pointer Address Lower %02x\n",m_IR11_display_pointer_address_upper); + LOG("IR11 - Reset Scanline Counter on Scroll Up %02x\n",m_IR11_reset_scanline_counter_on_scrollup); + LOG("IR11 - Reset Scanline Counter on Scroll Down %02x\n",m_IR11_reset_scanline_counter_on_scrolldown); break; case 12: m_IR12_scroll_start = (data & 0x80)>>7; m_IR12_split_register_1 = (data & 0x7f); - LOG2674(("IR12 - Scroll Start %02x\n",m_IR12_scroll_start)); - LOG2674(("IR12 - Split Register 1 %02x\n",m_IR12_split_register_1)); + LOG("IR12 - Scroll Start %02x\n",m_IR12_scroll_start); + LOG("IR12 - Split Register 1 %02x\n",m_IR12_split_register_1); break; case 13: m_IR13_scroll_end = (data & 0x80)>>7; m_IR13_split_register_2 = (data & 0x7f); - LOG2674(("IR13 - Scroll End %02x\n",m_IR13_scroll_end)); - LOG2674(("IR13 - Split Register 2 %02x\n",m_IR13_split_register_2)); + LOG("IR13 - Scroll End %02x\n",m_IR13_scroll_end); + LOG("IR13 - Split Register 2 %02x\n",m_IR13_split_register_2); break; case 14: @@ -246,15 +261,15 @@ void scn2674_device::write_init_regs(uint8_t data) if (!m_IR0_double_ht_wd) { m_IR14_double_2 = (data & 0x30)>>4; - LOG2674(("IR14 - Double 2 %02x\n",m_IR14_double_2)); + LOG("IR14 - Double 2 %02x\n",m_IR14_double_2); } //0 normal, 1, double width, 2, double width and double tops 3, double width and double bottoms //1 affects SSR1, 2 affects SSR2 //If Double Height enabled in IR0, Screen start 1 upper (bits 7 and 6)replace Double 1, and Double 2 is unused m_IR14_double_1 = (data & 0xc0)>>6; - LOG2674(("IR14 - Double 1 %02x\n",m_IR14_double_1)); + LOG("IR14 - Double 1 %02x\n",m_IR14_double_1); - LOG2674(("IR14 - Scroll Lines %02i\n",m_IR14_scroll_lines)); + LOG("IR14 - Scroll Lines %02i\n",m_IR14_scroll_lines); break; case 15: /* not valid! */ @@ -276,7 +291,7 @@ void scn2674_device::write_command(uint8_t data) if (data==0x00) { /* master reset, configures registers */ - LOG2674(("master reset\n")); + LOG("master reset\n"); m_IR_pointer=0; m_irq_register = 0x00; m_status_register = 0x20;//RDFLG activated @@ -292,7 +307,7 @@ void scn2674_device::write_command(uint8_t data) { /* set IR pointer */ operand = data & 0x0f; - LOG2674(("set IR pointer %02x\n",operand)); + LOG("set IR pointer %02x\n",operand); m_IR_pointer=operand; @@ -303,7 +318,7 @@ void scn2674_device::write_command(uint8_t data) if ((data&0xe3)==0x22) { /* Disable GFX */ - LOG2674(("disable GFX %02x\n",data)); + LOG("disable GFX %02x\n",data); m_gfx_enabled = 0; recompute_parameters(); } @@ -311,7 +326,7 @@ void scn2674_device::write_command(uint8_t data) if ((data&0xe3)==0x23) { /* Enable GFX */ - LOG2674(("enable GFX %02x\n",data)); + LOG("enable GFX %02x\n",data); m_gfx_enabled = 1; recompute_parameters(); } @@ -324,9 +339,9 @@ void scn2674_device::write_command(uint8_t data) m_display_enabled = 0; if (operand) - LOG2674(("display OFF - float DADD bus %02x\n",data)); + LOG("display OFF - float DADD bus %02x\n",data); else - LOG2674(("display OFF - no float DADD bus %02x\n",data)); + LOG("display OFF - no float DADD bus %02x\n",data); } if ((data&0xe9)==0x29) @@ -337,12 +352,12 @@ void scn2674_device::write_command(uint8_t data) if (operand) { m_display_enabled_field = 1; - LOG2674(("display ON - next field %02x\n",data)); + LOG("display ON - next field %02x\n",data); } else { m_display_enabled_scanline = 1; - LOG2674(("display ON - next scanline %02x\n",data)); + LOG("display ON - next scanline %02x\n",data); } recompute_parameters(); // start the scanline timer } @@ -350,14 +365,14 @@ void scn2674_device::write_command(uint8_t data) if ((data&0xf1)==0x30) { /* Cursor Off */ - LOG2674(("cursor off %02x\n",data)); + LOG("cursor off %02x\n",data); m_cursor_enabled = 0; } if ((data&0xf1)==0x31) { /* Cursor On */ - LOG2674(("cursor on %02x\n",data)); + LOG("cursor on %02x\n",data); m_cursor_enabled = 1; } @@ -367,17 +382,17 @@ void scn2674_device::write_command(uint8_t data) { /* Reset Interrupt / Status bit */ operand = data & 0x1f; - LOG2674(("reset interrupt / status bit %02x\n",operand)); + LOG("reset interrupt / status bit %02x\n",operand); m_irq_register &= ~(data & 0x1f); m_status_register &= ~(data & 0x1f); - LOG2674(("IRQ Status after reset\n")); - LOG2674(("Split 2 IRQ: %d Active\n",(m_irq_register>>0)&1)); - LOG2674(("Ready IRQ: %d Active\n",(m_irq_register>>1)&1)); - LOG2674(("Split 1 IRQ: %d Active\n",(m_irq_register>>2)&1)); - LOG2674(("Line Zero IRQ: %d Active\n",(m_irq_register>>3)&1)); - LOG2674(("V-Blank IRQ: %d Active\n",(m_irq_register>>4)&1)); + LOG("IRQ Status after reset\n"); + LOG("Split 2 IRQ: %d Active\n",(m_irq_register>>0)&1); + LOG("Ready IRQ: %d Active\n",(m_irq_register>>1)&1); + LOG("Split 1 IRQ: %d Active\n",(m_irq_register>>2)&1); + LOG("Line Zero IRQ: %d Active\n",(m_irq_register>>3)&1); + LOG("V-Blank IRQ: %d Active\n",(m_irq_register>>4)&1); m_irq_state = 0; @@ -396,12 +411,12 @@ void scn2674_device::write_command(uint8_t data) /* Disable Interrupt mask*/ operand = data & 0x1f; m_irq_mask &= ~(operand); - LOG2674(("IRQ Mask after disable %x\n",operand)); - LOG2674(("Split 2 IRQ: %d Unmasked\n",(m_irq_mask>>0)&1)); - LOG2674(("Ready IRQ: %d Unmasked\n",(m_irq_mask>>1)&1)); - LOG2674(("Split 1 IRQ: %d Unmasked\n",(m_irq_mask>>2)&1)); - LOG2674(("Line Zero IRQ: %d Unmasked\n",(m_irq_mask>>3)&1)); - LOG2674(("V-Blank IRQ: %d Unmasked\n",(m_irq_mask>>4)&1)); + LOG("IRQ Mask after disable %x\n",operand); + LOG("Split 2 IRQ: %d Unmasked\n",(m_irq_mask>>0)&1); + LOG("Ready IRQ: %d Unmasked\n",(m_irq_mask>>1)&1); + LOG("Split 1 IRQ: %d Unmasked\n",(m_irq_mask>>2)&1); + LOG("Line Zero IRQ: %d Unmasked\n",(m_irq_mask>>3)&1); + LOG("V-Blank IRQ: %d Unmasked\n",(m_irq_mask>>4)&1); } @@ -411,12 +426,12 @@ void scn2674_device::write_command(uint8_t data) operand = data & 0x1f; m_irq_mask |= (data & 0x1f); - LOG2674(("IRQ Mask after enable %x\n",operand)); - LOG2674(("Split 2 IRQ: %d Unmasked\n",(m_irq_mask>>0)&1)); - LOG2674(("Ready IRQ: %d Unmasked\n",(m_irq_mask>>1)&1)); - LOG2674(("Split 1 IRQ: %d Unmasked\n",(m_irq_mask>>2)&1)); - LOG2674(("Line Zero IRQ: %d Unmasked\n",(m_irq_mask>>3)&1)); - LOG2674(("V-Blank IRQ: %d Unmasked\n",(m_irq_mask>>4)&1)); + LOG("IRQ Mask after enable %x\n",operand); + LOG("Split 2 IRQ: %d Unmasked\n",(m_irq_mask>>0)&1); + LOG("Ready IRQ: %d Unmasked\n",(m_irq_mask>>1)&1); + LOG("Split 1 IRQ: %d Unmasked\n",(m_irq_mask>>2)&1); + LOG("Line Zero IRQ: %d Unmasked\n",(m_irq_mask>>3)&1); + LOG("V-Blank IRQ: %d Unmasked\n",(m_irq_mask>>4)&1); } @@ -428,38 +443,38 @@ void scn2674_device::write_command(uint8_t data) case 0xa4: /* read at pointer address */ m_buffer = space().read_byte(m_screen2_l | (m_screen2_h << 8)); - LOG2674(("DELAYED read at pointer address %02x\n",data)); + LOG("DELAYED read at pointer address %02x\n",data); break; case 0xa2: /* write at pointer address */ space().write_byte(m_screen2_l | (m_screen2_h << 8), m_buffer); - LOG2674(("DELAYED write at pointer address %02x\n",data)); + LOG("DELAYED write at pointer address %02x\n",data); break; case 0xa6: // used by the Octopus /* write at pointer address */ space().write_byte((m_IR10_display_pointer_address_lower | (m_IR11_display_pointer_address_upper << 8)), m_buffer); - LOG2674(("DELAYED write at display pointer address %02x\n",data)); + LOG("DELAYED write at display pointer address %02x\n",data); break; case 0xa9: /* increment cursor address */ if(!(++m_cursor_l)) m_cursor_h++; - LOG2674(("DELAYED increase cursor address %02x\n",data)); + LOG("DELAYED increase cursor address %02x\n",data); break; case 0xac: /* read at cursor address */ m_buffer = space().read_byte(m_cursor_l | (m_cursor_h << 8)); - LOG2674(("DELAYED read at cursor address %02x\n",data)); + LOG("DELAYED read at cursor address %02x\n",data); break; case 0xaa: /* write at cursor address */ space().write_byte(m_cursor_l | (m_cursor_h << 8), m_buffer); - LOG2674(("DELAYED write at cursor address %02x\n",data)); + LOG("DELAYED write at cursor address %02x\n",data); break; case 0xad: @@ -467,7 +482,7 @@ void scn2674_device::write_command(uint8_t data) m_buffer = space().read_byte(m_cursor_l | (m_cursor_h << 8)); if(!(++m_cursor_l)) m_cursor_h++; - LOG2674(("DELAYED read at cursor address+increment %02x\n",data)); + LOG("DELAYED read at cursor address+increment %02x\n",data); break; case 0xab: @@ -476,7 +491,7 @@ void scn2674_device::write_command(uint8_t data) space().write_byte(m_cursor_l | (m_cursor_h << 8), m_buffer); if(!(++m_cursor_l)) m_cursor_h++; - LOG2674(("DELAYED write at cursor address+increment %02x\n",data)); + LOG("DELAYED write at cursor address+increment %02x\n",data); break; case 0xbb: @@ -486,12 +501,12 @@ void scn2674_device::write_command(uint8_t data) space().write_byte(i, m_buffer); // get the last m_cursor_l = m_screen2_l; m_cursor_h = m_screen2_h; - LOG2674(("DELAYED write from cursor address to pointer address %02x\n",data)); + LOG("DELAYED write from cursor address to pointer address %02x\n",data); break; case 0xbd: /* read from cursor address to pointer address */ - LOG2674(("DELAYED read from cursor address to pointer address %02x\n",data)); + LOG("DELAYED read from cursor address to pointer address %02x\n",data); break; case 0xbf: @@ -501,7 +516,7 @@ void scn2674_device::write_command(uint8_t data) space().write_byte(i, m_buffer); // get the last m_cursor_l = m_IR10_display_pointer_address_lower; m_cursor_h = m_IR11_display_pointer_address_upper; - LOG2674(("DELAYED write from cursor address to pointer address %02x\n",data)); + LOG("DELAYED write from cursor address to pointer address %02x\n",data); break; } } @@ -537,19 +552,19 @@ READ8_MEMBER( scn2674_device::read ) */ case 0: - LOG2674(("Read Irq Register %02x %06x\n",m_irq_register,space.device().safe_pc())); + LOG("Read Irq Register %02x %06x\n",m_irq_register,space.device().safe_pc()); return m_irq_register; case 1: - LOG2674(("Read Status Register %02X %06x\n",m_status_register,space.device().safe_pc())); + LOG("Read Status Register %02X %06x\n",m_status_register,space.device().safe_pc()); return m_status_register; - case 2: LOG2674(("Read Screen1_l Register %06x\n",space.device().safe_pc()));return m_screen1_l; - case 3: LOG2674(("Read Screen1_h Register %06x\n",space.device().safe_pc()));return m_screen1_h & 0x3f; - case 4: LOG2674(("Read Cursor_l Register %06x\n",space.device().safe_pc()));return m_cursor_l; - case 5: LOG2674(("Read Cursor_h Register %06x\n",space.device().safe_pc()));return m_cursor_h; - case 6: LOG2674(("Read Screen2_l Register %06x\n",space.device().safe_pc()));return m_screen2_l; - case 7: LOG2674(("Read Screen2_h Register %06x\n",space.device().safe_pc()));return m_screen2_h; + case 2: LOG("Read Screen1_l Register %06x\n",space.device().safe_pc());return m_screen1_l; + case 3: LOG("Read Screen1_h Register %06x\n",space.device().safe_pc());return m_screen1_h & 0x3f; + case 4: LOG("Read Cursor_l Register %06x\n",space.device().safe_pc());return m_cursor_l; + case 5: LOG("Read Cursor_h Register %06x\n",space.device().safe_pc());return m_cursor_h; + case 6: LOG("Read Screen2_l Register %06x\n",space.device().safe_pc());return m_screen2_l; + case 7: LOG("Read Screen2_h Register %06x\n",space.device().safe_pc());return m_screen2_h; } return 0xff; @@ -592,7 +607,7 @@ WRITE8_MEMBER( scn2674_device::write ) { m_IR14_double_1 = m_dbl1; m_screen1_h &= 0x3f; - LOG2674(("IR14 - Double 1 overridden %02x\n",m_IR14_double_1)); + LOG("IR14 - Double 1 overridden %02x\n",m_IR14_double_1); } if(!m_screen->vblank()) m_start1change = (m_linecounter / m_IR0_scanline_per_char_row) + 1; @@ -624,7 +639,7 @@ void scn2674_device::recompute_parameters() return; } - LOG2674(("width %u height %u max_x %u max_y %u refresh %f\n", horiz_pix_total, vert_pix_total, max_visible_x, max_visible_y, 1 / ATTOSECONDS_TO_DOUBLE(refresh))); + LOG("width %u height %u max_x %u max_y %u refresh %f\n", horiz_pix_total, vert_pix_total, max_visible_x, max_visible_y, 1 / ATTOSECONDS_TO_DOUBLE(refresh)); rectangle visarea; visarea.set(0, max_visible_x, 0, max_visible_y); @@ -660,7 +675,7 @@ void scn2674_device::device_timer(emu_timer &timer, device_timer_id id, int para m_status_register |= 0x10; if(m_irq_mask & 0x10) { - LOG2674(("vblank irq\n")); + LOG("vblank irq\n"); m_irq_state = 1; m_irq_register |= 0x10; m_irq_cb(1); @@ -679,7 +694,7 @@ void scn2674_device::device_timer(emu_timer &timer, device_timer_id id, int para m_status_register |= 0x08; if (m_irq_mask & 0x08) { - LOG2674(("SCN2674 Line Zero\n")); + LOG("SCN2674 Line Zero\n"); m_irq_state = 1; m_irq_register |= 0x08; m_irq_cb(1); @@ -691,7 +706,7 @@ void scn2674_device::device_timer(emu_timer &timer, device_timer_id id, int para m_status_register |= 0x04; if(m_irq_mask & 0x04) { - LOG2674(("SCN2674 Split Screen 1 irq\n")); + LOG("SCN2674 Split Screen 1 irq\n"); m_irq_state = 1; m_irq_register |= 0x04; m_irq_cb(1); @@ -707,7 +722,7 @@ void scn2674_device::device_timer(emu_timer &timer, device_timer_id id, int para m_status_register |= 0x01; if(m_irq_mask & 0x01) { - LOG2674(("SCN2674 Split Screen 2 irq\n")); + LOG("SCN2674 Split Screen 2 irq\n"); m_irq_state = 1; m_irq_register |= 0x01; m_irq_cb(1); diff --git a/src/devices/video/scn2674.h b/src/devices/video/scn2674.h index 2353a84cbcb..1c7c724a399 100644 --- a/src/devices/video/scn2674.h +++ b/src/devices/video/scn2674.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Carl -#ifndef SCN2674_H -#define SCN2674_H +#ifndef MAME_VIDEO_SCN2674_H +#define MAME_VIDEO_SCN2674_H + +#pragma once #define MCFG_SCN2674_VIDEO_ADD(_tag, _clock, _irq) \ @@ -29,10 +31,10 @@ public: typedef device_delegate draw_character_delegate; // static configuration - template static devcb_base &set_irq_callback(device_t &device, _Object object) { return downcast(device).m_irq_cb.set_callback(object); } + template static devcb_base &set_irq_callback(device_t &device, Object &&cb) { return downcast(device).m_irq_cb.set_callback(std::forward(cb)); } static void static_set_character_width(device_t &device, int value) { downcast(device).m_text_hpixels_per_column = value; } static void static_set_gfx_character_width(device_t &device, int value) { downcast(device).m_gfx_hpixels_per_column = value; } - static void static_set_display_callback(device_t &device, draw_character_delegate callback) { downcast(device).m_display_cb = callback; } + static void static_set_display_callback(device_t &device, draw_character_delegate &&cb) { downcast(device).m_display_cb = std::move(cb); } DECLARE_READ8_MEMBER( read ); DECLARE_WRITE8_MEMBER( write ); @@ -40,7 +42,7 @@ public: DECLARE_WRITE8_MEMBER( buffer_w ) { m_buffer = data; } uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); - virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_0) const override { return (spacenum == AS_0) ? &m_space_config : nullptr; } + virtual const address_space_config *memory_space_config(address_spacenum spacenum) const override { return (spacenum == AS_0) ? &m_space_config : nullptr; } protected: virtual void device_start() override; @@ -127,6 +129,6 @@ private: }; -extern const device_type SCN2674_VIDEO; +DECLARE_DEVICE_TYPE(SCN2674_VIDEO, scn2674_device) -#endif +#endif // MAME_VIDEO_SCN2674_H diff --git a/src/devices/video/sed1200.cpp b/src/devices/video/sed1200.cpp index d25d6ea9d61..371832f579a 100644 --- a/src/devices/video/sed1200.cpp +++ b/src/devices/video/sed1200.cpp @@ -16,10 +16,10 @@ #include "emu.h" #include "sed1200.h" -const device_type SED1200D0A = device_creator; -const device_type SED1200F0A = device_creator; -const device_type SED1200D0B = device_creator; -const device_type SED1200F0B = device_creator; +DEFINE_DEVICE_TYPE(SED1200D0A, sed1200d0a_device, "sed1200da", "Epson SED1200D-0A") +DEFINE_DEVICE_TYPE(SED1200F0A, sed1200f0a_device, "sed1200fa", "Epson SED1200F-0A") +DEFINE_DEVICE_TYPE(SED1200D0B, sed1200d0b_device, "sed1200db", "Epson SED1200D-0B") +DEFINE_DEVICE_TYPE(SED1200F0B, sed1200f0b_device, "sed1200fb", "Epson SED1200F-0B") ROM_START( sed1200x0a ) ROM_REGION( 0x800, "cgrom", 0 ) @@ -31,28 +31,28 @@ ROM_START( sed1200x0b ) ROM_LOAD( "sed1200-b.bin", 0x000, 0x800, CRC(d0741f51) SHA1(c8c856f1357286a2c8c806af81724a828345357e)) ROM_END -sed1200_device::sed1200_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), cursor_direction(false), cursor_blinking(false), cursor_full(false), cursor_on(false), display_on(false), cursor_address(0), cgram_address(0), cgrom(nullptr) +sed1200_device::sed1200_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), cursor_direction(false), cursor_blinking(false), cursor_full(false), cursor_on(false), display_on(false), cursor_address(0), cgram_address(0), cgrom(nullptr) { } sed1200d0a_device::sed1200d0a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - sed1200_device(mconfig, SED1200D0A, "sed1200d-0a", tag, owner, clock, "sed1200da", __FILE__) + sed1200_device(mconfig, SED1200D0A, tag, owner, clock) { } sed1200f0a_device::sed1200f0a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - sed1200_device(mconfig, SED1200F0A, "sed1200f-0a", tag, owner, clock, "sed1200fa", __FILE__) + sed1200_device(mconfig, SED1200F0A, tag, owner, clock) { } sed1200d0b_device::sed1200d0b_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - sed1200_device(mconfig, SED1200D0B, "sed1200d-0b", tag, owner, clock, "sed1200db", __FILE__) + sed1200_device(mconfig, SED1200D0B, tag, owner, clock) { } sed1200f0b_device::sed1200f0b_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - sed1200_device(mconfig, SED1200F0B, "sed1200f-0b", tag, owner, clock, "sed1200fb", __FILE__) + sed1200_device(mconfig, SED1200F0B, tag, owner, clock) { } diff --git a/src/devices/video/sed1200.h b/src/devices/video/sed1200.h index 454e3585968..521bd4e027c 100644 --- a/src/devices/video/sed1200.h +++ b/src/devices/video/sed1200.h @@ -12,8 +12,10 @@ ***************************************************************************/ -#ifndef __SED1200_H__ -#define __SED1200_H__ +#ifndef MAME_VIDEO_SED1200_H +#define MAME_VIDEO_SED1200_H + +#pragma once #define MCFG_SED1200D0A_ADD( _tag ) \ MCFG_DEVICE_ADD( _tag, SED1200D0A, 0 ) @@ -29,8 +31,6 @@ class sed1200_device : public device_t { public: - sed1200_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - void control_w(uint8_t data); uint8_t control_r(); void data_w(uint8_t data); @@ -38,6 +38,8 @@ public: const uint8_t *render(); protected: + sed1200_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; private: @@ -84,9 +86,9 @@ protected: virtual const tiny_rom_entry *device_rom_region() const override; }; -extern const device_type SED1200D0A; -extern const device_type SED1200F0A; -extern const device_type SED1200D0B; -extern const device_type SED1200F0B; +DECLARE_DEVICE_TYPE(SED1200D0A, sed1200d0a_device) +DECLARE_DEVICE_TYPE(SED1200F0A, sed1200f0a_device) +DECLARE_DEVICE_TYPE(SED1200D0B, sed1200d0b_device) +DECLARE_DEVICE_TYPE(SED1200F0B, sed1200f0b_device) -#endif +#endif // MAME_VIDEO_SED1200_H diff --git a/src/devices/video/sed1330.cpp b/src/devices/video/sed1330.cpp index d7cb154cb91..0336205784a 100644 --- a/src/devices/video/sed1330.cpp +++ b/src/devices/video/sed1330.cpp @@ -9,14 +9,15 @@ #include "emu.h" #include "sed1330.h" +//#define VERBOSE 1 +#include "logmacro.h" + //************************************************************************** // MACROS / CONSTANTS //************************************************************************** -#define LOG 0 - #define INSTRUCTION_SYSTEM_SET 0x40 #define INSTRUCTION_SLEEP_IN 0x53 // unimplemented @@ -61,7 +62,7 @@ //************************************************************************** // device type definition -const device_type SED1330 = device_creator; +DEFINE_DEVICE_TYPE(SED1330, sed1330_device, "sed1330", "Epson SED1330") // default address map @@ -139,7 +140,7 @@ inline void sed1330_device::increment_csr() //------------------------------------------------- sed1330_device::sed1330_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, SED1330, "SED1330", tag, owner, clock, "sed1330", __FILE__), + : device_t(mconfig, SED1330, tag, owner, clock), device_memory_interface(mconfig, *this), device_video_interface(mconfig, *this), m_bf(0), @@ -230,7 +231,7 @@ const address_space_config *sed1330_device::memory_space_config(address_spacenum READ8_MEMBER( sed1330_device::status_r ) { - if (LOG) logerror("SED1330 '%s' Status Read: %s\n", tag(), m_bf ? "busy" : "ready"); + LOG("SED1330 Status Read: %s\n", m_bf ? "busy" : "ready"); return m_bf << 6; } @@ -257,15 +258,12 @@ WRITE8_MEMBER( sed1330_device::command_w ) case INSTRUCTION_CSRDIR_DOWN: m_cd = data & 0x03; - if (LOG) + switch (m_cd) { - switch (m_cd) - { - case CSRDIR_RIGHT: logerror("SED1330 '%s' Cursor Direction: Right\n", tag()); break; - case CSRDIR_LEFT: logerror("SED1330 '%s' Cursor Direction: Left\n", tag()); break; - case CSRDIR_UP: logerror("SED1330 '%s' Cursor Direction: Up\n", tag()); break; - case CSRDIR_DOWN: logerror("SED1330 '%s' Cursor Direction: Down\n", tag()); break; - } + case CSRDIR_RIGHT: LOG("SED1330 Cursor Direction: Right\n"); break; + case CSRDIR_LEFT: LOG("SED1330 Cursor Direction: Left\n"); break; + case CSRDIR_UP: LOG("SED1330 Cursor Direction: Up\n"); break; + case CSRDIR_DOWN: LOG("SED1330 Cursor Direction: Down\n"); break; } break; } @@ -280,7 +278,7 @@ READ8_MEMBER( sed1330_device::data_r ) { uint8_t data = readbyte(m_csr); - if (LOG) logerror("SED1330 '%s' Memory Read %02x from %04x\n", tag(), data, m_csr); + LOG("SED1330 Memory Read %02x from %04x\n", data, m_csr); increment_csr(); @@ -306,45 +304,39 @@ WRITE8_MEMBER( sed1330_device::data_w ) m_ws = BIT(data, 3); m_iv = BIT(data, 5); - if (LOG) - { - logerror("SED1330 '%s' %s CG ROM\n", tag(), BIT(data, 0) ? "External" : "Internal"); - logerror("SED1330 '%s' D6 Correction: %s\n", tag(), BIT(data, 1) ? "enabled" : "disabled"); - logerror("SED1330 '%s' Character Height: %u\n", tag(), BIT(data, 2) ? 16 : 8); - logerror("SED1330 '%s' %s Panel Drive\n", tag(), BIT(data, 3) ? "Dual" : "Single"); - logerror("SED1330 '%s' Screen Top-Line Correction: %s\n", tag(), BIT(data, 5) ? "disabled" : "enabled"); - } + LOG("SED1330 %s CG ROM\n", BIT(data, 0) ? "External" : "Internal"); + LOG("SED1330 D6 Correction: %s\n", BIT(data, 1) ? "enabled" : "disabled"); + LOG("SED1330 Character Height: %u\n", BIT(data, 2) ? 16 : 8); + LOG("SED1330 %s Panel Drive\n", BIT(data, 3) ? "Dual" : "Single"); + LOG("SED1330 Screen Top-Line Correction: %s\n", BIT(data, 5) ? "disabled" : "enabled"); break; case 1: m_fx = (data & 0x07) + 1; m_wf = BIT(data, 7); - if (LOG) - { - logerror("SED1330 '%s' Horizontal Character Size: %u\n", tag(), m_fx); - logerror("SED1330 '%s' %s AC Drive\n", tag(), BIT(data, 7) ? "2-frame" : "16-line"); - } + LOG("SED1330 Horizontal Character Size: %u\n", m_fx); + LOG("SED1330 %s AC Drive\n", BIT(data, 7) ? "2-frame" : "16-line"); break; case 2: m_fy = (data & 0x0f) + 1; - if (LOG) logerror("SED1330 '%s' Vertical Character Size: %u\n", tag(), m_fy); + LOG("SED1330 Vertical Character Size: %u\n", m_fy); break; case 3: m_cr = data + 1; - if (LOG) logerror("SED1330 '%s' Visible Characters Per Line: %u\n", tag(), m_cr); + LOG("SED1330 Visible Characters Per Line: %u\n", m_cr); break; case 4: m_tcr = data + 1; - if (LOG) logerror("SED1330 '%s' Total Characters Per Line: %u\n", tag(), m_tcr); + LOG("SED1330 Total Characters Per Line: %u\n", m_tcr); break; case 5: m_lf = data + 1; - if (LOG) logerror("SED1330 '%s' Frame Height: %u\n", tag(), m_lf); + LOG("SED1330 Frame Height: %u\n", m_lf); break; case 6: @@ -353,11 +345,11 @@ WRITE8_MEMBER( sed1330_device::data_w ) case 7: m_ap = (data << 8) | (m_ap & 0xff); - if (LOG) logerror("SED1330 '%s' Virtual Screen Width: %u\n", tag(), m_ap); + LOG("SED1330 Virtual Screen Width: %u\n", m_ap); break; default: - logerror("SED1330 '%s' Invalid parameter byte %02x\n", tag(), data); + logerror("SED1330 Invalid parameter byte %02x\n", data); } break; @@ -366,41 +358,38 @@ WRITE8_MEMBER( sed1330_device::data_w ) m_d = BIT(data, 0); m_fc = data & 0x03; m_fp = data >> 2; - if (LOG) - { - logerror("SED1330 '%s' Display: %s\n", tag(), BIT(data, 0) ? "enabled" : "disabled"); + LOG("SED1330 Display: %s\n", BIT(data, 0) ? "enabled" : "disabled"); - switch (m_fc) - { - case FC_OFF: logerror("SED1330 '%s' Cursor: disabled\n", tag()); break; - case FC_SOLID: logerror("SED1330 '%s' Cursor: solid\n", tag()); break; - case FC_FLASH_32: logerror("SED1330 '%s' Cursor: fFR/32\n", tag()); break; - case FC_FLASH_64: logerror("SED1330 '%s' Cursor: fFR/64\n", tag()); break; - } + switch (m_fc) + { + case FC_OFF: LOG("SED1330 Cursor: disabled\n"); break; + case FC_SOLID: LOG("SED1330 Cursor: solid\n"); break; + case FC_FLASH_32: LOG("SED1330 Cursor: fFR/32\n"); break; + case FC_FLASH_64: LOG("SED1330 Cursor: fFR/64\n"); break; + } - switch (m_fp & 0x03) - { - case FC_OFF: logerror("SED1330 '%s' Display Page 1: disabled\n", tag()); break; - case FC_SOLID: logerror("SED1330 '%s' Display Page 1: enabled\n", tag()); break; - case FC_FLASH_32: logerror("SED1330 '%s' Display Page 1: flash fFR/32\n", tag()); break; - case FC_FLASH_64: logerror("SED1330 '%s' Display Page 1: flash fFR/64\n", tag()); break; - } + switch (m_fp & 0x03) + { + case FC_OFF: LOG("SED1330 Display Page 1: disabled\n"); break; + case FC_SOLID: LOG("SED1330 Display Page 1: enabled\n"); break; + case FC_FLASH_32: LOG("SED1330 Display Page 1: flash fFR/32\n"); break; + case FC_FLASH_64: LOG("SED1330 Display Page 1: flash fFR/64\n"); break; + } - switch ((m_fp >> 2) & 0x03) - { - case FC_OFF: logerror("SED1330 '%s' Display Page 2/4: disabled\n", tag()); break; - case FC_SOLID: logerror("SED1330 '%s' Display Page 2/4: enabled\n", tag()); break; - case FC_FLASH_32: logerror("SED1330 '%s' Display Page 2/4: flash fFR/32\n", tag()); break; - case FC_FLASH_64: logerror("SED1330 '%s' Display Page 2/4: flash fFR/64\n", tag()); break; - } + switch ((m_fp >> 2) & 0x03) + { + case FC_OFF: LOG("SED1330 Display Page 2/4: disabled\n"); break; + case FC_SOLID: LOG("SED1330 Display Page 2/4: enabled\n"); break; + case FC_FLASH_32: LOG("SED1330 Display Page 2/4: flash fFR/32\n"); break; + case FC_FLASH_64: LOG("SED1330 Display Page 2/4: flash fFR/64\n"); break; + } - switch ((m_fp >> 4) & 0x03) - { - case FC_OFF: logerror("SED1330 '%s' Display Page 3: disabled\n", tag()); break; - case FC_SOLID: logerror("SED1330 '%s' Display Page 3: enabled\n", tag()); break; - case FC_FLASH_32: logerror("SED1330 '%s' Display Page 3: flash fFR/32\n", tag()); break; - case FC_FLASH_64: logerror("SED1330 '%s' Display Page 3: flash fFR/64\n", tag()); break; - } + switch ((m_fp >> 4) & 0x03) + { + case FC_OFF: LOG("SED1330 Display Page 3: disabled\n"); break; + case FC_SOLID: LOG("SED1330 Display Page 3: enabled\n"); break; + case FC_FLASH_32: LOG("SED1330 Display Page 3: flash fFR/32\n"); break; + case FC_FLASH_64: LOG("SED1330 Display Page 3: flash fFR/64\n"); break; } break; @@ -413,12 +402,12 @@ WRITE8_MEMBER( sed1330_device::data_w ) case 1: m_sad1 = (data << 8) | (m_sad1 & 0xff); - if (LOG) logerror("SED1330 '%s' Display Page 1 Start Address: %04x\n", tag(), m_sad1); + LOG("SED1330 Display Page 1 Start Address: %04x\n", m_sad1); break; case 2: m_sl1 = data + 1; - if (LOG) logerror("SED1330 '%s' Display Block 1 Screen Lines: %u\n", tag(), m_sl1); + LOG("SED1330 Display Block 1 Screen Lines: %u\n", m_sl1); break; case 3: @@ -427,12 +416,12 @@ WRITE8_MEMBER( sed1330_device::data_w ) case 4: m_sad2 = (data << 8) | (m_sad2 & 0xff); - if (LOG) logerror("SED1330 '%s' Display Page 2 Start Address: %04x\n", tag(), m_sad2); + LOG("SED1330 Display Page 2 Start Address: %04x\n", m_sad2); break; case 5: m_sl2 = data + 1; - if (LOG) logerror("SED1330 '%s' Display Block 2 Screen Lines: %u\n", tag(), m_sl2); + LOG("SED1330 Display Block 2 Screen Lines: %u\n", m_sl2); break; case 6: @@ -441,7 +430,7 @@ WRITE8_MEMBER( sed1330_device::data_w ) case 7: m_sad3 = (data << 8) | (m_sad3 & 0xff); - if (LOG) logerror("SED1330 '%s' Display Page 3 Start Address: %04x\n", tag(), m_sad3); + LOG("SED1330 Display Page 3 Start Address: %04x\n", m_sad3); break; case 8: @@ -450,11 +439,11 @@ WRITE8_MEMBER( sed1330_device::data_w ) case 9: m_sad4 = (data << 8) | (m_sad4 & 0xff); - if (LOG) logerror("SED1330 '%s' Display Page 4 Start Address: %04x\n", tag(), m_sad4); + LOG("SED1330 Display Page 4 Start Address: %04x\n", m_sad4); break; default: - logerror("SED1330 '%s' Invalid parameter byte %02x\n", tag(), data); + logerror("SED1330 Invalid parameter byte %02x\n", data); } break; @@ -463,21 +452,18 @@ WRITE8_MEMBER( sed1330_device::data_w ) { case 0: m_crx = (data & 0x0f) + 1; - if (LOG) logerror("SED1330 '%s' Horizontal Cursor Size: %u\n", tag(), m_crx); + LOG("SED1330 Horizontal Cursor Size: %u\n", m_crx); break; case 1: m_cry = (data & 0x0f) + 1; m_cm = BIT(data, 7); - if (LOG) - { - logerror("SED1330 '%s' Vertical Cursor Location: %u\n", tag(), m_cry); - logerror("SED1330 '%s' Cursor Shape: %s\n", tag(), BIT(data, 7) ? "Block" : "Underscore"); - } + LOG("SED1330 Vertical Cursor Location: %u\n", m_cry); + LOG("SED1330 Cursor Shape: %s\n", BIT(data, 7) ? "Block" : "Underscore"); break; default: - logerror("SED1330 '%s' Invalid parameter byte %02x\n", tag(), data); + logerror("SED1330 Invalid parameter byte %02x\n", data); } break; @@ -490,17 +476,17 @@ WRITE8_MEMBER( sed1330_device::data_w ) case 1: m_sag = (data << 8) | (m_sag & 0xff); - if (LOG) logerror("SED1330 '%s' Character Generator RAM Start Address: %04x\n", tag(), m_sag); + LOG("SED1330 Character Generator RAM Start Address: %04x\n", m_sag); break; default: - logerror("SED1330 '%s' Invalid parameter byte %02x\n", tag(), data); + logerror("SED1330 Invalid parameter byte %02x\n", data); } break; case INSTRUCTION_HDOT_SCR: m_hdotscr = data & 0x07; - if (LOG) logerror("SED1330 '%s' Horizontal Dot Scroll: %u\n", tag(), m_hdotscr); + LOG("SED1330 Horizontal Dot Scroll: %u\n", m_hdotscr); break; case INSTRUCTION_OVLAY: @@ -508,20 +494,17 @@ WRITE8_MEMBER( sed1330_device::data_w ) m_dm = (data >> 2) & 0x03; m_ov = BIT(data, 4); - if (LOG) + switch (m_mx) { - switch (m_mx) - { - case MX_OR: logerror("SED1330 '%s' Display Composition Method: OR\n", tag()); break; - case MX_XOR: logerror("SED1330 '%s' Display Composition Method: Exclusive-OR\n", tag()); break; - case MX_AND: logerror("SED1330 '%s' Display Composition Method: AND\n", tag()); break; - case MX_PRIORITY_OR: logerror("SED1330 '%s' Display Composition Method: Priority-OR\n", tag()); break; - } - - logerror("SED1330 '%s' Display Page 1 Mode: %s\n", tag(), BIT(data, 2) ? "Graphics" : "Text"); - logerror("SED1330 '%s' Display Page 3 Mode: %s\n", tag(), BIT(data, 3) ? "Graphics" : "Text"); - logerror("SED1330 '%s' Display Composition Layers: %u\n", tag(), BIT(data, 4) ? 3 : 2); + case MX_OR: LOG("SED1330 Display Composition Method: OR\n"); break; + case MX_XOR: LOG("SED1330 Display Composition Method: Exclusive-OR\n"); break; + case MX_AND: LOG("SED1330 Display Composition Method: AND\n"); break; + case MX_PRIORITY_OR: LOG("SED1330 Display Composition Method: Priority-OR\n"); break; } + + LOG("SED1330 Display Page 1 Mode: %s\n", BIT(data, 2) ? "Graphics" : "Text"); + LOG("SED1330 Display Page 3 Mode: %s\n", BIT(data, 3) ? "Graphics" : "Text"); + LOG("SED1330 Display Composition Layers: %u\n", BIT(data, 4) ? 3 : 2); break; case INSTRUCTION_CSRW: @@ -533,11 +516,11 @@ WRITE8_MEMBER( sed1330_device::data_w ) case 1: m_csr = (data << 8) | (m_csr & 0xff); - if (LOG) logerror("SED1330 '%s' Cursor Address %04x\n", tag(), m_csr); + LOG("SED1330 Cursor Address %04x\n", m_csr); break; default: - logerror("SED1330 '%s' Invalid parameter byte %02x\n", tag(), data); + logerror("SED1330 Invalid parameter byte %02x\n", data); } break; #if 0 @@ -545,7 +528,7 @@ WRITE8_MEMBER( sed1330_device::data_w ) break; #endif case INSTRUCTION_MWRITE: - if (LOG) logerror("SED1330 '%s' Memory Write %02x to %04x (row %u col %u line %u)\n", tag(), data, m_csr, m_csr/80/8, m_csr%80, m_csr/80); + LOG("SED1330 Memory Write %02x to %04x (row %u col %u line %u)\n", data, m_csr, m_csr/80/8, m_csr%80, m_csr/80); writebyte(m_csr, data); @@ -556,7 +539,7 @@ WRITE8_MEMBER( sed1330_device::data_w ) break; #endif default: - logerror("SED1330 '%s' Unsupported instruction %02x\n", tag(), m_ir); + logerror("SED1330 Unsupported instruction %02x\n", m_ir); } m_pbc++; diff --git a/src/devices/video/sed1330.h b/src/devices/video/sed1330.h index a71e35e0e83..fd38f03e689 100644 --- a/src/devices/video/sed1330.h +++ b/src/devices/video/sed1330.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_VIDEO_SED1330_H +#define MAME_VIDEO_SED1330_H -#ifndef __SED1330__ -#define __SED1330__ +#pragma once @@ -56,7 +56,7 @@ protected: virtual void device_reset() override; // device_memory_interface overrides - virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_0) const override; + virtual const address_space_config *memory_space_config(address_spacenum spacenum) const override; inline uint8_t readbyte(offs_t address); inline void writebyte(offs_t address, uint8_t m_data); @@ -118,8 +118,6 @@ private: // device type definition -extern const device_type SED1330; - - +DECLARE_DEVICE_TYPE(SED1330, sed1330_device) -#endif +#endif // MAME_VIDEO_SED1330_H diff --git a/src/devices/video/sed1520.cpp b/src/devices/video/sed1520.cpp index 83f884d5756..708d685ad18 100644 --- a/src/devices/video/sed1520.cpp +++ b/src/devices/video/sed1520.cpp @@ -19,7 +19,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type SED1520 = device_creator; +DEFINE_DEVICE_TYPE(SED1520, sed1520_device, "sed1520", "Epson SED1520") //************************************************************************** @@ -31,7 +31,7 @@ const device_type SED1520 = device_creator; //------------------------------------------------- sed1520_device::sed1520_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, SED1520, "SED1520", tag, owner, clock, "sed1520", __FILE__), m_lcd_on(0), m_busy(0), m_page(0), m_column(0), m_old_column(0), m_start_line(0), + device_t(mconfig, SED1520, tag, owner, clock), m_lcd_on(0), m_busy(0), m_page(0), m_column(0), m_old_column(0), m_start_line(0), m_adc(0), m_static_drive(0), m_modify_write(false), m_screen_update_func(nullptr) { diff --git a/src/devices/video/sed1520.h b/src/devices/video/sed1520.h index 29bc5b1dd15..2bd554055f0 100644 --- a/src/devices/video/sed1520.h +++ b/src/devices/video/sed1520.h @@ -6,10 +6,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_VIDEO_SED1520_H +#define MAME_VIDEO_SED1520_H -#ifndef __SED1520_H__ -#define __SED1520_H__ +#pragma once #define MCFG_SED1520_ADD( _tag, _cb ) \ @@ -20,7 +20,6 @@ // TYPE DEFINITIONS //************************************************************************** -typedef uint32_t (*sed1520_screen_update_func)(device_t &device, bitmap_ind16 &bitmap, const rectangle &cliprect, uint8_t *vram, int start_line, int adc); #define SED1520_UPDATE_CB(name) uint32_t name(device_t &device, bitmap_ind16 &bitmap, const rectangle &cliprect, uint8_t *vram, int start_line, int adc) @@ -29,11 +28,13 @@ typedef uint32_t (*sed1520_screen_update_func)(device_t &device, bitmap_ind16 &b class sed1520_device : public device_t { public: + typedef uint32_t (*screen_update_func)(device_t &device, bitmap_ind16 &bitmap, const rectangle &cliprect, uint8_t *vram, int start_line, int adc); + // construction/destruction sed1520_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // static configuration helpers - static void static_set_screen_update_cb(device_t &device, sed1520_screen_update_func _cb) { downcast(device).m_screen_update_func = _cb; } + static void static_set_screen_update_cb(device_t &device, screen_update_func _cb) { downcast(device).m_screen_update_func = _cb; } // device interface virtual DECLARE_WRITE8_MEMBER(write); @@ -60,13 +61,13 @@ private: uint8_t m_adc; uint8_t m_static_drive; bool m_modify_write; - sed1520_screen_update_func m_screen_update_func; + screen_update_func m_screen_update_func; uint8_t m_vram[0x140]; }; // device type definition -extern const device_type SED1520; +DECLARE_DEVICE_TYPE(SED1520, sed1520_device) -#endif +#endif // MAME_VIDEO_SED1520_H diff --git a/src/devices/video/snes_ppu.cpp b/src/devices/video/snes_ppu.cpp index 8fcfb4af3e6..836690f2a72 100644 --- a/src/devices/video/snes_ppu.cpp +++ b/src/devices/video/snes_ppu.cpp @@ -189,7 +189,7 @@ enum // DEVICE DEFINITIONS //************************************************************************** -const device_type SNES_PPU = device_creator; +DEFINE_DEVICE_TYPE(SNES_PPU, snes_ppu_device, "snes_ppu", "SNES PPU") //************************************************************************** @@ -201,14 +201,14 @@ const device_type SNES_PPU = device_creator; //------------------------------------------------- snes_ppu_device::snes_ppu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, SNES_PPU, "SNES PPU", tag, owner, clock, "snes_ppu", __FILE__), - device_video_interface(mconfig, *this), - m_openbus_cb(*this), - m_options(*this, ":OPTIONS"), - m_debug1(*this, ":DEBUG1"), - m_debug2(*this, ":DEBUG2"), - m_debug3(*this, ":DEBUG3"), - m_debug4(*this, ":DEBUG4") + : device_t(mconfig, SNES_PPU, tag, owner, clock) + , device_video_interface(mconfig, *this) + , m_openbus_cb(*this) + , m_options(*this, ":OPTIONS") + , m_debug1(*this, ":DEBUG1") + , m_debug2(*this, ":DEBUG2") + , m_debug3(*this, ":DEBUG3") + , m_debug4(*this, ":DEBUG4") { } diff --git a/src/devices/video/snes_ppu.h b/src/devices/video/snes_ppu.h index ab1a30245df..2a3ac575edf 100644 --- a/src/devices/video/snes_ppu.h +++ b/src/devices/video/snes_ppu.h @@ -6,8 +6,8 @@ ***************************************************************************/ -#ifndef MAME_DEVICES_VIDEO_SNES_PPU_H -#define MAME_DEVICES_VIDEO_SNES_PPU_H +#ifndef MAME_VIDEO_SNES_PPU_H +#define MAME_VIDEO_SNES_PPU_H #pragma once @@ -34,37 +34,6 @@ #define SNES_LAYER_DEBUG 0 -/* offset-per-tile modes */ -enum -{ - SNES_OPT_NONE = 0, - SNES_OPT_MODE2, - SNES_OPT_MODE4, - SNES_OPT_MODE6 -}; - -/* layers */ -enum -{ - SNES_BG1 = 0, - SNES_BG2, - SNES_BG3, - SNES_BG4, - SNES_OAM, - SNES_COLOR -}; - - -struct SNES_SCANLINE -{ - int enable, clip; - - uint16_t buffer[SNES_SCR_WIDTH]; - uint8_t priority[SNES_SCR_WIDTH]; - uint8_t layer[SNES_SCR_WIDTH]; - uint8_t blend_exception[SNES_SCR_WIDTH]; -}; - // ======================> snes_ppu_device class snes_ppu_device : public device_t, @@ -75,7 +44,68 @@ public: snes_ppu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // inline configuration helpers - template static devcb_base &static_set_open_bus_callback(device_t &device, _Object object) { return downcast(device).m_openbus_cb.set_callback(object); } + template static devcb_base &static_set_open_bus_callback(device_t &device, Object &&cb) { return downcast(device).m_openbus_cb.set_callback(std::forward(cb)); } + + void refresh_scanline(bitmap_rgb32 &bitmap, uint16_t curline); + + int16_t current_x() const { return m_screen->hpos() / m_htmult; } + int16_t current_y() const { return m_screen->vpos(); } + void set_latch_hv(int16_t x, int16_t y); + + uint8_t read(address_space &space, uint32_t offset, uint8_t wrio_bit7); + void write(address_space &space, uint32_t offset, uint8_t data); + + int vtotal() const { return ((m_stat78 & 0x10) == SNES_NTSC) ? SNES_VTOTAL_NTSC : SNES_VTOTAL_PAL; } + uint16_t htmult() const { return m_htmult; } + uint8_t interlace() const { return m_interlace; } + bool screen_disabled() const { return bool(m_screen_disabled); } + uint8_t last_visible_line() const { return m_beam.last_visible_line; } + uint16_t current_vert() const { return m_beam.current_vert; } + uint8_t saved_oam_address_low() const { return m_oam.saved_address_low; } + uint8_t saved_oam_address_high() const { return m_oam.saved_address_high; } + + void clear_time_range_over() { m_stat77 &= 0x3f; } + void toggle_field() { m_stat78 ^= 0x80; } + void reset_interlace() + { + m_htmult = 1; + m_interlace = 1; + m_obj_interlace = 1; + } + void set_current_vert(uint16_t value) { m_beam.current_vert = value; } + void set_first_sprite() { m_oam.first_sprite = m_oam.priority_rotation ? ((m_oam.address >> 1) & 127) : 0; } + +protected: + /* offset-per-tile modes */ + enum + { + SNES_OPT_NONE = 0, + SNES_OPT_MODE2, + SNES_OPT_MODE4, + SNES_OPT_MODE6 + }; + + /* layers */ + enum + { + SNES_BG1 = 0, + SNES_BG2, + SNES_BG3, + SNES_BG4, + SNES_OAM, + SNES_COLOR + }; + + + struct SNES_SCANLINE + { + int enable, clip; + + uint16_t buffer[SNES_SCR_WIDTH]; + uint8_t priority[SNES_SCR_WIDTH]; + uint8_t layer[SNES_SCR_WIDTH]; + uint8_t blend_exception[SNES_SCR_WIDTH]; + }; uint8_t m_regs[0x40]; @@ -252,17 +282,10 @@ public: void update_windowmasks(void); void update_offsets(void); inline void draw_blend(uint16_t offset, uint16_t *colour, uint8_t prevent_color_math, uint8_t black_pen_clip, int switch_screens); - void refresh_scanline(bitmap_rgb32 &bitmap, uint16_t curline); - inline int16_t current_x() { return m_screen->hpos() / m_htmult; } - inline int16_t current_y() { return m_screen->vpos(); } - void set_latch_hv(int16_t x, int16_t y); void dynamic_res_change(); inline uint32_t get_vram_address(); - uint8_t read(address_space &space, uint32_t offset, uint8_t wrio_bit7); - void write(address_space &space, uint32_t offset, uint8_t data); - DECLARE_READ8_MEMBER( oam_read ); DECLARE_WRITE8_MEMBER( oam_write ); DECLARE_READ8_MEMBER( cgram_read ); @@ -273,7 +296,6 @@ public: std::unique_ptr m_cgram; /* Palette RAM */ std::unique_ptr m_vram; /* Video RAM (TODO: Should be 16-bit, but it's easier this way) */ -protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -289,7 +311,7 @@ private: // device type definition -extern const device_type SNES_PPU; +DECLARE_DEVICE_TYPE(SNES_PPU, snes_ppu_device) /*************************************************************************** @@ -299,4 +321,4 @@ extern const device_type SNES_PPU; #define MCFG_SNES_PPU_OPENBUS_CB(_read) \ devcb = &snes_ppu_device::static_set_open_bus_callback(*device, DEVCB_##_read); -#endif // MAME_DEVICES_VIDEO_SNES_PPU_H +#endif // MAME_VIDEO_SNES_PPU_H diff --git a/src/devices/video/sprite.h b/src/devices/video/sprite.h index d17fdc13bb9..9919d83ec00 100644 --- a/src/devices/video/sprite.h +++ b/src/devices/video/sprite.h @@ -6,10 +6,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_VIDEO_SPRITE_H +#define MAME_VIDEO_SPRITE_H -#ifndef __SPRITE_H__ -#define __SPRITE_H__ +#pragma once // ======================> sparse_dirty_rect @@ -81,13 +81,13 @@ class sprite_device : public device_t protected: // construction/destruction - only for subclasses - sprite_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, const char *shortname, const char *file, int dirty_granularity = 3) - : device_t(mconfig, type, name, tag, owner, 0, shortname, file), - m_xorigin(0), - m_yorigin(0), - m_spriteram(nullptr), - m_spriteram_bytes(0), - m_dirty(dirty_granularity) + sprite_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, int dirty_granularity = 3) + : device_t(mconfig, type, tag, owner, 0) + , m_xorigin(0) + , m_yorigin(0) + , m_spriteram(nullptr) + , m_spriteram_bytes(0) + , m_dirty(dirty_granularity) { force_clear(); } @@ -207,4 +207,4 @@ typedef sprite_device sprite16_device_ind32; typedef sprite_device sprite32_device_ind32; -#endif // __SPRITE_H__ +#endif // MAME_VIDEO_SPRITE_H diff --git a/src/devices/video/t6a04.cpp b/src/devices/video/t6a04.cpp index c9b35f05d26..641d447baa6 100644 --- a/src/devices/video/t6a04.cpp +++ b/src/devices/video/t6a04.cpp @@ -15,7 +15,7 @@ #include "video/t6a04.h" // devices -const device_type T6A04 = device_creator; +DEFINE_DEVICE_TYPE(T6A04, t6a04_device, "t6a04", "Toshiba T6A04 LCD Controller") //------------------------------------------------- // device_validity_check - perform validity checks @@ -37,10 +37,12 @@ void t6a04_device::device_validity_check(validity_checker &valid) const //------------------------------------------------- t6a04_device::t6a04_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, T6A04, "T6A04", tag, owner, clock, "t6a04", __FILE__), m_busy_flag(0), m_display_on(0), m_contrast(0), m_xpos(0), m_ypos(0), m_zpos(0), m_direction(0), - m_active_counter(0), m_word_len(0), m_opa1(0), m_opa2(0), m_output_reg(0), - m_height(0), - m_width(0) + device_t(mconfig, T6A04, tag, owner, clock), + m_busy_flag(0), m_display_on(0), m_contrast(0), + m_xpos(0), m_ypos(0), m_zpos(0), + m_direction(0), m_active_counter(0), m_word_len(0), + m_opa1(0), m_opa2(0), m_output_reg(0), + m_height(0), m_width(0) { } diff --git a/src/devices/video/t6a04.h b/src/devices/video/t6a04.h index fb5cb23d92c..bee192f8ac6 100644 --- a/src/devices/video/t6a04.h +++ b/src/devices/video/t6a04.h @@ -6,10 +6,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_VIDEO_T6A04_H +#define MAME_VIDEO_T6A04_H -#ifndef __T6A04_H__ -#define __T6A04_H__ +#pragma once //************************************************************************** // TYPE DEFINITIONS @@ -64,9 +64,9 @@ private: }; // device type definition -extern const device_type T6A04; +DECLARE_DEVICE_TYPE(T6A04, t6a04_device) #define MCFG_T6A04_SIZE(_width, _height) \ t6a04_device::set_size(*device, _width, _height); -#endif +#endif // MAME_VIDEO_T6A04_H diff --git a/src/devices/video/tea1002.cpp b/src/devices/video/tea1002.cpp index 5343de12830..162fa128bfd 100644 --- a/src/devices/video/tea1002.cpp +++ b/src/devices/video/tea1002.cpp @@ -39,7 +39,7 @@ const int tea1002_device::m_amplitute[] = // DEVICE DEFINITIONS //************************************************************************** -const device_type TEA1002 = device_creator; +DEFINE_DEVICE_TYPE(TEA1002, tea1002_device, "tea1002", "Mullard TEA1002 PAL colour encoder") //************************************************************************** @@ -51,7 +51,7 @@ const device_type TEA1002 = device_creator; //------------------------------------------------- tea1002_device::tea1002_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, TEA1002, "TEA1002 PAL colour encoder", tag, owner, clock, "tea1002", __FILE__) + device_t(mconfig, TEA1002, tag, owner, clock) { } diff --git a/src/devices/video/tea1002.h b/src/devices/video/tea1002.h index d0f4b38f876..dcfa46f7bb1 100644 --- a/src/devices/video/tea1002.h +++ b/src/devices/video/tea1002.h @@ -19,10 +19,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_VIDEO_TEA1002_H +#define MAME_VIDEO_TEA1002_H -#ifndef __TEA1002_H__ -#define __TEA1002_H__ +#pragma once @@ -61,5 +61,6 @@ private: // device type definition extern const device_type TEA1002; +DECLARE_DEVICE_TYPE(TEA1002, tea1002_device) -#endif // __TEA1002_H__ +#endif // MAME_VIDEO_TEA1002_H diff --git a/src/devices/video/tlc34076.cpp b/src/devices/video/tlc34076.cpp index ba4283fc683..2b8cb788aca 100644 --- a/src/devices/video/tlc34076.cpp +++ b/src/devices/video/tlc34076.cpp @@ -35,15 +35,15 @@ //************************************************************************** // device type definition -const device_type TLC34076 = device_creator; +DEFINE_DEVICE_TYPE(TLC34076, tlc34076_device, "tlc34076", "TI TLC34076 VIP") //------------------------------------------------- // tlc34076_device - constructor //------------------------------------------------- tlc34076_device::tlc34076_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, TLC34076, "TLC34076 VIP", tag, owner, clock, "tlc34076", __FILE__), - m_dacbits(6) + : device_t(mconfig, TLC34076, tag, owner, clock) + , m_dacbits(6) { } diff --git a/src/devices/video/tlc34076.h b/src/devices/video/tlc34076.h index 6375ecdf4be..6a1b54d2adf 100644 --- a/src/devices/video/tlc34076.h +++ b/src/devices/video/tlc34076.h @@ -9,21 +9,10 @@ ***************************************************************************/ -#pragma once - -#ifndef __TLC34076_H__ -#define __TLC34076_H__ - - -/*************************************************************************** - CONSTANTS -***************************************************************************/ +#ifndef MAME_VIDEO_TLC34076_H +#define MAME_VIDEO_TLC34076_H -enum tlc34076_bits -{ - TLC34076_6_BIT = 6, - TLC34076_8_BIT = 8 -}; +#pragma once /*************************************************************************** @@ -33,6 +22,12 @@ enum tlc34076_bits class tlc34076_device : public device_t { public: + enum tlc34076_bits + { + TLC34076_6_BIT = 6, + TLC34076_8_BIT = 8 + }; + // construction/destruction tlc34076_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); @@ -65,12 +60,11 @@ private: DEVICE CONFIGURATION MACROS ***************************************************************************/ -#define MCFG_TLC34076_ADD(_tag, _bits) \ - MCFG_DEVICE_ADD(_tag, TLC34076, 0) \ - tlc34076_device::static_set_bits(*device, _bits); - +#define MCFG_TLC34076_ADD(tag, bits) \ + MCFG_DEVICE_ADD((tag), TLC34076, 0) \ + tlc34076_device::static_set_bits(*device, (tlc34076_device::bits)); -extern const device_type TLC34076; +DECLARE_DEVICE_TYPE(TLC34076, tlc34076_device) -#endif /* __TLC34076_H__ */ +#endif // MAME_VIDEO_TLC34076_H diff --git a/src/devices/video/tms34061.cpp b/src/devices/video/tms34061.cpp index 3a74d450c52..7947dd59875 100644 --- a/src/devices/video/tms34061.cpp +++ b/src/devices/video/tms34061.cpp @@ -17,8 +17,9 @@ #include "screen.h" +//#define VERBOSE 1 +#include "logmacro.h" -#define VERBOSE (0) //************************************************************************** @@ -29,10 +30,10 @@ // tms34061_device - constructor //------------------------------------------------- -const device_type TMS34061 = device_creator; +DEFINE_DEVICE_TYPE(TMS34061, tms34061_device, "tms34061", "TI TMS34061 VSC") tms34061_device::tms34061_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, TMS34061, "TMS34061 VSC", tag, owner, clock, "tms34061", __FILE__), + : device_t(mconfig, TMS34061, tag, owner, clock), device_video_interface(mconfig, *this), m_rowshift(0), m_vramsize(0), @@ -190,7 +191,7 @@ void tms34061_device::register_w(address_space &space, offs_t offset, uint8_t da } /* log it */ - if (VERBOSE) logerror("%s:tms34061 %s = %04x\n", space.machine().describe_context(), regnames[regnum], m_regs[regnum]); + LOG("%s:tms34061 %s = %04x\n", space.machine().describe_context(), regnames[regnum], m_regs[regnum]); /* update the state of things */ switch (regnum) @@ -268,7 +269,7 @@ uint8_t tms34061_device::register_r(address_space &space, offs_t offset) } /* log it */ - if (VERBOSE) logerror("%s:tms34061 %s read = %04X\n", space.machine().describe_context(), regnames[regnum], result); + LOG("%s:tms34061 %s read = %04X\n", space.machine().describe_context(), regnames[regnum], result); return (offset & 0x02) ? (result >> 8) : result; } @@ -375,7 +376,7 @@ void tms34061_device::xypixel_w(address_space &space, int offset, uint8_t data) /* mask to the VRAM size */ pixeloffs &= m_vrammask; - if (VERBOSE) logerror("%s:tms34061 xy (%04x) = %02x/%02x\n", space.machine().describe_context(), pixeloffs, data, m_latchdata); + LOG("%s:tms34061 xy (%04x) = %02x/%02x\n", space.machine().describe_context(), pixeloffs, data, m_latchdata); /* set the pixel data */ m_vram[pixeloffs] = data; @@ -431,7 +432,7 @@ void tms34061_device::write(address_space &space, int col, int row, int func, ui offs = ((row << m_rowshift) | col) & m_vrammask; if (m_regs[TMS34061_CONTROL2] & 0x0040) offs |= (m_regs[TMS34061_CONTROL2] & 3) << 16; - if (VERBOSE) logerror("%s:tms34061 direct (%04x) = %02x/%02x\n", space.machine().describe_context(), offs, data, m_latchdata); + LOG("%s:tms34061 direct (%04x) = %02x/%02x\n", space.machine().describe_context(), offs, data, m_latchdata); if (m_vram[offs] != data || m_latchram[offs] != m_latchdata) { m_vram[offs] = data; @@ -445,7 +446,7 @@ void tms34061_device::write(address_space &space, int col, int row, int func, ui if (m_regs[TMS34061_CONTROL2] & 0x0040) offs |= (m_regs[TMS34061_CONTROL2] & 3) << 16; offs &= m_vrammask; - if (VERBOSE) logerror("%s:tms34061 shiftreg write (%04x)\n", space.machine().describe_context(), offs); + LOG("%s:tms34061 shiftreg write (%04x)\n", space.machine().describe_context(), offs); memcpy(&m_vram[offs], m_shiftreg, (size_t)1 << m_rowshift); memset(&m_latchram[offs], m_latchdata, (size_t)1 << m_rowshift); @@ -457,7 +458,7 @@ void tms34061_device::write(address_space &space, int col, int row, int func, ui if (m_regs[TMS34061_CONTROL2] & 0x0040) offs |= (m_regs[TMS34061_CONTROL2] & 3) << 16; offs &= m_vrammask; - if (VERBOSE) logerror("%s:tms34061 shiftreg read (%04x)\n", space.machine().describe_context(), offs); + LOG("%s:tms34061 shiftreg read (%04x)\n", space.machine().describe_context(), offs); m_shiftreg = &m_vram[offs]; break; @@ -542,7 +543,7 @@ READ8_MEMBER( tms34061_device::latch_r ) WRITE8_MEMBER( tms34061_device::latch_w ) { - if (VERBOSE) logerror("tms34061_latch = %02X\n", data); + LOG("tms34061_latch = %02X\n", data); m_latchdata = data; } diff --git a/src/devices/video/tms34061.h b/src/devices/video/tms34061.h index c82bebd2db9..ab5aaa652fd 100644 --- a/src/devices/video/tms34061.h +++ b/src/devices/video/tms34061.h @@ -9,9 +9,10 @@ * * ****************************************************************************/ +#ifndef MAME_VIDEO_TMS34061_H +#define MAME_VIDEO_TMS34061_H -#ifndef __TMS34061_H__ -#define __TMS34061_H__ +#pragma once #define MCFG_TMS34061_ROWSHIFT(_shift) \ @@ -24,55 +25,28 @@ devcb = &tms34061_device::set_interrupt_callback(*device, DEVCB_##_devcb); -/* register constants */ -enum -{ - TMS34061_HORENDSYNC = 0, - TMS34061_HORENDBLNK, - TMS34061_HORSTARTBLNK, - TMS34061_HORTOTAL, - TMS34061_VERENDSYNC, - TMS34061_VERENDBLNK, - TMS34061_VERSTARTBLNK, - TMS34061_VERTOTAL, - TMS34061_DISPUPDATE, - TMS34061_DISPSTART, - TMS34061_VERINT, - TMS34061_CONTROL1, - TMS34061_CONTROL2, - TMS34061_STATUS, - TMS34061_XYOFFSET, - TMS34061_XYADDRESS, - TMS34061_DISPADDRESS, - TMS34061_VERCOUNTER, - TMS34061_REGCOUNT -}; - -/* display state structure */ -struct tms34061_display -{ - uint8_t blanked; /* true if blanked */ - uint8_t *vram; /* base of VRAM */ - uint8_t *latchram; /* base of latch RAM */ - uint16_t *regs; /* pointer to array of registers */ - offs_t dispstart; /* display start */ -}; - - - // ======================> tms34061_device -class tms34061_device : public device_t, - public device_video_interface +class tms34061_device : public device_t, public device_video_interface { public: + /* display state structure */ + struct tms34061_display + { + uint8_t blanked; /* true if blanked */ + uint8_t *vram; /* base of VRAM */ + uint8_t *latchram; /* base of latch RAM */ + uint16_t *regs; /* pointer to array of registers */ + offs_t dispstart; /* display start */ + }; + // construction/destruction tms34061_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); static void set_rowshift(device_t &device, uint8_t rowshift) { downcast(device).m_rowshift = rowshift; } static void set_vram_size(device_t &device, uint32_t vramsize) { downcast(device).m_vramsize = vramsize; } - template static devcb_base &set_interrupt_callback(device_t &device, _Object object) { return downcast(device).m_interrupt_cb.set_callback(object); } + template static devcb_base &set_interrupt_callback(device_t &device, Object &&cb) { return downcast(device).m_interrupt_cb.set_callback(std::forward(cb)); } /* reads/writes to the 34061 */ uint8_t read(address_space &space, int col, int row, int func); @@ -85,7 +59,13 @@ public: /* video update handling */ void get_display_state(); - struct tms34061_display m_display; + bool blanked() const { return bool(m_display.blanked); } + uint8_t const &vram(unsigned row) const { return m_display.vram[row << m_rowshift]; } + uint16_t xyoffset() const { return m_display.regs[TMS34061_XYOFFSET]; } + uint16_t xyaddress() const { return m_display.regs[TMS34061_XYADDRESS]; } + + // TODO: encapsulate this properly + tms34061_display m_display; protected: // device-level overrides @@ -93,6 +73,30 @@ protected: virtual void device_reset() override; private: + /* register constants */ + enum + { + TMS34061_HORENDSYNC = 0, + TMS34061_HORENDBLNK, + TMS34061_HORSTARTBLNK, + TMS34061_HORTOTAL, + TMS34061_VERENDSYNC, + TMS34061_VERENDBLNK, + TMS34061_VERSTARTBLNK, + TMS34061_VERTOTAL, + TMS34061_DISPUPDATE, + TMS34061_DISPSTART, + TMS34061_VERINT, + TMS34061_CONTROL1, + TMS34061_CONTROL2, + TMS34061_STATUS, + TMS34061_XYOFFSET, + TMS34061_XYADDRESS, + TMS34061_DISPADDRESS, + TMS34061_VERCOUNTER, + TMS34061_REGCOUNT + }; + uint8_t m_rowshift; /* VRAM address is (row << rowshift) | col */ uint32_t m_vramsize; /* size of video RAM */ devcb_write_line m_interrupt_cb; /* interrupt gen callback */ @@ -107,7 +111,7 @@ private: uint8_t * m_shiftreg; emu_timer * m_timer; - void update_interrupts(void); + void update_interrupts(); TIMER_CALLBACK_MEMBER( interrupt ); void register_w(address_space &space, offs_t offset, uint8_t data); uint8_t register_r(address_space &space, offs_t offset); @@ -117,6 +121,6 @@ private: }; // device type definition -extern const device_type TMS34061; +DECLARE_DEVICE_TYPE(TMS34061, tms34061_device) -#endif +#endif // MAME_VIDEO_TMS34061_H diff --git a/src/devices/video/tms3556.cpp b/src/devices/video/tms3556.cpp index ff902edd80c..ce110948f3e 100644 --- a/src/devices/video/tms3556.cpp +++ b/src/devices/video/tms3556.cpp @@ -18,13 +18,33 @@ #include "screen.h" +//#define VERBOSE 1 +#include "logmacro.h" + //************************************************************************** // MACROS / CONSTANTS //************************************************************************** -#define LOG 0 +#define VDP_POINTER m_control_regs[0] +#define VDP_COL m_control_regs[1] +#define VDP_ROW m_control_regs[2] +#define VDP_STAT m_control_regs[3] +#define VDP_CM1 m_control_regs[4] +#define VDP_CM2 m_control_regs[5] +#define VDP_CM3 m_control_regs[6] +#define VDP_CM4 m_control_regs[7] +#define VDP_BAMT m_address_regs[0] +#define VDP_BAMP m_address_regs[1] +#define VDP_BAPA m_address_regs[2] +#define VDP_BAGC0 m_address_regs[3] +#define VDP_BAGC1 m_address_regs[4] +#define VDP_BAGC2 m_address_regs[5] +#define VDP_BAGC3 m_address_regs[6] +#define VDP_BAMTF m_address_regs[7] + +ALLOW_SAVE_TYPE(tms3556_device::dma_mode_tt); @@ -33,7 +53,7 @@ //************************************************************************** // devices -const device_type TMS3556 = device_creator; +DEFINE_DEVICE_TYPE(TMS3556, tms3556_device, "tms3556", "Texas Instruments TMS3556 VDP") // default address map @@ -85,9 +105,10 @@ inline void tms3556_device::writebyte(offs_t address, uint8_t data) //------------------------------------------------- tms3556_device::tms3556_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, TMS3556, "Texas Instruments VDP TMS3556", tag, owner, clock, "tms3556", __FILE__), + : device_t(mconfig, TMS3556, tag, owner, clock), device_memory_interface(mconfig, *this), m_space_config("videoram", ENDIANNESS_LITTLE, 8, 17, 0, nullptr, *ADDRESS_MAP_NAME(tms3556)), + m_reg(0), m_reg2(0), m_reg_access_phase(0), m_row_col_written(0), m_bamp_written(0), @@ -118,11 +139,13 @@ void tms3556_device::device_start() // register for state saving save_item(NAME(m_control_regs)); save_item(NAME(m_address_regs)); + save_item(NAME(m_reg)); + save_item(NAME(m_reg2)); save_item(NAME(m_reg_access_phase)); save_item(NAME(m_row_col_written)); save_item(NAME(m_bamp_written)); save_item(NAME(m_colrow)); -// save_item(NAME(m_vdp_acmpxy_mode)); // FIXME : mame cannot save enum + save_item(NAME(m_vdp_acmpxy_mode)); save_item(NAME(m_vdp_acmpxy)); save_item(NAME(m_vdp_acmp)); save_item(NAME(m_scanline)); @@ -223,10 +246,10 @@ WRITE8_MEMBER( tms3556_device::vram_w ) READ8_MEMBER( tms3556_device::reg_r ) { - if (LOG) logerror("TMS3556 Reg Read: %06x\n", offset); + LOG("TMS3556 Reg Read: %06x\n", offset); int reply = 0; // FIXME : will send internal status (VBL, HBL...) - m_reg_access_phase=0; + m_reg_access_phase = 0; return reply; } @@ -236,74 +259,69 @@ READ8_MEMBER( tms3556_device::reg_r ) WRITE8_MEMBER( tms3556_device::reg_w ) { - static int reg2=0; // FIXME : this static makes that only one TMS3556 will be present in one system... - static int reg=0; - - if (LOG) logerror("TMS3556 Reg Write: %06x = %02x\n", offset, data); + LOG("TMS3556 Reg Write: %06x = %02x\n", offset, data); switch (m_reg_access_phase) { case 0: - reg=data&0x0F; - reg2=(data&0xF0)>>4; - if (reg!=0) + m_reg=data&0x0F; + m_reg2=(data&0xF0)>>4; + if (m_reg!=0) m_reg_access_phase=1; return; case 1: - if (reg<8) { - m_control_regs[reg]=data; - // leve un flag si le dernier registre ecrit est row ou col - if ((reg==2) || (reg==1)) { - m_colrow=(m_control_regs[2]<<8)|m_control_regs[1]; - m_row_col_written=true; - } - - if (reg2==0) { - m_reg_access_phase=0; - return; - } - else { - m_reg_access_phase=1; - reg=reg2; - reg2=0; - return; - } + if (m_reg<8) { + m_control_regs[m_reg]=data; + // leve un flag si le dernier registre ecrit est row ou col + if ((m_reg==2) || (m_reg==1)) { + m_colrow=(m_control_regs[2]<<8)|m_control_regs[1]; + m_row_col_written=true; + } + + if (m_reg2==0) { + m_reg_access_phase=0; + return; + } else { + m_reg_access_phase=1; + m_reg=m_reg2; + m_reg2=0; + return; + } } else { - m_address_regs[reg-8]=(m_control_regs[2]<<8)|m_control_regs[1]; - // cas speciaux de decalage pour les generateurs - if ((reg>=0xB) && (reg<=0xE)) { - m_address_regs[reg-8]+=2; - m_address_regs[reg-8]&=0xFFFF; - } else { - m_address_regs[reg-8]+=1; - m_address_regs[reg-8]&=0xFFFF; - } - if (reg==9) { - m_row_col_written=false; - m_bamp_written=true; - m_reg_access_phase=0; - return; - } else { - m_row_col_written=0; - m_bamp_written=false; - m_reg_access_phase=2;//??? - return; - } - logerror("VDP16[%d] = x%x",reg,m_address_regs[reg-8]); - if (reg2==0) { - m_reg_access_phase=0; - return; - } - else { - m_reg_access_phase=1; - reg=reg2; - reg2=0; - return; - } + m_address_regs[m_reg-8]=(m_control_regs[2]<<8)|m_control_regs[1]; + // cas speciaux de decalage pour les generateurs + if ((m_reg>=0xB) && (m_reg<=0xE)) { + m_address_regs[m_reg-8]+=2; + m_address_regs[m_reg-8]&=0xFFFF; + } else { + m_address_regs[m_reg-8]+=1; + m_address_regs[m_reg-8]&=0xFFFF; + } + if (m_reg==9) { + m_row_col_written=false; + m_bamp_written=true; + m_reg_access_phase=0; + return; + } else { + m_row_col_written=0; + m_bamp_written=false; + m_reg_access_phase=2;//??? + return; + } + logerror("VDP16[%d] = x%x",m_reg,m_address_regs[m_reg-8]); + if (m_reg2==0) { + m_reg_access_phase=0; + return; + } else { + m_reg_access_phase=1; + m_reg=m_reg2; + m_reg2=0; + return; + } } - case 2: - m_reg_access_phase=0; - return; + case 2: + m_reg_access_phase=0; + return; } } @@ -332,7 +350,7 @@ void tms3556_device::draw_line_empty(uint16_t *ln) { int i; - for (i = 0; i < TMS3556_TOTAL_WIDTH; i++) + for (i = 0; i < TOTAL_WIDTH; i++) #if TMS3556_DOUBLE_WIDTH *ln++ = m_bg_color; #endif @@ -359,7 +377,7 @@ void tms3556_device::draw_line_text_common(uint16_t *ln) for (i = 0; i < 4; i++) patterntbl_base[i] = m_address_regs[i + 3]; - for (xx = 0; xx < TMS3556_LEFT_BORDER; xx++) + for (xx = 0; xx < LEFT_BORDER; xx++) #if TMS3556_DOUBLE_WIDTH *ln++ = m_bg_color; #endif @@ -443,7 +461,7 @@ void tms3556_device::draw_line_text_common(uint16_t *ln) name_offset += 2; } - for (xx = 0; xx < TMS3556_RIGHT_BORDER; xx++) + for (xx = 0; xx < RIGHT_BORDER; xx++) #if TMS3556_DOUBLE_WIDTH *ln++ = m_bg_color; #endif @@ -467,7 +485,7 @@ void tms3556_device::draw_line_bitmap_common(uint16_t *ln) nametbl_base = m_address_regs[2]; - for (xx = 0; xx < TMS3556_LEFT_BORDER; xx++) + for (xx = 0; xx < LEFT_BORDER; xx++) #if TMS3556_DOUBLE_WIDTH *ln++ = m_bg_color; #endif @@ -492,7 +510,7 @@ void tms3556_device::draw_line_bitmap_common(uint16_t *ln) m_name_offset += 3; } - for (xx = 0; xx < TMS3556_RIGHT_BORDER; xx++) + for (xx = 0; xx < RIGHT_BORDER; xx++) #if TMS3556_DOUBLE_WIDTH *ln++ = m_bg_color; #endif @@ -575,7 +593,7 @@ void tms3556_device::draw_line(bitmap_ind16 &bmp, int line) double_lines = 1; } - if ((line < TMS3556_TOP_BORDER) || (line >= (TMS3556_TOP_BORDER + 250))) + if ((line < TOP_BORDER) || (line >= (TOP_BORDER + 250))) { /* draw top and bottom borders */ draw_line_empty(ln); @@ -586,16 +604,16 @@ void tms3556_device::draw_line(bitmap_ind16 &bmp, int line) /* draw useful area */ switch (m_control_regs[6] >> 6) { - case TMS3556_MODE_OFF: + case MODE_OFF: draw_line_empty(ln); break; - case TMS3556_MODE_TEXT: + case MODE_TEXT: draw_line_text(ln); break; - case TMS3556_MODE_BITMAP: + case MODE_BITMAP: draw_line_bitmap(ln); break; - case TMS3556_MODE_MIXED: + case MODE_MIXED: draw_line_mixed(ln); break; } @@ -604,8 +622,8 @@ void tms3556_device::draw_line(bitmap_ind16 &bmp, int line) if (double_lines) { // TODO: this overlaps in exeltel - use memmove for now - //memcpy(ln2, ln, TMS3556_TOTAL_WIDTH * (TMS3556_DOUBLE_WIDTH ? 2 : 1)); - memmove(ln2, ln, TMS3556_TOTAL_WIDTH * (TMS3556_DOUBLE_WIDTH ? 2 : 1)); + //memcpy(ln2, ln, TOTAL_WIDTH * (TMS3556_DOUBLE_WIDTH ? 2 : 1)); + memmove(ln2, ln, TOTAL_WIDTH * (TMS3556_DOUBLE_WIDTH ? 2 : 1)); } } @@ -651,7 +669,7 @@ void tms3556_device::interrupt(running_machine &machine) interrupt_start_vblank(); /* render the current line */ - if ((m_scanline >= 0) && (m_scanline < TMS3556_TOTAL_HEIGHT)) + if ((m_scanline >= 0) && (m_scanline < TOTAL_HEIGHT)) { //if (!video_skip_this_frame()) draw_line(m_bitmap, m_scanline); diff --git a/src/devices/video/tms3556.h b/src/devices/video/tms3556.h index 7568f6443b9..8788225ec62 100644 --- a/src/devices/video/tms3556.h +++ b/src/devices/video/tms3556.h @@ -6,48 +6,19 @@ ***************************************************************************/ +#ifndef MAME_VIDEO_TMS3556_H +#define MAME_VIDEO_TMS3556_H #pragma once -#ifndef __TMS3556_H__ -#define __TMS3556_H__ ///************************************************************************* // MACROS / CONSTANTS ///************************************************************************* -#define TMS3556_TOP_BORDER 1 -#define TMS3556_BOTTOM_BORDER 1 -#define TMS3556_LEFT_BORDER 8 -#define TMS3556_RIGHT_BORDER 8 -#define TMS3556_TOTAL_WIDTH (320 + TMS3556_LEFT_BORDER + TMS3556_RIGHT_BORDER) -#define TMS3556_TOTAL_HEIGHT (250 + TMS3556_TOP_BORDER + TMS3556_BOTTOM_BORDER) - /* if DOUBLE_WIDTH set, the horizontal resolution is doubled */ #define TMS3556_DOUBLE_WIDTH 0 -#define TMS3556_MODE_OFF 0 -#define TMS3556_MODE_TEXT 1 -#define TMS3556_MODE_BITMAP 2 -#define TMS3556_MODE_MIXED 3 - -#define VDP_POINTER m_control_regs[0] -#define VDP_COL m_control_regs[1] -#define VDP_ROW m_control_regs[2] -#define VDP_STAT m_control_regs[3] -#define VDP_CM1 m_control_regs[4] -#define VDP_CM2 m_control_regs[5] -#define VDP_CM3 m_control_regs[6] -#define VDP_CM4 m_control_regs[7] -#define VDP_BAMT m_address_regs[0] -#define VDP_BAMP m_address_regs[1] -#define VDP_BAPA m_address_regs[2] -#define VDP_BAGC0 m_address_regs[3] -#define VDP_BAGC1 m_address_regs[4] -#define VDP_BAGC2 m_address_regs[5] -#define VDP_BAGC3 m_address_regs[6] -#define VDP_BAMTF m_address_regs[7] - ///************************************************************************* // INTERFACE CONFIGURATION MACROS ///************************************************************************* @@ -59,8 +30,6 @@ // TYPE DEFINITIONS ///************************************************************************* -typedef enum { dma_read, dma_write } dma_mode_tt; - // ======================> tms3556_device @@ -68,6 +37,13 @@ class tms3556_device : public device_t, public device_memory_interface { public: + static constexpr unsigned TOP_BORDER = 1; + static constexpr unsigned BOTTOM_BORDER = 1; + static constexpr unsigned LEFT_BORDER = 8; + static constexpr unsigned RIGHT_BORDER = 8; + static constexpr unsigned TOTAL_WIDTH = 320 + LEFT_BORDER + RIGHT_BORDER; + static constexpr unsigned TOTAL_HEIGHT = 250 + TOP_BORDER + BOTTOM_BORDER; + // construction/destruction tms3556_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); @@ -86,7 +62,7 @@ protected: virtual void device_start() override; // device_config_memory_interface overrides - virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_0) const override; + virtual const address_space_config *memory_space_config(address_spacenum spacenum) const override; // address space configurations const address_space_config m_space_config; @@ -104,11 +80,19 @@ protected: void interrupt_start_vblank(void); private: + enum dma_mode_tt { dma_read, dma_write }; + + static constexpr uint8_t MODE_OFF = 0; + static constexpr uint8_t MODE_TEXT = 1; + static constexpr uint8_t MODE_BITMAP = 2; + static constexpr uint8_t MODE_MIXED = 3; + // registers uint8_t m_control_regs[8]; uint16_t m_address_regs[8]; // register interface + int m_reg, m_reg2; int m_reg_access_phase; int m_row_col_written; @@ -134,6 +118,6 @@ private: // device type definition extern const device_type TMS3556; +DECLARE_DEVICE_TYPE(TMS3556, tms3556_device) - -#endif +#endif // MAME_VIDEO_TMS3556_H diff --git a/src/devices/video/tms9927.cpp b/src/devices/video/tms9927.cpp index c224b0965f4..2908fb01d29 100644 --- a/src/devices/video/tms9927.cpp +++ b/src/devices/video/tms9927.cpp @@ -12,8 +12,8 @@ #include "screen.h" -static const uint8_t chars_per_row_value[8] = { 20, 32, 40, 64, 72, 80, 96, 132 }; -static const uint8_t skew_bits_value[4] = { 0, 1, 2, 2 }; +static constexpr uint8_t chars_per_row_value[8] = { 20, 32, 40, 64, 72, 80, 96, 132 }; +static constexpr uint8_t skew_bits_value[4] = { 0, 1, 2, 2 }; #define HCOUNT (m_reg[0] + 1) @@ -31,19 +31,18 @@ static const uint8_t skew_bits_value[4] = { 0, 1, 2, 2 }; #define CURSOR_ROW_ADDRESS (m_reg[8] & 0x3f) -const device_type TMS9927 = device_creator; -const device_type CRT5027 = device_creator; -const device_type CRT5037 = device_creator; -const device_type CRT5057 = device_creator; +DEFINE_DEVICE_TYPE(TMS9927, tms9927_device, "tms9927", "TMS9927 VTC") +DEFINE_DEVICE_TYPE(CRT5027, crt5027_device, "crt5027", "CRT5027") +DEFINE_DEVICE_TYPE(CRT5037, crt5037_device, "crt5037", "CRT5037") +DEFINE_DEVICE_TYPE(CRT5057, crt5057_device, "crt5057", "CRT5057") tms9927_device::tms9927_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : tms9927_device(mconfig, TMS9927, "TMS9927 VTC", tag, owner, clock, "tms9927", __FILE__) + : tms9927_device(mconfig, TMS9927, tag, owner, clock) { - memset(m_reg, 0x00, sizeof(m_reg)); } -tms9927_device::tms9927_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source) +tms9927_device::tms9927_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) , device_video_interface(mconfig, *this) , m_write_vsyn(*this) , m_hpixels_per_column(0) @@ -54,21 +53,21 @@ tms9927_device::tms9927_device(const machine_config &mconfig, device_type type, , m_selfload(*this, finder_base::DUMMY_TAG) , m_reset(0) { - memset(m_reg, 0x00, sizeof(m_reg)); + std::fill(std::begin(m_reg), std::end(m_reg), 0x00); } crt5027_device::crt5027_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : tms9927_device(mconfig, CRT5027, "CRT5027", tag, owner, clock, "crt5027", __FILE__) + : tms9927_device(mconfig, CRT5027, tag, owner, clock) { } crt5037_device::crt5037_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : tms9927_device(mconfig, CRT5037, "CRT5037", tag, owner, clock, "crt5037", __FILE__) + : tms9927_device(mconfig, CRT5037, tag, owner, clock) { } crt5057_device::crt5057_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : tms9927_device(mconfig, CRT5057, "CRT5057", tag, owner, clock, "crt5057", __FILE__) + : tms9927_device(mconfig, CRT5057, tag, owner, clock) { } diff --git a/src/devices/video/tms9927.h b/src/devices/video/tms9927.h index cd4057d67f9..cc7caaafe6b 100644 --- a/src/devices/video/tms9927.h +++ b/src/devices/video/tms9927.h @@ -6,8 +6,8 @@ **********************************************************************/ -#ifndef __TMS9927__ -#define __TMS9927__ +#ifndef MAME_VIDEO_TMS9927_H +#define MAME_VIDEO_TMS9927_H #define MCFG_TMS9927_VSYN_CALLBACK(_write) \ @@ -22,24 +22,21 @@ #define MCFG_TMS9927_OVERSCAN(_left, _right, _top, _bottom) \ tms9927_device::set_overscan(*device, _left, _right, _top, _bottom); -class tms9927_device : public device_t, - public device_video_interface +class tms9927_device : public device_t, public device_video_interface { public: tms9927_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - tms9927_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - ~tms9927_device() {} - template static devcb_base &set_vsyn_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_vsyn.set_callback(object); } + template static devcb_base &set_vsyn_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_vsyn.set_callback(std::forward(cb)); } static void set_char_width(device_t &device, int pixels) { downcast(device).m_hpixels_per_column = pixels; } static void set_region_tag(device_t &device, const char *tag) { downcast(device).m_selfload.set_tag(tag); } static void set_overscan(device_t &device, int left, int right, int top, int bottom) { - tms9927_device &dev = downcast(device); - dev.m_overscan_left = left; - dev.m_overscan_right = right; - dev.m_overscan_top = top; - dev.m_overscan_bottom = bottom; + tms9927_device &dev = downcast(device); + dev.m_overscan_left = left; + dev.m_overscan_right = right; + dev.m_overscan_top = top; + dev.m_overscan_bottom = bottom; } DECLARE_WRITE8_MEMBER(write); @@ -50,6 +47,8 @@ public: int cursor_bounds(rectangle &bounds); protected: + tms9927_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_stop() override; @@ -87,13 +86,11 @@ private: uint16_t m_total_hpix, m_total_vpix; uint16_t m_visible_hpix, m_visible_vpix; - int m_vsyn; emu_timer *m_vsync_timer; }; -extern const device_type TMS9927; class crt5027_device : public tms9927_device { @@ -101,7 +98,6 @@ public: crt5027_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; -extern const device_type CRT5027; class crt5037_device : public tms9927_device { @@ -109,7 +105,6 @@ public: crt5037_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; -extern const device_type CRT5037; class crt5057_device : public tms9927_device { @@ -117,7 +112,10 @@ public: crt5057_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; -extern const device_type CRT5057; +DECLARE_DEVICE_TYPE(TMS9927, tms9927_device) +DECLARE_DEVICE_TYPE(CRT5027, crt5027_device) +DECLARE_DEVICE_TYPE(CRT5037, crt5037_device) +DECLARE_DEVICE_TYPE(CRT5057, crt5057_device) -#endif +#endif // MAME_VIDEO_TMS9927_H diff --git a/src/devices/video/tms9928a.cpp b/src/devices/video/tms9928a.cpp index 1c787dbf126..a225d0db181 100644 --- a/src/devices/video/tms9928a.cpp +++ b/src/devices/video/tms9928a.cpp @@ -27,14 +27,14 @@ #include "tms9928a.h" -const device_type TMS9928A = device_creator; -const device_type TMS9918 = device_creator; -const device_type TMS9918A = device_creator; -const device_type TMS9118 = device_creator; -const device_type TMS9128 = device_creator; -const device_type TMS9929 = device_creator; -const device_type TMS9929A = device_creator; -const device_type TMS9129 = device_creator; +DEFINE_DEVICE_TYPE(TMS9928A, tms9928a_device, "tms9928a", "TMS9928A VDP") +DEFINE_DEVICE_TYPE(TMS9918, tms9918_device, "tms9918", "TMS9918 VDP") +DEFINE_DEVICE_TYPE(TMS9918A, tms9918a_device, "tms9918a", "TMS9918A VDP") +DEFINE_DEVICE_TYPE(TMS9118, tms9118_device, "tms9118", "TMS9118 VDP") +DEFINE_DEVICE_TYPE(TMS9128, tms9128_device, "tms9128", "TMS9128 VDP") +DEFINE_DEVICE_TYPE(TMS9929, tms9929_device, "tms9929", "TMS9929 VDP") +DEFINE_DEVICE_TYPE(TMS9929A, tms9929a_device, "tms9929a", "TMS9929A VDP") +DEFINE_DEVICE_TYPE(TMS9129, tms9129_device, "tms9129", "TMS9129 VDP") // ======= Debugging ========= @@ -54,63 +54,61 @@ static ADDRESS_MAP_START(memmap, AS_DATA, 8, tms9928a_device) AM_RANGE(0x0000, 0x3fff) AM_RAM ADDRESS_MAP_END -tms9928a_device::tms9928a_device( const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, bool is_50hz, bool is_reva, bool is_99, const char *shortname, const char *source) - : device_t( mconfig, type, name, tag, owner, clock, shortname, source), - device_memory_interface(mconfig, *this), - device_video_interface(mconfig, *this), - m_out_int_line_cb(*this), - m_out_gromclk_cb(*this), - m_space_config("vram",ENDIANNESS_BIG, 8, 14, 0, nullptr, *ADDRESS_MAP_NAME(memmap)) +tms9928a_device::tms9928a_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, bool is_50hz, bool is_reva, bool is_99) + : device_t(mconfig, type, tag, owner, clock) + , device_memory_interface(mconfig, *this) + , device_video_interface(mconfig, *this) + , m_vram_size(0) + , m_out_int_line_cb(*this) + , m_out_gromclk_cb(*this) + , m_50hz(is_50hz) + , m_reva(is_reva) + , m_99(is_99) + , m_space_config("vram", ENDIANNESS_BIG, 8, 14, 0, nullptr, *ADDRESS_MAP_NAME(memmap)) { - m_50hz = is_50hz; - m_reva = is_reva; - m_99 = is_99; // static_set_addrmap(*this, AS_DATA, ADDRESS_MAP_NAME(memmap)); } tms9928a_device::tms9928a_device( const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock ) - : device_t( mconfig, TMS9928A, "TMS9928A VDP", tag, owner, clock, "tms9928a", __FILE__), - device_memory_interface(mconfig, *this), - device_video_interface(mconfig, *this), - m_vram_size(0), - m_out_int_line_cb(*this), - m_out_gromclk_cb(*this), - m_space_config("vram",ENDIANNESS_BIG, 8, 14, 0, nullptr, *ADDRESS_MAP_NAME(memmap)) + : tms9928a_device(mconfig, TMS9928A, tag, owner, clock, false, true, true) { - m_50hz = false; - m_reva = true; - m_99 = true; -// static_set_addrmap(*this, AS_DATA, ADDRESS_MAP_NAME(memmap)); } tms9129_device::tms9129_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : tms9928a_device( mconfig, TMS9129, "TMS9129", tag, owner, clock, true, true, false, "tms9129", __FILE__) -{ } + : tms9928a_device(mconfig, TMS9129, tag, owner, clock, true, true, false) +{ +} tms9918_device::tms9918_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : tms9928a_device( mconfig, TMS9918, "TMS9918", tag, owner, clock, false, false, true, "tms9918", __FILE__) -{ } + : tms9928a_device(mconfig, TMS9918, tag, owner, clock, false, false, true) +{ +} tms9918a_device::tms9918a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : tms9928a_device( mconfig, TMS9918A, "TMS9918A", tag, owner, clock, false, true, true, "tms9918a", __FILE__) -{ } + : tms9928a_device(mconfig, TMS9918A, tag, owner, clock, false, true, true) +{ +} tms9118_device::tms9118_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : tms9928a_device( mconfig, TMS9118, "TMS9118 VDP", tag, owner, clock, false, true, false, "tms9118", __FILE__) -{ } + : tms9928a_device(mconfig, TMS9118, tag, owner, clock, false, true, false) +{ +} tms9128_device::tms9128_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : tms9928a_device( mconfig, TMS9128, "TMS9128 VDP", tag, owner, clock, false, true, false, "tms9128", __FILE__) -{ } + : tms9928a_device(mconfig, TMS9128, tag, owner, clock, false, true, false) +{ +} tms9929_device::tms9929_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : tms9928a_device( mconfig, TMS9929, "TMS9929", tag, owner, clock, true, false, true, "tms9929", __FILE__) -{ } + : tms9928a_device(mconfig, TMS9929, tag, owner, clock, true, false, true) +{ +} tms9929a_device::tms9929a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : tms9928a_device( mconfig, TMS9929A, "TMS9929A", tag, owner, clock, true, true, true, "tms9929a", __FILE__) -{ } + : tms9928a_device(mconfig, TMS9929A, tag, owner, clock, true, true, true) +{ +} READ8_MEMBER( tms9928a_device::read ) { @@ -342,7 +340,7 @@ void tms9928a_device::device_timer(emu_timer &timer, device_timer_id id, int par if ( y < 0 || y >= 192 || ! (m_Regs[1] & 0x40) ) { /* Draw backdrop colour */ - for ( int i = 0; i < TMS9928A_TOTAL_HORZ; i++ ) + for ( int i = 0; i < TOTAL_HORZ; i++ ) p[i] = m_palette[BackColour]; /* vblank is set at the last cycle of the first inactive line */ @@ -357,7 +355,7 @@ void tms9928a_device::device_timer(emu_timer &timer, device_timer_id id, int par /* Draw regular line */ /* Left border */ - for ( int i = 0; i < TMS9928A_HORZ_DISPLAY_START; i++ ) + for ( int i = 0; i < HORZ_DISPLAY_START; i++ ) p[i] = m_palette[BackColour]; /* Active display */ @@ -369,7 +367,7 @@ void tms9928a_device::device_timer(emu_timer &timer, device_timer_id id, int par { uint16_t addr = m_nametbl + ( ( y & 0xF8 ) << 2 ); - for ( int x = TMS9928A_HORZ_DISPLAY_START; x < TMS9928A_HORZ_DISPLAY_START + 256; x+= 8, addr++ ) + for ( int x = HORZ_DISPLAY_START; x < HORZ_DISPLAY_START + 256; x+= 8, addr++ ) { uint8_t charcode = m_vram_space->read_byte( addr ); uint8_t pattern = m_vram_space->read_byte( m_pattern + ( charcode << 3 ) + ( y & 7 ) ); @@ -391,10 +389,10 @@ void tms9928a_device::device_timer(emu_timer &timer, device_timer_id id, int par rgb_t bg = m_palette[BackColour]; /* Extra 6 pixels left border */ - for ( int x = TMS9928A_HORZ_DISPLAY_START; x < TMS9928A_HORZ_DISPLAY_START + 6; x++ ) + for ( int x = HORZ_DISPLAY_START; x < HORZ_DISPLAY_START + 6; x++ ) p[x] = bg; - for ( int x = TMS9928A_HORZ_DISPLAY_START + 6; x < TMS9928A_HORZ_DISPLAY_START + 246; x+= 6, addr++ ) + for ( int x = HORZ_DISPLAY_START + 6; x < HORZ_DISPLAY_START + 246; x+= 6, addr++ ) { uint16_t charcode = m_vram_space->read_byte( addr ); uint8_t pattern = m_vram_space->read_byte( m_pattern + ( charcode << 3 ) + ( y & 7 ) ); @@ -404,7 +402,7 @@ void tms9928a_device::device_timer(emu_timer &timer, device_timer_id id, int par } /* Extra 10 pixels right border */ - for ( int x = TMS9928A_HORZ_DISPLAY_START + 246; x < TMS9928A_HORZ_DISPLAY_START + 256; x++ ) + for ( int x = HORZ_DISPLAY_START + 246; x < HORZ_DISPLAY_START + 256; x++ ) p[x] = bg; } break; @@ -414,7 +412,7 @@ void tms9928a_device::device_timer(emu_timer &timer, device_timer_id id, int par { uint16_t addr = m_nametbl + ( ( y >> 3 ) * 32 ); - for ( int x = TMS9928A_HORZ_DISPLAY_START; x < TMS9928A_HORZ_DISPLAY_START + 256; x+= 8, addr++ ) + for ( int x = HORZ_DISPLAY_START; x < HORZ_DISPLAY_START + 256; x+= 8, addr++ ) { uint16_t charcode = m_vram_space->read_byte( addr ) + ( ( y >> 6 ) << 8 ); uint8_t pattern = m_vram_space->read_byte( m_pattern + ( ( charcode & m_patternmask ) << 3 ) + ( y & 7 ) ); @@ -436,10 +434,10 @@ void tms9928a_device::device_timer(emu_timer &timer, device_timer_id id, int par rgb_t bg = m_palette[BackColour]; /* Extra 6 pixels left border */ - for ( int x = TMS9928A_HORZ_DISPLAY_START; x < TMS9928A_HORZ_DISPLAY_START + 6; x++ ) + for ( int x = HORZ_DISPLAY_START; x < HORZ_DISPLAY_START + 6; x++ ) p[x] = bg; - for ( int x = TMS9928A_HORZ_DISPLAY_START + 6; x < TMS9928A_HORZ_DISPLAY_START + 246; x+= 6, addr++ ) + for ( int x = HORZ_DISPLAY_START + 6; x < HORZ_DISPLAY_START + 246; x+= 6, addr++ ) { uint16_t charcode = ( m_vram_space->read_byte( addr ) + ( ( y >> 6 ) << 8 ) ) & m_patternmask; uint8_t pattern = m_vram_space->read_byte( m_pattern + ( charcode << 3 ) + ( y & 7 ) ); @@ -449,7 +447,7 @@ void tms9928a_device::device_timer(emu_timer &timer, device_timer_id id, int par } /* Extra 10 pixels right border */ - for ( int x = TMS9928A_HORZ_DISPLAY_START + 246; x < TMS9928A_HORZ_DISPLAY_START + 256; x++ ) + for ( int x = HORZ_DISPLAY_START + 246; x < HORZ_DISPLAY_START + 256; x++ ) p[x] = bg; } break; @@ -459,7 +457,7 @@ void tms9928a_device::device_timer(emu_timer &timer, device_timer_id id, int par { uint16_t addr = m_nametbl + ( ( y >> 3 ) * 32 ); - for ( int x = TMS9928A_HORZ_DISPLAY_START; x < TMS9928A_HORZ_DISPLAY_START + 256; x+= 8, addr++ ) + for ( int x = HORZ_DISPLAY_START; x < HORZ_DISPLAY_START + 256; x+= 8, addr++ ) { uint8_t charcode = m_vram_space->read_byte( addr ); uint8_t colour = m_vram_space->read_byte( m_pattern + ( charcode << 3 ) + ( ( y >> 2 ) & 7 ) ); @@ -479,17 +477,17 @@ void tms9928a_device::device_timer(emu_timer &timer, device_timer_id id, int par rgb_t bg = m_palette[BackColour]; /* Extra 6 pixels left border */ - for ( int x = TMS9928A_HORZ_DISPLAY_START; x < TMS9928A_HORZ_DISPLAY_START + 6; x++ ) + for ( int x = HORZ_DISPLAY_START; x < HORZ_DISPLAY_START + 6; x++ ) p[x] = bg; - for ( int x = TMS9928A_HORZ_DISPLAY_START + 6; x < TMS9928A_HORZ_DISPLAY_START + 246; x+= 6 ) + for ( int x = HORZ_DISPLAY_START + 6; x < HORZ_DISPLAY_START + 246; x+= 6 ) { p[x+0] = p[x+1] = p[x+2] = p[x+3] = fg; p[x+4] = p[x+5] = bg; } /* Extra 10 pixels right border */ - for ( int x = TMS9928A_HORZ_DISPLAY_START + 246; x < TMS9928A_HORZ_DISPLAY_START + 256; x++ ) + for ( int x = HORZ_DISPLAY_START + 246; x < HORZ_DISPLAY_START + 256; x++ ) p[x] = bg; } break; @@ -499,7 +497,7 @@ void tms9928a_device::device_timer(emu_timer &timer, device_timer_id id, int par { uint16_t addr = m_nametbl + ( ( y >> 3 ) * 32 ); - for ( int x = TMS9928A_HORZ_DISPLAY_START; x < TMS9928A_HORZ_DISPLAY_START + 256; x+= 8, addr++ ) + for ( int x = HORZ_DISPLAY_START; x < HORZ_DISPLAY_START + 256; x+= 8, addr++ ) { uint8_t charcode = m_vram_space->read_byte( addr ); uint8_t colour = m_vram_space->read_byte( m_pattern + ( ( ( charcode + ( ( y >> 2 ) & 7 ) + ( ( y >> 6 ) << 8 ) ) & m_patternmask ) << 3 ) ); @@ -597,7 +595,7 @@ void tms9928a_device::device_timer(emu_timer &timer, device_timer_id id, int par if ( ! ( spr_drawn[ colission_index ] & 0x02 ) ) { spr_drawn[ colission_index ] |= 0x02; - p[ TMS9928A_HORZ_DISPLAY_START + colission_index - 32 ] = m_palette[sprcol]; + p[ HORZ_DISPLAY_START + colission_index - 32 ] = m_palette[sprcol]; } } } @@ -621,12 +619,12 @@ void tms9928a_device::device_timer(emu_timer &timer, device_timer_id id, int par } /* Right border */ - for ( int i = TMS9928A_HORZ_DISPLAY_START + 256; i < TMS9928A_TOTAL_HORZ; i++ ) + for ( int i = HORZ_DISPLAY_START + 256; i < TOTAL_HORZ; i++ ) p[i] = m_palette[BackColour]; } /* Schedule next callback */ - m_line_timer->adjust( m_screen->time_until_pos( ( raw_vpos + 1 ) % m_screen->height() , TMS9928A_HORZ_DISPLAY_START ) ); + m_line_timer->adjust( m_screen->time_until_pos( ( raw_vpos + 1 ) % m_screen->height() , HORZ_DISPLAY_START ) ); } @@ -666,7 +664,7 @@ void tms9928a_device::set_palette() E Gray 0.80 0.47 0.47 0.80 0.80 0.80 204 204 204 F White 1.00 0.47 0.47 1.00 1.00 1.00 255 255 255 */ - static const rgb_t tms9928a_palette[TMS9928A_PALETTE_SIZE] = + static const rgb_t tms9928a_palette[PALETTE_SIZE] = { rgb_t::black(), rgb_t::black(), @@ -687,7 +685,7 @@ void tms9928a_device::set_palette() }; /* copy default palette into working palette */ - for (int i = 0; i < TMS9928A_PALETTE_SIZE; i++) + for (int i = 0; i < PALETTE_SIZE; i++) { m_palette[i] = tms9928a_palette[i]; } @@ -695,8 +693,8 @@ void tms9928a_device::set_palette() void tms9928a_device::device_start() { - m_top_border = m_50hz ? TMS9928A_VERT_DISPLAY_START_PAL : TMS9928A_VERT_DISPLAY_START_NTSC; - m_vertical_size = m_50hz ? TMS9928A_TOTAL_VERT_PAL : TMS9928A_TOTAL_VERT_NTSC; + m_top_border = m_50hz ? VERT_DISPLAY_START_PAL : VERT_DISPLAY_START_NTSC; + m_vertical_size = m_50hz ? TOTAL_VERT_PAL : TOTAL_VERT_NTSC; m_out_int_line_cb.resolve(); m_out_gromclk_cb.resolve(); @@ -705,7 +703,7 @@ void tms9928a_device::device_start() m_vram_space = &space(AS_DATA); /* back bitmap */ - m_tmpbmp.allocate(TMS9928A_TOTAL_HORZ, TMS9928A_TOTAL_VERT_PAL); + m_tmpbmp.allocate(TOTAL_HORZ, TOTAL_VERT_PAL); m_line_timer = timer_alloc(TIMER_LINE); m_gromclk_timer = timer_alloc(GROMCLK); @@ -759,7 +757,7 @@ void tms9928a_device::device_reset() m_latch = 0; m_mode = 0; - m_line_timer->adjust( m_screen->time_until_pos( 0, TMS9928A_HORZ_DISPLAY_START ) ); + m_line_timer->adjust( m_screen->time_until_pos( 0, HORZ_DISPLAY_START ) ); // TODO: Check clock freq settings in all drivers if (!m_out_gromclk_cb.isnull() && m_99) m_gromclk_timer->adjust(attotime::zero, 0, attotime::from_hz(clock()/12)); diff --git a/src/devices/video/tms9928a.h b/src/devices/video/tms9928a.h index 03389ac14ad..7db5991b5a5 100644 --- a/src/devices/video/tms9928a.h +++ b/src/devices/video/tms9928a.h @@ -23,26 +23,14 @@ */ -#ifndef MAME_DEVICES_VIDEO_TMS9928A_H -#define MAME_DEVICES_VIDEO_TMS9928A_H +#ifndef MAME_VIDEO_TMS9928A_H +#define MAME_VIDEO_TMS9928A_H #pragma once #include "screen.h" -#define TMS9928A_PALETTE_SIZE 16 - - -/* Some defines used in defining the screens */ -#define TMS9928A_TOTAL_HORZ 342 -#define TMS9928A_TOTAL_VERT_NTSC 262 -#define TMS9928A_TOTAL_VERT_PAL 313 - -#define TMS9928A_HORZ_DISPLAY_START (2 + 14 + 8 + 13) -#define TMS9928A_VERT_DISPLAY_START_PAL (13 + 51) -#define TMS9928A_VERT_DISPLAY_START_NTSC (13 + 27) - // MCFG_DEVICE_ADD(_tag, _variant, XTAL_10_738635MHz / 2 ) #define MCFG_TMS9928A_VRAM_SIZE(_size) \ @@ -60,25 +48,25 @@ #define MCFG_TMS9928A_SCREEN_ADD_NTSC(_screen_tag) \ MCFG_VIDEO_SET_SCREEN(_screen_tag) \ MCFG_SCREEN_ADD( _screen_tag, RASTER ) \ - MCFG_SCREEN_RAW_PARAMS( XTAL_10_738635MHz / 2, TMS9928A_TOTAL_HORZ, TMS9928A_HORZ_DISPLAY_START-12, TMS9928A_HORZ_DISPLAY_START + 256 + 12, \ - TMS9928A_TOTAL_VERT_NTSC, TMS9928A_VERT_DISPLAY_START_NTSC - 12, TMS9928A_VERT_DISPLAY_START_NTSC + 192 + 12 ) + MCFG_SCREEN_RAW_PARAMS( XTAL_10_738635MHz / 2, tms9928a_device::TOTAL_HORZ, tms9928a_device::HORZ_DISPLAY_START-12, tms9928a_device::HORZ_DISPLAY_START + 256 + 12, \ + tms9928a_device::TOTAL_VERT_NTSC, tms9928a_device::VERT_DISPLAY_START_NTSC - 12, tms9928a_device::VERT_DISPLAY_START_NTSC + 192 + 12 ) #define MCFG_TMS9928A_SCREEN_ADD_PAL(_screen_tag) \ MCFG_VIDEO_SET_SCREEN(_screen_tag) \ MCFG_SCREEN_ADD(_screen_tag, RASTER ) \ - MCFG_SCREEN_RAW_PARAMS( XTAL_10_738635MHz / 2, TMS9928A_TOTAL_HORZ, TMS9928A_HORZ_DISPLAY_START-12, TMS9928A_HORZ_DISPLAY_START + 256 + 12, \ - TMS9928A_TOTAL_VERT_PAL, TMS9928A_VERT_DISPLAY_START_PAL - 12, TMS9928A_VERT_DISPLAY_START_PAL + 192 + 12 ) + MCFG_SCREEN_RAW_PARAMS( XTAL_10_738635MHz / 2, tms9928a_device::TOTAL_HORZ, tms9928a_device::HORZ_DISPLAY_START-12, tms9928a_device::HORZ_DISPLAY_START + 256 + 12, \ + tms9928a_device::TOTAL_VERT_PAL, tms9928a_device::VERT_DISPLAY_START_PAL - 12, tms9928a_device::VERT_DISPLAY_START_PAL + 192 + 12 ) -extern const device_type TMS9918; -extern const device_type TMS9918A; -extern const device_type TMS9118; -extern const device_type TMS9928A; -extern const device_type TMS9128; -extern const device_type TMS9929; -extern const device_type TMS9929A; -extern const device_type TMS9129; +DECLARE_DEVICE_TYPE(TMS9918, tms9918_device) +DECLARE_DEVICE_TYPE(TMS9918A, tms9918a_device) +DECLARE_DEVICE_TYPE(TMS9118, tms9118_device) +DECLARE_DEVICE_TYPE(TMS9928A, tms9928a_device) +DECLARE_DEVICE_TYPE(TMS9128, tms9128_device) +DECLARE_DEVICE_TYPE(TMS9929, tms9929_device) +DECLARE_DEVICE_TYPE(TMS9929A, tms9929a_device) +DECLARE_DEVICE_TYPE(TMS9129, tms9129_device) class tms9928a_device : public device_t, @@ -86,13 +74,23 @@ class tms9928a_device : public device_t, public device_video_interface { public: + static constexpr unsigned PALETTE_SIZE = 16; + + /* Some defines used in defining the screens */ + static constexpr unsigned TOTAL_HORZ = 342; + static constexpr unsigned TOTAL_VERT_NTSC = 262; + static constexpr unsigned TOTAL_VERT_PAL = 313; + + static constexpr unsigned HORZ_DISPLAY_START = 2 + 14 + 8 + 13; + static constexpr unsigned VERT_DISPLAY_START_PAL = 13 + 51; + static constexpr unsigned VERT_DISPLAY_START_NTSC = 13 + 27; + // construction/destruction tms9928a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - tms9928a_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, bool is_50hz, bool is_reva, bool is_99, const char *shortname, const char *source); static void set_vram_size(device_t &device, int vram_size) { downcast(device).m_vram_size = vram_size; } - template static devcb_base &set_out_int_line_callback(device_t &device, _Object object) { return downcast(device).m_out_int_line_cb.set_callback(object); } - template static devcb_base &set_out_gromclk_callback(device_t &device, _Object object) { return downcast(device).m_out_gromclk_cb.set_callback(object); } + template static devcb_base &set_out_int_line_callback(device_t &device, Object &&cb) { return downcast(device).m_out_int_line_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_gromclk_callback(device_t &device, Object &&cb) { return downcast(device).m_out_gromclk_cb.set_callback(std::forward(cb)); } DECLARE_READ8_MEMBER( read ); DECLARE_WRITE8_MEMBER( write ); @@ -110,6 +108,8 @@ public: void reset_line(int state) { if (state==ASSERT_LINE) device_reset(); } protected: + tms9928a_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, bool is_50hz, bool is_reva, bool is_99); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -147,9 +147,9 @@ private: uint16_t m_spritepattern; int m_colourmask; int m_patternmask; - bool m_50hz; - bool m_reva; - bool m_99; + const bool m_50hz; + const bool m_reva; + const bool m_99; rgb_t m_palette[16]; /* memory */ @@ -216,4 +216,4 @@ public: }; -#endif // MAME_DEVICES_VIDEO_TMS9928A_H +#endif // MAME_VIDEO_TMS9928A_H diff --git a/src/devices/video/upd3301.cpp b/src/devices/video/upd3301.cpp index 8b6dce81ffa..424ea81cee8 100644 --- a/src/devices/video/upd3301.cpp +++ b/src/devices/video/upd3301.cpp @@ -24,15 +24,15 @@ #include "screen.h" +//#define VERBOSE 1 +#include "logmacro.h" + //************************************************************************** // MACROS / CONSTANTS //************************************************************************** -#define LOG 0 - - #define COMMAND_MASK 0xe0 #define COMMAND_RESET 0x00 #define COMMAND_START_DISPLAY 0x20 @@ -65,7 +65,7 @@ enum // DEVICE DEFINITIONS //************************************************************************** -const device_type UPD3301 = device_creator; +DEFINE_DEVICE_TYPE(UPD3301, upd3301_device, "upd3301", "NEC uPD3301") @@ -78,7 +78,7 @@ const device_type UPD3301 = device_creator; //------------------------------------------------- upd3301_device::upd3301_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, UPD3301, "UPD3301", tag, owner, clock, "upd3301", __FILE__), + device_t(mconfig, UPD3301, tag, owner, clock), device_video_interface(mconfig, *this), m_write_int(*this), m_write_drq(*this), @@ -192,7 +192,7 @@ void upd3301_device::device_timer(emu_timer &timer, device_timer_id id, int para switch (id) { case TIMER_HRTC: - if (LOG) logerror("UPD3301 '%s' HRTC: %u\n", tag(), param); + LOG("UPD3301 HRTC: %u\n", param); m_write_hrtc(param); m_hrtc = param; @@ -201,7 +201,7 @@ void upd3301_device::device_timer(emu_timer &timer, device_timer_id id, int para break; case TIMER_VRTC: - if (LOG) logerror("UPD3301 '%s' VRTC: %u\n", tag(), param); + LOG("UPD3301 VRTC: %u\n", param); m_write_vrtc(param); m_vrtc = param; @@ -261,31 +261,31 @@ WRITE8_MEMBER( upd3301_device::write ) case 0: m_dma_mode = BIT(data, 7); m_h = (data & 0x7f) + 2; - if (LOG) logerror("UPD3301 '%s' DMA Mode: %s\n", tag(), m_dma_mode ? "character" : "burst"); - if (LOG) logerror("UPD3301 '%s' H: %u\n", tag(), m_h); + LOG("UPD3301 DMA Mode: %s\n", m_dma_mode ? "character" : "burst"); + LOG("UPD3301 H: %u\n", m_h); break; case 1: m_b = ((data >> 6) + 1) * 16; m_l = (data & 0x3f) + 1; - if (LOG) logerror("UPD3301 '%s' B: %u\n", tag(), m_b); - if (LOG) logerror("UPD3301 '%s' L: %u\n", tag(), m_l); + LOG("UPD3301 B: %u\n", m_b); + LOG("UPD3301 L: %u\n", m_l); break; case 2: m_s = BIT(data, 7); m_c = (data >> 4) & 0x03; m_r = (data & 0x1f) + 1; - if (LOG) logerror("UPD3301 '%s' S: %u\n", tag(), m_s); - if (LOG) logerror("UPD3301 '%s' C: %u\n", tag(), m_c); - if (LOG) logerror("UPD3301 '%s' R: %u\n", tag(), m_r); + LOG("UPD3301 S: %u\n", m_s); + LOG("UPD3301 C: %u\n", m_c); + LOG("UPD3301 R: %u\n", m_r); break; case 3: m_v = (data >> 5) + 1; m_z = (data & 0x1f) + 2; - if (LOG) logerror("UPD3301 '%s' V: %u\n", tag(), m_v); - if (LOG) logerror("UPD3301 '%s' Z: %u\n", tag(), m_z); + LOG("UPD3301 V: %u\n", m_v); + LOG("UPD3301 Z: %u\n", m_z); recompute_parameters(); break; @@ -294,10 +294,10 @@ WRITE8_MEMBER( upd3301_device::write ) m_at0 = BIT(data, 6); m_sc = BIT(data, 5); m_attr = (data & 0x1f) + 1; - if (LOG) logerror("UPD3301 '%s' AT1: %u\n", tag(), m_at1); - if (LOG) logerror("UPD3301 '%s' AT0: %u\n", tag(), m_at0); - if (LOG) logerror("UPD3301 '%s' SC: %u\n", tag(), m_sc); - if (LOG) logerror("UPD3301 '%s' ATTR: %u\n", tag(), m_attr); + LOG("UPD3301 AT1: %u\n", m_at1); + LOG("UPD3301 AT0: %u\n", m_at0); + LOG("UPD3301 SC: %u\n", m_sc); + LOG("UPD3301 ATTR: %u\n", m_attr); m_mode = MODE_NONE; break; @@ -311,12 +311,12 @@ WRITE8_MEMBER( upd3301_device::write ) { case 0: m_cx = data & 0x7f; - if (LOG) logerror("UPD3301 '%s' CX: %u\n", tag(), m_cx); + LOG("UPD3301 CX: %u\n", m_cx); break; case 1: m_cy = data & 0x3f; - if (LOG) logerror("UPD3301 '%s' CY: %u\n", tag(), m_cy); + LOG("UPD3301 CY: %u\n", m_cy); m_mode = MODE_NONE; break; @@ -326,7 +326,7 @@ WRITE8_MEMBER( upd3301_device::write ) break; default: - if (LOG) logerror("UPD3301 '%s' Invalid Parameter Byte %02x!\n", tag(), data); + LOG("UPD3301 Invalid Parameter Byte %02x!\n", data); } break; @@ -337,45 +337,45 @@ WRITE8_MEMBER( upd3301_device::write ) switch (data & 0xe0) { case COMMAND_RESET: - if (LOG) logerror("UPD3301 '%s' Reset\n", tag()); + LOG("UPD3301 Reset\n"); m_mode = MODE_RESET; set_display(0); set_interrupt(0); break; case COMMAND_START_DISPLAY: - if (LOG) logerror("UPD3301 '%s' Start Display\n", tag()); + LOG("UPD3301 Start Display\n"); set_display(1); reset_counters(); break; case COMMAND_SET_INTERRUPT_MASK: - if (LOG) logerror("UPD3301 '%s' Set Interrupt Mask\n", tag()); + LOG("UPD3301 Set Interrupt Mask\n"); m_me = BIT(data, 0); m_mn = BIT(data, 1); - if (LOG) logerror("UPD3301 '%s' ME: %u\n", tag(), m_me); - if (LOG) logerror("UPD3301 '%s' MN: %u\n", tag(), m_mn); + LOG("UPD3301 ME: %u\n", m_me); + LOG("UPD3301 MN: %u\n", m_mn); break; case COMMAND_READ_LIGHT_PEN: - if (LOG) logerror("UPD3301 '%s' Read Light Pen\n", tag()); + LOG("UPD3301 Read Light Pen\n"); m_mode = MODE_READ_LIGHT_PEN; break; case COMMAND_LOAD_CURSOR_POSITION: - if (LOG) logerror("UPD3301 '%s' Load Cursor Position\n", tag()); + LOG("UPD3301 Load Cursor Position\n"); m_mode = MODE_LOAD_CURSOR_POSITION; m_cm = BIT(data, 0); - if (LOG) logerror("UPD3301 '%s' CM: %u\n", tag(), m_cm); + LOG("UPD3301 CM: %u\n", m_cm); break; case COMMAND_RESET_INTERRUPT: - if (LOG) logerror("UPD3301 '%s' Reset Interrupt\n", tag()); + LOG("UPD3301 Reset Interrupt\n"); set_interrupt(0); break; case COMMAND_RESET_COUNTERS: - if (LOG) logerror("UPD3301 '%s' Reset Counters\n", tag()); + LOG("UPD3301 Reset Counters\n"); m_mode = MODE_RESET_COUNTERS; reset_counters(); break; @@ -528,7 +528,7 @@ uint32_t upd3301_device::screen_update(screen_device &screen, bitmap_rgb32 &bitm void upd3301_device::set_interrupt(int state) { - if (LOG) logerror("UPD3301 '%s' Interrupt: %u\n", tag(), state); + LOG("UPD3301 Interrupt: %u\n", state); m_write_int(state); @@ -545,7 +545,7 @@ void upd3301_device::set_interrupt(int state) void upd3301_device::set_drq(int state) { - if (LOG) logerror("UPD3301 '%s' DRQ: %u\n", tag(), state); + LOG("UPD3301 DRQ: %u\n", state); m_write_drq(state); } @@ -625,11 +625,8 @@ void upd3301_device::recompute_parameters() visarea.set(0, (m_h * m_width) - 1, 0, (m_l * m_r) - 1); - if (LOG) - { - if (LOG) logerror("UPD3301 '%s' Screen: %u x %u @ %f Hz\n", tag(), horiz_pix_total, vert_pix_total, 1 / ATTOSECONDS_TO_DOUBLE(refresh)); - if (LOG) logerror("UPD3301 '%s' Visible Area: (%u, %u) - (%u, %u)\n", tag(), visarea.min_x, visarea.min_y, visarea.max_x, visarea.max_y); - } + LOG("UPD3301 Screen: %u x %u @ %f Hz\n", horiz_pix_total, vert_pix_total, 1 / ATTOSECONDS_TO_DOUBLE(refresh)); + LOG("UPD3301 Visible Area: (%u, %u) - (%u, %u)\n", visarea.min_x, visarea.min_y, visarea.max_x, visarea.max_y); m_screen->configure(horiz_pix_total, vert_pix_total, visarea, refresh); diff --git a/src/devices/video/upd3301.h b/src/devices/video/upd3301.h index 5d1c03c7ed1..a8e9b8e8b97 100644 --- a/src/devices/video/upd3301.h +++ b/src/devices/video/upd3301.h @@ -29,11 +29,10 @@ **********************************************************************/ -#pragma once - -#ifndef __UPD3301__ -#define __UPD3301__ +#ifndef MAME_VIDEO_UPD3301_H +#define MAME_VIDEO_UPD3301_H +#pragma once @@ -48,7 +47,7 @@ upd3301_device::static_set_character_width(*device, _value); #define MCFG_UPD3301_DRAW_CHARACTER_CALLBACK_OWNER(_class, _method) \ - upd3301_device::static_set_display_callback(*device, upd3301_draw_character_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); + upd3301_device::static_set_display_callback(*device, upd3301_device::draw_character_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); #define MCFG_UPD3301_DRQ_CALLBACK(_write) \ devcb = &upd3301_device::set_drq_wr_callback(*device, DEVCB_##_write); @@ -68,8 +67,6 @@ // TYPE DEFINITIONS //************************************************************************** -typedef device_delegate upd3301_draw_character_delegate; - // ======================> upd3301_device @@ -77,16 +74,18 @@ class upd3301_device : public device_t, public device_video_interface { public: + typedef device_delegate draw_character_delegate; + // construction/destruction upd3301_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); static void static_set_character_width(device_t &device, int value) { downcast(device).m_width = value; } - static void static_set_display_callback(device_t &device, upd3301_draw_character_delegate callback) { downcast(device).m_display_cb = callback; } + static void static_set_display_callback(device_t &device, draw_character_delegate &&cb) { downcast(device).m_display_cb = std::move(cb); } - template static devcb_base &set_drq_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_drq.set_callback(object); } - template static devcb_base &set_int_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_int.set_callback(object); } - template static devcb_base &set_hrtc_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_hrtc.set_callback(object); } - template static devcb_base &set_vrtc_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_vrtc.set_callback(object); } + template static devcb_base &set_drq_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_drq.set_callback(std::forward(cb)); } + template static devcb_base &set_int_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_int.set_callback(std::forward(cb)); } + template static devcb_base &set_hrtc_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_hrtc.set_callback(std::forward(cb)); } + template static devcb_base &set_vrtc_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_vrtc.set_callback(std::forward(cb)); } DECLARE_READ8_MEMBER( read ); DECLARE_WRITE8_MEMBER( write ); @@ -127,7 +126,7 @@ private: devcb_write_line m_write_hrtc; devcb_write_line m_write_vrtc; - upd3301_draw_character_delegate m_display_cb; + draw_character_delegate m_display_cb; int m_width; // screen drawing @@ -186,8 +185,6 @@ private: // device type definition -extern const device_type UPD3301; - - +DECLARE_DEVICE_TYPE(UPD3301, upd3301_device) -#endif +#endif // MAME_VIDEO_UPD3301_H diff --git a/src/devices/video/upd7220.cpp b/src/devices/video/upd7220.cpp index 46e97fab0ba..c4b5650cf76 100644 --- a/src/devices/video/upd7220.cpp +++ b/src/devices/video/upd7220.cpp @@ -39,16 +39,16 @@ #include "screen.h" +//#define VERBOSE 1 +#include "logmacro.h" + + //************************************************************************** // MACROS / CONSTANTS //************************************************************************** -#define VERBOSE 0 -#define LOG(x) do { if (VERBOSE) logerror x; } while (0) - - // todo typedef enum { @@ -136,8 +136,8 @@ enum #define UPD7220_MODE_INTERLACE_ON 0x09 -static const int x_dir[8] = { 0, 1, 1, 1, 0,-1,-1,-1}; -static const int y_dir[8] = { 1, 1, 0,-1,-1,-1, 0, 1}; +static constexpr int x_dir[8] = { 0, 1, 1, 1, 0,-1,-1,-1}; +static constexpr int y_dir[8] = { 1, 1, 0,-1,-1,-1, 0, 1}; //************************************************************************** @@ -145,7 +145,7 @@ static const int y_dir[8] = { 1, 1, 0,-1,-1,-1, 0, 1}; //************************************************************************** // devices -const device_type UPD7220 = device_creator; +DEFINE_DEVICE_TYPE(UPD7220, upd7220_device, "upd7220", "NEC uPD7220") // default address map @@ -412,10 +412,10 @@ inline void upd7220_device::recompute_parameters() visarea.max_x = m_aw * horiz_mult - 1;//horiz_pix_total - (m_hfp * 8) - 1; visarea.max_y = m_al * vert_mult + m_vbp - 1;//vert_pix_total - m_vfp - 1; - LOG(("uPD7220 '%s' Screen: %u x %u @ %f Hz\n", tag(), horiz_pix_total, vert_pix_total, 1 / ATTOSECONDS_TO_DOUBLE(refresh))); - LOG(("Visible Area: (%u, %u) - (%u, %u)\n", visarea.min_x, visarea.min_y, visarea.max_x, visarea.max_y)); - LOG(("%d %d %d %d %d\n",m_hs,m_hbp,m_aw,m_hfp,m_pitch)); - LOG(("%d %d %d %d\n",m_vs,m_vbp,m_al,m_vfp)); + LOG("uPD7220 Screen: %u x %u @ %f Hz\n", horiz_pix_total, vert_pix_total, 1 / ATTOSECONDS_TO_DOUBLE(refresh)); + LOG("Visible Area: (%u, %u) - (%u, %u)\n", visarea.min_x, visarea.min_y, visarea.max_x, visarea.max_y); + LOG("%d %d %d %d %d\n",m_hs,m_hbp,m_aw,m_hfp,m_pitch); + LOG("%d %d %d %d\n",m_vs,m_vbp,m_al,m_vfp); if (m_m) { @@ -457,12 +457,12 @@ inline void upd7220_device::read_vram(uint8_t type, uint8_t mod) { if (type == 1) { - LOG (("uPD7220 invalid type 1 RDAT parameter\n")); + LOG("uPD7220 invalid type 1 RDAT parameter\n"); return; } if (mod) - LOG (("uPD7220 RDAT used with mod = %02x?\n",mod)); + LOG("uPD7220 RDAT used with mod = %02x?\n",mod); while (m_figs.m_dc && m_fifo_ptr < (type ? 15 : 14)) { @@ -609,7 +609,7 @@ inline void upd7220_device::get_graphics_partition(int index, uint32_t *sad, uin //------------------------------------------------- upd7220_device::upd7220_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, UPD7220, "uPD7220", tag, owner, clock, "upd7220", __FILE__), + device_t(mconfig, UPD7220, tag, owner, clock), device_memory_interface(mconfig, *this), device_video_interface(mconfig, *this), m_write_drq(*this), @@ -823,7 +823,7 @@ void upd7220_device::draw_line(int x, int y) uint16_t pattern = (m_ra[8]) | (m_ra[9]<<8); const int dot_dir[4] = {1, -1, -1, 1}; - LOG(("uPD7220 line check: %d %d %02x %08x %d %d %d\n",x,y,m_figs.m_dir,m_ead,d1,m_figs.m_dc,m_bitmap_mod)); + LOG("uPD7220 line check: %d %d %02x %08x %d %d %d\n",x,y,m_figs.m_dir,m_ead,d1,m_figs.m_dc,m_bitmap_mod); for(yi = xi = 0; yi <= m_figs.m_dc; yi++) { @@ -873,7 +873,7 @@ void upd7220_device::draw_arc(int x, int y) uint16_t pattern = (m_ra[8]) | (m_ra[9]<<8); const int dot_dir[4] = {1, -1, -1, 1}; - LOG(("uPD7220 arc check: %d %d %02x %08x %d %d %d\n",x,y,m_figs.m_dir,m_ead,m_figs.m_dm,m_figs.m_dc,m_figs.m_d)); + LOG("uPD7220 arc check: %d %d %02x %08x %d %d %d\n",x,y,m_figs.m_dir,m_ead,m_figs.m_dm,m_figs.m_dc,m_figs.m_d); for(int yi = 0; yi <= m_figs.m_dc; yi++) { @@ -926,7 +926,7 @@ void upd7220_device::draw_rectangle(int x, int y) uint8_t rect_type,rect_dir; uint16_t pattern = (m_ra[8]) | (m_ra[9]<<8); - LOG(("uPD7220 rectangle check: %d %d %02x %08x\n",x,y,m_figs.m_dir,m_ead)); + LOG("uPD7220 rectangle check: %d %d %02x %08x\n",x,y,m_figs.m_dir,m_ead); rect_type = (m_figs.m_dir & 1) << 2; rect_dir = rect_type | (((m_figs.m_dir >> 1) + 0) & 3); @@ -980,7 +980,7 @@ void upd7220_device::draw_char(int x, int y) int isize,psize; uint16_t tile_data; - LOG(("uPD7220 char check: %d %d %02x %08x %d %d %02x\n",x,y,m_figs.m_dir,m_ead,m_figs.m_d,m_figs.m_dc,m_figs.m_figure_type)); + LOG("uPD7220 char check: %d %d %02x %08x %d %d %02x\n",x,y,m_figs.m_dir,m_ead,m_figs.m_d,m_figs.m_dc,m_figs.m_figure_type); /* QX10 may require upper bits for psize, VT240 requires the opposite */ isize = m_figs.m_d; @@ -1106,19 +1106,19 @@ void upd7220_device::process_fifo() switch (translate_command(m_cr)) { case COMMAND_INVALID: - logerror("uPD7220 '%s' Invalid Command Byte %02x\n", tag(), m_cr); + logerror("uPD7220 Invalid Command Byte %02x\n", m_cr); break; case COMMAND_5A: if (m_param_ptr == 4) - logerror("uPD7220 '%s' Undocumented Command 0x5A Executed %02x %02x %02x\n", tag(),m_pr[1],m_pr[2],m_pr[3] ); + logerror("uPD7220 Undocumented Command 0x5A Executed %02x %02x %02x\n", m_pr[1],m_pr[2],m_pr[3] ); break; case COMMAND_RESET: /* reset */ switch (m_param_ptr) { case 0: - LOG(("uPD7220 '%s' RESET\n", tag())); + LOG("uPD7220 RESET\n"); m_de = 0; m_ra[0] = m_ra[1] = m_ra[2] = 0; @@ -1141,16 +1141,16 @@ void upd7220_device::process_fifo() m_pitch = m_aw; - LOG(("uPD7220 '%s' Mode: %02x\n", tag(), m_mode)); - LOG(("uPD7220 '%s' AW: %u\n", tag(), m_aw)); - LOG(("uPD7220 '%s' HS: %u\n", tag(), m_hs)); - LOG(("uPD7220 '%s' VS: %u\n", tag(), m_vs)); - LOG(("uPD7220 '%s' HFP: %u\n", tag(), m_hfp)); - LOG(("uPD7220 '%s' HBP: %u\n", tag(), m_hbp)); - LOG(("uPD7220 '%s' VFP: %u\n", tag(), m_vfp)); - LOG(("uPD7220 '%s' AL: %u\n", tag(), m_al)); - LOG(("uPD7220 '%s' VBP: %u\n", tag(), m_vbp)); - LOG(("uPD7220 '%s' PITCH: %u\n", tag(), m_pitch)); + LOG("uPD7220 Mode: %02x\n", m_mode); + LOG("uPD7220 AW: %u\n", m_aw); + LOG("uPD7220 HS: %u\n", m_hs); + LOG("uPD7220 VS: %u\n", m_vs); + LOG("uPD7220 HFP: %u\n", m_hfp); + LOG("uPD7220 HBP: %u\n", m_hbp); + LOG("uPD7220 VFP: %u\n", m_vfp); + LOG("uPD7220 AL: %u\n", m_al); + LOG("uPD7220 VBP: %u\n", m_vbp); + LOG("uPD7220 PITCH: %u\n", m_pitch); recompute_parameters(); break; @@ -1172,16 +1172,16 @@ void upd7220_device::process_fifo() m_pitch = m_aw; - LOG(("uPD7220 '%s' Mode: %02x\n", tag(), m_mode)); - LOG(("uPD7220 '%s' AW: %u\n", tag(), m_aw)); - LOG(("uPD7220 '%s' HS: %u\n", tag(), m_hs)); - LOG(("uPD7220 '%s' VS: %u\n", tag(), m_vs)); - LOG(("uPD7220 '%s' HFP: %u\n", tag(), m_hfp)); - LOG(("uPD7220 '%s' HBP: %u\n", tag(), m_hbp)); - LOG(("uPD7220 '%s' VFP: %u\n", tag(), m_vfp)); - LOG(("uPD7220 '%s' AL: %u\n", tag(), m_al)); - LOG(("uPD7220 '%s' VBP: %u\n", tag(), m_vbp)); - LOG(("uPD7220 '%s' PITCH: %u\n", tag(), m_pitch)); + LOG("uPD7220 Mode: %02x\n", m_mode); + LOG("uPD7220 AW: %u\n", m_aw); + LOG("uPD7220 HS: %u\n", m_hs); + LOG("uPD7220 VS: %u\n", m_vs); + LOG("uPD7220 HFP: %u\n", m_hfp); + LOG("uPD7220 HBP: %u\n", m_hbp); + LOG("uPD7220 VFP: %u\n", m_vfp); + LOG("uPD7220 AL: %u\n", m_al); + LOG("uPD7220 VBP: %u\n", m_vbp); + LOG("uPD7220 PITCH: %u\n", m_pitch); recompute_parameters(); } @@ -1190,7 +1190,7 @@ void upd7220_device::process_fifo() case COMMAND_VSYNC: /* vertical sync mode */ m_m = m_cr & 0x01; - LOG(("uPD7220 '%s' M: %u\n", tag(), m_m)); + LOG("uPD7220 M: %u\n", m_m); recompute_parameters(); break; @@ -1201,8 +1201,8 @@ void upd7220_device::process_fifo() m_lr = (m_pr[1] & 0x1f) + 1; m_dc = BIT(m_pr[1], 7); - LOG(("uPD7220 '%s' LR: %u\n", tag(), m_lr)); - LOG(("uPD7220 '%s' DC: %u\n", tag(), m_dc)); + LOG("uPD7220 LR: %u\n", m_lr); + LOG("uPD7220 DC: %u\n", m_dc); } if(m_param_ptr == 3) @@ -1211,8 +1211,8 @@ void upd7220_device::process_fifo() m_sc = BIT(m_pr[2], 5); m_br = (m_pr[2] >> 6); /* guess, assume that blink rate clears upper bits (if any) */ - LOG(("uPD7220 '%s' CTOP: %u\n", tag(), m_ctop)); - LOG(("uPD7220 '%s' SC: %u\n", tag(), m_sc)); + LOG("uPD7220 CTOP: %u\n", m_ctop); + LOG("uPD7220 SC: %u\n", m_sc); } if(m_param_ptr == 4) @@ -1220,15 +1220,15 @@ void upd7220_device::process_fifo() m_br = ((m_pr[3] & 0x07) << 2) | (m_pr[2] >> 6); m_cbot = m_pr[3] >> 3; - LOG(("uPD7220 '%s' BR: %u\n", tag(), m_br)); - LOG(("uPD7220 '%s' CBOT: %u\n", tag(), m_cbot)); + LOG("uPD7220 BR: %u\n", m_br); + LOG("uPD7220 CBOT: %u\n", m_cbot); } break; case COMMAND_START: /* start display & end idle mode */ m_de = 1; - //LOG(("uPD7220 '%s' DE: 1\n", tag())); + //LOG("uPD7220 '%s' DE: 1\n"); break; case COMMAND_05: @@ -1238,7 +1238,7 @@ void upd7220_device::process_fifo() case COMMAND_BCTRL: /* display blanking control */ m_de = m_cr & 0x01; - //LOG(("uPD7220 '%s' DE: %u\n", tag(), m_de)); + //LOG("uPD7220 DE: %u\n", m_de); break; case COMMAND_ZOOM: /* zoom factors specify */ @@ -1247,8 +1247,8 @@ void upd7220_device::process_fifo() m_gchr = m_pr[1] & 0x0f; m_disp = m_pr[1] >> 4; - LOG(("uPD7220 '%s' GCHR: %01x\n", tag(), m_gchr)); - LOG(("uPD7220 '%s' DISP: %01x\n", tag(), m_disp)); + LOG("uPD7220 GCHR: %01x\n", m_gchr); + LOG("uPD7220 DISP: %01x\n", m_disp); } break; @@ -1259,12 +1259,12 @@ void upd7220_device::process_fifo() m_ead = (upper_addr << 16) | (m_pr[2] << 8) | m_pr[1]; - LOG(("uPD7220 '%s' EAD: %06x\n", tag(), m_ead)); + LOG("uPD7220 EAD: %06x\n", m_ead); if(m_param_ptr == 4) { m_dad = m_pr[3] >> 4; - LOG(("uPD7220 '%s' DAD: %01x\n", tag(), m_dad)); + LOG("uPD7220 DAD: %01x\n", m_dad); } } break; @@ -1278,7 +1278,7 @@ void upd7220_device::process_fifo() { if (m_ra_addr < 16) { - LOG(("uPD7220 '%s' RA%u: %02x\n", tag(), m_ra_addr, data)); + LOG("uPD7220 RA%u: %02x\n", m_ra_addr, data); m_ra[m_ra_addr] = data; m_ra_addr++; @@ -1293,7 +1293,7 @@ void upd7220_device::process_fifo() { m_pitch = data; - LOG(("uPD7220 '%s' PITCH: %u\n", tag(), m_pitch)); + LOG("uPD7220 PITCH: %u\n", m_pitch); } break; @@ -1302,7 +1302,7 @@ void upd7220_device::process_fifo() if (m_param_ptr == 3 || (m_param_ptr == 2 && m_cr & 0x10)) { - LOG(("%02x = %02x %02x (%c) %06x %04x\n",m_cr,m_pr[2],m_pr[1],m_pr[1]?m_pr[1]:' ',m_ead,m_figs.m_dc)); + LOG("%02x = %02x %02x (%c) %06x %04x\n",m_cr,m_pr[2],m_pr[1],m_pr[1]?m_pr[1]:' ',m_ead,m_figs.m_dc); fifo_set_direction(FIFO_WRITE); write_vram((m_cr & 0x18) >> 3,m_cr & 3); @@ -1316,7 +1316,7 @@ void upd7220_device::process_fifo() { m_mask = (m_pr[2] << 8) | m_pr[1]; - LOG(("uPD7220 '%s' MASK: %04x\n", tag(), m_mask)); + LOG("uPD7220 MASK: %04x\n", m_mask); } break; @@ -1365,7 +1365,7 @@ void upd7220_device::process_fifo() else if(m_figs.m_figure_type == 8) draw_rectangle(((m_ead % eff_pitch) << 4) | (m_dad & 0xf),(m_ead / eff_pitch)); else - logerror("uPD7220 '%s' Unimplemented command FIGD %02x\n", tag(),m_figs.m_figure_type); + logerror("uPD7220 Unimplemented command FIGD %02x\n", m_figs.m_figure_type); reset_figs_param(); m_sr |= UPD7220_SR_DRAWING_IN_PROGRESS; @@ -1375,7 +1375,7 @@ void upd7220_device::process_fifo() if((m_figs.m_figure_type & 0xf) == 2) draw_char(((m_ead % eff_pitch) << 4) | (m_dad & 0xf),(m_ead / eff_pitch)); else - logerror("uPD7220 '%s' Unimplemented command GCHRD %02x\n", tag(),m_figs.m_figure_type); + logerror("uPD7220 Unimplemented command GCHRD %02x\n", m_figs.m_figure_type); reset_figs_param(); m_sr |= UPD7220_SR_DRAWING_IN_PROGRESS; @@ -1416,11 +1416,11 @@ void upd7220_device::process_fifo() break; case COMMAND_DMAR: /* DMA read request */ - logerror("uPD7220 '%s' Unimplemented command DMAR\n", tag()); + logerror("uPD7220 Unimplemented command DMAR\n"); break; case COMMAND_DMAW: /* DMA write request */ - logerror("uPD7220 '%s' Unimplemented command DMAW\n", tag()); + logerror("uPD7220 Unimplemented command DMAW\n"); break; } } @@ -1520,7 +1520,7 @@ WRITE8_MEMBER( upd7220_device::dack_w ) WRITE_LINE_MEMBER( upd7220_device::ext_sync_w ) { - //LOG(("uPD7220 '%s' External Synchronization: %u\n", tag(), state)); + //LOG("uPD7220 External Synchronization: %u\n", state); if (state) { @@ -1684,7 +1684,7 @@ uint32_t upd7220_device::screen_update(screen_device &screen, bitmap_rgb32 &bitm break; case UPD7220_MODE_DISPLAY_INVALID: - LOG(("uPD7220 '%s' Invalid Display Mode!\n", tag())); + LOG("uPD7220 Invalid Display Mode!\n"); } } return 0; diff --git a/src/devices/video/upd7220.h b/src/devices/video/upd7220.h index e55a1892241..df99a7556aa 100644 --- a/src/devices/video/upd7220.h +++ b/src/devices/video/upd7220.h @@ -29,11 +29,10 @@ **********************************************************************/ -#pragma once - -#ifndef __UPD7220__ -#define __UPD7220__ +#ifndef MAME_VIDEO_UPD7220_H +#define MAME_VIDEO_UPD7220_H +#pragma once @@ -46,10 +45,10 @@ #define MCFG_UPD7220_DISPLAY_PIXELS_CALLBACK_OWNER(_class, _method) \ - upd7220_device::static_set_display_pixels_callback(*device, upd7220_display_pixels_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); + upd7220_device::static_set_display_pixels_callback(*device, upd7220_device::display_pixels_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); #define MCFG_UPD7220_DRAW_TEXT_CALLBACK_OWNER(_class, _method) \ - upd7220_device::static_set_draw_text_callback(*device, upd7220_draw_text_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); + upd7220_device::static_set_draw_text_callback(*device, upd7220_device::draw_text_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); #define MCFG_UPD7220_DRQ_CALLBACK(_write) \ devcb = &upd7220_device::set_drq_wr_callback(*device, DEVCB_##_write); @@ -69,9 +68,6 @@ // TYPE DEFINITIONS //************************************************************************** -typedef device_delegate upd7220_display_pixels_delegate; -typedef device_delegate upd7220_draw_text_delegate; - // ======================> upd7220_device @@ -80,16 +76,19 @@ class upd7220_device : public device_t, public device_video_interface { public: + typedef device_delegate display_pixels_delegate; + typedef device_delegate draw_text_delegate; + // construction/destruction upd7220_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - static void static_set_display_pixels_callback(device_t &device, upd7220_display_pixels_delegate callback) { downcast(device).m_display_cb = callback; } - static void static_set_draw_text_callback(device_t &device, upd7220_draw_text_delegate callback) { downcast(device).m_draw_text_cb = callback; } + static void static_set_display_pixels_callback(device_t &device, display_pixels_delegate &&cb) { downcast(device).m_display_cb = std::move(cb); } + static void static_set_draw_text_callback(device_t &device, draw_text_delegate &&cb) { downcast(device).m_draw_text_cb = std::move(cb); } - template static devcb_base &set_drq_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_drq.set_callback(object); } - template static devcb_base &set_hsync_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_hsync.set_callback(object); } - template static devcb_base &set_vsync_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_vsync.set_callback(object); } - template static devcb_base &set_blank_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_blank.set_callback(object); } + template static devcb_base &set_drq_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_drq.set_callback(std::forward(cb)); } + template static devcb_base &set_hsync_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_hsync.set_callback(std::forward(cb)); } + template static devcb_base &set_vsync_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_vsync.set_callback(std::forward(cb)); } + template static devcb_base &set_blank_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_blank.set_callback(std::forward(cb)); } DECLARE_READ8_MEMBER( read ); DECLARE_WRITE8_MEMBER( write ); @@ -102,7 +101,7 @@ public: uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); virtual const tiny_rom_entry *device_rom_region() const override; - virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_0) const override; + virtual const address_space_config *memory_space_config(address_spacenum spacenum) const override; protected: // device-level overrides @@ -149,8 +148,8 @@ private: void draw_graphics_line(bitmap_rgb32 &bitmap, uint32_t addr, int y, int wd, int pitch); void update_graphics(bitmap_rgb32 &bitmap, const rectangle &cliprect, int force_bitmap); - upd7220_display_pixels_delegate m_display_cb; - upd7220_draw_text_delegate m_draw_text_cb; + display_pixels_delegate m_display_cb; + draw_text_delegate m_draw_text_cb; devcb_write_line m_write_drq; devcb_write_line m_write_hsync; @@ -222,8 +221,6 @@ private: // device type definition -extern const device_type UPD7220; - - +DECLARE_DEVICE_TYPE(UPD7220, upd7220_device) -#endif +#endif // MAME_VIDEO_UPD7220_H diff --git a/src/devices/video/upd7227.cpp b/src/devices/video/upd7227.cpp index 61a415f608a..864d1a23935 100644 --- a/src/devices/video/upd7227.cpp +++ b/src/devices/video/upd7227.cpp @@ -9,13 +9,8 @@ #include "emu.h" #include "upd7227.h" - - -//************************************************************************** -// MACROS / CONSTANTS -//************************************************************************** - -#define LOG 0 +//#define VERBOSE 1 +#include "logmacro.h" @@ -23,7 +18,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type UPD7227 = device_creator; +DEFINE_DEVICE_TYPE(UPD7227, upd7227_device, "upd7227", "NEC uPD7227") static ADDRESS_MAP_START( upd7227_map, AS_PROGRAM, 8, upd7227_device ) @@ -42,14 +37,14 @@ ADDRESS_MAP_END //------------------------------------------------- upd7227_device::upd7227_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, UPD7227, "uPD7227", tag, owner, clock, "upd7227", __FILE__), - device_memory_interface(mconfig, *this), - m_space_config("videoram", ENDIANNESS_BIG, 8, 7, 0, *ADDRESS_MAP_NAME(upd7227_map)), - m_cs(1), - m_cd(1), - m_sck(1), - m_si(1), - m_so(1) + : device_t(mconfig, UPD7227, tag, owner, clock) + , device_memory_interface(mconfig, *this) + , m_space_config("videoram", ENDIANNESS_BIG, 8, 7, 0, *ADDRESS_MAP_NAME(upd7227_map)) + , m_cs(1) + , m_cd(1) + , m_sck(1) + , m_si(1) + , m_so(1) { } diff --git a/src/devices/video/upd7227.h b/src/devices/video/upd7227.h index c38b2fa10e2..725137bc376 100644 --- a/src/devices/video/upd7227.h +++ b/src/devices/video/upd7227.h @@ -6,11 +6,10 @@ **********************************************************************/ -#pragma once - -#ifndef __UPD7227__ -#define __UPD7227__ +#ifndef MAME_VIDEO_UPD7227_H +#define MAME_VIDEO_UPD7227_H +#pragma once @@ -54,7 +53,7 @@ protected: virtual void device_reset() override; // device_memory_interface overrides - virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_0) const override; + virtual const address_space_config *memory_space_config(address_spacenum spacenum) const override; address_space_config m_space_config; @@ -87,8 +86,6 @@ private: // device type definition -extern const device_type UPD7227; - - +DECLARE_DEVICE_TYPE(UPD7227, upd7227_device) -#endif +#endif // MAME_VIDEO_UPD7227_H diff --git a/src/devices/video/v9938.cpp b/src/devices/video/v9938.cpp index 2401da27494..ac7fd4575dc 100644 --- a/src/devices/video/v9938.cpp +++ b/src/devices/video/v9938.cpp @@ -38,8 +38,8 @@ todo: #include "emu.h" #include "v9938.h" -#define VERBOSE 0 -#define LOG(x) do { if (VERBOSE) logerror x; } while (0) +//#define VERBOSE 1 +#include "logmacro.h" enum { @@ -84,17 +84,17 @@ ADDRESS_MAP_END // devices -const device_type V9938 = device_creator; -const device_type V9958 = device_creator; +DEFINE_DEVICE_TYPE(V9938, v9938_device, "v9938", "Yamaha V9938 VDP") +DEFINE_DEVICE_TYPE(V9958, v9958_device, "v9958", "Yamaha V9958 VDP") -v99x8_device::v99x8_device(const machine_config &mconfig, device_type type, const char *name, const char *shortname, const char *tag, device_t *owner, uint32_t clock) -: device_t(mconfig, type, name, tag, owner, clock, shortname, __FILE__), +v99x8_device::v99x8_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int model) +: device_t(mconfig, type, tag, owner, clock), device_memory_interface(mconfig, *this), device_palette_interface(mconfig, *this), device_video_interface(mconfig, *this), m_space_config("vram", ENDIANNESS_BIG, 8, 18), - m_model(0), + m_model(model), m_offset_x(0), m_offset_y(0), m_visible_y(0), @@ -123,15 +123,13 @@ v99x8_device::v99x8_device(const machine_config &mconfig, device_type type, cons } v9938_device::v9938_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) -: v99x8_device(mconfig, V9938, "V9938 VDP", "v9938", tag, owner, clock) +: v99x8_device(mconfig, V9938, tag, owner, clock, MODEL_V9938) { - m_model = MODEL_V9938; } v9958_device::v9958_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) -: v99x8_device(mconfig, V9958, "V9958 VDP", "v9958", tag, owner, clock) +: v99x8_device(mconfig, V9958, tag, owner, clock, MODEL_V9958) { - m_model = MODEL_V9958; } @@ -156,7 +154,7 @@ void v99x8_device::device_timer(emu_timer &timer, device_timer_id id, int param, (((scanline + m_cont_reg[23]) & 255) == m_cont_reg[19]) ) { m_stat_reg[1] |= 1; - LOG(("V9938: scanline interrupt (%d)\n", scanline)); + LOG("V9938: scanline interrupt (%d)\n", scanline); } else if (!(m_cont_reg[0] & 0x10)) { @@ -336,7 +334,7 @@ void v9958_device::palette_init() fatalerror("V9958: not enough palette, must be 19780"); // set up YJK table - LOG(("Building YJK table for V9958 screens, may take a while ... \n")); + LOG("Building YJK table for V9958 screens, may take a while ... \n"); i = 0; for (y=0;y<32;y++) for (k=0;k<64;k++) for (j=0;j<64;j++) { @@ -378,7 +376,7 @@ void v9958_device::palette_init() } if (i != 19268) - LOG( ("Table creation failed - %d colours out of 19286 created\n", i)); + LOG("Table creation failed - %d colours out of 19286 created\n", i); } uint32_t v99x8_device::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) @@ -508,7 +506,7 @@ uint8_t v99x8_device::status_r() break; } - LOG(("V9938: Read %02x from S#%d\n", ret, reg)); + LOG("V9938: Read %02x from S#%d\n", ret, reg); check_int (); return ret; @@ -820,7 +818,7 @@ void v99x8_device::check_int() if (n != m_int_state) { m_int_state = n; - LOG(("V9938: IRQ line %s\n", n ? "up" : "down")); + LOG("V9938: IRQ line %s\n", n ? "up" : "down"); } /* @@ -856,7 +854,7 @@ void v99x8_device::register_write (int reg, int data) if (reg > 46) { - LOG(("V9938: Attempted to write to non-existant R#%d\n", reg)); + LOG("V9938: Attempted to write to non-existant R#%d\n", reg); return; } @@ -869,7 +867,7 @@ void v99x8_device::register_write (int reg, int data) m_cont_reg[reg] = data; set_mode(); check_int(); - LOG(("v9938: mode = %s\n", v9938_modes[m_mode])); + LOG("v9938: mode = %s\n", v9938_modes[m_mode]); break; case 18: @@ -888,14 +886,14 @@ void v99x8_device::register_write (int reg, int data) case 20: case 21: case 22: - LOG(("v9938: Write %02xh to R#%d; color burst not emulated\n", data, reg)); + LOG("v9938: Write %02xh to R#%d; color burst not emulated\n", data, reg); break; case 25: case 26: case 27: if (m_model != MODEL_V9958) { - LOG(("v9938: Attempting to write %02xh to V9958 R#%d\n", data, reg)); + LOG("v9938: Attempting to write %02xh to V9958 R#%d\n", data, reg); data = 0; } else @@ -915,7 +913,7 @@ void v99x8_device::register_write (int reg, int data) } if (reg != 15) - LOG(("v9938: Write %02x to R#%d\n", data, reg)); + LOG("v9938: Write %02x to R#%d\n", data, reg); m_cont_reg[reg] = data; } @@ -2272,7 +2270,7 @@ inline void v99x8_device::VDPpsetlowlevel(int addr, uint8_t CL, uint8_t M, uint8 case 11: if (CL) val ^= CL; break; case 12: if (CL) val = (val & M) | ~(CL|M); break; default: - LOG(("v9938: invalid operation %d in pset\n", OP)); + LOG("v9938: invalid operation %d in pset\n", OP); } m_vram_space->write_byte(addr, val); @@ -2899,12 +2897,12 @@ void v99x8_device::report_vdp_command(uint8_t Op) CM = Op>>4; LO = Op&0x0F; - LOG(("V9938: Opcode %02Xh %s-%s (%d,%d)->(%d,%d),%d [%d,%d]%s\n", + LOG("V9938: Opcode %02Xh %s-%s (%d,%d)->(%d,%d),%d [%d,%d]%s\n", Op, Commands[CM], Ops[LO], SX,SY, DX,DY, CL, m_cont_reg[45]&0x04? -NX:NX, m_cont_reg[45]&0x08? -NY:NY, m_cont_reg[45]&0x70? " on ExtVRAM":"" - )); + ); } /** VDPDraw() ************************************************/ @@ -2981,7 +2979,7 @@ uint8_t v99x8_device::command_unit_w(uint8_t Op) m_vdp_engine=&v99x8_device::hmmc_engine; break; default: - LOG(("V9938: Unrecognized opcode %02Xh\n",Op)); + LOG("V9938: Unrecognized opcode %02Xh\n",Op); return(0); } diff --git a/src/devices/video/v9938.h b/src/devices/video/v9938.h index b04bcf08a20..ff8e4d27b28 100644 --- a/src/devices/video/v9938.h +++ b/src/devices/video/v9938.h @@ -6,8 +6,8 @@ ***************************************************************************/ -#ifndef MAME_DEVICES_VIDEO_V9938_H -#define MAME_DEVICES_VIDEO_V9938_H +#ifndef MAME_VIDEO_V9938_H +#define MAME_VIDEO_V9938_H #pragma once @@ -60,8 +60,8 @@ //************************************************************************** // device type definition -extern const device_type V9938; -extern const device_type V9958; +DECLARE_DEVICE_TYPE(V9938, v9938_device) +DECLARE_DEVICE_TYPE(V9958, v9958_device) @@ -76,14 +76,8 @@ class v99x8_device : public device_t, public device_palette_interface, public device_video_interface { -protected: - // construction/destruction - v99x8_device(const machine_config &mconfig, device_type type, const char *name, const char *shortname, const char *tag, device_t *owner, uint32_t clock); - public: - template devcb_base &set_interrupt_callback(_irq irq) { - return m_int_callback.set_callback(irq); - } + template devcb_base &set_interrupt_callback(Object &&irq) { return m_int_callback.set_callback(std::forward(irq)); } int get_transpen(); bitmap_ind16 &get_bitmap() { return m_bitmap; } void update_mouse_state(int mx_delta, int my_delta, int button_state); @@ -105,26 +99,29 @@ public: /* RESET pin */ void reset_line(int state) { if (state==ASSERT_LINE) device_reset(); } - static const int HTOTAL = 684; - static const int HVISIBLE = 544; - static const int VTOTAL_NTSC = 262; - static const int VTOTAL_PAL = 313; - static const int VVISIBLE_NTSC = 26 + 192 + 25; - static const int VVISIBLE_PAL = 53 + 192 + 49; + static constexpr int HTOTAL = 684; + static constexpr int HVISIBLE = 544; + static constexpr int VTOTAL_NTSC = 262; + static constexpr int VTOTAL_PAL = 313; + static constexpr int VVISIBLE_NTSC = 26 + 192 + 25; + static constexpr int VVISIBLE_PAL = 53 + 192 + 49; // Looking at some youtube videos of real units on real monitors // there appear to be small vertical timing differences. Some (LCD) // monitors show the full borders, other CRT monitors seem to // display ~5 lines less at the top and bottom of the screen. - static const int VERTICAL_ADJUST = 5; - static const int TOP_ERASE = 13; - static const int VERTICAL_SYNC = 3; + static constexpr int VERTICAL_ADJUST = 5; + static constexpr int TOP_ERASE = 13; + static constexpr int VERTICAL_SYNC = 3; protected: - static const device_timer_id TIMER_LINE = 0; + // construction/destruction + v99x8_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int model); + + static constexpr device_timer_id TIMER_LINE = 0; const address_space_config m_space_config; address_space* m_vram_space; - int m_model; + const int m_model; // device overrides virtual void device_start() override; @@ -132,7 +129,7 @@ protected: virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; // device_memory_interface overrides - virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_DATA) const override { return (spacenum == AS_DATA) ? &m_space_config : nullptr; } + virtual const address_space_config *memory_space_config(address_spacenum spacenum) const override { return (spacenum == AS_DATA) ? &m_space_config : nullptr; } virtual void palette_init() = 0; diff --git a/src/devices/video/vector.cpp b/src/devices/video/vector.cpp index 70fa93f44bb..57f5366aba1 100644 --- a/src/devices/video/vector.cpp +++ b/src/devices/video/vector.cpp @@ -65,10 +65,10 @@ void vector_options::init(emu_options& options) } // device type definition -const device_type VECTOR = device_creator; +DEFINE_DEVICE_TYPE(VECTOR, vector_device, "vector_device", "VECTOR") vector_device::vector_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, VECTOR, "VECTOR", tag, owner, clock, "vector_device", __FILE__), + : device_t(mconfig, VECTOR, tag, owner, clock), device_video_interface(mconfig, *this), m_vector_list(nullptr), m_min_intensity(255), diff --git a/src/devices/video/vector.h b/src/devices/video/vector.h index 130cbb6b2fb..dca693133f8 100644 --- a/src/devices/video/vector.h +++ b/src/devices/video/vector.h @@ -1,33 +1,13 @@ // license:BSD-3-Clause // copyright-holders:Brad Oliver,Aaron Giles,Bernd Wiebelt,Allard van der Bas -#ifndef __VECTOR__ -#define __VECTOR__ +#ifndef MAME_VIDEO_VECTOR_H +#define MAME_VIDEO_VECTOR_H -#define VECTOR_COLOR111(c) \ - rgb_t(pal1bit((c) >> 2), pal1bit((c) >> 1), pal1bit((c) >> 0)) +#pragma once -#define VECTOR_COLOR222(c) \ - rgb_t(pal2bit((c) >> 4), pal2bit((c) >> 2), pal2bit((c) >> 0)) - -#define VECTOR_COLOR444(c) \ - rgb_t(pal4bit((c) >> 8), pal4bit((c) >> 4), pal4bit((c) >> 0)) class vector_device; -/* The vertices are buffered here */ -struct point -{ - point() : - x(0), - y(0), - col(0), - intensity(0) {} - - int x; int y; - rgb_t col; - int intensity; -}; - class vector_options { public: @@ -45,6 +25,10 @@ protected: class vector_device : public device_t, public device_video_interface { public: + template static constexpr rgb_t color111(T c) { return rgb_t(pal1bit(c >> 2), pal1bit(c >> 1), pal1bit(c >> 0)); } + template static constexpr rgb_t color222(T c) { return rgb_t(pal2bit(c >> 4), pal2bit(c >> 2), pal2bit(c >> 0)); } + template static constexpr rgb_t color444(T c) { return rgb_t(pal4bit(c >> 8), pal4bit(c >> 4), pal4bit(c >> 0)); } + // construction/destruction vector_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); @@ -57,6 +41,16 @@ public: virtual void device_start() override; private: + /* The vertices are buffered here */ + struct point + { + point() : x(0), y(0), col(0), intensity(0) { } + + int x; int y; + rgb_t col; + int intensity; + }; + std::unique_ptr m_vector_list; int m_vector_index; int m_min_intensity; @@ -66,9 +60,9 @@ private: }; // device type definition -extern const device_type VECTOR; +DECLARE_DEVICE_TYPE(VECTOR, vector_device) #define MCFG_VECTOR_ADD(_tag) \ MCFG_DEVICE_ADD(_tag, VECTOR, 0) -#endif +#endif // MAME_VIDEO_VECTOR_H diff --git a/src/devices/video/vic4567.cpp b/src/devices/video/vic4567.cpp index cbf7d7ac10a..dceeb94be12 100644 --- a/src/devices/video/vic4567.cpp +++ b/src/devices/video/vic4567.cpp @@ -59,8 +59,8 @@ #define VIC6567_Y_BEGIN -6 /* first 6 lines after retrace not for lightpen! */ #define VIC6569_X_BEGIN 38 #define VIC6569_Y_BEGIN -6 -#define VIC2_X_BEGIN ((m_type == VIC4567_PAL) ? VIC6569_X_BEGIN : VIC6567_X_BEGIN) -#define VIC2_Y_BEGIN ((m_type == VIC4567_PAL) ? VIC6569_Y_BEGIN : VIC6567_Y_BEGIN) +#define VIC2_X_BEGIN ((m_type == vic3_type::PAL) ? VIC6569_X_BEGIN : VIC6567_X_BEGIN) +#define VIC2_Y_BEGIN ((m_type == vic3_type::PAL) ? VIC6569_Y_BEGIN : VIC6567_Y_BEGIN) #define VIC2_X_VALUE ((LIGHTPEN_X_VALUE + VIC2_X_BEGIN + VIC2_MAME_XPOS) / 2) #define VIC2_Y_VALUE ((LIGHTPEN_Y_VALUE + VIC2_Y_BEGIN + VIC2_MAME_YPOS)) @@ -127,12 +127,12 @@ #define FOREGROUNDCOLOR (m_reg[0x24] & 0x0f) -#define VIC2_LINES (m_type == VIC4567_PAL ? VIC6569_LINES : VIC6567_LINES) -#define VIC2_VISIBLELINES (m_type == VIC4567_PAL ? VIC6569_VISIBLELINES : VIC6567_VISIBLELINES) -#define VIC2_VISIBLECOLUMNS (m_type == VIC4567_PAL ? VIC6569_VISIBLECOLUMNS : VIC6567_VISIBLECOLUMNS) +#define VIC2_LINES (m_type == vic3_type::PAL ? VIC6569_LINES : VIC6567_LINES) +#define VIC2_VISIBLELINES (m_type == vic3_type::PAL ? VIC6569_VISIBLELINES : VIC6567_VISIBLELINES) +#define VIC2_VISIBLECOLUMNS (m_type == vic3_type::PAL ? VIC6569_VISIBLECOLUMNS : VIC6567_VISIBLECOLUMNS) #define VIC2_STARTVISIBLELINES ((VIC2_LINES - VIC2_VISIBLELINES)/2) -#define VIC2_FIRSTRASTERLINE (m_type == VIC4567_PAL ? VIC6569_FIRSTRASTERLINE : VIC6567_FIRSTRASTERLINE) -#define VIC2_COLUMNS (m_type == VIC4567_PAL ? VIC6569_COLUMNS : VIC6567_COLUMNS) +#define VIC2_FIRSTRASTERLINE (m_type == vic3_type::PAL ? VIC6569_FIRSTRASTERLINE : VIC6567_FIRSTRASTERLINE) +#define VIC2_COLUMNS (m_type == vic3_type::PAL ? VIC6569_COLUMNS : VIC6567_COLUMNS) #define VIC2_STARTVISIBLECOLUMNS ((VIC2_COLUMNS - VIC2_VISIBLECOLUMNS)/2) #define VIC3_BITPLANES_MASK (m_reg[0x32]) @@ -145,22 +145,22 @@ #define VIC3_BITPLANE_IADDR(x) (x & 1 ? VIC3_BITPLANE_IADDR_HELPER(x) + 0x10000 : VIC3_BITPLANE_IADDR_HELPER(x)) -const device_type VIC3 = device_creator; +DEFINE_DEVICE_TYPE(VIC3, vic3_device, "vic3", "CSG 4567 VIC-III") vic3_device::vic3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, VIC3, "4567 VIC III", tag, owner, clock, "vic3", __FILE__), - device_video_interface(mconfig, *this), - m_type(VIC4567_NTSC), - m_cpu(*this, finder_base::DUMMY_TAG), - m_dma_read_cb(*this), - m_dma_read_color_cb(*this), - m_interrupt_cb(*this), - m_port_changed_cb(*this), - m_lightpen_button_cb(*this), - m_lightpen_x_cb(*this), - m_lightpen_y_cb(*this), - m_c64_mem_r_cb(*this), - m_palette(*this, "palette") + : device_t(mconfig, VIC3, tag, owner, clock) + , device_video_interface(mconfig, *this) + , m_type(vic3_type::NTSC) + , m_cpu(*this, finder_base::DUMMY_TAG) + , m_dma_read_cb(*this) + , m_dma_read_color_cb(*this) + , m_interrupt_cb(*this) + , m_port_changed_cb(*this) + , m_lightpen_button_cb(*this) + , m_lightpen_x_cb(*this) + , m_lightpen_y_cb(*this) + , m_c64_mem_r_cb(*this) + , m_palette(*this, "palette") { } @@ -1971,7 +1971,7 @@ void vic3_device::raster_interrupt_gen() { m_rows = new_rows; m_columns = new_columns; - if (m_type == VIC4567_PAL) + if (m_type == vic3_type::PAL) m_screen->set_visible_area( VIC2_STARTVISIBLECOLUMNS + 32, VIC2_STARTVISIBLECOLUMNS + 32 + m_columns + 16 - 1, @@ -1990,7 +1990,7 @@ void vic3_device::raster_interrupt_gen() } else { - if (m_type == VIC4567_PAL) + if (m_type == vic3_type::PAL) { if (m_on) vic2_drawlines(m_lastline, m_lines, VIC2_STARTVISIBLECOLUMNS + 32, VIC2_STARTVISIBLECOLUMNS + 32 + m_columns + 16 - 1); @@ -2023,7 +2023,7 @@ void vic3_device::raster_interrupt_gen() if (m_on) if ((m_rasterline >= VIC2_FIRSTRASTERLINE) && (m_rasterline < (VIC2_FIRSTRASTERLINE + VIC2_VISIBLELINES))) { - if (m_type == VIC4567_PAL) + if (m_type == vic3_type::PAL) { if (m_on) vic2_drawlines(m_rasterline - 1, m_rasterline, VIC2_STARTVISIBLECOLUMNS + 32, VIC2_STARTVISIBLECOLUMNS + 32 + m_columns + 16 - 1); diff --git a/src/devices/video/vic4567.h b/src/devices/video/vic4567.h index 53320386365..3b787908841 100644 --- a/src/devices/video/vic4567.h +++ b/src/devices/video/vic4567.h @@ -6,35 +6,16 @@ * ****************************************************************************/ -#ifndef __VIC4567_H__ -#define __VIC4567_H__ +#ifndef MAME_VIDEO_VIC4567_H +#define MAME_VIDEO_VIC4567_H + +#pragma once /*************************************************************************** TYPE DEFINITIONS ***************************************************************************/ -enum vic3_type -{ - VIC4567_NTSC, - VIC4567_PAL -}; - -#define SPRITE_BASE_X_SIZE 24 -#define SPRITE_BASE_Y_SIZE 21 - -struct vic3_sprite -{ - int x, y; - - int repeat; /* expand, line once drawn */ - int line; /* 0 not painting, else painting */ - - /* buffer for currently painted line */ - int paintedline[8]; - uint8_t bitmap[8][SPRITE_BASE_X_SIZE * 2 / 8 + 1 /*for simpler sprite collision detection*/]; -}; - /*************************************************************************** CONSTANTS @@ -124,19 +105,20 @@ class vic3_device : public device_t, public device_video_interface { public: + enum class vic3_type { NTSC, PAL }; + vic3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~vic3_device() {} static void static_set_cpu_tag(device_t &device, const char *tag) { downcast(device).m_cpu.set_tag(tag); } static void set_vic3_type(device_t &device, vic3_type type) { downcast(device).m_type = type; } - template static devcb_base &set_dma_read_callback(device_t &device, _Object object) { return downcast(device).m_dma_read_cb.set_callback(object); } - template static devcb_base &set_dma_read_color_callback(device_t &device, _Object object) { return downcast(device).m_dma_read_color_cb.set_callback(object); } - template static devcb_base &set_interrupt_callback(device_t &device, _Object object) { return downcast(device).m_interrupt_cb.set_callback(object); } - template static devcb_base &set_port_changed_callback(device_t &device, _Object object) { return downcast(device).m_port_changed_cb.set_callback(object); } - template static devcb_base &set_lightpen_button_callback(device_t &device, _Object object) { return downcast(device).m_lightpen_button_cb.set_callback(object); } - template static devcb_base &set_lightpen_x_callback(device_t &device, _Object object) { return downcast(device).m_lightpen_x_cb.set_callback(object); } - template static devcb_base &set_lightpen_y_callback(device_t &device, _Object object) { return downcast(device).m_lightpen_y_cb.set_callback(object); } - template static devcb_base &set_c64_mem_r_callback(device_t &device, _Object object) { return downcast(device).m_c64_mem_r_cb.set_callback(object); } + template static devcb_base &set_dma_read_callback(device_t &device, Object &&cb) { return downcast(device).m_dma_read_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_dma_read_color_callback(device_t &device, Object &&cb) { return downcast(device).m_dma_read_color_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_interrupt_callback(device_t &device, Object &&cb) { return downcast(device).m_interrupt_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_port_changed_callback(device_t &device, Object &&cb) { return downcast(device).m_port_changed_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_lightpen_button_callback(device_t &device, Object &&cb) { return downcast(device).m_lightpen_button_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_lightpen_x_callback(device_t &device, Object &&cb) { return downcast(device).m_lightpen_x_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_lightpen_y_callback(device_t &device, Object &&cb) { return downcast(device).m_lightpen_y_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_c64_mem_r_callback(device_t &device, Object &&cb) { return downcast(device).m_c64_mem_r_cb.set_callback(std::forward(cb)); } DECLARE_WRITE8_MEMBER(port_w); DECLARE_WRITE8_MEMBER(palette_w); @@ -150,9 +132,24 @@ protected: virtual void device_start() override; virtual void device_reset() override; virtual machine_config_constructor device_mconfig_additions() const override; + private: - // internal state + static constexpr unsigned SPRITE_BASE_X_SIZE = 24; + static constexpr unsigned SPRITE_BASE_Y_SIZE = 21; + + struct vic3_sprite + { + int x, y; + int repeat; /* expand, line once drawn */ + int line; /* 0 not painting, else painting */ + + /* buffer for currently painted line */ + int paintedline[8]; + uint8_t bitmap[8][SPRITE_BASE_X_SIZE * 2 / 8 + 1 /*for simpler sprite collision detection*/]; + }; + + // internal state inline int getforeground(int y, int x); inline int getforeground16(int y, int x); void set_interrupt(int mask); @@ -236,38 +233,37 @@ private: required_device m_palette; }; -extern const device_type VIC3; - +DECLARE_DEVICE_TYPE(VIC3, vic3_device) -#define MCFG_VIC3_CPU(_tag) \ - vic3_device::static_set_cpu_tag(*device, "^" _tag); -#define MCFG_VIC3_TYPE(_type) \ - vic3_device::set_vic3_type(*device, _type); +#define MCFG_VIC3_CPU(tag) \ + vic3_device::static_set_cpu_tag(*device, ("^" tag)); -#define MCFG_VIC3_DMA_READ_CB(_devcb) \ - devcb = &vic3_device::set_dma_read_callback(*device, DEVCB_##_devcb); +#define MCFG_VIC3_TYPE(type) \ + vic3_device::set_vic3_type(*device, (vic3_device::vic3_type::type)); -#define MCFG_VIC3_DMA_READ_COLOR_CB(_devcb) \ - devcb = &vic3_device::set_dma_read_color_callback(*device, DEVCB_##_devcb); +#define MCFG_VIC3_DMA_READ_CB(cb) \ + devcb = &vic3_device::set_dma_read_callback(*device, (DEVCB_##cb)); -#define MCFG_VIC3_INTERRUPT_CB(_devcb) \ - devcb = &vic3_device::set_interrupt_callback(*device, DEVCB_##_devcb); +#define MCFG_VIC3_DMA_READ_COLOR_CB(cb) \ + devcb = &vic3_device::set_dma_read_color_callback(*device, (DEVCB_##cb)); -#define MCFG_VIC3_PORT_CHANGED_CB(_devcb) \ - devcb = &vic3_device::set_port_changed_callback(*device, DEVCB_##_devcb); +#define MCFG_VIC3_INTERRUPT_CB(cb) \ + devcb = &vic3_device::set_interrupt_callback(*device, (DEVCB_##cb)); -#define MCFG_VIC3_LIGHTPEN_BUTTON_CB(_devcb) \ - devcb = &vic3_device::set_lightpen_button_callback(*device, DEVCB_##_devcb); +#define MCFG_VIC3_PORT_CHANGED_CB(cb) \ + devcb = &vic3_device::set_port_changed_callback(*device, (DEVCB_##cb)); -#define MCFG_VIC3_LIGHTPEN_X_CB(_devcb) \ - devcb = &vic3_device::set_lightpen_x_callback(*device, DEVCB_##_devcb); +#define MCFG_VIC3_LIGHTPEN_BUTTON_CB(cb) \ + devcb = &vic3_device::set_lightpen_button_callback(*device, (DEVCB_##cb)); -#define MCFG_VIC3_LIGHTPEN_Y_CB(_devcb) \ - devcb = &vic3_device::set_lightpen_y_callback(*device, DEVCB_##_devcb); +#define MCFG_VIC3_LIGHTPEN_X_CB(cb) \ + devcb = &vic3_device::set_lightpen_x_callback(*device, (DEVCB_##cb)); -#define MCFG_VIC3_C64_MEM_R_CB(_devcb) \ - devcb = &vic3_device::set_c64_mem_r_callback(*device, DEVCB_##_devcb); +#define MCFG_VIC3_LIGHTPEN_Y_CB(cb) \ + devcb = &vic3_device::set_lightpen_y_callback(*device, (DEVCB_##cb)); +#define MCFG_VIC3_C64_MEM_R_CB(cb) \ + devcb = &vic3_device::set_c64_mem_r_callback(*device, (DEVCB_##cb)); -#endif /* __VIC4567_H__ */ +#endif // MAME_VIDEO_VIC4567_H diff --git a/src/devices/video/vooddefs.h b/src/devices/video/vooddefs.h index 810fdc557e1..a9e653dc93d 100644 --- a/src/devices/video/vooddefs.h +++ b/src/devices/video/vooddefs.h @@ -8,12 +8,12 @@ ***************************************************************************/ -#ifndef MAME_DEVICES_VIDEO_VOODDEFS_H -#define MAME_DEVICES_VIDEO_VOODDEFS_H +#ifndef MAME_VIDEO_VOODDEFS_H +#define MAME_VIDEO_VOODDEFS_H #pragma once -#include "video/rgbutil.h" +#include "voodoo.h" @@ -23,8 +23,7 @@ * *************************************/ -struct voodoo_state; -struct poly_extra_data; +typedef voodoo_reg rgb_union; @@ -36,88 +35,53 @@ struct poly_extra_data; * *************************************/ -static inline void fifo_reset(fifo_state *f) +inline void voodoo_device::fifo_state::add(uint32_t data) { - f->in = f->out = 0; -} - - -static inline void fifo_add(fifo_state *f, uint32_t data) -{ - int32_t next_in; - /* compute the value of 'in' after we add this item */ - next_in = f->in + 1; - if (next_in >= f->size) + int32_t next_in = in + 1; + if (next_in >= size) next_in = 0; /* as long as it's not equal to the output pointer, we can do it */ - if (next_in != f->out) + if (next_in != out) { - f->base[f->in] = data; - f->in = next_in; + base[in] = data; + in = next_in; } } -static inline uint32_t fifo_remove(fifo_state *f) +inline uint32_t voodoo_device::fifo_state::remove() { uint32_t data = 0xffffffff; /* as long as we have data, we can do it */ - if (f->out != f->in) + if (out != in) { int32_t next_out; /* fetch the data */ - data = f->base[f->out]; + data = base[out]; /* advance the output pointer */ - next_out = f->out + 1; - if (next_out >= f->size) + next_out = out + 1; + if (next_out >= size) next_out = 0; - f->out = next_out; + out = next_out; } return data; } -static inline uint32_t fifo_peek(fifo_state *f) -{ - return f->base[f->out]; -} - - -static inline int fifo_empty(fifo_state *f) -{ - return (f->in == f->out); -} - - -static inline int fifo_full(fifo_state *f) -{ - return (f->in + 1 == f->out || (f->in == f->size - 1 && f->out == 0)); -} - - -static inline int32_t fifo_items(fifo_state *f) +inline int32_t voodoo_device::fifo_state::items() const { - int32_t items = f->in - f->out; + int32_t items = in - out; if (items < 0) - items += f->size; + items += size; return items; } -static inline int32_t fifo_space(fifo_state *f) -{ - int32_t items = f->in - f->out; - if (items < 0) - items += f->size; - return f->size - 1 - items; -} - - /************************************* * @@ -333,24 +297,24 @@ static inline uint32_t normalize_tex_mode(uint32_t eff_tex_mode) } -static inline uint32_t compute_raster_hash(const raster_info *info) +inline uint32_t voodoo_device::raster_info::compute_hash() const { - uint32_t hash; + uint32_t result; /* make a hash */ - hash = info->eff_color_path; - hash = (hash << 1) | (hash >> 31); - hash ^= info->eff_fbz_mode; - hash = (hash << 1) | (hash >> 31); - hash ^= info->eff_alpha_mode; - hash = (hash << 1) | (hash >> 31); - hash ^= info->eff_fog_mode; - hash = (hash << 1) | (hash >> 31); - hash ^= info->eff_tex_mode_0; - hash = (hash << 1) | (hash >> 31); - hash ^= info->eff_tex_mode_1; - - return hash % RASTER_HASH_SIZE; + result = eff_color_path; + result = (result << 1) | (result >> 31); + result ^= eff_fbz_mode; + result = (result << 1) | (result >> 31); + result ^= eff_alpha_mode; + result = (result << 1) | (result >> 31); + result ^= eff_fog_mode; + result = (result << 1) | (result >> 31); + result ^= eff_tex_mode_0; + result = (result << 1) | (result >> 31); + result ^= eff_tex_mode_1; + + return result % RASTER_HASH_SIZE; } @@ -637,7 +601,7 @@ do } \ while (0) -static inline bool ATTR_FORCE_INLINE chromaKeyTest(voodoo_device *vd, stats_block *stats, uint32_t fbzModeReg, rgbaint_t rgbaIntColor) +inline bool ATTR_FORCE_INLINE voodoo_device::chromaKeyTest(voodoo_device *vd, stats_block *stats, uint32_t fbzModeReg, rgbaint_t rgbaIntColor) { if (FBZMODE_ENABLE_CHROMAKEY(fbzModeReg)) { @@ -726,7 +690,7 @@ do } \ while (0) -static inline bool alphaMaskTest(stats_block *stats, uint32_t fbzModeReg, uint8_t alpha) +inline bool voodoo_device::alphaMaskTest(stats_block *stats, uint32_t fbzModeReg, uint8_t alpha) { if (FBZMODE_ENABLE_ALPHA_MASK(fbzModeReg)) { @@ -812,7 +776,7 @@ do } \ while (0) -static inline bool ATTR_FORCE_INLINE alphaTest(voodoo_device *vd, stats_block *stats, uint32_t alphaModeReg, uint8_t alpha) +inline bool ATTR_FORCE_INLINE voodoo_device::alphaTest(voodoo_device *vd, stats_block *stats, uint32_t alphaModeReg, uint8_t alpha) { if (ALPHAMODE_ALPHATEST(alphaModeReg)) { @@ -2002,7 +1966,7 @@ do } \ while (0) -static inline bool ATTR_FORCE_INLINE depthTest(uint16_t zaColorReg, stats_block *stats, int32_t destDepth, uint32_t fbzModeReg, int32_t biasdepth) +inline bool ATTR_FORCE_INLINE voodoo_device::depthTest(uint16_t zaColorReg, stats_block *stats, int32_t destDepth, uint32_t fbzModeReg, int32_t biasdepth) { /* handle depth buffer testing */ if (FBZMODE_ENABLE_DEPTHBUF(fbzModeReg)) @@ -2413,7 +2377,7 @@ do } \ while (0) -static inline bool ATTR_FORCE_INLINE combineColor(voodoo_device *vd, stats_block *STATS, uint32_t FBZCOLORPATH, uint32_t FBZMODE, uint32_t ALPHAMODE, +inline bool ATTR_FORCE_INLINE voodoo_device::combineColor(voodoo_device *vd, stats_block *STATS, uint32_t FBZCOLORPATH, uint32_t FBZMODE, uint32_t ALPHAMODE, rgbaint_t TEXELARGB, int32_t ITERZ, int64_t ITERW, rgbaint_t &srcColor) { rgbaint_t c_other; @@ -2767,9 +2731,9 @@ void voodoo_device::raster_##name(void *destbase, int32_t y, const poly_extent * if (TMUS >= 2 && vd->tmu[1].lodmin < (8 << 8)) { \ int32_t tmp; \ const rgbaint_t texelZero(0); \ - texel = genTexture(&vd->tmu[1], x, dither4, TEXMODE1, vd->tmu[1].lookup, extra->lodbase1, \ + texel = vd->tmu[1].genTexture(x, dither4, TEXMODE1, vd->tmu[1].lookup, extra->lodbase1, \ iters1, itert1, iterw1, tmp); \ - texel = combineTexture(&vd->tmu[1], TEXMODE1, texel, texelZero, tmp); \ + texel = vd->tmu[1].combineTexture(TEXMODE1, texel, texelZero, tmp); \ } \ /* run the texture pipeline on TMU0 to produce a final */ \ /* result in texel */ \ @@ -2780,9 +2744,9 @@ void voodoo_device::raster_##name(void *destbase, int32_t y, const poly_extent * { \ int32_t lod0; \ rgbaint_t texelT0; \ - texelT0 = genTexture(&vd->tmu[0], x, dither4, TEXMODE0, vd->tmu[0].lookup, extra->lodbase0, \ + texelT0 = vd->tmu[0].genTexture(x, dither4, TEXMODE0, vd->tmu[0].lookup, extra->lodbase0, \ iters0, itert0, iterw0, lod0); \ - texel = combineTexture(&vd->tmu[0], TEXMODE0, texelT0, texel, lod0); \ + texel = vd->tmu[0].combineTexture(TEXMODE0, texelT0, texel, lod0); \ } \ else \ { \ @@ -2853,7 +2817,7 @@ static inline void ATTR_FORCE_INLINE multi_reciplog(int64_t valueA, int64_t valu } -static inline rgbaint_t ATTR_FORCE_INLINE genTexture(tmu_state *TT, int32_t x, const uint8_t *dither4, const uint32_t TEXMODE, rgb_t *LOOKUP, int32_t LODBASE, int64_t ITERS, int64_t ITERT, int64_t ITERW, int32_t &lod) +inline rgbaint_t ATTR_FORCE_INLINE voodoo_device::tmu_state::genTexture(int32_t x, const uint8_t *dither4, const uint32_t TEXMODE, rgb_t *LOOKUP, int32_t LODBASE, int64_t ITERS, int64_t ITERT, int64_t ITERW, int32_t &lod) { rgbaint_t result; int32_t s, t, ilod; @@ -2885,29 +2849,29 @@ static inline rgbaint_t ATTR_FORCE_INLINE genTexture(tmu_state *TT, int32_t x, c } /* clamp the LOD */ - lod += (TT)->lodbias; + lod += lodbias; if (TEXMODE_ENABLE_LOD_DITHER(TEXMODE)) lod += dither4[x&3] << 4; - if (lod < (TT)->lodmin) - lod = (TT)->lodmin; - else if (lod > (TT)->lodmax) - lod = (TT)->lodmax; + if (lod < lodmin) + lod = lodmin; + else if (lod > lodmax) + lod = lodmax; /* now the LOD is in range; if we don't own this LOD, take the next one */ ilod = lod >> 8; - if (!(((TT)->lodmask >> ilod) & 1)) + if (!((lodmask >> ilod) & 1)) ilod++; /* fetch the texture base */ - uint32_t texbase = (TT)->lodoffset[ilod]; + uint32_t texbase = lodoffset[ilod]; /* compute the maximum s and t values at this LOD */ - int32_t smax = (TT)->wmask >> ilod; - int32_t tmax = (TT)->hmask >> ilod; + int32_t smax = wmask >> ilod; + int32_t tmax = hmask >> ilod; /* determine whether we are point-sampled or bilinear */ - if ((lod == (TT)->lodmin && !TEXMODE_MAGNIFICATION_FILTER(TEXMODE)) || - (lod != (TT)->lodmin && !TEXMODE_MINIFICATION_FILTER(TEXMODE))) + if ((lod == lodmin && !TEXMODE_MAGNIFICATION_FILTER(TEXMODE)) || + (lod != lodmin && !TEXMODE_MINIFICATION_FILTER(TEXMODE))) { /* point sampled */ @@ -2929,12 +2893,12 @@ static inline rgbaint_t ATTR_FORCE_INLINE genTexture(tmu_state *TT, int32_t x, c /* fetch texel data */ if (TEXMODE_FORMAT(TEXMODE) < 8) { - texel0 = *(uint8_t *)&(TT)->ram[(texbase + t + s) & (TT)->mask]; + texel0 = *(uint8_t *)&ram[(texbase + t + s) & mask]; result.set((LOOKUP)[texel0]); } else { - texel0 = *(uint16_t *)&(TT)->ram[(texbase + 2*(t + s)) & (TT)->mask]; + texel0 = *(uint16_t *)&ram[(texbase + 2*(t + s)) & mask]; if (TEXMODE_FORMAT(TEXMODE) >= 10 && TEXMODE_FORMAT(TEXMODE) <= 12) result.set((LOOKUP)[texel0]); else @@ -2959,8 +2923,8 @@ static inline rgbaint_t ATTR_FORCE_INLINE genTexture(tmu_state *TT, int32_t x, c t -= 0x80; /* extract the fractions */ - sfrac = s & (TT)->bilinear_mask; - tfrac = t & (TT)->bilinear_mask; + sfrac = s & bilinear_mask; + tfrac = t & bilinear_mask; /* now toss the rest */ s >>= 8; @@ -3006,10 +2970,10 @@ static inline rgbaint_t ATTR_FORCE_INLINE genTexture(tmu_state *TT, int32_t x, c /* fetch texel data */ if (TEXMODE_FORMAT(TEXMODE) < 8) { - texel0 = *(uint8_t *)&(TT)->ram[(texbase + t + s)]; - texel1 = *(uint8_t *)&(TT)->ram[(texbase + t + s1)]; - texel2 = *(uint8_t *)&(TT)->ram[(texbase + t1 + s)]; - texel3 = *(uint8_t *)&(TT)->ram[(texbase + t1 + s1)]; + texel0 = *(uint8_t *)&ram[(texbase + t + s)]; + texel1 = *(uint8_t *)&ram[(texbase + t + s1)]; + texel2 = *(uint8_t *)&ram[(texbase + t1 + s)]; + texel3 = *(uint8_t *)&ram[(texbase + t1 + s1)]; texel0 = (LOOKUP)[texel0]; texel1 = (LOOKUP)[texel1]; texel2 = (LOOKUP)[texel2]; @@ -3017,10 +2981,10 @@ static inline rgbaint_t ATTR_FORCE_INLINE genTexture(tmu_state *TT, int32_t x, c } else { - texel0 = *(uint16_t *)&(TT)->ram[(texbase + 2*(t + s))]; - texel1 = *(uint16_t *)&(TT)->ram[(texbase + 2*(t + s1))]; - texel2 = *(uint16_t *)&(TT)->ram[(texbase + 2*(t1 + s))]; - texel3 = *(uint16_t *)&(TT)->ram[(texbase + 2*(t1 + s1))]; + texel0 = *(uint16_t *)&ram[(texbase + 2*(t + s))]; + texel1 = *(uint16_t *)&ram[(texbase + 2*(t + s1))]; + texel2 = *(uint16_t *)&ram[(texbase + 2*(t1 + s))]; + texel3 = *(uint16_t *)&ram[(texbase + 2*(t1 + s1))]; if (TEXMODE_FORMAT(TEXMODE) >= 10 && TEXMODE_FORMAT(TEXMODE) <= 12) { texel0 = (LOOKUP)[texel0]; @@ -3044,7 +3008,7 @@ static inline rgbaint_t ATTR_FORCE_INLINE genTexture(tmu_state *TT, int32_t x, c return result; } -static inline rgbaint_t ATTR_FORCE_INLINE combineTexture(tmu_state *TT, const uint32_t TEXMODE, rgbaint_t c_local, rgbaint_t c_other, int32_t lod) +inline rgbaint_t ATTR_FORCE_INLINE voodoo_device::tmu_state::combineTexture(const uint32_t TEXMODE, rgbaint_t c_local, rgbaint_t c_other, int32_t lod) { int32_t a_other = c_other.get_a(); int32_t a_local = c_local.get_a(); @@ -3093,13 +3057,13 @@ static inline rgbaint_t ATTR_FORCE_INLINE combineTexture(tmu_state *TT, const ui break; case 4: /* LOD (detail factor) */ - if ((TT)->detailbias <= lod) + if (detailbias <= lod) c_local.and_imm_rgba(-1, 0, 0, 0); else { - tmp = ((((TT)->detailbias - lod) << (TT)->detailscale) >> 8); - if (tmp > (TT)->detailmax) - tmp = (TT)->detailmax; + tmp = (((detailbias - lod) << detailscale) >> 8); + if (tmp > detailmax) + tmp = detailmax; c_local.set(a_local, tmp, tmp, tmp); } break; @@ -3129,13 +3093,13 @@ static inline rgbaint_t ATTR_FORCE_INLINE combineTexture(tmu_state *TT, const ui break; case 4: /* LOD (detail factor) */ - if ((TT)->detailbias <= lod) + if (detailbias <= lod) c_local.set_a(0); else { - tmp = ((((TT)->detailbias - lod) << (TT)->detailscale) >> 8); - if (tmp > (TT)->detailmax) - tmp = (TT)->detailmax; + tmp = (((detailbias - lod) << detailscale) >> 8); + if (tmp > detailmax) + tmp = detailmax; c_local.set_a(tmp); } break; @@ -3201,4 +3165,4 @@ static inline rgbaint_t ATTR_FORCE_INLINE combineTexture(tmu_state *TT, const ui return result; } -#endif // MAME_DEVICES_VIDEO_VOODDEFS_H +#endif // MAME_VIDEO_VOODDEFS_H diff --git a/src/devices/video/voodoo.cpp b/src/devices/video/voodoo.cpp index e46dfd15db1..6e031dd71ac 100644 --- a/src/devices/video/voodoo.cpp +++ b/src/devices/video/voodoo.cpp @@ -177,6 +177,43 @@ bits(7:4) and bit(24)), X, and Y: #define EAT_CYCLES (1) +struct voodoo_device::poly_extra_data +{ + voodoo_device * device; + raster_info * info; /* pointer to rasterizer information */ + + int16_t ax, ay; /* vertex A x,y (12.4) */ + int32_t startr, startg, startb, starta; /* starting R,G,B,A (12.12) */ + int32_t startz; /* starting Z (20.12) */ + int64_t startw; /* starting W (16.32) */ + int32_t drdx, dgdx, dbdx, dadx; /* delta R,G,B,A per X */ + int32_t dzdx; /* delta Z per X */ + int64_t dwdx; /* delta W per X */ + int32_t drdy, dgdy, dbdy, dady; /* delta R,G,B,A per Y */ + int32_t dzdy; /* delta Z per Y */ + int64_t dwdy; /* delta W per Y */ + + int64_t starts0, startt0; /* starting S,T (14.18) */ + int64_t startw0; /* starting W (2.30) */ + int64_t ds0dx, dt0dx; /* delta S,T per X */ + int64_t dw0dx; /* delta W per X */ + int64_t ds0dy, dt0dy; /* delta S,T per Y */ + int64_t dw0dy; /* delta W per Y */ + int32_t lodbase0; /* used during rasterization */ + + int64_t starts1, startt1; /* starting S,T (14.18) */ + int64_t startw1; /* starting W (2.30) */ + int64_t ds1dx, dt1dx; /* delta S,T per X */ + int64_t dw1dx; /* delta W per X */ + int64_t ds1dy, dt1dy; /* delta S,T per Y */ + int64_t dw1dy; /* delta W per Y */ + int32_t lodbase1; /* used during rasterization */ + + uint16_t dither[16]; /* dither matrix, for fastfill */ +}; + + + /************************************* * * Statics @@ -220,7 +257,7 @@ uint32_t voodoo_reciplog[(2 << RECIPLOG_LOOKUP_BITS) + 2]; #define RASTERIZER_ENTRY(fbzcp, alpha, fog, fbz, tex0, tex1) \ { nullptr, voodoo_device::raster_##fbzcp##_##alpha##_##fog##_##fbz##_##tex0##_##tex1, false, 0, 0, 0, fbzcp, alpha, fog, fbz, tex0, tex1 }, -static const raster_info predef_raster_table[] = +const voodoo_device::raster_info voodoo_device::predef_raster_table[] = { #include "voodoo_rast.hxx" { nullptr } @@ -438,7 +475,7 @@ void voodoo_device::init_fbi(voodoo_device* vd,fbi_state *f, void *memory, int f } /* allocate a VBLANK timer */ - f->vblank_timer = vd->device->machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(voodoo_device::vblank_callback),vd), vd); + f->vblank_timer = vd->machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(voodoo_device::vblank_callback),vd), vd); f->vblank = false; /* initialize the memory FIFO */ @@ -450,47 +487,45 @@ void voodoo_device::init_fbi(voodoo_device* vd,fbi_state *f, void *memory, int f } -void voodoo_device::init_tmu_shared(tmu_shared_state *s) +void voodoo_device::tmu_shared_state::init() { - int val; - /* build static 8-bit texel tables */ - for (val = 0; val < 256; val++) + for (int val = 0; val < 256; val++) { int r, g, b, a; /* 8-bit RGB (3-3-2) */ EXTRACT_332_TO_888(val, r, g, b); - s->rgb332[val] = rgb_t(0xff, r, g, b); + rgb332[val] = rgb_t(0xff, r, g, b); /* 8-bit alpha */ - s->alpha8[val] = rgb_t(val, val, val, val); + alpha8[val] = rgb_t(val, val, val, val); /* 8-bit intensity */ - s->int8[val] = rgb_t(0xff, val, val, val); + int8[val] = rgb_t(0xff, val, val, val); /* 8-bit alpha, intensity */ a = ((val >> 0) & 0xf0) | ((val >> 4) & 0x0f); r = ((val << 4) & 0xf0) | ((val << 0) & 0x0f); - s->ai44[val] = rgb_t(a, r, r, r); + ai44[val] = rgb_t(a, r, r, r); } /* build static 16-bit texel tables */ - for (val = 0; val < 65536; val++) + for (int val = 0; val < 65536; val++) { int r, g, b, a; /* table 10 = 16-bit RGB (5-6-5) */ EXTRACT_565_TO_888(val, r, g, b); - s->rgb565[val] = rgb_t(0xff, r, g, b); + rgb565[val] = rgb_t(0xff, r, g, b); /* table 11 = 16 ARGB (1-5-5-5) */ EXTRACT_1555_TO_8888(val, a, r, g, b); - s->argb1555[val] = rgb_t(a, r, g, b); + argb1555[val] = rgb_t(a, r, g, b); /* table 12 = 16-bit ARGB (4-4-4-4) */ EXTRACT_4444_TO_8888(val, a, r, g, b); - s->argb4444[val] = rgb_t(a, r, g, b); + argb4444[val] = rgb_t(a, r, g, b); } } @@ -565,7 +600,7 @@ void voodoo_device::voodoo_postload(voodoo_device *vd) } -static void init_save_state(voodoo_device *vd) +void voodoo_device::init_save_state(voodoo_device *vd) { int index, subindex; @@ -732,42 +767,40 @@ static void init_save_state(voodoo_device *vd) * *************************************/ -static void accumulate_statistics(voodoo_device *vd, const stats_block *stats) +void voodoo_device::accumulate_statistics(const stats_block &block) { /* apply internal voodoo statistics */ - vd->reg[fbiPixelsIn].u += stats->pixels_in; - vd->reg[fbiPixelsOut].u += stats->pixels_out; - vd->reg[fbiChromaFail].u += stats->chroma_fail; - vd->reg[fbiZfuncFail].u += stats->zfunc_fail; - vd->reg[fbiAfuncFail].u += stats->afunc_fail; + reg[fbiPixelsIn].u += block.pixels_in; + reg[fbiPixelsOut].u += block.pixels_out; + reg[fbiChromaFail].u += block.chroma_fail; + reg[fbiZfuncFail].u += block.zfunc_fail; + reg[fbiAfuncFail].u += block.afunc_fail; /* apply emulation statistics */ - vd->stats.total_pixels_in += stats->pixels_in; - vd->stats.total_pixels_out += stats->pixels_out; - vd->stats.total_chroma_fail += stats->chroma_fail; - vd->stats.total_zfunc_fail += stats->zfunc_fail; - vd->stats.total_afunc_fail += stats->afunc_fail; - vd->stats.total_clipped += stats->clip_fail; - vd->stats.total_stippled += stats->stipple_count; + stats.total_pixels_in += block.pixels_in; + stats.total_pixels_out += block.pixels_out; + stats.total_chroma_fail += block.chroma_fail; + stats.total_zfunc_fail += block.zfunc_fail; + stats.total_afunc_fail += block.afunc_fail; + stats.total_clipped += block.clip_fail; + stats.total_stippled += block.stipple_count; } -static void update_statistics(voodoo_device *vd, int accumulate) +void voodoo_device::update_statistics(bool accumulate) { - int threadnum; - /* accumulate/reset statistics from all units */ - for (threadnum = 0; threadnum < WORK_MAX_THREADS; threadnum++) + for (int threadnum = 0; threadnum < WORK_MAX_THREADS; threadnum++) { if (accumulate) - accumulate_statistics(vd, &vd->thread_stats[threadnum]); - memset(&vd->thread_stats[threadnum], 0, sizeof(vd->thread_stats[threadnum])); + accumulate_statistics(thread_stats[threadnum]); + memset(&thread_stats[threadnum], 0, sizeof(thread_stats[threadnum])); } /* accumulate/reset statistics from the LFB */ if (accumulate) - accumulate_statistics(vd, &vd->fbi.lfb_stats); - memset(&vd->fbi.lfb_stats, 0, sizeof(vd->fbi.lfb_stats)); + accumulate_statistics(fbi.lfb_stats); + memset(&fbi.lfb_stats, 0, sizeof(fbi.lfb_stats)); } @@ -782,7 +815,7 @@ void voodoo_device::swap_buffers(voodoo_device *vd) { int count; - if (LOG_VBLANK_SWAP) vd->device->logerror("--- swap_buffers @ %d\n", vd->screen->vpos()); + if (LOG_VBLANK_SWAP) vd->logerror("--- swap_buffers @ %d\n", vd->screen->vpos()); /* force a partial update */ vd->screen->update_partial(vd->screen->vpos()); @@ -823,13 +856,13 @@ void voodoo_device::swap_buffers(voodoo_device *vd) /* reset the last_op_time to now and start processing the next command */ if (vd->pci.op_pending) { - vd->pci.op_end_time = vd->device->machine().time(); + vd->pci.op_end_time = vd->machine().time(); flush_fifos(vd, vd->pci.op_end_time); } /* we may be able to unstall now */ if (vd->pci.stall_state != NOT_STALLED) - check_stalled_cpu(vd, vd->device->machine().time()); + check_stalled_cpu(vd, vd->machine().time()); /* periodically log rasterizer info */ vd->stats.swaps++; @@ -845,7 +878,7 @@ void voodoo_device::swap_buffers(voodoo_device *vd) int pixelcount; int i; - update_statistics(vd, true); + vd->update_statistics(true); pixelcount = vd->stats.total_pixels_out; statsptr += sprintf(statsptr, "Swap:%6d\n", vd->stats.swaps); @@ -904,7 +937,7 @@ static void adjust_vblank_timer(voodoo_device *vd) TIMER_CALLBACK_MEMBER( voodoo_device::vblank_off_callback ) { - if (LOG_VBLANK_SWAP) device->logerror("--- vblank end\n"); + if (LOG_VBLANK_SWAP) logerror("--- vblank end\n"); /* set internal state and call the client */ fbi.vblank = false; @@ -916,15 +949,15 @@ TIMER_CALLBACK_MEMBER( voodoo_device::vblank_off_callback ) { reg[intrCtrl].u |= 0x200; // VSYNC int (falling) active - if (!device->m_vblank.isnull()) - device->m_vblank(false); + if (!m_vblank.isnull()) + m_vblank(false); } } else { - if (!device->m_vblank.isnull()) - device->m_vblank(false); + if (!m_vblank.isnull()) + m_vblank(false); } /* go to the end of the next frame */ @@ -934,24 +967,24 @@ TIMER_CALLBACK_MEMBER( voodoo_device::vblank_off_callback ) TIMER_CALLBACK_MEMBER( voodoo_device::vblank_callback ) { - if (LOG_VBLANK_SWAP) device->logerror("--- vblank start\n"); + if (LOG_VBLANK_SWAP) logerror("--- vblank start\n"); /* flush the pipes */ if (pci.op_pending) { - if (LOG_VBLANK_SWAP) device->logerror("---- vblank flush begin\n"); + if (LOG_VBLANK_SWAP) logerror("---- vblank flush begin\n"); flush_fifos(this, machine().time()); - if (LOG_VBLANK_SWAP) device->logerror("---- vblank flush end\n"); + if (LOG_VBLANK_SWAP) logerror("---- vblank flush end\n"); } /* increment the count */ fbi.vblank_count++; if (fbi.vblank_count > 250) fbi.vblank_count = 250; - if (LOG_VBLANK_SWAP) device->logerror("---- vblank count = %d", fbi.vblank_count); + if (LOG_VBLANK_SWAP) logerror("---- vblank count = %d", fbi.vblank_count); if (fbi.vblank_swap_pending) - if (LOG_VBLANK_SWAP) device->logerror(" (target=%d)", fbi.vblank_swap); - if (LOG_VBLANK_SWAP) device->logerror("\n"); + if (LOG_VBLANK_SWAP) logerror(" (target=%d)", fbi.vblank_swap); + if (LOG_VBLANK_SWAP) logerror("\n"); /* if we're past the swap count, do the swap */ if (fbi.vblank_swap_pending && fbi.vblank_count >= fbi.vblank_swap) @@ -972,14 +1005,14 @@ TIMER_CALLBACK_MEMBER( voodoo_device::vblank_callback ) { reg[intrCtrl].u |= 0x100; // VSYNC int (rising) active - if (!device->m_vblank.isnull()) - device->m_vblank(true); + if (!m_vblank.isnull()) + m_vblank(true); } } else { - if (!device->m_vblank.isnull()) - device->m_vblank(true); + if (!m_vblank.isnull()) + m_vblank(true); } } @@ -991,23 +1024,23 @@ TIMER_CALLBACK_MEMBER( voodoo_device::vblank_callback ) * *************************************/ -static void reset_counters(voodoo_device *vd) +void voodoo_device::reset_counters() { - update_statistics(vd, false); - vd->reg[fbiPixelsIn].u = 0; - vd->reg[fbiChromaFail].u = 0; - vd->reg[fbiZfuncFail].u = 0; - vd->reg[fbiAfuncFail].u = 0; - vd->reg[fbiPixelsOut].u = 0; + update_statistics(false); + reg[fbiPixelsIn].u = 0; + reg[fbiChromaFail].u = 0; + reg[fbiZfuncFail].u = 0; + reg[fbiAfuncFail].u = 0; + reg[fbiPixelsOut].u = 0; } -void voodoo_device::soft_reset(voodoo_device *vd) +void voodoo_device::soft_reset() { - reset_counters(vd); - vd->reg[fbiTrianglesOut].u = 0; - fifo_reset(&vd->fbi.fifo); - fifo_reset(&vd->pci.fifo); + reset_counters(); + reg[fbiTrianglesOut].u = 0; + fbi.fifo.reset(); + pci.fifo.reset(); } @@ -1055,7 +1088,7 @@ void voodoo_device::recompute_video_memory(voodoo_device *vd) switch (memory_config) { case 3: /* reserved */ - vd->device->logerror("VOODOO.%d.ERROR:Unexpected memory configuration in recompute_video_memory!\n", vd->index); + vd->logerror("VOODOO.%d.ERROR:Unexpected memory configuration in recompute_video_memory!\n", vd->index); case 0: /* 2 color buffers, 1 aux buffer */ vd->fbi.rgboffs[2] = ~0; @@ -1106,7 +1139,7 @@ void voodoo_device::recompute_video_memory(voodoo_device *vd) } /* reset the FIFO */ - fifo_reset(&vd->fbi.fifo); + vd->fbi.fifo.reset(); /* reset our front/back buffers if they are out of range */ if (vd->fbi.rgboffs[2] == ~0) @@ -1126,24 +1159,24 @@ void voodoo_device::recompute_video_memory(voodoo_device *vd) * *************************************/ -static void ncc_table_write(ncc_table *n, offs_t regnum, uint32_t data) +void voodoo_device::tmu_state::ncc_table::write(offs_t regnum, uint32_t data) { /* I/Q entries reference the plaette if the high bit is set */ - if (regnum >= 4 && (data & 0x80000000) && n->palette) + if (regnum >= 4 && (data & 0x80000000) && palette) { - int index = ((data >> 23) & 0xfe) | (regnum & 1); + int const index = ((data >> 23) & 0xfe) | (regnum & 1); /* set the ARGB for this palette index */ - n->palette[index] = 0xff000000 | data; + palette[index] = 0xff000000 | data; /* if we have an ARGB palette as well, compute its value */ - if (n->palettea) + if (palettea) { int a = ((data >> 16) & 0xfc) | ((data >> 22) & 0x03); int r = ((data >> 10) & 0xfc) | ((data >> 16) & 0x03); int g = ((data >> 4) & 0xfc) | ((data >> 10) & 0x03); int b = ((data << 2) & 0xfc) | ((data >> 4) & 0x03); - n->palettea[index] = rgb_t(a, r, g, b); + palettea[index] = rgb_t(a, r, g, b); } /* this doesn't dirty the table or go to the registers, so bail */ @@ -1151,60 +1184,59 @@ static void ncc_table_write(ncc_table *n, offs_t regnum, uint32_t data) } /* if the register matches, don't update */ - if (data == n->reg[regnum].u) + if (data == reg[regnum].u) return; - n->reg[regnum].u = data; + reg[regnum].u = data; /* first four entries are packed Y values */ if (regnum < 4) { regnum *= 4; - n->y[regnum+0] = (data >> 0) & 0xff; - n->y[regnum+1] = (data >> 8) & 0xff; - n->y[regnum+2] = (data >> 16) & 0xff; - n->y[regnum+3] = (data >> 24) & 0xff; + y[regnum+0] = (data >> 0) & 0xff; + y[regnum+1] = (data >> 8) & 0xff; + y[regnum+2] = (data >> 16) & 0xff; + y[regnum+3] = (data >> 24) & 0xff; } /* the second four entries are the I RGB values */ else if (regnum < 8) { regnum &= 3; - n->ir[regnum] = (int32_t)(data << 5) >> 23; - n->ig[regnum] = (int32_t)(data << 14) >> 23; - n->ib[regnum] = (int32_t)(data << 23) >> 23; + ir[regnum] = (int32_t)(data << 5) >> 23; + ig[regnum] = (int32_t)(data << 14) >> 23; + ib[regnum] = (int32_t)(data << 23) >> 23; } /* the final four entries are the Q RGB values */ else { regnum &= 3; - n->qr[regnum] = (int32_t)(data << 5) >> 23; - n->qg[regnum] = (int32_t)(data << 14) >> 23; - n->qb[regnum] = (int32_t)(data << 23) >> 23; + qr[regnum] = (int32_t)(data << 5) >> 23; + qg[regnum] = (int32_t)(data << 14) >> 23; + qb[regnum] = (int32_t)(data << 23) >> 23; } /* mark the table dirty */ - n->dirty = true; + dirty = true; } -static void ncc_table_update(ncc_table *n) +void voodoo_device::tmu_state::ncc_table::update() { - int r, g, b, i; - /* generte all 256 possibilities */ - for (i = 0; i < 256; i++) + for (int i = 0; i < 256; i++) { int vi = (i >> 2) & 0x03; int vq = (i >> 0) & 0x03; /* start with the intensity */ - r = g = b = n->y[(i >> 4) & 0x0f]; + int r, g, b; + r = g = b = y[(i >> 4) & 0x0f]; /* add the coloring */ - r += n->ir[vi] + n->qr[vq]; - g += n->ig[vi] + n->qg[vq]; - b += n->ib[vi] + n->qb[vq]; + r += ir[vi] + qr[vq]; + g += ig[vi] + qg[vq]; + b += ib[vi] + qb[vq]; /* clamp */ CLAMP(r, 0, 255); @@ -1212,11 +1244,11 @@ static void ncc_table_update(ncc_table *n) CLAMP(b, 0, 255); /* fill in the table */ - n->texel[i] = rgb_t(0xff, r, g, b); + texel[i] = rgb_t(0xff, r, g, b); } /* no longer dirty */ - n->dirty = false; + dirty = false; } @@ -1227,13 +1259,13 @@ static void ncc_table_update(ncc_table *n) * *************************************/ -static void dacdata_w(dac_state *d, uint8_t regnum, uint8_t data) +void voodoo_device::dac_state::data_w(uint8_t regnum, uint8_t data) { - d->reg[regnum] = data; + reg[regnum] = data; } -static void dacdata_r(dac_state *d, uint8_t regnum) +void voodoo_device::dac_state::data_r(uint8_t regnum) { uint8_t result = 0xff; @@ -1242,7 +1274,7 @@ static void dacdata_r(dac_state *d, uint8_t regnum) { case 5: /* this is just to make startup happy */ - switch (d->reg[7]) + switch (reg[7]) { case 0x01: result = 0x55; break; case 0x07: result = 0x71; break; @@ -1251,12 +1283,12 @@ static void dacdata_r(dac_state *d, uint8_t regnum) break; default: - result = d->reg[regnum]; + result = reg[regnum]; break; } /* remember the read result; it is fetched elsewhere */ - d->read_result = result; + read_result = result; } @@ -1267,125 +1299,123 @@ static void dacdata_r(dac_state *d, uint8_t regnum) * *************************************/ -static void recompute_texture_params(tmu_state *t) +void voodoo_device::tmu_state::recompute_texture_params() { int bppscale; uint32_t base; int lod; /* extract LOD parameters */ - t->lodmin = TEXLOD_LODMIN(t->reg[tLOD].u) << 6; - t->lodmax = TEXLOD_LODMAX(t->reg[tLOD].u) << 6; - t->lodbias = (int8_t)(TEXLOD_LODBIAS(t->reg[tLOD].u) << 2) << 4; + lodmin = TEXLOD_LODMIN(reg[tLOD].u) << 6; + lodmax = TEXLOD_LODMAX(reg[tLOD].u) << 6; + lodbias = (int8_t)(TEXLOD_LODBIAS(reg[tLOD].u) << 2) << 4; /* determine which LODs are present */ - t->lodmask = 0x1ff; - if (TEXLOD_LOD_TSPLIT(t->reg[tLOD].u)) + lodmask = 0x1ff; + if (TEXLOD_LOD_TSPLIT(reg[tLOD].u)) { - if (!TEXLOD_LOD_ODD(t->reg[tLOD].u)) - t->lodmask = 0x155; + if (!TEXLOD_LOD_ODD(reg[tLOD].u)) + lodmask = 0x155; else - t->lodmask = 0x0aa; + lodmask = 0x0aa; } /* determine base texture width/height */ - t->wmask = t->hmask = 0xff; - if (TEXLOD_LOD_S_IS_WIDER(t->reg[tLOD].u)) - t->hmask >>= TEXLOD_LOD_ASPECT(t->reg[tLOD].u); + wmask = hmask = 0xff; + if (TEXLOD_LOD_S_IS_WIDER(reg[tLOD].u)) + hmask >>= TEXLOD_LOD_ASPECT(reg[tLOD].u); else - t->wmask >>= TEXLOD_LOD_ASPECT(t->reg[tLOD].u); + wmask >>= TEXLOD_LOD_ASPECT(reg[tLOD].u); /* determine the bpp of the texture */ - bppscale = TEXMODE_FORMAT(t->reg[textureMode].u) >> 3; + bppscale = TEXMODE_FORMAT(reg[textureMode].u) >> 3; /* start with the base of LOD 0 */ - if (t->texaddr_shift == 0 && (t->reg[texBaseAddr].u & 1)) + if (texaddr_shift == 0 && (reg[texBaseAddr].u & 1)) osd_printf_debug("Tiled texture\n"); - base = (t->reg[texBaseAddr].u & t->texaddr_mask) << t->texaddr_shift; - t->lodoffset[0] = base & t->mask; + base = (reg[texBaseAddr].u & texaddr_mask) << texaddr_shift; + lodoffset[0] = base & mask; /* LODs 1-3 are different depending on whether we are in multitex mode */ /* Several Voodoo 2 games leave the upper bits of TLOD == 0xff, meaning we think */ /* they want multitex mode when they really don't -- disable for now */ // Enable for Voodoo 3 or Viper breaks - VL. // Add check for upper nibble not equal to zero to fix funkball -- TG - if (TEXLOD_TMULTIBASEADDR(t->reg[tLOD].u) && (t->reg[tLOD].u >> 28) == 0) + if (TEXLOD_TMULTIBASEADDR(reg[tLOD].u) && (reg[tLOD].u >> 28) == 0) { - base = (t->reg[texBaseAddr_1].u & t->texaddr_mask) << t->texaddr_shift; - t->lodoffset[1] = base & t->mask; - base = (t->reg[texBaseAddr_2].u & t->texaddr_mask) << t->texaddr_shift; - t->lodoffset[2] = base & t->mask; - base = (t->reg[texBaseAddr_3_8].u & t->texaddr_mask) << t->texaddr_shift; - t->lodoffset[3] = base & t->mask; + base = (reg[texBaseAddr_1].u & texaddr_mask) << texaddr_shift; + lodoffset[1] = base & mask; + base = (reg[texBaseAddr_2].u & texaddr_mask) << texaddr_shift; + lodoffset[2] = base & mask; + base = (reg[texBaseAddr_3_8].u & texaddr_mask) << texaddr_shift; + lodoffset[3] = base & mask; } else { - if (t->lodmask & (1 << 0)) - base += (((t->wmask >> 0) + 1) * ((t->hmask >> 0) + 1)) << bppscale; - t->lodoffset[1] = base & t->mask; - if (t->lodmask & (1 << 1)) - base += (((t->wmask >> 1) + 1) * ((t->hmask >> 1) + 1)) << bppscale; - t->lodoffset[2] = base & t->mask; - if (t->lodmask & (1 << 2)) - base += (((t->wmask >> 2) + 1) * ((t->hmask >> 2) + 1)) << bppscale; - t->lodoffset[3] = base & t->mask; + if (lodmask & (1 << 0)) + base += (((wmask >> 0) + 1) * ((hmask >> 0) + 1)) << bppscale; + lodoffset[1] = base & mask; + if (lodmask & (1 << 1)) + base += (((wmask >> 1) + 1) * ((hmask >> 1) + 1)) << bppscale; + lodoffset[2] = base & mask; + if (lodmask & (1 << 2)) + base += (((wmask >> 2) + 1) * ((hmask >> 2) + 1)) << bppscale; + lodoffset[3] = base & mask; } /* remaining LODs make sense */ for (lod = 4; lod <= 8; lod++) { - if (t->lodmask & (1 << (lod - 1))) + if (lodmask & (1 << (lod - 1))) { - uint32_t size = ((t->wmask >> (lod - 1)) + 1) * ((t->hmask >> (lod - 1)) + 1); + uint32_t size = ((wmask >> (lod - 1)) + 1) * ((hmask >> (lod - 1)) + 1); if (size < 4) size = 4; base += size << bppscale; } - t->lodoffset[lod] = base & t->mask; + lodoffset[lod] = base & mask; } /* set the NCC lookup appropriately */ - t->texel[1] = t->texel[9] = t->ncc[TEXMODE_NCC_TABLE_SELECT(t->reg[textureMode].u)].texel; + texel[1] = texel[9] = ncc[TEXMODE_NCC_TABLE_SELECT(reg[textureMode].u)].texel; /* pick the lookup table */ - t->lookup = t->texel[TEXMODE_FORMAT(t->reg[textureMode].u)]; + lookup = texel[TEXMODE_FORMAT(reg[textureMode].u)]; /* compute the detail parameters */ - t->detailmax = TEXDETAIL_DETAIL_MAX(t->reg[tDetail].u); - t->detailbias = (int8_t)(TEXDETAIL_DETAIL_BIAS(t->reg[tDetail].u) << 2) << 6; - t->detailscale = TEXDETAIL_DETAIL_SCALE(t->reg[tDetail].u); + detailmax = TEXDETAIL_DETAIL_MAX(reg[tDetail].u); + detailbias = (int8_t)(TEXDETAIL_DETAIL_BIAS(reg[tDetail].u) << 2) << 6; + detailscale = TEXDETAIL_DETAIL_SCALE(reg[tDetail].u); /* ensure that the NCC tables are up to date */ - if ((TEXMODE_FORMAT(t->reg[textureMode].u) & 7) == 1) + if ((TEXMODE_FORMAT(reg[textureMode].u) & 7) == 1) { - ncc_table *n = &t->ncc[TEXMODE_NCC_TABLE_SELECT(t->reg[textureMode].u)]; - t->texel[1] = t->texel[9] = n->texel; - if (n->dirty) - ncc_table_update(n); + ncc_table &n = ncc[TEXMODE_NCC_TABLE_SELECT(reg[textureMode].u)]; + texel[1] = texel[9] = n.texel; + if (n.dirty) + n.update(); } /* no longer dirty */ - t->regdirty = false; + regdirty = false; /* check for separate RGBA filtering */ - if (TEXDETAIL_SEPARATE_RGBA_FILTER(t->reg[tDetail].u)) + if (TEXDETAIL_SEPARATE_RGBA_FILTER(reg[tDetail].u)) fatalerror("Separate RGBA filters!\n"); } -static inline int32_t prepare_tmu(tmu_state *t) +inline int32_t voodoo_device::tmu_state::prepare() { int64_t texdx, texdy; int32_t lodbase; /* if the texture parameters are dirty, update them */ - if (t->regdirty) - { - recompute_texture_params(t); - } + if (regdirty) + recompute_texture_params(); /* compute (ds^2 + dt^2) in both X and Y as 28.36 numbers */ - texdx = (int64_t)(t->dsdx >> 14) * (int64_t)(t->dsdx >> 14) + (int64_t)(t->dtdx >> 14) * (int64_t)(t->dtdx >> 14); - texdy = (int64_t)(t->dsdy >> 14) * (int64_t)(t->dsdy >> 14) + (int64_t)(t->dtdy >> 14) * (int64_t)(t->dtdy >> 14); + texdx = int64_t(dsdx >> 14) * int64_t(dsdx >> 14) + int64_t(dtdx >> 14) * int64_t(dtdx >> 14); + texdy = int64_t(dsdy >> 14) * int64_t(dsdy >> 14) + int64_t(dtdy >> 14) * int64_t(dtdy >> 14); /* pick whichever is larger and shift off some high bits -> 28.20 */ if (texdx < texdy) @@ -1397,14 +1427,14 @@ static inline int32_t prepare_tmu(tmu_state *t) /* adjust the result: negative to get the log of the original value */ /* plus 12 to account for the extra exponent, and divided by 2 to */ /* get the log of the square root of texdx */ - #if USE_FAST_RECIP == 1 - (void)fast_reciplog(texdx, &lodbase); - return (-lodbase + (12 << 8)) / 2; - #else - double tmpTex = texdx; - lodbase = new_log2(tmpTex); - return (lodbase + (12 << 8)) / 2; - #endif +#if USE_FAST_RECIP == 1 + (void)fast_reciplog(texdx, &lodbase); + return (-lodbase + (12 << 8)) / 2; +#else + double tmpTex = texdx; + lodbase = new_log2(tmpTex); + return (lodbase + (12 << 8)) / 2; +#endif } @@ -1415,10 +1445,10 @@ static inline int32_t prepare_tmu(tmu_state *t) * *************************************/ -static int cmdfifo_compute_expected_depth(voodoo_device *vd, cmdfifo_info *f) +int voodoo_device::cmdfifo_compute_expected_depth(cmdfifo_info &f) { - uint32_t *fifobase = (uint32_t *)vd->fbi.ram; - uint32_t readptr = f->rdptr; + uint32_t *fifobase = (uint32_t *)fbi.ram; + uint32_t readptr = f.rdptr; uint32_t command = fifobase[readptr / 4]; int i, count = 0; @@ -1562,7 +1592,7 @@ uint32_t voodoo_device::cmdfifo_execute(voodoo_device *vd, cmdfifo_info *f) uint32_t *src = &fifobase[readptr / 4]; uint32_t command = *src++; int count, inc, code, i; - setup_vertex svert = {0}; + fbi_state::setup_vertex svert = {0}; offs_t target; int cycles = 0; @@ -1588,26 +1618,26 @@ uint32_t voodoo_device::cmdfifo_execute(voodoo_device *vd, cmdfifo_info *f) switch ((command >> 3) & 7) { case 0: /* NOP */ - if (LOG_CMDFIFO) vd->device->logerror(" NOP\n"); + if (LOG_CMDFIFO) vd->logerror(" NOP\n"); break; case 1: /* JSR */ - if (LOG_CMDFIFO) vd->device->logerror(" JSR $%06X\n", target); + if (LOG_CMDFIFO) vd->logerror(" JSR $%06X\n", target); osd_printf_debug("JSR in CMDFIFO!\n"); src = &fifobase[target / 4]; break; case 2: /* RET */ - if (LOG_CMDFIFO) vd->device->logerror(" RET $%06X\n", target); + if (LOG_CMDFIFO) vd->logerror(" RET $%06X\n", target); fatalerror("RET in CMDFIFO!\n"); case 3: /* JMP LOCAL FRAME BUFFER */ - if (LOG_CMDFIFO) vd->device->logerror(" JMP LOCAL FRAMEBUF $%06X\n", target); + if (LOG_CMDFIFO) vd->logerror(" JMP LOCAL FRAMEBUF $%06X\n", target); src = &fifobase[target / 4]; break; case 4: /* JMP AGP */ - if (LOG_CMDFIFO) vd->device->logerror(" JMP AGP $%06X\n", target); + if (LOG_CMDFIFO) vd->logerror(" JMP AGP $%06X\n", target); fatalerror("JMP AGP in CMDFIFO!\n"); src = &fifobase[target / 4]; break; @@ -1635,7 +1665,7 @@ uint32_t voodoo_device::cmdfifo_execute(voodoo_device *vd, cmdfifo_info *f) inc = (command >> 15) & 1; target = (command >> 3) & 0xfff; - if (LOG_CMDFIFO) vd->device->logerror(" PACKET TYPE 1: count=%d inc=%d reg=%04X\n", count, inc, target); + if (LOG_CMDFIFO) vd->logerror(" PACKET TYPE 1: count=%d inc=%d reg=%04X\n", count, inc, target); if (vd->vd_type >= TYPE_VOODOO_BANSHEE && (target & 0x800)) { @@ -1666,7 +1696,7 @@ uint32_t voodoo_device::cmdfifo_execute(voodoo_device *vd, cmdfifo_info *f) 1 31:0 = Data word */ case 2: - if (LOG_CMDFIFO) vd->device->logerror(" PACKET TYPE 2: mask=%X\n", (command >> 3) & 0x1ffffff); + if (LOG_CMDFIFO) vd->logerror(" PACKET TYPE 2: mask=%X\n", (command >> 3) & 0x1ffffff); /* loop over all registers and write them one at a time */ for (i = 3; i <= 31; i++) @@ -1703,7 +1733,7 @@ uint32_t voodoo_device::cmdfifo_execute(voodoo_device *vd, cmdfifo_info *f) count = (command >> 6) & 15; code = (command >> 3) & 7; - if (LOG_CMDFIFO) vd->device->logerror(" PACKET TYPE 3: count=%d code=%d mask=%03X smode=%02X pc=%d\n", count, code, (command >> 10) & 0xfff, (command >> 22) & 0x3f, (command >> 28) & 1); + if (LOG_CMDFIFO) vd->logerror(" PACKET TYPE 3: count=%d code=%d mask=%03X smode=%02X pc=%d\n", count, code, (command >> 10) & 0xfff, (command >> 22) & 0x3f, (command >> 28) & 1); /* copy relevant bits into the setup mode register */ vd->reg[sSetupMode].u = ((command >> 10) & 0xff) | ((command >> 6) & 0xf0000); @@ -1813,7 +1843,7 @@ uint32_t voodoo_device::cmdfifo_execute(voodoo_device *vd, cmdfifo_info *f) /* extract parameters */ target = (command >> 3) & 0xfff; - if (LOG_CMDFIFO) vd->device->logerror(" PACKET TYPE 4: mask=%X reg=%04X pad=%d\n", (command >> 15) & 0x3fff, target, command >> 29); + if (LOG_CMDFIFO) vd->logerror(" PACKET TYPE 4: mask=%X reg=%04X pad=%d\n", (command >> 15) & 0x3fff, target, command >> 29); if (vd->vd_type >= TYPE_VOODOO_BANSHEE && (target & 0x800)) { @@ -1867,7 +1897,7 @@ uint32_t voodoo_device::cmdfifo_execute(voodoo_device *vd, cmdfifo_info *f) { case 0: // Linear FB { - if (LOG_CMDFIFO) vd->device->logerror(" PACKET TYPE 5: FB count=%d dest=%08X bd2=%X bdN=%X\n", count, target, (command >> 26) & 15, (command >> 22) & 15); + if (LOG_CMDFIFO) vd->logerror(" PACKET TYPE 5: FB count=%d dest=%08X bd2=%X bdN=%X\n", count, target, (command >> 26) & 15, (command >> 22) & 15); uint32_t addr = target * 4; for (i=0; i < count; i++) @@ -1885,7 +1915,7 @@ uint32_t voodoo_device::cmdfifo_execute(voodoo_device *vd, cmdfifo_info *f) } case 2: // 3D LFB { - if (LOG_CMDFIFO) vd->device->logerror(" PACKET TYPE 5: 3D LFB count=%d dest=%08X bd2=%X bdN=%X\n", count, target, (command >> 26) & 15, (command >> 22) & 15); + if (LOG_CMDFIFO) vd->logerror(" PACKET TYPE 5: 3D LFB count=%d dest=%08X bd2=%X bdN=%X\n", count, target, (command >> 26) & 15, (command >> 22) & 15); /* loop over words */ for (i = 0; i < count; i++) @@ -1910,7 +1940,7 @@ uint32_t voodoo_device::cmdfifo_execute(voodoo_device *vd, cmdfifo_info *f) case 3: // Texture Port { - if (LOG_CMDFIFO) vd->device->logerror(" PACKET TYPE 5: textureRAM count=%d dest=%08X bd2=%X bdN=%X\n", count, target, (command >> 26) & 15, (command >> 22) & 15); + if (LOG_CMDFIFO) vd->logerror(" PACKET TYPE 5: textureRAM count=%d dest=%08X bd2=%X bdN=%X\n", count, target, (command >> 26) & 15, (command >> 22) & 15); /* loop over words */ for (i = 0; i < count; i++) @@ -1940,23 +1970,20 @@ uint32_t voodoo_device::cmdfifo_execute(voodoo_device *vd, cmdfifo_info *f) * *************************************/ -int32_t voodoo_device::cmdfifo_execute_if_ready(voodoo_device* vd, cmdfifo_info *f) +int32_t voodoo_device::cmdfifo_execute_if_ready(cmdfifo_info &f) { - int needed_depth; - int cycles; - /* all CMDFIFO commands need at least one word */ - if (f->depth == 0) + if (f.depth == 0) return -1; /* see if we have enough for the current command */ - needed_depth = cmdfifo_compute_expected_depth(vd, f); - if (f->depth < needed_depth) + int const needed_depth = cmdfifo_compute_expected_depth(f); + if (f.depth < needed_depth) return -1; /* execute */ - cycles = cmdfifo_execute(vd, f); - f->depth -= needed_depth; + int const cycles = cmdfifo_execute(this, &f); + f.depth -= needed_depth; return cycles; } @@ -1973,7 +2000,7 @@ void voodoo_device::cmdfifo_w(voodoo_device *vd, cmdfifo_info *f, offs_t offset, uint32_t addr = f->base + offset * 4; uint32_t *fifobase = (uint32_t *)vd->fbi.ram; - if (LOG_CMDFIFO_VERBOSE) vd->device->logerror("CMDFIFO_w(%04X) = %08X\n", offset, data); + if (LOG_CMDFIFO_VERBOSE) vd->logerror("CMDFIFO_w(%04X) = %08X\n", offset, data); /* write the data */ if (addr < f->end) @@ -1993,7 +2020,7 @@ void voodoo_device::cmdfifo_w(voodoo_device *vd, cmdfifo_info *f, offs_t offset, else if (addr < f->amin) { if (f->holes != 0) - vd->device->logerror("Unexpected CMDFIFO: AMin=%08X AMax=%08X Holes=%d WroteTo:%08X\n", + vd->logerror("Unexpected CMDFIFO: AMin=%08X AMax=%08X Holes=%d WroteTo:%08X\n", f->amin, f->amax, f->holes, addr); //f->amin = f->amax = addr; f->holes += (addr - f->base) / 4; @@ -2025,14 +2052,14 @@ void voodoo_device::cmdfifo_w(voodoo_device *vd, cmdfifo_info *f, offs_t offset, /* execute if we can */ if (!vd->pci.op_pending) { - int32_t cycles = cmdfifo_execute_if_ready(vd, f); + int32_t cycles = vd->cmdfifo_execute_if_ready(*f); if (cycles > 0) { vd->pci.op_pending = true; - vd->pci.op_end_time = vd->device->machine().time() + attotime(0, (attoseconds_t)cycles * vd->attoseconds_per_cycle); + vd->pci.op_end_time = vd->machine().time() + attotime(0, (attoseconds_t)cycles * vd->attoseconds_per_cycle); - if (LOG_FIFO_VERBOSE) vd->device->logerror("VOODOO.%d.FIFO:direct write start at %d.%08X%08X end at %d.%08X%08X\n", vd->index, - vd->device->machine().time().seconds(), (uint32_t)(vd->device->machine().time().attoseconds() >> 32), (uint32_t)vd->device->machine().time().attoseconds(), + if (LOG_FIFO_VERBOSE) vd->logerror("VOODOO.%d.FIFO:direct write start at %d.%08X%08X end at %d.%08X%08X\n", vd->index, + vd->machine().time().seconds(), (uint32_t)(vd->machine().time().attoseconds() >> 32), (uint32_t)vd->machine().time().attoseconds(), vd->pci.op_end_time.seconds(), (uint32_t)(vd->pci.op_end_time.attoseconds() >> 32), (uint32_t)vd->pci.op_end_time.attoseconds()); } } @@ -2067,10 +2094,10 @@ void voodoo_device::check_stalled_cpu(voodoo_device* vd, attotime current_time) /* if there's room in the memory FIFO now, we can proceed */ if (FBIINIT0_ENABLE_MEMORY_FIFO(vd->reg[fbiInit0].u)) { - if (fifo_items(&vd->fbi.fifo) < 2 * 32 * FBIINIT0_MEMORY_FIFO_HWM(vd->reg[fbiInit0].u)) + if (vd->fbi.fifo.items() < 2 * 32 * FBIINIT0_MEMORY_FIFO_HWM(vd->reg[fbiInit0].u)) resume = true; } - else if (fifo_space(&vd->pci.fifo) > 2 * FBIINIT0_PCI_FIFO_LWM(vd->reg[fbiInit0].u)) + else if (vd->pci.fifo.space() > 2 * FBIINIT0_PCI_FIFO_LWM(vd->reg[fbiInit0].u)) resume = true; } @@ -2079,24 +2106,24 @@ void voodoo_device::check_stalled_cpu(voodoo_device* vd, attotime current_time) { if (FBIINIT0_ENABLE_MEMORY_FIFO(vd->reg[fbiInit0].u)) { - if (fifo_empty(&vd->fbi.fifo) && fifo_empty(&vd->pci.fifo)) + if (vd->fbi.fifo.empty() && vd->pci.fifo.empty()) resume = true; } - else if (fifo_empty(&vd->pci.fifo)) + else if (vd->pci.fifo.empty()) resume = true; } /* resume if necessary */ if (resume || !vd->pci.op_pending) { - if (LOG_FIFO) vd->device->logerror("VOODOO.%d.FIFO:Stall condition cleared; resuming\n", vd->index); + if (LOG_FIFO) vd->logerror("VOODOO.%d.FIFO:Stall condition cleared; resuming\n", vd->index); vd->pci.stall_state = NOT_STALLED; /* either call the callback, or trigger the trigger */ - if (!vd->device->m_stall.isnull()) - vd->device->m_stall(false); + if (!vd->m_stall.isnull()) + vd->m_stall(false); else - vd->device->machine().scheduler().trigger(vd->trigger); + vd->machine().scheduler().trigger(vd->trigger); } /* if not, set a timer for the next one */ @@ -2117,8 +2144,8 @@ void voodoo_device::stall_cpu(voodoo_device *vd, int state, attotime current_tim vd->stats.stalls++; /* either call the callback, or spin the CPU */ - if (!vd->device->m_stall.isnull()) - vd->device->m_stall(true); + if (!vd->m_stall.isnull()) + vd->m_stall(true); else vd->cpu->execute().spin_until_trigger(vd->trigger); @@ -2160,7 +2187,7 @@ int32_t voodoo_device::register_w(voodoo_device *vd, offs_t offset, uint32_t dat /* first make sure this register is readable */ if (!(vd->regaccess[regnum] & REGISTER_WRITE)) { - vd->device->logerror("VOODOO.%d.ERROR:Invalid attempt to write %s\n", vd->index, vd->regnames[regnum]); + vd->logerror("VOODOO.%d.ERROR:Invalid attempt to write %s\n", vd->index, vd->regnames[regnum]); return 0; } @@ -2453,7 +2480,7 @@ int32_t voodoo_device::register_w(voodoo_device *vd, offs_t offset, uint32_t dat case nopCMD: poly_wait(vd->poly, vd->regnames[regnum]); if (data & 1) - reset_counters(vd); + vd->reset_counters(); if (data & 2) vd->reg[fbiTrianglesOut].u = 0; break; @@ -2475,8 +2502,8 @@ int32_t voodoo_device::register_w(voodoo_device *vd, offs_t offset, uint32_t dat vd->reg[intrCtrl].u &= ~0x80000000; // TODO: rename vblank_client for less confusion? - if (!vd->device->m_vblank.isnull()) - vd->device->m_vblank(true); + if (!vd->m_vblank.isnull()) + vd->m_vblank(true); break; /* gamma table access -- Voodoo/Voodoo2 only */ @@ -2494,7 +2521,7 @@ int32_t voodoo_device::register_w(voodoo_device *vd, offs_t offset, uint32_t dat } } else - vd->device->logerror("clutData ignored because video timing reset = 1\n"); + vd->logerror("clutData ignored because video timing reset = 1\n"); } break; @@ -2504,9 +2531,9 @@ int32_t voodoo_device::register_w(voodoo_device *vd, offs_t offset, uint32_t dat { poly_wait(vd->poly, vd->regnames[regnum]); if (!(data & 0x800)) - dacdata_w(&vd->dac, (data >> 8) & 7, data & 0xff); + vd->dac.data_w((data >> 8) & 7, data & 0xff); else - dacdata_r(&vd->dac, (data >> 8) & 7); + vd->dac.data_r((data >> 8) & 7); } break; @@ -2611,9 +2638,9 @@ int32_t voodoo_device::register_w(voodoo_device *vd, offs_t offset, uint32_t dat { vd->reg[fbiInit0].u = data; if (FBIINIT0_GRAPHICS_RESET(data)) - soft_reset(vd); + vd->soft_reset(); if (FBIINIT0_FIFO_RESET(data)) - fifo_reset(&vd->pci.fifo); + vd->pci.fifo.reset(); recompute_video_memory(vd); } break; @@ -2744,8 +2771,8 @@ int32_t voodoo_device::register_w(voodoo_device *vd, offs_t offset, uint32_t dat case nccTable+10: case nccTable+11: poly_wait(vd->poly, vd->regnames[regnum]); - if (chips & 2) ncc_table_write(&vd->tmu[0].ncc[0], regnum - nccTable, data); - if (chips & 4) ncc_table_write(&vd->tmu[1].ncc[0], regnum - nccTable, data); + if (chips & 2) vd->tmu[0].ncc[0].write(regnum - nccTable, data); + if (chips & 4) vd->tmu[1].ncc[0].write(regnum - nccTable, data); break; case nccTable+12: @@ -2761,8 +2788,8 @@ int32_t voodoo_device::register_w(voodoo_device *vd, offs_t offset, uint32_t dat case nccTable+22: case nccTable+23: poly_wait(vd->poly, vd->regnames[regnum]); - if (chips & 2) ncc_table_write(&vd->tmu[0].ncc[1], regnum - (nccTable+12), data); - if (chips & 4) ncc_table_write(&vd->tmu[1].ncc[1], regnum - (nccTable+12), data); + if (chips & 2) vd->tmu[0].ncc[1].write(regnum - (nccTable+12), data); + if (chips & 4) vd->tmu[1].ncc[1].write(regnum - (nccTable+12), data); break; /* fogTable entries are processed and expanded immediately */ @@ -2862,9 +2889,9 @@ default_case: if (LOG_REGISTERS) { if (regnum < fvertexAx || regnum > fdWdY) - vd->device->logerror("VOODOO.%d.REG:%s(%d) write = %08X\n", vd->index, (regnum < 0x384/4) ? vd->regnames[regnum] : "oob", chips, origdata); + vd->logerror("VOODOO.%d.REG:%s(%d) write = %08X\n", vd->index, (regnum < 0x384/4) ? vd->regnames[regnum] : "oob", chips, origdata); else - vd->device->logerror("VOODOO.%d.REG:%s(%d) write = %f\n", vd->index, (regnum < 0x384/4) ? vd->regnames[regnum] : "oob", chips, (double) u2f(origdata)); + vd->logerror("VOODOO.%d.REG:%s(%d) write = %f\n", vd->index, (regnum < 0x384/4) ? vd->regnames[regnum] : "oob", chips, (double) u2f(origdata)); } return cycles; @@ -2911,14 +2938,14 @@ int32_t voodoo_device::lfb_direct_w(voodoo_device *vd, offs_t offset, uint32_t d destmax = (vd->fbi.mask + 1 - vd->fbi.lfb_base*4) / 2; bufoffs = y * vd->fbi.rowpixels + x; if (bufoffs >= destmax) { - vd->device->logerror("lfb_direct_w: Buffer offset out of bounds x=%i y=%i offset=%08X bufoffs=%08X data=%08X\n", x, y, offset, (uint32_t) bufoffs, data); + vd->logerror("lfb_direct_w: Buffer offset out of bounds x=%i y=%i offset=%08X bufoffs=%08X data=%08X\n", x, y, offset, (uint32_t) bufoffs, data); return 0; } if (ACCESSING_BITS_0_15) dest[bufoffs + 0] = data&0xffff; if (ACCESSING_BITS_16_31) dest[bufoffs + 1] = data>>16; - if (LOG_LFB) vd->device->logerror("VOODOO.%d.LFB:write direct (%d,%d) = %08X & %08X\n", vd->index, x, y, data, mem_mask); + if (LOG_LFB) vd->logerror("VOODOO.%d.LFB:write direct (%d,%d) = %08X & %08X\n", vd->index, x, y, data, mem_mask); return 0; } @@ -3119,7 +3146,7 @@ int32_t voodoo_device::lfb_w(voodoo_device* vd, offs_t offset, uint32_t data, ui break; default: /* reserved */ - vd->device->logerror("lfb_w: Unknown format\n"); + vd->logerror("lfb_w: Unknown format\n"); return 0; } @@ -3160,7 +3187,7 @@ int32_t voodoo_device::lfb_w(voodoo_device* vd, offs_t offset, uint32_t data, ui DECLARE_DITHER_POINTERS_NO_DITHER_VAR; uint32_t bufoffs; - if (LOG_LFB) vd->device->logerror("VOODOO.%d.LFB:write raw mode %X (%d,%d) = %08X & %08X\n", vd->index, LFBMODE_WRITE_FORMAT(vd->reg[lfbMode].u), x, y, data, mem_mask); + if (LOG_LFB) vd->logerror("VOODOO.%d.LFB:write raw mode %X (%d,%d) = %08X & %08X\n", vd->index, LFBMODE_WRITE_FORMAT(vd->reg[lfbMode].u), x, y, data, mem_mask); /* determine the screen Y */ scry = y; @@ -3218,7 +3245,7 @@ int32_t voodoo_device::lfb_w(voodoo_device* vd, offs_t offset, uint32_t data, ui { DECLARE_DITHER_POINTERS; - if (LOG_LFB) vd->device->logerror("VOODOO.%d.LFB:write pipelined mode %X (%d,%d) = %08X & %08X\n", vd->index, LFBMODE_WRITE_FORMAT(vd->reg[lfbMode].u), x, y, data, mem_mask); + if (LOG_LFB) vd->logerror("VOODOO.%d.LFB:write pipelined mode %X (%d,%d) = %08X & %08X\n", vd->index, LFBMODE_WRITE_FORMAT(vd->reg[lfbMode].u), x, y, data, mem_mask); /* determine the screen Y */ scry = y; @@ -3374,7 +3401,7 @@ int32_t voodoo_device::texture_w(voodoo_device *vd, offs_t offset, uint32_t data /* update texture info if dirty */ if (t->regdirty) - recompute_texture_params(t); + t->recompute_texture_params(); /* swizzle the data */ if (TEXLOD_TDATA_SWIZZLE(t->reg[tLOD].u)) @@ -3410,13 +3437,13 @@ int32_t voodoo_device::texture_w(voodoo_device *vd, offs_t offset, uint32_t data tbaseaddr = t->lodoffset[lod]; tbaseaddr += tt * ((t->wmask >> lod) + 1) + ts; - if (LOG_TEXTURE_RAM) vd->device->logerror("Texture 8-bit w: lod=%d s=%d t=%d data=%08X\n", lod, ts, tt, data); + if (LOG_TEXTURE_RAM) vd->logerror("Texture 8-bit w: lod=%d s=%d t=%d data=%08X\n", lod, ts, tt, data); } else { tbaseaddr = t->lodoffset[0] + offset*4; - if (LOG_TEXTURE_RAM) vd->device->logerror("Texture 8-bit w: offset=%X data=%08X\n", offset*4, data); + if (LOG_TEXTURE_RAM) vd->logerror("Texture 8-bit w: offset=%X data=%08X\n", offset*4, data); } /* write the four bytes in little-endian order */ @@ -3450,13 +3477,13 @@ int32_t voodoo_device::texture_w(voodoo_device *vd, offs_t offset, uint32_t data tbaseaddr = t->lodoffset[lod]; tbaseaddr += 2 * (tt * ((t->wmask >> lod) + 1) + ts); - if (LOG_TEXTURE_RAM) vd->device->logerror("Texture 16-bit w: lod=%d s=%d t=%d data=%08X\n", lod, ts, tt, data); + if (LOG_TEXTURE_RAM) vd->logerror("Texture 16-bit w: lod=%d s=%d t=%d data=%08X\n", lod, ts, tt, data); } else { tbaseaddr = t->lodoffset[0] + offset*4; - if (LOG_TEXTURE_RAM) vd->device->logerror("Texture 16-bit w: offset=%X data=%08X\n", offset*4, data); + if (LOG_TEXTURE_RAM) vd->logerror("Texture 16-bit w: offset=%X data=%08X\n", offset*4, data); } /* write the two words in little-endian order */ @@ -3489,7 +3516,7 @@ void voodoo_device::flush_fifos(voodoo_device *vd, attotime current_time) if (!vd->pci.op_pending) fatalerror("flush_fifos called with no pending operation\n"); - if (LOG_FIFO_VERBOSE) vd->device->logerror("VOODOO.%d.FIFO:flush_fifos start -- pending=%d.%08X%08X cur=%d.%08X%08X\n", vd->index, + if (LOG_FIFO_VERBOSE) vd->logerror("VOODOO.%d.FIFO:flush_fifos start -- pending=%d.%08X%08X cur=%d.%08X%08X\n", vd->index, vd->pci.op_end_time.seconds(), (uint32_t)(vd->pci.op_end_time.attoseconds() >> 32), (uint32_t)vd->pci.op_end_time.attoseconds(), current_time.seconds(), (uint32_t)(current_time.attoseconds() >> 32), (uint32_t)current_time.attoseconds()); @@ -3510,24 +3537,24 @@ void voodoo_device::flush_fifos(voodoo_device *vd, attotime current_time) if (vd->fbi.cmdfifo[0].enable) { /* if we don't have anything to execute, we're done for now */ - cycles = cmdfifo_execute_if_ready(vd, &vd->fbi.cmdfifo[0]); + cycles = vd->cmdfifo_execute_if_ready(vd->fbi.cmdfifo[0]); if (cycles == -1) { vd->pci.op_pending = false; in_flush = false; - if (LOG_FIFO_VERBOSE) vd->device->logerror("VOODOO.%d.FIFO:flush_fifos end -- CMDFIFO empty\n", vd->index); + if (LOG_FIFO_VERBOSE) vd->logerror("VOODOO.%d.FIFO:flush_fifos end -- CMDFIFO empty\n", vd->index); return; } } else if (vd->fbi.cmdfifo[1].enable) { /* if we don't have anything to execute, we're done for now */ - cycles = cmdfifo_execute_if_ready(vd, &vd->fbi.cmdfifo[1]); + cycles = vd->cmdfifo_execute_if_ready(vd->fbi.cmdfifo[1]); if (cycles == -1) { vd->pci.op_pending = false; in_flush = false; - if (LOG_FIFO_VERBOSE) vd->device->logerror("VOODOO.%d.FIFO:flush_fifos end -- CMDFIFO empty\n", vd->index); + if (LOG_FIFO_VERBOSE) vd->logerror("VOODOO.%d.FIFO:flush_fifos end -- CMDFIFO empty\n", vd->index); return; } } @@ -3536,21 +3563,21 @@ void voodoo_device::flush_fifos(voodoo_device *vd, attotime current_time) else { /* choose which FIFO to read from */ - if (!fifo_empty(&vd->fbi.fifo)) + if (!vd->fbi.fifo.empty()) fifo = &vd->fbi.fifo; - else if (!fifo_empty(&vd->pci.fifo)) + else if (!vd->pci.fifo.empty()) fifo = &vd->pci.fifo; else { vd->pci.op_pending = false; in_flush = false; - if (LOG_FIFO_VERBOSE) vd->device->logerror("VOODOO.%d.FIFO:flush_fifos end -- FIFOs empty\n", vd->index); + if (LOG_FIFO_VERBOSE) vd->logerror("VOODOO.%d.FIFO:flush_fifos end -- FIFOs empty\n", vd->index); return; } /* extract address and data */ - address = fifo_remove(fifo); - data = fifo_remove(fifo); + address = fifo->remove(); + data = fifo->remove(); /* target the appropriate location */ if ((address & (0xc00000/4)) == 0) @@ -3587,12 +3614,12 @@ void voodoo_device::flush_fifos(voodoo_device *vd, attotime current_time) /* account for those cycles */ vd->pci.op_end_time += attotime(0, (attoseconds_t)cycles * vd->attoseconds_per_cycle); - if (LOG_FIFO_VERBOSE) vd->device->logerror("VOODOO.%d.FIFO:update -- pending=%d.%08X%08X cur=%d.%08X%08X\n", vd->index, + if (LOG_FIFO_VERBOSE) vd->logerror("VOODOO.%d.FIFO:update -- pending=%d.%08X%08X cur=%d.%08X%08X\n", vd->index, vd->pci.op_end_time.seconds(), (uint32_t)(vd->pci.op_end_time.attoseconds() >> 32), (uint32_t)vd->pci.op_end_time.attoseconds(), current_time.seconds(), (uint32_t)(current_time.attoseconds() >> 32), (uint32_t)current_time.attoseconds()); } - if (LOG_FIFO_VERBOSE) vd->device->logerror("VOODOO.%d.FIFO:flush_fifos end -- pending command complete at %d.%08X%08X\n", vd->index, + if (LOG_FIFO_VERBOSE) vd->logerror("VOODOO.%d.FIFO:flush_fifos end -- pending command complete at %d.%08X%08X\n", vd->index, vd->pci.op_end_time.seconds(), (uint32_t)(vd->pci.op_end_time.attoseconds() >> 32), (uint32_t)vd->pci.op_end_time.attoseconds()); in_flush = false; @@ -3723,17 +3750,17 @@ WRITE32_MEMBER( voodoo_device::voodoo_w ) /* if there's room in the PCI FIFO, add there */ if (LOG_FIFO_VERBOSE) logerror("VOODOO.%d.FIFO:voodoo_w adding to PCI FIFO @ %08X=%08X\n", this, offset, data); - if (!fifo_full(&pci.fifo)) + if (!pci.fifo.full()) { - fifo_add(&pci.fifo, offset); - fifo_add(&pci.fifo, data); + pci.fifo.add(offset); + pci.fifo.add(data); } else fatalerror("PCI FIFO full\n"); /* handle flushing to the memory FIFO */ if (FBIINIT0_ENABLE_MEMORY_FIFO(reg[fbiInit0].u) && - fifo_space(&pci.fifo) <= 2 * FBIINIT4_MEMORY_FIFO_LWM(reg[fbiInit4].u)) + pci.fifo.space() <= 2 * FBIINIT4_MEMORY_FIFO_LWM(reg[fbiInit4].u)) { uint8_t valid[4]; @@ -3744,15 +3771,15 @@ WRITE32_MEMBER( voodoo_device::voodoo_w ) /* flush everything we can */ if (LOG_FIFO_VERBOSE) logerror("VOODOO.%d.FIFO:voodoo_w moving PCI FIFO to memory FIFO\n", index); - while (!fifo_empty(&pci.fifo) && valid[(fifo_peek(&pci.fifo) >> 22) & 3]) + while (!pci.fifo.empty() && valid[(pci.fifo.peek() >> 22) & 3]) { - fifo_add(&fbi.fifo, fifo_remove(&pci.fifo)); - fifo_add(&fbi.fifo, fifo_remove(&pci.fifo)); + fbi.fifo.add(pci.fifo.remove()); + fbi.fifo.add(pci.fifo.remove()); } /* if we're above the HWM as a result, stall */ if (FBIINIT0_STALL_PCIE_FOR_HWM(reg[fbiInit0].u) && - fifo_items(&fbi.fifo) >= 2 * 32 * FBIINIT0_MEMORY_FIFO_HWM(reg[fbiInit0].u)) + fbi.fifo.items() >= 2 * 32 * FBIINIT0_MEMORY_FIFO_HWM(reg[fbiInit0].u)) { if (LOG_FIFO) logerror("VOODOO.%d.FIFO:voodoo_w hit memory FIFO HWM -- stalling\n", index); stall_cpu(this, STALLED_UNTIL_FIFO_LWM, machine().time()); @@ -3761,7 +3788,7 @@ WRITE32_MEMBER( voodoo_device::voodoo_w ) /* if we're at the LWM for the PCI FIFO, stall */ if (FBIINIT0_STALL_PCIE_FOR_HWM(reg[fbiInit0].u) && - fifo_space(&pci.fifo) <= 2 * FBIINIT0_PCI_FIFO_LWM(reg[fbiInit0].u)) + pci.fifo.space() <= 2 * FBIINIT0_PCI_FIFO_LWM(reg[fbiInit0].u)) { if (LOG_FIFO) logerror("VOODOO.%d.FIFO:voodoo_w hit PCI FIFO free LWM -- stalling\n", index); stall_cpu(this, STALLED_UNTIL_FIFO_LWM, machine().time()); @@ -3785,7 +3812,7 @@ WRITE32_MEMBER( voodoo_device::voodoo_w ) * *************************************/ -static uint32_t register_r(voodoo_device *vd, offs_t offset) +uint32_t voodoo_device::register_r(voodoo_device *vd, offs_t offset) { int regnum = offset & 0xff; uint32_t result; @@ -3796,7 +3823,7 @@ static uint32_t register_r(voodoo_device *vd, offs_t offset) /* first make sure this register is readable */ if (!(vd->regaccess[regnum] & REGISTER_READ)) { - vd->device->logerror("VOODOO.%d.ERROR:Invalid attempt to read %s\n", vd->index, regnum < 225 ? vd->regnames[regnum] : "unknown register"); + vd->logerror("VOODOO.%d.ERROR:Invalid attempt to read %s\n", vd->index, regnum < 225 ? vd->regnames[regnum] : "unknown register"); return 0xffffffff; } @@ -3812,11 +3839,11 @@ static uint32_t register_r(voodoo_device *vd, offs_t offset) result = 0; /* bits 5:0 are the PCI FIFO free space */ - if (fifo_empty(&vd->pci.fifo)) + if (vd->pci.fifo.empty()) result |= 0x3f << 0; else { - int temp = fifo_space(&vd->pci.fifo)/2; + int temp = vd->pci.fifo.space()/2; if (temp > 0x3f) temp = 0x3f; result |= temp << 0; @@ -3844,11 +3871,11 @@ static uint32_t register_r(voodoo_device *vd, offs_t offset) result |= vd->fbi.frontbuf << 10; /* bits 27:12 indicate memory FIFO freespace */ - if (!FBIINIT0_ENABLE_MEMORY_FIFO(vd->reg[fbiInit0].u) || fifo_empty(&vd->fbi.fifo)) + if (!FBIINIT0_ENABLE_MEMORY_FIFO(vd->reg[fbiInit0].u) || vd->fbi.fifo.empty()) result |= 0xffff << 12; else { - int temp = fifo_space(&vd->fbi.fifo)/2; + int temp = vd->fbi.fifo.space()/2; if (temp > 0xffff) temp = 0xffff; result |= temp << 12; @@ -3929,7 +3956,7 @@ static uint32_t register_r(voodoo_device *vd, offs_t offset) case fbiZfuncFail: case fbiAfuncFail: case fbiPixelsOut: - update_statistics(vd, true); + vd->update_statistics(true); case fbiTrianglesOut: result = vd->reg[regnum].u & 0xffffff; break; @@ -3952,7 +3979,7 @@ static uint32_t register_r(voodoo_device *vd, offs_t offset) logit = false; if (logit) - vd->device->logerror("VOODOO.%d.REG:%s read = %08X\n", vd->index, vd->regnames[regnum], result); + vd->logerror("VOODOO.%d.REG:%s read = %08X\n", vd->index, vd->regnames[regnum], result); } return result; @@ -4023,7 +4050,7 @@ static uint32_t lfb_r(voodoo_device *vd, offs_t offset, bool lfb_3d) /* advance pointers to the proper row */ bufoffs = scry * vd->fbi.rowpixels + x; if (bufoffs >= bufmax) { - vd->device->logerror("LFB_R: Buffer offset out of bounds x=%i y=%i lfb_3d=%i offset=%08X bufoffs=%08X\n", x, y, lfb_3d, offset, (uint32_t) bufoffs); + vd->logerror("LFB_R: Buffer offset out of bounds x=%i y=%i lfb_3d=%i offset=%08X bufoffs=%08X\n", x, y, lfb_3d, offset, (uint32_t) bufoffs); return 0xffffffff; } @@ -4041,7 +4068,7 @@ static uint32_t lfb_r(voodoo_device *vd, offs_t offset, bool lfb_3d) if (LFBMODE_BYTE_SWIZZLE_READS(vd->reg[lfbMode].u)) data = flipendian_int32(data); - if (LOG_LFB) vd->device->logerror("VOODOO.%d.LFB:read (%d,%d) = %08X\n", vd->index, x, y, data); + if (LOG_LFB) vd->logerror("VOODOO.%d.LFB:read (%d,%d) = %08X\n", vd->index, x, y, data); return data; } @@ -4133,7 +4160,7 @@ READ32_MEMBER( voodoo_banshee_device::banshee_agp_r ) } if (LOG_REGISTERS) - logerror("%s:banshee_r(AGP:%s)\n", device->machine().describe_context(), banshee_agp_reg_name[offset]); + logerror("%s:banshee_r(AGP:%s)\n", machine().describe_context(), banshee_agp_reg_name[offset]); return result; } @@ -4936,14 +4963,12 @@ void voodoo_device::common_start_voodoo(uint8_t type) assert(m_cputag != nullptr); assert(m_fbmem > 0); - /* store a pointer back to the device */ - device = this; vd_type = type; /* copy config data */ freq = clock(); - device->m_vblank.resolve(); - device->m_stall.resolve(); + m_vblank.resolve(); + m_stall.resolve(); /* create a multiprocessor work queue */ poly = poly_alloc(machine(), 64, sizeof(poly_extra_data), 0); @@ -5071,7 +5096,7 @@ void voodoo_device::common_start_voodoo(uint8_t type) init_fbi(this, &fbi, fbmem, m_fbmem << 20); /* build shared TMU tables */ - init_tmu_shared(&tmushare); + tmushare.init(); /* set up the TMUs */ init_tmu(this, &tmu[0], ®[0x100], tmumem[0], tmumem0 << 20); @@ -5103,7 +5128,7 @@ void voodoo_device::common_start_voodoo(uint8_t type) banshee.io[io_tmuGbeInit] = 0x00000bfb; /* do a soft reset to reset everything else */ - soft_reset(this); + soft_reset(); /* register for save states */ init_save_state(this); @@ -5184,7 +5209,7 @@ int32_t voodoo_device::fastfill(voodoo_device *vd) poly_extra_data *extra = (poly_extra_data *)poly_get_extra_data(vd->poly); int count = std::min(ey - y, int(ARRAY_LENGTH(extents))); - extra->device= vd; + extra->device = vd; memcpy(extra->dither, dithermatrix, sizeof(extra->dither)); pixels += poly_render_triangle_custom(vd->poly, drawbuf, global_cliprect, raster_fastfill, y, count, extents); @@ -5306,7 +5331,7 @@ int32_t voodoo_device::triangle(voodoo_device *vd) g_profiler.stop(); /* 1 pixel per clock, plus some setup time */ - if (LOG_REGISTERS) vd->device->logerror("cycles = %d\n", TRIANGLE_SETUP_CLOCKS + pixels); + if (LOG_REGISTERS) vd->logerror("cycles = %d\n", TRIANGLE_SETUP_CLOCKS + pixels); return TRIANGLE_SETUP_CLOCKS + pixels; } @@ -5318,7 +5343,7 @@ int32_t voodoo_device::triangle(voodoo_device *vd) int32_t voodoo_device::begin_triangle(voodoo_device *vd) { - setup_vertex *sv = &vd->fbi.svert[2]; + fbi_state::setup_vertex *sv = &vd->fbi.svert[2]; /* extract all the data from registers */ sv->x = vd->reg[sVx].f; @@ -5350,7 +5375,7 @@ int32_t voodoo_device::begin_triangle(voodoo_device *vd) int32_t voodoo_device::draw_triangle(voodoo_device *vd) { - setup_vertex *sv = &vd->fbi.svert[2]; + fbi_state::setup_vertex *sv = &vd->fbi.svert[2]; int cycles = 0; /* for strip mode, shuffle vertex 1 down to 0 */ @@ -5577,7 +5602,7 @@ int32_t voodoo_device::triangle_create_work_item(voodoo_device* vd, uint16_t *dr extra->ds0dy = vd->tmu[0].dsdy; extra->dt0dy = vd->tmu[0].dtdy; extra->dw0dy = vd->tmu[0].dwdy; - extra->lodbase0 = prepare_tmu(&vd->tmu[0]); + extra->lodbase0 = vd->tmu[0].prepare(); vd->stats.texture_mode[TEXMODE_FORMAT(vd->tmu[0].reg[textureMode].u)]++; /* fill in texture 1 parameters */ @@ -5592,7 +5617,7 @@ int32_t voodoo_device::triangle_create_work_item(voodoo_device* vd, uint16_t *dr extra->ds1dy = vd->tmu[1].dsdy; extra->dt1dy = vd->tmu[1].dtdy; extra->dw1dy = vd->tmu[1].dwdy; - extra->lodbase1 = prepare_tmu(&vd->tmu[1]); + extra->lodbase1 = vd->tmu[1].prepare(); vd->stats.texture_mode[TEXMODE_FORMAT(vd->tmu[1].reg[textureMode].u)]++; } } @@ -5613,10 +5638,10 @@ int32_t voodoo_device::triangle_create_work_item(voodoo_device* vd, uint16_t *dr hash table -------------------------------------------------*/ -raster_info *voodoo_device::add_rasterizer(voodoo_device *vd, const raster_info *cinfo) +voodoo_device::raster_info *voodoo_device::add_rasterizer(voodoo_device *vd, const raster_info *cinfo) { raster_info *info = &vd->rasterizer[vd->next_rasterizer++]; - int hash = compute_raster_hash(cinfo); + int hash = cinfo->compute_hash(); assert_always(vd->next_rasterizer <= MAX_RASTERIZERS, "Out of space for new rasterizers!"); @@ -5648,7 +5673,7 @@ raster_info *voodoo_device::add_rasterizer(voodoo_device *vd, const raster_info it, creating a new one if necessary -------------------------------------------------*/ -raster_info *voodoo_device::find_rasterizer(voodoo_device *vd, int texcount) +voodoo_device::raster_info *voodoo_device::find_rasterizer(voodoo_device *vd, int texcount) { raster_info *info, *prev = nullptr; raster_info curinfo; @@ -5663,7 +5688,7 @@ raster_info *voodoo_device::find_rasterizer(voodoo_device *vd, int texcount) curinfo.eff_tex_mode_1 = (texcount >= 2) ? normalize_tex_mode(vd->tmu[1].reg[textureMode].u) : 0xffffffff; /* compute the hash */ - hash = compute_raster_hash(&curinfo); + hash = curinfo.compute_hash(); /* find the appropriate hash entry */ for (info = vd->raster_hash[hash]; info; prev = info, info = info->next) @@ -5746,15 +5771,15 @@ void voodoo_device::dump_rasterizer_stats(voodoo_device *vd) } } -voodoo_device::voodoo_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), - m_fbmem(0), - m_tmumem0(0), - m_tmumem1(0), - m_screen(nullptr), - m_cputag(nullptr), - m_vblank(*this), - m_stall(*this) +voodoo_device::voodoo_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) + , m_fbmem(0) + , m_tmumem0(0) + , m_tmumem1(0) + , m_screen(nullptr) + , m_cputag(nullptr) + , m_vblank(*this) + , m_stall(*this) { } @@ -5768,7 +5793,7 @@ voodoo_device::~voodoo_device() void voodoo_device::device_reset() { - soft_reset(this); + soft_reset(); } //------------------------------------------------- @@ -5783,10 +5808,10 @@ void voodoo_device::device_stop() } -const device_type VOODOO_1 = device_creator; +DEFINE_DEVICE_TYPE(VOODOO_1, voodoo_1_device, "voodoo_1", "3dfx Voodoo Graphics") voodoo_1_device::voodoo_1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : voodoo_device(mconfig, VOODOO_1, "3dfx Voodoo Graphics", tag, owner, clock, "voodoo_1", __FILE__) + : voodoo_device(mconfig, VOODOO_1, tag, owner, clock) { } @@ -5800,10 +5825,10 @@ void voodoo_1_device::device_start() } -const device_type VOODOO_2 = device_creator; +DEFINE_DEVICE_TYPE(VOODOO_2, voodoo_2_device, "voodoo_2", "3dfx Voodoo 2") voodoo_2_device::voodoo_2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : voodoo_device(mconfig, VOODOO_2, "3dfx Voodoo 2", tag, owner, clock, "voodoo_2", __FILE__) + : voodoo_device(mconfig, VOODOO_2, tag, owner, clock) { } @@ -5817,15 +5842,15 @@ void voodoo_2_device::device_start() } -const device_type VOODOO_BANSHEE = device_creator; +DEFINE_DEVICE_TYPE(VOODOO_BANSHEE, voodoo_banshee_device, "voodoo_banshee", "3dfx Voodoo Banshee") voodoo_banshee_device::voodoo_banshee_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : voodoo_device(mconfig, VOODOO_BANSHEE, "3dfx Voodoo Banshee", tag, owner, clock, "voodoo_banshee", __FILE__) + : voodoo_banshee_device(mconfig, VOODOO_BANSHEE, tag, owner, clock) { } -voodoo_banshee_device::voodoo_banshee_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : voodoo_device(mconfig, type, name, tag, owner, clock, shortname, source) +voodoo_banshee_device::voodoo_banshee_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : voodoo_device(mconfig, type, tag, owner, clock) { } @@ -5839,10 +5864,10 @@ void voodoo_banshee_device::device_start() } -const device_type VOODOO_3 = device_creator; +DEFINE_DEVICE_TYPE(VOODOO_3, voodoo_3_device, "voodoo_3", "3dfx Voodoo 3") voodoo_3_device::voodoo_3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : voodoo_banshee_device(mconfig, VOODOO_3, "3dfx Voodoo 3", tag, owner, clock, "voodoo_3", __FILE__) + : voodoo_banshee_device(mconfig, VOODOO_3, tag, owner, clock) { } diff --git a/src/devices/video/voodoo.h b/src/devices/video/voodoo.h index edce2e21adf..9d26986f4a0 100644 --- a/src/devices/video/voodoo.h +++ b/src/devices/video/voodoo.h @@ -8,14 +8,16 @@ ***************************************************************************/ -#ifndef __VOODOO_H__ -#define __VOODOO_H__ - -#include "video/polylgcy.h" +#ifndef MAME_VIDEO_VOODOO_H +#define MAME_VIDEO_VOODOO_H #pragma once +#include "video/polylgcy.h" +#include "video/rgbutil.h" + + /************************************* * * Misc. constants @@ -1362,10 +1364,6 @@ static const uint8_t dither_matrix_2x2[16] = -struct voodoo_state; -struct poly_extra_data; -class voodoo_device; - struct rgba { #ifdef LSB_FIRST @@ -1386,317 +1384,6 @@ union voodoo_reg -struct voodoo_stats -{ - uint8_t lastkey; /* last key state */ - uint8_t display; /* display stats? */ - int32_t swaps; /* total swaps */ - int32_t stalls; /* total stalls */ - int32_t total_triangles; /* total triangles */ - int32_t total_pixels_in; /* total pixels in */ - int32_t total_pixels_out; /* total pixels out */ - int32_t total_chroma_fail; /* total chroma fail */ - int32_t total_zfunc_fail; /* total z func fail */ - int32_t total_afunc_fail; /* total a func fail */ - int32_t total_clipped; /* total clipped */ - int32_t total_stippled; /* total stippled */ - int32_t lfb_writes; /* LFB writes */ - int32_t lfb_reads; /* LFB reads */ - int32_t reg_writes; /* register writes */ - int32_t reg_reads; /* register reads */ - int32_t tex_writes; /* texture writes */ - int32_t texture_mode[16]; /* 16 different texture modes */ - uint8_t render_override; /* render override */ - char buffer[1024]; /* string */ -}; - - -/* note that this structure is an even 64 bytes long */ -struct stats_block -{ - int32_t pixels_in; /* pixels in statistic */ - int32_t pixels_out; /* pixels out statistic */ - int32_t chroma_fail; /* chroma test fail statistic */ - int32_t zfunc_fail; /* z function test fail statistic */ - int32_t afunc_fail; /* alpha function test fail statistic */ - int32_t clip_fail; /* clipping fail statistic */ - int32_t stipple_count; /* stipple statistic */ - int32_t filler[64/4 - 7]; /* pad this structure to 64 bytes */ -}; - - -struct fifo_state -{ - uint32_t * base; /* base of the FIFO */ - int32_t size; /* size of the FIFO */ - int32_t in; /* input pointer */ - int32_t out; /* output pointer */ -}; - - -struct cmdfifo_info -{ - uint8_t enable; /* enabled? */ - uint8_t count_holes; /* count holes? */ - uint32_t base; /* base address in framebuffer RAM */ - uint32_t end; /* end address in framebuffer RAM */ - uint32_t rdptr; /* current read pointer */ - uint32_t amin; /* minimum address */ - uint32_t amax; /* maximum address */ - uint32_t depth; /* current depth */ - uint32_t holes; /* number of holes */ -}; - - -struct pci_state -{ - fifo_state fifo; /* PCI FIFO */ - uint32_t init_enable; /* initEnable value */ - uint8_t stall_state; /* state of the system if we're stalled */ - uint8_t op_pending; /* true if an operation is pending */ - attotime op_end_time; /* time when the pending operation ends */ - emu_timer * continue_timer; /* timer to use to continue processing */ - uint32_t fifo_mem[64*2]; /* memory backing the PCI FIFO */ -}; - - -struct ncc_table -{ - uint8_t dirty; /* is the texel lookup dirty? */ - voodoo_reg * reg; /* pointer to our registers */ - int32_t ir[4], ig[4], ib[4]; /* I values for R,G,B */ - int32_t qr[4], qg[4], qb[4]; /* Q values for R,G,B */ - int32_t y[16]; /* Y values */ - rgb_t * palette; /* pointer to associated RGB palette */ - rgb_t * palettea; /* pointer to associated ARGB palette */ - rgb_t texel[256]; /* texel lookup */ -}; - - -struct tmu_state -{ - uint8_t * ram; /* pointer to our RAM */ - uint32_t mask; /* mask to apply to pointers */ - voodoo_reg * reg; /* pointer to our register base */ - uint32_t regdirty; /* true if the LOD/mode/base registers have changed */ - - uint32_t texaddr_mask; /* mask for texture address */ - uint8_t texaddr_shift; /* shift for texture address */ - - int64_t starts, startt; /* starting S,T (14.18) */ - int64_t startw; /* starting W (2.30) */ - int64_t dsdx, dtdx; /* delta S,T per X */ - int64_t dwdx; /* delta W per X */ - int64_t dsdy, dtdy; /* delta S,T per Y */ - int64_t dwdy; /* delta W per Y */ - - int32_t lodmin, lodmax; /* min, max LOD values */ - int32_t lodbias; /* LOD bias */ - uint32_t lodmask; /* mask of available LODs */ - uint32_t lodoffset[9]; /* offset of texture base for each LOD */ - int32_t detailmax; /* detail clamp */ - int32_t detailbias; /* detail bias */ - uint8_t detailscale; /* detail scale */ - - uint32_t wmask; /* mask for the current texture width */ - uint32_t hmask; /* mask for the current texture height */ - - uint32_t bilinear_mask; /* mask for bilinear resolution (0xf0 for V1, 0xff for V2) */ - - ncc_table ncc[2]; /* two NCC tables */ - - rgb_t * lookup; /* currently selected lookup */ - rgb_t * texel[16]; /* texel lookups for each format */ - - rgb_t palette[256]; /* palette lookup table */ - rgb_t palettea[256]; /* palette+alpha lookup table */ -}; - - -struct tmu_shared_state -{ - rgb_t rgb332[256]; /* RGB 3-3-2 lookup table */ - rgb_t alpha8[256]; /* alpha 8-bit lookup table */ - rgb_t int8[256]; /* intensity 8-bit lookup table */ - rgb_t ai44[256]; /* alpha, intensity 4-4 lookup table */ - - rgb_t rgb565[65536]; /* RGB 5-6-5 lookup table */ - rgb_t argb1555[65536]; /* ARGB 1-5-5-5 lookup table */ - rgb_t argb4444[65536]; /* ARGB 4-4-4-4 lookup table */ -}; - - -struct setup_vertex -{ - float x, y; /* X, Y coordinates */ - float z, wb; /* Z and broadcast W values */ - float r, g, b, a; /* A, R, G, B values */ - float s0, t0, w0; /* W, S, T for TMU 0 */ - float s1, t1, w1; /* W, S, T for TMU 1 */ -}; - - -struct fbi_state -{ - uint8_t * ram; /* pointer to frame buffer RAM */ - uint32_t mask; /* mask to apply to pointers */ - uint32_t rgboffs[3]; /* word offset to 3 RGB buffers */ - uint32_t auxoffs; /* word offset to 1 aux buffer */ - - uint8_t frontbuf; /* front buffer index */ - uint8_t backbuf; /* back buffer index */ - uint8_t swaps_pending; /* number of pending swaps */ - uint8_t video_changed; /* did the frontbuffer video change? */ - - uint32_t yorigin; /* Y origin subtract value */ - uint32_t lfb_base; /* base of LFB in memory */ - uint8_t lfb_stride; /* stride of LFB accesses in bits */ - - uint32_t width; /* width of current frame buffer */ - uint32_t height; /* height of current frame buffer */ - uint32_t xoffs; /* horizontal offset (back porch) */ - uint32_t yoffs; /* vertical offset (back porch) */ - uint32_t vsyncscan; /* vertical sync scanline */ - uint32_t rowpixels; /* pixels per row */ - uint32_t tile_width; /* width of video tiles */ - uint32_t tile_height; /* height of video tiles */ - uint32_t x_tiles; /* number of tiles in the X direction */ - - emu_timer * vblank_timer; /* VBLANK timer */ - uint8_t vblank; /* VBLANK state */ - uint8_t vblank_count; /* number of VBLANKs since last swap */ - uint8_t vblank_swap_pending; /* a swap is pending, waiting for a vblank */ - uint8_t vblank_swap; /* swap when we hit this count */ - uint8_t vblank_dont_swap; /* don't actually swap when we hit this point */ - - /* triangle setup info */ - uint8_t cheating_allowed; /* allow cheating? */ - int32_t sign; /* triangle sign */ - int16_t ax, ay; /* vertex A x,y (12.4) */ - int16_t bx, by; /* vertex B x,y (12.4) */ - int16_t cx, cy; /* vertex C x,y (12.4) */ - int32_t startr, startg, startb, starta; /* starting R,G,B,A (12.12) */ - int32_t startz; /* starting Z (20.12) */ - int64_t startw; /* starting W (16.32) */ - int32_t drdx, dgdx, dbdx, dadx; /* delta R,G,B,A per X */ - int32_t dzdx; /* delta Z per X */ - int64_t dwdx; /* delta W per X */ - int32_t drdy, dgdy, dbdy, dady; /* delta R,G,B,A per Y */ - int32_t dzdy; /* delta Z per Y */ - int64_t dwdy; /* delta W per Y */ - - stats_block lfb_stats; /* LFB-access statistics */ - - uint8_t sverts; /* number of vertices ready */ - setup_vertex svert[3]; /* 3 setup vertices */ - - fifo_state fifo; /* framebuffer memory fifo */ - cmdfifo_info cmdfifo[2]; /* command FIFOs */ - - uint8_t fogblend[64]; /* 64-entry fog table */ - uint8_t fogdelta[64]; /* 64-entry fog table */ - uint8_t fogdelta_mask; /* mask for for delta (0xff for V1, 0xfc for V2) */ - - rgb_t pen[65536]; /* mapping from pixels to pens */ - rgb_t clut[512]; /* clut gamma data */ - uint8_t clut_dirty; /* do we need to recompute? */ -}; - - -struct dac_state -{ - uint8_t reg[8]; /* 8 registers */ - uint8_t read_result; /* pending read result */ -}; - - -struct raster_info -{ - raster_info * next; /* pointer to next entry with the same hash */ - poly_draw_scanline_func callback; /* callback pointer */ - bool is_generic; /* true if this is one of the generic rasterizers */ - uint8_t display; /* display index */ - uint32_t hits; /* how many hits (pixels) we've used this for */ - uint32_t polys; /* how many polys we've used this for */ - uint32_t eff_color_path; /* effective fbzColorPath value */ - uint32_t eff_alpha_mode; /* effective alphaMode value */ - uint32_t eff_fog_mode; /* effective fogMode value */ - uint32_t eff_fbz_mode; /* effective fbzMode value */ - uint32_t eff_tex_mode_0; /* effective textureMode value for TMU #0 */ - uint32_t eff_tex_mode_1; /* effective textureMode value for TMU #1 */ - uint32_t hash; -}; - - -struct poly_extra_data -{ - voodoo_device * device; - raster_info * info; /* pointer to rasterizer information */ - - int16_t ax, ay; /* vertex A x,y (12.4) */ - int32_t startr, startg, startb, starta; /* starting R,G,B,A (12.12) */ - int32_t startz; /* starting Z (20.12) */ - int64_t startw; /* starting W (16.32) */ - int32_t drdx, dgdx, dbdx, dadx; /* delta R,G,B,A per X */ - int32_t dzdx; /* delta Z per X */ - int64_t dwdx; /* delta W per X */ - int32_t drdy, dgdy, dbdy, dady; /* delta R,G,B,A per Y */ - int32_t dzdy; /* delta Z per Y */ - int64_t dwdy; /* delta W per Y */ - - int64_t starts0, startt0; /* starting S,T (14.18) */ - int64_t startw0; /* starting W (2.30) */ - int64_t ds0dx, dt0dx; /* delta S,T per X */ - int64_t dw0dx; /* delta W per X */ - int64_t ds0dy, dt0dy; /* delta S,T per Y */ - int64_t dw0dy; /* delta W per Y */ - int32_t lodbase0; /* used during rasterization */ - - int64_t starts1, startt1; /* starting S,T (14.18) */ - int64_t startw1; /* starting W (2.30) */ - int64_t ds1dx, dt1dx; /* delta S,T per X */ - int64_t dw1dx; /* delta W per X */ - int64_t ds1dy, dt1dy; /* delta S,T per Y */ - int64_t dw1dy; /* delta W per Y */ - int32_t lodbase1; /* used during rasterization */ - - uint16_t dither[16]; /* dither matrix, for fastfill */ -}; - - -struct banshee_info -{ - uint32_t io[0x40]; /* I/O registers */ - uint32_t agp[0x80]; /* AGP registers */ - uint8_t vga[0x20]; /* VGA registers */ - uint8_t crtc[0x27]; /* VGA CRTC registers */ - uint8_t seq[0x05]; /* VGA sequencer registers */ - uint8_t gc[0x05]; /* VGA graphics controller registers */ - uint8_t att[0x15]; /* VGA attribute registers */ - uint8_t attff; /* VGA attribute flip-flop */ - - uint32_t blt_regs[0x20]; /* 2D Blitter registers */ - uint32_t blt_dst_base; - uint32_t blt_dst_x; - uint32_t blt_dst_y; - uint32_t blt_dst_width; - uint32_t blt_dst_height; - uint32_t blt_dst_stride; - uint32_t blt_dst_bpp; - uint32_t blt_cmd; - uint32_t blt_src_base; - uint32_t blt_src_x; - uint32_t blt_src_y; - uint32_t blt_src_width; - uint32_t blt_src_height; - uint32_t blt_src_stride; - uint32_t blt_src_bpp; -}; - - -typedef voodoo_reg rgb_union; - - @@ -1746,23 +1433,19 @@ enum FUNCTION PROTOTYPES ***************************************************************************/ -struct stats_block; - /* ----- device interface ----- */ class voodoo_device : public device_t { public: - voodoo_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); ~voodoo_device(); - static void static_set_fbmem(device_t &device, int value) { downcast(device).m_fbmem = value; } static void static_set_tmumem(device_t &device, int value1, int value2) { downcast(device).m_tmumem0 = value1; downcast(device).m_tmumem1 = value2; } static void static_set_screen_tag(device_t &device, const char *tag) { downcast(device).m_screen = tag; } static void static_set_cpu_tag(device_t &device, const char *tag) { downcast(device).m_cputag = tag; } - template static devcb_base &static_set_vblank_callback(device_t &device, _Object object) { return downcast(device).m_vblank.set_callback(object); } - template static devcb_base &static_set_stall_callback(device_t &device, _Object object) { return downcast(device).m_stall.set_callback(object); } + template static devcb_base &static_set_vblank_callback(device_t &device, Object &&cb) { return downcast(device).m_vblank.set_callback(std::forward(cb)); } + template static devcb_base &static_set_stall_callback(device_t &device, Object &&cb) { return downcast(device).m_stall.set_callback(std::forward(cb)); } DECLARE_READ32_MEMBER( voodoo_r ); DECLARE_WRITE32_MEMBER( voodoo_w ); @@ -1789,6 +1472,314 @@ public: int voodoo_is_stalled(); void voodoo_set_init_enable(uint32_t newval); +protected: + voodoo_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual void device_stop() override; + virtual void device_reset() override; + + + struct voodoo_stats + { + uint8_t lastkey; /* last key state */ + uint8_t display; /* display stats? */ + int32_t swaps; /* total swaps */ + int32_t stalls; /* total stalls */ + int32_t total_triangles; /* total triangles */ + int32_t total_pixels_in; /* total pixels in */ + int32_t total_pixels_out; /* total pixels out */ + int32_t total_chroma_fail; /* total chroma fail */ + int32_t total_zfunc_fail; /* total z func fail */ + int32_t total_afunc_fail; /* total a func fail */ + int32_t total_clipped; /* total clipped */ + int32_t total_stippled; /* total stippled */ + int32_t lfb_writes; /* LFB writes */ + int32_t lfb_reads; /* LFB reads */ + int32_t reg_writes; /* register writes */ + int32_t reg_reads; /* register reads */ + int32_t tex_writes; /* texture writes */ + int32_t texture_mode[16]; /* 16 different texture modes */ + uint8_t render_override; /* render override */ + char buffer[1024]; /* string */ + }; + + + /* note that this structure is an even 64 bytes long */ + struct stats_block + { + int32_t pixels_in; /* pixels in statistic */ + int32_t pixels_out; /* pixels out statistic */ + int32_t chroma_fail; /* chroma test fail statistic */ + int32_t zfunc_fail; /* z function test fail statistic */ + int32_t afunc_fail; /* alpha function test fail statistic */ + int32_t clip_fail; /* clipping fail statistic */ + int32_t stipple_count; /* stipple statistic */ + int32_t filler[64/4 - 7]; /* pad this structure to 64 bytes */ + }; + + + struct fifo_state + { + void reset() { in = out = 0; } + void add(uint32_t data); + uint32_t remove(); + uint32_t peek() { return base[out]; } + bool empty() const { return in == out; } + bool full() const { return ((in + 1) == out) || ((in == (size - 1)) && (out == 0)); } + int32_t items() const; + int32_t space() const { return size - 1 - items(); } + + uint32_t * base; /* base of the FIFO */ + int32_t size; /* size of the FIFO */ + int32_t in; /* input pointer */ + int32_t out; /* output pointer */ + }; + + + struct cmdfifo_info + { + uint8_t enable; /* enabled? */ + uint8_t count_holes; /* count holes? */ + uint32_t base; /* base address in framebuffer RAM */ + uint32_t end; /* end address in framebuffer RAM */ + uint32_t rdptr; /* current read pointer */ + uint32_t amin; /* minimum address */ + uint32_t amax; /* maximum address */ + uint32_t depth; /* current depth */ + uint32_t holes; /* number of holes */ + }; + + + struct pci_state + { + fifo_state fifo; /* PCI FIFO */ + uint32_t init_enable; /* initEnable value */ + uint8_t stall_state; /* state of the system if we're stalled */ + uint8_t op_pending; /* true if an operation is pending */ + attotime op_end_time; /* time when the pending operation ends */ + emu_timer * continue_timer; /* timer to use to continue processing */ + uint32_t fifo_mem[64*2]; /* memory backing the PCI FIFO */ + }; + + + struct tmu_state + { + void recompute_texture_params(); + int32_t prepare(); + rgbaint_t genTexture(int32_t x, const uint8_t *dither4, const uint32_t TEXMODE, rgb_t *LOOKUP, int32_t LODBASE, int64_t ITERS, int64_t ITERT, int64_t ITERW, int32_t &lod); + rgbaint_t combineTexture(const uint32_t TEXMODE, rgbaint_t c_local, rgbaint_t c_other, int32_t lod); + + struct ncc_table + { + void write(offs_t regnum, uint32_t data); + void update(); + + uint8_t dirty; /* is the texel lookup dirty? */ + voodoo_reg * reg; /* pointer to our registers */ + int32_t ir[4], ig[4], ib[4]; /* I values for R,G,B */ + int32_t qr[4], qg[4], qb[4]; /* Q values for R,G,B */ + int32_t y[16]; /* Y values */ + rgb_t * palette; /* pointer to associated RGB palette */ + rgb_t * palettea; /* pointer to associated ARGB palette */ + rgb_t texel[256]; /* texel lookup */ + }; + + uint8_t * ram; /* pointer to our RAM */ + uint32_t mask; /* mask to apply to pointers */ + voodoo_reg * reg; /* pointer to our register base */ + uint32_t regdirty; /* true if the LOD/mode/base registers have changed */ + + uint32_t texaddr_mask; /* mask for texture address */ + uint8_t texaddr_shift; /* shift for texture address */ + + int64_t starts, startt; /* starting S,T (14.18) */ + int64_t startw; /* starting W (2.30) */ + int64_t dsdx, dtdx; /* delta S,T per X */ + int64_t dwdx; /* delta W per X */ + int64_t dsdy, dtdy; /* delta S,T per Y */ + int64_t dwdy; /* delta W per Y */ + + int32_t lodmin, lodmax; /* min, max LOD values */ + int32_t lodbias; /* LOD bias */ + uint32_t lodmask; /* mask of available LODs */ + uint32_t lodoffset[9]; /* offset of texture base for each LOD */ + int32_t detailmax; /* detail clamp */ + int32_t detailbias; /* detail bias */ + uint8_t detailscale; /* detail scale */ + + uint32_t wmask; /* mask for the current texture width */ + uint32_t hmask; /* mask for the current texture height */ + + uint32_t bilinear_mask; /* mask for bilinear resolution (0xf0 for V1, 0xff for V2) */ + + ncc_table ncc[2]; /* two NCC tables */ + + rgb_t * lookup; /* currently selected lookup */ + rgb_t * texel[16]; /* texel lookups for each format */ + + rgb_t palette[256]; /* palette lookup table */ + rgb_t palettea[256]; /* palette+alpha lookup table */ + }; + + + struct tmu_shared_state + { + void init(); + + rgb_t rgb332[256]; /* RGB 3-3-2 lookup table */ + rgb_t alpha8[256]; /* alpha 8-bit lookup table */ + rgb_t int8[256]; /* intensity 8-bit lookup table */ + rgb_t ai44[256]; /* alpha, intensity 4-4 lookup table */ + + rgb_t rgb565[65536]; /* RGB 5-6-5 lookup table */ + rgb_t argb1555[65536]; /* ARGB 1-5-5-5 lookup table */ + rgb_t argb4444[65536]; /* ARGB 4-4-4-4 lookup table */ + }; + + + struct fbi_state + { + struct setup_vertex + { + float x, y; /* X, Y coordinates */ + float z, wb; /* Z and broadcast W values */ + float r, g, b, a; /* A, R, G, B values */ + float s0, t0, w0; /* W, S, T for TMU 0 */ + float s1, t1, w1; /* W, S, T for TMU 1 */ + }; + + uint8_t * ram; /* pointer to frame buffer RAM */ + uint32_t mask; /* mask to apply to pointers */ + uint32_t rgboffs[3]; /* word offset to 3 RGB buffers */ + uint32_t auxoffs; /* word offset to 1 aux buffer */ + + uint8_t frontbuf; /* front buffer index */ + uint8_t backbuf; /* back buffer index */ + uint8_t swaps_pending; /* number of pending swaps */ + uint8_t video_changed; /* did the frontbuffer video change? */ + + uint32_t yorigin; /* Y origin subtract value */ + uint32_t lfb_base; /* base of LFB in memory */ + uint8_t lfb_stride; /* stride of LFB accesses in bits */ + + uint32_t width; /* width of current frame buffer */ + uint32_t height; /* height of current frame buffer */ + uint32_t xoffs; /* horizontal offset (back porch) */ + uint32_t yoffs; /* vertical offset (back porch) */ + uint32_t vsyncscan; /* vertical sync scanline */ + uint32_t rowpixels; /* pixels per row */ + uint32_t tile_width; /* width of video tiles */ + uint32_t tile_height; /* height of video tiles */ + uint32_t x_tiles; /* number of tiles in the X direction */ + + emu_timer * vblank_timer; /* VBLANK timer */ + uint8_t vblank; /* VBLANK state */ + uint8_t vblank_count; /* number of VBLANKs since last swap */ + uint8_t vblank_swap_pending; /* a swap is pending, waiting for a vblank */ + uint8_t vblank_swap; /* swap when we hit this count */ + uint8_t vblank_dont_swap; /* don't actually swap when we hit this point */ + + /* triangle setup info */ + uint8_t cheating_allowed; /* allow cheating? */ + int32_t sign; /* triangle sign */ + int16_t ax, ay; /* vertex A x,y (12.4) */ + int16_t bx, by; /* vertex B x,y (12.4) */ + int16_t cx, cy; /* vertex C x,y (12.4) */ + int32_t startr, startg, startb, starta; /* starting R,G,B,A (12.12) */ + int32_t startz; /* starting Z (20.12) */ + int64_t startw; /* starting W (16.32) */ + int32_t drdx, dgdx, dbdx, dadx; /* delta R,G,B,A per X */ + int32_t dzdx; /* delta Z per X */ + int64_t dwdx; /* delta W per X */ + int32_t drdy, dgdy, dbdy, dady; /* delta R,G,B,A per Y */ + int32_t dzdy; /* delta Z per Y */ + int64_t dwdy; /* delta W per Y */ + + stats_block lfb_stats; /* LFB-access statistics */ + + uint8_t sverts; /* number of vertices ready */ + setup_vertex svert[3]; /* 3 setup vertices */ + + fifo_state fifo; /* framebuffer memory fifo */ + cmdfifo_info cmdfifo[2]; /* command FIFOs */ + + uint8_t fogblend[64]; /* 64-entry fog table */ + uint8_t fogdelta[64]; /* 64-entry fog table */ + uint8_t fogdelta_mask; /* mask for for delta (0xff for V1, 0xfc for V2) */ + + rgb_t pen[65536]; /* mapping from pixels to pens */ + rgb_t clut[512]; /* clut gamma data */ + uint8_t clut_dirty; /* do we need to recompute? */ + }; + + + struct dac_state + { + void data_w(uint8_t regum, uint8_t data); + void data_r(uint8_t regnum); + + uint8_t reg[8]; /* 8 registers */ + uint8_t read_result; /* pending read result */ + }; + + + struct raster_info + { + uint32_t compute_hash() const; + + raster_info * next; /* pointer to next entry with the same hash */ + poly_draw_scanline_func callback; /* callback pointer */ + bool is_generic; /* true if this is one of the generic rasterizers */ + uint8_t display; /* display index */ + uint32_t hits; /* how many hits (pixels) we've used this for */ + uint32_t polys; /* how many polys we've used this for */ + uint32_t eff_color_path; /* effective fbzColorPath value */ + uint32_t eff_alpha_mode; /* effective alphaMode value */ + uint32_t eff_fog_mode; /* effective fogMode value */ + uint32_t eff_fbz_mode; /* effective fbzMode value */ + uint32_t eff_tex_mode_0; /* effective textureMode value for TMU #0 */ + uint32_t eff_tex_mode_1; /* effective textureMode value for TMU #1 */ + uint32_t hash; + }; + + + struct poly_extra_data; + + + struct banshee_info + { + uint32_t io[0x40]; /* I/O registers */ + uint32_t agp[0x80]; /* AGP registers */ + uint8_t vga[0x20]; /* VGA registers */ + uint8_t crtc[0x27]; /* VGA CRTC registers */ + uint8_t seq[0x05]; /* VGA sequencer registers */ + uint8_t gc[0x05]; /* VGA graphics controller registers */ + uint8_t att[0x15]; /* VGA attribute registers */ + uint8_t attff; /* VGA attribute flip-flop */ + + uint32_t blt_regs[0x20]; /* 2D Blitter registers */ + uint32_t blt_dst_base; + uint32_t blt_dst_x; + uint32_t blt_dst_y; + uint32_t blt_dst_width; + uint32_t blt_dst_height; + uint32_t blt_dst_stride; + uint32_t blt_dst_bpp; + uint32_t blt_cmd; + uint32_t blt_src_base; + uint32_t blt_src_x; + uint32_t blt_src_y; + uint32_t blt_src_width; + uint32_t blt_src_height; + uint32_t blt_src_stride; + uint32_t blt_src_bpp; + }; + + + static const raster_info predef_raster_table[]; + + // not all of these need to be static, review. static void check_stalled_cpu(voodoo_device* vd, attotime current_time); @@ -1802,7 +1793,7 @@ public: static int32_t lfb_direct_w(voodoo_device *vd, offs_t offset, uint32_t data, uint32_t mem_mask); static int32_t banshee_2d_w(voodoo_device *vd, offs_t offset, uint32_t data); static void stall_cpu(voodoo_device *vd, int state, attotime current_time); - static void soft_reset(voodoo_device *vd); + void soft_reset(); static void recompute_video_memory(voodoo_device *vd); static int32_t fastfill(voodoo_device *vd); static int32_t triangle(voodoo_device *vd); @@ -1813,13 +1804,21 @@ public: static raster_info *add_rasterizer(voodoo_device *vd, const raster_info *cinfo); static raster_info *find_rasterizer(voodoo_device *vd, int texcount); static void dump_rasterizer_stats(voodoo_device *vd); - static void init_tmu_shared(tmu_shared_state *s); + + void accumulate_statistics(const stats_block &block); + void update_statistics(bool accumulate); + void reset_counters(); + + static uint32_t register_r(voodoo_device *vd, offs_t offset); static void swap_buffers(voodoo_device *vd); + int cmdfifo_compute_expected_depth(cmdfifo_info &f); static uint32_t cmdfifo_execute(voodoo_device *vd, cmdfifo_info *f); - static int32_t cmdfifo_execute_if_ready(voodoo_device* vd, cmdfifo_info *f); + int32_t cmdfifo_execute_if_ready(cmdfifo_info &f); static void cmdfifo_w(voodoo_device *vd, cmdfifo_info *f, offs_t offset, uint32_t data); + static void init_save_state(voodoo_device *vd); + static void raster_fastfill(void *dest, int32_t scanline, const poly_extent *extent, const void *extradata, int threadid); static void raster_generic_0tmu(void *dest, int32_t scanline, const poly_extent *extent, const void *extradata, int threadid); static void raster_generic_1tmu(void *dest, int32_t scanline, const poly_extent *extent, const void *extradata, int threadid); @@ -1833,16 +1832,15 @@ public: #undef RASTERIZER_ENTRY + static bool chromaKeyTest(voodoo_device *vd, stats_block *stats, uint32_t fbzModeReg, rgbaint_t rgaIntColor); + static bool alphaMaskTest(stats_block *stats, uint32_t fbzModeReg, uint8_t alpha); + static bool alphaTest(voodoo_device *vd, stats_block *stats, uint32_t alphaModeReg, uint8_t alpha); + static bool depthTest(uint16_t zaColorReg, stats_block *stats, int32_t destDepth, uint32_t fbzModeReg, int32_t biasdepth); + static bool combineColor(voodoo_device *vd, stats_block *STATS, uint32_t FBZCOLORPATH, uint32_t FBZMODE, uint32_t ALPHAMODE, rgbaint_t TEXELARGB, int32_t ITERZ, int64_t ITERW, rgbaint_t &srcColor); - -protected: - // device-level overrides - virtual void device_stop() override; - virtual void device_reset() override; +// FIXME: this stuff should not be public public: - // voodoo_state uint8_t index; /* index of board */ - voodoo_device *device; /* pointer to our containing device */ screen_device *screen; /* the screen we are acting on */ device_t *cpu; /* the CPU we interact with */ uint8_t vd_type; /* type of system */ @@ -1886,12 +1884,12 @@ class voodoo_1_device : public voodoo_device { public: voodoo_1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + protected: // device-level overrides virtual void device_start() override; }; -extern const device_type VOODOO_1; class voodoo_2_device : public voodoo_device { @@ -1902,13 +1900,11 @@ protected: virtual void device_start() override; }; -extern const device_type VOODOO_2; class voodoo_banshee_device : public voodoo_device { public: voodoo_banshee_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - voodoo_banshee_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); DECLARE_READ32_MEMBER( banshee_r ); DECLARE_WRITE32_MEMBER( banshee_w ); @@ -1921,23 +1917,29 @@ public: DECLARE_WRITE8_MEMBER(banshee_vga_w); protected: + voodoo_banshee_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; DECLARE_READ32_MEMBER( banshee_agp_r ); DECLARE_WRITE32_MEMBER( banshee_agp_w ); }; -extern const device_type VOODOO_BANSHEE; class voodoo_3_device : public voodoo_banshee_device { public: voodoo_3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + protected: // device-level overrides virtual void device_start() override; }; -extern const device_type VOODOO_3; -#endif +DECLARE_DEVICE_TYPE(VOODOO_1, voodoo_1_device) +DECLARE_DEVICE_TYPE(VOODOO_2, voodoo_2_device) +DECLARE_DEVICE_TYPE(VOODOO_BANSHEE, voodoo_banshee_device) +DECLARE_DEVICE_TYPE(VOODOO_3, voodoo_3_device) + +#endif // MAME_VIDEO_VOODOO_H diff --git a/src/devices/video/voodoo_pci.cpp b/src/devices/video/voodoo_pci.cpp index acceeac50e7..883d92995a9 100644 --- a/src/devices/video/voodoo_pci.cpp +++ b/src/devices/video/voodoo_pci.cpp @@ -53,7 +53,7 @@ machine_config_constructor voodoo_pci_device::device_mconfig_additions() const } } -const device_type VOODOO_PCI = device_creator; +DEFINE_DEVICE_TYPE(VOODOO_PCI, voodoo_pci_device, "voodoo_pci", "Voodoo PCI") DEVICE_ADDRESS_MAP_START(config_map, 32, voodoo_pci_device) AM_RANGE(0x40, 0x5f) AM_READWRITE (pcictrl_r, pcictrl_w) @@ -78,7 +78,7 @@ DEVICE_ADDRESS_MAP_START(io_map, 32, voodoo_pci_device) ADDRESS_MAP_END voodoo_pci_device::voodoo_pci_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : pci_device(mconfig, VOODOO_PCI, "Voodoo PCI", tag, owner, clock, "voodoo_pci", __FILE__), + : pci_device(mconfig, VOODOO_PCI, tag, owner, clock), m_voodoo(*this, "voodoo"), m_fbmem(2), m_tmumem0(0), m_tmumem1(0) { } diff --git a/src/devices/video/voodoo_pci.h b/src/devices/video/voodoo_pci.h index d7e2add7f1e..4b7a41afe2f 100644 --- a/src/devices/video/voodoo_pci.h +++ b/src/devices/video/voodoo_pci.h @@ -2,8 +2,10 @@ // copyright-holders:Ted Green // 3dfx Voodoo Graphics SST-1/2 emulator. -#ifndef VOODOO_PCI_H -#define VOODOO_PCI_H +#ifndef MAME_VIDEO_VOODOO_PCI_H +#define MAME_VIDEO_VOODOO_PCI_H + +#pragma once #include "machine/pci.h" #include "voodoo.h" @@ -47,7 +49,7 @@ protected: private: required_device m_voodoo; - static int m_type; + static int m_type; // FIXME: all voodoo have to be the same? really? int m_fbmem, m_tmumem0, m_tmumem1; const char *m_cpu_tag; @@ -58,6 +60,6 @@ private: DECLARE_ADDRESS_MAP(io_map, 32); }; -extern const device_type VOODOO_PCI; +DECLARE_DEVICE_TYPE(VOODOO_PCI, voodoo_pci_device) -#endif +#endif // MAME_VIDEO_VOODOO_PCI_H diff --git a/src/devices/video/zeus2.cpp b/src/devices/video/zeus2.cpp index 5428e862cc3..1720d98f582 100644 --- a/src/devices/video/zeus2.cpp +++ b/src/devices/video/zeus2.cpp @@ -21,11 +21,11 @@ zeus2_renderer::zeus2_renderer(zeus2_device *state) { } -const device_type ZEUS2 = device_creator; +DEFINE_DEVICE_TYPE(ZEUS2, zeus2_device, "zeus2", "Midway Zeus2") zeus2_device::zeus2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, ZEUS2, "Midway Zeus2", tag, owner, clock, "zeus2", __FILE__), - m_vblank(*this), m_irq(*this), m_atlantis(0) + : device_t(mconfig, ZEUS2, tag, owner, clock) + , m_vblank(*this), m_irq(*this), m_atlantis(0) { } diff --git a/src/devices/video/zeus2.h b/src/devices/video/zeus2.h index 633245fa608..2998d6378d3 100644 --- a/src/devices/video/zeus2.h +++ b/src/devices/video/zeus2.h @@ -5,15 +5,15 @@ Midway Zeus2 Video **************************************************************************/ -#ifndef __ZEUS2_H__ -#define __ZEUS2_H__ +#ifndef MAME_VIDEO_ZEUS2_H +#define MAME_VIDEO_ZEUS2_H + +#pragma once #include "video/poly.h" #include "video/rgbutil.h" #include "cpu/tms32031/tms32031.h" -#pragma once - /************************************* * Constants *************************************/ @@ -123,8 +123,8 @@ public: TIMER_CALLBACK_MEMBER(display_irq_off); TIMER_CALLBACK_MEMBER(display_irq); - template static devcb_base &set_vblank_callback(device_t &device, _Object object) { return downcast(device).m_vblank.set_callback(object); } - template static devcb_base &set_irq_callback(device_t &device, _Object object) { return downcast(device).m_irq.set_callback(object); } + template static devcb_base &set_vblank_callback(device_t &device, Object &&cb) { return downcast(device).m_vblank.set_callback(std::forward(cb)); } + template static devcb_base &set_irq_callback(device_t &device, Object &&cb) { return downcast(device).m_irq.set_callback(std::forward(cb)); } devcb_write_line m_vblank; devcb_write_line m_irq; @@ -438,6 +438,6 @@ public: }; // device type definition -extern const device_type ZEUS2; +DECLARE_DEVICE_TYPE(ZEUS2, zeus2_device) -#endif +#endif // MAME_VIDEO_ZEUS2 diff --git a/src/emu/config.cpp b/src/emu/config.cpp index fb1204fd622..6c6b4c93578 100644 --- a/src/emu/config.cpp +++ b/src/emu/config.cpp @@ -149,13 +149,13 @@ int configuration_manager::load_xml(emu_file &file, config_type which_type) return 0; /* strip off all the path crap from the source filename */ - const char *srcfile = strrchr(machine().system().source_file, '/'); + const char *srcfile = strrchr(machine().system().type.source(), '/'); if (!srcfile) - srcfile = strrchr(machine().system().source_file, '\\'); + srcfile = strrchr(machine().system().type.source(), '\\'); if (!srcfile) - srcfile = strrchr(machine().system().source_file, ':'); + srcfile = strrchr(machine().system().type.source(), ':'); if (!srcfile) - srcfile = machine().system().source_file; + srcfile = machine().system().type.source(); else srcfile++; diff --git a/src/emu/debug/debugcon.cpp b/src/emu/debug/debugcon.cpp index 1a35ba3f61d..f8f0832d102 100644 --- a/src/emu/debug/debugcon.cpp +++ b/src/emu/debug/debugcon.cpp @@ -49,7 +49,7 @@ debugger_console::debugger_console(running_machine &machine) /* print the opening lines */ printf("%s debugger version %s\n", emulator_info::get_appname(), emulator_info::get_build_version()); - printf("Currently targeting %s (%s)\n", m_machine.system().name, m_machine.system().description); + printf("Currently targeting %s (%s)\n", m_machine.system().name, m_machine.system().type.fullname()); /* request callback upon exiting */ m_machine.add_notifier(MACHINE_NOTIFY_EXIT, machine_notify_delegate(&debugger_console::exit, this)); diff --git a/src/emu/devcpu.cpp b/src/emu/devcpu.cpp index f07c8b4a885..dccde97c14c 100644 --- a/src/emu/devcpu.cpp +++ b/src/emu/devcpu.cpp @@ -21,8 +21,8 @@ // cpu_device - constructor //------------------------------------------------- -cpu_device::cpu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, u32 clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), +cpu_device::cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock) + : device_t(mconfig, type, tag, owner, clock), device_execute_interface(mconfig, *this), device_memory_interface(mconfig, *this), device_state_interface(mconfig, *this), diff --git a/src/emu/devcpu.h b/src/emu/devcpu.h index ca1904a1d0a..1c4bce13506 100644 --- a/src/emu/devcpu.h +++ b/src/emu/devcpu.h @@ -77,7 +77,7 @@ public: protected: // construction/destruction - cpu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, u32 clock, const char *shortname, const char *source); + cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock); virtual ~cpu_device(); private: diff --git a/src/emu/device.cpp b/src/emu/device.cpp index c585f236e15..3c301a5800b 100644 --- a/src/emu/device.cpp +++ b/src/emu/device.cpp @@ -81,31 +81,28 @@ emu::detail::device_registrar const registered_device_types; // from the provided config //------------------------------------------------- -device_t::device_t(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, u32 clock, const char *shortname, const char *source) - : m_type(type), - m_name(name), - m_shortname(shortname), - m_searchpath(shortname), - m_source(source), - m_owner(owner), - m_next(nullptr), - - m_configured_clock(clock), - m_unscaled_clock(clock), - m_clock(clock), - m_clock_scale(1.0), - m_attoseconds_per_clock((clock == 0) ? 0 : HZ_TO_ATTOSECONDS(clock)), - - m_machine_config(mconfig), - m_input_defaults(nullptr), - m_default_bios_tag(""), - - m_machine(nullptr), - m_save(nullptr), - m_basetag(tag), - m_config_complete(false), - m_started(false), - m_auto_finder_list(nullptr) +device_t::device_t(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock) + : m_type(type) + , m_searchpath(type.shortname()) + , m_owner(owner) + , m_next(nullptr) + + , m_configured_clock(clock) + , m_unscaled_clock(clock) + , m_clock(clock) + , m_clock_scale(1.0) + , m_attoseconds_per_clock((clock == 0) ? 0 : HZ_TO_ATTOSECONDS(clock)) + + , m_machine_config(mconfig) + , m_input_defaults(nullptr) + , m_default_bios_tag("") + + , m_machine(nullptr) + , m_save(nullptr) + , m_basetag(tag) + , m_config_complete(false) + , m_started(false) + , m_auto_finder_list(nullptr) { if (owner != nullptr) m_tag.assign((owner->owner() == nullptr) ? "" : owner->tag()).append(":").append(tag); diff --git a/src/emu/device.h b/src/emu/device.h index b20a545dc46..0eec0db5845 100644 --- a/src/emu/device.h +++ b/src/emu/device.h @@ -20,6 +20,7 @@ #include #include #include +#include #include #include #include @@ -141,59 +142,90 @@ private: }; -template struct device_tag_struct { typedef DeviceClass type; }; -template struct driver_tag_struct { typedef DriverClass type; }; +template struct device_tag_struct { typedef DeviceClass type; }; +template struct driver_tag_struct { typedef DriverClass type; }; -template inline device_tag_struct device_tag_func() { return device_tag_struct{ }; } -template inline driver_tag_struct driver_tag_func() { return driver_tag_struct{ }; } +template auto device_tag_func() { return device_tag_struct{ }; }; +template auto driver_tag_func() { return driver_tag_struct{ }; }; class device_type_impl { private: friend class device_registrar; - typedef std::unique_ptr (*create_func)(machine_config const &mconfig, char const *tag, device_t *owner, u32 clock); + typedef std::unique_ptr (*create_func)(device_type_impl const &type, machine_config const &mconfig, char const *tag, device_t *owner, u32 clock); device_type_impl(device_type_impl const &) = delete; device_type_impl(device_type_impl &&) = delete; device_type_impl &operator=(device_type_impl const &) = delete; device_type_impl &operator=(device_type_impl &&) = delete; - // don't make these static member function templates inline - template static std::unique_ptr create_device(machine_config const &mconfig, char const *tag, device_t *owner, u32 clock); - template static std::unique_ptr create_driver(machine_config const &mconfig, char const *tag, device_t *owner, u32 clock); + template + static std::unique_ptr create_device(device_type_impl const &type, machine_config const &mconfig, char const *tag, device_t *owner, u32 clock) + { + return make_unique_clear(mconfig, tag, owner, clock); + } + + template + static std::unique_ptr create_driver(device_type_impl const &type, machine_config const &mconfig, char const *tag, device_t *owner, u32 clock) + { + assert(!owner); + assert(!clock); + + return make_unique_clear(mconfig, type, tag); + } create_func const m_creator; std::type_info const &m_type; + char const *const m_shortname; + char const *const m_fullname; + char const *const m_source; + device_type_impl *m_next; + device_type_impl *m_parent = nullptr, *m_left = nullptr, *m_right = nullptr; + bool m_colour = false; public: device_type_impl(std::nullptr_t) : m_creator(nullptr) , m_type(typeid(std::nullptr_t)) + , m_shortname(nullptr) + , m_fullname(nullptr) + , m_source(nullptr) , m_next(nullptr) { } - template device_type_impl(device_tag_struct (*)()) + template + device_type_impl(device_tag_struct (*)()) : m_creator(&create_device) , m_type(typeid(DeviceClass)) + , m_shortname(ShortName) + , m_fullname(FullName) + , m_source(Source) , m_next(device_registrar::register_device(*this)) { } - template device_type_impl(driver_tag_struct (*)()) + template + device_type_impl(driver_tag_struct (*)()) : m_creator(&create_driver) , m_type(typeid(DriverClass)) + , m_shortname(ShortName) + , m_fullname(FullName) + , m_source(Source) , m_next(nullptr) { } std::type_info const &type() const { return m_type; } + char const *shortname() const { return m_shortname; } + char const *fullname() const { return m_fullname; } + char const *source() const { return m_source; } std::unique_ptr operator()(machine_config const &mconfig, char const *tag, device_t *owner, u32 clock) const { - return m_creator(mconfig, tag, owner, clock); + return m_creator(*this, mconfig, tag, owner, clock); } explicit operator bool() const { return bool(m_creator); } @@ -204,35 +236,49 @@ public: inline device_registrar::const_iterator &device_registrar::const_iterator::operator++() { m_type = m_type->m_next; return *this; } - -template -std::unique_ptr device_type_impl::create_device(machine_config const &mconfig, char const *tag, device_t *owner, u32 clock) -{ - return make_unique_clear(mconfig, tag, owner, clock); -} - -template -std::unique_ptr device_type_impl::create_driver(machine_config const &mconfig, char const *tag, device_t *owner, u32 clock) -{ - assert(!owner); - assert(!clock); - - // this is not thread-safe - // we can get away with it because driver creators aren't registered - // hence all members are initialised with constant values and the race won't cause issues - static device_type_impl const &driver_type = &driver_tag_func; - return make_unique_clear(mconfig, driver_type, tag); -} - } } // namespace emu::detail // device types typedef emu::detail::device_type_impl const &device_type; -template constexpr auto device_creator = &emu::detail::device_tag_func; -template constexpr auto driver_device_creator = &emu::detail::driver_tag_func; +typedef std::add_pointer_t device_type_ptr; extern emu::detail::device_registrar const registered_device_types; +template +constexpr auto device_creator = &emu::detail::device_tag_func; + +template +constexpr auto driver_device_creator = &emu::detail::driver_tag_func; + +#define DECLARE_DEVICE_TYPE(Type, Class) \ + extern device_type const Type; \ + class Class; \ + extern template class device_finder; \ + extern template class device_finder; + +#define DECLARE_DEVICE_TYPE_NS(Type, Namespace, Class) \ + extern device_type const Type; \ + extern template class device_finder; \ + extern template class device_finder; + +#define DEFINE_DEVICE_TYPE(Type, Class, ShortName, FullName) \ + namespace { \ + struct Class##_device_traits { static constexpr char const shortname[] = ShortName, fullname[] = FullName, source[] = __FILE__; }; \ + constexpr char const Class##_device_traits::shortname[], Class##_device_traits::fullname[], Class##_device_traits::source[]; \ + } \ + device_type const Type = device_creator; \ + template class device_finder; \ + template class device_finder; + +#define DEFINE_DEVICE_TYPE_NS(Type, Namespace, Class, ShortName, FullName) \ + namespace { \ + struct Class##_device_traits { static constexpr char const shortname[] = ShortName, fullname[] = FullName, source[] = __FILE__; }; \ + constexpr char const Class##_device_traits::shortname[], Class##_device_traits::fullname[], Class##_device_traits::source[]; \ + } \ + device_type const Type = device_creator; \ + template class device_finder; \ + template class device_finder; + // exception classes class device_missing_dependencies : public emu_exception { }; @@ -343,12 +389,10 @@ protected: device_t( const machine_config &mconfig, device_type type, - const char *name, const char *tag, device_t *owner, - u32 clock, - const char *shortname, - const char *source); + u32 clock); + public: virtual ~device_t(); @@ -358,10 +402,10 @@ public: const char *tag() const { return m_tag.c_str(); } const char *basetag() const { return m_basetag.c_str(); } device_type type() const { return m_type; } - const char *name() const { return m_name.c_str(); } - const char *shortname() const { return m_shortname.c_str(); } + const char *name() const { return m_type.fullname(); } + const char *shortname() const { return m_type.shortname(); } const char *searchpath() const { return m_searchpath.c_str(); } - const char *source() const { return m_source.c_str(); } + const char *source() const { return m_type.source(); } device_t *owner() const { return m_owner; } device_t *next() const { return m_next; } u32 configured_clock() const { return m_configured_clock; } @@ -488,10 +532,7 @@ protected: // core device properties device_type m_type; // device type - std::string m_name; // name of the device - std::string m_shortname; // short name of the device std::string m_searchpath; // search path, used for media loading - std::string m_source; // device source file name // device relationships & interfaces device_t * m_owner; // device that owns us diff --git a/src/emu/drawgfx.cpp b/src/emu/drawgfx.cpp index 009dc064d28..7ba4d7bd7c5 100644 --- a/src/emu/drawgfx.cpp +++ b/src/emu/drawgfx.cpp @@ -66,10 +66,10 @@ static inline s32 normalize_yscroll(const bitmap_t &bitmap, s32 yscroll) // DEVICE DEFINITIONS //************************************************************************** -const device_type GFXDECODE = device_creator; +DEFINE_DEVICE_TYPE(GFXDECODE, gfxdecode_device, "gfxdecode", "gfxdecode") gfxdecode_device::gfxdecode_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) : - device_t(mconfig, GFXDECODE, "gfxdecode", tag, owner, clock, "gfxdecode", __FILE__), + device_t(mconfig, GFXDECODE, tag, owner, clock), device_gfx_interface(mconfig, *this) { } diff --git a/src/emu/drivenum.cpp b/src/emu/drivenum.cpp index 41439f5dac4..eb2222fa7c5 100644 --- a/src/emu/drivenum.cpp +++ b/src/emu/drivenum.cpp @@ -311,7 +311,7 @@ void driver_enumerator::find_approximate_matches(const char *string, std::size_t if (m_included[index] && !(s_drivers_sorted[index]->flags & MACHINE_NO_STANDALONE)) { // pick the best match between driver name and description - int curpenalty = penalty_compare(string, s_drivers_sorted[index]->description); + int curpenalty = penalty_compare(string, s_drivers_sorted[index]->type.fullname()); int tmp = penalty_compare(string, s_drivers_sorted[index]->name); curpenalty = (std::min)(curpenalty, tmp); diff --git a/src/emu/driver.cpp b/src/emu/driver.cpp index 51b6b629544..79bef6a1c14 100644 --- a/src/emu/driver.cpp +++ b/src/emu/driver.cpp @@ -22,7 +22,7 @@ //------------------------------------------------- driver_device::driver_device(const machine_config &mconfig, device_type type, const char *tag) - : device_t(mconfig, type, "Driver Device", tag, nullptr, 0, "", __FILE__), + : device_t(mconfig, type, tag, nullptr, 0), m_system(nullptr), m_flip_screen_x(0), m_flip_screen_y(0) @@ -51,12 +51,6 @@ void driver_device::static_set_game(device_t &device, const game_driver &game) // set the system driver.m_system = &game; - // set the short name to the game's name - driver.m_shortname = game.name; - - // set the full name to the game's description - driver.m_name = game.description; - // and set the search path to include all parents driver.m_searchpath = game.name; for (int parent = driver_list::clone(game); parent != -1; parent = driver_list::clone(parent)) @@ -190,8 +184,7 @@ void driver_device::device_start() throw device_missing_dependencies(); // call the game-specific init - if (m_system->driver_init != nullptr) - (*m_system->driver_init)(machine()); + m_system->driver_init(machine()); // finish image devices init process machine().image().postdevice_init(); diff --git a/src/emu/driver.h b/src/emu/driver.h index eb3de5e8596..3f64fb3a38d 100644 --- a/src/emu/driver.h +++ b/src/emu/driver.h @@ -121,13 +121,6 @@ public: static void static_set_game(device_t &device, const game_driver &game); static void static_set_callback(device_t &device, callback_type type, driver_callback_delegate callback); - // generic helpers - template - static void driver_init_wrapper(running_machine &machine) - { - (machine.driver_data<_DriverClass>()->*_Function)(); - } - // dummy driver_init callbacks void init_0() { } diff --git a/src/emu/drivers/empty.cpp b/src/emu/drivers/empty.cpp index 59a93d72ab3..5e7dfd253df 100644 --- a/src/emu/drivers/empty.cpp +++ b/src/emu/drivers/empty.cpp @@ -40,7 +40,7 @@ public: // MACHINE DRIVERS //************************************************************************** -static MACHINE_CONFIG_START( ___empty, empty_state ) +static MACHINE_CONFIG_START( ___empty ) // video hardware MCFG_SCREEN_ADD("screen", RASTER) @@ -66,4 +66,4 @@ ROM_END // GAME DRIVERS //************************************************************************** -GAME( 2007, ___empty, 0, ___empty, 0, driver_device, 0, ROT0, "MAME", "No Driver Loaded", MACHINE_NO_SOUND ) +GAME( 2007, ___empty, 0, ___empty, 0, empty_state, 0, ROT0, "MAME", "No Driver Loaded", MACHINE_NO_SOUND ) diff --git a/src/emu/emu.h b/src/emu/emu.h index 1c11bf5aeea..0ac15177739 100644 --- a/src/emu/emu.h +++ b/src/emu/emu.h @@ -119,4 +119,7 @@ typedef device_t * (*machine_config_constructor)(machine_config &config, device_ // member templates that don't like incomplete types #include "device.ipp" +template void game_driver::driver_init_helper_impl::invoke(driver_init_helper const &helper, running_machine &machine) +{ (machine.driver_data()->*static_cast const &>(helper).m_method)(); } + #endif /* __EMU_H__ */ diff --git a/src/emu/emumem.h b/src/emu/emumem.h index f3bd06240fa..138720647f8 100644 --- a/src/emu/emumem.h +++ b/src/emu/emumem.h @@ -59,7 +59,7 @@ enum read_or_write // referenced types from other classes class device_memory_interface; class device_t; -struct game_driver; +class game_driver; // forward declarations of classes defined here class address_map; diff --git a/src/emu/emupal.cpp b/src/emu/emupal.cpp index 13e4b329e91..90ba40713cb 100644 --- a/src/emu/emupal.cpp +++ b/src/emu/emupal.cpp @@ -15,10 +15,10 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type PALETTE = device_creator; +DEFINE_DEVICE_TYPE(PALETTE, palette_device, "palette", "palette") palette_device::palette_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : device_t(mconfig, PALETTE, "palette", tag, owner, clock, "palette", __FILE__), + : device_t(mconfig, PALETTE, tag, owner, clock), device_palette_interface(mconfig, *this), m_entries(0), m_indirect_entries(0), diff --git a/src/emu/gamedrv.h b/src/emu/gamedrv.h index 4c0779bb733..b501960859a 100644 --- a/src/emu/gamedrv.h +++ b/src/emu/gamedrv.h @@ -13,6 +13,8 @@ #pragma once +#include + //************************************************************************** // CONSTANTS @@ -62,20 +64,40 @@ constexpr u32 MACHINE_BTANB_FLAGS = MACHINE_IS_INCOMPLETE | MACHIN // TYPE DEFINITIONS //************************************************************************** -// static driver initialization callback -typedef void (*driver_init_func)(running_machine &machine); - // static POD structure describing each game driver entry -struct game_driver +class game_driver { - const char * source_file; // set this to __FILE__ +public: + class driver_init_helper + { + public: + void operator()(running_machine &machine) const { m_function(*this, machine); } + protected: + constexpr driver_init_helper(void (*function)(driver_init_helper const &, running_machine &)) : m_function(function) { } + constexpr driver_init_helper(driver_init_helper const &) = default; + private: + void (* const m_function)(driver_init_helper const &, running_machine &); + }; + + template class driver_init_helper_impl : public driver_init_helper + { + public: + constexpr driver_init_helper_impl(void (DriverClass::*method)()) : driver_init_helper(&driver_init_helper_impl::invoke), m_method(method) { } + constexpr driver_init_helper_impl(driver_init_helper_impl const &) = default; + private: + static void invoke(driver_init_helper const &helper, running_machine &machine); + void (DriverClass::*const m_method)(); + }; + + template static constexpr auto make_driver_init(void (DriverClass::*method)()) { return driver_init_helper_impl(method); } + + device_type type; // static type info for driver class const char * parent; // if this is a clone, the name of the parent - const char * description; // full name of the game const char * year; // year the game was released const char * manufacturer; // manufacturer of the game machine_config_constructor machine_config; // machine driver tokens ioport_constructor ipt; // pointer to constructor for input ports - driver_init_func driver_init; // DRIVER_INIT callback + driver_init_helper const & driver_init; // DRIVER_INIT callback const tiny_rom_entry * rom; // pointer to list of ROMs for the game const char * compatible_with; const internal_layout * default_layout; // default internally defined layout @@ -96,20 +118,29 @@ struct game_driver // wrappers for declaring and defining game drivers #define GAME_NAME(name) driver_##name +#define GAME_TRAITS_NAME(name) driver_##name##traits #define GAME_EXTERN(name) extern game_driver const GAME_NAME(name) +// static game traits +#define GAME_DRIVER_TRAITS(NAME, FULLNAME) \ +namespace { \ + struct GAME_TRAITS_NAME(NAME) { static constexpr char const shortname[] = #NAME, fullname[] = FULLNAME, source[] = __FILE__; }; \ + constexpr char const GAME_TRAITS_NAME(NAME)::shortname[], GAME_TRAITS_NAME(NAME)::fullname[], GAME_TRAITS_NAME(NAME)::source[]; \ +} +#define GAME_DRIVER_TYPE(NAME, CLASS) driver_device_creator + // standard GAME() macro #define GAME(YEAR,NAME,PARENT,MACHINE,INPUT,CLASS,INIT,MONITOR,COMPANY,FULLNAME,FLAGS) \ +GAME_DRIVER_TRAITS(NAME,FULLNAME) \ extern game_driver const GAME_NAME(NAME) \ { \ - __FILE__, \ + GAME_DRIVER_TYPE(NAME, CLASS), \ #PARENT, \ - FULLNAME, \ #YEAR, \ COMPANY, \ MACHINE_CONFIG_NAME(MACHINE), \ INPUT_PORTS_NAME(INPUT), \ - &driver_device::driver_init_wrapper, \ + game_driver::make_driver_init(&CLASS::init_##INIT), \ ROM_NAME(NAME), \ nullptr, \ nullptr, \ @@ -119,16 +150,16 @@ extern game_driver const GAME_NAME(NAME) \ // standard macro with additional layout #define GAMEL(YEAR,NAME,PARENT,MACHINE,INPUT,CLASS,INIT,MONITOR,COMPANY,FULLNAME,FLAGS,LAYOUT) \ +GAME_DRIVER_TRAITS(NAME,FULLNAME) \ extern game_driver const GAME_NAME(NAME) \ { \ - __FILE__, \ + GAME_DRIVER_TYPE(NAME, CLASS), \ #PARENT, \ - FULLNAME, \ #YEAR, \ COMPANY, \ MACHINE_CONFIG_NAME(MACHINE), \ INPUT_PORTS_NAME(INPUT), \ - &driver_device::driver_init_wrapper, \ + game_driver::make_driver_init(&CLASS::init_##INIT), \ ROM_NAME(NAME), \ nullptr, \ &LAYOUT, \ @@ -139,16 +170,16 @@ extern game_driver const GAME_NAME(NAME) \ // standard console definition macro #define CONS(YEAR,NAME,PARENT,COMPAT,MACHINE,INPUT,CLASS,INIT,COMPANY,FULLNAME,FLAGS) \ +GAME_DRIVER_TRAITS(NAME,FULLNAME) \ extern game_driver const GAME_NAME(NAME) \ { \ - __FILE__, \ + GAME_DRIVER_TYPE(NAME, CLASS), \ #PARENT, \ - FULLNAME, \ #YEAR, \ COMPANY, \ MACHINE_CONFIG_NAME(MACHINE), \ INPUT_PORTS_NAME(INPUT), \ - &driver_device::driver_init_wrapper, \ + game_driver::make_driver_init(&CLASS::init_##INIT), \ ROM_NAME(NAME), \ #COMPAT, \ nullptr, \ @@ -158,16 +189,16 @@ extern game_driver const GAME_NAME(NAME) \ // standard computer definition macro #define COMP(YEAR,NAME,PARENT,COMPAT,MACHINE,INPUT,CLASS,INIT,COMPANY,FULLNAME,FLAGS) \ +GAME_DRIVER_TRAITS(NAME,FULLNAME) \ extern game_driver const GAME_NAME(NAME) \ { \ - __FILE__, \ + GAME_DRIVER_TYPE(NAME, CLASS), \ #PARENT, \ - FULLNAME, \ #YEAR, \ COMPANY, \ MACHINE_CONFIG_NAME(MACHINE), \ INPUT_PORTS_NAME(INPUT), \ - &driver_device::driver_init_wrapper, \ + game_driver::make_driver_init(&CLASS::init_##INIT), \ ROM_NAME(NAME), \ #COMPAT, \ nullptr, \ @@ -177,16 +208,16 @@ extern game_driver const GAME_NAME(NAME) \ // standard system definition macro #define SYST(YEAR,NAME,PARENT,COMPAT,MACHINE,INPUT,CLASS,INIT,COMPANY,FULLNAME,FLAGS) \ +GAME_DRIVER_TRAITS(NAME,FULLNAME) \ extern game_driver const GAME_NAME(NAME) \ { \ - __FILE__, \ + GAME_DRIVER_TYPE(NAME, CLASS), \ #PARENT, \ - FULLNAME, \ #YEAR, \ COMPANY, \ MACHINE_CONFIG_NAME(MACHINE), \ INPUT_PORTS_NAME(INPUT), \ - &driver_device::driver_init_wrapper, \ + game_driver::make_driver_init(&CLASS::init_##INIT), \ ROM_NAME(NAME), \ #COMPAT, \ nullptr, \ diff --git a/src/emu/machine.cpp b/src/emu/machine.cpp index b8ef018c724..1568dada8ef 100644 --- a/src/emu/machine.cpp +++ b/src/emu/machine.cpp @@ -1280,10 +1280,10 @@ static ADDRESS_MAP_START(dummy, AS_0, 8, dummy_space_device) AM_RANGE(0x00000000, 0xffffffff) AM_READWRITE(read, write) ADDRESS_MAP_END -const device_type DUMMY_SPACE = device_creator; +DEFINE_DEVICE_TYPE(DUMMY_SPACE, dummy_space_device, "dummy_space", "Dummy Space") dummy_space_device::dummy_space_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) : - device_t(mconfig, DUMMY_SPACE, "Dummy Space", tag, owner, clock, "dummy_space", __FILE__), + device_t(mconfig, DUMMY_SPACE, tag, owner, clock), device_memory_interface(mconfig, *this), m_space_config("dummy", ENDIANNESS_LITTLE, 8, 32, 0, nullptr, *ADDRESS_MAP_NAME(dummy)) { diff --git a/src/emu/machine.h b/src/emu/machine.h index 8b19c1a7c2c..5d3a6e3a047 100644 --- a/src/emu/machine.h +++ b/src/emu/machine.h @@ -167,11 +167,10 @@ class running_machine { DISABLE_COPYING(running_machine); - struct side_effect_disabler; + class side_effect_disabler; friend class sound_manager; friend class memory_manager; - friend struct side_effect_disabler; typedef std::function logerror_callback; @@ -290,10 +289,11 @@ public: u32 debug_flags; // the current debug flags private: - struct side_effect_disabler { + class side_effect_disabler { running_machine *m_machine; bool m_disable_se; + public: side_effect_disabler(running_machine *m, bool disable_se) : m_machine(m), m_disable_se(disable_se) { if(m_disable_se) m_machine->disable_side_effect_count(); diff --git a/src/emu/mconfig.h b/src/emu/mconfig.h index f89c8dfa9b7..8d7cb7827c7 100644 --- a/src/emu/mconfig.h +++ b/src/emu/mconfig.h @@ -103,18 +103,17 @@ private: #define MACHINE_CONFIG_NAME(_name) construct_machine_config_##_name /** - @def MACHINE_CONFIG_START(_name, _class) + @def MACHINE_CONFIG_START(_name) Begins a new machine config. @param _name name of this config - @param _class driver_device class for this config @hideinitializer */ -#define MACHINE_CONFIG_START(_name, _class) \ +#define MACHINE_CONFIG_START(_name) \ ATTR_COLD device_t *MACHINE_CONFIG_NAME(_name)(machine_config &config, device_t *owner, device_t *device) \ { \ devcb_base *devcb = nullptr; \ (void)devcb; \ - if (owner == nullptr) owner = config.device_add(nullptr, "root", driver_device_creator<_class>, 0); + if (owner == nullptr) owner = config.device_add(nullptr, "root", config.gamedrv().type, 0); /** @def MACHINE_CONFIG_FRAGMENT(_name) @@ -144,22 +143,6 @@ ATTR_COLD device_t *MACHINE_CONFIG_NAME(_name)(machine_config &config, device_t owner = MACHINE_CONFIG_NAME(_base)(config, owner, device); \ assert(owner != nullptr); -/** -@def MACHINE_CONFIG_DERIVED_CLASS(_name, _base, _class) -Begins a machine_config that is derived from another machine_config that can specify an alternate driver_device class -@param _name name of this config -@param _base name of the parent config -@param _class name of the alternate driver_device class -@hideinitializer -*/ -#define MACHINE_CONFIG_DERIVED_CLASS(_name, _base, _class) \ -ATTR_COLD device_t *MACHINE_CONFIG_NAME(_name)(machine_config &config, device_t *owner, device_t *device) \ -{ \ - devcb_base *devcb = nullptr; \ - (void)devcb; \ - if (owner == nullptr) owner = config.device_add(nullptr, "root", driver_device_creator<_class>, 0); \ - owner = MACHINE_CONFIG_NAME(_base)(config, owner, device); - /** @def MACHINE_CONFIG_END Ends a machine_config. diff --git a/src/emu/screen.cpp b/src/emu/screen.cpp index 63004cc4978..1333ee3c4a2 100644 --- a/src/emu/screen.cpp +++ b/src/emu/screen.cpp @@ -31,10 +31,7 @@ //************************************************************************** // device type definition -const device_type SCREEN = device_creator; - -template class device_finder; -template class device_finder; +DEFINE_DEVICE_TYPE(SCREEN, screen_device, "screen", "Video Screen") const attotime screen_device::DEFAULT_FRAME_PERIOD(attotime::from_hz(DEFAULT_FRAME_RATE)); @@ -548,7 +545,7 @@ void screen_device_svg_renderer::rebuild_cache() //------------------------------------------------- screen_device::screen_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : device_t(mconfig, SCREEN, "Video Screen", tag, owner, clock, "screen", __FILE__), + : device_t(mconfig, SCREEN, tag, owner, clock), m_type(SCREEN_TYPE_RASTER), m_oldstyle_vblank_supplied(false), m_refresh(0), @@ -1729,7 +1726,7 @@ void screen_device::finalize_burnin() // add two text entries describing the image sprintf(text,"%s %s", emulator_info::get_appname(), emulator_info::get_build_version()); png_add_text(&pnginfo, "Software", text); - sprintf(text, "%s %s", machine().system().manufacturer, machine().system().description); + sprintf(text, "%s %s", machine().system().manufacturer, machine().system().type.fullname()); png_add_text(&pnginfo, "System", text); // now do the actual work diff --git a/src/emu/screen.h b/src/emu/screen.h index 9176bead392..21ba8ac186a 100644 --- a/src/emu/screen.h +++ b/src/emu/screen.h @@ -363,14 +363,11 @@ private: }; // device type definition -extern const device_type SCREEN; +DECLARE_DEVICE_TYPE(SCREEN, screen_device) // iterator helper typedef device_type_iterator screen_device_iterator; -extern template class device_finder; -extern template class device_finder; - /*! @defgroup Screen device configuration macros @{ diff --git a/src/emu/softlist_dev.cpp b/src/emu/softlist_dev.cpp index 01b4d6c1076..9583163a278 100644 --- a/src/emu/softlist_dev.cpp +++ b/src/emu/softlist_dev.cpp @@ -29,7 +29,8 @@ typedef std::unordered_map softlist_map; //************************************************************************** // device type definition -const device_type SOFTWARE_LIST = device_creator; +DEFINE_DEVICE_TYPE(SOFTWARE_LIST, software_list_device, "software_list", "Software List") + false_software_list_loader false_software_list_loader::s_instance; rom_software_list_loader rom_software_list_loader::s_instance; image_software_list_loader image_software_list_loader::s_instance; @@ -79,7 +80,7 @@ bool image_software_list_loader::load_software(device_image_interface &device, s //------------------------------------------------- software_list_device::software_list_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : device_t(mconfig, SOFTWARE_LIST, "Software list", tag, owner, clock, "software_list", __FILE__), + : device_t(mconfig, SOFTWARE_LIST, tag, owner, clock), m_list_type(SOFTWARE_LIST_ORIGINAL_SYSTEM), m_filter(nullptr), m_parsed(false), diff --git a/src/emu/softlist_dev.h b/src/emu/softlist_dev.h index 89982c89060..adc73b8637c 100644 --- a/src/emu/softlist_dev.h +++ b/src/emu/softlist_dev.h @@ -187,7 +187,7 @@ private: // device type definition -extern const device_type SOFTWARE_LIST; +DECLARE_DEVICE_TYPE(SOFTWARE_LIST, software_list_device) // device type iterator typedef device_type_iterator software_list_device_iterator; diff --git a/src/emu/speaker.cpp b/src/emu/speaker.cpp index 1b14f13e73a..53ac40004c8 100644 --- a/src/emu/speaker.cpp +++ b/src/emu/speaker.cpp @@ -28,10 +28,7 @@ //************************************************************************** // device type definition -const device_type SPEAKER = device_creator; - -template class device_finder; -template class device_finder; +DEFINE_DEVICE_TYPE(SPEAKER, speaker_device, "speaker", "Speaker") @@ -44,16 +41,15 @@ template class device_finder; //------------------------------------------------- speaker_device::speaker_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : device_t(mconfig, SPEAKER, "Speaker", tag, owner, clock, "speaker", __FILE__), - device_mixer_interface(mconfig, *this), - m_x(0.0), - m_y(0.0), - m_z(0.0) + : device_t(mconfig, SPEAKER, tag, owner, clock) + , device_mixer_interface(mconfig, *this) + , m_x(0.0) + , m_y(0.0) + , m_z(0.0) #ifdef MAME_DEBUG - , - m_max_sample(0), - m_clipped_samples(0), - m_total_samples(0) + , m_max_sample(0) + , m_clipped_samples(0) + , m_total_samples(0) #endif { } diff --git a/src/emu/speaker.h b/src/emu/speaker.h index 175109fe5c2..dd0c46479be 100644 --- a/src/emu/speaker.h +++ b/src/emu/speaker.h @@ -18,7 +18,7 @@ //************************************************************************** // device type definition -extern const device_type SPEAKER; +DECLARE_DEVICE_TYPE(SPEAKER, speaker_device) @@ -79,8 +79,5 @@ protected: // speaker device iterator typedef device_type_iterator speaker_device_iterator; -extern template class device_finder; -extern template class device_finder; - #endif /* MAME_EMU_SPEAKER_H */ diff --git a/src/emu/tilemap.cpp b/src/emu/tilemap.cpp index d1db7ea6082..eb5cba30db8 100644 --- a/src/emu/tilemap.cpp +++ b/src/emu/tilemap.cpp @@ -1604,14 +1604,14 @@ void tilemap_manager::mark_all_dirty() //************************************************************************** // device type definition -const device_type TILEMAP = device_creator; +DEFINE_DEVICE_TYPE(TILEMAP, tilemap_device, "tilemap", "Tilemap") //------------------------------------------------- // tilemap_device - constructor //------------------------------------------------- tilemap_device::tilemap_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : device_t(mconfig, TILEMAP, "Tilemap", tag, owner, clock, "tilemap", __FILE__), + : device_t(mconfig, TILEMAP, tag, owner, clock), m_gfxdecode(*this, finder_base::DUMMY_TAG), m_standard_mapper(TILEMAP_STANDARD_COUNT), m_bytes_per_entry(0), diff --git a/src/emu/timer.cpp b/src/emu/timer.cpp index 577fa0150f4..9fa9f6b9ec0 100644 --- a/src/emu/timer.cpp +++ b/src/emu/timer.cpp @@ -27,14 +27,14 @@ // LIVE TIMER DEVICE //************************************************************************** -const device_type TIMER = device_creator; +DEFINE_DEVICE_TYPE(TIMER, timer_device, "timer", "Timer") //------------------------------------------------- // timer_device - constructor //------------------------------------------------- timer_device::timer_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : device_t(mconfig, TIMER, "Timer", tag, owner, clock, "timer", __FILE__), + : device_t(mconfig, TIMER, tag, owner, clock), m_type(TIMER_TYPE_GENERIC), m_callback(timer_device_expired_delegate()), m_ptr(nullptr), diff --git a/src/emu/validity.cpp b/src/emu/validity.cpp index 3a70385b3e1..8bcd637cf76 100644 --- a/src/emu/validity.cpp +++ b/src/emu/validity.cpp @@ -183,7 +183,7 @@ void validity_checker::check_shared_source(const game_driver &driver) // then iterate over all drivers and check the ones that share the same source file m_drivlist.reset(); while (m_drivlist.next()) - if (strcmp(driver.source_file, m_drivlist.driver().source_file) == 0) + if (strcmp(driver.type.source(), m_drivlist.driver().type.source()) == 0) validate_one(m_drivlist.driver()); // cleanup @@ -279,7 +279,7 @@ void validity_checker::validate_one(const game_driver &driver) { // help verbose validation detect configuration-related crashes if (m_print_verbose) - output_via_delegate(OSD_OUTPUT_CHANNEL_ERROR, "Validating driver %s (%s)...\n", driver.name, core_filename_extract_base(driver.source_file).c_str()); + output_via_delegate(OSD_OUTPUT_CHANNEL_ERROR, "Validating driver %s (%s)...\n", driver.name, core_filename_extract_base(driver.type.source()).c_str()); // set the current driver m_current_driver = &driver; @@ -315,7 +315,7 @@ void validity_checker::validate_one(const game_driver &driver) if (m_errors > start_errors || m_warnings > start_warnings || !m_verbose_text.empty()) { if (!m_print_verbose) - output_via_delegate(OSD_OUTPUT_CHANNEL_ERROR, "Driver %s (file %s): ", driver.name, core_filename_extract_base(driver.source_file).c_str()); + output_via_delegate(OSD_OUTPUT_CHANNEL_ERROR, "Driver %s (file %s): ", driver.name, core_filename_extract_base(driver.type.source()).c_str()); output_via_delegate(OSD_OUTPUT_CHANNEL_ERROR, "%d errors, %d warnings\n", m_errors - start_errors, m_warnings - start_warnings); if (m_errors > start_errors) output_indented_errors(m_error_text, "Errors"); @@ -1350,14 +1350,14 @@ void validity_checker::validate_driver() if (!m_names_map.insert(std::make_pair(m_current_driver->name, m_current_driver)).second) { const game_driver *match = m_names_map.find(m_current_driver->name)->second; - osd_printf_error("Driver name is a duplicate of %s(%s)\n", core_filename_extract_base(match->source_file).c_str(), match->name); + osd_printf_error("Driver name is a duplicate of %s(%s)\n", core_filename_extract_base(match->type.source()).c_str(), match->name); } // check for duplicate descriptions - if (!m_descriptions_map.insert(std::make_pair(m_current_driver->description, m_current_driver)).second) + if (!m_descriptions_map.insert(std::make_pair(m_current_driver->type.fullname(), m_current_driver)).second) { - const game_driver *match = m_descriptions_map.find(m_current_driver->description)->second; - osd_printf_error("Driver description is a duplicate of %s(%s)\n", core_filename_extract_base(match->source_file).c_str(), match->name); + const game_driver *match = m_descriptions_map.find(m_current_driver->type.fullname())->second; + osd_printf_error("Driver description is a duplicate of %s(%s)\n", core_filename_extract_base(match->type.source()).c_str(), match->name); } // determine if we are a clone @@ -1913,7 +1913,7 @@ void validity_checker::validate_device_types() if (m_names_map.end() != drvname) { game_driver const &dup(*drvname->second); - osd_printf_error("Device %s short name is a duplicate of %s(%s)\n", description.c_str(), core_filename_extract_base(dup.source_file).c_str(), dup.name); + osd_printf_error("Device %s short name is a duplicate of %s(%s)\n", description.c_str(), core_filename_extract_base(dup.type.source()).c_str(), dup.name); } else if (!devname.second) { @@ -1936,12 +1936,12 @@ void validity_checker::validate_device_types() if (m_names_map.end() != drvdesc) { game_driver const &dup(*drvdesc->second); - osd_printf_error("Device %s name is a duplicate of %s(%s)\n", description.c_str(), core_filename_extract_base(dup.source_file).c_str(), dup.name); + osd_printf_error("Device %s name '%s' is a duplicate of %s(%s)\n", description.c_str(), dev->name(), core_filename_extract_base(dup.type.source()).c_str(), dup.name); } else if (!devdesc.second) { device_t *const dup = config.device_add(&config.root_device(), "_dup", *devdesc.first->second, 0); - osd_printf_error("Device %s name is a duplicate of %s(%s)\n", description.c_str(), core_filename_extract_base(dup->source()).c_str(), dup->shortname()); + osd_printf_error("Device %s name '%s' is a duplicate of %s(%s)\n", description.c_str(), dev->name(), core_filename_extract_base(dup->source()).c_str(), dup->shortname()); config.device_remove(&config.root_device(), "_dup"); } } diff --git a/src/emu/video.cpp b/src/emu/video.cpp index 46a2cbfd9d8..981dd69672d 100644 --- a/src/emu/video.cpp +++ b/src/emu/video.cpp @@ -312,7 +312,7 @@ void video_manager::save_snapshot(screen_device *screen, emu_file &file) // add two text entries describing the image std::string text1 = std::string(emulator_info::get_appname()).append(" ").append(emulator_info::get_build_version()); - std::string text2 = std::string(machine().system().manufacturer).append(" ").append(machine().system().description); + std::string text2 = std::string(machine().system().manufacturer).append(" ").append(machine().system().type.fullname()); png_info pnginfo = { nullptr }; png_add_text(&pnginfo, "Software", text1.c_str()); png_add_text(&pnginfo, "System", text2.c_str()); @@ -1309,7 +1309,7 @@ void video_manager::record_frame() if (m_mng_frame == 0) { std::string text1 = std::string(emulator_info::get_appname()).append(" ").append(emulator_info::get_build_version()); - std::string text2 = std::string(machine().system().manufacturer).append(" ").append(machine().system().description); + std::string text2 = std::string(machine().system().manufacturer).append(" ").append(machine().system().type.fullname()); png_add_text(&pnginfo, "Software", text1.c_str()); png_add_text(&pnginfo, "System", text2.c_str()); } diff --git a/src/frontend/mame/clifront.cpp b/src/frontend/mame/clifront.cpp index a9a4dada59b..dcb9f29c34c 100644 --- a/src/frontend/mame/clifront.cpp +++ b/src/frontend/mame/clifront.cpp @@ -281,7 +281,7 @@ int cli_frontend::execute(std::vector &args) "supported machines (best match first):\n\n", m_options.system_name()); for (auto & matche : matches) if (matche != -1) - osd_printf_error("%-18s%s\n", drivlist.driver(matche).name, drivlist.driver(matche).description); + osd_printf_error("%-18s%s\n", drivlist.driver(matche).name, drivlist.driver(matche).type.fullname()); } } catch (emu_exception &) @@ -352,7 +352,7 @@ void cli_frontend::listfull(const std::vector &args) // iterate through drivers and output the info while (drivlist.next()) if ((drivlist.driver().flags & MACHINE_NO_STANDALONE) == 0) - osd_printf_info("%-18s\"%s\"\n", drivlist.driver().name, drivlist.driver().description); + osd_printf_info("%-18s\"%s\"\n", drivlist.driver().name, drivlist.driver().type.fullname()); } @@ -372,7 +372,7 @@ void cli_frontend::listsource(const std::vector &args) // iterate through drivers and output the info while (drivlist.next()) - osd_printf_info("%-16s %s\n", drivlist.driver().name, core_filename_extract_base(drivlist.driver().source_file).c_str()); + osd_printf_info("%-16s %s\n", drivlist.driver().name, core_filename_extract_base(drivlist.driver().type.source()).c_str()); } @@ -453,7 +453,7 @@ void cli_frontend::listbrothers(const std::vector &args) // otherwise, walk excluded items in the final list and mark any that match drivlist.reset(); while (drivlist.next_excluded()) - if (strcmp(drivlist.driver().source_file, initial_drivlist.driver().source_file) == 0) + if (strcmp(drivlist.driver().type.source(), initial_drivlist.driver().type.source()) == 0) drivlist.include(); } @@ -465,7 +465,7 @@ void cli_frontend::listbrothers(const std::vector &args) while (drivlist.next()) { int clone_of = drivlist.clone(); - osd_printf_info("%-20s %-16s %-16s\n", core_filename_extract_base(drivlist.driver().source_file).c_str(), drivlist.driver().name, (clone_of == -1 ? "" : drivlist.driver(clone_of).name)); + osd_printf_info("%-20s %-16s %-16s\n", core_filename_extract_base(drivlist.driver().type.source()).c_str(), drivlist.driver().name, (clone_of == -1 ? "" : drivlist.driver(clone_of).name)); } } @@ -625,7 +625,7 @@ void cli_frontend::listdevices(const std::vector &args) if (!first) printf("\n"); first = false; - printf("Driver %s (%s):\n", drivlist.driver().name, drivlist.driver().description); + printf("Driver %s (%s):\n", drivlist.driver().name, drivlist.driver().type.fullname()); // build a list of devices std::vector device_list; diff --git a/src/frontend/mame/info.cpp b/src/frontend/mame/info.cpp index fa742dfe2f4..ea9b39bc731 100644 --- a/src/frontend/mame/info.cpp +++ b/src/frontend/mame/info.cpp @@ -303,10 +303,10 @@ void info_xml_creator::output_one(device_type_set *devtypes) fprintf(m_output, " name=\"%s\"", util::xml::normalize_string(driver.name)); // strip away any path information from the source_file and output it - const char *start = strrchr(driver.source_file, '/'); + const char *start = strrchr(driver.type.source(), '/'); if (!start) - start = strrchr(driver.source_file, '\\'); - start = start ? (start + 1) : driver.source_file; + start = strrchr(driver.type.source(), '\\'); + start = start ? (start + 1) : driver.type.source(); fprintf(m_output, " sourcefile=\"%s\"", util::xml::normalize_string(start)); // append bios and runnable flags @@ -329,8 +329,8 @@ void info_xml_creator::output_one(device_type_set *devtypes) fprintf(m_output, ">\n"); // output game description - if (driver.description != nullptr) - fprintf(m_output, "\t\t%s\n", util::xml::normalize_string(driver.description)); + if (driver.type.fullname() != nullptr) + fprintf(m_output, "\t\t%s\n", util::xml::normalize_string(driver.type.fullname())); // print the year only if is a number or another allowed character (? or +) if (driver.year != nullptr && strspn(driver.year, "0123456789?+") == strlen(driver.year)) diff --git a/src/frontend/mame/luaengine.cpp b/src/frontend/mame/luaengine.cpp index 7e7d5d78572..0628afc2350 100644 --- a/src/frontend/mame/luaengine.cpp +++ b/src/frontend/mame/luaengine.cpp @@ -719,7 +719,7 @@ void lua_engine::initialize() sol::table emu = sol().create_named_table("emu"); emu["app_name"] = &emulator_info::get_appname_lower; emu["app_version"] = &emulator_info::get_bare_build_version; - emu["gamename"] = [this](){ return machine().system().description; }; + emu["gamename"] = [this](){ return machine().system().type.fullname(); }; emu["romname"] = [this](){ return machine().basename(); }; emu["softname"] = [this](){ return machine().options().software_name(); }; emu["keypost"] = [this](const char *keys){ machine().ioport().natkeyboard().post_utf8(keys); }; @@ -1074,10 +1074,10 @@ void lua_engine::initialize() */ sol().registry().new_usertype("game_driver", "new", sol::no_constructor, - "source_file", sol::readonly(&game_driver::source_file), + "source_file", sol::property([] (game_driver const &driver) { return &driver.type.source()[0]; }), "parent", sol::readonly(&game_driver::parent), "name", sol::property([] (game_driver const &driver) { return &driver.name[0]; }), - "description", sol::readonly(&game_driver::description), + "description", sol::property([] (game_driver const &driver) { return &driver.type.fullname()[0]; }), "year", sol::readonly(&game_driver::year), "manufacturer", sol::readonly(&game_driver::manufacturer), "compatible_with", sol::readonly(&game_driver::compatible_with), diff --git a/src/frontend/mame/mameopts.cpp b/src/frontend/mame/mameopts.cpp index 2fc84fbeba9..05981854cef 100644 --- a/src/frontend/mame/mameopts.cpp +++ b/src/frontend/mame/mameopts.cpp @@ -551,7 +551,7 @@ void mame_options::parse_standard_inis(emu_options &options, std::string &error_ } // next parse "source/.ini" - std::string sourcename = core_filename_extract_base(cursystem->source_file, true).insert(0, "source" PATH_SEPARATOR); + std::string sourcename = core_filename_extract_base(cursystem->type.source(), true).insert(0, "source" PATH_SEPARATOR); parse_one_ini(options,sourcename.c_str(), OPTION_PRIORITY_SOURCE_INI, &error_string); // then parse the grandparent, parent, and system-specific INIs diff --git a/src/frontend/mame/mameopts.h b/src/frontend/mame/mameopts.h index 3c543e65c66..683fd88693d 100644 --- a/src/frontend/mame/mameopts.h +++ b/src/frontend/mame/mameopts.h @@ -8,10 +8,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_FRONTEND_MAMEOPTS_H +#define MAME_FRONTEND_MAMEOPTS_H -#ifndef __MAMEOPTS_H__ -#define __MAMEOPTS_H__ +#pragma once #include "emuopts.h" @@ -45,7 +45,7 @@ enum //************************************************************************** // forward references -struct game_driver; +class game_driver; class software_part; class mame_options @@ -88,4 +88,4 @@ private: static int m_device_options; }; -#endif /* __MAMEOPTS_H__ */ +#endif // MAME_FRONTEND_MAMEOPTS_H diff --git a/src/frontend/mame/ui/auditmenu.cpp b/src/frontend/mame/ui/auditmenu.cpp index 9fbccdf55eb..ed9e0094bfa 100644 --- a/src/frontend/mame/ui/auditmenu.cpp +++ b/src/frontend/mame/ui/auditmenu.cpp @@ -39,7 +39,7 @@ bool sorted_game_list(const game_driver *x, const game_driver *y) bool cloney = (y->parent[0] != '0'); if (!clonex && !cloney) - return (cs_stricmp(x->description, y->description) < 0); + return (cs_stricmp(x->type.fullname(), y->type.fullname()) < 0); int cx = -1, cy = -1; if (clonex) @@ -57,27 +57,27 @@ bool sorted_game_list(const game_driver *x, const game_driver *y) } if (!clonex && !cloney) - return (cs_stricmp(x->description, y->description) < 0); + return (cs_stricmp(x->type.fullname(), y->type.fullname()) < 0); else if (clonex && cloney) { if (!cs_stricmp(x->parent, y->parent)) - return (cs_stricmp(x->description, y->description) < 0); + return (cs_stricmp(x->type.fullname(), y->type.fullname()) < 0); else - return (cs_stricmp(driver_list::driver(cx).description, driver_list::driver(cy).description) < 0); + return (cs_stricmp(driver_list::driver(cx).type.fullname(), driver_list::driver(cy).type.fullname()) < 0); } else if (!clonex && cloney) { if (!cs_stricmp(x->name, y->parent)) return true; else - return (cs_stricmp(x->description, driver_list::driver(cy).description) < 0); + return (cs_stricmp(x->type.fullname(), driver_list::driver(cy).type.fullname()) < 0); } else { if (!cs_stricmp(x->parent, y->name)) return false; else - return (cs_stricmp(driver_list::driver(cx).description, y->description) < 0); + return (cs_stricmp(driver_list::driver(cx).type.fullname(), y->type.fullname()) < 0); } } diff --git a/src/frontend/mame/ui/datmenu.cpp b/src/frontend/mame/ui/datmenu.cpp index 3bd13dd4d04..6474d381430 100644 --- a/src/frontend/mame/ui/datmenu.cpp +++ b/src/frontend/mame/ui/datmenu.cpp @@ -287,7 +287,7 @@ void menu_dats_view::custom_render(void *selectedref, float top, float bottom, f { float maxwidth = origx2 - origx1; float width; - std::string driver = (m_issoft == true) ? m_swinfo->longname : m_driver->description; + std::string driver = (m_issoft == true) ? m_swinfo->longname : m_driver->type.fullname(); ui().draw_text_full(container(), driver.c_str(), 0.0f, 0.0f, 1.0f, ui::text_layout::CENTER, ui::text_layout::TRUNCATE, mame_ui_manager::NONE, rgb_t::white(), rgb_t::black(), &width, nullptr); diff --git a/src/frontend/mame/ui/info.cpp b/src/frontend/mame/ui/info.cpp index 8101faad3c6..dfcffcac1fb 100644 --- a/src/frontend/mame/ui/info.cpp +++ b/src/frontend/mame/ui/info.cpp @@ -204,10 +204,10 @@ std::string machine_info::game_info_string() // print description, manufacturer, and CPU: util::stream_format(buf, _("%1$s\n%2$s %3$s\nDriver: %4$s\n\nCPU:\n"), - m_machine.system().description, + m_machine.system().type.fullname(), m_machine.system().year, m_machine.system().manufacturer, - core_filename_extract_base(m_machine.system().source_file)); + core_filename_extract_base(m_machine.system().type.source())); // loop over all CPUs execute_interface_iterator execiter(m_machine.root_device()); @@ -396,7 +396,7 @@ menu_image_info::~menu_image_info() void menu_image_info::populate(float &customtop, float &custombottom) { - item_append(machine().system().description, "", FLAG_DISABLE, nullptr); + item_append(machine().system().type.fullname(), "", FLAG_DISABLE, nullptr); item_append("", "", FLAG_DISABLE, nullptr); for (device_image_interface &image : image_interface_iterator(machine().root_device())) diff --git a/src/frontend/mame/ui/inifile.cpp b/src/frontend/mame/ui/inifile.cpp index 29dc08911c4..839ecc2d39b 100644 --- a/src/frontend/mame/ui/inifile.cpp +++ b/src/frontend/mame/ui/inifile.cpp @@ -159,7 +159,7 @@ favorite_manager::favorite_manager(running_machine &machine, ui_options &moption void favorite_manager::add_favorite_game(const game_driver *driver) { - m_list.emplace(driver->description, ui_software_info{ driver->name, driver->description, "", "", "", 0, "", driver, "", "", "", 1, "", "", "", true }); + m_list.emplace(driver->type.fullname(), ui_software_info{ driver->name, driver->type.fullname(), "", "", "", 0, "", driver, "", "", "", 1, "", "", "", true }); save_favorite_games(); } diff --git a/src/frontend/mame/ui/miscmenu.cpp b/src/frontend/mame/ui/miscmenu.cpp index 3ec2bf78cd3..6f5d211d933 100644 --- a/src/frontend/mame/ui/miscmenu.cpp +++ b/src/frontend/mame/ui/miscmenu.cpp @@ -641,7 +641,7 @@ void menu_export::handle() // iterate through drivers and output the info while (drvlist.next()) if ((drvlist.driver().flags & MACHINE_NO_STANDALONE) == 0) - util::stream_format(buffer, "%-18s\"%s\"\n", drvlist.driver().name, drvlist.driver().description); + util::stream_format(buffer, "%-18s\"%s\"\n", drvlist.driver().name, drvlist.driver().type.fullname()); file.puts(buffer.str().c_str()); file.close(); machine().popmessage(_("%s.txt saved under ui folder."), filename.c_str()); @@ -806,7 +806,7 @@ void menu_machine_configure::custom_render(void *selectedref, float top, float b float maxwidth = origx2 - origx1; text[0] = _("Configure machine:"); - text[1] = m_drv->description; + text[1] = m_drv->type.fullname(); for (auto & elem : text) { diff --git a/src/frontend/mame/ui/selgame.cpp b/src/frontend/mame/ui/selgame.cpp index 6d298f4d150..08c8bd545d0 100644 --- a/src/frontend/mame/ui/selgame.cpp +++ b/src/frontend/mame/ui/selgame.cpp @@ -375,13 +375,13 @@ void menu_select_game::handle() if (!mfav.isgame_favorite(driver)) { mfav.add_favorite_game(driver); - machine().popmessage(_("%s\n added to favorites list."), driver->description); + machine().popmessage(_("%s\n added to favorites list."), driver->type.fullname()); } else { mfav.remove_favorite_game(); - machine().popmessage(_("%s\n removed from favorites list."), driver->description); + machine().popmessage(_("%s\n removed from favorites list."), driver->type.fullname()); } } } @@ -546,7 +546,7 @@ void menu_select_game::populate(float &customtop, float &custombottom) cloneof = false; } - item_append(elem->description, "", (cloneof) ? (flags_ui | FLAG_INVERT) : flags_ui, (void *)elem); + item_append(elem->type.fullname(), "", (cloneof) ? (flags_ui | FLAG_INVERT) : flags_ui, (void *)elem); curitem++; } } @@ -1185,7 +1185,7 @@ void menu_select_game::populate_search() for (; index < m_displaylist.size(); ++index) { // pick the best match between driver name and description - int curpenalty = fuzzy_substring(m_search, m_displaylist[index]->description); + int curpenalty = fuzzy_substring(m_search, m_displaylist[index]->type.fullname()); int tmp = fuzzy_substring(m_search, m_displaylist[index]->name); curpenalty = std::min(curpenalty, tmp); @@ -1219,7 +1219,7 @@ void menu_select_game::populate_search() if (cx != -1 && ((driver_list::driver(cx).flags & MACHINE_IS_BIOS_ROOT) != 0)) cloneof = false; } - item_append(m_searchlist[curitem]->description, "", (!cloneof) ? flags_ui : (FLAG_INVERT | flags_ui), + item_append(m_searchlist[curitem]->type.fullname(), "", (!cloneof) ? flags_ui : (FLAG_INVERT | flags_ui), (void *)m_searchlist[curitem]); } } @@ -1238,7 +1238,7 @@ void menu_select_game::general_info(const game_driver *driver, std::string &buff int cloneof = driver_list::non_bios_clone(*driver); if (cloneof != -1) - util::stream_format(str, _("Driver is Clone of: %1$-.100s\n"), driver_list::driver(cloneof).description); + util::stream_format(str, _("Driver is Clone of: %1$-.100s\n"), driver_list::driver(cloneof).type.fullname()); else str << _("Driver is Parent:\n"); @@ -1732,7 +1732,7 @@ std::string menu_select_game::make_driver_description(game_driver const &driver) std::string menu_select_game::make_software_description(ui_software_info const &software) const { // first line is system - return string_format(_("System: %1$-.100s"), software.driver->description); + return string_format(_("System: %1$-.100s"), software.driver->type.fullname()); } } // namespace ui diff --git a/src/frontend/mame/ui/selmenu.cpp b/src/frontend/mame/ui/selmenu.cpp index 9c9ba409a93..03cbe9fa10c 100644 --- a/src/frontend/mame/ui/selmenu.cpp +++ b/src/frontend/mame/ui/selmenu.cpp @@ -288,7 +288,7 @@ void menu_select_launch::custom_render(void *selectedref, float top, float botto int cloneof = driver_list::non_bios_clone(*driver); if (cloneof != -1) - tempbuf[2] = string_format(_("Driver is clone of: %1$-.100s"), driver_list::driver(cloneof).description); + tempbuf[2] = string_format(_("Driver is clone of: %1$-.100s"), driver_list::driver(cloneof).type.fullname()); else tempbuf[2] = _("Driver is parent"); diff --git a/src/frontend/mame/ui/selsoft.cpp b/src/frontend/mame/ui/selsoft.cpp index c5bd3d9a502..5d95d4c9a2e 100644 --- a/src/frontend/mame/ui/selsoft.cpp +++ b/src/frontend/mame/ui/selsoft.cpp @@ -518,7 +518,7 @@ void menu_select_software::populate(float &customtop, float &custombottom) void menu_select_software::build_software_list() { // add start empty item - m_swinfo.emplace_back(m_driver->name, m_driver->description, "", "", "", 0, "", m_driver, "", "", "", 1, "", "", "", true); + m_swinfo.emplace_back(m_driver->name, m_driver->type.fullname(), "", "", "", 0, "", m_driver, "", "", "", 1, "", "", "", true); machine_config config(*m_driver, machine().options()); @@ -1497,7 +1497,7 @@ void menu_select_software::make_topbox_text(std::string &line0, std::string &lin // determine the text for the header int vis_item = !m_search.empty() ? visible_items : (m_has_empty_start ? visible_items - 1 : visible_items); line0 = string_format(_("%1$s %2$s ( %3$d / %4$d software packages )"), emulator_info::get_appname(), bare_build_version, vis_item, m_swinfo.size() - 1); - line1 = string_format(_("Driver: \"%1$s\" software list "), m_driver->description); + line1 = string_format(_("Driver: \"%1$s\" software list "), m_driver->type.fullname()); std::string filtered; if (sw_filters::actual == UI_SW_REGION && m_filter.region.ui.size() != 0) @@ -1518,7 +1518,7 @@ void menu_select_software::make_topbox_text(std::string &line0, std::string &lin std::string menu_select_software::make_driver_description(game_driver const &driver) const { // first line is game description - return string_format(_("%1$-.100s"), driver.description); + return string_format(_("%1$-.100s"), driver.type.fullname()); } diff --git a/src/frontend/mame/ui/simpleselgame.cpp b/src/frontend/mame/ui/simpleselgame.cpp index 76578d132dc..956594c52f7 100644 --- a/src/frontend/mame/ui/simpleselgame.cpp +++ b/src/frontend/mame/ui/simpleselgame.cpp @@ -249,7 +249,7 @@ void simple_menu_select_game::populate(float &customtop, float &custombottom) if (curmatch != -1) { int cloneof = m_drivlist->non_bios_clone(curmatch); - item_append(m_drivlist->driver(curmatch).name, m_drivlist->driver(curmatch).description, (cloneof == -1) ? 0 : FLAG_INVERT, (void *)&m_drivlist->driver(curmatch)); + item_append(m_drivlist->driver(curmatch).name, m_drivlist->driver(curmatch).type.fullname(), (cloneof == -1) ? 0 : FLAG_INVERT, (void *)&m_drivlist->driver(curmatch)); } } @@ -317,13 +317,13 @@ void simple_menu_select_game::custom_render(void *selectedref, float top, float const char *gfxstat, *soundstat; // first line is game name - tempbuf[0] = string_format(_("%1$-.100s"), driver->description); + tempbuf[0] = string_format(_("%1$-.100s"), driver->type.fullname()); // next line is year, manufacturer tempbuf[1] = string_format(_("%1$s, %2$-.100s"), driver->year, driver->manufacturer); // next line source path - tempbuf[2] = string_format(_("Driver: %1$-.100s"), core_filename_extract_base(driver->source_file)); + tempbuf[2] = string_format(_("Driver: %1$-.100s"), core_filename_extract_base(driver->type.source())); // next line is overall driver status if (driver->flags & MACHINE_NOT_WORKING) diff --git a/src/lib/netlist/plib/pstring.h b/src/lib/netlist/plib/pstring.h index eb7c24b938e..cabce0e7b93 100644 --- a/src/lib/netlist/plib/pstring.h +++ b/src/lib/netlist/plib/pstring.h @@ -80,7 +80,7 @@ public: private: const mem_t m; }; - typedef const ref_value_type& const_reference ; + typedef const ref_value_type& const_reference; typedef const_reference reference; enum enc_t diff --git a/src/mame/audio/8080bw.cpp b/src/mame/audio/8080bw.cpp index 8928b1468bf..b8ec710d20f 100644 --- a/src/mame/audio/8080bw.cpp +++ b/src/mame/audio/8080bw.cpp @@ -908,7 +908,7 @@ WRITE8_MEMBER(_8080bw_state::schaser_sh_port_1_w) m_sn->amplitude_res_w(RES_K(200)); } m_sn->enable_w(!(m_schaser_effect_555_is_low || m_schaser_explosion)); - m_sn->one_shot_cap_voltage_w(!(m_schaser_effect_555_is_low || m_schaser_explosion) ? 0 : SN76477_EXTERNAL_VOLTAGE_DISCONNECT); + m_sn->one_shot_cap_voltage_w(!(m_schaser_effect_555_is_low || m_schaser_explosion) ? 0 : sn76477_device::EXTERNAL_VOLTAGE_DISCONNECT); m_sn->mixer_b_w(m_schaser_explosion); } @@ -958,7 +958,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(_8080bw_state::schaser_effect_555_cb) } m_schaser_effect_555_timer->adjust(new_time, effect); m_sn->enable_w(!(m_schaser_effect_555_is_low || m_schaser_explosion)); - m_sn->one_shot_cap_voltage_w(!(m_schaser_effect_555_is_low || m_schaser_explosion) ? 0 : SN76477_EXTERNAL_VOLTAGE_DISCONNECT); + m_sn->one_shot_cap_voltage_w(!(m_schaser_effect_555_is_low || m_schaser_explosion) ? 0 : sn76477_device::EXTERNAL_VOLTAGE_DISCONNECT); } diff --git a/src/mame/audio/alesis.cpp b/src/mame/audio/alesis.cpp index 16fbc6249ff..bc08e7f2ef5 100644 --- a/src/mame/audio/alesis.cpp +++ b/src/mame/audio/alesis.cpp @@ -19,7 +19,7 @@ #define LOG 1 // device type definition -const device_type ALESIS_DM3AG = device_creator; +DEFINE_DEVICE_TYPE(ALESIS_DM3AG, alesis_dm3ag_device, "alesis_dm3ag", "Alesis DM3AG") /*************************************************************************** IMPLEMENTATION @@ -38,9 +38,9 @@ MACHINE_CONFIG_END //------------------------------------------------- alesis_dm3ag_device::alesis_dm3ag_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, ALESIS_DM3AG, "Alesis DM3AG", tag, owner, clock, "alesis_dm3ag", __FILE__), - m_dac(*this, "dac"), - m_samples(*this, DEVICE_SELF) + : device_t(mconfig, ALESIS_DM3AG, tag, owner, clock) + , m_dac(*this, "dac") + , m_samples(*this, DEVICE_SELF) { } diff --git a/src/mame/audio/arcadia.cpp b/src/mame/audio/arcadia.cpp index 6b2d632f906..796d8e816e5 100644 --- a/src/mame/audio/arcadia.cpp +++ b/src/mame/audio/arcadia.cpp @@ -42,15 +42,15 @@ // device type definition -const device_type ARCADIA_SOUND = device_creator; +DEFINE_DEVICE_TYPE(ARCADIA_SOUND, arcadia_sound_device, "arcadia_sound", "Arcadia Audio Custom") //------------------------------------------------- // arcadia_sound_device - constructor //------------------------------------------------- arcadia_sound_device::arcadia_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, ARCADIA_SOUND, "Arcadia Audio Custom", tag, owner, clock, "arcadia_sound", __FILE__), - device_sound_interface(mconfig, *this) + : device_t(mconfig, ARCADIA_SOUND, tag, owner, clock) + , device_sound_interface(mconfig, *this) { } diff --git a/src/mame/audio/arcadia.h b/src/mame/audio/arcadia.h index 0b95e0c44b5..931801d74d8 100644 --- a/src/mame/audio/arcadia.h +++ b/src/mame/audio/arcadia.h @@ -1,7 +1,7 @@ // license:GPL-2.0+ // copyright-holders:Peter Trauner -#ifndef ARCADIA_SOUND_H_ -#define ARCADIA_SOUND_H_ +#ifndef MAME_AUDIO_ARCADIA_H +#define MAME_AUDIO_ARCADIA_H //************************************************************************** // INTERFACE CONFIGURATION MACROS @@ -16,8 +16,7 @@ // ======================> arcadia_sound_device -class arcadia_sound_device : public device_t, - public device_sound_interface +class arcadia_sound_device : public device_t, public device_sound_interface { public: // construction/destruction @@ -39,6 +38,6 @@ protected: }; // device type definition -extern const device_type ARCADIA_SOUND; +DECLARE_DEVICE_TYPE(ARCADIA_SOUND, arcadia_sound_device) -#endif /* ARCADIA_SOUND_H_ */ +#endif // MAME_AUDIO_ARCADIA_H diff --git a/src/mame/audio/atarijsa.cpp b/src/mame/audio/atarijsa.cpp index 1aa9ea1e3d1..ca8a852e28c 100644 --- a/src/mame/audio/atarijsa.cpp +++ b/src/mame/audio/atarijsa.cpp @@ -84,10 +84,10 @@ ALL: the LPF (low pass filter) bit which selectively places a lowpass filter in // GLOBAL VARIABLES //************************************************************************** -const device_type ATARI_JSA_I = device_creator; -const device_type ATARI_JSA_II = device_creator; -const device_type ATARI_JSA_III = device_creator; -const device_type ATARI_JSA_IIIS = device_creator; +DEFINE_DEVICE_TYPE(ATARI_JSA_I, atari_jsa_i_device, "atjsa1", "Atari JSA I Sound Board") +DEFINE_DEVICE_TYPE(ATARI_JSA_II, atari_jsa_ii_device, "atjsa2", "Atari JSA II Sound Board") +DEFINE_DEVICE_TYPE(ATARI_JSA_III, atari_jsa_iii_device, "atjsa3", "Atari JSA III Sound Board") +DEFINE_DEVICE_TYPE(ATARI_JSA_IIIS, atari_jsa_iiis_device, "atjsa3s", "Atari JSA IIIs Sound Board") @@ -205,7 +205,7 @@ MACHINE_CONFIG_FRAGMENT( jsa_ii_config ) MCFG_YM2151_PORT_WRITE_HANDLER(WRITE8(atari_jsa_base_device, ym2151_port_w)) MCFG_MIXER_ROUTE(ALL_OUTPUTS, DEVICE_SELF_OWNER, 0.60, 0) - MCFG_OKIM6295_ADD("oki1", JSA_MASTER_CLOCK/3, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki1", JSA_MASTER_CLOCK/3, PIN7_HIGH) MCFG_MIXER_ROUTE(ALL_OUTPUTS, DEVICE_SELF_OWNER, 0.75, 0) MACHINE_CONFIG_END @@ -228,7 +228,7 @@ MACHINE_CONFIG_DERIVED( jsa_iiis_config, jsa_iii_config ) MCFG_DEVICE_MODIFY("ym2151") MCFG_MIXER_ROUTE(1, DEVICE_SELF_OWNER, 0.60, 1) - MCFG_OKIM6295_ADD("oki2", JSA_MASTER_CLOCK/3, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki2", JSA_MASTER_CLOCK/3, PIN7_HIGH) MCFG_MIXER_ROUTE(ALL_OUTPUTS, DEVICE_SELF_OWNER, 0.75, 1) MCFG_DEVICE_ADDRESS_MAP(AS_0, jsa3_oki2_map) MACHINE_CONFIG_END @@ -285,8 +285,8 @@ INPUT_PORTS_END // atari_jsa_base_device - constructor //------------------------------------------------- -atari_jsa_base_device::atari_jsa_base_device(const machine_config &mconfig, device_type devtype, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, int channels) - : device_t(mconfig, devtype, name, tag, owner, clock, shortname, __FILE__), +atari_jsa_base_device::atari_jsa_base_device(const machine_config &mconfig, device_type devtype, const char *tag, device_t *owner, uint32_t clock, int channels) + : device_t(mconfig, devtype, tag, owner, clock), device_mixer_interface(mconfig, *this, channels), m_soundcomm(*this, "soundcomm"), m_jsacpu(*this, "cpu"), @@ -412,8 +412,8 @@ WRITE_LINE_MEMBER( atari_jsa_base_device::main_int_write_line ) // atari_jsa_oki_base_device: Constructor //------------------------------------------------- -atari_jsa_oki_base_device::atari_jsa_oki_base_device(const machine_config &mconfig, device_type devtype, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, int channels) - : atari_jsa_base_device(mconfig, devtype, name, tag, owner, clock, shortname, channels), +atari_jsa_oki_base_device::atari_jsa_oki_base_device(const machine_config &mconfig, device_type devtype, const char *tag, device_t *owner, uint32_t clock, int channels) + : atari_jsa_base_device(mconfig, devtype, tag, owner, clock, channels), m_oki1(*this, "oki1"), m_oki2(*this, "oki2"), m_oki1_region(*this, "oki1"), @@ -629,7 +629,7 @@ void atari_jsa_oki_base_device::update_all_volumes() //------------------------------------------------- atari_jsa_i_device::atari_jsa_i_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : atari_jsa_base_device(mconfig, ATARI_JSA_I, "Atari JSA I Sound Board", tag, owner, clock, "atjsa1", 2), + : atari_jsa_base_device(mconfig, ATARI_JSA_I, tag, owner, clock, 2), m_pokey(*this, "pokey"), m_tms5220(*this, "tms"), m_jsai(*this, "JSAI"), @@ -844,7 +844,7 @@ void atari_jsa_i_device::update_all_volumes() //------------------------------------------------- atari_jsa_ii_device::atari_jsa_ii_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : atari_jsa_oki_base_device(mconfig, ATARI_JSA_II, "Atari JSA II Sound Board", tag, owner, clock, "atjsa2", 1) + : atari_jsa_oki_base_device(mconfig, ATARI_JSA_II, tag, owner, clock, 1) , m_jsaii(*this, "JSAII") { } @@ -908,13 +908,12 @@ ioport_constructor atari_jsa_ii_device::device_input_ports() const //------------------------------------------------- atari_jsa_iii_device::atari_jsa_iii_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : atari_jsa_oki_base_device(mconfig, ATARI_JSA_III, "Atari JSA III Sound Board", tag, owner, clock, "atjsa3", 1) - , m_jsaiii(*this, "JSAIII") + : atari_jsa_iii_device(mconfig, ATARI_JSA_III, tag, owner, clock, 1) { } -atari_jsa_iii_device::atari_jsa_iii_device(const machine_config &mconfig, device_type devtype, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, int channels) - : atari_jsa_oki_base_device(mconfig, devtype, name, tag, owner, clock, shortname, channels) +atari_jsa_iii_device::atari_jsa_iii_device(const machine_config &mconfig, device_type devtype, const char *tag, device_t *owner, uint32_t clock, int channels) + : atari_jsa_oki_base_device(mconfig, devtype, tag, owner, clock, channels) , m_jsaiii(*this, "JSAIII") { } @@ -977,7 +976,7 @@ ioport_constructor atari_jsa_iii_device::device_input_ports() const //------------------------------------------------- atari_jsa_iiis_device::atari_jsa_iiis_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : atari_jsa_iii_device(mconfig, ATARI_JSA_IIIS, "Atari JSA IIIs Sound Board", tag, owner, clock, "atjsa3s", 2) + : atari_jsa_iii_device(mconfig, ATARI_JSA_IIIS, tag, owner, clock, 2) { } diff --git a/src/mame/audio/atarijsa.h b/src/mame/audio/atarijsa.h index de3ff0dc144..a6664452765 100644 --- a/src/mame/audio/atarijsa.h +++ b/src/mame/audio/atarijsa.h @@ -8,10 +8,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_AUDIO_ATARI_JSA_H +#define MAME_AUDIO_ATARI_JSA_H -#ifndef __ATARI_JSA__ -#define __ATARI_JSA__ +#pragma once #include "cpu/m6502/m6502.h" #include "sound/tms5220.h" @@ -25,10 +25,10 @@ // GLOBAL VARIABLES //************************************************************************** -extern const device_type ATARI_JSA_I; -extern const device_type ATARI_JSA_II; -extern const device_type ATARI_JSA_III; -extern const device_type ATARI_JSA_IIIS; +DECLARE_DEVICE_TYPE(ATARI_JSA_I, atari_jsa_i_device) +DECLARE_DEVICE_TYPE(ATARI_JSA_II, atari_jsa_ii_device) +DECLARE_DEVICE_TYPE(ATARI_JSA_III, atari_jsa_iii_device) +DECLARE_DEVICE_TYPE(ATARI_JSA_IIIS, atari_jsa_iiis_device) @@ -80,12 +80,12 @@ class atari_jsa_base_device : public device_t, { protected: // construction/destruction - atari_jsa_base_device(const machine_config &mconfig, device_type devtype, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, int channels); + atari_jsa_base_device(const machine_config &mconfig, device_type devtype, const char *tag, device_t *owner, uint32_t clock, int channels); public: // static configuration - template static devcb_base &static_set_test_read_cb(device_t &device, _Object object) { return downcast(device).m_test_read_cb.set_callback(object); } - template static devcb_base &static_set_main_int_cb(device_t &device, _Object object) { return downcast(device).m_main_int_cb.set_callback(object); } + template static devcb_base &static_set_test_read_cb(device_t &device, Object &&cb) { return downcast(device).m_test_read_cb.set_callback(std::forward(cb)); } + template static devcb_base &static_set_main_int_cb(device_t &device, Object &&cb) { return downcast(device).m_main_int_cb.set_callback(std::forward(cb)); } // getters m6502_device &soundcpu() const { return *m_jsacpu; } @@ -140,7 +140,7 @@ class atari_jsa_oki_base_device : public atari_jsa_base_device { protected: // derived construction/destruction - atari_jsa_oki_base_device(const machine_config &mconfig, device_type devtype, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, int channels); + atari_jsa_oki_base_device(const machine_config &mconfig, device_type devtype, const char *tag, device_t *owner, uint32_t clock, int channels); public: // read/write handlers @@ -245,7 +245,7 @@ public: protected: // derived construction/destruction - atari_jsa_iii_device(const machine_config &mconfig, device_type devtype, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, int channels); + atari_jsa_iii_device(const machine_config &mconfig, device_type devtype, const char *tag, device_t *owner, uint32_t clock, int channels); public: // read/write handlers @@ -274,4 +274,4 @@ protected: }; -#endif +#endif // MAME_AUDIO_ATARI_JSA_H diff --git a/src/mame/audio/cage.cpp b/src/mame/audio/cage.cpp index 87dca1ebcb0..42a8c74c2c0 100644 --- a/src/mame/audio/cage.cpp +++ b/src/mame/audio/cage.cpp @@ -106,7 +106,7 @@ static const char *const register_names[] = * *************************************/ -const device_type ATARI_CAGE = device_creator; +DEFINE_DEVICE_TYPE(ATARI_CAGE, atari_cage_device, "atari_cage", "Atari CAGE") //------------------------------------------------- @@ -114,15 +114,12 @@ const device_type ATARI_CAGE = device_creator; //------------------------------------------------- atari_cage_device::atari_cage_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, ATARI_CAGE, "Atari CAGE", tag, owner, clock, "atari_cage", __FILE__), - m_cageram(*this, "cageram"), - m_soundlatch(*this, "soundlatch"), - m_irqhandler(*this) + atari_cage_device(mconfig, ATARI_CAGE, tag, owner, clock) { } -atari_cage_device::atari_cage_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), +atari_cage_device::atari_cage_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), m_cageram(*this, "cageram"), m_soundlatch(*this, "soundlatch"), m_irqhandler(*this) @@ -684,7 +681,7 @@ machine_config_constructor atari_cage_device::device_mconfig_additions() const } -const device_type ATARI_CAGE_SEATTLE = device_creator; +DEFINE_DEVICE_TYPE(ATARI_CAGE_SEATTLE, atari_cage_seattle_device, "atari_cage_seattle", "Atari CAGE Seattle") //------------------------------------------------- @@ -692,7 +689,7 @@ const device_type ATARI_CAGE_SEATTLE = device_creator //------------------------------------------------- atari_cage_seattle_device::atari_cage_seattle_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - atari_cage_device(mconfig, ATARI_CAGE_SEATTLE, "Atari CAGE Seattle", tag, owner, clock, "atari_cage_seattle", __FILE__) + atari_cage_device(mconfig, ATARI_CAGE_SEATTLE, tag, owner, clock) { } diff --git a/src/mame/audio/cage.h b/src/mame/audio/cage.h index a4e36acac55..65a136f114b 100644 --- a/src/mame/audio/cage.h +++ b/src/mame/audio/cage.h @@ -6,8 +6,10 @@ ****************************************************************************/ -#ifndef __ATARI_CAGE__ -#define __ATARI_CAGE__ +#ifndef MAME_AUDIO_CAGE_H +#define MAME_AUDIO_CAGE_H + +#pragma once #include "machine/gen_latch.h" #include "sound/dmadac.h" @@ -26,10 +28,9 @@ class atari_cage_device : public device_t public: // construction/destruction atari_cage_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - atari_cage_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); static void static_set_speedup(device_t &device, offs_t speedup) { downcast(device).m_speedup = speedup; } - template static devcb_base &set_irqhandler_callback(device_t &device, _Object object) { return downcast(device).m_irqhandler.set_callback(object); } + template static devcb_base &set_irqhandler_callback(device_t &device, Object &&cb) { return downcast(device).m_irqhandler.set_callback(std::forward(cb)); } // optional information overrides virtual machine_config_constructor device_mconfig_additions() const override; @@ -58,6 +59,8 @@ public: WRITE32_MEMBER( speedup_w ); protected: + atari_cage_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; @@ -94,7 +97,7 @@ private: // device type definition -extern const device_type ATARI_CAGE; +DECLARE_DEVICE_TYPE(ATARI_CAGE, atari_cage_device) class atari_cage_seattle_device : public atari_cage_device { @@ -108,6 +111,6 @@ public: }; // device type definition -extern const device_type ATARI_CAGE_SEATTLE; +DECLARE_DEVICE_TYPE(ATARI_CAGE_SEATTLE, atari_cage_seattle_device) -#endif // __ATARI_CAGE__ +#endif // MAME_AUDIO_CAGE_H diff --git a/src/mame/audio/cclimber.cpp b/src/mame/audio/cclimber.cpp index cdec09a7308..d9f6eaa9f35 100644 --- a/src/mame/audio/cclimber.cpp +++ b/src/mame/audio/cclimber.cpp @@ -1,9 +1,10 @@ // license:BSD-3-Clause // copyright-holders:Nicola Salmoria #include "emu.h" -#include "sound/ay8910.h" #include "audio/cclimber.h" +#include "sound/ay8910.h" + /* macro to convert 4-bit unsigned samples to 16-bit signed samples */ #define SAMPLE_CONV4(a) (0x1111*((a&0x0f))-0x8000) @@ -34,7 +35,7 @@ MACHINE_CONFIG_END // DEVICE DEFINITIONS //************************************************************************** -const device_type CCLIMBER_AUDIO = device_creator; +DEFINE_DEVICE_TYPE(CCLIMBER_AUDIO, cclimber_audio_device, "cclimber_audio", "Crazy Climber Sound Board") //************************************************************************** @@ -46,7 +47,7 @@ const device_type CCLIMBER_AUDIO = device_creator; //------------------------------------------------- cclimber_audio_device::cclimber_audio_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, CCLIMBER_AUDIO, "Crazy Climber Sound Board", tag, owner, clock, "cclimber_audio", __FILE__), + : device_t(mconfig, CCLIMBER_AUDIO, tag, owner, clock), m_sample_buf(nullptr), m_sample_num(0), m_sample_freq(0), diff --git a/src/mame/audio/cclimber.h b/src/mame/audio/cclimber.h index f839cb800e0..c5cc6faefaf 100644 --- a/src/mame/audio/cclimber.h +++ b/src/mame/audio/cclimber.h @@ -7,18 +7,18 @@ Functions to emulate the cclimber audio boards ***************************************************************************/ +#ifndef MAME_AUDIO_CCLIMBER_H +#define MAME_AUDIO_CCLIMBER_H #pragma once -#ifndef __CCLIMBER_AUDIO__ -#define __CCLIMBER_AUDIO__ - #include "sound/samples.h" + //************************************************************************** // GLOBAL VARIABLES //************************************************************************** -extern const device_type CCLIMBER_AUDIO; +DECLARE_DEVICE_TYPE(CCLIMBER_AUDIO, cclimber_audio_device) //************************************************************************** // DEVICE CONFIGURATION MACROS @@ -60,4 +60,4 @@ private: }; -#endif +#endif // MAME_AUDIO_CCLIMBER_H diff --git a/src/mame/audio/channelf.cpp b/src/mame/audio/channelf.cpp index 50576cc0297..8823294c75e 100644 --- a/src/mame/audio/channelf.cpp +++ b/src/mame/audio/channelf.cpp @@ -6,10 +6,10 @@ #define MAX_AMPLITUDE 0x7fff -const device_type CHANNELF_SOUND = device_creator; +DEFINE_DEVICE_TYPE(CHANNELF_SOUND, channelf_sound_device, "channelf_sound", "Channel F Sound") channelf_sound_device::channelf_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, CHANNELF_SOUND, "Channel F Sound", tag, owner, clock, "channelf_sound", __FILE__), + : device_t(mconfig, CHANNELF_SOUND, tag, owner, clock), device_sound_interface(mconfig, *this), m_channel(nullptr), m_sound_mode(0), diff --git a/src/mame/audio/channelf.h b/src/mame/audio/channelf.h index f06c1e09bb9..167c4e15d08 100644 --- a/src/mame/audio/channelf.h +++ b/src/mame/audio/channelf.h @@ -6,11 +6,10 @@ * ****************************************************************************/ -#ifndef CHANNELF_SOUND_H_ -#define CHANNELF_SOUND_H_ +#ifndef MAME_AUDIO_CHANNELF_H +#define MAME_AUDIO_CHANNELF_H -class channelf_sound_device : public device_t, - public device_sound_interface +class channelf_sound_device : public device_t, public device_sound_interface { public: channelf_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); @@ -35,7 +34,6 @@ private: }; -extern const device_type CHANNELF_SOUND; +DECLARE_DEVICE_TYPE(CHANNELF_SOUND, channelf_sound_device) - -#endif /* CHANNELF_SOUND_H_ */ +#endif // MAME_AUDIO_CHANNELF_H diff --git a/src/mame/audio/cinemat.cpp b/src/mame/audio/cinemat.cpp index 3e87c390eb4..6d1c65e1f61 100644 --- a/src/mame/audio/cinemat.cpp +++ b/src/mame/audio/cinemat.cpp @@ -1350,7 +1350,7 @@ MACHINE_CONFIG_END WRITE8_MEMBER(cinemat_state::qb3_sound_w) { - uint16_t rega = m_maincpu->state_int(CCPU_A); + uint16_t rega = m_maincpu->state_int(ccpu_cpu_device::CCPU_A); demon_sound_w(0x00 | (~rega & 0x0f), 0x10); } diff --git a/src/mame/audio/cps3.cpp b/src/mame/audio/cps3.cpp index c5008a17b59..0c5c3c764dd 100644 --- a/src/mame/audio/cps3.cpp +++ b/src/mame/audio/cps3.cpp @@ -11,7 +11,7 @@ // device type definition -const device_type CPS3 = device_creator; +DEFINE_DEVICE_TYPE(CPS3, cps3_sound_device, "cps3_custom", "CPS3 Audio Custom") //************************************************************************** @@ -23,11 +23,11 @@ const device_type CPS3 = device_creator; //------------------------------------------------- cps3_sound_device::cps3_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, CPS3, "CPS3 Audio Custom", tag, owner, clock, "cps3_custom", __FILE__), - device_sound_interface(mconfig, *this), - m_stream(nullptr), - m_key(0), - m_base(nullptr) + : device_t(mconfig, CPS3, tag, owner, clock) + , device_sound_interface(mconfig, *this) + , m_stream(nullptr) + , m_key(0) + , m_base(nullptr) { } diff --git a/src/mame/audio/cps3.h b/src/mame/audio/cps3.h index 41c7b6c041f..3dc78d2e967 100644 --- a/src/mame/audio/cps3.h +++ b/src/mame/audio/cps3.h @@ -5,6 +5,10 @@ Capcom CPS-3 Sound Hardware ****************************************************************************/ +#ifndef MAME_AUDIO_CPS3_H +#define MAME_AUDIO_CPS3_H + +#pragma once //************************************************************************** // TYPE DEFINITIONS @@ -26,8 +30,7 @@ struct cps3_voice // ======================> cps3_sound_device -class cps3_sound_device : public device_t, - public device_sound_interface +class cps3_sound_device : public device_t, public device_sound_interface { public: cps3_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); @@ -52,4 +55,6 @@ private: int8_t* m_base; }; -extern const device_type CPS3; +DECLARE_DEVICE_TYPE(CPS3, cps3_sound_device) + +#endif // MAME_AUDIO_CPS3_H diff --git a/src/mame/audio/csd.cpp b/src/mame/audio/csd.cpp index cea1053a8f9..c008292d025 100644 --- a/src/mame/audio/csd.cpp +++ b/src/mame/audio/csd.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type MIDWAY_CHEAP_SQUEAK_DELUXE = device_creator; +DEFINE_DEVICE_TYPE(MIDWAY_CHEAP_SQUEAK_DELUXE, midway_cheap_squeak_deluxe_device, "midcsd", "Cheap Squeak Deluxe Sound Board") //------------------------------------------------- // audio cpu map @@ -74,7 +74,7 @@ const tiny_rom_entry *midway_cheap_squeak_deluxe_device::device_rom_region() con //------------------------------------------------- midway_cheap_squeak_deluxe_device::midway_cheap_squeak_deluxe_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, MIDWAY_CHEAP_SQUEAK_DELUXE, "Cheap Squeak Deluxe Sound Board", tag, owner, clock, "midcsd", __FILE__), + device_t(mconfig, MIDWAY_CHEAP_SQUEAK_DELUXE, tag, owner, clock), device_mixer_interface(mconfig, *this), m_cpu(*this, "cpu"), m_pia(*this, "pia"), diff --git a/src/mame/audio/csd.h b/src/mame/audio/csd.h index 87e657135b9..2c9062dd73b 100644 --- a/src/mame/audio/csd.h +++ b/src/mame/audio/csd.h @@ -5,11 +5,11 @@ Cheap Squeak Deluxe / Artificial Artist Sound Board ***************************************************************************/ +#ifndef MAME_AUDIO_CSD_H +#define MAME_AUDIO_CSD_H #pragma once -#ifndef MAME_AUDIO_CSD_H -#define MAME_AUDIO_CSD_H #include "cpu/m68000/m68000.h" #include "machine/6821pia.h" @@ -58,6 +58,6 @@ private: }; // device type definition -extern const device_type MIDWAY_CHEAP_SQUEAK_DELUXE; +DECLARE_DEVICE_TYPE(MIDWAY_CHEAP_SQUEAK_DELUXE, midway_cheap_squeak_deluxe_device) #endif // MAME_AUDIO_CSD_H diff --git a/src/mame/audio/dai_snd.cpp b/src/mame/audio/dai_snd.cpp index 09bef90e5b5..3e59797b817 100644 --- a/src/mame/audio/dai_snd.cpp +++ b/src/mame/audio/dai_snd.cpp @@ -14,7 +14,7 @@ #include "dai_snd.h" // device type definition -const device_type DAI_SOUND = device_creator; +DEFINE_DEVICE_TYPE(DAI_SOUND, dai_sound_device, "dai_sound", "DAI Audio Custom") //------------------------------------------------- @@ -22,8 +22,8 @@ const device_type DAI_SOUND = device_creator; //------------------------------------------------- dai_sound_device::dai_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, DAI_SOUND, "DAI Audio Custom", tag, owner, clock, "dai_sound", __FILE__), - device_sound_interface(mconfig, *this) + : device_t(mconfig, DAI_SOUND, tag, owner, clock) + , device_sound_interface(mconfig, *this) { } @@ -53,10 +53,10 @@ void dai_sound_device::device_reset() //------------------------------------------------- const uint16_t dai_sound_device::s_osc_volume_table[] = { - 0, 500, 1000, 1500, - 2000, 2500, 3000, 3500, - 4000, 4500, 5000, 5500, - 6000, 6500, 7000, 7500 + 0, 500, 1000, 1500, + 2000, 2500, 3000, 3500, + 4000, 4500, 5000, 5500, + 6000, 6500, 7000, 7500 }; //------------------------------------------------- @@ -64,10 +64,10 @@ const uint16_t dai_sound_device::s_osc_volume_table[] = { //------------------------------------------------- const uint16_t dai_sound_device::s_noise_volume_table[] = { - 0, 0, 0, 0, - 0, 0, 0, 0, - 500, 1000, 1500, 2000, - 2500, 3000, 3500, 4000 + 0, 0, 0, 0, + 0, 0, 0, 0, + 500, 1000, 1500, 2000, + 2500, 3000, 3500, 4000 }; diff --git a/src/mame/audio/dai_snd.h b/src/mame/audio/dai_snd.h index 82aab50027a..20111be1663 100644 --- a/src/mame/audio/dai_snd.h +++ b/src/mame/audio/dai_snd.h @@ -6,14 +6,13 @@ * ****************************************************************************/ -#ifndef DAI_SND_H_ -#define DAI_SND_H_ +#ifndef MAME_AUDIO_DAI_SND_H +#define MAME_AUDIO_DAI_SND_H // ======================> dai_sound_device -class dai_sound_device : public device_t, - public device_sound_interface +class dai_sound_device : public device_t, public device_sound_interface { public: // construction/destruction @@ -40,6 +39,6 @@ private: static const uint16_t s_noise_volume_table[]; }; -extern const device_type DAI_SOUND; +DECLARE_DEVICE_TYPE(DAI_SOUND, dai_sound_device) -#endif /* DAI_H_ */ +#endif // MAME_AUDIO_DAI_SND_H diff --git a/src/mame/audio/dcs.cpp b/src/mame/audio/dcs.cpp index 3d71d0fc354..f91417f8525 100644 --- a/src/mame/audio/dcs.cpp +++ b/src/mame/audio/dcs.cpp @@ -825,8 +825,8 @@ void dcs_audio_device::dcs_register_state() // dcs_audio_device - constructor //------------------------------------------------- -dcs_audio_device::dcs_audio_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source, int rev) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), +dcs_audio_device::dcs_audio_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int rev) : + device_t(mconfig, type, tag, owner, clock), m_cpu(nullptr), m_program(nullptr), m_data(nullptr), @@ -2488,14 +2488,14 @@ int dcs_audio_device::preprocess_write(uint16_t data) return result; } -const device_type DCS_AUDIO_2K = device_creator; +DEFINE_DEVICE_TYPE(DCS_AUDIO_2K, dcs_audio_2k_device, "dcs_audio_2k", "DCS Audio 2K") //------------------------------------------------- // dcs_audio_2k_device - constructor //------------------------------------------------- dcs_audio_2k_device::dcs_audio_2k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - dcs_audio_device(mconfig, DCS_AUDIO_2K, "DCS Audio 2K", tag, owner, clock, "dcs_audio_2k", __FILE__) + dcs_audio_device(mconfig, DCS_AUDIO_2K, tag, owner, clock, 1) { } @@ -2504,14 +2504,14 @@ machine_config_constructor dcs_audio_2k_device::device_mconfig_additions() const return MACHINE_CONFIG_NAME( dcs_audio_2k ); } -const device_type DCS_AUDIO_2K_UART = device_creator; +DEFINE_DEVICE_TYPE(DCS_AUDIO_2K_UART, dcs_audio_2k_uart_device, "dcs_audio_2k_uart", "DCS Audio 2K UART") //------------------------------------------------- // dcs_audio_2k_uart_device - constructor //------------------------------------------------- dcs_audio_2k_uart_device::dcs_audio_2k_uart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - dcs_audio_device(mconfig, DCS_AUDIO_2K_UART, "DCS Audio 2K UART", tag, owner, clock, "dcs_audio_2k_uart", __FILE__) + dcs_audio_device(mconfig, DCS_AUDIO_2K_UART, tag, owner, clock, 1) { } @@ -2520,14 +2520,14 @@ machine_config_constructor dcs_audio_2k_uart_device::device_mconfig_additions() return MACHINE_CONFIG_NAME( dcs_audio_2k_uart ); } -const device_type DCS_AUDIO_8K = device_creator; +DEFINE_DEVICE_TYPE(DCS_AUDIO_8K, dcs_audio_8k_device, "dcs_audio_8k", "DCS Audio 8K") //------------------------------------------------- // dcs_audio_8k_device - constructor //------------------------------------------------- dcs_audio_8k_device::dcs_audio_8k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - dcs_audio_device(mconfig, DCS_AUDIO_8K, "DCS Audio 8K", tag, owner, clock, "dcs_audio_8k", __FILE__) + dcs_audio_device(mconfig, DCS_AUDIO_8K, tag, owner, clock, 1) { } @@ -2536,14 +2536,14 @@ machine_config_constructor dcs_audio_8k_device::device_mconfig_additions() const return MACHINE_CONFIG_NAME( dcs_audio_8k ); } -const device_type DCS_AUDIO_WPC = device_creator; +DEFINE_DEVICE_TYPE(DCS_AUDIO_WPC, dcs_audio_wpc_device, "dcs_audio_wpc", "DCS Audio WPC") //------------------------------------------------- // dcs_audio_wpc_device - constructor //------------------------------------------------- dcs_audio_wpc_device::dcs_audio_wpc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - dcs_audio_device(mconfig, DCS_AUDIO_WPC, "DCS Audio WPC", tag, owner, clock, "dcs_audio_wpc", __FILE__, 15) + dcs_audio_device(mconfig, DCS_AUDIO_WPC, tag, owner, clock, 15) { } @@ -2558,20 +2558,20 @@ machine_config_constructor dcs_audio_wpc_device::device_mconfig_additions() cons // dcs2_audio_device - constructor //------------------------------------------------- -dcs2_audio_device::dcs2_audio_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - dcs_audio_device(mconfig, type, name, tag, owner, clock, shortname, source) +dcs2_audio_device::dcs2_audio_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + dcs_audio_device(mconfig, type, tag, owner, clock, 1) { } -const device_type DCS2_AUDIO_2115 = device_creator; +DEFINE_DEVICE_TYPE(DCS2_AUDIO_2115, dcs2_audio_2115_device, "dcs2_audio_2115", "DCS2 Audio 2115") //------------------------------------------------- // dcs2_audio_2115_device - constructor //------------------------------------------------- dcs2_audio_2115_device::dcs2_audio_2115_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - dcs2_audio_device(mconfig, DCS2_AUDIO_2115, "DCS2 Audio 2115", tag, owner, clock, "dcs2_audio_2115", __FILE__) + dcs2_audio_device(mconfig, DCS2_AUDIO_2115, tag, owner, clock) { } @@ -2580,14 +2580,14 @@ machine_config_constructor dcs2_audio_2115_device::device_mconfig_additions() co return MACHINE_CONFIG_NAME( dcs2_audio_2115 ); } -const device_type DCS2_AUDIO_2104 = device_creator; +DEFINE_DEVICE_TYPE(DCS2_AUDIO_2104, dcs2_audio_2104_device, "dcs2_audio_2104", "DCS2 Audio 2104") //------------------------------------------------- // dcs2_audio_2104_device - constructor //------------------------------------------------- dcs2_audio_2104_device::dcs2_audio_2104_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - dcs2_audio_device(mconfig, DCS2_AUDIO_2104, "DCS2 Audio 2104", tag, owner, clock, "dcs2_audio_2104", __FILE__) + dcs2_audio_device(mconfig, DCS2_AUDIO_2104, tag, owner, clock) { } @@ -2597,14 +2597,14 @@ machine_config_constructor dcs2_audio_2104_device::device_mconfig_additions() co } -const device_type DCS2_AUDIO_DSIO = device_creator; +DEFINE_DEVICE_TYPE(DCS2_AUDIO_DSIO, dcs2_audio_dsio_device, "dcs2_audio_dsio", "DCS2 Audio DSIO") //------------------------------------------------- // dcs2_audio_dsio_device - constructor //------------------------------------------------- dcs2_audio_dsio_device::dcs2_audio_dsio_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - dcs2_audio_device(mconfig, DCS2_AUDIO_DSIO, "DCS2 Audio DSIO", tag, owner, clock, "dcs2_audio_dsio", __FILE__) + dcs2_audio_device(mconfig, DCS2_AUDIO_DSIO, tag, owner, clock) { } @@ -2613,14 +2613,14 @@ machine_config_constructor dcs2_audio_dsio_device::device_mconfig_additions() co return MACHINE_CONFIG_NAME( dcs2_audio_dsio ); } -const device_type DCS2_AUDIO_DENVER = device_creator; +DEFINE_DEVICE_TYPE(DCS2_AUDIO_DENVER, dcs2_audio_denver_device, "dcs2_audio_denver", "DCS2 Audio Denver") //------------------------------------------------- // dcs2_audio_denver_device - constructor //------------------------------------------------- dcs2_audio_denver_device::dcs2_audio_denver_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - dcs2_audio_device(mconfig, DCS2_AUDIO_DENVER, "DCS2 Audio Denver", tag, owner, clock, "dcs2_audio_denver", __FILE__) + dcs2_audio_device(mconfig, DCS2_AUDIO_DENVER, tag, owner, clock) { } diff --git a/src/mame/audio/dcs.h b/src/mame/audio/dcs.h index e041512dbd1..bd3f7e0643c 100644 --- a/src/mame/audio/dcs.h +++ b/src/mame/audio/dcs.h @@ -6,8 +6,10 @@ ****************************************************************************/ -#ifndef __DCS_H__ -#define __DCS_H__ +#ifndef MAME_AUDIO_DCS_H +#define MAME_AUDIO_DCS_H + +#pragma once #include "cpu/adsp2100/adsp2100.h" #include "sound/dmadac.h" @@ -23,9 +25,6 @@ class dcs_audio_device : public device_t { public: - // construction/destruction - dcs_audio_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source, int rev = 1); - // for dcs2 (int dram_in_mb, offs_t polling_offset) static void static_set_dram_in_mb(device_t &device, int dram_in_mb) { downcast(device).m_dram_in_mb = dram_in_mb; } static void static_set_polling_offset(device_t &device, offs_t polling_offset) { downcast(device).m_polling_offset = polling_offset; } @@ -106,11 +105,13 @@ public: int preprocess_write(uint16_t data); protected: + // construction/destruction + dcs_audio_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int rev); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; -protected: struct sdrc_state { uint16_t reg[4]; @@ -233,7 +234,7 @@ public: }; // device type definition -extern const device_type DCS_AUDIO_2K; +DECLARE_DEVICE_TYPE(DCS_AUDIO_2K, dcs_audio_2k_device) // dcs_audio_2k_uart_device @@ -249,7 +250,7 @@ public: }; // device type definition -extern const device_type DCS_AUDIO_2K_UART; +DECLARE_DEVICE_TYPE(DCS_AUDIO_2K_UART, dcs_audio_2k_uart_device) // dcs_audio_8k_device @@ -265,7 +266,7 @@ public: }; // device type definition -extern const device_type DCS_AUDIO_8K; +DECLARE_DEVICE_TYPE(DCS_AUDIO_8K, dcs_audio_8k_device) // dcs_audio_wpc_device @@ -280,18 +281,17 @@ public: }; // device type definition -extern const device_type DCS_AUDIO_WPC; +DECLARE_DEVICE_TYPE(DCS_AUDIO_WPC, dcs_audio_wpc_device) // dcs2_audio_device class dcs2_audio_device : public dcs_audio_device { -public: +protected: // construction/destruction - dcs2_audio_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); + dcs2_audio_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); -protected: // device-level overrides virtual void device_start() override; }; @@ -310,7 +310,7 @@ public: }; // device type definition -extern const device_type DCS2_AUDIO_2115; +DECLARE_DEVICE_TYPE(DCS2_AUDIO_2115, dcs2_audio_2115_device) // dcs2_audio_2104_device @@ -326,7 +326,7 @@ public: }; // device type definition -extern const device_type DCS2_AUDIO_2104; +DECLARE_DEVICE_TYPE(DCS2_AUDIO_2104, dcs2_audio_2104_device) // dcs2_audio_dsio_device @@ -342,7 +342,7 @@ public: }; // device type definition -extern const device_type DCS2_AUDIO_DSIO; +DECLARE_DEVICE_TYPE(DCS2_AUDIO_DSIO, dcs2_audio_dsio_device) // dcs2_audio_denver_device @@ -358,6 +358,6 @@ public: }; // device type definition -extern const device_type DCS2_AUDIO_DENVER; +DECLARE_DEVICE_TYPE(DCS2_AUDIO_DENVER, dcs2_audio_denver_device) -#endif +#endif // MAME_AUDIO_DCS_H diff --git a/src/mame/audio/decobsmt.cpp b/src/mame/audio/decobsmt.cpp index 6ce93a8e84a..6e1415f975a 100644 --- a/src/mame/audio/decobsmt.cpp +++ b/src/mame/audio/decobsmt.cpp @@ -30,10 +30,9 @@ static ADDRESS_MAP_START( bsmt_map, AS_0, 8, decobsmt_device ) AM_RANGE(0x000000, 0xffffff) AM_ROM AM_REGION(":bsmt", 0) ADDRESS_MAP_END -static void bsmt_ready_callback(bsmt2000_device &device) +void decobsmt_device::bsmt_ready_callback() { - decobsmt_device *decobsmt = device.machine().device(DECOBSMT_TAG); - decobsmt->m_ourcpu->set_input_line(M6809_IRQ_LINE, ASSERT_LINE); /* BSMT is ready */ + m_ourcpu->set_input_line(M6809_IRQ_LINE, ASSERT_LINE); /* BSMT is ready */ } MACHINE_CONFIG_FRAGMENT( decobsmt ) @@ -44,7 +43,7 @@ MACHINE_CONFIG_FRAGMENT( decobsmt ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") MCFG_BSMT2000_ADD(BSMT_TAG, 24000000) MCFG_DEVICE_ADDRESS_MAP(AS_0, bsmt_map) - MCFG_BSMT2000_READY_CALLBACK(bsmt_ready_callback) + MCFG_BSMT2000_READY_CALLBACK(decobsmt_device, bsmt_ready_callback) MCFG_SOUND_ROUTE(0, "lspeaker", 2.0) MCFG_SOUND_ROUTE(1, "rspeaker", 2.0) MACHINE_CONFIG_END @@ -53,7 +52,7 @@ MACHINE_CONFIG_END // GLOBAL VARIABLES //************************************************************************** -const device_type DECOBSMT = device_creator; +DEFINE_DEVICE_TYPE(DECOBSMT, decobsmt_device, "decobsmt", "Data East/Sega/Stern BSMT2000 Sound Board") //------------------------------------------------- @@ -74,10 +73,10 @@ machine_config_constructor decobsmt_device::device_mconfig_additions() const // decobsmt_device - constructor //------------------------------------------------- -decobsmt_device::decobsmt_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, DECOBSMT, "Data East/Sega/Stern BSMT2000 Sound Board", tag, owner, clock, "decobsmt", __FILE__), - m_ourcpu(*this, M6809_TAG), - m_bsmt(*this, BSMT_TAG) +decobsmt_device::decobsmt_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, DECOBSMT, tag, owner, clock) + , m_ourcpu(*this, M6809_TAG) + , m_bsmt(*this, BSMT_TAG) { } diff --git a/src/mame/audio/decobsmt.h b/src/mame/audio/decobsmt.h index a16165e0b22..9615a7649bd 100644 --- a/src/mame/audio/decobsmt.h +++ b/src/mame/audio/decobsmt.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:R. Belmont -#pragma once +#ifndef MAME_AUDIO_DECOBSMT_H +#define MAME_AUDIO_DECOBSMT_H -#ifndef __DECOBSMT_H__ -#define __DECOBSMT_H__ +#pragma once #include "cpu/m6809/m6809.h" #include "sound/bsmt2000.h" @@ -20,37 +20,40 @@ class decobsmt_device : public device_t { public: - // construction/destruction - decobsmt_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + // construction/destruction + decobsmt_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - DECLARE_WRITE8_MEMBER(bsmt_reset_w); - DECLARE_READ8_MEMBER(bsmt_status_r); - DECLARE_WRITE8_MEMBER(bsmt0_w); - DECLARE_WRITE8_MEMBER(bsmt1_w); - DECLARE_READ8_MEMBER(bsmt_comms_r); - DECLARE_WRITE8_MEMBER(bsmt_comms_w); + DECLARE_WRITE8_MEMBER(bsmt_reset_w); + DECLARE_READ8_MEMBER(bsmt_status_r); + DECLARE_WRITE8_MEMBER(bsmt0_w); + DECLARE_WRITE8_MEMBER(bsmt1_w); + DECLARE_READ8_MEMBER(bsmt_comms_r); + DECLARE_WRITE8_MEMBER(bsmt_comms_w); - DECLARE_WRITE_LINE_MEMBER(bsmt_reset_line); + DECLARE_WRITE_LINE_MEMBER(bsmt_reset_line); - INTERRUPT_GEN_MEMBER(decobsmt_firq_interrupt); + INTERRUPT_GEN_MEMBER(decobsmt_firq_interrupt); - required_device m_ourcpu; - required_device m_bsmt; + void bsmt_ready_callback(); protected: - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - virtual machine_config_constructor device_mconfig_additions() const override; + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + virtual machine_config_constructor device_mconfig_additions() const override; private: - uint8_t m_bsmt_latch; - uint8_t m_bsmt_reset; - uint8_t m_bsmt_comms; + required_device m_ourcpu; + required_device m_bsmt; + + uint8_t m_bsmt_latch; + uint8_t m_bsmt_reset; + uint8_t m_bsmt_comms; }; // device type definition extern const device_type DECOBSMT; +DECLARE_DEVICE_TYPE(DECOBSMT, decobsmt_device) -#endif /* __DECOBSMT_H__ */ +#endif // MAME_AUDIO_DECOBSMT_H diff --git a/src/mame/audio/dsbz80.cpp b/src/mame/audio/dsbz80.cpp index e4ff29782a4..d7e9726c636 100644 --- a/src/mame/audio/dsbz80.cpp +++ b/src/mame/audio/dsbz80.cpp @@ -49,7 +49,7 @@ MACHINE_CONFIG_END // GLOBAL VARIABLES //************************************************************************** -const device_type DSBZ80 = device_creator; +DEFINE_DEVICE_TYPE(DSBZ80, dsbz80_device, "dsbz80_device", "Sega Z80-based Digital Sound Board") //------------------------------------------------- @@ -71,7 +71,7 @@ machine_config_constructor dsbz80_device::device_mconfig_additions() const //------------------------------------------------- dsbz80_device::dsbz80_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, DSBZ80, "Sega Z80-based Digital Sound Board", tag, owner, clock, "dsbz80", __FILE__), + device_t(mconfig, DSBZ80, tag, owner, clock), device_sound_interface(mconfig, *this), m_ourcpu(*this, Z80_TAG), m_uart(*this, "uart"), diff --git a/src/mame/audio/dsbz80.h b/src/mame/audio/dsbz80.h index 944e494dccc..e8c18c96781 100644 --- a/src/mame/audio/dsbz80.h +++ b/src/mame/audio/dsbz80.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:R. Belmont, Olivier Galibert -#pragma once +#ifndef MAME_AUDIO_DSBZ80_H +#define MAME_AUDIO_DSBZ80_H -#ifndef __DSBZ80_H__ -#define __DSBZ80_H__ +#pragma once #include "cpu/z80/z80.h" #include "machine/i8251.h" @@ -65,5 +65,6 @@ private: // device type definition extern const device_type DSBZ80; +DECLARE_DEVICE_TYPE(DSBZ80, dsbz80_device) -#endif /* __DSBZ80_H__ */ +#endif // MAME_AUDIO_DSBZ80_H diff --git a/src/mame/audio/efo_zsu.cpp b/src/mame/audio/efo_zsu.cpp index 5b8c69ace47..57087816a7d 100644 --- a/src/mame/audio/efo_zsu.cpp +++ b/src/mame/audio/efo_zsu.cpp @@ -41,37 +41,37 @@ #include "speaker.h" -const device_type EFO_ZSU = device_creator; -const device_type EFO_ZSU1 = device_creator; -const device_type CEDAR_MAGNET_SOUND = device_creator; - - -efo_zsu_device::efo_zsu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, u32 clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), - m_ctc0(*this, "ctc0"), - m_ctc1(*this, "ctc1"), - m_soundlatch(*this, "soundlatch"), - m_fifo(*this, "fifo"), - m_adpcm(*this, "adpcm") +DEFINE_DEVICE_TYPE(EFO_ZSU, efo_zsu_device, "efo_zsu", "ZSU Sound Control Unit") +DEFINE_DEVICE_TYPE(EFO_ZSU1, efo_zsu1_device, "efo_zsu1", "ZSU1 Sound Control Unit") +DEFINE_DEVICE_TYPE(CEDAR_MAGNET_SOUND, cedar_magnet_sound_device, "gedmag_sound", "Cedar Sound") + + +efo_zsu_device::efo_zsu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock) + : device_t(mconfig, type, tag, owner, clock) + , m_ctc0(*this, "ctc0") + , m_ctc1(*this, "ctc1") + , m_soundlatch(*this, "soundlatch") + , m_fifo(*this, "fifo") + , m_adpcm(*this, "adpcm") { } efo_zsu_device::efo_zsu_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : efo_zsu_device(mconfig, EFO_ZSU, "ZSU Sound Control Unit", tag, owner, clock, "efo_zsu", __FILE__) + : efo_zsu_device(mconfig, EFO_ZSU, tag, owner, clock) { } efo_zsu1_device::efo_zsu1_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : efo_zsu_device(mconfig, EFO_ZSU1, "ZSU1 Sound Control Unit", tag, owner, clock, "efo_zsu1", __FILE__) + : efo_zsu_device(mconfig, EFO_ZSU1, tag, owner, clock) { } cedar_magnet_sound_device::cedar_magnet_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : efo_zsu_device(mconfig, CEDAR_MAGNET_SOUND, "Cedar Sound", tag, owner, clock, "cedmag_sound", __FILE__), - cedar_magnet_board_interface(mconfig, *this, "soundcpu", "ram") + : efo_zsu_device(mconfig, CEDAR_MAGNET_SOUND, tag, owner, clock) + , cedar_magnet_board_interface(mconfig, *this, "soundcpu", "ram") { } diff --git a/src/mame/audio/efo_zsu.h b/src/mame/audio/efo_zsu.h index 928f7800a8e..c0e6bf00542 100644 --- a/src/mame/audio/efo_zsu.h +++ b/src/mame/audio/efo_zsu.h @@ -1,10 +1,10 @@ // license:BSD-3-Clause // copyright-holders:David Haywood,AJR -#pragma once +#ifndef MAME_AUDIO_EFO_ZSU_H +#define MAME_AUDIO_EFO_ZSU_H -#ifndef CEDAR_MAGNET_SOUND_DEF -#define CEDAR_MAGNET_SOUND_DEF +#pragma once #include "cpu/z80/z80.h" #include "cpu/z80/z80daisy.h" @@ -15,9 +15,9 @@ #include "sound/msm5205.h" #include "machine/cedar_magnet_board.h" -extern const device_type EFO_ZSU; -extern const device_type EFO_ZSU1; -extern const device_type CEDAR_MAGNET_SOUND; +DECLARE_DEVICE_TYPE(EFO_ZSU, efo_zsu_device) +DECLARE_DEVICE_TYPE(EFO_ZSU1, efo_zsu1_device) +DECLARE_DEVICE_TYPE(CEDAR_MAGNET_SOUND, cedar_magnet_sound_device) #define MCFG_CEDAR_MAGNET_SOUND_ADD(_tag) \ MCFG_DEVICE_ADD(_tag, CEDAR_MAGNET_SOUND, 0) @@ -27,7 +27,6 @@ class efo_zsu_device : public device_t { public: // construction/destruction - efo_zsu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, u32 clock, const char *shortname, const char *source); efo_zsu_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); required_device m_ctc0; @@ -49,10 +48,10 @@ public: DECLARE_WRITE_LINE_MEMBER(fifo_dor_w); protected: + efo_zsu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock); + virtual machine_config_constructor device_mconfig_additions() const override; virtual void device_start() override; - -private: }; @@ -80,8 +79,6 @@ public: protected: virtual machine_config_constructor device_mconfig_additions() const override; virtual void device_start() override; - -private: }; -#endif +#endif // MAME_AUDIO_EFO_ZSU_H diff --git a/src/mame/audio/exidy.cpp b/src/mame/audio/exidy.cpp index b738e7e2b1f..6a3435d98cc 100644 --- a/src/mame/audio/exidy.cpp +++ b/src/mame/audio/exidy.cpp @@ -205,16 +205,16 @@ void exidy_sound_device::common_sh_start() sh6840_register_state_globals(); } -const device_type EXIDY = device_creator; +DEFINE_DEVICE_TYPE(EXIDY, exidy_sound_device, "exidy_sfx", "Exidy SFX") exidy_sound_device::exidy_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, EXIDY, "Exidy SFX", tag, owner, clock, "exidy_sfx", __FILE__), - device_sound_interface(mconfig, *this) + : device_t(mconfig, EXIDY, tag, owner, clock) + , device_sound_interface(mconfig, *this) { } -exidy_sound_device::exidy_sound_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), +exidy_sound_device::exidy_sound_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock), device_sound_interface(mconfig, *this), m_riot_irq_state(0), m_stream(nullptr), @@ -659,10 +659,10 @@ WRITE8_MEMBER( venture_sound_device::filter_w ) *************************************/ -const device_type EXIDY_VENTURE = device_creator; +DEFINE_DEVICE_TYPE(EXIDY_VENTURE, venture_sound_device, "venture_sound", "Exidy SFX+PSG") venture_sound_device::venture_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : exidy_sound_device(mconfig, EXIDY_VENTURE, "Exidy SFX+PSG", tag, owner, clock, "venture_sound", __FILE__) + : exidy_sound_device(mconfig, EXIDY_VENTURE, tag, owner, clock) { } @@ -904,11 +904,11 @@ WRITE_LINE_MEMBER( victory_sound_device::main_ack_w ) } -const device_type EXIDY_VICTORY = device_creator; +DEFINE_DEVICE_TYPE(EXIDY_VICTORY, victory_sound_device, "victory_sound", "Exidy SFX+PSG+Speech") victory_sound_device::victory_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : exidy_sound_device(mconfig, EXIDY_VICTORY, "Exidy SFX+PSG+Speech", tag, owner, clock, "victory_sound", __FILE__), - m_victory_sound_response_ack_clk(0) + : exidy_sound_device(mconfig, EXIDY_VICTORY, tag, owner, clock) + , m_victory_sound_response_ack_clk(0) { } diff --git a/src/mame/audio/exidy.h b/src/mame/audio/exidy.h index f2a459433af..02d1aafabd6 100644 --- a/src/mame/audio/exidy.h +++ b/src/mame/audio/exidy.h @@ -1,5 +1,10 @@ // license:BSD-3-Clause // copyright-holders:Aaron Giles +#ifndef MAME_AUDIO_EXIDY_H +#define MAME_AUDIO_EXIDY_H + +#pragma once + #include "machine/6532riot.h" #include "machine/6821pia.h" #include "sound/hc55516.h" @@ -38,7 +43,6 @@ class exidy_sound_device : public device_t, { public: exidy_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - exidy_sound_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); ~exidy_sound_device() {} DECLARE_READ8_MEMBER( sh6840_r ); @@ -57,6 +61,8 @@ public: DECLARE_READ8_MEMBER( sh8253_r ); protected: + exidy_sound_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -111,7 +117,7 @@ private: inline int sh6840_update_noise(int clocks); }; -extern const device_type EXIDY; +DECLARE_DEVICE_TYPE(EXIDY, exidy_sound_device) class venture_sound_device : public exidy_sound_device { @@ -132,7 +138,7 @@ protected: virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; }; -extern const device_type EXIDY_VENTURE; +DECLARE_DEVICE_TYPE(EXIDY_VENTURE, venture_sound_device) class victory_sound_device : public exidy_sound_device { @@ -163,10 +169,12 @@ private: int m_pia1_cb1; }; -extern const device_type EXIDY_VICTORY; +DECLARE_DEVICE_TYPE(EXIDY_VICTORY, victory_sound_device) MACHINE_CONFIG_EXTERN( venture_audio ); MACHINE_CONFIG_EXTERN( mtrap_cvsd_audio ); MACHINE_CONFIG_EXTERN( victory_audio ); + +#endif // MAME_AUDIO_EXIDY_H diff --git a/src/mame/audio/exidy440.cpp b/src/mame/audio/exidy440.cpp index 7c902298406..14ef74c644c 100644 --- a/src/mame/audio/exidy440.cpp +++ b/src/mame/audio/exidy440.cpp @@ -48,10 +48,10 @@ static const int channel_bits[4] = }; -const device_type EXIDY440 = device_creator; +DEFINE_DEVICE_TYPE(EXIDY440, exidy440_sound_device, "exidy440_sound", "Exidy 440 CVSD") exidy440_sound_device::exidy440_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, EXIDY440, "Exidy 440 CVSD", tag, owner, clock, "exidy440_sound", __FILE__), + : device_t(mconfig, EXIDY440, tag, owner, clock), device_sound_interface(mconfig, *this), m_sound_command(0), m_sound_command_ack(0), diff --git a/src/mame/audio/exidy440.h b/src/mame/audio/exidy440.h index ea9b35174f3..5d8129195e3 100644 --- a/src/mame/audio/exidy440.h +++ b/src/mame/audio/exidy440.h @@ -1,39 +1,11 @@ // license:BSD-3-Clause // copyright-holders:Aaron Giles -/* channel_data structure holds info about each 6844 DMA channel */ -struct m6844_channel_data -{ - int active; - int address; - int counter; - uint8_t control; - int start_address; - int start_counter; -}; - - -/* channel_data structure holds info about each active sound channel */ -struct sound_channel_data -{ - int16_t *base; - int offset; - int remaining; -}; +#ifndef MAME_AUDIO_EXIDY440_H +#define MAME_AUDIO_EXIDY440_H +#pragma once -/* sound_cache_entry structure contains info on each decoded sample */ -struct sound_cache_entry -{ - struct sound_cache_entry *next; - int address; - int length; - int bits; - int frequency; - int16_t data[1]; -}; - -class exidy440_sound_device : public device_t, - public device_sound_interface +class exidy440_sound_device : public device_t, public device_sound_interface { public: exidy440_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); @@ -59,6 +31,39 @@ protected: virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; private: + /* channel_data structure holds info about each 6844 DMA channel */ + struct m6844_channel_data + { + int active; + int address; + int counter; + uint8_t control; + int start_address; + int start_counter; + }; + + + /* channel_data structure holds info about each active sound channel */ + struct sound_channel_data + { + int16_t *base; + int offset; + int remaining; + }; + + + /* sound_cache_entry structure contains info on each decoded sample */ + struct sound_cache_entry + { + struct sound_cache_entry *next; + int address; + int length; + int bits; + int frequency; + int16_t data[1]; + }; + + // internal state uint8_t m_sound_command; uint8_t m_sound_command_ack; @@ -104,6 +109,8 @@ private: void mix_to_16(int length, stream_sample_t *dest_left, stream_sample_t *dest_right); }; -extern const device_type EXIDY440; +DECLARE_DEVICE_TYPE(EXIDY440, exidy440_sound_device) MACHINE_CONFIG_EXTERN( exidy440_audio ); + +#endif // MAME_AUDIO_EXIDY440_H diff --git a/src/mame/audio/galaxian.cpp b/src/mame/audio/galaxian.cpp index 161fb5c79d7..2f84c831f9b 100644 --- a/src/mame/audio/galaxian.cpp +++ b/src/mame/audio/galaxian.cpp @@ -386,12 +386,12 @@ static DISCRETE_SOUND_START(mooncrst) DISCRETE_MIXER7(NODE_280, 1, NODE_133_00, NODE_133_02, NODE_133_02,NODE_133_03, NODE_120, NODE_157, NODE_182, &mooncrst_mixer_desc) DISCRETE_SOUND_END -const device_type GALAXIAN = device_creator; +DEFINE_DEVICE_TYPE(GALAXIAN, galaxian_sound_device, "galaxian_sound", "Galaxian Audio Custom") galaxian_sound_device::galaxian_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, GALAXIAN, "Galaxian Audio Custom", tag, owner, clock, "galaxian_sound", __FILE__), - device_sound_interface(mconfig, *this), - m_lfo_val(0) + : device_t(mconfig, GALAXIAN, tag, owner, clock) + , device_sound_interface(mconfig, *this) + , m_lfo_val(0) { } diff --git a/src/mame/audio/galaxian.h b/src/mame/audio/galaxian.h index 73778702447..b842f1c9628 100644 --- a/src/mame/audio/galaxian.h +++ b/src/mame/audio/galaxian.h @@ -1,15 +1,18 @@ // license:BSD-3-Clause // copyright-holders:Aaron Giles +#ifndef MAME_AUDIO_GALAXIAN_H +#define MAME_AUDIO_GALAXIAN_H + +#pragma once + #include "sound/discrete.h" #define GAL_AUDIO "discrete" -class galaxian_sound_device : public device_t, - public device_sound_interface +class galaxian_sound_device : public device_t, public device_sound_interface { public: galaxian_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~galaxian_sound_device() {} DECLARE_WRITE8_MEMBER( sound_w ); DECLARE_WRITE8_MEMBER( pitch_w ); @@ -32,7 +35,9 @@ private: discrete_device *m_discrete; }; -extern const device_type GALAXIAN; +DECLARE_DEVICE_TYPE(GALAXIAN, galaxian_sound_device) MACHINE_CONFIG_EXTERN( mooncrst_audio ); MACHINE_CONFIG_EXTERN( galaxian_audio ); + +#endif // MAME_AUDIO_GALAXIAN_H diff --git a/src/mame/audio/gamate.cpp b/src/mame/audio/gamate.cpp index c53b5cf55ee..8af8c1ce166 100644 --- a/src/mame/audio/gamate.cpp +++ b/src/mame/audio/gamate.cpp @@ -7,13 +7,13 @@ ***************************************************************************/ #include "emu.h" -#include "includes/gamate.h" +#include "audio/gamate.h" enum { ClockDelay=32 }; // device type definition -const device_type GAMATE_SND = device_creator; +DEFINE_DEVICE_TYPE(GAMATE_SND, gamate_sound_device, "gamate_sound", "Gamate Audio Custom") const int gamate_sound_device::DAConverter[]={ 0, 3, 7, 13, 23, 41, 75, 137, 249, 453, 825, 1499, 2726, 4956, 9011, 16383 }; // (*.55) on the real below index 8 bareless measureable const uint8_t Mask[]={ 0xff, 0x0f, 0xff, 0x0f, 0xff, 0x0f, 0x1f, 0x3f, 0x1f, 0x1f, 0x1f, 0xff, 0xff, 0xf }; @@ -27,10 +27,11 @@ const int EnvelopeVolumes[]={ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, //------------------------------------------------- gamate_sound_device::gamate_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, GAMATE_SND, "Gamate Audio Custom", tag, owner, clock, "gamate_sound", __FILE__) + : device_t(mconfig, GAMATE_SND, tag, owner, clock) , device_sound_interface(mconfig, *this) , m_mixer_channel(nullptr) - {} +{ +} //------------------------------------------------- // device_start - device-specific startup diff --git a/src/mame/audio/gamate.h b/src/mame/audio/gamate.h new file mode 100644 index 00000000000..f43bf793f09 --- /dev/null +++ b/src/mame/audio/gamate.h @@ -0,0 +1,96 @@ +// license:GPL-2.0+ +// copyright-holders:Peter Trauner +/***************************************************************************** + * + * includes/gamate.h + * + ****************************************************************************/ + +#ifndef MAME_AUDIO_GAMATE_H +#define MAME_AUDIO_GAMATE_H + + +// ======================> gamate_sound_device + +class gamate_sound_device : public device_t, public device_sound_interface +{ +public: + gamate_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + + DECLARE_WRITE8_MEMBER( device_w ); + DECLARE_READ8_MEMBER( device_r ); + +protected: + // device-level overrides + virtual void device_start() override; + + // sound stream update overrides + virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; + +private: + + static const int DAConverter[]; + static int Value2Volume(int volume) { return DAConverter[volume]*1; } + + sound_stream *m_mixer_channel; + struct Tone + { + Tone() : + envelope_on(false), + level(false), + tone(false), full_cycle(false), + volume(0), + pos(0), + size(0) + { + } + + bool envelope_on, level; + bool tone/*else noise*/, full_cycle/* else square signal/pulse */; + int volume; + int pos, size; + }; + + enum + { + Right, + Left, + Both + }; + + Tone m_channels[3]; + + struct Noise + { + Noise(): + state(1), + level(false), + step(0.0), + pos(0.0) + {} + + int state; + bool level; + double step, pos; + } noise; + + struct Envelope + { + Envelope(): + control(0), + index(0), + first(false) + {} + + int control; + int index; + bool first; + double step, pos; + } envelope; + + uint8_t reg[14]; +}; + +DECLARE_DEVICE_TYPE(GAMATE_SND, gamate_sound_device) + +#endif // MAME_AUDIO_GAMATE_H diff --git a/src/mame/audio/geebee.cpp b/src/mame/audio/geebee.cpp index 91660fe91e5..8400b80ea04 100644 --- a/src/mame/audio/geebee.cpp +++ b/src/mame/audio/geebee.cpp @@ -13,10 +13,10 @@ #include "audio/geebee.h" -const device_type GEEBEE = device_creator; +DEFINE_DEVICE_TYPE(GEEBEE, geebee_sound_device, "geebee_sound", "Gee Bee Audio Custom") geebee_sound_device::geebee_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, GEEBEE, "Gee Bee Audio Custom", tag, owner, clock, "geebee_sound", __FILE__), + : device_t(mconfig, GEEBEE, tag, owner, clock), device_sound_interface(mconfig, *this), m_decay(nullptr), m_channel(nullptr), diff --git a/src/mame/audio/geebee.h b/src/mame/audio/geebee.h index 94d5fa01561..e1316df83b4 100644 --- a/src/mame/audio/geebee.h +++ b/src/mame/audio/geebee.h @@ -1,8 +1,11 @@ // license:GPL-2.0+ // copyright-holders:Juergen Buchmueller +#ifndef MAME_AUDIO_GEEBEE_H +#define MAME_AUDIO_GEEBEE_H -class geebee_sound_device : public device_t, - public device_sound_interface +#pragma once + +class geebee_sound_device : public device_t, public device_sound_interface { public: geebee_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); @@ -35,4 +38,6 @@ private: int m_vcount; }; -extern const device_type GEEBEE; +DECLARE_DEVICE_TYPE(GEEBEE, geebee_sound_device) + +#endif // MAME_AUDIO_GEEBEE_H diff --git a/src/mame/audio/gomoku.cpp b/src/mame/audio/gomoku.cpp index d4084838088..46b81b532d2 100644 --- a/src/mame/audio/gomoku.cpp +++ b/src/mame/audio/gomoku.cpp @@ -9,14 +9,14 @@ ***************************************************************************/ #include "emu.h" -#include "includes/gomoku.h" +#include "audio/gomoku.h" -static const int samplerate = 48000; -static const int defgain = 48; +static constexpr int samplerate = 48000; +static constexpr int defgain = 48; // device type definition -const device_type GOMOKU = device_creator; +DEFINE_DEVICE_TYPE(GOMOKU, gomoku_sound_device, "gomoku_sound", "Gomoku Narabe Renju Audio Custom") //************************************************************************** @@ -28,7 +28,7 @@ const device_type GOMOKU = device_creator; //------------------------------------------------- gomoku_sound_device::gomoku_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, GOMOKU, "Gomoku Narabe Renju Audio Custom", tag, owner, clock, "gomoku_sound", __FILE__), + : device_t(mconfig, GOMOKU, tag, owner, clock), device_sound_interface(mconfig, *this), m_last_channel(nullptr), m_sound_rom(nullptr), @@ -40,7 +40,7 @@ gomoku_sound_device::gomoku_sound_device(const machine_config &mconfig, const ch m_mixer_buffer(nullptr), m_mixer_buffer_2(nullptr) { - memset(m_channel_list, 0, sizeof(gomoku_sound_channel)*GOMOKU_MAX_VOICES); + memset(m_channel_list, 0, sizeof(gomoku_sound_channel)*MAX_VOICES); memset(m_soundregs1, 0, sizeof(uint8_t)*0x20); memset(m_soundregs2, 0, sizeof(uint8_t)*0x20); } @@ -66,7 +66,7 @@ void gomoku_sound_device::device_start() make_mixer_table(8, defgain); /* extract globals from the interface */ - m_num_voices = GOMOKU_MAX_VOICES; + m_num_voices = MAX_VOICES; m_last_channel = m_channel_list + m_num_voices; m_sound_rom = memregion(":gomoku")->base(); diff --git a/src/mame/audio/gomoku.h b/src/mame/audio/gomoku.h new file mode 100644 index 00000000000..6b71fab0d49 --- /dev/null +++ b/src/mame/audio/gomoku.h @@ -0,0 +1,73 @@ +// license:BSD-3-Clause +// copyright-holders:Takahiro Nogi, David Haywood +#ifndef MAME_AUDIO_GOMOKU_H +#define MAME_AUDIO_GOMOKU_H + +//************************************************************************** +// TYPE DEFINITIONS +//************************************************************************** + +// ======================> gomoku_sound_device + +class gomoku_sound_device : public device_t, + public device_sound_interface +{ +public: + gomoku_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + + DECLARE_WRITE8_MEMBER( sound1_w ); + DECLARE_WRITE8_MEMBER( sound2_w ); + +protected: + // device-level overrides + virtual void device_start() override; + + // sound stream update overrides + virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; + +private: + void make_mixer_table(int voices, int gain); + + /* 4 voices max */ + static constexpr unsigned MAX_VOICES = 4; + + struct gomoku_sound_channel + { + gomoku_sound_channel(): + channel(0), + frequency(0), + counter(0), + volume(0), + oneshotplaying(0) {} + + int channel; + int frequency; + int counter; + int volume; + int oneshotplaying; + }; + + + /* data about the sound system */ + gomoku_sound_channel m_channel_list[MAX_VOICES]; + gomoku_sound_channel *m_last_channel; + + /* global sound parameters */ + const uint8_t *m_sound_rom; + int m_num_voices; + int m_sound_enable; + sound_stream *m_stream; + + /* mixer tables and internal buffers */ + std::unique_ptr m_mixer_table; + int16_t *m_mixer_lookup; + std::unique_ptr m_mixer_buffer; + short *m_mixer_buffer_2; + + uint8_t m_soundregs1[0x20]; + uint8_t m_soundregs2[0x20]; +}; + +DECLARE_DEVICE_TYPE(GOMOKU, gomoku_sound_device) + +#endif // MAME_AUDIO_GOMOKU_H diff --git a/src/mame/audio/gottlieb.cpp b/src/mame/audio/gottlieb.cpp index fa30276265c..1e8aed6785d 100644 --- a/src/mame/audio/gottlieb.cpp +++ b/src/mame/audio/gottlieb.cpp @@ -25,10 +25,10 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type GOTTLIEB_SOUND_REV0 = device_creator; -const device_type GOTTLIEB_SOUND_REV1 = device_creator; -const device_type GOTTLIEB_SOUND_REV1_WITH_VOTRAX = device_creator; -const device_type GOTTLIEB_SOUND_REV2 = device_creator; +DEFINE_DEVICE_TYPE(GOTTLIEB_SOUND_REV0, gottlieb_sound_r0_device, "gotsndr0", "Gottlieb Sound rev. 0") +DEFINE_DEVICE_TYPE(GOTTLIEB_SOUND_REV1, gottlieb_sound_r1_device, "gotsndr1", "Gottlieb Sound rev. 1") +DEFINE_DEVICE_TYPE(GOTTLIEB_SOUND_REV1_VOTRAX, gottlieb_sound_r1_with_votrax_device, "gotsndr1vt", "Gottlieb Sound rev. 1 with Votrax") +DEFINE_DEVICE_TYPE(GOTTLIEB_SOUND_REV2, gottlieb_sound_r2_device, "gotsndr2", "Gottlieb Sound rev. 2") //************************************************************************** @@ -40,7 +40,7 @@ const device_type GOTTLIEB_SOUND_REV2 = device_creator //------------------------------------------------- gottlieb_sound_r0_device::gottlieb_sound_r0_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, GOTTLIEB_SOUND_REV0, "Gottlieb Sound rev. 0", tag, owner, clock, "gotsndr0", __FILE__) + : device_t(mconfig, GOTTLIEB_SOUND_REV0, tag, owner, clock) , device_mixer_interface(mconfig, *this) , m_audiocpu(*this, "audiocpu") , m_r6530(*this, "r6530") @@ -165,20 +165,17 @@ void gottlieb_sound_r0_device::device_start() //------------------------------------------------- gottlieb_sound_r1_device::gottlieb_sound_r1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : gottlieb_sound_r1_device(mconfig, GOTTLIEB_SOUND_REV1, "Gottlieb Sound rev. 1", tag, owner, clock, "gotsndr1", __FILE__) + : gottlieb_sound_r1_device(mconfig, GOTTLIEB_SOUND_REV1, tag, owner, clock) { } gottlieb_sound_r1_device::gottlieb_sound_r1_device( const machine_config &mconfig, device_type type, - const char *name, const char *tag, device_t *owner, - uint32_t clock, - const char *shortname, - const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source) + uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) , device_mixer_interface(mconfig, *this) , m_audiocpu(*this, "audiocpu") , m_riot(*this, "riot") @@ -389,7 +386,7 @@ void gottlieb_sound_r1_device::device_start() //------------------------------------------------- gottlieb_sound_r1_with_votrax_device::gottlieb_sound_r1_with_votrax_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : gottlieb_sound_r1_device(mconfig, GOTTLIEB_SOUND_REV1_WITH_VOTRAX, "Gottlieb Sound rev. 1 with Votrax", tag, owner, clock, "gotsndr1vt", __FILE__) + : gottlieb_sound_r1_device(mconfig, GOTTLIEB_SOUND_REV1_VOTRAX, tag, owner, clock) { } @@ -426,7 +423,7 @@ ioport_constructor gottlieb_sound_r1_with_votrax_device::device_input_ports() co //------------------------------------------------- gottlieb_sound_r2_device::gottlieb_sound_r2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, GOTTLIEB_SOUND_REV2, "Gottlieb Sound rev. 2", tag, owner, clock, "gotsndr2", __FILE__), + : device_t(mconfig, GOTTLIEB_SOUND_REV2, tag, owner, clock), device_mixer_interface(mconfig, *this), m_audiocpu(*this, "audiocpu"), m_speechcpu(*this, "speechcpu"), diff --git a/src/mame/audio/gottlieb.h b/src/mame/audio/gottlieb.h index 722c256e6a7..f8b49933c18 100644 --- a/src/mame/audio/gottlieb.h +++ b/src/mame/audio/gottlieb.h @@ -18,10 +18,10 @@ // GLOBAL VARIABLES //************************************************************************** -extern const device_type GOTTLIEB_SOUND_REV0; -extern const device_type GOTTLIEB_SOUND_REV1; -extern const device_type GOTTLIEB_SOUND_REV1_WITH_VOTRAX; -extern const device_type GOTTLIEB_SOUND_REV2; +DECLARE_DEVICE_TYPE(GOTTLIEB_SOUND_REV0, gottlieb_sound_r0_device) +DECLARE_DEVICE_TYPE(GOTTLIEB_SOUND_REV1, gottlieb_sound_r1_device) +DECLARE_DEVICE_TYPE(GOTTLIEB_SOUND_REV1_VOTRAX, gottlieb_sound_r1_with_votrax_device) +DECLARE_DEVICE_TYPE(GOTTLIEB_SOUND_REV2, gottlieb_sound_r2_device) @@ -90,12 +90,9 @@ protected: gottlieb_sound_r1_device( const machine_config &mconfig, device_type type, - const char *name, const char *tag, device_t *owner, - uint32_t clock, - const char *shortname, - const char *source); + uint32_t clock); // device-level overrides virtual machine_config_constructor device_mconfig_additions() const override; diff --git a/src/mame/audio/gridlee.cpp b/src/mame/audio/gridlee.cpp index d34a6ca1c4e..78280b7511e 100644 --- a/src/mame/audio/gridlee.cpp +++ b/src/mame/audio/gridlee.cpp @@ -11,7 +11,7 @@ // device type definition -const device_type GRIDLEE = device_creator; +DEFINE_DEVICE_TYPE(GRIDLEE, gridlee_sound_device, "gridlee_sound", "Gridlee Audio Custom") //************************************************************************** @@ -23,7 +23,7 @@ const device_type GRIDLEE = device_creator; //------------------------------------------------- gridlee_sound_device::gridlee_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, GRIDLEE, "Gridlee Audio Custom", tag, owner, clock, "gridlee_sound", __FILE__), + : device_t(mconfig, GRIDLEE, tag, owner, clock), device_sound_interface(mconfig, *this), m_tone_step(0), m_tone_fraction(0), diff --git a/src/mame/audio/harddriv.cpp b/src/mame/audio/harddriv.cpp index 8250b40f6cc..690a8eef269 100644 --- a/src/mame/audio/harddriv.cpp +++ b/src/mame/audio/harddriv.cpp @@ -8,8 +8,9 @@ #include "emu.h" #include "includes/harddriv.h" -#include "cpu/tms32010/tms32010.h" #include "machine/atarigen.h" + +#include "cpu/tms32010/tms32010.h" #include "sound/volt_reg.h" #include "speaker.h" @@ -26,10 +27,10 @@ // harddriv_sound_board_device - constructor //------------------------------------------------- -const device_type HARDDRIV_SOUND_BOARD_DEVICE = device_creator; +DEFINE_DEVICE_TYPE(HARDDRIV_SOUND_BOARD, harddriv_sound_board_device, "harddriv_sound", "Hard Drivin' Sound Board") harddriv_sound_board_device::harddriv_sound_board_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, HARDDRIV_SOUND_BOARD_DEVICE, "Hard Drivin' Sound Board", tag, owner, clock, "harddriv_sound", __FILE__), + device_t(mconfig, HARDDRIV_SOUND_BOARD, tag, owner, clock), m_soundcpu(*this, "soundcpu"), m_dac(*this, "dac"), m_sounddsp(*this, "sounddsp"), diff --git a/src/mame/audio/hyprolyb.cpp b/src/mame/audio/hyprolyb.cpp index 02b55b2ff8c..0baf0113634 100644 --- a/src/mame/audio/hyprolyb.cpp +++ b/src/mame/audio/hyprolyb.cpp @@ -4,15 +4,15 @@ #include "cpu/m6800/m6800.h" #include "audio/hyprolyb.h" -const device_type HYPROLYB_ADPCM = device_creator; +DEFINE_DEVICE_TYPE(HYPROLYB_ADPCM, hyprolyb_adpcm_device, "hyprolyb_adpcm", "Hyper Olympics Audio") hyprolyb_adpcm_device::hyprolyb_adpcm_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, HYPROLYB_ADPCM, "Hyper Olympics Audio", tag, owner, clock, "hyprolyb_adpcm", __FILE__), - device_sound_interface(mconfig, *this), - m_soundlatch2(*this, ":soundlatch2"), - m_adpcm_ready(0), - m_adpcm_busy(0), - m_vck_ready(0) + : device_t(mconfig, HYPROLYB_ADPCM, tag, owner, clock) + , device_sound_interface(mconfig, *this) + , m_soundlatch2(*this, ":soundlatch2") + , m_adpcm_ready(0) + , m_adpcm_busy(0) + , m_vck_ready(0) { } @@ -113,7 +113,7 @@ MACHINE_CONFIG_FRAGMENT( hyprolyb_adpcm ) MCFG_SOUND_ADD("msm", MSM5205, 384000) MCFG_MSM5205_VCLK_CB(DEVWRITELINE("hyprolyb_adpcm", hyprolyb_adpcm_device, vck_callback)) /* VCK function */ - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S96_4B) /* 4 kHz */ + MCFG_MSM5205_PRESCALER_SELECTOR(S96_4B) /* 4 kHz */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5) MACHINE_CONFIG_END diff --git a/src/mame/audio/hyprolyb.h b/src/mame/audio/hyprolyb.h index 67ab8c27f74..fccea4779be 100644 --- a/src/mame/audio/hyprolyb.h +++ b/src/mame/audio/hyprolyb.h @@ -1,15 +1,17 @@ // license:BSD-3-Clause // copyright-holders:Chris Hardy +#ifndef MAME_AUDIO_HYPROLYB_H +#define MAME_AUDIO_HYPROLYB_H + +#pragma once #include "machine/gen_latch.h" #include "sound/msm5205.h" -class hyprolyb_adpcm_device : public device_t, - public device_sound_interface +class hyprolyb_adpcm_device : public device_t, public device_sound_interface { public: hyprolyb_adpcm_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~hyprolyb_adpcm_device() {} DECLARE_WRITE8_MEMBER( write ); DECLARE_READ8_MEMBER( busy_r ); @@ -42,3 +44,6 @@ protected: MACHINE_CONFIG_EXTERN( hyprolyb_adpcm ); extern const device_type HYPROLYB_ADPCM; +DECLARE_DEVICE_TYPE(HYPROLYB_ADPCM, hyprolyb_adpcm_device) + +#endif // MAME_AUDIO_HYPROLYB_H diff --git a/src/mame/audio/irem.cpp b/src/mame/audio/irem.cpp index ccc1a6852cd..7675fef06cf 100644 --- a/src/mame/audio/irem.cpp +++ b/src/mame/audio/irem.cpp @@ -14,32 +14,36 @@ #include "speaker.h" -const device_type IREM_M62_AUDIO = device_creator; -const device_type IREM_M52_SOUNDC_AUDIO = device_creator; -const device_type IREM_M52_LARGE_AUDIO = device_creator; - -irem_audio_device::irem_audio_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), - m_port1(0), - m_port2(0), - m_soundlatch(0) - //m_ay_45L(*this, "ay_45l"), - //m_ay_45M(*this, "ay_45m") +DEFINE_DEVICE_TYPE(IREM_M62_AUDIO, m62_audio_device, "m62_audio", "Irem M62 Audio") +DEFINE_DEVICE_TYPE(IREM_M52_SOUNDC_AUDIO, m52_soundc_audio_device, "m52_soundc_audio", "Irem M52 SoundC Audio") +DEFINE_DEVICE_TYPE(IREM_M52_LARGE_AUDIO, m52_large_audio_device, "m52_large_audio", "Irem M52 Large Audio") + +irem_audio_device::irem_audio_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) + , m_port1(0) + , m_port2(0) + , m_soundlatch(0) + //, m_ay_45L(*this, "ay_45l") + //, m_ay_45M(*this, "ay_45m") + , m_audio_BD(*this, "snd_nl:ibd") + , m_audio_SD(*this, "snd_nl:isd") + , m_audio_OH(*this, "snd_nl:ioh") + , m_audio_CH(*this, "snd_nl:ich") { } m62_audio_device::m62_audio_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : irem_audio_device(mconfig, IREM_M62_AUDIO, "Irem M62 Audio", tag, owner, clock, "irem_m62_audio", __FILE__) + : irem_audio_device(mconfig, IREM_M62_AUDIO, tag, owner, clock) { } m52_soundc_audio_device::m52_soundc_audio_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : irem_audio_device(mconfig, IREM_M52_SOUNDC_AUDIO, "Irem M52 SoundC Audio", tag, owner, clock, "irem_m52_soundc_audio", __FILE__) + : irem_audio_device(mconfig, IREM_M52_SOUNDC_AUDIO, tag, owner, clock) { } m52_large_audio_device::m52_large_audio_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : irem_audio_device(mconfig, IREM_M52_LARGE_AUDIO, "Irem M52 Large Audio", tag, owner, clock, "irem_m52_large_audio", __FILE__) + : irem_audio_device(mconfig, IREM_M52_LARGE_AUDIO, tag, owner, clock) { } @@ -54,11 +58,7 @@ void irem_audio_device::device_start() m_ay_45L = subdevice("ay_45l"); m_ay_45M = subdevice("ay_45m"); - m_audio_BD = subdevice("snd_nl:ibd"); - m_audio_SD = subdevice("snd_nl:isd"); - m_audio_OH = subdevice("snd_nl:ioh"); - m_audio_CH = subdevice("snd_nl:ich"); - m_audio_SINH = subdevice("snd_nl:sinh"); + m_audio_SINH = subdevice("snd_nl:sinh"); save_item(NAME(m_port1)); save_item(NAME(m_port2)); @@ -457,11 +457,11 @@ static MACHINE_CONFIG_FRAGMENT( irem_audio_base ) MCFG_SOUND_ADD("msm1", MSM5205, XTAL_384kHz) /* verified on pcb */ MCFG_MSM5205_VCLK_CB(WRITELINE(irem_audio_device, adpcm_int)) /* interrupt function */ - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S96_4B) /* default to 4KHz, but can be changed at run time */ + MCFG_MSM5205_PRESCALER_SELECTOR(S96_4B) /* default to 4KHz, but can be changed at run time */ MCFG_SOUND_ROUTE_EX(0, "snd_nl", 1.0, 6) MCFG_SOUND_ADD("msm2", MSM5205, XTAL_384kHz) /* verified on pcb */ - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_SEX_4B) /* default to 4KHz, but can be changed at run time, slave */ + MCFG_MSM5205_PRESCALER_SELECTOR(SEX_4B) /* default to 4KHz, but can be changed at run time, slave */ MCFG_SOUND_ROUTE_EX(0, "snd_nl", 1.0, 7) /* NETLIST configuration using internal AY8910 resistor values */ @@ -522,7 +522,7 @@ MACHINE_CONFIG_FRAGMENT( m52_sound_c_audio ) MCFG_SOUND_ADD("msm1", MSM5205, XTAL_384kHz) /* verified on pcb */ MCFG_MSM5205_VCLK_CB(WRITELINE(irem_audio_device, adpcm_int)) /* interrupt function */ - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S96_4B) /* default to 4KHz, but can be changed at run time */ + MCFG_MSM5205_PRESCALER_SELECTOR(S96_4B) /* default to 4KHz, but can be changed at run time */ MCFG_SOUND_ROUTE_EX(0, "filtermix", 1.0, 2) MCFG_SOUND_ADD("filtermix", DISCRETE, 0) @@ -556,11 +556,11 @@ MACHINE_CONFIG_FRAGMENT( m52_large_audio) /* 10 yard fight */ MCFG_SOUND_ADD("msm1", MSM5205, XTAL_384kHz) /* verified on pcb */ MCFG_MSM5205_VCLK_CB(WRITELINE(irem_audio_device, adpcm_int)) /* interrupt function */ - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S96_4B) /* default to 4KHz, but can be changed at run time */ + MCFG_MSM5205_PRESCALER_SELECTOR(S96_4B) /* default to 4KHz, but can be changed at run time */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) MCFG_SOUND_ADD("msm2", MSM5205, XTAL_384kHz) /* verified on pcb */ - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_SEX_4B) /* default to 4KHz, but can be changed at run time, slave */ + MCFG_MSM5205_PRESCALER_SELECTOR(SEX_4B) /* default to 4KHz, but can be changed at run time, slave */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) MACHINE_CONFIG_END diff --git a/src/mame/audio/irem.h b/src/mame/audio/irem.h index 9704b98b35f..756f3355d22 100644 --- a/src/mame/audio/irem.h +++ b/src/mame/audio/irem.h @@ -1,5 +1,10 @@ // license:BSD-3-Clause // copyright-holders:Couriersud +#ifndef MAME_AUDIO_IREM_H +#define MAME_AUDIO_IREM_H + +#pragma once + #include "sound/ay8910.h" #include "sound/msm5205.h" #include "machine/netlist.h" @@ -8,9 +13,6 @@ class irem_audio_device : public device_t { public: - irem_audio_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - ~irem_audio_device() {} - DECLARE_WRITE8_MEMBER( cmd_w ); DECLARE_READ8_MEMBER( soundlatch_r ); DECLARE_WRITE8_MEMBER( m6803_port1_w ); @@ -25,9 +27,11 @@ public: void adpcm_int(int st); - netlist_mame_logic_input_t * m_audio_SINH; + netlist_mame_logic_input_device * m_audio_SINH; protected: + irem_audio_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -46,10 +50,10 @@ private: msm5205_device *m_adpcm1; msm5205_device *m_adpcm2; - netlist_mame_logic_input_t * m_audio_BD; - netlist_mame_logic_input_t * m_audio_SD; - netlist_mame_logic_input_t * m_audio_OH; - netlist_mame_logic_input_t * m_audio_CH; + optional_device m_audio_BD; + optional_device m_audio_SD; + optional_device m_audio_OH; + optional_device m_audio_CH; }; class m62_audio_device : public irem_audio_device @@ -77,6 +81,8 @@ public: //MACHINE_CONFIG_EXTERN( m52_large_audio ); //MACHINE_CONFIG_EXTERN( m62_audio ); -extern const device_type IREM_M62_AUDIO; -extern const device_type IREM_M52_SOUNDC_AUDIO; -extern const device_type IREM_M52_LARGE_AUDIO; +DECLARE_DEVICE_TYPE(IREM_M62_AUDIO, m62_audio_device) +DECLARE_DEVICE_TYPE(IREM_M52_SOUNDC_AUDIO, m52_soundc_audio_device) +DECLARE_DEVICE_TYPE(IREM_M52_LARGE_AUDIO, m52_large_audio_device) + +#endif // MAME_AUDIO_IREM_H diff --git a/src/mame/audio/leland.cpp b/src/mame/audio/leland.cpp index 0ae2dcf0644..4ff229e9b8e 100644 --- a/src/mame/audio/leland.cpp +++ b/src/mame/audio/leland.cpp @@ -80,7 +80,7 @@ ***************************************************************************/ #include "emu.h" -#include "includes/leland.h" +#include "audio/leland.h" #include "cpu/z80/z80.h" #include "sound/volt_reg.h" @@ -351,37 +351,16 @@ void leland_80186_sound_device::device_reset() m_ext_active = 0; } -const device_type LELAND_80186 = device_creator; +DEFINE_DEVICE_TYPE(LELAND_80186, leland_80186_sound_device, "leland_80186_sound", "80186 DAC (Leland)") leland_80186_sound_device::leland_80186_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, LELAND_80186, "80186 DAC (Leland)", tag, owner, clock, "leland_80186_sound", __FILE__), - m_dac1(*this, "dac1"), - m_dac2(*this, "dac2"), - m_dac3(*this, "dac3"), - m_dac4(*this, "dac4"), - m_dac5(*this, "dac5"), - m_dac6(*this, "dac6"), - m_dac7(*this, "dac7"), - m_dac8(*this, "dac8"), - m_dac9(*this, "dac9"), - m_dac1vol(*this, "dac1vol"), - m_dac2vol(*this, "dac2vol"), - m_dac3vol(*this, "dac3vol"), - m_dac4vol(*this, "dac4vol"), - m_dac5vol(*this, "dac5vol"), - m_dac6vol(*this, "dac6vol"), - m_dac7vol(*this, "dac7vol"), - m_dac8vol(*this, "dac8vol"), - m_pit0(*this, "pit0"), - m_pit1(*this, "pit1"), - m_pit2(*this, "pit2"), - m_ymsnd(*this, "ymsnd") + : leland_80186_sound_device(mconfig, LELAND_80186, tag, owner, clock) { m_type = TYPE_LELAND; } -leland_80186_sound_device::leland_80186_sound_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), +leland_80186_sound_device::leland_80186_sound_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock), m_dac1(*this, "dac1"), m_dac2(*this, "dac2"), m_dac3(*this, "dac3"), @@ -406,26 +385,26 @@ leland_80186_sound_device::leland_80186_sound_device(const machine_config &mconf { } -const device_type REDLINE_80186 = device_creator; +DEFINE_DEVICE_TYPE(REDLINE_80186, redline_80186_sound_device, "redline_80186_sound", "80186 DAC (Redline Racer)") redline_80186_sound_device::redline_80186_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : leland_80186_sound_device(mconfig, REDLINE_80186, "80186 DAC (Redline Racer)", tag, owner, clock, "redline_80186_sound", __FILE__) + : leland_80186_sound_device(mconfig, REDLINE_80186, tag, owner, clock) { m_type = TYPE_REDLINE; } -const device_type ATAXX_80186 = device_creator; +DEFINE_DEVICE_TYPE(ATAXX_80186, ataxx_80186_sound_device, "ataxx_80186_sound", "80186 DAC (Ataxx)") ataxx_80186_sound_device::ataxx_80186_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : leland_80186_sound_device(mconfig, ATAXX_80186, "80186 DAC (Ataxx)", tag, owner, clock, "ataxx_80186_sound", __FILE__) + : leland_80186_sound_device(mconfig, ATAXX_80186, tag, owner, clock) { m_type = TYPE_ATAXX; } -const device_type WSF_80186 = device_creator; +DEFINE_DEVICE_TYPE(WSF_80186, wsf_80186_sound_device, "wsf_80186_sound", "80186 DAC (WSF)") wsf_80186_sound_device::wsf_80186_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : leland_80186_sound_device(mconfig, WSF_80186, "80186 DAC (WSF)", tag, owner, clock, "wsf_80186_sound", __FILE__) + : leland_80186_sound_device(mconfig, WSF_80186, tag, owner, clock) { m_type = TYPE_WSF; } diff --git a/src/mame/audio/leland.h b/src/mame/audio/leland.h new file mode 100644 index 00000000000..1ffea93257c --- /dev/null +++ b/src/mame/audio/leland.h @@ -0,0 +1,135 @@ +// license:BSD-3-Clause +// copyright-holders:Aaron Giles +/************************************************************************* + + Cinemat/Leland driver + +*************************************************************************/ +#ifndef MAME_AUDIO_LELAND_H +#define MAME_AUDIO_LELAND_H + +#pragma once + +#include "cpu/i86/i186.h" +#include "machine/pit8253.h" +#include "sound/dac.h" +#include "sound/ym2151.h" + + +class leland_80186_sound_device : public device_t +{ +public: + leland_80186_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + virtual machine_config_constructor device_mconfig_additions() const override; + + DECLARE_WRITE16_MEMBER(peripheral_ctrl); + DECLARE_WRITE8_MEMBER(leland_80186_control_w); + DECLARE_WRITE8_MEMBER(ataxx_80186_control_w); + DECLARE_READ16_MEMBER(peripheral_r); + DECLARE_WRITE16_MEMBER(peripheral_w); + DECLARE_WRITE8_MEMBER(leland_80186_command_lo_w); + DECLARE_WRITE8_MEMBER(leland_80186_command_hi_w); + DECLARE_READ8_MEMBER(leland_80186_response_r); + DECLARE_WRITE16_MEMBER(dac_w); + DECLARE_WRITE16_MEMBER(ataxx_dac_control); + DECLARE_WRITE_LINE_MEMBER(pit0_2_w); + DECLARE_WRITE_LINE_MEMBER(pit1_0_w); + DECLARE_WRITE_LINE_MEMBER(pit1_1_w); + DECLARE_WRITE_LINE_MEMBER(pit1_2_w); + DECLARE_WRITE_LINE_MEMBER(i80186_tmr0_w); + DECLARE_WRITE_LINE_MEMBER(i80186_tmr1_w); + +protected: + leland_80186_sound_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + int m_type; + + enum { + TYPE_LELAND, + TYPE_REDLINE, + TYPE_ATAXX, + TYPE_WSF + }; + + required_device m_dac1; + required_device m_dac2; + required_device m_dac3; + required_device m_dac4; + optional_device m_dac5; + optional_device m_dac6; + optional_device m_dac7; + optional_device m_dac8; + optional_device m_dac9; + required_device m_dac1vol; + required_device m_dac2vol; + required_device m_dac3vol; + required_device m_dac4vol; + optional_device m_dac5vol; + optional_device m_dac6vol; + optional_device m_dac7vol; + optional_device m_dac8vol; + +private: + void command_lo_sync(void *ptr, int param); + void delayed_response_r(void *ptr, int param); + void set_clock_line(int which, int state) { m_clock_active = state ? (m_clock_active | (1< m_pit0; + optional_device m_pit1; + optional_device m_pit2; + optional_device m_ymsnd; +}; + + +class redline_80186_sound_device : public leland_80186_sound_device +{ +public: + redline_80186_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + DECLARE_WRITE16_MEMBER(redline_dac_w); + virtual machine_config_constructor device_mconfig_additions() const override; +}; + + +class ataxx_80186_sound_device : public leland_80186_sound_device +{ +public: + ataxx_80186_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + virtual machine_config_constructor device_mconfig_additions() const override; +}; + + +class wsf_80186_sound_device : public leland_80186_sound_device +{ +public: + wsf_80186_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + virtual machine_config_constructor device_mconfig_additions() const override; +}; + + +DECLARE_DEVICE_TYPE(LELAND_80186, leland_80186_sound_device) +DECLARE_DEVICE_TYPE(REDLINE_80186, redline_80186_sound_device) +DECLARE_DEVICE_TYPE(ATAXX_80186, ataxx_80186_sound_device) +DECLARE_DEVICE_TYPE(WSF_80186, wsf_80186_sound_device) + +ADDRESS_MAP_EXTERN(leland_80186_map_program, 16); +ADDRESS_MAP_EXTERN(leland_80186_map_io, 16); +ADDRESS_MAP_EXTERN(redline_80186_map_io, 16); +ADDRESS_MAP_EXTERN(ataxx_80186_map_io, 16); + +#endif // MAME_AUDIO_LELAND_H diff --git a/src/mame/audio/lynx.cpp b/src/mame/audio/lynx.cpp index 89ff60be811..0571d1205fd 100644 --- a/src/mame/audio/lynx.cpp +++ b/src/mame/audio/lynx.cpp @@ -85,8 +85,8 @@ AUD_A_RIGHT EQU %00000001 // device type definition -const device_type LYNX_SND = device_creator; -const device_type LYNX2_SND = device_creator; +DEFINE_DEVICE_TYPE(LYNX_SND, lynx_sound_device, "lynx_sound", "Mikey") +DEFINE_DEVICE_TYPE(LYNX2_SND, lynx2_sound_device, "lynx2_sound", "Mikey (Lynx II)") //************************************************************************** // LIVE DEVICE @@ -97,25 +97,24 @@ const device_type LYNX2_SND = device_creator; //------------------------------------------------- lynx_sound_device::lynx_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, LYNX_SND, "Mikey", tag, owner, clock, "lynx_sound", __FILE__), - device_sound_interface(mconfig, *this) + : lynx_sound_device(mconfig, LYNX_SND, tag, owner, clock) { - m_timer_delegate = lynx_sound_timer_delegate(); + m_timer_delegate = timer_delegate(); } -lynx_sound_device::lynx_sound_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_sound_interface(mconfig, *this) +lynx_sound_device::lynx_sound_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) + , device_sound_interface(mconfig, *this) { } lynx2_sound_device::lynx2_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : lynx_sound_device(mconfig, LYNX2_SND, "Mikey (Lynx II)", tag, owner, clock, "lynx2_sound", __FILE__) + : lynx_sound_device(mconfig, LYNX2_SND, tag, owner, clock) { } -void lynx_sound_device::set_timer_delegate(device_t &device, lynx_sound_timer_delegate cb) +void lynx_sound_device::set_timer_delegate(device_t &device, timer_delegate cb) { lynx_sound_device &dev = downcast(device); dev.m_timer_delegate = cb; diff --git a/src/mame/audio/lynx.h b/src/mame/audio/lynx.h index a9958e868cd..0d660ce3224 100644 --- a/src/mame/audio/lynx.h +++ b/src/mame/audio/lynx.h @@ -1,43 +1,44 @@ // license:GPL-2.0+ // copyright-holders:Peter Trauner +#ifndef MAME_AUDIO_LYNX_H +#define MAME_AUDIO_LYNX_H -#ifndef __LYNXSOUND_H__ -#define __LYNXSOUND_H__ - -struct LYNX_AUDIO { - struct { - int8_t volume; - uint8_t feedback; - int8_t output; - uint8_t shifter; - uint8_t bakup; - uint8_t control1; - uint8_t counter; - uint8_t control2; - } reg; - uint8_t attenuation; - uint16_t mask; // 12-bit - uint16_t shifter; // 12-bit - float ticks; - int count; -}; - -typedef device_delegate lynx_sound_timer_delegate; +#pragma once -class lynx_sound_device : public device_t, - public device_sound_interface +class lynx_sound_device : public device_t, public device_sound_interface { public: - lynx_sound_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); + typedef device_delegate timer_delegate; + lynx_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); DECLARE_READ8_MEMBER(read); DECLARE_WRITE8_MEMBER(write); void count_down(int nr); - static void set_timer_delegate(device_t &device, lynx_sound_timer_delegate cb); + static void set_timer_delegate(device_t &device, timer_delegate cb); protected: + struct LYNX_AUDIO { + struct { + int8_t volume; + uint8_t feedback; + int8_t output; + uint8_t shifter; + uint8_t bakup; + uint8_t control1; + uint8_t counter; + uint8_t control2; + } reg; + uint8_t attenuation; + uint16_t mask; // 12-bit + uint16_t shifter; // 12-bit + float ticks; + int count; + }; + + lynx_sound_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; @@ -53,7 +54,7 @@ protected: void register_save(); sound_stream *m_mixer_channel; - lynx_sound_timer_delegate m_timer_delegate; // this calls lynx_timer_count_down from the driver state + timer_delegate m_timer_delegate; // this calls lynx_timer_count_down from the driver state float m_usec_per_sample; std::unique_ptr m_shift_mask; @@ -78,12 +79,12 @@ protected: }; -extern const device_type LYNX_SND; -extern const device_type LYNX2_SND; +DECLARE_DEVICE_TYPE(LYNX_SND, lynx_sound_device) +DECLARE_DEVICE_TYPE(LYNX2_SND, lynx2_sound_device) #define MCFG_LYNX_SND_SET_TIMER( _class, _method) \ - lynx_sound_device::set_timer_delegate(*device, lynx_sound_timer_delegate(&_class::_method, #_class "::" #_method, nullptr, (_class *)nullptr)); + lynx_sound_device::set_timer_delegate(*device, lynx_sound_device::timer_delegate(&_class::_method, #_class "::" #_method, nullptr, (_class *)nullptr)); -#endif +#endif // MAME_AUDIO_LYNX_H diff --git a/src/mame/audio/m72.cpp b/src/mame/audio/m72.cpp index d07a86751ec..ced76a57daf 100644 --- a/src/mame/audio/m72.cpp +++ b/src/mame/audio/m72.cpp @@ -47,10 +47,10 @@ Shisensho II 1993 Rev 3.34 M81 Yes #include "m72.h" -const device_type M72 = device_creator; +DEFINE_DEVICE_TYPE(IREM_M72_AUDIO, m72_audio_device, "m72_audio", "Irem M72 Audio") m72_audio_device::m72_audio_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, M72, "Irem M72 Audio Custom", tag, owner, clock, "m72_audio", __FILE__) + : device_t(mconfig, IREM_M72_AUDIO, tag, owner, clock) , device_sound_interface(mconfig, *this) , m_irqvector(0) , m_sample_addr(0) diff --git a/src/mame/audio/m72.h b/src/mame/audio/m72.h index 26317e436ab..b5ccf69cb01 100644 --- a/src/mame/audio/m72.h +++ b/src/mame/audio/m72.h @@ -5,12 +5,15 @@ M72 audio interface ****************************************************************************/ +#ifndef MAME_AUDIO_M72_H +#define MAME_AUDIO_M72_H + +#pragma once #include "machine/gen_latch.h" #include "sound/dac.h" -class m72_audio_device : public device_t, - public device_sound_interface +class m72_audio_device : public device_t, public device_sound_interface { public: m72_audio_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); @@ -59,4 +62,6 @@ private: TIMER_CALLBACK_MEMBER( setvector_callback ); }; -extern const device_type M72; +DECLARE_DEVICE_TYPE(IREM_M72_AUDIO, m72_audio_device) + +#endif // MAME_AUDIO_M72_H diff --git a/src/mame/audio/micro3d.cpp b/src/mame/audio/micro3d.cpp index eebed7887a7..8e117894a9a 100644 --- a/src/mame/audio/micro3d.cpp +++ b/src/mame/audio/micro3d.cpp @@ -9,7 +9,7 @@ ***************************************************************************/ #include "emu.h" -#include "includes/micro3d.h" +#include "audio/micro3d.h" #define MM5837_CLOCK 100000 @@ -22,23 +22,23 @@ *************************************/ /* Borrowed from segasnd.c */ -static inline void configure_filter(m3d_filter_state *state, double r, double c) +inline void micro3d_sound_device::m3d_filter_state::configure(double r, double c) { - state->capval = 0; - state->exponent = 1.0 - exp(-1.0 / (r * c * 2000000/8)); + capval = 0; + exponent = 1.0 - exp(-1.0 / (r * c * 2000000/8)); } #if 0 -static inline double step_rc_filter(m3d_filter_state *state, double input) +inline double micro3d_sound_device::m3d_filter_state::step_rc_filter(double input) { - state->capval += (input - state->capval) * state->exponent; - return state->capval; + capval += (input - capval) * exponent; + return capval; } -static inline double step_cr_filter(m3d_filter_state *state, double input) +inline double micro3d_sound_device::m3d_filter_state::step_cr_filter(double input) { - double result = (input - state->capval); - state->capval += (input - state->capval) * state->exponent; + double const result = input - capval; + capval += result * exponent; return result; } #endif @@ -50,27 +50,27 @@ static inline double step_cr_filter(m3d_filter_state *state, double input) * *************************************/ -static void filter_init(running_machine &machine, lp_filter *iir, double fs) +void micro3d_sound_device::lp_filter::init(double fsval) { /* Section 1 */ - iir->ProtoCoef[0].a0 = 1.0; - iir->ProtoCoef[0].a1 = 0; - iir->ProtoCoef[0].a2 = 0; - iir->ProtoCoef[0].b0 = 1.0; - iir->ProtoCoef[0].b1 = 0.765367; - iir->ProtoCoef[0].b2 = 1.0; + proto_coef[0].a0 = 1.0; + proto_coef[0].a1 = 0; + proto_coef[0].a2 = 0; + proto_coef[0].b0 = 1.0; + proto_coef[0].b1 = 0.765367; + proto_coef[0].b2 = 1.0; /* Section 2 */ - iir->ProtoCoef[1].a0 = 1.0; - iir->ProtoCoef[1].a1 = 0; - iir->ProtoCoef[1].a2 = 0; - iir->ProtoCoef[1].b0 = 1.0; - iir->ProtoCoef[1].b1 = 1.847759; - iir->ProtoCoef[1].b2 = 1.0; - - iir->coef = make_unique_clear(4 * 2 + 1); - iir->fs = fs; - iir->history = make_unique_clear(2 * 2); + proto_coef[1].a0 = 1.0; + proto_coef[1].a1 = 0; + proto_coef[1].a2 = 0; + proto_coef[1].b0 = 1.0; + proto_coef[1].b1 = 1.847759; + proto_coef[1].b2 = 1.0; + + coef = make_unique_clear(4 * 2 + 1); + fs = fsval; + history = make_unique_clear(2 * 2); } static void prewarp(double *a0, double *a1, double *a2,double fc, double fs) @@ -102,47 +102,42 @@ static void bilinear(double a0, double a1, double a2, *coef = (4. * a2 * fs * fs - 2. * a1 * fs + a0) / ad; } -static void recompute_filter(lp_filter *iir, double k, double q, double fc) +void micro3d_sound_device::lp_filter::recompute(double k, double q, double fc) { - int nInd; - double a0, a1, a2, b0, b1, b2; + float *c = coef.get() + 1; - float *coef = iir->coef.get() + 1; - - for (nInd = 0; nInd < 2; nInd++) + for (int nInd = 0; nInd < 2; nInd++) { - a0 = iir->ProtoCoef[nInd].a0; - a1 = iir->ProtoCoef[nInd].a1; - a2 = iir->ProtoCoef[nInd].a2; + double a0 = proto_coef[nInd].a0; + double a1 = proto_coef[nInd].a1; + double a2 = proto_coef[nInd].a2; - b0 = iir->ProtoCoef[nInd].b0; - b1 = iir->ProtoCoef[nInd].b1 / q; - b2 = iir->ProtoCoef[nInd].b2; + double b0 = proto_coef[nInd].b0; + double b1 = proto_coef[nInd].b1 / q; + double b2 = proto_coef[nInd].b2; - prewarp(&a0, &a1, &a2, fc, iir->fs); - prewarp(&b0, &b1, &b2, fc, iir->fs); - bilinear(a0, a1, a2, b0, b1, b2, &k, iir->fs, coef); + prewarp(&a0, &a1, &a2, fc, fs); + prewarp(&b0, &b1, &b2, fc, fs); + bilinear(a0, a1, a2, b0, b1, b2, &k, fs, c); - coef += 4; + c += 4; } - iir->coef[0] = k; + coef[0] = k; } -void micro3d_sound_device::noise_sh_w(uint8_t data) +void micro3d_sound_device::noise_sh_w(u8 data) { - micro3d_state *state = machine().driver_data(); - if (~data & 8) { - if (state->m_dac_data != m_dac[data & 3]) + if (m_dac_data != m_dac[data & 3]) { double q; double fc; m_stream->update(); - m_dac[data & 3] = state->m_dac_data; + m_dac[data & 3] = m_dac_data; if (m_dac[VCA] == 255) m_gain = 0; @@ -152,7 +147,7 @@ void micro3d_sound_device::noise_sh_w(uint8_t data) q = 0.75/255 * (255 - m_dac[VCQ]) + 0.1; fc = 4500.0/255 * (255 - m_dac[VCF]) + 100; - recompute_filter(&m_filter, m_gain, q, fc); + m_filter.recompute(m_gain, q, fc); } } } @@ -165,10 +160,10 @@ void micro3d_sound_device::noise_sh_w(uint8_t data) *************************************/ -const device_type MICRO3D = device_creator; +DEFINE_DEVICE_TYPE(MICRO3D, micro3d_sound_device, "micro3d_sound", "Microprose Audio Custom") -micro3d_sound_device::micro3d_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MICRO3D, "Microprose Audio Custom", tag, owner, clock, "micro3d_sound", __FILE__), +micro3d_sound_device::micro3d_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) + : device_t(mconfig, MICRO3D, tag, owner, clock), device_sound_interface(mconfig, *this), m_gain(0), m_noise_shift(0), @@ -177,7 +172,7 @@ micro3d_sound_device::micro3d_sound_device(const machine_config &mconfig, const m_stream(nullptr) { - memset(m_dac, 0, sizeof(uint8_t)*4); + memset(m_dac, 0, sizeof(u8)*4); } //------------------------------------------------- @@ -188,13 +183,13 @@ void micro3d_sound_device::device_start() { /* Allocate the stream */ m_stream = machine().sound().stream_alloc(*this, 0, 2, machine().sample_rate()); - filter_init(machine(), &m_filter, machine().sample_rate()); + m_filter.init(machine().sample_rate()); - configure_filter(&m_noise_filters[0], 2.7e3 + 2.7e3, 1.0e-6); - configure_filter(&m_noise_filters[1], 2.7e3 + 1e3, 0.30e-6); - configure_filter(&m_noise_filters[2], 2.7e3 + 270, 0.15e-6); - configure_filter(&m_noise_filters[3], 2.7e3 + 0, 0.082e-6); -// configure_filter(&m_noise_filters[4], 33e3, 0.1e-6); + m_noise_filters[0].configure(2.7e3 + 2.7e3, 1.0e-6); + m_noise_filters[1].configure(2.7e3 + 1e3, 0.30e-6); + m_noise_filters[2].configure(2.7e3 + 270, 0.15e-6); + m_noise_filters[3].configure(2.7e3 + 0, 0.082e-6); +// m_noise_filters[4].configure(33e3, 0.1e-6); } //------------------------------------------------- @@ -296,69 +291,3 @@ void micro3d_sound_device::sound_stream_update(sound_stream &stream, stream_samp *fr++ = output * pan_r; } } - -/*************************************************************************** - - 8031 port mappings: - - Port 1 Port 2 - ======= ====== - 0: S/H sel A (O) 0: - 1: S/H sel B (O) 1: - 2: S/H sel C (O) 2: uPD bank select (O) - 3: S/H en (O) 3: /uPD busy (I) - 4: DS1267 data (O) 4: /uPD reset (O) - 5: DS1267 clock (O) 5: Watchdog reset (O) - 6: /DS1267 reset (O) 6: - 7: Test SW (I) 7: - -***************************************************************************/ - - -WRITE8_MEMBER(micro3d_state::micro3d_snd_dac_a) -{ - m_dac_data = data; -} - -WRITE8_MEMBER(micro3d_state::micro3d_snd_dac_b) -{ - /* TODO: This controls upd7759 volume */ -} - -WRITE8_MEMBER(micro3d_state::micro3d_sound_io_w) -{ - m_sound_port_latch[offset] = data; - - switch (offset) - { - case 0x01: - { - micro3d_sound_device *noise = (data & 4) ? m_noise_2 : m_noise_1; - noise->noise_sh_w(data); - break; - } - case 0x03: - { - m_upd7759->set_bank_base((data & 0x4) ? 0x20000 : 0); - m_upd7759->reset_w((data & 0x10) ? 0 : 1); - break; - } - } -} - -READ8_MEMBER(micro3d_state::micro3d_sound_io_r) -{ - switch (offset) - { - case 0x01: return (m_sound_port_latch[offset] & 0x7f) | m_sound_sw->read(); - case 0x03: return (m_sound_port_latch[offset] & 0xf7) | (m_upd7759->busy_r() ? 0x08 : 0); - default: return 0; - } -} - -WRITE8_MEMBER(micro3d_state::micro3d_upd7759_w) -{ - m_upd7759->port_w(space, 0, data); - m_upd7759->start_w(0); - m_upd7759->start_w(1); -} diff --git a/src/mame/audio/micro3d.h b/src/mame/audio/micro3d.h new file mode 100644 index 00000000000..827a8de4877 --- /dev/null +++ b/src/mame/audio/micro3d.h @@ -0,0 +1,78 @@ +// license:BSD-3-Clause +// copyright-holders:Philip Bennett +/************************************************************************* + + Microprose Games 3D hardware + +*************************************************************************/ +#ifndef MAME_AUDIO_MICRO3D_H +#define MAME_AUDIO_MICRO3D_H + +#pragma once + +class micro3d_sound_device : public device_t, public device_sound_interface +{ +public: + micro3d_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); + + void dac_w(u8 data) { m_dac_data = data; } + void noise_sh_w(u8 data); + +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + + // sound stream update overrides + virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; + +private: + enum dac_registers { + VCF, + VCQ, + VCA, + PAN + }; + + struct biquad + { + double a0, a1, a2; /* Numerator coefficients */ + double b0, b1, b2; /* Denominator coefficients */ + }; + + struct lp_filter + { + void init(double fs); + void recompute(double k, double q, double fc); + + std::unique_ptr history; + std::unique_ptr coef; + double fs; + biquad proto_coef[2]; + }; + + struct m3d_filter_state + { + void configure(double r, double c); + + double capval; + double exponent; + }; + + u8 m_dac_data; + + u8 m_dac[4]; + + float m_gain; + u32 m_noise_shift; + u8 m_noise_value; + u8 m_noise_subcount; + + m3d_filter_state m_noise_filters[4]; + lp_filter m_filter; + sound_stream *m_stream; +}; + +DECLARE_DEVICE_TYPE(MICRO3D, micro3d_sound_device) + +#endif // MAME_AUDIO_MICRO3D_H diff --git a/src/mame/audio/midway.cpp b/src/mame/audio/midway.cpp index 4b83e1562dc..8ec572c0a8d 100644 --- a/src/mame/audio/midway.cpp +++ b/src/mame/audio/midway.cpp @@ -31,10 +31,10 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type MIDWAY_SSIO = device_creator; -const device_type MIDWAY_SOUNDS_GOOD = device_creator; -const device_type MIDWAY_TURBO_CHEAP_SQUEAK = device_creator; -const device_type MIDWAY_SQUAWK_N_TALK = device_creator; +DEFINE_DEVICE_TYPE(MIDWAY_SSIO, midway_ssio_device, "midssio", "Midway SSIO Sound Board") +DEFINE_DEVICE_TYPE(MIDWAY_SOUNDS_GOOD, midway_sounds_good_device, "midsg", "Midway Sounds Good Sound Board") +DEFINE_DEVICE_TYPE(MIDWAY_TURBO_CHEAP_SQUEAK, midway_turbo_cheap_squeak_device, "midtcs", "Midway Turbo Cheap Squeak Sound Board") +DEFINE_DEVICE_TYPE(MIDWAY_SQUAWK_N_TALK, midway_squawk_n_talk_device, "midsnt", "Midway Squawk 'n' Talk Sound Board") @@ -47,7 +47,7 @@ const device_type MIDWAY_SQUAWK_N_TALK = device_creator; +DEFINE_DEVICE_TYPE(NAMCO_52XX, namco_52xx_device, "namco52", "Namco 52xx") namco_52xx_device::namco_52xx_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, NAMCO_52XX, "Namco 52xx", tag, owner, clock, "namco52", __FILE__), + : device_t(mconfig, NAMCO_52XX, tag, owner, clock), m_cpu(*this, "mcu"), m_discrete(*this, finder_base::DUMMY_TAG), m_basenode(0), diff --git a/src/mame/audio/namco52.h b/src/mame/audio/namco52.h index b88565dd647..6fb1c0b59a6 100644 --- a/src/mame/audio/namco52.h +++ b/src/mame/audio/namco52.h @@ -1,7 +1,7 @@ // license:BSD-3-Clause // copyright-holders:Aaron Giles -#ifndef NAMCO52_H -#define NAMCO52_H +#ifndef MAME_AUDIO_NAMCO52_H +#define MAME_AUDIO_NAMCO52_H #include "sound/discrete.h" #include "cpu/mb88xx/mb88xx.h" @@ -33,8 +33,8 @@ public: static void set_discrete(device_t &device, const char *tag) { downcast(device).m_discrete.set_tag(tag); } static void set_basenote(device_t &device, int node) { downcast(device).m_basenode = node; } static void set_extclock(device_t &device, attoseconds_t clk) { downcast(device).m_extclock = clk; } - template static devcb_base &set_romread_callback(device_t &device, _Object object) { return downcast(device).m_romread.set_callback(object); } - template static devcb_base &set_si_callback(device_t &device, _Object object) { return downcast(device).m_si.set_callback(object); } + template static devcb_base &set_romread_callback(device_t &device, Object &&cb) { return downcast(device).m_romread.set_callback(std::forward(cb)); } + template static devcb_base &set_si_callback(device_t &device, Object &&cb) { return downcast(device).m_si.set_callback(std::forward(cb)); } DECLARE_WRITE8_MEMBER(write); @@ -71,7 +71,7 @@ private: uint32_t m_address; }; -extern const device_type NAMCO_52XX; +DECLARE_DEVICE_TYPE(NAMCO_52XX, namco_52xx_device) @@ -79,4 +79,4 @@ extern const device_type NAMCO_52XX; #define NAMCO_52XX_P_DATA(base) (base) -#endif /* NAMCO52_H */ +#endif // MAME_AUDIO_NAMCO52_H diff --git a/src/mame/audio/namco54.cpp b/src/mame/audio/namco54.cpp index db18a3e2df5..4c15b088928 100644 --- a/src/mame/audio/namco54.cpp +++ b/src/mame/audio/namco54.cpp @@ -128,10 +128,10 @@ ROM_START( namco_54xx ) ROM_LOAD( "54xx.bin", 0x0000, 0x0400, CRC(ee7357e0) SHA1(01bdf984a49e8d0cc8761b2cc162fd6434d5afbe) ) ROM_END -const device_type NAMCO_54XX = device_creator; +DEFINE_DEVICE_TYPE(NAMCO_54XX, namco_54xx_device, "namco54", "Namco 54xx") namco_54xx_device::namco_54xx_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, NAMCO_54XX, "Namco 54xx", tag, owner, clock, "namco54", __FILE__), + : device_t(mconfig, NAMCO_54XX, tag, owner, clock), m_cpu(*this, "mcu"), m_discrete(*this, finder_base::DUMMY_TAG), m_basenode(0), diff --git a/src/mame/audio/namco54.h b/src/mame/audio/namco54.h index bdfe8b7e519..383e5983920 100644 --- a/src/mame/audio/namco54.h +++ b/src/mame/audio/namco54.h @@ -1,7 +1,7 @@ // license:BSD-3-Clause // copyright-holders:Aaron Giles -#ifndef NAMCO54_H -#define NAMCO54_H +#ifndef MAME_AUDIO_NAMCO54_H +#define MAME_AUDIO_NAMCO54_H #include "sound/discrete.h" #include "cpu/mb88xx/mb88xx.h" @@ -48,7 +48,7 @@ private: uint8_t m_latched_cmd; }; -extern const device_type NAMCO_54XX; +DECLARE_DEVICE_TYPE(NAMCO_54XX, namco_54xx_device) @@ -59,4 +59,4 @@ extern const device_type NAMCO_54XX; #define NAMCO_54XX_P_DATA(base) (NODE_RELATIVE(base, 3)) -#endif /* NAMCO54_H */ +#endif // MAME_AUDIO_NAMCO54_H diff --git a/src/mame/audio/phoenix.cpp b/src/mame/audio/phoenix.cpp index ede90fb999f..92e0eb7dcb4 100644 --- a/src/mame/audio/phoenix.cpp +++ b/src/mame/audio/phoenix.cpp @@ -11,7 +11,7 @@ #include "emu.h" -#include "includes/phoenix.h" +#include "audio/phoenix.h" /**************************************************************************** * 4006 @@ -48,11 +48,11 @@ -const device_type PHOENIX = device_creator; +DEFINE_DEVICE_TYPE(PHOENIX, phoenix_sound_device, "phoenix_sound", "Phoenix Audio Custom") phoenix_sound_device::phoenix_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, PHOENIX, "Phoenix Audio Custom", tag, owner, clock, "phoenix_sound", __FILE__), - device_sound_interface(mconfig, *this) + : device_t(mconfig, PHOENIX, tag, owner, clock) + , device_sound_interface(mconfig, *this) { } diff --git a/src/mame/audio/phoenix.h b/src/mame/audio/phoenix.h new file mode 100644 index 00000000000..38e80c3d31f --- /dev/null +++ b/src/mame/audio/phoenix.h @@ -0,0 +1,62 @@ +// license:BSD-3-Clause +// copyright-holders:Richard Davies +#ifndef MAME_AUDIO_PHOENIX_H +#define MAME_AUDIO_PHOENIX_H + +#pragma once + +#include "sound/discrete.h" +#include "sound/tms36xx.h" + + +class phoenix_sound_device : public device_t, public device_sound_interface +{ +public: + phoenix_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + + DECLARE_WRITE8_MEMBER( control_a_w ); + DECLARE_WRITE8_MEMBER( control_b_w ); + +protected: + // device-level overrides + virtual void device_start() override; + + // sound stream update overrides + virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; + +private: + struct c_state + { + int32_t counter; + int32_t level; + }; + + struct n_state + { + int32_t counter; + int32_t polyoffs; + int32_t polybit; + int32_t lowpass_counter; + int32_t lowpass_polybit; + }; + + // internal state + struct c_state m_c24_state; + struct c_state m_c25_state; + struct n_state m_noise_state; + uint8_t m_sound_latch_a; + sound_stream * m_channel; + std::unique_ptr m_poly18; + discrete_device *m_discrete; + tms36xx_device *m_tms; + + int update_c24(int samplerate); + int update_c25(int samplerate); + int noise(int samplerate); +}; + +DECLARE_DEVICE_TYPE(PHOENIX, phoenix_sound_device) + +DISCRETE_SOUND_EXTERN(phoenix); + +#endif // MAME_AUDIO_PHOENIX_H diff --git a/src/mame/audio/pleiads.cpp b/src/mame/audio/pleiads.cpp index 0472617fa3e..68d79f79e25 100644 --- a/src/mame/audio/pleiads.cpp +++ b/src/mame/audio/pleiads.cpp @@ -18,16 +18,15 @@ #define TONE1_CLOCK 8000 -const device_type PLEIADS = device_creator; +DEFINE_DEVICE_TYPE(PLEIADS, pleiads_sound_device, "pleiads_sound", "Pleiads Audio Custom") pleiads_sound_device::pleiads_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, PLEIADS, "Pleiads Audio Custom", tag, owner, clock, "pleiads_sound", __FILE__), - device_sound_interface(mconfig, *this) + : pleiads_sound_device(mconfig, PLEIADS, tag, owner, clock) { } -pleiads_sound_device::pleiads_sound_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), +pleiads_sound_device::pleiads_sound_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock), device_sound_interface(mconfig, *this), m_channel(nullptr), m_sound_latch_a(0), @@ -48,9 +47,9 @@ pleiads_sound_device::pleiads_sound_device(const machine_config &mconfig, device void pleiads_sound_device::device_start() { - /* The real values are _unknown_! - * I took the ones from Naughty Boy / Pop Flamer - */ + /* The real values are _unknown_! + * I took the ones from Naughty Boy / Pop Flamer + */ /* charge 10u?? (C??) through 330K?? (R??) -> 3.3s */ m_pa5.charge_time = 3.3; @@ -107,10 +106,10 @@ void pleiads_sound_device::device_start() common_start(); } -const device_type NAUGHTYB = device_creator; +DEFINE_DEVICE_TYPE(NAUGHTYB, naughtyb_sound_device, "naughtyb_sound", "Naughty Boy Audio Custom") naughtyb_sound_device::naughtyb_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : pleiads_sound_device(mconfig, NAUGHTYB, "Naughty Boy Audio Custom", tag, owner, clock, "naughtyb_sound", __FILE__) + : pleiads_sound_device(mconfig, NAUGHTYB, tag, owner, clock) { } @@ -175,10 +174,10 @@ void naughtyb_sound_device::device_start() common_start(); } -const device_type POPFLAME = device_creator; +DEFINE_DEVICE_TYPE(POPFLAME, popflame_sound_device, "popflame_sound", "Pop Flamer Audio Custom") popflame_sound_device::popflame_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : pleiads_sound_device(mconfig, POPFLAME, "Pop Flamer Audio Custom", tag, owner, clock, "popflame_sound", __FILE__) + : pleiads_sound_device(mconfig, POPFLAME, tag, owner, clock) { } diff --git a/src/mame/audio/pleiads.h b/src/mame/audio/pleiads.h index 01cc05e1505..f7139b42928 100644 --- a/src/mame/audio/pleiads.h +++ b/src/mame/audio/pleiads.h @@ -1,58 +1,52 @@ // license:GPL-2.0+ // copyright-holders:Juergen Buchmueller -#include "sound/tms36xx.h" +#ifndef MAME_AUDIO_PLEIADS_H +#define MAME_AUDIO_PLEIADS_H -struct pl_t_state -{ - pl_t_state(): - counter(0), - output(0), - max_freq(0) {} - - int counter; - int output; - int max_freq; -}; - -struct pl_c_state -{ - pl_c_state(): - counter(0), - level(0), - charge_time(0), - discharge_time(0) {} - - int counter; - int level; - double charge_time; - double discharge_time; -}; +#pragma once -struct pl_n_state -{ - pl_n_state(): - counter(0), - polyoffs(0), - freq(0) {} - - int counter; - int polyoffs; - int freq; -}; +#include "sound/tms36xx.h" -class pleiads_sound_device : public device_t, - public device_sound_interface +class pleiads_sound_device : public device_t, public device_sound_interface { public: pleiads_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - pleiads_sound_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - ~pleiads_sound_device() {} DECLARE_WRITE8_MEMBER( control_a_w ); DECLARE_WRITE8_MEMBER( control_b_w ); DECLARE_WRITE8_MEMBER( control_c_w ); protected: + struct pl_t_state + { + pl_t_state() { } + + int counter = 0; + int output = 0; + int max_freq = 0; + }; + + struct pl_c_state + { + pl_c_state() { } + + int counter = 0; + int level = 0; + double charge_time = 0; + double discharge_time = 0; + }; + + struct pl_n_state + { + pl_n_state() { } + + int counter = 0; + int polyoffs = 0; + int freq = 0; + }; + + pleiads_sound_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; @@ -100,23 +94,22 @@ protected: int m_opamp_resistor; }; -extern const device_type PLEIADS; +DECLARE_DEVICE_TYPE(PLEIADS, pleiads_sound_device) class naughtyb_sound_device : public pleiads_sound_device { public: naughtyb_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + protected: // device-level overrides virtual void device_start() override; // sound stream update overrides virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; -private: - // internal state }; -extern const device_type NAUGHTYB; +DECLARE_DEVICE_TYPE(NAUGHTYB, naughtyb_sound_device) class popflame_sound_device : public pleiads_sound_device { @@ -128,8 +121,8 @@ protected: // sound stream update overrides virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; -private: - // internal state }; -extern const device_type POPFLAME; +DECLARE_DEVICE_TYPE(POPFLAME, popflame_sound_device) + +#endif // MAME_AUDIO_PLEIADS_H diff --git a/src/mame/audio/polepos.cpp b/src/mame/audio/polepos.cpp index 2a06964c400..9f23e69ccaa 100644 --- a/src/mame/audio/polepos.cpp +++ b/src/mame/audio/polepos.cpp @@ -5,10 +5,13 @@ Sound handler ****************************************************************************/ #include "emu.h" -#include "machine/rescap.h" +#include "includes/polepos.h" + #include "namco52.h" #include "namco54.h" -#include "includes/polepos.h" + +#include "machine/rescap.h" + #define OUTPUT_RATE 24000 @@ -213,7 +216,7 @@ static void filter_opamp_m_bandpass_setup(device_t *device, double r1, double r2 // device type definition -const device_type POLEPOS = device_creator; +DEFINE_DEVICE_TYPE(POLEPOS, polepos_sound_device, "polepos_sound", "Pole Position Audio Custom") //************************************************************************** @@ -225,7 +228,7 @@ const device_type POLEPOS = device_creator; //------------------------------------------------- polepos_sound_device::polepos_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, POLEPOS, "Pole Position Audio Custom", tag, owner, clock, "polepos_sound", __FILE__), + : device_t(mconfig, POLEPOS, tag, owner, clock), device_sound_interface(mconfig, *this), m_current_position(0), m_sample_msb(0), diff --git a/src/mame/audio/rax.cpp b/src/mame/audio/rax.cpp index 6cc930e221c..97cb5639558 100644 --- a/src/mame/audio/rax.cpp +++ b/src/mame/audio/rax.cpp @@ -494,19 +494,19 @@ MACHINE_CONFIG_FRAGMENT( rax ) MACHINE_CONFIG_END -const device_type ACCLAIM_RAX = device_creator; +DEFINE_DEVICE_TYPE(ACCLAIM_RAX, acclaim_rax_device, "rax_audio", "Acclaim RAX") //------------------------------------------------- // acclaim_rax_device - constructor //------------------------------------------------- acclaim_rax_device::acclaim_rax_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, ACCLAIM_RAX, "Acclaim RAX", tag, owner, clock, "rax_audio", __FILE__), - m_cpu(*this, "adsp"), - m_adsp_pram(*this, "adsp_pram"), - m_adsp_data_bank(*this, "databank"), - m_data_in(*this, "data_in"), - m_data_out(*this, "data_out") + : device_t(mconfig, ACCLAIM_RAX, tag, owner, clock) + , m_cpu(*this, "adsp") + , m_adsp_pram(*this, "adsp_pram") + , m_adsp_data_bank(*this, "databank") + , m_data_in(*this, "data_in") + , m_data_out(*this, "data_out") { } diff --git a/src/mame/audio/rax.h b/src/mame/audio/rax.h index 45058a82eab..16af77fd944 100644 --- a/src/mame/audio/rax.h +++ b/src/mame/audio/rax.h @@ -5,9 +5,10 @@ Acclaim RAX Sound Board ****************************************************************************/ +#ifndef MAME_AUDIO_RAX_H +#define MAME_AUDIO_RAX_H -#ifndef __ACCLAIM_H__ -#define __ACCLAIM_H__ +#pragma once #include "cpu/adsp2100/adsp2100.h" #include "machine/gen_latch.h" @@ -40,7 +41,15 @@ public: TIMER_DEVICE_CALLBACK_MEMBER(adsp_irq0); TIMER_DEVICE_CALLBACK_MEMBER(sport0_irq); WRITE32_MEMBER(dmovlay_callback); + TIMER_DEVICE_CALLBACK_MEMBER( dma_timer_callback ); + +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + virtual machine_config_constructor device_mconfig_additions() const override; +private: required_device m_cpu; required_shared_ptr m_adsp_pram; required_memory_bank m_adsp_data_bank; @@ -79,16 +88,9 @@ public: required_device m_data_out; timer_device *m_dma_timer; - TIMER_DEVICE_CALLBACK_MEMBER( dma_timer_callback ); - -protected: - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - virtual machine_config_constructor device_mconfig_additions() const override; }; // device type definition -extern const device_type ACCLAIM_RAX; +DECLARE_DEVICE_TYPE(ACCLAIM_RAX, acclaim_rax_device) -#endif +#endif // MAME_AUDIO_RAX_H diff --git a/src/mame/audio/redbaron.cpp b/src/mame/audio/redbaron.cpp index f13a5a201e1..15f1cc8f537 100644 --- a/src/mame/audio/redbaron.cpp +++ b/src/mame/audio/redbaron.cpp @@ -17,14 +17,17 @@ */ #include "emu.h" -#include "includes/bzone.h" +#include "audio/redbaron.h" #include "sound/pokey.h" +#include + + #define OUTPUT_RATE (48000) // device type definition -const device_type REDBARON = device_creator; +DEFINE_DEVICE_TYPE(REDBARON, redbaron_sound_device, "redbaron_custom", "Red Baron Audio Custom") //************************************************************************** @@ -36,7 +39,7 @@ const device_type REDBARON = device_creator; //------------------------------------------------- redbaron_sound_device::redbaron_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, REDBARON, "Red Baron Audio Custom", tag, owner, clock, "redbaron_custom", __FILE__), + : device_t(mconfig, REDBARON, tag, owner, clock), device_sound_interface(mconfig, *this), m_vol_lookup(nullptr), m_channel(nullptr), @@ -53,7 +56,7 @@ redbaron_sound_device::redbaron_sound_device(const machine_config &mconfig, cons m_squeal_on_counter(0), m_squeal_out(0) { - memset(m_vol_crash, 0, sizeof(int16_t)*16); + std::fill(std::begin(m_vol_crash), std::end(m_vol_crash), 0); } diff --git a/src/mame/audio/redbaron.h b/src/mame/audio/redbaron.h index 03ac07b535b..2294d905fda 100644 --- a/src/mame/audio/redbaron.h +++ b/src/mame/audio/redbaron.h @@ -1,13 +1,15 @@ // license:BSD-3-Clause // copyright-holders:Brad Oliver, Nicola Salmoria +#ifndef MAME_AUDIO_REDBARON_H +#define MAME_AUDIO_REDBARON_H + //************************************************************************** // TYPE DEFINITIONS //************************************************************************** // ======================> redbaron_sound_device -class redbaron_sound_device : public device_t, - public device_sound_interface +class redbaron_sound_device : public device_t, public device_sound_interface { public: redbaron_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); @@ -44,4 +46,6 @@ private: int m_squeal_out; }; -extern const device_type REDBARON; +DECLARE_DEVICE_TYPE(REDBARON, redbaron_sound_device) + +#endif // MAME_AUDIO_REDBARON_H diff --git a/src/mame/audio/s11c_bg.cpp b/src/mame/audio/s11c_bg.cpp index 961c4014204..942d0378c16 100644 --- a/src/mame/audio/s11c_bg.cpp +++ b/src/mame/audio/s11c_bg.cpp @@ -13,16 +13,16 @@ #include "sound/volt_reg.h" -const device_type S11C_BG = device_creator; +DEFINE_DEVICE_TYPE(S11C_BG, s11c_bg_device, "s11c_bg", "Williams System 11C Background Music") s11c_bg_device::s11c_bg_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig,S11C_BG,"Williams System 11C Background Music",tag,owner,clock, "s11c_bg", __FILE__), - device_mixer_interface(mconfig, *this), - m_cpu(*this,"bgcpu"), - m_ym2151(*this,"ym2151"), - m_hc55516(*this,"hc55516_bg"), - m_pia40(*this,"pia40"), - m_cpubank(*this,"bgbank") + : device_t(mconfig, S11C_BG,tag,owner,clock) + , device_mixer_interface(mconfig, *this) + , m_cpu(*this, "bgcpu") + , m_ym2151(*this, "ym2151") + , m_hc55516(*this, "hc55516_bg") + , m_pia40(*this, "pia40") + , m_cpubank(*this, "bgbank") { } diff --git a/src/mame/audio/s11c_bg.h b/src/mame/audio/s11c_bg.h index 3dc1a79a8e0..723837c2fe7 100644 --- a/src/mame/audio/s11c_bg.h +++ b/src/mame/audio/s11c_bg.h @@ -6,13 +6,15 @@ * Created on: 2/10/2013 */ -#ifndef S11C_BG_H_ -#define S11C_BG_H_ +#ifndef MAME_AUDIO_S11C_BG_H +#define MAME_AUDIO_S11C_BG_H + +#pragma once #include "cpu/m6809/m6809.h" -#include "sound/ym2151.h" -#include "sound/hc55516.h" #include "machine/6821pia.h" +#include "sound/hc55516.h" +#include "sound/ym2151.h" #define MCFG_S11C_BG_ROM_REGION(_region) \ @@ -55,6 +57,6 @@ private: const char* m_regiontag; }; -extern const device_type S11C_BG; +DECLARE_DEVICE_TYPE(S11C_BG, s11c_bg_device) -#endif /* S11C_BG_H_ */ +#endif // MAME_AUDIO_S11C_BG_H diff --git a/src/mame/audio/scramble.cpp b/src/mame/audio/scramble.cpp index 24ad43ec1f8..03682cfac40 100644 --- a/src/mame/audio/scramble.cpp +++ b/src/mame/audio/scramble.cpp @@ -128,16 +128,13 @@ READ8_MEMBER( scramble_state::hotshock_soundlatch_r ) static void filter_w(device_t *device, int data) { - int C; - - - C = 0; + int C = 0; if (data & 1) C += 220000; /* 220000pF = 0.220uF */ if (data & 2) C += 47000; /* 47000pF = 0.047uF */ - if (device != nullptr) - dynamic_cast(device)->filter_rc_set_RC(FLT_RC_LOWPASS, 1000, 5100, 0, CAP_P(C)); + if (device) + downcast(device)->filter_rc_set_RC(filter_rc_device::LOWPASS, 1000, 5100, 0, CAP_P(C)); } WRITE8_MEMBER(scramble_state::scramble_filter_w) diff --git a/src/mame/audio/segag80r.cpp b/src/mame/audio/segag80r.cpp index 7f4838be1b0..8b731584086 100644 --- a/src/mame/audio/segag80r.cpp +++ b/src/mame/audio/segag80r.cpp @@ -10,8 +10,9 @@ ***************************************************************************/ #include "emu.h" -#include "cpu/mcs48/mcs48.h" #include "includes/segag80r.h" + +#include "cpu/mcs48/mcs48.h" #include "machine/i8255.h" #include "machine/i8243.h" #include "sound/samples.h" @@ -29,13 +30,13 @@ #define SEGA005_555_TIMER_FREQ (1.44 / ((15000 + 2 * 4700) * 1.5e-6)) #define SEGA005_COUNTER_FREQ (100000) /* unknown, just a guess */ -const device_type SEGA005 = device_creator; +DEFINE_DEVICE_TYPE(SEGA005, sega005_sound_device, "sega005_sound", "Sega 005 Audio Custom") sega005_sound_device::sega005_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, SEGA005, "Sega 005 Audio Custom", tag, owner, clock, "sega005_sound", __FILE__), - device_sound_interface(mconfig, *this), - m_sega005_sound_timer(nullptr), - m_sega005_stream(nullptr) + : device_t(mconfig, SEGA005, tag, owner, clock) + , device_sound_interface(mconfig, *this) + , m_sega005_sound_timer(nullptr) + , m_sega005_stream(nullptr) { } diff --git a/src/mame/audio/segam1audio.cpp b/src/mame/audio/segam1audio.cpp index 504287cb095..2f38bf43bde 100644 --- a/src/mame/audio/segam1audio.cpp +++ b/src/mame/audio/segam1audio.cpp @@ -9,8 +9,9 @@ ***************************************************************************/ #include "emu.h" -#include "machine/clock.h" #include "audio/segam1audio.h" + +#include "machine/clock.h" #include "speaker.h" #define M68000_TAG "sndcpu" @@ -20,8 +21,8 @@ #define UART_TAG "uart" static ADDRESS_MAP_START( segam1audio_map, AS_PROGRAM, 16, segam1audio_device ) - AM_RANGE(0x000000, 0x03ffff) AM_ROM AM_REGION(":m1sndcpu", 0) - AM_RANGE(0x080000, 0x09ffff) AM_ROM AM_REGION(":m1sndcpu", 0x20000) // mirror of upper ROM socket + AM_RANGE(0x000000, 0x03ffff) AM_ROM AM_REGION(":m1sndcpu", 0) + AM_RANGE(0x080000, 0x09ffff) AM_ROM AM_REGION(":m1sndcpu", 0x20000) // mirror of upper ROM socket AM_RANGE(0xc20000, 0xc20001) AM_DEVREADWRITE8(UART_TAG, i8251_device, data_r, data_w, 0x00ff) AM_RANGE(0xc20002, 0xc20003) AM_DEVREADWRITE8(UART_TAG, i8251_device, status_r, control_w, 0x00ff) AM_RANGE(0xc40000, 0xc40007) AM_DEVREADWRITE8(MULTIPCM_1_TAG, multipcm_device, read, write, 0x00ff) @@ -74,7 +75,7 @@ MACHINE_CONFIG_END // GLOBAL VARIABLES //************************************************************************** -const device_type SEGAM1AUDIO = device_creator; +DEFINE_DEVICE_TYPE(SEGAM1AUDIO, segam1audio_device, "segam1audio", "Sega Model 1 Sound Board") //------------------------------------------------- // machine_config_additions - device-specific @@ -95,7 +96,7 @@ machine_config_constructor segam1audio_device::device_mconfig_additions() const //------------------------------------------------- segam1audio_device::segam1audio_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, SEGAM1AUDIO, "Sega Model 1 Sound Board", tag, owner, clock, "segam1audio", __FILE__), + device_t(mconfig, SEGAM1AUDIO, tag, owner, clock), m_audiocpu(*this, M68000_TAG), m_multipcm_1(*this, MULTIPCM_1_TAG), m_multipcm_2(*this, MULTIPCM_2_TAG), diff --git a/src/mame/audio/segam1audio.h b/src/mame/audio/segam1audio.h index fcbacf98dc1..d6f2ea3620a 100644 --- a/src/mame/audio/segam1audio.h +++ b/src/mame/audio/segam1audio.h @@ -1,15 +1,15 @@ // license:BSD-3-Clause // copyright-holders:R. Belmont -#pragma once - -#ifndef __SEGAM1AUDIO_H__ -#define __SEGAM1AUDIO_H__ +#ifndef MAME_AUDIO_SEGAM1AUDIO_H +#define MAME_AUDIO_SEGAM1AUDIO_H #include "cpu/m68000/m68000.h" #include "machine/i8251.h" #include "sound/2612intf.h" #include "sound/multipcm.h" +#pragma once + #define M1AUDIO_CPU_REGION "m1sndcpu" #define M1AUDIO_MPCM1_REGION "m1pcm1" #define M1AUDIO_MPCM2_REGION "m1pcm2" @@ -35,7 +35,7 @@ public: virtual machine_config_constructor device_mconfig_additions() const override; // static configuration - template static devcb_base &set_rxd_handler(device_t &device, _Object &&object) { return downcast(device).m_rxd_handler.set_callback(std::forward<_Object>(object)); } + template static devcb_base &set_rxd_handler(device_t &device, Object &&cb) { return downcast(device).m_rxd_handler.set_callback(std::forward(cb)); } DECLARE_WRITE16_MEMBER(m1_snd_mpcm_bnk1_w); DECLARE_WRITE16_MEMBER(m1_snd_mpcm_bnk2_w); @@ -60,6 +60,6 @@ private: // device type definition -extern const device_type SEGAM1AUDIO; +DECLARE_DEVICE_TYPE(SEGAM1AUDIO, segam1audio_device) -#endif /* __SEGAM1AUDIO_H__ */ +#endif // MAME_AUDIO_SEGAM1AUDIO_H diff --git a/src/mame/audio/segasnd.cpp b/src/mame/audio/segasnd.cpp index 5f81c3d2281..ba9d4d86728 100644 --- a/src/mame/audio/segasnd.cpp +++ b/src/mame/audio/segasnd.cpp @@ -9,12 +9,15 @@ ***************************************************************************/ #include "emu.h" -#include "sound/sp0250.h" #include "segasnd.h" +#include "sound/sp0250.h" + +#include + #define VERBOSE 0 -#define LOG(x) do { if (VERBOSE) logerror x; } while (0) +#include "logmacro.h" /*************************************************************************** @@ -37,24 +40,23 @@ INLINE FUNCTIONS ***************************************************************************/ -static inline void configure_filter(g80_filter_state *state, double r, double c) +inline void usb_sound_device::g80_filter_state::configure(double r, double c) { - state->capval = 0; - state->exponent = 1.0 - exp(-1.0 / (r * c * SAMPLE_RATE)); + capval = 0.0; + exponent = 1.0 - std::exp(-1.0 / (r * c * SAMPLE_RATE)); } -static inline double step_rc_filter(g80_filter_state *state, double input) +inline double usb_sound_device::g80_filter_state::step_rc(double input) { - state->capval += (input - state->capval) * state->exponent; - return state->capval; + return capval += (input - capval) * exponent; } -static inline double step_cr_filter(g80_filter_state *state, double input) +inline double usb_sound_device::g80_filter_state::step_cr(double input) { - double result = (input - state->capval); - state->capval += (input - state->capval) * state->exponent; + double const result = input - capval; + capval += result * exponent; return result; } @@ -64,10 +66,10 @@ static inline double step_cr_filter(g80_filter_state *state, double input) SPEECH BOARD ***************************************************************************/ -const device_type SEGASPEECH = device_creator; +DEFINE_DEVICE_TYPE(SEGASPEECH, speech_sound_device, "sega_speech_sound", "Sega Speech Sound Board") -speech_sound_device::speech_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, SEGASPEECH, "Sega Speech Sound Board", tag, owner, clock, "sega_speech_sound", __FILE__), +speech_sound_device::speech_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) + : device_t(mconfig, SEGASPEECH, tag, owner, clock), device_sound_interface(mconfig, *this), m_drq(0), m_latch(0), @@ -155,7 +157,7 @@ WRITE_LINE_MEMBER(speech_sound_device::drq_w) TIMER_CALLBACK_MEMBER( speech_sound_device::delayed_speech_w ) { int data = param; - uint8_t old = m_latch; + u8 old = m_latch; /* all 8 bits are latched */ m_latch = data; @@ -177,7 +179,7 @@ WRITE8_MEMBER( speech_sound_device::data_w ) WRITE8_MEMBER( speech_sound_device::control_w ) { - LOG(("Speech control = %X\n", data)); + LOG("Speech control = %X\n", data); } @@ -238,10 +240,10 @@ MACHINE_CONFIG_END UNIVERSAL SOUND BOARD ***************************************************************************/ -const device_type SEGAUSB = device_creator; +DEFINE_DEVICE_TYPE(SEGAUSB, usb_sound_device, "segausb", "Sega Universal Sound Board") -usb_sound_device::usb_sound_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), +usb_sound_device::usb_sound_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock) + : device_t(mconfig, type, tag, owner, clock), device_sound_interface(mconfig, *this), m_ourcpu(*this, "ourcpu"), m_stream(nullptr), @@ -259,12 +261,8 @@ usb_sound_device::usb_sound_device(const machine_config &mconfig, device_type ty { } -usb_sound_device::usb_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, SEGAUSB, "Sega Universal Sound Board", tag, owner, clock, "segausb", __FILE__), - device_sound_interface(mconfig, *this), - m_ourcpu(*this, "ourcpu"), - m_program_ram(*this, "pgmram"), - m_work_ram(*this, "workram") +usb_sound_device::usb_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) + : usb_sound_device(mconfig, SEGAUSB, tag, owner, clock) { } @@ -287,31 +285,30 @@ void usb_sound_device::device_start() /* initialize state */ m_noise_shift = 0x15555; - for (tgroup = 0; tgroup < 3; tgroup++) + for (timer8253 &g : m_timer_group) { - timer8253 *g = &m_timer_group[tgroup]; - configure_filter(&g->chan_filter[0], 10e3, 1e-6); - configure_filter(&g->chan_filter[1], 10e3, 1e-6); - configure_filter(&g->gate1, 100e3, 0.01e-6); - configure_filter(&g->gate2, 2 * 100e3, 0.01e-6); + g.chan_filter[0].configure(10e3, 1e-6); + g.chan_filter[1].configure(10e3, 1e-6); + g.gate1.configure(100e3, 0.01e-6); + g.gate2.configure(2 * 100e3, 0.01e-6); } - configure_filter(&temp, 100e3, 0.01e-6); + temp.configure(100e3, 0.01e-6); m_gate_rc1_exp[0] = temp.exponent; - configure_filter(&temp, 1e3, 0.01e-6); + temp.configure(1e3, 0.01e-6); m_gate_rc1_exp[1] = temp.exponent; - configure_filter(&temp, 2 * 100e3, 0.01e-6); + temp.configure(2 * 100e3, 0.01e-6); m_gate_rc2_exp[0] = temp.exponent; - configure_filter(&temp, 2 * 1e3, 0.01e-6); + temp.configure(2 * 1e3, 0.01e-6); m_gate_rc2_exp[1] = temp.exponent; - configure_filter(&m_noise_filters[0], 2.7e3 + 2.7e3, 1.0e-6); - configure_filter(&m_noise_filters[1], 2.7e3 + 1e3, 0.30e-6); - configure_filter(&m_noise_filters[2], 2.7e3 + 270, 0.15e-6); - configure_filter(&m_noise_filters[3], 2.7e3 + 0, 0.082e-6); - configure_filter(&m_noise_filters[4], 33e3, 0.1e-6); + m_noise_filters[0].configure(2.7e3 + 2.7e3, 1.0e-6); + m_noise_filters[1].configure(2.7e3 + 1e3, 0.30e-6); + m_noise_filters[2].configure(2.7e3 + 270, 0.15e-6); + m_noise_filters[3].configure(2.7e3 + 0, 0.082e-6); + m_noise_filters[4].configure(33e3, 0.1e-6); - configure_filter(&m_final_filter, 100e3, 4.7e-6); + m_final_filter.configure(100e3, 4.7e-6); /* register for save states */ save_item(NAME(m_in_latch)); @@ -325,7 +322,7 @@ void usb_sound_device::device_start() timer8253 *group = &m_timer_group[tgroup]; for (tchan = 0; tchan < 3; tchan++) { - timer8253_channel *channel = &group->chan[tchan]; + timer8253::channel *channel = &group->chan[tchan]; save_item(NAME(channel->holding), tgroup * 3 + tchan); save_item(NAME(channel->latchmode), tgroup * 3 + tchan); save_item(NAME(channel->latchtoggle), tgroup * 3 + tchan); @@ -392,7 +389,7 @@ TIMER_DEVICE_CALLBACK_MEMBER( usb_sound_device::increment_t1_clock_timer_cb ) READ8_MEMBER( usb_sound_device::status_r ) { - LOG(("%04X:usb_data_r = %02X\n", m_maincpu->safe_pc(), (m_out_latch & 0x81) | (m_in_latch & 0x7e))); + LOG("%04X:usb_data_r = %02X\n", m_maincpu->safe_pc(), (m_out_latch & 0x81) | (m_in_latch & 0x7e)); m_maincpu->execute().adjust_icount(-200); @@ -420,7 +417,7 @@ TIMER_CALLBACK_MEMBER( usb_sound_device::delayed_usb_data_w ) WRITE8_MEMBER( usb_sound_device::data_w ) { - LOG(("%04X:usb_data_w = %02X\n", m_maincpu->safe_pc(), data)); + LOG("%04X:usb_data_w = %02X\n", m_maincpu->safe_pc(), data); space.machine().scheduler().synchronize(timer_expired_delegate(FUNC(usb_sound_device::delayed_usb_data_w), this), data); /* boost the interleave so that sequences can be sent */ @@ -439,7 +436,7 @@ WRITE8_MEMBER( usb_sound_device::ram_w ) if (m_in_latch & 0x80) m_program_ram[offset] = data; else - LOG(("%04X:sega_usb_ram_w(%03X) = %02X while /LOAD disabled\n", m_maincpu->safe_pc(), offset, data)); + LOG("%04X:sega_usb_ram_w(%03X) = %02X while /LOAD disabled\n", m_maincpu->safe_pc(), offset, data); } @@ -454,7 +451,7 @@ READ8_MEMBER( usb_sound_device::p1_r ) { /* bits 0-6 are inputs and map to bits 0-6 of the input latch */ if ((m_in_latch & 0x7f) != 0) - LOG(("%03X: P1 read = %02X\n", m_maincpu->safe_pc(), m_in_latch & 0x7f)); + LOG("%03X: P1 read = %02X\n", m_maincpu->safe_pc(), m_in_latch & 0x7f); return m_in_latch & 0x7f; } @@ -463,13 +460,13 @@ WRITE8_MEMBER( usb_sound_device::p1_w ) { /* bit 7 maps to bit 0 on the output latch */ m_out_latch = (m_out_latch & 0xfe) | (data >> 7); - LOG(("%03X: P1 write = %02X\n", m_maincpu->safe_pc(), data)); + LOG("%03X: P1 write = %02X\n", m_maincpu->safe_pc(), data); } WRITE8_MEMBER( usb_sound_device::p2_w ) { - uint8_t old = m_last_p2_value; + u8 old = m_last_p2_value; m_last_p2_value = data; /* low 2 bits control the bank of work RAM we are addressing */ @@ -485,7 +482,7 @@ WRITE8_MEMBER( usb_sound_device::p2_w ) if ((old & 0x80) && !(data & 0x80)) m_t1_clock = 0; - LOG(("%03X: P2 write -> bank=%d ready=%d clock=%d\n", m_maincpu->safe_pc(), data & 3, (data >> 6) & 1, (data >> 7) & 1)); + LOG("%03X: P2 write -> bank=%d ready=%d clock=%d\n", m_maincpu->safe_pc(), data & 3, (data >> 6) & 1, (data >> 7) & 1); } @@ -504,41 +501,41 @@ READ_LINE_MEMBER( usb_sound_device::t1_r ) * *************************************/ -static inline void clock_channel(timer8253_channel *ch) +inline void usb_sound_device::timer8253::channel::clock() { - uint8_t lastgate = ch->lastgate; + u8 const old_lastgate = lastgate; /* update the gate */ - ch->lastgate = ch->gate; + lastgate = gate; /* if we're holding, skip */ - if (ch->holding) + if (holding) return; /* switch off the clock mode */ - switch (ch->clockmode) + switch (clockmode) { /* oneshot; waits for trigger to restart */ case 1: - if (!lastgate && ch->gate) + if (!old_lastgate && gate) { - ch->output = 0; - ch->remain = ch->count; + output = 0; + remain = count; } else { - if (--ch->remain == 0) - ch->output = 1; + if (--remain == 0) + output = 1; } break; /* square wave: counts down by 2 and toggles output */ case 3: - ch->remain = (ch->remain - 1) & ~1; - if (ch->remain == 0) + remain = (remain - 1) & ~1; + if (remain == 0) { - ch->output ^= 1; - ch->remain = ch->count; + output ^= 1; + remain = count; } break; } @@ -551,10 +548,10 @@ static inline void clock_channel(timer8253_channel *ch) * *************************************/ -void usb_sound_device::timer_w(int which, uint8_t offset, uint8_t data) +void usb_sound_device::timer_w(int which, u8 offset, u8 data) { timer8253 *g = &m_timer_group[which]; - timer8253_channel *ch; + timer8253::channel *ch; int was_holding; m_stream->update(); @@ -620,7 +617,7 @@ void usb_sound_device::timer_w(int which, uint8_t offset, uint8_t data) } -void usb_sound_device::env_w(int which, uint8_t offset, uint8_t data) +void usb_sound_device::env_w(int which, u8 offset, u8 data) { timer8253 *g = &m_timer_group[which]; @@ -725,7 +722,7 @@ void usb_sound_device::sound_stream_update(sound_stream &stream, stream_sample_t /* final output goes through a CR filter; the scaling factor is arbitrary to get the noise to the */ /* correct relative volume */ - noiseval = step_cr_filter(&m_noise_filters[4], noiseval); + noiseval = m_noise_filters[4].step_cr(noiseval); noiseval *= 0.075; /* there are 3 identical groups of circuits, each with its own 8253 */ @@ -748,12 +745,12 @@ void usb_sound_device::sound_stream_update(sound_stream &stream, stream_sample_t { g->chan[0].subcount = USB_2MHZ_CLOCK / USB_PCS_CLOCK; g->chan[0].gate = 1; - clock_channel(&g->chan[0]); + g->chan[0].clock(); } g->chan[0].subcount -= step; /* channel 0 is mixed in with a resistance of 100k */ - chan0 = step_cr_filter(&g->chan_filter[0], g->chan[0].output) * g->env[0] * (1.0/100.0); + chan0 = g->chan_filter[0].step_cr(g->chan[0].output) * g->env[0] * (1.0/100.0); /*------------- @@ -769,12 +766,12 @@ void usb_sound_device::sound_stream_update(sound_stream &stream, stream_sample_t { g->chan[1].subcount = USB_2MHZ_CLOCK / USB_PCS_CLOCK; g->chan[1].gate = 1; - clock_channel(&g->chan[1]); + g->chan[1].clock(); } g->chan[1].subcount -= step; /* channel 1 is mixed in with a resistance of 100k */ - chan1 = step_cr_filter(&g->chan_filter[1], g->chan[1].output) * g->env[1] * (1.0/100.0); + chan1 = g->chan_filter[1].step_cr(g->chan[1].output) * g->env[1] * (1.0/100.0); /*------------- @@ -802,7 +799,7 @@ void usb_sound_device::sound_stream_update(sound_stream &stream, stream_sample_t g->chan[2].subcount = USB_2MHZ_CLOCK / USB_GOS_CLOCK / 2 - 1; g->chan[2].gate = !g->chan[2].gate; } - clock_channel(&g->chan[2]); + g->chan[2].clock(); } /* the exponents for the gate filters are determined by channel 2's output */ @@ -812,14 +809,14 @@ void usb_sound_device::sound_stream_update(sound_stream &stream, stream_sample_t /* based on the envelope mode, we do one of two things with source 2 */ if (g->config == 0) { - chan2 = step_rc_filter(&g->gate2, step_rc_filter(&g->gate1, noiseval)) * -1.56 * g->env[2] * (1.0/33.0); + chan2 = g->gate2.step_rc(g->gate1.step_rc(noiseval)) * -1.56 * g->env[2] * (1.0/33.0); mix = chan0 + chan1 + chan2; } else { chan2 = -noiseval * g->env[2] * (1.0/33.0); mix = chan0 + chan1 + chan2; - mix = step_rc_filter(&g->gate2, step_rc_filter(&g->gate1, -mix)) * 1.56; + mix = g->gate2.step_rc(g->gate1.step_rc(-mix)) * 1.56; } /* accumulate the sample */ @@ -836,7 +833,7 @@ void usb_sound_device::sound_stream_update(sound_stream &stream, stream_sample_t WEIGHT */ - *dest++ = 4000 * step_cr_filter(&m_final_filter, sample); + *dest++ = 4000 * m_final_filter.step_cr(sample); } } @@ -881,10 +878,10 @@ machine_config_constructor usb_sound_device::device_mconfig_additions() const return MACHINE_CONFIG_NAME( segausb ); } -const device_type SEGAUSBROM = device_creator; +DEFINE_DEVICE_TYPE(SEGAUSBROM, usb_rom_sound_device, "segausbrom", "Sega Universal Sound Board with ROM") -usb_rom_sound_device::usb_rom_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : usb_sound_device(mconfig, SEGAUSBROM, "Sega Universal Sound Board with ROM", tag, owner, clock, "segausbrom", __FILE__) +usb_rom_sound_device::usb_rom_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) + : usb_sound_device(mconfig, SEGAUSBROM, tag, owner, clock) { } diff --git a/src/mame/audio/segasnd.h b/src/mame/audio/segasnd.h index e36014732a1..70781658466 100644 --- a/src/mame/audio/segasnd.h +++ b/src/mame/audio/segasnd.h @@ -5,15 +5,18 @@ Sega g80 common sound hardware *************************************************************************/ +#ifndef MAME_AUDIO_SEGASND_H +#define MAME_AUDIO_SEGASND_H + +#pragma once #include "cpu/mcs48/mcs48.h" -class speech_sound_device : public device_t, - public device_sound_interface + +class speech_sound_device : public device_t, public device_sound_interface { public: - speech_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~speech_sound_device() {} + speech_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); DECLARE_WRITE8_MEMBER( data_w ); DECLARE_WRITE8_MEMBER( control_w ); @@ -36,88 +39,24 @@ protected: private: // internal state - uint8_t m_drq; - uint8_t m_latch; - uint8_t m_t0; - uint8_t m_p2; - uint8_t *m_speech; + u8 m_drq; + u8 m_latch; + u8 m_t0; + u8 m_p2; + u8 *m_speech; TIMER_CALLBACK_MEMBER( delayed_speech_w ); }; -extern const device_type SEGASPEECH; +DECLARE_DEVICE_TYPE(SEGASPEECH, speech_sound_device) MACHINE_CONFIG_EXTERN( sega_speech_board ); - - -struct g80_filter_state -{ - g80_filter_state(): - capval(0), - exponent(0) {} - - double capval; /* current capacitor value */ - double exponent; /* constant exponent */ -}; - - -struct timer8253_channel -{ - timer8253_channel(): - holding(0), - latchmode(0), - latchtoggle(0), - clockmode(0), - bcdmode(0), - output(0), - lastgate(0), - gate(0), - subcount(0), - count(0), - remain(0) {} - - uint8_t holding; /* holding until counts written? */ - uint8_t latchmode; /* latching mode */ - uint8_t latchtoggle; /* latching state */ - uint8_t clockmode; /* clocking mode */ - uint8_t bcdmode; /* BCD mode? */ - uint8_t output; /* current output value */ - uint8_t lastgate; /* previous gate value */ - uint8_t gate; /* current gate value */ - uint8_t subcount; /* subcount (2MHz clocks per input clock) */ - uint16_t count; /* initial count */ - uint16_t remain; /* current down counter value */ -}; - - -struct timer8253 -{ - timer8253() - { - env[0] = 0; - env[1] = 0; - env[2] = 0; - config = 0; - } - - timer8253_channel chan[3]; /* three channels' worth of information */ - double env[3]; /* envelope value for each channel */ - g80_filter_state chan_filter[2]; /* filter states for the first two channels */ - g80_filter_state gate1; /* first RC filter state */ - g80_filter_state gate2; /* second RC filter state */ - uint8_t config; /* configuration for this timer */ -}; - - -class usb_sound_device : public device_t, - public device_sound_interface +class usb_sound_device : public device_t, public device_sound_interface { public: - usb_sound_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - usb_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~usb_sound_device() {} + usb_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); required_device m_ourcpu; /* CPU index of the 8035 */ DECLARE_READ8_MEMBER( status_r ); @@ -136,6 +75,8 @@ public: TIMER_DEVICE_CALLBACK_MEMBER( increment_t1_clock_timer_cb ); protected: + usb_sound_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock); + // device-level overrides virtual machine_config_constructor device_mconfig_additions() const override; virtual void device_start() override; @@ -145,46 +86,92 @@ protected: virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; private: + struct g80_filter_state + { + g80_filter_state() { } + + void configure(double r, double c); + double step_rc(double input); + double step_cr(double input); + + double capval = 0.0; // current capacitor value + double exponent = 0.0; // constant exponent + }; + + + struct timer8253 + { + struct channel + { + channel() { } + + void clock(); + + u8 holding = 0; // holding until counts written? */ + u8 latchmode = 0; // latching mode */ + u8 latchtoggle = 0; // latching state */ + u8 clockmode = 0; // clocking mode */ + u8 bcdmode = 0; // BCD mode? */ + u8 output = 0; // current output value */ + u8 lastgate = 0; // previous gate value */ + u8 gate = 0; // current gate value */ + u8 subcount = 0; // subcount (2MHz clocks per input clock) */ + u16 count = 0; // initial count + u16 remain = 0; // current down counter value + }; + + timer8253() : env{ 0.0, 0.0, 0.0 } { } + + channel chan[3]; // three channels' worth of information + double env[3]; // envelope value for each channel + g80_filter_state chan_filter[2]; // filter states for the first two channels + g80_filter_state gate1; // first RC filter state + g80_filter_state gate2; // second RC filter state + u8 config = 0; // configuration for this timer + }; + + // internal state - sound_stream *m_stream; /* output stream */ - device_t *m_maincpu; - uint8_t m_in_latch; /* input latch */ - uint8_t m_out_latch; /* output latch */ - uint8_t m_last_p2_value; /* current P2 output value */ - optional_shared_ptr m_program_ram; /* pointer to program RAM */ - required_shared_ptr m_work_ram; /* pointer to work RAM */ - uint8_t m_work_ram_bank; /* currently selected work RAM bank */ - uint8_t m_t1_clock; /* T1 clock value */ - uint8_t m_t1_clock_mask; /* T1 clock mask (configured via jumpers) */ - timer8253 m_timer_group[3]; /* 3 groups of timers */ - uint8_t m_timer_mode[3]; /* mode control for each group */ - uint32_t m_noise_shift; - uint8_t m_noise_state; - uint8_t m_noise_subcount; - double m_gate_rc1_exp[2]; - double m_gate_rc2_exp[2]; + sound_stream *m_stream; // output stream + device_t *m_maincpu; + u8 m_in_latch; // input latch + u8 m_out_latch; // output latch + u8 m_last_p2_value; // current P2 output value + optional_shared_ptr m_program_ram; // pointer to program RAM + required_shared_ptr m_work_ram; // pointer to work RAM + u8 m_work_ram_bank; // currently selected work RAM bank + u8 m_t1_clock; // T1 clock value + u8 m_t1_clock_mask; // T1 clock mask (configured via jumpers) + timer8253 m_timer_group[3]; // 3 groups of timers + u8 m_timer_mode[3]; // mode control for each group + u32 m_noise_shift; + u8 m_noise_state; + u8 m_noise_subcount; + double m_gate_rc1_exp[2]; + double m_gate_rc2_exp[2]; g80_filter_state m_final_filter; g80_filter_state m_noise_filters[5]; TIMER_CALLBACK_MEMBER( delayed_usb_data_w ); - void timer_w(int which, uint8_t offset, uint8_t data); - void env_w(int which, uint8_t offset, uint8_t data); + void timer_w(int which, u8 offset, u8 data); + void env_w(int which, u8 offset, u8 data); }; -extern const device_type SEGAUSB; +DECLARE_DEVICE_TYPE(SEGAUSB, usb_sound_device) + class usb_rom_sound_device : public usb_sound_device { public: - usb_rom_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~usb_rom_sound_device() {} + usb_rom_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); protected: // device-level overrides virtual machine_config_constructor device_mconfig_additions() const override; }; -extern const device_type SEGAUSBROM; +DECLARE_DEVICE_TYPE(SEGAUSBROM, usb_rom_sound_device) + #define MCFG_SEGAUSB_ADD(_tag) \ MCFG_SOUND_ADD(_tag, SEGAUSB, 0) \ @@ -193,3 +180,5 @@ extern const device_type SEGAUSBROM; #define MCFG_SEGAUSBROM_ADD(_tag) \ MCFG_SOUND_ADD(_tag, SEGAUSBROM, 0) \ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0) + +#endif // MAME_AUDIO_SEGASND_H diff --git a/src/mame/audio/seibu.cpp b/src/mame/audio/seibu.cpp index 5814b51ba44..9399a422779 100644 --- a/src/mame/audio/seibu.cpp +++ b/src/mame/audio/seibu.cpp @@ -71,10 +71,10 @@ 00002CA2: 17 37 */ -const device_type SEIBU_SOUND = device_creator; +DEFINE_DEVICE_TYPE(SEIBU_SOUND, seibu_sound_device, "seibu_sound", "Seibu Sound System") seibu_sound_device::seibu_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, SEIBU_SOUND, "Seibu Sound System", tag, owner, clock, "seibu_sound", __FILE__), + : device_t(mconfig, SEIBU_SOUND, tag, owner, clock), m_ym_read_cb(*this), m_ym_write_cb(*this), m_sound_cpu(*this, finder_base::DUMMY_TAG), @@ -320,10 +320,10 @@ ADDRESS_MAP_END /***************************************************************************/ -const device_type SEI80BU = device_creator; +DEFINE_DEVICE_TYPE(SEI80BU, sei80bu_device, "sei80bu", "SEI80BU Encrypted Z80 Interface") sei80bu_device::sei80bu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, SEI80BU, "SEI80BU Encrypted Z80 Interface", tag, owner, clock, "sei80bu", __FILE__), + : device_t(mconfig, SEI80BU, tag, owner, clock), device_rom_interface(mconfig, *this, 16) { } @@ -374,10 +374,10 @@ READ8_MEMBER(sei80bu_device::opcode_r) FIXME: hook up an actual MSM5205 in place of this custom implementation ***************************************************************************/ -const device_type SEIBU_ADPCM = device_creator; +DEFINE_DEVICE_TYPE(SEIBU_ADPCM, seibu_adpcm_device, "seibu_adpcm", "Seibu ADPCM (MSM5205)") seibu_adpcm_device::seibu_adpcm_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, SEIBU_ADPCM, "Seibu ADPCM (MSM5205)", tag, owner, clock, "seibu_adpcm", __FILE__), + : device_t(mconfig, SEIBU_ADPCM, tag, owner, clock), device_sound_interface(mconfig, *this), m_stream(nullptr), m_current(0), diff --git a/src/mame/audio/seibu.h b/src/mame/audio/seibu.h index 20909371d2c..4137b8d703e 100644 --- a/src/mame/audio/seibu.h +++ b/src/mame/audio/seibu.h @@ -24,6 +24,10 @@ * = encrypted ***************************************************************************/ +#ifndef MAME_AUDIO_SEIBU_H +#define MAME_AUDIO_SEIBU_H + +#pragma once #include "cpu/z80/z80.h" #include "sound/okiadpcm.h" @@ -91,7 +95,7 @@ private: }; }; -extern const device_type SEIBU_SOUND; +DECLARE_DEVICE_TYPE(SEIBU_SOUND, seibu_sound_device) // SEI80BU (Z80 program decryption) @@ -110,7 +114,7 @@ protected: virtual void rom_bank_updated() override { } }; -extern const device_type SEI80BU; +DECLARE_DEVICE_TYPE(SEI80BU, sei80bu_device) // Seibu ADPCM device @@ -143,7 +147,7 @@ private: required_region_ptr m_base; }; -extern const device_type SEIBU_ADPCM; +DECLARE_DEVICE_TYPE(SEIBU_ADPCM, seibu_adpcm_device) /**************************************************************************/ @@ -182,3 +186,5 @@ extern const device_type SEIBU_ADPCM; devcb = &seibu_sound_device::set_ym_write_callback(*device, DEVCB_##_devcb); /**************************************************************************/ + +#endif // MAME_AUDIO_SEIBU_H diff --git a/src/mame/audio/snes_snd.cpp b/src/mame/audio/snes_snd.cpp index cf29796f185..714b1ca8f15 100644 --- a/src/mame/audio/snes_snd.cpp +++ b/src/mame/audio/snes_snd.cpp @@ -153,11 +153,11 @@ static const int ENVCNT[0x20] #define MEtoLE16( x ) little_endianize_int16(x) -const device_type SNES = device_creator; +DEFINE_DEVICE_TYPE(SNES, snes_sound_device, "snes_sound", "SNES Custom DSP (SPC700)") snes_sound_device::snes_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, SNES, "SNES Custom DSP (SPC700)", tag, owner, clock, "snes_sound", __FILE__), - device_sound_interface(mconfig, *this) + : device_t(mconfig, SNES, tag, owner, clock) + , device_sound_interface(mconfig, *this) { } diff --git a/src/mame/audio/snes_snd.h b/src/mame/audio/snes_snd.h index e54e51ba538..68c8a204917 100644 --- a/src/mame/audio/snes_snd.h +++ b/src/mame/audio/snes_snd.h @@ -6,11 +6,8 @@ * ****************************************************************************/ -#ifndef __SNES_SPC_H__ -#define __SNES_SPC_H__ - - -#define SNES_SPCRAM_SIZE 0x10000 +#ifndef MAME_AUDIO_SNES_SND_H +#define MAME_AUDIO_SNES_SND_H /*************************************************************************** @@ -27,34 +24,6 @@ enum env_state_t32 /* ADSR state type */ ALLOW_SAVE_TYPE(env_state_t32); -struct voice_state_type /* Voice state type */ -{ - uint16_t mem_ptr; /* Sample data memory pointer */ - int end; /* End or loop after block */ - int envcnt; /* Counts to envelope update */ - env_state_t32 envstate; /* Current envelope state */ - int envx; /* Last env height (0-0x7FFF) */ - int filter; /* Last header's filter */ - int half; /* Active nybble of BRR */ - int header_cnt; /* Bytes before new header (0-8)*/ - int mixfrac; /* Fractional part of smpl pstn */ - int on_cnt; /* Is it time to turn on yet? */ - int pitch; /* Sample pitch (4096->32000Hz) */ - int range; /* Last header's range */ - uint32_t samp_id; /* Sample ID# */ - int sampptr; /* Where in sampbuf we are */ - int32_t smp1; /* Last sample (for BRR filter) */ - int32_t smp2; /* Second-to-last sample decoded*/ - short sampbuf[4]; /* Buffer for Gaussian interp */ -}; - -struct src_dir_type /* Source directory entry */ -{ - uint16_t vptr; /* Ptr to start of sample data */ - uint16_t lptr; /* Loop pointer in sample data */ -}; - - /*************************************************************************** DEVICE CONFIGURATION MACROS ***************************************************************************/ @@ -64,7 +33,6 @@ class snes_sound_device : public device_t, { public: snes_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~snes_sound_device() {} void set_volume(int volume); @@ -87,6 +55,37 @@ protected: private: + static constexpr unsigned SNES_SPCRAM_SIZE = 0x10000; + + + struct voice_state_type /* Voice state type */ + { + uint16_t mem_ptr; /* Sample data memory pointer */ + int end; /* End or loop after block */ + int envcnt; /* Counts to envelope update */ + env_state_t32 envstate; /* Current envelope state */ + int envx; /* Last env height (0-0x7FFF) */ + int filter; /* Last header's filter */ + int half; /* Active nybble of BRR */ + int header_cnt; /* Bytes before new header (0-8)*/ + int mixfrac; /* Fractional part of smpl pstn */ + int on_cnt; /* Is it time to turn on yet? */ + int pitch; /* Sample pitch (4096->32000Hz) */ + int range; /* Last header's range */ + uint32_t samp_id; /* Sample ID# */ + int sampptr; /* Where in sampbuf we are */ + int32_t smp1; /* Last sample (for BRR filter) */ + int32_t smp2; /* Second-to-last sample decoded*/ + short sampbuf[4]; /* Buffer for Gaussian interp */ + }; + + struct src_dir_type /* Source directory entry */ + { + uint16_t vptr; /* Ptr to start of sample data */ + uint16_t lptr; /* Loop pointer in sample data */ + }; + + DECLARE_READ8_MEMBER(dsp_io_r); DECLARE_WRITE8_MEMBER(dsp_io_w); TIMER_CALLBACK_MEMBER(spc_timer); @@ -127,7 +126,7 @@ private: uint8_t m_port_out[4]; /* SPC output ports */ }; -extern const device_type SNES; +DECLARE_DEVICE_TYPE(SNES, snes_sound_device) -#endif /* __SNES_SPC_H__ */ +#endif // MAME_AUDIO_SNES_SND_H diff --git a/src/mame/audio/snk6502.cpp b/src/mame/audio/snk6502.cpp index 2b367d2690b..3fc0b7a632b 100644 --- a/src/mame/audio/snk6502.cpp +++ b/src/mame/audio/snk6502.cpp @@ -13,9 +13,9 @@ #include "emu.h" -#include "sound/samples.h" -#include "includes/snk6502.h" -#include "sound/discrete.h" +#include "audio/snk6502.h" + +#include "sound/sn76477.h" #ifndef M_LN2 @@ -128,10 +128,10 @@ DISCRETE_SOUND_START( fantasy ) DISCRETE_SOUND_END -const device_type SNK6502 = device_creator; +DEFINE_DEVICE_TYPE(SNK6502, snk6502_sound_device, "snk6502_sound", "SNK6502 Audio Custom") snk6502_sound_device::snk6502_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, SNK6502, "SNK6502 Audio Custom", tag, owner, clock, "snk6502_sound", __FILE__), + : device_t(mconfig, SNK6502, tag, owner, clock), device_sound_interface(mconfig, *this), //m_tone_channels[CHANNELS], m_tone_clock_expire(0), @@ -711,8 +711,6 @@ WRITE8_MEMBER( snk6502_sound_device::fantasy_sound_w ) /* select tune in ROM based on sound command byte */ m_tone_channels[2].base = 0x1000 + ((data & 0x70) << 4); m_tone_channels[2].mask = 0xff; - snk6502_state *drvstate = space.machine().driver_data(); - drvstate->flipscreen_w(space, 0, data); break; } } diff --git a/src/mame/audio/snk6502.h b/src/mame/audio/snk6502.h new file mode 100644 index 00000000000..bd03457376e --- /dev/null +++ b/src/mame/audio/snk6502.h @@ -0,0 +1,86 @@ +// license:BSD-3-Clause +// copyright-holders:Nicola Salmoria, Dan Boris +/************************************************************************* + + rokola hardware + +*************************************************************************/ +#ifndef MAME_AUDIO_SNK6502_H +#define MAME_AUDIO_SNK6502_H + +#pragma once + +#include "sound/discrete.h" +#include "sound/samples.h" + + +class snk6502_sound_device : public device_t, public device_sound_interface +{ +public: + snk6502_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + + DECLARE_WRITE8_MEMBER( sasuke_sound_w ); + DECLARE_WRITE8_MEMBER( satansat_sound_w ); + DECLARE_WRITE8_MEMBER( vanguard_sound_w ); + DECLARE_WRITE8_MEMBER( vanguard_speech_w ); + DECLARE_WRITE8_MEMBER( fantasy_sound_w ); + DECLARE_WRITE8_MEMBER( fantasy_speech_w ); + + void set_music_clock(double clock_time); + void set_music_freq(int freq); + int music0_playing(); + +protected: + // device-level overrides + virtual void device_start() override; + + // sound stream update overrides + virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; + +private: + static constexpr unsigned CHANNELS = 3; + + struct TONE + { + int mute; + int offset; + int base; + int mask; + int32_t sample_rate; + int32_t sample_step; + int32_t sample_cur; + int16_t form[16]; + }; + + // internal state + TONE m_tone_channels[CHANNELS]; + int32_t m_tone_clock_expire; + int32_t m_tone_clock; + sound_stream * m_tone_stream; + + optional_device m_samples; + uint8_t *m_ROM; + int m_Sound0StopOnRollover; + uint8_t m_LastPort1; + + int m_hd38880_cmd; + uint32_t m_hd38880_addr; + int m_hd38880_data_bytes; + double m_hd38880_speed; + + inline void validate_tone_channel(int channel); + void sasuke_build_waveform(int mask); + void satansat_build_waveform(int mask); + void build_waveform(int channel, int mask); + void speech_w(uint8_t data, const uint16_t *table, int start); +}; + +DECLARE_DEVICE_TYPE(SNK6502, snk6502_sound_device) + +DISCRETE_SOUND_EXTERN( fantasy ); + +extern char const *const sasuke_sample_names[]; +extern char const *const vanguard_sample_names[]; +extern char const *const fantasy_sample_names[]; + +#endif // MAME_AUDIO_SNK6502_H diff --git a/src/mame/audio/socrates.cpp b/src/mame/audio/socrates.cpp index e50b06d9b8a..0b86830d412 100644 --- a/src/mame/audio/socrates.cpp +++ b/src/mame/audio/socrates.cpp @@ -16,7 +16,7 @@ // device type definition -const device_type SOCRATES_SOUND = device_creator; +DEFINE_DEVICE_TYPE(SOCRATES_SOUND, socrates_snd_device, "socrates_snd", "Socrates Sound") //------------------------------------------------- @@ -24,8 +24,8 @@ const device_type SOCRATES_SOUND = device_creator; //------------------------------------------------- socrates_snd_device::socrates_snd_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, SOCRATES_SOUND, "Socrates Sound", tag, owner, clock, "socrates_snd", __FILE__), - device_sound_interface(mconfig, *this) + : device_t(mconfig, SOCRATES_SOUND, tag, owner, clock) + , device_sound_interface(mconfig, *this) { } diff --git a/src/mame/audio/socrates.h b/src/mame/audio/socrates.h index c42a3d44671..4f840bca384 100644 --- a/src/mame/audio/socrates.h +++ b/src/mame/audio/socrates.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Jonathan Gevaryahu -#pragma once +#ifndef MAME_AUDIO_SOCRATES_H +#define MAME_AUDIO_SOCRATES_H -#ifndef __SOCR_SND_H__ -#define __SOCR_SND_H__ +#pragma once class socrates_snd_device : public device_t, public device_sound_interface @@ -38,7 +38,7 @@ private: uint16_t m_DAC_output; // output }; -extern const device_type SOCRATES_SOUND; +DECLARE_DEVICE_TYPE(SOCRATES_SOUND, socrates_snd_device) -#endif /* __SOCR_SND_H__ */ +#endif // MAME_AUDIO_SOCRATES_H diff --git a/src/mame/audio/special.cpp b/src/mame/audio/special.cpp index 61bcccc3959..6edc3cebcdf 100644 --- a/src/mame/audio/special.cpp +++ b/src/mame/audio/special.cpp @@ -14,7 +14,7 @@ // device type definition -const device_type SPECIMX_SND = device_creator; +DEFINE_DEVICE_TYPE(SPECIMX_SND, specimx_sound_device, "specimx_sound", "Specialist MX Audio Custom") //************************************************************************** @@ -26,11 +26,11 @@ const device_type SPECIMX_SND = device_creator; //------------------------------------------------- specimx_sound_device::specimx_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, SPECIMX_SND, "Specialist MX Audio Custom", tag, owner, clock, "specimx_sound", __FILE__), - device_sound_interface(mconfig, *this), - m_mixer_channel(nullptr) + : device_t(mconfig, SPECIMX_SND, tag, owner, clock) + , device_sound_interface(mconfig, *this) + , m_mixer_channel(nullptr) + , m_specimx_input{ 0, 0, 0 } { - memset(m_specimx_input, 0, sizeof(int)*3); } diff --git a/src/mame/audio/special.h b/src/mame/audio/special.h index 7fceceaf1ea..8fbcfe176cc 100644 --- a/src/mame/audio/special.h +++ b/src/mame/audio/special.h @@ -6,16 +6,16 @@ * ****************************************************************************/ -#ifndef SPECIAL_SND_H_ -#define SPECIAL_SND_H_ +#ifndef MAME_AUDIO_SPECIAL_H +#define MAME_AUDIO_SPECIAL_H +#pragma once -class specimx_sound_device : public device_t, - public device_sound_interface + +class specimx_sound_device : public device_t, public device_sound_interface { public: specimx_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~specimx_sound_device() { } DECLARE_WRITE_LINE_MEMBER(set_input_ch0); DECLARE_WRITE_LINE_MEMBER(set_input_ch1); @@ -33,6 +33,6 @@ private: int m_specimx_input[3]; }; -extern const device_type SPECIMX_SND; +DECLARE_DEVICE_TYPE(SPECIMX_SND, specimx_sound_device) -#endif /* SPECIAL_SND_H_ */ +#endif // MAME_AUDIO_SPECIAL_H diff --git a/src/mame/audio/svis_snd.cpp b/src/mame/audio/svis_snd.cpp index eb94212eb85..55b1921e713 100644 --- a/src/mame/audio/svis_snd.cpp +++ b/src/mame/audio/svis_snd.cpp @@ -11,7 +11,7 @@ // device type definition -const device_type SVISION_SND = device_creator; +DEFINE_DEVICE_TYPE(SVISION_SND, svision_sound_device, "svision_sound", "Super Vision Audio Custom") //************************************************************************** @@ -23,9 +23,9 @@ const device_type SVISION_SND = device_creator; //------------------------------------------------- svision_sound_device::svision_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, SVISION_SND, "Super Vision Audio Custom", tag, owner, clock, "svision_sound", __FILE__), - device_sound_interface(mconfig, *this), - m_mixer_channel(nullptr) + : device_t(mconfig, SVISION_SND, tag, owner, clock) + , device_sound_interface(mconfig, *this) + , m_mixer_channel(nullptr) { } @@ -54,47 +54,46 @@ void svision_sound_device::device_start() void svision_sound_device::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) { stream_sample_t *left=outputs[0], *right=outputs[1]; - int i, j; - SVISION_CHANNEL *channel; - for (i = 0; i < samples; i++, left++, right++) + for (int i = 0; i < samples; i++, left++, right++) { *left = 0; *right = 0; - for (channel=m_channel, j=0; jsize != 0) + CHANNEL &channel(m_channel[j]); + if (channel.size != 0) { - if (channel->on||channel->count) + if (channel.on||channel.count) { bool on = false; - switch (channel->waveform) + switch (channel.waveform) { case 0: - on = channel->pos <= (28 * channel->size) >> 5; + on = channel.pos <= (28 * channel.size) >> 5; break; case 1: - on = channel->pos <= (24 * channel->size) >> 5; + on = channel.pos <= (24 * channel.size) >> 5; break; default: case 2: - on = channel->pos <= channel->size / 2; + on = channel.pos <= channel.size / 2; break; case 3: - on = channel->pos <= (9 * channel->size) >> 5; + on = channel.pos <= (9 * channel.size) >> 5; break; } { - int16_t s = on ? channel->volume << 8 : 0; + int16_t s = on ? channel.volume << 8 : 0; if (j == 0) *right += s; else *left += s; } } - channel->pos++; - if (channel->pos >= channel->size) - channel->pos = 0; + channel.pos++; + if (channel.pos >= channel.size) + channel.pos = 0; } } if (m_noise.on && (m_noise.play || m_noise.count)) @@ -110,13 +109,13 @@ void svision_sound_device::sound_stream_update(sound_stream &stream, stream_samp { switch (m_noise.type) { - case SVISION_NOISE_Type7Bit: + case NOISE::Type::Type7Bit: m_noise.value = m_noise.state & 0x40 ? 1 : 0; b1 = (m_noise.state & 0x40) != 0; b2 = (m_noise.state & 0x20) != 0; m_noise.state=(m_noise.state<<1)+(b1!=b2?1:0); break; - case SVISION_NOISE_Type14Bit: + case NOISE::Type::Type14Bit: default: m_noise.value = m_noise.state & 0x2000 ? 1 : 0; b1 = (m_noise.state & 0x2000) != 0; @@ -204,7 +203,7 @@ WRITE8_MEMBER( svision_sound_device::noise_w ) m_noise.count = data + 1; break; case 2: - m_noise.type = (SVISION_NOISE_Type) (data & 1); + m_noise.type = NOISE::Type(data & 1); m_noise.play = data & 2; m_noise.right = data & 4; m_noise.left = data & 8; @@ -235,35 +234,35 @@ void svision_sound_device::sound_decrement() void svision_sound_device::soundport_w(int which, int offset, int data) { - SVISION_CHANNEL *channel = &m_channel[which]; + CHANNEL &channel(m_channel[which]); uint16_t size; m_mixer_channel->update(); - channel->reg[offset] = data; + channel.reg[offset] = data; switch (offset) { case 0: case 1: - size = channel->reg[0] | ((channel->reg[1] & 7) << 8); + size = channel.reg[0] | ((channel.reg[1] & 7) << 8); if (size) { - // channel->size=(int)(device->machine().sample_rate()*(size<<5)/4e6); - channel->size= (int) (machine().sample_rate() * (size << 5) / machine().device("maincpu")->unscaled_clock()); + // channel.size=(int)(device->machine().sample_rate()*(size<<5)/4e6); + channel.size= (int) (machine().sample_rate() * (size << 5) / machine().device("maincpu")->unscaled_clock()); } else { - channel->size = 0; + channel.size = 0; } - channel->pos = 0; + channel.pos = 0; break; case 2: - channel->on = data & 0x40; - channel->waveform = (data & 0x30) >> 4; - channel->volume = data & 0xf; + channel.on = data & 0x40; + channel.waveform = (data & 0x30) >> 4; + channel.volume = data & 0xf; break; case 3: - channel->count = data + 1; + channel.count = data + 1; break; } } diff --git a/src/mame/audio/svis_snd.h b/src/mame/audio/svis_snd.h index 46b18a29968..1a3777434ae 100644 --- a/src/mame/audio/svis_snd.h +++ b/src/mame/audio/svis_snd.h @@ -6,110 +6,39 @@ * ****************************************************************************/ -#ifndef SVIS_SND_H_ -#define SVIS_SND_H_ +#ifndef MAME_AUDIO_SVIS_SND_H +#define MAME_AUDIO_SVIS_SND_H + +#pragma once //************************************************************************** // TYPE DEFINITIONS //************************************************************************** -enum SVISION_NOISE_Type -{ - SVISION_NOISE_Type7Bit, - SVISION_NOISE_Type14Bit -}; - -struct SVISION_NOISE -{ - SVISION_NOISE() : - on(0), - right(0), - left(0), - play(0), - type(SVISION_NOISE_Type7Bit), - state(0), - volume(0), - count(0), - step(0.0), - pos(0.0), - value(0) - { - memset(reg, 0, sizeof(uint8_t)*3); - } - - uint8_t reg[3]; - int on, right, left, play; - SVISION_NOISE_Type type; - int state; - int volume; - int count; - double step, pos; - int value; // currently simple random function -}; - -struct SVISION_DMA -{ - SVISION_DMA() : - on(0), - right(0), - left(0), - ca14to16(0), - start(0), - size(0), - pos(0.0), - step(0.0), - finished(0) - { - memset(reg, 0, sizeof(uint8_t)*5); - } - - uint8_t reg[5]; - int on, right, left; - int ca14to16; - int start,size; - double pos, step; - int finished; -}; - -struct SVISION_CHANNEL -{ - SVISION_CHANNEL() : - on(0), - waveform(0), - volume(0), - pos(0), - size(0), - count(0) - { - memset(reg, 0, sizeof(uint8_t)*4); - } - - uint8_t reg[4]; - int on; - int waveform, volume; - int pos; - int size; - int count; -}; - -typedef device_delegate svision_snd_irq_delegate; #define SVISION_SND_IRQ_MEMBER(_name) void _name(void) #define SVISION_SND_IRQ_CB(_class, _method) \ - svision_sound_device::set_irq_callback(*device, svision_snd_irq_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); + svision_sound_device::set_irq_callback(*device, svision_sound_device::irq_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); // ======================> svision_sound_device -class svision_sound_device : public device_t, - public device_sound_interface +class svision_sound_device : public device_t, public device_sound_interface { public: + typedef device_delegate irq_delegate; + svision_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~svision_sound_device() { } // static configuration - static void set_irq_callback(device_t &device, svision_snd_irq_delegate callback) { downcast(device).m_irq_cb = callback; } + static void set_irq_callback(device_t &device, irq_delegate callback) { downcast(device).m_irq_cb = callback; } + + DECLARE_WRITE8_MEMBER( sounddma_w ); + DECLARE_WRITE8_MEMBER( noise_w ); + + int *dma_finished(); + void sound_decrement(); + void soundport_w(int which, int offset, int data); protected: // device-level overrides @@ -118,25 +47,59 @@ protected: // sound stream update overrides virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; -public: - DECLARE_WRITE8_MEMBER( sounddma_w ); - DECLARE_WRITE8_MEMBER( noise_w ); +private: + struct NOISE + { + enum class Type + { + Type7Bit = 0, + Type14Bit = 1 + }; + + NOISE() : reg{ 0, 0, 0 } { } + + uint8_t reg[3]; + int on = 0, right = 0, left = 0, play = 0; + Type type = Type::Type7Bit; + int state = 0; + int volume = 0; + int count = 0; + double step = 0, pos = 0; + int value = 0; // currently simple random function + }; + + struct DMA + { + DMA() : reg{ 0, 0, 0, 0, 0 } { } -public: - int *dma_finished(); - void sound_decrement(); - void soundport_w(int which, int offset, int data); + uint8_t reg[5]; + int on = 0, right = 0, left = 0; + int ca14to16 = 0; + int start = 0, size = 0; + double pos = 0, step = 0; + int finished = 0; + }; -private: - svision_snd_irq_delegate m_irq_cb; + struct CHANNEL + { + CHANNEL() : reg{ 0, 0, 0, 0 } { } + + uint8_t reg[4]; + int on = 0; + int waveform = 0, volume = 0; + int pos = 0; + int size = 0; + int count = 0; + }; + + irq_delegate m_irq_cb; sound_stream *m_mixer_channel; - SVISION_DMA m_dma; - SVISION_NOISE m_noise; - SVISION_CHANNEL m_channel[2]; + DMA m_dma; + NOISE m_noise; + CHANNEL m_channel[2]; }; -extern const device_type SVISION_SND; - +DECLARE_DEVICE_TYPE(SVISION_SND, svision_sound_device) -#endif /* SVIS_SND_H_ */ +#endif // MAME_AUDIO_SVIS_SND_H diff --git a/src/mame/audio/t5182.cpp b/src/mame/audio/t5182.cpp index 2106b0fc53c..1f20307f31a 100644 --- a/src/mame/audio/t5182.cpp +++ b/src/mame/audio/t5182.cpp @@ -151,10 +151,10 @@ rom. #define T5182_CLOCK XTAL_14_31818MHz/4 -const device_type T5182 = device_creator; +DEFINE_DEVICE_TYPE(T5182, t5182_device, "t5182", "T5182 MCU") t5182_device::t5182_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, T5182, "T5182 MCU", tag, owner, clock, "t5182", __FILE__), + : device_t(mconfig, T5182, tag, owner, clock), m_ourcpu(*this, "t5182_z80"), m_sharedram(*this, "sharedram"), m_irqstate(0), diff --git a/src/mame/audio/t5182.h b/src/mame/audio/t5182.h index 4783f626236..e4f8ab4533e 100644 --- a/src/mame/audio/t5182.h +++ b/src/mame/audio/t5182.h @@ -1,5 +1,10 @@ // license:BSD-3-Clause // copyright-holders:Jonathan Gevaryahu +#ifndef MAME_AUDIO_T5182_H +#define MAME_AUDIO_T5182_H + +#pragma once + #include "sound/ym2151.h" #include "cpu/z80/z80.h" @@ -8,7 +13,6 @@ class t5182_device : public device_t { public: t5182_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~t5182_device() {} enum { @@ -57,4 +61,6 @@ private: TIMER_CALLBACK_MEMBER( setirq_callback ); }; -extern const device_type T5182; +DECLARE_DEVICE_TYPE(T5182, t5182_device) + +#endif // MAME_AUDIO_T5182_H diff --git a/src/mame/audio/taito_en.cpp b/src/mame/audio/taito_en.cpp index 80ef6b085e0..e6fc3cdf820 100644 --- a/src/mame/audio/taito_en.cpp +++ b/src/mame/audio/taito_en.cpp @@ -17,10 +17,10 @@ #include "speaker.h" -const device_type TAITO_EN = device_creator; +DEFINE_DEVICE_TYPE(TAITO_EN, taito_en_device, "taito_en", "Taito Ensoniq Sound System") taito_en_device::taito_en_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, TAITO_EN, "Taito Ensoniq Sound System", tag, owner, clock, "taito_en", __FILE__), + : device_t(mconfig, TAITO_EN, tag, owner, clock), m_audiocpu(*this, "audiocpu"), m_ensoniq(*this, "ensoniq"), m_duart68681(*this, "duart68681"), diff --git a/src/mame/audio/taito_en.h b/src/mame/audio/taito_en.h index 5733748d19f..5504dc248a5 100644 --- a/src/mame/audio/taito_en.h +++ b/src/mame/audio/taito_en.h @@ -5,6 +5,10 @@ Taito Ensoniq ES5505-based sound hardware ****************************************************************************/ +#ifndef MAME_AUDIO_TAITO_EN_H +#define MAME_AUDIO_TAITO_EN_H + +#pragma once #include "cpu/m68000/m68000.h" #include "sound/es5506.h" @@ -16,7 +20,6 @@ class taito_en_device : public device_t { public: taito_en_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~taito_en_device() {} DECLARE_READ8_MEMBER( en_68000_share_r ); DECLARE_WRITE8_MEMBER( en_68000_share_w ); @@ -56,4 +59,6 @@ private: uint8_t m_es5510_ram_sel; }; -extern const device_type TAITO_EN; +DECLARE_DEVICE_TYPE(TAITO_EN, taito_en_device) + +#endif // MAME_AUDIO_TAITO_EN_H diff --git a/src/mame/audio/taito_zm.cpp b/src/mame/audio/taito_zm.cpp index a29f1aea9b4..02ad6318778 100644 --- a/src/mame/audio/taito_zm.cpp +++ b/src/mame/audio/taito_zm.cpp @@ -31,14 +31,14 @@ TODO: /**************************************************************************/ -const device_type TAITO_ZOOM = device_creator; +DEFINE_DEVICE_TYPE(TAITO_ZOOM, taito_zoom_device, "taito_zoom", "Taito Zoom Sound System") //------------------------------------------------- // taito_zoom_device - constructor //------------------------------------------------- taito_zoom_device::taito_zoom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, TAITO_ZOOM, "Taito Zoom Sound System", tag, owner, clock, "taito_zoom", __FILE__), + : device_t(mconfig, TAITO_ZOOM, tag, owner, clock), m_soundcpu(*this, ":mn10200"), m_zsg2(*this, ":zsg2"), m_reg_address(0), diff --git a/src/mame/audio/taito_zm.h b/src/mame/audio/taito_zm.h index 353cb898f54..edf0b3e8438 100644 --- a/src/mame/audio/taito_zm.h +++ b/src/mame/audio/taito_zm.h @@ -5,6 +5,10 @@ Taito Zoom ZSG-2 sound board ***************************************************************************/ +#ifndef MAME_AUDIO_TAITO_ZM_H +#define MAME_AUDIO_TAITO_ZM_H + +#pragma once #include "cpu/mn10200/mn10200.h" #include "cpu/tms57002/tms57002.h" @@ -17,7 +21,6 @@ class taito_zoom_device : public device_t { public: taito_zoom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~taito_zoom_device() {} DECLARE_WRITE16_MEMBER(sound_irq_w); DECLARE_READ16_MEMBER(sound_irq_r); @@ -45,9 +48,11 @@ private: std::unique_ptr m_snd_shared_ram; }; -extern const device_type TAITO_ZOOM; +DECLARE_DEVICE_TYPE(TAITO_ZOOM, taito_zoom_sound) MACHINE_CONFIG_EXTERN( taito_zoom_sound ); #define MCFG_TAITO_ZOOM_ADD(_tag) \ MCFG_DEVICE_ADD(_tag, TAITO_ZOOM, 0) + +#endif // MAME_AUDIO_TAITO_ZM_H diff --git a/src/mame/audio/taitosnd.cpp b/src/mame/audio/taitosnd.cpp index 2f885674d66..6dc984d925e 100644 --- a/src/mame/audio/taitosnd.cpp +++ b/src/mame/audio/taitosnd.cpp @@ -11,9 +11,10 @@ **********************************************************************************************/ #include "emu.h" -#include "cpu/z80/z80.h" #include "taitosnd.h" +#include "cpu/z80/z80.h" + /********************************************************************************************** @@ -29,7 +30,7 @@ // device type definition -const device_type TC0140SYT = device_creator; +DEFINE_DEVICE_TYPE(TC0140SYT, tc0140syt_device, "tc0140syt", "Taito TC0140SYT") //************************************************************************** @@ -41,7 +42,7 @@ const device_type TC0140SYT = device_creator; //------------------------------------------------- tc0140syt_device::tc0140syt_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, TC0140SYT, "Taito TC0140SYT", tag, owner, clock, "tc0140syt", __FILE__) + : device_t(mconfig, TC0140SYT, tag, owner, clock) , m_mainmode(0) , m_submode(0) , m_status(0) diff --git a/src/mame/audio/taitosnd.h b/src/mame/audio/taitosnd.h index e6f20e1bec1..3738575cb02 100644 --- a/src/mame/audio/taitosnd.h +++ b/src/mame/audio/taitosnd.h @@ -1,7 +1,7 @@ // license:BSD-3-Clause // copyright-holders:Philip Bennett -#ifndef __TAITOSND_H__ -#define __TAITOSND_H__ +#ifndef MAME_AUDIO_TAITOSND_H +#define MAME_AUDIO_TAITOSND_H //************************************************************************** @@ -25,7 +25,6 @@ class tc0140syt_device : public device_t { public: tc0140syt_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~tc0140syt_device() { } static void set_master_tag(device_t &device, const char *tag) { downcast(device).m_mastercpu.set_tag(tag); } static void set_slave_tag(device_t &device, const char *tag) { downcast(device).m_slavecpu.set_tag(tag); } @@ -59,7 +58,7 @@ private: required_device m_slavecpu; /* this is the audiocpu */ }; -extern const device_type TC0140SYT; +DECLARE_DEVICE_TYPE(TC0140SYT, tc0140syt_device) -#endif /*__TAITOSND_H__*/ +#endif // MAME_AUDIO_TAITOSND_H diff --git a/src/mame/audio/tiamc1.cpp b/src/mame/audio/tiamc1.cpp index 3be08b7b551..09ac9e8aa4a 100644 --- a/src/mame/audio/tiamc1.cpp +++ b/src/mame/audio/tiamc1.cpp @@ -34,7 +34,7 @@ ***************************************************************************/ #include "emu.h" -#include "includes/tiamc1.h" +#include "audio/tiamc1.h" #define CLOCK_DIVIDER 16 #define BUF_LEN 100000 @@ -46,7 +46,7 @@ // device type definition -const device_type TIAMC1 = device_creator; +DEFINE_DEVICE_TYPE(TIAMC1, tiamc1_sound_device, "tiamc1_sound", "TIA-MC1 Audio Custom") //************************************************************************** @@ -58,7 +58,7 @@ const device_type TIAMC1 = device_creator; //------------------------------------------------- tiamc1_sound_device::tiamc1_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, TIAMC1, "TIA-MC1 Audio Custom", tag, owner, clock, "tiamc1_sound", __FILE__), + : device_t(mconfig, TIAMC1, tag, owner, clock), device_sound_interface(mconfig, *this), m_channel(nullptr), m_timer1_divider(0) diff --git a/src/mame/audio/tiamc1.h b/src/mame/audio/tiamc1.h new file mode 100644 index 00000000000..638d6caefc4 --- /dev/null +++ b/src/mame/audio/tiamc1.h @@ -0,0 +1,67 @@ +// license:BSD-3-Clause +// copyright-holders:Eugene Sandulenko +#ifndef MAME_AUDIO_TIAMC1_H +#define MAME_AUDIO_TIAMC1_H + +#pragma once + +//************************************************************************** +// TYPE DEFINITIONS +//************************************************************************** + +// ======================> tiamc1_sound_device + +class tiamc1_sound_device : public device_t, public device_sound_interface +{ +public: + tiamc1_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + + DECLARE_WRITE8_MEMBER( tiamc1_timer0_w ); + DECLARE_WRITE8_MEMBER( tiamc1_timer1_w ); + DECLARE_WRITE8_MEMBER( tiamc1_timer1_gate_w ); + +protected: + // device-level overrides + virtual void device_start() override; + + // sound stream update overrides + virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; + +private: + struct timer8253chan + { + timer8253chan() { } + + uint16_t count = 0; + uint16_t cnval = 0; + uint8_t bcdMode = 0; + uint8_t cntMode = 0; + uint8_t valMode = 0; + uint8_t gate = 0; + uint8_t output = 0; + uint8_t loadCnt = 0; + uint8_t enable = 0; + }; + + struct timer8253struct + { + struct timer8253chan channel[3]; + }; + + + void timer8253_reset(struct timer8253struct *t); + void timer8253_tick(struct timer8253struct *t,int chn); + void timer8253_wr(struct timer8253struct *t, int reg, uint8_t val); + char timer8253_get_output(struct timer8253struct *t, int chn); + void timer8253_set_gate(struct timer8253struct *t, int chn, uint8_t gate); + + sound_stream *m_channel; + int m_timer1_divider; + + timer8253struct m_timer0; + timer8253struct m_timer1; +}; + +DECLARE_DEVICE_TYPE(TIAMC1, tiamc1_sound_device) + +#endif // MAME_AUDIO_TIAMC1_H diff --git a/src/mame/audio/timeplt.cpp b/src/mame/audio/timeplt.cpp index e27f3b32c3a..fe8663c41da 100644 --- a/src/mame/audio/timeplt.cpp +++ b/src/mame/audio/timeplt.cpp @@ -22,12 +22,12 @@ #define MASTER_CLOCK XTAL_14_31818MHz -const device_type TIMEPLT_AUDIO = device_creator; +DEFINE_DEVICE_TYPE(TIMEPLT_AUDIO, timeplt_audio_device, "timplt_audio", "Time Pilot Audio") timeplt_audio_device::timeplt_audio_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, TIMEPLT_AUDIO, "Time Pilot Audio", tag, owner, clock, "timeplt_audio", __FILE__), - device_sound_interface(mconfig, *this), - m_last_irq_state(0) + : device_t(mconfig, TIMEPLT_AUDIO, tag, owner, clock) + , device_sound_interface(mconfig, *this) + , m_last_irq_state(0) { } @@ -100,7 +100,7 @@ void timeplt_audio_device::filter_w( device_t *device, int data ) if (data & 2) C += 47000; /* 47000pF = 0.047uF */ - dynamic_cast(device)->filter_rc_set_RC(FLT_RC_LOWPASS, 1000, 5100, 0, CAP_P(C)); + downcast(device)->filter_rc_set_RC(filter_rc_device::LOWPASS, 1000, 5100, 0, CAP_P(C)); } diff --git a/src/mame/audio/timeplt.h b/src/mame/audio/timeplt.h index abe88e3360c..98fab24a429 100644 --- a/src/mame/audio/timeplt.h +++ b/src/mame/audio/timeplt.h @@ -1,15 +1,18 @@ // license:BSD-3-Clause // copyright-holders:Nicola Salmoria +#ifndef MAME_AUDIO_TIMEPLT_H +#define MAME_AUDIO_TIMEPLT_H + +#pragma once + #include "cpu/z80/z80.h" #include "sound/ay8910.h" #include "sound/flt_rc.h" -class timeplt_audio_device : public device_t, - public device_sound_interface +class timeplt_audio_device : public device_t, public device_sound_interface { public: timeplt_audio_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~timeplt_audio_device() {} DECLARE_WRITE8_MEMBER( sh_irqtrigger_w ); DECLARE_WRITE8_MEMBER( filter_w ); @@ -40,4 +43,6 @@ private: MACHINE_CONFIG_EXTERN( timeplt_sound ); MACHINE_CONFIG_EXTERN( locomotn_sound ); -extern const device_type TIMEPLT_AUDIO; +DECLARE_DEVICE_TYPE(TIMEPLT_AUDIO, timeplt_audio_device) + +#endif // MAME_AUDIO_TIMEPLT_H diff --git a/src/mame/audio/trackfld.cpp b/src/mame/audio/trackfld.cpp index 389ec21479b..598d6775a0a 100644 --- a/src/mame/audio/trackfld.cpp +++ b/src/mame/audio/trackfld.cpp @@ -11,13 +11,13 @@ -const device_type TRACKFLD_AUDIO = device_creator; +DEFINE_DEVICE_TYPE(TRACKFLD_AUDIO, trackfld_audio_device, "trackfld_audio", "Track And Field Audio") trackfld_audio_device::trackfld_audio_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, TRACKFLD_AUDIO, "Track And Field Audio", tag, owner, clock, "trackfld_audio", __FILE__), - device_sound_interface(mconfig, *this), - m_last_addr(0), - m_last_irq(0) + : device_t(mconfig, TRACKFLD_AUDIO, tag, owner, clock) + , device_sound_interface(mconfig, *this) + , m_last_addr(0) + , m_last_irq(0) { } diff --git a/src/mame/audio/trackfld.h b/src/mame/audio/trackfld.h index 908e28787de..c1819437b70 100644 --- a/src/mame/audio/trackfld.h +++ b/src/mame/audio/trackfld.h @@ -1,14 +1,17 @@ // license:BSD-3-Clause // copyright-holders:Chris Hardy +#ifndef MAME_AUDIO_TRACKFLD_H +#define MAME_AUDIO_TRACKFLD_H + +#pragma once + #include "sound/vlm5030.h" #include "cpu/m6800/m6800.h" -class trackfld_audio_device : public device_t, - public device_sound_interface +class trackfld_audio_device : public device_t, public device_sound_interface { public: trackfld_audio_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~trackfld_audio_device() {} DECLARE_WRITE8_MEMBER(konami_sh_irqtrigger_w ); DECLARE_READ8_MEMBER(trackfld_sh_timer_r ); @@ -34,4 +37,6 @@ private: vlm5030_device *m_vlm; }; -extern const device_type TRACKFLD_AUDIO; +DECLARE_DEVICE_TYPE(TRACKFLD_AUDIO, trackfld_audio_device) + +#endif // MAME_AUDIO_TRACKFLD_H diff --git a/src/mame/audio/turrett.cpp b/src/mame/audio/turrett.cpp index 379907093f6..8fa19efdb72 100644 --- a/src/mame/audio/turrett.cpp +++ b/src/mame/audio/turrett.cpp @@ -9,7 +9,7 @@ #include "emu.h" #include "includes/turrett.h" -const device_type TURRETT = device_creator; +DEFINE_DEVICE_TYPE(TURRETT, turrett_device, "ttsnd", "Turret Tower Sound") //------------------------------------------------- @@ -17,10 +17,10 @@ const device_type TURRETT = device_creator; //------------------------------------------------- turrett_device::turrett_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, TURRETT, "Turret Tower Sound", tag, owner, clock, "ttsnd", __FILE__), - device_sound_interface(mconfig, *this), - device_memory_interface(mconfig, *this), - m_space_config("ttsound", ENDIANNESS_LITTLE, 16, 28, 0, nullptr) + : device_t(mconfig, TURRETT, tag, owner, clock) + , device_sound_interface(mconfig, *this) + , device_memory_interface(mconfig, *this) + , m_space_config("ttsound", ENDIANNESS_LITTLE, 16, 28, 0, nullptr) { } diff --git a/src/mame/audio/tvc.cpp b/src/mame/audio/tvc.cpp index 693de81fb18..0c4a70d22b6 100644 --- a/src/mame/audio/tvc.cpp +++ b/src/mame/audio/tvc.cpp @@ -10,14 +10,14 @@ #include "tvc.h" // device type definition -const device_type TVC_SOUND = device_creator; +DEFINE_DEVICE_TYPE(TVC_SOUND, tvc_sound_device, "tvc_sound", "TVC 64 Audio Custom") //------------------------------------------------- // tvc_sound_device - constructor //------------------------------------------------- tvc_sound_device::tvc_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, TVC_SOUND, "TVC 64 Audio Custom", tag, owner, clock, "tvc_sound", __FILE__), + device_t(mconfig, TVC_SOUND, tag, owner, clock), device_sound_interface(mconfig, *this), m_write_sndint(*this) { diff --git a/src/mame/audio/tvc.h b/src/mame/audio/tvc.h index 00fb29e899e..fed6d7f467c 100644 --- a/src/mame/audio/tvc.h +++ b/src/mame/audio/tvc.h @@ -6,10 +6,10 @@ * ****************************************************************************/ -#pragma once +#ifndef MAME_AUDIO_TVC_H +#define MAME_AUDIO_TVC_H -#ifndef _TVC_SND_H_ -#define _TVC_SND_H_ +#pragma once #define MCFG_TVC_SOUND_SNDINT_CALLBACK(_write) \ devcb = &tvc_sound_device::set_sndint_wr_callback(*device, DEVCB_##_write); @@ -20,14 +20,13 @@ // ======================> tvc_sound_device -class tvc_sound_device : public device_t, - public device_sound_interface +class tvc_sound_device : public device_t, public device_sound_interface { public: // construction/destruction tvc_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_sndint_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_sndint.set_callback(object); } + template static devcb_base &set_sndint_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_sndint.set_callback(std::forward(cb)); } DECLARE_WRITE8_MEMBER(write); void reset_divider(); @@ -55,5 +54,6 @@ private: // device type definition extern const device_type TVC_SOUND; +DECLARE_DEVICE_TYPE(TVC_SOUND, tvc_sound_device) -#endif +#endif // MAME_AUDIO_TVC_H diff --git a/src/mame/audio/tx1.cpp b/src/mame/audio/tx1.cpp index a8e3d53e4d1..f462fb20b31 100644 --- a/src/mame/audio/tx1.cpp +++ b/src/mame/audio/tx1.cpp @@ -7,9 +7,10 @@ ***************************************************************************/ #include "emu.h" +#include "includes/tx1.h" + #include "sound/ay8910.h" #include "video/resnet.h" -#include "includes/tx1.h" /************************************* @@ -51,16 +52,15 @@ static const double tx1_engine_gains[16] = }; -const device_type TX1 = device_creator; +DEFINE_DEVICE_TYPE(TX1, tx1_sound_device, "tx1_sound", "TX-1 Audio Custom") tx1_sound_device::tx1_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, TX1, "TX-1 Audio Custom", tag, owner, clock, "tx1_sound", __FILE__), - device_sound_interface(mconfig, *this) + : tx1_sound_device(mconfig, TX1, tag, owner, clock) { } -tx1_sound_device::tx1_sound_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), +tx1_sound_device::tx1_sound_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock), device_sound_interface(mconfig, *this), m_stream(nullptr), m_freq_to_step(0), @@ -335,10 +335,10 @@ static const double bb_engine_gains[16] = -1.0/(1.0/(BUGGYBOY_R1S + BUGGYBOY_R2S + BUGGYBOY_R3S + BUGGYBOY_R4S) + 1.0/100e3)/100e3, }; -const device_type BUGGYBOY = device_creator; +DEFINE_DEVICE_TYPE(BUGGYBOY, buggyboy_sound_device, "buggyboy_sound", "Buggy Boy Audio Custom") buggyboy_sound_device::buggyboy_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : tx1_sound_device(mconfig, BUGGYBOY, "Buggy Boy Audio Custom", tag, owner, clock, "buggyboy_sound", __FILE__) + : tx1_sound_device(mconfig, BUGGYBOY, tag, owner, clock) { } diff --git a/src/mame/audio/vboy.cpp b/src/mame/audio/vboy.cpp index 707fdf8ce3c..38755b9208e 100644 --- a/src/mame/audio/vboy.cpp +++ b/src/mame/audio/vboy.cpp @@ -11,7 +11,7 @@ #include "vboy.h" // device type definition -const device_type VBOYSND = device_creator; +DEFINE_DEVICE_TYPE(VBOYSND, vboysnd_device, "vboysnd", "Virtual Boy Audio") //#define LAME_COMPILER_BUG @@ -196,8 +196,8 @@ static inline void mputb(uint8_t *ptr, int8_t data) { *ptr = data; } //------------------------------------------------- vboysnd_device::vboysnd_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, VBOYSND, "Virtual Boy audio", tag, owner, clock, "vboysnd", __FILE__), - device_sound_interface(mconfig, *this) + : device_t(mconfig, VBOYSND, tag, owner, clock) + , device_sound_interface(mconfig, *this) { } diff --git a/src/mame/audio/vboy.h b/src/mame/audio/vboy.h index fce19d5b5b4..72793b66404 100644 --- a/src/mame/audio/vboy.h +++ b/src/mame/audio/vboy.h @@ -6,72 +6,33 @@ By Richard Bannister and Gil Pedersen. MESS device adaptation by R. Belmont */ +#ifndef MAME_AUDIO_VBOY_H +#define MAME_AUDIO_VBOY_H #pragma once -#ifndef __VBOY_SND_H__ -#define __VBOY_SND_H__ - -//************************************************************************** -// CONSTANTS -//************************************************************************** - -#define AUDIO_FREQ 44100 -#define CHANNELS 4 //************************************************************************** // INTERFACE CONFIGURATION MACROS //************************************************************************** #define MCFG_VBOYSND_ADD(_tag) \ - MCFG_DEVICE_ADD(_tag, VBOYSND, AUDIO_FREQ) + MCFG_DEVICE_ADD(_tag, VBOYSND, vboysnd_device::AUDIO_FREQ) #define MCFG_VBOYSND_REPLACE(_tag) \ - MCFG_DEVICE_REPLACE(_tag, VBOYSND, AUDIO_FREQ) + MCFG_DEVICE_REPLACE(_tag, VBOYSND, vboysnd_device::AUDIO_FREQ) //************************************************************************** // TYPE DEFINITIONS //************************************************************************** -struct s_snd_channel { - int8_t playing; // the sound is playing - - // state when sound was enabled - uint32_t env_steptime; // Envelope step time - uint8_t env0; // Envelope data - uint8_t env1; // Envelope data - uint8_t volLeft; // Left output volume - uint8_t volRight; // Right output volume - uint8_t sample[580]; // sample to play - int sample_len; // length of sample - - // values that change, as the sample is played - int offset; // current offset in sample - int time; // the duration that this sample is to be played - uint8_t envelope; // Current envelope level (604) - int env_time; // The duration between envelope decay/grow (608) -}; - -struct s_regchan { - int32_t sINT; - int32_t sLRV; - int32_t sFQL; - int32_t sFQH; - int32_t sEV0; - int32_t sEV1; - int32_t sRAM; -}; - -struct s_sreg { - // Sound registers structure - s_regchan c[4]; -}; - // ======================> vboysnd_device class vboysnd_device : public device_t, public device_sound_interface { public: + static constexpr unsigned AUDIO_FREQ = 44100; + // construction/destruction vboysnd_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); @@ -81,6 +42,42 @@ public: sound_stream *m_stream; protected: + static constexpr unsigned CHANNELS = 4; + + struct s_snd_channel { + int8_t playing; // the sound is playing + + // state when sound was enabled + uint32_t env_steptime; // Envelope step time + uint8_t env0; // Envelope data + uint8_t env1; // Envelope data + uint8_t volLeft; // Left output volume + uint8_t volRight; // Right output volume + uint8_t sample[580]; // sample to play + int sample_len; // length of sample + + // values that change, as the sample is played + int offset; // current offset in sample + int time; // the duration that this sample is to be played + uint8_t envelope; // Current envelope level (604) + int env_time; // The duration between envelope decay/grow (608) + }; + + struct s_regchan { + int32_t sINT; + int32_t sLRV; + int32_t sFQL; + int32_t sFQH; + int32_t sEV0; + int32_t sEV1; + int32_t sRAM; + }; + + struct s_sreg { + // Sound registers structure + s_regchan c[4]; + }; + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -100,6 +97,6 @@ protected: }; // device type definition -extern const device_type VBOYSND; +DECLARE_DEVICE_TYPE(VBOYSND, vboysnd_device) -#endif //__VBOY_SND_H__ +#endif //MAME_AUDIO_VBOY_H diff --git a/src/mame/audio/vc4000.cpp b/src/mame/audio/vc4000.cpp index cb00aa57d8c..3d0b921fd32 100644 --- a/src/mame/audio/vc4000.cpp +++ b/src/mame/audio/vc4000.cpp @@ -11,17 +11,17 @@ #include "vc4000.h" -const device_type VC4000_SND = device_creator; +DEFINE_DEVICE_TYPE(VC4000_SND, vc4000_sound_device, "vc4000_sound", "Interton Electronic VC 4000 Audio Custom") vc4000_sound_device::vc4000_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, VC4000_SND, "Intertion Electronic VC 4000 Audio Custom", tag, owner, clock, "vc4000_sound", __FILE__), - device_sound_interface(mconfig, *this), - m_channel(nullptr), - m_size(0), - m_pos(0), - m_level(0) + : device_t(mconfig, VC4000_SND, tag, owner, clock) + , device_sound_interface(mconfig, *this) + , m_channel(nullptr) + , m_reg{ 0 } + , m_size(0) + , m_pos(0) + , m_level(0) { - memset(m_reg, 0, sizeof(uint8_t)*1); } diff --git a/src/mame/audio/vc4000.h b/src/mame/audio/vc4000.h index ab62a5e5965..e906dc601c4 100644 --- a/src/mame/audio/vc4000.h +++ b/src/mame/audio/vc4000.h @@ -6,9 +6,10 @@ * ****************************************************************************/ -#ifndef _VC4000SND_H_ -#define _VC4000SND_H_ +#ifndef MAME_AUDIO_VC4000_H +#define MAME_AUDIO_VC4000_H +#pragma once //************************************************************************** // TYPE DEFINITIONS @@ -16,8 +17,7 @@ // ======================> vc4000_sound_device -class vc4000_sound_device : public device_t, - public device_sound_interface +class vc4000_sound_device : public device_t, public device_sound_interface { public: vc4000_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); @@ -41,6 +41,6 @@ private: unsigned m_level; }; -extern const device_type VC4000_SND; +DECLARE_DEVICE_TYPE(VC4000_SND, vc4000_sound_device) -#endif /* _VC4000SND_H_ */ +#endif // MAME_AUDIO_VC4000_H diff --git a/src/mame/audio/vicdual-97271p.cpp b/src/mame/audio/vicdual-97271p.cpp index bf46df5b6e1..1819ef96e90 100644 --- a/src/mame/audio/vicdual-97271p.cpp +++ b/src/mame/audio/vicdual-97271p.cpp @@ -17,7 +17,7 @@ for the time being this is a simple sample player based on the work by MASH. // GLOBAL VARIABLES //************************************************************************** -const device_type S97271P = device_creator; +DEFINE_DEVICE_TYPE(S97271P, s97271p_device, "s97271p", "N-Sub Oscillator 97271-P") /* bit definitions - sound effect drive outputs */ #define S97271P_WARNING 0x01 @@ -91,7 +91,7 @@ MACHINE_CONFIG_END //------------------------------------------------- s97271p_device::s97271p_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, S97271P, "N-Sub Oscillator 97271-P", tag, owner, clock, "s97271p", __FILE__), + device_t(mconfig, S97271P, tag, owner, clock), m_samples(*this, "samples") { } diff --git a/src/mame/audio/vicdual-97271p.h b/src/mame/audio/vicdual-97271p.h index 7098724f326..78bce842084 100644 --- a/src/mame/audio/vicdual-97271p.h +++ b/src/mame/audio/vicdual-97271p.h @@ -1,10 +1,10 @@ // license:BSD-3-Clause // copyright-holders:Ariane Fugmann -#pragma once - #ifndef MAME_AUDIO_VICDUAL_97271P_H #define MAME_AUDIO_VICDUAL_97271P_H +#pragma once + #include "sound/samples.h" #define MCFG_S97271P_ADD(_tag ) \ @@ -38,6 +38,6 @@ private: }; // device type definition -extern const device_type S97271P; +DECLARE_DEVICE_TYPE(S97271P, s97271p_device) -#endif /* MAME_AUDIO_VICDUAL_97271P_H */ +#endif // MAME_AUDIO_VICDUAL_97271P_H diff --git a/src/mame/audio/warpwarp.cpp b/src/mame/audio/warpwarp.cpp index 301a99de38c..bd8490e49b7 100644 --- a/src/mame/audio/warpwarp.cpp +++ b/src/mame/audio/warpwarp.cpp @@ -16,10 +16,10 @@ #define CLOCK_1V (18432000/3/2/384) -const device_type WARPWARP = device_creator; +DEFINE_DEVICE_TYPE(WARPWARP, warpwarp_sound_device, "warpwarp_sound", "Warp Warp Audio Custom") warpwarp_sound_device::warpwarp_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, WARPWARP, "Warp Warp Audio Custom", tag, owner, clock, "warpwarp_sound", __FILE__), + : device_t(mconfig, WARPWARP, tag, owner, clock), device_sound_interface(mconfig, *this), m_decay(nullptr), m_channel(nullptr), diff --git a/src/mame/audio/warpwarp.h b/src/mame/audio/warpwarp.h index a4e96df0dde..9cf2343e1bd 100644 --- a/src/mame/audio/warpwarp.h +++ b/src/mame/audio/warpwarp.h @@ -1,8 +1,12 @@ // license:BSD-3-Clause // copyright-holders:Allard van der Bas +#ifndef MAME_AUDIO_WARPWARP_H +#define MAME_AUDIO_WARPWARP_H -class warpwarp_sound_device : public device_t, - public device_sound_interface +#pragma once + + +class warpwarp_sound_device : public device_t, public device_sound_interface { public: warpwarp_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); @@ -48,4 +52,6 @@ private: int m_mcount; }; -extern const device_type WARPWARP; +DECLARE_DEVICE_TYPE(WARPWARP, warpwarp_sound_device) + +#endif // MAME_AUDIO_WARPWARP_H diff --git a/src/mame/audio/williams.cpp b/src/mame/audio/williams.cpp index 8b5021daeb4..9095683eae1 100644 --- a/src/mame/audio/williams.cpp +++ b/src/mame/audio/williams.cpp @@ -56,9 +56,9 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type WILLIAMS_NARC_SOUND = device_creator; -const device_type WILLIAMS_CVSD_SOUND = device_creator; -const device_type WILLIAMS_ADPCM_SOUND = device_creator; +DEFINE_DEVICE_TYPE(WILLIAMS_CVSD_SOUND, williams_cvsd_sound_device, "wmscvsd", "Williams CVSD Sound Board") +DEFINE_DEVICE_TYPE(WILLIAMS_NARC_SOUND, williams_narc_sound_device, "wmsnarc", "Williams NARC Sound Board") +DEFINE_DEVICE_TYPE(WILLIAMS_ADPCM_SOUND, williams_adpcm_sound_device, "wmsadpcm", "Williams ADPCM Sound Board") @@ -71,7 +71,7 @@ const device_type WILLIAMS_ADPCM_SOUND = device_creator; +DEFINE_DEVICE_TYPE(WIPING, wiping_sound_device, "wiping_sound", "Wiping Audio Custom") wiping_sound_device::wiping_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, WIPING, "Wiping Audio Custom", tag, owner, clock, "wiping_sound", __FILE__), - device_sound_interface(mconfig, *this), + : device_t(mconfig, WIPING, tag, owner, clock), + device_sound_interface(mconfig, *this), m_last_channel(nullptr), m_sound_prom(nullptr), m_sound_rom(nullptr), diff --git a/src/mame/audio/wiping.h b/src/mame/audio/wiping.h index 5c9df701148..11924852bd9 100644 --- a/src/mame/audio/wiping.h +++ b/src/mame/audio/wiping.h @@ -1,25 +1,14 @@ // license:BSD-3-Clause // copyright-holders:Allard van der Bas -/* 8 voices max */ -#define MAX_VOICES 8 +#ifndef MAME_AUDIO_WIPING_H +#define MAME_AUDIO_WIPING_H -/* this structure defines the parameters for a channel */ -struct wp_sound_channel -{ - int frequency; - int counter; - int volume; - const uint8_t *wave; - int oneshot; - int oneshotplaying; -}; +#pragma once -class wiping_sound_device : public device_t, - public device_sound_interface +class wiping_sound_device : public device_t, public device_sound_interface { public: wiping_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~wiping_sound_device() {} DECLARE_WRITE8_MEMBER( sound_w ); @@ -31,6 +20,20 @@ protected: virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; private: + /* 8 voices max */ + static constexpr unsigned MAX_VOICES = 8; + + /* this structure defines the parameters for a channel */ + struct wp_sound_channel + { + int frequency; + int counter; + int volume; + const uint8_t *wave; + int oneshot; + int oneshotplaying; + }; + // internal state /* data about the sound system */ @@ -55,4 +58,6 @@ private: void make_mixer_table(int voices, int gain); }; -extern const device_type WIPING; +DECLARE_DEVICE_TYPE(WIPING, wiping_sound_device) + +#endif // MAME_AUDIO_WIPING_H diff --git a/src/mame/audio/wpcsnd.cpp b/src/mame/audio/wpcsnd.cpp index 481ca882529..508d89cf027 100644 --- a/src/mame/audio/wpcsnd.cpp +++ b/src/mame/audio/wpcsnd.cpp @@ -14,18 +14,18 @@ #define LOG_WPCSND (0) -const device_type WPCSND = device_creator; +DEFINE_DEVICE_TYPE(WPCSND, wpcsnd_device, "wpcsnd", "Williams WPC Sound") wpcsnd_device::wpcsnd_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig,WPCSND,"Williams WPC Sound",tag,owner,clock, "wpcsnd", __FILE__), - device_mixer_interface(mconfig, *this), - m_cpu(*this, "bgcpu"), - m_ym2151(*this, "ym2151"), - m_hc55516(*this, "hc55516"), - m_cpubank(*this, "rombank"), - m_fixedbank(*this, "fixed"), - m_rom(*this, finder_base::DUMMY_TAG), - m_reply_cb(*this) + : device_t(mconfig, WPCSND, tag, owner, clock) + , device_mixer_interface(mconfig, *this) + , m_cpu(*this, "bgcpu") + , m_ym2151(*this, "ym2151") + , m_hc55516(*this, "hc55516") + , m_cpubank(*this, "rombank") + , m_fixedbank(*this, "fixed") + , m_rom(*this, finder_base::DUMMY_TAG) + , m_reply_cb(*this) { } diff --git a/src/mame/audio/wpcsnd.h b/src/mame/audio/wpcsnd.h index f0eab0ce220..74dfd752ea0 100644 --- a/src/mame/audio/wpcsnd.h +++ b/src/mame/audio/wpcsnd.h @@ -6,8 +6,10 @@ * Created on: 4/10/2013 */ -#ifndef WPCSND_H_ -#define WPCSND_H_ +#ifndef MAME_AUDIO_WPCSND_H +#define MAME_AUDIO_WPCSND_H + +#pragma once #include "cpu/m6809/m6809.h" #include "sound/ym2151.h" @@ -51,7 +53,7 @@ public: static void static_set_romregion(device_t &device, const char *tag); // callbacks - template void set_reply_callback(_reply reply) { m_reply_cb.set_callback(reply); } + template void set_reply_callback(Reply &&cb) { m_reply_cb.set_callback(std::forward(cb)); } protected: // overrides @@ -68,6 +70,6 @@ private: devcb_write_line m_reply_cb; }; -extern const device_type WPCSND; +DECLARE_DEVICE_TYPE(WPCSND, wpcsnd_device) -#endif /* WPCSND_H_ */ +#endif // MAME_AUDIO_WPCSND_H diff --git a/src/mame/audio/wswan.cpp b/src/mame/audio/wswan.cpp index 1459acdc390..acd698eea1c 100644 --- a/src/mame/audio/wswan.cpp +++ b/src/mame/audio/wswan.cpp @@ -18,7 +18,7 @@ The noise taps and behavior are the same as the Virtual Boy. // device type definition -const device_type WSWAN_SND = device_creator; +DEFINE_DEVICE_TYPE(WSWAN_SND, wswan_sound_device, "wswan_sound", "WonderSwan Audio Custom") //************************************************************************** @@ -30,7 +30,7 @@ const device_type WSWAN_SND = device_creator; //------------------------------------------------- wswan_sound_device::wswan_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, WSWAN_SND, "WonderSwan Audio Custom", tag, owner, clock, "wswan_sound", __FILE__), + : device_t(mconfig, WSWAN_SND, tag, owner, clock), device_sound_interface(mconfig, *this), m_channel(nullptr), m_sweep_step(0), diff --git a/src/mame/audio/wswan.h b/src/mame/audio/wswan.h index 8d957e80b5e..96ea8a0b416 100644 --- a/src/mame/audio/wswan.h +++ b/src/mame/audio/wswan.h @@ -6,10 +6,10 @@ * ****************************************************************************/ -#pragma once +#ifndef MAME_AUDIO_WSWAN_H +#define MAME_AUDIO_WSWAN_H -#ifndef _WSWAN_SND_H_ -#define _WSWAN_SND_H_ +#pragma once //************************************************************************** @@ -85,6 +85,6 @@ private: uint8_t m_master_volume; /* Master volume */ }; -extern const device_type WSWAN_SND; +DECLARE_DEVICE_TYPE(WSWAN_SND, wswan_sound_device) -#endif +#endif // MAME_AUDIO_WSWAN_H diff --git a/src/mame/audio/zaccaria.cpp b/src/mame/audio/zaccaria.cpp index b880608fd48..805d7326090 100644 --- a/src/mame/audio/zaccaria.cpp +++ b/src/mame/audio/zaccaria.cpp @@ -2,6 +2,7 @@ // copyright-holders:Vas Crabb #include "emu.h" #include "audio/zaccaria.h" + #include "cpu/m6800/m6800.h" #include "machine/clock.h" #include "machine/rescap.h" @@ -13,8 +14,8 @@ // GLOBAL VARIABLES //************************************************************************** -device_type const ZACCARIA_1B11107 = device_creator; -device_type const ZACCARIA_1B11142 = device_creator; +DEFINE_DEVICE_TYPE(ZACCARIA_1B11107, zac1b11107_audio_device, "zac1b11107", "Zaccaria 1B11107 Sound Board") +DEFINE_DEVICE_TYPE(ZACCARIA_1B11142, zac1b11142_audio_device, "zac1b11142", "Zaccaria 1B11142 Sound Board") @@ -239,13 +240,10 @@ INPUT_PORTS_END zac1b111xx_melody_base::zac1b111xx_melody_base( machine_config const &mconfig, device_type devtype, - char const *name, char const *tag, device_t *owner, - uint32_t clock, - char const *shortname, - char const *source) - : device_t(mconfig, devtype, name, tag, owner, clock, shortname, source) + u32 clock) + : device_t(mconfig, devtype, tag, owner, clock) , device_mixer_interface(mconfig, *this, 1) , m_melodycpu(*this, "melodycpu") , m_melodypia(*this, "melodypia") @@ -257,8 +255,8 @@ zac1b111xx_melody_base::zac1b111xx_melody_base( READ8_MEMBER(zac1b111xx_melody_base::melodypia_porta_r) { - uint8_t const control = m_melodypia->b_output(); - uint8_t data = 0xff; + u8 const control = m_melodypia->b_output(); + u8 data = 0xff; if (0x01 == (control & 0x03)) data &= m_melodypsg1->data_r(space, 0); @@ -271,7 +269,7 @@ READ8_MEMBER(zac1b111xx_melody_base::melodypia_porta_r) WRITE8_MEMBER(zac1b111xx_melody_base::melodypia_porta_w) { - uint8_t const control = m_melodypia->b_output(); + u8 const control = m_melodypia->b_output(); if (control & 0x02) m_melodypsg1->data_address_w(space, (control >> 0) & 0x01, data); @@ -310,8 +308,8 @@ void zac1b111xx_melody_base::device_reset() // 1B11107-SPECIFIC IMPLEMENTATION //************************************************************************** -zac1b11107_audio_device::zac1b11107_audio_device(machine_config const &mconfig, char const *tag, device_t *owner, uint32_t clock) - : zac1b111xx_melody_base(mconfig, ZACCARIA_1B11107, "Zaccaria 1B11107 Sound Board", tag, owner, clock, "zac1b11107", __FILE__) +zac1b11107_audio_device::zac1b11107_audio_device(machine_config const &mconfig, char const *tag, device_t *owner, u32 clock) + : zac1b111xx_melody_base(mconfig, ZACCARIA_1B11107, tag, owner, clock) { } @@ -364,8 +362,8 @@ machine_config_constructor zac1b11107_audio_device::device_mconfig_additions() c // 1B11142-SPECIFIC IMPLEMENTATION //************************************************************************** -zac1b11142_audio_device::zac1b11142_audio_device(machine_config const &mconfig, char const *tag, device_t *owner, uint32_t clock) - : zac1b111xx_melody_base(mconfig, ZACCARIA_1B11142, "Zaccaria 1B11142 Sound Board", tag, owner, clock, "zac1b11142", __FILE__) +zac1b11142_audio_device::zac1b11142_audio_device(machine_config const &mconfig, char const *tag, device_t *owner, u32 clock) + : zac1b111xx_melody_base(mconfig, ZACCARIA_1B11142, tag, owner, clock) , m_acs_cb(*this) , m_audiocpu(*this, "audiocpu") , m_pia_1i(*this, "pia_1i") diff --git a/src/mame/audio/zaccaria.h b/src/mame/audio/zaccaria.h index 3b77bb0e637..4b6da268517 100644 --- a/src/mame/audio/zaccaria.h +++ b/src/mame/audio/zaccaria.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Vas Crabb -#pragma once +#ifndef MAME_AUDIO_ZACCARIA_H +#define MAME_AUDIO_ZACCARIA_H -#ifndef __AUDIO_ZACCARIA_H__ -#define __AUDIO_ZACCARIA_H__ +#pragma once #include "machine/6821pia.h" #include "machine/netlist.h" @@ -15,8 +15,8 @@ // GLOBAL VARIABLES //************************************************************************** -extern device_type const ZACCARIA_1B11107; -extern device_type const ZACCARIA_1B11142; +DECLARE_DEVICE_TYPE(ZACCARIA_1B11107, zac1b11107_audio_device) +DECLARE_DEVICE_TYPE(ZACCARIA_1B11142, zac1b11142_audio_device) @@ -36,22 +36,19 @@ extern device_type const ZACCARIA_1B11142; class zac1b111xx_melody_base : public device_t, public device_mixer_interface { public: - zac1b111xx_melody_base( - machine_config const &mconfig, - device_type devtype, - char const *name, - char const *tag, - device_t *owner, - uint32_t clock, - char const *shortname, - char const *source); - DECLARE_READ8_MEMBER(melodypia_porta_r); DECLARE_WRITE8_MEMBER(melodypia_porta_w); DECLARE_WRITE8_MEMBER(melodypia_portb_w); DECLARE_READ8_MEMBER(melodypsg1_portb_r); protected: + zac1b111xx_melody_base( + machine_config const &mconfig, + device_type devtype, + char const *tag, + device_t *owner, + u32 clock); + virtual void device_start() override; virtual void device_reset() override; @@ -60,14 +57,14 @@ protected: required_device m_melodypsg1; required_device m_melodypsg2; - uint8_t m_melody_command; + u8 m_melody_command; }; class zac1b11107_audio_device : public zac1b111xx_melody_base { public: - zac1b11107_audio_device(machine_config const &mconfig, char const *tag, device_t *owner, uint32_t clock); + zac1b11107_audio_device(machine_config const &mconfig, char const *tag, device_t *owner, u32 clock); // host interface DECLARE_WRITE8_MEMBER(sound_w); @@ -85,10 +82,10 @@ protected: class zac1b11142_audio_device : public zac1b111xx_melody_base { public: - template static devcb_base &static_set_acs_cb(device_t &device, _Object object) - { return downcast(device).m_acs_cb.set_callback(object); } + template static devcb_base &static_set_acs_cb(device_t &device, Object &&cb) + { return downcast(device).m_acs_cb.set_callback(std::forward(cb)); } - zac1b11142_audio_device(machine_config const &mconfig, char const *tag, device_t *owner, uint32_t clock); + zac1b11142_audio_device(machine_config const &mconfig, char const *tag, device_t *owner, u32 clock); // host interface DECLARE_WRITE8_MEMBER(hs_w); @@ -114,15 +111,15 @@ protected: virtual void device_start() override; virtual void device_reset() override; - devcb_write_line m_acs_cb; + devcb_write_line m_acs_cb; required_device m_audiocpu; required_device m_pia_1i; required_device m_speech; - required_ioport m_inputs; + required_ioport m_inputs; - uint8_t m_host_command; + u8 m_host_command; }; #endif // __AUDIO_ZACCARIA_H__ diff --git a/src/mame/drivers/1942.cpp b/src/mame/drivers/1942.cpp index 551d519d3ac..ff5e8c6383a 100644 --- a/src/mame/drivers/1942.cpp +++ b/src/mame/drivers/1942.cpp @@ -560,7 +560,7 @@ void _1942_state::machine_reset() m_scroll[1] = 0; } -static MACHINE_CONFIG_START( 1942, _1942_state ) +static MACHINE_CONFIG_START( 1942 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, MAIN_CPU_CLOCK) /* 4 MHz ??? */ @@ -628,7 +628,7 @@ static MACHINE_CONFIG_START( 1942, _1942_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( 1942p, _1942_state ) +static MACHINE_CONFIG_START( 1942p ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, MAIN_CPU_CLOCK_1942P) /* 4 MHz - verified on PCB */ diff --git a/src/mame/drivers/1943.cpp b/src/mame/drivers/1943.cpp index 76685cd365d..6a53e87a952 100644 --- a/src/mame/drivers/1943.cpp +++ b/src/mame/drivers/1943.cpp @@ -309,7 +309,7 @@ void _1943_state::machine_reset() m_prot_value = 0; } -static MACHINE_CONFIG_START( 1943, _1943_state ) +static MACHINE_CONFIG_START( 1943 ) // basic machine hardware MCFG_CPU_ADD("maincpu", Z80, XTAL_24MHz/4) /* verified on pcb */ diff --git a/src/mame/drivers/1945kiii.cpp b/src/mame/drivers/1945kiii.cpp index aef9295fd60..53f6550d03b 100644 --- a/src/mame/drivers/1945kiii.cpp +++ b/src/mame/drivers/1945kiii.cpp @@ -367,7 +367,7 @@ void k3_state::machine_start() { } -static MACHINE_CONFIG_START( flagrall, k3_state ) +static MACHINE_CONFIG_START( flagrall ) MCFG_CPU_ADD("maincpu", M68000, MASTER_CLOCK ) // ? MCFG_CPU_PROGRAM_MAP(flagrall_map) @@ -388,7 +388,7 @@ static MACHINE_CONFIG_START( flagrall, k3_state ) MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki1", MASTER_CLOCK/16, OKIM6295_PIN7_HIGH) /* dividers? */ + MCFG_OKIM6295_ADD("oki1", MASTER_CLOCK/16, PIN7_HIGH) /* dividers? */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -398,7 +398,7 @@ static MACHINE_CONFIG_DERIVED( k3, flagrall ) MCFG_CPU_MODIFY("maincpu") MCFG_CPU_PROGRAM_MAP(k3_map) - MCFG_OKIM6295_ADD("oki2", MASTER_CLOCK/16, OKIM6295_PIN7_HIGH) /* dividers? */ + MCFG_OKIM6295_ADD("oki2", MASTER_CLOCK/16, PIN7_HIGH) /* dividers? */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MCFG_SCREEN_MODIFY("screen") @@ -512,9 +512,8 @@ ROM_START( flagrall ) ROM_END -GAME( 2000, 1945kiii, 0, k3, k3, driver_device, 0, ROT270, "Oriental Soft", "1945k III (newer, OPCX2 PCB)", MACHINE_SUPPORTS_SAVE ) -GAME( 2000, 1945kiiin, 1945kiii, k3, k3, driver_device, 0, ROT270, "Oriental Soft", "1945k III (newer, OPCX1 PCB)", MACHINE_SUPPORTS_SAVE ) -GAME( 1999, 1945kiiio, 1945kiii, k3, k3, driver_device, 0, ROT270, "Oriental Soft", "1945k III (older, OPCX1 PCB)", MACHINE_SUPPORTS_SAVE ) - -GAME( 1996, flagrall, 0, flagrall, flagrall, driver_device, 0, ROT0, "Promat?", "'96 Flag Rally", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, 1945kiii, 0, k3, k3, k3_state, 0, ROT270, "Oriental Soft", "1945k III (newer, OPCX2 PCB)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, 1945kiiin, 1945kiii, k3, k3, k3_state, 0, ROT270, "Oriental Soft", "1945k III (newer, OPCX1 PCB)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, 1945kiiio, 1945kiii, k3, k3, k3_state, 0, ROT270, "Oriental Soft", "1945k III (older, OPCX1 PCB)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, flagrall, 0, flagrall, flagrall, k3_state, 0, ROT0, "Promat?", "'96 Flag Rally", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/20pacgal.cpp b/src/mame/drivers/20pacgal.cpp index dce6c82f6cd..ce558dc56aa 100644 --- a/src/mame/drivers/20pacgal.cpp +++ b/src/mame/drivers/20pacgal.cpp @@ -389,7 +389,7 @@ INTERRUPT_GEN_MEMBER(_20pacgal_state::vblank_irq) device.execute().set_input_line(0, HOLD_LINE); // TODO: assert breaks the inputs in 25pacman test mode } -static MACHINE_CONFIG_START( 20pacgal, _20pacgal_state ) +static MACHINE_CONFIG_START( 20pacgal ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z180, MAIN_CPU_CLOCK) @@ -417,7 +417,7 @@ static MACHINE_CONFIG_START( 20pacgal, _20pacgal_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_DERIVED_CLASS( 25pacman, 20pacgal, _25pacman_state ) +static MACHINE_CONFIG_DERIVED( 25pacman, 20pacgal ) /* basic machine hardware */ MCFG_CPU_MODIFY("maincpu") @@ -534,8 +534,8 @@ DRIVER_INIT_MEMBER(_20pacgal_state,25pacman) * *************************************/ -GAME( 2006, 25pacman, 0, 25pacman, 25pacman, _20pacgal_state, 25pacman, ROT90, "Namco / Cosmodog", "Pac-Man - 25th Anniversary Edition (Rev 3.00)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) -GAME( 2005, 25pacmano, 25pacman, 20pacgal, 25pacmano,_20pacgal_state, 25pacman, ROT90, "Namco / Cosmodog", "Pac-Man - 25th Anniversary Edition (Rev 2.00)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE) +GAME( 2006, 25pacman, 0, 25pacman, 25pacman, _25pacman_state, 25pacman, ROT90, "Namco / Cosmodog", "Pac-Man - 25th Anniversary Edition (Rev 3.00)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) +GAME( 2005, 25pacmano, 25pacman, 20pacgal, 25pacmano,_25pacman_state, 25pacman, ROT90, "Namco / Cosmodog", "Pac-Man - 25th Anniversary Edition (Rev 2.00)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE) GAME( 2000, 20pacgal, 0, 20pacgal, 20pacgal, _20pacgal_state, 20pacgal, ROT90, "Namco / Cosmodog", "Ms. Pac-Man/Galaga - 20th Anniversary Class of 1981 Reunion (V1.08)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE) GAME( 2000, 20pacgalr4, 20pacgal, 20pacgal, 20pacgal, _20pacgal_state, 20pacgal, ROT90, "Namco / Cosmodog", "Ms. Pac-Man/Galaga - 20th Anniversary Class of 1981 Reunion (V1.04)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE) diff --git a/src/mame/drivers/24cdjuke.cpp b/src/mame/drivers/24cdjuke.cpp index 9d84a16ac8a..4d1cd57249a 100644 --- a/src/mame/drivers/24cdjuke.cpp +++ b/src/mame/drivers/24cdjuke.cpp @@ -273,7 +273,7 @@ void midcoin24cdjuke_state::machine_reset() } -static MACHINE_CONFIG_START( midcoin24cdjuke, midcoin24cdjuke_state ) +static MACHINE_CONFIG_START( midcoin24cdjuke ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80,6000000) /* ? MHz */ MCFG_CPU_PROGRAM_MAP(midcoin24cdjuke_map) @@ -313,4 +313,4 @@ ROM_START( 24cdjuke ) ROM_END -GAME( 1988, 24cdjuke, 0, midcoin24cdjuke, midcoin24cdjuke, driver_device, 0, ROT0, "Midcoin", "Midcoin Juke Box 24CD", MACHINE_NO_SOUND | MACHINE_NOT_WORKING ) // what name was it sold under? name is from the PCB text +GAME( 1988, 24cdjuke, 0, midcoin24cdjuke, midcoin24cdjuke, midcoin24cdjuke_state, 0, ROT0, "Midcoin", "Midcoin Juke Box 24CD", MACHINE_NO_SOUND | MACHINE_NOT_WORKING ) // what name was it sold under? name is from the PCB text diff --git a/src/mame/drivers/2mindril.cpp b/src/mame/drivers/2mindril.cpp index 201ad89c7f3..30746694ebe 100644 --- a/src/mame/drivers/2mindril.cpp +++ b/src/mame/drivers/2mindril.cpp @@ -445,7 +445,7 @@ MACHINE_RESET_MEMBER(_2mindril_state,drill) m_irq_reg = 0; } -static MACHINE_CONFIG_START( drill, _2mindril_state ) +static MACHINE_CONFIG_START( drill ) MCFG_CPU_ADD("maincpu", M68000, 16000000 ) MCFG_CPU_PROGRAM_MAP(drill_map) diff --git a/src/mame/drivers/30test.cpp b/src/mame/drivers/30test.cpp index 264603adad2..a54d5af72d6 100644 --- a/src/mame/drivers/30test.cpp +++ b/src/mame/drivers/30test.cpp @@ -237,7 +237,7 @@ void namco_30test_state::machine_reset() } -static MACHINE_CONFIG_START( 30test, namco_30test_state ) +static MACHINE_CONFIG_START( 30test ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", MC68HC11,MAIN_CLOCK/4) @@ -251,7 +251,7 @@ static MACHINE_CONFIG_START( 30test, namco_30test_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", 1056000, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", 1056000, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -269,4 +269,4 @@ ROM_START( 30test ) ROM_LOAD( "tt1-voi0.7p", 0x0000, 0x80000, CRC(b4fc5921) SHA1(92a88d5adb50dae48715847f12e88a35e37ef78c) ) ROM_END -GAMEL( 1997, 30test, 0, 30test, 30test, driver_device, 0, ROT0, "Namco", "30 Test (Remake)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK, layout_30test ) +GAMEL( 1997, 30test, 0, 30test, 30test, namco_30test_state, 0, ROT0, "Namco", "30 Test (Remake)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK, layout_30test ) diff --git a/src/mame/drivers/39in1.cpp b/src/mame/drivers/39in1.cpp index 49cd262b39b..45e24a02733 100644 --- a/src/mame/drivers/39in1.cpp +++ b/src/mame/drivers/39in1.cpp @@ -1572,7 +1572,7 @@ MACHINE_START_MEMBER(_39in1_state,60in1) pxa255_start(); } -static MACHINE_CONFIG_START( 39in1, _39in1_state ) +static MACHINE_CONFIG_START( 39in1 ) MCFG_CPU_ADD("maincpu", PXA255, 200000000) MCFG_CPU_PROGRAM_MAP(39in1_map) @@ -1718,11 +1718,11 @@ ROM_START( 19in1 ) ROM_LOAD16_WORD_SWAP( "19in1_eeprom.bin", 0x000, 0x200, NO_DUMP ) ROM_END -GAME(2004, 4in1a, 39in1, 39in1, 39in1, _39in1_state, 39in1, ROT270, "bootleg", "4 in 1 MAME bootleg (set 1, ver 3.00)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND) -GAME(2004, 4in1b, 39in1, 39in1, 39in1, _39in1_state, 39in1, ROT270, "bootleg", "4 in 1 MAME bootleg (set 2)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND) -GAME(2004, 19in1, 39in1, 39in1, 39in1, _39in1_state, 39in1, ROT270, "bootleg", "19 in 1 MAME bootleg", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND) -GAME(2004, 39in1, 0, 39in1, 39in1, _39in1_state, 39in1, ROT270, "bootleg", "39 in 1 MAME bootleg", MACHINE_IMPERFECT_SOUND) -GAME(2004, 48in1, 39in1, 39in1, 39in1, _39in1_state, 39in1, ROT270, "bootleg", "48 in 1 MAME bootleg (set 1, ver 3.09)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND) +GAME(2004, 4in1a, 39in1, 39in1, 39in1, _39in1_state, 39in1, ROT270, "bootleg", "4 in 1 MAME bootleg (set 1, ver 3.00)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND) +GAME(2004, 4in1b, 39in1, 39in1, 39in1, _39in1_state, 39in1, ROT270, "bootleg", "4 in 1 MAME bootleg (set 2)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND) +GAME(2004, 19in1, 39in1, 39in1, 39in1, _39in1_state, 39in1, ROT270, "bootleg", "19 in 1 MAME bootleg", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND) +GAME(2004, 39in1, 0, 39in1, 39in1, _39in1_state, 39in1, ROT270, "bootleg", "39 in 1 MAME bootleg", MACHINE_IMPERFECT_SOUND) +GAME(2004, 48in1, 39in1, 39in1, 39in1, _39in1_state, 39in1, ROT270, "bootleg", "48 in 1 MAME bootleg (set 1, ver 3.09)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND) GAME(2004, 48in1b, 39in1, 39in1, 39in1, _39in1_state, 39in1, ROT270, "bootleg", "48 in 1 MAME bootleg (set 2, ver 3.09, alt flash)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND) -GAME(2004, 48in1a, 39in1, 39in1, 39in1, _39in1_state, 39in1, ROT270, "bootleg", "48 in 1 MAME bootleg (set 3, ver 3.02)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND) -GAME(2004, 60in1, 39in1, 60in1, 39in1, _39in1_state, 39in1, ROT270, "bootleg", "60 in 1 MAME bootleg (ver 3.00)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND) +GAME(2004, 48in1a, 39in1, 39in1, 39in1, _39in1_state, 39in1, ROT270, "bootleg", "48 in 1 MAME bootleg (set 3, ver 3.02)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND) +GAME(2004, 60in1, 39in1, 60in1, 39in1, _39in1_state, 39in1, ROT270, "bootleg", "60 in 1 MAME bootleg (ver 3.00)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND) diff --git a/src/mame/drivers/3do.cpp b/src/mame/drivers/3do.cpp index db5db112604..0aba64cf887 100644 --- a/src/mame/drivers/3do.cpp +++ b/src/mame/drivers/3do.cpp @@ -154,7 +154,7 @@ void _3do_state::machine_reset() m_clio.cstatbits = 0x01; /* bit 0 = reset of clio caused by power on */ } -static MACHINE_CONFIG_START( 3do, _3do_state ) +static MACHINE_CONFIG_START( 3do ) /* Basic machine hardware */ MCFG_CPU_ADD( "maincpu", ARM7_BE, XTAL_50MHz/4 ) @@ -174,7 +174,7 @@ static MACHINE_CONFIG_START( 3do, _3do_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( 3do_pal, _3do_state ) +static MACHINE_CONFIG_START( 3do_pal ) /* Basic machine hardware */ MCFG_CPU_ADD("maincpu", ARM7_BE, XTAL_50MHz/4 ) @@ -248,9 +248,9 @@ ROM_END ***************************************************************************/ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -CONS( 1991, 3do, 0, 0, 3do, 3do, driver_device, 0, "The 3DO Company", "3DO (NTSC)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -CONS( 1991, 3do_pal, 3do, 0, 3do_pal, 3do, driver_device, 0, "The 3DO Company", "3DO (PAL)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +CONS( 1991, 3do, 0, 0, 3do, 3do, _3do_state, 0, "The 3DO Company", "3DO (NTSC)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +CONS( 1991, 3do_pal, 3do, 0, 3do_pal, 3do, _3do_state, 0, "The 3DO Company", "3DO (PAL)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -GAME( 1991, 3dobios, 0, 3do, 3do, driver_device, 0, ROT0, "The 3DO Company", "3DO Bios", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_IS_BIOS_ROOT ) -GAME( 199?, orbatak, 3dobios,3do, 3do, driver_device, 0, ROT0, "", "Orbatak (prototype)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +GAME( 1991, 3dobios, 0, 3do, 3do, _3do_state, 0, ROT0, "The 3DO Company", "3DO Bios", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_IS_BIOS_ROOT ) +GAME( 199?, orbatak, 3dobios,3do, 3do, _3do_state, 0, ROT0, "", "Orbatak (prototype)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/3x3puzzl.cpp b/src/mame/drivers/3x3puzzl.cpp index 814333ff455..7b9cb8ab12f 100644 --- a/src/mame/drivers/3x3puzzl.cpp +++ b/src/mame/drivers/3x3puzzl.cpp @@ -382,7 +382,7 @@ void _3x3puzzle_state::machine_reset() } -static MACHINE_CONFIG_START( _3x3puzzle, _3x3puzzle_state ) +static MACHINE_CONFIG_START( _3x3puzzle ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",M68000,MAIN_CLOCK) @@ -404,7 +404,7 @@ static MACHINE_CONFIG_START( _3x3puzzle, _3x3puzzle_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", XTAL_4MHz/4, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", XTAL_4MHz/4, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -503,6 +503,6 @@ ROM_END -GAME( 1998, 3x3puzzl, 0, _3x3puzzle, _3x3puzzle, driver_device, 0, ROT0, "Ace Enterprise", "3X3 Puzzle (Enterprise)", MACHINE_SUPPORTS_SAVE ) // 1998. 5. 28 -GAME( 1998, 3x3puzzla, 3x3puzzl, _3x3puzzle, _3x3puzzle, driver_device, 0, ROT0, "Ace Enterprise", "3X3 Puzzle (Normal)", MACHINE_SUPPORTS_SAVE ) // 1998. 5. 28 -GAME( 199?, casanova, 0, _3x3puzzle, casanova, driver_device, 0, ROT0, "Promat", "Casanova", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1998, 3x3puzzl, 0, _3x3puzzle, _3x3puzzle, _3x3puzzle_state, 0, ROT0, "Ace Enterprise", "3X3 Puzzle (Enterprise)", MACHINE_SUPPORTS_SAVE ) // 1998. 5. 28 +GAME( 1998, 3x3puzzla, 3x3puzzl, _3x3puzzle, _3x3puzzle, _3x3puzzle_state, 0, ROT0, "Ace Enterprise", "3X3 Puzzle (Normal)", MACHINE_SUPPORTS_SAVE ) // 1998. 5. 28 +GAME( 199?, casanova, 0, _3x3puzzle, casanova, _3x3puzzle_state, 0, ROT0, "Promat", "Casanova", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/4004clk.cpp b/src/mame/drivers/4004clk.cpp index db89509ff84..c9cb98538cb 100644 --- a/src/mame/drivers/4004clk.cpp +++ b/src/mame/drivers/4004clk.cpp @@ -142,7 +142,7 @@ void nixieclock_state::machine_start() save_pointer(NAME(m_nixie), 6); } -static MACHINE_CONFIG_START( 4004clk, nixieclock_state ) +static MACHINE_CONFIG_START( 4004clk ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",I4004, XTAL_5MHz / 8) @@ -185,5 +185,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -SYST( 2008, 4004clk, 0, 0, 4004clk, 4004clk, driver_device, 0, "John L. Weinrich", "4004 Nixie Clock", MACHINE_SUPPORTS_SAVE ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +SYST( 2008, 4004clk, 0, 0, 4004clk, 4004clk, nixieclock_state, 0, "John L. Weinrich", "4004 Nixie Clock", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/40love.cpp b/src/mame/drivers/40love.cpp index 4ab8a49dc7f..a3ebd11ea5d 100644 --- a/src/mame/drivers/40love.cpp +++ b/src/mame/drivers/40love.cpp @@ -1046,7 +1046,7 @@ MACHINE_RESET_MEMBER(fortyl_state,undoukai) } } -static MACHINE_CONFIG_START( 40love, fortyl_state ) +static MACHINE_CONFIG_START( 40love ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80,8000000/2) /* OK */ @@ -1105,7 +1105,7 @@ static MACHINE_CONFIG_START( 40love, fortyl_state ) 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( undoukai, fortyl_state ) +static MACHINE_CONFIG_START( undoukai ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80,8000000/2) @@ -1279,6 +1279,6 @@ ROM_START( undoukai ) ROM_LOAD( "a17-18.23v", 0x0c00, 0x0400, CRC(3023a1da) SHA1(08ce4c6e99d04b358d66f0588852311d07183619) ) /* ??? */ ROM_END -GAME( 1984, 40love, 0, 40love, 40love, fortyl_state, 40love, ROT0, "Taito Corporation", "Forty-Love", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1984, fieldday, 0, undoukai, undoukai, fortyl_state, undoukai, ROT0, "Taito Corporation", "Field Day", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, 40love, 0, 40love, 40love, fortyl_state, 40love, ROT0, "Taito Corporation", "Forty-Love", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1984, fieldday, 0, undoukai, undoukai, fortyl_state, undoukai, ROT0, "Taito Corporation", "Field Day", MACHINE_SUPPORTS_SAVE ) GAME( 1984, undoukai, fieldday, undoukai, undoukai, fortyl_state, undoukai, ROT0, "Taito Corporation", "The Undoukai (Japan)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/4dpi.cpp b/src/mame/drivers/4dpi.cpp index b7d359fc845..47603c27db2 100644 --- a/src/mame/drivers/4dpi.cpp +++ b/src/mame/drivers/4dpi.cpp @@ -227,7 +227,7 @@ ADDRESS_MAP_END MACHINE DRIVERS ***************************************************************************/ -static MACHINE_CONFIG_START( sgi_ip6, sgi_ip6_state ) +static MACHINE_CONFIG_START( sgi_ip6 ) MCFG_CPU_ADD( "maincpu", R3041, 20000000 ) // FIXME: Should be R2000 MCFG_R3000_ENDIANNESS(ENDIANNESS_BIG) MCFG_CPU_PROGRAM_MAP( sgi_ip6_map ) @@ -265,5 +265,5 @@ ROM_START( sgi_ip6 ) ROM_LOAD( "4d202031.bin", 0x000000, 0x040000, CRC(065a290a) SHA1(6f5738e79643f94901e6efe3612468d14177f65b) ) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ -COMP( 1988, sgi_ip6, 0, 0, sgi_ip6, sgi_ip6, sgi_ip6_state, sgi_ip6, "Silicon Graphics Inc", "4D/PI (R2000, 20MHz)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1988, sgi_ip6, 0, 0, sgi_ip6, sgi_ip6, sgi_ip6_state, sgi_ip6, "Silicon Graphics Inc", "4D/PI (R2000, 20MHz)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/4enlinea.cpp b/src/mame/drivers/4enlinea.cpp index 7651be0d2d6..93adb57bde7 100644 --- a/src/mame/drivers/4enlinea.cpp +++ b/src/mame/drivers/4enlinea.cpp @@ -258,10 +258,10 @@ const tiny_rom_entry *isa8_cga_4enlinea_device::device_rom_region() const return nullptr; } -const device_type ISA8_CGA_4ENLINEA = device_creator; +DEFINE_DEVICE_TYPE(ISA8_CGA_4ENLINEA, isa8_cga_4enlinea_device, "4enlinea_cga", "ISA8 CGA - 4enlinea") isa8_cga_4enlinea_device::isa8_cga_4enlinea_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - isa8_cga_device( mconfig, ISA8_CGA_4ENLINEA, "ISA8_CGA_4ENLINEA", tag, owner, clock, "4enlinea_cga", __FILE__) + isa8_cga_device( mconfig, ISA8_CGA_4ENLINEA, tag, owner, clock) { } @@ -489,7 +489,7 @@ INTERRUPT_GEN_MEMBER(_4enlinea_state::_4enlinea_audio_irq) device.execute().set_input_line(0, HOLD_LINE); } -static MACHINE_CONFIG_START( 4enlinea, _4enlinea_state ) +static MACHINE_CONFIG_START( 4enlinea ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, PRG_CPU_CLOCK) @@ -549,5 +549,5 @@ ROM_END * Game Drivers * ***********************************/ -/* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS */ -GAME( 1991, 4enlinea, 0, 4enlinea, 4enlinea, driver_device, 0, ROT0, "Compumatic", "Cuatro en Linea", MACHINE_NOT_WORKING ) +/* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS */ +GAME( 1991, 4enlinea, 0, 4enlinea, 4enlinea, _4enlinea_state, 0, ROT0, "Compumatic", "Cuatro en Linea", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/4enraya.cpp b/src/mame/drivers/4enraya.cpp index 199172c4f45..ecd60061d5f 100644 --- a/src/mame/drivers/4enraya.cpp +++ b/src/mame/drivers/4enraya.cpp @@ -423,7 +423,7 @@ void _4enraya_state::machine_reset() * Machine Drivers * ***********************************/ -static MACHINE_CONFIG_START( 4enraya, _4enraya_state ) +static MACHINE_CONFIG_START( 4enraya ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, MAIN_CLOCK/2) @@ -530,6 +530,6 @@ DRIVER_INIT_MEMBER(_4enraya_state, unkpacg) ***********************************/ /* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS */ -GAME( 1990, 4enraya, 0, 4enraya, 4enraya, driver_device, 0, ROT0, "IDSA", "4 En Raya (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, 4enrayaa, 4enraya, 4enraya, 4enraya, driver_device, 0, ROT0, "IDSA", "4 En Raya (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, 4enraya, 0, 4enraya, 4enraya, _4enraya_state, 0, ROT0, "IDSA", "4 En Raya (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, 4enrayaa, 4enraya, 4enraya, 4enraya, _4enraya_state, 0, ROT0, "IDSA", "4 En Raya (set 2)", MACHINE_SUPPORTS_SAVE ) GAME( 199?, unkpacg, 0, unkpacg, unkpacg, _4enraya_state, unkpacg, ROT0, "", "unknown Pac-Man gambling game", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/4roses.cpp b/src/mame/drivers/4roses.cpp index 8d7a41c02d4..e3e611cccb0 100644 --- a/src/mame/drivers/4roses.cpp +++ b/src/mame/drivers/4roses.cpp @@ -353,7 +353,7 @@ GFXDECODE_END * Machine Drivers * **************************/ -static MACHINE_CONFIG_START( 4roses, _4roses_state ) +static MACHINE_CONFIG_START( 4roses ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M65C02, MASTER_CLOCK/8) /* 2MHz, guess */ MCFG_CPU_PROGRAM_MAP(4roses_map) @@ -465,7 +465,7 @@ DRIVER_INIT_MEMBER(_4roses_state,4roses) * Game Drivers * *************************/ -/* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS */ +/* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS */ GAME( 1999, 4roses, 0, 4roses, 4roses, _4roses_state, 4roses, ROT0, "", "Four Roses (encrypted, set 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_WRONG_COLORS | MACHINE_UNEMULATED_PROTECTION | MACHINE_NO_SOUND | MACHINE_NOT_WORKING ) GAME( 1999, 4rosesa, 4roses, 4roses, 4roses, _4roses_state, 4roses, ROT0, "", "Four Roses (encrypted, set 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_WRONG_COLORS | MACHINE_UNEMULATED_PROTECTION | MACHINE_NO_SOUND | MACHINE_NOT_WORKING ) GAME( 1999, rugby, 0, 4roses, 4roses, _4roses_state, 4roses, ROT0, "C.M.C.", "Rugby? (four roses hardware)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_WRONG_COLORS | MACHINE_UNEMULATED_PROTECTION | MACHINE_NO_SOUND | MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/5clown.cpp b/src/mame/drivers/5clown.cpp index 3fad2e4af5a..2b00a245855 100644 --- a/src/mame/drivers/5clown.cpp +++ b/src/mame/drivers/5clown.cpp @@ -1014,7 +1014,7 @@ GFXDECODE_END * Machine Drivers * *************************/ -static MACHINE_CONFIG_START( fclown, _5clown_state ) +static MACHINE_CONFIG_START( fclown ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, MASTER_CLOCK/8) /* guess, seems ok */ @@ -1060,7 +1060,7 @@ static MACHINE_CONFIG_START( fclown, _5clown_state ) MCFG_SOUND_ADD("ay8910", AY8910, MASTER_CLOCK/8) /* guess, seems ok */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) - MCFG_OKIM6295_ADD("oki6295", MASTER_CLOCK/12, OKIM6295_PIN7_LOW) /* guess, seems ok; pin7 guessed, seems ok */ + MCFG_OKIM6295_ADD("oki6295", MASTER_CLOCK/12, PIN7_LOW) /* guess, seems ok; pin7 guessed, seems ok */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.20) MACHINE_CONFIG_END @@ -1225,7 +1225,7 @@ DRIVER_INIT_MEMBER(_5clown_state,fclown) * Game Drivers * *************************/ -/* YEAR NAME PARENT MACHINE INPUT INIT ROT COMPANY FULLNAME FLAGS... */ +// YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS... GAME( 1993, 5clown, 0, fclown, fclown, _5clown_state, fclown, ROT0, "IGS", "Five Clown (English, set 1)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) GAME( 1993, 5clowna, 5clown, fclown, fclown, _5clown_state, fclown, ROT0, "IGS", "Five Clown (English, set 2)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) GAME( 1993, 5clownsp, 5clown, fclown, fclown, _5clown_state, fclown, ROT0, "IGS", "Five Clown (Spanish hack)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/68ksbc.cpp b/src/mame/drivers/68ksbc.cpp index ad824e11f61..507fb13f65a 100644 --- a/src/mame/drivers/68ksbc.cpp +++ b/src/mame/drivers/68ksbc.cpp @@ -70,7 +70,7 @@ WRITE_LINE_MEMBER(c68ksbc_state::write_acia_clock) m_acia->write_rxc(state); } -static MACHINE_CONFIG_START( c68ksbc, c68ksbc_state ) +static MACHINE_CONFIG_START( c68ksbc ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 8000000) // text says 8MHz, schematic says 10MHz MCFG_CPU_PROGRAM_MAP(c68ksbc_mem) @@ -95,5 +95,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 2002, 68ksbc, 0, 0, c68ksbc, c68ksbc, driver_device, 0, "Wichit Sirichote", "68k Single Board Computer", MACHINE_NO_SOUND_HW) +/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ +COMP( 2002, 68ksbc, 0, 0, c68ksbc, c68ksbc, c68ksbc_state, 0, "Wichit Sirichote", "68k Single Board Computer", MACHINE_NO_SOUND_HW) diff --git a/src/mame/drivers/8080bw.cpp b/src/mame/drivers/8080bw.cpp index 1818a769326..145d7a7c415 100644 --- a/src/mame/drivers/8080bw.cpp +++ b/src/mame/drivers/8080bw.cpp @@ -408,7 +408,7 @@ INPUT_PORTS_END /* same as regular invaders, but with a color board added */ -static MACHINE_CONFIG_DERIVED_CLASS( invadpt2, mw8080bw_root, _8080bw_state ) +static MACHINE_CONFIG_DERIVED( invadpt2, mw8080bw_root ) /* basic machine hardware */ MCFG_CPU_MODIFY("maincpu") @@ -451,7 +451,7 @@ static ADDRESS_MAP_START( spacerng_io_map, AS_IO, 8, _8080bw_state ) AM_RANGE(0x06, 0x06) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w) ADDRESS_MAP_END -static MACHINE_CONFIG_DERIVED_CLASS( spacerng, invadpt2, _8080bw_state ) +static MACHINE_CONFIG_DERIVED( spacerng, invadpt2 ) /* basic machine hardware */ MCFG_CPU_MODIFY("maincpu") @@ -492,7 +492,7 @@ static INPUT_PORTS_START( spcewars ) PORT_DIPSETTING( 0x08, "2000" ) INPUT_PORTS_END -static MACHINE_CONFIG_DERIVED_CLASS( spcewars, mw8080bw_root, _8080bw_state ) +static MACHINE_CONFIG_DERIVED( spcewars, mw8080bw_root ) /* basic machine hardware */ MCFG_CPU_MODIFY("maincpu") @@ -600,7 +600,7 @@ static INPUT_PORTS_START( astropal ) PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNKNOWN ) INPUT_PORTS_END -static MACHINE_CONFIG_DERIVED_CLASS( astropal, invaders, _8080bw_state ) +static MACHINE_CONFIG_DERIVED( astropal, invaders ) /* basic machine hardware */ MCFG_CPU_MODIFY("maincpu") @@ -651,7 +651,7 @@ static INPUT_PORTS_START( cosmo ) PORT_DIPUNKNOWN_DIPLOC( 0x80, 0x80, "SW1:8" ) /* must be HIGH normally or the joystick won't work */ INPUT_PORTS_END -static MACHINE_CONFIG_DERIVED_CLASS( cosmo, mw8080bw_root, _8080bw_state ) +static MACHINE_CONFIG_DERIVED( cosmo, mw8080bw_root ) /* basic machine hardware */ MCFG_CPU_MODIFY("maincpu") @@ -808,7 +808,7 @@ static ADDRESS_MAP_START( spacecom_io_map, AS_IO, 8, _8080bw_state ) AM_RANGE(0x44, 0x44) AM_READ_PORT("IN2") AM_WRITE(invaders_audio_2_w) ADDRESS_MAP_END -MACHINE_CONFIG_START( spacecom, _8080bw_state ) +MACHINE_CONFIG_START( spacecom ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8080A, XTAL_18MHz / 10) // divider guessed @@ -920,7 +920,7 @@ static INPUT_PORTS_START( invrvnge ) INPUT_PORTS_END -static MACHINE_CONFIG_DERIVED_CLASS( invrvnge, mw8080bw_root, _8080bw_state ) +static MACHINE_CONFIG_DERIVED( invrvnge, mw8080bw_root ) /* basic machine hardware */ MCFG_CPU_MODIFY("maincpu") @@ -1058,7 +1058,7 @@ static ADDRESS_MAP_START( starw1_io_map, AS_IO, 8, _8080bw_state ) AM_RANGE(0x07, 0x07) AM_WRITENOP /* writes 89 at boot */ ADDRESS_MAP_END -static MACHINE_CONFIG_DERIVED_CLASS( starw1, invadpt2, _8080bw_state ) +static MACHINE_CONFIG_DERIVED( starw1, invadpt2 ) MCFG_CPU_MODIFY("maincpu") MCFG_CPU_IO_MAP(starw1_io_map) MACHINE_CONFIG_END @@ -1097,7 +1097,7 @@ static INPUT_PORTS_START( lrescue ) PORT_DIPUNUSED_DIPLOC( 0x80, 0x00, "SW1:8" ) INPUT_PORTS_END -static MACHINE_CONFIG_DERIVED_CLASS( lrescue, mw8080bw_root, _8080bw_state ) +static MACHINE_CONFIG_DERIVED( lrescue, mw8080bw_root ) /* basic machine hardware */ MCFG_CPU_MODIFY("maincpu") @@ -1126,7 +1126,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( lrescue, mw8080bw_root, _8080bw_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) MACHINE_CONFIG_END -MACHINE_CONFIG_START( escmars, _8080bw_state ) +MACHINE_CONFIG_START( escmars ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8080, XTAL_18MHz / 10) // divider guessed @@ -1224,7 +1224,7 @@ static ADDRESS_MAP_START( cosmicmo_io_map, AS_IO, 8, _8080bw_state ) AM_RANGE(0x06, 0x06) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w) ADDRESS_MAP_END -static MACHINE_CONFIG_DERIVED_CLASS( cosmicmo, mw8080bw_root, _8080bw_state ) +static MACHINE_CONFIG_DERIVED( cosmicmo, mw8080bw_root ) /* basic machine hardware */ MCFG_CPU_MODIFY("maincpu") @@ -1374,7 +1374,7 @@ MACHINE_START_MEMBER(_8080bw_state,rollingc) MACHINE_START_CALL_MEMBER(mw8080bw); } -static MACHINE_CONFIG_DERIVED_CLASS( rollingc, mw8080bw_root, _8080bw_state ) +static MACHINE_CONFIG_DERIVED( rollingc, mw8080bw_root ) /* basic machine hardware */ MCFG_CPU_MODIFY("maincpu") @@ -1514,7 +1514,7 @@ MACHINE_RESET_MEMBER(_8080bw_state,schaser) MACHINE_RESET_CALL_MEMBER(mw8080bw); } -static MACHINE_CONFIG_DERIVED_CLASS( schaser, mw8080bw_root, _8080bw_state ) +static MACHINE_CONFIG_DERIVED( schaser, mw8080bw_root ) /* basic machine hardware */ MCFG_CPU_REPLACE("maincpu",I8080,1996800) /* 19.968MHz / 10 */ @@ -1637,7 +1637,7 @@ MACHINE_START_MEMBER(_8080bw_state,schasercv) MACHINE_START_CALL_MEMBER(mw8080bw); } -static MACHINE_CONFIG_DERIVED_CLASS( schasercv, mw8080bw_root, _8080bw_state ) +static MACHINE_CONFIG_DERIVED( schasercv, mw8080bw_root ) /* basic machine hardware */ MCFG_CPU_MODIFY("maincpu") @@ -1728,7 +1728,7 @@ MACHINE_START_MEMBER(_8080bw_state,sflush) MACHINE_START_CALL_MEMBER(mw8080bw); } -static MACHINE_CONFIG_DERIVED_CLASS( sflush, mw8080bw_root, _8080bw_state ) +static MACHINE_CONFIG_DERIVED( sflush, mw8080bw_root ) /* basic machine hardware */ MCFG_CPU_REPLACE("maincpu",M6800,1500000) // ? @@ -1831,7 +1831,7 @@ static INPUT_PORTS_START( lupin3a ) PORT_DIPSETTING( 0x10, DEF_STR( Japanese ) ) INPUT_PORTS_END -static MACHINE_CONFIG_DERIVED_CLASS( lupin3, mw8080bw_root, _8080bw_state ) +static MACHINE_CONFIG_DERIVED( lupin3, mw8080bw_root ) /* basic machine hardware */ MCFG_CPU_MODIFY("maincpu") @@ -1995,7 +1995,7 @@ static INPUT_PORTS_START( polaris ) PORT_ADJUSTER( 90, "Sub Volume VR3" ) INPUT_PORTS_END -static MACHINE_CONFIG_DERIVED_CLASS( polaris, mw8080bw_root, _8080bw_state ) +static MACHINE_CONFIG_DERIVED( polaris, mw8080bw_root ) /* basic machine hardware */ MCFG_CPU_REPLACE("maincpu",I8080,1996800) /* 19.968MHz / 10 */ @@ -2127,7 +2127,7 @@ static INPUT_PORTS_START( ballbomb ) PORT_DIPUNKNOWN_DIPLOC( 0x80, 0x00, "SW1:8" ) INPUT_PORTS_END -static MACHINE_CONFIG_DERIVED_CLASS( ballbomb, mw8080bw_root, _8080bw_state ) +static MACHINE_CONFIG_DERIVED( ballbomb, mw8080bw_root ) /* basic machine hardware */ MCFG_CPU_MODIFY("maincpu") @@ -2207,7 +2207,7 @@ static INPUT_PORTS_START( yosakdon ) INPUT_PORTS_END -static MACHINE_CONFIG_DERIVED_CLASS( yosakdon, mw8080bw_root, _8080bw_state ) +static MACHINE_CONFIG_DERIVED( yosakdon, mw8080bw_root ) /* basic machine hardware */ MCFG_CPU_MODIFY("maincpu") @@ -2370,7 +2370,7 @@ static ADDRESS_MAP_START( indianbtbr_io_map, AS_IO, 8, _8080bw_state ) ADDRESS_MAP_END -static MACHINE_CONFIG_DERIVED_CLASS( indianbt, mw8080bw_root, _8080bw_state ) +static MACHINE_CONFIG_DERIVED( indianbt, mw8080bw_root ) /* basic machine hardware */ MCFG_CPU_MODIFY("maincpu") @@ -2395,7 +2395,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( indianbt, mw8080bw_root, _8080bw_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) MACHINE_CONFIG_END -static MACHINE_CONFIG_DERIVED_CLASS( indianbtbr, mw8080bw_root, _8080bw_state ) +static MACHINE_CONFIG_DERIVED( indianbtbr, mw8080bw_root ) /* basic machine hardware */ MCFG_CPU_MODIFY("maincpu") @@ -2470,7 +2470,7 @@ static INPUT_PORTS_START( steelwkr ) INPUT_PORTS_END -static MACHINE_CONFIG_DERIVED_CLASS( steelwkr, mw8080bw_root, _8080bw_state ) +static MACHINE_CONFIG_DERIVED( steelwkr, mw8080bw_root ) /* basic machine hardware */ MCFG_CPU_MODIFY("maincpu") @@ -2642,7 +2642,7 @@ static ADDRESS_MAP_START( shuttlei_io_map, AS_IO, 8, _8080bw_state ) ADDRESS_MAP_END -MACHINE_CONFIG_START( shuttlei, _8080bw_state ) +MACHINE_CONFIG_START( shuttlei ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8080, XTAL_18MHz / 10) // divider guessed @@ -2766,7 +2766,7 @@ static INPUT_PORTS_START( darthvdr ) INVADERS_CAB_TYPE_PORT INPUT_PORTS_END -static MACHINE_CONFIG_DERIVED_CLASS( darthvdr, mw8080bw_root, _8080bw_state ) +static MACHINE_CONFIG_DERIVED( darthvdr, mw8080bw_root ) /* basic machine hardware */ MCFG_CPU_MODIFY("maincpu") @@ -2839,7 +2839,7 @@ static INPUT_PORTS_START( vortex ) PORT_DIPSETTING( 0x80, DEF_STR( 1C_1C ) ) INPUT_PORTS_END -MACHINE_CONFIG_DERIVED_CLASS( vortex, mw8080bw_root, _8080bw_state ) +MACHINE_CONFIG_DERIVED( vortex, mw8080bw_root ) /* basic machine hardware */ MCFG_CPU_MODIFY("maincpu") @@ -3147,7 +3147,7 @@ MACHINE_START_MEMBER(_8080bw_state, claybust) MACHINE_START_CALL_MEMBER(mw8080bw); } -MACHINE_CONFIG_DERIVED_CLASS( claybust, invaders, _8080bw_state ) +MACHINE_CONFIG_DERIVED( claybust, invaders ) /* basic machine hardware */ MCFG_CPU_MODIFY("maincpu") @@ -3262,7 +3262,7 @@ static INPUT_PORTS_START( attackfc ) INPUT_PORTS_END -static MACHINE_CONFIG_DERIVED_CLASS( attackfc, mw8080bw_root, _8080bw_state ) +static MACHINE_CONFIG_DERIVED( attackfc, mw8080bw_root ) /* basic machine hardware */ MCFG_CPU_MODIFY("maincpu") @@ -3400,7 +3400,7 @@ WRITE8_MEMBER(_8080bw_state::invmulti_bank_w) membank("bank2")->set_entry(bank); } -MACHINE_CONFIG_DERIVED_CLASS( invmulti, invaders, _8080bw_state ) +MACHINE_CONFIG_DERIVED( invmulti, invaders ) /* basic machine hardware */ MCFG_CPU_MODIFY("maincpu") @@ -3743,7 +3743,7 @@ ROM_START( spcewarla ) // PCB was in a Space Invarders Part II cabinet ROM_REGION( 0x0800, "proms", 0 ) /* color map */ ROM_LOAD( "cv01_1.bin", 0x0000, 0x0400, BAD_DUMP CRC(aac24f34) SHA1(ad110e776547fb48baac568bb50d61854537ca34) ) // the dumper didn't actually dump this yet - ROM_LOAD( "cv02_2.bin", 0x0400, 0x0400, BAD_DUMP CRC(2bdf83a0) SHA1(01ffbd43964c41987e7d44816271308f9a70802b) ) // the dumper didn't actually dump this yet + ROM_LOAD( "cv02_2.bin", 0x0400, 0x0400, BAD_DUMP CRC(2bdf83a0) SHA1(01ffbd43964c41987e7d44816271308f9a70802b) ) // the dumper didn't actually dump this yet ROM_END ROM_START( spacewr3 ) @@ -4995,150 +4995,150 @@ ROM_START( attackfc ) ROM_END -/* board # rom parent machine inp init monitor, .. */ +// year rom parent machine inp state init monitor ... // Taito games (+clones), starting with Space Invaders -GAME( 1978, sisv1, invaders, invaders, sitv, driver_device, 0, ROT270, "Taito", "Space Invaders (SV Version rev 1)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1978, sisv2, invaders, invaders, sitv, driver_device, 0, ROT270, "Taito", "Space Invaders (SV Version rev 2)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1978, sisv3, invaders, invaders, sitv, driver_device, 0, ROT270, "Taito", "Space Invaders (SV Version rev 3)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1978, sisv, invaders, invaders, sitv, driver_device, 0, ROT270, "Taito", "Space Invaders (SV Version rev 4)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAMEL(1978, sitv1, invaders, invaders, sitv, driver_device, 0, ROT270, "Taito", "Space Invaders (TV Version rev 1)", MACHINE_SUPPORTS_SAVE, layout_invaders ) -GAMEL(1978, sitv, invaders, invaders, sitv, driver_device, 0, ROT270, "Taito", "Space Invaders (TV Version rev 2)", MACHINE_SUPPORTS_SAVE, layout_invaders ) -GAME( 1979, sicv, invaders, invadpt2, sicv, driver_device, 0, ROT270, "Taito", "Space Invaders (CV Version, larger roms)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1979, sicv1, invaders, invadpt2, sicv, driver_device, 0, ROT270, "Taito", "Space Invaders (CV Version, smaller roms)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAMEL(1978, invadrmr, invaders, invaders, invadrmr, driver_device, 0, ROT270, "Taito / Model Racing", "Space Invaders (Model Racing)", MACHINE_SUPPORTS_SAVE, layout_invaders ) // unclassified, licensed or bootleg? -GAMEL(1978, invaderl, invaders, invaders, sicv, driver_device, 0, ROT270, "Taito / Logitec", "Space Invaders (Logitec)", MACHINE_SUPPORTS_SAVE, layout_invaders ) // unclassified, licensed or bootleg? -GAMEL(1978, spcewars, invaders, spcewars, spcewars, driver_device, 0, ROT270, "Taito / Sanritsu", "Space War (Sanritsu)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_invaders ) // unclassified, licensed or bootleg? -GAME (1979, spcewarla, invaders, spcewarla, spcewars, driver_device, 0, ROT270, "bootleg (Leisure and Allied)", "Space War (Leisure and Allied)", MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // unclassified, licensed or bootleg? -GAMEL(1978, spceking, invaders, invaders, sicv, driver_device, 0, ROT270, "Taito / Leijac Corporation", "Space King", MACHINE_SUPPORTS_SAVE, layout_invaders ) // unclassified, licensed or bootleg? -GAMEL(1979, cosmicmo, invaders, cosmicmo, cosmicmo, driver_device, 0, ROT270, "Taito / Universal", "Cosmic Monsters (version II)", MACHINE_SUPPORTS_SAVE, layout_cosmicm ) // unclassified, licensed or bootleg? -GAMEL(1979, cosmicm2, invaders, cosmicmo, cosmicmo, driver_device, 0, ROT270, "Taito / Universal", "Cosmic Monsters 2", MACHINE_SUPPORTS_SAVE, layout_cosmicm ) // unclassified, licensed or bootleg? -GAMEL(1980?,sinvzen, invaders, invaders, sinvzen, driver_device, 0, ROT270, "Taito / Zenitone-Microsec Ltd.", "Super Invaders (Zenitone-Microsec)", MACHINE_SUPPORTS_SAVE, layout_invaders ) // unclassified, licensed or bootleg? -GAMEL(1980, ultrainv, invaders, invaders, sicv, driver_device, 0, ROT270, "Taito / Konami", "Ultra Invaders", MACHINE_SUPPORTS_SAVE, layout_invaders ) // unclassified, licensed or bootleg? -GAMEL(1978, spaceatt, invaders, invaders, sicv, driver_device, 0, ROT270, "bootleg (Video Games GmbH)", "Space Attack (bootleg of Space Invaders)", MACHINE_SUPPORTS_SAVE, layout_invaders ) -GAMEL(1978, spaceattbp, invaders, invaders, sicv, driver_device, 0, ROT270, "bootleg (Video Games GmbH)", "Space Attack (bproms)(bootleg of Space Invaders)", MACHINE_SUPPORTS_SAVE, layout_invaders ) -GAMEL(1978, spaceatt2k, invaders, invaders, sicv, driver_device, 0, ROT270, "bootleg (Video Games GmbH)", "Space Attack (2k roms)(bootleg of Space Invaders)", MACHINE_SUPPORTS_SAVE, layout_invaders ) -GAMEL(1978, cosmicin, invaders, invaders, sicv, driver_device, 0, ROT270, "bootleg", "Cosmic Invaders (bootleg of Space Invaders)", MACHINE_SUPPORTS_SAVE, layout_invaders ) -GAMEL(1978, galmonst, invaders, invaders, sicv, driver_device, 0, ROT270, "bootleg (Laguna S.A.)", "Galaxy Monsters (Laguna S.A. Spanish bootleg of Space Invaders)", MACHINE_SUPPORTS_SAVE, layout_invaders ) -GAMEL(1980, spaceat2, invaders, invaders, spaceat2, driver_device, 0, ROT270, "bootleg (Video Games UK)", "Space Attack II (bootleg of Super Invaders)", MACHINE_SUPPORTS_SAVE, layout_invaders ) // bootleg of Zenitone-Microsec Super Invaders -GAMEL(1979, spacecom, invaders, spacecom, spacecom, _8080bw_state, spacecom, ROT270, "bootleg", "Space Combat (bootleg of Space Invaders)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_spacecom ) -GAME( 1978, spacerng, invaders, spacerng, sitv, driver_device, 0, ROT90, "bootleg (Leisure Time Electronics)", "Space Ranger", MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) // many modifications -GAMEL(19??, invasion, invaders, invaders, invasion, driver_device, 0, ROT270, "bootleg (Sidam)", "Invasion (Sidam)", MACHINE_SUPPORTS_SAVE, layout_invaders ) -GAMEL(19??, invasiona, invaders, invaders, invasion, driver_device, 0, ROT270, "bootleg", "Invasion (bootleg set 1, normal graphics)", MACHINE_SUPPORTS_SAVE, layout_invaders ) // has Sidam replaced with 'Ufo Monster Attack' and standard GFX -GAMEL(19??, invasionb, invaders, invaders, invasion, driver_device, 0, ROT270, "bootleg", "Invasion (bootleg set 2, no copyright)", MACHINE_SUPPORTS_SAVE, layout_invaders ) -GAMEL(19??, invasionrz, invaders, invaders, invasion, driver_device, 0, ROT270, "bootleg (R Z SRL Bologna)", "Invasion (bootleg set 3, R Z SRL Bologna)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING, layout_invaders ) -GAMEL(19??, invasionrza,invaders, invaders, invasion, driver_device, 0, ROT270, "bootleg (R Z SRL Bologna)", "Invasion (bootleg set 4, R Z SRL Bologna)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING, layout_invaders ) -GAMEL(19??, invadersem, invaders, invaders, sitv, driver_device, 0, ROT270, "Electromar", "Space Invaders (Electromar, Spanish)", MACHINE_SUPPORTS_SAVE, layout_invaders ) // possibly licensed -GAMEL(1978, superinv, invaders, invaders, superinv, driver_device, 0, ROT270, "bootleg", "Super Invaders (bootleg set 1)", MACHINE_SUPPORTS_SAVE, layout_invaders ) // not related to Zenitone-Microsec version -GAMEL(1978, sinvemag, invaders, invaders, sinvemag, driver_device, 0, ROT270, "bootleg (Emag)", "Super Invaders (bootleg set 2)", MACHINE_SUPPORTS_SAVE, layout_invaders ) // not related to Zenitone-Microsec version -GAMEL(1980, searthin, invaders, invaders, searthin, driver_device, 0, ROT270, "bootleg (Competitive Video)", "Super Earth Invasion (set 1)", MACHINE_SUPPORTS_SAVE, layout_invaders ) -GAMEL(1980, searthina, invaders, invaders, searthin, driver_device, 0, ROT270, "bootleg (Competitive Video)", "Super Earth Invasion (set 2)", MACHINE_SUPPORTS_SAVE, layout_invaders ) -GAMEL(1980, searthie, invaders, invaders, searthin, driver_device, 0, ROT270, "bootleg (Electrocoin)", "Super Earth Invasion (set 3)", MACHINE_SUPPORTS_SAVE, layout_invaders ) -GAMEL(19??, alieninv, invaders, invaders, alieninv, driver_device, 0, ROT270, "bootleg (Margamatics)", "Alien Invasion", MACHINE_SUPPORTS_SAVE, layout_invaders ) -GAMEL(19??, alieninvp2, invaders, invaders, searthin, driver_device, 0, ROT270, "bootleg", "Alien Invasion Part II", MACHINE_SUPPORTS_SAVE, layout_invaders ) -GAMEL(1979, jspecter, invaders, invaders, jspecter, driver_device, 0, ROT270, "bootleg (Jatre)", "Jatre Specter (set 1)", MACHINE_SUPPORTS_SAVE, layout_invaders ) -GAMEL(1979, jspecter2, invaders, invaders, jspecter, driver_device, 0, ROT270, "bootleg (Jatre)", "Jatre Specter (set 2)", MACHINE_SUPPORTS_SAVE, layout_invaders ) -GAMEL(1978, spacewr3, invaders, spcewars, sicv, driver_device, 0, ROT270, "bootleg", "Space War Part 3", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_invaders ) // unrelated to Sanritsu's version? -GAMEL(1978, swipeout, invaders, spcewars, sicv, driver_device, 0, ROT270, "bootleg (Beyer and Brown)", "Space Wipeout", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_invaders ) -GAMEL(1978, invader4, invaders, invaders, sicv, driver_device, 0, ROT270, "bootleg", "Space Invaders Part Four", MACHINE_SUPPORTS_SAVE, layout_invaders ) -GAME( 1978, darthvdr, invaders, darthvdr, darthvdr, driver_device, 0, ROT270, "bootleg", "Darth Vader (bootleg of Space Invaders)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) -GAMEL(19??, tst_invd, invaders, invaders, sicv, driver_device, 0, ROT0, "", "Space Invaders Test ROM", MACHINE_SUPPORTS_SAVE, layout_invaders ) +GAME( 1978, sisv1, invaders, invaders, sitv, mw8080bw_state, 0, ROT270, "Taito", "Space Invaders (SV Version rev 1)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1978, sisv2, invaders, invaders, sitv, mw8080bw_state, 0, ROT270, "Taito", "Space Invaders (SV Version rev 2)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1978, sisv3, invaders, invaders, sitv, mw8080bw_state, 0, ROT270, "Taito", "Space Invaders (SV Version rev 3)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1978, sisv, invaders, invaders, sitv, mw8080bw_state, 0, ROT270, "Taito", "Space Invaders (SV Version rev 4)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAMEL(1978, sitv1, invaders, invaders, sitv, mw8080bw_state, 0, ROT270, "Taito", "Space Invaders (TV Version rev 1)", MACHINE_SUPPORTS_SAVE, layout_invaders ) +GAMEL(1978, sitv, invaders, invaders, sitv, mw8080bw_state, 0, ROT270, "Taito", "Space Invaders (TV Version rev 2)", MACHINE_SUPPORTS_SAVE, layout_invaders ) +GAME( 1979, sicv, invaders, invadpt2, sicv, _8080bw_state, 0, ROT270, "Taito", "Space Invaders (CV Version, larger roms)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1979, sicv1, invaders, invadpt2, sicv, _8080bw_state, 0, ROT270, "Taito", "Space Invaders (CV Version, smaller roms)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAMEL(1978, invadrmr, invaders, invaders, invadrmr, mw8080bw_state, 0, ROT270, "Taito / Model Racing", "Space Invaders (Model Racing)", MACHINE_SUPPORTS_SAVE, layout_invaders ) // unclassified, licensed or bootleg? +GAMEL(1978, invaderl, invaders, invaders, sicv, mw8080bw_state, 0, ROT270, "Taito / Logitec", "Space Invaders (Logitec)", MACHINE_SUPPORTS_SAVE, layout_invaders ) // unclassified, licensed or bootleg? +GAMEL(1978, spcewars, invaders, spcewars, spcewars, _8080bw_state, 0, ROT270, "Taito / Sanritsu", "Space War (Sanritsu)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_invaders ) // unclassified, licensed or bootleg? +GAME (1979, spcewarla, invaders, spcewarla, spcewars, _8080bw_state, 0, ROT270, "bootleg (Leisure and Allied)", "Space War (Leisure and Allied)", MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // unclassified, licensed or bootleg? +GAMEL(1978, spceking, invaders, invaders, sicv, mw8080bw_state, 0, ROT270, "Taito / Leijac Corporation", "Space King", MACHINE_SUPPORTS_SAVE, layout_invaders ) // unclassified, licensed or bootleg? +GAMEL(1979, cosmicmo, invaders, cosmicmo, cosmicmo, _8080bw_state, 0, ROT270, "Taito / Universal", "Cosmic Monsters (version II)", MACHINE_SUPPORTS_SAVE, layout_cosmicm ) // unclassified, licensed or bootleg? +GAMEL(1979, cosmicm2, invaders, cosmicmo, cosmicmo, _8080bw_state, 0, ROT270, "Taito / Universal", "Cosmic Monsters 2", MACHINE_SUPPORTS_SAVE, layout_cosmicm ) // unclassified, licensed or bootleg? +GAMEL(1980?,sinvzen, invaders, invaders, sinvzen, mw8080bw_state, 0, ROT270, "Taito / Zenitone-Microsec Ltd.", "Super Invaders (Zenitone-Microsec)", MACHINE_SUPPORTS_SAVE, layout_invaders ) // unclassified, licensed or bootleg? +GAMEL(1980, ultrainv, invaders, invaders, sicv, mw8080bw_state, 0, ROT270, "Taito / Konami", "Ultra Invaders", MACHINE_SUPPORTS_SAVE, layout_invaders ) // unclassified, licensed or bootleg? +GAMEL(1978, spaceatt, invaders, invaders, sicv, mw8080bw_state, 0, ROT270, "bootleg (Video Games GmbH)", "Space Attack (bootleg of Space Invaders)", MACHINE_SUPPORTS_SAVE, layout_invaders ) +GAMEL(1978, spaceattbp, invaders, invaders, sicv, mw8080bw_state, 0, ROT270, "bootleg (Video Games GmbH)", "Space Attack (bproms)(bootleg of Space Invaders)", MACHINE_SUPPORTS_SAVE, layout_invaders ) +GAMEL(1978, spaceatt2k, invaders, invaders, sicv, mw8080bw_state, 0, ROT270, "bootleg (Video Games GmbH)", "Space Attack (2k roms)(bootleg of Space Invaders)", MACHINE_SUPPORTS_SAVE, layout_invaders ) +GAMEL(1978, cosmicin, invaders, invaders, sicv, mw8080bw_state, 0, ROT270, "bootleg", "Cosmic Invaders (bootleg of Space Invaders)", MACHINE_SUPPORTS_SAVE, layout_invaders ) +GAMEL(1978, galmonst, invaders, invaders, sicv, mw8080bw_state, 0, ROT270, "bootleg (Laguna S.A.)", "Galaxy Monsters (Laguna S.A. Spanish bootleg of Space Invaders)", MACHINE_SUPPORTS_SAVE, layout_invaders ) +GAMEL(1980, spaceat2, invaders, invaders, spaceat2, mw8080bw_state, 0, ROT270, "bootleg (Video Games UK)", "Space Attack II (bootleg of Super Invaders)", MACHINE_SUPPORTS_SAVE, layout_invaders ) // bootleg of Zenitone-Microsec Super Invaders +GAMEL(1979, spacecom, invaders, spacecom, spacecom, _8080bw_state, spacecom, ROT270, "bootleg", "Space Combat (bootleg of Space Invaders)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_spacecom ) +GAME( 1978, spacerng, invaders, spacerng, sitv, _8080bw_state, 0, ROT90, "bootleg (Leisure Time Electronics)", "Space Ranger", MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) // many modifications +GAMEL(19??, invasion, invaders, invaders, invasion, mw8080bw_state, 0, ROT270, "bootleg (Sidam)", "Invasion (Sidam)", MACHINE_SUPPORTS_SAVE, layout_invaders ) +GAMEL(19??, invasiona, invaders, invaders, invasion, mw8080bw_state, 0, ROT270, "bootleg", "Invasion (bootleg set 1, normal graphics)", MACHINE_SUPPORTS_SAVE, layout_invaders ) // has Sidam replaced with 'Ufo Monster Attack' and standard GFX +GAMEL(19??, invasionb, invaders, invaders, invasion, mw8080bw_state, 0, ROT270, "bootleg", "Invasion (bootleg set 2, no copyright)", MACHINE_SUPPORTS_SAVE, layout_invaders ) +GAMEL(19??, invasionrz, invaders, invaders, invasion, mw8080bw_state, 0, ROT270, "bootleg (R Z SRL Bologna)", "Invasion (bootleg set 3, R Z SRL Bologna)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING, layout_invaders ) +GAMEL(19??, invasionrza,invaders, invaders, invasion, mw8080bw_state, 0, ROT270, "bootleg (R Z SRL Bologna)", "Invasion (bootleg set 4, R Z SRL Bologna)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING, layout_invaders ) +GAMEL(19??, invadersem, invaders, invaders, sitv, mw8080bw_state, 0, ROT270, "Electromar", "Space Invaders (Electromar, Spanish)", MACHINE_SUPPORTS_SAVE, layout_invaders ) // possibly licensed +GAMEL(1978, superinv, invaders, invaders, superinv, mw8080bw_state, 0, ROT270, "bootleg", "Super Invaders (bootleg set 1)", MACHINE_SUPPORTS_SAVE, layout_invaders ) // not related to Zenitone-Microsec version +GAMEL(1978, sinvemag, invaders, invaders, sinvemag, mw8080bw_state, 0, ROT270, "bootleg (Emag)", "Super Invaders (bootleg set 2)", MACHINE_SUPPORTS_SAVE, layout_invaders ) // not related to Zenitone-Microsec version +GAMEL(1980, searthin, invaders, invaders, searthin, mw8080bw_state, 0, ROT270, "bootleg (Competitive Video)", "Super Earth Invasion (set 1)", MACHINE_SUPPORTS_SAVE, layout_invaders ) +GAMEL(1980, searthina, invaders, invaders, searthin, mw8080bw_state, 0, ROT270, "bootleg (Competitive Video)", "Super Earth Invasion (set 2)", MACHINE_SUPPORTS_SAVE, layout_invaders ) +GAMEL(1980, searthie, invaders, invaders, searthin, mw8080bw_state, 0, ROT270, "bootleg (Electrocoin)", "Super Earth Invasion (set 3)", MACHINE_SUPPORTS_SAVE, layout_invaders ) +GAMEL(19??, alieninv, invaders, invaders, alieninv, mw8080bw_state, 0, ROT270, "bootleg (Margamatics)", "Alien Invasion", MACHINE_SUPPORTS_SAVE, layout_invaders ) +GAMEL(19??, alieninvp2, invaders, invaders, searthin, mw8080bw_state, 0, ROT270, "bootleg", "Alien Invasion Part II", MACHINE_SUPPORTS_SAVE, layout_invaders ) +GAMEL(1979, jspecter, invaders, invaders, jspecter, mw8080bw_state, 0, ROT270, "bootleg (Jatre)", "Jatre Specter (set 1)", MACHINE_SUPPORTS_SAVE, layout_invaders ) +GAMEL(1979, jspecter2, invaders, invaders, jspecter, mw8080bw_state, 0, ROT270, "bootleg (Jatre)", "Jatre Specter (set 2)", MACHINE_SUPPORTS_SAVE, layout_invaders ) +GAMEL(1978, spacewr3, invaders, spcewars, sicv, _8080bw_state, 0, ROT270, "bootleg", "Space War Part 3", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_invaders ) // unrelated to Sanritsu's version? +GAMEL(1978, swipeout, invaders, spcewars, sicv, _8080bw_state, 0, ROT270, "bootleg (Beyer and Brown)", "Space Wipeout", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_invaders ) +GAMEL(1978, invader4, invaders, invaders, sicv, mw8080bw_state, 0, ROT270, "bootleg", "Space Invaders Part Four", MACHINE_SUPPORTS_SAVE, layout_invaders ) +GAME( 1978, darthvdr, invaders, darthvdr, darthvdr, _8080bw_state, 0, ROT270, "bootleg", "Darth Vader (bootleg of Space Invaders)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) +GAMEL(19??, tst_invd, invaders, invaders, sicv, mw8080bw_state, 0, ROT0, "", "Space Invaders Test ROM", MACHINE_SUPPORTS_SAVE, layout_invaders ) // other Taito -GAME( 1979, invadpt2, 0, invadpt2, invadpt2, driver_device, 0, ROT270, "Taito", "Space Invaders Part II (Taito)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) -GAME( 1979, invadpt2br, invadpt2, invadpt2, invadpt2, driver_device, 0, ROT270, "Taito do Brasil", "Space Invaders Part II (Brazil)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) -GAME( 1980, invaddlx, invadpt2, invaders, invadpt2, driver_device, 0, ROT270, "Taito (Midway license)", "Space Invaders Deluxe", MACHINE_SUPPORTS_SAVE ) -GAME( 1979, moonbase, invadpt2, invadpt2, invadpt2, driver_device, 0, ROT270, "Taito / Nichibutsu", "Moon Base Zeta (set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) // this has a 'Taito Corp' string hidden away in the rom - to display it, press P1 Right+P1 Fire+2P Start then P1 Left+P1 Fire+P1 Start at the attract gameplay sequence -GAME( 1979, moonbasea, invadpt2, invadpt2, invadpt2, driver_device, 0, ROT270, "Taito / Nichibutsu", "Moon Base Zeta (set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) // this has the same string replaced with Nichibutsu, no other differences +GAME( 1979, invadpt2, 0, invadpt2, invadpt2, _8080bw_state, 0, ROT270, "Taito", "Space Invaders Part II (Taito)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) +GAME( 1979, invadpt2br, invadpt2, invadpt2, invadpt2, _8080bw_state, 0, ROT270, "Taito do Brasil", "Space Invaders Part II (Brazil)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) +GAME( 1980, invaddlx, invadpt2, invaders, invadpt2, mw8080bw_state, 0, ROT270, "Taito (Midway license)", "Space Invaders Deluxe", MACHINE_SUPPORTS_SAVE ) +GAME( 1979, moonbase, invadpt2, invadpt2, invadpt2, _8080bw_state, 0, ROT270, "Taito / Nichibutsu", "Moon Base Zeta (set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) // this has a 'Taito Corp' string hidden away in the rom - to display it, press P1 Right+P1 Fire+2P Start then P1 Left+P1 Fire+P1 Start at the attract gameplay sequence +GAME( 1979, moonbasea, invadpt2, invadpt2, invadpt2, _8080bw_state, 0, ROT270, "Taito / Nichibutsu", "Moon Base Zeta (set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) // this has the same string replaced with Nichibutsu, no other differences -GAME( 1980, spclaser, 0, invadpt2, spclaser, driver_device, 0, ROT270, "Taito", "Space Laser", MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE ) -GAME( 1980, intruder, spclaser, invadpt2, spclaser, driver_device, 0, ROT270, "Taito (Game Plan license)", "Intruder", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) -GAME( 1980, laser, spclaser, invadpt2, spclaser, driver_device, 0, ROT270, "bootleg (Leisure Time Electronics)", "Astro Laser (bootleg of Space Laser)", MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE ) -GAME( 1979, spcewarl, spclaser, invadpt2, spclaser, driver_device, 0, ROT270, "Leijac Corporation", "Space War (Leijac Corporation)", MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE ) // Taito's version is actually a spin-off of this? +GAME( 1980, spclaser, 0, invadpt2, spclaser, _8080bw_state, 0, ROT270, "Taito", "Space Laser", MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE ) +GAME( 1980, intruder, spclaser, invadpt2, spclaser, _8080bw_state, 0, ROT270, "Taito (Game Plan license)", "Intruder", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) +GAME( 1980, laser, spclaser, invadpt2, spclaser, _8080bw_state, 0, ROT270, "bootleg (Leisure Time Electronics)", "Astro Laser (bootleg of Space Laser)", MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE ) +GAME( 1979, spcewarl, spclaser, invadpt2, spclaser, _8080bw_state, 0, ROT270, "Leijac Corporation", "Space War (Leijac Corporation)", MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE ) // Taito's version is actually a spin-off of this? -GAME( 1979, lrescue, 0, lrescue, lrescue, driver_device, 0, ROT270, "Taito", "Lunar Rescue", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) -GAME( 1979, grescue, lrescue, lrescue, lrescue, driver_device, 0, ROT270, "Taito (Universal license?)", "Galaxy Rescue", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) -GAME( 1980, mlander, lrescue, lrescue, lrescue, driver_device, 0, ROT270, "bootleg (Leisure Time Electronics)", "Moon Lander (bootleg of Lunar Rescue)", MACHINE_SUPPORTS_SAVE ) -GAME( 1979, lrescuem, lrescue, lrescue, lrescue, driver_device, 0, ROT270, "bootleg (Model Racing)", "Lunar Rescue (Model Racing bootleg, set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) -GAME( 1979, lrescuem2, lrescue, lrescue, lrescue, driver_device, 0, ROT270, "bootleg (Model Racing)", "Lunar Rescue (Model Racing bootleg, set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) -GAME( 1979, desterth, lrescue, lrescue, lrescue, driver_device, 0, ROT270, "bootleg", "Destination Earth (bootleg of Lunar Rescue)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) -GAMEL( 1980,escmars, lrescue, escmars, lrescue, driver_device, 0, ROT270, "bootleg", "Escape from Mars (bootleg of Lunar Rescue)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND, layout_escmars ) +GAME( 1979, lrescue, 0, lrescue, lrescue, _8080bw_state, 0, ROT270, "Taito", "Lunar Rescue", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) +GAME( 1979, grescue, lrescue, lrescue, lrescue, _8080bw_state, 0, ROT270, "Taito (Universal license?)", "Galaxy Rescue", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) +GAME( 1980, mlander, lrescue, lrescue, lrescue, _8080bw_state, 0, ROT270, "bootleg (Leisure Time Electronics)", "Moon Lander (bootleg of Lunar Rescue)", MACHINE_SUPPORTS_SAVE ) +GAME( 1979, lrescuem, lrescue, lrescue, lrescue, _8080bw_state, 0, ROT270, "bootleg (Model Racing)", "Lunar Rescue (Model Racing bootleg, set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) +GAME( 1979, lrescuem2, lrescue, lrescue, lrescue, _8080bw_state, 0, ROT270, "bootleg (Model Racing)", "Lunar Rescue (Model Racing bootleg, set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) +GAME( 1979, desterth, lrescue, lrescue, lrescue, _8080bw_state, 0, ROT270, "bootleg", "Destination Earth (bootleg of Lunar Rescue)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) +GAMEL( 1980,escmars, lrescue, escmars, lrescue, _8080bw_state, 0, ROT270, "bootleg", "Escape from Mars (bootleg of Lunar Rescue)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND, layout_escmars ) -GAME( 1979, schaser, 0, schaser, schaser, driver_device, 0, ROT270, "Taito", "Space Chaser (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1979, schasera, schaser, schaser, schaser, driver_device, 0, ROT270, "Taito", "Space Chaser (set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1979, schaserb, schaser, schaser, schaser, driver_device, 0, ROT270, "Taito", "Space Chaser (set 3)", MACHINE_SUPPORTS_SAVE ) -GAME( 1979, schaserc, schaser, schaser, schaser, driver_device, 0, ROT270, "Taito", "Space Chaser (set 4)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_COLORS ) -GAME( 1979, schasercv, schaser, schasercv, schasercv, driver_device, 0, ROT270, "Taito", "Space Chaser (CV version - set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_COLORS ) -GAME( 1979, schaserm, schaser, schaser, schaserm, driver_device, 0, ROT270, "bootleg (Model Racing)", "Space Chaser (Model Racing bootleg)", MACHINE_SUPPORTS_SAVE ) // on original Taito PCB, hacked to be harder? +GAME( 1979, schaser, 0, schaser, schaser, _8080bw_state, 0, ROT270, "Taito", "Space Chaser (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1979, schasera, schaser, schaser, schaser, _8080bw_state, 0, ROT270, "Taito", "Space Chaser (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1979, schaserb, schaser, schaser, schaser, _8080bw_state, 0, ROT270, "Taito", "Space Chaser (set 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 1979, schaserc, schaser, schaser, schaser, _8080bw_state, 0, ROT270, "Taito", "Space Chaser (set 4)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_COLORS ) +GAME( 1979, schasercv, schaser, schasercv, schasercv, _8080bw_state, 0, ROT270, "Taito", "Space Chaser (CV version - set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_COLORS ) +GAME( 1979, schaserm, schaser, schaser, schaserm, _8080bw_state, 0, ROT270, "bootleg (Model Racing)", "Space Chaser (Model Racing bootleg)", MACHINE_SUPPORTS_SAVE ) // on original Taito PCB, hacked to be harder? -GAME( 1979, sflush, 0, sflush, sflush, driver_device, 0, ROT270, "Taito", "Straight Flush", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND | MACHINE_IMPERFECT_COLORS | MACHINE_NO_COCKTAIL) +GAME( 1979, sflush, 0, sflush, sflush, _8080bw_state, 0, ROT270, "Taito", "Straight Flush", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND | MACHINE_IMPERFECT_COLORS | MACHINE_NO_COCKTAIL) -GAME( 1980, lupin3, 0, lupin3, lupin3, driver_device, 0, ROT270, "Taito", "Lupin III (set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) -GAME( 1980, lupin3a, lupin3, lupin3a, lupin3a, driver_device, 0, ROT270, "Taito", "Lupin III (set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) +GAME( 1980, lupin3, 0, lupin3, lupin3, _8080bw_state, 0, ROT270, "Taito", "Lupin III (set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) +GAME( 1980, lupin3a, lupin3, lupin3a, lupin3a, _8080bw_state, 0, ROT270, "Taito", "Lupin III (set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) -GAME( 1980, polaris, 0, polaris, polaris, driver_device, 0, ROT270, "Taito", "Polaris (Latest version)", MACHINE_SUPPORTS_SAVE ) -GAME( 1980, polarisa, polaris, polaris, polaris, driver_device, 0, ROT270, "Taito", "Polaris (First revision)", MACHINE_SUPPORTS_SAVE ) -GAME( 1980, polariso, polaris, polaris, polaris, driver_device, 0, ROT270, "Taito", "Polaris (Original version)", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, polarisbr, polaris, polaris, polaris, driver_device, 0, ROT270, "Taito do Brasil", "Polaris (Brazil)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, polaris, 0, polaris, polaris, _8080bw_state, 0, ROT270, "Taito", "Polaris (Latest version)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, polarisa, polaris, polaris, polaris, _8080bw_state, 0, ROT270, "Taito", "Polaris (First revision)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, polariso, polaris, polaris, polaris, _8080bw_state, 0, ROT270, "Taito", "Polaris (Original version)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, polarisbr, polaris, polaris, polaris, _8080bw_state, 0, ROT270, "Taito do Brasil", "Polaris (Brazil)", MACHINE_SUPPORTS_SAVE ) -GAME( 1980, ballbomb, 0, ballbomb, ballbomb, driver_device, 0, ROT270, "Taito", "Balloon Bomber", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) /* missing clouds */ +GAME( 1980, ballbomb, 0, ballbomb, ballbomb, _8080bw_state, 0, ROT270, "Taito", "Balloon Bomber", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) /* missing clouds */ -GAME( 1980, indianbt, 0, indianbt, indianbt, driver_device, 0, ROT270, "Taito", "Indian Battle", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) -GAME( 1983, indianbtbr, indianbt, indianbtbr,indianbtbr,driver_device, 0, ROT270, "Taito do Brasil", "Indian Battle (Brazil)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) +GAME( 1980, indianbt, 0, indianbt, indianbt, _8080bw_state, 0, ROT270, "Taito", "Indian Battle", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) +GAME( 1983, indianbtbr, indianbt, indianbtbr,indianbtbr,_8080bw_state, 0, ROT270, "Taito do Brasil", "Indian Battle (Brazil)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) -GAME( 1980, steelwkr, 0, steelwkr, steelwkr, driver_device, 0, ROT0 , "Taito", "Steel Worker", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) +GAME( 1980, steelwkr, 0, steelwkr, steelwkr, _8080bw_state, 0, ROT0 , "Taito", "Steel Worker", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) -GAMEL(1980?,galactic, 0, invaders, galactic, driver_device, 0, ROT270, "Taito do Brasil", "Galactica - Batalha Espacial", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND, layout_galactic ) -GAMEL(1980?,spacmiss, galactic, invaders, galactic, driver_device, 0, ROT270, "bootleg?", "Space Missile - Space Fighting Game", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND, layout_galactic ) +GAMEL(1980?,galactic, 0, invaders, galactic, mw8080bw_state, 0, ROT270, "Taito do Brasil", "Galactica - Batalha Espacial", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND, layout_galactic ) +GAMEL(1980?,spacmiss, galactic, invaders, galactic, mw8080bw_state, 0, ROT270, "bootleg?", "Space Missile - Space Fighting Game", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND, layout_galactic ) // Misc. manufacturers -GAME( 1979, galxwars, 0, invadpt2, galxwars, driver_device, 0, ROT270, "Universal", "Galaxy Wars (Universal set 1)", MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE ) -GAME( 1979, galxwars2, galxwars, invadpt2, galxwars, driver_device, 0, ROT270, "Universal", "Galaxy Wars (Universal set 2)", MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE ) -GAME( 1979, galxwarst, galxwars, invadpt2, galxwars, driver_device, 0, ROT270, "Universal (Taito license?)", "Galaxy Wars (Taito?)" , MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE ) // Copyright not displayed -GAME( 1979, galxwarst2, galxwars, invadpt2, galxwars, driver_device, 0, ROT270, "Universal (Taito Corporation license)", "Galaxy Wars (Taito)" , MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE ) // Copyright displayed, quite different codebase from galxwarst -GAME( 1979, starw, galxwars, invaders, galxwars, driver_device, 0, ROT270, "bootleg", "Star Wars (bootleg of Galaxy Wars, set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1979, starw1, galxwars, starw1, galxwars, driver_device, 0, ROT270, "bootleg (Yamashita)", "Star Wars (bootleg of Galaxy Wars, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1979, galxwars, 0, invadpt2, galxwars, _8080bw_state, 0, ROT270, "Universal", "Galaxy Wars (Universal set 1)", MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE ) +GAME( 1979, galxwars2, galxwars, invadpt2, galxwars, _8080bw_state, 0, ROT270, "Universal", "Galaxy Wars (Universal set 2)", MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE ) +GAME( 1979, galxwarst, galxwars, invadpt2, galxwars, _8080bw_state, 0, ROT270, "Universal (Taito license?)", "Galaxy Wars (Taito?)" , MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE ) // Copyright not displayed +GAME( 1979, galxwarst2, galxwars, invadpt2, galxwars, _8080bw_state, 0, ROT270, "Universal (Taito Corporation license)", "Galaxy Wars (Taito)" , MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE ) // Copyright displayed, quite different codebase from galxwarst +GAME( 1979, starw, galxwars, invaders, galxwars, mw8080bw_state, 0, ROT270, "bootleg", "Star Wars (bootleg of Galaxy Wars, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1979, starw1, galxwars, starw1, galxwars, _8080bw_state, 0, ROT270, "bootleg (Yamashita)", "Star Wars (bootleg of Galaxy Wars, set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1979, cosmo, 0, cosmo, cosmo, driver_device, 0, ROT90, "TDS & MINTS", "Cosmo", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) +GAME( 1979, cosmo, 0, cosmo, cosmo, _8080bw_state, 0, ROT90, "TDS & MINTS", "Cosmo", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) -GAME( 1980?,invrvnge, 0, invrvnge, invrvnge, driver_device, 0, ROT270, "Zenitone-Microsec Ltd.", "Invader's Revenge (set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND ) // copyright is either late-1980, or early-1981 -GAME( 1980?,invrvngea, invrvnge, invrvnge, invrvnge, driver_device, 0, ROT270, "Zenitone-Microsec Ltd.", "Invader's Revenge (set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND ) -GAME( 1980?,invrvngeb, invrvnge, invrvnge, invrvnge, driver_device, 0, ROT270, "Zenitone-Microsec Ltd.", "Invader's Revenge (set 3)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND ) -GAME( 1980?,invrvngedu, invrvnge, invrvnge, invrvnge, driver_device, 0, ROT270, "Zenitone-Microsec Ltd. (Dutchford license)", "Invader's Revenge (Dutchford, single PCB)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND ) -GAME( 1980?,invrvngegw, invrvnge, invrvnge, invrvnge, driver_device, 0, ROT270, "Zenitone-Microsec Ltd. (Game World license)", "Invader's Revenge (Game World, single PCB)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND ) +GAME( 1980?,invrvnge, 0, invrvnge, invrvnge, _8080bw_state, 0, ROT270, "Zenitone-Microsec Ltd.", "Invader's Revenge (set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND ) // copyright is either late-1980, or early-1981 +GAME( 1980?,invrvngea, invrvnge, invrvnge, invrvnge, _8080bw_state, 0, ROT270, "Zenitone-Microsec Ltd.", "Invader's Revenge (set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND ) +GAME( 1980?,invrvngeb, invrvnge, invrvnge, invrvnge, _8080bw_state, 0, ROT270, "Zenitone-Microsec Ltd.", "Invader's Revenge (set 3)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND ) +GAME( 1980?,invrvngedu, invrvnge, invrvnge, invrvnge, _8080bw_state, 0, ROT270, "Zenitone-Microsec Ltd. (Dutchford license)", "Invader's Revenge (Dutchford, single PCB)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND ) +GAME( 1980?,invrvngegw, invrvnge, invrvnge, invrvnge, _8080bw_state, 0, ROT270, "Zenitone-Microsec Ltd. (Game World license)", "Invader's Revenge (Game World, single PCB)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND ) -GAME( 1980, vortex, 0, vortex, vortex, _8080bw_state, vortex, ROT270, "Zilec Electronics", "Vortex", MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) /* Encrypted 8080/IO */ +GAME( 1980, vortex, 0, vortex, vortex, _8080bw_state, vortex, ROT270, "Zilec Electronics", "Vortex", MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) /* Encrypted 8080/IO */ -GAME( 1979, rollingc, 0, rollingc, rollingc, driver_device, 0, ROT270, "Nichibutsu", "Rolling Crash / Moon Base", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE ) +GAME( 1979, rollingc, 0, rollingc, rollingc, _8080bw_state, 0, ROT270, "Nichibutsu", "Rolling Crash / Moon Base", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE ) -GAME( 1979, ozmawars, 0, invadpt2, ozmawars, driver_device, 0, ROT270, "SNK", "Ozma Wars (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1979, ozmawars2, ozmawars, invadpt2, ozmawars, driver_device, 0, ROT270, "SNK", "Ozma Wars (set 2)", MACHINE_SUPPORTS_SAVE ) /* Uses Taito's three board color version of Space Invaders PCB */ -GAME( 1979, ozmawarsmr, ozmawars, invaders, ozmawars, driver_device, 0, ROT270, "bootleg (Model Racing)", "Ozma Wars (Model Racing bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1979, spaceph, ozmawars, invaders, spaceph, driver_device, 0, ROT270, "bootleg? (Zilec Games)", "Space Phantoms (bootleg of Ozma Wars)", MACHINE_SUPPORTS_SAVE ) -GAME( 1979, solfight, ozmawars, invaders, ozmawars, driver_device, 0, ROT270, "bootleg", "Solar Fight (bootleg of Ozma Wars)", MACHINE_SUPPORTS_SAVE ) +GAME( 1979, ozmawars, 0, invadpt2, ozmawars, _8080bw_state, 0, ROT270, "SNK", "Ozma Wars (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1979, ozmawars2, ozmawars, invadpt2, ozmawars, _8080bw_state, 0, ROT270, "SNK", "Ozma Wars (set 2)", MACHINE_SUPPORTS_SAVE ) /* Uses Taito's three board color version of Space Invaders PCB */ +GAME( 1979, ozmawarsmr, ozmawars, invaders, ozmawars, mw8080bw_state, 0, ROT270, "bootleg (Model Racing)", "Ozma Wars (Model Racing bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1979, spaceph, ozmawars, invaders, spaceph, mw8080bw_state, 0, ROT270, "bootleg? (Zilec Games)", "Space Phantoms (bootleg of Ozma Wars)", MACHINE_SUPPORTS_SAVE ) +GAME( 1979, solfight, ozmawars, invaders, ozmawars, mw8080bw_state, 0, ROT270, "bootleg", "Solar Fight (bootleg of Ozma Wars)", MACHINE_SUPPORTS_SAVE ) -GAME( 1979, yosakdon, 0, yosakdon, yosakdon, driver_device, 0, ROT270, "Wing", "Yosaku To Donbei (set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) -GAME( 1979, yosakdona, yosakdon, yosakdon, yosakdon, driver_device, 0, ROT270, "Wing", "Yosaku To Donbei (set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) +GAME( 1979, yosakdon, 0, yosakdon, yosakdon, _8080bw_state, 0, ROT270, "Wing", "Yosaku To Donbei (set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) +GAME( 1979, yosakdona, yosakdon, yosakdon, yosakdon, _8080bw_state, 0, ROT270, "Wing", "Yosaku To Donbei (set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) -GAMEL(1979, shuttlei, 0, shuttlei, shuttlei, driver_device, 0, ROT270, "Omori Electric Co., Ltd.", "Shuttle Invader", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND, layout_shuttlei ) +GAMEL(1979, shuttlei, 0, shuttlei, shuttlei, _8080bw_state, 0, ROT270, "Omori Electric Co., Ltd.", "Shuttle Invader", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND, layout_shuttlei ) -GAMEL(1979, skylove, 0, shuttlei, skylove, driver_device, 0, ROT270, "Omori Electric Co., Ltd.", "Sky Love", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND, layout_shuttlei ) +GAMEL(1979, skylove, 0, shuttlei, skylove, _8080bw_state, 0, ROT270, "Omori Electric Co., Ltd.", "Sky Love", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND, layout_shuttlei ) -GAME (1978, claybust, 0, claybust, claybust, driver_device, 0, ROT0, "Model Racing", "Claybuster", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND ) // no titlescreen, Claybuster according to flyers +GAME (1978, claybust, 0, claybust, claybust, _8080bw_state, 0, ROT0, "Model Racing", "Claybuster", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND ) // no titlescreen, Claybuster according to flyers -GAMEL(1980, gunchamp, 0, claybust, gunchamp, driver_device, 0, ROT0, "Model Racing", "Gun Champ", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND, layout_gunchamp ) // no titlescreen, Gun Champ according to original cab +GAMEL(1980, gunchamp, 0, claybust, gunchamp, _8080bw_state, 0, ROT0, "Model Racing", "Gun Champ", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND, layout_gunchamp ) // no titlescreen, Gun Champ according to original cab -GAME( 1980?,astropal, 0, astropal, astropal, driver_device, 0, ROT0, "Sidam?", "Astropal", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) +GAME( 1980?,astropal, 0, astropal, astropal, _8080bw_state, 0, ROT0, "Sidam?", "Astropal", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) -GAMEL(1979?,attackfc, 0, attackfc, attackfc, _8080bw_state, attackfc, ROT0, "Electronic Games Systems", "Attack Force", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND, layout_attackfc ) +GAMEL(1979?,attackfc, 0, attackfc, attackfc, _8080bw_state, attackfc, ROT0, "Electronic Games Systems", "Attack Force", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND, layout_attackfc ) -GAME( 2002, invmulti, 0, invmulti, invmulti, _8080bw_state, invmulti, ROT270, "hack (Braze Technologies)", "Space Invaders Multigame (M8.03D)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 2002, invmultim3a,invmulti, invmulti, invmulti, _8080bw_state, invmulti, ROT270, "hack (Braze Technologies)", "Space Invaders Multigame (M8.03A)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 2002, invmultim2c,invmulti, invmulti, invmulti, _8080bw_state, invmulti, ROT270, "hack (Braze Technologies)", "Space Invaders Multigame (M8.02C)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 2002, invmultim2a,invmulti, invmulti, invmulti, _8080bw_state, invmulti, ROT270, "hack (Braze Technologies)", "Space Invaders Multigame (M8.02A)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 2002, invmultim1a,invmulti, invmulti, invmulti, _8080bw_state, invmulti, ROT270, "hack (Braze Technologies)", "Space Invaders Multigame (M8.01A)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 2002, invmultit3d,invmulti, invmulti, invmulti, _8080bw_state, invmulti, ROT270, "hack (Braze Technologies)", "Space Invaders Multigame (T8.03D)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 2002, invmultis3a,invmulti, invmulti, invmulti, _8080bw_state, invmulti, ROT270, "hack (Braze Technologies)", "Space Invaders Multigame (S0.83A)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 2002, invmultis2a,invmulti, invmulti, invmulti, _8080bw_state, invmulti, ROT270, "hack (Braze Technologies)", "Space Invaders Multigame (S0.82A)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 2002, invmultis1a,invmulti, invmulti, invmulti, _8080bw_state, invmulti, ROT270, "hack (Braze Technologies)", "Space Invaders Multigame (S0.81A)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 2002, invmultip, invmulti, invmulti, invmulti, _8080bw_state, invmulti, ROT270, "hack (Braze Technologies)", "Space Invaders Multigame (prototype)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 2002, invmulti, 0, invmulti, invmulti, _8080bw_state, invmulti, ROT270, "hack (Braze Technologies)", "Space Invaders Multigame (M8.03D)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 2002, invmultim3a,invmulti, invmulti, invmulti, _8080bw_state, invmulti, ROT270, "hack (Braze Technologies)", "Space Invaders Multigame (M8.03A)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 2002, invmultim2c,invmulti, invmulti, invmulti, _8080bw_state, invmulti, ROT270, "hack (Braze Technologies)", "Space Invaders Multigame (M8.02C)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 2002, invmultim2a,invmulti, invmulti, invmulti, _8080bw_state, invmulti, ROT270, "hack (Braze Technologies)", "Space Invaders Multigame (M8.02A)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 2002, invmultim1a,invmulti, invmulti, invmulti, _8080bw_state, invmulti, ROT270, "hack (Braze Technologies)", "Space Invaders Multigame (M8.01A)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 2002, invmultit3d,invmulti, invmulti, invmulti, _8080bw_state, invmulti, ROT270, "hack (Braze Technologies)", "Space Invaders Multigame (T8.03D)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 2002, invmultis3a,invmulti, invmulti, invmulti, _8080bw_state, invmulti, ROT270, "hack (Braze Technologies)", "Space Invaders Multigame (S0.83A)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 2002, invmultis2a,invmulti, invmulti, invmulti, _8080bw_state, invmulti, ROT270, "hack (Braze Technologies)", "Space Invaders Multigame (S0.82A)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 2002, invmultis1a,invmulti, invmulti, invmulti, _8080bw_state, invmulti, ROT270, "hack (Braze Technologies)", "Space Invaders Multigame (S0.81A)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 2002, invmultip, invmulti, invmulti, invmulti, _8080bw_state, invmulti, ROT270, "hack (Braze Technologies)", "Space Invaders Multigame (prototype)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/88games.cpp b/src/mame/drivers/88games.cpp index 17364b242d5..870915b813d 100644 --- a/src/mame/drivers/88games.cpp +++ b/src/mame/drivers/88games.cpp @@ -302,7 +302,7 @@ void _88games_state::machine_reset() m_k88games_priority = 0; } -static MACHINE_CONFIG_START( 88games, _88games_state ) +static MACHINE_CONFIG_START( 88games ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", KONAMI, 3000000) /* ? */ @@ -536,6 +536,6 @@ ROM_END * *************************************/ -GAME( 1988, 88games, 0, 88games, 88games, driver_device, 0, ROT0, "Konami", "'88 Games", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, konami88, 88games, 88games, 88games, driver_device, 0, ROT0, "Konami", "Konami '88", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, hypsptsp, 88games, 88games, 88games, driver_device, 0, ROT0, "Konami", "Hyper Sports Special (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, 88games, 0, 88games, 88games, _88games_state, 0, ROT0, "Konami", "'88 Games", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, konami88, 88games, 88games, 88games, _88games_state, 0, ROT0, "Konami", "Konami '88", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, hypsptsp, 88games, 88games, 88games, _88games_state, 0, ROT0, "Konami", "Hyper Sports Special (Japan)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/a1supply.cpp b/src/mame/drivers/a1supply.cpp index 12f9a7447d1..145348a9701 100644 --- a/src/mame/drivers/a1supply.cpp +++ b/src/mame/drivers/a1supply.cpp @@ -46,7 +46,7 @@ public: } // devices - required_device m_maincpu; + required_device m_maincpu; required_device m_video; protected: @@ -89,7 +89,7 @@ void a1supply_state::video_start() { } -static MACHINE_CONFIG_START( a1supply, a1supply_state ) +static MACHINE_CONFIG_START( a1supply ) /* basic machine hardware */ MCFG_DEVICE_ADD("maincpu", NETLIST_CPU, NETLIST_CLOCK) @@ -164,6 +164,6 @@ ROM_START( tvpoker ) ROM_END -GAME( 197?, tv21, 0, a1supply, 0, driver_device, 0, ROT0, "A-1 Supply", "T.V. 21", MACHINE_IS_SKELETON ) -GAME( 197?, tv21_3, 0, a1supply, 0, driver_device, 0, ROT0, "A-1 Supply", "T.V. 21 III", MACHINE_IS_SKELETON ) -GAME( 197?, tvpoker, 0, a1supply, 0, driver_device, 0, ROT0, "A-1 Supply", "T.V. Poker", MACHINE_IS_SKELETON ) +GAME( 197?, tv21, 0, a1supply, 0, a1supply_state, 0, ROT0, "A-1 Supply", "T.V. 21", MACHINE_IS_SKELETON ) +GAME( 197?, tv21_3, 0, a1supply, 0, a1supply_state, 0, ROT0, "A-1 Supply", "T.V. 21 III", MACHINE_IS_SKELETON ) +GAME( 197?, tvpoker, 0, a1supply, 0, a1supply_state, 0, ROT0, "A-1 Supply", "T.V. Poker", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/a2600.cpp b/src/mame/drivers/a2600.cpp index 1c949132035..a76e57746b9 100644 --- a/src/mame/drivers/a2600.cpp +++ b/src/mame/drivers/a2600.cpp @@ -570,7 +570,7 @@ static MACHINE_CONFIG_FRAGMENT(a2600_cartslot) MCFG_SOFTWARE_LIST_ADD("cass_list","a2600_cass") MACHINE_CONFIG_END -static MACHINE_CONFIG_START( a2600, a2600_state ) +static MACHINE_CONFIG_START( a2600 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6507, MASTER_CLOCK_NTSC / 3) MCFG_M6502_DISABLE_DIRECT() @@ -619,7 +619,7 @@ static MACHINE_CONFIG_START( a2600, a2600_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( a2600p, a2600_state ) +static MACHINE_CONFIG_START( a2600p ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6507, MASTER_CLOCK_PAL / 3) MCFG_CPU_PROGRAM_MAP(a2600_mem) @@ -675,6 +675,6 @@ ROM_END #define rom_a2600p rom_a2600 -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ -CONS( 1977, a2600, 0, 0, a2600, a2600, driver_device, 0, "Atari", "Atari 2600 (NTSC)" , MACHINE_SUPPORTS_SAVE ) -CONS( 1978, a2600p, a2600, 0, a2600p, a2600, driver_device, 0, "Atari", "Atari 2600 (PAL)", MACHINE_SUPPORTS_SAVE ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME */ +CONS( 1977, a2600, 0, 0, a2600, a2600, a2600_state, 0, "Atari", "Atari 2600 (NTSC)" , MACHINE_SUPPORTS_SAVE ) +CONS( 1978, a2600p, a2600, 0, a2600p, a2600, a2600_state, 0, "Atari", "Atari 2600 (PAL)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/a5105.cpp b/src/mame/drivers/a5105.cpp index 7b0cdd48a33..39389733bf7 100644 --- a/src/mame/drivers/a5105.cpp +++ b/src/mame/drivers/a5105.cpp @@ -556,7 +556,7 @@ static const z80_daisy_config a5105_daisy_chain[] = { nullptr } }; -static MACHINE_CONFIG_START( a5105, a5105_state ) +static MACHINE_CONFIG_START( a5105 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80, XTAL_15MHz / 4) MCFG_CPU_PROGRAM_MAP(a5105_mem) @@ -623,5 +623,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1989, a5105, 0, 0, a5105, a5105, driver_device, 0, "VEB Robotron", "BIC A5105", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1989, a5105, 0, 0, a5105, a5105, a5105_state, 0, "VEB Robotron", "BIC A5105", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) diff --git a/src/mame/drivers/a51xx.cpp b/src/mame/drivers/a51xx.cpp index 80162f77bfd..b38b668591f 100644 --- a/src/mame/drivers/a51xx.cpp +++ b/src/mame/drivers/a51xx.cpp @@ -112,7 +112,7 @@ static GFXDECODE_START( a51xx ) GFXDECODE_ENTRY( "chargen", 0x0000, a51xx_charlayout, 0, 1 ) GFXDECODE_END -static MACHINE_CONFIG_START( a5120, a51xx_state ) +static MACHINE_CONFIG_START( a5120 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80, XTAL_4MHz) MCFG_CPU_PROGRAM_MAP(a5120_mem) @@ -174,6 +174,6 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1982, a5120, 0, 0, a5120, a5120, driver_device, 0, "VEB Robotron", "A5120", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -COMP( 1983, a5130, a5120, 0, a5130, a5130, driver_device, 0, "VEB Robotron", "A5130", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1982, a5120, 0, 0, a5120, a5120, a51xx_state, 0, "VEB Robotron", "A5120", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +COMP( 1983, a5130, a5120, 0, a5130, a5130, a51xx_state, 0, "VEB Robotron", "A5130", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/a6809.cpp b/src/mame/drivers/a6809.cpp index fbf33520990..744d855fd69 100644 --- a/src/mame/drivers/a6809.cpp +++ b/src/mame/drivers/a6809.cpp @@ -73,7 +73,7 @@ public: , m_crtc(*this, "mc6845") { } - DECLARE_WRITE8_MEMBER(kbd_put); + void kbd_put(u8 data); DECLARE_READ8_MEMBER(videoram_r); DECLARE_WRITE8_MEMBER(a6809_address_w); DECLARE_WRITE8_MEMBER(a6809_register_w); @@ -203,23 +203,23 @@ TIMER_DEVICE_CALLBACK_MEMBER(a6809_state::a6809_p) } } -WRITE8_MEMBER( a6809_state::kbd_put ) +void a6809_state::kbd_put(u8 data) { uint8_t d = data & 0x7f; if (d == 8) d = 0x7f; // allow backspace to work - m_via->write_pb0((d>>0)&1); - m_via->write_pb1((d>>1)&1); - m_via->write_pb2((d>>2)&1); - m_via->write_pb3((d>>3)&1); - m_via->write_pb4((d>>4)&1); - m_via->write_pb5((d>>5)&1); - m_via->write_pb6((d>>6)&1); + m_via->write_pb0(BIT(d, 0)); + m_via->write_pb1(BIT(d, 1)); + m_via->write_pb2(BIT(d, 2)); + m_via->write_pb3(BIT(d, 3)); + m_via->write_pb4(BIT(d, 4)); + m_via->write_pb5(BIT(d, 5)); + m_via->write_pb6(BIT(d, 6)); m_via->write_cb1(1); m_via->write_cb1(0); } -static MACHINE_CONFIG_START( a6809, a6809_state ) +static MACHINE_CONFIG_START( a6809 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",M6809E, XTAL_4MHz) MCFG_CPU_PROGRAM_MAP(a6809_mem) @@ -254,7 +254,7 @@ static MACHINE_CONFIG_START( a6809, a6809_state ) MCFG_SAA5050_SCREEN_SIZE(40, 25, 40) MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0) - MCFG_GENERIC_KEYBOARD_CB(WRITE8(a6809_state, kbd_put)) + MCFG_GENERIC_KEYBOARD_CB(PUT(a6809_state, kbd_put)) MCFG_CASSETTE_ADD( "cassette" ) MCFG_TIMER_DRIVER_ADD_PERIODIC("a6809_c", a6809_state, a6809_c, attotime::from_hz(4800)) MCFG_TIMER_DRIVER_ADD_PERIODIC("a6809_p", a6809_state, a6809_p, attotime::from_hz(40000)) @@ -272,4 +272,4 @@ ROM_END /* Driver */ /* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1980, a6809, 0, 0, a6809, a6809, driver_device, 0, "Acorn", "System 3 (6809 CPU)", 0 ) +COMP( 1980, a6809, 0, 0, a6809, a6809, a6809_state, 0, "Acorn", "System 3 (6809 CPU)", 0 ) diff --git a/src/mame/drivers/a7150.cpp b/src/mame/drivers/a7150.cpp index 26a716bc043..cc6974e19c3 100644 --- a/src/mame/drivers/a7150.cpp +++ b/src/mame/drivers/a7150.cpp @@ -412,7 +412,7 @@ static const z80_daisy_config k7070_daisy_chain[] = * * (framebuffer and terminal should be slot devices.) */ -static MACHINE_CONFIG_START( a7150, a7150_state ) +static MACHINE_CONFIG_START( a7150 ) MCFG_CPU_ADD("maincpu", I8086, XTAL_9_832MHz/2) MCFG_CPU_PROGRAM_MAP(a7150_mem) MCFG_CPU_IO_MAP(a7150_io) @@ -508,5 +508,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1986, a7150, 0, 0, a7150, a7150, driver_device, 0, "VEB Robotron", "A7150", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1986, a7150, 0, 0, a7150, a7150, a7150_state, 0, "VEB Robotron", "A7150", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/a7800.cpp b/src/mame/drivers/a7800.cpp index 9c61a85c3c3..d4d5360b4a4 100644 --- a/src/mame/drivers/a7800.cpp +++ b/src/mame/drivers/a7800.cpp @@ -283,8 +283,8 @@ static ADDRESS_MAP_START( a7800_mem, AS_PROGRAM, 8, a7800_state ) AM_RANGE(0x0020, 0x003f) AM_MIRROR(0x300) AM_DEVREADWRITE("maria", atari_maria_device, read, write) AM_RANGE(0x0040, 0x00ff) AM_RAMBANK("zpmirror") // mirror of 0x2040-0x20ff, for zero page AM_RANGE(0x0140, 0x01ff) AM_RAMBANK("spmirror") // mirror of 0x2140-0x21ff, for stack page - AM_RANGE(0x0280, 0x029f) AM_MIRROR(0x160) AM_DEVICE("riot", mos6532_t, io_map) - AM_RANGE(0x0480, 0x04ff) AM_MIRROR(0x100) AM_DEVICE("riot", mos6532_t, ram_map) + AM_RANGE(0x0280, 0x029f) AM_MIRROR(0x160) AM_DEVICE("riot", mos6532_new_device, io_map) + AM_RANGE(0x0480, 0x04ff) AM_MIRROR(0x100) AM_DEVICE("riot", mos6532_new_device, ram_map) AM_RANGE(0x1800, 0x1fff) AM_RAM AM_SHARE("6116_1") AM_RANGE(0x2000, 0x27ff) AM_RAM AM_SHARE("6116_2") // According to the official Software Guide, the RAM at 0x2000 is @@ -1351,7 +1351,7 @@ void a7800_state::machine_reset() m_bios_enabled = 0; } -static MACHINE_CONFIG_START( a7800_ntsc, a7800_state ) +static MACHINE_CONFIG_START( a7800_ntsc ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, A7800_NTSC_Y1/8) /* 1.79 MHz (switches to 1.19 MHz on TIA or RIOT access) */ MCFG_CPU_PROGRAM_MAP(a7800_mem) @@ -1375,7 +1375,7 @@ static MACHINE_CONFIG_START( a7800_ntsc, a7800_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) /* devices */ - MCFG_DEVICE_ADD("riot", MOS6532n, A7800_NTSC_Y1/8) + MCFG_DEVICE_ADD("riot", MOS6532_NEW, A7800_NTSC_Y1/8) MCFG_MOS6530n_IN_PA_CB(READ8(a7800_state, riot_joystick_r)) MCFG_MOS6530n_IN_PB_CB(READ8(a7800_state, riot_console_button_r)) MCFG_MOS6530n_OUT_PB_CB(WRITE8(a7800_state, riot_button_pullup_w)) @@ -1402,7 +1402,7 @@ static MACHINE_CONFIG_DERIVED( a7800_pal, a7800_ntsc ) /* devices */ MCFG_DEVICE_REMOVE("riot") - MCFG_DEVICE_ADD("riot", MOS6532n, CLK_PAL) + MCFG_DEVICE_ADD("riot", MOS6532_NEW, CLK_PAL) MCFG_MOS6530n_IN_PA_CB(READ8(a7800_state, riot_joystick_r)) MCFG_MOS6530n_IN_PB_CB(READ8(a7800_state, riot_console_button_r)) MCFG_MOS6530n_OUT_PB_CB(WRITE8(a7800_state, riot_button_pullup_w)) @@ -1458,6 +1458,6 @@ DRIVER_INIT_MEMBER(a7800_state,a7800_pal) GAME DRIVERS ***************************************************************************/ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ -CONS( 1986, a7800, 0, 0, a7800_ntsc, a7800, a7800_state, a7800_ntsc, "Atari", "Atari 7800 (NTSC)" , 0) -CONS( 1986, a7800p, a7800, 0, a7800_pal, a7800, a7800_state, a7800_pal, "Atari", "Atari 7800 (PAL)" , 0) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME */ +CONS( 1986, a7800, 0, 0, a7800_ntsc, a7800, a7800_state, a7800_ntsc, "Atari", "Atari 7800 (NTSC)" , 0) +CONS( 1986, a7800p, a7800, 0, a7800_pal, a7800, a7800_state, a7800_pal, "Atari", "Atari 7800 (PAL)" , 0) diff --git a/src/mame/drivers/aa310.cpp b/src/mame/drivers/aa310.cpp index de81fa4514a..ba6aa80b829 100644 --- a/src/mame/drivers/aa310.cpp +++ b/src/mame/drivers/aa310.cpp @@ -381,11 +381,11 @@ WRITE_LINE_MEMBER( archimedes_state::a310_kart_rx_w ) archimedes_clear_irq_b(ARCHIMEDES_IRQB_KBD_XMIT_EMPTY); } -static MACHINE_CONFIG_START( aa310, aa310_state ) +static MACHINE_CONFIG_START( aa310 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", ARM, XTAL_24MHz / 3) /* ARM2 8 MHz */ MCFG_CPU_PROGRAM_MAP(aa310_mem) - MCFG_ARM_COPRO(ARM_COPRO_TYPE_VL86C020) + MCFG_ARM_COPRO(VL86C020) MCFG_DEVICE_ADD("kart", AAKART, 8000000/256) MCFG_AAKART_OUT_TX_CB(WRITELINE(archimedes_state, a310_kart_tx_w)) diff --git a/src/mame/drivers/abc1600.cpp b/src/mame/drivers/abc1600.cpp index 6e0fc84551a..ec7228402d7 100644 --- a/src/mame/drivers/abc1600.cpp +++ b/src/mame/drivers/abc1600.cpp @@ -480,10 +480,10 @@ static ADDRESS_MAP_START( mac_mem, AS_PROGRAM, 8, abc1600_state ) AM_RANGE(0x000000, 0x0fffff) AM_RAM AM_RANGE(0x100000, 0x17ffff) AM_DEVICE(ABC1600_MOVER_TAG, abc1600_mover_device, vram_map) AM_RANGE(0x1fe000, 0x1fefff) AM_READWRITE(bus_r, bus_w) - AM_RANGE(0x1ff000, 0x1ff000) AM_MIRROR(0xf9) AM_DEVREADWRITE(SAB1797_02P_TAG, fd1797_t, status_r, cmd_w) - AM_RANGE(0x1ff002, 0x1ff002) AM_MIRROR(0xf9) AM_DEVREADWRITE(SAB1797_02P_TAG, fd1797_t, track_r, track_w) - AM_RANGE(0x1ff004, 0x1ff004) AM_MIRROR(0xf9) AM_DEVREADWRITE(SAB1797_02P_TAG, fd1797_t, sector_r, sector_w) - AM_RANGE(0x1ff006, 0x1ff006) AM_MIRROR(0xf9) AM_DEVREADWRITE(SAB1797_02P_TAG, fd1797_t, data_r, data_w) + AM_RANGE(0x1ff000, 0x1ff000) AM_MIRROR(0xf9) AM_DEVREADWRITE(SAB1797_02P_TAG, fd1797_device, status_r, cmd_w) + AM_RANGE(0x1ff002, 0x1ff002) AM_MIRROR(0xf9) AM_DEVREADWRITE(SAB1797_02P_TAG, fd1797_device, track_r, track_w) + AM_RANGE(0x1ff004, 0x1ff004) AM_MIRROR(0xf9) AM_DEVREADWRITE(SAB1797_02P_TAG, fd1797_device, sector_r, sector_w) + AM_RANGE(0x1ff006, 0x1ff006) AM_MIRROR(0xf9) AM_DEVREADWRITE(SAB1797_02P_TAG, fd1797_device, data_r, data_w) AM_RANGE(0x1ff100, 0x1ff101) AM_MIRROR(0xfe) AM_DEVICE(ABC1600_MOVER_TAG, abc1600_mover_device, crtc_map) AM_RANGE(0x1ff200, 0x1ff207) AM_MIRROR(0xf8) AM_READWRITE(dart_r, dart_w) AM_RANGE(0x1ff300, 0x1ff300) AM_MIRROR(0xff) AM_DEVREADWRITE(Z8410AB1_0_TAG, z80dma_device, read, write) @@ -849,7 +849,7 @@ void abc1600_state::machine_reset() // MACHINE_CONFIG( abc1600 ) //------------------------------------------------- -static MACHINE_CONFIG_START( abc1600, abc1600_state ) +static MACHINE_CONFIG_START( abc1600 ) // basic machine hardware MCFG_CPU_ADD(MC68008P8_TAG, M68008, XTAL_64MHz/8) MCFG_CPU_PROGRAM_MAP(abc1600_mem) @@ -973,5 +973,5 @@ ROM_END // SYSTEM DRIVERS //************************************************************************** -// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS -COMP( 1985, abc1600, 0, 0, abc1600, abc1600, driver_device, 0, "Luxor", "ABC 1600", MACHINE_NOT_WORKING ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1985, abc1600, 0, 0, abc1600, abc1600, abc1600_state, 0, "Luxor", "ABC 1600", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/abc80.cpp b/src/mame/drivers/abc80.cpp index 3edf3578444..cd6ce4c780e 100644 --- a/src/mame/drivers/abc80.cpp +++ b/src/mame/drivers/abc80.cpp @@ -190,14 +190,14 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( abc80_io, AS_IO, 8, abc80_state ) ADDRESS_MAP_UNMAP_HIGH ADDRESS_MAP_GLOBAL_MASK(0x17) - AM_RANGE(0x00, 0x00) AM_DEVREADWRITE(ABCBUS_TAG, abcbus_slot_t, inp_r, out_w) - AM_RANGE(0x01, 0x01) AM_DEVREADWRITE(ABCBUS_TAG, abcbus_slot_t, stat_r, cs_w) - AM_RANGE(0x02, 0x02) AM_DEVWRITE(ABCBUS_TAG, abcbus_slot_t, c1_w) - AM_RANGE(0x03, 0x03) AM_DEVWRITE(ABCBUS_TAG, abcbus_slot_t, c2_w) - AM_RANGE(0x04, 0x04) AM_DEVWRITE(ABCBUS_TAG, abcbus_slot_t, c3_w) - AM_RANGE(0x05, 0x05) AM_DEVWRITE(ABCBUS_TAG, abcbus_slot_t, c4_w) + AM_RANGE(0x00, 0x00) AM_DEVREADWRITE(ABCBUS_TAG, abcbus_slot_device, inp_r, out_w) + AM_RANGE(0x01, 0x01) AM_DEVREADWRITE(ABCBUS_TAG, abcbus_slot_device, stat_r, cs_w) + AM_RANGE(0x02, 0x02) AM_DEVWRITE(ABCBUS_TAG, abcbus_slot_device, c1_w) + AM_RANGE(0x03, 0x03) AM_DEVWRITE(ABCBUS_TAG, abcbus_slot_device, c2_w) + AM_RANGE(0x04, 0x04) AM_DEVWRITE(ABCBUS_TAG, abcbus_slot_device, c3_w) + AM_RANGE(0x05, 0x05) AM_DEVWRITE(ABCBUS_TAG, abcbus_slot_device, c4_w) AM_RANGE(0x06, 0x06) AM_WRITE(csg_w) - AM_RANGE(0x07, 0x07) AM_DEVREAD(ABCBUS_TAG, abcbus_slot_t, rst_r) + AM_RANGE(0x07, 0x07) AM_DEVREAD(ABCBUS_TAG, abcbus_slot_device, rst_r) AM_RANGE(0x10, 0x13) AM_MIRROR(0x04) AM_DEVREADWRITE(Z80PIO_TAG, z80pio_device, read_alt, write_alt) ADDRESS_MAP_END @@ -349,7 +349,7 @@ WRITE_LINE_MEMBER( abc80_state::keydown_w ) m_pio->port_a_write(m_key_strobe << 7); } -WRITE8_MEMBER( abc80_state::kbd_w ) +void abc80_state::kbd_w(u8 data) { m_key_data = data; m_key_strobe = 1; @@ -483,7 +483,7 @@ QUICKLOAD_LOAD_MEMBER( abc80_state, bac ) // MACHINE_CONFIG( abc80 ) //------------------------------------------------- -static MACHINE_CONFIG_START( abc80, abc80_state ) +static MACHINE_CONFIG_START( abc80 ) // basic machine hardware MCFG_CPU_ADD(Z80_TAG, Z80, XTAL_11_9808MHz/2/2) // 2.9952 MHz MCFG_CPU_PROGRAM_MAP(abc80_mem) @@ -528,7 +528,7 @@ static MACHINE_CONFIG_START( abc80, abc80_state ) MCFG_RS232_PORT_ADD(RS232_TAG, default_rs232_devices, nullptr) MCFG_DEVICE_ADD(KEYBOARD_TAG, GENERIC_KEYBOARD, 0) - MCFG_GENERIC_KEYBOARD_CB(WRITE8(abc80_state, kbd_w)) + MCFG_GENERIC_KEYBOARD_CB(PUT(abc80_state, kbd_w)) MCFG_QUICKLOAD_ADD("quickload", abc80_state, bac, "bac", 2) @@ -590,5 +590,5 @@ ROM_END // SYSTEM DRIVERS //************************************************************************** -// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS -COMP( 1978, abc80, 0, 0, abc80, 0, driver_device, 0, "Luxor Datorer AB", "ABC 80", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_KEYBOARD ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1978, abc80, 0, 0, abc80, 0, abc80_state, 0, "Luxor Datorer AB", "ABC 80", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_KEYBOARD ) diff --git a/src/mame/drivers/abc80x.cpp b/src/mame/drivers/abc80x.cpp index f2a5d93890b..69910735097 100644 --- a/src/mame/drivers/abc80x.cpp +++ b/src/mame/drivers/abc80x.cpp @@ -448,15 +448,15 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( abc800c_io, AS_IO, 8, abc800_state ) ADDRESS_MAP_UNMAP_HIGH ADDRESS_MAP_GLOBAL_MASK(0xff) - AM_RANGE(0x00, 0x00) AM_MIRROR(0x18) AM_DEVREADWRITE(ABCBUS_TAG, abcbus_slot_t, inp_r, out_w) - AM_RANGE(0x01, 0x01) AM_MIRROR(0x18) AM_DEVREADWRITE(ABCBUS_TAG, abcbus_slot_t, stat_r, cs_w) - AM_RANGE(0x02, 0x02) AM_MIRROR(0x18) AM_DEVWRITE(ABCBUS_TAG, abcbus_slot_t, c1_w) - AM_RANGE(0x03, 0x03) AM_MIRROR(0x18) AM_DEVWRITE(ABCBUS_TAG, abcbus_slot_t, c2_w) - AM_RANGE(0x04, 0x04) AM_MIRROR(0x18) AM_DEVWRITE(ABCBUS_TAG, abcbus_slot_t, c3_w) - AM_RANGE(0x05, 0x05) AM_MIRROR(0x18) AM_DEVWRITE(ABCBUS_TAG, abcbus_slot_t, c4_w) + AM_RANGE(0x00, 0x00) AM_MIRROR(0x18) AM_DEVREADWRITE(ABCBUS_TAG, abcbus_slot_device, inp_r, out_w) + AM_RANGE(0x01, 0x01) AM_MIRROR(0x18) AM_DEVREADWRITE(ABCBUS_TAG, abcbus_slot_device, stat_r, cs_w) + AM_RANGE(0x02, 0x02) AM_MIRROR(0x18) AM_DEVWRITE(ABCBUS_TAG, abcbus_slot_device, c1_w) + AM_RANGE(0x03, 0x03) AM_MIRROR(0x18) AM_DEVWRITE(ABCBUS_TAG, abcbus_slot_device, c2_w) + AM_RANGE(0x04, 0x04) AM_MIRROR(0x18) AM_DEVWRITE(ABCBUS_TAG, abcbus_slot_device, c3_w) + AM_RANGE(0x05, 0x05) AM_MIRROR(0x18) AM_DEVWRITE(ABCBUS_TAG, abcbus_slot_device, c4_w) AM_RANGE(0x05, 0x05) AM_MIRROR(0x18) AM_READ(pling_r) AM_RANGE(0x06, 0x06) AM_MIRROR(0x18) AM_WRITE(hrs_w) - AM_RANGE(0x07, 0x07) AM_MIRROR(0x18) AM_DEVREAD(ABCBUS_TAG, abcbus_slot_t, rst_r) AM_WRITE(hrc_w) + AM_RANGE(0x07, 0x07) AM_MIRROR(0x18) AM_DEVREAD(ABCBUS_TAG, abcbus_slot_device, rst_r) AM_WRITE(hrc_w) AM_RANGE(0x20, 0x23) AM_MIRROR(0x0c) AM_DEVREADWRITE(Z80DART_TAG, z80dart_device, ba_cd_r, ba_cd_w) AM_RANGE(0x40, 0x43) AM_MIRROR(0x1c) AM_DEVREADWRITE(Z80SIO_TAG, z80sio2_device, ba_cd_r, ba_cd_w) AM_RANGE(0x60, 0x63) AM_MIRROR(0x1c) AM_DEVREADWRITE(Z80CTC_TAG, z80ctc_device, read, write) @@ -507,14 +507,14 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( abc802_io, AS_IO, 8, abc802_state ) ADDRESS_MAP_UNMAP_HIGH ADDRESS_MAP_GLOBAL_MASK(0xff) - AM_RANGE(0x00, 0x00) AM_MIRROR(0x18) AM_DEVREADWRITE(ABCBUS_TAG, abcbus_slot_t, inp_r, out_w) - AM_RANGE(0x01, 0x01) AM_MIRROR(0x18) AM_DEVREADWRITE(ABCBUS_TAG, abcbus_slot_t, stat_r, cs_w) - AM_RANGE(0x02, 0x02) AM_MIRROR(0x18) AM_DEVWRITE(ABCBUS_TAG, abcbus_slot_t, c1_w) - AM_RANGE(0x03, 0x03) AM_MIRROR(0x18) AM_DEVWRITE(ABCBUS_TAG, abcbus_slot_t, c2_w) - AM_RANGE(0x04, 0x04) AM_MIRROR(0x18) AM_DEVWRITE(ABCBUS_TAG, abcbus_slot_t, c3_w) - AM_RANGE(0x05, 0x05) AM_MIRROR(0x18) AM_DEVWRITE(ABCBUS_TAG, abcbus_slot_t, c4_w) + AM_RANGE(0x00, 0x00) AM_MIRROR(0x18) AM_DEVREADWRITE(ABCBUS_TAG, abcbus_slot_device, inp_r, out_w) + AM_RANGE(0x01, 0x01) AM_MIRROR(0x18) AM_DEVREADWRITE(ABCBUS_TAG, abcbus_slot_device, stat_r, cs_w) + AM_RANGE(0x02, 0x02) AM_MIRROR(0x18) AM_DEVWRITE(ABCBUS_TAG, abcbus_slot_device, c1_w) + AM_RANGE(0x03, 0x03) AM_MIRROR(0x18) AM_DEVWRITE(ABCBUS_TAG, abcbus_slot_device, c2_w) + AM_RANGE(0x04, 0x04) AM_MIRROR(0x18) AM_DEVWRITE(ABCBUS_TAG, abcbus_slot_device, c3_w) + AM_RANGE(0x05, 0x05) AM_MIRROR(0x18) AM_DEVWRITE(ABCBUS_TAG, abcbus_slot_device, c4_w) AM_RANGE(0x05, 0x05) AM_MIRROR(0x08) AM_READ(pling_r) - AM_RANGE(0x07, 0x07) AM_MIRROR(0x18) AM_DEVREAD(ABCBUS_TAG, abcbus_slot_t, rst_r) + AM_RANGE(0x07, 0x07) AM_MIRROR(0x18) AM_DEVREAD(ABCBUS_TAG, abcbus_slot_device, rst_r) AM_RANGE(0x20, 0x23) AM_MIRROR(0x0c) AM_DEVREADWRITE(Z80DART_TAG, z80dart_device, ba_cd_r, ba_cd_w) AM_RANGE(0x31, 0x31) AM_MIRROR(0x06) AM_DEVREAD(MC6845_TAG, mc6845_device, register_r) AM_RANGE(0x38, 0x38) AM_MIRROR(0x06) AM_DEVWRITE(MC6845_TAG, mc6845_device, address_w) @@ -555,14 +555,14 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( abc806_io, AS_IO, 8, abc806_state ) ADDRESS_MAP_UNMAP_HIGH - AM_RANGE(0x00, 0x00) AM_MIRROR(0xff18) AM_DEVREADWRITE(ABCBUS_TAG, abcbus_slot_t, inp_r, out_w) - AM_RANGE(0x01, 0x01) AM_MIRROR(0xff18) AM_DEVREADWRITE(ABCBUS_TAG, abcbus_slot_t, stat_r, cs_w) - AM_RANGE(0x02, 0x02) AM_MIRROR(0xff18) AM_DEVWRITE(ABCBUS_TAG, abcbus_slot_t, c1_w) - AM_RANGE(0x03, 0x03) AM_MIRROR(0xff18) AM_DEVWRITE(ABCBUS_TAG, abcbus_slot_t, c2_w) - AM_RANGE(0x04, 0x04) AM_MIRROR(0xff18) AM_DEVWRITE(ABCBUS_TAG, abcbus_slot_t, c3_w) - AM_RANGE(0x05, 0x05) AM_MIRROR(0xff18) AM_DEVWRITE(ABCBUS_TAG, abcbus_slot_t, c4_w) + AM_RANGE(0x00, 0x00) AM_MIRROR(0xff18) AM_DEVREADWRITE(ABCBUS_TAG, abcbus_slot_device, inp_r, out_w) + AM_RANGE(0x01, 0x01) AM_MIRROR(0xff18) AM_DEVREADWRITE(ABCBUS_TAG, abcbus_slot_device, stat_r, cs_w) + AM_RANGE(0x02, 0x02) AM_MIRROR(0xff18) AM_DEVWRITE(ABCBUS_TAG, abcbus_slot_device, c1_w) + AM_RANGE(0x03, 0x03) AM_MIRROR(0xff18) AM_DEVWRITE(ABCBUS_TAG, abcbus_slot_device, c2_w) + AM_RANGE(0x04, 0x04) AM_MIRROR(0xff18) AM_DEVWRITE(ABCBUS_TAG, abcbus_slot_device, c3_w) + AM_RANGE(0x05, 0x05) AM_MIRROR(0xff18) AM_DEVWRITE(ABCBUS_TAG, abcbus_slot_device, c4_w) AM_RANGE(0x06, 0x06) AM_MIRROR(0xff18) AM_WRITE(hrs_w) - AM_RANGE(0x07, 0x07) AM_MIRROR(0xff18) AM_DEVREAD(ABCBUS_TAG, abcbus_slot_t, rst_r) AM_WRITE(hrc_w) + AM_RANGE(0x07, 0x07) AM_MIRROR(0xff18) AM_DEVREAD(ABCBUS_TAG, abcbus_slot_device, rst_r) AM_WRITE(hrc_w) AM_RANGE(0x20, 0x23) AM_MIRROR(0xff0c) AM_DEVREADWRITE(Z80DART_TAG, z80dart_device, ba_cd_r, ba_cd_w) AM_RANGE(0x31, 0x31) AM_MIRROR(0xff00) AM_DEVREAD(MC6845_TAG, mc6845_device, register_r) AM_RANGE(0x34, 0x34) AM_SELECT(0xff00) AM_READWRITE(mai_r, mao_w) @@ -1018,7 +1018,7 @@ void abc806_state::machine_reset() // MACHINE_CONFIG( abc800c ) //------------------------------------------------- -static MACHINE_CONFIG_START( abc800c, abc800c_state ) +static MACHINE_CONFIG_START( abc800c ) // basic machine hardware MCFG_CPU_ADD(Z80_TAG, Z80, ABC800_X01/2/2) MCFG_Z80_DAISY_CHAIN(abc800_daisy_chain) @@ -1093,7 +1093,7 @@ MACHINE_CONFIG_END // MACHINE_CONFIG( abc800m ) //------------------------------------------------- -static MACHINE_CONFIG_START( abc800m, abc800m_state ) +static MACHINE_CONFIG_START( abc800m ) // basic machine hardware MCFG_CPU_ADD(Z80_TAG, Z80, ABC800_X01/2/2) MCFG_Z80_DAISY_CHAIN(abc800_daisy_chain) @@ -1168,7 +1168,7 @@ MACHINE_CONFIG_END // MACHINE_CONFIG( abc802 ) //------------------------------------------------- -static MACHINE_CONFIG_START( abc802, abc802_state ) +static MACHINE_CONFIG_START( abc802 ) // basic machine hardware MCFG_CPU_ADD(Z80_TAG, Z80, ABC800_X01/2/2) MCFG_Z80_DAISY_CHAIN(abc800_daisy_chain) @@ -1244,7 +1244,7 @@ MACHINE_CONFIG_END // MACHINE_CONFIG( abc806 ) //------------------------------------------------- -static MACHINE_CONFIG_START( abc806, abc806_state ) +static MACHINE_CONFIG_START( abc806 ) // basic machine hardware MCFG_CPU_ADD(Z80_TAG, Z80, ABC800_X01/2/2) MCFG_Z80_DAISY_CHAIN(abc800_daisy_chain) @@ -1581,8 +1581,8 @@ ROM_END // SYSTEM DRIVERS //************************************************************************** -// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS -COMP( 1981, abc800c, 0, 0, abc800c, abc800, driver_device, 0, "Luxor Datorer AB", "ABC 800 C/HR", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -COMP( 1981, abc800m, abc800c, 0, abc800m, abc800, driver_device, 0, "Luxor Datorer AB", "ABC 800 M/HR", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -COMP( 1983, abc802, 0, 0, abc802, abc802, driver_device, 0, "Luxor Datorer AB", "ABC 802", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -COMP( 1983, abc806, 0, 0, abc806, abc806, driver_device, 0, "Luxor Datorer AB", "ABC 806", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1981, abc800c, 0, 0, abc800c, abc800, abc800c_state, 0, "Luxor Datorer AB", "ABC 800 C/HR", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +COMP( 1981, abc800m, abc800c, 0, abc800m, abc800, abc800m_state, 0, "Luxor Datorer AB", "ABC 800 M/HR", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +COMP( 1983, abc802, 0, 0, abc802, abc802, abc802_state, 0, "Luxor Datorer AB", "ABC 802", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +COMP( 1983, abc806, 0, 0, abc806, abc806, abc806_state, 0, "Luxor Datorer AB", "ABC 806", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/ac1.cpp b/src/mame/drivers/ac1.cpp index 3f3dc6518d6..291c714aa86 100644 --- a/src/mame/drivers/ac1.cpp +++ b/src/mame/drivers/ac1.cpp @@ -126,7 +126,7 @@ static INPUT_PORTS_START( ac1 ) INPUT_PORTS_END /* Machine driver */ -static MACHINE_CONFIG_START( ac1, ac1_state ) +static MACHINE_CONFIG_START( ac1 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_8MHz / 4) MCFG_CPU_PROGRAM_MAP(ac1_mem) @@ -216,7 +216,7 @@ ROM_START( ac1scch ) ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1984, ac1, 0, 0, ac1, ac1, ac1_state, ac1, "Frank Heyder", "Amateurcomputer AC1 Berlin", 0 ) -COMP( 1984, ac1_32, ac1, 0, ac1_32, ac1, ac1_state, ac1, "Frank Heyder", "Amateurcomputer AC1 Berlin (32 lines)", 0 ) -COMP( 1984, ac1scch, ac1, 0, ac1_32, ac1, ac1_state, ac1, "Frank Heyder", "Amateurcomputer AC1 SCCH", 0 ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +COMP( 1984, ac1, 0, 0, ac1, ac1, ac1_state, ac1, "Frank Heyder", "Amateurcomputer AC1 Berlin", 0 ) +COMP( 1984, ac1_32, ac1, 0, ac1_32, ac1, ac1_state, ac1, "Frank Heyder", "Amateurcomputer AC1 Berlin (32 lines)", 0 ) +COMP( 1984, ac1scch, ac1, 0, ac1_32, ac1, ac1_state, ac1, "Frank Heyder", "Amateurcomputer AC1 SCCH", 0 ) diff --git a/src/mame/drivers/ace.cpp b/src/mame/drivers/ace.cpp index a7c855c71ef..3199f95285d 100644 --- a/src/mame/drivers/ace.cpp +++ b/src/mame/drivers/ace.cpp @@ -316,7 +316,7 @@ void aceal_state::machine_reset() elem = 0; } -static MACHINE_CONFIG_START( ace, aceal_state ) +static MACHINE_CONFIG_START( ace ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8080, MASTER_CLOCK/9) /* 2 MHz ? */ @@ -358,4 +358,4 @@ ROM_START( ace ) ROM_END -GAMEL(1976, ace, 0, ace, ace, driver_device, 0, ROT0, "Allied Leisure", "Ace", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND, layout_ace ) +GAMEL(1976, ace, 0, ace, ace, aceal_state, 0, ROT0, "Allied Leisure", "Ace", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND, layout_ace ) diff --git a/src/mame/drivers/aceex.cpp b/src/mame/drivers/aceex.cpp index aa0864d74f6..2ce5a81ed86 100644 --- a/src/mame/drivers/aceex.cpp +++ b/src/mame/drivers/aceex.cpp @@ -78,7 +78,7 @@ void aceex2814_state::machine_reset() #define Y1_CLOCK 40320000 #define Y2_CLOCK 45342720 -static MACHINE_CONFIG_START( aceex2814, aceex2814_state ) +static MACHINE_CONFIG_START( aceex2814 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I80C31, Y2_CLOCK) @@ -90,5 +90,5 @@ ROM_START( aceex2814 ) ROM_LOAD( "dm2814u16-194.bin", 0x00000, 0x10000, CRC(36dc423d) SHA1(0f350b7c533eb5270a72587ab3e050e5fe453006) ) ROM_END -// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS -COMP( 1995, aceex2814, 0, 0, aceex2814, aceex2814, driver_device, 0, "Aceex Corporation", "Aceex 2814", MACHINE_IS_SKELETON ) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 1995, aceex2814, 0, 0, aceex2814, aceex2814, aceex2814_state, 0, "Aceex Corporation", "Aceex 2814", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/acefruit.cpp b/src/mame/drivers/acefruit.cpp index 1b67896a6c6..d8b6197948c 100644 --- a/src/mame/drivers/acefruit.cpp +++ b/src/mame/drivers/acefruit.cpp @@ -604,7 +604,7 @@ static GFXDECODE_START( acefruit ) GFXDECODE_ENTRY( "gfx1", 0x1800, charlayout, 8, 4 ) GFXDECODE_END -static MACHINE_CONFIG_START( acefruit, acefruit_state ) +static MACHINE_CONFIG_START( acefruit ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 2500000) /* 2.5MHz */ @@ -773,7 +773,7 @@ ROM_END GAMEL( 1981?, sidewndr, 0, acefruit, sidewndr, acefruit_state, sidewndr, ROT270, "ACE", "Sidewinder", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND, layout_sidewndr ) -GAMEL( 1981?, spellbnd, 0, acefruit, spellbnd, driver_device, 0, ROT270, "ACE", "Spellbound", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND, layout_sidewndr ) -GAME ( 1982?, starspnr, 0, acefruit, starspnr, driver_device, 0, ROT270, "ACE", "Starspinner (Dutch/Nederlands)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -GAME ( 1982?, acefruit, 0, acefruit, spellbnd, driver_device, 0, ROT270, "ACE", "Silhouette", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // inputs and video in bonus game need fixing on this one +GAMEL( 1981?, spellbnd, 0, acefruit, spellbnd, acefruit_state, 0, ROT270, "ACE", "Spellbound", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND, layout_sidewndr ) +GAME ( 1982?, starspnr, 0, acefruit, starspnr, acefruit_state, 0, ROT270, "ACE", "Starspinner (Dutch/Nederlands)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +GAME ( 1982?, acefruit, 0, acefruit, spellbnd, acefruit_state, 0, ROT270, "ACE", "Silhouette", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // inputs and video in bonus game need fixing on this one // not dumped: Magnum? diff --git a/src/mame/drivers/aces1.cpp b/src/mame/drivers/aces1.cpp index 4c1e55cf97a..48ab87c7adf 100644 --- a/src/mame/drivers/aces1.cpp +++ b/src/mame/drivers/aces1.cpp @@ -428,7 +428,7 @@ static INPUT_PORTS_START( aces1 ) INPUT_PORTS_END -static MACHINE_CONFIG_START( aces1, aces1_state ) +static MACHINE_CONFIG_START( aces1 ) MCFG_CPU_ADD("maincpu", Z80, 4000000) /* ?? Mhz */ MCFG_CPU_PROGRAM_MAP(aces1_map) @@ -835,50 +835,50 @@ DRIVER_INIT_MEMBER(aces1_state,aces1) { } -GAMEL( 199?, ac1clbmn ,0 ,aces1 ,aces1 , aces1_state,aces1 ,ROT0 ,"Ace", "Club Money (Ace) (ACESYS1) (set 1)",MACHINE_IS_SKELETON_MECHANICAL, layout_ac1clbmn ) -GAMEL( 199?, ac1gogld ,0 ,aces1 ,aces1 , aces1_state,aces1 ,ROT0 ,"Ace", "Go For Gold (Ace) (ACESYS1) (set 1)",MACHINE_IS_SKELETON_MECHANICAL, layout_ac1gogld ) -GAME( 199?, ac1hotpf ,0 ,aces1 ,aces1 , aces1_state,aces1 ,ROT0 ,"Ace", "Hot Profit (Ace) (ACESYS1)",MACHINE_IS_SKELETON_MECHANICAL ) -GAMEL( 199?, ac1pster ,0 ,aces1 ,aces1 , aces1_state,aces1 ,ROT0 ,"Ace", "Pound Sterling (Ace) (ACESYS1)",MACHINE_IS_SKELETON_MECHANICAL, layout_ac1pster ) -GAMEL( 199?, ac1pstrt ,0 ,aces1 ,aces1 , aces1_state,aces1 ,ROT0 ,"Pcp", "Pound Stretcher (Pcp) (ACESYS1)",MACHINE_IS_SKELETON_MECHANICAL, layout_ac1pstrt ) -GAMEL( 199?, ac1primt ,0 ,aces1 ,aces1 , aces1_state,aces1 ,ROT0 ,"Ace", "Primetime (Ace) (ACESYS1) (set 1)",MACHINE_IS_SKELETON_MECHANICAL, layout_ac1primt ) -GAMEL( 199?, ac1taklv ,0 ,aces1 ,aces1 , aces1_state,aces1 ,ROT0 ,"Ace", "Take It Or Leave It (Ace) (ACESYS1) (set 1)",MACHINE_IS_SKELETON_MECHANICAL, layout_ac1taklv ) -GAME( 199?, ac1cshtw ,0 ,aces1 ,aces1 , aces1_state,aces1 ,ROT0 ,"Ace", "Cash Towers (Ace) (ACESYS1)",MACHINE_IS_SKELETON_MECHANICAL ) // same ROM as above, combined, original machine apparently plays the same, reskinned machine? -GAME( 199?, ac1bbclb ,0 ,aces1 ,aces1 , aces1_state,aces1 ,ROT0 ,"Ace", "Big Break Club (Ace) (ACESYS1) (set 1)",MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, ac1bbclba ,ac1bbclb ,aces1 ,aces1 , aces1_state,aces1 ,ROT0 ,"Ace", "Big Break Club (Ace) (ACESYS1) (set 2)",MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, ac1clbsv ,0 ,aces1 ,aces1 , aces1_state,aces1 ,ROT0 ,"Ace", "Club Sovereign (Ace) (ACESYS1)",MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, ac1clbxt ,0 ,aces1 ,aces1 , aces1_state,aces1 ,ROT0 ,"Ace", "Club Xtra (Ace) (ACESYS1) (set 1)",MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, ac1clbxta ,ac1clbxt ,aces1 ,aces1 , aces1_state,aces1 ,ROT0 ,"Ace", "Club Xtra (Ace) (ACESYS1) (set 2)",MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, ac1piaca ,0 ,aces1 ,aces1 , aces1_state,aces1 ,ROT0 ,"Ace", "Play It Again Casino (Ace) (ACESYS1)",MACHINE_IS_SKELETON_MECHANICAL ) // Same ROMs were in 'Play It Again Deluxe' -GAME( 199?, ac1piacl ,0 ,aces1 ,aces1 , aces1_state,aces1 ,ROT0 ,"Ace", "Play It Again Club (Ace) (ACESYS1) (set 1)",MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, ac1piacla ,ac1piacl ,aces1 ,aces1 , aces1_state,aces1 ,ROT0 ,"Ace", "Play It Again Club (Ace) (ACESYS1) (set 2)",MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, ac1piaclb ,ac1piacl ,aces1 ,aces1 , aces1_state,aces1 ,ROT0 ,"Ace", "Play It Again Club (Ace) (ACESYS1) (set 3)",MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, ac1piaclc ,ac1piacl ,aces1 ,aces1 , aces1_state,aces1 ,ROT0 ,"Ace", "Play It Again Club (Ace) (ACESYS1) (set 4)",MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, ac1prmcl ,0 ,aces1 ,aces1 , aces1_state,aces1 ,ROT0 ,"Ace", "Premier Club (Ace) (ACESYS1) (set 1)",MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, ac1prmcla ,ac1prmcl ,aces1 ,aces1 , aces1_state,aces1 ,ROT0 ,"Ace", "Premier Club (Ace) (ACESYS1) (set 2)",MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, ac1prmclb ,ac1prmcl ,aces1 ,aces1 , aces1_state,aces1 ,ROT0 ,"Ace", "Premier Club (Ace) (ACESYS1) (set 3)",MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, ac1prmclc ,ac1prmcl ,aces1 ,aces1 , aces1_state,aces1 ,ROT0 ,"Ace", "Premier Club (Ace) (ACESYS1) (set 4)",MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, ac1rundx ,0 ,aces1 ,aces1 , aces1_state,aces1 ,ROT0 ,"Ace", "Runner Deluxe Club (Ace) (ACESYS1) (set 1)",MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, ac1rundxa ,ac1rundx ,aces1 ,aces1 , aces1_state,aces1 ,ROT0 ,"Ace", "Runner Deluxe Club (Ace) (ACESYS1) (set 2)",MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, ac1totb ,0 ,aces1 ,aces1 , aces1_state,aces1 ,ROT0 ,"Ace", "Top Of The Bill (Ace) (ACESYS1)",MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, ac1shid ,0 ,aces1 ,aces1 , aces1_state,aces1 ,ROT0 ,"Ace", "Super Hi De Hi (Ace) (ACESYS1) (set 1)",MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, ac1shida ,ac1shid ,aces1 ,aces1 , aces1_state,aces1 ,ROT0 ,"Ace", "Super Hi De Hi (Ace) (ACESYS1) (set 2)",MACHINE_IS_SKELETON_MECHANICAL ) -GAME(199?, ac1dbldx ,0 ,aces1 ,aces1 , aces1_state,aces1, ROT0, "Pcp", "Double Deluxe (Pcp) (ACESYS1)",MACHINE_IS_SKELETON_MECHANICAL ) -GAME(199?, ac1nudbk ,0 ,aces1 ,aces1 , aces1_state,aces1, ROT0, "Pcp", "Nudge Break (Pcp) (ACESYS1) (set 1)",MACHINE_IS_SKELETON_MECHANICAL ) -GAME(199?, ac1nudbka ,ac1nudbk ,aces1 ,aces1 , aces1_state,aces1, ROT0, "Pcp", "Nudge Break (Pcp) (ACESYS1) (set 2)",MACHINE_IS_SKELETON_MECHANICAL ) -GAME(199?, ac1nudbkb ,ac1nudbk ,aces1 ,aces1 , aces1_state,aces1, ROT0, "Pcp", "Nudge Break (Pcp) (ACESYS1) (set 3)",MACHINE_IS_SKELETON_MECHANICAL ) -GAME(199?, ac1nudbkc ,ac1nudbk ,aces1 ,aces1 , aces1_state,aces1, ROT0, "Pcp", "Nudge Break (Pcp) (ACESYS1) (set 4)",MACHINE_IS_SKELETON_MECHANICAL ) -GAME(199?, ac1nudbkd ,ac1nudbk ,aces1 ,aces1 , aces1_state,aces1, ROT0, "Pcp", "Nudge Break (Pcp) (ACESYS1) (set 5)",MACHINE_IS_SKELETON_MECHANICAL ) -GAME(199?, ac1sstrk ,0 ,aces1 ,aces1 , aces1_state,aces1, ROT0, "Pcp", "Starstruck (Pcp) (ACESYS1) (set 1)",MACHINE_IS_SKELETON_MECHANICAL ) -GAME(199?, ac1sstrka ,ac1sstrk ,aces1 ,aces1 , aces1_state,aces1, ROT0, "Pcp", "Starstruck (Pcp) (ACESYS1) (set 2)",MACHINE_IS_SKELETON_MECHANICAL ) -GAME(199?, ac1sstrkb ,ac1sstrk ,aces1 ,aces1 , aces1_state,aces1, ROT0, "Pcp", "Starstruck (Pcp) (ACESYS1) (set 3)",MACHINE_IS_SKELETON_MECHANICAL ) -GAME(199?, ac1xpres ,0 ,aces1 ,aces1 , aces1_state,aces1, ROT0, "Pcp", "Xpress (Pcp) (ACESYS1)",MACHINE_IS_SKELETON_MECHANICAL ) -GAME(199?, ac1roll ,0 ,aces1 ,aces1 , aces1_state,aces1, ROT0, "Pcp", "Roll Up (Pcp) (ACESYS1) (set 1)",MACHINE_IS_SKELETON_MECHANICAL ) -GAME(199?, ac1rolla ,ac1roll ,aces1 ,aces1 , aces1_state,aces1, ROT0, "Pcp", "Roll Up (Pcp) (ACESYS1) (set 2)",MACHINE_IS_SKELETON_MECHANICAL ) -GAME(199?, ac1rollb ,ac1roll ,aces1 ,aces1 , aces1_state,aces1, ROT0, "Pcp", "Roll Up (Pcp) (ACESYS1) (set 3)",MACHINE_IS_SKELETON_MECHANICAL ) -GAME(199?, ac1bluec ,0 ,aces1 ,aces1 , aces1_state,aces1, ROT0, "Pcp", "Blue Chip (Pcp) (ACESYS1) (set 1)",MACHINE_IS_SKELETON_MECHANICAL ) -GAME(199?, ac1blueca ,ac1bluec ,aces1 ,aces1 , aces1_state,aces1, ROT0, "Pcp", "Blue Chip (Pcp) (ACESYS1) (set 2)",MACHINE_IS_SKELETON_MECHANICAL ) -GAME(199?, ac1bluecb ,ac1bluec ,aces1 ,aces1 , aces1_state,aces1, ROT0, "Pcp", "Blue Chip (Pcp) (ACESYS1) (set 3)",MACHINE_IS_SKELETON_MECHANICAL ) -GAME(199?, ac1bluecc ,ac1bluec ,aces1 ,aces1 , aces1_state,aces1, ROT0, "Pcp", "Blue Chip (Pcp) (ACESYS1) (set 4)",MACHINE_IS_SKELETON_MECHANICAL ) -GAME(199?, ac1bluecd ,ac1bluec ,aces1 ,aces1 , aces1_state,aces1, ROT0, "Pcp", "Blue Chip (Pcp) (ACESYS1) (set 5)",MACHINE_IS_SKELETON_MECHANICAL ) -GAME(199?, ac1hideh ,0 ,aces1 ,aces1 , aces1_state,aces1, ROT0, "Ace", "Hi De Hi Deluxe (Ace) (ACESYS1) (set 1)",MACHINE_IS_SKELETON_MECHANICAL ) // was in Hi De Hi (Ace) (sp.ACE) set -GAME(199?, ac1hideha ,sp_hideh ,aces1 ,aces1 , aces1_state,aces1, ROT0, "Ace", "Hi De Hi Deluxe (Ace) (ACESYS1) (set 2)",MACHINE_IS_SKELETON_MECHANICAL ) // ^^ +GAMEL( 199?, ac1clbmn , 0 , aces1, aces1, aces1_state, aces1, ROT0, "Ace", "Club Money (Ace) (ACESYS1) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_ac1clbmn ) +GAMEL( 199?, ac1gogld , 0 , aces1, aces1, aces1_state, aces1, ROT0, "Ace", "Go For Gold (Ace) (ACESYS1) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_ac1gogld ) +GAME( 199?, ac1hotpf , 0 , aces1, aces1, aces1_state, aces1, ROT0, "Ace", "Hot Profit (Ace) (ACESYS1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAMEL( 199?, ac1pster , 0 , aces1, aces1, aces1_state, aces1, ROT0, "Ace", "Pound Sterling (Ace) (ACESYS1)", MACHINE_IS_SKELETON_MECHANICAL, layout_ac1pster ) +GAMEL( 199?, ac1pstrt , 0 , aces1, aces1, aces1_state, aces1, ROT0, "Pcp", "Pound Stretcher (Pcp) (ACESYS1)", MACHINE_IS_SKELETON_MECHANICAL, layout_ac1pstrt ) +GAMEL( 199?, ac1primt , 0 , aces1, aces1, aces1_state, aces1, ROT0, "Ace", "Primetime (Ace) (ACESYS1) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_ac1primt ) +GAMEL( 199?, ac1taklv , 0 , aces1, aces1, aces1_state, aces1, ROT0, "Ace", "Take It Or Leave It (Ace) (ACESYS1) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_ac1taklv ) +GAME( 199?, ac1cshtw , 0 , aces1, aces1, aces1_state, aces1, ROT0, "Ace", "Cash Towers (Ace) (ACESYS1)", MACHINE_IS_SKELETON_MECHANICAL ) // same ROM as above, combined, original machine apparently plays the same, reskinned machine? +GAME( 199?, ac1bbclb , 0 , aces1, aces1, aces1_state, aces1, ROT0, "Ace", "Big Break Club (Ace) (ACESYS1) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, ac1bbclba , ac1bbclb , aces1, aces1, aces1_state, aces1, ROT0, "Ace", "Big Break Club (Ace) (ACESYS1) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, ac1clbsv , 0 , aces1, aces1, aces1_state, aces1, ROT0, "Ace", "Club Sovereign (Ace) (ACESYS1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, ac1clbxt , 0 , aces1, aces1, aces1_state, aces1, ROT0, "Ace", "Club Xtra (Ace) (ACESYS1) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, ac1clbxta , ac1clbxt , aces1, aces1, aces1_state, aces1, ROT0, "Ace", "Club Xtra (Ace) (ACESYS1) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, ac1piaca , 0 , aces1, aces1, aces1_state, aces1, ROT0, "Ace", "Play It Again Casino (Ace) (ACESYS1)", MACHINE_IS_SKELETON_MECHANICAL ) // Same ROMs were in 'Play It Again Deluxe' +GAME( 199?, ac1piacl , 0 , aces1, aces1, aces1_state, aces1, ROT0, "Ace", "Play It Again Club (Ace) (ACESYS1) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, ac1piacla , ac1piacl , aces1, aces1, aces1_state, aces1, ROT0, "Ace", "Play It Again Club (Ace) (ACESYS1) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, ac1piaclb , ac1piacl , aces1, aces1, aces1_state, aces1, ROT0, "Ace", "Play It Again Club (Ace) (ACESYS1) (set 3)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, ac1piaclc , ac1piacl , aces1, aces1, aces1_state, aces1, ROT0, "Ace", "Play It Again Club (Ace) (ACESYS1) (set 4)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, ac1prmcl , 0 , aces1, aces1, aces1_state, aces1, ROT0, "Ace", "Premier Club (Ace) (ACESYS1) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, ac1prmcla , ac1prmcl , aces1, aces1, aces1_state, aces1, ROT0, "Ace", "Premier Club (Ace) (ACESYS1) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, ac1prmclb , ac1prmcl , aces1, aces1, aces1_state, aces1, ROT0, "Ace", "Premier Club (Ace) (ACESYS1) (set 3)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, ac1prmclc , ac1prmcl , aces1, aces1, aces1_state, aces1, ROT0, "Ace", "Premier Club (Ace) (ACESYS1) (set 4)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, ac1rundx , 0 , aces1, aces1, aces1_state, aces1, ROT0, "Ace", "Runner Deluxe Club (Ace) (ACESYS1) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, ac1rundxa , ac1rundx , aces1, aces1, aces1_state, aces1, ROT0, "Ace", "Runner Deluxe Club (Ace) (ACESYS1) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, ac1totb , 0 , aces1, aces1, aces1_state, aces1, ROT0, "Ace", "Top Of The Bill (Ace) (ACESYS1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, ac1shid , 0 , aces1, aces1, aces1_state, aces1, ROT0, "Ace", "Super Hi De Hi (Ace) (ACESYS1) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, ac1shida , ac1shid , aces1, aces1, aces1_state, aces1, ROT0, "Ace", "Super Hi De Hi (Ace) (ACESYS1) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, ac1dbldx , 0 , aces1, aces1, aces1_state, aces1, ROT0, "Pcp", "Double Deluxe (Pcp) (ACESYS1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, ac1nudbk , 0 , aces1, aces1, aces1_state, aces1, ROT0, "Pcp", "Nudge Break (Pcp) (ACESYS1) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, ac1nudbka , ac1nudbk , aces1, aces1, aces1_state, aces1, ROT0, "Pcp", "Nudge Break (Pcp) (ACESYS1) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, ac1nudbkb , ac1nudbk , aces1, aces1, aces1_state, aces1, ROT0, "Pcp", "Nudge Break (Pcp) (ACESYS1) (set 3)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, ac1nudbkc , ac1nudbk , aces1, aces1, aces1_state, aces1, ROT0, "Pcp", "Nudge Break (Pcp) (ACESYS1) (set 4)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, ac1nudbkd , ac1nudbk , aces1, aces1, aces1_state, aces1, ROT0, "Pcp", "Nudge Break (Pcp) (ACESYS1) (set 5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, ac1sstrk , 0 , aces1, aces1, aces1_state, aces1, ROT0, "Pcp", "Starstruck (Pcp) (ACESYS1) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, ac1sstrka , ac1sstrk , aces1, aces1, aces1_state, aces1, ROT0, "Pcp", "Starstruck (Pcp) (ACESYS1) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, ac1sstrkb , ac1sstrk , aces1, aces1, aces1_state, aces1, ROT0, "Pcp", "Starstruck (Pcp) (ACESYS1) (set 3)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, ac1xpres , 0 , aces1, aces1, aces1_state, aces1, ROT0, "Pcp", "Xpress (Pcp) (ACESYS1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, ac1roll , 0 , aces1, aces1, aces1_state, aces1, ROT0, "Pcp", "Roll Up (Pcp) (ACESYS1) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, ac1rolla , ac1roll , aces1, aces1, aces1_state, aces1, ROT0, "Pcp", "Roll Up (Pcp) (ACESYS1) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, ac1rollb , ac1roll , aces1, aces1, aces1_state, aces1, ROT0, "Pcp", "Roll Up (Pcp) (ACESYS1) (set 3)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, ac1bluec , 0 , aces1, aces1, aces1_state, aces1, ROT0, "Pcp", "Blue Chip (Pcp) (ACESYS1) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, ac1blueca , ac1bluec , aces1, aces1, aces1_state, aces1, ROT0, "Pcp", "Blue Chip (Pcp) (ACESYS1) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, ac1bluecb , ac1bluec , aces1, aces1, aces1_state, aces1, ROT0, "Pcp", "Blue Chip (Pcp) (ACESYS1) (set 3)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, ac1bluecc , ac1bluec , aces1, aces1, aces1_state, aces1, ROT0, "Pcp", "Blue Chip (Pcp) (ACESYS1) (set 4)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, ac1bluecd , ac1bluec , aces1, aces1, aces1_state, aces1, ROT0, "Pcp", "Blue Chip (Pcp) (ACESYS1) (set 5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, ac1hideh , 0 , aces1, aces1, aces1_state, aces1, ROT0, "Ace", "Hi De Hi Deluxe (Ace) (ACESYS1) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) // was in Hi De Hi (Ace) (sp.ACE) set +GAME( 199?, ac1hideha , sp_hideh , aces1, aces1, aces1_state, aces1, ROT0, "Ace", "Hi De Hi Deluxe (Ace) (ACESYS1) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) // ^^ diff --git a/src/mame/drivers/acesp.cpp b/src/mame/drivers/acesp.cpp index 80567301201..43ad6558617 100644 --- a/src/mame/drivers/acesp.cpp +++ b/src/mame/drivers/acesp.cpp @@ -79,7 +79,7 @@ static INPUT_PORTS_START( ace_sp ) INPUT_PORTS_END -static MACHINE_CONFIG_START( ace_sp, ace_sp_state ) +static MACHINE_CONFIG_START( ace_sp ) MCFG_CPU_ADD("maincpu", HD6303Y, 1000000) MCFG_CPU_PROGRAM_MAP(ace_sp_map) MCFG_CPU_IO_MAP(ace_sp_portmap) diff --git a/src/mame/drivers/acommand.cpp b/src/mame/drivers/acommand.cpp index 690b745dcd3..0ea7854d02b 100644 --- a/src/mame/drivers/acommand.cpp +++ b/src/mame/drivers/acommand.cpp @@ -458,7 +458,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(acommand_state::acommand_scanline) m_maincpu->set_input_line(3, HOLD_LINE); } -static MACHINE_CONFIG_START( acommand, acommand_state ) +static MACHINE_CONFIG_START( acommand ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",M68000,12000000) @@ -484,11 +484,11 @@ static MACHINE_CONFIG_START( acommand, acommand_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_OKIM6295_ADD("oki1", 2112000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki1", 2112000, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) - MCFG_OKIM6295_ADD("oki2", 2112000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki2", 2112000, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) MACHINE_CONFIG_END @@ -531,4 +531,4 @@ ROM_START( acommand ) ROM_LOAD( "jalmr17.bin", 0x080000, 0x080000, CRC(9d428fb7) SHA1(02f72938d73db932bd217620a175a05215f6016a) ) ROM_END -GAMEL( 1994, acommand, 0, acommand, acommand, driver_device, 0, ROT0, "Jaleco", "Alien Command" , MACHINE_NOT_WORKING | MACHINE_MECHANICAL, layout_acommand ) +GAMEL( 1994, acommand, 0, acommand, acommand, acommand_state, 0, ROT0, "Jaleco", "Alien Command" , MACHINE_NOT_WORKING | MACHINE_MECHANICAL, layout_acommand ) diff --git a/src/mame/drivers/acrnsys1.cpp b/src/mame/drivers/acrnsys1.cpp index a9faef5e6df..5ac7f7eb17c 100644 --- a/src/mame/drivers/acrnsys1.cpp +++ b/src/mame/drivers/acrnsys1.cpp @@ -242,7 +242,7 @@ INPUT_PORTS_END MACHINE DRIVERS ***************************************************************************/ -static MACHINE_CONFIG_START( acrnsys1, acrnsys1_state ) +static MACHINE_CONFIG_START( acrnsys1 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, 1008000) /* 1.008 MHz */ MCFG_CPU_PROGRAM_MAP(acrnsys1_map) @@ -280,5 +280,5 @@ ROM_END GAME DRIVERS ***************************************************************************/ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1978, acrnsys1, 0, 0, acrnsys1, acrnsys1, driver_device, 0, "Acorn", "Acorn System 1", 0 ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +COMP( 1978, acrnsys1, 0, 0, acrnsys1, acrnsys1, acrnsys1_state, 0, "Acorn", "Acorn System 1", 0 ) diff --git a/src/mame/drivers/actfancr.cpp b/src/mame/drivers/actfancr.cpp index 679feec959e..c4b5a9c38ad 100644 --- a/src/mame/drivers/actfancr.cpp +++ b/src/mame/drivers/actfancr.cpp @@ -290,7 +290,7 @@ MACHINE_RESET_MEMBER(actfancr_state,triothep) /******************************************************************************/ -static MACHINE_CONFIG_START( actfancr, actfancr_state ) +static MACHINE_CONFIG_START( actfancr ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", H6280, 21477200/3) /* Should be accurate */ @@ -340,11 +340,11 @@ static MACHINE_CONFIG_START( actfancr, actfancr_state ) MCFG_YM3812_IRQ_HANDLER(INPUTLINE("audiocpu", M6502_IRQ_LINE)) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.90) - MCFG_OKIM6295_ADD("oki", 1024188, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki", 1024188, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.85) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( triothep, actfancr_state ) +static MACHINE_CONFIG_START( triothep ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",H6280,XTAL_21_4772MHz/3) /* XIN=21.4772Mhz, verified on pcb */ @@ -397,7 +397,7 @@ static MACHINE_CONFIG_START( triothep, actfancr_state ) MCFG_YM3812_IRQ_HANDLER(INPUTLINE("audiocpu", M6502_IRQ_LINE)) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.90) - MCFG_OKIM6295_ADD("oki", XTAL_1_056MHz, OKIM6295_PIN7_HIGH) /* verified on pcb */ + MCFG_OKIM6295_ADD("oki", XTAL_1_056MHz, PIN7_HIGH) /* verified on pcb */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.85) MACHINE_CONFIG_END @@ -571,8 +571,8 @@ ROM_END /******************************************************************************/ -GAME( 1989, actfancr, 0, actfancr, actfancr, driver_device, 0, ROT0, "Data East Corporation", "Act-Fancer Cybernetick Hyper Weapon (World revision 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, actfancr1,actfancr, actfancr, actfancr, driver_device, 0, ROT0, "Data East Corporation", "Act-Fancer Cybernetick Hyper Weapon (World revision 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, actfancrj,actfancr, actfancr, actfancr, driver_device, 0, ROT0, "Data East Corporation", "Act-Fancer Cybernetick Hyper Weapon (Japan revision 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, triothep, 0, triothep, triothep, driver_device, 0, ROT0, "Data East Corporation", "Trio The Punch - Never Forget Me... (World)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, triothepj,triothep, triothep, triothep, driver_device, 0, ROT0, "Data East Corporation", "Trio The Punch - Never Forget Me... (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, actfancr, 0, actfancr, actfancr, actfancr_state, 0, ROT0, "Data East Corporation", "Act-Fancer Cybernetick Hyper Weapon (World revision 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, actfancr1,actfancr, actfancr, actfancr, actfancr_state, 0, ROT0, "Data East Corporation", "Act-Fancer Cybernetick Hyper Weapon (World revision 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, actfancrj,actfancr, actfancr, actfancr, actfancr_state, 0, ROT0, "Data East Corporation", "Act-Fancer Cybernetick Hyper Weapon (Japan revision 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, triothep, 0, triothep, triothep, actfancr_state, 0, ROT0, "Data East Corporation", "Trio The Punch - Never Forget Me... (World)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, triothepj,triothep, triothep, triothep, actfancr_state, 0, ROT0, "Data East Corporation", "Trio The Punch - Never Forget Me... (Japan)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/adam.cpp b/src/mame/drivers/adam.cpp index 230518deb05..bb9ffe50744 100644 --- a/src/mame/drivers/adam.cpp +++ b/src/mame/drivers/adam.cpp @@ -1047,7 +1047,7 @@ DEVICE_INPUT_DEFAULTS_END // MACHINE_CONFIG( adam ) //------------------------------------------------- -static MACHINE_CONFIG_START( adam, adam_state ) +static MACHINE_CONFIG_START( adam ) // basic machine hardware MCFG_CPU_ADD(Z80_TAG, Z80, XTAL_7_15909MHz/2) MCFG_CPU_PROGRAM_MAP(adam_mem) @@ -1146,5 +1146,5 @@ ROM_END // SYSTEM DRIVERS //************************************************************************** -// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS -COMP( 1982, adam, 0, coleco, adam, adam, driver_device, 0, "Coleco", "Adam", MACHINE_SUPPORTS_SAVE ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1982, adam, 0, coleco, adam, adam, adam_state, 0, "Coleco", "Adam", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/adp.cpp b/src/mame/drivers/adp.cpp index eec373a4bf3..e12f46bec30 100644 --- a/src/mame/drivers/adp.cpp +++ b/src/mame/drivers/adp.cpp @@ -177,7 +177,7 @@ public: m_duart(*this, "duart68681"), m_palette(*this, "palette"), m_in0(*this, "IN0") - { } + { } required_device m_microtouch; required_device m_maincpu; @@ -533,7 +533,7 @@ static ADDRESS_MAP_START( fstation_hd63484_map, AS_0, 16, adp_state ) AM_RANGE(0x80000, 0xfffff) AM_RAM ADDRESS_MAP_END -static MACHINE_CONFIG_START( quickjac, adp_state ) +static MACHINE_CONFIG_START( quickjac ) MCFG_CPU_ADD("maincpu", M68000, 8000000) MCFG_CPU_PROGRAM_MAP(quickjac_mem) @@ -721,11 +721,11 @@ ROM_START( fstation ) ROM_END -GAME( 1990, backgamn, 0, backgamn, skattv, driver_device, 0, ROT0, "ADP", "Backgammon", MACHINE_NOT_WORKING ) -GAME( 1993, quickjac, 0, quickjac, quickjac, driver_device, 0, ROT0, "ADP", "Quick Jack", MACHINE_NOT_WORKING ) -GAME( 1994, skattv, 0, skattv, skattv, driver_device, 0, ROT0, "ADP", "Skat TV", MACHINE_NOT_WORKING ) -GAME( 1995, skattva, skattv, skattva, skattva, driver_device, 0, ROT0, "ADP", "Skat TV (version TS3)", MACHINE_NOT_WORKING ) -GAME( 1997, fashiong, 0, fashiong, skattv, driver_device, 0, ROT0, "ADP", "Fashion Gambler (set 1)", MACHINE_NOT_WORKING ) -GAME( 1997, fashiong2, fashiong, fashiong, skattv, driver_device, 0, ROT0, "ADP", "Fashion Gambler (set 2)", MACHINE_NOT_WORKING ) -GAME( 1999, funlddlx, 0, funland, skattv, driver_device, 0, ROT0, "Stella", "Funny Land de Luxe", MACHINE_NOT_WORKING ) -GAME( 2000, fstation, 0, fstation, fstation, driver_device, 0, ROT0, "ADP", "Fun Station Spielekoffer 9 Spiele", MACHINE_NOT_WORKING ) +GAME( 1990, backgamn, 0, backgamn, skattv, adp_state, 0, ROT0, "ADP", "Backgammon", MACHINE_NOT_WORKING ) +GAME( 1993, quickjac, 0, quickjac, quickjac, adp_state, 0, ROT0, "ADP", "Quick Jack", MACHINE_NOT_WORKING ) +GAME( 1994, skattv, 0, skattv, skattv, adp_state, 0, ROT0, "ADP", "Skat TV", MACHINE_NOT_WORKING ) +GAME( 1995, skattva, skattv, skattva, skattva, adp_state, 0, ROT0, "ADP", "Skat TV (version TS3)", MACHINE_NOT_WORKING ) +GAME( 1997, fashiong, 0, fashiong, skattv, adp_state, 0, ROT0, "ADP", "Fashion Gambler (set 1)", MACHINE_NOT_WORKING ) +GAME( 1997, fashiong2, fashiong, fashiong, skattv, adp_state, 0, ROT0, "ADP", "Fashion Gambler (set 2)", MACHINE_NOT_WORKING ) +GAME( 1999, funlddlx, 0, funland, skattv, adp_state, 0, ROT0, "Stella", "Funny Land de Luxe", MACHINE_NOT_WORKING ) +GAME( 2000, fstation, 0, fstation, fstation, adp_state, 0, ROT0, "ADP", "Fun Station Spielekoffer 9 Spiele", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/advision.cpp b/src/mame/drivers/advision.cpp index 7b4645726bf..88b545390fa 100644 --- a/src/mame/drivers/advision.cpp +++ b/src/mame/drivers/advision.cpp @@ -61,7 +61,7 @@ INPUT_PORTS_END /* Machine Driver */ -static MACHINE_CONFIG_START( advision, advision_state ) +static MACHINE_CONFIG_START( advision ) /* basic machine hardware */ MCFG_CPU_ADD(I8048_TAG, I8048, XTAL_11MHz) MCFG_CPU_PROGRAM_MAP(program_map) @@ -114,5 +114,5 @@ ROM_END /* Game Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -CONS( 1982, advision, 0, 0, advision, advision, driver_device, 0, "Entex", "Adventure Vision", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +CONS( 1982, advision, 0, 0, advision, advision, advision_state, 0, "Entex", "Adventure Vision", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/aeroboto.cpp b/src/mame/drivers/aeroboto.cpp index 25dd1ee8cf4..ea0f5ffce98 100644 --- a/src/mame/drivers/aeroboto.cpp +++ b/src/mame/drivers/aeroboto.cpp @@ -236,7 +236,7 @@ void aeroboto_state::machine_reset() m_sy = 0; } -static MACHINE_CONFIG_START( formatz, aeroboto_state ) +static MACHINE_CONFIG_START( formatz ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809, XTAL_10MHz/8) /* verified on pcb */ @@ -338,5 +338,5 @@ ROM_END -GAME( 1984, formatz, 0, formatz, formatz, driver_device, 0, ROT0, "Jaleco", "Formation Z", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1984, aeroboto, formatz, formatz, formatz, driver_device, 0, ROT0, "Jaleco (Williams license)", "Aeroboto", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1984, formatz, 0, formatz, formatz, aeroboto_state, 0, ROT0, "Jaleco", "Formation Z", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1984, aeroboto, formatz, formatz, formatz, aeroboto_state, 0, ROT0, "Jaleco (Williams license)", "Aeroboto", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/aerofgt.cpp b/src/mame/drivers/aerofgt.cpp index 0ef45ccc3c6..5a1d4b662b6 100644 --- a/src/mame/drivers/aerofgt.cpp +++ b/src/mame/drivers/aerofgt.cpp @@ -1332,7 +1332,7 @@ MACHINE_RESET_MEMBER(aerofgt_state,aerofgt) m_soundbank->set_entry(0); /* needed by spinlbrk */ } -static MACHINE_CONFIG_START( pspikes, aerofgt_state ) +static MACHINE_CONFIG_START( pspikes ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",M68000,XTAL_20MHz/2) /* verified on pcb */ @@ -1382,7 +1382,7 @@ static MACHINE_CONFIG_START( pspikes, aerofgt_state ) MCFG_SOUND_ROUTE(2, "rspeaker", 1.0) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( spikes91, aerofgt_state ) +static MACHINE_CONFIG_START( spikes91 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",M68000,20000000/2) /* 10 MHz (?) */ @@ -1420,7 +1420,7 @@ static MACHINE_CONFIG_START( spikes91, aerofgt_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( pspikesb, aerofgt_state ) +static MACHINE_CONFIG_START( pspikesb ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",M68000,20000000/2) /* 10 MHz (?) */ @@ -1450,11 +1450,11 @@ static MACHINE_CONFIG_START( pspikesb, aerofgt_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", 1056000, OKIM6295_PIN7_LOW) // clock frequency & pin 7 not verified, pin high causes sound pitch to be too high + MCFG_OKIM6295_ADD("oki", 1056000, PIN7_LOW) // clock frequency & pin 7 not verified, pin high causes sound pitch to be too high MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( pspikesc, aerofgt_state ) +static MACHINE_CONFIG_START( pspikesc ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",M68000,20000000/2) /* 10 MHz (?) */ @@ -1489,11 +1489,11 @@ static MACHINE_CONFIG_START( pspikesc, aerofgt_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", 1056000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki", 1056000, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( karatblz, aerofgt_state ) +static MACHINE_CONFIG_START( karatblz ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",M68000,20000000/2) /* 10 MHz (?) */ @@ -1548,7 +1548,7 @@ static MACHINE_CONFIG_START( karatblz, aerofgt_state ) MCFG_SOUND_ROUTE(2, "rspeaker", 1.0) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( karatblzbl, aerofgt_state ) +static MACHINE_CONFIG_START( karatblzbl ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",M68000,20000000/2) /* 10 MHz (?) */ @@ -1604,7 +1604,7 @@ static MACHINE_CONFIG_START( karatblzbl, aerofgt_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( spinlbrk, aerofgt_state ) +static MACHINE_CONFIG_START( spinlbrk ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",M68000,XTAL_20MHz/2) /* verified on pcb */ @@ -1660,7 +1660,7 @@ static MACHINE_CONFIG_START( spinlbrk, aerofgt_state ) MCFG_SOUND_ROUTE(2, "rspeaker", 1.0) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( turbofrc, aerofgt_state ) +static MACHINE_CONFIG_START( turbofrc ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",M68000,XTAL_20MHz/2) /* verified on pcb */ @@ -1715,7 +1715,7 @@ static MACHINE_CONFIG_START( turbofrc, aerofgt_state ) MCFG_SOUND_ROUTE(2, "rspeaker", 1.0) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( aerofgtb, aerofgt_state ) +static MACHINE_CONFIG_START( aerofgtb ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",M68000,20000000/2) /* 10 MHz (?) */ @@ -1771,7 +1771,7 @@ static MACHINE_CONFIG_START( aerofgtb, aerofgt_state ) MCFG_SOUND_ROUTE(2, "rspeaker", 1.0) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( aerofgt, aerofgt_state ) +static MACHINE_CONFIG_START( aerofgt ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",M68000,XTAL_20MHz/2) /* verified on pcb */ @@ -1830,7 +1830,7 @@ static MACHINE_CONFIG_START( aerofgt, aerofgt_state ) MCFG_SOUND_ROUTE(2, "rspeaker", 1.0) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( aerfboot, aerofgt_state ) +static MACHINE_CONFIG_START( aerfboot ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",M68000,20000000/2) /* 10 MHz (?) */ @@ -1866,12 +1866,12 @@ static MACHINE_CONFIG_START( aerfboot, aerofgt_state ) MCFG_GENERIC_LATCH_8_ADD("soundlatch") - MCFG_OKIM6295_ADD("oki", 1056000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki", 1056000, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_DEVICE_ADDRESS_MAP(AS_0, oki_map) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( aerfboo2, aerofgt_state ) +static MACHINE_CONFIG_START( aerfboo2 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",M68000,20000000/2) /* 10 MHz (?) */ @@ -1902,11 +1902,11 @@ static MACHINE_CONFIG_START( aerfboo2, aerofgt_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", 1056000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki", 1056000, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( wbbc97, aerofgt_state ) +static MACHINE_CONFIG_START( wbbc97 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",M68000,20000000/2) /* 10 MHz (?) */ @@ -1949,7 +1949,7 @@ static MACHINE_CONFIG_START( wbbc97, aerofgt_state ) MCFG_YM3812_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MCFG_OKIM6295_ADD("oki", 1056000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki", 1056000, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) MACHINE_CONFIG_END @@ -2856,34 +2856,34 @@ DRIVER_INIT_MEMBER(aerofgt_state, banked_oki) } -GAME( 1990, spinlbrk, 0, spinlbrk, spinlbrk, driver_device, 0, ROT0, "V-System Co.", "Spinal Breakers (World)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL ) -GAME( 1990, spinlbrku,spinlbrk, spinlbrk, spinlbrku, driver_device,0, ROT0, "V-System Co.", "Spinal Breakers (US)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL ) -GAME( 1990, spinlbrkj,spinlbrk, spinlbrk, spinlbrk, driver_device, 0, ROT0, "V-System Co.", "Spinal Breakers (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL ) +GAME( 1990, spinlbrk, 0, spinlbrk, spinlbrk, aerofgt_state, 0, ROT0, "V-System Co.", "Spinal Breakers (World)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL ) +GAME( 1990, spinlbrku, spinlbrk, spinlbrk, spinlbrku, aerofgt_state, 0, ROT0, "V-System Co.", "Spinal Breakers (US)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL ) +GAME( 1990, spinlbrkj, spinlbrk, spinlbrk, spinlbrk, aerofgt_state, 0, ROT0, "V-System Co.", "Spinal Breakers (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL ) -GAME( 1991, pspikes, 0, pspikes, pspikes, driver_device, 0, ROT0, "Video System Co.", "Power Spikes (World)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL ) -GAME( 1991, pspikesk, pspikes, pspikes, pspikes, driver_device, 0, ROT0, "Video System Co.", "Power Spikes (Korea)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL ) -GAME( 1991, pspikesu, pspikes, pspikes, pspikes, driver_device, 0, ROT0, "Video System Co.", "Power Spikes (US)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL ) -GAME( 1991, svolly91, pspikes, pspikes, pspikes, driver_device, 0, ROT0, "Video System Co.", "Super Volley '91 (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL ) -GAME( 1991, pspikesb, pspikes, pspikesb, pspikesb, driver_device, 0, ROT0, "bootleg", "Power Spikes (bootleg)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL ) -GAME( 1991, pspikesba,pspikes, pspikesb, pspikesb, driver_device, 0, ROT0, "bootleg (Playmark?)","Power Spikes (Italian bootleg)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL ) -GAME( 1991, spikes91, pspikes, spikes91, pspikes, driver_device, 0, ROT0, "bootleg", "1991 Spikes (Italian bootleg, set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND | MACHINE_NO_COCKTAIL ) -GAME( 1991, spikes91b,pspikes, spikes91, pspikes, driver_device, 0, ROT0, "bootleg", "1991 Spikes (Italian bootleg, set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND | MACHINE_NO_COCKTAIL ) -GAME( 1991, pspikesc, pspikes, pspikesc, pspikesc, driver_device, 0, ROT0, "bootleg", "Power Spikes (China)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_SOUND ) -GAME( 1997, wbbc97, 0, wbbc97, wbbc97, driver_device, 0, ROT0, "Comad", "Beach Festival World Championship 1997", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL ) // based on power spikes codebase +GAME( 1991, pspikes, 0, pspikes, pspikes, aerofgt_state, 0, ROT0, "Video System Co.", "Power Spikes (World)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL ) +GAME( 1991, pspikesk, pspikes, pspikes, pspikes, aerofgt_state, 0, ROT0, "Video System Co.", "Power Spikes (Korea)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL ) +GAME( 1991, pspikesu, pspikes, pspikes, pspikes, aerofgt_state, 0, ROT0, "Video System Co.", "Power Spikes (US)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL ) +GAME( 1991, svolly91, pspikes, pspikes, pspikes, aerofgt_state, 0, ROT0, "Video System Co.", "Super Volley '91 (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL ) +GAME( 1991, pspikesb, pspikes, pspikesb, pspikesb, aerofgt_state, 0, ROT0, "bootleg", "Power Spikes (bootleg)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL ) +GAME( 1991, pspikesba, pspikes, pspikesb, pspikesb, aerofgt_state, 0, ROT0, "bootleg (Playmark?)","Power Spikes (Italian bootleg)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL ) +GAME( 1991, spikes91, pspikes, spikes91, pspikes, aerofgt_state, 0, ROT0, "bootleg", "1991 Spikes (Italian bootleg, set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND | MACHINE_NO_COCKTAIL ) +GAME( 1991, spikes91b, pspikes, spikes91, pspikes, aerofgt_state, 0, ROT0, "bootleg", "1991 Spikes (Italian bootleg, set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND | MACHINE_NO_COCKTAIL ) +GAME( 1991, pspikesc, pspikes, pspikesc, pspikesc, aerofgt_state, 0, ROT0, "bootleg", "Power Spikes (China)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_SOUND ) +GAME( 1997, wbbc97, 0, wbbc97, wbbc97, aerofgt_state, 0, ROT0, "Comad", "Beach Festival World Championship 1997", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL ) // based on power spikes codebase -GAME( 1991, karatblz, 0, karatblz, karatblz, driver_device, 0, ROT0, "Video System Co.", "Karate Blazers (World, set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL ) -GAME( 1991, karatblza,karatblz, karatblz, karatblz, driver_device, 0, ROT0, "Video System Co.", "Karate Blazers (World, set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL ) -GAME( 1991, karatblzu,karatblz, karatblz, karatblz, driver_device, 0, ROT0, "Video System Co.", "Karate Blazers (US)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL ) -GAME( 1991, karatblzj,karatblz, karatblz, karatblz, driver_device, 0, ROT0, "Video System Co.", "Toushin Blazers (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL ) -GAME( 1991, karatblzbl,karatblz,karatblzbl,karatblz,driver_device, 0, ROT0, "bootleg", "Karate Blazers (bootleg with Street Smart sound hardware)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_SOUND ) +GAME( 1991, karatblz, 0, karatblz, karatblz, aerofgt_state, 0, ROT0, "Video System Co.", "Karate Blazers (World, set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL ) +GAME( 1991, karatblza, karatblz, karatblz, karatblz, aerofgt_state, 0, ROT0, "Video System Co.", "Karate Blazers (World, set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL ) +GAME( 1991, karatblzu, karatblz, karatblz, karatblz, aerofgt_state, 0, ROT0, "Video System Co.", "Karate Blazers (US)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL ) +GAME( 1991, karatblzj, karatblz, karatblz, karatblz, aerofgt_state, 0, ROT0, "Video System Co.", "Toushin Blazers (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL ) +GAME( 1991, karatblzbl, karatblz, karatblzbl, karatblz, aerofgt_state, 0, ROT0, "bootleg", "Karate Blazers (bootleg with Street Smart sound hardware)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_SOUND ) -GAME( 1991, turbofrc, 0, turbofrc, turbofrc, driver_device, 0, ROT270, "Video System Co.", "Turbo Force (World)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL ) -GAME( 1991, turbofrcu,turbofrc, turbofrc, turbofrc, driver_device, 0, ROT270, "Video System Co.", "Turbo Force (US)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL ) +GAME( 1991, turbofrc, 0, turbofrc, turbofrc, aerofgt_state, 0, ROT270, "Video System Co.", "Turbo Force (World)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL ) +GAME( 1991, turbofrcu, turbofrc, turbofrc, turbofrc, aerofgt_state, 0, ROT270, "Video System Co.", "Turbo Force (US)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL ) // the tiles on these also contain an alt title 'The Final War' for both the title screen and attract logo was it ever used? -GAME( 1992, aerofgt, 0, aerofgt, aerofgt, driver_device, 0, ROT270, "Video System Co.", "Aero Fighters (World / USA + Canada / Korea / Hong Kong / Taiwan) (newer hardware)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL ) // this has the newer sprite chip etc. unlike all other games in this driver.. -GAME( 1992, aerofgtb, aerofgt, aerofgtb, aerofgtb, driver_device, 0, ROT270, "Video System Co.", "Aero Fighters (Taiwan / Japan, set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL ) // probably intended for Taiwan because the Japanese name is Sonic Wings (below) -GAME( 1992, aerofgtc, aerofgt, aerofgtb, aerofgtb, driver_device, 0, ROT270, "Video System Co.", "Aero Fighters (Taiwan / Japan, set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL ) -GAME( 1992, sonicwi, aerofgt, aerofgtb, aerofgtb, driver_device, 0, ROT270, "Video System Co.", "Sonic Wings (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL ) -GAME( 1992, aerfboot, aerofgt, aerfboot, aerofgtb, aerofgt_state, banked_oki, ROT270, "bootleg", "Aero Fighters (bootleg set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_SOUND ) -GAME( 1992, aerfboo2, aerofgt, aerfboo2, aerofgtb, driver_device, 0, ROT270, "bootleg", "Aero Fighters (bootleg set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_SOUND ) +GAME( 1992, aerofgt, 0, aerofgt, aerofgt, aerofgt_state, 0, ROT270, "Video System Co.", "Aero Fighters (World / USA + Canada / Korea / Hong Kong / Taiwan) (newer hardware)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL ) // this has the newer sprite chip etc. unlike all other games in this driver.. +GAME( 1992, aerofgtb, aerofgt, aerofgtb, aerofgtb, aerofgt_state, 0, ROT270, "Video System Co.", "Aero Fighters (Taiwan / Japan, set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL ) // probably intended for Taiwan because the Japanese name is Sonic Wings (below) +GAME( 1992, aerofgtc, aerofgt, aerofgtb, aerofgtb, aerofgt_state, 0, ROT270, "Video System Co.", "Aero Fighters (Taiwan / Japan, set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL ) +GAME( 1992, sonicwi, aerofgt, aerofgtb, aerofgtb, aerofgt_state, 0, ROT270, "Video System Co.", "Sonic Wings (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL ) +GAME( 1992, aerfboot, aerofgt, aerfboot, aerofgtb, aerofgt_state, banked_oki, ROT270, "bootleg", "Aero Fighters (bootleg set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_SOUND ) +GAME( 1992, aerfboo2, aerofgt, aerfboo2, aerofgtb, aerofgt_state, 0, ROT270, "bootleg", "Aero Fighters (bootleg set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_SOUND ) diff --git a/src/mame/drivers/agat.cpp b/src/mame/drivers/agat.cpp index 44f13c83a9e..546122ead74 100644 --- a/src/mame/drivers/agat.cpp +++ b/src/mame/drivers/agat.cpp @@ -1004,7 +1004,7 @@ static SLOT_INTERFACE_START(agat7_cards) // Nippel Co-processor (R65C02 clone + dual-ported RAM) SLOT_INTERFACE_END -static MACHINE_CONFIG_START( agat7, agat7_state ) +static MACHINE_CONFIG_START( agat7 ) MCFG_CPU_ADD("maincpu", M6502, XTAL_14_3MHz / 14) MCFG_CPU_PROGRAM_MAP(agat7_map) @@ -1110,6 +1110,6 @@ ROM_START( agat9 ) ROM_LOAD( "agathe9.fnt", 0x0000, 0x0800, CRC(8c55c984) SHA1(5a5a202000576b88b4ae2e180dd2d1b9b337b594)) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ -COMP( 1983, agat7, apple2, 0, agat7, agat7, driver_device, 0, "Agat", "Agat-7", MACHINE_NOT_WORKING) -COMP( 1984, agat9, apple2, 0, agat7, agat7, driver_device, 0, "Agat", "Agat-9", MACHINE_NOT_WORKING) +// 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_NOT_WORKING) +COMP( 1984, agat9, apple2, 0, agat7, agat7, agat7_state, 0, "Agat", "Agat-9", MACHINE_NOT_WORKING) diff --git a/src/mame/drivers/age_candy.cpp b/src/mame/drivers/age_candy.cpp index 42ac7a8e293..3c7a4a2df8d 100644 --- a/src/mame/drivers/age_candy.cpp +++ b/src/mame/drivers/age_candy.cpp @@ -44,7 +44,7 @@ void age_candy_state::machine_reset() } -static MACHINE_CONFIG_START( age_candy, age_candy_state ) +static MACHINE_CONFIG_START( age_candy ) /* basic machine hardware */ // MCFG_CPU_ADD("maincpu", ??, 8000000) // unknown (vectors at end? 6xxx ?) @@ -62,4 +62,4 @@ ROM_START( age_cand ) ROM_LOAD( "AGEcandy.u3", 0x0000, 0x8000, CRC(c8cfc666) SHA1(a1c475ae105746e984741af0723a712f09d7b847) ) ROM_END -GAME( 19??, age_cand, 0, age_candy, age_candy, driver_device, 0, ROT0, "Advanced Game Engineering", "Candy Crane (AGE)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 19??, age_cand, 0, age_candy, age_candy, age_candy_state, 0, ROT0, "Advanced Game Engineering", "Candy Crane (AGE)", MACHINE_IS_SKELETON_MECHANICAL ) diff --git a/src/mame/drivers/aim65.cpp b/src/mame/drivers/aim65.cpp index 24345c59557..17f9b005ddb 100644 --- a/src/mame/drivers/aim65.cpp +++ b/src/mame/drivers/aim65.cpp @@ -43,8 +43,8 @@ static ADDRESS_MAP_START( aim65_mem, AS_PROGRAM, 8, aim65_state ) AM_RANGE( 0x4000, 0x7fff ) AM_ROM /* 4 ROM sockets in 16K PROM/ROM module */ AM_RANGE( 0x8000, 0x9fff ) AM_NOP /* User available expansions */ AM_RANGE( 0xa000, 0xa00f ) AM_MIRROR(0x3f0) AM_DEVREADWRITE("via6522_1", via6522_device, read, write) // user via - AM_RANGE( 0xa400, 0xa47f ) AM_DEVICE("riot", mos6532_t, ram_map) - AM_RANGE( 0xa480, 0xa497 ) AM_DEVICE("riot", mos6532_t, io_map) + AM_RANGE( 0xa400, 0xa47f ) AM_DEVICE("riot", mos6532_new_device, ram_map) + AM_RANGE( 0xa480, 0xa497 ) AM_DEVICE("riot", mos6532_new_device, io_map) AM_RANGE( 0xa498, 0xa7ff ) AM_NOP /* Not available */ AM_RANGE( 0xa800, 0xa80f ) AM_MIRROR(0x3f0) AM_DEVREADWRITE("via6522_0", via6522_device, read, write) // system via AM_RANGE( 0xac00, 0xac03 ) AM_DEVREADWRITE("pia6821", pia6821_device, read, write) @@ -176,7 +176,7 @@ image_init_result aim65_state::load_cart(device_image_interface &image, generic_ } -static MACHINE_CONFIG_START( aim65, aim65_state ) +static MACHINE_CONFIG_START( aim65 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, AIM65_CLOCK) /* 1 MHz */ MCFG_CPU_PROGRAM_MAP(aim65_mem) @@ -201,7 +201,7 @@ static MACHINE_CONFIG_START( aim65, aim65_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) /* other devices */ - MCFG_DEVICE_ADD("riot", MOS6532n, AIM65_CLOCK) + MCFG_DEVICE_ADD("riot", MOS6532_NEW, AIM65_CLOCK) MCFG_MOS6530n_OUT_PA_CB(WRITE8(aim65_state, aim65_riot_a_w)) MCFG_MOS6530n_IN_PB_CB(READ8(aim65_state, aim65_riot_b_r)) MCFG_MOS6530n_IRQ_CB(INPUTLINE("maincpu", M6502_IRQ_LINE)) @@ -306,5 +306,5 @@ ROM_END GAME DRIVERS ***************************************************************************/ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP(1977, aim65, 0, 0, aim65, aim65, driver_device, 0, "Rockwell", "AIM 65", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP(1977, aim65, 0, 0, aim65, aim65, aim65_state, 0, "Rockwell", "AIM 65", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW) diff --git a/src/mame/drivers/aim65_40.cpp b/src/mame/drivers/aim65_40.cpp index df749db8493..62e19748afd 100644 --- a/src/mame/drivers/aim65_40.cpp +++ b/src/mame/drivers/aim65_40.cpp @@ -107,7 +107,7 @@ INPUT_PORTS_END MACHINE DRIVERS ***************************************************************************/ -static MACHINE_CONFIG_START( aim65_40, aim65_40_state ) +static MACHINE_CONFIG_START( aim65_40 ) /* basic machine hardware */ MCFG_CPU_ADD(M6502_TAG, M6502, 1000000) MCFG_CPU_PROGRAM_MAP(aim65_40_mem) @@ -141,5 +141,5 @@ ROM_END GAME DRIVERS ***************************************************************************/ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1981, aim65_40, 0, 0, aim65_40, aim65_40, driver_device, 0, "Rockwell", "AIM-65/40", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1981, aim65_40, 0, 0, aim65_40, aim65_40, aim65_40_state, 0, "Rockwell", "AIM-65/40", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/airbustr.cpp b/src/mame/drivers/airbustr.cpp index 54062dc6619..7f7f2043719 100644 --- a/src/mame/drivers/airbustr.cpp +++ b/src/mame/drivers/airbustr.cpp @@ -569,7 +569,7 @@ void airbustr_state::machine_reset() /* Machine Driver */ -static MACHINE_CONFIG_START( airbustr, airbustr_state ) +static MACHINE_CONFIG_START( airbustr ) /* basic machine hardware */ MCFG_CPU_ADD("master", Z80, XTAL_12MHz/2) /* verified on pcb */ @@ -625,7 +625,7 @@ static MACHINE_CONFIG_START( airbustr, airbustr_state ) MCFG_SOUND_ROUTE(2, "mono", 0.25) MCFG_SOUND_ROUTE(3, "mono", 0.50) - MCFG_OKIM6295_ADD("oki", XTAL_12MHz/4, OKIM6295_PIN7_LOW) /* verified on pcb */ + MCFG_OKIM6295_ADD("oki", XTAL_12MHz/4, PIN7_LOW) /* verified on pcb */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) MACHINE_CONFIG_END @@ -740,6 +740,6 @@ DRIVER_INIT_MEMBER(airbustr_state,airbustr) /* Game Drivers */ -GAME( 1990, airbustr, 0, airbustr, airbustr, airbustr_state, airbustr, ROT0, "Kaneko (Namco license)", "Air Buster: Trouble Specialty Raid Unit (World)", MACHINE_SUPPORTS_SAVE ) // 891220 -GAME( 1990, airbustrj, airbustr, airbustr, airbustrj, airbustr_state,airbustr, ROT0, "Kaneko (Namco license)", "Air Buster: Trouble Specialty Raid Unit (Japan)", MACHINE_SUPPORTS_SAVE) // 891229 -GAME( 1990, airbustrb, airbustr, airbustrb,airbustrj, driver_device,0, ROT0, "bootleg", "Air Buster: Trouble Specialty Raid Unit (bootleg)", MACHINE_SUPPORTS_SAVE) // based on Japan set (891229) +GAME( 1990, airbustr, 0, airbustr, airbustr, airbustr_state, airbustr, ROT0, "Kaneko (Namco license)", "Air Buster: Trouble Specialty Raid Unit (World)", MACHINE_SUPPORTS_SAVE ) // 891220 +GAME( 1990, airbustrj, airbustr, airbustr, airbustrj, airbustr_state, airbustr, ROT0, "Kaneko (Namco license)", "Air Buster: Trouble Specialty Raid Unit (Japan)", MACHINE_SUPPORTS_SAVE ) // 891229 +GAME( 1990, airbustrb, airbustr, airbustrb,airbustrj, airbustr_state, 0, ROT0, "bootleg", "Air Buster: Trouble Specialty Raid Unit (bootleg)", MACHINE_SUPPORTS_SAVE ) // based on Japan set (891229) diff --git a/src/mame/drivers/airraid.cpp b/src/mame/drivers/airraid.cpp index 483e0215932..12b53b1a789 100644 --- a/src/mame/drivers/airraid.cpp +++ b/src/mame/drivers/airraid.cpp @@ -387,7 +387,7 @@ INPUT_PORTS_END -static MACHINE_CONFIG_START( airraid, airraid_state ) +static MACHINE_CONFIG_START( airraid ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80,XTAL_12MHz/2) /* verified on pcb */ @@ -628,6 +628,6 @@ DRIVER_INIT_MEMBER(airraid_state,cshootere) } // There's also an undumped International Games version -GAME( 1987, cshooter, airraid, airraid_crypt, airraid, airraid_state, cshootere, ROT270, "Seibu Kaihatsu (J.K.H. license)", "Cross Shooter (Single PCB)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) -GAME( 1987, airraid, 0, airraid_crypt, airraid, airraid_state, cshootere, ROT270, "Seibu Kaihatsu", "Air Raid (Single PCB)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) +GAME( 1987, cshooter, airraid, airraid_crypt, airraid, airraid_state, cshootere, ROT270, "Seibu Kaihatsu (J.K.H. license)", "Cross Shooter (Single PCB)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +GAME( 1987, airraid, 0, airraid_crypt, airraid, airraid_state, cshootere, ROT270, "Seibu Kaihatsu", "Air Raid (Single PCB)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/ajax.cpp b/src/mame/drivers/ajax.cpp index 71e22cdc537..bd4db94f2be 100644 --- a/src/mame/drivers/ajax.cpp +++ b/src/mame/drivers/ajax.cpp @@ -167,7 +167,7 @@ WRITE8_MEMBER(ajax_state::volume_callback1) } -static MACHINE_CONFIG_START( ajax, ajax_state ) +static MACHINE_CONFIG_START( ajax ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", KONAMI, XTAL_24MHz/2/4) /* 052001 12/4 MHz*/ @@ -377,6 +377,6 @@ ROM_START( ajaxj ) ROM_END -GAME( 1987, ajax, 0, ajax, ajax, driver_device, 0, ROT90, "Konami", "Ajax", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, typhoon, ajax, ajax, ajax, driver_device, 0, ROT90, "Konami", "Typhoon", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, ajaxj, ajax, ajax, ajax, driver_device, 0, ROT90, "Konami", "Ajax (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, ajax, 0, ajax, ajax, ajax_state, 0, ROT90, "Konami", "Ajax", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, typhoon, ajax, ajax, ajax, ajax_state, 0, ROT90, "Konami", "Typhoon", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, ajaxj, ajax, ajax, ajax, ajax_state, 0, ROT90, "Konami", "Ajax (Japan)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/akaiax80.cpp b/src/mame/drivers/akaiax80.cpp index 6d04b1b0dca..0cb00e9148d 100644 --- a/src/mame/drivers/akaiax80.cpp +++ b/src/mame/drivers/akaiax80.cpp @@ -71,7 +71,7 @@ static ADDRESS_MAP_START( ax80_map, AS_PROGRAM, 8, ax80_state ) AM_RANGE(0xff00, 0xffff) AM_RAM ADDRESS_MAP_END -static MACHINE_CONFIG_START( ax80, ax80_state ) +static MACHINE_CONFIG_START( ax80 ) MCFG_CPU_ADD("maincpu", UPD7810, XTAL_12MHz) MCFG_CPU_PROGRAM_MAP(ax80_map) //MCFG_CPU_IO_MAP(ax80_io) @@ -98,4 +98,4 @@ ROM_START( ax80 ) ROM_LOAD( "akai ax80 (rev k) rom.bin", 0x001000, 0x002000, CRC(a2f95ccf) SHA1(4e5f2c4c9a08ec1d38146cae786b400261a3dbb7) ) ROM_END -CONS( 1984, ax80, 0, 0, ax80, ax80, driver_device, 0, "Akai", "AX80", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +CONS( 1984, ax80, 0, 0, ax80, ax80, ax80_state, 0, "Akai", "AX80", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/albazc.cpp b/src/mame/drivers/albazc.cpp index 75d9d3d992c..bf10836f198 100644 --- a/src/mame/drivers/albazc.cpp +++ b/src/mame/drivers/albazc.cpp @@ -271,7 +271,7 @@ static GFXDECODE_START( hanaroku ) GFXDECODE_END -static MACHINE_CONFIG_START( hanaroku, albazc_state ) +static MACHINE_CONFIG_START( hanaroku ) MCFG_CPU_ADD("maincpu", Z80,6000000) /* ? MHz */ MCFG_CPU_PROGRAM_MAP(hanaroku_map) @@ -321,4 +321,4 @@ ROM_START( hanaroku ) ROM_END -GAME( 1988, hanaroku, 0, hanaroku, hanaroku, driver_device, 0, ROT0, "Alba", "Hanaroku", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE ) +GAME( 1988, hanaroku, 0, hanaroku, hanaroku, albazc_state, 0, ROT0, "Alba", "Hanaroku", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/albazg.cpp b/src/mame/drivers/albazg.cpp index 87631b6fc1a..146e22876c4 100644 --- a/src/mame/drivers/albazg.cpp +++ b/src/mame/drivers/albazg.cpp @@ -346,7 +346,7 @@ void albazg_state::machine_reset() m_prot_lock = 0; } -static MACHINE_CONFIG_START( yumefuda, albazg_state ) +static MACHINE_CONFIG_START( yumefuda ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80 , MASTER_CLOCK/2) /* xtal is 12 Mhz, unknown divider*/ @@ -410,4 +410,4 @@ ROM_START( yumefuda ) ROM_LOAD("zg1-007.u13", 0x000, 0x100, NO_DUMP ) //could be either PROM or PAL ROM_END -GAME( 1991, yumefuda, 0, yumefuda, yumefuda, driver_device, 0, ROT0, "Alba", "Yumefuda [BET]", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1991, yumefuda, 0, yumefuda, yumefuda, albazg_state, 0, ROT0, "Alba", "Yumefuda [BET]", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/aleck64.cpp b/src/mame/drivers/aleck64.cpp index 25c8e89478c..db82130e0f6 100644 --- a/src/mame/drivers/aleck64.cpp +++ b/src/mame/drivers/aleck64.cpp @@ -898,7 +898,7 @@ static INPUT_PORTS_START( srmvs ) INPUT_PORTS_END -static MACHINE_CONFIG_START( aleck64, aleck64_state ) +static MACHINE_CONFIG_START( aleck64 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", VR4300BE, 93750000) @@ -1227,13 +1227,13 @@ ROM_END GAME( 1998, aleck64, 0, aleck64, aleck64, aleck64_state, aleck64, ROT0, "Nintendo / Seta", "Aleck64 PIF BIOS", MACHINE_IS_BIOS_ROOT) // games -GAME( 1998, 11beat, aleck64, aleck64, 11beat, aleck64_state, aleck64, ROT0, "Hudson", "Eleven Beat", MACHINE_IMPERFECT_GRAPHICS ) // crashes at kick off / during attract with DRC -GAME( 1998, mtetrisc, aleck64, a64_e90, mtetrisc, aleck64_state, aleck64, ROT0, "Capcom", "Magical Tetris Challenge (981009 Japan)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) // missing E90 gfxs (playfield) -GAME( 1998, starsldr, aleck64, aleck64, starsldr, aleck64_state, aleck64, ROT0, "Hudson / Seta", "Star Soldier: Vanishing Earth", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1998, vivdolls, aleck64, aleck64, vivdolls, aleck64_state, aleck64, ROT0, "Visco", "Vivid Dolls", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1999, srmvs, aleck64, aleck64, srmvs, aleck64_state, aleck64, ROT0, "Seta", "Super Real Mahjong VS", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 2000, mayjin3, aleck64, aleck64, aleck64, aleck64_state, aleck64, ROT0, "Seta / Able Corporation", "Mayjinsen 3", MACHINE_IMPERFECT_SOUND|MACHINE_IMPERFECT_GRAPHICS ) -GAME( 2003, twrshaft, aleck64, aleck64, twrshaft, aleck64_state, aleck64, ROT0, "Aruze", "Tower & Shaft", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 2003, hipai, aleck64, aleck64, hipai, aleck64_state, aleck64, ROT0, "Aruze / Seta", "Hi Pai Paradise", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 2003, doncdoon, aleck64, aleck64, doncdoon, aleck64_state, aleck64, ROT0, "Aruze", "Hanabi de Doon! - Don-chan Puzzle", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 2003, kurufev, aleck64, aleck64, kurufev, aleck64_state, aleck64, ROT0, "Aruze / Takumi", "Kurukuru Fever", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1998, 11beat, aleck64, aleck64, 11beat, aleck64_state, aleck64, ROT0, "Hudson", "Eleven Beat", MACHINE_IMPERFECT_GRAPHICS ) // crashes at kick off / during attract with DRC +GAME( 1998, mtetrisc, aleck64, a64_e90, mtetrisc, aleck64_state, aleck64, ROT0, "Capcom", "Magical Tetris Challenge (981009 Japan)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) // missing E90 gfxs (playfield) +GAME( 1998, starsldr, aleck64, aleck64, starsldr, aleck64_state, aleck64, ROT0, "Hudson / Seta", "Star Soldier: Vanishing Earth", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1998, vivdolls, aleck64, aleck64, vivdolls, aleck64_state, aleck64, ROT0, "Visco", "Vivid Dolls", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1999, srmvs, aleck64, aleck64, srmvs, aleck64_state, aleck64, ROT0, "Seta", "Super Real Mahjong VS", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 2000, mayjin3, aleck64, aleck64, aleck64, aleck64_state, aleck64, ROT0, "Seta / Able Corporation", "Mayjinsen 3", MACHINE_IMPERFECT_SOUND|MACHINE_IMPERFECT_GRAPHICS ) +GAME( 2003, twrshaft, aleck64, aleck64, twrshaft, aleck64_state, aleck64, ROT0, "Aruze", "Tower & Shaft", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 2003, hipai, aleck64, aleck64, hipai, aleck64_state, aleck64, ROT0, "Aruze / Seta", "Hi Pai Paradise", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 2003, doncdoon, aleck64, aleck64, doncdoon, aleck64_state, aleck64, ROT0, "Aruze", "Hanabi de Doon! - Don-chan Puzzle", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 2003, kurufev, aleck64, aleck64, kurufev, aleck64_state, aleck64, ROT0, "Aruze / Takumi", "Kurukuru Fever", MACHINE_IMPERFECT_GRAPHICS ) diff --git a/src/mame/drivers/aleisttl.cpp b/src/mame/drivers/aleisttl.cpp index dce966f2c5e..a6b1ac5bfa2 100644 --- a/src/mame/drivers/aleisttl.cpp +++ b/src/mame/drivers/aleisttl.cpp @@ -58,7 +58,7 @@ public: } // devices - required_device m_maincpu; + required_device m_maincpu; required_device m_video; protected: @@ -101,7 +101,7 @@ void sburners_state::video_start() { } -static MACHINE_CONFIG_START( sburners, sburners_state ) +static MACHINE_CONFIG_START( sburners ) /* basic machine hardware */ MCFG_DEVICE_ADD("maincpu", NETLIST_CPU, NETLIST_CLOCK) @@ -132,4 +132,4 @@ ROM_START( sburners ) ROM_END -GAME( 1975, sburners, 0, sburners, 0, driver_device, 0, ROT0, "Allied Leisure", "Street Burners [TTL]", MACHINE_IS_SKELETON ) +GAME( 1975, sburners, 0, sburners, 0, sburners_state, 0, ROT0, "Allied Leisure", "Street Burners [TTL]", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/alesis.cpp b/src/mame/drivers/alesis.cpp index 5c6710d4630..4a18d1fd05e 100644 --- a/src/mame/drivers/alesis.cpp +++ b/src/mame/drivers/alesis.cpp @@ -355,7 +355,7 @@ HD44780_PIXEL_UPDATE(alesis_state::sr16_pixel_update) bitmap.pix16(line*9 + y, pos*6 + x) = state; } -static MACHINE_CONFIG_START( hr16, alesis_state ) +static MACHINE_CONFIG_START( hr16 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",I8031, XTAL_12MHz) MCFG_CPU_PROGRAM_MAP(hr16_mem) @@ -477,8 +477,8 @@ DRIVER_INIT_MEMBER(alesis_state,hr16) } /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY, FULLNAME, FLAGS */ -SYST( 1987, hr16, 0, 0, hr16, hr16, alesis_state, hr16, "Alesis", "HR-16", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -SYST( 1987, mmt8, 0, 0, mmt8, mmt8, driver_device, 0, "Alesis", "MMT-8", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -SYST( 1989, hr16b, hr16, 0, hr16, hr16, alesis_state, hr16, "Alesis", "HR-16B", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -SYST( 1990, sr16, 0, 0, sr16, sr16, driver_device, 0, "Alesis", "SR-16 (Alesis)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +SYST( 1987, hr16, 0, 0, hr16, hr16, alesis_state, hr16, "Alesis", "HR-16", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +SYST( 1987, mmt8, 0, 0, mmt8, mmt8, alesis_state, 0, "Alesis", "MMT-8", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +SYST( 1989, hr16b, hr16, 0, hr16, hr16, alesis_state, hr16, "Alesis", "HR-16B", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +SYST( 1990, sr16, 0, 0, sr16, sr16, alesis_state, 0, "Alesis", "SR-16 (Alesis)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) diff --git a/src/mame/drivers/alesis_qs.cpp b/src/mame/drivers/alesis_qs.cpp index 019f9cfc585..b41bcfea26c 100644 --- a/src/mame/drivers/alesis_qs.cpp +++ b/src/mame/drivers/alesis_qs.cpp @@ -46,7 +46,7 @@ static ADDRESS_MAP_START( qs7_prog_map, AS_PROGRAM, 16, qs_state ) AM_RANGE(0x00000, 0x3ffff) AM_ROM ADDRESS_MAP_END -static MACHINE_CONFIG_START( qs7, qs_state ) +static MACHINE_CONFIG_START( qs7 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", H83048, XTAL_10MHz) /* FIX-ME! Actual CPU is H8/510 and XTAL value is a guess */ MCFG_CPU_PROGRAM_MAP(qs7_prog_map) @@ -88,5 +88,5 @@ ROM_START( alesqs7 ) // ROM_LOAD( "?.u?", 0x00000, 0x200000, NO_DUMP ) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1996, alesqs7, 0, 0, qs7, qs7, driver_device, 0, "Alesis", "Alesis QS7 musical keyboard", MACHINE_IS_SKELETON ) +// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS +COMP( 1996, alesqs7, 0, 0, qs7, qs7, qs_state, 0, "Alesis", "Alesis QS7 musical keyboard", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/alg.cpp b/src/mame/drivers/alg.cpp index 4a41651b219..38ce8fedeb1 100644 --- a/src/mame/drivers/alg.cpp +++ b/src/mame/drivers/alg.cpp @@ -289,7 +289,7 @@ INPUT_PORTS_END * *************************************/ -static MACHINE_CONFIG_START( alg_r1, alg_state ) +static MACHINE_CONFIG_START( alg_r1 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, amiga_state::CLK_7M_NTSC) @@ -783,25 +783,25 @@ DRIVER_INIT_MEMBER(alg_state,aplatoon) *************************************/ /* BIOS */ -GAME( 199?, alg_bios, 0, alg_r1, alg, alg_state, ntsc, ROT0, "American Laser Games", "American Laser Games BIOS", MACHINE_IS_BIOS_ROOT ) +GAME( 199?, alg_bios, 0, alg_r1, alg, alg_state, ntsc, ROT0, "American Laser Games", "American Laser Games BIOS", MACHINE_IS_BIOS_ROOT ) /* Rev. A board */ /* PAL R1 */ -GAME( 1990, maddoga, maddog, alg_r1, alg, alg_state, palr1, ROT0, "American Laser Games", "Mad Dog McCree v1C board rev.A", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1990, maddoga, maddog, alg_r1, alg, alg_state, palr1, ROT0, "American Laser Games", "Mad Dog McCree v1C board rev.A", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_IMPERFECT_GRAPHICS ) /* PAL R3 */ -GAME( 1991, wsjr, alg_bios, alg_r1, alg, alg_state, palr3, ROT0, "American Laser Games", "Who Shot Johnny Rock? v1.6", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1991, wsjr_15, wsjr, alg_r1, alg, alg_state, palr3, ROT0, "American Laser Games", "Who Shot Johnny Rock? v1.5", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1991, wsjr, alg_bios, alg_r1, alg, alg_state, palr3, ROT0, "American Laser Games", "Who Shot Johnny Rock? v1.6", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1991, wsjr_15, wsjr, alg_r1, alg, alg_state, palr3, ROT0, "American Laser Games", "Who Shot Johnny Rock? v1.5", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_IMPERFECT_GRAPHICS ) /* Rev. B board */ /* PAL R6 */ GAME( 1990, maddog, alg_bios, alg_r2, alg_2p, alg_state, palr6, ROT0, "American Laser Games", "Mad Dog McCree v2.03 board rev.B", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1990, maddog_202, maddog, alg_r2, alg_2p, alg_state, palr6, ROT0, "American Laser Games", "Mad Dog McCree v2.02 board rev.B", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1990, maddog_202, maddog, alg_r2, alg_2p, alg_state, palr6, ROT0, "American Laser Games", "Mad Dog McCree v2.02 board rev.B", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_IMPERFECT_GRAPHICS ) /* works ok but uses right player (2) controls only for trigger and holster */ GAME( 1992, maddog2, alg_bios, alg_r2, alg_2p, alg_state, palr6, ROT0, "American Laser Games", "Mad Dog II: The Lost Gold v2.04", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1992, maddog2_202, maddog2, alg_r2, alg_2p, alg_state, palr6, ROT0, "American Laser Games", "Mad Dog II: The Lost Gold v2.02", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1992, maddog2_202, maddog2, alg_r2, alg_2p, alg_state, palr6, ROT0, "American Laser Games", "Mad Dog II: The Lost Gold v2.02", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_IMPERFECT_GRAPHICS ) GAME( 1992, maddog2_110, maddog2, alg_r2, alg_2p, alg_state, palr6, ROT0, "American Laser Games", "Mad Dog II: The Lost Gold v1.10", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_IMPERFECT_GRAPHICS ) GAME( 1992, maddog2_100, maddog2, alg_r2, alg_2p, alg_state, palr6, ROT0, "American Laser Games", "Mad Dog II: The Lost Gold v1.00", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_IMPERFECT_GRAPHICS ) /* works ok but uses right player (2) controls only for trigger and holster */ @@ -818,13 +818,13 @@ GAME( 1993, crimepat_12, crimepat, alg_r2, alg_2p, alg_state, palr6, ROT0, GAME( 1993, crimep2, alg_bios, alg_r2, alg_2p, alg_state, palr6, ROT0, "American Laser Games", "Crime Patrol 2: Drug Wars v1.3", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_IMPERFECT_GRAPHICS ) GAME( 1993, crimep2_11, crimep2, alg_r2, alg_2p, alg_state, palr6, ROT0, "American Laser Games", "Crime Patrol 2: Drug Wars v1.1", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_IMPERFECT_GRAPHICS ) GAME( 1994, lastbh, alg_bios, alg_r2, alg_2p, alg_state, palr6, ROT0, "American Laser Games", "The Last Bounty Hunter v1.01", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1994, lastbh_006, lastbh, alg_r2, alg_2p, alg_state, palr6, ROT0, "American Laser Games", "The Last Bounty Hunter v0.06", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1994, lastbh_006, lastbh, alg_r2, alg_2p, alg_state, palr6, ROT0, "American Laser Games", "The Last Bounty Hunter v0.06", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_IMPERFECT_GRAPHICS ) GAME( 1995, fastdraw, alg_bios, alg_r2, alg_2p, alg_state, palr6, ROT90, "American Laser Games", "Fast Draw Showdown v1.31", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_IMPERFECT_GRAPHICS ) GAME( 1995, fastdraw_130,fastdraw, alg_r2, alg_2p, alg_state, palr6, ROT90, "American Laser Games", "Fast Draw Showdown v1.30", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_IMPERFECT_GRAPHICS ) /* works ok but uses right player (2) controls only for trigger and holster */ /* NOVA games on ALG hardware with own address scramble */ -GAME( 199?, aplatoon, alg_bios, alg_r2, alg, alg_state, aplatoon, ROT0, "Nova?", "Platoon V.3.1 US", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 199?, aplatoon, alg_bios, alg_r2, alg, alg_state, aplatoon, ROT0, "Nova?", "Platoon V.3.1 US", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_IMPERFECT_GRAPHICS ) /* Web Picmatic games PAL tv standard, own rom board */ -GAME( 1993, zortonbr, alg_bios, picmatic, alg, alg_state, pal, ROT0, "Web Picmatic", "Zorton Brothers (Los Justicieros)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1993, zortonbr, alg_bios, picmatic, alg, alg_state, pal, ROT0, "Web Picmatic", "Zorton Brothers (Los Justicieros)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_IMPERFECT_GRAPHICS ) diff --git a/src/mame/drivers/alien.cpp b/src/mame/drivers/alien.cpp index 4b18f13034e..62ca9b7427e 100644 --- a/src/mame/drivers/alien.cpp +++ b/src/mame/drivers/alien.cpp @@ -80,7 +80,7 @@ void alien_state::machine_reset() //m_maincpu->set_input_line(INPUT_LINE_HALT, ASSERT_LINE); } -static MACHINE_CONFIG_START( alien, alien_state ) +static MACHINE_CONFIG_START( alien ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", SH4LE, MASTER_CLOCK) /* 200MHz */ MCFG_CPU_PROGRAM_MAP(alien_map) @@ -122,4 +122,4 @@ ROM_START( alien ) ROM_END -GAME( 2005, alien, 0, alien, alien, driver_device, 0, ROT0, "Capcom", "Alien: The Arcade Medal Edition", MACHINE_NO_SOUND | MACHINE_NOT_WORKING ) +GAME( 2005, alien, 0, alien, alien, alien_state, 0, ROT0, "Capcom", "Alien: The Arcade Medal Edition", MACHINE_NO_SOUND | MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/aliens.cpp b/src/mame/drivers/aliens.cpp index 4809e3846e6..692eb06e770 100644 --- a/src/mame/drivers/aliens.cpp +++ b/src/mame/drivers/aliens.cpp @@ -191,7 +191,7 @@ WRITE8_MEMBER( aliens_state::banking_callback ) m_rombank->set_entry(data & 0x1f); } -static MACHINE_CONFIG_START( aliens, aliens_state ) +static MACHINE_CONFIG_START( aliens ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", KONAMI, XTAL_24MHz/2/4) /* 052001 (verified on pcb) */ @@ -479,10 +479,10 @@ ROM_END ***************************************************************************/ -GAME( 1990, aliens, 0, aliens, aliens, driver_device, 0, ROT0, "Konami", "Aliens (World set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, aliens2, aliens, aliens, aliens, driver_device, 0, ROT0, "Konami", "Aliens (World set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, aliens3, aliens, aliens, aliens, driver_device, 0, ROT0, "Konami", "Aliens (World set 3)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, aliensu, aliens, aliens, aliens, driver_device, 0, ROT0, "Konami", "Aliens (US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, aliensj, aliens, aliens, aliens, driver_device, 0, ROT0, "Konami", "Aliens (Japan set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, aliensj2, aliens, aliens, aliens, driver_device, 0, ROT0, "Konami", "Aliens (Japan set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, aliensa, aliens, aliens, aliens, driver_device, 0, ROT0, "Konami", "Aliens (Asia)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, aliens, 0, aliens, aliens, aliens_state, 0, ROT0, "Konami", "Aliens (World set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, aliens2, aliens, aliens, aliens, aliens_state, 0, ROT0, "Konami", "Aliens (World set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, aliens3, aliens, aliens, aliens, aliens_state, 0, ROT0, "Konami", "Aliens (World set 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, aliensu, aliens, aliens, aliens, aliens_state, 0, ROT0, "Konami", "Aliens (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, aliensj, aliens, aliens, aliens, aliens_state, 0, ROT0, "Konami", "Aliens (Japan set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, aliensj2, aliens, aliens, aliens, aliens_state, 0, ROT0, "Konami", "Aliens (Japan set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, aliensa, aliens, aliens, aliens, aliens_state, 0, ROT0, "Konami", "Aliens (Asia)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/alinvade.cpp b/src/mame/drivers/alinvade.cpp index f7d83ccc975..f6fa6c073f1 100644 --- a/src/mame/drivers/alinvade.cpp +++ b/src/mame/drivers/alinvade.cpp @@ -202,7 +202,7 @@ INTERRUPT_GEN_MEMBER(alinvade_state::vblank_irq) m_maincpu->set_input_line(0,HOLD_LINE); } -static MACHINE_CONFIG_START( alinvade, alinvade_state ) +static MACHINE_CONFIG_START( alinvade ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502,2000000) /* ? MHz */ @@ -241,4 +241,4 @@ ROM_START( alinvade ) ROM_END -GAMEL( 198?, alinvade, 0, alinvade, alinvade, driver_device, 0, ROT90, "Forbes?", "Alien Invaders", MACHINE_UNEMULATED_PROTECTION | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_alinvade ) +GAMEL( 198?, alinvade, 0, alinvade, alinvade, alinvade_state, 0, ROT90, "Forbes?", "Alien Invaders", MACHINE_UNEMULATED_PROTECTION | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_alinvade ) diff --git a/src/mame/drivers/allied.cpp b/src/mame/drivers/allied.cpp index a268442da83..d076bd08ef9 100644 --- a/src/mame/drivers/allied.cpp +++ b/src/mame/drivers/allied.cpp @@ -608,7 +608,7 @@ void allied_state::machine_reset() output().set_value("led0", 1); //1=off } -static MACHINE_CONFIG_START( allied, allied_state ) +static MACHINE_CONFIG_START( allied ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6504, 3572549/4) MCFG_CPU_PROGRAM_MAP(allied_map) @@ -709,15 +709,15 @@ ROM_END #define rom_starshot rom_allied -GAME(1977, allied, 0, allied, allied, driver_device, 0, ROT0, "Allied Leisure", "Allied System", MACHINE_IS_BIOS_ROOT | MACHINE_NOT_WORKING ) -GAME(1977, suprpick, allied, allied, allied, driver_device, 0, ROT0, "Allied Leisure", "Super Picker", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) -GAME(1977, royclark, allied, allied, allied, driver_device, 0, ROT0, "Fascination Int.", "Roy Clark - The Entertainer", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) -GAME(1977, thndbolt, allied, allied, allied, driver_device, 0, ROT0, "Allied Leisure", "Thunderbolt", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) -GAME(1978, hoedown, allied, allied, allied, driver_device, 0, ROT0, "Allied Leisure", "Hoe Down", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) -GAME(1978, takefive, allied, allied, allied, driver_device, 0, ROT0, "Allied Leisure", "Take Five", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) -GAME(1978, heartspd, allied, allied, allied, driver_device, 0, ROT0, "Allied Leisure", "Hearts & Spades", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) -GAME(1978, foathens, allied, allied, allied, driver_device, 0, ROT0, "Allied Leisure", "Flame of Athens", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) -GAME(1979, disco79, allied, allied, allied, driver_device, 0, ROT0, "Allied Leisure", "Disco '79", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) -GAME(1979, erosone, allied, allied, allied, driver_device, 0, ROT0, "Fascination Int.", "Eros One", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) -GAME(1979, circa33, allied, allied, allied, driver_device, 0, ROT0, "Fascination Int.", "Circa 1933", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) -GAME(1979, starshot, allied, allied, allied, driver_device, 0, ROT0, "Allied Leisure", "Star Shooter", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME(1977, allied, 0, allied, allied, allied_state, 0, ROT0, "Allied Leisure", "Allied System", MACHINE_IS_BIOS_ROOT | MACHINE_NOT_WORKING ) +GAME(1977, suprpick, allied, allied, allied, allied_state, 0, ROT0, "Allied Leisure", "Super Picker", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME(1977, royclark, allied, allied, allied, allied_state, 0, ROT0, "Fascination Int.", "Roy Clark - The Entertainer", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME(1977, thndbolt, allied, allied, allied, allied_state, 0, ROT0, "Allied Leisure", "Thunderbolt", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME(1978, hoedown, allied, allied, allied, allied_state, 0, ROT0, "Allied Leisure", "Hoe Down", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME(1978, takefive, allied, allied, allied, allied_state, 0, ROT0, "Allied Leisure", "Take Five", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME(1978, heartspd, allied, allied, allied, allied_state, 0, ROT0, "Allied Leisure", "Hearts & Spades", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME(1978, foathens, allied, allied, allied, allied_state, 0, ROT0, "Allied Leisure", "Flame of Athens", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME(1979, disco79, allied, allied, allied, allied_state, 0, ROT0, "Allied Leisure", "Disco '79", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME(1979, erosone, allied, allied, allied, allied_state, 0, ROT0, "Fascination Int.", "Eros One", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME(1979, circa33, allied, allied, allied, allied_state, 0, ROT0, "Fascination Int.", "Circa 1933", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME(1979, starshot, allied, allied, allied, allied_state, 0, ROT0, "Allied Leisure", "Star Shooter", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/alpha68k.cpp b/src/mame/drivers/alpha68k.cpp index b1482900157..3b08c13d933 100644 --- a/src/mame/drivers/alpha68k.cpp +++ b/src/mame/drivers/alpha68k.cpp @@ -1911,7 +1911,7 @@ MACHINE_START_MEMBER(alpha68k_state,alpha68k_II) #define ALPHA68K_VBEND 16 #define ALPHA68K_VBSTART 240 -static MACHINE_CONFIG_START( sstingry, alpha68k_state ) +static MACHINE_CONFIG_START( sstingry ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 6000000) /* 24MHz/4? */ @@ -1972,7 +1972,7 @@ static MACHINE_CONFIG_START( sstingry, alpha68k_state ) 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( kyros, alpha68k_state ) +static MACHINE_CONFIG_START( kyros ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_24MHz/4) /* Verified on bootleg PCB */ @@ -2024,7 +2024,7 @@ static MACHINE_CONFIG_START( kyros, alpha68k_state ) 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( jongbou, alpha68k_state ) +static MACHINE_CONFIG_START( jongbou ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 8000000) @@ -2066,7 +2066,7 @@ static MACHINE_CONFIG_START( jongbou, alpha68k_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.65) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( alpha68k_I, alpha68k_state ) +static MACHINE_CONFIG_START( alpha68k_I ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 6000000) /* 24MHz/4? */ @@ -2111,7 +2111,7 @@ INTERRUPT_GEN_MEMBER(alpha68k_state::alpha68k_sound_nmi) device.execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE); } -static MACHINE_CONFIG_START( alpha68k_II, alpha68k_state ) +static MACHINE_CONFIG_START( alpha68k_II ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 8000000) /* Correct */ @@ -2166,7 +2166,7 @@ static MACHINE_CONFIG_DERIVED( btlfieldb, alpha68k_II ) MCFG_CPU_PERIODIC_INT_DRIVER(alpha68k_state, irq2_line_hold, 60*4) // MCU irq MACHINE_CONFIG_END -static MACHINE_CONFIG_START( alpha68k_II_gm, alpha68k_state ) +static MACHINE_CONFIG_START( alpha68k_II_gm ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 8000000) @@ -2216,7 +2216,7 @@ static MACHINE_CONFIG_START( alpha68k_II_gm, alpha68k_state ) 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( alpha68k_V, alpha68k_state ) +static MACHINE_CONFIG_START( alpha68k_V ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 10000000) /* ? */ @@ -2265,7 +2265,7 @@ static MACHINE_CONFIG_START( alpha68k_V, alpha68k_state ) 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( alpha68k_V_sb, alpha68k_state ) +static MACHINE_CONFIG_START( alpha68k_V_sb ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 10000000) /* ? */ @@ -2314,7 +2314,7 @@ static MACHINE_CONFIG_START( alpha68k_V_sb, alpha68k_state ) 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( tnextspc, alpha68k_state ) +static MACHINE_CONFIG_START( tnextspc ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 9000000) /* Confirmed 18 MHz/2 */ @@ -3492,10 +3492,10 @@ DRIVER_INIT_MEMBER(alpha68k_state,tnextspc) GAME( 1986, sstingry, 0, sstingry, sstingry, alpha68k_state, sstingry, ROT90, "Alpha Denshi Co.", "Super Stingray (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_UNEMULATED_PROTECTION ) -GAME( 1987, kyros, 0, kyros, kyros, alpha68k_state, kyros, ROT90, "Alpha Denshi Co. (World Games Inc. license)", "Kyros", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, kyrosj, kyros, kyros, kyros, alpha68k_state, kyros, ROT90, "Alpha Denshi Co.", "Kyros No Yakata (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, kyros, 0, kyros, kyros, alpha68k_state, kyros, ROT90, "Alpha Denshi Co. (World Games Inc. license)", "Kyros", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, kyrosj, kyros, kyros, kyros, alpha68k_state, kyros, ROT90, "Alpha Denshi Co.", "Kyros No Yakata (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, jongbou, 0, jongbou, jongbou, alpha68k_state, jongbou, ROT90, "SNK", "Mahjong Block Jongbou (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, jongbou, 0, jongbou, jongbou, alpha68k_state, jongbou, ROT90, "SNK", "Mahjong Block Jongbou (Japan)", MACHINE_SUPPORTS_SAVE ) GAME( 1988, paddlema, 0, alpha68k_I, paddlema, alpha68k_state, paddlema, ROT90, "SNK", "Paddle Mania", MACHINE_SUPPORTS_SAVE ) @@ -3503,7 +3503,7 @@ GAME( 1987, timesold, 0, alpha68k_II, timesold, alpha68k_state, times GAME( 1987, timesold1, timesold, alpha68k_II, timesold, alpha68k_state, timesold1,ROT90, "Alpha Denshi Co. (SNK/Romstar license)", "Time Soldiers (US Rev 1)", MACHINE_SUPPORTS_SAVE ) GAME( 1987, btlfield, timesold, alpha68k_II, btlfield, alpha68k_state, btlfield, ROT90, "Alpha Denshi Co. (SNK license)", "Battle Field (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, btlfieldb, timesold, btlfieldb, btlfieldb, alpha68k_state,btlfieldb,ROT90, "bootleg", "Battle Field (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, btlfieldb, timesold, btlfieldb, btlfieldb,alpha68k_state, btlfieldb,ROT90, "bootleg", "Battle Field (bootleg)", MACHINE_SUPPORTS_SAVE ) GAME( 1988, skysoldr, 0, alpha68k_II, skysoldr, alpha68k_state, skysoldr, ROT90, "Alpha Denshi Co. (SNK of America/Romstar license)", "Sky Soldiers (US)", MACHINE_SUPPORTS_SAVE ) GAME( 1988, skysoldrbl,skysoldr, alpha68k_II, skysoldr, alpha68k_state, skysoldr, ROT90, "bootleg", "Sky Soldiers (bootleg)", MACHINE_SUPPORTS_SAVE ) @@ -3514,12 +3514,12 @@ GAME( 1988, goldmedla, goldmedl, alpha68k_II_gm, goldmedl, alpha68k_state, goldm GAME( 1988, goldmedlb, goldmedl, alpha68k_II_gm, goldmedl, alpha68k_state, goldmedla,ROT0, "bootleg", "Gold Medalist (bootleg)", MACHINE_UNEMULATED_PROTECTION|MACHINE_IMPERFECT_GRAPHICS ) // same as above GAME( 1989, skyadvnt, 0, alpha68k_V, skyadvnt, alpha68k_state, skyadvnt, ROT90, "Alpha Denshi Co.", "Sky Adventure (World)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, skyadvntu, skyadvnt, alpha68k_V, skyadvntu, alpha68k_state,skyadvntu,ROT90, "Alpha Denshi Co. (SNK of America license)", "Sky Adventure (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, skyadvntu, skyadvnt, alpha68k_V, skyadvntu,alpha68k_state, skyadvntu,ROT90, "Alpha Denshi Co. (SNK of America license)", "Sky Adventure (US)", MACHINE_SUPPORTS_SAVE ) GAME( 1989, skyadvntj, skyadvnt, alpha68k_V, skyadvnt, alpha68k_state, skyadvnt, ROT90, "Alpha Denshi Co.", "Sky Adventure (Japan)", MACHINE_SUPPORTS_SAVE ) GAME( 1989, gangwars, 0, alpha68k_V, gangwars, alpha68k_state, gangwars, ROT0, "Alpha Denshi Co.", "Gang Wars", MACHINE_SUPPORTS_SAVE ) GAME( 1989, gangwarsj, gangwars, alpha68k_V, gangwars, alpha68k_state, gangwars, ROT0, "Alpha Denshi Co.", "Gang Wars (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, gangwarsu, gangwars, alpha68k_V, gangwarsu, alpha68k_state,gangwarsu,ROT0, "Alpha Denshi Co.", "Gang Wars (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, gangwarsu, gangwars, alpha68k_V, gangwarsu,alpha68k_state, gangwarsu,ROT0, "Alpha Denshi Co.", "Gang Wars (US)", MACHINE_SUPPORTS_SAVE ) GAME( 1989, gangwarsb, gangwars, alpha68k_V, gangwars, alpha68k_state, gangwars, ROT0, "bootleg", "Gang Wars (bootleg)", MACHINE_SUPPORTS_SAVE ) // has (undumped) 68705 MCU in place of Alpha MCU, otherwise the same as 'gangwars' GAME( 1989, sbasebal, 0, alpha68k_V_sb, sbasebal, alpha68k_state, sbasebal, ROT0, "Alpha Denshi Co. (SNK of America license)", "Super Champion Baseball (US)", MACHINE_SUPPORTS_SAVE | MACHINE_UNEMULATED_PROTECTION ) // calculated pitcher launching speed diff --git a/src/mame/drivers/alphasma.cpp b/src/mame/drivers/alphasma.cpp index 86b6145ab2b..7710970f54c 100644 --- a/src/mame/drivers/alphasma.cpp +++ b/src/mame/drivers/alphasma.cpp @@ -418,7 +418,7 @@ void alphasmart_state::machine_reset() m_port_d = 0; } -static MACHINE_CONFIG_START( alphasmart, alphasmart_state ) +static MACHINE_CONFIG_START( alphasmart ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", MC68HC11, XTAL_8MHz/2) // MC68HC11D0, XTAL is 8 Mhz, unknown divider MCFG_CPU_PROGRAM_MAP(alphasmart_mem) @@ -449,7 +449,7 @@ static MACHINE_CONFIG_START( alphasmart, alphasmart_state ) MCFG_NVRAM_ADD_0FILL("nvram") MACHINE_CONFIG_END -static MACHINE_CONFIG_DERIVED_CLASS( asma2k, alphasmart, asma2k_state ) +static MACHINE_CONFIG_DERIVED( asma2k, alphasmart ) MCFG_CPU_MODIFY("maincpu") MCFG_CPU_PROGRAM_MAP(asma2k_mem) MACHINE_CONFIG_END @@ -477,6 +477,6 @@ ROM_START( asma2k ) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1995, asmapro, 0, 0, alphasmart, alphasmart, driver_device, 0, "Intelligent Peripheral Devices", "AlphaSmart Pro" , MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -COMP( 1997, asma2k , 0, 0, asma2k , alphasmart, driver_device, 0, "Intelligent Peripheral Devices", "AlphaSmart 2000", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1995, asmapro, 0, 0, alphasmart, alphasmart, alphasmart_state, 0, "Intelligent Peripheral Devices", "AlphaSmart Pro" , MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +COMP( 1997, asma2k, 0, 0, asma2k, alphasmart, asma2k_state, 0, "Intelligent Peripheral Devices", "AlphaSmart 2000", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/alphatro.cpp b/src/mame/drivers/alphatro.cpp index 9380cd1db3a..5ca590401da 100644 --- a/src/mame/drivers/alphatro.cpp +++ b/src/mame/drivers/alphatro.cpp @@ -440,7 +440,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(alphatro_state::timer_p) } } -static MACHINE_CONFIG_START( alphatro, alphatro_state ) +static MACHINE_CONFIG_START( alphatro ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80,MAIN_CLOCK) @@ -510,4 +510,4 @@ ROM_START( alphatro ) ROM_LOAD( "2732.ic-1067", 0x0000, 0x1000, CRC(61f38814) SHA1(35ba31c58a10d5bd1bdb202717792ca021dbe1a8) ) ROM_END -COMP( 1983, alphatro, 0, 0, alphatro, alphatro, driver_device, 0, "Triumph-Adler", "Alphatronic PC", MACHINE_NOT_WORKING ) +COMP( 1983, alphatro, 0, 0, alphatro, alphatro, alphatro_state, 0, "Triumph-Adler", "Alphatronic PC", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/altair.cpp b/src/mame/drivers/altair.cpp index a72174da336..e4fe515b417 100644 --- a/src/mame/drivers/altair.cpp +++ b/src/mame/drivers/altair.cpp @@ -99,10 +99,10 @@ WRITE_LINE_MEMBER(altair_state::write_acia_clock) void altair_state::machine_reset() { // Set startup address done by turn-key - m_maincpu->set_state_int(I8085_PC, 0xFD00); + m_maincpu->set_state_int(i8080_cpu_device::I8085_PC, 0xFD00); } -static MACHINE_CONFIG_START( altair, altair_state ) +static MACHINE_CONFIG_START( altair ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8080, XTAL_2MHz) MCFG_CPU_PROGRAM_MAP(altair_mem) @@ -134,5 +134,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1977, al8800bt, 0, 0, altair, altair, driver_device, 0, "MITS", "Altair 8800bt", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1977, al8800bt, 0, 0, altair, altair, altair_state, 0, "MITS", "Altair 8800bt", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW) diff --git a/src/mame/drivers/alto2.cpp b/src/mame/drivers/alto2.cpp index 3d3ae5cdb9e..8ec29569952 100644 --- a/src/mame/drivers/alto2.cpp +++ b/src/mame/drivers/alto2.cpp @@ -272,7 +272,7 @@ ADDRESS_MAP_START( alto2_iomem_map, AS_2, 16, alto2_state ) AM_RANGE(0, 2*ALTO2_RAM_SIZE-1) AM_DEVICE16( "maincpu", alto2_cpu_device, iomem_map, 0xffffU ) ADDRESS_MAP_END -static MACHINE_CONFIG_START( alto2, alto2_state ) +static MACHINE_CONFIG_START( alto2 ) // Basic machine hardware // SYSCLK is Display Control part A51 (tagged 29.4MHz) divided by 5(?) // 5.8MHz according to de.wikipedia.org/wiki/Xerox_Alto diff --git a/src/mame/drivers/altos486.cpp b/src/mame/drivers/altos486.cpp index 59ebf8fab11..4698f0be9e8 100644 --- a/src/mame/drivers/altos486.cpp +++ b/src/mame/drivers/altos486.cpp @@ -119,7 +119,7 @@ static ADDRESS_MAP_START(altos486_z80_io, AS_IO, 8, altos486_state) //AM_RANGE(0x08, 0x0b) AM_DEVREADWRITE("sio2", z80sio0_device, read, write) ADDRESS_MAP_END -static MACHINE_CONFIG_START( altos486, altos486_state ) +static MACHINE_CONFIG_START( altos486 ) MCFG_CPU_ADD("maincpu", I80186, XTAL_8MHz) MCFG_CPU_PROGRAM_MAP(altos486_mem) MCFG_CPU_IO_MAP(altos486_io) @@ -219,4 +219,4 @@ ROM_START( altos486 ) ROM_LOAD("16019_z80.bin", 0x0000, 0x1000, CRC(68b1b2e1) SHA1(5d83609a465029212d5e3f72ac9c520b3dbed838)) ROM_END -COMP( 1984, altos486, 0, 0, altos486, 0, driver_device, 0, "Altos Computer Systems", "Altos 486", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +COMP( 1984, altos486, 0, 0, altos486, 0, altos486_state, 0, "Altos Computer Systems", "Altos 486", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) diff --git a/src/mame/drivers/altos5.cpp b/src/mame/drivers/altos5.cpp index 356fc28c48f..bd816db962b 100644 --- a/src/mame/drivers/altos5.cpp +++ b/src/mame/drivers/altos5.cpp @@ -70,7 +70,7 @@ private: required_device m_sio; required_device m_dma; required_device m_ctc; - required_device m_fdc; + required_device m_fdc; required_device m_floppy0; required_device m_floppy1; }; @@ -98,7 +98,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START(altos5_io, AS_IO, 8, altos5_state) ADDRESS_MAP_GLOBAL_MASK(0xff) AM_RANGE(0x00, 0x03) AM_DEVREADWRITE("dma", z80dma_device, read, write) - AM_RANGE(0x04, 0x07) AM_DEVREADWRITE("fdc", fd1797_t, read, write) + AM_RANGE(0x04, 0x07) AM_DEVREADWRITE("fdc", fd1797_device, read, write) AM_RANGE(0x08, 0x0b) AM_DEVREADWRITE("pio0", z80pio_device, read, write) AM_RANGE(0x0c, 0x0f) AM_DEVREADWRITE("ctc", z80ctc_device, read, write) AM_RANGE(0x10, 0x13) AM_DEVREADWRITE("pio1", z80pio_device, read, write) @@ -369,7 +369,7 @@ DRIVER_INIT_MEMBER( altos5_state, altos5 ) membank("bankwf")->configure_entries(0, 50, &RAM[0], 0x1000); } -static MACHINE_CONFIG_START( altos5, altos5_state ) +static MACHINE_CONFIG_START( altos5 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_8MHz / 2) MCFG_CPU_PROGRAM_MAP(altos5_mem) @@ -448,5 +448,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP(1982, altos5, 0, 0, altos5, altos5, altos5_state, altos5, "Altos", "Altos 5-15", MACHINE_NOT_WORKING ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ +COMP(1982, altos5, 0, 0, altos5, altos5, altos5_state, altos5, "Altos", "Altos 5-15", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/alvg.cpp b/src/mame/drivers/alvg.cpp index 08e3371c6b3..2c613d365e9 100644 --- a/src/mame/drivers/alvg.cpp +++ b/src/mame/drivers/alvg.cpp @@ -41,7 +41,7 @@ DRIVER_INIT_MEMBER(alvg_state,alvg) { } -static MACHINE_CONFIG_START( alvg, alvg_state ) +static MACHINE_CONFIG_START( alvg ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M65C02, 2000000) MCFG_CPU_PROGRAM_MAP(alvg_map) @@ -361,16 +361,16 @@ ROM_START(usafootba) ROM_END -GAME(1991, agsoccer, 0, alvg, alvg, alvg_state, alvg, ROT0, "Alvin G", "A.G. Soccer Ball", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1992, wrldtour, 0, alvg, alvg, alvg_state, alvg, ROT0, "Alvin G", "Al's Garage Band Goes On A World Tour", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1992, wrldtour2, wrldtour, alvg, alvg, alvg_state, alvg, ROT0, "Alvin G", "Al's Garage Band Goes On A World Tour (R02b)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1992, wrldtour3, wrldtour, alvg, alvg, alvg_state, alvg, ROT0, "Alvin G", "Al's Garage Band Goes On A World Tour (R06a)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1993, usafootb, 0, alvg, alvg, alvg_state, alvg, ROT0, "Alvin G", "U.S.A. Football (R06u)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1993, usafootba, usafootb, alvg, alvg, alvg_state, alvg, ROT0, "Alvin G", "U.S.A. Football (R01u)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1993, mystcast, 0, alvg, alvg, alvg_state, alvg, ROT0, "Alvin G", "Mystery Castle (R02)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1993, mystcasta, mystcast, alvg, alvg, alvg_state, alvg, ROT0, "Alvin G", "Mystery Castle (R03)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1993, pstlpkr, 0, alvg, alvg, alvg_state, alvg, ROT0, "Alvin G", "Pistol Poker (R02)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1993, pstlpkr1, pstlpkr, alvg, alvg, alvg_state, alvg, ROT0, "Alvin G", "Pistol Poker (R01)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1993, punchy, 0, alvg, alvg, alvg_state, alvg, ROT0, "Alvin G", "Punchy The Clown (R02)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1993, punchy3, punchy, alvg, alvg, alvg_state, alvg, ROT0, "Alvin G", "Punchy The Clown (R03)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1993, dinoeggs, 0, alvg, alvg, alvg_state, alvg, ROT0, "Alvin G", "Dinosaur Eggs", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1991, agsoccer, 0, alvg, alvg, alvg_state, alvg, ROT0, "Alvin G", "A.G. Soccer Ball", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1992, wrldtour, 0, alvg, alvg, alvg_state, alvg, ROT0, "Alvin G", "Al's Garage Band Goes On A World Tour", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1992, wrldtour2, wrldtour, alvg, alvg, alvg_state, alvg, ROT0, "Alvin G", "Al's Garage Band Goes On A World Tour (R02b)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1992, wrldtour3, wrldtour, alvg, alvg, alvg_state, alvg, ROT0, "Alvin G", "Al's Garage Band Goes On A World Tour (R06a)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1993, usafootb, 0, alvg, alvg, alvg_state, alvg, ROT0, "Alvin G", "U.S.A. Football", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1993, usafootba, usafootb, alvg, alvg, alvg_state, alvg, ROT0, "Alvin G", "U.S.A. Football (R01u)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1993, mystcast, 0, alvg, alvg, alvg_state, alvg, ROT0, "Alvin G", "Mystery Castle (R02)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1993, mystcasta, mystcast, alvg, alvg, alvg_state, alvg, ROT0, "Alvin G", "Mystery Castle (R03)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1993, pstlpkr, 0, alvg, alvg, alvg_state, alvg, ROT0, "Alvin G", "Pistol Poker (R02)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1993, pstlpkr1, pstlpkr, alvg, alvg, alvg_state, alvg, ROT0, "Alvin G", "Pistol Poker (R01)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1993, punchy, 0, alvg, alvg, alvg_state, alvg, ROT0, "Alvin G", "Punchy The Clown (R02)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1993, punchy3, punchy, alvg, alvg, alvg_state, alvg, ROT0, "Alvin G", "Punchy The Clown (R03)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1993, dinoeggs, 0, alvg, alvg, alvg_state, alvg, ROT0, "Alvin G", "Dinosaur Eggs", MACHINE_IS_SKELETON_MECHANICAL) diff --git a/src/mame/drivers/amaticmg.cpp b/src/mame/drivers/amaticmg.cpp index 95a50029ada..d2cf7a98511 100644 --- a/src/mame/drivers/amaticmg.cpp +++ b/src/mame/drivers/amaticmg.cpp @@ -819,7 +819,7 @@ void amaticmg_state::machine_reset() * Machine Drivers * ************************************/ -static MACHINE_CONFIG_START( amaticmg, amaticmg_state ) +static MACHINE_CONFIG_START( amaticmg ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, CPU_CLOCK) /* WRONG! */ MCFG_CPU_PROGRAM_MAP(amaticmg_map) diff --git a/src/mame/drivers/ambush.cpp b/src/mame/drivers/ambush.cpp index 963881a350e..2becacfa56e 100644 --- a/src/mame/drivers/ambush.cpp +++ b/src/mame/drivers/ambush.cpp @@ -667,7 +667,7 @@ WRITE8_MEMBER( ambush_state::unk_w ) // MACHINE DEFINTIONS //************************************************************************** -static MACHINE_CONFIG_START( ambush, ambush_state ) +static MACHINE_CONFIG_START( ambush ) MCFG_CPU_ADD("maincpu", Z80, XTAL_18_432MHz/6) MCFG_CPU_PROGRAM_MAP(main_map) MCFG_CPU_IO_MAP(main_portmap) @@ -872,10 +872,10 @@ ROM_END // SYSTEM DRIVERS //************************************************************************** -// YEAR NAME PARENT MACHINE INPUT CLASS INIT ROTATION COMPANY FULLNAME FLAGS -GAME( 1983, ambush, 0, ambush, ambusht, driver_device, 0, ROT0, "Tecfri", "Ambush", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, ambushh, ambush, ambush, ambusht, driver_device, 0, ROT0, "Tecfri", "Ambush (hack?)", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, ambushj, ambush, ambush, ambush, driver_device, 0, ROT0, "Tecfri (Nippon Amuse license)", "Ambush (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, ambushv, ambush, ambush, ambush, driver_device, 0, ROT0, "Tecfri (Volt Electronics license)", "Ambush (Volt Electronics)", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, mariobl, mario, mariobl, mariobl, driver_device, 0, ROT180, "bootleg", "Mario Bros. (bootleg on Ambush Hardware)", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, dkong3abl, dkong3, dkong3abl, dkong3abl, driver_device, 0, ROT90, "bootleg", "Donkey Kong 3 (bootleg on Ambush hardware)", MACHINE_SUPPORTS_SAVE ) +// YEAR NAME PARENT MACHINE INPUT CLASS INIT ROTATION COMPANY FULLNAME FLAGS +GAME( 1983, ambush, 0, ambush, ambusht, ambush_state, 0, ROT0, "Tecfri", "Ambush", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, ambushh, ambush, ambush, ambusht, ambush_state, 0, ROT0, "Tecfri", "Ambush (hack?)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, ambushj, ambush, ambush, ambush, ambush_state, 0, ROT0, "Tecfri (Nippon Amuse license)", "Ambush (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, ambushv, ambush, ambush, ambush, ambush_state, 0, ROT0, "Tecfri (Volt Electronics license)", "Ambush (Volt Electronics)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, mariobl, mario, mariobl, mariobl, ambush_state, 0, ROT180, "bootleg", "Mario Bros. (bootleg on Ambush Hardware)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, dkong3abl, dkong3, dkong3abl, dkong3abl, ambush_state, 0, ROT90, "bootleg", "Donkey Kong 3 (bootleg on Ambush hardware)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/amerihok.cpp b/src/mame/drivers/amerihok.cpp index 9813a6f0379..98701c931f8 100644 --- a/src/mame/drivers/amerihok.cpp +++ b/src/mame/drivers/amerihok.cpp @@ -48,7 +48,7 @@ void amerihok_state::machine_reset() } -static MACHINE_CONFIG_START( amerihok, amerihok_state ) +static MACHINE_CONFIG_START( amerihok ) /* basic machine hardware */ // MCFG_CPU_ADD("maincpu", ??, 8000000) // unknown @@ -59,7 +59,7 @@ static MACHINE_CONFIG_START( amerihok, amerihok_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", 1000000, OKIM6295_PIN7_HIGH) // maybe + MCFG_OKIM6295_ADD("oki", 1000000, PIN7_HIGH) // maybe MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END diff --git a/src/mame/drivers/amico2k.cpp b/src/mame/drivers/amico2k.cpp index 10c4f59a0ec..ea6d890008d 100644 --- a/src/mame/drivers/amico2k.cpp +++ b/src/mame/drivers/amico2k.cpp @@ -206,7 +206,7 @@ void amico2k_state::machine_start() save_item(NAME(m_segment)); } -static MACHINE_CONFIG_START( amico2k, amico2k_state ) +static MACHINE_CONFIG_START( amico2k ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, 1000000) /* 1MHz */ MCFG_CPU_PROGRAM_MAP(amico2k_mem) @@ -237,5 +237,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1978, amico2k, 0, 0, amico2k, amico2k, driver_device, 0, "A.S.E.L.", "Amico 2000", MACHINE_NO_SOUND_HW) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1978, amico2k, 0, 0, amico2k, amico2k, amico2k_state, 0, "A.S.E.L.", "Amico 2000", MACHINE_NO_SOUND_HW) diff --git a/src/mame/drivers/amiga.cpp b/src/mame/drivers/amiga.cpp index a720e471bc8..fb28f7911b2 100644 --- a/src/mame/drivers/amiga.cpp +++ b/src/mame/drivers/amiga.cpp @@ -163,7 +163,7 @@ protected: private: // devices required_device m_rtc; - required_device m_dmac; + required_device m_dmac; required_device m_tpi; required_device m_cdrom; @@ -1310,7 +1310,7 @@ static SLOT_INTERFACE_START( amiga_floppies ) SLOT_INTERFACE_END // basic elements common to all amigas -static MACHINE_CONFIG_START( amiga_base, amiga_state ) +static MACHINE_CONFIG_START( amiga_base ) // video MCFG_FRAGMENT_ADD(pal_video) @@ -1332,7 +1332,7 @@ static MACHINE_CONFIG_START( amiga_base, amiga_state ) MCFG_MOS6526_IRQ_CALLBACK(WRITELINE(amiga_state, cia_1_irq)) MCFG_MOS6526_PA_INPUT_CALLBACK(READ8(amiga_state, cia_1_port_a_read)) MCFG_MOS6526_PA_OUTPUT_CALLBACK(WRITE8(amiga_state, cia_1_port_a_write)) - MCFG_MOS6526_PB_OUTPUT_CALLBACK(DEVWRITE8("fdc", amiga_fdc, ciaaprb_w)) + MCFG_MOS6526_PB_OUTPUT_CALLBACK(DEVWRITE8("fdc", amiga_fdc_device, ciaaprb_w)) // audio MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") @@ -1346,13 +1346,13 @@ static MACHINE_CONFIG_START( amiga_base, amiga_state ) // floppy drives MCFG_DEVICE_ADD("fdc", AMIGA_FDC, amiga_state::CLK_7M_PAL) - MCFG_FLOPPY_DRIVE_ADD("fdc:0", amiga_floppies, "35dd", amiga_fdc::floppy_formats) + MCFG_FLOPPY_DRIVE_ADD("fdc:0", amiga_floppies, "35dd", amiga_fdc_device::floppy_formats) MCFG_FLOPPY_DRIVE_SOUND(true) - MCFG_FLOPPY_DRIVE_ADD("fdc:1", amiga_floppies, nullptr, amiga_fdc::floppy_formats) + MCFG_FLOPPY_DRIVE_ADD("fdc:1", amiga_floppies, nullptr, amiga_fdc_device::floppy_formats) MCFG_FLOPPY_DRIVE_SOUND(true) - MCFG_FLOPPY_DRIVE_ADD("fdc:2", amiga_floppies, nullptr, amiga_fdc::floppy_formats) + MCFG_FLOPPY_DRIVE_ADD("fdc:2", amiga_floppies, nullptr, amiga_fdc_device::floppy_formats) MCFG_FLOPPY_DRIVE_SOUND(true) - MCFG_FLOPPY_DRIVE_ADD("fdc:3", amiga_floppies, nullptr, amiga_fdc::floppy_formats) + MCFG_FLOPPY_DRIVE_ADD("fdc:3", amiga_floppies, nullptr, amiga_fdc_device::floppy_formats) MCFG_FLOPPY_DRIVE_SOUND(true) // rs232 @@ -1385,7 +1385,7 @@ static MACHINE_CONFIG_START( amiga_base, amiga_state ) MCFG_SOFTWARE_LIST_ADD("ocs_list", "amigaocs_flop") MACHINE_CONFIG_END -static MACHINE_CONFIG_DERIVED_CLASS( a1000, amiga_base, a1000_state ) +static MACHINE_CONFIG_DERIVED( a1000, amiga_base ) // main cpu MCFG_CPU_ADD("maincpu", M68000, amiga_state::CLK_7M_PAL) MCFG_CPU_PROGRAM_MAP(a1000_mem) @@ -1407,7 +1407,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( a1000, amiga_base, a1000_state ) MCFG_SOFTWARE_LIST_ADD("a1000_list", "amiga_a1000") MACHINE_CONFIG_END -static MACHINE_CONFIG_DERIVED_CLASS( a1000n, a1000, a1000_state ) +static MACHINE_CONFIG_DERIVED( a1000n, a1000 ) MCFG_DEVICE_MODIFY("maincpu") MCFG_DEVICE_CLOCK(amiga_state::CLK_7M_NTSC) MCFG_DEVICE_REMOVE("screen") @@ -1422,7 +1422,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( a1000n, a1000, a1000_state ) MCFG_DEVICE_CLOCK(amiga_state::CLK_7M_NTSC) MACHINE_CONFIG_END -static MACHINE_CONFIG_DERIVED_CLASS( a2000, amiga_base, a2000_state ) +static MACHINE_CONFIG_DERIVED( a2000, amiga_base ) // main cpu MCFG_CPU_ADD("maincpu", M68000, amiga_state::CLK_7M_PAL) MCFG_CPU_PROGRAM_MAP(a2000_mem) @@ -1451,7 +1451,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( a2000, amiga_base, a2000_state ) MCFG_ZORRO2_SLOT_ADD("zorro5", zorro2_cards, nullptr) MACHINE_CONFIG_END -static MACHINE_CONFIG_DERIVED_CLASS( a2000n, a2000, a2000_state ) +static MACHINE_CONFIG_DERIVED( a2000n, a2000 ) MCFG_DEVICE_MODIFY("maincpu") MCFG_DEVICE_CLOCK(amiga_state::CLK_7M_NTSC) MCFG_DEVICE_REMOVE("screen") @@ -1466,7 +1466,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( a2000n, a2000, a2000_state ) MCFG_DEVICE_CLOCK(amiga_state::CLK_7M_NTSC) MACHINE_CONFIG_END -static MACHINE_CONFIG_DERIVED_CLASS( a500, amiga_base, a500_state ) +static MACHINE_CONFIG_DERIVED( a500, amiga_base ) // main cpu MCFG_CPU_ADD("maincpu", M68000, amiga_state::CLK_7M_PAL) MCFG_CPU_PROGRAM_MAP(a500_mem) @@ -1485,7 +1485,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( a500, amiga_base, a500_state ) MCFG_EXPANSION_SLOT_INT6_HANDLER(WRITELINE(a500_state, side_int6_w)) MACHINE_CONFIG_END -static MACHINE_CONFIG_DERIVED_CLASS( a500n, a500, a500_state ) +static MACHINE_CONFIG_DERIVED( a500n, a500 ) MCFG_DEVICE_MODIFY("maincpu") MCFG_DEVICE_CLOCK(amiga_state::CLK_7M_NTSC) MCFG_DEVICE_REMOVE("screen") @@ -1500,7 +1500,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( a500n, a500, a500_state ) MCFG_DEVICE_CLOCK(amiga_state::CLK_7M_NTSC) MACHINE_CONFIG_END -static MACHINE_CONFIG_DERIVED_CLASS( cdtv, amiga_base, cdtv_state ) +static MACHINE_CONFIG_DERIVED( cdtv, amiga_base ) // main cpu MCFG_CPU_ADD("maincpu", M68000, amiga_state::CLK_7M_PAL) MCFG_CPU_PROGRAM_MAP(cdtv_mem) @@ -1550,14 +1550,14 @@ static MACHINE_CONFIG_DERIVED_CLASS( cdtv, amiga_base, cdtv_state ) MCFG_CR511B_STCH_HANDLER(DEVWRITELINE("u32", tpi6525_device, i2_w)) MCFG_DEVCB_INVERT MCFG_CR511B_STEN_HANDLER(DEVWRITELINE("u32", tpi6525_device, i3_w)) MCFG_CR511B_XAEN_HANDLER(DEVWRITELINE("u32", tpi6525_device, pb2_w)) - MCFG_CR511B_DRQ_HANDLER(DEVWRITELINE("u36", dmac_device, xdreq_w)) - MCFG_CR511B_DTEN_HANDLER(DEVWRITELINE("u36", dmac_device, xdreq_w)) + MCFG_CR511B_DRQ_HANDLER(DEVWRITELINE("u36", amiga_dmac_device, xdreq_w)) + MCFG_CR511B_DTEN_HANDLER(DEVWRITELINE("u36", amiga_dmac_device, xdreq_w)) // software MCFG_SOFTWARE_LIST_ADD("cd_list", "cdtv") MACHINE_CONFIG_END -static MACHINE_CONFIG_DERIVED_CLASS( cdtvn, cdtv, cdtv_state ) +static MACHINE_CONFIG_DERIVED( cdtvn, cdtv ) MCFG_DEVICE_MODIFY("maincpu") MCFG_DEVICE_CLOCK(amiga_state::CLK_7M_NTSC) MCFG_DEVICE_REMOVE("screen") @@ -1574,7 +1574,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( cdtvn, cdtv, cdtv_state ) MCFG_DEVICE_CLOCK(amiga_state::CLK_7M_NTSC) MACHINE_CONFIG_END -static MACHINE_CONFIG_DERIVED_CLASS( a3000, amiga_base, a3000_state ) +static MACHINE_CONFIG_DERIVED( a3000, amiga_base ) // main cpu MCFG_CPU_ADD("maincpu", M68030, XTAL_32MHz / 2) MCFG_CPU_PROGRAM_MAP(a3000_mem) @@ -1596,7 +1596,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( a3000, amiga_base, a3000_state ) MCFG_SOFTWARE_LIST_ADD("ecs_list", "amigaecs_flop") MACHINE_CONFIG_END -static MACHINE_CONFIG_DERIVED_CLASS( a3000n, a3000, a3000_state ) +static MACHINE_CONFIG_DERIVED( a3000n, a3000 ) MCFG_DEVICE_REMOVE("screen") MCFG_FRAGMENT_ADD(ntsc_video) MCFG_DEVICE_MODIFY("cia_0") @@ -1607,7 +1607,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( a3000n, a3000, a3000_state ) MCFG_DEVICE_CLOCK(amiga_state::CLK_7M_NTSC) MACHINE_CONFIG_END -static MACHINE_CONFIG_DERIVED_CLASS( a500p, amiga_base, a500p_state ) +static MACHINE_CONFIG_DERIVED( a500p, amiga_base ) // main cpu MCFG_CPU_ADD("maincpu", M68000, amiga_state::CLK_7M_PAL) MCFG_CPU_PROGRAM_MAP(a500p_mem) @@ -1629,7 +1629,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( a500p, amiga_base, a500p_state ) MCFG_SOFTWARE_LIST_ADD("ecs_list", "amigaecs_flop") MACHINE_CONFIG_END -static MACHINE_CONFIG_DERIVED_CLASS( a500pn, a500p, a500p_state ) +static MACHINE_CONFIG_DERIVED( a500pn, a500p ) MCFG_DEVICE_MODIFY("maincpu") MCFG_DEVICE_CLOCK(amiga_state::CLK_7M_NTSC) MCFG_DEVICE_REMOVE("screen") @@ -1644,7 +1644,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( a500pn, a500p, a500p_state ) MCFG_DEVICE_CLOCK(amiga_state::CLK_7M_NTSC) MACHINE_CONFIG_END -static MACHINE_CONFIG_DERIVED_CLASS( a600, amiga_base, a600_state ) +static MACHINE_CONFIG_DERIVED( a600, amiga_base ) // main cpu MCFG_CPU_ADD("maincpu", M68000, amiga_state::CLK_7M_PAL) MCFG_CPU_PROGRAM_MAP(a600_mem) @@ -1672,7 +1672,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( a600, amiga_base, a600_state ) MCFG_SOFTWARE_LIST_ADD("ecs_list", "amigaecs_flop") MACHINE_CONFIG_END -static MACHINE_CONFIG_DERIVED_CLASS( a600n, a600, a600_state ) +static MACHINE_CONFIG_DERIVED( a600n, a600 ) MCFG_DEVICE_MODIFY("maincpu") MCFG_DEVICE_CLOCK(amiga_state::CLK_7M_NTSC) MCFG_DEVICE_MODIFY("gayle") @@ -1689,7 +1689,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( a600n, a600, a600_state ) MCFG_DEVICE_CLOCK(amiga_state::CLK_7M_NTSC) MACHINE_CONFIG_END -static MACHINE_CONFIG_DERIVED_CLASS( a1200, amiga_base, a1200_state ) +static MACHINE_CONFIG_DERIVED( a1200, amiga_base ) // main cpu MCFG_CPU_ADD("maincpu", M68EC020, amiga_state::CLK_28M_PAL / 2) MCFG_CPU_PROGRAM_MAP(a1200_mem) @@ -1732,7 +1732,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( a1200, amiga_base, a1200_state ) MCFG_SOFTWARE_LIST_ADD("ecs_list", "amigaecs_flop") MACHINE_CONFIG_END -static MACHINE_CONFIG_DERIVED_CLASS( a1200n, a1200, a1200_state ) +static MACHINE_CONFIG_DERIVED( a1200n, a1200 ) MCFG_DEVICE_MODIFY("maincpu") MCFG_DEVICE_CLOCK(amiga_state::CLK_28M_NTSC / 2) MCFG_DEVICE_MODIFY("gayle") @@ -1752,7 +1752,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( a1200n, a1200, a1200_state ) MCFG_DEVICE_CLOCK(amiga_state::CLK_7M_NTSC) MACHINE_CONFIG_END -static MACHINE_CONFIG_DERIVED_CLASS( a4000, amiga_base, a4000_state ) +static MACHINE_CONFIG_DERIVED( a4000, amiga_base ) // main cpu MCFG_CPU_ADD("maincpu", M68040, XTAL_50MHz / 2) MCFG_CPU_PROGRAM_MAP(a4000_mem) @@ -1786,7 +1786,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( a4000, amiga_base, a4000_state ) MCFG_SOFTWARE_LIST_ADD("ecs_list", "amigaecs_flop") MACHINE_CONFIG_END -static MACHINE_CONFIG_DERIVED_CLASS( a4000n, a4000, a4000_state ) +static MACHINE_CONFIG_DERIVED( a4000n, a4000 ) MCFG_DEVICE_REMOVE("screen") MCFG_FRAGMENT_ADD(ntsc_video) MCFG_DEVICE_MODIFY("screen") @@ -1802,7 +1802,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( a4000n, a4000, a4000_state ) MCFG_DEVICE_CLOCK(amiga_state::CLK_7M_NTSC) MACHINE_CONFIG_END -static MACHINE_CONFIG_DERIVED_CLASS( a400030, a4000, a4000_state ) +static MACHINE_CONFIG_DERIVED( a400030, a4000 ) // main cpu MCFG_DEVICE_REMOVE("maincpu") MCFG_CPU_ADD("maincpu", M68EC030, XTAL_50MHz / 2) @@ -1811,7 +1811,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( a400030, a4000, a4000_state ) // todo: ide MACHINE_CONFIG_END -static MACHINE_CONFIG_DERIVED_CLASS( a400030n, a400030, a4000_state ) +static MACHINE_CONFIG_DERIVED( a400030n, a400030 ) MCFG_DEVICE_REMOVE("screen") MCFG_FRAGMENT_ADD(ntsc_video) MCFG_DEVICE_MODIFY("screen") @@ -1827,7 +1827,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( a400030n, a400030, a4000_state ) MCFG_DEVICE_CLOCK(amiga_state::CLK_7M_NTSC) MACHINE_CONFIG_END -static MACHINE_CONFIG_DERIVED_CLASS( cd32, amiga_base, cd32_state ) +static MACHINE_CONFIG_DERIVED( cd32, amiga_base ) // main cpu MCFG_CPU_ADD("maincpu", M68EC020, amiga_state::CLK_28M_PAL / 2) MCFG_CPU_PROGRAM_MAP(cd32_mem) @@ -1873,7 +1873,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( cd32, amiga_base, cd32_state ) MCFG_DEVICE_REMOVE("kbd") MACHINE_CONFIG_END -static MACHINE_CONFIG_DERIVED_CLASS( cd32n, cd32, cd32_state ) +static MACHINE_CONFIG_DERIVED( cd32n, cd32 ) MCFG_DEVICE_MODIFY("maincpu") MCFG_DEVICE_CLOCK(amiga_state::CLK_28M_NTSC / 2) MCFG_DEVICE_REMOVE("screen") @@ -1891,7 +1891,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( cd32n, cd32, cd32_state ) MCFG_DEVICE_CLOCK(amiga_state::CLK_7M_NTSC) MACHINE_CONFIG_END -static MACHINE_CONFIG_DERIVED_CLASS( a4000t, a4000, a4000_state ) +static MACHINE_CONFIG_DERIVED( a4000t, a4000 ) // main cpu MCFG_DEVICE_REMOVE("maincpu") MCFG_CPU_ADD("maincpu", M68040, XTAL_50MHz / 2) @@ -1900,7 +1900,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( a4000t, a4000, a4000_state ) // todo: ide, zorro3, scsi, super dmac MACHINE_CONFIG_END -static MACHINE_CONFIG_DERIVED_CLASS( a4000tn, a4000, a4000_state ) +static MACHINE_CONFIG_DERIVED( a4000tn, a4000 ) MCFG_DEVICE_REMOVE("screen") MCFG_FRAGMENT_ADD(ntsc_video) MCFG_DEVICE_MODIFY("screen") diff --git a/src/mame/drivers/ampoker2.cpp b/src/mame/drivers/ampoker2.cpp index 741185eb5ba..e5da31eb8ed 100644 --- a/src/mame/drivers/ampoker2.cpp +++ b/src/mame/drivers/ampoker2.cpp @@ -1139,7 +1139,7 @@ GFXDECODE_END * Machine Driver * *************************/ -static MACHINE_CONFIG_START( ampoker2, ampoker2_state ) +static MACHINE_CONFIG_START( ampoker2 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, MASTER_CLOCK/2) /* 3 MHz */ @@ -1444,16 +1444,16 @@ DRIVER_INIT_MEMBER(ampoker2_state, piccolop) *************************/ // YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS LAYOUT -GAMEL( 1990, ampoker2, 0, ampoker2, ampoker2, driver_device, 0, ROT0, "Novomatic", "American Poker II", MACHINE_SUPPORTS_SAVE, layout_ampoker2 ) -GAMEL( 1990, ampkr2b1, ampoker2, ampoker2, ampoker2, driver_device, 0, ROT0, "bootleg", "American Poker II (bootleg, set 1)", MACHINE_SUPPORTS_SAVE, layout_ampoker2 ) -GAMEL( 1990, ampkr2b2, ampoker2, ampoker2, ampoker2, driver_device, 0, ROT0, "bootleg", "American Poker II (bootleg, set 2)", MACHINE_SUPPORTS_SAVE, layout_ampoker2 ) -GAMEL( 1994, ampkr2b3, ampoker2, ampoker2, ampoker2, driver_device, 0, ROT0, "bootleg", "American Poker II (bootleg, set 3)", MACHINE_SUPPORTS_SAVE, layout_ampoker2 ) -GAMEL( 1994, ampkr2b4, ampoker2, ampoker2, ampoker2, driver_device, 0, ROT0, "bootleg", "American Poker II (bootleg, set 4)", MACHINE_SUPPORTS_SAVE, layout_ampoker2 ) -GAMEL( 1994, ampkr228, ampoker2, ampoker2, ampoker2, driver_device, 0, ROT0, "bootleg?", "American Poker II (iamp2 v28)", MACHINE_SUPPORTS_SAVE, layout_ampoker2 ) -GAMEL( 1995, ampkr95, ampoker2, ampoker2, ampkr95, driver_device, 0, ROT0, "bootleg", "American Poker 95", MACHINE_SUPPORTS_SAVE, layout_ampoker2 ) -GAMEL( 1990, pkrdewin, ampoker2, ampoker2, ampoker2, driver_device, 0, ROT0, "bootleg", "Poker De Win", MACHINE_SUPPORTS_SAVE, layout_ampoker2 ) -GAMEL( 1990, videomat, ampoker2, ampoker2, ampoker2, driver_device, 0, ROT0, "bootleg", "Videomat (Polish bootleg)", MACHINE_SUPPORTS_SAVE, layout_ampoker2 ) +GAMEL( 1990, ampoker2, 0, ampoker2, ampoker2, ampoker2_state, 0, ROT0, "Novomatic", "American Poker II", MACHINE_SUPPORTS_SAVE, layout_ampoker2 ) +GAMEL( 1990, ampkr2b1, ampoker2, ampoker2, ampoker2, ampoker2_state, 0, ROT0, "bootleg", "American Poker II (bootleg, set 1)", MACHINE_SUPPORTS_SAVE, layout_ampoker2 ) +GAMEL( 1990, ampkr2b2, ampoker2, ampoker2, ampoker2, ampoker2_state, 0, ROT0, "bootleg", "American Poker II (bootleg, set 2)", MACHINE_SUPPORTS_SAVE, layout_ampoker2 ) +GAMEL( 1994, ampkr2b3, ampoker2, ampoker2, ampoker2, ampoker2_state, 0, ROT0, "bootleg", "American Poker II (bootleg, set 3)", MACHINE_SUPPORTS_SAVE, layout_ampoker2 ) +GAMEL( 1994, ampkr2b4, ampoker2, ampoker2, ampoker2, ampoker2_state, 0, ROT0, "bootleg", "American Poker II (bootleg, set 4)", MACHINE_SUPPORTS_SAVE, layout_ampoker2 ) +GAMEL( 1994, ampkr228, ampoker2, ampoker2, ampoker2, ampoker2_state, 0, ROT0, "bootleg?", "American Poker II (iamp2 v28)", MACHINE_SUPPORTS_SAVE, layout_ampoker2 ) +GAMEL( 1995, ampkr95, ampoker2, ampoker2, ampkr95, ampoker2_state, 0, ROT0, "bootleg", "American Poker 95", MACHINE_SUPPORTS_SAVE, layout_ampoker2 ) +GAMEL( 1990, pkrdewin, ampoker2, ampoker2, ampoker2, ampoker2_state, 0, ROT0, "bootleg", "Poker De Win", MACHINE_SUPPORTS_SAVE, layout_ampoker2 ) +GAMEL( 1990, videomat, ampoker2, ampoker2, ampoker2, ampoker2_state, 0, ROT0, "bootleg", "Videomat (Polish bootleg)", MACHINE_SUPPORTS_SAVE, layout_ampoker2 ) GAMEL( 1990, rabbitpk, ampoker2, ampoker2, ampoker2, ampoker2_state, rabbitpk, ROT0, "bootleg", "Rabbit Poker (Arizona Poker v1.1?)", MACHINE_SUPPORTS_SAVE, layout_ampoker2 ) -GAMEL( 1995, sigmapkr, 0, ampoker2, sigmapkr, driver_device, 0, ROT0, "Sigma Inc.", "Sigma Poker", MACHINE_SUPPORTS_SAVE, layout_sigmapkr ) -GAMEL( 1998, sigma2k, 0, sigma2k, sigma2k, driver_device, 0, ROT0, "Sigma Inc.", "Sigma Poker 2000", MACHINE_SUPPORTS_SAVE, layout_sigmapkr ) +GAMEL( 1995, sigmapkr, 0, ampoker2, sigmapkr, ampoker2_state, 0, ROT0, "Sigma Inc.", "Sigma Poker", MACHINE_SUPPORTS_SAVE, layout_sigmapkr ) +GAMEL( 1998, sigma2k, 0, sigma2k, sigma2k, ampoker2_state, 0, ROT0, "Sigma Inc.", "Sigma Poker 2000", MACHINE_SUPPORTS_SAVE, layout_sigmapkr ) GAME( 1990, piccolop, ampoker2, ampoker2, piccolop, ampoker2_state, piccolop, ROT0, "Admiral/Novomatic", "Piccolo Poker 100", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/ampro.cpp b/src/mame/drivers/ampro.cpp index 1064043115f..213c26e8fdd 100644 --- a/src/mame/drivers/ampro.cpp +++ b/src/mame/drivers/ampro.cpp @@ -56,7 +56,7 @@ private: required_device m_maincpu; required_device m_dart; required_device m_ctc; - required_device m_fdc; + required_device m_fdc; required_device m_floppy0; }; @@ -110,8 +110,8 @@ static ADDRESS_MAP_START(ampro_io, AS_IO, 8, ampro_state) //AM_RANGE(0x28, 0x28) AM_WRITE(port28_w) // scsi control //AM_RANGE(0x29, 0x29) AM_READ(port29_r) // ID port AM_RANGE(0x40, 0x8f) AM_READWRITE(io_r,io_w) - AM_RANGE(0xc0, 0xc3) AM_DEVWRITE("fdc", wd1772_t, write) - AM_RANGE(0xc4, 0xc7) AM_DEVREAD("fdc", wd1772_t, read) + AM_RANGE(0xc0, 0xc3) AM_DEVWRITE("fdc", wd1772_device, write) + AM_RANGE(0xc4, 0xc7) AM_DEVREAD("fdc", wd1772_device, read) ADDRESS_MAP_END static const z80_daisy_config daisy_chain_intf[] = @@ -157,7 +157,7 @@ DRIVER_INIT_MEMBER( ampro_state, ampro ) membank("bankw0")->configure_entry(0, &main[0x0000]); } -static MACHINE_CONFIG_START( ampro, ampro_state ) +static MACHINE_CONFIG_START( ampro ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80, XTAL_16MHz / 4) MCFG_CPU_PROGRAM_MAP(ampro_mem) @@ -202,5 +202,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS COMP( 1980, ampro, 0, 0, ampro, ampro, ampro_state, ampro, "Ampro", "Little Z80 Board", 0 ) diff --git a/src/mame/drivers/amspdwy.cpp b/src/mame/drivers/amspdwy.cpp index 2cd9a43f0f3..c7fafc48090 100644 --- a/src/mame/drivers/amspdwy.cpp +++ b/src/mame/drivers/amspdwy.cpp @@ -250,7 +250,7 @@ void amspdwy_state::machine_reset() m_wheel_return[1] = 0; } -static MACHINE_CONFIG_START( amspdwy, amspdwy_state ) +static MACHINE_CONFIG_START( amspdwy ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 3000000) @@ -383,5 +383,5 @@ ROM_END /* (C) 1987 ETI 8402 MAGNOLIA ST. #C SANTEE, CA 92071 */ -GAME( 1987, amspdwy, 0, amspdwy, amspdwy, driver_device, 0, ROT0, "Enerdyne Technologies Inc.", "American Speedway (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, amspdwya, amspdwy, amspdwy, amspdwya, driver_device, 0, ROT0, "Enerdyne Technologies Inc.", "American Speedway (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, amspdwy, 0, amspdwy, amspdwy, amspdwy_state, 0, ROT0, "Enerdyne Technologies Inc.", "American Speedway (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, amspdwya, amspdwy, amspdwy, amspdwya, amspdwy_state, 0, ROT0, "Enerdyne Technologies Inc.", "American Speedway (set 2)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/amstr_pc.cpp b/src/mame/drivers/amstr_pc.cpp index b0fc7a62038..aa773ecfab1 100644 --- a/src/mame/drivers/amstr_pc.cpp +++ b/src/mame/drivers/amstr_pc.cpp @@ -34,6 +34,7 @@ More information can be found at http://www.seasip.info/AmstradXT/1640tech/index #include "machine/genpc.h" #include "bus/isa/isa.h" #include "bus/isa/isa_cards.h" +#include "bus/pc_joy/pc_joy.h" #include "machine/pckeybrd.h" #include "machine/pc_lpt.h" @@ -47,8 +48,10 @@ public: m_mb(*this, "mb"), m_keyboard(*this, "pc_keyboard"), m_lpt1(*this, "lpt_1"), - m_lpt2(*this, "lpt_2") - { m_mouse.x =0; m_mouse.y=0;} + m_lpt2(*this, "lpt_2"), + m_mouse{ 0, 0 } + { + } required_device m_maincpu; required_device m_mb; @@ -466,7 +469,7 @@ static MACHINE_CONFIG_FRAGMENT( cfg_com ) MCFG_SLOT_DEFAULT_OPTION(nullptr) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( pc200, amstrad_pc_state ) +static MACHINE_CONFIG_START( pc200 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8086, 8000000) MCFG_CPU_PROGRAM_MAP(ppc640_map) @@ -629,10 +632,10 @@ ROM_END ***************************************************************************/ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ -COMP( 1987, ppc512, ibm5150, 0, ppc512, pc200, driver_device, 0, "Amstrad plc", "Amstrad PPC512", MACHINE_NOT_WORKING) -COMP( 1987, ppc640, ibm5150, 0, ppc640, pc200, driver_device, 0, "Amstrad plc", "Amstrad PPC640", MACHINE_NOT_WORKING) -COMP( 1988, pc20, ibm5150, 0, pc200, pc200, driver_device, 0, "Amstrad plc", "Amstrad PC20" , MACHINE_NOT_WORKING) -COMP( 1988, pc200, ibm5150, 0, pc200, pc200, driver_device, 0, "Sinclair Research Ltd", "PC200 Professional Series", MACHINE_NOT_WORKING) -COMP( 1988, pc2086, ibm5150, 0, pc2086, pc200, driver_device, 0, "Amstrad plc", "Amstrad PC2086", MACHINE_NOT_WORKING ) -COMP( 1990, pc3086, ibm5150, 0, pc2086, pc200, driver_device, 0, "Amstrad plc", "Amstrad PC3086", MACHINE_NOT_WORKING ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME */ +COMP( 1987, ppc512, ibm5150, 0, ppc512, pc200, amstrad_pc_state, 0, "Amstrad plc", "Amstrad PPC512", MACHINE_NOT_WORKING) +COMP( 1987, ppc640, ibm5150, 0, ppc640, pc200, amstrad_pc_state, 0, "Amstrad plc", "Amstrad PPC640", MACHINE_NOT_WORKING) +COMP( 1988, pc20, ibm5150, 0, pc200, pc200, amstrad_pc_state, 0, "Amstrad plc", "Amstrad PC20" , MACHINE_NOT_WORKING) +COMP( 1988, pc200, ibm5150, 0, pc200, pc200, amstrad_pc_state, 0, "Sinclair Research Ltd", "PC200 Professional Series", MACHINE_NOT_WORKING) +COMP( 1988, pc2086, ibm5150, 0, pc2086, pc200, amstrad_pc_state, 0, "Amstrad plc", "Amstrad PC2086", MACHINE_NOT_WORKING ) +COMP( 1990, pc3086, ibm5150, 0, pc2086, pc200, amstrad_pc_state, 0, "Amstrad plc", "Amstrad PC3086", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/amstrad.cpp b/src/mame/drivers/amstrad.cpp index a608bfa6118..ecf6684364e 100644 --- a/src/mame/drivers/amstrad.cpp +++ b/src/mame/drivers/amstrad.cpp @@ -885,7 +885,7 @@ SLOT_INTERFACE_START(amstrad_centronics_devices) SLOT_INTERFACE("digiblst", CENTRONICS_DIGIBLASTER) SLOT_INTERFACE_END -static MACHINE_CONFIG_START( amstrad_base, amstrad_state ) +static MACHINE_CONFIG_START( amstrad_base ) /* Machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_16MHz / 4) MCFG_CPU_PROGRAM_MAP(amstrad_mem) @@ -1010,7 +1010,7 @@ static MACHINE_CONFIG_DERIVED( kccomp, cpc6128 ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( cpcplus, amstrad_state ) +static MACHINE_CONFIG_START( cpcplus ) /* Machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_40MHz / 10) MCFG_CPU_PROGRAM_MAP(amstrad_mem) @@ -1089,7 +1089,7 @@ static MACHINE_CONFIG_START( cpcplus, amstrad_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( gx4000, amstrad_state ) +static MACHINE_CONFIG_START( gx4000 ) /* Machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_40MHz / 10) MCFG_CPU_PROGRAM_MAP(amstrad_mem) @@ -1286,14 +1286,14 @@ ROM_END * *************************************/ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1984, cpc464, 0, 0, cpc464, cpc464, driver_device, 0, "Amstrad plc", "Amstrad CPC464", 0 ) -COMP( 1985, cpc664, cpc464, 0, cpc664, cpc664, driver_device, 0, "Amstrad plc", "Amstrad CPC664", 0 ) -COMP( 1985, cpc6128, cpc464, 0, cpc6128, cpc6128, driver_device, 0, "Amstrad plc", "Amstrad CPC6128", 0 ) -COMP( 1985, cpc6128f, cpc464, 0, cpc6128, cpc6128f, driver_device, 0, "Amstrad plc", "Amstrad CPC6128 (France, AZERTY Keyboard)", 0 ) -COMP( 1985, cpc6128s, cpc464, 0, cpc6128, cpc6128s, driver_device, 0, "Amstrad plc", "Amstrad CPC6128 (Sweden/Finland)", 0 ) -COMP( 1990, cpc464p, 0, 0, cpcplus, plus, driver_device, 0, "Amstrad plc", "Amstrad CPC464+", 0 ) -COMP( 1990, cpc6128p, 0, 0, cpcplus, plus, driver_device, 0, "Amstrad plc", "Amstrad CPC6128+", 0 ) -CONS( 1990, gx4000, 0, 0, gx4000, gx4000, driver_device, 0, "Amstrad plc", "Amstrad GX4000", 0 ) -COMP( 1989, kccomp, cpc464, 0, kccomp, kccomp, driver_device, 0, "VEB Mikroelektronik", "KC Compact", 0 ) -COMP( 1993, al520ex, cpc464, 0, aleste, aleste, driver_device, 0, "Patisonic", "Aleste 520EX", MACHINE_IMPERFECT_SOUND ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +COMP( 1984, cpc464, 0, 0, cpc464, cpc464, amstrad_state, 0, "Amstrad plc", "Amstrad CPC464", 0 ) +COMP( 1985, cpc664, cpc464, 0, cpc664, cpc664, amstrad_state, 0, "Amstrad plc", "Amstrad CPC664", 0 ) +COMP( 1985, cpc6128, cpc464, 0, cpc6128, cpc6128, amstrad_state, 0, "Amstrad plc", "Amstrad CPC6128", 0 ) +COMP( 1985, cpc6128f, cpc464, 0, cpc6128, cpc6128f, amstrad_state, 0, "Amstrad plc", "Amstrad CPC6128 (France, AZERTY Keyboard)", 0 ) +COMP( 1985, cpc6128s, cpc464, 0, cpc6128, cpc6128s, amstrad_state, 0, "Amstrad plc", "Amstrad CPC6128 (Sweden/Finland)", 0 ) +COMP( 1990, cpc464p, 0, 0, cpcplus, plus, amstrad_state, 0, "Amstrad plc", "Amstrad CPC464+", 0 ) +COMP( 1990, cpc6128p, 0, 0, cpcplus, plus, amstrad_state, 0, "Amstrad plc", "Amstrad CPC6128+", 0 ) +CONS( 1990, gx4000, 0, 0, gx4000, gx4000, amstrad_state, 0, "Amstrad plc", "Amstrad GX4000", 0 ) +COMP( 1989, kccomp, cpc464, 0, kccomp, kccomp, amstrad_state, 0, "VEB Mikroelektronik", "KC Compact", 0 ) +COMP( 1993, al520ex, cpc464, 0, aleste, aleste, amstrad_state, 0, "Patisonic", "Aleste 520EX", MACHINE_IMPERFECT_SOUND ) diff --git a/src/mame/drivers/amusco.cpp b/src/mame/drivers/amusco.cpp index ac67cb8cb7b..d3e9bb2ecdd 100644 --- a/src/mame/drivers/amusco.cpp +++ b/src/mame/drivers/amusco.cpp @@ -469,7 +469,7 @@ MC6845_UPDATE_ROW(amusco_state::update_row) * Machine Drivers * *************************/ -static MACHINE_CONFIG_START( amusco, amusco_state ) +static MACHINE_CONFIG_START( amusco ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8088, CPU_CLOCK) // 5 MHz ? @@ -586,6 +586,6 @@ ROM_END * Game Drivers * *************************/ -/* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS LAYOUT */ -GAMEL( 1987, amusco, 0, amusco, amusco, driver_device, 0, ROT0, "Amusco", "American Music Poker (V1.4)", MACHINE_IMPERFECT_COLORS | MACHINE_NODEVICE_PRINTER, layout_amusco ) // palette totally wrong -GAMEL( 1988, draw88pkr, 0, draw88pkr,draw88pkr,driver_device, 0, ROT0, "BTE, Inc.", "Draw 88 Poker (V2.0)", MACHINE_IMPERFECT_COLORS | MACHINE_NODEVICE_PRINTER, layout_amusco ) // palette totally wrong +/* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS LAYOUT */ +GAMEL( 1987, amusco, 0, amusco, amusco, amusco_state, 0, ROT0, "Amusco", "American Music Poker (V1.4)", MACHINE_IMPERFECT_COLORS | MACHINE_NODEVICE_PRINTER, layout_amusco ) // palette totally wrong +GAMEL( 1988, draw88pkr, 0, draw88pkr,draw88pkr, amusco_state, 0, ROT0, "BTE, Inc.", "Draw 88 Poker (V2.0)", MACHINE_IMPERFECT_COLORS | MACHINE_NODEVICE_PRINTER, layout_amusco ) // palette totally wrong diff --git a/src/mame/drivers/amust.cpp b/src/mame/drivers/amust.cpp index ddfabb1315d..cbb745fecf9 100644 --- a/src/mame/drivers/amust.cpp +++ b/src/mame/drivers/amust.cpp @@ -128,7 +128,7 @@ public: DECLARE_READ8_MEMBER(port0a_r); DECLARE_WRITE8_MEMBER(port0a_w); DECLARE_WRITE8_MEMBER(port0d_w); - DECLARE_WRITE8_MEMBER(kbd_put); + void kbd_put(u8 data); INTERRUPT_GEN_MEMBER(irq_vs); MC6845_UPDATE_ROW(crtc_update_row); @@ -316,7 +316,7 @@ WRITE8_MEMBER( amust_state::port0d_w ) m_p_videoram[video_address] = data; } -WRITE8_MEMBER( amust_state::kbd_put ) +void amust_state::kbd_put(u8 data) { m_term_data = data; } @@ -391,7 +391,7 @@ DRIVER_INIT_MEMBER( amust_state, amust ) membank("bankw0")->configure_entry(0, &main[0xf800]); } -static MACHINE_CONFIG_START( amust, amust_state ) +static MACHINE_CONFIG_START( amust ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80, XTAL_16MHz / 4) MCFG_CPU_PROGRAM_MAP(amust_mem) @@ -421,7 +421,7 @@ static MACHINE_CONFIG_START( amust, amust_state ) MCFG_MC6845_UPDATE_ROW_CB(amust_state, crtc_update_row) MCFG_DEVICE_ADD("keybd", GENERIC_KEYBOARD, 0) - MCFG_GENERIC_KEYBOARD_CB(WRITE8(amust_state, kbd_put)) + MCFG_GENERIC_KEYBOARD_CB(PUT(amust_state, kbd_put)) MCFG_UPD765A_ADD("fdc", false, true) MCFG_FLOPPY_DRIVE_ADD("fdc:0", amust_floppies, "drive0", floppy_image_device::default_floppy_formats) MCFG_FLOPPY_DRIVE_SOUND(true) @@ -476,5 +476,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1983, amust, 0, 0, amust, amust, amust_state, amust, "Amust", "Amust Executive 816", MACHINE_NOT_WORKING ) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 1983, amust, 0, 0, amust, amust, amust_state, amust, "Amust", "Amust Executive 816", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/angelkds.cpp b/src/mame/drivers/angelkds.cpp index 508ee65216f..4088bc2ceb6 100644 --- a/src/mame/drivers/angelkds.cpp +++ b/src/mame/drivers/angelkds.cpp @@ -511,7 +511,7 @@ void angelkds_state::machine_reset() m_bgtopbank = 0; } -static MACHINE_CONFIG_START( angelkds, angelkds_state ) +static MACHINE_CONFIG_START( angelkds ) MCFG_CPU_ADD("maincpu", Z80, XTAL_6MHz) MCFG_CPU_PROGRAM_MAP(main_map) diff --git a/src/mame/drivers/anzterm.cpp b/src/mame/drivers/anzterm.cpp index a35bb37c52d..cfdc746b3f0 100644 --- a/src/mame/drivers/anzterm.cpp +++ b/src/mame/drivers/anzterm.cpp @@ -408,7 +408,7 @@ ADDRESS_MAP_START( anzterm, AS_PROGRAM, 8, anzterm_state ) ADDRESS_MAP_END -MACHINE_CONFIG_START( anzterm, anzterm_state ) +MACHINE_CONFIG_START( anzterm ) MCFG_CPU_ADD("maincpu", M6809, 15974400/4) MCFG_CPU_PROGRAM_MAP(anzterm) @@ -478,4 +478,4 @@ ROM_START( anzterm ) ROM_LOAD( "ebb-fea-v96-9-23-83-f43a.u11", 0x4000, 0x1000, CRC(0e572470) SHA1(966e5eeb0114589a7cab3c29a1db48cdd8634be5) ) ROM_END -COMP( 1986?, anzterm, 0, 0, anzterm, anzterm, driver_device, 0, "Burroughs", "EF315-I220 Teller Terminal (ANZ)", MACHINE_IS_SKELETON ) // year comes from sticker on bottom of case, it's more likely a 1983 revision +COMP( 1986?, anzterm, 0, 0, anzterm, anzterm, anzterm_state, 0, "Burroughs", "EF315-I220 Teller Terminal (ANZ)", MACHINE_IS_SKELETON ) // year comes from sticker on bottom of case, it's more likely a 1983 revision diff --git a/src/mame/drivers/apc.cpp b/src/mame/drivers/apc.cpp index 6d5a6014e8e..91f27c3d382 100644 --- a/src/mame/drivers/apc.cpp +++ b/src/mame/drivers/apc.cpp @@ -909,7 +909,7 @@ static SLOT_INTERFACE_START( apc_floppies ) SLOT_INTERFACE( "8", FLOPPY_8_DSDD ) SLOT_INTERFACE_END -static MACHINE_CONFIG_START( apc, apc_state ) +static MACHINE_CONFIG_START( apc ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",I8086,MAIN_CLOCK) diff --git a/src/mame/drivers/apexc.cpp b/src/mame/drivers/apexc.cpp index fc515fa2fbc..fb4c5f6ca9e 100644 --- a/src/mame/drivers/apexc.cpp +++ b/src/mame/drivers/apexc.cpp @@ -96,11 +96,11 @@ private: int m_writable; }; -const device_type APEXC_CYLINDER = device_creator; +DEFINE_DEVICE_TYPE(APEXC_CYLINDER, apexc_cylinder_image_device, "apexc_cylinder_image", "APEXC Cylinder") apexc_cylinder_image_device::apexc_cylinder_image_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, APEXC_CYLINDER, "APEXC Cylinder", tag, owner, clock, "apexc_cylinder_image", __FILE__), - device_image_interface(mconfig, *this) + : device_t(mconfig, APEXC_CYLINDER, tag, owner, clock) + , device_image_interface(mconfig, *this) { } @@ -217,11 +217,11 @@ protected: virtual void device_start() override { } }; -const device_type APEXC_TAPE_PUNCHER = device_creator; +DEFINE_DEVICE_TYPE(APEXC_TAPE_PUNCHER, apexc_tape_puncher_image_device, "apexc_tape_puncher_image", "APEXC Tape Puncher") apexc_tape_puncher_image_device::apexc_tape_puncher_image_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, APEXC_TAPE_PUNCHER, "APEXC Tape Puncher", tag, owner, clock, "apexc_tape_puncher_image", __FILE__), - device_image_interface(mconfig, *this) + : device_t(mconfig, APEXC_TAPE_PUNCHER, tag, owner, clock) + , device_image_interface(mconfig, *this) { } @@ -248,11 +248,11 @@ protected: virtual void device_start() override { } }; -const device_type APEXC_TAPE_READER = device_creator; +DEFINE_DEVICE_TYPE(APEXC_TAPE_READER, apexc_tape_reader_image_device, "apexc_tape_reader_image", "APEXC Tape Reader") apexc_tape_reader_image_device::apexc_tape_reader_image_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, APEXC_TAPE_READER, "APEXC Tape Reader", tag, owner, clock, "apexc_tape_reader_image", __FILE__), - device_image_interface(mconfig, *this) + : device_t(mconfig, APEXC_TAPE_READER, tag, owner, clock) + , device_image_interface(mconfig, *this) { } @@ -858,7 +858,7 @@ static ADDRESS_MAP_START(apexc_io_map, AS_IO, 8, apexc_state ) ADDRESS_MAP_END -static MACHINE_CONFIG_START( apexc, apexc_state ) +static MACHINE_CONFIG_START( apexc ) /* basic machine hardware */ /* APEXC CPU @ 2.0 kHz (memory word clock frequency) */ @@ -897,6 +897,6 @@ ROM_START(apexc) /* space filled with our font */ ROM_END -// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME */ //COMP( 1951, apexc53, 0, 0, apexc53, apexc, apexc_state, apexc, "Andrew Donald Booth", "All Purpose Electronic X-ray Computer (as described in 1953)" , MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW) COMP( 1955, apexc, 0, 0, apexc, apexc, apexc_state, apexc, "Andrew Donald Booth", "All Purpose Electronic X-ray Computer (as described in 1957)" , MACHINE_NO_SOUND_HW) diff --git a/src/mame/drivers/apf.cpp b/src/mame/drivers/apf.cpp index 4560eb43d4b..0a9beac6e05 100644 --- a/src/mame/drivers/apf.cpp +++ b/src/mame/drivers/apf.cpp @@ -138,7 +138,7 @@ private: optional_device m_pia1; optional_device m_cass; required_device m_cart; - optional_device m_fdc; + optional_device m_fdc; optional_device m_floppy0; optional_device m_floppy1; required_ioport_array<4> m_joy; @@ -324,7 +324,7 @@ static ADDRESS_MAP_START( apfimag_map, AS_PROGRAM, 8, apf_state ) AM_RANGE(0x6000, 0x6003) AM_MIRROR(0x03fc) AM_DEVREADWRITE("pia1", pia6821_device, read, write) // These need to be confirmed, disk does not work AM_RANGE(0x6400, 0x64ff) AM_READWRITE(serial_r, serial_w) - AM_RANGE(0x6500, 0x6503) AM_DEVREADWRITE("fdc", fd1771_t, read, write) + AM_RANGE(0x6500, 0x6503) AM_DEVREADWRITE("fdc", fd1771_device, read, write) AM_RANGE(0x6600, 0x6600) AM_WRITE(apf_dischw_w) AM_RANGE(0xa000, 0xbfff) AM_RAM // standard AM_RANGE(0xc000, 0xdfff) AM_RAM // expansion @@ -508,7 +508,7 @@ static SLOT_INTERFACE_START(apf_cart) SLOT_INTERFACE_END -static MACHINE_CONFIG_START( apfm1000, apf_state ) +static MACHINE_CONFIG_START( apfm1000 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6800, XTAL_3_579545MHz / 4 ) // divided by 4 in external clock circuit @@ -520,7 +520,7 @@ static MACHINE_CONFIG_START( apfm1000, apf_state ) MCFG_DEVICE_ADD("mc6847", MC6847_NTSC, XTAL_3_579545MHz) MCFG_MC6847_FSYNC_CALLBACK(DEVWRITELINE("pia0", pia6821_device, cb1_w)) MCFG_MC6847_INPUT_CALLBACK(READ8(apf_state, videoram_r)) - MCFG_MC6847_FIXED_MODE(MC6847_MODE_GM2 | MC6847_MODE_GM1) + MCFG_MC6847_FIXED_MODE(mc6847_ntsc_device::MODE_GM2 | mc6847_ntsc_device::MODE_GM1) // INTEXT = GND // other lines not connected @@ -606,6 +606,6 @@ ROM_END ***************************************************************************/ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME */ -COMP( 1979, apfimag, apfm1000, 0, apfimag, apfimag, driver_device, 0, "APF Electronics Inc.", "APF Imagination Machine", 0 ) -CONS( 1978, apfm1000, 0, 0, apfm1000, apfm1000, driver_device, 0, "APF Electronics Inc.", "APF M-1000", 0 ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME */ +COMP( 1979, apfimag, apfm1000, 0, apfimag, apfimag, apf_state, 0, "APF Electronics Inc.", "APF Imagination Machine", 0 ) +CONS( 1978, apfm1000, 0, 0, apfm1000, apfm1000, apf_state, 0, "APF Electronics Inc.", "APF M-1000", 0 ) diff --git a/src/mame/drivers/apogee.cpp b/src/mame/drivers/apogee.cpp index eb402beb804..68ad3be8873 100644 --- a/src/mame/drivers/apogee.cpp +++ b/src/mame/drivers/apogee.cpp @@ -212,7 +212,7 @@ GFXDECODE_END /* Machine driver */ -static MACHINE_CONFIG_START( apogee, apogee_state ) +static MACHINE_CONFIG_START( apogee ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8080, XTAL_16MHz / 9) MCFG_CPU_PROGRAM_MAP(apogee_mem) @@ -282,5 +282,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1989, apogee, radio86,0, apogee, apogee, radio86_state,radio86, "Zavod BRA", "Apogee BK-01", 0) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1989, apogee, radio86, 0, apogee, apogee, apogee_state, radio86, "Zavod BRA", "Apogee BK-01", 0 ) diff --git a/src/mame/drivers/apollo.cpp b/src/mame/drivers/apollo.cpp index 756579c0ea2..8e75ef15ece 100644 --- a/src/mame/drivers/apollo.cpp +++ b/src/mame/drivers/apollo.cpp @@ -1048,7 +1048,7 @@ READ_LINE_MEMBER( apollo_state::apollo_kbd_is_german ) MACHINE DRIVERS ***************************************************************************/ -static MACHINE_CONFIG_START( dn3500, apollo_state ) +static MACHINE_CONFIG_START( dn3500 ) /* basic machine hardware */ MCFG_CPU_ADD(MAINCPU, M68030, 25000000) /* 25 MHz 68030 */ MCFG_CPU_PROGRAM_MAP(dn3500_map) @@ -1074,7 +1074,7 @@ static MACHINE_CONFIG_START( dn3500, apollo_state ) #endif MACHINE_CONFIG_END -static MACHINE_CONFIG_START( dsp3500, apollo_state ) +static MACHINE_CONFIG_START( dsp3500 ) MCFG_CPU_ADD(MAINCPU, M68030, 25000000) /* 25 MHz 68030 */ MCFG_CPU_PROGRAM_MAP(dsp3500_map) MCFG_CPU_IRQ_ACKNOWLEDGE_DRIVER(apollo_state,apollo_irq_acknowledge) @@ -1122,7 +1122,7 @@ static MACHINE_CONFIG_DERIVED( dn3000, dn3500 ) MCFG_RAM_EXTRA_OPTIONS("4M") MACHINE_CONFIG_END -static MACHINE_CONFIG_START( dsp3000, apollo_state ) +static MACHINE_CONFIG_START( dsp3000 ) MCFG_CPU_ADD(MAINCPU, M68020PMMU, 12000000) /* 12 MHz */ MCFG_CPU_IRQ_ACKNOWLEDGE_DRIVER(apollo_state,apollo_irq_acknowledge) MCFG_CPU_PROGRAM_MAP(dsp3000_map) @@ -1168,7 +1168,7 @@ static MACHINE_CONFIG_DERIVED( dn5500, dn3500 ) MCFG_CPU_PROGRAM_MAP(dn5500_map) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( dsp5500, apollo_state ) +static MACHINE_CONFIG_START( dsp5500 ) MCFG_CPU_ADD(MAINCPU, M68040, 25000000) /* 25 MHz */ MCFG_CPU_PROGRAM_MAP(dsp5500_map) MCFG_CPU_IRQ_ACKNOWLEDGE_DRIVER(apollo_state,apollo_irq_acknowledge) @@ -1250,15 +1250,15 @@ ROM_END #define DSP_FLAGS 0 //#define DSP_FLAGS MACHINE_NO_SOUND -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1989, dn3500, 0, 0, dn3500_15i, dn3500, apollo_state, dn3500, "Apollo", "Apollo DN3500", DN_FLAGS ) -COMP( 1989, dsp3500, dn3500, 0, dsp3500, dsp3500, apollo_state,dsp3500,"Apollo", "Apollo DSP3500", DSP_FLAGS ) -COMP( 1989, dn3500_19i, dn3500, 0, dn3500_19i, dn3500, apollo_state, dn3500, "Apollo", "Apollo DN3500 19\" Monochrome", DN_FLAGS ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +COMP( 1989, dn3500, 0, 0, dn3500_15i, dn3500, apollo_state, dn3500, "Apollo", "Apollo DN3500", DN_FLAGS ) +COMP( 1989, dsp3500, dn3500, 0, dsp3500, dsp3500, apollo_state, dsp3500, "Apollo", "Apollo DSP3500", DSP_FLAGS ) +COMP( 1989, dn3500_19i, dn3500, 0, dn3500_19i, dn3500, apollo_state, dn3500, "Apollo", "Apollo DN3500 19\" Monochrome", DN_FLAGS ) -COMP( 1988, dn3000, dn3500, 0, dn3000_15i, dn3500, apollo_state, dn3000, "Apollo", "Apollo DN3000", DN_FLAGS ) -COMP( 1988, dsp3000, dn3500, 0, dsp3000, dsp3500, apollo_state,dsp3000,"Apollo", "Apollo DSP3000", DSP_FLAGS ) -COMP( 1988, dn3000_19i, dn3500, 0, dn3000_19i, dn3500, apollo_state, dn3000, "Apollo", "Apollo DN3000 19\" Monochrome", DN_FLAGS ) +COMP( 1988, dn3000, dn3500, 0, dn3000_15i, dn3500, apollo_state, dn3000, "Apollo", "Apollo DN3000", DN_FLAGS ) +COMP( 1988, dsp3000, dn3500, 0, dsp3000, dsp3500, apollo_state, dsp3000, "Apollo", "Apollo DSP3000", DSP_FLAGS ) +COMP( 1988, dn3000_19i, dn3500, 0, dn3000_19i, dn3500, apollo_state, dn3000, "Apollo", "Apollo DN3000 19\" Monochrome", DN_FLAGS ) -COMP( 1991, dn5500, dn3500, 0, dn5500_15i, dn3500, apollo_state, dn5500, "Apollo", "Apollo DN5500", MACHINE_NOT_WORKING ) -COMP( 1991, dsp5500, dn3500, 0, dsp5500, dsp3500, apollo_state,dsp5500,"Apollo", "Apollo DSP5500", MACHINE_NOT_WORKING ) -COMP( 1991, dn5500_19i, dn3500, 0, dn5500_19i, dn3500, apollo_state, dn5500, "Apollo", "Apollo DN5500 19\" Monochrome", MACHINE_NOT_WORKING ) +COMP( 1991, dn5500, dn3500, 0, dn5500_15i, dn3500, apollo_state, dn5500, "Apollo", "Apollo DN5500", MACHINE_NOT_WORKING ) +COMP( 1991, dsp5500, dn3500, 0, dsp5500, dsp3500, apollo_state, dsp5500, "Apollo", "Apollo DSP5500", MACHINE_NOT_WORKING ) +COMP( 1991, dn5500_19i, dn3500, 0, dn5500_19i, dn3500, apollo_state, dn5500, "Apollo", "Apollo DN5500 19\" Monochrome", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/apple1.cpp b/src/mame/drivers/apple1.cpp index b343274879f..18c8dc81fe4 100644 --- a/src/mame/drivers/apple1.cpp +++ b/src/mame/drivers/apple1.cpp @@ -585,7 +585,7 @@ static SLOT_INTERFACE_START(apple1_cards) SLOT_INTERFACE("cffa", A1BUS_CFFA) SLOT_INTERFACE_END -static MACHINE_CONFIG_START( apple1, apple1_state ) +static MACHINE_CONFIG_START( apple1 ) MCFG_CPU_ADD(A1_CPU_TAG, M6502, 960000) // effective CPU speed MCFG_CPU_PROGRAM_MAP(apple1_map) @@ -623,5 +623,5 @@ ROM_START(apple1) ROM_LOAD("s2513.d2", 0x0000, 0x0200, CRC(a7e567fc) SHA1(b18aae0a2d4f92f5a7e22640719bbc4652f3f4ee)) // apple1.vid ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME */ -COMP( 1976, apple1, 0, 0, apple1, apple1, driver_device, 0, "Apple Computer", "Apple I", MACHINE_NO_SOUND_HW | MACHINE_SUPPORTS_SAVE ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME */ +COMP( 1976, apple1, 0, 0, apple1, apple1, apple1_state, 0, "Apple Computer", "Apple I", MACHINE_NO_SOUND_HW | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/apple2.cpp b/src/mame/drivers/apple2.cpp index 4fa86e261b7..416e82e68dd 100644 --- a/src/mame/drivers/apple2.cpp +++ b/src/mame/drivers/apple2.cpp @@ -1316,7 +1316,7 @@ static SLOT_INTERFACE_START(apple2_cards) // SLOT_INTERFACE("magicmusician", A2BUS_MAGICMUSICIAN) /* Magic Musician Card */ SLOT_INTERFACE_END -static MACHINE_CONFIG_START( apple2_common, napple2_state ) +static MACHINE_CONFIG_START( apple2_common ) /* basic machine hardware */ MCFG_CPU_ADD(A2_CPU_TAG, M6502, 1021800) /* close to actual CPU frequency of 1.020484 MHz */ MCFG_CPU_PROGRAM_MAP(apple2_map) @@ -1653,22 +1653,22 @@ ROM_START(laba2p) /* II Plus clone with on-board Disk II controller and Videx-co ROM_END #endif -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ -COMP( 1977, apple2, 0, 0, apple2, apple2, driver_device, 0, "Apple Computer", "Apple ][", MACHINE_SUPPORTS_SAVE ) -COMP( 1979, apple2p, apple2, 0, apple2p, apple2p, driver_device, 0, "Apple Computer", "Apple ][+", MACHINE_SUPPORTS_SAVE ) -COMP( 1980, apple2jp, apple2, 0, apple2jp, apple2p, driver_device, 0, "Apple Computer", "Apple ][ J-Plus", MACHINE_SUPPORTS_SAVE ) -COMP( 198?, elppa, apple2, 0, apple2p, apple2p, driver_device, 0, "Victor do Brasil", "Elppa II+", MACHINE_SUPPORTS_SAVE ) -COMP( 1982, microeng, apple2, 0, apple2p, apple2p, driver_device, 0, "Spectrum Eletronica (SCOPUS)", "Micro Engenho", MACHINE_SUPPORTS_SAVE ) -COMP( 1982, maxxi, apple2, 0, apple2p, apple2p, driver_device, 0, "Polymax", "Maxxi", MACHINE_SUPPORTS_SAVE ) -COMP( 1982, prav82, apple2, 0, apple2p, apple2p, driver_device, 0, "Pravetz", "Pravetz 82", MACHINE_SUPPORTS_SAVE ) -COMP( 1982, ace100, apple2, 0, apple2, apple2p, driver_device, 0, "Franklin Computer", "Franklin Ace 100", MACHINE_SUPPORTS_SAVE ) -COMP( 1982, uniap2en, apple2, 0, apple2p, apple2p, driver_device, 0, "Unitron Eletronica", "Unitron AP II (in English)", MACHINE_SUPPORTS_SAVE ) -COMP( 1982, uniap2pt, apple2, 0, apple2p, apple2p, driver_device, 0, "Unitron Eletronica", "Unitron AP II (in Brazilian Portuguese)", MACHINE_SUPPORTS_SAVE ) -COMP( 1984, uniap2ti, apple2, 0, apple2p, apple2p, driver_device, 0, "Unitron Eletronica", "Unitron AP II+ (Teclado Inteligente)", MACHINE_SUPPORTS_SAVE ) -COMP( 1982, craft2p, apple2, 0, apple2p, apple2p, driver_device, 0, "Craft", "Craft II+", MACHINE_SUPPORTS_SAVE ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME +COMP( 1977, apple2, 0, 0, apple2, apple2, napple2_state, 0, "Apple Computer", "Apple ][", MACHINE_SUPPORTS_SAVE ) +COMP( 1979, apple2p, apple2, 0, apple2p, apple2p, napple2_state, 0, "Apple Computer", "Apple ][+", MACHINE_SUPPORTS_SAVE ) +COMP( 1980, apple2jp, apple2, 0, apple2jp, apple2p, napple2_state, 0, "Apple Computer", "Apple ][ J-Plus", MACHINE_SUPPORTS_SAVE ) +COMP( 198?, elppa, apple2, 0, apple2p, apple2p, napple2_state, 0, "Victor do Brasil", "Elppa II+", MACHINE_SUPPORTS_SAVE ) +COMP( 1982, microeng, apple2, 0, apple2p, apple2p, napple2_state, 0, "Spectrum Eletronica (SCOPUS)", "Micro Engenho", MACHINE_SUPPORTS_SAVE ) +COMP( 1982, maxxi, apple2, 0, apple2p, apple2p, napple2_state, 0, "Polymax", "Maxxi", MACHINE_SUPPORTS_SAVE ) +COMP( 1982, prav82, apple2, 0, apple2p, apple2p, napple2_state, 0, "Pravetz", "Pravetz 82", MACHINE_SUPPORTS_SAVE ) +COMP( 1982, ace100, apple2, 0, apple2, apple2p, napple2_state, 0, "Franklin Computer", "Franklin Ace 100", MACHINE_SUPPORTS_SAVE ) +COMP( 1982, uniap2en, apple2, 0, apple2p, apple2p, napple2_state, 0, "Unitron Eletronica", "Unitron AP II (in English)", MACHINE_SUPPORTS_SAVE ) +COMP( 1982, uniap2pt, apple2, 0, apple2p, apple2p, napple2_state, 0, "Unitron Eletronica", "Unitron AP II (in Brazilian Portuguese)", MACHINE_SUPPORTS_SAVE ) +COMP( 1984, uniap2ti, apple2, 0, apple2p, apple2p, napple2_state, 0, "Unitron Eletronica", "Unitron AP II+ (Teclado Inteligente)", MACHINE_SUPPORTS_SAVE ) +COMP( 1982, craft2p, apple2, 0, apple2p, apple2p, napple2_state, 0, "Craft", "Craft II+", MACHINE_SUPPORTS_SAVE ) // reverse font direction -\/ -COMP( 1984, ivelultr, apple2, 0, apple2p, apple2p, driver_device, 0, "Ivasim", "Ivel Ultra", MACHINE_SUPPORTS_SAVE ) -COMP( 1985, prav8m, apple2, 0, apple2p, apple2p, driver_device, 0, "Pravetz", "Pravetz 8M", MACHINE_SUPPORTS_SAVE ) -COMP( 1985, space84, apple2, 0, space84, apple2p, driver_device, 0, "ComputerTechnik/IBS", "Space 84", MACHINE_NOT_WORKING ) -COMP( 1985, am64, apple2, 0, space84, apple2p, driver_device, 0, "ASEM", "AM 64", MACHINE_SUPPORTS_SAVE ) -//COMP( 19??, laba2p, apple2, 0, laba2p, apple2p, driver_device, 0, "", "Lab equipment Apple II Plus clone", MACHINE_SUPPORTS_SAVE ) +COMP( 1984, ivelultr, apple2, 0, apple2p, apple2p, napple2_state, 0, "Ivasim", "Ivel Ultra", MACHINE_SUPPORTS_SAVE ) +COMP( 1985, prav8m, apple2, 0, apple2p, apple2p, napple2_state, 0, "Pravetz", "Pravetz 8M", MACHINE_SUPPORTS_SAVE ) +COMP( 1985, space84, apple2, 0, space84, apple2p, napple2_state, 0, "ComputerTechnik/IBS", "Space 84", MACHINE_NOT_WORKING ) +COMP( 1985, am64, apple2, 0, space84, apple2p, napple2_state, 0, "ASEM", "AM 64", MACHINE_SUPPORTS_SAVE ) +//COMP( 19??, laba2p, apple2, 0, laba2p, apple2p, napple2_state, 0, "", "Lab equipment Apple II Plus clone", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/apple2e.cpp b/src/mame/drivers/apple2e.cpp index abbcfcb5a13..c1e415969bf 100644 --- a/src/mame/drivers/apple2e.cpp +++ b/src/mame/drivers/apple2e.cpp @@ -3412,7 +3412,7 @@ static SLOT_INTERFACE_START(apple2eaux_cards) SLOT_INTERFACE("rw3", A2EAUX_RAMWORKS3) /* Applied Engineering RamWorks III */ SLOT_INTERFACE_END -static MACHINE_CONFIG_START( apple2e, apple2e_state ) +static MACHINE_CONFIG_START( apple2e ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, 1021800) /* close to actual CPU frequency of 1.020484 MHz */ MCFG_CPU_PROGRAM_MAP(apple2e_map) @@ -4000,23 +4000,23 @@ ROM_START(apple2cp) ROM_LOAD( "341-0132-d.e12", 0x000, 0x800, CRC(c506efb9) SHA1(8e14e85c645187504ec9d162b3ea614a0c421d32) ) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ -COMP( 1983, apple2e, 0, apple2, apple2e, apple2e, driver_device, 0, "Apple Computer", "Apple //e", MACHINE_SUPPORTS_SAVE ) -COMP( 1983, apple2euk,apple2e, 0, apple2e, apple2euk,driver_device, 0, "Apple Computer", "Apple //e (UK)", MACHINE_SUPPORTS_SAVE ) -COMP( 1983, apple2ees,apple2e, 0, apple2e, apple2ees,driver_device, 0, "Apple Computer", "Apple //e (Spain)", MACHINE_SUPPORTS_SAVE ) -COMP( 1983, mprof3, apple2e, 0, mprof3, apple2e, driver_device, 0, "Multitech", "Microprofessor III", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) -COMP( 1985, apple2ee, apple2e, 0, apple2ee, apple2e, driver_device, 0, "Apple Computer", "Apple //e (enhanced)", MACHINE_SUPPORTS_SAVE ) -COMP( 1985, apple2eeuk,apple2e, 0, apple2ee, apple2euk, driver_device,0, "Apple Computer", "Apple //e (enhanced, UK)", MACHINE_SUPPORTS_SAVE ) -COMP( 1985, apple2eefr,apple2e, 0, apple2ee, apple2efr, driver_device,0, "Apple Computer", "Apple //e (enhanced, France)", MACHINE_SUPPORTS_SAVE ) -COMP( 1987, apple2ep, apple2e, 0, apple2ep, apple2ep, driver_device, 0, "Apple Computer", "Apple //e (Platinum)", MACHINE_SUPPORTS_SAVE ) -COMP( 1984, apple2c, 0, apple2, apple2c, apple2c, driver_device, 0, "Apple Computer", "Apple //c" , MACHINE_SUPPORTS_SAVE ) -COMP( 1985?,spectred, apple2e, 0, spectred, apple2e, driver_device, 0, "Scopus/Spectrum", "Spectrum ED" , MACHINE_SUPPORTS_SAVE ) -COMP( 1986, tk3000, apple2c, 0, tk3000, apple2e, driver_device, 0, "Microdigital", "TK3000//e" , MACHINE_SUPPORTS_SAVE ) -COMP( 1989, prav8c, apple2e, 0, apple2e, apple2e, driver_device, 0, "Pravetz", "Pravetz 8C", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) -COMP( 1987, laser128, apple2c, 0, laser128, apple2e, driver_device, 0, "Video Technology", "Laser 128 (version 4.2)", MACHINE_SUPPORTS_SAVE ) -COMP( 1988, las128ex, apple2c, 0, laser128, apple2e, driver_device, 0, "Video Technology", "Laser 128ex (version 4.5)", MACHINE_SUPPORTS_SAVE ) -COMP( 1988, las128e2, apple2c, 0, laser128ex2, apple2e, driver_device, 0, "Video Technology", "Laser 128ex2 (version 6.1)", MACHINE_SUPPORTS_SAVE ) -COMP( 1985, apple2c0, apple2c, 0, apple2c_iwm, apple2c, driver_device, 0, "Apple Computer", "Apple //c (UniDisk 3.5)", MACHINE_SUPPORTS_SAVE ) -COMP( 1986, apple2c3, apple2c, 0, apple2c_mem, apple2c, driver_device, 0, "Apple Computer", "Apple //c (Original Memory Expansion)", MACHINE_SUPPORTS_SAVE ) -COMP( 1986, apple2c4, apple2c, 0, apple2c_mem, apple2c, driver_device, 0, "Apple Computer", "Apple //c (rev 4)", MACHINE_SUPPORTS_SAVE ) -COMP( 1988, apple2cp, apple2c, 0, apple2cp, apple2c, driver_device, 0, "Apple Computer", "Apple //c Plus", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME */ +COMP( 1983, apple2e, 0, apple2, apple2e, apple2e, apple2e_state, 0, "Apple Computer", "Apple //e", MACHINE_SUPPORTS_SAVE ) +COMP( 1983, apple2euk,apple2e, 0, apple2e, apple2euk, apple2e_state, 0, "Apple Computer", "Apple //e (UK)", MACHINE_SUPPORTS_SAVE ) +COMP( 1983, apple2ees,apple2e, 0, apple2e, apple2ees, apple2e_state, 0, "Apple Computer", "Apple //e (Spain)", MACHINE_SUPPORTS_SAVE ) +COMP( 1983, mprof3, apple2e, 0, mprof3, apple2e, apple2e_state, 0, "Multitech", "Microprofessor III", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +COMP( 1985, apple2ee, apple2e, 0, apple2ee, apple2e, apple2e_state, 0, "Apple Computer", "Apple //e (enhanced)", MACHINE_SUPPORTS_SAVE ) +COMP( 1985, apple2eeuk,apple2e, 0, apple2ee, apple2euk, apple2e_state, 0, "Apple Computer", "Apple //e (enhanced, UK)", MACHINE_SUPPORTS_SAVE ) +COMP( 1985, apple2eefr,apple2e, 0, apple2ee, apple2efr, apple2e_state, 0, "Apple Computer", "Apple //e (enhanced, France)", MACHINE_SUPPORTS_SAVE ) +COMP( 1987, apple2ep, apple2e, 0, apple2ep, apple2ep, apple2e_state, 0, "Apple Computer", "Apple //e (Platinum)", MACHINE_SUPPORTS_SAVE ) +COMP( 1984, apple2c, 0, apple2, apple2c, apple2c, apple2e_state, 0, "Apple Computer", "Apple //c" , MACHINE_SUPPORTS_SAVE ) +COMP( 1985?,spectred, apple2e, 0, spectred, apple2e, apple2e_state, 0, "Scopus/Spectrum", "Spectrum ED" , MACHINE_SUPPORTS_SAVE ) +COMP( 1986, tk3000, apple2c, 0, tk3000, apple2e, apple2e_state, 0, "Microdigital", "TK3000//e" , MACHINE_SUPPORTS_SAVE ) +COMP( 1989, prav8c, apple2e, 0, apple2e, apple2e, apple2e_state, 0, "Pravetz", "Pravetz 8C", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +COMP( 1987, laser128, apple2c, 0, laser128, apple2e, apple2e_state, 0, "Video Technology", "Laser 128 (version 4.2)", MACHINE_SUPPORTS_SAVE ) +COMP( 1988, las128ex, apple2c, 0, laser128, apple2e, apple2e_state, 0, "Video Technology", "Laser 128ex (version 4.5)", MACHINE_SUPPORTS_SAVE ) +COMP( 1988, las128e2, apple2c, 0, laser128ex2, apple2e, apple2e_state, 0, "Video Technology", "Laser 128ex2 (version 6.1)", MACHINE_SUPPORTS_SAVE ) +COMP( 1985, apple2c0, apple2c, 0, apple2c_iwm, apple2c, apple2e_state, 0, "Apple Computer", "Apple //c (UniDisk 3.5)", MACHINE_SUPPORTS_SAVE ) +COMP( 1986, apple2c3, apple2c, 0, apple2c_mem, apple2c, apple2e_state, 0, "Apple Computer", "Apple //c (Original Memory Expansion)", MACHINE_SUPPORTS_SAVE ) +COMP( 1986, apple2c4, apple2c, 0, apple2c_mem, apple2c, apple2e_state, 0, "Apple Computer", "Apple //c (rev 4)", MACHINE_SUPPORTS_SAVE ) +COMP( 1988, apple2cp, apple2c, 0, apple2cp, apple2c, apple2e_state, 0, "Apple Computer", "Apple //c Plus", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/apple2gs.cpp b/src/mame/drivers/apple2gs.cpp index 251c754b77c..712c4de94b5 100644 --- a/src/mame/drivers/apple2gs.cpp +++ b/src/mame/drivers/apple2gs.cpp @@ -307,7 +307,7 @@ static SLOT_INTERFACE_START(apple2_cards) SLOT_INTERFACE("hsscsi", A2BUS_HSSCSI) /* Apple II High-Speed SCSI Card */ SLOT_INTERFACE_END -static MACHINE_CONFIG_START( apple2gs, apple2gs_state ) +static MACHINE_CONFIG_START( apple2gs ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", G65816, APPLE2GS_14M/5) MCFG_CPU_PROGRAM_MAP(apple2gs_map) @@ -579,10 +579,10 @@ ROM_START(apple2gsr0p2) // 3/10/1986 Cortland prototype, boots as "Apple //'ing ROM_LOAD( "341-0132-d.e12", 0x000, 0x800, CRC(c506efb9) SHA1(8e14e85c645187504ec9d162b3ea614a0c421d32) ) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ -COMP( 1989, apple2gs, 0, apple2, apple2gs, apple2gs, driver_device, 0, "Apple Computer", "Apple IIgs (ROM03)", MACHINE_SUPPORTS_SAVE ) -COMP( 198?, apple2gsr3p, apple2gs, 0, apple2gs, apple2gs, driver_device, 0, "Apple Computer", "Apple IIgs (ROM03 prototype)", MACHINE_NOT_WORKING ) -COMP( 1987, apple2gsr1, apple2gs, 0, apple2gsr1, apple2gs, driver_device, 0, "Apple Computer", "Apple IIgs (ROM01)", MACHINE_SUPPORTS_SAVE ) -COMP( 1986, apple2gsr0, apple2gs, 0, apple2gsr1, apple2gs, driver_device, 0, "Apple Computer", "Apple IIgs (ROM00)", MACHINE_SUPPORTS_SAVE ) -COMP( 1986, apple2gsr0p, apple2gs, 0, apple2gsr1, apple2gs, driver_device, 0, "Apple Computer", "Apple IIgs (ROM00 prototype 6/19/1986)", MACHINE_SUPPORTS_SAVE ) -COMP( 1986, apple2gsr0p2, apple2gs, 0, apple2gsr1, apple2gs, driver_device, 0, "Apple Computer", "Apple IIgs (ROM00 prototype 3/10/1986)", MACHINE_SUPPORTS_SAVE ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME */ +COMP( 1989, apple2gs, 0, apple2, apple2gs, apple2gs, apple2gs_state, 0, "Apple Computer", "Apple IIgs (ROM03)", MACHINE_SUPPORTS_SAVE ) +COMP( 198?, apple2gsr3p, apple2gs, 0, apple2gs, apple2gs, apple2gs_state, 0, "Apple Computer", "Apple IIgs (ROM03 prototype)", MACHINE_NOT_WORKING ) +COMP( 1987, apple2gsr1, apple2gs, 0, apple2gsr1, apple2gs, apple2gs_state, 0, "Apple Computer", "Apple IIgs (ROM01)", MACHINE_SUPPORTS_SAVE ) +COMP( 1986, apple2gsr0, apple2gs, 0, apple2gsr1, apple2gs, apple2gs_state, 0, "Apple Computer", "Apple IIgs (ROM00)", MACHINE_SUPPORTS_SAVE ) +COMP( 1986, apple2gsr0p, apple2gs, 0, apple2gsr1, apple2gs, apple2gs_state, 0, "Apple Computer", "Apple IIgs (ROM00 prototype 6/19/1986)", MACHINE_SUPPORTS_SAVE ) +COMP( 1986, apple2gsr0p2, apple2gs, 0, apple2gsr1, apple2gs, apple2gs_state, 0, "Apple Computer", "Apple IIgs (ROM00 prototype 3/10/1986)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/apple3.cpp b/src/mame/drivers/apple3.cpp index d78f7c6e80b..0885ce7e47a 100644 --- a/src/mame/drivers/apple3.cpp +++ b/src/mame/drivers/apple3.cpp @@ -52,7 +52,7 @@ FLOPPY_FORMATS_MEMBER( apple3_state::floppy_formats ) FLOPPY_A216S_FORMAT, FLOPPY_RWTS18_FORMAT, FLOPPY_EDD_FORMAT FLOPPY_FORMATS_END -static MACHINE_CONFIG_START( apple3, apple3_state ) +static MACHINE_CONFIG_START( apple3 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, 2000000) /* 2 MHz */ MCFG_M6502_SYNC_CALLBACK(WRITELINE(apple3_state, apple3_sync_w)) @@ -353,5 +353,5 @@ ROM_START(apple3) ROM_LOAD( "apple3.rom", 0x0000, 0x1000, CRC(55e8eec9) SHA1(579ee4cd2b208d62915a0aa482ddc2744ff5e967)) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ -COMP( 1980, apple3, 0, 0, apple3, apple3, apple3_state, apple3, "Apple Computer", "Apple ///", MACHINE_SUPPORTS_SAVE ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME */ +COMP( 1980, apple3, 0, 0, apple3, apple3, apple3_state, apple3, "Apple Computer", "Apple ///", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/applix.cpp b/src/mame/drivers/applix.cpp index 04316b8a2a3..be6df17a063 100644 --- a/src/mame/drivers/applix.cpp +++ b/src/mame/drivers/applix.cpp @@ -166,7 +166,7 @@ private: required_device m_via; required_device m_centronics; required_device m_cent_data_out; - required_device m_fdc; + required_device m_fdc; required_device m_floppy0; required_device m_floppy1; required_device m_ldac; @@ -475,7 +475,7 @@ static ADDRESS_MAP_START( subcpu_io, AS_IO, 8, applix_state ) AM_RANGE(0x10, 0x17) AM_READWRITE(port10_r,port10_w) //IRQ AM_RANGE(0x18, 0x1f) AM_READWRITE(port18_r,port18_w) //data&command AM_RANGE(0x20, 0x27) AM_MIRROR(0x18) AM_READWRITE(port20_r,port20_w) //SCSI NCR5380 - AM_RANGE(0x40, 0x43) AM_MIRROR(0x1c) AM_DEVREADWRITE("fdc", wd1772_t, read, write) //FDC + AM_RANGE(0x40, 0x43) AM_MIRROR(0x1c) AM_DEVREADWRITE("fdc", wd1772_device, read, write) //FDC AM_RANGE(0x60, 0x63) AM_MIRROR(0x1c) AM_READWRITE(port60_r,port60_w) //anotherZ80SCC ADDRESS_MAP_END @@ -832,7 +832,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(applix_state::cass_timer) } } -static MACHINE_CONFIG_START( applix, applix_state ) +static MACHINE_CONFIG_START( applix ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 7500000) MCFG_CPU_PROGRAM_MAP(applix_mem) @@ -940,7 +940,7 @@ DRIVER_INIT_MEMBER(applix_state, applix) /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS COMP( 1986, applix, 0, 0, applix, applix, applix_state, applix, "Applix Pty Ltd", "Applix 1616", 0 ) diff --git a/src/mame/drivers/appoooh.cpp b/src/mame/drivers/appoooh.cpp index 826102a3001..15c24d0ca34 100644 --- a/src/mame/drivers/appoooh.cpp +++ b/src/mame/drivers/appoooh.cpp @@ -416,7 +416,7 @@ INTERRUPT_GEN_MEMBER(appoooh_state::vblank_irq) device.execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE); } -static MACHINE_CONFIG_START( appoooh_common, appoooh_state ) +static MACHINE_CONFIG_START( appoooh_common ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80,18432000/6) /* ??? the main xtal is 18.432 MHz */ @@ -439,7 +439,7 @@ static MACHINE_CONFIG_START( appoooh_common, appoooh_state ) MCFG_SOUND_ADD("msm", MSM5205, 384000) MCFG_MSM5205_VCLK_CB(WRITELINE(appoooh_state, adpcm_int)) /* interrupt function */ - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S64_4B) /* 6KHz */ + MCFG_MSM5205_PRESCALER_SELECTOR(S64_4B) /* 6KHz */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) MACHINE_CONFIG_END @@ -611,6 +611,6 @@ DRIVER_INIT_MEMBER(appoooh_state,robowresb) * *************************************/ -GAME( 1984, appoooh, 0, appoooh, appoooh, driver_device, 0, ROT0, "Sanritsu / Sega", "Appoooh", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, robowres, 0, robowrese,robowres, driver_device, 0, ROT0, "Sanritsu / Sega", "Robo Wres 2001", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, robowresb, robowres, robowres, robowres, appoooh_state, robowresb,ROT0, "bootleg", "Robo Wres 2001 (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, appoooh, 0, appoooh, appoooh, appoooh_state, 0, ROT0, "Sanritsu / Sega", "Appoooh", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, robowres, 0, robowrese,robowres, appoooh_state, 0, ROT0, "Sanritsu / Sega", "Robo Wres 2001", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, robowresb, robowres, robowres, robowres, appoooh_state, robowresb, ROT0, "bootleg", "Robo Wres 2001 (bootleg)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/apricot.cpp b/src/mame/drivers/apricot.cpp index 8926e21e3e8..b995891fad5 100644 --- a/src/mame/drivers/apricot.cpp +++ b/src/mame/drivers/apricot.cpp @@ -102,7 +102,7 @@ private: required_device m_sio; required_device m_rs232; required_device m_centronics; - required_device m_fdc; + required_device m_fdc; required_device m_floppy0; required_device m_floppy1; required_device m_palette; @@ -327,7 +327,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( apricot_io, AS_IO, 16, apricot_state ) AM_RANGE(0x00, 0x03) AM_DEVREADWRITE8("ic31", pic8259_device, read, write, 0x00ff) - AM_RANGE(0x40, 0x47) AM_DEVREADWRITE8("ic68", wd2797_t, read, write, 0x00ff) + AM_RANGE(0x40, 0x47) AM_DEVREADWRITE8("ic68", wd2797_device, read, write, 0x00ff) AM_RANGE(0x48, 0x4f) AM_DEVREADWRITE8("ic17", i8255_device, read, write, 0x00ff) AM_RANGE(0x50, 0x51) AM_MIRROR(0x06) AM_DEVWRITE8("ic7", sn76489_device, write, 0x00ff) AM_RANGE(0x58, 0x5f) AM_DEVREADWRITE8("ic16", pit8253_device, read, write, 0x00ff) @@ -347,7 +347,7 @@ ADDRESS_MAP_END // MACHINE DRIVERS //************************************************************************** -static MACHINE_CONFIG_START( apricot, apricot_state ) +static MACHINE_CONFIG_START( apricot ) // main cpu MCFG_CPU_ADD("ic91", I8086, XTAL_15MHz / 3) MCFG_CPU_PROGRAM_MAP(apricot_mem) @@ -487,5 +487,5 @@ ROM_END //************************************************************************** // YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS -COMP( 1983, apricot, 0, 0, apricot, 0, driver_device, 0, "ACT", "Apricot PC", 0 ) -COMP( 1984, apricotxi, apricot, 0, apricotxi, 0, driver_device, 0, "ACT", "Apricot Xi", 0 ) +COMP( 1983, apricot, 0, 0, apricot, 0, apricot_state, 0, "ACT", "Apricot PC", 0 ) +COMP( 1984, apricotxi, apricot, 0, apricotxi, 0, apricot_state, 0, "ACT", "Apricot Xi", 0 ) diff --git a/src/mame/drivers/apricotf.cpp b/src/mame/drivers/apricotf.cpp index ea689b1ea29..b342ab66c0b 100644 --- a/src/mame/drivers/apricotf.cpp +++ b/src/mame/drivers/apricotf.cpp @@ -83,7 +83,7 @@ public: required_device m_maincpu; required_device m_ctc; required_device m_sio; - required_device m_fdc; + required_device m_fdc; required_device m_floppy0; required_device m_floppy1; required_device m_centronics; @@ -268,7 +268,7 @@ static ADDRESS_MAP_START( act_f1_io, AS_IO, 16, f1_state ) AM_RANGE(0x0010, 0x0017) AM_DEVREADWRITE8(Z80CTC_TAG, z80ctc_device, read, write, 0x00ff) AM_RANGE(0x0020, 0x0027) AM_DEVREADWRITE8(Z80SIO2_TAG, z80sio2_device, ba_cd_r, ba_cd_w, 0x00ff) // AM_RANGE(0x0030, 0x0031) AM_WRITE8(ctc_ack_w, 0x00ff) - AM_RANGE(0x0040, 0x0047) AM_DEVREADWRITE8(WD2797_TAG, wd2797_t, read, write, 0x00ff) + AM_RANGE(0x0040, 0x0047) AM_DEVREADWRITE8(WD2797_TAG, wd2797_device, read, write, 0x00ff) // AM_RANGE(0x01e0, 0x01ff) winchester ADDRESS_MAP_END @@ -329,7 +329,7 @@ SLOT_INTERFACE_END // MACHINE_CONFIG( act_f1 ) //------------------------------------------------- -static MACHINE_CONFIG_START( act_f1, f1_state ) +static MACHINE_CONFIG_START( act_f1 ) /* basic machine hardware */ MCFG_CPU_ADD(I8086_TAG, I8086, XTAL_14MHz/4) MCFG_CPU_PROGRAM_MAP(act_f1_mem) @@ -411,8 +411,8 @@ ROM_END // SYSTEM DRIVERS //************************************************************************** -// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS -COMP( 1984, f1, 0, 0, act_f1, act, driver_device, 0, "ACT", "Apricot F1", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -COMP( 1984, f1e, f1, 0, act_f1, act, driver_device, 0, "ACT", "Apricot F1e", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -COMP( 1984, f2, f1, 0, act_f1, act, driver_device, 0, "ACT", "Apricot F2", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -COMP( 1985, f10, f1, 0, act_f1, act, driver_device, 0, "ACT", "Apricot F10", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1984, f1, 0, 0, act_f1, act, f1_state, 0, "ACT", "Apricot F1", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +COMP( 1984, f1e, f1, 0, act_f1, act, f1_state, 0, "ACT", "Apricot F1e", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +COMP( 1984, f2, f1, 0, act_f1, act, f1_state, 0, "ACT", "Apricot F2", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +COMP( 1985, f10, f1, 0, act_f1, act, f1_state, 0, "ACT", "Apricot F10", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/apricotp.cpp b/src/mame/drivers/apricotp.cpp index e80068a7f2a..07e4fed6dcb 100644 --- a/src/mame/drivers/apricotp.cpp +++ b/src/mame/drivers/apricotp.cpp @@ -112,7 +112,7 @@ public: required_device m_pic; required_device m_pit; required_device m_sio; - required_device m_fdc; + required_device m_fdc; required_device m_crtc; required_device m_ram; required_device m_floppy0; @@ -433,7 +433,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( fp_io, AS_IO, 16, fp_state ) ADDRESS_MAP_UNMAP_HIGH - AM_RANGE(0x000, 0x007) AM_DEVREADWRITE8(WD2797_TAG, wd2797_t, read, write, 0x00ff) + AM_RANGE(0x000, 0x007) AM_DEVREADWRITE8(WD2797_TAG, wd2797_device, read, write, 0x00ff) AM_RANGE(0x008, 0x00f) AM_DEVREADWRITE8(I8253A5_TAG, pit8253_device, read, write, 0x00ff) AM_RANGE(0x018, 0x01f) AM_DEVREADWRITE8(Z80SIO0_TAG, z80sio0_device, ba_cd_r, ba_cd_w, 0x00ff) AM_RANGE(0x020, 0x021) AM_DEVWRITE8("cent_data_out", output_latch_device, write, 0x00ff) @@ -574,7 +574,7 @@ SLOT_INTERFACE_END // MACHINE_CONFIG( fp ) //------------------------------------------------- -static MACHINE_CONFIG_START( fp, fp_state ) +static MACHINE_CONFIG_START( fp ) /* basic machine hardware */ MCFG_CPU_ADD(I8086_TAG, I8086, XTAL_15MHz/3) MCFG_CPU_PROGRAM_MAP(fp_mem) @@ -621,8 +621,8 @@ static MACHINE_CONFIG_START( fp, fp_state ) MCFG_DEVICE_ADD(APRICOT_KEYBOARD_TAG, APRICOT_KEYBOARD, 0) MCFG_DEVICE_ADD(I8237_TAG, AM9517A, 250000) MCFG_I8237_OUT_EOP_CB(DEVWRITELINE(I8259A_TAG, pic8259_device, ir7_w)) - MCFG_I8237_IN_IOR_1_CB(DEVREAD8(WD2797_TAG, wd_fdc_t, data_r)) - MCFG_I8237_OUT_IOW_1_CB(DEVWRITE8(WD2797_TAG, wd_fdc_t, data_w)) + MCFG_I8237_IN_IOR_1_CB(DEVREAD8(WD2797_TAG, wd_fdc_device_base, data_r)) + MCFG_I8237_OUT_IOW_1_CB(DEVWRITE8(WD2797_TAG, wd_fdc_device_base, data_w)) MCFG_PIC8259_ADD(I8259A_TAG, INPUTLINE(I8086_TAG, INPUT_LINE_IRQ0), VCC, NOOP) MCFG_DEVICE_ADD(I8253A5_TAG, PIT8253, 0) @@ -688,5 +688,5 @@ ROM_END // SYSTEM DRIVERS //************************************************************************** -// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS -COMP( 1984, fp, 0, 0, fp, fp, driver_device, 0, "ACT", "Apricot Portable / FP", MACHINE_NOT_WORKING ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1984, fp, 0, 0, fp, fp, fp_state, 0, "ACT", "Apricot Portable / FP", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/aquarium.cpp b/src/mame/drivers/aquarium.cpp index dd76b6167f4..3f56ea94131 100644 --- a/src/mame/drivers/aquarium.cpp +++ b/src/mame/drivers/aquarium.cpp @@ -322,7 +322,7 @@ void aquarium_state::machine_reset() m_aquarium_snd_ack = 0; } -static MACHINE_CONFIG_START( aquarium, aquarium_state ) +static MACHINE_CONFIG_START( aquarium ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_32MHz/2) // clock not verified on pcb @@ -358,7 +358,7 @@ static MACHINE_CONFIG_START( aquarium, aquarium_state ) MCFG_SOUND_ROUTE(0, "lspeaker", 0.45) MCFG_SOUND_ROUTE(1, "rspeaker", 0.45) - MCFG_OKIM6295_ADD("oki", XTAL_1_056MHz, OKIM6295_PIN7_HIGH) // pin 7 not verified + MCFG_OKIM6295_ADD("oki", XTAL_1_056MHz, PIN7_HIGH) // pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.47) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.47) MACHINE_CONFIG_END diff --git a/src/mame/drivers/aquarius.cpp b/src/mame/drivers/aquarius.cpp index 987e23c69d0..06eaa368fb9 100644 --- a/src/mame/drivers/aquarius.cpp +++ b/src/mame/drivers/aquarius.cpp @@ -347,7 +347,7 @@ GFXDECODE_END MACHINE DRIVERS ***************************************************************************/ -static MACHINE_CONFIG_START( aquarius, aquarius_state ) +static MACHINE_CONFIG_START( aquarius ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_3_579545MHz) // ??? MCFG_CPU_PROGRAM_MAP(aquarius_mem) @@ -420,6 +420,6 @@ ROM_END GAME DRIVERS ***************************************************************************/ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1983, aquarius, 0, 0, aquarius, aquarius, aquarius_state, aquarius, "Mattel", "Aquarius (NTSC)", 0 ) -//COMP( 1984, aquariu2, aquarius, 0, aquarius, aquarius, driver_device, 0, "Mattel", "Aquarius II", MACHINE_NOT_WORKING ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1983, aquarius, 0, 0, aquarius, aquarius, aquarius_state, aquarius, "Mattel", "Aquarius (NTSC)", 0 ) +//COMP( 1984, aquariu2, aquarius, 0, aquarius, aquarius, aquarius_state, 0, "Mattel", "Aquarius II", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/arabian.cpp b/src/mame/drivers/arabian.cpp index fa511214a28..bff3c351427 100644 --- a/src/mame/drivers/arabian.cpp +++ b/src/mame/drivers/arabian.cpp @@ -336,7 +336,7 @@ void arabian_state::machine_reset() m_video_control = 0; } -static MACHINE_CONFIG_START( arabian, arabian_state ) +static MACHINE_CONFIG_START( arabian ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, MAIN_OSC/4) @@ -422,5 +422,5 @@ ROM_END * *************************************/ -GAME( 1983, arabian, 0, arabian, arabian, driver_device, 0, ROT270, "Sun Electronics", "Arabian", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, arabiana, arabian, arabian, arabiana, driver_device, 0, ROT270, "Sun Electronics (Atari license)", "Arabian (Atari)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, arabian, 0, arabian, arabian, arabian_state, 0, ROT270, "Sun Electronics", "Arabian", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, arabiana, arabian, arabian, arabiana, arabian_state, 0, ROT270, "Sun Electronics (Atari license)", "Arabian (Atari)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/arachnid.cpp b/src/mame/drivers/arachnid.cpp index 8e3e2506e55..a84b40cc2e6 100644 --- a/src/mame/drivers/arachnid.cpp +++ b/src/mame/drivers/arachnid.cpp @@ -414,10 +414,10 @@ void arachnid_state::machine_start() ***************************************************************************/ /*------------------------------------------------- - MACHINE_CONFIG_START( arachnid, arachnid_state ) + MACHINE_CONFIG_START( arachnid ) -------------------------------------------------*/ -static MACHINE_CONFIG_START( arachnid, arachnid_state ) +static MACHINE_CONFIG_START( arachnid ) // basic machine hardware MCFG_CPU_ADD(M6809_TAG, M6809, XTAL_1MHz) MCFG_CPU_PROGRAM_MAP(arachnid_map) @@ -469,5 +469,5 @@ ROM_END SYSTEM DRIVERS ***************************************************************************/ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ -GAME( 1990, arac6000, 0, arachnid, arachnid, driver_device, 0, ROT0, "Arachnid", "Super Six Plus II English Mark Darts", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +/* YEAR NAME PARENT MACHINE INPUT STATE INIT COMPANY FULLNAME */ +GAME( 1990, arac6000, 0, arachnid, arachnid, arachnid_state, 0, ROT0, "Arachnid", "Super Six Plus II English Mark Darts", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/arcadecl.cpp b/src/mame/drivers/arcadecl.cpp index 0c6b488ea7a..b0236430897 100644 --- a/src/mame/drivers/arcadecl.cpp +++ b/src/mame/drivers/arcadecl.cpp @@ -317,7 +317,7 @@ GFXDECODE_END * *************************************/ -static MACHINE_CONFIG_START( arcadecl, arcadecl_state ) +static MACHINE_CONFIG_START( arcadecl ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, MASTER_CLOCK) @@ -351,7 +351,7 @@ static MACHINE_CONFIG_START( arcadecl, arcadecl_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", MASTER_CLOCK/4/3, OKIM6295_PIN7_LOW) + MCFG_OKIM6295_ADD("oki", MASTER_CLOCK/4/3, PIN7_LOW) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -400,5 +400,5 @@ ROM_END * *************************************/ -GAME( 1992, arcadecl, 0, arcadecl, arcadecl, driver_device, 0, ROT0, "Atari Games", "Arcade Classics (prototype)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, sparkz, 0, sparkz, sparkz, driver_device, 0, ROT0, "Atari Games", "Sparkz (prototype)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, arcadecl, 0, arcadecl, arcadecl, arcadecl_state, 0, ROT0, "Atari Games", "Arcade Classics (prototype)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, sparkz, 0, sparkz, sparkz, arcadecl_state, 0, ROT0, "Atari Games", "Sparkz (prototype)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/arcadia.cpp b/src/mame/drivers/arcadia.cpp index 905f0b0b70d..3238f72a48c 100644 --- a/src/mame/drivers/arcadia.cpp +++ b/src/mame/drivers/arcadia.cpp @@ -473,7 +473,7 @@ static SLOT_INTERFACE_START(arcadia_cart) SLOT_INTERFACE_END -static MACHINE_CONFIG_START( arcadia, arcadia_state ) +static MACHINE_CONFIG_START( arcadia ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", S2650, 3580000/4) /* 0.895 MHz */ MCFG_CPU_PROGRAM_MAP(arcadia_mem) @@ -810,7 +810,7 @@ DRIVER_INIT_MEMBER(arcadia_state,arcadia) } -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME */ CONS(1983, advsnha, arcadia, 0, arcadia, arcadia, arcadia_state, arcadia, "Advision", "Advision Home Arcade", MACHINE_IMPERFECT_SOUND ) /* France */ CONS(1982, bndarc, arcadia, 0, arcadia, arcadia, arcadia_state, arcadia, "Bandai", "Arcadia", MACHINE_IMPERFECT_SOUND ) /* Japan */ CONS(1982, arcadia, 0, 0, arcadia, arcadia, arcadia_state, arcadia, "Emerson", "Arcadia 2001", MACHINE_IMPERFECT_SOUND ) /* U.S.A. */ diff --git a/src/mame/drivers/argo.cpp b/src/mame/drivers/argo.cpp index 97e535fe435..38599049be6 100644 --- a/src/mame/drivers/argo.cpp +++ b/src/mame/drivers/argo.cpp @@ -342,7 +342,7 @@ uint32_t argo_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, return 0; } -static MACHINE_CONFIG_START( argo, argo_state ) +static MACHINE_CONFIG_START( argo ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 3500000) MCFG_CPU_PROGRAM_MAP(argo_mem) @@ -375,5 +375,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1986, argo, 0, 0, argo, argo, argo_state, argo, "", "Argo", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +COMP( 1986, argo, 0, 0, argo, argo, argo_state, argo, "", "Argo", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) diff --git a/src/mame/drivers/argox.cpp b/src/mame/drivers/argox.cpp index 432eba83224..e3bf71dd394 100644 --- a/src/mame/drivers/argox.cpp +++ b/src/mame/drivers/argox.cpp @@ -63,7 +63,7 @@ static ADDRESS_MAP_START( os214_io_map, AS_IO, 8, os214_state ) // ADDRESS_MAP_GLOBAL_MASK(0xff) ADDRESS_MAP_END -static MACHINE_CONFIG_START( os214, os214_state ) +static MACHINE_CONFIG_START( os214 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", H83002, XTAL_16MHz) /* X1 xtal value is correct, but there can be some clock divider perhaps ? */ @@ -81,5 +81,5 @@ ROM_START( os214 ) ROM_LOAD16_BYTE( "u8_s2a2-4.03_argox_am.u8", 0x000001, 0x040000, CRC(d49f52af) SHA1(0ca5a70c6c3995f275226af26db965f6ba7ed123) ) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1996, os214, 0, 0, os214, 0, os214_state, os214, "Argox", "Rabbit Printer (model OS-214)", MACHINE_IS_SKELETON) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 1996, os214, 0, 0, os214, 0, os214_state, os214, "Argox", "Rabbit Printer (model OS-214)", MACHINE_IS_SKELETON) diff --git a/src/mame/drivers/argus.cpp b/src/mame/drivers/argus.cpp index d70019516d4..55bf4ca64bf 100644 --- a/src/mame/drivers/argus.cpp +++ b/src/mame/drivers/argus.cpp @@ -530,7 +530,7 @@ static GFXDECODE_START( butasan ) GFXDECODE_END -static MACHINE_CONFIG_START( argus, argus_state ) +static MACHINE_CONFIG_START( argus ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 5000000) /* 4 MHz */ @@ -578,7 +578,7 @@ static MACHINE_CONFIG_START( argus, argus_state ) MCFG_SOUND_ROUTE(3, "mono", 0.50) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( valtric, argus_state ) +static MACHINE_CONFIG_START( valtric ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 5000000) /* 5 MHz */ @@ -626,7 +626,7 @@ static MACHINE_CONFIG_START( valtric, argus_state ) MCFG_SOUND_ROUTE(3, "mono", 0.50) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( butasan, argus_state ) +static MACHINE_CONFIG_START( butasan ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 5000000) /* 5 MHz */ @@ -808,8 +808,8 @@ ROM_START( butasanj ) ROM_END -/* ( YEAR NAME PARENT MACHINE INPUT INIT MONITOR COMPANY FULLNAME ) */ -GAME( 1986, argus, 0, argus, argus, driver_device, 0, ROT270, "NMK (Jaleco license)", "Argus", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1986, valtric, 0, valtric, valtric, driver_device, 0, ROT270, "NMK (Jaleco license)", "Valtric", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1987, butasan, 0, butasan, butasan, driver_device, 0, ROT0, "NMK (Jaleco license)", "Butasan - Pig's & Bomber's (Japan, English)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1987, butasanj, butasan,butasan, butasan, driver_device, 0, ROT0, "NMK (Jaleco license)", "Butasan (Japan, Japanese)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +/* ( YEAR NAME PARENT MACHINE INPUT STATE INIT MONITOR COMPANY FULLNAME ) */ +GAME( 1986, argus, 0, argus, argus, argus_state, 0, ROT270, "NMK (Jaleco license)", "Argus", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1986, valtric, 0, valtric, valtric, argus_state, 0, ROT270, "NMK (Jaleco license)", "Valtric", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1987, butasan, 0, butasan, butasan, argus_state, 0, ROT0, "NMK (Jaleco license)", "Butasan - Pig's & Bomber's (Japan, English)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1987, butasanj, butasan,butasan, butasan, argus_state, 0, ROT0, "NMK (Jaleco license)", "Butasan (Japan, Japanese)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/aristmk4.cpp b/src/mame/drivers/aristmk4.cpp index c551afcf7f3..b6b55fb9f80 100644 --- a/src/mame/drivers/aristmk4.cpp +++ b/src/mame/drivers/aristmk4.cpp @@ -1709,7 +1709,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(aristmk4_state::aristmk4_pf) } } -static MACHINE_CONFIG_START( aristmk4, aristmk4_state ) +static MACHINE_CONFIG_START( aristmk4 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809, MAIN_CLOCK/8) // 1.5mhz MCFG_CPU_PROGRAM_MAP(aristmk4_map) diff --git a/src/mame/drivers/aristmk5.cpp b/src/mame/drivers/aristmk5.cpp index 6b44b0b44e1..bd0202f170b 100644 --- a/src/mame/drivers/aristmk5.cpp +++ b/src/mame/drivers/aristmk5.cpp @@ -1803,7 +1803,7 @@ void aristmk5_state::machine_reset() } -static MACHINE_CONFIG_START( aristmk5, aristmk5_state ) +static MACHINE_CONFIG_START( aristmk5 ) MCFG_CPU_ADD("maincpu", ARM, MASTER_CLOCK/6) // 12000000 MCFG_CPU_PROGRAM_MAP(aristmk5_drame_map) diff --git a/src/mame/drivers/aristmk6.cpp b/src/mame/drivers/aristmk6.cpp index 23fd68d8cf3..5265898ffa4 100644 --- a/src/mame/drivers/aristmk6.cpp +++ b/src/mame/drivers/aristmk6.cpp @@ -316,7 +316,7 @@ INPUT_PORTS_END #define ARISTMK6_CPU_CLOCK XTAL_200MHz // ? -static MACHINE_CONFIG_START( aristmk6, aristmk6_state ) +static MACHINE_CONFIG_START( aristmk6 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", SH4LE, ARISTMK6_CPU_CLOCK) MCFG_SH4_MD0(1) @@ -2912,248 +2912,248 @@ ROM_END -GAME( 2000, aristmk6, 0, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Aristocrat MK6 System Software", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_IS_BIOS_ROOT) +GAME( 2000, aristmk6, 0, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Aristocrat MK6 System Software", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_IS_BIOS_ROOT) // Dates listed below are for the combination (reel layout), not release dates -GAME( 2004, 5drag, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "5 Dragons (20161011, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 744, C - 14/01/04 -GAME( 2004, 5dragsp, 5drag, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "5 Dragons (20161011, NSW/ACT, Show Program)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 744, C - 14/01/04 -GAME( 2007, 5dragce, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "5 Dragons - Cash Express (0152309, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // US211, A - 01/09/07 -GAME( 2007, 5koipp, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "5 Koi - Power Pay (10250711, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 744/2, C - 25/10/07 -GAME( 2002, 50lions, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "50 Lions (10120511, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 717, A - 11/10/02 -GAME( 2003, 50lionsm, 50lions, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "50 Lions (10156111, Malaysia)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 717, D - 20/10/03 -GAME( 2012, 50lionrr, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "50 Lions - Roaring Riches (20301311, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 1049, B - 20/08/12 -GAME( 2006, 100lions, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "100 Lions (10219211, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 717/4, B - 13/06/06 -GAME( 2005, adonisa6, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Adonis (0151178, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // US168, A - 05/26/05 -GAME( 2001, adustcm, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "African Dusk - Mr. Cashman (20006711, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 665/1, B- 13/07/01 -GAME( 2004, afterhrs, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "After Hours (0251071, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // US051, B - 01/20/04 -GAME( 2003, alchemy, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Alchemy (1J009611, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // JB013/2, A - 30/05/03 -GAME( 2007, atkgld, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "All the King's Gold (0152152, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // US209, A - 01/08/07 -GAME( 2001, amzqueen, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Amazon Queen (10005511, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 669, A - 02/05/01 -GAME( 2009, amztempl, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Amazon Temple (10299811, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 906, A - 29/04/09 -GAME( 2004, antcleo, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Antony and Cleopatra (10163211, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 754, A - 15/01/04 -GAME( 2004, antcleom, antcleo, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Antony and Cleopatra (10177211, Malaysia)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 754, B - 12/07/04 -GAME( 2003, apocof, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Apollo Coffee (0151105, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // US083, A - 11/10/03 -GAME( 2001, arabnga6, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Arabian Nights (2J008211, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // JB009/1, E - 10/12/01 -GAME( 2004, arabnga6u,arabnga6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Arabian Nights (0151356, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // JB016/21, E - 07/06/04 -GAME( 2003, arwincm, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Arctic Wins - Mr. Cashman (0151065, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // US029, E- 01/27/03 -GAME( 2003, arish, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Arishinko (0151087, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // US057, E - 05/28/03 -GAME( 2004, asnprinc, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Asian Princess (0352502, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // MV4208, C - 09/13/04 -GAME( 2008, beavbuk, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Beaver Bucks (20255111, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 850, C - 23/01/08 -GAME( 2003, bigben, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Big Ben (30126911, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 710, B - 17/07/03 -GAME( 1999, bigheart, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Big Hearted (10000511, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 637, D - 15/11/99 -GAME( 2002, bigred, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Big Red (2J009211, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // JB015, D - 27/09/02 -GAME( 2005, bigred2, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Big Red 2 (5J011311, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // JB024, B - 18/05/05 -GAME( 2002, blkbrum, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Black Brumby (1J009111, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // JB010, C - 14/06/02 -GAME( 200?, blkmust, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Black Mustang (0152584, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // JB014/21, (no data) -GAME( 2007, bluetigr, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Blue Tiger (20259511, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 855, A - 12/12/07 -GAME( 2007, bobdolly, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Bob and Dolly (0352298, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // US243, A - 10/15/07 -GAME( 2005, brazil, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Brazil (20180311, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 783, B - 25/02/05 -GAME( 2004, bucaneer, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Buccaneer (10173011, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 765, A - 05/04/04 -GAME( 2010, buckstop, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "The Buck Stops Here (10294311, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 897/1, A - 22/07/10 -GAME( 2006, buffalo, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Buffalo (10217811, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 806, E - 06/10/06 -GAME( 200?, buffalou, buffalo, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Buffalo (0252636, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // MV4328, (no data) -GAME( 2005, bmbugs, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Bumble Bugs (0351180, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // US166, A - 05/13/05 -GAME( 2001, bushrngr, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Bushranger (10006111, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 673, A - 18/04/01 -GAME( 2007, cactusco, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Cactus Corral (10237711, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 818, D - 24/07/07 -GAME( 2007, callwld, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Call of the Wild (10256611, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 827, B - 12/11/07 -GAME( 2005, calyking, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Calypso King (20197111, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 772/1, B - 25/07/05 -GAME( 2006, canaryrc, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Canary Riches (10218211, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 809, A - 30/03/06 -GAME( 2005, cmtonig, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Cashman Tonight (30194711, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // MG0007, B - 25/05/05 -GAME( 2004, cinhell, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Chance in Hell - Li'l Lucy (0251125, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // US119, A - 06/30/04 -GAME( 2002, csd, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Choy Sun Doa (10104011, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 688, A - 23/04/02 -GAME( 2002, csdsp, csd, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Choy Sun Doa (20104011, NSW/ACT, Show Program)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 688, A - 23/04/02 -GAME( 2003, csdm, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Choy Sun Doa (20131511, Malaysia)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 688, A - 23/01/03 -GAME( 2003, csdce, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Choy Sun Doa - Cash Express (30149511, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 688, A - 03/02/03 -GAME( 2006, csret, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Choy Sun Returns (20212211, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 744/2, B - 15/08/06 -GAME( 2005, corrida, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Corrida de Toros (30178311, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 771, D - 22/03/05 -GAME( 2003, cryspri, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Crystal Springs (10144411, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 740, A - 28/05/03 -GAME( 2003, crysprim, cryspri, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Crystal Springs (10155811, Malaysia)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 740, A - 28/05/03 -GAME( 2006, cryspriu, cryspri, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Crystal Springs (0352557, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // MV4255, C - 01/16/06 -GAME( 2009, deepfrz, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Deep Freeze (10282311, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // JB113/2, A - 27/02/09 -GAME( 2009, deepfrzu, deepfrz, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Deep Freeze (0154081, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // JB113/4, A - 27/07/09 -GAME( 2005, deltabel, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Delta Belle (0252532, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // MV4243, B - 04/29/05 -GAME( 2004, deltaqn, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Delta Queen (20185211, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 768, A - 13/09/04 -GAME( 2004, dimeye, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Diamond Eyes (0251312, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // JB012/20, J - 01/22/04 -GAME( 2004, dimeyece, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Diamond Eyes - Cash Express (0152039, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // JB012/20, J - 01/22/04 -GAME( 2002, di4ever, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Diamonds Forever (10105011, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 679, B - 14/03/02 -GAME( 2003, dinosa6, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Dinosaur (10118811, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 731, C - 08/08/03 -GAME( 2005, dblagent, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Double Agent (0152082, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // US180, A - 12/09/05 -GAME( 2000, dbldolph, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Double Dolphins (20000211, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 647, C - 18/04/00 -GAME( 2004, drgnlord, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Dragon Lord (10173511, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 761, A - 22/06/04 -GAME( 2006, drgnmgic, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Dragon Magic (2J015711, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // JB051, E - 05/07/06 -GAME( 2003, drmcatch, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Dream Catcher (10126721, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 704, F - 23/06/03 -GAME( 2008, drmred, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Dream of the Red Chamber (10273811, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // JB027/2, A - 25/8/08 -GAME( 2004, eaglrock, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Eagle Rock - Cash Express (0151126, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // US021, C - 05/25/04 -GAME( 2010, estrike, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Eagle Strike (40289711, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 950, A - 20/07/10 -GAME( 2004, eastland, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Easter Island - Cash Express (0151117, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // US052, B - 02/22/04 -GAME( 2005, eggsrccm, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Eggstreme Riches - Mr. Cashman (0351149, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // US144, B - 11/3/05 -GAME( 200?, efce, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Enchanted Forest - Cash Express (0151084, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // ???, ??? -GAME( 2007, encspell, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Enchanted Spell (10257011, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // JB041, B - 18/07/07 -GAME( 2000, enchantr, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Enchantress (20000711, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 633, C- 15/01/00 -GAME( 2000, eott, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Eyes of the Tiger (10002011, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 658, B - 01/06/00 -GAME( 2004, firednc, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Fire Dancer (20184911, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 772, A - 01/10/04 -GAME( 2002, flamoljc, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Flame of Olympus - Jackpot Carnival (0251048, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // MV4091/3, A - 2/18/02 -GAME( 2002, flamolce, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Flame of Olympus - Cash Express (0351025, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // MV4091/3, A - 2/18/02 -GAME( 2000, followst, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Follow the Stars (20001411, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 659, D - 15/09/00 -GAME( 2007, fortath, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Fortune of Athena (10248611, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 847, C - 08/11/07 -GAME( 2004, frogwld, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Frog Wild 2 (0251114, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // US112, A - 06/03/04 -GAME( 2005, gambjack, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Gamblin' Jack (20197211, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 791, D - 23/09/05 -GAME( 2004, gwnn, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "The Game With No Name! (0452501, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // MV4210, C - 09/13/04 -GAME( 2000, geishaa6, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Geisha (10000811, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 602/18, B - 03/06/00 -GAME( 2001, goape, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Go Ape (10006211, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 661/2, B - 14/06/01 -GAME( 2001, gogreen, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Go For Green (10003411, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 647/1, A - 22/02/01 -GAME( 2005, goldarch, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Golden Archer (10197411, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 770, A - 07/07/05 -GAME( 2003, gldnflc, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "The Golden Fleece (10158311, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 680/2, A-07/07/03 -GAME( 2005, gldgong, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "The Golden Gong (0152558, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // MV4258, C - 08/18/05 -GAME( 2004, goldinc, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Golden Incas (10174011, NSW/ACT, Show Program)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 752, A - 07/04/04 -GAME( 2005, goldincu, goldinc, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Golden Incas (0252533, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // MV4244, A - 03/10/05 -GAME( 2002, goldpym, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Golden Pyramids Special Edition - Maximillions (10130811, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 683/1, A - 21/10/02 -GAME( 2007, goldsam, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Golden Samurai (10247811, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 832, A - 31/07/07 -GAME( 2002, gbmoney, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "The Good, The Bad & The Money (0351016, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // US023, B - 09/11/02 -GAME( 2006, grizzly, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Grizzly (10214711, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 780, C - 12/04/06 -GAME( 2003, heartgld, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Heart of Gold (20169511, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 717/2, A - 15/09/03 -GAME( 2006, heartveg, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Heart of Vegas (10232911, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 717/4, C - 27/06/06 -GAME( 2004, hlntroy, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Helen of Troy (0151336, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // JB014/21, B - 01/16/04 -GAME( 2001, highnoon, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "High Noon (20004111, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 671, B - 28/06/01 -GAME( 2002, holdrma, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Hollywood Dreams (10100511, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 670/1, A - 31/01/02 -GAME( 2004, househrt, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "House of Hearts (10200311, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 765, C - 09/11/04 -GAME( 2005, incachf, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Inca Chief (20190711, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 784, C - 21/10/05 -GAME( 2001, indream, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Indian Dreaming (10004211, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 628/6, B - 24/04/01 -GAME( 2002, indremce, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Indian Dreaming - Cash Express (20109411, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 628/10, A - 12/07/02 -GAME( 2003, indremll, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Indian Dreaming - Lady Luck (20151911, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 742, C - 15/10/03 -GAME( 2003, indrem2c, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Indian Dreaming 2nd Chance (10150611, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 753, B - 08/12/03 -GAME( 2003, indremmm, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Indian Dreaming - Maximillions (10130711, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 628/12, A - 17/01/03 -GAME( 2001, indgldcm, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Indian Gold - Mr. Cashman (10102511, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 674/1, A- 21/11/01 -GAME( 2004, indprncs, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Indian Princess (10174111, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 764, A - 07/04/04 -GAME( 2002, jailbrk, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Jailbreak (10125611, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 716, A - 14/11/02 -GAME( 2003, jefffox, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "You Might Be A Redneck If... - Jeff Foxworthy (0351068, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // US041, B - 06/13/03 -GAME( 2003, jewelcm, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Jewel of the Enchantress - Mr. Cashman (0151051, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // US039, B- 1/24/03 -GAME( 2005, kingnep, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "King Neptune (20189111, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 789, E - 08/08/05 -GAME( 2002, kingnile, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "King of the Nile (20106321, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 687, C - 27/09/02 -GAME( 2003, kingnilea,kingnile, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "King of the Nile (30106331, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 687, D - 07/01/03 -GAME( 2002, kingpeng, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "King Penguin (40109021, NSW/ACT, Show Program)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 696, E- 26/11/02 -GAME( 2000, koalama6, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Koala Mint (30001011, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 643/6, A- 01/09/00 -GAME( 2003, kohinoor, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Kohinoor (10136711, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 602/21, B - 10/02/03 -GAME( 2006, lgfish, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Let's Go Fish'n (10220111, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 756, E - 23/05/06 -GAME( 2004, lemrol, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Let 'em Roll (0151115, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // US088, B - 06/24/04 -GAME( 2005, lineking, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Line King (0252534, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // MV4245, F - 11/10/05 -GAME( 2002, lordleo, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Lord Leopard (30111211, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 685, B - 27/05/02 -GAME( 2001, lougcm, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Louie's Gold - Mr. Cashman (20006911, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 674, C- 13/07/01 -GAME( 200?, lovestrk, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Love Stuck (0152583, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // MV4285, (no data) -GAME( 2007, lucky88, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Lucky 88 (10241411, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 840, C - 25/06/07 -GAME( 2007, luigibal, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Luigi's Ball (10235411, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 822, D - 19/03/07 -GAME( 2005, magforst, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Magic Forest (0151139, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // US141, D - 02/01/05 -GAME( 2003, magmerm, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Magic Mermaid (0251331, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // JB013/20, F - 10/13/03 -GAME( 2007, metestrm, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Meteor Storm (0152162, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // US217, A - 03/19/07 -GAME( 2007, milkin, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Milkin' It (10251911, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 816, B - 13/08/07 -GAME( 2005, mskitty, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Miss Kitty (10216611, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 778, C - 18/04/05 -GAME( 2000, mnytree, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Money Tree (10001211, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 657, E - 06/11/00 -GAME( 2007, moonwalt, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Moonlight Waltz (10227611, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 814/1, B - 11/01/07 -GAME( 2008, mchilli, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "More Chilli (20248711, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 844, B - 21/01/08 -GAME( 200?, mrwoo, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Mr Woo (0252599, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // MV4276, (no data) -GAME( 2002, mystarr, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Mystic Arrow (0151009, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // US005, A - 01/07/02 -GAME( 2001, mysteycm, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Mystic Eyes - Mr. Cashman (10008111, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 675, A- 09/05/01 -GAME( 2002, mysteycmu,mysteycm, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Mystic Eyes - Mr. Cashman (0251024, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // US020, C- 31/05/02 -GAME( 2002, mystmerm, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Mystic Mermaid (1J008711, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // JB013, D - 27/03/02 -GAME( 2005, nerdwild, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Nerds Gone Wild (10197311, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 778, C - 18/04/05 -GAME( 200?, opsesam, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Open Sesame (0351309, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // ???, ??? -GAME( 2006, orbeaut, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Oriental Beauty (10213511, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 808, A - 07/02/06 -GAME( 2005, outbackj, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Outback Jack (20195211, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 691, J - 02/06/05 -GAME( 2001, owlcap, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Owl Capone (10008711, NSW/ACT, Show Program)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 594/9, A - 12/06/01 -GAME( 2004, pandpays, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Panda Pays - Mr. Cashman (0151109, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // US092, A - 01/27/04 -GAME( 2001, parislgt, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Paris Lights (30002611, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 670, A - 03/05/01 -GAME( 2002, parislgtu,parislgt, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Paris Lights - Jackpot Carnival (0251031, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // US022, A - 07/03/02 -GAME( 2002, pcockmag, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Peacock Magic (1J008811, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // JB014, B - 09/05/02 -GAME( 2004, pelipete, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Pelican Pete (10177511, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 778, A - 22/11/04 -GAME( 2005, pelipeteu,pelipete, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Pelican Pete (0252555, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // MV4251, C - 10/28/05 -GAME( 2005, pennyar, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Penny Arcade (0251169, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // US159, A - 04/06/05 -GAME( 2003, pengpyce, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Penguin Pays - Cash Express (0151120, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // US055, A- 4/14/03 -GAME( 2000, pharfor, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Pharaoh's Fortune (40000921, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 656, D - 11/01/00 -GAME( 2005, phxfant, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Phoenix Fantasy (20197511, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 793, A - 21/07/05 -GAME( 2000, pirata6, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Pirates (10001511, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 661/1, B - 3/11/00 -GAME( 2004, pcfavor, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Player's Choice - Favourites (20177311, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // MG0002, D - 04/11/04 -GAME( 2006, pcbydem, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Player's Choice - By Demand (10223111, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // MG0005, D - 25/09/06 -GAME( 2006, pcmostw, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Player's Choice - Most Wanted (20234911, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // MG0010, C - 09/11/06 -GAME( 2010, pcgold, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Player's Choice - Gold Edition (30291411, New Zealand)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // MG0047, A - 09/04/10 -GAME( 2009, pcplat, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Player's Choice - Platinum (20282111, New Zealand)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // MG0031, B - 04/02/09 -GAME( 2004, pcorig, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Player's Choice - Original (30143011, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // MG001, C - 12/01/04 -GAME( 200?, pwsuper, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Player's World - Super (0154019, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // MG0016, (no data) -GAME( 2001, pompeia6, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Pompeii (10002211, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 628/5, A - 22/01/01 -GAME( 2002, pompeia6u,pompeia6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Pompeii (0251010, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // US008, A - 04/03/02 -GAME( 2005, prideaf, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Pride of Africa (10208511, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 628/9, J - 06/12/05 -GAME( 2004, prophecy, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Prophecy (20173411, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 734, B - 10/08/04 -GAME( 2005, qnilea6, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Queen of the Nile (3J011111, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // JB027, C - 16/02/05 -GAME( 2001, qnilese, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Queen of the Nile Special Edition (10102811, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 683, A - 06/12/01 -GAME( 2002, qnilejc, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Queen of the Nile Special Edition - Jackpot Carnival (20123911, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 683/1, A - 21/10/02 -GAME( 2002, qnilejcsp, qnilejc, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Queen of the Nile Special Edition - Jackpot Carnival (20123911, NSW/ACT, Show Program)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 683/1, A - 21/10/02 -GAME( 2003, qsheeba, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Queen of Sheba (10133711, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 687, F - 04/03/03 -GAME( 2005, raprichs, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Rapid Riches (10194211, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 762, D - 09/03/05 -GAME( 2002, redbara6, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Red Baron (10119911, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 709, B - 21/11/02 -GAME( 2005, roadtrip, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Road Trip (0152539, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // MV4238, C - 08/18/05 -GAME( 2002, ruprup, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Roll Up! Roll Up!! (10115911, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 642/5, A - 22/08/02 -GAME( 2002, rubymag, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Ruby Magic (10125711, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 698, C - 12/11/02 -GAME( 2010, rumbreel, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Rumble Reels (20288611, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 949, B - 04/08/10 -GAME( 2000, scatmag2, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Scatter Magic II (10001311, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 660, C - 24/08/00 -GAME( 2001, scatmag2sa, scatmag2, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Scatter Magic II (10102711, South Australia)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 660, G - 15/05/01 -GAME( 2002, sealdeal, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Seal The Deal - Jackpot Carnival (0251029, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // US024, A - 06/20/02 -GAME( 2006, shamnmg, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Shaman's Magic (10225911, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 818, C - 14/11/06 -GAME( 200?, shamnmgu, shamnmg, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Shaman's Magic (0152647, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // MV4318/1, (no data) -GAME( 2004, shorthng, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Shore Thing (0251088, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // US087, B - 1/30/04 -GAME( 2001, smtma6, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Show Me The Money (10001911, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 657/1, B - 08/01/01 -GAME( 2006, silkrda6, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Silk Road (0152537, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // MV4248/4, D - 02/09/06 -GAME( 2002, silgola6, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Silver & Gold (20100721, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 672/1, G - 08/07/02 -GAME( 2008, skydnca6, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Sky Dancer (10272711, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // JB091/2, A - 28/08/08 -GAME( 1999, spgcarn, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Spring Carnival (10000311, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 642, C - 15/11/99 -GAME( 2003, stardrft, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Star Drifter (20150811, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 717/2, A - 15/09/03 -GAME( 2004, stardrftu,stardrft, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Star Drifter (0451341, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // MV4204/1, A - 02/16/04 -GAME( 2001, starqst, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Star Quest (10009511, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 659/2, B - 29/10/01 -GAME( 2005, statsymb, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Status Symbols (0251147, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // US146, A - 02/10/05 -GAME( 2003, sunmoon, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Sun & Moon (0151303, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // MV4173, C - 04/01/03 -GAME( 200?, sunmonbb, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Sun & Moon - Bank Buster (0153028, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // MV4173/2, (no data) -GAME( 2003, sunqndol, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Sun Queen - Dollar Storm (0451327, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // MV2070/1, B - 11/24/03 -GAME( 2005, sbuk5, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Super Bucks V (20203611, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 794, A - 03/08/05 -GAME( 2005, swhr2a6, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Sweethearts II (0151183, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // US169, A - 7/5/05 -GAME( 2002, swh2ld, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Sweethearts II - Lucky Devil (10119811, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 712, C - 16/10/02 -GAME( 2006, tahitim, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Tahiti Magic (10238911, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 765/2, C - 07/12/06 -GAME( 2002, thaiprnc, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Thai Princess (10119321, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 707, A - 17/09/02 -GAME( 2003, thaiprncm,thaiprnc, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Thai Princess (30127721, Malaysia)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 707, E - 21/03/03 -GAME( 2004, thndrhrt, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Thunderheart (10173811, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 758, B - 11/05/04 -GAME( 2007, tigress, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Tigress (20230111, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 807, C - 03/04/07 -GAME( 2007, tikitalk, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Tiki Talk (10239111, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 831, D - 28/03/07 -GAME( 2001, tiktorch, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Tiki Torch (0151003, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // MV4130/4, A - 08/10/01 -GAME( 200?, timbwolf, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Timber Wolf (0154013, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // MV4333/1, (no data) -GAME( 2002, topshta6, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Top Shot (30123211, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 714, C - 16/12/02 -GAME( 2000, torgods, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Torch of the Gods (10000411, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 602/19, B - 09/08/00 -GAME( 2001, toprdice, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Touch of Paradice (20007511, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 650/2, A - 24/04/01 -GAME( 200?, trsking, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Treasure King (0152570, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // MV4268, (no data) -GAME( 2006, turtreas, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Turtle Treasure (10234711, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 819/1, A - 06/10/06 -GAME( 2002, venetian, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Venetian Nights (1J008911, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // JB016/1, D - 05/08/02 -GAME( 2004, venice, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Venice (0151355, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // JB016/20, F - 07/06/04 -GAME( 2009, werewild, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Werewolf Wild (10288711, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 939, A - 03/12/09 -GAME( 2002, whalecsh, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Whales of Cash (20155711, Malaysia)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 695, A - 14/06/02 -GAME( 2003, whalecshu,whalecsh, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Whales of Cash (0451311, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // MV4174, A - 03/31/03 -GAME( 2005, whalecshua,whalecsh, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Whales of Cash (0451346, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // MV4214, B - 01/14/05 -GAME( 2004, wheregld, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Where's The Gold (10124811, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 756, B - 26/02/04 -GAME( 2004, wheregldsp,wheregld, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Where's The Gold (10124811, NSW/ACT, Show Program)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 756, B - 26/02/04 -GAME( 2004, wheregldm,wheregld, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Where's the Gold (20177111, Malaysia)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 756, C - 17/06/04 -GAME( 2003, whtwater, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "White Water (0151075, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // US054, A - 4/11/03 -GAME( 2006, wikwin2, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Wicked Winnings II - Power Pay (10214011, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 796, A - 28/02/06 -GAME( 2002, wldafr, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Wild Africa - Millioniser (0351083, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // MV4076, D - 5/08/02 -GAME( 2006, wldcata6, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Wild Cats (10237511, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 811, B - 20/06/06 -GAME( 2003, wldgoos, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Wild Goose (20131911, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 732, B - 02/06/03 -GAME( 2009, wgorilla, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Wild Gorilla - Power Pay (20279811, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // JB108/2, B - 19/06/09 -GAME( 2006, wldpanda, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Wild Panda (20218411, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 800, E - 07/08/06 -GAME( 2004, wldpanth, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Wild Panthers - Li'l Lucy (0651310, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // MV4187, D- 01/15/04 -GAME( 2006, wldstall, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Wild Stallion (10230811, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 805, B - 12/09/06 -GAME( 2007, wtepee, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Wild Tepee - Power Pay (10230211, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 820, H - 20/04/07 -GAME( 2006, wwaratah, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Wild Waratah (10215911, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 811, A - 14/02/06 -GAME( 2006, wwaratahsp, wwaratah, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Wild Waratah (10215911, NSW/ACT, Show Program)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 811, A - 14/02/06 -GAME( 2002, wways, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Wild Ways (10106911, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 698, B - 19/06/02 -GAME( 2003, wwaysm, wways, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Wild Ways (10130111, Malaysia)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 698/1, A - 25/02/03 -GAME( 2005, wingoly, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Wings Over Olympus (0252529, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // MV4237/1, A - 03/07/05 -GAME( 2003, wzwaysll, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Wizard Ways - Lady Luck (20139111, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 702, H - 30/06/03 -GAME( 2003, zorroa6, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Zorro (30130611, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 743, B - 5/09/03 -GAME( 2005, zorroa6u, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Zorro (0151372, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // MV4212, F - 05/13/05 +GAME( 2004, 5drag, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "5 Dragons (20161011, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 744, C - 14/01/04 +GAME( 2004, 5dragsp, 5drag, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "5 Dragons (20161011, NSW/ACT, Show Program)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 744, C - 14/01/04 +GAME( 2007, 5dragce, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "5 Dragons - Cash Express (0152309, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // US211, A - 01/09/07 +GAME( 2007, 5koipp, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "5 Koi - Power Pay (10250711, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 744/2, C - 25/10/07 +GAME( 2002, 50lions, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "50 Lions (10120511, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 717, A - 11/10/02 +GAME( 2003, 50lionsm, 50lions, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "50 Lions (10156111, Malaysia)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 717, D - 20/10/03 +GAME( 2012, 50lionrr, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "50 Lions - Roaring Riches (20301311, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 1049, B - 20/08/12 +GAME( 2006, 100lions, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "100 Lions (10219211, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 717/4, B - 13/06/06 +GAME( 2005, adonisa6, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Adonis (0151178, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // US168, A - 05/26/05 +GAME( 2001, adustcm, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "African Dusk - Mr. Cashman (20006711, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 665/1, B- 13/07/01 +GAME( 2004, afterhrs, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "After Hours (0251071, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // US051, B - 01/20/04 +GAME( 2003, alchemy, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Alchemy (1J009611, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // JB013/2, A - 30/05/03 +GAME( 2007, atkgld, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "All the King's Gold (0152152, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // US209, A - 01/08/07 +GAME( 2001, amzqueen, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Amazon Queen (10005511, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 669, A - 02/05/01 +GAME( 2009, amztempl, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Amazon Temple (10299811, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 906, A - 29/04/09 +GAME( 2004, antcleo, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Antony and Cleopatra (10163211, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 754, A - 15/01/04 +GAME( 2004, antcleom, antcleo, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Antony and Cleopatra (10177211, Malaysia)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 754, B - 12/07/04 +GAME( 2003, apocof, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Apollo Coffee (0151105, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // US083, A - 11/10/03 +GAME( 2001, arabnga6, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Arabian Nights (2J008211, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // JB009/1, E - 10/12/01 +GAME( 2004, arabnga6u,arabnga6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Arabian Nights (0151356, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // JB016/21, E - 07/06/04 +GAME( 2003, arwincm, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Arctic Wins - Mr. Cashman (0151065, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // US029, E- 01/27/03 +GAME( 2003, arish, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Arishinko (0151087, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // US057, E - 05/28/03 +GAME( 2004, asnprinc, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Asian Princess (0352502, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // MV4208, C - 09/13/04 +GAME( 2008, beavbuk, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Beaver Bucks (20255111, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 850, C - 23/01/08 +GAME( 2003, bigben, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Big Ben (30126911, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 710, B - 17/07/03 +GAME( 1999, bigheart, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Big Hearted (10000511, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 637, D - 15/11/99 +GAME( 2002, bigred, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Big Red (2J009211, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // JB015, D - 27/09/02 +GAME( 2005, bigred2, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Big Red 2 (5J011311, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // JB024, B - 18/05/05 +GAME( 2002, blkbrum, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Black Brumby (1J009111, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // JB010, C - 14/06/02 +GAME( 200?, blkmust, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Black Mustang (0152584, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // JB014/21, (no data) +GAME( 2007, bluetigr, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Blue Tiger (20259511, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 855, A - 12/12/07 +GAME( 2007, bobdolly, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Bob and Dolly (0352298, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // US243, A - 10/15/07 +GAME( 2005, brazil, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Brazil (20180311, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 783, B - 25/02/05 +GAME( 2004, bucaneer, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Buccaneer (10173011, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 765, A - 05/04/04 +GAME( 2010, buckstop, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "The Buck Stops Here (10294311, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 897/1, A - 22/07/10 +GAME( 2006, buffalo, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Buffalo (10217811, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 806, E - 06/10/06 +GAME( 200?, buffalou, buffalo, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Buffalo (0252636, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // MV4328, (no data) +GAME( 2005, bmbugs, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Bumble Bugs (0351180, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // US166, A - 05/13/05 +GAME( 2001, bushrngr, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Bushranger (10006111, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 673, A - 18/04/01 +GAME( 2007, cactusco, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Cactus Corral (10237711, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 818, D - 24/07/07 +GAME( 2007, callwld, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Call of the Wild (10256611, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 827, B - 12/11/07 +GAME( 2005, calyking, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Calypso King (20197111, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 772/1, B - 25/07/05 +GAME( 2006, canaryrc, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Canary Riches (10218211, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 809, A - 30/03/06 +GAME( 2005, cmtonig, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Cashman Tonight (30194711, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // MG0007, B - 25/05/05 +GAME( 2004, cinhell, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Chance in Hell - Li'l Lucy (0251125, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // US119, A - 06/30/04 +GAME( 2002, csd, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Choy Sun Doa (10104011, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 688, A - 23/04/02 +GAME( 2002, csdsp, csd, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Choy Sun Doa (20104011, NSW/ACT, Show Program)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 688, A - 23/04/02 +GAME( 2003, csdm, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Choy Sun Doa (20131511, Malaysia)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 688, A - 23/01/03 +GAME( 2003, csdce, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Choy Sun Doa - Cash Express (30149511, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 688, A - 03/02/03 +GAME( 2006, csret, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Choy Sun Returns (20212211, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 744/2, B - 15/08/06 +GAME( 2005, corrida, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Corrida de Toros (30178311, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 771, D - 22/03/05 +GAME( 2003, cryspri, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Crystal Springs (10144411, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 740, A - 28/05/03 +GAME( 2003, crysprim, cryspri, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Crystal Springs (10155811, Malaysia)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 740, A - 28/05/03 +GAME( 2006, cryspriu, cryspri, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Crystal Springs (0352557, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // MV4255, C - 01/16/06 +GAME( 2009, deepfrz, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Deep Freeze (10282311, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // JB113/2, A - 27/02/09 +GAME( 2009, deepfrzu, deepfrz, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Deep Freeze (0154081, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // JB113/4, A - 27/07/09 +GAME( 2005, deltabel, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Delta Belle (0252532, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // MV4243, B - 04/29/05 +GAME( 2004, deltaqn, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Delta Queen (20185211, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 768, A - 13/09/04 +GAME( 2004, dimeye, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Diamond Eyes (0251312, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // JB012/20, J - 01/22/04 +GAME( 2004, dimeyece, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Diamond Eyes - Cash Express (0152039, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // JB012/20, J - 01/22/04 +GAME( 2002, di4ever, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Diamonds Forever (10105011, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 679, B - 14/03/02 +GAME( 2003, dinosa6, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Dinosaur (10118811, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 731, C - 08/08/03 +GAME( 2005, dblagent, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Double Agent (0152082, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // US180, A - 12/09/05 +GAME( 2000, dbldolph, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Double Dolphins (20000211, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 647, C - 18/04/00 +GAME( 2004, drgnlord, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Dragon Lord (10173511, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 761, A - 22/06/04 +GAME( 2006, drgnmgic, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Dragon Magic (2J015711, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // JB051, E - 05/07/06 +GAME( 2003, drmcatch, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Dream Catcher (10126721, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 704, F - 23/06/03 +GAME( 2008, drmred, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Dream of the Red Chamber (10273811, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // JB027/2, A - 25/8/08 +GAME( 2004, eaglrock, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Eagle Rock - Cash Express (0151126, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // US021, C - 05/25/04 +GAME( 2010, estrike, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Eagle Strike (40289711, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 950, A - 20/07/10 +GAME( 2004, eastland, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Easter Island - Cash Express (0151117, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // US052, B - 02/22/04 +GAME( 2005, eggsrccm, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Eggstreme Riches - Mr. Cashman (0351149, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // US144, B - 11/3/05 +GAME( 200?, efce, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Enchanted Forest - Cash Express (0151084, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // ???, ??? +GAME( 2007, encspell, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Enchanted Spell (10257011, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // JB041, B - 18/07/07 +GAME( 2000, enchantr, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Enchantress (20000711, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 633, C- 15/01/00 +GAME( 2000, eott, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Eyes of the Tiger (10002011, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 658, B - 01/06/00 +GAME( 2004, firednc, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Fire Dancer (20184911, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 772, A - 01/10/04 +GAME( 2002, flamoljc, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Flame of Olympus - Jackpot Carnival (0251048, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // MV4091/3, A - 2/18/02 +GAME( 2002, flamolce, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Flame of Olympus - Cash Express (0351025, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // MV4091/3, A - 2/18/02 +GAME( 2000, followst, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Follow the Stars (20001411, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 659, D - 15/09/00 +GAME( 2007, fortath, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Fortune of Athena (10248611, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 847, C - 08/11/07 +GAME( 2004, frogwld, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Frog Wild 2 (0251114, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // US112, A - 06/03/04 +GAME( 2005, gambjack, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Gamblin' Jack (20197211, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 791, D - 23/09/05 +GAME( 2004, gwnn, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "The Game With No Name! (0452501, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // MV4210, C - 09/13/04 +GAME( 2000, geishaa6, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Geisha (10000811, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 602/18, B - 03/06/00 +GAME( 2001, goape, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Go Ape (10006211, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 661/2, B - 14/06/01 +GAME( 2001, gogreen, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Go For Green (10003411, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 647/1, A - 22/02/01 +GAME( 2005, goldarch, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Golden Archer (10197411, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 770, A - 07/07/05 +GAME( 2003, gldnflc, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "The Golden Fleece (10158311, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 680/2, A-07/07/03 +GAME( 2005, gldgong, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "The Golden Gong (0152558, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // MV4258, C - 08/18/05 +GAME( 2004, goldinc, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Golden Incas (10174011, NSW/ACT, Show Program)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 752, A - 07/04/04 +GAME( 2005, goldincu, goldinc, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Golden Incas (0252533, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // MV4244, A - 03/10/05 +GAME( 2002, goldpym, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Golden Pyramids Special Edition - Maximillions (10130811, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 683/1, A - 21/10/02 +GAME( 2007, goldsam, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Golden Samurai (10247811, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 832, A - 31/07/07 +GAME( 2002, gbmoney, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "The Good, The Bad & The Money (0351016, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // US023, B - 09/11/02 +GAME( 2006, grizzly, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Grizzly (10214711, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 780, C - 12/04/06 +GAME( 2003, heartgld, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Heart of Gold (20169511, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 717/2, A - 15/09/03 +GAME( 2006, heartveg, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Heart of Vegas (10232911, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 717/4, C - 27/06/06 +GAME( 2004, hlntroy, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Helen of Troy (0151336, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // JB014/21, B - 01/16/04 +GAME( 2001, highnoon, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "High Noon (20004111, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 671, B - 28/06/01 +GAME( 2002, holdrma, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Hollywood Dreams (10100511, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 670/1, A - 31/01/02 +GAME( 2004, househrt, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "House of Hearts (10200311, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 765, C - 09/11/04 +GAME( 2005, incachf, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Inca Chief (20190711, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 784, C - 21/10/05 +GAME( 2001, indream, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Indian Dreaming (10004211, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 628/6, B - 24/04/01 +GAME( 2002, indremce, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Indian Dreaming - Cash Express (20109411, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 628/10, A - 12/07/02 +GAME( 2003, indremll, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Indian Dreaming - Lady Luck (20151911, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 742, C - 15/10/03 +GAME( 2003, indrem2c, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Indian Dreaming 2nd Chance (10150611, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 753, B - 08/12/03 +GAME( 2003, indremmm, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Indian Dreaming - Maximillions (10130711, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 628/12, A - 17/01/03 +GAME( 2001, indgldcm, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Indian Gold - Mr. Cashman (10102511, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 674/1, A- 21/11/01 +GAME( 2004, indprncs, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Indian Princess (10174111, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 764, A - 07/04/04 +GAME( 2002, jailbrk, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Jailbreak (10125611, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 716, A - 14/11/02 +GAME( 2003, jefffox, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "You Might Be A Redneck If... - Jeff Foxworthy (0351068, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // US041, B - 06/13/03 +GAME( 2003, jewelcm, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Jewel of the Enchantress - Mr. Cashman (0151051, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // US039, B- 1/24/03 +GAME( 2005, kingnep, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "King Neptune (20189111, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 789, E - 08/08/05 +GAME( 2002, kingnile, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "King of the Nile (20106321, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 687, C - 27/09/02 +GAME( 2003, kingnilea,kingnile, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "King of the Nile (30106331, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 687, D - 07/01/03 +GAME( 2002, kingpeng, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "King Penguin (40109021, NSW/ACT, Show Program)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 696, E- 26/11/02 +GAME( 2000, koalama6, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Koala Mint (30001011, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 643/6, A- 01/09/00 +GAME( 2003, kohinoor, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Kohinoor (10136711, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 602/21, B - 10/02/03 +GAME( 2006, lgfish, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Let's Go Fish'n (10220111, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 756, E - 23/05/06 +GAME( 2004, lemrol, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Let 'em Roll (0151115, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // US088, B - 06/24/04 +GAME( 2005, lineking, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Line King (0252534, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // MV4245, F - 11/10/05 +GAME( 2002, lordleo, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Lord Leopard (30111211, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 685, B - 27/05/02 +GAME( 2001, lougcm, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Louie's Gold - Mr. Cashman (20006911, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 674, C- 13/07/01 +GAME( 200?, lovestrk, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Love Stuck (0152583, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // MV4285, (no data) +GAME( 2007, lucky88, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Lucky 88 (10241411, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 840, C - 25/06/07 +GAME( 2007, luigibal, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Luigi's Ball (10235411, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 822, D - 19/03/07 +GAME( 2005, magforst, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Magic Forest (0151139, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // US141, D - 02/01/05 +GAME( 2003, magmerm, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Magic Mermaid (0251331, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // JB013/20, F - 10/13/03 +GAME( 2007, metestrm, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Meteor Storm (0152162, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // US217, A - 03/19/07 +GAME( 2007, milkin, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Milkin' It (10251911, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 816, B - 13/08/07 +GAME( 2005, mskitty, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Miss Kitty (10216611, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 778, C - 18/04/05 +GAME( 2000, mnytree, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Money Tree (10001211, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 657, E - 06/11/00 +GAME( 2007, moonwalt, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Moonlight Waltz (10227611, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 814/1, B - 11/01/07 +GAME( 2008, mchilli, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "More Chilli (20248711, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 844, B - 21/01/08 +GAME( 200?, mrwoo, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Mr Woo (0252599, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // MV4276, (no data) +GAME( 2002, mystarr, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Mystic Arrow (0151009, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // US005, A - 01/07/02 +GAME( 2001, mysteycm, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Mystic Eyes - Mr. Cashman (10008111, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 675, A- 09/05/01 +GAME( 2002, mysteycmu,mysteycm, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Mystic Eyes - Mr. Cashman (0251024, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // US020, C- 31/05/02 +GAME( 2002, mystmerm, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Mystic Mermaid (1J008711, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // JB013, D - 27/03/02 +GAME( 2005, nerdwild, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Nerds Gone Wild (10197311, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 778, C - 18/04/05 +GAME( 200?, opsesam, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Open Sesame (0351309, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // ???, ??? +GAME( 2006, orbeaut, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Oriental Beauty (10213511, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 808, A - 07/02/06 +GAME( 2005, outbackj, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Outback Jack (20195211, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 691, J - 02/06/05 +GAME( 2001, owlcap, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Owl Capone (10008711, NSW/ACT, Show Program)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 594/9, A - 12/06/01 +GAME( 2004, pandpays, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Panda Pays - Mr. Cashman (0151109, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // US092, A - 01/27/04 +GAME( 2001, parislgt, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Paris Lights (30002611, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 670, A - 03/05/01 +GAME( 2002, parislgtu,parislgt, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Paris Lights - Jackpot Carnival (0251031, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // US022, A - 07/03/02 +GAME( 2002, pcockmag, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Peacock Magic (1J008811, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // JB014, B - 09/05/02 +GAME( 2004, pelipete, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Pelican Pete (10177511, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 778, A - 22/11/04 +GAME( 2005, pelipeteu,pelipete, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Pelican Pete (0252555, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // MV4251, C - 10/28/05 +GAME( 2005, pennyar, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Penny Arcade (0251169, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // US159, A - 04/06/05 +GAME( 2003, pengpyce, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Penguin Pays - Cash Express (0151120, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // US055, A- 4/14/03 +GAME( 2000, pharfor, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Pharaoh's Fortune (40000921, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 656, D - 11/01/00 +GAME( 2005, phxfant, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Phoenix Fantasy (20197511, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 793, A - 21/07/05 +GAME( 2000, pirata6, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Pirates (10001511, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 661/1, B - 3/11/00 +GAME( 2004, pcfavor, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Player's Choice - Favourites (20177311, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // MG0002, D - 04/11/04 +GAME( 2006, pcbydem, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Player's Choice - By Demand (10223111, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // MG0005, D - 25/09/06 +GAME( 2006, pcmostw, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Player's Choice - Most Wanted (20234911, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // MG0010, C - 09/11/06 +GAME( 2010, pcgold, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Player's Choice - Gold Edition (30291411, New Zealand)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // MG0047, A - 09/04/10 +GAME( 2009, pcplat, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Player's Choice - Platinum (20282111, New Zealand)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // MG0031, B - 04/02/09 +GAME( 2004, pcorig, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Player's Choice - Original (30143011, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // MG001, C - 12/01/04 +GAME( 200?, pwsuper, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Player's World - Super (0154019, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // MG0016, (no data) +GAME( 2001, pompeia6, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Pompeii (10002211, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 628/5, A - 22/01/01 +GAME( 2002, pompeia6u,pompeia6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Pompeii (0251010, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // US008, A - 04/03/02 +GAME( 2005, prideaf, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Pride of Africa (10208511, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 628/9, J - 06/12/05 +GAME( 2004, prophecy, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Prophecy (20173411, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 734, B - 10/08/04 +GAME( 2005, qnilea6, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Queen of the Nile (3J011111, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // JB027, C - 16/02/05 +GAME( 2001, qnilese, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Queen of the Nile Special Edition (10102811, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 683, A - 06/12/01 +GAME( 2002, qnilejc, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Queen of the Nile Special Edition - Jackpot Carnival (20123911, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 683/1, A - 21/10/02 +GAME( 2002, qnilejcsp, qnilejc, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Queen of the Nile Special Edition - Jackpot Carnival (20123911, NSW/ACT, Show Program)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 683/1, A - 21/10/02 +GAME( 2003, qsheeba, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Queen of Sheba (10133711, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 687, F - 04/03/03 +GAME( 2005, raprichs, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Rapid Riches (10194211, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 762, D - 09/03/05 +GAME( 2002, redbara6, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Red Baron (10119911, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 709, B - 21/11/02 +GAME( 2005, roadtrip, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Road Trip (0152539, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // MV4238, C - 08/18/05 +GAME( 2002, ruprup, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Roll Up! Roll Up!! (10115911, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 642/5, A - 22/08/02 +GAME( 2002, rubymag, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Ruby Magic (10125711, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 698, C - 12/11/02 +GAME( 2010, rumbreel, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Rumble Reels (20288611, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 949, B - 04/08/10 +GAME( 2000, scatmag2, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Scatter Magic II (10001311, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 660, C - 24/08/00 +GAME( 2001, scatmag2sa, scatmag2, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Scatter Magic II (10102711, South Australia)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 660, G - 15/05/01 +GAME( 2002, sealdeal, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Seal The Deal - Jackpot Carnival (0251029, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // US024, A - 06/20/02 +GAME( 2006, shamnmg, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Shaman's Magic (10225911, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 818, C - 14/11/06 +GAME( 200?, shamnmgu, shamnmg, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Shaman's Magic (0152647, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // MV4318/1, (no data) +GAME( 2004, shorthng, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Shore Thing (0251088, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // US087, B - 1/30/04 +GAME( 2001, smtma6, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Show Me The Money (10001911, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 657/1, B - 08/01/01 +GAME( 2006, silkrda6, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Silk Road (0152537, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // MV4248/4, D - 02/09/06 +GAME( 2002, silgola6, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Silver & Gold (20100721, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 672/1, G - 08/07/02 +GAME( 2008, skydnca6, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Sky Dancer (10272711, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // JB091/2, A - 28/08/08 +GAME( 1999, spgcarn, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Spring Carnival (10000311, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 642, C - 15/11/99 +GAME( 2003, stardrft, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Star Drifter (20150811, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 717/2, A - 15/09/03 +GAME( 2004, stardrftu,stardrft, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Star Drifter (0451341, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // MV4204/1, A - 02/16/04 +GAME( 2001, starqst, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Star Quest (10009511, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 659/2, B - 29/10/01 +GAME( 2005, statsymb, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Status Symbols (0251147, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // US146, A - 02/10/05 +GAME( 2003, sunmoon, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Sun & Moon (0151303, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // MV4173, C - 04/01/03 +GAME( 200?, sunmonbb, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Sun & Moon - Bank Buster (0153028, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // MV4173/2, (no data) +GAME( 2003, sunqndol, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Sun Queen - Dollar Storm (0451327, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // MV2070/1, B - 11/24/03 +GAME( 2005, sbuk5, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Super Bucks V (20203611, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 794, A - 03/08/05 +GAME( 2005, swhr2a6, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Sweethearts II (0151183, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // US169, A - 7/5/05 +GAME( 2002, swh2ld, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Sweethearts II - Lucky Devil (10119811, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 712, C - 16/10/02 +GAME( 2006, tahitim, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Tahiti Magic (10238911, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 765/2, C - 07/12/06 +GAME( 2002, thaiprnc, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Thai Princess (10119321, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 707, A - 17/09/02 +GAME( 2003, thaiprncm,thaiprnc, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Thai Princess (30127721, Malaysia)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 707, E - 21/03/03 +GAME( 2004, thndrhrt, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Thunderheart (10173811, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 758, B - 11/05/04 +GAME( 2007, tigress, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Tigress (20230111, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 807, C - 03/04/07 +GAME( 2007, tikitalk, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Tiki Talk (10239111, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 831, D - 28/03/07 +GAME( 2001, tiktorch, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Tiki Torch (0151003, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // MV4130/4, A - 08/10/01 +GAME( 200?, timbwolf, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Timber Wolf (0154013, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // MV4333/1, (no data) +GAME( 2002, topshta6, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Top Shot (30123211, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 714, C - 16/12/02 +GAME( 2000, torgods, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Torch of the Gods (10000411, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 602/19, B - 09/08/00 +GAME( 2001, toprdice, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Touch of Paradice (20007511, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 650/2, A - 24/04/01 +GAME( 200?, trsking, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Treasure King (0152570, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // MV4268, (no data) +GAME( 2006, turtreas, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Turtle Treasure (10234711, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 819/1, A - 06/10/06 +GAME( 2002, venetian, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Venetian Nights (1J008911, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // JB016/1, D - 05/08/02 +GAME( 2004, venice, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Venice (0151355, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // JB016/20, F - 07/06/04 +GAME( 2009, werewild, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Werewolf Wild (10288711, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 939, A - 03/12/09 +GAME( 2002, whalecsh, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Whales of Cash (20155711, Malaysia)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 695, A - 14/06/02 +GAME( 2003, whalecshu,whalecsh, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Whales of Cash (0451311, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // MV4174, A - 03/31/03 +GAME( 2005, whalecshua,whalecsh, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Whales of Cash (0451346, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // MV4214, B - 01/14/05 +GAME( 2004, wheregld, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Where's The Gold (10124811, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 756, B - 26/02/04 +GAME( 2004, wheregldsp,wheregld, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Where's The Gold (10124811, NSW/ACT, Show Program)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 756, B - 26/02/04 +GAME( 2004, wheregldm,wheregld, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Where's the Gold (20177111, Malaysia)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 756, C - 17/06/04 +GAME( 2003, whtwater, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "White Water (0151075, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // US054, A - 4/11/03 +GAME( 2006, wikwin2, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Wicked Winnings II - Power Pay (10214011, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 796, A - 28/02/06 +GAME( 2002, wldafr, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Wild Africa - Millioniser (0351083, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // MV4076, D - 5/08/02 +GAME( 2006, wldcata6, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Wild Cats (10237511, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 811, B - 20/06/06 +GAME( 2003, wldgoos, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Wild Goose (20131911, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 732, B - 02/06/03 +GAME( 2009, wgorilla, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Wild Gorilla - Power Pay (20279811, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // JB108/2, B - 19/06/09 +GAME( 2006, wldpanda, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Wild Panda (20218411, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 800, E - 07/08/06 +GAME( 2004, wldpanth, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Wild Panthers - Li'l Lucy (0651310, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // MV4187, D- 01/15/04 +GAME( 2006, wldstall, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Wild Stallion (10230811, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 805, B - 12/09/06 +GAME( 2007, wtepee, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Wild Tepee - Power Pay (10230211, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 820, H - 20/04/07 +GAME( 2006, wwaratah, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Wild Waratah (10215911, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 811, A - 14/02/06 +GAME( 2006, wwaratahsp, wwaratah, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Wild Waratah (10215911, NSW/ACT, Show Program)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 811, A - 14/02/06 +GAME( 2002, wways, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Wild Ways (10106911, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 698, B - 19/06/02 +GAME( 2003, wwaysm, wways, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Wild Ways (10130111, Malaysia)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 698/1, A - 25/02/03 +GAME( 2005, wingoly, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Wings Over Olympus (0252529, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // MV4237/1, A - 03/07/05 +GAME( 2003, wzwaysll, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Wizard Ways - Lady Luck (20139111, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 702, H - 30/06/03 +GAME( 2003, zorroa6, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Zorro (30130611, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 743, B - 5/09/03 +GAME( 2005, zorroa6u, aristmk6, aristmk6, aristmk6, aristmk6_state, 0, ROT0, "Aristocrat", "Zorro (0151372, US)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // MV4212, F - 05/13/05 diff --git a/src/mame/drivers/arkanoid.cpp b/src/mame/drivers/arkanoid.cpp index ad06d8bea83..408e038bb8c 100644 --- a/src/mame/drivers/arkanoid.cpp +++ b/src/mame/drivers/arkanoid.cpp @@ -1335,7 +1335,7 @@ Pixel clock: 3 MHz = 192 HTotal, assuming it's 6 MHz #define ARKANOID_VBEND 16 #define ARKANOID_VBSTART 240 -static MACHINE_CONFIG_START( arkanoid, arkanoid_state ) +static MACHINE_CONFIG_START( arkanoid ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_12MHz/2) /* verified on pcb */ @@ -1390,7 +1390,7 @@ static MACHINE_CONFIG_DERIVED( bootleg, arkanoid ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( hexa, arkanoid_state ) +static MACHINE_CONFIG_START( hexa ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_12MHz/2) /* Imported from arkanoid - correct? */ @@ -1431,7 +1431,7 @@ static MACHINE_CONFIG_DERIVED( hexaa, hexa ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( brixian, arkanoid_state ) +static MACHINE_CONFIG_START( brixian ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_12MHz/2) @@ -2192,34 +2192,34 @@ DRIVER_INIT_MEMBER(arkanoid_state,brixian) /* Game Drivers */ // original sets of Arkanoid -// YEAR, NAME, PARENT, MACHINE, INPUT, STATE, INIT, MONITOR,COMPANY,FULLNAME,FLAGS -GAME( 1986, arkanoid, 0, arkanoid, arkanoid, driver_device, 0, ROT90, "Taito Corporation Japan", "Arkanoid (World, older)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, arkanoidu, arkanoid, arkanoid, arkanoid, driver_device, 0, ROT90, "Taito America Corporation (Romstar license)", "Arkanoid (US, newer)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, arkanoiduo, arkanoid, arkanoid, arkanoid, driver_device, 0, ROT90, "Taito America Corporation (Romstar license)", "Arkanoid (US, older)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, arkanoidj, arkanoid, arkanoid, arkanoidj, driver_device, 0, ROT90, "Taito Corporation", "Arkanoid (Japan, newer)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, arkanoidja, arkanoid, arkanoid, arkanoidj, driver_device, 0, ROT90, "Taito Corporation", "Arkanoid (Japan, newer w/level select)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, arkanoidjb, arkanoid, arkanoid, arkanoidj, driver_device, 0, ROT90, "Taito Corporation", "Arkanoid (Japan, older)", MACHINE_SUPPORTS_SAVE ) +// YEAR, NAME, PARENT, MACHINE, INPUT, STATE, INIT, MONITOR,COMPANY, FULLNAME, FLAGS +GAME( 1986, arkanoid, 0, arkanoid, arkanoid, arkanoid_state, 0, ROT90, "Taito Corporation Japan", "Arkanoid (World, older)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, arkanoidu, arkanoid, arkanoid, arkanoid, arkanoid_state, 0, ROT90, "Taito America Corporation (Romstar license)", "Arkanoid (US, newer)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, arkanoiduo, arkanoid, arkanoid, arkanoid, arkanoid_state, 0, ROT90, "Taito America Corporation (Romstar license)", "Arkanoid (US, older)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, arkanoidj, arkanoid, arkanoid, arkanoidj, arkanoid_state, 0, ROT90, "Taito Corporation", "Arkanoid (Japan, newer)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, arkanoidja, arkanoid, arkanoid, arkanoidj, arkanoid_state, 0, ROT90, "Taito Corporation", "Arkanoid (Japan, newer w/level select)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, arkanoidjb, arkanoid, arkanoid, arkanoidj, arkanoid_state, 0, ROT90, "Taito Corporation", "Arkanoid (Japan, older)", MACHINE_SUPPORTS_SAVE ) // bootlegs of Arkanoid -GAME( 1986, arkanoidjbl, arkanoid, p3mcu, arkanoidj, driver_device, 0, ROT90, "bootleg", "Arkanoid (bootleg with MCU, set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, arkanoidjbl2,arkanoid, p3mcu, arkanoidj, driver_device, 0, ROT90, "bootleg (Beta)", "Arkanoid (bootleg with MCU, set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, ark1ball, arkanoid, p3mcu, ark1ball, driver_device, 0, ROT90, "bootleg", "Arkanoid (bootleg with MCU, harder)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, arkangc, arkanoid, bootleg, arkangc, arkanoid_state, arkangc, ROT90, "bootleg (Game Corporation)", "Arkanoid (Game Corporation bootleg, set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, arkangc2, arkanoid, bootleg, arkangc2, arkanoid_state, arkangc2, ROT90, "bootleg (Game Corporation)", "Arkanoid (Game Corporation bootleg, set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, arkblock, arkanoid, bootleg, arkangc, arkanoid_state, arkblock, ROT90, "bootleg (Game Corporation)", "Block (Game Corporation bootleg, set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, arkbloc2, arkanoid, bootleg, arkangc, arkanoid_state, arkbloc2, ROT90, "bootleg (Game Corporation)", "Block (Game Corporation bootleg, set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, arkbloc3, arkanoid, bootleg, block2, arkanoid_state, block2, ROT90, "bootleg (Game Corporation)", "Block (Game Corporation bootleg, set 3)", MACHINE_SUPPORTS_SAVE ) // Both these sets (arkblock3, block2) have an extra unknown rom -GAME( 1986, block2, arkanoid, bootleg, block2, arkanoid_state, block2, ROT90, "bootleg (S.P.A. Co.)", "Block 2 (S.P.A. Co. bootleg)", MACHINE_SUPPORTS_SAVE ) // and scrambled gfx roms with 'space invader' themed gfx -GAME( 1986, arkgcbl, arkanoid, bootleg, arkgcbl, arkanoid_state, arkgcbl, ROT90, "bootleg", "Arkanoid (bootleg on Block hardware, set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, arkgcbla, arkanoid, bootleg, arkgcbl, arkanoid_state, arkgcbl, ROT90, "bootleg", "Arkanoid (bootleg on Block hardware, set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, paddle2, arkanoid, bootleg, paddle2, arkanoid_state, paddle2, ROT90, "bootleg", "Paddle 2 (bootleg on Block hardware)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, arkatayt, arkanoid, bootleg, arkatayt, driver_device, 0, ROT90, "bootleg (Tayto)", "Arkanoid (Tayto bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, arktayt2, arkanoid, bootleg, arktayt2, driver_device, 0, ROT90, "bootleg (Tayto)", "Arkanoid (Tayto bootleg, harder)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, arkanoidjbl, arkanoid, p3mcu, arkanoidj, arkanoid_state, 0, ROT90, "bootleg", "Arkanoid (bootleg with MCU, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, arkanoidjbl2,arkanoid, p3mcu, arkanoidj, arkanoid_state, 0, ROT90, "bootleg (Beta)", "Arkanoid (bootleg with MCU, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, ark1ball, arkanoid, p3mcu, ark1ball, arkanoid_state, 0, ROT90, "bootleg", "Arkanoid (bootleg with MCU, harder)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, arkangc, arkanoid, bootleg, arkangc, arkanoid_state, arkangc, ROT90, "bootleg (Game Corporation)", "Arkanoid (Game Corporation bootleg, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, arkangc2, arkanoid, bootleg, arkangc2, arkanoid_state, arkangc2, ROT90, "bootleg (Game Corporation)", "Arkanoid (Game Corporation bootleg, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, arkblock, arkanoid, bootleg, arkangc, arkanoid_state, arkblock, ROT90, "bootleg (Game Corporation)", "Block (Game Corporation bootleg, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, arkbloc2, arkanoid, bootleg, arkangc, arkanoid_state, arkbloc2, ROT90, "bootleg (Game Corporation)", "Block (Game Corporation bootleg, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, arkbloc3, arkanoid, bootleg, block2, arkanoid_state, block2, ROT90, "bootleg (Game Corporation)", "Block (Game Corporation bootleg, set 3)", MACHINE_SUPPORTS_SAVE ) // Both these sets (arkblock3, block2) have an extra unknown rom +GAME( 1986, block2, arkanoid, bootleg, block2, arkanoid_state, block2, ROT90, "bootleg (S.P.A. Co.)", "Block 2 (S.P.A. Co. bootleg)", MACHINE_SUPPORTS_SAVE ) // and scrambled gfx roms with 'space invader' themed gfx +GAME( 1986, arkgcbl, arkanoid, bootleg, arkgcbl, arkanoid_state, arkgcbl, ROT90, "bootleg", "Arkanoid (bootleg on Block hardware, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, arkgcbla, arkanoid, bootleg, arkgcbl, arkanoid_state, arkgcbl, ROT90, "bootleg", "Arkanoid (bootleg on Block hardware, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, paddle2, arkanoid, bootleg, paddle2, arkanoid_state, paddle2, ROT90, "bootleg", "Paddle 2 (bootleg on Block hardware)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, arkatayt, arkanoid, bootleg, arkatayt, arkanoid_state, 0, ROT90, "bootleg (Tayto)", "Arkanoid (Tayto bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, arktayt2, arkanoid, bootleg, arktayt2, arkanoid_state, 0, ROT90, "bootleg (Tayto)", "Arkanoid (Tayto bootleg, harder)", MACHINE_SUPPORTS_SAVE ) // Other games -GAME( 1987, arkatour, 0, arkanoid, arkanoid, driver_device, 0, ROT90, "Taito America Corporation (Romstar license)", "Tournament Arkanoid (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, arkatour, 0, arkanoid, arkanoid, arkanoid_state, 0, ROT90, "Taito America Corporation (Romstar license)", "Tournament Arkanoid (US)", MACHINE_SUPPORTS_SAVE ) -GAME( 19??, tetrsark, 0, bootleg, tetrsark, arkanoid_state, tetrsark, ROT0, "D.R. Korea", "Tetris (D.R. Korea)", MACHINE_SUPPORTS_SAVE ) +GAME( 19??, tetrsark, 0, bootleg, tetrsark, arkanoid_state, tetrsark, ROT0, "D.R. Korea", "Tetris (D.R. Korea)", MACHINE_SUPPORTS_SAVE ) -GAME( 199?, hexa, 0, hexa, hexa, arkanoid_state, hexa, ROT0, "D.R. Korea", "Hexa", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 199?, hexaa, hexa, hexaa, hexa, arkanoid_state, hexaa, ROT0, "D.R. Korea", "Hexa (with 2xZ80, protected)", MACHINE_NOT_WORKING ) +GAME( 199?, hexa, 0, hexa, hexa, arkanoid_state, hexa, ROT0, "D.R. Korea", "Hexa", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 199?, hexaa, hexa, hexaa, hexa, arkanoid_state, hexaa, ROT0, "D.R. Korea", "Hexa (with 2xZ80, protected)", MACHINE_NOT_WORKING ) -GAME( 1993, brixian, 0, brixian, brixian, arkanoid_state, brixian, ROT0, "Cheil Computer System", "Brixian", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, brixian, 0, brixian, brixian, arkanoid_state, brixian, ROT0, "Cheil Computer System", "Brixian", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/armedf.cpp b/src/mame/drivers/armedf.cpp index c749e239d40..4b98a37cd28 100644 --- a/src/mame/drivers/armedf.cpp +++ b/src/mame/drivers/armedf.cpp @@ -1257,7 +1257,7 @@ static MACHINE_CONFIG_FRAGMENT( terraf_sound ) MCFG_SOUND_ROUTE_EX(0, "dac2", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac2", -1.0, DAC_VREF_NEG_INPUT) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( terraf, armedf_state ) +static MACHINE_CONFIG_START( terraf ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz/2) // 8mhz? @@ -1292,7 +1292,7 @@ static MACHINE_CONFIG_START( terraf, armedf_state ) MCFG_FRAGMENT_ADD(terraf_sound) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( terrafjb, armedf_state ) +static MACHINE_CONFIG_START( terrafjb ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz/2) // 8mhz @@ -1348,7 +1348,7 @@ static MACHINE_CONFIG_DERIVED( terrafb, terraf ) MCFG_DEVICE_REMOVE("nb1414m4") MACHINE_CONFIG_END -static MACHINE_CONFIG_START( kozure, armedf_state ) +static MACHINE_CONFIG_START( kozure ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz/2) // 8mhz @@ -1382,7 +1382,7 @@ static MACHINE_CONFIG_START( kozure, armedf_state ) MCFG_FRAGMENT_ADD(terraf_sound) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( armedf, armedf_state ) +static MACHINE_CONFIG_START( armedf ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz/2) // 8mhz @@ -1430,7 +1430,7 @@ static MACHINE_CONFIG_START( armedf, armedf_state ) MCFG_SOUND_ROUTE_EX(0, "dac2", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac2", -1.0, DAC_VREF_NEG_INPUT) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( cclimbr2, armedf_state ) +static MACHINE_CONFIG_START( cclimbr2 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz/2) // 8mhz @@ -1480,7 +1480,7 @@ static MACHINE_CONFIG_START( cclimbr2, armedf_state ) MCFG_SOUND_ROUTE_EX(0, "dac2", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac2", -1.0, DAC_VREF_NEG_INPUT) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( legion, armedf_state ) +static MACHINE_CONFIG_START( legion ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz/2) // 8mhz @@ -1530,7 +1530,7 @@ static MACHINE_CONFIG_START( legion, armedf_state ) MCFG_SOUND_ROUTE_EX(0, "dac2", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac2", -1.0, DAC_VREF_NEG_INPUT) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( legionjb, armedf_state ) +static MACHINE_CONFIG_START( legionjb ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz/2) // 8mhz @@ -1578,7 +1578,7 @@ static MACHINE_CONFIG_START( legionjb, armedf_state ) MCFG_SOUND_ROUTE_EX(0, "dac2", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac2", -1.0, DAC_VREF_NEG_INPUT) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( bigfghtr, bigfghtr_state ) +static MACHINE_CONFIG_START( bigfghtr ) MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz/2) // verified MCFG_CPU_PROGRAM_MAP(bigfghtr_map) @@ -2247,5 +2247,5 @@ GAME( 1988, cclimbr2a,cclimbr2, cclimbr2, cclimbr2, armedf_state, cclimbr2, RO GAME( 1988, armedf, 0, armedf, armedf, armedf_state, armedf, ROT270, "Nichibutsu", "Armed Formation", MACHINE_SUPPORTS_SAVE ) GAME( 1988, armedff, armedf, armedf, armedf, armedf_state, armedf, ROT270, "Nichibutsu (Fillmore license)", "Armed Formation (Fillmore license)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, skyrobo, 0, bigfghtr, bigfghtr, armedf_state, armedf, ROT0, "Nichibutsu", "Sky Robo", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, bigfghtr, skyrobo, bigfghtr, bigfghtr, armedf_state, armedf, ROT0, "Nichibutsu", "Tatakae! Big Fighter (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, skyrobo, 0, bigfghtr, bigfghtr, bigfghtr_state, armedf, ROT0, "Nichibutsu", "Sky Robo", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, bigfghtr, skyrobo, bigfghtr, bigfghtr, bigfghtr_state, armedf, ROT0, "Nichibutsu", "Tatakae! Big Fighter (Japan)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/arsystems.cpp b/src/mame/drivers/arsystems.cpp index 1462b3a770e..86b05f5e895 100644 --- a/src/mame/drivers/arsystems.cpp +++ b/src/mame/drivers/arsystems.cpp @@ -288,7 +288,7 @@ INPUT_PORTS_END * *************************************/ -static MACHINE_CONFIG_START( arcadia, arcadia_amiga_state ) +static MACHINE_CONFIG_START( arcadia ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, amiga_state::CLK_7M_NTSC) @@ -975,43 +975,43 @@ DRIVER_INIT_MEMBER(arcadia_amiga_state,argh) { DRIVER_INIT_CALL(arcadia); generi *************************************/ /* BIOS */ -GAME( 1988, ar_bios, 0, arcadia, arcadia, arcadia_amiga_state, arcadia, ROT0, "Arcadia Systems", "Arcadia System BIOS", MACHINE_IS_BIOS_ROOT ) +GAME( 1988, ar_bios, 0, arcadia, arcadia, arcadia_amiga_state, arcadia, ROT0, "Arcadia Systems", "Arcadia System BIOS", MACHINE_IS_BIOS_ROOT ) -GAME( 1988, ar_blast, ar_bios, arcadia, arcadia, arcadia_amiga_state, blast, ROT0, "Arcadia Systems", "Blastaball (Arcadia, V 2.1)", 0 ) +GAME( 1988, ar_blast, ar_bios, arcadia, arcadia, arcadia_amiga_state, blast, ROT0, "Arcadia Systems", "Blastaball (Arcadia, V 2.1)", 0 ) -GAME( 1988, ar_airh, ar_bios, arcadia, arcadia, arcadia_amiga_state, airh, ROT0, "Arcadia Systems", "SportTime Table Hockey (Arcadia, set 1, V 2.1)", 0 ) -GAME( 1988, ar_airh2, ar_airh, arcadia, arcadia, arcadia_amiga_state, airh, ROT0, "Arcadia Systems", "SportTime Table Hockey (Arcadia, set 2)", 0 ) +GAME( 1988, ar_airh, ar_bios, arcadia, arcadia, arcadia_amiga_state, airh, ROT0, "Arcadia Systems", "SportTime Table Hockey (Arcadia, set 1, V 2.1)", 0 ) +GAME( 1988, ar_airh2, ar_airh, arcadia, arcadia, arcadia_amiga_state, airh, ROT0, "Arcadia Systems", "SportTime Table Hockey (Arcadia, set 2)", 0 ) -GAME( 1988, ar_bowl, ar_bios, arcadia, arcadia, arcadia_amiga_state, bowl, ROT0, "Arcadia Systems", "SportTime Bowling (Arcadia, V 2.1)", 0 ) +GAME( 1988, ar_bowl, ar_bios, arcadia, arcadia, arcadia_amiga_state, bowl, ROT0, "Arcadia Systems", "SportTime Bowling (Arcadia, V 2.1)", 0 ) -GAME( 1987, ar_dart, ar_bios, arcadia, arcadia, arcadia_amiga_state, dart, ROT0, "Arcadia Systems", "World Darts (Arcadia, set 1, V 2.1)", 0 ) -GAME( 1987, ar_dart2, ar_dart, arcadia, arcadia, arcadia_amiga_state, dart, ROT0, "Arcadia Systems", "World Darts (Arcadia, set 2)", MACHINE_NOT_WORKING ) // bad dump +GAME( 1987, ar_dart, ar_bios, arcadia, arcadia, arcadia_amiga_state, dart, ROT0, "Arcadia Systems", "World Darts (Arcadia, set 1, V 2.1)", 0 ) +GAME( 1987, ar_dart2, ar_dart, arcadia, arcadia, arcadia_amiga_state, dart, ROT0, "Arcadia Systems", "World Darts (Arcadia, set 2)", MACHINE_NOT_WORKING ) // bad dump GAME( 1988, ar_fast, ar_bios, arcadia, arcadia, arcadia_amiga_state, arcadia, ROT0, "Arcadia Systems", "Magic Johnson's Fast Break (Arcadia, V 2.8)", 0 ) GAME( 1988, ar_fasta, ar_fast, arcadia, arcadia, arcadia_amiga_state, arcadia, ROT0, "Arcadia Systems", "Magic Johnson's Fast Break (Arcadia, V 2.7)", 0 ) -GAME( 1988, ar_ldrb, ar_bios, arcadia, arcadia, arcadia_amiga_state, ldrb, ROT0, "Arcadia Systems", "Leader Board (Arcadia, set 1, V 2.5)", 0 ) +GAME( 1988, ar_ldrb, ar_bios, arcadia, arcadia, arcadia_amiga_state, ldrb, ROT0, "Arcadia Systems", "Leader Board (Arcadia, set 1, V 2.5)", 0 ) GAME( 1988, ar_ldrba, ar_ldrb, arcadia, arcadia, arcadia_amiga_state, arcadia, ROT0, "Arcadia Systems", "Leader Board (Arcadia, set 2, V 2.4)", 0 ) GAME( 1988, ar_ldrbb, ar_ldrb, arcadia, arcadia, arcadia_amiga_state, arcadia, ROT0, "Arcadia Systems", "Leader Board (Arcadia, set 3)", 0 ) -GAME( 1987, ar_ninj, ar_bios, arcadia, arcadia, arcadia_amiga_state, ninj, ROT0, "Arcadia Systems", "Ninja Mission (Arcadia, set 1, V 2.5)", 0 ) -GAME( 1987, ar_ninj2, ar_ninj, arcadia, arcadia, arcadia_amiga_state, ninj, ROT0, "Arcadia Systems", "Ninja Mission (Arcadia, set 2)", 0 ) +GAME( 1987, ar_ninj, ar_bios, arcadia, arcadia, arcadia_amiga_state, ninj, ROT0, "Arcadia Systems", "Ninja Mission (Arcadia, set 1, V 2.5)", 0 ) +GAME( 1987, ar_ninj2, ar_ninj, arcadia, arcadia, arcadia_amiga_state, ninj, ROT0, "Arcadia Systems", "Ninja Mission (Arcadia, set 2)", 0 ) -GAME( 1988, ar_rdwr, ar_bios, arcadia, arcadia, arcadia_amiga_state, rdwr, ROT0, "Arcadia Systems", "RoadWars (Arcadia, V 2.3)", 0 ) +GAME( 1988, ar_rdwr, ar_bios, arcadia, arcadia, arcadia_amiga_state, rdwr, ROT0, "Arcadia Systems", "RoadWars (Arcadia, V 2.3)", 0 ) -GAME( 1988, ar_sdwr, ar_bios, arcadia, arcadia, arcadia_amiga_state, sdwr, ROT0, "Arcadia Systems", "Sidewinder (Arcadia, set 1, V 2.1)", 0 ) -GAME( 1988, ar_sdwr2, ar_sdwr, arcadia, arcadia, arcadia_amiga_state, sdwr, ROT0, "Arcadia Systems", "Sidewinder (Arcadia, set 2)", 0 ) +GAME( 1988, ar_sdwr, ar_bios, arcadia, arcadia, arcadia_amiga_state, sdwr, ROT0, "Arcadia Systems", "Sidewinder (Arcadia, set 1, V 2.1)", 0 ) +GAME( 1988, ar_sdwr2, ar_sdwr, arcadia, arcadia, arcadia_amiga_state, sdwr, ROT0, "Arcadia Systems", "Sidewinder (Arcadia, set 2)", 0 ) -GAME( 1989, ar_socc, ar_bios, arcadia, arcadia, arcadia_amiga_state, socc, ROT0, "Arcadia Systems", "World Trophy Soccer (Arcadia, V 3.0)", 0 ) +GAME( 1989, ar_socc, ar_bios, arcadia, arcadia, arcadia_amiga_state, socc, ROT0, "Arcadia Systems", "World Trophy Soccer (Arcadia, V 3.0)", 0 ) GAME( 1990, ar_spot, ar_bios, arcadia, arcadia, arcadia_amiga_state, arcadia, ROT0, "Arcadia Systems", "Spot (Arcadia, V 2.0)", 0 ) -GAME( 1987, ar_sprg, ar_bios, arcadia, arcadia, arcadia_amiga_state, sprg, ROT0, "Arcadia Systems", "Space Ranger (Arcadia, V 2.0)", 0 ) +GAME( 1987, ar_sprg, ar_bios, arcadia, arcadia, arcadia_amiga_state, sprg, ROT0, "Arcadia Systems", "Space Ranger (Arcadia, V 2.0)", 0 ) -GAME( 1988, ar_xeon, ar_bios, arcadia, arcadia, arcadia_amiga_state, xeon, ROT0, "Arcadia Systems", "Xenon (Arcadia, V 2.3)", 0 ) +GAME( 1988, ar_xeon, ar_bios, arcadia, arcadia, arcadia_amiga_state, xeon, ROT0, "Arcadia Systems", "Xenon (Arcadia, V 2.3)", 0 ) -GAME( 1988, ar_pm, ar_bios, arcadia, arcadia, arcadia_amiga_state, pm, ROT0, "Arcadia Systems", "Pharaohs Match (Arcadia)", 0 ) +GAME( 1988, ar_pm, ar_bios, arcadia, arcadia, arcadia_amiga_state, pm, ROT0, "Arcadia Systems", "Pharaohs Match (Arcadia)", 0 ) -GAME( 1988, ar_dlta, ar_bios, arcadia, arcadia, arcadia_amiga_state, dlta, ROT0, "Arcadia Systems", "Delta Command (Arcadia)", 0 ) +GAME( 1988, ar_dlta, ar_bios, arcadia, arcadia, arcadia_amiga_state, dlta, ROT0, "Arcadia Systems", "Delta Command (Arcadia)", 0 ) -GAME( 1988, ar_argh, ar_bios, argh, arcadia, arcadia_amiga_state, argh, ROT0, "Arcadia Systems", "Aaargh (Arcadia)", 0 ) +GAME( 1988, ar_argh, ar_bios, argh, arcadia, arcadia_amiga_state, argh, ROT0, "Arcadia Systems", "Aaargh (Arcadia)", 0 ) diff --git a/src/mame/drivers/artmagic.cpp b/src/mame/drivers/artmagic.cpp index f28e83c0d47..9d0b820e6da 100644 --- a/src/mame/drivers/artmagic.cpp +++ b/src/mame/drivers/artmagic.cpp @@ -813,7 +813,7 @@ INPUT_PORTS_END * *************************************/ -static MACHINE_CONFIG_START( artmagic, artmagic_state ) +static MACHINE_CONFIG_START( artmagic ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, MASTER_CLOCK_25MHz/2) @@ -843,7 +843,7 @@ static MACHINE_CONFIG_START( artmagic, artmagic_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", MASTER_CLOCK_40MHz/3/10, OKIM6295_PIN7_LOW) + MCFG_OKIM6295_ADD("oki", MASTER_CLOCK_40MHz/3/10, PIN7_LOW) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.65) MACHINE_CONFIG_END diff --git a/src/mame/drivers/ashnojoe.cpp b/src/mame/drivers/ashnojoe.cpp index bdccb3808de..6e8b9b6b2f8 100644 --- a/src/mame/drivers/ashnojoe.cpp +++ b/src/mame/drivers/ashnojoe.cpp @@ -301,7 +301,7 @@ void ashnojoe_state::machine_reset() } -static MACHINE_CONFIG_START( ashnojoe, ashnojoe_state ) +static MACHINE_CONFIG_START( ashnojoe ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 8000000) @@ -339,7 +339,7 @@ static MACHINE_CONFIG_START( ashnojoe, ashnojoe_state ) MCFG_SOUND_ADD("msm", MSM5205, 384000) MCFG_MSM5205_VCLK_CB(WRITELINE(ashnojoe_state, ashnojoe_vclk_cb)) - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S48_4B) + MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END diff --git a/src/mame/drivers/asst128.cpp b/src/mame/drivers/asst128.cpp index 2838f4e0e99..67f2c7b5d01 100644 --- a/src/mame/drivers/asst128.cpp +++ b/src/mame/drivers/asst128.cpp @@ -2,10 +2,15 @@ // copyright-holders:Sergey Svishchev #include "emu.h" #include "machine/genpc.h" + +#include "cpu/i86/i86.h" +#include "bus/pc_joy/pc_joy.h" #include "bus/pc_kbd/keyboards.h" #include "machine/pc_fdc.h" + #include "formats/asst128_dsk.h" + extern const device_type ASST128_MOTHERBOARD; class asst128_mb_device : public ibm5150_mb_device @@ -13,7 +18,9 @@ class asst128_mb_device : public ibm5150_mb_device public: // construction/destruction asst128_mb_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : ibm5150_mb_device(mconfig, ASST128_MOTHERBOARD, "ASST128_MOTHERBOARD", tag, owner, clock, "asst128_mb", __FILE__) { } + : ibm5150_mb_device(mconfig, ASST128_MOTHERBOARD, tag, owner, clock) + { + } DECLARE_ADDRESS_MAP(map, 8); }; @@ -26,7 +33,7 @@ DEVICE_ADDRESS_MAP_START( map, 8, asst128_mb_device ) AM_RANGE(0x00a0, 0x00a1) AM_WRITE(nmi_enable_w) ADDRESS_MAP_END -const device_type ASST128_MOTHERBOARD = device_creator; +DEFINE_DEVICE_TYPE(ASST128_MOTHERBOARD, asst128_mb_device, "asst128_mb", "ASST128_MOTHERBOARD") class asst128_state : public driver_device { @@ -85,7 +92,7 @@ static DEVICE_INPUT_DEFAULTS_START( asst128 ) DEVICE_INPUT_DEFAULTS("DSW0", 0x30, 0x20) DEVICE_INPUT_DEFAULTS_END -static MACHINE_CONFIG_START( asst128, asst128_state ) +static MACHINE_CONFIG_START( asst128 ) MCFG_CPU_ADD("maincpu", I8086, 4772720) MCFG_CPU_PROGRAM_MAP(asst128_map) MCFG_CPU_IO_MAP(asst128_io) @@ -126,5 +133,5 @@ ROM_START( asst128 ) ROM_LOAD( "asst128cg.bin", 0, 0x2000, NO_DUMP ) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ -COMP( 198?, asst128, ibm5150, 0, asst128, 0, driver_device, 0, "Schetmash", "Assistent 128", MACHINE_NOT_WORKING) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 198?, asst128, ibm5150, 0, asst128, 0, asst128_state, 0, "Schetmash", "Assistent 128", MACHINE_NOT_WORKING) diff --git a/src/mame/drivers/asterix.cpp b/src/mame/drivers/asterix.cpp index b6f0d8dd47c..44591ecad2d 100644 --- a/src/mame/drivers/asterix.cpp +++ b/src/mame/drivers/asterix.cpp @@ -257,7 +257,7 @@ void asterix_state::machine_reset() } } -static MACHINE_CONFIG_START( asterix, asterix_state ) +static MACHINE_CONFIG_START( asterix ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_24MHz/2) // 12MHz diff --git a/src/mame/drivers/asteroid.cpp b/src/mame/drivers/asteroid.cpp index b3dc69b8303..27f846467f9 100644 --- a/src/mame/drivers/asteroid.cpp +++ b/src/mame/drivers/asteroid.cpp @@ -644,7 +644,7 @@ INPUT_PORTS_END * *************************************/ -static MACHINE_CONFIG_START( asteroid, asteroid_state ) +static MACHINE_CONFIG_START( asteroid ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, MASTER_CLOCK/8) @@ -1042,22 +1042,22 @@ DRIVER_INIT_MEMBER(asteroid_state,asterock) * *************************************/ -GAME( 1979, asteroid, 0, asteroid, asteroid, driver_device, 0, ROT0, "Atari", "Asteroids (rev 4)", MACHINE_SUPPORTS_SAVE ) -GAME( 1979, asteroid2, asteroid, asteroid, asteroid, driver_device, 0, ROT0, "Atari", "Asteroids (rev 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1979, asteroid1, asteroid, asteroid, asteroid, driver_device, 0, ROT0, "Atari", "Asteroids (rev 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1979, asteroid, 0, asteroid, asteroid, asteroid_state, 0, ROT0, "Atari", "Asteroids (rev 4)", MACHINE_SUPPORTS_SAVE ) +GAME( 1979, asteroid2, asteroid, asteroid, asteroid, asteroid_state, 0, ROT0, "Atari", "Asteroids (rev 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1979, asteroid1, asteroid, asteroid, asteroid, asteroid_state, 0, ROT0, "Atari", "Asteroids (rev 1)", MACHINE_SUPPORTS_SAVE ) GAME( 1979, asteroidb, asteroid, asteroid, asteroidb, asteroid_state, asteroidb, ROT0, "bootleg", "Asteroids (bootleg on Lunar Lander hardware)", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, spcrocks, asteroid, asteroid, aerolitos, driver_device, 0, ROT0, "Atari (J.Estevez license)", "Space Rocks (Spanish clone of Asteroids)", MACHINE_SUPPORTS_SAVE ) // Space Rocks seems to be a legit set. Cabinet registered to 'J.Estevez (Barcelona). -GAME( 1980, aerolitos, asteroid, asteroid, aerolitos, driver_device, 0, ROT0, "bootleg (Rodmar Elec.)","Aerolitos (Spanish bootleg of Asteroids)", MACHINE_SUPPORTS_SAVE ) // 'Aerolitos' appears on the cabinet, this was distributed in Spain, the Spanish text is different to that contained in the original version (corrected) +GAME( 1981, spcrocks, asteroid, asteroid, aerolitos, asteroid_state, 0, ROT0, "Atari (J.Estevez license)", "Space Rocks (Spanish clone of Asteroids)", MACHINE_SUPPORTS_SAVE ) // Space Rocks seems to be a legit set. Cabinet registered to 'J.Estevez (Barcelona). +GAME( 1980, aerolitos, asteroid, asteroid, aerolitos, asteroid_state, 0, ROT0, "bootleg (Rodmar Elec.)","Aerolitos (Spanish bootleg of Asteroids)", MACHINE_SUPPORTS_SAVE ) // 'Aerolitos' appears on the cabinet, this was distributed in Spain, the Spanish text is different to that contained in the original version (corrected) GAME( 1979, asterock, asteroid, asterock, asterock, asteroid_state, asterock, ROT0, "bootleg (Sidam)", "Asterock (Sidam bootleg of Asteroids)", MACHINE_SUPPORTS_SAVE ) GAME( 1979, asterockv, asteroid, asterock, asterock, asteroid_state, asterock, ROT0, "bootleg (Videotron)", "Asterock (Videotron bootleg of Asteroids)", MACHINE_SUPPORTS_SAVE ) -GAME( 1979, meteorts, asteroid, asteroid, asteroid, driver_device, 0, ROT0, "bootleg (VGG)", "Meteorites (bootleg of Asteroids)", MACHINE_SUPPORTS_SAVE ) -GAME( 1979, meteorho, asteroid, asteroid, asteroid, driver_device, 0, ROT0, "bootleg (Hoei)", "Meteor (bootleg of Asteroids)", MACHINE_SUPPORTS_SAVE ) -GAME( 1979, hyperspc, asteroid, asteroid, asteroid, driver_device, 0, ROT0, "bootleg (Rumiano)", "Hyperspace (bootleg of Asteroids)", MACHINE_SUPPORTS_SAVE ) +GAME( 1979, meteorts, asteroid, asteroid, asteroid, asteroid_state, 0, ROT0, "bootleg (VGG)", "Meteorites (bootleg of Asteroids)", MACHINE_SUPPORTS_SAVE ) +GAME( 1979, meteorho, asteroid, asteroid, asteroid, asteroid_state, 0, ROT0, "bootleg (Hoei)", "Meteor (bootleg of Asteroids)", MACHINE_SUPPORTS_SAVE ) +GAME( 1979, hyperspc, asteroid, asteroid, asteroid, asteroid_state, 0, ROT0, "bootleg (Rumiano)", "Hyperspace (bootleg of Asteroids)", MACHINE_SUPPORTS_SAVE ) -GAMEL(1980, astdelux, 0, astdelux, astdelux, driver_device, 0, ROT0, "Atari", "Asteroids Deluxe (rev 3)", MACHINE_SUPPORTS_SAVE, layout_astdelux ) -GAMEL(1980, astdelux2, astdelux, astdelux, astdelux, driver_device, 0, ROT0, "Atari", "Asteroids Deluxe (rev 2)", MACHINE_SUPPORTS_SAVE, layout_astdelux ) -GAMEL(1980, astdelux1, astdelux, astdelux, astdelux, driver_device, 0, ROT0, "Atari", "Asteroids Deluxe (rev 1)", MACHINE_SUPPORTS_SAVE, layout_astdelux ) +GAMEL(1980, astdelux, 0, astdelux, astdelux, asteroid_state, 0, ROT0, "Atari", "Asteroids Deluxe (rev 3)", MACHINE_SUPPORTS_SAVE, layout_astdelux ) +GAMEL(1980, astdelux2, astdelux, astdelux, astdelux, asteroid_state, 0, ROT0, "Atari", "Asteroids Deluxe (rev 2)", MACHINE_SUPPORTS_SAVE, layout_astdelux ) +GAMEL(1980, astdelux1, astdelux, astdelux, astdelux, asteroid_state, 0, ROT0, "Atari", "Asteroids Deluxe (rev 1)", MACHINE_SUPPORTS_SAVE, layout_astdelux ) -GAME( 1979, llander, 0, llander, llander, driver_device, 0, ROT0, "Atari", "Lunar Lander (rev 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1979, llander1, llander, llander, llander1, driver_device, 0, ROT0, "Atari", "Lunar Lander (rev 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1979, llandert, llander, llander, llandert, driver_device, 0, ROT0, "Atari", "Lunar Lander (screen test)", MACHINE_SUPPORTS_SAVE ) // no copyright shown, assume it's an in-house diagnostics romset (PCB came from a seller that has had Atari prototypes in his possession before) +GAME( 1979, llander, 0, llander, llander, asteroid_state, 0, ROT0, "Atari", "Lunar Lander (rev 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1979, llander1, llander, llander, llander1, asteroid_state, 0, ROT0, "Atari", "Lunar Lander (rev 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1979, llandert, llander, llander, llandert, asteroid_state, 0, ROT0, "Atari", "Lunar Lander (screen test)", MACHINE_SUPPORTS_SAVE ) // no copyright shown, assume it's an in-house diagnostics romset (PCB came from a seller that has had Atari prototypes in his possession before) diff --git a/src/mame/drivers/astinvad.cpp b/src/mame/drivers/astinvad.cpp index 74b8fa73aaf..c85fefdadb2 100644 --- a/src/mame/drivers/astinvad.cpp +++ b/src/mame/drivers/astinvad.cpp @@ -652,7 +652,7 @@ static const char *const astinvad_sample_names[] = * *************************************/ -static MACHINE_CONFIG_START( kamikaze, astinvad_state ) +static MACHINE_CONFIG_START( kamikaze ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, MASTER_CLOCK) @@ -703,7 +703,7 @@ static MACHINE_CONFIG_DERIVED( spcking2, kamikaze ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( spaceint, astinvad_state ) +static MACHINE_CONFIG_START( spaceint ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, MASTER_CLOCK) /* a guess */ @@ -847,9 +847,9 @@ DRIVER_INIT_MEMBER(astinvad_state,spcking2) * *************************************/ -GAME( 1980, kamikaze, 0, kamikaze, kamikaze, astinvad_state, kamikaze, ROT270, "Leijac Corporation", "Kamikaze", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1980, astinvad, kamikaze, kamikaze, astinvad, astinvad_state, kamikaze, ROT270, "Leijac Corporation (Stern Electronics license)", "Astro Invader", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1980, kamikaze, 0, kamikaze, kamikaze, astinvad_state, kamikaze, ROT270, "Leijac Corporation", "Kamikaze", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1980, astinvad, kamikaze, kamikaze, astinvad, astinvad_state, kamikaze, ROT270, "Leijac Corporation (Stern Electronics license)", "Astro Invader", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) GAME( 1980?, kosmokil, kamikaze, kamikaze, kamikaze, astinvad_state, kamikaze, ROT270, "bootleg (BEM)", "Kosmo Killer", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // says >BEM< Mi Italy but it looks hacked in, dif revision of game tho. -GAME( 1979, spcking2, 0, spcking2, spcking2, astinvad_state, spcking2, ROT270, "Konami", "Space King 2", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1980, spaceint, 0, spaceint, spaceint, driver_device, 0, ROT90, "Shoei", "Space Intruder", MACHINE_IMPERFECT_SOUND | MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE ) -GAME( 1980, spaceintj,spaceint, spaceint, spaceintj, driver_device, 0, ROT90, "Shoei", "Space Intruder (Japan)", MACHINE_IMPERFECT_SOUND | MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE ) +GAME( 1979, spcking2, 0, spcking2, spcking2, astinvad_state, spcking2, ROT270, "Konami", "Space King 2", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1980, spaceint, 0, spaceint, spaceint, astinvad_state, 0, ROT90, "Shoei", "Space Intruder", MACHINE_IMPERFECT_SOUND | MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE ) +GAME( 1980, spaceintj,spaceint, spaceint, spaceintj, astinvad_state, 0, ROT90, "Shoei", "Space Intruder (Japan)", MACHINE_IMPERFECT_SOUND | MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/astrafr.cpp b/src/mame/drivers/astrafr.cpp index 81ea2d3eb23..6c461868e5c 100644 --- a/src/mame/drivers/astrafr.cpp +++ b/src/mame/drivers/astrafr.cpp @@ -115,8 +115,8 @@ public: } // devices - required_device m_maincpu; - optional_device m_slavecpu; + required_device m_maincpu; + optional_device m_slavecpu; DECLARE_DRIVER_INIT(astradec_sml); DECLARE_DRIVER_INIT(astradec); @@ -300,7 +300,7 @@ MACHINE_START_MEMBER(astrafr_state,astra_2e) } -static MACHINE_CONFIG_START( astrafr_dual, astrafr_state ) +static MACHINE_CONFIG_START( astrafr_dual ) MCFG_CPU_ADD("maincpu", M68340, 16000000) MCFG_CPU_PROGRAM_MAP(astrafr_master_map) @@ -318,7 +318,7 @@ static MACHINE_CONFIG_DERIVED( astrafr_dual_37, astrafr_dual ) MCFG_MACHINE_START_OVERRIDE(astrafr_state, astra_37 ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( astrafr_dual_alt, astrafr_state ) +static MACHINE_CONFIG_START( astrafr_dual_alt ) MCFG_CPU_ADD("maincpu", M68340, 16000000) MCFG_CPU_PROGRAM_MAP(astrafr_master_alt_map) @@ -332,7 +332,7 @@ MACHINE_CONFIG_END -static MACHINE_CONFIG_START( astra_single, astrafr_state ) +static MACHINE_CONFIG_START( astra_single ) MCFG_CPU_ADD("maincpu", M68340, 16000000) MCFG_CPU_PROGRAM_MAP(astra_map) MCFG_MACHINE_START_OVERRIDE(astrafr_state, astra_common ) @@ -355,7 +355,7 @@ MACHINE_START_MEMBER(astrafr_state,astra_57) } -static MACHINE_CONFIG_START( astra_single_alt, astrafr_state ) +static MACHINE_CONFIG_START( astra_single_alt ) MCFG_CPU_ADD("maincpu", M68340, 16000000) MCFG_CPU_PROGRAM_MAP(astra_map) MCFG_MACHINE_START_OVERRIDE(astrafr_state, astra_common ) @@ -2140,202 +2140,202 @@ DRIVER_INIT_MEMBER(astrafr_state,astradec_sml_dual) } // Single games? -GAME( 200?, as_srb, 0 , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Super Ring a Bell (Astra, V004)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_srba, as_srb , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Super Ring a Bell (Astra, V100)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_srbb, as_srb , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Super Ring a Bell (Astra, V101)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_srbc, as_srb , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Super Ring a Bell (Astra, V201)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_srbd, as_srb , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Super Ring a Bell (Astra, V202)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_srbe, as_srb , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Super Ring a Bell (Astra, V203)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_srb, 0 , astra_single, astrafr, astrafr_state, 0, ROT0, "Astra", "Super Ring a Bell (Astra, V004)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_srba, as_srb , astra_single, astrafr, astrafr_state, 0, ROT0, "Astra", "Super Ring a Bell (Astra, V100)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_srbb, as_srb , astra_single, astrafr, astrafr_state, 0, ROT0, "Astra", "Super Ring a Bell (Astra, V101)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_srbc, as_srb , astra_single, astrafr, astrafr_state, 0, ROT0, "Astra", "Super Ring a Bell (Astra, V201)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_srbd, as_srb , astra_single, astrafr, astrafr_state, 0, ROT0, "Astra", "Super Ring a Bell (Astra, V202)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_srbe, as_srb , astra_single, astrafr, astrafr_state, 0, ROT0, "Astra", "Super Ring a Bell (Astra, V203)" , MACHINE_IS_SKELETON_MECHANICAL) // Linked games (single rom per CPU with master/slave?) -GAME( 200?, as_party, 0 , astrafr_dual_2e, astrafr, driver_device, 0, ROT0, "Astra", "Party Time (Astra, V105)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_partya, as_party , astrafr_dual_2e, astrafr, driver_device, 0, ROT0, "Astra", "Party Time (Astra, V110)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_partyb, as_party , astrafr_dual_2e, astrafr, driver_device, 0, ROT0, "Astra", "Party Time (Astra, V112)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_partyc, as_party , astrafr_dual_2e, astrafr, driver_device, 0, ROT0, "Astra", "Party Time (Astra, V206)" ,MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_partyd, as_party , astrafr_dual_37, astrafr, driver_device, 0, ROT0, "Astra", "Party Time (Astra, V401)", MACHINE_IS_SKELETON_MECHANICAL) // significantly different set -GAME( 200?, as_partye, as_party , astrafr_dual_2e, astrafr, driver_device, 0, ROT0, "Astra", "Party Time (Astra, V907)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_partyf, as_party , astrafr_dual_2e, astrafr, driver_device, 0, ROT0, "Astra", "Party Time (Astra, V906)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_party, 0 , astrafr_dual_2e, astrafr, astrafr_state, 0, ROT0, "Astra", "Party Time (Astra, V105)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_partya, as_party, astrafr_dual_2e, astrafr, astrafr_state, 0, ROT0, "Astra", "Party Time (Astra, V110)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_partyb, as_party, astrafr_dual_2e, astrafr, astrafr_state, 0, ROT0, "Astra", "Party Time (Astra, V112)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_partyc, as_party, astrafr_dual_2e, astrafr, astrafr_state, 0, ROT0, "Astra", "Party Time (Astra, V206)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_partyd, as_party, astrafr_dual_37, astrafr, astrafr_state, 0, ROT0, "Astra", "Party Time (Astra, V401)" , MACHINE_IS_SKELETON_MECHANICAL) // significantly different set +GAME( 200?, as_partye, as_party, astrafr_dual_2e, astrafr, astrafr_state, 0, ROT0, "Astra", "Party Time (Astra, V907)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_partyf, as_party, astrafr_dual_2e, astrafr, astrafr_state, 0, ROT0, "Astra", "Party Time (Astra, V906)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_letsp, 0 , astrafr_dual_2e, astrafr, driver_device, 0, ROT0, "Astra", "Let's Party (Astra, V904)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_letsp, 0 , astrafr_dual_2e, astrafr, astrafr_state, 0, ROT0, "Astra", "Let's Party (Astra, V904)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_topsl, 0 , astrafr_dual_2e, astrafr, driver_device, 0, ROT0, "Astra", "Top Slot (Astra, V103)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_topsla, as_topsl , astrafr_dual_2e, astrafr, driver_device, 0, ROT0, "Astra", "Top Slot (Astra, V104)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_topslb, as_topsl , astrafr_dual_2e, astrafr, driver_device, 0, ROT0, "Astra", "Top Slot (Astra, V201)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_topslc, as_topsl , astrafr_dual_2e, astrafr, driver_device, 0, ROT0, "Astra", "Top Slot (Astra, V203)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_topsld, as_topsl , astrafr_dual_2e, astrafr, driver_device, 0, ROT0, "Astra", "Top Slot (Astra, V205)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_topsl, 0 , astrafr_dual_2e, astrafr, astrafr_state, 0, ROT0, "Astra", "Top Slot (Astra, V103)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_topsla, as_topsl, astrafr_dual_2e, astrafr, astrafr_state, 0, ROT0, "Astra", "Top Slot (Astra, V104)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_topslb, as_topsl, astrafr_dual_2e, astrafr, astrafr_state, 0, ROT0, "Astra", "Top Slot (Astra, V201)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_topslc, as_topsl, astrafr_dual_2e, astrafr, astrafr_state, 0, ROT0, "Astra", "Top Slot (Astra, V203)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_topsld, as_topsl, astrafr_dual_2e, astrafr, astrafr_state, 0, ROT0, "Astra", "Top Slot (Astra, V205)" , MACHINE_IS_SKELETON_MECHANICAL) // Other HW? (has u1/u2 pairing) -GAME( 200?, as_bigtm, 0 , astra_single , astrafr, astrafr_state, astradec, ROT0, "Astra", "Big Time (Astra, V003)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_acp, 0 , astra_single , astrafr, astrafr_state, astradec, ROT0, "Astra", "unknown Astra 'ACP' (Astra, V403)", MACHINE_IS_SKELETON_MECHANICAL) // no sound data in here? -GAME( 200?, as_celeb, 0 , astra_single , astrafr, astrafr_state, astradec, ROT0, "Astra", "Celebration (Astra, V100)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_celeba, as_celeb , astra_single , astrafr, astrafr_state, astradec, ROT0, "Astra", "Celebration (Astra, V101)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_celebb, as_celeb , astra_single , astrafr, astrafr_state, astradec, ROT0, "Astra", "Celebration (Astra, V201)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_bigtm, 0 , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Big Time (Astra, V003)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_acp, 0 , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "unknown Astra 'ACP' (Astra, V403)" , MACHINE_IS_SKELETON_MECHANICAL) // no sound data in here? +GAME( 200?, as_celeb, 0 , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Celebration (Astra, V100)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_celeba, as_celeb , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Celebration (Astra, V101)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_celebb, as_celeb , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Celebration (Astra, V201)" , MACHINE_IS_SKELETON_MECHANICAL) // u1/u2 pairing and Linked? -GAME( 200?, as_hc, 0 , astrafr_dual_37 , astrafr, astrafr_state, astradec_dual, ROT0, "Astra", "Hokey Cokey (Astra, V107)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_hca, as_hc , astrafr_dual_37 , astrafr, astrafr_state, astradec_dual, ROT0, "Astra", "Hokey Cokey (Astra, V109)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_hcb, as_hc , astrafr_dual_37 , astrafr, astrafr_state, astradec_dual, ROT0, "Astra", "Hokey Cokey (Astra, V110)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_hcc, as_hc , astrafr_dual_37 , astrafr, astrafr_state, astradec_dual, ROT0, "Astra", "Hokey Cokey (Astra, V111)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_hcd, as_hc , astrafr_dual_37 , astrafr, astrafr_state, astradec_dual, ROT0, "Astra", "Hokey Cokey (Astra, V909)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_hc, 0 , astrafr_dual_37, astrafr, astrafr_state, astradec_dual, ROT0, "Astra", "Hokey Cokey (Astra, V107)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_hca, as_hc , astrafr_dual_37, astrafr, astrafr_state, astradec_dual, ROT0, "Astra", "Hokey Cokey (Astra, V109)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_hcb, as_hc , astrafr_dual_37, astrafr, astrafr_state, astradec_dual, ROT0, "Astra", "Hokey Cokey (Astra, V110)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_hcc, as_hc , astrafr_dual_37, astrafr, astrafr_state, astradec_dual, ROT0, "Astra", "Hokey Cokey (Astra, V111)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_hcd, as_hc , astrafr_dual_37, astrafr, astrafr_state, astradec_dual, ROT0, "Astra", "Hokey Cokey (Astra, V909)" , MACHINE_IS_SKELETON_MECHANICAL) // Non-Astra, same hw? -GAME( 200?, as_cshah, 0 , astra_single_alt_57 , astrafr, astrafr_state, astradec, ROT0, "Lowen", "Cash Ahoi (Lowen, V105)", MACHINE_IS_SKELETON_MECHANICAL) - - -GAME( 200?, as_big10, 0 , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Big 10 (Astra, V500)", MACHINE_IS_SKELETON_MECHANICAL) // BB96 -GAME( 200?, as_big10a, as_big10 , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Big 10 (Astra, V503)", MACHINE_IS_SKELETON_MECHANICAL) // BB96 -GAME( 200?, as_big10b, as_big10 , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Big 10 (Astra, V507)", MACHINE_IS_SKELETON_MECHANICAL) // BB96 -GAME( 200?, as_big10c, as_big10 , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Big 10 (Astra, V601)", MACHINE_IS_SKELETON_MECHANICAL) // BB96 -GAME( 200?, as_big10d, as_big10 , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Big 10 (Astra, V605)", MACHINE_IS_SKELETON_MECHANICAL) // BB96 -GAME( 200?, as_big15, 0 , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Big 15 (Astra, V101)", MACHINE_IS_SKELETON_MECHANICAL) // DL98 -GAME( 200?, as_bigcs, 0 , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Big Cash (Astra, V101)", MACHINE_IS_SKELETON_MECHANICAL) // CF97/CF98 -GAME( 200?, as_bigcsa, as_bigcs , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Big Cash (Astra, V103)", MACHINE_IS_SKELETON_MECHANICAL) // CF97/CF98 - -GAME( 200?, as_bbr, 0 , astra_single_2e, astrafr, driver_device, 0, ROT0, "Astra", "Bullion Bars (Astra, V101)" , MACHINE_IS_SKELETON_MECHANICAL) // FA00/CU98 -GAME( 200?, as_bbra, as_bbr , astra_single_2e, astrafr, driver_device, 0, ROT0, "Astra", "Bullion Bars (Astra, V102,alt)" , MACHINE_IS_SKELETON_MECHANICAL) // FA00/CU98 -GAME( 200?, as_bbrb, as_bbr , astra_single_2e, astrafr, driver_device, 0, ROT0, "Astra", "Bullion Bars (Astra, V201)" , MACHINE_IS_SKELETON_MECHANICAL) // FA00/CU98 -GAME( 200?, as_bbrc, as_bbr , astra_single_2e, astrafr, driver_device, 0, ROT0, "Astra", "Bullion Bars (Astra, V003)" , MACHINE_IS_SKELETON_MECHANICAL) // CU98 -GAME( 200?, as_bbrd, as_bbr , astra_single_2e, astrafr, driver_device, 0, ROT0, "Astra", "Bullion Bars (Astra, V102)" , MACHINE_IS_SKELETON_MECHANICAL) // CU98 -GAME( 200?, as_bbre, as_bbr , astra_single_37, astrafr, driver_device, 0, ROT0, "Astra", "Bullion Bars (Astra, V105)" , MACHINE_IS_SKELETON_MECHANICAL) // FG01 -GAME( 200?, as_bbrf, as_bbr , astra_single_37, astrafr, driver_device, 0, ROT0, "Astra", "Bullion Bars (Astra, V004)" , MACHINE_IS_SKELETON_MECHANICAL) // FN01 - -GAME( 200?, as_dblcs, 0 , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Double Cash (Astra, V110)" , MACHINE_IS_SKELETON_MECHANICAL) // BR97 -GAME( 200?, as_dblcsa, as_dblcs , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Double Cash (Astra, V112)" , MACHINE_IS_SKELETON_MECHANICAL) // BR97 -GAME( 200?, as_dblcsb, as_dblcs , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Double Cash (Astra, V108)" , MACHINE_IS_SKELETON_MECHANICAL) // BR97 -GAME( 200?, as_dblcsc, as_dblcs , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Double Cash (Astra, V109)" , MACHINE_IS_SKELETON_MECHANICAL) // CN97 -GAME( 200?, as_dblcsd, as_dblcs , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Double Cash (Astra, V106)" , MACHINE_IS_SKELETON_MECHANICAL) // CN97 -GAME( 200?, as_dblcse, as_dblcs , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Double Cash (Astra, V102)" , MACHINE_IS_SKELETON_MECHANICAL) // FB00 -GAME( 200?, as_dblcsf, as_dblcs , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Double Cash (Astra, V100)" , MACHINE_IS_SKELETON_MECHANICAL) // FB00 -GAME( 200?, as_dblcsg, as_dblcs , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Double Cash (Astra, V100, alt)" , MACHINE_IS_SKELETON_MECHANICAL) // DN98 -GAME( 200?, as_dblcsh, as_dblcs , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Double Cash (Astra, V004)" , MACHINE_IS_SKELETON_MECHANICAL) // FO01 - -GAME( 200?, as_fortn, 0 , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Fortune Teller (Astra, V009)" , MACHINE_IS_SKELETON_MECHANICAL) - -GAME( 200?, as_gof, 0 , astra_single, astrafr, astrafr_state, astradec, ROT0, "Lowen", "Game Of Fortune (Lowen, V208)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_hog, 0 , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Hearts Of Gold (Astra, V002)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_hxr, 0 , astra_single, astrafr, astrafr_state, astradec_sml, ROT0, "Astra", "Hot Cross Run (Astra, V108)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_hr, 0 , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Hot Reel (Astra, V004)" , MACHINE_IS_SKELETON_MECHANICAL) - -GAME( 200?, as_djp, 0 , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Double Jackpot (Astra, V107)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_djpa, 0 , astra_single, astrafr, astrafr_state, astradec_sml, ROT0, "Astra", "Double Jackpot (Astra, V004)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_djpb, 0 , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Double Jackpot (Astra, V109)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_cshcs, 0 , astra_single, astrafr, driver_device, 0, ROT0, "Lowen", "Cash Castle (Lowen, V006)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_colmn, 0 , astra_single, astrafr, astrafr_state, astradec_sml, ROT0, "Astra", "Colour Of Money (Astra, V200)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_colmna, as_colmn , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Colour Of Money (Astra, V107)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_colmnb, as_colmn , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Colour Of Money (Astra, V108)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_colmnc, as_colmn , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Colour Of Money (Astra, V109)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_colmnd, as_colmn , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Colour Of Money (Astra, V908)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_jackb, 0 , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Jackpot Bell (Astra, V104)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_jpx, 0 , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Jackpot X (Astra, V100)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_jpxa, as_jpx , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Jackpot X (Astra, V101)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_jpxb, as_jpx , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Jackpot X (Astra, V002)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_jolly, 0 , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Jolly Roger (Astra, V103)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_jmpj, 0 , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Jumping Jackpots (Astra, V100)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_jmpja, as_jmpj , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Jumping Jackpots (Astra, V102)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_jjive, 0 , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Jungle Jive (Astra, V107)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_jjivea, as_jjive , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Jungle Jive (Astra, V106)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_jjiveb, as_jjive , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Jungle Jive (Astra, V104)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_jjivec, as_jjive , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Jungle Jive (Astra, V102)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_jjived, as_jjive , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Jungle Jive (Astra, V101)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_jjivee, as_jjive , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Jungle Jive (Astra, V101, alt)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_jjivef, as_jjive , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Jungle Jive (Astra, V004)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_jjiveg, as_jjive , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Jungle Jive (Astra, V005)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_kingc, 0 , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "King Cash (Astra, V106)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_kingca, as_kingc , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "King Cash (Astra, V103)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_koc, 0 , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "King Of Clubs (Astra, V200)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_koca, as_koc , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "King Of Clubs (Astra, V101)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_lbt, 0 , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Little Big 10 (Astra, V103)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_lbta, as_lbt , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Little Big 10 (Astra, V102)" , MACHINE_IS_SKELETON_MECHANICAL) - -GAME( 200?, as_ldl, 0 , astra_single_2e, astrafr, astrafr_state, astradec_sml, ROT0, "Astra", "Little Devils (Astra, V700)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_ldla, as_ldl , astra_single, astrafr, astrafr_state, astradec_sml, ROT0, "Astra", "Little Devils (Astra, V600)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_ldlb, as_ldl , astra_single, astrafr, astrafr_state, astradec_sml, ROT0, "Astra", "Little Devils (Astra, V312)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_ldlc, as_ldl , astra_single, astrafr, astrafr_state, astradec_sml, ROT0, "Astra", "Little Devils (Astra, V003)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_ldld, as_ldl , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Little Devils (Astra, V102)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_ldle, as_ldl , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Little Devils (Astra, V103)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_mp, 0 , astra_single_2e, astrafr, astrafr_state, astradec, ROT0, "Lowen", "Mission Possible (Lowen, V118)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_mp2, 0 , astra_single, astrafr, driver_device, 0, ROT0, "Lowen", "Mission Possible 2 (Lowen, V114)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_otr, 0 , astra_single_2e, astrafr, astrafr_state, astradec_sml, ROT0, "Astra", "Over The Rainbow (Astra, V104)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_otra, as_otr , astra_single, astrafr, astrafr_state, astradec_sml, ROT0, "Astra", "Over The Rainbow (Astra, V102)" , MACHINE_IS_SKELETON_MECHANICAL) // incomplete set -GAME( 200?, as_ptf, 0 , astrafr_dual_37, astrafr, astrafr_state, astradec_sml_dual, ROT0, "Astra", "Party Fruits (Astra, V102)" , MACHINE_IS_SKELETON_MECHANICAL) // strange extra sound(?) roms in here -GAME( 200?, as_ptfa, as_ptf , astrafr_dual_37, astrafr, astrafr_state, astradec_sml_dual, ROT0, "Astra", "Party Fruits (Astra, V803)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_ptfb, as_ptf , astrafr_dual_37, astrafr, astrafr_state, astradec_sml_dual, ROT0, "Astra", "Party Fruits (Astra, V905)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_ptfc, as_ptf , astrafr_dual_37, astrafr, astrafr_state, astradec_sml_dual, ROT0, "Astra", "Party Fruits (Astra)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_pia, 0 , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Pay It Again (Astra, V202)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_piaa, as_pia , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Pay It Again (Astra, V206)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_piab, as_pia , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Pay It Again (Astra, V904)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_pharg, 0 , astra_single_37, astrafr, astrafr_state, astradec, ROT0, "Astra", "Pharaoh's Gold (Astra, V005)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_pharga, as_pharg , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Pharaoh's Gold (Astra, V101)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_phargb, as_pharg , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Pharaoh's Gold (Astra, V102)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_phargc, as_pharg , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Pharaoh's Gold (Astra, V104)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_phargd, as_pharg , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Pharaoh's Gold (Astra, V106)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_pharge, as_pharg , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Pharaoh's Gold (Astra, V107)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_pb, 0 , astra_single_2e, astrafr, driver_device, 0, ROT0, "Astra", "Piggy Banking (Astra, V105)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_cshah, 0 , astra_single_alt_57, astrafr, astrafr_state, astradec, ROT0, "Lowen", "Cash Ahoi (Lowen, V105)" , MACHINE_IS_SKELETON_MECHANICAL) + + +GAME( 200?, as_big10, 0 , astra_single, astrafr, astrafr_state, 0, ROT0, "Astra", "Big 10 (Astra, V500)" , MACHINE_IS_SKELETON_MECHANICAL) // BB96 +GAME( 200?, as_big10a, as_big10 , astra_single, astrafr, astrafr_state, 0, ROT0, "Astra", "Big 10 (Astra, V503)" , MACHINE_IS_SKELETON_MECHANICAL) // BB96 +GAME( 200?, as_big10b, as_big10 , astra_single, astrafr, astrafr_state, 0, ROT0, "Astra", "Big 10 (Astra, V507)" , MACHINE_IS_SKELETON_MECHANICAL) // BB96 +GAME( 200?, as_big10c, as_big10 , astra_single, astrafr, astrafr_state, 0, ROT0, "Astra", "Big 10 (Astra, V601)" , MACHINE_IS_SKELETON_MECHANICAL) // BB96 +GAME( 200?, as_big10d, as_big10 , astra_single, astrafr, astrafr_state, 0, ROT0, "Astra", "Big 10 (Astra, V605)" , MACHINE_IS_SKELETON_MECHANICAL) // BB96 +GAME( 200?, as_big15, 0 , astra_single, astrafr, astrafr_state, 0, ROT0, "Astra", "Big 15 (Astra, V101)" , MACHINE_IS_SKELETON_MECHANICAL) // DL98 +GAME( 200?, as_bigcs, 0 , astra_single, astrafr, astrafr_state, 0, ROT0, "Astra", "Big Cash (Astra, V101)" , MACHINE_IS_SKELETON_MECHANICAL) // CF97/CF98 +GAME( 200?, as_bigcsa, as_bigcs , astra_single, astrafr, astrafr_state, 0, ROT0, "Astra", "Big Cash (Astra, V103)" , MACHINE_IS_SKELETON_MECHANICAL) // CF97/CF98 + +GAME( 200?, as_bbr, 0 , astra_single_2e, astrafr, astrafr_state, 0, ROT0, "Astra", "Bullion Bars (Astra, V101)" , MACHINE_IS_SKELETON_MECHANICAL) // FA00/CU98 +GAME( 200?, as_bbra, as_bbr , astra_single_2e, astrafr, astrafr_state, 0, ROT0, "Astra", "Bullion Bars (Astra, V102,alt)" , MACHINE_IS_SKELETON_MECHANICAL) // FA00/CU98 +GAME( 200?, as_bbrb, as_bbr , astra_single_2e, astrafr, astrafr_state, 0, ROT0, "Astra", "Bullion Bars (Astra, V201)" , MACHINE_IS_SKELETON_MECHANICAL) // FA00/CU98 +GAME( 200?, as_bbrc, as_bbr , astra_single_2e, astrafr, astrafr_state, 0, ROT0, "Astra", "Bullion Bars (Astra, V003)" , MACHINE_IS_SKELETON_MECHANICAL) // CU98 +GAME( 200?, as_bbrd, as_bbr , astra_single_2e, astrafr, astrafr_state, 0, ROT0, "Astra", "Bullion Bars (Astra, V102)" , MACHINE_IS_SKELETON_MECHANICAL) // CU98 +GAME( 200?, as_bbre, as_bbr , astra_single_37, astrafr, astrafr_state, 0, ROT0, "Astra", "Bullion Bars (Astra, V105)" , MACHINE_IS_SKELETON_MECHANICAL) // FG01 +GAME( 200?, as_bbrf, as_bbr , astra_single_37, astrafr, astrafr_state, 0, ROT0, "Astra", "Bullion Bars (Astra, V004)" , MACHINE_IS_SKELETON_MECHANICAL) // FN01 + +GAME( 200?, as_dblcs, 0 , astra_single, astrafr, astrafr_state, 0, ROT0, "Astra", "Double Cash (Astra, V110)" , MACHINE_IS_SKELETON_MECHANICAL) // BR97 +GAME( 200?, as_dblcsa, as_dblcs , astra_single, astrafr, astrafr_state, 0, ROT0, "Astra", "Double Cash (Astra, V112)" , MACHINE_IS_SKELETON_MECHANICAL) // BR97 +GAME( 200?, as_dblcsb, as_dblcs , astra_single, astrafr, astrafr_state, 0, ROT0, "Astra", "Double Cash (Astra, V108)" , MACHINE_IS_SKELETON_MECHANICAL) // BR97 +GAME( 200?, as_dblcsc, as_dblcs , astra_single, astrafr, astrafr_state, 0, ROT0, "Astra", "Double Cash (Astra, V109)" , MACHINE_IS_SKELETON_MECHANICAL) // CN97 +GAME( 200?, as_dblcsd, as_dblcs , astra_single, astrafr, astrafr_state, 0, ROT0, "Astra", "Double Cash (Astra, V106)" , MACHINE_IS_SKELETON_MECHANICAL) // CN97 +GAME( 200?, as_dblcse, as_dblcs , astra_single, astrafr, astrafr_state, 0, ROT0, "Astra", "Double Cash (Astra, V102)" , MACHINE_IS_SKELETON_MECHANICAL) // FB00 +GAME( 200?, as_dblcsf, as_dblcs , astra_single, astrafr, astrafr_state, 0, ROT0, "Astra", "Double Cash (Astra, V100)" , MACHINE_IS_SKELETON_MECHANICAL) // FB00 +GAME( 200?, as_dblcsg, as_dblcs , astra_single, astrafr, astrafr_state, 0, ROT0, "Astra", "Double Cash (Astra, V100, alt)" , MACHINE_IS_SKELETON_MECHANICAL) // DN98 +GAME( 200?, as_dblcsh, as_dblcs , astra_single, astrafr, astrafr_state, 0, ROT0, "Astra", "Double Cash (Astra, V004)" , MACHINE_IS_SKELETON_MECHANICAL) // FO01 + +GAME( 200?, as_fortn, 0 , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Fortune Teller (Astra, V009)" , MACHINE_IS_SKELETON_MECHANICAL) + +GAME( 200?, as_gof, 0 , astra_single, astrafr, astrafr_state, astradec, ROT0, "Lowen", "Game Of Fortune (Lowen, V208)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_hog, 0 , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Hearts Of Gold (Astra, V002)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_hxr, 0 , astra_single, astrafr, astrafr_state, astradec_sml, ROT0, "Astra", "Hot Cross Run (Astra, V108)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_hr, 0 , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Hot Reel (Astra, V004)" , MACHINE_IS_SKELETON_MECHANICAL) + +GAME( 200?, as_djp, 0 , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Double Jackpot (Astra, V107)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_djpa, 0 , astra_single, astrafr, astrafr_state, astradec_sml, ROT0, "Astra", "Double Jackpot (Astra, V004)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_djpb, 0 , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Double Jackpot (Astra, V109)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_cshcs, 0 , astra_single, astrafr, astrafr_state, 0, ROT0, "Lowen", "Cash Castle (Lowen, V006)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_colmn, 0 , astra_single, astrafr, astrafr_state, astradec_sml, ROT0, "Astra", "Colour Of Money (Astra, V200)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_colmna, as_colmn , astra_single, astrafr, astrafr_state, 0, ROT0, "Astra", "Colour Of Money (Astra, V107)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_colmnb, as_colmn , astra_single, astrafr, astrafr_state, 0, ROT0, "Astra", "Colour Of Money (Astra, V108)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_colmnc, as_colmn , astra_single, astrafr, astrafr_state, 0, ROT0, "Astra", "Colour Of Money (Astra, V109)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_colmnd, as_colmn , astra_single, astrafr, astrafr_state, 0, ROT0, "Astra", "Colour Of Money (Astra, V908)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_jackb, 0 , astra_single, astrafr, astrafr_state, 0, ROT0, "Astra", "Jackpot Bell (Astra, V104)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_jpx, 0 , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Jackpot X (Astra, V100)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_jpxa, as_jpx , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Jackpot X (Astra, V101)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_jpxb, as_jpx , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Jackpot X (Astra, V002)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_jolly, 0 , astra_single, astrafr, astrafr_state, 0, ROT0, "Astra", "Jolly Roger (Astra, V103)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_jmpj, 0 , astra_single, astrafr, astrafr_state, 0, ROT0, "Astra", "Jumping Jackpots (Astra, V100)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_jmpja, as_jmpj , astra_single, astrafr, astrafr_state, 0, ROT0, "Astra", "Jumping Jackpots (Astra, V102)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_jjive, 0 , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Jungle Jive (Astra, V107)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_jjivea, as_jjive , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Jungle Jive (Astra, V106)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_jjiveb, as_jjive , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Jungle Jive (Astra, V104)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_jjivec, as_jjive , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Jungle Jive (Astra, V102)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_jjived, as_jjive , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Jungle Jive (Astra, V101)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_jjivee, as_jjive , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Jungle Jive (Astra, V101, alt)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_jjivef, as_jjive , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Jungle Jive (Astra, V004)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_jjiveg, as_jjive , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Jungle Jive (Astra, V005)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_kingc, 0 , astra_single, astrafr, astrafr_state, 0, ROT0, "Astra", "King Cash (Astra, V106)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_kingca, as_kingc , astra_single, astrafr, astrafr_state, 0, ROT0, "Astra", "King Cash (Astra, V103)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_koc, 0 , astra_single, astrafr, astrafr_state, 0, ROT0, "Astra", "King Of Clubs (Astra, V200)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_koca, as_koc , astra_single, astrafr, astrafr_state, 0, ROT0, "Astra", "King Of Clubs (Astra, V101)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_lbt, 0 , astra_single, astrafr, astrafr_state, 0, ROT0, "Astra", "Little Big 10 (Astra, V103)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_lbta, as_lbt , astra_single, astrafr, astrafr_state, 0, ROT0, "Astra", "Little Big 10 (Astra, V102)" , MACHINE_IS_SKELETON_MECHANICAL) + +GAME( 200?, as_ldl, 0 , astra_single_2e, astrafr, astrafr_state, astradec_sml, ROT0, "Astra", "Little Devils (Astra, V700)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_ldla, as_ldl , astra_single, astrafr, astrafr_state, astradec_sml, ROT0, "Astra", "Little Devils (Astra, V600)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_ldlb, as_ldl , astra_single, astrafr, astrafr_state, astradec_sml, ROT0, "Astra", "Little Devils (Astra, V312)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_ldlc, as_ldl , astra_single, astrafr, astrafr_state, astradec_sml, ROT0, "Astra", "Little Devils (Astra, V003)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_ldld, as_ldl , astra_single, astrafr, astrafr_state, 0, ROT0, "Astra", "Little Devils (Astra, V102)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_ldle, as_ldl , astra_single, astrafr, astrafr_state, 0, ROT0, "Astra", "Little Devils (Astra, V103)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_mp, 0 , astra_single_2e, astrafr, astrafr_state, astradec, ROT0, "Lowen", "Mission Possible (Lowen, V118)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_mp2, 0 , astra_single, astrafr, astrafr_state, 0, ROT0, "Lowen", "Mission Possible 2 (Lowen, V114)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_otr, 0 , astra_single_2e, astrafr, astrafr_state, astradec_sml, ROT0, "Astra", "Over The Rainbow (Astra, V104)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_otra, as_otr , astra_single, astrafr, astrafr_state, astradec_sml, ROT0, "Astra", "Over The Rainbow (Astra, V102)" , MACHINE_IS_SKELETON_MECHANICAL) // incomplete set +GAME( 200?, as_ptf, 0 , astrafr_dual_37, astrafr, astrafr_state, astradec_sml_dual, ROT0, "Astra", "Party Fruits (Astra, V102)" , MACHINE_IS_SKELETON_MECHANICAL) // strange extra sound(?) roms in here +GAME( 200?, as_ptfa, as_ptf , astrafr_dual_37, astrafr, astrafr_state, astradec_sml_dual, ROT0, "Astra", "Party Fruits (Astra, V803)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_ptfb, as_ptf , astrafr_dual_37, astrafr, astrafr_state, astradec_sml_dual, ROT0, "Astra", "Party Fruits (Astra, V905)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_ptfc, as_ptf , astrafr_dual_37, astrafr, astrafr_state, astradec_sml_dual, ROT0, "Astra", "Party Fruits (Astra)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_pia, 0 , astra_single, astrafr, astrafr_state, 0, ROT0, "Astra", "Pay It Again (Astra, V202)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_piaa, as_pia , astra_single, astrafr, astrafr_state, 0, ROT0, "Astra", "Pay It Again (Astra, V206)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_piab, as_pia , astra_single, astrafr, astrafr_state, 0, ROT0, "Astra", "Pay It Again (Astra, V904)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_pharg, 0 , astra_single_37, astrafr, astrafr_state, astradec, ROT0, "Astra", "Pharaoh's Gold (Astra, V005)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_pharga, as_pharg , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Pharaoh's Gold (Astra, V101)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_phargb, as_pharg , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Pharaoh's Gold (Astra, V102)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_phargc, as_pharg , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Pharaoh's Gold (Astra, V104)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_phargd, as_pharg , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Pharaoh's Gold (Astra, V106)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_pharge, as_pharg , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Pharaoh's Gold (Astra, V107)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_pb, 0 , astra_single_2e, astrafr, astrafr_state, 0, ROT0, "Astra", "Piggy Banking (Astra, V105)" , MACHINE_IS_SKELETON_MECHANICAL) // this might be another mix of master / slave sets, and multiple games.... -GAME( 200?, as_rtr, 0 , astra_single_2e, astrafr, astrafr_state, astradec, ROT0, "Astra", "Ready To Roll (Astra, V101)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_rtra, as_rtr , astra_single_2e, astrafr, astrafr_state, astradec, ROT0, "Astra", "Ready To Roll (Astra, V101, alt 1)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_rtrb, as_rtr , astra_single_2e, astrafr, astrafr_state, astradec, ROT0, "Astra", "Ready To Roll (Astra, V101, alt 2)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_rtrc, as_rtr , astra_single_2e, astrafr, astrafr_state, astradec, ROT0, "Astra", "Ready To Roll (Astra, V101, alt 3)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_rtrd, as_rtr , astra_single_2e, astrafr, astrafr_state, astradec, ROT0, "Astra", "Ready To Roll (Astra, V100, )" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_rtre, as_rtr , astra_single_2e, astrafr, astrafr_state, astradec, ROT0, "Astra", "Ready To Roll (Astra, V100, alt)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_rtrf, as_rtr , astra_single_2e, astrafr, astrafr_state, astradec, ROT0, "Astra", "Ready To Roll (Astra, V200)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_rtrg, as_rtr , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Ready To Roll (Astra, V200, alt)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_rtrh, as_rtr , astra_single_2e, astrafr, astrafr_state, astradec, ROT0, "Astra", "Ready To Roll (Astra, V202)" , MACHINE_IS_SKELETON_MECHANICAL) - -GAME( 200?, as_rab, 0 , astra_single_2e, astrafr, driver_device, 0, ROT0, "Astra", "Ring A Bell (Astra, V105)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_raba, as_rab , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Ring A Bell (Astra, V106)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_rabb, as_rab , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Ring A Bell (Astra, V107)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_rabc, as_rab , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Ring A Bell (Astra, V104)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_rbg, 0 , astra_single_2e, astrafr, driver_device, 0, ROT0, "Astra", "River Boat Gambler (Astra, V304)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_rbga, as_rab , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "River Boat Gambler (Astra, V303)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_rbgb, as_rab , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "River Boat Gambler (Astra, V104)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_rbgc, as_rab , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "River Boat Gambler (Astra, V102)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_rbgd, as_rab , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "River Boat Gambler (Astra, V101)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_rbge, as_rab , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "River Boat Gambler (Astra, V008)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_rbglo, 0 , astrafr_dual_37, astrafr, astrafr_state, astradec_sml_dual, ROT0, "Lowen", "River Boat Gambler (Lowen, V106)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_rox, 0 , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Roll X (Astra, V006)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_csv, 0 , astra_single_37, astrafr, driver_device, 0, ROT0, "Astra", "Slot Slant (?) (Astra, V202)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_sltcl, 0 , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Slots Classic (?) (Astra)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_stp, 0 , astra_single_2e, astrafr, astrafr_state, astradec, ROT0, "Astra", "Stampede (Astra, V103)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_stpa, as_stp , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Stampede (Astra, V102)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_stpb, as_stp , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Stampede (Astra, V105)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_siu, 0 , astra_single_37, astrafr, astrafr_state, astradec_sml, ROT0, "Astra", "Step It Up (Astra, V202)" , MACHINE_IS_SKELETON_MECHANICAL) // extra sound roms(?) in this set -GAME( 200?, as_siua, as_siu , astra_single, astrafr, astrafr_state, astradec_sml, ROT0, "Astra", "Step It Up (Astra, V203)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_sld, 0 , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Super Little Devil (Astra, V700)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_slda, as_sld , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Super Little Devil (Astra, V600)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_sldb, as_sld , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Super Little Devil (Astra, V500)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_sldc, as_sld , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Super Little Devil (Astra, V400)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_sldd, as_sld , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Super Little Devil (Astra, V200)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_slde, as_sld , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Super Little Devil (Astra, V101)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_tem, 0 , astra_single_alt_37, astrafr, astrafr_state, astradec, ROT0, "Astra", "Temptation (Astra, V101)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_tema, as_tem , astra_single_alt_37, astrafr, astrafr_state, astradec, ROT0, "Astra", "Temptation (Astra, V006)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_tbl, 0 , astra_single_2e, astrafr, driver_device, 0, ROT0, "Astra", "Triple Bells (Astra, V104)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_tbla, as_tbl , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Triple Bells (Astra, V105)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_tblb, as_tbl , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Triple Bells (Astra, V106)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_tblc, as_tbl , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Triple Bells (Astra, V103)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_tbld, as_tbl , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Triple Bells (Astra, V304)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_tble, as_tbl , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Triple Bells (Astra, V303)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_tblf, as_tbl , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Triple Bells (Astra, V301)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_td, 0 , astra_single_2e, astrafr, astrafr_state, astradec, ROT0, "Astra", "Twin Dragons (Astra, V103)" , MACHINE_IS_SKELETON_MECHANICAL) - -GAME( 200?, as_twp, 0 , astra_single_2e, astrafr, driver_device, 0, ROT0, "Astra", "Twin Pots (Astra, V106)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_twpa, as_twp , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Twin Pots (Astra, V104)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_vn, 0 , astrafr_dual_alt_37, astrafr, astrafr_state, astradec_dual, ROT0, "Astra", "Vegas Nights (Astra, V205)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_vcv, 0 , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Viva Cash Vegas (Astra, V005)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_vcva, as_vcv , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Viva Cash Vegas (Astra, V107)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_vcvb, as_vcv , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Viva Cash Vegas (Astra, V106)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_vcvc, as_vcv , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Viva Cash Vegas (Astra, V104)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_vcvd, as_vcv , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Viva Cash Vegas (Astra, V102)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_vcve, as_vcv , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Viva Cash Vegas (Astra, V101)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_ww, 0 , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Wicked Willy (Astra, V203)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_wwa, as_ww , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Wicked Willy (Astra, V204)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_wwb, as_ww , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Wicked Willy (Astra, V205)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_wwc, as_ww , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Wicked Willy (Astra, V104)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_wwd, as_ww , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Wicked Willy (Astra, V103)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_wwe, as_ww , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Wicked Willy (Astra, V102)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 200?, as_ws, 0 , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Win Streak (Astra, V100)" , MACHINE_IS_SKELETON_MECHANICAL) // incomplete dump +GAME( 200?, as_rtr, 0 , astra_single_2e, astrafr, astrafr_state, astradec, ROT0, "Astra", "Ready To Roll (Astra, V101)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_rtra, as_rtr , astra_single_2e, astrafr, astrafr_state, astradec, ROT0, "Astra", "Ready To Roll (Astra, V101, alt 1)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_rtrb, as_rtr , astra_single_2e, astrafr, astrafr_state, astradec, ROT0, "Astra", "Ready To Roll (Astra, V101, alt 2)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_rtrc, as_rtr , astra_single_2e, astrafr, astrafr_state, astradec, ROT0, "Astra", "Ready To Roll (Astra, V101, alt 3)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_rtrd, as_rtr , astra_single_2e, astrafr, astrafr_state, astradec, ROT0, "Astra", "Ready To Roll (Astra, V100, )" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_rtre, as_rtr , astra_single_2e, astrafr, astrafr_state, astradec, ROT0, "Astra", "Ready To Roll (Astra, V100, alt)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_rtrf, as_rtr , astra_single_2e, astrafr, astrafr_state, astradec, ROT0, "Astra", "Ready To Roll (Astra, V200)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_rtrg, as_rtr , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Ready To Roll (Astra, V200, alt)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_rtrh, as_rtr , astra_single_2e, astrafr, astrafr_state, astradec, ROT0, "Astra", "Ready To Roll (Astra, V202)" , MACHINE_IS_SKELETON_MECHANICAL) + +GAME( 200?, as_rab, 0 , astra_single_2e, astrafr, astrafr_state, 0, ROT0, "Astra", "Ring A Bell (Astra, V105)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_raba, as_rab , astra_single, astrafr, astrafr_state, 0, ROT0, "Astra", "Ring A Bell (Astra, V106)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_rabb, as_rab , astra_single, astrafr, astrafr_state, 0, ROT0, "Astra", "Ring A Bell (Astra, V107)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_rabc, as_rab , astra_single, astrafr, astrafr_state, 0, ROT0, "Astra", "Ring A Bell (Astra, V104)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_rbg, 0 , astra_single_2e, astrafr, astrafr_state, 0, ROT0, "Astra", "River Boat Gambler (Astra, V304)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_rbga, as_rab , astra_single, astrafr, astrafr_state, 0, ROT0, "Astra", "River Boat Gambler (Astra, V303)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_rbgb, as_rab , astra_single, astrafr, astrafr_state, 0, ROT0, "Astra", "River Boat Gambler (Astra, V104)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_rbgc, as_rab , astra_single, astrafr, astrafr_state, 0, ROT0, "Astra", "River Boat Gambler (Astra, V102)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_rbgd, as_rab , astra_single, astrafr, astrafr_state, 0, ROT0, "Astra", "River Boat Gambler (Astra, V101)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_rbge, as_rab , astra_single, astrafr, astrafr_state, 0, ROT0, "Astra", "River Boat Gambler (Astra, V008)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_rbglo, 0 , astrafr_dual_37, astrafr, astrafr_state, astradec_sml_dual, ROT0, "Lowen", "River Boat Gambler (Lowen, V106)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_rox, 0 , astra_single, astrafr, astrafr_state, 0, ROT0, "Astra", "Roll X (Astra, V006)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_csv, 0 , astra_single_37, astrafr, astrafr_state, 0, ROT0, "Astra", "Slot Slant (?) (Astra, V202)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_sltcl, 0 , astra_single, astrafr, astrafr_state, 0, ROT0, "Astra", "Slots Classic (?) (Astra)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_stp, 0 , astra_single_2e, astrafr, astrafr_state, astradec, ROT0, "Astra", "Stampede (Astra, V103)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_stpa, as_stp , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Stampede (Astra, V102)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_stpb, as_stp , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Stampede (Astra, V105)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_siu, 0 , astra_single_37, astrafr, astrafr_state, astradec_sml, ROT0, "Astra", "Step It Up (Astra, V202)" , MACHINE_IS_SKELETON_MECHANICAL) // extra sound roms(?) in this set +GAME( 200?, as_siua, as_siu , astra_single, astrafr, astrafr_state, astradec_sml, ROT0, "Astra", "Step It Up (Astra, V203)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_sld, 0 , astra_single, astrafr, astrafr_state, 0, ROT0, "Astra", "Super Little Devil (Astra, V700)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_slda, as_sld , astra_single, astrafr, astrafr_state, 0, ROT0, "Astra", "Super Little Devil (Astra, V600)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_sldb, as_sld , astra_single, astrafr, astrafr_state, 0, ROT0, "Astra", "Super Little Devil (Astra, V500)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_sldc, as_sld , astra_single, astrafr, astrafr_state, 0, ROT0, "Astra", "Super Little Devil (Astra, V400)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_sldd, as_sld , astra_single, astrafr, astrafr_state, 0, ROT0, "Astra", "Super Little Devil (Astra, V200)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_slde, as_sld , astra_single, astrafr, astrafr_state, 0, ROT0, "Astra", "Super Little Devil (Astra, V101)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_tem, 0 , astra_single_alt_37, astrafr, astrafr_state, astradec, ROT0, "Astra", "Temptation (Astra, V101)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_tema, as_tem , astra_single_alt_37, astrafr, astrafr_state, astradec, ROT0, "Astra", "Temptation (Astra, V006)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_tbl, 0 , astra_single_2e, astrafr, astrafr_state, 0, ROT0, "Astra", "Triple Bells (Astra, V104)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_tbla, as_tbl , astra_single, astrafr, astrafr_state, 0, ROT0, "Astra", "Triple Bells (Astra, V105)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_tblb, as_tbl , astra_single, astrafr, astrafr_state, 0, ROT0, "Astra", "Triple Bells (Astra, V106)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_tblc, as_tbl , astra_single, astrafr, astrafr_state, 0, ROT0, "Astra", "Triple Bells (Astra, V103)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_tbld, as_tbl , astra_single, astrafr, astrafr_state, 0, ROT0, "Astra", "Triple Bells (Astra, V304)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_tble, as_tbl , astra_single, astrafr, astrafr_state, 0, ROT0, "Astra", "Triple Bells (Astra, V303)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_tblf, as_tbl , astra_single, astrafr, astrafr_state, 0, ROT0, "Astra", "Triple Bells (Astra, V301)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_td, 0 , astra_single_2e, astrafr, astrafr_state, astradec, ROT0, "Astra", "Twin Dragons (Astra, V103)" , MACHINE_IS_SKELETON_MECHANICAL) + +GAME( 200?, as_twp, 0 , astra_single_2e, astrafr, astrafr_state, 0, ROT0, "Astra", "Twin Pots (Astra, V106)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_twpa, as_twp , astra_single, astrafr, astrafr_state, 0, ROT0, "Astra", "Twin Pots (Astra, V104)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_vn, 0 , astrafr_dual_alt_37, astrafr, astrafr_state, astradec_dual, ROT0, "Astra", "Vegas Nights (Astra, V205)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_vcv, 0 , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Viva Cash Vegas (Astra, V005)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_vcva, as_vcv , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Viva Cash Vegas (Astra, V107)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_vcvb, as_vcv , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Viva Cash Vegas (Astra, V106)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_vcvc, as_vcv , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Viva Cash Vegas (Astra, V104)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_vcvd, as_vcv , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Viva Cash Vegas (Astra, V102)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_vcve, as_vcv , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Viva Cash Vegas (Astra, V101)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_ww, 0 , astra_single, astrafr, astrafr_state, 0, ROT0, "Astra", "Wicked Willy (Astra, V203)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_wwa, as_ww , astra_single, astrafr, astrafr_state, 0, ROT0, "Astra", "Wicked Willy (Astra, V204)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_wwb, as_ww , astra_single, astrafr, astrafr_state, 0, ROT0, "Astra", "Wicked Willy (Astra, V205)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_wwc, as_ww , astra_single, astrafr, astrafr_state, 0, ROT0, "Astra", "Wicked Willy (Astra, V104)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_wwd, as_ww , astra_single, astrafr, astrafr_state, 0, ROT0, "Astra", "Wicked Willy (Astra, V103)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_wwe, as_ww , astra_single, astrafr, astrafr_state, 0, ROT0, "Astra", "Wicked Willy (Astra, V102)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 200?, as_ws, 0 , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Win Streak (Astra, V100)" , MACHINE_IS_SKELETON_MECHANICAL) // incomplete dump diff --git a/src/mame/drivers/astrcorp.cpp b/src/mame/drivers/astrcorp.cpp index c6c5d982231..fbf83cf87ce 100644 --- a/src/mame/drivers/astrcorp.cpp +++ b/src/mame/drivers/astrcorp.cpp @@ -488,7 +488,7 @@ TODO: understand if later hardware uses different parameters (XTAL is almost sur #define ASTROCORP_VBEND 0 #define ASTROCORP_VBSTART 240 -static MACHINE_CONFIG_START( showhand, astrocorp_state ) +static MACHINE_CONFIG_START( showhand ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_20MHz / 2) @@ -518,7 +518,7 @@ static MACHINE_CONFIG_START( showhand, astrocorp_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", XTAL_20MHz/20, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", XTAL_20MHz/20, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -540,7 +540,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(astrocorp_state::skilldrp_scanline) m_maincpu->set_input_line(2, HOLD_LINE); } -static MACHINE_CONFIG_START( skilldrp, astrocorp_state ) +static MACHINE_CONFIG_START( skilldrp ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_24MHz / 2) // JX-1689F1028N GRX586.V5 @@ -572,7 +572,7 @@ static MACHINE_CONFIG_START( skilldrp, astrocorp_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", XTAL_24MHz/24, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", XTAL_24MHz/24, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -1358,14 +1358,14 @@ DRIVER_INIT_MEMBER(astrocorp_state,astoneag) GAME( 2000, showhand, 0, showhand, showhand, astrocorp_state, showhand, ROT0, "Astro Corp.", "Show Hand (Italy)", MACHINE_SUPPORTS_SAVE ) GAME( 2000, showhanc, showhand, showhanc, showhanc, astrocorp_state, showhanc, ROT0, "Astro Corp.", "Wang Pai Dui Jue (China)", MACHINE_SUPPORTS_SAVE ) -GAME( 2002, skilldrp, 0, skilldrp, skilldrp, driver_device, 0, ROT0, "Astro Corp.", "Skill Drop Georgia (Ver. G1.0S)", MACHINE_SUPPORTS_SAVE ) -GAME( 2003, speeddrp, 0, speeddrp, skilldrp, driver_device, 0, ROT0, "Astro Corp.", "Speed Drop (Ver. 1.06)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, skilldrp, 0, skilldrp, skilldrp, astrocorp_state, 0, ROT0, "Astro Corp.", "Skill Drop Georgia (Ver. G1.0S)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, speeddrp, 0, speeddrp, skilldrp, astrocorp_state, 0, ROT0, "Astro Corp.", "Speed Drop (Ver. 1.06)", MACHINE_SUPPORTS_SAVE ) // Encrypted games (not working): -GAME( 2003?, dinodino, 0, skilldrp, skilldrp, driver_device, 0, ROT0, "Astro Corp.", "Dino Dino", MACHINE_NOT_WORKING ) +GAME( 2003?, dinodino, 0, skilldrp, skilldrp, astrocorp_state, 0, ROT0, "Astro Corp.", "Dino Dino", MACHINE_NOT_WORKING ) GAME( 2004?, astoneag, 0, skilldrp, skilldrp, astrocorp_state, astoneag, ROT0, "Astro Corp.", "Stone Age (Astro, Ver. ENG.03.A)", MACHINE_NOT_WORKING ) -GAME( 2005?, winbingo, 0, skilldrp, skilldrp, driver_device, 0, ROT0, "Astro Corp.", "Win Win Bingo (set 1)", MACHINE_NOT_WORKING ) -GAME( 2005?, winbingoa, winbingo, skilldrp, skilldrp, driver_device, 0, ROT0, "Astro Corp.", "Win Win Bingo (set 2)", MACHINE_NOT_WORKING ) -GAME( 2005?, hacher, winbingo, skilldrp, skilldrp, driver_device, 0, ROT0, "bootleg (Gametron)", "Hacher (hack of Win Win Bingo)", MACHINE_NOT_WORKING ) -GAME( 2005?, zoo, 0, showhand, showhand, driver_device, 0, ROT0, "Astro Corp.", "Zoo (Ver. ZO.02.D)", MACHINE_NOT_WORKING ) -GAME( 2007?, westvent, 0, skilldrp, skilldrp, driver_device, 0, ROT0, "Astro Corp.", "Western Venture (Ver. AA.02.D)", MACHINE_NOT_WORKING ) +GAME( 2005?, winbingo, 0, skilldrp, skilldrp, astrocorp_state, 0, ROT0, "Astro Corp.", "Win Win Bingo (set 1)", MACHINE_NOT_WORKING ) +GAME( 2005?, winbingoa, winbingo, skilldrp, skilldrp, astrocorp_state, 0, ROT0, "Astro Corp.", "Win Win Bingo (set 2)", MACHINE_NOT_WORKING ) +GAME( 2005?, hacher, winbingo, skilldrp, skilldrp, astrocorp_state, 0, ROT0, "bootleg (Gametron)", "Hacher (hack of Win Win Bingo)", MACHINE_NOT_WORKING ) +GAME( 2005?, zoo, 0, showhand, showhand, astrocorp_state, 0, ROT0, "Astro Corp.", "Zoo (Ver. ZO.02.D)", MACHINE_NOT_WORKING ) +GAME( 2007?, westvent, 0, skilldrp, skilldrp, astrocorp_state, 0, ROT0, "Astro Corp.", "Western Venture (Ver. AA.02.D)", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/astrocde.cpp b/src/mame/drivers/astrocde.cpp index 243e4c3084d..999e109ad11 100644 --- a/src/mame/drivers/astrocde.cpp +++ b/src/mame/drivers/astrocde.cpp @@ -1238,7 +1238,7 @@ static const z80_daisy_config tenpin_daisy_chain[] = * *************************************/ -static MACHINE_CONFIG_START( astrocade_base, astrocde_state ) +static MACHINE_CONFIG_START( astrocade_base ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, ASTROCADE_CLOCK/4) @@ -1794,29 +1794,29 @@ DRIVER_INIT_MEMBER(astrocde_state,tenpindx) *************************************/ /* 90002 CPU board + 90700 game board + 91312 "characterization card" */ -GAMEL(1978, seawolf2, 0, seawolf2, seawolf2, astrocde_state, seawolf2, ROT0, "Dave Nutting Associates / Midway", "Sea Wolf II", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_seawolf2 ) +GAMEL(1978, seawolf2, 0, seawolf2, seawolf2, astrocde_state, seawolf2, ROT0, "Dave Nutting Associates / Midway", "Sea Wolf II", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_seawolf2 ) /* 91354 CPU board + 90700 game board + 91356 RAM board */ -GAMEL(1980, ebases, 0, ebases, ebases, astrocde_state, ebases, ROT0, "Dave Nutting Associates / Midway", "Extra Bases", MACHINE_SUPPORTS_SAVE, layout_spacezap ) +GAMEL(1980, ebases, 0, ebases, ebases, astrocde_state, ebases, ROT0, "Dave Nutting Associates / Midway", "Extra Bases", MACHINE_SUPPORTS_SAVE, layout_spacezap ) /* 91354 CPU board + 90706 game board + 91356 RAM board + 91355 pattern board */ -GAMEL(1980, spacezap, 0, spacezap, spacezap, astrocde_state, spacezap, ROT0, "Midway", "Space Zap", MACHINE_SUPPORTS_SAVE, layout_spacezap ) +GAMEL(1980, spacezap, 0, spacezap, spacezap, astrocde_state, spacezap, ROT0, "Midway", "Space Zap", MACHINE_SUPPORTS_SAVE, layout_spacezap ) /* 91354 CPU board + 90708 game board + 91356 RAM board + 91355 pattern board + 91397 memory board */ -GAME( 1980, wow, 0, wow, wow, astrocde_state, wow, ROT0, "Dave Nutting Associates / Midway", "Wizard of Wor", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1980, wowg, wow, wow, wowg, astrocde_state, wow, ROT0, "Dave Nutting Associates / Midway", "Wizard of Wor (with German Language ROM)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1980, wow, 0, wow, wow, astrocde_state, wow, ROT0, "Dave Nutting Associates / Midway", "Wizard of Wor", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1980, wowg, wow, wow, wowg, astrocde_state, wow, ROT0, "Dave Nutting Associates / Midway", "Wizard of Wor (with German Language ROM)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) /* 91354 CPU board + 90708 game board + 91356 RAM board + 91355 pattern board + 91364 ROM/RAM board */ -GAMEL(1981, gorf, 0, gorf, gorf, astrocde_state, gorf, ROT270, "Dave Nutting Associates / Midway", "Gorf", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_gorf ) -GAMEL(1981, gorfpgm1, gorf, gorf, gorf, astrocde_state, gorf, ROT270, "Dave Nutting Associates / Midway", "Gorf (program 1)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_gorf ) -GAMEL(1981, gorfpgm1g,gorf, gorf, gorfpgm1g, astrocde_state,gorf, ROT270, "Dave Nutting Associates / Midway", "Gorf (program 1, with German Language ROM)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_gorf ) +GAMEL(1981, gorf, 0, gorf, gorf, astrocde_state, gorf, ROT270, "Dave Nutting Associates / Midway", "Gorf", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_gorf ) +GAMEL(1981, gorfpgm1, gorf, gorf, gorf, astrocde_state, gorf, ROT270, "Dave Nutting Associates / Midway", "Gorf (program 1)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_gorf ) +GAMEL(1981, gorfpgm1g,gorf, gorf, gorfpgm1g, astrocde_state, gorf, ROT270, "Dave Nutting Associates / Midway", "Gorf (program 1, with German Language ROM)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_gorf ) /* 91354 CPU board + 90708 game board + 91356 RAM board + 91355 pattern board + 91423 memory board */ -GAME( 1981, robby, 0, robby, robby, astrocde_state, robby, ROT0, "Dave Nutting Associates / Bally Midway", "The Adventures of Robby Roto!", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, robby, 0, robby, robby, astrocde_state, robby, ROT0, "Dave Nutting Associates / Bally Midway", "The Adventures of Robby Roto!", MACHINE_SUPPORTS_SAVE ) /* 91465 CPU board + 91469 game board + 91466 RAM board + 91488 pattern board + 91467 memory board + 91846 EPROM board */ -GAME( 1983, profpac, 0, profpac, profpac, astrocde_state, profpac, ROT0, "Dave Nutting Associates / Bally Midway", "Professor Pac-Man", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, profpac, 0, profpac, profpac, astrocde_state, profpac, ROT0, "Dave Nutting Associates / Bally Midway", "Professor Pac-Man", MACHINE_SUPPORTS_SAVE ) /* 91465 CPU board + 91699 game board + 91466 RAM board + 91488 pattern board + 91467 memory board */ -GAME( 1982, demndrgn, 0, demndrgn, demndrgn, astrocde_state, demndrgn, ROT0, "Dave Nutting Associates / Bally Midway", "Demons & Dragons (prototype)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) -GAMEL(1983, tenpindx, 0, tenpindx, tenpindx, astrocde_state, tenpindx, ROT0, "Dave Nutting Associates / Bally Midway", "Ten Pin Deluxe", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE | MACHINE_MECHANICAL, layout_tenpindx ) +GAME( 1982, demndrgn, 0, demndrgn, demndrgn, astrocde_state, demndrgn, ROT0, "Dave Nutting Associates / Bally Midway", "Demons & Dragons (prototype)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) +GAMEL(1983, tenpindx, 0, tenpindx, tenpindx, astrocde_state, tenpindx, ROT0, "Dave Nutting Associates / Bally Midway", "Ten Pin Deluxe", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE | MACHINE_MECHANICAL, layout_tenpindx ) diff --git a/src/mame/drivers/astrof.cpp b/src/mame/drivers/astrof.cpp index 9d82c53b56e..5573fca56a8 100644 --- a/src/mame/drivers/astrof.cpp +++ b/src/mame/drivers/astrof.cpp @@ -910,7 +910,7 @@ INPUT_PORTS_END * *************************************/ -static MACHINE_CONFIG_START( base, astrof_state ) +static MACHINE_CONFIG_START( base ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, MAIN_CPU_CLOCK) @@ -1383,21 +1383,21 @@ DRIVER_INIT_MEMBER(astrof_state,acombat3) * *************************************/ -GAME( 1979, astrof, 0, astrof, astrof, driver_device, 0, ROT90, "Data East", "Astro Fighter (set 1)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1979, astrof2, astrof, astrof, astrof, driver_device, 0, ROT90, "Data East", "Astro Fighter (set 2)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1979, astrof3, astrof, astrof, astrof, driver_device, 0, ROT90, "Data East", "Astro Fighter (set 3)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1979, abattle, astrof, abattle, abattle, astrof_state, abattle, ROT90, "bootleg? (Sidam)", "Astro Battle (set 1)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1979, abattle2, astrof, abattle, abattle, astrof_state, abattle, ROT90, "bootleg? (Sidam)", "Astro Battle (set 2)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1979, afire, astrof, abattle, abattle, astrof_state, afire, ROT90, "bootleg (Rene Pierre)", "Astro Fire", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1979, acombat, astrof, abattle, abattle, astrof_state, afire, ROT90, "bootleg", "Astro Combat (newer, CB)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1979, acombato, astrof, abattle, abattle, astrof_state, afire, ROT90, "bootleg", "Astro Combat (older, PZ)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1979, acombat3, astrof, abattle, abattle, astrof_state, acombat3,ROT90, "bootleg (Proel)", "Astro Combat (unencrypted)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1979, acombat4, astrof, abattle, abattle, astrof_state, abattle, ROT90, "bootleg (Proel)", "Astro Combat (encrypted)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1979, strfight, astrof, abattle, abattle, astrof_state, acombat3,ROT90, "bootleg (VGG)", "Star Fighter (bootleg of Astro Fighter)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1979, sstarbtl, astrof, abattle, abattle, astrof_state, sstarbtl,ROT90, "bootleg", "Super Star Battle", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) - -GAME( 1979, spfghmk2, 0, spfghmk2, spfghmk2, driver_device,0, ROT90, "Data East", "Space Fighter Mark II (set 1)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1979, spfghmk22,spfghmk2, spfghmk2, spfghmk22,driver_device,0, ROT90, "Data East", "Space Fighter Mark II (set 2)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) - -GAME( 1980, tomahawk, 0, tomahawk, tomahawk, driver_device,0, ROT90, "Data East", "Tomahawk 777 (rev 5)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1980, tomahawk1,tomahawk, tomahawk, tomahawk1,driver_device,0, ROT90, "Data East", "Tomahawk 777 (rev 1)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1979, astrof, 0, astrof, astrof, astrof_state, 0, ROT90, "Data East", "Astro Fighter (set 1)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1979, astrof2, astrof, astrof, astrof, astrof_state, 0, ROT90, "Data East", "Astro Fighter (set 2)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1979, astrof3, astrof, astrof, astrof, astrof_state, 0, ROT90, "Data East", "Astro Fighter (set 3)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1979, abattle, astrof, abattle, abattle, astrof_state, abattle, ROT90, "bootleg? (Sidam)", "Astro Battle (set 1)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1979, abattle2, astrof, abattle, abattle, astrof_state, abattle, ROT90, "bootleg? (Sidam)", "Astro Battle (set 2)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1979, afire, astrof, abattle, abattle, astrof_state, afire, ROT90, "bootleg (Rene Pierre)", "Astro Fire", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1979, acombat, astrof, abattle, abattle, astrof_state, afire, ROT90, "bootleg", "Astro Combat (newer, CB)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1979, acombato, astrof, abattle, abattle, astrof_state, afire, ROT90, "bootleg", "Astro Combat (older, PZ)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1979, acombat3, astrof, abattle, abattle, astrof_state, acombat3,ROT90, "bootleg (Proel)", "Astro Combat (unencrypted)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1979, acombat4, astrof, abattle, abattle, astrof_state, abattle, ROT90, "bootleg (Proel)", "Astro Combat (encrypted)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1979, strfight, astrof, abattle, abattle, astrof_state, acombat3,ROT90, "bootleg (VGG)", "Star Fighter (bootleg of Astro Fighter)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1979, sstarbtl, astrof, abattle, abattle, astrof_state, sstarbtl,ROT90, "bootleg", "Super Star Battle", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) + +GAME( 1979, spfghmk2, 0, spfghmk2, spfghmk2, astrof_state, 0, ROT90, "Data East", "Space Fighter Mark II (set 1)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1979, spfghmk22,spfghmk2, spfghmk2, spfghmk22,astrof_state, 0, ROT90, "Data East", "Space Fighter Mark II (set 2)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) + +GAME( 1980, tomahawk, 0, tomahawk, tomahawk, astrof_state, 0, ROT90, "Data East", "Tomahawk 777 (rev 5)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1980, tomahawk1,tomahawk, tomahawk, tomahawk1,astrof_state, 0, ROT90, "Data East", "Tomahawk 777 (rev 1)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/astrohome.cpp b/src/mame/drivers/astrohome.cpp index d26d30c8ce4..e024e535922 100644 --- a/src/mame/drivers/astrohome.cpp +++ b/src/mame/drivers/astrohome.cpp @@ -190,7 +190,7 @@ static SLOT_INTERFACE_START(astrocade_exp) SLOT_INTERFACE_END -static MACHINE_CONFIG_START( astrocde, astrocde_mess_state ) +static MACHINE_CONFIG_START( astrocde ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, ASTROCADE_CLOCK/4) /* 1.789 MHz */ MCFG_CPU_PROGRAM_MAP(astrocade_mem) @@ -272,7 +272,7 @@ MACHINE_START_MEMBER(astrocde_mess_state, astrocde) * *************************************/ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -CONS( 1978, astrocde, 0, 0, astrocde, astrocde, astrocde_state, astrocde, "Bally Manufacturing", "Bally Professional Arcade", MACHINE_SUPPORTS_SAVE ) -CONS( 1977, astrocdl, astrocde, 0, astrocde, astrocde, astrocde_state, astrocde, "Bally Manufacturing", "Bally Home Library Computer", MACHINE_SUPPORTS_SAVE ) -CONS( 1977, astrocdw, astrocde, 0, astrocde, astrocde, astrocde_state, astrocde, "Bally Manufacturing", "Bally Computer System", MACHINE_SUPPORTS_SAVE ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +CONS( 1978, astrocde, 0, 0, astrocde, astrocde, astrocde_mess_state, astrocde, "Bally Manufacturing", "Bally Professional Arcade", MACHINE_SUPPORTS_SAVE ) +CONS( 1977, astrocdl, astrocde, 0, astrocde, astrocde, astrocde_mess_state, astrocde, "Bally Manufacturing", "Bally Home Library Computer", MACHINE_SUPPORTS_SAVE ) +CONS( 1977, astrocdw, astrocde, 0, astrocde, astrocde, astrocde_mess_state, astrocde, "Bally Manufacturing", "Bally Computer System", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/astropc.cpp b/src/mame/drivers/astropc.cpp index a58eb2335eb..7d190e95660 100644 --- a/src/mame/drivers/astropc.cpp +++ b/src/mame/drivers/astropc.cpp @@ -45,7 +45,7 @@ INPUT_PORTS_END -static MACHINE_CONFIG_START( astropc, astropc_state ) +static MACHINE_CONFIG_START( astropc ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I486, 40000000 ) // ?? MCFG_CPU_PROGRAM_MAP(astropc_map) diff --git a/src/mame/drivers/asuka.cpp b/src/mame/drivers/asuka.cpp index 5108c8a2b07..e52ed697206 100644 --- a/src/mame/drivers/asuka.cpp +++ b/src/mame/drivers/asuka.cpp @@ -816,7 +816,7 @@ WRITE_LINE_MEMBER(asuka_state::screen_vblank_asuka) } } -static MACHINE_CONFIG_START( bonzeadv, asuka_state ) +static MACHINE_CONFIG_START( bonzeadv ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 8000000) /* checked on PCB */ @@ -872,7 +872,7 @@ static MACHINE_CONFIG_START( bonzeadv, asuka_state ) MCFG_TC0140SYT_SLAVE_CPU("audiocpu") MACHINE_CONFIG_END -static MACHINE_CONFIG_START( asuka, asuka_state ) +static MACHINE_CONFIG_START( asuka ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz/2) /* verified on pcb */ @@ -931,7 +931,7 @@ static MACHINE_CONFIG_START( asuka, asuka_state ) MCFG_SOUND_ADD("msm", MSM5205, XTAL_384kHz) /* verified on pcb */ MCFG_MSM5205_VCLK_CB(WRITELINE(asuka_state, asuka_msm5205_vck)) /* VCK function */ - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S48_4B) /* 8 kHz */ + MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) /* 8 kHz */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MCFG_DEVICE_ADD("adpcm_select", LS157, 0) @@ -942,7 +942,7 @@ static MACHINE_CONFIG_START( asuka, asuka_state ) MCFG_TC0140SYT_SLAVE_CPU("audiocpu") MACHINE_CONFIG_END -static MACHINE_CONFIG_START( cadash, asuka_state ) +static MACHINE_CONFIG_START( cadash ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_32MHz/2) /* 68000p12 running at 16Mhz, verified on pcb */ @@ -1009,7 +1009,7 @@ static MACHINE_CONFIG_START( cadash, asuka_state ) MCFG_TC0140SYT_SLAVE_CPU("audiocpu") MACHINE_CONFIG_END -static MACHINE_CONFIG_START( mofflott, asuka_state ) +static MACHINE_CONFIG_START( mofflott ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 8000000) /* 8 MHz ??? */ @@ -1068,7 +1068,7 @@ static MACHINE_CONFIG_START( mofflott, asuka_state ) MCFG_SOUND_ADD("msm", MSM5205, 384000) MCFG_MSM5205_VCLK_CB(WRITELINE(asuka_state, asuka_msm5205_vck)) /* VCK function */ - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S48_4B) /* 8 kHz */ + MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) /* 8 kHz */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MCFG_DEVICE_ADD("adpcm_select", LS157, 0) @@ -1079,7 +1079,7 @@ static MACHINE_CONFIG_START( mofflott, asuka_state ) MCFG_TC0140SYT_SLAVE_CPU("audiocpu") MACHINE_CONFIG_END -static MACHINE_CONFIG_START( galmedes, asuka_state ) +static MACHINE_CONFIG_START( galmedes ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 8000000) /* 8 MHz ??? */ @@ -1141,7 +1141,7 @@ static MACHINE_CONFIG_START( galmedes, asuka_state ) MCFG_TC0140SYT_SLAVE_CPU("audiocpu") MACHINE_CONFIG_END -static MACHINE_CONFIG_START( eto, asuka_state ) +static MACHINE_CONFIG_START( eto ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 8000000) /* 8 MHz ??? */ @@ -1738,30 +1738,30 @@ DRIVER_INIT_MEMBER(asuka_state, cadash) m_cadash_int5_timer = timer_alloc(TIMER_CADASH_INTERRUPT5); } -GAME( 1988, bonzeadv, 0, bonzeadv, bonzeadv, driver_device, 0, ROT0, "Taito Corporation Japan", "Bonze Adventure (World, Newer)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, bonzeadvo, bonzeadv, bonzeadv, bonzeadv, driver_device, 0, ROT0, "Taito Corporation Japan", "Bonze Adventure (World, Older)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, bonzeadvu, bonzeadv, bonzeadv, jigkmgri, driver_device, 0, ROT0, "Taito America Corporation", "Bonze Adventure (US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, jigkmgri, bonzeadv, bonzeadv, jigkmgri, driver_device, 0, ROT0, "Taito Corporation", "Jigoku Meguri (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, bonzeadvp, bonzeadv, bonzeadv, jigkmgri, driver_device, 0, ROT0, "Taito Corporation Japan", "Bonze Adventure (World, prototype)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, bonzeadv, 0, bonzeadv, bonzeadv, asuka_state, 0, ROT0, "Taito Corporation Japan", "Bonze Adventure (World, Newer)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, bonzeadvo, bonzeadv, bonzeadv, bonzeadv, asuka_state, 0, ROT0, "Taito Corporation Japan", "Bonze Adventure (World, Older)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, bonzeadvu, bonzeadv, bonzeadv, jigkmgri, asuka_state, 0, ROT0, "Taito America Corporation", "Bonze Adventure (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, jigkmgri, bonzeadv, bonzeadv, jigkmgri, asuka_state, 0, ROT0, "Taito Corporation", "Jigoku Meguri (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, bonzeadvp, bonzeadv, bonzeadv, jigkmgri, asuka_state, 0, ROT0, "Taito Corporation Japan", "Bonze Adventure (World, prototype)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, asuka, 0, asuka, asuka, driver_device, 0, ROT270, "Taito Corporation", "Asuka & Asuka (World)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, asukaj, asuka, asuka, asuka, driver_device, 0, ROT270, "Taito Corporation", "Asuka & Asuka (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, asuka, 0, asuka, asuka, asuka_state, 0, ROT270, "Taito Corporation", "Asuka & Asuka (World)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, asukaj, asuka, asuka, asuka, asuka_state, 0, ROT270, "Taito Corporation", "Asuka & Asuka (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, mofflott, 0, mofflott, mofflott, driver_device, 0, ROT270, "Taito Corporation", "Maze of Flott (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, mofflott, 0, mofflott, mofflott, asuka_state, 0, ROT270, "Taito Corporation", "Maze of Flott (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, cadash, 0, cadash, cadash, asuka_state, cadash, ROT0, "Taito Corporation Japan", "Cadash (World)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN ) -GAME( 1989, cadashj, cadash, cadash, cadashj, asuka_state, cadash, ROT0, "Taito Corporation", "Cadash (Japan, version 2)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN ) -GAME( 1989, cadashj1, cadash, cadash, cadashj, asuka_state, cadash, ROT0, "Taito Corporation", "Cadash (Japan, version 1)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN ) -GAME( 1989, cadashjo, cadash, cadash, cadashj, asuka_state, cadash, ROT0, "Taito Corporation", "Cadash (Japan, oldest version)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN ) -GAME( 1989, cadashu, cadash, cadash, cadashu, asuka_state, cadash, ROT0, "Taito America Corporation", "Cadash (US, version 2)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN ) -GAME( 1989, cadashi, cadash, cadash, cadash, asuka_state, cadash, ROT0, "Taito Corporation Japan", "Cadash (Italy)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN ) -GAME( 1989, cadashf, cadash, cadash, cadash, asuka_state, cadash, ROT0, "Taito Corporation Japan", "Cadash (France)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN ) -GAME( 1989, cadashg, cadash, cadash, cadash, asuka_state, cadash, ROT0, "Taito Corporation Japan", "Cadash (Germany, version 1)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN ) -GAME( 1989, cadashp, cadash, cadash, cadashj, asuka_state, cadash, ROT0, "Taito Corporation Japan", "Cadash (World, prototype)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN) +GAME( 1989, cadash, 0, cadash, cadash, asuka_state, cadash, ROT0, "Taito Corporation Japan", "Cadash (World)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN ) +GAME( 1989, cadashj, cadash, cadash, cadashj, asuka_state, cadash, ROT0, "Taito Corporation", "Cadash (Japan, version 2)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN ) +GAME( 1989, cadashj1, cadash, cadash, cadashj, asuka_state, cadash, ROT0, "Taito Corporation", "Cadash (Japan, version 1)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN ) +GAME( 1989, cadashjo, cadash, cadash, cadashj, asuka_state, cadash, ROT0, "Taito Corporation", "Cadash (Japan, oldest version)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN ) +GAME( 1989, cadashu, cadash, cadash, cadashu, asuka_state, cadash, ROT0, "Taito America Corporation", "Cadash (US, version 2)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN ) +GAME( 1989, cadashi, cadash, cadash, cadash, asuka_state, cadash, ROT0, "Taito Corporation Japan", "Cadash (Italy)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN ) +GAME( 1989, cadashf, cadash, cadash, cadash, asuka_state, cadash, ROT0, "Taito Corporation Japan", "Cadash (France)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN ) +GAME( 1989, cadashg, cadash, cadash, cadash, asuka_state, cadash, ROT0, "Taito Corporation Japan", "Cadash (Germany, version 1)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN ) +GAME( 1989, cadashp, cadash, cadash, cadashj, asuka_state, cadash, ROT0, "Taito Corporation Japan", "Cadash (World, prototype)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN) -GAME( 1992, galmedes, 0, galmedes, galmedes, driver_device, 0, ROT270, "Visco", "Galmedes (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, galmedes, 0, galmedes, galmedes, asuka_state, 0, ROT270, "Visco", "Galmedes (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, earthjkr, 0, galmedes, earthjkr, driver_device, 0, ROT270, "Visco", "U.N. Defense Force: Earth Joker (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, earthjkrp, earthjkr, galmedes, earthjkr, driver_device, 0, ROT270, "Visco", "U.N. Defense Force: Earth Joker (Japan, prototype?)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, earthjkr, 0, galmedes, earthjkr, asuka_state, 0, ROT270, "Visco", "U.N. Defense Force: Earth Joker (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, earthjkrp, earthjkr, galmedes, earthjkr, asuka_state, 0, ROT270, "Visco", "U.N. Defense Force: Earth Joker (Japan, prototype?)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, eto, 0, eto, eto, driver_device, 0, ROT0, "Visco", "Kokontouzai Eto Monogatari (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, eto, 0, eto, eto, asuka_state, 0, ROT0, "Visco", "Kokontouzai Eto Monogatari (Japan)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/at.cpp b/src/mame/drivers/at.cpp index 2ab4695d0d0..89b339c08d5 100644 --- a/src/mame/drivers/at.cpp +++ b/src/mame/drivers/at.cpp @@ -6,13 +6,13 @@ ***************************************************************************/ +#include "emu.h" + /* mingw-gcc defines this */ #ifdef i386 #undef i386 #endif /* i386 */ - -#include "emu.h" #include "bus/isa/isa_cards.h" #include "bus/lpci/pci.h" #include "bus/lpci/vt82c505.h" @@ -22,10 +22,12 @@ #include "machine/at.h" #include "machine/cs8221.h" #include "machine/ds128x.h" +#include "machine/idectrl.h" #include "machine/nvram.h" #include "machine/ram.h" #include "machine/vt82c496.h" #include "machine/wd7600.h" +#include "softlist_dev.h" #include "speaker.h" class at_state : public driver_device @@ -36,7 +38,7 @@ public: m_maincpu(*this, "maincpu"), m_mb(*this, "mb"), m_ram(*this, RAM_TAG) - { } + { } required_device m_maincpu; required_device m_mb; required_device m_ram; @@ -61,7 +63,7 @@ public: m_wd7600(*this, "wd7600"), m_isabus(*this, "isabus"), m_speaker(*this, "speaker") - { } + { } public: required_device m_maincpu; @@ -282,7 +284,7 @@ static SLOT_INTERFACE_START( pci_devices ) SLOT_INTERFACE_INTERNAL("vt82c505", VT82C505) SLOT_INTERFACE_END -static MACHINE_CONFIG_START( ibm5170, at_state ) +static MACHINE_CONFIG_START( ibm5170 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I80286, XTAL_12MHz/2 /*6000000*/) MCFG_CPU_PROGRAM_MAP(at16_map) @@ -366,7 +368,7 @@ static MACHINE_CONFIG_DERIVED( k286i, ibm5162 ) MCFG_ISA16_SLOT_ADD("mb:isabus","isa8", pc_isa16_cards, nullptr, false) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( at386, at_state ) +static MACHINE_CONFIG_START( at386 ) MCFG_CPU_ADD("maincpu", I386, 12000000) MCFG_CPU_PROGRAM_MAP(at32_map) MCFG_CPU_IO_MAP(at32_io) @@ -426,7 +428,7 @@ static MACHINE_CONFIG_DERIVED( ct386sx, at386sx ) MCFG_CS8221_ADD("cs8221", "maincpu", "mb:isa", "maincpu") MACHINE_CONFIG_END -static MACHINE_CONFIG_START( megapc, megapc_state ) +static MACHINE_CONFIG_START( megapc ) MCFG_CPU_ADD("maincpu", I386SX, XTAL_50MHz / 2) MCFG_CPU_PROGRAM_MAP(megapc_map) MCFG_CPU_IO_MAP(megapc_io) @@ -511,7 +513,7 @@ static MACHINE_CONFIG_DERIVED( megapcpl, megapc ) MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("wd7600", wd7600_device, intack_cb) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( megapcpla, at_state ) +static MACHINE_CONFIG_START( megapcpla ) MCFG_CPU_ADD("maincpu", I486, 66000000 / 2) // 486SLC MCFG_CPU_PROGRAM_MAP(at32l_map) MCFG_CPU_IO_MAP(at32_io) @@ -545,7 +547,7 @@ static MACHINE_CONFIG_START( megapcpla, at_state ) MCFG_SOFTWARE_LIST_ADD("disk_list","megapc") MACHINE_CONFIG_END -static MACHINE_CONFIG_START( ficpio2, at_state ) +static MACHINE_CONFIG_START( ficpio2 ) MCFG_CPU_ADD("maincpu", I486, 25000000) MCFG_CPU_PROGRAM_MAP(ficpio_map) MCFG_CPU_IO_MAP(ficpio_io) diff --git a/src/mame/drivers/atari400.cpp b/src/mame/drivers/atari400.cpp index 6ec9f45976a..825c5ef5aae 100644 --- a/src/mame/drivers/atari400.cpp +++ b/src/mame/drivers/atari400.cpp @@ -2077,16 +2077,16 @@ WRITE8_MEMBER(a400_state::a800xl_pia_pb_w) **************************************************************/ -static MACHINE_CONFIG_START( atari_common_nodac, a400_state ) +static MACHINE_CONFIG_START( atari_common_nodac ) /* basic machine hardware */ - MCFG_CPU_ADD("maincpu", M6502, FREQ_17_EXACT) + MCFG_CPU_ADD("maincpu", M6502, pokey_device::FREQ_17_EXACT) MCFG_MACHINE_RESET_OVERRIDE( a400_state, a400 ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(1)) - MCFG_SCREEN_VISIBLE_AREA(MIN_X, MAX_X, MIN_Y, MAX_Y) + MCFG_SCREEN_VISIBLE_AREA_ANTIC() MCFG_SCREEN_UPDATE_DEVICE("antic", antic_device, screen_update) MCFG_SCREEN_PALETTE("palette") @@ -2105,7 +2105,7 @@ static MACHINE_CONFIG_START( atari_common_nodac, a400_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("speaker") - MCFG_SOUND_ADD("pokey", POKEY, FREQ_17_EXACT) + MCFG_SOUND_ADD("pokey", POKEY, pokey_device::FREQ_17_EXACT) MCFG_POKEY_POT0_R_CB(IOPORT("analog_0")) MCFG_POKEY_POT1_R_CB(IOPORT("analog_1")) MCFG_POKEY_POT2_R_CB(IOPORT("analog_2")) @@ -2160,8 +2160,8 @@ static MACHINE_CONFIG_DERIVED( a400, atari_common ) MCFG_MACHINE_START_OVERRIDE( a400_state, a400 ) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_REFRESH_RATE(FRAME_RATE_60HZ) - MCFG_SCREEN_SIZE(HWIDTH*8, TOTAL_LINES_60HZ) + MCFG_SCREEN_REFRESH_RATE_ANTIC_60HZ() + MCFG_SCREEN_SIZE_ANTIC_60HZ() MACHINE_CONFIG_END @@ -2175,8 +2175,8 @@ static MACHINE_CONFIG_DERIVED( a400pal, atari_common ) MCFG_MACHINE_START_OVERRIDE( a400_state, a400 ) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_REFRESH_RATE(FRAME_RATE_50HZ) - MCFG_SCREEN_SIZE(HWIDTH*8, TOTAL_LINES_50HZ) + MCFG_SCREEN_REFRESH_RATE_ANTIC_50HZ() + MCFG_SCREEN_SIZE_ANTIC_50HZ() MACHINE_CONFIG_END @@ -2190,8 +2190,8 @@ static MACHINE_CONFIG_DERIVED( a800, atari_common ) MCFG_MACHINE_START_OVERRIDE( a400_state, a800 ) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_REFRESH_RATE(FRAME_RATE_60HZ) - MCFG_SCREEN_SIZE(HWIDTH*8, TOTAL_LINES_60HZ) + MCFG_SCREEN_REFRESH_RATE_ANTIC_60HZ() + MCFG_SCREEN_SIZE_ANTIC_60HZ() MCFG_A800_CARTRIDGE_ADD("cartright", a800_right, nullptr) MACHINE_CONFIG_END @@ -2207,8 +2207,8 @@ static MACHINE_CONFIG_DERIVED( a800pal, atari_common ) MCFG_MACHINE_START_OVERRIDE( a400_state, a800 ) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_REFRESH_RATE(FRAME_RATE_50HZ) - MCFG_SCREEN_SIZE(HWIDTH*8, TOTAL_LINES_50HZ) + MCFG_SCREEN_REFRESH_RATE_ANTIC_50HZ() + MCFG_SCREEN_SIZE_ANTIC_50HZ() MCFG_A800_CARTRIDGE_ADD("cartright", a800_right, nullptr) MACHINE_CONFIG_END @@ -2227,8 +2227,8 @@ static MACHINE_CONFIG_DERIVED( a600xl, atari_common ) MCFG_MACHINE_START_OVERRIDE( a400_state, a800xl ) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_REFRESH_RATE(FRAME_RATE_60HZ) - MCFG_SCREEN_SIZE(HWIDTH*8, TOTAL_LINES_60HZ) + MCFG_SCREEN_REFRESH_RATE_ANTIC_60HZ() + MCFG_SCREEN_SIZE_ANTIC_60HZ() MCFG_RAM_MODIFY(RAM_TAG) MCFG_RAM_DEFAULT_SIZE("16K") @@ -2251,8 +2251,8 @@ static MACHINE_CONFIG_DERIVED( a800xl, atari_common ) MCFG_RAM_DEFAULT_SIZE("64K") MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_REFRESH_RATE(FRAME_RATE_60HZ) - MCFG_SCREEN_SIZE(HWIDTH*8, TOTAL_LINES_60HZ) + MCFG_SCREEN_REFRESH_RATE_ANTIC_60HZ() + MCFG_SCREEN_SIZE_ANTIC_60HZ() MACHINE_CONFIG_END @@ -2263,8 +2263,8 @@ static MACHINE_CONFIG_DERIVED( a800xlpal, a800xl ) MCFG_CPU_CLOCK( 1773000 ) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_REFRESH_RATE(FRAME_RATE_50HZ) - MCFG_SCREEN_SIZE(HWIDTH*8, TOTAL_LINES_50HZ) + MCFG_SCREEN_REFRESH_RATE_ANTIC_50HZ() + MCFG_SCREEN_SIZE_ANTIC_50HZ() MCFG_SOUND_MODIFY("pokey") MCFG_SOUND_CLOCK(1773000) @@ -2335,8 +2335,8 @@ static MACHINE_CONFIG_DERIVED( a5200, atari_common_nodac ) MCFG_MACHINE_START_OVERRIDE( a400_state, a5200 ) MCFG_SCREEN_MODIFY( "screen" ) - MCFG_SCREEN_REFRESH_RATE(FRAME_RATE_60HZ) - MCFG_SCREEN_SIZE(HWIDTH*8, TOTAL_LINES_60HZ) + MCFG_SCREEN_REFRESH_RATE_ANTIC_60HZ() + MCFG_SCREEN_SIZE_ANTIC_60HZ() MCFG_A5200_CARTRIDGE_ADD("cartleft", a5200_carts, nullptr) @@ -2461,19 +2461,19 @@ ROM_END * **************************************************************/ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ -COMP ( 1979, a400, 0, 0, a400, a800, driver_device, 0, "Atari", "Atari 400 (NTSC)", 0) -COMP ( 1979, a400pal, a400, 0, a400pal, a800, driver_device, 0, "Atari", "Atari 400 (PAL)", 0) -COMP ( 1979, a800, 0, 0, a800, a800, driver_device, 0, "Atari", "Atari 800 (NTSC)", 0) -COMP ( 1979, a800pal, a800, 0, a800pal, a800, driver_device, 0, "Atari", "Atari 800 (PAL)", 0) -COMP ( 1982, a1200xl, a800, 0, a1200xl, a800xl, driver_device, 0, "Atari", "Atari 1200XL", MACHINE_NOT_WORKING ) // 64k RAM -COMP ( 1983, a600xl, a800xl, 0, a600xl, a800xl, driver_device, 0, "Atari", "Atari 600XL", MACHINE_IMPERFECT_GRAPHICS ) // 16k RAM -COMP ( 1983, a800xl, 0, 0, a800xl, a800xl, driver_device, 0, "Atari", "Atari 800XL (NTSC)", MACHINE_IMPERFECT_GRAPHICS ) // 64k RAM -COMP ( 1983, a800xlp, a800xl, 0, a800xlpal, a800xl, driver_device, 0, "Atari", "Atari 800XL (PAL)", MACHINE_IMPERFECT_GRAPHICS ) // 64k RAM -COMP ( 1986, a65xe, a800xl, 0, a800xl, a800xl, driver_device, 0, "Atari", "Atari 65XE", MACHINE_IMPERFECT_GRAPHICS ) // 64k RAM -COMP ( 1986, a65xea, a800xl, 0, a800xl, a800xl, driver_device, 0, "Atari", "Atari 65XE (Arabic)", MACHINE_NOT_WORKING ) -COMP ( 1986, a130xe, a800xl, 0, a130xe, a800xl, driver_device, 0, "Atari", "Atari 130XE", MACHINE_NOT_WORKING ) // 128k RAM -COMP ( 1986, a800xe, a800xl, 0, a800xl, a800xl, driver_device, 0, "Atari", "Atari 800XE", MACHINE_IMPERFECT_GRAPHICS ) // 64k RAM -COMP ( 1987, xegs, 0, 0, xegs, a800xl, driver_device, 0, "Atari", "Atari XE Game System", MACHINE_IMPERFECT_GRAPHICS ) // 64k RAM - -CONS ( 1982, a5200, 0, 0, a5200, a5200, driver_device, 0, "Atari", "Atari 5200", 0) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME */ +COMP ( 1979, a400, 0, 0, a400, a800, a400_state, 0, "Atari", "Atari 400 (NTSC)", 0) +COMP ( 1979, a400pal, a400, 0, a400pal, a800, a400_state, 0, "Atari", "Atari 400 (PAL)", 0) +COMP ( 1979, a800, 0, 0, a800, a800, a400_state, 0, "Atari", "Atari 800 (NTSC)", 0) +COMP ( 1979, a800pal, a800, 0, a800pal, a800, a400_state, 0, "Atari", "Atari 800 (PAL)", 0) +COMP ( 1982, a1200xl, a800, 0, a1200xl, a800xl, a400_state, 0, "Atari", "Atari 1200XL", MACHINE_NOT_WORKING ) // 64k RAM +COMP ( 1983, a600xl, a800xl, 0, a600xl, a800xl, a400_state, 0, "Atari", "Atari 600XL", MACHINE_IMPERFECT_GRAPHICS ) // 16k RAM +COMP ( 1983, a800xl, 0, 0, a800xl, a800xl, a400_state, 0, "Atari", "Atari 800XL (NTSC)", MACHINE_IMPERFECT_GRAPHICS ) // 64k RAM +COMP ( 1983, a800xlp, a800xl, 0, a800xlpal, a800xl, a400_state, 0, "Atari", "Atari 800XL (PAL)", MACHINE_IMPERFECT_GRAPHICS ) // 64k RAM +COMP ( 1986, a65xe, a800xl, 0, a800xl, a800xl, a400_state, 0, "Atari", "Atari 65XE", MACHINE_IMPERFECT_GRAPHICS ) // 64k RAM +COMP ( 1986, a65xea, a800xl, 0, a800xl, a800xl, a400_state, 0, "Atari", "Atari 65XE (Arabic)", MACHINE_NOT_WORKING ) +COMP ( 1986, a130xe, a800xl, 0, a130xe, a800xl, a400_state, 0, "Atari", "Atari 130XE", MACHINE_NOT_WORKING ) // 128k RAM +COMP ( 1986, a800xe, a800xl, 0, a800xl, a800xl, a400_state, 0, "Atari", "Atari 800XE", MACHINE_IMPERFECT_GRAPHICS ) // 64k RAM +COMP ( 1987, xegs, 0, 0, xegs, a800xl, a400_state, 0, "Atari", "Atari XE Game System", MACHINE_IMPERFECT_GRAPHICS ) // 64k RAM + +CONS ( 1982, a5200, 0, 0, a5200, a5200, a400_state, 0, "Atari", "Atari 5200", 0) diff --git a/src/mame/drivers/atari_s1.cpp b/src/mame/drivers/atari_s1.cpp index 17b7542c5f9..5b5827d00c3 100644 --- a/src/mame/drivers/atari_s1.cpp +++ b/src/mame/drivers/atari_s1.cpp @@ -435,7 +435,7 @@ void atari_s1_state::machine_reset() m_audiores = 0; } -static MACHINE_CONFIG_START( atari_s1, atari_s1_state ) +static MACHINE_CONFIG_START( atari_s1 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6800, MASTER_CLK) MCFG_CPU_PROGRAM_MAP(atari_s1_map) @@ -528,8 +528,8 @@ ROM_START(spcrider) ROM_END -GAME( 1976, atarians, 0, atarians, atari_s1, driver_device, 0, ROT0, "Atari", "The Atarians", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) -GAME( 1977, time2000, 0, atari_s1, atari_s1, driver_device, 0, ROT0, "Atari", "Time 2000", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) -GAME( 1977, aavenger, 0, atari_s1, atari_s1, driver_device, 0, ROT0, "Atari", "Airborne Avenger", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) -GAME( 1978, midearth, 0, midearth, atari_s1, driver_device, 0, ROT0, "Atari", "Middle Earth", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1978, spcrider, 0, atari_s1, atari_s1, driver_device, 0, ROT0, "Atari", "Space Riders", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) +GAME( 1976, atarians, 0, atarians, atari_s1, atari_s1_state, 0, ROT0, "Atari", "The Atarians", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) +GAME( 1977, time2000, 0, atari_s1, atari_s1, atari_s1_state, 0, ROT0, "Atari", "Time 2000", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) +GAME( 1977, aavenger, 0, atari_s1, atari_s1, atari_s1_state, 0, ROT0, "Atari", "Airborne Avenger", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) +GAME( 1978, midearth, 0, midearth, atari_s1, atari_s1_state, 0, ROT0, "Atari", "Middle Earth", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1978, spcrider, 0, atari_s1, atari_s1, atari_s1_state, 0, ROT0, "Atari", "Space Riders", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) diff --git a/src/mame/drivers/atari_s2.cpp b/src/mame/drivers/atari_s2.cpp index 9c73c3f77d0..daaae16c926 100644 --- a/src/mame/drivers/atari_s2.cpp +++ b/src/mame/drivers/atari_s2.cpp @@ -464,7 +464,7 @@ void atari_s2_state::machine_reset() } -static MACHINE_CONFIG_START( atari_s2, atari_s2_state ) +static MACHINE_CONFIG_START( atari_s2 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6800, XTAL_4MHz / 4) MCFG_CPU_PROGRAM_MAP(atari_s2_map) @@ -547,7 +547,7 @@ ROM_START(fourx4) ROM_LOAD("82s130.bin", 0x0000, 0x0200, CRC(da1f77b4) SHA1(b21fdc1c6f196c320ec5404013d672c35f95890b)) ROM_END -GAME( 1979, supermap, 0, atari_s2, atari_s2, driver_device, 0, ROT0, "Atari", "Superman (Pinball)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) -GAME( 1979, hercules, 0, atari_s2, atari_s2, driver_device, 0, ROT0, "Atari", "Hercules", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) -GAME( 1979, roadrunr, 0, atari_s3, atari_s2, driver_device, 0, ROT0, "Atari", "Road Runner", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) -GAME( 1982, fourx4, 0, atari_s3, atari_s2, driver_device, 0, ROT0, "Atari", "4x4", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1979, supermap, 0, atari_s2, atari_s2, atari_s2_state, 0, ROT0, "Atari", "Superman (Pinball)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) +GAME( 1979, hercules, 0, atari_s2, atari_s2, atari_s2_state, 0, ROT0, "Atari", "Hercules", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) +GAME( 1979, roadrunr, 0, atari_s3, atari_s2, atari_s2_state, 0, ROT0, "Atari", "Road Runner", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) +GAME( 1982, fourx4, 0, atari_s3, atari_s2, atari_s2_state, 0, ROT0, "Atari", "4x4", MACHINE_IS_SKELETON_MECHANICAL) diff --git a/src/mame/drivers/atarifb.cpp b/src/mame/drivers/atarifb.cpp index f4974d239a1..e6d2468ae2c 100644 --- a/src/mame/drivers/atarifb.cpp +++ b/src/mame/drivers/atarifb.cpp @@ -550,7 +550,7 @@ void atarifb_state::machine_reset() m_counter_y_in2b = 0; } -static MACHINE_CONFIG_START( atarifb, atarifb_state ) +static MACHINE_CONFIG_START( atarifb ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, 750000) @@ -790,10 +790,10 @@ ROM_END *************************************/ /* YEAR NAME PARENT MACHINE INPUT */ -GAMEL( 1978, atarifb, 0, atarifb, atarifb, driver_device, 0, ROT0, "Atari", "Atari Football (revision 2)", MACHINE_SUPPORTS_SAVE, layout_atarifb ) -GAMEL( 1978, atarifb1, atarifb, atarifb, atarifb, driver_device, 0, ROT0, "Atari", "Atari Football (revision 1)", MACHINE_SUPPORTS_SAVE, layout_atarifb ) -GAMEL( 1978, atarifb2, atarifb, atarifb, atarifb, driver_device, 0, ROT0, "Atari", "Atari Football II", MACHINE_SUPPORTS_SAVE, layout_atarifb ) -GAMEL( 1979, atarifb4, atarifb, atarifb4, atarifb4, driver_device, 0, ROT0, "Atari", "Atari Football (4 players)", MACHINE_SUPPORTS_SAVE, layout_atarifb4 ) -GAMEL( 1979, abaseb, 0, abaseb, abaseb, driver_device, 0, ROT0, "Atari", "Atari Baseball (set 1)", MACHINE_SUPPORTS_SAVE, layout_abaseb ) -GAMEL( 1979, abaseb2, abaseb, abaseb, abaseb, driver_device, 0, ROT0, "Atari", "Atari Baseball (set 2)", MACHINE_SUPPORTS_SAVE, layout_abaseb ) -GAME ( 1980, soccer, 0, soccer, soccer, driver_device, 0, ROT0, "Atari", "Atari Soccer", MACHINE_SUPPORTS_SAVE ) +GAMEL( 1978, atarifb, 0, atarifb, atarifb, atarifb_state, 0, ROT0, "Atari", "Atari Football (revision 2)", MACHINE_SUPPORTS_SAVE, layout_atarifb ) +GAMEL( 1978, atarifb1, atarifb, atarifb, atarifb, atarifb_state, 0, ROT0, "Atari", "Atari Football (revision 1)", MACHINE_SUPPORTS_SAVE, layout_atarifb ) +GAMEL( 1978, atarifb2, atarifb, atarifb, atarifb, atarifb_state, 0, ROT0, "Atari", "Atari Football II", MACHINE_SUPPORTS_SAVE, layout_atarifb ) +GAMEL( 1979, atarifb4, atarifb, atarifb4, atarifb4, atarifb_state, 0, ROT0, "Atari", "Atari Football (4 players)", MACHINE_SUPPORTS_SAVE, layout_atarifb4 ) +GAMEL( 1979, abaseb, 0, abaseb, abaseb, atarifb_state, 0, ROT0, "Atari", "Atari Baseball (set 1)", MACHINE_SUPPORTS_SAVE, layout_abaseb ) +GAMEL( 1979, abaseb2, abaseb, abaseb, abaseb, atarifb_state, 0, ROT0, "Atari", "Atari Baseball (set 2)", MACHINE_SUPPORTS_SAVE, layout_abaseb ) +GAME ( 1980, soccer, 0, soccer, soccer, atarifb_state, 0, ROT0, "Atari", "Atari Soccer", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/atarig1.cpp b/src/mame/drivers/atarig1.cpp index 2cb0c189ce4..3e18b3dec66 100644 --- a/src/mame/drivers/atarig1.cpp +++ b/src/mame/drivers/atarig1.cpp @@ -423,7 +423,7 @@ static const atari_rle_objects_config modesc_pitfight = * *************************************/ -static MACHINE_CONFIG_START( atarig1, atarig1_state ) +static MACHINE_CONFIG_START( atarig1 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, ATARI_CLOCK_14MHz) @@ -1315,9 +1315,9 @@ DRIVER_INIT_MEMBER(atarig1_state,pitfightb) * *************************************/ -GAME( 1990, hydra, 0, hydra, hydra, atarig1_state, hydra, ROT0, "Atari Games", "Hydra", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, hydrap, hydra, hydrap, hydra, atarig1_state, hydrap, ROT0, "Atari Games", "Hydra (prototype 5/14/90)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, hydrap2, hydra, hydrap, hydra, atarig1_state, hydrap, ROT0, "Atari Games", "Hydra (prototype 5/25/90)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, hydra, 0, hydra, hydra, atarig1_state, hydra, ROT0, "Atari Games", "Hydra", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, hydrap, hydra, hydrap, hydra, atarig1_state, hydrap, ROT0, "Atari Games", "Hydra (prototype 5/14/90)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, hydrap2, hydra, hydrap, hydra, atarig1_state, hydrap, ROT0, "Atari Games", "Hydra (prototype 5/25/90)", MACHINE_SUPPORTS_SAVE ) GAME( 1990, pitfight, 0, pitfight9, pitfight, atarig1_state, pitfight, ROT0, "Atari Games", "Pit Fighter (rev 9)", MACHINE_SUPPORTS_SAVE ) GAME( 1990, pitfight7, pitfight, pitfight7, pitfight, atarig1_state, pitfight, ROT0, "Atari Games", "Pit Fighter (rev 7)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/atarig42.cpp b/src/mame/drivers/atarig42.cpp index 4bf18c78daf..3dfb46e04db 100644 --- a/src/mame/drivers/atarig42.cpp +++ b/src/mame/drivers/atarig42.cpp @@ -521,7 +521,7 @@ static const atari_rle_objects_config modesc_0x400 = * *************************************/ -static MACHINE_CONFIG_START( atarig42, atarig42_state ) +static MACHINE_CONFIG_START( atarig42 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, ATARI_CLOCK_14MHz) diff --git a/src/mame/drivers/atarigt.cpp b/src/mame/drivers/atarigt.cpp index e21ff4c0dab..2a6a248b72d 100644 --- a/src/mame/drivers/atarigt.cpp +++ b/src/mame/drivers/atarigt.cpp @@ -53,11 +53,10 @@ #include "emu.h" -#include "machine/atarigen.h" -#include "video/atarirle.h" -#include "cpu/m68000/m68000.h" #include "includes/atarigt.h" +#include "cpu/m68000/m68000.h" + #define LOG_PROTECTION (0) #define HACK_TMEK_CONTROLS (0) @@ -800,7 +799,7 @@ static const atari_rle_objects_config modesc = * *************************************/ -static MACHINE_CONFIG_START( atarigt, atarigt_state ) +static MACHINE_CONFIG_START( atarigt ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68EC020, ATARI_CLOCK_50MHz/2) @@ -1331,10 +1330,10 @@ DRIVER_INIT_MEMBER(atarigt_state,primrage) * *************************************/ -GAME( 1994, tmek, 0, tmek, tmek, atarigt_state, tmek, ROT0, "Atari Games", "T-MEK (v5.1, The Warlords)", MACHINE_UNEMULATED_PROTECTION ) -GAME( 1994, tmek51p, tmek, tmek, tmek, atarigt_state, tmek, ROT0, "Atari Games", "T-MEK (v5.1, prototype)", MACHINE_UNEMULATED_PROTECTION ) -GAME( 1994, tmek45, tmek, tmek, tmek, atarigt_state, tmek, ROT0, "Atari Games", "T-MEK (v4.5)", MACHINE_UNEMULATED_PROTECTION ) -GAME( 1994, tmek44, tmek, tmek, tmek, atarigt_state, tmek, ROT0, "Atari Games", "T-MEK (v4.4)", MACHINE_UNEMULATED_PROTECTION ) -GAME( 1994, tmek20, tmek, tmek, tmek, atarigt_state, tmek, ROT0, "Atari Games", "T-MEK (v2.0, prototype)", 0 ) -GAME( 1994, primrage, 0, primrage, primrage, atarigt_state, primrage, ROT0, "Atari Games", "Primal Rage (version 2.3)", MACHINE_UNEMULATED_PROTECTION ) +GAME( 1994, tmek, 0, tmek, tmek, atarigt_state, tmek, ROT0, "Atari Games", "T-MEK (v5.1, The Warlords)", MACHINE_UNEMULATED_PROTECTION ) +GAME( 1994, tmek51p, tmek, tmek, tmek, atarigt_state, tmek, ROT0, "Atari Games", "T-MEK (v5.1, prototype)", MACHINE_UNEMULATED_PROTECTION ) +GAME( 1994, tmek45, tmek, tmek, tmek, atarigt_state, tmek, ROT0, "Atari Games", "T-MEK (v4.5)", MACHINE_UNEMULATED_PROTECTION ) +GAME( 1994, tmek44, tmek, tmek, tmek, atarigt_state, tmek, ROT0, "Atari Games", "T-MEK (v4.4)", MACHINE_UNEMULATED_PROTECTION ) +GAME( 1994, tmek20, tmek, tmek, tmek, atarigt_state, tmek, ROT0, "Atari Games", "T-MEK (v2.0, prototype)", 0 ) +GAME( 1994, primrage, 0, primrage, primrage, atarigt_state, primrage, ROT0, "Atari Games", "Primal Rage (version 2.3)", MACHINE_UNEMULATED_PROTECTION ) GAME( 1994, primrage20, primrage, primrage20,primrage, atarigt_state, primrage, ROT0, "Atari Games", "Primal Rage (version 2.0)", MACHINE_UNEMULATED_PROTECTION ) diff --git a/src/mame/drivers/atarigx2.cpp b/src/mame/drivers/atarigx2.cpp index 59976ccdc3e..2320667e3b0 100644 --- a/src/mame/drivers/atarigx2.cpp +++ b/src/mame/drivers/atarigx2.cpp @@ -26,6 +26,7 @@ #include "emu.h" #include "includes/atarigx2.h" + #include "cpu/m68000/m68000.h" #include "speaker.h" @@ -1492,7 +1493,7 @@ static const atari_rle_objects_config modesc_0x400 = * *************************************/ -static MACHINE_CONFIG_START( atarigx2, atarigx2_state ) +static MACHINE_CONFIG_START( atarigx2 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68EC020, ATARI_CLOCK_14MHz) @@ -2302,16 +2303,16 @@ DRIVER_INIT_MEMBER(atarigx2_state,rrreveng) * *************************************/ -GAME( 1992, spclords, 0, atarigx2_0x400, spclords, atarigx2_state, spclords, ROT0, "Atari Games", "Space Lords (rev C)", 0 ) -GAME( 1992, spclordsb, spclords, atarigx2_0x400, spclords, atarigx2_state, spclords, ROT0, "Atari Games", "Space Lords (rev B)", 0 ) -GAME( 1992, spclordsg, spclords, atarigx2_0x400, spclords, atarigx2_state, spclords, ROT0, "Atari Games", "Space Lords (rev A, German)", 0 ) -GAME( 1992, spclordsa, spclords, atarigx2_0x400, spclords, atarigx2_state, spclords, ROT0, "Atari Games", "Space Lords (rev A)", 0 ) +GAME( 1992, spclords, 0, atarigx2_0x400, spclords, atarigx2_state, spclords, ROT0, "Atari Games", "Space Lords (rev C)", 0 ) +GAME( 1992, spclordsb, spclords, atarigx2_0x400, spclords, atarigx2_state, spclords, ROT0, "Atari Games", "Space Lords (rev B)", 0 ) +GAME( 1992, spclordsg, spclords, atarigx2_0x400, spclords, atarigx2_state, spclords, ROT0, "Atari Games", "Space Lords (rev A, German)", 0 ) +GAME( 1992, spclordsa, spclords, atarigx2_0x400, spclords, atarigx2_state, spclords, ROT0, "Atari Games", "Space Lords (rev A)", 0 ) GAME( 1992, motofren, 0, atarigx2_0x200, motofren, atarigx2_state, motofren, ROT0, "Atari Games", "Moto Frenzy", 0 ) GAME( 1992, motofrenmd, motofren, atarigx2_0x200, motofren, atarigx2_state, motofren, ROT0, "Atari Games", "Moto Frenzy (Mini Deluxe)", 0 ) GAME( 1992, motofrenft, motofren, atarigx2_0x200, motofren, atarigx2_state, motofren, ROT0, "Atari Games", "Moto Frenzy (Field Test Version)", 0 ) GAME( 1992, motofrenmf, motofren, atarigx2_0x200, motofren, atarigx2_state, motofren, ROT0, "Atari Games", "Moto Frenzy (Mini Deluxe Field Test Version)", 0 ) -GAME( 1993, rrreveng, 0, atarigx2_0x400, rrreveng, atarigx2_state, rrreveng, ROT0, "Atari Games", "Road Riot's Revenge (prototype, Sep 06, 1994)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) -GAME( 1993, rrrevenga, rrreveng, atarigx2_0x400, rrreveng, atarigx2_state, rrreveng, ROT0, "Atari Games", "Road Riot's Revenge (prototype, Jan 27, 1994, set 1)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) -GAME( 1993, rrrevengb, rrreveng, atarigx2_0x400, rrreveng, atarigx2_state, rrreveng, ROT0, "Atari Games", "Road Riot's Revenge (prototype, Jan 27, 1994, set 2)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) +GAME( 1993, rrreveng, 0, atarigx2_0x400, rrreveng, atarigx2_state, rrreveng, ROT0, "Atari Games", "Road Riot's Revenge (prototype, Sep 06, 1994)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) +GAME( 1993, rrrevenga, rrreveng, atarigx2_0x400, rrreveng, atarigx2_state, rrreveng, ROT0, "Atari Games", "Road Riot's Revenge (prototype, Jan 27, 1994, set 1)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) +GAME( 1993, rrrevengb, rrreveng, atarigx2_0x400, rrreveng, atarigx2_state, rrreveng, ROT0, "Atari Games", "Road Riot's Revenge (prototype, Jan 27, 1994, set 2)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/atarist.cpp b/src/mame/drivers/atarist.cpp index c79028441ef..229e0af6565 100644 --- a/src/mame/drivers/atarist.cpp +++ b/src/mame/drivers/atarist.cpp @@ -2076,7 +2076,7 @@ SLOT_INTERFACE_END // MACHINE_CONFIG( st ) //------------------------------------------------- -static MACHINE_CONFIG_START( st, st_state ) +static MACHINE_CONFIG_START( st ) // basic machine hardware MCFG_CPU_ADD(M68000_TAG, M68000, Y2/4) MCFG_CPU_PROGRAM_MAP(st_map) @@ -2166,7 +2166,7 @@ MACHINE_CONFIG_END // MACHINE_CONFIG( megast ) //------------------------------------------------- -static MACHINE_CONFIG_START( megast, megast_state ) +static MACHINE_CONFIG_START( megast ) // basic machine hardware MCFG_CPU_ADD(M68000_TAG, M68000, Y2/4) MCFG_CPU_PROGRAM_MAP(megast_map) @@ -2257,7 +2257,7 @@ MACHINE_CONFIG_END // MACHINE_CONFIG( ste ) //------------------------------------------------- -static MACHINE_CONFIG_START( ste, ste_state ) +static MACHINE_CONFIG_START( ste ) // basic machine hardware MCFG_CPU_ADD(M68000_TAG, M68000, Y2/4) MCFG_CPU_PROGRAM_MAP(ste_map) @@ -2372,7 +2372,7 @@ MACHINE_CONFIG_END // MACHINE_CONFIG( stbook ) //------------------------------------------------- #if 0 -static MACHINE_CONFIG_START( stbook, stbook_state ) +static MACHINE_CONFIG_START( stbook ) // basic machine hardware MCFG_CPU_ADD(M68000_TAG, M68000, U517/2) MCFG_CPU_PROGRAM_MAP(stbook_map) @@ -3211,44 +3211,44 @@ ROM_END // SYSTEM DRIVERS //************************************************************************** -// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS -COMP( 1985, st, 0, 0, st, st, driver_device, 0, "Atari", "ST (USA)", MACHINE_NOT_WORKING ) -COMP( 1985, st_uk, st, 0, st, st, driver_device, 0, "Atari", "ST (UK)", MACHINE_NOT_WORKING ) -COMP( 1985, st_de, st, 0, st, st, driver_device, 0, "Atari", "ST (Germany)", MACHINE_NOT_WORKING ) -COMP( 1985, st_es, st, 0, st, st, driver_device, 0, "Atari", "ST (Spain)", MACHINE_NOT_WORKING ) -COMP( 1985, st_fr, st, 0, st, st, driver_device, 0, "Atari", "ST (France)", MACHINE_NOT_WORKING ) -COMP( 1985, st_nl, st, 0, st, st, driver_device, 0, "Atari", "ST (Netherlands)", MACHINE_NOT_WORKING ) -COMP( 1985, st_se, st, 0, st, st, driver_device, 0, "Atari", "ST (Sweden)", MACHINE_NOT_WORKING ) -COMP( 1985, st_sg, st, 0, st, st, driver_device, 0, "Atari", "ST (Switzerland)", MACHINE_NOT_WORKING ) -COMP( 1987, megast, st, 0, megast, st, driver_device, 0, "Atari", "MEGA ST (USA)", MACHINE_NOT_WORKING ) -COMP( 1987, megast_uk, st, 0, megast, st, driver_device, 0, "Atari", "MEGA ST (UK)", MACHINE_NOT_WORKING ) -COMP( 1987, megast_de, st, 0, megast, st, driver_device, 0, "Atari", "MEGA ST (Germany)", MACHINE_NOT_WORKING ) -COMP( 1987, megast_fr, st, 0, megast, st, driver_device, 0, "Atari", "MEGA ST (France)", MACHINE_NOT_WORKING ) -COMP( 1987, megast_se, st, 0, megast, st, driver_device, 0, "Atari", "MEGA ST (Sweden)", MACHINE_NOT_WORKING ) -COMP( 1987, megast_sg, st, 0, megast, st, driver_device, 0, "Atari", "MEGA ST (Switzerland)",MACHINE_NOT_WORKING ) -COMP( 1989, ste, 0, 0, ste, ste, driver_device, 0, "Atari", "STE (USA)", MACHINE_NOT_WORKING ) -COMP( 1989, ste_uk, ste, 0, ste, ste, driver_device, 0, "Atari", "STE (UK)", MACHINE_NOT_WORKING ) -COMP( 1989, ste_de, ste, 0, ste, ste, driver_device, 0, "Atari", "STE (Germany)", MACHINE_NOT_WORKING ) -COMP( 1989, ste_es, ste, 0, ste, ste, driver_device, 0, "Atari", "STE (Spain)", MACHINE_NOT_WORKING ) -COMP( 1989, ste_fr, ste, 0, ste, ste, driver_device, 0, "Atari", "STE (France)", MACHINE_NOT_WORKING ) -COMP( 1989, ste_it, ste, 0, ste, ste, driver_device, 0, "Atari", "STE (Italy)", MACHINE_NOT_WORKING ) -COMP( 1989, ste_se, ste, 0, ste, ste, driver_device, 0, "Atari", "STE (Sweden)", MACHINE_NOT_WORKING ) -COMP( 1989, ste_sg, ste, 0, ste, ste, driver_device, 0, "Atari", "STE (Switzerland)", MACHINE_NOT_WORKING ) -//COMP( 1990, stbook, ste, 0, stbook, stbook, driver_device, 0, "Atari", "STBook", MACHINE_NOT_WORKING ) -COMP( 1990, tt030, 0, 0, tt030, tt030, driver_device, 0, "Atari", "TT030 (USA)", MACHINE_NOT_WORKING ) -COMP( 1990, tt030_uk, tt030, 0, tt030, tt030, driver_device, 0, "Atari", "TT030 (UK)", MACHINE_NOT_WORKING ) -COMP( 1990, tt030_de, tt030, 0, tt030, tt030, driver_device, 0, "Atari", "TT030 (Germany)", MACHINE_NOT_WORKING ) -COMP( 1990, tt030_fr, tt030, 0, tt030, tt030, driver_device, 0, "Atari", "TT030 (France)", MACHINE_NOT_WORKING ) -COMP( 1990, tt030_pl, tt030, 0, tt030, tt030, driver_device, 0, "Atari", "TT030 (Poland)", MACHINE_NOT_WORKING ) -COMP( 1991, megaste, ste, 0, megaste, st, driver_device, 0, "Atari", "MEGA STE (USA)", MACHINE_NOT_WORKING ) -COMP( 1991, megaste_uk, ste, 0, megaste, st, driver_device, 0, "Atari", "MEGA STE (UK)", MACHINE_NOT_WORKING ) -COMP( 1991, megaste_de, ste, 0, megaste, st, driver_device, 0, "Atari", "MEGA STE (Germany)", MACHINE_NOT_WORKING ) -COMP( 1991, megaste_es, ste, 0, megaste, st, driver_device, 0, "Atari", "MEGA STE (Spain)", MACHINE_NOT_WORKING ) -COMP( 1991, megaste_fr, ste, 0, megaste, st, driver_device, 0, "Atari", "MEGA STE (France)", MACHINE_NOT_WORKING ) -COMP( 1991, megaste_it, ste, 0, megaste, st, driver_device, 0, "Atari", "MEGA STE (Italy)", MACHINE_NOT_WORKING ) -COMP( 1991, megaste_se, ste, 0, megaste, st, driver_device, 0, "Atari", "MEGA STE (Sweden)", MACHINE_NOT_WORKING ) -COMP( 1992, falcon30, 0, 0, falcon, falcon, driver_device, 0, "Atari", "Falcon030", MACHINE_NOT_WORKING ) -COMP( 1992, falcon40, falcon30, 0, falcon40, falcon, driver_device, 0, "Atari", "Falcon040 (prototype)",MACHINE_NOT_WORKING ) -//COMP( 1989, stacy, st, 0, stacy, stacy, driver_device, 0, "Atari", "Stacy", MACHINE_NOT_WORKING ) -//COMP( 1991, stpad, ste, 0, stpad, stpad, driver_device, 0, "Atari", "STPad (prototype)", MACHINE_NOT_WORKING ) -//COMP( 1992, fx1, 0, 0, falcon, falcon, driver_device, 0, "Atari", "FX-1 (prototype)", MACHINE_NOT_WORKING ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1985, st, 0, 0, st, st, st_state, 0, "Atari", "ST (USA)", MACHINE_NOT_WORKING ) +COMP( 1985, st_uk, st, 0, st, st, st_state, 0, "Atari", "ST (UK)", MACHINE_NOT_WORKING ) +COMP( 1985, st_de, st, 0, st, st, st_state, 0, "Atari", "ST (Germany)", MACHINE_NOT_WORKING ) +COMP( 1985, st_es, st, 0, st, st, st_state, 0, "Atari", "ST (Spain)", MACHINE_NOT_WORKING ) +COMP( 1985, st_fr, st, 0, st, st, st_state, 0, "Atari", "ST (France)", MACHINE_NOT_WORKING ) +COMP( 1985, st_nl, st, 0, st, st, st_state, 0, "Atari", "ST (Netherlands)", MACHINE_NOT_WORKING ) +COMP( 1985, st_se, st, 0, st, st, st_state, 0, "Atari", "ST (Sweden)", MACHINE_NOT_WORKING ) +COMP( 1985, st_sg, st, 0, st, st, st_state, 0, "Atari", "ST (Switzerland)", MACHINE_NOT_WORKING ) +COMP( 1987, megast, st, 0, megast, st, megast_state, 0, "Atari", "MEGA ST (USA)", MACHINE_NOT_WORKING ) +COMP( 1987, megast_uk, st, 0, megast, st, megast_state, 0, "Atari", "MEGA ST (UK)", MACHINE_NOT_WORKING ) +COMP( 1987, megast_de, st, 0, megast, st, megast_state, 0, "Atari", "MEGA ST (Germany)", MACHINE_NOT_WORKING ) +COMP( 1987, megast_fr, st, 0, megast, st, megast_state, 0, "Atari", "MEGA ST (France)", MACHINE_NOT_WORKING ) +COMP( 1987, megast_se, st, 0, megast, st, megast_state, 0, "Atari", "MEGA ST (Sweden)", MACHINE_NOT_WORKING ) +COMP( 1987, megast_sg, st, 0, megast, st, megast_state, 0, "Atari", "MEGA ST (Switzerland)",MACHINE_NOT_WORKING ) +COMP( 1989, ste, 0, 0, ste, ste, ste_state, 0, "Atari", "STE (USA)", MACHINE_NOT_WORKING ) +COMP( 1989, ste_uk, ste, 0, ste, ste, ste_state, 0, "Atari", "STE (UK)", MACHINE_NOT_WORKING ) +COMP( 1989, ste_de, ste, 0, ste, ste, ste_state, 0, "Atari", "STE (Germany)", MACHINE_NOT_WORKING ) +COMP( 1989, ste_es, ste, 0, ste, ste, ste_state, 0, "Atari", "STE (Spain)", MACHINE_NOT_WORKING ) +COMP( 1989, ste_fr, ste, 0, ste, ste, ste_state, 0, "Atari", "STE (France)", MACHINE_NOT_WORKING ) +COMP( 1989, ste_it, ste, 0, ste, ste, ste_state, 0, "Atari", "STE (Italy)", MACHINE_NOT_WORKING ) +COMP( 1989, ste_se, ste, 0, ste, ste, ste_state, 0, "Atari", "STE (Sweden)", MACHINE_NOT_WORKING ) +COMP( 1989, ste_sg, ste, 0, ste, ste, ste_state, 0, "Atari", "STE (Switzerland)", MACHINE_NOT_WORKING ) +//COMP( 1990, stbook, ste, 0, stbook, stbook, stbook_state, 0, "Atari", "STBook", MACHINE_NOT_WORKING ) +COMP( 1990, tt030, 0, 0, tt030, tt030, ste_state, 0, "Atari", "TT030 (USA)", MACHINE_NOT_WORKING ) +COMP( 1990, tt030_uk, tt030, 0, tt030, tt030, ste_state, 0, "Atari", "TT030 (UK)", MACHINE_NOT_WORKING ) +COMP( 1990, tt030_de, tt030, 0, tt030, tt030, ste_state, 0, "Atari", "TT030 (Germany)", MACHINE_NOT_WORKING ) +COMP( 1990, tt030_fr, tt030, 0, tt030, tt030, ste_state, 0, "Atari", "TT030 (France)", MACHINE_NOT_WORKING ) +COMP( 1990, tt030_pl, tt030, 0, tt030, tt030, ste_state, 0, "Atari", "TT030 (Poland)", MACHINE_NOT_WORKING ) +COMP( 1991, megaste, ste, 0, megaste, st, megaste_state, 0, "Atari", "MEGA STE (USA)", MACHINE_NOT_WORKING ) +COMP( 1991, megaste_uk, ste, 0, megaste, st, megaste_state, 0, "Atari", "MEGA STE (UK)", MACHINE_NOT_WORKING ) +COMP( 1991, megaste_de, ste, 0, megaste, st, megaste_state, 0, "Atari", "MEGA STE (Germany)", MACHINE_NOT_WORKING ) +COMP( 1991, megaste_es, ste, 0, megaste, st, megaste_state, 0, "Atari", "MEGA STE (Spain)", MACHINE_NOT_WORKING ) +COMP( 1991, megaste_fr, ste, 0, megaste, st, megaste_state, 0, "Atari", "MEGA STE (France)", MACHINE_NOT_WORKING ) +COMP( 1991, megaste_it, ste, 0, megaste, st, megaste_state, 0, "Atari", "MEGA STE (Italy)", MACHINE_NOT_WORKING ) +COMP( 1991, megaste_se, ste, 0, megaste, st, megaste_state, 0, "Atari", "MEGA STE (Sweden)", MACHINE_NOT_WORKING ) +COMP( 1992, falcon30, 0, 0, falcon, falcon, ste_state, 0, "Atari", "Falcon030", MACHINE_NOT_WORKING ) +COMP( 1992, falcon40, falcon30, 0, falcon40, falcon, ste_state, 0, "Atari", "Falcon040 (prototype)",MACHINE_NOT_WORKING ) +//COMP( 1989, stacy, st, 0, stacy, stacy, st_state, 0, "Atari", "Stacy", MACHINE_NOT_WORKING ) +//COMP( 1991, stpad, ste, 0, stpad, stpad, st_state, 0, "Atari", "STPad (prototype)", MACHINE_NOT_WORKING ) +//COMP( 1992, fx1, 0, 0, falcon, falcon, ste_state, 0, "Atari", "FX-1 (prototype)", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/atarisy1.cpp b/src/mame/drivers/atarisy1.cpp index 6a2401f2a97..199d8fbe609 100644 --- a/src/mame/drivers/atarisy1.cpp +++ b/src/mame/drivers/atarisy1.cpp @@ -708,7 +708,7 @@ GFXDECODE_END * *************************************/ -static MACHINE_CONFIG_START( atarisy1, atarisy1_state ) +static MACHINE_CONFIG_START( atarisy1 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68010, ATARI_CLOCK_14MHz/2) @@ -2481,26 +2481,26 @@ DRIVER_INIT_MEMBER(atarisy1_state,roadblst) * *************************************/ -GAME( 1984, atarisy1, 0, peterpak, peterpak, atarisy1_state, peterpak, ROT0, "Atari Games", "Atari System 1 BIOS", MACHINE_IS_BIOS_ROOT ) +GAME( 1984, atarisy1, 0, peterpak, peterpak, atarisy1_state, peterpak, ROT0, "Atari Games", "Atari System 1 BIOS", MACHINE_IS_BIOS_ROOT ) -GAME( 1984, marble, atarisy1, marble, marble, atarisy1_state, marble, ROT0, "Atari Games", "Marble Madness (set 1)", 0 ) -GAME( 1984, marble2, marble, marble, marble, atarisy1_state, marble, ROT0, "Atari Games", "Marble Madness (set 2)", 0 ) -GAME( 1984, marble3, marble, marble, marble, atarisy1_state, marble, ROT0, "Atari Games", "Marble Madness (set 3)", 0 ) -GAME( 1984, marble4, marble, marble, marble, atarisy1_state, marble, ROT0, "Atari Games", "Marble Madness (set 4)", 0 ) -GAME( 1984, marble5, marble, marble, marble, atarisy1_state, marble, ROT0, "Atari Games", "Marble Madness (set 5 - LSI Cartridge)", 0 ) +GAME( 1984, marble, atarisy1, marble, marble, atarisy1_state, marble, ROT0, "Atari Games", "Marble Madness (set 1)", 0 ) +GAME( 1984, marble2, marble, marble, marble, atarisy1_state, marble, ROT0, "Atari Games", "Marble Madness (set 2)", 0 ) +GAME( 1984, marble3, marble, marble, marble, atarisy1_state, marble, ROT0, "Atari Games", "Marble Madness (set 3)", 0 ) +GAME( 1984, marble4, marble, marble, marble, atarisy1_state, marble, ROT0, "Atari Games", "Marble Madness (set 4)", 0 ) +GAME( 1984, marble5, marble, marble, marble, atarisy1_state, marble, ROT0, "Atari Games", "Marble Madness (set 5 - LSI Cartridge)", 0 ) -GAME( 1984, peterpak, atarisy1, peterpak, peterpak, atarisy1_state, peterpak, ROT0, "Atari Games", "Peter Pack Rat", 0 ) +GAME( 1984, peterpak, atarisy1, peterpak, peterpak, atarisy1_state, peterpak, ROT0, "Atari Games", "Peter Pack Rat", 0 ) -GAME( 1985, indytemp, atarisy1, indytemp, indytemp, atarisy1_state, indytemp, ROT0, "Atari Games", "Indiana Jones and the Temple of Doom (set 1)", 0 ) -GAME( 1985, indytemp2,indytemp, indytemp, indytemp, atarisy1_state, indytemp, ROT0, "Atari Games", "Indiana Jones and the Temple of Doom (set 2)", 0 ) -GAME( 1985, indytemp3,indytemp, indytemp, indytemp, atarisy1_state, indytemp, ROT0, "Atari Games", "Indiana Jones and the Temple of Doom (set 3)", 0 ) -GAME( 1985, indytemp4,indytemp, indytemp, indytemp, atarisy1_state, indytemp, ROT0, "Atari Games", "Indiana Jones and the Temple of Doom (set 4)", 0 ) -GAME( 1985, indytempd,indytemp, indytemp, indytemp, atarisy1_state, indytemp, ROT0, "Atari Games", "Indiana Jones and the Temple of Doom (German)", 0 ) -GAME( 1985, indytempc,indytemp, indytemp, indytemc, atarisy1_state, indytemp, ROT0, "Atari Games", "Indiana Jones and the Temple of Doom (Cocktail)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1985, indytemp, atarisy1, indytemp, indytemp, atarisy1_state, indytemp, ROT0, "Atari Games", "Indiana Jones and the Temple of Doom (set 1)", 0 ) +GAME( 1985, indytemp2, indytemp, indytemp, indytemp, atarisy1_state, indytemp, ROT0, "Atari Games", "Indiana Jones and the Temple of Doom (set 2)", 0 ) +GAME( 1985, indytemp3, indytemp, indytemp, indytemp, atarisy1_state, indytemp, ROT0, "Atari Games", "Indiana Jones and the Temple of Doom (set 3)", 0 ) +GAME( 1985, indytemp4, indytemp, indytemp, indytemp, atarisy1_state, indytemp, ROT0, "Atari Games", "Indiana Jones and the Temple of Doom (set 4)", 0 ) +GAME( 1985, indytempd, indytemp, indytemp, indytemp, atarisy1_state, indytemp, ROT0, "Atari Games", "Indiana Jones and the Temple of Doom (German)", 0 ) +GAME( 1985, indytempc, indytemp, indytemp, indytemc, atarisy1_state, indytemp, ROT0, "Atari Games", "Indiana Jones and the Temple of Doom (Cocktail)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1985, roadrunn, atarisy1, roadrunn, roadrunn, atarisy1_state, roadrunn, ROT0, "Atari Games", "Road Runner (rev 2)", 0 ) -GAME( 1985, roadrunn2,roadrunn, roadrunn, roadrunn, atarisy1_state, roadrunn, ROT0, "Atari Games", "Road Runner (rev 1+)", 0 ) -GAME( 1985, roadrunn1,roadrunn, roadrunn, roadrunn, atarisy1_state, roadrunn, ROT0, "Atari Games", "Road Runner (rev 1)", 0 ) +GAME( 1985, roadrunn, atarisy1, roadrunn, roadrunn, atarisy1_state, roadrunn, ROT0, "Atari Games", "Road Runner (rev 2)", 0 ) +GAME( 1985, roadrunn2, roadrunn, roadrunn, roadrunn, atarisy1_state, roadrunn, ROT0, "Atari Games", "Road Runner (rev 1+)", 0 ) +GAME( 1985, roadrunn1, roadrunn, roadrunn, roadrunn, atarisy1_state, roadrunn, ROT0, "Atari Games", "Road Runner (rev 1)", 0 ) GAME( 1987, roadblst, atarisy1, roadb110, roadblst, atarisy1_state, roadblst, ROT0, "Atari Games", "Road Blasters (upright, rev 4)", 0 ) GAME( 1987, roadblstg, roadblst, roadb109, roadblst, atarisy1_state, roadblst, ROT0, "Atari Games", "Road Blasters (upright, German, rev 3)", 0 ) diff --git a/src/mame/drivers/atarisy2.cpp b/src/mame/drivers/atarisy2.cpp index 504dc4d9e52..9d5c0fbed58 100644 --- a/src/mame/drivers/atarisy2.cpp +++ b/src/mame/drivers/atarisy2.cpp @@ -1183,7 +1183,7 @@ GFXDECODE_END * *************************************/ -static MACHINE_CONFIG_START( atarisy2, atarisy2_state ) +static MACHINE_CONFIG_START( atarisy2 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", T11, MASTER_CLOCK/2) @@ -3230,40 +3230,40 @@ DRIVER_INIT_MEMBER(atarisy2_state,apb) * *************************************/ -GAME( 1984, paperboy, 0, paperboy, paperboy, atarisy2_state, paperboy, ROT0, "Atari Games", "Paperboy (rev 3)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, paperboyr2,paperboy, paperboy, paperboy, atarisy2_state, paperboy, ROT0, "Atari Games", "Paperboy (rev 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, paperboyr1,paperboy, paperboy, paperboy, atarisy2_state, paperboy, ROT0, "Atari Games", "Paperboy (rev 1)", MACHINE_SUPPORTS_SAVE ) - -GAME( 1986, 720, 0, 720, 720, atarisy2_state, 720, ROT0, "Atari Games", "720 Degrees (rev 4)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, 720r3, 720, 720, 720, atarisy2_state, 720, ROT0, "Atari Games", "720 Degrees (rev 3)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, 720r2, 720, 720, 720, atarisy2_state, 720, ROT0, "Atari Games", "720 Degrees (rev 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, 720r1, 720, 720, 720, atarisy2_state, 720, ROT0, "Atari Games", "720 Degrees (rev 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, 720g, 720, 720, 720, atarisy2_state, 720, ROT0, "Atari Games", "720 Degrees (German, rev 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, 720gr1, 720, 720, 720, atarisy2_state, 720, ROT0, "Atari Games", "720 Degrees (German, rev 1)", MACHINE_SUPPORTS_SAVE ) - -GAME( 1986, ssprint, 0, ssprint, ssprint, atarisy2_state, ssprint, ROT0, "Atari Games", "Super Sprint (rev 4)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, ssprint3, ssprint, ssprint, ssprint, atarisy2_state, ssprint, ROT0, "Atari Games", "Super Sprint (rev 3)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, ssprint1, ssprint, ssprint, ssprint, atarisy2_state, ssprint, ROT0, "Atari Games", "Super Sprint (rev 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, ssprintg, ssprint, ssprint, ssprint, atarisy2_state, ssprint, ROT0, "Atari Games", "Super Sprint (German, rev 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, ssprintg1,ssprint, ssprint, ssprint, atarisy2_state, ssprint, ROT0, "Atari Games", "Super Sprint (German, rev 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, ssprintf, ssprint, ssprint, ssprint, atarisy2_state, ssprint, ROT0, "Atari Games", "Super Sprint (French)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, ssprints, ssprint, ssprint, ssprint, atarisy2_state, ssprint, ROT0, "Atari Games", "Super Sprint (Spanish)", MACHINE_SUPPORTS_SAVE ) - -GAME( 1986, csprint, 0, csprint, csprint, atarisy2_state, csprint, ROT0, "Atari Games", "Championship Sprint (rev 3)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, csprint2, csprint, csprint, csprint, atarisy2_state, csprint, ROT0, "Atari Games", "Championship Sprint (rev 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, csprint1, csprint, csprint, csprint, atarisy2_state, csprint, ROT0, "Atari Games", "Championship Sprint (rev 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, csprintg, csprint, csprint, csprint, atarisy2_state, csprint, ROT0, "Atari Games", "Championship Sprint (German, rev 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, csprintg1,csprint, csprint, csprint, atarisy2_state, csprint, ROT0, "Atari Games", "Championship Sprint (German, rev 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, csprintf, csprint, csprint, csprint, atarisy2_state, csprint, ROT0, "Atari Games", "Championship Sprint (French)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, csprints, csprint, csprint, csprint, atarisy2_state, csprint, ROT0, "Atari Games", "Championship Sprint (Spanish, rev 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, csprints1,csprint, csprint, csprint, atarisy2_state, csprint, ROT0, "Atari Games", "Championship Sprint (Spanish, rev 1)", MACHINE_SUPPORTS_SAVE ) - -GAME( 1987, apb, 0, apb, apb, atarisy2_state, apb, ROT270, "Atari Games", "APB - All Points Bulletin (rev 7)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, apb6, apb, apb, apb, atarisy2_state, apb, ROT270, "Atari Games", "APB - All Points Bulletin (rev 6)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, apb5, apb, apb, apb, atarisy2_state, apb, ROT270, "Atari Games", "APB - All Points Bulletin (rev 5)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, apb4, apb, apb, apb, atarisy2_state, apb, ROT270, "Atari Games", "APB - All Points Bulletin (rev 4)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, apb3, apb, apb, apb, atarisy2_state, apb, ROT270, "Atari Games", "APB - All Points Bulletin (rev 3)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, apb2, apb, apb, apb, atarisy2_state, apb, ROT270, "Atari Games", "APB - All Points Bulletin (rev 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, apb1, apb, apb, apb, atarisy2_state, apb, ROT270, "Atari Games", "APB - All Points Bulletin (rev 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, apbg, apb, apb, apb, atarisy2_state, apb, ROT270, "Atari Games", "APB - All Points Bulletin (German)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, apbf, apb, apb, apb, atarisy2_state, apb, ROT270, "Atari Games", "APB - All Points Bulletin (French)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, paperboy, 0, paperboy, paperboy, atarisy2_state, paperboy, ROT0, "Atari Games", "Paperboy (rev 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, paperboyr2,paperboy, paperboy, paperboy, atarisy2_state, paperboy, ROT0, "Atari Games", "Paperboy (rev 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, paperboyr1,paperboy, paperboy, paperboy, atarisy2_state, paperboy, ROT0, "Atari Games", "Paperboy (rev 1)", MACHINE_SUPPORTS_SAVE ) + +GAME( 1986, 720, 0, 720, 720, atarisy2_state, 720, ROT0, "Atari Games", "720 Degrees (rev 4)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, 720r3, 720, 720, 720, atarisy2_state, 720, ROT0, "Atari Games", "720 Degrees (rev 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, 720r2, 720, 720, 720, atarisy2_state, 720, ROT0, "Atari Games", "720 Degrees (rev 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, 720r1, 720, 720, 720, atarisy2_state, 720, ROT0, "Atari Games", "720 Degrees (rev 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, 720g, 720, 720, 720, atarisy2_state, 720, ROT0, "Atari Games", "720 Degrees (German, rev 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, 720gr1, 720, 720, 720, atarisy2_state, 720, ROT0, "Atari Games", "720 Degrees (German, rev 1)", MACHINE_SUPPORTS_SAVE ) + +GAME( 1986, ssprint, 0, ssprint, ssprint, atarisy2_state, ssprint, ROT0, "Atari Games", "Super Sprint (rev 4)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, ssprint3, ssprint, ssprint, ssprint, atarisy2_state, ssprint, ROT0, "Atari Games", "Super Sprint (rev 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, ssprint1, ssprint, ssprint, ssprint, atarisy2_state, ssprint, ROT0, "Atari Games", "Super Sprint (rev 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, ssprintg, ssprint, ssprint, ssprint, atarisy2_state, ssprint, ROT0, "Atari Games", "Super Sprint (German, rev 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, ssprintg1,ssprint, ssprint, ssprint, atarisy2_state, ssprint, ROT0, "Atari Games", "Super Sprint (German, rev 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, ssprintf, ssprint, ssprint, ssprint, atarisy2_state, ssprint, ROT0, "Atari Games", "Super Sprint (French)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, ssprints, ssprint, ssprint, ssprint, atarisy2_state, ssprint, ROT0, "Atari Games", "Super Sprint (Spanish)", MACHINE_SUPPORTS_SAVE ) + +GAME( 1986, csprint, 0, csprint, csprint, atarisy2_state, csprint, ROT0, "Atari Games", "Championship Sprint (rev 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, csprint2, csprint, csprint, csprint, atarisy2_state, csprint, ROT0, "Atari Games", "Championship Sprint (rev 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, csprint1, csprint, csprint, csprint, atarisy2_state, csprint, ROT0, "Atari Games", "Championship Sprint (rev 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, csprintg, csprint, csprint, csprint, atarisy2_state, csprint, ROT0, "Atari Games", "Championship Sprint (German, rev 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, csprintg1,csprint, csprint, csprint, atarisy2_state, csprint, ROT0, "Atari Games", "Championship Sprint (German, rev 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, csprintf, csprint, csprint, csprint, atarisy2_state, csprint, ROT0, "Atari Games", "Championship Sprint (French)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, csprints, csprint, csprint, csprint, atarisy2_state, csprint, ROT0, "Atari Games", "Championship Sprint (Spanish, rev 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, csprints1,csprint, csprint, csprint, atarisy2_state, csprint, ROT0, "Atari Games", "Championship Sprint (Spanish, rev 1)", MACHINE_SUPPORTS_SAVE ) + +GAME( 1987, apb, 0, apb, apb, atarisy2_state, apb, ROT270, "Atari Games", "APB - All Points Bulletin (rev 7)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, apb6, apb, apb, apb, atarisy2_state, apb, ROT270, "Atari Games", "APB - All Points Bulletin (rev 6)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, apb5, apb, apb, apb, atarisy2_state, apb, ROT270, "Atari Games", "APB - All Points Bulletin (rev 5)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, apb4, apb, apb, apb, atarisy2_state, apb, ROT270, "Atari Games", "APB - All Points Bulletin (rev 4)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, apb3, apb, apb, apb, atarisy2_state, apb, ROT270, "Atari Games", "APB - All Points Bulletin (rev 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, apb2, apb, apb, apb, atarisy2_state, apb, ROT270, "Atari Games", "APB - All Points Bulletin (rev 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, apb1, apb, apb, apb, atarisy2_state, apb, ROT270, "Atari Games", "APB - All Points Bulletin (rev 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, apbg, apb, apb, apb, atarisy2_state, apb, ROT270, "Atari Games", "APB - All Points Bulletin (German)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, apbf, apb, apb, apb, atarisy2_state, apb, ROT270, "Atari Games", "APB - All Points Bulletin (French)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/atarisy4.cpp b/src/mame/drivers/atarisy4.cpp index f9cd66b4a72..d9e9f9a3d6e 100644 --- a/src/mame/drivers/atarisy4.cpp +++ b/src/mame/drivers/atarisy4.cpp @@ -175,7 +175,7 @@ struct gpu_ *************************************/ atarisy4_renderer::atarisy4_renderer(atarisy4_state &state, screen_device &screen) - : poly_manager(screen, POLYFLAG_NO_WORK_QUEUE), + : poly_manager(screen, FLAG_NO_WORK_QUEUE), m_state(state) { } @@ -757,7 +757,7 @@ INPUT_PORTS_END * *************************************/ -static MACHINE_CONFIG_START( atarisy4, atarisy4_state ) +static MACHINE_CONFIG_START( atarisy4 ) MCFG_CPU_ADD("maincpu", M68000, 8000000) MCFG_CPU_PROGRAM_MAP(main_map) MCFG_CPU_VBLANK_INT_DRIVER("screen", atarisy4_state, vblank_int) diff --git a/src/mame/drivers/atarittl.cpp b/src/mame/drivers/atarittl.cpp index 924aec9995e..e85e2e2c76a 100644 --- a/src/mame/drivers/atarittl.cpp +++ b/src/mame/drivers/atarittl.cpp @@ -114,7 +114,7 @@ public: } // devices - required_device m_maincpu; + required_device m_maincpu; required_device m_video; protected: @@ -170,7 +170,7 @@ protected: virtual void machine_reset() override; private: - required_device m_maincpu; + required_device m_maincpu; //required_device m_video; required_device m_probe_screen; @@ -306,7 +306,7 @@ uint32_t stuntcyc_state::screen_update_stuntcyc(screen_device &screen, bitmap_rg return 0; } -static MACHINE_CONFIG_START( atarikee, atarikee_state ) +static MACHINE_CONFIG_START( atarikee ) /* basic machine hardware */ MCFG_DEVICE_ADD("maincpu", NETLIST_CPU, NETLIST_CLOCK) MCFG_NETLIST_SETUP(atarikee) @@ -323,7 +323,7 @@ MACHINE_CONFIG_END //#define STUNTCYC_NL_CLOCK (14318181*69) #define STUNTCYC_NL_CLOCK (SC_HTOTAL*SC_VTOTAL*60*140) -static MACHINE_CONFIG_START( stuntcyc, stuntcyc_state ) +static MACHINE_CONFIG_START( stuntcyc ) /* basic machine hardware */ MCFG_DEVICE_ADD("maincpu", NETLIST_CPU, STUNTCYC_NL_CLOCK) MCFG_NETLIST_SETUP(stuntcyc) @@ -630,39 +630,39 @@ ROM_END */ -GAME(1975, antiairc, 0, atarikee, 0, driver_device, 0, ROT0, "Atari", "Anti-Aircraft [TTL]", MACHINE_IS_SKELETON) -GAME(1975, crashnsc, 0, atarikee, 0, driver_device, 0, ROT0, "Atari", "Crash 'n Score/Stock Car [TTL]", MACHINE_IS_SKELETON) -GAME(1976, indy4, 0, atarikee, 0, driver_device, 0, ROT0, "Atari/Kee", "Indy 4 [TTL]", MACHINE_IS_SKELETON) -GAME(1975, indy800, 0, atarikee, 0, driver_device, 0, ROT90, "Atari/Kee", "Indy 800 [TTL]", MACHINE_IS_SKELETON) -GAME(1975, jetfight, 0, atarikee, 0, driver_device, 0, ROT0, "Atari", "Jet Fighter/Jet Fighter Cocktail/Launch Aircraft (set 1) [TTL]", MACHINE_IS_SKELETON) -GAME(1975, jetfighta, jetfight, atarikee, 0, driver_device, 0, ROT0, "Atari", "Jet Fighter/Jet Fighter Cocktail/Launch Aircraft (set 2) [TTL]", MACHINE_IS_SKELETON) -GAME(1976, outlaw, 0, atarikee, 0, driver_device, 0, ROT0, "Atari", "Outlaw [TTL]", MACHINE_IS_SKELETON) -GAME(1975, sharkjaw, 0, atarikee, 0, driver_device, 0, ROT0, "Atari/Horror Games", "Shark JAWS [TTL]", MACHINE_IS_SKELETON) -GAME(1975, steeplec, 0, atarikee, 0, driver_device, 0, ROT0, "Atari", "Steeplechase [TTL]", MACHINE_IS_SKELETON) -GAME(1976, stuntcyc, 0, stuntcyc, 0, driver_device, 0, ROT0, "Atari", "Stunt Cycle [TTL]", MACHINE_IS_SKELETON) -GAME(1974, tank, 0, atarikee, 0, driver_device, 0, ROT0, "Atari/Kee", "Tank/Tank Cocktail [TTL]", MACHINE_IS_SKELETON) -GAME(1975, tankii, 0, atarikee, 0, driver_device, 0, ROT0, "Atari/Kee", "Tank II [TTL]", MACHINE_IS_SKELETON) +GAME(1975, antiairc, 0, atarikee, 0, atarikee_state, 0, ROT0, "Atari", "Anti-Aircraft [TTL]", MACHINE_IS_SKELETON) +GAME(1975, crashnsc, 0, atarikee, 0, atarikee_state, 0, ROT0, "Atari", "Crash 'n Score/Stock Car [TTL]", MACHINE_IS_SKELETON) +GAME(1976, indy4, 0, atarikee, 0, atarikee_state, 0, ROT0, "Atari/Kee", "Indy 4 [TTL]", MACHINE_IS_SKELETON) +GAME(1975, indy800, 0, atarikee, 0, atarikee_state, 0, ROT90, "Atari/Kee", "Indy 800 [TTL]", MACHINE_IS_SKELETON) +GAME(1975, jetfight, 0, atarikee, 0, atarikee_state, 0, ROT0, "Atari", "Jet Fighter/Jet Fighter Cocktail/Launch Aircraft (set 1) [TTL]", MACHINE_IS_SKELETON) +GAME(1975, jetfighta, jetfight, atarikee, 0, atarikee_state, 0, ROT0, "Atari", "Jet Fighter/Jet Fighter Cocktail/Launch Aircraft (set 2) [TTL]", MACHINE_IS_SKELETON) +GAME(1976, outlaw, 0, atarikee, 0, atarikee_state, 0, ROT0, "Atari", "Outlaw [TTL]", MACHINE_IS_SKELETON) +GAME(1975, sharkjaw, 0, atarikee, 0, atarikee_state, 0, ROT0, "Atari/Horror Games", "Shark JAWS [TTL]", MACHINE_IS_SKELETON) +GAME(1975, steeplec, 0, atarikee, 0, atarikee_state, 0, ROT0, "Atari", "Steeplechase [TTL]", MACHINE_IS_SKELETON) +GAME(1976, stuntcyc, 0, stuntcyc, 0, stuntcyc_state, 0, ROT0, "Atari", "Stunt Cycle [TTL]", MACHINE_IS_SKELETON) +GAME(1974, tank, 0, atarikee, 0, atarikee_state, 0, ROT0, "Atari/Kee", "Tank/Tank Cocktail [TTL]", MACHINE_IS_SKELETON) +GAME(1975, tankii, 0, atarikee, 0, atarikee_state, 0, ROT0, "Atari/Kee", "Tank II [TTL]", MACHINE_IS_SKELETON) // MISSING ROM DUMPS -//GAME(1975, astrotrf, steeplec, atarikee, 0, driver_device, 0, ROT0, "Atari", "Astroturf [TTL]", MACHINE_IS_SKELETON) -//GAME(1974, gtrak10, 0, atarikee, 0, driver_device, 0, ROT0, "Atari/Kee", "Gran Trak 10/Trak 10/Formula K [TTL]", MACHINE_IS_SKELETON) //? -//GAME(1974, gtrak20, 0, atarikee, 0, driver_device, 0, ROT0, "Atari/Kee", "Gran Trak 20/Trak 20/Twin Racer [TTL]", MACHINE_IS_SKELETON) //? -//GAME(1976, lemans, 0, atarikee, 0, driver_device, 0, ROT0, "Atari", "Le Mans [TTL]", MACHINE_IS_SKELETON) -//GAME(1974, qwak, 0, atarikee, 0, driver_device, 0, ROT0, "Atari", "Qwak!/Quack [TTL]", MACHINE_IS_SKELETON) +//GAME(1975, astrotrf, steeplec, atarikee, 0, atarikee_state, 0, ROT0, "Atari", "Astroturf [TTL]", MACHINE_IS_SKELETON) +//GAME(1974, gtrak10, 0, atarikee, 0, atarikee_state, 0, ROT0, "Atari/Kee", "Gran Trak 10/Trak 10/Formula K [TTL]", MACHINE_IS_SKELETON) //? +//GAME(1974, gtrak20, 0, atarikee, 0, atarikee_state, 0, ROT0, "Atari/Kee", "Gran Trak 20/Trak 20/Twin Racer [TTL]", MACHINE_IS_SKELETON) //? +//GAME(1976, lemans, 0, atarikee, 0, atarikee_state, 0, ROT0, "Atari", "Le Mans [TTL]", MACHINE_IS_SKELETON) +//GAME(1974, qwak, 0, atarikee, 0, atarikee_state, 0, ROT0, "Atari", "Qwak!/Quack [TTL]", MACHINE_IS_SKELETON) // 100% TTL -//GAME(1974, coupfran, worldcup, atarikee, 0, driver_device, 0, ROT0, "Atari Europe", "Coup Franc [TTL]", MACHINE_IS_SKELETON) -//GAME(1974, coupdmnd, worldcup, atarikee, 0, driver_device, 0, ROT0, "Atari France", "Coup du Monde [TTL]", MACHINE_IS_SKELETON) -//GAME(1975, crossfir, 0, atarikee, 0, driver_device, 0, ROT0, "Atari/Kee", "Crossfire [TTL]", MACHINE_IS_SKELETON) -//GAME(1973, eliminat, 0, atarikee, 0, driver_device, 0, ROT0, "Atari/Kee", "Elimination! [TTL]", MACHINE_IS_SKELETON) -//GAME(1975, goaliv, 0, atarikee, 0, driver_device, 0, ROT0, "Atari", "Goal IV [TTL]", MACHINE_IS_SKELETON) -//GAME(1973, gotchaat, 0, atarikee, 0, driver_device, 0, ROT0, "Atari", "Gotcha [TTL]", MACHINE_IS_SKELETON) //? -//GAME(1973, gotchaatc, 0, atarikee, 0, driver_device, 0, ROT0, "Atari", "Gotcha Color [TTL]", MACHINE_IS_SKELETON) //? -//GAME(1975, hiway, 0, atarikee, 0, driver_device, 0, ROT0, "Atari", "Hi-Way/Highway [TTL]", MACHINE_IS_SKELETON) -//GAME(1974, pinpong, 0, atarikee, 0, driver_device, 0, ROT0, "Atari", "Pin Pong [TTL]", MACHINE_IS_SKELETON) -//GAME(1975, pursuit, 0, atarikee, 0, driver_device, 0, ROT0, "Atari", "Pursuit [TTL]", MACHINE_IS_SKELETON) -//GAME(1974, quadpong, eliminat, atarikee, 0, driver_device, 0, ROT0, "Atari", "Quadrapong [TTL]", MACHINE_IS_SKELETON) -//GAME(1974, rebound, 0, atarikee, 0, driver_device, 0, ROT0, "Atari/Kee", "Rebound/Spike/Volleyball [TTL]", MACHINE_IS_SKELETON) -//GAME(1973, spacrace, 0, atarikee, 0, driver_device, 0, ROT0, "Atari", "Space Race [TTL]", MACHINE_IS_SKELETON) -//GAME(1974, touchme, 0, atarikee, 0, driver_device, 0, ROT0, "Atari", "Touch-Me [TTL]", MACHINE_IS_SKELETON) //? -//GAME(1974, worldcup, 0, atarikee, 0, driver_device, 0, ROT0, "Atari", "World Cup/World Cup Football [TTL]", MACHINE_IS_SKELETON) +//GAME(1974, coupfran, worldcup, atarikee, 0, atarikee_state, 0, ROT0, "Atari Europe", "Coup Franc [TTL]", MACHINE_IS_SKELETON) +//GAME(1974, coupdmnd, worldcup, atarikee, 0, atarikee_state, 0, ROT0, "Atari France", "Coup du Monde [TTL]", MACHINE_IS_SKELETON) +//GAME(1975, crossfir, 0, atarikee, 0, atarikee_state, 0, ROT0, "Atari/Kee", "Crossfire [TTL]", MACHINE_IS_SKELETON) +//GAME(1973, eliminat, 0, atarikee, 0, atarikee_state, 0, ROT0, "Atari/Kee", "Elimination! [TTL]", MACHINE_IS_SKELETON) +//GAME(1975, goaliv, 0, atarikee, 0, atarikee_state, 0, ROT0, "Atari", "Goal IV [TTL]", MACHINE_IS_SKELETON) +//GAME(1973, gotchaat, 0, atarikee, 0, atarikee_state, 0, ROT0, "Atari", "Gotcha [TTL]", MACHINE_IS_SKELETON) //? +//GAME(1973, gotchaatc, 0, atarikee, 0, atarikee_state, 0, ROT0, "Atari", "Gotcha Color [TTL]", MACHINE_IS_SKELETON) //? +//GAME(1975, hiway, 0, atarikee, 0, atarikee_state, 0, ROT0, "Atari", "Hi-Way/Highway [TTL]", MACHINE_IS_SKELETON) +//GAME(1974, pinpong, 0, atarikee, 0, atarikee_state, 0, ROT0, "Atari", "Pin Pong [TTL]", MACHINE_IS_SKELETON) +//GAME(1975, pursuit, 0, atarikee, 0, atarikee_state, 0, ROT0, "Atari", "Pursuit [TTL]", MACHINE_IS_SKELETON) +//GAME(1974, quadpong, eliminat, atarikee, 0, atarikee_state, 0, ROT0, "Atari", "Quadrapong [TTL]", MACHINE_IS_SKELETON) +//GAME(1974, rebound, 0, atarikee, 0, atarikee_state, 0, ROT0, "Atari/Kee", "Rebound/Spike/Volleyball [TTL]", MACHINE_IS_SKELETON) +//GAME(1973, spacrace, 0, atarikee, 0, atarikee_state, 0, ROT0, "Atari", "Space Race [TTL]", MACHINE_IS_SKELETON) +//GAME(1974, touchme, 0, atarikee, 0, atarikee_state, 0, ROT0, "Atari", "Touch-Me [TTL]", MACHINE_IS_SKELETON) //? +//GAME(1974, worldcup, 0, atarikee, 0, atarikee_state, 0, ROT0, "Atari", "World Cup/World Cup Football [TTL]", MACHINE_IS_SKELETON) diff --git a/src/mame/drivers/atetris.cpp b/src/mame/drivers/atetris.cpp index 942f5ae08f1..6b454f78d2d 100644 --- a/src/mame/drivers/atetris.cpp +++ b/src/mame/drivers/atetris.cpp @@ -326,7 +326,7 @@ GFXDECODE_END * *************************************/ -static MACHINE_CONFIG_START( atetris, atetris_state ) +static MACHINE_CONFIG_START( atetris ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502,MASTER_CLOCK/8) @@ -365,7 +365,7 @@ static MACHINE_CONFIG_START( atetris, atetris_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( atetrisb2, atetris_state ) +static MACHINE_CONFIG_START( atetrisb2 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502,BOOTLEG_CLOCK/8) @@ -563,10 +563,10 @@ DRIVER_INIT_MEMBER(atetris_state,atetris) * *************************************/ -GAME( 1988, atetris, 0, atetris, atetris, atetris_state, atetris, ROT0, "Atari Games", "Tetris (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, atetrisa, atetris, atetris, atetris, atetris_state, atetris, ROT0, "Atari Games", "Tetris (set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, atetrisb, atetris, atetris, atetris, atetris_state, atetris, ROT0, "bootleg", "Tetris (bootleg set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, atetrisb2,atetris, atetrisb2, atetris, atetris_state, atetris, ROT0, "bootleg", "Tetris (bootleg set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, atetrisb3,atetris, atetrisb3, atetris, atetris_state, atetris, ROT0, "bootleg", "Tetris (bootleg set 3)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1988, atetris, 0, atetris, atetris, atetris_state, atetris, ROT0, "Atari Games", "Tetris (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, atetrisa, atetris, atetris, atetris, atetris_state, atetris, ROT0, "Atari Games", "Tetris (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, atetrisb, atetris, atetris, atetris, atetris_state, atetris, ROT0, "bootleg", "Tetris (bootleg set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, atetrisb2,atetris, atetrisb2, atetris, atetris_state, atetris, ROT0, "bootleg", "Tetris (bootleg set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, atetrisb3,atetris, atetrisb3, atetris, atetris_state, atetris, ROT0, "bootleg", "Tetris (bootleg set 3)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) GAME( 1989, atetrisc, atetris, atetris, atetrisc, atetris_state, atetris, ROT270, "Atari Games", "Tetris (cocktail set 1)", MACHINE_SUPPORTS_SAVE ) GAME( 1989, atetrisc2,atetris, atetris, atetrisc, atetris_state, atetris, ROT270, "Atari Games", "Tetris (cocktail set 2)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/atlantis.cpp b/src/mame/drivers/atlantis.cpp index 962ed39e825..d2465aca3e3 100644 --- a/src/mame/drivers/atlantis.cpp +++ b/src/mame/drivers/atlantis.cpp @@ -774,7 +774,7 @@ DEVICE_INPUT_DEFAULTS_END #define PCI_ID_9050 ":pci:0b.0" #define PCI_ID_IDE ":pci:0c.0" -static MACHINE_CONFIG_START( mwskins, atlantis_state ) +static MACHINE_CONFIG_START( mwskins ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", VR4310LE, 166666666) // clock is TRUSTED @@ -822,7 +822,7 @@ static MACHINE_CONFIG_START( mwskins, atlantis_state ) if DEBUG_CONSOLE { MCFG_MIDWAY_IOASIC_OUT_TX_CB(DEVWRITE8("uart0", generic_terminal_device, write)) MCFG_DEVICE_ADD("uart0", GENERIC_TERMINAL, 0) - MCFG_GENERIC_TERMINAL_KEYBOARD_CB(DEVWRITE8("ioasic", midway_ioasic_device, serial_rx_w)) + MCFG_GENERIC_TERMINAL_KEYBOARD_CB(DEVPUT("ioasic", midway_ioasic_device, serial_rx_w)) } // TL16C552 UART diff --git a/src/mame/drivers/atm.cpp b/src/mame/drivers/atm.cpp index b06e3e5eaeb..91742ec9a7f 100644 --- a/src/mame/drivers/atm.cpp +++ b/src/mame/drivers/atm.cpp @@ -171,7 +171,7 @@ static GFXDECODE_START( atmtb2 ) GFXDECODE_END -static MACHINE_CONFIG_DERIVED_CLASS( atm, spectrum_128, atm_state ) +static MACHINE_CONFIG_DERIVED( atm, spectrum_128 ) MCFG_CPU_MODIFY("maincpu") MCFG_CPU_IO_MAP(atm_io) MCFG_CPU_DECRYPTED_OPCODES_MAP(atm_switch) @@ -230,8 +230,8 @@ ROM_START( atmtb2 ) ROM_LOAD( "sgen.rom", 0x0000, 0x0800, CRC(1f4387d6) SHA1(93b3774dc8a486643a1bdd48c606b0c84fa0e22b)) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME */ -COMP( 1991, atm, spec128, 0, atm, spec_plus, driver_device, 0, "MicroART", "ATM", MACHINE_NOT_WORKING) -//COMP( 1991, atmtb1, spec128, 0, atm, spec_plus, driver_device, 0, "MicroART", "ATM-turbo1", MACHINE_NOT_WORKING) -COMP( 1993, atmtb2, spec128, 0, atmtb2, spec_plus, driver_device, 0, "MicroART", "ATM-turbo2", MACHINE_NOT_WORKING) -//COMP( 1994, turbo2, spec128, 0, atm, spec_plus, driver_device, 0, "MicroART", "TURBO 2+", MACHINE_NOT_WORKING) +/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME */ +COMP( 1991, atm, spec128, 0, atm, spec_plus, atm_state, 0, "MicroART", "ATM", MACHINE_NOT_WORKING) +//COMP( 1991, atmtb1, spec128, 0, atm, spec_plus, atm_state, 0, "MicroART", "ATM-turbo1", MACHINE_NOT_WORKING) +COMP( 1993, atmtb2, spec128, 0, atmtb2, spec_plus, atm_state, 0, "MicroART", "ATM-turbo2", MACHINE_NOT_WORKING) +//COMP( 1994, turbo2, spec128, 0, atm, spec_plus, atm_state, 0, "MicroART", "TURBO 2+", MACHINE_NOT_WORKING) diff --git a/src/mame/drivers/atom.cpp b/src/mame/drivers/atom.cpp index 20c35fe70f3..db0969a9912 100644 --- a/src/mame/drivers/atom.cpp +++ b/src/mame/drivers/atom.cpp @@ -704,7 +704,7 @@ FLOPPY_FORMATS_END0 MACHINE_DRIVER( atom ) -------------------------------------------------*/ -static MACHINE_CONFIG_START( atom, atom_state ) +static MACHINE_CONFIG_START( atom ) /* basic machine hardware */ MCFG_CPU_ADD(SY6502_TAG, M6502, X2/4) MCFG_CPU_PROGRAM_MAP(atom_mem) @@ -781,7 +781,7 @@ MACHINE_CONFIG_END MCFG_GENERIC_EXTENSIONS("bin,rom") \ MCFG_GENERIC_LOAD(atomeb_state, _load) -static MACHINE_CONFIG_DERIVED_CLASS( atomeb, atom, atomeb_state ) +static MACHINE_CONFIG_DERIVED( atomeb, atom ) MCFG_CPU_MODIFY(SY6502_TAG) MCFG_CPU_PROGRAM_MAP(atomeb_mem) @@ -813,7 +813,7 @@ MACHINE_CONFIG_END MACHINE_DRIVER( atombb ) -------------------------------------------------*/ -static MACHINE_CONFIG_START( atombb, atom_state ) +static MACHINE_CONFIG_START( atombb ) /* basic machine hardware */ MCFG_CPU_ADD(SY6502_TAG, M6502, X2/4) MCFG_CPU_PROGRAM_MAP(atombb_mem) @@ -982,10 +982,10 @@ DRIVER_INIT_MEMBER(atomeb_state, atomeb) SYSTEM DRIVERS ***************************************************************************/ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1979, atom, 0, 0, atom, atom, driver_device, 0, "Acorn", "Atom" , 0) -COMP( 1979, atomeb, atom, 0, atomeb, atom, atomeb_state, atomeb, "Acorn", "Atom with Eprom Box" , 0) -COMP( 1982, atombb, atom, 0, atombb, atom, driver_device, 0, "Acorn", "Atom with BBC Basic" , 0) +/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ +COMP( 1979, atom, 0, 0, atom, atom, atom_state, 0, "Acorn", "Atom" , 0) +COMP( 1979, atomeb, atom, 0, atomeb, atom, atomeb_state, atomeb, "Acorn", "Atom with Eprom Box" , 0) +COMP( 1982, atombb, atom, 0, atombb, atom, atom_state, 0, "Acorn", "Atom with BBC Basic" , 0) //COMP( 1983, prophet2, atom, 0, prophet2, atom, driver_device, 0, "Busicomputers", "Prophet 2" , 0) //COMP( 1983, prophet3, atom, 0, prophet3, atom, driver_device, 0, "Busicomputers", "Prophet 3" , 0) //COMP( 2011, atommc, atom, 0, atommc, atom, driver_device, 0, "Acorn", "Atom with AtoMMC2" , 0) diff --git a/src/mame/drivers/atpci.cpp b/src/mame/drivers/atpci.cpp index 1bad9917343..0e56d6c398d 100644 --- a/src/mame/drivers/atpci.cpp +++ b/src/mame/drivers/atpci.cpp @@ -3,6 +3,7 @@ #include "emu.h" #include "cpu/i386/i386.h" +#include "bus/isa/isa_cards.h" #include "bus/lpci/pci.h" #include "bus/lpci/i82371ab.h" #include "bus/lpci/i82371sb.h" @@ -44,7 +45,7 @@ static ADDRESS_MAP_START( at586_io, AS_IO, 32, at586_state ) AM_RANGE(0x0cf8, 0x0cff) AM_DEVREADWRITE("pcibus", pci_bus_device, read, write) ADDRESS_MAP_END -static MACHINE_CONFIG_START( at586, at586_state ) +static MACHINE_CONFIG_START( at586 ) MCFG_CPU_ADD("maincpu", PENTIUM, 60000000) MCFG_CPU_PROGRAM_MAP(at586_map) MCFG_CPU_IO_MAP(at586_io) @@ -69,7 +70,7 @@ static MACHINE_CONFIG_START( at586, at586_state ) MCFG_FRAGMENT_ADD( at_softlists ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( at586x3, at586_state ) +static MACHINE_CONFIG_START( at586x3 ) MCFG_CPU_ADD("maincpu", PENTIUM, 60000000) MCFG_CPU_PROGRAM_MAP(at586_map) MCFG_CPU_IO_MAP(at586_io) @@ -129,6 +130,6 @@ ROM_START( ficvt503 ) ROMX_LOAD("115gk140.awd", 0x20000, 0x20000, CRC(65e88956) SHA1(f94bb0732e00b5b0f18f4e349db24a289f8379c5), ROM_BIOS(5)) ROM_END -COMP ( 1990, at586, ibm5170, 0, at586, 0, driver_device, 0, "", "PC/AT 586 (PIIX4)", MACHINE_NOT_WORKING ) -COMP ( 1990, at586x3, ibm5170, 0, at586x3, 0, driver_device, 0, "", "PC/AT 586 (PIIX3)", MACHINE_NOT_WORKING ) -COMP ( 1997, ficvt503, ibm5170, 0, at586, 0, driver_device, 0, "FIC", "VT-503", MACHINE_NOT_WORKING ) +COMP ( 1990, at586, ibm5170, 0, at586, 0, at586_state, 0, "", "PC/AT 586 (PIIX4)", MACHINE_NOT_WORKING ) +COMP ( 1990, at586x3, ibm5170, 0, at586x3, 0, at586_state, 0, "", "PC/AT 586 (PIIX3)", MACHINE_NOT_WORKING ) +COMP ( 1997, ficvt503, ibm5170, 0, at586, 0, at586_state, 0, "FIC", "VT-503", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/atronic.cpp b/src/mame/drivers/atronic.cpp index 2dc995b858e..48dd7be2f6a 100644 --- a/src/mame/drivers/atronic.cpp +++ b/src/mame/drivers/atronic.cpp @@ -58,7 +58,7 @@ static INPUT_PORTS_START( atronic ) INPUT_PORTS_END -static MACHINE_CONFIG_START( atronic, atronic_state ) +static MACHINE_CONFIG_START( atronic ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z180, 6000000) MCFG_CPU_PROGRAM_MAP(atronic_map) @@ -815,33 +815,33 @@ ROM_END -GAME( 1999, atronic, 0, atronic, atronic, driver_device, 0, ROT0, "Atronic", "Atronic SetUp/Clear Chips (Russia, set 1)", MACHINE_IS_SKELETON) -GAME( 1999, atronica, atronic, atronic, atronic, driver_device, 0, ROT0, "Atronic", "Atronic SetUp/Clear Chips (Russia, set 2)", MACHINE_IS_SKELETON) - -GAME( 2002, atlantca, 0, atronic, atronic, driver_device, 0, ROT0, "Atronic", "Atlantica (Russia) (Atronic) (set 1)", MACHINE_IS_SKELETON) -GAME( 2002, atlantcaa, atlantca, atronic, atronic, driver_device, 0, ROT0, "Atronic", "Atlantica (Russia) (Atronic) (set 2)", MACHINE_IS_SKELETON) -GAME( 2002, baboshka, 0, atronic, atronic, driver_device, 0, ROT0, "Atronic", "Baboshka (Russia) (Atronic)", MACHINE_IS_SKELETON) -GAME( 2002, cfblue, 0, atronic, atronic, driver_device, 0, ROT0, "Atronic", "Crazy Fruits Blue (Russia) (Atronic) (set 1)", MACHINE_IS_SKELETON) -GAME( 2002, cfbluea, cfblue, atronic, atronic, driver_device, 0, ROT0, "Atronic", "Crazy Fruits Blue (Russia) (Atronic) (set 2)", MACHINE_IS_SKELETON) -GAME( 2002, cfgreen, 0, atronic, atronic, driver_device, 0, ROT0, "Atronic", "Crazy Fruits Green (Russia) (Atronic)", MACHINE_IS_SKELETON) -GAME( 2002, chicken, 0, atronic, atronic, driver_device, 0, ROT0, "Atronic", "Chicken (Russia) (Atronic)", MACHINE_IS_SKELETON) -GAME( 2002, aclown, 0, atronic, atronic, driver_device, 0, ROT0, "Atronic", "Clown (Russia) (Atronic)", MACHINE_IS_SKELETON) -GAME( 2002, goldglen, 0, atronic, atronic, driver_device, 0, ROT0, "Atronic", "Golden Glenn (Russia) (Atronic)", MACHINE_IS_SKELETON) -GAME( 2002, iccash, 0, atronic, atronic, driver_device, 0, ROT0, "Atronic", "I C Cash (Russia) (Atronic)", MACHINE_IS_SKELETON) -GAME( 2002, shpinxii, 0, atronic, atronic, driver_device, 0, ROT0, "Atronic", "Sphinx II (Russia) (Atronic)", MACHINE_IS_SKELETON) -GAME( 2002, bearnec, 0, atronic, atronic, driver_device, 0, ROT0, "Atronic", "Bear Necessities (Russia) (Atronic)", MACHINE_IS_SKELETON) -GAME( 2002, beachpt, 0, atronic, atronic, driver_device, 0, ROT0, "Atronic", "Beach Patrol (Russia) (Atronic)", MACHINE_IS_SKELETON) -GAME( 2002, beetleup, 0, atronic, atronic, driver_device, 0, ROT0, "Atronic", "Beetles Unplugged (Russia) (Atronic)", MACHINE_IS_SKELETON) -GAME( 2002, abigchs, 0, atronic, atronic, driver_device, 0, ROT0, "Atronic", "Big Cheese (Russia) (Atronic)", MACHINE_IS_SKELETON) -GAME( 2002, bigblue, 0, atronic, atronic, driver_device, 0, ROT0, "Atronic", "Big Blue (Russia) (Atronic)", MACHINE_IS_SKELETON) -GAME( 2002, castaway, 0, atronic, atronic, driver_device, 0, ROT0, "Atronic", "Castaway (Russia) (Atronic) (set 1)", MACHINE_IS_SKELETON) -GAME( 2002, castawaya, castaway, atronic, atronic, driver_device, 0, ROT0, "Atronic", "Castaway (Russia) (Atronic) (set 2)", MACHINE_IS_SKELETON) -GAME( 2002, dncsprt, 0, atronic, atronic, driver_device, 0, ROT0, "Atronic", "Dancing Spirit (Russia) (Atronic)", MACHINE_IS_SKELETON) -GAME( 2002, drmmake, 0, atronic, atronic, driver_device, 0, ROT0, "Atronic", "Dream Maker (Russia) (Atronic)", MACHINE_IS_SKELETON) -GAME( 2002, goldcity, 0, atronic, atronic, driver_device, 0, ROT0, "Atronic", "Gold City (Russia) (Atronic)", MACHINE_IS_SKELETON) -GAME( 2002, jumpjkpt, 0, atronic, atronic, driver_device, 0, ROT0, "Atronic", "Jumping Jackpots (Russia) (Atronic)", MACHINE_IS_SKELETON) -GAME( 2002, mushmagi, 0, atronic, atronic, driver_device, 0, ROT0, "Atronic", "Mushroom Magic (Russia) (Atronic)", MACHINE_IS_SKELETON) -GAME( 2002, santam, 0, atronic, atronic, driver_device, 0, ROT0, "Atronic", "Santa Maria (Russia) (Atronic)", MACHINE_IS_SKELETON) -GAME( 2002, splmastr, 0, atronic, atronic, driver_device, 0, ROT0, "Atronic", "Spell Master (Russia) (Atronic)", MACHINE_IS_SKELETON) -GAME( 2002, tajmah, 0, atronic, atronic, driver_device, 0, ROT0, "Atronic", "Tajmahal (Russia) (Atronic)", MACHINE_IS_SKELETON) -GAME( 2002, 3wishrd, 0, atronic, atronic, driver_device, 0, ROT0, "Atronic", "Three Wishes Red (Russia) (Atronic)", MACHINE_IS_SKELETON) +GAME( 1999, atronic, 0, atronic, atronic, atronic_state, 0, ROT0, "Atronic", "Atronic SetUp/Clear Chips (Russia, set 1)", MACHINE_IS_SKELETON) +GAME( 1999, atronica, atronic, atronic, atronic, atronic_state, 0, ROT0, "Atronic", "Atronic SetUp/Clear Chips (Russia, set 2)", MACHINE_IS_SKELETON) + +GAME( 2002, atlantca, 0, atronic, atronic, atronic_state, 0, ROT0, "Atronic", "Atlantica (Russia) (Atronic) (set 1)", MACHINE_IS_SKELETON) +GAME( 2002, atlantcaa, atlantca, atronic, atronic, atronic_state, 0, ROT0, "Atronic", "Atlantica (Russia) (Atronic) (set 2)", MACHINE_IS_SKELETON) +GAME( 2002, baboshka, 0, atronic, atronic, atronic_state, 0, ROT0, "Atronic", "Baboshka (Russia) (Atronic)", MACHINE_IS_SKELETON) +GAME( 2002, cfblue, 0, atronic, atronic, atronic_state, 0, ROT0, "Atronic", "Crazy Fruits Blue (Russia) (Atronic) (set 1)", MACHINE_IS_SKELETON) +GAME( 2002, cfbluea, cfblue, atronic, atronic, atronic_state, 0, ROT0, "Atronic", "Crazy Fruits Blue (Russia) (Atronic) (set 2)", MACHINE_IS_SKELETON) +GAME( 2002, cfgreen, 0, atronic, atronic, atronic_state, 0, ROT0, "Atronic", "Crazy Fruits Green (Russia) (Atronic)", MACHINE_IS_SKELETON) +GAME( 2002, chicken, 0, atronic, atronic, atronic_state, 0, ROT0, "Atronic", "Chicken (Russia) (Atronic)", MACHINE_IS_SKELETON) +GAME( 2002, aclown, 0, atronic, atronic, atronic_state, 0, ROT0, "Atronic", "Clown (Russia) (Atronic)", MACHINE_IS_SKELETON) +GAME( 2002, goldglen, 0, atronic, atronic, atronic_state, 0, ROT0, "Atronic", "Golden Glenn (Russia) (Atronic)", MACHINE_IS_SKELETON) +GAME( 2002, iccash, 0, atronic, atronic, atronic_state, 0, ROT0, "Atronic", "I C Cash (Russia) (Atronic)", MACHINE_IS_SKELETON) +GAME( 2002, shpinxii, 0, atronic, atronic, atronic_state, 0, ROT0, "Atronic", "Sphinx II (Russia) (Atronic)", MACHINE_IS_SKELETON) +GAME( 2002, bearnec, 0, atronic, atronic, atronic_state, 0, ROT0, "Atronic", "Bear Necessities (Russia) (Atronic)", MACHINE_IS_SKELETON) +GAME( 2002, beachpt, 0, atronic, atronic, atronic_state, 0, ROT0, "Atronic", "Beach Patrol (Russia) (Atronic)", MACHINE_IS_SKELETON) +GAME( 2002, beetleup, 0, atronic, atronic, atronic_state, 0, ROT0, "Atronic", "Beetles Unplugged (Russia) (Atronic)", MACHINE_IS_SKELETON) +GAME( 2002, abigchs, 0, atronic, atronic, atronic_state, 0, ROT0, "Atronic", "Big Cheese (Russia) (Atronic)", MACHINE_IS_SKELETON) +GAME( 2002, bigblue, 0, atronic, atronic, atronic_state, 0, ROT0, "Atronic", "Big Blue (Russia) (Atronic)", MACHINE_IS_SKELETON) +GAME( 2002, castaway, 0, atronic, atronic, atronic_state, 0, ROT0, "Atronic", "Castaway (Russia) (Atronic) (set 1)", MACHINE_IS_SKELETON) +GAME( 2002, castawaya, castaway, atronic, atronic, atronic_state, 0, ROT0, "Atronic", "Castaway (Russia) (Atronic) (set 2)", MACHINE_IS_SKELETON) +GAME( 2002, dncsprt, 0, atronic, atronic, atronic_state, 0, ROT0, "Atronic", "Dancing Spirit (Russia) (Atronic)", MACHINE_IS_SKELETON) +GAME( 2002, drmmake, 0, atronic, atronic, atronic_state, 0, ROT0, "Atronic", "Dream Maker (Russia) (Atronic)", MACHINE_IS_SKELETON) +GAME( 2002, goldcity, 0, atronic, atronic, atronic_state, 0, ROT0, "Atronic", "Gold City (Russia) (Atronic)", MACHINE_IS_SKELETON) +GAME( 2002, jumpjkpt, 0, atronic, atronic, atronic_state, 0, ROT0, "Atronic", "Jumping Jackpots (Russia) (Atronic)", MACHINE_IS_SKELETON) +GAME( 2002, mushmagi, 0, atronic, atronic, atronic_state, 0, ROT0, "Atronic", "Mushroom Magic (Russia) (Atronic)", MACHINE_IS_SKELETON) +GAME( 2002, santam, 0, atronic, atronic, atronic_state, 0, ROT0, "Atronic", "Santa Maria (Russia) (Atronic)", MACHINE_IS_SKELETON) +GAME( 2002, splmastr, 0, atronic, atronic, atronic_state, 0, ROT0, "Atronic", "Spell Master (Russia) (Atronic)", MACHINE_IS_SKELETON) +GAME( 2002, tajmah, 0, atronic, atronic, atronic_state, 0, ROT0, "Atronic", "Tajmahal (Russia) (Atronic)", MACHINE_IS_SKELETON) +GAME( 2002, 3wishrd, 0, atronic, atronic, atronic_state, 0, ROT0, "Atronic", "Three Wishes Red (Russia) (Atronic)", MACHINE_IS_SKELETON) diff --git a/src/mame/drivers/attache.cpp b/src/mame/drivers/attache.cpp index cefcf0877cb..e26c5ff5521 100644 --- a/src/mame/drivers/attache.cpp +++ b/src/mame/drivers/attache.cpp @@ -912,7 +912,7 @@ void attache_state::machine_reset() m_kb_bitpos = 0; } -static MACHINE_CONFIG_START( attache, attache_state ) +static MACHINE_CONFIG_START( attache ) MCFG_CPU_ADD("maincpu",Z80,XTAL_8MHz / 2) MCFG_CPU_PROGRAM_MAP(attache_map) MCFG_CPU_IO_MAP(attache_io) @@ -996,5 +996,5 @@ ROM_START( attache ) ROM_LOAD("u630.bin", 0x0000, 0x0100, CRC(f7a5c821) SHA1(fea07d9ac7e4e5f4f72aa7b2159deaedbd662ead) ) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT DEVICE INIT COMPANY FULLNAME FLAGS */ -COMP( 1982, attache, 0, 0, attache, attache, driver_device, 0, "Otrona", "Attach\xC3\xA9", MACHINE_IMPERFECT_GRAPHICS) +// YEAR NAME PARENT COMPAT MACHINE INPUT DEVICE INIT COMPANY FULLNAME FLAGS +COMP( 1982, attache, 0, 0, attache, attache, attache_state, 0, "Otrona", "Attach\xC3\xA9", MACHINE_IMPERFECT_GRAPHICS ) diff --git a/src/mame/drivers/attckufo.cpp b/src/mame/drivers/attckufo.cpp index fe89d3ba6b7..6fc3635ccd4 100644 --- a/src/mame/drivers/attckufo.cpp +++ b/src/mame/drivers/attckufo.cpp @@ -110,7 +110,7 @@ READ8_MEMBER(attckufo_state::vic_colorram_r) // MACHINE DEFINTIONS //************************************************************************** -static MACHINE_CONFIG_START( attckufo, attckufo_state ) +static MACHINE_CONFIG_START( attckufo ) MCFG_CPU_ADD("maincpu", M6502, XTAL_14_31818MHz / 14) MCFG_CPU_PROGRAM_MAP(cpu_map) @@ -145,5 +145,5 @@ ROM_END // SYSTEM DRIVERS //************************************************************************** -// YEAR NAME PARENT MACHINE INPUT CLASS INIT ROTATION COMPANY FULLNAME FLAGS -GAME( 1980, attckufo, 0, attckufo, attckufo, driver_device, 0, ROT270, "Ryoto Electric Co.", "Attack UFO", MACHINE_SUPPORTS_SAVE ) +// YEAR NAME PARENT MACHINE INPUT CLASS INIT ROTATION COMPANY FULLNAME FLAGS +GAME( 1980, attckufo, 0, attckufo, attckufo, attckufo_state, 0, ROT270, "Ryoto Electric Co.", "Attack UFO", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/atvtrack.cpp b/src/mame/drivers/atvtrack.cpp index e1511d85895..d1b693e01be 100644 --- a/src/mame/drivers/atvtrack.cpp +++ b/src/mame/drivers/atvtrack.cpp @@ -541,7 +541,7 @@ INPUT_PORTS_END #define ATV_CPU_CLOCK XTAL_33MHz*6 -static MACHINE_CONFIG_START( atvtrack, atvtrack_state ) +static MACHINE_CONFIG_START( atvtrack ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", SH4LE, ATV_CPU_CLOCK) MCFG_SH4_MD0(1) @@ -582,7 +582,7 @@ static MACHINE_CONFIG_START( atvtrack, atvtrack_state ) MCFG_PALETTE_ADD("palette", 0x1000) MACHINE_CONFIG_END -static MACHINE_CONFIG_DERIVED_CLASS( smashdrv, atvtrack, smashdrv_state ) +static MACHINE_CONFIG_DERIVED( smashdrv, atvtrack ) MCFG_CPU_MODIFY("maincpu") MCFG_CPU_PROGRAM_MAP(smashdrv_main_map) MCFG_CPU_IO_MAP(smashdrv_main_port) @@ -662,8 +662,8 @@ ROM_START( smashdrv ) // ic21 unpopulated ROM_END -GAME( 2002, atvtrack, 0, atvtrack, atvtrack, driver_device, 0, ROT0, "Gaelco", "ATV Track (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -GAME( 2002, atvtracka, atvtrack, atvtrack, atvtrack, driver_device, 0, ROT0, "Gaelco", "ATV Track (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +GAME( 2002, atvtrack, 0, atvtrack, atvtrack, atvtrack_state, 0, ROT0, "Gaelco", "ATV Track (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +GAME( 2002, atvtracka, atvtrack, atvtrack, atvtrack, atvtrack_state, 0, ROT0, "Gaelco", "ATV Track (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // almost identical PCB, FlashROM mapping and master registers addresses different -GAME( 2000, smashdrv, 0, smashdrv, atvtrack, driver_device, 0, ROT0, "Gaelco", "Smashing Drive (UK)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +GAME( 2000, smashdrv, 0, smashdrv, atvtrack, smashdrv_state, 0, ROT0, "Gaelco", "Smashing Drive (UK)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/aussiebyte.cpp b/src/mame/drivers/aussiebyte.cpp index 1b15abc1bc9..9e118f17243 100644 --- a/src/mame/drivers/aussiebyte.cpp +++ b/src/mame/drivers/aussiebyte.cpp @@ -57,7 +57,7 @@ static ADDRESS_MAP_START( aussiebyte_io, AS_IO, 8, aussiebyte_state ) AM_RANGE(0x04, 0x07) AM_DEVREADWRITE("pio1", z80pio_device, read, write) AM_RANGE(0x08, 0x0b) AM_DEVREADWRITE("ctc", z80ctc_device, read, write) AM_RANGE(0x0c, 0x0f) AM_NOP // winchester interface - AM_RANGE(0x10, 0x13) AM_DEVREADWRITE("fdc", wd2797_t, read, write) + AM_RANGE(0x10, 0x13) AM_DEVREADWRITE("fdc", wd2797_device, read, write) AM_RANGE(0x14, 0x14) AM_DEVREADWRITE("dma", z80dma_device, read, write) AM_RANGE(0x15, 0x15) AM_WRITE(port15_w) // boot rom disable AM_RANGE(0x16, 0x16) AM_WRITE(port16_w) // fdd select @@ -465,7 +465,7 @@ MACHINE_RESET_MEMBER( aussiebyte_state, aussiebyte ) m_maincpu->reset(); } -static MACHINE_CONFIG_START( aussiebyte, aussiebyte_state ) +static MACHINE_CONFIG_START( aussiebyte ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_16MHz / 4) MCFG_CPU_PROGRAM_MAP(aussiebyte_map) @@ -595,5 +595,5 @@ ROM_START(aussieby) ROM_REGION(0x00800, "aram", ROMREGION_ERASEFF) // attribute ram, 2k static ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS COMP( 1984, aussieby, 0, 0, aussiebyte, aussiebyte, aussiebyte_state, aussiebyte, "SME Systems", "Aussie Byte II" , MACHINE_IMPERFECT_GRAPHICS ) diff --git a/src/mame/drivers/avalnche.cpp b/src/mame/drivers/avalnche.cpp index 0ac8ba7b61d..a4960480e4d 100644 --- a/src/mame/drivers/avalnche.cpp +++ b/src/mame/drivers/avalnche.cpp @@ -246,7 +246,7 @@ void avalnche_state::machine_reset() m_avalance_video_inverted = 0; } -static MACHINE_CONFIG_START( avalnche, avalnche_state ) +static MACHINE_CONFIG_START( avalnche ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502,MASTER_CLOCK/16) /* clock input is the "2H" signal divided by two */ @@ -328,6 +328,6 @@ ROM_END * *************************************/ -GAMEL( 1978, avalnche, 0, avalnche, avalnche, driver_device, 0, ROT0, "Atari", "Avalanche", MACHINE_SUPPORTS_SAVE, layout_avalnche ) -GAMEL( 1978, cascade, avalnche, avalnche, cascade, driver_device, 0, ROT0, "bootleg? (Sidam)", "Cascade", MACHINE_SUPPORTS_SAVE, layout_avalnche ) -GAME ( 1977, catchp, 0, catch, catch, driver_device, 0, ROT0, "Atari", "Catch (prototype)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND ) // pre-production board, evolved into Avalanche +GAMEL( 1978, avalnche, 0, avalnche, avalnche, avalnche_state, 0, ROT0, "Atari", "Avalanche", MACHINE_SUPPORTS_SAVE, layout_avalnche ) +GAMEL( 1978, cascade, avalnche, avalnche, cascade, avalnche_state, 0, ROT0, "bootleg? (Sidam)", "Cascade", MACHINE_SUPPORTS_SAVE, layout_avalnche ) +GAME ( 1977, catchp, 0, catch, catch, avalnche_state, 0, ROT0, "Atari", "Catch (prototype)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND ) // pre-production board, evolved into Avalanche diff --git a/src/mame/drivers/avigo.cpp b/src/mame/drivers/avigo.cpp index b0d826f4403..15b6dc5b769 100644 --- a/src/mame/drivers/avigo.cpp +++ b/src/mame/drivers/avigo.cpp @@ -746,7 +746,7 @@ void avigo_state::nvram_init(nvram_device &nvram, void *base, size_t size) memset(base, 0x00, size); } -static MACHINE_CONFIG_START( avigo, avigo_state ) +static MACHINE_CONFIG_START( avigo ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 4000000) MCFG_CPU_PROGRAM_MAP(avigo_mem) @@ -904,9 +904,9 @@ ROM_START(avigo_it) ROMX_LOAD("italian_100.rom", 0x000000, 0x050000, CRC(de359218) SHA1(6185727aba8ffc98723f2df74dda388fd0d70cc9), ROM_BIOS(3)) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ -COMP(1997, avigo, 0, 0, avigo, avigo, driver_device, 0, "Texas Instruments", "TI Avigo 10 PDA", MACHINE_SUPPORTS_SAVE) -COMP(1997, avigo_de, avigo, 0, avigo, avigo, driver_device, 0, "Texas Instruments", "TI Avigo 10 PDA (German)", MACHINE_SUPPORTS_SAVE) -COMP(1997, avigo_fr, avigo, 0, avigo, avigo, driver_device, 0, "Texas Instruments", "TI Avigo 10 PDA (French)", MACHINE_SUPPORTS_SAVE) -COMP(1997, avigo_es, avigo, 0, avigo, avigo, driver_device, 0, "Texas Instruments", "TI Avigo 10 PDA (Spanish)", MACHINE_SUPPORTS_SAVE) -COMP(1997, avigo_it, avigo, 0, avigo, avigo, driver_device, 0, "Texas Instruments", "TI Avigo 10 PDA (Italian)", MACHINE_SUPPORTS_SAVE) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP(1997, avigo, 0, 0, avigo, avigo, avigo_state, 0, "Texas Instruments", "TI Avigo 10 PDA", MACHINE_SUPPORTS_SAVE) +COMP(1997, avigo_de, avigo, 0, avigo, avigo, avigo_state, 0, "Texas Instruments", "TI Avigo 10 PDA (German)", MACHINE_SUPPORTS_SAVE) +COMP(1997, avigo_fr, avigo, 0, avigo, avigo, avigo_state, 0, "Texas Instruments", "TI Avigo 10 PDA (French)", MACHINE_SUPPORTS_SAVE) +COMP(1997, avigo_es, avigo, 0, avigo, avigo, avigo_state, 0, "Texas Instruments", "TI Avigo 10 PDA (Spanish)", MACHINE_SUPPORTS_SAVE) +COMP(1997, avigo_it, avigo, 0, avigo, avigo, avigo_state, 0, "Texas Instruments", "TI Avigo 10 PDA (Italian)", MACHINE_SUPPORTS_SAVE) diff --git a/src/mame/drivers/avt.cpp b/src/mame/drivers/avt.cpp index 27a70b3663e..2e8f2d83b22 100644 --- a/src/mame/drivers/avt.cpp +++ b/src/mame/drivers/avt.cpp @@ -928,7 +928,7 @@ INTERRUPT_GEN_MEMBER(avt_state::avt_vblank_irq) m_maincpu->set_input_line_and_vector(0, HOLD_LINE, 0x06); } -static MACHINE_CONFIG_START( avt, avt_state ) +static MACHINE_CONFIG_START( avt ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, CPU_CLOCK) /* guess */ @@ -1031,8 +1031,8 @@ ROM_END * Game Drivers * *********************************************/ -/* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS */ -GAME( 1985, avtsym14, 0, avt, symbols, driver_device, 0, ROT0, "Advanced Video Technology", "Symbols (ver 1.4)", MACHINE_NOT_WORKING ) -GAME( 1985, avtsym25, avtsym14, avt, symbols, driver_device, 0, ROT0, "Advanced Video Technology", "Symbols (ver 2.5)", MACHINE_NOT_WORKING ) -GAME( 1985, avtbingo, 0, avt, avtbingo, driver_device, 0, ROT0, "Advanced Video Technology", "Arrow Bingo", MACHINE_NOT_WORKING ) -GAME( 1989, avtnfl, 0, avt, symbols, driver_device, 0, ROT0, "Advanced Video Technology", "NFL (ver 109)", MACHINE_NOT_WORKING ) +/* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS */ +GAME( 1985, avtsym14, 0, avt, symbols, avt_state, 0, ROT0, "Advanced Video Technology", "Symbols (ver 1.4)", MACHINE_NOT_WORKING ) +GAME( 1985, avtsym25, avtsym14, avt, symbols, avt_state, 0, ROT0, "Advanced Video Technology", "Symbols (ver 2.5)", MACHINE_NOT_WORKING ) +GAME( 1985, avtbingo, 0, avt, avtbingo, avt_state, 0, ROT0, "Advanced Video Technology", "Arrow Bingo", MACHINE_NOT_WORKING ) +GAME( 1989, avtnfl, 0, avt, symbols, avt_state, 0, ROT0, "Advanced Video Technology", "NFL (ver 109)", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/ax20.cpp b/src/mame/drivers/ax20.cpp index 3d4d16805f2..ab4382bf502 100644 --- a/src/mame/drivers/ax20.cpp +++ b/src/mame/drivers/ax20.cpp @@ -121,7 +121,7 @@ static SLOT_INTERFACE_START( ax20_floppies ) SLOT_INTERFACE( "525dd", FLOPPY_525_DD ) SLOT_INTERFACE_END -static MACHINE_CONFIG_START( ax20, ax20_state ) +static MACHINE_CONFIG_START( ax20 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8088, XTAL_14_31818MHz/3) MCFG_CPU_PROGRAM_MAP(ax20_map) @@ -156,5 +156,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1982, ax20, 0, 0, ax20, ax20, driver_device, 0, "Axel", "AX-20", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1982, ax20, 0, 0, ax20, ax20, ax20_state, 0, "Axel", "AX-20", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/aztarac.cpp b/src/mame/drivers/aztarac.cpp index 83d09547a1c..7c4b92ce0fa 100644 --- a/src/mame/drivers/aztarac.cpp +++ b/src/mame/drivers/aztarac.cpp @@ -147,7 +147,7 @@ INPUT_PORTS_END * *************************************/ -static MACHINE_CONFIG_START( aztarac, aztarac_state ) +static MACHINE_CONFIG_START( aztarac ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 8000000) @@ -231,4 +231,4 @@ ROM_END * *************************************/ -GAME( 1983, aztarac, 0, aztarac, aztarac, driver_device, 0, ROT0, "Centuri", "Aztarac", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, aztarac, 0, aztarac, aztarac, aztarac_state, 0, ROT0, "Centuri", "Aztarac", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/b16.cpp b/src/mame/drivers/b16.cpp index e79f5118d9c..30944f6e273 100644 --- a/src/mame/drivers/b16.cpp +++ b/src/mame/drivers/b16.cpp @@ -269,7 +269,7 @@ WRITE8_MEMBER(b16_state::memory_write_byte) } -static MACHINE_CONFIG_START( b16, b16_state ) +static MACHINE_CONFIG_START( b16 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",I8086, XTAL_14_31818MHz/2) //unknown xtal MCFG_CPU_PROGRAM_MAP(b16_map) @@ -309,5 +309,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1983, b16, 0, 0, b16, b16, driver_device, 0, "Hitachi", "B16", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +COMP( 1983, b16, 0, 0, b16, b16, b16_state, 0, "Hitachi", "B16", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) diff --git a/src/mame/drivers/b2m.cpp b/src/mame/drivers/b2m.cpp index e2c5cc17ec5..d9c02c4d791 100644 --- a/src/mame/drivers/b2m.cpp +++ b/src/mame/drivers/b2m.cpp @@ -42,7 +42,7 @@ static ADDRESS_MAP_START( b2m_io, AS_IO, 8, b2m_state ) AM_RANGE(0x14, 0x15) AM_DEVREADWRITE("pic8259", pic8259_device, read, write ) AM_RANGE(0x18, 0x18) AM_DEVREADWRITE("uart", i8251_device, data_r, data_w) AM_RANGE(0x19, 0x19) AM_DEVREADWRITE("uart", i8251_device, status_r, control_w) - AM_RANGE(0x1c, 0x1f) AM_DEVREADWRITE("fd1793", fd1793_t, read, write) + AM_RANGE(0x1c, 0x1f) AM_DEVREADWRITE("fd1793", fd1793_device, read, write) ADDRESS_MAP_END static ADDRESS_MAP_START( b2m_rom_io, AS_IO, 8, b2m_state ) @@ -185,7 +185,7 @@ SLOT_INTERFACE_END /* Machine driver */ -static MACHINE_CONFIG_START( b2m, b2m_state ) +static MACHINE_CONFIG_START( b2m ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8080, 2000000) MCFG_CPU_PROGRAM_MAP(b2m_mem) @@ -271,6 +271,6 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1989, b2m, 0, 0, b2m, b2m, b2m_state, b2m, "BNPO", "Bashkiria-2M", MACHINE_SUPPORTS_SAVE) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +COMP( 1989, b2m, 0, 0, b2m, b2m, b2m_state, b2m, "BNPO", "Bashkiria-2M", MACHINE_SUPPORTS_SAVE) COMP( 1989, b2mrom, b2m, 0, b2mrom, b2m, b2m_state, b2m, "BNPO", "Bashkiria-2M ROM-disk", MACHINE_SUPPORTS_SAVE) diff --git a/src/mame/drivers/babbage.cpp b/src/mame/drivers/babbage.cpp index bf1306f8b94..0a95392ff13 100644 --- a/src/mame/drivers/babbage.cpp +++ b/src/mame/drivers/babbage.cpp @@ -232,7 +232,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(babbage_state::keyboard_callback) ***************************************************************************/ -static MACHINE_CONFIG_START( babbage, babbage_state ) +static MACHINE_CONFIG_START( babbage ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, MAIN_CLOCK) //2.5MHz MCFG_CPU_PROGRAM_MAP(babbage_map) @@ -274,5 +274,5 @@ ROM_START(babbage) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ -COMP( 1986, babbage, 0, 0, babbage, babbage, driver_device, 0, "Mr Takafumi Aihara", "Babbage-2nd" , MACHINE_NO_SOUND_HW ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1986, babbage, 0, 0, babbage, babbage, babbage_state, 0, "Mr Takafumi Aihara", "Babbage-2nd" , MACHINE_NO_SOUND_HW ) diff --git a/src/mame/drivers/backfire.cpp b/src/mame/drivers/backfire.cpp index f47a0122384..4999e338d2f 100644 --- a/src/mame/drivers/backfire.cpp +++ b/src/mame/drivers/backfire.cpp @@ -470,7 +470,7 @@ void backfire_state::machine_start() { } -static MACHINE_CONFIG_START( backfire, backfire_state ) +static MACHINE_CONFIG_START( backfire ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", ARM, 28000000/4) /* Unconfirmed */ diff --git a/src/mame/drivers/badlands.cpp b/src/mame/drivers/badlands.cpp index f57601ec47b..74ed52cf817 100644 --- a/src/mame/drivers/badlands.cpp +++ b/src/mame/drivers/badlands.cpp @@ -499,7 +499,7 @@ GFXDECODE_END * *************************************/ -static MACHINE_CONFIG_START( badlands, badlands_state ) +static MACHINE_CONFIG_START( badlands ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, ATARI_CLOCK_14MHz/2) @@ -754,7 +754,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(badlands_state::bootleg_sound_scanline) m_audiocpu->set_input_line(0, HOLD_LINE); } -static MACHINE_CONFIG_START( badlandsb, badlands_state ) +static MACHINE_CONFIG_START( badlandsb ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_28MHz/4) /* Divisor estimated */ @@ -866,5 +866,5 @@ ROM_END -GAME( 1989, badlandsb, badlands, badlandsb, badlandsb, driver_device, 0, ROT0, "bootleg (Playmark)", "Bad Lands (bootleg)", MACHINE_NOT_WORKING ) -GAME( 1989, badlandsb2,badlands, badlandsb, badlandsb, driver_device, 0, ROT0, "bootleg (Playmark)", "Bad Lands (bootleg, alternate)", MACHINE_NOT_WORKING ) +GAME( 1989, badlandsb, badlands, badlandsb, badlandsb, badlands_state, 0, ROT0, "bootleg (Playmark)", "Bad Lands (bootleg)", MACHINE_NOT_WORKING ) +GAME( 1989, badlandsb2,badlands, badlandsb, badlandsb, badlands_state, 0, ROT0, "bootleg (Playmark)", "Bad Lands (bootleg, alternate)", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/bagman.cpp b/src/mame/drivers/bagman.cpp index c6ee3f2298b..872bd79cdde 100644 --- a/src/mame/drivers/bagman.cpp +++ b/src/mame/drivers/bagman.cpp @@ -462,7 +462,7 @@ INTERRUPT_GEN_MEMBER(bagman_state::vblank_irq) } -static MACHINE_CONFIG_START( bagman, bagman_state ) +static MACHINE_CONFIG_START( bagman ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, BAGMAN_H0) @@ -511,7 +511,7 @@ static MACHINE_CONFIG_START( bagman, bagman_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( pickin, bagman_state ) +static MACHINE_CONFIG_START( pickin ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, BAGMAN_H0) @@ -561,7 +561,7 @@ z80 */ -static MACHINE_CONFIG_START( botanic, bagman_state ) +static MACHINE_CONFIG_START( botanic ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, BAGMAN_H0) @@ -1023,20 +1023,20 @@ DRIVER_INIT_MEMBER(bagman_state,bagman) } -GAME( 1982, bagman, 0, bagman, bagman, bagman_state, bagman, ROT270, "Valadon Automation", "Bagman", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, bagnard, bagman, bagman, bagman, bagman_state, bagman, ROT270, "Valadon Automation", "Le Bagnard (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, bagnarda, bagman, bagman, bagman, bagman_state, bagman, ROT270, "Valadon Automation", "Le Bagnard (set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, bagnardi, bagman, bagman, bagman, bagman_state, bagman, ROT90, "Valadon Automation (Itisa license)", "Le Bagnard (Itisa, Spain)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, bagmans, bagman, bagman, bagmans, bagman_state, bagman, ROT270, "Valadon Automation (Stern Electronics license)", "Bagman (Stern Electronics, set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, bagmans2, bagman, bagman, bagman, bagman_state, bagman, ROT270, "Valadon Automation (Stern Electronics license)", "Bagman (Stern Electronics, set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, bagmanj, bagman, bagman, bagman, bagman_state, bagman, ROT270, "Valadon Automation (Taito license)", "Bagman (Taito)", MACHINE_SUPPORTS_SAVE ) // title screen actually doesn't mention Valadon, only Stern and Taito +GAME( 1982, bagman, 0, bagman, bagman, bagman_state, bagman, ROT270, "Valadon Automation", "Bagman", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, bagnard, bagman, bagman, bagman, bagman_state, bagman, ROT270, "Valadon Automation", "Le Bagnard (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, bagnarda, bagman, bagman, bagman, bagman_state, bagman, ROT270, "Valadon Automation", "Le Bagnard (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, bagnardi, bagman, bagman, bagman, bagman_state, bagman, ROT90, "Valadon Automation (Itisa license)", "Le Bagnard (Itisa, Spain)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, bagmans, bagman, bagman, bagmans, bagman_state, bagman, ROT270, "Valadon Automation (Stern Electronics license)", "Bagman (Stern Electronics, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, bagmans2, bagman, bagman, bagman, bagman_state, bagman, ROT270, "Valadon Automation (Stern Electronics license)", "Bagman (Stern Electronics, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, bagmanj, bagman, bagman, bagman, bagman_state, bagman, ROT270, "Valadon Automation (Taito license)", "Bagman (Taito)", MACHINE_SUPPORTS_SAVE ) // title screen actually doesn't mention Valadon, only Stern and Taito -GAME( 1984, sbagman, 0, bagman, sbagman, driver_device, 0, ROT270, "Valadon Automation", "Super Bagman", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, sbagmans, sbagman, bagman, sbagman, driver_device, 0, ROT270, "Valadon Automation (Stern Electronics license)", "Super Bagman (Stern Electronics)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, sbagman, 0, bagman, sbagman, bagman_state, 0, ROT270, "Valadon Automation", "Super Bagman", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, sbagmans, sbagman, bagman, sbagman, bagman_state, 0, ROT270, "Valadon Automation (Stern Electronics license)", "Super Bagman (Stern Electronics)", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, pickin, 0, pickin, pickin, driver_device, 0, ROT270, "Valadon Automation", "Pickin'", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, pickin, 0, pickin, pickin, bagman_state, 0, ROT270, "Valadon Automation", "Pickin'", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, botanic, 0, botanic, botanici,driver_device, 0, ROT90, "Itisa", "Botanic (English / Spanish)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, botanicf, botanic, botanic, botanicf,driver_device, 0, ROT270, "Itisa (Valadon Automation license)", "Botanic (French)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, botanic, 0, botanic, botanici, bagman_state, 0, ROT90, "Itisa", "Botanic (English / Spanish)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, botanicf, botanic, botanic, botanicf, bagman_state, 0, ROT270, "Itisa (Valadon Automation license)", "Botanic (French)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, squaitsa, 0, squaitsa,squaitsa, driver_device,0, ROT0, "Itisa", "Squash (Itisa)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, squaitsa, 0, squaitsa, squaitsa, bagman_state, 0, ROT0, "Itisa", "Squash (Itisa)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/bailey.cpp b/src/mame/drivers/bailey.cpp index 15232f62605..ef1f4c9a34d 100644 --- a/src/mame/drivers/bailey.cpp +++ b/src/mame/drivers/bailey.cpp @@ -44,7 +44,7 @@ public: } // devices - required_device m_maincpu; + required_device m_maincpu; required_device m_video; protected: @@ -87,7 +87,7 @@ void bailey_state::video_start() { } -static MACHINE_CONFIG_START( bailey, bailey_state ) +static MACHINE_CONFIG_START( bailey ) /* basic machine hardware */ MCFG_DEVICE_ADD("maincpu", NETLIST_CPU, NETLIST_CLOCK) @@ -152,5 +152,5 @@ ROM_START( fun4a ) ROM_END -GAME( 1976, fun4, 0, bailey, 0, driver_device, 0, ROT0, "Bailey International", "Fun Four (set 1) [TTL]", MACHINE_IS_SKELETON ) -GAME( 1976, fun4a, fun4, bailey, 0, driver_device, 0, ROT0, "Bailey International", "Fun Four (set 2) [TTL]", MACHINE_IS_SKELETON ) +GAME( 1976, fun4, 0, bailey, 0, bailey_state, 0, ROT0, "Bailey International", "Fun Four (set 1) [TTL]", MACHINE_IS_SKELETON ) +GAME( 1976, fun4a, fun4, bailey, 0, bailey_state, 0, ROT0, "Bailey International", "Fun Four (set 2) [TTL]", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/balsente.cpp b/src/mame/drivers/balsente.cpp index a151aeaeb7f..3a5768cb1f4 100644 --- a/src/mame/drivers/balsente.cpp +++ b/src/mame/drivers/balsente.cpp @@ -1277,7 +1277,7 @@ INPUT_PORTS_END * *************************************/ -static MACHINE_CONFIG_START( balsente, balsente_state ) +static MACHINE_CONFIG_START( balsente ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809, XTAL_20MHz/16) /* xtal verified but not speed */ diff --git a/src/mame/drivers/banctec.cpp b/src/mame/drivers/banctec.cpp index 1fc03c95f40..d98b0d8897c 100644 --- a/src/mame/drivers/banctec.cpp +++ b/src/mame/drivers/banctec.cpp @@ -127,7 +127,7 @@ static GFXDECODE_START( banctec ) GFXDECODE_ENTRY( "chargen", 0x00000, banctec_gfx_layout, 0, 1 ) GFXDECODE_END -static MACHINE_CONFIG_START( banctec, banctec_state ) +static MACHINE_CONFIG_START( banctec ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I80C31, XTAL_11_0592MHz) @@ -173,5 +173,5 @@ ROM_END ***************************************************************************/ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT MONITOR COMPANY FULLNAME */ -CONS( 1989, banctec, 0, 0, banctec, 0, driver_device, 0, "DALE Electronics", "BancTec ESeries Panel", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT MONITOR COMPANY FULLNAME */ +CONS( 1989, banctec, 0, 0, banctec, 0, banctec_state, 0, "DALE Electronics", "BancTec ESeries Panel", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) diff --git a/src/mame/drivers/bankp.cpp b/src/mame/drivers/bankp.cpp index d9e507395d5..3f0e4bb52ef 100644 --- a/src/mame/drivers/bankp.cpp +++ b/src/mame/drivers/bankp.cpp @@ -291,7 +291,7 @@ INTERRUPT_GEN_MEMBER(bankp_state::vblank_irq) device.execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE); } -static MACHINE_CONFIG_START( bankp, bankp_state ) +static MACHINE_CONFIG_START( bankp ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, MASTER_CLOCK/6) @@ -398,5 +398,5 @@ ROM_END * *************************************/ -GAME( 1984, bankp, 0, bankp, bankp, driver_device, 0, ROT0, "Sanritsu / Sega", "Bank Panic", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, combh, 0, bankp, combh, driver_device, 0, ROT270, "Sanritsu / Sega", "Combat Hawk", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, bankp, 0, bankp, bankp, bankp_state, 0, ROT0, "Sanritsu / Sega", "Bank Panic", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, combh, 0, bankp, combh, bankp_state, 0, ROT270, "Sanritsu / Sega", "Combat Hawk", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/baraduke.cpp b/src/mame/drivers/baraduke.cpp index 3984f5e82d9..831d408aa11 100644 --- a/src/mame/drivers/baraduke.cpp +++ b/src/mame/drivers/baraduke.cpp @@ -370,7 +370,7 @@ GFXDECODE_END -static MACHINE_CONFIG_START( baraduke, baraduke_state ) +static MACHINE_CONFIG_START( baraduke ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809, XTAL_49_152MHz/32) diff --git a/src/mame/drivers/barata.cpp b/src/mame/drivers/barata.cpp index 97dedb53ecb..5cd63e07c58 100644 --- a/src/mame/drivers/barata.cpp +++ b/src/mame/drivers/barata.cpp @@ -304,7 +304,7 @@ ADDRESS_MAP_END * Machine Drivers * ************************/ -static MACHINE_CONFIG_START( barata, barata_state ) +static MACHINE_CONFIG_START( barata ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8051, CPU_CLOCK) MCFG_CPU_IO_MAP(i8051_io_port) @@ -329,4 +329,4 @@ ROM_END /************************* * Game Drivers * *************************/ -GAME( 2002, barata, 0, barata, barata, driver_device, 0, ROT0, "Eletro Matic Equipamentos Eletromec??nicos", "Dona Barata (early prototype)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 2002, barata, 0, barata, barata, barata_state, 0, ROT0, "Eletro Matic Equipamentos Eletromec??nicos", "Dona Barata (early prototype)", MACHINE_IMPERFECT_GRAPHICS ) diff --git a/src/mame/drivers/barni.cpp b/src/mame/drivers/barni.cpp index 2e2c93788c7..05dad500f51 100644 --- a/src/mame/drivers/barni.cpp +++ b/src/mame/drivers/barni.cpp @@ -56,7 +56,7 @@ ADDRESS_MAP_END static INPUT_PORTS_START( barni ) INPUT_PORTS_END -static MACHINE_CONFIG_START( barni, barni_state ) +static MACHINE_CONFIG_START( barni ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809, 2000000) MCFG_CPU_PROGRAM_MAP(maincpu_map) @@ -99,4 +99,4 @@ ROM_START(redbarnp) ROM_END -GAME( 1985, redbarnp, 0, barni, barni, driver_device, 0, ROT0, "Barni", "Red Baron (Pinball)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 1985, redbarnp, 0, barni, barni, barni_state, 0, ROT0, "Barni", "Red Baron (Pinball)", MACHINE_IS_SKELETON_MECHANICAL ) diff --git a/src/mame/drivers/bartop52.cpp b/src/mame/drivers/bartop52.cpp index 30b2ba9f84f..37fde21a7bd 100644 --- a/src/mame/drivers/bartop52.cpp +++ b/src/mame/drivers/bartop52.cpp @@ -34,12 +34,11 @@ class bartop52_state : public atari_common_state public: bartop52_state(const machine_config &mconfig, device_type type, const char *tag) : atari_common_state(mconfig, type, tag) - { } + { } TIMER_DEVICE_CALLBACK_MEMBER( bartop_interrupt ); virtual void machine_reset() override; - //required_device m_maincpu; // maincpu is already contained in atari_common_state }; @@ -120,9 +119,9 @@ TIMER_DEVICE_CALLBACK_MEMBER( bartop52_state::bartop_interrupt ) m_antic->generic_interrupt(4); } -static MACHINE_CONFIG_START( a5200, bartop52_state ) +static MACHINE_CONFIG_START( a5200 ) /* basic machine hardware */ - MCFG_CPU_ADD("maincpu", M6502, FREQ_17_EXACT) + MCFG_CPU_ADD("maincpu", M6502, pokey_device::FREQ_17_EXACT) MCFG_CPU_PROGRAM_MAP(a5200_mem) MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", bartop52_state, bartop_interrupt, "screen", 0, 1) @@ -134,9 +133,9 @@ static MACHINE_CONFIG_START( a5200, bartop52_state ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(1)) - MCFG_SCREEN_VISIBLE_AREA(MIN_X, MAX_X, MIN_Y, MAX_Y) - MCFG_SCREEN_REFRESH_RATE(FRAME_RATE_60HZ) - MCFG_SCREEN_SIZE(HWIDTH*8, TOTAL_LINES_60HZ) + MCFG_SCREEN_VISIBLE_AREA_ANTIC() + MCFG_SCREEN_REFRESH_RATE_ANTIC_60HZ() + MCFG_SCREEN_SIZE_ANTIC_60HZ() MCFG_SCREEN_UPDATE_DEVICE("antic", antic_device, screen_update) MCFG_SCREEN_PALETTE("palette") @@ -146,7 +145,7 @@ static MACHINE_CONFIG_START( a5200, bartop52_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_SOUND_ADD("pokey", POKEY, FREQ_17_EXACT) + MCFG_SOUND_ADD("pokey", POKEY, pokey_device::FREQ_17_EXACT) MCFG_POKEY_POT0_R_CB(IOPORT("analog_0")) MCFG_POKEY_POT1_R_CB(IOPORT("analog_1")) MCFG_POKEY_POT2_R_CB(IOPORT("analog_2")) @@ -164,4 +163,4 @@ ROM_START(barbball) ROM_LOAD( "5200.rom", 0xf800, 0x0800, BAD_DUMP CRC(4248d3e3) SHA1(6ad7a1e8c9fad486fbec9498cb48bf5bc3adc530) ) ROM_END -GAME( 1983, barbball, 0, a5200, bartop52, driver_device, 0, ROT0, "Atari", "Barroom Baseball (prototype)", MACHINE_NOT_WORKING ) +GAME( 1983, barbball, 0, a5200, bartop52, bartop52_state, 0, ROT0, "Atari", "Barroom Baseball (prototype)", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/basic52.cpp b/src/mame/drivers/basic52.cpp index a972bb9f1d0..e2daa857e20 100644 --- a/src/mame/drivers/basic52.cpp +++ b/src/mame/drivers/basic52.cpp @@ -48,7 +48,7 @@ public: { } - DECLARE_WRITE8_MEMBER(kbd_put); + void kbd_put(u8 data); DECLARE_READ8_MEMBER(unk_r); uint8_t m_term_data; required_device m_maincpu; @@ -91,14 +91,14 @@ READ8_MEMBER( basic52_state::unk_r) } -WRITE8_MEMBER( basic52_state::kbd_put ) +void basic52_state::kbd_put(u8 data) { m_maincpu->set_input_line(MCS51_RX_LINE, ASSERT_LINE); m_maincpu->set_input_line(MCS51_RX_LINE, CLEAR_LINE); m_term_data = data; } -static MACHINE_CONFIG_START( basic31, basic52_state ) +static MACHINE_CONFIG_START( basic31 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8031, XTAL_11_0592MHz) MCFG_CPU_PROGRAM_MAP(basic52_mem) @@ -108,7 +108,7 @@ static MACHINE_CONFIG_START( basic31, basic52_state ) /* video hardware */ MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0) - MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(basic52_state, kbd_put)) + MCFG_GENERIC_TERMINAL_KEYBOARD_CB(PUT(basic52_state, kbd_put)) MCFG_DEVICE_ADD("ppi8255", I8255, 0) MACHINE_CONFIG_END @@ -142,6 +142,6 @@ ROM_START( basic31 ) ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1985, basic52, 0, 0, basic52, basic52, driver_device, 0, "Intel", "MCS BASIC 52", MACHINE_NO_SOUND_HW) -COMP( 1985, basic31, basic52, 0, basic31, basic52, driver_device, 0, "Intel", "MCS BASIC 31", MACHINE_NO_SOUND_HW) +/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ +COMP( 1985, basic52, 0, 0, basic52, basic52, basic52_state, 0, "Intel", "MCS BASIC 52", MACHINE_NO_SOUND_HW) +COMP( 1985, basic31, basic52, 0, basic31, basic52, basic52_state, 0, "Intel", "MCS BASIC 31", MACHINE_NO_SOUND_HW) diff --git a/src/mame/drivers/batman.cpp b/src/mame/drivers/batman.cpp index aff359cac85..158ee3a7aa0 100644 --- a/src/mame/drivers/batman.cpp +++ b/src/mame/drivers/batman.cpp @@ -196,7 +196,7 @@ GFXDECODE_END * *************************************/ -static MACHINE_CONFIG_START( batman, batman_state ) +static MACHINE_CONFIG_START( batman ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, ATARI_CLOCK_14MHz) @@ -309,4 +309,4 @@ ROM_END * *************************************/ -GAME( 1991, batman, 0, batman, batman, driver_device, 0, ROT0, "Atari Games", "Batman", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, batman, 0, batman, batman, batman_state, 0, ROT0, "Atari Games", "Batman", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/battlane.cpp b/src/mame/drivers/battlane.cpp index 4f35cb7c9ad..2b0101e93e5 100644 --- a/src/mame/drivers/battlane.cpp +++ b/src/mame/drivers/battlane.cpp @@ -270,7 +270,7 @@ void battlane_state::machine_reset() m_cpu_control = 0; } -static MACHINE_CONFIG_START( battlane, battlane_state ) +static MACHINE_CONFIG_START( battlane ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809, 1500000) /* 1.5 MHz ? */ @@ -402,6 +402,6 @@ ROM_END * *************************************/ -GAME( 1986, battlane, 0, battlane, battlane, driver_device, 0, ROT90, "Technos Japan (Taito license)", "Battle Lane! Vol. 5 (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, battlane2, battlane, battlane, battlane, driver_device, 0, ROT90, "Technos Japan (Taito license)", "Battle Lane! Vol. 5 (set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, battlane3, battlane, battlane, battlane, driver_device, 0, ROT90, "Technos Japan (Taito license)", "Battle Lane! Vol. 5 (set 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, battlane, 0, battlane, battlane, battlane_state, 0, ROT90, "Technos Japan (Taito license)", "Battle Lane! Vol. 5 (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, battlane2, battlane, battlane, battlane, battlane_state, 0, ROT90, "Technos Japan (Taito license)", "Battle Lane! Vol. 5 (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, battlane3, battlane, battlane, battlane, battlane_state, 0, ROT90, "Technos Japan (Taito license)", "Battle Lane! Vol. 5 (set 3)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/battlera.cpp b/src/mame/drivers/battlera.cpp index 42a4d47b1f1..89411d0dfa2 100644 --- a/src/mame/drivers/battlera.cpp +++ b/src/mame/drivers/battlera.cpp @@ -268,7 +268,7 @@ uint32_t battlera_state::screen_update(screen_device &screen, bitmap_ind16 &bitm } -static MACHINE_CONFIG_START( battlera, battlera_state ) +static MACHINE_CONFIG_START( battlera ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", H6280,21477200/3) @@ -280,7 +280,7 @@ static MACHINE_CONFIG_START( battlera, battlera_state ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(MAIN_CLOCK, HUC6260_WPF, 64, 64 + 1024 + 64, HUC6260_LPF, 18, 18 + 242) + MCFG_SCREEN_RAW_PARAMS(MAIN_CLOCK, huc6260_device::WPF, 64, 64 + 1024 + 64, huc6260_device::LPF, 18, 18 + 242) MCFG_SCREEN_UPDATE_DRIVER( battlera_state, screen_update ) MCFG_SCREEN_PALETTE("huc6260:palette") @@ -304,7 +304,7 @@ static MACHINE_CONFIG_START( battlera, battlera_state ) MCFG_SOUND_ADD("msm", MSM5205, 384000) MCFG_MSM5205_VCLK_CB(WRITELINE(battlera_state, adpcm_int)) /* interrupt function */ - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S48_4B) /* 8KHz */ + MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) /* 8KHz */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.85) MCFG_SOUND_ADD("c6280", C6280, 21477270/6) @@ -372,6 +372,6 @@ ROM_END /******************************************************************************/ -GAME( 1988, battlera, 0, battlera, battlera, driver_device, 0, ROT0, "Data East Corporation", "Battle Rangers (World)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1988, bldwolf, battlera, battlera, battlera, driver_device, 0, ROT0, "Data East USA", "Bloody Wolf (US)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1988, bldwolfj, battlera, battlera, battlera, driver_device, 0, ROT0, "Data East Corporation", "Narazumono Sentoubutai Bloody Wolf (Japan)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1988, battlera, 0, battlera, battlera, battlera_state, 0, ROT0, "Data East Corporation", "Battle Rangers (World)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1988, bldwolf, battlera, battlera, battlera, battlera_state, 0, ROT0, "Data East USA", "Bloody Wolf (US)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1988, bldwolfj, battlera, battlera, battlera, battlera_state, 0, ROT0, "Data East Corporation", "Narazumono Sentoubutai Bloody Wolf (Japan)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/battlex.cpp b/src/mame/drivers/battlex.cpp index a46cecc16da..dc3f78f4c94 100644 --- a/src/mame/drivers/battlex.cpp +++ b/src/mame/drivers/battlex.cpp @@ -288,7 +288,7 @@ void battlex_state::machine_reset() m_in0_b4 = 0; } -static MACHINE_CONFIG_START( battlex, battlex_state ) +static MACHINE_CONFIG_START( battlex ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80,XTAL_10MHz/4 ) // ? @@ -430,4 +430,4 @@ DRIVER_INIT_MEMBER(battlex_state,battlex) *************************************/ GAME( 1982, battlex, 0, battlex, battlex, battlex_state, battlex, ROT180, "Omori Electric Co., Ltd.", "Battle Cross", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL ) -GAME( 1983, dodgeman, 0, dodgeman, dodgeman, battlex_state, battlex, ROT180, "Omori Electric Co., Ltd.", "Dodge Man", MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL ) +GAME( 1983, dodgeman, 0, dodgeman, dodgeman, battlex_state, battlex, ROT180, "Omori Electric Co., Ltd.", "Dodge Man", MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL ) diff --git a/src/mame/drivers/battlnts.cpp b/src/mame/drivers/battlnts.cpp index a6c298df3a7..c696358af6a 100644 --- a/src/mame/drivers/battlnts.cpp +++ b/src/mame/drivers/battlnts.cpp @@ -229,7 +229,7 @@ void battlnts_state::machine_reset() m_spritebank = 0; } -static MACHINE_CONFIG_START( battlnts, battlnts_state ) +static MACHINE_CONFIG_START( battlnts ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", HD6309, XTAL_24MHz / 2 /* 3000000*4? */) @@ -381,9 +381,9 @@ ROM_END * *************************************/ -GAME( 1987, battlnts, 0, battlnts, battlnts, driver_device, 0, ROT90, "Konami", "Battlantis (program code G)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, battlntsa, battlnts, battlnts, battlnts, driver_device, 0, ROT90, "Konami", "Battlantis (program code F)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, battlntsj, battlnts, battlnts, battlnts, driver_device, 0, ROT90, "Konami", "Battlantis (Japan, program code E)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, rackemup, 0, battlnts, rackemup, driver_device, 0, ROT90, "Konami", "Rack 'em Up (program code L)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1987, thehustl, rackemup, battlnts, thehustl, driver_device, 0, ROT90, "Konami", "The Hustler (Japan, program code M)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1987, thehustlj, rackemup, battlnts, thehustl, driver_device, 0, ROT90, "Konami", "The Hustler (Japan, program code J)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1987, battlnts, 0, battlnts, battlnts, battlnts_state, 0, ROT90, "Konami", "Battlantis (program code G)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, battlntsa, battlnts, battlnts, battlnts, battlnts_state, 0, ROT90, "Konami", "Battlantis (program code F)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, battlntsj, battlnts, battlnts, battlnts, battlnts_state, 0, ROT90, "Konami", "Battlantis (Japan, program code E)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, rackemup, 0, battlnts, rackemup, battlnts_state, 0, ROT90, "Konami", "Rack 'em Up (program code L)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1987, thehustl, rackemup, battlnts, thehustl, battlnts_state, 0, ROT90, "Konami", "The Hustler (Japan, program code M)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1987, thehustlj, rackemup, battlnts, thehustl, battlnts_state, 0, ROT90, "Konami", "The Hustler (Japan, program code J)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/bbc.cpp b/src/mame/drivers/bbc.cpp index eee2bbf9444..47f1cd92fa4 100644 --- a/src/mame/drivers/bbc.cpp +++ b/src/mame/drivers/bbc.cpp @@ -221,7 +221,7 @@ static ADDRESS_MAP_START( bbcbp_mem, AS_PROGRAM, 8, bbc_state ) AM_RANGE(0xfe30, 0xfe3f) AM_READWRITE(bbc_fe_r, bbc_page_selectbp_w) /* R: fe30-fe3f NC Not Connected */ /* W: fe30-fe3f 84LS161 Paged ROM selector */ AM_RANGE(0xfe80, 0xfe83) AM_WRITE(bbc_wd1770_status_w) /* fe80-fe83 1770 FDC Drive control register */ - AM_RANGE(0xfe84, 0xfe9f) AM_DEVREADWRITE("wd1770", wd1770_t, read, write) /* fe84-fe9f 1770 FDC Floppy disc controller */ + AM_RANGE(0xfe84, 0xfe9f) AM_DEVREADWRITE("wd1770", wd1770_device, read, write) /* fe84-fe9f 1770 FDC Floppy disc controller */ AM_IMPORT_FROM(bbc_base) ADDRESS_MAP_END @@ -234,7 +234,7 @@ static ADDRESS_MAP_START( bbcbp128_mem, AS_PROGRAM, 8, bbc_state ) AM_RANGE(0xfe30, 0xfe3f) AM_READWRITE(bbc_fe_r, bbc_page_selectbp_w) /* R: fe30-fe3f NC Not Connected */ /* W: fe30-fe3f 84LS161 Paged ROM selector */ AM_RANGE(0xfe80, 0xfe83) AM_WRITE(bbc_wd1770_status_w) /* fe80-fe83 1770 FDC Drive control register */ - AM_RANGE(0xfe84, 0xfe9f) AM_DEVREADWRITE("wd1770", wd1770_t, read, write) /* fe84-fe9f 1770 FDC Floppy disc controller */ + AM_RANGE(0xfe84, 0xfe9f) AM_DEVREADWRITE("wd1770", wd1770_device, read, write) /* fe84-fe9f 1770 FDC Floppy disc controller */ AM_IMPORT_FROM(bbc_base) ADDRESS_MAP_END @@ -836,7 +836,7 @@ MACHINE_CONFIG_END ****************************************************************************/ -static MACHINE_CONFIG_START( bbca, bbc_state ) +static MACHINE_CONFIG_START( bbca ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, XTAL_16MHz/8) /* 2.00 MHz */ MCFG_CPU_PROGRAM_MAP(bbca_mem) @@ -1269,7 +1269,7 @@ MACHINE_CONFIG_END ****************************************************************************/ -static MACHINE_CONFIG_START( bbcm, bbc_state ) +static MACHINE_CONFIG_START( bbcm ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M65SC02, XTAL_16MHz/8) /* 2.00 MHz */ MCFG_CPU_PROGRAM_MAP(bbcm_mem) diff --git a/src/mame/drivers/bbcbc.cpp b/src/mame/drivers/bbcbc.cpp index aaa2adff968..f366001a5dd 100644 --- a/src/mame/drivers/bbcbc.cpp +++ b/src/mame/drivers/bbcbc.cpp @@ -122,7 +122,7 @@ static const z80_daisy_config bbcbc_daisy_chain[] = }; -static MACHINE_CONFIG_START( bbcbc, bbcbc_state ) +static MACHINE_CONFIG_START( bbcbc ) MCFG_CPU_ADD( "maincpu", Z80, MAIN_CLOCK / 8 ) MCFG_CPU_PROGRAM_MAP(bbcbc_prg) MCFG_CPU_IO_MAP(bbcbc_io) @@ -189,5 +189,5 @@ ROM_END ***************************************************************************/ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -CONS(1985, bbcbc, 0, 0, bbcbc, bbcbc, driver_device, 0, "Unicard", "BBC Bridge Companion", MACHINE_NO_SOUND_HW | MACHINE_SUPPORTS_SAVE) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +CONS(1985, bbcbc, 0, 0, bbcbc, bbcbc, bbcbc_state, 0, "Unicard", "BBC Bridge Companion", MACHINE_NO_SOUND_HW | MACHINE_SUPPORTS_SAVE) diff --git a/src/mame/drivers/bbusters.cpp b/src/mame/drivers/bbusters.cpp index 9737e107089..6b784911298 100644 --- a/src/mame/drivers/bbusters.cpp +++ b/src/mame/drivers/bbusters.cpp @@ -647,7 +647,7 @@ GFXDECODE_END /******************************************************************************/ -static MACHINE_CONFIG_START( bbusters, bbusters_state ) +static MACHINE_CONFIG_START( bbusters ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 12000000) @@ -692,7 +692,7 @@ static MACHINE_CONFIG_START( bbusters, bbusters_state ) MCFG_SOUND_ROUTE(2, "rspeaker", 1.0) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( mechatt, bbusters_state ) +static MACHINE_CONFIG_START( mechatt ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 12000000) @@ -1114,12 +1114,12 @@ ROM_END /******************************************************************************/ // as soon as you calibrate the guns in test mode the game refuses to boot -GAME( 1989, bbusters, 0, bbusters, bbusters, driver_device, 0, ROT0, "SNK", "Beast Busters (World)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1989, bbustersu, bbusters, bbusters, bbusters, driver_device, 0, ROT0, "SNK", "Beast Busters (US, Version 3)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1989, bbustersua, bbusters, bbusters, bbusters, driver_device, 0, ROT0, "SNK", "Beast Busters (US, Version 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1989, bbustersj, bbusters, bbusters, bbusters, driver_device, 0, ROT0, "SNK", "Beast Busters (Japan, Version 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) - -GAME( 1989, mechatt, 0, mechatt, mechatt, driver_device, 0, ROT0, "SNK", "Mechanized Attack (World)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, mechattj, mechatt, mechatt, mechattj, driver_device, 0, ROT0, "SNK", "Mechanized Attack (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, mechattu, mechatt, mechatt, mechattu, driver_device, 0, ROT0, "SNK", "Mechanized Attack (US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, mechattu1, mechatt, mechatt, mechattu, driver_device, 0, ROT0, "SNK", "Mechanized Attack (US, Version 1, Single Player)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, bbusters, 0, bbusters, bbusters, bbusters_state, 0, ROT0, "SNK", "Beast Busters (World)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1989, bbustersu, bbusters, bbusters, bbusters, bbusters_state, 0, ROT0, "SNK", "Beast Busters (US, Version 3)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1989, bbustersua, bbusters, bbusters, bbusters, bbusters_state, 0, ROT0, "SNK", "Beast Busters (US, Version 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1989, bbustersj, bbusters, bbusters, bbusters, bbusters_state, 0, ROT0, "SNK", "Beast Busters (Japan, Version 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) + +GAME( 1989, mechatt, 0, mechatt, mechatt, bbusters_state, 0, ROT0, "SNK", "Mechanized Attack (World)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, mechattj, mechatt, mechatt, mechattj, bbusters_state, 0, ROT0, "SNK", "Mechanized Attack (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, mechattu, mechatt, mechatt, mechattu, bbusters_state, 0, ROT0, "SNK", "Mechanized Attack (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, mechattu1, mechatt, mechatt, mechattu, bbusters_state, 0, ROT0, "SNK", "Mechanized Attack (US, Version 1, Single Player)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/bcs3.cpp b/src/mame/drivers/bcs3.cpp index 496b43d317a..e015a97d214 100644 --- a/src/mame/drivers/bcs3.cpp +++ b/src/mame/drivers/bcs3.cpp @@ -374,7 +374,7 @@ DRIVER_INIT_MEMBER( bcs3_state, bcs3d ) s_cols = 29; } -static MACHINE_CONFIG_START( bcs3, bcs3_state ) +static MACHINE_CONFIG_START( bcs3 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_5MHz /2) @@ -401,7 +401,7 @@ static MACHINE_CONFIG_START( bcs3, bcs3_state ) MCFG_CASSETTE_ADD( "cassette" ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( bcs3a, bcs3_state ) +static MACHINE_CONFIG_START( bcs3a ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_7MHz /2) @@ -486,9 +486,9 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1984, bcs3, 0, 0, bcs3, bcs3, driver_device, 0, "Eckhard Schiller", "BCS 3 rev 2.4", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ +COMP( 1984, bcs3, 0, 0, bcs3, bcs3, bcs3_state, 0, "Eckhard Schiller", "BCS 3 rev 2.4", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW ) COMP( 1986, bcs3a, bcs3, 0, bcs3a, bcs3, bcs3_state, bcs3a, "Eckhard Schiller", "BCS 3 rev 3.1 29-column", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW ) COMP( 1986, bcs3b, bcs3, 0, bcs3b, bcs3, bcs3_state, bcs3b, "Eckhard Schiller", "BCS 3 rev 3.1 40-column", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW ) -COMP( 1986, bcs3c, bcs3, 0, bcs3a, bcs3, bcs3_state, bcs3c, "Eckhard Schiller", "BCS 3 rev 3.2", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW ) -COMP( 1986, bcs3d, bcs3, 0, bcs3a, bcs3, bcs3_state, bcs3d, "Eckhard Schiller", "BCS 3 rev 3.3", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW ) +COMP( 1986, bcs3c, bcs3, 0, bcs3a, bcs3, bcs3_state, bcs3c, "Eckhard Schiller", "BCS 3 rev 3.2", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW ) +COMP( 1986, bcs3d, bcs3, 0, bcs3a, bcs3, bcs3_state, bcs3d, "Eckhard Schiller", "BCS 3 rev 3.3", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW ) diff --git a/src/mame/drivers/beaminv.cpp b/src/mame/drivers/beaminv.cpp index dcd8e7d0594..9056cbef8d8 100644 --- a/src/mame/drivers/beaminv.cpp +++ b/src/mame/drivers/beaminv.cpp @@ -335,7 +335,7 @@ INPUT_PORTS_END * *************************************/ -static MACHINE_CONFIG_START( beaminv, beaminv_state ) +static MACHINE_CONFIG_START( beaminv ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 2000000) /* 2 MHz ? */ @@ -389,5 +389,5 @@ ROM_END * *************************************/ -GAMEL( 1979, beaminv, 0, beaminv, beaminv, driver_device, 0, ROT270, "Teknon Kogyo", "Beam Invader", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE, layout_beaminv ) -GAMEL( 1979, pacominv, beaminv, beaminv, pacominv, driver_device, 0, ROT270, "Pacom Corporation", "Pacom Invader", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE, layout_beaminv ) +GAMEL( 1979, beaminv, 0, beaminv, beaminv, beaminv_state, 0, ROT270, "Teknon Kogyo", "Beam Invader", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE, layout_beaminv ) +GAMEL( 1979, pacominv, beaminv, beaminv, pacominv, beaminv_state, 0, ROT270, "Pacom Corporation", "Pacom Invader", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE, layout_beaminv ) diff --git a/src/mame/drivers/beathead.cpp b/src/mame/drivers/beathead.cpp index cd57cc06e45..67306d9a825 100644 --- a/src/mame/drivers/beathead.cpp +++ b/src/mame/drivers/beathead.cpp @@ -360,7 +360,7 @@ INPUT_PORTS_END * *************************************/ -static MACHINE_CONFIG_START( beathead, beathead_state ) +static MACHINE_CONFIG_START( beathead ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", ASAP, ATARI_CLOCK_14MHz) @@ -430,4 +430,4 @@ ROM_END * *************************************/ -GAME( 1993, beathead, 0, beathead, beathead, driver_device, 0, ROT0, "Atari Games", "BeatHead (prototype)", 0 ) +GAME( 1993, beathead, 0, beathead, beathead, beathead_state, 0, ROT0, "Atari Games", "BeatHead (prototype)", 0 ) diff --git a/src/mame/drivers/bebox.cpp b/src/mame/drivers/bebox.cpp index 047a1486f9c..dd094666a95 100644 --- a/src/mame/drivers/bebox.cpp +++ b/src/mame/drivers/bebox.cpp @@ -138,10 +138,10 @@ WRITE_LINE_MEMBER(bebox_state::bebox_keyboard_interrupt) static SLOT_INTERFACE_START( pci_devices ) SLOT_INTERFACE_INTERNAL("mpc105", MPC105) - SLOT_INTERFACE("cirrus", CIRRUS) + SLOT_INTERFACE("cirrus", PCI_CIRRUS_SVGA) SLOT_INTERFACE_END -static MACHINE_CONFIG_START( bebox, bebox_state ) +static MACHINE_CONFIG_START( bebox ) /* basic machine hardware */ MCFG_CPU_ADD("ppc1", PPC603, 66000000) /* 66 MHz */ MCFG_CPU_PROGRAM_MAP(bebox_mem) @@ -257,6 +257,6 @@ ROM_START(bebox2) ROM_LOAD( "bootnub.rom", 0x000000, 0x4000, CRC(5348d09a) SHA1(1b637a3d7a2b072aa128dd5c037bbb440d525c1a) ) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ -COMP( 1995, bebox, 0, 0, bebox, bebox, bebox_state, bebox, "Be Inc", "BeBox Dual603-66", MACHINE_NOT_WORKING ) -COMP( 1996, bebox2, bebox, 0, bebox2, bebox, bebox_state, bebox, "Be Inc", "BeBox Dual603-133", MACHINE_NOT_WORKING ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME */ +COMP( 1995, bebox, 0, 0, bebox, bebox, bebox_state, bebox, "Be Inc", "BeBox Dual603-66", MACHINE_NOT_WORKING ) +COMP( 1996, bebox2, bebox, 0, bebox2, bebox, bebox_state, bebox, "Be Inc", "BeBox Dual603-133", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/beehive.cpp b/src/mame/drivers/beehive.cpp index e8da27e5015..3b3f2153e93 100644 --- a/src/mame/drivers/beehive.cpp +++ b/src/mame/drivers/beehive.cpp @@ -285,7 +285,7 @@ uint32_t beehive_state::screen_update(screen_device &screen, bitmap_ind16 &bitma return 0; } -static MACHINE_CONFIG_START( beehive, beehive_state ) +static MACHINE_CONFIG_START( beehive ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",I8085A, XTAL_4MHz) MCFG_CPU_PROGRAM_MAP(beehive_mem) @@ -317,5 +317,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1982, beehive, 0, 0, beehive, beehive, driver_device, 0, "BeeHive", "DM3270", MACHINE_NO_SOUND) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1982, beehive, 0, 0, beehive, beehive, beehive_state, 0, "BeeHive", "DM3270", MACHINE_NO_SOUND) diff --git a/src/mame/drivers/beezer.cpp b/src/mame/drivers/beezer.cpp index 2490f0eb008..82a0a065e48 100644 --- a/src/mame/drivers/beezer.cpp +++ b/src/mame/drivers/beezer.cpp @@ -458,7 +458,7 @@ void beezer_state::machine_reset() // MACHINE DEFINTIONS //************************************************************************** -static MACHINE_CONFIG_START( beezer, beezer_state ) +static MACHINE_CONFIG_START( beezer ) // basic machine hardware MCFG_CPU_ADD("maincpu", M6809, XTAL_12MHz / 12) MCFG_CPU_PROGRAM_MAP(main_map) @@ -596,6 +596,6 @@ ROM_END // SYSTEM DRIVERS //************************************************************************** -// YEAR NAME PARENT MACHINE INPUT CLASS INIT ROTATION COMPANY FULLNAME FLAGS -GAME( 1982, beezer, 0, beezer, beezer, driver_device, 0, ROT90, "Tong Electronic", "Beezer (set 1)", MACHINE_IMPERFECT_SOUND ) -GAME( 1982, beezer1, beezer, beezer, beezer, driver_device, 0, ROT90, "Tong Electronic", "Beezer (set 2)", MACHINE_IMPERFECT_SOUND ) +// YEAR NAME PARENT MACHINE INPUT CLASS INIT ROTATION COMPANY FULLNAME FLAGS +GAME( 1982, beezer, 0, beezer, beezer, beezer_state, 0, ROT90, "Tong Electronic", "Beezer (set 1)", MACHINE_IMPERFECT_SOUND ) +GAME( 1982, beezer1, beezer, beezer, beezer, beezer_state, 0, ROT90, "Tong Electronic", "Beezer (set 2)", MACHINE_IMPERFECT_SOUND ) diff --git a/src/mame/drivers/belatra.cpp b/src/mame/drivers/belatra.cpp index 7c94c0eec1c..e22320d7d95 100644 --- a/src/mame/drivers/belatra.cpp +++ b/src/mame/drivers/belatra.cpp @@ -67,7 +67,7 @@ ADDRESS_MAP_END static INPUT_PORTS_START( belatra ) INPUT_PORTS_END -static MACHINE_CONFIG_START( belatra, belatra_state ) +static MACHINE_CONFIG_START( belatra ) MCFG_CPU_ADD("maincpu", ARM7, 54000000) // guess... MCFG_CPU_PROGRAM_MAP(belatra_map) @@ -121,12 +121,12 @@ ROM_START( ldrinka ) ROM_END -GAME( 2004, fairyl2 ,0, belatra, belatra, driver_device, 0, ROT0, "Belatra","Fairy Land 2 (set 1)", MACHINE_IS_SKELETON ) -GAME( 2004, fairyl2a ,fairyl2, belatra, belatra, driver_device, 0, ROT0, "Belatra","Fairy Land 2 (set 2)", MACHINE_IS_SKELETON ) -GAME( 2004, fairyl2b ,fairyl2, belatra, belatra, driver_device, 0, ROT0, "Belatra","Fairy Land 2 (set 3)", MACHINE_IS_SKELETON ) -GAME( 2004, fairyl2bl ,fairyl2, belatra, belatra, driver_device, 0, ROT0, "Belatra","Fairy Land 2 (bootleg)", MACHINE_IS_SKELETON ) +GAME( 2004, fairyl2, 0, belatra, belatra, belatra_state, 0, ROT0, "Belatra","Fairy Land 2 (set 1)", MACHINE_IS_SKELETON ) +GAME( 2004, fairyl2a, fairyl2, belatra, belatra, belatra_state, 0, ROT0, "Belatra","Fairy Land 2 (set 2)", MACHINE_IS_SKELETON ) +GAME( 2004, fairyl2b, fairyl2, belatra, belatra, belatra_state, 0, ROT0, "Belatra","Fairy Land 2 (set 3)", MACHINE_IS_SKELETON ) +GAME( 2004, fairyl2bl, fairyl2, belatra, belatra, belatra_state, 0, ROT0, "Belatra","Fairy Land 2 (bootleg)", MACHINE_IS_SKELETON ) -GAME( 2004, ldrink ,0, belatra, belatra, driver_device, 0, ROT0, "Belatra","Lucky Drink (set 1)", MACHINE_IS_SKELETON ) -GAME( 2004, ldrinka ,ldrink, belatra, belatra, driver_device, 0, ROT0, "Belatra","Lucky Drink (set 2)", MACHINE_IS_SKELETON ) +GAME( 2004, ldrink, 0, belatra, belatra, belatra_state, 0, ROT0, "Belatra","Lucky Drink (set 1)", MACHINE_IS_SKELETON ) +GAME( 2004, ldrinka, ldrink, belatra, belatra, belatra_state, 0, ROT0, "Belatra","Lucky Drink (set 2)", MACHINE_IS_SKELETON ) -GAME( 2004, merryjn ,0, belatra, belatra, driver_device, 0, ROT0, "Belatra","Merry Joiner", MACHINE_IS_SKELETON ) +GAME( 2004, merryjn, 0, belatra, belatra, belatra_state, 0, ROT0, "Belatra","Merry Joiner", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/berzerk.cpp b/src/mame/drivers/berzerk.cpp index 1b83f20cbe6..c87689ad36b 100644 --- a/src/mame/drivers/berzerk.cpp +++ b/src/mame/drivers/berzerk.cpp @@ -1103,7 +1103,7 @@ INPUT_PORTS_END * *************************************/ -static MACHINE_CONFIG_START( berzerk, berzerk_state ) +static MACHINE_CONFIG_START( berzerk ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, MAIN_CPU_CLOCK) @@ -1321,10 +1321,10 @@ DRIVER_INIT_MEMBER(berzerk_state,moonwarp) * *************************************/ -GAME( 1980, berzerk, 0, berzerk, berzerk, driver_device, 0, ROT0, "Stern Electronics", "Berzerk (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1980, berzerk1, berzerk, berzerk, berzerk, driver_device, 0, ROT0, "Stern Electronics", "Berzerk (set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1980, berzerkf, berzerk, berzerk, berzerkf, driver_device, 0, ROT0, "Stern Electronics", "Berzerk (French Speech)", MACHINE_SUPPORTS_SAVE ) -GAME( 1980, berzerkg, berzerk, berzerk, berzerkg, driver_device, 0, ROT0, "Stern Electronics", "Berzerk (German Speech)", MACHINE_SUPPORTS_SAVE ) -GAME( 1980, berzerks, berzerk, berzerk, berzerks, driver_device, 0, ROT0, "Stern Electronics (Sonic License)", "Berzerk (Spanish Speech)", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, frenzy, 0, frenzy, frenzy, driver_device, 0, ROT0, "Stern Electronics", "Frenzy", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, berzerk, 0, berzerk, berzerk, berzerk_state, 0, ROT0, "Stern Electronics", "Berzerk (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, berzerk1, berzerk, berzerk, berzerk, berzerk_state, 0, ROT0, "Stern Electronics", "Berzerk (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, berzerkf, berzerk, berzerk, berzerkf, berzerk_state, 0, ROT0, "Stern Electronics", "Berzerk (French Speech)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, berzerkg, berzerk, berzerk, berzerkg, berzerk_state, 0, ROT0, "Stern Electronics", "Berzerk (German Speech)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, berzerks, berzerk, berzerk, berzerks, berzerk_state, 0, ROT0, "Stern Electronics (Sonic License)", "Berzerk (Spanish Speech)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, frenzy, 0, frenzy, frenzy, berzerk_state, 0, ROT0, "Stern Electronics", "Frenzy", MACHINE_SUPPORTS_SAVE ) GAME( 1981, moonwarp, 0, frenzy, moonwarp, berzerk_state, moonwarp, ROT0, "Stern Electronics", "Moon War (prototype on Frenzy hardware)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/besta.cpp b/src/mame/drivers/besta.cpp index 7b3d4af5c5f..76f0ef71c11 100644 --- a/src/mame/drivers/besta.cpp +++ b/src/mame/drivers/besta.cpp @@ -42,14 +42,17 @@ public: DECLARE_READ8_MEMBER( mpcc_reg_r ); DECLARE_WRITE8_MEMBER( mpcc_reg_w ); - DECLARE_WRITE8_MEMBER( kbd_put ); + void kbd_put(u8 data); + +protected: + virtual void machine_reset() override; + uint8_t m_term_data; uint8_t m_mpcc_regs[32]; required_device m_maincpu; required_device m_pit1; required_device m_pit2; - virtual void machine_reset() override; required_device m_terminal; required_shared_ptr m_p_ram; @@ -78,25 +81,23 @@ READ8_MEMBER( besta_state::mpcc_reg_r ) WRITE8_MEMBER( besta_state::mpcc_reg_w ) { - device_t *devconf = machine().device(TERMINAL_TAG); - DBG_LOG(1,"mpcc_reg_w",("(%d) <- %02X at %s\n", offset, data, machine().describe_context())); switch (offset) { case 2: - m_term_data = data; + kbd_put(data); break; case 10: - dynamic_cast(devconf)->write(generic_space(), 0, data); + m_terminal->write(generic_space(), 0, data); default: m_mpcc_regs[offset] = data; break; } } -WRITE8_MEMBER( besta_state::kbd_put ) +void besta_state::kbd_put(u8 data) { - mpcc_reg_w(space, (offs_t)2, data, mem_mask); + m_term_data = data; } static ADDRESS_MAP_START(besta_mem, AS_PROGRAM, 32, besta_state) @@ -132,7 +133,7 @@ void besta_state::machine_reset() } /* CP31 processor board */ -static MACHINE_CONFIG_START( besta, besta_state ) +static MACHINE_CONFIG_START( besta ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68030, 2*16670000) MCFG_CPU_PROGRAM_MAP(besta_mem) @@ -142,7 +143,7 @@ static MACHINE_CONFIG_START( besta, besta_state ) MCFG_DEVICE_ADD ("pit2", PIT68230, 16670000 / 2) // XXX verify clock MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0) - MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(besta_state, kbd_put)) + MCFG_GENERIC_TERMINAL_KEYBOARD_CB(PUT(besta_state, kbd_put)) MACHINE_CONFIG_END /* ROM definition */ @@ -160,5 +161,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1988, besta88, 0, 0, besta, besta, driver_device, 0, "Sapsan", "Besta-88", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1988, besta88, 0, 0, besta, besta, besta_state, 0, "Sapsan", "Besta-88", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW ) diff --git a/src/mame/drivers/bestleag.cpp b/src/mame/drivers/bestleag.cpp index ca0175f0c39..6aee7c966db 100644 --- a/src/mame/drivers/bestleag.cpp +++ b/src/mame/drivers/bestleag.cpp @@ -375,7 +375,7 @@ static GFXDECODE_START( bestleag ) GFXDECODE_ENTRY( "gfx2", 0, bestleag_char16layout, 0x300, 16 ) GFXDECODE_END -static MACHINE_CONFIG_START( bestleag, bestleag_state ) +static MACHINE_CONFIG_START( bestleag ) MCFG_CPU_ADD("maincpu", M68000, 12000000) MCFG_CPU_PROGRAM_MAP(bestleag_map) MCFG_CPU_VBLANK_INT_DRIVER("screen", bestleag_state, irq6_line_hold) @@ -394,7 +394,7 @@ static MACHINE_CONFIG_START( bestleag, bestleag_state ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_OKIM6295_ADD("oki", 1000000, OKIM6295_PIN7_HIGH) /* Hand-tuned */ + MCFG_OKIM6295_ADD("oki", 1000000, PIN7_HIGH) /* Hand-tuned */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.00) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.00) MACHINE_CONFIG_END @@ -474,5 +474,5 @@ ROM_END /* GAME drivers */ -GAME( 1993, bestleag, bigstrik, bestleag, bestleag, driver_device, 0, ROT0, "bootleg", "Best League (bootleg of Big Striker, Italian Serie A)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1993, bestleaw, bigstrik, bestleaw, bestleag, driver_device, 0, ROT0, "bootleg", "Best League (bootleg of Big Striker, World Cup)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1993, bestleag, bigstrik, bestleag, bestleag, bestleag_state, 0, ROT0, "bootleg", "Best League (bootleg of Big Striker, Italian Serie A)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1993, bestleaw, bigstrik, bestleaw, bestleag, bestleag_state, 0, ROT0, "bootleg", "Best League (bootleg of Big Striker, World Cup)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/beta.cpp b/src/mame/drivers/beta.cpp index f9e1cbf22de..61c417a5269 100644 --- a/src/mame/drivers/beta.cpp +++ b/src/mame/drivers/beta.cpp @@ -102,8 +102,8 @@ public: /* Memory Maps */ static ADDRESS_MAP_START( beta_mem, AS_PROGRAM, 8, beta_state ) - AM_RANGE(0x0000, 0x007f) AM_MIRROR(0x7f00) AM_DEVICE(M6532_TAG, mos6532_t, ram_map) - AM_RANGE(0x0080, 0x00ff) AM_MIRROR(0x7f00) AM_DEVICE(M6532_TAG, mos6532_t, io_map) + AM_RANGE(0x0000, 0x007f) AM_MIRROR(0x7f00) AM_DEVICE(M6532_TAG, mos6532_new_device, ram_map) + AM_RANGE(0x0080, 0x00ff) AM_MIRROR(0x7f00) AM_DEVICE(M6532_TAG, mos6532_new_device, io_map) AM_RANGE(0x8000, 0x87ff) AM_MIRROR(0x7800) AM_ROM ADDRESS_MAP_END @@ -335,7 +335,7 @@ void beta_state::machine_start() /* Machine Driver */ -static MACHINE_CONFIG_START( beta, beta_state ) +static MACHINE_CONFIG_START( beta ) /* basic machine hardware */ MCFG_CPU_ADD(M6502_TAG, M6502, XTAL_4MHz/4) MCFG_CPU_PROGRAM_MAP(beta_mem) @@ -349,7 +349,7 @@ static MACHINE_CONFIG_START( beta, beta_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) /* devices */ - MCFG_DEVICE_ADD(M6532_TAG, MOS6532n, XTAL_4MHz/4) + MCFG_DEVICE_ADD(M6532_TAG, MOS6532_NEW, XTAL_4MHz/4) MCFG_MOS6530n_IN_PA_CB(READ8(beta_state, riot_pa_r)) MCFG_MOS6530n_OUT_PA_CB(WRITE8(beta_state, riot_pa_w)) MCFG_MOS6530n_IN_PB_CB(READ8(beta_state, riot_pb_r)) @@ -376,5 +376,5 @@ ROM_END /* System Drivers */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1984, beta, 0, 0, beta, beta, driver_device, 0, "Pitronics", "Beta", MACHINE_SUPPORTS_SAVE ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1984, beta, 0, 0, beta, beta, beta_state, 0, "Pitronics", "Beta", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/bfcobra.cpp b/src/mame/drivers/bfcobra.cpp index 6feee17b8f0..f97a735a284 100644 --- a/src/mame/drivers/bfcobra.cpp +++ b/src/mame/drivers/bfcobra.cpp @@ -1631,7 +1631,7 @@ INTERRUPT_GEN_MEMBER(bfcobra_state::vblank_gen) update_irqs(); } -static MACHINE_CONFIG_START( bfcobra, bfcobra_state ) +static MACHINE_CONFIG_START( bfcobra ) MCFG_CPU_ADD("maincpu", Z80, Z80_XTAL) MCFG_CPU_PROGRAM_MAP(z80_prog_map) MCFG_CPU_IO_MAP(z80_io_map) diff --git a/src/mame/drivers/bfm_ad5.cpp b/src/mame/drivers/bfm_ad5.cpp index a40e3782982..07238c4bac8 100644 --- a/src/mame/drivers/bfm_ad5.cpp +++ b/src/mame/drivers/bfm_ad5.cpp @@ -77,7 +77,7 @@ INTERRUPT_GEN_MEMBER(adder5_state::ad5_fake_timer_int) // m_maincpu->set_input_line_and_vector(5, HOLD_LINE, 0x8c); } -MACHINE_CONFIG_START( bfm_ad5, adder5_state ) +MACHINE_CONFIG_START( bfm_ad5 ) MCFG_CPU_ADD("maincpu", MCF5206E, 40000000) /* MCF5206eFT */ MCFG_CPU_PROGRAM_MAP(ad5_map) MCFG_CPU_PERIODIC_INT_DRIVER(adder5_state, ad5_fake_timer_int, 1000) diff --git a/src/mame/drivers/bfm_sc1.cpp b/src/mame/drivers/bfm_sc1.cpp index f0c5764dabc..592736e7bbc 100644 --- a/src/mame/drivers/bfm_sc1.cpp +++ b/src/mame/drivers/bfm_sc1.cpp @@ -213,7 +213,7 @@ public: required_device m_reel4; required_device m_reel5; optional_device m_upd7759; - optional_device m_vfd0; + optional_device m_vfd0; required_device m_meters; }; @@ -1077,7 +1077,7 @@ INPUT_PORTS_END // machine driver for scorpion1 board /////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////// -static MACHINE_CONFIG_START( scorpion1, bfm_sc1_state ) +static MACHINE_CONFIG_START( scorpion1 ) MCFG_CPU_ADD("maincpu", M6809, MASTER_CLOCK/4) // 6809 CPU at 1 Mhz MCFG_CPU_PROGRAM_MAP(sc1_base) // setup read and write memorymap MCFG_CPU_PERIODIC_INT_DRIVER(bfm_sc1_state, timer_irq, 1000) // generate 1000 IRQ's per second diff --git a/src/mame/drivers/bfm_sc2.cpp b/src/mame/drivers/bfm_sc2.cpp index f684fb88430..b1745ca56b9 100644 --- a/src/mame/drivers/bfm_sc2.cpp +++ b/src/mame/drivers/bfm_sc2.cpp @@ -230,9 +230,9 @@ public: required_device m_upd7759; - optional_device m_vfd0; - optional_device m_vfd1; - optional_device m_dm01; + optional_device m_vfd0; + optional_device m_vfd1; + optional_device m_dm01; optional_device m_meters; // scorpion2_vid doesn't use this (scorpion2_vidm does) int m_sc2gui_update_mmtr; //not used? @@ -2214,7 +2214,7 @@ MACHINE_START_MEMBER(bfm_sc2_state,bfm_sc2) save_state(); } -static MACHINE_CONFIG_START( scorpion2_vid, bfm_sc2_state ) +static MACHINE_CONFIG_START( scorpion2_vid ) MCFG_CPU_ADD("maincpu", M6809, MASTER_CLOCK/4 ) // 6809 CPU at 2 Mhz MCFG_CPU_PROGRAM_MAP(memmap_vid) // setup scorpion2 board memorymap MCFG_CPU_PERIODIC_INT_DRIVER(bfm_sc2_state, timer_irq, 1000) // generate 1000 IRQ's per second @@ -3688,7 +3688,7 @@ MACHINE_START_MEMBER(bfm_sc2_state,sc2dmd) /* machine driver for scorpion2 board */ -static MACHINE_CONFIG_START( scorpion2, bfm_sc2_state ) +static MACHINE_CONFIG_START( scorpion2 ) MCFG_MACHINE_RESET_OVERRIDE(bfm_sc2_state,awp_init) MCFG_CPU_ADD("maincpu", M6809, MASTER_CLOCK/4 ) MCFG_CPU_PROGRAM_MAP(memmap_no_vid) @@ -3749,7 +3749,7 @@ MACHINE_CONFIG_END /* machine driver for scorpion2 board + matrix board */ -static MACHINE_CONFIG_START( scorpion2_dm01, bfm_sc2_state ) +static MACHINE_CONFIG_START( scorpion2_dm01 ) MCFG_MACHINE_RESET_OVERRIDE(bfm_sc2_state,dm01_init) MCFG_QUANTUM_TIME(attotime::from_hz(960)) // needed for serial communication !! MCFG_CPU_ADD("maincpu", M6809, MASTER_CLOCK/4 ) @@ -3772,8 +3772,8 @@ static MACHINE_CONFIG_START( scorpion2_dm01, bfm_sc2_state ) /* video hardware */ MCFG_DEFAULT_LAYOUT(layout_sc2_dmd) - MCFG_DEVICE_ADD("dm01", BF_DM01, 0) - MCFG_BF_DM01_BUSY_CB(WRITELINE(bfm_sc2_state, bfmdm01_busy)) + MCFG_DEVICE_ADD("dm01", BFM_DM01, 0) + MCFG_BFM_DM01_BUSY_CB(WRITELINE(bfm_sc2_state, bfmdm01_busy)) MCFG_STARPOINT_48STEP_ADD("reel0") MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(bfm_sc2_state, reel0_optic_cb)) diff --git a/src/mame/drivers/bfm_sc4.cpp b/src/mame/drivers/bfm_sc4.cpp index 4fa9a38450c..490cc9b7416 100644 --- a/src/mame/drivers/bfm_sc4.cpp +++ b/src/mame/drivers/bfm_sc4.cpp @@ -817,13 +817,11 @@ MACHINE_START_MEMBER(sc4_state,sc4) { m_nvram->set_base(m_mainram, sizeof(m_mainram)); - m_maincpu->set_port_callbacks( - m68307_porta_read_delegate(FUNC(sc4_state::bfm_sc4_68307_porta_r),this), - m68307_porta_write_delegate(FUNC(sc4_state::bfm_sc4_68307_porta_w),this), - m68307_portb_read_delegate(FUNC(sc4_state::bfm_sc4_68307_portb_r),this), - m68307_portb_write_delegate(FUNC(sc4_state::bfm_sc4_68307_portb_w),this) ); - + m68307_cpu_device::porta_read_delegate(FUNC(sc4_state::bfm_sc4_68307_porta_r), this), + m68307_cpu_device::porta_write_delegate(FUNC(sc4_state::bfm_sc4_68307_porta_w), this), + m68307_cpu_device::portb_read_delegate(FUNC(sc4_state::bfm_sc4_68307_portb_r), this), + m68307_cpu_device::portb_write_delegate(FUNC(sc4_state::bfm_sc4_68307_portb_w), this)); } @@ -923,7 +921,7 @@ MACHINE_CONFIG_FRAGMENT( sc4_common ) MACHINE_CONFIG_END //Standard 6 reels all connected -MACHINE_CONFIG_START( sc4, sc4_state ) +MACHINE_CONFIG_START( sc4 ) MCFG_FRAGMENT_ADD(sc4_common) MCFG_STARPOINT_RM20_48STEP_ADD("reel1") @@ -941,7 +939,7 @@ MACHINE_CONFIG_START( sc4, sc4_state ) MACHINE_CONFIG_END //Standard 3 reels -MACHINE_CONFIG_START( sc4_3reel, sc4_state ) +MACHINE_CONFIG_START( sc4_3reel ) MCFG_FRAGMENT_ADD(sc4_common) MCFG_STARPOINT_RM20_48STEP_ADD("reel1") @@ -954,7 +952,7 @@ MACHINE_CONFIG_START( sc4_3reel, sc4_state ) MACHINE_CONFIG_END //Standard 4 reels -MACHINE_CONFIG_START( sc4_4reel, sc4_state ) +MACHINE_CONFIG_START( sc4_4reel ) MCFG_FRAGMENT_ADD(sc4_common) MCFG_STARPOINT_RM20_48STEP_ADD("reel1") @@ -968,7 +966,7 @@ MACHINE_CONFIG_START( sc4_4reel, sc4_state ) MACHINE_CONFIG_END //4 reels, with the last connected to RL4 not RL3 -MACHINE_CONFIG_START( sc4_4reel_alt, sc4_state ) +MACHINE_CONFIG_START( sc4_4reel_alt ) MCFG_FRAGMENT_ADD(sc4_common) @@ -985,7 +983,7 @@ MACHINE_CONFIG_END //Standard 5 reels -MACHINE_CONFIG_START( sc4_5reel, sc4_state ) +MACHINE_CONFIG_START( sc4_5reel ) MCFG_FRAGMENT_ADD(sc4_common) MCFG_STARPOINT_RM20_48STEP_ADD("reel1") @@ -1001,7 +999,7 @@ MACHINE_CONFIG_START( sc4_5reel, sc4_state ) MACHINE_CONFIG_END //5 reels, with RL4 skipped -MACHINE_CONFIG_START( sc4_5reel_alt, sc4_state ) +MACHINE_CONFIG_START( sc4_5reel_alt ) MCFG_FRAGMENT_ADD(sc4_common) MCFG_STARPOINT_RM20_48STEP_ADD("reel1") @@ -1019,7 +1017,7 @@ MACHINE_CONFIG_START( sc4_5reel_alt, sc4_state ) MACHINE_CONFIG_END //6 reels, last 200 steps -MACHINE_CONFIG_START( sc4_200_std, sc4_state ) +MACHINE_CONFIG_START( sc4_200_std ) MCFG_FRAGMENT_ADD(sc4_common) @@ -1038,7 +1036,7 @@ MACHINE_CONFIG_START( sc4_200_std, sc4_state ) MACHINE_CONFIG_END //6 reels, last 200 steps -MACHINE_CONFIG_START( sc4_200_alt, sc4_state ) +MACHINE_CONFIG_START( sc4_200_alt ) MCFG_FRAGMENT_ADD(sc4_common) MCFG_STARPOINT_RM20_48STEP_ADD("reel1") @@ -1056,7 +1054,7 @@ MACHINE_CONFIG_START( sc4_200_alt, sc4_state ) MACHINE_CONFIG_END //6 reels, RL4 200 steps -MACHINE_CONFIG_START( sc4_200_alta, sc4_state ) +MACHINE_CONFIG_START( sc4_200_alta ) MCFG_FRAGMENT_ADD(sc4_common) MCFG_STARPOINT_RM20_48STEP_ADD("reel1") @@ -1074,7 +1072,7 @@ MACHINE_CONFIG_START( sc4_200_alta, sc4_state ) MACHINE_CONFIG_END //6 reels, 3 48 step, 3 200 step -MACHINE_CONFIG_START( sc4_200_altb, sc4_state ) +MACHINE_CONFIG_START( sc4_200_altb ) MCFG_FRAGMENT_ADD(sc4_common) MCFG_STARPOINT_200STEP_ADD("reel1") @@ -1092,7 +1090,7 @@ MACHINE_CONFIG_START( sc4_200_altb, sc4_state ) MACHINE_CONFIG_END //5 reels, last one 200 steps -MACHINE_CONFIG_START( sc4_200_5r, sc4_state ) +MACHINE_CONFIG_START( sc4_200_5r ) MCFG_FRAGMENT_ADD(sc4_common) MCFG_STARPOINT_RM20_48STEP_ADD("reel1") @@ -1110,7 +1108,7 @@ MACHINE_CONFIG_END //5 reels, last one 200 steps, RL4 skipped -MACHINE_CONFIG_START( sc4_200_5ra, sc4_state ) +MACHINE_CONFIG_START( sc4_200_5ra ) MCFG_FRAGMENT_ADD(sc4_common) MCFG_STARPOINT_RM20_48STEP_ADD("reel1") @@ -1127,7 +1125,7 @@ MACHINE_CONFIG_START( sc4_200_5ra, sc4_state ) MACHINE_CONFIG_END //5 reels, last one 200 steps, RL5 skipped -MACHINE_CONFIG_START( sc4_200_5rb, sc4_state ) +MACHINE_CONFIG_START( sc4_200_5rb ) MCFG_FRAGMENT_ADD(sc4_common) MCFG_STARPOINT_RM20_48STEP_ADD("reel1") @@ -1144,7 +1142,7 @@ MACHINE_CONFIG_START( sc4_200_5rb, sc4_state ) MACHINE_CONFIG_END //5 reels, RL5 200 steps, RL4 skipped -MACHINE_CONFIG_START( sc4_200_5rc, sc4_state ) +MACHINE_CONFIG_START( sc4_200_5rc ) MCFG_FRAGMENT_ADD(sc4_common) MCFG_STARPOINT_RM20_48STEP_ADD("reel1") @@ -1161,7 +1159,7 @@ MACHINE_CONFIG_START( sc4_200_5rc, sc4_state ) MACHINE_CONFIG_END //4 reels, last one 200 steps -MACHINE_CONFIG_START( sc4_200_4r, sc4_state ) +MACHINE_CONFIG_START( sc4_200_4r ) MCFG_FRAGMENT_ADD(sc4_common) MCFG_STARPOINT_RM20_48STEP_ADD("reel1") @@ -1175,7 +1173,7 @@ MACHINE_CONFIG_START( sc4_200_4r, sc4_state ) MACHINE_CONFIG_END //4 reels, last one 200 steps, RL4 skipped -MACHINE_CONFIG_START( sc4_200_4ra, sc4_state ) +MACHINE_CONFIG_START( sc4_200_4ra ) MCFG_FRAGMENT_ADD(sc4_common) MCFG_STARPOINT_RM20_48STEP_ADD("reel1") @@ -1191,7 +1189,7 @@ MACHINE_CONFIG_END //4 reels, last one 200 steps, RL4,5 skipped -MACHINE_CONFIG_START( sc4_200_4rb, sc4_state ) +MACHINE_CONFIG_START( sc4_200_4rb ) MCFG_FRAGMENT_ADD(sc4_common) MCFG_STARPOINT_RM20_48STEP_ADD("reel1") @@ -1205,7 +1203,7 @@ MACHINE_CONFIG_START( sc4_200_4rb, sc4_state ) MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(sc4_state, reel6_optic_cb)) MACHINE_CONFIG_END -MACHINE_CONFIG_START( sc4_4reel_200, sc4_state ) +MACHINE_CONFIG_START( sc4_4reel_200 ) MCFG_FRAGMENT_ADD(sc4_common) MCFG_STARPOINT_200STEP_ADD("reel1") @@ -1218,7 +1216,7 @@ MACHINE_CONFIG_START( sc4_4reel_200, sc4_state ) MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(sc4_state, reel4_optic_cb)) MACHINE_CONFIG_END -MACHINE_CONFIG_START( sc4_3reel_200, sc4_state ) +MACHINE_CONFIG_START( sc4_3reel_200 ) MCFG_FRAGMENT_ADD(sc4_common) MCFG_STARPOINT_200STEP_ADD("reel1") @@ -1229,7 +1227,7 @@ MACHINE_CONFIG_START( sc4_3reel_200, sc4_state ) MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(sc4_state, reel3_optic_cb)) MACHINE_CONFIG_END -MACHINE_CONFIG_START( sc4_3reel_200_48, sc4_state ) +MACHINE_CONFIG_START( sc4_3reel_200_48 ) MCFG_FRAGMENT_ADD(sc4_common) @@ -1243,7 +1241,7 @@ MACHINE_CONFIG_START( sc4_3reel_200_48, sc4_state ) MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(sc4_state, reel4_optic_cb)) MACHINE_CONFIG_END -MACHINE_CONFIG_START( sc4_no_reels, sc4_state ) +MACHINE_CONFIG_START( sc4_no_reels ) MCFG_FRAGMENT_ADD(sc4_common) MACHINE_CONFIG_END @@ -1254,7 +1252,7 @@ MACHINE_START_MEMBER(sc4_adder4_state,adder4) MACHINE_START_CALL_MEMBER(sc4); } -MACHINE_CONFIG_START( sc4_adder4, sc4_adder4_state ) +MACHINE_CONFIG_START( sc4_adder4 ) MCFG_FRAGMENT_ADD(sc4_common) MCFG_CPU_ADD("adder4", M68340, 25175000) // 68340 (CPU32 core) @@ -1263,13 +1261,13 @@ MACHINE_CONFIG_START( sc4_adder4, sc4_adder4_state ) MCFG_MACHINE_START_OVERRIDE(sc4_adder4_state, adder4 ) MACHINE_CONFIG_END -MACHINE_CONFIG_START( sc4dmd, sc4_state ) +MACHINE_CONFIG_START( sc4dmd ) MCFG_FRAGMENT_ADD(sc4_common) /* video hardware */ //MCFG_DEFAULT_LAYOUT(layout_sc4_dmd) - MCFG_DEVICE_ADD("dm01", BF_DM01, 0) - MCFG_BF_DM01_BUSY_CB(WRITELINE(sc4_state, bfmdm01_busy)) + MCFG_DEVICE_ADD("dm01", BFM_DM01, 0) + MCFG_BFM_DM01_BUSY_CB(WRITELINE(sc4_state, bfmdm01_busy)) MCFG_MACHINE_START_OVERRIDE(sc4_state, sc4 ) diff --git a/src/mame/drivers/bfm_sc5.cpp b/src/mame/drivers/bfm_sc5.cpp index 6093b486c18..6d89ddaf442 100644 --- a/src/mame/drivers/bfm_sc5.cpp +++ b/src/mame/drivers/bfm_sc5.cpp @@ -209,7 +209,7 @@ WRITE8_MEMBER(bfm_sc5_state::bfm_sc5_duart_output_w) logerror("bfm_sc5_duart_output_w\n"); } -MACHINE_CONFIG_START( bfm_sc5, bfm_sc5_state ) +MACHINE_CONFIG_START( bfm_sc5 ) MCFG_CPU_ADD("maincpu", MCF5206E, 40000000) /* MCF5206eFT */ MCFG_CPU_PROGRAM_MAP(sc5_map) MCFG_MCF5206E_PERIPHERAL_ADD("maincpu_onboard") diff --git a/src/mame/drivers/bfm_swp.cpp b/src/mame/drivers/bfm_swp.cpp index da25b10fedf..c43bc51a652 100644 --- a/src/mame/drivers/bfm_swp.cpp +++ b/src/mame/drivers/bfm_swp.cpp @@ -130,7 +130,7 @@ public: protected: // devices - required_device m_maincpu; + required_device m_maincpu; virtual void machine_start() override; }; @@ -198,7 +198,7 @@ void bfm_swp_state::machine_start() } -static MACHINE_CONFIG_START( bfm_swp, bfm_swp_state ) +static MACHINE_CONFIG_START( bfm_swp ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68340, 16000000) @@ -301,7 +301,7 @@ ROM_END -GAME( 199?, c3_rtime , 0 , bfm_swp, bfm_swp, driver_device, 0, ROT0, "BFM", "Radio Times (Bellfruit) (Cobra 3)", MACHINE_IS_SKELETON ) -GAME( 199?, c3_telly , 0 , bfm_swp, bfm_swp, driver_device, 0, ROT0, "BFM", "Telly Addicts (Bellfruit) (Cobra 3)", MACHINE_IS_SKELETON ) -GAME( 199?, c3_totp , 0 , bfm_swp, bfm_swp, driver_device, 0, ROT0, "BFM", "Top of the Pops (Bellfruit) (Cobra 3?)", MACHINE_IS_SKELETON ) -GAME( 199?, c3_ppays , 0 , bfm_swp, bfm_swp, driver_device, 0, ROT0, "BFM", "The Phrase That Pays (Bellfruit) (Cobra 3?)", MACHINE_IS_SKELETON ) +GAME( 199?, c3_rtime , 0 , bfm_swp, bfm_swp, bfm_swp_state, 0, ROT0, "BFM", "Radio Times (Bellfruit) (Cobra 3)", MACHINE_IS_SKELETON ) +GAME( 199?, c3_telly , 0 , bfm_swp, bfm_swp, bfm_swp_state, 0, ROT0, "BFM", "Telly Addicts (Bellfruit) (Cobra 3)", MACHINE_IS_SKELETON ) +GAME( 199?, c3_totp , 0 , bfm_swp, bfm_swp, bfm_swp_state, 0, ROT0, "BFM", "Top of the Pops (Bellfruit) (Cobra 3?)", MACHINE_IS_SKELETON ) +GAME( 199?, c3_ppays , 0 , bfm_swp, bfm_swp, bfm_swp_state, 0, ROT0, "BFM", "The Phrase That Pays (Bellfruit) (Cobra 3?)", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/bfmsys83.cpp b/src/mame/drivers/bfmsys83.cpp index 507846cc83c..e6aa532b181 100644 --- a/src/mame/drivers/bfmsys83.cpp +++ b/src/mame/drivers/bfmsys83.cpp @@ -31,7 +31,7 @@ INPUT_PORTS_END -static MACHINE_CONFIG_START( bfmsys83, bfmsys83_state ) +static MACHINE_CONFIG_START( bfmsys83 ) MCFG_CPU_ADD("maincpu", M6802, 40000000/4) MCFG_CPU_PROGRAM_MAP(memmap) @@ -63,5 +63,5 @@ ROM_START( b83cops ) // was marked as sys85, but I think this is the sys83 set? ROM_LOAD( "cops.p4", 0x8000, 0x2000, CRC(ce573b35) SHA1(f2ba22f0d55f882dd91b37e80e4bb14effd9113a) ) ROM_END -GAME( 198?, b83catms , 0 , bfmsys83 , bfmsys83 , driver_device, 0 , 0, "BFM", "Cat & Mouse (Bellfruit) (System 83)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 198?, b83cops , 0 , bfmsys83 , bfmsys83 , driver_device, 0 , 0, "BFM", "Cops & Robbers (Bellfruit) (System 83)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 198?, b83catms , 0 , bfmsys83 , bfmsys83 , bfmsys83_state, 0 , ROT0, "BFM", "Cat & Mouse (Bellfruit) (System 83)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 198?, b83cops , 0 , bfmsys83 , bfmsys83 , bfmsys83_state, 0 , ROT0, "BFM", "Cops & Robbers (Bellfruit) (System 83)", MACHINE_IS_SKELETON_MECHANICAL) diff --git a/src/mame/drivers/bfmsys85.cpp b/src/mame/drivers/bfmsys85.cpp index af8b8027c53..7933bc6866d 100644 --- a/src/mame/drivers/bfmsys85.cpp +++ b/src/mame/drivers/bfmsys85.cpp @@ -126,7 +126,7 @@ public: virtual void machine_reset() override; INTERRUPT_GEN_MEMBER(timer_irq); int b85_find_project_string( ); - optional_device m_vfd; + optional_device m_vfd; required_device m_maincpu; required_device m_reel0; required_device m_reel1; @@ -388,7 +388,7 @@ ADDRESS_MAP_END // machine driver for system85 board ////////////////////////////////////// -static MACHINE_CONFIG_START( bfmsys85, bfmsys85_state ) +static MACHINE_CONFIG_START( bfmsys85 ) MCFG_CPU_ADD("maincpu", M6809, MASTER_CLOCK/4) // 6809 CPU at 1 Mhz MCFG_CPU_PROGRAM_MAP(memmap) // setup read and write memorymap MCFG_CPU_PERIODIC_INT_DRIVER(bfmsys85_state, timer_irq, 1000) // generate 1000 IRQ's per second diff --git a/src/mame/drivers/bgt.cpp b/src/mame/drivers/bgt.cpp index 740c4a48621..929f1d4bdfe 100644 --- a/src/mame/drivers/bgt.cpp +++ b/src/mame/drivers/bgt.cpp @@ -44,7 +44,7 @@ static INPUT_PORTS_START( bgt ) INPUT_PORTS_END -static MACHINE_CONFIG_START( bgt, bgt_state ) +static MACHINE_CONFIG_START( bgt ) MCFG_CPU_ADD("maincpu", V30, 12000000 ) // ? unknown CPU.. definitely x86 based tho MCFG_CPU_PROGRAM_MAP(bgt_map) MCFG_CPU_IO_MAP(bgt_io) @@ -90,7 +90,7 @@ ROM_START( bg_maxa ) ROM_END -GAME( 199?, bg_ddb, 0, bgt, bgt, driver_device, 0, ROT0, "BGT", "Ding Dong Bells (BGT)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, bg_barmy, 0, bgt, bgt, driver_device, 0, ROT0, "BGT", "Barmy Army (BGT)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, bg_max, 0, bgt, bgt, driver_device, 0, ROT0, "BGT", "Max A Million (BGT) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, bg_maxa, bg_max, bgt, bgt, driver_device, 0, ROT0, "BGT", "Max A Million (BGT) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, bg_ddb, 0, bgt, bgt, bgt_state, 0, ROT0, "BGT", "Ding Dong Bells (BGT)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, bg_barmy, 0, bgt, bgt, bgt_state, 0, ROT0, "BGT", "Barmy Army (BGT)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, bg_max, 0, bgt, bgt, bgt_state, 0, ROT0, "BGT", "Max A Million (BGT) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, bg_maxa, bg_max, bgt, bgt, bgt_state, 0, ROT0, "BGT", "Max A Million (BGT) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) diff --git a/src/mame/drivers/big10.cpp b/src/mame/drivers/big10.cpp index 07de2867879..6b5c6bc393a 100644 --- a/src/mame/drivers/big10.cpp +++ b/src/mame/drivers/big10.cpp @@ -221,7 +221,7 @@ INPUT_PORTS_END * Machine Driver * **************************************/ -static MACHINE_CONFIG_START( big10, big10_state ) +static MACHINE_CONFIG_START( big10 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, MASTER_CLOCK/6) /* guess */ @@ -263,5 +263,5 @@ ROM_END * Game Driver(s) * **************************************/ -/* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS */ -GAME( 198?, big10, 0, big10, big10, driver_device, 0, ROT0, "", "Big 10", 0 ) +/* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS */ +GAME( 198?, big10, 0, big10, big10, big10_state, 0, ROT0, "", "Big 10", 0 ) diff --git a/src/mame/drivers/bigbord2.cpp b/src/mame/drivers/bigbord2.cpp index 796532a4ce5..8041e020862 100644 --- a/src/mame/drivers/bigbord2.cpp +++ b/src/mame/drivers/bigbord2.cpp @@ -114,7 +114,7 @@ public: DECLARE_WRITE8_MEMBER(portcc_w ); DECLARE_READ8_MEMBER(portc4_r); DECLARE_READ8_MEMBER(portd0_r); - DECLARE_WRITE8_MEMBER(kbd_put); + void kbd_put(u8 data); DECLARE_WRITE_LINE_MEMBER(clock_w); DECLARE_WRITE_LINE_MEMBER(busreq_w); DECLARE_WRITE_LINE_MEMBER(ctc_z1_w); @@ -148,7 +148,7 @@ private: required_device m_ctc2; required_device m_sio; required_device m_dma; - required_device m_fdc; + required_device m_fdc; required_device m_floppy0; required_device m_floppy1; required_device m_beeper; @@ -189,7 +189,7 @@ READ8_MEMBER( bigbord2_state::portd0_r ) return ret; } -WRITE8_MEMBER( bigbord2_state::kbd_put ) +void bigbord2_state::kbd_put(u8 data) { if (data) { @@ -375,7 +375,7 @@ static ADDRESS_MAP_START( bigbord2_io, AS_IO, 8, bigbord2_state ) AM_RANGE(0xC8, 0xCB) AM_WRITE(portc8_w) AM_RANGE(0xCC, 0xCF) AM_WRITE(portcc_w) AM_RANGE(0xD0, 0xD3) AM_READ (portd0_r) - AM_RANGE(0xD4, 0xD7) AM_DEVREADWRITE("fdc", mb8877_t, read, write) // u10 + AM_RANGE(0xD4, 0xD7) AM_DEVREADWRITE("fdc", mb8877_device, read, write) // u10 //AM_RANGE(0xD8, 0xDB) AM_READWRITE(portd8_r, portd8_w) // various external data ports; DB = centronics printer AM_RANGE(0xDC, 0xDC) AM_MIRROR(2) AM_DEVREADWRITE("crtc", mc6845_device, status_r, address_w) // u30 AM_RANGE(0xDD, 0xDD) AM_MIRROR(2) AM_DEVREADWRITE("crtc", mc6845_device, register_r, register_w) @@ -579,7 +579,7 @@ MC6845_UPDATE_ROW( bigbord2_state::crtc_update_row ) #define MAIN_CLOCK XTAL_8MHz / 2 -static MACHINE_CONFIG_START( bigbord2, bigbord2_state ) +static MACHINE_CONFIG_START( bigbord2 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, MAIN_CLOCK) MCFG_CPU_PROGRAM_MAP(bigbord2_mem) @@ -635,7 +635,7 @@ static MACHINE_CONFIG_START( bigbord2, bigbord2_state ) /* keyboard */ MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0) - MCFG_GENERIC_KEYBOARD_CB(WRITE8(bigbord2_state, kbd_put)) + MCFG_GENERIC_KEYBOARD_CB(PUT(bigbord2_state, kbd_put)) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -656,5 +656,5 @@ ROM_START( bigbord2 ) ROM_END /* System Drivers */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1982, bigbord2, bigboard, 0, bigbord2, bigbord2, bigbord2_state, bigbord2, "Digital Research Computers", "Big Board II", MACHINE_NOT_WORKING ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1982, bigbord2, bigboard, 0, bigbord2, bigbord2, bigbord2_state, bigbord2, "Digital Research Computers", "Big Board II", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/bigevglf.cpp b/src/mame/drivers/bigevglf.cpp index e4346c0ba16..f0833e8eb5c 100644 --- a/src/mame/drivers/bigevglf.cpp +++ b/src/mame/drivers/bigevglf.cpp @@ -443,7 +443,7 @@ void bigevglf_state::machine_reset() } -static MACHINE_CONFIG_START( bigevglf, bigevglf_state ) +static MACHINE_CONFIG_START( bigevglf ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80,10000000/2) /* 5 MHz ? */ @@ -574,5 +574,5 @@ DRIVER_INIT_MEMBER(bigevglf_state,bigevglf) membank("bank1")->configure_entries(0, 0xff, &ROM[0x10000], 0x800); } -GAME( 1986, bigevglf, 0, bigevglf, bigevglf, bigevglf_state, bigevglf, ROT270, "Taito America Corporation", "Big Event Golf (US)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1986, bigevglfj, bigevglf, bigevglf, bigevglfj, bigevglf_state,bigevglf, ROT270, "Taito Corporation", "Big Event Golf (Japan)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1986, bigevglf, 0, bigevglf, bigevglf, bigevglf_state, bigevglf, ROT270, "Taito America Corporation", "Big Event Golf (US)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1986, bigevglfj, bigevglf, bigevglf, bigevglfj, bigevglf_state, bigevglf, ROT270, "Taito Corporation", "Big Event Golf (Japan)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/bigstrkb.cpp b/src/mame/drivers/bigstrkb.cpp index 77790e633d2..19cda2f6eb0 100644 --- a/src/mame/drivers/bigstrkb.cpp +++ b/src/mame/drivers/bigstrkb.cpp @@ -199,7 +199,7 @@ GFXDECODE_END /* Machine Driver */ -static MACHINE_CONFIG_START( bigstrkb, bigstrkb_state ) +static MACHINE_CONFIG_START( bigstrkb ) MCFG_CPU_ADD("maincpu", M68000, 12000000) MCFG_CPU_PROGRAM_MAP(bigstrkb_map) @@ -222,11 +222,11 @@ static MACHINE_CONFIG_START( bigstrkb, bigstrkb_state ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") // MCFG_YM2151_ADD("ymsnd", ym2151_config) - MCFG_OKIM6295_ADD("oki1", 4000000, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki1", 4000000, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.30) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.30) - MCFG_OKIM6295_ADD("oki2", 4000000, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki2", 4000000, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.30) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.30) MACHINE_CONFIG_END @@ -297,5 +297,5 @@ ROM_END /* GAME drivers */ -GAME( 1992, bigstrkb, bigstrik, bigstrkb, bigstrkb, driver_device, 0, ROT0, "bootleg", "Big Striker (bootleg)", MACHINE_IMPERFECT_SOUND | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1992, bigstrkba,bigstrik, bigstrkb, bigstrkb, driver_device, 0, ROT0, "bootleg", "Big Striker (bootleg w/Italian teams)", MACHINE_IMPERFECT_SOUND | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1992, bigstrkb, bigstrik, bigstrkb, bigstrkb, bigstrkb_state, 0, ROT0, "bootleg", "Big Striker (bootleg)", MACHINE_IMPERFECT_SOUND | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1992, bigstrkba,bigstrik, bigstrkb, bigstrkb, bigstrkb_state, 0, ROT0, "bootleg", "Big Striker (bootleg w/Italian teams)", MACHINE_IMPERFECT_SOUND | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/binbug.cpp b/src/mame/drivers/binbug.cpp index ddf5fbace5f..0641116823a 100644 --- a/src/mame/drivers/binbug.cpp +++ b/src/mame/drivers/binbug.cpp @@ -53,8 +53,12 @@ #include "emu.h" #include "bus/rs232/keyboard.h" #include "cpu/s2650/s2650.h" +#include "cpu/z80/z80daisy.h" +#include "cpu/z80/z80.h" #include "imagedev/cassette.h" #include "imagedev/snapquik.h" +#include "machine/z80ctc.h" +#include "machine/z80pio.h" #include "sound/wave.h" #include "screen.h" #include "speaker.h" @@ -289,7 +293,7 @@ static DEVICE_INPUT_DEFAULTS_START( keyboard ) DEVICE_INPUT_DEFAULTS( "RS232_STOPBITS", 0xff, RS232_STOPBITS_1 ) DEVICE_INPUT_DEFAULTS_END -static MACHINE_CONFIG_START( binbug, binbug_state ) +static MACHINE_CONFIG_START( binbug ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",S2650, XTAL_1MHz) MCFG_CPU_PROGRAM_MAP(binbug_mem) @@ -335,8 +339,8 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1980, binbug, pipbug, 0, binbug, binbug, driver_device, 0, "MicroByte", "BINBUG 3.6", 0 ) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 1980, binbug, pipbug, 0, binbug, binbug, binbug_state, 0, "MicroByte", "BINBUG 3.6", 0 ) @@ -399,12 +403,6 @@ ToDo: */ -#include "cpu/z80/z80.h" -#include "machine/z80ctc.h" -#include "machine/z80pio.h" -#include "cpu/z80/z80daisy.h" - - class dg680_state : public binbug_state { public: @@ -419,7 +417,7 @@ public: DECLARE_WRITE8_MEMBER(portb_w); DECLARE_READ8_MEMBER(port08_r); DECLARE_WRITE8_MEMBER(port08_w); - DECLARE_WRITE8_MEMBER(kbd_put); + void kbd_put(u8 data); TIMER_DEVICE_CALLBACK_MEMBER(time_tick); TIMER_DEVICE_CALLBACK_MEMBER(uart_tick); @@ -470,7 +468,7 @@ static const z80_daisy_config dg680_daisy_chain[] = static INPUT_PORTS_START( dg680 ) INPUT_PORTS_END -WRITE8_MEMBER( dg680_state::kbd_put ) +void dg680_state::kbd_put(u8 data) { m_term_data = data; /* strobe in keyboard data */ @@ -526,7 +524,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(dg680_state::uart_tick) m_ctc->trg3(0); } -static MACHINE_CONFIG_START( dg680, dg680_state ) +static MACHINE_CONFIG_START( dg680 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80, XTAL_8MHz / 4) MCFG_CPU_PROGRAM_MAP(dg680_mem) @@ -547,7 +545,7 @@ static MACHINE_CONFIG_START( dg680, dg680_state ) /* Keyboard */ MCFG_DEVICE_ADD("keyb", GENERIC_KEYBOARD, 0) - MCFG_GENERIC_KEYBOARD_CB(WRITE8(dg680_state, kbd_put)) + MCFG_GENERIC_KEYBOARD_CB(PUT(dg680_state, kbd_put)) /* Cassette */ MCFG_CASSETTE_ADD( "cassette" ) @@ -586,5 +584,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1980, dg680, 0, 0, dg680, dg680, driver_device, 0, "David Griffiths", "DG680 with DGOS-Z80 1.4", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW ) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 1980, dg680, 0, 0, dg680, dg680, dg680_state, 0, "David Griffiths", "DG680 with DGOS-Z80 1.4", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW ) diff --git a/src/mame/drivers/bingo.cpp b/src/mame/drivers/bingo.cpp index 70abc8bba7d..742220ae428 100644 --- a/src/mame/drivers/bingo.cpp +++ b/src/mame/drivers/bingo.cpp @@ -43,7 +43,7 @@ DRIVER_INIT_MEMBER(bingo_state,bingo) { } -static MACHINE_CONFIG_START( bingo, bingo_state ) +static MACHINE_CONFIG_START( bingo ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", S2650, 1000000) MCFG_CPU_PROGRAM_MAP(bingo_map) @@ -83,7 +83,7 @@ DRIVER_INIT_MEMBER(seeben_state,seeben) { } -static MACHINE_CONFIG_START( seeben, seeben_state ) +static MACHINE_CONFIG_START( seeben ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8085A, 1000000) MCFG_CPU_PROGRAM_MAP(seeben_map) @@ -125,7 +125,7 @@ DRIVER_INIT_MEMBER(splin_state,splin) { } -static MACHINE_CONFIG_START( splin, splin_state ) +static MACHINE_CONFIG_START( splin ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I80186, 16000000) MCFG_CPU_PROGRAM_MAP(splin_map) @@ -307,28 +307,28 @@ ROM_START(tripjok) ROM_END -GAME(1980, cntinntl, 0, bingo, bingo, bingo_state, bingo, ROT0, "Bally", "Continental (Bingo)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1980, cntinntl2, cntinntl, bingo, bingo, bingo_state, bingo, ROT0, "Bally", "Continental (Bingo, alternate version)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(19??, goldgame, 0, splin, splin, splin_state, splin, ROT0, "Splin", "Golden Game (Bingo)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(19??, goldgkitb, goldgame, splin, splin, splin_state, splin, ROT0, "Splin", "Golden Game Kit Bingo Stake 6/10 (Bingo)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(19??, goldgstake, goldgame, splin, splin, splin_state, splin, ROT0, "Splin", "Golden Game Bingo Stake 6/10 (Bingo)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(19??, goldgnew, goldgame, splin, splin, splin_state, splin, ROT0, "Splin", "Golden Game Bingo New (Bingo)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(19??, goldgkit1, goldgame, splin, splin, splin_state, splin, ROT0, "Splin", "Golden Game Kit 1 Generation (Bingo)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(19??, michigan, 0, splin, splin, splin_state, splin, ROT0, "Splin", "Michigan (Bingo)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(19??, michkit1, michigan, splin, splin, splin_state, splin, ROT0, "Splin", "Michigan Bingo Kit 1 Generation (Bingo)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(19??, michkitb, michigan, splin, splin, splin_state, splin, ROT0, "Splin", "Michigan Kit Bingo Stake 6/10 (Bingo)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(19??, michstake, michigan, splin, splin, splin_state, splin, ROT0, "Splin", "Michigan Bingo Stake 6/10 (Bingo)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(19??, michnew, michigan, splin, splin, splin_state, splin, ROT0, "Splin", "Michigan Bingo New (Bingo)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(19??, montana, 0, splin, splin, splin_state, splin, ROT0, "Splin", "Montana Bingo Stake 6/10 (Bingo)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(19??, topgame, 0, splin, splin, splin_state, splin, ROT0, "Splin", "Top Game Laser L10 (Bingo)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(19??, topgamet, topgame, splin, splin, splin_state, splin, ROT0, "Splin", "Top Game Turbo (Bingo)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(19??, penalty, 0, seeben, seeben, seeben_state, seeben, ROT0, "Seeben (Belgium)", "Penalty (Bingo)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(19??, brooklyn, 0, seeben, seeben, seeben_state, seeben, ROT0, "Seeben (Belgium)", "Brooklyn (set 1) (Bingo)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(19??, brooklyna, brooklyn, seeben, seeben, seeben_state, seeben, ROT0, "Seeben (Belgium)", "Brooklyn (set 2) (Bingo)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(19??, newdixie, 0, seeben, seeben, seeben_state, seeben, ROT0, "Seeben (Belgium)", "New Dixieland (Bingo)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(19??, superdix, 0, seeben, seeben, seeben_state, seeben, ROT0, "Seeben (Belgium)", "Super Dixieland (Bingo)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(19??, cntine31, 0, seeben, seeben, seeben_state, seeben, ROT0, "Seeben (Belgium)", "Continental 3 in 1 (Bingo)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(19??, domino2, 0, seeben, seeben, seeben_state, seeben, ROT0, "Seeben (Belgium)", "Domino II (Bingo)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(19??, tripjok, 0, seeben, seeben, seeben_state, seeben, ROT0, "Seeben (Belgium)", "Triple Joker (Bingo)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(19??, ggate, 0, seeben, seeben, seeben_state, seeben, ROT0, "Seeben (Belgium)", "Golden Gate (set 1) (Bingo)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(19??, ggatea, ggate, seeben, seeben, seeben_state, seeben, ROT0, "Seeben (Belgium)", "Golden Gate (set 2) (Bingo)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1980, cntinntl, 0, bingo, bingo, bingo_state, bingo, ROT0, "Bally", "Continental (Bingo)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1980, cntinntl2, cntinntl, bingo, bingo, bingo_state, bingo, ROT0, "Bally", "Continental (Bingo, alternate version)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(19??, goldgame, 0, splin, splin, splin_state, splin, ROT0, "Splin", "Golden Game (Bingo)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(19??, goldgkitb, goldgame, splin, splin, splin_state, splin, ROT0, "Splin", "Golden Game Kit Bingo Stake 6/10 (Bingo)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(19??, goldgstake, goldgame, splin, splin, splin_state, splin, ROT0, "Splin", "Golden Game Bingo Stake 6/10 (Bingo)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(19??, goldgnew, goldgame, splin, splin, splin_state, splin, ROT0, "Splin", "Golden Game Bingo New (Bingo)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(19??, goldgkit1, goldgame, splin, splin, splin_state, splin, ROT0, "Splin", "Golden Game Kit 1 Generation (Bingo)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(19??, michigan, 0, splin, splin, splin_state, splin, ROT0, "Splin", "Michigan (Bingo)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(19??, michkit1, michigan, splin, splin, splin_state, splin, ROT0, "Splin", "Michigan Bingo Kit 1 Generation (Bingo)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(19??, michkitb, michigan, splin, splin, splin_state, splin, ROT0, "Splin", "Michigan Kit Bingo Stake 6/10 (Bingo)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(19??, michstake, michigan, splin, splin, splin_state, splin, ROT0, "Splin", "Michigan Bingo Stake 6/10 (Bingo)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(19??, michnew, michigan, splin, splin, splin_state, splin, ROT0, "Splin", "Michigan Bingo New (Bingo)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(19??, montana, 0, splin, splin, splin_state, splin, ROT0, "Splin", "Montana Bingo Stake 6/10 (Bingo)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(19??, topgame, 0, splin, splin, splin_state, splin, ROT0, "Splin", "Top Game Laser L10 (Bingo)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(19??, topgamet, topgame, splin, splin, splin_state, splin, ROT0, "Splin", "Top Game Turbo (Bingo)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(19??, penalty, 0, seeben, seeben, seeben_state, seeben, ROT0, "Seeben (Belgium)", "Penalty (Bingo)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(19??, brooklyn, 0, seeben, seeben, seeben_state, seeben, ROT0, "Seeben (Belgium)", "Brooklyn (set 1) (Bingo)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(19??, brooklyna, brooklyn, seeben, seeben, seeben_state, seeben, ROT0, "Seeben (Belgium)", "Brooklyn (set 2) (Bingo)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(19??, newdixie, 0, seeben, seeben, seeben_state, seeben, ROT0, "Seeben (Belgium)", "New Dixieland (Bingo)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(19??, superdix, 0, seeben, seeben, seeben_state, seeben, ROT0, "Seeben (Belgium)", "Super Dixieland (Bingo)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(19??, cntine31, 0, seeben, seeben, seeben_state, seeben, ROT0, "Seeben (Belgium)", "Continental 3 in 1 (Bingo)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(19??, domino2, 0, seeben, seeben, seeben_state, seeben, ROT0, "Seeben (Belgium)", "Domino II (Bingo)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(19??, tripjok, 0, seeben, seeben, seeben_state, seeben, ROT0, "Seeben (Belgium)", "Triple Joker (Bingo)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(19??, ggate, 0, seeben, seeben, seeben_state, seeben, ROT0, "Seeben (Belgium)", "Golden Gate (set 1) (Bingo)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(19??, ggatea, ggate, seeben, seeben, seeben_state, seeben, ROT0, "Seeben (Belgium)", "Golden Gate (set 2) (Bingo)", MACHINE_IS_SKELETON_MECHANICAL) diff --git a/src/mame/drivers/bingoc.cpp b/src/mame/drivers/bingoc.cpp index 5d4df9034d2..b60f2a5661d 100644 --- a/src/mame/drivers/bingoc.cpp +++ b/src/mame/drivers/bingoc.cpp @@ -167,7 +167,7 @@ static INPUT_PORTS_START( bingoc ) INPUT_PORTS_END -static MACHINE_CONFIG_START( bingoc, bingoc_state ) +static MACHINE_CONFIG_START( bingoc ) MCFG_CPU_ADD("maincpu", M68000,8000000) /* ? MHz */ MCFG_CPU_PROGRAM_MAP(main_map) @@ -231,4 +231,4 @@ ROM_START( bingoc ) ROM_COPY( "upd", 0x20000, 0x00000, 0x20000 ) ROM_END -GAME( 1989, bingoc, 0, bingoc, bingoc, driver_device, 0, ROT0, "Sega", "Bingo Circus (Rev. A 891001)", MACHINE_NOT_WORKING ) +GAME( 1989, bingoc, 0, bingoc, bingoc, bingoc_state, 0, ROT0, "Sega", "Bingo Circus (Rev. A 891001)", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/bingoman.cpp b/src/mame/drivers/bingoman.cpp index 2bfae7e4c33..11b5210af83 100644 --- a/src/mame/drivers/bingoman.cpp +++ b/src/mame/drivers/bingoman.cpp @@ -371,7 +371,7 @@ PALETTE_INIT_MEMBER(bingoman_state, bingoman) { } -static MACHINE_CONFIG_START( bingoman, bingoman_state ) +static MACHINE_CONFIG_START( bingoman ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", H83002, XTAL_20MHz) /* TODO: correct CPU type */ @@ -465,5 +465,5 @@ ROM_END ***************************************************************************/ /* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS */ -GAME( 1993, bingoman, 0, bingoman, bingoman, driver_device, 0, ROT0, "HP Automaten", "Bingo Mania (P03-P07-P14)", MACHINE_IS_SKELETON ) -GAME( 1993, bingomana, bingoman, bingoman, bingoman, driver_device, 0, ROT0, "HP Automaten", "Bingo Mania (A03)", MACHINE_IS_SKELETON ) +GAME( 1993, bingoman, 0, bingoman, bingoman, bingoman_state, 0, ROT0, "HP Automaten", "Bingo Mania (P03-P07-P14)", MACHINE_IS_SKELETON ) +GAME( 1993, bingomana, bingoman, bingoman, bingoman, bingoman_state, 0, ROT0, "HP Automaten", "Bingo Mania (A03)", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/bingor.cpp b/src/mame/drivers/bingor.cpp index f9a99303cf8..25fc67db29c 100644 --- a/src/mame/drivers/bingor.cpp +++ b/src/mame/drivers/bingor.cpp @@ -686,7 +686,7 @@ static GFXDECODE_START( bingor ) GFXDECODE_END -static MACHINE_CONFIG_START( bingor, bingor_state ) +static MACHINE_CONFIG_START( bingor ) MCFG_CPU_ADD("maincpu", I80186, XTAL_16MHz) MCFG_CPU_PROGRAM_MAP(bingor_map) MCFG_CPU_IO_MAP(bingor_io) @@ -766,7 +766,7 @@ static ADDRESS_MAP_START( slave_io, AS_IO, 8, bingor_state) AM_RANGE(0xc000, 0xcfff) AM_RAM ADDRESS_MAP_END -static MACHINE_CONFIG_START( vip2000, bingor_state ) +static MACHINE_CONFIG_START( vip2000 ) MCFG_CPU_ADD("maincpu", I80186, XTAL_10MHz) MCFG_CPU_PROGRAM_MAP(vip2000_map) MCFG_CPU_IO_MAP(vip2000_io) @@ -914,10 +914,10 @@ ROM_END -GAME( 2002, bingor1, 0, bingor, bingor, driver_device, 0, ROT0, "", "Bingo Roll / Bell Star? (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -GAME( 2002, bingor2, 0, bingor, bingor, driver_device, 0, ROT0, "", "Bingo Roll / Bell Star? (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -GAME( 2002, bingor3, 0, bingor, bingor, driver_device, 0, ROT0, "", "Bingo Roll / Bell Star? (set 3)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -GAME( 2002, bingor4, 0, bingor, bingor, driver_device, 0, ROT0, "", "Bingo Roll / Bell Star? (set 4)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -GAME( 2002, bingor5, 0, bingor, bingor, driver_device, 0, ROT0, "", "Bingo Roll / Bell Star V3? (set 5)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +GAME( 2002, bingor1, 0, bingor, bingor, bingor_state, 0, ROT0, "", "Bingo Roll / Bell Star? (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +GAME( 2002, bingor2, 0, bingor, bingor, bingor_state, 0, ROT0, "", "Bingo Roll / Bell Star? (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +GAME( 2002, bingor3, 0, bingor, bingor, bingor_state, 0, ROT0, "", "Bingo Roll / Bell Star? (set 3)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +GAME( 2002, bingor4, 0, bingor, bingor, bingor_state, 0, ROT0, "", "Bingo Roll / Bell Star? (set 4)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +GAME( 2002, bingor5, 0, bingor, bingor, bingor_state, 0, ROT0, "", "Bingo Roll / Bell Star V3? (set 5)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -GAME( 2001, vip2000, 0, vip2000, bingor, driver_device, 0, ROT0, "Paloma-Elektronik?", "Unknown 'VIP 2000' game", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +GAME( 2001, vip2000, 0, vip2000, bingor, bingor_state, 0, ROT0, "Paloma-Elektronik?", "Unknown 'VIP 2000' game", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/bionicc.cpp b/src/mame/drivers/bionicc.cpp index 65534b88dc9..c856dd476fe 100644 --- a/src/mame/drivers/bionicc.cpp +++ b/src/mame/drivers/bionicc.cpp @@ -368,7 +368,7 @@ void bionicc_state::machine_reset() m_soundcommand = 0; } -static MACHINE_CONFIG_START( bionicc, bionicc_state ) +static MACHINE_CONFIG_START( bionicc ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_24MHz / 2) /* 12 MHz - verified in schematics */ @@ -688,11 +688,11 @@ ROM_END * *************************************/ -GAME( 1987, bionicc, 0, bionicc, bionicc, driver_device, 0, ROT0, "Capcom", "Bionic Commando (Euro)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, bionicc1, bionicc, bionicc, bionicc, driver_device, 0, ROT0, "Capcom", "Bionic Commando (US set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, bionicc2, bionicc, bionicc, bionicc, driver_device, 0, ROT0, "Capcom", "Bionic Commando (US set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, topsecrt, bionicc, bionicc, bionicc, driver_device, 0, ROT0, "Capcom", "Top Secret (Japan, old revision)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, bioniccbl, bionicc, bionicc, bionicc, driver_device, 0, ROT0, "bootleg", "Bionic Commandos (bootleg, set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, bioniccbl2,bionicc, bionicc, bionicc, driver_device, 0, ROT0, "bootleg", "Bionic Commandos (bootleg, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, bionicc, 0, bionicc, bionicc, bionicc_state, 0, ROT0, "Capcom", "Bionic Commando (Euro)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, bionicc1, bionicc, bionicc, bionicc, bionicc_state, 0, ROT0, "Capcom", "Bionic Commando (US set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, bionicc2, bionicc, bionicc, bionicc, bionicc_state, 0, ROT0, "Capcom", "Bionic Commando (US set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, topsecrt, bionicc, bionicc, bionicc, bionicc_state, 0, ROT0, "Capcom", "Top Secret (Japan, old revision)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, bioniccbl, bionicc, bionicc, bionicc, bionicc_state, 0, ROT0, "bootleg", "Bionic Commandos (bootleg, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, bioniccbl2,bionicc, bionicc, bionicc, bionicc_state, 0, ROT0, "bootleg", "Bionic Commandos (bootleg, set 2)", MACHINE_SUPPORTS_SAVE ) // there's also an undumped JP new revision on which there are no extra lives after 1 million points, plus other bug-fixes / changes diff --git a/src/mame/drivers/bishi.cpp b/src/mame/drivers/bishi.cpp index d309852008a..dd8cffbb047 100644 --- a/src/mame/drivers/bishi.cpp +++ b/src/mame/drivers/bishi.cpp @@ -374,7 +374,7 @@ void bishi_state::machine_reset() m_cur_control2 = 0; } -static MACHINE_CONFIG_START( bishi, bishi_state ) +static MACHINE_CONFIG_START( bishi ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, CPU_CLOCK) /* 12MHz (24MHz OSC / 2 ) */ @@ -502,7 +502,7 @@ ROM_START( sbishika ) ROM_LOAD( "675kaa04.8f", 0x180000, 0x080000, CRC(ebcbd813) SHA1(d67540d0ea303f09866f4a766e2d5162f05cd4ac) ) ROM_END -GAME( 1996, bishi, 0, bishi, bishi, driver_device, 0, ROT0, "Konami", "Bishi Bashi Championship Mini Game Senshuken (ver JAA, 3 Players)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1998, sbishi, 0, bishi, bishi2p, driver_device, 0, ROT0, "Konami", "Super Bishi Bashi Championship (ver JAA, 2 Players)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1998, sbishik, sbishi, bishi, bishi, driver_device, 0, ROT0, "Konami", "Super Bishi Bashi Championship (ver KAB, 3 Players)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1998, sbishika, sbishi, bishi, bishi, driver_device, 0, ROT0, "Konami", "Super Bishi Bashi Championship (ver KAA, 3 Players)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1996, bishi, 0, bishi, bishi, bishi_state, 0, ROT0, "Konami", "Bishi Bashi Championship Mini Game Senshuken (ver JAA, 3 Players)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1998, sbishi, 0, bishi, bishi2p, bishi_state, 0, ROT0, "Konami", "Super Bishi Bashi Championship (ver JAA, 2 Players)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1998, sbishik, sbishi, bishi, bishi, bishi_state, 0, ROT0, "Konami", "Super Bishi Bashi Championship (ver KAB, 3 Players)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1998, sbishika, sbishi, bishi, bishi, bishi_state, 0, ROT0, "Konami", "Super Bishi Bashi Championship (ver KAA, 3 Players)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/bitgraph.cpp b/src/mame/drivers/bitgraph.cpp index 152b4aa5e3b..c0358962d35 100644 --- a/src/mame/drivers/bitgraph.cpp +++ b/src/mame/drivers/bitgraph.cpp @@ -568,7 +568,7 @@ static MACHINE_CONFIG_FRAGMENT( bg_ppu ) MACHINE_CONFIG_END #endif -static MACHINE_CONFIG_START( bitgrpha, bitgraph_state ) +static MACHINE_CONFIG_START( bitgrpha ) MCFG_CPU_ADD(M68K_TAG, M68000, XTAL_6_9MHz) MCFG_CPU_PROGRAM_MAP(bitgrapha_mem) @@ -591,7 +591,7 @@ static MACHINE_CONFIG_START( bitgrpha, bitgraph_state ) MCFG_RAM_DEFAULT_SIZE("128K") MACHINE_CONFIG_END -static MACHINE_CONFIG_START( bitgrphb, bitgraph_state ) +static MACHINE_CONFIG_START( bitgrphb ) MCFG_CPU_ADD(M68K_TAG, M68000, XTAL_6_9MHz) MCFG_CPU_PROGRAM_MAP(bitgraphb_mem) @@ -637,6 +637,6 @@ ROM_START( bitgrphb ) ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1981, bitgrpha, 0, 0, bitgrpha, bitgraph, driver_device, 0, "BBN", "BitGraph rev A", ROT90 | MACHINE_IMPERFECT_KEYBOARD) -COMP( 1982, bitgrphb, 0, 0, bitgrphb, bitgraph, driver_device, 0, "BBN", "BitGraph rev B", ROT270 | MACHINE_NOT_WORKING|MACHINE_IMPERFECT_KEYBOARD) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 1981, bitgrpha, 0, 0, bitgrpha, bitgraph, bitgraph_state, 0, "BBN", "BitGraph rev A", ROT90 | MACHINE_IMPERFECT_KEYBOARD ) +COMP( 1982, bitgrphb, 0, 0, bitgrphb, bitgraph, bitgraph_state, 0, "BBN", "BitGraph rev B", ROT270 | MACHINE_NOT_WORKING|MACHINE_IMPERFECT_KEYBOARD ) diff --git a/src/mame/drivers/bk.cpp b/src/mame/drivers/bk.cpp index 85ad0f6387d..76db0caf56c 100644 --- a/src/mame/drivers/bk.cpp +++ b/src/mame/drivers/bk.cpp @@ -162,7 +162,7 @@ static INPUT_PORTS_START( bk0010 ) INPUT_PORTS_END -static MACHINE_CONFIG_START( bk0010, bk_state ) +static MACHINE_CONFIG_START( bk0010 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", T11, 3000000) MCFG_T11_INITIAL_MODE(0x36ff) /* initial mode word has DAL15,14,11,8 pulled low */ @@ -233,8 +233,8 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1985, bk0010, 0, 0, bk0010, bk0010, driver_device, 0, "Elektronika", "BK 0010", 0) -COMP( 1986, bk001001, bk0010, 0, bk0010, bk0010, driver_device, 0, "Elektronika", "BK 0010-01", 0) -COMP( 1986, bk0010fd, bk0010, 0, bk0010fd, bk0010, driver_device, 0, "Elektronika", "BK 0010 FDD", MACHINE_NOT_WORKING) -COMP( 1986, bk0011m, bk0010, 0, bk0010fd, bk0010, driver_device, 0, "Elektronika", "BK 0011M", MACHINE_NOT_WORKING) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +COMP( 1985, bk0010, 0, 0, bk0010, bk0010, bk_state, 0, "Elektronika", "BK 0010", 0) +COMP( 1986, bk001001, bk0010, 0, bk0010, bk0010, bk_state, 0, "Elektronika", "BK 0010-01", 0) +COMP( 1986, bk0010fd, bk0010, 0, bk0010fd, bk0010, bk_state, 0, "Elektronika", "BK 0010 FDD", MACHINE_NOT_WORKING) +COMP( 1986, bk0011m, bk0010, 0, bk0010fd, bk0010, bk_state, 0, "Elektronika", "BK 0011M", MACHINE_NOT_WORKING) diff --git a/src/mame/drivers/bking.cpp b/src/mame/drivers/bking.cpp index 031e79b6cf4..e8609acad97 100644 --- a/src/mame/drivers/bking.cpp +++ b/src/mame/drivers/bking.cpp @@ -396,7 +396,7 @@ MACHINE_RESET_MEMBER(bking_state,bking3) m_addr_l = 0; } -static MACHINE_CONFIG_START( bking, bking_state ) +static MACHINE_CONFIG_START( bking ) /* basic machine hardware */ MCFG_CPU_ADD("main_cpu", Z80, XTAL_12MHz/4) /* 3 MHz */ @@ -750,6 +750,6 @@ ROM_START( bking3 ) ROM_END -GAME( 1982, bking, 0, bking, bking, driver_device, 0, ROT270, "Taito Corporation", "Birdie King", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, bking2, 0, bking, bking2, driver_device, 0, ROT90, "Taito Corporation", "Birdie King 2", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, bking3, 0, bking3, bking2, driver_device, 0, ROT90, "Taito Corporation", "Birdie King 3", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, bking, 0, bking, bking, bking_state, 0, ROT270, "Taito Corporation", "Birdie King", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, bking2, 0, bking, bking2, bking_state, 0, ROT90, "Taito Corporation", "Birdie King 2", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, bking3, 0, bking3, bking2, bking_state, 0, ROT90, "Taito Corporation", "Birdie King 3", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/blackt96.cpp b/src/mame/drivers/blackt96.cpp index 8ec6989d997..864c29b01e4 100644 --- a/src/mame/drivers/blackt96.cpp +++ b/src/mame/drivers/blackt96.cpp @@ -340,7 +340,7 @@ void blackt96_state::tile_callback(int &tile, int& fx, int& fy, int& region) } -static MACHINE_CONFIG_START( blackt96, blackt96_state ) +static MACHINE_CONFIG_START( blackt96 ) MCFG_CPU_ADD("maincpu", M68000, 18000000 /2) MCFG_CPU_PROGRAM_MAP(blackt96_map) MCFG_CPU_VBLANK_INT_DRIVER("screen", blackt96_state, irq1_line_hold) @@ -373,11 +373,11 @@ static MACHINE_CONFIG_START( blackt96, blackt96_state ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_OKIM6295_ADD("oki1", 8000000/8, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki1", 8000000/8, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.47) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.47) - MCFG_OKIM6295_ADD("oki2", 8000000/8, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki2", 8000000/8, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.47) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.47) MACHINE_CONFIG_END @@ -416,4 +416,4 @@ ROM_START( blackt96 ) ROM_CONTINUE( 0x00001, 0x08000 ) // first half is empty ROM_END -GAME( 1996, blackt96, 0, blackt96, blackt96, driver_device, 0, ROT0, "D.G.R.M.", "Black Touch '96", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +GAME( 1996, blackt96, 0, blackt96, blackt96, blackt96_state, 0, ROT0, "D.G.R.M.", "Black Touch '96", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/bladestl.cpp b/src/mame/drivers/bladestl.cpp index 3aa9b337a15..2f711ff6816 100644 --- a/src/mame/drivers/bladestl.cpp +++ b/src/mame/drivers/bladestl.cpp @@ -99,13 +99,13 @@ WRITE8_MEMBER(bladestl_state::bladestl_port_B_w) m_upd7759->set_bank_base(((data & 0x38) >> 3) * 0x20000); // bit 2 = SSG-C rc filter enable - m_filter3->filter_rc_set_RC(FLT_RC_LOWPASS, 1000, 2200, 1000, data & 0x04 ? CAP_N(150) : 0); /* YM2203-SSG-C */ + m_filter3->filter_rc_set_RC(filter_rc_device::LOWPASS, 1000, 2200, 1000, data & 0x04 ? CAP_N(150) : 0); /* YM2203-SSG-C */ // bit 1 = SSG-B rc filter enable - m_filter2->filter_rc_set_RC(FLT_RC_LOWPASS, 1000, 2200, 1000, data & 0x02 ? CAP_N(150) : 0); /* YM2203-SSG-B */ + m_filter2->filter_rc_set_RC(filter_rc_device::LOWPASS, 1000, 2200, 1000, data & 0x02 ? CAP_N(150) : 0); /* YM2203-SSG-B */ // bit 0 = SSG-A rc filter enable - m_filter1->filter_rc_set_RC(FLT_RC_LOWPASS, 1000, 2200, 1000, data & 0x01 ? CAP_N(150) : 0); /* YM2203-SSG-A */ + m_filter1->filter_rc_set_RC(filter_rc_device::LOWPASS, 1000, 2200, 1000, data & 0x01 ? CAP_N(150) : 0); /* YM2203-SSG-A */ } READ8_MEMBER(bladestl_state::bladestl_speech_busy_r) @@ -299,7 +299,7 @@ void bladestl_state::machine_reset() m_last_track[i] = 0; } -static MACHINE_CONFIG_START( bladestl, bladestl_state ) +static MACHINE_CONFIG_START( bladestl ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", HD6309, 24000000/2) /* 24MHz/2 (?) */ @@ -443,6 +443,6 @@ ROM_END * *************************************/ -GAME( 1987, bladestl, 0, bladestl, bladestl, driver_device, 0, ROT90, "Konami", "Blades of Steel (version T)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, bladestll, bladestl, bladestl, bladestle, driver_device,0, ROT90, "Konami", "Blades of Steel (version L)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, bladestle, bladestl, bladestl, bladestle, driver_device,0, ROT90, "Konami", "Blades of Steel (version E)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, bladestl, 0, bladestl, bladestl, bladestl_state, 0, ROT90, "Konami", "Blades of Steel (version T)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, bladestll, bladestl, bladestl, bladestle, bladestl_state, 0, ROT90, "Konami", "Blades of Steel (version L)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, bladestle, bladestl, bladestl, bladestle, bladestl_state, 0, ROT90, "Konami", "Blades of Steel (version E)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/blitz.cpp b/src/mame/drivers/blitz.cpp index 8100078f6d3..71146c5b56a 100644 --- a/src/mame/drivers/blitz.cpp +++ b/src/mame/drivers/blitz.cpp @@ -702,7 +702,7 @@ GFXDECODE_END * Machine Drivers * *********************************************/ -static MACHINE_CONFIG_START( megadpkr, blitz_state ) +static MACHINE_CONFIG_START( megadpkr ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, CPU_CLOCK) @@ -833,6 +833,6 @@ ROM_END * Game Drivers * *********************************************/ -/* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS */ -GAME( 1990, megadpkr, 0, megadpkr, megadpkr, driver_device, 0, ROT0, "Blitz System Inc.", "Mega Double Poker (conversion kit, set 1)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING ) -GAME( 1990, megadpkrb, megadpkr, megadpkr, megadpkr, driver_device, 0, ROT0, "Blitz System Inc.", "Mega Double Poker (conversion kit, set 2)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING ) +/* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS */ +GAME( 1990, megadpkr, 0, megadpkr, megadpkr, blitz_state, 0, ROT0, "Blitz System Inc.", "Mega Double Poker (conversion kit, set 1)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING ) +GAME( 1990, megadpkrb, megadpkr, megadpkr, megadpkr, blitz_state, 0, ROT0, "Blitz System Inc.", "Mega Double Poker (conversion kit, set 2)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/blitz68k.cpp b/src/mame/drivers/blitz68k.cpp index 82b0d16dee7..632a5d1d812 100644 --- a/src/mame/drivers/blitz68k.cpp +++ b/src/mame/drivers/blitz68k.cpp @@ -1673,7 +1673,7 @@ static ADDRESS_MAP_START( ramdac_map, AS_0, 8, blitz68k_state ) AM_RANGE(0x000, 0x3ff) AM_DEVREADWRITE("ramdac",ramdac_device,ramdac_pal_r,ramdac_rgb666_w) ADDRESS_MAP_END -static MACHINE_CONFIG_START( ilpag, blitz68k_state ) +static MACHINE_CONFIG_START( ilpag ) MCFG_CPU_ADD("maincpu", M68000, 11059200 ) // ? MCFG_CPU_PROGRAM_MAP(ilpag_map) MCFG_CPU_VBLANK_INT_DRIVER("screen", blitz68k_state, irq4_line_hold) //3 & 6 used, mcu comms? @@ -1740,7 +1740,7 @@ static MACHINE_CONFIG_DERIVED( steaser, ilpag ) MCFG_TIMER_DRIVER_ADD_PERIODIC("coinsim", blitz68k_state, steaser_mcu_sim, attotime::from_hz(10000)) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( cjffruit, blitz68k_state ) +static MACHINE_CONFIG_START( cjffruit ) MCFG_CPU_ADD("maincpu", M68000, XTAL_22_1184MHz/2) MCFG_CPU_PROGRAM_MAP(cjffruit_map) @@ -1768,7 +1768,7 @@ static MACHINE_CONFIG_START( cjffruit, blitz68k_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( bankrob, blitz68k_state ) +static MACHINE_CONFIG_START( bankrob ) MCFG_CPU_ADD("maincpu", M68000, XTAL_11_0592MHz) MCFG_CPU_PROGRAM_MAP(bankrob_map) MCFG_CPU_VBLANK_INT_DRIVER("screen", blitz68k_state, irq3_line_hold) // protection prevents correct irq frequency by crtc @@ -1800,7 +1800,7 @@ static MACHINE_CONFIG_START( bankrob, blitz68k_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( bankroba, blitz68k_state ) +static MACHINE_CONFIG_START( bankroba ) MCFG_CPU_ADD("maincpu", M68000, XTAL_11_0592MHz ) MCFG_CPU_PROGRAM_MAP(bankroba_map) MCFG_CPU_VBLANK_INT_DRIVER("screen", blitz68k_state, irq5_line_hold) // protection prevents correct irq frequency by crtc @@ -1830,7 +1830,7 @@ static MACHINE_CONFIG_START( bankroba, blitz68k_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( deucesw2, blitz68k_state ) +static MACHINE_CONFIG_START( deucesw2 ) MCFG_CPU_ADD("maincpu", M68000, XTAL_22_1184MHz / 2) MCFG_CPU_PROGRAM_MAP(deucesw2_map) // irq 2 reads from MCUs @@ -1859,7 +1859,7 @@ static MACHINE_CONFIG_START( deucesw2, blitz68k_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( dualgame, blitz68k_state ) +static MACHINE_CONFIG_START( dualgame ) MCFG_CPU_ADD("maincpu", M68000, XTAL_11_0592MHz ) MCFG_CPU_PROGRAM_MAP(dualgame_map) MCFG_CPU_VBLANK_INT_DRIVER("screen", blitz68k_state, irq2_line_hold) // lev 2 = MCUs, lev 3 = vblank @@ -1890,7 +1890,7 @@ static MACHINE_CONFIG_START( dualgame, blitz68k_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( hermit, blitz68k_state ) +static MACHINE_CONFIG_START( hermit ) MCFG_CPU_ADD("maincpu", M68000, XTAL_22_1184MHz/2 ) MCFG_CPU_PROGRAM_MAP(hermit_map) MCFG_CPU_VBLANK_INT_DRIVER("screen", blitz68k_state, irq1_line_hold) // protection prevents correct irq frequency by crtc @@ -1919,7 +1919,7 @@ static MACHINE_CONFIG_START( hermit, blitz68k_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( maxidbl, blitz68k_state ) +static MACHINE_CONFIG_START( maxidbl ) MCFG_CPU_ADD("maincpu", M68000, XTAL_11_0592MHz) MCFG_CPU_PROGRAM_MAP(maxidbl_map) MCFG_CPU_VBLANK_INT_DRIVER("screen", blitz68k_state, irq3_line_hold) // protection prevents correct irq frequency by crtc @@ -2869,16 +2869,16 @@ DRIVER_INIT_MEMBER(blitz68k_state,megadble) -GAME( 1992, maxidbl, 0, maxidbl, maxidbl, blitz68k_state, maxidbl, ROT0, "Blitz Systems Inc.", "Maxi Double Poker (Ver. 1.10)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_NO_SOUND | MACHINE_WRONG_COLORS ) -GAME( 1990, megadblj, 0, maxidbl, maxidbl, blitz68k_state, megadblj, ROT0, "Blitz Systems Inc.", "Mega Double Poker Jackpot (Ver. 1.26)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_NO_SOUND ) // JUNE 28TH, 1993 -GAME( 1990, megadble, 0, maxidbl, maxidbl, blitz68k_state, megadble, ROT0, "Blitz Systems Inc.", "Mega Double Poker (Ver. 1.63 Espagnol)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_NO_SOUND | MACHINE_WRONG_COLORS ) // NOVEMBER 1994 -GAME( 1993, steaser, 0, steaser, steaser, driver_device, 0, ROT0, "", "Strip Teaser (Italy, Ver. 1.22)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_NO_SOUND ) // In-game strings are in Italian but service mode is half English / half French? -GAME( 1993, bankrob, 0, bankrob, bankrob, blitz68k_state, bankrob, ROT0, "Entertainment Technology Corp.", "Bank Robbery (Ver. 3.32)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_NO_SOUND ) // BLITZ SYSTEM INC APRIL 1995 -GAME( 1993, bankroba, bankrob, bankroba, bankrob, blitz68k_state, bankroba, ROT0, "Entertainment Technology Corp.", "Bank Robbery (Ver. 2.00)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_NO_SOUND ) // BLITZ SYSTEM INC MAY 10TH, 1993 -GAME( 1993?, poker52, 0, maxidbl, maxidbl, driver_device, 0, ROT0, "Blitz Systems Inc.", "Poker 52 (Ver. 1.2)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_NO_SOUND ) // MARCH 10TH, 1994 +GAME( 1992, maxidbl, 0, maxidbl, maxidbl, blitz68k_state, maxidbl, ROT0, "Blitz Systems Inc.", "Maxi Double Poker (Ver. 1.10)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_NO_SOUND | MACHINE_WRONG_COLORS ) +GAME( 1990, megadblj, 0, maxidbl, maxidbl, blitz68k_state, megadblj, ROT0, "Blitz Systems Inc.", "Mega Double Poker Jackpot (Ver. 1.26)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_NO_SOUND ) // JUNE 28TH, 1993 +GAME( 1990, megadble, 0, maxidbl, maxidbl, blitz68k_state, megadble, ROT0, "Blitz Systems Inc.", "Mega Double Poker (Ver. 1.63 Espagnol)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_NO_SOUND | MACHINE_WRONG_COLORS ) // NOVEMBER 1994 +GAME( 1993, steaser, 0, steaser, steaser, blitz68k_state, 0, ROT0, "", "Strip Teaser (Italy, Ver. 1.22)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_NO_SOUND ) // In-game strings are in Italian but service mode is half English / half French? +GAME( 1993, bankrob, 0, bankrob, bankrob, blitz68k_state, bankrob, ROT0, "Entertainment Technology Corp.", "Bank Robbery (Ver. 3.32)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_NO_SOUND ) // BLITZ SYSTEM INC APRIL 1995 +GAME( 1993, bankroba, bankrob, bankroba, bankrob, blitz68k_state, bankroba, ROT0, "Entertainment Technology Corp.", "Bank Robbery (Ver. 2.00)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_NO_SOUND ) // BLITZ SYSTEM INC MAY 10TH, 1993 +GAME( 1993?, poker52, 0, maxidbl, maxidbl, blitz68k_state, 0, ROT0, "Blitz Systems Inc.", "Poker 52 (Ver. 1.2)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_NO_SOUND ) // MARCH 10TH, 1994 GAME( 1995, dualgame, 0, dualgame, dualgame, blitz68k_state, dualgame, ROT0, "Labtronix Technologies", "Dual Games (prototype)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_NO_SOUND ) // SEPTEMBER 5TH, 1995 -GAME( 1995, hermit, 0, hermit, hermit, blitz68k_state, hermit, ROT0, "Dugamex", "The Hermit (Ver. 1.14)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_NO_SOUND ) // APRIL 1995 +GAME( 1995, hermit, 0, hermit, hermit, blitz68k_state, hermit, ROT0, "Dugamex", "The Hermit (Ver. 1.14)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_NO_SOUND ) // APRIL 1995 GAME( 1997, deucesw2, 0, deucesw2, deucesw2, blitz68k_state, deucesw2, ROT0, "", "Deuces Wild 2 - American Heritage (Ver. 2.02F)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_NO_SOUND ) // APRIL 10TH, 1997 GAME( 1998, cj3play, 0, cjffruit, cjffruit, blitz68k_state, cj3play, ROT0, "Cadillac Jack", "Triple Play (Ver. 1.10)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_NO_SOUND ) // FEBRUARY 24TH, 1999 GAME( 1998, cjffruit, 0, cjffruit, cjffruit, blitz68k_state, cjffruit, ROT0, "Cadillac Jack", "Funny Fruit (Ver. 1.13)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_NO_SOUND ) // APRIL 21ST, 1999 -GAME( 199?, ilpag, 0, ilpag, ilpag, driver_device, 0, ROT0, "", "Il Pagliaccio (Italy, Ver. 2.7C)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_NO_SOUND ) +GAME( 199?, ilpag, 0, ilpag, ilpag, blitz68k_state, 0, ROT0, "", "Il Pagliaccio (Italy, Ver. 2.7C)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/blktiger.cpp b/src/mame/drivers/blktiger.cpp index cea2db50778..5911e0a29e3 100644 --- a/src/mame/drivers/blktiger.cpp +++ b/src/mame/drivers/blktiger.cpp @@ -295,7 +295,7 @@ void blktiger_state::machine_reset() m_i8751_latch = 0; } -static MACHINE_CONFIG_START( blktiger, blktiger_state ) +static MACHINE_CONFIG_START( blktiger ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_24MHz/4) /* verified on pcb */ @@ -615,11 +615,11 @@ DRIVER_INIT_MEMBER(blktiger_state,blktigerb3) memcpy(src, &buffer[0], len); } -GAME( 1987, blktiger, 0, blktiger, blktiger, driver_device, 0, ROT0, "Capcom", "Black Tiger", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, blktigera, blktiger, blktiger, blktiger, driver_device, 0, ROT0, "Capcom", "Black Tiger (older)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, blktigerb1, blktiger, blktigerbl, blktiger, driver_device, 0, ROT0, "bootleg", "Black Tiger (bootleg set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, blktigerb2, blktiger, blktigerbl, blktiger, driver_device, 0, ROT0, "bootleg", "Black Tiger (bootleg set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, blkdrgon, blktiger, blktiger, blktiger, driver_device, 0, ROT0, "Capcom", "Black Dragon (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, blkdrgonb, blktiger, blktigerbl, blktiger, driver_device, 0, ROT0, "bootleg", "Black Dragon (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, blktiger, 0, blktiger, blktiger, blktiger_state, 0, ROT0, "Capcom", "Black Tiger", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, blktigera, blktiger, blktiger, blktiger, blktiger_state, 0, ROT0, "Capcom", "Black Tiger (older)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, blktigerb1, blktiger, blktigerbl, blktiger, blktiger_state, 0, ROT0, "bootleg", "Black Tiger (bootleg set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, blktigerb2, blktiger, blktigerbl, blktiger, blktiger_state, 0, ROT0, "bootleg", "Black Tiger (bootleg set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, blkdrgon, blktiger, blktiger, blktiger, blktiger_state, 0, ROT0, "Capcom", "Black Dragon (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, blkdrgonb, blktiger, blktigerbl, blktiger, blktiger_state, 0, ROT0, "bootleg", "Black Dragon (bootleg)", MACHINE_SUPPORTS_SAVE ) // this board has Capcom markings (boards 87118-A-X1 / 87118-B-X1, but no MCU, a mix of bootleg Black Tiger and Black Dragon roms, and an address swapped sound rom? is the latter an alternative security measure? GAME( 1987, blktigerb3, blktiger, blktigerbl, blktiger, blktiger_state, blktigerb3, ROT0, "bootleg", "Black Tiger / Black Dragon (mixed bootleg?)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/blmbycar.cpp b/src/mame/drivers/blmbycar.cpp index fcb641e12f1..98a47c95fc5 100644 --- a/src/mame/drivers/blmbycar.cpp +++ b/src/mame/drivers/blmbycar.cpp @@ -343,7 +343,7 @@ MACHINE_RESET_MEMBER(blmbycar_state,blmbycar) } -static MACHINE_CONFIG_START( blmbycar, blmbycar_state ) +static MACHINE_CONFIG_START( blmbycar ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_24MHz/2) /* 12MHz */ @@ -370,7 +370,7 @@ static MACHINE_CONFIG_START( blmbycar, blmbycar_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_OKIM6295_ADD("oki", XTAL_1MHz, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki", XTAL_1MHz, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_DEVICE_ADDRESS_MAP(AS_0, blmbycar_oki_map) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) @@ -514,5 +514,5 @@ DRIVER_INIT_MEMBER(blmbycar_state,blmbycar) ***************************************************************************/ GAME( 1994, blmbycar, 0, blmbycar, blmbycar, blmbycar_state, blmbycar, ROT0, "ABM & Gecas", "Blomby Car", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, blmbycaru, blmbycar, blmbycar, blmbycar, driver_device, 0, ROT0, "ABM & Gecas", "Blomby Car (not encrypted)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, watrball, 0, watrball, watrball, driver_device, 0, ROT0, "ABM", "Water Balls", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, blmbycaru, blmbycar, blmbycar, blmbycar, blmbycar_state, 0, ROT0, "ABM & Gecas", "Blomby Car (not encrypted)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, watrball, 0, watrball, watrball, blmbycar_state, 0, ROT0, "ABM", "Water Balls", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/blockade.cpp b/src/mame/drivers/blockade.cpp index 8b4f9ae6d79..54631399199 100644 --- a/src/mame/drivers/blockade.cpp +++ b/src/mame/drivers/blockade.cpp @@ -461,7 +461,7 @@ void blockade_state::device_timer(emu_timer &timer, device_timer_id id, int para // MACHINE DEFINTIONS //************************************************************************** -static MACHINE_CONFIG_START( blockade, blockade_state ) +static MACHINE_CONFIG_START( blockade ) MCFG_CPU_ADD("maincpu", I8080A, XTAL_20_079MHz / 10) MCFG_CPU_PROGRAM_MAP(main_map) MCFG_CPU_IO_MAP(main_io_map) @@ -565,10 +565,10 @@ ROM_END // SYSTEM DRIVERS //************************************************************************** -// YEAR NAME PARENT MACHINE INPUT CLASS INIT ROTATION COMPANY FULLNAME FLAGS LAYOUT -GAMEL(1976, blockade, 0, blockade, blockade, driver_device, 0, ROT0, "Gremlin", "Blockade", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_blockade ) -GAMEL(1976, comotion, 0, blockade, comotion, driver_device, 0, ROT0, "Gremlin", "CoMOTION", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_blockade ) -GAME( 1978, blasto, 0, blockade, blasto, driver_device, 0, ROT0, "Gremlin", "Blasto", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // b/w, no overlay -GAMEL(1977, hustle, 0, blockade, hustle, driver_device, 0, ROT0, "Gremlin", "Hustle", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_blockade ) -GAME( 1977, mineswpr, 0, blockade, mineswpr, driver_device, 0, ROT0, "Amutech", "Minesweeper", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1977, mineswpr4, mineswpr, blockade, mineswpr4, driver_device, 0, ROT0, "Amutech", "Minesweeper (4-Player)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +// YEAR NAME PARENT MACHINE INPUT CLASS INIT ROTATION COMPANY FULLNAME FLAGS LAYOUT +GAMEL(1976, blockade, 0, blockade, blockade, blockade_state, 0, ROT0, "Gremlin", "Blockade", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_blockade ) +GAMEL(1976, comotion, 0, blockade, comotion, blockade_state, 0, ROT0, "Gremlin", "CoMOTION", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_blockade ) +GAME( 1978, blasto, 0, blockade, blasto, blockade_state, 0, ROT0, "Gremlin", "Blasto", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // b/w, no overlay +GAMEL(1977, hustle, 0, blockade, hustle, blockade_state, 0, ROT0, "Gremlin", "Hustle", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_blockade ) +GAME( 1977, mineswpr, 0, blockade, mineswpr, blockade_state, 0, ROT0, "Amutech", "Minesweeper", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1977, mineswpr4, mineswpr, blockade, mineswpr4, blockade_state, 0, ROT0, "Amutech", "Minesweeper (4-Player)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/blockhl.cpp b/src/mame/drivers/blockhl.cpp index 7c460f1238d..3d53d8a2f5a 100644 --- a/src/mame/drivers/blockhl.cpp +++ b/src/mame/drivers/blockhl.cpp @@ -270,7 +270,7 @@ INPUT_PORTS_END // MACHINE DEFINTIONS //************************************************************************** -static MACHINE_CONFIG_START( blockhl, blockhl_state ) +static MACHINE_CONFIG_START( blockhl ) // basic machine hardware MCFG_CPU_ADD("maincpu", KONAMI, XTAL_24MHz/8) // Konami 052526 MCFG_CPU_PROGRAM_MAP(main_map) @@ -378,5 +378,5 @@ ROM_END //************************************************************************** // YEAR NAME PARENT MACHINE INPUT CLASS INIT ROT COMPANY FULLNAME FLAGS -GAME( 1989, blockhl, 0, blockhl, blockhl, driver_device, 0, ROT0, "Konami", "Block Hole", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, quarth, blockhl, blockhl, blockhl, driver_device, 0, ROT0, "Konami", "Quarth (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, blockhl, 0, blockhl, blockhl, blockhl_state, 0, ROT0, "Konami", "Block Hole", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, quarth, blockhl, blockhl, blockhl, blockhl_state, 0, ROT0, "Konami", "Quarth (Japan)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/blockout.cpp b/src/mame/drivers/blockout.cpp index d570082f33f..7317ace4a88 100644 --- a/src/mame/drivers/blockout.cpp +++ b/src/mame/drivers/blockout.cpp @@ -295,7 +295,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(blockout_state::blockout_scanline) m_maincpu->set_input_line(5, ASSERT_LINE); } -static MACHINE_CONFIG_START( blockout, blockout_state ) +static MACHINE_CONFIG_START( blockout ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, MAIN_CLOCK) /* MRH - 8.76 makes gfx/adpcm samples sync better -- but 10 is correct speed*/ @@ -328,7 +328,7 @@ static MACHINE_CONFIG_START( blockout, blockout_state ) MCFG_SOUND_ROUTE(0, "lspeaker", 0.60) MCFG_SOUND_ROUTE(1, "rspeaker", 0.60) - MCFG_OKIM6295_ADD("oki", 1056000, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", 1056000, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.50) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.50) MACHINE_CONFIG_END @@ -427,8 +427,8 @@ ROM_END * *************************************/ -GAME( 1989, blockout, 0, blockout, blockout, driver_device, 0, ROT0, "Technos Japan / California Dreams", "Block Out (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, blockout2,blockout, blockout, blockout, driver_device, 0, ROT0, "Technos Japan / California Dreams", "Block Out (set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, blockoutj,blockout, blockout, blockoutj, driver_device,0, ROT0, "Technos Japan / California Dreams", "Block Out (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, agress, 0, agress, agress, driver_device, 0, ROT0, "Palco", "Agress - Missile Daisenryaku (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 2003, agressb, agress, agress, agress, driver_device, 0, ROT0, "bootleg", "Agress - Missile Daisenryaku (English bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, blockout, 0, blockout, blockout, blockout_state, 0, ROT0, "Technos Japan / California Dreams", "Block Out (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, blockout2,blockout, blockout, blockout, blockout_state, 0, ROT0, "Technos Japan / California Dreams", "Block Out (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, blockoutj,blockout, blockout, blockoutj, blockout_state, 0, ROT0, "Technos Japan / California Dreams", "Block Out (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, agress, 0, agress, agress, blockout_state, 0, ROT0, "Palco", "Agress - Missile Daisenryaku (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, agressb, agress, agress, agress, blockout_state, 0, ROT0, "bootleg", "Agress - Missile Daisenryaku (English bootleg)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/bloodbro.cpp b/src/mame/drivers/bloodbro.cpp index b9d52b1e27c..550efabf8a9 100644 --- a/src/mame/drivers/bloodbro.cpp +++ b/src/mame/drivers/bloodbro.cpp @@ -482,7 +482,7 @@ WRITE16_MEMBER( bloodbro_state::weststry_layer_scroll_w ) /* Machine Drivers */ -static MACHINE_CONFIG_START( bloodbro, bloodbro_state ) +static MACHINE_CONFIG_START( bloodbro ) // basic machine hardware MCFG_CPU_ADD("maincpu", M68000, XTAL_20MHz/2) /* verified on pcb */ MCFG_CPU_PROGRAM_MAP(bloodbro_map) @@ -517,7 +517,7 @@ static MACHINE_CONFIG_START( bloodbro, bloodbro_state ) MCFG_YM3812_IRQ_HANDLER(DEVWRITELINE("seibu_sound", seibu_sound_device, fm_irqhandler)) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MCFG_OKIM6295_ADD("oki", XTAL_12MHz/12, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", XTAL_12MHz/12, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MCFG_DEVICE_ADD("seibu_sound", SEIBU_SOUND, 0) @@ -735,8 +735,8 @@ DRIVER_INIT_MEMBER(bloodbro_state,weststry) /* Game Drivers */ -GAME( 1990, bloodbro, 0, bloodbro, bloodbro, driver_device, 0, ROT0, "TAD Corporation", "Blood Bros. (set 1)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1990, bloodbroa,bloodbro, bloodbro, bloodbro, driver_device, 0, ROT0, "TAD Corporation", "Blood Bros. (set 2)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1990, bloodbrob,bloodbro, bloodbro, bloodbro, driver_device, 0, ROT0, "TAD Corporation", "Blood Bros. (set 3)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1990, bloodbro, 0, bloodbro, bloodbro, bloodbro_state, 0, ROT0, "TAD Corporation", "Blood Bros. (set 1)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1990, bloodbroa,bloodbro, bloodbro, bloodbro, bloodbro_state, 0, ROT0, "TAD Corporation", "Blood Bros. (set 2)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1990, bloodbrob,bloodbro, bloodbro, bloodbro, bloodbro_state, 0, ROT0, "TAD Corporation", "Blood Bros. (set 3)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) GAME( 1990, weststry, bloodbro, weststry, weststry, bloodbro_state, weststry, ROT0, "bootleg (Datsu)", "West Story (bootleg of Blood Bros.)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1990, skysmash, 0, skysmash, skysmash, driver_device, 0, ROT270, "Nihon System", "Sky Smasher", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, skysmash, 0, skysmash, skysmash, bloodbro_state, 0, ROT270, "Nihon System", "Sky Smasher", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/blstroid.cpp b/src/mame/drivers/blstroid.cpp index cbe8a9c9981..357f1d10516 100644 --- a/src/mame/drivers/blstroid.cpp +++ b/src/mame/drivers/blstroid.cpp @@ -174,7 +174,7 @@ GFXDECODE_END * *************************************/ -static MACHINE_CONFIG_START( blstroid, blstroid_state ) +static MACHINE_CONFIG_START( blstroid ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, ATARI_CLOCK_14MHz/2) diff --git a/src/mame/drivers/blueprnt.cpp b/src/mame/drivers/blueprnt.cpp index c506ca81ecd..6d05e2b554a 100644 --- a/src/mame/drivers/blueprnt.cpp +++ b/src/mame/drivers/blueprnt.cpp @@ -342,7 +342,7 @@ void blueprnt_state::machine_reset() } -static MACHINE_CONFIG_START( blueprnt, blueprnt_state ) +static MACHINE_CONFIG_START( blueprnt ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 7000000/2) // 3.5 MHz @@ -498,7 +498,7 @@ ROM_END * *************************************/ -GAME( 1982, blueprnt, 0, blueprnt, blueprnt, driver_device, 0, ROT270, "Zilec Electronics / Bally Midway", "Blue Print (Midway)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, blueprntj, blueprnt, blueprnt, blueprnt, driver_device, 0, ROT270, "Zilec Electronics / Jaleco", "Blue Print (Jaleco)", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, saturnzi, 0, blueprnt, saturn, driver_device, 0, ROT270, "Zilec Electronics / Jaleco", "Saturn", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, grasspin, 0, grasspin, grasspin, driver_device, 0, ROT270, "Zilec Electronics / Jaleco", "Grasspin", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS ) // a few issues with dip reading + video hw, but nothing major +GAME( 1982, blueprnt, 0, blueprnt, blueprnt, blueprnt_state, 0, ROT270, "Zilec Electronics / Bally Midway", "Blue Print (Midway)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, blueprntj, blueprnt, blueprnt, blueprnt, blueprnt_state, 0, ROT270, "Zilec Electronics / Jaleco", "Blue Print (Jaleco)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, saturnzi, 0, blueprnt, saturn, blueprnt_state, 0, ROT270, "Zilec Electronics / Jaleco", "Saturn", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, grasspin, 0, grasspin, grasspin, blueprnt_state, 0, ROT270, "Zilec Electronics / Jaleco", "Grasspin", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS ) // a few issues with dip reading + video hw, but nothing major diff --git a/src/mame/drivers/bmcbowl.cpp b/src/mame/drivers/bmcbowl.cpp index ac80d19365b..6bff1856186 100644 --- a/src/mame/drivers/bmcbowl.cpp +++ b/src/mame/drivers/bmcbowl.cpp @@ -450,7 +450,7 @@ static ADDRESS_MAP_START( ramdac_map, AS_0, 8, bmcbowl_state ) AM_RANGE(0x000, 0x3ff) AM_DEVREADWRITE("ramdac",ramdac_device,ramdac_pal_r,ramdac_rgb666_w) ADDRESS_MAP_END -static MACHINE_CONFIG_START( bmcbowl, bmcbowl_state ) +static MACHINE_CONFIG_START( bmcbowl ) MCFG_CPU_ADD("maincpu", M68000, XTAL_21_4772MHz / 2 ) MCFG_CPU_PROGRAM_MAP(bmcbowl_mem) MCFG_CPU_VBLANK_INT_DRIVER("screen", bmcbowl_state, irq2_line_hold) @@ -480,7 +480,7 @@ static MACHINE_CONFIG_START( bmcbowl, bmcbowl_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.50) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.50) - MCFG_OKIM6295_ADD("oki", 1122000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki", 1122000, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.50) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.50) diff --git a/src/mame/drivers/bmcpokr.cpp b/src/mame/drivers/bmcpokr.cpp index be65f5cc638..a4565f91f3a 100644 --- a/src/mame/drivers/bmcpokr.cpp +++ b/src/mame/drivers/bmcpokr.cpp @@ -42,7 +42,7 @@ public: m_layerctrl(*this, "layerctrl"), m_gfxdecode(*this, "gfxdecode"), m_palette(*this, "palette") - { } + { } // Devices required_device m_maincpu; @@ -799,7 +799,7 @@ static ADDRESS_MAP_START( ramdac_map, AS_0, 8, bmcpokr_state ) AM_RANGE(0x000, 0x3ff) AM_DEVREADWRITE("ramdac",ramdac_device,ramdac_pal_r,ramdac_rgb666_w) ADDRESS_MAP_END -static MACHINE_CONFIG_START( bmcpokr, bmcpokr_state ) +static MACHINE_CONFIG_START( bmcpokr ) MCFG_CPU_ADD("maincpu", M68000, XTAL_42MHz / 4) // 68000 @10.50MHz (42/4) MCFG_CPU_PROGRAM_MAP(bmcpokr_mem) MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", bmcpokr_state, interrupt, "screen", 0, 1) @@ -827,7 +827,7 @@ static MACHINE_CONFIG_START( bmcpokr, bmcpokr_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.50) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.50) - MCFG_OKIM6295_ADD("oki", XTAL_42MHz / 40, OKIM6295_PIN7_HIGH) // M6295 @1.05MHz (42/40), pin 7 not verified + MCFG_OKIM6295_ADD("oki", XTAL_42MHz / 40, PIN7_HIGH) // M6295 @1.05MHz (42/40), pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.50) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.50) MACHINE_CONFIG_END @@ -949,5 +949,5 @@ ROM_START( mjmaglmp ) ROM_LOAD( "ja-a-901.u6", 0x00000, 0x40000, CRC(25f36d00) SHA1(c182348340ca67ad69d1a67c58b47d6371a725c9) ) ROM_END -GAME( 1999, bmcpokr, 0, bmcpokr, bmcpokr, driver_device, 0, ROT0, "BMC", "Dongfang Shenlong", MACHINE_SUPPORTS_SAVE ) -GAME( 2000, mjmaglmp, 0, mjmaglmp, mjmaglmp, driver_device, 0, ROT0, "BMC", "Mahjong Magic Lamp (v. JAA02)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, bmcpokr, 0, bmcpokr, bmcpokr, bmcpokr_state, 0, ROT0, "BMC", "Dongfang Shenlong", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, mjmaglmp, 0, mjmaglmp, mjmaglmp, bmcpokr_state, 0, ROT0, "BMC", "Mahjong Magic Lamp (v. JAA02)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/bmjr.cpp b/src/mame/drivers/bmjr.cpp index ff366367ada..28a45ee85b1 100644 --- a/src/mame/drivers/bmjr.cpp +++ b/src/mame/drivers/bmjr.cpp @@ -33,7 +33,7 @@ public: , m_beep(*this, "beeper") , m_p_wram(*this, "wram") , m_p_chargen(*this, "chargen") - { } + { } DECLARE_READ8_MEMBER(key_r); DECLARE_WRITE8_MEMBER(key_w); @@ -333,7 +333,7 @@ void bmjr_state::machine_reset() m_cass->change_state(CASSETTE_MOTOR_DISABLED,CASSETTE_MASK_MOTOR); } -static MACHINE_CONFIG_START( bmjr, bmjr_state ) +static MACHINE_CONFIG_START( bmjr ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",M6800, XTAL_4MHz/4) //unknown clock / divider MCFG_CPU_PROGRAM_MAP(bmjr_mem) @@ -379,5 +379,5 @@ DRIVER_INIT_MEMBER(bmjr_state,bmjr) { } -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1982, bmjr, 0, 0, bmjr, bmjr, bmjr_state, bmjr, "Hitachi", "Basic Master Jr", MACHINE_NOT_WORKING) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +COMP( 1982, bmjr, 0, 0, bmjr, bmjr, bmjr_state, bmjr, "Hitachi", "Basic Master Jr", MACHINE_NOT_WORKING) diff --git a/src/mame/drivers/bml3.cpp b/src/mame/drivers/bml3.cpp index 2d63a712ab0..7c12982e91a 100644 --- a/src/mame/drivers/bml3.cpp +++ b/src/mame/drivers/bml3.cpp @@ -964,7 +964,7 @@ static SLOT_INTERFACE_START(bml3_cards) SLOT_INTERFACE_END -static MACHINE_CONFIG_START( bml3_common, bml3_state ) +static MACHINE_CONFIG_START( bml3_common ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",M6809, CPU_CLOCK) MCFG_CPU_VBLANK_INT_DRIVER("screen", bml3_state, bml3_timer_firq) @@ -1113,7 +1113,7 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1980, bml3, 0, 0, bml3, bml3, driver_device, 0, "Hitachi", "MB-6890 Basic Master Level 3", MACHINE_NOT_WORKING) -COMP( 1982, bml3mk2,bml3, 0, bml3mk2, bml3, driver_device, 0, "Hitachi", "MB-6891 Basic Master Level 3 Mark 2", MACHINE_NOT_WORKING) -COMP( 1983, bml3mk5,bml3, 0, bml3mk5, bml3, driver_device, 0, "Hitachi", "MB-6892 Basic Master Level 3 Mark 5", MACHINE_NOT_WORKING) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +COMP( 1980, bml3, 0, 0, bml3, bml3, bml3_state, 0, "Hitachi", "MB-6890 Basic Master Level 3", MACHINE_NOT_WORKING) +COMP( 1982, bml3mk2,bml3, 0, bml3mk2, bml3, bml3_state, 0, "Hitachi", "MB-6891 Basic Master Level 3 Mark 2", MACHINE_NOT_WORKING) +COMP( 1983, bml3mk5,bml3, 0, bml3mk5, bml3, bml3_state, 0, "Hitachi", "MB-6892 Basic Master Level 3 Mark 5", MACHINE_NOT_WORKING) diff --git a/src/mame/drivers/bnstars.cpp b/src/mame/drivers/bnstars.cpp index f0f26625060..1cdc8f7d913 100644 --- a/src/mame/drivers/bnstars.cpp +++ b/src/mame/drivers/bnstars.cpp @@ -806,7 +806,7 @@ void bnstars_state::machine_reset() } -static MACHINE_CONFIG_START( bnstars, bnstars_state ) +static MACHINE_CONFIG_START( bnstars ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", V70, 20000000) // 20MHz diff --git a/src/mame/drivers/bntyhunt.cpp b/src/mame/drivers/bntyhunt.cpp index dd26f58f34c..02a266cff5d 100644 --- a/src/mame/drivers/bntyhunt.cpp +++ b/src/mame/drivers/bntyhunt.cpp @@ -49,7 +49,7 @@ static INPUT_PORTS_START( bntyhunt ) INPUT_PORTS_END -static MACHINE_CONFIG_START( bntyhunt, bntyhunt_state ) +static MACHINE_CONFIG_START( bntyhunt ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", PENTIUM, 200000000) /* Probably a Pentium or higher .. ?? Mhz*/ MCFG_CPU_PROGRAM_MAP(bntyhunt_map) @@ -76,4 +76,4 @@ ROM_START(bntyhunt) ROM_END -GAME( 200?, bntyhunt, 0, bntyhunt, bntyhunt, driver_device, 0, ROT0, "GCTech Co., LTD", "Bounty Hunter (GCTech Co., LTD)", MACHINE_NOT_WORKING|MACHINE_NO_SOUND ) +GAME( 200?, bntyhunt, 0, bntyhunt, bntyhunt, bntyhunt_state, 0, ROT0, "GCTech Co., LTD", "Bounty Hunter (GCTech Co., LTD)", MACHINE_NOT_WORKING|MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/bob85.cpp b/src/mame/drivers/bob85.cpp index 0b519fb1cba..b2e3fb24504 100644 --- a/src/mame/drivers/bob85.cpp +++ b/src/mame/drivers/bob85.cpp @@ -198,7 +198,7 @@ READ_LINE_MEMBER( bob85_state::sid_r ) return m_cass->input() > 0.0; } -static MACHINE_CONFIG_START( bob85, bob85_state ) +static MACHINE_CONFIG_START( bob85 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8085A, XTAL_5MHz) MCFG_CPU_PROGRAM_MAP(bob85_mem) @@ -222,5 +222,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1984, bob85, 0, 0, bob85, bob85, driver_device, 0, "Josef Kratochvil", "BOB-85", MACHINE_NO_SOUND_HW) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 1984, bob85, 0, 0, bob85, bob85, bob85_state, 0, "Josef Kratochvil", "BOB-85", MACHINE_NO_SOUND_HW) diff --git a/src/mame/drivers/bogeyman.cpp b/src/mame/drivers/bogeyman.cpp index 21ec9ea846c..bad65f36d24 100644 --- a/src/mame/drivers/bogeyman.cpp +++ b/src/mame/drivers/bogeyman.cpp @@ -228,7 +228,7 @@ WRITE8_MEMBER(bogeyman_state::colbank_w) } } -static MACHINE_CONFIG_START( bogeyman, bogeyman_state ) +static MACHINE_CONFIG_START( bogeyman ) // basic machine hardware MCFG_CPU_ADD("maincpu", M6502, 1500000) /* Verified */ @@ -294,4 +294,4 @@ ROM_END /* Game Driver */ -GAME( 1985, bogeyman, 0, bogeyman, bogeyman, driver_device, 0, ROT0, "Technos Japan", "Bogey Manor", MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE ) +GAME( 1985, bogeyman, 0, bogeyman, bogeyman, bogeyman_state, 0, ROT0, "Technos Japan", "Bogey Manor", MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/bombjack.cpp b/src/mame/drivers/bombjack.cpp index 3f0fb247ef6..fe15cb6b990 100644 --- a/src/mame/drivers/bombjack.cpp +++ b/src/mame/drivers/bombjack.cpp @@ -354,7 +354,7 @@ INTERRUPT_GEN_MEMBER(bombjack_state::vblank_irq) device.execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE); } -static MACHINE_CONFIG_START( bombjack, bombjack_state ) +static MACHINE_CONFIG_START( bombjack ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_4MHz) /* Confirmed from PCB */ @@ -507,6 +507,6 @@ ROM_END * *************************************/ -GAME( 1984, bombjack, 0, bombjack, bombjack, driver_device, 0, ROT90, "Tehkan", "Bomb Jack (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, bombjack2, bombjack, bombjack, bombjack, driver_device, 0, ROT90, "Tehkan", "Bomb Jack (set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, bombjackt, bombjack, bombjack, bombjack, driver_device, 0, ROT90, "Tehkan (Tecfri licence)", "Bomb Jack (Tecfri, Spain)", MACHINE_SUPPORTS_SAVE ) // official licence +GAME( 1984, bombjack, 0, bombjack, bombjack, bombjack_state, 0, ROT90, "Tehkan", "Bomb Jack (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, bombjack2, bombjack, bombjack, bombjack, bombjack_state, 0, ROT90, "Tehkan", "Bomb Jack (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, bombjackt, bombjack, bombjack, bombjack, bombjack_state, 0, ROT90, "Tehkan (Tecfri licence)", "Bomb Jack (Tecfri, Spain)", MACHINE_SUPPORTS_SAVE ) // official licence diff --git a/src/mame/drivers/boogwing.cpp b/src/mame/drivers/boogwing.cpp index eafe82e6e18..fd4ceab8a50 100644 --- a/src/mame/drivers/boogwing.cpp +++ b/src/mame/drivers/boogwing.cpp @@ -321,7 +321,7 @@ DECO16IC_BANK_CB_MEMBER(boogwing_state::bank_callback2) return offset; } -static MACHINE_CONFIG_START( boogwing, boogwing_state ) +static MACHINE_CONFIG_START( boogwing ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 14000000) /* DE102 */ @@ -403,11 +403,11 @@ static MACHINE_CONFIG_START( boogwing, boogwing_state ) MCFG_SOUND_ROUTE(0, "lspeaker", 0.80) MCFG_SOUND_ROUTE(1, "rspeaker", 0.80) - MCFG_OKIM6295_ADD("oki1", 32220000/32, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki1", 32220000/32, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.40) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.40) - MCFG_OKIM6295_ADD("oki2", 32220000/16, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki2", 32220000/16, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.30) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.30) MACHINE_CONFIG_END diff --git a/src/mame/drivers/bottom9.cpp b/src/mame/drivers/bottom9.cpp index b3cc769e523..2979c91f8a2 100644 --- a/src/mame/drivers/bottom9.cpp +++ b/src/mame/drivers/bottom9.cpp @@ -298,7 +298,7 @@ void bottom9_state::machine_reset() m_nmienable = 0; } -static MACHINE_CONFIG_START( bottom9, bottom9_state ) +static MACHINE_CONFIG_START( bottom9 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809, 2000000) /* ? */ @@ -533,6 +533,6 @@ ROM_END -GAME( 1989, bottom9, 0, bottom9, bottom9, driver_device, 0, ROT0, "Konami", "Bottom of the Ninth (version T)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, bottom9n, bottom9, bottom9, bottom9, driver_device, 0, ROT0, "Konami", "Bottom of the Ninth (version N)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, mstadium, bottom9, bottom9, mstadium, driver_device, 0, ROT0, "Konami", "Main Stadium (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, bottom9, 0, bottom9, bottom9, bottom9_state, 0, ROT0, "Konami", "Bottom of the Ninth (version T)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, bottom9n, bottom9, bottom9, bottom9, bottom9_state, 0, ROT0, "Konami", "Bottom of the Ninth (version N)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, mstadium, bottom9, bottom9, mstadium, bottom9_state, 0, ROT0, "Konami", "Main Stadium (Japan)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/bowltry.cpp b/src/mame/drivers/bowltry.cpp index cd3d2d650a7..de49b5f9211 100644 --- a/src/mame/drivers/bowltry.cpp +++ b/src/mame/drivers/bowltry.cpp @@ -94,7 +94,7 @@ uint32_t bowltry_state::screen_update_bowltry(screen_device &screen, bitmap_rgb3 -static MACHINE_CONFIG_START( bowltry, bowltry_state ) +static MACHINE_CONFIG_START( bowltry ) MCFG_CPU_ADD("maincpu", H83008, 16000000 ) MCFG_CPU_PROGRAM_MAP( bowltry_map ) // MCFG_CPU_VBLANK_INT_DRIVER("screen", bowltry_state, irq0_line_hold) // uses vector $64, IMIAB according to the manual (timer/compare B, internal to the CPU) @@ -126,4 +126,4 @@ ROM_START( bowltry ) ROM_END -GAME( 200?, bowltry, 0, bowltry, bowltry, driver_device, 0, ROT0, "Atlus", "Bowling Try",MACHINE_IS_SKELETON ) +GAME( 200?, bowltry, 0, bowltry, bowltry, bowltry_state, 0, ROT0, "Atlus", "Bowling Try",MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/boxer.cpp b/src/mame/drivers/boxer.cpp index 02a94862c2f..d6caffc33ac 100644 --- a/src/mame/drivers/boxer.cpp +++ b/src/mame/drivers/boxer.cpp @@ -480,7 +480,7 @@ void boxer_state::machine_reset() } -static MACHINE_CONFIG_START( boxer, boxer_state ) +static MACHINE_CONFIG_START( boxer ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, MASTER_CLOCK / 16) @@ -545,4 +545,4 @@ ROM_END * *************************************/ -GAME( 1978, boxer, 0, boxer, boxer, driver_device, 0, 0, "Atari", "Boxer (prototype)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1978, boxer, 0, boxer, boxer, boxer_state, 0, 0, "Atari", "Boxer (prototype)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/bpmmicro.cpp b/src/mame/drivers/bpmmicro.cpp index 42a1162698f..7e7ca4fc3c4 100644 --- a/src/mame/drivers/bpmmicro.cpp +++ b/src/mame/drivers/bpmmicro.cpp @@ -357,7 +357,7 @@ INPUT_PORTS_END Machine Drivers ******************************************************************************/ -static MACHINE_CONFIG_START( bpmmicro, bpmmicro_state ) +static MACHINE_CONFIG_START( bpmmicro ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I80286, XTAL_32MHz/4) /* divider is guessed, cpu is an AMD N80L286-16/S part */ MCFG_CPU_PROGRAM_MAP(i286_mem) @@ -413,5 +413,5 @@ ROM_END Drivers ******************************************************************************/ -/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS COMP( 1992, bp1200, 0, 0, bpmmicro, bpmmicro, bpmmicro_state, bp1200, "BP Microsystems", "BP-1200", MACHINE_IS_SKELETON | MACHINE_NO_SOUND_HW ) diff --git a/src/mame/drivers/br8641.cpp b/src/mame/drivers/br8641.cpp index b24d817be00..c65fdd7272d 100644 --- a/src/mame/drivers/br8641.cpp +++ b/src/mame/drivers/br8641.cpp @@ -153,7 +153,7 @@ static const z80_daisy_config daisy_chain_intf[] = -static MACHINE_CONFIG_START( brandt8641, brandt8641_state ) +static MACHINE_CONFIG_START( brandt8641 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_4MHz) // U4 ,4MHz crystal on board MCFG_CPU_PROGRAM_MAP(brandt8641_mem) @@ -190,4 +190,4 @@ ROM_START( br8641 ) ROM_END /* Driver */ -COMP( 1986, br8641, 0, 0, brandt8641, brandt8641, driver_device, 0, "Brandt", "Brandt 8641", MACHINE_NOT_WORKING ) +COMP( 1986, br8641, 0, 0, brandt8641, brandt8641, brandt8641_state, 0, "Brandt", "Brandt 8641", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/brkthru.cpp b/src/mame/drivers/brkthru.cpp index d31a6f7a413..9e1f673f8a8 100644 --- a/src/mame/drivers/brkthru.cpp +++ b/src/mame/drivers/brkthru.cpp @@ -376,7 +376,7 @@ INTERRUPT_GEN_MEMBER(brkthru_state::vblank_irq) device.execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE); } -static MACHINE_CONFIG_START( brkthru, brkthru_state ) +static MACHINE_CONFIG_START( brkthru ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809, MASTER_CLOCK/8) /* 1.5 MHz ? */ @@ -416,7 +416,7 @@ static MACHINE_CONFIG_START( brkthru, brkthru_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( darwin, brkthru_state ) +static MACHINE_CONFIG_START( darwin ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809, MASTER_CLOCK/8) /* 1.5 MHz ? */ @@ -654,7 +654,7 @@ DRIVER_INIT_MEMBER(brkthru_state,brkthru) * *************************************/ -GAME( 1986, brkthru, 0, brkthru, brkthru, brkthru_state, brkthru, ROT0, "Data East USA", "Break Thru (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, brkthru, 0, brkthru, brkthru, brkthru_state, brkthru, ROT0, "Data East USA", "Break Thru (US)", MACHINE_SUPPORTS_SAVE ) GAME( 1986, brkthruj, brkthru, brkthru, brkthruj, brkthru_state, brkthru, ROT0, "Data East Corporation", "Kyohkoh-Toppa (Japan)", MACHINE_SUPPORTS_SAVE ) GAME( 1986, forcebrk, brkthru, brkthru, brkthruj, brkthru_state, brkthru, ROT0, "bootleg", "Force Break (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, darwin, 0, darwin, darwin, brkthru_state, brkthru, ROT270, "Data East Corporation", "Darwin 4078 (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, darwin, 0, darwin, darwin, brkthru_state, brkthru, ROT270, "Data East Corporation", "Darwin 4078 (Japan)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/bsktball.cpp b/src/mame/drivers/bsktball.cpp index 5fcc6bf3cec..acd4c6a3776 100644 --- a/src/mame/drivers/bsktball.cpp +++ b/src/mame/drivers/bsktball.cpp @@ -244,7 +244,7 @@ void bsktball_state::machine_reset() } -static MACHINE_CONFIG_START( bsktball, bsktball_state ) +static MACHINE_CONFIG_START( bsktball ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502,750000) @@ -302,4 +302,4 @@ ROM_END * *************************************/ -GAME( 1979, bsktball, 0, bsktball, bsktball, driver_device, 0, ROT0, "Atari", "Basketball", MACHINE_SUPPORTS_SAVE ) +GAME( 1979, bsktball, 0, bsktball, bsktball, bsktball_state, 0, ROT0, "Atari", "Basketball", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/btime.cpp b/src/mame/drivers/btime.cpp index 6697f58b6a0..42be40b45ab 100644 --- a/src/mame/drivers/btime.cpp +++ b/src/mame/drivers/btime.cpp @@ -1289,7 +1289,7 @@ MACHINE_RESET_MEMBER(btime_state,mmonkey) m_protection_ret = 0; } -static MACHINE_CONFIG_START( btime, btime_state ) +static MACHINE_CONFIG_START( btime ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", DECO_CPU7, HCLK2) /* seletable between H2/H4 via jumper */ @@ -2063,22 +2063,22 @@ DRIVER_INIT_MEMBER(btime_state,sdtennis) } -GAME( 1982, btime, 0, btime, btime, btime_state, btime, ROT270, "Data East Corporation", "Burger Time (Data East set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, btime2, btime, btime, btime, btime_state, btime, ROT270, "Data East Corporation", "Burger Time (Data East set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, btime3, btime, btime, btime, btime_state, btime, ROT270, "Data East USA Inc.", "Burger Time (Data East USA)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, btimem, btime, btime, btime, btime_state, btime, ROT270, "Data East (Bally Midway license)", "Burger Time (Midway)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, cookrace, btime, cookrace, cookrace, btime_state, cookrace, ROT270, "bootleg", "Cook Race", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, tisland, 0, tisland, btime, btime_state, tisland, ROT270, "Data East Corporation", "Treasure Island", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1981, lnc, 0, lnc, lnc, btime_state, lnc, ROT270, "Data East Corporation", "Lock'n'Chase", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, protennb, 0, disco, disco, btime_state, protennb, ROT270, "bootleg", "Tennis (bootleg of Pro Tennis)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, wtennis, 0, wtennis, wtennis, btime_state, wtennis, ROT270, "bootleg", "World Tennis", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, mmonkey, 0, mmonkey, mmonkey, btime_state, lnc, ROT270, "Technos Japan / Roller Tron", "Minky Monkey", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, brubber, 0, bnj, bnj, btime_state, bnj, ROT270, "Data East", "Burnin' Rubber", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, bnj, brubber, bnj, bnj, btime_state, bnj, ROT270, "Data East USA", "Bump 'n' Jump", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, bnjm, brubber, bnj, bnj, btime_state, bnj, ROT270, "Data East USA (Bally Midway license)", "Bump 'n' Jump (Midway)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, caractn, brubber, bnj, bnj, btime_state, bnj, ROT270, "bootleg", "Car Action (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, caractn2, brubber, bnj, caractn2, btime_state, bnj, ROT270, "bootleg", "Car Action (set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, zoar, 0, zoar, zoar, btime_state, zoar, ROT270, "Data East USA", "Zoar", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, disco, 0, disco, disco, btime_state, disco, ROT270, "Data East", "Disco No.1", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, discof, disco, disco, disco, btime_state, disco, ROT270, "Data East", "Disco No.1 (Rev.F)", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, sdtennis, 0, sdtennis, sdtennis, btime_state, sdtennis, ROT270, "Data East Corporation", "Super Doubles Tennis", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, btime, 0, btime, btime, btime_state, btime, ROT270, "Data East Corporation", "Burger Time (Data East set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, btime2, btime, btime, btime, btime_state, btime, ROT270, "Data East Corporation", "Burger Time (Data East set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, btime3, btime, btime, btime, btime_state, btime, ROT270, "Data East USA Inc.", "Burger Time (Data East USA)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, btimem, btime, btime, btime, btime_state, btime, ROT270, "Data East (Bally Midway license)", "Burger Time (Midway)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, cookrace, btime, cookrace, cookrace, btime_state, cookrace, ROT270, "bootleg", "Cook Race", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, tisland, 0, tisland, btime, btime_state, tisland, ROT270, "Data East Corporation", "Treasure Island", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1981, lnc, 0, lnc, lnc, btime_state, lnc, ROT270, "Data East Corporation", "Lock'n'Chase", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, protennb, 0, disco, disco, btime_state, protennb, ROT270, "bootleg", "Tennis (bootleg of Pro Tennis)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, wtennis, 0, wtennis, wtennis, btime_state, wtennis, ROT270, "bootleg", "World Tennis", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, mmonkey, 0, mmonkey, mmonkey, btime_state, lnc, ROT270, "Technos Japan / Roller Tron", "Minky Monkey", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, brubber, 0, bnj, bnj, btime_state, bnj, ROT270, "Data East", "Burnin' Rubber", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, bnj, brubber, bnj, bnj, btime_state, bnj, ROT270, "Data East USA", "Bump 'n' Jump", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, bnjm, brubber, bnj, bnj, btime_state, bnj, ROT270, "Data East USA (Bally Midway license)", "Bump 'n' Jump (Midway)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, caractn, brubber, bnj, bnj, btime_state, bnj, ROT270, "bootleg", "Car Action (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, caractn2, brubber, bnj, caractn2, btime_state, bnj, ROT270, "bootleg", "Car Action (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, zoar, 0, zoar, zoar, btime_state, zoar, ROT270, "Data East USA", "Zoar", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, disco, 0, disco, disco, btime_state, disco, ROT270, "Data East", "Disco No.1", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, discof, disco, disco, disco, btime_state, disco, ROT270, "Data East", "Disco No.1 (Rev.F)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, sdtennis, 0, sdtennis, sdtennis, btime_state, sdtennis, ROT270, "Data East Corporation", "Super Doubles Tennis", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/btoads.cpp b/src/mame/drivers/btoads.cpp index ca703c7c948..86d402c5c41 100644 --- a/src/mame/drivers/btoads.cpp +++ b/src/mame/drivers/btoads.cpp @@ -300,7 +300,7 @@ INPUT_PORTS_END * *************************************/ -static MACHINE_CONFIG_START( btoads, btoads_state ) +static MACHINE_CONFIG_START( btoads ) MCFG_CPU_ADD("maincpu", TMS34020, CPU_CLOCK/2) MCFG_CPU_PROGRAM_MAP(main_map) @@ -369,4 +369,4 @@ ROM_END * *************************************/ -GAME( 1994, btoads, 0, btoads, btoads, driver_device, 0, ROT0, "Rare / Electronic Arts", "Battletoads", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, btoads, 0, btoads, btoads, btoads_state, 0, ROT0, "Rare / Electronic Arts", "Battletoads", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/bublbobl.cpp b/src/mame/drivers/bublbobl.cpp index 972b1a19c2d..11b139b0557 100644 --- a/src/mame/drivers/bublbobl.cpp +++ b/src/mame/drivers/bublbobl.cpp @@ -758,7 +758,7 @@ MACHINE_RESET_MEMBER(bublbobl_state,tokio) -static MACHINE_CONFIG_START( tokio, bublbobl_state ) +static MACHINE_CONFIG_START( tokio ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, MAIN_XTAL/4) // 6 MHz @@ -853,7 +853,7 @@ MACHINE_RESET_MEMBER(bublbobl_state,bublbobl) m_port4_out = 0; } -static MACHINE_CONFIG_START( bublbobl, bublbobl_state ) +static MACHINE_CONFIG_START( bublbobl ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, MAIN_XTAL/4) // 6 MHz @@ -954,7 +954,7 @@ MACHINE_RESET_MEMBER(bub68705_state, bub68705) m_latch = 0; } -static MACHINE_CONFIG_DERIVED_CLASS( bub68705, bublbobl, bub68705_state ) +static MACHINE_CONFIG_DERIVED( bub68705, bublbobl ) /* basic machine hardware */ MCFG_DEVICE_REMOVE("mcu") @@ -1886,31 +1886,30 @@ DRIVER_INIT_MEMBER(bublbobl_state,dland) * *************************************/ -GAME( 1986, tokio, 0, tokio, tokio, bublbobl_state, tokio, ROT90, "Taito Corporation", "Tokio / Scramble Formation (newer)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, tokioo, tokio, tokio, tokio, bublbobl_state, tokio, ROT90, "Taito Corporation", "Tokio / Scramble Formation (older)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, tokiou, tokio, tokio, tokio, bublbobl_state, tokio, ROT90, "Taito America Corporation (Romstar license)", "Tokio / Scramble Formation (US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, tokiob, tokio, tokiob, tokio_base, bublbobl_state, tokio, ROT90, "bootleg", "Tokio / Scramble Formation (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, tokio, 0, tokio, tokio, bublbobl_state, tokio, ROT90, "Taito Corporation", "Tokio / Scramble Formation (newer)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, tokioo, tokio, tokio, tokio, bublbobl_state, tokio, ROT90, "Taito Corporation", "Tokio / Scramble Formation (older)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, tokiou, tokio, tokio, tokio, bublbobl_state, tokio, ROT90, "Taito America Corporation (Romstar license)", "Tokio / Scramble Formation (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, tokiob, tokio, tokiob, tokio_base, bublbobl_state, tokio, ROT90, "bootleg", "Tokio / Scramble Formation (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, bublbobl, 0, bublbobl, bublbobl, bublbobl_state, bublbobl, ROT0, "Taito Corporation", "Bubble Bobble (Japan, Ver 0.1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, bublbobl1, bublbobl, bublbobl, bublbobl, bublbobl_state, bublbobl, ROT0, "Taito Corporation", "Bubble Bobble (Japan, Ver 0.0)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, bublboblr, bublbobl, bublbobl, bublbobl, bublbobl_state, bublbobl, ROT0, "Taito America Corporation (Romstar license)", "Bubble Bobble (US, Ver 5.1)", MACHINE_SUPPORTS_SAVE ) // newest release, with mode select -GAME( 1986, bublboblr1, bublbobl, bublbobl, bublbobl, bublbobl_state, bublbobl, ROT0, "Taito America Corporation (Romstar license)", "Bubble Bobble (US, Ver 1.0)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, bublbobl, 0, bublbobl, bublbobl, bublbobl_state, bublbobl, ROT0, "Taito Corporation", "Bubble Bobble (Japan, Ver 0.1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, bublbobl1, bublbobl, bublbobl, bublbobl, bublbobl_state, bublbobl, ROT0, "Taito Corporation", "Bubble Bobble (Japan, Ver 0.0)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, bublboblr, bublbobl, bublbobl, bublbobl, bublbobl_state, bublbobl, ROT0, "Taito America Corporation (Romstar license)", "Bubble Bobble (US, Ver 5.1)", MACHINE_SUPPORTS_SAVE ) // newest release, with mode select +GAME( 1986, bublboblr1, bublbobl, bublbobl, bublbobl, bublbobl_state, bublbobl, ROT0, "Taito America Corporation (Romstar license)", "Bubble Bobble (US, Ver 1.0)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, boblbobl, bublbobl, boblbobl, boblbobl, bublbobl_state, bublbobl, ROT0, "bootleg", "Bobble Bobble (bootleg of Bubble Bobble)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, sboblbobl, bublbobl, boblbobl, sboblbobl, bublbobl_state, bublbobl, ROT0, "bootleg (Datsu)", "Super Bobble Bobble (bootleg, set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, sboblbobla, bublbobl, boblbobl, boblbobl, bublbobl_state, bublbobl, ROT0, "bootleg", "Super Bobble Bobble (bootleg, set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, sboblboblb, bublbobl, boblbobl, sboblboblb, bublbobl_state, bublbobl, ROT0, "bootleg", "Super Bobble Bobble (bootleg, set 3)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, sboblbobld, bublbobl, boblbobl, sboblboblb, bublbobl_state, bublbobl, ROT0, "bootleg", "Super Bobble Bobble (bootleg, set 4)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, sboblboblc, bublbobl, boblbobl, sboblboblb, bublbobl_state, bublbobl, ROT0, "bootleg", "Super Bubble Bobble (bootleg)", MACHINE_SUPPORTS_SAVE ) // the title screen on this one isn't hacked -GAME( 1986, bub68705, bublbobl, bub68705, bublbobl, bublbobl_state, bublbobl, ROT0, "bootleg", "Bubble Bobble (bootleg with 68705)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, boblbobl, bublbobl, boblbobl, boblbobl, bublbobl_state, bublbobl, ROT0, "bootleg", "Bobble Bobble (bootleg of Bubble Bobble)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, sboblbobl, bublbobl, boblbobl, sboblbobl, bublbobl_state, bublbobl, ROT0, "bootleg (Datsu)", "Super Bobble Bobble (bootleg, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, sboblbobla, bublbobl, boblbobl, boblbobl, bublbobl_state, bublbobl, ROT0, "bootleg", "Super Bobble Bobble (bootleg, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, sboblboblb, bublbobl, boblbobl, sboblboblb, bublbobl_state, bublbobl, ROT0, "bootleg", "Super Bobble Bobble (bootleg, set 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, sboblbobld, bublbobl, boblbobl, sboblboblb, bublbobl_state, bublbobl, ROT0, "bootleg", "Super Bobble Bobble (bootleg, set 4)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, sboblboblc, bublbobl, boblbobl, sboblboblb, bublbobl_state, bublbobl, ROT0, "bootleg", "Super Bubble Bobble (bootleg)", MACHINE_SUPPORTS_SAVE ) // the title screen on this one isn't hacked +GAME( 1986, bub68705, bublbobl, bub68705, bublbobl, bub68705_state, bublbobl, ROT0, "bootleg", "Bubble Bobble (bootleg with 68705)", MACHINE_SUPPORTS_SAVE ) GAME( 1987, dland, bublbobl, boblbobl, dland, bublbobl_state, dland, ROT0, "bootleg", "Dream Land / Super Dream Land (bootleg of Bubble Bobble)", MACHINE_SUPPORTS_SAVE ) -GAME( 2013, bbredux, bublbobl, boblbobl, boblbobl, bublbobl_state, bublbobl, ROT0, "bootleg (Punji)", "Bubble Bobble ('bootleg redux' hack for Bobble Bobble PCB)", MACHINE_SUPPORTS_SAVE ) // for use on non-MCU bootleg boards (Bobble Bobble etc.) has more faithful simulation of the protection device (JAN-04-2015 release) -GAME( 2013, bublboblb, bublbobl, boblbobl, boblcave, bublbobl_state, bublbobl, ROT0, "bootleg (Aladar)", "Bubble Bobble (for Bobble Bobble PCB)", MACHINE_SUPPORTS_SAVE ) // alt bootleg/hack to restore proper MCU behavior to bootleg boards +GAME( 2013, bbredux, bublbobl, boblbobl, boblbobl, bublbobl_state, bublbobl, ROT0, "bootleg (Punji)", "Bubble Bobble ('bootleg redux' hack for Bobble Bobble PCB)", MACHINE_SUPPORTS_SAVE ) // for use on non-MCU bootleg boards (Bobble Bobble etc.) has more faithful simulation of the protection device (JAN-04-2015 release) +GAME( 2013, bublboblb, bublbobl, boblbobl, boblcave, bublbobl_state, bublbobl, ROT0, "bootleg (Aladar)", "Bubble Bobble (for Bobble Bobble PCB)", MACHINE_SUPPORTS_SAVE ) // alt bootleg/hack to restore proper MCU behavior to bootleg boards -GAME( 2013, bublcave, bublbobl, bublbobl, bublbobl, bublbobl_state, bublbobl, ROT0, "hack (Bisboch and Aladar)", "Bubble Bobble: Lost Cave V1.2", MACHINE_SUPPORTS_SAVE ) -GAME( 2013, boblcave, bublbobl, boblbobl, boblcave, bublbobl_state, bublbobl, ROT0, "hack (Bisboch and Aladar)", "Bubble Bobble: Lost Cave V1.2 (for Bobble Bobble PCB)", MACHINE_SUPPORTS_SAVE ) - -GAME( 2012, bublcave11, bublbobl, bublbobl, bublbobl, bublbobl_state, bublbobl, ROT0, "hack (Bisboch and Aladar)", "Bubble Bobble: Lost Cave V1.1", MACHINE_SUPPORTS_SAVE ) -GAME( 2012, bublcave10, bublbobl, bublbobl, bublbobl, bublbobl_state, bublbobl, ROT0, "hack (Bisboch and Aladar)", "Bubble Bobble: Lost Cave V1.0", MACHINE_SUPPORTS_SAVE ) +GAME( 2013, bublcave, bublbobl, bublbobl, bublbobl, bublbobl_state, bublbobl, ROT0, "hack (Bisboch and Aladar)", "Bubble Bobble: Lost Cave V1.2", MACHINE_SUPPORTS_SAVE ) +GAME( 2013, boblcave, bublbobl, boblbobl, boblcave, bublbobl_state, bublbobl, ROT0, "hack (Bisboch and Aladar)", "Bubble Bobble: Lost Cave V1.2 (for Bobble Bobble PCB)", MACHINE_SUPPORTS_SAVE ) +GAME( 2012, bublcave11, bublbobl, bublbobl, bublbobl, bublbobl_state, bublbobl, ROT0, "hack (Bisboch and Aladar)", "Bubble Bobble: Lost Cave V1.1", MACHINE_SUPPORTS_SAVE ) +GAME( 2012, bublcave10, bublbobl, bublbobl, bublbobl, bublbobl_state, bublbobl, ROT0, "hack (Bisboch and Aladar)", "Bubble Bobble: Lost Cave V1.0", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/buggychl.cpp b/src/mame/drivers/buggychl.cpp index af4c211167e..ce3b2cafadc 100644 --- a/src/mame/drivers/buggychl.cpp +++ b/src/mame/drivers/buggychl.cpp @@ -366,7 +366,7 @@ void buggychl_state::machine_reset() m_bg_scrollx = 0; } -static MACHINE_CONFIG_START( buggychl, buggychl_state ) +static MACHINE_CONFIG_START( buggychl ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 4000000) /* 4 MHz??? */ @@ -495,5 +495,5 @@ ROM_START( buggychlt ) ROM_END -GAMEL( 1984, buggychl, 0, buggychl, buggychl, driver_device, 0, ROT270, "Taito Corporation", "Buggy Challenge", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE, layout_buggychl ) -GAMEL( 1984, buggychlt,buggychl, buggychl, buggychl, driver_device, 0, ROT270, "Taito Corporation (Tecfri license)", "Buggy Challenge (Tecfri)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS| MACHINE_SUPPORTS_SAVE, layout_buggychl ) +GAMEL( 1984, buggychl, 0, buggychl, buggychl, buggychl_state, 0, ROT270, "Taito Corporation", "Buggy Challenge", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE, layout_buggychl ) +GAMEL( 1984, buggychlt,buggychl, buggychl, buggychl, buggychl_state, 0, ROT270, "Taito Corporation (Tecfri license)", "Buggy Challenge (Tecfri)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE, layout_buggychl ) diff --git a/src/mame/drivers/bullet.cpp b/src/mame/drivers/bullet.cpp index 58d444e0d26..c9ab6ce084f 100644 --- a/src/mame/drivers/bullet.cpp +++ b/src/mame/drivers/bullet.cpp @@ -60,6 +60,7 @@ Notes: #include "emu.h" #include "includes/bullet.h" + #include "bus/rs232/rs232.h" #include "bus/scsi/scsihd.h" #include "softlist.h" @@ -621,7 +622,7 @@ static ADDRESS_MAP_START( bullet_io, AS_IO, 8, bullet_state ) AM_RANGE(0x04, 0x07) AM_DEVREADWRITE(Z80PIO_TAG, z80pio_device, read, write) AM_RANGE(0x08, 0x0b) AM_DEVREADWRITE(Z80CTC_TAG, z80ctc_device, read, write) AM_RANGE(0x0c, 0x0c) AM_MIRROR(0x03) AM_READWRITE(win_r, wstrobe_w) - AM_RANGE(0x10, 0x13) AM_DEVREADWRITE(MB8877_TAG, mb8877_t, read, write) + AM_RANGE(0x10, 0x13) AM_DEVREADWRITE(MB8877_TAG, mb8877_device, read, write) AM_RANGE(0x14, 0x14) AM_DEVREADWRITE(Z80DMA_TAG, z80dma_device, read, write) AM_RANGE(0x15, 0x15) AM_READWRITE(brom_r, brom_w) AM_RANGE(0x16, 0x16) AM_WRITE(exdsk_w) @@ -650,7 +651,7 @@ static ADDRESS_MAP_START( bulletf_io, AS_IO, 8, bulletf_state ) AM_RANGE(0x00, 0x03) AM_DEVREADWRITE(Z80DART_TAG, z80dart_device, ba_cd_r, ba_cd_w) AM_RANGE(0x04, 0x07) AM_DEVREADWRITE(Z80PIO_TAG, z80pio_device, read, write) AM_RANGE(0x08, 0x0b) AM_DEVREADWRITE(Z80CTC_TAG, z80ctc_device, read, write) - AM_RANGE(0x10, 0x13) AM_DEVREADWRITE(MB8877_TAG, mb8877_t, read, write) + AM_RANGE(0x10, 0x13) AM_DEVREADWRITE(MB8877_TAG, mb8877_device, read, write) AM_RANGE(0x14, 0x14) AM_WRITE(xdma0_w) AM_RANGE(0x16, 0x16) AM_WRITE(xfdc_w) AM_RANGE(0x17, 0x17) AM_WRITE(mbank_w) @@ -1098,7 +1099,7 @@ void bulletf_state::machine_reset() // MACHINE_CONFIG( bullet ) //------------------------------------------------- -static MACHINE_CONFIG_START( bullet, bullet_state ) +static MACHINE_CONFIG_START( bullet ) // basic machine hardware MCFG_CPU_ADD(Z80_TAG, Z80, XTAL_16MHz/4) MCFG_CPU_PROGRAM_MAP(bullet_mem) @@ -1178,7 +1179,7 @@ MACHINE_CONFIG_END // MACHINE_CONFIG( bulletf ) //------------------------------------------------- -static MACHINE_CONFIG_START( bulletf, bulletf_state ) +static MACHINE_CONFIG_START( bulletf ) // basic machine hardware MCFG_CPU_ADD(Z80_TAG, Z80, XTAL_16MHz/4) MCFG_CPU_PROGRAM_MAP(bulletf_mem) @@ -1292,7 +1293,7 @@ ROM_END // SYSTEM DRIVERS //************************************************************************** -// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS // the setname 'bullet' is used by Sega's Bullet in MAME. -COMP( 1982, wmbullet, 0, 0, bullet, bullet, driver_device, 0, "Wave Mate", "Bullet", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) -COMP( 1984, wmbulletf, wmbullet, 0, bulletf, bulletf, driver_device, 0, "Wave Mate", "Bullet (Revision F)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) +COMP( 1982, wmbullet, 0, 0, bullet, bullet, bullet_state, 0, "Wave Mate", "Bullet", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) +COMP( 1984, wmbulletf, wmbullet, 0, bulletf, bulletf, bulletf_state, 0, "Wave Mate", "Bullet (Revision F)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) diff --git a/src/mame/drivers/busicom.cpp b/src/mame/drivers/busicom.cpp index 338f42d3cf7..09a685d6114 100644 --- a/src/mame/drivers/busicom.cpp +++ b/src/mame/drivers/busicom.cpp @@ -212,7 +212,7 @@ void busicom_state::machine_reset() //static const char layout_busicom [] = "busicom"; -static MACHINE_CONFIG_START( busicom, busicom_state ) +static MACHINE_CONFIG_START( busicom ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",I4004, 750000) MCFG_CPU_PROGRAM_MAP(busicom_rom) @@ -247,5 +247,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1974, busicom, 0, 0, busicom, busicom, driver_device, 0, "Business Computer Corporation", "Busicom 141-PF", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1974, busicom, 0, 0, busicom, busicom, busicom_state, 0, "Business Computer Corporation", "Busicom 141-PF", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/buster.cpp b/src/mame/drivers/buster.cpp index 823fe6dfd35..04a181fa4b0 100644 --- a/src/mame/drivers/buster.cpp +++ b/src/mame/drivers/buster.cpp @@ -315,7 +315,7 @@ static GFXDECODE_START( buster ) GFXDECODE_END -static MACHINE_CONFIG_START( buster, buster_state ) +static MACHINE_CONFIG_START( buster ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80,XTAL_3_579545MHz) /* ? MHz */ MCFG_CPU_PROGRAM_MAP(mainmap) @@ -359,4 +359,4 @@ ROM_START( buster ) ROM_END -GAME( 1982, buster, 0, buster, buster, driver_device, 0, ROT0, "Marian Electronics Ltd.", "Buster", MACHINE_NOT_WORKING|MACHINE_NO_SOUND ) +GAME( 1982, buster, 0, buster, buster, buster_state, 0, ROT0, "Marian Electronics Ltd.", "Buster", MACHINE_NOT_WORKING|MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/bw12.cpp b/src/mame/drivers/bw12.cpp index 0d5b6df097b..326405bc3bc 100644 --- a/src/mame/drivers/bw12.cpp +++ b/src/mame/drivers/bw12.cpp @@ -543,7 +543,7 @@ GFXDECODE_END /* Machine Driver */ -static MACHINE_CONFIG_START( common, bw12_state ) +static MACHINE_CONFIG_START( common ) /* basic machine hardware */ MCFG_CPU_ADD(Z80_TAG, Z80, XTAL_16MHz/4) MCFG_CPU_PROGRAM_MAP(bw12_mem) @@ -674,6 +674,6 @@ ROM_END /* System Drivers */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1984, bw12, 0, 0, bw12, bw12, driver_device, 0, "Bondwell Holding", "Bondwell 12", MACHINE_SUPPORTS_SAVE ) -COMP( 1984, bw14, bw12, 0, bw14, bw12, driver_device, 0, "Bondwell Holding", "Bondwell 14", MACHINE_SUPPORTS_SAVE ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +COMP( 1984, bw12, 0, 0, bw12, bw12, bw12_state, 0, "Bondwell Holding", "Bondwell 12", MACHINE_SUPPORTS_SAVE ) +COMP( 1984, bw14, bw12, 0, bw14, bw12, bw12_state, 0, "Bondwell Holding", "Bondwell 14", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/bw2.cpp b/src/mame/drivers/bw2.cpp index a20616600af..7af11dd172d 100644 --- a/src/mame/drivers/bw2.cpp +++ b/src/mame/drivers/bw2.cpp @@ -222,7 +222,7 @@ static ADDRESS_MAP_START( bw2_io, AS_IO, 8, bw2_state ) AM_RANGE(0x40, 0x40) AM_DEVREADWRITE(I8251_TAG, i8251_device, data_r, data_w) AM_RANGE(0x41, 0x41) AM_DEVREADWRITE(I8251_TAG, i8251_device, status_r, control_w) AM_RANGE(0x50, 0x50) AM_DEVWRITE("cent_data_out", output_latch_device, write) - AM_RANGE(0x60, 0x63) AM_DEVREADWRITE(WD2797_TAG, wd2797_t, read, write) + AM_RANGE(0x60, 0x63) AM_DEVREADWRITE(WD2797_TAG, wd2797_device, read, write) AM_RANGE(0x70, 0x7f) AM_DEVREADWRITE(BW2_EXPANSION_SLOT_TAG, bw2_expansion_slot_device, modsel_r, modsel_w) ADDRESS_MAP_END @@ -575,7 +575,7 @@ void bw2_state::machine_start() // MACHINE_CONFIG( bw2 ) //------------------------------------------------- -static MACHINE_CONFIG_START( bw2, bw2_state ) +static MACHINE_CONFIG_START( bw2 ) // basic machine hardware MCFG_CPU_ADD(Z80_TAG, Z80, XTAL_16MHz/4) MCFG_CPU_PROGRAM_MAP(bw2_mem) @@ -667,5 +667,5 @@ ROM_END // SYSTEM DRIVERS //************************************************************************** -// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS -COMP( 1985, bw2, 0, 0, bw2, bw2, driver_device, 0, "Bondwell Holding", "Bondwell Model 2", MACHINE_NO_SOUND_HW ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1985, bw2, 0, 0, bw2, bw2, bw2_state, 0, "Bondwell Holding", "Bondwell Model 2", MACHINE_NO_SOUND_HW ) diff --git a/src/mame/drivers/bwidow.cpp b/src/mame/drivers/bwidow.cpp index 3337d7b043d..31961b9c1b9 100644 --- a/src/mame/drivers/bwidow.cpp +++ b/src/mame/drivers/bwidow.cpp @@ -731,7 +731,7 @@ INPUT_PORTS_END * *************************************/ -static MACHINE_CONFIG_START( bwidow, bwidow_state ) +static MACHINE_CONFIG_START( bwidow ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, MASTER_CLOCK / 8) @@ -1063,13 +1063,13 @@ ROM_END * *************************************/ -GAME( 1980, spacduel, 0, spacduel, spacduel, driver_device, 0, ROT0, "Atari", "Space Duel (version 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1980, spacduel1,spacduel, spacduel, spacduel, driver_device, 0, ROT0, "Atari", "Space Duel (version 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1980, spacduel0,spacduel, spacduel, spacduel, driver_device, 0, ROT0, "Atari", "Space Duel (prototype)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, bwidow, 0, bwidow, bwidow, driver_device, 0, ROT0, "Atari", "Black Widow", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, bwidowp, bwidow, bwidowp, bwidow, driver_device, 0, ROT0, "Atari", "Black Widow (prototype)", MACHINE_NOT_WORKING ) -GAME( 1982, gravitar, 0, gravitar, gravitar, driver_device, 0, ROT0, "Atari", "Gravitar (version 3)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, gravitar2,gravitar, gravitar, gravitar, driver_device, 0, ROT0, "Atari", "Gravitar (version 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, gravitar1,gravitar, gravitar, gravitar, driver_device, 0, ROT0, "Atari", "Gravitar (version 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, lunarbat, gravitar, gravitar, gravitar, driver_device, 0, ROT0, "Atari", "Lunar Battle (prototype, later)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, lunarba1, gravitar, lunarbat, lunarbat, driver_device, 0, ROT0, "Atari", "Lunar Battle (prototype, earlier)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, spacduel, 0, spacduel, spacduel, bwidow_state, 0, ROT0, "Atari", "Space Duel (version 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, spacduel1,spacduel, spacduel, spacduel, bwidow_state, 0, ROT0, "Atari", "Space Duel (version 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, spacduel0,spacduel, spacduel, spacduel, bwidow_state, 0, ROT0, "Atari", "Space Duel (prototype)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, bwidow, 0, bwidow, bwidow, bwidow_state, 0, ROT0, "Atari", "Black Widow", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, bwidowp, bwidow, bwidowp, bwidow, bwidow_state, 0, ROT0, "Atari", "Black Widow (prototype)", MACHINE_NOT_WORKING ) +GAME( 1982, gravitar, 0, gravitar, gravitar, bwidow_state, 0, ROT0, "Atari", "Gravitar (version 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, gravitar2,gravitar, gravitar, gravitar, bwidow_state, 0, ROT0, "Atari", "Gravitar (version 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, gravitar1,gravitar, gravitar, gravitar, bwidow_state, 0, ROT0, "Atari", "Gravitar (version 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, lunarbat, gravitar, gravitar, gravitar, bwidow_state, 0, ROT0, "Atari", "Lunar Battle (prototype, later)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, lunarba1, gravitar, lunarbat, lunarbat, bwidow_state, 0, ROT0, "Atari", "Lunar Battle (prototype, earlier)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/bwing.cpp b/src/mame/drivers/bwing.cpp index c6eb42d9052..f298719e5db 100644 --- a/src/mame/drivers/bwing.cpp +++ b/src/mame/drivers/bwing.cpp @@ -358,7 +358,7 @@ void bwing_state::bwing_postload() } -static MACHINE_CONFIG_START( bwing, bwing_state ) +static MACHINE_CONFIG_START( bwing ) // basic machine hardware MCFG_CPU_ADD("maincpu", M6809, 2000000) diff --git a/src/mame/drivers/by17.cpp b/src/mame/drivers/by17.cpp index 6caa08eabd6..37ce01ef41d 100644 --- a/src/mame/drivers/by17.cpp +++ b/src/mame/drivers/by17.cpp @@ -973,7 +973,7 @@ MACHINE_RESET_MEMBER( by17_state, by17 ) -static MACHINE_CONFIG_START( by17, by17_state ) +static MACHINE_CONFIG_START( by17 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6800, 530000) // No xtal, just 2 chips forming a multivibrator oscillator around 530KHz MCFG_CPU_PROGRAM_MAP(by17_map) @@ -1119,12 +1119,12 @@ ROM_END GAME( 1976, bowarrow, 0, by17, by17, by17_state, by17, ROT0, "Bally", "Bow & Arrow (Prototype)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1977, freedom, 0, by17, by17, by17_state, by17, ROT0, "Bally", "Freedom", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1977, nightrdr, 0, by17, by17, by17_state, by17, ROT0, "Bally", "Night Rider (rev. 21)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1977, nightr20, nightrdr, by17, by17, by17_state, by17, ROT0, "Bally", "Night Rider (rev. 20)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1978, blackjck, 0, by17, by17, by17_state, by17, ROT0, "Bally", "Black Jack (Pinball)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1977, evelknie, 0, by17, by17, by17_state, by17, ROT0, "Bally", "Evel Knievel", MACHINE_IS_SKELETON_MECHANICAL) -GAMEL( 1978, matahari, 0, by17, matahari, by17_state, matahari, ROT0, "Bally", "Mata Hari", MACHINE_MECHANICAL | MACHINE_NOT_WORKING, layout_by17_matahari) -GAME( 1977, eightbll, 0, by17, by17, by17_state, by17, ROT0, "Bally", "Eight Ball", MACHINE_IS_SKELETON_MECHANICAL) -GAMEL( 1978, pwerplay, 0, by17, pwerplay, by17_state, pwerplay, ROT0, "Bally", "Power Play (Pinball)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING, layout_by17_pwerplay) -GAME( 1978, stk_sprs, 0, by17, by17, by17_state, by17, ROT0, "Bally", "Strikes and Spares", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1977, freedom, 0, by17, by17, by17_state, by17, ROT0, "Bally", "Freedom", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1977, nightrdr, 0, by17, by17, by17_state, by17, ROT0, "Bally", "Night Rider (rev. 21)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1977, nightr20, nightrdr, by17, by17, by17_state, by17, ROT0, "Bally", "Night Rider (rev. 20)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1978, blackjck, 0, by17, by17, by17_state, by17, ROT0, "Bally", "Black Jack (Pinball)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1977, evelknie, 0, by17, by17, by17_state, by17, ROT0, "Bally", "Evel Knievel", MACHINE_IS_SKELETON_MECHANICAL) +GAMEL( 1978, matahari, 0, by17, matahari, by17_state, matahari, ROT0, "Bally", "Mata Hari", MACHINE_MECHANICAL | MACHINE_NOT_WORKING, layout_by17_matahari) +GAME( 1977, eightbll, 0, by17, by17, by17_state, by17, ROT0, "Bally", "Eight Ball", MACHINE_IS_SKELETON_MECHANICAL) +GAMEL( 1978, pwerplay, 0, by17, pwerplay, by17_state, pwerplay, ROT0, "Bally", "Power Play (Pinball)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING, layout_by17_pwerplay) +GAME( 1978, stk_sprs, 0, by17, by17, by17_state, by17, ROT0, "Bally", "Strikes and Spares", MACHINE_IS_SKELETON_MECHANICAL) diff --git a/src/mame/drivers/by35.cpp b/src/mame/drivers/by35.cpp index 236aa64d2fb..77da1de80cb 100644 --- a/src/mame/drivers/by35.cpp +++ b/src/mame/drivers/by35.cpp @@ -1074,7 +1074,7 @@ DISCRETE_SOUND_END -static MACHINE_CONFIG_START( by35, by35_state ) +static MACHINE_CONFIG_START( by35 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6800, 530000) // No xtal, just 2 chips forming a multivibrator oscillator around 530KHz MCFG_CPU_PROGRAM_MAP(by35_map) @@ -2394,83 +2394,83 @@ ROM_START(suprbowl) ROM_END // AS-2888 sound -GAME( 1979, sst, 0, as2888, by35, by35_state, by35_6, ROT0, "Bally", "Supersonic", MACHINE_IS_SKELETON_MECHANICAL) -GAMEL(1978, playboy, 0, as2888, playboy, by35_state, playboy, ROT0, "Bally", "Playboy", MACHINE_MECHANICAL | MACHINE_NOT_WORKING, layout_by35_playboy) -GAME( 1978, lostwrlp, 0, as2888, by35, by35_state, by35_6, ROT0, "Bally", "Lost World", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1978, smman, 0, as2888, by35, by35_state, by35_6, ROT0, "Bally", "Six Million Dollar Man", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1978, voltan, 0, as2888, by35, by35_state, by35_6, ROT0, "Bally", "Voltan Escapes Cosmic Doom", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1979, startrep, 0, as2888, by35, by35_state, by35_6, ROT0, "Bally", "Star Trek (Pinball)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1979, kiss, 0, as2888, by35, by35_state, by35_6, ROT0, "Bally", "Kiss", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1979, sst, 0, as2888, by35, by35_state, by35_6, ROT0, "Bally", "Supersonic", MACHINE_IS_SKELETON_MECHANICAL) +GAMEL(1978, playboy, 0, as2888, playboy, by35_state, playboy, ROT0, "Bally", "Playboy", MACHINE_MECHANICAL | MACHINE_NOT_WORKING, layout_by35_playboy) +GAME( 1978, lostwrlp, 0, as2888, by35, by35_state, by35_6, ROT0, "Bally", "Lost World", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1978, smman, 0, as2888, by35, by35_state, by35_6, ROT0, "Bally", "Six Million Dollar Man", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1978, voltan, 0, as2888, by35, by35_state, by35_6, ROT0, "Bally", "Voltan Escapes Cosmic Doom", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1979, startrep, 0, as2888, by35, by35_state, by35_6, ROT0, "Bally", "Star Trek (Pinball)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1979, kiss, 0, as2888, by35, by35_state, by35_6, ROT0, "Bally", "Kiss", MACHINE_IS_SKELETON_MECHANICAL) GAME( 1979, hglbtrtr, 0, as2888, by35, by35_state, by35_6, ROT0, "Bally", "Harlem Globetrotters On Tour", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1979, dollyptn, 0, as2888, by35, by35_state, by35_6, ROT0, "Bally", "Dolly Parton", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1979, paragon, 0, as2888, by35, by35_state, by35_6, ROT0, "Bally", "Paragon", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1979, dollyptn, 0, as2888, by35, by35_state, by35_6, ROT0, "Bally", "Dolly Parton", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1979, paragon, 0, as2888, by35, by35_state, by35_6, ROT0, "Bally", "Paragon", MACHINE_IS_SKELETON_MECHANICAL) // AS-3022 sound -GAME( 1980, ngndshkr, 0, by35, by35, by35_state, by35_6, ROT0, "Bally", "Nitro Ground Shaker", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1980, slbmania, 0, by35, by35, by35_state, by35_6, ROT0, "Bally", "Silverball Mania", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1979, futurspa, 0, by35, by35, by35_state, by35_6, ROT0, "Bally", "Future Spa", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1980, spaceinv, 0, by35, by35, by35_state, by35_6, ROT0, "Bally", "Space Invaders", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1980, rollston, 0, by35, by35, by35_state, by35_6, ROT0, "Bally", "Rolling Stones", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1980, mystic, 0, by35, by35, by35_state, by35_6, ROT0, "Bally", "Mystic", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1980, xenon, 0, by35, by35, by35_state, by35_6, ROT0, "Bally", "Xenon", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1980, xenonf, xenon, by35, by35, by35_state, by35_6, ROT0, "Bally", "Xenon (French)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1980, viking, 0, by35, by35, by35_state, by35_6, ROT0, "Bally", "Viking", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1980, hotdoggn, 0, by35, by35, by35_state, by35_6, ROT0, "Bally", "Hotdoggin'", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1980, skatebll, 0, by35, by35, by35_state, by35_7, ROT0, "Bally", "Skateball", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1980, frontier, 0, by35, by35, by35_state, by35_7, ROT0, "Bally", "Frontier", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1982, speakesy, 0, by35, by35, by35_state, by35_7, ROT0, "Bally", "Speakeasy", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1982, speakesy4p, speakesy, by35, by35, by35_state, by35_7, ROT0, "Bally", "Speakeasy 4 Player", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1983, bmx, 0, by35, by35, by35_state, by35_7, ROT0, "Bally", "BMX", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1983, granslam, 0, by35, by35, by35_state, by35_7, ROT0, "Bally", "Grand Slam", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1983, granslam4, granslam, by35, by35, by35_state, by35_7, ROT0, "Bally", "Grand Slam (4 Players)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1983, goldball, 0, by35, by35, by35_state, by35_7, ROT0, "Bally", "Gold Ball (set 1)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1980, ngndshkr, 0, by35, by35, by35_state, by35_6, ROT0, "Bally", "Nitro Ground Shaker", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1980, slbmania, 0, by35, by35, by35_state, by35_6, ROT0, "Bally", "Silverball Mania", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1979, futurspa, 0, by35, by35, by35_state, by35_6, ROT0, "Bally", "Future Spa", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1980, spaceinv, 0, by35, by35, by35_state, by35_6, ROT0, "Bally", "Space Invaders", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1980, rollston, 0, by35, by35, by35_state, by35_6, ROT0, "Bally", "Rolling Stones", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1980, mystic, 0, by35, by35, by35_state, by35_6, ROT0, "Bally", "Mystic", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1980, xenon, 0, by35, by35, by35_state, by35_6, ROT0, "Bally", "Xenon", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1980, xenonf, xenon, by35, by35, by35_state, by35_6, ROT0, "Bally", "Xenon (French)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1980, viking, 0, by35, by35, by35_state, by35_6, ROT0, "Bally", "Viking", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1980, hotdoggn, 0, by35, by35, by35_state, by35_6, ROT0, "Bally", "Hotdoggin'", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1980, skatebll, 0, by35, by35, by35_state, by35_7, ROT0, "Bally", "Skateball", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1980, frontier, 0, by35, by35, by35_state, by35_7, ROT0, "Bally", "Frontier", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1982, speakesy, 0, by35, by35, by35_state, by35_7, ROT0, "Bally", "Speakeasy", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1982, speakesy4p, speakesy, by35, by35, by35_state, by35_7, ROT0, "Bally", "Speakeasy 4 Player", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1983, bmx, 0, by35, by35, by35_state, by35_7, ROT0, "Bally", "BMX", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1983, granslam, 0, by35, by35, by35_state, by35_7, ROT0, "Bally", "Grand Slam", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1983, granslam4, granslam, by35, by35, by35_state, by35_7, ROT0, "Bally", "Grand Slam (4 Players)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1983, goldball, 0, by35, by35, by35_state, by35_7, ROT0, "Bally", "Gold Ball (set 1)", MACHINE_IS_SKELETON_MECHANICAL) GAME( 1983, goldballn, goldball, by35, by35, by35_state, by35_7, ROT0, "Bally", "Gold Ball (Field Service Upgrade)", MACHINE_IS_SKELETON_MECHANICAL) // Squawk & Talk sound -GAME( 1981, flashgdn, 0, by35, by35, by35_state, by35_7, ROT0, "Bally", "Flash Gordon", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1981, flashgdnf, flashgdn, by35, by35, by35_state, by35_7, ROT0, "Bally", "Flash Gordon (French)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1981, flashgdn, 0, by35, by35, by35_state, by35_7, ROT0, "Bally", "Flash Gordon", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1981, flashgdnf, flashgdn, by35, by35, by35_state, by35_7, ROT0, "Bally", "Flash Gordon (French)", MACHINE_IS_SKELETON_MECHANICAL) GAME( 1981, flashgdnv, flashgdn, by35, by35, by35_state, by35_7, ROT0, "Bally", "Flash Gordon (Vocalizer sound)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1981, fball_ii, 0, by35, by35, by35_state, by35_7, ROT0, "Bally", "Fireball II", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1981, eballdlx, 0, by35, by35, by35_state, by35_7, ROT0, "Bally", "Eight Ball Deluxe (rev. 15)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1981, eballd14, eballdlx, by35, by35, by35_state, by35_7, ROT0, "Bally", "Eight Ball Deluxe (rev. 14)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1981, embryon, 0, by35, by35, by35_state, by35_7, ROT0, "Bally", "Embryon", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1981, fathom, 0, by35, by35, by35_state, by35_7, ROT0, "Bally", "Fathom", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1981, centaur, 0, by35, by35, by35_state, by35_7, ROT0, "Bally", "Centaur", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1981, medusa, 0, by35, by35, by35_state, by35_7, ROT0, "Bally", "Medusa", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1982, vector, 0, by35, by35, by35_state, by35_7, ROT0, "Bally", "Vector", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1981, elektra, 0, by35, by35, by35_state, by35_7, ROT0, "Bally", "Elektra", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1982, spectrm, 0, by35, by35, by35_state, by35_7, ROT0, "Bally", "Spectrum", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1982, spectrm4, spectrm, by35, by35, by35_state, by35_7, ROT0, "Bally", "Spectrum (ver 4)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1982, rapidfip, 0, by35, by35, by35_state, by35_7, ROT0, "Bally", "Rapid Fire", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1982, m_mpac, 0, by35, by35, by35_state, by35_7, ROT0, "Bally", "Mr. and Mrs. PacMan", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1981, fball_ii, 0, by35, by35, by35_state, by35_7, ROT0, "Bally", "Fireball II", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1981, eballdlx, 0, by35, by35, by35_state, by35_7, ROT0, "Bally", "Eight Ball Deluxe (rev. 15)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1981, eballd14, eballdlx, by35, by35, by35_state, by35_7, ROT0, "Bally", "Eight Ball Deluxe (rev. 14)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1981, embryon, 0, by35, by35, by35_state, by35_7, ROT0, "Bally", "Embryon", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1981, fathom, 0, by35, by35, by35_state, by35_7, ROT0, "Bally", "Fathom", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1981, centaur, 0, by35, by35, by35_state, by35_7, ROT0, "Bally", "Centaur", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1981, medusa, 0, by35, by35, by35_state, by35_7, ROT0, "Bally", "Medusa", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1982, vector, 0, by35, by35, by35_state, by35_7, ROT0, "Bally", "Vector", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1981, elektra, 0, by35, by35, by35_state, by35_7, ROT0, "Bally", "Elektra", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1982, spectrm, 0, by35, by35, by35_state, by35_7, ROT0, "Bally", "Spectrum", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1982, spectrm4, spectrm, by35, by35, by35_state, by35_7, ROT0, "Bally", "Spectrum (ver 4)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1982, rapidfip, 0, by35, by35, by35_state, by35_7, ROT0, "Bally", "Rapid Fire", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1982, m_mpac, 0, by35, by35, by35_state, by35_7, ROT0, "Bally", "Mr. and Mrs. PacMan", MACHINE_IS_SKELETON_MECHANICAL) // Cheap Squeak sound -GAME( 1984, kosteel, 0, by35, by35, by35_state, by35_7, ROT0, "Bally", "Kings of Steel", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1983, xsandos, 0, by35, by35, by35_state, by35_7, ROT0, "Bally", "X's & O's", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1984, kosteel, 0, by35, by35, by35_state, by35_7, ROT0, "Bally", "Kings of Steel", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1983, xsandos, 0, by35, by35, by35_state, by35_7, ROT0, "Bally", "X's & O's", MACHINE_IS_SKELETON_MECHANICAL) GAME( 1984, spyhuntr, 0, by35, by35, by35_state, by35_7, ROT0, "Bally", "Spy Hunter (Pinball)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1984, fbclass, 0, by35, by35, by35_state, by35_7, ROT0, "Bally", "Fireball Classic", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1984, blakpyra, 0, by35, by35, by35_state, by35_7, ROT0, "Bally", "Black Pyramid", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1985, cybrnaut, 0, by35, by35, by35_state, by35_7, ROT0, "Bally", "Cybernaut", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1984, fbclass, 0, by35, by35, by35_state, by35_7, ROT0, "Bally", "Fireball Classic", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1984, blakpyra, 0, by35, by35, by35_state, by35_7, ROT0, "Bally", "Black Pyramid", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1985, cybrnaut, 0, by35, by35, by35_state, by35_7, ROT0, "Bally", "Cybernaut", MACHINE_IS_SKELETON_MECHANICAL) // Other manufacturers -GAME( 1984, suprbowl, xsandos, by35, by35, by35_state, by35_7, ROT0, "Bell Games", "Super Bowl", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1984, tigerrag, kosteel, by35, by35, by35_state, by35_7, ROT0, "Bell Games", "Tiger Rag", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1985, cosflash, flashgdn, by35, by35, by35_state, by35_7, ROT0, "Bell Games", "Cosmic Flash", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1985, newwave, blakpyra, by35, by35, by35_state, by35_7, ROT0, "Bell Games", "New Wave", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1985, saturn2, spyhuntr, by35, by35, by35_state, by35_7, ROT0, "Bell Games", "Saturn 2", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1985, worlddef, 0, by35, by35, by35_state, by35_7, ROT0, "Bell Games", "World Defender", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1986, spacehaw, cybrnaut, by35, by35, by35_state, by35_7, ROT0, "Nuova Bell Games", "Space Hawks", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1986, darkshad, 0, nuovo, by35, by35_state, by35_7, ROT0, "Nuova Bell Games", "Dark Shadow", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1986, skflight, 0, nuovo, by35, by35_state, by35_7, ROT0, "Nuova Bell Games", "Skill Flight", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1987, cobrap, 0, nuovo, by35, by35_state, by35_7, ROT0, "Nuova Bell Games", "Cobra", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1987, futrquen, 0, nuovo, by35, by35_state, by35_7, ROT0, "Nuova Bell Games", "Future Queen", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1987, f1gpp, 0, nuovo, by35, by35_state, by35_7, ROT0, "Nuova Bell Games", "F1 Grand Prix", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1988, toppin, 0, nuovo, by35, by35_state, by35_7, ROT0, "Nuova Bell Games", "Top Pin", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1988, uboat65, 0, nuovo, by35, by35_state, by35_7, ROT0, "Nuova Bell Games", "U-boat 65", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1986, bullseye, 0, by35, by35, by35_state, by35_7, ROT0, "Grand Products", "301/Bullseye", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1988, bbbowlin, 0, by35, by35, by35_state, by35_7, ROT0, "United", "Big Ball Bowling (Bowler)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1988, monrobwl, 0, by35, by35, by35_state, by35_7, ROT0, "Monroe Bowling Co.", "Stars & Strikes (Bowler)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1984, bigbat, 0, by35, by35, by35_state, by35_7, ROT0, "Bally Midway", "Big Bat (Bat game)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1984, mdntmrdr, 0, by35, by35, by35_state, by35_6, ROT0, "Bally Midway", "Midnight Marauders (Gun game)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1988, blbeauty, 0, by35, by35, by35_state, by35_7, ROT0, "Stern", "Black Beauty (Shuffle)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1984, myststar, 0, by35, by35, by35_state, by35_6, ROT0, "Zaccaria", "Mystic Star", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1984, suprbowl, xsandos, by35, by35, by35_state, by35_7, ROT0, "Bell Games", "Super Bowl", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1984, tigerrag, kosteel, by35, by35, by35_state, by35_7, ROT0, "Bell Games", "Tiger Rag", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1985, cosflash, flashgdn, by35, by35, by35_state, by35_7, ROT0, "Bell Games", "Cosmic Flash", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1985, newwave, blakpyra, by35, by35, by35_state, by35_7, ROT0, "Bell Games", "New Wave", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1985, saturn2, spyhuntr, by35, by35, by35_state, by35_7, ROT0, "Bell Games", "Saturn 2", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1985, worlddef, 0, by35, by35, by35_state, by35_7, ROT0, "Bell Games", "World Defender", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1986, spacehaw, cybrnaut, by35, by35, by35_state, by35_7, ROT0, "Nuova Bell Games", "Space Hawks", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1986, darkshad, 0, nuovo, by35, by35_state, by35_7, ROT0, "Nuova Bell Games", "Dark Shadow", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1986, skflight, 0, nuovo, by35, by35_state, by35_7, ROT0, "Nuova Bell Games", "Skill Flight", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1987, cobrap, 0, nuovo, by35, by35_state, by35_7, ROT0, "Nuova Bell Games", "Cobra", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1987, futrquen, 0, nuovo, by35, by35_state, by35_7, ROT0, "Nuova Bell Games", "Future Queen", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1987, f1gpp, 0, nuovo, by35, by35_state, by35_7, ROT0, "Nuova Bell Games", "F1 Grand Prix", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1988, toppin, 0, nuovo, by35, by35_state, by35_7, ROT0, "Nuova Bell Games", "Top Pin", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1988, uboat65, 0, nuovo, by35, by35_state, by35_7, ROT0, "Nuova Bell Games", "U-boat 65", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1986, bullseye, 0, by35, by35, by35_state, by35_7, ROT0, "Grand Products", "301/Bullseye", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1988, bbbowlin, 0, by35, by35, by35_state, by35_7, ROT0, "United", "Big Ball Bowling (Bowler)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1988, monrobwl, 0, by35, by35, by35_state, by35_7, ROT0, "Monroe Bowling Co.", "Stars & Strikes (Bowler)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1984, bigbat, 0, by35, by35, by35_state, by35_7, ROT0, "Bally Midway", "Big Bat (Bat game)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1984, mdntmrdr, 0, by35, by35, by35_state, by35_6, ROT0, "Bally Midway", "Midnight Marauders (Gun game)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1988, blbeauty, 0, by35, by35, by35_state, by35_7, ROT0, "Stern", "Black Beauty (Shuffle)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1984, myststar, 0, by35, by35, by35_state, by35_6, ROT0, "Zaccaria", "Mystic Star", MACHINE_IS_SKELETON_MECHANICAL) diff --git a/src/mame/drivers/by6803.cpp b/src/mame/drivers/by6803.cpp index fde70694d11..645a7bbe7eb 100644 --- a/src/mame/drivers/by6803.cpp +++ b/src/mame/drivers/by6803.cpp @@ -369,7 +369,7 @@ TIMER_DEVICE_CALLBACK_MEMBER( by6803_state::pia0_timer ) m_pia0->cb1_w(m_pia0_timer); } -static MACHINE_CONFIG_START( by6803, by6803_state ) +static MACHINE_CONFIG_START( by6803 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6803, XTAL_3_579545MHz) MCFG_CPU_PROGRAM_MAP(by6803_map) @@ -714,27 +714,27 @@ ROM_START(trucksp2) ROM_END -GAME( 1985, eballchp, 0, by6803, by6803, by6803_state, by6803, ROT0, "Bally","Eight Ball Champ", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1985, beatclck, 0, by6803, by6803, by6803_state, by6803, ROT0, "Bally","Beat the Clock", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1986, motrdome, 0, by6803, by6803, by6803_state, by6803, ROT0, "Bally","MotorDome", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1986, motrdomeg, motrdome, by6803, by6803, by6803_state, by6803, ROT0, "Bally","MotorDome (German)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1986, ladyluck, 0, by6803, by6803, by6803_state, by6803, ROT0, "Bally","Lady Luck", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1986, strngsci, 0, by6803, by6803, by6803_state, by6803, ROT0, "Bally","Strange Science", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1986, strngscg, strngsci, by6803, by6803, by6803_state, by6803, ROT0, "Bally","Strange Science (German)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1986, specforc, 0, by6803, by6803, by6803_state, by6803, ROT0, "Bally","Special Force", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1986, blackblt, 0, by6803, by6803, by6803_state, by6803, ROT0, "Bally","Black Belt", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1986, blackblt2, blackblt, by6803, by6803, by6803_state, by6803, ROT0, "Bally","Black Belt (Squawk and Talk)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1987, cityslck, 0, by6803, by6803, by6803_state, by6803, ROT0, "Bally","City Slicker", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1987, hardbody, 0, by6803, by6803, by6803_state, by6803, ROT0, "Bally","Hardbody", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1987, hardbodyg, hardbody, by6803, by6803, by6803_state, by6803, ROT0, "Bally","Hardbody (German)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1987, prtyanim, 0, by6803, by6803, by6803_state, by6803, ROT0, "Bally","Party Animal", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1987, prtyanimg, prtyanim, by6803, by6803, by6803_state, by6803, ROT0, "Bally","Party Animal (German)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1987, hvymetap, 0, by6803, by6803, by6803_state, by6803, ROT0, "Bally","Heavy Metal Meltdown", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1987, esclwrld, 0, by6803, by6803, by6803_state, by6803, ROT0, "Bally","Escape from the Lost World", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1987, esclwrldg, esclwrld, by6803, by6803, by6803_state, by6803, ROT0, "Bally","Escape from the Lost World (German)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1987, dungdrag, 0, by6803, by6803, by6803_state, by6803, ROT0, "Bally","Dungeons & Dragons", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1988, black100, 0, by6803, by6803, by6803_state, by6803, ROT0, "Bally","Blackwater 100", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1988, black100s, black100, by6803, by6803, by6803_state, by6803, ROT0, "Bally","Blackwater 100 (Single Ball Play)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1988, trucksp3, 0, by6803, by6803, by6803_state, by6803, ROT0, "Bally","Truck Stop (P-3)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1988, trucksp2, trucksp3, by6803, by6803, by6803_state, by6803, ROT0, "Bally","Truck Stop (P-2)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1989, atlantip, 0, by6803, by6803, by6803_state, by6803, ROT0, "Bally","Atlantis", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1985, eballchp, 0, by6803, by6803, by6803_state, by6803, ROT0, "Bally", "Eight Ball Champ", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1985, beatclck, 0, by6803, by6803, by6803_state, by6803, ROT0, "Bally", "Beat the Clock", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1986, motrdome, 0, by6803, by6803, by6803_state, by6803, ROT0, "Bally", "MotorDome", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1986, motrdomeg, motrdome, by6803, by6803, by6803_state, by6803, ROT0, "Bally", "MotorDome (German)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1986, ladyluck, 0, by6803, by6803, by6803_state, by6803, ROT0, "Bally", "Lady Luck", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1986, strngsci, 0, by6803, by6803, by6803_state, by6803, ROT0, "Bally", "Strange Science", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1986, strngscg, strngsci, by6803, by6803, by6803_state, by6803, ROT0, "Bally", "Strange Science (German)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1986, specforc, 0, by6803, by6803, by6803_state, by6803, ROT0, "Bally", "Special Force", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1986, blackblt, 0, by6803, by6803, by6803_state, by6803, ROT0, "Bally", "Black Belt", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1986, blackblt2, blackblt, by6803, by6803, by6803_state, by6803, ROT0, "Bally", "Black Belt (Squawk and Talk)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1987, cityslck, 0, by6803, by6803, by6803_state, by6803, ROT0, "Bally", "City Slicker", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1987, hardbody, 0, by6803, by6803, by6803_state, by6803, ROT0, "Bally", "Hardbody", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1987, hardbodyg, hardbody, by6803, by6803, by6803_state, by6803, ROT0, "Bally", "Hardbody (German)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1987, prtyanim, 0, by6803, by6803, by6803_state, by6803, ROT0, "Bally", "Party Animal", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1987, prtyanimg, prtyanim, by6803, by6803, by6803_state, by6803, ROT0, "Bally", "Party Animal (German)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1987, hvymetap, 0, by6803, by6803, by6803_state, by6803, ROT0, "Bally", "Heavy Metal Meltdown", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1987, esclwrld, 0, by6803, by6803, by6803_state, by6803, ROT0, "Bally", "Escape from the Lost World", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1987, esclwrldg, esclwrld, by6803, by6803, by6803_state, by6803, ROT0, "Bally", "Escape from the Lost World (German)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1987, dungdrag, 0, by6803, by6803, by6803_state, by6803, ROT0, "Bally", "Dungeons & Dragons", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1988, black100, 0, by6803, by6803, by6803_state, by6803, ROT0, "Bally", "Blackwater 100", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1988, black100s, black100, by6803, by6803, by6803_state, by6803, ROT0, "Bally", "Blackwater 100 (Single Ball Play)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1988, trucksp3, 0, by6803, by6803, by6803_state, by6803, ROT0, "Bally", "Truck Stop (P-3)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1988, trucksp2, trucksp3, by6803, by6803, by6803_state, by6803, ROT0, "Bally", "Truck Stop (P-2)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1989, atlantip, 0, by6803, by6803, by6803_state, by6803, ROT0, "Bally", "Atlantis", MACHINE_IS_SKELETON_MECHANICAL) diff --git a/src/mame/drivers/by68701.cpp b/src/mame/drivers/by68701.cpp index 4dbcec6d9b6..797b98188a0 100644 --- a/src/mame/drivers/by68701.cpp +++ b/src/mame/drivers/by68701.cpp @@ -43,7 +43,7 @@ DRIVER_INIT_MEMBER(by68701_state,by68701) { } -static MACHINE_CONFIG_START( by68701, by68701_state ) +static MACHINE_CONFIG_START( by68701 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6803, 3579545/4) MCFG_CPU_PROGRAM_MAP(by68701_map) @@ -132,7 +132,7 @@ ROM_END GAME(1981, flashgdnp1, flashgdn, by68701, by68701, by68701_state, by68701, ROT0, "Bally", "Flash Gordon (prototype rev. 1)", MACHINE_IS_SKELETON_MECHANICAL) GAME(1981, flashgdnp2, flashgdn, by68701, by68701, by68701_state, by68701, ROT0, "Bally", "Flash Gordon (prototype rev. 2)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1981, eballdlxp1, eballdlx, by68701, by68701, by68701_state, by68701, ROT0, "Bally", "Eight Ball Deluxe (prototype rev. 1)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1981, eballdlxp2, eballdlx, by68701, by68701, by68701_state, by68701, ROT0, "Bally", "Eight Ball Deluxe (prototype rev. 2)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1981, eballdlxp3, eballdlx, by68701, by68701, by68701_state, by68701, ROT0, "Bally", "Eight Ball Deluxe (prototype rev. 3)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1981, eballdlxp4, eballdlx, by68701, by68701, by68701_state, by68701, ROT0, "Bally", "Eight Ball Deluxe (prototype rev. 4)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1981, eballdlxp1, eballdlx, by68701, by68701, by68701_state, by68701, ROT0, "Bally", "Eight Ball Deluxe (prototype rev. 1)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1981, eballdlxp2, eballdlx, by68701, by68701, by68701_state, by68701, ROT0, "Bally", "Eight Ball Deluxe (prototype rev. 2)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1981, eballdlxp3, eballdlx, by68701, by68701, by68701_state, by68701, ROT0, "Bally", "Eight Ball Deluxe (prototype rev. 3)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1981, eballdlxp4, eballdlx, by68701, by68701, by68701_state, by68701, ROT0, "Bally", "Eight Ball Deluxe (prototype rev. 4)", MACHINE_IS_SKELETON_MECHANICAL) diff --git a/src/mame/drivers/byvid.cpp b/src/mame/drivers/byvid.cpp index 8a76cd98297..76828c7e2eb 100644 --- a/src/mame/drivers/byvid.cpp +++ b/src/mame/drivers/byvid.cpp @@ -740,7 +740,7 @@ uint32_t by133_state::screen_update_granny(screen_device &screen, bitmap_rgb32 & return 0; } -static MACHINE_CONFIG_START( babypac, by133_state ) +static MACHINE_CONFIG_START( babypac ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6800, XTAL_3_579545MHz/4) // no xtal, just 2 chips MCFG_CPU_PROGRAM_MAP(main_map) @@ -817,8 +817,8 @@ static MACHINE_CONFIG_DERIVED( granny, babypac ) MCFG_VIDEO_SET_SCREEN("screen") MCFG_SCREEN_ADD( "screen", RASTER ) - MCFG_SCREEN_RAW_PARAMS( XTAL_10_738635MHz / 2, TMS9928A_TOTAL_HORZ, TMS9928A_HORZ_DISPLAY_START-12, TMS9928A_HORZ_DISPLAY_START + 256 + 12, \ - TMS9928A_TOTAL_VERT_NTSC, TMS9928A_VERT_DISPLAY_START_NTSC - 12, TMS9928A_VERT_DISPLAY_START_NTSC + 192 + 12 ) + MCFG_SCREEN_RAW_PARAMS( XTAL_10_738635MHz / 2, tms9928a_device::TOTAL_HORZ, tms9928a_device::HORZ_DISPLAY_START-12, tms9928a_device::HORZ_DISPLAY_START + 256 + 12, \ + tms9928a_device::TOTAL_VERT_NTSC, tms9928a_device::VERT_DISPLAY_START_NTSC - 12, tms9928a_device::VERT_DISPLAY_START_NTSC + 192 + 12 ) MCFG_SCREEN_UPDATE_DRIVER(by133_state, screen_update_granny) MACHINE_CONFIG_END @@ -877,6 +877,6 @@ ROM_START(granny) ROM_END -GAME( 1982, babypac, 0, babypac, babypac, driver_device, 0, ROT90, "Dave Nutting Associates / Bally", "Baby Pac-Man (set 1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -GAME( 1982, babypac2, babypac, babypac, babypac, driver_device, 0, ROT90, "Dave Nutting Associates / Bally", "Baby Pac-Man (set 2)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -GAME( 1984, granny, 0, granny, granny, driver_device, 0, ROT0, "Bally", "Granny and the Gators", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +GAME( 1982, babypac, 0, babypac, babypac, by133_state, 0, ROT90, "Dave Nutting Associates / Bally", "Baby Pac-Man (set 1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +GAME( 1982, babypac2, babypac, babypac, babypac, by133_state, 0, ROT90, "Dave Nutting Associates / Bally", "Baby Pac-Man (set 2)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +GAME( 1984, granny, 0, granny, granny, by133_state, 0, ROT0, "Bally", "Granny and the Gators", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/bzone.cpp b/src/mame/drivers/bzone.cpp index 3ec19892346..2923fdf4182 100644 --- a/src/mame/drivers/bzone.cpp +++ b/src/mame/drivers/bzone.cpp @@ -535,7 +535,7 @@ INPUT_PORTS_END * *************************************/ -static MACHINE_CONFIG_START( bzone_base, bzone_state ) +static MACHINE_CONFIG_START( bzone_base ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, BZONE_MASTER_CLOCK / 8) @@ -881,9 +881,9 @@ DRIVER_INIT_MEMBER(bzone_state,bradley) * *************************************/ -GAMEL(1980, bzone, 0, bzone, bzone, driver_device, 0, ROT0, "Atari", "Battle Zone (rev 2)", MACHINE_SUPPORTS_SAVE, layout_bzone ) -GAMEL(1980, bzonea, bzone, bzone, bzone, driver_device, 0, ROT0, "Atari", "Battle Zone (rev 1)", MACHINE_SUPPORTS_SAVE, layout_bzone ) -GAMEL(1980, bzonec, bzone, bzone, bzone, driver_device, 0, ROT0, "Atari", "Battle Zone (cocktail)", MACHINE_SUPPORTS_SAVE|MACHINE_NO_COCKTAIL, layout_bzone ) -GAME( 1980, bradley, 0, bzone, bradley, bzone_state, bradley, ROT0, "Atari", "Bradley Trainer", MACHINE_SUPPORTS_SAVE ) -GAMEL(1980, redbaron, 0, redbaron, redbaron, driver_device, 0, ROT0, "Atari", "Red Baron (Revised Hardware)", MACHINE_SUPPORTS_SAVE, layout_redbaron ) -GAMEL(1980, redbarona, redbaron, redbaron, redbaron, driver_device, 0, ROT0, "Atari", "Red Baron", MACHINE_SUPPORTS_SAVE, layout_redbaron ) +GAMEL(1980, bzone, 0, bzone, bzone, bzone_state, 0, ROT0, "Atari", "Battle Zone (rev 2)", MACHINE_SUPPORTS_SAVE, layout_bzone ) +GAMEL(1980, bzonea, bzone, bzone, bzone, bzone_state, 0, ROT0, "Atari", "Battle Zone (rev 1)", MACHINE_SUPPORTS_SAVE, layout_bzone ) +GAMEL(1980, bzonec, bzone, bzone, bzone, bzone_state, 0, ROT0, "Atari", "Battle Zone (cocktail)", MACHINE_SUPPORTS_SAVE|MACHINE_NO_COCKTAIL, layout_bzone ) +GAME( 1980, bradley, 0, bzone, bradley, bzone_state, bradley, ROT0, "Atari", "Bradley Trainer", MACHINE_SUPPORTS_SAVE ) +GAMEL(1980, redbaron, 0, redbaron, redbaron, bzone_state, 0, ROT0, "Atari", "Red Baron (Revised Hardware)", MACHINE_SUPPORTS_SAVE, layout_redbaron ) +GAMEL(1980, redbarona, redbaron, redbaron, redbaron, bzone_state, 0, ROT0, "Atari", "Red Baron", MACHINE_SUPPORTS_SAVE, layout_redbaron ) diff --git a/src/mame/drivers/c10.cpp b/src/mame/drivers/c10.cpp index 647fed9995d..7128a632e2f 100644 --- a/src/mame/drivers/c10.cpp +++ b/src/mame/drivers/c10.cpp @@ -149,7 +149,7 @@ static GFXDECODE_START( c10 ) GFXDECODE_END -static MACHINE_CONFIG_START( c10, c10_state ) +static MACHINE_CONFIG_START( c10 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_16MHz / 4) MCFG_CPU_PROGRAM_MAP(c10_mem) @@ -184,5 +184,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1982, c10, 0, 0, c10, c10, c10_state, c10, "Cromemco", "C-10", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +COMP( 1982, c10, 0, 0, c10, c10, c10_state, c10, "Cromemco", "C-10", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) diff --git a/src/mame/drivers/c128.cpp b/src/mame/drivers/c128.cpp index 94476a3f0a0..b61047dfef3 100644 --- a/src/mame/drivers/c128.cpp +++ b/src/mame/drivers/c128.cpp @@ -1672,7 +1672,7 @@ void c128_state::machine_reset() // MACHINE_CONFIG( ntsc ) //------------------------------------------------- -static MACHINE_CONFIG_START( ntsc, c128_state ) +static MACHINE_CONFIG_START( ntsc ) // basic hardware MCFG_CPU_ADD(Z80A_TAG, Z80, XTAL_14_31818MHz*2/3.5/2) MCFG_CPU_PROGRAM_MAP(z80_mem) @@ -1843,7 +1843,7 @@ MACHINE_CONFIG_END // MACHINE_CONFIG( pal ) //------------------------------------------------- -static MACHINE_CONFIG_START( pal, c128_state ) +static MACHINE_CONFIG_START( pal ) // basic hardware MCFG_CPU_ADD(Z80A_TAG, Z80, XTAL_17_734472MHz*2/4.5/2) MCFG_CPU_PROGRAM_MAP(z80_mem) @@ -2177,22 +2177,22 @@ ROM_END // SYSTEM DRIVERS //************************************************************************** -// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS -COMP( 1985, c128, 0, 0, c128, c128, driver_device, 0, "Commodore Business Machines", "Commodore 128 (NTSC)", MACHINE_SUPPORTS_SAVE ) -COMP( 1985, c128p, 0, 0, c128pal, c128, driver_device, 0, "Commodore Business Machines", "Commodore 128 (PAL)", MACHINE_SUPPORTS_SAVE ) -COMP( 1985, c128_de, c128, 0, c128pal, c128_de, driver_device, 0, "Commodore Business Machines", "Commodore 128 (Germany)", MACHINE_SUPPORTS_SAVE ) -//COMP( 1985, c128_fr, c128, 0, c128pal, c128_fr, driver_device, 0, "Commodore Business Machines", "Commodore 128 (France)", MACHINE_SUPPORTS_SAVE ) -//COMP( 1985, c128_no, c128, 0, c128pal, c128_it, driver_device, 0, "Commodore Business Machines", "Commodore 128 (Norway)", MACHINE_SUPPORTS_SAVE ) -COMP( 1985, c128_se, c128, 0, c128pal, c128_se, driver_device, 0, "Commodore Business Machines", "Commodore 128 (Sweden/Finland)", MACHINE_SUPPORTS_SAVE ) -COMP( 1986, c128d, c128, 0, c128, c128, driver_device, 0, "Commodore Business Machines", "Commodore 128D (NTSC, prototype)", MACHINE_SUPPORTS_SAVE ) -COMP( 1986, c128dp, c128, 0, c128pal, c128, driver_device, 0, "Commodore Business Machines", "Commodore 128D (PAL)", MACHINE_SUPPORTS_SAVE ) - -COMP( 1986, c128cr, c128, 0, c128, c128, driver_device, 0, "Commodore Business Machines", "Commodore 128CR (NTSC, prototype)", MACHINE_SUPPORTS_SAVE ) - -COMP( 1987, c128dcr, c128, 0, c128dcr, c128, driver_device, 0, "Commodore Business Machines", "Commodore 128DCR (NTSC)", MACHINE_SUPPORTS_SAVE ) -COMP( 1987, c128dcrp, c128, 0, c128dcrp, c128, driver_device, 0, "Commodore Business Machines", "Commodore 128DCR (PAL)", MACHINE_SUPPORTS_SAVE ) -COMP( 1987, c128dcr_de, c128, 0, c128dcrp, c128_de, driver_device, 0, "Commodore Business Machines", "Commodore 128DCR (Germany)", MACHINE_SUPPORTS_SAVE ) -//COMP( 1986, c128dcr_it, c128, 0, c128dcrp, c128_it, driver_device, 0,"Commodore Business Machines", "Commodore 128DCR (Italy)", MACHINE_SUPPORTS_SAVE ) -COMP( 1987, c128dcr_se, c128, 0, c128dcrp, c128_se, driver_device, 0, "Commodore Business Machines", "Commodore 128DCR (Sweden/Finland)", MACHINE_SUPPORTS_SAVE ) - -COMP( 1986, c128d81, c128, 0, c128d81, c128, driver_device, 0, "Commodore Business Machines", "Commodore 128D/81 (NTSC, prototype)", MACHINE_SUPPORTS_SAVE ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE COMPANY FULLNAME FLAGS +COMP( 1985, c128, 0, 0, c128, c128, c128_state, 0, "Commodore Business Machines", "Commodore 128 (NTSC)", MACHINE_SUPPORTS_SAVE ) +COMP( 1985, c128p, 0, 0, c128pal, c128, c128_state, 0, "Commodore Business Machines", "Commodore 128 (PAL)", MACHINE_SUPPORTS_SAVE ) +COMP( 1985, c128_de, c128, 0, c128pal, c128_de, c128_state, 0, "Commodore Business Machines", "Commodore 128 (Germany)", MACHINE_SUPPORTS_SAVE ) +//COMP( 1985, c128_fr, c128, 0, c128pal, c128_fr, c128_state, 0, "Commodore Business Machines", "Commodore 128 (France)", MACHINE_SUPPORTS_SAVE ) +//COMP( 1985, c128_no, c128, 0, c128pal, c128_it, c128_state, 0, "Commodore Business Machines", "Commodore 128 (Norway)", MACHINE_SUPPORTS_SAVE ) +COMP( 1985, c128_se, c128, 0, c128pal, c128_se, c128_state, 0, "Commodore Business Machines", "Commodore 128 (Sweden/Finland)", MACHINE_SUPPORTS_SAVE ) +COMP( 1986, c128d, c128, 0, c128, c128, c128_state, 0, "Commodore Business Machines", "Commodore 128D (NTSC, prototype)", MACHINE_SUPPORTS_SAVE ) +COMP( 1986, c128dp, c128, 0, c128pal, c128, c128_state, 0, "Commodore Business Machines", "Commodore 128D (PAL)", MACHINE_SUPPORTS_SAVE ) + +COMP( 1986, c128cr, c128, 0, c128, c128, c128_state, 0, "Commodore Business Machines", "Commodore 128CR (NTSC, prototype)", MACHINE_SUPPORTS_SAVE ) + +COMP( 1987, c128dcr, c128, 0, c128dcr, c128, c128_state, 0, "Commodore Business Machines", "Commodore 128DCR (NTSC)", MACHINE_SUPPORTS_SAVE ) +COMP( 1987, c128dcrp, c128, 0, c128dcrp, c128, c128_state, 0, "Commodore Business Machines", "Commodore 128DCR (PAL)", MACHINE_SUPPORTS_SAVE ) +COMP( 1987, c128dcr_de, c128, 0, c128dcrp, c128_de, c128_state, 0, "Commodore Business Machines", "Commodore 128DCR (Germany)", MACHINE_SUPPORTS_SAVE ) +//COMP( 1986, c128dcr_it, c128, 0, c128dcrp, c128_it, c128_state, 0,"Commodore Business Machines", "Commodore 128DCR (Italy)", MACHINE_SUPPORTS_SAVE ) +COMP( 1987, c128dcr_se, c128, 0, c128dcrp, c128_se, c128_state, 0, "Commodore Business Machines", "Commodore 128DCR (Sweden/Finland)", MACHINE_SUPPORTS_SAVE ) + +COMP( 1986, c128d81, c128, 0, c128d81, c128, c128_state, 0, "Commodore Business Machines", "Commodore 128D/81 (NTSC, prototype)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/c64.cpp b/src/mame/drivers/c64.cpp index 616a95b1563..6f4dfc5955b 100644 --- a/src/mame/drivers/c64.cpp +++ b/src/mame/drivers/c64.cpp @@ -1311,7 +1311,7 @@ void c64_state::machine_reset() // MACHINE_CONFIG( ntsc ) //------------------------------------------------- -static MACHINE_CONFIG_START( ntsc, c64_state ) +static MACHINE_CONFIG_START( ntsc ) // basic hardware MCFG_CPU_ADD(M6510_TAG, M6510, XTAL_14_31818MHz/14) MCFG_CPU_PROGRAM_MAP(c64_mem) @@ -1424,7 +1424,7 @@ MACHINE_CONFIG_END // MACHINE_CONFIG( ntsc_sx ) //------------------------------------------------- -static MACHINE_CONFIG_START( ntsc_sx, sx64_state ) +static MACHINE_CONFIG_START( ntsc_sx ) MCFG_FRAGMENT_ADD(ntsc) // basic hardware @@ -1442,7 +1442,7 @@ MACHINE_CONFIG_END // MACHINE_CONFIG( ntsc_dx ) //------------------------------------------------- -static MACHINE_CONFIG_START( ntsc_dx, sx64_state ) +static MACHINE_CONFIG_START( ntsc_dx ) MCFG_FRAGMENT_ADD(ntsc_sx) // devices @@ -1455,7 +1455,7 @@ MACHINE_CONFIG_END // MACHINE_CONFIG( ntsc_c ) //------------------------------------------------- -static MACHINE_CONFIG_DERIVED_CLASS( ntsc_c, ntsc, c64c_state ) +static MACHINE_CONFIG_DERIVED( ntsc_c, ntsc ) MCFG_SOUND_REPLACE(MOS6581_TAG, MOS8580, XTAL_14_31818MHz/14) MCFG_MOS6581_POTX_CALLBACK(READ8(c64_state, sid_potx_r)) MCFG_MOS6581_POTY_CALLBACK(READ8(c64_state, sid_poty_r)) @@ -1467,7 +1467,7 @@ MACHINE_CONFIG_END // MACHINE_CONFIG( pal ) //------------------------------------------------- -static MACHINE_CONFIG_START( pal, c64_state ) +static MACHINE_CONFIG_START( pal ) // basic hardware MCFG_CPU_ADD(M6510_TAG, M6510, XTAL_17_734472MHz/18) MCFG_CPU_PROGRAM_MAP(c64_mem) @@ -1572,7 +1572,7 @@ MACHINE_CONFIG_END // MACHINE_CONFIG( pal_sx ) //------------------------------------------------- -static MACHINE_CONFIG_START( pal_sx, sx64_state ) +static MACHINE_CONFIG_START( pal_sx ) MCFG_FRAGMENT_ADD(pal) // basic hardware @@ -1590,7 +1590,7 @@ MACHINE_CONFIG_END // MACHINE_CONFIG( pal_c ) //------------------------------------------------- -static MACHINE_CONFIG_DERIVED_CLASS( pal_c, pal, c64c_state ) +static MACHINE_CONFIG_DERIVED( pal_c, pal ) MCFG_SOUND_REPLACE(MOS6581_TAG, MOS8580, XTAL_17_734472MHz/18) MCFG_MOS6581_POTX_CALLBACK(READ8(c64_state, sid_potx_r)) MCFG_MOS6581_POTY_CALLBACK(READ8(c64_state, sid_poty_r)) @@ -1602,7 +1602,7 @@ MACHINE_CONFIG_END // MACHINE_CONFIG( pal_gs ) //------------------------------------------------- -static MACHINE_CONFIG_START( pal_gs, c64gs_state ) +static MACHINE_CONFIG_START( pal_gs ) // basic hardware MCFG_CPU_ADD(M6510_TAG, M6510, XTAL_17_734472MHz/18) MCFG_CPU_PROGRAM_MAP(c64_mem) @@ -2020,21 +2020,21 @@ ROM_END // SYSTEM DRIVERS //************************************************************************** -// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS -COMP( 1982, c64, 0, 0, ntsc, c64, driver_device, 0, "Commodore Business Machines", "Commodore 64 (NTSC)", MACHINE_SUPPORTS_SAVE ) -COMP( 1982, c64_jp, c64, 0, ntsc, c64, driver_device, 0, "Commodore Business Machines", "Commodore 64 (Japan)", MACHINE_SUPPORTS_SAVE ) -COMP( 1982, c64p, c64, 0, pal, c64, driver_device, 0, "Commodore Business Machines", "Commodore 64 (PAL)", MACHINE_SUPPORTS_SAVE ) -COMP( 1982, c64_se, c64, 0, pal, c64sw, driver_device, 0, "Commodore Business Machines", "Commodore 64 / VIC-64S (Sweden/Finland)", MACHINE_SUPPORTS_SAVE ) -COMP( 1983, pet64, c64, 0, pet64, c64, driver_device, 0, "Commodore Business Machines", "PET 64 / CBM 4064 (NTSC)", MACHINE_SUPPORTS_SAVE | MACHINE_WRONG_COLORS ) -COMP( 1983, edu64, c64, 0, pet64, c64, driver_device, 0, "Commodore Business Machines", "Educator 64 (NTSC)", MACHINE_SUPPORTS_SAVE | MACHINE_WRONG_COLORS ) -COMP( 1984, sx64, c64, 0, ntsc_sx, c64, driver_device, 0, "Commodore Business Machines", "SX-64 / Executive 64 (NTSC)", MACHINE_SUPPORTS_SAVE ) -COMP( 1984, sx64p, c64, 0, pal_sx, c64, driver_device, 0, "Commodore Business Machines", "SX-64 / Executive 64 (PAL)", MACHINE_SUPPORTS_SAVE ) -COMP( 1984, vip64, c64, 0, pal_sx, c64sw, driver_device, 0, "Commodore Business Machines", "VIP-64 (Sweden/Finland)", MACHINE_SUPPORTS_SAVE ) -COMP( 1984, dx64, c64, 0, ntsc_dx, c64, driver_device, 0, "Commodore Business Machines", "DX-64 (NTSC)", MACHINE_SUPPORTS_SAVE ) -COMP( 1984, tesa6240,c64, 0, pal_sx, c64, driver_device, 0, "Tesa Etikett", "Etikettendrucker 6240", MACHINE_SUPPORTS_SAVE ) -COMP( 1986, c64c, c64, 0, ntsc_c, c64, driver_device, 0, "Commodore Business Machines", "Commodore 64C (NTSC)", MACHINE_SUPPORTS_SAVE ) -COMP( 1986, c64cp, c64, 0, pal_c, c64, driver_device, 0, "Commodore Business Machines", "Commodore 64C (PAL)", MACHINE_SUPPORTS_SAVE ) -COMP( 1988, c64c_es, c64, 0, pal_c, c64sw, driver_device, 0, "Commodore Business Machines", "Commodore 64C (Spain)", MACHINE_SUPPORTS_SAVE ) -COMP( 1986, c64c_se, c64, 0, pal_c, c64sw, driver_device, 0, "Commodore Business Machines", "Commodore 64C (Sweden/Finland)", MACHINE_SUPPORTS_SAVE ) -COMP( 1986, c64g, c64, 0, pal_c, c64, driver_device, 0, "Commodore Business Machines", "Commodore 64G (PAL)", MACHINE_SUPPORTS_SAVE ) -CONS( 1990, c64gs, c64, 0, pal_gs, c64gs, driver_device, 0, "Commodore Business Machines", "Commodore 64 Games System (PAL)", MACHINE_SUPPORTS_SAVE ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1982, c64, 0, 0, ntsc, c64, c64_state, 0, "Commodore Business Machines", "Commodore 64 (NTSC)", MACHINE_SUPPORTS_SAVE ) +COMP( 1982, c64_jp, c64, 0, ntsc, c64, c64_state, 0, "Commodore Business Machines", "Commodore 64 (Japan)", MACHINE_SUPPORTS_SAVE ) +COMP( 1982, c64p, c64, 0, pal, c64, c64_state, 0, "Commodore Business Machines", "Commodore 64 (PAL)", MACHINE_SUPPORTS_SAVE ) +COMP( 1982, c64_se, c64, 0, pal, c64sw, c64_state, 0, "Commodore Business Machines", "Commodore 64 / VIC-64S (Sweden/Finland)", MACHINE_SUPPORTS_SAVE ) +COMP( 1983, pet64, c64, 0, pet64, c64, c64_state, 0, "Commodore Business Machines", "PET 64 / CBM 4064 (NTSC)", MACHINE_SUPPORTS_SAVE | MACHINE_WRONG_COLORS ) +COMP( 1983, edu64, c64, 0, pet64, c64, c64_state, 0, "Commodore Business Machines", "Educator 64 (NTSC)", MACHINE_SUPPORTS_SAVE | MACHINE_WRONG_COLORS ) +COMP( 1984, sx64, c64, 0, ntsc_sx, c64, sx64_state, 0, "Commodore Business Machines", "SX-64 / Executive 64 (NTSC)", MACHINE_SUPPORTS_SAVE ) +COMP( 1984, sx64p, c64, 0, pal_sx, c64, sx64_state, 0, "Commodore Business Machines", "SX-64 / Executive 64 (PAL)", MACHINE_SUPPORTS_SAVE ) +COMP( 1984, vip64, c64, 0, pal_sx, c64sw, sx64_state, 0, "Commodore Business Machines", "VIP-64 (Sweden/Finland)", MACHINE_SUPPORTS_SAVE ) +COMP( 1984, dx64, c64, 0, ntsc_dx, c64, sx64_state, 0, "Commodore Business Machines", "DX-64 (NTSC)", MACHINE_SUPPORTS_SAVE ) +COMP( 1984, tesa6240,c64, 0, pal_sx, c64, sx64_state, 0, "Tesa Etikett", "Etikettendrucker 6240", MACHINE_SUPPORTS_SAVE ) +COMP( 1986, c64c, c64, 0, ntsc_c, c64, c64c_state, 0, "Commodore Business Machines", "Commodore 64C (NTSC)", MACHINE_SUPPORTS_SAVE ) +COMP( 1986, c64cp, c64, 0, pal_c, c64, c64c_state, 0, "Commodore Business Machines", "Commodore 64C (PAL)", MACHINE_SUPPORTS_SAVE ) +COMP( 1988, c64c_es, c64, 0, pal_c, c64sw, c64c_state, 0, "Commodore Business Machines", "Commodore 64C (Spain)", MACHINE_SUPPORTS_SAVE ) +COMP( 1986, c64c_se, c64, 0, pal_c, c64sw, c64c_state, 0, "Commodore Business Machines", "Commodore 64C (Sweden/Finland)", MACHINE_SUPPORTS_SAVE ) +COMP( 1986, c64g, c64, 0, pal_c, c64, c64c_state, 0, "Commodore Business Machines", "Commodore 64G (PAL)", MACHINE_SUPPORTS_SAVE ) +CONS( 1990, c64gs, c64, 0, pal_gs, c64gs, c64gs_state, 0, "Commodore Business Machines", "Commodore 64 Games System (PAL)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/c64dtv.cpp b/src/mame/drivers/c64dtv.cpp index bb05a15effa..c2d0cf6a62b 100644 --- a/src/mame/drivers/c64dtv.cpp +++ b/src/mame/drivers/c64dtv.cpp @@ -37,7 +37,7 @@ INPUT_PORTS_END // MACHINE DRIVERS //************************************************************************** -static MACHINE_CONFIG_START( c64dtv, c64dtv_state ) +static MACHINE_CONFIG_START( c64dtv ) // video hardware MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_UPDATE_DRIVER(c64dtv_state, screen_update) @@ -66,4 +66,4 @@ ROM_END // GAME DRIVERS //************************************************************************** -CONS( 2005, c64dtv, 0, 0, c64dtv, c64dtv, driver_device, 0, "The Toy:Lobster Company", "Commodore 64 Direct-to-TV (Version 2 050711) (PAL)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +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/c65.cpp b/src/mame/drivers/c65.cpp index e7b8c1f192e..82e6ce4bb5e 100644 --- a/src/mame/drivers/c65.cpp +++ b/src/mame/drivers/c65.cpp @@ -582,7 +582,7 @@ WRITE_LINE_MEMBER(c65_state::cia0_irq) // c65_irq(state || m_vicirq); } -static MACHINE_CONFIG_START( c65, c65_state ) +static MACHINE_CONFIG_START( c65 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",M4510,MAIN_CLOCK) diff --git a/src/mame/drivers/c80.cpp b/src/mame/drivers/c80.cpp index 2c0f3163f43..953b98852e0 100644 --- a/src/mame/drivers/c80.cpp +++ b/src/mame/drivers/c80.cpp @@ -251,7 +251,7 @@ void c80_state::machine_start() /* Machine Driver */ -static MACHINE_CONFIG_START( c80, c80_state ) +static MACHINE_CONFIG_START( c80 ) /* basic machine hardware */ MCFG_CPU_ADD(Z80_TAG, Z80, 2500000) /* U880D */ MCFG_CPU_PROGRAM_MAP(c80_mem) @@ -294,5 +294,5 @@ ROM_END /* System Drivers */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1986, c80, 0, 0, c80, c80, driver_device, 0, "Joachim Czepa", "C-80", MACHINE_SUPPORTS_SAVE ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ +COMP( 1986, c80, 0, 0, c80, c80, c80_state, 0, "Joachim Czepa", "C-80", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/c900.cpp b/src/mame/drivers/c900.cpp index cce2db85f8e..4ded9072ca8 100644 --- a/src/mame/drivers/c900.cpp +++ b/src/mame/drivers/c900.cpp @@ -39,7 +39,8 @@ public: DECLARE_READ16_MEMBER(port1e_r); DECLARE_READ16_MEMBER(key_r); DECLARE_READ16_MEMBER(stat_r); - DECLARE_WRITE8_MEMBER(kbd_put); + void kbd_put(u8 data); + private: uint8_t m_term_data; required_device m_maincpu; @@ -83,7 +84,7 @@ READ16_MEMBER( c900_state::stat_r ) return (m_term_data) ? 6 : 4; } -WRITE8_MEMBER( c900_state::kbd_put ) +void c900_state::kbd_put(u8 data) { m_term_data = data; } @@ -106,7 +107,7 @@ static GFXDECODE_START( c900 ) GFXDECODE_ENTRY( "chargen", 0x0000, c900_charlayout, 0, 1 ) GFXDECODE_END -static MACHINE_CONFIG_START( c900, c900_state ) +static MACHINE_CONFIG_START( c900 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z8001, XTAL_12MHz / 2) MCFG_CPU_PROGRAM_MAP(c900_mem) @@ -114,7 +115,7 @@ static MACHINE_CONFIG_START( c900, c900_state ) MCFG_CPU_IO_MAP(c900_io) MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0) - MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(c900_state, kbd_put)) + MCFG_GENERIC_TERMINAL_KEYBOARD_CB(PUT(c900_state, kbd_put)) MCFG_GFXDECODE_ADD("gfxdecode", "palette", c900) MCFG_PALETTE_ADD_MONOCHROME("palette") MACHINE_CONFIG_END @@ -131,5 +132,5 @@ ROM_START( c900 ) ROM_LOAD( "380217-01.u2", 0x0000, 0x1000, CRC(64cb4171) SHA1(e60d796170addfd27e2c33090f9c512c7e3f99f5) ) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1985, c900, 0, 0, c900, c900, driver_device, 0, "Commodore", "Commodore 900", MACHINE_IS_SKELETON ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +COMP( 1985, c900, 0, 0, c900, c900, c900_state, 0, "Commodore", "Commodore 900", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/cabal.cpp b/src/mame/drivers/cabal.cpp index c902f0c13de..9daf83d4b0c 100644 --- a/src/mame/drivers/cabal.cpp +++ b/src/mame/drivers/cabal.cpp @@ -502,7 +502,7 @@ static GFXDECODE_START( cabal ) GFXDECODE_END -static MACHINE_CONFIG_START( cabal, cabal_state ) +static MACHINE_CONFIG_START( cabal ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_20MHz/2) /* verified on pcb */ @@ -560,7 +560,7 @@ MACHINE_CONFIG_END /* the bootleg has different sound hardware (2 extra Z80s for ADPCM playback) */ -static MACHINE_CONFIG_START( cabalbl, cabal_state ) +static MACHINE_CONFIG_START( cabalbl ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_20MHz/2) /* verified on pcb */ @@ -611,11 +611,11 @@ static MACHINE_CONFIG_START( cabalbl, cabal_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS,"mono", 0.80) MCFG_SOUND_ADD("msm1", MSM5205, XTAL_12MHz/32) /* verified on pcb (no resonator) */ - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_SEX_4B) + MCFG_MSM5205_PRESCALER_SELECTOR(SEX_4B) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60) MCFG_SOUND_ADD("msm2", MSM5205, XTAL_12MHz/32) /* verified on pcb (no resonator)*/ - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_SEX_4B) + MCFG_MSM5205_PRESCALER_SELECTOR(SEX_4B) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60) MACHINE_CONFIG_END @@ -921,11 +921,11 @@ DRIVER_INIT_MEMBER(cabal_state,cabal) } -GAME( 1988, cabal, 0, cabal, cabalj, cabal_state, cabal, ROT0, "TAD Corporation", "Cabal (World, Joystick)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, cabala, cabal, cabal, cabalj, cabal_state, cabal, ROT0, "TAD Corporation (Alpha Trading license)", "Cabal (Korea?, Joystick)", MACHINE_SUPPORTS_SAVE ) // korea? -GAME( 1988, cabalbl, cabal, cabalbl, cabalbl,driver_device, 0, ROT0, "bootleg (Red Corporation)", "Cabal (bootleg of Joystick version, set 1, alternate sound hardware)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1988, cabalbl2,cabal, cabalbl2,cabalj, cabal_state, cabal, ROT0, "bootleg", "Cabal (bootleg of Joystick version, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, cabal, 0, cabal, cabalj, cabal_state, cabal, ROT0, "TAD Corporation", "Cabal (World, Joystick)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, cabala, cabal, cabal, cabalj, cabal_state, cabal, ROT0, "TAD Corporation (Alpha Trading license)", "Cabal (Korea?, Joystick)", MACHINE_SUPPORTS_SAVE ) // korea? +GAME( 1988, cabalbl, cabal, cabalbl, cabalbl, cabal_state, 0, ROT0, "bootleg (Red Corporation)", "Cabal (bootleg of Joystick version, set 1, alternate sound hardware)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1988, cabalbl2,cabal, cabalbl2,cabalj, cabal_state, cabal, ROT0, "bootleg", "Cabal (bootleg of Joystick version, set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, cabalus, cabal, cabal, cabalt, cabal_state, cabal, ROT0, "TAD Corporation (Fabtek license)", "Cabal (US set 1, Trackball)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, cabalus2,cabal, cabal, cabalt, cabal_state, cabal, ROT0, "TAD Corporation (Fabtek license)", "Cabal (US set 2, Trackball)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, cabaluk, cabal, cabal, cabalt, cabal_state, cabal, ROT0, "TAD Corporation (Electrocoin license)", "Cabal (UK, Trackball)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, cabalus, cabal, cabal, cabalt, cabal_state, cabal, ROT0, "TAD Corporation (Fabtek license)", "Cabal (US set 1, Trackball)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, cabalus2,cabal, cabal, cabalt, cabal_state, cabal, ROT0, "TAD Corporation (Fabtek license)", "Cabal (US set 2, Trackball)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, cabaluk, cabal, cabal, cabalt, cabal_state, cabal, ROT0, "TAD Corporation (Electrocoin license)", "Cabal (UK, Trackball)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/cabaret.cpp b/src/mame/drivers/cabaret.cpp index cc4412f52e2..98c8438ab32 100644 --- a/src/mame/drivers/cabaret.cpp +++ b/src/mame/drivers/cabaret.cpp @@ -341,7 +341,7 @@ INTERRUPT_GEN_MEMBER(cabaret_state::cabaret_interrupt) device.execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE); } -static MACHINE_CONFIG_START( cabaret, cabaret_state ) +static MACHINE_CONFIG_START( cabaret ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z180, XTAL_12MHz / 2) MCFG_CPU_PROGRAM_MAP(cabaret_map) diff --git a/src/mame/drivers/calchase.cpp b/src/mame/drivers/calchase.cpp index 9f557291980..bed7d0ddce3 100644 --- a/src/mame/drivers/calchase.cpp +++ b/src/mame/drivers/calchase.cpp @@ -639,7 +639,7 @@ void calchase_state::machine_reset() membank("bios_ext")->set_base(memregion("bios")->base() + 0); } -static MACHINE_CONFIG_START( calchase, calchase_state ) +static MACHINE_CONFIG_START( calchase ) MCFG_CPU_ADD("maincpu", PENTIUM, 133000000) // Cyrix 686MX-PR200 CPU MCFG_CPU_PROGRAM_MAP(calchase_map) MCFG_CPU_IO_MAP(calchase_io) @@ -671,7 +671,7 @@ static MACHINE_CONFIG_START( calchase, calchase_state ) MCFG_SOUND_ROUTE_EX(0, "rdac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "rdac", -1.0, DAC_VREF_NEG_INPUT) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( hostinv, calchase_state ) +static MACHINE_CONFIG_START( hostinv ) MCFG_CPU_ADD("maincpu", PENTIUM, 133000000) // Cyrix 686MX-PR200 CPU MCFG_CPU_PROGRAM_MAP(calchase_map) MCFG_CPU_IO_MAP(calchase_io) @@ -773,6 +773,6 @@ ROM_START( eggsplc ) DISK_IMAGE_READONLY( "eggsplc", 0, SHA1(fa38dd6b0d25cde644f68cf639768f137c607eb5) ) ROM_END -GAME( 1998, hostinv, 0, hostinv, calchase, calchase_state, hostinv, ROT0, "The Game Room", "Host Invaders", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1999, calchase, 0, calchase, calchase, calchase_state, calchase, ROT0, "The Game Room", "California Chase", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1998, hostinv, 0, hostinv, calchase, calchase_state, hostinv, ROT0, "The Game Room", "Host Invaders", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1999, calchase, 0, calchase, calchase, calchase_state, calchase, ROT0, "The Game Room", "California Chase", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) GAME( 2002, eggsplc, 0, calchase, calchase, calchase_state, hostinv, ROT0, "The Game Room", "Eggs Playing Chicken", 0 ) diff --git a/src/mame/drivers/calomega.cpp b/src/mame/drivers/calomega.cpp index e8b2d46fa88..0ebf5ce8290 100644 --- a/src/mame/drivers/calomega.cpp +++ b/src/mame/drivers/calomega.cpp @@ -2568,7 +2568,7 @@ WRITE_LINE_MEMBER(calomega_state::write_acia_clock) * Machine Drivers * *************************************************/ -static MACHINE_CONFIG_START( sys903, calomega_state ) +static MACHINE_CONFIG_START( sys903 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, CPU_CLOCK) /* confirmed */ MCFG_CPU_PROGRAM_MAP(sys903_map) diff --git a/src/mame/drivers/calorie.cpp b/src/mame/drivers/calorie.cpp index 0bae419c172..faaa1bdc8e9 100644 --- a/src/mame/drivers/calorie.cpp +++ b/src/mame/drivers/calorie.cpp @@ -452,7 +452,7 @@ void calorie_state::machine_reset() } -static MACHINE_CONFIG_START( calorie, calorie_state ) +static MACHINE_CONFIG_START( calorie ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80,4000000) /* 4 MHz */ @@ -588,5 +588,5 @@ DRIVER_INIT_MEMBER(calorie_state,calorieb) *************************************/ /* Note: the bootleg is identical to the original once decrypted */ -GAME( 1986, calorie, 0, caloriee,calorie, driver_device, 0, ROT0, "Sega", "Calorie Kun vs Moguranian", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, calorie, 0, caloriee,calorie, calorie_state, 0, ROT0, "Sega", "Calorie Kun vs Moguranian", MACHINE_SUPPORTS_SAVE ) GAME( 1986, calorieb, calorie, calorie, calorie, calorie_state, calorieb, ROT0, "bootleg", "Calorie Kun vs Moguranian (bootleg)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/camplynx.cpp b/src/mame/drivers/camplynx.cpp index 1c4977bd8e8..5a7a584e23f 100644 --- a/src/mame/drivers/camplynx.cpp +++ b/src/mame/drivers/camplynx.cpp @@ -179,7 +179,7 @@ private: //required_device<> m_printer; required_device m_crtc; required_device m_dac; - optional_device m_fdc; + optional_device m_fdc; optional_device m_floppy0; optional_device m_floppy1; }; @@ -458,15 +458,15 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( lynx96k_io, AS_IO, 8, camplynx_state ) AM_IMPORT_FROM(lynx48k_io) - AM_RANGE(0x0050,0x0053) AM_MIRROR(0xff80) AM_DEVREAD("fdc", fd1793_t, read) - AM_RANGE(0x0054,0x0057) AM_MIRROR(0xff80) AM_DEVWRITE("fdc", fd1793_t, write) + AM_RANGE(0x0050,0x0053) AM_MIRROR(0xff80) AM_DEVREAD("fdc", fd1793_device, read) + AM_RANGE(0x0054,0x0057) AM_MIRROR(0xff80) AM_DEVWRITE("fdc", fd1793_device, write) AM_RANGE(0x0058,0x0058) AM_MIRROR(0xff80) AM_WRITE(port58_w) ADDRESS_MAP_END static ADDRESS_MAP_START( lynx128k_io, AS_IO, 8, camplynx_state ) ADDRESS_MAP_UNMAP_HIGH - AM_RANGE(0x0050,0x0053) AM_MIRROR(0xff80) AM_DEVREAD("fdc", fd1793_t, read) - AM_RANGE(0x0054,0x0057) AM_MIRROR(0xff80) AM_DEVWRITE("fdc", fd1793_t, write) + AM_RANGE(0x0050,0x0053) AM_MIRROR(0xff80) AM_DEVREAD("fdc", fd1793_device, read) + AM_RANGE(0x0054,0x0057) AM_MIRROR(0xff80) AM_DEVWRITE("fdc", fd1793_device, write) AM_RANGE(0x0058,0x0058) AM_MIRROR(0xff80) AM_WRITE(port58_w) // AM_RANGE(0x007a,0x007b) AM_MIRROR(0xff80) AM_READ(lynx128k_joysticks_r) // AM_RANGE(0x007c,0x007c) AM_MIRROR(0xff80) AM_READ(lynx128k_printer_r) @@ -810,7 +810,7 @@ static MACHINE_CONFIG_FRAGMENT( lynx_disk ) MCFG_FLOPPY_DRIVE_SOUND(true) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( lynx48k, camplynx_state ) +static MACHINE_CONFIG_START( lynx48k ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_24MHz / 6) @@ -850,7 +850,7 @@ static MACHINE_CONFIG_DERIVED( lynx96k, lynx48k ) MCFG_FRAGMENT_ADD(lynx_disk) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( lynx128k, camplynx_state ) +static MACHINE_CONFIG_START( lynx128k ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_24MHz / 4) @@ -942,7 +942,7 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1983, lynx48k, 0, 0, lynx48k, lynx48k, camplynx_state, lynx48k, "Camputers", "Lynx 48k", 0 ) -COMP( 1983, lynx96k, lynx48k, 0, lynx96k, lynx48k, camplynx_state, lynx48k, "Camputers", "Lynx 96k", 0 ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ +COMP( 1983, lynx48k, 0, 0, lynx48k, lynx48k, camplynx_state, lynx48k, "Camputers", "Lynx 48k", 0 ) +COMP( 1983, lynx96k, lynx48k, 0, lynx96k, lynx48k, camplynx_state, lynx48k, "Camputers", "Lynx 96k", 0 ) COMP( 1983, lynx128k, lynx48k, 0, lynx128k, lynx48k, camplynx_state, lynx128k, "Camputers", "Lynx 128k", 0 ) diff --git a/src/mame/drivers/canon_s80.cpp b/src/mame/drivers/canon_s80.cpp index 307c8d69dd0..3038a5b630a 100644 --- a/src/mame/drivers/canon_s80.cpp +++ b/src/mame/drivers/canon_s80.cpp @@ -24,8 +24,8 @@ class canons80_state : public driver_device { public: canons80_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) - { } + : driver_device(mconfig, type, tag) + { } DECLARE_DRIVER_INIT(canons80); }; @@ -36,14 +36,15 @@ static ADDRESS_MAP_START(canons80_map, AS_PROGRAM, 8, canons80_state ) AM_RANGE(0x8000, 0xffff) AM_ROM ADDRESS_MAP_END -static MACHINE_CONFIG_START( canons80, canons80_state ) +static MACHINE_CONFIG_START( canons80 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", HD6301, 5000000) /* hd63a01xop 5 MHz guessed: TODO: check on PCB */ MCFG_CPU_PROGRAM_MAP(canons80_map) MACHINE_CONFIG_END DRIVER_INIT_MEMBER(canons80_state, canons80) -{} +{ +} ROM_START( canons80 ) ROM_REGION( 0x10000, "maincpu", 0 ) /* 6800 code */ diff --git a/src/mame/drivers/canyon.cpp b/src/mame/drivers/canyon.cpp index 3af43dc4181..ae1ba4e12da 100644 --- a/src/mame/drivers/canyon.cpp +++ b/src/mame/drivers/canyon.cpp @@ -238,7 +238,7 @@ GFXDECODE_END * *************************************/ -static MACHINE_CONFIG_START( canyon, canyon_state ) +static MACHINE_CONFIG_START( canyon ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, XTAL_12_096MHz / 16) @@ -322,5 +322,5 @@ ROM_END * *************************************/ -GAME( 1977, canyon, 0, canyon, canyon, driver_device, 0, ROT0, "Atari", "Canyon Bomber", MACHINE_SUPPORTS_SAVE ) -GAME( 1977, canyonp, canyon, canyon, canyon, driver_device, 0, ROT0, "Atari", "Canyon Bomber (prototype)", MACHINE_SUPPORTS_SAVE ) +GAME( 1977, canyon, 0, canyon, canyon, canyon_state, 0, ROT0, "Atari", "Canyon Bomber", MACHINE_SUPPORTS_SAVE ) +GAME( 1977, canyonp, canyon, canyon, canyon, canyon_state, 0, ROT0, "Atari", "Canyon Bomber (prototype)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/capbowl.cpp b/src/mame/drivers/capbowl.cpp index b9874a45ad4..ed82dc96aff 100644 --- a/src/mame/drivers/capbowl.cpp +++ b/src/mame/drivers/capbowl.cpp @@ -313,7 +313,7 @@ void capbowl_state::machine_reset() } -static MACHINE_CONFIG_START( capbowl, capbowl_state ) +static MACHINE_CONFIG_START( capbowl ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809E, MASTER_CLOCK) @@ -482,4 +482,4 @@ GAME( 1988, capbowl2, capbowl, capbowl, capbowl, capbowl_state, capbowl, ROT27 GAME( 1988, capbowl3, capbowl, capbowl, capbowl, capbowl_state, capbowl, ROT270, "Incredible Technologies / Capcom", "Capcom Bowling (set 3)", MACHINE_SUPPORTS_SAVE ) GAME( 1988, capbowl4, capbowl, capbowl, capbowl, capbowl_state, capbowl, ROT270, "Incredible Technologies / Capcom", "Capcom Bowling (set 4)", MACHINE_SUPPORTS_SAVE ) GAME( 1989, clbowl, capbowl, capbowl, capbowl, capbowl_state, capbowl, ROT270, "Incredible Technologies / Capcom", "Coors Light Bowling", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, bowlrama, 0, bowlrama, capbowl, driver_device, 0, ROT270, "P&P Marketing", "Bowl-O-Rama Rev 1.0", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, bowlrama, 0, bowlrama, capbowl, capbowl_state, 0, ROT270, "P&P Marketing", "Bowl-O-Rama Rev 1.0", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/capcom.cpp b/src/mame/drivers/capcom.cpp index 182a071247b..1baa5e309c8 100644 --- a/src/mame/drivers/capcom.cpp +++ b/src/mame/drivers/capcom.cpp @@ -43,7 +43,7 @@ DRIVER_INIT_MEMBER(capcom_state,capcom) { } -static MACHINE_CONFIG_START( capcom, capcom_state ) +static MACHINE_CONFIG_START( capcom ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 16670000) // M68306 MCFG_CPU_PROGRAM_MAP(capcom_map) diff --git a/src/mame/drivers/capr1.cpp b/src/mame/drivers/capr1.cpp index d8c614cb99c..71fac9f798e 100644 --- a/src/mame/drivers/capr1.cpp +++ b/src/mame/drivers/capr1.cpp @@ -102,7 +102,7 @@ INPUT_PORTS_END ***************************************************************************/ -static MACHINE_CONFIG_START( cspin2, capr1_state ) +static MACHINE_CONFIG_START( cspin2 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 4000000) // clock frequency unknown @@ -123,7 +123,7 @@ static MACHINE_CONFIG_START( cspin2, capr1_state ) MCFG_SOUND_ROUTE(2, "mono", 0.15) MCFG_SOUND_ROUTE(3, "mono", 0.40) - MCFG_OKIM6295_ADD("oki", 1056000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki", 1056000, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) MACHINE_CONFIG_END @@ -156,4 +156,4 @@ ROM_START( cspin2 ) ROM_END -GAME (1996, cspin2, 0, cspin2, cspin2, driver_device, 0, ROT0, "Taito", "Capriccio Spin 2", MACHINE_IS_SKELETON_MECHANICAL ) +GAME (1996, cspin2, 0, cspin2, cspin2, capr1_state, 0, ROT0, "Taito", "Capriccio Spin 2", MACHINE_IS_SKELETON_MECHANICAL ) diff --git a/src/mame/drivers/caprcyc.cpp b/src/mame/drivers/caprcyc.cpp index 9ac04280b94..4ced7c3d5fa 100644 --- a/src/mame/drivers/caprcyc.cpp +++ b/src/mame/drivers/caprcyc.cpp @@ -60,7 +60,7 @@ INPUT_PORTS_END ***************************************************************************/ -static MACHINE_CONFIG_START( caprcyc, caprcyc_state ) +static MACHINE_CONFIG_START( caprcyc ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", VR4300BE, 100000000) // cpu configuration is unknown @@ -92,4 +92,4 @@ ROM_START( caprcyc ) ROM_END -GAME (1999, caprcyc, 0, caprcyc, caprcyc, driver_device, 0, ROT0, "Taito", "Capriccio Cyclone", MACHINE_IS_SKELETON_MECHANICAL ) +GAME (1999, caprcyc, 0, caprcyc, caprcyc, caprcyc_state, 0, ROT0, "Taito", "Capriccio Cyclone", MACHINE_IS_SKELETON_MECHANICAL ) diff --git a/src/mame/drivers/cardline.cpp b/src/mame/drivers/cardline.cpp index 776f1a4da99..3c74d31b663 100644 --- a/src/mame/drivers/cardline.cpp +++ b/src/mame/drivers/cardline.cpp @@ -313,7 +313,7 @@ PALETTE_INIT_MEMBER(cardline_state, cardline) } } -static MACHINE_CONFIG_START( cardline, cardline_state ) +static MACHINE_CONFIG_START( cardline ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I80C32, MASTER_CLOCK) @@ -349,7 +349,7 @@ static MACHINE_CONFIG_START( cardline, cardline_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_OKIM6295_ADD("oki", 1056000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki", 1056000, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) @@ -377,4 +377,4 @@ ROM_START( cardline ) ROM_END -GAME( 199?, cardline, 0, cardline, cardline, driver_device, 0, ROT0, "Veltmeijer", "Card Line" , MACHINE_SUPPORTS_SAVE) +GAME( 199?, cardline, 0, cardline, cardline, cardline_state, 0, ROT0, "Veltmeijer", "Card Line" , MACHINE_SUPPORTS_SAVE) diff --git a/src/mame/drivers/carjmbre.cpp b/src/mame/drivers/carjmbre.cpp index 30442716e7b..b7f2629fe5e 100644 --- a/src/mame/drivers/carjmbre.cpp +++ b/src/mame/drivers/carjmbre.cpp @@ -345,7 +345,7 @@ static GFXDECODE_START( carjmbre ) GFXDECODE_END -static MACHINE_CONFIG_START( carjmbre, carjmbre_state ) +static MACHINE_CONFIG_START( carjmbre ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_18_432MHz/6) @@ -419,4 +419,4 @@ ROM_START( carjmbre ) ROM_END -GAME( 1983, carjmbre, 0, carjmbre, carjmbre, driver_device, 0, ROT90, "Omori Electric Co., Ltd.", "Car Jamboree", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1983, carjmbre, 0, carjmbre, carjmbre, carjmbre_state, 0, ROT90, "Omori Electric Co., Ltd.", "Car Jamboree", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_GRAPHICS ) diff --git a/src/mame/drivers/carpolo.cpp b/src/mame/drivers/carpolo.cpp index 6a6c22b420c..93967f1b272 100644 --- a/src/mame/drivers/carpolo.cpp +++ b/src/mame/drivers/carpolo.cpp @@ -231,7 +231,7 @@ GFXDECODE_END * *************************************/ -static MACHINE_CONFIG_START( carpolo, carpolo_state ) +static MACHINE_CONFIG_START( carpolo ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, XTAL_11_289MHz/12) /* 940.75 kHz */ diff --git a/src/mame/drivers/carrera.cpp b/src/mame/drivers/carrera.cpp index 73b05f2e635..4fae5e1dfae 100644 --- a/src/mame/drivers/carrera.cpp +++ b/src/mame/drivers/carrera.cpp @@ -308,7 +308,7 @@ PALETTE_INIT_MEMBER(carrera_state, carrera) } -static MACHINE_CONFIG_START( carrera, carrera_state ) +static MACHINE_CONFIG_START( carrera ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, MASTER_CLOCK / 6) MCFG_CPU_PROGRAM_MAP(carrera_map) @@ -359,4 +359,4 @@ ROM_START( carrera ) ROM_END -GAME( 19??, carrera, 0, carrera, carrera, driver_device,0, ROT0, "BS Electronics", "Carrera (Version 6.7)", 0 ) +GAME( 19??, carrera, 0, carrera, carrera, carrera_state, 0, ROT0, "BS Electronics", "Carrera (Version 6.7)", 0 ) diff --git a/src/mame/drivers/casloopy.cpp b/src/mame/drivers/casloopy.cpp index 46de2b0e821..f7e57cc1d2b 100644 --- a/src/mame/drivers/casloopy.cpp +++ b/src/mame/drivers/casloopy.cpp @@ -502,7 +502,7 @@ DEVICE_IMAGE_LOAD_MEMBER( casloopy_state, loopy_cart ) return image_init_result::PASS; } -static MACHINE_CONFIG_START( casloopy, casloopy_state ) +static MACHINE_CONFIG_START( casloopy ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",SH2A,8000000) diff --git a/src/mame/drivers/castle.cpp b/src/mame/drivers/castle.cpp index 056273db2b1..0ec73496165 100644 --- a/src/mame/drivers/castle.cpp +++ b/src/mame/drivers/castle.cpp @@ -76,7 +76,7 @@ static INPUT_PORTS_START( castrev ) INPUT_PORTS_END -static MACHINE_CONFIG_START( castle_V1rvE, castle_state ) +static MACHINE_CONFIG_START( castle_V1rvE ) MCFG_CPU_ADD("maincpu", HD6303Y, 1000000) MCFG_CPU_PROGRAM_MAP(V1rvE_mastermap) @@ -91,7 +91,7 @@ static ADDRESS_MAP_START( V2rvA_map, AS_PROGRAM, 8, castle_state ) ADDRESS_MAP_END -static MACHINE_CONFIG_START( castle_V2rvA, castle_state ) +static MACHINE_CONFIG_START( castle_V2rvA ) MCFG_CPU_ADD("maincpu", HD6303Y, 1000000) MCFG_CPU_PROGRAM_MAP(V2rvA_map) MACHINE_CONFIG_END @@ -113,7 +113,7 @@ ROM_END // 4.00 JACKPOT. VERSION 1 (for revision E CPU) Written by and copyright of David John Powell - 25th February 1987 -GAME( 1987, castrev, 0, castle_V1rvE, castrev, driver_device, 0, ROT0, "Castle","Revolution (Castle) (MACH2000 V1rvE)",MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 1987, castrev, 0, castle_V1rvE, castrev, castle_state, 0, ROT0, "Castle","Revolution (Castle) (MACH2000 V1rvE)", MACHINE_IS_SKELETON_MECHANICAL ) // I'm *guessing* this is on MACH2000 V2rvA hardware, it contains strings saying 'MACH 2000 test' and is designed for a single CPU. -GAME( 198?, castfpt, 0, castle_V2rvA, castrev, driver_device, 0, ROT0, "Castle","Fortune Pot (Castle) (MACH2000 V2rvA)",MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 198?, castfpt, 0, castle_V2rvA, castrev, castle_state, 0, ROT0, "Castle","Fortune Pot (Castle) (MACH2000 V2rvA)", MACHINE_IS_SKELETON_MECHANICAL ) diff --git a/src/mame/drivers/caswin.cpp b/src/mame/drivers/caswin.cpp index ef2a120315c..10eff0cf4b5 100644 --- a/src/mame/drivers/caswin.cpp +++ b/src/mame/drivers/caswin.cpp @@ -321,7 +321,7 @@ PALETTE_INIT_MEMBER(caswin_state, caswin) } -static MACHINE_CONFIG_START( vvillage, caswin_state ) +static MACHINE_CONFIG_START( vvillage ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80,4000000) /* ? MHz */ MCFG_CPU_PROGRAM_MAP(vvillage_mem) @@ -416,7 +416,7 @@ ROM_START( rcasinoo ) ROM_LOAD( "prom1.e8", 0x0020, 0x0020, CRC(2b5c7826) SHA1(c0de392aebd6982e5846c12aeb2e871358be60d7) ) /* MB7051 */ ROM_END -GAME( 1984, rcasino, 0, vvillage, vvillage, driver_device, 0, ROT270, "Dyna Electronics", "Royal Casino (D-2608208A1-2)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1984, rcasino1, rcasino, vvillage, vvillage, driver_device, 0, ROT270, "Dyna Electronics", "Royal Casino (D-2608208A1-1, Larger Board)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1984, rcasinoo, rcasino, vvillage, vvillage, driver_device, 0, ROT270, "Dyna Electronics", "Royal Casino (D-2608208A1-1, Smaller Board)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1985, caswin, rcasino, vvillage, vvillage, driver_device, 0, ROT270, "Aristocrat", "Casino Winner", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1984, rcasino, 0, vvillage, vvillage, caswin_state, 0, ROT270, "Dyna Electronics", "Royal Casino (D-2608208A1-2)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1984, rcasino1, rcasino, vvillage, vvillage, caswin_state, 0, ROT270, "Dyna Electronics", "Royal Casino (D-2608208A1-1, Larger Board)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1984, rcasinoo, rcasino, vvillage, vvillage, caswin_state, 0, ROT270, "Dyna Electronics", "Royal Casino (D-2608208A1-1, Smaller Board)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1985, caswin, rcasino, vvillage, vvillage, caswin_state, 0, ROT270, "Aristocrat", "Casino Winner", MACHINE_IMPERFECT_GRAPHICS ) diff --git a/src/mame/drivers/cat.cpp b/src/mame/drivers/cat.cpp index 75d7aab846b..7bb3cb0c79a 100644 --- a/src/mame/drivers/cat.cpp +++ b/src/mame/drivers/cat.cpp @@ -1047,7 +1047,7 @@ WRITE_LINE_MEMBER(cat_state::prn_ack_ff) // switch the flipflop state on the ris #endif } -static MACHINE_CONFIG_START( cat, cat_state ) +static MACHINE_CONFIG_START( cat ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",M68000, XTAL_19_968MHz/4) @@ -1171,4 +1171,4 @@ ROM_END /* Driver */ /* YEAR NAME PARENT COMPAT MACHINE INPUT DEVICE INIT COMPANY FULLNAME FLAGS */ -COMP( 1987, cat, 0, 0, cat, cat, driver_device, 0, "Canon", "Cat", MACHINE_NOT_WORKING) +COMP( 1987, cat, 0, 0, cat, cat, cat_state, 0, "Canon", "Cat", MACHINE_NOT_WORKING) diff --git a/src/mame/drivers/cave.cpp b/src/mame/drivers/cave.cpp index 20e4cb57ca2..e184b0edcab 100644 --- a/src/mame/drivers/cave.cpp +++ b/src/mame/drivers/cave.cpp @@ -2014,7 +2014,7 @@ MACHINE_RESET_MEMBER(cave_state,cave) Dangun Feveron ***************************************************************************/ -static MACHINE_CONFIG_START( dfeveron, cave_state ) +static MACHINE_CONFIG_START( dfeveron ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz) @@ -2055,7 +2055,7 @@ MACHINE_CONFIG_END ***************************************************************************/ -static MACHINE_CONFIG_START( ddonpach, cave_state ) +static MACHINE_CONFIG_START( ddonpach ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz) @@ -2095,7 +2095,7 @@ MACHINE_CONFIG_END Donpachi ***************************************************************************/ -static MACHINE_CONFIG_START( donpachi, cave_state ) +static MACHINE_CONFIG_START( donpachi ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz) @@ -2125,10 +2125,10 @@ static MACHINE_CONFIG_START( donpachi, cave_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki1", XTAL_4_224MHz/4, OKIM6295_PIN7_HIGH) // pin 7 not verified + MCFG_OKIM6295_ADD("oki1", XTAL_4_224MHz/4, PIN7_HIGH) // pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.60) - MCFG_OKIM6295_ADD("oki2", XTAL_4_224MHz/2, OKIM6295_PIN7_HIGH) // pin 7 not verified + MCFG_OKIM6295_ADD("oki2", XTAL_4_224MHz/2, PIN7_HIGH) // pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MCFG_DEVICE_ADD("nmk112", NMK112, 0) @@ -2142,7 +2142,7 @@ MACHINE_CONFIG_END Esprade ***************************************************************************/ -static MACHINE_CONFIG_START( esprade, cave_state ) +static MACHINE_CONFIG_START( esprade ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz) @@ -2182,7 +2182,7 @@ MACHINE_CONFIG_END Gaia Crusaders ***************************************************************************/ -static MACHINE_CONFIG_START( gaia, cave_state ) +static MACHINE_CONFIG_START( gaia ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz) @@ -2223,7 +2223,7 @@ MACHINE_CONFIG_END Guwange ***************************************************************************/ -static MACHINE_CONFIG_START( guwange, cave_state ) +static MACHINE_CONFIG_START( guwange ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz) @@ -2262,7 +2262,7 @@ MACHINE_CONFIG_END Hotdog Storm ***************************************************************************/ -static MACHINE_CONFIG_START( hotdogst, cave_state ) +static MACHINE_CONFIG_START( hotdogst ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_32MHz/2) @@ -2305,7 +2305,7 @@ static MACHINE_CONFIG_START( hotdogst, cave_state ) MCFG_SOUND_ROUTE(2, "mono", 0.20) MCFG_SOUND_ROUTE(3, "mono", 0.80) - MCFG_OKIM6295_ADD("oki", XTAL_32MHz/16, OKIM6295_PIN7_HIGH) // pin 7 not verified + MCFG_OKIM6295_ADD("oki", XTAL_32MHz/16, PIN7_HIGH) // pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MCFG_DEVICE_ADDRESS_MAP(AS_0, oki_map) MACHINE_CONFIG_END @@ -2315,7 +2315,7 @@ MACHINE_CONFIG_END Koro Koro Quest ***************************************************************************/ -static MACHINE_CONFIG_START( korokoro, cave_state ) +static MACHINE_CONFIG_START( korokoro ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz) @@ -2362,7 +2362,7 @@ MACHINE_CONFIG_END Mazinger Z ***************************************************************************/ -static MACHINE_CONFIG_START( mazinger, cave_state ) +static MACHINE_CONFIG_START( mazinger ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz) @@ -2408,7 +2408,7 @@ static MACHINE_CONFIG_START( mazinger, cave_state ) MCFG_SOUND_ROUTE(2, "mono", 0.20) MCFG_SOUND_ROUTE(3, "mono", 0.60) - MCFG_OKIM6295_ADD("oki", XTAL_1_056MHz, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki", XTAL_1_056MHz, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 2.0) MCFG_DEVICE_ADDRESS_MAP(AS_0, oki_map) MACHINE_CONFIG_END @@ -2418,7 +2418,7 @@ MACHINE_CONFIG_END Metamoqester ***************************************************************************/ -static MACHINE_CONFIG_START( metmqstr, cave_state ) +static MACHINE_CONFIG_START( metmqstr ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_32MHz / 2) @@ -2461,11 +2461,11 @@ static MACHINE_CONFIG_START( metmqstr, cave_state ) MCFG_YM2151_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.6) - MCFG_OKIM6295_ADD("oki1", XTAL_32MHz / 16 , OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki1", XTAL_32MHz / 16 , PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) MCFG_DEVICE_ADDRESS_MAP(AS_0, oki_map) - MCFG_OKIM6295_ADD("oki2", XTAL_32MHz / 16 , OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki2", XTAL_32MHz / 16 , PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) MCFG_DEVICE_ADDRESS_MAP(AS_0, oki2_map) MACHINE_CONFIG_END @@ -2475,7 +2475,7 @@ MACHINE_CONFIG_END Pac-Slot ***************************************************************************/ -static MACHINE_CONFIG_START( pacslot, cave_state ) +static MACHINE_CONFIG_START( pacslot ) MCFG_NVRAM_ADD_0FILL("nvram") @@ -2512,12 +2512,12 @@ static MACHINE_CONFIG_START( pacslot, cave_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_OKIM6295_ADD("oki1", XTAL_28MHz / 28, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki1", XTAL_28MHz / 28, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) // oki2 chip is present but its rom socket is unpopulated - MCFG_OKIM6295_ADD("oki2", XTAL_28MHz / 28, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki2", XTAL_28MHz / 28, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) MACHINE_CONFIG_END @@ -2532,7 +2532,7 @@ TIMER_DEVICE_CALLBACK_MEMBER( cave_state::timer_lev2_cb ) m_maincpu->set_input_line(M68K_IRQ_2, HOLD_LINE); // ppsatan: read touch screens } -static MACHINE_CONFIG_START( ppsatan, cave_state ) +static MACHINE_CONFIG_START( ppsatan ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz) @@ -2583,7 +2583,7 @@ static MACHINE_CONFIG_START( ppsatan, cave_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_OKIM6295_ADD("oki", XTAL_1_056MHz, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki", XTAL_1_056MHz, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 2.0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 2.0) MACHINE_CONFIG_END @@ -2595,7 +2595,7 @@ MACHINE_CONFIG_END /* X1 = 12 MHz, X2 = 28 MHz, X3 = 16 MHz. OKI: / 165 mode A ; / 132 mode B */ -static MACHINE_CONFIG_START( pwrinst2, cave_state ) +static MACHINE_CONFIG_START( pwrinst2 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz) /* 16 MHz */ @@ -2638,10 +2638,10 @@ static MACHINE_CONFIG_START( pwrinst2, cave_state ) MCFG_SOUND_ROUTE(2, "mono", 0.40) MCFG_SOUND_ROUTE(3, "mono", 0.80) - MCFG_OKIM6295_ADD("oki1", XTAL_3MHz , OKIM6295_PIN7_LOW) + MCFG_OKIM6295_ADD("oki1", XTAL_3MHz , PIN7_LOW) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) - MCFG_OKIM6295_ADD("oki2", XTAL_3MHz , OKIM6295_PIN7_LOW) + MCFG_OKIM6295_ADD("oki2", XTAL_3MHz , PIN7_LOW) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) MCFG_DEVICE_ADD("nmk112", NMK112, 0) @@ -2666,7 +2666,7 @@ MACHINE_RESET_MEMBER(cave_state,sailormn) MACHINE_RESET_CALL_MEMBER(cave); } -static MACHINE_CONFIG_START( sailormn, cave_state ) +static MACHINE_CONFIG_START( sailormn ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz) @@ -2711,11 +2711,11 @@ static MACHINE_CONFIG_START( sailormn, cave_state ) MCFG_YM2151_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30) - MCFG_OKIM6295_ADD("oki1", 2112000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki1", 2112000, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MCFG_DEVICE_ADDRESS_MAP(AS_0, oki_map) - MCFG_OKIM6295_ADD("oki2", 2112000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki2", 2112000, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MCFG_DEVICE_ADDRESS_MAP(AS_0, oki2_map) @@ -2727,7 +2727,7 @@ MACHINE_CONFIG_END Tekken Card World ***************************************************************************/ -static MACHINE_CONFIG_START( tekkencw, cave_state ) +static MACHINE_CONFIG_START( tekkencw ) MCFG_NVRAM_ADD_0FILL("nvram") @@ -2764,7 +2764,7 @@ static MACHINE_CONFIG_START( tekkencw, cave_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_OKIM6295_ADD("oki1", XTAL_28MHz / 28, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki1", XTAL_28MHz / 28, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) @@ -2776,7 +2776,7 @@ MACHINE_CONFIG_END Tobikose! Jumpman ***************************************************************************/ -static MACHINE_CONFIG_START( tjumpman, cave_state ) +static MACHINE_CONFIG_START( tjumpman ) MCFG_NVRAM_ADD_0FILL("nvram") @@ -2813,7 +2813,7 @@ static MACHINE_CONFIG_START( tjumpman, cave_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_OKIM6295_ADD("oki1", XTAL_28MHz / 28, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki1", XTAL_28MHz / 28, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) @@ -2825,7 +2825,7 @@ MACHINE_CONFIG_END Uo Poko ***************************************************************************/ -static MACHINE_CONFIG_START( uopoko, cave_state ) +static MACHINE_CONFIG_START( uopoko ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz) @@ -5204,86 +5204,86 @@ DRIVER_INIT_MEMBER(cave_state,korokoro) ***************************************************************************/ -GAME( 1994, pwrinst2, 0, pwrinst2, metmqstr, cave_state, pwrinst2, ROT0, "Atlus", "Power Instinct 2 (US, Ver. 94/04/08)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, pwrinst2j, pwrinst2, pwrinst2, metmqstr, cave_state, pwrinst2j,ROT0, "Atlus", "Gouketsuji Ichizoku 2 (Japan, Ver. 94/04/08)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, pwrinst2, 0, pwrinst2, metmqstr, cave_state, pwrinst2, ROT0, "Atlus", "Power Instinct 2 (US, Ver. 94/04/08)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, pwrinst2j, pwrinst2, pwrinst2, metmqstr, cave_state, pwrinst2j, ROT0, "Atlus", "Gouketsuji Ichizoku 2 (Japan, Ver. 94/04/08)", MACHINE_SUPPORTS_SAVE ) // The EEPROM determines the region, program roms are the same between sets -GAME( 1994, mazinger, 0, mazinger, cave, cave_state, mazinger, ROT90, "Banpresto / Dynamic Pl. Toei Animation", "Mazinger Z (World)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, mazingerj, mazinger, mazinger, cave, cave_state, mazinger, ROT90, "Banpresto / Dynamic Pl. Toei Animation", "Mazinger Z (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, mazinger, 0, mazinger, cave, cave_state, mazinger, ROT90, "Banpresto / Dynamic Pl. Toei Animation", "Mazinger Z (World)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, mazingerj, mazinger, mazinger, cave, cave_state, mazinger, ROT90, "Banpresto / Dynamic Pl. Toei Animation", "Mazinger Z (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, donpachi, 0, donpachi, cave, cave_state, donpachi, ROT270, "Cave (Atlus license)", "DonPachi (US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, donpachij, donpachi, donpachi, cave, cave_state, donpachi, ROT270, "Cave (Atlus license)", "DonPachi (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, donpachikr, donpachi, donpachi, cave, cave_state, donpachi, ROT270, "Cave (Atlus license)", "DonPachi (Korea)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, donpachihk, donpachi, donpachi, cave, cave_state, donpachi, ROT270, "Cave (Atlus license)", "DonPachi (Hong Kong)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, donpachi, 0, donpachi, cave, cave_state, donpachi, ROT270, "Cave (Atlus license)", "DonPachi (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, donpachij, donpachi, donpachi, cave, cave_state, donpachi, ROT270, "Cave (Atlus license)", "DonPachi (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, donpachikr, donpachi, donpachi, cave, cave_state, donpachi, ROT270, "Cave (Atlus license)", "DonPachi (Korea)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, donpachihk, donpachi, donpachi, cave, cave_state, donpachi, ROT270, "Cave (Atlus license)", "DonPachi (Hong Kong)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, metmqstr, 0, metmqstr, metmqstr, cave_state, metmqstr, ROT0, "Banpresto / Pandorabox", "Metamoqester (International)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, nmaster, metmqstr, metmqstr, metmqstr, cave_state, metmqstr, ROT0, "Banpresto / Pandorabox", "Oni - The Ninja Master (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, metmqstr, 0, metmqstr, metmqstr, cave_state, metmqstr, ROT0, "Banpresto / Pandorabox", "Metamoqester (International)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, nmaster, metmqstr, metmqstr, metmqstr, cave_state, metmqstr, ROT0, "Banpresto / Pandorabox", "Oni - The Ninja Master (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, plegends, 0, pwrinst2, metmqstr, cave_state, pwrinst2j,ROT0, "Atlus", "Gogetsuji Legends (US, Ver. 95/06/20)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, plegendsj, plegends, pwrinst2, metmqstr, cave_state, pwrinst2j,ROT0, "Atlus", "Gouketsuji Gaiden - Saikyou Densetsu (Japan, Ver. 95/06/20)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, plegends, 0, pwrinst2, metmqstr, cave_state, pwrinst2j, ROT0, "Atlus", "Gogetsuji Legends (US, Ver. 95/06/20)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, plegendsj, plegends, pwrinst2, metmqstr, cave_state, pwrinst2j, ROT0, "Atlus", "Gouketsuji Gaiden - Saikyou Densetsu (Japan, Ver. 95/06/20)", MACHINE_SUPPORTS_SAVE ) // The EEPROM determines the region, program roms are the same between sets -GAME( 1995, sailormn, 0, sailormn, cave, cave_state, sailormn, ROT0, "Gazelle (Banpresto license)", "Pretty Soldier Sailor Moon (Ver. 95/03/22B, Europe)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, sailormnu, sailormn, sailormn, cave, cave_state, sailormn, ROT0, "Gazelle (Banpresto license)", "Pretty Soldier Sailor Moon (Ver. 95/03/22B, USA)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, sailormnj, sailormn, sailormn, cave, cave_state, sailormn, ROT0, "Gazelle (Banpresto license)", "Pretty Soldier Sailor Moon (Ver. 95/03/22B, Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, sailormnk, sailormn, sailormn, cave, cave_state, sailormn, ROT0, "Gazelle (Banpresto license)", "Pretty Soldier Sailor Moon (Ver. 95/03/22B, Korea)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, sailormnt, sailormn, sailormn, cave, cave_state, sailormn, ROT0, "Gazelle (Banpresto license)", "Pretty Soldier Sailor Moon (Ver. 95/03/22B, Taiwan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, sailormnh, sailormn, sailormn, cave, cave_state, sailormn, ROT0, "Gazelle (Banpresto license)", "Pretty Soldier Sailor Moon (Ver. 95/03/22B, Hong Kong)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, sailormno, sailormn, sailormn, cave, cave_state, sailormn, ROT0, "Gazelle (Banpresto license)", "Pretty Soldier Sailor Moon (Ver. 95/03/22, Europe)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, sailormnou, sailormn, sailormn, cave, cave_state, sailormn, ROT0, "Gazelle (Banpresto license)", "Pretty Soldier Sailor Moon (Ver. 95/03/22, USA)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, sailormnoj, sailormn, sailormn, cave, cave_state, sailormn, ROT0, "Gazelle (Banpresto license)", "Pretty Soldier Sailor Moon (Ver. 95/03/22, Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, sailormnok, sailormn, sailormn, cave, cave_state, sailormn, ROT0, "Gazelle (Banpresto license)", "Pretty Soldier Sailor Moon (Ver. 95/03/22, Korea)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, sailormnot, sailormn, sailormn, cave, cave_state, sailormn, ROT0, "Gazelle (Banpresto license)", "Pretty Soldier Sailor Moon (Ver. 95/03/22, Taiwan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, sailormnoh, sailormn, sailormn, cave, cave_state, sailormn, ROT0, "Gazelle (Banpresto license)", "Pretty Soldier Sailor Moon (Ver. 95/03/22, Hong Kong)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, sailormn, 0, sailormn, cave, cave_state, sailormn, ROT0, "Gazelle (Banpresto license)", "Pretty Soldier Sailor Moon (Ver. 95/03/22B, Europe)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, sailormnu, sailormn, sailormn, cave, cave_state, sailormn, ROT0, "Gazelle (Banpresto license)", "Pretty Soldier Sailor Moon (Ver. 95/03/22B, USA)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, sailormnj, sailormn, sailormn, cave, cave_state, sailormn, ROT0, "Gazelle (Banpresto license)", "Pretty Soldier Sailor Moon (Ver. 95/03/22B, Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, sailormnk, sailormn, sailormn, cave, cave_state, sailormn, ROT0, "Gazelle (Banpresto license)", "Pretty Soldier Sailor Moon (Ver. 95/03/22B, Korea)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, sailormnt, sailormn, sailormn, cave, cave_state, sailormn, ROT0, "Gazelle (Banpresto license)", "Pretty Soldier Sailor Moon (Ver. 95/03/22B, Taiwan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, sailormnh, sailormn, sailormn, cave, cave_state, sailormn, ROT0, "Gazelle (Banpresto license)", "Pretty Soldier Sailor Moon (Ver. 95/03/22B, Hong Kong)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, sailormno, sailormn, sailormn, cave, cave_state, sailormn, ROT0, "Gazelle (Banpresto license)", "Pretty Soldier Sailor Moon (Ver. 95/03/22, Europe)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, sailormnou, sailormn, sailormn, cave, cave_state, sailormn, ROT0, "Gazelle (Banpresto license)", "Pretty Soldier Sailor Moon (Ver. 95/03/22, USA)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, sailormnoj, sailormn, sailormn, cave, cave_state, sailormn, ROT0, "Gazelle (Banpresto license)", "Pretty Soldier Sailor Moon (Ver. 95/03/22, Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, sailormnok, sailormn, sailormn, cave, cave_state, sailormn, ROT0, "Gazelle (Banpresto license)", "Pretty Soldier Sailor Moon (Ver. 95/03/22, Korea)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, sailormnot, sailormn, sailormn, cave, cave_state, sailormn, ROT0, "Gazelle (Banpresto license)", "Pretty Soldier Sailor Moon (Ver. 95/03/22, Taiwan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, sailormnoh, sailormn, sailormn, cave, cave_state, sailormn, ROT0, "Gazelle (Banpresto license)", "Pretty Soldier Sailor Moon (Ver. 95/03/22, Hong Kong)", MACHINE_SUPPORTS_SAVE ) // The EEPROM determines the region, program roms are the same between sets -GAME( 1996, agallet, 0, sailormn, cave, cave_state, agallet, ROT270, "Gazelle (Banpresto license)", "Air Gallet (Europe)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, agalletu, agallet, sailormn, cave, cave_state, agallet, ROT270, "Gazelle (Banpresto license)", "Air Gallet (USA)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, agalletj, agallet, sailormn, cave, cave_state, agallet, ROT270, "Gazelle (Banpresto license)", "Akuu Gallet (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, agalletk, agallet, sailormn, cave, cave_state, agallet, ROT270, "Gazelle (Banpresto license)", "Air Gallet (Korea)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, agallett, agallet, sailormn, cave, cave_state, agallet, ROT270, "Gazelle (Banpresto license)", "Air Gallet (Taiwan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, agalleth, agallet, sailormn, cave, cave_state, agallet, ROT270, "Gazelle (Banpresto license)", "Air Gallet (Hong Kong)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, agallet, 0, sailormn, cave, cave_state, agallet, ROT270, "Gazelle (Banpresto license)", "Air Gallet (Europe)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, agalletu, agallet, sailormn, cave, cave_state, agallet, ROT270, "Gazelle (Banpresto license)", "Air Gallet (USA)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, agalletj, agallet, sailormn, cave, cave_state, agallet, ROT270, "Gazelle (Banpresto license)", "Akuu Gallet (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, agalletk, agallet, sailormn, cave, cave_state, agallet, ROT270, "Gazelle (Banpresto license)", "Air Gallet (Korea)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, agallett, agallet, sailormn, cave, cave_state, agallet, ROT270, "Gazelle (Banpresto license)", "Air Gallet (Taiwan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, agalleth, agallet, sailormn, cave, cave_state, agallet, ROT270, "Gazelle (Banpresto license)", "Air Gallet (Hong Kong)", MACHINE_SUPPORTS_SAVE ) // this set appears to be older, there is some kind of reset circuit / watchdog circuit check on startup, the same check exists in the above set but the code skips over it so presumably it was removed // to avoid boards simply hanging on a black screen if the circuit didn't fire. -GAME( 1996, agalleta, agallet, sailormn, cave, cave_state, agallet, ROT270, "Gazelle (Banpresto license)", "Air Gallet (older, Europe)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, agalletau, agallet, sailormn, cave, cave_state, agallet, ROT270, "Gazelle (Banpresto license)", "Air Gallet (older, USA)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, agalletaj, agallet, sailormn, cave, cave_state, agallet, ROT270, "Gazelle (Banpresto license)", "Akuu Gallet (older, Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, agalletak, agallet, sailormn, cave, cave_state, agallet, ROT270, "Gazelle (Banpresto license)", "Air Gallet (older, Korea)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, agalletat, agallet, sailormn, cave, cave_state, agallet, ROT270, "Gazelle (Banpresto license)", "Air Gallet (older, Taiwan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, agalletah, agallet, sailormn, cave, cave_state, agallet, ROT270, "Gazelle (Banpresto license)", "Air Gallet (older, Hong Kong)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, agalleta, agallet, sailormn, cave, cave_state, agallet, ROT270, "Gazelle (Banpresto license)", "Air Gallet (older, Europe)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, agalletau, agallet, sailormn, cave, cave_state, agallet, ROT270, "Gazelle (Banpresto license)", "Air Gallet (older, USA)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, agalletaj, agallet, sailormn, cave, cave_state, agallet, ROT270, "Gazelle (Banpresto license)", "Akuu Gallet (older, Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, agalletak, agallet, sailormn, cave, cave_state, agallet, ROT270, "Gazelle (Banpresto license)", "Air Gallet (older, Korea)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, agalletat, agallet, sailormn, cave, cave_state, agallet, ROT270, "Gazelle (Banpresto license)", "Air Gallet (older, Taiwan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, agalletah, agallet, sailormn, cave, cave_state, agallet, ROT270, "Gazelle (Banpresto license)", "Air Gallet (older, Hong Kong)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, hotdogst, 0, hotdogst, cave, cave_state, hotdogst, ROT90, "Marble", "Hotdog Storm (International)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, hotdogst, 0, hotdogst, cave, cave_state, hotdogst, ROT90, "Marble", "Hotdog Storm (International)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, pacslot, 0, pacslot, pacslot, cave_state, tjumpman, ROT0, "Namco", "Pac-Slot", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, pacslot, 0, pacslot, pacslot, cave_state, tjumpman, ROT0, "Namco", "Pac-Slot", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, ppsatan, 0, ppsatan, ppsatan, cave_state, ppsatan, ROT0, "Kato Seisakujo Co., Ltd.", "Poka Poka Satan (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1996, ppsatan, 0, ppsatan, ppsatan, cave_state, ppsatan, ROT0, "Kato Seisakujo Co., Ltd.", "Poka Poka Satan (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1997, tekkencw, 0, tekkencw, tekkencw, cave_state, tjumpman, ROT0, "Namco", "Tekken Card World", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, tekkencw, 0, tekkencw, tekkencw, cave_state, tjumpman, ROT0, "Namco", "Tekken Card World", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, ddonpach, 0, ddonpach, cave, cave_state, ddonpach, ROT270, "Cave (Atlus license)", "DoDonPachi (International, Master Ver. 97/02/05)", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, ddonpachj, ddonpach, ddonpach, cave, cave_state, ddonpach, ROT270, "Cave (Atlus license)", "DoDonPachi (Japan, Master Ver. 97/02/05)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, ddonpach, 0, ddonpach, cave, cave_state, ddonpach, ROT270, "Cave (Atlus license)", "DoDonPachi (International, Master Ver. 97/02/05)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, ddonpachj, ddonpach, ddonpach, cave, cave_state, ddonpach, ROT270, "Cave (Atlus license)", "DoDonPachi (Japan, Master Ver. 97/02/05)", MACHINE_SUPPORTS_SAVE ) // NOT an official CAVE release, but several PCBs have been converted to it and used on location. -GAME( 2012, ddonpacha, ddonpach, ddonpach, cave, cave_state, ddonpach, ROT270, "hack (trap15)", "DoDonPachi (2012/02/12 Arrange Ver. 1.1) (hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 2012, ddonpacha, ddonpach, ddonpach, cave, cave_state, ddonpach, ROT270, "hack (trap15)", "DoDonPachi (2012/02/12 Arrange Ver. 1.1) (hack)", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, dfeveron, feversos, dfeveron, cave, cave_state, dfeveron, ROT270, "Cave (Nihon System license)", "Dangun Feveron (Japan, Ver. 98/09/17)", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, feversos, 0, dfeveron, cave, cave_state, feversos, ROT270, "Cave (Nihon System license)", "Fever SOS (International, Ver. 98/09/25)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, dfeveron, feversos, dfeveron, cave, cave_state, dfeveron, ROT270, "Cave (Nihon System license)", "Dangun Feveron (Japan, Ver. 98/09/17)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, feversos, 0, dfeveron, cave, cave_state, feversos, ROT270, "Cave (Nihon System license)", "Fever SOS (International, Ver. 98/09/25)", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, esprade, 0, esprade, cave, cave_state, esprade, ROT270, "Cave (Atlus license)", "ESP Ra.De. (International, Ver. 98/04/22)", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, espradej, esprade, esprade, cave, cave_state, esprade, ROT270, "Cave (Atlus license)", "ESP Ra.De. (Japan, Ver. 98/04/21)", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, espradejo, esprade, esprade, cave, cave_state, esprade, ROT270, "Cave (Atlus license)", "ESP Ra.De. (Japan, Ver. 98/04/14)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, esprade, 0, esprade, cave, cave_state, esprade, ROT270, "Cave (Atlus license)", "ESP Ra.De. (International, Ver. 98/04/22)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, espradej, esprade, esprade, cave, cave_state, esprade, ROT270, "Cave (Atlus license)", "ESP Ra.De. (Japan, Ver. 98/04/21)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, espradejo, esprade, esprade, cave, cave_state, esprade, ROT270, "Cave (Atlus license)", "ESP Ra.De. (Japan, Ver. 98/04/14)", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, uopoko, 0, uopoko, cave, cave_state, uopoko, ROT0, "Cave (Jaleco license)", "Puzzle Uo Poko (International)", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, uopokoj, uopoko, uopoko, cave, cave_state, uopoko, ROT0, "Cave (Jaleco license)", "Puzzle Uo Poko (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, uopoko, 0, uopoko, cave, cave_state, uopoko, ROT0, "Cave (Jaleco license)", "Puzzle Uo Poko (International)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, uopokoj, uopoko, uopoko, cave, cave_state, uopoko, ROT0, "Cave (Jaleco license)", "Puzzle Uo Poko (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1999, guwange, 0, guwange, guwange, cave_state, guwange, ROT270, "Cave (Atlus license)", "Guwange (Japan, Master Ver. 99/06/24)", MACHINE_SUPPORTS_SAVE ) -GAME( 1999, guwanges, guwange, guwange, guwange, cave_state, guwange, ROT270, "Cave (Atlus license)", "Guwange (Japan, Special Ver. 00/07/07)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, guwange, 0, guwange, guwange, cave_state, guwange, ROT270, "Cave (Atlus license)", "Guwange (Japan, Master Ver. 99/06/24)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, guwanges, guwange, guwange, guwange, cave_state, guwange, ROT270, "Cave (Atlus license)", "Guwange (Japan, Special Ver. 00/07/07)", MACHINE_SUPPORTS_SAVE ) -GAME( 1999, gaia, 0, gaia, gaia, cave_state, gaia, ROT0, "Noise Factory", "Gaia Crusaders", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) // cuts out occasionally +GAME( 1999, gaia, 0, gaia, gaia, cave_state, gaia, ROT0, "Noise Factory", "Gaia Crusaders", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) // cuts out occasionally -GAME( 1999, korokoro, 0, korokoro, korokoro, cave_state, korokoro, ROT0, "Takumi", "Koro Koro Quest (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, korokoro, 0, korokoro, korokoro, cave_state, korokoro, ROT0, "Takumi", "Koro Koro Quest (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1999, crusherm, 0, crusherm, korokoro, cave_state, korokoro, ROT0, "Takumi", "Crusher Makochan (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, crusherm, 0, crusherm, korokoro, cave_state, korokoro, ROT0, "Takumi", "Crusher Makochan (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1999, tjumpman, 0, tjumpman, tjumpman, cave_state, tjumpman, ROT0, "Namco", "Tobikose! Jumpman", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, tjumpman, 0, tjumpman, tjumpman, cave_state, tjumpman, ROT0, "Namco", "Tobikose! Jumpman", MACHINE_SUPPORTS_SAVE ) -GAME( 2001, theroes, 0, gaia, theroes, cave_state, gaia, ROT0, "Primetek Investments", "Thunder Heroes", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) // cuts out occasionally +GAME( 2001, theroes, 0, gaia, theroes, cave_state, gaia, ROT0, "Primetek Investments", "Thunder Heroes", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) // cuts out occasionally diff --git a/src/mame/drivers/cavepc.cpp b/src/mame/drivers/cavepc.cpp index 84f915d9be8..4a44bf5a132 100644 --- a/src/mame/drivers/cavepc.cpp +++ b/src/mame/drivers/cavepc.cpp @@ -106,7 +106,7 @@ void cavepc_state::machine_reset() membank("bank1")->set_base(memregion("bios")->base() + 0x30000); } -static MACHINE_CONFIG_START( cavepc, cavepc_state ) +static MACHINE_CONFIG_START( cavepc ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", PENTIUM3, 200000000) /* AMD Athlon 64 X2 5050e Brisbane 2.60GHz, 1024KB L2 Cache ! */ MCFG_CPU_PROGRAM_MAP(cavepc_map) diff --git a/src/mame/drivers/cb2001.cpp b/src/mame/drivers/cb2001.cpp index 10d2a83fb3e..738e4b73ca5 100644 --- a/src/mame/drivers/cb2001.cpp +++ b/src/mame/drivers/cb2001.cpp @@ -807,7 +807,7 @@ PALETTE_INIT_MEMBER(cb2001_state, cb2001) } } -static MACHINE_CONFIG_START( cb2001, cb2001_state ) +static MACHINE_CONFIG_START( cb2001 ) MCFG_CPU_ADD("maincpu", V35, 20000000) // CPU91A-011-0016JK004; encrypted cpu like nec v25/35 used in some irem game MCFG_V25_CONFIG(cb2001_decryption_table) MCFG_CPU_PROGRAM_MAP(cb2001_map) @@ -869,5 +869,5 @@ ROM_START( scherrym ) ROM_LOAD( "n82s135-2.bin", 0x200, 0x100, CRC(a19821db) SHA1(62dda90dd67dfbc0b96f161f1f2b7a46a5805eae) ) ROM_END -GAME( 2001, cb2001, 0, cb2001, cb2001, driver_device, 0, ROT0, "Dyna", "Cherry Bonus 2001", MACHINE_NOT_WORKING|MACHINE_NO_SOUND ) -GAME( 2001, scherrym, 0, cb2001, cb2001, driver_device, 0, ROT0, "Dyna", "Super Cherry Master", MACHINE_NOT_WORKING|MACHINE_NO_SOUND ) // 2001 version? (we have bootlegs running on z80 hw of a 1996 version) +GAME( 2001, cb2001, 0, cb2001, cb2001, cb2001_state, 0, ROT0, "Dyna", "Cherry Bonus 2001", MACHINE_NOT_WORKING|MACHINE_NO_SOUND ) +GAME( 2001, scherrym, 0, cb2001, cb2001, cb2001_state, 0, ROT0, "Dyna", "Super Cherry Master", MACHINE_NOT_WORKING|MACHINE_NO_SOUND ) // 2001 version? (we have bootlegs running on z80 hw of a 1996 version) diff --git a/src/mame/drivers/cball.cpp b/src/mame/drivers/cball.cpp index 1df363c46c8..1a389a62907 100644 --- a/src/mame/drivers/cball.cpp +++ b/src/mame/drivers/cball.cpp @@ -259,7 +259,7 @@ static GFXDECODE_START( cball ) GFXDECODE_END -static MACHINE_CONFIG_START( cball, cball_state ) +static MACHINE_CONFIG_START( cball ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6800, XTAL_12_096MHz / 16) /* ? */ @@ -304,4 +304,4 @@ ROM_START( cball ) ROM_END -GAME( 1976, cball, 0, cball, cball, driver_device, 0, ROT0, "Atari", "Cannonball (Atari, prototype)", MACHINE_NO_SOUND | MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1976, cball, 0, cball, cball, cball_state, 0, ROT0, "Atari", "Cannonball (Atari, prototype)", MACHINE_NO_SOUND | MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/cbasebal.cpp b/src/mame/drivers/cbasebal.cpp index 57066cb94db..c3ef33e1d61 100644 --- a/src/mame/drivers/cbasebal.cpp +++ b/src/mame/drivers/cbasebal.cpp @@ -258,7 +258,7 @@ void cbasebal_state::machine_reset() m_scroll_y[1] = 0; } -static MACHINE_CONFIG_START( cbasebal, cbasebal_state ) +static MACHINE_CONFIG_START( cbasebal ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 6000000) /* ??? */ @@ -287,7 +287,7 @@ static MACHINE_CONFIG_START( cbasebal, cbasebal_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", 1056000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki", 1056000, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) MCFG_SOUND_ADD("ymsnd", YM2413, 3579545) diff --git a/src/mame/drivers/cbm2.cpp b/src/mame/drivers/cbm2.cpp index d77d68f55a0..6114471f732 100644 --- a/src/mame/drivers/cbm2.cpp +++ b/src/mame/drivers/cbm2.cpp @@ -2279,7 +2279,7 @@ MACHINE_CONFIG_END // MACHINE_CONFIG( p500_ntsc ) //------------------------------------------------- -static MACHINE_CONFIG_START( p500_ntsc, p500_state ) +static MACHINE_CONFIG_START( p500_ntsc ) MCFG_MACHINE_START_OVERRIDE(p500_state, p500_ntsc) MCFG_MACHINE_RESET_OVERRIDE(p500_state, p500) @@ -2395,7 +2395,7 @@ MACHINE_CONFIG_END // MACHINE_CONFIG( p500_pal ) //------------------------------------------------- -static MACHINE_CONFIG_START( p500_pal, p500_state ) +static MACHINE_CONFIG_START( p500_pal ) MCFG_MACHINE_START_OVERRIDE(p500_state, p500_pal) MCFG_MACHINE_RESET_OVERRIDE(p500_state, p500) @@ -2508,7 +2508,7 @@ MACHINE_CONFIG_END // MACHINE_CONFIG( cbm2lp_ntsc ) //------------------------------------------------- -static MACHINE_CONFIG_START( cbm2lp_ntsc, cbm2_state ) +static MACHINE_CONFIG_START( cbm2lp_ntsc ) MCFG_MACHINE_START_OVERRIDE(cbm2_state, cbm2_ntsc) MCFG_MACHINE_RESET_OVERRIDE(cbm2_state, cbm2) @@ -2665,7 +2665,7 @@ MACHINE_CONFIG_END // MACHINE_CONFIG( cbm2hp_ntsc ) //------------------------------------------------- -static MACHINE_CONFIG_DERIVED_CLASS( cbm2hp_ntsc, cbm2lp_ntsc, cbm2hp_state ) +static MACHINE_CONFIG_DERIVED( cbm2hp_ntsc, cbm2lp_ntsc ) MCFG_DEVICE_MODIFY(MOS6525_2_TAG) MCFG_TPI6525_IN_PC_CB(READ8(cbm2hp_state, tpi2_pc_r)) MACHINE_CONFIG_END @@ -3037,20 +3037,20 @@ ROM_END // SYSTEM DRIVERS //************************************************************************** -// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS -COMP( 1983, p500, 0, 0, p500_ntsc, cbm2, driver_device, 0, "Commodore Business Machines", "P500 (NTSC)", MACHINE_SUPPORTS_SAVE ) -COMP( 1983, p500p, p500, 0, p500_pal, cbm2, driver_device, 0, "Commodore Business Machines", "P500 (PAL)", MACHINE_SUPPORTS_SAVE ) -COMP( 1983, b500, 0, 0, b128, cbm2, driver_device, 0, "Commodore Business Machines", "B500", MACHINE_SUPPORTS_SAVE ) -COMP( 1983, b128, b500, 0, b128, cbm2, driver_device, 0, "Commodore Business Machines", "B128", MACHINE_SUPPORTS_SAVE ) -COMP( 1983, b256, b500, 0, b256, cbm2, driver_device, 0, "Commodore Business Machines", "B256", MACHINE_SUPPORTS_SAVE ) -COMP( 1983, cbm610, b500, 0, cbm610, cbm2, driver_device, 0, "Commodore Business Machines", "CBM 610", MACHINE_SUPPORTS_SAVE ) -COMP( 1983, cbm620, b500, 0, cbm620, cbm2, driver_device, 0, "Commodore Business Machines", "CBM 620", MACHINE_SUPPORTS_SAVE ) -COMP( 1983, cbm620_hu, b500, 0, cbm620, cbm2_hu, driver_device, 0, "Commodore Business Machines", "CBM 620 (Hungary)", MACHINE_SUPPORTS_SAVE ) -COMP( 1983, b128hp, 0, 0, b128hp, cbm2, driver_device, 0, "Commodore Business Machines", "B128-80HP", MACHINE_SUPPORTS_SAVE ) -COMP( 1983, b256hp, b128hp, 0, b256hp, cbm2, driver_device, 0, "Commodore Business Machines", "B256-80HP", MACHINE_SUPPORTS_SAVE ) -COMP( 1983, bx256hp, b128hp, 0, bx256hp, cbm2, driver_device, 0, "Commodore Business Machines", "BX256-80HP", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // 8088 co-processor is missing -COMP( 1983, cbm710, b128hp, 0, cbm710, cbm2, driver_device, 0, "Commodore Business Machines", "CBM 710", MACHINE_SUPPORTS_SAVE ) -COMP( 1983, cbm720, b128hp, 0, cbm720, cbm2, driver_device, 0, "Commodore Business Machines", "CBM 720", MACHINE_SUPPORTS_SAVE ) -COMP( 1983, cbm720_de, b128hp, 0, cbm720, cbm2_de, driver_device, 0, "Commodore Business Machines", "CBM 720 (Germany)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) -COMP( 1983, cbm720_se, b128hp, 0, cbm720, cbm2_se, driver_device, 0, "Commodore Business Machines", "CBM 720 (Sweden/Finland)", MACHINE_SUPPORTS_SAVE ) -COMP( 1983, cbm730, b128hp, 0, cbm730, cbm2, driver_device, 0, "Commodore Business Machines", "CBM 730", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // 8088 co-processor is missing +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1983, p500, 0, 0, p500_ntsc, cbm2, p500_state, 0, "Commodore Business Machines", "P500 (NTSC)", MACHINE_SUPPORTS_SAVE ) +COMP( 1983, p500p, p500, 0, p500_pal, cbm2, p500_state, 0, "Commodore Business Machines", "P500 (PAL)", MACHINE_SUPPORTS_SAVE ) +COMP( 1983, b500, 0, 0, b128, cbm2, cbm2_state, 0, "Commodore Business Machines", "B500", MACHINE_SUPPORTS_SAVE ) +COMP( 1983, b128, b500, 0, b128, cbm2, cbm2_state, 0, "Commodore Business Machines", "B128", MACHINE_SUPPORTS_SAVE ) +COMP( 1983, b256, b500, 0, b256, cbm2, cbm2_state, 0, "Commodore Business Machines", "B256", MACHINE_SUPPORTS_SAVE ) +COMP( 1983, cbm610, b500, 0, cbm610, cbm2, cbm2_state, 0, "Commodore Business Machines", "CBM 610", MACHINE_SUPPORTS_SAVE ) +COMP( 1983, cbm620, b500, 0, cbm620, cbm2, cbm2_state, 0, "Commodore Business Machines", "CBM 620", MACHINE_SUPPORTS_SAVE ) +COMP( 1983, cbm620_hu, b500, 0, cbm620, cbm2_hu, cbm2_state, 0, "Commodore Business Machines", "CBM 620 (Hungary)", MACHINE_SUPPORTS_SAVE ) +COMP( 1983, b128hp, 0, 0, b128hp, cbm2, cbm2hp_state, 0, "Commodore Business Machines", "B128-80HP", MACHINE_SUPPORTS_SAVE ) +COMP( 1983, b256hp, b128hp, 0, b256hp, cbm2, cbm2hp_state, 0, "Commodore Business Machines", "B256-80HP", MACHINE_SUPPORTS_SAVE ) +COMP( 1983, bx256hp, b128hp, 0, bx256hp, cbm2, cbm2hp_state, 0, "Commodore Business Machines", "BX256-80HP", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // 8088 co-processor is missing +COMP( 1983, cbm710, b128hp, 0, cbm710, cbm2, cbm2hp_state, 0, "Commodore Business Machines", "CBM 710", MACHINE_SUPPORTS_SAVE ) +COMP( 1983, cbm720, b128hp, 0, cbm720, cbm2, cbm2hp_state, 0, "Commodore Business Machines", "CBM 720", MACHINE_SUPPORTS_SAVE ) +COMP( 1983, cbm720_de, b128hp, 0, cbm720, cbm2_de, cbm2hp_state, 0, "Commodore Business Machines", "CBM 720 (Germany)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +COMP( 1983, cbm720_se, b128hp, 0, cbm720, cbm2_se, cbm2hp_state, 0, "Commodore Business Machines", "CBM 720 (Sweden/Finland)", MACHINE_SUPPORTS_SAVE ) +COMP( 1983, cbm730, b128hp, 0, cbm730, cbm2, cbm2hp_state, 0, "Commodore Business Machines", "CBM 730", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // 8088 co-processor is missing diff --git a/src/mame/drivers/cbuster.cpp b/src/mame/drivers/cbuster.cpp index e4361c72f8c..afc555c4e31 100644 --- a/src/mame/drivers/cbuster.cpp +++ b/src/mame/drivers/cbuster.cpp @@ -298,7 +298,7 @@ void cbuster_state::machine_reset() m_pri = 0; } -static MACHINE_CONFIG_START( twocrude, cbuster_state ) +static MACHINE_CONFIG_START( twocrude ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_24MHz/2) /* Custom chip 59 @ 12MHz Verified */ @@ -368,10 +368,10 @@ static MACHINE_CONFIG_START( twocrude, cbuster_state ) MCFG_SOUND_ROUTE(0, "mono", 0.45) MCFG_SOUND_ROUTE(1, "mono", 0.45) - MCFG_OKIM6295_ADD("oki1", XTAL_32_22MHz/32, OKIM6295_PIN7_HIGH) /* 1.0068MHz Verified */ + MCFG_OKIM6295_ADD("oki1", XTAL_32_22MHz/32, PIN7_HIGH) /* 1.0068MHz Verified */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.75) - MCFG_OKIM6295_ADD("oki2", XTAL_32_22MHz/16, OKIM6295_PIN7_HIGH) /* 2.01375MHz Verified */ + MCFG_OKIM6295_ADD("oki2", XTAL_32_22MHz/16, PIN7_HIGH) /* 2.01375MHz Verified */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60) MACHINE_CONFIG_END diff --git a/src/mame/drivers/cc40.cpp b/src/mame/drivers/cc40.cpp index 072e33967ff..b1e49c0ca09 100644 --- a/src/mame/drivers/cc40.cpp +++ b/src/mame/drivers/cc40.cpp @@ -579,7 +579,7 @@ void cc40_state::machine_start() machine().save().register_postload(save_prepost_delegate(FUNC(cc40_state::postload), this)); } -static MACHINE_CONFIG_START( cc40, cc40_state ) +static MACHINE_CONFIG_START( cc40 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS70C20, XTAL_5MHz / 2) @@ -638,4 +638,4 @@ ROM_START( cc40 ) ROM_END -COMP( 1983, cc40, 0, 0, cc40, cc40, driver_device, 0, "Texas Instruments", "Compact Computer 40", MACHINE_SUPPORTS_SAVE ) +COMP( 1983, cc40, 0, 0, cc40, cc40, cc40_state, 0, "Texas Instruments", "Compact Computer 40", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/ccastles.cpp b/src/mame/drivers/ccastles.cpp index 70d3d844d65..8a69828290a 100644 --- a/src/mame/drivers/ccastles.cpp +++ b/src/mame/drivers/ccastles.cpp @@ -453,7 +453,7 @@ GFXDECODE_END * *************************************/ -static MACHINE_CONFIG_START( ccastles, ccastles_state ) +static MACHINE_CONFIG_START( ccastles ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, MASTER_CLOCK/8) @@ -664,11 +664,11 @@ ROM_END * *************************************/ -GAME( 1983, ccastles, 0, ccastles, ccastles, driver_device, 0, ROT0, "Atari", "Crystal Castles (version 4)", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, ccastlesg, ccastles, ccastles, ccastles, driver_device, 0, ROT0, "Atari", "Crystal Castles (version 3, German)", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, ccastlesp, ccastles, ccastles, ccastles, driver_device, 0, ROT0, "Atari", "Crystal Castles (version 3, Spanish)", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, ccastlesf, ccastles, ccastles, ccastles, driver_device, 0, ROT0, "Atari", "Crystal Castles (version 3, French)", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, ccastles3, ccastles, ccastles, ccastles, driver_device, 0, ROT0, "Atari", "Crystal Castles (version 3)", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, ccastles2, ccastles, ccastles, ccastles, driver_device, 0, ROT0, "Atari", "Crystal Castles (version 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, ccastles1, ccastles, ccastles, ccastles, driver_device, 0, ROT0, "Atari", "Crystal Castles (version 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, ccastlesj, ccastles, ccastles, ccastlesj, driver_device,0, ROT0, "Atari", "Crystal Castles (joystick version)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, ccastles, 0, ccastles, ccastles, ccastles_state, 0, ROT0, "Atari", "Crystal Castles (version 4)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, ccastlesg, ccastles, ccastles, ccastles, ccastles_state, 0, ROT0, "Atari", "Crystal Castles (version 3, German)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, ccastlesp, ccastles, ccastles, ccastles, ccastles_state, 0, ROT0, "Atari", "Crystal Castles (version 3, Spanish)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, ccastlesf, ccastles, ccastles, ccastles, ccastles_state, 0, ROT0, "Atari", "Crystal Castles (version 3, French)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, ccastles3, ccastles, ccastles, ccastles, ccastles_state, 0, ROT0, "Atari", "Crystal Castles (version 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, ccastles2, ccastles, ccastles, ccastles, ccastles_state, 0, ROT0, "Atari", "Crystal Castles (version 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, ccastles1, ccastles, ccastles, ccastles, ccastles_state, 0, ROT0, "Atari", "Crystal Castles (version 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, ccastlesj, ccastles, ccastles, ccastlesj,ccastles_state, 0, ROT0, "Atari", "Crystal Castles (joystick version)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/cchance.cpp b/src/mame/drivers/cchance.cpp index 29cf9653599..02cbdb7c539 100644 --- a/src/mame/drivers/cchance.cpp +++ b/src/mame/drivers/cchance.cpp @@ -209,7 +209,7 @@ void cchance_state::machine_reset() m_bell_io = 0; } -static MACHINE_CONFIG_START( cchance, cchance_state ) +static MACHINE_CONFIG_START( cchance ) MCFG_CPU_ADD("maincpu", Z80,4000000) /* ? MHz */ MCFG_CPU_PROGRAM_MAP(main_map) @@ -256,4 +256,4 @@ ROM_START( cchance ) ROM_LOAD( "prom2", 0x0200, 0x0200, NO_DUMP ) ROM_END -GAME( 1987?, cchance, 0, cchance, cchance, driver_device, 0, ROT0, "", "Cherry Chance", MACHINE_NOT_WORKING | MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE ) +GAME( 1987?, cchance, 0, cchance, cchance, cchance_state, 0, ROT0, "", "Cherry Chance", MACHINE_NOT_WORKING | MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/cchasm.cpp b/src/mame/drivers/cchasm.cpp index 2806c648439..47283484000 100644 --- a/src/mame/drivers/cchasm.cpp +++ b/src/mame/drivers/cchasm.cpp @@ -144,7 +144,7 @@ static const z80_daisy_config daisy_chain[] = * *************************************/ -static MACHINE_CONFIG_START( cchasm, cchasm_state ) +static MACHINE_CONFIG_START( cchasm ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, CCHASM_68K_CLOCK) /* 8 MHz (from schematics) */ @@ -263,5 +263,5 @@ ROM_END * *************************************/ -GAME( 1983, cchasm, 0, cchasm, cchasm, driver_device, 0, ROT270, "Cinematronics / GCE", "Cosmic Chasm (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, cchasm1, cchasm, cchasm, cchasm, driver_device, 0, ROT270, "Cinematronics / GCE", "Cosmic Chasm (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, cchasm, 0, cchasm, cchasm, cchasm_state, 0, ROT270, "Cinematronics / GCE", "Cosmic Chasm (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, cchasm1, cchasm, cchasm, cchasm, cchasm_state, 0, ROT270, "Cinematronics / GCE", "Cosmic Chasm (set 2)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/cclimber.cpp b/src/mame/drivers/cclimber.cpp index 0e0790b370e..44adb8029f5 100644 --- a/src/mame/drivers/cclimber.cpp +++ b/src/mame/drivers/cclimber.cpp @@ -1101,7 +1101,7 @@ INTERRUPT_GEN_MEMBER(cclimber_state::bagmanf_vblank_irq) device.execute().set_input_line(0, HOLD_LINE); } -static MACHINE_CONFIG_START( root, cclimber_state ) +static MACHINE_CONFIG_START( root ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, MASTER_CLOCK/3/2) /* 3.072 MHz */ @@ -1217,7 +1217,7 @@ static MACHINE_CONFIG_DERIVED( toprollr, cclimber ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( swimmer, cclimber_state ) +static MACHINE_CONFIG_START( swimmer ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_18_432MHz/6) /* verified on pcb */ @@ -2633,53 +2633,53 @@ GAME( 1980, cclimberj, cclimber, cclimberx, cclimberj, cclimber_state,cclimber GAME( 1980, ccboot, cclimber, cclimberx, cclimber, cclimber_state, cclimberj,ROT0, "bootleg", "Crazy Climber (bootleg set 1)", MACHINE_SUPPORTS_SAVE ) GAME( 1980, ccboot2, cclimber, cclimberx, cclimber, cclimber_state, cclimberj,ROT0, "bootleg", "Crazy Climber (bootleg set 2)", MACHINE_SUPPORTS_SAVE ) GAME( 1980, ccbootmr, cclimber, cclimberx, cclimber, cclimber_state, cclimberj,ROT0, "bootleg (Model Racing)", "Crazy Climber (Model Racing bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1980, cclimbroper, cclimber, cclimber, cclimber, driver_device, 0, ROT0, "bootleg (Operamatic)", "Crazy Climber (Spanish, Operamatic bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1980, cclimbrrod, cclimber, cclimber, cclimber, driver_device, 0, ROT0, "bootleg (Rodmar)", "Crazy Climber (Spanish, Rodmar bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, cclimbroper, cclimber, cclimber, cclimber, cclimber_state, 0, ROT0, "bootleg (Operamatic)", "Crazy Climber (Spanish, Operamatic bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, cclimbrrod, cclimber, cclimber, cclimber, cclimber_state, 0, ROT0, "bootleg (Rodmar)", "Crazy Climber (Spanish, Rodmar bootleg)", MACHINE_SUPPORTS_SAVE ) /* these sets have ugly colours, no extra attract screen, and no graphics for the extra attract screen in the BG roms - there is a Falcon logo in the text roms which is unused - does the code to display the extra screen still exist in the roms? */ -GAME( 1981, ckong, 0, cclimber, ckong, driver_device, 0, ROT270, "Kyoei / Falcon", "Crazy Kong", MACHINE_SUPPORTS_SAVE ) // on a Falcon FCK-01 PCB, but doesn't display any Falcon copyright -GAME( 1981, ckongalc, ckong, cclimber, ckong, driver_device, 0, ROT270, "bootleg (Alca)", "Crazy Kong (Alca bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, monkeyd, ckong, cclimber, ckong, driver_device, 0, ROT270, "bootleg", "Monkey Donkey", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, dking, ckong, cclimber, ckong, cclimber_state, dking, ROT270, "bootleg", "Donkey King", MACHINE_SUPPORTS_SAVE ) // supposedly, possibly by Hafasonic? -GAME( 1981, ckongdks, ckong, cclimber, ckong, cclimber_state, dking, ROT270, "bootleg", "Donkey Kong (Spanish Crazy Kong bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, ckong, 0, cclimber, ckong, cclimber_state, 0, ROT270, "Kyoei / Falcon", "Crazy Kong", MACHINE_SUPPORTS_SAVE ) // on a Falcon FCK-01 PCB, but doesn't display any Falcon copyright +GAME( 1981, ckongalc, ckong, cclimber, ckong, cclimber_state, 0, ROT270, "bootleg (Alca)", "Crazy Kong (Alca bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, monkeyd, ckong, cclimber, ckong, cclimber_state, 0, ROT270, "bootleg", "Monkey Donkey", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, dking, ckong, cclimber, ckong, cclimber_state, dking, ROT270, "bootleg", "Donkey King", MACHINE_SUPPORTS_SAVE ) // supposedly, possibly by Hafasonic? +GAME( 1981, ckongdks, ckong, cclimber, ckong, cclimber_state, dking, ROT270, "bootleg", "Donkey Kong (Spanish Crazy Kong bootleg)", MACHINE_SUPPORTS_SAVE ) /* these sets have correct colours, and also contain the graphics used for the extra attract screen in the BG roms, but it is unused - the Falcon logo in the text roms is still unused - does the code to display the extra screen still exist in the roms? */ -GAME( 1981, ckongo, ckong, cclimber, ckong, driver_device, 0, ROT270, "bootleg (Orca)", "Crazy Kong (Orca bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, bigkong, ckong, cclimber, ckong, driver_device, 0, ROT270, "bootleg", "Big Kong", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, ckongo, ckong, cclimber, ckong, cclimber_state, 0, ROT270, "bootleg (Orca)", "Crazy Kong (Orca bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, bigkong, ckong, cclimber, ckong, cclimber_state, 0, ROT270, "bootleg", "Big Kong", MACHINE_SUPPORTS_SAVE ) /* these sets have correct colours, and the extra attract screen, they also make use of the Falcon logo, some sets hack out the Falcon text on the extra screen */ -GAME( 1981, ckongpt2, 0, cclimber, ckong, driver_device, 0, ROT270, "Falcon", "Crazy Kong Part II (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, ckongpt2a, ckongpt2, cclimber, ckong, driver_device, 0, ROT270, "Falcon", "Crazy Kong Part II (set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, ckongpt2j, ckongpt2, cclimber, ckong, driver_device, 0, ROT270, "Falcon", "Crazy Kong Part II (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, ckongpt2jeu, ckongpt2, cclimber, ckong, driver_device, 0, ROT270, "bootleg (Jeutel)", "Crazy Kong Part II (Jeutel bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, ckongpt2, 0, cclimber, ckong, cclimber_state, 0, ROT270, "Falcon", "Crazy Kong Part II (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, ckongpt2a, ckongpt2, cclimber, ckong, cclimber_state, 0, ROT270, "Falcon", "Crazy Kong Part II (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, ckongpt2j, ckongpt2, cclimber, ckong, cclimber_state, 0, ROT270, "Falcon", "Crazy Kong Part II (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, ckongpt2jeu, ckongpt2, cclimber, ckong, cclimber_state, 0, ROT270, "bootleg (Jeutel)", "Crazy Kong Part II (Jeutel bootleg)", MACHINE_SUPPORTS_SAVE ) GAME( 1981, ckongpt2b, ckongpt2, cclimber, ckongb, cclimber_state, ckongb, ROT270, "bootleg", "Crazy Kong Part II (alternative levels)", MACHINE_SUPPORTS_SAVE ) // see bagman.cpp for parent -GAME( 1982, bagmanf, bagman, bagmanf, bagmanf, driver_device, 0, ROT270, "bootleg", "Le Bagnard (bootleg on Crazy Kong hardware)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +GAME( 1982, bagmanf, bagman, bagmanf, bagmanf, cclimber_state, 0, ROT270, "bootleg", "Le Bagnard (bootleg on Crazy Kong hardware)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) GAME( 1981, rpatrol, 0, cclimber, rpatrol, cclimber_state, rpatrol, ROT0, "Orca", "River Patrol (Japan)", MACHINE_SUPPORTS_SAVE) -GAME( 1981, rpatrola, rpatrol, cclimber, rpatrol, driver_device, 0, ROT0, "bootleg", "River Patrol (bootleg set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, rpatrolb, rpatrol, cclimber, rpatrol, driver_device, 0, ROT0, "bootleg", "River Patrol (bootleg set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, silvland, rpatrol, cclimber, rpatrol, driver_device, 0, ROT0, "Falcon", "Silver Land", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, rpatrola, rpatrol, cclimber, rpatrol, cclimber_state, 0, ROT0, "bootleg", "River Patrol (bootleg set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, rpatrolb, rpatrol, cclimber, rpatrol, cclimber_state, 0, ROT0, "bootleg", "River Patrol (bootleg set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, silvland, rpatrol, cclimber, rpatrol, cclimber_state, 0, ROT0, "Falcon", "Silver Land", MACHINE_SUPPORTS_SAVE ) // see pacman.cpp for parent GAME( 1985, cannonb, cannonbp, cannonb, cannonb, cclimber_state, cannonb, ROT90, "bootleg (Soft)", "Cannon Ball (bootleg on Crazy Kong hardware) (set 1, buggy)" , MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // bootleggers missed protection after bonus game GAME( 1985, cannonb2, cannonbp, cannonb, cannonb, cclimber_state, cannonb2, ROT90, "bootleg (TV Game Gruenberg)", "Cannon Ball (bootleg on Crazy Kong hardware) (set 2, buggy)", MACHINE_SUPPORTS_SAVE ) // bootleggers missed protection after bonus game GAME( 1985, cannonb3, cannonbp, cannonb, cannonb, cclimber_state, cannonb2, ROT90, "bootleg (Soft)", "Cannon Ball (bootleg on Crazy Kong hardware) (set 3, no bonus game)", MACHINE_SUPPORTS_SAVE ) // the bonus game is patched out, thus avoiding the protection issue -GAME( 1982, swimmer, 0, swimmer, swimmer, driver_device, 0, ROT0, "Tehkan", "Swimmer (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, swimmera, swimmer, swimmer, swimmer, driver_device, 0, ROT0, "Tehkan", "Swimmer (set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, swimmerb, swimmer, swimmer, swimmerb, driver_device, 0, ROT0, "Tehkan", "Swimmer (set 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, swimmer, 0, swimmer, swimmer, cclimber_state, 0, ROT0, "Tehkan", "Swimmer (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, swimmera, swimmer, swimmer, swimmer, cclimber_state, 0, ROT0, "Tehkan", "Swimmer (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, swimmerb, swimmer, swimmer, swimmerb, cclimber_state, 0, ROT0, "Tehkan", "Swimmer (set 3)", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, guzzler, 0, guzzler, guzzler, driver_device, 0, ROT90, "Tehkan", "Guzzler", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, guzzlers, guzzler, guzzler, guzzler, driver_device, 0, ROT90, "Tehkan", "Guzzler (Swimmer Conversion)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, guzzler, 0, guzzler, guzzler, cclimber_state, 0, ROT90, "Tehkan", "Guzzler", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, guzzlers, guzzler, guzzler, guzzler, cclimber_state, 0, ROT90, "Tehkan", "Guzzler (Swimmer Conversion)", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, yamato, 0, yamato, yamato, cclimber_state, yamato, ROT90, "Sega", "Yamato (US)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1983, yamato2, yamato, yamato, yamato, cclimber_state, yamato, ROT90, "Sega", "Yamato (World?)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1983, yamato, 0, yamato, yamato, cclimber_state, yamato, ROT90, "Sega", "Yamato (US)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1983, yamato2, yamato, yamato, yamato, cclimber_state, yamato, ROT90, "Sega", "Yamato (World?)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) GAME( 1983, toprollr, 0, toprollr, toprollr, cclimber_state, toprollr, ROT90, "Jaleco", "Top Roller", MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/ccs2810.cpp b/src/mame/drivers/ccs2810.cpp index f9dc670b051..7cc9676938c 100644 --- a/src/mame/drivers/ccs2810.cpp +++ b/src/mame/drivers/ccs2810.cpp @@ -92,7 +92,8 @@ public: DECLARE_WRITE8_MEMBER(port20_w); DECLARE_WRITE8_MEMBER(port34_w); DECLARE_WRITE8_MEMBER(port40_w); - DECLARE_WRITE8_MEMBER(kbd_put); + void kbd_put(u8 data); + private: uint8_t m_term_data; uint8_t m_26_count; @@ -103,7 +104,7 @@ private: floppy_image_device *m_floppy; required_device m_maincpu; required_device m_terminal; - optional_device m_fdc; + optional_device m_fdc; optional_device m_floppy0; }; @@ -130,7 +131,7 @@ static ADDRESS_MAP_START(ccs2422_io, AS_IO, 8, ccs_state) AM_RANGE(0x20, 0x20) AM_READWRITE(port20_r,port20_w) AM_RANGE(0x25, 0x25) AM_READ(port25_r) AM_RANGE(0x26, 0x26) AM_READ(port26_r) - AM_RANGE(0x30, 0x33) AM_DEVREADWRITE("fdc", mb8877_t, read, write) + AM_RANGE(0x30, 0x33) AM_DEVREADWRITE("fdc", mb8877_device, read, write) AM_RANGE(0x34, 0x34) AM_READWRITE(port34_r,port34_w) AM_RANGE(0x40, 0x40) AM_WRITE(port40_w) ADDRESS_MAP_END @@ -167,7 +168,7 @@ WRITE8_MEMBER( ccs_state::port20_w ) m_terminal->write(space, 0, data & 0x7f); } -WRITE8_MEMBER( ccs_state::kbd_put ) +void ccs_state::kbd_put(u8 data) { m_term_data = data; } @@ -325,7 +326,7 @@ SLOT_INTERFACE_END //SLOT_INTERFACE( "525dd", FLOPPY_525_DD ) -static MACHINE_CONFIG_START( ccs2810, ccs_state ) +static MACHINE_CONFIG_START( ccs2810 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80, XTAL_16MHz / 4) MCFG_CPU_PROGRAM_MAP(ccs2810_mem) @@ -334,13 +335,13 @@ static MACHINE_CONFIG_START( ccs2810, ccs_state ) /* video hardware */ MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0) - MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(ccs_state, kbd_put)) + MCFG_GENERIC_TERMINAL_KEYBOARD_CB(PUT(ccs_state, kbd_put)) /* Devices */ //MCFG_INS8250_ADD( "ins8250", com_intf, XTAL_1_8432MHz ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( ccs2422, ccs_state ) +static MACHINE_CONFIG_START( ccs2422 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80, XTAL_16MHz / 4) MCFG_CPU_PROGRAM_MAP(ccs2810_mem) @@ -349,7 +350,7 @@ static MACHINE_CONFIG_START( ccs2422, ccs_state ) /* video hardware */ MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0) - MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(ccs_state, kbd_put)) + MCFG_GENERIC_TERMINAL_KEYBOARD_CB(PUT(ccs_state, kbd_put)) /* Devices */ MCFG_MB8877_ADD("fdc", XTAL_16MHz / 8) // UB1793 or MB8877 @@ -375,6 +376,6 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1980, ccs2810, 0, 0, ccs2810, ccs2810, ccs_state, ccs2810, "California Computer Systems", "CCS Model 2810 CPU card", MACHINE_NO_SOUND_HW) +/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ +COMP( 1980, ccs2810, 0, 0, ccs2810, ccs2810, ccs_state, ccs2810, "California Computer Systems", "CCS Model 2810 CPU card", MACHINE_NO_SOUND_HW) COMP( 1980, ccs2422, ccs2810, 0, ccs2422, ccs2810, ccs_state, ccs2422, "California Computer Systems", "CCS Model 2422B FDC card", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW) diff --git a/src/mame/drivers/ccs300.cpp b/src/mame/drivers/ccs300.cpp index 7dc4c42788a..78f52e4f770 100644 --- a/src/mame/drivers/ccs300.cpp +++ b/src/mame/drivers/ccs300.cpp @@ -41,7 +41,8 @@ public: DECLARE_READ8_MEMBER(port11_r); DECLARE_WRITE8_MEMBER(port10_w); DECLARE_WRITE8_MEMBER(port40_w); - DECLARE_WRITE8_MEMBER(kbd_put); + void kbd_put(u8 data); + private: uint8_t m_term_data; required_device m_maincpu; @@ -88,7 +89,7 @@ WRITE8_MEMBER( ccs300_state::port10_w ) m_terminal->write(space, 0, data & 0x7f); } -WRITE8_MEMBER( ccs300_state::kbd_put ) +void ccs300_state::kbd_put(u8 data) { m_term_data = data; } @@ -118,7 +119,7 @@ DRIVER_INIT_MEMBER( ccs300_state, ccs300 ) membank("bankw0")->configure_entry(0, &main[0x0000]); } -static MACHINE_CONFIG_START( ccs300, ccs300_state ) +static MACHINE_CONFIG_START( ccs300 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80, XTAL_4MHz) MCFG_CPU_PROGRAM_MAP(ccs300_mem) @@ -127,7 +128,7 @@ static MACHINE_CONFIG_START( ccs300, ccs300_state ) /* video hardware */ MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0) - MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(ccs300_state, kbd_put)) + MCFG_GENERIC_TERMINAL_KEYBOARD_CB(PUT(ccs300_state, kbd_put)) MACHINE_CONFIG_END /* ROM definition */ @@ -138,5 +139,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ +/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ COMP( 19??, ccs300, ccs2810, 0, ccs300, ccs300, ccs300_state, ccs300, "California Computer Systems", "CCS Model 300", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/cd2650.cpp b/src/mame/drivers/cd2650.cpp index bed15d8e2ea..1cf80f8a3d5 100644 --- a/src/mame/drivers/cd2650.cpp +++ b/src/mame/drivers/cd2650.cpp @@ -53,7 +53,7 @@ public: DECLARE_READ8_MEMBER(keyin_r); DECLARE_WRITE8_MEMBER(beep_w); - DECLARE_WRITE8_MEMBER(kbd_put); + void kbd_put(u8 data); DECLARE_READ8_MEMBER(cass_r); DECLARE_WRITE_LINE_MEMBER(cass_w); DECLARE_QUICKLOAD_LOAD_MEMBER(cd2650); @@ -182,7 +182,7 @@ static GFXDECODE_START( cd2650 ) GFXDECODE_ENTRY( "chargen", 0x0000, cd2650_charlayout, 0, 1 ) GFXDECODE_END -WRITE8_MEMBER( cd2650_state::kbd_put ) +void cd2650_state::kbd_put(u8 data) { if (data) m_term_data = data; @@ -257,7 +257,7 @@ QUICKLOAD_LOAD_MEMBER( cd2650_state, cd2650 ) return result; } -static MACHINE_CONFIG_START( cd2650, cd2650_state ) +static MACHINE_CONFIG_START( cd2650 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",S2650, XTAL_1MHz) MCFG_CPU_PROGRAM_MAP(cd2650_mem) @@ -287,7 +287,7 @@ static MACHINE_CONFIG_START( cd2650, cd2650_state ) /* Devices */ MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0) - MCFG_GENERIC_KEYBOARD_CB(WRITE8(cd2650_state, kbd_put)) + MCFG_GENERIC_KEYBOARD_CB(PUT(cd2650_state, kbd_put)) MCFG_CASSETTE_ADD( "cassette" ) MACHINE_CONFIG_END @@ -314,5 +314,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1977, cd2650, 0, 0, cd2650, cd2650, driver_device, 0, "Central Data", "CD 2650", 0 ) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 1977, cd2650, 0, 0, cd2650, cd2650, cd2650_state, 0, "Central Data", "CD 2650", 0 ) diff --git a/src/mame/drivers/cdc721.cpp b/src/mame/drivers/cdc721.cpp index e427048a09f..efcb2f64363 100644 --- a/src/mame/drivers/cdc721.cpp +++ b/src/mame/drivers/cdc721.cpp @@ -111,7 +111,7 @@ uint32_t cdc721_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap return 0; } -static MACHINE_CONFIG_START( cdc721, cdc721_state ) +static MACHINE_CONFIG_START( cdc721 ) // basic machine hardware MCFG_CPU_ADD("maincpu", Z80, 4000000) MCFG_CPU_PROGRAM_MAP(cdc721_mem) @@ -141,4 +141,4 @@ ROM_START( cdc721 ) ROM_LOAD( "66315039", 0x0000, 0x1000, CRC(5c9aa968) SHA1(3ec7c5f25562579e6ed3fda7562428ff5e6b9550) ) // chargen ROM_END -COMP( 1981, cdc721, 0, 0, cdc721, cdc721, driver_device, 0, "Control Data Corporation", "CDC721 Terminal", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW ) +COMP( 1981, cdc721, 0, 0, cdc721, cdc721, cdc721_state, 0, "Control Data Corporation", "CDC721 Terminal", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW ) diff --git a/src/mame/drivers/cdi.cpp b/src/mame/drivers/cdi.cpp index ffb6201739b..1e2acade9cb 100644 --- a/src/mame/drivers/cdi.cpp +++ b/src/mame/drivers/cdi.cpp @@ -770,7 +770,7 @@ WRITE8_MEMBER( cdi_state::slave_io_w ) *************************/ // CD-i Mono-I system base -static MACHINE_CONFIG_START( cdimono1_base, cdi_state ) +static MACHINE_CONFIG_START( cdimono1_base ) MCFG_CPU_ADD("maincpu", SCC68070, CLOCK_A/2) MCFG_CPU_PROGRAM_MAP(cdimono1_mem) @@ -816,7 +816,7 @@ static MACHINE_CONFIG_START( cdimono1_base, cdi_state ) MACHINE_CONFIG_END // CD-i model 220 (Mono-II, NTSC) -static MACHINE_CONFIG_START( cdimono2, cdi_state ) +static MACHINE_CONFIG_START( cdimono2 ) MCFG_CPU_ADD("maincpu", SCC68070, CLOCK_A/2) MCFG_CPU_PROGRAM_MAP(cdimono2_mem) @@ -870,7 +870,7 @@ static MACHINE_CONFIG_START( cdimono2, cdi_state ) MCFG_MK48T08_ADD( "mk48t08" ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( cdi910, cdi_state ) +static MACHINE_CONFIG_START( cdi910 ) MCFG_CPU_ADD("maincpu", SCC68070, CLOCK_A/2) MCFG_CPU_PROGRAM_MAP(cdi910_mem) @@ -1278,31 +1278,31 @@ ROM_END * Game driver(s) * *************************/ -/* YEAR NAME PARENT COMPAT MACHINE INPUT DEVICE INIT COMPANY FULLNAME */ +/* YEAR NAME PARENT COMPAT MACHINE INPUT DEVICE INIT COMPANY FULLNAME */ // BIOS / System -CONS( 1991, cdimono1, 0, 0, cdimono1, cdi, driver_device, 0, "Philips", "CD-i (Mono-I) (PAL)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -CONS( 1991, cdimono2, 0, 0, cdimono2, cdimono2, driver_device, 0, "Philips", "CD-i (Mono-II) (NTSC)", MACHINE_NOT_WORKING ) -CONS( 1991, cdi910, 0, 0, cdi910, cdimono2, driver_device, 0, "Philips", "CD-i 910-17P Mini-MMC (PAL)", MACHINE_NOT_WORKING ) -CONS( 1991, cdi490a, 0, 0, cdimono1, cdi, driver_device, 0, "Philips", "CD-i 490", MACHINE_NOT_WORKING ) +CONS( 1991, cdimono1, 0, 0, cdimono1, cdi, cdi_state, 0, "Philips", "CD-i (Mono-I) (PAL)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +CONS( 1991, cdimono2, 0, 0, cdimono2, cdimono2, cdi_state, 0, "Philips", "CD-i (Mono-II) (NTSC)", MACHINE_NOT_WORKING ) +CONS( 1991, cdi910, 0, 0, cdi910, cdimono2, cdi_state, 0, "Philips", "CD-i 910-17P Mini-MMC (PAL)", MACHINE_NOT_WORKING ) +CONS( 1991, cdi490a, 0, 0, cdimono1, cdi, cdi_state, 0, "Philips", "CD-i 490", MACHINE_NOT_WORKING ) // The Quizard games are RETAIL CD-i units, with additional JAMMA adapters & dongles for protection, hence being 'clones' of the system. -GAME( 1995, cdibios, 0, cdimono1_base, quizard, driver_device, 0, ROT0, "Philips", "CD-i (Mono-I) (PAL) BIOS", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IS_BIOS_ROOT ) +GAME( 1995, cdibios, 0, cdimono1_base, quizard, cdi_state, 0, ROT0, "Philips", "CD-i (Mono-I) (PAL) BIOS", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IS_BIOS_ROOT ) -GAME( 1995, quizard, cdibios, quizard1, quizard, driver_device, 0, ROT0, "TAB Austria", "Quizard (v1.8)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION ) -GAME( 1995, quizard_17, quizard, quizard1, quizard, driver_device, 0, ROT0, "TAB Austria", "Quizard (v1.7)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION ) -GAME( 1995, quizard_12, quizard, quizard1, quizard, driver_device, 0, ROT0, "TAB Austria", "Quizard (v1.2)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION ) -GAME( 1995, quizard_10, quizard, quizard1, quizard, driver_device, 0, ROT0, "TAB Austria", "Quizard (v1.0)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION ) +GAME( 1995, quizard, cdibios, quizard1, quizard, cdi_state, 0, ROT0, "TAB Austria", "Quizard (v1.8)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION ) +GAME( 1995, quizard_17, quizard, quizard1, quizard, cdi_state, 0, ROT0, "TAB Austria", "Quizard (v1.7)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION ) +GAME( 1995, quizard_12, quizard, quizard1, quizard, cdi_state, 0, ROT0, "TAB Austria", "Quizard (v1.2)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION ) +GAME( 1995, quizard_10, quizard, quizard1, quizard, cdi_state, 0, ROT0, "TAB Austria", "Quizard (v1.0)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION ) -GAME( 1995, quizard2, cdibios, quizard2, quizard, driver_device, 0, ROT0, "TAB Austria", "Quizard 2 (v2.3)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION ) -GAME( 1995, quizard2_22, quizard2, quizard2, quizard, driver_device, 0, ROT0, "TAB Austria", "Quizard 2 (v2.2)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION ) +GAME( 1995, quizard2, cdibios, quizard2, quizard, cdi_state, 0, ROT0, "TAB Austria", "Quizard 2 (v2.3)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION ) +GAME( 1995, quizard2_22, quizard2, quizard2, quizard, cdi_state, 0, ROT0, "TAB Austria", "Quizard 2 (v2.2)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION ) // Quizard 3 and 4 will hang after inserting a coin (incomplete protection sims?) -GAME( 1995, quizard3, cdibios, quizard3, quizard, driver_device, 0, ROT0, "TAB Austria", "Quizard 3 (v3.4)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION ) -GAME( 1996, quizard3_32, quizard3, quizard3, quizard, driver_device, 0, ROT0, "TAB Austria", "Quizard 3 (v3.2)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION ) +GAME( 1995, quizard3, cdibios, quizard3, quizard, cdi_state, 0, ROT0, "TAB Austria", "Quizard 3 (v3.4)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION ) +GAME( 1996, quizard3_32, quizard3, quizard3, quizard, cdi_state, 0, ROT0, "TAB Austria", "Quizard 3 (v3.2)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION ) -GAME( 1998, quizard4, cdibios, quizard4, quizard, driver_device, 0, ROT0, "TAB Austria", "Quizard 4 Rainbow (v4.2)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION ) -GAME( 1998, quizard4_41, quizard4, quizard4, quizard, driver_device, 0, ROT0, "TAB Austria", "Quizard 4 Rainbow (v4.1)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION ) -GAME( 1997, quizard4_40, quizard4, quizard4, quizard, driver_device, 0, ROT0, "TAB Austria", "Quizard 4 Rainbow (v4.0)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION ) +GAME( 1998, quizard4, cdibios, quizard4, quizard, cdi_state, 0, ROT0, "TAB Austria", "Quizard 4 Rainbow (v4.2)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION ) +GAME( 1998, quizard4_41, quizard4, quizard4, quizard, cdi_state, 0, ROT0, "TAB Austria", "Quizard 4 Rainbow (v4.1)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION ) +GAME( 1997, quizard4_40, quizard4, quizard4, quizard, cdi_state, 0, ROT0, "TAB Austria", "Quizard 4 Rainbow (v4.0)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION ) diff --git a/src/mame/drivers/cedar_magnet.cpp b/src/mame/drivers/cedar_magnet.cpp index efe3a5e1873..e19e894177f 100644 --- a/src/mame/drivers/cedar_magnet.cpp +++ b/src/mame/drivers/cedar_magnet.cpp @@ -750,7 +750,7 @@ INTERRUPT_GEN_MEMBER(cedar_magnet_state::irq) m_cedsprite->irq_hold(); } -static MACHINE_CONFIG_START( cedar_magnet, cedar_magnet_state ) +static MACHINE_CONFIG_START( cedar_magnet ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80,4000000) /* ? MHz */ @@ -902,8 +902,8 @@ DRIVER_INIT_MEMBER(cedar_magnet_state, mag_exzi) m_prothack = mag_exzi_protection_hack; } -GAME( 1987, cedmag, 0, cedar_magnet, cedar_magnet, driver_device, 0, ROT0, "EFO SA / Cedar", "Magnet System", MACHINE_IS_BIOS_ROOT ) +GAME( 1987, cedmag, 0, cedar_magnet, cedar_magnet, cedar_magnet_state, 0, ROT0, "EFO SA / Cedar", "Magnet System", MACHINE_IS_BIOS_ROOT ) -GAME( 1987, mag_time, cedmag, cedar_magnet, cedar_magnet, cedar_magnet_state, mag_time, ROT90, "EFO SA / Cedar", "Time Scanner (TS 2.0, Magnet System)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) // original game was by Sega -GAME( 1987, mag_exzi, cedmag, cedar_magnet, cedar_magnet, cedar_magnet_state, mag_exzi, ROT0, "EFO SA / Cedar", "Exzisus (EX 1.0, Magnet System)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) // original game was by Taito +GAME( 1987, mag_time, cedmag, cedar_magnet, cedar_magnet, cedar_magnet_state, mag_time, ROT90, "EFO SA / Cedar", "Time Scanner (TS 2.0, Magnet System)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) // original game was by Sega +GAME( 1987, mag_exzi, cedmag, cedar_magnet, cedar_magnet, cedar_magnet_state, mag_exzi, ROT0, "EFO SA / Cedar", "Exzisus (EX 1.0, Magnet System)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) // original game was by Taito GAME( 1987, mag_xain, cedmag, cedar_magnet, cedar_magnet, cedar_magnet_state, mag_xain, ROT0, "EFO SA / Cedar", "Xain'd Sleena (SC 3.0, Magnet System)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) // original game was by Technos diff --git a/src/mame/drivers/centiped.cpp b/src/mame/drivers/centiped.cpp index 21f395df5fa..69116644ac6 100644 --- a/src/mame/drivers/centiped.cpp +++ b/src/mame/drivers/centiped.cpp @@ -1679,7 +1679,7 @@ GFXDECODE_END * *************************************/ -static MACHINE_CONFIG_START( centiped_base, centiped_state ) +static MACHINE_CONFIG_START( centiped_base ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, 12096000/8) /* 1.512 MHz (slows down to 0.75MHz while accessing playfield RAM) */ @@ -1842,7 +1842,7 @@ static MACHINE_CONFIG_DERIVED( mazeinv, milliped ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( bullsdrt, centiped_state ) +static MACHINE_CONFIG_START( bullsdrt ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", S2650, 12096000/8) @@ -2191,23 +2191,23 @@ DRIVER_INIT_MEMBER(centiped_state,multiped) *************************************/ // Centipede, Millipede, and clones -GAME( 1980, centiped, 0, centiped, centiped4,driver_device, 0, ROT270, "Atari", "Centipede (revision 4)", MACHINE_SUPPORTS_SAVE ) /* 1 Player Only with Timer Options */ -GAME( 1980, centiped3, centiped, centiped, centiped, driver_device, 0, ROT270, "Atari", "Centipede (revision 3)", MACHINE_SUPPORTS_SAVE ) -GAME( 1980, centiped2, centiped, centiped, centiped, driver_device, 0, ROT270, "Atari", "Centipede (revision 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1980, centiped1, centiped, centiped, centiped, driver_device, 0, ROT270, "Atari", "Centipede (revision 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1980, centipdb, centiped, centipdb, centiped, driver_device, 0, ROT270, "bootleg", "Centipede (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, centipdd, centiped, centiped, centiped, driver_device, 0, ROT270, "hack (Two-Bit Score)", "Centipede Dux (hack)", MACHINE_SUPPORTS_SAVE ) -GAME( 1980, caterplr, centiped, caterplr, caterplr, driver_device, 0, ROT270, "bootleg (Olympia)", "Caterpillar (bootleg of Centipede)", MACHINE_SUPPORTS_SAVE ) -GAME( 1980, millpac, centiped, centipdb, centiped, driver_device, 0, ROT270, "bootleg? (Valadon Automation)", "Millpac (bootleg of Centipede)", MACHINE_SUPPORTS_SAVE ) -GAME( 1980, magworm, centiped, magworm, magworm, driver_device, 0, ROT270, "bootleg (Sidam)", "Magic Worm (bootleg of Centipede, set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1980, magworma, centiped, magworm, magworm, driver_device, 0, ROT270, "bootleg", "Magic Worm (bootleg of Centipede, set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) -GAME( 1982, milliped, 0, milliped, milliped, driver_device, 0, ROT270, "Atari", "Millipede", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, millipdd, milliped, milliped, milliped, driver_device, 0, ROT270, "hack (Two-Bit Score)", "Millipede Dux (hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, centiped, 0, centiped, centiped4,centiped_state, 0, ROT270, "Atari", "Centipede (revision 4)", MACHINE_SUPPORTS_SAVE ) /* 1 Player Only with Timer Options */ +GAME( 1980, centiped3, centiped, centiped, centiped, centiped_state, 0, ROT270, "Atari", "Centipede (revision 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, centiped2, centiped, centiped, centiped, centiped_state, 0, ROT270, "Atari", "Centipede (revision 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, centiped1, centiped, centiped, centiped, centiped_state, 0, ROT270, "Atari", "Centipede (revision 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, centipdb, centiped, centipdb, centiped, centiped_state, 0, ROT270, "bootleg", "Centipede (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, centipdd, centiped, centiped, centiped, centiped_state, 0, ROT270, "hack (Two-Bit Score)", "Centipede Dux (hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, caterplr, centiped, caterplr, caterplr, centiped_state, 0, ROT270, "bootleg (Olympia)", "Caterpillar (bootleg of Centipede)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, millpac, centiped, centipdb, centiped, centiped_state, 0, ROT270, "bootleg? (Valadon Automation)", "Millpac (bootleg of Centipede)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, magworm, centiped, magworm, magworm, centiped_state, 0, ROT270, "bootleg (Sidam)", "Magic Worm (bootleg of Centipede, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, magworma, centiped, magworm, magworm, centiped_state, 0, ROT270, "bootleg", "Magic Worm (bootleg of Centipede, set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) +GAME( 1982, milliped, 0, milliped, milliped, centiped_state, 0, ROT270, "Atari", "Millipede", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, millipdd, milliped, milliped, milliped, centiped_state, 0, ROT270, "hack (Two-Bit Score)", "Millipede Dux (hack)", MACHINE_SUPPORTS_SAVE ) GAME( 2002, multiped, 0, multiped, multiped, centiped_state, multiped, ROT270, "hack (Braze Technologies)", "Multipede (Centipede/Millipede multigame kit)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // other Atari games -GAME( 1980, warlords, 0, warlords, warlords, driver_device, 0, ROT0, "Atari", "Warlords", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, mazeinv, 0, mazeinv, mazeinv, driver_device, 0, ROT270, "Atari", "Maze Invaders (prototype)", 0 ) +GAME( 1980, warlords, 0, warlords, warlords, centiped_state, 0, ROT0, "Atari", "Warlords", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, mazeinv, 0, mazeinv, mazeinv, centiped_state, 0, ROT270, "Atari", "Maze Invaders (prototype)", 0 ) // other manufacturers GAME( 1985, bullsdrt, 0, bullsdrt, bullsdrt, centiped_state, bullsdrt, ROT270, "Shinkai Inc. (Magic Electronics Inc. license)", "Bulls Eye Darts", MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/cesclass.cpp b/src/mame/drivers/cesclass.cpp index 48e0a078c7b..7cb395f0a4d 100644 --- a/src/mame/drivers/cesclass.cpp +++ b/src/mame/drivers/cesclass.cpp @@ -247,7 +247,7 @@ PALETTE_INIT_MEMBER(cesclassic_state, cesclassic) palette.set_pen_color(i, pal2bit(i), 0, 0); } -static MACHINE_CONFIG_START( cesclassic, cesclassic_state ) +static MACHINE_CONFIG_START( cesclassic ) MCFG_CPU_ADD("maincpu", M68000, 24000000/2 ) MCFG_CPU_PROGRAM_MAP(cesclassic_map) @@ -269,7 +269,7 @@ static MACHINE_CONFIG_START( cesclassic, cesclassic_state ) MCFG_PALETTE_INIT_OWNER(cesclassic_state, cesclassic) MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", 24000000/16, OKIM6295_PIN7_LOW) + MCFG_OKIM6295_ADD("oki", 24000000/16, PIN7_LOW) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) MACHINE_CONFIG_END @@ -301,6 +301,6 @@ ROM_START(tsclass) ROM_END -GAME(1997, hrclass, 0, cesclassic, cesclassic, driver_device, 0, ROT0, "Creative Electronics And Software", "Home Run Classic (v1.21 12-feb-1997)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) -GAME(1997, ccclass, 0, cesclassic, cesclassic, driver_device, 0, ROT0, "Creative Electronics And Software", "Country Club Classic (v1.10 03-apr-1997)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) -GAME(1997, tsclass, 0, cesclassic, cesclassic, driver_device, 0, ROT0, "Creative Electronics And Software", "Trap Shoot Classic (v1.0 21-mar-1997)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) +GAME(1997, hrclass, 0, cesclassic, cesclassic, cesclassic_state, 0, ROT0, "Creative Electronics And Software", "Home Run Classic (v1.21 12-feb-1997)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) +GAME(1997, ccclass, 0, cesclassic, cesclassic, cesclassic_state, 0, ROT0, "Creative Electronics And Software", "Country Club Classic (v1.10 03-apr-1997)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) +GAME(1997, tsclass, 0, cesclassic, cesclassic, cesclassic_state, 0, ROT0, "Creative Electronics And Software", "Trap Shoot Classic (v1.0 21-mar-1997)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) diff --git a/src/mame/drivers/cfx9850.cpp b/src/mame/drivers/cfx9850.cpp index 84edcf9c8ae..8e2375f82f6 100644 --- a/src/mame/drivers/cfx9850.cpp +++ b/src/mame/drivers/cfx9850.cpp @@ -279,7 +279,7 @@ u32 cfx9850_state::screen_update_cfx9850(screen_device &screen, bitmap_ind16 &bi } -static MACHINE_CONFIG_START(cfx9850, cfx9850_state) +static MACHINE_CONFIG_START(cfx9850) MCFG_CPU_ADD("maincpu", HCD62121, 4300000) /* X1 - 4.3 MHz */ MCFG_CPU_PROGRAM_MAP(cfx9850) MCFG_HCD62121_KOL_CB(WRITE8(cfx9850_state, kol_w)) @@ -317,4 +317,4 @@ ROM_START(cfx9850) ROM_END -COMP(1996, cfx9850, 0, 0, cfx9850, cfx9850, driver_device, 0, "Casio", "CFX-9850G", MACHINE_NO_SOUND | MACHINE_NOT_WORKING) +COMP(1996, cfx9850, 0, 0, cfx9850, cfx9850, cfx9850_state, 0, "Casio", "CFX-9850G", MACHINE_NO_SOUND | MACHINE_NOT_WORKING) diff --git a/src/mame/drivers/cgc7900.cpp b/src/mame/drivers/cgc7900.cpp index 7d6693fa07c..c96adab9e5d 100644 --- a/src/mame/drivers/cgc7900.cpp +++ b/src/mame/drivers/cgc7900.cpp @@ -355,7 +355,7 @@ void cgc7900_state::machine_reset() MACHINE_DRIVER( cgc7900 ) -------------------------------------------------*/ -static MACHINE_CONFIG_START( cgc7900, cgc7900_state ) +static MACHINE_CONFIG_START( cgc7900 ) /* basic machine hardware */ MCFG_CPU_ADD(M68000_TAG, M68000, XTAL_28_48MHz/4) MCFG_CPU_PROGRAM_MAP(cgc7900_mem) @@ -441,5 +441,5 @@ ROM_END SYSTEM DRIVERS ***************************************************************************/ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1980, cgc7900, 0, 0, cgc7900, cgc7900, driver_device, 0, "Chromatics", "CGC 7900", MACHINE_NOT_WORKING) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +COMP( 1980, cgc7900, 0, 0, cgc7900, cgc7900, cgc7900_state, 0, "Chromatics", "CGC 7900", MACHINE_NOT_WORKING) diff --git a/src/mame/drivers/cgenie.cpp b/src/mame/drivers/cgenie.cpp index b8e7f6135ec..b4ebf9798fa 100644 --- a/src/mame/drivers/cgenie.cpp +++ b/src/mame/drivers/cgenie.cpp @@ -81,7 +81,7 @@ private: required_device m_ram; required_device m_crtc; required_device m_rs232; - required_device m_exp; + required_device m_exp; required_memory_region m_char_rom; required_shared_ptr m_color_ram; required_shared_ptr m_font_ram; @@ -433,7 +433,7 @@ const rgb_t cgenie_state::m_palette_nz[] = // MACHINE DEFINTIONS //************************************************************************** -static MACHINE_CONFIG_START( cgenie, cgenie_state ) +static MACHINE_CONFIG_START( cgenie ) // basic machine hardware MCFG_CPU_ADD("maincpu", Z80, XTAL_17_73447MHz / 8) // 2.2168 MHz MCFG_CPU_PROGRAM_MAP(cgenie_mem) @@ -453,10 +453,10 @@ static MACHINE_CONFIG_START( cgenie, cgenie_state ) // sound hardware MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_ADD("ay8910", AY8910, XTAL_17_73447MHz / 8) - MCFG_AY8910_PORT_A_READ_CB(DEVREAD8("par", parallel_slot_device, pa_r)) - MCFG_AY8910_PORT_A_WRITE_CB(DEVWRITE8("par", parallel_slot_device, pa_w)) - MCFG_AY8910_PORT_B_READ_CB(DEVREAD8("par", parallel_slot_device, pb_r)) - MCFG_AY8910_PORT_B_WRITE_CB(DEVWRITE8("par", parallel_slot_device, pb_w)) + MCFG_AY8910_PORT_A_READ_CB(DEVREAD8("par", cg_parallel_slot_device, pa_r)) + MCFG_AY8910_PORT_A_WRITE_CB(DEVWRITE8("par", cg_parallel_slot_device, pa_w)) + MCFG_AY8910_PORT_B_READ_CB(DEVREAD8("par", cg_parallel_slot_device, pb_r)) + MCFG_AY8910_PORT_B_WRITE_CB(DEVWRITE8("par", cg_parallel_slot_device, pb_w)) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.75) MCFG_CASSETTE_ADD("cassette") @@ -472,11 +472,11 @@ static MACHINE_CONFIG_START( cgenie, cgenie_state ) MCFG_RS232_DCD_HANDLER(WRITELINE(cgenie_state, rs232_dcd_w)) // cartridge expansion slot - MCFG_EXPANSION_SLOT_ADD("exp") - MCFG_EXPANSION_SLOT_INT_HANDLER(INPUTLINE("maincpu", INPUT_LINE_IRQ0)) + MCFG_CG_EXP_SLOT_ADD("exp") + MCFG_CG_EXP_SLOT_INT_HANDLER(INPUTLINE("maincpu", INPUT_LINE_IRQ0)) // parallel slot - MCFG_PARALLEL_SLOT_ADD("par") + MCFG_CG_PARALLEL_SLOT_ADD("par") // internal ram MCFG_RAM_ADD(RAM_TAG) diff --git a/src/mame/drivers/chaknpop.cpp b/src/mame/drivers/chaknpop.cpp index d88f3ba3420..23267791a3c 100644 --- a/src/mame/drivers/chaknpop.cpp +++ b/src/mame/drivers/chaknpop.cpp @@ -354,7 +354,7 @@ void chaknpop_state::machine_reset() m_mcu_select = 0; } -static MACHINE_CONFIG_START( chaknpop, chaknpop_state ) +static MACHINE_CONFIG_START( chaknpop ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_18MHz / 6) /* Verified on PCB */ @@ -421,5 +421,5 @@ ROM_START( chaknpop ) ROM_END -/* ( YEAR NAME PARENT MACHINE INPUT INIT MONITOR COMPANY FULLNAME ) */ -GAME( 1983, chaknpop, 0, chaknpop, chaknpop, driver_device, 0, ROT0, "Taito Corporation", "Chack'n Pop", MACHINE_SUPPORTS_SAVE ) +/* ( YEAR NAME PARENT MACHINE INPUT STATE INIT MONITOR COMPANY FULLNAME FLAGS ) */ +GAME( 1983, chaknpop, 0, chaknpop, chaknpop, chaknpop_state, 0, ROT0, "Taito Corporation", "Chack'n Pop", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/cham24.cpp b/src/mame/drivers/cham24.cpp index 4f86c9ffcf6..3ec944ada4b 100644 --- a/src/mame/drivers/cham24.cpp +++ b/src/mame/drivers/cham24.cpp @@ -309,7 +309,7 @@ static GFXDECODE_START( cham24 ) /* none, the ppu generates one */ GFXDECODE_END -static MACHINE_CONFIG_START( cham24, cham24_state ) +static MACHINE_CONFIG_START( cham24 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", N2A03, NTSC_APU_CLOCK) MCFG_CPU_PROGRAM_MAP(cham24_map) diff --git a/src/mame/drivers/champbas.cpp b/src/mame/drivers/champbas.cpp index 8db48119ce4..c30c85745c4 100644 --- a/src/mame/drivers/champbas.cpp +++ b/src/mame/drivers/champbas.cpp @@ -520,7 +520,7 @@ INTERRUPT_GEN_MEMBER(champbas_state::vblank_irq) } -static MACHINE_CONFIG_START( talbot, champbas_state ) +static MACHINE_CONFIG_START( talbot ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_18_432MHz/6) @@ -557,7 +557,7 @@ static MACHINE_CONFIG_START( talbot, champbas_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( champbas, champbas_state ) +static MACHINE_CONFIG_START( champbas ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_18_432MHz/6) @@ -629,7 +629,7 @@ static MACHINE_CONFIG_DERIVED( champbb2, champbasj ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( exctsccr, champbas_state ) +static MACHINE_CONFIG_START( exctsccr ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_18_432MHz/6 ) @@ -690,7 +690,7 @@ static MACHINE_CONFIG_START( exctsccr, champbas_state ) MACHINE_CONFIG_END /* Bootleg running on a modified Champion Baseball board */ -static MACHINE_CONFIG_START( exctsccrb, champbas_state ) +static MACHINE_CONFIG_START( exctsccrb ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_18_432MHz/6) @@ -1243,8 +1243,8 @@ DRIVER_INIT_MEMBER(champbas_state,exctsccr) * *************************************/ -/* YEAR NAME PARENT MACHINE INPUT INIT MONITOR, COMPANY, FULLNAME, FLAGS */ -GAME( 1982, talbot, 0, talbot, talbot, driver_device, 0, ROT270, "Alpha Denshi Co. (Volt Electronics license)", "Talbot", MACHINE_SUPPORTS_SAVE ) +/* YEAR NAME PARENT MACHINE INPUT INIT MONITOR COMPANY, FULLNAME, FLAGS */ +GAME( 1982, talbot, 0, talbot, talbot, champbas_state, 0, ROT270, "Alpha Denshi Co. (Volt Electronics license)", "Talbot", MACHINE_SUPPORTS_SAVE ) GAME( 1983, champbas, 0, champbas, champbas, champbas_state, champbas, ROT0, "Alpha Denshi Co. (Sega license)", "Champion Base Ball", MACHINE_SUPPORTS_SAVE ) // no protection GAME( 1983, champbasj, champbas, champbasj, champbas, champbas_state, champbas, ROT0, "Alpha Denshi Co.", "Champion Base Ball (Japan set 1)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/champbwl.cpp b/src/mame/drivers/champbwl.cpp index 44a5b0f2182..7e358ebc34a 100644 --- a/src/mame/drivers/champbwl.cpp +++ b/src/mame/drivers/champbwl.cpp @@ -491,7 +491,7 @@ WRITE_LINE_MEMBER(champbwl_state::screen_vblank_champbwl) } -static MACHINE_CONFIG_START( champbwl, champbwl_state ) +static MACHINE_CONFIG_START( champbwl ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 16000000/4) /* 4MHz */ @@ -556,7 +556,7 @@ MACHINE_START_MEMBER(champbwl_state,doraemon) membank("bank1")->configure_entries(0, 4, &ROM[0x10000], 0x4000); } -static MACHINE_CONFIG_START( doraemon, champbwl_state ) +static MACHINE_CONFIG_START( doraemon ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_14_31818MHz/4) @@ -713,5 +713,5 @@ ROM_START( doraemon ) ROM_LOAD( "u27-01.bin", 0x00200, 0x200, CRC(66245fc7) SHA1(c94d9dce7b557c21a3dc1f3f8a1b29594715c994) ) ROM_END -GAME( 1993?,doraemon, 0, doraemon, doraemon, driver_device, 0, ROT0, "Sunsoft / Epoch", "Doraemon no Eawase Montage (prototype)", MACHINE_SUPPORTS_SAVE ) // year not shown, datecodes on pcb suggests late-1993 -GAME( 1989, champbwl, 0, champbwl, champbwl, driver_device, 0, ROT270, "Seta / Romstar Inc.", "Championship Bowling", MACHINE_SUPPORTS_SAVE ) +GAME( 1993?,doraemon, 0, doraemon, doraemon, champbwl_state, 0, ROT0, "Sunsoft / Epoch", "Doraemon no Eawase Montage (prototype)", MACHINE_SUPPORTS_SAVE ) // year not shown, datecodes on pcb suggests late-1993 +GAME( 1989, champbwl, 0, champbwl, champbwl, champbwl_state, 0, ROT270, "Seta / Romstar Inc.", "Championship Bowling", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/chanbara.cpp b/src/mame/drivers/chanbara.cpp index d31dc17f154..d18ae9f683b 100644 --- a/src/mame/drivers/chanbara.cpp +++ b/src/mame/drivers/chanbara.cpp @@ -385,7 +385,7 @@ void chanbara_state::machine_reset() m_scrollhi = 0; } -static MACHINE_CONFIG_START( chanbara, chanbara_state ) +static MACHINE_CONFIG_START( chanbara ) MCFG_CPU_ADD("maincpu", M6809, 12000000/8) MCFG_CPU_PROGRAM_MAP(chanbara_map) diff --git a/src/mame/drivers/chance32.cpp b/src/mame/drivers/chance32.cpp index 1e45c54de6a..6da824a83b1 100644 --- a/src/mame/drivers/chance32.cpp +++ b/src/mame/drivers/chance32.cpp @@ -444,7 +444,7 @@ void chance32_state::machine_reset() } -static MACHINE_CONFIG_START( chance32, chance32_state ) +static MACHINE_CONFIG_START( chance32 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80,12000000/2) @@ -474,7 +474,7 @@ static MACHINE_CONFIG_START( chance32, chance32_state ) MCFG_SPEAKER_STANDARD_MONO("mono") /* clock at 1050 kHz match the 8000 Hz samples stored inside the ROM */ - MCFG_OKIM6295_ADD("oki", XTAL_1_056MHz, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki", XTAL_1_056MHz, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -517,5 +517,5 @@ ROM_END * Game Drivers * *************************/ -/* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS LAYOUT */ -GAMEL( 19??, chance32, 0, chance32, chance32, driver_device, 0, ROT0, "PAL System Co, Ltd.", "Chance Thirty Two", 0, layout_chance32 ) +/* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS LAYOUT */ +GAMEL( 19??, chance32, 0, chance32, chance32, chance32_state, 0, ROT0, "PAL System Co, Ltd.", "Chance Thirty Two", 0, layout_chance32 ) diff --git a/src/mame/drivers/changela.cpp b/src/mame/drivers/changela.cpp index b439776f39a..3d34527dea0 100644 --- a/src/mame/drivers/changela.cpp +++ b/src/mame/drivers/changela.cpp @@ -407,7 +407,7 @@ void changela_state::machine_reset() m_dir_31 = 0; } -static MACHINE_CONFIG_START( changela, changela_state ) +static MACHINE_CONFIG_START( changela ) MCFG_CPU_ADD("maincpu", Z80,5000000) MCFG_CPU_PROGRAM_MAP(changela_map) @@ -480,4 +480,4 @@ ROM_START( changela ) ROM_LOAD( "cl88", 0x0000, 0x0020, CRC(da4d6625) SHA1(2d9a268973518252eb36f479ab650af8c16c885c) ) /* math train state machine */ ROM_END -GAMEL( 1983, changela, 0, changela, changela, driver_device, 0, ROT180, "Taito Corporation", "Change Lanes", MACHINE_SUPPORTS_SAVE, layout_changela ) +GAMEL( 1983, changela, 0, changela, changela, changela_state, 0, ROT180, "Taito Corporation", "Change Lanes", MACHINE_SUPPORTS_SAVE, layout_changela ) diff --git a/src/mame/drivers/channelf.cpp b/src/mame/drivers/channelf.cpp index e3f545add2d..d7b666415d3 100644 --- a/src/mame/drivers/channelf.cpp +++ b/src/mame/drivers/channelf.cpp @@ -207,7 +207,7 @@ static MACHINE_CONFIG_FRAGMENT( channelf_cart ) MCFG_SOFTWARE_LIST_ADD("cart_list","channelf") MACHINE_CONFIG_END -static MACHINE_CONFIG_START( channelf, channelf_state ) +static MACHINE_CONFIG_START( channelf ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", F8, 3579545/2) /* Colorburst/2 */ MCFG_CPU_PROGRAM_MAP(channelf_map) @@ -234,7 +234,7 @@ static MACHINE_CONFIG_START( channelf, channelf_state ) MCFG_FRAGMENT_ADD( channelf_cart ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( sabavdpl, channelf_state ) +static MACHINE_CONFIG_START( sabavdpl ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", F8, MASTER_CLOCK_PAL) /* PAL speed */ MCFG_CPU_PROGRAM_MAP(channelf_map) @@ -262,7 +262,7 @@ static MACHINE_CONFIG_START( sabavdpl, channelf_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( channlf2, channelf_state ) +static MACHINE_CONFIG_START( channlf2 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", F8, 3579545/2) /* Colorburst / 2 */ MCFG_CPU_PROGRAM_MAP(channelf_map) @@ -290,7 +290,7 @@ static MACHINE_CONFIG_START( channlf2, channelf_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( sabavpl2, channelf_state ) +static MACHINE_CONFIG_START( sabavpl2 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", F8, MASTER_CLOCK_PAL) /* PAL speed */ MCFG_CPU_PROGRAM_MAP(channelf_map) @@ -342,12 +342,12 @@ ROM_END ***************************************************************************/ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -CONS( 1976, channelf, 0, 0, channelf, channelf, driver_device, 0, "Fairchild", "Channel F", 0 ) -CONS( 1977, sabavdpl, channelf, 0, sabavdpl, channelf, driver_device, 0, "SABA", "SABA Videoplay", 0 ) -CONS( 197?, luxorves, channelf, 0, sabavdpl, channelf, driver_device, 0, "Luxor", "Luxor Video Entertainment System", 0 ) -CONS( 1978, channlf2, 0, channelf, channlf2, channelf, driver_device, 0, "Fairchild", "Channel F II", 0 ) -CONS( 1978, sabavpl2, channlf2, 0, sabavpl2, channelf, driver_device, 0, "SABA", "SABA Videoplay 2", 0 ) -CONS( 197?, luxorvec, channlf2, 0, sabavpl2, channelf, driver_device, 0, "Luxor", "Luxor Video Entertainment Computer", 0 ) -CONS( 197?, itttelma, channlf2, 0, sabavpl2, channelf, driver_device, 0, "ITT", "ITT Tele-Match Processor", 0 ) -CONS( 1978, ingtelma, channlf2, 0, sabavpl2, channelf, driver_device, 0, "Ingelen", "Ingelen Tele-Match Processor", 0 ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +CONS( 1976, channelf, 0, 0, channelf, channelf, channelf_state, 0, "Fairchild", "Channel F", 0 ) +CONS( 1977, sabavdpl, channelf, 0, sabavdpl, channelf, channelf_state, 0, "SABA", "SABA Videoplay", 0 ) +CONS( 197?, luxorves, channelf, 0, sabavdpl, channelf, channelf_state, 0, "Luxor", "Luxor Video Entertainment System", 0 ) +CONS( 1978, channlf2, 0, channelf, channlf2, channelf, channelf_state, 0, "Fairchild", "Channel F II", 0 ) +CONS( 1978, sabavpl2, channlf2, 0, sabavpl2, channelf, channelf_state, 0, "SABA", "SABA Videoplay 2", 0 ) +CONS( 197?, luxorvec, channlf2, 0, sabavpl2, channelf, channelf_state, 0, "Luxor", "Luxor Video Entertainment Computer", 0 ) +CONS( 197?, itttelma, channlf2, 0, sabavpl2, channelf, channelf_state, 0, "ITT", "ITT Tele-Match Processor", 0 ) +CONS( 1978, ingtelma, channlf2, 0, sabavpl2, channelf, channelf_state, 0, "Ingelen", "Ingelen Tele-Match Processor", 0 ) diff --git a/src/mame/drivers/chaos.cpp b/src/mame/drivers/chaos.cpp index 56d21282bcf..7618cde825b 100644 --- a/src/mame/drivers/chaos.cpp +++ b/src/mame/drivers/chaos.cpp @@ -50,7 +50,7 @@ public: DECLARE_WRITE8_MEMBER(port1f_w); DECLARE_READ8_MEMBER(port90_r); DECLARE_READ8_MEMBER(port91_r); - DECLARE_WRITE8_MEMBER(kbd_put); + void kbd_put(u8 data); private: uint8_t m_term_data; virtual void machine_reset() override; @@ -125,7 +125,7 @@ READ8_MEMBER( chaos_state::port91_r ) return ret; } -WRITE8_MEMBER( chaos_state::kbd_put ) +void chaos_state::kbd_put(u8 data) { m_term_data = data; } @@ -138,7 +138,7 @@ void chaos_state::machine_reset() memcpy(m_p_ram+0x7000, ROM+0x3000, 0x1000); } -static MACHINE_CONFIG_START( chaos, chaos_state ) +static MACHINE_CONFIG_START( chaos ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", S2650, XTAL_1MHz) MCFG_CPU_PROGRAM_MAP(chaos_mem) @@ -146,7 +146,7 @@ static MACHINE_CONFIG_START( chaos, chaos_state ) /* video hardware */ MCFG_DEVICE_ADD("terminal", GENERIC_TERMINAL, 0) - MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(chaos_state, kbd_put)) + MCFG_GENERIC_TERMINAL_KEYBOARD_CB(PUT(chaos_state, kbd_put)) MACHINE_CONFIG_END /* ROM definition */ @@ -160,5 +160,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1983, chaos, 0, 0, chaos, chaos, driver_device, 0, "David Greaves", "Chaos 2", MACHINE_NO_SOUND_HW ) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 1983, chaos, 0, 0, chaos, chaos, chaos_state, 0, "David Greaves", "Chaos 2", MACHINE_NO_SOUND_HW ) diff --git a/src/mame/drivers/cheekyms.cpp b/src/mame/drivers/cheekyms.cpp index 597df4f82de..85f1e09a641 100644 --- a/src/mame/drivers/cheekyms.cpp +++ b/src/mame/drivers/cheekyms.cpp @@ -121,7 +121,7 @@ INTERRUPT_GEN_MEMBER(cheekyms_state::vblank_irq) } -static MACHINE_CONFIG_START( cheekyms, cheekyms_state ) +static MACHINE_CONFIG_START( cheekyms ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80,5000000/2) /* 2.5 MHz */ @@ -197,4 +197,4 @@ ROM_END -GAME( 1980, cheekyms, 0, cheekyms, cheekyms, driver_device, 0, ROT270, "Universal", "Cheeky Mouse", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1980, cheekyms, 0, cheekyms, cheekyms, cheekyms_state, 0, ROT270, "Universal", "Cheeky Mouse", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/chessmst.cpp b/src/mame/drivers/chessmst.cpp index 9b5fb2c5f69..84e21b1e24b 100644 --- a/src/mame/drivers/chessmst.cpp +++ b/src/mame/drivers/chessmst.cpp @@ -353,7 +353,7 @@ static const z80_daisy_config chessmstdm_daisy_chain[] = { nullptr } }; -static MACHINE_CONFIG_START( chessmst, chessmst_state ) +static MACHINE_CONFIG_START( chessmst ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_9_8304MHz/4) // U880 Z80 clone @@ -378,7 +378,7 @@ static MACHINE_CONFIG_START( chessmst, chessmst_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( chessmsta, chessmst_state ) +static MACHINE_CONFIG_START( chessmsta ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_8MHz/4) // U880 Z80 clone @@ -403,7 +403,7 @@ static MACHINE_CONFIG_START( chessmsta, chessmst_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( chessmstdm, chessmst_state ) +static MACHINE_CONFIG_START( chessmstdm ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_8MHz/2) // U880 Z80 clone @@ -465,7 +465,7 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY, FULLNAME, FLAGS */ -COMP( 1984, chessmst, 0, 0, chessmst, chessmst, driver_device, 0, "VEB Mikroelektronik Erfurt", "Chess-Master (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK ) -COMP( 1984, chessmsta, chessmst, 0, chessmsta, chessmst, driver_device, 0, "VEB Mikroelektronik Erfurt", "Chess-Master (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK ) -COMP( 1987, chessmstdm,0, 0, chessmstdm, chessmstdm, driver_device, 0, "VEB Mikroelektronik Erfurt", "Chess-Master Diamond", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1984, chessmst, 0, 0, chessmst, chessmst, chessmst_state, 0, "VEB Mikroelektronik Erfurt", "Chess-Master (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK ) +COMP( 1984, chessmsta, chessmst, 0, chessmsta, chessmst, chessmst_state, 0, "VEB Mikroelektronik Erfurt", "Chess-Master (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK ) +COMP( 1987, chessmstdm, 0, 0, chessmstdm, chessmstdm, chessmst_state, 0, "VEB Mikroelektronik Erfurt", "Chess-Master Diamond", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK ) diff --git a/src/mame/drivers/chesstrv.cpp b/src/mame/drivers/chesstrv.cpp index ee13ff0cff0..8e594e000b3 100644 --- a/src/mame/drivers/chesstrv.cpp +++ b/src/mame/drivers/chesstrv.cpp @@ -213,7 +213,7 @@ void chesstrv_state::machine_start() save_item(NAME(m_matrix)); } -static MACHINE_CONFIG_START( chesstrv, chesstrv_state ) +static MACHINE_CONFIG_START( chesstrv ) /* basic machine hardware */ MCFG_CPU_ADD( "maincpu", F8, 3000000 ) // Fairchild 3870 MCFG_CPU_PROGRAM_MAP( chesstrv_mem ) @@ -223,7 +223,7 @@ static MACHINE_CONFIG_START( chesstrv, chesstrv_state ) MCFG_DEFAULT_LAYOUT( layout_chesstrv ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( borisdpl, chesstrv_state ) +static MACHINE_CONFIG_START( borisdpl ) /* basic machine hardware */ MCFG_CPU_ADD( "maincpu", F8, 30000000 ) // Motorola SC80265P MCFG_CPU_PROGRAM_MAP( chesstrv_mem ) @@ -251,6 +251,6 @@ ROM_START( borisdpl ) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ -CONS( 1980, chesstrv, 0, 0, chesstrv, chesstrv, driver_device, 0, "Acetronic", "Chess Traveller", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW | MACHINE_SUPPORTS_SAVE ) -CONS( 1979, borisdpl, 0, 0, borisdpl, borisdpl, driver_device, 0, "Applied Concepts", "Boris Diplomat", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW | MACHINE_SUPPORTS_SAVE ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +CONS( 1980, chesstrv, 0, 0, chesstrv, chesstrv, chesstrv_state, 0, "Acetronic", "Chess Traveller", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW | MACHINE_SUPPORTS_SAVE ) +CONS( 1979, borisdpl, 0, 0, borisdpl, borisdpl, chesstrv_state, 0, "Applied Concepts", "Boris Diplomat", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/chexx.cpp b/src/mame/drivers/chexx.cpp index c33e0b8ea8d..6e4266bfd37 100644 --- a/src/mame/drivers/chexx.cpp +++ b/src/mame/drivers/chexx.cpp @@ -312,7 +312,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(chexx_state::update) #endif } -static MACHINE_CONFIG_START( chexx83, chexx_state ) +static MACHINE_CONFIG_START( chexx83 ) // basic machine hardware MCFG_CPU_ADD("maincpu", M6502, MAIN_CLOCK/2) @@ -419,5 +419,5 @@ ROM_START( faceoffh ) ROM_FILL( 0xe000, 0x2000, 0xff ) // unpopulated ROM_END -GAME( 1983, chexx83, 0, chexx83, chexx83, driver_device, 0, ROT270, "ICE", "Chexx (EM Bubble Hockey, 1983 1.1)", MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_NO_SOUND ) -GAME( 1983, faceoffh, chexx83, faceoffh, chexx83, driver_device, 0, ROT270, "SoftLogic (Entertainment Enterprises, Ltd. license)", "Face-Off (EM Bubble Hockey)", MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_IMPERFECT_SOUND ) +GAME( 1983, chexx83, 0, chexx83, chexx83, chexx_state, 0, ROT270, "ICE", "Chexx (EM Bubble Hockey, 1983 1.1)", MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_NO_SOUND ) +GAME( 1983, faceoffh, chexx83, faceoffh, chexx83, chexx_state, 0, ROT270, "SoftLogic (Entertainment Enterprises, Ltd. license)", "Face-Off (EM Bubble Hockey)", MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_IMPERFECT_SOUND ) diff --git a/src/mame/drivers/chicago.cpp b/src/mame/drivers/chicago.cpp index d426f8ab8f7..fca5cae62f2 100644 --- a/src/mame/drivers/chicago.cpp +++ b/src/mame/drivers/chicago.cpp @@ -50,7 +50,7 @@ public: } // devices - required_device m_maincpu; + required_device m_maincpu; required_device m_video; protected: @@ -93,7 +93,7 @@ void chicago_state::video_start() { } -static MACHINE_CONFIG_START( chicago, chicago_state ) +static MACHINE_CONFIG_START( chicago ) /* basic machine hardware */ MCFG_DEVICE_ADD("maincpu", NETLIST_CPU, NETLIST_CLOCK) @@ -138,4 +138,4 @@ ROM_START( dmodrbcc ) ROM_END -GAME( 1976, dmodrbcc, 0, chicago, 0, driver_device, 0, ROT0, "Chicago Coin", "Demolition Derby [TTL]", MACHINE_IS_SKELETON ) +GAME( 1976, dmodrbcc, 0, chicago, 0, chicago_state, 0, ROT0, "Chicago Coin", "Demolition Derby [TTL]", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/chihiro.cpp b/src/mame/drivers/chihiro.cpp index 33578d63850..16421b1e5de 100644 --- a/src/mame/drivers/chihiro.cpp +++ b/src/mame/drivers/chihiro.cpp @@ -394,7 +394,7 @@ Thanks to Alex, Mr Mudkips, and Philip Burke for this info. //#define VERBOSE_MSG ///////////////////////// -extern const device_type JVS_MASTER; +DECLARE_DEVICE_TYPE(JVS_MASTER, jvs_master) class jvs_master : public jvs_host { @@ -406,10 +406,10 @@ public: int received_packet(uint8_t *buffer); }; -const device_type JVS_MASTER = device_creator; +DEFINE_DEVICE_TYPE(JVS_MASTER, jvs_master, "jvs_master", "JVS MASTER") jvs_master::jvs_master(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : jvs_host(mconfig, JVS_MASTER, "JVS MASTER", tag, owner, clock, "jvs_master", __FILE__) + : jvs_host(mconfig, JVS_MASTER, tag, owner, clock) { } @@ -449,7 +449,7 @@ int jvs_master::received_packet(uint8_t *buffer) ///////////////////////// -extern const device_type OHCI_HLEAN2131QC; +DECLARE_DEVICE_TYPE(OHCI_HLEAN2131QC, ohci_hlean2131qc_device) class ohci_hlean2131qc_device : public device_t, public ohci_function { @@ -494,9 +494,9 @@ private: } jvs; }; -const device_type OHCI_HLEAN2131QC = device_creator; +DEFINE_DEVICE_TYPE(OHCI_HLEAN2131QC, ohci_hlean2131qc_device, "ohci_hlean2131qc", "OHCI Hlean2131qc") -extern const device_type OHCI_HLEAN2131SC; +DECLARE_DEVICE_TYPE(OHCI_HLEAN2131SC, ohci_hlean2131sc_device) class ohci_hlean2131sc_device : public device_t, public ohci_function { @@ -532,7 +532,7 @@ private: int step; }; -const device_type OHCI_HLEAN2131SC = device_creator; +DEFINE_DEVICE_TYPE(OHCI_HLEAN2131SC, ohci_hlean2131sc_device, "ohci_hlean2131sc", "OHCI Hlean2131sc") class chihiro_state : public xbox_base_state { @@ -784,7 +784,7 @@ const uint8_t ohci_hlean2131qc_device::strdesc1[] = { 0x0A,0x03,0x53,0x00,0x45,0 const uint8_t ohci_hlean2131qc_device::strdesc2[] = { 0x0E,0x03,0x42,0x00,0x41,0x00,0x53,0x00,0x45,0x00,0x42,0x03,0xFF,0x0B }; ohci_hlean2131qc_device::ohci_hlean2131qc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, OHCI_HLEAN2131QC, "OHCI Hlean2131qc", tag, owner, clock, "ohci_hlean2131qc", __FILE__), + device_t(mconfig, OHCI_HLEAN2131QC, tag, owner, clock), ohci_function() { maximum_send = 0; @@ -1102,7 +1102,7 @@ const uint8_t ohci_hlean2131sc_device::strdesc1[] = { 0x0A,0x03,0x53,0x00,0x45,0 const uint8_t ohci_hlean2131sc_device::strdesc2[] = { 0x0E,0x03,0x42,0x00,0x41,0x00,0x53,0x00,0x45,0x00,0x42,0x00,0x44,0x00 }; ohci_hlean2131sc_device::ohci_hlean2131sc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, OHCI_HLEAN2131SC, "OHCI Hlean2131sc", tag, owner, clock, "ohci_hlean2131sc", __FILE__), + device_t(mconfig, OHCI_HLEAN2131SC, tag, owner, clock), ohci_function() { region = nullptr; @@ -1432,14 +1432,14 @@ protected: //************************************************************************** // device type definition -const device_type IDE_BASEBOARD = device_creator; +DEFINE_DEVICE_TYPE(IDE_BASEBOARD, ide_baseboard_device, "ide_baseboard", "IDE Baseboard") //------------------------------------------------- // ide_baseboard_device - constructor //------------------------------------------------- ide_baseboard_device::ide_baseboard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : ata_mass_storage_device(mconfig, IDE_BASEBOARD, "IDE Baseboard", tag, owner, clock, "ide_baseboard", __FILE__) + : ata_mass_storage_device(mconfig, IDE_BASEBOARD, tag, owner, clock) { } @@ -1755,7 +1755,7 @@ static SLOT_INTERFACE_START(ide_baseboard) SLOT_INTERFACE("bb", IDE_BASEBOARD) SLOT_INTERFACE_END -static MACHINE_CONFIG_DERIVED_CLASS(chihiro_base, xbox_base, chihiro_state) +static MACHINE_CONFIG_DERIVED(chihiro_base, xbox_base) MCFG_CPU_MODIFY("maincpu") MCFG_CPU_PROGRAM_MAP(chihiro_map) MCFG_CPU_IO_MAP(chihiro_map_io) @@ -2316,71 +2316,71 @@ ROM_START( gundcb83b ) ROM_END /* Main board */ -/*Chihiro*/ GAME( 2002, chihiro, 0, chihiro_base, chihiro, driver_device, 0, ROT0, "Sega", "Chihiro Bios", MACHINE_NO_SOUND|MACHINE_NOT_WORKING|MACHINE_IS_BIOS_ROOT ) +/*Chihiro*/ GAME( 2002, chihiro, 0, chihiro_base, chihiro, chihiro_state, 0, ROT0, "Sega", "Chihiro Bios", MACHINE_NO_SOUND|MACHINE_NOT_WORKING|MACHINE_IS_BIOS_ROOT ) /* GDX-xxxx (Sega GD-ROM games) */ -/* 0001 */ GAME( 2002, hotd3, chihiro, chihirogd, chihiro, driver_device, 0, ROT0, "Sega / Wow Entertainment", "The House of the Dead III (GDX-0001)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) -// 0002 GAME( 2003, crtaxhro, crtaxihr, chihirogd, chihiro, driver_device, 0, ROT0, "Sega / Hitmaker", "Crazy Taxi High Roller (GDX-0002)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) -// 0002A GAME( 2003, crtaxhra, crtaxihr, chihirogd, chihiro, driver_device, 0, ROT0, "Sega / Hitmaker", "Crazy Taxi High Roller (Rev A) (GDX-0002A)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) -/* 0002B */ GAME( 2003, crtaxihr, chihiro, chihirogd, chihiro, driver_device, 0, ROT0, "Sega / Hitmaker", "Crazy Taxi High Roller (Rev B) (GDX-0002B)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) -// 0003 GAME( 2003, vcop3o, vcop3, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "Virtua Cop 3 (GDX-0003)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) -/* 0003A */ GAME( 2003, vcop3a, vcop3, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "Virtua Cop 3 (Rev A) (GDX-0003A)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) -/* 0003B */ GAME( 2003, vcop3, chihiro, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "Virtua Cop 3 (Rev B) (GDX-0003B)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) -// 0004 GAME( 2003, outr2o, outr2, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "OutRun 2 (GDX-0004)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING|MACHINE_SUPPORTS_SAVE ) -/* 0004A */ GAME( 2003, outr2, chihiro, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "OutRun 2 (Rev A) (GDX-0004A)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING|MACHINE_SUPPORTS_SAVE ) -// 0005 GAME( 2004, sgolcnpt, chihiro, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "Sega Golf Club Network Pro Tour (GDX-0005)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING|MACHINE_SUPPORTS_SAVE ) -// 0006 GAME( 2004, mj2o, mj2, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "Sega Network Taisen Mahjong MJ 2 (GDX-0006)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) -// 0006A GAME( 2004, mj2a, mj2, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "Sega Network Taisen Mahjong MJ 2 (Rev A) (GDX-0006A)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) -// 0006B GAME( 2004, mj2b, mj2, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "Sega Network Taisen Mahjong MJ 2 (Rev B) (GDX-0006B)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) -/* 0006C */ GAME( 2004, mj2c, mj2, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "Sega Network Taisen Mahjong MJ 2 (Rev C) (GDX-0006C)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) -// 0006D GAME( 2004, mj2d, mj2, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "Sega Network Taisen Mahjong MJ 2 (Rev D) (GDX-0006D)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) -// 0006E GAME( 2004, mj2e, mj2, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "Sega Network Taisen Mahjong MJ 2 (Rev E) (GDX-0006E)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) -/* 0006F */ GAME( 2004, mj2f, mj2, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "Sega Network Taisen Mahjong MJ 2 (Rev F) (GDX-0006F)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) -/* 0006G */ GAME( 2004, mj2, chihiro, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "Sega Network Taisen Mahjong MJ 2 (Rev G) (GDX-0006G)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) -/* 0007 */ GAME( 2004, ollie, chihiro, chihirogd, chihiro, driver_device, 0, ROT0, "Sega / Amusement Vision", "Ollie King (GDX-0007)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) -// 0008 GAME( 2004, wangmidjo,wangmid, chihirogd, chihiro, driver_device, 0, ROT0, "Namco", "Wangan Midnight Maximum Tune (Japan) (GDX-0008)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) -// 0008A GAME( 2004, wangmidja,wangmid, chihirogd, chihiro, driver_device, 0, ROT0, "Namco", "Wangan Midnight Maximum Tune (Japan) (Rev A) (GDX-0008A)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) -/* 0008B */ GAME( 2004, wangmidj, wangmid, chihirogd, chihiro, driver_device, 0, ROT0, "Namco", "Wangan Midnight Maximum Tune (Japan) (Rev B) (GDX-0008B)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) -// 0009 GAME( 2004, wangmido, wangmid, chihirogd, chihiro, driver_device, 0, ROT0, "Namco", "Wangan Midnight Maximum Tune (Export) (GDX-0009)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) -// 0009A GAME( 2004, wangmida, wangmid, chihirogd, chihiro, driver_device, 0, ROT0, "Namco", "Wangan Midnight Maximum Tune (Export) (Rev A) (GDX-0009A)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) -/* 0009B */ GAME( 2004, wangmid, chihiro, chihirogd, chihiro, driver_device, 0, ROT0, "Namco", "Wangan Midnight Maximum Tune (Export) (Rev B) (GDX-0009B)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) +/* 0001 */ GAME( 2002, hotd3, chihiro, chihirogd, chihiro, chihiro_state, 0, ROT0, "Sega / Wow Entertainment", "The House of the Dead III (GDX-0001)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) +// 0002 GAME( 2003, crtaxhro, crtaxihr, chihirogd, chihiro, chihiro_state, 0, ROT0, "Sega / Hitmaker", "Crazy Taxi High Roller (GDX-0002)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) +// 0002A GAME( 2003, crtaxhra, crtaxihr, chihirogd, chihiro, chihiro_state, 0, ROT0, "Sega / Hitmaker", "Crazy Taxi High Roller (Rev A) (GDX-0002A)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) +/* 0002B */ GAME( 2003, crtaxihr, chihiro, chihirogd, chihiro, chihiro_state, 0, ROT0, "Sega / Hitmaker", "Crazy Taxi High Roller (Rev B) (GDX-0002B)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) +// 0003 GAME( 2003, vcop3o, vcop3, chihirogd, chihiro, chihiro_state, 0, ROT0, "Sega", "Virtua Cop 3 (GDX-0003)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) +/* 0003A */ GAME( 2003, vcop3a, vcop3, chihirogd, chihiro, chihiro_state, 0, ROT0, "Sega", "Virtua Cop 3 (Rev A) (GDX-0003A)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) +/* 0003B */ GAME( 2003, vcop3, chihiro, chihirogd, chihiro, chihiro_state, 0, ROT0, "Sega", "Virtua Cop 3 (Rev B) (GDX-0003B)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) +// 0004 GAME( 2003, outr2o, outr2, chihirogd, chihiro, chihiro_state, 0, ROT0, "Sega", "OutRun 2 (GDX-0004)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING|MACHINE_SUPPORTS_SAVE ) +/* 0004A */ GAME( 2003, outr2, chihiro, chihirogd, chihiro, chihiro_state, 0, ROT0, "Sega", "OutRun 2 (Rev A) (GDX-0004A)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING|MACHINE_SUPPORTS_SAVE ) +// 0005 GAME( 2004, sgolcnpt, chihiro, chihirogd, chihiro, chihiro_state, 0, ROT0, "Sega", "Sega Golf Club Network Pro Tour (GDX-0005)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING|MACHINE_SUPPORTS_SAVE ) +// 0006 GAME( 2004, mj2o, mj2, chihirogd, chihiro, chihiro_state, 0, ROT0, "Sega", "Sega Network Taisen Mahjong MJ 2 (GDX-0006)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) +// 0006A GAME( 2004, mj2a, mj2, chihirogd, chihiro, chihiro_state, 0, ROT0, "Sega", "Sega Network Taisen Mahjong MJ 2 (Rev A) (GDX-0006A)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) +// 0006B GAME( 2004, mj2b, mj2, chihirogd, chihiro, chihiro_state, 0, ROT0, "Sega", "Sega Network Taisen Mahjong MJ 2 (Rev B) (GDX-0006B)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) +/* 0006C */ GAME( 2004, mj2c, mj2, chihirogd, chihiro, chihiro_state, 0, ROT0, "Sega", "Sega Network Taisen Mahjong MJ 2 (Rev C) (GDX-0006C)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) +// 0006D GAME( 2004, mj2d, mj2, chihirogd, chihiro, chihiro_state, 0, ROT0, "Sega", "Sega Network Taisen Mahjong MJ 2 (Rev D) (GDX-0006D)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) +// 0006E GAME( 2004, mj2e, mj2, chihirogd, chihiro, chihiro_state, 0, ROT0, "Sega", "Sega Network Taisen Mahjong MJ 2 (Rev E) (GDX-0006E)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) +/* 0006F */ GAME( 2004, mj2f, mj2, chihirogd, chihiro, chihiro_state, 0, ROT0, "Sega", "Sega Network Taisen Mahjong MJ 2 (Rev F) (GDX-0006F)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) +/* 0006G */ GAME( 2004, mj2, chihiro, chihirogd, chihiro, chihiro_state, 0, ROT0, "Sega", "Sega Network Taisen Mahjong MJ 2 (Rev G) (GDX-0006G)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) +/* 0007 */ GAME( 2004, ollie, chihiro, chihirogd, chihiro, chihiro_state, 0, ROT0, "Sega / Amusement Vision", "Ollie King (GDX-0007)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) +// 0008 GAME( 2004, wangmidjo,wangmid, chihirogd, chihiro, chihiro_state, 0, ROT0, "Namco", "Wangan Midnight Maximum Tune (Japan) (GDX-0008)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) +// 0008A GAME( 2004, wangmidja,wangmid, chihirogd, chihiro, chihiro_state, 0, ROT0, "Namco", "Wangan Midnight Maximum Tune (Japan) (Rev A) (GDX-0008A)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) +/* 0008B */ GAME( 2004, wangmidj, wangmid, chihirogd, chihiro, chihiro_state, 0, ROT0, "Namco", "Wangan Midnight Maximum Tune (Japan) (Rev B) (GDX-0008B)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) +// 0009 GAME( 2004, wangmido, wangmid, chihirogd, chihiro, chihiro_state, 0, ROT0, "Namco", "Wangan Midnight Maximum Tune (Export) (GDX-0009)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) +// 0009A GAME( 2004, wangmida, wangmid, chihirogd, chihiro, chihiro_state, 0, ROT0, "Namco", "Wangan Midnight Maximum Tune (Export) (Rev A) (GDX-0009A)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) +/* 0009B */ GAME( 2004, wangmid, chihiro, chihirogd, chihiro, chihiro_state, 0, ROT0, "Namco", "Wangan Midnight Maximum Tune (Export) (Rev B) (GDX-0009B)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) // 0010 -// 0011 GAME( 2004, outr2stjo,outr2st, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "OutRun 2 Special Tours (Japan) (GDX-0011)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING|MACHINE_SUPPORTS_SAVE ) -/* 0011A */ GAME( 2004, outr2stj, outr2st, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "OutRun 2 Special Tours (Japan) (Rev A) (GDX-0011A)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING|MACHINE_SUPPORTS_SAVE ) -/* 0012 */ GAME( 2004, ghostsqo, ghostsqu, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "Ghost Squad (GDX-0012)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) -/* 0012A */ GAME( 2004, ghostsqu, chihiro, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "Ghost Squad (Rev A) (GDX-0012A)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) -/* 0013 */ GAME( 2005, gundamos, chihiro, chihirogd, chihiro, driver_device, 0, ROT0, "Banpresto", "Gundam Battle Operating Simulator (GDX-0013)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) -/* 0014 */ GAME( 2004, outr2sto, outr2st, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "OutRun 2 Special Tours (GDX-0014)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) -/* 0014A */ GAME( 2004, outr2st, chihiro, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "OutRun 2 Special Tours (Rev A) (GDX-0014A)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) -/* 0015 */ GAME( 2005, wangmid2j,wangmid2, chihirogd, chihiro, driver_device, 0, ROT0, "Namco", "Wangan Midnight Maximum Tune 2 (Japan) (GDX-0015)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) -/* 0015A */ GAME( 2005, wangmid2ja,wangmid2,chihirogd, chihiro, driver_device, 0, ROT0, "Namco", "Wangan Midnight Maximum Tune 2 (Japan) (Rev A) (GDX-0015A)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) -/* 0016 */ GAME( 2005, wangmid2o,wangmid2, chihirogd, chihiro, driver_device, 0, ROT0, "Namco", "Wangan Midnight Maximum Tune 2 (Export) (GDX-0016)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) -/* 0016A */ GAME( 2005, wangmid2, chihiro, chihirogd, chihiro, driver_device, 0, ROT0, "Namco", "Wangan Midnight Maximum Tune 2 (Export) (Rev A) (GDX-0016A)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) -// 0017 GAME( 2005, mj3o, mj3, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "Sega Network Taisen Mahjong MJ 3 (GDX-0017)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) -// 0017A GAME( 2005, mj3a, mj3, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "Sega Network Taisen Mahjong MJ 3 (Rev A) (GDX-0017A)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) -// 0017B GAME( 2005, mj3b, mj3, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "Sega Network Taisen Mahjong MJ 3 (Rev B) (GDX-0017B)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) -// 0017C GAME( 2005, mj3c, mj3, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "Sega Network Taisen Mahjong MJ 3 (Rev C) (GDX-0017C)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) -/* 0017D */ GAME( 2005, mj3d, mj3, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "Sega Network Taisen Mahjong MJ 3 (Rev D) (GDX-0017D)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) -// 0017E GAME( 2005, mj3e, mj3, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "Sega Network Taisen Mahjong MJ 3 (Rev E) (GDX-0017E)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) -/* 0017F */ GAME( 2005, mj3, chihiro, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "Sega Network Taisen Mahjong MJ 3 (Rev F) (GDX-0017F)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) -// 0018 GAME( 2005, scg06nto, scg06nt, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "Sega Club Golf 2006 Next Tours (GDX-0018)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) -/* 0018A */ GAME( 2005, scg06nt, chihiro, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "Sega Club Golf 2006 Next Tours (Rev A) (GDX-0018A)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) +// 0011 GAME( 2004, outr2stjo,outr2st, chihirogd, chihiro, chihiro_state, 0, ROT0, "Sega", "OutRun 2 Special Tours (Japan) (GDX-0011)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING|MACHINE_SUPPORTS_SAVE ) +/* 0011A */ GAME( 2004, outr2stj, outr2st, chihirogd, chihiro, chihiro_state, 0, ROT0, "Sega", "OutRun 2 Special Tours (Japan) (Rev A) (GDX-0011A)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING|MACHINE_SUPPORTS_SAVE ) +/* 0012 */ GAME( 2004, ghostsqo, ghostsqu, chihirogd, chihiro, chihiro_state, 0, ROT0, "Sega", "Ghost Squad (GDX-0012)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) +/* 0012A */ GAME( 2004, ghostsqu, chihiro, chihirogd, chihiro, chihiro_state, 0, ROT0, "Sega", "Ghost Squad (Rev A) (GDX-0012A)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) +/* 0013 */ GAME( 2005, gundamos, chihiro, chihirogd, chihiro, chihiro_state, 0, ROT0, "Banpresto", "Gundam Battle Operating Simulator (GDX-0013)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) +/* 0014 */ GAME( 2004, outr2sto, outr2st, chihirogd, chihiro, chihiro_state, 0, ROT0, "Sega", "OutRun 2 Special Tours (GDX-0014)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) +/* 0014A */ GAME( 2004, outr2st, chihiro, chihirogd, chihiro, chihiro_state, 0, ROT0, "Sega", "OutRun 2 Special Tours (Rev A) (GDX-0014A)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) +/* 0015 */ GAME( 2005, wangmid2j,wangmid2, chihirogd, chihiro, chihiro_state, 0, ROT0, "Namco", "Wangan Midnight Maximum Tune 2 (Japan) (GDX-0015)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) +/* 0015A */ GAME( 2005, wangmid2ja,wangmid2,chihirogd, chihiro, chihiro_state, 0, ROT0, "Namco", "Wangan Midnight Maximum Tune 2 (Japan) (Rev A) (GDX-0015A)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) +/* 0016 */ GAME( 2005, wangmid2o,wangmid2, chihirogd, chihiro, chihiro_state, 0, ROT0, "Namco", "Wangan Midnight Maximum Tune 2 (Export) (GDX-0016)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) +/* 0016A */ GAME( 2005, wangmid2, chihiro, chihirogd, chihiro, chihiro_state, 0, ROT0, "Namco", "Wangan Midnight Maximum Tune 2 (Export) (Rev A) (GDX-0016A)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) +// 0017 GAME( 2005, mj3o, mj3, chihirogd, chihiro, chihiro_state, 0, ROT0, "Sega", "Sega Network Taisen Mahjong MJ 3 (GDX-0017)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) +// 0017A GAME( 2005, mj3a, mj3, chihirogd, chihiro, chihiro_state, 0, ROT0, "Sega", "Sega Network Taisen Mahjong MJ 3 (Rev A) (GDX-0017A)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) +// 0017B GAME( 2005, mj3b, mj3, chihirogd, chihiro, chihiro_state, 0, ROT0, "Sega", "Sega Network Taisen Mahjong MJ 3 (Rev B) (GDX-0017B)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) +// 0017C GAME( 2005, mj3c, mj3, chihirogd, chihiro, chihiro_state, 0, ROT0, "Sega", "Sega Network Taisen Mahjong MJ 3 (Rev C) (GDX-0017C)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) +/* 0017D */ GAME( 2005, mj3d, mj3, chihirogd, chihiro, chihiro_state, 0, ROT0, "Sega", "Sega Network Taisen Mahjong MJ 3 (Rev D) (GDX-0017D)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) +// 0017E GAME( 2005, mj3e, mj3, chihirogd, chihiro, chihiro_state, 0, ROT0, "Sega", "Sega Network Taisen Mahjong MJ 3 (Rev E) (GDX-0017E)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) +/* 0017F */ GAME( 2005, mj3, chihiro, chihirogd, chihiro, chihiro_state, 0, ROT0, "Sega", "Sega Network Taisen Mahjong MJ 3 (Rev F) (GDX-0017F)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) +// 0018 GAME( 2005, scg06nto, scg06nt, chihirogd, chihiro, chihiro_state, 0, ROT0, "Sega", "Sega Club Golf 2006 Next Tours (GDX-0018)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) +/* 0018A */ GAME( 2005, scg06nt, chihiro, chihirogd, chihiro, chihiro_state, 0, ROT0, "Sega", "Sega Club Golf 2006 Next Tours (Rev A) (GDX-0018A)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) // 0019 // 0020 -// 0021 GAME( 2006, mj3evoo, mj3evo, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "Sega Network Taisen Mahjong MJ 3 Evolution (GDX-0021)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) -// 0021A GAME( 2006, mj3evoa, mj3evo, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "Sega Network Taisen Mahjong MJ 3 Evolution (Rev A) (GDX-0021A)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) -/* 0021B */ GAME( 2007, mj3evo, chihiro, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "Sega Network Taisen Mahjong MJ 3 Evolution (Rev B) (GDX-0021B)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) +// 0021 GAME( 2006, mj3evoo, mj3evo, chihirogd, chihiro, chihiro_state, 0, ROT0, "Sega", "Sega Network Taisen Mahjong MJ 3 Evolution (GDX-0021)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) +// 0021A GAME( 2006, mj3evoa, mj3evo, chihirogd, chihiro, chihiro_state, 0, ROT0, "Sega", "Sega Network Taisen Mahjong MJ 3 Evolution (Rev A) (GDX-0021A)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) +/* 0021B */ GAME( 2007, mj3evo, chihiro, chihirogd, chihiro, chihiro_state, 0, ROT0, "Sega", "Sega Network Taisen Mahjong MJ 3 Evolution (Rev B) (GDX-0021B)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) // 0022 // 0023 -// 0024 GAME( 2009, ccfboxo, ccfboxa, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "Chihiro Firmware Update For Compact Flash Box (GDX-0024)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) -/* 0024A */ GAME( 2009, ccfboxa, chihiro, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "Chihiro Firmware Update For Compact Flash Box (4.01) (GDX-0024A)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) +// 0024 GAME( 2009, ccfboxo, ccfboxa, chihirogd, chihiro, chihiro_state, 0, ROT0, "Sega", "Chihiro Firmware Update For Compact Flash Box (GDX-0024)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) +/* 0024A */ GAME( 2009, ccfboxa, chihiro, chihirogd, chihiro, chihiro_state, 0, ROT0, "Sega", "Chihiro Firmware Update For Compact Flash Box (4.01) (GDX-0024A)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) /* CDV-1xxxx (Sega network CD-ROM and DVD-ROM games) */ -/* 0005C */ GAME( 2004, questofd, chihiro, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "Quest of D (CDV-10005C)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) -/* 0010 */ GAME( 2005, gundcb79, chihiro, chihirogd, chihiro, driver_device, 0, ROT0, "Banpresto", "Mobile Suit Gundam 0079 Card Builder (CDV-10010)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) -/* 0024B */ GAME( 2006, gundcb79a,gundcb79, chihirogd, chihiro, driver_device, 0, ROT0, "Banpresto", "Mobile Suit Gundam 0079 Card Builder Ver.2.02 (CDV-10024B)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) -/* 0026D */ GAME( 2007, qofd3, chihiro, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "Quest of D Oukoku no Syugosya Ver. 3.02 (CDV-10026D)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) -/* 0030 */ GAME( 2007, gundcb83, chihiro, chihirogd, chihiro, driver_device, 0, ROT0, "Banpresto", "Mobile Suit Gundam 0083 Card Builder (CDV-10030)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) -/* 0031 */ GAME( 2007, gundcb83a,gundcb83, chihirogd, chihiro, driver_device, 0, ROT0, "Banpresto", "Mobile Suit Gundam 0083 Card Builder Check Disk (CDV-10031)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) -/* 0035B */ GAME( 2007, qofdtbk, chihiro, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "Quest of D The Battle Kingdom (CDV-10035B)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) -/* 0037B */ GAME( 2008, gundcb83b,gundcb83, chihirogd, chihiro, driver_device, 0, ROT0, "Banpresto", "Mobile Suit Gundam 0083 Card Builder Ver.2.10 (CDV-10037B)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) +/* 0005C */ GAME( 2004, questofd, chihiro, chihirogd, chihiro, chihiro_state, 0, ROT0, "Sega", "Quest of D (CDV-10005C)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) +/* 0010 */ GAME( 2005, gundcb79, chihiro, chihirogd, chihiro, chihiro_state, 0, ROT0, "Banpresto", "Mobile Suit Gundam 0079 Card Builder (CDV-10010)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) +/* 0024B */ GAME( 2006, gundcb79a,gundcb79, chihirogd, chihiro, chihiro_state, 0, ROT0, "Banpresto", "Mobile Suit Gundam 0079 Card Builder Ver.2.02 (CDV-10024B)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) +/* 0026D */ GAME( 2007, qofd3, chihiro, chihirogd, chihiro, chihiro_state, 0, ROT0, "Sega", "Quest of D Oukoku no Syugosya Ver. 3.02 (CDV-10026D)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) +/* 0030 */ GAME( 2007, gundcb83, chihiro, chihirogd, chihiro, chihiro_state, 0, ROT0, "Banpresto", "Mobile Suit Gundam 0083 Card Builder (CDV-10030)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) +/* 0031 */ GAME( 2007, gundcb83a,gundcb83, chihirogd, chihiro, chihiro_state, 0, ROT0, "Banpresto", "Mobile Suit Gundam 0083 Card Builder Check Disk (CDV-10031)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) +/* 0035B */ GAME( 2007, qofdtbk, chihiro, chihirogd, chihiro, chihiro_state, 0, ROT0, "Sega", "Quest of D The Battle Kingdom (CDV-10035B)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) +/* 0037B */ GAME( 2008, gundcb83b,gundcb83, chihirogd, chihiro, chihiro_state, 0, ROT0, "Banpresto", "Mobile Suit Gundam 0083 Card Builder Ver.2.10 (CDV-10037B)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/chinagat.cpp b/src/mame/drivers/chinagat.cpp index 755079aef68..343d1841754 100644 --- a/src/mame/drivers/chinagat.cpp +++ b/src/mame/drivers/chinagat.cpp @@ -541,7 +541,7 @@ MACHINE_RESET_MEMBER(chinagat_state,chinagat) } -static MACHINE_CONFIG_START( chinagat, chinagat_state ) +static MACHINE_CONFIG_START( chinagat ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", HD6309, MAIN_CLOCK / 2) /* 1.5 MHz (12MHz oscillator / 4 internally) */ @@ -582,11 +582,11 @@ static MACHINE_CONFIG_START( chinagat, chinagat_state ) MCFG_SOUND_ROUTE(0, "mono", 0.80) MCFG_SOUND_ROUTE(1, "mono", 0.80) - MCFG_OKIM6295_ADD("oki", 1065000, OKIM6295_PIN7_HIGH) // pin 7 not verified, clock frequency estimated with recording + MCFG_OKIM6295_ADD("oki", 1065000, PIN7_HIGH) // pin 7 not verified, clock frequency estimated with recording MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( saiyugoub1, chinagat_state ) +static MACHINE_CONFIG_START( saiyugoub1 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809, MAIN_CLOCK / 8) /* 68B09EP 1.5 MHz (12MHz oscillator) */ @@ -638,11 +638,11 @@ static MACHINE_CONFIG_START( saiyugoub1, chinagat_state ) MCFG_SOUND_ADD("adpcm", MSM5205, 9263750 / 24) MCFG_MSM5205_VCLK_CB(WRITELINE(chinagat_state, saiyugoub1_m5205_irq_w)) /* Interrupt function */ - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S64_4B) /* vclk input mode (6030Hz, 4-bit) */ + MCFG_MSM5205_PRESCALER_SELECTOR(S64_4B) /* vclk input mode (6030Hz, 4-bit) */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( saiyugoub2, chinagat_state ) +static MACHINE_CONFIG_START( saiyugoub2 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809, MAIN_CLOCK / 8) /* 1.5 MHz (12MHz oscillator) */ @@ -916,8 +916,8 @@ DRIVER_INIT_MEMBER(chinagat_state,chinagat) } -/* ( YEAR NAME PARENT MACHINE INPUT INIT MONITOR COMPANY FULLNAME FLAGS ) */ -GAME( 1988, chinagat, 0, chinagat, chinagat, chinagat_state, chinagat, ROT0, "Technos Japan (Taito / Romstar license)", "China Gate (US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, saiyugou, chinagat, chinagat, chinagat, chinagat_state, chinagat, ROT0, "Technos Japan", "Sai Yu Gou Ma Roku (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, saiyugoub1, chinagat, saiyugoub1, chinagat, chinagat_state, chinagat, ROT0, "bootleg", "Sai Yu Gou Ma Roku (Japan bootleg 1)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1988, saiyugoub2, chinagat, saiyugoub2, chinagat, chinagat_state, chinagat, ROT0, "bootleg", "Sai Yu Gou Ma Roku (Japan bootleg 2)", MACHINE_SUPPORTS_SAVE ) +// ( YEAR NAME PARENT MACHINE INPUT STATE INIT MONITOR COMPANY FULLNAME FLAGS ) */ +GAME( 1988, chinagat, 0, chinagat, chinagat, chinagat_state, chinagat, ROT0, "Technos Japan (Taito / Romstar license)", "China Gate (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, saiyugou, chinagat, chinagat, chinagat, chinagat_state, chinagat, ROT0, "Technos Japan", "Sai Yu Gou Ma Roku (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, saiyugoub1, chinagat, saiyugoub1, chinagat, chinagat_state, chinagat, ROT0, "bootleg", "Sai Yu Gou Ma Roku (Japan bootleg 1)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1988, saiyugoub2, chinagat, saiyugoub2, chinagat, chinagat_state, chinagat, ROT0, "bootleg", "Sai Yu Gou Ma Roku (Japan bootleg 2)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/chinsan.cpp b/src/mame/drivers/chinsan.cpp index 14bd5ae7cac..3a366764cee 100644 --- a/src/mame/drivers/chinsan.cpp +++ b/src/mame/drivers/chinsan.cpp @@ -495,7 +495,7 @@ DRIVER_INIT_MEMBER( chinsan_state, chinsan ) //************************************************************************** // C1-00114-B -static MACHINE_CONFIG_START( chinsan, chinsan_state ) +static MACHINE_CONFIG_START( chinsan ) MCFG_CPU_ADD("maincpu", MC8123, XTAL_10MHz/2) // 317-5012 MCFG_CPU_PROGRAM_MAP(chinsan_map) MCFG_CPU_IO_MAP(chinsan_io_map) @@ -534,7 +534,7 @@ static MACHINE_CONFIG_START( chinsan, chinsan_state ) MCFG_SOUND_ADD("adpcm", MSM5205, XTAL_384kHz) MCFG_MSM5205_VCLK_CB(WRITELINE(chinsan_state, adpcm_int_w)) - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S64_4B) // 8kHz + MCFG_MSM5205_PRESCALER_SELECTOR(S64_4B) // 8kHz MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) MACHINE_CONFIG_END @@ -604,4 +604,4 @@ ROM_END // YEAR NAME PARENT MACHINE INPUT CLASS INIT ROTATION COMPANY FULLNAME FLAGS GAME( 1987, chinsan, 0, chinsan, chinsan, chinsan_state, chinsan, ROT0, "Sanritsu", "Ganbare Chinsan Ooshoubu (MC-8123A, 317-5012)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, mayumi, 0, mayumi, mayumi, driver_device, 0, ROT0, "Victory L.L.C.", "Kiki-Ippatsu Mayumi-chan", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, mayumi, 0, mayumi, mayumi, chinsan_state, 0, ROT0, "Victory L.L.C.", "Kiki-Ippatsu Mayumi-chan", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/chqflag.cpp b/src/mame/drivers/chqflag.cpp index e2f97417977..e5197879165 100644 --- a/src/mame/drivers/chqflag.cpp +++ b/src/mame/drivers/chqflag.cpp @@ -288,7 +288,7 @@ void chqflag_state::machine_reset() m_wheel = 0; } -static MACHINE_CONFIG_START( chqflag, chqflag_state ) +static MACHINE_CONFIG_START( chqflag ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", KONAMI, XTAL_24MHz/2/4) /* 052001 (verified on pcb) */ @@ -422,6 +422,6 @@ ROM_START( chqflagj ) ROM_END -// YEAR, NAME, PARENT, MACHINE, INPUT, INIT,MONITOR,COMPANY,FULLNAME,FLAGS -GAMEL( 1988, chqflag, 0, chqflag, chqflag, driver_device, 0, ROT90, "Konami", "Chequered Flag", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_chqflag ) -GAMEL( 1988, chqflagj, chqflag, chqflag, chqflagj, driver_device, 0, ROT90, "Konami", "Chequered Flag (Japan)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_chqflag ) +// 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_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 32ab18639a2..c5919845220 100644 --- a/src/mame/drivers/chsuper.cpp +++ b/src/mame/drivers/chsuper.cpp @@ -351,7 +351,7 @@ ADDRESS_MAP_END * Machine Drivers * ***************************/ -static MACHINE_CONFIG_START( chsuper, chsuper_state ) +static MACHINE_CONFIG_START( chsuper ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z180, XTAL_12MHz / 4) /* HD64180RP8, 8 MHz? */ diff --git a/src/mame/drivers/cidelsa.cpp b/src/mame/drivers/cidelsa.cpp index 333b670de2d..7c696cf59b9 100644 --- a/src/mame/drivers/cidelsa.cpp +++ b/src/mame/drivers/cidelsa.cpp @@ -389,7 +389,7 @@ void cidelsa_state::machine_reset() /* Machine Drivers */ -static MACHINE_CONFIG_START( destryer, cidelsa_state ) +static MACHINE_CONFIG_START( destryer ) /* basic system hardware */ MCFG_CPU_ADD(CDP1802_TAG, CDP1802, DESTRYER_CHR1) MCFG_CPU_PROGRAM_MAP(destryer_map) @@ -404,7 +404,7 @@ static MACHINE_CONFIG_START( destryer, cidelsa_state ) MCFG_FRAGMENT_ADD(destryer_video) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( destryera, cidelsa_state ) +static MACHINE_CONFIG_START( destryera ) /* basic system hardware */ MCFG_CPU_ADD(CDP1802_TAG, CDP1802, DESTRYER_CHR1) MCFG_CPU_PROGRAM_MAP(destryera_map) @@ -419,7 +419,7 @@ static MACHINE_CONFIG_START( destryera, cidelsa_state ) MCFG_FRAGMENT_ADD(destryer_video) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( altair, cidelsa_state ) +static MACHINE_CONFIG_START( altair ) /* basic system hardware */ MCFG_CPU_ADD(CDP1802_TAG, CDP1802, ALTAIR_CHR1) MCFG_CPU_PROGRAM_MAP(altair_map) @@ -448,7 +448,7 @@ static MACHINE_CONFIG_START( altair, cidelsa_state ) MCFG_FRAGMENT_ADD(altair_video) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( draco, draco_state ) +static MACHINE_CONFIG_START( draco ) /* basic system hardware */ MCFG_CPU_ADD(CDP1802_TAG, CDP1802, DRACO_CHR1) MCFG_CPU_PROGRAM_MAP(draco_map) @@ -532,7 +532,7 @@ ROM_END /* Game Drivers */ -GAME( 1980, destryer, 0, destryer, destryer, driver_device, 0, ROT90, "Cidelsa", "Destroyer (Cidelsa) (set 1)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1980, destryera,destryer, destryera,destryer, driver_device, 0, ROT90, "Cidelsa", "Destroyer (Cidelsa) (set 2)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1981, altair, 0, altair, altair, driver_device, 0, ROT90, "Cidelsa", "Altair", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1981, draco, 0, draco, draco, driver_device, 0, ROT90, "Cidelsa", "Draco", MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE ) +GAME( 1980, destryer, 0, destryer, destryer, cidelsa_state, 0, ROT90, "Cidelsa", "Destroyer (Cidelsa) (set 1)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1980, destryera,destryer, destryera,destryer, cidelsa_state, 0, ROT90, "Cidelsa", "Destroyer (Cidelsa) (set 2)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1981, altair, 0, altair, altair, cidelsa_state, 0, ROT90, "Cidelsa", "Altair", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1981, draco, 0, draco, draco, draco_state, 0, ROT90, "Cidelsa", "Draco", MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/cinemat.cpp b/src/mame/drivers/cinemat.cpp index bae64d2f0d7..9f8ad15954e 100644 --- a/src/mame/drivers/cinemat.cpp +++ b/src/mame/drivers/cinemat.cpp @@ -149,7 +149,7 @@ READ8_MEMBER(cinemat_state::joystick_read) return 0; else { - int const xval = int16_t(m_maincpu->state_int(CCPU_X) << 4) >> 4; + int const xval = int16_t(m_maincpu->state_int(ccpu_cpu_device::CCPU_X) << 4) >> 4; return ((m_mux_select ? m_analog_x : m_analog_y).read_safe(0) - xval) < 0x800; } } @@ -274,7 +274,7 @@ READ8_MEMBER(cinemat_state::qb3_frame_r) WRITE8_MEMBER(cinemat_state::qb3_ram_bank_w) { - membank("bank1")->set_entry(m_maincpu->state_int(CCPU_P) & 3); + membank("bank1")->set_entry(m_maincpu->state_int(ccpu_cpu_device::CCPU_P) & 3); } @@ -958,11 +958,11 @@ INPUT_PORTS_END * *************************************/ -static MACHINE_CONFIG_START( cinemat_nojmi_4k, cinemat_state ) +static MACHINE_CONFIG_START( cinemat_nojmi_4k ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", CCPU, MASTER_CLOCK/4) - MCFG_CCPU_VECTOR_FUNC(ccpu_vector_delegate(FUNC(cinemat_state::cinemat_vector_callback),(cinemat_state*)owner)) + MCFG_CCPU_VECTOR_FUNC(ccpu_cpu_device::vector_delegate(FUNC(cinemat_state::cinemat_vector_callback),(cinemat_state*)owner)) MCFG_CCPU_EXTERNAL_FUNC(READ8(cinemat_state,joystick_read)) MCFG_CPU_PROGRAM_MAP(program_map_4k) MCFG_CPU_DATA_MAP(data_map) @@ -981,7 +981,7 @@ MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( cinemat_jmi_4k, cinemat_nojmi_4k ) MCFG_CPU_MODIFY("maincpu") - MCFG_CCPU_VECTOR_FUNC(ccpu_vector_delegate(FUNC(cinemat_state::cinemat_vector_callback),(cinemat_state*)owner)) + MCFG_CCPU_VECTOR_FUNC(ccpu_cpu_device::vector_delegate(FUNC(cinemat_state::cinemat_vector_callback),(cinemat_state*)owner)) MCFG_CCPU_EXTERNAL_FUNC(DEVREAD8("maincpu",ccpu_cpu_device,read_jmi)) MACHINE_CONFIG_END @@ -1463,27 +1463,27 @@ DRIVER_INIT_MEMBER(cinemat_state,qb3) * *************************************/ -GAME( 1977, spacewar, 0, spacewar, spacewar, driver_device, 0, ORIENTATION_FLIP_Y, "Cinematronics", "Space Wars", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1978, spaceshp, spacewar,spacewar, spaceshp, driver_device, 0, ORIENTATION_FLIP_Y, "Cinematronics (Sega license)", "Space Ship", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAMEL(1979, barrier, 0, barrier, barrier, driver_device, 0, ORIENTATION_FLIP_X ^ ROT270, "Cinematronics (Vectorbeam license)", "Barrier", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_barrier ) // developed by Cinematronics, then (when they noticed it wasn't going to be a successful game) sold to Vectorbeam, and ultimately back in the hands of Cinematronics again after they bought the dying company Vectorbeam +GAME( 1977, spacewar, 0, spacewar, spacewar, cinemat_state, 0, ORIENTATION_FLIP_Y, "Cinematronics", "Space Wars", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1978, spaceshp, spacewar,spacewar, spaceshp, cinemat_state, 0, ORIENTATION_FLIP_Y, "Cinematronics (Sega license)", "Space Ship", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAMEL(1979, barrier, 0, barrier, barrier, cinemat_state, 0, ORIENTATION_FLIP_X ^ ROT270, "Cinematronics (Vectorbeam license)", "Barrier", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_barrier ) // developed by Cinematronics, then (when they noticed it wasn't going to be a successful game) sold to Vectorbeam, and ultimately back in the hands of Cinematronics again after they bought the dying company Vectorbeam GAME( 1979, speedfrk, 0, speedfrk, speedfrk, cinemat_state, speedfrk, ORIENTATION_FLIP_Y, "Vectorbeam", "Speed Freak", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1979, starhawk, 0, starhawk, starhawk, driver_device, 0, ORIENTATION_FLIP_Y, "Cinematronics", "Star Hawk", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1979, starhawk, 0, starhawk, starhawk, cinemat_state, 0, ORIENTATION_FLIP_Y, "Cinematronics", "Star Hawk", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) GAMEL(1979, sundance, 0, sundance, sundance, cinemat_state, sundance, ORIENTATION_FLIP_X ^ ROT270, "Cinematronics", "Sundance", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_sundance ) GAMEL(1979, tailg, 0, tailg, tailg, cinemat_state, tailg, ORIENTATION_FLIP_Y, "Cinematronics", "Tailgunner", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_tailg ) -GAME( 1979, warrior, 0, warrior, warrior, driver_device, 0, ORIENTATION_FLIP_Y, "Vectorbeam", "Warrior", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAMEL(1980, armora, 0, armora, armora, driver_device, 0, ORIENTATION_FLIP_Y, "Cinematronics", "Armor Attack", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_armora ) -GAMEL(1980, armorap, armora, armora, armora, driver_device, 0, ORIENTATION_FLIP_Y, "Cinematronics", "Armor Attack (prototype)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_armora ) -GAMEL(1980, armorar, armora, armora, armora, driver_device, 0, ORIENTATION_FLIP_Y, "Cinematronics (Rock-Ola license)", "Armor Attack (Rock-Ola)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_armora ) -GAME( 1980, ripoff, 0, ripoff, ripoff, driver_device, 0, ORIENTATION_FLIP_Y, "Cinematronics", "Rip Off", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAMEL(1980, starcas, 0, starcas, starcas, driver_device, 0, ORIENTATION_FLIP_Y, "Cinematronics", "Star Castle (version 3)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_starcas ) -GAMEL(1980, starcas1, starcas, starcas, starcas, driver_device, 0, ORIENTATION_FLIP_Y, "Cinematronics", "Star Castle (older)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_starcas ) -GAMEL(1980, starcasp, starcas, starcas, starcas, driver_device, 0, ORIENTATION_FLIP_Y, "Cinematronics", "Star Castle (prototype)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_starcas ) -GAMEL(1980, starcase, starcas, starcas, starcas, driver_device, 0, ORIENTATION_FLIP_Y, "Cinematronics (Mottoeis license)", "Star Castle (Mottoeis)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_starcas ) -GAMEL(1980, stellcas, starcas, starcas, starcas, driver_device, 0, ORIENTATION_FLIP_Y, "bootleg (Elettronolo)", "Stellar Castle (Elettronolo)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_starcas ) -GAMEL(1981, spaceftr, starcas, starcas, starcas, driver_device, 0, ORIENTATION_FLIP_Y, "Cinematronics (Zaccaria license)", "Space Fortress (Zaccaria)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_starcas ) -GAMEL(1981, solarq, 0, solarq, solarq, driver_device, 0, ORIENTATION_FLIP_Y ^ ORIENTATION_FLIP_X, "Cinematronics", "Solar Quest", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_solarq ) +GAME( 1979, warrior, 0, warrior, warrior, cinemat_state, 0, ORIENTATION_FLIP_Y, "Vectorbeam", "Warrior", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAMEL(1980, armora, 0, armora, armora, cinemat_state, 0, ORIENTATION_FLIP_Y, "Cinematronics", "Armor Attack", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_armora ) +GAMEL(1980, armorap, armora, armora, armora, cinemat_state, 0, ORIENTATION_FLIP_Y, "Cinematronics", "Armor Attack (prototype)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_armora ) +GAMEL(1980, armorar, armora, armora, armora, cinemat_state, 0, ORIENTATION_FLIP_Y, "Cinematronics (Rock-Ola license)", "Armor Attack (Rock-Ola)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_armora ) +GAME( 1980, ripoff, 0, ripoff, ripoff, cinemat_state, 0, ORIENTATION_FLIP_Y, "Cinematronics", "Rip Off", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAMEL(1980, starcas, 0, starcas, starcas, cinemat_state, 0, ORIENTATION_FLIP_Y, "Cinematronics", "Star Castle (version 3)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_starcas ) +GAMEL(1980, starcas1, starcas, starcas, starcas, cinemat_state, 0, ORIENTATION_FLIP_Y, "Cinematronics", "Star Castle (older)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_starcas ) +GAMEL(1980, starcasp, starcas, starcas, starcas, cinemat_state, 0, ORIENTATION_FLIP_Y, "Cinematronics", "Star Castle (prototype)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_starcas ) +GAMEL(1980, starcase, starcas, starcas, starcas, cinemat_state, 0, ORIENTATION_FLIP_Y, "Cinematronics (Mottoeis license)", "Star Castle (Mottoeis)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_starcas ) +GAMEL(1980, stellcas, starcas, starcas, starcas, cinemat_state, 0, ORIENTATION_FLIP_Y, "bootleg (Elettronolo)", "Stellar Castle (Elettronolo)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_starcas ) +GAMEL(1981, spaceftr, starcas, starcas, starcas, cinemat_state, 0, ORIENTATION_FLIP_Y, "Cinematronics (Zaccaria license)", "Space Fortress (Zaccaria)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_starcas ) +GAMEL(1981, solarq, 0, solarq, solarq, cinemat_state, 0, ORIENTATION_FLIP_Y ^ ORIENTATION_FLIP_X, "Cinematronics", "Solar Quest", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_solarq ) GAME( 1981, boxingb, 0, boxingb, boxingb, cinemat_state, boxingb, ORIENTATION_FLIP_Y, "Cinematronics", "Boxing Bugs", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAMEL(1981, wotw, 0, wotw, wotw, driver_device, 0, ORIENTATION_FLIP_Y, "Cinematronics", "War of the Worlds", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_wotw ) -GAME( 1981, wotwc, wotw, wotwc, wotw, driver_device, 0, ORIENTATION_FLIP_Y, "Cinematronics", "War of the Worlds (color)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAMEL(1982, demon, 0, demon, demon, driver_device, 0, ORIENTATION_FLIP_Y, "Rock-Ola", "Demon", MACHINE_SUPPORTS_SAVE, layout_demon ) +GAMEL(1981, wotw, 0, wotw, wotw, cinemat_state, 0, ORIENTATION_FLIP_Y, "Cinematronics", "War of the Worlds", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_wotw ) +GAME( 1981, wotwc, wotw, wotwc, wotw, cinemat_state, 0, ORIENTATION_FLIP_Y, "Cinematronics", "War of the Worlds (color)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAMEL(1982, demon, 0, demon, demon, cinemat_state, 0, ORIENTATION_FLIP_Y, "Rock-Ola", "Demon", MACHINE_SUPPORTS_SAVE, layout_demon ) GAME( 1982, qb3, 0, qb3, qb3, cinemat_state, qb3, ORIENTATION_FLIP_Y, "Rock-Ola", "QB-3 (prototype)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/circus.cpp b/src/mame/drivers/circus.cpp index facf52901b5..10f3399e1ec 100644 --- a/src/mame/drivers/circus.cpp +++ b/src/mame/drivers/circus.cpp @@ -282,7 +282,7 @@ void circus_state::machine_reset() } -static MACHINE_CONFIG_START( circus, circus_state ) +static MACHINE_CONFIG_START( circus ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, XTAL_11_289MHz / 16) /* 705.562kHz */ @@ -317,7 +317,7 @@ static MACHINE_CONFIG_START( circus, circus_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( robotbwl, circus_state ) +static MACHINE_CONFIG_START( robotbwl ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, XTAL_11_289MHz / 16) /* 705.562kHz */ @@ -359,7 +359,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(circus_state::crash_scanline) m_maincpu->set_input_line(0, ASSERT_LINE); } -static MACHINE_CONFIG_START( crash, circus_state ) +static MACHINE_CONFIG_START( crash ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, XTAL_11_289MHz / 16) /* 705.562kHz */ @@ -393,7 +393,7 @@ static MACHINE_CONFIG_START( crash, circus_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( ripcord, circus_state ) +static MACHINE_CONFIG_START( ripcord ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, XTAL_11_289MHz / 16) /* 705.562kHz */ @@ -580,9 +580,9 @@ DRIVER_INIT_MEMBER(circus_state,ripcord) } -GAMEL(1977, circus, 0, circus, circus, circus_state, circus, ROT0, "Exidy / Taito", "Circus / Acrobat TV", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND, layout_circus ) -GAMEL(1977, springbd, circus, circus, circus, circus_state, circus, ROT0, "bootleg (Sub-Electro)", "Springboard (bootleg of Circus)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND, layout_circus ) // looks like a text hack, but we've seen 2 identical copies so it's worth supporting +GAMEL(1977, circus, 0, circus, circus, circus_state, circus, ROT0, "Exidy / Taito", "Circus / Acrobat TV", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND, layout_circus ) +GAMEL(1977, springbd, circus, circus, circus, circus_state, circus, ROT0, "bootleg (Sub-Electro)", "Springboard (bootleg of Circus)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND, layout_circus ) // looks like a text hack, but we've seen 2 identical copies so it's worth supporting GAME( 1977, robotbwl, 0, robotbwl, robotbwl, circus_state, robotbwl, ROT0, "Exidy", "Robot Bowl", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) -GAMEL(1979, crash, 0, crash, crash, circus_state, crash, ROT0, "Exidy", "Crash", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND, layout_crash ) -GAMEL(1979, smash, crash, crash, crash, circus_state, crash, ROT0, "bootleg", "Smash (Crash bootleg)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND, layout_crash ) // looks like a text hack, but it also had a different bezel -GAME( 1979, ripcord, 0, ripcord, ripcord, circus_state, ripcord, ROT0, "Exidy", "Rip Cord", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) +GAMEL(1979, crash, 0, crash, crash, circus_state, crash, ROT0, "Exidy", "Crash", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND, layout_crash ) +GAMEL(1979, smash, crash, crash, crash, circus_state, crash, ROT0, "bootleg", "Smash (Crash bootleg)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND, layout_crash ) // looks like a text hack, but it also had a different bezel +GAME( 1979, ripcord, 0, ripcord, ripcord, circus_state, ripcord, ROT0, "Exidy", "Rip Cord", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) diff --git a/src/mame/drivers/circusc.cpp b/src/mame/drivers/circusc.cpp index c2ca81a6df1..3be46e59f90 100644 --- a/src/mame/drivers/circusc.cpp +++ b/src/mame/drivers/circusc.cpp @@ -337,7 +337,7 @@ INTERRUPT_GEN_MEMBER(circusc_state::vblank_irq) device.execute().set_input_line(0, HOLD_LINE); } -static MACHINE_CONFIG_START( circusc, circusc_state ) +static MACHINE_CONFIG_START( circusc ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", KONAMI1, 2048000) /* 2 MHz? */ diff --git a/src/mame/drivers/cischeat.cpp b/src/mame/drivers/cischeat.cpp index 6d09ea0ea24..55367f347e0 100644 --- a/src/mame/drivers/cischeat.cpp +++ b/src/mame/drivers/cischeat.cpp @@ -1909,7 +1909,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(cischeat_state::bigrun_scanline) -static MACHINE_CONFIG_START( bigrun, cischeat_state ) +static MACHINE_CONFIG_START( bigrun ) /* basic machine hardware */ MCFG_CPU_ADD("cpu1", M68000, 10000000) @@ -1959,11 +1959,11 @@ static MACHINE_CONFIG_START( bigrun, cischeat_state ) MCFG_SOUND_ROUTE(0, "lspeaker", 0.50) MCFG_SOUND_ROUTE(1, "rspeaker", 0.50) - MCFG_OKIM6295_ADD("oki1", STD_OKI_CLOCK, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki1", STD_OKI_CLOCK, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.25) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.25) - MCFG_OKIM6295_ADD("oki2", STD_OKI_CLOCK, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki2", STD_OKI_CLOCK, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.25) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.25) MACHINE_CONFIG_END @@ -2087,7 +2087,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(cischeat_state::scudhamm_scanline) m_maincpu->set_input_line(2, HOLD_LINE); } -static MACHINE_CONFIG_START( scudhamm, cischeat_state ) +static MACHINE_CONFIG_START( scudhamm ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",M68000, 12000000) @@ -2117,11 +2117,11 @@ static MACHINE_CONFIG_START( scudhamm, cischeat_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_OKIM6295_ADD("oki1", 2112000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki1", 2112000, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.5) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.5) - MCFG_OKIM6295_ADD("oki2", 2112000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki2", 2112000, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.5) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.5) MACHINE_CONFIG_END @@ -2174,7 +2174,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(cischeat_state::captflag_scanline) m_maincpu->set_input_line(3, HOLD_LINE); } -static MACHINE_CONFIG_START( captflag, cischeat_state ) +static MACHINE_CONFIG_START( captflag ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",M68000, XTAL_24MHz / 2) // TMP68000P-12 @@ -2213,12 +2213,12 @@ static MACHINE_CONFIG_START( captflag, cischeat_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_OKIM6295_ADD("oki1", 2112000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki1", 2112000, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_DEVICE_ADDRESS_MAP(AS_0, captflag_oki1_map) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.5) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.5) - MCFG_OKIM6295_ADD("oki2", 2112000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki2", 2112000, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_DEVICE_ADDRESS_MAP(AS_0, captflag_oki2_map) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.5) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.5) @@ -3602,13 +3602,13 @@ DRIVER_INIT_MEMBER(cischeat_state, captflag) ***************************************************************************/ -GAMEL( 1989, bigrun, 0, bigrun, bigrun, cischeat_state, bigrun, ROT0, "Jaleco", "Big Run (11th Rallye version)", MACHINE_IMPERFECT_GRAPHICS, layout_cischeat ) // there's a 13th Rallye version (1991) (only on the SNES? Could just be updated title, 1989 -> 11th Paris-Dakar ...) +GAMEL( 1989, bigrun, 0, bigrun, bigrun, cischeat_state, bigrun, ROT0, "Jaleco", "Big Run (11th Rallye version)", MACHINE_IMPERFECT_GRAPHICS, layout_cischeat ) // there's a 13th Rallye version (1991) (only on the SNES? Could just be updated title, 1989 -> 11th Paris-Dakar ...) GAMEL( 1990, cischeat, 0, cischeat, cischeat, cischeat_state, cischeat, ROT0, "Jaleco", "Cisco Heat", MACHINE_IMPERFECT_GRAPHICS, layout_cischeat ) GAMEL( 1991, f1gpstar, 0, f1gpstar, f1gpstar, cischeat_state, f1gpstar, ROT0, "Jaleco", "Grand Prix Star (v3.0)", MACHINE_IMPERFECT_GRAPHICS, layout_f1gpstar ) GAMEL( 1991, f1gpstaro,f1gpstar, f1gpstar, f1gpstar, cischeat_state, f1gpstar, ROT0, "Jaleco", "Grand Prix Star (v2.0)", MACHINE_IMPERFECT_GRAPHICS, layout_f1gpstar ) -GAME ( 1992, armchmp2, 0, armchmp2, armchmp2, driver_device, 0, ROT270, "Jaleco", "Arm Champs II v2.6", MACHINE_IMPERFECT_GRAPHICS ) -GAME ( 1992, armchmp2o,armchmp2, armchmp2, armchmp2, driver_device, 0, ROT270, "Jaleco", "Arm Champs II v1.7", MACHINE_IMPERFECT_GRAPHICS ) -GAME ( 1992, wildplt, 0, wildplt, wildplt, cischeat_state, f1gpstar, ROT0, "Jaleco", "Wild Pilot", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) // busted timings +GAME ( 1992, armchmp2, 0, armchmp2, armchmp2, cischeat_state, 0, ROT270, "Jaleco", "Arm Champs II v2.6", MACHINE_IMPERFECT_GRAPHICS ) +GAME ( 1992, armchmp2o,armchmp2, armchmp2, armchmp2, cischeat_state, 0, ROT270, "Jaleco", "Arm Champs II v1.7", MACHINE_IMPERFECT_GRAPHICS ) +GAME ( 1992, wildplt, 0, wildplt, wildplt, cischeat_state, f1gpstar, ROT0, "Jaleco", "Wild Pilot", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) // busted timings GAMEL( 1993, f1gpstr2, 0, f1gpstr2, f1gpstr2, cischeat_state, f1gpstar, ROT0, "Jaleco", "F-1 Grand Prix Star II", MACHINE_IMPERFECT_GRAPHICS, layout_f1gpstar ) GAME ( 1993, captflag, 0, captflag, captflag, cischeat_state, captflag, ROT270, "Jaleco", "Captain Flag (Japan)", MACHINE_IMPERFECT_GRAPHICS ) -GAME ( 1994, scudhamm, 0, scudhamm, scudhamm, driver_device, 0, ROT270, "Jaleco", "Scud Hammer", MACHINE_IMPERFECT_GRAPHICS ) +GAME ( 1994, scudhamm, 0, scudhamm, scudhamm, cischeat_state, 0, ROT270, "Jaleco", "Scud Hammer", MACHINE_IMPERFECT_GRAPHICS ) diff --git a/src/mame/drivers/citycon.cpp b/src/mame/drivers/citycon.cpp index f78d856f761..366ff4a5ef0 100644 --- a/src/mame/drivers/citycon.cpp +++ b/src/mame/drivers/citycon.cpp @@ -186,7 +186,7 @@ void citycon_state::machine_reset() } -static MACHINE_CONFIG_START( citycon, citycon_state ) +static MACHINE_CONFIG_START( citycon ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809, 2048000) /* 2.048 MHz ??? */ diff --git a/src/mame/drivers/clayshoo.cpp b/src/mame/drivers/clayshoo.cpp index 410042c304c..5daba43baea 100644 --- a/src/mame/drivers/clayshoo.cpp +++ b/src/mame/drivers/clayshoo.cpp @@ -310,7 +310,7 @@ void clayshoo_state::machine_reset() m_analog_port_val = 0; } -static MACHINE_CONFIG_START( clayshoo, clayshoo_state ) +static MACHINE_CONFIG_START( clayshoo ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80,5068000/4) /* 5.068/4 Mhz (divider is a guess) */ @@ -360,4 +360,4 @@ ROM_END * *************************************/ -GAME( 1979, clayshoo, 0, clayshoo, clayshoo, driver_device, 0, ROT0, "Allied Leisure", "Clay Shoot", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1979, clayshoo, 0, clayshoo, clayshoo, clayshoo_state, 0, ROT0, "Allied Leisure", "Clay Shoot", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/clcd.cpp b/src/mame/drivers/clcd.cpp index 411122659f5..5ac1b9124fd 100644 --- a/src/mame/drivers/clcd.cpp +++ b/src/mame/drivers/clcd.cpp @@ -734,7 +734,7 @@ static INPUT_PORTS_START( clcd ) PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) // clears screen and goes into infinite loop INPUT_PORTS_END -static MACHINE_CONFIG_START(clcd, clcd_state) +static MACHINE_CONFIG_START(clcd) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M65C02, 2000000) MCFG_CPU_PROGRAM_MAP(clcd_mem) @@ -840,5 +840,5 @@ ROM_START( clcd ) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1985, clcd, 0, 0, clcd, clcd, driver_device, 0, "Commodore Business Machines", "LCD (Prototype)", 0 ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +COMP( 1985, clcd, 0, 0, clcd, clcd, clcd_state, 0, "Commodore Business Machines", "LCD (Prototype)", 0 ) diff --git a/src/mame/drivers/cliffhgr.cpp b/src/mame/drivers/cliffhgr.cpp index 71771216d4b..c61458986f5 100644 --- a/src/mame/drivers/cliffhgr.cpp +++ b/src/mame/drivers/cliffhgr.cpp @@ -674,7 +674,7 @@ INPUT_PORTS_END * *************************************/ -static MACHINE_CONFIG_START( cliffhgr, cliffhgr_state ) +static MACHINE_CONFIG_START( cliffhgr ) MCFG_CPU_ADD("maincpu", Z80, 4000000) /* 4MHz */ MCFG_CPU_PROGRAM_MAP(mainmem) @@ -684,8 +684,8 @@ static MACHINE_CONFIG_START( cliffhgr, cliffhgr_state ) MCFG_NVRAM_ADD_0FILL("nvram") MCFG_LASERDISC_PR8210_ADD("laserdisc") - MCFG_LASERDISC_OVERLAY_DEVICE(TMS9928A_TOTAL_HORZ, TMS9928A_TOTAL_VERT_NTSC, "tms9928a", tms9928a_device, screen_update) - MCFG_LASERDISC_OVERLAY_CLIP(TMS9928A_HORZ_DISPLAY_START-12, TMS9928A_HORZ_DISPLAY_START+32*8+12-1, TMS9928A_VERT_DISPLAY_START_NTSC - 12, TMS9928A_VERT_DISPLAY_START_NTSC+24*8+12-1) + MCFG_LASERDISC_OVERLAY_DEVICE(tms9928a_device::TOTAL_HORZ, tms9928a_device::TOTAL_VERT_NTSC, "tms9928a", tms9928a_device, screen_update) + MCFG_LASERDISC_OVERLAY_CLIP(tms9928a_device::HORZ_DISPLAY_START-12, tms9928a_device::HORZ_DISPLAY_START+32*8+12-1, tms9928a_device::VERT_DISPLAY_START_NTSC - 12, tms9928a_device::VERT_DISPLAY_START_NTSC+24*8+12-1) /* start with the TMS9928a video configuration */ MCFG_DEVICE_ADD( "tms9928a", TMS9128, XTAL_10_738635MHz / 2 ) /* TMS9128NL on the board */ @@ -781,7 +781,7 @@ DRIVER_INIT_MEMBER(cliffhgr_state,cliff) * *************************************/ -GAME( 1983, cliffhgr, 0, cliffhgr, cliffhgr, cliffhgr_state, cliff, ROT0, "Stern Electronics", "Cliff Hanger (set 1)", 0) -GAME( 1983, cliffhgra, cliffhgr, cliffhgr, cliffhgra, cliffhgr_state, cliff, ROT0, "Stern Electronics", "Cliff Hanger (set 2)", 0) -GAME( 1983, cliffhgra2,cliffhgr, cliffhgr, cliffhgra, cliffhgr_state, cliff, ROT0, "Stern Electronics", "Cliff Hanger (set 3)", 0) -GAME( 1983, goaltogo, 0, cliffhgr, goaltogo, cliffhgr_state, cliff, ROT0, "Stern Electronics", "Goal To Go", MACHINE_NOT_WORKING) +GAME( 1983, cliffhgr, 0, cliffhgr, cliffhgr, cliffhgr_state, cliff, ROT0, "Stern Electronics", "Cliff Hanger (set 1)", 0 ) +GAME( 1983, cliffhgra, cliffhgr, cliffhgr, cliffhgra, cliffhgr_state, cliff, ROT0, "Stern Electronics", "Cliff Hanger (set 2)", 0 ) +GAME( 1983, cliffhgra2,cliffhgr, cliffhgr, cliffhgra, cliffhgr_state, cliff, ROT0, "Stern Electronics", "Cliff Hanger (set 3)", 0 ) +GAME( 1983, goaltogo, 0, cliffhgr, goaltogo, cliffhgr_state, cliff, ROT0, "Stern Electronics", "Goal To Go", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/cloak.cpp b/src/mame/drivers/cloak.cpp index 1d2b38bb31f..ecaba50da9f 100644 --- a/src/mame/drivers/cloak.cpp +++ b/src/mame/drivers/cloak.cpp @@ -313,7 +313,7 @@ GFXDECODE_END * *************************************/ -static MACHINE_CONFIG_START( cloak, cloak_state ) +static MACHINE_CONFIG_START( cloak ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, 1000000) /* 1 MHz ???? */ @@ -605,11 +605,11 @@ ROM_END * *************************************/ -GAME( 1983, cloak, 0, cloak, cloak, driver_device, 0, ROT0, "Atari", "Cloak & Dagger (rev 5)", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, cloaksp, cloak, cloak, cloak, driver_device, 0, ROT0, "Atari", "Cloak & Dagger (Spanish)", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, cloakfr, cloak, cloak, cloak, driver_device, 0, ROT0, "Atari", "Cloak & Dagger (French)", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, cloakgr, cloak, cloak, cloak, driver_device, 0, ROT0, "Atari", "Cloak & Dagger (German)", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, agentx4, cloak, cloak, cloak, driver_device, 0, ROT0, "Atari", "Agent X (prototype, rev 4)", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, agentx3, cloak, cloak, cloak, driver_device, 0, ROT0, "Atari", "Agent X (prototype, rev 3)", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, agentx2, cloak, cloak, cloak, driver_device, 0, ROT0, "Atari", "Agent X (prototype, rev 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, agentx1, cloak, cloak, cloak, driver_device, 0, ROT0, "Atari", "Agent X (prototype, rev 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, cloak, 0, cloak, cloak, cloak_state, 0, ROT0, "Atari", "Cloak & Dagger (rev 5)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, cloaksp, cloak, cloak, cloak, cloak_state, 0, ROT0, "Atari", "Cloak & Dagger (Spanish)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, cloakfr, cloak, cloak, cloak, cloak_state, 0, ROT0, "Atari", "Cloak & Dagger (French)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, cloakgr, cloak, cloak, cloak, cloak_state, 0, ROT0, "Atari", "Cloak & Dagger (German)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, agentx4, cloak, cloak, cloak, cloak_state, 0, ROT0, "Atari", "Agent X (prototype, rev 4)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, agentx3, cloak, cloak, cloak, cloak_state, 0, ROT0, "Atari", "Agent X (prototype, rev 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, agentx2, cloak, cloak, cloak, cloak_state, 0, ROT0, "Atari", "Agent X (prototype, rev 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, agentx1, cloak, cloak, cloak, cloak_state, 0, ROT0, "Atari", "Agent X (prototype, rev 1)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/cloud9.cpp b/src/mame/drivers/cloud9.cpp index a50ff3ad021..3137af7189d 100644 --- a/src/mame/drivers/cloud9.cpp +++ b/src/mame/drivers/cloud9.cpp @@ -404,7 +404,7 @@ GFXDECODE_END * *************************************/ -static MACHINE_CONFIG_START( cloud9, cloud9_state ) +static MACHINE_CONFIG_START( cloud9 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, MASTER_CLOCK/8) @@ -498,5 +498,5 @@ ROM_END * *************************************/ -GAME( 1983, cloud9, 0, cloud9, cloud9, driver_device, 0, ROT0, "Atari", "Cloud 9 (prototype)", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, firebeas, 0, cloud9, firebeas, driver_device, 0, ROT0, "Atari", "Firebeast (prototype)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, cloud9, 0, cloud9, cloud9, cloud9_state, 0, ROT0, "Atari", "Cloud 9 (prototype)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, firebeas, 0, cloud9, firebeas, cloud9_state, 0, ROT0, "Atari", "Firebeast (prototype)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/clowndwn.cpp b/src/mame/drivers/clowndwn.cpp index dc1f154534e..d169924d2c9 100644 --- a/src/mame/drivers/clowndwn.cpp +++ b/src/mame/drivers/clowndwn.cpp @@ -41,7 +41,7 @@ void clowndwn_state::machine_reset() } -static MACHINE_CONFIG_START( clowndwn, clowndwn_state ) +static MACHINE_CONFIG_START( clowndwn ) /* basic machine hardware */ // MCFG_CPU_ADD("maincpu", ??, 8000000) // unknown (vectors at end? 6xxx ?) @@ -63,4 +63,4 @@ ROM_START( clowndwn ) ROM_LOAD( "CLWNROLL.Z9", 0x1000, 0x1000, CRC(aeef885e) SHA1(bc6805b638625a347e1288a927ce30e030afe9e3) ) ROM_END -GAME( 1987, clowndwn, 0, clowndwn, clowndwn, driver_device, 0, ROT0, "Elwood Electronics", "Clown Roll Down (Elwood)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 1987, clowndwn, 0, clowndwn, clowndwn, clowndwn_state, 0, ROT0, "Elwood Electronics", "Clown Roll Down (Elwood)", MACHINE_IS_SKELETON_MECHANICAL ) diff --git a/src/mame/drivers/clpoker.cpp b/src/mame/drivers/clpoker.cpp index 548d52fe5e2..561bb2ef758 100644 --- a/src/mame/drivers/clpoker.cpp +++ b/src/mame/drivers/clpoker.cpp @@ -246,7 +246,7 @@ static GFXDECODE_START( clpoker ) GFXDECODE_END -static MACHINE_CONFIG_START( clpoker, clpoker_state ) +static MACHINE_CONFIG_START( clpoker ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_12MHz / 3) // Z0840004PSC, divider not verified MCFG_CPU_PROGRAM_MAP(prg_map) @@ -308,4 +308,4 @@ ROM_START( clpoker ) ROM_END -GAME( 1994, clpoker, 0, clpoker, clpoker, driver_device, 0, ROT0, "Chain Leisure", "Poker Genius", MACHINE_SUPPORTS_SAVE ) // Year taken from string in main CPU ROM +GAME( 1994, clpoker, 0, clpoker, clpoker, clpoker_state, 0, ROT0, "Chain Leisure", "Poker Genius", MACHINE_SUPPORTS_SAVE ) // Year taken from string in main CPU ROM diff --git a/src/mame/drivers/clshroad.cpp b/src/mame/drivers/clshroad.cpp index 156e7095829..ebc199ff253 100644 --- a/src/mame/drivers/clshroad.cpp +++ b/src/mame/drivers/clshroad.cpp @@ -276,7 +276,7 @@ INTERRUPT_GEN_MEMBER(clshroad_state::sound_timer_irq) device.execute().set_input_line(0, HOLD_LINE); } -static MACHINE_CONFIG_START( firebatl, clshroad_state ) +static MACHINE_CONFIG_START( firebatl ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, MAIN_CLOCK) /* ? */ @@ -310,7 +310,7 @@ static MACHINE_CONFIG_START( firebatl, clshroad_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( clshroad, clshroad_state ) +static MACHINE_CONFIG_START( clshroad ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, MAIN_CLOCK) /* ? real speed unknown. 3MHz is too low and causes problems */ @@ -571,6 +571,6 @@ die once, it would be nice to avoid the hack however } GAME( 1984, firebatl, 0, firebatl, firebatl, clshroad_state, firebatl, ROT90, "Wood Place Inc. (Taito license)", "Fire Battle", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1986, clshroad, 0, clshroad, clshroad, driver_device, 0, ROT0, "Wood Place Inc.", "Clash-Road", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, clshroads,clshroad, clshroad, clshroad, driver_device, 0, ROT0, "Wood Place Inc. (Status Game Corp. license)", "Clash-Road (Status license)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, clshroadd,clshroad, clshroad, clshroad, driver_device, 0, ROT0, "Wood Place Inc. (Data East license)", "Clash-Road (Data East license)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, clshroad, 0, clshroad, clshroad, clshroad_state, 0, ROT0, "Wood Place Inc.", "Clash-Road", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, clshroads,clshroad, clshroad, clshroad, clshroad_state, 0, ROT0, "Wood Place Inc. (Status Game Corp. license)", "Clash-Road (Status license)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, clshroadd,clshroad, clshroad, clshroad, clshroad_state, 0, ROT0, "Wood Place Inc. (Data East license)", "Clash-Road (Data East license)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/cm1800.cpp b/src/mame/drivers/cm1800.cpp index c2e9d97ef8e..621b45de5bc 100644 --- a/src/mame/drivers/cm1800.cpp +++ b/src/mame/drivers/cm1800.cpp @@ -43,19 +43,22 @@ class cm1800_state : public driver_device { public: cm1800_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag), - m_terminal(*this, TERMINAL_TAG) , - m_maincpu(*this, "maincpu") + : driver_device(mconfig, type, tag) + , m_terminal(*this, TERMINAL_TAG) + , m_maincpu(*this, "maincpu") { } DECLARE_READ8_MEMBER( term_status_r ); DECLARE_READ8_MEMBER( term_r ); - DECLARE_WRITE8_MEMBER( kbd_put ); + void kbd_put(u8 data); + +protected: + virtual void machine_reset() override; + uint8_t m_term_data; required_device m_terminal; - virtual void machine_reset() override; required_device m_maincpu; }; @@ -71,7 +74,7 @@ READ8_MEMBER( cm1800_state::term_r ) return ret; } -WRITE8_MEMBER( cm1800_state::kbd_put ) +void cm1800_state::kbd_put(u8 data) { m_term_data = data; } @@ -97,7 +100,7 @@ void cm1800_state::machine_reset() { } -static MACHINE_CONFIG_START( cm1800, cm1800_state ) +static MACHINE_CONFIG_START( cm1800 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",I8080, XTAL_2MHz) MCFG_CPU_PROGRAM_MAP(cm1800_mem) @@ -106,7 +109,7 @@ static MACHINE_CONFIG_START( cm1800, cm1800_state ) /* video hardware */ MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0) - MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(cm1800_state, kbd_put)) + MCFG_GENERIC_TERMINAL_KEYBOARD_CB(PUT(cm1800_state, kbd_put)) MACHINE_CONFIG_END /* ROM definition */ @@ -117,5 +120,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1981, cm1800, 0, 0, cm1800, cm1800, driver_device, 0, "", "CM-1800", MACHINE_NO_SOUND_HW) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +COMP( 1981, cm1800, 0, 0, cm1800, cm1800, cm1800_state, 0, "", "CM-1800", MACHINE_NO_SOUND_HW) diff --git a/src/mame/drivers/cmi.cpp b/src/mame/drivers/cmi.cpp index 96e9ed2dec3..ea224fff911 100644 --- a/src/mame/drivers/cmi.cpp +++ b/src/mame/drivers/cmi.cpp @@ -219,7 +219,6 @@ static const int ch_int_levels[8] = class cmi01a_device : public device_t, public device_sound_interface { public: cmi01a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - cmi01a_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); static void set_channel_number(device_t &device, int channel) { dynamic_cast(device).m_channel = channel; } @@ -298,10 +297,10 @@ private: int m_irq_state; }; -const device_type CMI01A_CHANNEL_CARD = device_creator; +DEFINE_DEVICE_TYPE(CMI01A_CHANNEL_CARD, cmi01a_device, "cmi_01a", "Fairlight CMI-01A Channel Card") cmi01a_device::cmi01a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, CMI01A_CHANNEL_CARD, "Fairlight CMI-01A Channel Card", tag, owner, clock, "cmi_01a", __FILE__) + : device_t(mconfig, CMI01A_CHANNEL_CARD, tag, owner, clock) , device_sound_interface(mconfig, *this) , m_pia_0(*this, "cmi01a_pia_0") , m_pia_1(*this, "cmi01a_pia_1") @@ -601,7 +600,7 @@ protected: required_memory_region m_qfc9_region; required_device m_floppy0; required_device m_floppy1; - required_device m_wd1791; + required_device m_wd1791; required_device_array m_channels; @@ -2745,7 +2744,7 @@ static SLOT_INTERFACE_START( cmi2x_floppies ) SLOT_INTERFACE( "8dssd", FLOPPY_8_DSSD ) SLOT_INTERFACE_END -static MACHINE_CONFIG_START( cmi2x, cmi_state ) +static MACHINE_CONFIG_START( cmi2x ) MCFG_CPU_ADD("maincpu1", M6809E, Q209_CPU_CLOCK) MCFG_CPU_PROGRAM_MAP(maincpu1_map) MCFG_CPU_VBLANK_INT_DRIVER("screen", cmi_state, cmi_iix_vblank) diff --git a/src/mame/drivers/cmmb.cpp b/src/mame/drivers/cmmb.cpp index 9b43af914f3..e5a4b32074c 100644 --- a/src/mame/drivers/cmmb.cpp +++ b/src/mame/drivers/cmmb.cpp @@ -381,7 +381,7 @@ void cmmb_state::machine_reset() } -static MACHINE_CONFIG_START( cmmb, cmmb_state ) +static MACHINE_CONFIG_START( cmmb ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M65SC02, MAIN_CLOCK/5) // Unknown clock, but chip rated for 14MHz @@ -423,4 +423,4 @@ ROM_START( cmmb162 ) ROM_REGION( 0x1000, "gfx", ROMREGION_ERASE00 ) ROM_END -GAME( 2002, cmmb162, 0, cmmb, cmmb, driver_device, 0, ROT270, "Cosmodog / Team Play (Licensed from Infogrames via Midway Games West)", "Centipede / Millipede / Missile Command / Let's Go Bowling (rev 1.62)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) +GAME( 2002, cmmb162, 0, cmmb, cmmb, cmmb_state, 0, ROT270, "Cosmodog / Team Play (Licensed from Infogrames via Midway Games West)", "Centipede / Millipede / Missile Command / Let's Go Bowling (rev 1.62)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/cninja.cpp b/src/mame/drivers/cninja.cpp index eb496bb7ba9..eabf178c61c 100644 --- a/src/mame/drivers/cninja.cpp +++ b/src/mame/drivers/cninja.cpp @@ -845,7 +845,7 @@ void cninja_state::machine_reset() m_irq_mask = 0; } -static MACHINE_CONFIG_START( cninja, cninja_state ) +static MACHINE_CONFIG_START( cninja ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 12000000) @@ -924,15 +924,15 @@ static MACHINE_CONFIG_START( cninja, cninja_state ) MCFG_SOUND_ROUTE(0, "mono", 0.45) MCFG_SOUND_ROUTE(1, "mono", 0.45) - MCFG_OKIM6295_ADD("oki1", 32220000/32, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki1", 32220000/32, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.75) - MCFG_OKIM6295_ADD("oki2", 32220000/16, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki2", 32220000/16, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( stoneage, cninja_state ) +static MACHINE_CONFIG_START( stoneage ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 12000000) @@ -1010,10 +1010,10 @@ static MACHINE_CONFIG_START( stoneage, cninja_state ) MCFG_SOUND_ROUTE(0, "mono", 0.45) MCFG_SOUND_ROUTE(1, "mono", 0.45) - MCFG_OKIM6295_ADD("oki1", 32220000/32, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki1", 32220000/32, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.75) - MCFG_OKIM6295_ADD("oki2", 32220000/16, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki2", 32220000/16, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60) MACHINE_CONFIG_END @@ -1023,7 +1023,7 @@ static MACHINE_CONFIG_DERIVED( cninjabl2, stoneage ) MCFG_SCREEN_UPDATE_DRIVER(cninja_state, screen_update_cninjabl2) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( cninjabl, cninja_state ) +static MACHINE_CONFIG_START( cninjabl ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 12000000) @@ -1090,12 +1090,12 @@ static MACHINE_CONFIG_START( cninjabl, cninja_state ) MCFG_SOUND_ROUTE(0, "mono", 0.45) MCFG_SOUND_ROUTE(1, "mono", 0.45) - MCFG_OKIM6295_ADD("oki1", 32220000/32, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki1", 32220000/32, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.75) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( edrandy, cninja_state ) +static MACHINE_CONFIG_START( edrandy ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 12000000) @@ -1173,15 +1173,15 @@ static MACHINE_CONFIG_START( edrandy, cninja_state ) MCFG_SOUND_ROUTE(0, "mono", 0.45) MCFG_SOUND_ROUTE(1, "mono", 0.45) - MCFG_OKIM6295_ADD("oki1", 32220000/32, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki1", 32220000/32, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.75) - MCFG_OKIM6295_ADD("oki2", 32220000/16, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki2", 32220000/16, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( robocop2, cninja_state ) +static MACHINE_CONFIG_START( robocop2 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 14000000) @@ -1263,17 +1263,17 @@ static MACHINE_CONFIG_START( robocop2, cninja_state ) MCFG_SOUND_ROUTE(0, "lspeaker", 0.45) MCFG_SOUND_ROUTE(1, "rspeaker", 0.45) - MCFG_OKIM6295_ADD("oki1", 32220000/32, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki1", 32220000/32, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.75) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.75) - MCFG_OKIM6295_ADD("oki2", 32220000/16, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki2", 32220000/16, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.60) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.60) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( mutantf, cninja_state ) +static MACHINE_CONFIG_START( mutantf ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 14000000) @@ -1353,11 +1353,11 @@ static MACHINE_CONFIG_START( mutantf, cninja_state ) MCFG_SOUND_ROUTE(0, "lspeaker", 0.45) MCFG_SOUND_ROUTE(1, "rspeaker", 0.45) - MCFG_OKIM6295_ADD("oki1", 32220000/32, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki1", 32220000/32, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.75) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.75) - MCFG_OKIM6295_ADD("oki2", 32220000/16, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki2", 32220000/16, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.60) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.60) MACHINE_CONFIG_END @@ -2326,26 +2326,26 @@ DRIVER_INIT_MEMBER(cninja_state,mutantf) /**********************************************************************************/ -GAME( 1990, edrandy, 0, edrandy, edrandy, driver_device, 0, ROT0, "Data East Corporation", "The Cliffhanger - Edward Randy (World ver 3)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, edrandy2, edrandy, edrandy, edrandc, driver_device, 0, ROT0, "Data East Corporation", "The Cliffhanger - Edward Randy (World ver 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, edrandy1, edrandy, edrandy, edrandc, driver_device, 0, ROT0, "Data East Corporation", "The Cliffhanger - Edward Randy (World ver 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, edrandyj, edrandy, edrandy, edrandc, driver_device, 0, ROT0, "Data East Corporation", "The Cliffhanger - Edward Randy (Japan ver 3)", MACHINE_SUPPORTS_SAVE ) - -GAME( 1991, cninja, 0, cninja, cninja, cninja_state, cninja, ROT0, "Data East Corporation", "Caveman Ninja (World ver 4)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, cninja1, cninja, cninja, cninja, cninja_state, cninja, ROT0, "Data East Corporation", "Caveman Ninja (World ver 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, cninjau, cninja, cninja, cninjau, cninja_state, cninja, ROT0, "Data East Corporation", "Caveman Ninja (US ver 4)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, joemac, cninja, cninja, cninja, cninja_state, cninja, ROT0, "Data East Corporation", "Tatakae Genshizin Joe & Mac (Japan ver 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, stoneage, cninja, stoneage, cninja, cninja_state, stoneage, ROT0, "bootleg", "Stoneage (bootleg of Caveman Ninja)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, cninjabl, cninja, cninjabl, cninja, driver_device, 0, ROT0, "bootleg", "Caveman Ninja (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, cninjabl2,cninja, cninjabl2,cninja, cninja_state, cninjabl2,ROT0, "bootleg", "Tatakae Genshizin Joe & Mac (Japan, bootleg)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // tile layers need adjusting, sound is wrong - -GAME( 1991, robocop2, 0, robocop2, robocop2, driver_device, 0, ROT0, "Data East Corporation", "Robocop 2 (Euro/Asia v0.10)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, robocop2u,robocop2,robocop2, robocop2, driver_device, 0, ROT0, "Data East Corporation", "Robocop 2 (US v0.10)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, robocop2ua,robocop2,robocop2,robocop2, driver_device, 0, ROT0, "Data East Corporation", "Robocop 2 (US v0.05)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, robocop2j,robocop2,robocop2, robocop2, driver_device, 0, ROT0, "Data East Corporation", "Robocop 2 (Japan v0.11)", MACHINE_SUPPORTS_SAVE ) - -GAME( 1992, mutantf, 0, mutantf, mutantf, cninja_state, mutantf, ROT0, "Data East Corporation", "Mutant Fighter (World ver EM-5)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, mutantf4, mutantf, mutantf, mutantf, cninja_state, mutantf, ROT0, "Data East Corporation", "Mutant Fighter (World ver EM-4)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, mutantf3, mutantf, mutantf, mutantf, cninja_state, mutantf, ROT0, "Data East Corporation", "Mutant Fighter (World ver EM-3)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, mutantf2, mutantf, mutantf, mutantf, cninja_state, mutantf, ROT0, "Data East Corporation", "Mutant Fighter (World ver EM-2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, deathbrd, mutantf, mutantf, mutantf, cninja_state, mutantf, ROT0, "Data East Corporation", "Death Brade (Japan ver JM-3)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, edrandy, 0, edrandy, edrandy, cninja_state, 0, ROT0, "Data East Corporation", "The Cliffhanger - Edward Randy (World ver 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, edrandy2, edrandy, edrandy, edrandc, cninja_state, 0, ROT0, "Data East Corporation", "The Cliffhanger - Edward Randy (World ver 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, edrandy1, edrandy, edrandy, edrandc, cninja_state, 0, ROT0, "Data East Corporation", "The Cliffhanger - Edward Randy (World ver 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, edrandyj, edrandy, edrandy, edrandc, cninja_state, 0, ROT0, "Data East Corporation", "The Cliffhanger - Edward Randy (Japan ver 3)", MACHINE_SUPPORTS_SAVE ) + +GAME( 1991, cninja, 0, cninja, cninja, cninja_state, cninja, ROT0, "Data East Corporation", "Caveman Ninja (World ver 4)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, cninja1, cninja, cninja, cninja, cninja_state, cninja, ROT0, "Data East Corporation", "Caveman Ninja (World ver 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, cninjau, cninja, cninja, cninjau, cninja_state, cninja, ROT0, "Data East Corporation", "Caveman Ninja (US ver 4)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, joemac, cninja, cninja, cninja, cninja_state, cninja, ROT0, "Data East Corporation", "Tatakae Genshizin Joe & Mac (Japan ver 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, stoneage, cninja, stoneage, cninja, cninja_state, stoneage, ROT0, "bootleg", "Stoneage (bootleg of Caveman Ninja)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, cninjabl, cninja, cninjabl, cninja, cninja_state, 0, ROT0, "bootleg", "Caveman Ninja (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, cninjabl2,cninja, cninjabl2,cninja, cninja_state, cninjabl2,ROT0, "bootleg", "Tatakae Genshizin Joe & Mac (Japan, bootleg)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // tile layers need adjusting, sound is wrong + +GAME( 1991, robocop2, 0, robocop2, robocop2, cninja_state, 0, ROT0, "Data East Corporation", "Robocop 2 (Euro/Asia v0.10)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, robocop2u,robocop2, robocop2, robocop2, cninja_state, 0, ROT0, "Data East Corporation", "Robocop 2 (US v0.10)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, robocop2ua,robocop2,robocop2, robocop2, cninja_state, 0, ROT0, "Data East Corporation", "Robocop 2 (US v0.05)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, robocop2j,robocop2, robocop2, robocop2, cninja_state, 0, ROT0, "Data East Corporation", "Robocop 2 (Japan v0.11)", MACHINE_SUPPORTS_SAVE ) + +GAME( 1992, mutantf, 0, mutantf, mutantf, cninja_state, mutantf, ROT0, "Data East Corporation", "Mutant Fighter (World ver EM-5)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, mutantf4, mutantf, mutantf, mutantf, cninja_state, mutantf, ROT0, "Data East Corporation", "Mutant Fighter (World ver EM-4)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, mutantf3, mutantf, mutantf, mutantf, cninja_state, mutantf, ROT0, "Data East Corporation", "Mutant Fighter (World ver EM-3)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, mutantf2, mutantf, mutantf, mutantf, cninja_state, mutantf, ROT0, "Data East Corporation", "Mutant Fighter (World ver EM-2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, deathbrd, mutantf, mutantf, mutantf, cninja_state, mutantf, ROT0, "Data East Corporation", "Death Brade (Japan ver JM-3)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/cntsteer.cpp b/src/mame/drivers/cntsteer.cpp index 56884656be3..20e63ae41df 100644 --- a/src/mame/drivers/cntsteer.cpp +++ b/src/mame/drivers/cntsteer.cpp @@ -904,7 +904,7 @@ MACHINE_RESET_MEMBER(cntsteer_state,cntsteer) MACHINE_RESET_CALL_MEMBER(zerotrgt); } -static MACHINE_CONFIG_START( cntsteer, cntsteer_state ) +static MACHINE_CONFIG_START( cntsteer ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809, 2000000) /* ? */ @@ -958,7 +958,7 @@ static MACHINE_CONFIG_START( cntsteer, cntsteer_state ) 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( zerotrgt, cntsteer_state ) +static MACHINE_CONFIG_START( zerotrgt ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809, 2000000) /* ? */ @@ -1221,7 +1221,7 @@ DRIVER_INIT_MEMBER(cntsteer_state,zerotrgt) /***************************************************************************/ -GAME( 1985, zerotrgt, 0, zerotrgt, zerotrgt, cntsteer_state, zerotrgt, ROT0, "Data East Corporation", "Zero Target (World, CW)", MACHINE_IMPERFECT_GRAPHICS|MACHINE_IMPERFECT_SOUND|MACHINE_NO_COCKTAIL|MACHINE_NOT_WORKING|MACHINE_SUPPORTS_SAVE ) +GAME( 1985, zerotrgt, 0, zerotrgt, zerotrgt, cntsteer_state, zerotrgt, ROT0, "Data East Corporation", "Zero Target (World, CW)", MACHINE_IMPERFECT_GRAPHICS|MACHINE_IMPERFECT_SOUND|MACHINE_NO_COCKTAIL|MACHINE_NOT_WORKING|MACHINE_SUPPORTS_SAVE ) GAME( 1985, zerotrgta, zerotrgt, zerotrgt, zerotrgta, cntsteer_state, zerotrgt, ROT0, "Data East Corporation", "Zero Target (World, CT)", MACHINE_IMPERFECT_GRAPHICS|MACHINE_IMPERFECT_SOUND|MACHINE_NO_COCKTAIL|MACHINE_NOT_WORKING|MACHINE_SUPPORTS_SAVE ) -GAME( 1985, gekitsui, zerotrgt, zerotrgt, zerotrgta, cntsteer_state, zerotrgt, ROT0, "Data East Corporation", "Gekitsui Oh (Japan)", MACHINE_IMPERFECT_GRAPHICS|MACHINE_IMPERFECT_SOUND|MACHINE_NO_COCKTAIL|MACHINE_NOT_WORKING|MACHINE_SUPPORTS_SAVE ) -GAME( 1985, cntsteer, 0, cntsteer, cntsteer, cntsteer_state, zerotrgt, ROT270, "Data East Corporation", "Counter Steer (Japan)", MACHINE_IMPERFECT_GRAPHICS|MACHINE_IMPERFECT_SOUND|MACHINE_WRONG_COLORS|MACHINE_NO_COCKTAIL|MACHINE_NOT_WORKING|MACHINE_SUPPORTS_SAVE ) +GAME( 1985, gekitsui, zerotrgt, zerotrgt, zerotrgta, cntsteer_state, zerotrgt, ROT0, "Data East Corporation", "Gekitsui Oh (Japan)", MACHINE_IMPERFECT_GRAPHICS|MACHINE_IMPERFECT_SOUND|MACHINE_NO_COCKTAIL|MACHINE_NOT_WORKING|MACHINE_SUPPORTS_SAVE ) +GAME( 1985, cntsteer, 0, cntsteer, cntsteer, cntsteer_state, zerotrgt, ROT270, "Data East Corporation", "Counter Steer (Japan)", MACHINE_IMPERFECT_GRAPHICS|MACHINE_IMPERFECT_SOUND|MACHINE_WRONG_COLORS|MACHINE_NO_COCKTAIL|MACHINE_NOT_WORKING|MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/cobra.cpp b/src/mame/drivers/cobra.cpp index 84dbf06dc1c..1f99a30083c 100644 --- a/src/mame/drivers/cobra.cpp +++ b/src/mame/drivers/cobra.cpp @@ -512,10 +512,10 @@ private: optional_ioport_array<2> m_player_ports; }; -const device_type COBRA_JVS = device_creator; +DEFINE_DEVICE_TYPE(COBRA_JVS, cobra_jvs, "cobra_jvs", "JVS (COBRA)") cobra_jvs::cobra_jvs(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : jvs_device(mconfig, COBRA_JVS, "JVS (COBRA)", tag, owner, clock, "cobra_jvs", __FILE__), + : jvs_device(mconfig, COBRA_JVS, tag, owner, clock), m_test_port(*this, ":TEST"), m_player_ports(*this, {":P1", ":P2"}) { @@ -640,10 +640,10 @@ private: int m_send_ptr; }; -const device_type COBRA_JVS_HOST = device_creator; +DEFINE_DEVICE_TYPE(COBRA_JVS_HOST, cobra_jvs_host, "cobra_jvs_host", "JVS-HOST (COBRA)") cobra_jvs_host::cobra_jvs_host(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : jvs_host(mconfig, COBRA_JVS_HOST, "JVS-HOST (COBRA)", tag, owner, clock, "cobra_jvs_host", __FILE__) + : jvs_host(mconfig, COBRA_JVS_HOST, tag, owner, clock) { m_send_ptr = 0; } @@ -3318,7 +3318,7 @@ void cobra_state::machine_reset() dmadac_set_frequency(&m_dmadac[1], 1, 44100); } -static MACHINE_CONFIG_START( cobra, cobra_state ) +static MACHINE_CONFIG_START( cobra ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", PPC603, 100000000) /* 603EV, 100? MHz */ @@ -3656,5 +3656,5 @@ ROM_END /*************************************************************************/ -GAME( 1997, bujutsu, 0, cobra, cobra, cobra_state, bujutsu, ROT0, "Konami", "Fighting Bujutsu", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) -GAME( 1997, racjamdx, 0, cobra, cobra, cobra_state, racjamdx, ROT0, "Konami", "Racing Jam DX", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) +GAME( 1997, bujutsu, 0, cobra, cobra, cobra_state, bujutsu, ROT0, "Konami", "Fighting Bujutsu", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) +GAME( 1997, racjamdx, 0, cobra, cobra, cobra_state, racjamdx, ROT0, "Konami", "Racing Jam DX", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) diff --git a/src/mame/drivers/coco12.cpp b/src/mame/drivers/coco12.cpp index 208bb6ad7d6..2baae4d8efb 100644 --- a/src/mame/drivers/coco12.cpp +++ b/src/mame/drivers/coco12.cpp @@ -298,7 +298,7 @@ DEVICE_INPUT_DEFAULTS_END // MACHINE_CONFIG //------------------------------------------------- -static MACHINE_CONFIG_START( coco, coco12_state ) +static MACHINE_CONFIG_START( coco ) MCFG_DEVICE_MODIFY(":") MCFG_DEVICE_CLOCK(XTAL_3_579545MHz) @@ -465,12 +465,12 @@ ROM_END // SYSTEM DRIVERS //************************************************************************** -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ -COMP( 1980, coco, 0, 0, coco, coco, driver_device, 0, "Tandy Radio Shack", "Color Computer", 0) -COMP( 1981, cocoe, coco, 0, cocoe, coco, driver_device, 0, "Tandy Radio Shack", "Color Computer (Extended BASIC 1.0)", 0) -COMP( 1983, coco2, coco, 0, coco2, coco, driver_device, 0, "Tandy Radio Shack", "Color Computer 2", 0) -COMP( 1985?, coco2b, coco, 0, coco2b, coco, driver_device, 0, "Tandy Radio Shack", "Color Computer 2B", 0) -COMP( 1984, cp400, coco, 0, cp400, coco, driver_device, 0, "Prologica", "CP400", 0) -COMP( 1984, lzcolor64, coco, 0, coco, coco, driver_device, 0, "Digiponto", "LZ Color64", 0) -COMP( 1984, mx1600, coco, 0, coco, coco, driver_device, 0, "Dynacom", "MX-1600", 0) -COMP( 1986, t4426, coco, 0, t4426, coco, driver_device, 0, "Terco AB", "Terco 4426 CNC Programming station", MACHINE_NOT_WORKING) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1980, coco, 0, 0, coco, coco, coco12_state, 0, "Tandy Radio Shack", "Color Computer", 0 ) +COMP( 1981, cocoe, coco, 0, cocoe, coco, coco12_state, 0, "Tandy Radio Shack", "Color Computer (Extended BASIC 1.0)", 0 ) +COMP( 1983, coco2, coco, 0, coco2, coco, coco12_state, 0, "Tandy Radio Shack", "Color Computer 2", 0 ) +COMP( 1985?, coco2b, coco, 0, coco2b, coco, coco12_state, 0, "Tandy Radio Shack", "Color Computer 2B", 0 ) +COMP( 1984, cp400, coco, 0, cp400, coco, coco12_state, 0, "Prologica", "CP400", 0 ) +COMP( 1984, lzcolor64, coco, 0, coco, coco, coco12_state, 0, "Digiponto", "LZ Color64", 0 ) +COMP( 1984, mx1600, coco, 0, coco, coco, coco12_state, 0, "Dynacom", "MX-1600", 0 ) +COMP( 1986, t4426, coco, 0, t4426, coco, coco12_state, 0, "Terco AB", "Terco 4426 CNC Programming station", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/coco3.cpp b/src/mame/drivers/coco3.cpp index 4426235a201..6253fd7b9c1 100644 --- a/src/mame/drivers/coco3.cpp +++ b/src/mame/drivers/coco3.cpp @@ -241,7 +241,7 @@ DEVICE_INPUT_DEFAULTS_END // MACHINE CONFIGURATION //************************************************************************** -static MACHINE_CONFIG_START( coco3, coco3_state ) +static MACHINE_CONFIG_START( coco3 ) MCFG_DEVICE_MODIFY(":") MCFG_DEVICE_CLOCK(XTAL_3_579545MHz) @@ -374,7 +374,7 @@ ROM_END // SYSTEM DRIVERS //************************************************************************** -COMP( 1986, coco3, coco, 0, coco3, coco3, driver_device, 0, "Tandy Radio Shack", "Color Computer 3 (NTSC)", 0) -COMP( 1986, coco3p, coco, 0, coco3p, coco3, driver_device, 0, "Tandy Radio Shack", "Color Computer 3 (PAL)", 0) -COMP( 19??, coco3h, coco, 0, coco3h, coco3, driver_device, 0, "Tandy Radio Shack", "Color Computer 3 (NTSC; HD6309)", MACHINE_UNOFFICIAL) -COMP( 19??, coco3dw1, coco, 0, coco3dw1, coco3, driver_device, 0, "Tandy Radio Shack", "Color Computer 3 (NTSC; HDB-DOS)", MACHINE_UNOFFICIAL) +COMP( 1986, coco3, coco, 0, coco3, coco3, coco3_state, 0, "Tandy Radio Shack", "Color Computer 3 (NTSC)", 0 ) +COMP( 1986, coco3p, coco, 0, coco3p, coco3, coco3_state, 0, "Tandy Radio Shack", "Color Computer 3 (PAL)", 0 ) +COMP( 19??, coco3h, coco, 0, coco3h, coco3, coco3_state, 0, "Tandy Radio Shack", "Color Computer 3 (NTSC; HD6309)", MACHINE_UNOFFICIAL ) +COMP( 19??, coco3dw1, coco, 0, coco3dw1, coco3, coco3_state, 0, "Tandy Radio Shack", "Color Computer 3 (NTSC; HDB-DOS)", MACHINE_UNOFFICIAL ) diff --git a/src/mame/drivers/cocoloco.cpp b/src/mame/drivers/cocoloco.cpp index e6a4f8b3fdf..e92e4258d4b 100644 --- a/src/mame/drivers/cocoloco.cpp +++ b/src/mame/drivers/cocoloco.cpp @@ -519,7 +519,7 @@ INPUT_PORTS_END * Machine Drivers * ***********************************/ -static MACHINE_CONFIG_START( cocoloco, cocoloco_state ) +static MACHINE_CONFIG_START( cocoloco ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, CPU_CLOCK) /* confirmed */ @@ -632,7 +632,7 @@ DRIVER_INIT_MEMBER(cocoloco_state, cocob) * Game Drivers * ***********************************/ -/* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS */ -GAME( 198?, cocoloco, 0, cocoloco, cocoloco, driver_device, 0, ROT90, "Petaco S.A.", "Coco Loco (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 198?, cocolocoa, cocoloco, cocoloco, cocolocoa, driver_device, 0, ROT90, "Recel S.A.", "Coco Loco (set 2)", MACHINE_SUPPORTS_SAVE ) +// YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS +GAME( 198?, cocoloco, 0, cocoloco, cocoloco, cocoloco_state, 0, ROT90, "Petaco S.A.", "Coco Loco (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 198?, cocolocoa, cocoloco, cocoloco, cocolocoa, cocoloco_state, 0, ROT90, "Recel S.A.", "Coco Loco (set 2)", MACHINE_SUPPORTS_SAVE ) GAME( 198?, cocolocob, cocoloco, cocoloco, cocoloco, cocoloco_state, cocob, ROT90, "Petaco S.A.", "Coco Loco (set 3)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/codata.cpp b/src/mame/drivers/codata.cpp index c0cfac1652c..4285ed97df7 100644 --- a/src/mame/drivers/codata.cpp +++ b/src/mame/drivers/codata.cpp @@ -30,7 +30,8 @@ public: DECLARE_READ16_MEMBER(keyin_r); DECLARE_READ16_MEMBER(status_r); - DECLARE_WRITE8_MEMBER(kbd_put); + void kbd_put(u8 data); + private: uint8_t m_term_data; virtual void machine_reset() override; @@ -70,7 +71,7 @@ READ16_MEMBER( codata_state::status_r ) return (m_term_data) ? 0x500 : 0x400; } -WRITE8_MEMBER( codata_state::kbd_put ) +void codata_state::kbd_put(u8 data) { m_term_data = data; } @@ -83,14 +84,14 @@ void codata_state::machine_reset() m_maincpu->reset(); } -static MACHINE_CONFIG_START( codata, codata_state ) +static MACHINE_CONFIG_START( codata ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",M68000, XTAL_16MHz / 2) MCFG_CPU_PROGRAM_MAP(codata_mem) /* video hardware */ MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0) - MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(codata_state, kbd_put)) + MCFG_GENERIC_TERMINAL_KEYBOARD_CB(PUT(codata_state, kbd_put)) MACHINE_CONFIG_END /* ROM definition */ @@ -109,5 +110,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1982, codata, 0, 0, codata, codata, driver_device, 0, "Contel Codata Corporation", "Codata", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1982, codata, 0, 0, codata, codata, codata_state, 0, "Contel Codata Corporation", "Codata", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/coinmstr.cpp b/src/mame/drivers/coinmstr.cpp index c8818ad16ae..b95ad8d7058 100644 --- a/src/mame/drivers/coinmstr.cpp +++ b/src/mame/drivers/coinmstr.cpp @@ -1234,7 +1234,7 @@ uint32_t coinmstr_state::screen_update_coinmstr(screen_device &screen, bitmap_in } -static MACHINE_CONFIG_START( coinmstr, coinmstr_state ) +static MACHINE_CONFIG_START( coinmstr ) MCFG_CPU_ADD("maincpu", Z80, CPU_CLOCK) // 7 MHz. MCFG_CPU_PROGRAM_MAP(coinmstr_map) MCFG_CPU_VBLANK_INT_DRIVER("screen", coinmstr_state, irq0_line_hold) @@ -1550,10 +1550,10 @@ DRIVER_INIT_MEMBER(coinmstr_state,coinmstr) * Game Drivers * *************************/ -/* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS */ +// YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS GAME( 1985, quizmstr, 0, quizmstr, quizmstr, coinmstr_state, coinmstr, ROT0, "Loewen Spielautomaten", "Quizmaster (German)", MACHINE_UNEMULATED_PROTECTION ) GAME( 1987, trailblz, 0, trailblz, trailblz, coinmstr_state, coinmstr, ROT0, "Coinmaster", "Trail Blazer", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) // or Trail Blazer 2 ? GAME( 1989, supnudg2, 0, supnudg2, supnudg2, coinmstr_state, coinmstr, ROT0, "Coinmaster", "Super Nudger II - P173 (Version 5.21)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) -GAME( 1990, pokeroul, 0, pokeroul, pokeroul, driver_device, 0, ROT0, "Coinmaster", "Poker Roulette (Version 8.22)", MACHINE_NOT_WORKING ) -GAME( 1985, jpcoin, 0, jpcoin, jpcoin, driver_device, 0, ROT0, "Coinmaster", "Joker Poker (Coinmaster set 1)", 0 ) -GAME( 1990, jpcoin2, 0, jpcoin, jpcoin, driver_device, 0, ROT0, "Coinmaster", "Joker Poker (Coinmaster, Amusement Only)", 0 ) +GAME( 1990, pokeroul, 0, pokeroul, pokeroul, coinmstr_state, 0, ROT0, "Coinmaster", "Poker Roulette (Version 8.22)", MACHINE_NOT_WORKING ) +GAME( 1985, jpcoin, 0, jpcoin, jpcoin, coinmstr_state, 0, ROT0, "Coinmaster", "Joker Poker (Coinmaster set 1)", 0 ) +GAME( 1990, jpcoin2, 0, jpcoin, jpcoin, coinmstr_state, 0, ROT0, "Coinmaster", "Joker Poker (Coinmaster, Amusement Only)", 0 ) diff --git a/src/mame/drivers/coinmvga.cpp b/src/mame/drivers/coinmvga.cpp index 2cbb4927d0c..bf1d3671855 100644 --- a/src/mame/drivers/coinmvga.cpp +++ b/src/mame/drivers/coinmvga.cpp @@ -626,7 +626,7 @@ static ADDRESS_MAP_START( ramdac2_map, AS_0, 8, coinmvga_state ) ADDRESS_MAP_END -static MACHINE_CONFIG_START( coinmvga, coinmvga_state ) +static MACHINE_CONFIG_START( coinmvga ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", H83007, CPU_CLOCK) /* xtal */ @@ -882,9 +882,9 @@ DRIVER_INIT_MEMBER(coinmvga_state,cmrltv75) * Game Drivers * *************************/ -/* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS */ -GAME( 2000, colorama, 0, coinmvga, coinmvga, coinmvga_state, colorama, ROT0, "Coinmaster-Gaming, Ltd.", "Colorama (P521, English)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND | MACHINE_NOT_WORKING ) +// YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS +GAME( 2000, colorama, 0, coinmvga, coinmvga, coinmvga_state, colorama, ROT0, "Coinmaster-Gaming, Ltd.", "Colorama (P521, English)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND | MACHINE_NOT_WORKING ) GAME( 2000, coloramas, colorama, coinmvga, coinmvga, coinmvga_state, colorama, ROT0, "Coinmaster-Gaming, Ltd.", "Colorama (P521 V13, Spanish)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND | MACHINE_NOT_WORKING ) GAME( 2001, cmrltv75, 0, coinmvga, coinmvga, coinmvga_state, cmrltv75, ROT90, "Coinmaster-Gaming, Ltd.", "Coinmaster Roulette P497 V75 (Y2K, Spanish)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND | MACHINE_NOT_WORKING ) -GAME( 2000, cmkenosp, 0, coinmvga, coinmvga, driver_device, 0, ROT90, "Coinmaster-Gaming, Ltd.", "Coinmaster Keno (Y2K, Spanish, 2000-12-14)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND | MACHINE_NOT_WORKING ) -GAME( 2000, cmkenospa, cmkenosp, coinmvga, coinmvga, driver_device, 0, ROT90, "Coinmaster-Gaming, Ltd.", "Coinmaster Keno (Y2K, Spanish, 2000-12-02)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND | MACHINE_NOT_WORKING ) +GAME( 2000, cmkenosp, 0, coinmvga, coinmvga, coinmvga_state, 0, ROT90, "Coinmaster-Gaming, Ltd.", "Coinmaster Keno (Y2K, Spanish, 2000-12-14)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND | MACHINE_NOT_WORKING ) +GAME( 2000, cmkenospa, cmkenosp, coinmvga, coinmvga, coinmvga_state, 0, ROT90, "Coinmaster-Gaming, Ltd.", "Coinmaster Keno (Y2K, Spanish, 2000-12-02)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND | MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/coleco.cpp b/src/mame/drivers/coleco.cpp index f52baf74d2f..25ed7bd6624 100644 --- a/src/mame/drivers/coleco.cpp +++ b/src/mame/drivers/coleco.cpp @@ -371,7 +371,7 @@ void coleco_state::machine_reset() /* Machine Drivers */ -static MACHINE_CONFIG_START( coleco, coleco_state ) +static MACHINE_CONFIG_START( coleco ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_7_15909MHz/2) // 3.579545 MHz @@ -487,10 +487,10 @@ ROM_END /* System Drivers */ -// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS -CONS( 1982, coleco, 0, 0, coleco, coleco, driver_device, 0, "Coleco", "ColecoVision (NTSC)", 0 ) -CONS( 1982, onyx, coleco, 0, coleco, coleco, driver_device, 0, "Microdigital", "Onyx (Brazil/Prototype)", 0 ) -CONS( 1983, colecop, coleco, 0, colecop, coleco, driver_device, 0, "Coleco", "ColecoVision (PAL)", 0 ) -CONS( 1986, czz50, 0, coleco, czz50, czz50, driver_device, 0, "Bit Corporation", "Chuang Zao Zhe 50", 0 ) -CONS( 1988, dina, czz50, 0, dina, czz50, driver_device, 0, "Telegames", "Dina", 0 ) -CONS( 1988, prsarcde, czz50, 0, czz50, czz50, driver_device, 0, "Telegames", "Personal Arcade", 0 ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +CONS( 1982, coleco, 0, 0, coleco, coleco, coleco_state, 0, "Coleco", "ColecoVision (NTSC)", 0 ) +CONS( 1982, onyx, coleco, 0, coleco, coleco, coleco_state, 0, "Microdigital", "Onyx (Brazil/Prototype)", 0 ) +CONS( 1983, colecop, coleco, 0, colecop, coleco, coleco_state, 0, "Coleco", "ColecoVision (PAL)", 0 ) +CONS( 1986, czz50, 0, coleco, czz50, czz50, coleco_state, 0, "Bit Corporation", "Chuang Zao Zhe 50", 0 ) +CONS( 1988, dina, czz50, 0, dina, czz50, coleco_state, 0, "Telegames", "Dina", 0 ) +CONS( 1988, prsarcde, czz50, 0, czz50, czz50, coleco_state, 0, "Telegames", "Personal Arcade", 0 ) diff --git a/src/mame/drivers/combatsc.cpp b/src/mame/drivers/combatsc.cpp index 6db944fc147..3a2a48fb9e6 100644 --- a/src/mame/drivers/combatsc.cpp +++ b/src/mame/drivers/combatsc.cpp @@ -697,7 +697,7 @@ void combatsc_state::machine_reset() } /* combat school (original) */ -static MACHINE_CONFIG_START( combatsc, combatsc_state ) +static MACHINE_CONFIG_START( combatsc ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", HD6309, 3000000*4) /* 3 MHz? */ @@ -751,7 +751,7 @@ MACHINE_CONFIG_END /* combat school (bootleg on different hardware) */ -static MACHINE_CONFIG_START( combatscb, combatsc_state ) +static MACHINE_CONFIG_START( combatscb ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", HD6309, 3000000*4) /* 3 MHz? */ @@ -791,7 +791,7 @@ static MACHINE_CONFIG_START( combatscb, combatsc_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) MCFG_SOUND_ADD("msm5205", MSM5205, 384000) - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_SEX_4B) /* 8KHz playback ? */ + MCFG_MSM5205_PRESCALER_SELECTOR(SEX_4B) /* 8KHz playback ? */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30) MACHINE_CONFIG_END @@ -1004,9 +1004,9 @@ DRIVER_INIT_MEMBER(combatsc_state,combatsc) * *************************************/ -GAME( 1988, combatsc, 0, combatsc, combatsc, combatsc_state, combatsc, ROT0, "Konami", "Combat School (joystick)", 0 ) -GAME( 1987, combatsct, combatsc, combatsc, combatsct, driver_device, 0, ROT0, "Konami", "Combat School (trackball)", MACHINE_NOT_WORKING ) -GAME( 1987, combatscj, combatsc, combatsc, combatsct, driver_device, 0, ROT0, "Konami", "Combat School (Japan trackball)", MACHINE_NOT_WORKING ) -GAME( 1987, bootcamp, combatsc, combatsc, combatsct, driver_device, 0, ROT0, "Konami", "Boot Camp (set 1)", MACHINE_NOT_WORKING ) -GAME( 1987, bootcampa, combatsc, combatsc, combatsct, driver_device, 0, ROT0, "Konami", "Boot Camp (set 2)", MACHINE_NOT_WORKING ) -GAME( 1988, combatscb, combatsc, combatscb, combatscb, driver_device, 0, ROT0, "bootleg", "Combat School (bootleg)", MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_SOUND ) +GAME( 1988, combatsc, 0, combatsc, combatsc, combatsc_state, combatsc, ROT0, "Konami", "Combat School (joystick)", 0 ) +GAME( 1987, combatsct, combatsc, combatsc, combatsct, combatsc_state, 0, ROT0, "Konami", "Combat School (trackball)", MACHINE_NOT_WORKING ) +GAME( 1987, combatscj, combatsc, combatsc, combatsct, combatsc_state, 0, ROT0, "Konami", "Combat School (Japan trackball)", MACHINE_NOT_WORKING ) +GAME( 1987, bootcamp, combatsc, combatsc, combatsct, combatsc_state, 0, ROT0, "Konami", "Boot Camp (set 1)", MACHINE_NOT_WORKING ) +GAME( 1987, bootcampa, combatsc, combatsc, combatsct, combatsc_state, 0, ROT0, "Konami", "Boot Camp (set 2)", MACHINE_NOT_WORKING ) +GAME( 1988, combatscb, combatsc, combatscb, combatscb, combatsc_state, 0, ROT0, "bootleg", "Combat School (bootleg)", MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_SOUND ) diff --git a/src/mame/drivers/comebaby.cpp b/src/mame/drivers/comebaby.cpp index 8437f6282fa..c706fdb4e93 100644 --- a/src/mame/drivers/comebaby.cpp +++ b/src/mame/drivers/comebaby.cpp @@ -222,7 +222,7 @@ static INPUT_PORTS_START( comebaby ) INPUT_PORTS_END -static MACHINE_CONFIG_START( comebaby, comebaby_state ) +static MACHINE_CONFIG_START( comebaby ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", PENTIUM, 2000000000) /* Probably a Pentium .. ?? Mhz*/ MCFG_CPU_PROGRAM_MAP(comebaby_map) @@ -249,4 +249,4 @@ ROM_START(comebaby) ROM_END -GAME( 2000, comebaby, 0, comebaby, comebaby, driver_device, 0, ROT0, "ExPotato", "Come On Baby", MACHINE_NOT_WORKING|MACHINE_NO_SOUND ) +GAME( 2000, comebaby, 0, comebaby, comebaby, comebaby_state, 0, ROT0, "ExPotato", "Come On Baby", MACHINE_NOT_WORKING|MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/commando.cpp b/src/mame/drivers/commando.cpp index 1a46bae8d5c..4b1c92056b7 100644 --- a/src/mame/drivers/commando.cpp +++ b/src/mame/drivers/commando.cpp @@ -248,7 +248,7 @@ void commando_state::machine_reset() } -static MACHINE_CONFIG_START( commando, commando_state ) +static MACHINE_CONFIG_START( commando ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, PHI_MAIN) // ??? diff --git a/src/mame/drivers/compgolf.cpp b/src/mame/drivers/compgolf.cpp index ba6f2db68b7..981ff425cda 100644 --- a/src/mame/drivers/compgolf.cpp +++ b/src/mame/drivers/compgolf.cpp @@ -221,7 +221,7 @@ void compgolf_state::machine_reset() m_scrolly_hi = 0; } -static MACHINE_CONFIG_START( compgolf, compgolf_state ) +static MACHINE_CONFIG_START( compgolf ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809, 2000000) diff --git a/src/mame/drivers/compis.cpp b/src/mame/drivers/compis.cpp index da4699fa33b..a5f069136ea 100644 --- a/src/mame/drivers/compis.cpp +++ b/src/mame/drivers/compis.cpp @@ -110,7 +110,7 @@ public: required_device m_uart; required_device m_rtc; required_device m_cassette; - required_device m_graphics; + required_device m_graphics; required_device m_isbx0; required_device m_isbx1; required_device m_ram; @@ -415,7 +415,7 @@ static ADDRESS_MAP_START( compis_io, AS_IO, 16, compis_state ) AM_RANGE(0x0000, 0x0007) /* PCS0 */ AM_MIRROR(0x78) AM_DEVREADWRITE8(I8255_TAG, i8255_device, read, write, 0xff00) AM_RANGE(0x0080, 0x0087) /* PCS1 */ AM_MIRROR(0x78) AM_DEVREADWRITE8(I8253_TAG, pit8253_device, read, write, 0x00ff) AM_RANGE(0x0100, 0x011f) /* PCS2 */ AM_MIRROR(0x60) AM_DEVREADWRITE8(MM58174A_TAG, mm58274c_device, read, write, 0x00ff) - AM_RANGE(0x0180, 0x01ff) /* PCS3 */ AM_DEVREADWRITE(GRAPHICS_TAG, compis_graphics_slot_t, pcs3_r, pcs3_w) + AM_RANGE(0x0180, 0x01ff) /* PCS3 */ AM_DEVREADWRITE(GRAPHICS_TAG, compis_graphics_slot_device, pcs3_r, pcs3_w) //AM_RANGE(0x0200, 0x0201) /* PCS4 */ AM_MIRROR(0x7e) AM_RANGE(0x0280, 0x028f) /* PCS5 */ AM_MIRROR(0x70) AM_DEVICE(I80130_TAG, i80130_device, io_map) AM_RANGE(0x0300, 0x030f) AM_READWRITE(pcs6_0_1_r, pcs6_0_1_w) @@ -742,7 +742,7 @@ void compis_state::machine_reset() // MACHINE_CONFIG( compis ) //------------------------------------------------- -static MACHINE_CONFIG_START( compis, compis_state ) +static MACHINE_CONFIG_START( compis ) // basic machine hardware MCFG_CPU_ADD(I80186_TAG, I80186, XTAL_15_36MHz) MCFG_CPU_PROGRAM_MAP(compis_mem) @@ -885,6 +885,6 @@ ROM_END // SYSTEM DRIVERS //************************************************************************** -// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS -COMP(1985, compis, 0, 0, compis, compis, driver_device, 0, "Telenova", "Compis" , MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS ) -COMP(1986, compis2, compis, 0, compis2, compis, driver_device, 0, "Telenova", "Compis II" , MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1985, compis, 0, 0, compis, compis, compis_state, 0, "Telenova", "Compis", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS ) +COMP( 1986, compis2, compis, 0, compis2, compis, compis_state, 0, "Telenova", "Compis II", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS ) diff --git a/src/mame/drivers/compucolor.cpp b/src/mame/drivers/compucolor.cpp index 73c565c7359..3fa20bcef25 100644 --- a/src/mame/drivers/compucolor.cpp +++ b/src/mame/drivers/compucolor.cpp @@ -387,7 +387,7 @@ void compucolor2_state::machine_reset() m_rs232->write_dtr(1); } -static MACHINE_CONFIG_START( compucolor2, compucolor2_state ) +static MACHINE_CONFIG_START( compucolor2 ) // basic machine hardware MCFG_CPU_ADD(I8080_TAG, I8080, XTAL_17_9712MHz/9) MCFG_CPU_PROGRAM_MAP(compucolor2_mem) @@ -457,4 +457,4 @@ ROM_START( compclr2 ) ROM_LOAD( "82s129.ug5", 0x00, 0x20, NO_DUMP ) // Color PROM ROM_END -COMP( 1977, compclr2, 0, 0, compucolor2, compucolor2, driver_device, 0, "Intelligent Systems Corporation", "Compucolor II", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW ) +COMP( 1977, compclr2, 0, 0, compucolor2, compucolor2, compucolor2_state, 0, "Intelligent Systems Corporation", "Compucolor II", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW ) diff --git a/src/mame/drivers/comquest.cpp b/src/mame/drivers/comquest.cpp index 4c9d82e83fc..88144e85a49 100644 --- a/src/mame/drivers/comquest.cpp +++ b/src/mame/drivers/comquest.cpp @@ -212,7 +212,7 @@ void comquest_state::machine_reset() } -static MACHINE_CONFIG_START( comquest, comquest_state ) +static MACHINE_CONFIG_START( comquest ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6805, 4000000) /* 4000000? */ /*MCFG_CPU_ADD("maincpu", HD63705, 4000000) instruction set looks like m6805/m6808 */ @@ -304,5 +304,5 @@ ROM_END ***************************************************************************/ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT MONITOR COMPANY FULLNAME */ -CONS( 1995, comquest, 0, 0, comquest, comquest, driver_device, 0, "Data Concepts", "ComQuest Plus (German)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +CONS( 1995, comquest, 0, 0, comquest, comquest, comquest_state, 0, "Data Concepts", "ComQuest Plus (German)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/comx35.cpp b/src/mame/drivers/comx35.cpp index c1925f003ef..5ebeeadefcc 100644 --- a/src/mame/drivers/comx35.cpp +++ b/src/mame/drivers/comx35.cpp @@ -593,9 +593,9 @@ void comx35_state::machine_reset() // MACHINE_CONFIG( pal ) //------------------------------------------------- -static MACHINE_CONFIG_START( pal, comx35_state ) +static MACHINE_CONFIG_START( pal ) // basic system hardware - MCFG_CPU_ADD(CDP1802_TAG, CDP1802, CDP1869_CPU_CLK_PAL) + MCFG_CPU_ADD(CDP1802_TAG, CDP1802, cdp1869_device::CPU_CLK_PAL) MCFG_CPU_PROGRAM_MAP(comx35_mem) MCFG_CPU_IO_MAP(comx35_io) MCFG_COSMAC_WAIT_CALLBACK(VCC) @@ -609,7 +609,7 @@ static MACHINE_CONFIG_START( pal, comx35_state ) MCFG_FRAGMENT_ADD(comx35_pal_video) // peripheral hardware - MCFG_DEVICE_ADD(CDP1871_TAG, CDP1871, CDP1869_CPU_CLK_PAL/8) + MCFG_DEVICE_ADD(CDP1871_TAG, CDP1871, cdp1869_device::CPU_CLK_PAL/8) MCFG_CDP1871_D1_CALLBACK(IOPORT("D1")) MCFG_CDP1871_D2_CALLBACK(IOPORT("D2")) MCFG_CDP1871_D3_CALLBACK(IOPORT("D3")) @@ -643,9 +643,9 @@ MACHINE_CONFIG_END // MACHINE_CONFIG( ntsc ) //------------------------------------------------- -static MACHINE_CONFIG_START( ntsc, comx35_state ) +static MACHINE_CONFIG_START( ntsc ) // basic system hardware - MCFG_CPU_ADD(CDP1802_TAG, CDP1802, CDP1869_CPU_CLK_NTSC) + MCFG_CPU_ADD(CDP1802_TAG, CDP1802, cdp1869_device::CPU_CLK_NTSC) MCFG_CPU_PROGRAM_MAP(comx35_mem) MCFG_CPU_IO_MAP(comx35_io) MCFG_COSMAC_WAIT_CALLBACK(VCC) @@ -659,7 +659,7 @@ static MACHINE_CONFIG_START( ntsc, comx35_state ) MCFG_FRAGMENT_ADD(comx35_ntsc_video) // peripheral hardware - MCFG_DEVICE_ADD(CDP1871_TAG, CDP1871, CDP1869_CPU_CLK_PAL/8) + MCFG_DEVICE_ADD(CDP1871_TAG, CDP1871, cdp1869_device::CPU_CLK_PAL/8) MCFG_CDP1871_D1_CALLBACK(IOPORT("D1")) MCFG_CDP1871_D2_CALLBACK(IOPORT("D2")) MCFG_CDP1871_D3_CALLBACK(IOPORT("D3")) @@ -720,6 +720,6 @@ ROM_END // SYSTEM DRIVERS //************************************************************************** -// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS -COMP( 1983, comx35p, 0, 0, pal, comx35, driver_device, 0, "Comx World Operations Ltd", "COMX 35 (PAL)", MACHINE_IMPERFECT_SOUND ) -COMP( 1983, comx35n, comx35p,0, ntsc, comx35, driver_device, 0, "Comx World Operations Ltd", "COMX 35 (NTSC)", MACHINE_IMPERFECT_SOUND ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1983, comx35p, 0, 0, pal, comx35, comx35_state, 0, "Comx World Operations Ltd", "COMX 35 (PAL)", MACHINE_IMPERFECT_SOUND ) +COMP( 1983, comx35n, comx35p,0, ntsc, comx35, comx35_state, 0, "Comx World Operations Ltd", "COMX 35 (NTSC)", MACHINE_IMPERFECT_SOUND ) diff --git a/src/mame/drivers/concept.cpp b/src/mame/drivers/concept.cpp index 0bfa6f452d2..fe6f6005c76 100644 --- a/src/mame/drivers/concept.cpp +++ b/src/mame/drivers/concept.cpp @@ -208,7 +208,7 @@ SLOT_INTERFACE_END -static MACHINE_CONFIG_START( concept, concept_state ) +static MACHINE_CONFIG_START( concept ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 8182000) /* 16.364 MHz / 2 */ MCFG_CPU_PROGRAM_MAP(concept_memmap) @@ -315,5 +315,5 @@ ROM_START( concept ) ROM_LOAD16_BYTE( "mb20l.bin", 0x000001, 0x001000, CRC(b4b59de9) SHA1(3e8b8b5950b5359203c054f94af1fc5b8f0495b9) ) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ -COMP( 1982, concept, 0, 0, concept, concept, driver_device, 0, "Corvus Systems", "Concept" , 0 ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME */ +COMP( 1982, concept, 0, 0, concept, concept, concept_state, 0, "Corvus Systems", "Concept" , 0 ) diff --git a/src/mame/drivers/contra.cpp b/src/mame/drivers/contra.cpp index 70872bf8363..d9f9440ad7c 100644 --- a/src/mame/drivers/contra.cpp +++ b/src/mame/drivers/contra.cpp @@ -195,7 +195,7 @@ void contra_state::machine_start() membank("bank1")->configure_entries(0, 16, &ROM[0x10000], 0x2000); } -static MACHINE_CONFIG_START( contra, contra_state ) +static MACHINE_CONFIG_START( contra ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", HD6309, XTAL_24MHz / 2 /* 3000000*4? */) @@ -562,13 +562,13 @@ ROM_START( contrabj1 ) ROM_LOAD( "633f11.20g", 0x0300, 0x0100, CRC(14ca5e19) SHA1(eeee2f8b3d1e4acf47de1e74c4e507ff924591e7) ) /* 007121 #1 char lookup table */ ROM_END -GAME( 1987, contra, 0, contra, contra, driver_device, 0, ROT90, "Konami", "Contra (US / Asia, set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, contra1, contra, contra, contra, driver_device, 0, ROT90, "Konami", "Contra (US / Asia, set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, contrae, contra, contra, contra, driver_device, 0, ROT90, "Konami", "Contra (US / Asia, set 3)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, contraj, contra, contra, contra, driver_device, 0, ROT90, "Konami", "Contra (Japan, set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, contraj1, contra, contra, contra, driver_device, 0, ROT90, "Konami", "Contra (Japan, set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, gryzor, contra, contra, gryzor, driver_device, 0, ROT90, "Konami", "Gryzor (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, gryzor1, contra, contra, gryzor, driver_device, 0, ROT90, "Konami", "Gryzor (set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, contrab, contra, contra, contra, driver_device, 0, ROT90, "bootleg", "Contra (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, contrabj, contra, contra, contra, driver_device, 0, ROT90, "bootleg", "Contra (Japan bootleg, set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, contrabj1, contra, contra, contra, driver_device, 0, ROT90, "bootleg", "Contra (Japan bootleg, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, contra, 0, contra, contra, contra_state, 0, ROT90, "Konami", "Contra (US / Asia, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, contra1, contra, contra, contra, contra_state, 0, ROT90, "Konami", "Contra (US / Asia, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, contrae, contra, contra, contra, contra_state, 0, ROT90, "Konami", "Contra (US / Asia, set 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, contraj, contra, contra, contra, contra_state, 0, ROT90, "Konami", "Contra (Japan, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, contraj1, contra, contra, contra, contra_state, 0, ROT90, "Konami", "Contra (Japan, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, gryzor, contra, contra, gryzor, contra_state, 0, ROT90, "Konami", "Gryzor (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, gryzor1, contra, contra, gryzor, contra_state, 0, ROT90, "Konami", "Gryzor (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, contrab, contra, contra, contra, contra_state, 0, ROT90, "bootleg", "Contra (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, contrabj, contra, contra, contra, contra_state, 0, ROT90, "bootleg", "Contra (Japan bootleg, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, contrabj1, contra, contra, contra, contra_state, 0, ROT90, "bootleg", "Contra (Japan bootleg, set 2)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/coolpool.cpp b/src/mame/drivers/coolpool.cpp index f92ee4a445b..ef09bce91c0 100644 --- a/src/mame/drivers/coolpool.cpp +++ b/src/mame/drivers/coolpool.cpp @@ -778,7 +778,7 @@ INPUT_PORTS_END * *************************************/ -static MACHINE_CONFIG_START( amerdart, coolpool_state ) +static MACHINE_CONFIG_START( amerdart ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS34010, XTAL_40MHz) @@ -815,7 +815,7 @@ static MACHINE_CONFIG_START( amerdart, coolpool_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( coolpool, coolpool_state ) +static MACHINE_CONFIG_START( coolpool ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS34010, XTAL_40MHz) @@ -1181,11 +1181,11 @@ DRIVER_INIT_MEMBER(coolpool_state,9ballsht) * *************************************/ -GAME( 1989, amerdart, 0, amerdart, amerdart, coolpool_state, amerdart, ROT0, "Ameri", "AmeriDarts (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, amerdart2, amerdart, amerdart, amerdart, coolpool_state, amerdart, ROT0, "Ameri", "AmeriDarts (set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, amerdart3, amerdart, amerdart, amerdart, coolpool_state, amerdart, ROT0, "Ameri", "AmeriDarts (set 3)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, coolpool, 0, coolpool, coolpool, coolpool_state, coolpool, ROT0, "Catalina", "Cool Pool", 0 ) -GAME( 1993, 9ballsht, 0, 9ballsht, 9ballsht, coolpool_state, 9ballsht, ROT0, "E-Scape EnterMedia (Bundra license)", "9-Ball Shootout (set 1)", 0 ) -GAME( 1993, 9ballsht2, 9ballsht, 9ballsht, 9ballsht, coolpool_state, 9ballsht, ROT0, "E-Scape EnterMedia (Bundra license)", "9-Ball Shootout (set 2)", 0 ) -GAME( 1993, 9ballsht3, 9ballsht, 9ballsht, 9ballsht, coolpool_state, 9ballsht, ROT0, "E-Scape EnterMedia (Bundra license)", "9-Ball Shootout (set 3)", 0 ) +GAME( 1989, amerdart, 0, amerdart, amerdart, coolpool_state, amerdart, ROT0, "Ameri", "AmeriDarts (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, amerdart2, amerdart, amerdart, amerdart, coolpool_state, amerdart, ROT0, "Ameri", "AmeriDarts (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, amerdart3, amerdart, amerdart, amerdart, coolpool_state, amerdart, ROT0, "Ameri", "AmeriDarts (set 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, coolpool, 0, coolpool, coolpool, coolpool_state, coolpool, ROT0, "Catalina", "Cool Pool", 0 ) +GAME( 1993, 9ballsht, 0, 9ballsht, 9ballsht, coolpool_state, 9ballsht, ROT0, "E-Scape EnterMedia (Bundra license)", "9-Ball Shootout (set 1)", 0 ) +GAME( 1993, 9ballsht2, 9ballsht, 9ballsht, 9ballsht, coolpool_state, 9ballsht, ROT0, "E-Scape EnterMedia (Bundra license)", "9-Ball Shootout (set 2)", 0 ) +GAME( 1993, 9ballsht3, 9ballsht, 9ballsht, 9ballsht, coolpool_state, 9ballsht, ROT0, "E-Scape EnterMedia (Bundra license)", "9-Ball Shootout (set 3)", 0 ) GAME( 1993, 9ballshtc, 9ballsht, 9ballsht, 9ballsht, coolpool_state, 9ballsht, ROT0, "E-Scape EnterMedia (Bundra license)", "9-Ball Shootout Championship", 0 ) diff --git a/src/mame/drivers/coolridr.cpp b/src/mame/drivers/coolridr.cpp index 3b4a1d70199..28b18846103 100644 --- a/src/mame/drivers/coolridr.cpp +++ b/src/mame/drivers/coolridr.cpp @@ -3714,7 +3714,7 @@ WRITE_LINE_MEMBER(coolridr_state::scsp2_to_sh1_irq) #define MAIN_CLOCK XTAL_28_63636MHz -static MACHINE_CONFIG_START( coolridr, coolridr_state ) +static MACHINE_CONFIG_START( coolridr ) MCFG_CPU_ADD("maincpu", SH2, MAIN_CLOCK) // 28 mhz MCFG_CPU_PROGRAM_MAP(system_h1_map) MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", coolridr_state, system_h1_main, "screen", 0, 1) @@ -3940,5 +3940,5 @@ DRIVER_INIT_MEMBER(coolridr_state, aquastge) m_colbase = 0; } -GAME( 1995, coolridr, 0, coolridr, coolridr, coolridr_state, coolridr, ROT0, "Sega", "Cool Riders",MACHINE_IMPERFECT_SOUND) // region is set in test mode, this set is for Japan, USA and Export (all regions) -GAMEL( 1995, aquastge, 0, aquastge, aquastge, coolridr_state, aquastge, ROT0, "Sega", "Aqua Stage",MACHINE_NOT_WORKING, layout_aquastge) +GAME ( 1995, coolridr, 0, coolridr, coolridr, coolridr_state, coolridr, ROT0, "Sega", "Cool Riders", MACHINE_IMPERFECT_SOUND) // region is set in test mode, this set is for Japan, USA and Export (all regions) +GAMEL( 1995, aquastge, 0, aquastge, aquastge, coolridr_state, aquastge, ROT0, "Sega", "Aqua Stage", MACHINE_NOT_WORKING, layout_aquastge) diff --git a/src/mame/drivers/cop01.cpp b/src/mame/drivers/cop01.cpp index d39649f0faa..e6ebcd6b94b 100644 --- a/src/mame/drivers/cop01.cpp +++ b/src/mame/drivers/cop01.cpp @@ -446,7 +446,7 @@ void cop01_state::machine_reset() } -static MACHINE_CONFIG_START( cop01, cop01_state ) +static MACHINE_CONFIG_START( cop01 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, MAINCPU_CLOCK/2) /* unknown clock / divider */ @@ -488,7 +488,7 @@ static MACHINE_CONFIG_START( cop01, cop01_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( mightguy, cop01_state ) +static MACHINE_CONFIG_START( mightguy ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, MAINCPU_CLOCK/2) /* unknown divider */ @@ -667,6 +667,6 @@ DRIVER_INIT_MEMBER(cop01_state,mightguy) * *************************************/ -GAME( 1985, cop01, 0, cop01, cop01, driver_device, 0, ROT0, "Nichibutsu", "Cop 01 (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, cop01a, cop01, cop01, cop01, driver_device, 0, ROT0, "Nichibutsu", "Cop 01 (set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, mightguy, 0, mightguy, mightguy, cop01_state, mightguy, ROT270, "Nichibutsu", "Mighty Guy", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1985, cop01, 0, cop01, cop01, cop01_state, 0, ROT0, "Nichibutsu", "Cop 01 (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, cop01a, cop01, cop01, cop01, cop01_state, 0, ROT0, "Nichibutsu", "Cop 01 (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, mightguy, 0, mightguy, mightguy, cop01_state, mightguy, ROT270, "Nichibutsu", "Mighty Guy", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/cops.cpp b/src/mame/drivers/cops.cpp index 2ca28f682db..a8c44f360ea 100644 --- a/src/mame/drivers/cops.cpp +++ b/src/mame/drivers/cops.cpp @@ -912,7 +912,7 @@ DRIVER_INIT_MEMBER(cops_state,cops) membank("sysbank1")->set_entry(2); } -static MACHINE_CONFIG_START( cops, cops_state ) +static MACHINE_CONFIG_START( cops ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",M6502,MAIN_CLOCK/2) @@ -948,7 +948,7 @@ static MACHINE_CONFIG_START( cops, cops_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( revlatns, cops_state ) +static MACHINE_CONFIG_START( revlatns ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",M6502,MAIN_CLOCK/2) @@ -1023,6 +1023,6 @@ ROM_START( revlatns ) ROM_END -GAMEL( 1994, cops, 0, cops, cops, cops_state, cops, ROT0, "Atari Games", "Cops (USA)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND, layout_cops ) -GAMEL( 1994, copsuk, cops,cops, cops, cops_state, cops, ROT0, "Nova Productions / Deith Leisure","Cops (UK)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND, layout_cops ) +GAMEL( 1994, cops, 0, cops, cops, cops_state, cops, ROT0, "Atari Games", "Cops (USA)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND, layout_cops ) +GAMEL( 1994, copsuk, cops,cops, cops, cops_state, cops, ROT0, "Nova Productions / Deith Leisure","Cops (UK)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND, layout_cops ) GAMEL( 1994, revlatns, 0, revlatns, revlatns, cops_state, cops, ROT0, "Nova Productions", "Revelations", MACHINE_NOT_WORKING | MACHINE_NO_SOUND, layout_cops ) diff --git a/src/mame/drivers/copsnrob.cpp b/src/mame/drivers/copsnrob.cpp index 5081902011f..8d6fab5b159 100644 --- a/src/mame/drivers/copsnrob.cpp +++ b/src/mame/drivers/copsnrob.cpp @@ -247,7 +247,7 @@ void copsnrob_state::machine_reset() } -static MACHINE_CONFIG_START( copsnrob, copsnrob_state ) +static MACHINE_CONFIG_START( copsnrob ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502,14318180/16) /* 894886.25 kHz */ @@ -320,4 +320,4 @@ ROM_END * *************************************/ -GAMEL( 1976, copsnrob, 0, copsnrob, copsnrob, driver_device, 0, ROT0, "Atari", "Cops'n Robbers", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_copsnrob ) +GAMEL( 1976, copsnrob, 0, copsnrob, copsnrob, copsnrob_state, 0, ROT0, "Atari", "Cops'n Robbers", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_copsnrob ) diff --git a/src/mame/drivers/corona.cpp b/src/mame/drivers/corona.cpp index 7f6a48fdc22..8ea7f8695ad 100644 --- a/src/mame/drivers/corona.cpp +++ b/src/mame/drivers/corona.cpp @@ -1343,7 +1343,7 @@ INPUT_PORTS_END * Machine Drivers * *******************************************/ -static MACHINE_CONFIG_START( winner81, corona_state ) +static MACHINE_CONFIG_START( winner81 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, WC81_MAIN_XTAL/8) /* measured */ MCFG_CPU_PROGRAM_MAP(winner81_map) @@ -1378,7 +1378,7 @@ static MACHINE_CONFIG_START( winner81, corona_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( winner82, corona_state ) +static MACHINE_CONFIG_START( winner82 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, WC82_MAIN_XTAL/8) /* measured */ MCFG_CPU_PROGRAM_MAP(winner82_map) @@ -1412,7 +1412,7 @@ static MACHINE_CONFIG_START( winner82, corona_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( re800, corona_state ) +static MACHINE_CONFIG_START( re800 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, RE_MAIN_XTAL/8) /* measured 2MHz */ MCFG_CPU_PROGRAM_MAP(re800_map) @@ -1447,7 +1447,7 @@ static MACHINE_CONFIG_START( re800, corona_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( rcirulet, corona_state ) +static MACHINE_CONFIG_START( rcirulet ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, RE_MAIN_XTAL/8) /* measured 2MHz */ MCFG_CPU_PROGRAM_MAP(re800_map) @@ -1481,7 +1481,7 @@ static MACHINE_CONFIG_START( rcirulet, corona_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( luckyrlt, corona_state ) +static MACHINE_CONFIG_START( luckyrlt ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, RE_MAIN_XTAL/8) /* measured 2MHz */ MCFG_CPU_PROGRAM_MAP(luckyrlt_map) @@ -1714,13 +1714,13 @@ ROM_END * Game Drivers * ******************************************/ -/* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS LAYOUT */ -GAME( 1981, winner81, winner82, winner81, winner81, driver_device, 0, ROT0, "Corona Co, LTD.", "Winners Circle (81, 28*28 PCB)", MACHINE_IMPERFECT_SOUND ) -GAME( 1981, winner81b, winner82, winner82, winner82, driver_device, 0, ROT0, "Corona Co, LTD.", "Winners Circle (81, 18*22 PCB)", 0 ) -GAME( 1982, winner82, 0, winner82, winner82, driver_device, 0, ROT0, "Corona Co, LTD.", "Winners Circle (82)", 0 ) -GAME( 198?, legrandc, winner82, winner82, winner82, driver_device, 0, ROT0, "Isermatic France S.A.", "Le Grandchamps", MACHINE_IMPERFECT_COLORS ) -GAMEL( 1991, re800ea, re800v1, re800, re800, driver_device, 0, ROT90, "Entretenimientos GEMINIS", "Ruleta RE-800 (earlier, no attract)", 0, layout_re800 ) -GAMEL( 1991, re800v1, 0, re800, re800, driver_device, 0, ROT90, "Entretenimientos GEMINIS", "Ruleta RE-800 (v1.0)", 0, layout_re800 ) -GAMEL( 1991, re800v3, 0, re800, re800v3, driver_device, 0, ROT90, "Entretenimientos GEMINIS", "Ruleta RE-800 (v3.0)", MACHINE_IMPERFECT_COLORS, layout_re800 ) -GAMEL( 199?, rcirulet, 0, rcirulet, re800, driver_device, 0, ROT90, "Entretenimientos GEMINIS", "Ruleta RCI (6-players, Spanish)", 0, layout_re800 ) -GAMEL( 1990, luckyrlt, 0, luckyrlt, luckyrlt, driver_device, 0, ROT90, "", "Lucky Roulette Plus (6-players, Spanish)", 0, layout_luckyrlt ) +// YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS LAYOUT +GAME( 1981, winner81, winner82, winner81, winner81, corona_state, 0, ROT0, "Corona Co, LTD.", "Winners Circle (81, 28*28 PCB)", MACHINE_IMPERFECT_SOUND ) +GAME( 1981, winner81b, winner82, winner82, winner82, corona_state, 0, ROT0, "Corona Co, LTD.", "Winners Circle (81, 18*22 PCB)", 0 ) +GAME( 1982, winner82, 0, winner82, winner82, corona_state, 0, ROT0, "Corona Co, LTD.", "Winners Circle (82)", 0 ) +GAME( 198?, legrandc, winner82, winner82, winner82, corona_state, 0, ROT0, "Isermatic France S.A.", "Le Grandchamps", MACHINE_IMPERFECT_COLORS ) +GAMEL( 1991, re800ea, re800v1, re800, re800, corona_state, 0, ROT90, "Entretenimientos GEMINIS", "Ruleta RE-800 (earlier, no attract)", 0, layout_re800 ) +GAMEL( 1991, re800v1, 0, re800, re800, corona_state, 0, ROT90, "Entretenimientos GEMINIS", "Ruleta RE-800 (v1.0)", 0, layout_re800 ) +GAMEL( 1991, re800v3, 0, re800, re800v3, corona_state, 0, ROT90, "Entretenimientos GEMINIS", "Ruleta RE-800 (v3.0)", MACHINE_IMPERFECT_COLORS, layout_re800 ) +GAMEL( 199?, rcirulet, 0, rcirulet, re800, corona_state, 0, ROT90, "Entretenimientos GEMINIS", "Ruleta RCI (6-players, Spanish)", 0, layout_re800 ) +GAMEL( 1990, luckyrlt, 0, luckyrlt, luckyrlt, corona_state, 0, ROT90, "", "Lucky Roulette Plus (6-players, Spanish)", 0, layout_luckyrlt ) diff --git a/src/mame/drivers/cortex.cpp b/src/mame/drivers/cortex.cpp index fd96bc7feee..628f58b0307 100644 --- a/src/mame/drivers/cortex.cpp +++ b/src/mame/drivers/cortex.cpp @@ -74,7 +74,7 @@ void cortex_state::machine_reset() m_maincpu->ready_line(ASSERT_LINE); } -static MACHINE_CONFIG_START( cortex, cortex_state ) +static MACHINE_CONFIG_START( cortex ) /* basic machine hardware */ /* TMS9995 CPU @ 12.0 MHz */ // Standard variant, no overflow int @@ -102,5 +102,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1982, cortex, 0, 0, cortex, cortex, driver_device, 0, "Powertran Cybernetics", "Cortex", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +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/cosmic.cpp b/src/mame/drivers/cosmic.cpp index 9fc7f551b86..8301e79c3ef 100644 --- a/src/mame/drivers/cosmic.cpp +++ b/src/mame/drivers/cosmic.cpp @@ -1000,7 +1000,7 @@ MACHINE_RESET_MEMBER(cosmic_state,cosmicg) m_maincpu->set_input_line(INT_9980A_RESET, CLEAR_LINE); } -static MACHINE_CONFIG_START( cosmic, cosmic_state ) +static MACHINE_CONFIG_START( cosmic ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80,Z80_MASTER_CLOCK/6) /* 1.8026 MHz */ @@ -1082,7 +1082,7 @@ static MACHINE_CONFIG_DERIVED( cosmica, cosmic ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( cosmicg, cosmic_state ) +static MACHINE_CONFIG_START( cosmicg ) /* basic machine hardware */ MCFG_TMS99xx_ADD("maincpu", TMS9980A, COSMICG_MASTER_CLOCK/8, cosmicg_map, cosmicg_io_map) @@ -1597,19 +1597,19 @@ DRIVER_INIT_MEMBER(cosmic_state,panic) } -GAME( 1979, cosmicg, 0, cosmicg, cosmicg, cosmic_state, cosmicg, ROT270, "Universal", "Cosmic Guerilla", MACHINE_IMPERFECT_SOUND | MACHINE_NO_COCKTAIL /*| MACHINE_SUPPORTS_SAVE */) -GAME( 1979, cosmicgi, cosmicg, cosmicg, cosmicg, cosmic_state, cosmicg, ROT270, "bootleg (Inder)", "Cosmic Guerilla (Spanish bootleg)", MACHINE_IMPERFECT_SOUND | MACHINE_NO_COCKTAIL /*| MACHINE_SUPPORTS_SAVE */) -GAME( 1979, cosmica, 0, cosmica, cosmica, cosmic_state, cosmica, ROT270, "Universal", "Cosmic Alien (version II)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1979, cosmica1, cosmica, cosmica, cosmica, cosmic_state, cosmica, ROT270, "Universal", "Cosmic Alien (first version)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1979, cosmica2, cosmica, cosmica, cosmica, cosmic_state, cosmica, ROT270, "Universal", "Cosmic Alien (early version II?)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1980, nomnlnd, 0, nomnlnd, nomnlnd, cosmic_state, nomnlnd, ROT270, "Universal", "No Man's Land", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1979, cosmicg, 0, cosmicg, cosmicg, cosmic_state, cosmicg, ROT270, "Universal", "Cosmic Guerilla", MACHINE_IMPERFECT_SOUND | MACHINE_NO_COCKTAIL /*| MACHINE_SUPPORTS_SAVE */) +GAME( 1979, cosmicgi, cosmicg, cosmicg, cosmicg, cosmic_state, cosmicg, ROT270, "bootleg (Inder)", "Cosmic Guerilla (Spanish bootleg)", MACHINE_IMPERFECT_SOUND | MACHINE_NO_COCKTAIL /*| MACHINE_SUPPORTS_SAVE */) +GAME( 1979, cosmica, 0, cosmica, cosmica, cosmic_state, cosmica, ROT270, "Universal", "Cosmic Alien (version II)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1979, cosmica1, cosmica, cosmica, cosmica, cosmic_state, cosmica, ROT270, "Universal", "Cosmic Alien (first version)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1979, cosmica2, cosmica, cosmica, cosmica, cosmic_state, cosmica, ROT270, "Universal", "Cosmic Alien (early version II?)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1980, nomnlnd, 0, nomnlnd, nomnlnd, cosmic_state, nomnlnd, ROT270, "Universal", "No Man's Land", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) GAME( 1980, nomnlndg, nomnlnd, nomnlnd, nomnlndg, cosmic_state, nomnlnd, ROT270, "Universal (Gottlieb license)", "No Man's Land (Gottlieb)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1980, magspot, 0, magspot, magspot, driver_device, 0, ROT270, "Universal", "Magical Spot", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1980, magspot2, 0, magspot, magspot, driver_device, 0, ROT270, "Universal", "Magical Spot II", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1980, panic, 0, panic, panic, cosmic_state, panic, ROT270, "Universal", "Space Panic (version E)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1980, panic2, panic, panic, panic, cosmic_state, panic, ROT270, "Universal", "Space Panic (set 2)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1980, panic3, panic, panic, panic, cosmic_state, panic, ROT270, "Universal", "Space Panic (set 3)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1980, panich, panic, panic, panic, cosmic_state, panic, ROT270, "Universal", "Space Panic (harder)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1980, panicger, panic, panic, panic, cosmic_state, panic, ROT270, "Universal (ADP Automaten license)", "Space Panic (German)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1980, devzone, 0, devzone, devzone, cosmic_state, devzone, ROT270, "Universal", "Devil Zone", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1980, magspot, 0, magspot, magspot, cosmic_state, 0, ROT270, "Universal", "Magical Spot", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1980, magspot2, 0, magspot, magspot, cosmic_state, 0, ROT270, "Universal", "Magical Spot II", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1980, panic, 0, panic, panic, cosmic_state, panic, ROT270, "Universal", "Space Panic (version E)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1980, panic2, panic, panic, panic, cosmic_state, panic, ROT270, "Universal", "Space Panic (set 2)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1980, panic3, panic, panic, panic, cosmic_state, panic, ROT270, "Universal", "Space Panic (set 3)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1980, panich, panic, panic, panic, cosmic_state, panic, ROT270, "Universal", "Space Panic (harder)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1980, panicger, panic, panic, panic, cosmic_state, panic, ROT270, "Universal (ADP Automaten license)", "Space Panic (German)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1980, devzone, 0, devzone, devzone, cosmic_state, devzone, ROT270, "Universal", "Devil Zone", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) GAME( 1980, devzone2, devzone, devzone, devzone2, cosmic_state, devzone, ROT270, "Universal", "Devil Zone (easier)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/cosmicos.cpp b/src/mame/drivers/cosmicos.cpp index 7ab8aa1e817..416c7f16624 100644 --- a/src/mame/drivers/cosmicos.cpp +++ b/src/mame/drivers/cosmicos.cpp @@ -499,7 +499,7 @@ QUICKLOAD_LOAD_MEMBER( cosmicos_state, cosmicos ) /* Machine Driver */ -static MACHINE_CONFIG_START( cosmicos, cosmicos_state ) +static MACHINE_CONFIG_START( cosmicos ) /* basic machine hardware */ MCFG_CPU_ADD(CDP1802_TAG, CDP1802, XTAL_1_75MHz) MCFG_CPU_PROGRAM_MAP(cosmicos_mem) @@ -558,5 +558,5 @@ ROM_END /* System Drivers */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1979, cosmicos, 0, 0, cosmicos, cosmicos, driver_device, 0, "Radio Bulletin", "Cosmicos", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1979, cosmicos, 0, 0, cosmicos, cosmicos, cosmicos_state, 0, "Radio Bulletin", "Cosmicos", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS ) diff --git a/src/mame/drivers/cp1.cpp b/src/mame/drivers/cp1.cpp index 08133f1a5c3..939ccc0e358 100644 --- a/src/mame/drivers/cp1.cpp +++ b/src/mame/drivers/cp1.cpp @@ -251,7 +251,7 @@ QUICKLOAD_LOAD_MEMBER( cp1_state, quickload ) return image_init_result::PASS; } -static MACHINE_CONFIG_START( cp1, cp1_state ) +static MACHINE_CONFIG_START( cp1 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8049, XTAL_6MHz) MCFG_CPU_IO_MAP(cp1_io) @@ -297,5 +297,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1980, cp1, 0, 0, cp1, cp1, driver_device, 0, "Kosmos", "CP1 / Computer Praxis", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1980, cp1, 0, 0, cp1, cp1, cp1_state, 0, "Kosmos", "CP1 / Computer Praxis", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/cps1.cpp b/src/mame/drivers/cps1.cpp index 32c5bb88b24..490b6489f3c 100644 --- a/src/mame/drivers/cps1.cpp +++ b/src/mame/drivers/cps1.cpp @@ -3298,7 +3298,7 @@ MACHINE_START_MEMBER(cps_state,qsound) membank("bank1")->configure_entries(0, 6, memregion("audiocpu")->base() + 0x10000, 0x4000); } -static MACHINE_CONFIG_START( cps1_10MHz, cps_state ) +static MACHINE_CONFIG_START( cps1_10MHz ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_10MHz ) /* verified on pcb */ @@ -3334,7 +3334,7 @@ static MACHINE_CONFIG_START( cps1_10MHz, cps_state ) MCFG_SOUND_ROUTE(1, "mono", 0.35) /* CPS PPU is fed by a 16mhz clock,pin 117 outputs a 4mhz clock which is divided by 4 using 2 74ls74 */ - MCFG_OKIM6295_ADD("oki", XTAL_16MHz/4/4, OKIM6295_PIN7_HIGH) // pin 7 can be changed by the game code, see f006 on z80 + MCFG_OKIM6295_ADD("oki", XTAL_16MHz/4/4, PIN7_HIGH) // pin 7 can be changed by the game code, see f006 on z80 MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30) MACHINE_CONFIG_END diff --git a/src/mame/drivers/cps2.cpp b/src/mame/drivers/cps2.cpp index e084bbbe05f..3b305d72538 100644 --- a/src/mame/drivers/cps2.cpp +++ b/src/mame/drivers/cps2.cpp @@ -1301,7 +1301,7 @@ MACHINE_START_MEMBER(cps_state,cps2) } -static MACHINE_CONFIG_START( cps2, cps_state ) +static MACHINE_CONFIG_START( cps2 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz) @@ -1353,7 +1353,7 @@ static MACHINE_CONFIG_DERIVED( gigaman2, cps2 ) MCFG_CPU_MODIFY("maincpu") - MCFG_OKIM6295_ADD("oki", XTAL_32MHz/32, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki", XTAL_32MHz/32, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.47) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.47) MACHINE_CONFIG_END @@ -11612,7 +11612,7 @@ ROM_END GAME( 1993, ddtodd, ddtod, dead_cps2, cps2_4p4b, cps_state, cps2, ROT0, "bootleg", "Dungeons & Dragons: Tower of Doom (Euro 940412 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, ecofghtrd,ecofghtr, dead_cps2, ecofghtr, cps_state, ecofghtr, ROT0, "bootleg", "Eco Fighters (World 931203 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, ecofghtrd,ecofghtr, dead_cps2, ecofghtr, cps_state, ecofghtr,ROT0, "bootleg", "Eco Fighters (World 931203 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) GAME( 1993, ssf2ud, ssf2, dead_cps2, cps2_2p6b, cps_state, cps2, ROT0, "bootleg", "Super Street Fighter II: The New Challengers (USA 930911 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) GAME( 1993, ssf2tbd, ssf2, dead_cps2, cps2_2p6b, cps_state, ssf2tb, ROT0, "bootleg", "Super Street Fighter II: The Tournament Battle (World 931119 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) GAME( 1994, armwar1d, armwar, dead_cps2, cps2_3p3b, cps_state, cps2, ROT0, "bootleg", "Armored Warriors (Euro 941011 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/cps3.cpp b/src/mame/drivers/cps3.cpp index 52ea9c3bf04..f2468a0bc62 100644 --- a/src/mame/drivers/cps3.cpp +++ b/src/mame/drivers/cps3.cpp @@ -2519,7 +2519,7 @@ static MACHINE_CONFIG_FRAGMENT( simm6_128mbit ) MCFG_FUJITSU_29F016A_ADD("simm6.7") MACHINE_CONFIG_END -static MACHINE_CONFIG_START( cps3, cps3_state ) +static MACHINE_CONFIG_START( cps3 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", SH2, 6250000*4) // external clock is 6.25 Mhz, it sets the internal multiplier to 4x (this should probably be handled in the core..) MCFG_CPU_PROGRAM_MAP(cps3_map) @@ -3942,15 +3942,15 @@ GAME( 1999, jojobaner1,jojoba, jojoba, cps3_jojo, cps3_state, jojoba, ROT0 // bootlegs, hold START1 during bootup to change games // newest revision, fixes some issues with Warzard decryption. -GAME( 1999, cps3boot, 0, sfiii3, cps3_jojo, cps3_state, cps3boot, ROT0, "bootleg", "CPS3 Multi-game bootleg for HD6417095 type SH2 (V4)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1999, cps3boota, cps3boot, sfiii3, cps3_jojo, cps3_state, sfiii2, ROT0, "bootleg", "CPS3 Multi-game bootleg for dead security cart (V5)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1999, cps3boot, 0, sfiii3, cps3_jojo, cps3_state, cps3boot, ROT0, "bootleg", "CPS3 Multi-game bootleg for HD6417095 type SH2 (V4)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1999, cps3boota, cps3boot, sfiii3, cps3_jojo, cps3_state, sfiii2, ROT0, "bootleg", "CPS3 Multi-game bootleg for dead security cart (V5)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1999, cps3booto, cps3boot, sfiii3, cps3_jojo, cps3_state, cps3boot, ROT0, "bootleg", "CPS3 Multi-game bootleg for HD6417095 type SH2 (older)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1999, cps3bootao, cps3boot, sfiii3, cps3_jojo, cps3_state, sfiii2, ROT0, "bootleg", "CPS3 Multi-game bootleg for dead security cart (older)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1999, cps3booto, cps3boot, sfiii3, cps3_jojo, cps3_state, cps3boot, ROT0, "bootleg", "CPS3 Multi-game bootleg for HD6417095 type SH2 (older)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1999, cps3bootao, cps3boot, sfiii3, cps3_jojo, cps3_state, sfiii2, ROT0, "bootleg", "CPS3 Multi-game bootleg for dead security cart (older)", MACHINE_IMPERFECT_GRAPHICS ) // this doesn't play 2nd Impact despite it being listed. 2nd Impact uses separate data/code encryption and can't be decrypted cleanly for a standard SH2. Selecting it just flashes in a copy of 3rd Strike with the 2nd Impact loading screen -GAME( 1999, cps3booto2, cps3boot, sfiii3, cps3_jojo, cps3_state, cps3boot, ROT0, "bootleg", "CPS3 Multi-game bootleg for HD6417095 type SH2 (oldest) (New Generation, 3rd Strike, JoJo's Venture, JoJo's Bizarre Adventure and Red Earth only)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1999, cps3booto2, cps3boot, sfiii3, cps3_jojo, cps3_state, cps3boot, ROT0, "bootleg", "CPS3 Multi-game bootleg for HD6417095 type SH2 (oldest) (New Generation, 3rd Strike, JoJo's Venture, JoJo's Bizarre Adventure and Red Earth only)", MACHINE_IMPERFECT_GRAPHICS ) // this does not play Red Earth or the 2 Jojo games. New Generation and 3rd Strike have been heavily modified to work with the separate code/data encryption a dead cart / 2nd Impact cart has. Selecting the other games will give an 'invalid CD' message. GAME( 1999, cps3bootao2, cps3boot, sfiii3, cps3_jojo, cps3_state, sfiii2, ROT0, "bootleg", "CPS3 Multi-game bootleg for dead security cart (oldest) (New Generation, 2nd Impact and 3rd Strike only)", MACHINE_IMPERFECT_GRAPHICS ) // these are test bootleg CDs for running 2nd Impact on a standard SH2 -GAME( 1999, cps3bs32, cps3boot, sfiii3, cps3_jojo, cps3_state, cps3boot, ROT0, "bootleg", "Street Fighter III 2nd Impact: Giant Attack (USA 970930, bootleg for HD6417095 type SH2, V3)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1999, cps3bs32a, cps3boot, sfiii3, cps3_jojo, cps3_state, cps3boot, ROT0, "bootleg", "Street Fighter III 2nd Impact: Giant Attack (USA 970930, bootleg for HD6417095 type SH2, older)", MACHINE_IMPERFECT_GRAPHICS ) // older / buggier hack +GAME( 1999, cps3bs32, cps3boot, sfiii3, cps3_jojo, cps3_state, cps3boot, ROT0, "bootleg", "Street Fighter III 2nd Impact: Giant Attack (USA 970930, bootleg for HD6417095 type SH2, V3)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1999, cps3bs32a, cps3boot, sfiii3, cps3_jojo, cps3_state, cps3boot, ROT0, "bootleg", "Street Fighter III 2nd Impact: Giant Attack (USA 970930, bootleg for HD6417095 type SH2, older)", MACHINE_IMPERFECT_GRAPHICS ) // older / buggier hack diff --git a/src/mame/drivers/craft.cpp b/src/mame/drivers/craft.cpp index 0693991486f..cf54843ddbf 100644 --- a/src/mame/drivers/craft.cpp +++ b/src/mame/drivers/craft.cpp @@ -237,7 +237,7 @@ void craft_state::machine_reset() m_last_cycles = 0; } -static MACHINE_CONFIG_START( craft, craft_state ) +static MACHINE_CONFIG_START( craft ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", ATMEGA88, MASTER_CLOCK) @@ -269,5 +269,5 @@ ROM_START( craft ) ROM_LOAD( "eeprom.raw", 0x0000, 0x0200, CRC(e18a2af9) SHA1(81fc6f2d391edfd3244870214fac37929af0ac0c) ) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME */ CONS(2008, craft, 0, 0, craft, craft, craft_state, craft, "Linus Akesson", "Craft", MACHINE_NOT_WORKING) diff --git a/src/mame/drivers/crbaloon.cpp b/src/mame/drivers/crbaloon.cpp index 034acc2d81f..6ee061aecdc 100644 --- a/src/mame/drivers/crbaloon.cpp +++ b/src/mame/drivers/crbaloon.cpp @@ -359,7 +359,7 @@ INTERRUPT_GEN_MEMBER(crbaloon_state::vblank_irq) } -static MACHINE_CONFIG_START( crbaloon, crbaloon_state ) +static MACHINE_CONFIG_START( crbaloon ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, CRBALOON_MASTER_XTAL / 3) @@ -436,5 +436,5 @@ ROM_END * *************************************/ -GAME( 1980, crbaloon, 0, crbaloon, crbaloon, driver_device, 0, ROT90, "Taito Corporation", "Crazy Balloon (set 1)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1980, crbaloon2,crbaloon, crbaloon, crbaloon, driver_device, 0, ROT90, "Taito Corporation", "Crazy Balloon (set 2)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1980, crbaloon, 0, crbaloon, crbaloon, crbaloon_state, 0, ROT90, "Taito Corporation", "Crazy Balloon (set 1)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1980, crbaloon2,crbaloon, crbaloon, crbaloon, crbaloon_state, 0, ROT90, "Taito Corporation", "Crazy Balloon (set 2)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/crgolf.cpp b/src/mame/drivers/crgolf.cpp index 90687667347..cbfc7c691a4 100644 --- a/src/mame/drivers/crgolf.cpp +++ b/src/mame/drivers/crgolf.cpp @@ -492,7 +492,7 @@ INPUT_PORTS_END * *************************************/ -static MACHINE_CONFIG_START( crgolf, crgolf_state ) +static MACHINE_CONFIG_START( crgolf ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80,MASTER_CLOCK/3/2) @@ -535,7 +535,7 @@ static MACHINE_CONFIG_DERIVED( crgolfhi, crgolf ) MCFG_SOUND_ADD("msm", MSM5205, 384000) MCFG_MSM5205_VCLK_CB(WRITELINE(crgolf_state, vck_callback)) - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S64_4B) + MCFG_MSM5205_PRESCALER_SELECTOR(S64_4B) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -796,11 +796,11 @@ DRIVER_INIT_MEMBER(crgolf_state,crgolfhi) * *************************************/ -GAME( 1984, crgolf, 0, crgolf, crgolf, driver_device, 0, ROT0, "Nasco Japan", "Crowns Golf (834-5419-04)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, crgolfa, crgolf, crgolf, crgolf, driver_device, 0, ROT0, "Nasco Japan", "Crowns Golf (834-5419-03)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, crgolfb, crgolf, crgolf, crgolf, driver_device, 0, ROT0, "Nasco Japan", "Crowns Golf (set 3)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, crgolfc, crgolf, crgolf, crgolf, driver_device, 0, ROT0, "Nasco Japan", "Champion Golf", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, crgolfbt, crgolf, crgolf, crgolf, driver_device, 0, ROT0, "bootleg", "Champion Golf (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, crgolfhi, 0, crgolfhi, crgolf, crgolf_state, crgolfhi, ROT0, "Nasco Japan", "Crowns Golf in Hawaii" , MACHINE_SUPPORTS_SAVE ) +GAME( 1984, crgolf, 0, crgolf, crgolf, crgolf_state, 0, ROT0, "Nasco Japan", "Crowns Golf (834-5419-04)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, crgolfa, crgolf, crgolf, crgolf, crgolf_state, 0, ROT0, "Nasco Japan", "Crowns Golf (834-5419-03)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, crgolfb, crgolf, crgolf, crgolf, crgolf_state, 0, ROT0, "Nasco Japan", "Crowns Golf (set 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, crgolfc, crgolf, crgolf, crgolf, crgolf_state, 0, ROT0, "Nasco Japan", "Champion Golf", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, crgolfbt, crgolf, crgolf, crgolf, crgolf_state, 0, ROT0, "bootleg", "Champion Golf (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, crgolfhi, 0, crgolfhi, crgolf, crgolf_state, crgolfhi, ROT0, "Nasco Japan", "Crowns Golf in Hawaii", MACHINE_SUPPORTS_SAVE ) -GAME( 198?, mastrglf, 0, mastrglf, crgolf, driver_device, 0, ROT0, "Nasco", "Master's Golf", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION ) +GAME( 198?, mastrglf, 0, mastrglf, crgolf, crgolf_state, 0, ROT0, "Nasco", "Master's Golf", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION ) diff --git a/src/mame/drivers/crimfght.cpp b/src/mame/drivers/crimfght.cpp index c35f32de4fb..ed3e8cf900c 100644 --- a/src/mame/drivers/crimfght.cpp +++ b/src/mame/drivers/crimfght.cpp @@ -297,7 +297,7 @@ CUSTOM_INPUT_MEMBER( crimfght_state::system_r ) return data >> 4; } -static MACHINE_CONFIG_START( crimfght, crimfght_state ) +static MACHINE_CONFIG_START( crimfght ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", KONAMI, XTAL_24MHz/8) /* 052001 (verified on pcb) */ @@ -435,6 +435,6 @@ ROM_END ***************************************************************************/ -GAME( 1989, crimfght, 0, crimfght, crimfght, driver_device, 0, ROT0, "Konami", "Crime Fighters (World 2 players)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, crimfghtu, crimfght, crimfght, crimfghtu, driver_device,0, ROT0, "Konami", "Crime Fighters (US 4 Players)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, crimfghtj, crimfght, crimfght, crimfght, driver_device,0, ROT0, "Konami", "Crime Fighters (Japan 2 Players)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, crimfght, 0, crimfght, crimfght, crimfght_state, 0, ROT0, "Konami", "Crime Fighters (World 2 players)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, crimfghtu, crimfght, crimfght, crimfghtu, crimfght_state, 0, ROT0, "Konami", "Crime Fighters (US 4 Players)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, crimfghtj, crimfght, crimfght, crimfght, crimfght_state, 0, ROT0, "Konami", "Crime Fighters (Japan 2 Players)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/crospang.cpp b/src/mame/drivers/crospang.cpp index 827e20ac4bf..78b49862193 100644 --- a/src/mame/drivers/crospang.cpp +++ b/src/mame/drivers/crospang.cpp @@ -336,7 +336,7 @@ void crospang_state::machine_reset() } -static MACHINE_CONFIG_START( crospang, crospang_state ) +static MACHINE_CONFIG_START( crospang ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 14318180) @@ -378,7 +378,7 @@ static MACHINE_CONFIG_START( crospang, crospang_state ) MCFG_YM3812_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MCFG_OKIM6295_ADD("oki", 1056000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki", 1056000, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END diff --git a/src/mame/drivers/crshrace.cpp b/src/mame/drivers/crshrace.cpp index d5716e20787..ab26cbc1f8a 100644 --- a/src/mame/drivers/crshrace.cpp +++ b/src/mame/drivers/crshrace.cpp @@ -418,7 +418,7 @@ void crshrace_state::machine_reset() m_pending_command = 0; } -static MACHINE_CONFIG_START( crshrace, crshrace_state ) +static MACHINE_CONFIG_START( crshrace ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000,16000000) /* 16 MHz ??? */ @@ -566,5 +566,5 @@ DRIVER_INIT_MEMBER(crshrace_state,crshrace2) } -GAME( 1993, crshrace, 0, crshrace, crshrace, crshrace_state, crshrace, ROT270, "Video System Co.", "Lethal Crash Race (set 1)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1993, crshrace, 0, crshrace, crshrace, crshrace_state, crshrace, ROT270, "Video System Co.", "Lethal Crash Race (set 1)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) GAME( 1993, crshrace2, crshrace, crshrace, crshrace2, crshrace_state, crshrace2, ROT270, "Video System Co.", "Lethal Crash Race (set 2)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/crvision.cpp b/src/mame/drivers/crvision.cpp index 2222abc56fd..8676d756ccf 100644 --- a/src/mame/drivers/crvision.cpp +++ b/src/mame/drivers/crvision.cpp @@ -731,10 +731,10 @@ static SLOT_INTERFACE_START(crvision_cart) SLOT_INTERFACE_END /*------------------------------------------------- - MACHINE_CONFIG_START( creativision, crvision_state ) + MACHINE_CONFIG_START( creativision ) -------------------------------------------------*/ -static MACHINE_CONFIG_START( creativision, crvision_state ) +static MACHINE_CONFIG_START( creativision ) // basic machine hardware MCFG_CPU_ADD(M6502_TAG, M6502, XTAL_2MHz) MCFG_CPU_PROGRAM_MAP(crvision_map) @@ -797,7 +797,7 @@ MACHINE_CONFIG_END MACHINE_CONFIG_DERIVED( pal, creativision ) -------------------------------------------------*/ -static MACHINE_CONFIG_DERIVED_CLASS( pal, creativision, crvision_pal_state ) +static MACHINE_CONFIG_DERIVED( pal, creativision ) // video hardware MCFG_DEVICE_ADD( TMS9929_TAG, TMS9929, XTAL_10_738635MHz / 2 ) MCFG_TMS9928A_VRAM_SIZE(0x4000) @@ -807,10 +807,10 @@ static MACHINE_CONFIG_DERIVED_CLASS( pal, creativision, crvision_pal_state ) MACHINE_CONFIG_END /*------------------------------------------------- - MACHINE_CONFIG_START( lasr2001, laser2001_state ) + MACHINE_CONFIG_START( lasr2001 ) -------------------------------------------------*/ -static MACHINE_CONFIG_START( lasr2001, laser2001_state ) +static MACHINE_CONFIG_START( lasr2001 ) // basic machine hardware MCFG_CPU_ADD(M6502_TAG, M6502, XTAL_17_73447MHz/9) MCFG_CPU_PROGRAM_MAP(lasr2001_map) @@ -895,14 +895,14 @@ ROM_END SYSTEM DRIVERS ***************************************************************************/ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ -CONS( 1982, crvision, 0, 0, pal, crvision, driver_device, 0, "Video Technology", "CreatiVision", 0 ) -CONS( 1982, fnvision, crvision, 0, pal, crvision, driver_device, 0, "Video Technology", "FunVision", 0 ) -CONS( 1982, crvisioj, crvision, 0, ntsc, crvision, driver_device, 0, "Cheryco", "CreatiVision (Japan)", 0 ) -CONS( 1982, wizzard, crvision, 0, pal, crvision, driver_device, 0, "Dick Smith Electronics", "Wizzard (Oceania)", 0 ) -CONS( 1982, rameses, crvision, 0, pal, crvision, driver_device, 0, "Hanimex", "Rameses (Oceania)", 0 ) -CONS( 1983, vz2000, crvision, 0, pal, crvision, driver_device, 0, "Dick Smith Electronics", "VZ 2000 (Oceania)", 0 ) -CONS( 1983, crvisio2, crvision, 0, pal, crvision, driver_device, 0, "Video Technology", "CreatiVision MK-II (Europe)", 0 ) -//COMP( 1983, lasr2001, 0, 0, lasr2001, lasr2001, driver_device, 0, "Video Technology", "Laser 2001", MACHINE_NOT_WORKING ) -//COMP( 1983, vz2001, lasr2001, 0, lasr2001, lasr2001, driver_device, 0, "Dick Smith Electronics", "VZ 2001 (Oceania)", MACHINE_NOT_WORKING ) -COMP( 1983, manager, 0, 0, lasr2001, manager, driver_device, 0, "Salora", "Manager (Finland)", 0 ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +CONS( 1982, crvision, 0, 0, pal, crvision, crvision_pal_state, 0, "Video Technology", "CreatiVision", 0 ) +CONS( 1982, fnvision, crvision, 0, pal, crvision, crvision_pal_state, 0, "Video Technology", "FunVision", 0 ) +CONS( 1982, crvisioj, crvision, 0, ntsc, crvision, crvision_state, 0, "Cheryco", "CreatiVision (Japan)", 0 ) +CONS( 1982, wizzard, crvision, 0, pal, crvision, crvision_pal_state, 0, "Dick Smith Electronics", "Wizzard (Oceania)", 0 ) +CONS( 1982, rameses, crvision, 0, pal, crvision, crvision_pal_state, 0, "Hanimex", "Rameses (Oceania)", 0 ) +CONS( 1983, vz2000, crvision, 0, pal, crvision, crvision_pal_state, 0, "Dick Smith Electronics", "VZ 2000 (Oceania)", 0 ) +CONS( 1983, crvisio2, crvision, 0, pal, crvision, crvision_pal_state, 0, "Video Technology", "CreatiVision MK-II (Europe)", 0 ) +//COMP( 1983, lasr2001, 0, 0, lasr2001, lasr2001, laser2001_state, 0, "Video Technology", "Laser 2001", MACHINE_NOT_WORKING ) +//COMP( 1983, vz2001, lasr2001, 0, lasr2001, lasr2001, laser2001_state, 0, "Dick Smith Electronics", "VZ 2001 (Oceania)", MACHINE_NOT_WORKING ) +COMP( 1983, manager, 0, 0, lasr2001, manager, laser2001_state, 0, "Salora", "Manager (Finland)", 0 ) diff --git a/src/mame/drivers/crystal.cpp b/src/mame/drivers/crystal.cpp index 14009bf4c37..93fe482e5b0 100644 --- a/src/mame/drivers/crystal.cpp +++ b/src/mame/drivers/crystal.cpp @@ -1426,7 +1426,7 @@ static INPUT_PORTS_START(crzyddz2) INPUT_PORTS_END -static MACHINE_CONFIG_START( crystal, crystal_state ) +static MACHINE_CONFIG_START( crystal ) MCFG_CPU_ADD("maincpu", SE3208, 43000000) MCFG_CPU_PROGRAM_MAP(crystal_mem) @@ -1810,17 +1810,17 @@ DRIVER_INIT_MEMBER(crystal_state,psattack) } -GAME( 2001, crysbios, 0, crystal, crystal, driver_device, 0, ROT0, "BrezzaSoft", "Crystal System BIOS", MACHINE_IS_BIOS_ROOT ) +GAME( 2001, crysbios, 0, crystal, crystal, crystal_state, 0, ROT0, "BrezzaSoft", "Crystal System BIOS", MACHINE_IS_BIOS_ROOT ) GAME( 2001, crysking, crysbios, crystal, crystal, crystal_state, crysking, ROT0, "BrezzaSoft", "The Crystal of Kings", 0 ) GAME( 2001, evosocc, crysbios, crystal, crystal, crystal_state, evosocc, ROT0, "Evoga", "Evolution Soccer", 0 ) GAME( 2003, topbladv, crysbios, crystal, crystal, crystal_state, topbladv, ROT0, "SonoKong / Expotato", "Top Blade V", 0 ) GAME( 2001, officeye, 0, crystal, officeye, crystal_state, officeye, ROT0, "Danbi", "Office Yeo In Cheon Ha (version 1.2)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION ) // still has some instability issues GAME( 2001, donghaer, 0, crystal, crystal, crystal_state, donghaer, ROT0, "Danbi", "Donggul Donggul Haerong", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION ) -GAME( 2004?,menghong, 0, crzyddz2, crzyddz2, driver_device, 0, ROT0, "Sealy", "Meng Hong Lou", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION ) -GAME( 2006, crzyddz2, 0, crzyddz2, crzyddz2, driver_device, 0, ROT0, "Sealy", "Crazy Dou Di Zhu II", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION ) -GAME( 2009, trivrus, 0, trivrus, trivrus, driver_device, 0, ROT0, "AGT", "Trivia R Us (v1.07)", 0 ) // has a CF card instead of flash roms -GAME( 200?, crospuzl, 0, crospuzl, crospuzl, driver_device, 0, ROT0, "", "Cross Puzzle", MACHINE_NOT_WORKING ) +GAME( 2004?,menghong, 0, crzyddz2, crzyddz2, crystal_state, 0, ROT0, "Sealy", "Meng Hong Lou", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION ) +GAME( 2006, crzyddz2, 0, crzyddz2, crzyddz2, crystal_state, 0, ROT0, "Sealy", "Crazy Dou Di Zhu II", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION ) +GAME( 2009, trivrus, 0, trivrus, trivrus, crystal_state, 0, ROT0, "AGT", "Trivia R Us (v1.07)", 0 ) // has a CF card instead of flash roms +GAME( 200?, crospuzl, 0, crospuzl, crospuzl, crystal_state, 0, ROT0, "", "Cross Puzzle", MACHINE_NOT_WORKING ) GAME( 2004, psattack, 0, crystal, crystal, crystal_state, psattack, ROT0, "Uniana", "P's Attack", MACHINE_IS_SKELETON ) // looks like the same kind of hw from strings in the ROM, but scrambled / encrypted? -GAME( 200?, ddz, 0, crystal, crystal, driver_device, 0, ROT0, "IGS?", "Dou Di Zhu", MACHINE_IS_SKELETON ) +GAME( 200?, ddz, 0, crystal, crystal, crystal_state, 0, ROT0, "IGS?", "Dou Di Zhu", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/csplayh5.cpp b/src/mame/drivers/csplayh5.cpp index 7fb98fc1c9d..e76478ddfd7 100644 --- a/src/mame/drivers/csplayh5.cpp +++ b/src/mame/drivers/csplayh5.cpp @@ -429,7 +429,7 @@ static const z80_daisy_config daisy_chain_sound[] = { nullptr } }; -static MACHINE_CONFIG_START( csplayh5, csplayh5_state ) +static MACHINE_CONFIG_START( csplayh5 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",M68000,16000000) /* TMP68301-16 */ diff --git a/src/mame/drivers/cswat.cpp b/src/mame/drivers/cswat.cpp index 5fd6dd3ac84..de9db256c95 100644 --- a/src/mame/drivers/cswat.cpp +++ b/src/mame/drivers/cswat.cpp @@ -253,7 +253,7 @@ void cswat_state::machine_start() save_item(NAME(m_nmi_enabled)); } -static MACHINE_CONFIG_START( cswat, cswat_state ) +static MACHINE_CONFIG_START( cswat ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809E, XTAL_18_432MHz/3/4) // HD68A09EP, 1.5MHz? @@ -304,4 +304,4 @@ ROM_START( cswat ) ROM_END -GAME( 1984, cswat, 0, cswat, cswat, driver_device, 0, ROT0, "Namco", "Cosmoswat", MACHINE_SUPPORTS_SAVE | MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1984, cswat, 0, cswat, cswat, cswat_state, 0, ROT0, "Namco", "Cosmoswat", MACHINE_SUPPORTS_SAVE | MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_GRAPHICS ) diff --git a/src/mame/drivers/ct486.cpp b/src/mame/drivers/ct486.cpp index 2d7e0e7c5ac..8fe4b9c53fe 100644 --- a/src/mame/drivers/ct486.cpp +++ b/src/mame/drivers/ct486.cpp @@ -20,6 +20,7 @@ #include "bus/pc_kbd/pc_kbdc.h" #include "softlist.h" +#include "softlist_dev.h" #include "speaker.h" @@ -31,11 +32,11 @@ class ct486_state : public driver_device { public: ct486_state(const machine_config &mconfig, device_type type, const char *tag) : - driver_device(mconfig, type, tag), - m_maincpu(*this, "maincpu"), - m_cs4031(*this, "cs4031"), - m_isabus(*this, "isabus"), - m_speaker(*this, "speaker") + driver_device(mconfig, type, tag), + m_maincpu(*this, "maincpu"), + m_cs4031(*this, "cs4031"), + m_isabus(*this, "isabus"), + m_speaker(*this, "speaker") { } required_device m_maincpu; @@ -103,7 +104,7 @@ ADDRESS_MAP_END // MACHINE DRIVERS //************************************************************************** -static MACHINE_CONFIG_START( ct486, ct486_state ) +static MACHINE_CONFIG_START( ct486 ) MCFG_CPU_ADD("maincpu", I486, XTAL_25MHz) MCFG_CPU_PROGRAM_MAP(ct486_map) MCFG_CPU_IO_MAP(ct486_io) @@ -199,4 +200,4 @@ ROM_END // GAME DRIVERS //************************************************************************** -COMP( 1993, ct486, 0, 0, ct486, 0, driver_device, 0, "", "PC/AT 486 with CS4031 chipset", 0 ) +COMP( 1993, ct486, 0, 0, ct486, 0, ct486_state, 0, "", "PC/AT 486 with CS4031 chipset", 0 ) diff --git a/src/mame/drivers/cubeqst.cpp b/src/mame/drivers/cubeqst.cpp index 02b3de025ff..9908bf4f8a0 100644 --- a/src/mame/drivers/cubeqst.cpp +++ b/src/mame/drivers/cubeqst.cpp @@ -48,7 +48,9 @@ public: "rdac6", "ldac6", "rdac7", "ldac7" }), - m_generic_paletteram_16(*this, "paletteram") { } + m_generic_paletteram_16(*this, "paletteram") + { + } std::unique_ptr m_depth_buffer; int m_video_field; @@ -510,7 +512,7 @@ WRITE16_MEMBER( cubeqst_state::sound_dac_w ) * *************************************/ -static MACHINE_CONFIG_START( cubeqst, cubeqst_state ) +static MACHINE_CONFIG_START( cubeqst ) MCFG_CPU_ADD("main_cpu", M68000, XTAL_16MHz / 2) MCFG_CPU_PROGRAM_MAP(m68k_program_map) MCFG_CPU_VBLANK_INT_DRIVER("screen", cubeqst_state, vblank) @@ -767,5 +769,5 @@ ROM_END * *************************************/ -GAME( 1983, cubeqst, 0, cubeqst, cubeqst, driver_device, 0, ROT0, "Simutrek", "Cube Quest (01/04/84)", 0 ) -GAME( 1983, cubeqsta, cubeqst, cubeqst, cubeqst, driver_device, 0, ROT0, "Simutrek", "Cube Quest (12/30/83)", 0 ) +GAME( 1983, cubeqst, 0, cubeqst, cubeqst, cubeqst_state, 0, ROT0, "Simutrek", "Cube Quest (01/04/84)", 0 ) +GAME( 1983, cubeqsta, cubeqst, cubeqst, cubeqst, cubeqst_state, 0, ROT0, "Simutrek", "Cube Quest (12/30/83)", 0 ) diff --git a/src/mame/drivers/cubo.cpp b/src/mame/drivers/cubo.cpp index 1d79bfd89b8..70cf55fe82f 100644 --- a/src/mame/drivers/cubo.cpp +++ b/src/mame/drivers/cubo.cpp @@ -1024,7 +1024,7 @@ static INPUT_PORTS_START( mgprem11 ) INPUT_PORTS_END -static MACHINE_CONFIG_START( cubo, cubo_state ) +static MACHINE_CONFIG_START( cubo ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68EC020, amiga_state::CLK_28M_PAL / 2) diff --git a/src/mame/drivers/cultures.cpp b/src/mame/drivers/cultures.cpp index 75ab788546b..47cfadc907e 100644 --- a/src/mame/drivers/cultures.cpp +++ b/src/mame/drivers/cultures.cpp @@ -38,7 +38,7 @@ public: m_bg1_regs_y(*this, "bg1_regs_y"), m_bg2_regs_x(*this, "bg2_regs_x"), m_bg2_regs_y(*this, "bg2_regs_y") - { } + { } /* devices */ required_device m_maincpu; @@ -394,7 +394,7 @@ void cultures_state::machine_reset() -static MACHINE_CONFIG_START( cultures, cultures_state ) +static MACHINE_CONFIG_START( cultures ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, MCLK/2) /* 8.000 MHz */ @@ -426,7 +426,7 @@ static MACHINE_CONFIG_START( cultures, cultures_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", MCLK/8, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki", MCLK/8, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30) MCFG_DEVICE_ADDRESS_MAP(AS_0, oki_map) @@ -496,4 +496,4 @@ ROM_START( cultures ) ROM_END -GAME( 1994, cultures, 0, cultures, cultures, driver_device, 0, ROT0, "Face", "Jibun wo Migaku Culture School Mahjong Hen", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, cultures, 0, cultures, cultures, cultures_state, 0, ROT0, "Face", "Jibun wo Migaku Culture School Mahjong Hen", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/cupidon.cpp b/src/mame/drivers/cupidon.cpp index 2ecdcf66932..dfa492d297c 100644 --- a/src/mame/drivers/cupidon.cpp +++ b/src/mame/drivers/cupidon.cpp @@ -29,7 +29,7 @@ public: { } // devices - required_device m_maincpu; + required_device m_maincpu; required_shared_ptr m_gfxram; uint32_t screen_update_cupidon(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); @@ -99,7 +99,7 @@ static INPUT_PORTS_START( cupidon ) INPUT_PORTS_END -static MACHINE_CONFIG_START( cupidon, cupidon_state ) +static MACHINE_CONFIG_START( cupidon ) MCFG_CPU_ADD("maincpu", M68340, 16000000) // The access to 3FF00 at the start would suggest this is a 68340 so probably 16 or 25 mhz? MCFG_CPU_PROGRAM_MAP(cupidon_map) @@ -172,13 +172,13 @@ DRIVER_INIT_MEMBER(cupidon_state,funnyfm) } /* (c) date is from string in ROM, revision date is noted next to sets - Spellings are as found in ROM */ -GAME( 2004, tsarevna ,0, cupidon, cupidon, cupidon_state, cupidon, ROT0, "Kupidon","Tsarevna (v1.29)", MACHINE_IS_SKELETON ) // 12 Oct 2005 -GAME( 2004, tsarevnaa ,tsarevna, cupidon, cupidon, cupidon_state, cupidon, ROT0, "Kupidon","Tsarevna (v1.31)", MACHINE_IS_SKELETON ) // 17 Jan 2007 +GAME( 2004, tsarevna, 0, cupidon, cupidon, cupidon_state, cupidon, ROT0, "Kupidon", "Tsarevna (v1.29)", MACHINE_IS_SKELETON ) // 12 Oct 2005 +GAME( 2004, tsarevnaa, tsarevna, cupidon, cupidon, cupidon_state, cupidon, ROT0, "Kupidon", "Tsarevna (v1.31)", MACHINE_IS_SKELETON ) // 17 Jan 2007 -GAME( 2004, gangrose ,0, cupidon, cupidon, cupidon_state, cupidon, ROT0, "Kupidon","Gangster's Roses (v4.70)", MACHINE_IS_SKELETON ) // 01 Sep 2004 +GAME( 2004, gangrose, 0, cupidon, cupidon, cupidon_state, cupidon, ROT0, "Kupidon", "Gangster's Roses (v4.70)", MACHINE_IS_SKELETON ) // 01 Sep 2004 -GAME( 2004, funnyfm ,0, cupidon, cupidon, cupidon_state, funnyfm, ROT0, "Kupidon","Funny Farm (v1.17)", MACHINE_IS_SKELETON ) // 02 Mar 2005 -GAME( 2004, funnyfma ,funnyfm, cupidon, cupidon, cupidon_state, cupidon, ROT0, "Kupidon","Funny Farm (v1.26)", MACHINE_IS_SKELETON ) // 08 Aug 2005 -GAME( 2004, funnyfmb ,funnyfm, cupidon, cupidon, cupidon_state, cupidon, ROT0, "Kupidon","Funny Farm (v1.30)", MACHINE_IS_SKELETON ) // 16 May 2006 +GAME( 2004, funnyfm, 0, cupidon, cupidon, cupidon_state, funnyfm, ROT0, "Kupidon", "Funny Farm (v1.17)", MACHINE_IS_SKELETON ) // 02 Mar 2005 +GAME( 2004, funnyfma, funnyfm, cupidon, cupidon, cupidon_state, cupidon, ROT0, "Kupidon", "Funny Farm (v1.26)", MACHINE_IS_SKELETON ) // 08 Aug 2005 +GAME( 2004, funnyfmb, funnyfm, cupidon, cupidon, cupidon_state, cupidon, ROT0, "Kupidon", "Funny Farm (v1.30)", MACHINE_IS_SKELETON ) // 16 May 2006 -GAME( 2005, cashtrn ,0, cupidon, cupidon, cupidon_state, cupidon, ROT0, "Kupidon","Cash Train (v1.10)", MACHINE_IS_SKELETON ) // 09 Jan 2006 +GAME( 2005, cashtrn, 0, cupidon, cupidon, cupidon_state, cupidon, ROT0, "Kupidon", "Cash Train (v1.10)", MACHINE_IS_SKELETON ) // 09 Jan 2006 diff --git a/src/mame/drivers/cv1k.cpp b/src/mame/drivers/cv1k.cpp index 3cc021fecae..50119e3ea2f 100644 --- a/src/mame/drivers/cv1k.cpp +++ b/src/mame/drivers/cv1k.cpp @@ -432,7 +432,7 @@ void cv1k_state::machine_reset() m_blitter->reset(); } -static MACHINE_CONFIG_START( cv1k, cv1k_state ) +static MACHINE_CONFIG_START( cv1k ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", SH3BE, XTAL_12_8MHz*8) // 102.4MHz diff --git a/src/mame/drivers/cvicny.cpp b/src/mame/drivers/cvicny.cpp index a88c22bcc51..aaa9959447f 100644 --- a/src/mame/drivers/cvicny.cpp +++ b/src/mame/drivers/cvicny.cpp @@ -128,7 +128,7 @@ static INPUT_PORTS_START( cvicny ) INPUT_PORTS_END -static MACHINE_CONFIG_START( cvicny, cvicny_state ) +static MACHINE_CONFIG_START( cvicny ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80, XTAL_2MHz) MCFG_CPU_PROGRAM_MAP(cvicny_mem) @@ -145,5 +145,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1984, cvicny, 0, 0, cvicny, cvicny, driver_device, 0, "", "Practice-z80", MACHINE_NO_SOUND_HW) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1984, cvicny, 0, 0, cvicny, cvicny, cvicny_state, 0, "", "Practice-z80", MACHINE_NO_SOUND_HW) diff --git a/src/mame/drivers/cvs.cpp b/src/mame/drivers/cvs.cpp index df7d4f5b068..80862607a38 100644 --- a/src/mame/drivers/cvs.cpp +++ b/src/mame/drivers/cvs.cpp @@ -974,7 +974,7 @@ MACHINE_RESET_MEMBER(cvs_state,cvs) } -static MACHINE_CONFIG_START( cvs, cvs_state ) +static MACHINE_CONFIG_START( cvs ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", S2650, XTAL_14_31818MHz/16) @@ -1641,25 +1641,25 @@ DRIVER_INIT_MEMBER(cvs_state,raiders) * *************************************/ -GAME( 1981, cosmos, 0, cvs, cosmos, driver_device, 0, ROT90, "Century Electronics", "Cosmos", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1981, darkwar, 0, cvs, darkwar, driver_device, 0, ROT90, "Century Electronics", "Dark Warrior", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1981, spacefrt, 0, cvs, spacefrt, driver_device, 0, ROT90, "Century Electronics", "Space Fortress (CVS)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1982, 8ball, 0, cvs, 8ball, driver_device, 0, ROT90, "Century Electronics", "Video Eight Ball", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1982, 8ball1, 8ball, cvs, 8ball, driver_device, 0, ROT90, "Century Electronics", "Video Eight Ball (Rev.1)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1982, logger, 0, cvs, logger, driver_device, 0, ROT90, "Century Electronics", "Logger", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1982, dazzler, 0, cvs, dazzler, driver_device, 0, ROT90, "Century Electronics", "Dazzler", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1982, wallst, 0, cvs, wallst, driver_device, 0, ROT90, "Century Electronics", "Wall Street", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1982, radarzon, 0, cvs, radarzon, driver_device, 0, ROT90, "Century Electronics", "Radar Zone", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1982, radarzon1, radarzon, cvs, radarzon, driver_device, 0, ROT90, "Century Electronics", "Radar Zone (Rev.1)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1982, radarzont, radarzon, cvs, radarzon, driver_device, 0, ROT90, "Century Electronics (Tuni Electro Service Inc)", "Radar Zone (Tuni)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1982, outline, radarzon, cvs, radarzon, driver_device, 0, ROT90, "Century Electronics", "Outline", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1982, goldbug, 0, cvs, goldbug, driver_device, 0, ROT90, "Century Electronics", "Gold Bug", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1982, diggerc, 0, cvs, diggerc, driver_device, 0, ROT90, "Century Electronics", "Digger (CVS)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1983, heartatk, 0, cvs, heartatk, driver_device, 0, ROT90, "Century Electronics", "Heart Attack", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1983, hunchbak, 0, cvs, hunchbak, driver_device, 0, ROT90, "Century Electronics", "Hunchback (set 1)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1983, hunchbaka, hunchbak, cvs, hunchbak, cvs_state, hunchbaka, ROT90, "Century Electronics", "Hunchback (set 2)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1983, superbik, 0, cvs, superbik, cvs_state, superbik, ROT90, "Century Electronics", "Superbike", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1983, raiders, 0, cvs, raiders, cvs_state, raiders, ROT90, "Century Electronics", "Raiders", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1983, raidersr3, raiders, cvs, raiders, cvs_state, raiders, ROT90, "Century Electronics", "Raiders (Rev.3)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1984, hero, 0, cvs, hero, cvs_state, hero, ROT90, "Century Electronics / Seatongrove Ltd", "Hero", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // (C) 1984 CVS on titlescreen, (C) 1983 Seatongrove on highscore screen -GAME( 1984, huncholy, 0, cvs, huncholy, cvs_state, huncholy, ROT90, "Century Electronics / Seatongrove Ltd", "Hunchback Olympic", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1981, cosmos, 0, cvs, cosmos, cvs_state, 0, ROT90, "Century Electronics", "Cosmos", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1981, darkwar, 0, cvs, darkwar, cvs_state, 0, ROT90, "Century Electronics", "Dark Warrior", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1981, spacefrt, 0, cvs, spacefrt, cvs_state, 0, ROT90, "Century Electronics", "Space Fortress (CVS)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1982, 8ball, 0, cvs, 8ball, cvs_state, 0, ROT90, "Century Electronics", "Video Eight Ball", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1982, 8ball1, 8ball, cvs, 8ball, cvs_state, 0, ROT90, "Century Electronics", "Video Eight Ball (Rev.1)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1982, logger, 0, cvs, logger, cvs_state, 0, ROT90, "Century Electronics", "Logger", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1982, dazzler, 0, cvs, dazzler, cvs_state, 0, ROT90, "Century Electronics", "Dazzler", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1982, wallst, 0, cvs, wallst, cvs_state, 0, ROT90, "Century Electronics", "Wall Street", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1982, radarzon, 0, cvs, radarzon, cvs_state, 0, ROT90, "Century Electronics", "Radar Zone", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1982, radarzon1, radarzon, cvs, radarzon, cvs_state, 0, ROT90, "Century Electronics", "Radar Zone (Rev.1)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1982, radarzont, radarzon, cvs, radarzon, cvs_state, 0, ROT90, "Century Electronics (Tuni Electro Service Inc)", "Radar Zone (Tuni)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1982, outline, radarzon, cvs, radarzon, cvs_state, 0, ROT90, "Century Electronics", "Outline", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1982, goldbug, 0, cvs, goldbug, cvs_state, 0, ROT90, "Century Electronics", "Gold Bug", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1982, diggerc, 0, cvs, diggerc, cvs_state, 0, ROT90, "Century Electronics", "Digger (CVS)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1983, heartatk, 0, cvs, heartatk, cvs_state, 0, ROT90, "Century Electronics", "Heart Attack", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1983, hunchbak, 0, cvs, hunchbak, cvs_state, 0, ROT90, "Century Electronics", "Hunchback (set 1)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1983, hunchbaka, hunchbak, cvs, hunchbak, cvs_state, hunchbaka, ROT90, "Century Electronics", "Hunchback (set 2)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1983, superbik, 0, cvs, superbik, cvs_state, superbik, ROT90, "Century Electronics", "Superbike", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1983, raiders, 0, cvs, raiders, cvs_state, raiders, ROT90, "Century Electronics", "Raiders", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1983, raidersr3, raiders, cvs, raiders, cvs_state, raiders, ROT90, "Century Electronics", "Raiders (Rev.3)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1984, hero, 0, cvs, hero, cvs_state, hero, ROT90, "Century Electronics / Seatongrove Ltd", "Hero", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // (C) 1984 CVS on titlescreen, (C) 1983 Seatongrove on highscore screen +GAME( 1984, huncholy, 0, cvs, huncholy, cvs_state, huncholy, ROT90, "Century Electronics / Seatongrove Ltd", "Hunchback Olympic", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/cxgz80.cpp b/src/mame/drivers/cxgz80.cpp index ddaf2087692..0a34c800ff3 100644 --- a/src/mame/drivers/cxgz80.cpp +++ b/src/mame/drivers/cxgz80.cpp @@ -407,7 +407,7 @@ INPUT_PORTS_END Machine Drivers ******************************************************************************/ -static MACHINE_CONFIG_START( ch2001, cxgz80_state ) +static MACHINE_CONFIG_START( ch2001 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_8MHz/2) @@ -445,5 +445,5 @@ ROM_END Drivers ******************************************************************************/ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY, FULLNAME, FLAGS */ -CONS( 1984, ch2001, 0, 0, ch2001, ch2001, driver_device, 0, "CXG", "Chess 2001", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +CONS( 1984, ch2001, 0, 0, ch2001, ch2001, cxgz80_state, 0, "CXG", "Chess 2001", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) diff --git a/src/mame/drivers/cxhumax.cpp b/src/mame/drivers/cxhumax.cpp index d09cf159c53..b30b986caab 100644 --- a/src/mame/drivers/cxhumax.cpp +++ b/src/mame/drivers/cxhumax.cpp @@ -1053,7 +1053,7 @@ void cxhumax_state::machine_reset() memset(m_gxa_cmd_regs,0,sizeof(m_gxa_cmd_regs)); } -static MACHINE_CONFIG_START( cxhumax, cxhumax_state ) +static MACHINE_CONFIG_START( cxhumax ) MCFG_CPU_ADD("maincpu", ARM920T, 180000000) // CX24175 (RevC up?) MCFG_CPU_PROGRAM_MAP(cxhumax_map) @@ -1084,5 +1084,5 @@ ROM_START( hxhdci2k ) ROM_LOAD( "24lc64.bin", 0x0000, 0x2000, NO_DUMP) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -SYST( 2008, hxhdci2k, 0, 0, cxhumax, cxhumax, driver_device, 0, "HUMAX", "HUMAX HDCI-2000", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +SYST( 2008, hxhdci2k, 0, 0, cxhumax, cxhumax, cxhumax_state, 0, "HUMAX", "HUMAX HDCI-2000", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/cyberbal.cpp b/src/mame/drivers/cyberbal.cpp index 8780d701976..99e897389c8 100644 --- a/src/mame/drivers/cyberbal.cpp +++ b/src/mame/drivers/cyberbal.cpp @@ -395,7 +395,7 @@ GFXDECODE_END * *************************************/ -static MACHINE_CONFIG_START( cyberbal, cyberbal_state ) +static MACHINE_CONFIG_START( cyberbal ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, ATARI_CLOCK_14MHz/2) @@ -483,7 +483,7 @@ static MACHINE_CONFIG_DERIVED( cyberbalt, cyberbal ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( cyberbal2p, cyberbal_state ) +static MACHINE_CONFIG_START( cyberbal2p ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, ATARI_CLOCK_14MHz/2) @@ -1017,14 +1017,14 @@ DRIVER_INIT_MEMBER(cyberbal_state,cyberbalt) * *************************************/ -GAMEL(1988, cyberbal, 0, cyberbal, cyberbal, driver_device, 0, ROT0, "Atari Games", "Cyberball (rev 4)", 0, layout_dualhsxs ) -GAMEL(1988, cyberbal2, cyberbal, cyberbal, cyberbal, driver_device, 0, ROT0, "Atari Games", "Cyberball (rev 2)", 0, layout_dualhsxs ) -GAMEL(1988, cyberbalp, cyberbal, cyberbal, cyberbal, driver_device, 0, ROT0, "Atari Games", "Cyberball (prototype)", 0, layout_dualhsxs ) +GAMEL(1988, cyberbal, 0, cyberbal, cyberbal, cyberbal_state, 0, ROT0, "Atari Games", "Cyberball (rev 4)", 0, layout_dualhsxs ) +GAMEL(1988, cyberbal2, cyberbal, cyberbal, cyberbal, cyberbal_state, 0, ROT0, "Atari Games", "Cyberball (rev 2)", 0, layout_dualhsxs ) +GAMEL(1988, cyberbalp, cyberbal, cyberbal, cyberbal, cyberbal_state, 0, ROT0, "Atari Games", "Cyberball (prototype)", 0, layout_dualhsxs ) -GAME( 1989, cyberbal2p, cyberbal, cyberbal2p, cyberbal2p, driver_device, 0, ROT0, "Atari Games", "Cyberball 2072 (2 player, rev 4)", 0 ) -GAME( 1989, cyberbal2p3, cyberbal, cyberbal2p, cyberbal2p, driver_device, 0, ROT0, "Atari Games", "Cyberball 2072 (2 player, rev 3)", 0 ) -GAME( 1989, cyberbal2p2, cyberbal, cyberbal2p, cyberbal2p, driver_device, 0, ROT0, "Atari Games", "Cyberball 2072 (2 player, rev 2)", 0 ) -GAME( 1989, cyberbal2p1, cyberbal, cyberbal2p, cyberbal2p, driver_device, 0, ROT0, "Atari Games", "Cyberball 2072 (2 player, rev 1)", 0 ) +GAME( 1989, cyberbal2p, cyberbal, cyberbal2p, cyberbal2p, cyberbal_state, 0, ROT0, "Atari Games", "Cyberball 2072 (2 player, rev 4)", 0 ) +GAME( 1989, cyberbal2p3, cyberbal, cyberbal2p, cyberbal2p, cyberbal_state, 0, ROT0, "Atari Games", "Cyberball 2072 (2 player, rev 3)", 0 ) +GAME( 1989, cyberbal2p2, cyberbal, cyberbal2p, cyberbal2p, cyberbal_state, 0, ROT0, "Atari Games", "Cyberball 2072 (2 player, rev 2)", 0 ) +GAME( 1989, cyberbal2p1, cyberbal, cyberbal2p, cyberbal2p, cyberbal_state, 0, ROT0, "Atari Games", "Cyberball 2072 (2 player, rev 1)", 0 ) -GAMEL(1989, cyberbalt, cyberbal, cyberbalt, cyberbal, cyberbal_state, cyberbalt, ROT0, "Atari Games", "Tournament Cyberball 2072 (rev 2)", 0, layout_dualhsxs ) -GAMEL(1989, cyberbalt1, cyberbal, cyberbalt, cyberbal, cyberbal_state, cyberbalt, ROT0, "Atari Games", "Tournament Cyberball 2072 (rev 1)", 0, layout_dualhsxs ) +GAMEL(1989, cyberbalt, cyberbal, cyberbalt, cyberbal, cyberbal_state, cyberbalt, ROT0, "Atari Games", "Tournament Cyberball 2072 (rev 2)", 0, layout_dualhsxs ) +GAMEL(1989, cyberbalt1, cyberbal, cyberbalt, cyberbal, cyberbal_state, cyberbalt, ROT0, "Atari Games", "Tournament Cyberball 2072 (rev 1)", 0, layout_dualhsxs ) diff --git a/src/mame/drivers/cybertnk.cpp b/src/mame/drivers/cybertnk.cpp index b33b2231b5e..27893cc5a88 100644 --- a/src/mame/drivers/cybertnk.cpp +++ b/src/mame/drivers/cybertnk.cpp @@ -831,7 +831,7 @@ GFXDECODE_END */ -static MACHINE_CONFIG_START( cybertnk, cybertnk_state ) +static MACHINE_CONFIG_START( cybertnk ) MCFG_CPU_ADD("maincpu", M68000,XTAL_20MHz/2) MCFG_CPU_PROGRAM_MAP(master_mem) MCFG_CPU_VBLANK_INT_DRIVER("lscreen", cybertnk_state, irq1_line_assert) diff --git a/src/mame/drivers/cybiko.cpp b/src/mame/drivers/cybiko.cpp index a9989184623..67b986f7312 100644 --- a/src/mame/drivers/cybiko.cpp +++ b/src/mame/drivers/cybiko.cpp @@ -384,7 +384,7 @@ static DEVICE_INPUT_DEFAULTS_START( debug_serial ) // set up debug port to defau DEVICE_INPUT_DEFAULTS( "RS232_STOPBITS", 0xff, RS232_STOPBITS_1 ) DEVICE_INPUT_DEFAULTS_END -static MACHINE_CONFIG_START( cybikov1, cybiko_state ) +static MACHINE_CONFIG_START( cybikov1 ) // cpu MCFG_CPU_ADD( "maincpu", H8S2241, XTAL_11_0592MHz ) MCFG_CPU_PROGRAM_MAP( cybikov1_mem ) @@ -397,8 +397,8 @@ static MACHINE_CONFIG_START( cybikov1, cybiko_state ) // screen MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE( 60 ) - MCFG_SCREEN_SIZE( HD66421_WIDTH, HD66421_HEIGHT ) - MCFG_SCREEN_VISIBLE_AREA( 0, HD66421_WIDTH - 1, 0, HD66421_HEIGHT - 1 ) + MCFG_SCREEN_SIZE( hd66421_device::WIDTH, hd66421_device::HEIGHT ) + MCFG_SCREEN_VISIBLE_AREA( 0, hd66421_device::WIDTH - 1, 0, hd66421_device::HEIGHT - 1 ) MCFG_SCREEN_UPDATE_DEVICE("hd66421", hd66421_device, update_screen) MCFG_SCREEN_PALETTE("hd66421:palette") // video @@ -531,7 +531,7 @@ ROM_END // DRIVERS // ////////////// -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 2000, cybikov1, 0, 0, cybikov1, cybiko, cybiko_state, cybiko , "Cybiko Inc", "Cybiko Classic (V1)", MACHINE_IMPERFECT_SOUND ) -COMP( 2000, cybikov2, cybikov1, 0, cybikov2, cybiko, cybiko_state, cybiko , "Cybiko Inc", "Cybiko Classic (V2)", MACHINE_IMPERFECT_SOUND ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +COMP( 2000, cybikov1, 0, 0, cybikov1, cybiko, cybiko_state, cybiko, "Cybiko Inc", "Cybiko Classic (V1)", MACHINE_IMPERFECT_SOUND ) +COMP( 2000, cybikov2, cybikov1, 0, cybikov2, cybiko, cybiko_state, cybiko, "Cybiko Inc", "Cybiko Classic (V2)", MACHINE_IMPERFECT_SOUND ) COMP( 2001, cybikoxt, cybikov1, 0, cybikoxt, cybikoxt, cybiko_state, cybikoxt, "Cybiko Inc", "Cybiko Xtreme", MACHINE_IMPERFECT_SOUND ) diff --git a/src/mame/drivers/cyclemb.cpp b/src/mame/drivers/cyclemb.cpp index 449366280b4..99ba6e1790e 100644 --- a/src/mame/drivers/cyclemb.cpp +++ b/src/mame/drivers/cyclemb.cpp @@ -917,7 +917,7 @@ static GFXDECODE_START( cyclemb ) GFXDECODE_ENTRY( "sprite_data", 0, spritelayout_32x32, 0x00, 0x40 ) GFXDECODE_END -static MACHINE_CONFIG_START( cyclemb, cyclemb_state ) +static MACHINE_CONFIG_START( cyclemb ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_18MHz/3) // Z8400BPS MCFG_CPU_PROGRAM_MAP(cyclemb_map) @@ -1052,5 +1052,5 @@ DRIVER_INIT_MEMBER(cyclemb_state,skydest) m_dsw_pc_hack = 0x554; } -GAME( 1984, cyclemb, 0, cyclemb, cyclemb, cyclemb_state, cyclemb, ROT0, "Taito Corporation", "Cycle Maabou (Japan)", MACHINE_NO_COCKTAIL | MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1984, cyclemb, 0, cyclemb, cyclemb, cyclemb_state, cyclemb, ROT0, "Taito Corporation", "Cycle Maabou (Japan)", MACHINE_NO_COCKTAIL | MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) GAME( 1985, skydest, 0, skydest, skydest, cyclemb_state, skydest, ROT0, "Taito Corporation", "Sky Destroyer (Japan)", MACHINE_NO_COCKTAIL | MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/czk80.cpp b/src/mame/drivers/czk80.cpp index af850bfa7d1..0b9ed9622cb 100644 --- a/src/mame/drivers/czk80.cpp +++ b/src/mame/drivers/czk80.cpp @@ -69,7 +69,7 @@ public: DECLARE_READ8_MEMBER(port81_r); DECLARE_READ8_MEMBER(portc0_r); DECLARE_WRITE8_MEMBER(port40_w); - DECLARE_WRITE8_MEMBER(kbd_put); + void kbd_put(u8 data); DECLARE_WRITE_LINE_MEMBER(ctc_z0_w); DECLARE_WRITE_LINE_MEMBER(ctc_z1_w); DECLARE_WRITE_LINE_MEMBER(ctc_z2_w); @@ -183,12 +183,12 @@ static SLOT_INTERFACE_START( czk80_floppies ) SLOT_INTERFACE( "525dd", FLOPPY_525_DD ) SLOT_INTERFACE_END -WRITE8_MEMBER( czk80_state::kbd_put ) +void czk80_state::kbd_put(u8 data) { m_term_data = data; } -static MACHINE_CONFIG_START( czk80, czk80_state ) +static MACHINE_CONFIG_START( czk80 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_16MHz / 4) MCFG_CPU_PROGRAM_MAP(czk80_mem) @@ -197,7 +197,7 @@ static MACHINE_CONFIG_START( czk80, czk80_state ) MCFG_MACHINE_RESET_OVERRIDE(czk80_state, czk80) MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0) - MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(czk80_state, kbd_put)) + MCFG_GENERIC_TERMINAL_KEYBOARD_CB(PUT(czk80_state, kbd_put)) MCFG_UPD765A_ADD("fdc", false, true) MCFG_FLOPPY_DRIVE_ADD("fdc:0", czk80_floppies, "525dd", floppy_image_device::default_floppy_formats) @@ -226,5 +226,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 198?, czk80, 0, 0, czk80, czk80, czk80_state, czk80, "", "CZK-80", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 198?, czk80, 0, 0, czk80, czk80, czk80_state, czk80, "", "CZK-80", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW ) diff --git a/src/mame/drivers/d6800.cpp b/src/mame/drivers/d6800.cpp index d3d91ca9c92..974fed413dd 100644 --- a/src/mame/drivers/d6800.cpp +++ b/src/mame/drivers/d6800.cpp @@ -379,7 +379,7 @@ QUICKLOAD_LOAD_MEMBER( d6800_state, d6800 ) return result; } -static MACHINE_CONFIG_START( d6800, d6800_state ) +static MACHINE_CONFIG_START( d6800 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",M6800, XTAL_4MHz/4) MCFG_CPU_PROGRAM_MAP(d6800_map) @@ -433,5 +433,5 @@ ROM_START( d6800 ) ROMX_LOAD( "d6800d.bin", 0xc000, 0x0800, CRC(ded5712f) SHA1(f594f313a74d7135c9fdd0bcb0093fc5771a9b7d), ROM_BIOS(2) ) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS, INIT COMPANY FULLNAME FLAGS */ -COMP( 1979, d6800, 0, 0, d6800, d6800, driver_device, 0, "Michael Bauer", "Dream 6800", 0 ) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 1979, d6800, 0, 0, d6800, d6800, d6800_state, 0, "Michael Bauer", "Dream 6800", 0 ) diff --git a/src/mame/drivers/d6809.cpp b/src/mame/drivers/d6809.cpp index 1453f89bcef..a433c42684e 100644 --- a/src/mame/drivers/d6809.cpp +++ b/src/mame/drivers/d6809.cpp @@ -100,7 +100,7 @@ public: required_device m_maincpu; required_device m_terminal; - DECLARE_WRITE8_MEMBER( kbd_put ); + void kbd_put(u8 data); DECLARE_READ8_MEMBER( term_r ); DECLARE_WRITE8_MEMBER( term_w ); uint8_t m_term_data; @@ -134,7 +134,7 @@ static INPUT_PORTS_START( d6809 ) INPUT_PORTS_END -WRITE8_MEMBER( d6809_state::kbd_put ) +void d6809_state::kbd_put(u8 data) { m_term_data = data; } @@ -144,7 +144,7 @@ void d6809_state::machine_reset() } -static MACHINE_CONFIG_START( d6809, d6809_state ) +static MACHINE_CONFIG_START( d6809 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",M6809E, XTAL_4MHz) MCFG_CPU_PROGRAM_MAP(d6809_mem) @@ -152,7 +152,7 @@ static MACHINE_CONFIG_START( d6809, d6809_state ) /* video hardware */ MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0) - MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(d6809_state, kbd_put)) + MCFG_GENERIC_TERMINAL_KEYBOARD_CB(PUT(d6809_state, kbd_put)) MACHINE_CONFIG_END /* ROM definition */ @@ -163,5 +163,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1983, d6809, 0, 0, d6809, d6809, driver_device, 0, "Dunfield", "6809 Portable", MACHINE_IS_SKELETON | MACHINE_NO_SOUND_HW) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1983, d6809, 0, 0, d6809, d6809, d6809_state, 0, "Dunfield", "6809 Portable", MACHINE_IS_SKELETON | MACHINE_NO_SOUND_HW ) diff --git a/src/mame/drivers/d9final.cpp b/src/mame/drivers/d9final.cpp index 7223405f627..66db5af67b6 100644 --- a/src/mame/drivers/d9final.cpp +++ b/src/mame/drivers/d9final.cpp @@ -293,7 +293,7 @@ void d9final_state::machine_start() membank("bank1")->set_entry(0); } -static MACHINE_CONFIG_START( d9final, d9final_state ) +static MACHINE_CONFIG_START( d9final ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 24000000/4)/* ? MHz */ MCFG_CPU_PROGRAM_MAP(d9final_map) @@ -340,4 +340,4 @@ ROM_END -GAME( 1992, d9final, 0, d9final, d9final, driver_device, 0, ROT0, "Excellent System", "Dream 9 Final (v2.24)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, d9final, 0, d9final, d9final, d9final_state, 0, ROT0, "Excellent System", "Dream 9 Final (v2.24)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/dacholer.cpp b/src/mame/drivers/dacholer.cpp index 6c328d238b7..4c8163a5a27 100644 --- a/src/mame/drivers/dacholer.cpp +++ b/src/mame/drivers/dacholer.cpp @@ -648,7 +648,7 @@ PALETTE_INIT_MEMBER(dacholer_state, dacholer) } /* note: clocks are taken from itaten sound reference recording */ -static MACHINE_CONFIG_START( dacholer, dacholer_state ) +static MACHINE_CONFIG_START( dacholer ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_16MHz/4) /* ? */ @@ -692,7 +692,7 @@ static MACHINE_CONFIG_START( dacholer, dacholer_state ) MCFG_SOUND_ADD("msm", MSM5205, XTAL_384kHz) MCFG_MSM5205_VCLK_CB(WRITELINE(dacholer_state, adpcm_int)) /* interrupt function */ - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S96_4B) /* 1 / 96 = 3906.25Hz playback - guess */ + MCFG_MSM5205_PRESCALER_SELECTOR(S96_4B) /* 1 / 96 = 3906.25Hz playback - guess */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30) MACHINE_CONFIG_END @@ -847,6 +847,6 @@ ROM_START( itaten ) ROM_END -GAME( 1983, dacholer, 0, dacholer, dacholer, driver_device, 0, ROT0, "Nichibutsu", "Dacholer", MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE ) -GAME( 1983, kickboy, 0, dacholer, kickboy, driver_device, 0, ROT0, "Nichibutsu", "Kick Boy", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, itaten, 0, itaten, itaten, driver_device, 0, ROT0, "Nichibutsu / Alice", "Itazura Tenshi (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, dacholer, 0, dacholer, dacholer, dacholer_state, 0, ROT0, "Nichibutsu", "Dacholer", MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE ) +GAME( 1983, kickboy, 0, dacholer, kickboy, dacholer_state, 0, ROT0, "Nichibutsu", "Kick Boy", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, itaten, 0, itaten, itaten, dacholer_state, 0, ROT0, "Nichibutsu / Alice", "Itazura Tenshi (Japan)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/dai.cpp b/src/mame/drivers/dai.cpp index 9975834117a..3fa1cf8da01 100644 --- a/src/mame/drivers/dai.cpp +++ b/src/mame/drivers/dai.cpp @@ -185,7 +185,7 @@ static GFXDECODE_START( dai ) GFXDECODE_END /* machine definition */ -static MACHINE_CONFIG_START( dai, dai_state ) +static MACHINE_CONFIG_START( dai ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8080, 2000000) MCFG_CPU_PROGRAM_MAP(dai_mem) @@ -245,7 +245,6 @@ static MACHINE_CONFIG_START( dai, dai_state ) MCFG_SOFTWARE_LIST_ADD("cass_list", "dai_cass") MACHINE_CONFIG_END -#define io_dai io_NULL ROM_START(dai) ROM_REGION(0x14000,"maincpu",0) @@ -258,5 +257,5 @@ ROM_START(dai) ROM_LOAD ("nch.bin", 0x0000, 0x1000, CRC(a9f5b30b) SHA1(24119b2984ab4e50dc0dabae1065ff6d6c1f237d)) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ -COMP( 1978, dai, 0, 0, dai, dai, driver_device, 0, "Data Applications International", "DAI Personal Computer", 0) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME */ +COMP( 1978, dai, 0, 0, dai, dai, dai_state, 0, "Data Applications International", "DAI Personal Computer", 0) diff --git a/src/mame/drivers/dai3wksi.cpp b/src/mame/drivers/dai3wksi.cpp index 664b9e7a421..f0c0975dfe2 100644 --- a/src/mame/drivers/dai3wksi.cpp +++ b/src/mame/drivers/dai3wksi.cpp @@ -400,7 +400,7 @@ void dai3wksi_state::machine_reset() } -static MACHINE_CONFIG_START( dai3wksi, dai3wksi_state ) +static MACHINE_CONFIG_START( dai3wksi ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_10MHz/4) @@ -551,4 +551,4 @@ ROM_END * *************************************/ -GAME( 1979, dai3wksi, 0, dai3wksi, dai3wksi, driver_device, 0, ROT270, "Sun Electronics", "Dai San Wakusei Meteor (Japan)", MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1979, dai3wksi, 0, dai3wksi, dai3wksi, dai3wksi_state, 0, ROT270, "Sun Electronics", "Dai San Wakusei Meteor (Japan)", MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/dambustr.cpp b/src/mame/drivers/dambustr.cpp index a1273562894..90351597714 100644 --- a/src/mame/drivers/dambustr.cpp +++ b/src/mame/drivers/dambustr.cpp @@ -251,7 +251,7 @@ DRIVER_INIT_MEMBER(dambustr_state,dambustr) -static MACHINE_CONFIG_START( dambustr, dambustr_state ) +static MACHINE_CONFIG_START( dambustr ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 18432000/6) /* 3.072 MHz */ MCFG_CPU_PROGRAM_MAP(dambustr_map) @@ -370,6 +370,6 @@ ROM_START( dambustruk ) ROM_END -GAME( 1981, dambustr, 0, dambustr, dambustr, dambustr_state, dambustr, ROT90, "South West Research", "Dambusters (US, set 1)", 0 ) -GAME( 1981, dambustra, dambustr, dambustr, dambustr, dambustr_state, dambustr, ROT90, "South West Research", "Dambusters (US, set 2)", 0 ) -GAME( 1981, dambustruk, dambustr, dambustr, dambustruk, dambustr_state, dambustr, ROT90, "South West Research", "Dambusters (UK)", 0 ) +GAME( 1981, dambustr, 0, dambustr, dambustr, dambustr_state, dambustr, ROT90, "South West Research", "Dambusters (US, set 1)", 0 ) +GAME( 1981, dambustra, dambustr, dambustr, dambustr, dambustr_state, dambustr, ROT90, "South West Research", "Dambusters (US, set 2)", 0 ) +GAME( 1981, dambustruk, dambustr, dambustr, dambustruk, dambustr_state, dambustr, ROT90, "South West Research", "Dambusters (UK)", 0 ) diff --git a/src/mame/drivers/darius.cpp b/src/mame/drivers/darius.cpp index 12a4f4b8ec9..639135273d7 100644 --- a/src/mame/drivers/darius.cpp +++ b/src/mame/drivers/darius.cpp @@ -734,7 +734,7 @@ void darius_state::machine_reset() } -static MACHINE_CONFIG_START( darius, darius_state ) +static MACHINE_CONFIG_START( darius ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz/2) /* 8 MHz */ @@ -823,7 +823,7 @@ static MACHINE_CONFIG_START( darius, darius_state ) MCFG_SOUND_ADD("msm", MSM5205, XTAL_384kHz) MCFG_MSM5205_VCLK_CB(WRITELINE(darius_state, darius_adpcm_int)) /* interrupt function */ - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S48_4B) /* 8KHz */ + MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) /* 8KHz */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "msm5205.l", 1.0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "msm5205.r", 1.0) @@ -1160,8 +1160,8 @@ ROM_START( dariuse ) ROM_END -GAME( 1986, darius, 0, darius, darius, driver_device, 0, ROT0, "Taito Corporation Japan", "Darius (World, rev 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, dariusu, darius, darius, dariusu, driver_device, 0, ROT0, "Taito America Corporation", "Darius (US, rev 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, dariusj, darius, darius, dariusj, driver_device, 0, ROT0, "Taito Corporation", "Darius (Japan, rev 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, dariuso, darius, darius, dariusj, driver_device, 0, ROT0, "Taito Corporation", "Darius (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, dariuse, darius, darius, dariusu, driver_device, 0, ROT0, "Taito Corporation", "Darius Extra Version (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, darius, 0, darius, darius, darius_state, 0, ROT0, "Taito Corporation Japan", "Darius (World, rev 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, dariusu, darius, darius, dariusu, darius_state, 0, ROT0, "Taito America Corporation", "Darius (US, rev 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, dariusj, darius, darius, dariusj, darius_state, 0, ROT0, "Taito Corporation", "Darius (Japan, rev 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, dariuso, darius, darius, dariusj, darius_state, 0, ROT0, "Taito Corporation", "Darius (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, dariuse, darius, darius, dariusu, darius_state, 0, ROT0, "Taito Corporation", "Darius Extra Version (Japan)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/darkmist.cpp b/src/mame/drivers/darkmist.cpp index e14f1e4ebd6..e2b454a7513 100644 --- a/src/mame/drivers/darkmist.cpp +++ b/src/mame/drivers/darkmist.cpp @@ -237,7 +237,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(darkmist_state::scanline) -static MACHINE_CONFIG_START( darkmist, darkmist_state ) +static MACHINE_CONFIG_START( darkmist ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80,4000000) /* ? MHz */ MCFG_CPU_PROGRAM_MAP(memmap) diff --git a/src/mame/drivers/darkseal.cpp b/src/mame/drivers/darkseal.cpp index b2c8c08d9ee..b7d67a87326 100644 --- a/src/mame/drivers/darkseal.cpp +++ b/src/mame/drivers/darkseal.cpp @@ -228,7 +228,7 @@ GFXDECODE_END /******************************************************************************/ -static MACHINE_CONFIG_START( darkseal, darkseal_state ) +static MACHINE_CONFIG_START( darkseal ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_24MHz/2) /* Custom chip 59 */ @@ -296,10 +296,10 @@ static MACHINE_CONFIG_START( darkseal, darkseal_state ) MCFG_SOUND_ROUTE(0, "mono", 0.55) MCFG_SOUND_ROUTE(1, "mono", 0.55) - MCFG_OKIM6295_ADD("oki1", XTAL_32_22MHz/32, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki1", XTAL_32_22MHz/32, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MCFG_OKIM6295_ADD("oki2", XTAL_32_22MHz/16, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki2", XTAL_32_22MHz/16, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60) MACHINE_CONFIG_END diff --git a/src/mame/drivers/daruma.cpp b/src/mame/drivers/daruma.cpp index 5290821c49a..49e5f399621 100644 --- a/src/mame/drivers/daruma.cpp +++ b/src/mame/drivers/daruma.cpp @@ -140,7 +140,7 @@ static INPUT_PORTS_START( daruma ) INPUT_PORTS_END -static MACHINE_CONFIG_START( daruma, daruma_state ) +static MACHINE_CONFIG_START( daruma ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I80C32,11059200) //verified on pcb MCFG_CPU_PROGRAM_MAP(mem_prg) @@ -166,5 +166,5 @@ ROM_START( ds348 ) ROM_LOAD( "daruma_ds348_v1_1.rom", 0x0000, 0x10000, CRC(10bf9036) SHA1(d654a13bc582f5384e759ec6fe5309a642bd8e18) ) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1998, ds348, 0, 0, daruma, daruma, driver_device, 0, "Sigtron Daruma", "Print Plus DS348 - Dot matrix printer", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1998, ds348, 0, 0, daruma, daruma, daruma_state, 0, "Sigtron Daruma", "Print Plus DS348 - Dot matrix printer", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) diff --git a/src/mame/drivers/dassault.cpp b/src/mame/drivers/dassault.cpp index 5248221a79f..16f2dbffaa1 100644 --- a/src/mame/drivers/dassault.cpp +++ b/src/mame/drivers/dassault.cpp @@ -537,7 +537,7 @@ DECO16IC_BANK_CB_MEMBER(dassault_state::bank_callback) return ((bank >> 4) & 0xf) << 12; } -static MACHINE_CONFIG_START( dassault, dassault_state ) +static MACHINE_CONFIG_START( dassault ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_28MHz/2) /* 14MHz - Accurate */ @@ -628,11 +628,11 @@ static MACHINE_CONFIG_START( dassault, dassault_state ) MCFG_SOUND_ROUTE(0, "lspeaker", 0.45) MCFG_SOUND_ROUTE(1, "rspeaker", 0.45) - MCFG_OKIM6295_ADD("oki1", XTAL_32_22MHz/32, OKIM6295_PIN7_HIGH) // verified + MCFG_OKIM6295_ADD("oki1", XTAL_32_22MHz/32, PIN7_HIGH) // verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.50) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.50) - MCFG_OKIM6295_ADD("oki2", XTAL_32_22MHz/16, OKIM6295_PIN7_HIGH) // verified + MCFG_OKIM6295_ADD("oki2", XTAL_32_22MHz/16, PIN7_HIGH) // verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.25) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.25) MACHINE_CONFIG_END diff --git a/src/mame/drivers/datum.cpp b/src/mame/drivers/datum.cpp index d37ebeb4514..aee05bd229b 100644 --- a/src/mame/drivers/datum.cpp +++ b/src/mame/drivers/datum.cpp @@ -177,7 +177,7 @@ WRITE8_MEMBER( datum_state::pb_w ) } -static MACHINE_CONFIG_START( datum, datum_state ) +static MACHINE_CONFIG_START( datum ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",M6802, XTAL_4MHz) // internally divided to 1 MHz MCFG_CPU_PROGRAM_MAP(datum_mem) @@ -207,5 +207,5 @@ ROM_START( datum ) ROM_LOAD( "datum.bin", 0x0000, 0x0800, BAD_DUMP CRC(6fb11628) SHA1(8a77a846b62eee0d12848da76e16b4c66ef445d8) ) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1982, datum, 0, 0, datum, datum, driver_device, 0, "Gammatron", "Datum", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW ) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 1982, datum, 0, 0, datum, datum, datum_state, 0, "Gammatron", "Datum", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW ) diff --git a/src/mame/drivers/dblcrown.cpp b/src/mame/drivers/dblcrown.cpp index e4fe267f8fd..90489181cbe 100644 --- a/src/mame/drivers/dblcrown.cpp +++ b/src/mame/drivers/dblcrown.cpp @@ -591,7 +591,7 @@ It needs at least 64 instances because 0xa05b will be eventually nuked by the vb } -static MACHINE_CONFIG_START( dblcrown, dblcrown_state ) +static MACHINE_CONFIG_START( dblcrown ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, CPU_CLOCK) @@ -653,5 +653,5 @@ ROM_START( dblcrown ) ROM_END -/* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS LAYOUT */ -GAMEL( 1997, dblcrown, 0, dblcrown, dblcrown, driver_device, 0, ROT0, "Cadence Technology", "Double Crown (v1.0.3)", MACHINE_IMPERFECT_GRAPHICS, layout_dblcrown ) // 1997 DYNA copyright in tile GFX +/* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS LAYOUT */ +GAMEL( 1997, dblcrown, 0, dblcrown, dblcrown, dblcrown_state, 0, ROT0, "Cadence Technology", "Double Crown (v1.0.3)", MACHINE_IMPERFECT_GRAPHICS, layout_dblcrown ) // 1997 DYNA copyright in tile GFX diff --git a/src/mame/drivers/dblewing.cpp b/src/mame/drivers/dblewing.cpp index f5d0265696c..afb2c969b95 100644 --- a/src/mame/drivers/dblewing.cpp +++ b/src/mame/drivers/dblewing.cpp @@ -367,7 +367,7 @@ void dblewing_state::dblewing_sound_cb( address_space &space, uint16_t data, uin m_audiocpu->set_input_line(0, (m_sound_irq != 0) ? ASSERT_LINE : CLEAR_LINE); } -static MACHINE_CONFIG_START( dblewing, dblewing_state ) +static MACHINE_CONFIG_START( dblewing ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_28MHz/2) /* DE102 */ @@ -429,7 +429,7 @@ static MACHINE_CONFIG_START( dblewing, dblewing_state ) MCFG_YM2151_IRQ_HANDLER(WRITELINE(dblewing_state, sound_irq)) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) - MCFG_OKIM6295_ADD("oki", XTAL_28MHz/28, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", XTAL_28MHz/28, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) MACHINE_CONFIG_END diff --git a/src/mame/drivers/dbz.cpp b/src/mame/drivers/dbz.cpp index 3a7b9deab8d..e51979e3d70 100644 --- a/src/mame/drivers/dbz.cpp +++ b/src/mame/drivers/dbz.cpp @@ -320,7 +320,7 @@ void dbz_state::machine_reset() m_control = 0; } -static MACHINE_CONFIG_START( dbz, dbz_state ) +static MACHINE_CONFIG_START( dbz ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 16000000) @@ -379,7 +379,7 @@ static MACHINE_CONFIG_START( dbz, dbz_state ) MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) - MCFG_OKIM6295_ADD("oki", 1056000, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", 1056000, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) MACHINE_CONFIG_END @@ -586,6 +586,6 @@ DRIVER_INIT_MEMBER(dbz_state,dbz2) ROM[0xae8/2] = 0x4e71; /* 0x005e */ } -GAME( 1993, dbz, 0, dbz, dbz, dbz_state, dbz, ROT0, "Banpresto", "Dragonball Z (rev B)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // crashes MAME in tile/PSAC2 ROM test -GAME( 1993, dbza, dbz, dbz, dbza, dbz_state, dbza, ROT0, "Banpresto", "Dragonball Z (rev A)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1993, dbz, 0, dbz, dbz, dbz_state, dbz, ROT0, "Banpresto", "Dragonball Z (rev B)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // crashes MAME in tile/PSAC2 ROM test +GAME( 1993, dbza, dbz, dbz, dbza, dbz_state, dbza, ROT0, "Banpresto", "Dragonball Z (rev A)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) GAME( 1994, dbz2, 0, dbz, dbz2, dbz_state, dbz2, ROT0, "Banpresto", "Dragonball Z 2 - Super Battle", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // crashes MAME in tile/PSAC2 ROM test diff --git a/src/mame/drivers/dccons.cpp b/src/mame/drivers/dccons.cpp index f12f7a73951..dc5b8cfb785 100644 --- a/src/mame/drivers/dccons.cpp +++ b/src/mame/drivers/dccons.cpp @@ -574,7 +574,7 @@ static MACHINE_CONFIG_FRAGMENT( gdrom_config ) MCFG_SOUND_ROUTE(1, "^^^^rspeaker", 1.0) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( dc, dc_cons_state ) +static MACHINE_CONFIG_START( dc ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", SH4LE, CPU_CLOCK) MCFG_SH4_MD0(1) @@ -700,8 +700,8 @@ ROM_START( dcdev ) ROM_LOAD( "hkt-0120-flash.bin", 0x000000, 0x020000, CRC(7784c304) SHA1(31ef57f550d8cd13e40263cbc657253089e53034) ) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ -CONS( 1999, dc, dcjp, 0, dc, dc, dc_cons_state, dcus, "Sega", "Dreamcast (USA, NTSC)", MACHINE_NOT_WORKING ) -CONS( 1998, dcjp, 0, 0, dc, dc, dc_cons_state, dcjp, "Sega", "Dreamcast (Japan, NTSC)", MACHINE_NOT_WORKING ) -CONS( 1999, dceu, dcjp, 0, dc, dc, dc_cons_state, dcus, "Sega", "Dreamcast (Europe, PAL)", MACHINE_NOT_WORKING ) -CONS( 1998, dcdev, 0, 0, dc, dc, dc_cons_state, dc, "Sega", "HKT-0120 Sega Dreamcast Development Box", MACHINE_NOT_WORKING ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME */ +CONS( 1999, dc, dcjp, 0, dc, dc, dc_cons_state, dcus, "Sega", "Dreamcast (USA, NTSC)", MACHINE_NOT_WORKING ) +CONS( 1998, dcjp, 0, 0, dc, dc, dc_cons_state, dcjp, "Sega", "Dreamcast (Japan, NTSC)", MACHINE_NOT_WORKING ) +CONS( 1999, dceu, dcjp, 0, dc, dc, dc_cons_state, dcus, "Sega", "Dreamcast (Europe, PAL)", MACHINE_NOT_WORKING ) +CONS( 1998, dcdev, 0, 0, dc, dc, dc_cons_state, dc, "Sega", "HKT-0120 Sega Dreamcast Development Box", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/dcheese.cpp b/src/mame/drivers/dcheese.cpp index 2d3a4d0b93d..b31ee921a25 100644 --- a/src/mame/drivers/dcheese.cpp +++ b/src/mame/drivers/dcheese.cpp @@ -368,7 +368,7 @@ INPUT_PORTS_END * *************************************/ -static MACHINE_CONFIG_START( dcheese, dcheese_state ) +static MACHINE_CONFIG_START( dcheese ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, MAIN_OSC) @@ -768,12 +768,12 @@ ROM_END * *************************************/ -GAME( 1993, dcheese, 0, dcheese, dcheese, driver_device, 0, ROT90, "HAR", "Double Cheese", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, lottof2, 0, dcheese, lottof2, driver_device, 0, ROT0, "HAR", "Lotto Fun 2", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, cecmatch, 0, fredmem, fredmem, driver_device, 0, ROT0, "Coastal Amusements", "ChuckECheese's Match Game", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, fredmem, 0, fredmem, fredmem, driver_device, 0, ROT0, "Coastal Amusements", "Fred Flintstones' Memory Match (World?, Ticket version, 3/17/95)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, fredmemus, fredmem, fredmem, fredmem, driver_device, 0, ROT0, "Coastal Amusements", "Fred Flintstones' Memory Match (US, High Score version, 3/10/95)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, fredmemuk, fredmem, fredmem, fredmem, driver_device, 0, ROT0, "Coastal Amusements", "Fred Flintstones' Memory Match (UK, 3/17/95)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, fredmemj, fredmem, fredmem, fredmem, driver_device, 0, ROT0, "Coastal Amusements", "Fred Flintstones' Memory Match (Japan, High Score version, 3/20/95)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, fredmemc, fredmem, fredmem, fredmem, driver_device, 0, ROT0, "Coastal Amusements", "Fred Flintstones' Memory Match (Mandarin Chinese, 3/17/95)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, fredmesp, fredmem, fredmem, fredmem, driver_device, 0, ROT0, "Coastal Amusements", "Fred Flintstones' Memory Match (Spanish, 3/17/95)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, dcheese, 0, dcheese, dcheese, dcheese_state, 0, ROT90, "HAR", "Double Cheese", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, lottof2, 0, dcheese, lottof2, dcheese_state, 0, ROT0, "HAR", "Lotto Fun 2", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, cecmatch, 0, fredmem, fredmem, dcheese_state, 0, ROT0, "Coastal Amusements", "ChuckECheese's Match Game", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, fredmem, 0, fredmem, fredmem, dcheese_state, 0, ROT0, "Coastal Amusements", "Fred Flintstones' Memory Match (World?, Ticket version, 3/17/95)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, fredmemus, fredmem, fredmem, fredmem, dcheese_state, 0, ROT0, "Coastal Amusements", "Fred Flintstones' Memory Match (US, High Score version, 3/10/95)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, fredmemuk, fredmem, fredmem, fredmem, dcheese_state, 0, ROT0, "Coastal Amusements", "Fred Flintstones' Memory Match (UK, 3/17/95)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, fredmemj, fredmem, fredmem, fredmem, dcheese_state, 0, ROT0, "Coastal Amusements", "Fred Flintstones' Memory Match (Japan, High Score version, 3/20/95)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, fredmemc, fredmem, fredmem, fredmem, dcheese_state, 0, ROT0, "Coastal Amusements", "Fred Flintstones' Memory Match (Mandarin Chinese, 3/17/95)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, fredmesp, fredmem, fredmem, fredmem, dcheese_state, 0, ROT0, "Coastal Amusements", "Fred Flintstones' Memory Match (Spanish, 3/17/95)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/dcon.cpp b/src/mame/drivers/dcon.cpp index 7bed52872e1..a922d8e6aaa 100644 --- a/src/mame/drivers/dcon.cpp +++ b/src/mame/drivers/dcon.cpp @@ -260,7 +260,7 @@ WRITE16_MEMBER( dcon_state::layer_scroll_w ) /******************************************************************************/ -static MACHINE_CONFIG_START( dcon, dcon_state ) +static MACHINE_CONFIG_START( dcon ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 10000000) @@ -294,7 +294,7 @@ static MACHINE_CONFIG_START( dcon, dcon_state ) MCFG_YM3812_IRQ_HANDLER(DEVWRITELINE("seibu_sound", seibu_sound_device, fm_irqhandler)) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MCFG_OKIM6295_ADD("oki", 1320000, OKIM6295_PIN7_LOW) + MCFG_OKIM6295_ADD("oki", 1320000, PIN7_LOW) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40) MCFG_DEVICE_ADD("seibu_sound", SEIBU_SOUND, 0) @@ -304,7 +304,7 @@ static MACHINE_CONFIG_START( dcon, dcon_state ) MCFG_SEIBU_SOUND_YM_WRITE_CB(DEVWRITE8("ymsnd", ym3812_device, write)) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( sdgndmps, dcon_state ) +static MACHINE_CONFIG_START( sdgndmps ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 10000000) @@ -339,7 +339,7 @@ static MACHINE_CONFIG_START( sdgndmps, dcon_state ) MCFG_SOUND_ROUTE(0, "mono", 0.50) MCFG_SOUND_ROUTE(1, "mono", 0.50) - MCFG_OKIM6295_ADD("oki", 1320000, OKIM6295_PIN7_LOW) + MCFG_OKIM6295_ADD("oki", 1320000, PIN7_LOW) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40) MCFG_DEVICE_ADD("seibu_sound", SEIBU_SOUND, 0) @@ -436,4 +436,4 @@ DRIVER_INIT_MEMBER(dcon_state,sdgndmps) GAME( 1991, sdgndmps, 0, sdgndmps, sdgndmps, dcon_state, sdgndmps, ROT0, "Banpresto / Bandai", "SD Gundam Psycho Salamander no Kyoui", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1992, dcon, 0, dcon, dcon, driver_device, 0, ROT0, "Success", "D-Con", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1992, dcon, 0, dcon, dcon, dcon_state, 0, ROT0, "Success", "D-Con", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/dct11em.cpp b/src/mame/drivers/dct11em.cpp index 0c17a23b282..3420130780a 100644 --- a/src/mame/drivers/dct11em.cpp +++ b/src/mame/drivers/dct11em.cpp @@ -51,7 +51,7 @@ uint32_t dct11em_state::screen_update_dct11em(screen_device &screen, bitmap_ind1 } -static MACHINE_CONFIG_START( dct11em, dct11em_state ) +static MACHINE_CONFIG_START( dct11em ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",T11, 7500000) // 7.5MHz XTAL MCFG_T11_INITIAL_MODE(0x1403) /* according to specs */ @@ -81,5 +81,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1983, dct11em, 0, 0, dct11em, dct11em, driver_device, 0, "Digital Equipment Corporation", "DCT11-EM", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +COMP( 1983, dct11em, 0, 0, dct11em, dct11em, dct11em_state, 0, "Digital Equipment Corporation", "DCT11-EM", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) diff --git a/src/mame/drivers/dday.cpp b/src/mame/drivers/dday.cpp index ed66022be8b..0320088b53e 100644 --- a/src/mame/drivers/dday.cpp +++ b/src/mame/drivers/dday.cpp @@ -253,7 +253,7 @@ void dday_state::machine_reset() } -static MACHINE_CONFIG_START( dday, dday_state ) +static MACHINE_CONFIG_START( dday ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 2000000) /* 2 MHz ? */ diff --git a/src/mame/drivers/ddayjlc.cpp b/src/mame/drivers/ddayjlc.cpp index d8c389d181b..dd34b26f4c5 100644 --- a/src/mame/drivers/ddayjlc.cpp +++ b/src/mame/drivers/ddayjlc.cpp @@ -510,7 +510,7 @@ PALETTE_INIT_MEMBER(ddayjlc_state, ddayjlc) } } -static MACHINE_CONFIG_START( ddayjlc, ddayjlc_state ) +static MACHINE_CONFIG_START( ddayjlc ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80,12000000/3) diff --git a/src/mame/drivers/ddealer.cpp b/src/mame/drivers/ddealer.cpp index 4d3779c1684..37e017774ec 100644 --- a/src/mame/drivers/ddealer.cpp +++ b/src/mame/drivers/ddealer.cpp @@ -615,7 +615,7 @@ INTERRUPT_GEN_MEMBER(ddealer_state::interrupt) device.execute().set_input_line(4, HOLD_LINE); } -static MACHINE_CONFIG_START( ddealer, ddealer_state ) +static MACHINE_CONFIG_START( ddealer ) MCFG_CPU_ADD("maincpu" , M68000, XTAL_16MHz/2) /* 8MHz */ MCFG_CPU_PROGRAM_MAP(ddealer) diff --git a/src/mame/drivers/ddenlovr.cpp b/src/mame/drivers/ddenlovr.cpp index 50c301b6a37..fca54f35cc7 100644 --- a/src/mame/drivers/ddenlovr.cpp +++ b/src/mame/drivers/ddenlovr.cpp @@ -4280,7 +4280,7 @@ static ADDRESS_MAP_START( htengoku_mem_map, AS_PROGRAM, 8, ddenlovr_state ) AM_RANGE( 0x8000, 0x81ff ) AM_WRITE(yarunara_palette_w) // Palette or RTC ADDRESS_MAP_END -static MACHINE_CONFIG_START( htengoku, ddenlovr_state ) +static MACHINE_CONFIG_START( htengoku ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80,20000000 / 4) @@ -9614,7 +9614,7 @@ MACHINE_START_MEMBER(ddenlovr_state,sryudens) Don Den Lover Vol.1 ***************************************************************************/ -static MACHINE_CONFIG_START( ddenlovr, ddenlovr_state ) +static MACHINE_CONFIG_START( ddenlovr ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",M68000, XTAL_24MHz / 2) @@ -9647,7 +9647,7 @@ static MACHINE_CONFIG_START( ddenlovr, ddenlovr_state ) MCFG_SOUND_ADD("aysnd", YMZ284, XTAL_28_63636MHz / 16) // or /8 ? MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30) - MCFG_OKIM6295_ADD("oki", XTAL_28_63636MHz / 28, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", XTAL_28_63636MHz / 28, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) /* devices */ @@ -9736,7 +9736,7 @@ WRITE_LINE_MEMBER(ddenlovr_state::quizchq_rtc_irq ) m_maincpu->set_input_line_and_vector(0, HOLD_LINE, 0xfc); } -static MACHINE_CONFIG_START( quizchq, ddenlovr_state ) +static MACHINE_CONFIG_START( quizchq ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_16MHz/2) /* Verified */ @@ -9767,7 +9767,7 @@ static MACHINE_CONFIG_START( quizchq, ddenlovr_state ) MCFG_SOUND_ADD("ym2413", YM2413, XTAL_28_63636MHz/8) // 3.579545Mhz, verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.50) - MCFG_OKIM6295_ADD("oki", XTAL_28_63636MHz/28, OKIM6295_PIN7_HIGH) // clock frequency verified 1.022MHz, pin 7 verified high + MCFG_OKIM6295_ADD("oki", XTAL_28_63636MHz/28, PIN7_HIGH) // clock frequency verified 1.022MHz, pin 7 verified high MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) /* devices */ @@ -9815,7 +9815,7 @@ WRITE_LINE_MEMBER(ddenlovr_state::mmpanic_rtc_irq ) m_maincpu->set_input_line_and_vector(0, HOLD_LINE, 0xdf); // RST 18, clock } -static MACHINE_CONFIG_START( mmpanic, ddenlovr_state ) +static MACHINE_CONFIG_START( mmpanic ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 8000000) @@ -9856,7 +9856,7 @@ static MACHINE_CONFIG_START( mmpanic, ddenlovr_state ) MCFG_SOUND_ADD("aysnd", AY8910, 3579545) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30) - MCFG_OKIM6295_ADD("oki", 1022720, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki", 1022720, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) /* devices */ @@ -9899,7 +9899,7 @@ WRITE_LINE_MEMBER(ddenlovr_state::hanakanz_rtc_irq) m_maincpu->set_input_line_and_vector(0, HOLD_LINE, 0xe2); } -static MACHINE_CONFIG_START( hanakanz, ddenlovr_state ) +static MACHINE_CONFIG_START( hanakanz ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80,8000000) // TMPZ84C015BF-8 @@ -9930,7 +9930,7 @@ static MACHINE_CONFIG_START( hanakanz, ddenlovr_state ) MCFG_SOUND_ADD("ym2413", YM2413, 3579545) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) - MCFG_OKIM6295_ADD("oki", 1022720, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki", 1022720, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) /* devices */ @@ -9945,7 +9945,7 @@ static MACHINE_CONFIG_DERIVED( hkagerou, hanakanz ) MCFG_CPU_IO_MAP(hkagerou_portmap) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( kotbinyo, ddenlovr_state ) +static MACHINE_CONFIG_START( kotbinyo ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80, XTAL_20MHz / 2) // !! KL5C80A12CFP @ 10MHz? (actually 4 times faster than Z80) !! @@ -9976,7 +9976,7 @@ static MACHINE_CONFIG_START( kotbinyo, ddenlovr_state ) MCFG_SOUND_ADD("ym2413", YM2413, XTAL_28_37516MHz / 8) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) - MCFG_OKIM6295_ADD("oki", XTAL_28_37516MHz / 28, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", XTAL_28_37516MHz / 28, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) /* devices */ @@ -10068,7 +10068,7 @@ MACHINE_CONFIG_END Mahjong Super Dai Chuuka Ken ***************************************************************************/ -static MACHINE_CONFIG_START( mjschuka, ddenlovr_state ) +static MACHINE_CONFIG_START( mjschuka ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80,XTAL_16MHz/2) @@ -10102,7 +10102,7 @@ static MACHINE_CONFIG_START( mjschuka, ddenlovr_state ) MCFG_SOUND_ADD("aysnd", AY8910, XTAL_28_63636MHz / 8) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30) - MCFG_OKIM6295_ADD("oki", XTAL_28_63636MHz / 28, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", XTAL_28_63636MHz / 28, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) /* devices */ @@ -10364,7 +10364,7 @@ MACHINE_CONFIG_END -static MACHINE_CONFIG_START( jongtei, ddenlovr_state ) +static MACHINE_CONFIG_START( jongtei ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80, XTAL_20MHz / 2) // TMPZ84C015 @@ -10395,7 +10395,7 @@ static MACHINE_CONFIG_START( jongtei, ddenlovr_state ) MCFG_SOUND_ADD("ym2413", YM2413, XTAL_28_63636MHz / 8) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) - MCFG_OKIM6295_ADD("oki", XTAL_28_63636MHz / 28, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", XTAL_28_63636MHz / 28, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) /* devices */ @@ -10416,7 +10416,7 @@ MACHINE_CONFIG_END Mahjong Seiryu Densetsu ***************************************************************************/ -static MACHINE_CONFIG_START( sryudens, ddenlovr_state ) +static MACHINE_CONFIG_START( sryudens ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80, XTAL_16MHz / 2) // ? @@ -10450,7 +10450,7 @@ static MACHINE_CONFIG_START( sryudens, ddenlovr_state ) MCFG_SOUND_ADD("aysnd", YMZ284, XTAL_28_63636MHz / 8) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30) - MCFG_OKIM6295_ADD("oki", XTAL_28_63636MHz / 28, OKIM6295_PIN7_HIGH) // ? + MCFG_OKIM6295_ADD("oki", XTAL_28_63636MHz / 28, PIN7_HIGH) // ? MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) /* devices */ @@ -10463,7 +10463,7 @@ MACHINE_CONFIG_END ***************************************************************************/ // PCB: NM7001004 -static MACHINE_CONFIG_START( janshinp, ddenlovr_state ) +static MACHINE_CONFIG_START( janshinp ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80, XTAL_16MHz / 2) @@ -10497,7 +10497,7 @@ static MACHINE_CONFIG_START( janshinp, ddenlovr_state ) MCFG_SOUND_ADD("aysnd", YMZ284, XTAL_28_63636MHz / 8) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30) - MCFG_OKIM6295_ADD("oki", XTAL_28_63636MHz / 28, OKIM6295_PIN7_HIGH) // ? + MCFG_OKIM6295_ADD("oki", XTAL_28_63636MHz / 28, PIN7_HIGH) // ? MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) /* devices */ @@ -10530,7 +10530,7 @@ MACHINE_START_MEMBER(ddenlovr_state,seljan2) MACHINE_START_CALL_MEMBER(ddenlovr); } -static MACHINE_CONFIG_START( seljan2, ddenlovr_state ) +static MACHINE_CONFIG_START( seljan2 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80, XTAL_16MHz / 2) @@ -10566,7 +10566,7 @@ static MACHINE_CONFIG_START( seljan2, ddenlovr_state ) MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(ddenlovr_state, ddenlovr_select_w)) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30) - MCFG_OKIM6295_ADD("oki", XTAL_28_63636MHz / 28, OKIM6295_PIN7_HIGH) // ? + MCFG_OKIM6295_ADD("oki", XTAL_28_63636MHz / 28, PIN7_HIGH) // ? MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) /* devices */ @@ -10580,7 +10580,7 @@ MACHINE_CONFIG_END ***************************************************************************/ -static MACHINE_CONFIG_START( daimyojn, ddenlovr_state ) +static MACHINE_CONFIG_START( daimyojn ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80, XTAL_20MHz / 2) @@ -10611,7 +10611,7 @@ static MACHINE_CONFIG_START( daimyojn, ddenlovr_state ) MCFG_SOUND_ADD("ym2413", YM2413, XTAL_28_63636MHz / 8) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) - MCFG_OKIM6295_ADD("oki", XTAL_28_63636MHz / 28, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", XTAL_28_63636MHz / 28, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) /* devices */ @@ -12919,51 +12919,51 @@ ROM_START( htengoku ) ROM_LOAD( "6510.11b", 0x80000, 0x20000, CRC(0fdd6edf) SHA1(c6870ab538987110337e6e154cba98391c68fb98) ) ROM_END -GAME( 1992, htengoku, 0, htengoku, htengoku, driver_device, 0, ROT180, "Dynax", "Hanafuda Hana Tengoku (Japan)", 0) -GAME( 1992, mmpanic, 0, mmpanic, mmpanic, driver_device, 0, ROT0, "Nakanihon / East Technology (Taito license)", "Monkey Mole Panic (USA)", MACHINE_NO_COCKTAIL ) -GAME( 1993, mjmyorn2, 0, mjmyornt, mjmyorn2, driver_device, 0, ROT0, "Dynax", "Mahjong The Mysterious Orient Part 2 - Exotic Dream", MACHINE_NO_COCKTAIL ) -GAME( 1992, mjmyornt, mjmyorn2, mjmyornt, mjmyornt, driver_device, 0, ROT0, "Dynax", "Mahjong The Mysterious Orient", MACHINE_NO_COCKTAIL ) -GAME( 1993, funkyfig, 0, funkyfig, funkyfig, driver_device, 0, ROT0, "Nakanihon / East Technology (Taito license)", "The First Funky Fighter (North America, set 1)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS ) // scrolling, priority? -GAME( 1993, funkyfiga, funkyfig, funkyfig, funkyfig, driver_device, 0, ROT0, "Nakanihon / East Technology (Taito license)", "The First Funky Fighter (North America, set 2)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1993, quizchq, 0, quizchq, quizchq, driver_device, 0, ROT0, "Nakanihon", "Quiz Channel Question (Ver 1.00) (Japan)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) -GAME( 1993, quizchql, quizchq, quizchq, quizchq, driver_device, 0, ROT0, "Nakanihon (Laxan license)", "Quiz Channel Question (Ver 1.23) (Taiwan?)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) -GAME( 1993, animaljr, 0, mmpanic, animaljr, driver_device, 0, ROT0, "Nakanihon / East Technology (Taito license)", "Exciting Animal Land Jr. (USA)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_SOUND ) -GAME( 1993, animaljrs, animaljr, mmpanic, animaljr, driver_device, 0, ROT0, "Nakanihon / East Technology (Taito license)", "Animalandia Jr. (Spanish)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_SOUND ) -GAME( 1993, animaljrj, animaljr, mmpanic, animaljr, driver_device, 0, ROT0, "Nakanihon / East Technology (Taito license)", "Waiwai Animal Land Jr. (Japan)", MACHINE_NO_COCKTAIL ) -GAME( 1994, mjmyster, 0, mjmyster, mjmyster, driver_device, 0, ROT0, "Dynax", "Mahjong The Mysterious World (set 1)", MACHINE_NO_COCKTAIL ) -GAME( 1994, mjmywrld, mjmyster, mjmywrld, mjmyster, driver_device, 0, ROT0, "Dynax", "Mahjong The Mysterious World (set 2)", MACHINE_NO_COCKTAIL ) -GAME( 1994, hginga, 0, hginga, hginga, driver_device, 0, ROT0, "Dynax", "Hanafuda Hana Ginga", MACHINE_NO_COCKTAIL ) -GAME( 1994, mjmyuniv, 0, mjmyuniv, mjmyster, driver_device, 0, ROT0, "Dynax", "Mahjong The Mysterious Universe (Japan, D85)", MACHINE_NO_COCKTAIL ) -GAME( 1994, quiz365, 0, quiz365, quiz365, driver_device, 0, ROT0, "Nakanihon", "Quiz 365 (Japan)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS | MACHINE_UNEMULATED_PROTECTION ) -GAME( 1994, quiz365t, quiz365, quiz365, quiz365, driver_device, 0, ROT0, "Nakanihon / Taito", "Quiz 365 (Hong Kong & Taiwan)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS | MACHINE_UNEMULATED_PROTECTION ) -GAME( 1994, rongrong, 0, rongrong, rongrong, ddenlovr_state,rongrong, ROT0, "Nakanihon (Activision license)", "Puzzle Game Rong Rong (Europe)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_COLORS ) -GAME( 1994, rongrongj, rongrong, rongrong, rongrong, ddenlovr_state,rongrong, ROT0, "Nakanihon (Activision license)", "Puzzle Game Rong Rong (Japan)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_COLORS ) -GAME( 1994, rongrongg, rongrong, rongrong, rongrong, ddenlovr_state,rongrong, ROT0, "Nakanihon (Activision license)", "Puzzle Game Rong Rong (Germany)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_COLORS ) -GAME( 1994, hparadis, 0, hparadis, hparadis, driver_device, 0, ROT0, "Dynax", "Super Hana Paradise (Japan)", MACHINE_NO_COCKTAIL ) -GAME( 1995, hgokou, 0, hgokou, hgokou, driver_device, 0, ROT0, "Dynax (Alba license)", "Hanafuda Hana Gokou (Japan)", MACHINE_NO_COCKTAIL ) -GAME( 1995, hgokbang, hgokou, hgokbang, hgokou, driver_device, 0, ROT0, "Dynax", "Hanafuda Hana Gokou Bangaihen (Japan)", MACHINE_NO_COCKTAIL ) -GAME( 1995, mjdchuka, 0, mjchuuka, mjchuuka, driver_device, 0, ROT0, "Dynax", "Mahjong The Dai Chuuka Ken (China, D111)", MACHINE_NO_COCKTAIL ) -GAME( 1995, mjschuka, 0, mjschuka, mjschuka, driver_device, 0, ROT0, "Dynax", "Mahjong Super Dai Chuuka Ken (Japan, D115)", MACHINE_NO_COCKTAIL ) -GAME( 1995, nettoqc, 0, nettoqc, nettoqc, driver_device, 0, ROT0, "Nakanihon", "Nettoh Quiz Champion (Japan)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_COLORS ) -GAME( 1995, ultrchmp, nettoqc, ultrchmp, ultrchmp, driver_device, 0, ROT0, "Nakanihon", "Se Gye Hweng Dan Ultra Champion (Korea)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_COLORS ) -GAME( 1995, ultrchmph, nettoqc, ultrchmp, ultrchmp, driver_device, 0, ROT0, "Nakanihon", "Cheng Ba Shi Jie - Chao Shi Kong Guan Jun (Taiwan)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_COLORS ) -GAME( 1995, ddenlovj, 0, ddenlovj, ddenlovj, driver_device, 0, ROT0, "Dynax", "Don Den Lover Vol. 1 - Shiro Kuro Tsukeyo! (Japan)", MACHINE_NO_COCKTAIL ) -GAME( 1995, ddenlovrk, ddenlovj, ddenlovrk, ddenlovr, driver_device, 0, ROT0, "Dynax", "Don Den Lover Vol. 1 - Heukbaeg-euro Jeonghaja (Korea)", MACHINE_NO_COCKTAIL ) -GAME( 1995, ddenlovrb, ddenlovj, ddenlovr, ddenlovr, driver_device, 0, ROT0, "bootleg", "Don Den Lover Vol. 1 - Heukbaeg-euro Jeonghaja (Korea, bootleg)", MACHINE_NO_COCKTAIL ) -GAME( 1996, ddenlovr, ddenlovj, ddenlovr, ddenlovr, driver_device, 0, ROT0, "Dynax", "Don Den Lover Vol. 1 (Hong Kong)", MACHINE_NO_COCKTAIL ) -GAME( 1996, hanakanz, 0, hanakanz, hanakanz, driver_device, 0, ROT0, "Dynax", "Hana Kanzashi (Japan)", MACHINE_NO_COCKTAIL ) -GAME( 1997, kotbinyo, hanakanz, kotbinyo, kotbinyo, driver_device, 0, ROT0, "Dynax / Shinwhajin", "Kkot Bi Nyo (Korea)", MACHINE_NO_COCKTAIL ) -GAME( 1997, kotbinsp, 0, kotbinsp, kotbinsp, driver_device, 0, ROT0, "Dynax / Shinwhajin", "Kkot Bi Nyo Special (Korea)", MACHINE_NO_COCKTAIL ) -GAME( 1996, akamaru, 0, akamaru, akamaru, driver_device, 0, ROT0, "Dynax (Nakanihon license)", "Panel & Variety Akamaru Q Jousyou Dont-R", MACHINE_NO_COCKTAIL ) -GAME( 1996, janshinp, 0, janshinp, janshinp, driver_device, 0, ROT0, "Dynax / Sigma", "Mahjong Janshin Plus (Japan)", MACHINE_NO_COCKTAIL ) -GAME( 1996, dtoyoken, 0, dtoyoken, dtoyoken, driver_device, 0, ROT0, "Dynax / Sigma", "Mahjong Dai Touyouken (Japan)", MACHINE_NO_COCKTAIL ) -GAME( 1996, sryudens, 0, sryudens, sryudens, driver_device, 0, ROT0, "Dynax / Face", "Mahjong Seiryu Densetsu (Japan, NM502)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1996, seljan2, 0, seljan2, seljan2, driver_device, 0, ROT0, "Dynax / Face", "Return Of Sel Jan II (Japan, NM557)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1996, mjflove, 0, mjflove, mjflove, driver_device, 0, ROT0, "Nakanihon", "Mahjong Fantasic Love (Japan)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1997, hkagerou, 0, hkagerou, hkagerou, driver_device, 0, ROT0, "Nakanihon / Dynax", "Hana Kagerou [BET] (Japan)", MACHINE_NO_COCKTAIL ) -GAME( 1998, mjchuuka, 0, mjchuuka, mjchuuka, driver_device, 0, ROT0, "Dynax", "Mahjong Chuukanejyo (China)", MACHINE_NO_COCKTAIL ) -GAME( 1998, mjreach1, 0, mjreach1, mjreach1, driver_device, 0, ROT0, "Nihon System", "Mahjong Reach Ippatsu (Japan)", MACHINE_NO_COCKTAIL ) -GAME( 1999, jongtei, 0, jongtei, jongtei, driver_device, 0, ROT0, "Dynax", "Mahjong Jong-Tei (Japan, NM532-01)", MACHINE_NO_COCKTAIL ) -GAME( 2000, mjgnight, 0, mjgnight, mjgnight, driver_device, 0, ROT0, "Techno-Top", "Mahjong Gorgeous Night (Japan, TSM003-01)", MACHINE_NO_COCKTAIL ) -GAME( 2002, daimyojn, 0, daimyojn, daimyojn, driver_device, 0, ROT0, "Dynax / Techno-Top / Techno-Planning", "Mahjong Daimyojin (Japan, T017-PB-00)", MACHINE_NO_COCKTAIL ) -GAME( 2004, momotaro, 0, daimyojn, daimyojn, ddenlovr_state,momotaro, ROT0, "Techno-Top", "Mahjong Momotarou (Japan)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) +GAME( 1992, htengoku, 0, htengoku, htengoku, ddenlovr_state, 0, ROT180, "Dynax", "Hanafuda Hana Tengoku (Japan)", 0) +GAME( 1992, mmpanic, 0, mmpanic, mmpanic, ddenlovr_state, 0, ROT0, "Nakanihon / East Technology (Taito license)", "Monkey Mole Panic (USA)", MACHINE_NO_COCKTAIL ) +GAME( 1993, mjmyorn2, 0, mjmyornt, mjmyorn2, ddenlovr_state, 0, ROT0, "Dynax", "Mahjong The Mysterious Orient Part 2 - Exotic Dream", MACHINE_NO_COCKTAIL ) +GAME( 1992, mjmyornt, mjmyorn2, mjmyornt, mjmyornt, ddenlovr_state, 0, ROT0, "Dynax", "Mahjong The Mysterious Orient", MACHINE_NO_COCKTAIL ) +GAME( 1993, funkyfig, 0, funkyfig, funkyfig, ddenlovr_state, 0, ROT0, "Nakanihon / East Technology (Taito license)", "The First Funky Fighter (North America, set 1)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS ) // scrolling, priority? +GAME( 1993, funkyfiga, funkyfig, funkyfig, funkyfig, ddenlovr_state, 0, ROT0, "Nakanihon / East Technology (Taito license)", "The First Funky Fighter (North America, set 2)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1993, quizchq, 0, quizchq, quizchq, ddenlovr_state, 0, ROT0, "Nakanihon", "Quiz Channel Question (Ver 1.00) (Japan)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) +GAME( 1993, quizchql, quizchq, quizchq, quizchq, ddenlovr_state, 0, ROT0, "Nakanihon (Laxan license)", "Quiz Channel Question (Ver 1.23) (Taiwan?)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) +GAME( 1993, animaljr, 0, mmpanic, animaljr, ddenlovr_state, 0, ROT0, "Nakanihon / East Technology (Taito license)", "Exciting Animal Land Jr. (USA)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_SOUND ) +GAME( 1993, animaljrs, animaljr, mmpanic, animaljr, ddenlovr_state, 0, ROT0, "Nakanihon / East Technology (Taito license)", "Animalandia Jr. (Spanish)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_SOUND ) +GAME( 1993, animaljrj, animaljr, mmpanic, animaljr, ddenlovr_state, 0, ROT0, "Nakanihon / East Technology (Taito license)", "Waiwai Animal Land Jr. (Japan)", MACHINE_NO_COCKTAIL ) +GAME( 1994, mjmyster, 0, mjmyster, mjmyster, ddenlovr_state, 0, ROT0, "Dynax", "Mahjong The Mysterious World (set 1)", MACHINE_NO_COCKTAIL ) +GAME( 1994, mjmywrld, mjmyster, mjmywrld, mjmyster, ddenlovr_state, 0, ROT0, "Dynax", "Mahjong The Mysterious World (set 2)", MACHINE_NO_COCKTAIL ) +GAME( 1994, hginga, 0, hginga, hginga, ddenlovr_state, 0, ROT0, "Dynax", "Hanafuda Hana Ginga", MACHINE_NO_COCKTAIL ) +GAME( 1994, mjmyuniv, 0, mjmyuniv, mjmyster, ddenlovr_state, 0, ROT0, "Dynax", "Mahjong The Mysterious Universe (Japan, D85)", MACHINE_NO_COCKTAIL ) +GAME( 1994, quiz365, 0, quiz365, quiz365, ddenlovr_state, 0, ROT0, "Nakanihon", "Quiz 365 (Japan)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS | MACHINE_UNEMULATED_PROTECTION ) +GAME( 1994, quiz365t, quiz365, quiz365, quiz365, ddenlovr_state, 0, ROT0, "Nakanihon / Taito", "Quiz 365 (Hong Kong & Taiwan)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS | MACHINE_UNEMULATED_PROTECTION ) +GAME( 1994, rongrong, 0, rongrong, rongrong, ddenlovr_state, rongrong, ROT0, "Nakanihon (Activision license)", "Puzzle Game Rong Rong (Europe)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_COLORS ) +GAME( 1994, rongrongj, rongrong, rongrong, rongrong, ddenlovr_state, rongrong, ROT0, "Nakanihon (Activision license)", "Puzzle Game Rong Rong (Japan)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_COLORS ) +GAME( 1994, rongrongg, rongrong, rongrong, rongrong, ddenlovr_state, rongrong, ROT0, "Nakanihon (Activision license)", "Puzzle Game Rong Rong (Germany)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_COLORS ) +GAME( 1994, hparadis, 0, hparadis, hparadis, ddenlovr_state, 0, ROT0, "Dynax", "Super Hana Paradise (Japan)", MACHINE_NO_COCKTAIL ) +GAME( 1995, hgokou, 0, hgokou, hgokou, ddenlovr_state, 0, ROT0, "Dynax (Alba license)", "Hanafuda Hana Gokou (Japan)", MACHINE_NO_COCKTAIL ) +GAME( 1995, hgokbang, hgokou, hgokbang, hgokou, ddenlovr_state, 0, ROT0, "Dynax", "Hanafuda Hana Gokou Bangaihen (Japan)", MACHINE_NO_COCKTAIL ) +GAME( 1995, mjdchuka, 0, mjchuuka, mjchuuka, ddenlovr_state, 0, ROT0, "Dynax", "Mahjong The Dai Chuuka Ken (China, D111)", MACHINE_NO_COCKTAIL ) +GAME( 1995, mjschuka, 0, mjschuka, mjschuka, ddenlovr_state, 0, ROT0, "Dynax", "Mahjong Super Dai Chuuka Ken (Japan, D115)", MACHINE_NO_COCKTAIL ) +GAME( 1995, nettoqc, 0, nettoqc, nettoqc, ddenlovr_state, 0, ROT0, "Nakanihon", "Nettoh Quiz Champion (Japan)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_COLORS ) +GAME( 1995, ultrchmp, nettoqc, ultrchmp, ultrchmp, ddenlovr_state, 0, ROT0, "Nakanihon", "Se Gye Hweng Dan Ultra Champion (Korea)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_COLORS ) +GAME( 1995, ultrchmph, nettoqc, ultrchmp, ultrchmp, ddenlovr_state, 0, ROT0, "Nakanihon", "Cheng Ba Shi Jie - Chao Shi Kong Guan Jun (Taiwan)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_COLORS ) +GAME( 1995, ddenlovj, 0, ddenlovj, ddenlovj, ddenlovr_state, 0, ROT0, "Dynax", "Don Den Lover Vol. 1 - Shiro Kuro Tsukeyo! (Japan)", MACHINE_NO_COCKTAIL ) +GAME( 1995, ddenlovrk, ddenlovj, ddenlovrk, ddenlovr, ddenlovr_state, 0, ROT0, "Dynax", "Don Den Lover Vol. 1 - Heukbaeg-euro Jeonghaja (Korea)", MACHINE_NO_COCKTAIL ) +GAME( 1995, ddenlovrb, ddenlovj, ddenlovr, ddenlovr, ddenlovr_state, 0, ROT0, "bootleg", "Don Den Lover Vol. 1 - Heukbaeg-euro Jeonghaja (Korea, bootleg)", MACHINE_NO_COCKTAIL ) +GAME( 1996, ddenlovr, ddenlovj, ddenlovr, ddenlovr, ddenlovr_state, 0, ROT0, "Dynax", "Don Den Lover Vol. 1 (Hong Kong)", MACHINE_NO_COCKTAIL ) +GAME( 1996, hanakanz, 0, hanakanz, hanakanz, ddenlovr_state, 0, ROT0, "Dynax", "Hana Kanzashi (Japan)", MACHINE_NO_COCKTAIL ) +GAME( 1997, kotbinyo, hanakanz, kotbinyo, kotbinyo, ddenlovr_state, 0, ROT0, "Dynax / Shinwhajin", "Kkot Bi Nyo (Korea)", MACHINE_NO_COCKTAIL ) +GAME( 1997, kotbinsp, 0, kotbinsp, kotbinsp, ddenlovr_state, 0, ROT0, "Dynax / Shinwhajin", "Kkot Bi Nyo Special (Korea)", MACHINE_NO_COCKTAIL ) +GAME( 1996, akamaru, 0, akamaru, akamaru, ddenlovr_state, 0, ROT0, "Dynax (Nakanihon license)", "Panel & Variety Akamaru Q Jousyou Dont-R", MACHINE_NO_COCKTAIL ) +GAME( 1996, janshinp, 0, janshinp, janshinp, ddenlovr_state, 0, ROT0, "Dynax / Sigma", "Mahjong Janshin Plus (Japan)", MACHINE_NO_COCKTAIL ) +GAME( 1996, dtoyoken, 0, dtoyoken, dtoyoken, ddenlovr_state, 0, ROT0, "Dynax / Sigma", "Mahjong Dai Touyouken (Japan)", MACHINE_NO_COCKTAIL ) +GAME( 1996, sryudens, 0, sryudens, sryudens, ddenlovr_state, 0, ROT0, "Dynax / Face", "Mahjong Seiryu Densetsu (Japan, NM502)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1996, seljan2, 0, seljan2, seljan2, ddenlovr_state, 0, ROT0, "Dynax / Face", "Return Of Sel Jan II (Japan, NM557)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1996, mjflove, 0, mjflove, mjflove, ddenlovr_state, 0, ROT0, "Nakanihon", "Mahjong Fantasic Love (Japan)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1997, hkagerou, 0, hkagerou, hkagerou, ddenlovr_state, 0, ROT0, "Nakanihon / Dynax", "Hana Kagerou [BET] (Japan)", MACHINE_NO_COCKTAIL ) +GAME( 1998, mjchuuka, 0, mjchuuka, mjchuuka, ddenlovr_state, 0, ROT0, "Dynax", "Mahjong Chuukanejyo (China)", MACHINE_NO_COCKTAIL ) +GAME( 1998, mjreach1, 0, mjreach1, mjreach1, ddenlovr_state, 0, ROT0, "Nihon System", "Mahjong Reach Ippatsu (Japan)", MACHINE_NO_COCKTAIL ) +GAME( 1999, jongtei, 0, jongtei, jongtei, ddenlovr_state, 0, ROT0, "Dynax", "Mahjong Jong-Tei (Japan, NM532-01)", MACHINE_NO_COCKTAIL ) +GAME( 2000, mjgnight, 0, mjgnight, mjgnight, ddenlovr_state, 0, ROT0, "Techno-Top", "Mahjong Gorgeous Night (Japan, TSM003-01)", MACHINE_NO_COCKTAIL ) +GAME( 2002, daimyojn, 0, daimyojn, daimyojn, ddenlovr_state, 0, ROT0, "Dynax / Techno-Top / Techno-Planning", "Mahjong Daimyojin (Japan, T017-PB-00)", MACHINE_NO_COCKTAIL ) +GAME( 2004, momotaro, 0, daimyojn, daimyojn, ddenlovr_state, momotaro, ROT0, "Techno-Top", "Mahjong Momotarou (Japan)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/ddragon.cpp b/src/mame/drivers/ddragon.cpp index a96786496d2..e49ecba2734 100644 --- a/src/mame/drivers/ddragon.cpp +++ b/src/mame/drivers/ddragon.cpp @@ -936,7 +936,7 @@ GFXDECODE_END * *************************************/ -static MACHINE_CONFIG_START( ddragon, ddragon_state ) +static MACHINE_CONFIG_START( ddragon ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", HD6309, MAIN_CLOCK) /* 12 MHz / 4 internally */ @@ -979,12 +979,12 @@ static MACHINE_CONFIG_START( ddragon, ddragon_state ) MCFG_SOUND_ADD("adpcm1", MSM5205, MAIN_CLOCK / 32) MCFG_MSM5205_VCLK_CB(WRITELINE(ddragon_state, dd_adpcm_int_1)) /* interrupt function */ - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S48_4B) /* 8kHz */ + MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) /* 8kHz */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) MCFG_SOUND_ADD("adpcm2", MSM5205, MAIN_CLOCK / 32) MCFG_MSM5205_VCLK_CB(WRITELINE(ddragon_state, dd_adpcm_int_2)) /* interrupt function */ - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S48_4B) /* 8kHz */ + MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) /* 8kHz */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) MACHINE_CONFIG_END @@ -1006,7 +1006,7 @@ static MACHINE_CONFIG_DERIVED( ddragonba, ddragon ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( ddragon6809, ddragon_state ) +static MACHINE_CONFIG_START( ddragon6809 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809, MAIN_CLOCK / 8) /* 1.5 MHz */ @@ -1049,17 +1049,17 @@ static MACHINE_CONFIG_START( ddragon6809, ddragon_state ) MCFG_SOUND_ADD("adpcm1", MSM5205, MAIN_CLOCK/32) MCFG_MSM5205_VCLK_CB(WRITELINE(ddragon_state, dd_adpcm_int_1)) /* interrupt function */ - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S48_4B) /* 8kHz */ + MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) /* 8kHz */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) MCFG_SOUND_ADD("adpcm2", MSM5205, MAIN_CLOCK/32) MCFG_MSM5205_VCLK_CB(WRITELINE(ddragon_state, dd_adpcm_int_2)) /* interrupt function */ - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S48_4B) /* 8kHz */ + MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) /* 8kHz */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( ddragon2, ddragon_state ) +static MACHINE_CONFIG_START( ddragon2 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", HD6309, MAIN_CLOCK) /* 12 MHz / 4 internally */ @@ -1100,12 +1100,12 @@ static MACHINE_CONFIG_START( ddragon2, ddragon_state ) MCFG_SOUND_ROUTE(0, "mono", 0.60) MCFG_SOUND_ROUTE(1, "mono", 0.60) - MCFG_OKIM6295_ADD("oki", 1056000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki", 1056000, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) MACHINE_CONFIG_END -static MACHINE_CONFIG_DERIVED_CLASS( darktowr, ddragon, darktowr_state ) +static MACHINE_CONFIG_DERIVED( darktowr, ddragon ) /* basic machine hardware */ MCFG_CPU_ADD("mcu", M68705P3, XTAL_4MHz) @@ -1115,7 +1115,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( darktowr, ddragon, darktowr_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_DERIVED_CLASS( toffy, ddragon, toffy_state ) +static MACHINE_CONFIG_DERIVED( toffy, ddragon ) /* basic machine hardware */ MCFG_DEVICE_REMOVE("sub") diff --git a/src/mame/drivers/ddragon3.cpp b/src/mame/drivers/ddragon3.cpp index dda330d6321..4f6616b16ed 100644 --- a/src/mame/drivers/ddragon3.cpp +++ b/src/mame/drivers/ddragon3.cpp @@ -828,7 +828,7 @@ void ddragon3_state::machine_reset() m_io_reg[i] = 0; } -static MACHINE_CONFIG_START( ddragon3, ddragon3_state ) +static MACHINE_CONFIG_START( ddragon3 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_20MHz / 2) @@ -861,7 +861,7 @@ static MACHINE_CONFIG_START( ddragon3, ddragon3_state ) MCFG_SOUND_ROUTE(0, "lspeaker", 0.50) MCFG_SOUND_ROUTE(1, "rspeaker", 0.50) - MCFG_OKIM6295_ADD("oki", XTAL_1_056MHz, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", XTAL_1_056MHz, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.50) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.50) MACHINE_CONFIG_END @@ -898,7 +898,7 @@ static MACHINE_CONFIG_DERIVED( ctribe, ddragon3 ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( wwfwfest, wwfwfest_state ) +static MACHINE_CONFIG_START( wwfwfest ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_24MHz / 2) /* 24 crystal, 12 rated chip */ @@ -931,7 +931,7 @@ static MACHINE_CONFIG_START( wwfwfest, wwfwfest_state ) MCFG_SOUND_ROUTE(0, "mono", 0.45) MCFG_SOUND_ROUTE(1, "mono", 0.45) - MCFG_OKIM6295_ADD("oki", 1024188, OKIM6295_PIN7_HIGH) /* Verified - Pin 7 tied to +5VDC */ + MCFG_OKIM6295_ADD("oki", 1024188, PIN7_HIGH) /* Verified - Pin 7 tied to +5VDC */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.90) MACHINE_CONFIG_END @@ -1479,20 +1479,20 @@ ROM_END * *************************************/ -GAME( 1990, ddragon3, 0, ddragon3, ddragon3, driver_device, 0, ROT0, "Technos Japan", "Double Dragon 3 - The Rosetta Stone (US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, ddragon3j,ddragon3, ddragon3, ddragon3, driver_device, 0, ROT0, "Technos Japan", "Double Dragon 3 - The Rosetta Stone (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, ddragon3p,ddragon3, ddragon3, ddragon3, driver_device, 0, ROT0, "Technos Japan", "Double Dragon 3 - The Rosetta Stone (prototype)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, ddragon3b,ddragon3, ddragon3b,ddragon3b, driver_device,0, ROT0, "bootleg", "Double Dragon 3 - The Rosetta Stone (bootleg)", MACHINE_SUPPORTS_SAVE ) - -GAME( 1990, ctribe, 0, ctribe, ctribe, driver_device, 0, ROT0, "Technos Japan", "The Combatribes (US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, ctribe1, ctribe, ctribe, ctribe, driver_device, 0, ROT0, "Technos Japan", "The Combatribes (US set 1?)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, ctribeo, ctribe, ctribe, ctribe, driver_device, 0, ROT0, "Technos Japan", "The Combatribes (US, older)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, ctribej, ctribe, ctribe, ctribe, driver_device, 0, ROT0, "Technos Japan", "The Combatribes (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, ctribeb, ctribe, ctribe, ctribeb, driver_device, 0, ROT0, "bootleg", "The Combatribes (bootleg set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, ctribeb2, ctribe, ctribe, ctribeb, driver_device, 0, ROT0, "bootleg", "The Combatribes (bootleg set 2)", MACHINE_SUPPORTS_SAVE ) - -GAME( 1991, wwfwfest, 0, wwfwfest, wwfwfest, driver_device, 0, ROT0, "Technos Japan (Tecmo license)", "WWF WrestleFest (World)", MACHINE_SUPPORTS_SAVE ) /* Euro label but shows FBI "Winners Don't Do drugs" logo */ -GAME( 1991, wwfwfestu, wwfwfest, wwfwfest, wwfwfest, driver_device, 0, ROT0, "Technos Japan", "WWF WrestleFest (US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, wwfwfestb, wwfwfest, wwfwfstb, wwfwfest, driver_device, 0, ROT0, "bootleg", "WWF WrestleFest (US bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, wwfwfestj, wwfwfest, wwfwfest, wwfwfesta, driver_device, 0, ROT0, "Technos Japan (Tecmo license)", "WWF WrestleFest (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, wwfwfestk, wwfwfest, wwfwfest, wwfwfesta, driver_device, 0, ROT0, "Technos Japan (Tecmo license)", "WWF WrestleFest (Korea)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, ddragon3, 0, ddragon3, ddragon3, ddragon3_state, 0, ROT0, "Technos Japan", "Double Dragon 3 - The Rosetta Stone (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, ddragon3j, ddragon3, ddragon3, ddragon3, ddragon3_state, 0, ROT0, "Technos Japan", "Double Dragon 3 - The Rosetta Stone (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, ddragon3p, ddragon3, ddragon3, ddragon3, ddragon3_state, 0, ROT0, "Technos Japan", "Double Dragon 3 - The Rosetta Stone (prototype)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, ddragon3b, ddragon3, ddragon3b, ddragon3b, ddragon3_state, 0, ROT0, "bootleg", "Double Dragon 3 - The Rosetta Stone (bootleg)", MACHINE_SUPPORTS_SAVE ) + +GAME( 1990, ctribe, 0, ctribe, ctribe, ddragon3_state, 0, ROT0, "Technos Japan", "The Combatribes (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, ctribe1, ctribe, ctribe, ctribe, ddragon3_state, 0, ROT0, "Technos Japan", "The Combatribes (US set 1?)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, ctribeo, ctribe, ctribe, ctribe, ddragon3_state, 0, ROT0, "Technos Japan", "The Combatribes (US, older)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, ctribej, ctribe, ctribe, ctribe, ddragon3_state, 0, ROT0, "Technos Japan", "The Combatribes (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, ctribeb, ctribe, ctribe, ctribeb, ddragon3_state, 0, ROT0, "bootleg", "The Combatribes (bootleg set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, ctribeb2, ctribe, ctribe, ctribeb, ddragon3_state, 0, ROT0, "bootleg", "The Combatribes (bootleg set 2)", MACHINE_SUPPORTS_SAVE ) + +GAME( 1991, wwfwfest, 0, wwfwfest, wwfwfest, wwfwfest_state, 0, ROT0, "Technos Japan (Tecmo license)", "WWF WrestleFest (World)", MACHINE_SUPPORTS_SAVE ) // Euro label but shows FBI "Winners Don't Do drugs" logo +GAME( 1991, wwfwfestu, wwfwfest, wwfwfest, wwfwfest, wwfwfest_state, 0, ROT0, "Technos Japan", "WWF WrestleFest (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, wwfwfestb, wwfwfest, wwfwfstb, wwfwfest, wwfwfest_state, 0, ROT0, "bootleg", "WWF WrestleFest (US bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, wwfwfestj, wwfwfest, wwfwfest, wwfwfesta, wwfwfest_state, 0, ROT0, "Technos Japan (Tecmo license)", "WWF WrestleFest (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, wwfwfestk, wwfwfest, wwfwfest, wwfwfesta, wwfwfest_state, 0, ROT0, "Technos Japan (Tecmo license)", "WWF WrestleFest (Korea)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/ddribble.cpp b/src/mame/drivers/ddribble.cpp index b4067ab0fd3..51c6d41ba90 100644 --- a/src/mame/drivers/ddribble.cpp +++ b/src/mame/drivers/ddribble.cpp @@ -98,13 +98,13 @@ WRITE8_MEMBER(ddribble_state::ddribble_vlm5030_ctrl_w) membank("vlmbank")->set_entry(data & 0x08 ? 1 : 0); /* b2 : SSG-C rc filter enable */ - m_filter3->filter_rc_set_RC(FLT_RC_LOWPASS, 1000, 2200, 1000, data & 0x04 ? CAP_N(150) : 0); /* YM2203-SSG-C */ + m_filter3->filter_rc_set_RC(filter_rc_device::LOWPASS, 1000, 2200, 1000, data & 0x04 ? CAP_N(150) : 0); /* YM2203-SSG-C */ /* b1 : SSG-B rc filter enable */ - m_filter2->filter_rc_set_RC(FLT_RC_LOWPASS, 1000, 2200, 1000, data & 0x02 ? CAP_N(150) : 0); /* YM2203-SSG-B */ + m_filter2->filter_rc_set_RC(filter_rc_device::LOWPASS, 1000, 2200, 1000, data & 0x02 ? CAP_N(150) : 0); /* YM2203-SSG-B */ /* b0 : SSG-A rc filter enable */ - m_filter1->filter_rc_set_RC(FLT_RC_LOWPASS, 1000, 2200, 1000, data & 0x01 ? CAP_N(150) : 0); /* YM2203-SSG-A */ + m_filter1->filter_rc_set_RC(filter_rc_device::LOWPASS, 1000, 2200, 1000, data & 0x01 ? CAP_N(150) : 0); /* YM2203-SSG-A */ } @@ -256,7 +256,7 @@ void ddribble_state::machine_reset() m_charbank[1] = 0; } -static MACHINE_CONFIG_START( ddribble, ddribble_state ) +static MACHINE_CONFIG_START( ddribble ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809, XTAL_18_432MHz/12) /* verified on pcb */ @@ -379,5 +379,5 @@ ROM_START( ddribblep ) ROM_LOAD( "voice_10.d7", 0x10000, 0x10000, CRC(b4c97494) SHA1(93f7c3c93f6f790c3f480e183da0105b5ac3593b) ) ROM_END -GAME( 1986, ddribble, 0, ddribble, ddribble, driver_device, 0, ROT0, "Konami", "Double Dribble", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, ddribblep, ddribble, ddribble, ddribble, driver_device, 0, ROT0, "Konami", "Double Dribble (prototype?)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, ddribble, 0, ddribble, ddribble, ddribble_state, 0, ROT0, "Konami", "Double Dribble", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, ddribblep, ddribble, ddribble, ddribble, ddribble_state, 0, ROT0, "Konami", "Double Dribble (prototype?)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/de_2.cpp b/src/mame/drivers/de_2.cpp index 51e9f3303de..648cfdf89a4 100644 --- a/src/mame/drivers/de_2.cpp +++ b/src/mame/drivers/de_2.cpp @@ -414,7 +414,7 @@ READ8_MEMBER( de_2_state::sound_latch_r ) WRITE8_MEMBER( de_2_state::sample_bank_w ) { - static const uint8_t prescale[4] = { MSM5205_S96_4B, MSM5205_S48_4B, MSM5205_S64_4B, 0 }; + static constexpr uint8_t prescale[4] = { msm5205_device::S96_4B, msm5205_device::S48_4B, msm5205_device::S64_4B, 0 }; m_sample_bank_num = (data & 0x07); m_sample_bank->set_entry(m_sample_bank_num); @@ -518,7 +518,7 @@ WRITE8_MEMBER(de_2_state::lamps_w) } -static MACHINE_CONFIG_START( de_type1, de_2_state ) +static MACHINE_CONFIG_START( de_type1 ) /* basic machine hardware */ MCFG_DECOCPU_TYPE1_ADD("decocpu",XTAL_8MHz / 2, ":maincpu") MCFG_DECOCPU_DISPLAY(READ8(de_2_state,display_r),WRITE8(de_2_state,display_w)) @@ -542,11 +542,11 @@ static MACHINE_CONFIG_START( de_type1, de_2_state ) 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(MSM5205_S96_4B) + MCFG_MSM5205_PRESCALER_SELECTOR(S96_4B) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "bg", 0.50) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( de_type2, de_2_state ) +static MACHINE_CONFIG_START( de_type2 ) /* basic machine hardware */ MCFG_DECOCPU_TYPE2_ADD("decocpu",XTAL_8MHz / 2, ":maincpu") MCFG_DECOCPU_DISPLAY(READ8(de_2_state,display_r),WRITE8(de_2_state,display_w)) @@ -570,11 +570,11 @@ static MACHINE_CONFIG_START( de_type2, de_2_state ) 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(MSM5205_S96_4B) + MCFG_MSM5205_PRESCALER_SELECTOR(S96_4B) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "bg", 0.50) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( de_type2_alpha3, de_2_state ) +static MACHINE_CONFIG_START( de_type2_alpha3 ) /* basic machine hardware */ 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)) @@ -598,11 +598,11 @@ static MACHINE_CONFIG_START( de_type2_alpha3, de_2_state ) 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(MSM5205_S96_4B) + MCFG_MSM5205_PRESCALER_SELECTOR(S96_4B) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "bg", 0.50) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( de_type3, de_2_state ) +static MACHINE_CONFIG_START( de_type3 ) /* basic machine hardware */ 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)) @@ -626,7 +626,7 @@ static MACHINE_CONFIG_START( de_type3, de_2_state ) 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(MSM5205_S96_4B) + MCFG_MSM5205_PRESCALER_SELECTOR(S96_4B) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "bg", 0.50) MACHINE_CONFIG_END @@ -950,29 +950,29 @@ ROM_START(torp_a16) ROM_END -GAME(1990, bttf_a28, 0, de_type3, de_2, de_2_state, de_2, ROT0, "Data East", "Back To the Future (2.8)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1990, bttf_a27, bttf_a28, de_type3, de_2, de_2_state, de_2, ROT0, "Data East", "Back To the Future (2.7)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1990, bttf_a20, bttf_a28, de_type3, de_2, de_2_state, de_2, ROT0, "Data East", "Back To the Future (2.0)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1990, bttf_a21, bttf_a28, de_type3, de_2, de_2_state, de_2, ROT0, "Data East", "Back To The Future (2.1)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(199?, bttf_g27, bttf_a28, de_type3, de_2, de_2_state, de_2, ROT0, "Data East", "Back To the Future (2.7 Germany)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1990, kiko_a10, 0, de_type3, de_2, de_2_state, de_2, ROT0, "Data East", "King Kong (1.0)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1987, lwar_a83, 0, de_type1, de_2, de_2_state, de_2, ROT0, "Data East", "Laser War (8.3)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1987, lwar_a81, lwar_a83, de_type1, de_2, de_2_state, de_2, ROT0, "Data East", "Laser War (8.1)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1987, lwar_e90, lwar_a83, de_type1, de_2, de_2_state, de_2, ROT0, "Data East", "Laser War (9.0 Europe)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1989, mnfb_c29, 0, de_type2_alpha3, de_2, de_2_state, de_2, ROT0, "Data East", "Monday Night Football (2.9, 50cts)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1989, mnfb_c27, mnfb_c29, de_type2_alpha3, de_2, de_2_state, de_2, ROT0, "Data East", "Monday Night Football (2.7, 50cts)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1990, poto_a32, 0, de_type2_alpha3, de_2, de_2_state, de_2, ROT0, "Data East", "The Phantom of the Opera (3.2)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1990, poto_a29, poto_a32, de_type2_alpha3, de_2, de_2_state, de_2, ROT0, "Data East", "The Phantom of the Opera (2.9)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1989, play_a24, 0, de_type2, de_2, de_2_state, de_2, ROT0, "Data East", "Playboy 35th Anniversary (2.4)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1989, robo_a34, 0, de_type3, de_2, de_2_state, de_2, ROT0, "Data East", "Robocop (3.4)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1989, robo_a30, robo_a34, de_type3, de_2, de_2_state, de_2, ROT0, "Data East", "Robocop (3.0)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1988, ssvc_a26, 0, de_type2, de_2, de_2_state, de_2, ROT0, "Data East", "Secret Service (2.6)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1988, ssvc_b26, ssvc_a26, de_type2, de_2, de_2_state, de_2, ROT0, "Data East", "Secret Service (2.6 alternate sound)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1988, ssvc_a42, ssvc_a26, de_type2, de_2, de_2_state, de_2, ROT0, "Data East", "Secret Service (4.2 alternate sound)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1990, simp_a27, 0, de_type3, de_2, de_2_state, de_2, ROT0, "Data East", "The Simpsons (2.7)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1990, simp_a20, simp_a27, de_type3, de_2, de_2_state, de_2, ROT0, "Data East", "The Simpsons (2.0)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1988, tmac_a24, 0, de_type2, de_2, de_2_state, de_2, ROT0, "Data East", "Time Machine (2.4)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1988, tmac_a18, tmac_a24, de_type2, de_2, de_2_state, de_2, ROT0, "Data East", "Time Machine (1.8)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1988, tmac_g18, tmac_a24, de_type2, de_2, de_2_state, de_2, ROT0, "Data East", "Time Machine (1.8, Germany)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1988, torp_e21, 0, de_type2, de_2, de_2_state, de_2, ROT0, "Data East", "Torpedo Alley (2.1, Europe)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1988, torp_a16, torp_e21, de_type2, de_2, de_2_state, de_2, ROT0, "Data East", "Torpedo Alley (1.6)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1990, bttf_a28, 0, de_type3, de_2, de_2_state, de_2, ROT0, "Data East", "Back To the Future (2.8)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1990, bttf_a27, bttf_a28, de_type3, de_2, de_2_state, de_2, ROT0, "Data East", "Back To the Future (2.7)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1990, bttf_a20, bttf_a28, de_type3, de_2, de_2_state, de_2, ROT0, "Data East", "Back To the Future (2.0)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1990, bttf_a21, bttf_a28, de_type3, de_2, de_2_state, de_2, ROT0, "Data East", "Back To The Future (2.1)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(199?, bttf_g27, bttf_a28, de_type3, de_2, de_2_state, de_2, ROT0, "Data East", "Back To the Future (2.7 Germany)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1990, kiko_a10, 0, de_type3, de_2, de_2_state, de_2, ROT0, "Data East", "King Kong (1.0)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1987, lwar_a83, 0, de_type1, de_2, de_2_state, de_2, ROT0, "Data East", "Laser War (8.3)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1987, lwar_a81, lwar_a83, de_type1, de_2, de_2_state, de_2, ROT0, "Data East", "Laser War (8.1)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1987, lwar_e90, lwar_a83, de_type1, de_2, de_2_state, de_2, ROT0, "Data East", "Laser War (9.0 Europe)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1989, mnfb_c29, 0, de_type2_alpha3, de_2, de_2_state, de_2, ROT0, "Data East", "Monday Night Football (2.9, 50cts)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1989, mnfb_c27, mnfb_c29, de_type2_alpha3, de_2, de_2_state, de_2, ROT0, "Data East", "Monday Night Football (2.7, 50cts)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1990, poto_a32, 0, de_type2_alpha3, de_2, de_2_state, de_2, ROT0, "Data East", "The Phantom of the Opera (3.2)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1990, poto_a29, poto_a32, de_type2_alpha3, de_2, de_2_state, de_2, ROT0, "Data East", "The Phantom of the Opera (2.9)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1989, play_a24, 0, de_type2, de_2, de_2_state, de_2, ROT0, "Data East", "Playboy 35th Anniversary (2.4)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1989, robo_a34, 0, de_type3, de_2, de_2_state, de_2, ROT0, "Data East", "Robocop (3.4)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1989, robo_a30, robo_a34, de_type3, de_2, de_2_state, de_2, ROT0, "Data East", "Robocop (3.0)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1988, ssvc_a26, 0, de_type2, de_2, de_2_state, de_2, ROT0, "Data East", "Secret Service (2.6)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1988, ssvc_b26, ssvc_a26, de_type2, de_2, de_2_state, de_2, ROT0, "Data East", "Secret Service (2.6 alternate sound)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1988, ssvc_a42, ssvc_a26, de_type2, de_2, de_2_state, de_2, ROT0, "Data East", "Secret Service (4.2 alternate sound)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1990, simp_a27, 0, de_type3, de_2, de_2_state, de_2, ROT0, "Data East", "The Simpsons (2.7)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1990, simp_a20, simp_a27, de_type3, de_2, de_2_state, de_2, ROT0, "Data East", "The Simpsons (2.0)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1988, tmac_a24, 0, de_type2, de_2, de_2_state, de_2, ROT0, "Data East", "Time Machine (2.4)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1988, tmac_a18, tmac_a24, de_type2, de_2, de_2_state, de_2, ROT0, "Data East", "Time Machine (1.8)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1988, tmac_g18, tmac_a24, de_type2, de_2, de_2_state, de_2, ROT0, "Data East", "Time Machine (1.8, Germany)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1988, torp_e21, 0, de_type2, de_2, de_2_state, de_2, ROT0, "Data East", "Torpedo Alley (2.1, Europe)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1988, torp_a16, torp_e21, de_type2, de_2, de_2_state, de_2, ROT0, "Data East", "Torpedo Alley (1.6)", MACHINE_IS_SKELETON_MECHANICAL) diff --git a/src/mame/drivers/de_3.cpp b/src/mame/drivers/de_3.cpp index 1699ad41f39..2217a25314d 100644 --- a/src/mame/drivers/de_3.cpp +++ b/src/mame/drivers/de_3.cpp @@ -391,7 +391,7 @@ DRIVER_INIT_MEMBER(de_3_state,de_3) { } -static MACHINE_CONFIG_START( de_3, de_3_state ) +static MACHINE_CONFIG_START( de_3 ) /* basic machine hardware */ MCFG_DECOCPU_TYPE3_ADD("decocpu",XTAL_8MHz / 2, ":maincpu") MCFG_DECOCPU_DISPLAY(READ8(de_3_state,display_r),WRITE8(de_3_state,display_w)) diff --git a/src/mame/drivers/de_3b.cpp b/src/mame/drivers/de_3b.cpp index fa896e1500a..c313f83c317 100644 --- a/src/mame/drivers/de_3b.cpp +++ b/src/mame/drivers/de_3b.cpp @@ -239,7 +239,7 @@ DRIVER_INIT_MEMBER(de_3b_state,de_3b) { } -static MACHINE_CONFIG_START( de_3b, de_3b_state ) +static MACHINE_CONFIG_START( de_3b ) /* basic machine hardware */ MCFG_DECOCPU_TYPE3B_ADD("decocpu",XTAL_8MHz / 2, ":maincpu") MCFG_DECOCPU_DISPLAY(READ8(de_3b_state,display_r),WRITE8(de_3b_state,display_w)) @@ -257,7 +257,7 @@ static MACHINE_CONFIG_START( de_3b, de_3b_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( detest, de_3b_state ) +static MACHINE_CONFIG_START( detest ) /* basic machine hardware */ MCFG_DECOCPU_TYPE3B_ADD("decocpu",XTAL_8MHz / 2, ":maincpu") @@ -677,33 +677,33 @@ ROM_START(detest) ROM_END -GAME(1995, batmanf, 0, de_3b, de_3b, de_3b_state, de_3b, ROT0, "Sega", "Batman Forever (4.0)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1995, batmanf3, batmanf, de_3b, de_3b, de_3b_state, de_3b, ROT0, "Sega", "Batman Forever (3.0)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1995, batmanf2, batmanf, de_3b, de_3b, de_3b_state, de_3b, ROT0, "Sega", "Batman Forever (2.02)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1995, batmanf1, batmanf, de_3b, de_3b, de_3b_state, de_3b, ROT0, "Sega", "Batman Forever (1.02)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1995, bmf_uk, batmanf, de_3b, de_3b, de_3b_state, de_3b, ROT0, "Sega", "Batman Forever (English)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1995, bmf_cn, batmanf, de_3b, de_3b, de_3b_state, de_3b, ROT0, "Sega", "Batman Forever (Canadian)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1995, bmf_no, batmanf, de_3b, de_3b, de_3b_state, de_3b, ROT0, "Sega", "Batman Forever (Norwegian)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1995, bmf_sv, batmanf, de_3b, de_3b, de_3b_state, de_3b, ROT0, "Sega", "Batman Forever (Swedish)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1995, bmf_at, batmanf, de_3b, de_3b, de_3b_state, de_3b, ROT0, "Sega", "Batman Forever (Austrian)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1995, bmf_ch, batmanf, de_3b, de_3b, de_3b_state, de_3b, ROT0, "Sega", "Batman Forever (Swiss)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1995, bmf_de, batmanf, de_3b, de_3b, de_3b_state, de_3b, ROT0, "Sega", "Batman Forever (German)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1995, bmf_be, batmanf, de_3b, de_3b, de_3b_state, de_3b, ROT0, "Sega", "Batman Forever (Belgian)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1995, bmf_fr, batmanf, de_3b, de_3b, de_3b_state, de_3b, ROT0, "Sega", "Batman Forever (French)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1995, bmf_nl, batmanf, de_3b, de_3b, de_3b_state, de_3b, ROT0, "Sega", "Batman Forever (Dutch)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1995, bmf_it, batmanf, de_3b, de_3b, de_3b_state, de_3b, ROT0, "Sega", "Batman Forever (Italian)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1995, bmf_sp, batmanf, de_3b, de_3b, de_3b_state, de_3b, ROT0, "Sega", "Batman Forever (Spanish)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1995, bmf_jp, batmanf, de_3b, de_3b, de_3b_state, de_3b, ROT0, "Sega", "Batman Forever (Japanese)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1995, bmf_time, batmanf, de_3b, de_3b, de_3b_state, de_3b, ROT0, "Sega", "Batman Forever (Timed Play)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1995, baywatch, 0, de_3b, de_3b, de_3b_state, de_3b, ROT0, "Sega", "Baywatch", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1995, bay_d300, baywatch, de_3b, de_3b, de_3b_state, de_3b, ROT0, "Sega", "Baywatch (3.00 Dutch)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1995, bay_d400, baywatch, de_3b, de_3b, de_3b_state, de_3b, ROT0, "Sega", "Baywatch (4.00 English)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1995, bay_e400, baywatch, de_3b, de_3b, de_3b_state, de_3b, ROT0, "Sega", "Baywatch (4.00 Dutch)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1994, frankst, 0, de_3b, de_3b, de_3b_state, de_3b, ROT0, "Sega", "Mary Shelley's Frankenstein", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1995, frankstg, frankst, de_3b, de_3b, de_3b_state, de_3b, ROT0, "Sega", "Mary Shelley's Frankenstein (Germany)",MACHINE_IS_SKELETON_MECHANICAL) -GAME(1994, mav_402, 0, de_3b, de_3b, de_3b_state, de_3b, ROT0, "Sega", "Maverick (Display Rev. 4.02)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1994, mav_401, mav_402, de_3b, de_3b, de_3b_state, de_3b, ROT0, "Sega", "Maverick (Display Rev. 4.01)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1994, mav_400, mav_402, de_3b, de_3b, de_3b_state, de_3b, ROT0, "Sega", "Maverick (Display Rev. 4.00)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1994, mav_100, mav_402, de_3b, de_3b, de_3b_state, de_3b, ROT0, "Sega", "Maverick (1.00)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1998, detest, 0, detest, de_3b, de_3b_state, de_3b, ROT0, "Data East", "Data East Test Chip", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1996, ctcheese, 0, de_3b, de_3b, de_3b_state, de_3b, ROT0, "Sega", "Cut The Cheese (Redemption)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1995, batmanf, 0, de_3b, de_3b, de_3b_state, de_3b, ROT0, "Sega", "Batman Forever (4.0)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1995, batmanf3, batmanf, de_3b, de_3b, de_3b_state, de_3b, ROT0, "Sega", "Batman Forever (3.0)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1995, batmanf2, batmanf, de_3b, de_3b, de_3b_state, de_3b, ROT0, "Sega", "Batman Forever (2.02)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1995, batmanf1, batmanf, de_3b, de_3b, de_3b_state, de_3b, ROT0, "Sega", "Batman Forever (1.02)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1995, bmf_uk, batmanf, de_3b, de_3b, de_3b_state, de_3b, ROT0, "Sega", "Batman Forever (English)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1995, bmf_cn, batmanf, de_3b, de_3b, de_3b_state, de_3b, ROT0, "Sega", "Batman Forever (Canadian)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1995, bmf_no, batmanf, de_3b, de_3b, de_3b_state, de_3b, ROT0, "Sega", "Batman Forever (Norwegian)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1995, bmf_sv, batmanf, de_3b, de_3b, de_3b_state, de_3b, ROT0, "Sega", "Batman Forever (Swedish)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1995, bmf_at, batmanf, de_3b, de_3b, de_3b_state, de_3b, ROT0, "Sega", "Batman Forever (Austrian)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1995, bmf_ch, batmanf, de_3b, de_3b, de_3b_state, de_3b, ROT0, "Sega", "Batman Forever (Swiss)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1995, bmf_de, batmanf, de_3b, de_3b, de_3b_state, de_3b, ROT0, "Sega", "Batman Forever (German)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1995, bmf_be, batmanf, de_3b, de_3b, de_3b_state, de_3b, ROT0, "Sega", "Batman Forever (Belgian)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1995, bmf_fr, batmanf, de_3b, de_3b, de_3b_state, de_3b, ROT0, "Sega", "Batman Forever (French)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1995, bmf_nl, batmanf, de_3b, de_3b, de_3b_state, de_3b, ROT0, "Sega", "Batman Forever (Dutch)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1995, bmf_it, batmanf, de_3b, de_3b, de_3b_state, de_3b, ROT0, "Sega", "Batman Forever (Italian)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1995, bmf_sp, batmanf, de_3b, de_3b, de_3b_state, de_3b, ROT0, "Sega", "Batman Forever (Spanish)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1995, bmf_jp, batmanf, de_3b, de_3b, de_3b_state, de_3b, ROT0, "Sega", "Batman Forever (Japanese)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1995, bmf_time, batmanf, de_3b, de_3b, de_3b_state, de_3b, ROT0, "Sega", "Batman Forever (Timed Play)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1995, baywatch, 0, de_3b, de_3b, de_3b_state, de_3b, ROT0, "Sega", "Baywatch", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1995, bay_d300, baywatch, de_3b, de_3b, de_3b_state, de_3b, ROT0, "Sega", "Baywatch (3.00 Dutch)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1995, bay_d400, baywatch, de_3b, de_3b, de_3b_state, de_3b, ROT0, "Sega", "Baywatch (4.00 English)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1995, bay_e400, baywatch, de_3b, de_3b, de_3b_state, de_3b, ROT0, "Sega", "Baywatch (4.00 Dutch)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1994, frankst, 0, de_3b, de_3b, de_3b_state, de_3b, ROT0, "Sega", "Mary Shelley's Frankenstein", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1995, frankstg, frankst, de_3b, de_3b, de_3b_state, de_3b, ROT0, "Sega", "Mary Shelley's Frankenstein (Germany)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1994, mav_402, 0, de_3b, de_3b, de_3b_state, de_3b, ROT0, "Sega", "Maverick (Display Rev. 4.02)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1994, mav_401, mav_402, de_3b, de_3b, de_3b_state, de_3b, ROT0, "Sega", "Maverick (Display Rev. 4.01)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1994, mav_400, mav_402, de_3b, de_3b, de_3b_state, de_3b, ROT0, "Sega", "Maverick (Display Rev. 4.00)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1994, mav_100, mav_402, de_3b, de_3b, de_3b_state, de_3b, ROT0, "Sega", "Maverick (1.00)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1998, detest, 0, detest, de_3b, de_3b_state, de_3b, ROT0, "Data East", "Data East Test Chip", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1996, ctcheese, 0, de_3b, de_3b, de_3b_state, de_3b, ROT0, "Sega", "Cut The Cheese (Redemption)", MACHINE_IS_SKELETON_MECHANICAL) diff --git a/src/mame/drivers/deadang.cpp b/src/mame/drivers/deadang.cpp index d5612a06d73..8a2ba28b320 100644 --- a/src/mame/drivers/deadang.cpp +++ b/src/mame/drivers/deadang.cpp @@ -265,7 +265,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(deadang_state::sub_scanline) /* Machine Drivers */ -static MACHINE_CONFIG_START( deadang, deadang_state ) +static MACHINE_CONFIG_START( deadang ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", V30,XTAL_16MHz/2) /* Sony 8623h9 CXQ70116D-8 (V30 compatible) */ @@ -532,7 +532,7 @@ DRIVER_INIT_MEMBER(deadang_state,ghunter) /* Game Drivers */ -GAME( 1988, deadang, 0, deadang, deadang, deadang_state, deadang, ROT0, "Seibu Kaihatsu", "Dead Angle", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, leadang, deadang, deadang, deadang, deadang_state, deadang, ROT0, "Seibu Kaihatsu", "Lead Angle (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, deadang, 0, deadang, deadang, deadang_state, deadang, ROT0, "Seibu Kaihatsu", "Dead Angle", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, leadang, deadang, deadang, deadang, deadang_state, deadang, ROT0, "Seibu Kaihatsu", "Lead Angle (Japan)", MACHINE_SUPPORTS_SAVE ) GAME( 1988, ghunter, deadang, deadang, ghunter, deadang_state, ghunter, ROT0, "Seibu Kaihatsu", "Gang Hunter / Dead Angle", MACHINE_SUPPORTS_SAVE ) // Title is 'Gang Hunter' or 'Dead Angle' depending on control method dipswitch GAME( 1988, ghunters, deadang, deadang, ghunter, deadang_state, ghunter, ROT0, "Seibu Kaihatsu (Segasa/Sonic license)", "Gang Hunter / Dead Angle (Spain)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/dec0.cpp b/src/mame/drivers/dec0.cpp index 45be093de3d..719b9cbbd10 100644 --- a/src/mame/drivers/dec0.cpp +++ b/src/mame/drivers/dec0.cpp @@ -1449,7 +1449,7 @@ GFXDECODE_END #define DEC0_VBSTART 256-8 -static MACHINE_CONFIG_START( dec0_base, dec0_state ) +static MACHINE_CONFIG_START( dec0_base ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -1510,7 +1510,7 @@ static MACHINE_CONFIG_DERIVED( dec0, dec0_base ) MCFG_YM3812_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) - MCFG_OKIM6295_ADD("oki", XTAL_20MHz / 2 / 10, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", XTAL_20MHz / 2 / 10, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) MACHINE_CONFIG_END @@ -1538,7 +1538,7 @@ static MACHINE_CONFIG_DERIVED( dec1, dec0_base ) MCFG_YM3812_IRQ_HANDLER(INPUTLINE("audiocpu", 1)) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) - MCFG_OKIM6295_ADD("oki", XTAL_12MHz/12, OKIM6295_PIN7_HIGH) /* verified on pcb */ + MCFG_OKIM6295_ADD("oki", XTAL_12MHz/12, PIN7_HIGH) /* verified on pcb */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) MACHINE_CONFIG_END @@ -1571,7 +1571,7 @@ WRITE_LINE_MEMBER(dec0_automat_state::msm2_vclk_cb) } -static MACHINE_CONFIG_START( automat, dec0_automat_state ) +static MACHINE_CONFIG_START( automat ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 10000000) @@ -1636,17 +1636,17 @@ static MACHINE_CONFIG_START( automat, dec0_automat_state ) MCFG_SOUND_ADD("msm1", MSM5205, 384000) MCFG_MSM5205_VCLK_CB(WRITELINE(dec0_automat_state, msm1_vclk_cb)) - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S96_4B) + MCFG_MSM5205_PRESCALER_SELECTOR(S96_4B) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MCFG_SOUND_ADD("msm2", MSM5205, 384000) MCFG_MSM5205_VCLK_CB(WRITELINE(dec0_automat_state, msm2_vclk_cb)) - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S96_4B) + MCFG_MSM5205_PRESCALER_SELECTOR(S96_4B) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END // this seems very similar to the automat bootleg -static MACHINE_CONFIG_START( secretab, dec0_automat_state ) +static MACHINE_CONFIG_START( secretab ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_20MHz/2) /* verified on pcb (20MHZ OSC) 68000P12 running at 10Mhz */ @@ -1708,12 +1708,12 @@ static MACHINE_CONFIG_START( secretab, dec0_automat_state ) MCFG_SOUND_ADD("msm1", MSM5205, 384000) MCFG_MSM5205_VCLK_CB(WRITELINE(dec0_automat_state, msm1_vclk_cb)) - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S96_4B) + MCFG_MSM5205_PRESCALER_SELECTOR(S96_4B) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MCFG_SOUND_ADD("msm2", MSM5205, 384000) MCFG_MSM5205_VCLK_CB(WRITELINE(dec0_automat_state, msm2_vclk_cb)) - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S96_4B) + MCFG_MSM5205_PRESCALER_SELECTOR(S96_4B) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -3586,9 +3586,9 @@ GAME( 1989, secretagj, secretag, slyspy, slyspy, dec0_state, slyspy, ROT0 GAME( 1989, slyspy, secretag, slyspy, slyspy, dec0_state, slyspy, ROT0, "Data East USA", "Sly Spy (US revision 4)", MACHINE_SUPPORTS_SAVE ) GAME( 1989, slyspy3, secretag, slyspy, slyspy, dec0_state, slyspy, ROT0, "Data East USA", "Sly Spy (US revision 3)", MACHINE_SUPPORTS_SAVE ) GAME( 1989, slyspy2, secretag, slyspy, slyspy, dec0_state, slyspy, ROT0, "Data East USA", "Sly Spy (US revision 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, midres, 0, midres, midres, driver_device, 0, ROT0, "Data East Corporation", "Midnight Resistance (World)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, midresu, midres, midres, midresu, driver_device, 0, ROT0, "Data East USA", "Midnight Resistance (US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, midresj, midres, midres, midresu, driver_device, 0, ROT0, "Data East Corporation", "Midnight Resistance (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, midres, 0, midres, midres, dec0_state, 0, ROT0, "Data East Corporation", "Midnight Resistance (World)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, midresu, midres, midres, midresu, dec0_state, 0, ROT0, "Data East USA", "Midnight Resistance (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, midresj, midres, midres, midresu, dec0_state, 0, ROT0, "Data East Corporation", "Midnight Resistance (Japan)", MACHINE_SUPPORTS_SAVE ) GAME( 1990, bouldash, 0, slyspy, bouldash, dec0_state, slyspy, ROT0, "Data East Corporation (licensed from First Star)", "Boulder Dash / Boulder Dash Part 2 (World)", MACHINE_SUPPORTS_SAVE ) GAME( 1990, bouldashj, bouldash, slyspy, bouldash, dec0_state, slyspy, ROT0, "Data East Corporation (licensed from First Star)", "Boulder Dash / Boulder Dash Part 2 (Japan)", MACHINE_SUPPORTS_SAVE ) @@ -3606,5 +3606,5 @@ GAME( 1989, ffantasybl, hippodrm, ffantasybl, ffantasybl, dec0_state, ffantasybl GAME( 1988, drgninjab2, baddudes, drgninjab, drgninja, dec0_state, drgninja, ROT0, "bootleg", "Dragonninja (bootleg with 68705)", MACHINE_SUPPORTS_SAVE ) // is this the same board as above? (region warning hacked to World, but still shows Japanese text) // these are different to the above but quite similar to each other -GAME( 1988, automat, robocop, automat, robocop, dec0_state, robocop, ROT0, "bootleg", "Automat (bootleg of Robocop)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // sound rom / music from section z with mods for ADPCM? -GAME( 1989, secretab, secretag, secretab, slyspy, driver_device, 0, ROT0, "bootleg", "Secret Agent (bootleg)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1988, automat, robocop, automat, robocop, dec0_automat_state, robocop, ROT0, "bootleg", "Automat (bootleg of Robocop)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // sound rom / music from section z with mods for ADPCM? +GAME( 1989, secretab, secretag, secretab, slyspy, dec0_automat_state, 0, ROT0, "bootleg", "Secret Agent (bootleg)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/dec8.cpp b/src/mame/drivers/dec8.cpp index 0dc3c4af3d9..0d0d93b03c2 100644 --- a/src/mame/drivers/dec8.cpp +++ b/src/mame/drivers/dec8.cpp @@ -1987,7 +1987,7 @@ void dec8_state::machine_reset() #define DEC8_VBEND 8 #define DEC8_VBSTART 256-8 -static MACHINE_CONFIG_START( lastmisn, dec8_state ) +static MACHINE_CONFIG_START( lastmisn ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809, 2000000) @@ -2040,7 +2040,7 @@ static MACHINE_CONFIG_START( lastmisn, dec8_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.70) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( shackled, dec8_state ) +static MACHINE_CONFIG_START( shackled ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809, 2000000) @@ -2094,7 +2094,7 @@ static MACHINE_CONFIG_START( shackled, dec8_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.70) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( gondo, dec8_state ) +static MACHINE_CONFIG_START( gondo ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", HD6309,3000000*4) /* HD63C09EP */ @@ -2148,7 +2148,7 @@ static MACHINE_CONFIG_START( gondo, dec8_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.70) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( garyoret, dec8_state ) +static MACHINE_CONFIG_START( garyoret ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", HD6309,3000000*4) /* HD63C09EP */ @@ -2202,7 +2202,7 @@ static MACHINE_CONFIG_START( garyoret, dec8_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.70) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( ghostb, dec8_state ) +static MACHINE_CONFIG_START( ghostb ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", HD6309, 3000000*4) @@ -2266,7 +2266,7 @@ static MACHINE_CONFIG_DERIVED( meikyuh, ghostb ) MCFG_CPU_PROGRAM_MAP(dec8_s_map) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( csilver, dec8_state ) +static MACHINE_CONFIG_START( csilver ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809, XTAL_12MHz/8) /* verified on pcb */ @@ -2321,11 +2321,11 @@ static MACHINE_CONFIG_START( csilver, dec8_state ) MCFG_SOUND_ADD("msm", MSM5205, XTAL_384kHz) /* verified on pcb */ MCFG_MSM5205_VCLK_CB(WRITELINE(dec8_state, csilver_adpcm_int)) /* interrupt function */ - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S48_4B) /* 8KHz */ + MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) /* 8KHz */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.88) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( oscar, dec8_state ) +static MACHINE_CONFIG_START( oscar ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", HD6309, XTAL_12MHz/2) /* verified on pcb */ @@ -2383,7 +2383,7 @@ static MACHINE_CONFIG_START( oscar, dec8_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.70) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( srdarwin, dec8_state ) +static MACHINE_CONFIG_START( srdarwin ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809,2000000) /* MC68A09EP */ @@ -2429,7 +2429,7 @@ static MACHINE_CONFIG_START( srdarwin, dec8_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.70) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( cobracom, dec8_state ) +static MACHINE_CONFIG_START( cobracom ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809, 2000000) @@ -3704,28 +3704,28 @@ DRIVER_INIT_MEMBER(dec8_state,cobracom) /******************************************************************************/ -GAME( 1986, lastmisn, 0, lastmisn, lastmisn, dec8_state, lastmisn, ROT270, "Data East USA", "Last Mission (US revision 6)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, lastmisno, lastmisn, lastmisn, lastmisn, dec8_state, lastmisn, ROT270, "Data East USA", "Last Mission (US revision 5)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, lastmisn, 0, lastmisn, lastmisn, dec8_state, lastmisn, ROT270, "Data East USA", "Last Mission (US revision 6)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, lastmisno, lastmisn, lastmisn, lastmisn, dec8_state, lastmisn, ROT270, "Data East USA", "Last Mission (US revision 5)", MACHINE_SUPPORTS_SAVE ) GAME( 1986, lastmisnj, lastmisn, lastmisn, lastmisnj, dec8_state, lastmisn, ROT270, "Data East Corporation", "Last Mission (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, shackled, 0, shackled, shackled, dec8_state, shackled, ROT0, "Data East USA", "Shackled (US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, breywood, shackled, shackled, breywood, dec8_state, shackled, ROT0, "Data East Corporation", "Breywood (Japan revision 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, gondo, 0, gondo, gondo, dec8_state, gondo, ROT270, "Data East USA", "Gondomania (US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, makyosen, gondo, gondo, gondo, dec8_state, gondo, ROT270, "Data East Corporation", "Makyou Senshi (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, garyoret, 0, garyoret, garyoret, dec8_state, garyoret, ROT0, "Data East Corporation", "Garyo Retsuden (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, ghostb, 0, ghostb, ghostb, dec8_state, ghostb, ROT0, "Data East USA", "The Real Ghostbusters (US 2 Players, revision 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, ghostb2a, ghostb, ghostb, ghostb2a, dec8_state, ghostb, ROT0, "Data East USA", "The Real Ghostbusters (US 2 Players)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, ghostb3, ghostb, ghostb, ghostb3, dec8_state, ghostb, ROT0, "Data East USA", "The Real Ghostbusters (US 3 Players)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, ghostb3a, ghostb, ghostb, ghostb3, dec8_state, ghostb, ROT0, "Data East USA", "The Real Ghostbusters (US 3 Players, revision ?)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // ROMs confirmed working on PCB, confirmed problem with the fake MCU ROM -GAME( 1987, meikyuh, ghostb, meikyuh, meikyuh, dec8_state, meikyuh, ROT0, "Data East Corporation", "Meikyuu Hunter G (Japan, set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, meikyuha, ghostb, meikyuh, meikyuh, dec8_state, meikyuh, ROT0, "Data East Corporation", "Meikyuu Hunter G (Japan, set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, csilver, 0, csilver, csilver, dec8_state, csilver, ROT0, "Data East Corporation", "Captain Silver (World)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, csilverj, csilver, csilver, csilverj, dec8_state, csilver, ROT0, "Data East Corporation", "Captain Silver (Japan, revision 3)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, csilverja, csilver, csilver, csilverj, dec8_state, csilver, ROT0, "Data East Corporation", "Captain Silver (Japan, revision 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, oscar, 0, oscar, oscar, dec8_state, oscar, ROT0, "Data East Corporation", "Psycho-Nics Oscar (World revision 0)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, oscaru, oscar, oscar, oscarj, dec8_state, oscar, ROT0, "Data East USA", "Psycho-Nics Oscar (US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, oscarj1, oscar, oscar, oscarj, dec8_state, oscar, ROT0, "Data East Corporation", "Psycho-Nics Oscar (Japan revision 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, oscarj2, oscar, oscar, oscarj, dec8_state, oscar, ROT0, "Data East Corporation", "Psycho-Nics Oscar (Japan revision 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, srdarwin, 0, srdarwin, srdarwin, dec8_state, srdarwin, ROT270, "Data East Corporation", "Super Real Darwin (World)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, shackled, 0, shackled, shackled, dec8_state, shackled, ROT0, "Data East USA", "Shackled (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, breywood, shackled, shackled, breywood, dec8_state, shackled, ROT0, "Data East Corporation", "Breywood (Japan revision 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, gondo, 0, gondo, gondo, dec8_state, gondo, ROT270, "Data East USA", "Gondomania (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, makyosen, gondo, gondo, gondo, dec8_state, gondo, ROT270, "Data East Corporation", "Makyou Senshi (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, garyoret, 0, garyoret, garyoret, dec8_state, garyoret, ROT0, "Data East Corporation", "Garyo Retsuden (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, ghostb, 0, ghostb, ghostb, dec8_state, ghostb, ROT0, "Data East USA", "The Real Ghostbusters (US 2 Players, revision 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, ghostb2a, ghostb, ghostb, ghostb2a, dec8_state, ghostb, ROT0, "Data East USA", "The Real Ghostbusters (US 2 Players)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, ghostb3, ghostb, ghostb, ghostb3, dec8_state, ghostb, ROT0, "Data East USA", "The Real Ghostbusters (US 3 Players)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, ghostb3a, ghostb, ghostb, ghostb3, dec8_state, ghostb, ROT0, "Data East USA", "The Real Ghostbusters (US 3 Players, revision ?)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // ROMs confirmed working on PCB, confirmed problem with the fake MCU ROM +GAME( 1987, meikyuh, ghostb, meikyuh, meikyuh, dec8_state, meikyuh, ROT0, "Data East Corporation", "Meikyuu Hunter G (Japan, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, meikyuha, ghostb, meikyuh, meikyuh, dec8_state, meikyuh, ROT0, "Data East Corporation", "Meikyuu Hunter G (Japan, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, csilver, 0, csilver, csilver, dec8_state, csilver, ROT0, "Data East Corporation", "Captain Silver (World)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, csilverj, csilver, csilver, csilverj, dec8_state, csilver, ROT0, "Data East Corporation", "Captain Silver (Japan, revision 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, csilverja, csilver, csilver, csilverj, dec8_state, csilver, ROT0, "Data East Corporation", "Captain Silver (Japan, revision 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, oscar, 0, oscar, oscar, dec8_state, oscar, ROT0, "Data East Corporation", "Psycho-Nics Oscar (World revision 0)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, oscaru, oscar, oscar, oscarj, dec8_state, oscar, ROT0, "Data East USA", "Psycho-Nics Oscar (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, oscarj1, oscar, oscar, oscarj, dec8_state, oscar, ROT0, "Data East Corporation", "Psycho-Nics Oscar (Japan revision 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, oscarj2, oscar, oscar, oscarj, dec8_state, oscar, ROT0, "Data East Corporation", "Psycho-Nics Oscar (Japan revision 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, srdarwin, 0, srdarwin, srdarwin, dec8_state, srdarwin, ROT270, "Data East Corporation", "Super Real Darwin (World)", MACHINE_SUPPORTS_SAVE ) GAME( 1987, srdarwinj, srdarwin, srdarwin, srdarwinj, dec8_state, srdarwin, ROT270, "Data East Corporation", "Super Real Darwin (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, cobracom, 0, cobracom, cobracom, dec8_state, cobracom, ROT0, "Data East Corporation", "Cobra-Command (World revision 5)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, cobracomj, cobracom, cobracom, cobracom, dec8_state, cobracom, ROT0, "Data East Corporation", "Cobra-Command (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, cobracom, 0, cobracom, cobracom, dec8_state, cobracom, ROT0, "Data East Corporation", "Cobra-Command (World revision 5)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, cobracomj, cobracom, cobracom, cobracom, dec8_state, cobracom, ROT0, "Data East Corporation", "Cobra-Command (Japan)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/deco156.cpp b/src/mame/drivers/deco156.cpp index a837dc960f7..d909e9cc1bb 100644 --- a/src/mame/drivers/deco156.cpp +++ b/src/mame/drivers/deco156.cpp @@ -339,7 +339,7 @@ DECOSPR_PRIORITY_CB_MEMBER(deco156_state::pri_callback) return 0; } -static MACHINE_CONFIG_START( hvysmsh, deco156_state ) +static MACHINE_CONFIG_START( hvysmsh ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", ARM, 28000000) /* Unconfirmed */ @@ -381,16 +381,16 @@ static MACHINE_CONFIG_START( hvysmsh, deco156_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_OKIM6295_ADD("oki1", 28000000/28, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki1", 28000000/28, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) - MCFG_OKIM6295_ADD("oki2", 28000000/14, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki2", 28000000/14, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.35) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.35) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( wcvol95, deco156_state ) +static MACHINE_CONFIG_START( wcvol95 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", ARM, 28000000) /* Unconfirmed */ diff --git a/src/mame/drivers/deco32.cpp b/src/mame/drivers/deco32.cpp index ffb6d966dd5..7224cbd3c3a 100644 --- a/src/mame/drivers/deco32.cpp +++ b/src/mame/drivers/deco32.cpp @@ -1824,7 +1824,7 @@ DECO16IC_BANK_CB_MEMBER(deco32_state::captaven_bank_callback) return bank * 0x4000; } -static MACHINE_CONFIG_START( captaven, deco32_state ) +static MACHINE_CONFIG_START( captaven ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", ARM, XTAL_28MHz/4) /* verified on pcb (Data East 101 custom)*/ @@ -1897,11 +1897,11 @@ static MACHINE_CONFIG_START( captaven, deco32_state ) MCFG_SOUND_ROUTE(0, "lspeaker", 0.42) MCFG_SOUND_ROUTE(1, "rspeaker", 0.42) - MCFG_OKIM6295_ADD("oki1", XTAL_32_22MHz/32, OKIM6295_PIN7_HIGH) /* verified on pcb; pin 7 is floating to 2.5V (left unconnected), so I presume High */ + MCFG_OKIM6295_ADD("oki1", XTAL_32_22MHz/32, PIN7_HIGH) /* verified on pcb; pin 7 is floating to 2.5V (left unconnected), so I presume High */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) - MCFG_OKIM6295_ADD("oki2", XTAL_32_22MHz/16, OKIM6295_PIN7_HIGH) /* verified on pcb; pin 7 is floating to 2.5V (left unconnected), so I presume High */ + MCFG_OKIM6295_ADD("oki2", XTAL_32_22MHz/16, PIN7_HIGH) /* verified on pcb; pin 7 is floating to 2.5V (left unconnected), so I presume High */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.35) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.35) MACHINE_CONFIG_END @@ -1930,7 +1930,7 @@ DECO16IC_BANK_CB_MEMBER(deco32_state::fghthist_bank_callback) return bank * 0x1000; } -static MACHINE_CONFIG_START( fghthist, deco32_state ) /* DE-0380-2 PCB */ +static MACHINE_CONFIG_START( fghthist ) /* DE-0380-2 PCB */ /* basic machine hardware */ MCFG_CPU_ADD("maincpu", ARM, 28000000/4) @@ -2006,16 +2006,16 @@ static MACHINE_CONFIG_START( fghthist, deco32_state ) /* DE-0380-2 PCB */ MCFG_SOUND_ROUTE(0, "lspeaker", 0.42) MCFG_SOUND_ROUTE(1, "rspeaker", 0.42) - MCFG_OKIM6295_ADD("oki1", 32220000/32, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki1", 32220000/32, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) - MCFG_OKIM6295_ADD("oki2", 32220000/16, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki2", 32220000/16, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.35) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.35) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( fghthsta, deco32_state ) /* DE-0395-1 PCB */ +static MACHINE_CONFIG_START( fghthsta ) /* DE-0395-1 PCB */ /* basic machine hardware */ MCFG_CPU_ADD("maincpu", ARM, 28000000/4) @@ -2090,11 +2090,11 @@ static MACHINE_CONFIG_START( fghthsta, deco32_state ) /* DE-0395-1 PCB */ MCFG_SOUND_ROUTE(0, "lspeaker", 0.42) MCFG_SOUND_ROUTE(1, "rspeaker", 0.42) - MCFG_OKIM6295_ADD("oki1", 32220000/32, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki1", 32220000/32, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) - MCFG_OKIM6295_ADD("oki2", 32220000/16, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki2", 32220000/16, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.35) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.35) MACHINE_CONFIG_END @@ -2138,7 +2138,7 @@ DECO16IC_BANK_CB_MEMBER(dragngun_state::bank_2_callback) return bank * 0x1000; } -static MACHINE_CONFIG_START( dragngun, dragngun_state ) +static MACHINE_CONFIG_START( dragngun ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", ARM, 28000000/4) @@ -2216,15 +2216,15 @@ static MACHINE_CONFIG_START( dragngun, dragngun_state ) MCFG_SOUND_ROUTE(0, "lspeaker", 0.42) MCFG_SOUND_ROUTE(1, "rspeaker", 0.42) - MCFG_OKIM6295_ADD("oki1", 32220000/32, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki1", 32220000/32, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) - MCFG_OKIM6295_ADD("oki2", 32220000/16, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki2", 32220000/16, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.35) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.35) - MCFG_OKIM6295_ADD("oki3", 32220000/32, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki3", 32220000/32, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) MACHINE_CONFIG_END @@ -2248,7 +2248,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(dragngun_state::lockload_vbl_irq) } -static MACHINE_CONFIG_START( lockload, dragngun_state ) +static MACHINE_CONFIG_START( lockload ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", ARM, 28000000/4) @@ -2328,11 +2328,11 @@ static MACHINE_CONFIG_START( lockload, dragngun_state ) MCFG_SOUND_ROUTE(0, "lspeaker", 0.42) MCFG_SOUND_ROUTE(1, "rspeaker", 0.42) - MCFG_OKIM6295_ADD("oki1", 32220000/32, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki1", 32220000/32, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) - MCFG_OKIM6295_ADD("oki2", 32220000/32, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki2", 32220000/32, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.35) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.35) MACHINE_CONFIG_END @@ -2353,7 +2353,7 @@ DECO16IC_BANK_CB_MEMBER(deco32_state::tattass_bank_callback) return bank * 0x1000; } -static MACHINE_CONFIG_START( tattass, deco32_state ) +static MACHINE_CONFIG_START( tattass ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", ARM, 28000000/4) // unconfirmed @@ -2420,7 +2420,7 @@ static MACHINE_CONFIG_START( tattass, deco32_state ) MCFG_DECOBSMT_ADD(DECOBSMT_TAG) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( nslasher, deco32_state ) +static MACHINE_CONFIG_START( nslasher ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", ARM, 28322000/4) @@ -2500,11 +2500,11 @@ static MACHINE_CONFIG_START( nslasher, deco32_state ) MCFG_SOUND_ROUTE(0, "lspeaker", 0.40) MCFG_SOUND_ROUTE(1, "rspeaker", 0.40) - MCFG_OKIM6295_ADD("oki1", 32220000/32, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki1", 32220000/32, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.80) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.80) - MCFG_OKIM6295_ADD("oki2", 32220000/16, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki2", 32220000/16, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.10) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.10) MACHINE_CONFIG_END diff --git a/src/mame/drivers/deco_ld.cpp b/src/mame/drivers/deco_ld.cpp index b9736735627..7a62b86dfb5 100644 --- a/src/mame/drivers/deco_ld.cpp +++ b/src/mame/drivers/deco_ld.cpp @@ -456,7 +456,7 @@ void deco_ld_state::machine_start() { } -static MACHINE_CONFIG_START( rblaster, deco_ld_state ) +static MACHINE_CONFIG_START( rblaster ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",M6502,8000000/2) @@ -659,9 +659,9 @@ ROM_END -GAME( 1983, begas, 0, rblaster, begas, driver_device, 0, ROT0, "Data East", "Bega's Battle (Revision 3)", MACHINE_NOT_WORKING ) -GAME( 1983, begas1, begas, rblaster, begas, driver_device, 0, ROT0, "Data East", "Bega's Battle (Revision 1)", MACHINE_NOT_WORKING ) -GAME( 1984, cobra, 0, rblaster, cobra, driver_device, 0, ROT0, "Data East", "Cobra Command (Data East LD, set 1)", MACHINE_NOT_WORKING ) -GAME( 1984, cobraa, cobra, rblaster, cobra, driver_device, 0, ROT0, "Data East", "Cobra Command (Data East LD, set 2)", MACHINE_NOT_WORKING ) // might be a prototype +GAME( 1983, begas, 0, rblaster, begas, deco_ld_state, 0, ROT0, "Data East", "Bega's Battle (Revision 3)", MACHINE_NOT_WORKING ) +GAME( 1983, begas1, begas, rblaster, begas, deco_ld_state, 0, ROT0, "Data East", "Bega's Battle (Revision 1)", MACHINE_NOT_WORKING ) +GAME( 1984, cobra, 0, rblaster, cobra, deco_ld_state, 0, ROT0, "Data East", "Cobra Command (Data East LD, set 1)", MACHINE_NOT_WORKING ) +GAME( 1984, cobraa, cobra, rblaster, cobra, deco_ld_state, 0, ROT0, "Data East", "Cobra Command (Data East LD, set 2)", MACHINE_NOT_WORKING ) // might be a prototype // Thunder Storm (Cobra Command Japanese version) -GAME( 1985, rblaster, 0, rblaster, rblaster, driver_device, 0, ROT0, "Data East", "Road Blaster (Data East LD)", MACHINE_NOT_WORKING ) +GAME( 1985, rblaster, 0, rblaster, rblaster, deco_ld_state, 0, ROT0, "Data East", "Road Blaster (Data East LD)", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/deco_mlc.cpp b/src/mame/drivers/deco_mlc.cpp index c0e336278ca..9fee581cfcc 100644 --- a/src/mame/drivers/deco_mlc.cpp +++ b/src/mame/drivers/deco_mlc.cpp @@ -502,7 +502,7 @@ MACHINE_RESET_MEMBER(deco_mlc_state,mlc) m_raster_irq_timer = machine().device("int_timer"); } -static MACHINE_CONFIG_START( avengrgs, deco_mlc_state ) +static MACHINE_CONFIG_START( avengrgs ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", SH2,42000000/2) /* 21 MHz clock confirmed on real board */ @@ -535,7 +535,7 @@ static MACHINE_CONFIG_START( avengrgs, deco_mlc_state ) MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( mlc, deco_mlc_state ) +static MACHINE_CONFIG_START( mlc ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", ARM,42000000/6) /* 42 MHz -> 7MHz clock confirmed on real board */ diff --git a/src/mame/drivers/decocass.cpp b/src/mame/drivers/decocass.cpp index 53660726a53..55b11a0c13b 100644 --- a/src/mame/drivers/decocass.cpp +++ b/src/mame/drivers/decocass.cpp @@ -773,7 +773,7 @@ PALETTE_INIT_MEMBER(decocass_state, decocass) } -static MACHINE_CONFIG_START( decocass, decocass_state ) +static MACHINE_CONFIG_START( decocass ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", DECO_222, HCLK4) /* the earlier revision board doesn't have the 222 but must have the same thing implemented in logic for the M6502 */ diff --git a/src/mame/drivers/dectalk.cpp b/src/mame/drivers/dectalk.cpp index 9a7dfa56a52..4c56da881a7 100644 --- a/src/mame/drivers/dectalk.cpp +++ b/src/mame/drivers/dectalk.cpp @@ -864,7 +864,7 @@ DRIVER_INIT_MEMBER(dectalk_state,dectalk) timer_set(attotime::from_hz(10000), TIMER_OUTFIFO_READ); } -static MACHINE_CONFIG_START( dectalk, dectalk_state ) +static MACHINE_CONFIG_START( dectalk ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_20MHz/2) /* E74 20MHz OSC (/2) */ MCFG_CPU_PROGRAM_MAP(m68k_mem) @@ -1010,5 +1010,5 @@ ROM_END Drivers ******************************************************************************/ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1984, dectalk, 0, 0, dectalk, dectalk, dectalk_state, dectalk, "Digital Equipment Corporation", "DECtalk DTC-01", MACHINE_NOT_WORKING ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +COMP( 1984, dectalk, 0, 0, dectalk, dectalk, dectalk_state, dectalk, "Digital Equipment Corporation", "DECtalk DTC-01", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/decwritr.cpp b/src/mame/drivers/decwritr.cpp index 9a7087ec88e..9b881fff4e7 100644 --- a/src/mame/drivers/decwritr.cpp +++ b/src/mame/drivers/decwritr.cpp @@ -381,7 +381,7 @@ void decwriter_state::machine_reset() // MACHINE DRIVERS //************************************************************************** -static MACHINE_CONFIG_START( la120, decwriter_state ) +static MACHINE_CONFIG_START( la120 ) MCFG_CPU_ADD("maincpu",I8080, XTAL_18MHz / 9) // 18Mhz xtal on schematics, using an i8224 clock divider/reset sanitizer IC MCFG_CPU_PROGRAM_MAP(la120_mem) @@ -438,5 +438,5 @@ ROM_END //************************************************************************** // DRIVERS //************************************************************************** -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1978, la120, 0, 0, la120, la120, driver_device, 0, "Digital Equipment Corporation", "DECwriter III (LA120)", MACHINE_NO_SOUND | MACHINE_IS_SKELETON | MACHINE_NOT_WORKING ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ +COMP( 1978, la120, 0, 0, la120, la120, decwriter_state, 0, "Digital Equipment Corporation", "DECwriter III (LA120)", MACHINE_NO_SOUND | MACHINE_IS_SKELETON | MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/deniam.cpp b/src/mame/drivers/deniam.cpp index ea4969c5a8e..ca1e338a95d 100644 --- a/src/mame/drivers/deniam.cpp +++ b/src/mame/drivers/deniam.cpp @@ -255,7 +255,7 @@ void deniam_state::machine_reset() m_oki->set_rom_bank(0); } -static MACHINE_CONFIG_START( deniam16b, deniam_state ) +static MACHINE_CONFIG_START( deniam16b ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000,XTAL_25MHz/2) /* 12.5Mhz verified */ @@ -290,11 +290,11 @@ static MACHINE_CONFIG_START( deniam16b, deniam_state ) MCFG_YM3812_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60) - MCFG_OKIM6295_ADD("oki", XTAL_25MHz/24, OKIM6295_PIN7_HIGH) /* 1.041620 measured, = 1.0416666Mhz verified */ + MCFG_OKIM6295_ADD("oki", XTAL_25MHz/24, PIN7_HIGH) /* 1.041620 measured, = 1.0416666Mhz verified */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( deniam16c, deniam_state ) +static MACHINE_CONFIG_START( deniam16c ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000,XTAL_25MHz/2) /* 12.5Mhz verified */ @@ -322,7 +322,7 @@ static MACHINE_CONFIG_START( deniam16c, deniam_state ) MCFG_SOUND_ADD("ymsnd", YM3812, XTAL_25MHz/6) /* "SM64" ym3812 clone; 4.166470 measured, = 4.166666Mhz verified) */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60) - MCFG_OKIM6295_ADD("oki", XTAL_25MHz/24, OKIM6295_PIN7_HIGH) /* 1.041620 measured, = 1.0416666Mhz verified */ + MCFG_OKIM6295_ADD("oki", XTAL_25MHz/24, PIN7_HIGH) /* 1.041620 measured, = 1.0416666Mhz verified */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -420,7 +420,7 @@ ROM_END -GAME( 1996, logicpro, 0, deniam16b, logicpr2, deniam_state, logicpro, ROT0, "Deniam", "Logic Pro (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1996, croquis, logicpro, deniam16b, logicpr2, deniam_state, logicpro, ROT0, "Deniam", "Croquis (Germany)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, karianx, 0, deniam16b, karianx, deniam_state, karianx, ROT0, "Deniam", "Karian Cross (Rev. 1.0)", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, logicpr2, 0, deniam16c, logicpr2, deniam_state, logicpro, ROT0, "Deniam", "Logic Pro 2 (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, logicpro, 0, deniam16b, logicpr2, deniam_state, logicpro, ROT0, "Deniam", "Logic Pro (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1996, croquis, logicpro, deniam16b, logicpr2, deniam_state, logicpro, ROT0, "Deniam", "Croquis (Germany)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, karianx, 0, deniam16b, karianx, deniam_state, karianx, ROT0, "Deniam", "Karian Cross (Rev. 1.0)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, logicpr2, 0, deniam16c, logicpr2, deniam_state, logicpro, ROT0, "Deniam", "Logic Pro 2 (Japan)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/deshoros.cpp b/src/mame/drivers/deshoros.cpp index 52669b33d80..b06f519baa4 100644 --- a/src/mame/drivers/deshoros.cpp +++ b/src/mame/drivers/deshoros.cpp @@ -261,7 +261,7 @@ void destiny_state::machine_reset() bank_select_w(m_maincpu->space(AS_PROGRAM), 0, 0); } -static MACHINE_CONFIG_START( destiny, destiny_state ) +static MACHINE_CONFIG_START( destiny ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809, XTAL_4MHz/2) @@ -314,4 +314,4 @@ ROM_START( destiny ) ROM_LOAD( "ag11.18a", 0x16000, 0x2000, CRC(5f7bf9f9) SHA1(281f89c0bccfcc2bdc1d4d0a5b9cc9a8ab2e7869) ) ROM_END -GAME( 1983, destiny, 0, destiny, destiny, driver_device, 0, ROT0, "Data East Corporation", "Destiny - The Fortuneteller (USA)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS|MACHINE_NODEVICE_PRINTER ) +GAME( 1983, destiny, 0, destiny, destiny, destiny_state, 0, ROT0, "Data East Corporation", "Destiny - The Fortuneteller (USA)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS|MACHINE_NODEVICE_PRINTER ) diff --git a/src/mame/drivers/destroyr.cpp b/src/mame/drivers/destroyr.cpp index 1b643230a0a..16b073f793e 100644 --- a/src/mame/drivers/destroyr.cpp +++ b/src/mame/drivers/destroyr.cpp @@ -490,7 +490,7 @@ void destroyr_state::machine_start() save_item(NAME(m_potsense)); } -static MACHINE_CONFIG_START( destroyr, destroyr_state ) +static MACHINE_CONFIG_START( destroyr ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6800, XTAL_12_096MHz / 16) @@ -565,5 +565,5 @@ ROM_START( destroyr1 ) ROM_END -GAMEL( 1977, destroyr, 0, destroyr, destroyr, driver_device, 0, ORIENTATION_FLIP_X, "Atari", "Destroyer (version O2)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE, layout_destroyr ) -GAMEL( 1977, destroyr1, destroyr, destroyr, destroyr, driver_device, 0, ORIENTATION_FLIP_X, "Atari", "Destroyer (version O1)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE, layout_destroyr ) +GAMEL( 1977, destroyr, 0, destroyr, destroyr, destroyr_state, 0, ORIENTATION_FLIP_X, "Atari", "Destroyer (version O2)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE, layout_destroyr ) +GAMEL( 1977, destroyr1, destroyr, destroyr, destroyr, destroyr_state, 0, ORIENTATION_FLIP_X, "Atari", "Destroyer (version O1)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE, layout_destroyr ) diff --git a/src/mame/drivers/dfruit.cpp b/src/mame/drivers/dfruit.cpp index 8b1852a2202..47adce90c6b 100644 --- a/src/mame/drivers/dfruit.cpp +++ b/src/mame/drivers/dfruit.cpp @@ -364,7 +364,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(dfruit_state::dfruit_irq_scanline) #define MASTER_CLOCK XTAL_14MHz -static MACHINE_CONFIG_START( dfruit, dfruit_state ) +static MACHINE_CONFIG_START( dfruit ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80,MASTER_CLOCK/2) //!!! TC0091LVC !!! @@ -417,4 +417,4 @@ ROM_START( dfruit ) ROM_LOAD( "c2.ic10", 0x00000, 0x80000, CRC(d869ab24) SHA1(382e874a846855a7f6f8811625aaa30d9dfa1ce2) ) ROM_END -GAME( 1993, dfruit, 0, dfruit, dfruit, driver_device, 0, ROT0, "Nippon Data Kiki / Star Fish", "Fruit Dream (Japan)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1993, dfruit, 0, dfruit, dfruit, dfruit_state, 0, ROT0, "Nippon Data Kiki / Star Fish", "Fruit Dream (Japan)", MACHINE_IMPERFECT_GRAPHICS ) diff --git a/src/mame/drivers/dgn_beta.cpp b/src/mame/drivers/dgn_beta.cpp index 56cd9f6ffce..e6f4b25b833 100644 --- a/src/mame/drivers/dgn_beta.cpp +++ b/src/mame/drivers/dgn_beta.cpp @@ -317,7 +317,7 @@ static SLOT_INTERFACE_START( dgnbeta_floppies ) SLOT_INTERFACE("dd", FLOPPY_35_DD) SLOT_INTERFACE_END -static MACHINE_CONFIG_START( dgnbeta, dgn_beta_state ) +static MACHINE_CONFIG_START( dgnbeta ) /* basic machine hardware */ MCFG_CPU_ADD(MAINCPU_TAG, M6809E, DGNBETA_CPU_SPEED_HZ) /* 2 MHz */ MCFG_CPU_PROGRAM_MAP(dgnbeta_map) @@ -418,5 +418,5 @@ ROM_START(dgnbeta) ROM_LOAD("betachar.rom" ,0x0000 ,0x2000 ,CRC(ca79d66c) SHA1(8e2090d471dd97a53785a7f44a49d3c8c85b41f2)) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1984, dgnbeta, 0, 0, dgnbeta, dgnbeta, driver_device, 0, "Dragon Data Ltd", "Dragon 128 (Beta)", MACHINE_NO_SOUND ) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 1984, dgnbeta, 0, 0, dgnbeta, dgnbeta, dgn_beta_state, 0, "Dragon Data Ltd", "Dragon 128 (Beta)", MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/dgpix.cpp b/src/mame/drivers/dgpix.cpp index 46aaaed084f..3401d14a68e 100644 --- a/src/mame/drivers/dgpix.cpp +++ b/src/mame/drivers/dgpix.cpp @@ -422,7 +422,7 @@ void dgpix_state::machine_reset() } -static MACHINE_CONFIG_START( dgpix, dgpix_state ) +static MACHINE_CONFIG_START( dgpix ) MCFG_CPU_ADD("maincpu", E132XT, 20000000*4) /* 4x internal multiplier */ MCFG_CPU_PROGRAM_MAP(cpu_map) MCFG_CPU_IO_MAP(io_map) diff --git a/src/mame/drivers/didact.cpp b/src/mame/drivers/didact.cpp index f44f4e65ad8..08c0879f2cf 100644 --- a/src/mame/drivers/didact.cpp +++ b/src/mame/drivers/didact.cpp @@ -1353,7 +1353,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(didact_state::scan_artwork) #define CAN09T_BAUDGEN_CLOCK XTAL_1_8432MHz #define CAN09T_ACIA_CLOCK (CAN09T_BAUDGEN_CLOCK / 12) -static MACHINE_CONFIG_START( can09t, can09t_state ) +static MACHINE_CONFIG_START( can09t ) MCFG_CPU_ADD("maincpu", M6809, XTAL_4_9152MHz) // IPL crystal MCFG_CPU_PROGRAM_MAP(can09t_map) @@ -1397,7 +1397,7 @@ MACHINE_CONFIG_END #define CAN09_X1_CLOCK XTAL_22_1184MHz /* UKI 22118.40 Khz */ #define CAN09_CPU_CLOCK (CAN09_X1_CLOCK / 16) /* ~1.38MHz Divider needs to be check but is the most likelly */ -static MACHINE_CONFIG_START( can09, can09_state ) +static MACHINE_CONFIG_START( can09 ) MCFG_CPU_ADD("maincpu", M6809E, CAN09_CPU_CLOCK) MCFG_CPU_PROGRAM_MAP(can09_map) @@ -1471,7 +1471,7 @@ static MACHINE_CONFIG_START( can09, can09_state ) #endif MACHINE_CONFIG_END -static MACHINE_CONFIG_START( e100, e100_state ) +static MACHINE_CONFIG_START( e100 ) MCFG_CPU_ADD("maincpu", M6802, XTAL_4MHz) MCFG_CPU_PROGRAM_MAP(e100_map) @@ -1532,7 +1532,7 @@ static MACHINE_CONFIG_START( e100, e100_state ) MCFG_TIMER_DRIVER_ADD_PERIODIC("video50hz", e100_state, rtc_w, attotime::from_hz(100)) /* Will be divided by two through toggle in the handler */ MACHINE_CONFIG_END -static MACHINE_CONFIG_START( md6802, md6802_state ) +static MACHINE_CONFIG_START( md6802 ) MCFG_CPU_ADD("maincpu", M6802, XTAL_4MHz) MCFG_CPU_PROGRAM_MAP(md6802_map) MCFG_DEFAULT_LAYOUT(layout_md6802) @@ -1565,7 +1565,7 @@ static MACHINE_CONFIG_START( md6802, md6802_state ) MCFG_RS232_PORT_ADD("rs232", default_rs232_devices, nullptr) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( mp68a, mp68a_state ) +static MACHINE_CONFIG_START( mp68a ) // Clock source is based on a N9602N Dual Retriggerable Resettable Monostable Multivibrator oscillator at aprox 505KHz. // Trimpot seems broken/stuck at 5K Ohm thu. ROM code 1Ms delay loops suggest 1MHz+ MCFG_CPU_ADD("maincpu", M6800, 505000) @@ -1676,9 +1676,9 @@ ROM_START( mp68a ) // ROM image from http://elektronikforumet.com/forum/viewtopi ROM_LOAD( "didactB.bin", 0x0a00, 0x0200, CRC(592898dc) SHA1(2962f4817712cae97f3ab37b088fc73e66535ff8) ) ROM_END -// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS -COMP( 1979, mp68a, 0, 0, mp68a, mp68a, driver_device, 0, "Didact AB", "mp68a", MACHINE_NO_SOUND_HW ) -COMP( 1982, e100, 0, 0, e100, e100, driver_device, 0, "Didact AB", "Esselte 100", MACHINE_NO_SOUND_HW ) -COMP( 1983, md6802, 0, 0, md6802, md6802, driver_device, 0, "Didact AB", "Mikrodator 6802", MACHINE_NO_SOUND_HW ) -COMP( 1984, can09, 0, 0, can09, can09, driver_device, 0, "Candela Data AB", "Candela CAN09 main unit", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW ) -COMP( 1984, can09t, 0, 0, can09t, can09t, driver_device, 0, "Candela Data AB", "Candela CAN09 terminal", MACHINE_NO_SOUND_HW ) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 1979, mp68a, 0, 0, mp68a, mp68a, mp68a_state, 0, "Didact AB", "mp68a", MACHINE_NO_SOUND_HW ) +COMP( 1982, e100, 0, 0, e100, e100, e100_state, 0, "Didact AB", "Esselte 100", MACHINE_NO_SOUND_HW ) +COMP( 1983, md6802, 0, 0, md6802, md6802, md6802_state, 0, "Didact AB", "Mikrodator 6802", MACHINE_NO_SOUND_HW ) +COMP( 1984, can09, 0, 0, can09, can09, can09_state, 0, "Candela Data AB", "Candela CAN09 main unit", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW ) +COMP( 1984, can09t, 0, 0, can09t, can09t, can09t_state, 0, "Candela Data AB", "Candela CAN09 terminal", MACHINE_NO_SOUND_HW ) diff --git a/src/mame/drivers/dietgo.cpp b/src/mame/drivers/dietgo.cpp index b19aa584ac4..263cf340431 100644 --- a/src/mame/drivers/dietgo.cpp +++ b/src/mame/drivers/dietgo.cpp @@ -209,7 +209,7 @@ void dietgo_state::machine_start() { } -static MACHINE_CONFIG_START( dietgo, dietgo_state ) +static MACHINE_CONFIG_START( dietgo ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_28MHz/2) /* DE102 (verified on pcb) */ @@ -268,7 +268,7 @@ static MACHINE_CONFIG_START( dietgo, dietgo_state ) MCFG_YM2151_IRQ_HANDLER(INPUTLINE("audiocpu", 1)) /* IRQ 2 */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.45) - MCFG_OKIM6295_ADD("oki", XTAL_32_22MHz/32, OKIM6295_PIN7_HIGH) /* verified on pcb */ + MCFG_OKIM6295_ADD("oki", XTAL_32_22MHz/32, PIN7_HIGH) /* verified on pcb */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60) MACHINE_CONFIG_END diff --git a/src/mame/drivers/digel804.cpp b/src/mame/drivers/digel804.cpp index 50dbb4fa138..95378832eec 100644 --- a/src/mame/drivers/digel804.cpp +++ b/src/mame/drivers/digel804.cpp @@ -85,7 +85,7 @@ public: required_device m_maincpu; required_device m_speaker; required_device m_acia; - required_device m_vfd; + required_device m_vfd; required_device m_kb; required_device m_ram; required_memory_bank m_rambank; @@ -584,7 +584,7 @@ WRITE_LINE_MEMBER( digel804_state::ep804_acia_irq_w ) { } -static MACHINE_CONFIG_START( digel804, digel804_state ) +static MACHINE_CONFIG_START( digel804 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_3_6864MHz/2) /* Z80A, X1(aka E0 on schematics): 3.6864Mhz */ MCFG_CPU_PROGRAM_MAP(z80_mem_804_1_4) @@ -723,6 +723,6 @@ ROM_END Drivers ******************************************************************************/ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1985, digel804, 0, 0, digel804, digel804, digel804_state, digel804, "Digelec, Inc", "Digelec 804 EPROM Programmer", MACHINE_NOT_WORKING ) -COMP( 1982, ep804, digel804, 0, ep804, digel804, digel804_state, digel804, "Wavetek/Digelec, Inc", "EP804 EPROM Programmer", MACHINE_NOT_WORKING ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1985, digel804, 0, 0, digel804, digel804, digel804_state, digel804, "Digelec, Inc", "Digelec 804 EPROM Programmer", MACHINE_NOT_WORKING ) +COMP( 1982, ep804, digel804, 0, ep804, digel804, digel804_state, digel804, "Wavetek/Digelec, Inc", "EP804 EPROM Programmer", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/digijet.cpp b/src/mame/drivers/digijet.cpp index 6a3e18d374d..f21c4a650ad 100644 --- a/src/mame/drivers/digijet.cpp +++ b/src/mame/drivers/digijet.cpp @@ -45,7 +45,7 @@ ADDRESS_MAP_END static INPUT_PORTS_START( digijet ) INPUT_PORTS_END -static MACHINE_CONFIG_START( digijet, digijet_state ) +static MACHINE_CONFIG_START( digijet ) /* basic machine hardware */ MCFG_CPU_ADD(I8049_TAG, I8049, XTAL_11MHz) MCFG_CPU_IO_MAP(io_map) @@ -56,5 +56,5 @@ ROM_START( digijet ) ROM_LOAD( "vanagon_85_usa_ca.bin", 0x000, 0x800, CRC(2ed7c4c5) SHA1(ae48d8892b44fe76b48bcefd293c15cd47af3fba) ) // Volkswagen Vanagon, 1985, USA, California ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -CONS( 1985, digijet, 0, 0, digijet, digijet, driver_device, 0, "Volkswagen", "Digijet", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +CONS( 1985, digijet, 0, 0, digijet, digijet, digijet_state, 0, "Volkswagen", "Digijet", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW ) diff --git a/src/mame/drivers/dim68k.cpp b/src/mame/drivers/dim68k.cpp index bf528eeff99..8e9830fe9dd 100644 --- a/src/mame/drivers/dim68k.cpp +++ b/src/mame/drivers/dim68k.cpp @@ -54,7 +54,7 @@ public: , m_ram(*this, "ram") , m_palette(*this, "palette") , m_p_chargen(*this, "chargen") - { } + { } DECLARE_READ16_MEMBER( dim68k_duart_r ); DECLARE_READ16_MEMBER( dim68k_fdc_r ); @@ -69,7 +69,7 @@ public: DECLARE_WRITE16_MEMBER( dim68k_video_control_w ); DECLARE_WRITE16_MEMBER( dim68k_video_high_w ); DECLARE_WRITE16_MEMBER( dim68k_video_reset_w ); - DECLARE_WRITE8_MEMBER(kbd_put); + void kbd_put(u8 data); MC6845_UPDATE_ROW(crtc_update_row); private: @@ -298,12 +298,12 @@ static SLOT_INTERFACE_START( dim68k_floppies ) SLOT_INTERFACE( "525hd", FLOPPY_525_HD ) SLOT_INTERFACE_END -WRITE8_MEMBER( dim68k_state::kbd_put ) +void dim68k_state::kbd_put(u8 data) { m_term_data = data; } -static MACHINE_CONFIG_START( dim68k, dim68k_state ) +static MACHINE_CONFIG_START( dim68k ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_10MHz) MCFG_CPU_PROGRAM_MAP(dim68k_mem) @@ -334,7 +334,7 @@ static MACHINE_CONFIG_START( dim68k, dim68k_state ) MCFG_MC6845_UPDATE_ROW_CB(dim68k_state, crtc_update_row) MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0) - MCFG_GENERIC_KEYBOARD_CB(WRITE8(dim68k_state, kbd_put)) + MCFG_GENERIC_KEYBOARD_CB(PUT(dim68k_state, kbd_put)) // software lists MCFG_SOFTWARE_LIST_ADD("flop_list", "dim68k") @@ -397,5 +397,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1984, dim68k, 0, 0, dim68k, dim68k, driver_device, 0, "Micro Craft", "Dimension 68000", MACHINE_NOT_WORKING) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1984, dim68k, 0, 0, dim68k, dim68k, dim68k_state, 0, "Micro Craft", "Dimension 68000", MACHINE_NOT_WORKING) diff --git a/src/mame/drivers/discoboy.cpp b/src/mame/drivers/discoboy.cpp index 4115efef2b8..6bf30e5ad3d 100644 --- a/src/mame/drivers/discoboy.cpp +++ b/src/mame/drivers/discoboy.cpp @@ -443,7 +443,7 @@ WRITE_LINE_MEMBER(discoboy_state::yunsung8_adpcm_int) m_audiocpu->set_input_line(INPUT_LINE_NMI, m_toggle); } -static MACHINE_CONFIG_START( discoboy, discoboy_state ) +static MACHINE_CONFIG_START( discoboy ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_12MHz/2) /* 6 MHz? */ @@ -489,7 +489,7 @@ static MACHINE_CONFIG_START( discoboy, discoboy_state ) MCFG_SOUND_ADD("msm", MSM5205, XTAL_400kHz) MCFG_MSM5205_VCLK_CB(WRITELINE(discoboy_state, yunsung8_adpcm_int)) /* interrupt function */ - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S96_4B) /* 4KHz, 4 Bits */ + MCFG_MSM5205_PRESCALER_SELECTOR(S96_4B) /* 4KHz, 4 Bits */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.80) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.80) MACHINE_CONFIG_END diff --git a/src/mame/drivers/divebomb.cpp b/src/mame/drivers/divebomb.cpp index e06dc334728..bb1bcfd65e1 100644 --- a/src/mame/drivers/divebomb.cpp +++ b/src/mame/drivers/divebomb.cpp @@ -445,7 +445,7 @@ GFXDECODE_END * *************************************/ -static MACHINE_CONFIG_START( divebomb, divebomb_state ) +static MACHINE_CONFIG_START( divebomb ) MCFG_CPU_ADD("fgcpu", Z80,XTAL1/4) // ? MCFG_CPU_PROGRAM_MAP(divebomb_fgcpu_map) @@ -630,4 +630,4 @@ MACHINE_RESET_MEMBER(divebomb_state, divebomb) *************************************/ // According to a flyer, the world release was to be called 'Gaia'. The Gaia title graphics are present in the ROMs. -GAME( 1989, divebomb, 0, divebomb, divebomb, driver_device, 0, ROT270, "Konami", "Kyuukoukabakugekitai - Dive Bomber Squad (Japan, prototype)", MACHINE_IS_INCOMPLETE | MACHINE_SUPPORTS_SAVE ) +GAME( 1989, divebomb, 0, divebomb, divebomb, divebomb_state, 0, ROT270, "Konami", "Kyuukoukabakugekitai - Dive Bomber Squad (Japan, prototype)", MACHINE_IS_INCOMPLETE | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/diverboy.cpp b/src/mame/drivers/diverboy.cpp index 0f6195056f4..0183eb8946e 100644 --- a/src/mame/drivers/diverboy.cpp +++ b/src/mame/drivers/diverboy.cpp @@ -265,7 +265,7 @@ void diverboy_state::machine_start() { } -static MACHINE_CONFIG_START( diverboy, diverboy_state ) +static MACHINE_CONFIG_START( diverboy ) MCFG_CPU_ADD("maincpu", M68000, 12000000) /* guess */ MCFG_CPU_PROGRAM_MAP(diverboy_map) @@ -293,7 +293,7 @@ static MACHINE_CONFIG_START( diverboy, diverboy_state ) MCFG_GENERIC_LATCH_8_ADD("soundlatch") - MCFG_OKIM6295_ADD("oki", 1320000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki", 1320000, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) MACHINE_CONFIG_END @@ -340,4 +340,4 @@ ROM_END -GAME( 1992, diverboy, 0, diverboy, diverboy, driver_device, 0, ORIENTATION_FLIP_X, "Gamart (Electronic Devices Italy license)", "Diver Boy", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, diverboy, 0, diverboy, diverboy, diverboy_state, 0, ORIENTATION_FLIP_X, "Gamart (Electronic Devices Italy license)", "Diver Boy", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/djboy.cpp b/src/mame/drivers/djboy.cpp index 2265b898a08..520b07bca1e 100644 --- a/src/mame/drivers/djboy.cpp +++ b/src/mame/drivers/djboy.cpp @@ -547,7 +547,7 @@ void djboy_state::machine_reset() m_z80_to_beast_full = 0; } -static MACHINE_CONFIG_START( djboy, djboy_state ) +static MACHINE_CONFIG_START( djboy ) MCFG_CPU_ADD("maincpu", Z80, 6000000) MCFG_CPU_PROGRAM_MAP(cpu0_am) @@ -592,10 +592,10 @@ static MACHINE_CONFIG_START( djboy, djboy_state ) MCFG_SOUND_ADD("ymsnd", YM2203, 3000000) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) - MCFG_OKIM6295_ADD("oki1", 12000000 / 8, OKIM6295_PIN7_LOW) + MCFG_OKIM6295_ADD("oki1", 12000000 / 8, PIN7_LOW) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) - MCFG_OKIM6295_ADD("oki2", 12000000 / 8, OKIM6295_PIN7_LOW) + MCFG_OKIM6295_ADD("oki2", 12000000 / 8, PIN7_LOW) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) MACHINE_CONFIG_END diff --git a/src/mame/drivers/djmain.cpp b/src/mame/drivers/djmain.cpp index c38d9060599..37a23b46f93 100644 --- a/src/mame/drivers/djmain.cpp +++ b/src/mame/drivers/djmain.cpp @@ -1376,7 +1376,7 @@ void djmain_state::machine_reset() * *************************************/ -static MACHINE_CONFIG_START( djmainj, djmain_state ) +static MACHINE_CONFIG_START( djmainj ) /* basic machine hardware */ // popn3 works 9.6 MHz or slower in some songs */ diff --git a/src/mame/drivers/dkong.cpp b/src/mame/drivers/dkong.cpp index a0b35c7d9be..b8a96b4fa2a 100644 --- a/src/mame/drivers/dkong.cpp +++ b/src/mame/drivers/dkong.cpp @@ -1704,7 +1704,7 @@ WRITE_LINE_MEMBER(dkong_state::busreq_w ) m_dma8257->hlda_w(state); } -static MACHINE_CONFIG_START( dkong_base, dkong_state ) +static MACHINE_CONFIG_START( dkong_base ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, CLOCK_1H) @@ -1776,7 +1776,7 @@ static MACHINE_CONFIG_DERIVED( braze, dkong2b ) MCFG_EEPROM_SERIAL_93C46_8BIT_ADD("eeprom") MACHINE_CONFIG_END -static MACHINE_CONFIG_START( dkong3, dkong_state ) +static MACHINE_CONFIG_START( dkong3 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_8MHz / 2) /* verified in schematics */ @@ -3378,50 +3378,50 @@ DRIVER_INIT_MEMBER(dkong_state,dkingjr) * *************************************/ -GAME( 1980, radarscp, 0, radarscp, radarscp, driver_device, 0, ROT90, "Nintendo", "Radar Scope", MACHINE_SUPPORTS_SAVE ) -GAME( 1980, radarscp1, radarscp, radarscp1, radarscp, driver_device, 0, ROT90, "Nintendo", "Radar Scope (TRS01)", MACHINE_SUPPORTS_SAVE ) - -GAME( 1981, dkong, 0, dkong2b, dkong, driver_device, 0, ROT90, "Nintendo of America", "Donkey Kong (US set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, dkonghrd, dkong, dkong2b, dkong, driver_device, 0, ROT90, "Nintendo of America", "Donkey Kong (hard kit)", MACHINE_SUPPORTS_SAVE ) // not sure if original or bootleg (see notes on top of driver file) -GAME( 1981, dkongo, dkong, dkong2b, dkong, driver_device, 0, ROT90, "Nintendo", "Donkey Kong (US set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, dkongj, dkong, dkong2b, dkong, driver_device, 0, ROT90, "Nintendo", "Donkey Kong (Japan set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, dkongjo, dkong, dkong2b, dkong, driver_device, 0, ROT90, "Nintendo", "Donkey Kong (Japan set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, dkongjo1, dkong, dkong2b, dkong, driver_device, 0, ROT90, "Nintendo", "Donkey Kong (Japan set 3)", MACHINE_SUPPORTS_SAVE ) - -GAME( 2004, dkongf, dkong, dkong2b, dkongf, driver_device, 0, ROT90, "hack (Jeff Kulczycki)", "Donkey Kong Foundry (hack)", MACHINE_SUPPORTS_SAVE ) /* from Jeff's Romhack */ -GAME( 2006, dkongx, dkong, braze, dkongx, dkong_state, dkongx, ROT90, "hack (Braze Technologies)", "Donkey Kong II: Jumpman Returns (hack, V1.2)", MACHINE_SUPPORTS_SAVE ) -GAME( 2006, dkongx11, dkong, braze, dkongx, dkong_state, dkongx, ROT90, "hack (Braze Technologies)", "Donkey Kong II: Jumpman Returns (hack, V1.1)", MACHINE_SUPPORTS_SAVE ) -GAME( 2013, dkongpe, dkong, dkong2b, dkong, driver_device, 0, ROT90, "hack (Clay Cowgill and Mike Mika)", "Donkey Kong: Pauline Edition Rev 5 (2013-04-22)", MACHINE_SUPPORTS_SAVE ) - -GAME( 1982, dkongjr, 0, dkongjr, dkongjr, driver_device, 0, ROT90, "Nintendo of America", "Donkey Kong Junior (US set F-2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, dkongjrj, dkongjr, dkongjr, dkongjr, driver_device, 0, ROT90, "Nintendo", "Donkey Kong Jr. (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, dkongjnrj, dkongjr, dkongjr, dkongjr, driver_device, 0, ROT90, "Nintendo", "Donkey Kong Junior (Japan?)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, dkongjrb, dkongjr, dkongjr, dkongjr, driver_device, 0, ROT90, "bootleg", "Donkey Kong Jr. (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, dkongjre, dkongjr, dkongjr, dkongjr, driver_device, 0, ROT90, "Nintendo of America", "Donkey Kong Junior (E kit)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, dkongjrpb, dkongjr, dkongjr, dkongjr, driver_device, 0, ROT90, "bootleg", "Donkey Kong Junior (P kit, bootleg)", MACHINE_SUPPORTS_SAVE ) // definitely not issued by Nintendo -GAME( 1982, jrking, dkongjr, dkongjr, dkongjr, driver_device, 0, ROT90, "bootleg", "Junior King (bootleg of Donkey Kong Jr.)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, dkingjr, dkongjr, dkongjr, dkongjr, dkong_state, dkingjr, ROT90, "bootleg", "Donkey King Jr. (bootleg of Donkey Kong Jr.)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, maguila, dkongjr, dkongjr, dkongjr, dkong_state, dkingjr, ROT90, "bootleg (Aguipa)", "Up Maguila (bootleg of Donkey Kong Jr.)", MACHINE_SUPPORTS_SAVE ) - -GAME( 1983, dkong3, 0, dkong3, dkong3, driver_device, 0, ROT90, "Nintendo of America", "Donkey Kong 3 (US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, dkong3j, dkong3, dkong3, dkong3, driver_device, 0, ROT90, "Nintendo", "Donkey Kong 3 (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, dkong3b, dkong3, dkong3b, dkong3b, driver_device, 0, ROT90, "bootleg", "Donkey Kong 3 (bootleg on Donkey Kong Jr. hardware)", MACHINE_SUPPORTS_SAVE ) - -GAME( 1983, pestplce, mario, pestplce, pestplce, driver_device, 0, ROT180, "bootleg", "Pest Place", MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1980, radarscp, 0, radarscp, radarscp, dkong_state, 0, ROT90, "Nintendo", "Radar Scope", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, radarscp1, radarscp, radarscp1, radarscp, dkong_state, 0, ROT90, "Nintendo", "Radar Scope (TRS01)", MACHINE_SUPPORTS_SAVE ) + +GAME( 1981, dkong, 0, dkong2b, dkong, dkong_state, 0, ROT90, "Nintendo of America", "Donkey Kong (US set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, dkonghrd, dkong, dkong2b, dkong, dkong_state, 0, ROT90, "Nintendo of America", "Donkey Kong (hard kit)", MACHINE_SUPPORTS_SAVE ) // not sure if original or bootleg (see notes on top of driver file) +GAME( 1981, dkongo, dkong, dkong2b, dkong, dkong_state, 0, ROT90, "Nintendo", "Donkey Kong (US set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, dkongj, dkong, dkong2b, dkong, dkong_state, 0, ROT90, "Nintendo", "Donkey Kong (Japan set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, dkongjo, dkong, dkong2b, dkong, dkong_state, 0, ROT90, "Nintendo", "Donkey Kong (Japan set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, dkongjo1, dkong, dkong2b, dkong, dkong_state, 0, ROT90, "Nintendo", "Donkey Kong (Japan set 3)", MACHINE_SUPPORTS_SAVE ) + +GAME( 2004, dkongf, dkong, dkong2b, dkongf, dkong_state, 0, ROT90, "hack (Jeff Kulczycki)", "Donkey Kong Foundry (hack)", MACHINE_SUPPORTS_SAVE ) /* from Jeff's Romhack */ +GAME( 2006, dkongx, dkong, braze, dkongx, dkong_state, dkongx, ROT90, "hack (Braze Technologies)", "Donkey Kong II: Jumpman Returns (hack, V1.2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2006, dkongx11, dkong, braze, dkongx, dkong_state, dkongx, ROT90, "hack (Braze Technologies)", "Donkey Kong II: Jumpman Returns (hack, V1.1)", MACHINE_SUPPORTS_SAVE ) +GAME( 2013, dkongpe, dkong, dkong2b, dkong, dkong_state, 0, ROT90, "hack (Clay Cowgill and Mike Mika)", "Donkey Kong: Pauline Edition Rev 5 (2013-04-22)", MACHINE_SUPPORTS_SAVE ) + +GAME( 1982, dkongjr, 0, dkongjr, dkongjr, dkong_state, 0, ROT90, "Nintendo of America", "Donkey Kong Junior (US set F-2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, dkongjrj, dkongjr, dkongjr, dkongjr, dkong_state, 0, ROT90, "Nintendo", "Donkey Kong Jr. (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, dkongjnrj, dkongjr, dkongjr, dkongjr, dkong_state, 0, ROT90, "Nintendo", "Donkey Kong Junior (Japan?)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, dkongjrb, dkongjr, dkongjr, dkongjr, dkong_state, 0, ROT90, "bootleg", "Donkey Kong Jr. (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, dkongjre, dkongjr, dkongjr, dkongjr, dkong_state, 0, ROT90, "Nintendo of America", "Donkey Kong Junior (E kit)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, dkongjrpb, dkongjr, dkongjr, dkongjr, dkong_state, 0, ROT90, "bootleg", "Donkey Kong Junior (P kit, bootleg)", MACHINE_SUPPORTS_SAVE ) // definitely not issued by Nintendo +GAME( 1982, jrking, dkongjr, dkongjr, dkongjr, dkong_state, 0, ROT90, "bootleg", "Junior King (bootleg of Donkey Kong Jr.)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, dkingjr, dkongjr, dkongjr, dkongjr, dkong_state, dkingjr, ROT90, "bootleg", "Donkey King Jr. (bootleg of Donkey Kong Jr.)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, maguila, dkongjr, dkongjr, dkongjr, dkong_state, dkingjr, ROT90, "bootleg (Aguipa)", "Up Maguila (bootleg of Donkey Kong Jr.)", MACHINE_SUPPORTS_SAVE ) + +GAME( 1983, dkong3, 0, dkong3, dkong3, dkong_state, 0, ROT90, "Nintendo of America", "Donkey Kong 3 (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, dkong3j, dkong3, dkong3, dkong3, dkong_state, 0, ROT90, "Nintendo", "Donkey Kong 3 (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, dkong3b, dkong3, dkong3b, dkong3b, dkong_state, 0, ROT90, "bootleg", "Donkey Kong 3 (bootleg on Donkey Kong Jr. hardware)", MACHINE_SUPPORTS_SAVE ) + +GAME( 1983, pestplce, mario, pestplce, pestplce, dkong_state, 0, ROT180, "bootleg", "Pest Place", MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) /* 2650 based */ -GAME( 1984, herbiedk, huncholy, s2650, herbiedk, driver_device, 0, ROT90, "Century Electronics / Seatongrove Ltd", "Herbie at the Olympics (DK conversion)", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, hunchbkd, hunchbak, s2650, hunchbkd, driver_device, 0, ROT90, "Century Electronics", "Hunchback (DK conversion)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, sbdk, superbik, s2650, sbdk, driver_device, 0, ROT90, "Century Electronics", "Super Bike (DK conversion)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, herodk, hero, s2650, herodk, dkong_state, herodk, ROT90, "Seatongrove Ltd (Crown license)", "Hero in the Castle of Doom (DK conversion)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, herodku, hero, s2650, herodk, driver_device, 0, ROT90, "Seatongrove Ltd (Crown license)", "Hero in the Castle of Doom (DK conversion not encrypted)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, 8ballact, 0, s2650, 8ballact, driver_device, 0, ROT90, "Seatongrove Ltd (Magic Electronics USA license)", "Eight Ball Action (DK conversion)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, 8ballact2, 8ballact, s2650, 8ballact, driver_device, 0, ROT90, "Seatongrove Ltd (Magic Electronics USA license)", "Eight Ball Action (DKJr conversion)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, shootgal, 0, s2650, shootgal, driver_device, 0, ROT180, "Seatongrove Ltd (Zaccaria license)", "Shooting Gallery", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1985, spclforc, 0, spclforc, spclforc, driver_device, 0, ROT90, "Senko Industries (Magic Electronics Inc. license)", "Special Forces", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1985, spcfrcii, 0, spclforc, spclforc, driver_device, 0, ROT90, "Senko Industries (Magic Electronics Inc. license)", "Special Forces II", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1984, herbiedk, huncholy, s2650, herbiedk, dkong_state, 0, ROT90, "Century Electronics / Seatongrove Ltd", "Herbie at the Olympics (DK conversion)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, hunchbkd, hunchbak, s2650, hunchbkd, dkong_state, 0, ROT90, "Century Electronics", "Hunchback (DK conversion)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, sbdk, superbik, s2650, sbdk, dkong_state, 0, ROT90, "Century Electronics", "Super Bike (DK conversion)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, herodk, hero, s2650, herodk, dkong_state, herodk, ROT90, "Seatongrove Ltd (Crown license)", "Hero in the Castle of Doom (DK conversion)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, herodku, hero, s2650, herodk, dkong_state, 0, ROT90, "Seatongrove Ltd (Crown license)", "Hero in the Castle of Doom (DK conversion not encrypted)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, 8ballact, 0, s2650, 8ballact, dkong_state, 0, ROT90, "Seatongrove Ltd (Magic Electronics USA license)", "Eight Ball Action (DK conversion)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, 8ballact2, 8ballact, s2650, 8ballact, dkong_state, 0, ROT90, "Seatongrove Ltd (Magic Electronics USA license)", "Eight Ball Action (DKJr conversion)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, shootgal, 0, s2650, shootgal, dkong_state, 0, ROT180, "Seatongrove Ltd (Zaccaria license)", "Shooting Gallery", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1985, spclforc, 0, spclforc, spclforc, dkong_state, 0, ROT90, "Senko Industries (Magic Electronics Inc. license)", "Special Forces", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1985, spcfrcii, 0, spclforc, spclforc, dkong_state, 0, ROT90, "Senko Industries (Magic Electronics Inc. license)", "Special Forces II", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) /* EPOS */ -GAME( 1984, drakton, 0, drakton, drakton, dkong_state, drakton, ROT90, "Epos Corporation", "Drakton (DK conversion)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, drktnjr, drakton, drktnjr, drakton, dkong_state, drakton, ROT90, "Epos Corporation", "Drakton (DKJr conversion)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, strtheat, 0, strtheat, strtheat, dkong_state, strtheat, ROT90, "Epos Corporation", "Street Heat", MACHINE_SUPPORTS_SAVE ) // distributed by Cardinal Amusements Products (a division of Epos Corporation) +GAME( 1984, drakton, 0, drakton, drakton, dkong_state, drakton, ROT90, "Epos Corporation", "Drakton (DK conversion)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, drktnjr, drakton, drktnjr, drakton, dkong_state, drakton, ROT90, "Epos Corporation", "Drakton (DKJr conversion)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, strtheat, 0, strtheat, strtheat, dkong_state, strtheat, ROT90, "Epos Corporation", "Street Heat", MACHINE_SUPPORTS_SAVE ) // distributed by Cardinal Amusements Products (a division of Epos Corporation) diff --git a/src/mame/drivers/dlair.cpp b/src/mame/drivers/dlair.cpp index bfc45ed180c..8e71830d632 100644 --- a/src/mame/drivers/dlair.cpp +++ b/src/mame/drivers/dlair.cpp @@ -707,7 +707,7 @@ GFXDECODE_END * *************************************/ -static MACHINE_CONFIG_START( dlair_base, dlair_state ) +static MACHINE_CONFIG_START( dlair_base ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, MASTER_CLOCK_US/4) @@ -743,7 +743,7 @@ static MACHINE_CONFIG_DERIVED( dlair_ldv1000, dlair_base ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( dleuro, dlair_state ) +static MACHINE_CONFIG_START( dleuro ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, MASTER_CLOCK_EURO/4) diff --git a/src/mame/drivers/dlair2.cpp b/src/mame/drivers/dlair2.cpp index 4a590f8d824..fe85c02e5c0 100644 --- a/src/mame/drivers/dlair2.cpp +++ b/src/mame/drivers/dlair2.cpp @@ -173,7 +173,7 @@ INTERRUPT_GEN_MEMBER(dlair2_state::dlair2_timer_irq) device.execute().set_input_line_and_vector(0,HOLD_LINE,0x20/4); } -static MACHINE_CONFIG_START( dlair2, dlair2_state ) +static MACHINE_CONFIG_START( dlair2 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8088 , MAIN_CLOCK/3) /* Schematics show I8088 "max" CPU */ @@ -330,19 +330,19 @@ ROM_START( spacea91_13e ) ROM_END -GAME( 1991, dlair2, 0, dlair2, dlair2, driver_device, 0, ROT0, "Leland Corporation", "Dragon's Lair 2: Time Warp (US v3.19)", MACHINE_IS_SKELETON ) -GAME( 1991, dlair2_319e, dlair2, dlair2, dlair2, driver_device, 0, ROT0, "Leland Corporation", "Dragon's Lair 2: Time Warp (Euro v3.19)", MACHINE_IS_SKELETON ) -GAME( 1991, dlair2_319s, dlair2, dlair2, dlair2, driver_device, 0, ROT0, "Leland Corporation", "Dragon's Lair 2: Time Warp (Spanish v3.19)", MACHINE_IS_SKELETON ) -GAME( 1991, dlair2_318, dlair2, dlair2, dlair2, driver_device, 0, ROT0, "Leland Corporation", "Dragon's Lair 2: Time Warp (US v3.18)", MACHINE_IS_SKELETON ) -GAME( 1991, dlair2_317e, dlair2, dlair2, dlair2, driver_device, 0, ROT0, "Leland Corporation", "Dragon's Lair 2: Time Warp (Euro v3.17)", MACHINE_IS_SKELETON ) -GAME( 1991, dlair2_316e, dlair2, dlair2, dlair2, driver_device, 0, ROT0, "Leland Corporation", "Dragon's Lair 2: Time Warp (Euro v3.16)", MACHINE_IS_SKELETON ) -GAME( 1991, dlair2_315, dlair2, dlair2, dlair2, driver_device, 0, ROT0, "Leland Corporation", "Dragon's Lair 2: Time Warp (US v3.15)", MACHINE_IS_SKELETON ) -GAME( 1991, dlair2_315s, dlair2, dlair2, dlair2, driver_device, 0, ROT0, "Leland Corporation", "Dragon's Lair 2: Time Warp (Spanish v3.15)", MACHINE_IS_SKELETON ) -GAME( 1991, dlair2_314, dlair2, dlair2, dlair2, driver_device, 0, ROT0, "Leland Corporation", "Dragon's Lair 2: Time Warp (US v3.14)", MACHINE_IS_SKELETON ) -GAME( 1991, dlair2_312, dlair2, dlair2, dlair2, driver_device, 0, ROT0, "Leland Corporation", "Dragon's Lair 2: Time Warp (Euro v3.12)", MACHINE_IS_SKELETON ) -GAME( 1991, dlair2_300, dlair2, dlair2, dlair2, driver_device, 0, ROT0, "Leland Corporation", "Dragon's Lair 2: Time Warp (US v3.00)", MACHINE_IS_SKELETON ) -GAME( 1991, dlair2_211, dlair2, dlair2, dlair2, driver_device, 0, ROT0, "Leland Corporation", "Dragon's Lair 2: Time Warp (US v2.11)", MACHINE_IS_SKELETON ) -GAME( 1991, dlair2_200, dlair2, dlair2, dlair2, driver_device, 0, ROT0, "Leland Corporation", "Dragon's Lair 2: Time Warp (US v2.00, AMOA prototype)", MACHINE_IS_SKELETON ) - -GAME( 1991, spacea91, spaceace, dlair2, dlair2, driver_device, 0, ROT0, "Cinematronics (Leland Corporation license)", "Space Ace (DL2 Conversion) (US v1.3)", MACHINE_IS_SKELETON ) -GAME( 1991, spacea91_13e, spaceace, dlair2, dlair2, driver_device, 0, ROT0, "Cinematronics (Leland Corporation license)", "Space Ace (DL2 Conversion) (Euro v1.3)", MACHINE_IS_SKELETON ) +GAME( 1991, dlair2, 0, dlair2, dlair2, dlair2_state, 0, ROT0, "Leland Corporation", "Dragon's Lair 2: Time Warp (US v3.19)", MACHINE_IS_SKELETON ) +GAME( 1991, dlair2_319e, dlair2, dlair2, dlair2, dlair2_state, 0, ROT0, "Leland Corporation", "Dragon's Lair 2: Time Warp (Euro v3.19)", MACHINE_IS_SKELETON ) +GAME( 1991, dlair2_319s, dlair2, dlair2, dlair2, dlair2_state, 0, ROT0, "Leland Corporation", "Dragon's Lair 2: Time Warp (Spanish v3.19)", MACHINE_IS_SKELETON ) +GAME( 1991, dlair2_318, dlair2, dlair2, dlair2, dlair2_state, 0, ROT0, "Leland Corporation", "Dragon's Lair 2: Time Warp (US v3.18)", MACHINE_IS_SKELETON ) +GAME( 1991, dlair2_317e, dlair2, dlair2, dlair2, dlair2_state, 0, ROT0, "Leland Corporation", "Dragon's Lair 2: Time Warp (Euro v3.17)", MACHINE_IS_SKELETON ) +GAME( 1991, dlair2_316e, dlair2, dlair2, dlair2, dlair2_state, 0, ROT0, "Leland Corporation", "Dragon's Lair 2: Time Warp (Euro v3.16)", MACHINE_IS_SKELETON ) +GAME( 1991, dlair2_315, dlair2, dlair2, dlair2, dlair2_state, 0, ROT0, "Leland Corporation", "Dragon's Lair 2: Time Warp (US v3.15)", MACHINE_IS_SKELETON ) +GAME( 1991, dlair2_315s, dlair2, dlair2, dlair2, dlair2_state, 0, ROT0, "Leland Corporation", "Dragon's Lair 2: Time Warp (Spanish v3.15)", MACHINE_IS_SKELETON ) +GAME( 1991, dlair2_314, dlair2, dlair2, dlair2, dlair2_state, 0, ROT0, "Leland Corporation", "Dragon's Lair 2: Time Warp (US v3.14)", MACHINE_IS_SKELETON ) +GAME( 1991, dlair2_312, dlair2, dlair2, dlair2, dlair2_state, 0, ROT0, "Leland Corporation", "Dragon's Lair 2: Time Warp (Euro v3.12)", MACHINE_IS_SKELETON ) +GAME( 1991, dlair2_300, dlair2, dlair2, dlair2, dlair2_state, 0, ROT0, "Leland Corporation", "Dragon's Lair 2: Time Warp (US v3.00)", MACHINE_IS_SKELETON ) +GAME( 1991, dlair2_211, dlair2, dlair2, dlair2, dlair2_state, 0, ROT0, "Leland Corporation", "Dragon's Lair 2: Time Warp (US v2.11)", MACHINE_IS_SKELETON ) +GAME( 1991, dlair2_200, dlair2, dlair2, dlair2, dlair2_state, 0, ROT0, "Leland Corporation", "Dragon's Lair 2: Time Warp (US v2.00, AMOA prototype)", MACHINE_IS_SKELETON ) + +GAME( 1991, spacea91, spaceace, dlair2, dlair2, dlair2_state, 0, ROT0, "Cinematronics (Leland Corporation license)", "Space Ace (DL2 Conversion) (US v1.3)", MACHINE_IS_SKELETON ) +GAME( 1991, spacea91_13e, spaceace, dlair2, dlair2, dlair2_state, 0, ROT0, "Cinematronics (Leland Corporation license)", "Space Ace (DL2 Conversion) (Euro v1.3)", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/dm7000.cpp b/src/mame/drivers/dm7000.cpp index 239a0e5c895..7a9519dbc69 100644 --- a/src/mame/drivers/dm7000.cpp +++ b/src/mame/drivers/dm7000.cpp @@ -293,14 +293,14 @@ WRITE32_MEMBER( dm7000_state::dcr_w ) dcr[offset] = data; } -WRITE8_MEMBER( dm7000_state::kbd_put ) +void dm7000_state::kbd_put(u8 data) { //printf("%02X\n", data); m_term_data = data; m_scc0_lsr = 1; } -static MACHINE_CONFIG_START( dm7000, dm7000_state ) +static MACHINE_CONFIG_START( dm7000 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",PPC405GP, 252000000 / 10) // Should be PPC405D4? // Slowed down 10 times in order to get normal response for now @@ -317,7 +317,7 @@ static MACHINE_CONFIG_START( dm7000, dm7000_state ) MCFG_SCREEN_UPDATE_DRIVER(dm7000_state, screen_update_dm7000) MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0) - MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(dm7000_state, kbd_put)) + MCFG_GENERIC_TERMINAL_KEYBOARD_CB(PUT(dm7000_state, kbd_put)) MACHINE_CONFIG_END @@ -347,7 +347,7 @@ ROM_START( dm500 ) ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -SYST( 2003, dm7000, 0, 0, dm7000, dm7000, driver_device, 0, "Dream Multimedia", "Dreambox 7000", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -SYST( 2004, dm5620, dm7000, 0, dm7000, dm7000, driver_device, 0, "Dream Multimedia", "Dreambox 5620", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -SYST( 2006, dm500, dm7000, 0, dm7000, dm7000, driver_device, 0, "Dream Multimedia", "Dreambox 500", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +SYST( 2003, dm7000, 0, 0, dm7000, dm7000, dm7000_state, 0, "Dream Multimedia", "Dreambox 7000", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +SYST( 2004, dm5620, dm7000, 0, dm7000, dm7000, dm7000_state, 0, "Dream Multimedia", "Dreambox 5620", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +SYST( 2006, dm500, dm7000, 0, dm7000, dm7000, dm7000_state, 0, "Dream Multimedia", "Dreambox 500", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/dmax8000.cpp b/src/mame/drivers/dmax8000.cpp index 40b40fc65d4..079cc54fe8b 100644 --- a/src/mame/drivers/dmax8000.cpp +++ b/src/mame/drivers/dmax8000.cpp @@ -65,7 +65,7 @@ private: required_device m_dart1; required_device m_dart2; required_device m_ctc; - required_device m_fdc; + required_device m_fdc; required_device m_floppy0; }; @@ -112,7 +112,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START(dmax8000_io, AS_IO, 8, dmax8000_state) ADDRESS_MAP_GLOBAL_MASK(0xff) ADDRESS_MAP_UNMAP_HIGH - AM_RANGE(0x00, 0x03) AM_DEVREADWRITE("fdc", fd1793_t, read, write) + AM_RANGE(0x00, 0x03) AM_DEVREADWRITE("fdc", fd1793_device, read, write) AM_RANGE(0x04, 0x07) AM_DEVREADWRITE("dart1", z80dart_device, ba_cd_r, ba_cd_w) AM_RANGE(0x08, 0x0b) AM_DEVREADWRITE("ctc", z80ctc_device, read, write) AM_RANGE(0x0c, 0x0f) AM_DEVREADWRITE("pio1", z80pio_device, read, write) // fdd controls @@ -167,7 +167,7 @@ static SLOT_INTERFACE_START( floppies ) SLOT_INTERFACE( "drive0", FLOPPY_8_DSDD ) SLOT_INTERFACE_END -static MACHINE_CONFIG_START( dmax8000, dmax8000_state ) +static MACHINE_CONFIG_START( dmax8000 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_4MHz ) // no idea what crystal is used, but 4MHz clock is confirmed MCFG_CPU_PROGRAM_MAP(dmax8000_mem) @@ -222,5 +222,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ +// YEAR NAME PARENT COMPAT MACHINE INPUT CLAS INIT COMPANY FULLNAME FLAGS COMP( 1981, dmax8000, 0, 0, dmax8000, dmax8000, dmax8000_state, dmax8000, "Datamax", "Datamax 8000", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/dmndrby.cpp b/src/mame/drivers/dmndrby.cpp index 6c69ef087c5..64980d656a6 100644 --- a/src/mame/drivers/dmndrby.cpp +++ b/src/mame/drivers/dmndrby.cpp @@ -523,7 +523,7 @@ INTERRUPT_GEN_MEMBER(dmndrby_state::dderby_timer_irq) m_maincpu->set_input_line_and_vector(0, HOLD_LINE, 0xcf); /* RST 08h */ } -static MACHINE_CONFIG_START( dderby, dmndrby_state ) +static MACHINE_CONFIG_START( dderby ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80,4000000) /* ? MHz */ MCFG_CPU_PROGRAM_MAP(memmap) @@ -658,6 +658,6 @@ ROM_START( dmndrbya ) ROM_END -/* YEAR, NAME, PARENT, MACHINE, INPUT, INIT, MONITOR, COMPANY, FULLNAME */ -GAME( 1994, dmndrby, 0, dderby, dderby, driver_device, 0, ROT0, "Electrocoin", "Diamond Derby (Newer)",MACHINE_IMPERFECT_GRAPHICS|MACHINE_IMPERFECT_COLORS|MACHINE_NOT_WORKING ) // hack? -GAME( 1986, dmndrbya, dmndrby, dderby, dderbya, driver_device, 0, ROT0, "Electrocoin", "Diamond Derby (Original)",MACHINE_IMPERFECT_GRAPHICS|MACHINE_IMPERFECT_COLORS|MACHINE_NOT_WORKING ) +// YEAR, NAME, PARENT, MACHINE, INPUT, STATE, INIT, MONITOR, COMPANY, FULLNAME FLAGS +GAME( 1994, dmndrby, 0, dderby, dderby, dmndrby_state, 0, ROT0, "Electrocoin", "Diamond Derby (Newer)", MACHINE_IMPERFECT_GRAPHICS|MACHINE_IMPERFECT_COLORS|MACHINE_NOT_WORKING ) // hack? +GAME( 1986, dmndrbya, dmndrby, dderby, dderbya, dmndrby_state, 0, ROT0, "Electrocoin", "Diamond Derby (Original)", MACHINE_IMPERFECT_GRAPHICS|MACHINE_IMPERFECT_COLORS|MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/dms5000.cpp b/src/mame/drivers/dms5000.cpp index 72a4d2f64cb..5cfd0a1560c 100644 --- a/src/mame/drivers/dms5000.cpp +++ b/src/mame/drivers/dms5000.cpp @@ -55,7 +55,7 @@ uint32_t dms5000_state::screen_update_dms5000(screen_device &screen, bitmap_ind1 return 0; } -static MACHINE_CONFIG_START( dms5000, dms5000_state ) +static MACHINE_CONFIG_START( dms5000 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",I8086, XTAL_9_8304MHz) MCFG_CPU_PROGRAM_MAP(dms5000_mem) @@ -83,5 +83,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1982, dms5000, 0, 0, dms5000, dms5000, driver_device, 0, "Digital Microsystems", "DMS-5000", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +COMP( 1982, dms5000, 0, 0, dms5000, dms5000, dms5000_state, 0, "Digital Microsystems", "DMS-5000", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) diff --git a/src/mame/drivers/dms86.cpp b/src/mame/drivers/dms86.cpp index 8a8bb7d0997..10be2529544 100644 --- a/src/mame/drivers/dms86.cpp +++ b/src/mame/drivers/dms86.cpp @@ -40,13 +40,15 @@ public: { } - required_device m_maincpu; - required_device m_terminal; DECLARE_READ16_MEMBER( dms86_82_r ); DECLARE_READ16_MEMBER( dms86_84_r ); DECLARE_READ16_MEMBER( dms86_86_r ); DECLARE_READ16_MEMBER( dms86_9a_r ); - DECLARE_WRITE8_MEMBER( kbd_put ); + void kbd_put(u8 data); + +protected: + required_device m_maincpu; + required_device m_terminal; uint8_t *m_ram; uint8_t m_term_data; virtual void machine_reset() override; @@ -102,12 +104,12 @@ void dms86_state::machine_reset() { } -WRITE8_MEMBER( dms86_state::kbd_put ) +void dms86_state::kbd_put(u8 data) { m_term_data = data; } -static MACHINE_CONFIG_START( dms86, dms86_state ) +static MACHINE_CONFIG_START( dms86 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",I8086, XTAL_9_8304MHz) MCFG_CPU_PROGRAM_MAP(dms86_mem) @@ -115,7 +117,7 @@ static MACHINE_CONFIG_START( dms86, dms86_state ) MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0) - MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(dms86_state, kbd_put)) + MCFG_GENERIC_TERMINAL_KEYBOARD_CB(PUT(dms86_state, kbd_put)) MACHINE_CONFIG_END /* ROM definition */ @@ -127,5 +129,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1982, dms86, 0, 0, dms86, dms86, driver_device, 0, "Digital Microsystems", "DMS-86", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +COMP( 1982, dms86, 0, 0, dms86, dms86, dms86_state, 0, "Digital Microsystems", "DMS-86", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) diff --git a/src/mame/drivers/dmv.cpp b/src/mame/drivers/dmv.cpp index 3277d98ee96..2d0e62d98ed 100644 --- a/src/mame/drivers/dmv.cpp +++ b/src/mame/drivers/dmv.cpp @@ -712,7 +712,7 @@ static SLOT_INTERFACE_START(dmv_slot7a) SLOT_INTERFACE("k235", DMV_K235) // K235 Internal 8088 module with interrupt controller SLOT_INTERFACE_END -static MACHINE_CONFIG_START( dmv, dmv_state ) +static MACHINE_CONFIG_START( dmv ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80, XTAL_24MHz / 6) MCFG_CPU_PROGRAM_MAP(dmv_mem) @@ -850,5 +850,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1984, dmv, 0, 0, dmv, dmv, driver_device, 0, "NCR", "Decision Mate V", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1984, dmv, 0, 0, dmv, dmv, dmv_state, 0, "NCR", "Decision Mate V", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) diff --git a/src/mame/drivers/docastle.cpp b/src/mame/drivers/docastle.cpp index b68e02187d2..0eb7d0e3d4e 100644 --- a/src/mame/drivers/docastle.cpp +++ b/src/mame/drivers/docastle.cpp @@ -563,7 +563,7 @@ void docastle_state::machine_start() save_item(NAME(m_buffer1)); } -static MACHINE_CONFIG_START( docastle, docastle_state ) +static MACHINE_CONFIG_START( docastle ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_4MHz) @@ -579,18 +579,18 @@ static MACHINE_CONFIG_START( docastle, docastle_state ) MCFG_CPU_VBLANK_INT_DRIVER("screen", docastle_state, nmi_line_pulse) MCFG_DEVICE_ADD("inp1", TMS1025, 0) - MCFG_TMS1025_READ_PORT_CB(TMS1025_PORT1, IOPORT("DSW2")) - MCFG_TMS1025_READ_PORT_CB(TMS1025_PORT2, IOPORT("DSW1")) - MCFG_TMS1025_READ_PORT_CB(TMS1025_PORT3, IOPORT("JOYS")) - MCFG_TMS1025_READ_PORT_CB(TMS1025_PORT5, IOPORT("BUTTONS")) - MCFG_TMS1025_READ_PORT_CB(TMS1025_PORT7, IOPORT("SYSTEM")) + MCFG_TMS1025_READ_PORT_CB(PORT1, IOPORT("DSW2")) + MCFG_TMS1025_READ_PORT_CB(PORT2, IOPORT("DSW1")) + MCFG_TMS1025_READ_PORT_CB(PORT3, IOPORT("JOYS")) + MCFG_TMS1025_READ_PORT_CB(PORT5, IOPORT("BUTTONS")) + MCFG_TMS1025_READ_PORT_CB(PORT7, IOPORT("SYSTEM")) MCFG_DEVICE_ADD("inp2", TMS1025, 0) - MCFG_TMS1025_READ_PORT_CB(TMS1025_PORT1, IOPORT("DSW2")) MCFG_DEVCB_RSHIFT(4) - MCFG_TMS1025_READ_PORT_CB(TMS1025_PORT2, IOPORT("DSW1")) MCFG_DEVCB_RSHIFT(4) - MCFG_TMS1025_READ_PORT_CB(TMS1025_PORT3, IOPORT("JOYS")) MCFG_DEVCB_RSHIFT(4) - MCFG_TMS1025_READ_PORT_CB(TMS1025_PORT5, IOPORT("BUTTONS")) MCFG_DEVCB_RSHIFT(4) - MCFG_TMS1025_READ_PORT_CB(TMS1025_PORT7, IOPORT("SYSTEM")) MCFG_DEVCB_RSHIFT(4) + MCFG_TMS1025_READ_PORT_CB(PORT1, IOPORT("DSW2")) MCFG_DEVCB_RSHIFT(4) + MCFG_TMS1025_READ_PORT_CB(PORT2, IOPORT("DSW1")) MCFG_DEVCB_RSHIFT(4) + MCFG_TMS1025_READ_PORT_CB(PORT3, IOPORT("JOYS")) MCFG_DEVCB_RSHIFT(4) + MCFG_TMS1025_READ_PORT_CB(PORT5, IOPORT("BUTTONS")) MCFG_DEVCB_RSHIFT(4) + MCFG_TMS1025_READ_PORT_CB(PORT7, IOPORT("SYSTEM")) MCFG_DEVCB_RSHIFT(4) MCFG_WATCHDOG_ADD("watchdog") @@ -652,10 +652,10 @@ static MACHINE_CONFIG_DERIVED( idsoccer, docastle ) MCFG_CPU_PROGRAM_MAP(idsoccer_map) MCFG_DEVICE_MODIFY("inp1") - MCFG_TMS1025_READ_PORT_CB(TMS1025_PORT4, IOPORT("JOYS_RIGHT")) + MCFG_TMS1025_READ_PORT_CB(PORT4, IOPORT("JOYS_RIGHT")) MCFG_DEVICE_MODIFY("inp2") - MCFG_TMS1025_READ_PORT_CB(TMS1025_PORT4, IOPORT("JOYS_RIGHT")) MCFG_DEVCB_RSHIFT(4) + MCFG_TMS1025_READ_PORT_CB(PORT4, IOPORT("JOYS_RIGHT")) MCFG_DEVCB_RSHIFT(4) /* video hardware */ MCFG_VIDEO_START_OVERRIDE(docastle_state,dorunrun) @@ -663,7 +663,7 @@ static MACHINE_CONFIG_DERIVED( idsoccer, docastle ) /* sound hardware */ MCFG_SOUND_ADD("msm", MSM5205, XTAL_384kHz) /* Crystal verified on American Soccer board. */ MCFG_MSM5205_VCLK_CB(WRITELINE(docastle_state, idsoccer_adpcm_int)) // interrupt function - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S64_4B) // 6 kHz ??? + MCFG_MSM5205_PRESCALER_SELECTOR(S64_4B) // 6 kHz ??? MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40) MACHINE_CONFIG_END @@ -1087,18 +1087,18 @@ ROM_END /* Game Drivers */ -GAME( 1983, docastle, 0, docastle, docastle, driver_device, 0, ROT270, "Universal", "Mr. Do's Castle (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, docastle2, docastle, docastle, docastle, driver_device, 0, ROT270, "Universal", "Mr. Do's Castle (set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, docastleo, docastle, docastle, docastle, driver_device, 0, ROT270, "Universal", "Mr. Do's Castle (older)", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, douni, docastle, docastle, docastle, driver_device, 0, ROT270, "Universal", "Mr. Do vs. Unicorns", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, dorunrun, 0, dorunrun, dorunrun, driver_device, 0, ROT0, "Universal", "Do! Run Run (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, dorunrun2, dorunrun, dorunrun, dorunrun, driver_device, 0, ROT0, "Universal", "Do! Run Run (set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, dorunrunc, dorunrun, docastle, dorunrun, driver_device, 0, ROT0, "Universal", "Do! Run Run (Do's Castle hardware, set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, dorunrunca,dorunrun, docastle, dorunrun, driver_device, 0, ROT0, "Universal", "Do! Run Run (Do's Castle hardware, set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, spiero, dorunrun, dorunrun, dorunrun, driver_device, 0, ROT0, "Universal", "Super Pierrot (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, dowild, 0, dorunrun, dowild, driver_device, 0, ROT0, "Universal", "Mr. Do's Wild Ride", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, jjack, 0, dorunrun, jjack, driver_device, 0, ROT270, "Universal", "Jumping Jack", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, kickridr, 0, dorunrun, kickridr, driver_device, 0, ROT0, "Universal", "Kick Rider", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, idsoccer, 0, idsoccer, idsoccer, driver_device, 0, ROT0, "Universal", "Indoor Soccer (set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL ) -GAME( 1985, idsoccera, idsoccer, idsoccer, idsoccer, driver_device, 0, ROT0, "Universal", "Indoor Soccer (set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_SOUND ) -GAME( 1987, asoccer, idsoccer, idsoccer, idsoccer, driver_device, 0, ROT0, "Universal", "American Soccer", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_SOUND ) +GAME( 1983, docastle, 0, docastle, docastle, docastle_state, 0, ROT270, "Universal", "Mr. Do's Castle (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, docastle2, docastle, docastle, docastle, docastle_state, 0, ROT270, "Universal", "Mr. Do's Castle (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, docastleo, docastle, docastle, docastle, docastle_state, 0, ROT270, "Universal", "Mr. Do's Castle (older)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, douni, docastle, docastle, docastle, docastle_state, 0, ROT270, "Universal", "Mr. Do vs. Unicorns", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, dorunrun, 0, dorunrun, dorunrun, docastle_state, 0, ROT0, "Universal", "Do! Run Run (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, dorunrun2, dorunrun, dorunrun, dorunrun, docastle_state, 0, ROT0, "Universal", "Do! Run Run (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, dorunrunc, dorunrun, docastle, dorunrun, docastle_state, 0, ROT0, "Universal", "Do! Run Run (Do's Castle hardware, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, dorunrunca,dorunrun, docastle, dorunrun, docastle_state, 0, ROT0, "Universal", "Do! Run Run (Do's Castle hardware, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, spiero, dorunrun, dorunrun, dorunrun, docastle_state, 0, ROT0, "Universal", "Super Pierrot (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, dowild, 0, dorunrun, dowild, docastle_state, 0, ROT0, "Universal", "Mr. Do's Wild Ride", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, jjack, 0, dorunrun, jjack, docastle_state, 0, ROT270, "Universal", "Jumping Jack", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, kickridr, 0, dorunrun, kickridr, docastle_state, 0, ROT0, "Universal", "Kick Rider", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, idsoccer, 0, idsoccer, idsoccer, docastle_state, 0, ROT0, "Universal", "Indoor Soccer (set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL ) +GAME( 1985, idsoccera, idsoccer, idsoccer, idsoccer, docastle_state, 0, ROT0, "Universal", "Indoor Soccer (set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_SOUND ) +GAME( 1987, asoccer, idsoccer, idsoccer, idsoccer, docastle_state, 0, ROT0, "Universal", "American Soccer", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_SOUND ) diff --git a/src/mame/drivers/dogfgt.cpp b/src/mame/drivers/dogfgt.cpp index ff3ff5bd835..77ee7cd7bf2 100644 --- a/src/mame/drivers/dogfgt.cpp +++ b/src/mame/drivers/dogfgt.cpp @@ -237,7 +237,7 @@ void dogfgt_state::machine_reset() } -static MACHINE_CONFIG_START( dogfgt, dogfgt_state ) +static MACHINE_CONFIG_START( dogfgt ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, 1500000) /* 1.5 MHz ???? */ @@ -379,6 +379,6 @@ ROM_END -GAME( 1984, dogfgt, 0, dogfgt, dogfgt, driver_device, 0, ROT0, "Technos Japan", "Acrobatic Dog-Fight", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, dogfgtu, dogfgt, dogfgt, dogfgt, driver_device, 0, ROT0, "Technos Japan (Data East USA, Inc. license)", "Acrobatic Dog-Fight (USA)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, dogfgtj, dogfgt, dogfgt, dogfgt, driver_device, 0, ROT0, "Technos Japan", "Dog-Fight (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, dogfgt, 0, dogfgt, dogfgt, dogfgt_state, 0, ROT0, "Technos Japan", "Acrobatic Dog-Fight", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, dogfgtu, dogfgt, dogfgt, dogfgt, dogfgt_state, 0, ROT0, "Technos Japan (Data East USA, Inc. license)", "Acrobatic Dog-Fight (USA)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, dogfgtj, dogfgt, dogfgt, dogfgt, dogfgt_state, 0, ROT0, "Technos Japan", "Dog-Fight (Japan)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/dolphunk.cpp b/src/mame/drivers/dolphunk.cpp index df86f67e501..9849a276b79 100644 --- a/src/mame/drivers/dolphunk.cpp +++ b/src/mame/drivers/dolphunk.cpp @@ -224,7 +224,7 @@ static INPUT_PORTS_START( dauphin ) INPUT_PORTS_END -static MACHINE_CONFIG_START( dauphin, dauphin_state ) +static MACHINE_CONFIG_START( dauphin ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",S2650, XTAL_1MHz) MCFG_CPU_PROGRAM_MAP(dauphin_mem) @@ -264,5 +264,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1979, dauphin, 0, 0, dauphin, dauphin, driver_device, 0, "LCD EPFL Stoppani", "Dauphin", 0 ) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 1979, dauphin, 0, 0, dauphin, dauphin, dauphin_state, 0, "LCD EPFL Stoppani", "Dauphin", 0 ) diff --git a/src/mame/drivers/dominob.cpp b/src/mame/drivers/dominob.cpp index e0a9ab7f6a0..eacdb5cdb5e 100644 --- a/src/mame/drivers/dominob.cpp +++ b/src/mame/drivers/dominob.cpp @@ -289,7 +289,7 @@ static GFXDECODE_START( dominob ) GFXDECODE_END -static MACHINE_CONFIG_START( dominob, dominob_state ) +static MACHINE_CONFIG_START( dominob ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80,XTAL_12MHz/2) @@ -361,5 +361,5 @@ ROM_START( dominobv2 ) ROM_LOAD( "u114v2", 0xc0000, 0x40000, CRC(df17ee65) SHA1(1cb434719a8c406726d2c966392be03a2dc1d758) ) ROM_END -GAME( 1996, dominob, 0, dominob, dominob, driver_device, 0, ROT0, "Wonwoo Systems", "Domino Block", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, dominobv2,dominob, dominob, dominob, driver_device, 0, ROT0, "Wonwoo Systems", "Domino Block ver.2", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, dominob, 0, dominob, dominob, dominob_state, 0, ROT0, "Wonwoo Systems", "Domino Block", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, dominobv2,dominob, dominob, dominob, dominob_state, 0, ROT0, "Wonwoo Systems", "Domino Block ver.2", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/dooyong.cpp b/src/mame/drivers/dooyong.cpp index 50565655244..d856e9a3fe4 100644 --- a/src/mame/drivers/dooyong.cpp +++ b/src/mame/drivers/dooyong.cpp @@ -1,5 +1,5 @@ // license:BSD-3-Clause -// copyright-holders:Nicola Salmoria +// copyright-holders:Nicola Salmoria,Vas Crabb /*************************************************************************** Dooyong games @@ -72,7 +72,7 @@ are almost identical, except for much darker BG layer colors). ***************************************************************************/ #include "emu.h" -#include "includes/dooyong.h" +#include "video/dooyong.h" #include "cpu/m68000/m68000.h" #include "cpu/z80/z80.h" @@ -81,39 +81,681 @@ are almost identical, except for much darker BG layer colors). #include "sound/okim6295.h" #include "sound/ym2151.h" +#include "screen.h" #include "speaker.h" -WRITE8_MEMBER(dooyong_z80_state::bankswitch_w) +namespace { + +class dooyong_state : public driver_device +{ +protected: + dooyong_state(const machine_config &mconfig, device_type type, const char *tag) + : driver_device(mconfig, type, tag) + , m_maincpu(*this, "maincpu") + , m_audiocpu(*this, "audiocpu") + , m_gfxdecode(*this, "gfxdecode") + , m_palette(*this, "palette") + , m_bg(*this, "bg") + , m_bg2(*this, "bg2") + , m_fg(*this, "fg") + , m_fg2(*this, "fg2") + { + } + + required_device m_maincpu; + required_device m_audiocpu; + required_device m_gfxdecode; + required_device m_palette; + optional_device m_bg; + optional_device m_bg2; + optional_device m_fg; + optional_device m_fg2; +}; + +class dooyong_z80_state : public dooyong_state +{ +public: + dooyong_z80_state(const machine_config &mconfig, device_type type, const char *tag) + : dooyong_state(mconfig, type, tag) + , m_tx(*this, "tx") + , m_spriteram(*this, "spriteram") + { + } + + enum + { + SPRITE_12BIT = 0x01, + SPRITE_HEIGHT = 0x02, + SPRITE_YSHIFT_BLUEHAWK = 0x04, + SPRITE_YSHIFT_FLYTIGER = 0x08 + }; + + DECLARE_WRITE8_MEMBER(flip_screen_w) + { + flip_screen_set(data); + } + + DECLARE_WRITE8_MEMBER(bankswitch_w) + { + membank("bank1")->set_entry(data & 0x07); + if (data & 0xf8) popmessage("bankswitch %02x",data); + } + + DECLARE_READ8_MEMBER(lastday_tx_r) + { + bool const lane(BIT(offset, 11)); + return m_tx->tileram_r(space, offset & 0x07ffU) >> (lane ? 8 : 0); + } + + DECLARE_WRITE8_MEMBER(lastday_tx_w) + { + bool const lane(BIT(offset, 11)); + m_tx->tileram_w(space, offset & 0x07ffU, uint16_t(data) << (lane ? 8 : 0), lane ? 0xff00U : 0x00ffU); + } + + DECLARE_READ8_MEMBER(bluehawk_tx_r) + { + bool const lane(BIT(offset, 0)); + return m_tx->tileram_r(space, offset >> 1) >> (lane ? 8 : 0); + } + + DECLARE_WRITE8_MEMBER(bluehawk_tx_w) + { + bool const lane(BIT(offset, 0)); + m_tx->tileram_w(space, offset >> 1, uint16_t(data) << (lane ? 8 : 0), lane ? 0xff00U : 0x00ffU); + } + + DECLARE_READ8_MEMBER(paletteram_flytiger_r) + { + if (m_palette_bank) offset |= 0x800; + return m_paletteram_flytiger[offset]; + } + + DECLARE_WRITE8_MEMBER(paletteram_flytiger_w) + { + if (m_palette_bank) offset |= 0x800; + m_paletteram_flytiger[offset] = data; + uint16_t const value = m_paletteram_flytiger[offset & ~1] | (m_paletteram_flytiger[offset | 1] << 8); + m_palette->set_pen_color(offset/2, pal5bit(value >> 10), pal5bit(value >> 5), pal5bit(value >> 0)); + } + + DECLARE_WRITE8_MEMBER(primella_ctrl_w); + DECLARE_WRITE8_MEMBER(flytiger_ctrl_w); + + uint32_t screen_update_bluehawk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + uint32_t screen_update_flytiger(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + uint32_t screen_update_primella(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + + DECLARE_MACHINE_START(cpu_z80) + { + membank("bank1")->configure_entries(0, 8, memregion("maincpu")->base(), 0x4000); + } + + DECLARE_VIDEO_START(bluehawk) + { + } + + DECLARE_VIDEO_START(flytiger) + { + m_paletteram_flytiger = make_unique_clear(0x1000); + save_pointer(NAME(m_paletteram_flytiger.get()), 0x1000); + + m_palette_bank = 0; + + /* Register for save/restore */ + save_item(NAME(m_palette_bank)); + save_item(NAME(m_flytiger_pri)); + } + + DECLARE_VIDEO_START(primella) + { + /* Register for save/restore */ + save_item(NAME(m_tx_pri)); + } + +protected: + void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, unsigned extensions = 0); + + std::unique_ptr m_paletteram_flytiger; + uint8_t m_sprites_disabled = 0; + uint8_t m_flytiger_pri = 0; + uint8_t m_tx_pri = 0; + uint8_t m_palette_bank = 0; + + required_device m_tx; + optional_device m_spriteram; +}; + +class dooyong_z80_ym2203_state : public dooyong_z80_state +{ +public: + dooyong_z80_ym2203_state(const machine_config &mconfig, device_type type, const char *tag) + : dooyong_z80_state(mconfig, type, tag) + { + } + + DECLARE_WRITE8_MEMBER(lastday_ctrl_w); + DECLARE_WRITE8_MEMBER(pollux_ctrl_w); + DECLARE_WRITE_LINE_MEMBER(irqhandler_2203_1); + DECLARE_WRITE_LINE_MEMBER(irqhandler_2203_2); + DECLARE_READ8_MEMBER(unk_r); + + DECLARE_MACHINE_RESET(sound_ym2203) + { + m_interrupt_line_1 = 0; + m_interrupt_line_2 = 0; + } + + uint32_t screen_update_lastday(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + uint32_t screen_update_gulfstrm(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + uint32_t screen_update_pollux(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + + DECLARE_VIDEO_START(lastday) + { + /* Register for save/restore */ + save_item(NAME(m_sprites_disabled)); + save_item(NAME(m_interrupt_line_1)); + save_item(NAME(m_interrupt_line_2)); + } + + DECLARE_VIDEO_START(gulfstrm) + { + m_palette_bank = 0; + + /* Register for save/restore */ + save_item(NAME(m_palette_bank)); + save_item(NAME(m_interrupt_line_1)); + save_item(NAME(m_interrupt_line_2)); + } + + DECLARE_VIDEO_START(pollux) + { + m_paletteram_flytiger = make_unique_clear(0x1000); + save_pointer(NAME(m_paletteram_flytiger.get()), 0x1000); + + m_palette_bank = 0; + + /* Register for save/restore */ + save_item(NAME(m_palette_bank)); + save_item(NAME(m_interrupt_line_1)); + save_item(NAME(m_interrupt_line_2)); + } + +protected: + int m_interrupt_line_1 = 0; + int m_interrupt_line_2 = 0; +}; + + +class dooyong_68k_state : public dooyong_state +{ +public: + dooyong_68k_state(const machine_config &mconfig, device_type type, const char *tag) + : dooyong_state(mconfig, type, tag) + , m_spriteram(*this, "spriteram") + { + } + + DECLARE_WRITE16_MEMBER(ctrl_w) + { + if (ACCESSING_BITS_0_7) + { + /* bit 0 flips screen */ + flip_screen_set(data & 0x0001); + + /* bit 4 changes tilemaps priority */ + m_bg2_priority = data & 0x0010; + + /* bit 5 used but unknown */ + } + } + + TIMER_DEVICE_CALLBACK_MEMBER(scanline); + +protected: + void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + + uint16_t m_bg2_priority = 0; + required_device m_spriteram; +}; + + +class rshark_state : public dooyong_68k_state +{ +public: + rshark_state(const machine_config &mconfig, device_type type, const char *tag) + : dooyong_68k_state(mconfig, type, tag) + { + } + + uint32_t screen_update_rshark(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + + DECLARE_VIDEO_START(rshark) + { + /* Register for save/restore */ + save_item(NAME(m_bg2_priority)); + } +}; + + +class popbingo_state : public dooyong_68k_state +{ +public: + popbingo_state(const machine_config &mconfig, device_type type, const char *tag) + : dooyong_68k_state(mconfig, type, tag) + , m_bg_bitmap() + , m_bg2_bitmap() + , m_screen(*this, "screen") + { + } + + uint32_t screen_update_popbingo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + + DECLARE_VIDEO_START(popbingo) + { + m_screen->register_screen_bitmap(m_bg_bitmap); + m_screen->register_screen_bitmap(m_bg2_bitmap); + + /* Register for save/restore */ + save_item(NAME(m_bg2_priority)); // Not used atm + } + +protected: + bitmap_ind16 m_bg_bitmap; + bitmap_ind16 m_bg2_bitmap; + + required_device m_screen; +}; + + + +/* Control registers seem to be different on every game */ + +WRITE8_MEMBER(dooyong_z80_ym2203_state::lastday_ctrl_w) +{ + /* bits 0 and 1 are coin counters */ + machine().bookkeeping().coin_counter_w(0, data & 0x01); + machine().bookkeeping().coin_counter_w(1, data & 0x02); + + /* bit 3 is used but unknown */ + + /* bit 4 disables sprites */ + m_sprites_disabled = data & 0x10; + + /* bit 6 is flip screen */ + flip_screen_set(data & 0x40); +} + +WRITE8_MEMBER(dooyong_z80_ym2203_state::pollux_ctrl_w) +{ +// printf("pollux_ctrl_w %02x\n", data); + + /* bit 0 is flip screen */ + flip_screen_set(data & 0x01); + + /* bits 6 and 7 are coin counters */ + machine().bookkeeping().coin_counter_w(0, data & 0x80); + machine().bookkeeping().coin_counter_w(1, data & 0x40); + + /* bit 1 is used but unknown - palette banking (both write and display based on pollux bombs) */ + uint8_t const last_palbank = m_palette_bank; + if (m_paletteram_flytiger) m_palette_bank = BIT(data, 1); + if (last_palbank != m_palette_bank) + { + m_bg->set_palette_bank(m_palette_bank << 6); + m_fg->set_palette_bank(m_palette_bank << 6); + m_tx->set_palette_bank(m_palette_bank << 6); + } + + /* bit 2 is continuously toggled (unknown) */ + + /* bit 4 is used but unknown - display disable? */ +} + + + +WRITE8_MEMBER(dooyong_z80_state::primella_ctrl_w) { + /* bits 0-2 select ROM bank */ membank("bank1")->set_entry(data & 0x07); - if (data & 0xf8) popmessage("bankswitch %02x",data); + /* bit 3 disables tx layer */ + m_tx_pri = data & 0x08; + + /* bit 4 flips screen */ + flip_screen_set(data & 0x10); + + /* bit 5 used but unknown */ + +// logerror("%04x: bankswitch = %02x\n",space.device().safe_pc(),data&0xe0); +} + + +WRITE8_MEMBER(dooyong_z80_state::flytiger_ctrl_w) +{ + /* bit 0 is flip screen */ + flip_screen_set(data & 0x01); + + /* bits 1, 2 used but unknown */ + + /* bit 3 palette banking */ + uint8_t const last_palbank = m_palette_bank; + m_palette_bank = BIT(data, 3); + if (last_palbank != m_palette_bank) + { + m_bg->set_palette_bank(m_palette_bank << 6); + m_fg->set_palette_bank(m_palette_bank << 6); + m_tx->set_palette_bank(m_palette_bank << 6); + } + + /* bit 4 changes tilemaps priority */ + m_flytiger_pri = data & 0x10; +} + + +void dooyong_z80_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, unsigned extensions) +{ + /* Sprites take 32 bytes each in memory: + MSB LSB + [offs + 0x00] cccc cccc (bits 7-0 of gfx code) + [offs + 0x01] cccx CCCC (bits 10-8 of gfx code, bit 8 of x position, bits 3-0 of color code) + [offs + 0x02] yyyy yyyy + [offs + 0x03] xxxx xxxx (bits 7-0 of x offset) + ... + [offs + 0x1c] ?hhh XY*c (bits 2-0 of height, x flip, y flip, * see note, bit 11 of gfx code) + ... + ? = unused/unknown + E = enable + c = gfx code + x = x position + y = y position + C = color code + w = width + X = x flip + Y = y flip + * = alters y position in bluehawk and flytiger - see code below + bit 11 of gfx code only used by gulfstrm, pollux, bluehawk and flytiger + height only used by pollux, bluehawk and flytiger + x flip and y flip only used by pollux and flytiger */ + + uint8_t const *const buffered_spriteram = m_spriteram->buffer(); + for (int offs = 0; offs < m_spriteram->bytes(); offs += 32) + { + int sx = buffered_spriteram[offs+3] | ((buffered_spriteram[offs+1] & 0x10) << 4); + int sy = buffered_spriteram[offs+2]; + int code = buffered_spriteram[offs] | ((buffered_spriteram[offs+1] & 0xe0) << 3); + int color = buffered_spriteram[offs+1] & 0x0f; + + //TODO: This priority mechanism works for known games, but seems a bit strange. + //Are we missing something? (The obvious spare palette bit isn't it.) + int const pri = (((color == 0x00) || (color == 0x0f)) ? 0xfc : 0xf0); + + bool flipx = false, flipy = false; + int height = 0; + if (extensions) + { + uint8_t const ext = buffered_spriteram[offs+0x1c]; + + if (extensions & SPRITE_12BIT) + code |= ((ext & 0x01) << 11); + + if (extensions & SPRITE_HEIGHT) + { + height = (ext & 0x70) >> 4; + code &= ~height; + + flipx = ext & 0x08; + flipy = ext & 0x04; + } + + if (extensions & SPRITE_YSHIFT_BLUEHAWK) + sy += 6 - ((~ext & 0x02) << 7); + + if (extensions & SPRITE_YSHIFT_FLYTIGER) + sy -=(ext & 0x02) << 7; + } + + if (flip_screen()) + { + sx = 498 - sx; + sy = 240 - (16 * height) - sy; + flipx = !flipx; + flipy = !flipy; + } + + color |= m_palette_bank << 6; + + for (int y = 0; y <= height; y++) + { + m_gfxdecode->gfx(1)->prio_transpen(bitmap,cliprect, + code + y, + color, + flipx, flipy, + sx, sy + (16 * (flipy ? (height - y) : y)), + screen.priority(), + pri, 15); + } + } +} + + +uint32_t dooyong_z80_ym2203_state::screen_update_lastday(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) +{ + bitmap.fill(m_palette->black_pen(), cliprect); + screen.priority().fill(0, cliprect); + + /* Text layer is offset on this machine */ + m_tx->set_scrolly(flip_screen() ? -8 : 8); + + m_bg->draw(screen, bitmap, cliprect, 0, 1); + m_fg->draw(screen, bitmap, cliprect, 0, 2); + m_tx->draw(screen, bitmap, cliprect, 0, 4); + + if (!m_sprites_disabled) + draw_sprites(screen, bitmap, cliprect); + + return 0; +} + +uint32_t dooyong_z80_ym2203_state::screen_update_gulfstrm(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) +{ + bitmap.fill(m_palette->black_pen(), cliprect); + screen.priority().fill(0, cliprect); + + /* Text layer is offset on this machine */ + m_tx->set_scrolly(flip_screen() ? -8 : 8); + + m_bg->draw(screen, bitmap, cliprect, 0, 1); + m_fg->draw(screen, bitmap, cliprect, 0, 2); + m_tx->draw(screen, bitmap, cliprect, 0, 4); + + draw_sprites(screen, bitmap, cliprect, SPRITE_12BIT); + + return 0; +} + +uint32_t dooyong_z80_ym2203_state::screen_update_pollux(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) +{ + bitmap.fill(m_palette->black_pen(), cliprect); + screen.priority().fill(0, cliprect); + + m_bg->draw(screen, bitmap, cliprect, 0, 1); + m_fg->draw(screen, bitmap, cliprect, 0, 2); + m_tx->draw(screen, bitmap, cliprect, 0, 4); + + draw_sprites(screen, bitmap, cliprect, SPRITE_12BIT | SPRITE_HEIGHT); + + return 0; +} + +uint32_t dooyong_z80_state::screen_update_flytiger(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) +{ + bitmap.fill(m_palette->black_pen(), cliprect); + screen.priority().fill(0, cliprect); + + if (m_flytiger_pri) + { + m_fg->draw(screen, bitmap, cliprect, 0, 1); + m_bg->draw(screen, bitmap, cliprect, 0, 2); + } + else + { + m_bg->draw(screen, bitmap, cliprect, 0, 1); + m_fg->draw(screen, bitmap, cliprect, 0, 2); + } + m_tx->draw(screen, bitmap, cliprect, 0, 4); + + draw_sprites(screen, bitmap, cliprect, SPRITE_12BIT | SPRITE_HEIGHT | SPRITE_YSHIFT_FLYTIGER); + + return 0; +} + + +uint32_t dooyong_z80_state::screen_update_bluehawk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) +{ + bitmap.fill(m_palette->black_pen(), cliprect); + screen.priority().fill(0, cliprect); + + m_bg->draw(screen, bitmap, cliprect, 0, 1); + m_fg->draw(screen, bitmap, cliprect, 0, 2); + m_fg2->draw(screen, bitmap, cliprect, 0, 4); + m_tx->draw(screen, bitmap, cliprect, 0, 4); + + draw_sprites(screen, bitmap, cliprect, SPRITE_12BIT | SPRITE_HEIGHT | SPRITE_YSHIFT_BLUEHAWK); + + return 0; +} + +uint32_t dooyong_z80_state::screen_update_primella(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) +{ + bitmap.fill(m_palette->black_pen(), cliprect); + + m_bg->draw(screen, bitmap, cliprect, 0, 0); + if (m_tx_pri) m_tx->draw(screen, bitmap, cliprect, 0, 0); + m_fg->draw(screen, bitmap, cliprect, 0, 0); + if (!m_tx_pri) m_tx->draw(screen, bitmap, cliprect, 0, 0); + + return 0; } -MACHINE_START_MEMBER(dooyong_z80_state, cpu_z80) + + +void dooyong_68k_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - membank("bank1")->configure_entries(0, 8, memregion("maincpu")->base(), 0x4000); + /* Sprites take 8 16-bit words each in memory: + MSB LSB + [offs + 0] ???? ???? ???? ???E + [offs + 1] ???? ???? hhhh wwww + [offs + 2] ???? ???? ???? ???? + [offs + 3] cccc cccc cccc cccc + [offs + 4] ???? ???x xxxx xxxx + [offs + 5] ???? ???? ???? ???? + [offs + 6] ???? ???y yyyy yyyy + [offs + 7] ???? ???? ???? CCCC + ? = unused/unknown + E = enable + c = gfx code + x = x offset + y = y offset (signed) + C = color code + w = width + h = height */ + + uint16_t const *const buffered_spriteram = m_spriteram->buffer(); + for (int offs = (m_spriteram->bytes() / 2) - 8; offs >= 0; offs -= 8) + { + if (buffered_spriteram[offs] & 0x0001) /* enable */ + { + int code = buffered_spriteram[offs+3]; + int const color = buffered_spriteram[offs+7] & 0x000f; + //TODO: This priority mechanism works for known games, but seems a bit strange. + //Are we missing something? (The obvious spare palette bit isn't it.) + int const pri = (((color == 0x00) || (color == 0x0f)) ? 0xfc : 0xf0); + int const width = buffered_spriteram[offs+1] & 0x000f; + int const height = (buffered_spriteram[offs+1] & 0x00f0) >> 4; + + bool const flip = flip_screen(); + int sx = buffered_spriteram[offs+4] & 0x01ff; + int sy = (int16_t)buffered_spriteram[offs+6] & 0x01ff; + if (sy & 0x0100) sy |= ~(int)0x01ff; // Correctly sign-extend 9-bit number + if (flip) + { + sx = 498 - (16 * width) - sx; + sy = 240 - (16 * height) - sy; + } + + for (int y = 0; y <= height; y++) + { + int const _y = sy + (16 * (flip ? (height - y) : y)); + for (int x = 0; x <= width; x++) + { + int const _x = sx + (16 * (flip ? (width - x) : x)); + m_gfxdecode->gfx(0)->prio_transpen(bitmap,cliprect, + code, + color, + flip, flip, + _x, _y, + screen.priority(), + pri, 15); + code++; + } + } + } + } } -WRITE8_MEMBER(dooyong_z80_state::flip_screen_w) + +uint32_t rshark_state::screen_update_rshark(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - flip_screen_set(data); + bitmap.fill(m_palette->black_pen(), cliprect); + screen.priority().fill(0, cliprect); + + m_bg->draw(screen, bitmap, cliprect, 0, 1); + m_bg2->draw(screen, bitmap, cliprect, 0, (m_bg2_priority ? 2 : 1)); + m_fg->draw(screen, bitmap, cliprect, 0, 2); + m_fg2->draw(screen, bitmap, cliprect, 0, 2); + + draw_sprites(screen, bitmap, cliprect); + + return 0; } -MACHINE_RESET_MEMBER(dooyong_z80_ym2203_state, sound_ym2203) + +uint32_t popbingo_state::screen_update_popbingo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_interrupt_line_1 = 0; - m_interrupt_line_2 = 0; + bitmap.fill(m_palette->black_pen(), cliprect); + screen.priority().fill(0, cliprect); + + m_bg_bitmap.fill(m_palette->black_pen(), cliprect); + m_bg->draw(screen, m_bg_bitmap, cliprect, 0, 1); + + m_bg2_bitmap.fill(m_palette->black_pen(), cliprect); + m_bg2->draw(screen, m_bg2_bitmap, cliprect, 0, 1); + + for (int y = cliprect.min_y; cliprect.max_y >= y; y++) + { + uint16_t const *const bg_src(&m_bg_bitmap.pix16(y, 0)); + uint16_t const *const bg2_src(&m_bg2_bitmap.pix16(y, 0)); + uint16_t *const dst(&bitmap.pix16(y, 0)); + for (int x = cliprect.min_x; cliprect.max_x >= x; x++) + dst[x] = 0x100U | (bg_src[x] << 4) | bg2_src[x]; + } + + draw_sprites(screen, bitmap, cliprect); + + return 0; } + + /*************************************************************************** Memory Structure(s) ***************************************************************************/ -static ADDRESS_MAP_START( lastday_map, AS_PROGRAM, 8, dooyong_z80_ym2203_state ) +ADDRESS_MAP_START( lastday_map, AS_PROGRAM, 8, dooyong_z80_ym2203_state ) AM_RANGE(0x0000, 0x7fff) AM_ROM AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1") AM_RANGE(0xc000, 0xc007) AM_DEVWRITE("bg", dooyong_rom_tilemap_device, ctrl_w) @@ -132,7 +774,7 @@ static ADDRESS_MAP_START( lastday_map, AS_PROGRAM, 8, dooyong_z80_ym2203_state ) AM_RANGE(0xf000, 0xffff) AM_RAM AM_SHARE("spriteram") ADDRESS_MAP_END -static ADDRESS_MAP_START( pollux_map, AS_PROGRAM, 8, dooyong_z80_ym2203_state ) +ADDRESS_MAP_START( pollux_map, AS_PROGRAM, 8, dooyong_z80_ym2203_state ) AM_RANGE(0x0000, 0x7fff) AM_ROM AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1") AM_RANGE(0xc000, 0xcfff) AM_RAM @@ -150,7 +792,7 @@ static ADDRESS_MAP_START( pollux_map, AS_PROGRAM, 8, dooyong_z80_ym2203_state ) AM_RANGE(0xf800, 0xffff) AM_READWRITE(paletteram_flytiger_r, paletteram_flytiger_w) ADDRESS_MAP_END -static ADDRESS_MAP_START( gulfstrm_map, AS_PROGRAM, 8, dooyong_z80_ym2203_state ) +ADDRESS_MAP_START( gulfstrm_map, AS_PROGRAM, 8, dooyong_z80_ym2203_state ) AM_RANGE(0x0000, 0x7fff) AM_ROM AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1") AM_RANGE(0xc000, 0xcfff) AM_RAM @@ -169,7 +811,7 @@ static ADDRESS_MAP_START( gulfstrm_map, AS_PROGRAM, 8, dooyong_z80_ym2203_state AM_RANGE(0xf800, 0xffff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") ADDRESS_MAP_END -static ADDRESS_MAP_START( bluehawk_map, AS_PROGRAM, 8, dooyong_z80_state ) +ADDRESS_MAP_START( bluehawk_map, AS_PROGRAM, 8, dooyong_z80_state ) AM_RANGE(0x0000, 0x7fff) AM_ROM AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1") AM_RANGE(0xc000, 0xc000) AM_READ_PORT("DSWA") @@ -189,7 +831,7 @@ static ADDRESS_MAP_START( bluehawk_map, AS_PROGRAM, 8, dooyong_z80_state ) AM_RANGE(0xf000, 0xffff) AM_RAM ADDRESS_MAP_END -static ADDRESS_MAP_START( flytiger_map, AS_PROGRAM, 8, dooyong_z80_state ) +ADDRESS_MAP_START( flytiger_map, AS_PROGRAM, 8, dooyong_z80_state ) AM_RANGE(0x0000, 0x7fff) AM_ROM AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1") AM_RANGE(0xc000, 0xcfff) AM_RAM AM_SHARE("spriteram") @@ -208,7 +850,7 @@ static ADDRESS_MAP_START( flytiger_map, AS_PROGRAM, 8, dooyong_z80_state ) AM_RANGE(0xf000, 0xffff) AM_READWRITE(lastday_tx_r, lastday_tx_w) ADDRESS_MAP_END -static ADDRESS_MAP_START( primella_map, AS_PROGRAM, 8, dooyong_z80_state ) +ADDRESS_MAP_START( primella_map, AS_PROGRAM, 8, dooyong_z80_state ) AM_RANGE(0x0000, 0x7fff) AM_ROM AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1") AM_RANGE(0xc000, 0xcfff) AM_RAM @@ -226,7 +868,7 @@ static ADDRESS_MAP_START( primella_map, AS_PROGRAM, 8, dooyong_z80_state ) AM_RANGE(0xfc08, 0xfc0f) AM_DEVWRITE("fg", dooyong_rom_tilemap_device, ctrl_w) ADDRESS_MAP_END -static ADDRESS_MAP_START( rshark_map, AS_PROGRAM, 16, dooyong_68k_state ) +ADDRESS_MAP_START( rshark_map, AS_PROGRAM, 16, dooyong_68k_state ) ADDRESS_MAP_GLOBAL_MASK(0xfffff) /* super-x needs this and is similar */ AM_RANGE(0x000000, 0x03ffff) AM_ROM AM_RANGE(0x040000, 0x04cfff) AM_RAM @@ -244,7 +886,7 @@ static ADDRESS_MAP_START( rshark_map, AS_PROGRAM, 16, dooyong_68k_state ) AM_RANGE(0x0cc010, 0x0cc01f) AM_DEVWRITE8("fg2", dooyong_rom_tilemap_device, ctrl_w, 0x00ff) ADDRESS_MAP_END -static ADDRESS_MAP_START( superx_map, AS_PROGRAM, 16, dooyong_68k_state ) +ADDRESS_MAP_START( superx_map, AS_PROGRAM, 16, dooyong_68k_state ) ADDRESS_MAP_GLOBAL_MASK(0xfffff) AM_RANGE(0x000000, 0x03ffff) AM_ROM AM_RANGE(0x0d0000, 0x0dcfff) AM_RAM @@ -262,7 +904,7 @@ static ADDRESS_MAP_START( superx_map, AS_PROGRAM, 16, dooyong_68k_state ) AM_RANGE(0x08c010, 0x08c01f) AM_DEVWRITE8("fg2", dooyong_rom_tilemap_device, ctrl_w, 0x00ff) ADDRESS_MAP_END -static ADDRESS_MAP_START( popbingo_map, AS_PROGRAM, 16, dooyong_68k_state ) +ADDRESS_MAP_START( popbingo_map, AS_PROGRAM, 16, dooyong_68k_state ) ADDRESS_MAP_GLOBAL_MASK(0xfffff) AM_RANGE(0x000000, 0x03ffff) AM_ROM AM_RANGE(0x040000, 0x04cfff) AM_RAM @@ -282,7 +924,7 @@ static ADDRESS_MAP_START( popbingo_map, AS_PROGRAM, 16, dooyong_68k_state ) AM_RANGE(0x0dc000, 0x0dc01f) AM_RAM // registers of some kind? ADDRESS_MAP_END -static ADDRESS_MAP_START( lastday_sound_map, AS_PROGRAM, 8, dooyong_z80_ym2203_state ) +ADDRESS_MAP_START( lastday_sound_map, AS_PROGRAM, 8, dooyong_z80_ym2203_state ) AM_RANGE(0x0000, 0x7fff) AM_ROM AM_RANGE(0xc000, 0xc7ff) AM_RAM AM_RANGE(0xc800, 0xc800) AM_DEVREAD("soundlatch", generic_latch_8_device, read) @@ -290,7 +932,7 @@ static ADDRESS_MAP_START( lastday_sound_map, AS_PROGRAM, 8, dooyong_z80_ym2203_s AM_RANGE(0xf002, 0xf003) AM_DEVREADWRITE("ym2", ym2203_device, read, write) ADDRESS_MAP_END -static ADDRESS_MAP_START( pollux_sound_map, AS_PROGRAM, 8, dooyong_z80_ym2203_state ) +ADDRESS_MAP_START( pollux_sound_map, AS_PROGRAM, 8, dooyong_z80_ym2203_state ) AM_RANGE(0x0000, 0xefff) AM_ROM AM_RANGE(0xf000, 0xf7ff) AM_RAM AM_RANGE(0xf800, 0xf800) AM_DEVREAD("soundlatch", generic_latch_8_device, read) @@ -298,7 +940,7 @@ static ADDRESS_MAP_START( pollux_sound_map, AS_PROGRAM, 8, dooyong_z80_ym2203_st AM_RANGE(0xf804, 0xf805) AM_DEVREADWRITE("ym2", ym2203_device, read, write) ADDRESS_MAP_END -static ADDRESS_MAP_START( bluehawk_sound_map, AS_PROGRAM, 8, dooyong_state ) +ADDRESS_MAP_START( bluehawk_sound_map, AS_PROGRAM, 8, dooyong_state ) AM_RANGE(0x0000, 0xefff) AM_ROM AM_RANGE(0xf000, 0xf7ff) AM_RAM AM_RANGE(0xf800, 0xf800) AM_DEVREAD("soundlatch", generic_latch_8_device, read) @@ -312,7 +954,7 @@ ADDRESS_MAP_END ***************************************************************************/ -static INPUT_PORTS_START( dooyongz80_generic ) +INPUT_PORTS_START( dooyongz80_generic ) PORT_START("DSWA") PORT_SERVICE_DIPLOC( 0x01, IP_ACTIVE_LOW, "SWA:1" ) PORT_DIPNAME( 0x02, 0x02, "Coin Type" ) PORT_DIPLOCATION("SWA:2") @@ -398,7 +1040,7 @@ INPUT_PORTS_END ***************************************************************************/ -static INPUT_PORTS_START( dooyongm68_generic ) +INPUT_PORTS_START( dooyongm68_generic ) PORT_START("DSW") PORT_SERVICE_DIPLOC( 0x01, IP_ACTIVE_LOW, "SWA:1" ) PORT_DIPNAME( 0x0002, 0x0002, "Coin Type" ) PORT_DIPLOCATION("SWA:2") @@ -480,7 +1122,7 @@ INPUT_PORTS_END ***************************************************************************/ -static INPUT_PORTS_START( lastday ) +INPUT_PORTS_START( lastday ) PORT_INCLUDE( dooyongz80_generic ) PORT_MODIFY("DSWB") @@ -504,7 +1146,7 @@ static INPUT_PORTS_START( lastday ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) INPUT_PORTS_END -static INPUT_PORTS_START( gulfstrm ) +INPUT_PORTS_START( gulfstrm ) PORT_INCLUDE( dooyongz80_generic ) PORT_MODIFY("DSWB") @@ -528,7 +1170,7 @@ static INPUT_PORTS_START( gulfstrm ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) INPUT_PORTS_END -static INPUT_PORTS_START( pollux ) +INPUT_PORTS_START( pollux ) PORT_INCLUDE( dooyongz80_generic ) PORT_MODIFY("SYSTEM") @@ -542,11 +1184,11 @@ static INPUT_PORTS_START( pollux ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) INPUT_PORTS_END -static INPUT_PORTS_START( bluehawk ) +INPUT_PORTS_START( bluehawk ) PORT_INCLUDE( dooyongz80_generic ) INPUT_PORTS_END -static INPUT_PORTS_START( flytiger ) +INPUT_PORTS_START( flytiger ) PORT_INCLUDE( dooyongz80_generic ) PORT_MODIFY("DSWB") @@ -558,7 +1200,7 @@ static INPUT_PORTS_START( flytiger ) // PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_VBLANK("screen") // allows title screen + ending screen colours to cycle (but I'm not sure they're meant to, reference shots suggest not, maybe a debug port?) INPUT_PORTS_END -static INPUT_PORTS_START( sadari ) +INPUT_PORTS_START( sadari ) PORT_INCLUDE( dooyongz80_generic ) PORT_MODIFY("DSWB") @@ -575,7 +1217,7 @@ static INPUT_PORTS_START( sadari ) PORT_DIPSETTING( 0x00, DEF_STR( Asia ) ) INPUT_PORTS_END -static INPUT_PORTS_START( primella ) +INPUT_PORTS_START( primella ) PORT_INCLUDE( dooyongz80_generic ) PORT_MODIFY("DSWB") @@ -589,7 +1231,7 @@ static INPUT_PORTS_START( primella ) PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) INPUT_PORTS_END -static INPUT_PORTS_START( rshark ) +INPUT_PORTS_START( rshark ) PORT_INCLUDE( dooyongm68_generic ) PORT_MODIFY("DSW") @@ -604,7 +1246,7 @@ static INPUT_PORTS_START( rshark ) PORT_DIPSETTING( 0x0000, DEF_STR( 1C_6C ) ) PORT_CONDITION("DSW", 0x0002, NOTEQUALS, 0x0002) INPUT_PORTS_END -static INPUT_PORTS_START( superx ) +INPUT_PORTS_START( superx ) PORT_INCLUDE( dooyongm68_generic ) PORT_MODIFY("DSW") /* In documentation this switch enables "service mode" but it never had any effect in game */ @@ -613,7 +1255,7 @@ static INPUT_PORTS_START( superx ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) INPUT_PORTS_END -static INPUT_PORTS_START( popbingo ) +INPUT_PORTS_START( popbingo ) PORT_INCLUDE( dooyongm68_generic ) PORT_MODIFY("DSW") @@ -636,7 +1278,7 @@ INPUT_PORTS_END ***************************************************************************/ -static const gfx_layout lastday_charlayout = +const gfx_layout lastday_charlayout = { 8,8, RGN_FRAC(1,2), @@ -647,7 +1289,7 @@ static const gfx_layout lastday_charlayout = 16*8 }; -static const gfx_layout bluehawk_charlayout = +const gfx_layout bluehawk_charlayout = { 8,8, RGN_FRAC(1,1), @@ -658,7 +1300,7 @@ static const gfx_layout bluehawk_charlayout = 32*8 }; -static const gfx_layout tilelayout = +const gfx_layout tilelayout = { 32,32, RGN_FRAC(1,1), @@ -675,7 +1317,7 @@ static const gfx_layout tilelayout = 512*8 }; -static const gfx_layout spritelayout = +const gfx_layout spritelayout = { 16,16, RGN_FRAC(1,1), @@ -688,7 +1330,7 @@ static const gfx_layout spritelayout = 128*8 }; -static const gfx_layout rshark_spritelayout = +const gfx_layout rshark_spritelayout = { 16,16, RGN_FRAC(1,1), @@ -701,21 +1343,21 @@ static const gfx_layout rshark_spritelayout = 128*8 }; -static GFXDECODE_START( lastday ) +GFXDECODE_START( lastday ) GFXDECODE_ENTRY( "gfx1", 0, lastday_charlayout, 0, 16+64 ) GFXDECODE_ENTRY( "gfx2", 0, spritelayout, 256, 16+64 ) GFXDECODE_ENTRY( "gfx3", 0, tilelayout, 768, 16+64 ) GFXDECODE_ENTRY( "gfx4", 0, tilelayout, 512, 16+64 ) GFXDECODE_END -static GFXDECODE_START( flytiger ) +GFXDECODE_START( flytiger ) GFXDECODE_ENTRY( "gfx1", 0, lastday_charlayout, 0, 16+64 ) GFXDECODE_ENTRY( "gfx2", 0, spritelayout, 256, 16+64 ) GFXDECODE_ENTRY( "gfx3", 0, tilelayout, 768, 16+64 ) GFXDECODE_ENTRY( "gfx4", 0, tilelayout, 512, 32+64 ) GFXDECODE_END -static GFXDECODE_START( bluehawk ) +GFXDECODE_START( bluehawk ) GFXDECODE_ENTRY( "gfx1", 0, bluehawk_charlayout, 0, 16 ) GFXDECODE_ENTRY( "gfx2", 0, spritelayout, 256, 16 ) GFXDECODE_ENTRY( "gfx3", 0, tilelayout, 768, 16 ) @@ -723,14 +1365,14 @@ static GFXDECODE_START( bluehawk ) GFXDECODE_ENTRY( "gfx5", 0, tilelayout, 0, 16 ) GFXDECODE_END -static GFXDECODE_START( primella ) +GFXDECODE_START( primella ) GFXDECODE_ENTRY( "gfx1", 0, bluehawk_charlayout, 0, 16 ) /* no sprites */ GFXDECODE_ENTRY( "gfx2", 0, tilelayout, 768, 16 ) GFXDECODE_ENTRY( "gfx3", 0, tilelayout, 512, 16 ) GFXDECODE_END -static GFXDECODE_START( rshark ) +GFXDECODE_START( rshark ) /* no chars */ GFXDECODE_ENTRY( "gfx1", 0, rshark_spritelayout, 0, 16 ) GFXDECODE_ENTRY( "gfx2", 0, spritelayout, 256, 16 ) @@ -739,7 +1381,7 @@ static GFXDECODE_START( rshark ) GFXDECODE_ENTRY( "gfx5", 0, spritelayout, 1024, 16 ) GFXDECODE_END -static GFXDECODE_START( popbingo ) +GFXDECODE_START( popbingo ) /* no chars */ GFXDECODE_ENTRY( "gfx1", 0, rshark_spritelayout, 0, 16 ) GFXDECODE_ENTRY( "gfx2", 0, tilelayout, 0, 1 ) @@ -771,7 +1413,7 @@ WRITE_LINE_MEMBER(dooyong_z80_ym2203_state::irqhandler_2203_2) ***************************************************************************/ -static MACHINE_CONFIG_FRAGMENT( sound_2203 ) +MACHINE_CONFIG_FRAGMENT( sound_2203 ) MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_GENERIC_LATCH_8_ADD("soundlatch") @@ -787,7 +1429,7 @@ static MACHINE_CONFIG_FRAGMENT( sound_2203 ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40) MACHINE_CONFIG_END -static MACHINE_CONFIG_FRAGMENT( sound_2151 ) +MACHINE_CONFIG_FRAGMENT( sound_2151 ) MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_GENERIC_LATCH_8_ADD("soundlatch") @@ -797,11 +1439,11 @@ static MACHINE_CONFIG_FRAGMENT( sound_2151 ) MCFG_SOUND_ROUTE(0, "mono", 0.50) MCFG_SOUND_ROUTE(1, "mono", 0.50) - MCFG_OKIM6295_ADD("oki", XTAL_1MHz, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", XTAL_1MHz, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60) MACHINE_CONFIG_END -static MACHINE_CONFIG_FRAGMENT( sound_2151_4mhz ) +MACHINE_CONFIG_FRAGMENT( sound_2151_4mhz ) MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_GENERIC_LATCH_8_ADD("soundlatch") @@ -811,11 +1453,11 @@ static MACHINE_CONFIG_FRAGMENT( sound_2151_4mhz ) MCFG_SOUND_ROUTE(0, "mono", 0.50) MCFG_SOUND_ROUTE(1, "mono", 0.50) - MCFG_OKIM6295_ADD("oki", XTAL_16MHz/16, OKIM6295_PIN7_HIGH) /* 1MHz (16MHz/16 for most, 8Mhz/8 for Super-X) */ + MCFG_OKIM6295_ADD("oki", XTAL_16MHz/16, PIN7_HIGH) /* 1MHz (16MHz/16 for most, 8Mhz/8 for Super-X) */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( lastday, dooyong_z80_ym2203_state ) +MACHINE_CONFIG_START( lastday ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_16MHz/2) /* 8MHz verified for Last Day / D-day */ @@ -868,7 +1510,7 @@ static MACHINE_CONFIG_START( lastday, dooyong_z80_ym2203_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( gulfstrm, dooyong_z80_ym2203_state ) +MACHINE_CONFIG_START( gulfstrm ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 8000000) /* ??? */ @@ -907,7 +1549,7 @@ static MACHINE_CONFIG_START( gulfstrm, dooyong_z80_ym2203_state ) MCFG_FRAGMENT_ADD( sound_2203 ) /* 3.579545MHz */ MACHINE_CONFIG_END -static MACHINE_CONFIG_START( pollux, dooyong_z80_ym2203_state ) +MACHINE_CONFIG_START( pollux ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_16MHz/2) /* 8Mhz */ @@ -946,7 +1588,7 @@ static MACHINE_CONFIG_START( pollux, dooyong_z80_ym2203_state ) MCFG_FRAGMENT_ADD( sound_2203 ) /* 3.579545MHz or 4Mhz ??? */ MACHINE_CONFIG_END -static MACHINE_CONFIG_START( bluehawk, dooyong_z80_state ) +MACHINE_CONFIG_START( bluehawk ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 8000000) /* ??? */ @@ -986,7 +1628,7 @@ static MACHINE_CONFIG_START( bluehawk, dooyong_z80_state ) MCFG_FRAGMENT_ADD( sound_2151 ) /* 3.579545MHz or 4Mhz ??? */ MACHINE_CONFIG_END -static MACHINE_CONFIG_START( flytiger, dooyong_z80_state ) +MACHINE_CONFIG_START( flytiger ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_16MHz/2) /* 8MHz */ @@ -1025,7 +1667,7 @@ static MACHINE_CONFIG_START( flytiger, dooyong_z80_state ) MCFG_FRAGMENT_ADD( sound_2151 ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( primella, dooyong_z80_state ) +MACHINE_CONFIG_START( primella ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_16MHz/2) /* 8MHz */ @@ -1075,7 +1717,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(dooyong_68k_state::scanline) } -static MACHINE_CONFIG_START( dooyong_68k, rshark_state ) +MACHINE_CONFIG_START( dooyong_68k ) // basic machine hardware MCFG_CPU_ADD("maincpu", M68000, XTAL_8MHz) // 8MHz measured on Super-X @@ -1114,17 +1756,17 @@ static MACHINE_CONFIG_START( dooyong_68k, rshark_state ) MCFG_FRAGMENT_ADD(sound_2151_4mhz) MACHINE_CONFIG_END -static MACHINE_CONFIG_DERIVED( rshark, dooyong_68k ) +MACHINE_CONFIG_DERIVED( rshark, dooyong_68k ) MCFG_CPU_MODIFY("maincpu") MCFG_CPU_PROGRAM_MAP(rshark_map) MACHINE_CONFIG_END -static MACHINE_CONFIG_DERIVED( superx, dooyong_68k ) +MACHINE_CONFIG_DERIVED( superx, dooyong_68k ) MCFG_CPU_MODIFY("maincpu") MCFG_CPU_PROGRAM_MAP(superx_map) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( popbingo, popbingo_state ) +MACHINE_CONFIG_START( popbingo ) // basic machine hardware MCFG_CPU_ADD("maincpu", M68000, XTAL_20MHz/2) // 10MHz measured @@ -1161,6 +1803,8 @@ static MACHINE_CONFIG_START( popbingo, popbingo_state ) MCFG_FRAGMENT_ADD(sound_2151_4mhz) MACHINE_CONFIG_END +} // anonymous namespace + /*************************************************************************** @@ -2092,35 +2736,35 @@ ROM_END /* The differences between the two lastday sets are only in the sound program and graphics. The main program is the same. */ -GAME( 1990, lastday, 0, lastday, lastday, driver_device, 0, ROT270, "Dooyong", "The Last Day (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, lastdaya, lastday, lastday, lastday, driver_device, 0, ROT270, "Dooyong", "The Last Day (set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, ddaydoo, lastday, lastday, lastday, driver_device, 0, ROT270, "Dooyong", "Chulgyeok D-Day (Korea)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, lastday, 0, lastday, lastday, dooyong_z80_ym2203_state, 0, ROT270, "Dooyong", "The Last Day (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, lastdaya, lastday, lastday, lastday, dooyong_z80_ym2203_state, 0, ROT270, "Dooyong", "The Last Day (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, ddaydoo, lastday, lastday, lastday, dooyong_z80_ym2203_state, 0, ROT270, "Dooyong", "Chulgyeok D-Day (Korea)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, gulfstrm, 0, gulfstrm, gulfstrm, driver_device, 0, ROT270, "Dooyong", "Gulf Storm (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, gulfstrma,gulfstrm, gulfstrm, gulfstrm, driver_device, 0, ROT270, "Dooyong", "Gulf Storm (set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, gulfstrmb,gulfstrm, gulfstrm, gulfstrm, driver_device, 0, ROT270, "Dooyong", "Gulf Storm (set 3)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, gulfstrmm,gulfstrm, gulfstrm, gulfstrm, driver_device, 0, ROT270, "Dooyong (Media Shoji license)", "Gulf Storm (Media Shoji)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, gulfstrmk,gulfstrm, gulfstrm, gulfstrm, driver_device, 0, ROT270, "Dooyong", "Gulf Storm (Korea)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, gulfstrm, 0, gulfstrm, gulfstrm, dooyong_z80_ym2203_state, 0, ROT270, "Dooyong", "Gulf Storm (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, gulfstrma,gulfstrm, gulfstrm, gulfstrm, dooyong_z80_ym2203_state, 0, ROT270, "Dooyong", "Gulf Storm (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, gulfstrmb,gulfstrm, gulfstrm, gulfstrm, dooyong_z80_ym2203_state, 0, ROT270, "Dooyong", "Gulf Storm (set 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, gulfstrmm,gulfstrm, gulfstrm, gulfstrm, dooyong_z80_ym2203_state, 0, ROT270, "Dooyong (Media Shoji license)", "Gulf Storm (Media Shoji)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, gulfstrmk,gulfstrm, gulfstrm, gulfstrm, dooyong_z80_ym2203_state, 0, ROT270, "Dooyong", "Gulf Storm (Korea)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, pollux, 0, pollux, pollux, driver_device, 0, ROT270, "Dooyong", "Pollux (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, polluxa, pollux, pollux, pollux, driver_device, 0, ROT270, "Dooyong", "Pollux (set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, polluxa2, pollux, pollux, pollux, driver_device, 0, ROT270, "Dooyong", "Pollux (set 3)", MACHINE_SUPPORTS_SAVE ) // Original Dooyong Board distributed by TCH -GAME( 1991, polluxn, pollux, pollux, pollux, driver_device, 0, ROT270, "Dooyong (NTC / Atlus license)", "Pollux (Japan, NTC license, distributed by Atlus)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, pollux, 0, pollux, pollux, dooyong_z80_ym2203_state, 0, ROT270, "Dooyong", "Pollux (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, polluxa, pollux, pollux, pollux, dooyong_z80_ym2203_state, 0, ROT270, "Dooyong", "Pollux (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, polluxa2, pollux, pollux, pollux, dooyong_z80_ym2203_state, 0, ROT270, "Dooyong", "Pollux (set 3)", MACHINE_SUPPORTS_SAVE ) // Original Dooyong Board distributed by TCH +GAME( 1991, polluxn, pollux, pollux, pollux, dooyong_z80_ym2203_state, 0, ROT270, "Dooyong (NTC / Atlus license)", "Pollux (Japan, NTC license, distributed by Atlus)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, flytiger, 0, flytiger, flytiger, driver_device, 0, ROT270, "Dooyong", "Flying Tiger (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, flytigera,flytiger, flytiger, flytiger, driver_device, 0, ROT270, "Dooyong", "Flying Tiger (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, flytiger, 0, flytiger, flytiger, dooyong_z80_state, 0, ROT270, "Dooyong", "Flying Tiger (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, flytigera,flytiger, flytiger, flytiger, dooyong_z80_state, 0, ROT270, "Dooyong", "Flying Tiger (set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, bluehawk, 0, bluehawk, bluehawk, driver_device, 0, ROT270, "Dooyong", "Blue Hawk", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, bluehawkn,bluehawk, bluehawk, bluehawk, driver_device, 0, ROT270, "Dooyong (NTC license)", "Blue Hawk (NTC)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, bluehawk, 0, bluehawk, bluehawk, dooyong_z80_state, 0, ROT270, "Dooyong", "Blue Hawk", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, bluehawkn,bluehawk, bluehawk, bluehawk, dooyong_z80_state, 0, ROT270, "Dooyong (NTC license)", "Blue Hawk (NTC)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, sadari, 0, primella, sadari, driver_device, 0, ROT0, "Dooyong (NTC license)", "Sadari", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, sadari, 0, primella, sadari, dooyong_z80_state, 0, ROT0, "Dooyong (NTC license)", "Sadari", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, gundl94, 0, primella, primella, driver_device, 0, ROT0, "Dooyong", "Gun Dealer '94", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, primella, gundl94, primella, primella, driver_device, 0, ROT0, "Dooyong (NTC license)", "Primella", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, gundl94, 0, primella, primella, dooyong_z80_state, 0, ROT0, "Dooyong", "Gun Dealer '94", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, primella, gundl94, primella, primella, dooyong_z80_state, 0, ROT0, "Dooyong (NTC license)", "Primella", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, superx, 0, superx, superx, driver_device, 0, ROT270, "Dooyong (NTC license)", "Super-X (NTC)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, superxm, superx, superx, superx, driver_device, 0, ROT270, "Dooyong (Mitchell license)", "Super-X (Mitchell)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, superx, 0, superx, superx, rshark_state, 0, ROT270, "Dooyong (NTC license)", "Super-X (NTC)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, superxm, superx, superx, superx, rshark_state, 0, ROT270, "Dooyong (Mitchell license)", "Super-X (Mitchell)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, rshark, 0, rshark, rshark, driver_device, 0, ROT270, "Dooyong", "R-Shark", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, rshark, 0, rshark, rshark, rshark_state, 0, ROT270, "Dooyong", "R-Shark", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, popbingo, 0, popbingo, popbingo, driver_device, 0, ROT0, "Dooyong", "Pop Bingo", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, popbingo, 0, popbingo, popbingo, popbingo_state, 0, ROT0, "Dooyong", "Pop Bingo", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/dorachan.cpp b/src/mame/drivers/dorachan.cpp index 0d53cd09e56..2f025a98ee1 100644 --- a/src/mame/drivers/dorachan.cpp +++ b/src/mame/drivers/dorachan.cpp @@ -200,7 +200,7 @@ void dorachan_state::machine_reset() m_flip_screen = 0; } -static MACHINE_CONFIG_START( dorachan, dorachan_state ) +static MACHINE_CONFIG_START( dorachan ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 2000000) @@ -254,4 +254,4 @@ ROM_END * *************************************/ -GAME( 1980, dorachan, 0, dorachan, dorachan, driver_device, 0, ROT270, "Alpha Denshi Co. / Craul Denshi", "Dora-chan (Japan)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1980, dorachan, 0, dorachan, dorachan, dorachan_state, 0, ROT270, "Alpha Denshi Co. / Craul Denshi", "Dora-chan (Japan)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/dotrikun.cpp b/src/mame/drivers/dotrikun.cpp index 76441f045b5..08a76d4747e 100644 --- a/src/mame/drivers/dotrikun.cpp +++ b/src/mame/drivers/dotrikun.cpp @@ -185,7 +185,7 @@ void dotrikun_state::machine_reset() m_color = 0; } -static MACHINE_CONFIG_START( dotrikun, dotrikun_state ) +static MACHINE_CONFIG_START( dotrikun ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_4MHz) @@ -224,5 +224,5 @@ ROM_START( dotrikun2 ) ROM_END -GAMEL(1990, dotrikun, 0, dotrikun, dotrikun, driver_device, 0, ROT0, "Sega", "Dottori Kun (new version)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW, layout_dotrikun ) -GAMEL(1990, dotrikun2, dotrikun, dotrikun, dotrikun, driver_device, 0, ROT0, "Sega", "Dottori Kun (old version)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW, layout_dotrikun ) +GAMEL(1990, dotrikun, 0, dotrikun, dotrikun, dotrikun_state, 0, ROT0, "Sega", "Dottori Kun (new version)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW, layout_dotrikun ) +GAMEL(1990, dotrikun2, dotrikun, dotrikun, dotrikun, dotrikun_state, 0, ROT0, "Sega", "Dottori Kun (old version)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW, layout_dotrikun ) diff --git a/src/mame/drivers/dps1.cpp b/src/mame/drivers/dps1.cpp index cd0f3e04f7f..b961f1d29ef 100644 --- a/src/mame/drivers/dps1.cpp +++ b/src/mame/drivers/dps1.cpp @@ -43,7 +43,7 @@ public: DECLARE_WRITE_LINE_MEMBER(fdc_drq_w); DECLARE_DRIVER_INIT(dps1); DECLARE_MACHINE_RESET(dps1); - DECLARE_WRITE8_MEMBER(kbd_put); + void kbd_put(u8 data); private: bool m_dma_dir; @@ -201,7 +201,7 @@ DRIVER_INIT_MEMBER( dps1_state, dps1 ) static INPUT_PORTS_START( dps1 ) INPUT_PORTS_END -WRITE8_MEMBER( dps1_state::kbd_put ) +void dps1_state::kbd_put(u8 data) { m_term_data = data; } @@ -210,7 +210,7 @@ static SLOT_INTERFACE_START( floppies ) SLOT_INTERFACE( "floppy0", FLOPPY_8_DSDD ) SLOT_INTERFACE_END -static MACHINE_CONFIG_START( dps1, dps1_state ) +static MACHINE_CONFIG_START( dps1 ) // basic machine hardware MCFG_CPU_ADD("maincpu", Z80, 4000000) MCFG_CPU_PROGRAM_MAP(dps1_mem) @@ -219,7 +219,7 @@ static MACHINE_CONFIG_START( dps1, dps1_state ) /* video hardware */ MCFG_DEVICE_ADD("terminal", GENERIC_TERMINAL, 0) - MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(dps1_state, kbd_put)) + MCFG_GENERIC_TERMINAL_KEYBOARD_CB(PUT(dps1_state, kbd_put)) // floppy MCFG_UPD765A_ADD("fdc", false, true) diff --git a/src/mame/drivers/dragon.cpp b/src/mame/drivers/dragon.cpp index d749aa17156..17fa1daa7ab 100644 --- a/src/mame/drivers/dragon.cpp +++ b/src/mame/drivers/dragon.cpp @@ -146,7 +146,7 @@ static SLOT_INTERFACE_START( dragon_alpha_floppies ) SLOT_INTERFACE("dd", FLOPPY_35_DD) SLOT_INTERFACE_END -static MACHINE_CONFIG_START( dragon_base, dragon_state ) +static MACHINE_CONFIG_START( dragon_base ) MCFG_DEVICE_MODIFY(":") MCFG_DEVICE_CLOCK(XTAL_4_433619MHz) @@ -213,7 +213,7 @@ static MACHINE_CONFIG_DERIVED( dragon32, dragon_base ) MCFG_COCO_CARTRIDGE_HALT_CB(INPUTLINE(MAINCPU_TAG, INPUT_LINE_HALT)) MACHINE_CONFIG_END -static MACHINE_CONFIG_DERIVED_CLASS( dragon64, dragon_base, dragon64_state ) +static MACHINE_CONFIG_DERIVED( dragon64, dragon_base ) // internal ram MCFG_RAM_ADD(RAM_TAG) MCFG_RAM_DEFAULT_SIZE("64K") @@ -233,13 +233,13 @@ static MACHINE_CONFIG_DERIVED_CLASS( dragon64, dragon_base, dragon64_state ) MCFG_SOFTWARE_LIST_ADD("dragon_os9_list", "dragon_os9") MACHINE_CONFIG_END -static MACHINE_CONFIG_DERIVED_CLASS( dragon200e, dragon64, dragon200e_state ) +static MACHINE_CONFIG_DERIVED( dragon200e, dragon64 ) // video hardware MCFG_DEVICE_MODIFY(VDG_TAG) MCFG_MC6847_CHARROM_CALLBACK(dragon200e_state, char_rom_r) MACHINE_CONFIG_END -static MACHINE_CONFIG_DERIVED_CLASS( d64plus, dragon64, d64plus_state ) +static MACHINE_CONFIG_DERIVED( d64plus, dragon64 ) // internal ram MCFG_RAM_MODIFY(RAM_TAG) MCFG_RAM_DEFAULT_SIZE("128K") @@ -269,7 +269,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( d64plus, dragon64, d64plus_state ) // MACHINE_CONFIG_END -static MACHINE_CONFIG_DERIVED_CLASS( dgnalpha, dragon_base, dragon_alpha_state ) +static MACHINE_CONFIG_DERIVED( dgnalpha, dragon_base ) // internal ram MCFG_RAM_ADD(RAM_TAG) MCFG_RAM_DEFAULT_SIZE("64K") @@ -386,11 +386,11 @@ ROM_START(dgnalpha) ROM_LOAD("alpha_ba.rom", 0x8000, 0x4000, CRC(84f68bf9) SHA1(1983b4fb398e3dd9668d424c666c5a0b3f1e2b69)) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1982, dragon32, 0, 0, dragon32, dragon, driver_device, 0, "Dragon Data Ltd", "Dragon 32", 0 ) -COMP( 1983, dragon64, dragon32, 0, dragon64, dragon, driver_device, 0, "Dragon Data Ltd", "Dragon 64", 0 ) -COMP( 1985, dragon200, dragon32, 0, dragon64, dragon, driver_device, 0, "Eurohard S.A.", "Dragon 200", 0 ) -COMP( 1985, dragon200e, dragon32, 0, dragon200e, dragon, driver_device, 0, "Eurohard S.A.", "Dragon 200-E", MACHINE_NOT_WORKING ) -COMP( 1985, d64plus, dragon32, 0, d64plus, dragon, driver_device, 0, "Dragon Data Ltd / Compusense", "Dragon 64 Plus", MACHINE_NOT_WORKING ) -COMP( 1983, tanodr64, dragon32, 0, tanodr64, dragon, driver_device, 0, "Dragon Data Ltd / Tano Ltd", "Tano Dragon 64 (NTSC)", 0 ) -COMP( 1984, dgnalpha, dragon32, 0, dgnalpha, dragon, driver_device, 0, "Dragon Data Ltd", "Dragon Professional (Alpha)", 0 ) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 1982, dragon32, 0, 0, dragon32, dragon, dragon_state, 0, "Dragon Data Ltd", "Dragon 32", 0 ) +COMP( 1983, dragon64, dragon32, 0, dragon64, dragon, dragon64_state, 0, "Dragon Data Ltd", "Dragon 64", 0 ) +COMP( 1985, dragon200, dragon32, 0, dragon64, dragon, dragon64_state, 0, "Eurohard S.A.", "Dragon 200", 0 ) +COMP( 1985, dragon200e, dragon32, 0, dragon200e, dragon, dragon200e_state, 0, "Eurohard S.A.", "Dragon 200-E", MACHINE_NOT_WORKING ) +COMP( 1985, d64plus, dragon32, 0, d64plus, dragon, d64plus_state, 0, "Dragon Data Ltd / Compusense", "Dragon 64 Plus", MACHINE_NOT_WORKING ) +COMP( 1983, tanodr64, dragon32, 0, tanodr64, dragon, dragon64_state, 0, "Dragon Data Ltd / Tano Ltd", "Tano Dragon 64 (NTSC)", 0 ) +COMP( 1984, dgnalpha, dragon32, 0, dgnalpha, dragon, dragon_alpha_state, 0, "Dragon Data Ltd", "Dragon Professional (Alpha)", 0 ) diff --git a/src/mame/drivers/dragrace.cpp b/src/mame/drivers/dragrace.cpp index 07c40176dd5..663c2687ebc 100644 --- a/src/mame/drivers/dragrace.cpp +++ b/src/mame/drivers/dragrace.cpp @@ -325,7 +325,7 @@ void dragrace_state::machine_reset() m_gear[1] = 0; } -static MACHINE_CONFIG_START( dragrace, dragrace_state ) +static MACHINE_CONFIG_START( dragrace ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6800, XTAL_12_096MHz / 12) @@ -381,4 +381,4 @@ ROM_START( dragrace ) ROM_END -GAMEL(1977, dragrace, 0, dragrace, dragrace, driver_device, 0, 0, "Atari (Kee Games)", "Drag Race", MACHINE_SUPPORTS_SAVE, layout_dragrace ) +GAMEL(1977, dragrace, 0, dragrace, dragrace, dragrace_state, 0, 0, "Atari (Kee Games)", "Drag Race", MACHINE_SUPPORTS_SAVE, layout_dragrace ) diff --git a/src/mame/drivers/dreambal.cpp b/src/mame/drivers/dreambal.cpp index 12ea37fb4c2..f404248ac37 100644 --- a/src/mame/drivers/dreambal.cpp +++ b/src/mame/drivers/dreambal.cpp @@ -304,7 +304,7 @@ void dreambal_state::machine_reset() } // xtals = 28.000, 9.8304 -static MACHINE_CONFIG_START( dreambal, dreambal_state ) +static MACHINE_CONFIG_START( dreambal ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 28000000/2) @@ -346,7 +346,7 @@ static MACHINE_CONFIG_START( dreambal, dreambal_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", 9830400/8, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", 9830400/8, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) MACHINE_CONFIG_END diff --git a/src/mame/drivers/dreamwld.cpp b/src/mame/drivers/dreamwld.cpp index 6e6c9089166..d63e70cd1de 100644 --- a/src/mame/drivers/dreamwld.cpp +++ b/src/mame/drivers/dreamwld.cpp @@ -792,7 +792,7 @@ void dreamwld_state::machine_reset() } -static MACHINE_CONFIG_START( baryon, dreamwld_state ) +static MACHINE_CONFIG_START( baryon ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68EC020, XTAL_32MHz/2) /* 16MHz verified */ @@ -816,7 +816,7 @@ static MACHINE_CONFIG_START( baryon, dreamwld_state ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_OKIM6295_ADD("oki1", XTAL_32MHz/32, OKIM6295_PIN7_LOW) /* 1MHz verified */ + MCFG_OKIM6295_ADD("oki1", XTAL_32MHz/32, PIN7_LOW) /* 1MHz verified */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.50) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.50) MCFG_DEVICE_ADDRESS_MAP(AS_0, oki1_map) @@ -830,7 +830,7 @@ static MACHINE_CONFIG_DERIVED( dreamwld, baryon ) MCFG_CPU_PROGRAM_MAP(dreamwld_map) MCFG_CPU_VBLANK_INT_DRIVER("screen", dreamwld_state, irq4_line_hold) - MCFG_OKIM6295_ADD("oki2", XTAL_32MHz/32, OKIM6295_PIN7_LOW) /* 1MHz verified */ + MCFG_OKIM6295_ADD("oki2", XTAL_32MHz/32, PIN7_LOW) /* 1MHz verified */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.50) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.50) MCFG_DEVICE_ADDRESS_MAP(AS_0, oki2_map) @@ -1285,10 +1285,10 @@ ROM_START( gaialast ) ROM_LOAD( "9", 0x000000, 0x10000, CRC(0da8db45) SHA1(7d5bd71c5b0b28ff74c732edd7c662f46f2ab25b) ) ROM_END -GAME( 1997, baryon, 0, baryon, baryon, driver_device, 0, ROT270, "SemiCom / Tirano", "Baryon - Future Assault (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, baryona, baryon, baryon, baryon, driver_device, 0, ROT270, "SemiCom / Tirano", "Baryon - Future Assault (set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, cutefght, 0, dreamwld, cutefght, driver_device, 0, ROT0, "SemiCom", "Cute Fighter", MACHINE_SUPPORTS_SAVE ) -GAME( 1999, rolcrush, 0, baryon, rolcrush, driver_device, 0, ROT0, "SemiCom / Exit (Trust license)", "Rolling Crush (version 1.07.E - 1999/02/11, Trust license)", MACHINE_SUPPORTS_SAVE ) -GAME( 1999, rolcrusha,rolcrush, baryon, rolcrush, driver_device, 0, ROT0, "SemiCom / Exit", "Rolling Crush (version 1.03.E - 1999/01/29)", MACHINE_SUPPORTS_SAVE ) -GAME( 1999, gaialast, 0, baryon, gaialast, driver_device, 0, ROT0, "SemiCom / XESS", "Gaia - The Last Choice of Earth", MACHINE_SUPPORTS_SAVE ) -GAME( 2000, dreamwld, 0, dreamwld, dreamwld, driver_device, 0, ROT0, "SemiCom", "Dream World", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, baryon, 0, baryon, baryon, dreamwld_state, 0, ROT270, "SemiCom / Tirano", "Baryon - Future Assault (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, baryona, baryon, baryon, baryon, dreamwld_state, 0, ROT270, "SemiCom / Tirano", "Baryon - Future Assault (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, cutefght, 0, dreamwld, cutefght, dreamwld_state, 0, ROT0, "SemiCom", "Cute Fighter", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, rolcrush, 0, baryon, rolcrush, dreamwld_state, 0, ROT0, "SemiCom / Exit (Trust license)", "Rolling Crush (version 1.07.E - 1999/02/11, Trust license)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, rolcrusha,rolcrush, baryon, rolcrush, dreamwld_state, 0, ROT0, "SemiCom / Exit", "Rolling Crush (version 1.03.E - 1999/01/29)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, gaialast, 0, baryon, gaialast, dreamwld_state, 0, ROT0, "SemiCom / XESS", "Gaia - The Last Choice of Earth", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, dreamwld, 0, dreamwld, dreamwld, dreamwld_state, 0, ROT0, "SemiCom", "Dream World", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/drgnmst.cpp b/src/mame/drivers/drgnmst.cpp index 03a8e521f2c..168e48d8f8a 100644 --- a/src/mame/drivers/drgnmst.cpp +++ b/src/mame/drivers/drgnmst.cpp @@ -373,7 +373,7 @@ void drgnmst_state::machine_reset() m_oki0_bank = 0; } -static MACHINE_CONFIG_START( drgnmst, drgnmst_state ) +static MACHINE_CONFIG_START( drgnmst ) MCFG_CPU_ADD("maincpu", M68000, 12000000) /* Confirmed */ MCFG_CPU_PROGRAM_MAP(drgnmst_main_map) @@ -403,11 +403,11 @@ static MACHINE_CONFIG_START( drgnmst, drgnmst_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_OKIM6295_ADD("oki1", 32000000/32, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki1", 32000000/32, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.50) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.50) - MCFG_OKIM6295_ADD("oki2", 32000000/32, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki2", 32000000/32, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.50) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.50) MACHINE_CONFIG_END diff --git a/src/mame/drivers/dribling.cpp b/src/mame/drivers/dribling.cpp index ac8504aae24..3c460dfe637 100644 --- a/src/mame/drivers/dribling.cpp +++ b/src/mame/drivers/dribling.cpp @@ -266,7 +266,7 @@ void dribling_state::machine_reset() } -static MACHINE_CONFIG_START( dribling, dribling_state ) +static MACHINE_CONFIG_START( dribling ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 5000000) @@ -373,6 +373,6 @@ ROM_END * *************************************/ -GAME( 1983, dribling, 0, dribling, dribling, driver_device, 0, ROT0, "Model Racing", "Dribbling", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1983, driblingo, dribling, dribling, dribling, driver_device, 0, ROT0, "Model Racing (Olympia license)", "Dribbling (Olympia)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1983, driblingbr, dribling, dribling, dribling, driver_device, 0, ROT0, "bootleg (Videomac)", "Dribbling (bootleg, Brazil)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1983, dribling, 0, dribling, dribling, dribling_state, 0, ROT0, "Model Racing", "Dribbling", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1983, driblingo, dribling, dribling, dribling, dribling_state, 0, ROT0, "Model Racing (Olympia license)", "Dribbling (Olympia)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1983, driblingbr, dribling, dribling, dribling, dribling_state, 0, ROT0, "bootleg (Videomac)", "Dribbling (bootleg, Brazil)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/drmicro.cpp b/src/mame/drivers/drmicro.cpp index 71aa57fbe06..2e407b5aa20 100644 --- a/src/mame/drivers/drmicro.cpp +++ b/src/mame/drivers/drmicro.cpp @@ -238,7 +238,7 @@ void drmicro_state::machine_reset() } -static MACHINE_CONFIG_START( drmicro, drmicro_state ) +static MACHINE_CONFIG_START( drmicro ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80,MCLK/6) /* 3.072MHz? */ @@ -277,7 +277,7 @@ static MACHINE_CONFIG_START( drmicro, drmicro_state ) MCFG_SOUND_ADD("msm", MSM5205, 384000) MCFG_MSM5205_VCLK_CB(WRITELINE(drmicro_state, pcm_w)) /* IRQ handler */ - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S64_4B) /* 6 KHz */ + MCFG_MSM5205_PRESCALER_SELECTOR(S64_4B) /* 6 KHz */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.75) MACHINE_CONFIG_END @@ -322,4 +322,4 @@ ROM_END * *************************************/ -GAME( 1983, drmicro, 0, drmicro, drmicro, driver_device, 0, ROT270, "Sanritsu", "Dr. Micro", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, drmicro, 0, drmicro, drmicro, drmicro_state, 0, ROT270, "Sanritsu", "Dr. Micro", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/drtomy.cpp b/src/mame/drivers/drtomy.cpp index 827d5645e4f..f7bc2dfbe1d 100644 --- a/src/mame/drivers/drtomy.cpp +++ b/src/mame/drivers/drtomy.cpp @@ -299,7 +299,7 @@ void drtomy_state::machine_reset() m_oki_bank = 0; } -static MACHINE_CONFIG_START( drtomy, drtomy_state ) +static MACHINE_CONFIG_START( drtomy ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000,24000000/2) /* ? MHz */ @@ -324,7 +324,7 @@ static MACHINE_CONFIG_START( drtomy, drtomy_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", 26000000/16, OKIM6295_PIN7_LOW) + MCFG_OKIM6295_ADD("oki", 26000000/16, PIN7_LOW) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.8) MACHINE_CONFIG_END @@ -355,4 +355,4 @@ ROM_START( drtomy ) ROM_END -GAME( 1993, drtomy, 0, drtomy, drtomy, driver_device, 0, ROT0, "Playmark", "Dr. Tomy", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, drtomy, 0, drtomy, drtomy, drtomy_state, 0, ROT0, "Playmark", "Dr. Tomy", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/drw80pkr.cpp b/src/mame/drivers/drw80pkr.cpp index 150724fccd0..dc21cffa126 100644 --- a/src/mame/drivers/drw80pkr.cpp +++ b/src/mame/drivers/drw80pkr.cpp @@ -438,7 +438,7 @@ INPUT_PORTS_END * Machine Driver * *************************/ -static MACHINE_CONFIG_START( drw80pkr, drw80pkr_state ) +static MACHINE_CONFIG_START( drw80pkr ) // basic machine hardware MCFG_CPU_ADD("maincpu", I8039, CPU_CLOCK) MCFG_CPU_PROGRAM_MAP(drw80pkr_map) @@ -512,6 +512,6 @@ ROM_END * Game Drivers * *************************/ -/* YEAR NAME PARENT MACHINE INPUT INIT ROT COMPANY FULLNAME FLAGS */ +// YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS GAME( 1982, drw80pkr, 0, drw80pkr, drw80pkr, drw80pkr_state, drw80pkr, ROT0, "IGT - International Game Technology", "Draw 80 Poker", MACHINE_NOT_WORKING ) GAME( 1983, drw80pk2, 0, drw80pkr, drw80pkr, drw80pkr_state, drw80pkr, ROT0, "IGT - International Game Technology", "Draw 80 Poker - Minn", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/dsb46.cpp b/src/mame/drivers/dsb46.cpp index b6729926993..4b665f66fd9 100644 --- a/src/mame/drivers/dsb46.cpp +++ b/src/mame/drivers/dsb46.cpp @@ -36,7 +36,7 @@ public: DECLARE_READ8_MEMBER(port00_r); DECLARE_READ8_MEMBER(port01_r); - DECLARE_WRITE8_MEMBER(kbd_put); + void kbd_put(u8 data); DECLARE_WRITE8_MEMBER(port1a_w); DECLARE_DRIVER_INIT(dsb46); DECLARE_MACHINE_RESET(dsb46); @@ -104,12 +104,12 @@ READ8_MEMBER( dsb46_state::port00_r ) return ret; } -WRITE8_MEMBER( dsb46_state::kbd_put ) +void dsb46_state::kbd_put(u8 data) { m_term_data = data; } -static MACHINE_CONFIG_START( dsb46, dsb46_state ) +static MACHINE_CONFIG_START( dsb46 ) // basic machine hardware MCFG_CPU_ADD("maincpu", Z80, 4000000) MCFG_CPU_PROGRAM_MAP(dsb46_mem) @@ -118,7 +118,7 @@ static MACHINE_CONFIG_START( dsb46, dsb46_state ) /* video hardware */ MCFG_DEVICE_ADD("terminal", GENERIC_TERMINAL, 0) - MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(dsb46_state, kbd_put)) + MCFG_GENERIC_TERMINAL_KEYBOARD_CB(PUT(dsb46_state, kbd_put)) MACHINE_CONFIG_END ROM_START( dsb46 ) diff --git a/src/mame/drivers/dual68.cpp b/src/mame/drivers/dual68.cpp index ea94a995f08..fb175c129c1 100644 --- a/src/mame/drivers/dual68.cpp +++ b/src/mame/drivers/dual68.cpp @@ -26,13 +26,16 @@ public: { } + void kbd_put(u8 data); + DECLARE_WRITE16_MEMBER( dual68_terminal_w ); + +protected: + virtual void machine_reset() override; + required_device m_maincpu; required_device m_terminal; - DECLARE_WRITE8_MEMBER( kbd_put ); - DECLARE_WRITE16_MEMBER( dual68_terminal_w ); //uint8_t m_term_data; required_shared_ptr m_p_ram; - virtual void machine_reset() override; }; @@ -74,12 +77,12 @@ void dual68_state::machine_reset() m_maincpu->reset(); } -WRITE8_MEMBER( dual68_state::kbd_put ) +void dual68_state::kbd_put(u8 data) { //m_term_data = data; } -static MACHINE_CONFIG_START( dual68, dual68_state ) +static MACHINE_CONFIG_START( dual68 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz / 2) MCFG_CPU_PROGRAM_MAP(dual68_mem) @@ -91,7 +94,7 @@ static MACHINE_CONFIG_START( dual68, dual68_state ) /* video hardware */ MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0) - MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(dual68_state, kbd_put)) + MCFG_GENERIC_TERMINAL_KEYBOARD_CB(PUT(dual68_state, kbd_put)) MACHINE_CONFIG_END /* ROM definition */ @@ -111,5 +114,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1981, dual68, 0, 0, dual68, dual68, driver_device, 0, "Dual Systems Corporation", "Dual Systems 68000", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1981, dual68, 0, 0, dual68, dual68, dual68_state, 0, "Dual Systems Corporation", "Dual Systems 68000", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) diff --git a/src/mame/drivers/dunhuang.cpp b/src/mame/drivers/dunhuang.cpp index a81d7a672dd..0be6895eb68 100644 --- a/src/mame/drivers/dunhuang.cpp +++ b/src/mame/drivers/dunhuang.cpp @@ -813,7 +813,7 @@ void dunhuang_state::machine_reset() } -static MACHINE_CONFIG_START( dunhuang, dunhuang_state ) +static MACHINE_CONFIG_START( dunhuang ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80,12000000/2) @@ -848,7 +848,7 @@ static MACHINE_CONFIG_START( dunhuang, dunhuang_state ) MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(dunhuang_state, dunhuang_input_w)) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30) - MCFG_OKIM6295_ADD("oki", 12000000/8, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", 12000000/8, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) MACHINE_CONFIG_END @@ -874,4 +874,4 @@ ROM_START( dunhuang ) ROM_LOAD( "rom6.u1", 0x00000, 0x20000, CRC(31cfdc29) SHA1(725249eae9227eadf05418b799e0da0254bb2f51) ) ROM_END -GAME( 1995, dunhuang, 0, dunhuang, dunhuang, driver_device, 0, ROT0, "Spirit", "Mahjong Dunhuang", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, dunhuang, 0, dunhuang, dunhuang, dunhuang_state, 0, ROT0, "Spirit", "Mahjong Dunhuang", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/dvk_kcgd.cpp b/src/mame/drivers/dvk_kcgd.cpp index a6d1717b72e..d533826c287 100644 --- a/src/mame/drivers/dvk_kcgd.cpp +++ b/src/mame/drivers/dvk_kcgd.cpp @@ -342,7 +342,7 @@ static GFXDECODE_START( kcgd ) GFXDECODE_ENTRY("maincpu", 0112236, kcgd_charlayout, 0, 1) GFXDECODE_END -static MACHINE_CONFIG_START( kcgd, kcgd_state ) +static MACHINE_CONFIG_START( kcgd ) MCFG_CPU_ADD("maincpu", K1801VM2, XTAL_30_8MHz/4) MCFG_CPU_PROGRAM_MAP(kcgd_mem) MCFG_T11_INITIAL_MODE(0100000) @@ -381,5 +381,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1987, dvk_kcgd, 0, 0, kcgd, 0, driver_device, 0, "USSR", "DVK KCGD", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +COMP( 1987, dvk_kcgd, 0, 0, kcgd, 0, kcgd_state, 0, "USSR", "DVK KCGD", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW ) diff --git a/src/mame/drivers/dvk_ksm.cpp b/src/mame/drivers/dvk_ksm.cpp index 755a74eacc3..908bdb2861a 100644 --- a/src/mame/drivers/dvk_ksm.cpp +++ b/src/mame/drivers/dvk_ksm.cpp @@ -341,7 +341,7 @@ static GFXDECODE_START( ksm ) GFXDECODE_ENTRY("chargen", 0x0000, ksm_charlayout, 0, 1) GFXDECODE_END -static MACHINE_CONFIG_START( ksm, ksm_state ) +static MACHINE_CONFIG_START( ksm ) MCFG_CPU_ADD("maincpu", I8080, XTAL_15_4MHz/10) MCFG_CPU_PROGRAM_MAP(ksm_mem) MCFG_CPU_IO_MAP(ksm_io) @@ -405,5 +405,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1986, dvk_ksm, 0, 0, ksm, ksm, driver_device, 0, "USSR", "DVK KSM", 0) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +COMP( 1986, dvk_ksm, 0, 0, ksm, ksm, ksm_state, 0, "USSR", "DVK KSM", 0) diff --git a/src/mame/drivers/dwarfd.cpp b/src/mame/drivers/dwarfd.cpp index fb2675c07b4..e78b7bba441 100644 --- a/src/mame/drivers/dwarfd.cpp +++ b/src/mame/drivers/dwarfd.cpp @@ -790,7 +790,7 @@ void dwarfd_state::machine_reset() m_back_color = false; } -static MACHINE_CONFIG_START( dwarfd, dwarfd_state ) +static MACHINE_CONFIG_START( dwarfd ) /* basic machine hardware */ /* FIXME: The 8085A had a max clock of 6MHz, internally divided by 2! */ @@ -1107,11 +1107,11 @@ DRIVER_INIT_MEMBER(dwarfd_state,qc) } -/* YEAR NAME PARENT MACHINE INPUT INIT ORENTATION, COMPANY FULLNAME FLAGS */ -GAME( 1979, pokeresp, 0, pokeresp, dwarfd, dwarfd_state, dwarfd, 0, "Electro-Sport", "Poker (Electro-Sport)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1981, dwarfd, 0, dwarfd, dwarfd, dwarfd_state, dwarfd, 0, "Electro-Sport", "Draw Poker III / Dwarfs Den (Dwarf Gfx)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1981, dwarfda, dwarfd, dwarfd, dwarfd, dwarfd_state, dwarfd, 0, "Electro-Sport", "Draw Poker III / Dwarfs Den (Card Gfx)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1983, quarterh, 0, dwarfd, quarterh, dwarfd_state, dwarfd, 0, "Electro-Sport", "Quarter Horse (set 1, Pioneer PR-8210)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) -GAME( 1983, quarterha, quarterh, dwarfd, quarterh, dwarfd_state, dwarfd, 0, "Electro-Sport", "Quarter Horse (set 2, Pioneer PR-8210)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) -GAME( 1983, quarterhb, quarterh, dwarfd, quarterh, dwarfd_state, dwarfd, 0, "Electro-Sport", "Quarter Horse (set 3, Pioneer LD-V2000)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) -GAME( 1995, qc, 0, qc, quarterh, dwarfd_state, qc, 0, "ArJay Exports/Prestige Games", "Quarter Horse Classic", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) +// YEAR NAME PARENT MACHINE INPUT STATE INIT ORENTATION, COMPANY FULLNAME FLAGS +GAME( 1979, pokeresp, 0, pokeresp, dwarfd, dwarfd_state, dwarfd, ROT0, "Electro-Sport", "Poker (Electro-Sport)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1981, dwarfd, 0, dwarfd, dwarfd, dwarfd_state, dwarfd, ROT0, "Electro-Sport", "Draw Poker III / Dwarfs Den (Dwarf Gfx)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1981, dwarfda, dwarfd, dwarfd, dwarfd, dwarfd_state, dwarfd, ROT0, "Electro-Sport", "Draw Poker III / Dwarfs Den (Card Gfx)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1983, quarterh, 0, dwarfd, quarterh, dwarfd_state, dwarfd, ROT0, "Electro-Sport", "Quarter Horse (set 1, Pioneer PR-8210)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) +GAME( 1983, quarterha, quarterh, dwarfd, quarterh, dwarfd_state, dwarfd, ROT0, "Electro-Sport", "Quarter Horse (set 2, Pioneer PR-8210)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) +GAME( 1983, quarterhb, quarterh, dwarfd, quarterh, dwarfd_state, dwarfd, ROT0, "Electro-Sport", "Quarter Horse (set 3, Pioneer LD-V2000)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) +GAME( 1995, qc, 0, qc, quarterh, dwarfd_state, qc, ROT0, "ArJay Exports/Prestige Games", "Quarter Horse Classic", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/dynadice.cpp b/src/mame/drivers/dynadice.cpp index ed8becac6ca..9f4a665fec0 100644 --- a/src/mame/drivers/dynadice.cpp +++ b/src/mame/drivers/dynadice.cpp @@ -238,7 +238,7 @@ void dynadice_state::machine_reset() m_ay_data = 0; } -static MACHINE_CONFIG_START( dynadice, dynadice_state ) +static MACHINE_CONFIG_START( dynadice ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8080,18432000/8) diff --git a/src/mame/drivers/dynax.cpp b/src/mame/drivers/dynax.cpp index e625ba97367..d94fd2d0218 100644 --- a/src/mame/drivers/dynax.cpp +++ b/src/mame/drivers/dynax.cpp @@ -4381,7 +4381,7 @@ MACHINE_START_MEMBER(dynax_state,hnoridur) Castle Of Dracula ***************************************************************************/ -static MACHINE_CONFIG_START( cdracula, dynax_state ) +static MACHINE_CONFIG_START( cdracula ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_21_4772MHz/4) /* 5.3693175MHz measured */ @@ -4411,7 +4411,7 @@ static MACHINE_CONFIG_START( cdracula, dynax_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", XTAL_4MHz / 4, OKIM6295_PIN7_HIGH) /* 1MHz measured */ + MCFG_OKIM6295_ADD("oki", XTAL_4MHz / 4, PIN7_HIGH) /* 1MHz measured */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) MACHINE_CONFIG_END @@ -4420,7 +4420,7 @@ MACHINE_CONFIG_END Hana no Mai ***************************************************************************/ -static MACHINE_CONFIG_START( hanamai, dynax_state ) +static MACHINE_CONFIG_START( hanamai ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80,22000000 / 4) /* 5.5MHz */ @@ -4464,7 +4464,7 @@ static MACHINE_CONFIG_START( hanamai, dynax_state ) MCFG_SOUND_ADD("msm", MSM5205, 384000) MCFG_MSM5205_VCLK_CB(WRITELINE(dynax_state, adpcm_int)) /* IRQ handler */ - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S48_4B) /* 8 KHz, 4 Bits */ + MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) /* 8 KHz, 4 Bits */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -4474,7 +4474,7 @@ MACHINE_CONFIG_END Hana Oriduru ***************************************************************************/ -static MACHINE_CONFIG_START( hnoridur, dynax_state ) +static MACHINE_CONFIG_START( hnoridur ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80,XTAL_22MHz / 4) /* 5.5MHz */ @@ -4512,7 +4512,7 @@ static MACHINE_CONFIG_START( hnoridur, dynax_state ) MCFG_SOUND_ADD("msm", MSM5205, XTAL_384kHz) MCFG_MSM5205_VCLK_CB(WRITELINE(dynax_state, adpcm_int)) /* IRQ handler */ - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S48_4B) /* 8 KHz, 4 Bits */ + MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) /* 8 KHz, 4 Bits */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -4521,7 +4521,7 @@ MACHINE_CONFIG_END Hana Jingi ***************************************************************************/ -static MACHINE_CONFIG_START( hjingi, dynax_state ) +static MACHINE_CONFIG_START( hjingi ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80, XTAL_22MHz / 4) @@ -4559,7 +4559,7 @@ static MACHINE_CONFIG_START( hjingi, dynax_state ) MCFG_SOUND_ADD("msm", MSM5205, XTAL_384kHz ) MCFG_MSM5205_VCLK_CB(WRITELINE(dynax_state, adpcm_int)) /* IRQ handler */ - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S48_4B) /* 8 KHz, 4 Bits */ + MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) /* 8 KHz, 4 Bits */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -4568,7 +4568,7 @@ MACHINE_CONFIG_END Sports Match ***************************************************************************/ -static MACHINE_CONFIG_START( sprtmtch, dynax_state ) +static MACHINE_CONFIG_START( sprtmtch ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80,22000000 / 4) /* 5.5MHz */ @@ -4613,7 +4613,7 @@ MACHINE_CONFIG_END Mahjong Friday ***************************************************************************/ -static MACHINE_CONFIG_START( mjfriday, dynax_state ) +static MACHINE_CONFIG_START( mjfriday ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80,24000000/4) /* 6 MHz? */ @@ -4747,7 +4747,7 @@ MACHINE_START_MEMBER(dynax_state,jantouki) } -static MACHINE_CONFIG_START( jantouki, dynax_state ) +static MACHINE_CONFIG_START( jantouki ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80,22000000 / 4) /* 5.5MHz */ @@ -4803,7 +4803,7 @@ static MACHINE_CONFIG_START( jantouki, dynax_state ) MCFG_SOUND_ADD("msm", MSM5205, 384000) MCFG_MSM5205_VCLK_CB(WRITELINE(dynax_state, adpcm_int_cpu1)) /* IRQ handler */ - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S48_4B) /* 8 KHz, 4 Bits */ + MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) /* 8 KHz, 4 Bits */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) /* devices */ @@ -4947,7 +4947,7 @@ WRITE_LINE_MEMBER(dynax_state::tenkai_rtc_irq) } -static MACHINE_CONFIG_START( tenkai, dynax_state ) +static MACHINE_CONFIG_START( tenkai ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",TMP91640, 21472700 / 2) @@ -5018,7 +5018,7 @@ MACHINE_RESET_MEMBER(dynax_state,gekisha) gekisha_set_rombank(0); } -static MACHINE_CONFIG_START( gekisha, dynax_state ) +static MACHINE_CONFIG_START( gekisha ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",TMP90841, XTAL_10MHz ) // ? @@ -7475,51 +7475,51 @@ ROM_END ***************************************************************************/ -GAME( 1988, janyuki, 0, janyuki, janyuki, driver_device, 0, ROT0, "Dynax", "Jong Yu Ki (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, hnkochou, 0, hanamai, hnkochou, driver_device, 0, ROT180, "Dynax", "Hana Kochou (Japan, Bet)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, hanamai, hnkochou, hanamai, hanamai, driver_device, 0, ROT180, "Dynax", "Hana no Mai (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, hjingi, 0, hjingi, hjingi, driver_device, 0, ROT180, "Dynax", "Hana Jingi (Japan, Bet)", MACHINE_SUPPORTS_SAVE ) // 1990 05/01 11:58:24 -GAME( 1990, hjingia, hjingi, hjingi, hjingi, driver_device, 0, ROT180, "Dynax", "Hana Jingi (Japan, Bet, alt.)", MACHINE_SUPPORTS_SAVE ) // 1990 05/01 11:58:24 -GAME( 1989, hnoridur, hjingi, hnoridur, hnoridur, driver_device, 0, ROT180, "Dynax", "Hana Oriduru (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, drgpunch, 0, sprtmtch, drgpunch, driver_device, 0, ROT0, "Dynax", "Dragon Punch (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, sprtmtch, drgpunch, sprtmtch, sprtmtch, driver_device, 0, ROT0, "Dynax (Fabtek license)", "Sports Match", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, janyuki, 0, janyuki, janyuki, dynax_state, 0, ROT0, "Dynax", "Jong Yu Ki (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, hnkochou, 0, hanamai, hnkochou, dynax_state, 0, ROT180, "Dynax", "Hana Kochou (Japan, Bet)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, hanamai, hnkochou, hanamai, hanamai, dynax_state, 0, ROT180, "Dynax", "Hana no Mai (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, hjingi, 0, hjingi, hjingi, dynax_state, 0, ROT180, "Dynax", "Hana Jingi (Japan, Bet)", MACHINE_SUPPORTS_SAVE ) // 1990 05/01 11:58:24 +GAME( 1990, hjingia, hjingi, hjingi, hjingi, dynax_state, 0, ROT180, "Dynax", "Hana Jingi (Japan, Bet, alt.)", MACHINE_SUPPORTS_SAVE ) // 1990 05/01 11:58:24 +GAME( 1989, hnoridur, hjingi, hnoridur, hnoridur, dynax_state, 0, ROT180, "Dynax", "Hana Oriduru (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, drgpunch, 0, sprtmtch, drgpunch, dynax_state, 0, ROT0, "Dynax", "Dragon Punch (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, sprtmtch, drgpunch, sprtmtch, sprtmtch, dynax_state, 0, ROT0, "Dynax (Fabtek license)", "Sports Match", MACHINE_SUPPORTS_SAVE ) /* these 3 are Korean hacks / bootlegs of Dragon Punch / Sports Match */ -GAME( 1994, maya, 0, sprtmtch, drgpunch, dynax_state, maya, ROT0, "Promat", "Maya (set 1)", MACHINE_SUPPORTS_SAVE ) // this set has backgrounds blacked out in attract -GAME( 1994, mayaa, maya, sprtmtch, drgpunch, dynax_state, maya, ROT0, "Promat", "Maya (set 2)", MACHINE_SUPPORTS_SAVE ) // this set has backgrounds blacked out in attract -GAME( 1994, mayab, maya, sprtmtch, drgpunch, dynax_state, maya, ROT0, "Promat", "Maya (set 3)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, mayac, maya, sprtmtch, drgpunch, dynax_state, mayac, ROT0, "Promat", "Maya (set 4, clean)", MACHINE_SUPPORTS_SAVE ) -GAME( 199?, inca, 0, sprtmtch, drgpunch, dynax_state, maya, ROT0, "", "Inca", MACHINE_SUPPORTS_SAVE ) -GAME( 199?, blktouch, 0, sprtmtch, drgpunch, dynax_state, blktouch, ROT0, "Yang Gi Co Ltd.", "Black Touch (Korea)", MACHINE_SUPPORTS_SAVE ) - -GAME( 1989, mjfriday, 0, mjfriday, mjfriday, driver_device, 0, ROT180, "Dynax", "Mahjong Friday (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, gekisha, 0, gekisha, gekisha, driver_device, 0, ROT180, "Dynax", "Mahjong Gekisha", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, mcnpshnt, 0, mcnpshnt, mcnpshnt, driver_device, 0, ROT0, "Dynax", "Mahjong Campus Hunting (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, 7jigen, 0, nanajign, nanajign, driver_device, 0, ROT180, "Dynax", "7jigen no Youseitachi - Mahjong 7 Dimensions (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1990, jantouki, 0, jantouki, jantouki, driver_device, 0, ROT0, "Dynax", "Jong Tou Ki (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, mjdialq2, 0, mjdialq2, mjdialq2, driver_device, 0, ROT180, "Dynax", "Mahjong Dial Q2 (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, mjdialq2a,mjdialq2, mjdialq2, mjdialq2, driver_device, 0, ROT180, "Dynax", "Mahjong Dial Q2 (Japan, alt.)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, yarunara, 0, yarunara, yarunara, driver_device, 0, ROT180, "Dynax", "Mahjong Yarunara (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, mjangels, 0, yarunara, yarunara, driver_device, 0, ROT180, "Dynax", "Mahjong Angels - Comic Theater Vol.2 (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, quiztvqq, 0, quiztvqq, quiztvqq, driver_device, 0, ROT180, "Dynax", "Quiz TV Gassyuukoku Q&Q (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, mjelctrn, 0, mjelctrn, mjelctrn, dynax_state, mjelct3, ROT180, "Dynax", "Mahjong Electron Base (parts 2 & 4, Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, mjembase, mjelctrn, mjembase, mjembase, dynax_state, mjelct3, ROT180, "Dynax", "Mahjong Electromagnetic Base", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, mjelct3, mjelctrn, mjelctrn, mjelct3, dynax_state, mjelct3, ROT180, "Dynax", "Mahjong Electron Base (parts 2 & 3, Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, mjelct3a, mjelctrn, mjelctrn, mjelct3, dynax_state, mjelct3a, ROT180, "Dynax", "Mahjong Electron Base (parts 2 & 3, alt., Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, mjelctrb, mjelctrn, mjelctrn, mjelct3, dynax_state, mjelct3, ROT180, "bootleg", "Mahjong Electron Base (parts 2 & 4, Japan, bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, majxtal7, 0, majxtal7, majxtal7, dynax_state, mjelct3, ROT180, "Dynax", "Mahjong X-Tal 7 - Crystal Mahjong / Mahjong Diamond 7 (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1990, neruton, 0, neruton, neruton, dynax_state, mjelct3, ROT180, "Dynax / Yukiyoshi Tokoro", "Mahjong Neruton Haikujiradan (Japan, Rev. B?)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1990, nerutona, neruton, neruton, neruton, dynax_state, mjelct3, ROT180, "Dynax / Yukiyoshi Tokoro", "Mahjong Neruton Haikujiradan (Japan, Rev. A?)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1991, hanayara, 0, yarunara, hanayara, driver_device, 0, ROT180, "Dynax", "Hana wo Yaraneba! (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, mjcomv1, 0, yarunara, yarunara, driver_device, 0, ROT180, "Dynax", "Mahjong Comic Gekijou Vol.1 (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, tenkai, 0, tenkai, tenkai, driver_device, 0, ROT0, "Dynax", "Mahjong Tenkaigen", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, tenkai2b, tenkai, tenkai, tenkai, driver_device, 0, ROT0, "bootleg", "Mahjong Tenkaigen Part 2 (bootleg)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) -GAME( 1991, tenkaibb, tenkai, tenkai, tenkai, driver_device, 0, ROT0, "bootleg", "Mahjong Tenkaigen (bootleg b)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, tenkaicb, tenkai, tenkai, tenkai, driver_device, 0, ROT0, "bootleg", "Mahjong Tenkaigen (bootleg c)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, tenkaie, tenkai, tenkai, tenkai, driver_device, 0, ROT0, "Dynax", "Mahjong Tenkaigen (set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, ougonpai, 0, tenkai, tenkai, driver_device, 0, ROT0, "Dynax", "Mahjong Ougon No Pai", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) -GAME( 1991, ougonpaib,ougonpai, tenkai, tenkai, driver_device, 0, ROT0, "bootleg", "Mahjong Ougon No Pai (bootleg)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) -GAME( 1994, mjreach, 0, tenkai, mjreach, dynax_state, mjreach, ROT0, "bootleg / Dynax", "Mahjong Reach (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, cdracula, 0, cdracula, cdracula, driver_device, 0, ROT0, "Yun Sung (Escape license)","Castle Of Dracula", MACHINE_SUPPORTS_SAVE ) // not a dynax board -GAME( 1995, shpeng, 0, sprtmtch, drgpunch, driver_device, 0, ROT0, "WSAC Systems?", "Sea Hunter Penguin", MACHINE_NO_COCKTAIL | MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE ) // not a dynax board. proms? -GAME( 1995, intrgirl, 0, sprtmtch, drgpunch, driver_device, 0, ROT0, "Barko", "Intergirl", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // not a dynax board. -GAME( 1996, majrjhdx, 0, majrjhdx, tenkai, driver_device, 0, ROT0, "Dynax", "Mahjong Raijinhai DX", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +GAME( 1994, maya, 0, sprtmtch, drgpunch, dynax_state, maya, ROT0, "Promat", "Maya (set 1)", MACHINE_SUPPORTS_SAVE ) // this set has backgrounds blacked out in attract +GAME( 1994, mayaa, maya, sprtmtch, drgpunch, dynax_state, maya, ROT0, "Promat", "Maya (set 2)", MACHINE_SUPPORTS_SAVE ) // this set has backgrounds blacked out in attract +GAME( 1994, mayab, maya, sprtmtch, drgpunch, dynax_state, maya, ROT0, "Promat", "Maya (set 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, mayac, maya, sprtmtch, drgpunch, dynax_state, mayac, ROT0, "Promat", "Maya (set 4, clean)", MACHINE_SUPPORTS_SAVE ) +GAME( 199?, inca, 0, sprtmtch, drgpunch, dynax_state, maya, ROT0, "", "Inca", MACHINE_SUPPORTS_SAVE ) +GAME( 199?, blktouch, 0, sprtmtch, drgpunch, dynax_state, blktouch, ROT0, "Yang Gi Co Ltd.", "Black Touch (Korea)", MACHINE_SUPPORTS_SAVE ) + +GAME( 1989, mjfriday, 0, mjfriday, mjfriday, dynax_state, 0, ROT180, "Dynax", "Mahjong Friday (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, gekisha, 0, gekisha, gekisha, dynax_state, 0, ROT180, "Dynax", "Mahjong Gekisha", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, mcnpshnt, 0, mcnpshnt, mcnpshnt, dynax_state, 0, ROT0, "Dynax", "Mahjong Campus Hunting (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, 7jigen, 0, nanajign, nanajign, dynax_state, 0, ROT180, "Dynax", "7jigen no Youseitachi - Mahjong 7 Dimensions (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1990, jantouki, 0, jantouki, jantouki, dynax_state, 0, ROT0, "Dynax", "Jong Tou Ki (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, mjdialq2, 0, mjdialq2, mjdialq2, dynax_state, 0, ROT180, "Dynax", "Mahjong Dial Q2 (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, mjdialq2a,mjdialq2, mjdialq2, mjdialq2, dynax_state, 0, ROT180, "Dynax", "Mahjong Dial Q2 (Japan, alt.)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, yarunara, 0, yarunara, yarunara, dynax_state, 0, ROT180, "Dynax", "Mahjong Yarunara (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, mjangels, 0, yarunara, yarunara, dynax_state, 0, ROT180, "Dynax", "Mahjong Angels - Comic Theater Vol.2 (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, quiztvqq, 0, quiztvqq, quiztvqq, dynax_state, 0, ROT180, "Dynax", "Quiz TV Gassyuukoku Q&Q (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, mjelctrn, 0, mjelctrn, mjelctrn, dynax_state, mjelct3, ROT180, "Dynax", "Mahjong Electron Base (parts 2 & 4, Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, mjembase, mjelctrn, mjembase, mjembase, dynax_state, mjelct3, ROT180, "Dynax", "Mahjong Electromagnetic Base", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, mjelct3, mjelctrn, mjelctrn, mjelct3, dynax_state, mjelct3, ROT180, "Dynax", "Mahjong Electron Base (parts 2 & 3, Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, mjelct3a, mjelctrn, mjelctrn, mjelct3, dynax_state, mjelct3a, ROT180, "Dynax", "Mahjong Electron Base (parts 2 & 3, alt., Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, mjelctrb, mjelctrn, mjelctrn, mjelct3, dynax_state, mjelct3, ROT180, "bootleg", "Mahjong Electron Base (parts 2 & 4, Japan, bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, majxtal7, 0, majxtal7, majxtal7, dynax_state, mjelct3, ROT180, "Dynax", "Mahjong X-Tal 7 - Crystal Mahjong / Mahjong Diamond 7 (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1990, neruton, 0, neruton, neruton, dynax_state, mjelct3, ROT180, "Dynax / Yukiyoshi Tokoro", "Mahjong Neruton Haikujiradan (Japan, Rev. B?)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1990, nerutona, neruton, neruton, neruton, dynax_state, mjelct3, ROT180, "Dynax / Yukiyoshi Tokoro", "Mahjong Neruton Haikujiradan (Japan, Rev. A?)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1991, hanayara, 0, yarunara, hanayara, dynax_state, 0, ROT180, "Dynax", "Hana wo Yaraneba! (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, mjcomv1, 0, yarunara, yarunara, dynax_state, 0, ROT180, "Dynax", "Mahjong Comic Gekijou Vol.1 (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, tenkai, 0, tenkai, tenkai, dynax_state, 0, ROT0, "Dynax", "Mahjong Tenkaigen", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, tenkai2b, tenkai, tenkai, tenkai, dynax_state, 0, ROT0, "bootleg", "Mahjong Tenkaigen Part 2 (bootleg)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +GAME( 1991, tenkaibb, tenkai, tenkai, tenkai, dynax_state, 0, ROT0, "bootleg", "Mahjong Tenkaigen (bootleg b)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, tenkaicb, tenkai, tenkai, tenkai, dynax_state, 0, ROT0, "bootleg", "Mahjong Tenkaigen (bootleg c)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, tenkaie, tenkai, tenkai, tenkai, dynax_state, 0, ROT0, "Dynax", "Mahjong Tenkaigen (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, ougonpai, 0, tenkai, tenkai, dynax_state, 0, ROT0, "Dynax", "Mahjong Ougon No Pai", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +GAME( 1991, ougonpaib,ougonpai, tenkai, tenkai, dynax_state, 0, ROT0, "bootleg", "Mahjong Ougon No Pai (bootleg)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +GAME( 1994, mjreach, 0, tenkai, mjreach, dynax_state, mjreach, ROT0, "bootleg / Dynax", "Mahjong Reach (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, cdracula, 0, cdracula, cdracula, dynax_state, 0, ROT0, "Yun Sung (Escape license)","Castle Of Dracula", MACHINE_SUPPORTS_SAVE ) // not a dynax board +GAME( 1995, shpeng, 0, sprtmtch, drgpunch, dynax_state, 0, ROT0, "WSAC Systems?", "Sea Hunter Penguin", MACHINE_NO_COCKTAIL | MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE ) // not a dynax board. proms? +GAME( 1995, intrgirl, 0, sprtmtch, drgpunch, dynax_state, 0, ROT0, "Barko", "Intergirl", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // not a dynax board. +GAME( 1996, majrjhdx, 0, majrjhdx, tenkai, dynax_state, 0, ROT0, "Dynax", "Mahjong Raijinhai DX", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/dynduke.cpp b/src/mame/drivers/dynduke.cpp index a96fa9ea05e..cd33836e22a 100644 --- a/src/mame/drivers/dynduke.cpp +++ b/src/mame/drivers/dynduke.cpp @@ -304,7 +304,7 @@ INTERRUPT_GEN_MEMBER(dynduke_state::interrupt) /* Machine Driver */ -static MACHINE_CONFIG_START( dynduke, dynduke_state ) +static MACHINE_CONFIG_START( dynduke ) // basic machine hardware MCFG_CPU_ADD("maincpu", V30, 16000000/2) // NEC V30-8 CPU MCFG_CPU_PROGRAM_MAP(master_map) @@ -347,7 +347,7 @@ static MACHINE_CONFIG_START( dynduke, dynduke_state ) MCFG_YM3812_IRQ_HANDLER(DEVWRITELINE("seibu_sound", seibu_sound_device, fm_irqhandler)) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MCFG_OKIM6295_ADD("oki", 1320000, OKIM6295_PIN7_LOW) + MCFG_OKIM6295_ADD("oki", 1320000, PIN7_LOW) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40) MCFG_DEVICE_ADD("seibu_sound", SEIBU_SOUND, 0) @@ -732,10 +732,10 @@ ROM_END /* Game Drivers */ -GAME( 1989, dynduke, 0, dynduke, dynduke, driver_device, 0, ROT0, "Seibu Kaihatsu", "Dynamite Duke (Europe, 03SEP89)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, dyndukea, dynduke, dynduke, dynduke, driver_device, 0, ROT0, "Seibu Kaihatsu", "Dynamite Duke (Europe, 25JUL89)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, dyndukej, dynduke, dynduke, dynduke, driver_device, 0, ROT0, "Seibu Kaihatsu", "Dynamite Duke (Japan, 03SEP89)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, dyndukeja, dynduke, dynduke, dynduke, driver_device, 0, ROT0, "Seibu Kaihatsu", "Dynamite Duke (Japan, 25JUL89)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, dyndukeu, dynduke, dynduke, dynduke, driver_device, 0, ROT0, "Seibu Kaihatsu (Fabtek license)", "Dynamite Duke (US, 25JUL89)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, dbldynj, 0, dbldyn, dynduke, driver_device, 0, ROT0, "Seibu Kaihatsu", "The Double Dynamites (Japan, 13NOV89)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, dbldynu, dbldynj, dynduke, dynduke, driver_device, 0, ROT0, "Seibu Kaihatsu (Fabtek license)", "The Double Dynamites (US, 13NOV89)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, dynduke, 0, dynduke, dynduke, dynduke_state, 0, ROT0, "Seibu Kaihatsu", "Dynamite Duke (Europe, 03SEP89)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, dyndukea, dynduke, dynduke, dynduke, dynduke_state, 0, ROT0, "Seibu Kaihatsu", "Dynamite Duke (Europe, 25JUL89)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, dyndukej, dynduke, dynduke, dynduke, dynduke_state, 0, ROT0, "Seibu Kaihatsu", "Dynamite Duke (Japan, 03SEP89)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, dyndukeja, dynduke, dynduke, dynduke, dynduke_state, 0, ROT0, "Seibu Kaihatsu", "Dynamite Duke (Japan, 25JUL89)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, dyndukeu, dynduke, dynduke, dynduke, dynduke_state, 0, ROT0, "Seibu Kaihatsu (Fabtek license)", "Dynamite Duke (US, 25JUL89)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, dbldynj, 0, dbldyn, dynduke, dynduke_state, 0, ROT0, "Seibu Kaihatsu", "The Double Dynamites (Japan, 13NOV89)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, dbldynu, dbldynj, dynduke, dynduke, dynduke_state, 0, ROT0, "Seibu Kaihatsu (Fabtek license)", "The Double Dynamites (US, 13NOV89)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/eacc.cpp b/src/mame/drivers/eacc.cpp index 877cfec73d6..0827f550ace 100644 --- a/src/mame/drivers/eacc.cpp +++ b/src/mame/drivers/eacc.cpp @@ -237,7 +237,7 @@ WRITE8_MEMBER( eacc_state::eacc_digit_w ) Machine Drivers ******************************************************************************/ -static MACHINE_CONFIG_START( eacc, eacc_state ) +static MACHINE_CONFIG_START( eacc ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6802, XTAL_3_579545MHz) /* Divided by 4 inside the m6802*/ MCFG_CPU_PROGRAM_MAP(eacc_mem) @@ -276,5 +276,5 @@ ROM_END Drivers ******************************************************************************/ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1982, eacc, 0, 0, eacc, eacc, driver_device, 0, "Electronics Australia", "EA Car Computer", MACHINE_NO_SOUND_HW) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1982, eacc, 0, 0, eacc, eacc, eacc_state, 0, "Electronics Australia", "EA Car Computer", MACHINE_NO_SOUND_HW) diff --git a/src/mame/drivers/ec184x.cpp b/src/mame/drivers/ec184x.cpp index 80752d170b2..4d5566965ed 100644 --- a/src/mame/drivers/ec184x.cpp +++ b/src/mame/drivers/ec184x.cpp @@ -208,7 +208,7 @@ ADDRESS_MAP_END // XXX verify everything -static MACHINE_CONFIG_START( ec1840, ec184x_state ) +static MACHINE_CONFIG_START( ec1840 ) MCFG_CPU_ADD("maincpu", I8088, 4096000) MCFG_CPU_PROGRAM_MAP(ec1840_map) MCFG_CPU_IO_MAP(ec1840_io) @@ -231,7 +231,7 @@ static MACHINE_CONFIG_START( ec1840, ec184x_state ) MCFG_RAM_DEFAULT_SIZE("512K") MACHINE_CONFIG_END -static MACHINE_CONFIG_START( ec1841, ec184x_state ) +static MACHINE_CONFIG_START( ec1841 ) MCFG_CPU_ADD("maincpu", I8086, 4096000) MCFG_CPU_PROGRAM_MAP(ec1841_map) MCFG_CPU_IO_MAP(ec1841_io) @@ -258,7 +258,7 @@ static MACHINE_CONFIG_START( ec1841, ec184x_state ) MACHINE_CONFIG_END // XXX verify everything -static MACHINE_CONFIG_START( ec1847, ec184x_state ) +static MACHINE_CONFIG_START( ec1847 ) MCFG_CPU_ADD("maincpu", I8088, 4772720) MCFG_CPU_PROGRAM_MAP(ec1847_map) MCFG_CPU_IO_MAP(ec1847_io) @@ -355,8 +355,8 @@ ROM_START( ec1847 ) ROM_LOAD( "317_d28_2732.bin", 0x00000, 0x1000, CRC(8939599b) SHA1(53d02460cf93596882a96758ef4bac5fa1ce55b2)) // monochrome font ROM_END -/* YEAR ROM NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ -COMP ( 1987, ec1840, ibm5150, 0, ec1840, 0, driver_device, 0, "", "EC-1840", MACHINE_NOT_WORKING) -COMP ( 1987, ec1841, ibm5150, 0, ec1841, 0, ec184x_state, ec1841, "", "EC-1841", 0) -COMP ( 1989, ec1845, ibm5150, 0, ec1841, 0, ec184x_state, ec1841, "", "EC-1845", MACHINE_NOT_WORKING) -COMP ( 1990, ec1847, ibm5150, 0, ec1847, 0, driver_device, 0, "", "EC-1847", MACHINE_NOT_WORKING) +// YEAR ROM NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP ( 1987, ec1840, ibm5150, 0, ec1840, 0, ec184x_state, 0, "", "EC-1840", MACHINE_NOT_WORKING ) +COMP ( 1987, ec1841, ibm5150, 0, ec1841, 0, ec184x_state, ec1841, "", "EC-1841", 0 ) +COMP ( 1989, ec1845, ibm5150, 0, ec1841, 0, ec184x_state, ec1841, "", "EC-1845", MACHINE_NOT_WORKING ) +COMP ( 1990, ec1847, ibm5150, 0, ec1847, 0, ec184x_state, 0, "", "EC-1847", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/ec65.cpp b/src/mame/drivers/ec65.cpp index c38efea6062..49d04fa7788 100644 --- a/src/mame/drivers/ec65.cpp +++ b/src/mame/drivers/ec65.cpp @@ -41,7 +41,7 @@ public: { } - DECLARE_WRITE8_MEMBER(kbd_put); + void kbd_put(u8 data); MC6845_UPDATE_ROW(crtc_update_row); private: @@ -90,18 +90,18 @@ ADDRESS_MAP_END static INPUT_PORTS_START( ec65 ) INPUT_PORTS_END -WRITE8_MEMBER( ec65_state::kbd_put ) +void ec65_state::kbd_put(u8 data) { if (data) { - m_via_0->write_pa0((data>>0)&1); - m_via_0->write_pa1((data>>1)&1); - m_via_0->write_pa2((data>>2)&1); - m_via_0->write_pa3((data>>3)&1); - m_via_0->write_pa4((data>>4)&1); - m_via_0->write_pa5((data>>5)&1); - m_via_0->write_pa6((data>>6)&1); - m_via_0->write_pa7((data>>7)&1); + m_via_0->write_pa0(BIT(data, 0)); + m_via_0->write_pa1(BIT(data, 1)); + m_via_0->write_pa2(BIT(data, 2)); + m_via_0->write_pa3(BIT(data, 3)); + m_via_0->write_pa4(BIT(data, 4)); + m_via_0->write_pa5(BIT(data, 5)); + m_via_0->write_pa6(BIT(data, 6)); + m_via_0->write_pa7(BIT(data, 7)); m_via_0->write_ca1(1); m_via_0->write_ca1(0); } @@ -165,7 +165,7 @@ static GFXDECODE_START( ec65 ) GFXDECODE_ENTRY( "chargen", 0x0000, ec65_charlayout, 0, 1 ) GFXDECODE_END -static MACHINE_CONFIG_START( ec65, ec65_state ) +static MACHINE_CONFIG_START( ec65 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",M6502, XTAL_4MHz / 4) @@ -200,10 +200,10 @@ static MACHINE_CONFIG_START( ec65, ec65_state ) MCFG_MOS6551_XTAL(XTAL_1_8432MHz) MCFG_DEVICE_ADD(KEYBOARD_TAG, GENERIC_KEYBOARD, 0) - MCFG_GENERIC_KEYBOARD_CB(WRITE8(ec65_state, kbd_put)) + MCFG_GENERIC_KEYBOARD_CB(PUT(ec65_state, kbd_put)) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( ec65k, ec65k_state ) +static MACHINE_CONFIG_START( ec65k ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",G65816, XTAL_4MHz) // can use 4,2 or 1 MHz @@ -243,6 +243,6 @@ ROM_START( ec65k ) ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1985, ec65, 0, 0, ec65, ec65, driver_device, 0, "Elektor Electronics", "EC-65", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -COMP( 1985, ec65k, ec65, 0, ec65k, ec65, driver_device, 0, "Elektor Electronics", "EC-65K", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +COMP( 1985, ec65, 0, 0, ec65, ec65, ec65_state, 0, "Elektor Electronics", "EC-65", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +COMP( 1985, ec65k, ec65, 0, ec65k, ec65, ec65k_state, 0, "Elektor Electronics", "EC-65K", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) diff --git a/src/mame/drivers/ecoinf1.cpp b/src/mame/drivers/ecoinf1.cpp index a4ba2c64e56..d390eba3df1 100644 --- a/src/mame/drivers/ecoinf1.cpp +++ b/src/mame/drivers/ecoinf1.cpp @@ -248,7 +248,7 @@ static INPUT_PORTS_START( ecoinf1 ) INPUT_PORTS_END -static MACHINE_CONFIG_START( ecoinf1_older, ecoinf1_state ) +static MACHINE_CONFIG_START( ecoinf1_older ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80,4000000) MCFG_CPU_PROGRAM_MAP(older_memmap) @@ -360,12 +360,12 @@ DRIVER_INIT_MEMBER(ecoinf1_state,ecoinf1) // all roms might really be for the same game, just in different cabinet styles // these ALL contain "Ver 3 BAR-X V1:84 TYPE T" strings -GAME( 19??, ec_barxo, 0 , ecoinf1_older, ecoinf1, ecoinf1_state, ecoinf1, ROT0, "Electrocoin", "Bar X (older PCB) (Electrocoin) (set 1)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 19??, ec_barxoa, ec_barxo , ecoinf1_older, ecoinf1, ecoinf1_state, ecoinf1, ROT0, "Electrocoin", "Bar X (older PCB) (Electrocoin) (set 2)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 19??, ec_barxob, ec_barxo , ecoinf1_older, ecoinf1, ecoinf1_state, ecoinf1, ROT0, "Electrocoin", "Bar X (older PCB) (Electrocoin) (set 3)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 19??, ec_barxoc, ec_barxo , ecoinf1_older, ecoinf1, ecoinf1_state, ecoinf1, ROT0, "Electrocoin", "Bar X (older PCB) (Electrocoin) (set 4)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 19??, ec_barxod, ec_barxo , ecoinf1_older, ecoinf1, ecoinf1_state, ecoinf1, ROT0, "Electrocoin", "Bar X (older PCB) (Electrocoin) (set 5)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 19??, ec_barxoe, ec_barxo , ecoinf1_older, ecoinf1, ecoinf1_state, ecoinf1, ROT0, "Electrocoin", "Bar X (older PCB) (Electrocoin) (set 6)" , MACHINE_IS_SKELETON_MECHANICAL) -GAME( 19??, ec_bar5, ec_barxo , ecoinf1_older, ecoinf1, ecoinf1_state, ecoinf1, ROT0, "Electrocoin", "Bar 5 (older PCB) (Electrocoin)" , MACHINE_IS_SKELETON_MECHANICAL) // or just another Bar X set? -GAME( 19??, ec_casbxo, ec_barxo , ecoinf1_older, ecoinf1, ecoinf1_state, ecoinf1, ROT0, "Electrocoin", "Casino Bar X (older PCB) (Electrocoin) (set 1)" , MACHINE_IS_SKELETON_MECHANICAL) // this one actually has some code offset changes -GAME( 19??, ec_casbxoa,ec_barxo , ecoinf1_older, ecoinf1, ecoinf1_state, ecoinf1, ROT0, "Electrocoin", "Casino Bar X (older PCB) (Electrocoin) (set 2)" , MACHINE_IS_SKELETON_MECHANICAL) +GAME( 19??, ec_barxo, 0 , ecoinf1_older, ecoinf1, ecoinf1_state, ecoinf1, ROT0, "Electrocoin", "Bar X (older PCB) (Electrocoin) (set 1)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 19??, ec_barxoa, ec_barxo , ecoinf1_older, ecoinf1, ecoinf1_state, ecoinf1, ROT0, "Electrocoin", "Bar X (older PCB) (Electrocoin) (set 2)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 19??, ec_barxob, ec_barxo , ecoinf1_older, ecoinf1, ecoinf1_state, ecoinf1, ROT0, "Electrocoin", "Bar X (older PCB) (Electrocoin) (set 3)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 19??, ec_barxoc, ec_barxo , ecoinf1_older, ecoinf1, ecoinf1_state, ecoinf1, ROT0, "Electrocoin", "Bar X (older PCB) (Electrocoin) (set 4)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 19??, ec_barxod, ec_barxo , ecoinf1_older, ecoinf1, ecoinf1_state, ecoinf1, ROT0, "Electrocoin", "Bar X (older PCB) (Electrocoin) (set 5)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 19??, ec_barxoe, ec_barxo , ecoinf1_older, ecoinf1, ecoinf1_state, ecoinf1, ROT0, "Electrocoin", "Bar X (older PCB) (Electrocoin) (set 6)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 19??, ec_bar5, ec_barxo , ecoinf1_older, ecoinf1, ecoinf1_state, ecoinf1, ROT0, "Electrocoin", "Bar 5 (older PCB) (Electrocoin)", MACHINE_IS_SKELETON_MECHANICAL) // or just another Bar X set? +GAME( 19??, ec_casbxo, ec_barxo , ecoinf1_older, ecoinf1, ecoinf1_state, ecoinf1, ROT0, "Electrocoin", "Casino Bar X (older PCB) (Electrocoin) (set 1)", MACHINE_IS_SKELETON_MECHANICAL) // this one actually has some code offset changes +GAME( 19??, ec_casbxoa,ec_barxo , ecoinf1_older, ecoinf1, ecoinf1_state, ecoinf1, ROT0, "Electrocoin", "Casino Bar X (older PCB) (Electrocoin) (set 2)", MACHINE_IS_SKELETON_MECHANICAL) diff --git a/src/mame/drivers/ecoinf2.cpp b/src/mame/drivers/ecoinf2.cpp index c165b87b42c..dcfcd6c3fe7 100644 --- a/src/mame/drivers/ecoinf2.cpp +++ b/src/mame/drivers/ecoinf2.cpp @@ -62,7 +62,7 @@ public: DECLARE_WRITE8_MEMBER(ox_port5c_out_w); DECLARE_DRIVER_INIT(ecoinf2); - void update_lamps(void) + void update_lamps() { for (int i=0; i<16; i++) { @@ -500,7 +500,7 @@ static INPUT_PORTS_START( ecoinf2 ) INPUT_PORTS_END -static MACHINE_CONFIG_START( ecoinf2_oxo, ecoinf2_state ) +static MACHINE_CONFIG_START( ecoinf2_oxo ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z180,4000000) // some of these hit invalid opcodes with a plain z80, some don't? MCFG_CPU_PROGRAM_MAP(oxo_memmap) @@ -790,13 +790,13 @@ DRIVER_INIT_MEMBER(ecoinf2_state,ecoinf2) } // OXO wh type (Phoenix?) (watchdog on port 5c?) -GAME( 19??, ec_oxocg, 0 , ecoinf2_oxo, ecoinf2, ecoinf2_state, ecoinf2, ROT0, "Electrocoin", "Oxo Classic Gold (Electrocoin) (?)" , MACHINE_NO_SOUND|MACHINE_REQUIRES_ARTWORK|MACHINE_NOT_WORKING|MACHINE_MECHANICAL) -GAME( 19??, ec_oxocl, 0 , ecoinf2_oxo, ecoinf2, ecoinf2_state, ecoinf2, ROT0, "Electrocoin", "Oxo Club (Electrocoin) (?)" , MACHINE_NO_SOUND|MACHINE_REQUIRES_ARTWORK|MACHINE_NOT_WORKING|MACHINE_MECHANICAL) -GAME( 19??, ec_oxogb, 0 , ecoinf2_oxo, ecoinf2, ecoinf2_state, ecoinf2, ROT0, "Electrocoin", "Oxo Golden Bars (Electrocoin) (?)" , MACHINE_NO_SOUND|MACHINE_REQUIRES_ARTWORK|MACHINE_NOT_WORKING|MACHINE_MECHANICAL) -GAME( 19??, ec_oxorl, 0 , ecoinf2_oxo, ecoinf2, ecoinf2_state, ecoinf2, ROT0, "Electrocoin", "Oxo Reels (Electrocoin) (?)" , MACHINE_NO_SOUND|MACHINE_REQUIRES_ARTWORK|MACHINE_NOT_WORKING|MACHINE_MECHANICAL) -GAME( 19??, ec_oxorv, 0 , ecoinf2_oxo, ecoinf2, ecoinf2_state, ecoinf2, ROT0, "Electrocoin", "Oxo Revolution (Electrocoin) (?)" , MACHINE_NO_SOUND|MACHINE_REQUIRES_ARTWORK|MACHINE_NOT_WORKING|MACHINE_MECHANICAL) -GAME( 19??, ec_suprl, 0 , ecoinf2_oxo, ecoinf2, ecoinf2_state, ecoinf2, ROT0, "Electrocoin", "Super Reels (Electrocoin) (?)" , MACHINE_NO_SOUND|MACHINE_REQUIRES_ARTWORK|MACHINE_NOT_WORKING|MACHINE_MECHANICAL) -GAME( 19??, ec_rcc, 0 , ecoinf2_oxo, ecoinf2, ecoinf2_state, ecoinf2, ROT0, "Electrocoin", "Royal Casino Club (Electrocoin) (?)" , MACHINE_NO_SOUND|MACHINE_REQUIRES_ARTWORK|MACHINE_NOT_WORKING|MACHINE_MECHANICAL) - -GAME( 19??, ec_sumnd, 0 , ecoinf2_oxo, ecoinf2, ecoinf2_state, ecoinf2, ROT0, "Concept Games Ltd", "Super Multi Nudger (Concept / Electrocoin Oxo) (?)" , MACHINE_NO_SOUND|MACHINE_REQUIRES_ARTWORK|MACHINE_NOT_WORKING|MACHINE_MECHANICAL) -GAME( 19??, ec_sumnc, 0 , ecoinf2_oxo, ecoinf2, ecoinf2_state, ecoinf2, ROT0, "Concept Games Ltd", "Casino Super Multi Nudger (Concept / Electrocoin Oxo) (?)" , MACHINE_NO_SOUND|MACHINE_REQUIRES_ARTWORK|MACHINE_NOT_WORKING|MACHINE_MECHANICAL) +GAME( 19??, ec_oxocg, 0 , ecoinf2_oxo, ecoinf2, ecoinf2_state, ecoinf2, ROT0, "Electrocoin", "Oxo Classic Gold (Electrocoin) (?)", MACHINE_NO_SOUND|MACHINE_REQUIRES_ARTWORK|MACHINE_NOT_WORKING|MACHINE_MECHANICAL) +GAME( 19??, ec_oxocl, 0 , ecoinf2_oxo, ecoinf2, ecoinf2_state, ecoinf2, ROT0, "Electrocoin", "Oxo Club (Electrocoin) (?)", MACHINE_NO_SOUND|MACHINE_REQUIRES_ARTWORK|MACHINE_NOT_WORKING|MACHINE_MECHANICAL) +GAME( 19??, ec_oxogb, 0 , ecoinf2_oxo, ecoinf2, ecoinf2_state, ecoinf2, ROT0, "Electrocoin", "Oxo Golden Bars (Electrocoin) (?)", MACHINE_NO_SOUND|MACHINE_REQUIRES_ARTWORK|MACHINE_NOT_WORKING|MACHINE_MECHANICAL) +GAME( 19??, ec_oxorl, 0 , ecoinf2_oxo, ecoinf2, ecoinf2_state, ecoinf2, ROT0, "Electrocoin", "Oxo Reels (Electrocoin) (?)", MACHINE_NO_SOUND|MACHINE_REQUIRES_ARTWORK|MACHINE_NOT_WORKING|MACHINE_MECHANICAL) +GAME( 19??, ec_oxorv, 0 , ecoinf2_oxo, ecoinf2, ecoinf2_state, ecoinf2, ROT0, "Electrocoin", "Oxo Revolution (Electrocoin) (?)", MACHINE_NO_SOUND|MACHINE_REQUIRES_ARTWORK|MACHINE_NOT_WORKING|MACHINE_MECHANICAL) +GAME( 19??, ec_suprl, 0 , ecoinf2_oxo, ecoinf2, ecoinf2_state, ecoinf2, ROT0, "Electrocoin", "Super Reels (Electrocoin) (?)", MACHINE_NO_SOUND|MACHINE_REQUIRES_ARTWORK|MACHINE_NOT_WORKING|MACHINE_MECHANICAL) +GAME( 19??, ec_rcc, 0 , ecoinf2_oxo, ecoinf2, ecoinf2_state, ecoinf2, ROT0, "Electrocoin", "Royal Casino Club (Electrocoin) (?)", MACHINE_NO_SOUND|MACHINE_REQUIRES_ARTWORK|MACHINE_NOT_WORKING|MACHINE_MECHANICAL) + +GAME( 19??, ec_sumnd, 0 , ecoinf2_oxo, ecoinf2, ecoinf2_state, ecoinf2, ROT0, "Concept Games Ltd", "Super Multi Nudger (Concept / Electrocoin Oxo) (?)", MACHINE_NO_SOUND|MACHINE_REQUIRES_ARTWORK|MACHINE_NOT_WORKING|MACHINE_MECHANICAL) +GAME( 19??, ec_sumnc, 0 , ecoinf2_oxo, ecoinf2, ecoinf2_state, ecoinf2, ROT0, "Concept Games Ltd", "Casino Super Multi Nudger (Concept / Electrocoin Oxo) (?)", MACHINE_NO_SOUND|MACHINE_REQUIRES_ARTWORK|MACHINE_NOT_WORKING|MACHINE_MECHANICAL) diff --git a/src/mame/drivers/ecoinf3.cpp b/src/mame/drivers/ecoinf3.cpp index 3cb5a6b844c..65de23155e8 100644 --- a/src/mame/drivers/ecoinf3.cpp +++ b/src/mame/drivers/ecoinf3.cpp @@ -660,7 +660,7 @@ static INPUT_PORTS_START( ecoinf3 ) INPUT_PORTS_END -static MACHINE_CONFIG_START( ecoinf3_pyramid, ecoinf3_state ) +static MACHINE_CONFIG_START( ecoinf3_pyramid ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z180,8000000) // certainly not a plain z80 at least, invalid opcodes for that @@ -853,15 +853,15 @@ DRIVER_INIT_MEMBER(ecoinf3_state,ecoinf3_swap) // another hw type (similar to stuff in ecoinf2.c) (watchdog on port 58?) -GAME( 19??, ec_pyram, 0 , ecoinf3_pyramid, ecoinf3, ecoinf3_state, ecoinf3_swap, ROT0, "Electrocoin", "Pyramid (v1) (Electrocoin)" , MACHINE_NO_SOUND|MACHINE_REQUIRES_ARTWORK|MACHINE_NOT_WORKING|MACHINE_MECHANICAL) -GAME( 19??, ec_pyrama, ec_pyram , ecoinf3_pyramid, ecoinf3, ecoinf3_state, ecoinf3, ROT0, "Electrocoin", "Pyramid (v6) (Electrocoin)" , MACHINE_NO_SOUND|MACHINE_REQUIRES_ARTWORK|MACHINE_NOT_WORKING|MACHINE_MECHANICAL) -GAME( 19??, ec_sphin, 0 , ecoinf3_pyramid, ecoinf3, ecoinf3_state, ecoinf3_swap, ROT0, "Electrocoin", "Sphinx (v2) (Electrocoin) (set 1)" , MACHINE_NO_SOUND|MACHINE_REQUIRES_ARTWORK|MACHINE_NOT_WORKING|MACHINE_MECHANICAL) -GAME( 19??, ec_sphina, ec_sphin , ecoinf3_pyramid, ecoinf3, ecoinf3_state, ecoinf3, ROT0, "Electrocoin", "Sphinx (v2) (Electrocoin) (set 2)" , MACHINE_NO_SOUND|MACHINE_REQUIRES_ARTWORK|MACHINE_NOT_WORKING|MACHINE_MECHANICAL) -GAME( 19??, ec_sphinb, ec_sphin , ecoinf3_pyramid, ecoinf3, ecoinf3_state, ecoinf3, ROT0, "Electrocoin", "Sphinx (v1) (Electrocoin)" , MACHINE_NO_SOUND|MACHINE_REQUIRES_ARTWORK|MACHINE_NOT_WORKING|MACHINE_MECHANICAL) -GAME( 19??, ec_penni, 0 , ecoinf3_pyramid, ecoinf3, ecoinf3_state, ecoinf3, ROT0, "Electrocoin", "Pennies From Heaven (v1) (Electrocoin)" , MACHINE_NO_SOUND|MACHINE_REQUIRES_ARTWORK|MACHINE_NOT_WORKING|MACHINE_MECHANICAL) -GAME( 19??, ec_pennia, ec_penni , ecoinf3_pyramid, ecoinf3, ecoinf3_state, ecoinf3, ROT0, "Electrocoin", "Pennies From Heaven (v6) (Electrocoin)" , MACHINE_NO_SOUND|MACHINE_REQUIRES_ARTWORK|MACHINE_NOT_WORKING|MACHINE_MECHANICAL) -GAME( 19??, ec_stair, 0 , ecoinf3_pyramid, ecoinf3, ecoinf3_state, ecoinf3, ROT0, "Electrocoin", "Stairway To Heaven (v11) (Electrocoin)" , MACHINE_NO_SOUND|MACHINE_REQUIRES_ARTWORK|MACHINE_NOT_WORKING|MACHINE_MECHANICAL) -GAME( 19??, ec_staira, ec_stair , ecoinf3_pyramid, ecoinf3, ecoinf3_state, ecoinf3, ROT0, "Electrocoin", "Stairway To Heaven (v1) (Electrocoin)" , MACHINE_NO_SOUND|MACHINE_REQUIRES_ARTWORK|MACHINE_NOT_WORKING|MACHINE_MECHANICAL) -GAME( 19??, ec_laby, 0 , ecoinf3_pyramid, ecoinf3, ecoinf3_state, ecoinf3, ROT0, "Electrocoin", "Labyrinth (v8) (Electrocoin)" , MACHINE_NO_SOUND|MACHINE_REQUIRES_ARTWORK|MACHINE_NOT_WORKING|MACHINE_MECHANICAL) -GAME( 19??, ec_labya, ec_laby , ecoinf3_pyramid, ecoinf3, ecoinf3_state, ecoinf3, ROT0, "Electrocoin", "Labyrinth (v10) (Electrocoin)" , MACHINE_NO_SOUND|MACHINE_REQUIRES_ARTWORK|MACHINE_NOT_WORKING|MACHINE_MECHANICAL) -GAME( 19??, ec_secrt, 0 , ecoinf3_pyramid, ecoinf3, ecoinf3_state, ecoinf3, ROT0, "Electrocoin", "Secret Castle (v1) (Electrocoin)" , MACHINE_NO_SOUND|MACHINE_REQUIRES_ARTWORK|MACHINE_NOT_WORKING|MACHINE_MECHANICAL) +GAME( 19??, ec_pyram, 0 , ecoinf3_pyramid, ecoinf3, ecoinf3_state, ecoinf3_swap, ROT0, "Electrocoin", "Pyramid (v1) (Electrocoin)", MACHINE_NO_SOUND|MACHINE_REQUIRES_ARTWORK|MACHINE_NOT_WORKING|MACHINE_MECHANICAL) +GAME( 19??, ec_pyrama, ec_pyram , ecoinf3_pyramid, ecoinf3, ecoinf3_state, ecoinf3, ROT0, "Electrocoin", "Pyramid (v6) (Electrocoin)", MACHINE_NO_SOUND|MACHINE_REQUIRES_ARTWORK|MACHINE_NOT_WORKING|MACHINE_MECHANICAL) +GAME( 19??, ec_sphin, 0 , ecoinf3_pyramid, ecoinf3, ecoinf3_state, ecoinf3_swap, ROT0, "Electrocoin", "Sphinx (v2) (Electrocoin) (set 1)", MACHINE_NO_SOUND|MACHINE_REQUIRES_ARTWORK|MACHINE_NOT_WORKING|MACHINE_MECHANICAL) +GAME( 19??, ec_sphina, ec_sphin , ecoinf3_pyramid, ecoinf3, ecoinf3_state, ecoinf3, ROT0, "Electrocoin", "Sphinx (v2) (Electrocoin) (set 2)", MACHINE_NO_SOUND|MACHINE_REQUIRES_ARTWORK|MACHINE_NOT_WORKING|MACHINE_MECHANICAL) +GAME( 19??, ec_sphinb, ec_sphin , ecoinf3_pyramid, ecoinf3, ecoinf3_state, ecoinf3, ROT0, "Electrocoin", "Sphinx (v1) (Electrocoin)", MACHINE_NO_SOUND|MACHINE_REQUIRES_ARTWORK|MACHINE_NOT_WORKING|MACHINE_MECHANICAL) +GAME( 19??, ec_penni, 0 , ecoinf3_pyramid, ecoinf3, ecoinf3_state, ecoinf3, ROT0, "Electrocoin", "Pennies From Heaven (v1) (Electrocoin)", MACHINE_NO_SOUND|MACHINE_REQUIRES_ARTWORK|MACHINE_NOT_WORKING|MACHINE_MECHANICAL) +GAME( 19??, ec_pennia, ec_penni , ecoinf3_pyramid, ecoinf3, ecoinf3_state, ecoinf3, ROT0, "Electrocoin", "Pennies From Heaven (v6) (Electrocoin)", MACHINE_NO_SOUND|MACHINE_REQUIRES_ARTWORK|MACHINE_NOT_WORKING|MACHINE_MECHANICAL) +GAME( 19??, ec_stair, 0 , ecoinf3_pyramid, ecoinf3, ecoinf3_state, ecoinf3, ROT0, "Electrocoin", "Stairway To Heaven (v11) (Electrocoin)", MACHINE_NO_SOUND|MACHINE_REQUIRES_ARTWORK|MACHINE_NOT_WORKING|MACHINE_MECHANICAL) +GAME( 19??, ec_staira, ec_stair , ecoinf3_pyramid, ecoinf3, ecoinf3_state, ecoinf3, ROT0, "Electrocoin", "Stairway To Heaven (v1) (Electrocoin)", MACHINE_NO_SOUND|MACHINE_REQUIRES_ARTWORK|MACHINE_NOT_WORKING|MACHINE_MECHANICAL) +GAME( 19??, ec_laby, 0 , ecoinf3_pyramid, ecoinf3, ecoinf3_state, ecoinf3, ROT0, "Electrocoin", "Labyrinth (v8) (Electrocoin)", MACHINE_NO_SOUND|MACHINE_REQUIRES_ARTWORK|MACHINE_NOT_WORKING|MACHINE_MECHANICAL) +GAME( 19??, ec_labya, ec_laby , ecoinf3_pyramid, ecoinf3, ecoinf3_state, ecoinf3, ROT0, "Electrocoin", "Labyrinth (v10) (Electrocoin)", MACHINE_NO_SOUND|MACHINE_REQUIRES_ARTWORK|MACHINE_NOT_WORKING|MACHINE_MECHANICAL) +GAME( 19??, ec_secrt, 0 , ecoinf3_pyramid, ecoinf3, ecoinf3_state, ecoinf3, ROT0, "Electrocoin", "Secret Castle (v1) (Electrocoin)", MACHINE_NO_SOUND|MACHINE_REQUIRES_ARTWORK|MACHINE_NOT_WORKING|MACHINE_MECHANICAL) diff --git a/src/mame/drivers/ecoinfr.cpp b/src/mame/drivers/ecoinfr.cpp index 20e06a39e78..a7317a3160b 100644 --- a/src/mame/drivers/ecoinfr.cpp +++ b/src/mame/drivers/ecoinfr.cpp @@ -769,7 +769,7 @@ void ecoinfr_state::machine_reset() } -static MACHINE_CONFIG_START( ecoinfr, ecoinfr_state ) +static MACHINE_CONFIG_START( ecoinfr ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80,4000000) MCFG_CPU_PROGRAM_MAP(memmap) @@ -1683,24 +1683,24 @@ DRIVER_INIT_MEMBER(ecoinfr_state,ecoinfrbr) } // 3rd party sets with MAB scrambling, game names might be incorrect, should be the same basic hardware as these tho. -GAME( 19??, ec_barxmab, ec_barx , ecoinfr, ecoinfr_barx, ecoinfr_state, ecoinfrmab, ROT0, "Electrocoin", "Bar X (MAB PCB) (Electrocoin)" , GAME_FLAGS) // scrambled roms -GAME( 19??, ec_spbg7mab,ec_big7 , ecoinfr, ecoinfr_barx, ecoinfr_state, ecoinfrmab, ROT0, "Electrocoin", "Super Big 7 (MAB PCB) (Electrocoin) (?)" , GAME_FLAGS) -GAME( 19??, ec_supbxmab,ec_sbarx , ecoinfr, ecoinfr_barx, ecoinfr_state, ecoinfrmab, ROT0, "Electrocoin", "Super Bar X (MAB PCB) (Electrocoin) (?)" , GAME_FLAGS) +GAME( 19??, ec_barxmab, ec_barx , ecoinfr, ecoinfr_barx, ecoinfr_state, ecoinfrmab, ROT0, "Electrocoin", "Bar X (MAB PCB) (Electrocoin)", GAME_FLAGS ) // scrambled roms +GAME( 19??, ec_spbg7mab,ec_big7 , ecoinfr, ecoinfr_barx, ecoinfr_state, ecoinfrmab, ROT0, "Electrocoin", "Super Big 7 (MAB PCB) (Electrocoin) (?)", GAME_FLAGS ) +GAME( 19??, ec_supbxmab,ec_sbarx , ecoinfr, ecoinfr_barx, ecoinfr_state, ecoinfrmab, ROT0, "Electrocoin", "Super Bar X (MAB PCB) (Electrocoin) (?)", GAME_FLAGS ) //Games using the MAB scrambling, but identified as being from Concept Games -GAME( 19??, ec_casbxcon,ec_casbx , ecoinfr, ecoinfr_barx, ecoinfr_state, ecoinfrmab, ROT0, "Concept Games Ltd", "Casino Bar X (Concept Games Ltd) (?)" , GAME_FLAGS) -GAME( 19??, ec_multb, 0 , ecoinfr, ecoinfr_barx, ecoinfr_state, ecoinfrmab, ROT0, "Concept Games Ltd", "Multi Bar (Concept Games Ltd) (?)" , GAME_FLAGS) -GAME( 19??, ec_supbxcon,ec_sbarx , ecoinfr, ecoinfr_barx, ecoinfr_state, ecoinfrmab, ROT0, "Concept Games Ltd", "Super Bar X (MAB PCB) (Concept Games Ltd) (?)" , GAME_FLAGS) -GAME( 19??, ec_casmb, 0 , ecoinfr, ecoinfr_barx, ecoinfr_state, ecoinfrmab, ROT0, "Concept Games Ltd", "Casino Multi Bar (Concept Games Ltd) (?)" , GAME_FLAGS) -GAME( 19??, ec_supmb, 0 , ecoinfr, ecoinfr_barx, ecoinfr_state, ecoinfrmab, ROT0, "Concept Games Ltd", "Super Multi Bar (Concept Games Ltd) (?)" , GAME_FLAGS) -GAME( 19??, ec_stkex, 0 , ecoinfr, ecoinfr_barx, ecoinfr_state, ecoinfrmab, ROT0, "Concept Games Ltd", "Stake X (Concept Games Ltd) (?)" , GAME_FLAGS) -GAME( 19??, ec_bar7, 0 , ecoinfr, ecoinfr_barx, ecoinfr_state, ecoinfrmab, ROT0, "Concept Games Ltd", "Bar 7 (Concept Games Ltd) (?)" , GAME_FLAGS) -GAME( 19??, ec_fltr, 0 , ecoinfr, ecoinfr_barx, ecoinfr_state, ecoinfrmab, ROT0, "Concept Games Ltd", "Flutter (Concept Games Ltd) (?)" , GAME_FLAGS) -GAME( 19??, ec_rdht7, 0 , ecoinfr, ecoinfr_barx, ecoinfr_state, ecoinfrmab, ROT0, "Concept Games Ltd", "Red Hot 7 (MAB PCB?) (Concept Games Ltd) (?)" , GAME_FLAGS) -GAME( 19??, ec_unkt, 0 , ecoinfr, ecoinfr_barx, ecoinfr_state, ecoinfrmab, ROT0, "Concept Games Ltd", "unknown 'T' (MAB PCB?) (Concept Games Ltd) (?)" , GAME_FLAGS) +GAME( 19??, ec_casbxcon,ec_casbx , ecoinfr, ecoinfr_barx, ecoinfr_state, ecoinfrmab, ROT0, "Concept Games Ltd", "Casino Bar X (Concept Games Ltd) (?)", GAME_FLAGS ) +GAME( 19??, ec_multb, 0 , ecoinfr, ecoinfr_barx, ecoinfr_state, ecoinfrmab, ROT0, "Concept Games Ltd", "Multi Bar (Concept Games Ltd) (?)", GAME_FLAGS ) +GAME( 19??, ec_supbxcon,ec_sbarx , ecoinfr, ecoinfr_barx, ecoinfr_state, ecoinfrmab, ROT0, "Concept Games Ltd", "Super Bar X (MAB PCB) (Concept Games Ltd) (?)", GAME_FLAGS ) +GAME( 19??, ec_casmb, 0 , ecoinfr, ecoinfr_barx, ecoinfr_state, ecoinfrmab, ROT0, "Concept Games Ltd", "Casino Multi Bar (Concept Games Ltd) (?)", GAME_FLAGS ) +GAME( 19??, ec_supmb, 0 , ecoinfr, ecoinfr_barx, ecoinfr_state, ecoinfrmab, ROT0, "Concept Games Ltd", "Super Multi Bar (Concept Games Ltd) (?)", GAME_FLAGS ) +GAME( 19??, ec_stkex, 0 , ecoinfr, ecoinfr_barx, ecoinfr_state, ecoinfrmab, ROT0, "Concept Games Ltd", "Stake X (Concept Games Ltd) (?)", GAME_FLAGS ) +GAME( 19??, ec_bar7, 0 , ecoinfr, ecoinfr_barx, ecoinfr_state, ecoinfrmab, ROT0, "Concept Games Ltd", "Bar 7 (Concept Games Ltd) (?)", GAME_FLAGS ) +GAME( 19??, ec_fltr, 0 , ecoinfr, ecoinfr_barx, ecoinfr_state, ecoinfrmab, ROT0, "Concept Games Ltd", "Flutter (Concept Games Ltd) (?)", GAME_FLAGS ) +GAME( 19??, ec_rdht7, 0 , ecoinfr, ecoinfr_barx, ecoinfr_state, ecoinfrmab, ROT0, "Concept Games Ltd", "Red Hot 7 (MAB PCB?) (Concept Games Ltd) (?)", GAME_FLAGS ) +GAME( 19??, ec_unkt, 0 , ecoinfr, ecoinfr_barx, ecoinfr_state, ecoinfrmab, ROT0, "Concept Games Ltd", "unknown 'T' (MAB PCB?) (Concept Games Ltd) (?)", GAME_FLAGS ) //These look more like some variant of Astra Gaming hardware than the MAB PCB, but I can't be sure. Certainly they don't seem to be on the base hardware -GAME( 19??, ec_gold7, 0 , ecoinfr, ecoinfr_barx, ecoinfr_state, ecoinfrmab, ROT0, "Concept Games Ltd", "Golden 7 (Concept Games Ltd) (?)" , GAME_FLAGS) -GAME( 19??, ec_mgbel, 0 , ecoinfr, ecoinfr_barx, ecoinfr_state, ecoinfrmab, ROT0, "Concept Games Ltd", "Megabell (Concept Games Ltd) (?)" , GAME_FLAGS) -GAME( 19??, ec_jackb, 0 , ecoinfr, ecoinfr_barx, ecoinfr_state, ecoinfrmab, ROT0, "Concept Games Ltd", "Jackpot Bars (MAB PCB?) (Concept Games Ltd) (?)" , GAME_FLAGS) -GAME( 19??, ec_ndgxs, 0 , ecoinfr, ecoinfr_barx, ecoinfr_state, ecoinfrmab, ROT0, "Concept Games Ltd", "Nudge Xcess (MAB PCB?) (Concept Games Ltd) (?)" , GAME_FLAGS) +GAME( 19??, ec_gold7, 0 , ecoinfr, ecoinfr_barx, ecoinfr_state, ecoinfrmab, ROT0, "Concept Games Ltd", "Golden 7 (Concept Games Ltd) (?)", GAME_FLAGS ) +GAME( 19??, ec_mgbel, 0 , ecoinfr, ecoinfr_barx, ecoinfr_state, ecoinfrmab, ROT0, "Concept Games Ltd", "Megabell (Concept Games Ltd) (?)", GAME_FLAGS ) +GAME( 19??, ec_jackb, 0 , ecoinfr, ecoinfr_barx, ecoinfr_state, ecoinfrmab, ROT0, "Concept Games Ltd", "Jackpot Bars (MAB PCB?) (Concept Games Ltd) (?)", GAME_FLAGS ) +GAME( 19??, ec_ndgxs, 0 , ecoinfr, ecoinfr_barx, ecoinfr_state, ecoinfrmab, ROT0, "Concept Games Ltd", "Nudge Xcess (MAB PCB?) (Concept Games Ltd) (?)", GAME_FLAGS ) diff --git a/src/mame/drivers/egghunt.cpp b/src/mame/drivers/egghunt.cpp index 56848cd393c..6988f9b9c95 100644 --- a/src/mame/drivers/egghunt.cpp +++ b/src/mame/drivers/egghunt.cpp @@ -417,7 +417,7 @@ void egghunt_state::machine_reset() m_vidram_bank = 0; } -static MACHINE_CONFIG_START( egghunt, egghunt_state ) +static MACHINE_CONFIG_START( egghunt ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80,12000000/2) /* 6 MHz ?*/ @@ -448,7 +448,7 @@ static MACHINE_CONFIG_START( egghunt, egghunt_state ) MCFG_GENERIC_LATCH_8_ADD("soundlatch") - MCFG_OKIM6295_ADD("oki", 1056000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki", 1056000, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -475,4 +475,4 @@ ROM_START( egghunt ) ROM_LOAD( "rom1.bin", 0x00000, 0x80000, CRC(f03589bc) SHA1(4d9c8422ac3c4c3ecba3bcf0ed47b8c7d5903f8c) ) ROM_END -GAME( 1995, egghunt, 0, egghunt, egghunt, driver_device, 0, ROT0, "Invi Image", "Egg Hunt", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, egghunt, 0, egghunt, egghunt, egghunt_state, 0, ROT0, "Invi Image", "Egg Hunt", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/einstein.cpp b/src/mame/drivers/einstein.cpp index 60f1648454c..ef45136d2cb 100644 --- a/src/mame/drivers/einstein.cpp +++ b/src/mame/drivers/einstein.cpp @@ -108,14 +108,14 @@ MC6845_UPDATE_ROW( einstein_state::crtc_update_row ) char_code = m_crtc_ram[(ma + i) & 0x07ff]; data_byte = data[(char_code << 3) + (ra & 0x07) + ((ra & 0x08) << 8)]; - bitmap.pix32(y, x + 0) = palette[TMS9928A_PALETTE_SIZE + BIT(data_byte, 7)]; - bitmap.pix32(y, x + 1) = palette[TMS9928A_PALETTE_SIZE + BIT(data_byte, 6)]; - bitmap.pix32(y, x + 2) = palette[TMS9928A_PALETTE_SIZE + BIT(data_byte, 5)]; - bitmap.pix32(y, x + 3) = palette[TMS9928A_PALETTE_SIZE + BIT(data_byte, 4)]; - bitmap.pix32(y, x + 4) = palette[TMS9928A_PALETTE_SIZE + BIT(data_byte, 3)]; - bitmap.pix32(y, x + 5) = palette[TMS9928A_PALETTE_SIZE + BIT(data_byte, 2)]; - bitmap.pix32(y, x + 6) = palette[TMS9928A_PALETTE_SIZE + BIT(data_byte, 1)]; - bitmap.pix32(y, x + 7) = palette[TMS9928A_PALETTE_SIZE + BIT(data_byte, 0)]; + bitmap.pix32(y, x + 0) = palette[tms9928a_device::PALETTE_SIZE + BIT(data_byte, 7)]; + bitmap.pix32(y, x + 1) = palette[tms9928a_device::PALETTE_SIZE + BIT(data_byte, 6)]; + bitmap.pix32(y, x + 2) = palette[tms9928a_device::PALETTE_SIZE + BIT(data_byte, 5)]; + bitmap.pix32(y, x + 3) = palette[tms9928a_device::PALETTE_SIZE + BIT(data_byte, 4)]; + bitmap.pix32(y, x + 4) = palette[tms9928a_device::PALETTE_SIZE + BIT(data_byte, 3)]; + bitmap.pix32(y, x + 5) = palette[tms9928a_device::PALETTE_SIZE + BIT(data_byte, 2)]; + bitmap.pix32(y, x + 6) = palette[tms9928a_device::PALETTE_SIZE + BIT(data_byte, 1)]; + bitmap.pix32(y, x + 7) = palette[tms9928a_device::PALETTE_SIZE + BIT(data_byte, 0)]; } } @@ -161,14 +161,14 @@ void einstein_state::einstein_scan_keyboard() { uint8_t data = 0xff; - if (!BIT(m_keyboard_line, 0)) data &= m_line0->read(); - if (!BIT(m_keyboard_line, 1)) data &= m_line1->read(); - if (!BIT(m_keyboard_line, 2)) data &= m_line2->read(); - if (!BIT(m_keyboard_line, 3)) data &= m_line3->read(); - if (!BIT(m_keyboard_line, 4)) data &= m_line4->read(); - if (!BIT(m_keyboard_line, 5)) data &= m_line5->read(); - if (!BIT(m_keyboard_line, 6)) data &= m_line6->read(); - if (!BIT(m_keyboard_line, 7)) data &= m_line7->read(); + if (!BIT(m_keyboard_line, 0)) data &= m_line[0]->read(); + if (!BIT(m_keyboard_line, 1)) data &= m_line[1]->read(); + if (!BIT(m_keyboard_line, 2)) data &= m_line[2]->read(); + if (!BIT(m_keyboard_line, 3)) data &= m_line[3]->read(); + if (!BIT(m_keyboard_line, 4)) data &= m_line[4]->read(); + if (!BIT(m_keyboard_line, 5)) data &= m_line[5]->read(); + if (!BIT(m_keyboard_line, 6)) data &= m_line[6]->read(); + if (!BIT(m_keyboard_line, 7)) data &= m_line[7]->read(); m_keyboard_data = data; } @@ -435,8 +435,8 @@ MACHINE_RESET_MEMBER(einstein_state,einstein2) einstein_state::machine_reset(); /* 80 column card palette */ - m_palette->set_pen_color(TMS9928A_PALETTE_SIZE, rgb_t::black()); - m_palette->set_pen_color(TMS9928A_PALETTE_SIZE + 1, rgb_t(0, 224, 0)); + m_palette->set_pen_color(tms9928a_device::PALETTE_SIZE, rgb_t::black()); + m_palette->set_pen_color(tms9928a_device::PALETTE_SIZE + 1, rgb_t(0, 224, 0)); } MACHINE_START_MEMBER(einstein_state,einstein2) @@ -490,7 +490,7 @@ static ADDRESS_MAP_START( einstein_io, AS_IO, 8, einstein_state ) AM_RANGE(0x10, 0x10) AM_MIRROR(0xff06) AM_DEVREADWRITE(IC_I060, i8251_device, data_r, data_w) AM_RANGE(0x11, 0x11) AM_MIRROR(0xff06) AM_DEVREADWRITE(IC_I060, i8251_device, status_r, control_w) /* block 3, wd1770 floppy controller */ - AM_RANGE(0x18, 0x1b) AM_MIRROR(0xff04) AM_DEVREADWRITE(IC_I042, wd1770_t, read, write) + AM_RANGE(0x18, 0x1b) AM_MIRROR(0xff04) AM_DEVREADWRITE(IC_I042, wd1770_device, read, write) /* block 4, internal controls */ AM_RANGE(0x20, 0x20) AM_MIRROR(0xff00) AM_READWRITE(einstein_kybintmsk_r, einstein_kybintmsk_w) AM_RANGE(0x21, 0x21) AM_MIRROR(0xff00) AM_WRITE(einstein_adcintmsk_w) @@ -685,7 +685,7 @@ static SLOT_INTERFACE_START( einstein_floppies ) SLOT_INTERFACE( "525dd", FLOPPY_525_DD ) SLOT_INTERFACE_END -static MACHINE_CONFIG_START( einstein, einstein_state ) +static MACHINE_CONFIG_START( einstein ) /* basic machine hardware */ MCFG_CPU_ADD(IC_I001, Z80, XTAL_X002 / 2) MCFG_CPU_PROGRAM_MAP(einstein_mem) @@ -776,7 +776,7 @@ static MACHINE_CONFIG_DERIVED( einstei2, einstein ) MCFG_GFXDECODE_ADD("gfxdecode", "palette", einstei2) /* 2 additional colors for the 80 column screen */ - MCFG_PALETTE_ADD("palette", TMS9928A_PALETTE_SIZE + 2) + MCFG_PALETTE_ADD("palette", tms9928a_device::PALETTE_SIZE + 2) MCFG_MC6845_ADD("crtc", MC6845, "80column", XTAL_X002 / 4) MCFG_MC6845_SHOW_BORDER_AREA(false) @@ -832,7 +832,7 @@ ROM_END GAME DRIVERS ***************************************************************************/ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1984, einstein, 0, 0, einstein, einstein, driver_device, 0, "Tatung", "Einstein TC-01", 0 ) -COMP( 1984, einstei2, einstein, 0, einstei2, einstein_80col, driver_device, 0, "Tatung", "Einstein TC-01 + 80 column device", 0 ) -COMP( 1984, einst256, 0, 0, einstein, einstein, driver_device, 0, "Tatung", "Einstein 256", MACHINE_NOT_WORKING ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1984, einstein, 0, 0, einstein, einstein, einstein_state, 0, "Tatung", "Einstein TC-01", 0 ) +COMP( 1984, einstei2, einstein, 0, einstei2, einstein_80col, einstein_state, 0, "Tatung", "Einstein TC-01 + 80 column device", 0 ) +COMP( 1984, einst256, 0, 0, einstein, einstein, einstein_state, 0, "Tatung", "Einstein 256", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/electra.cpp b/src/mame/drivers/electra.cpp index 7ef23853bec..5ee0471face 100644 --- a/src/mame/drivers/electra.cpp +++ b/src/mame/drivers/electra.cpp @@ -51,7 +51,7 @@ public: } // devices - required_device m_maincpu; + required_device m_maincpu; required_device m_video; protected: @@ -94,7 +94,7 @@ void electra_state::video_start() { } -static MACHINE_CONFIG_START( electra, electra_state ) +static MACHINE_CONFIG_START( electra ) /* basic machine hardware */ MCFG_DEVICE_ADD("maincpu", NETLIST_CPU, NETLIST_CLOCK) @@ -128,4 +128,4 @@ ROM_START( avenger ) ROM_END -GAME( 1975, avenger, 0, electra, 0, driver_device, 0, ROT0, "Electra", "Avenger [TTL]", MACHINE_IS_SKELETON ) +GAME( 1975, avenger, 0, electra, 0, electra_state, 0, ROT0, "Electra", "Avenger [TTL]", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/electron.cpp b/src/mame/drivers/electron.cpp index d2e90142081..52226514a12 100644 --- a/src/mame/drivers/electron.cpp +++ b/src/mame/drivers/electron.cpp @@ -202,7 +202,7 @@ static INPUT_PORTS_START( electron ) PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("BREAK") PORT_CODE(KEYCODE_F12) PORT_CHAR(UCHAR_MAMEKEY(F12)) PORT_CHANGED_MEMBER(DEVICE_SELF, electron_state, trigger_reset, 0) INPUT_PORTS_END -static MACHINE_CONFIG_START( electron, electron_state ) +static MACHINE_CONFIG_START( electron ) MCFG_CPU_ADD( "maincpu", M6502, XTAL_16MHz/8 ) MCFG_CPU_PROGRAM_MAP( electron_mem ) @@ -284,6 +284,6 @@ ROM_END #define rom_btm2105 rom_electron -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP ( 1983, electron, 0, 0, electron, electron, driver_device, 0, "Acorn", "Acorn Electron", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -COMP ( 1985, btm2105, electron, 0, btm2105, electron, driver_device, 0, "British Telecom Business Systems", "BT Merlin M2105", MACHINE_NOT_WORKING ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ +COMP ( 1983, electron, 0, 0, electron, electron, electron_state, 0, "Acorn", "Acorn Electron", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +COMP ( 1985, btm2105, electron, 0, btm2105, electron, electron_state, 0, "British Telecom Business Systems", "BT Merlin M2105", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/elekscmp.cpp b/src/mame/drivers/elekscmp.cpp index 9fa5088b8ae..bf5b9882a55 100644 --- a/src/mame/drivers/elekscmp.cpp +++ b/src/mame/drivers/elekscmp.cpp @@ -141,7 +141,7 @@ static INPUT_PORTS_START( elekscmp ) PORT_BIT(0xfe, IP_ACTIVE_HIGH, IPT_UNUSED) INPUT_PORTS_END -static MACHINE_CONFIG_START( elekscmp, elekscmp_state ) +static MACHINE_CONFIG_START( elekscmp ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",INS8060, XTAL_4MHz) MCFG_CPU_PROGRAM_MAP(elekscmp_mem) @@ -161,5 +161,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1977, elekscmp, 0, 0, elekscmp, elekscmp, driver_device, 0, "Elektor Electronics", "Elektor SC/MP", MACHINE_NO_SOUND_HW) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +COMP( 1977, elekscmp, 0, 0, elekscmp, elekscmp, elekscmp_state, 0, "Elektor Electronics", "Elektor SC/MP", MACHINE_NO_SOUND_HW) diff --git a/src/mame/drivers/elf.cpp b/src/mame/drivers/elf.cpp index c953f21a327..40979ef6ef1 100644 --- a/src/mame/drivers/elf.cpp +++ b/src/mame/drivers/elf.cpp @@ -230,7 +230,7 @@ QUICKLOAD_LOAD_MEMBER( elf2_state, elf ) return image_init_result::PASS; } -static MACHINE_CONFIG_START( elf2, elf2_state ) +static MACHINE_CONFIG_START( elf2 ) /* basic machine hardware */ MCFG_CPU_ADD(CDP1802_TAG, CDP1802, XTAL_3_579545MHz/2) MCFG_CPU_PROGRAM_MAP(elf2_mem) @@ -285,5 +285,5 @@ ROM_END /* System Drivers */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1978, elf2, 0, 0, elf2, elf2, driver_device, 0, "Netronics", "Elf II", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1978, elf2, 0, 0, elf2, elf2, elf2_state, 0, "Netronics", "Elf II", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND) diff --git a/src/mame/drivers/elwro800.cpp b/src/mame/drivers/elwro800.cpp index f04362745ff..57eb89e1666 100644 --- a/src/mame/drivers/elwro800.cpp +++ b/src/mame/drivers/elwro800.cpp @@ -554,7 +554,7 @@ static GFXDECODE_START( elwro800 ) GFXDECODE_END -static MACHINE_CONFIG_START( elwro800, elwro800_state ) +static MACHINE_CONFIG_START( elwro800 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80, 3500000) /* 3.5 MHz */ @@ -648,5 +648,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1986, elwro800, 0, 0, elwro800, elwro800, driver_device, 0, "Elwro", "800 Junior", 0) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1986, elwro800, 0, 0, elwro800, elwro800, elwro800_state, 0, "Elwro", "800 Junior", 0 ) diff --git a/src/mame/drivers/embargo.cpp b/src/mame/drivers/embargo.cpp index c783102994c..7252d429181 100644 --- a/src/mame/drivers/embargo.cpp +++ b/src/mame/drivers/embargo.cpp @@ -254,7 +254,7 @@ void embargo_state::machine_reset() * *************************************/ -static MACHINE_CONFIG_START( embargo, embargo_state ) +static MACHINE_CONFIG_START( embargo ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", S2650, 625000) @@ -299,4 +299,4 @@ ROM_END * *************************************/ -GAME( 1977, embargo, 0, embargo, embargo, driver_device, 0, ROT0, "Cinematronics", "Embargo", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1977, embargo, 0, embargo, embargo, embargo_state, 0, ROT0, "Cinematronics", "Embargo", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/enigma2.cpp b/src/mame/drivers/enigma2.cpp index 0e9ea57593e..7d979fed997 100644 --- a/src/mame/drivers/enigma2.cpp +++ b/src/mame/drivers/enigma2.cpp @@ -589,7 +589,7 @@ static INPUT_PORTS_START( enigma2a ) INPUT_PORTS_END -static MACHINE_CONFIG_START( enigma2, enigma2_state ) +static MACHINE_CONFIG_START( enigma2 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, CPU_CLOCK) @@ -617,7 +617,7 @@ static MACHINE_CONFIG_START( enigma2, enigma2_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( enigma2a, enigma2_state ) +static MACHINE_CONFIG_START( enigma2a ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8080, CPU_CLOCK) @@ -706,6 +706,6 @@ DRIVER_INIT_MEMBER(enigma2_state,enigma2) -GAME( 1981, enigma2, 0, enigma2, enigma2, enigma2_state, enigma2, ROT270, "Game Plan (Zilec Electronics license)", "Enigma II", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, enigma2a, enigma2, enigma2a, enigma2a, enigma2_state, enigma2, ROT270, "Zilec Electronics", "Enigma II (Space Invaders hardware)", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, enigma2b, enigma2, enigma2a, enigma2a, enigma2_state, enigma2, ROT270, "Zilec Electronics", "Phantoms II (Space Invaders hardware)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, enigma2, 0, enigma2, enigma2, enigma2_state, enigma2, ROT270, "Game Plan (Zilec Electronics license)", "Enigma II", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, enigma2a, enigma2, enigma2a, enigma2a, enigma2_state, enigma2, ROT270, "Zilec Electronics", "Enigma II (Space Invaders hardware)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, enigma2b, enigma2, enigma2a, enigma2a, enigma2_state, enigma2, ROT270, "Zilec Electronics", "Phantoms II (Space Invaders hardware)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/enmirage.cpp b/src/mame/drivers/enmirage.cpp index 01a4ca30f77..7f5d00f250b 100644 --- a/src/mame/drivers/enmirage.cpp +++ b/src/mame/drivers/enmirage.cpp @@ -54,10 +54,10 @@ #include "mirage.lh" -class mirage_state : public driver_device +class enmirage_state : public driver_device { public: - mirage_state(const machine_config &mconfig, device_type type, const char *tag) + enmirage_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), m_maincpu(*this, "maincpu"), m_fdc(*this, "wd1772"), @@ -65,29 +65,30 @@ public: { } - required_device m_maincpu; - required_device m_fdc; - required_device m_via; - - virtual void machine_reset() override; - - int last_sndram_bank; - DECLARE_FLOPPY_FORMATS( floppy_formats ); DECLARE_DRIVER_INIT(mirage); - virtual void video_start() override; uint32_t screen_update_mirage(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); DECLARE_WRITE8_MEMBER(mirage_via_write_porta); DECLARE_WRITE8_MEMBER(mirage_via_write_portb); DECLARE_WRITE_LINE_MEMBER(mirage_doc_irq); DECLARE_READ8_MEMBER(mirage_adc_read); +protected: + virtual void machine_reset() override; + virtual void video_start() override; + + required_device m_maincpu; + required_device m_fdc; + required_device m_via; + + int last_sndram_bank; + uint8_t m_l_segs, m_r_segs; int m_l_hi, m_r_hi; }; -FLOPPY_FORMATS_MEMBER( mirage_state::floppy_formats ) +FLOPPY_FORMATS_MEMBER( enmirage_state::floppy_formats ) FLOPPY_ESQ8IMG_FORMAT FLOPPY_FORMATS_END @@ -95,32 +96,32 @@ static SLOT_INTERFACE_START( ensoniq_floppies ) SLOT_INTERFACE( "35dd", FLOPPY_35_DD ) SLOT_INTERFACE_END -WRITE_LINE_MEMBER(mirage_state::mirage_doc_irq) +WRITE_LINE_MEMBER(enmirage_state::mirage_doc_irq) { // m_maincpu->set_input_line(M6809_IRQ_LINE, state); } -READ8_MEMBER(mirage_state::mirage_adc_read) +READ8_MEMBER(enmirage_state::mirage_adc_read) { return 0x00; } -void mirage_state::video_start() +void enmirage_state::video_start() { } -uint32_t mirage_state::screen_update_mirage(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) +uint32_t enmirage_state::screen_update_mirage(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { return 0; } -void mirage_state::machine_reset() +void enmirage_state::machine_reset() { last_sndram_bank = 0; membank("sndbank")->set_base(memregion("es5503")->base() ); } -static ADDRESS_MAP_START( mirage_map, AS_PROGRAM, 8, mirage_state ) +static ADDRESS_MAP_START( mirage_map, AS_PROGRAM, 8, enmirage_state ) AM_RANGE(0x0000, 0x7fff) AM_RAMBANK("sndbank") // 32k window on 128k of wave RAM AM_RANGE(0x8000, 0xbfff) AM_RAM // main RAM AM_RANGE(0xc000, 0xdfff) AM_RAM // expansion RAM @@ -128,7 +129,7 @@ static ADDRESS_MAP_START( mirage_map, AS_PROGRAM, 8, mirage_state ) AM_RANGE(0xe101, 0xe101) AM_DEVREADWRITE("acia6850", acia6850_device, data_r, data_w) AM_RANGE(0xe200, 0xe2ff) AM_DEVREADWRITE("via6522", via6522_device, read, write) AM_RANGE(0xe400, 0xe4ff) AM_NOP - AM_RANGE(0xe800, 0xe803) AM_DEVREADWRITE("wd1772", wd1772_t, read, write) + AM_RANGE(0xe800, 0xe803) AM_DEVREADWRITE("wd1772", wd1772_device, read, write) AM_RANGE(0xec00, 0xecef) AM_DEVREADWRITE("es5503", es5503_device, read, write) AM_RANGE(0xf000, 0xffff) AM_ROM AM_REGION("osrom", 0) ADDRESS_MAP_END @@ -137,7 +138,7 @@ ADDRESS_MAP_END // bits 0-2: column select from 0-7 // bits 3/4 = right and left LED enable // bits 5/6/7 keypad rows 0/1/2 return -WRITE8_MEMBER(mirage_state::mirage_via_write_porta) +WRITE8_MEMBER(enmirage_state::mirage_via_write_porta) { uint8_t seg = data & 7; static const int segconv[8] = @@ -193,7 +194,7 @@ WRITE8_MEMBER(mirage_state::mirage_via_write_porta) // bit 1: OUT upper/lower bank (64k halves) // bit 0: OUT bank 0/bank 1 (32k halves) -WRITE8_MEMBER(mirage_state::mirage_via_write_portb) +WRITE8_MEMBER(enmirage_state::mirage_via_write_portb) { int bank = 0; @@ -207,7 +208,7 @@ WRITE8_MEMBER(mirage_state::mirage_via_write_portb) } } -static MACHINE_CONFIG_START( mirage, mirage_state ) +static MACHINE_CONFIG_START( mirage ) MCFG_CPU_ADD("maincpu", M6809E, 4000000) MCFG_CPU_PROGRAM_MAP(mirage_map) @@ -216,15 +217,15 @@ static MACHINE_CONFIG_START( mirage, mirage_state ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") MCFG_ES5503_ADD("es5503", 7000000) MCFG_ES5503_OUTPUT_CHANNELS(2) - MCFG_ES5503_IRQ_FUNC(WRITELINE(mirage_state, mirage_doc_irq)) - MCFG_ES5503_ADC_FUNC(READ8(mirage_state, mirage_adc_read)) + MCFG_ES5503_IRQ_FUNC(WRITELINE(enmirage_state, mirage_doc_irq)) + MCFG_ES5503_ADC_FUNC(READ8(enmirage_state, mirage_adc_read)) MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) MCFG_DEVICE_ADD("via6522", VIA6522, 1000000) - MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(mirage_state, mirage_via_write_porta)) - MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(mirage_state, mirage_via_write_portb)) + MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(enmirage_state, mirage_via_write_porta)) + MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(enmirage_state, mirage_via_write_portb)) MCFG_VIA6522_IRQ_HANDLER(INPUTLINE("maincpu", M6809_IRQ_LINE)) MCFG_DEVICE_ADD("acia6850", ACIA6850, 0) @@ -234,7 +235,7 @@ static MACHINE_CONFIG_START( mirage, mirage_state ) MCFG_WD_FDC_INTRQ_CALLBACK(INPUTLINE("maincpu", INPUT_LINE_NMI)) MCFG_WD_FDC_DRQ_CALLBACK(INPUTLINE("maincpu", M6809_IRQ_LINE)) - MCFG_FLOPPY_DRIVE_ADD("wd1772:0", ensoniq_floppies, "35dd", mirage_state::floppy_formats) + MCFG_FLOPPY_DRIVE_ADD("wd1772:0", ensoniq_floppies, "35dd", enmirage_state::floppy_formats) MACHINE_CONFIG_END static INPUT_PORTS_START( mirage ) @@ -247,7 +248,7 @@ ROM_START( enmirage ) ROM_REGION(0x20000, "es5503", ROMREGION_ERASE) ROM_END -DRIVER_INIT_MEMBER(mirage_state,mirage) +DRIVER_INIT_MEMBER(enmirage_state,mirage) { floppy_connector *con = machine().device("wd1772:0"); floppy_image_device *floppy = con ? con->get_device() : nullptr; @@ -284,4 +285,4 @@ DRIVER_INIT_MEMBER(mirage_state,mirage) m_via->write_pb7(0); } -CONS( 1984, enmirage, 0, 0, mirage, mirage, mirage_state, mirage, "Ensoniq", "Ensoniq Mirage", MACHINE_NOT_WORKING ) +CONS( 1984, enmirage, 0, 0, mirage, mirage, enmirage_state, mirage, "Ensoniq", "Ensoniq Mirage", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/eolith.cpp b/src/mame/drivers/eolith.cpp index 7aeb33a8f28..fd2bb7e2cf2 100644 --- a/src/mame/drivers/eolith.cpp +++ b/src/mame/drivers/eolith.cpp @@ -544,7 +544,7 @@ INPUT_PORTS_END * *************************************/ -static MACHINE_CONFIG_START( eolith45, eolith_state ) +static MACHINE_CONFIG_START( eolith45 ) MCFG_CPU_ADD("maincpu", E132N, 45000000) /* 45 MHz */ MCFG_CPU_PROGRAM_MAP(eolith_map) MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", eolith_state, eolith_speedup, "screen", 0, 1) diff --git a/src/mame/drivers/eolith16.cpp b/src/mame/drivers/eolith16.cpp index d2f8d273ad0..4934516b59e 100644 --- a/src/mame/drivers/eolith16.cpp +++ b/src/mame/drivers/eolith16.cpp @@ -172,7 +172,7 @@ PALETTE_INIT_MEMBER(eolith16_state,eolith16) -static MACHINE_CONFIG_START( eolith16, eolith16_state ) +static MACHINE_CONFIG_START( eolith16 ) MCFG_CPU_ADD("maincpu", E116T, 60000000) /* no internal multiplier */ MCFG_CPU_PROGRAM_MAP(eolith16_map) MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", eolith16_state, eolith_speedup, "screen", 0, 1) @@ -195,7 +195,7 @@ static MACHINE_CONFIG_START( eolith16, eolith16_state ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_OKIM6295_ADD("oki", 1000000, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", 1000000, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) MACHINE_CONFIG_END diff --git a/src/mame/drivers/ep64.cpp b/src/mame/drivers/ep64.cpp index 9f26f2642eb..ed23248dc19 100644 --- a/src/mame/drivers/ep64.cpp +++ b/src/mame/drivers/ep64.cpp @@ -556,7 +556,7 @@ void ep64_state::machine_reset() // MACHINE_CONFIG( ep64 ) //------------------------------------------------- -static MACHINE_CONFIG_START( ep64, ep64_state ) +static MACHINE_CONFIG_START( ep64 ) // basic machine hardware MCFG_CPU_ADD(Z80_TAG, Z80, XTAL_8MHz/2) MCFG_CPU_PROGRAM_MAP(ep64_mem) @@ -653,7 +653,7 @@ ROM_END // SYSTEM DRIVERS //************************************************************************** -// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS -COMP( 1985, ep64, 0, 0, ep64, ep64, driver_device, 0, "Enterprise Computers", "Enterprise Sixty Four", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -COMP( 1985, phc64, ep64, 0, ep64, ep64, driver_device, 0, "Hegener & Glaser", "Mephisto PHC 64 (Germany)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -COMP( 1986, ep128, ep64, 0, ep128, ep64, driver_device, 0, "Enterprise Computers", "Enterprise One Two Eight", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1985, ep64, 0, 0, ep64, ep64, ep64_state, 0, "Enterprise Computers", "Enterprise Sixty Four", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +COMP( 1985, phc64, ep64, 0, ep64, ep64, ep64_state, 0, "Hegener & Glaser", "Mephisto PHC 64 (Germany)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +COMP( 1986, ep128, ep64, 0, ep128, ep64, ep64_state, 0, "Enterprise Computers", "Enterprise One Two Eight", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) diff --git a/src/mame/drivers/epos.cpp b/src/mame/drivers/epos.cpp index 66022e99f0a..4a9937e9d8e 100644 --- a/src/mame/drivers/epos.cpp +++ b/src/mame/drivers/epos.cpp @@ -436,7 +436,7 @@ MACHINE_START_MEMBER(epos_state,dealer) MACHINE_START_CALL_MEMBER(epos); } -static MACHINE_CONFIG_START( epos, epos_state ) /* EPOS TRISTAR 8000 PCB */ +static MACHINE_CONFIG_START( epos ) /* EPOS TRISTAR 8000 PCB */ /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_11MHz/4) /* 2.75 MHz schematics confirm 11MHz XTAL (see notes) */ @@ -464,7 +464,7 @@ static MACHINE_CONFIG_START( epos, epos_state ) /* EPOS TRISTAR 8000 PCB */ MACHINE_CONFIG_END -static MACHINE_CONFIG_START( dealer, epos_state ) /* EPOS TRISTAR 9000 PCB */ +static MACHINE_CONFIG_START( dealer ) /* EPOS TRISTAR 9000 PCB */ /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_22_1184MHz/8) /* 2.7648 MHz (measured) */ @@ -764,16 +764,16 @@ DRIVER_INIT_MEMBER(epos_state,dealer) *************************************/ /* EPOS TRISTAR 8000 PCB based */ -GAME( 1982, megadon, 0, epos, megadon, driver_device, 0, ROT270, "Epos Corporation (Photar Industries license)", "Megadon", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, catapult, 0, epos, catapult, driver_device, 0, ROT270, "Epos Corporation", "Catapult", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) /* bad rom, hold f2 for test mode */ -GAME( 1983, suprglob, 0, epos, suprglob, driver_device, 0, ROT270, "Epos Corporation", "Super Glob", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, theglob, suprglob, epos, suprglob, driver_device, 0, ROT270, "Epos Corporation", "The Glob", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, theglob2, suprglob, epos, suprglob, driver_device, 0, ROT270, "Epos Corporation", "The Glob (earlier)", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, theglob3, suprglob, epos, suprglob, driver_device, 0, ROT270, "Epos Corporation", "The Glob (set 3)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, igmo, 0, epos, igmo, driver_device, 0, ROT270, "Epos Corporation", "IGMO", MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE ) +GAME( 1982, megadon, 0, epos, megadon, epos_state, 0, ROT270, "Epos Corporation (Photar Industries license)", "Megadon", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, catapult, 0, epos, catapult, epos_state, 0, ROT270, "Epos Corporation", "Catapult", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) /* bad rom, hold f2 for test mode */ +GAME( 1983, suprglob, 0, epos, suprglob, epos_state, 0, ROT270, "Epos Corporation", "Super Glob", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, theglob, suprglob, epos, suprglob, epos_state, 0, ROT270, "Epos Corporation", "The Glob", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, theglob2, suprglob, epos, suprglob, epos_state, 0, ROT270, "Epos Corporation", "The Glob (earlier)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, theglob3, suprglob, epos, suprglob, epos_state, 0, ROT270, "Epos Corporation", "The Glob (set 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, igmo, 0, epos, igmo, epos_state, 0, ROT270, "Epos Corporation", "IGMO", MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE ) /* EPOS TRISTAR 9000 PCB based */ -GAME( 1984, dealer, 0, dealer, dealer, epos_state, dealer, ROT270, "Epos Corporation", "The Dealer", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, dealer, 0, dealer, dealer, epos_state, dealer, ROT270, "Epos Corporation", "The Dealer", MACHINE_SUPPORTS_SAVE ) GAME( 1984, revngr84, 0, dealer, beastf, epos_state, dealer, ROT270, "Epos Corporation", "Revenger '84 (newer)", MACHINE_SUPPORTS_SAVE ) GAME( 1984, revenger, revngr84, dealer, beastf, epos_state, dealer, ROT270, "Epos Corporation", "Revenger '84 (older)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) -GAME( 1984, beastf, suprglob, dealer, beastf, epos_state, dealer, ROT270, "Epos Corporation", "Beastie Feastie", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, beastf, suprglob, dealer, beastf, epos_state, dealer, ROT270, "Epos Corporation", "Beastie Feastie", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/eprom.cpp b/src/mame/drivers/eprom.cpp index d0e7da98a55..9e647a6e4bb 100644 --- a/src/mame/drivers/eprom.cpp +++ b/src/mame/drivers/eprom.cpp @@ -386,7 +386,7 @@ GFXDECODE_END * *************************************/ -static MACHINE_CONFIG_START( eprom, eprom_state ) +static MACHINE_CONFIG_START( eprom ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, ATARI_CLOCK_14MHz/2) @@ -434,7 +434,7 @@ static MACHINE_CONFIG_START( eprom, eprom_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( klaxp, eprom_state ) +static MACHINE_CONFIG_START( klaxp ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, ATARI_CLOCK_14MHz/2) @@ -478,7 +478,7 @@ static MACHINE_CONFIG_START( klaxp, eprom_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( guts, eprom_state ) +static MACHINE_CONFIG_START( guts ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, ATARI_CLOCK_14MHz/2) @@ -761,4 +761,4 @@ GAME( 1989, eprom, 0, eprom, eprom, eprom_state, eprom, ROT0, "Atari Games" GAME( 1989, eprom2, eprom, eprom, eprom, eprom_state, eprom, ROT0, "Atari Games", "Escape from the Planet of the Robot Monsters (set 2)", MACHINE_SUPPORTS_SAVE ) GAME( 1989, klaxp1, klax, klaxp, klaxp, eprom_state, klaxp, ROT0, "Atari Games", "Klax (prototype set 1)", MACHINE_SUPPORTS_SAVE ) GAME( 1989, klaxp2, klax, klaxp, klaxp, eprom_state, klaxp, ROT0, "Atari Games", "Klax (prototype set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, guts, 0, guts, guts, eprom_state, guts, ROT0, "Atari Games", "Guts n' Glory (prototype)", 0 ) +GAME( 1989, guts, 0, guts, guts, eprom_state, guts, ROT0, "Atari Games", "Guts n' Glory (prototype)", 0 ) diff --git a/src/mame/drivers/equites.cpp b/src/mame/drivers/equites.cpp index c3a010481ed..cf94437cccf 100644 --- a/src/mame/drivers/equites.cpp +++ b/src/mame/drivers/equites.cpp @@ -1134,7 +1134,7 @@ void equites_state::machine_reset() } -static MACHINE_CONFIG_START( equites, equites_state ) +static MACHINE_CONFIG_START( equites ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_12MHz/4) /* 68000P8 running at 3mhz! verified on pcb */ @@ -1179,7 +1179,7 @@ static MACHINE_CONFIG_DERIVED( gekisou, equites ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( splndrbt, equites_state ) +static MACHINE_CONFIG_START( splndrbt ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_24MHz/4) /* 68000P8 running at 6mhz, verified on pcb */ diff --git a/src/mame/drivers/ertictac.cpp b/src/mame/drivers/ertictac.cpp index d08cfda714d..14fba0cf5a3 100644 --- a/src/mame/drivers/ertictac.cpp +++ b/src/mame/drivers/ertictac.cpp @@ -218,7 +218,7 @@ INTERRUPT_GEN_MEMBER(ertictac_state::ertictac_podule_irq) #define NVRAM_SIZE 256 #define NVRAM_PAGE_SIZE 0 /* max size of one write request */ -static MACHINE_CONFIG_START( ertictac, ertictac_state ) +static MACHINE_CONFIG_START( ertictac ) MCFG_CPU_ADD("maincpu", ARM, XTAL_24MHz/3) /* guess, 12MHz 8MHz or 6MHz, what's the correct divider 2, 3 or 4? */ MCFG_CPU_PROGRAM_MAP(ertictac_map) @@ -346,7 +346,7 @@ ROM_START( poizone ) ROM_REGION(0x200000, "vram", ROMREGION_ERASE00) ROM_END -GAME( 1990, ertictac, 0, ertictac, ertictac, ertictac_state, ertictac, ROT0, "Sisteme", "Erotictac/Tactic" ,MACHINE_IMPERFECT_SOUND) -GAME( 1990, ertictaca, ertictac, ertictac, ertictac, ertictac_state, ertictac, ROT0, "Sisteme", "Erotictac/Tactic (ver 01)" ,MACHINE_IMPERFECT_SOUND) -GAME( 1990, ertictacb, ertictac, ertictac, ertictac, ertictac_state, ertictac, ROT0, "Sisteme", "Erotictac/Tactic (set 2)" ,MACHINE_IMPERFECT_SOUND) -GAME( 1991, poizone, 0, ertictac, poizone, ertictac_state, ertictac, ROT0, "Eterna" ,"Poizone" ,MACHINE_IMPERFECT_SOUND|MACHINE_IMPERFECT_GRAPHICS) +GAME( 1990, ertictac, 0, ertictac, ertictac, ertictac_state, ertictac, ROT0, "Sisteme", "Erotictac/Tactic", MACHINE_IMPERFECT_SOUND) +GAME( 1990, ertictaca, ertictac, ertictac, ertictac, ertictac_state, ertictac, ROT0, "Sisteme", "Erotictac/Tactic (ver 01)", MACHINE_IMPERFECT_SOUND) +GAME( 1990, ertictacb, ertictac, ertictac, ertictac, ertictac_state, ertictac, ROT0, "Sisteme", "Erotictac/Tactic (set 2)", MACHINE_IMPERFECT_SOUND) +GAME( 1991, poizone, 0, ertictac, poizone, ertictac_state, ertictac, ROT0, "Eterna", "Poizone", MACHINE_IMPERFECT_SOUND|MACHINE_IMPERFECT_GRAPHICS) diff --git a/src/mame/drivers/esd16.cpp b/src/mame/drivers/esd16.cpp index 88b3958a959..f9886edd364 100644 --- a/src/mame/drivers/esd16.cpp +++ b/src/mame/drivers/esd16.cpp @@ -605,7 +605,7 @@ DECOSPR_PRIORITY_CB_MEMBER(esd16_state::hedpanic_pri_callback) return 0; // above everything } -static MACHINE_CONFIG_START( esd16, esd16_state ) +static MACHINE_CONFIG_START( esd16 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",M68000, XTAL_16MHz) /* 16MHz */ @@ -647,7 +647,7 @@ static MACHINE_CONFIG_START( esd16, esd16_state ) MCFG_SOUND_ADD("ymsnd", YM3812, XTAL_16MHz/4) /* 4MHz */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30) - MCFG_OKIM6295_ADD("oki", XTAL_16MHz/16, OKIM6295_PIN7_HIGH) /* 1MHz */ + MCFG_OKIM6295_ADD("oki", XTAL_16MHz/16, PIN7_HIGH) /* 1MHz */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60) MACHINE_CONFIG_END @@ -667,7 +667,7 @@ static MACHINE_CONFIG_DERIVED( jumppop, esd16 ) MCFG_SOUND_REPLACE("ymsnd", YM3812, XTAL_14MHz/4) /* 3.5MHz - Verified */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30) - MCFG_OKIM6295_REPLACE("oki", XTAL_14MHz/16, OKIM6295_PIN7_HIGH) /* 875kHz - Verified */ + MCFG_OKIM6295_REPLACE("oki", XTAL_14MHz/16, PIN7_HIGH) /* 875kHz - Verified */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60) MACHINE_CONFIG_END @@ -1618,31 +1618,31 @@ ROM_END ***************************************************************************/ /* ESD 11-09-98 */ -GAME( 1999, multchmp, 0, esd16, multchmp, driver_device, 0, ROT0, "ESD", "Multi Champ (World, ver. 2.5)", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, multchmpk,multchmp, esd16, multchmp, driver_device, 0, ROT0, "ESD", "Multi Champ (Korea, older)", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, multchmpa,multchmp, esd16, multchmp, driver_device, 0, ROT0, "ESD", "Multi Champ (World, older)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, multchmp, 0, esd16, multchmp, esd16_state, 0, ROT0, "ESD", "Multi Champ (World, ver. 2.5)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, multchmpk, multchmp, esd16, multchmp, esd16_state, 0, ROT0, "ESD", "Multi Champ (Korea, older)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, multchmpa, multchmp, esd16, multchmp, esd16_state, 0, ROT0, "ESD", "Multi Champ (World, older)", MACHINE_SUPPORTS_SAVE ) -GAME( 2001, jumppop, 0, jumppop, jumppop, driver_device, 0, ROT0, "ESD", "Jumping Pop (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 2001, jumppope, jumppop, jumppop, jumppop, driver_device, 0, ROT0, "Emag Soft", "Jumping Pop (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, jumppop, 0, jumppop, jumppop, esd16_state, 0, ROT0, "ESD", "Jumping Pop (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, jumppope, jumppop, jumppop, jumppop, esd16_state, 0, ROT0, "Emag Soft", "Jumping Pop (set 2)", MACHINE_SUPPORTS_SAVE ) /* ESD 05-28-99 */ -GAME( 1999, hedpanico,hedpanic, hedpanio, hedpanic, driver_device, 0, ROT0, "ESD", "Head Panic (ver. 0615, 15/06/1999)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, hedpanico, hedpanic, hedpanio, hedpanic, esd16_state, 0, ROT0, "ESD", "Head Panic (ver. 0615, 15/06/1999)", MACHINE_SUPPORTS_SAVE ) /* ESD 06-10-1999 */ -GAME( 1999, hedpanica,hedpanic, hedpanic, hedpanic, driver_device, 0, ROT0, "ESD", "Head Panic (ver. 0702, 02/07/1999)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, hedpanica, hedpanic, hedpanic, hedpanic, esd16_state, 0, ROT0, "ESD", "Head Panic (ver. 0702, 02/07/1999)", MACHINE_SUPPORTS_SAVE ) /* ESD 08-26-1999 */ -GAME( 2000, mchampdx, 0, mchampdx, hedpanic, driver_device, 0, ROT0, "ESD", "Multi Champ Deluxe (ver. 0106, 06/01/2000)", MACHINE_SUPPORTS_SAVE ) -GAME( 1999, mchampdxa,mchampdx, mchampdx, hedpanic, driver_device, 0, ROT0, "ESD", "Multi Champ Deluxe (ver. 1126, 26/11/1999)", MACHINE_SUPPORTS_SAVE ) -GAME( 1999, mchampdxb,mchampdx, mchampdx, hedpanic, driver_device, 0, ROT0, "ESD", "Multi Champ Deluxe (ver. 1114, 14/11/1999)", MACHINE_SUPPORTS_SAVE ) -GAME( 2000, hedpanic, 0, hedpanic, hedpanic, driver_device, 0, ROT0, "ESD", "Head Panic (ver. 0117, 17/01/2000)", MACHINE_SUPPORTS_SAVE ) -GAME( 2000, hedpanicf,hedpanic, hedpanic, hedpanic, driver_device, 0, ROT0, "ESD / Fuuki", "Head Panic (ver. 0315, 15/03/2000)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, mchampdx, 0, mchampdx, hedpanic, esd16_state, 0, ROT0, "ESD", "Multi Champ Deluxe (ver. 0106, 06/01/2000)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, mchampdxa, mchampdx, mchampdx, hedpanic, esd16_state, 0, ROT0, "ESD", "Multi Champ Deluxe (ver. 1126, 26/11/1999)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, mchampdxb, mchampdx, mchampdx, hedpanic, esd16_state, 0, ROT0, "ESD", "Multi Champ Deluxe (ver. 1114, 14/11/1999)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, hedpanic, 0, hedpanic, hedpanic, esd16_state, 0, ROT0, "ESD", "Head Panic (ver. 0117, 17/01/2000)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, hedpanicf, hedpanic, hedpanic, hedpanic, esd16_state, 0, ROT0, "ESD / Fuuki", "Head Panic (ver. 0315, 15/03/2000)", MACHINE_SUPPORTS_SAVE ) /* ESD - This PCB looks identical to the ESD 08-26-1999 PCB */ -GAME( 2000, deluxe5, 0, tangtang, hedpanic, driver_device, 0, ROT0, "ESD", "Deluxe 5 (ver. 0107, 07/01/2000, set 1)", MACHINE_SUPPORTS_SAVE ) // all 4 sets report the same version number? -GAME( 2000, deluxe5a, deluxe5, tangtang, hedpanic, driver_device, 0, ROT0, "ESD", "Deluxe 5 (ver. 0107, 07/01/2000, set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 2000, deluxe5b, deluxe5, tangtang, hedpanic, driver_device, 0, ROT0, "ESD", "Deluxe 5 (ver. 0107, 07/01/2000, set 3)", MACHINE_SUPPORTS_SAVE ) -GAME( 2000, deluxe4u, deluxe5, tangtang, hedpanic, driver_device, 0, ROT0, "ESD", "Deluxe 4 U (ver. 0107, 07/01/2000)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, deluxe5, 0, tangtang, hedpanic, esd16_state, 0, ROT0, "ESD", "Deluxe 5 (ver. 0107, 07/01/2000, set 1)", MACHINE_SUPPORTS_SAVE ) // all 4 sets report the same version number? +GAME( 2000, deluxe5a, deluxe5, tangtang, hedpanic, esd16_state, 0, ROT0, "ESD", "Deluxe 5 (ver. 0107, 07/01/2000, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, deluxe5b, deluxe5, tangtang, hedpanic, esd16_state, 0, ROT0, "ESD", "Deluxe 5 (ver. 0107, 07/01/2000, set 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, deluxe4u, deluxe5, tangtang, hedpanic, esd16_state, 0, ROT0, "ESD", "Deluxe 4 U (ver. 0107, 07/01/2000)", MACHINE_SUPPORTS_SAVE ) -GAME( 2000, tangtang, 0, tangtang, hedpanic, driver_device, 0, ROT0, "ESD", "Tang Tang (ver. 0526, 26/05/2000)", MACHINE_SUPPORTS_SAVE ) -GAME( 2001, swatpolc, 0, hedpanic, swatpolc, driver_device, 0, ROT0, "ESD", "SWAT Police", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, tangtang, 0, tangtang, hedpanic, esd16_state, 0, ROT0, "ESD", "Tang Tang (ver. 0526, 26/05/2000)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, swatpolc, 0, hedpanic, swatpolc, esd16_state, 0, ROT0, "ESD", "SWAT Police", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/esh.cpp b/src/mame/drivers/esh.cpp index 7349ef53ad6..33ffff1355e 100644 --- a/src/mame/drivers/esh.cpp +++ b/src/mame/drivers/esh.cpp @@ -350,7 +350,7 @@ void esh_state::machine_start() /* DRIVER */ -static MACHINE_CONFIG_START( esh, esh_state ) +static MACHINE_CONFIG_START( esh ) /* main cpu */ MCFG_CPU_ADD("maincpu", Z80, PCB_CLOCK/6) /* The denominator is a Daphne guess based on PacMan's hardware */ MCFG_CPU_PROGRAM_MAP(z80_0_mem) @@ -465,7 +465,7 @@ DRIVER_INIT_MEMBER(esh_state,esh) { } -/* YEAR NAME PARENT MACHINE INPUT INIT MONITOR COMPANY FULLNAME FLAGS */ -GAME( 1983, esh, 0, esh, esh, esh_state, esh, ROT0, "Funai/Gakken", "Esh's Aurunmilla (set 1)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_COLORS) -GAME( 1983, esha, esh, esh, esh, esh_state, esh, ROT0, "Funai/Gakken", "Esh's Aurunmilla (set 2)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_COLORS) -GAME( 1983, eshb, esh, esh, esh, esh_state, esh, ROT0, "Funai/Gakken", "Esh's Aurunmilla (set 3)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_COLORS) +// YEAR NAME PARENT MACHINE INPUT STATE INIT MONITOR COMPANY FULLNAME FLAGS +GAME( 1983, esh, 0, esh, esh, esh_state, esh, ROT0, "Funai/Gakken", "Esh's Aurunmilla (set 1)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_COLORS) +GAME( 1983, esha, esh, esh, esh, esh_state, esh, ROT0, "Funai/Gakken", "Esh's Aurunmilla (set 2)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_COLORS) +GAME( 1983, eshb, esh, esh, esh, esh_state, esh, ROT0, "Funai/Gakken", "Esh's Aurunmilla (set 3)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_COLORS) diff --git a/src/mame/drivers/espial.cpp b/src/mame/drivers/espial.cpp index 8595c9d8b87..fa1cbb24027 100644 --- a/src/mame/drivers/espial.cpp +++ b/src/mame/drivers/espial.cpp @@ -315,7 +315,7 @@ GFXDECODE_END -static MACHINE_CONFIG_START( espial, espial_state ) +static MACHINE_CONFIG_START( espial ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 3072000) /* 3.072 MHz */ @@ -446,6 +446,6 @@ ROM_END -GAME( 1983, espial, 0, espial, espial, driver_device, 0, ROT0, "Orca / Thunderbolt", "Espial (Europe)", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, espialu, espial, espial, espial, driver_device, 0, ROT0, "Orca / Thunderbolt", "Espial (US?)", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, netwars, 0, netwars, netwars, driver_device, 0, ROT90, "Orca (Esco Trading Co license)", "Net Wars", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, espial, 0, espial, espial, espial_state, 0, ROT0, "Orca / Thunderbolt", "Espial (Europe)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, espialu, espial, espial, espial, espial_state, 0, ROT0, "Orca / Thunderbolt", "Espial (US?)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, netwars, 0, netwars, netwars, espial_state, 0, ROT90, "Orca (Esco Trading Co license)", "Net Wars", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/esq1.cpp b/src/mame/drivers/esq1.cpp index 42820375b10..773ce100727 100644 --- a/src/mame/drivers/esq1.cpp +++ b/src/mame/drivers/esq1.cpp @@ -226,11 +226,11 @@ private: void recalc_filter(filter &f); }; -static const device_type ESQ1_FILTERS = device_creator; +DEFINE_DEVICE_TYPE(ESQ1_FILTERS, esq1_filters, "esq1_filters", "ESQ1 Filters stage") esq1_filters::esq1_filters(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, ESQ1_FILTERS, "ESQ1 Filters stage", tag, owner, clock, "esq1_filters", __FILE__), - device_sound_interface(mconfig, *this) + : device_t(mconfig, ESQ1_FILTERS, tag, owner, clock) + , device_sound_interface(mconfig, *this) { } @@ -398,7 +398,7 @@ public: required_device m_maincpu; required_device m_duart; required_device m_filters; - optional_device m_fdc; + optional_device m_fdc; optional_device m_panel; optional_device m_mdout; @@ -584,7 +584,7 @@ INPUT_CHANGED_MEMBER(esq1_state::key_stroke) } } -static MACHINE_CONFIG_START( esq1, esq1_state ) +static MACHINE_CONFIG_START( esq1 ) MCFG_CPU_ADD("maincpu", M6809E, 4000000) // how fast is it? MCFG_CPU_PROGRAM_MAP(esq1_map) @@ -595,7 +595,7 @@ static MACHINE_CONFIG_START( esq1, esq1_state ) MCFG_MC68681_B_TX_CALLBACK(WRITELINE(esq1_state, duart_tx_b)) MCFG_MC68681_OUTPORT_CALLBACK(WRITE8(esq1_state, duart_output)) - MCFG_ESQPANEL2x40_ADD("panel") + MCFG_ESQPANEL2X40_ADD("panel") MCFG_ESQPANEL_TX_CALLBACK(DEVWRITELINE("duart", mc68681_device, rx_b_w)) MCFG_MIDI_PORT_ADD("mdin", midiin_slot, "midiin") @@ -696,6 +696,6 @@ ROM_START( esqm ) ROM_END -CONS( 1986, esq1, 0 , 0, esq1, esq1, driver_device, 0, "Ensoniq", "ESQ-1", MACHINE_NOT_WORKING ) -CONS( 1986, esqm, esq1, 0, esq1, esq1, driver_device, 0, "Ensoniq", "ESQ-M", MACHINE_NOT_WORKING ) -CONS( 1988, sq80, 0, 0, sq80, esq1, driver_device, 0, "Ensoniq", "SQ-80", MACHINE_NOT_WORKING ) +CONS( 1986, esq1, 0 , 0, esq1, esq1, esq1_state, 0, "Ensoniq", "ESQ-1", MACHINE_NOT_WORKING ) +CONS( 1986, esqm, esq1, 0, esq1, esq1, esq1_state, 0, "Ensoniq", "ESQ-M", MACHINE_NOT_WORKING ) +CONS( 1988, sq80, 0, 0, sq80, esq1, esq1_state, 0, "Ensoniq", "SQ-80", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/esq5505.cpp b/src/mame/drivers/esq5505.cpp index 664c23c1eb0..b0463cbcd51 100644 --- a/src/mame/drivers/esq5505.cpp +++ b/src/mame/drivers/esq5505.cpp @@ -186,8 +186,8 @@ public: required_device m_duart; required_device m_otis; required_device m_esp; - required_device m_pump; - optional_device m_fdc; + required_device m_pump; + optional_device m_fdc; required_device m_panel; optional_device m_dmac; required_device m_mdout; @@ -386,7 +386,7 @@ static ADDRESS_MAP_START( vfxsd_map, AS_PROGRAM, 16, esq5505_state ) AM_RANGE(0x200000, 0x20001f) AM_DEVREADWRITE("otis", es5505_device, read, write) AM_RANGE(0x280000, 0x28001f) AM_DEVREADWRITE8("duart", mc68681_device, read, write, 0x00ff) AM_RANGE(0x260000, 0x2601ff) AM_DEVREADWRITE8("esp", es5510_device, host_r, host_w, 0x00ff) - AM_RANGE(0x2c0000, 0x2c0007) AM_DEVREADWRITE8("wd1772", wd1772_t, read, write, 0x00ff) + AM_RANGE(0x2c0000, 0x2c0007) AM_DEVREADWRITE8("wd1772", wd1772_device, read, write, 0x00ff) AM_RANGE(0x330000, 0x3bffff) AM_RAM // sequencer memory? AM_RANGE(0xc00000, 0xc3ffff) AM_ROM AM_REGION("osrom", 0) AM_RANGE(0xff0000, 0xffffff) AM_RAM AM_SHARE("osram") @@ -397,7 +397,7 @@ static ADDRESS_MAP_START( eps_map, AS_PROGRAM, 16, esq5505_state ) AM_RANGE(0x200000, 0x20001f) AM_DEVREADWRITE("otis", es5505_device, read, write) AM_RANGE(0x240000, 0x2400ff) AM_DEVREADWRITE("mc68450", hd63450_device, read, write) AM_RANGE(0x280000, 0x28001f) AM_DEVREADWRITE8("duart", mc68681_device, read, write, 0x00ff) - AM_RANGE(0x2c0000, 0x2c0007) AM_DEVREADWRITE8("wd1772", wd1772_t, read, write, 0x00ff) + AM_RANGE(0x2c0000, 0x2c0007) AM_DEVREADWRITE8("wd1772", wd1772_device, read, write, 0x00ff) AM_RANGE(0x580000, 0x7fffff) AM_RAM // sample RAM? AM_RANGE(0xc00000, 0xc1ffff) AM_ROM AM_REGION("osrom", 0) AM_RANGE(0xff0000, 0xffffff) AM_RAM AM_SHARE("osram") @@ -604,7 +604,7 @@ INPUT_CHANGED_MEMBER(esq5505_state::key_stroke) } #endif -static MACHINE_CONFIG_START( vfx, esq5505_state ) +static MACHINE_CONFIG_START( vfx ) MCFG_CPU_ADD("maincpu", M68000, XTAL_10MHz) MCFG_CPU_PROGRAM_MAP(vfx_map) MCFG_CPU_IRQ_ACKNOWLEDGE_DRIVER(esq5505_state,maincpu_irq_acknowledge_callback) @@ -612,7 +612,7 @@ static MACHINE_CONFIG_START( vfx, esq5505_state ) MCFG_CPU_ADD("esp", ES5510, XTAL_10MHz) MCFG_DEVICE_DISABLE() - MCFG_ESQPANEL2x40_ADD("panel") + MCFG_ESQPANEL2X40_ADD("panel") MCFG_ESQPANEL_TX_CALLBACK(DEVWRITELINE("duart", mc68681_device, rx_b_w)) MCFG_ESQPANEL_ANALOG_CALLBACK(WRITE16(esq5505_state, analog_w)) @@ -654,8 +654,8 @@ static MACHINE_CONFIG_DERIVED(eps, vfx) MCFG_CPU_MODIFY( "maincpu" ) MCFG_CPU_PROGRAM_MAP(eps_map) - MCFG_ESQPANEL_2x40_REMOVE("panel") - MCFG_ESQPANEL1x22_ADD("panel") + MCFG_ESQPANEL_2X40_REMOVE("panel") + MCFG_ESQPANEL1X22_ADD("panel") MCFG_ESQPANEL_TX_CALLBACK(DEVWRITELINE("duart", mc68681_device, rx_b_w)) MCFG_ESQPANEL_ANALOG_CALLBACK(WRITE16(esq5505_state, analog_w)) @@ -681,7 +681,7 @@ static MACHINE_CONFIG_DERIVED(vfxsd, vfx) MACHINE_CONFIG_END // 32-voice machines with the VFX-SD type config -static MACHINE_CONFIG_START(vfx32, esq5505_state) +static MACHINE_CONFIG_START(vfx32) MCFG_CPU_ADD("maincpu", M68000, XTAL_30_4761MHz / 2) MCFG_CPU_PROGRAM_MAP(vfxsd_map) MCFG_CPU_IRQ_ACKNOWLEDGE_DRIVER(esq5505_state,maincpu_irq_acknowledge_callback) @@ -689,7 +689,7 @@ static MACHINE_CONFIG_START(vfx32, esq5505_state) MCFG_CPU_ADD("esp", ES5510, XTAL_10MHz) MCFG_DEVICE_DISABLE() - MCFG_ESQPANEL2x40_ADD("panel") + MCFG_ESQPANEL2X40_ADD("panel") MCFG_ESQPANEL_TX_CALLBACK(DEVWRITELINE("duart", mc68681_device, rx_b_w)) MCFG_ESQPANEL_ANALOG_CALLBACK(WRITE16(esq5505_state, analog_w)) @@ -734,8 +734,8 @@ static MACHINE_CONFIG_DERIVED(sq1, vfx) MCFG_CPU_MODIFY( "maincpu" ) MCFG_CPU_PROGRAM_MAP(sq1_map) - MCFG_ESQPANEL_2x40_REMOVE("panel") - MCFG_ESQPANEL2x16_SQ1_ADD("panel") + MCFG_ESQPANEL_2X40_REMOVE("panel") + MCFG_ESQPANEL2X16_SQ1_ADD("panel") MCFG_ESQPANEL_TX_CALLBACK(DEVWRITELINE("duart", mc68681_device, rx_b_w)) MCFG_ESQPANEL_ANALOG_CALLBACK(WRITE16(esq5505_state, analog_w)) MACHINE_CONFIG_END @@ -1013,12 +1013,12 @@ DRIVER_INIT_MEMBER(esq5505_state,denib) } } -CONS( 1988, eps, 0, 0, eps, vfx, esq5505_state, eps, "Ensoniq", "EPS", MACHINE_NOT_WORKING ) // custom VFD: one alphanumeric 22-char row, one graphics-capable row (alpha row can also do bar graphs) -CONS( 1989, vfx, 0, 0, vfx, vfx, esq5505_state, denib, "Ensoniq", "VFX", MACHINE_NOT_WORKING ) // 2x40 VFD -CONS( 1989, vfxsd, 0, 0, vfxsd, vfx, esq5505_state, denib, "Ensoniq", "VFX-SD", MACHINE_NOT_WORKING ) // 2x40 VFD -CONS( 1990, eps16p,eps, 0, eps, vfx, esq5505_state, eps, "Ensoniq", "EPS-16 Plus", MACHINE_NOT_WORKING ) // custom VFD: one alphanumeric 22-char row, one graphics-capable row (alpha row can also do bar graphs) -CONS( 1990, sd1, 0, 0, vfxsd, vfx, esq5505_state, denib, "Ensoniq", "SD-1 (21 voice)", MACHINE_NOT_WORKING ) // 2x40 VFD -CONS( 1990, sq1, 0, 0, sq1, sq1, esq5505_state, sq1, "Ensoniq", "SQ-1", MACHINE_NOT_WORKING ) // 2x16 LCD -CONS( 1990, sqrack,sq1, 0, sq1, sq1, esq5505_state, sq1, "Ensoniq", "SQ-Rack", MACHINE_NOT_WORKING ) // 2x16 LCD -CONS( 1991, sq2, 0, 0, sq1, sq1, esq5505_state, sq1, "Ensoniq", "SQ-2", MACHINE_NOT_WORKING ) // 2x16 LCD -CONS( 1991, sd132, sd1,0, vfx32, vfx, esq5505_state, denib, "Ensoniq", "SD-1 (32 voice)", MACHINE_NOT_WORKING ) // 2x40 VFD +CONS( 1988, eps, 0, 0, eps, vfx, esq5505_state, eps, "Ensoniq", "EPS", MACHINE_NOT_WORKING ) // custom VFD: one alphanumeric 22-char row, one graphics-capable row (alpha row can also do bar graphs) +CONS( 1989, vfx, 0, 0, vfx, vfx, esq5505_state, denib, "Ensoniq", "VFX", MACHINE_NOT_WORKING ) // 2x40 VFD +CONS( 1989, vfxsd, 0, 0, vfxsd, vfx, esq5505_state, denib, "Ensoniq", "VFX-SD", MACHINE_NOT_WORKING ) // 2x40 VFD +CONS( 1990, eps16p,eps, 0, eps, vfx, esq5505_state, eps, "Ensoniq", "EPS-16 Plus", MACHINE_NOT_WORKING ) // custom VFD: one alphanumeric 22-char row, one graphics-capable row (alpha row can also do bar graphs) +CONS( 1990, sd1, 0, 0, vfxsd, vfx, esq5505_state, denib, "Ensoniq", "SD-1 (21 voice)", MACHINE_NOT_WORKING ) // 2x40 VFD +CONS( 1990, sq1, 0, 0, sq1, sq1, esq5505_state, sq1, "Ensoniq", "SQ-1", MACHINE_NOT_WORKING ) // 2x16 LCD +CONS( 1990, sqrack,sq1, 0, sq1, sq1, esq5505_state, sq1, "Ensoniq", "SQ-Rack", MACHINE_NOT_WORKING ) // 2x16 LCD +CONS( 1991, sq2, 0, 0, sq1, sq1, esq5505_state, sq1, "Ensoniq", "SQ-2", MACHINE_NOT_WORKING ) // 2x16 LCD +CONS( 1991, sd132, sd1, 0, vfx32, vfx, esq5505_state, denib, "Ensoniq", "SD-1 (32 voice)", MACHINE_NOT_WORKING ) // 2x40 VFD diff --git a/src/mame/drivers/esqasr.cpp b/src/mame/drivers/esqasr.cpp index aa70e250b48..6a7f5885136 100644 --- a/src/mame/drivers/esqasr.cpp +++ b/src/mame/drivers/esqasr.cpp @@ -60,7 +60,7 @@ public: required_device m_maincpu; required_device m_esp; - required_device m_sq1vfd; + required_device m_sq1vfd; virtual void machine_reset() override; @@ -93,14 +93,14 @@ READ16_MEMBER(esqasr_state::esq5506_read_adc) return 0; } -static MACHINE_CONFIG_START( asr, esqasr_state ) +static MACHINE_CONFIG_START( asr ) MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz) // actually MC68302 MCFG_CPU_PROGRAM_MAP(asr_map) MCFG_CPU_ADD("esp", ES5510, XTAL_10MHz) MCFG_DEVICE_DISABLE() - MCFG_ESQ2x40_SQ1_ADD("sq1vfd") + MCFG_ESQ2X40_SQ1_ADD("sq1vfd") MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") MCFG_SOUND_ADD("ensoniq", ES5506, XTAL_16MHz) @@ -115,14 +115,14 @@ static MACHINE_CONFIG_START( asr, esqasr_state ) MCFG_SOUND_ROUTE(1, "rspeaker", 2.0) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( asrx, esqasr_state ) +static MACHINE_CONFIG_START( asrx ) MCFG_CPU_ADD("maincpu", M68020, XTAL_16MHz) // unknown, possibly 68340? MCFG_CPU_PROGRAM_MAP(asrx_map) MCFG_CPU_ADD("esp", ES5510, XTAL_10MHz) MCFG_DEVICE_DISABLE() - MCFG_ESQ2x40_SQ1_ADD("sq1vfd") + MCFG_ESQ2X40_SQ1_ADD("sq1vfd") MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") MCFG_SOUND_ADD("ensoniq", ES5506, XTAL_16MHz) diff --git a/src/mame/drivers/esqkt.cpp b/src/mame/drivers/esqkt.cpp index 3eb8e014c65..a3e5d5ef931 100644 --- a/src/mame/drivers/esqkt.cpp +++ b/src/mame/drivers/esqkt.cpp @@ -201,14 +201,14 @@ WRITE_LINE_MEMBER(esqkt_state::duart_tx_b) m_sq1panel->rx_w(state); } -static MACHINE_CONFIG_START( kt, esqkt_state ) +static MACHINE_CONFIG_START( kt ) MCFG_CPU_ADD("maincpu", M68EC020, XTAL_16MHz) MCFG_CPU_PROGRAM_MAP(kt_map) MCFG_CPU_ADD("esp", ES5510, XTAL_10MHz) MCFG_DEVICE_DISABLE() - MCFG_ESQPANEL2x16_SQ1_ADD("sq1panel") + MCFG_ESQPANEL2X16_SQ1_ADD("sq1panel") MCFG_ESQPANEL_TX_CALLBACK(DEVWRITELINE("duart", mc68681_device, rx_b_w)) MCFG_MC68681_ADD("duart", 4000000) diff --git a/src/mame/drivers/esqmr.cpp b/src/mame/drivers/esqmr.cpp index c0c44843a6a..0ba06ae71f4 100644 --- a/src/mame/drivers/esqmr.cpp +++ b/src/mame/drivers/esqmr.cpp @@ -217,8 +217,8 @@ public: , m_sq1vfd(*this, "sq1vfd") { } - required_device m_maincpu; - required_device m_sq1vfd; + required_device m_maincpu; + required_device m_sq1vfd; virtual void machine_reset() override; @@ -248,11 +248,11 @@ READ16_MEMBER(esqmr_state::esq5506_read_adc) return 0; } -static MACHINE_CONFIG_START( mr, esqmr_state ) +static MACHINE_CONFIG_START( mr ) MCFG_CPU_ADD("maincpu", M68340, XTAL_16MHz) MCFG_CPU_PROGRAM_MAP(mr_map) - MCFG_ESQ2x40_SQ1_ADD("sq1vfd") + MCFG_ESQ2X40_SQ1_ADD("sq1vfd") MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") MCFG_SOUND_ADD("ensoniq", ES5506, XTAL_16MHz) diff --git a/src/mame/drivers/esripsys.cpp b/src/mame/drivers/esripsys.cpp index 19f56d7371f..ee36118cef8 100644 --- a/src/mame/drivers/esripsys.cpp +++ b/src/mame/drivers/esripsys.cpp @@ -660,7 +660,7 @@ DRIVER_INIT_MEMBER(esripsys_state,esripsys) save_item(NAME(m_fbsel)); } -static MACHINE_CONFIG_START( esripsys, esripsys_state ) +static MACHINE_CONFIG_START( esripsys ) MCFG_CPU_ADD("game_cpu", M6809E, XTAL_8MHz) MCFG_CPU_PROGRAM_MAP(game_cpu_map) MCFG_CPU_VBLANK_INT_DRIVER("screen", esripsys_state, esripsys_vblank_irq) diff --git a/src/mame/drivers/et3400.cpp b/src/mame/drivers/et3400.cpp index c32df7506db..ba098e30954 100644 --- a/src/mame/drivers/et3400.cpp +++ b/src/mame/drivers/et3400.cpp @@ -177,7 +177,7 @@ static DEVICE_INPUT_DEFAULTS_START( terminal ) DEVICE_INPUT_DEFAULTS( "RS232_STOPBITS", 0xff, RS232_STOPBITS_2 ) DEVICE_INPUT_DEFAULTS_END -static MACHINE_CONFIG_START( et3400, et3400_state ) +static MACHINE_CONFIG_START( et3400 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6800, XTAL_4MHz / 4 ) // 1MHz with memory i/o accessory, or 500khz without it MCFG_CPU_PROGRAM_MAP(et3400_mem) @@ -213,4 +213,4 @@ ROM_END /* Driver */ /* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1976, et3400, 0, 0, et3400, et3400, driver_device, 0, "Heath Inc", "Heathkit ET-3400", 0 ) +COMP( 1976, et3400, 0, 0, et3400, et3400, et3400_state, 0, "Heath Inc", "Heathkit ET-3400", 0 ) diff --git a/src/mame/drivers/eti660.cpp b/src/mame/drivers/eti660.cpp index dad8f38b48c..62b13eed4be 100644 --- a/src/mame/drivers/eti660.cpp +++ b/src/mame/drivers/eti660.cpp @@ -255,8 +255,8 @@ void eti660_state::machine_reset() m_resetcnt = 0; m_color_on = 0; // fix for F3 soft reboot - m_maincpu->set_state_int(COSMAC_R0, 0); // set R0 to start of rom - m_maincpu->set_state_int(COSMAC_P, 0); // set R0 as the PC register + m_maincpu->set_state_int(cosmac_device::COSMAC_R0, 0); // set R0 to start of rom + m_maincpu->set_state_int(cosmac_device::COSMAC_P, 0); // set R0 as the PC register } void eti660_state::machine_start() @@ -302,7 +302,7 @@ QUICKLOAD_LOAD_MEMBER( eti660_state, eti660 ) /* Machine Drivers */ -static MACHINE_CONFIG_START( eti660, eti660_state ) +static MACHINE_CONFIG_START( eti660 ) /* basic machine hardware */ MCFG_CPU_ADD(CDP1802_TAG, CDP1802, XTAL_8_867238MHz/5) MCFG_CPU_PROGRAM_MAP(eti660_map) @@ -349,5 +349,5 @@ ROM_START( eti660 ) ROM_LOAD( "eti660.bin", 0x0000, 0x0400, CRC(811dfa62) SHA1(c0c4951e02f873f15560bdc3f35cdf3f99653922) ) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1981, eti660, 0, 0, eti660, eti660, driver_device, 0, "Electronics Today International", "ETI-660", 0 ) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 1981, eti660, 0, 0, eti660, eti660, eti660_state, 0, "Electronics Today International", "ETI-660", 0 ) diff --git a/src/mame/drivers/ettrivia.cpp b/src/mame/drivers/ettrivia.cpp index eacb5c5f4c3..82d7aea7a61 100644 --- a/src/mame/drivers/ettrivia.cpp +++ b/src/mame/drivers/ettrivia.cpp @@ -39,11 +39,13 @@ class ettrivia_state : public driver_device { public: ettrivia_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag), - m_fg_videoram(*this, "fg_videoram"), - m_bg_videoram(*this, "bg_videoram"), - m_maincpu(*this, "maincpu"), - m_gfxdecode(*this, "gfxdecode") { } + : driver_device(mconfig, type, tag) + , m_fg_videoram(*this, "fg_videoram") + , m_bg_videoram(*this, "bg_videoram") + , m_maincpu(*this, "maincpu") + , m_gfxdecode(*this, "gfxdecode") + { + } int m_palreg; int m_gfx_bank; @@ -285,7 +287,7 @@ INTERRUPT_GEN_MEMBER(ettrivia_state::ettrivia_interrupt) device.execute().set_input_line(0, HOLD_LINE); } -static MACHINE_CONFIG_START( ettrivia, ettrivia_state ) +static MACHINE_CONFIG_START( ettrivia ) MCFG_CPU_ADD("maincpu", Z80,12000000/4-48000) //should be ok, it gives the 300 interrupts expected MCFG_CPU_PROGRAM_MAP(cpu_map) MCFG_CPU_IO_MAP(io_map) @@ -464,8 +466,8 @@ ROM_START( strvmstr ) ROM_LOAD( "entrtn.hi3", 0x38000, 0x8000, CRC(a8cf603b) SHA1(6efa5753d8d252452b3f5be8635a28364e4d8de1) ) ROM_END -GAME( 1985, promutrv, 0, ettrivia, ettrivia, driver_device, 0, ROT270, "Enerdyne Technologies Inc.", "Progressive Music Trivia (Question set 1)", 0 ) -GAME( 1985, promutrva,promutrv, ettrivia, ettrivia, driver_device, 0, ROT270, "Enerdyne Technologies Inc.", "Progressive Music Trivia (Question set 2)", 0 ) -GAME( 1985, promutrvb,promutrv, ettrivia, ettrivia, driver_device, 0, ROT270, "Enerdyne Technologies Inc.", "Progressive Music Trivia (Question set 3)", 0 ) -GAME( 1985, promutrvc,promutrv, ettrivia, ettrivia, driver_device, 0, ROT270, "Enerdyne Technologies Inc.", "Progressive Music Trivia (Question set 4)", 0 ) -GAME( 1986, strvmstr, 0, ettrivia, ettrivia, driver_device, 0, ROT270, "Enerdyne Technologies Inc.", "Super Trivia Master", MACHINE_WRONG_COLORS ) +GAME( 1985, promutrv, 0, ettrivia, ettrivia, ettrivia_state, 0, ROT270, "Enerdyne Technologies Inc.", "Progressive Music Trivia (Question set 1)", 0 ) +GAME( 1985, promutrva, promutrv, ettrivia, ettrivia, ettrivia_state, 0, ROT270, "Enerdyne Technologies Inc.", "Progressive Music Trivia (Question set 2)", 0 ) +GAME( 1985, promutrvb, promutrv, ettrivia, ettrivia, ettrivia_state, 0, ROT270, "Enerdyne Technologies Inc.", "Progressive Music Trivia (Question set 3)", 0 ) +GAME( 1985, promutrvc, promutrv, ettrivia, ettrivia, ettrivia_state, 0, ROT270, "Enerdyne Technologies Inc.", "Progressive Music Trivia (Question set 4)", 0 ) +GAME( 1986, strvmstr, 0, ettrivia, ettrivia, ettrivia_state, 0, ROT270, "Enerdyne Technologies Inc.", "Super Trivia Master", MACHINE_WRONG_COLORS ) diff --git a/src/mame/drivers/eurocom2.cpp b/src/mame/drivers/eurocom2.cpp index 9e1afe9db8c..d7051c55b08 100644 --- a/src/mame/drivers/eurocom2.cpp +++ b/src/mame/drivers/eurocom2.cpp @@ -73,12 +73,8 @@ public: , m_fdc(*this, "fdc") , m_p_videoram(*this, "videoram") , m_screen(*this, "screen") - { } - - // driver_device overrides - virtual void machine_reset() override; - virtual void machine_start() override; - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + { + } uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); @@ -89,9 +85,7 @@ public: DECLARE_WRITE8_MEMBER(vico_w); DECLARE_READ8_MEMBER(kbd_get); - DECLARE_WRITE8_MEMBER(kbd_put); - - emu_timer *m_sst; + void kbd_put(u8 data); DECLARE_READ_LINE_MEMBER(pia1_ca1_r); DECLARE_READ_LINE_MEMBER(pia1_ca2_r); @@ -99,6 +93,13 @@ public: DECLARE_WRITE_LINE_MEMBER(pia1_cb2_w); protected: + // driver_device overrides + virtual void machine_reset() override; + virtual void machine_start() override; + virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + + emu_timer *m_sst; + floppy_image_device *m_floppy; bool m_sst_state, m_kbd_ready; bitmap_ind16 m_tmpbmp; @@ -110,7 +111,7 @@ protected: required_device m_pia1; required_device m_pia2; required_device m_acia; - required_device m_fdc; + required_device m_fdc; required_shared_ptr m_p_videoram; required_device m_screen; }; @@ -251,7 +252,7 @@ READ8_MEMBER(eurocom2_state::kbd_get) return m_kbd_data; } -WRITE8_MEMBER(eurocom2_state::kbd_put) +void eurocom2_state::kbd_put(u8 data) { m_kbd_ready = true; m_kbd_data = data; @@ -333,7 +334,7 @@ static ADDRESS_MAP_START(eurocom2_map, AS_PROGRAM, 8, eurocom2_state) AM_RANGE(0xfcf5, 0xfcf5) AM_DEVREADWRITE("acia", acia6850_device, data_r, data_w) AM_RANGE(0xfcf6, 0xfcf7) AM_WRITE(vico_w) AM_RANGE(0xfcf8, 0xfcfb) AM_DEVREADWRITE("pia2", pia6821_device, read, write) - AM_RANGE(0xfd30, 0xfd37) AM_DEVREADWRITE("fdc", fd1793_t, read, write) + AM_RANGE(0xfd30, 0xfd37) AM_DEVREADWRITE("fdc", fd1793_device, read, write) AM_RANGE(0xfd38, 0xfd38) AM_READWRITE(fdc_aux_r, fdc_aux_w) AM_RANGE(0xfd40, 0xffff) AM_ROM AM_REGION("maincpu", 0xd40) AM_WRITENOP ADDRESS_MAP_END @@ -426,7 +427,7 @@ static SLOT_INTERFACE_START( eurocom_floppies ) SLOT_INTERFACE( "8dsdd", FLOPPY_8_DSDD ) SLOT_INTERFACE_END -static MACHINE_CONFIG_START( eurocom2, eurocom2_state ) +static MACHINE_CONFIG_START( eurocom2 ) MCFG_CPU_ADD("maincpu", M6809, XTAL_5_3586MHz/4) MCFG_CPU_PROGRAM_MAP(eurocom2_map) @@ -438,7 +439,7 @@ static MACHINE_CONFIG_START( eurocom2, eurocom2_state ) MCFG_PALETTE_ADD_MONOCHROME("palette") MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0) - MCFG_GENERIC_KEYBOARD_CB(WRITE8(eurocom2_state, kbd_put)) + MCFG_GENERIC_KEYBOARD_CB(PUT(eurocom2_state, kbd_put)) MCFG_DEVICE_ADD("pia1", PIA6821, 0) MCFG_PIA_READCA1_HANDLER(READLINE(eurocom2_state, pia1_ca1_r)) // keyboard strobe @@ -469,7 +470,7 @@ static MACHINE_CONFIG_START( eurocom2, eurocom2_state ) // MCFG_FLOPPY_DRIVE_SOUND(true) MACHINE_CONFIG_END -static MACHINE_CONFIG_DERIVED_CLASS(waveterm, eurocom2, waveterm_state) +static MACHINE_CONFIG_DERIVED(waveterm, eurocom2) MCFG_CPU_MODIFY("maincpu") MCFG_CPU_PROGRAM_MAP(waveterm_map) @@ -517,6 +518,6 @@ ROM_START(waveterm) ROM_END -// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS -COMP( 1981, eurocom2, 0, 0, eurocom2, eurocom2, driver_device, 0, "Eltec", "Eurocom II V7", MACHINE_IS_SKELETON) -COMP( 1982, waveterm, eurocom2, 0, waveterm, waveterm, driver_device, 0, "PPG", "Waveterm A", MACHINE_IS_SKELETON) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 1981, eurocom2, 0, 0, eurocom2, eurocom2, eurocom2_state, 0, "Eltec", "Eurocom II V7", MACHINE_IS_SKELETON ) +COMP( 1982, waveterm, eurocom2, 0, waveterm, waveterm, waveterm_state, 0, "PPG", "Waveterm A", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/europc.cpp b/src/mame/drivers/europc.cpp index ab9b0273690..5c84ecef038 100644 --- a/src/mame/drivers/europc.cpp +++ b/src/mame/drivers/europc.cpp @@ -1,11 +1,16 @@ // license:BSD-3-Clause // copyright-holders:Wilbert Pol #include "emu.h" -#include "coreutil.h" + +#include "cpu/i86/i86.h" +#include "bus/isa/aga.h" #include "machine/genpc.h" #include "machine/nvram.h" #include "machine/pckeybrd.h" +#include "coreutil.h" + + class europc_pc_state : public driver_device { public: @@ -471,7 +476,7 @@ static ADDRESS_MAP_START(europc_io, AS_IO, 8, europc_pc_state ) AM_RANGE(0x02e0, 0x02e0) AM_READ(europc_jim2_r) ADDRESS_MAP_END -static MACHINE_CONFIG_START( europc, europc_pc_state ) +static MACHINE_CONFIG_START( europc ) MCFG_CPU_ADD("maincpu", I8088, 4772720*2) MCFG_CPU_PROGRAM_MAP(europc_map) MCFG_CPU_IO_MAP(europc_io) diff --git a/src/mame/drivers/evmbug.cpp b/src/mame/drivers/evmbug.cpp index 3017b19ebe9..92949083e06 100644 --- a/src/mame/drivers/evmbug.cpp +++ b/src/mame/drivers/evmbug.cpp @@ -29,7 +29,9 @@ public: DECLARE_READ8_MEMBER(rs232_r); DECLARE_WRITE8_MEMBER(rs232_w); - DECLARE_WRITE8_MEMBER(kbd_put); + void kbd_put(u8 data); + +protected: virtual void machine_reset() override; uint8_t m_term_data; uint8_t m_term_out; @@ -80,7 +82,7 @@ WRITE8_MEMBER( evmbug_state::rs232_w ) m_terminal->write(space, 0, m_term_out & 0x7f); } -WRITE8_MEMBER( evmbug_state::kbd_put ) +void evmbug_state::kbd_put(u8 data) { m_term_data = data; } @@ -92,7 +94,7 @@ void evmbug_state::machine_reset() static_cast(machine().device("maincpu"))->ready_line(ASSERT_LINE); } -static MACHINE_CONFIG_START( evmbug, evmbug_state ) +static MACHINE_CONFIG_START( evmbug ) // basic machine hardware // TMS9995 CPU @ 12.0 MHz // We have no lines connected yet @@ -100,7 +102,7 @@ static MACHINE_CONFIG_START( evmbug, evmbug_state ) /* video hardware */ MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0) - MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(evmbug_state, kbd_put)) + MCFG_GENERIC_TERMINAL_KEYBOARD_CB(PUT(evmbug_state, kbd_put)) MACHINE_CONFIG_END /* ROM definition */ @@ -113,5 +115,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 19??, evmbug, 0, 0, evmbug, evmbug, driver_device, 0, "Texas Instruments", "TMAM6095", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 19??, evmbug, 0, 0, evmbug, evmbug, evmbug_state, 0, "Texas Instruments", "TMAM6095", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/excali64.cpp b/src/mame/drivers/excali64.cpp index ae830119a7e..d43f098351e 100644 --- a/src/mame/drivers/excali64.cpp +++ b/src/mame/drivers/excali64.cpp @@ -112,7 +112,7 @@ private: required_device m_dma; required_device m_u12; required_device m_centronics; - required_device m_fdc; + required_device m_fdc; required_device m_floppy0; required_device m_floppy1; }; @@ -140,7 +140,7 @@ static ADDRESS_MAP_START(excali64_io, AS_IO, 8, excali64_state) AM_RANGE(0xe4, 0xe7) AM_WRITE(porte4_w) AM_RANGE(0xe8, 0xeb) AM_READ(porte8_r) AM_RANGE(0xec, 0xef) AM_WRITE(portec_w) - AM_RANGE(0xf0, 0xf3) AM_DEVREADWRITE("fdc", wd2793_t, read, write) + AM_RANGE(0xf0, 0xf3) AM_DEVREADWRITE("fdc", wd2793_device, read, write) ADDRESS_MAP_END @@ -544,7 +544,7 @@ MC6845_UPDATE_ROW( excali64_state::update_row ) } } -static MACHINE_CONFIG_START( excali64, excali64_state ) +static MACHINE_CONFIG_START( excali64 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_16MHz / 4) MCFG_CPU_PROGRAM_MAP(excali64_mem) @@ -647,5 +647,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1984, excali64, 0, 0, excali64, excali64, driver_device, 0, "BGR Computers", "Excalibur 64", 0 ) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 1984, excali64, 0, 0, excali64, excali64, excali64_state, 0, "BGR Computers", "Excalibur 64", 0 ) diff --git a/src/mame/drivers/exedexes.cpp b/src/mame/drivers/exedexes.cpp index 08078deb3d4..5770c3329ad 100644 --- a/src/mame/drivers/exedexes.cpp +++ b/src/mame/drivers/exedexes.cpp @@ -217,7 +217,7 @@ void exedexes_state::machine_reset() m_sc2on = 0; } -static MACHINE_CONFIG_START( exedexes, exedexes_state ) +static MACHINE_CONFIG_START( exedexes ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 4000000) /* 4 MHz (?) */ @@ -350,5 +350,5 @@ ROM_END -GAME( 1985, exedexes, 0, exedexes, exedexes, driver_device, 0, ROT270, "Capcom", "Exed Exes", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, savgbees, exedexes, exedexes, exedexes, driver_device, 0, ROT270, "Capcom (Memetron license)", "Savage Bees", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, exedexes, 0, exedexes, exedexes, exedexes_state, 0, ROT270, "Capcom", "Exed Exes", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, savgbees, exedexes, exedexes, exedexes, exedexes_state, 0, ROT270, "Capcom (Memetron license)", "Savage Bees", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/exelv.cpp b/src/mame/drivers/exelv.cpp index 65f98ca3915..ed136ba0385 100644 --- a/src/mame/drivers/exelv.cpp +++ b/src/mame/drivers/exelv.cpp @@ -484,7 +484,7 @@ MACHINE_START_MEMBER( exelv_state, exeltel) } -static MACHINE_CONFIG_START( exl100, exelv_state ) +static MACHINE_CONFIG_START( exl100 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS7020_EXL, XTAL_4_9152MHz) @@ -505,11 +505,11 @@ static MACHINE_CONFIG_START( exl100, exelv_state ) MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK) MCFG_SCREEN_UPDATE_DEVICE("tms3556", tms3556_device, screen_update) #if TMS3556_DOUBLE_WIDTH - MCFG_SCREEN_SIZE(TMS3556_TOTAL_WIDTH*2, TMS3556_TOTAL_HEIGHT*2) - MCFG_SCREEN_VISIBLE_AREA(0, TMS3556_TOTAL_WIDTH*2-1, 0, TMS3556_TOTAL_HEIGHT*2-1) + MCFG_SCREEN_SIZE(tms3556_device::TOTAL_WIDTH*2, tms3556_device::TOTAL_HEIGHT*2) + MCFG_SCREEN_VISIBLE_AREA(0, tms3556_device::TOTAL_WIDTH*2-1, 0, tms3556_device::TOTAL_HEIGHT*2-1) #else - MCFG_SCREEN_SIZE(TMS3556_TOTAL_WIDTH, TMS3556_TOTAL_HEIGHT*2) - MCFG_SCREEN_VISIBLE_AREA(0, TMS3556_TOTAL_WIDTH-1, 0, TMS3556_TOTAL_HEIGHT-1) + MCFG_SCREEN_SIZE(tms3556_device::TOTAL_WIDTH, tms3556_device::TOTAL_HEIGHT*2) + MCFG_SCREEN_VISIBLE_AREA(0, tms3556_device::TOTAL_WIDTH-1, 0, tms3556_device::TOTAL_HEIGHT-1) #endif MCFG_SCREEN_REFRESH_RATE(50) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ @@ -533,7 +533,7 @@ static MACHINE_CONFIG_START( exl100, exelv_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( exeltel, exelv_state ) +static MACHINE_CONFIG_START( exeltel ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS7040, XTAL_4_9152MHz) @@ -554,11 +554,11 @@ static MACHINE_CONFIG_START( exeltel, exelv_state ) MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK) MCFG_SCREEN_UPDATE_DEVICE("tms3556", tms3556_device, screen_update) #if TMS3556_DOUBLE_WIDTH - MCFG_SCREEN_SIZE(TMS3556_TOTAL_WIDTH*2, TMS3556_TOTAL_HEIGHT*2) - MCFG_SCREEN_VISIBLE_AREA(0, TMS3556_TOTAL_WIDTH*2-1, 0, TMS3556_TOTAL_HEIGHT*2-1) + MCFG_SCREEN_SIZE(tms3556_device::TOTAL_WIDTH*2, tms3556_device::TOTAL_HEIGHT*2) + MCFG_SCREEN_VISIBLE_AREA(0, tms3556_device::TOTAL_WIDTH*2-1, 0, tms3556_device::TOTAL_HEIGHT*2-1) #else - MCFG_SCREEN_SIZE(TMS3556_TOTAL_WIDTH, TMS3556_TOTAL_HEIGHT*2) - MCFG_SCREEN_VISIBLE_AREA(0, TMS3556_TOTAL_WIDTH-1, 0, TMS3556_TOTAL_HEIGHT-1) + MCFG_SCREEN_SIZE(tms3556_device::TOTAL_WIDTH, tms3556_device::TOTAL_HEIGHT*2) + MCFG_SCREEN_VISIBLE_AREA(0, tms3556_device::TOTAL_WIDTH-1, 0, tms3556_device::TOTAL_HEIGHT-1) #endif MCFG_SCREEN_REFRESH_RATE(50) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ @@ -607,6 +607,6 @@ ROM_START(exeltel) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ -COMP(1984, exl100, 0, 0, exl100, exelv, driver_device, 0, "Exelvision", "EXL 100", MACHINE_NOT_WORKING) -COMP(1986, exeltel, exl100, 0, exeltel, exelv, driver_device, 0, "Exelvision", "Exeltel", MACHINE_NOT_WORKING) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP(1984, exl100, 0, 0, exl100, exelv, exelv_state, 0, "Exelvision", "EXL 100", MACHINE_NOT_WORKING) +COMP(1986, exeltel, exl100, 0, exeltel, exelv, exelv_state, 0, "Exelvision", "Exeltel", MACHINE_NOT_WORKING) diff --git a/src/mame/drivers/exerion.cpp b/src/mame/drivers/exerion.cpp index fd30847f034..1cd99655ffc 100644 --- a/src/mame/drivers/exerion.cpp +++ b/src/mame/drivers/exerion.cpp @@ -370,7 +370,7 @@ void exerion_state::machine_reset() m_background_latches[i] = 0; } -static MACHINE_CONFIG_START( exerion, exerion_state ) +static MACHINE_CONFIG_START( exerion ) MCFG_CPU_ADD("maincpu", Z80, EXERION_CPU_CLOCK) MCFG_CPU_PROGRAM_MAP(main_map) diff --git a/src/mame/drivers/exidy.cpp b/src/mame/drivers/exidy.cpp index b8285b9f436..63184ceec83 100644 --- a/src/mame/drivers/exidy.cpp +++ b/src/mame/drivers/exidy.cpp @@ -803,7 +803,7 @@ MACHINE_START_MEMBER(exidy_state,teetert) * *************************************/ -static MACHINE_CONFIG_START( base, exidy_state ) +static MACHINE_CONFIG_START( base ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, EXIDY_CPU_CLOCK) @@ -1584,33 +1584,33 @@ DRIVER_INIT_MEMBER(exidy_state,fax) GAME( 1979, sidetrac, 0, sidetrac, sidetrac, exidy_state, sidetrac, ROT0, "Exidy", "Side Trak", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // "Side Track" on title screen, but cabinet/flyers/documentation clearly indicates otherwise, "Side Trak" it is -GAME( 1980, targ, 0, targ, targ, exidy_state, targ, ROT0, "Exidy", "Targ", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1980, targc, targ, targ, targ, exidy_state, targ, ROT0, "Exidy", "Targ (cocktail?)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1980, targ, 0, targ, targ, exidy_state, targ, ROT0, "Exidy", "Targ", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1980, targc, targ, targ, targ, exidy_state, targ, ROT0, "Exidy", "Targ (cocktail?)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1980, spectar, 0, spectar, spectar, exidy_state, spectar, ROT0, "Exidy", "Spectar (revision 3)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1980, spectar1, spectar, spectar, spectar, exidy_state, spectar, ROT0, "Exidy", "Spectar (revision 1?)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1980, rallys, spectar, rallys, rallys, exidy_state, rallys, ROT0, "bootleg (Novar)", "Rallys (bootleg of Spectar, set 1)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1980, rallysa, spectar, rallys, rallys, exidy_state, rallys, ROT0, "bootleg (Musik Box Brescia)", "Rallys (bootleg of Spectar, set 2)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1980, panzer, spectar, rallys, rallys, exidy_state, rallys, ROT0, "bootleg (Proel)", "Panzer (bootleg of Spectar)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1980, spectar, 0, spectar, spectar, exidy_state, spectar, ROT0, "Exidy", "Spectar (revision 3)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1980, spectar1, spectar, spectar, spectar, exidy_state, spectar, ROT0, "Exidy", "Spectar (revision 1?)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1980, rallys, spectar, rallys, rallys, exidy_state, rallys, ROT0, "bootleg (Novar)", "Rallys (bootleg of Spectar, set 1)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1980, rallysa, spectar, rallys, rallys, exidy_state, rallys, ROT0, "bootleg (Musik Box Brescia)", "Rallys (bootleg of Spectar, set 2)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1980, panzer, spectar, rallys, rallys, exidy_state, rallys, ROT0, "bootleg (Proel)", "Panzer (bootleg of Spectar)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) GAME( 1980, phantoma, spectar, rallys, phantoma, exidy_state, phantoma, ROT0, "bootleg (Jeutel)", "Phantomas (bootleg of Spectar)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) GAME( 1980, phantom, spectar, rallys, phantoma, exidy_state, phantoma, ROT0, "bootleg (Proel)", "Phantom (bootleg of Spectar)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1981, mtrap, 0, mtrap, mtrap, exidy_state, mtrap, ROT0, "Exidy", "Mouse Trap (version 5)", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, mtrap2, mtrap, mtrap, mtrap, exidy_state, mtrap, ROT0, "Exidy", "Mouse Trap (version 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, mtrap3, mtrap, mtrap, mtrap, exidy_state, mtrap, ROT0, "Exidy", "Mouse Trap (version 3)", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, mtrap4, mtrap, mtrap, mtrap, exidy_state, mtrap, ROT0, "Exidy", "Mouse Trap (version 4)", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, mtrapb, mtrap, mtrap, mtrap, exidy_state, mtrap, ROT0, "bootleg", "Mouse Trap (bootleg)", MACHINE_SUPPORTS_SAVE ) - -GAME( 1981, venture, 0, venture, venture, exidy_state, venture, ROT0, "Exidy", "Venture (version 5 set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, venture2, venture, venture, venture, exidy_state, venture, ROT0, "Exidy", "Venture (version 5 set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, venture4, venture, venture, venture, exidy_state, venture, ROT0, "Exidy", "Venture (version 4)", MACHINE_SUPPORTS_SAVE ) - -GAME( 1982, teetert, 0, teetert, teetert, exidy_state, teetert, ROT0, "Exidy", "Teeter Torture (prototype)", MACHINE_SUPPORTS_SAVE ) - -GAME( 1982, pepper2, 0, pepper2, pepper2, exidy_state, pepper2, ROT0, "Exidy", "Pepper II (version 8)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, pepper27, pepper2, pepper2, pepper2, exidy_state, pepper2, ROT0, "Exidy", "Pepper II (version 7)", MACHINE_SUPPORTS_SAVE ) - -GAME( 1982, hardhat, 0, pepper2, pepper2, exidy_state, pepper2, ROT0, "Exidy", "Hard Hat", MACHINE_SUPPORTS_SAVE ) - -GAME( 1983, fax, 0, fax, fax, exidy_state, fax, ROT0, "Exidy", "FAX", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, fax2, fax, fax, fax, exidy_state, fax, ROT0, "Exidy", "FAX 2", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, mtrap, 0, mtrap, mtrap, exidy_state, mtrap, ROT0, "Exidy", "Mouse Trap (version 5)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, mtrap2, mtrap, mtrap, mtrap, exidy_state, mtrap, ROT0, "Exidy", "Mouse Trap (version 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, mtrap3, mtrap, mtrap, mtrap, exidy_state, mtrap, ROT0, "Exidy", "Mouse Trap (version 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, mtrap4, mtrap, mtrap, mtrap, exidy_state, mtrap, ROT0, "Exidy", "Mouse Trap (version 4)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, mtrapb, mtrap, mtrap, mtrap, exidy_state, mtrap, ROT0, "bootleg", "Mouse Trap (bootleg)", MACHINE_SUPPORTS_SAVE ) + +GAME( 1981, venture, 0, venture, venture, exidy_state, venture, ROT0, "Exidy", "Venture (version 5 set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, venture2, venture, venture, venture, exidy_state, venture, ROT0, "Exidy", "Venture (version 5 set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, venture4, venture, venture, venture, exidy_state, venture, ROT0, "Exidy", "Venture (version 4)", MACHINE_SUPPORTS_SAVE ) + +GAME( 1982, teetert, 0, teetert, teetert, exidy_state, teetert, ROT0, "Exidy", "Teeter Torture (prototype)", MACHINE_SUPPORTS_SAVE ) + +GAME( 1982, pepper2, 0, pepper2, pepper2, exidy_state, pepper2, ROT0, "Exidy", "Pepper II (version 8)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, pepper27, pepper2, pepper2, pepper2, exidy_state, pepper2, ROT0, "Exidy", "Pepper II (version 7)", MACHINE_SUPPORTS_SAVE ) + +GAME( 1982, hardhat, 0, pepper2, pepper2, exidy_state, pepper2, ROT0, "Exidy", "Hard Hat", MACHINE_SUPPORTS_SAVE ) + +GAME( 1983, fax, 0, fax, fax, exidy_state, fax, ROT0, "Exidy", "FAX", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, fax2, fax, fax, fax, exidy_state, fax, ROT0, "Exidy", "FAX 2", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/exidy440.cpp b/src/mame/drivers/exidy440.cpp index fd78f84ec2b..7b6ff76b66a 100644 --- a/src/mame/drivers/exidy440.cpp +++ b/src/mame/drivers/exidy440.cpp @@ -992,7 +992,7 @@ INPUT_PORTS_END * *************************************/ -static MACHINE_CONFIG_START( exidy440, exidy440_state ) +static MACHINE_CONFIG_START( exidy440 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809, MAIN_CPU_CLOCK) @@ -2071,18 +2071,18 @@ DRIVER_INIT_MEMBER(exidy440_state,yukon) * *************************************/ -GAME( 1983, crossbow, 0, exidy440, crossbow, exidy440_state, exidy440, ROT0, "Exidy", "Crossbow (version 2.0)", 0 ) -GAME( 1984, cheyenne, 0, exidy440, cheyenne, exidy440_state, exidy440, ROT0, "Exidy", "Cheyenne (version 1.0)", 0 ) -GAME( 1985, combat, 0, exidy440, combat, exidy440_state, exidy440, ROT0, "Exidy", "Combat (version 3.0)", 0 ) -GAME( 1985, catch22, combat, exidy440, catch22, exidy440_state, exidy440, ROT0, "Exidy", "Catch-22 (version 8.0)", 0 ) -GAME( 1985, cracksht, 0, exidy440, cracksht, exidy440_state, exidy440, ROT0, "Exidy", "Crackshot (version 2.0)", 0 ) -GAME( 1986, claypign, 0, exidy440, claypign, exidy440_state, claypign, ROT0, "Exidy", "Clay Pigeon (version 2.0)", 0 ) -GAME( 1986, chiller, 0, exidy440, chiller, exidy440_state, exidy440, ROT0, "Exidy", "Chiller (version 3.0)", 0 ) +GAME( 1983, crossbow, 0, exidy440, crossbow, exidy440_state, exidy440, ROT0, "Exidy", "Crossbow (version 2.0)", 0 ) +GAME( 1984, cheyenne, 0, exidy440, cheyenne, exidy440_state, exidy440, ROT0, "Exidy", "Cheyenne (version 1.0)", 0 ) +GAME( 1985, combat, 0, exidy440, combat, exidy440_state, exidy440, ROT0, "Exidy", "Combat (version 3.0)", 0 ) +GAME( 1985, catch22, combat, exidy440, catch22, exidy440_state, exidy440, ROT0, "Exidy", "Catch-22 (version 8.0)", 0 ) +GAME( 1985, cracksht, 0, exidy440, cracksht, exidy440_state, exidy440, ROT0, "Exidy", "Crackshot (version 2.0)", 0 ) +GAME( 1986, claypign, 0, exidy440, claypign, exidy440_state, claypign, ROT0, "Exidy", "Clay Pigeon (version 2.0)", 0 ) +GAME( 1986, chiller, 0, exidy440, chiller, exidy440_state, exidy440, ROT0, "Exidy", "Chiller (version 3.0)", 0 ) GAME( 1986, topsecex, 0, topsecex, topsecex, exidy440_state, topsecex, ROT0, "Exidy", "Top Secret (Exidy) (version 1.0)", 0 ) -GAME( 1987, hitnmiss, 0, exidy440, hitnmiss, exidy440_state, exidy440, ROT0, "Exidy", "Hit 'n Miss (version 3.0)", 0 ) -GAME( 1987, hitnmiss2,hitnmiss, exidy440, hitnmiss, exidy440_state, exidy440, ROT0, "Exidy", "Hit 'n Miss (version 2.0)", 0 ) -GAME( 1988, whodunit, 0, exidy440, whodunit, exidy440_state, exidy440, ROT0, "Exidy", "Who Dunit (version 9.0)", 0 ) -GAME( 1988, whodunit8,whodunit, exidy440, whodunit, exidy440_state, exidy440, ROT0, "Exidy", "Who Dunit (version 8.0)", 0 ) -GAME( 1988, showdown, 0, exidy440, showdown, exidy440_state, showdown, ROT0, "Exidy", "Showdown (version 5.0)", 0 ) -GAME( 1989, yukon, 0, exidy440, showdown, exidy440_state, yukon, ROT0, "Exidy", "Yukon (version 2.0)", 0 ) -GAME( 1989, yukon1, yukon, exidy440, showdown, exidy440_state, yukon, ROT0, "Exidy", "Yukon (version 1.0)", 0 ) +GAME( 1987, hitnmiss, 0, exidy440, hitnmiss, exidy440_state, exidy440, ROT0, "Exidy", "Hit 'n Miss (version 3.0)", 0 ) +GAME( 1987, hitnmiss2,hitnmiss, exidy440, hitnmiss, exidy440_state, exidy440, ROT0, "Exidy", "Hit 'n Miss (version 2.0)", 0 ) +GAME( 1988, whodunit, 0, exidy440, whodunit, exidy440_state, exidy440, ROT0, "Exidy", "Who Dunit (version 9.0)", 0 ) +GAME( 1988, whodunit8,whodunit, exidy440, whodunit, exidy440_state, exidy440, ROT0, "Exidy", "Who Dunit (version 8.0)", 0 ) +GAME( 1988, showdown, 0, exidy440, showdown, exidy440_state, showdown, ROT0, "Exidy", "Showdown (version 5.0)", 0 ) +GAME( 1989, yukon, 0, exidy440, showdown, exidy440_state, yukon, ROT0, "Exidy", "Yukon (version 2.0)", 0 ) +GAME( 1989, yukon1, yukon, exidy440, showdown, exidy440_state, yukon, ROT0, "Exidy", "Yukon (version 1.0)", 0 ) diff --git a/src/mame/drivers/exidyttl.cpp b/src/mame/drivers/exidyttl.cpp index cbaef90b02a..5b6d385ccac 100644 --- a/src/mame/drivers/exidyttl.cpp +++ b/src/mame/drivers/exidyttl.cpp @@ -52,7 +52,7 @@ public: } // devices - required_device m_maincpu; + required_device m_maincpu; required_device m_video; protected: @@ -95,7 +95,7 @@ void exidyttl_state::video_start() { } -static MACHINE_CONFIG_START( attack, exidyttl_state ) +static MACHINE_CONFIG_START( attack ) /* basic machine hardware */ MCFG_DEVICE_ADD("maincpu", NETLIST_CPU, NETLIST_CLOCK) @@ -110,7 +110,7 @@ static MACHINE_CONFIG_START( attack, exidyttl_state ) MCFG_FIXFREQ_SYNC_THRESHOLD(0.30) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( deathrac, exidyttl_state ) +static MACHINE_CONFIG_START( deathrac ) /* basic machine hardware */ MCFG_DEVICE_ADD("maincpu", NETLIST_CPU, NETLIST_CLOCK) @@ -211,6 +211,6 @@ ROM_START( deathrac ) ROM_LOAD( "6331-36.t7", 0x0000, 0x0020, CRC(15e00a2a) SHA1(cd43d227a34e5444ed9d8a4acf5497df9c789c73) ) ROM_END -GAME( 1977, attckexd, 0, attack, 0, driver_device, 0, ROT0, "Exidy", "Attack (Set 1) [TTL]", MACHINE_IS_SKELETON ) -GAME( 1977, attckexd2, attckexd, attack, 0, driver_device, 0, ROT0, "Exidy", "Attack (Set 2) [TTL]", MACHINE_IS_SKELETON ) -GAME( 1976, deathrac, 0, deathrac, 0, driver_device, 0, ROT0, "Exidy", "Death Race [TTL]", MACHINE_IS_SKELETON ) +GAME( 1977, attckexd, 0, attack, 0, exidyttl_state, 0, ROT0, "Exidy", "Attack (Set 1) [TTL]", MACHINE_IS_SKELETON ) +GAME( 1977, attckexd2, attckexd, attack, 0, exidyttl_state, 0, ROT0, "Exidy", "Attack (Set 2) [TTL]", MACHINE_IS_SKELETON ) +GAME( 1976, deathrac, 0, deathrac, 0, exidyttl_state, 0, ROT0, "Exidy", "Death Race [TTL]", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/exp85.cpp b/src/mame/drivers/exp85.cpp index 9b09545fe13..ebd436ca302 100644 --- a/src/mame/drivers/exp85.cpp +++ b/src/mame/drivers/exp85.cpp @@ -178,7 +178,7 @@ void exp85_state::machine_start() /* Machine Driver */ -static MACHINE_CONFIG_START( exp85, exp85_state ) +static MACHINE_CONFIG_START( exp85 ) /* basic machine hardware */ MCFG_CPU_ADD(I8085A_TAG, I8085A, XTAL_6_144MHz) MCFG_CPU_PROGRAM_MAP(exp85_mem) @@ -233,5 +233,5 @@ ROM_START( exp85 ) ROM_END /* System Drivers */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1979, exp85, 0, 0, exp85, exp85, driver_device, 0, "Netronics", "Explorer/85", 0 ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1979, exp85, 0, 0, exp85, exp85, exp85_state, 0, "Netronics", "Explorer/85", 0 ) diff --git a/src/mame/drivers/expro02.cpp b/src/mame/drivers/expro02.cpp index f18f09f308c..691fcd9b5d1 100644 --- a/src/mame/drivers/expro02.cpp +++ b/src/mame/drivers/expro02.cpp @@ -876,7 +876,7 @@ GFXDECODE_END * *************************************/ -static MACHINE_CONFIG_START( expro02, expro02_state ) +static MACHINE_CONFIG_START( expro02 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 12000000) @@ -921,7 +921,7 @@ static MACHINE_CONFIG_START( expro02, expro02_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", 12000000/6, OKIM6295_PIN7_LOW) + MCFG_OKIM6295_ADD("oki", 12000000/6, PIN7_LOW) MCFG_DEVICE_ADDRESS_MAP(AS_0, oki_map) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) @@ -960,7 +960,7 @@ MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( supmodel, comad_noview2 ) MCFG_CPU_MODIFY("maincpu") MCFG_CPU_PROGRAM_MAP(supmodel_map) - MCFG_OKIM6295_REPLACE("oki", 1584000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_REPLACE("oki", 1584000, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_DEVICE_ADDRESS_MAP(AS_0, oki_map) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -978,7 +978,7 @@ MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( galhustl, comad_noview2 ) MCFG_CPU_MODIFY("maincpu") MCFG_CPU_PROGRAM_MAP(galhustl_map) - MCFG_OKIM6295_REPLACE("oki", 1056000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_REPLACE("oki", 1056000, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_DEVICE_ADDRESS_MAP(AS_0, oki_map) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) @@ -990,7 +990,7 @@ static MACHINE_CONFIG_DERIVED( zipzap, comad_noview2 ) /* basic machine hardware */ MCFG_CPU_MODIFY("maincpu") MCFG_CPU_PROGRAM_MAP(zipzap_map) - MCFG_OKIM6295_REPLACE("oki", 1056000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_REPLACE("oki", 1056000, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_DEVICE_ADDRESS_MAP(AS_0, oki_map) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) @@ -1822,42 +1822,42 @@ DRIVER_INIT_MEMBER(expro02_state,expro02) * *************************************/ -GAME( 1990, galsnew, 0, expro02, expro02, expro02_state, expro02, ROT90, "Kaneko", "Gals Panic (US, EXPRO-02 PCB)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1990, galsnewa, galsnew, expro02, galsnewa, expro02_state, expro02, ROT90, "Kaneko", "Gals Panic (Export, EXPRO-02 PCB)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1990, galsnewj, galsnew, expro02, galsnewj, expro02_state, expro02, ROT90, "Kaneko (Taito license)", "Gals Panic (Japan, EXPRO-02 PCB)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1990, galsnewk, galsnew, expro02, galsnewj, expro02_state, expro02, ROT90, "Kaneko (Inter license)", "Gals Panic (Korea, EXPRO-02 PCB)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1990, galsnew, 0, expro02, expro02, expro02_state, expro02, ROT90, "Kaneko", "Gals Panic (US, EXPRO-02 PCB)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1990, galsnewa, galsnew, expro02, galsnewa, expro02_state, expro02, ROT90, "Kaneko", "Gals Panic (Export, EXPRO-02 PCB)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1990, galsnewj, galsnew, expro02, galsnewj, expro02_state, expro02, ROT90, "Kaneko (Taito license)", "Gals Panic (Japan, EXPRO-02 PCB)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1990, galsnewk, galsnew, expro02, galsnewj, expro02_state, expro02, ROT90, "Kaneko (Inter license)", "Gals Panic (Korea, EXPRO-02 PCB)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) /* the first version of Fantasia clones the EXPRO02 almost exactly, including the encrypted tiles*/ -GAME( 1994, fantasia, 0, comad, fantasia, expro02_state, expro02, ROT90, "Comad & New Japan System", "Fantasia (940429 PCB, set 1)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1994, fantasiab, fantasia, comad, fantasia, expro02_state, expro02, ROT90, "Comad & New Japan System", "Fantasia (940429 PCB, set 2)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1994, fantasiaa, fantasia, comad, fantasia, expro02_state, expro02, ROT90, "Comad & New Japan System", "Fantasia (940307 PCB)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1994, fantasia, 0, comad, fantasia, expro02_state, expro02, ROT90, "Comad & New Japan System", "Fantasia (940429 PCB, set 1)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1994, fantasiab, fantasia, comad, fantasia, expro02_state, expro02, ROT90, "Comad & New Japan System", "Fantasia (940429 PCB, set 2)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1994, fantasiaa, fantasia, comad, fantasia, expro02_state, expro02, ROT90, "Comad & New Japan System", "Fantasia (940307 PCB)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) /* subsequent releases remove the encrypted tile (View2 layer) but leave the unused writes to it in the program code */ -GAME( 1994, fantasian,fantasia, fantasia, fantasiaa, driver_device, 0, ROT90, "Comad & New Japan System", "Fantasia (940803 PCB)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1994, fantasian,fantasia, fantasia, fantasiaa, expro02_state, 0, ROT90, "Comad & New Japan System", "Fantasia (940803 PCB)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1994, supmodel, 0, supmodel, fantasiaa, driver_device, 0, ROT90, "Comad & New Japan System", "Super Model",MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // "C" nudity level +GAME( 1994, supmodel, 0, supmodel, fantasiaa, expro02_state, 0, ROT90, "Comad & New Japan System", "Super Model",MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // "C" nudity level -GAME( 1995, newfant, 0, fantasia, fantasiaa, driver_device, 0, ROT90, "Comad & New Japan System", "New Fantasia (1995 copyright)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // the only difference between the two is the gfx rom containing the copyright -GAME( 1994, newfanta, newfant, fantasia, fantasiaa, driver_device, 0, ROT90, "Comad & New Japan System", "New Fantasia (1994 copyright)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1995, fantsy95, newfant, fantasia, fantasiaa, driver_device, 0, ROT90, "Hi-max Technology Inc.", "Fantasy '95", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // "C" nudity level +GAME( 1995, newfant, 0, fantasia, fantasiaa, expro02_state, 0, ROT90, "Comad & New Japan System", "New Fantasia (1995 copyright)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // the only difference between the two is the gfx rom containing the copyright +GAME( 1994, newfanta, newfant, fantasia, fantasiaa, expro02_state, 0, ROT90, "Comad & New Japan System", "New Fantasia (1994 copyright)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1995, fantsy95, newfant, fantasia, fantasiaa, expro02_state, 0, ROT90, "Hi-max Technology Inc.", "Fantasy '95", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // "C" nudity level // the PCB label (A/B) could be related to the 3 different levels of nudity Comad offered -GAME( 1996, missw96, 0, fantasia, missw96, driver_device, 0, ROT0, "Comad", "Miss World '96 (Nude) (C-3000A PCB, set 1)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // "A" nudity level -GAME( 1996, missw96a, missw96, fantasia, missw96, driver_device, 0, ROT0, "Comad", "Miss World '96 (Nude) (C-3000A PCB, set 2)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // "A" nudity level -GAME( 1996, missw96b, missw96, fantasia, missw96, driver_device, 0, ROT0, "Comad", "Miss World '96 (Nude) (C-3000A PCB, set 3)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // "A" nudity level -GAME( 1996, missw96c, missw96, fantasia, missw96, driver_device, 0, ROT0, "Comad", "Miss World '96 (Nude) (C-3000B PCB)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // "B" nudity level +GAME( 1996, missw96, 0, fantasia, missw96, expro02_state, 0, ROT0, "Comad", "Miss World '96 (Nude) (C-3000A PCB, set 1)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // "A" nudity level +GAME( 1996, missw96a, missw96, fantasia, missw96, expro02_state, 0, ROT0, "Comad", "Miss World '96 (Nude) (C-3000A PCB, set 2)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // "A" nudity level +GAME( 1996, missw96b, missw96, fantasia, missw96, expro02_state, 0, ROT0, "Comad", "Miss World '96 (Nude) (C-3000A PCB, set 3)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // "A" nudity level +GAME( 1996, missw96c, missw96, fantasia, missw96, expro02_state, 0, ROT0, "Comad", "Miss World '96 (Nude) (C-3000B PCB)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // "B" nudity level -GAME( 1996, missmw96, missw96, fantasia, missw96, driver_device, 0, ROT0, "Comad", "Miss Mister World '96 (Nude)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1996, missmw96, missw96, fantasia, missw96, expro02_state, 0, ROT0, "Comad", "Miss Mister World '96 (Nude)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1996, smissw, 0, smissw, missw96, driver_device, 0, ROT0, "Comad", "Super Miss World", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // 951127 PCB +GAME( 1996, smissw, 0, smissw, missw96, expro02_state, 0, ROT0, "Comad", "Super Miss World", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // 951127 PCB -GAME( 1997, fantsia2, 0, fantsia2, missw96, driver_device, 0, ROT0, "Comad", "Fantasia II (Explicit)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // "A" nudity level -GAME( 1997, fantsia2a,fantsia2, fantsia2, missw96, driver_device, 0, ROT0, "Comad", "Fantasia II (Less Explicit)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // "B" nudity level -GAME( 1998, fantsia2n,fantsia2, fantsia2, missw96, driver_device, 0, ROT0, "Comad", "Fantasia II (1998)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // "A" nudity level +GAME( 1997, fantsia2, 0, fantsia2, missw96, expro02_state, 0, ROT0, "Comad", "Fantasia II (Explicit)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // "A" nudity level +GAME( 1997, fantsia2a,fantsia2, fantsia2, missw96, expro02_state, 0, ROT0, "Comad", "Fantasia II (Less Explicit)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // "B" nudity level +GAME( 1998, fantsia2n,fantsia2, fantsia2, missw96, expro02_state, 0, ROT0, "Comad", "Fantasia II (1998)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // "A" nudity level -GAME( 2002, wownfant, 0, fantsia2, missw96, driver_device, 0, ROT0, "Comad", "WOW New Fantasia", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // "B" nudity level -GAME( 2002, missw02, 0, fantsia2, missw96, driver_device, 0, ROT0, "Daigom", "Miss World 2002", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // "A" nudity level +GAME( 2002, wownfant, 0, fantsia2, missw96, expro02_state, 0, ROT0, "Comad", "WOW New Fantasia", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // "B" nudity level +GAME( 2002, missw02, 0, fantsia2, missw96, expro02_state, 0, ROT0, "Daigom", "Miss World 2002", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // "A" nudity level -GAME( 1996, pgalvip, 0, galhustl, galhustl, driver_device, 0, ROT0, "ACE International / Afega","Pocket Gals V.I.P (set 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // roms were all AFEGA stickered, select screen seems wrong? maybe not a final version. -GAME( 1997, pgalvipa, pgalvip, galhustl, galhustl, driver_device, 0, ROT0, "", "Pocket Gals V.I.P (set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, galhustl, pgalvip, galhustl, galhustl, driver_device, 0, ROT0, "ACE International", "Gals Hustler", MACHINE_SUPPORTS_SAVE ) // hack of the above? +GAME( 1996, pgalvip, 0, galhustl, galhustl, expro02_state, 0, ROT0, "ACE International / Afega","Pocket Gals V.I.P (set 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // roms were all AFEGA stickered, select screen seems wrong? maybe not a final version. +GAME( 1997, pgalvipa, pgalvip, galhustl, galhustl, expro02_state, 0, ROT0, "", "Pocket Gals V.I.P (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, galhustl, pgalvip, galhustl, galhustl, expro02_state, 0, ROT0, "ACE International", "Gals Hustler", MACHINE_SUPPORTS_SAVE ) // hack of the above? -GAME( 1995, zipzap, 0, zipzap, zipzap, driver_device, 0, ROT90, "Barko Corp", "Zip & Zap", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1995, zipzap, 0, zipzap, zipzap, expro02_state, 0, ROT90, "Barko Corp", "Zip & Zap", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/exprraid.cpp b/src/mame/drivers/exprraid.cpp index 53529696c91..b3b3e2685da 100644 --- a/src/mame/drivers/exprraid.cpp +++ b/src/mame/drivers/exprraid.cpp @@ -499,7 +499,7 @@ void exprraid_state::machine_reset() } -static MACHINE_CONFIG_START( exprraid, exprraid_state ) +static MACHINE_CONFIG_START( exprraid ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", DECO16, XTAL_12MHz / 8) diff --git a/src/mame/drivers/exterm.cpp b/src/mame/drivers/exterm.cpp index 7c072b6cd4d..5ad8d5ec2dd 100644 --- a/src/mame/drivers/exterm.cpp +++ b/src/mame/drivers/exterm.cpp @@ -397,7 +397,7 @@ INPUT_PORTS_END * *************************************/ -static MACHINE_CONFIG_START( exterm, exterm_state ) +static MACHINE_CONFIG_START( exterm ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS34010, 40000000) @@ -501,4 +501,4 @@ ROM_END * *************************************/ -GAME( 1989, exterm, 0, exterm, exterm, driver_device, 0, ROT0, "Gottlieb / Premier Technology", "Exterminator", 0 ) +GAME( 1989, exterm, 0, exterm, exterm, exterm_state, 0, ROT0, "Gottlieb / Premier Technology", "Exterminator", 0 ) diff --git a/src/mame/drivers/extrema.cpp b/src/mame/drivers/extrema.cpp index 4412839f895..77ee3833237 100644 --- a/src/mame/drivers/extrema.cpp +++ b/src/mame/drivers/extrema.cpp @@ -43,7 +43,7 @@ static INPUT_PORTS_START( extrema ) INPUT_PORTS_END -static MACHINE_CONFIG_START( extrema, extrema_state ) +static MACHINE_CONFIG_START( extrema ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 6000000) MCFG_CPU_PROGRAM_MAP(extrema_map) @@ -158,13 +158,13 @@ ROM_END -GAME( 200?, maski, 0, extrema, extrema, driver_device, 0, ROT0, "Extrema", "Maski Show (Russia) (Extrema)", MACHINE_IS_SKELETON) -GAME( 200?, adults, 0, extrema, extrema, driver_device, 0, ROT0, "Extrema", "Adults Only (Russia) (Extrema)", MACHINE_IS_SKELETON) -GAME( 200?, bloto, 0, extrema, extrema, driver_device, 0, ROT0, "Extrema", "Blits Loto (Russia) (Extrema)", MACHINE_IS_SKELETON) -GAME( 200?, blpearl, 0, extrema, extrema, driver_device, 0, ROT0, "Extrema", "Black Pearl (Russia) (Extrema)", MACHINE_IS_SKELETON) -GAME( 200?, grancan, 0, extrema, extrema, driver_device, 0, ROT0, "Extrema", "Grand Canyon (Russia) (Extrema)", MACHINE_IS_SKELETON) -GAME( 200?, luckshel, 0, extrema, extrema, driver_device, 0, ROT0, "Extrema", "Lucky Shell (Russia) (Extrema)", MACHINE_IS_SKELETON) -GAME( 200?, exsafar, 0, extrema, extrema, driver_device, 0, ROT0, "Extrema", "Safari (Russia) (Extrema)", MACHINE_IS_SKELETON) -GAME( 200?, strlink, 0, extrema, extrema, driver_device, 0, ROT0, "Extrema", "Strong Link (Russia) (Extrema)", MACHINE_IS_SKELETON) -GAME( 200?, extrmth, 0, extrema, extrema, driver_device, 0, ROT0, "Extrema", "Treasure Hunt (Russia) (Extrema)", MACHINE_IS_SKELETON) -GAME( 200?, extrmti, 0, extrema, extrema, driver_device, 0, ROT0, "Extrema", "Treasure Island (Russia) (Extrema)", MACHINE_IS_SKELETON) +GAME( 200?, maski, 0, extrema, extrema, extrema_state, 0, ROT0, "Extrema", "Maski Show (Russia) (Extrema)", MACHINE_IS_SKELETON ) +GAME( 200?, adults, 0, extrema, extrema, extrema_state, 0, ROT0, "Extrema", "Adults Only (Russia) (Extrema)", MACHINE_IS_SKELETON ) +GAME( 200?, bloto, 0, extrema, extrema, extrema_state, 0, ROT0, "Extrema", "Blits Loto (Russia) (Extrema)", MACHINE_IS_SKELETON ) +GAME( 200?, blpearl, 0, extrema, extrema, extrema_state, 0, ROT0, "Extrema", "Black Pearl (Russia) (Extrema)", MACHINE_IS_SKELETON ) +GAME( 200?, grancan, 0, extrema, extrema, extrema_state, 0, ROT0, "Extrema", "Grand Canyon (Russia) (Extrema)", MACHINE_IS_SKELETON ) +GAME( 200?, luckshel, 0, extrema, extrema, extrema_state, 0, ROT0, "Extrema", "Lucky Shell (Russia) (Extrema)", MACHINE_IS_SKELETON ) +GAME( 200?, exsafar, 0, extrema, extrema, extrema_state, 0, ROT0, "Extrema", "Safari (Russia) (Extrema)", MACHINE_IS_SKELETON ) +GAME( 200?, strlink, 0, extrema, extrema, extrema_state, 0, ROT0, "Extrema", "Strong Link (Russia) (Extrema)", MACHINE_IS_SKELETON ) +GAME( 200?, extrmth, 0, extrema, extrema, extrema_state, 0, ROT0, "Extrema", "Treasure Hunt (Russia) (Extrema)", MACHINE_IS_SKELETON ) +GAME( 200?, extrmti, 0, extrema, extrema, extrema_state, 0, ROT0, "Extrema", "Treasure Island (Russia) (Extrema)", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/exzisus.cpp b/src/mame/drivers/exzisus.cpp index 1ca41be0465..5f13dc2cdc4 100644 --- a/src/mame/drivers/exzisus.cpp +++ b/src/mame/drivers/exzisus.cpp @@ -225,7 +225,7 @@ GFXDECODE_END /* All clocks are unconfirmed */ -static MACHINE_CONFIG_START( exzisus, exzisus_state ) +static MACHINE_CONFIG_START( exzisus ) /* basic machine hardware */ MCFG_CPU_ADD("cpua", Z80, 6000000) @@ -390,6 +390,6 @@ ROM_START( exzisust ) ROM_LOAD( "b23-05.16l", 0x00800, 0x00400, CRC(87f0f69a) SHA1(37df6fd56245fab9beaabfd86fd8f95d7c42c2a5) ) ROM_END -GAME( 1987, exzisus, 0, exzisus, exzisus, driver_device, 0, ROT0, "Taito Corporation", "Exzisus (Japan, dedicated)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, exzisusa, exzisus, exzisus, exzisus, driver_device, 0, ROT0, "Taito Corporation", "Exzisus (Japan, conversion)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, exzisust, exzisus, exzisus, exzisus, driver_device, 0, ROT0, "Taito Corporation (TAD license)", "Exzisus (TAD license)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, exzisus, 0, exzisus, exzisus, exzisus_state, 0, ROT0, "Taito Corporation", "Exzisus (Japan, dedicated)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, exzisusa, exzisus, exzisus, exzisus, exzisus_state, 0, ROT0, "Taito Corporation", "Exzisus (Japan, conversion)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, exzisust, exzisus, exzisus, exzisus, exzisus_state, 0, ROT0, "Taito Corporation (TAD license)", "Exzisus (TAD license)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/f-32.cpp b/src/mame/drivers/f-32.cpp index e1d966fa8a8..cfed6a7e63c 100644 --- a/src/mame/drivers/f-32.cpp +++ b/src/mame/drivers/f-32.cpp @@ -156,7 +156,7 @@ INPUT_PORTS_END -static MACHINE_CONFIG_START( mosaicf2, mosaicf2_state ) +static MACHINE_CONFIG_START( mosaicf2 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", E132XN, XTAL_20MHz*4) /* 4x internal multiplier */ @@ -186,7 +186,7 @@ static MACHINE_CONFIG_START( mosaicf2, mosaicf2_state ) MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) - MCFG_OKIM6295_ADD("oki", XTAL_14_31818MHz/8, OKIM6295_PIN7_HIGH) /* 1.7897725 MHz */ + MCFG_OKIM6295_ADD("oki", XTAL_14_31818MHz/8, PIN7_HIGH) /* 1.7897725 MHz */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) MACHINE_CONFIG_END @@ -232,7 +232,7 @@ static ADDRESS_MAP_START( royalpk2_io, AS_IO, 32, mosaicf2_state ) AM_RANGE(0x6a00, 0x6a03) AM_WRITE_PORT("EEPROMOUT") ADDRESS_MAP_END -static MACHINE_CONFIG_START( royalpk2, mosaicf2_state ) +static MACHINE_CONFIG_START( royalpk2 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", GMS30C2132, XTAL_50MHz) @@ -262,7 +262,7 @@ static MACHINE_CONFIG_START( royalpk2, mosaicf2_state ) // MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) // MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) - MCFG_OKIM6295_ADD("oki", XTAL_14_31818MHz/8, OKIM6295_PIN7_HIGH) /* 1.7897725 MHz */ + MCFG_OKIM6295_ADD("oki", XTAL_14_31818MHz/8, PIN7_HIGH) /* 1.7897725 MHz */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) @@ -364,5 +364,5 @@ ROM_START( royalpk2 ) ROM_END -GAME( 1999, mosaicf2, 0, mosaicf2, mosaicf2, driver_device, 0, ROT0, "F2 System", "Mosaic (F2 System)", MACHINE_SUPPORTS_SAVE ) -GAME( 1999, royalpk2, 0, royalpk2, royalpk2, driver_device, 0, ROT0, "F2 System", "Royal Poker 2 (Network version 3.12)", MACHINE_NOT_WORKING ) +GAME( 1999, mosaicf2, 0, mosaicf2, mosaicf2, mosaicf2_state, 0, ROT0, "F2 System", "Mosaic (F2 System)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, royalpk2, 0, royalpk2, royalpk2, mosaicf2_state, 0, ROT0, "F2 System", "Royal Poker 2 (Network version 3.12)", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/f1gp.cpp b/src/mame/drivers/f1gp.cpp index 769f9f41754..857299a4e14 100644 --- a/src/mame/drivers/f1gp.cpp +++ b/src/mame/drivers/f1gp.cpp @@ -392,7 +392,7 @@ MACHINE_RESET_MEMBER(f1gp_state,f1gp) m_scroll[1] = 0; } -static MACHINE_CONFIG_START( f1gp, f1gp_state ) +static MACHINE_CONFIG_START( f1gp ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",M68000,XTAL_20MHz/2) /* verified on pcb */ @@ -458,7 +458,7 @@ static MACHINE_CONFIG_START( f1gp, f1gp_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( f1gpb, f1gp_state ) +static MACHINE_CONFIG_START( f1gpb ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",M68000,10000000) /* 10 MHz ??? */ @@ -494,7 +494,7 @@ static MACHINE_CONFIG_START( f1gpb, f1gp_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_OKIM6295_ADD("oki", 1000000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki", 1000000, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.50) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.50) MACHINE_CONFIG_END @@ -672,7 +672,7 @@ ROM_START( f1gp2 ) ROM_END -GAME( 1991, f1gp, 0, f1gp, f1gp, driver_device, 0, ROT90, "Video System Co.", "F-1 Grand Prix", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1991, f1gpb, f1gp, f1gpb, f1gp, driver_device, 0, ROT90, "bootleg (Playmark)", "F-1 Grand Prix (Playmark bootleg)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // PCB marked 'Super Formula II', manufactured by Playmark. +GAME( 1991, f1gp, 0, f1gp, f1gp, f1gp_state, 0, ROT90, "Video System Co.", "F-1 Grand Prix", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1991, f1gpb, f1gp, f1gpb, f1gp, f1gp_state, 0, ROT90, "bootleg (Playmark)", "F-1 Grand Prix (Playmark bootleg)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // PCB marked 'Super Formula II', manufactured by Playmark. -GAME( 1992, f1gp2, 0, f1gp2, f1gp2, driver_device, 0, ROT90, "Video System Co.", "F-1 Grand Prix Part II", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1992, f1gp2, 0, f1gp2, f1gp2, f1gp_state, 0, ROT90, "Video System Co.", "F-1 Grand Prix Part II", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/famibox.cpp b/src/mame/drivers/famibox.cpp index d9576552172..8df471a3a9f 100644 --- a/src/mame/drivers/famibox.cpp +++ b/src/mame/drivers/famibox.cpp @@ -544,7 +544,7 @@ void famibox_state::machine_start() m_coins = 0; } -static MACHINE_CONFIG_START( famibox, famibox_state ) +static MACHINE_CONFIG_START( famibox ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", N2A03, NTSC_APU_CLOCK) MCFG_CPU_PROGRAM_MAP(famibox_map) @@ -607,4 +607,4 @@ ROM_START(famibox) ROM_END -GAME( 1986, famibox, 0, famibox, famibox, driver_device, 0, ROT0, "Nintendo", "FamicomBox", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND) +GAME( 1986, famibox, 0, famibox, famibox, famibox_state, 0, ROT0, "Nintendo", "FamicomBox", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND) diff --git a/src/mame/drivers/fantland.cpp b/src/mame/drivers/fantland.cpp index bb0ceb9c5c3..e2d7ab1a668 100644 --- a/src/mame/drivers/fantland.cpp +++ b/src/mame/drivers/fantland.cpp @@ -839,7 +839,7 @@ INTERRUPT_GEN_MEMBER(fantland_state::fantland_sound_irq) device.execute().set_input_line_and_vector(0, HOLD_LINE, 0x80 / 4); } -static MACHINE_CONFIG_START( fantland, fantland_state ) +static MACHINE_CONFIG_START( fantland ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8086, 8000000) // ? @@ -890,7 +890,7 @@ WRITE_LINE_MEMBER(fantland_state::galaxygn_sound_irq) m_audiocpu->set_input_line_and_vector(0, state ? ASSERT_LINE : CLEAR_LINE, 0x80/4); } -static MACHINE_CONFIG_START( galaxygn, fantland_state ) +static MACHINE_CONFIG_START( galaxygn ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8088, 8000000) // ? @@ -972,7 +972,7 @@ MACHINE_RESET_MEMBER(fantland_state,borntofi) borntofi_adpcm_stop(m_msm4, 3); } -static MACHINE_CONFIG_START( borntofi, fantland_state ) +static MACHINE_CONFIG_START( borntofi ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", V20, 16000000/2) // D701080C-8 - NEC D70108C-8 V20 CPU, running at 8.000MHz [16/2] @@ -1006,27 +1006,27 @@ static MACHINE_CONFIG_START( borntofi, fantland_state ) // OKI M5205 running at 384kHz [18.432/48]. Sample rate = 384000 / 48 MCFG_SOUND_ADD("msm1", MSM5205, 384000) MCFG_MSM5205_VCLK_CB(WRITELINE(fantland_state, borntofi_adpcm_int_0)) /* IRQ handler */ - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S48_4B) /* 8 kHz, 4 Bits */ + MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) /* 8 kHz, 4 Bits */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0) MCFG_SOUND_ADD("msm2", MSM5205, 384000) MCFG_MSM5205_VCLK_CB(WRITELINE(fantland_state, borntofi_adpcm_int_1)) /* IRQ handler */ - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S48_4B) /* 8 kHz, 4 Bits */ + MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) /* 8 kHz, 4 Bits */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0) MCFG_SOUND_ADD("msm3", MSM5205, 384000) MCFG_MSM5205_VCLK_CB(WRITELINE(fantland_state, borntofi_adpcm_int_2)) /* IRQ handler */ - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S48_4B) /* 8 kHz, 4 Bits */ + MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) /* 8 kHz, 4 Bits */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0) MCFG_SOUND_ADD("msm4", MSM5205, 384000) MCFG_MSM5205_VCLK_CB(WRITELINE(fantland_state, borntofi_adpcm_int_3)) /* IRQ handler */ - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S48_4B) /* 8 kHz, 4 Bits */ + MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) /* 8 kHz, 4 Bits */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( wheelrun, fantland_state ) +static MACHINE_CONFIG_START( wheelrun ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", V20, XTAL_18MHz/2) // D701080C-8 (V20) @@ -1416,8 +1416,8 @@ ROM_START( wheelrun ) ROM_END -GAME( 19??, borntofi, 0, borntofi, borntofi, driver_device, 0, ROT0, "International Games", "Born To Fight", MACHINE_SUPPORTS_SAVE ) -GAME( 19??, fantland, 0, fantland, fantland, driver_device, 0, ROT0, "Electronic Devices Italy", "Fantasy Land (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 19??, fantlanda, fantland, fantland, fantland, driver_device, 0, ROT0, "Electronic Devices Italy", "Fantasy Land (set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 19??, wheelrun, 0, wheelrun, wheelrun, driver_device, 0, ROT0, "International Games", "Wheels Runner", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, galaxygn, 0, galaxygn, galaxygn, driver_device, 0, ROT90, "Electronic Devices Italy", "Galaxy Gunners", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 19??, borntofi, 0, borntofi, borntofi, fantland_state, 0, ROT0, "International Games", "Born To Fight", MACHINE_SUPPORTS_SAVE ) +GAME( 19??, fantland, 0, fantland, fantland, fantland_state, 0, ROT0, "Electronic Devices Italy", "Fantasy Land (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 19??, fantlanda, fantland, fantland, fantland, fantland_state, 0, ROT0, "Electronic Devices Italy", "Fantasy Land (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 19??, wheelrun, 0, wheelrun, wheelrun, fantland_state, 0, ROT0, "International Games", "Wheels Runner", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, galaxygn, 0, galaxygn, galaxygn, fantland_state, 0, ROT90, "Electronic Devices Italy", "Galaxy Gunners", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/fanucs15.cpp b/src/mame/drivers/fanucs15.cpp index c9cb662a2f4..ea3cac1c0e1 100644 --- a/src/mame/drivers/fanucs15.cpp +++ b/src/mame/drivers/fanucs15.cpp @@ -359,7 +359,7 @@ void fanucs15_state::machine_reset() { } -static MACHINE_CONFIG_START( fanucs15, fanucs15_state ) +static MACHINE_CONFIG_START( fanucs15 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68020, XTAL_12MHz) MCFG_CPU_PROGRAM_MAP(maincpu_mem) @@ -419,5 +419,5 @@ ROM_START( fanucs15 ) ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1990, fanucs15, 0, 0, fanucs15, fanucs15, driver_device, 0, "Fanuc", "System 15", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 1990, fanucs15, 0, 0, fanucs15, fanucs15, fanucs15_state, 0, "Fanuc", "System 15", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/fanucspmg.cpp b/src/mame/drivers/fanucspmg.cpp index 14b47870293..7e2366bb5d6 100644 --- a/src/mame/drivers/fanucspmg.cpp +++ b/src/mame/drivers/fanucspmg.cpp @@ -954,7 +954,7 @@ FLOPPY_FORMATS_MEMBER( fanucspmg_state::floppy_formats ) FLOPPY_IMD_FORMAT FLOPPY_FORMATS_END -static MACHINE_CONFIG_START( fanucspmg, fanucspmg_state ) +static MACHINE_CONFIG_START( fanucspmg ) /* basic machine hardware */ MCFG_CPU_ADD(MAINCPU_TAG, I8086, XTAL_15MHz/3) MCFG_CPU_PROGRAM_MAP(maincpu_mem) @@ -1042,6 +1042,6 @@ ROM_START( fanucspgm ) ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1983, fanucspg, 0, 0, fanucspmg, fanucspmg, fanucspmg_state, fanucspmg, "Fanuc", "System P Model G", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -COMP( 1983, fanucspgm, fanucspg, 0, fanucspmgm, fanucspmg, fanucspmg_state, fanucspmg, "Fanuc", "System P Model G (monochrome)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 1983, fanucspg, 0, 0, fanucspmg, fanucspmg, fanucspmg_state, fanucspmg, "Fanuc", "System P Model G", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +COMP( 1983, fanucspgm, fanucspg, 0, fanucspmgm, fanucspmg, fanucspmg_state, fanucspmg, "Fanuc", "System P Model G (monochrome)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) diff --git a/src/mame/drivers/fastfred.cpp b/src/mame/drivers/fastfred.cpp index 580e8cd5e07..07b2bf5e9ca 100644 --- a/src/mame/drivers/fastfred.cpp +++ b/src/mame/drivers/fastfred.cpp @@ -648,7 +648,7 @@ INTERRUPT_GEN_MEMBER(fastfred_state::sound_timer_irq) device.execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE); } -static MACHINE_CONFIG_START( fastfred, fastfred_state ) +static MACHINE_CONFIG_START( fastfred ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_12_432MHz/4) /* 3.108 MHz; xtal from pcb pics, divider not verified */ @@ -1060,13 +1060,13 @@ DRIVER_INIT_MEMBER(fastfred_state,imago) m_hardware_type = 3; } -GAME( 1982, flyboy, 0, fastfred, flyboy, fastfred_state, flyboy, ROT90, "Kaneko", "Fly-Boy", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, flyboyb, flyboy, fastfred, flyboy, fastfred_state, flyboyb, ROT90, "bootleg", "Fly-Boy (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, flyboy, 0, fastfred, flyboy, fastfred_state, flyboy, ROT90, "Kaneko", "Fly-Boy", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, flyboyb, flyboy, fastfred, flyboy, fastfred_state, flyboyb, ROT90, "bootleg", "Fly-Boy (bootleg)", MACHINE_SUPPORTS_SAVE ) GAME( 1982, fastfred, flyboy, fastfred, fastfred, fastfred_state, fastfred, ROT90, "Kaneko (Atari license)", "Fast Freddie", MACHINE_SUPPORTS_SAVE ) GAME( 1983, jumpcoas, 0, jumpcoas, jumpcoas, fastfred_state, jumpcoas, ROT90, "Kaneko", "Jump Coaster", MACHINE_SUPPORTS_SAVE ) GAME( 1983, jumpcoast,jumpcoas, jumpcoas, jumpcoas, fastfred_state, jumpcoas, ROT90, "Kaneko (Taito license)", "Jump Coaster (Taito)", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, boggy84, 0, jumpcoas, boggy84, fastfred_state, boggy84, ROT90, "Kaneko", "Boggy '84", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, boggy84b, boggy84, jumpcoas, boggy84, fastfred_state, boggy84b, ROT90, "bootleg (Eddie's Games)", "Boggy '84 (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, boggy84, 0, jumpcoas, boggy84, fastfred_state, boggy84, ROT90, "Kaneko", "Boggy '84", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, boggy84b, boggy84, jumpcoas, boggy84, fastfred_state, boggy84b, ROT90, "bootleg (Eddie's Games)", "Boggy '84 (bootleg)", MACHINE_SUPPORTS_SAVE ) GAME( 1986, redrobin, 0, fastfred, redrobin, fastfred_state, flyboyb, ROT90, "Elettronolo", "Red Robin", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, imago, 0, imago, imago, fastfred_state, imago, ROT90, "Acom", "Imago (cocktail set)", 0 ) -GAME( 1983, imagoa, imago, imago, imagoa, fastfred_state, imago, ROT90, "Acom", "Imago (no cocktail set)", 0 ) +GAME( 1984, imago, 0, imago, imago, fastfred_state, imago, ROT90, "Acom", "Imago (cocktail set)", 0 ) +GAME( 1983, imagoa, imago, imago, imagoa, fastfred_state, imago, ROT90, "Acom", "Imago (no cocktail set)", 0 ) diff --git a/src/mame/drivers/fastinvaders.cpp b/src/mame/drivers/fastinvaders.cpp index b08b0deaebe..76c9fc8770b 100644 --- a/src/mame/drivers/fastinvaders.cpp +++ b/src/mame/drivers/fastinvaders.cpp @@ -630,7 +630,7 @@ static GFXDECODE_START( fastinvaders ) GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0, 1 ) GFXDECODE_END -static MACHINE_CONFIG_START( fastinvaders, fastinvaders_state ) +static MACHINE_CONFIG_START( fastinvaders ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8085A, 6144100/2 ) // 6144100 Xtal /2 internaly @@ -777,6 +777,6 @@ ROM_START( fi6845 ) ROM_LOAD( "93427.bin", 0x0000, 0x0100, CRC(f59c8573) SHA1(5aed4866abe1690fd0f088af1cfd99b3c85afe9a) ) ROM_END -/* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS*/ +// YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS GAME( 1979, fi6845, 0, fastinvaders_6845, fastinvaders, fastinvaders_state, fi6845, ROT270, "Fiberglass", "Fast Invaders (6845 version)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -GAME( 1979, fi8275, fi6845, fastinvaders_8275, fastinvaders, fastinvaders_state,fi6845, ROT270, "Fiberglass", "Fast Invaders (8275 version)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +GAME( 1979, fi8275, fi6845, fastinvaders_8275, fastinvaders, fastinvaders_state, fi6845, ROT270, "Fiberglass", "Fast Invaders (8275 version)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/fastlane.cpp b/src/mame/drivers/fastlane.cpp index f65fcd5f1ad..89ab60e33ee 100644 --- a/src/mame/drivers/fastlane.cpp +++ b/src/mame/drivers/fastlane.cpp @@ -199,7 +199,7 @@ void fastlane_state::machine_start() membank("bank1")->configure_entries(0, 4, &ROM[0x10000], 0x4000); } -static MACHINE_CONFIG_START( fastlane, fastlane_state ) +static MACHINE_CONFIG_START( fastlane ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", HD6309, XTAL_24MHz/2) // 3MHz(XTAL_24MHz/8) internally @@ -267,4 +267,4 @@ ROM_START( fastlane ) ROM_END -GAME( 1987, fastlane, 0, fastlane, fastlane, driver_device, 0, ROT90, "Konami", "Fast Lane", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE ) +GAME( 1987, fastlane, 0, fastlane, fastlane, fastlane_state, 0, ROT90, "Konami", "Fast Lane", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/fb01.cpp b/src/mame/drivers/fb01.cpp index e712ac0f546..a9545ac87a9 100644 --- a/src/mame/drivers/fb01.cpp +++ b/src/mame/drivers/fb01.cpp @@ -172,7 +172,7 @@ PALETTE_INIT_MEMBER(fb01_state, fb01) } -static MACHINE_CONFIG_START( fb01, fb01_state ) +static MACHINE_CONFIG_START( fb01 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_12MHz/2) MCFG_CPU_PROGRAM_MAP(fb01_mem) @@ -231,5 +231,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -CONS( 1986, fb01, 0, 0, fb01, fb01, driver_device, 0, "Yamaha", "FB-01", MACHINE_SUPPORTS_SAVE ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +CONS( 1986, fb01, 0, 0, fb01, fb01, fb01_state, 0, "Yamaha", "FB-01", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/fc100.cpp b/src/mame/drivers/fc100.cpp index 5f4d8deedfa..6ef23b9fe4c 100644 --- a/src/mame/drivers/fc100.cpp +++ b/src/mame/drivers/fc100.cpp @@ -512,7 +512,7 @@ DRIVER_INIT_MEMBER( fc100_state, fc100 ) membank("bankr")->configure_entry(1, &ram[0]); } -static MACHINE_CONFIG_START( fc100, fc100_state ) +static MACHINE_CONFIG_START( fc100 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80, XTAL_7_15909MHz/2) MCFG_CPU_PROGRAM_MAP(fc100_mem) @@ -522,7 +522,7 @@ static MACHINE_CONFIG_START( fc100, fc100_state ) MCFG_DEVICE_ADD("vdg", M5C6847P1, XTAL_7_15909MHz/3) // Clock not verified MCFG_MC6847_INPUT_CALLBACK(READ8(fc100_state, mc6847_videoram_r)) MCFG_MC6847_CHARROM_CALLBACK(fc100_state, get_char_rom) - MCFG_MC6847_FIXED_MODE(MC6847_MODE_INTEXT) + MCFG_MC6847_FIXED_MODE(m5c6847p1_device::MODE_INTEXT) // other lines not connected MCFG_SCREEN_MC6847_NTSC_ADD("screen", "vdg") @@ -577,5 +577,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -CONS( 1982, fc100, 0, 0, fc100, fc100, fc100_state, fc100, "Goldstar", "FC-100", MACHINE_NOT_WORKING ) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +CONS( 1982, fc100, 0, 0, fc100, fc100, fc100_state, fc100, "Goldstar", "FC-100", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/fccpu20.cpp b/src/mame/drivers/fccpu20.cpp index 1e5aa35b4f1..15c5bb2f918 100644 --- a/src/mame/drivers/fccpu20.cpp +++ b/src/mame/drivers/fccpu20.cpp @@ -140,37 +140,37 @@ static SLOT_INTERFACE_START(cpu21yb_vme_cards) SLOT_INTERFACE_END /* Machine configurations */ -MACHINE_CONFIG_START (cpu20, cpu20_state) +MACHINE_CONFIG_START (cpu20) MCFG_VME_DEVICE_ADD("vme") MCFG_VME_SLOT_ADD ("vme", 1, cpu20_vme_cards, "fccpu20") MACHINE_CONFIG_END -MACHINE_CONFIG_START (cpu21s, cpu20_state) +MACHINE_CONFIG_START (cpu21s) MCFG_VME_DEVICE_ADD("vme") MCFG_VME_SLOT_ADD ("vme", 1, cpu21s_vme_cards, "fccpu21s") MACHINE_CONFIG_END -MACHINE_CONFIG_START (cpu21, cpu20_state) +MACHINE_CONFIG_START (cpu21) MCFG_VME_DEVICE_ADD("vme") MCFG_VME_SLOT_ADD ("vme", 1, cpu21_vme_cards, "fccpu21") MACHINE_CONFIG_END -MACHINE_CONFIG_START (cpu21a, cpu20_state) +MACHINE_CONFIG_START (cpu21a) MCFG_VME_DEVICE_ADD("vme") MCFG_VME_SLOT_ADD ("vme", 1, cpu21a_vme_cards, "fccpu21a") MACHINE_CONFIG_END -MACHINE_CONFIG_START (cpu21ya, cpu20_state) +MACHINE_CONFIG_START (cpu21ya) MCFG_VME_DEVICE_ADD("vme") MCFG_VME_SLOT_ADD ("vme", 1, cpu21ya_vme_cards, "fccpu21ya") MACHINE_CONFIG_END -MACHINE_CONFIG_START (cpu21b, cpu20_state) +MACHINE_CONFIG_START (cpu21b) MCFG_VME_DEVICE_ADD("vme") MCFG_VME_SLOT_ADD ("vme", 1, cpu21b_vme_cards, "fccpu21b") MACHINE_CONFIG_END -MACHINE_CONFIG_START (cpu21yb, cpu20_state) +MACHINE_CONFIG_START (cpu21yb) MCFG_VME_DEVICE_ADD("vme") MCFG_VME_SLOT_ADD ("vme", 1, cpu21yb_vme_cards, "fccpu21yb") MACHINE_CONFIG_END @@ -188,10 +188,10 @@ ROM_START(fccpu20sbc) ROM_END /* Driver */ /* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP (1986, fccpu20sbc, 0, 0, cpu20, cpu20, driver_device, 0, "Force Computers Gmbh", "SYS68K/CPU-20", MACHINE_NO_SOUND_HW | MACHINE_TYPE_COMPUTER ) -COMP (1986, fccpu21ssbc, fccpu20sbc, 0, cpu21s, cpu20, cpu20_state, cpu21s, "Force Computers Gmbh", "SYS68K/CPU-21S", MACHINE_NO_SOUND_HW | MACHINE_TYPE_COMPUTER ) -COMP (1986, fccpu21sbc, fccpu20sbc, 0, cpu21, cpu20, cpu20_state, cpu21, "Force Computers Gmbh", "SYS68K/CPU-21", MACHINE_NO_SOUND_HW | MACHINE_TYPE_COMPUTER ) -COMP (1986, fccpu21asbc, fccpu20sbc, 0, cpu21a, cpu20, cpu20_state, cpu21a, "Force Computers Gmbh", "SYS68K/CPU-21A", MACHINE_NO_SOUND_HW | MACHINE_TYPE_COMPUTER ) -COMP (1986, fccpu21yasbc, fccpu20sbc, 0, cpu21ya, cpu20, cpu20_state, cpu21ya, "Force Computers Gmbh", "SYS68K/CPU-21YA", MACHINE_NO_SOUND_HW | MACHINE_TYPE_COMPUTER ) -COMP (1986, fccpu21bsbc, fccpu20sbc, 0, cpu21b, cpu20, cpu20_state, cpu21b, "Force Computers Gmbh", "SYS68K/CPU-21B", MACHINE_NO_SOUND_HW | MACHINE_TYPE_COMPUTER ) -COMP (1986, fccpu21ybsbc, fccpu20sbc, 0, cpu21yb, cpu20, cpu20_state, cpu21yb, "Force Computers Gmbh", "SYS68K/CPU-21YB", MACHINE_NO_SOUND_HW | MACHINE_TYPE_COMPUTER ) +COMP (1986, fccpu20sbc, 0, 0, cpu20, cpu20, cpu20_state, 0, "Force Computers GmbH", "SYS68K/CPU-20", MACHINE_NO_SOUND_HW | MACHINE_TYPE_COMPUTER ) +COMP (1986, fccpu21ssbc, fccpu20sbc, 0, cpu21s, cpu20, cpu20_state, cpu21s, "Force Computers GmbH", "SYS68K/CPU-21S", MACHINE_NO_SOUND_HW | MACHINE_TYPE_COMPUTER ) +COMP (1986, fccpu21sbc, fccpu20sbc, 0, cpu21, cpu20, cpu20_state, cpu21, "Force Computers GmbH", "SYS68K/CPU-21", MACHINE_NO_SOUND_HW | MACHINE_TYPE_COMPUTER ) +COMP (1986, fccpu21asbc, fccpu20sbc, 0, cpu21a, cpu20, cpu20_state, cpu21a, "Force Computers GmbH", "SYS68K/CPU-21A", MACHINE_NO_SOUND_HW | MACHINE_TYPE_COMPUTER ) +COMP (1986, fccpu21yasbc, fccpu20sbc, 0, cpu21ya, cpu20, cpu20_state, cpu21ya, "Force Computers GmbH", "SYS68K/CPU-21YA", MACHINE_NO_SOUND_HW | MACHINE_TYPE_COMPUTER ) +COMP (1986, fccpu21bsbc, fccpu20sbc, 0, cpu21b, cpu20, cpu20_state, cpu21b, "Force Computers GmbH", "SYS68K/CPU-21B", MACHINE_NO_SOUND_HW | MACHINE_TYPE_COMPUTER ) +COMP (1986, fccpu21ybsbc, fccpu20sbc, 0, cpu21yb, cpu20, cpu20_state, cpu21yb, "Force Computers GmbH", "SYS68K/CPU-21YB", MACHINE_NO_SOUND_HW | MACHINE_TYPE_COMPUTER ) diff --git a/src/mame/drivers/fccpu30.cpp b/src/mame/drivers/fccpu30.cpp index 8f9138af502..abd99b262c0 100644 --- a/src/mame/drivers/fccpu30.cpp +++ b/src/mame/drivers/fccpu30.cpp @@ -643,7 +643,7 @@ SLOT_INTERFACE_END /* * Machine configuration */ -static MACHINE_CONFIG_START (cpu30, cpu30_state) +static MACHINE_CONFIG_START (cpu30) /* basic machine hardware */ MCFG_CPU_ADD ("maincpu", M68030, XTAL_25MHz) MCFG_CPU_PROGRAM_MAP (cpu30_mem) @@ -883,7 +883,7 @@ ROM_END /* * System ROM information * - * FGA-002 Bootprom version 3.1 is released May 28, 1990, coprighted by FORCE Computers Gmbh + * FGA-002 Bootprom version 3.1 is released May 28, 1990, coprighted by FORCE Computers GmbH * * Bootprom PIT setup sequence - To start VMEPROM, the rotary switches must both be set to 'F' (PI/T #1 port A) * -------------------------------------------------------------------------------------------------------------- @@ -1021,30 +1021,30 @@ void fga002_device::check_interrupts()() */ /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP (1988, fccpu30, 0, 0, cpu30, cpu30, driver_device, 0, "Force Computers Gmbh", "SYS68K/CPU-30", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW | MACHINE_TYPE_COMPUTER ) -COMP (1988, fccpu30x, fccpu30, 0, cpu30x, cpu30, cpu30_state, cpu30x, "Force Computers Gmbh", "SYS68K/CPU-30X", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW | MACHINE_TYPE_COMPUTER ) -COMP (1988, fccpu30xa, fccpu30, 0, cpu30xa, cpu30, cpu30_state, cpu30xa, "Force Computers Gmbh", "SYS68K/CPU-30XA", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW | MACHINE_TYPE_COMPUTER ) -COMP (1988, fccpu30za, fccpu30, 0, cpu30za, cpu30, cpu30_state, cpu30za, "Force Computers Gmbh", "SYS68K/CPU-30ZA", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW | MACHINE_TYPE_COMPUTER ) -COMP (1996, fccpu30zbe, fccpu30, 0, cpu30zbe, cpu30, cpu30_state, cpu30zbe, "Force Computers Gmbh", "SYS68K/CPU-30ZBE", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW | MACHINE_TYPE_COMPUTER ) -COMP (1996, fccpu30be8, fccpu30, 0, cpu30be8, cpu30, cpu30_state, cpu30be8, "Force Computers Gmbh", "SYS68K/CPU-30BE/8", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW | MACHINE_TYPE_COMPUTER ) -COMP (1996, fccpu30be16, fccpu30, 0, cpu30be16, cpu30, cpu30_state, cpu30be16, "Force Computers Gmbh", "SYS68K/CPU-30BE/16", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW | MACHINE_TYPE_COMPUTER ) -COMP (1996, fccpu30lite4, fccpu30, 0, cpu30lite4, cpu30, cpu30_state, cpu30lite4, "Force Computers Gmbh", "SYS68K/CPU-30Lite/4", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW | MACHINE_TYPE_COMPUTER ) -COMP (1996, fccpu30lite8, fccpu30, 0, cpu30lite8, cpu30, cpu30_state, cpu30lite8, "Force Computers Gmbh", "SYS68K/CPU-30Lite/8", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW | MACHINE_TYPE_COMPUTER ) -COMP (199?, fccpu33, fccpu30, 0, cpu33, cpu30, cpu30_state, cpu33, "Force Computers Gmbh", "SYS68K/CPU-33", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW | MACHINE_TYPE_COMPUTER ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ +COMP (1988, fccpu30, 0, 0, cpu30, cpu30, cpu30_state, 0, "Force Computers GmbH", "SYS68K/CPU-30", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW | MACHINE_TYPE_COMPUTER ) +COMP (1988, fccpu30x, fccpu30, 0, cpu30x, cpu30, cpu30_state, cpu30x, "Force Computers GmbH", "SYS68K/CPU-30X", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW | MACHINE_TYPE_COMPUTER ) +COMP (1988, fccpu30xa, fccpu30, 0, cpu30xa, cpu30, cpu30_state, cpu30xa, "Force Computers GmbH", "SYS68K/CPU-30XA", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW | MACHINE_TYPE_COMPUTER ) +COMP (1988, fccpu30za, fccpu30, 0, cpu30za, cpu30, cpu30_state, cpu30za, "Force Computers GmbH", "SYS68K/CPU-30ZA", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW | MACHINE_TYPE_COMPUTER ) +COMP (1996, fccpu30zbe, fccpu30, 0, cpu30zbe, cpu30, cpu30_state, cpu30zbe, "Force Computers GmbH", "SYS68K/CPU-30ZBE", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW | MACHINE_TYPE_COMPUTER ) +COMP (1996, fccpu30be8, fccpu30, 0, cpu30be8, cpu30, cpu30_state, cpu30be8, "Force Computers GmbH", "SYS68K/CPU-30BE/8", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW | MACHINE_TYPE_COMPUTER ) +COMP (1996, fccpu30be16, fccpu30, 0, cpu30be16, cpu30, cpu30_state, cpu30be16, "Force Computers GmbH", "SYS68K/CPU-30BE/16", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW | MACHINE_TYPE_COMPUTER ) +COMP (1996, fccpu30lite4, fccpu30, 0, cpu30lite4, cpu30, cpu30_state, cpu30lite4, "Force Computers GmbH", "SYS68K/CPU-30Lite/4", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW | MACHINE_TYPE_COMPUTER ) +COMP (1996, fccpu30lite8, fccpu30, 0, cpu30lite8, cpu30, cpu30_state, cpu30lite8, "Force Computers GmbH", "SYS68K/CPU-30Lite/8", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW | MACHINE_TYPE_COMPUTER ) +COMP (199?, fccpu33, fccpu30, 0, cpu33, cpu30, cpu30_state, cpu33, "Force Computers GmbH", "SYS68K/CPU-33", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW | MACHINE_TYPE_COMPUTER ) /* Below are not fully configured variants defaulting to generic cpu30 */ /* The following boards were manufactured for Ericsson to be used in their fixed network switches. They support hot swap and the Ericsson APNbus */ /* SYS68K/CPU-30SEN-R/32 assumed as generic until spec is found. 25 MHz 68030 based CPU board with DMAC, 32 MByte Shared RAM capacity and VMEPROM. 4 MByte System Flash memory, SCSI via on-board EAGLE Controller FC68165 with DMA, 2 serial I/O ports, APNbus interface, VMEPROM firmware */ -COMP (1997, fccpu30senr, 0, 0, cpu30, cpu30, driver_device, 0, "Force Computers Gmbh", "SYS68K/CPU-30SEN-R", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW | MACHINE_TYPE_COMPUTER ) +COMP (1997, fccpu30senr, 0, 0, cpu30, cpu30, cpu30_state, 0, "Force Computers GmbH", "SYS68K/CPU-30SEN-R", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW | MACHINE_TYPE_COMPUTER ) /* SYS68K/CPU-30SEN-R-501/4 assumed as generic until spec is found. 25 MHz 68030 based CPU board with DMAC, 4 MByte Shared RAM capacity and VMEPROM. 48V DC/DC onboard, metric backplane connectors, BYB501 PCB formfactor (TVJ807). 4 MByte System Flash memory, SCSI via onboard EAGLEController FC68165 with DMA, 2 serial I/O ports, APNbus interface, VMEPROM firmware*/ -COMP (1997, fccpu30senr501, 0, 0, cpu30, cpu30, driver_device, 0, "Force Computers Gmbh", "SYS68K/CPU-30SEN-R-501", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW | MACHINE_TYPE_COMPUTER ) +COMP (1997, fccpu30senr501, 0, 0, cpu30, cpu30, cpu30_state, 0, "Force Computers GmbH", "SYS68K/CPU-30SEN-R-501", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW | MACHINE_TYPE_COMPUTER ) /*CPU-33XB MC68030 25MHz CPU, 68882 FPC, 1MB, 2 SERIAL, RS-232, VME BOARD*/ -//COMP (1990, cpu33xb, 0, 0, cpu30, cpu30, driver_device, 0, "Force Computers Gmbh", "SYS68K/CPU-33XB", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW | MACHINE_TYPE_COMPUTER ) +//COMP (1990, cpu33xb, 0, 0, cpu30, cpu30, cpu30_state, 0, "Force Computers GmbH", "SYS68K/CPU-33XB", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW | MACHINE_TYPE_COMPUTER ) /*CPU-33B/4 MC68030 25MHz CPU, 68882 FPC, 1MB, 2 SERIAL, RS-232, VME BOARD*/ -//COMP (1990, cpu30b4, 0, 0, cpu30, cpu30, driver_device, 0, "Force Computers Gmbh", "SYS68K/CPU-33B/4", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW | MACHINE_TYPE_COMPUTER ) +//COMP (1990, cpu30b4, 0, 0, cpu30, cpu30, cpu30_state, 0, "Force Computers GmbH", "SYS68K/CPU-33B/4", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW | MACHINE_TYPE_COMPUTER ) diff --git a/src/mame/drivers/fcombat.cpp b/src/mame/drivers/fcombat.cpp index d0b76df12cd..c39e71b8380 100644 --- a/src/mame/drivers/fcombat.cpp +++ b/src/mame/drivers/fcombat.cpp @@ -286,7 +286,7 @@ void fcombat_state::machine_reset() m_ty = 0; } -static MACHINE_CONFIG_START( fcombat, fcombat_state ) +static MACHINE_CONFIG_START( fcombat ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 10000000/3) diff --git a/src/mame/drivers/fcrash.cpp b/src/mame/drivers/fcrash.cpp index 37e8f9d0410..9b6b1545431 100644 --- a/src/mame/drivers/fcrash.cpp +++ b/src/mame/drivers/fcrash.cpp @@ -1559,7 +1559,7 @@ MACHINE_RESET_MEMBER(cps_state,fcrash) m_sample_select2 = 0; } -static MACHINE_CONFIG_START( fcrash, cps_state ) +static MACHINE_CONFIG_START( fcrash ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 10000000) @@ -1606,12 +1606,12 @@ static MACHINE_CONFIG_START( fcrash, cps_state ) MCFG_SOUND_ADD("msm1", MSM5205, 24000000/64) /* ? */ MCFG_MSM5205_VCLK_CB(WRITELINE(cps_state, m5205_int1)) /* interrupt function */ - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S96_4B) /* 4KHz 4-bit */ + MCFG_MSM5205_PRESCALER_SELECTOR(S96_4B) /* 4KHz 4-bit */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) MCFG_SOUND_ADD("msm2", MSM5205, 24000000/64) /* ? */ MCFG_MSM5205_VCLK_CB(WRITELINE(cps_state, m5205_int2)) /* interrupt function */ - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S96_4B) /* 4KHz 4-bit */ + MCFG_MSM5205_PRESCALER_SELECTOR(S96_4B) /* 4KHz 4-bit */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) MACHINE_CONFIG_END @@ -1623,7 +1623,7 @@ static MACHINE_CONFIG_DERIVED( cawingbl, fcrash ) MCFG_MACHINE_START_OVERRIDE(cps_state, cawingbl) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( kodb, cps_state ) +static MACHINE_CONFIG_START( kodb ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 10000000) @@ -1661,11 +1661,11 @@ static MACHINE_CONFIG_START( kodb, cps_state ) MCFG_SOUND_ROUTE(1, "mono", 0.35) /* CPS PPU is fed by a 16mhz clock,pin 117 outputs a 4mhz clock which is divided by 4 using 2 74ls74 */ - MCFG_OKIM6295_ADD("oki", XTAL_16MHz/4/4, OKIM6295_PIN7_HIGH) // pin 7 can be changed by the game code, see f006 on z80 + MCFG_OKIM6295_ADD("oki", XTAL_16MHz/4/4, PIN7_HIGH) // pin 7 can be changed by the game code, see f006 on z80 MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( sf2mdt, cps_state ) +static MACHINE_CONFIG_START( sf2mdt ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 12000000) @@ -1705,12 +1705,12 @@ static MACHINE_CONFIG_START( sf2mdt, cps_state ) /* has 2x MSM5205 instead of OKI6295 */ MCFG_SOUND_ADD("msm1", MSM5205, 24000000/64) /* ? */ MCFG_MSM5205_VCLK_CB(WRITELINE(cps_state, m5205_int1)) /* interrupt function */ - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S96_4B) /* 4KHz 4-bit */ + MCFG_MSM5205_PRESCALER_SELECTOR(S96_4B) /* 4KHz 4-bit */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) MCFG_SOUND_ADD("msm2", MSM5205, 24000000/64) /* ? */ MCFG_MSM5205_VCLK_CB(WRITELINE(cps_state, m5205_int2)) /* interrupt function */ - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S96_4B) /* 4KHz 4-bit */ + MCFG_MSM5205_PRESCALER_SELECTOR(S96_4B) /* 4KHz 4-bit */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) MACHINE_CONFIG_END @@ -1719,7 +1719,7 @@ static MACHINE_CONFIG_DERIVED( sf2b, sf2mdt) MCFG_CPU_PROGRAM_MAP(sf2b_map) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( knightsb, cps_state ) +static MACHINE_CONFIG_START( knightsb ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 24000000 / 2) @@ -1759,12 +1759,12 @@ static MACHINE_CONFIG_START( knightsb, cps_state ) /* has 2x MSM5205 instead of OKI6295 */ MCFG_SOUND_ADD("msm1", MSM5205, 24000000/64) /* ? */ MCFG_MSM5205_VCLK_CB(WRITELINE(cps_state, m5205_int1)) /* interrupt function */ - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S96_4B) /* 4KHz 4-bit */ + MCFG_MSM5205_PRESCALER_SELECTOR(S96_4B) /* 4KHz 4-bit */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) MCFG_SOUND_ADD("msm2", MSM5205, 24000000/64) /* ? */ MCFG_MSM5205_VCLK_CB(WRITELINE(cps_state, m5205_int2)) /* interrupt function */ - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S96_4B) /* 4KHz 4-bit */ + MCFG_MSM5205_PRESCALER_SELECTOR(S96_4B) /* 4KHz 4-bit */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) MACHINE_CONFIG_END @@ -2101,7 +2101,7 @@ MACHINE_START_MEMBER(cps_state, dinopic) m_sprite_x_offset = 0; } -static MACHINE_CONFIG_START( dinopic, cps_state ) +static MACHINE_CONFIG_START( dinopic ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 12000000) @@ -2135,7 +2135,7 @@ static MACHINE_CONFIG_START( dinopic, cps_state ) MCFG_GENERIC_LATCH_8_ADD("soundlatch") - MCFG_OKIM6295_ADD("oki", 1000000, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", 1000000, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30) MACHINE_CONFIG_END @@ -2261,7 +2261,7 @@ DRIVER_INIT_MEMBER(cps_state, dinopic) // sound cpu is (239 V 249521 VC5006 KABUKI DL-030P-110V) - recycled Kabuki Z80 from genuine Capcom HW? // 3x8 dsws -static MACHINE_CONFIG_START( sgyxz, cps_state ) +static MACHINE_CONFIG_START( sgyxz ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 12000000) MCFG_CPU_PROGRAM_MAP(sgyxz_map) @@ -2299,7 +2299,7 @@ static MACHINE_CONFIG_START( sgyxz, cps_state ) MCFG_SOUND_ROUTE(1, "mono", 0.35) /* CPS PPU is fed by a 16mhz clock,pin 117 outputs a 4mhz clock which is divided by 4 using 2 74ls74 */ - MCFG_OKIM6295_ADD("oki", XTAL_16MHz/4/4, OKIM6295_PIN7_HIGH) // pin 7 can be changed by the game code, see f006 on z80 + MCFG_OKIM6295_ADD("oki", XTAL_16MHz/4/4, PIN7_HIGH) // pin 7 can be changed by the game code, see f006 on z80 MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30) MACHINE_CONFIG_END @@ -2354,7 +2354,7 @@ MACHINE_START_MEMBER(cps_state, punipic) m_sprite_x_offset = 0; } -static MACHINE_CONFIG_START( punipic, cps_state ) +static MACHINE_CONFIG_START( punipic ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 12000000) @@ -2388,7 +2388,7 @@ static MACHINE_CONFIG_START( punipic, cps_state ) MCFG_GENERIC_LATCH_8_ADD("soundlatch") - MCFG_OKIM6295_ADD("oki", 1000000, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", 1000000, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30) MACHINE_CONFIG_END @@ -2549,7 +2549,7 @@ DRIVER_INIT_MEMBER(cps_state, punipic3) // ************************************************************************* SF2M1 -static MACHINE_CONFIG_START( sf2m1, cps_state ) +static MACHINE_CONFIG_START( sf2m1 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_12MHz ) @@ -2580,7 +2580,7 @@ static MACHINE_CONFIG_START( sf2m1, cps_state ) MCFG_YM2151_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) MCFG_SOUND_ROUTE(0, "mono", 0.35) MCFG_SOUND_ROUTE(1, "mono", 0.35) - MCFG_OKIM6295_ADD("oki", XTAL_16MHz/4/4, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", XTAL_16MHz/4/4, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30) MACHINE_CONFIG_END @@ -2882,7 +2882,7 @@ MACHINE_START_MEMBER(cps_state, slampic) m_sprite_x_offset = 0; } -static MACHINE_CONFIG_START( slampic, cps_state ) +static MACHINE_CONFIG_START( slampic ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 12000000) @@ -2914,7 +2914,7 @@ static MACHINE_CONFIG_START( slampic, cps_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", 1000000, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", 1000000, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30) MACHINE_CONFIG_END @@ -2983,7 +2983,7 @@ static ADDRESS_MAP_START( varthb_map, AS_PROGRAM, 16, cps_state ) AM_RANGE(0xff0000, 0xffffff) AM_RAM AM_SHARE("mainram") ADDRESS_MAP_END -static MACHINE_CONFIG_START( varthb, cps_state ) +static MACHINE_CONFIG_START( varthb ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 12000000) @@ -3021,7 +3021,7 @@ static MACHINE_CONFIG_START( varthb, cps_state ) MCFG_SOUND_ROUTE(0, "mono", 0.35) MCFG_SOUND_ROUTE(1, "mono", 0.35) - MCFG_OKIM6295_ADD("oki", XTAL_16MHz/4/4, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", XTAL_16MHz/4/4, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30) MACHINE_CONFIG_END diff --git a/src/mame/drivers/feversoc.cpp b/src/mame/drivers/feversoc.cpp index 7a343c7aae1..b7a98d826c8 100644 --- a/src/mame/drivers/feversoc.cpp +++ b/src/mame/drivers/feversoc.cpp @@ -273,7 +273,7 @@ WRITE16_MEMBER(feversoc_state::feversoc_irq_ack) m_maincpu->set_input_line(8, CLEAR_LINE); } -static MACHINE_CONFIG_START( feversoc, feversoc_state ) +static MACHINE_CONFIG_START( feversoc ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",SH2,MASTER_CLOCK) @@ -296,7 +296,7 @@ static MACHINE_CONFIG_START( feversoc, feversoc_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", MASTER_CLOCK/16, OKIM6295_PIN7_LOW) //pin 7 & frequency not verified (clock should be 28,6363 / n) + MCFG_OKIM6295_ADD("oki", MASTER_CLOCK/16, PIN7_LOW) //pin 7 & frequency not verified (clock should be 28,6363 / n) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.6) MCFG_EEPROM_SERIAL_93C56_ADD("eeprom") diff --git a/src/mame/drivers/fgoal.cpp b/src/mame/drivers/fgoal.cpp index 282dfc6746d..6545b82484b 100644 --- a/src/mame/drivers/fgoal.cpp +++ b/src/mame/drivers/fgoal.cpp @@ -364,7 +364,7 @@ void fgoal_state::machine_reset() m_prev_coin = 0; } -static MACHINE_CONFIG_START( fgoal, fgoal_state ) +static MACHINE_CONFIG_START( fgoal ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6800, 10065000 / 10) /* ? */ @@ -437,5 +437,5 @@ ROM_START( fgoala ) ROM_END -GAME( 1979, fgoal, 0, fgoal, fgoal, driver_device, 0, ROT90, "Taito", "Field Goal (set 1)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1979, fgoala, fgoal, fgoal, fgoal, driver_device, 0, ROT90, "Taito", "Field Goal (set 2)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1979, fgoal, 0, fgoal, fgoal, fgoal_state, 0, ROT90, "Taito", "Field Goal (set 1)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1979, fgoala, fgoal, fgoal, fgoal, fgoal_state, 0, ROT90, "Taito", "Field Goal (set 2)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/fidel6502.cpp b/src/mame/drivers/fidel6502.cpp index 691e397edb6..3e6f9951685 100644 --- a/src/mame/drivers/fidel6502.cpp +++ b/src/mame/drivers/fidel6502.cpp @@ -1440,7 +1440,7 @@ INPUT_PORTS_END Machine Drivers ******************************************************************************/ -static MACHINE_CONFIG_START( rsc, fidel6502_state ) +static MACHINE_CONFIG_START( rsc ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, 1800000) // measured approx 1.81MHz @@ -1468,7 +1468,7 @@ static MACHINE_CONFIG_START( rsc, fidel6502_state ) MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( csc, fidel6502_state ) +static MACHINE_CONFIG_START( csc ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, XTAL_3_9MHz/2) // from 3.9MHz resonator @@ -1513,7 +1513,7 @@ static MACHINE_CONFIG_DERIVED( su9, csc ) MCFG_DEFAULT_LAYOUT(layout_fidel_su9) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( eas, fidel6502_state ) +static MACHINE_CONFIG_START( eas ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", R65C02, XTAL_3MHz) @@ -1557,7 +1557,7 @@ static MACHINE_CONFIG_DERIVED( eag, eas ) MCFG_DEFAULT_LAYOUT(layout_fidel_eag) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( sc9, fidel6502_state ) +static MACHINE_CONFIG_START( sc9 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, 1400000) // from ceramic resonator "681 JSA", measured @@ -1598,7 +1598,7 @@ static MACHINE_CONFIG_DERIVED( playmatic, sc9 ) MCFG_DEFAULT_LAYOUT(layout_fidel_playmatic) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( sc12, fidel6502_state ) +static MACHINE_CONFIG_START( sc12 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", R65C02, XTAL_4MHz) @@ -1623,7 +1623,7 @@ static MACHINE_CONFIG_START( sc12, fidel6502_state ) MCFG_SOFTWARE_LIST_ADD("cart_list", "fidel_scc") MACHINE_CONFIG_END -static MACHINE_CONFIG_START( fexcel, fidel6502_state ) +static MACHINE_CONFIG_START( fexcel ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M65SC02, XTAL_12MHz/4) // G65SC102P-3, 12.0M ceramic resonator @@ -1707,7 +1707,7 @@ static MACHINE_CONFIG_DERIVED( fexceld, fexcelb ) MCFG_DEFAULT_LAYOUT(layout_fidel_exd) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( fdes2100d, fidel6502_state ) +static MACHINE_CONFIG_START( fdes2100d ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M65C02, XTAL_6MHz) // W65C02P-6 @@ -1733,7 +1733,7 @@ static MACHINE_CONFIG_DERIVED( fdes2000d, fdes2100d ) MCFG_CPU_PROGRAM_MAP(fdesdis_map) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( fphantom, fidel6502_state ) +static MACHINE_CONFIG_START( fphantom ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", R65C02, XTAL_4_9152MHz) // R65C02P4 @@ -1752,7 +1752,7 @@ static MACHINE_CONFIG_START( fphantom, fidel6502_state ) MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( chesster, fidel6502_state ) +static MACHINE_CONFIG_START( chesster ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", R65C02, XTAL_5MHz) // RP65C02G @@ -2203,54 +2203,54 @@ ROM_END Drivers ******************************************************************************/ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT, COMPANY, FULLNAME, FLAGS */ -CONS( 1981, reversic, 0, 0, rsc, rsc, driver_device, 0, "Fidelity Electronics", "Reversi Sensory Challenger (green version)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) - -CONS( 1981, csc, 0, 0, csc, csc, driver_device, 0, "Fidelity Electronics", "Champion Sensory Chess Challenger (English)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1981, cscsp, csc, 0, csc, cscg, driver_device, 0, "Fidelity Electronics", "Champion Sensory Chess Challenger (Spanish)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1981, cscg, csc, 0, csc, cscg, driver_device, 0, "Fidelity Electronics", "Champion Sensory Chess Challenger (German)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1981, cscfr, csc, 0, csc, cscg, driver_device, 0, "Fidelity Electronics", "Champion Sensory Chess Challenger (French)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) - -CONS( 1983, super9cc, 0, 0, su9, su9, driver_device, 0, "Fidelity Electronics", "Super 9 Sensory Chess Challenger (English)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1983, super9ccsp, super9cc, 0, su9, su9g, driver_device, 0, "Fidelity Electronics", "Super 9 Sensory Chess Challenger (Spanish)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1983, super9ccg, super9cc, 0, su9, su9g, driver_device, 0, "Fidelity Electronics", "Super 9 Sensory Chess Challenger (German)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1983, super9ccfr, super9cc, 0, su9, su9g, driver_device, 0, "Fidelity Electronics", "Super 9 Sensory Chess Challenger (French)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) - -CONS( 1983, feasbu, 0, 0, eas, eas, driver_device, 0, "Fidelity Electronics", "Elite A/S Challenger (Budapest program, English)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1983, feasbusp, feasbu, 0, eas, easg, driver_device, 0, "Fidelity Electronics", "Elite A/S Challenger (Budapest program, Spanish)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1983, feasbug, feasbu, 0, eas, easg, driver_device, 0, "Fidelity Electronics", "Elite A/S Challenger (Budapest program, German)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1983, feasbufr, feasbu, 0, eas, easg, driver_device, 0, "Fidelity Electronics", "Elite A/S Challenger (Budapest program, French)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1984, feasgla, feasbu, 0, eas, eas, driver_device, 0, "Fidelity Electronics", "Elite A/S Challenger (Glasgow program, English)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1984, feasglasp, feasbu, 0, eas, easg, driver_device, 0, "Fidelity Electronics", "Elite A/S Challenger (Glasgow program, Spanish)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1984, feasglag, feasbu, 0, eas, easg, driver_device, 0, "Fidelity Electronics", "Elite A/S Challenger (Glasgow program, German)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1984, feasglafr, feasbu, 0, eas, easg, driver_device, 0, "Fidelity Electronics", "Elite A/S Challenger (Glasgow program, French)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) - -CONS( 1986, feag2100, 0, 0, eag, eag, driver_device, 0, "Fidelity Electronics", "Elite Avant Garde 2100 (English)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1986, feag2100sp, feag2100, 0, eag, eagg, driver_device, 0, "Fidelity Electronics", "Elite Avant Garde 2100 (Spanish)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1986, feag2100g, feag2100, 0, eag, eagg, driver_device, 0, "Fidelity Electronics", "Elite Avant Garde 2100 (German)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1986, feag2100fr, feag2100, 0, eag, eagg, driver_device, 0, "Fidelity Electronics", "Elite Avant Garde 2100 (French)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) - -CONS( 1982, fscc9, 0, 0, sc9, sc12, driver_device, 0, "Fidelity Electronics", "Sensory Chess Challenger 9", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1982, fscc9b, fscc9, 0, sc9b, sc12, driver_device, 0, "Fidelity Electronics", "Sensory Chess Challenger 9 (rev. B)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1983, fscc9ps, fscc9, 0, playmatic, playmatic, driver_device, 0, "Fidelity Electronics", "Sensory 9 Playmatic 'S'", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) // Fidelity West Germany - -CONS( 1984, fscc12, 0, 0, sc12, sc12, driver_device, 0, "Fidelity Electronics", "Sensory Chess Challenger 12-B", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) - -CONS( 1987, fexcel, 0, 0, fexcelb, fexcelb, driver_device, 0, "Fidelity Electronics", "The Excellence (model 6080B)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1987, fexcelv, fexcel, 0, fexcelv, fexcelv, driver_device, 0, "Fidelity Electronics", "Voice Excellence", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1987, fexceld, fexcel, 0, fexceld, fexcelb, driver_device, 0, "Fidelity Electronics", "Excel Display", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1985, fexcel12, fexcel, 0, fexcel, fexcel, driver_device, 0, "Fidelity Electronics", "The Excellence (model EP12, set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) // 1st version of The Excellence -CONS( 1985, fexcel124, fexcel, 0, fexcel4, fexcel, driver_device, 0, "Fidelity Electronics", "The Excellence (model EP12, set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1985, fexcela, fexcel, 0, fexcel, fexcel, driver_device, 0, "Fidelity Electronics", "The Excellence (model 6080)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) - -CONS( 1986, fexcelp, 0, 0, fexcelp, fexcel, driver_device, 0, "Fidelity Electronics", "The Par Excellence", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1986, fexcelpb, fexcelp, 0, fexcelp, fexcel, driver_device, 0, "Fidelity Electronics", "The Par Excellence (rev. B)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1986, granits, fexcelp, 0, granits, fexcel, driver_device, 0, "hack (RCS)", "Granit 'S'", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1988, fdes2000, fexcelp, 0, fdes2000, fdes, driver_device, 0, "Fidelity Electronics", "Designer 2000", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) // Excellence series hardware -CONS( 1988, fdes2100, fexcelp, 0, fdes2100, fdes, driver_device, 0, "Fidelity Electronics", "Designer 2100", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) // " - -CONS( 1988, fdes2100d, 0, 0, fdes2100d, fdesdis, fidel6502_state, fdesdis, "Fidelity Electronics", "Designer 2100 Display (rev. B)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1988, fdes2000d, fdes2100d,0, fdes2000d, fdesdis, fidel6502_state, fdesdis, "Fidelity Electronics", "Designer 2000 Display", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY, FULLNAME, FLAGS */ +CONS( 1981, reversic, 0, 0, rsc, rsc, fidel6502_state, 0, "Fidelity Electronics", "Reversi Sensory Challenger (green version)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) + +CONS( 1981, csc, 0, 0, csc, csc, fidel6502_state, 0, "Fidelity Electronics", "Champion Sensory Chess Challenger (English)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1981, cscsp, csc, 0, csc, cscg, fidel6502_state, 0, "Fidelity Electronics", "Champion Sensory Chess Challenger (Spanish)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1981, cscg, csc, 0, csc, cscg, fidel6502_state, 0, "Fidelity Electronics", "Champion Sensory Chess Challenger (German)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1981, cscfr, csc, 0, csc, cscg, fidel6502_state, 0, "Fidelity Electronics", "Champion Sensory Chess Challenger (French)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) + +CONS( 1983, super9cc, 0, 0, su9, su9, fidel6502_state, 0, "Fidelity Electronics", "Super 9 Sensory Chess Challenger (English)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1983, super9ccsp, super9cc, 0, su9, su9g, fidel6502_state, 0, "Fidelity Electronics", "Super 9 Sensory Chess Challenger (Spanish)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1983, super9ccg, super9cc, 0, su9, su9g, fidel6502_state, 0, "Fidelity Electronics", "Super 9 Sensory Chess Challenger (German)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1983, super9ccfr, super9cc, 0, su9, su9g, fidel6502_state, 0, "Fidelity Electronics", "Super 9 Sensory Chess Challenger (French)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) + +CONS( 1983, feasbu, 0, 0, eas, eas, fidel6502_state, 0, "Fidelity Electronics", "Elite A/S Challenger (Budapest program, English)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1983, feasbusp, feasbu, 0, eas, easg, fidel6502_state, 0, "Fidelity Electronics", "Elite A/S Challenger (Budapest program, Spanish)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1983, feasbug, feasbu, 0, eas, easg, fidel6502_state, 0, "Fidelity Electronics", "Elite A/S Challenger (Budapest program, German)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1983, feasbufr, feasbu, 0, eas, easg, fidel6502_state, 0, "Fidelity Electronics", "Elite A/S Challenger (Budapest program, French)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1984, feasgla, feasbu, 0, eas, eas, fidel6502_state, 0, "Fidelity Electronics", "Elite A/S Challenger (Glasgow program, English)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1984, feasglasp, feasbu, 0, eas, easg, fidel6502_state, 0, "Fidelity Electronics", "Elite A/S Challenger (Glasgow program, Spanish)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1984, feasglag, feasbu, 0, eas, easg, fidel6502_state, 0, "Fidelity Electronics", "Elite A/S Challenger (Glasgow program, German)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1984, feasglafr, feasbu, 0, eas, easg, fidel6502_state, 0, "Fidelity Electronics", "Elite A/S Challenger (Glasgow program, French)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) + +CONS( 1986, feag2100, 0, 0, eag, eag, fidel6502_state, 0, "Fidelity Electronics", "Elite Avant Garde 2100 (English)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1986, feag2100sp, feag2100, 0, eag, eagg, fidel6502_state, 0, "Fidelity Electronics", "Elite Avant Garde 2100 (Spanish)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1986, feag2100g, feag2100, 0, eag, eagg, fidel6502_state, 0, "Fidelity Electronics", "Elite Avant Garde 2100 (German)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1986, feag2100fr, feag2100, 0, eag, eagg, fidel6502_state, 0, "Fidelity Electronics", "Elite Avant Garde 2100 (French)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) + +CONS( 1982, fscc9, 0, 0, sc9, sc12, fidel6502_state, 0, "Fidelity Electronics", "Sensory Chess Challenger 9", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1982, fscc9b, fscc9, 0, sc9b, sc12, fidel6502_state, 0, "Fidelity Electronics", "Sensory Chess Challenger 9 (rev. B)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1983, fscc9ps, fscc9, 0, playmatic, playmatic, fidel6502_state, 0, "Fidelity Electronics", "Sensory 9 Playmatic 'S'", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) // Fidelity West Germany + +CONS( 1984, fscc12, 0, 0, sc12, sc12, fidel6502_state, 0, "Fidelity Electronics", "Sensory Chess Challenger 12-B", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) + +CONS( 1987, fexcel, 0, 0, fexcelb, fexcelb, fidel6502_state, 0, "Fidelity Electronics", "The Excellence (model 6080B)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1987, fexcelv, fexcel, 0, fexcelv, fexcelv, fidel6502_state, 0, "Fidelity Electronics", "Voice Excellence", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1987, fexceld, fexcel, 0, fexceld, fexcelb, fidel6502_state, 0, "Fidelity Electronics", "Excel Display", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1985, fexcel12, fexcel, 0, fexcel, fexcel, fidel6502_state, 0, "Fidelity Electronics", "The Excellence (model EP12, set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) // 1st version of The Excellence +CONS( 1985, fexcel124, fexcel, 0, fexcel4, fexcel, fidel6502_state, 0, "Fidelity Electronics", "The Excellence (model EP12, set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1985, fexcela, fexcel, 0, fexcel, fexcel, fidel6502_state, 0, "Fidelity Electronics", "The Excellence (model 6080)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) + +CONS( 1986, fexcelp, 0, 0, fexcelp, fexcel, fidel6502_state, 0, "Fidelity Electronics", "The Par Excellence", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1986, fexcelpb, fexcelp, 0, fexcelp, fexcel, fidel6502_state, 0, "Fidelity Electronics", "The Par Excellence (rev. B)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1986, granits, fexcelp, 0, granits, fexcel, fidel6502_state, 0, "hack (RCS)", "Granit 'S'", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1988, fdes2000, fexcelp, 0, fdes2000, fdes, fidel6502_state, 0, "Fidelity Electronics", "Designer 2000", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) // Excellence series hardware +CONS( 1988, fdes2100, fexcelp, 0, fdes2100, fdes, fidel6502_state, 0, "Fidelity Electronics", "Designer 2100", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) // " + +CONS( 1988, fdes2100d, 0, 0, fdes2100d, fdesdis, fidel6502_state, fdesdis, "Fidelity Electronics", "Designer 2100 Display (rev. B)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1988, fdes2000d, fdes2100d,0, fdes2000d, fdesdis, fidel6502_state, fdesdis, "Fidelity Electronics", "Designer 2000 Display", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) CONS( 1988, fphantom, 0, 0, fphantom, fphantom, fidel6502_state, fphantom, "Fidelity Electronics", "Phantom (Fidelity)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/fidel68k.cpp b/src/mame/drivers/fidel68k.cpp index 552c232fa4e..1d60d35c240 100644 --- a/src/mame/drivers/fidel68k.cpp +++ b/src/mame/drivers/fidel68k.cpp @@ -389,7 +389,7 @@ INPUT_PORTS_END Machine Drivers ******************************************************************************/ -static MACHINE_CONFIG_START( fexcel68k, fidel68k_state ) +static MACHINE_CONFIG_START( fexcel68k ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_12MHz) // HD68HC000P12 @@ -408,7 +408,7 @@ static MACHINE_CONFIG_START( fexcel68k, fidel68k_state ) MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( eag, fidel68k_state ) +static MACHINE_CONFIG_START( eag ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz) @@ -526,12 +526,12 @@ ROM_END Drivers ******************************************************************************/ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY, FULLNAME, FLAGS */ -CONS( 1987, fexcel68k, 0, 0, fexcel68k, fexcel68k, driver_device, 0, "Fidelity Electronics", "Excel 68000", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME, FLAGS */ +CONS( 1987, fexcel68k, 0, 0, fexcel68k, fexcel68k, fidel68k_state, 0, "Fidelity Electronics", "Excel 68000", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -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 ) -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 ) -CONS( 1990, feagv7, feagv2, 0, eagv7, eag, driver_device, 0, "Fidelity Electronics", "Elite Avant Garde (model 6117-7)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1990, feagv9, feagv2, 0, eagv9, eag, driver_device, 0, "Fidelity Electronics", "Elite Avant Garde (model 6117-9)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1990, feagv10, feagv2, 0, eagv10, eag, driver_device, 0, "Fidelity Electronics", "Elite Avant Garde (model 6117-10)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 2002, feagv11, feagv2, 0, eagv11, eag, driver_device, 0, "hack (Wilfried Bucke)", "Elite Avant Garde (model 6117-11)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +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 ) +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 ) +CONS( 1990, feagv7, feagv2, 0, eagv7, eag, fidel68k_state, 0, "Fidelity Electronics", "Elite Avant Garde (model 6117-7)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1990, feagv9, feagv2, 0, eagv9, eag, fidel68k_state, 0, "Fidelity Electronics", "Elite Avant Garde (model 6117-9)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1990, feagv10, feagv2, 0, eagv10, eag, fidel68k_state, 0, "Fidelity Electronics", "Elite Avant Garde (model 6117-10)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +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 ) diff --git a/src/mame/drivers/fidelmcs48.cpp b/src/mame/drivers/fidelmcs48.cpp index 64491ae1750..f38bec54bdf 100644 --- a/src/mame/drivers/fidelmcs48.cpp +++ b/src/mame/drivers/fidelmcs48.cpp @@ -144,7 +144,7 @@ INPUT_PORTS_END Machine Drivers ******************************************************************************/ -static MACHINE_CONFIG_START( sc6, fidelmcs48_state ) +static MACHINE_CONFIG_START( sc6 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8040, XTAL_11MHz) @@ -182,5 +182,5 @@ ROM_END Drivers ******************************************************************************/ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY, FULLNAME, FLAGS */ -CONS( 1982, fscc6, 0, 0, sc6, sc6, driver_device, 0, "Fidelity", "Sensory Chess Challenger 6", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +CONS( 1982, fscc6, 0, 0, sc6, sc6, fidelmcs48_state, 0, "Fidelity", "Sensory Chess Challenger 6", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) diff --git a/src/mame/drivers/fidelz80.cpp b/src/mame/drivers/fidelz80.cpp index 41d2180e40f..43e67f58071 100644 --- a/src/mame/drivers/fidelz80.cpp +++ b/src/mame/drivers/fidelz80.cpp @@ -1654,7 +1654,7 @@ INPUT_PORTS_END Machine Drivers ******************************************************************************/ -static MACHINE_CONFIG_START( bcc, fidelz80_state ) +static MACHINE_CONFIG_START( bcc ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_3_579545MHz) @@ -1671,7 +1671,7 @@ static MACHINE_CONFIG_START( bcc, fidelz80_state ) MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( scc, fidelz80_state ) +static MACHINE_CONFIG_START( scc ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_3_9MHz) @@ -1688,7 +1688,7 @@ static MACHINE_CONFIG_START( scc, fidelz80_state ) MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( cc10, fidelz80_state ) +static MACHINE_CONFIG_START( cc10 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_4MHz) @@ -1712,7 +1712,7 @@ static MACHINE_CONFIG_START( cc10, fidelz80_state ) MCFG_TIMER_DRIVER_ADD("beeper_off", fidelz80_state, beeper_off_callback) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( vcc, fidelz80_state ) +static MACHINE_CONFIG_START( vcc ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_4MHz) @@ -1738,7 +1738,7 @@ static MACHINE_CONFIG_START( vcc, fidelz80_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.75) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( vsc, fidelz80_state ) +static MACHINE_CONFIG_START( vsc ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_3_9MHz) // 3.9MHz resonator @@ -1766,7 +1766,7 @@ static MACHINE_CONFIG_START( vsc, fidelz80_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.75) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( vbrc, fidelz80_state ) +static MACHINE_CONFIG_START( vbrc ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_5MHz/2) @@ -1794,7 +1794,7 @@ static MACHINE_CONFIG_START( vbrc, fidelz80_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.75) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( dsc, fidelz80_state ) +static MACHINE_CONFIG_START( dsc ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_3_9MHz) // 3.9MHz resonator @@ -1999,28 +1999,28 @@ ROM_END Drivers ******************************************************************************/ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY, FULLNAME, FLAGS */ -CONS( 1978, cc10, 0, 0, cc10, cc10, driver_device, 0, "Fidelity Electronics", "Chess Challenger 10 (rev. B)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1979, cc7, 0, 0, bcc, bcc, driver_device, 0, "Fidelity Electronics", "Chess Challenger 7 (rev. B)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME, FLAGS */ +CONS( 1978, cc10, 0, 0, cc10, cc10, fidelz80_state, 0, "Fidelity Electronics", "Chess Challenger 10 (rev. B)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1979, cc7, 0, 0, bcc, bcc, fidelz80_state, 0, "Fidelity Electronics", "Chess Challenger 7 (rev. B)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1980, fscc8, 0, 0, scc, scc, driver_device, 0, "Fidelity Electronics", "Sensory Chess Challenger 8", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1980, fscc8, 0, 0, scc, scc, fidelz80_state, 0, "Fidelity Electronics", "Sensory Chess Challenger 8", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1979, vcc, 0, 0, vcc, vcc, driver_device, 0, "Fidelity Electronics", "Voice Chess Challenger (English)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1979, vccsp, vcc, 0, vcc, vccsp, driver_device, 0, "Fidelity Electronics", "Voice Chess Challenger (Spanish)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1979, vccg, vcc, 0, vcc, vccg, driver_device, 0, "Fidelity Electronics", "Voice Chess Challenger (German)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1979, vccfr, vcc, 0, vcc, vccfr, driver_device, 0, "Fidelity Electronics", "Voice Chess Challenger (French)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1979, vcc, 0, 0, vcc, vcc, fidelz80_state, 0, "Fidelity Electronics", "Voice Chess Challenger (English)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1979, vccsp, vcc, 0, vcc, vccsp, fidelz80_state, 0, "Fidelity Electronics", "Voice Chess Challenger (Spanish)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1979, vccg, vcc, 0, vcc, vccg, fidelz80_state, 0, "Fidelity Electronics", "Voice Chess Challenger (German)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1979, vccfr, vcc, 0, vcc, vccfr, fidelz80_state, 0, "Fidelity Electronics", "Voice Chess Challenger (French)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1980, uvc, vcc, 0, vcc, vcc, driver_device, 0, "Fidelity Electronics", "Advanced Voice Chess Challenger (English)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1980, uvcsp, vcc, 0, vcc, vccsp, driver_device, 0, "Fidelity Electronics", "Advanced Voice Chess Challenger (Spanish)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1980, uvcg, vcc, 0, vcc, vccg, driver_device, 0, "Fidelity Electronics", "Advanced Voice Chess Challenger (German)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1980, uvcfr, vcc, 0, vcc, vccfr, driver_device, 0, "Fidelity Electronics", "Advanced Voice Chess Challenger (French)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1980, uvc, vcc, 0, vcc, vcc, fidelz80_state, 0, "Fidelity Electronics", "Advanced Voice Chess Challenger (English)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1980, uvcsp, vcc, 0, vcc, vccsp, fidelz80_state, 0, "Fidelity Electronics", "Advanced Voice Chess Challenger (Spanish)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1980, uvcg, vcc, 0, vcc, vccg, fidelz80_state, 0, "Fidelity Electronics", "Advanced Voice Chess Challenger (German)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1980, uvcfr, vcc, 0, vcc, vccfr, fidelz80_state, 0, "Fidelity Electronics", "Advanced Voice Chess Challenger (French)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1980, vsc, 0, 0, vsc, vsc, driver_device, 0, "Fidelity Electronics", "Voice Sensory Chess Challenger (English)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1980, vscsp, vsc, 0, vsc, vscg, driver_device, 0, "Fidelity Electronics", "Voice Sensory Chess Challenger (Spanish)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1980, vscg, vsc, 0, vsc, vscg, driver_device, 0, "Fidelity Electronics", "Voice Sensory Chess Challenger (German)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1980, vscfr, vsc, 0, vsc, vscg, driver_device, 0, "Fidelity Electronics", "Voice Sensory Chess Challenger (French)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1980, vsc, 0, 0, vsc, vsc, fidelz80_state, 0, "Fidelity Electronics", "Voice Sensory Chess Challenger (English)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1980, vscsp, vsc, 0, vsc, vscg, fidelz80_state, 0, "Fidelity Electronics", "Voice Sensory Chess Challenger (Spanish)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1980, vscg, vsc, 0, vsc, vscg, fidelz80_state, 0, "Fidelity Electronics", "Voice Sensory Chess Challenger (German)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1980, vscfr, vsc, 0, vsc, vscg, fidelz80_state, 0, "Fidelity Electronics", "Voice Sensory Chess Challenger (French)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1979, vbrc, 0, 0, vbrc, vbrc, driver_device, 0, "Fidelity Electronics", "Voice Bridge Challenger", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) -CONS( 1980, bridgec3, vbrc, 0, vbrc, vbrc, driver_device, 0, "Fidelity Electronics", "Bridge Challenger III", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) +CONS( 1979, vbrc, 0, 0, vbrc, vbrc, fidelz80_state, 0, "Fidelity Electronics", "Voice Bridge Challenger", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) +CONS( 1980, bridgec3, vbrc, 0, vbrc, vbrc, fidelz80_state, 0, "Fidelity Electronics", "Bridge Challenger III", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) -CONS( 1981, damesc, 0, 0, dsc, dsc, driver_device, 0, "Fidelity Electronics", "Dame Sensory Challenger", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1981, damesc, 0, 0, dsc, dsc, fidelz80_state, 0, "Fidelity Electronics", "Dame Sensory Challenger", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) diff --git a/src/mame/drivers/finalizr.cpp b/src/mame/drivers/finalizr.cpp index ffb71f94274..1475eb8c3d8 100644 --- a/src/mame/drivers/finalizr.cpp +++ b/src/mame/drivers/finalizr.cpp @@ -260,7 +260,7 @@ void finalizr_state::machine_reset() m_irq_enable = 0; } -static MACHINE_CONFIG_START( finalizr, finalizr_state ) +static MACHINE_CONFIG_START( finalizr ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", KONAMI1, XTAL_18_432MHz/6) /* ??? */ @@ -363,5 +363,5 @@ ROM_END -GAME( 1985, finalizr, 0, finalizr, finalizr, driver_device, 0, ROT90, "Konami", "Finalizer - Super Transformation", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1985, finalizrb, finalizr, finalizr, finalizrb, driver_device, 0, ROT90, "bootleg", "Finalizer - Super Transformation (bootleg)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1985, finalizr, 0, finalizr, finalizr, finalizr_state, 0, ROT90, "Konami", "Finalizer - Super Transformation", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1985, finalizrb, finalizr, finalizr, finalizrb, finalizr_state, 0, ROT90, "bootleg", "Finalizer - Super Transformation (bootleg)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/fireball.cpp b/src/mame/drivers/fireball.cpp index f1c6ac2f2c6..f1333b21b5a 100644 --- a/src/mame/drivers/fireball.cpp +++ b/src/mame/drivers/fireball.cpp @@ -492,7 +492,7 @@ TIMER_DEVICE_CALLBACK_MEMBER( fireball_state::int_0 ) *************************/ -static MACHINE_CONFIG_START( fireball, fireball_state ) +static MACHINE_CONFIG_START( fireball ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8031, CPU_CLK) // MCFG_CPU_PROGRAM_MAP(fireball_map) @@ -526,5 +526,5 @@ ROM_END /************************* * Game Drivers * *************************/ -/* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS*/ -GAME( 1989, fireball, 0, fireball, fireball, driver_device, 0, ROT0, "Valco", "Fireball", MACHINE_MECHANICAL ) //1989 by rom name +// YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS +GAME( 1989, fireball, 0, fireball, fireball, fireball_state, 0, ROT0, "Valco", "Fireball", MACHINE_MECHANICAL ) //1989 by rom name diff --git a/src/mame/drivers/firebeat.cpp b/src/mame/drivers/firebeat.cpp index 888d0bc33e6..8b8b1d4275a 100644 --- a/src/mame/drivers/firebeat.cpp +++ b/src/mame/drivers/firebeat.cpp @@ -1278,7 +1278,7 @@ static SLOT_INTERFACE_START(firebeat_ata_devices) SLOT_INTERFACE("cdrom", ATAPI_FIXED_CDROM) SLOT_INTERFACE_END -static MACHINE_CONFIG_START( firebeat, firebeat_state ) +static MACHINE_CONFIG_START( firebeat ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", PPC403GCX, XTAL_64MHz) @@ -1338,7 +1338,7 @@ static MACHINE_CONFIG_START( firebeat, firebeat_state ) MCFG_INS8250_OUT_INT_CB(DEVWRITELINE(DEVICE_SELF_OWNER, firebeat_state, midi_uart_ch1_irq_callback)) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( firebeat2, firebeat_state ) +static MACHINE_CONFIG_START( firebeat2 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", PPC403GCX, XTAL_64MHz) diff --git a/src/mame/drivers/firefox.cpp b/src/mame/drivers/firefox.cpp index f4c337c75aa..c53c0be9c8f 100644 --- a/src/mame/drivers/firefox.cpp +++ b/src/mame/drivers/firefox.cpp @@ -710,7 +710,7 @@ GFXDECODE_END * *************************************/ -static MACHINE_CONFIG_START( firefox, firefox_state ) +static MACHINE_CONFIG_START( firefox ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809E, MASTER_XTAL/2) @@ -876,5 +876,5 @@ ROM_END * *************************************/ -GAME( 1984, firefox, 0, firefox, firefox, driver_device, 0, ROT0, "Atari", "Fire Fox (set 1)", 0 ) -GAME( 1984, firefoxa, firefox, firefox, firefox, driver_device, 0, ROT0, "Atari", "Fire Fox (set 2)", 0 ) +GAME( 1984, firefox, 0, firefox, firefox, firefox_state, 0, ROT0, "Atari", "Fire Fox (set 1)", 0 ) +GAME( 1984, firefoxa, firefox, firefox, firefox, firefox_state, 0, ROT0, "Atari", "Fire Fox (set 2)", 0 ) diff --git a/src/mame/drivers/firetrap.cpp b/src/mame/drivers/firetrap.cpp index ddcf4f0850a..a5e87c82127 100644 --- a/src/mame/drivers/firetrap.cpp +++ b/src/mame/drivers/firetrap.cpp @@ -626,7 +626,7 @@ void firetrap_state::machine_reset() m_coin_command_pending = 0; } -static MACHINE_CONFIG_START( firetrap, firetrap_state ) +static MACHINE_CONFIG_START( firetrap ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, FIRETRAP_XTAL/2) // 6 MHz @@ -662,11 +662,11 @@ static MACHINE_CONFIG_START( firetrap, firetrap_state ) MCFG_SOUND_ADD("msm", MSM5205, FIRETRAP_XTAL/32) // 375 kHz MCFG_MSM5205_VCLK_CB(WRITELINE(firetrap_state, firetrap_adpcm_int)) /* interrupt function */ - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S48_4B) /* 7.8125kHz */ + MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) /* 7.8125kHz */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( firetrapbl, firetrap_state ) +static MACHINE_CONFIG_START( firetrapbl ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, FIRETRAP_XTAL/2) // 6 MHz @@ -702,7 +702,7 @@ static MACHINE_CONFIG_START( firetrapbl, firetrap_state ) MCFG_SOUND_ADD("msm", MSM5205, FIRETRAP_XTAL/32) // 375 kHz MCFG_MSM5205_VCLK_CB(WRITELINE(firetrap_state, firetrap_adpcm_int)) /* interrupt function */ - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S48_4B) /* 7.8125kHz */ + MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) /* 7.8125kHz */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30) MACHINE_CONFIG_END @@ -970,7 +970,7 @@ ROM_END -GAME( 1986, firetrap, 0, firetrap, firetrap, driver_device, 0, ROT90, "Wood Place Inc. (Data East USA license)", "Fire Trap (US, set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, firetrapa, firetrap, firetrap, firetrap, driver_device, 0, ROT90, "Wood Place Inc. (Data East USA license)", "Fire Trap (US, set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, firetrapj, firetrap, firetrap, firetrapj, driver_device, 0, ROT90, "Wood Place Inc.", "Fire Trap (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, firetrapbl, firetrap, firetrapbl, firetrapbl, driver_device, 0, ROT90, "bootleg", "Fire Trap (Japan bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, firetrap, 0, firetrap, firetrap, firetrap_state, 0, ROT90, "Wood Place Inc. (Data East USA license)", "Fire Trap (US, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, firetrapa, firetrap, firetrap, firetrap, firetrap_state, 0, ROT90, "Wood Place Inc. (Data East USA license)", "Fire Trap (US, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, firetrapj, firetrap, firetrap, firetrapj, firetrap_state, 0, ROT90, "Wood Place Inc.", "Fire Trap (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, firetrapbl, firetrap, firetrapbl, firetrapbl, firetrap_state, 0, ROT90, "bootleg", "Fire Trap (Japan bootleg)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/firetrk.cpp b/src/mame/drivers/firetrk.cpp index a9500e8919e..52936390711 100644 --- a/src/mame/drivers/firetrk.cpp +++ b/src/mame/drivers/firetrk.cpp @@ -855,7 +855,7 @@ static GFXDECODE_START( montecar ) GFXDECODE_END -static MACHINE_CONFIG_START( firetrk, firetrk_state ) +static MACHINE_CONFIG_START( firetrk ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6800, MASTER_CLOCK/12) /* 750Khz during service mode */ @@ -1012,6 +1012,6 @@ ROM_START( montecar ) ROM_END -GAMEL(1977, superbug, 0, superbug, superbug, driver_device, 0, ROT270, "Atari (Kee Games)", "Super Bug", 0, layout_superbug ) -GAME( 1978, firetrk, 0, firetrk, firetrk, driver_device, 0, ROT270, "Atari", "Fire Truck / Smokey Joe", 0 ) -GAME( 1979, montecar, 0, montecar, montecar, driver_device, 0, ROT270, "Atari", "Monte Carlo", 0 ) +GAMEL(1977, superbug, 0, superbug, superbug, firetrk_state, 0, ROT270, "Atari (Kee Games)", "Super Bug", 0, layout_superbug ) +GAME( 1978, firetrk, 0, firetrk, firetrk, firetrk_state, 0, ROT270, "Atari", "Fire Truck / Smokey Joe", 0 ) +GAME( 1979, montecar, 0, montecar, montecar, firetrk_state, 0, ROT270, "Atari", "Monte Carlo", 0 ) diff --git a/src/mame/drivers/fitfight.cpp b/src/mame/drivers/fitfight.cpp index da1ddd3e295..541dc8dfb66 100644 --- a/src/mame/drivers/fitfight.cpp +++ b/src/mame/drivers/fitfight.cpp @@ -723,7 +723,7 @@ void fitfight_state::machine_reset() m_fof_700000_data = 0; } -static MACHINE_CONFIG_START( fitfight, fitfight_state ) +static MACHINE_CONFIG_START( fitfight ) MCFG_CPU_ADD("maincpu",M68000, 12000000) MCFG_CPU_PROGRAM_MAP(fitfight_main_map) @@ -755,11 +755,11 @@ static MACHINE_CONFIG_START( fitfight, fitfight_state ) MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", 1333333, OKIM6295_PIN7_LOW) // ~8080Hz ??? TODO: find out the real frequency + MCFG_OKIM6295_ADD("oki", 1333333, PIN7_LOW) // ~8080Hz ??? TODO: find out the real frequency MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( bbprot, fitfight_state ) +static MACHINE_CONFIG_START( bbprot ) MCFG_CPU_ADD("maincpu",M68000, 12000000) MCFG_CPU_PROGRAM_MAP(bbprot_main_map) @@ -782,7 +782,7 @@ static MACHINE_CONFIG_START( bbprot, fitfight_state ) MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", 1333333, OKIM6295_PIN7_LOW) // ~8080Hz ??? TODO: find out the real frequency + MCFG_OKIM6295_ADD("oki", 1333333, PIN7_LOW) // ~8080Hz ??? TODO: find out the real frequency MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -1021,7 +1021,7 @@ DRIVER_INIT_MEMBER(fitfight_state,hotmindff) /* GAME */ -GAME( 199?, fitfight, 0, fitfight, fitfight, fitfight_state, fitfight, ROT0, "bootleg", "Fit of Fighting", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 199?, histryma, 0, fitfight, histryma, fitfight_state, histryma, ROT0, "bootleg", "The History of Martial Arts", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 199?, bbprot, 0, bbprot, bbprot, fitfight_state, bbprot, ROT0, "", "unknown fighting game 'BB' (prototype)", MACHINE_IS_INCOMPLETE | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 199?, hotmindff, hotmind, fitfight, fitfight, fitfight_state, hotmindff, ROT0, "Playmark", "Hot Mind (Fit of Fighting hardware)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // need to fix scroll offsets + inputs +GAME( 199?, fitfight, 0, fitfight, fitfight, fitfight_state, fitfight, ROT0, "bootleg", "Fit of Fighting", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 199?, histryma, 0, fitfight, histryma, fitfight_state, histryma, ROT0, "bootleg", "The History of Martial Arts", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 199?, bbprot, 0, bbprot, bbprot, fitfight_state, bbprot, ROT0, "", "unknown fighting game 'BB' (prototype)", MACHINE_IS_INCOMPLETE | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 199?, hotmindff, hotmind, fitfight, fitfight, fitfight_state, hotmindff, ROT0, "Playmark", "Hot Mind (Fit of Fighting hardware)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // need to fix scroll offsets + inputs diff --git a/src/mame/drivers/fk1.cpp b/src/mame/drivers/fk1.cpp index 61ba3ffdf0f..bb36819802b 100644 --- a/src/mame/drivers/fk1.cpp +++ b/src/mame/drivers/fk1.cpp @@ -404,7 +404,7 @@ uint32_t fk1_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, c return 0; } -static MACHINE_CONFIG_START( fk1, fk1_state ) +static MACHINE_CONFIG_START( fk1 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80, XTAL_8MHz / 2) MCFG_CPU_PROGRAM_MAP(fk1_mem) @@ -474,5 +474,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1989, fk1, 0, 0, fk1, fk1, driver_device, 0, "Statni statek Klicany", "FK-1", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1989, fk1, 0, 0, fk1, fk1, fk1_state, 0, "Statni statek Klicany", "FK-1", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/flicker.cpp b/src/mame/drivers/flicker.cpp index 2d5747ed358..324381adfcf 100644 --- a/src/mame/drivers/flicker.cpp +++ b/src/mame/drivers/flicker.cpp @@ -207,7 +207,7 @@ sound to produce. We need to change this to just one pulse per actual sound. */ } -static MACHINE_CONFIG_START( flicker, flicker_state ) +static MACHINE_CONFIG_START( flicker ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I4004, XTAL_5MHz / 8) MCFG_CPU_PROGRAM_MAP(flicker_rom) @@ -228,5 +228,5 @@ ROM_START(flicker) ROM_LOAD("flicker.rom", 0x0000, 0x0400, CRC(c692e586) SHA1(5cabb28a074d18b589b5b8f700c57e1610071c68)) ROM_END -// YEAR GAME PARENT MACHINE INPUT CLASS INIT ORIENTATION COMPANY DESCRIPTION FLAGS -GAME(1974, flicker, 0, flicker, flicker, driver_device, 0, ROT0, "Dave Nutting Associates / Bally", "Flicker (prototype)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +// YEAR GAME PARENT MACHINE INPUT CLASS INIT ORIENTATION COMPANY DESCRIPTION FLAGS +GAME(1974, flicker, 0, flicker, flicker, flicker_state, 0, ROT0, "Dave Nutting Associates / Bally", "Flicker (prototype)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/flipjack.cpp b/src/mame/drivers/flipjack.cpp index 70bdc3f059f..cbd9408b1d2 100644 --- a/src/mame/drivers/flipjack.cpp +++ b/src/mame/drivers/flipjack.cpp @@ -435,7 +435,7 @@ void flipjack_state::machine_start() } -static MACHINE_CONFIG_START( flipjack, flipjack_state ) +static MACHINE_CONFIG_START( flipjack ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, MASTER_CLOCK/4) @@ -503,4 +503,4 @@ ROM_START( flipjack ) ROM_END -GAME( 1983?, flipjack, 0, flipjack, flipjack, driver_device, 0, ROT90, "Jackson Co., Ltd.", "Flipper Jack", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // copyright not shown, datecodes on pcb suggests mid-1983 +GAME( 1983?, flipjack, 0, flipjack, flipjack, flipjack_state, 0, ROT90, "Jackson Co., Ltd.", "Flipper Jack", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // copyright not shown, datecodes on pcb suggests mid-1983 diff --git a/src/mame/drivers/flkatck.cpp b/src/mame/drivers/flkatck.cpp index 11bfa29b78d..63e527f7241 100644 --- a/src/mame/drivers/flkatck.cpp +++ b/src/mame/drivers/flkatck.cpp @@ -207,7 +207,7 @@ void flkatck_state::machine_reset() m_flipscreen = 0; } -static MACHINE_CONFIG_START( flkatck, flkatck_state ) +static MACHINE_CONFIG_START( flkatck ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", HD6309,3000000*4) /* HD63C09EP, 24/8 MHz */ @@ -310,6 +310,6 @@ ROM_START( flkatcka ) ROM_LOAD( "mask2m.11a", 0x000000, 0x040000, CRC(6d1ea61c) SHA1(9e6eb9ac61838df6e1f74e74bb72f3edf1274aed) ) ROM_END -GAME( 1987, mx5000, 0, flkatck, flkatck, driver_device, 0, ROT90, "Konami", "MX5000", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, flkatck, mx5000, flkatck, flkatck, driver_device, 0, ROT90, "Konami", "Flak Attack (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, flkatcka,mx5000, flkatck, flkatck, driver_device, 0, ROT90, "Konami", "Flak Attack (Japan, PWB 450593 sub-board)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, mx5000, 0, flkatck, flkatck, flkatck_state, 0, ROT90, "Konami", "MX5000", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, flkatck, mx5000, flkatck, flkatck, flkatck_state, 0, ROT90, "Konami", "Flak Attack (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, flkatcka,mx5000, flkatck, flkatck, flkatck_state, 0, ROT90, "Konami", "Flak Attack (Japan, PWB 450593 sub-board)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/flower.cpp b/src/mame/drivers/flower.cpp index b98aa2d321b..8e5d9de2f03 100644 --- a/src/mame/drivers/flower.cpp +++ b/src/mame/drivers/flower.cpp @@ -367,7 +367,7 @@ static GFXDECODE_START( flower ) GFXDECODE_ENTRY( "gfx3", 0, tilelayout, 0, 16 ) GFXDECODE_END -static MACHINE_CONFIG_START( flower, flower_state ) +static MACHINE_CONFIG_START( flower ) MCFG_CPU_ADD("maincpu",Z80,4000000) MCFG_CPU_PROGRAM_MAP(shared_map) MCFG_CPU_VBLANK_INT_DRIVER("screen", flower_state, irq0_line_hold) @@ -474,5 +474,5 @@ ROM_START( flowerj ) /* Sega/Alpha version. Sega game number 834-5998 */ ROM_END -GAME( 1986, flower, 0, flower, flower, driver_device, 0, ROT0, "Clarue (Komax license)", "Flower (US)", MACHINE_NOT_WORKING|MACHINE_NO_SOUND|MACHINE_IMPERFECT_GRAPHICS|MACHINE_NO_COCKTAIL ) -GAME( 1986, flowerj, flower, flower, flower, driver_device, 0, ROT0, "Clarue (Sega / Alpha Denshi Co. license)", "Flower (Japan)", MACHINE_NOT_WORKING|MACHINE_NO_SOUND|MACHINE_IMPERFECT_GRAPHICS|MACHINE_NO_COCKTAIL ) +GAME( 1986, flower, 0, flower, flower, flower_state, 0, ROT0, "Clarue (Komax license)", "Flower (US)", MACHINE_NOT_WORKING|MACHINE_NO_SOUND|MACHINE_IMPERFECT_GRAPHICS|MACHINE_NO_COCKTAIL ) +GAME( 1986, flowerj, flower, flower, flower, flower_state, 0, ROT0, "Clarue (Sega / Alpha Denshi Co. license)", "Flower (Japan)", MACHINE_NOT_WORKING|MACHINE_NO_SOUND|MACHINE_IMPERFECT_GRAPHICS|MACHINE_NO_COCKTAIL ) diff --git a/src/mame/drivers/flstory.cpp b/src/mame/drivers/flstory.cpp index 006bf279c6d..03f67c8eef7 100644 --- a/src/mame/drivers/flstory.cpp +++ b/src/mame/drivers/flstory.cpp @@ -1013,7 +1013,7 @@ MACHINE_RESET_MEMBER(flstory_state,flstory) m_from_mcu = 0; } -static MACHINE_CONFIG_START( flstory, flstory_state ) +static MACHINE_CONFIG_START( flstory ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_10_733MHz/2) /* verified on pcb */ @@ -1075,7 +1075,7 @@ static MACHINE_CONFIG_START( flstory, flstory_state ) 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( onna34ro, flstory_state ) +static MACHINE_CONFIG_START( onna34ro ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 10733000/2) /* ??? */ @@ -1138,7 +1138,7 @@ static MACHINE_CONFIG_START( onna34ro, flstory_state ) 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( victnine, flstory_state ) +static MACHINE_CONFIG_START( victnine ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 8000000/2) /* 4 MHz */ @@ -1207,7 +1207,7 @@ MACHINE_RESET_MEMBER(flstory_state,rumba) m_mcu_cmd = 0; } -static MACHINE_CONFIG_START( rumba, flstory_state ) +static MACHINE_CONFIG_START( rumba ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_8MHz/2) /* verified on pcb */ @@ -1559,9 +1559,9 @@ ROM_START( rumba ) ROM_END -GAME( 1985, flstory, 0, flstory, flstory, driver_device, 0, ROT180, "Taito", "The FairyLand Story", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1985, flstoryj, flstory, flstory, flstory, driver_device, 0, ROT180, "Taito", "The FairyLand Story (Japan)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1985, onna34ro, 0, onna34ro, onna34ro, driver_device, 0, ROT0, "Taito", "Onna Sansirou - Typhoon Gal (set 1)", MACHINE_UNEMULATED_PROTECTION | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1985, onna34roa, onna34ro, onna34ro, onna34ro, driver_device, 0, ROT0, "Taito", "Onna Sansirou - Typhoon Gal (set 2)", MACHINE_UNEMULATED_PROTECTION | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1984, victnine, 0, victnine, victnine, driver_device, 0, ROT0, "Taito", "Victorious Nine", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1984, rumba, 0, rumba, rumba, driver_device, 0, ROT270, "Taito", "Rumba Lumber", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION ) +GAME( 1985, flstory, 0, flstory, flstory, flstory_state, 0, ROT180, "Taito", "The FairyLand Story", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1985, flstoryj, flstory, flstory, flstory, flstory_state, 0, ROT180, "Taito", "The FairyLand Story (Japan)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1985, onna34ro, 0, onna34ro, onna34ro, flstory_state, 0, ROT0, "Taito", "Onna Sansirou - Typhoon Gal (set 1)", MACHINE_UNEMULATED_PROTECTION | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1985, onna34roa, onna34ro, onna34ro, onna34ro, flstory_state, 0, ROT0, "Taito", "Onna Sansirou - Typhoon Gal (set 2)", MACHINE_UNEMULATED_PROTECTION | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1984, victnine, 0, victnine, victnine, flstory_state, 0, ROT0, "Taito", "Victorious Nine", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1984, rumba, 0, rumba, rumba, flstory_state, 0, ROT270, "Taito", "Rumba Lumber", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION ) diff --git a/src/mame/drivers/flyball.cpp b/src/mame/drivers/flyball.cpp index 08d11615f2d..2947cf7eee8 100644 --- a/src/mame/drivers/flyball.cpp +++ b/src/mame/drivers/flyball.cpp @@ -461,7 +461,7 @@ void flyball_state::machine_reset() } -static MACHINE_CONFIG_START( flyball, flyball_state ) +static MACHINE_CONFIG_START( flyball ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, MASTER_CLOCK/16) @@ -541,5 +541,5 @@ ROM_END * *************************************/ -GAME( 1976, flyball, 0, flyball, flyball, driver_device, 0, 0, "Atari", "Flyball (rev 2)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1976, flyball1, flyball, flyball, flyball, driver_device, 0, 0, "Atari", "Flyball (rev 1)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1976, flyball, 0, flyball, flyball, flyball_state, 0, 0, "Atari", "Flyball (rev 2)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1976, flyball1, flyball, flyball, flyball, flyball_state, 0, 0, "Atari", "Flyball (rev 1)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/fm7.cpp b/src/mame/drivers/fm7.cpp index 992f904ef03..5cd069931b0 100644 --- a/src/mame/drivers/fm7.cpp +++ b/src/mame/drivers/fm7.cpp @@ -2055,7 +2055,7 @@ MCFG_ADDRESS_MAP_BANK_DATABUS_WIDTH(8) \ MCFG_ADDRESS_MAP_BANK_STRIDE(0x1000) -static MACHINE_CONFIG_START( fm7, fm7_state ) +static MACHINE_CONFIG_START( fm7 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809, XTAL_2MHz) MCFG_CPU_PROGRAM_MAP(fm7_mem) @@ -2113,7 +2113,7 @@ static MACHINE_CONFIG_START( fm7, fm7_state ) MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics") MACHINE_CONFIG_END -static MACHINE_CONFIG_START( fm8, fm7_state ) +static MACHINE_CONFIG_START( fm8 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809, 1200000) // 1.2MHz 68A09 MCFG_CPU_PROGRAM_MAP(fm8_mem) @@ -2164,7 +2164,7 @@ static MACHINE_CONFIG_START( fm8, fm7_state ) MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics") MACHINE_CONFIG_END -static MACHINE_CONFIG_START( fm77av, fm7_state ) +static MACHINE_CONFIG_START( fm77av ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809, XTAL_2MHz) // actually MB68B09E, but the 6809E core runs too slowly MCFG_CPU_PROGRAM_MAP(fm77av_mem) @@ -2243,7 +2243,7 @@ static MACHINE_CONFIG_START( fm77av, fm7_state ) MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics") MACHINE_CONFIG_END -static MACHINE_CONFIG_START( fm11, fm7_state ) +static MACHINE_CONFIG_START( fm11 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809, XTAL_2MHz) // 2MHz 68B09E MCFG_CPU_PROGRAM_MAP(fm11_mem) @@ -2315,7 +2315,7 @@ static MACHINE_CONFIG_START( fm11, fm7_state ) MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics") MACHINE_CONFIG_END -static MACHINE_CONFIG_START( fm16beta, fm7_state ) +static MACHINE_CONFIG_START( fm16beta ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8086, XTAL_8MHz) // 8MHz i8086 MCFG_CPU_PROGRAM_MAP(fm16_mem) @@ -2528,13 +2528,13 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1981, fm8, 0, 0, fm8, fm8, fm7_state, fm7, "Fujitsu", "FM-8", 0) -COMP( 1982, fm7, 0, 0, fm7, fm7, fm7_state, fm7, "Fujitsu", "FM-7", 0) -COMP( 1984, fmnew7, fm7, 0, fm7, fm7, fm7_state, fm7, "Fujitsu", "FM-NEW7", 0) -COMP( 1985, fm77av, fm7, 0, fm77av, fm7, fm7_state, fm7, "Fujitsu", "FM-77AV", MACHINE_IMPERFECT_GRAPHICS) -COMP( 1985, fm7740sx, fm7, 0, fm77av, fm7, fm7_state, fm7, "Fujitsu", "FM-77AV40SX", MACHINE_NOT_WORKING) +/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ +COMP( 1981, fm8, 0, 0, fm8, fm8, fm7_state, fm7, "Fujitsu", "FM-8", 0) +COMP( 1982, fm7, 0, 0, fm7, fm7, fm7_state, fm7, "Fujitsu", "FM-7", 0) +COMP( 1984, fmnew7, fm7, 0, fm7, fm7, fm7_state, fm7, "Fujitsu", "FM-NEW7", 0) +COMP( 1985, fm77av, fm7, 0, fm77av, fm7, fm7_state, fm7, "Fujitsu", "FM-77AV", MACHINE_IMPERFECT_GRAPHICS) +COMP( 1985, fm7740sx, fm7, 0, fm77av, fm7, fm7_state, fm7, "Fujitsu", "FM-77AV40SX", MACHINE_NOT_WORKING) // These may be separated into a separate driver, depending on how different they are to the FM-8/FM-7 -COMP( 1982, fm11, 0, 0, fm11, fm7, fm7_state, fm7, "Fujitsu", "FM-11 EX", MACHINE_NOT_WORKING) -COMP( 1982, fm16beta, 0, 0, fm16beta, fm7, fm7_state, fm7, "Fujitsu", "FM-16\xCE\xB2", MACHINE_NOT_WORKING) +COMP( 1982, fm11, 0, 0, fm11, fm7, fm7_state, fm7, "Fujitsu", "FM-11 EX", MACHINE_NOT_WORKING) +COMP( 1982, fm16beta, 0, 0, fm16beta, fm7, fm7_state, fm7, "Fujitsu", "FM-16\xCE\xB2", MACHINE_NOT_WORKING) diff --git a/src/mame/drivers/fmtowns.cpp b/src/mame/drivers/fmtowns.cpp index bb2f2c7cd44..e798455731d 100644 --- a/src/mame/drivers/fmtowns.cpp +++ b/src/mame/drivers/fmtowns.cpp @@ -2788,12 +2788,12 @@ static MACHINE_CONFIG_FRAGMENT( towns_base ) MCFG_RAM_EXTRA_OPTIONS("2M,4M,8M,16M,32M,64M,96M") MACHINE_CONFIG_END -static MACHINE_CONFIG_START( towns, towns_state ) +static MACHINE_CONFIG_START( towns ) MCFG_FRAGMENT_ADD(towns_base) MCFG_NVRAM_ADD_0FILL("nvram") MACHINE_CONFIG_END -static MACHINE_CONFIG_START( townsux, towns16_state ) +static MACHINE_CONFIG_START( townsux ) MCFG_FRAGMENT_ADD(towns_base) MCFG_CPU_REPLACE("maincpu",I386SX, 16000000) @@ -2846,7 +2846,7 @@ static MACHINE_CONFIG_DERIVED( townsftv, towns ) MCFG_RAM_EXTRA_OPTIONS("32M,68M") MACHINE_CONFIG_END -static MACHINE_CONFIG_START( marty, marty_state ) +static MACHINE_CONFIG_START( marty ) MCFG_FRAGMENT_ADD(towns_base) MCFG_CPU_REPLACE("maincpu",I386SX, 16000000) @@ -2985,14 +2985,14 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1989, fmtowns, 0, 0, towns, towns, driver_device, 0, "Fujitsu", "FM-Towns", MACHINE_NOT_WORKING) -COMP( 1989, fmtownsa, fmtowns, 0, towns, towns, driver_device, 0, "Fujitsu", "FM-Towns (alternate)", MACHINE_NOT_WORKING) -COMP( 1991, fmtownsux,fmtowns, 0, townsux, towns, driver_device, 0, "Fujitsu", "FM-Towns II UX", MACHINE_NOT_WORKING) -COMP( 1992, fmtownshr,fmtowns, 0, townshr, towns, driver_device, 0, "Fujitsu", "FM-Towns II HR", MACHINE_NOT_WORKING) -COMP( 1993, fmtownsmx,fmtowns, 0, townshr, towns, driver_device, 0, "Fujitsu", "FM-Towns II MX", MACHINE_NOT_WORKING) -COMP( 1994, fmtownsftv,fmtowns, 0, townsftv, towns, driver_device, 0, "Fujitsu", "FM-Towns II FreshTV", MACHINE_NOT_WORKING) -COMP( 19??, fmtownssj,fmtowns, 0, townssj, towns, driver_device, 0, "Fujitsu", "FM-Towns II SJ", MACHINE_NOT_WORKING) -CONS( 1993, fmtmarty, 0, 0, marty, marty, driver_device, 0, "Fujitsu", "FM-Towns Marty", MACHINE_NOT_WORKING) -CONS( 1993, fmtmarty2,fmtmarty, 0, marty, marty, driver_device, 0, "Fujitsu", "FM-Towns Marty 2", MACHINE_NOT_WORKING) -CONS( 1994, carmarty, fmtmarty, 0, marty, marty, driver_device, 0, "Fujitsu", "FM-Towns Car Marty", MACHINE_NOT_WORKING) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +COMP( 1989, fmtowns, 0, 0, towns, towns, towns_state, 0, "Fujitsu", "FM-Towns", MACHINE_NOT_WORKING) +COMP( 1989, fmtownsa, fmtowns, 0, towns, towns, towns_state, 0, "Fujitsu", "FM-Towns (alternate)", MACHINE_NOT_WORKING) +COMP( 1991, fmtownsux,fmtowns, 0, townsux, towns, towns16_state, 0, "Fujitsu", "FM-Towns II UX", MACHINE_NOT_WORKING) +COMP( 1992, fmtownshr,fmtowns, 0, townshr, towns, towns_state, 0, "Fujitsu", "FM-Towns II HR", MACHINE_NOT_WORKING) +COMP( 1993, fmtownsmx,fmtowns, 0, townshr, towns, towns_state, 0, "Fujitsu", "FM-Towns II MX", MACHINE_NOT_WORKING) +COMP( 1994, fmtownsftv,fmtowns, 0, townsftv, towns, towns_state, 0, "Fujitsu", "FM-Towns II FreshTV", MACHINE_NOT_WORKING) +COMP( 19??, fmtownssj,fmtowns, 0, townssj, towns, towns_state, 0, "Fujitsu", "FM-Towns II SJ", MACHINE_NOT_WORKING) +CONS( 1993, fmtmarty, 0, 0, marty, marty, marty_state, 0, "Fujitsu", "FM-Towns Marty", MACHINE_NOT_WORKING) +CONS( 1993, fmtmarty2,fmtmarty, 0, marty, marty, marty_state, 0, "Fujitsu", "FM-Towns Marty 2", MACHINE_NOT_WORKING) +CONS( 1994, carmarty, fmtmarty, 0, marty, marty, marty_state, 0, "Fujitsu", "FM-Towns Car Marty", MACHINE_NOT_WORKING) diff --git a/src/mame/drivers/foodf.cpp b/src/mame/drivers/foodf.cpp index 3ad8678a66e..ec09b5f7673 100644 --- a/src/mame/drivers/foodf.cpp +++ b/src/mame/drivers/foodf.cpp @@ -335,7 +335,7 @@ READ8_MEMBER(foodf_state::pot_r) * *************************************/ -static MACHINE_CONFIG_START( foodf, foodf_state ) +static MACHINE_CONFIG_START( foodf ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, MASTER_CLOCK/2) @@ -505,7 +505,7 @@ ROM_END * *************************************/ -GAME( 1982, foodf, 0, foodf, foodf, driver_device, 0, ROT0, "General Computer Corporation (Atari license)", "Food Fight (rev 3)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, foodf2, foodf, foodf, foodf, driver_device, 0, ROT0, "General Computer Corporation (Atari license)", "Food Fight (rev 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, foodf1, foodf, foodf, foodf, driver_device, 0, ROT0, "General Computer Corporation (Atari license)", "Food Fight (rev 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, foodfc, foodf, foodf, foodf, driver_device, 0, ROT0, "General Computer Corporation (Atari license)", "Food Fight (cocktail)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, foodf, 0, foodf, foodf, foodf_state, 0, ROT0, "General Computer Corporation (Atari license)", "Food Fight (rev 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, foodf2, foodf, foodf, foodf, foodf_state, 0, ROT0, "General Computer Corporation (Atari license)", "Food Fight (rev 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, foodf1, foodf, foodf, foodf, foodf_state, 0, ROT0, "General Computer Corporation (Atari license)", "Food Fight (rev 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, foodfc, foodf, foodf, foodf, foodf_state, 0, ROT0, "General Computer Corporation (Atari license)", "Food Fight (cocktail)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/force68k.cpp b/src/mame/drivers/force68k.cpp index ea32699b052..93aa110cd62 100644 --- a/src/mame/drivers/force68k.cpp +++ b/src/mame/drivers/force68k.cpp @@ -429,7 +429,7 @@ SLOT_INTERFACE_END /* * Machine configuration */ -static MACHINE_CONFIG_START (fccpu1, force68k_state) +static MACHINE_CONFIG_START (fccpu1) /* basic machine hardware */ MCFG_CPU_ADD ("maincpu", M68000, XTAL_16MHz / 2) MCFG_CPU_PROGRAM_MAP (force68k_mem) @@ -499,27 +499,27 @@ MACHINE_CONFIG_END * CPU-6 family is device and adressmap compatible with CPU-1 but with additions * such as an optional 68881 FPU */ -static MACHINE_CONFIG_START (fccpu6, force68k_state) +static MACHINE_CONFIG_START (fccpu6) MCFG_CPU_ADD ("maincpu", M68000, XTAL_8MHz) /* Jumper B10 Mode B */ MCFG_CPU_PROGRAM_MAP (force68k_mem) MACHINE_CONFIG_END -static MACHINE_CONFIG_START (fccpu6a, force68k_state) +static MACHINE_CONFIG_START (fccpu6a) MCFG_CPU_ADD ("maincpu", M68000, XTAL_12_5MHz) /* Jumper B10 Mode A */ MCFG_CPU_PROGRAM_MAP (force68k_mem) MACHINE_CONFIG_END -static MACHINE_CONFIG_START (fccpu6v, force68k_state) +static MACHINE_CONFIG_START (fccpu6v) MCFG_CPU_ADD ("maincpu", M68010, XTAL_8MHz) /* Jumper B10 Mode B */ MCFG_CPU_PROGRAM_MAP (force68k_mem) MACHINE_CONFIG_END -static MACHINE_CONFIG_START (fccpu6va, force68k_state) +static MACHINE_CONFIG_START (fccpu6va) MCFG_CPU_ADD ("maincpu", M68010, XTAL_12_5MHz) /* Jumper B10 Mode A */ MCFG_CPU_PROGRAM_MAP (force68k_mem) MACHINE_CONFIG_END -static MACHINE_CONFIG_START (fccpu6vb, force68k_state) +static MACHINE_CONFIG_START (fccpu6vb) MCFG_CPU_ADD ("maincpu", M68010, XTAL_12_5MHz) /* Jumper B10 Mode A */ MCFG_CPU_PROGRAM_MAP (force68k_mem) MACHINE_CONFIG_END @@ -608,10 +608,10 @@ ROM_END #endif /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1983, fccpu1, 0, 0, fccpu1, force68k, driver_device, 0, "Force Computers Gmbh", "SYS68K/CPU-1", MACHINE_NO_SOUND_HW | MACHINE_TYPE_COMPUTER ) -//COMP( 1989, fccpu6, 0, 0, fccpu6, force68k, driver_device, 0, "Force Computers Gmbh", "SYS68K/CPU-6", MACHINE_IS_SKELETON ) -//COMP( 1989, fccpu6a, 0, 0, fccpu6a, force68k, driver_device, 0, "Force Computers Gmbh", "SYS68K/CPU-6a", MACHINE_IS_SKELETON ) -//COMP( 1989, fccpu6v, 0, 0, fccpu6v, force68k, driver_device, 0, "Force Computers Gmbh", "SYS68K/CPU-6v", MACHINE_IS_SKELETON ) -//COMP( 1989, fccpu6va, 0, 0, fccpu6va, force68k, driver_device, 0, "Force Computers Gmbh", "SYS68K/CPU-6va", MACHINE_IS_SKELETON ) -//COMP( 1989, fccpu6vb, 0, 0, fccpu6vb, force68k, driver_device, 0, "Force Computers Gmbh", "SYS68K/CPU-6vb", MACHINE_IS_SKELETON ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ +COMP( 1983, fccpu1, 0, 0, fccpu1, force68k, force68k_state, 0, "Force Computers GmbH", "SYS68K/CPU-1", MACHINE_NO_SOUND_HW | MACHINE_TYPE_COMPUTER ) +//COMP( 1989, fccpu6, 0, 0, fccpu6, force68k, force68k_state, 0, "Force Computers GmbH", "SYS68K/CPU-6", MACHINE_IS_SKELETON ) +//COMP( 1989, fccpu6a, 0, 0, fccpu6a, force68k, force68k_state, 0, "Force Computers GmbH", "SYS68K/CPU-6a", MACHINE_IS_SKELETON ) +//COMP( 1989, fccpu6v, 0, 0, fccpu6v, force68k, force68k_state, 0, "Force Computers GmbH", "SYS68K/CPU-6v", MACHINE_IS_SKELETON ) +//COMP( 1989, fccpu6va, 0, 0, fccpu6va, force68k, force68k_state, 0, "Force Computers GmbH", "SYS68K/CPU-6va", MACHINE_IS_SKELETON ) +//COMP( 1989, fccpu6vb, 0, 0, fccpu6vb, force68k, force68k_state, 0, "Force Computers GmbH", "SYS68K/CPU-6vb", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/forte2.cpp b/src/mame/drivers/forte2.cpp index 8968e8b3307..c4292dc3a49 100644 --- a/src/mame/drivers/forte2.cpp +++ b/src/mame/drivers/forte2.cpp @@ -117,7 +117,7 @@ void forte2_state::machine_start() } -static MACHINE_CONFIG_START( pesadelo, forte2_state ) +static MACHINE_CONFIG_START( pesadelo ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_3_579545MHz) diff --git a/src/mame/drivers/fortecar.cpp b/src/mame/drivers/fortecar.cpp index b39d8ad14b7..6302322c6e5 100644 --- a/src/mame/drivers/fortecar.cpp +++ b/src/mame/drivers/fortecar.cpp @@ -672,7 +672,7 @@ void fortecar_state::machine_reset() * Machine Drivers * ***********************************/ -static MACHINE_CONFIG_START( fortecar, fortecar_state ) +static MACHINE_CONFIG_START( fortecar ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, CPU_CLOCK) /* 3 MHz, measured */ MCFG_CPU_PROGRAM_MAP(fortecar_map) @@ -781,6 +781,6 @@ DRIVER_INIT_MEMBER(fortecar_state, fortecar) * Game Drivers * ***********************************/ -/* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS LAYOUT */ +// YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS LAYOUT GAMEL( 1994, fortecrd, 0, fortecar, fortecar, fortecar_state, fortecar, ROT0, "Fortex Ltd", "Forte Card (Ver 110, Spanish)", 0, layout_fortecrd ) GAMEL( 1994, fortecar, fortecrd, fortecar, fortecar, fortecar_state, fortecar, ROT0, "Fortex Ltd", "Forte Card (Ver 103, English)", MACHINE_NOT_WORKING, layout_fortecrd ) diff --git a/src/mame/drivers/fp1100.cpp b/src/mame/drivers/fp1100.cpp index 536dd69b5fb..968f0cca55e 100644 --- a/src/mame/drivers/fp1100.cpp +++ b/src/mame/drivers/fp1100.cpp @@ -634,7 +634,7 @@ DRIVER_INIT_MEMBER( fp1100_state, fp1100 ) membank("bankw0")->configure_entry(0, &wram[0x0000]); } -static MACHINE_CONFIG_START( fp1100, fp1100_state ) +static MACHINE_CONFIG_START( fp1100 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, MAIN_CLOCK/4) MCFG_CPU_PROGRAM_MAP(fp1100_map) @@ -699,5 +699,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ +/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ COMP( 1983, fp1100, 0, 0, fp1100, fp1100, fp1100_state, fp1100, "Casio", "FP-1100", MACHINE_NOT_WORKING) diff --git a/src/mame/drivers/fp200.cpp b/src/mame/drivers/fp200.cpp index 38f228b773f..20c85836f26 100644 --- a/src/mame/drivers/fp200.cpp +++ b/src/mame/drivers/fp200.cpp @@ -579,7 +579,7 @@ READ_LINE_MEMBER( fp200_state::sid_r ) return (ioport("KEYMOD")->read() >> m_keyb_mux) & 1; } -static MACHINE_CONFIG_START( fp200, fp200_state ) +static MACHINE_CONFIG_START( fp200 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",I8085A,MAIN_CLOCK) @@ -625,4 +625,4 @@ ROM_START( fp200 ) ROM_REGION( 0x800, "chargen", ROMREGION_ERASE00 ) ROM_END -COMP( 1982, fp200, 0, 0, fp200, fp200, driver_device, 0, "Casio", "FP-200 (Japan)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW ) +COMP( 1982, fp200, 0, 0, fp200, fp200, fp200_state, 0, "Casio", "FP-200 (Japan)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW ) diff --git a/src/mame/drivers/fp6000.cpp b/src/mame/drivers/fp6000.cpp index 200dd9df10f..529bf34ea79 100644 --- a/src/mame/drivers/fp6000.cpp +++ b/src/mame/drivers/fp6000.cpp @@ -289,7 +289,7 @@ void fp6000_state::machine_reset() { } -static MACHINE_CONFIG_START( fp6000, fp6000_state ) +static MACHINE_CONFIG_START( fp6000 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8086, 16000000/2) MCFG_CPU_PROGRAM_MAP(fp6000_map) @@ -327,5 +327,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1985, fp6000, 0, 0, fp6000, fp6000, driver_device, 0, "Casio", "FP-6000", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +COMP( 1985, fp6000, 0, 0, fp6000, fp6000, fp6000_state, 0, "Casio", "FP-6000", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) diff --git a/src/mame/drivers/freekick.cpp b/src/mame/drivers/freekick.cpp index 29781d4212d..e1223c2e3f0 100644 --- a/src/mame/drivers/freekick.cpp +++ b/src/mame/drivers/freekick.cpp @@ -708,7 +708,7 @@ MACHINE_RESET_MEMBER(freekick_state,oigas) m_cnt = 0; } -static MACHINE_CONFIG_START( omega, freekick_state ) +static MACHINE_CONFIG_START( omega ) MCFG_CPU_ADD("maincpu", MC8123, XTAL_18_432MHz/6) // unknown divisor MCFG_CPU_PROGRAM_MAP(omega_map) MCFG_CPU_IO_MAP(omega_io_map) @@ -741,7 +741,7 @@ static MACHINE_CONFIG_START( omega, freekick_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( base, freekick_state ) +static MACHINE_CONFIG_START( base ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_12MHz/4) @@ -1391,20 +1391,20 @@ DRIVER_INIT_MEMBER(freekick_state,gigas) * Game driver(s) * *************************************/ -/* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS */ -GAME( 1986, gigas, 0, gigasm, gigas, freekick_state, gigas, ROT270, "Sega", "Gigas (MC-8123, 317-5002)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, gigasb, gigas, gigas, gigas, freekick_state, gigasb, ROT270, "bootleg", "Gigas (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, oigas, gigas , oigas, gigas, freekick_state, gigasb, ROT270, "bootleg", "Oigas (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, gigasm2b, 0, gigas, gigasm2, freekick_state, gigasb, ROT270, "bootleg", "Gigas Mark II (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, omega, 0, omega, omega, freekick_state, gigas, ROT270, "Nihon System", "Omega", MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE ) -GAME( 1987, pbillrd, 0, pbillrd, pbillrd, driver_device, 0, ROT0, "Nihon System", "Perfect Billiard", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, pbillrds, pbillrd, pbillrdm, pbillrd, freekick_state, pbillrds,ROT0, "Nihon System", "Perfect Billiard (MC-8123, 317-0030)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, pbillrdsa, pbillrd, pbillrdm, pbillrd, freekick_state, pbillrds,ROT0, "Nihon System", "Perfect Billiard (MC-8123, 317-5008)", MACHINE_SUPPORTS_SAVE ) // sticker on CPU module different (wrong?) functionality the same -GAME( 1987, freekick, 0, freekickb, freekck, driver_device, 0, ROT270, "Nihon System (Merit license)", "Free Kick (NS6201-A 1987.10)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, freekicka, freekick, freekickb, freekck, driver_device, 0, ROT270, "Nihon System", "Free Kick (NS6201-A 1987.9)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, freekickb1,freekick, freekickb, freekck, driver_device, 0, ROT270, "bootleg", "Free Kick (bootleg set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, freekickb2,freekick, freekickb, freekck, driver_device, 0, ROT270, "bootleg", "Free Kick (bootleg set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, freekickb3,freekick, freekickb, freekck, driver_device, 0, ROT270, "bootleg", "Free Kick (bootleg set 3)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, countrun, 0, freekickb, countrun, driver_device, 0, ROT0, "Nihon System (Sega license)", "Counter Run (NS6201-A 1988.3)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // CPU module not dumped -GAME( 1988, countrunb, countrun, freekickb, countrun, driver_device, 0, ROT0, "bootleg", "Counter Run (bootleg set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, countrunb2,countrun, freekickb, countrun, driver_device, 0, ROT0, "bootleg", "Counter Run (bootleg set 2)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +// YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS +GAME( 1986, gigas, 0, gigasm, gigas, freekick_state, gigas, ROT270, "Sega", "Gigas (MC-8123, 317-5002)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, gigasb, gigas, gigas, gigas, freekick_state, gigasb, ROT270, "bootleg", "Gigas (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, oigas, gigas , oigas, gigas, freekick_state, gigasb, ROT270, "bootleg", "Oigas (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, gigasm2b, 0, gigas, gigasm2, freekick_state, gigasb, ROT270, "bootleg", "Gigas Mark II (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, omega, 0, omega, omega, freekick_state, gigas, ROT270, "Nihon System", "Omega", MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE ) +GAME( 1987, pbillrd, 0, pbillrd, pbillrd, freekick_state, 0, ROT0, "Nihon System", "Perfect Billiard", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, pbillrds, pbillrd, pbillrdm, pbillrd, freekick_state, pbillrds, ROT0, "Nihon System", "Perfect Billiard (MC-8123, 317-0030)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, pbillrdsa, pbillrd, pbillrdm, pbillrd, freekick_state, pbillrds, ROT0, "Nihon System", "Perfect Billiard (MC-8123, 317-5008)", MACHINE_SUPPORTS_SAVE ) // sticker on CPU module different (wrong?) functionality the same +GAME( 1987, freekick, 0, freekickb, freekck, freekick_state, 0, ROT270, "Nihon System (Merit license)", "Free Kick (NS6201-A 1987.10)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, freekicka, freekick, freekickb, freekck, freekick_state, 0, ROT270, "Nihon System", "Free Kick (NS6201-A 1987.9)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, freekickb1, freekick, freekickb, freekck, freekick_state, 0, ROT270, "bootleg", "Free Kick (bootleg set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, freekickb2, freekick, freekickb, freekck, freekick_state, 0, ROT270, "bootleg", "Free Kick (bootleg set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, freekickb3, freekick, freekickb, freekck, freekick_state, 0, ROT270, "bootleg", "Free Kick (bootleg set 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, countrun, 0, freekickb, countrun, freekick_state, 0, ROT0, "Nihon System (Sega license)", "Counter Run (NS6201-A 1988.3)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // CPU module not dumped +GAME( 1988, countrunb, countrun, freekickb, countrun, freekick_state, 0, ROT0, "bootleg", "Counter Run (bootleg set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, countrunb2, countrun, freekickb, countrun, freekick_state, 0, ROT0, "bootleg", "Counter Run (bootleg set 2)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/fresh.cpp b/src/mame/drivers/fresh.cpp index 97b91b85cf7..a923cfc9e0c 100644 --- a/src/mame/drivers/fresh.cpp +++ b/src/mame/drivers/fresh.cpp @@ -589,7 +589,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(fresh_state::fake_scanline) } -static MACHINE_CONFIG_START( fresh, fresh_state ) +static MACHINE_CONFIG_START( fresh ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 24000000/2 ) @@ -634,4 +634,4 @@ ROM_END // title shows Fruit Fresh but on resetting you get text strings of 'Dream World V2.41SI 97. 1.28' -GAME( 1996, fresh, 0, fresh, fresh, driver_device, 0, ROT0, "Chain Leisure", "Fruit Fresh (Italy)", MACHINE_NOT_WORKING ) +GAME( 1996, fresh, 0, fresh, fresh, fresh_state, 0, ROT0, "Chain Leisure", "Fruit Fresh (Italy)", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/fromanc2.cpp b/src/mame/drivers/fromanc2.cpp index da1c4422fbf..87e843d972d 100644 --- a/src/mame/drivers/fromanc2.cpp +++ b/src/mame/drivers/fromanc2.cpp @@ -501,7 +501,7 @@ void fromanc2_state::machine_reset() m_datalatch_2l = 0; } -static MACHINE_CONFIG_START( fromanc2, fromanc2_state ) +static MACHINE_CONFIG_START( fromanc2 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000,32000000/2) /* 16.00 MHz */ @@ -561,7 +561,7 @@ static MACHINE_CONFIG_START( fromanc2, fromanc2_state ) MCFG_SOUND_ROUTE(2, "mono", 0.75) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( fromancr, fromanc2_state ) +static MACHINE_CONFIG_START( fromancr ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000,32000000/2) /* 16.00 MHz */ @@ -621,7 +621,7 @@ static MACHINE_CONFIG_START( fromancr, fromanc2_state ) MCFG_SOUND_ROUTE(2, "mono", 0.75) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( fromanc4, fromanc2_state ) +static MACHINE_CONFIG_START( fromanc4 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000,32000000/2) /* 16.00 MHz */ @@ -811,5 +811,5 @@ DRIVER_INIT_MEMBER(fromanc2_state,fromanc4) *************************************/ GAME( 1995, fromanc2, 0, fromanc2, fromanc2, fromanc2_state, fromanc2, ROT0, "Video System Co.", "Taisen Idol-Mahjong Final Romance 2 (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, fromancr, 0, fromancr, fromanc2, fromanc2_state, fromanc2, ROT0, "Video System Co.", "Taisen Mahjong Final Romance R (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, fromanc4, 0, fromanc4, fromanc4, fromanc2_state, fromanc4, ROT0, "Video System Co.", "Taisen Mahjong Final Romance 4 (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, fromancr, 0, fromancr, fromanc2, fromanc2_state, fromanc2, ROT0, "Video System Co.", "Taisen Mahjong Final Romance R (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, fromanc4, 0, fromanc4, fromanc4, fromanc2_state, fromanc4, ROT0, "Video System Co.", "Taisen Mahjong Final Romance 4 (Japan)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/fromance.cpp b/src/mame/drivers/fromance.cpp index dce51e757d4..c4c2fc687da 100644 --- a/src/mame/drivers/fromance.cpp +++ b/src/mame/drivers/fromance.cpp @@ -923,7 +923,7 @@ MACHINE_RESET_MEMBER(fromance_state,fromance) m_flipscreen = 0; } -static MACHINE_CONFIG_START( nekkyoku, fromance_state ) +static MACHINE_CONFIG_START( nekkyoku ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80,12000000/2) /* 6.00 Mhz ? */ @@ -961,12 +961,12 @@ static MACHINE_CONFIG_START( nekkyoku, fromance_state ) MCFG_SOUND_ADD("msm", MSM5205, 384000) MCFG_MSM5205_VCLK_CB(WRITELINE(fromance_state, fromance_adpcm_int)) /* IRQ handler */ - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S48_4B) /* 8 KHz */ + MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) /* 8 KHz */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( idolmj, fromance_state ) +static MACHINE_CONFIG_START( idolmj ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80,12000000/2) /* 6.00 Mhz ? */ @@ -1004,12 +1004,12 @@ static MACHINE_CONFIG_START( idolmj, fromance_state ) MCFG_SOUND_ADD("msm", MSM5205, 384000) MCFG_MSM5205_VCLK_CB(WRITELINE(fromance_state, fromance_adpcm_int)) /* IRQ handler */ - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S48_4B) /* 8 KHz */ + MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) /* 8 KHz */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( fromance, fromance_state ) +static MACHINE_CONFIG_START( fromance ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80,12000000/2) /* 6.00 Mhz ? */ @@ -1047,7 +1047,7 @@ static MACHINE_CONFIG_START( fromance, fromance_state ) MCFG_SOUND_ADD("msm", MSM5205, 384000) MCFG_MSM5205_VCLK_CB(WRITELINE(fromance_state, fromance_adpcm_int)) /* IRQ handler */ - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S48_4B) /* 8 KHz */ + MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) /* 8 KHz */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10) MACHINE_CONFIG_END @@ -1271,11 +1271,11 @@ ROM_END * *************************************/ -GAME( 1988, nekkyoku, 0, nekkyoku, nekkyoku, driver_device, 0, ROT0, "Video System Co.", "Rettou Juudan Nekkyoku Janshi - Higashi Nippon Hen (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1988, idolmj, 0, idolmj, idolmj, driver_device, 0, ROT0, "System Service", "Idol-Mahjong Housoukyoku (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, mjnatsu, 0, fromance, mjnatsu, driver_device, 0, ROT0, "Video System Co.", "Mahjong Natsu Monogatari (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, natsuiro, mjnatsu, fromance, mjnatsu, driver_device, 0, ROT0, "Video System Co.", "Natsuiro Mahjong (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, mfunclub, 0, fromance, mjnatsu, driver_device, 0, ROT0, "Video System Co.", "Mahjong Fun Club - Idol Saizensen (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, daiyogen, 0, fromance, daiyogen, driver_device, 0, ROT0, "Video System Co.", "Mahjong Daiyogen (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, nmsengen, 0, fromance, nmsengen, driver_device, 0, ROT0, "Video System Co.", "Nekketsu Mahjong Sengen! AFTER 5 (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, fromance, 0, fromance, fromance, driver_device, 0, ROT0, "Video System Co.", "Idol-Mahjong Final Romance (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, nekkyoku, 0, nekkyoku, nekkyoku, fromance_state, 0, ROT0, "Video System Co.", "Rettou Juudan Nekkyoku Janshi - Higashi Nippon Hen (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1988, idolmj, 0, idolmj, idolmj, fromance_state, 0, ROT0, "System Service", "Idol-Mahjong Housoukyoku (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, mjnatsu, 0, fromance, mjnatsu, fromance_state, 0, ROT0, "Video System Co.", "Mahjong Natsu Monogatari (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, natsuiro, mjnatsu, fromance, mjnatsu, fromance_state, 0, ROT0, "Video System Co.", "Natsuiro Mahjong (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, mfunclub, 0, fromance, mjnatsu, fromance_state, 0, ROT0, "Video System Co.", "Mahjong Fun Club - Idol Saizensen (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, daiyogen, 0, fromance, daiyogen, fromance_state, 0, ROT0, "Video System Co.", "Mahjong Daiyogen (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, nmsengen, 0, fromance, nmsengen, fromance_state, 0, ROT0, "Video System Co.", "Nekketsu Mahjong Sengen! AFTER 5 (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, fromance, 0, fromance, fromance, fromance_state, 0, ROT0, "Video System Co.", "Idol-Mahjong Final Romance (Japan)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/fruitpc.cpp b/src/mame/drivers/fruitpc.cpp index f5c5ad4cd3a..a1ed8681b95 100644 --- a/src/mame/drivers/fruitpc.cpp +++ b/src/mame/drivers/fruitpc.cpp @@ -122,7 +122,7 @@ static MACHINE_CONFIG_FRAGMENT( fruitpc_sb_conf ) MCFG_DEVICE_SLOT_INTERFACE(pc_joysticks, nullptr, true) // remove joystick MACHINE_CONFIG_END -static MACHINE_CONFIG_START( fruitpc, fruitpc_state ) +static MACHINE_CONFIG_START( fruitpc ) MCFG_CPU_ADD("maincpu", I486, 66000000) // ST STPCD0166BTC3 66 MHz 486 CPU MCFG_CPU_PROGRAM_MAP(fruitpc_map) MCFG_CPU_IO_MAP(fruitpc_io) @@ -176,4 +176,4 @@ ROM_START( gogostrk ) DISK_IMAGE( "ggs-5-2-07", 0,SHA1(f214fd39ec8ac02f008823f4b179ea6c6835e1b8) ) ROM_END -GAME( 2007, gogostrk, 0, fruitpc, fruitpc, driver_device, 0, ROT0, "American Alpha / Paokai", "Go Go Strike", MACHINE_NOT_WORKING ) // motherboard is dated 2006, if the CF card string is a date it's 2007 +GAME( 2007, gogostrk, 0, fruitpc, fruitpc, fruitpc_state, 0, ROT0, "American Alpha / Paokai", "Go Go Strike", MACHINE_NOT_WORKING ) // motherboard is dated 2006, if the CF card string is a date it's 2007 diff --git a/src/mame/drivers/ft68m.cpp b/src/mame/drivers/ft68m.cpp index 953ba0d28d1..2cf43e58d92 100644 --- a/src/mame/drivers/ft68m.cpp +++ b/src/mame/drivers/ft68m.cpp @@ -30,14 +30,17 @@ public: { } - DECLARE_WRITE8_MEMBER(kbd_put); + void kbd_put(u8 data); DECLARE_READ16_MEMBER(keyin_r); DECLARE_READ16_MEMBER(status_r); DECLARE_READ16_MEMBER(switches_r); + private: uint8_t m_term_data; virtual void machine_reset() override; + required_shared_ptr m_p_base; + required_device m_maincpu; required_device m_terminal; }; @@ -88,12 +91,12 @@ void ft68m_state::machine_reset() m_maincpu->reset(); } -WRITE8_MEMBER( ft68m_state::kbd_put ) +void ft68m_state::kbd_put(u8 data) { m_term_data = data; } -static MACHINE_CONFIG_START( ft68m, ft68m_state ) +static MACHINE_CONFIG_START( ft68m ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_19_6608MHz / 2) @@ -101,7 +104,7 @@ static MACHINE_CONFIG_START( ft68m, ft68m_state ) /* video hardware */ MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0) - MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(ft68m_state, kbd_put)) + MCFG_GENERIC_TERMINAL_KEYBOARD_CB(PUT(ft68m_state, kbd_put)) MACHINE_CONFIG_END /* ROM definition */ @@ -124,5 +127,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 198?, ft68m, 0, 0, ft68m, ft68m, driver_device, 0, "Forward Technology", "FT-68M", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW ) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 198?, ft68m, 0, 0, ft68m, ft68m, ft68m_state, 0, "Forward Technology", "FT-68M", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW ) diff --git a/src/mame/drivers/fungames.cpp b/src/mame/drivers/fungames.cpp index ac526d7153c..5f9ab905536 100644 --- a/src/mame/drivers/fungames.cpp +++ b/src/mame/drivers/fungames.cpp @@ -47,7 +47,7 @@ public: } // devices - required_device m_maincpu; + required_device m_maincpu; required_device m_video; protected: @@ -90,7 +90,7 @@ void fungames_state::video_start() { } -static MACHINE_CONFIG_START( fungames, fungames_state ) +static MACHINE_CONFIG_START( fungames ) /* basic machine hardware */ MCFG_DEVICE_ADD("maincpu", NETLIST_CPU, NETLIST_CLOCK) @@ -134,5 +134,5 @@ ROM_START( take5 ) ROM_END -GAME( 1976, biplane4, 0, fungames, 0, driver_device, 0, ROT0, "Fun Games", "Biplane 4 [TTL]", MACHINE_IS_SKELETON ) -GAME( 1975, take5, 0, fungames, 0, driver_device, 0, ROT0, "Fun Games", "Take 5 [TTL]", MACHINE_IS_SKELETON ) +GAME( 1976, biplane4, 0, fungames, 0, fungames_state, 0, ROT0, "Fun Games", "Biplane 4 [TTL]", MACHINE_IS_SKELETON ) +GAME( 1975, take5, 0, fungames, 0, fungames_state, 0, ROT0, "Fun Games", "Take 5 [TTL]", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/funkball.cpp b/src/mame/drivers/funkball.cpp index c15c858e340..bd0bc704f68 100644 --- a/src/mame/drivers/funkball.cpp +++ b/src/mame/drivers/funkball.cpp @@ -764,7 +764,7 @@ void funkball_state::machine_reset() m_voodoo_pci_regs.base_addr = 0xff000000; } -static MACHINE_CONFIG_START( funkball, funkball_state ) +static MACHINE_CONFIG_START( funkball ) MCFG_CPU_ADD("maincpu", MEDIAGX, 66666666*3.5) // 66,6 MHz x 3.5 MCFG_CPU_PROGRAM_MAP(funkball_map) MCFG_CPU_IO_MAP(funkball_io) @@ -822,4 +822,4 @@ ROM_START( funkball ) ROM_END -GAME(1998, funkball, 0, funkball, funkball, driver_device, 0, ROT0, "dgPIX Entertainment Inc.", "Funky Ball", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +GAME(1998, funkball, 0, funkball, funkball, funkball_state, 0, ROT0, "dgPIX Entertainment Inc.", "Funky Ball", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) diff --git a/src/mame/drivers/funkybee.cpp b/src/mame/drivers/funkybee.cpp index 3f237c9c38c..b92d57baf76 100644 --- a/src/mame/drivers/funkybee.cpp +++ b/src/mame/drivers/funkybee.cpp @@ -282,7 +282,7 @@ void funkybee_state::machine_reset() m_gfx_bank = 0; } -static MACHINE_CONFIG_START( funkybee, funkybee_state ) +static MACHINE_CONFIG_START( funkybee ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 3072000) /* 3.072 MHz */ @@ -419,7 +419,7 @@ ROM_START( skylancre ) ROM_LOAD( "18s030.1a", 0x0000, 0x0020, CRC(e645bacb) SHA1(5f4c299c4cf165fd229731c0e5799a34892bf28e) ) ROM_END -GAME( 1982, funkybee, 0, funkybee, funkybee, driver_device, 0, ROT90, "Orca", "Funky Bee", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, funkybeeb, funkybee, funkybee, funkybeeb, driver_device,0, ROT90, "bootleg", "Funky Bee (bootleg, harder)", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, skylancr, 0, funkybee, skylancr, driver_device, 0, ROT90, "Orca", "Sky Lancer", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, skylancre, skylancr, funkybee, skylancre, driver_device,0, ROT90, "Orca (Esco Trading Co license)", "Sky Lancer (Esco Trading Co license)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, funkybee, 0, funkybee, funkybee, funkybee_state, 0, ROT90, "Orca", "Funky Bee", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, funkybeeb, funkybee, funkybee, funkybeeb, funkybee_state, 0, ROT90, "bootleg", "Funky Bee (bootleg, harder)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, skylancr, 0, funkybee, skylancr, funkybee_state, 0, ROT90, "Orca", "Sky Lancer", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, skylancre, skylancr, funkybee, skylancre, funkybee_state, 0, ROT90, "Orca (Esco Trading Co license)", "Sky Lancer (Esco Trading Co license)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/funkyjet.cpp b/src/mame/drivers/funkyjet.cpp index d3e6b4476ae..c93ded46258 100644 --- a/src/mame/drivers/funkyjet.cpp +++ b/src/mame/drivers/funkyjet.cpp @@ -310,7 +310,7 @@ void funkyjet_state::machine_start() { } -static MACHINE_CONFIG_START( funkyjet, funkyjet_state ) +static MACHINE_CONFIG_START( funkyjet ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_28MHz/2) /* 28 MHz crystal */ @@ -365,7 +365,7 @@ static MACHINE_CONFIG_START( funkyjet, funkyjet_state ) MCFG_SOUND_ROUTE(0, "lspeaker", 0.45) MCFG_SOUND_ROUTE(1, "rspeaker", 0.45) - MCFG_OKIM6295_ADD("oki", XTAL_28MHz/28, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", XTAL_28MHz/28, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.50) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.50) MACHINE_CONFIG_END diff --git a/src/mame/drivers/funtech.cpp b/src/mame/drivers/funtech.cpp index dcd6263c6db..1ecd23625dd 100644 --- a/src/mame/drivers/funtech.cpp +++ b/src/mame/drivers/funtech.cpp @@ -484,7 +484,7 @@ void fun_tech_corp_state::machine_reset() { } -static MACHINE_CONFIG_START( funtech, fun_tech_corp_state ) +static MACHINE_CONFIG_START( funtech ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80,4000000) /* ? MHz */ @@ -530,4 +530,4 @@ ROM_START( fts2in1 ) ROM_LOAD16_BYTE( "u30.bin", 0x00001, 0x20000, CRC(d572bddc) SHA1(06499aeb47085a02af9eb4987ed987f9a3a397f7) ) ROM_END -GAMEL( 1993, fts2in1, 0, funtech, funtech, driver_device, 0, ROT0, "Fun Tech Corporation", "Super Two In One", 0, layout_fts2in1 ) +GAMEL( 1993, fts2in1, 0, funtech, funtech, fun_tech_corp_state, 0, ROT0, "Fun Tech Corporation", "Super Two In One", 0, layout_fts2in1 ) diff --git a/src/mame/drivers/funworld.cpp b/src/mame/drivers/funworld.cpp index a45cded895f..9db102d1b23 100644 --- a/src/mame/drivers/funworld.cpp +++ b/src/mame/drivers/funworld.cpp @@ -2970,7 +2970,7 @@ MACHINE_RESET_MEMBER(funworld_state, lunapark) * Machine Drivers * **************************/ -static MACHINE_CONFIG_START( fw1stpal, funworld_state ) +static MACHINE_CONFIG_START( fw1stpal ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M65SC02, CPU_CLOCK) /* 2MHz */ MCFG_CPU_PROGRAM_MAP(funworld_map) @@ -6897,90 +6897,90 @@ DRIVER_INIT_MEMBER(funworld_state, rcdinch) /* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS LAYOUT */ // Jolly Card based... -GAMEL( 1985, jollycrd, 0, fw1stpal, funworld, driver_device, 0, ROT0, "TAB Austria", "Jolly Card (Austrian, set 1)", 0, layout_jollycrd ) -GAMEL( 1985, jollycrda, jollycrd, fw1stpal, funworld, driver_device, 0, ROT0, "TAB Austria", "Jolly Card (Austrian, set 2)", 0, layout_jollycrd ) -GAMEL( 1985, jolyc3x3, jollycrd, fw1stpal, funworld, driver_device, 0, ROT0, "TAB Austria", "Jolly Card (3x3 deal)", 0, layout_jollycrd ) -GAMEL( 1993, jolycmzs, jollycrd, cuoreuno, jolyc980, driver_device, 0, ROT0, "MZS Tech", "Jolly Card Professional 2.0 (MZS Tech)", 0, layout_jollycrd ) -GAMEL( 2000, jolyc980, jollycrd, cuoreuno, jolyc980, driver_device, 0, ROT0, "Spale Soft", "Jolly Card Professional 2.0 (Spale Soft)", 0, layout_jollycrd ) -GAMEL( 1998, jolycdev, jollycrd, fw1stpal, funworld, driver_device, 0, ROT0, "TAB Austria / Evona Electronic", "Jolly Card (Evona Electronic)", 0, layout_jollycrd ) -GAMEL( 1985, jolyccra, jollycrd, cuoreuno, jolycdcr, driver_device, 0, ROT0, "TAB Austria", "Jolly Card (Croatian, set 1)", 0, layout_jollycrd ) -GAMEL( 1993, jolyccrb, jollycrd, cuoreuno, jolycdcr, driver_device, 0, ROT0, "Soft Design", "Jolly Card (Croatian, set 2)", 0, layout_jollycrd ) -GAMEL( 1985, sjcd2kx3, jollycrd, fw1stpal, funworld, driver_device, 0, ROT0, "M.P.", "Super Joly 2000 - 3x", 0, layout_jollycrd ) -GAME( 1986, jolycdab, jollycrd, fw1stpal, funworld, driver_device, 0, ROT0, "Inter Games", "Jolly Card (Austrian, Fun World, bootleg)", MACHINE_NOT_WORKING ) +GAMEL( 1985, jollycrd, 0, fw1stpal, funworld, funworld_state, 0, ROT0, "TAB Austria", "Jolly Card (Austrian, set 1)", 0, layout_jollycrd ) +GAMEL( 1985, jollycrda, jollycrd, fw1stpal, funworld, funworld_state, 0, ROT0, "TAB Austria", "Jolly Card (Austrian, set 2)", 0, layout_jollycrd ) +GAMEL( 1985, jolyc3x3, jollycrd, fw1stpal, funworld, funworld_state, 0, ROT0, "TAB Austria", "Jolly Card (3x3 deal)", 0, layout_jollycrd ) +GAMEL( 1993, jolycmzs, jollycrd, cuoreuno, jolyc980, funworld_state, 0, ROT0, "MZS Tech", "Jolly Card Professional 2.0 (MZS Tech)", 0, layout_jollycrd ) +GAMEL( 2000, jolyc980, jollycrd, cuoreuno, jolyc980, funworld_state, 0, ROT0, "Spale Soft", "Jolly Card Professional 2.0 (Spale Soft)", 0, layout_jollycrd ) +GAMEL( 1998, jolycdev, jollycrd, fw1stpal, funworld, funworld_state, 0, ROT0, "TAB Austria / Evona Electronic", "Jolly Card (Evona Electronic)", 0, layout_jollycrd ) +GAMEL( 1985, jolyccra, jollycrd, cuoreuno, jolycdcr, funworld_state, 0, ROT0, "TAB Austria", "Jolly Card (Croatian, set 1)", 0, layout_jollycrd ) +GAMEL( 1993, jolyccrb, jollycrd, cuoreuno, jolycdcr, funworld_state, 0, ROT0, "Soft Design", "Jolly Card (Croatian, set 2)", 0, layout_jollycrd ) +GAMEL( 1985, sjcd2kx3, jollycrd, fw1stpal, funworld, funworld_state, 0, ROT0, "M.P.", "Super Joly 2000 - 3x", 0, layout_jollycrd ) +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, driver_device, 0, ROT0, "bootleg", "Jolly Card (Italian, different colors, set 1)", 0, layout_jollycrd ) // italian, CPLD, different colors. -GAMEL( 1990, jolycdie, jollycrd, cuoreuno, jolycdib, driver_device, 0, ROT0, "bootleg", "Jolly Card (Italian, different colors, set 2)", 0, layout_jollycrd ) // not from TAB blue PCB +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 // Bonus Card based... -GAMEL( 1986, bonuscrd, 0, fw2ndpal, bonuscrd, driver_device, 0, ROT0, "Fun World", "Bonus Card (Austrian)", MACHINE_IMPERFECT_COLORS, layout_bonuscrd ) // use fw1stpal machine for green background -GAMEL( 1986, bonuscrda, bonuscrd, fw2ndpal, bonuscrd, driver_device, 0, ROT0, "Fun World", "Bonus Card (Austrian, ATG Electronic hack)", MACHINE_IMPERFECT_COLORS, layout_bonuscrd ) // use fw1stpal machine for green background -GAMEL( 1986, bigdeal, bonuscrd, fw2ndpal, bigdeal, driver_device, 0, ROT0, "Fun World", "Big Deal (Hungarian, set 1)", MACHINE_IMPERFECT_COLORS, layout_bonuscrd ) -GAMEL( 1986, bigdealb, bonuscrd, fw2ndpal, bigdeal, driver_device, 0, ROT0, "Fun World", "Big Deal (Hungarian, set 2)", MACHINE_IMPERFECT_COLORS, layout_bonuscrd ) +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 +GAMEL( 1986, bonuscrda, bonuscrd, fw2ndpal, bonuscrd, funworld_state, 0, ROT0, "Fun World", "Bonus Card (Austrian, ATG Electronic hack)", MACHINE_IMPERFECT_COLORS, layout_bonuscrd ) // use fw1stpal machine for green background +GAMEL( 1986, bigdeal, bonuscrd, fw2ndpal, bigdeal, funworld_state, 0, ROT0, "Fun World", "Big Deal (Hungarian, set 1)", MACHINE_IMPERFECT_COLORS, layout_bonuscrd ) +GAMEL( 1986, bigdealb, bonuscrd, fw2ndpal, bigdeal, funworld_state, 0, ROT0, "Fun World", "Big Deal (Hungarian, set 2)", MACHINE_IMPERFECT_COLORS, layout_bonuscrd ) // CMC Italian jamma PCB's... -GAMEL( 1996, cuoreuno, 0, cuoreuno, cuoreuno, driver_device, 0, ROT0, "C.M.C.", "Cuore 1 (Italian)", 0, layout_jollycrd ) -GAMEL( 1997, elephfam, 0, cuoreuno, cuoreuno, driver_device, 0, ROT0, "C.M.C.", "Elephant Family (Italian, new)", 0, layout_jollycrd ) -GAMEL( 1996, elephfmb, elephfam, cuoreuno, cuoreuno, driver_device, 0, ROT0, "C.M.C.", "Elephant Family (Italian, old)", 0, layout_jollycrd ) -GAMEL( 1996, pool10, 0, cuoreuno, pool10, driver_device, 0, ROT0, "C.M.C.", "Pool 10 (Italian, set 1)", 0, layout_jollycrd ) -GAMEL( 1996, pool10b, pool10, cuoreuno, cuoreuno, driver_device, 0, ROT0, "C.M.C.", "Pool 10 (Italian, set 2)", 0, layout_jollycrd ) -GAMEL( 1996, pool10c, pool10, cuoreuno, cuoreuno, driver_device, 0, ROT0, "C.M.C.", "Pool 10 (Italian, set 3)", 0, layout_jollycrd ) -GAMEL( 1997, pool10d, pool10, cuoreuno, cuoreuno, driver_device, 0, ROT0, "C.M.C.", "Pool 10 (Italian, set 4)", 0, layout_jollycrd ) -GAMEL( 1997, pool10f, pool10, cuoreuno, cuoreuno, driver_device, 0, ROT0, "C.M.C.", "Pool 10 (Italian, set 5)", 0, layout_jollycrd ) -GAMEL( 1996, pool10g, pool10, cuoreuno, cuoreuno, driver_device, 0, ROT0, "C.M.C.", "Pool 10 (Italian, set 6)", 0, layout_jollycrd ) -GAMEL( 1996, pool10h, pool10, cuoreuno, pool10, driver_device, 0, ROT0, "C.M.C.", "Pool 10 (Italian, set 7)", 0, layout_jollycrd ) -GAMEL( 1997, pool10i, pool10, cuoreuno, pool10, driver_device, 0, ROT0, "C.M.C.", "Pool 10 (Italian, set 8)", 0, layout_jollycrd ) -GAMEL( 2001, royal, pool10, royalcd1, royal, driver_device, 0, ROT0, "", "Royal (Pool 10 hack)", 0, layout_jollycrd ) -GAMEL( 1997, tortufam, 0, cuoreuno, cuoreuno, driver_device, 0, ROT0, "C.M.C.", "Tortuga Family (Italian)", 0, layout_jollycrd ) -GAMEL( 1996, potgame, 0, cuoreuno, cuoreuno, driver_device, 0, ROT0, "C.M.C.", "Pot Game (Italian)", 0, layout_jollycrd ) -GAMEL( 1996, bottle10, 0, cuoreuno, cuoreuno, driver_device, 0, ROT0, "C.M.C.", "Bottle 10 (Italian, set 1)", 0, layout_jollycrd ) -GAMEL( 1996, bottl10b, bottle10, cuoreuno, cuoreuno, driver_device, 0, ROT0, "C.M.C.", "Bottle 10 (Italian, set 2)", 0, layout_jollycrd ) -GAMEL( 1998, lunapark, 0, lunapark, lunapark, driver_device, 0, ROT0, "", "Luna Park (set 1, dual program)", 0, layout_jollycrd ) // mirrored video RAM (4000/5000 to 6000/7000). -GAMEL( 1998, lunaparkb, lunapark, lunapark, lunapark, driver_device, 0, ROT0, "", "Luna Park (set 2, dual program)", 0, layout_jollycrd ) // mirrored video RAM (4000/5000 to 6000/7000). -GAMEL( 1998, lunaparkc, lunapark, cuoreuno, cuoreuno, driver_device, 0, ROT0, "", "Luna Park (set 3)", 0, layout_jollycrd ) // regular video RAM 6000/7000. -GAMEL( 1998, crystal, 0, cuoreuno, cuoreuno, driver_device, 0, ROT0, "J.C.D. srl", "Crystal Colours (CMC hardware)", 0, layout_jollycrd ) +GAMEL( 1996, cuoreuno, 0, cuoreuno, cuoreuno, funworld_state, 0, ROT0, "C.M.C.", "Cuore 1 (Italian)", 0, layout_jollycrd ) +GAMEL( 1997, elephfam, 0, cuoreuno, cuoreuno, funworld_state, 0, ROT0, "C.M.C.", "Elephant Family (Italian, new)", 0, layout_jollycrd ) +GAMEL( 1996, elephfmb, elephfam, cuoreuno, cuoreuno, funworld_state, 0, ROT0, "C.M.C.", "Elephant Family (Italian, old)", 0, layout_jollycrd ) +GAMEL( 1996, pool10, 0, cuoreuno, pool10, funworld_state, 0, ROT0, "C.M.C.", "Pool 10 (Italian, set 1)", 0, layout_jollycrd ) +GAMEL( 1996, pool10b, pool10, cuoreuno, cuoreuno, funworld_state, 0, ROT0, "C.M.C.", "Pool 10 (Italian, set 2)", 0, layout_jollycrd ) +GAMEL( 1996, pool10c, pool10, cuoreuno, cuoreuno, funworld_state, 0, ROT0, "C.M.C.", "Pool 10 (Italian, set 3)", 0, layout_jollycrd ) +GAMEL( 1997, pool10d, pool10, cuoreuno, cuoreuno, funworld_state, 0, ROT0, "C.M.C.", "Pool 10 (Italian, set 4)", 0, layout_jollycrd ) +GAMEL( 1997, pool10f, pool10, cuoreuno, cuoreuno, funworld_state, 0, ROT0, "C.M.C.", "Pool 10 (Italian, set 5)", 0, layout_jollycrd ) +GAMEL( 1996, pool10g, pool10, cuoreuno, cuoreuno, funworld_state, 0, ROT0, "C.M.C.", "Pool 10 (Italian, set 6)", 0, layout_jollycrd ) +GAMEL( 1996, pool10h, pool10, cuoreuno, pool10, funworld_state, 0, ROT0, "C.M.C.", "Pool 10 (Italian, set 7)", 0, layout_jollycrd ) +GAMEL( 1997, pool10i, pool10, cuoreuno, pool10, funworld_state, 0, ROT0, "C.M.C.", "Pool 10 (Italian, set 8)", 0, layout_jollycrd ) +GAMEL( 2001, royal, pool10, royalcd1, royal, funworld_state, 0, ROT0, "", "Royal (Pool 10 hack)", 0, layout_jollycrd ) +GAMEL( 1997, tortufam, 0, cuoreuno, cuoreuno, funworld_state, 0, ROT0, "C.M.C.", "Tortuga Family (Italian)", 0, layout_jollycrd ) +GAMEL( 1996, potgame, 0, cuoreuno, cuoreuno, funworld_state, 0, ROT0, "C.M.C.", "Pot Game (Italian)", 0, layout_jollycrd ) +GAMEL( 1996, bottle10, 0, cuoreuno, cuoreuno, funworld_state, 0, ROT0, "C.M.C.", "Bottle 10 (Italian, set 1)", 0, layout_jollycrd ) +GAMEL( 1996, bottl10b, bottle10, cuoreuno, cuoreuno, funworld_state, 0, ROT0, "C.M.C.", "Bottle 10 (Italian, set 2)", 0, layout_jollycrd ) +GAMEL( 1998, lunapark, 0, lunapark, lunapark, funworld_state, 0, ROT0, "", "Luna Park (set 1, dual program)", 0, layout_jollycrd ) // mirrored video RAM (4000/5000 to 6000/7000). +GAMEL( 1998, lunaparkb, lunapark, lunapark, lunapark, funworld_state, 0, ROT0, "", "Luna Park (set 2, dual program)", 0, layout_jollycrd ) // mirrored video RAM (4000/5000 to 6000/7000). +GAMEL( 1998, lunaparkc, lunapark, cuoreuno, cuoreuno, funworld_state, 0, ROT0, "", "Luna Park (set 3)", 0, layout_jollycrd ) // regular video RAM 6000/7000. +GAMEL( 1998, crystal, 0, cuoreuno, cuoreuno, funworld_state, 0, ROT0, "J.C.D. srl", "Crystal Colours (CMC hardware)", 0, layout_jollycrd ) // Royal Card based... -GAMEL( 1991, royalcrd, 0, royalcd2, royalcrd, driver_device, 0, ROT0, "TAB Austria", "Royal Card (Austrian, set 1)", 0, layout_jollycrd ) -GAMEL( 1991, royalcrda, royalcrd, royalcd2, royalcrd, driver_device, 0, ROT0, "TAB Austria", "Royal Card (Austrian, set 2)", 0, layout_jollycrd ) -GAMEL( 1991, royalcrdb, royalcrd, royalcd1, royalcrd, driver_device, 0, ROT0, "TAB Austria", "Royal Card (Austrian/Polish, set 3)", 0, layout_jollycrd ) -GAMEL( 1991, royalcrdc, royalcrd, royalcd2, royalcrd, driver_device, 0, ROT0, "TAB Austria", "Royal Card (Austrian, set 4)", MACHINE_IMPERFECT_GRAPHICS, layout_jollycrd ) -GAMEL( 1991, royalcrdd, royalcrd, royalcd1, royalcrd, driver_device, 0, ROT0, "TAB Austria", "Royal Card (Austrian, set 5)", 0, layout_royalcrd ) -GAMEL( 1991, royalcrde, royalcrd, royalcd1, royalcrd, driver_device, 0, ROT0, "TAB Austria", "Royal Card (Austrian, set 6)", 0, layout_jollycrd ) -GAMEL( 1991, royalcrdt, royalcrd, royalcd1, royalcrd, driver_device, 0, ROT0, "TAB Austria", "Royal Card (TAB original)", 0, layout_jollycrd ) +GAMEL( 1991, royalcrd, 0, royalcd2, royalcrd, funworld_state, 0, ROT0, "TAB Austria", "Royal Card (Austrian, set 1)", 0, layout_jollycrd ) +GAMEL( 1991, royalcrda, royalcrd, royalcd2, royalcrd, funworld_state, 0, ROT0, "TAB Austria", "Royal Card (Austrian, set 2)", 0, layout_jollycrd ) +GAMEL( 1991, royalcrdb, royalcrd, royalcd1, royalcrd, funworld_state, 0, ROT0, "TAB Austria", "Royal Card (Austrian/Polish, set 3)", 0, layout_jollycrd ) +GAMEL( 1991, royalcrdc, royalcrd, royalcd2, royalcrd, funworld_state, 0, ROT0, "TAB Austria", "Royal Card (Austrian, set 4)", MACHINE_IMPERFECT_GRAPHICS, layout_jollycrd ) +GAMEL( 1991, royalcrdd, royalcrd, royalcd1, royalcrd, funworld_state, 0, ROT0, "TAB Austria", "Royal Card (Austrian, set 5)", 0, layout_royalcrd ) +GAMEL( 1991, royalcrde, royalcrd, royalcd1, royalcrd, funworld_state, 0, ROT0, "TAB Austria", "Royal Card (Austrian, set 6)", 0, layout_jollycrd ) +GAMEL( 1991, royalcrdt, royalcrd, royalcd1, royalcrd, funworld_state, 0, ROT0, "TAB Austria", "Royal Card (TAB original)", 0, layout_jollycrd ) GAME( 1991, royalcrdf, royalcrd, royalcd1, royalcrd, funworld_state, royalcdc, ROT0, "Evona Electronic","Royal Card (Slovak, encrypted)", MACHINE_NOT_WORKING ) -GAMEL( 1990, royalcrdg, royalcrd, royalcd1, royalcrd, driver_device, 0, ROT0, "bootleg", "Royal Card (Austrian, set 7, CMC C1030 HW)", 0, layout_jollycrd ) // big CPLD -GAMEL( 1991, royalcrdh, royalcrd, royalcd2, royalcrd, driver_device, 0, ROT0, "TAB Austria", "Royal Card (Austrian, set 8)", 0 , layout_jollycrd ) -GAMEL( 1991, royalcdfr, royalcrd, royalcd1, royalcrd, driver_device, 0, ROT0, "TAB Austria", "Royal Card (French)", 0, layout_jollycrd ) -GAME( 1993, royalcrdp, royalcrd, cuoreuno, royalcrd, driver_device, 0, ROT0, "Digital Dreams", "Royal Card v2.0 Professional", 0 ) -GAMEL( 199?, witchryl, 0, witchryl, witchryl, driver_device, 0, ROT0, "Video Klein", "Witch Royal (Export version 2.1)", 0, layout_jollycrd ) +GAMEL( 1990, royalcrdg, royalcrd, royalcd1, royalcrd, funworld_state, 0, ROT0, "bootleg", "Royal Card (Austrian, set 7, CMC C1030 HW)", 0, layout_jollycrd ) // big CPLD +GAMEL( 1991, royalcrdh, royalcrd, royalcd2, royalcrd, funworld_state, 0, ROT0, "TAB Austria", "Royal Card (Austrian, set 8)", 0 , layout_jollycrd ) +GAMEL( 1991, royalcdfr, royalcrd, royalcd1, royalcrd, funworld_state, 0, ROT0, "TAB Austria", "Royal Card (French)", 0, layout_jollycrd ) +GAME( 1993, royalcrdp, royalcrd, cuoreuno, royalcrd, funworld_state, 0, ROT0, "Digital Dreams", "Royal Card v2.0 Professional", 0 ) +GAMEL( 199?, witchryl, 0, witchryl, witchryl, funworld_state, 0, ROT0, "Video Klein", "Witch Royal (Export version 2.1)", 0, layout_jollycrd ) // Lucky Lady based... -GAMEL( 1991, lluck3x3, royalcrd, cuoreuno, royalcrd, driver_device, 0, ROT0, "TAB Austria", "Lucky Lady (3x3 deal)", 0, layout_jollycrd ) -GAMEL( 1991, lluck4x1, royalcrd, royalcd1, royalcrd, driver_device, 0, ROT0, "TAB Austria", "Lucky Lady (4x1 aces)", 0, layout_jollycrd ) +GAMEL( 1991, lluck3x3, royalcrd, cuoreuno, royalcrd, funworld_state, 0, ROT0, "TAB Austria", "Lucky Lady (3x3 deal)", 0, layout_jollycrd ) +GAMEL( 1991, lluck4x1, royalcrd, royalcd1, royalcrd, funworld_state, 0, ROT0, "TAB Austria", "Lucky Lady (4x1 aces)", 0, layout_jollycrd ) // Magic Card 2 based... -GAMEL( 1996, magicrd2, 0, magicrd2, magicrd2, driver_device, 0, ROT0, "Impera", "Magic Card II (Bulgarian)", 0, layout_jollycrd ) -GAMEL( 1996, magicrd2a, magicrd2, magicrd2, magicrd2, driver_device, 0, ROT0, "Impera", "Magic Card II (Nov, Yugoslavian)", 0, layout_jollycrd ) +GAMEL( 1996, magicrd2, 0, magicrd2, magicrd2, funworld_state, 0, ROT0, "Impera", "Magic Card II (Bulgarian)", 0, layout_jollycrd ) +GAMEL( 1996, magicrd2a, magicrd2, magicrd2, magicrd2, funworld_state, 0, ROT0, "Impera", "Magic Card II (Nov, Yugoslavian)", 0, layout_jollycrd ) GAME( 1996, magicrd2b, magicrd2, magicrd2, magicrd2, funworld_state, magicd2b, ROT0, "Impera", "Magic Card II (green TAB or Impera board)", 0 ) GAME( 1996, magicrd2c, magicrd2, magicrd2, magicrd2, funworld_state, magicd2c, ROT0, "Impera", "Magic Card II (blue TAB board, encrypted)", 0 ) // Joker Card based... -GAMEL( 1993, vegasslw, 0, fw2ndpal, vegasslw, driver_device, 0, ROT0, "Fun World", "Royal Vegas Joker Card (slow deal)", 0, layout_jollycrd ) -GAMEL( 1993, vegasfst, vegasslw, fw2ndpal, vegasfst, driver_device, 0, ROT0, "Soft Design", "Royal Vegas Joker Card (fast deal)", 0, layout_jollycrd ) -GAMEL( 1993, vegasfte, vegasslw, fw2ndpal, vegasfte, driver_device, 0, ROT0, "Soft Design", "Royal Vegas Joker Card (fast deal, English gfx)", 0, layout_jollycrd ) -GAMEL( 1993, vegasmil, vegasslw, fw2ndpal, vegasmil, driver_device, 0, ROT0, "Mile", "Royal Vegas Joker Card (fast deal, Mile)", 0, layout_jollycrd ) +GAMEL( 1993, vegasslw, 0, fw2ndpal, vegasslw, funworld_state, 0, ROT0, "Fun World", "Royal Vegas Joker Card (slow deal)", 0, layout_jollycrd ) +GAMEL( 1993, vegasfst, vegasslw, fw2ndpal, vegasfst, funworld_state, 0, ROT0, "Soft Design", "Royal Vegas Joker Card (fast deal)", 0, layout_jollycrd ) +GAMEL( 1993, vegasfte, vegasslw, fw2ndpal, vegasfte, funworld_state, 0, ROT0, "Soft Design", "Royal Vegas Joker Card (fast deal, English gfx)", 0, layout_jollycrd ) +GAMEL( 1993, vegasmil, vegasslw, fw2ndpal, vegasmil, funworld_state, 0, ROT0, "Mile", "Royal Vegas Joker Card (fast deal, Mile)", 0, layout_jollycrd ) // Jolly Joker based... -GAMEL( 198?, jolyjokr, 0, fw1stpal, funworld, driver_device, 0, ROT0, "Impera", "Jolly Joker (98bet, set 1)", 0, layout_jollycrd ) -GAMEL( 198?, jolyjokra, jolyjokr, fw1stpal, jolyjokra, driver_device, 0, ROT0, "Impera", "Jolly Joker (98bet, set 2)", 0, layout_jollycrd ) -GAMEL( 198?, jolyjokrb, jolyjokr, fw1stpal, funworld, driver_device, 0, ROT0, "Impera", "Jolly Joker (40bet, Croatian hack)", 0, layout_jollycrd ) -GAMEL( 198?, jolyjokrc, jolyjokr, fw1stpal, funworld, driver_device, 0, ROT0, "Apple Time", "Jolly Joker (Apple Time)", MACHINE_NOT_WORKING, layout_jollycrd ) // bad program ROM... +GAMEL( 198?, jolyjokr, 0, fw1stpal, funworld, funworld_state, 0, ROT0, "Impera", "Jolly Joker (98bet, set 1)", 0, layout_jollycrd ) +GAMEL( 198?, jolyjokra, jolyjokr, fw1stpal, jolyjokra, funworld_state, 0, ROT0, "Impera", "Jolly Joker (98bet, set 2)", 0, layout_jollycrd ) +GAMEL( 198?, jolyjokrb, jolyjokr, fw1stpal, funworld, funworld_state, 0, ROT0, "Impera", "Jolly Joker (40bet, Croatian hack)", 0, layout_jollycrd ) +GAMEL( 198?, jolyjokrc, jolyjokr, fw1stpal, funworld, funworld_state, 0, ROT0, "Apple Time", "Jolly Joker (Apple Time)", MACHINE_NOT_WORKING, layout_jollycrd ) // bad program ROM... // Encrypted games... GAME( 1992, multiwin, 0, fw1stpal, funworld, funworld_state, multiwin, ROT0, "Fun World", "Multi Win (Ver.0167, encrypted)", MACHINE_NOT_WORKING ) -GAME( 1993, powercrd, 0, fw2ndpal, funworld, driver_device, 0, ROT0, "Fun World", "Power Card (Ver 0263, encrypted)", MACHINE_NOT_WORKING ) // clone of Bonus Card. -GAME( 1993, megacard, 0, fw2ndpal, funworld, driver_device, 0, ROT0, "Fun World", "Mega Card (Ver.0210, encrypted)", MACHINE_NOT_WORKING ) -GAME( 1993, jokercrd, 0, fw2ndpal, funworld, driver_device, 0, ROT0, "Vesely Svet", "Joker Card (Ver.A267BC, encrypted)", MACHINE_NOT_WORKING ) +GAME( 1993, powercrd, 0, fw2ndpal, funworld, funworld_state, 0, ROT0, "Fun World", "Power Card (Ver 0263, encrypted)", MACHINE_NOT_WORKING ) // clone of Bonus Card. +GAME( 1993, megacard, 0, fw2ndpal, funworld, funworld_state, 0, ROT0, "Fun World", "Mega Card (Ver.0210, encrypted)", MACHINE_NOT_WORKING ) +GAME( 1993, jokercrd, 0, fw2ndpal, funworld, funworld_state, 0, ROT0, "Vesely Svet", "Joker Card (Ver.A267BC, encrypted)", MACHINE_NOT_WORKING ) GAME( 198?, saloon, 0, saloon, saloon, funworld_state, saloon, ROT0, "", "Saloon (French, encrypted)", MACHINE_NOT_WORKING ) // Encrypted TAB blue PCB... @@ -6998,14 +6998,14 @@ GAME( 199?, mongolnw, 0, royalcd1, royalcrd, funworld_state, mongolnw, GAME( 199?, soccernw, 0, royalcd1, royalcrd, funworld_state, soccernw, ROT0, "", "Soccer New (Italian)", MACHINE_UNEMULATED_PROTECTION ) // Other games... -GAME( 198?, funquiz, 0, funquiz, funquiz, driver_device, 0, ROT0, "Fun World / Oehlinger", "Fun World Quiz (Austrian)", 0 ) -GAMEL( 1986, novoplay, 0, fw2ndpal, novoplay, driver_device, 0, ROT0, "Admiral/Novomatic", "Novo Play Multi Card / Club Card", 0, layout_novoplay ) -GAME( 1991, intrgmes, 0, intrgmes, funworld, driver_device, 0, ROT0, "Inter Games", "Unknown Inter Games poker", MACHINE_NOT_WORKING ) -GAMEL( 1985, fw_a7_11, 0, fw_a7_11, funworld, driver_device, 0, ROT0, "Fun World", "Unknown Fun World A7-11 game 1", MACHINE_NOT_WORKING, layout_jollycrd ) -GAMEL( 1985, fw_a7_11a, fw_a7_11, fw_a7_11, funworld, driver_device, 0, ROT0, "Fun World", "Unknown Fun World A7-11 game 2", MACHINE_NOT_WORKING, layout_jollycrd ) -GAMEL( 1991, fw_a0_1, 0, fw_a7_11, funworld, driver_device, 0, ROT0, "Fun World", "Unknown Fun World A0-1 game", MACHINE_NOT_WORKING, layout_jollycrd ) +GAME( 198?, funquiz, 0, funquiz, funquiz, funworld_state, 0, ROT0, "Fun World / Oehlinger", "Fun World Quiz (Austrian)", 0 ) +GAMEL( 1986, novoplay, 0, fw2ndpal, novoplay, funworld_state, 0, ROT0, "Admiral/Novomatic", "Novo Play Multi Card / Club Card", 0, layout_novoplay ) +GAME( 1991, intrgmes, 0, intrgmes, funworld, funworld_state, 0, ROT0, "Inter Games", "Unknown Inter Games poker", MACHINE_NOT_WORKING ) +GAMEL( 1985, fw_a7_11, 0, fw_a7_11, funworld, funworld_state, 0, ROT0, "Fun World", "Unknown Fun World A7-11 game 1", MACHINE_NOT_WORKING, layout_jollycrd ) +GAMEL( 1985, fw_a7_11a, fw_a7_11, fw_a7_11, funworld, funworld_state, 0, ROT0, "Fun World", "Unknown Fun World A7-11 game 2", MACHINE_NOT_WORKING, layout_jollycrd ) +GAMEL( 1991, fw_a0_1, 0, fw_a7_11, funworld, funworld_state, 0, ROT0, "Fun World", "Unknown Fun World A0-1 game", MACHINE_NOT_WORKING, layout_jollycrd ) // These are 2-in-1 stealth boards, they can run the Poker game, or, using completely separate hardware on the same PCB, a NES / MSX Multigames! -GAMEL( 1991, royalcrd_nes, royalcrd, royalcd2, royalcrd, driver_device, 0, ROT0, "bootleg", "Royal Card (stealth with NES multigame)", MACHINE_NOT_WORKING, layout_jollycrd ) -GAMEL( 1991, royalcrd_msx, royalcrd, royalcd2, royalcrd, driver_device, 0, ROT0, "bootleg", "Royal Card (stealth with MSX multigame)", MACHINE_NOT_WORKING, layout_jollycrd ) +GAMEL( 1991, royalcrd_nes, royalcrd, royalcd2, royalcrd, funworld_state, 0, ROT0, "bootleg", "Royal Card (stealth with NES multigame)", MACHINE_NOT_WORKING, layout_jollycrd ) +GAMEL( 1991, royalcrd_msx, royalcrd, royalcd2, royalcrd, funworld_state, 0, ROT0, "bootleg", "Royal Card (stealth with MSX multigame)", MACHINE_NOT_WORKING, layout_jollycrd ) diff --git a/src/mame/drivers/funybubl.cpp b/src/mame/drivers/funybubl.cpp index 2a353ac37b8..66e89082315 100644 --- a/src/mame/drivers/funybubl.cpp +++ b/src/mame/drivers/funybubl.cpp @@ -216,7 +216,7 @@ void funybubl_state::machine_start() } -static MACHINE_CONFIG_START( funybubl, funybubl_state ) +static MACHINE_CONFIG_START( funybubl ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80,12000000/2) /* 6 MHz?? */ @@ -247,7 +247,7 @@ static MACHINE_CONFIG_START( funybubl, funybubl_state ) MCFG_GENERIC_LATCH_8_ADD("soundlatch") - MCFG_OKIM6295_ADD("oki", 1056000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki", 1056000, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -314,5 +314,5 @@ ROM_START( funybublc ) ROM_END -GAME( 1999, funybubl, 0, funybubl, funybubl, driver_device, 0, ROT0, "In Chang Electronic Co", "Funny Bubble", MACHINE_SUPPORTS_SAVE ) -GAME( 1999, funybublc,funybubl, funybubl, funybubl, driver_device, 0, ROT0, "Comad", "Funny Bubble (Comad version)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, funybubl, 0, funybubl, funybubl, funybubl_state, 0, ROT0, "In Chang Electronic Co", "Funny Bubble", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, funybublc,funybubl, funybubl, funybubl, funybubl_state, 0, ROT0, "Comad", "Funny Bubble (Comad version)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/fuukifg2.cpp b/src/mame/drivers/fuukifg2.cpp index fd9edf74689..9a6f67a37cf 100644 --- a/src/mame/drivers/fuukifg2.cpp +++ b/src/mame/drivers/fuukifg2.cpp @@ -438,7 +438,7 @@ void fuuki16_state::machine_reset() } -static MACHINE_CONFIG_START( fuuki16, fuuki16_state ) +static MACHINE_CONFIG_START( fuuki16 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_32MHz / 2) /* 16 MHz */ @@ -478,7 +478,7 @@ static MACHINE_CONFIG_START( fuuki16, fuuki16_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.30) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.30) - MCFG_OKIM6295_ADD("oki", XTAL_32MHz / 32, OKIM6295_PIN7_HIGH) /* 1 Mhz */ + MCFG_OKIM6295_ADD("oki", XTAL_32MHz / 32, PIN7_HIGH) /* 1 Mhz */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.85) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.85) MACHINE_CONFIG_END @@ -665,6 +665,6 @@ ROM_END ***************************************************************************/ -GAME( 1995, gogomile, 0, fuuki16, gogomile, driver_device, 0, ROT0, "Fuuki", "Susume! Mile Smile / Go Go! Mile Smile (newer)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, gogomileo, gogomile, fuuki16, gogomileo, driver_device, 0, ROT0, "Fuuki", "Susume! Mile Smile / Go Go! Mile Smile (older)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, pbancho, 0, fuuki16, pbancho, driver_device, 0, ROT0, "Fuuki", "Gyakuten!! Puzzle Bancho (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, gogomile, 0, fuuki16, gogomile, fuuki16_state, 0, ROT0, "Fuuki", "Susume! Mile Smile / Go Go! Mile Smile (newer)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, gogomileo, gogomile, fuuki16, gogomileo, fuuki16_state, 0, ROT0, "Fuuki", "Susume! Mile Smile / Go Go! Mile Smile (older)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, pbancho, 0, fuuki16, pbancho, fuuki16_state, 0, ROT0, "Fuuki", "Gyakuten!! Puzzle Bancho (Japan)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/fuukifg3.cpp b/src/mame/drivers/fuukifg3.cpp index 8b3ba1713ca..4d524b7bbd0 100644 --- a/src/mame/drivers/fuukifg3.cpp +++ b/src/mame/drivers/fuukifg3.cpp @@ -546,7 +546,7 @@ void fuuki32_state::machine_reset() } -static MACHINE_CONFIG_START(fuuki32, fuuki32_state) +static MACHINE_CONFIG_START(fuuki32) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68EC020, CPU_CLOCK) /* 20MHz verified */ @@ -725,7 +725,7 @@ ROM_END ***************************************************************************/ -GAME( 1998, asurabld, 0, fuuki32, asurabld, driver_device, 0, ROT0, "Fuuki", "Asura Blade - Sword of Dynasty (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1998, asurabld, 0, fuuki32, asurabld, fuuki32_state, 0, ROT0, "Fuuki", "Asura Blade - Sword of Dynasty (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 2000, asurabus, 0, fuuki32, asurabus, driver_device, 0, ROT0, "Fuuki", "Asura Buster - Eternal Warriors (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 2000, asurabusa, asurabus, fuuki32, asurabusa,driver_device, 0, ROT0, "Fuuki", "Asura Buster - Eternal Warriors (Japan) (ARCADIA review build)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // has pause function on P1 button 4 +GAME( 2000, asurabus, 0, fuuki32, asurabus, fuuki32_state, 0, ROT0, "Fuuki", "Asura Buster - Eternal Warriors (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 2000, asurabusa, asurabus, fuuki32, asurabusa,fuuki32_state, 0, ROT0, "Fuuki", "Asura Buster - Eternal Warriors (Japan) (ARCADIA review build)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // has pause function on P1 button 4 diff --git a/src/mame/drivers/g627.cpp b/src/mame/drivers/g627.cpp index 66c0919f050..069c750b811 100644 --- a/src/mame/drivers/g627.cpp +++ b/src/mame/drivers/g627.cpp @@ -286,7 +286,7 @@ WRITE8_MEMBER( g627_state::lamp_w ) } } -static MACHINE_CONFIG_START( g627, g627_state ) +static MACHINE_CONFIG_START( g627 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 14138000/8) MCFG_CPU_PROGRAM_MAP(g627_map) diff --git a/src/mame/drivers/gaelco.cpp b/src/mame/drivers/gaelco.cpp index d073b99ef58..fee5dc06cc1 100644 --- a/src/mame/drivers/gaelco.cpp +++ b/src/mame/drivers/gaelco.cpp @@ -498,7 +498,7 @@ void gaelco_state::machine_start() membank("okibank")->configure_entries(0, 16, memregion("oki")->base(), 0x10000); } -static MACHINE_CONFIG_START( bigkarnk, gaelco_state ) +static MACHINE_CONFIG_START( bigkarnk ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 10000000) /* MC68000P10, 10 MHz */ @@ -534,11 +534,11 @@ static MACHINE_CONFIG_START( bigkarnk, gaelco_state ) MCFG_SOUND_ADD("ymsnd", YM3812, 3580000) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MCFG_OKIM6295_ADD("oki", 1056000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki", 1056000, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( maniacsq, gaelco_state ) +static MACHINE_CONFIG_START( maniacsq ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000,24000000/2) /* 12 MHz */ @@ -564,12 +564,12 @@ static MACHINE_CONFIG_START( maniacsq, gaelco_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", 1056000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki", 1056000, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_DEVICE_ADDRESS_MAP(AS_0, oki_map) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( squash, gaelco_state ) +static MACHINE_CONFIG_START( squash ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 12000000) /* MC68000P12, 12 MHz */ @@ -597,12 +597,12 @@ static MACHINE_CONFIG_START( squash, gaelco_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", 1056000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki", 1056000, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_DEVICE_ADDRESS_MAP(AS_0, oki_map) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( thoop, gaelco_state ) +static MACHINE_CONFIG_START( thoop ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 12000000) /* MC68000P12, 12 MHz */ @@ -630,7 +630,7 @@ static MACHINE_CONFIG_START( thoop, gaelco_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", 1056000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki", 1056000, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_DEVICE_ADDRESS_MAP(AS_0, oki_map) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -856,9 +856,9 @@ ROM_END * *************************************/ -GAME( 1991, bigkarnk, 0, bigkarnk, bigkarnk, driver_device, 0, ROT0, "Gaelco", "Big Karnak", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, biomtoy, 0, maniacsq, biomtoy, driver_device, 0, ROT0, "Gaelco", "Biomechanical Toy (Ver. 1.0.1885)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, biomtoya, biomtoy, maniacsq, biomtoy, driver_device, 0, ROT0, "Gaelco", "Biomechanical Toy (Ver. 1.0.1884)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, maniacsp, maniacsq, maniacsq, maniacsq, driver_device, 0, ROT0, "Gaelco", "Maniac Square (prototype)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, squash, 0, squash, squash, driver_device, 0, ROT0, "Gaelco", "Squash (Ver. 1.0)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, thoop, 0, thoop, thoop, driver_device, 0, ROT0, "Gaelco", "Thunder Hoop (Ver. 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, bigkarnk, 0, bigkarnk, bigkarnk, gaelco_state, 0, ROT0, "Gaelco", "Big Karnak", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, biomtoy, 0, maniacsq, biomtoy, gaelco_state, 0, ROT0, "Gaelco", "Biomechanical Toy (Ver. 1.0.1885)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, biomtoya, biomtoy, maniacsq, biomtoy, gaelco_state, 0, ROT0, "Gaelco", "Biomechanical Toy (Ver. 1.0.1884)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, maniacsp, maniacsq, maniacsq, maniacsq, gaelco_state, 0, ROT0, "Gaelco", "Maniac Square (prototype)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, squash, 0, squash, squash, gaelco_state, 0, ROT0, "Gaelco", "Squash (Ver. 1.0)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, thoop, 0, thoop, thoop, gaelco_state, 0, ROT0, "Gaelco", "Thunder Hoop (Ver. 1)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/gaelco2.cpp b/src/mame/drivers/gaelco2.cpp index aee69a9213c..0931650c4bb 100644 --- a/src/mame/drivers/gaelco2.cpp +++ b/src/mame/drivers/gaelco2.cpp @@ -159,7 +159,7 @@ static INPUT_PORTS_START( maniacsq ) PORT_BIT( 0xffc0, IP_ACTIVE_LOW, IPT_UNKNOWN ) INPUT_PORTS_END -static MACHINE_CONFIG_START( maniacsq, gaelco2_state ) +static MACHINE_CONFIG_START( maniacsq ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 26000000/2) /* 13 MHz? */ MCFG_CPU_PROGRAM_MAP(maniacsq_map) @@ -292,7 +292,7 @@ static INPUT_PORTS_START( bang ) PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_Y ) PORT_CROSSHAIR(Y, 1.0, -6.0 / 240, 0) PORT_SENSITIVITY(35) PORT_KEYDELTA(15) PORT_PLAYER(2) INPUT_PORTS_END -static MACHINE_CONFIG_START( bang, bang_state ) +static MACHINE_CONFIG_START( bang ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 30000000/2) /* 15 MHz */ MCFG_CPU_PROGRAM_MAP(bang_map) @@ -531,7 +531,7 @@ static INPUT_PORTS_START( alighunt ) PORT_BIT( 0xffc0, IP_ACTIVE_LOW, IPT_UNKNOWN ) INPUT_PORTS_END -static MACHINE_CONFIG_START( alighunt, gaelco2_state ) +static MACHINE_CONFIG_START( alighunt ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 24000000/2) /* 12 MHz */ MCFG_CPU_PROGRAM_MAP(alighunt_map) @@ -767,7 +767,7 @@ static INPUT_PORTS_START( touchgo ) PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE4 ) PORT_TOGGLE INPUT_PORTS_END -static MACHINE_CONFIG_START( touchgo, gaelco2_state ) +static MACHINE_CONFIG_START( touchgo ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 32000000/2) /* 16 MHz */ MCFG_CPU_PROGRAM_MAP(touchgo_map) @@ -981,7 +981,7 @@ static INPUT_PORTS_START( snowboar ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SPECIAL ) INPUT_PORTS_END -static MACHINE_CONFIG_START( snowboar, gaelco2_state ) +static MACHINE_CONFIG_START( snowboar ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 30000000/2) /* 15 MHz */ MCFG_CPU_PROGRAM_MAP(snowboar_map) @@ -1218,7 +1218,7 @@ static INPUT_PORTS_START( wrally2 ) PORT_BIT( 0xff, 0x8A, IPT_PADDLE_V ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(25) PORT_KEYDELTA(25) PORT_REVERSE PORT_NAME("P2 Wheel") INPUT_PORTS_END -static MACHINE_CONFIG_START( wrally2, wrally2_state ) +static MACHINE_CONFIG_START( wrally2 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 26000000/2) /* 13 MHz */ MCFG_CPU_PROGRAM_MAP(wrally2_map) @@ -1529,17 +1529,17 @@ GAME( 1995, touchgon, touchgo, touchgo, touchgo, gaelco2_state, touchgop, ROT GAME( 1995, touchgoe, touchgo, touchgo, touchgo, gaelco2_state, touchgop, ROT0, "Gaelco", "Touch & Go (earlier revision)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) GAME( 1995, touchgok, touchgo, touchgo, touchgo, gaelco2_state, touchgo, ROT0, "Gaelco", "Touch & Go (Korea, unprotected)", MACHINE_IMPERFECT_SOUND ) // doesn't say 'Korea' but was sourced there, shows 2 copyright lines like the 'earlier revision' -GAME( 1995, wrally2, 0, wrally2, wrally2, driver_device, 0, ROT0, "Gaelco", "World Rally 2: Twin Racing", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) +GAME( 1995, wrally2, 0, wrally2, wrally2, wrally2_state, 0, ROT0, "Gaelco", "World Rally 2: Twin Racing", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) -GAME( 1996, maniacsq, 0, maniacsq, maniacsq, driver_device, 0, ROT0, "Gaelco", "Maniac Square (unprotected)", 0 ) +GAME( 1996, maniacsq, 0, maniacsq, maniacsq, gaelco2_state, 0, ROT0, "Gaelco", "Maniac Square (unprotected)", 0 ) GAME( 1996, maniacsqa,maniacsq, maniacsq, maniacsq, gaelco2_state, maniacsqa,ROT0, "Gaelco", "Maniac Square (protected)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) -GAME( 1996, snowboar, 0, snowboar, snowboar, driver_device, 0, ROT0, "Gaelco", "Snow Board Championship (Version 2.1)", 0 ) +GAME( 1996, snowboar, 0, snowboar, snowboar, gaelco2_state, 0, ROT0, "Gaelco", "Snow Board Championship (Version 2.1)", 0 ) GAME( 1996, snowboara,snowboar, snowboar, snowboar, gaelco2_state, snowboar, ROT0, "Gaelco", "Snow Board Championship (Version 2.0)", 0 ) GAME( 1998, bang, 0, bang, bang, bang_state, bang, ROT0, "Gaelco", "Bang!", 0 ) GAME( 1998, bangj, bang, bang, bang, bang_state, bang, ROT0, "Gaelco", "Gun Gabacho (Japan)", 0 ) // are these ACTUALLY Gaelco hardware, or do they just use the same Dallas? -GAME( 1999, grtesoro, 0, maniacsq, maniacsq, driver_device, 0, ROT0, "Nova Desitec", "Gran Tesoro? / Play 2000 (v5.01) (Italy)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) -GAME( 1999, grtesoro4, grtesoro,maniacsq, maniacsq, driver_device, 0, ROT0, "Nova Desitec", "Gran Tesoro? / Play 2000 (v4.0) (Italy)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) +GAME( 1999, grtesoro, 0, maniacsq, maniacsq, gaelco2_state, 0, ROT0, "Nova Desitec", "Gran Tesoro? / Play 2000 (v5.01) (Italy)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) +GAME( 1999, grtesoro4, grtesoro,maniacsq, maniacsq, gaelco2_state, 0, ROT0, "Nova Desitec", "Gran Tesoro? / Play 2000 (v4.0) (Italy)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/gaelco3d.cpp b/src/mame/drivers/gaelco3d.cpp index 9211debd44a..da3e681a04f 100644 --- a/src/mame/drivers/gaelco3d.cpp +++ b/src/mame/drivers/gaelco3d.cpp @@ -279,7 +279,7 @@ READ16_MEMBER(gaelco3d_state::eeprom_data_r) { /* bit 0 is clock */ /* bit 1 active */ - result &= ~GAELCOSER_EXT_STATUS_MASK; + result &= ~uint32_t(gaelco_serial_device::EXT_STATUS_MASK); result |= m_serial->status_r(space, 0); } @@ -950,7 +950,7 @@ INPUT_PORTS_END * *************************************/ -static MACHINE_CONFIG_START( gaelco3d, gaelco3d_state ) +static MACHINE_CONFIG_START( gaelco3d ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 15000000) diff --git a/src/mame/drivers/gaelcopc.cpp b/src/mame/drivers/gaelcopc.cpp index e0adf846be7..90e5459f576 100644 --- a/src/mame/drivers/gaelcopc.cpp +++ b/src/mame/drivers/gaelcopc.cpp @@ -66,7 +66,7 @@ static INPUT_PORTS_START( gaelcopc ) INPUT_PORTS_END -static MACHINE_CONFIG_START( gaelcopc, gaelcopc_state ) +static MACHINE_CONFIG_START( gaelcopc ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", PENTIUM, 2000000000) /* Pentium4? */ MCFG_CPU_PROGRAM_MAP(gaelcopc_map) @@ -130,8 +130,8 @@ ROM_START(tuningrc) ROM_END -GAME( 2003, tokyocop, 0, gaelcopc, gaelcopc, driver_device, 0, ROT0, "Gaelco", "Tokyo Cop (US, dedicated version)", MACHINE_IS_SKELETON ) -GAME( 2003, tokyocopk, tokyocop, gaelcopc, gaelcopc, driver_device, 0, ROT0, "Gaelco", "Tokyo Cop (US, kit version)", MACHINE_IS_SKELETON ) -GAME( 2003, tokyocopi, tokyocop, gaelcopc, gaelcopc, driver_device, 0, ROT0, "Gaelco", "Tokyo Cop (Italy)", MACHINE_IS_SKELETON ) -GAME( 2004, rriders, 0, gaelcopc, gaelcopc, driver_device, 0, ROT0, "Gaelco", "Ring Riders (Software version v2.2)", MACHINE_IS_SKELETON ) -GAME( 2005, tuningrc, 0, gaelcopc, gaelcopc, driver_device, 0, ROT0, "Gaelco", "Gaelco Championship Tuning Race", MACHINE_IS_SKELETON ) +GAME( 2003, tokyocop, 0, gaelcopc, gaelcopc, gaelcopc_state, 0, ROT0, "Gaelco", "Tokyo Cop (US, dedicated version)", MACHINE_IS_SKELETON ) +GAME( 2003, tokyocopk, tokyocop, gaelcopc, gaelcopc, gaelcopc_state, 0, ROT0, "Gaelco", "Tokyo Cop (US, kit version)", MACHINE_IS_SKELETON ) +GAME( 2003, tokyocopi, tokyocop, gaelcopc, gaelcopc, gaelcopc_state, 0, ROT0, "Gaelco", "Tokyo Cop (Italy)", MACHINE_IS_SKELETON ) +GAME( 2004, rriders, 0, gaelcopc, gaelcopc, gaelcopc_state, 0, ROT0, "Gaelco", "Ring Riders (Software version v2.2)", MACHINE_IS_SKELETON ) +GAME( 2005, tuningrc, 0, gaelcopc, gaelcopc, gaelcopc_state, 0, ROT0, "Gaelco", "Gaelco Championship Tuning Race", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/gaiden.cpp b/src/mame/drivers/gaiden.cpp index e984e8fc034..50fbc7ac9ba 100644 --- a/src/mame/drivers/gaiden.cpp +++ b/src/mame/drivers/gaiden.cpp @@ -742,7 +742,7 @@ static GFXDECODE_START( drgnbowl ) GFXDECODE_END -static MACHINE_CONFIG_START( shadoww, gaiden_state ) +static MACHINE_CONFIG_START( shadoww ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 18432000/2) /* 9.216 MHz */ @@ -801,7 +801,7 @@ static MACHINE_CONFIG_START( shadoww, gaiden_state ) MCFG_SOUND_ROUTE(2, "mono", 0.15) MCFG_SOUND_ROUTE(3, "mono", 0.60) - MCFG_OKIM6295_ADD("oki", 1000000, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", 1000000, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) MACHINE_CONFIG_END @@ -814,7 +814,7 @@ static MACHINE_CONFIG_DERIVED( raiga, shadoww ) MCFG_GFXDECODE_MODIFY("gfxdecode", raiga) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( drgnbowl, gaiden_state ) +static MACHINE_CONFIG_START( drgnbowl ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 20000000/2) /* 10 MHz */ @@ -853,7 +853,7 @@ static MACHINE_CONFIG_START( drgnbowl, gaiden_state ) MCFG_YM2151_ADD("ymsnd", 4000000) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40) - MCFG_OKIM6295_ADD("oki", 1000000, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", 1000000, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) MACHINE_CONFIG_END @@ -936,7 +936,7 @@ static ADDRESS_MAP_START( mastninj_map, AS_PROGRAM, 16, gaiden_state ) // AM_RANGE(0x07a808, 0x07a809) AM_WRITE(gaiden_flip_w) ADDRESS_MAP_END -static MACHINE_CONFIG_START( mastninj, gaiden_state ) +static MACHINE_CONFIG_START( mastninj ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 10000000) /* 10 MHz? */ @@ -988,7 +988,7 @@ static MACHINE_CONFIG_START( mastninj, gaiden_state ) MCFG_SOUND_ROUTE(3, "mono", 0.60) /* no OKI on the bootleg */ -// MCFG_OKIM6295_ADD("oki", 1000000, OKIM6295_PIN7_HIGH) +// MCFG_OKIM6295_ADD("oki", 1000000, PIN7_HIGH) // MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) MACHINE_CONFIG_END @@ -1662,19 +1662,19 @@ DRIVER_INIT_MEMBER(gaiden_state,mastninj) DRIVER_INIT_CALL(shadoww); } -// YEAR, NAME, PARENT, MACHINE, INPUT, INIT, MONITOR,COMPANY,FULLNAME,FLAGS -GAME( 1988, shadoww, 0, shadoww, common, gaiden_state, shadoww, ROT0, "Tecmo", "Shadow Warriors (World, set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, shadowwa, shadoww, shadoww, common, gaiden_state, shadoww, ROT0, "Tecmo", "Shadow Warriors (World, set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, gaiden, shadoww, shadoww, common, gaiden_state, shadoww, ROT0, "Tecmo", "Ninja Gaiden (US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, ryukendn, shadoww, shadoww, common, gaiden_state, shadoww, ROT0, "Tecmo", "Ninja Ryukenden (Japan, set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, ryukendna, shadoww, shadoww, common, gaiden_state, shadoww, ROT0, "Tecmo", "Ninja Ryukenden (Japan, set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, mastninj, shadoww, mastninj, common, gaiden_state, mastninj, ROT0, "bootleg", "Master Ninja (bootleg of Shadow Warriors / Ninja Gaiden)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // sprites need fixing, sound and yscroll too. - it is confirmed the curtains don't scroll on the pcb -GAME( 1992, drgnbowl, 0, drgnbowl, drgnbowl, gaiden_state, drgnbowl, ROT0, "Nics", "Dragon Bowl (set 1, encrypted program)", MACHINE_SUPPORTS_SAVE ) // Dragon Bowl is based on Ninja Gaiden code -GAME( 1992, drgnbowla, drgnbowl, drgnbowl, drgnbowl, gaiden_state, drgnbowla,ROT0, "Nics", "Dragon Bowl (set 2, unencrypted program)", MACHINE_SUPPORTS_SAVE ) - -GAME( 1989, wildfang, 0, shadoww, wildfang, gaiden_state, wildfang, ROT0, "Tecmo", "Wild Fang / Tecmo Knight", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, wildfangs, wildfang, shadoww, tknight, gaiden_state, wildfang, ROT0, "Tecmo", "Wild Fang", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, tknight, wildfang, shadoww, tknight, gaiden_state, wildfang, ROT0, "Tecmo", "Tecmo Knight", MACHINE_SUPPORTS_SAVE ) - -GAME( 1991, stratof, 0, raiga, raiga, gaiden_state, raiga, ROT0, "Tecmo", "Raiga - Strato Fighter (US)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1991, raiga, stratof, raiga, raiga, gaiden_state, raiga, ROT0, "Tecmo", "Raiga - Strato Fighter (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +// YEAR, NAME, PARENT, MACHINE, INPUT, STATE, INIT, MONITOR,COMPANY, FULLNAME,FLAGS +GAME( 1988, shadoww, 0, shadoww, common, gaiden_state, shadoww, ROT0, "Tecmo", "Shadow Warriors (World, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, shadowwa, shadoww, shadoww, common, gaiden_state, shadoww, ROT0, "Tecmo", "Shadow Warriors (World, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, gaiden, shadoww, shadoww, common, gaiden_state, shadoww, ROT0, "Tecmo", "Ninja Gaiden (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, ryukendn, shadoww, shadoww, common, gaiden_state, shadoww, ROT0, "Tecmo", "Ninja Ryukenden (Japan, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, ryukendna, shadoww, shadoww, common, gaiden_state, shadoww, ROT0, "Tecmo", "Ninja Ryukenden (Japan, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, mastninj, shadoww, mastninj, common, gaiden_state, mastninj, ROT0, "bootleg", "Master Ninja (bootleg of Shadow Warriors / Ninja Gaiden)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // sprites need fixing, sound and yscroll too. - it is confirmed the curtains don't scroll on the pcb +GAME( 1992, drgnbowl, 0, drgnbowl, drgnbowl, gaiden_state, drgnbowl, ROT0, "Nics", "Dragon Bowl (set 1, encrypted program)", MACHINE_SUPPORTS_SAVE ) // Dragon Bowl is based on Ninja Gaiden code +GAME( 1992, drgnbowla, drgnbowl, drgnbowl, drgnbowl, gaiden_state, drgnbowla,ROT0, "Nics", "Dragon Bowl (set 2, unencrypted program)", MACHINE_SUPPORTS_SAVE ) + +GAME( 1989, wildfang, 0, shadoww, wildfang, gaiden_state, wildfang, ROT0, "Tecmo", "Wild Fang / Tecmo Knight", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, wildfangs, wildfang, shadoww, tknight, gaiden_state, wildfang, ROT0, "Tecmo", "Wild Fang", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, tknight, wildfang, shadoww, tknight, gaiden_state, wildfang, ROT0, "Tecmo", "Tecmo Knight", MACHINE_SUPPORTS_SAVE ) + +GAME( 1991, stratof, 0, raiga, raiga, gaiden_state, raiga, ROT0, "Tecmo", "Raiga - Strato Fighter (US)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1991, raiga, stratof, raiga, raiga, gaiden_state, raiga, ROT0, "Tecmo", "Raiga - Strato Fighter (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/gal3.cpp b/src/mame/drivers/gal3.cpp index 2e8ac930b6d..4dc61cc4a5c 100644 --- a/src/mame/drivers/gal3.cpp +++ b/src/mame/drivers/gal3.cpp @@ -128,7 +128,7 @@ better notes (complete chip lists) for each board still needed #include "emu.h" #include "includes/namcos2.h" -#include "includes/namcoic.h" +#include "machine/namcoic.h" #include "cpu/m68000/m68000.h" #include "cpu/tms32025/tms32025.h" @@ -593,7 +593,7 @@ static GFXDECODE_START( namcos21 ) GFXDECODE_ENTRY( "obj_board1", 0x000000, tile_layout, 0x000, 0x20 ) GFXDECODE_END -static MACHINE_CONFIG_START( gal3, gal3_state ) +static MACHINE_CONFIG_START( gal3 ) MCFG_CPU_ADD("maincpu", M68020, 49152000/2) MCFG_CPU_PROGRAM_MAP(cpu_mst_map) MCFG_CPU_VBLANK_INT_DRIVER("lscreen", gal3_state, irq1_line_hold) @@ -644,12 +644,12 @@ static MACHINE_CONFIG_START( gal3, gal3_state ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") MCFG_C140_ADD("c140_16g", 8000000/374) - MCFG_C140_BANK_TYPE(C140_TYPE_SYSTEM21) //to be verified + MCFG_C140_BANK_TYPE(SYSTEM21) //to be verified MCFG_SOUND_ROUTE(0, "lspeaker", 0.50) MCFG_SOUND_ROUTE(1, "rspeaker", 0.50) MCFG_C140_ADD("c140_16a", 8000000/374) - MCFG_C140_BANK_TYPE(C140_TYPE_SYSTEM21) + MCFG_C140_BANK_TYPE(SYSTEM21) MCFG_SOUND_ROUTE(0, "lspeaker", 0.50) MCFG_SOUND_ROUTE(1, "rspeaker", 0.50) MACHINE_CONFIG_END @@ -866,6 +866,6 @@ ROM_START( gal3 ) DISK_IMAGE_READONLY( "gal3_ld2", 0, NO_DUMP ) ROM_END -/* YEAR, NAME, PARENT, MACHINE, INPUT, INIT, MONITOR, COMPANY, FULLNAME, FLAGS */ -GAMEL( 199?, gal3, 0, gal3, gal3, driver_device, 0, ROT0, "Namco", "Galaxian 3 - Theater 6 : Project Dragoon", MACHINE_NOT_WORKING | MACHINE_NO_SOUND, layout_dualhsxs ) +/* YEAR, NAME PARENT, MACHINE, INPUT, STATE, INIT, MONITOR, COMPANY, FULLNAME, FLAGS */ +GAMEL( 199?, gal3, 0, gal3, gal3, gal3_state, 0, ROT0, "Namco", "Galaxian 3 - Theater 6 : Project Dragoon", MACHINE_NOT_WORKING | MACHINE_NO_SOUND, layout_dualhsxs ) //GAMEL( 199?, gal3zlgr, 0, gal3, gal3, driver_device, 0, ROT0, "Namco", "Galaxian 3 - Theater 6 J2 : Attack of The Zolgear", MACHINE_NOT_WORKING | MACHINE_NO_SOUND, layout_dualhsxs ) diff --git a/src/mame/drivers/galaga.cpp b/src/mame/drivers/galaga.cpp index 1e0b11a0430..c97daa9e8bd 100644 --- a/src/mame/drivers/galaga.cpp +++ b/src/mame/drivers/galaga.cpp @@ -1605,7 +1605,7 @@ INTERRUPT_GEN_MEMBER(galaga_state::sub_vblank_irq) device.execute().set_input_line(0, ASSERT_LINE); } -static MACHINE_CONFIG_START( bosco, bosco_state ) +static MACHINE_CONFIG_START( bosco ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, MASTER_CLOCK/6) /* 3.072 MHz */ @@ -1690,7 +1690,7 @@ static MACHINE_CONFIG_START( bosco, bosco_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.90) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( galaga, galaga_state ) +static MACHINE_CONFIG_START( galaga ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, MASTER_CLOCK/6) /* 3.072 MHz */ @@ -1775,7 +1775,7 @@ static MACHINE_CONFIG_DERIVED( galagab, galaga ) MCFG_DEVICE_REMOVE("discrete") MACHINE_CONFIG_END -static MACHINE_CONFIG_START( xevious, xevious_state ) +static MACHINE_CONFIG_START( xevious ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, MASTER_CLOCK/6) /* 3.072 MHz */ @@ -1875,7 +1875,7 @@ static MACHINE_CONFIG_DERIVED( battles, xevious ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( digdug, digdug_state ) +static MACHINE_CONFIG_START( digdug ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, MASTER_CLOCK/6) /* 3.072 MHz */ @@ -3467,40 +3467,40 @@ DRIVER_INIT_MEMBER(xevious_state,battles) /* Original Namco hardware, with Namco Customs */ -// YEAR, NAME, PARENT, MACHINE, INPUT, INIT, MONITOR,COMPANY,FULLNAME,FLAGS -GAME( 1981, bosco, 0, bosco, bosco, driver_device, 0, ROT0, "Namco", "Bosconian (new version)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1981, boscoo, bosco, bosco, bosco, driver_device, 0, ROT0, "Namco", "Bosconian (old version)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1981, boscoo2, bosco, bosco, bosco, driver_device, 0, ROT0, "Namco", "Bosconian (older version)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1981, boscomd, bosco, bosco, boscomd, driver_device, 0, ROT0, "Namco (Midway license)", "Bosconian (Midway, new version)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1981, boscomdo, bosco, bosco, boscomd, driver_device, 0, ROT0, "Namco (Midway license)", "Bosconian (Midway, old version)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS ) +// YEAR, NAME, PARENT, MACHINE, INPUT, STATE, INIT, MONITOR,COMPANY,FULLNAME,FLAGS +GAME( 1981, bosco, 0, bosco, bosco, bosco_state, 0, ROT0, "Namco", "Bosconian (new version)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1981, boscoo, bosco, bosco, bosco, bosco_state, 0, ROT0, "Namco", "Bosconian (old version)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1981, boscoo2, bosco, bosco, bosco, bosco_state, 0, ROT0, "Namco", "Bosconian (older version)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1981, boscomd, bosco, bosco, boscomd, bosco_state, 0, ROT0, "Namco (Midway license)", "Bosconian (Midway, new version)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1981, boscomdo, bosco, bosco, boscomd, bosco_state, 0, ROT0, "Namco (Midway license)", "Bosconian (Midway, old version)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1981, galaga, 0, galaga, galaga, galaga_state, galaga, ROT90, "Namco", "Galaga (Namco rev. B)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1981, galagao, galaga, galaga, galaga, galaga_state, galaga, ROT90, "Namco", "Galaga (Namco)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1981, galagamw, galaga, galaga, galagamw, galaga_state, galaga, ROT90, "Namco (Midway license)", "Galaga (Midway set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1981, galagamk, galaga, galaga, galaga, galaga_state, galaga, ROT90, "Namco (Midway license)", "Galaga (Midway set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1981, galagamf, galaga, galaga, galaga, galaga_state, galaga, ROT90, "Namco (Midway license)", "Galaga (Midway set 1 with fast shoot hack)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1981, galaga, 0, galaga, galaga, galaga_state, galaga, ROT90, "Namco", "Galaga (Namco rev. B)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1981, galagao, galaga, galaga, galaga, galaga_state, galaga, ROT90, "Namco", "Galaga (Namco)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1981, galagamw, galaga, galaga, galagamw, galaga_state, galaga, ROT90, "Namco (Midway license)", "Galaga (Midway set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1981, galagamk, galaga, galaga, galaga, galaga_state, galaga, ROT90, "Namco (Midway license)", "Galaga (Midway set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1981, galagamf, galaga, galaga, galaga, galaga_state, galaga, ROT90, "Namco (Midway license)", "Galaga (Midway set 1 with fast shoot hack)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1982, xevious, 0, xevious, xevious, xevious_state, xevious, ROT90, "Namco", "Xevious (Namco)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, xevious, 0, xevious, xevious, xevious_state, xevious, ROT90, "Namco", "Xevious (Namco)", MACHINE_SUPPORTS_SAVE ) GAME( 1982, xeviousa, xevious, xevious, xeviousa, xevious_state, xevious, ROT90, "Namco (Atari license)", "Xevious (Atari, harder)", MACHINE_SUPPORTS_SAVE ) GAME( 1982, xeviousb, xevious, xevious, xeviousb, xevious_state, xevious, ROT90, "Namco (Atari license)", "Xevious (Atari)", MACHINE_SUPPORTS_SAVE ) GAME( 1982, xeviousc, xevious, xevious, xeviousa, xevious_state, xevious, ROT90, "Namco (Atari license)", "Xevious (Atari, Namco PCB)", MACHINE_SUPPORTS_SAVE ) GAME( 1984, sxevious, xevious, xevious, sxevious, xevious_state, xevious, ROT90, "Namco", "Super Xevious", MACHINE_SUPPORTS_SAVE ) GAME( 1984, sxeviousj, xevious, xevious, sxevious, xevious_state, xevious, ROT90, "Namco", "Super Xevious (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, digdug, 0, digdug, digdug, driver_device, 0, ROT90, "Namco", "Dig Dug (rev 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, digdug1, digdug, digdug, digdug, driver_device, 0, ROT90, "Namco", "Dig Dug (rev 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, digdugat, digdug, digdug, digdug, driver_device, 0, ROT90, "Namco (Atari license)", "Dig Dug (Atari, rev 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, digdugat1, digdug, digdug, digdug, driver_device, 0, ROT90, "Namco (Atari license)", "Dig Dug (Atari, rev 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, digsid, digdug, digdug, digdug, driver_device, 0, ROT90, "Namco (Sidam license)", "Dig Dug (manufactured by Sidam)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, digdug, 0, digdug, digdug, digdug_state, 0, ROT90, "Namco", "Dig Dug (rev 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, digdug1, digdug, digdug, digdug, digdug_state, 0, ROT90, "Namco", "Dig Dug (rev 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, digdugat, digdug, digdug, digdug, digdug_state, 0, ROT90, "Namco (Atari license)", "Dig Dug (Atari, rev 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, digdugat1, digdug, digdug, digdug, digdug_state, 0, ROT90, "Namco (Atari license)", "Dig Dug (Atari, rev 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, digsid, digdug, digdug, digdug, digdug_state, 0, ROT90, "Namco (Sidam license)", "Dig Dug (manufactured by Sidam)", MACHINE_SUPPORTS_SAVE ) /* Bootlegs with replacement I/O chips */ -GAME( 1982, gallag, galaga, galagab, galaga, galaga_state, galaga, ROT90, "bootleg", "Gallag", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1984, gatsbee, galaga, galagab, gatsbee, galaga_state, gatsbee, ROT90, "hack (Uchida)", "Gatsbee", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1981, nebulbee, galaga, galagab, galaga, galaga_state, galaga, ROT90, "bootleg", "Nebulous Bee", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1982, gallag, galaga, galagab, galaga, galaga_state, galaga, ROT90, "bootleg", "Gallag", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1984, gatsbee, galaga, galagab, gatsbee, galaga_state, gatsbee, ROT90, "hack (Uchida)", "Gatsbee", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1981, nebulbee, galaga, galagab, galaga, galaga_state, galaga, ROT90, "bootleg", "Nebulous Bee", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) GAME( 1982, xevios, xevious, xevious, xevious, xevious_state, xevios, ROT90, "bootleg", "Xevios", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) GAME( 1982, battles, xevious, battles, xevious, xevious_state, battles, ROT90, "bootleg", "Battles (set 1)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) GAME( 1982, battles2, xevious, xevious, xevious, xevious_state, xevios, ROT90, "bootleg", "Battles (set 2)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1982, dzigzag, digdug, dzigzag, digdug, driver_device, 0, ROT90, "bootleg", "Zig Zag (Dig Dug hardware)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, dzigzag, digdug, dzigzag, digdug, digdug_state, 0, ROT90, "bootleg", "Zig Zag (Dig Dug hardware)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/galastrm.cpp b/src/mame/drivers/galastrm.cpp index e6d7e7d8398..a82dfadee9f 100644 --- a/src/mame/drivers/galastrm.cpp +++ b/src/mame/drivers/galastrm.cpp @@ -285,7 +285,7 @@ GFXDECODE_END /***************************************************************************/ -static MACHINE_CONFIG_START( galastrm, galastrm_state ) +static MACHINE_CONFIG_START( galastrm ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68EC020, 16000000) /* 16 MHz */ MCFG_CPU_PROGRAM_MAP(galastrm_map) @@ -364,4 +364,4 @@ ROM_START( galastrm ) ROM_END -GAME( 1992, galastrm, 0, galastrm, galastrm, driver_device, 0, ROT0, "Taito Corporation", "Galactic Storm (Japan)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1992, galastrm, 0, galastrm, galastrm, galastrm_state, 0, ROT0, "Taito Corporation", "Galactic Storm (Japan)", MACHINE_IMPERFECT_GRAPHICS ) diff --git a/src/mame/drivers/galaxi.cpp b/src/mame/drivers/galaxi.cpp index 6332928c77b..093a0c2fe65 100644 --- a/src/mame/drivers/galaxi.cpp +++ b/src/mame/drivers/galaxi.cpp @@ -445,7 +445,7 @@ void galaxi_state::machine_reset() Machine Drivers ***************************************************************************/ -static MACHINE_CONFIG_START( galaxi, galaxi_state ) +static MACHINE_CONFIG_START( galaxi ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, CPU_CLOCK) @@ -470,7 +470,7 @@ static MACHINE_CONFIG_START( galaxi, galaxi_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", SND_CLOCK, OKIM6295_PIN7_LOW) // ? + MCFG_OKIM6295_ADD("oki", SND_CLOCK, PIN7_LOW) // ? MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -576,7 +576,7 @@ ROM_END Game Drivers ***************************************************************************/ -/* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS LAYOUT */ -GAMEL( 2000, galaxi, 0, galaxi, galaxi, driver_device, 0, ROT0, "B.R.L.", "Galaxi (v2.0)", MACHINE_SUPPORTS_SAVE, layout_galaxi ) -GAMEL( 2000, magjoker, 0, magjoker, magjoker, driver_device, 0, ROT0, "B.R.L.", "Magic Joker (v1.25.10.2000)", MACHINE_SUPPORTS_SAVE, layout_galaxi ) -GAMEL( 2001, lastfour, 0, lastfour, magjoker, driver_device, 0, ROT0, "B.R.L.", "Last Four (09:12 16/01/2001)", MACHINE_SUPPORTS_SAVE, layout_galaxi ) +// YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS LAYOUT +GAMEL( 2000, galaxi, 0, galaxi, galaxi, galaxi_state, 0, ROT0, "B.R.L.", "Galaxi (v2.0)", MACHINE_SUPPORTS_SAVE, layout_galaxi ) +GAMEL( 2000, magjoker, 0, magjoker, magjoker, galaxi_state, 0, ROT0, "B.R.L.", "Magic Joker (v1.25.10.2000)", MACHINE_SUPPORTS_SAVE, layout_galaxi ) +GAMEL( 2001, lastfour, 0, lastfour, magjoker, galaxi_state, 0, ROT0, "B.R.L.", "Last Four (09:12 16/01/2001)", MACHINE_SUPPORTS_SAVE, layout_galaxi ) diff --git a/src/mame/drivers/galaxia.cpp b/src/mame/drivers/galaxia.cpp index bc775353c04..f466b79b188 100644 --- a/src/mame/drivers/galaxia.cpp +++ b/src/mame/drivers/galaxia.cpp @@ -283,7 +283,7 @@ static GFXDECODE_START( astrowar ) GFXDECODE_END -static MACHINE_CONFIG_START( galaxia, galaxia_state ) +static MACHINE_CONFIG_START( galaxia ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", S2650, XTAL_14_31818MHz/8) @@ -325,7 +325,7 @@ static MACHINE_CONFIG_START( galaxia, galaxia_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( astrowar, galaxia_state ) +static MACHINE_CONFIG_START( astrowar ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", S2650, XTAL_14_31818MHz/8) @@ -468,8 +468,8 @@ ROM_START( astrowar ) ROM_LOAD( "astro.3d", 0x00400, 0x0400, CRC(822505aa) SHA1(f9d3465e14bb850a286f8b4f42aa0a4044413b67) ) ROM_END -GAME( 1979, galaxia, 0, galaxia, galaxia, driver_device, 0, ROT90, "Zaccaria / Zelco", "Galaxia (set 1)", MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1979, galaxiaa, galaxia, galaxia, galaxia, driver_device, 0, ROT90, "Zaccaria / Zelco", "Galaxia (set 2)", MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1979, galaxiab, galaxia, galaxia, galaxia, driver_device, 0, ROT90, "Zaccaria / Zelco", "Galaxia (set 3)", MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1979, galaxiac, galaxia, galaxia, galaxia, driver_device, 0, ROT90, "Zaccaria / Zelco", "Galaxia (set 4)", MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1980, astrowar, 0, astrowar, galaxia, driver_device, 0, ROT90, "Zaccaria / Zelco", "Astro Wars", MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1979, galaxia, 0, galaxia, galaxia, galaxia_state, 0, ROT90, "Zaccaria / Zelco", "Galaxia (set 1)", MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1979, galaxiaa, galaxia, galaxia, galaxia, galaxia_state, 0, ROT90, "Zaccaria / Zelco", "Galaxia (set 2)", MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1979, galaxiab, galaxia, galaxia, galaxia, galaxia_state, 0, ROT90, "Zaccaria / Zelco", "Galaxia (set 3)", MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1979, galaxiac, galaxia, galaxia, galaxia, galaxia_state, 0, ROT90, "Zaccaria / Zelco", "Galaxia (set 4)", MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1980, astrowar, 0, astrowar, galaxia, galaxia_state, 0, ROT90, "Zaccaria / Zelco", "Astro Wars", MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) diff --git a/src/mame/drivers/galaxian.cpp b/src/mame/drivers/galaxian.cpp index 45cb83c0504..8dc5ad18386 100644 --- a/src/mame/drivers/galaxian.cpp +++ b/src/mame/drivers/galaxian.cpp @@ -5586,7 +5586,7 @@ DISCRETE_SOUND_END * *************************************/ -static MACHINE_CONFIG_START( galaxian_base, galaxian_state ) +static MACHINE_CONFIG_START( galaxian_base ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, GALAXIAN_PIXEL_CLOCK/3/2) diff --git a/src/mame/drivers/galaxold.cpp b/src/mame/drivers/galaxold.cpp index 782622ae9dc..9b5c388cdc9 100644 --- a/src/mame/drivers/galaxold.cpp +++ b/src/mame/drivers/galaxold.cpp @@ -2167,7 +2167,7 @@ static GFXDECODE_START( _4in1 ) GFXDECODE_END -static MACHINE_CONFIG_START( galaxold_base, galaxold_state ) +static MACHINE_CONFIG_START( galaxold_base ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, PIXEL_CLOCK/2) /* 3.072 MHz */ @@ -2385,7 +2385,7 @@ static MACHINE_CONFIG_DERIVED( ozon1, galaxold_base ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( drivfrcg, galaxold_state ) +static MACHINE_CONFIG_START( drivfrcg ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", S2650, MASTER_CLOCK/6) @@ -2470,7 +2470,7 @@ static MACHINE_CONFIG_DERIVED( tazzmang, galaxian ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( racknrol, galaxold_state ) +static MACHINE_CONFIG_START( racknrol ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", S2650, PIXEL_CLOCK/2) @@ -2497,7 +2497,7 @@ static MACHINE_CONFIG_START( racknrol, galaxold_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( hexpoola, galaxold_state ) +static MACHINE_CONFIG_START( hexpoola ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", S2650, PIXEL_CLOCK/2) @@ -3434,41 +3434,41 @@ DRIVER_INIT_MEMBER(galaxold_state,guttangt) /* Z80 games */ -// YEAR NAME PARENT MACHINE INPUT INIT ROT COMPANY, FULLNAME, FLAGS, LAYOUT -GAME( 1981, vpool, hustler, mooncrst, vpool, driver_device, 0, ROT90, "bootleg", "Video Pool (bootleg on Moon Cresta hardware)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1981, rockclim, 0, rockclim, rockclim, driver_device, 0, ROT180, "Taito", "Rock Climber", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, ckongg, ckong, ckongg, ckongg, driver_device, 0, ROT90, "bootleg", "Crazy Kong (bootleg on Galaxian hardware)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1981, ckongmc, ckong, ckongmc, ckongmc, driver_device, 0, ROT90, "bootleg", "Crazy Kong (bootleg on Moon Cresta hardware)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // set was marked as 'King Kong on Galaxian' -GAME( 1981, ckonggx, ckong, ckongg, ckonggx, galaxold_state, ckonggx, ROT90, "bootleg", "Crazy Kong (bootleg on Galaxian hardware, encrypted, set 1)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1982, ckongcv, ckong, ckongg, ckonggx, galaxold_state, ckonggx, ROT90, "bootleg", "Crazy Kong (bootleg on Galaxian hardware, encrypted, set 2)", MACHINE_NOT_WORKING ) -GAME( 1982, ckongis, ckong, ckongg, ckonggx, galaxold_state, ckonggx, ROT90, "bootleg", "Crazy Kong (bootleg on Galaxian hardware, encrypted, set 3)", MACHINE_NOT_WORKING ) -GAME( 1981, scramblb, scramble, scramblb, scramblb, driver_device, 0, ROT90, "bootleg", "Scramble (bootleg on Galaxian hardware)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1981, scramb2, scramble, scramb2, scramb2, driver_device, 0, ROT90, "bootleg", "Scramble (bootleg)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1981, scrambler, scramble, scrambler, scrambler, driver_device, 0, ROT90, "bootleg (Reben S.A.)", "Scramble (Reben S.A. Spanish bootleg)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1981, 4in1, 0, 4in1, 4in1, galaxold_state, 4in1, ROT90, "Armenia / Food and Fun", "4 Fun in 1", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1982, bagmanmc, bagman, bagmanmc, bagmanmc, driver_device, 0, ROT90, "bootleg", "Bagman (bootleg on Moon Cresta hardware, set 1)", MACHINE_IMPERFECT_COLORS | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1984, bagmanm2, bagman, bagmanmc, bagmanmc, driver_device, 0, ROT90, "bootleg (GIB)", "Bagman (bootleg on Moon Cresta hardware, set 2)", MACHINE_IMPERFECT_COLORS | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1982, dkongjrm, dkongjr, dkongjrm, dkongjrm, driver_device, 0, ROT90, "bootleg", "Donkey Kong Jr. (bootleg on Moon Cresta hardware)", MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_SOUND | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1982, porter, dockman, porter, porter, driver_device, 0, ROT90, "bootleg", "Port Man (bootleg on Moon Cresta hardware)", MACHINE_IMPERFECT_COLORS | MACHINE_NO_COCKTAIL ) -GAME( 1982, tazzmang, tazmania, tazzmang, tazzmang, driver_device, 0, ROT90, "bootleg", "Tazz-Mania (bootleg on Galaxian hardware)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1982, tazzmang2, tazmania, tazzmang, tazzmang, driver_device, 0, ROT90, "bootleg", "Tazz-Mania (bootleg on Galaxian hardware with Starfield)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1983, bongo, 0, bongo, bongo, driver_device, 0, ROT90, "Jetsoft", "Bongo", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, ozon1, 0, ozon1, ozon1, driver_device, 0, ROT90, "Proma", "Ozon I", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, guttangt, locomotn, guttang, guttangt, galaxold_state, guttangt, ROT270, "bootleg (Recreativos Franco?)", "Guttang Gottong (bootleg on Galaxian type hardware)", MACHINE_NOT_WORKING | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // or by 'Tren' ? +// YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY, FULLNAME, FLAGS, LAYOUT +GAME( 1981, vpool, hustler, mooncrst, vpool, galaxold_state, 0, ROT90, "bootleg", "Video Pool (bootleg on Moon Cresta hardware)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1981, rockclim, 0, rockclim, rockclim, galaxold_state, 0, ROT180, "Taito", "Rock Climber", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, ckongg, ckong, ckongg, ckongg, galaxold_state, 0, ROT90, "bootleg", "Crazy Kong (bootleg on Galaxian hardware)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1981, ckongmc, ckong, ckongmc, ckongmc, galaxold_state, 0, ROT90, "bootleg", "Crazy Kong (bootleg on Moon Cresta hardware)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // set was marked as 'King Kong on Galaxian' +GAME( 1981, ckonggx, ckong, ckongg, ckonggx, galaxold_state, ckonggx, ROT90, "bootleg", "Crazy Kong (bootleg on Galaxian hardware, encrypted, set 1)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1982, ckongcv, ckong, ckongg, ckonggx, galaxold_state, ckonggx, ROT90, "bootleg", "Crazy Kong (bootleg on Galaxian hardware, encrypted, set 2)", MACHINE_NOT_WORKING ) +GAME( 1982, ckongis, ckong, ckongg, ckonggx, galaxold_state, ckonggx, ROT90, "bootleg", "Crazy Kong (bootleg on Galaxian hardware, encrypted, set 3)", MACHINE_NOT_WORKING ) +GAME( 1981, scramblb, scramble, scramblb, scramblb, galaxold_state, 0, ROT90, "bootleg", "Scramble (bootleg on Galaxian hardware)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1981, scramb2, scramble, scramb2, scramb2, galaxold_state, 0, ROT90, "bootleg", "Scramble (bootleg)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1981, scrambler, scramble, scrambler, scrambler, galaxold_state, 0, ROT90, "bootleg (Reben S.A.)", "Scramble (Reben S.A. Spanish bootleg)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1981, 4in1, 0, 4in1, 4in1, galaxold_state, 4in1, ROT90, "Armenia / Food and Fun", "4 Fun in 1", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1982, bagmanmc, bagman, bagmanmc, bagmanmc, galaxold_state, 0, ROT90, "bootleg", "Bagman (bootleg on Moon Cresta hardware, set 1)", MACHINE_IMPERFECT_COLORS | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1984, bagmanm2, bagman, bagmanmc, bagmanmc, galaxold_state, 0, ROT90, "bootleg (GIB)", "Bagman (bootleg on Moon Cresta hardware, set 2)", MACHINE_IMPERFECT_COLORS | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1982, dkongjrm, dkongjr, dkongjrm, dkongjrm, galaxold_state, 0, ROT90, "bootleg", "Donkey Kong Jr. (bootleg on Moon Cresta hardware)", MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_SOUND | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1982, porter, dockman, porter, porter, galaxold_state, 0, ROT90, "bootleg", "Port Man (bootleg on Moon Cresta hardware)", MACHINE_IMPERFECT_COLORS | MACHINE_NO_COCKTAIL ) +GAME( 1982, tazzmang, tazmania, tazzmang, tazzmang, galaxold_state, 0, ROT90, "bootleg", "Tazz-Mania (bootleg on Galaxian hardware)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1982, tazzmang2, tazmania, tazzmang, tazzmang, galaxold_state, 0, ROT90, "bootleg", "Tazz-Mania (bootleg on Galaxian hardware with Starfield)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1983, bongo, 0, bongo, bongo, galaxold_state, 0, ROT90, "Jetsoft", "Bongo", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, ozon1, 0, ozon1, ozon1, galaxold_state, 0, ROT90, "Proma", "Ozon I", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, guttangt, locomotn, guttang, guttangt, galaxold_state, guttangt, ROT270, "bootleg (Recreativos Franco?)", "Guttang Gottong (bootleg on Galaxian type hardware)", MACHINE_NOT_WORKING | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // or by 'Tren' ? // Videotron cartridge system GAME( 1981, hustlerb3, hustler, videotron, hustlerb3, driver_device, 0, ROT90, "bootleg (Videotron)", "Video Pool (Video Hustler bootleg)", MACHINE_SUPPORTS_SAVE ) GAME( 1981, froggerv, frogger, videotron, froggerv, driver_device, 0, ROT90, "bootleg (Videotron / Gamepack)", "Frogger (Videotron bootleg)", MACHINE_SUPPORTS_SAVE ) /* S2650 games */ -// YEAR NAME PARENT MACHINE INPUT INIT ROT COMPANY, FULLNAME, FLAGS, LAYOUT -GAME( 1983, hunchbkg, hunchbak, hunchbkg, hunchbkg, driver_device, 0, ROT90, "Century Electronics", "Hunchback (Galaxian hardware)", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, spcwarp, 0, spcwarp, hunchbkg, driver_device, 0, ROT90, "Century Electronics", "Space Warp? (Cosmos conversion on Galaxian hardware)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE | MACHINE_WRONG_COLORS ) // bad dump -GAME( 1984, drivfrcg, drivfrcp, drivfrcg, drivfrcg, driver_device, 0, ROT90, "Shinkai Inc. (Magic Electronics USA license)", "Driving Force (Galaxian conversion)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, drivfrct, drivfrcp, drivfrcg, drivfrcg, driver_device, 0, ROT90, "bootleg (EMT Germany)", "Top Racer (bootleg of Driving Force)", MACHINE_SUPPORTS_SAVE ) // Video Klein PCB -GAME( 1985, drivfrcb, drivfrcp, drivfrcg, drivfrcg, driver_device, 0, ROT90, "bootleg (Elsys Software)", "Driving Force (Galaxian conversion bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, racknrol, 0, racknrol, racknrol, driver_device, 0, ROT0, "Senko Industries (Status license from Shinkai Inc.)", "Rack + Roll", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, hexpool, racknrol, racknrol, racknrol, driver_device, 0, ROT90, "Senko Industries (Shinkai Inc. license)", "Hex Pool (Shinkai)", MACHINE_SUPPORTS_SAVE ) // still has Senko logo in gfx rom -GAME( 1985, hexpoola, racknrol, hexpoola, racknrol, driver_device, 0, ROT90, "Senko Industries", "Hex Pool (Senko)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, trvchlng, 0, racknrol, trvchlng, driver_device, 0, ROT90, "Joyland (Senko license)", "Trivia Challenge", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +// YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY, FULLNAME, FLAGS, LAYOUT +GAME( 1983, hunchbkg, hunchbak, hunchbkg, hunchbkg, galaxold_state, 0, ROT90, "Century Electronics", "Hunchback (Galaxian hardware)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, spcwarp, 0, spcwarp, hunchbkg, galaxold_state, 0, ROT90, "Century Electronics", "Space Warp? (Cosmos conversion on Galaxian hardware)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE | MACHINE_WRONG_COLORS ) // bad dump +GAME( 1984, drivfrcg, drivfrcp, drivfrcg, drivfrcg, galaxold_state, 0, ROT90, "Shinkai Inc. (Magic Electronics USA license)", "Driving Force (Galaxian conversion)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, drivfrct, drivfrcp, drivfrcg, drivfrcg, galaxold_state, 0, ROT90, "bootleg (EMT Germany)", "Top Racer (bootleg of Driving Force)", MACHINE_SUPPORTS_SAVE ) // Video Klein PCB +GAME( 1985, drivfrcb, drivfrcp, drivfrcg, drivfrcg, galaxold_state, 0, ROT90, "bootleg (Elsys Software)", "Driving Force (Galaxian conversion bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, racknrol, 0, racknrol, racknrol, galaxold_state, 0, ROT0, "Senko Industries (Status license from Shinkai Inc.)", "Rack + Roll", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, hexpool, racknrol, racknrol, racknrol, galaxold_state, 0, ROT90, "Senko Industries (Shinkai Inc. license)", "Hex Pool (Shinkai)", MACHINE_SUPPORTS_SAVE ) // still has Senko logo in gfx rom +GAME( 1985, hexpoola, racknrol, hexpoola, racknrol, galaxold_state, 0, ROT90, "Senko Industries", "Hex Pool (Senko)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, trvchlng, 0, racknrol, trvchlng, galaxold_state, 0, ROT90, "Joyland (Senko license)", "Trivia Challenge", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) GAME( 1985, bullsdrtg, bullsdrt, bullsdrtg, racknrol, galaxold_state, bullsdrtg, ROT90, "Senko Industries", "Bulls Eye Darts (Galaxian conversion)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS | MACHINE_WRONG_COLORS ) diff --git a/src/mame/drivers/galaxy.cpp b/src/mame/drivers/galaxy.cpp index d941e53809c..dc9794d77cf 100644 --- a/src/mame/drivers/galaxy.cpp +++ b/src/mame/drivers/galaxy.cpp @@ -172,7 +172,7 @@ static GFXDECODE_START( galaxy ) GFXDECODE_END -static MACHINE_CONFIG_START( galaxy, galaxy_state ) +static MACHINE_CONFIG_START( galaxy ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL / 2) MCFG_CPU_PROGRAM_MAP(galaxy_mem) @@ -214,7 +214,7 @@ static MACHINE_CONFIG_START( galaxy, galaxy_state ) MCFG_RAM_EXTRA_OPTIONS("2K,22K,38K,54K") MACHINE_CONFIG_END -static MACHINE_CONFIG_START( galaxyp, galaxy_state ) +static MACHINE_CONFIG_START( galaxyp ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL / 2) MCFG_CPU_PROGRAM_MAP(galaxyp_mem) @@ -274,6 +274,6 @@ ROM_START (galaxyp) ROM_LOAD ("galchr.bin", 0x0000, 0x0800, CRC(5c3b5bb5) SHA1(19429a61dc5e55ddec3242a8f695e06dd7961f88)) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ -COMP(1983, galaxy, 0, 0, galaxy, galaxy, galaxy_state, galaxy, "Voja Antonic / Elektronika inzenjering", "Galaksija", 0) -COMP(1985, galaxyp, galaxy, 0, galaxyp,galaxyp, galaxy_state,galaxyp,"Nenad Dunjic", "Galaksija plus", 0) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME */ +COMP(1983, galaxy, 0, 0, galaxy, galaxy, galaxy_state, galaxy, "Voja Antonic / Elektronika inzenjering", "Galaksija", 0) +COMP(1985, galaxyp, galaxy, 0, galaxyp,galaxyp, galaxy_state, galaxyp,"Nenad Dunjic", "Galaksija plus", 0) diff --git a/src/mame/drivers/galeb.cpp b/src/mame/drivers/galeb.cpp index 3b7c629f0d0..4c5d2350640 100644 --- a/src/mame/drivers/galeb.cpp +++ b/src/mame/drivers/galeb.cpp @@ -163,7 +163,7 @@ static INPUT_PORTS_START( galeb ) INPUT_PORTS_END /* Machine driver */ -static MACHINE_CONFIG_START( galeb, galeb_state ) +static MACHINE_CONFIG_START( galeb ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, 1000000) MCFG_CPU_PROGRAM_MAP(galeb_mem) @@ -204,5 +204,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1981, galeb, 0, 0, galeb, galeb, driver_device, 0, "PEL Varazdin", "Galeb", 0) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1981, galeb, 0, 0, galeb, galeb, galeb_state, 0, "PEL Varazdin", "Galeb", 0 ) diff --git a/src/mame/drivers/galgame.cpp b/src/mame/drivers/galgame.cpp index 79640e233c6..8e71c8b0589 100644 --- a/src/mame/drivers/galgame.cpp +++ b/src/mame/drivers/galgame.cpp @@ -318,7 +318,7 @@ void galaxygame_state::machine_reset() m_interrupt = 0; } -static MACHINE_CONFIG_START( galaxygame, galaxygame_state ) +static MACHINE_CONFIG_START( galaxygame ) MCFG_CPU_ADD("maincpu", T11, 3000000 ) MCFG_CPU_PROGRAM_MAP(galaxygame_map) diff --git a/src/mame/drivers/galgames.cpp b/src/mame/drivers/galgames.cpp index 8f1afb05da9..4e1d7b2efde 100644 --- a/src/mame/drivers/galgames.cpp +++ b/src/mame/drivers/galgames.cpp @@ -53,12 +53,11 @@ Notes: ***************************************************************************/ -class galgames_slot_device; -extern const device_type GALGAMES_CART; -extern const device_type GALGAMES_BIOS_CART; -extern const device_type GALGAMES_STARPAK2_CART; -extern const device_type GALGAMES_STARPAK3_CART; -extern const device_type GALGAMES_SLOT; +DECLARE_DEVICE_TYPE(GALGAMES_CART, galgames_cart_device) +DECLARE_DEVICE_TYPE(GALGAMES_BIOS_CART, galgames_bios_cart_device) +DECLARE_DEVICE_TYPE(GALGAMES_STARPAK2_CART, galgames_starpak2_cart_device) +DECLARE_DEVICE_TYPE(GALGAMES_STARPAK3_CART, galgames_starpak3_cart_device) +DECLARE_DEVICE_TYPE(GALGAMES_SLOT, galgames_slot_device) // CART declaration @@ -67,7 +66,7 @@ class galgames_cart_device : public device_t, public device_rom_interface public: // construction/destruction galgames_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - galgames_cart_device(mconfig, GALGAMES_CART, "Galaxy Games StarPak Cartridge", tag, owner, clock, "starpak_cart", __FILE__) + galgames_cart_device(mconfig, GALGAMES_CART, tag, owner, clock) { } // static configuration @@ -96,12 +95,9 @@ protected: galgames_cart_device( const machine_config &mconfig, device_type type, - const char *name, const char *tag, device_t *owner, - uint32_t clock, - const char *shortname, - const char *source); + uint32_t clock); // device-level overrides virtual void device_start() override { } @@ -131,7 +127,7 @@ protected: }; // device type definition -const device_type GALGAMES_CART = device_creator; +DEFINE_DEVICE_TYPE(GALGAMES_CART, galgames_cart_device, "starpak_cart", "Galaxy Games StarPak Cartridge") #define MCFG_GALGAMES_CART_INDEX(_cart) \ galgames_cart_device::static_set_cart(*device, _cart); @@ -156,14 +152,14 @@ class galgames_bios_cart_device : public galgames_cart_device public: // construction/destruction galgames_bios_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - galgames_cart_device(mconfig, GALGAMES_BIOS_CART, "Galaxy Games BIOS Cartridge", tag, owner, clock, "galgames_bios_cart", __FILE__) + galgames_cart_device(mconfig, GALGAMES_BIOS_CART, tag, owner, clock) { } protected: // device-level overrides virtual machine_config_constructor device_mconfig_additions() const override { return MACHINE_CONFIG_NAME(bios); } }; -const device_type GALGAMES_BIOS_CART = device_creator; +DEFINE_DEVICE_TYPE(GALGAMES_BIOS_CART, galgames_bios_cart_device, "galgames_bios_cart", "Galaxy Games BIOS Cartridge") #define MCFG_GALGAMES_BIOS_CART_ADD(_tag, _cart) \ MCFG_DEVICE_ADD(_tag, GALGAMES_BIOS_CART, 0) \ @@ -186,14 +182,14 @@ class galgames_starpak2_cart_device : public galgames_cart_device public: // construction/destruction galgames_starpak2_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - galgames_cart_device(mconfig, GALGAMES_STARPAK2_CART, "Galaxy Games StarPak 2 Cartridge", tag, owner, clock, "starpak2_cart", __FILE__) + galgames_cart_device(mconfig, GALGAMES_STARPAK2_CART, tag, owner, clock) { } protected: // device-level overrides virtual machine_config_constructor device_mconfig_additions() const override { return MACHINE_CONFIG_NAME(starpak2); } }; -const device_type GALGAMES_STARPAK2_CART = device_creator; +DEFINE_DEVICE_TYPE(GALGAMES_STARPAK2_CART, galgames_starpak2_cart_device, "starpak2_cart", "Galaxy Games StarPak 2 Cartridge") #define MCFG_GALGAMES_STARPAK2_CART_ADD(_tag, _cart) \ MCFG_DEVICE_ADD(_tag, GALGAMES_STARPAK2_CART, 0) \ @@ -218,14 +214,14 @@ class galgames_starpak3_cart_device : public galgames_cart_device public: // construction/destruction galgames_starpak3_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - galgames_cart_device(mconfig, GALGAMES_STARPAK3_CART, "Galaxy Games StarPak 3 Cartridge", tag, owner, clock, "starpak3_cart", __FILE__) + galgames_cart_device(mconfig, GALGAMES_STARPAK3_CART, tag, owner, clock) { } protected: // device-level overrides virtual machine_config_constructor device_mconfig_additions() const override { return MACHINE_CONFIG_NAME(starpak3); } }; -const device_type GALGAMES_STARPAK3_CART = device_creator; +DEFINE_DEVICE_TYPE(GALGAMES_STARPAK3_CART, galgames_starpak3_cart_device, "starpak3_cart", "Galaxy Games StarPak 3 Cartridge") #define MCFG_GALGAMES_STARPAK3_CART_ADD(_tag, _cart) \ MCFG_DEVICE_ADD(_tag, GALGAMES_STARPAK3_CART, 0) \ @@ -306,7 +302,7 @@ protected: }; // device type definition -const device_type GALGAMES_SLOT = device_creator; +DEFINE_DEVICE_TYPE(GALGAMES_SLOT, galgames_slot_device, "starpak_slot", "Galaxy Games Slot") #define MCFG_GALGAMES_SLOT_ADD(_tag) \ MCFG_DEVICE_ADD(_tag, GALGAMES_SLOT, 0) @@ -316,13 +312,10 @@ const device_type GALGAMES_SLOT = device_creator; galgames_cart_device::galgames_cart_device( const machine_config &mconfig, device_type type, - const char *name, const char *tag, device_t *owner, - uint32_t clock, - const char *shortname, - const char *source): - device_t(mconfig, type, name, tag, owner, clock, shortname, source), + uint32_t clock): + device_t(mconfig, type, tag, owner, clock), device_rom_interface(mconfig, *this, 21, ENDIANNESS_BIG, 16), m_mconfig_additions(nullptr), m_cart(0), @@ -568,7 +561,7 @@ DEVICE_ADDRESS_MAP_START( slot_map, 16, galgames_slot_device ) ADDRESS_MAP_END galgames_slot_device::galgames_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, GALGAMES_SLOT, "Galaxy Games Slot", tag, owner, clock, "galgames_slot", __FILE__), + device_t(mconfig, GALGAMES_SLOT, tag, owner, clock), device_memory_interface(mconfig, *this), m_space_config("slot_space", ENDIANNESS_BIG, 16,22, 0, address_map_delegate(FUNC(galgames_slot_device::slot_map), this)), m_ram(*this, "ram"), @@ -968,7 +961,7 @@ int galgames_compute_addr(uint16_t reg_low, uint16_t reg_mid, uint16_t reg_high) return reg_low | (reg_mid << 16); } -static MACHINE_CONFIG_START( galgames_base, galgames_state ) +static MACHINE_CONFIG_START( galgames_base ) MCFG_CPU_ADD("maincpu", M68000, XTAL_24MHz / 2) MCFG_CPU_PROGRAM_MAP(galgames_map) MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", galgames_state, scanline_interrupt, "screen", 0, 1) @@ -996,7 +989,7 @@ static MACHINE_CONFIG_START( galgames_base, galgames_state ) // sound hardware MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", XTAL_24MHz / 16, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified (voices in galgame4 seem ok) + MCFG_OKIM6295_ADD("oki", XTAL_24MHz / 16, PIN7_HIGH) // clock frequency & pin 7 not verified (voices in galgame4 seem ok) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -1214,7 +1207,7 @@ ROM_START( galgame4 ) ROM_END -GAME( 1998, galgbios, 0, galgbios, galgames, driver_device, 0, ROT0, "Creative Electronics & Software", "Galaxy Games BIOS", MACHINE_IS_BIOS_ROOT ) -GAME( 1998, galgame2, galgbios, galgame2, galgames, driver_device, 0, ROT0, "Creative Electronics & Software / Namco", "Galaxy Games StarPak 2", 0 ) -GAME( 1998, galgame3, galgbios, galgame3, galgames, driver_device, 0, ROT0, "Creative Electronics & Software / Atari", "Galaxy Games StarPak 3", 0 ) -GAME( 1998, galgame4, galgbios, galgame3, galgames, driver_device, 0, ROT0, "Creative Electronics & Software", "Galaxy Games StarPak 4 (prototype)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1998, galgbios, 0, galgbios, galgames, galgames_state, 0, ROT0, "Creative Electronics & Software", "Galaxy Games BIOS", MACHINE_IS_BIOS_ROOT ) +GAME( 1998, galgame2, galgbios, galgame2, galgames, galgames_state, 0, ROT0, "Creative Electronics & Software / Namco", "Galaxy Games StarPak 2", 0 ) +GAME( 1998, galgame3, galgbios, galgame3, galgames, galgames_state, 0, ROT0, "Creative Electronics & Software / Atari", "Galaxy Games StarPak 3", 0 ) +GAME( 1998, galgame4, galgbios, galgame3, galgames, galgames_state, 0, ROT0, "Creative Electronics & Software", "Galaxy Games StarPak 4 (prototype)", MACHINE_IMPERFECT_GRAPHICS ) diff --git a/src/mame/drivers/galivan.cpp b/src/mame/drivers/galivan.cpp index 5d03251e3d3..0a9ce0d9447 100644 --- a/src/mame/drivers/galivan.cpp +++ b/src/mame/drivers/galivan.cpp @@ -418,7 +418,7 @@ MACHINE_RESET_MEMBER(galivan_state,ninjemak) m_ninjemak_dispdisable = 0; } -static MACHINE_CONFIG_START( galivan, galivan_state ) +static MACHINE_CONFIG_START( galivan ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_12MHz/2) /* 6 MHz? */ @@ -468,7 +468,7 @@ static MACHINE_CONFIG_START( galivan, galivan_state ) MCFG_SOUND_ROUTE_EX(0, "dac2", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac2", -1.0, DAC_VREF_NEG_INPUT) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( ninjemak, galivan_state ) +static MACHINE_CONFIG_START( ninjemak ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_12MHz/2) /* 6 MHz? */ @@ -1180,16 +1180,16 @@ DRIVER_INIT_MEMBER(galivan_state,youmab) } -GAME( 1985, galivan, 0, galivan, galivan, driver_device, 0, ROT270, "Nichibutsu", "Cosmo Police Galivan (12/26/1985)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, galivan2, galivan, galivan, galivan, driver_device, 0, ROT270, "Nichibutsu", "Cosmo Police Galivan (12/16/1985)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, galivan3, galivan, galivan, galivan, driver_device, 0, ROT270, "Nichibutsu", "Cosmo Police Galivan (12/11/1985)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, dangar, 0, galivan, dangar, driver_device, 0, ROT270, "Nichibutsu", "Ufo Robo Dangar (4/07/1987)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, dangara, dangar, galivan, dangar2, driver_device, 0, ROT270, "Nichibutsu", "Ufo Robo Dangar (12/1/1986)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, dangarb, dangar, galivan, dangar2, driver_device, 0, ROT270, "Nichibutsu", "Ufo Robo Dangar (9/26/1986)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, dangarj, dangar, galivan, dangar2, driver_device, 0, ROT270, "Nichibutsu", "Ufo Robo Dangar (9/26/1986, Japan)", MACHINE_SUPPORTS_SAVE|MACHINE_NOT_WORKING ) // no sprites visable -GAME( 1986, dangarbt, dangar, galivan, dangarb, driver_device, 0, ROT270, "bootleg", "Ufo Robo Dangar (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, ninjemak, 0, ninjemak, ninjemak, driver_device, 0, ROT270, "Nichibutsu", "Ninja Emaki (US)", MACHINE_SUPPORTS_SAVE|MACHINE_UNEMULATED_PROTECTION ) -GAME( 1986, youma, ninjemak, ninjemak, ninjemak, driver_device, 0, ROT270, "Nichibutsu", "Youma Ninpou Chou (Japan)", MACHINE_SUPPORTS_SAVE|MACHINE_UNEMULATED_PROTECTION ) -GAME( 1986, youma2, ninjemak, ninjemak, ninjemak, driver_device, 0, ROT270, "Nichibutsu", "Youma Ninpou Chou (Japan, alt)", MACHINE_SUPPORTS_SAVE|MACHINE_UNEMULATED_PROTECTION ) +GAME( 1985, galivan, 0, galivan, galivan, galivan_state, 0, ROT270, "Nichibutsu", "Cosmo Police Galivan (12/26/1985)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, galivan2, galivan, galivan, galivan, galivan_state, 0, ROT270, "Nichibutsu", "Cosmo Police Galivan (12/16/1985)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, galivan3, galivan, galivan, galivan, galivan_state, 0, ROT270, "Nichibutsu", "Cosmo Police Galivan (12/11/1985)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, dangar, 0, galivan, dangar, galivan_state, 0, ROT270, "Nichibutsu", "Ufo Robo Dangar (4/07/1987)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, dangara, dangar, galivan, dangar2, galivan_state, 0, ROT270, "Nichibutsu", "Ufo Robo Dangar (12/1/1986)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, dangarb, dangar, galivan, dangar2, galivan_state, 0, ROT270, "Nichibutsu", "Ufo Robo Dangar (9/26/1986)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, dangarj, dangar, galivan, dangar2, galivan_state, 0, ROT270, "Nichibutsu", "Ufo Robo Dangar (9/26/1986, Japan)", MACHINE_SUPPORTS_SAVE|MACHINE_NOT_WORKING ) // no sprites visable +GAME( 1986, dangarbt, dangar, galivan, dangarb, galivan_state, 0, ROT270, "bootleg", "Ufo Robo Dangar (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, ninjemak, 0, ninjemak, ninjemak, galivan_state, 0, ROT270, "Nichibutsu", "Ninja Emaki (US)", MACHINE_SUPPORTS_SAVE|MACHINE_UNEMULATED_PROTECTION ) +GAME( 1986, youma, ninjemak, ninjemak, ninjemak, galivan_state, 0, ROT270, "Nichibutsu", "Youma Ninpou Chou (Japan)", MACHINE_SUPPORTS_SAVE|MACHINE_UNEMULATED_PROTECTION ) +GAME( 1986, youma2, ninjemak, ninjemak, ninjemak, galivan_state, 0, ROT270, "Nichibutsu", "Youma Ninpou Chou (Japan, alt)", MACHINE_SUPPORTS_SAVE|MACHINE_UNEMULATED_PROTECTION ) GAME( 1986, youmab, ninjemak, youmab, ninjemak, galivan_state, youmab, ROT270, "bootleg", "Youma Ninpou Chou (Game Electronics bootleg, set 1)", MACHINE_NOT_WORKING|MACHINE_SUPPORTS_SAVE|MACHINE_UNEMULATED_PROTECTION ) // player is invincible GAME( 1986, youmab2, ninjemak, youmab, ninjemak, galivan_state, youmab, ROT270, "bootleg", "Youma Ninpou Chou (Game Electronics bootleg, set 2)", MACHINE_NOT_WORKING|MACHINE_SUPPORTS_SAVE|MACHINE_UNEMULATED_PROTECTION ) // "" diff --git a/src/mame/drivers/galpani2.cpp b/src/mame/drivers/galpani2.cpp index 6d9fb7a5692..0caf5eb790f 100644 --- a/src/mame/drivers/galpani2.cpp +++ b/src/mame/drivers/galpani2.cpp @@ -619,7 +619,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(galpani2_state::galpani2_interrupt2) m_subcpu->set_input_line(3, HOLD_LINE); } -static MACHINE_CONFIG_START( galpani2, galpani2_state ) +static MACHINE_CONFIG_START( galpani2 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_27MHz/2) /* Confirmed on galpani2i PCB */ @@ -660,10 +660,10 @@ static MACHINE_CONFIG_START( galpani2, galpani2_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_OKIM6295_ADD("oki1", XTAL_20MHz/10, OKIM6295_PIN7_HIGH) /* Confirmed on galpani2i PCB */ + MCFG_OKIM6295_ADD("oki1", XTAL_20MHz/10, PIN7_HIGH) /* Confirmed on galpani2i PCB */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) - MCFG_OKIM6295_ADD("oki2", XTAL_20MHz/10, OKIM6295_PIN7_HIGH) /* Confirmed on galpani2i PCB */ + MCFG_OKIM6295_ADD("oki2", XTAL_20MHz/10, PIN7_HIGH) /* Confirmed on galpani2i PCB */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) MACHINE_CONFIG_END @@ -1200,15 +1200,15 @@ ROM_START( gp2quiz ) ROM_LOAD( "gp2-101-0044.u60", 0x200000, 0x100000, CRC(3c45134f) SHA1(a5362bfcc6beb6e776c1bce4544475f8947fccea) ) ROM_END -GAME( 1993, galpani2, 0, galpani2, galpani2, driver_device, 0, ROT90, "Kaneko", "Gals Panic II (Asia)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) -GAME( 1993, galpani2e, galpani2, galpani2, galpani2, driver_device, 0, ROT90, "Kaneko", "Gals Panic II (English)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) -GAME( 1993, galpani2e2,galpani2, galpani2, galpani2, driver_device, 0, ROT90, "Kaneko", "Gals Panic II (English, 2 PCB ver.)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) -GAME( 1993, galpani2g, galpani2, galpani2, galpani2, driver_device, 0, ROT90, "Kaneko", "Gals Panic II (Germany, 2 PCB ver.)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) -GAME( 1993, galpani2i, galpani2, galpani2, galpani2, driver_device, 0, ROT90, "Kaneko", "Gals Panic II (Italy, single PCB)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) -GAME( 1993, galpani2gs,galpani2, galpani2, galpani2, driver_device, 0, ROT90, "Kaneko", "Gals Panic II (Germany, single PCB)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) -GAME( 1993, galpani2t, galpani2, galpani2, galpani2, driver_device, 0, ROT90, "Kaneko", "Gals Panic II (Taiwan)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) -GAME( 1993, galpani2j, galpani2, galpani2, galpani2, driver_device, 0, ROT90, "Kaneko", "Gals Panic II (Japan)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) // it is a 'quiz edition' but the title screen doesn't say, maybe all Japanese versions have the Quiz +GAME( 1993, galpani2, 0, galpani2, galpani2, galpani2_state, 0, ROT90, "Kaneko", "Gals Panic II (Asia)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) +GAME( 1993, galpani2e, galpani2, galpani2, galpani2, galpani2_state, 0, ROT90, "Kaneko", "Gals Panic II (English)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) +GAME( 1993, galpani2e2,galpani2, galpani2, galpani2, galpani2_state, 0, ROT90, "Kaneko", "Gals Panic II (English, 2 PCB ver.)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) +GAME( 1993, galpani2g, galpani2, galpani2, galpani2, galpani2_state, 0, ROT90, "Kaneko", "Gals Panic II (Germany, 2 PCB ver.)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) +GAME( 1993, galpani2i, galpani2, galpani2, galpani2, galpani2_state, 0, ROT90, "Kaneko", "Gals Panic II (Italy, single PCB)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) +GAME( 1993, galpani2gs,galpani2, galpani2, galpani2, galpani2_state, 0, ROT90, "Kaneko", "Gals Panic II (Germany, single PCB)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) +GAME( 1993, galpani2t, galpani2, galpani2, galpani2, galpani2_state, 0, ROT90, "Kaneko", "Gals Panic II (Taiwan)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) +GAME( 1993, galpani2j, galpani2, galpani2, galpani2, galpani2_state, 0, ROT90, "Kaneko", "Gals Panic II (Japan)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) // it is a 'quiz edition' but the title screen doesn't say, maybe all Japanese versions have the Quiz -GAME( 1993, gp2quiz, 0, galpani2, galpani2, driver_device, 0, ROT90, "Kaneko", "Gals Panic II - Quiz Version", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) // this one has 'quiz edition' on the title screen +GAME( 1993, gp2quiz, 0, galpani2, galpani2, galpani2_state, 0, ROT90, "Kaneko", "Gals Panic II - Quiz Version", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) // this one has 'quiz edition' on the title screen -GAME( 1994, gp2se, 0, galpani2, gp2se, driver_device, 0, ROT90, "Kaneko", "Gals Panic II' - Special Edition (Japan)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) +GAME( 1994, gp2se, 0, galpani2, gp2se, galpani2_state, 0, ROT90, "Kaneko", "Gals Panic II' - Special Edition (Japan)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/galpani3.cpp b/src/mame/drivers/galpani3.cpp index 30f068024a9..99e238bcfe1 100644 --- a/src/mame/drivers/galpani3.cpp +++ b/src/mame/drivers/galpani3.cpp @@ -501,7 +501,7 @@ static ADDRESS_MAP_START( galpani3_map, AS_PROGRAM, 16, galpani3_state ) ADDRESS_MAP_END -static MACHINE_CONFIG_START( galpani3, galpani3_state ) +static MACHINE_CONFIG_START( galpani3 ) MCFG_CPU_ADD("maincpu", M68000, XTAL_28_63636MHz/2) // Confirmed from PCB MCFG_CPU_PROGRAM_MAP(galpani3_map) MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", galpani3_state, galpani3_vblank, "screen", 0, 1) @@ -646,7 +646,7 @@ ROM_END -GAME( 1995, galpani3, 0, galpani3, galpani3, driver_device, 0, ROT90, "Kaneko", "Gals Panic 3 (Euro)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1995, galpani3j, galpani3, galpani3, galpani3, driver_device, 0, ROT90, "Kaneko", "Gals Panic 3 (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1995, galpani3k, galpani3, galpani3, galpani3, driver_device, 0, ROT90, "Kaneko", "Gals Panic 3 (Korea)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1995, galpani3hk,galpani3, galpani3, galpani3, driver_device, 0, ROT90, "Kaneko", "Gals Panic 3 (Hong Kong)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1995, galpani3, 0, galpani3, galpani3, galpani3_state, 0, ROT90, "Kaneko", "Gals Panic 3 (Euro)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1995, galpani3j, galpani3, galpani3, galpani3, galpani3_state, 0, ROT90, "Kaneko", "Gals Panic 3 (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1995, galpani3k, galpani3, galpani3, galpani3, galpani3_state, 0, ROT90, "Kaneko", "Gals Panic 3 (Korea)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1995, galpani3hk,galpani3, galpani3, galpani3, galpani3_state, 0, ROT90, "Kaneko", "Gals Panic 3 (Hong Kong)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/galpanic.cpp b/src/mame/drivers/galpanic.cpp index 589e1a3b268..155a36a3cfe 100644 --- a/src/mame/drivers/galpanic.cpp +++ b/src/mame/drivers/galpanic.cpp @@ -230,7 +230,7 @@ static GFXDECODE_START( galpanic ) GFXDECODE_END -static MACHINE_CONFIG_START( galpanic, galpanic_state ) +static MACHINE_CONFIG_START( galpanic ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_12MHz) /* verified on pcb */ @@ -261,7 +261,7 @@ static MACHINE_CONFIG_START( galpanic, galpanic_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", XTAL_12MHz/6, OKIM6295_PIN7_LOW) /* verified on pcb */ + MCFG_OKIM6295_ADD("oki", XTAL_12MHz/6, PIN7_LOW) /* verified on pcb */ MCFG_DEVICE_ADDRESS_MAP(AS_0, galpanic_oki_map) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -349,6 +349,6 @@ ROM_START( galpanicb ) /* PAMERA-04 PCB with the CALC1 MCU used */ ROM_LOAD( "pm007e.u", 0x80000, 0x80000, CRC(c7ed7950) SHA1(133258b058d3c562208d0d00b9fac71202647c32) ) ROM_END -GAME( 1990, galpanic, 0, galpanic, galpanic, driver_device, 0, ROT90, "Kaneko", "Gals Panic (Unprotected)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1990, galpanica, galpanic, galpanica, galpanica, driver_device, 0, ROT90, "Kaneko", "Gals Panic (MCU Protected, set 1)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1990, galpanicb, galpanic, galpanica, galpanica, driver_device, 0, ROT90, "Kaneko", "Gals Panic (MCU Protected, set 2)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1990, galpanic, 0, galpanic, galpanic, galpanic_state, 0, ROT90, "Kaneko", "Gals Panic (Unprotected)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1990, galpanica, galpanic, galpanica, galpanica, galpanic_state, 0, ROT90, "Kaneko", "Gals Panic (MCU Protected, set 1)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1990, galpanicb, galpanic, galpanica, galpanica, galpanic_state, 0, ROT90, "Kaneko", "Gals Panic (MCU Protected, set 2)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/galspnbl.cpp b/src/mame/drivers/galspnbl.cpp index 66bfb33ebab..cedc5820fe4 100644 --- a/src/mame/drivers/galspnbl.cpp +++ b/src/mame/drivers/galspnbl.cpp @@ -212,7 +212,7 @@ void galspnbl_state::machine_start() { } -static MACHINE_CONFIG_START( galspnbl, galspnbl_state ) +static MACHINE_CONFIG_START( galspnbl ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_12MHz) /* 12 MHz ??? - Use value from Tecmo's Super Pinball Action - NEEDS VERIFICATION!! */ @@ -254,7 +254,7 @@ static MACHINE_CONFIG_START( galspnbl, galspnbl_state ) MCFG_YM3812_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MCFG_OKIM6295_ADD("oki", XTAL_4MHz/4, OKIM6295_PIN7_HIGH) /* Use value from Super Pinball Action - clock frequency & pin 7 not verified */ + MCFG_OKIM6295_ADD("oki", XTAL_4MHz/4, PIN7_HIGH) /* Use value from Super Pinball Action - clock frequency & pin 7 not verified */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) MACHINE_CONFIG_END @@ -319,5 +319,5 @@ ROM_START( hotpinbl ) ROM_END -GAME( 1995, hotpinbl, 0, galspnbl, hotpinbl, driver_device, 0, ROT90, "Comad & New Japan System", "Hot Pinball", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, galspnbl, 0, galspnbl, galspnbl, driver_device, 0, ROT90, "Comad", "Gals Pinball", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, hotpinbl, 0, galspnbl, hotpinbl, galspnbl_state, 0, ROT90, "Comad & New Japan System", "Hot Pinball", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, galspnbl, 0, galspnbl, galspnbl, galspnbl_state, 0, ROT90, "Comad", "Gals Pinball", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/gamate.cpp b/src/mame/drivers/gamate.cpp index edf56c3761d..132cdc1e4d0 100644 --- a/src/mame/drivers/gamate.cpp +++ b/src/mame/drivers/gamate.cpp @@ -14,8 +14,11 @@ ******************************************************************************/ #include "emu.h" -#include "includes/gamate.h" +#include "audio/gamate.h" +#include "bus/generic/carts.h" +#include "bus/generic/slot.h" +#include "cpu/m6502/m6502.h" #include "rendlay.h" #include "screen.h" #include "softlist.h" @@ -374,7 +377,7 @@ INTERRUPT_GEN_MEMBER(gamate_state::gamate_interrupt) { } -static MACHINE_CONFIG_START( gamate, gamate_state ) +static MACHINE_CONFIG_START( gamate ) MCFG_CPU_ADD("maincpu", M6502, 4433000/2) MCFG_CPU_PROGRAM_MAP(gamate_mem) MCFG_CPU_VBLANK_INT_DRIVER("screen", gamate_state, gamate_interrupt) @@ -430,5 +433,5 @@ ROM_START(gamate) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME */ -CONS( 1990, gamate, 0, 0, gamate, gamate, gamate_state, gamate, "Bit Corp", "Gamate", 0) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +CONS( 1990, gamate, 0, 0, gamate, gamate, gamate_state, gamate, "Bit Corp", "Gamate", 0 ) diff --git a/src/mame/drivers/gambl186.cpp b/src/mame/drivers/gambl186.cpp index b9d896ea5e3..0334298b544 100644 --- a/src/mame/drivers/gambl186.cpp +++ b/src/mame/drivers/gambl186.cpp @@ -465,7 +465,7 @@ INPUT_PORTS_END -static MACHINE_CONFIG_START( gambl186, gambl186_state ) +static MACHINE_CONFIG_START( gambl186 ) MCFG_CPU_ADD("maincpu", I80186, XTAL_40MHz) MCFG_CPU_PROGRAM_MAP(gambl186_map) MCFG_CPU_IO_MAP(gambl186_io) @@ -524,6 +524,6 @@ ROM_START( gambl186b ) ROM_END // version numbering isn't clear, rom labels don't agree with test mode display. -GAME( 1997, gambl186, 0, gambl186, gambl186, driver_device, 0, ROT0, "EGD", "Multi Game (Versione 4.0.3 - 1.5.7, 05-FEV-99(397)) (V398?)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // Versione 4.0.3 (1.5.7), csmb15A, CSMB_0015A (IT), - 05-FEV-99(397) -GAME( 1997, gambl186a, gambl186, gambl186, gambl186, driver_device, 0, ROT0, "EGD", "Multi Game (Versione 4.0.3 - 1.5.7, 05-FEV-99(397)) (V399?)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // same? -GAME( 1997, gambl186b, gambl186, gambl186, gambl186, driver_device, 0, ROT0, "EGD", "Multi Game (Versione 3.8.6T - 1.5.6, 25-AUG-97) (V378?)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // Versione 3.8.6T (1.5.6), mult5_it, CSMB-0000F (IT), 25-AUG-97 +GAME( 1997, gambl186, 0, gambl186, gambl186, gambl186_state, 0, ROT0, "EGD", "Multi Game (Versione 4.0.3 - 1.5.7, 05-FEV-99(397)) (V398?)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // Versione 4.0.3 (1.5.7), csmb15A, CSMB_0015A (IT), - 05-FEV-99(397) +GAME( 1997, gambl186a, gambl186, gambl186, gambl186, gambl186_state, 0, ROT0, "EGD", "Multi Game (Versione 4.0.3 - 1.5.7, 05-FEV-99(397)) (V399?)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // same? +GAME( 1997, gambl186b, gambl186, gambl186, gambl186, gambl186_state, 0, ROT0, "EGD", "Multi Game (Versione 3.8.6T - 1.5.6, 25-AUG-97) (V378?)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // Versione 3.8.6T (1.5.6), mult5_it, CSMB-0000F (IT), 25-AUG-97 diff --git a/src/mame/drivers/gamecom.cpp b/src/mame/drivers/gamecom.cpp index 468abc79744..5a3763bfbca 100644 --- a/src/mame/drivers/gamecom.cpp +++ b/src/mame/drivers/gamecom.cpp @@ -247,7 +247,7 @@ INTERRUPT_GEN_MEMBER(gamecom_state::gamecom_interrupt) m_maincpu->set_input_line(sm8500_cpu_device::LCDC_INT, ASSERT_LINE ); } -static MACHINE_CONFIG_START( gamecom, gamecom_state ) +static MACHINE_CONFIG_START( gamecom ) /* basic machine hardware */ MCFG_CPU_ADD( "maincpu", SM8500, XTAL_11_0592MHz/2 ) /* actually it's an sm8521 microcontroller containing an sm8500 cpu */ MCFG_CPU_PROGRAM_MAP( gamecom_mem_map) @@ -303,5 +303,5 @@ ROM_START( gamecom ) ROM_LOAD( "external.bin", 0x00000, 0x40000, CRC(e235a589) SHA1(97f782e72d738f4d7b861363266bf46b438d9b50) ) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME */ -CONS( 1997, gamecom, 0, 0, gamecom, gamecom, gamecom_state, gamecom, "Tiger", "Game.com", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +CONS( 1997, gamecom, 0, 0, gamecom, gamecom, gamecom_state, gamecom, "Tiger", "Game.com", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) diff --git a/src/mame/drivers/gamecstl.cpp b/src/mame/drivers/gamecstl.cpp index 19f16bd744a..03a738d3590 100644 --- a/src/mame/drivers/gamecstl.cpp +++ b/src/mame/drivers/gamecstl.cpp @@ -428,7 +428,7 @@ void gamecstl_state::machine_reset() membank("bank1")->set_base(memregion("bios")->base() + 0x30000); } -static MACHINE_CONFIG_START( gamecstl, gamecstl_state ) +static MACHINE_CONFIG_START( gamecstl ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", PENTIUM3, 200000000) MCFG_CPU_PROGRAM_MAP(gamecstl_map) @@ -493,5 +493,5 @@ ROM_END /*****************************************************************************/ -GAME(2002, gamecstl, 0, gamecstl, gamecstl, gamecstl_state, gamecstl, ROT0, "Cristaltec", "GameCristal", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +GAME(2002, gamecstl, 0, gamecstl, gamecstl, gamecstl_state, gamecstl, ROT0, "Cristaltec", "GameCristal", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) GAME(2002, gamecst2, gamecstl, gamecstl, gamecstl, gamecstl_state, gamecstl, ROT0, "Cristaltec", "GameCristal (version 2.613)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) diff --git a/src/mame/drivers/gameking.cpp b/src/mame/drivers/gameking.cpp index 6ec2dc1d045..3ea039eaa36 100644 --- a/src/mame/drivers/gameking.cpp +++ b/src/mame/drivers/gameking.cpp @@ -276,7 +276,7 @@ INTERRUPT_GEN_MEMBER(gameking_state::gameking_frame_int) // guess to get over bi } -static MACHINE_CONFIG_START( gameking, gameking_state ) +static MACHINE_CONFIG_START( gameking ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", R65C02, 6000000) MCFG_CPU_PROGRAM_MAP(gameking_mem) @@ -320,9 +320,9 @@ ROM_START(gamekin3) ROM_LOAD("gm220.bin", 0x10000, 0x80000, CRC(1dc43bd5) SHA1(f9dcd3cb76bb7cb10565a1acb070ab375c082b4c) ) ROM_END -CONS(2003, gameking, 0, 0, gameking1, gameking, gameking_state, gameking, "TimeTop", "GameKing GM-218", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +CONS( 2003, gameking, 0, 0, gameking1, gameking, gameking_state, gameking, "TimeTop", "GameKing GM-218", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // the GameKing 2 (GM-219) is probably identical HW -CONS(2003, gamekin3, 0, 0, gameking3, gameking, gameking_state, gameking, "TimeTop", "GameKing 3", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +CONS( 2003, gamekin3, 0, 0, gameking3, gameking, gameking_state, gameking, "TimeTop", "GameKing 3", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // gameking 3: similiar cartridges, accepts gameking cartridges, gameking3 cartridges not working on gameking (illegal cartridge scroller) // my gameking bios backup solution might work on it diff --git a/src/mame/drivers/gameplan.cpp b/src/mame/drivers/gameplan.cpp index 407848b6c66..1460568edfa 100644 --- a/src/mame/drivers/gameplan.cpp +++ b/src/mame/drivers/gameplan.cpp @@ -956,7 +956,7 @@ MACHINE_RESET_MEMBER(gameplan_state,gameplan) m_video_data = 0; } -static MACHINE_CONFIG_START( gameplan, gameplan_state ) +static MACHINE_CONFIG_START( gameplan ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, GAMEPLAN_MAIN_CPU_CLOCK) @@ -1175,12 +1175,12 @@ ROM_END * *************************************/ -GAME( 1980, killcom, 0, gameplan, killcom, driver_device, 0, ROT0, "Game Plan (Centuri license)", "Killer Comet", MACHINE_SUPPORTS_SAVE ) -GAME( 1980, megatack, 0, gameplan, megatack, driver_device, 0, ROT0, "Game Plan (Centuri license)", "Megatack (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1980, megatacka, megatack, gameplan, megatack, driver_device, 0, ROT0, "Game Plan (Centuri license)", "Megatack (set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, challeng, 0, gameplan, challeng, driver_device, 0, ROT0, "Game Plan (Centuri license)", "Challenger", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, kaos, 0, gameplan, kaos, driver_device, 0, ROT270, "Game Plan", "Kaos", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, leprechn, 0, leprechn, leprechn, driver_device, 0, ROT0, "Tong Electronic", "Leprechaun", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, potogold, leprechn, leprechn, potogold, driver_device, 0, ROT0, "Tong Electronic (Game Plan license)", "Pot of Gold", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, leprechp, leprechn, leprechn, potogold, driver_device, 0, ROT0, "Tong Electronic (Pacific Polytechnical license)", "Leprechaun (Pacific)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, piratetr, 0, leprechn, piratetr, driver_device, 0, ROT0, "Tong Electronic", "Pirate Treasure", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, killcom, 0, gameplan, killcom, gameplan_state, 0, ROT0, "Game Plan (Centuri license)", "Killer Comet", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, megatack, 0, gameplan, megatack, gameplan_state, 0, ROT0, "Game Plan (Centuri license)", "Megatack (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, megatacka, megatack, gameplan, megatack, gameplan_state, 0, ROT0, "Game Plan (Centuri license)", "Megatack (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, challeng, 0, gameplan, challeng, gameplan_state, 0, ROT0, "Game Plan (Centuri license)", "Challenger", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, kaos, 0, gameplan, kaos, gameplan_state, 0, ROT270, "Game Plan", "Kaos", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, leprechn, 0, leprechn, leprechn, gameplan_state, 0, ROT0, "Tong Electronic", "Leprechaun", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, potogold, leprechn, leprechn, potogold, gameplan_state, 0, ROT0, "Tong Electronic (Game Plan license)", "Pot of Gold", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, leprechp, leprechn, leprechn, potogold, gameplan_state, 0, ROT0, "Tong Electronic (Pacific Polytechnical license)", "Leprechaun (Pacific)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, piratetr, 0, leprechn, piratetr, gameplan_state, 0, ROT0, "Tong Electronic", "Pirate Treasure", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/gamepock.cpp b/src/mame/drivers/gamepock.cpp index 50325e3ca79..2db060cf319 100644 --- a/src/mame/drivers/gamepock.cpp +++ b/src/mame/drivers/gamepock.cpp @@ -41,7 +41,7 @@ static INPUT_PORTS_START( gamepock ) INPUT_PORTS_END -static MACHINE_CONFIG_START( gamepock, gamepock_state ) +static MACHINE_CONFIG_START( gamepock ) MCFG_CPU_ADD("maincpu", UPD78C06, XTAL_6MHz) /* uPD78C06AG */ MCFG_CPU_PROGRAM_MAP( gamepock_mem) MCFG_UPD7810_PORTA_WRITE_CB(WRITE8(gamepock_state, port_a_w)) @@ -80,4 +80,4 @@ ROM_START( gamepock ) ROM_END -CONS( 1984, gamepock, 0, 0, gamepock, gamepock, driver_device, 0, "Epoch", "Game Pocket Computer", 0 ) +CONS( 1984, gamepock, 0, 0, gamepock, gamepock, gamepock_state, 0, "Epoch", "Game Pocket Computer", 0 ) diff --git a/src/mame/drivers/gammagic.cpp b/src/mame/drivers/gammagic.cpp index 33bffb291de..0bb6a173b03 100644 --- a/src/mame/drivers/gammagic.cpp +++ b/src/mame/drivers/gammagic.cpp @@ -122,7 +122,7 @@ void gammagic_state::machine_start() { } -static MACHINE_CONFIG_START( gammagic, gammagic_state ) +static MACHINE_CONFIG_START( gammagic ) MCFG_CPU_ADD("maincpu", PENTIUM, 133000000) // Intel Pentium 133 MCFG_CPU_PROGRAM_MAP(gammagic_map) MCFG_CPU_IO_MAP(gammagic_io) @@ -181,6 +181,6 @@ ROM_END * Game Drivers * *************************/ -/* YEAR NAME PARENT MACHINE INPUT INIT ROT COMPANY FULLNAME FLAGS */ -GAME( 1999, gammagic, 0, gammagic, gammagic, driver_device, 0, ROT0, "Bally Gaming Co.", "Game Magic", MACHINE_IS_SKELETON ) -GAME( 1999, 99bottles, gammagic, gammagic, gammagic, driver_device, 0, ROT0, "Bally Gaming Co.", "99 Bottles of Beer", MACHINE_IS_SKELETON ) +// YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS +GAME( 1999, gammagic, 0, gammagic, gammagic, gammagic_state, 0, ROT0, "Bally Gaming Co.", "Game Magic", MACHINE_IS_SKELETON ) +GAME( 1999, 99bottles, gammagic, gammagic, gammagic, gammagic_state, 0, ROT0, "Bally Gaming Co.", "99 Bottles of Beer", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/gamtor.cpp b/src/mame/drivers/gamtor.cpp index 2b7aa1ca10a..9c0b05891c4 100644 --- a/src/mame/drivers/gamtor.cpp +++ b/src/mame/drivers/gamtor.cpp @@ -77,7 +77,7 @@ INPUT_PORTS_END -static MACHINE_CONFIG_START( gaminator, gaminator_state ) +static MACHINE_CONFIG_START( gaminator ) MCFG_CPU_ADD("maincpu", MCF5206E, 40000000) /* definitely Coldfire, model / clock uncertain */ MCFG_CPU_PROGRAM_MAP(gaminator_map) MCFG_CPU_VBLANK_INT_DRIVER("screen", gaminator_state, irq6_line_hold) // irq6 seems to be needed to get past the ROM checking diff --git a/src/mame/drivers/gaplus.cpp b/src/mame/drivers/gaplus.cpp index eee69f03b61..4646a889490 100644 --- a/src/mame/drivers/gaplus.cpp +++ b/src/mame/drivers/gaplus.cpp @@ -512,7 +512,7 @@ void gaplus_state::machine_start() } -static MACHINE_CONFIG_START( gaplus, gaplus_state ) +static MACHINE_CONFIG_START( gaplus ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809, 24576000/16) /* 1.536 MHz */ @@ -531,7 +531,7 @@ static MACHINE_CONFIG_START( gaplus, gaplus_state ) MCFG_WATCHDOG_ADD("watchdog") - MCFG_DEVICE_ADD("namcoio_1", NAMCO56XX, 0) + MCFG_DEVICE_ADD("namcoio_1", NAMCO_56XX, 0) MCFG_NAMCO56XX_IN_0_CB(IOPORT("COINS")) MCFG_NAMCO56XX_IN_1_CB(IOPORT("P1")) MCFG_NAMCO56XX_IN_2_CB(IOPORT("P2")) @@ -539,7 +539,7 @@ static MACHINE_CONFIG_START( gaplus, gaplus_state ) MCFG_NAMCO56XX_OUT_0_CB(WRITE8(gaplus_state, out_lamps0)) MCFG_NAMCO56XX_OUT_1_CB(WRITE8(gaplus_state, out_lamps1)) - MCFG_DEVICE_ADD("namcoio_2", NAMCO58XX, 0) + MCFG_DEVICE_ADD("namcoio_2", NAMCO_58XX, 0) MCFG_NAMCO58XX_IN_0_CB(IOPORT("DSWA_HIGH")) MCFG_NAMCO58XX_IN_1_CB(IOPORT("DSWB_LOW")) MCFG_NAMCO58XX_IN_2_CB(IOPORT("DSWB_HIGH")) @@ -583,13 +583,13 @@ MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( gaplusd, gaplus ) - MCFG_DEVICE_REPLACE("namcoio_1", NAMCO58XX, 0) + MCFG_DEVICE_REPLACE("namcoio_1", NAMCO_58XX, 0) MCFG_NAMCO58XX_IN_0_CB(IOPORT("COINS")) MCFG_NAMCO58XX_IN_1_CB(IOPORT("P1")) MCFG_NAMCO58XX_IN_2_CB(IOPORT("P2")) MCFG_NAMCO58XX_IN_3_CB(IOPORT("BUTTONS")) - MCFG_DEVICE_REPLACE("namcoio_2", NAMCO56XX, 0) + MCFG_DEVICE_REPLACE("namcoio_2", NAMCO_56XX, 0) MCFG_NAMCO56XX_IN_0_CB(IOPORT("DSWA_HIGH")) MCFG_NAMCO56XX_IN_1_CB(IOPORT("DSWB_LOW")) MCFG_NAMCO56XX_IN_2_CB(IOPORT("DSWB_HIGH")) @@ -602,13 +602,13 @@ static MACHINE_CONFIG_DERIVED( gapluso, gaplusd ) MCFG_CPU_MODIFY("maincpu") MCFG_CPU_VBLANK_INT_DRIVER("screen", gaplus_state, gapluso_vblank_main_irq) - MCFG_DEVICE_REPLACE("namcoio_1", NAMCO56XX, 0) + MCFG_DEVICE_REPLACE("namcoio_1", NAMCO_56XX, 0) MCFG_NAMCO56XX_IN_0_CB(IOPORT("COINS")) MCFG_NAMCO56XX_IN_1_CB(IOPORT("P1")) MCFG_NAMCO56XX_IN_2_CB(IOPORT("P2")) MCFG_NAMCO56XX_IN_3_CB(IOPORT("BUTTONS")) - MCFG_DEVICE_REPLACE("namcoio_2", NAMCO58XX, 0) + MCFG_DEVICE_REPLACE("namcoio_2", NAMCO_58XX, 0) MCFG_NAMCO58XX_IN_0_CB(IOPORT("DSWA_HIGH")) MCFG_NAMCO58XX_IN_1_CB(IOPORT("DSWB_LOW")) MCFG_NAMCO58XX_IN_2_CB(IOPORT("DSWB_HIGH")) diff --git a/src/mame/drivers/gatron.cpp b/src/mame/drivers/gatron.cpp index 2dcef27e1e0..659dda32ff0 100644 --- a/src/mame/drivers/gatron.cpp +++ b/src/mame/drivers/gatron.cpp @@ -563,7 +563,7 @@ GFXDECODE_END * Machine Drivers * *************************/ -static MACHINE_CONFIG_START( gat, gatron_state ) +static MACHINE_CONFIG_START( gat ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, MASTER_CLOCK/24) /* 666.66 kHz, guess */ @@ -638,7 +638,7 @@ ROM_END * Game Drivers * *************************/ -/* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS LAYOUT */ -GAMEL( 1983, poker41, 0, gat, poker41, driver_device, 0, ROT0, "Game-A-Tron", "Four In One Poker", 0, layout_poker41 ) -GAMEL( 1983, pulltabs, 0, gat, pulltabs, driver_device, 0, ROT0, "Game-A-Tron", "Pull Tabs", 0, layout_pulltabs ) -GAMEL( 1983, bingo, 0, gat, bingo, driver_device, 0, ROT0, "Game-A-Tron", "Bingo", 0, layout_bingo ) +/* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS LAYOUT */ +GAMEL( 1983, poker41, 0, gat, poker41, gatron_state, 0, ROT0, "Game-A-Tron", "Four In One Poker", 0, layout_poker41 ) +GAMEL( 1983, pulltabs, 0, gat, pulltabs, gatron_state, 0, ROT0, "Game-A-Tron", "Pull Tabs", 0, layout_pulltabs ) +GAMEL( 1983, bingo, 0, gat, bingo, gatron_state, 0, ROT0, "Game-A-Tron", "Bingo", 0, layout_bingo ) diff --git a/src/mame/drivers/gauntlet.cpp b/src/mame/drivers/gauntlet.cpp index a1eb2ba0c42..ad4aefc67af 100644 --- a/src/mame/drivers/gauntlet.cpp +++ b/src/mame/drivers/gauntlet.cpp @@ -491,7 +491,7 @@ GFXDECODE_END * *************************************/ -static MACHINE_CONFIG_START( gauntlet_base, gauntlet_state ) +static MACHINE_CONFIG_START( gauntlet_base ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68010, ATARI_CLOCK_14MHz/2) @@ -1697,35 +1697,35 @@ DRIVER_INIT_MEMBER(gauntlet_state,vindctr2) * *************************************/ -GAME( 1985, gauntlet, 0, gauntlet, gauntlet, gauntlet_state, gauntlet, ROT0, "Atari Games", "Gauntlet (rev 14)", 0 ) -GAME( 1985, gauntlets, gauntlet, gauntlet, gauntlet, gauntlet_state, gauntlet, ROT0, "Atari Games", "Gauntlet (Spanish, rev 15)", 0 ) -GAME( 1985, gauntletj, gauntlet, gauntlet, gauntlet, gauntlet_state, gauntlet, ROT0, "Atari Games", "Gauntlet (Japanese, rev 13)", 0 ) -GAME( 1985, gauntletg, gauntlet, gauntlet, gauntlet, gauntlet_state, gauntlet, ROT0, "Atari Games", "Gauntlet (German, rev 10)", 0 ) -GAME( 1985, gauntletj12, gauntlet, gauntlet, gauntlet, gauntlet_state, gauntlet, ROT0, "Atari Games", "Gauntlet (Japanese, rev 12)", 0 ) -GAME( 1985, gauntletr9, gauntlet, gauntlet, gauntlet, gauntlet_state, gauntlet, ROT0, "Atari Games", "Gauntlet (rev 9)", 0 ) -GAME( 1985, gauntletgr8, gauntlet, gauntlet, gauntlet, gauntlet_state, gauntlet, ROT0, "Atari Games", "Gauntlet (German, rev 8)", 0 ) -GAME( 1985, gauntletr7, gauntlet, gauntlet, gauntlet, gauntlet_state, gauntlet, ROT0, "Atari Games", "Gauntlet (rev 7)", 0 ) -GAME( 1985, gauntletgr6, gauntlet, gauntlet, gauntlet, gauntlet_state, gauntlet, ROT0, "Atari Games", "Gauntlet (German, rev 6)", 0 ) -GAME( 1985, gauntletr5, gauntlet, gauntlet, gauntlet, gauntlet_state, gauntlet, ROT0, "Atari Games", "Gauntlet (rev 5)", 0 ) -GAME( 1985, gauntletr4, gauntlet, gauntlet, gauntlet, gauntlet_state, gauntlet, ROT0, "Atari Games", "Gauntlet (rev 4)", 0 ) -GAME( 1985, gauntletgr3, gauntlet, gauntlet, gauntlet, gauntlet_state, gauntlet, ROT0, "Atari Games", "Gauntlet (German, rev 3)", 0 ) -GAME( 1985, gauntletr2, gauntlet, gauntlet, gauntlet, gauntlet_state, gauntlet, ROT0, "Atari Games", "Gauntlet (rev 2)", 0 ) -GAME( 1985, gauntletr1, gauntlet, gauntlet, gauntlet, gauntlet_state, gauntlet, ROT0, "Atari Games", "Gauntlet (rev 1)", 0 ) - -GAME( 1985, gauntlet2p, gauntlet, gaunt2p, gauntlet, gauntlet_state, gauntlet, ROT0, "Atari Games", "Gauntlet (2 Players, rev 6)", 0 ) -GAME( 1985, gauntlet2pj, gauntlet, gaunt2p, gauntlet, gauntlet_state, gauntlet, ROT0, "Atari Games", "Gauntlet (2 Players, Japanese, rev 5)", 0 ) -GAME( 1985, gauntlet2pg, gauntlet, gaunt2p, gauntlet, gauntlet_state, gauntlet, ROT0, "Atari Games", "Gauntlet (2 Players, German, rev 4)", 0 ) -GAME( 1985, gauntlet2pr3, gauntlet, gaunt2p, gauntlet, gauntlet_state, gauntlet, ROT0, "Atari Games", "Gauntlet (2 Players, rev 3)", 0 ) -GAME( 1985, gauntlet2pj2, gauntlet, gaunt2p, gauntlet, gauntlet_state, gauntlet, ROT0, "Atari Games", "Gauntlet (2 Players, Japanese, rev 2)", 0 ) -GAME( 1985, gauntlet2pg1, gauntlet, gaunt2p, gauntlet, gauntlet_state, gauntlet, ROT0, "Atari Games", "Gauntlet (2 Players, German, rev 1)", 0 ) - -GAME( 1986, gaunt2, 0, gauntlet2, gauntlet, gauntlet_state, gauntlet, ROT0, "Atari Games", "Gauntlet II", 0 ) -GAME( 1986, gaunt2g, gaunt2, gauntlet2, gauntlet, gauntlet_state, gauntlet, ROT0, "Atari Games", "Gauntlet II (German)", 0 ) - -GAME( 1986, gaunt22p, gaunt2, gauntlet2, gauntlet, gauntlet_state, gauntlet, ROT0, "Atari Games", "Gauntlet II (2 Players, rev 2)", 0 ) -GAME( 1986, gaunt22p1, gaunt2, gauntlet2, gauntlet, gauntlet_state, gauntlet, ROT0, "Atari Games", "Gauntlet II (2 Players, rev 1)", 0 ) -GAME( 1986, gaunt22pg, gaunt2, gauntlet2, gauntlet, gauntlet_state, gauntlet, ROT0, "Atari Games", "Gauntlet II (2 Players, German)", 0 ) - -GAME( 1988, vindctr2, 0, vindctr2, vindctr2, gauntlet_state, vindctr2, ROT0, "Atari Games", "Vindicators Part II (rev 3)", 0 ) -GAME( 1988, vindctr2r2, vindctr2, vindctr2, vindctr2, gauntlet_state, vindctr2, ROT0, "Atari Games", "Vindicators Part II (rev 2)", 0 ) -GAME( 1988, vindctr2r1, vindctr2, vindctr2, vindctr2, gauntlet_state, vindctr2, ROT0, "Atari Games", "Vindicators Part II (rev 1)", 0 ) +GAME( 1985, gauntlet, 0, gauntlet, gauntlet, gauntlet_state, gauntlet, ROT0, "Atari Games", "Gauntlet (rev 14)", 0 ) +GAME( 1985, gauntlets, gauntlet, gauntlet, gauntlet, gauntlet_state, gauntlet, ROT0, "Atari Games", "Gauntlet (Spanish, rev 15)", 0 ) +GAME( 1985, gauntletj, gauntlet, gauntlet, gauntlet, gauntlet_state, gauntlet, ROT0, "Atari Games", "Gauntlet (Japanese, rev 13)", 0 ) +GAME( 1985, gauntletg, gauntlet, gauntlet, gauntlet, gauntlet_state, gauntlet, ROT0, "Atari Games", "Gauntlet (German, rev 10)", 0 ) +GAME( 1985, gauntletj12, gauntlet, gauntlet, gauntlet, gauntlet_state, gauntlet, ROT0, "Atari Games", "Gauntlet (Japanese, rev 12)", 0 ) +GAME( 1985, gauntletr9, gauntlet, gauntlet, gauntlet, gauntlet_state, gauntlet, ROT0, "Atari Games", "Gauntlet (rev 9)", 0 ) +GAME( 1985, gauntletgr8, gauntlet, gauntlet, gauntlet, gauntlet_state, gauntlet, ROT0, "Atari Games", "Gauntlet (German, rev 8)", 0 ) +GAME( 1985, gauntletr7, gauntlet, gauntlet, gauntlet, gauntlet_state, gauntlet, ROT0, "Atari Games", "Gauntlet (rev 7)", 0 ) +GAME( 1985, gauntletgr6, gauntlet, gauntlet, gauntlet, gauntlet_state, gauntlet, ROT0, "Atari Games", "Gauntlet (German, rev 6)", 0 ) +GAME( 1985, gauntletr5, gauntlet, gauntlet, gauntlet, gauntlet_state, gauntlet, ROT0, "Atari Games", "Gauntlet (rev 5)", 0 ) +GAME( 1985, gauntletr4, gauntlet, gauntlet, gauntlet, gauntlet_state, gauntlet, ROT0, "Atari Games", "Gauntlet (rev 4)", 0 ) +GAME( 1985, gauntletgr3, gauntlet, gauntlet, gauntlet, gauntlet_state, gauntlet, ROT0, "Atari Games", "Gauntlet (German, rev 3)", 0 ) +GAME( 1985, gauntletr2, gauntlet, gauntlet, gauntlet, gauntlet_state, gauntlet, ROT0, "Atari Games", "Gauntlet (rev 2)", 0 ) +GAME( 1985, gauntletr1, gauntlet, gauntlet, gauntlet, gauntlet_state, gauntlet, ROT0, "Atari Games", "Gauntlet (rev 1)", 0 ) + +GAME( 1985, gauntlet2p, gauntlet, gaunt2p, gauntlet, gauntlet_state, gauntlet, ROT0, "Atari Games", "Gauntlet (2 Players, rev 6)", 0 ) +GAME( 1985, gauntlet2pj, gauntlet, gaunt2p, gauntlet, gauntlet_state, gauntlet, ROT0, "Atari Games", "Gauntlet (2 Players, Japanese, rev 5)", 0 ) +GAME( 1985, gauntlet2pg, gauntlet, gaunt2p, gauntlet, gauntlet_state, gauntlet, ROT0, "Atari Games", "Gauntlet (2 Players, German, rev 4)", 0 ) +GAME( 1985, gauntlet2pr3, gauntlet, gaunt2p, gauntlet, gauntlet_state, gauntlet, ROT0, "Atari Games", "Gauntlet (2 Players, rev 3)", 0 ) +GAME( 1985, gauntlet2pj2, gauntlet, gaunt2p, gauntlet, gauntlet_state, gauntlet, ROT0, "Atari Games", "Gauntlet (2 Players, Japanese, rev 2)", 0 ) +GAME( 1985, gauntlet2pg1, gauntlet, gaunt2p, gauntlet, gauntlet_state, gauntlet, ROT0, "Atari Games", "Gauntlet (2 Players, German, rev 1)", 0 ) + +GAME( 1986, gaunt2, 0, gauntlet2, gauntlet, gauntlet_state, gauntlet, ROT0, "Atari Games", "Gauntlet II", 0 ) +GAME( 1986, gaunt2g, gaunt2, gauntlet2, gauntlet, gauntlet_state, gauntlet, ROT0, "Atari Games", "Gauntlet II (German)", 0 ) + +GAME( 1986, gaunt22p, gaunt2, gauntlet2, gauntlet, gauntlet_state, gauntlet, ROT0, "Atari Games", "Gauntlet II (2 Players, rev 2)", 0 ) +GAME( 1986, gaunt22p1, gaunt2, gauntlet2, gauntlet, gauntlet_state, gauntlet, ROT0, "Atari Games", "Gauntlet II (2 Players, rev 1)", 0 ) +GAME( 1986, gaunt22pg, gaunt2, gauntlet2, gauntlet, gauntlet_state, gauntlet, ROT0, "Atari Games", "Gauntlet II (2 Players, German)", 0 ) + +GAME( 1988, vindctr2, 0, vindctr2, vindctr2, gauntlet_state, vindctr2, ROT0, "Atari Games", "Vindicators Part II (rev 3)", 0 ) +GAME( 1988, vindctr2r2, vindctr2, vindctr2, vindctr2, gauntlet_state, vindctr2, ROT0, "Atari Games", "Vindicators Part II (rev 2)", 0 ) +GAME( 1988, vindctr2r1, vindctr2, vindctr2, vindctr2, gauntlet_state, vindctr2, ROT0, "Atari Games", "Vindicators Part II (rev 1)", 0 ) diff --git a/src/mame/drivers/gb.cpp b/src/mame/drivers/gb.cpp index 928668dea91..311dcd8b649 100644 --- a/src/mame/drivers/gb.cpp +++ b/src/mame/drivers/gb.cpp @@ -625,7 +625,7 @@ PALETTE_INIT_MEMBER(megaduck_state, megaduck) } -static MACHINE_CONFIG_START( gameboy, gb_state ) +static MACHINE_CONFIG_START( gameboy ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", LR35902, XTAL_4_194304Mhz) @@ -665,7 +665,7 @@ static MACHINE_CONFIG_START( gameboy, gb_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( supergb, gb_state ) +static MACHINE_CONFIG_START( supergb ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", LR35902, 4295454) /* 4.295454 MHz, derived from SNES xtal */ MCFG_CPU_PROGRAM_MAP(sgb_map) @@ -740,7 +740,7 @@ static MACHINE_CONFIG_DERIVED( gbpocket, gameboy ) MCFG_MGB_PPU_ADD("ppu", "maincpu") MACHINE_CONFIG_END -static MACHINE_CONFIG_START( gbcolor, gb_state ) +static MACHINE_CONFIG_START( gbcolor ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", LR35902, XTAL_4_194304Mhz) // todo XTAL_8_388MHz @@ -786,7 +786,7 @@ static MACHINE_CONFIG_START( gbcolor, gb_state ) MCFG_SOFTWARE_LIST_COMPATIBLE_ADD("gb_list","gameboy") MACHINE_CONFIG_END -static MACHINE_CONFIG_START( megaduck, megaduck_state ) +static MACHINE_CONFIG_START( megaduck ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", LR35902, XTAL_4_194304Mhz) /* 4.194304 MHz */ @@ -866,12 +866,12 @@ ROM_START(megaduck) ROM_REGION(0x10000, "maincpu", ROMREGION_ERASEFF) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ -CONS(1990, gameboy, 0, 0, gameboy, gameboy, driver_device, 0, "Nintendo", "Game Boy", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE) -CONS(1994, supergb, gameboy, 0, supergb, gameboy, driver_device, 0, "Nintendo", "Super Game Boy", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE) -CONS(1998, supergb2, gameboy, 0, supergb2, gameboy, driver_device, 0, "Nintendo", "Super Game Boy 2", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE) -CONS(1996, gbpocket, gameboy, 0, gbpocket, gameboy, driver_device, 0, "Nintendo", "Game Boy Pocket", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE) -CONS(1998, gbcolor, 0, 0, gbcolor, gameboy, driver_device, 0, "Nintendo", "Game Boy Color", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME */ +CONS(1990, gameboy, 0, 0, gameboy, gameboy, gb_state, 0, "Nintendo", "Game Boy", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE) +CONS(1994, supergb, gameboy, 0, supergb, gameboy, gb_state, 0, "Nintendo", "Super Game Boy", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE) +CONS(1998, supergb2, gameboy, 0, supergb2, gameboy, gb_state, 0, "Nintendo", "Super Game Boy 2", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE) +CONS(1996, gbpocket, gameboy, 0, gbpocket, gameboy, gb_state, 0, "Nintendo", "Game Boy Pocket", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE) +CONS(1998, gbcolor, 0, 0, gbcolor, gameboy, gb_state, 0, "Nintendo", "Game Boy Color", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE) // Sound is not 100% yet, it generates some sounds which could be ok. Since we're lacking a real system there's no way to verify. -CONS( 1993, megaduck, 0, 0, megaduck, gameboy, driver_device, 0, "Welback Holdings (Timlex International) / Creatronic / Videojet / Cougar USA", "Mega Duck / Cougar Boy", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +CONS( 1993, megaduck, 0, 0, megaduck, gameboy, megaduck_state, 0, "Welback Holdings (Timlex International) / Creatronic / Videojet / Cougar USA", "Mega Duck / Cougar Boy", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/gba.cpp b/src/mame/drivers/gba.cpp index dbd69b29c38..0596c095117 100644 --- a/src/mame/drivers/gba.cpp +++ b/src/mame/drivers/gba.cpp @@ -1397,7 +1397,7 @@ static SLOT_INTERFACE_START(gba_cart) SLOT_INTERFACE_END -static MACHINE_CONFIG_START( gbadv, gba_state ) +static MACHINE_CONFIG_START( gbadv ) MCFG_CPU_ADD("maincpu", ARM7, XTAL_16_777216MHz) MCFG_CPU_PROGRAM_MAP(gba_map) @@ -1435,5 +1435,5 @@ ROM_START( gba ) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ -CONS(2001, gba, 0, 0, gbadv, gbadv, driver_device, 0, "Nintendo", "Game Boy Advance", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +CONS(2001, gba, 0, 0, gbadv, gbadv, gba_state, 0, "Nintendo", "Game Boy Advance", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND) diff --git a/src/mame/drivers/gberet.cpp b/src/mame/drivers/gberet.cpp index 63c8e06c465..cf6b5edf565 100644 --- a/src/mame/drivers/gberet.cpp +++ b/src/mame/drivers/gberet.cpp @@ -405,7 +405,7 @@ MACHINE_RESET_MEMBER(gberet_state,gberet) m_spritebank = 0; } -static MACHINE_CONFIG_START( gberet, gberet_state ) +static MACHINE_CONFIG_START( gberet ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_18_432MHz/6) // X1S (generated by a custom IC) @@ -445,7 +445,7 @@ static MACHINE_CONFIG_DERIVED( mrgoemon, gberet ) MCFG_CPU_PROGRAM_MAP(mrgoemon_map) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( gberetb, gberet_state ) +static MACHINE_CONFIG_START( gberetb ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_20MHz/4) // divider guessed @@ -589,7 +589,7 @@ DRIVER_INIT_MEMBER(gberet_state,mrgoemon) * *************************************/ -GAME( 1985, gberet, 0, gberet, gberet, driver_device, 0, ROT0, "Konami", "Green Beret", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, rushatck, gberet, gberet, gberet, driver_device, 0, ROT0, "Konami", "Rush'n Attack (US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, gberetb, gberet, gberetb, gberetb, driver_device, 0, ROT0, "bootleg", "Green Beret (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, gberet, 0, gberet, gberet, gberet_state, 0, ROT0, "Konami", "Green Beret", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, rushatck, gberet, gberet, gberet, gberet_state, 0, ROT0, "Konami", "Rush'n Attack (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, gberetb, gberet, gberetb, gberetb, gberet_state, 0, ROT0, "bootleg", "Green Beret (bootleg)", MACHINE_SUPPORTS_SAVE ) GAME( 1986, mrgoemon, 0, mrgoemon, mrgoemon, gberet_state, mrgoemon, ROT0, "Konami", "Mr. Goemon (Japan)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/gcpinbal.cpp b/src/mame/drivers/gcpinbal.cpp index 4dde3173039..32229922207 100644 --- a/src/mame/drivers/gcpinbal.cpp +++ b/src/mame/drivers/gcpinbal.cpp @@ -447,7 +447,7 @@ void gcpinbal_state::machine_reset() m_msm_bank = 0; } -static MACHINE_CONFIG_START( gcpinbal, gcpinbal_state ) +static MACHINE_CONFIG_START( gcpinbal ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_32MHz/2) /* 16 MHz */ @@ -475,7 +475,7 @@ static MACHINE_CONFIG_START( gcpinbal, gcpinbal_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", XTAL_1_056MHz, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", XTAL_1_056MHz, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30) MCFG_DEVICE_ADD("adpcm_select", HCT157, 0) @@ -483,7 +483,7 @@ static MACHINE_CONFIG_START( gcpinbal, gcpinbal_state ) MCFG_SOUND_ADD("msm", MSM6585, XTAL_640kHz) MCFG_MSM6585_VCLK_CB(WRITELINE(gcpinbal_state, gcp_adpcm_int)) /* VCK function */ - MCFG_MSM6585_PRESCALER_SELECTOR(MSM6585_S40) /* 16 kHz */ + MCFG_MSM6585_PRESCALER_SELECTOR(S40) /* 16 kHz */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -542,5 +542,5 @@ ROM_START( gcpinbal ) ROM_END -GAME( 1994, pwrflip, 0, gcpinbal, gcpinbal, driver_device, 0, ROT270, "Excellent System", "Power Flipper Pinball Shooting v1.33", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1994, gcpinbal, 0, gcpinbal, gcpinbal, driver_device, 0, ROT270, "Excellent System", "Grand Cross v1.02F", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1994, pwrflip, 0, gcpinbal, gcpinbal, gcpinbal_state, 0, ROT270, "Excellent System", "Power Flipper Pinball Shooting v1.33", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1994, gcpinbal, 0, gcpinbal, gcpinbal, gcpinbal_state, 0, ROT270, "Excellent System", "Grand Cross v1.02F", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/gei.cpp b/src/mame/drivers/gei.cpp index 532c2ca46a7..6f41c07974b 100644 --- a/src/mame/drivers/gei.cpp +++ b/src/mame/drivers/gei.cpp @@ -1025,7 +1025,7 @@ INTERRUPT_GEN_MEMBER(gei_state::vblank_irq) } -static MACHINE_CONFIG_START( getrivia, gei_state ) +static MACHINE_CONFIG_START( getrivia ) MCFG_CPU_ADD("maincpu",Z80,4000000) /* 4 MHz */ MCFG_CPU_PROGRAM_MAP(getrivia_map) MCFG_CPU_VBLANK_INT_DRIVER("screen", gei_state, vblank_irq) @@ -1889,66 +1889,66 @@ DRIVER_INIT_MEMBER(gei_state,geimulti) membank("bank1")->set_base(memregion("bank")->base() + 0x0000); } -GAME( 1982, jokpoker, 0, gselect, gselect, gei_state, setbank, ROT0, "Greyhound Electronics", "Joker Poker (Version 16.03B)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1983, jokpokera,jokpoker, jokpokera,gselect, gei_state, setbank, ROT0, "Greyhound Electronics", "Joker Poker (Version 16.03BI 5-10-85, Joker Poker ICB 9-30-86)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1983, jokpokerb,jokpoker, jokpokera,gselect, gei_state, setbank, ROT0, "Greyhound Electronics", "Joker Poker (Version 16.04BI 10-19-88, Joker Poker ICB 9-30-86)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1983, jokpokerc,jokpoker, jokpokera,gselect, gei_state, setbank, ROT0, "Greyhound Electronics", "Joker Poker (Version 16.03BI 5-10-85, Poker No Raise ICB 9-30-86)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1982, superbwl, 0, gselect, gselect, gei_state, setbank, ROT0, "Greyhound Electronics", "Super Bowl (Version 16.03B)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) - -GAME( 1982, gs4002, 0, gselect, gselect, driver_device, 0, ROT0, "Greyhound Electronics", "Selection (Version 40.02TMB, set 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1982, gs4002a, gs4002, gselect, gselect, driver_device, 0, ROT0, "Greyhound Electronics", "Selection (Version 40.02TMB, set 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) - -GAME( 1982, amuse, 0, amuse, gepoker, driver_device, 0, ROT0, "Greyhound Electronics", "Amuse (Version 50.08 IBA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1982, amuse1, amuse, amuse1, gepoker, driver_device, 0, ROT0, "Greyhound Electronics", "Amuse (Version 30.08 IBA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1983, amuse1a, amuse, amuse1, gepoker, driver_device, 0, ROT0, "Greyhound Electronics", "Amuse (Version 30.08A)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) - -GAME( 1984, gepoker, 0, gepoker, gepoker, driver_device, 0, ROT0, "Greyhound Electronics", "Poker (Version 50.02 ICB, set 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1984, gepoker1, gepoker, gepoker, gepoker, driver_device, 0, ROT0, "Greyhound Electronics", "Poker (Version 50.02 ICB, set 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1984, gepoker2, gepoker, gepoker, gepoker, driver_device, 0, ROT0, "Greyhound Electronics", "Poker (Version 50.02 ICB, set 3)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1984, gepoker3, gepoker, gepoker, gepoker, driver_device, 0, ROT0, "Greyhound Electronics", "Poker (Version 50.02 ICB, set 4)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) - -GAME( 1984, gtsers1, 0, getrivia, getrivia, driver_device, 0, ROT0, "Greyhound Electronics", "Trivia (Questions Series 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1984, gtsers2, gtsers1, getrivia, getrivia, driver_device, 0, ROT0, "Greyhound Electronics", "Trivia (Questions Series 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1984, gtsers3, gtsers1, getrivia, getrivia, driver_device, 0, ROT0, "Greyhound Electronics", "Trivia (Questions Series 3)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1984, gtsers4, gtsers1, getrivia, getrivia, driver_device, 0, ROT0, "Greyhound Electronics", "Trivia (Questions Series 4)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1984, gtsers5, gtsers1, getrivia, getrivia, driver_device, 0, ROT0, "Greyhound Electronics", "Trivia (Questions Series 5)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1984, gtsers7, gtsers1, getrivia, getrivia, driver_device, 0, ROT0, "Greyhound Electronics", "Trivia (Questions Series 7)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1984, gtsersa, gtsers1, getrivia, getrivia, driver_device, 0, ROT0, "Greyhound Electronics", "Trivia (Alt revision questions set 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1984, gtsersb, gtsers1, getrivia, getrivia, driver_device, 0, ROT0, "Greyhound Electronics", "Trivia (Alt revision questions set 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1984, gtsers8, 0, findout, getrivia, driver_device, 0, ROT0, "Greyhound Electronics", "Trivia (Questions Series 8)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1984, gtsers8a, gtsers8, findout, getrivia, driver_device, 0, ROT0, "Greyhound Electronics", "Trivia (Questions Series 8 Alt Question Rom)",MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1984, gtsers9, gtsers8, findout, getrivia, driver_device, 0, ROT0, "Greyhound Electronics", "Trivia (Questions Series 9)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1984, gtsers10, gtsers8, findout, getrivia, driver_device, 0, ROT0, "Greyhound Electronics", "Trivia (Questions Series 10)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1984, gtsers11, gtsers8, findout, getrivia, driver_device, 0, ROT0, "Greyhound Electronics", "Trivia (Questions Series 11)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1984, gtsers11a,gtsers8, findout, getrivia, driver_device, 0, ROT0, "Greyhound Electronics", "Trivia (Questions Series 11 Alt Question Rom)",MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1984, gtsers12, gtsers8, findout, gt103, driver_device, 0, ROT0, "Greyhound Electronics", "Trivia (Questions Series 12)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1986, gtsers14, gtsers8, findout, gt103, driver_device, 0, ROT0, "Greyhound Electronics", "Trivia (Questions Series 14)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1986, gtsers15, gtsers8, findout, gt103, driver_device, 0, ROT0, "Greyhound Electronics", "Trivia (Questions Series 15)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1984, gt103a1, gtsers8, findout, getrivia, driver_device, 0, ROT0, "Greyhound Electronics", "Trivia (Unsorted question roms)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1984, gt103aa, gtsers8, findout, getrivia, driver_device, 0, ROT0, "Greyhound Electronics", "Trivia (Version 1.03a Alt questions 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1984, gt103ab, gtsers8, findout, getrivia, driver_device, 0, ROT0, "Greyhound Electronics", "Trivia (Version 1.03a Alt questions 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1984, gt103asx, gtsers8, findout, getrivia, driver_device, 0, ROT0, "Greyhound Electronics", "Trivia (Version 1.03a Sex questions)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) - -GAME( 1985, sextriv1, 0, getrivia, sextriv1, driver_device, 0, ROT0, "Kinky Kit and Game Co.", "Sexual Trivia (Version 1.02SB, set 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1985, sextriv2, sextriv1, getrivia, sextriv1, driver_device, 0, ROT0, "Kinky Kit and Game Co.", "Sexual Trivia (Version 1.02SB, set 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) - -GAME( 1986, gt507uk, 0, findout, gt507uk, driver_device, 0, ROT0, "Grayhound Electronics", "Trivia (UK Version 5.07)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) - -GAME( 1986, quiz, 0, findout, quiz, driver_device, 0, ROT0, "Elettronolo", "Quiz (Revision 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) - -GAME( 1986, quizvid, 0, quizvid, quiz, driver_device, 0, ROT0, "bootleg", "Video Quiz", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) - -GAME( 1986, reelfun, 0, findout, reelfun, driver_device, 0, ROT0, "Grayhound Electronics", "Reel Fun (Version 7.03)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1986, reelfun1, reelfun, findout, reelfun, driver_device, 0, ROT0, "Grayhound Electronics", "Reel Fun (Version 7.01)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1987, findout, 0, findout, findout, driver_device, 0, ROT0, "Elettronolo", "Find Out (Version 4.04)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) - -GAME( 1986, suprpokr, 0, suprpokr, suprpokr, driver_device, 0, ROT0, "Grayhound Electronics", "Super Poker (Version 10.19S)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1986, suprpokra,suprpokr, suprpokr, suprpokr, driver_device, 0, ROT0, "Grayhound Electronics", "Super Poker (Version 10.15S)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1986, suprpokrb,suprpokr, suprpokr, suprpokr, driver_device, 0, ROT0, "Grayhound Electronics", "Super Poker (Version 10.10)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) - -GAME( 1991, quiz211, 0, findout, quiz, driver_device, 0, ROT0, "Elettronolo", "Quiz (Revision 2.11)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) - -GAME( 1992, sexappl, 0, findout, sexappl, driver_device, 0, ROT0, "Grayhound Electronics", "Sex Appeal (Version 6.02)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) - -GAME( 1992, geimulti, 0, geimulti, geimulti, gei_state, geimulti, ROT0, "Grayhound Electronics", "GEI Multi Game", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1992, sprtauth, 0, sprtauth, sprtauth, gei_state, geimulti, ROT0, "Classic Games", "Sports Authority", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1982, jokpoker, 0, gselect, gselect, gei_state, setbank, ROT0, "Greyhound Electronics", "Joker Poker (Version 16.03B)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1983, jokpokera, jokpoker, jokpokera, gselect, gei_state, setbank, ROT0, "Greyhound Electronics", "Joker Poker (Version 16.03BI 5-10-85, Joker Poker ICB 9-30-86)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1983, jokpokerb, jokpoker, jokpokera, gselect, gei_state, setbank, ROT0, "Greyhound Electronics", "Joker Poker (Version 16.04BI 10-19-88, Joker Poker ICB 9-30-86)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1983, jokpokerc, jokpoker, jokpokera, gselect, gei_state, setbank, ROT0, "Greyhound Electronics", "Joker Poker (Version 16.03BI 5-10-85, Poker No Raise ICB 9-30-86)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1982, superbwl, 0, gselect, gselect, gei_state, setbank, ROT0, "Greyhound Electronics", "Super Bowl (Version 16.03B)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) + +GAME( 1982, gs4002, 0, gselect, gselect, gei_state, 0, ROT0, "Greyhound Electronics", "Selection (Version 40.02TMB, set 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1982, gs4002a, gs4002, gselect, gselect, gei_state, 0, ROT0, "Greyhound Electronics", "Selection (Version 40.02TMB, set 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) + +GAME( 1982, amuse, 0, amuse, gepoker, gei_state, 0, ROT0, "Greyhound Electronics", "Amuse (Version 50.08 IBA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1982, amuse1, amuse, amuse1, gepoker, gei_state, 0, ROT0, "Greyhound Electronics", "Amuse (Version 30.08 IBA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1983, amuse1a, amuse, amuse1, gepoker, gei_state, 0, ROT0, "Greyhound Electronics", "Amuse (Version 30.08A)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) + +GAME( 1984, gepoker, 0, gepoker, gepoker, gei_state, 0, ROT0, "Greyhound Electronics", "Poker (Version 50.02 ICB, set 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1984, gepoker1, gepoker, gepoker, gepoker, gei_state, 0, ROT0, "Greyhound Electronics", "Poker (Version 50.02 ICB, set 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1984, gepoker2, gepoker, gepoker, gepoker, gei_state, 0, ROT0, "Greyhound Electronics", "Poker (Version 50.02 ICB, set 3)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1984, gepoker3, gepoker, gepoker, gepoker, gei_state, 0, ROT0, "Greyhound Electronics", "Poker (Version 50.02 ICB, set 4)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) + +GAME( 1984, gtsers1, 0, getrivia, getrivia, gei_state, 0, ROT0, "Greyhound Electronics", "Trivia (Questions Series 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1984, gtsers2, gtsers1, getrivia, getrivia, gei_state, 0, ROT0, "Greyhound Electronics", "Trivia (Questions Series 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1984, gtsers3, gtsers1, getrivia, getrivia, gei_state, 0, ROT0, "Greyhound Electronics", "Trivia (Questions Series 3)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1984, gtsers4, gtsers1, getrivia, getrivia, gei_state, 0, ROT0, "Greyhound Electronics", "Trivia (Questions Series 4)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1984, gtsers5, gtsers1, getrivia, getrivia, gei_state, 0, ROT0, "Greyhound Electronics", "Trivia (Questions Series 5)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1984, gtsers7, gtsers1, getrivia, getrivia, gei_state, 0, ROT0, "Greyhound Electronics", "Trivia (Questions Series 7)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1984, gtsersa, gtsers1, getrivia, getrivia, gei_state, 0, ROT0, "Greyhound Electronics", "Trivia (Alt revision questions set 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1984, gtsersb, gtsers1, getrivia, getrivia, gei_state, 0, ROT0, "Greyhound Electronics", "Trivia (Alt revision questions set 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1984, gtsers8, 0, findout, getrivia, gei_state, 0, ROT0, "Greyhound Electronics", "Trivia (Questions Series 8)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1984, gtsers8a, gtsers8, findout, getrivia, gei_state, 0, ROT0, "Greyhound Electronics", "Trivia (Questions Series 8 Alt Question Rom)",MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1984, gtsers9, gtsers8, findout, getrivia, gei_state, 0, ROT0, "Greyhound Electronics", "Trivia (Questions Series 9)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1984, gtsers10, gtsers8, findout, getrivia, gei_state, 0, ROT0, "Greyhound Electronics", "Trivia (Questions Series 10)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1984, gtsers11, gtsers8, findout, getrivia, gei_state, 0, ROT0, "Greyhound Electronics", "Trivia (Questions Series 11)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1984, gtsers11a, gtsers8, findout, getrivia, gei_state, 0, ROT0, "Greyhound Electronics", "Trivia (Questions Series 11 Alt Question Rom)",MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1984, gtsers12, gtsers8, findout, gt103, gei_state, 0, ROT0, "Greyhound Electronics", "Trivia (Questions Series 12)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1986, gtsers14, gtsers8, findout, gt103, gei_state, 0, ROT0, "Greyhound Electronics", "Trivia (Questions Series 14)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1986, gtsers15, gtsers8, findout, gt103, gei_state, 0, ROT0, "Greyhound Electronics", "Trivia (Questions Series 15)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1984, gt103a1, gtsers8, findout, getrivia, gei_state, 0, ROT0, "Greyhound Electronics", "Trivia (Unsorted question roms)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1984, gt103aa, gtsers8, findout, getrivia, gei_state, 0, ROT0, "Greyhound Electronics", "Trivia (Version 1.03a Alt questions 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1984, gt103ab, gtsers8, findout, getrivia, gei_state, 0, ROT0, "Greyhound Electronics", "Trivia (Version 1.03a Alt questions 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1984, gt103asx, gtsers8, findout, getrivia, gei_state, 0, ROT0, "Greyhound Electronics", "Trivia (Version 1.03a Sex questions)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) + +GAME( 1985, sextriv1, 0, getrivia, sextriv1, gei_state, 0, ROT0, "Kinky Kit and Game Co.", "Sexual Trivia (Version 1.02SB, set 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1985, sextriv2, sextriv1, getrivia, sextriv1, gei_state, 0, ROT0, "Kinky Kit and Game Co.", "Sexual Trivia (Version 1.02SB, set 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) + +GAME( 1986, gt507uk, 0, findout, gt507uk, gei_state, 0, ROT0, "Grayhound Electronics", "Trivia (UK Version 5.07)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) + +GAME( 1986, quiz, 0, findout, quiz, gei_state, 0, ROT0, "Elettronolo", "Quiz (Revision 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) + +GAME( 1986, quizvid, 0, quizvid, quiz, gei_state, 0, ROT0, "bootleg", "Video Quiz", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) + +GAME( 1986, reelfun, 0, findout, reelfun, gei_state, 0, ROT0, "Grayhound Electronics", "Reel Fun (Version 7.03)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1986, reelfun1, reelfun, findout, reelfun, gei_state, 0, ROT0, "Grayhound Electronics", "Reel Fun (Version 7.01)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1987, findout, 0, findout, findout, gei_state, 0, ROT0, "Elettronolo", "Find Out (Version 4.04)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) + +GAME( 1986, suprpokr, 0, suprpokr, suprpokr, gei_state, 0, ROT0, "Grayhound Electronics", "Super Poker (Version 10.19S)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1986, suprpokra, suprpokr, suprpokr, suprpokr, gei_state, 0, ROT0, "Grayhound Electronics", "Super Poker (Version 10.15S)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1986, suprpokrb, suprpokr, suprpokr, suprpokr, gei_state, 0, ROT0, "Grayhound Electronics", "Super Poker (Version 10.10)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) + +GAME( 1991, quiz211, 0, findout, quiz, gei_state, 0, ROT0, "Elettronolo", "Quiz (Revision 2.11)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) + +GAME( 1992, sexappl, 0, findout, sexappl, gei_state, 0, ROT0, "Grayhound Electronics", "Sex Appeal (Version 6.02)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) + +GAME( 1992, geimulti, 0, geimulti, geimulti, gei_state, geimulti, ROT0, "Grayhound Electronics", "GEI Multi Game", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1992, sprtauth, 0, sprtauth, sprtauth, gei_state, geimulti, ROT0, "Classic Games", "Sports Authority", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) diff --git a/src/mame/drivers/geneve.cpp b/src/mame/drivers/geneve.cpp index 102b4ca4d28..2eea30ac2af 100644 --- a/src/mame/drivers/geneve.cpp +++ b/src/mame/drivers/geneve.cpp @@ -210,10 +210,10 @@ #include "sound/sn76496.h" #include "bus/ti99x/genboard.h" -#include "bus/ti99x/joyport.h" -#include "bus/ti99x/colorbus.h" -#include "bus/ti99_peb/peribox.h" +#include "bus/ti99/colorbus/colorbus.h" +#include "bus/ti99/joyport/joyport.h" +#include "bus/ti99/peb/peribox.h" #include "speaker.h" @@ -235,8 +235,10 @@ public: m_keyboard(*this, GKEYBOARD_TAG), m_mapper(*this, GMAPPER_TAG), m_peribox(*this, PERIBOX_TAG), - m_joyport(*this,JOYPORT_TAG), - m_colorbus(*this, COLORBUS_TAG) { } + m_joyport(*this, JOYPORT_TAG), + m_colorbus(*this, COLORBUS_TAG) + { + } // CRU (Communication Register Unit) handling DECLARE_READ8_MEMBER(cruread); @@ -264,8 +266,8 @@ public: required_device m_keyboard; required_device m_mapper; required_device m_peribox; - required_device m_joyport; - required_device m_colorbus; + required_device m_joyport; + required_device m_colorbus; DECLARE_WRITE_LINE_MEMBER( inta ); DECLARE_WRITE_LINE_MEMBER( intb ); @@ -452,7 +454,7 @@ READ8_MEMBER( geneve_state::read_by_9901 ) switch (offset & 0x03) { - case TMS9901_CB_INT7: + case tms9901_device::CB_INT7: // // Read pins INT3*-INT7* of Geneve's 9901. // bit 1: INTA status @@ -466,7 +468,7 @@ READ8_MEMBER( geneve_state::read_by_9901 ) answer |= m_joyport->read_port()<<3; break; - case TMS9901_INT8_INT15: + case tms9901_device::INT8_INT15: // Read pins int8_t*-INT15* of Geneve 9901. // // bit 0: keyboard interrupt @@ -485,11 +487,11 @@ READ8_MEMBER( geneve_state::read_by_9901 ) if (TRACE_LINES) logerror("INT15-8 = %02x\n", answer); break; - case TMS9901_P0_P7: + case tms9901_device::P0_P7: // Read pins P0-P7 of TMS9901. All pins are configured as outputs, so nothing here. break; - case TMS9901_P8_P15: + case tms9901_device::P8_P15: // Read pins P8-P15 of TMS 9901. // bit 4: mouse left button // video wait is an output; no input possible here @@ -682,7 +684,7 @@ void geneve_state::machine_reset() m_joyport->write_port(0x01); // select Joystick 1 } -static MACHINE_CONFIG_START( geneve_60hz, geneve_state ) +static MACHINE_CONFIG_START( geneve_60hz ) // basic machine hardware // TMS9995 CPU @ 12.0 MHz MCFG_TMS99xx_ADD("maincpu", TMS9995, 12000000, memmap, crumap) @@ -764,5 +766,5 @@ ROM_START(geneve) ROM_LOAD_OPTIONAL("gnmbt100.bin", 0x8000, 0x4000, CRC(19b89479) SHA1(6ef297eda78dc705946f6494e9d7e95e5216ec47)) /* CPU ROMs GenMod */ ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ -COMP( 1987,geneve, 0, 0, geneve_60hz, geneve, geneve_state, geneve, "Myarc", "Geneve 9640" , MACHINE_SUPPORTS_SAVE) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1987, geneve, 0, 0, geneve_60hz, geneve, geneve_state, geneve, "Myarc", "Geneve 9640", MACHINE_SUPPORTS_SAVE) diff --git a/src/mame/drivers/geniusiq.cpp b/src/mame/drivers/geniusiq.cpp index 2817b9362c0..c1e3b2dbeab 100644 --- a/src/mame/drivers/geniusiq.cpp +++ b/src/mame/drivers/geniusiq.cpp @@ -792,7 +792,7 @@ DEVICE_IMAGE_UNLOAD_MEMBER(geniusiq_state,iq128_cart) } -static MACHINE_CONFIG_START( iq128, geniusiq_state ) +static MACHINE_CONFIG_START( iq128 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_32MHz/2) // The main crystal is at 32MHz, not sure whats the CPU freq MCFG_CPU_PROGRAM_MAP(geniusiq_mem) @@ -828,7 +828,7 @@ static MACHINE_CONFIG_DERIVED( iqtv512, iq128 ) MCFG_AMD_29F040_ADD("flash") MACHINE_CONFIG_END -static MACHINE_CONFIG_START( gl8008cx, gl8008cx_state ) +static MACHINE_CONFIG_START( gl8008cx ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_32MHz/2) // TODO wrong CPU and frequency MCFG_CPU_PROGRAM_MAP(gl8008cx_mem) @@ -892,12 +892,12 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1997, iq128, 0, 0, iq128, geniusiq_de, driver_device, 0, "Video Technology", "Genius IQ 128 (Germany)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -COMP( 1997, iq128_fr, iq128, 0, iq128, geniusiq, driver_device, 0, "Video Technology", "Genius IQ 128 (France)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -COMP( 1998, iqtv512, 0, 0, iqtv512, geniusiq_de, driver_device, 0, "Video Technology", "Genius IQ TV 512 (Germany)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -COMP( 1999, gl8008cx, 0, 0, gl8008cx, gl8008cx, driver_device, 0, "Video Technology", "Genius Leader 8008 CX (Germany)", MACHINE_IS_SKELETON) -COMP( 1999, bs9009cx, 0, 0, gl8008cx, gl8008cx, driver_device, 0, "Video Technology", "BrainStation 9009 CXL (Germany)", MACHINE_IS_SKELETON) -COMP( 1998, itunlim, 0, 0, iq128, geniusiq_de, driver_device, 0, "Video Technology", "Vtech IT Unlimited (UK)", MACHINE_NO_SOUND) -COMP( 19??, iqunlim, 0, 0, iq128, geniusiq_de, driver_device, 0, "Video Technology", "Vtech IQ Unlimited (Germany)", MACHINE_IS_SKELETON) -COMP( 19??, glmmc, 0, 0, iq128, geniusiq_de, driver_device, 0, "Video Technology", "Genius Leader Master Mega Color (Germany)", MACHINE_IS_SKELETON) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1997, iq128, 0, 0, iq128, geniusiq_de, geniusiq_state, 0, "Video Technology", "Genius IQ 128 (Germany)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +COMP( 1997, iq128_fr, iq128, 0, iq128, geniusiq, geniusiq_state, 0, "Video Technology", "Genius IQ 128 (France)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +COMP( 1998, iqtv512, 0, 0, iqtv512, geniusiq_de, geniusiq_state, 0, "Video Technology", "Genius IQ TV 512 (Germany)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +COMP( 1999, gl8008cx, 0, 0, gl8008cx, gl8008cx, gl8008cx_state, 0, "Video Technology", "Genius Leader 8008 CX (Germany)", MACHINE_IS_SKELETON) +COMP( 1999, bs9009cx, 0, 0, gl8008cx, gl8008cx, gl8008cx_state, 0, "Video Technology", "BrainStation 9009 CXL (Germany)", MACHINE_IS_SKELETON) +COMP( 1998, itunlim, 0, 0, iq128, geniusiq_de, geniusiq_state, 0, "Video Technology", "Vtech IT Unlimited (UK)", MACHINE_NO_SOUND) +COMP( 19??, iqunlim, 0, 0, iq128, geniusiq_de, geniusiq_state, 0, "Video Technology", "Vtech IQ Unlimited (Germany)", MACHINE_IS_SKELETON) +COMP( 19??, glmmc, 0, 0, iq128, geniusiq_de, geniusiq_state, 0, "Video Technology", "Genius Leader Master Mega Color (Germany)", MACHINE_IS_SKELETON) diff --git a/src/mame/drivers/genpc.cpp b/src/mame/drivers/genpc.cpp index af1adf7be39..5d3ac1b84e2 100644 --- a/src/mame/drivers/genpc.cpp +++ b/src/mame/drivers/genpc.cpp @@ -43,7 +43,7 @@ static DEVICE_INPUT_DEFAULTS_START(vga) DEVICE_INPUT_DEFAULTS("DSW0",0x30, 0x00) DEVICE_INPUT_DEFAULTS_END -static MACHINE_CONFIG_START( pcmda, genpc_state ) +static MACHINE_CONFIG_START( pcmda ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8088, 4772720) MCFG_CPU_PROGRAM_MAP(pc8_map) @@ -151,9 +151,9 @@ ROM_END ***************************************************************************/ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ -COMP( 1987, pc, ibm5150, 0, pccga, 0, driver_device, 0, "", "PC (CGA)" , 0) -COMP( 1987, pcega, ibm5150, 0, pcega, 0, driver_device, 0, "", "PC (EGA)" , 0) -COMP ( 1987, pcmda, ibm5150, 0, pcmda, 0, driver_device, 0, "", "PC (MDA)" , 0) -COMP ( 1987, pcherc, ibm5150, 0, pcherc, 0, driver_device, 0, "", "PC (Hercules)" , 0) -COMP ( 1987, pcvga, ibm5150, 0, pcvga, 0, driver_device, 0, "", "PC (VGA)" , 0) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME +COMP( 1987, pc, ibm5150, 0, pccga, 0, genpc_state, 0, "", "PC (CGA)", 0 ) +COMP( 1987, pcega, ibm5150, 0, pcega, 0, genpc_state, 0, "", "PC (EGA)", 0 ) +COMP ( 1987, pcmda, ibm5150, 0, pcmda, 0, genpc_state, 0, "", "PC (MDA)", 0 ) +COMP ( 1987, pcherc, ibm5150, 0, pcherc, 0, genpc_state, 0, "", "PC (Hercules)", 0 ) +COMP ( 1987, pcvga, ibm5150, 0, pcvga, 0, genpc_state, 0, "", "PC (VGA)", 0 ) diff --git a/src/mame/drivers/ggconnie.cpp b/src/mame/drivers/ggconnie.cpp index e89dd7d1748..67e7d24d83a 100644 --- a/src/mame/drivers/ggconnie.cpp +++ b/src/mame/drivers/ggconnie.cpp @@ -178,7 +178,7 @@ static INPUT_PORTS_START(ggconnie) PORT_DIPSETTING(0x00, DEF_STR(On) ) INPUT_PORTS_END -static MACHINE_CONFIG_START( ggconnie, ggconnie_state ) +static MACHINE_CONFIG_START( ggconnie ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", H6280, PCE_MAIN_CLOCK/3) MCFG_CPU_PROGRAM_MAP(sgx_mem) @@ -186,7 +186,7 @@ static MACHINE_CONFIG_START( ggconnie, ggconnie_state ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(PCE_MAIN_CLOCK/3, HUC6260_WPF, 64, 64 + 1024 + 64, HUC6260_LPF, 18, 18 + 242) + MCFG_SCREEN_RAW_PARAMS(PCE_MAIN_CLOCK/3, huc6260_device::WPF, 64, 64 + 1024 + 64, huc6260_device::LPF, 18, 18 + 242) MCFG_SCREEN_UPDATE_DRIVER( ggconnie_state, screen_update ) MCFG_SCREEN_PALETTE("huc6260:palette") @@ -223,7 +223,7 @@ static MACHINE_CONFIG_START( ggconnie, ggconnie_state ) MCFG_SOUND_ROUTE(0, "lspeaker", 1.00) MCFG_SOUND_ROUTE(1, "rspeaker", 1.00) - MCFG_OKIM6295_ADD("oki", PCE_MAIN_CLOCK/12, OKIM6295_PIN7_HIGH) /* unknown clock / pin 7 */ + MCFG_OKIM6295_ADD("oki", PCE_MAIN_CLOCK/12, PIN7_HIGH) /* unknown clock / pin 7 */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.00) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.00) MACHINE_CONFIG_END @@ -237,4 +237,4 @@ ROM_START(ggconnie) ROM_LOAD( "adpcm_u31.bin", 0x00000, 0x80000, CRC(de514c2b) SHA1(da73aa825d73646f556f6d4dbb46f43acf7c3357) ) ROM_END -GAME( 1996, ggconnie, 0, ggconnie, ggconnie, pce_common_state, pce_common, ROT0, "Eighting", "Go! Go! Connie chan Jaka Jaka Janken", MACHINE_NO_SOUND | MACHINE_NOT_WORKING ) +GAME( 1996, ggconnie, 0, ggconnie, ggconnie, ggconnie_state, pce_common, ROT0, "Eighting", "Go! Go! Connie chan Jaka Jaka Janken", MACHINE_NO_SOUND | MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/ghosteo.cpp b/src/mame/drivers/ghosteo.cpp index 9e2e070df2f..27d6c3eb1cc 100644 --- a/src/mame/drivers/ghosteo.cpp +++ b/src/mame/drivers/ghosteo.cpp @@ -611,7 +611,7 @@ void ghosteo_state::machine_reset() m_maincpu->space(AS_PROGRAM).install_read_handler(0x4d000010, 0x4d000013,read32_delegate(FUNC(ghosteo_state::bballoon_speedup_r), this)); } -static MACHINE_CONFIG_START( ghosteo, ghosteo_state ) +static MACHINE_CONFIG_START( ghosteo ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", ARM9, 200000000) @@ -770,6 +770,6 @@ DRIVER_INIT_MEMBER(ghosteo_state,touryuu) m_rom_pagesize = 0x210; } -GAME( 2003, bballoon, 0, bballoon, bballoon, ghosteo_state, bballoon, ROT0, "Eolith", "BnB Arcade", MACHINE_IMPERFECT_SOUND ) -GAME( 2005, hapytour, 0, bballoon, bballoon, ghosteo_state, bballoon, ROT0, "GAV Company", "Happy Tour", MACHINE_IMPERFECT_SOUND ) -GAME( 2005, touryuu, 0, touryuu, touryuu, ghosteo_state, touryuu, ROT0, "Yuki Enterprise", "Touryuumon (V1.1)?", MACHINE_IMPERFECT_SOUND ) // On first boot inputs won't work, TODO: hook-up default eeprom +GAME( 2003, bballoon, 0, bballoon, bballoon, ghosteo_state, bballoon, ROT0, "Eolith", "BnB Arcade", MACHINE_IMPERFECT_SOUND ) +GAME( 2005, hapytour, 0, bballoon, bballoon, ghosteo_state, bballoon, ROT0, "GAV Company", "Happy Tour", MACHINE_IMPERFECT_SOUND ) +GAME( 2005, touryuu, 0, touryuu, touryuu, ghosteo_state, touryuu, ROT0, "Yuki Enterprise", "Touryuumon (V1.1)?", MACHINE_IMPERFECT_SOUND ) // On first boot inputs won't work, TODO: hook-up default eeprom diff --git a/src/mame/drivers/giclassic.cpp b/src/mame/drivers/giclassic.cpp index 8a290abd499..137c7eb5f01 100644 --- a/src/mame/drivers/giclassic.cpp +++ b/src/mame/drivers/giclassic.cpp @@ -61,7 +61,7 @@ public: m_maincpu(*this, "maincpu"), m_k056832(*this, "k056832"), m_palette(*this, "palette") - { } + { } required_device m_maincpu; required_device m_k056832; @@ -178,7 +178,7 @@ public: m_k056832(*this, "k056832"), m_k055673(*this, "k055673"), m_palette(*this, "palette") - { } + { } required_device m_maincpu; required_device m_k056832; @@ -288,7 +288,7 @@ void giclassicsvr_state::machine_reset() { } -static MACHINE_CONFIG_START( giclassic, giclassic_state ) +static MACHINE_CONFIG_START( giclassic ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_20MHz / 2) // PCB is marked "68000 12 MHz", but only visible osc is 20 MHz @@ -314,7 +314,7 @@ static MACHINE_CONFIG_START( giclassic, giclassic_state ) MCFG_K056832_PALETTE("palette") MACHINE_CONFIG_END -static MACHINE_CONFIG_START( giclassvr, giclassicsvr_state ) +static MACHINE_CONFIG_START( giclassvr ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz) // unknown speed @@ -373,5 +373,5 @@ ROM_START( giclassvr ) ROM_LOAD32_WORD( "gsgu_760_ad02.34k", 0x000002, 0x080000, CRC(8057a417) SHA1(82d4a1d84729e9f0a8aff4c219a19601b89caf15) ) ROM_END -GAME( 1998, giclasex, 0, giclassic, giclassic, driver_device, 0, 0, "Konami", "GI-Classic EX (satellite terminal)", MACHINE_NOT_WORKING|MACHINE_NO_SOUND_HW) -GAME( 1998, giclassvr, 0, giclassvr, giclassvr, driver_device, 0, 0, "Konami", "GI-Classic EX (server)", MACHINE_NOT_WORKING|MACHINE_NO_SOUND_HW) +GAME( 1998, giclasex, 0, giclassic, giclassic, giclassic_state, 0, 0, "Konami", "GI-Classic EX (satellite terminal)", MACHINE_NOT_WORKING|MACHINE_NO_SOUND_HW) +GAME( 1998, giclassvr, 0, giclassvr, giclassvr, giclassicsvr_state, 0, 0, "Konami", "GI-Classic EX (server)", MACHINE_NOT_WORKING|MACHINE_NO_SOUND_HW) diff --git a/src/mame/drivers/gijoe.cpp b/src/mame/drivers/gijoe.cpp index 9ada3caf992..b02c9d9172c 100644 --- a/src/mame/drivers/gijoe.cpp +++ b/src/mame/drivers/gijoe.cpp @@ -289,7 +289,7 @@ void gijoe_state::machine_reset() m_cur_control2 = 0; } -static MACHINE_CONFIG_START( gijoe, gijoe_state ) +static MACHINE_CONFIG_START( gijoe ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_32MHz/2) /* 16MHz Confirmed */ @@ -454,7 +454,7 @@ ROM_START( gijoej ) ROM_END -GAME( 1992, gijoe, 0, gijoe, gijoe, driver_device, 0, ROT0, "Konami", "G.I. Joe (World, EAB, set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, gijoea, gijoe, gijoe, gijoe, driver_device, 0, ROT0, "Konami", "G.I. Joe (World, EB8, prototype?)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, gijoeu, gijoe, gijoe, gijoe, driver_device, 0, ROT0, "Konami", "G.I. Joe (US, UAB)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, gijoej, gijoe, gijoe, gijoe, driver_device, 0, ROT0, "Konami", "G.I. Joe (Japan, JAA)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, gijoe, 0, gijoe, gijoe, gijoe_state, 0, ROT0, "Konami", "G.I. Joe (World, EAB, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, gijoea, gijoe, gijoe, gijoe, gijoe_state, 0, ROT0, "Konami", "G.I. Joe (World, EB8, prototype?)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, gijoeu, gijoe, gijoe, gijoe, gijoe_state, 0, ROT0, "Konami", "G.I. Joe (US, UAB)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, gijoej, gijoe, gijoe, gijoe, gijoe_state, 0, ROT0, "Konami", "G.I. Joe (Japan, JAA)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/gimix.cpp b/src/mame/drivers/gimix.cpp index 9a00d2216f6..73ed134221f 100644 --- a/src/mame/drivers/gimix.cpp +++ b/src/mame/drivers/gimix.cpp @@ -141,7 +141,7 @@ private: void refresh_memory(); required_device m_maincpu; - required_device m_fdc; + required_device m_fdc; required_device m_floppy0; required_device m_floppy1; required_device m_ram; @@ -572,7 +572,7 @@ MCFG_ADDRESS_MAP_BANK_ENDIANNESS(ENDIANNESS_LITTLE) \ MCFG_ADDRESS_MAP_BANK_DATABUS_WIDTH(8) \ MCFG_ADDRESS_MAP_BANK_STRIDE(0x1000) -static MACHINE_CONFIG_START( gimix, gimix_state ) +static MACHINE_CONFIG_START( gimix ) // basic machine hardware MCFG_CPU_ADD("maincpu", M6809E, XTAL_8MHz) MCFG_CPU_PROGRAM_MAP(gimix_mem) @@ -684,4 +684,4 @@ ROM_START( gimix ) ROM_LOAD( "gimixhd.h11", 0x000000, 0x001000, CRC(35c12201) SHA1(51ac9052f9757d79c7f5bd3aa5d8421e98cfcc37) ) ROM_END -COMP( 1980, gimix, 0, 0, gimix, gimix, driver_device, 0, "Gimix", "Gimix 6809 System", MACHINE_IS_SKELETON | MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +COMP( 1980, gimix, 0, 0, gimix, gimix, gimix_state, 0, "Gimix", "Gimix 6809 System", MACHINE_IS_SKELETON | MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/ginganin.cpp b/src/mame/drivers/ginganin.cpp index ffa0acd5a46..c850edc6878 100644 --- a/src/mame/drivers/ginganin.cpp +++ b/src/mame/drivers/ginganin.cpp @@ -243,7 +243,7 @@ WRITE_LINE_MEMBER(ginganin_state::ptm_irq) } -static MACHINE_CONFIG_START( ginganin, ginganin_state ) +static MACHINE_CONFIG_START( ginganin ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, MAIN_CLOCK) diff --git a/src/mame/drivers/gizmondo.cpp b/src/mame/drivers/gizmondo.cpp index 33c1aefb832..f7a89a55bdc 100644 --- a/src/mame/drivers/gizmondo.cpp +++ b/src/mame/drivers/gizmondo.cpp @@ -183,7 +183,7 @@ DRIVER_INIT_MEMBER(gizmondo_state,gizmondo) // do nothing } -static MACHINE_CONFIG_START( gizmondo, gizmondo_state ) +static MACHINE_CONFIG_START( gizmondo ) MCFG_CPU_ADD("maincpu", ARM9, 40000000) MCFG_CPU_PROGRAM_MAP(gizmondo_map) diff --git a/src/mame/drivers/gkigt.cpp b/src/mame/drivers/gkigt.cpp index 6de00680436..f663092a6bf 100644 --- a/src/mame/drivers/gkigt.cpp +++ b/src/mame/drivers/gkigt.cpp @@ -234,7 +234,7 @@ GFXDECODE_END -static MACHINE_CONFIG_START( igt_gameking, igt_gameking_state ) +static MACHINE_CONFIG_START( igt_gameking ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I960, XTAL_24MHz) @@ -480,13 +480,13 @@ ROM_START( gkkey ) ROM_REGION( 0x200000, "snd", ROMREGION_ERASEFF ) ROM_END -GAME( 1994, ms3, 0, igt_gameking, igt_gameking, driver_device, 0, ROT0, "IGT", "Multistar 3", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -GAME( 1994, ms72c, 0, igt_gameking, igt_gameking, driver_device, 0, ROT0, "IGT", "Multistar 7 2c", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -GAME( 2003, gkigt4, 0, igt_gameking, igt_gameking, driver_device, 0, ROT0, "IGT", "Game King (v4.x)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -GAME( 2003, gkigt4ms, gkigt4, igt_gameking, igt_gameking, driver_device, 0, ROT0, "IGT", "Game King (v4.x, MS)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -GAME( 2003, gkigt43, gkigt4, igt_gameking, igt_gameking, driver_device, 0, ROT0, "IGT", "Game King (v4.3)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -GAME( 2003, gkigt43n, gkigt4, igt_gameking, igt_gameking, driver_device, 0, ROT0, "IGT", "Game King (v4.3, NJ)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -GAME( 2003, gkigtez, gkigt4, igt_gameking, igt_gameking, driver_device, 0, ROT0, "IGT", "Game King (EZ Pay, v4.0, MS)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -GAME( 2003, gkigt5p, gkigt4, igt_gameking, igt_gameking, driver_device, 0, ROT0, "IGT", "Game King (Triple-Five Play)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -GAME( 2003, igtsc, 0, igt_gameking, igt_gameking, driver_device, 0, ROT0, "IGT", "Super Cherry", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // SIMM dumps are bad. -GAME( 2003, gkkey, 0, igt_gameking, igt_gameking, driver_device, 0, ROT0, "IGT", "Game King (Set Chips)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // only 2 are good dumps +GAME( 1994, ms3, 0, igt_gameking, igt_gameking, igt_gameking_state, 0, ROT0, "IGT", "Multistar 3", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +GAME( 1994, ms72c, 0, igt_gameking, igt_gameking, igt_gameking_state, 0, ROT0, "IGT", "Multistar 7 2c", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +GAME( 2003, gkigt4, 0, igt_gameking, igt_gameking, igt_gameking_state, 0, ROT0, "IGT", "Game King (v4.x)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +GAME( 2003, gkigt4ms, gkigt4, igt_gameking, igt_gameking, igt_gameking_state, 0, ROT0, "IGT", "Game King (v4.x, MS)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +GAME( 2003, gkigt43, gkigt4, igt_gameking, igt_gameking, igt_gameking_state, 0, ROT0, "IGT", "Game King (v4.3)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +GAME( 2003, gkigt43n, gkigt4, igt_gameking, igt_gameking, igt_gameking_state, 0, ROT0, "IGT", "Game King (v4.3, NJ)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +GAME( 2003, gkigtez, gkigt4, igt_gameking, igt_gameking, igt_gameking_state, 0, ROT0, "IGT", "Game King (EZ Pay, v4.0, MS)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +GAME( 2003, gkigt5p, gkigt4, igt_gameking, igt_gameking, igt_gameking_state, 0, ROT0, "IGT", "Game King (Triple-Five Play)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +GAME( 2003, igtsc, 0, igt_gameking, igt_gameking, igt_gameking_state, 0, ROT0, "IGT", "Super Cherry", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // SIMM dumps are bad. +GAME( 2003, gkkey, 0, igt_gameking, igt_gameking, igt_gameking_state, 0, ROT0, "IGT", "Game King (Set Chips)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // only 2 are good dumps diff --git a/src/mame/drivers/gladiatr.cpp b/src/mame/drivers/gladiatr.cpp index dbe6ccdff51..83707497479 100644 --- a/src/mame/drivers/gladiatr.cpp +++ b/src/mame/drivers/gladiatr.cpp @@ -676,7 +676,7 @@ GFXDECODE_END -static MACHINE_CONFIG_START( ppking, ppking_state ) +static MACHINE_CONFIG_START( ppking ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_12MHz/2) /* verified on pcb */ @@ -725,11 +725,11 @@ static MACHINE_CONFIG_START( ppking, ppking_state ) MCFG_SOUND_ROUTE(3, "mono", 0.50) MCFG_SOUND_ADD("msm", MSM5205, XTAL_455kHz) /* verified on pcb */ - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_SEX_4B) /* vclk input mode */ + MCFG_MSM5205_PRESCALER_SELECTOR(SEX_4B) /* vclk input mode */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( gladiatr, gladiatr_state ) +static MACHINE_CONFIG_START( gladiatr ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_12MHz/2) /* verified on pcb */ @@ -809,7 +809,7 @@ static MACHINE_CONFIG_START( gladiatr, gladiatr_state ) MCFG_SOUND_ROUTE(3, "mono", 0.50) MCFG_SOUND_ADD("msm", MSM5205, XTAL_455kHz) /* verified on pcb */ - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_SEX_4B) /* vclk input mode */ + MCFG_MSM5205_PRESCALER_SELECTOR(SEX_4B) /* vclk input mode */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60) MACHINE_CONFIG_END diff --git a/src/mame/drivers/glasgow.cpp b/src/mame/drivers/glasgow.cpp index 29e70448073..52a7de6d130 100644 --- a/src/mame/drivers/glasgow.cpp +++ b/src/mame/drivers/glasgow.cpp @@ -704,7 +704,7 @@ static INPUT_PORTS_START( old_keyboard ) //Glasgow,Dallas INPUT_PORTS_END -static MACHINE_CONFIG_START( glasgow, glasgow_state ) +static MACHINE_CONFIG_START( glasgow ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 12000000) MCFG_CPU_PROGRAM_MAP(glasgow_mem) @@ -795,10 +795,10 @@ ROM_END ***************************************************************************/ /* YEAR, NAME, PARENT, COMPAT, MACHINE, INPUT, CLASS, INIT, COMPANY, FULLNAME, FLAGS */ -CONS( 1984, glasgow, 0, 0, glasgow, old_keyboard, driver_device, 0, "Hegener & Glaser Muenchen", "Mephisto III S Glasgow", 0) -CONS( 1984, amsterd, 0, 0, amsterd, new_keyboard, driver_device, 0, "Hegener & Glaser Muenchen", "Mephisto Amsterdam", MACHINE_NOT_WORKING) -CONS( 1984, dallas, glasgow, 0, glasgow, old_keyboard, driver_device, 0, "Hegener & Glaser Muenchen", "Mephisto Dallas", MACHINE_NOT_WORKING) -CONS( 1984, roma, amsterd, 0, glasgow, new_keyboard, driver_device, 0, "Hegener & Glaser Muenchen", "Mephisto Roma", MACHINE_NOT_WORKING) -CONS( 1984, dallas32, amsterd, 0, dallas32, new_keyboard, driver_device, 0, "Hegener & Glaser Muenchen", "Mephisto Dallas 32 Bit", MACHINE_NOT_WORKING) -CONS( 1984, roma32, amsterd, 0, dallas32, new_keyboard, driver_device, 0, "Hegener & Glaser Muenchen", "Mephisto Roma 32 Bit", MACHINE_NOT_WORKING) -CONS( 1984, dallas16, amsterd, 0, amsterd, new_keyboard, driver_device, 0, "Hegener & Glaser Muenchen", "Mephisto Dallas 16 Bit", MACHINE_NOT_WORKING) +CONS( 1984, glasgow, 0, 0, glasgow, old_keyboard, glasgow_state, 0, "Hegener & Glaser Muenchen", "Mephisto III S Glasgow", 0) +CONS( 1984, amsterd, 0, 0, amsterd, new_keyboard, glasgow_state, 0, "Hegener & Glaser Muenchen", "Mephisto Amsterdam", MACHINE_NOT_WORKING) +CONS( 1984, dallas, glasgow, 0, glasgow, old_keyboard, glasgow_state, 0, "Hegener & Glaser Muenchen", "Mephisto Dallas", MACHINE_NOT_WORKING) +CONS( 1984, roma, amsterd, 0, glasgow, new_keyboard, glasgow_state, 0, "Hegener & Glaser Muenchen", "Mephisto Roma", MACHINE_NOT_WORKING) +CONS( 1984, dallas32, amsterd, 0, dallas32, new_keyboard, glasgow_state, 0, "Hegener & Glaser Muenchen", "Mephisto Dallas 32 Bit", MACHINE_NOT_WORKING) +CONS( 1984, roma32, amsterd, 0, dallas32, new_keyboard, glasgow_state, 0, "Hegener & Glaser Muenchen", "Mephisto Roma 32 Bit", MACHINE_NOT_WORKING) +CONS( 1984, dallas16, amsterd, 0, amsterd, new_keyboard, glasgow_state, 0, "Hegener & Glaser Muenchen", "Mephisto Dallas 16 Bit", MACHINE_NOT_WORKING) diff --git a/src/mame/drivers/glass.cpp b/src/mame/drivers/glass.cpp index 866056a7359..a20990f28de 100644 --- a/src/mame/drivers/glass.cpp +++ b/src/mame/drivers/glass.cpp @@ -199,7 +199,7 @@ void glass_state::machine_reset() m_blitter_serial_buffer[i] = 0; } -static MACHINE_CONFIG_START( glass, glass_state ) +static MACHINE_CONFIG_START( glass ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_24MHz/2) /* 12 MHz verified on PCB */ @@ -223,7 +223,7 @@ static MACHINE_CONFIG_START( glass, glass_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", XTAL_1MHz, OKIM6295_PIN7_HIGH) /* 1MHz Resonator & pin 7 high verified on PCB */ + MCFG_OKIM6295_ADD("oki", XTAL_1MHz, PIN7_HIGH) /* 1MHz Resonator & pin 7 high verified on PCB */ MCFG_DEVICE_ADDRESS_MAP(AS_0, oki_map) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END diff --git a/src/mame/drivers/globalfr.cpp b/src/mame/drivers/globalfr.cpp index b64b666aba7..705f92e48c6 100644 --- a/src/mame/drivers/globalfr.cpp +++ b/src/mame/drivers/globalfr.cpp @@ -28,10 +28,10 @@ public: : driver_device(mconfig, type, tag), m_maincpu(*this, "maincpu"), m_vfd(*this, "vfd") - { } + { } required_device m_maincpu; - optional_device m_vfd; + optional_device m_vfd; // serial vfd @@ -63,7 +63,7 @@ INPUT_PORTS_END /******************************************************************************/ -static MACHINE_CONFIG_START( globalfr, globalfr_state ) +static MACHINE_CONFIG_START( globalfr ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M37702S1, 4000000) MCFG_CPU_PROGRAM_MAP(globalfr_map) @@ -197,32 +197,32 @@ ROM_END /******************************************************************************/ // standalone game or topbox? -GAME( 199?, gl_snbev, 0, globalfr, globalfr, driver_device, 0, ROT0, "Global", "Saturday Night Beaver (Global) (Stealth?) (set 1)",MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, gl_snbeva, gl_snbev, globalfr, globalfr, driver_device, 0, ROT0, "Global", "Saturday Night Beaver (Global) (Stealth?) (set 2)",MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, gl_snbev, 0, globalfr, globalfr, globalfr_state, 0, ROT0, "Global", "Saturday Night Beaver (Global) (Stealth?) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, gl_snbeva, gl_snbev, globalfr, globalfr, globalfr_state, 0, ROT0, "Global", "Saturday Night Beaver (Global) (Stealth?) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) // standalone game or topbox? -GAME( 199?, gl_grncl, 0, globalfr, globalfr, driver_device, 0, ROT0, "Global", "Grid Runner Club (Global) (Stealth?) (set 1)",MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, gl_grncla, gl_grncl, globalfr, globalfr, driver_device, 0, ROT0, "Global", "Grid Runner Club (Global) (Stealth?) (set 2)",MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, gl_grncl, 0, globalfr, globalfr, globalfr_state, 0, ROT0, "Global", "Grid Runner Club (Global) (Stealth?) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, gl_grncla, gl_grncl, globalfr, globalfr, globalfr_state, 0, ROT0, "Global", "Grid Runner Club (Global) (Stealth?) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, gl_dow, 0, globalfr, globalfr, driver_device, 0, ROT0, "Global", "Deals On Wheels (Global) (v1.4) (Stealth)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 199?, gl_dowp, gl_dow, globalfr, globalfr, driver_device, 0, ROT0, "Global", "Deals On Wheels (Global) (v1.4 Protocol) (Stealth)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 199?, gl_dow, 0, globalfr, globalfr, globalfr_state, 0, ROT0, "Global", "Deals On Wheels (Global) (v1.4) (Stealth)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, gl_dowp, gl_dow, globalfr, globalfr, globalfr_state, 0, ROT0, "Global", "Deals On Wheels (Global) (v1.4 Protocol) (Stealth)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, gl_dowcl,0, globalfr, globalfr, driver_device, 0, ROT0, "Global", "Deals On Wheels Club (Global) (v1.6) (Stealth)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 199?, gl_dowclp,gl_dowcl,globalfr, globalfr, driver_device, 0, ROT0, "Global", "Deals On Wheels Club (Global) (v1.6 Protocol) (Stealth)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 199?, gl_dowcl, 0, globalfr, globalfr, globalfr_state, 0, ROT0, "Global", "Deals On Wheels Club (Global) (v1.6) (Stealth)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, gl_dowclp, gl_dowcl, globalfr, globalfr, globalfr_state, 0, ROT0, "Global", "Deals On Wheels Club (Global) (v1.6 Protocol) (Stealth)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, gl_wywh, 0, globalfr, globalfr, driver_device, 0, ROT0, "Global", "Wish You Were Here Club (Global) (v2.9) (Stealth)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 199?, gl_wywhp, gl_wywh, globalfr, globalfr, driver_device, 0, ROT0, "Global", "Wish You Were Here Club (Global) (v2.9 Protocol) (Stealth)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 199?, gl_wywh24, gl_wywh, globalfr, globalfr, driver_device, 0, ROT0, "Global", "Wish You Were Here Club (Global) (v2.4) (Stealth)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 199?, gl_wywh24p,gl_wywh, globalfr, globalfr, driver_device, 0, ROT0, "Global", "Wish You Were Here Club (Global) (v2.4 Protocol) (Stealth)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 199?, gl_wywh, 0, globalfr, globalfr, globalfr_state, 0, ROT0, "Global", "Wish You Were Here Club (Global) (v2.9) (Stealth)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, gl_wywhp, gl_wywh, globalfr, globalfr, globalfr_state, 0, ROT0, "Global", "Wish You Were Here Club (Global) (v2.9 Protocol) (Stealth)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, gl_wywh24, gl_wywh, globalfr, globalfr, globalfr_state, 0, ROT0, "Global", "Wish You Were Here Club (Global) (v2.4) (Stealth)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, gl_wywh24p, gl_wywh, globalfr, globalfr, globalfr_state, 0, ROT0, "Global", "Wish You Were Here Club (Global) (v2.4 Protocol) (Stealth)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, gl_coc, 0, globalfr, globalfr, driver_device, 0, ROT0, "Global", "Carry On Clubbin' (Global) (v3.0) (Stealth)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 199?, gl_cocp, gl_coc, globalfr, globalfr, driver_device, 0, ROT0, "Global", "Carry On Clubbin' (Global) (v3.0 Protocol) (Stealth)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 199?, gl_coc29, gl_coc, globalfr, globalfr, driver_device, 0, ROT0, "Global", "Carry On Clubbin' (Global) (v2.9) (Stealth)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 199?, gl_coc29p,gl_coc, globalfr, globalfr, driver_device, 0, ROT0, "Global", "Carry On Clubbin' (Global) (v2.9 Protocol) (Stealth)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 199?, gl_coc, 0, globalfr, globalfr, globalfr_state, 0, ROT0, "Global", "Carry On Clubbin' (Global) (v3.0) (Stealth)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, gl_cocp, gl_coc, globalfr, globalfr, globalfr_state, 0, ROT0, "Global", "Carry On Clubbin' (Global) (v3.0 Protocol) (Stealth)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, gl_coc29, gl_coc, globalfr, globalfr, globalfr_state, 0, ROT0, "Global", "Carry On Clubbin' (Global) (v2.9) (Stealth)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, gl_coc29p, gl_coc, globalfr, globalfr, globalfr_state, 0, ROT0, "Global", "Carry On Clubbin' (Global) (v2.9 Protocol) (Stealth)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, gl_uyr, 0, globalfr, globalfr, driver_device, 0, ROT0, "Global", "Up Yer Riggin Club (Global) (v2.8) (Stealth)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 199?, gl_uyrp, gl_uyr, globalfr, globalfr, driver_device, 0, ROT0, "Global", "Up Yer Riggin Club (Global) (v2.8 Protocol) (Stealth)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 199?, gl_uyr, 0, globalfr, globalfr, globalfr_state, 0, ROT0, "Global", "Up Yer Riggin Club (Global) (v2.8) (Stealth)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, gl_uyrp, gl_uyr, globalfr, globalfr, globalfr_state, 0, ROT0, "Global", "Up Yer Riggin Club (Global) (v2.8 Protocol) (Stealth)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, gl_hbh, 0, globalfr, globalfr, driver_device, 0, ROT0, "Global", "Heartbreak Hotel (Global) (v1.0) (Stealth)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 199?, gl_hbhcl,0, globalfr, globalfr, driver_device, 0, ROT0, "Global", "Heartbreak Hotel Club (Global) (v1.9) (Stealth)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 199?, gl_hbhclp,gl_hbhcl, globalfr, globalfr, driver_device, 0, ROT0, "Global", "Heartbreak Hotel Club (Global) (v1.9 Protocol) (Stealth)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 199?, gl_hbhcla,gl_hbhcl, globalfr, globalfr, driver_device, 0, ROT0, "Global", "Heartbreak Hotel Club (Global) (Set 2) (Stealth)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 199?, gl_hbh, 0, globalfr, globalfr, globalfr_state, 0, ROT0, "Global", "Heartbreak Hotel (Global) (v1.0) (Stealth)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, gl_hbhcl, 0, globalfr, globalfr, globalfr_state, 0, ROT0, "Global", "Heartbreak Hotel Club (Global) (v1.9) (Stealth)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, gl_hbhclp, gl_hbhcl, globalfr, globalfr, globalfr_state, 0, ROT0, "Global", "Heartbreak Hotel Club (Global) (v1.9 Protocol) (Stealth)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, gl_hbhcla, gl_hbhcl, globalfr, globalfr, globalfr_state, 0, ROT0, "Global", "Heartbreak Hotel Club (Global) (Set 2) (Stealth)", MACHINE_IS_SKELETON_MECHANICAL ) diff --git a/src/mame/drivers/globalvr.cpp b/src/mame/drivers/globalvr.cpp index 72aee844101..3cb38e4eac2 100644 --- a/src/mame/drivers/globalvr.cpp +++ b/src/mame/drivers/globalvr.cpp @@ -84,7 +84,7 @@ static INPUT_PORTS_START( globalvr ) INPUT_PORTS_END -static MACHINE_CONFIG_START( globalvr, globalvr_state ) +static MACHINE_CONFIG_START( globalvr ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", PENTIUM, 100000000) /* ? MHz */ MCFG_CPU_PROGRAM_MAP(globalvr_map) @@ -146,15 +146,15 @@ ROM_START( nfsug ) ROM_END -/* OS/Global VR specific Setup Installers */ -GAME( 2002, hyperv2, 0, globalvr, globalvr, driver_device, 0, ROT0, "Global VR", "Hyper V2 (Global VR) Install - 06/12/02", MACHINE_IS_SKELETON ) -GAME( 2001, hyperv2a, 0, globalvr, globalvr, driver_device, 0, ROT0, "Global VR", "Hyper V2 (Global VR) Install - 09/30/01", MACHINE_IS_SKELETON ) -GAME( 2001, gvrxpsys, 0, globalvr, globalvr, driver_device, 0, ROT0, "Global VR", "Global VR XP OS Install - 09/30/01", MACHINE_IS_SKELETON ) -GAME( 2002, gvrxpsup, 0, globalvr, globalvr, driver_device, 0, ROT0, "Global VR", "Global VR XP OS Update/Install - 06/11/02", MACHINE_IS_SKELETON ) +// OS/Global VR specific Setup Installers +GAME( 2002, hyperv2, 0, globalvr, globalvr, globalvr_state, 0, ROT0, "Global VR", "Hyper V2 (Global VR) Install - 06/12/02", MACHINE_IS_SKELETON ) +GAME( 2001, hyperv2a, 0, globalvr, globalvr, globalvr_state, 0, ROT0, "Global VR", "Hyper V2 (Global VR) Install - 09/30/01", MACHINE_IS_SKELETON ) +GAME( 2001, gvrxpsys, 0, globalvr, globalvr, globalvr_state, 0, ROT0, "Global VR", "Global VR XP OS Install - 09/30/01", MACHINE_IS_SKELETON ) +GAME( 2002, gvrxpsup, 0, globalvr, globalvr, globalvr_state, 0, ROT0, "Global VR", "Global VR XP OS Update/Install - 06/11/02", MACHINE_IS_SKELETON ) -/* Game Installer CDs */ -GAME( 2000, bhead2k, 0, globalvr, globalvr, driver_device, 0, ROT0, "Global VR", "Beach Head 2000 Install - 05/27/03", MACHINE_IS_SKELETON ) -GAME( 2000, bhead2ka, 0, globalvr, globalvr, driver_device, 0, ROT0, "Global VR", "Beach Head 2000 Install - 09/16/01", MACHINE_IS_SKELETON ) -GAME( 2002, bhead2k2, 0, globalvr, globalvr, driver_device, 0, ROT0, "Global VR", "Beach Head 2002 Install - 05/27/03", MACHINE_IS_SKELETON ) -GAME( 2003, bhead2k3, 0, globalvr, globalvr, driver_device, 0, ROT0, "Global VR", "Beach Head 2003 Desert War Install - 05/27/03", MACHINE_IS_SKELETON ) -GAME( 2005, nfsug, 0, globalvr, globalvr, driver_device, 0, ROT0, "Global VR", "Need For Speed: Underground Install (2 Discs) (v1.1)", MACHINE_IS_SKELETON ) +// Game Installer CDs +GAME( 2000, bhead2k, 0, globalvr, globalvr, globalvr_state, 0, ROT0, "Global VR", "Beach Head 2000 Install - 05/27/03", MACHINE_IS_SKELETON ) +GAME( 2000, bhead2ka, 0, globalvr, globalvr, globalvr_state, 0, ROT0, "Global VR", "Beach Head 2000 Install - 09/16/01", MACHINE_IS_SKELETON ) +GAME( 2002, bhead2k2, 0, globalvr, globalvr, globalvr_state, 0, ROT0, "Global VR", "Beach Head 2002 Install - 05/27/03", MACHINE_IS_SKELETON ) +GAME( 2003, bhead2k3, 0, globalvr, globalvr, globalvr_state, 0, ROT0, "Global VR", "Beach Head 2003 Desert War Install - 05/27/03", MACHINE_IS_SKELETON ) +GAME( 2005, nfsug, 0, globalvr, globalvr, globalvr_state, 0, ROT0, "Global VR", "Need For Speed: Underground Install (2 Discs) (v1.1)", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/gluck2.cpp b/src/mame/drivers/gluck2.cpp index cf3f3b5af6f..a0155e09fb2 100644 --- a/src/mame/drivers/gluck2.cpp +++ b/src/mame/drivers/gluck2.cpp @@ -515,7 +515,7 @@ GFXDECODE_END * Machine Drivers * *********************************************/ -static MACHINE_CONFIG_START( gluck2, gluck2_state ) +static MACHINE_CONFIG_START( gluck2 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, MASTER_CLOCK/16) /* guess */ @@ -586,5 +586,5 @@ ROM_END * Game Drivers * *********************************************/ -/* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS... */ -GAME( 1992, gluck2, 0, gluck2, gluck2, driver_device, 0, ROT0, "Yung Yu / CYE", "Good Luck II", MACHINE_SUPPORTS_SAVE ) +// YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS... +GAME( 1992, gluck2, 0, gluck2, gluck2, gluck2_state, 0, ROT0, "Yung Yu / CYE", "Good Luck II", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/gmaster.cpp b/src/mame/drivers/gmaster.cpp index ecc0083885b..b98decd6318 100644 --- a/src/mame/drivers/gmaster.cpp +++ b/src/mame/drivers/gmaster.cpp @@ -329,7 +329,7 @@ void gmaster_state::machine_start() } -static MACHINE_CONFIG_START( gmaster, gmaster_state ) +static MACHINE_CONFIG_START( gmaster ) MCFG_CPU_ADD("maincpu", UPD7810, XTAL_12MHz/2/*?*/) // upd78c11 in the unit MCFG_CPU_PROGRAM_MAP(gmaster_mem) MCFG_UPD7810_PORTA_READ_CB(IOPORT("JOY")) diff --git a/src/mame/drivers/gng.cpp b/src/mame/drivers/gng.cpp index 04f2159563d..6428b72f815 100644 --- a/src/mame/drivers/gng.cpp +++ b/src/mame/drivers/gng.cpp @@ -342,7 +342,7 @@ void gng_state::machine_reset() } } -static MACHINE_CONFIG_START( gng, gng_state ) +static MACHINE_CONFIG_START( gng ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809, XTAL_12MHz/8) /* verified on pcb */ @@ -784,14 +784,14 @@ DRIVER_INIT_MEMBER(gng_state,diamond) -GAME( 1985, gng, 0, gng, gng, driver_device, 0, ROT0, "Capcom", "Ghosts'n Goblins (World? set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, gnga, gng, gng, gng, driver_device, 0, ROT0, "Capcom", "Ghosts'n Goblins (World? set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, gngbl, gng, gng, gng, driver_device, 0, ROT0, "bootleg", "Ghosts'n Goblins (bootleg with Cross)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, gngprot, gng, gng, gng, driver_device, 0, ROT0, "Capcom", "Ghosts'n Goblins (prototype)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, gngblita, gng, gng, gng, driver_device, 0, ROT0, "bootleg", "Ghosts'n Goblins (Italian bootleg, harder)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, gngc, gng, gng, gng, driver_device, 0, ROT0, "Capcom", "Ghosts'n Goblins (World? set 3)", MACHINE_SUPPORTS_SAVE ) // rev c? -GAME( 1985, gngt, gng, gng, gng, driver_device, 0, ROT0, "Capcom (Taito America license)", "Ghosts'n Goblins (US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, makaimur, gng, gng, makaimur, driver_device, 0, ROT0, "Capcom", "Makai-Mura (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, makaimurc, gng, gng, makaimur, driver_device, 0, ROT0, "Capcom", "Makai-Mura (Japan Revision C)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, makaimurg, gng, gng, makaimur, driver_device, 0, ROT0, "Capcom", "Makai-Mura (Japan Revision G)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, diamond, 0, gng, diamond, gng_state, diamond, ROT0, "KH Video", "Diamond Run", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, gng, 0, gng, gng, gng_state, 0, ROT0, "Capcom", "Ghosts'n Goblins (World? set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, gnga, gng, gng, gng, gng_state, 0, ROT0, "Capcom", "Ghosts'n Goblins (World? set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, gngbl, gng, gng, gng, gng_state, 0, ROT0, "bootleg", "Ghosts'n Goblins (bootleg with Cross)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, gngprot, gng, gng, gng, gng_state, 0, ROT0, "Capcom", "Ghosts'n Goblins (prototype)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, gngblita, gng, gng, gng, gng_state, 0, ROT0, "bootleg", "Ghosts'n Goblins (Italian bootleg, harder)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, gngc, gng, gng, gng, gng_state, 0, ROT0, "Capcom", "Ghosts'n Goblins (World? set 3)", MACHINE_SUPPORTS_SAVE ) // rev c? +GAME( 1985, gngt, gng, gng, gng, gng_state, 0, ROT0, "Capcom (Taito America license)", "Ghosts'n Goblins (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, makaimur, gng, gng, makaimur, gng_state, 0, ROT0, "Capcom", "Makai-Mura (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, makaimurc, gng, gng, makaimur, gng_state, 0, ROT0, "Capcom", "Makai-Mura (Japan Revision C)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, makaimurg, gng, gng, makaimur, gng_state, 0, ROT0, "Capcom", "Makai-Mura (Japan Revision G)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, diamond, 0, gng, diamond, gng_state, diamond, ROT0, "KH Video", "Diamond Run", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/go2000.cpp b/src/mame/drivers/go2000.cpp index e7bb2bf49d9..2241cd56978 100644 --- a/src/mame/drivers/go2000.cpp +++ b/src/mame/drivers/go2000.cpp @@ -333,7 +333,7 @@ void go2000_state::machine_start() } -static MACHINE_CONFIG_START( go2000, go2000_state ) +static MACHINE_CONFIG_START( go2000 ) MCFG_CPU_ADD("maincpu", M68000, 10000000) MCFG_CPU_PROGRAM_MAP(go2000_map) @@ -380,4 +380,4 @@ ROM_START( go2000 ) ROM_END -GAME( 2000, go2000, 0, go2000, go2000, driver_device, 0, ROT0, "SunA?", "Go 2000", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, go2000, 0, go2000, go2000, go2000_state, 0, ROT0, "SunA?", "Go 2000", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/goal92.cpp b/src/mame/drivers/goal92.cpp index b88d0aaa28f..dc3962d3cec 100644 --- a/src/mame/drivers/goal92.cpp +++ b/src/mame/drivers/goal92.cpp @@ -294,7 +294,7 @@ void goal92_state::machine_reset() m_adpcm_toggle = 0; } -static MACHINE_CONFIG_START( goal92, goal92_state ) +static MACHINE_CONFIG_START( goal92 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000,12000000) @@ -334,7 +334,7 @@ static MACHINE_CONFIG_START( goal92, goal92_state ) MCFG_SOUND_ADD("msm", MSM5205, 384000) MCFG_MSM5205_VCLK_CB(WRITELINE(goal92_state, goal92_adpcm_int)) /* interrupt function */ - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S96_4B) /* 4KHz 4-bit */ + MCFG_MSM5205_PRESCALER_SELECTOR(S96_4B) /* 4KHz 4-bit */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60) MACHINE_CONFIG_END @@ -401,4 +401,4 @@ ROM_END -GAME( 1992, goal92, cupsoc, goal92, goal92, driver_device, 0, ROT0, "bootleg", "Goal! '92", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1992, goal92, cupsoc, goal92, goal92, goal92_state, 0, ROT0, "bootleg", "Goal! '92", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/goindol.cpp b/src/mame/drivers/goindol.cpp index 119c76192bb..f5989b52587 100644 --- a/src/mame/drivers/goindol.cpp +++ b/src/mame/drivers/goindol.cpp @@ -233,7 +233,7 @@ void goindol_state::machine_reset() m_prot_toggle = 0; } -static MACHINE_CONFIG_START( goindol, goindol_state ) +static MACHINE_CONFIG_START( goindol ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_12MHz/2) /* XTAL confirmed, divisor is not */ @@ -410,4 +410,4 @@ DRIVER_INIT_MEMBER(goindol_state,goindol) GAME( 1987, goindol, 0, goindol, goindol, goindol_state, goindol, ROT90, "SunA", "Goindol (World)", MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) GAME( 1987, goindolu, goindol, goindol, goindol, goindol_state, goindol, ROT90, "SunA", "Goindol (US)", MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) GAME( 1987, goindolk, goindol, goindol, goindol, goindol_state, goindol, ROT90, "SunA", "Goindol (Korea)", MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) -GAME( 1987, homo, goindol, goindol, homo, driver_device, 0, ROT90, "bootleg", "Homo", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, homo, goindol, goindol, homo, goindol_state, 0, ROT90, "bootleg", "Homo", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/goldngam.cpp b/src/mame/drivers/goldngam.cpp index b1989ad8a6d..ab1a3f8df24 100644 --- a/src/mame/drivers/goldngam.cpp +++ b/src/mame/drivers/goldngam.cpp @@ -546,7 +546,7 @@ GFXDECODE_END *************************/ -static MACHINE_CONFIG_START( swisspkr, goldngam_state ) +static MACHINE_CONFIG_START( swisspkr ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, MASTER_CLOCK) @@ -614,6 +614,6 @@ ROM_END * Game Drivers * *************************/ -/* YEAR NAME PARENT MACHINE INPUT INIT ROT COMPANY FULLNAME FLAGS */ -GAME( 1990, swisspkr, 0, swisspkr, goldngam, driver_device, 0, ROT0, "Golden Games / C+M Technics AG", "Swiss Poker ('50 SG-.10', V2.5)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING ) -GAME( 1998, moviecrd, 0, moviecrd, goldngam, driver_device, 0, ROT0, "Golden Games / C+M Technics AG", "Movie Card", MACHINE_NO_SOUND | MACHINE_NOT_WORKING ) +// YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS +GAME( 1990, swisspkr, 0, swisspkr, goldngam, goldngam_state, 0, ROT0, "Golden Games / C+M Technics AG", "Swiss Poker ('50 SG-.10', V2.5)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING ) +GAME( 1998, moviecrd, 0, moviecrd, goldngam, goldngam_state, 0, ROT0, "Golden Games / C+M Technics AG", "Movie Card", MACHINE_NO_SOUND | MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/goldnpkr.cpp b/src/mame/drivers/goldnpkr.cpp index 37edaa077be..99cebc26239 100644 --- a/src/mame/drivers/goldnpkr.cpp +++ b/src/mame/drivers/goldnpkr.cpp @@ -4023,7 +4023,7 @@ MACHINE_RESET_MEMBER(goldnpkr_state, mondial) * Machine Drivers * *********************************************/ -static MACHINE_CONFIG_START( goldnpkr_base, goldnpkr_state ) +static MACHINE_CONFIG_START( goldnpkr_base ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, CPU_CLOCK) @@ -10845,79 +10845,79 @@ DRIVER_INIT_MEMBER(goldnpkr_state, bchancep) * Game Drivers * *********************************************/ -/* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS LAYOUT */ -GAMEL( 1981, goldnpkr, 0, goldnpkr, goldnpkr, driver_device, 0, ROT0, "Bonanza Enterprises, Ltd", "Golden Poker Double Up (Big Boy)", 0, layout_goldnpkr ) -GAMEL( 1981, goldnpkb, goldnpkr, goldnpkr, goldnpkr, driver_device, 0, ROT0, "Bonanza Enterprises, Ltd", "Golden Poker Double Up (Mini Boy)", 0, layout_goldnpkr ) - -GAMEL( 198?, videtron, 0, goldnpkr, videtron, driver_device, 0, ROT0, "", "Videotron Poker (cards selector, set 1)", 0, layout_goldnpkr ) -GAMEL( 198?, videtron2, videtron, goldnpkr, videtron, driver_device, 0, ROT0, "", "Videotron Poker (cards selector, set 2)", 0, layout_goldnpkr ) -GAMEL( 198?, videtrna, videtron, goldnpkr, goldnpkr, driver_device, 0, ROT0, "", "Videotron Poker (normal controls)", 0, layout_goldnpkr ) - -GAMEL( 198?, pottnpkr, 0, pottnpkr, pottnpkr, driver_device, 0, ROT0, "bootleg", "Jack Potten's Poker (set 1)", 0, layout_goldnpkr ) -GAMEL( 198?, potnpkra, pottnpkr, pottnpkr, potnpkra, driver_device, 0, ROT0, "bootleg", "Jack Potten's Poker (set 2)", 0, layout_goldnpkr ) -GAMEL( 198?, potnpkrb, pottnpkr, pottnpkr, pottnpkr, driver_device, 0, ROT0, "bootleg", "Jack Potten's Poker (set 3)", 0, layout_goldnpkr ) -GAMEL( 198?, potnpkrc, pottnpkr, pottnpkr, potnpkrc, driver_device, 0, ROT0, "bootleg", "Jack Potten's Poker (set 4)", 0, layout_goldnpkr ) -GAMEL( 198?, potnpkrd, pottnpkr, pottnpkr, potnpkrc, driver_device, 0, ROT0, "bootleg", "Jack Potten's Poker (set 5)", 0, layout_goldnpkr ) -GAMEL( 198?, potnpkre, pottnpkr, pottnpkr, pottnpkr, driver_device, 0, ROT0, "bootleg", "Jack Potten's Poker (set 6)", 0, layout_goldnpkr ) -GAMEL( 198?, potnpkrf, pottnpkr, goldnpkr, goldnpkr, driver_device, 0, ROT0, "bootleg", "Jack Potten's Poker (set 7, Royale GFX)", 0, layout_goldnpkr ) -GAMEL( 198?, potnpkrg, pottnpkr, pottnpkr, potnpkra, driver_device, 0, ROT0, "bootleg", "Jack Potten's Poker (set 8, Australian)", 0, layout_goldnpkr ) -GAMEL( 198?, potnpkrh, pottnpkr, pottnpkr, goldnpkr, driver_device, 0, ROT0, "bootleg", "Jack Potten's Poker (set 9, 'just 4 fun')", 0, layout_goldnpkr ) -GAMEL( 198?, ngold, pottnpkr, pottnpkr, ngold, driver_device, 0, ROT0, "", "Jack Potten's Poker (NGold, set 1)", 0, layout_goldnpkr ) -GAMEL( 198?, ngolda, pottnpkr, pottnpkr, ngold, driver_device, 0, ROT0, "", "Jack Potten's Poker (NGold, set 2)", 0, layout_goldnpkr ) -GAMEL( 198?, ngoldb, pottnpkr, pottnpkr, ngoldb, driver_device, 0, ROT0, "", "Jack Potten's Poker (NGold, set 3)", 0, layout_goldnpkr ) - -GAMEL( 1990, bsuerte, 0, witchcrd, bsuerte, driver_device, 0, ROT0, "", "Buena Suerte (Spanish, set 1)", 0, layout_goldnpkr ) -GAMEL( 1991, bsuertea, bsuerte, witchcrd, bsuerte, driver_device, 0, ROT0, "", "Buena Suerte (Spanish, set 2)", 0, layout_goldnpkr ) -GAMEL( 1991, bsuerteb, bsuerte, witchcrd, bsuerte, driver_device, 0, ROT0, "", "Buena Suerte (Spanish, set 3)", 0, layout_goldnpkr ) -GAMEL( 1991, bsuertec, bsuerte, witchcrd, bsuerte, driver_device, 0, ROT0, "", "Buena Suerte (Spanish, set 4)", 0, layout_goldnpkr ) -GAMEL( 1991, bsuerted, bsuerte, witchcrd, bsuerte, driver_device, 0, ROT0, "", "Buena Suerte (Spanish, set 5)", 0, layout_goldnpkr ) -GAMEL( 1991, bsuertee, bsuerte, witchcrd, bsuerte, driver_device, 0, ROT0, "", "Buena Suerte (Spanish, set 6)", 0, layout_goldnpkr ) -GAMEL( 1991, bsuertef, bsuerte, witchcrd, bsuerte, driver_device, 0, ROT0, "", "Buena Suerte (Spanish, set 7)", 0, layout_goldnpkr ) -GAME( 1991, bsuerteg, bsuerte, witchcrd, bsuertew, driver_device, 0, ROT0, "", "Buena Suerte (Spanish, set 8)", 0 ) -GAME( 1991, bsuerteh, bsuerte, witchcrd, bsuertew, driver_device, 0, ROT0, "", "Buena Suerte (Spanish, set 9)", 0 ) -GAMEL( 1991, bsuertei, bsuerte, witchcrd, bsuerte, driver_device, 0, ROT0, "", "Buena Suerte (Spanish, set 10)", 0, layout_goldnpkr ) -GAMEL( 1991, bsuertej, bsuerte, witchcrd, bsuerte, driver_device, 0, ROT0, "", "Buena Suerte (Spanish, set 11)", 0, layout_goldnpkr ) -GAMEL( 1991, bsuertek, bsuerte, witchcrd, bsuerte, driver_device, 0, ROT0, "", "Buena Suerte (Spanish, set 12)", 0, layout_goldnpkr ) -GAMEL( 1991, bsuertel, bsuerte, witchcrd, bsuerte, driver_device, 0, ROT0, "", "Buena Suerte (Spanish, set 13)", 0, layout_goldnpkr ) -GAMEL( 1991, bsuertem, bsuerte, witchcrd, bsuerte, driver_device, 0, ROT0, "", "Buena Suerte (Spanish, set 14)", 0, layout_goldnpkr ) -GAMEL( 1991, bsuerten, bsuerte, witchcrd, bsuerte, driver_device, 0, ROT0, "", "Buena Suerte (Spanish, set 15, Prodel PCB)", 0, layout_goldnpkr ) -GAMEL( 1991, bsuerteo, bsuerte, witchcrd, bsuerte, driver_device, 0, ROT0, "", "Buena Suerte (Spanish, set 16)", 0, layout_goldnpkr ) -GAMEL( 1991, bsuertep, bsuerte, witchcrd, bsuerte, driver_device, 0, ROT0, "", "Buena Suerte (Spanish, set 17)", 0, layout_goldnpkr ) -GAMEL( 1991, bsuerteq, bsuerte, witchcrd, bsuerte, driver_device, 0, ROT0, "", "Buena Suerte (Spanish, set 18)", 0, layout_goldnpkr ) -GAMEL( 1991, bsuerter, bsuerte, witchcrd, bsuerte, driver_device, 0, ROT0, "", "Buena Suerte (Spanish, set 19)", 0, layout_goldnpkr ) -GAMEL( 1991, bsuertes, bsuerte, witchcrd, bsuerte, driver_device, 0, ROT0, "", "Buena Suerte (Spanish, set 20)", 0, layout_goldnpkr ) -GAMEL( 1991, bsuertet, bsuerte, witchcrd, bsuerte, driver_device, 0, ROT0, "", "Buena Suerte (Spanish, set 21)", 0, layout_goldnpkr ) -GAMEL( 1991, bsuerteu, bsuerte, witchcrd, bsuerte, driver_device, 0, ROT0, "", "Buena Suerte (Spanish, set 22)", 0, layout_goldnpkr ) -GAMEL( 1991, bsuertev, bsuerte, witchcrd, bsuertev, driver_device, 0, ROT0, "", "Buena Suerte (Spanish/Portuguese, set 23)", 0, layout_goldnpkr ) -GAMEL( 1991, goodluck, bsuerte, witchcrd, goodluck, driver_device, 0, ROT0, "", "Good Luck", 0, layout_goldnpkr ) - -GAMEL( 1991, falcnwld, 0, wildcard, wildcard, driver_device, 0, ROT0, "TVG", "Falcons Wild - Wild Card 1991 (TVG)", 0, layout_goldnpkr ) -GAMEL( 1990, falcnwlda, falcnwld, wildcard, wildcard, driver_device, 0, ROT0, "Video Klein", "Falcons Wild - World Wide Poker (Video Klein, set 1)", 0, layout_goldnpkr ) -GAMEL( 1990, falcnwldb, falcnwld, wildcard, wildcard, driver_device, 0, ROT0, "Video Klein", "Falcons Wild - World Wide Poker (Video Klein, set 2)", 0, layout_goldnpkr ) +// YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS LAYOUT +GAMEL( 1981, goldnpkr, 0, goldnpkr, goldnpkr, goldnpkr_state, 0, ROT0, "Bonanza Enterprises, Ltd", "Golden Poker Double Up (Big Boy)", 0, layout_goldnpkr ) +GAMEL( 1981, goldnpkb, goldnpkr, goldnpkr, goldnpkr, goldnpkr_state, 0, ROT0, "Bonanza Enterprises, Ltd", "Golden Poker Double Up (Mini Boy)", 0, layout_goldnpkr ) + +GAMEL( 198?, videtron, 0, goldnpkr, videtron, goldnpkr_state, 0, ROT0, "", "Videotron Poker (cards selector, set 1)", 0, layout_goldnpkr ) +GAMEL( 198?, videtron2, videtron, goldnpkr, videtron, goldnpkr_state, 0, ROT0, "", "Videotron Poker (cards selector, set 2)", 0, layout_goldnpkr ) +GAMEL( 198?, videtrna, videtron, goldnpkr, goldnpkr, goldnpkr_state, 0, ROT0, "", "Videotron Poker (normal controls)", 0, layout_goldnpkr ) + +GAMEL( 198?, pottnpkr, 0, pottnpkr, pottnpkr, goldnpkr_state, 0, ROT0, "bootleg", "Jack Potten's Poker (set 1)", 0, layout_goldnpkr ) +GAMEL( 198?, potnpkra, pottnpkr, pottnpkr, potnpkra, goldnpkr_state, 0, ROT0, "bootleg", "Jack Potten's Poker (set 2)", 0, layout_goldnpkr ) +GAMEL( 198?, potnpkrb, pottnpkr, pottnpkr, pottnpkr, goldnpkr_state, 0, ROT0, "bootleg", "Jack Potten's Poker (set 3)", 0, layout_goldnpkr ) +GAMEL( 198?, potnpkrc, pottnpkr, pottnpkr, potnpkrc, goldnpkr_state, 0, ROT0, "bootleg", "Jack Potten's Poker (set 4)", 0, layout_goldnpkr ) +GAMEL( 198?, potnpkrd, pottnpkr, pottnpkr, potnpkrc, goldnpkr_state, 0, ROT0, "bootleg", "Jack Potten's Poker (set 5)", 0, layout_goldnpkr ) +GAMEL( 198?, potnpkre, pottnpkr, pottnpkr, pottnpkr, goldnpkr_state, 0, ROT0, "bootleg", "Jack Potten's Poker (set 6)", 0, layout_goldnpkr ) +GAMEL( 198?, potnpkrf, pottnpkr, goldnpkr, goldnpkr, goldnpkr_state, 0, ROT0, "bootleg", "Jack Potten's Poker (set 7, Royale GFX)", 0, layout_goldnpkr ) +GAMEL( 198?, potnpkrg, pottnpkr, pottnpkr, potnpkra, goldnpkr_state, 0, ROT0, "bootleg", "Jack Potten's Poker (set 8, Australian)", 0, layout_goldnpkr ) +GAMEL( 198?, potnpkrh, pottnpkr, pottnpkr, goldnpkr, goldnpkr_state, 0, ROT0, "bootleg", "Jack Potten's Poker (set 9, 'just 4 fun')", 0, layout_goldnpkr ) +GAMEL( 198?, ngold, pottnpkr, pottnpkr, ngold, goldnpkr_state, 0, ROT0, "", "Jack Potten's Poker (NGold, set 1)", 0, layout_goldnpkr ) +GAMEL( 198?, ngolda, pottnpkr, pottnpkr, ngold, goldnpkr_state, 0, ROT0, "", "Jack Potten's Poker (NGold, set 2)", 0, layout_goldnpkr ) +GAMEL( 198?, ngoldb, pottnpkr, pottnpkr, ngoldb, goldnpkr_state, 0, ROT0, "", "Jack Potten's Poker (NGold, set 3)", 0, layout_goldnpkr ) + +GAMEL( 1990, bsuerte, 0, witchcrd, bsuerte, goldnpkr_state, 0, ROT0, "", "Buena Suerte (Spanish, set 1)", 0, layout_goldnpkr ) +GAMEL( 1991, bsuertea, bsuerte, witchcrd, bsuerte, goldnpkr_state, 0, ROT0, "", "Buena Suerte (Spanish, set 2)", 0, layout_goldnpkr ) +GAMEL( 1991, bsuerteb, bsuerte, witchcrd, bsuerte, goldnpkr_state, 0, ROT0, "", "Buena Suerte (Spanish, set 3)", 0, layout_goldnpkr ) +GAMEL( 1991, bsuertec, bsuerte, witchcrd, bsuerte, goldnpkr_state, 0, ROT0, "", "Buena Suerte (Spanish, set 4)", 0, layout_goldnpkr ) +GAMEL( 1991, bsuerted, bsuerte, witchcrd, bsuerte, goldnpkr_state, 0, ROT0, "", "Buena Suerte (Spanish, set 5)", 0, layout_goldnpkr ) +GAMEL( 1991, bsuertee, bsuerte, witchcrd, bsuerte, goldnpkr_state, 0, ROT0, "", "Buena Suerte (Spanish, set 6)", 0, layout_goldnpkr ) +GAMEL( 1991, bsuertef, bsuerte, witchcrd, bsuerte, goldnpkr_state, 0, ROT0, "", "Buena Suerte (Spanish, set 7)", 0, layout_goldnpkr ) +GAME( 1991, bsuerteg, bsuerte, witchcrd, bsuertew, goldnpkr_state, 0, ROT0, "", "Buena Suerte (Spanish, set 8)", 0 ) +GAME( 1991, bsuerteh, bsuerte, witchcrd, bsuertew, goldnpkr_state, 0, ROT0, "", "Buena Suerte (Spanish, set 9)", 0 ) +GAMEL( 1991, bsuertei, bsuerte, witchcrd, bsuerte, goldnpkr_state, 0, ROT0, "", "Buena Suerte (Spanish, set 10)", 0, layout_goldnpkr ) +GAMEL( 1991, bsuertej, bsuerte, witchcrd, bsuerte, goldnpkr_state, 0, ROT0, "", "Buena Suerte (Spanish, set 11)", 0, layout_goldnpkr ) +GAMEL( 1991, bsuertek, bsuerte, witchcrd, bsuerte, goldnpkr_state, 0, ROT0, "", "Buena Suerte (Spanish, set 12)", 0, layout_goldnpkr ) +GAMEL( 1991, bsuertel, bsuerte, witchcrd, bsuerte, goldnpkr_state, 0, ROT0, "", "Buena Suerte (Spanish, set 13)", 0, layout_goldnpkr ) +GAMEL( 1991, bsuertem, bsuerte, witchcrd, bsuerte, goldnpkr_state, 0, ROT0, "", "Buena Suerte (Spanish, set 14)", 0, layout_goldnpkr ) +GAMEL( 1991, bsuerten, bsuerte, witchcrd, bsuerte, goldnpkr_state, 0, ROT0, "", "Buena Suerte (Spanish, set 15, Prodel PCB)", 0, layout_goldnpkr ) +GAMEL( 1991, bsuerteo, bsuerte, witchcrd, bsuerte, goldnpkr_state, 0, ROT0, "", "Buena Suerte (Spanish, set 16)", 0, layout_goldnpkr ) +GAMEL( 1991, bsuertep, bsuerte, witchcrd, bsuerte, goldnpkr_state, 0, ROT0, "", "Buena Suerte (Spanish, set 17)", 0, layout_goldnpkr ) +GAMEL( 1991, bsuerteq, bsuerte, witchcrd, bsuerte, goldnpkr_state, 0, ROT0, "", "Buena Suerte (Spanish, set 18)", 0, layout_goldnpkr ) +GAMEL( 1991, bsuerter, bsuerte, witchcrd, bsuerte, goldnpkr_state, 0, ROT0, "", "Buena Suerte (Spanish, set 19)", 0, layout_goldnpkr ) +GAMEL( 1991, bsuertes, bsuerte, witchcrd, bsuerte, goldnpkr_state, 0, ROT0, "", "Buena Suerte (Spanish, set 20)", 0, layout_goldnpkr ) +GAMEL( 1991, bsuertet, bsuerte, witchcrd, bsuerte, goldnpkr_state, 0, ROT0, "", "Buena Suerte (Spanish, set 21)", 0, layout_goldnpkr ) +GAMEL( 1991, bsuerteu, bsuerte, witchcrd, bsuerte, goldnpkr_state, 0, ROT0, "", "Buena Suerte (Spanish, set 22)", 0, layout_goldnpkr ) +GAMEL( 1991, bsuertev, bsuerte, witchcrd, bsuertev, goldnpkr_state, 0, ROT0, "", "Buena Suerte (Spanish/Portuguese, set 23)", 0, layout_goldnpkr ) +GAMEL( 1991, goodluck, bsuerte, witchcrd, goodluck, goldnpkr_state, 0, ROT0, "", "Good Luck", 0, layout_goldnpkr ) + +GAMEL( 1991, falcnwld, 0, wildcard, wildcard, goldnpkr_state, 0, ROT0, "TVG", "Falcons Wild - Wild Card 1991 (TVG)", 0, layout_goldnpkr ) +GAMEL( 1990, falcnwlda, falcnwld, wildcard, wildcard, goldnpkr_state, 0, ROT0, "Video Klein", "Falcons Wild - World Wide Poker (Video Klein, set 1)", 0, layout_goldnpkr ) +GAMEL( 1990, falcnwldb, falcnwld, wildcard, wildcard, goldnpkr_state, 0, ROT0, "Video Klein", "Falcons Wild - World Wide Poker (Video Klein, set 2)", 0, layout_goldnpkr ) GAME( 1983, falcnwldc, falcnwld, wildcrdb, wildcard, goldnpkr_state, flcnw, ROT0, "Falcon", "Falcons Wild - World Wide Poker (Falcon original)", MACHINE_NOT_WORKING ) GAMEL( 1991, witchcrd, 0, witchcrd, witchcrd, goldnpkr_state, vkdlsc, ROT0, "Video Klein?", "Witch Card (Video Klein CPU box, set 1)", 0, layout_goldnpkr ) -GAME( 1991, witchcda, witchcrd, witchcrd, witchcda, driver_device, 0, ROT0, "", "Witch Card (Spanish, witch game, set 1)", 0 ) -GAME( 1991, witchcdb, witchcrd, witchcrd, witchcda, driver_device, 0, ROT0, "", "Witch Card (Spanish, witch game, set 2)", 0 ) -GAME( 1991, witchcdc, witchcrd, witchcrd, witchcdc, driver_device, 0, ROT0, "", "Witch Card (English, no witch game)", 0 ) -GAMEL( 1994, witchcdd, witchcrd, witchcrd, witchcdd, driver_device, 0, ROT0, "Proma", "Witch Card (German, WC3050, set 1 )", 0, layout_goldnpkr ) +GAME( 1991, witchcda, witchcrd, witchcrd, witchcda, goldnpkr_state, 0, ROT0, "", "Witch Card (Spanish, witch game, set 1)", 0 ) +GAME( 1991, witchcdb, witchcrd, witchcrd, witchcda, goldnpkr_state, 0, ROT0, "", "Witch Card (Spanish, witch game, set 2)", 0 ) +GAME( 1991, witchcdc, witchcrd, witchcrd, witchcdc, goldnpkr_state, 0, ROT0, "", "Witch Card (English, no witch game)", 0 ) +GAMEL( 1994, witchcdd, witchcrd, witchcrd, witchcdd, goldnpkr_state, 0, ROT0, "Proma", "Witch Card (German, WC3050, set 1 )", 0, layout_goldnpkr ) GAMEL( 1991, witchcde, witchcrd, witchcrd, witchcrd, goldnpkr_state, vkdlsc, ROT0, "Video Klein", "Witch Card (Video Klein CPU box, set 2)", 0, layout_goldnpkr ) -GAMEL( 1985, witchcdf, witchcrd, witchcrd, witchcdf, driver_device, 0, ROT0, "PM / Beck Elektronik", "Witch Card (English, witch game, lamps)", 0, layout_goldnpkr ) -GAMEL( 199?, witchcdg, witchcrd, wcfalcon, witchcrd, driver_device, 0, ROT0, "Falcon", "Witch Card (Falcon, enhanced sound)", 0, layout_goldnpkr ) -GAMEL( 1994, witchcdh, witchcrd, witchcrd, witchcdd, driver_device, 0, ROT0, "Proma", "Witch Card (German, WC3050, set 2 )", 0, layout_goldnpkr ) -GAMEL( 1994, witchcdi, witchcrd, witchcrd, witchcdd, driver_device, 0, ROT0, "Proma", "Witch Card (German, WC3050, 27-4-94)", 0, layout_goldnpkr ) +GAMEL( 1985, witchcdf, witchcrd, witchcrd, witchcdf, goldnpkr_state, 0, ROT0, "PM / Beck Elektronik", "Witch Card (English, witch game, lamps)", 0, layout_goldnpkr ) +GAMEL( 199?, witchcdg, witchcrd, wcfalcon, witchcrd, goldnpkr_state, 0, ROT0, "Falcon", "Witch Card (Falcon, enhanced sound)", 0, layout_goldnpkr ) +GAMEL( 1994, witchcdh, witchcrd, witchcrd, witchcdd, goldnpkr_state, 0, ROT0, "Proma", "Witch Card (German, WC3050, set 2 )", 0, layout_goldnpkr ) +GAMEL( 1994, witchcdi, witchcrd, witchcrd, witchcdd, goldnpkr_state, 0, ROT0, "Proma", "Witch Card (German, WC3050, 27-4-94)", 0, layout_goldnpkr ) -GAMEL( 1991, witchgme, 0, witchcrd, witchcrd, driver_device, 0, ROT0, "Video Klein", "Witch Game (Video Klein, set 1)", 0, layout_goldnpkr ) -GAMEL( 1997, witchcdk, witchgme, witchcrd, witchcrd, driver_device, 0, ROT0, "Video Klein", "Witch Game (Video Klein, set 2)", MACHINE_NOT_WORKING, layout_goldnpkr ) +GAMEL( 1991, witchgme, 0, witchcrd, witchcrd, goldnpkr_state, 0, ROT0, "Video Klein", "Witch Game (Video Klein, set 1)", 0, layout_goldnpkr ) +GAMEL( 1997, witchcdk, witchgme, witchcrd, witchcrd, goldnpkr_state, 0, ROT0, "Video Klein", "Witch Game (Video Klein, set 2)", MACHINE_NOT_WORKING, layout_goldnpkr ) GAMEL( 1994, witchjol, 0, wcrdxtnd, witchjol, goldnpkr_state, vkdlsa, ROT0, "Video Klein", "Jolli Witch (Export, 6T/12T ver 1.57D)", 0, layout_goldnpkr ) GAMEL( 2001, wldwitch, 0, wcrdxtnd, wldwitch, goldnpkr_state, vkdlsww, ROT0, "Video Klein", "Wild Witch (Export, 6T/12T ver 1.84A)", 0, layout_goldnpkr ) /* Ver 184A, 2001-09-12 */ GAMEL( 1992, wldwitcha, wldwitch, wcrdxtnd, wldwitch, goldnpkr_state, vkdlswwa, ROT0, "Video Klein", "Wild Witch (Export, 6T/12T ver 1.57-SP)", 0, layout_goldnpkr ) /* Ver 157-SP, 1992-12-25 */ -GAMEL( 1992, wldwitchb, wldwitch, wcrdxtnd, wldwitch, driver_device, 0, ROT0, "Video Klein", "Wild Witch (Export, 6T/12T ver 1.57-TE)", MACHINE_NOT_WORKING, layout_goldnpkr ) /* Ver 157-TE, 1992-12-25 */ +GAMEL( 1992, wldwitchb, wldwitch, wcrdxtnd, wldwitch, goldnpkr_state, 0, ROT0, "Video Klein", "Wild Witch (Export, 6T/12T ver 1.57-TE)", MACHINE_NOT_WORKING, layout_goldnpkr ) /* Ver 157-TE, 1992-12-25 */ GAMEL( 1994, wldwitchc, wldwitch, wcrdxtnd, wldwitch, goldnpkr_state, vkdlswwc, ROT0, "Video Klein", "Wild Witch (Export, 6T/12T ver 1.62A)", 0, layout_goldnpkr ) /* Ver 162A, 1994-04-26 */ GAMEL( 1994, wldwitchd, wldwitch, wcrdxtnd, wldwitch, goldnpkr_state, vkdlswwd, ROT0, "Video Klein", "Wild Witch (Export, 6T/12T ver 1.62B)", 0, layout_goldnpkr ) /* Ver 162B, 1994-04-26 */ -GAMEL( 1994, wldwitche, wldwitch, wcrdxtnd, wldwitch, driver_device, 0, ROT0, "Video Klein", "Wild Witch (Export, 6T/12T ver 1.62A-F)", MACHINE_NOT_WORKING, layout_goldnpkr ) /* Ver 162A-F, 1994-04-26 */ +GAMEL( 1994, wldwitche, wldwitch, wcrdxtnd, wldwitch, goldnpkr_state, 0, ROT0, "Video Klein", "Wild Witch (Export, 6T/12T ver 1.62A-F)", MACHINE_NOT_WORKING, layout_goldnpkr ) /* Ver 162A-F, 1994-04-26 */ GAMEL( 1994, wldwitchf, wldwitch, wcrdxtnd, wldwitch, goldnpkr_state, vkdlswwc, ROT0, "Video Klein", "Wild Witch (Export, 6T/12T ver 1.62A alt)", 0, layout_goldnpkr ) /* Ver 162A alt, 1994-11-03 */ GAMEL( 1994, wldwitchg, wldwitch, wcrdxtnd, wldwitch, goldnpkr_state, vkdlswwd, ROT0, "Video Klein", "Wild Witch (Export, 6T/12T ver 1.62B alt)", 0, layout_goldnpkr ) /* Ver 162B alt, 1994-11-03 */ GAMEL( 1995, wldwitchh, wldwitch, wcrdxtnd, wldwitch, goldnpkr_state, vkdlswwh, ROT0, "Video Klein", "Wild Witch (Export, 6T/12T ver 1.65A)", 0, layout_goldnpkr ) /* Ver 165A, 1995-11-16 */ @@ -10936,57 +10936,57 @@ GAMEL( 1999, wldwitcht, wldwitch, wcrdxtnd, wldwitch, goldnpkr_state, vkdlswwt, GAMEL( 2000, wldwitchu, wldwitch, wcrdxtnd, wldwitch, goldnpkr_state, vkdlswwu, ROT0, "Video Klein", "Wild Witch (Export, 6T/12T ver 1.79A)", 0, layout_goldnpkr ) /* Ver 179A, 2000-05-10 */ GAMEL( 2001, wldwitchv, wldwitch, wcrdxtnd, wldwitch, goldnpkr_state, vkdlswwv, ROT0, "Video Klein", "Wild Witch (Export, 6T/12T ver 1.83A)", 0, layout_goldnpkr ) /* Ver 183A, 2001-06-13 */ -GAMEL( 1998, wupndown, 0, wcrdxtnd, wupndown, driver_device, 0, ROT0, "Video Klein", "Witch Up & Down (Export, 6T/12T ver 1.02)", 0, layout_upndown ) /* Ver 1.02, 1998-10-26 */ -GAMEL( 1998, wupndowna, wupndown, wcrdxtnd, wupndown, driver_device, 0, ROT0, "Video Klein", "Witch Up & Down (Export, 6T/12T ver 0.99, set 1)", 0, layout_upndown ) /* Ver 0.99, 1998-04-09 */ -GAMEL( 1998, wupndownb, wupndown, wcrdxtnd, wupndown, driver_device, 0, ROT0, "Video Klein", "Witch Up & Down (Export, 6T/12T ver 0.99, set 2)", 0, layout_upndown ) /* Ver 0.99, 1998-03-23 */ -GAMEL( 1998, wupndownc, wupndown, wcrdxtnd, wupndown, driver_device, 0, ROT0, "Video Klein", "Witch Up & Down (Export, 6T/12T ver 0.99, set 3)", 0, layout_upndown ) /* Ver 0.99 alt, 1998-05-11 */ -GAMEL( 1998, wupndownd, wupndown, wcrdxtnd, wupndown, driver_device, 0, ROT0, "Video Klein", "Witch Up & Down (Export, 6T/12T ver 0.99T)", 0, layout_upndown ) /* Ver 0.99T, 1998-03-23 */ +GAMEL( 1998, wupndown, 0, wcrdxtnd, wupndown, goldnpkr_state, 0, ROT0, "Video Klein", "Witch Up & Down (Export, 6T/12T ver 1.02)", 0, layout_upndown ) /* Ver 1.02, 1998-10-26 */ +GAMEL( 1998, wupndowna, wupndown, wcrdxtnd, wupndown, goldnpkr_state, 0, ROT0, "Video Klein", "Witch Up & Down (Export, 6T/12T ver 0.99, set 1)", 0, layout_upndown ) /* Ver 0.99, 1998-04-09 */ +GAMEL( 1998, wupndownb, wupndown, wcrdxtnd, wupndown, goldnpkr_state, 0, ROT0, "Video Klein", "Witch Up & Down (Export, 6T/12T ver 0.99, set 2)", 0, layout_upndown ) /* Ver 0.99, 1998-03-23 */ +GAMEL( 1998, wupndownc, wupndown, wcrdxtnd, wupndown, goldnpkr_state, 0, ROT0, "Video Klein", "Witch Up & Down (Export, 6T/12T ver 0.99, set 3)", 0, layout_upndown ) /* Ver 0.99 alt, 1998-05-11 */ +GAMEL( 1998, wupndownd, wupndown, wcrdxtnd, wupndown, goldnpkr_state, 0, ROT0, "Video Klein", "Witch Up & Down (Export, 6T/12T ver 0.99T)", 0, layout_upndown ) /* Ver 0.99T, 1998-03-23 */ GAMEL( 1992, wstrike, 0, wcrdxtnd, wstrike, goldnpkr_state, wstrike, ROT0, "Video Klein", "Witch Strike (Export, 6T/12T ver 1.01A)", 0, layout_goldnpkr ) GAMEL( 1992, wstrikea, wstrike, wcrdxtnd, wstrike, goldnpkr_state, wstrike, ROT0, "Video Klein", "Witch Strike (Export, 6T/12T ver 1.01B)", 0, layout_goldnpkr ) -GAMEL( 1996, wtchjack, 0, wcrdxtnd, wtchjack, driver_device, 0, ROT0, "Video Klein", "Witch Jack (Export, 6T/12T ver 0.87-89)", 0, layout_goldnpkr ) /* Ver 0.87-89 / 1996-10-08 GFX OK */ -GAMEL( 1996, wtchjacka, wtchjack, wcrdxtnd, wtchjack, driver_device, 0, ROT0, "Video Klein", "Witch Jack (Export, 6T/12T ver 0.87-88)", 0, layout_goldnpkr ) /* Ver 0.87-88 / 1996-10-02, GFX OK */ -GAMEL( 1996, wtchjackb, wtchjack, wcrdxtnd, wtchjack, driver_device, 0, ROT0, "Video Klein", "Witch Jack (Export, 6T/12T ver 0.87)", 0, layout_goldnpkr ) /* Ver 0.87 / 1996-07-16, GFX OK */ -GAMEL( 1996, wtchjackc, wtchjack, wcrdxtnd, wtchjack, driver_device, 0, ROT0, "Video Klein", "Witch Jack (Export, 6T/12T ver 0.70S)", MACHINE_IMPERFECT_GRAPHICS, layout_goldnpkr ) /* Ver 0.70S / 1996-03-26 */ -GAMEL( 1996, wtchjackd, wtchjack, wcrdxtnd, wtchjack, driver_device, 0, ROT0, "Video Klein", "Witch Jack (Export, 6T/12T ver 0.70P)", MACHINE_IMPERFECT_GRAPHICS, layout_goldnpkr ) /* Ver 0.70P / 1996-03-26 */ -GAMEL( 1995, wtchjacke, wtchjack, wcrdxtnd, wtchjack, driver_device, 0, ROT0, "Video Klein", "Witch Jack (Export, 6T/12T ver 0.65)", MACHINE_IMPERFECT_GRAPHICS, layout_goldnpkr ) /* Ver 0.65 / 1995-10-19 */ -GAMEL( 1995, wtchjackf, wtchjack, wcrdxtnd, wtchjack, driver_device, 0, ROT0, "Video Klein", "Witch Jack (Export, 6T/12T ver 0.64)", MACHINE_IMPERFECT_GRAPHICS, layout_goldnpkr ) /* Ver 0.64 / 1995-09-13 */ -GAMEL( 1995, wtchjackg, wtchjack, wcrdxtnd, wtchjack, driver_device, 0, ROT0, "Video Klein", "Witch Jack (Export, 6T/12T ver 0.62)", MACHINE_IMPERFECT_GRAPHICS, layout_goldnpkr ) /* Ver 0.62 / 1995-08-02 */ -GAMEL( 1995, wtchjackh, wtchjack, wcrdxtnd, wtchjack, driver_device, 0, ROT0, "Video Klein", "Witch Jack (Export, 6T/12T ver 0.40T)", MACHINE_NOT_WORKING, layout_goldnpkr ) /* Ver 0.40T / 1995-02-27 */ -GAMEL( 1995, wtchjacki, wtchjack, wcrdxtnd, wtchjack, driver_device, 0, ROT0, "Video Klein", "Witch Jack (Export, 6T/12T ver 0.40)", MACHINE_IMPERFECT_GRAPHICS, layout_goldnpkr ) /* Ver 0.40 / 1995-02-27 */ -GAMEL( 1994, wtchjackj, wtchjack, wcrdxtnd, wtchjack, driver_device, 0, ROT0, "Video Klein", "Witch Jackpot (Export, 6T/12T ver 0.25)", MACHINE_IMPERFECT_GRAPHICS, layout_goldnpkr ) /* Ver 0.25 / 1994-11-24 */ +GAMEL( 1996, wtchjack, 0, wcrdxtnd, wtchjack, goldnpkr_state, 0, ROT0, "Video Klein", "Witch Jack (Export, 6T/12T ver 0.87-89)", 0, layout_goldnpkr ) /* Ver 0.87-89 / 1996-10-08 GFX OK */ +GAMEL( 1996, wtchjacka, wtchjack, wcrdxtnd, wtchjack, goldnpkr_state, 0, ROT0, "Video Klein", "Witch Jack (Export, 6T/12T ver 0.87-88)", 0, layout_goldnpkr ) /* Ver 0.87-88 / 1996-10-02, GFX OK */ +GAMEL( 1996, wtchjackb, wtchjack, wcrdxtnd, wtchjack, goldnpkr_state, 0, ROT0, "Video Klein", "Witch Jack (Export, 6T/12T ver 0.87)", 0, layout_goldnpkr ) /* Ver 0.87 / 1996-07-16, GFX OK */ +GAMEL( 1996, wtchjackc, wtchjack, wcrdxtnd, wtchjack, goldnpkr_state, 0, ROT0, "Video Klein", "Witch Jack (Export, 6T/12T ver 0.70S)", MACHINE_IMPERFECT_GRAPHICS, layout_goldnpkr ) /* Ver 0.70S / 1996-03-26 */ +GAMEL( 1996, wtchjackd, wtchjack, wcrdxtnd, wtchjack, goldnpkr_state, 0, ROT0, "Video Klein", "Witch Jack (Export, 6T/12T ver 0.70P)", MACHINE_IMPERFECT_GRAPHICS, layout_goldnpkr ) /* Ver 0.70P / 1996-03-26 */ +GAMEL( 1995, wtchjacke, wtchjack, wcrdxtnd, wtchjack, goldnpkr_state, 0, ROT0, "Video Klein", "Witch Jack (Export, 6T/12T ver 0.65)", MACHINE_IMPERFECT_GRAPHICS, layout_goldnpkr ) /* Ver 0.65 / 1995-10-19 */ +GAMEL( 1995, wtchjackf, wtchjack, wcrdxtnd, wtchjack, goldnpkr_state, 0, ROT0, "Video Klein", "Witch Jack (Export, 6T/12T ver 0.64)", MACHINE_IMPERFECT_GRAPHICS, layout_goldnpkr ) /* Ver 0.64 / 1995-09-13 */ +GAMEL( 1995, wtchjackg, wtchjack, wcrdxtnd, wtchjack, goldnpkr_state, 0, ROT0, "Video Klein", "Witch Jack (Export, 6T/12T ver 0.62)", MACHINE_IMPERFECT_GRAPHICS, layout_goldnpkr ) /* Ver 0.62 / 1995-08-02 */ +GAMEL( 1995, wtchjackh, wtchjack, wcrdxtnd, wtchjack, goldnpkr_state, 0, ROT0, "Video Klein", "Witch Jack (Export, 6T/12T ver 0.40T)", MACHINE_NOT_WORKING, layout_goldnpkr ) /* Ver 0.40T / 1995-02-27 */ +GAMEL( 1995, wtchjacki, wtchjack, wcrdxtnd, wtchjack, goldnpkr_state, 0, ROT0, "Video Klein", "Witch Jack (Export, 6T/12T ver 0.40)", MACHINE_IMPERFECT_GRAPHICS, layout_goldnpkr ) /* Ver 0.40 / 1995-02-27 */ +GAMEL( 1994, wtchjackj, wtchjack, wcrdxtnd, wtchjack, goldnpkr_state, 0, ROT0, "Video Klein", "Witch Jackpot (Export, 6T/12T ver 0.25)", MACHINE_IMPERFECT_GRAPHICS, layout_goldnpkr ) /* Ver 0.25 / 1994-11-24 */ /*************************************** OTHER SETS ***************************************/ /* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS LAYOUT */ -GAMEL( 1981, pmpoker, 0, goldnpkr, pmpoker, driver_device, 0, ROT0, "PM / Beck Elektronik", "PlayMan Poker (German)", 0, layout_pmpoker ) -GAMEL( 198?, royale, 0, goldnpkr, goldnpkr, driver_device, 0, ROT0, "", "Royale (set 1)", 0, layout_goldnpkr ) -GAMEL( 198?, royalea, royale, goldnpkr, goldnpkr, driver_device, 0, ROT0, "", "Royale (set 2)", 0, layout_goldnpkr ) -GAME( 1993, sloco93, 0, witchcrd, sloco93, driver_device, 0, ROT0, "", "Super Loco 93 (Spanish, set 1)", 0 ) -GAME( 1993, sloco93a, sloco93, witchcrd, sloco93, driver_device, 0, ROT0, "", "Super Loco 93 (Spanish, set 2)", 0 ) -GAME( 198?, maverik, 0, witchcrd, bsuerte, driver_device, 0, ROT0, "", "Maverik", 0 ) -GAMEL( 1986, brasil86, 0, witchcrd, bsuerte, driver_device, 0, ROT0, "", "Brasil 86", 0, layout_goldnpkr ) -GAMEL( 1987, brasil87, 0, witchcrd, bsuerte, driver_device, 0, ROT0, "", "Brasil 87", 0, layout_goldnpkr ) -GAMEL( 1989, brasil89, 0, witchcrd, bsuerte, driver_device, 0, ROT0, "", "Brasil 89 (set 1)", 0, layout_goldnpkr ) -GAMEL( 1989, brasil89a, brasil89, witchcrd, bsuerte, driver_device, 0, ROT0, "", "Brasil 89 (set 2)", 0, layout_goldnpkr ) -GAME( 1993, brasil93, 0, witchcrd, bsuerte, driver_device, 0, ROT0, "", "Brasil 93", 0 ) // no lamps -GAME( 1991, poker91, 0, witchcrd, poker91, driver_device, 0, ROT0, "", "Poker 91", 0 ) -GAME( 198?, genie, 0, genie, genie, driver_device, 0, ROT0, "Video Fun Games Ltd.", "Genie (ICP-1, set 1)", 0 ) -GAME( 198?, geniea, genie, geniea, geniea, driver_device, 0, ROT0, "", "Genie (ICP-1, set 2)", 0 ) -GAMEL( 1983, silverga, 0, goldnpkr, goldnpkr, driver_device, 0, ROT0, "", "Silver Game", 0, layout_goldnpkr ) -GAME( 1987, caspoker, 0, goldnpkr, caspoker, driver_device, 0, ROT0, "PM / Beck Elektronik", "Casino Poker (Ver PM86LO-35-5, German)", MACHINE_IMPERFECT_COLORS ) - -GAMEL( 198?, superdbl, pottnpkr, goldnpkr, goldnpkr, driver_device, 0, ROT0, "Karateco", "Super Double (French)", 0, layout_goldnpkr ) -GAME( 198?, pokerdub, 0, pottnpkr, goldnpkr, driver_device, 0, ROT0, "", "unknown French poker game", MACHINE_NOT_WORKING ) // lacks of 2nd program ROM. +GAMEL( 1981, pmpoker, 0, goldnpkr, pmpoker, goldnpkr_state, 0, ROT0, "PM / Beck Elektronik", "PlayMan Poker (German)", 0, layout_pmpoker ) +GAMEL( 198?, royale, 0, goldnpkr, goldnpkr, goldnpkr_state, 0, ROT0, "", "Royale (set 1)", 0, layout_goldnpkr ) +GAMEL( 198?, royalea, royale, goldnpkr, goldnpkr, goldnpkr_state, 0, ROT0, "", "Royale (set 2)", 0, layout_goldnpkr ) +GAME( 1993, sloco93, 0, witchcrd, sloco93, goldnpkr_state, 0, ROT0, "", "Super Loco 93 (Spanish, set 1)", 0 ) +GAME( 1993, sloco93a, sloco93, witchcrd, sloco93, goldnpkr_state, 0, ROT0, "", "Super Loco 93 (Spanish, set 2)", 0 ) +GAME( 198?, maverik, 0, witchcrd, bsuerte, goldnpkr_state, 0, ROT0, "", "Maverik", 0 ) +GAMEL( 1986, brasil86, 0, witchcrd, bsuerte, goldnpkr_state, 0, ROT0, "", "Brasil 86", 0, layout_goldnpkr ) +GAMEL( 1987, brasil87, 0, witchcrd, bsuerte, goldnpkr_state, 0, ROT0, "", "Brasil 87", 0, layout_goldnpkr ) +GAMEL( 1989, brasil89, 0, witchcrd, bsuerte, goldnpkr_state, 0, ROT0, "", "Brasil 89 (set 1)", 0, layout_goldnpkr ) +GAMEL( 1989, brasil89a, brasil89, witchcrd, bsuerte, goldnpkr_state, 0, ROT0, "", "Brasil 89 (set 2)", 0, layout_goldnpkr ) +GAME( 1993, brasil93, 0, witchcrd, bsuerte, goldnpkr_state, 0, ROT0, "", "Brasil 93", 0 ) // no lamps +GAME( 1991, poker91, 0, witchcrd, poker91, goldnpkr_state, 0, ROT0, "", "Poker 91", 0 ) +GAME( 198?, genie, 0, genie, genie, goldnpkr_state, 0, ROT0, "Video Fun Games Ltd.", "Genie (ICP-1, set 1)", 0 ) +GAME( 198?, geniea, genie, geniea, geniea, goldnpkr_state, 0, ROT0, "", "Genie (ICP-1, set 2)", 0 ) +GAMEL( 1983, silverga, 0, goldnpkr, goldnpkr, goldnpkr_state, 0, ROT0, "", "Silver Game", 0, layout_goldnpkr ) +GAME( 1987, caspoker, 0, goldnpkr, caspoker, goldnpkr_state, 0, ROT0, "PM / Beck Elektronik", "Casino Poker (Ver PM86LO-35-5, German)", MACHINE_IMPERFECT_COLORS ) + +GAMEL( 198?, superdbl, pottnpkr, goldnpkr, goldnpkr, goldnpkr_state, 0, ROT0, "Karateco", "Super Double (French)", 0, layout_goldnpkr ) +GAME( 198?, pokerdub, 0, pottnpkr, goldnpkr, goldnpkr_state, 0, ROT0, "", "unknown French poker game", MACHINE_NOT_WORKING ) // lacks of 2nd program ROM. GAME( 198?, pokerduc, 0, goldnpkr, goldnpkr, goldnpkr_state, icp1db, ROT0, "", "unknown encrypted poker game", MACHINE_NOT_WORKING ) // encrypted. -GAME( 198?, pokersis, 0, bchancep, goldnpkr, driver_device, 0, ROT0, "Sisteme France", "unknown Sisteme France Poker", MACHINE_NOT_WORKING ) // fix banking (4 prgs?)... +GAME( 198?, pokersis, 0, bchancep, goldnpkr, goldnpkr_state, 0, ROT0, "Sisteme France", "unknown Sisteme France Poker", MACHINE_NOT_WORKING ) // fix banking (4 prgs?)... GAMEL( 198?, bchancep, 0, bchancep, goldnpkr, goldnpkr_state, bchancep, ROT0, "", "Bonne Chance! (Golden Poker prequel HW, set 1)", MACHINE_NOT_WORKING, layout_goldnpkr ) -GAMEL( 198?, bchanceq, 0, goldnpkr, goldnpkr, driver_device, 0, ROT0, "", "Bonne Chance! (Golden Poker prequel HW, set 2)", MACHINE_NOT_WORKING, layout_goldnpkr ) +GAMEL( 198?, bchanceq, 0, goldnpkr, goldnpkr, goldnpkr_state, 0, ROT0, "", "Bonne Chance! (Golden Poker prequel HW, set 2)", MACHINE_NOT_WORKING, layout_goldnpkr ) -GAME( 1987, pokermon, 0, mondial, mondial, driver_device, 0, ROT0, "", "Mundial/Mondial (Italian/French)", 0 ) // banked selectable program -GAME( 1998, super98, bsuerte, witchcrd, super98, driver_device, 0, ROT0, "", "Super 98 (3-hands, ICP-1)", MACHINE_NOT_WORKING ) // program checks zeropage registers for changes... +GAME( 1987, pokermon, 0, mondial, mondial, goldnpkr_state, 0, ROT0, "", "Mundial/Mondial (Italian/French)", 0 ) // banked selectable program +GAME( 1998, super98, bsuerte, witchcrd, super98, goldnpkr_state, 0, ROT0, "", "Super 98 (3-hands, ICP-1)", MACHINE_NOT_WORKING ) // program checks zeropage registers for changes... -GAME( 198?, animpkr, 0, pottnpkr, goldnpkr, driver_device, 0, ROT0, "", "unknown animal-themed game (bottom)", MACHINE_NOT_WORKING ) // banked selectable program (bottom). -GAME( 198?, animpkra, animpkr, pottnpkr, goldnpkr, driver_device, 0, ROT0, "", "unknown animal-themed game (top)", MACHINE_NOT_WORKING ) // banked selectable program (top). +GAME( 198?, animpkr, 0, pottnpkr, goldnpkr, goldnpkr_state, 0, ROT0, "", "unknown animal-themed game (bottom)", MACHINE_NOT_WORKING ) // banked selectable program (bottom). +GAME( 198?, animpkra, animpkr, pottnpkr, goldnpkr, goldnpkr_state, 0, ROT0, "", "unknown animal-themed game (top)", MACHINE_NOT_WORKING ) // banked selectable program (top). diff --git a/src/mame/drivers/goldstar.cpp b/src/mame/drivers/goldstar.cpp index 4b2f2b9f231..3c6b9ef14cb 100644 --- a/src/mame/drivers/goldstar.cpp +++ b/src/mame/drivers/goldstar.cpp @@ -8059,7 +8059,7 @@ WRITE8_MEMBER(goldstar_state::ay8910_outputb_w) } -static MACHINE_CONFIG_START( goldstar, goldstar_state ) +static MACHINE_CONFIG_START( goldstar ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, CPU_CLOCK) @@ -8090,13 +8090,13 @@ static MACHINE_CONFIG_START( goldstar, goldstar_state ) MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW3")) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) - MCFG_OKIM6295_ADD("oki", OKI_CLOCK, OKIM6295_PIN7_HIGH) /* clock frequency & pin 7 not verified */ + MCFG_OKIM6295_ADD("oki", OKI_CLOCK, PIN7_HIGH) /* clock frequency & pin 7 not verified */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( goldstbl, goldstar_state ) +static MACHINE_CONFIG_START( goldstbl ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, CPU_CLOCK) @@ -8127,7 +8127,7 @@ static MACHINE_CONFIG_START( goldstbl, goldstar_state ) MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW3")) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) - MCFG_OKIM6295_ADD("oki", OKI_CLOCK, OKIM6295_PIN7_HIGH) /* clock frequency & pin 7 not verified */ + MCFG_OKIM6295_ADD("oki", OKI_CLOCK, PIN7_HIGH) /* clock frequency & pin 7 not verified */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -8140,7 +8140,7 @@ static MACHINE_CONFIG_DERIVED( goldfrui, goldstbl ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( star100, sanghopm_state ) +static MACHINE_CONFIG_START( star100 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, CPU_CLOCK) @@ -8173,13 +8173,13 @@ static MACHINE_CONFIG_START( star100, sanghopm_state ) MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW6")) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) - MCFG_OKIM6295_ADD("oki", OKI_CLOCK, OKIM6295_PIN7_HIGH) /* clock frequency & pin 7 not verified */ + MCFG_OKIM6295_ADD("oki", OKI_CLOCK, PIN7_HIGH) /* clock frequency & pin 7 not verified */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( super9, goldstar_state ) +static MACHINE_CONFIG_START( super9 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, CPU_CLOCK) @@ -8212,7 +8212,7 @@ static MACHINE_CONFIG_START( super9, goldstar_state ) MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW3")) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) - MCFG_OKIM6295_ADD("oki", OKI_CLOCK, OKIM6295_PIN7_HIGH) /* clock frequency & pin 7 not verified */ + MCFG_OKIM6295_ADD("oki", OKI_CLOCK, PIN7_HIGH) /* clock frequency & pin 7 not verified */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -8277,7 +8277,7 @@ PALETTE_INIT_MEMBER(goldstar_state, lucky8) } -static MACHINE_CONFIG_START( ncb3, cb3_state ) +static MACHINE_CONFIG_START( ncb3 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, CPU_CLOCK) @@ -8347,7 +8347,7 @@ static MACHINE_CONFIG_DERIVED( cm97, ncb3 ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( wcherry, goldstar_state ) +static MACHINE_CONFIG_START( wcherry ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, CPU_CLOCK) @@ -8396,7 +8396,7 @@ static MACHINE_CONFIG_START( wcherry, goldstar_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( cm, cmaster_state ) +static MACHINE_CONFIG_START( cm ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, CPU_CLOCK) @@ -8443,7 +8443,7 @@ static MACHINE_CONFIG_DERIVED( cmasterc, cm ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( cmast91, goldstar_state ) +static MACHINE_CONFIG_START( cmast91 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, CPU_CLOCK) @@ -8493,7 +8493,7 @@ INTERRUPT_GEN_MEMBER(wingco_state::masked_irq) device.execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE); } -static MACHINE_CONFIG_START( lucky8, wingco_state ) +static MACHINE_CONFIG_START( lucky8 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, CPU_CLOCK) @@ -8548,7 +8548,7 @@ static MACHINE_CONFIG_START( lucky8, wingco_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( bingowng, wingco_state ) +static MACHINE_CONFIG_START( bingowng ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, CPU_CLOCK) @@ -8670,7 +8670,7 @@ PALETTE_INIT_MEMBER(wingco_state, magodds) } } -static MACHINE_CONFIG_START( magodds, wingco_state ) +static MACHINE_CONFIG_START( magodds ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, CPU_CLOCK) @@ -8725,7 +8725,7 @@ static MACHINE_CONFIG_START( magodds, wingco_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( kkotnoli, goldstar_state ) +static MACHINE_CONFIG_START( kkotnoli ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, CPU_CLOCK) @@ -8769,7 +8769,7 @@ static MACHINE_CONFIG_START( kkotnoli, goldstar_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( ladylinr, goldstar_state ) +static MACHINE_CONFIG_START( ladylinr ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, CPU_CLOCK) @@ -8812,7 +8812,7 @@ static MACHINE_CONFIG_START( ladylinr, goldstar_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( wcat3, wingco_state ) +static MACHINE_CONFIG_START( wcat3 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, CPU_CLOCK) @@ -8869,7 +8869,7 @@ MACHINE_CONFIG_END /* diff with cm machine driver: gfxdecode, OKI & portmap */ -static MACHINE_CONFIG_START( amcoe1, cmaster_state ) +static MACHINE_CONFIG_START( amcoe1 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, CPU_CLOCK) @@ -8910,7 +8910,7 @@ static MACHINE_CONFIG_START( amcoe1, cmaster_state ) MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW5")) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) - MCFG_OKIM6295_ADD("oki", OKI_CLOCK, OKIM6295_PIN7_HIGH) /* clock frequency & pin 7 not verified */ + MCFG_OKIM6295_ADD("oki", OKI_CLOCK, PIN7_HIGH) /* clock frequency & pin 7 not verified */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -8925,7 +8925,7 @@ MACHINE_CONFIG_END /* diff with cm machine driver: gfxdecode, AY8910 volume & portmap */ -static MACHINE_CONFIG_START( amcoe2, cmaster_state ) +static MACHINE_CONFIG_START( amcoe2 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, CPU_CLOCK) @@ -8983,7 +8983,7 @@ INTERRUPT_GEN_MEMBER(unkch_state::vblank_irq) device.execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE); } -static MACHINE_CONFIG_START( unkch, unkch_state ) +static MACHINE_CONFIG_START( unkch ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, CPU_CLOCK) @@ -9022,7 +9022,7 @@ MACHINE_CONFIG_END // hw unknown - should be somewhat similar to cm -static MACHINE_CONFIG_START( pkrmast, goldstar_state ) +static MACHINE_CONFIG_START( pkrmast ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, CPU_CLOCK) @@ -9055,7 +9055,7 @@ static MACHINE_CONFIG_START( pkrmast, goldstar_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( megaline, unkch_state ) +static MACHINE_CONFIG_START( megaline ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, CPU_CLOCK) @@ -9105,7 +9105,7 @@ static MACHINE_CONFIG_START( megaline, unkch_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( bonusch, unkch_state ) +static MACHINE_CONFIG_START( bonusch ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_12MHz / 2) @@ -16008,30 +16008,30 @@ DRIVER_INIT_MEMBER(wingco_state, flam7_tw) YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS LAYOUT */ GAMEL( 199?, goldstar, 0, goldstar, goldstar, goldstar_state, goldstar, ROT0, "IGS", "Golden Star", 0, layout_goldstar ) -GAMEL( 199?, goldstbl, goldstar, goldstbl, goldstar, driver_device, 0, ROT0, "IGS", "Golden Star (Blue version)", 0, layout_goldstar ) -GAME( 199?, moonlght, goldstar, moonlght, goldstar, driver_device, 0, ROT0, "bootleg", "Moon Light (v.0629, low program)", 0 ) -GAME( 199?, moonlghta, goldstar, moonlght, goldstar, driver_device, 0, ROT0, "bootleg", "Moon Light (v.0629, high program)", 0 ) -GAME( 199?, moonlghtb, goldstar, moonlght, goldstar, driver_device, 0, ROT0, "bootleg", "Moon Light (v.02L0A, low program)", MACHINE_IMPERFECT_COLORS ) // need to check the odd palette value at 0xc780. should be black. -GAME( 199?, moonlghtc, goldstar, moonlght, goldstar, driver_device, 0, ROT0, "bootleg", "Moon Light (v.02L0A, high program, alt gfx)", MACHINE_IMPERFECT_COLORS ) // need to check the odd palette value at 0xc780. should be black. +GAMEL( 199?, goldstbl, goldstar, goldstbl, goldstar, goldstar_state, 0, ROT0, "IGS", "Golden Star (Blue version)", 0, layout_goldstar ) +GAME( 199?, moonlght, goldstar, moonlght, goldstar, goldstar_state, 0, ROT0, "bootleg", "Moon Light (v.0629, low program)", 0 ) +GAME( 199?, moonlghta, goldstar, moonlght, goldstar, goldstar_state, 0, ROT0, "bootleg", "Moon Light (v.0629, high program)", 0 ) +GAME( 199?, moonlghtb, goldstar, moonlght, goldstar, goldstar_state, 0, ROT0, "bootleg", "Moon Light (v.02L0A, low program)", MACHINE_IMPERFECT_COLORS ) // need to check the odd palette value at 0xc780. should be black. +GAME( 199?, moonlghtc, goldstar, moonlght, goldstar, goldstar_state, 0, ROT0, "bootleg", "Moon Light (v.02L0A, high program, alt gfx)", MACHINE_IMPERFECT_COLORS ) // need to check the odd palette value at 0xc780. should be black. GAMEL( 199?, chrygld, 0, chrygld, chrygld, cb3_state, chrygld, ROT0, "bootleg", "Cherry Gold I (set 1)", 0, layout_chrygld ) GAMEL( 199?, chry10, 0, chrygld, chry10, cb3_state, chry10, ROT0, "bootleg", "Cherry 10 (bootleg with PIC16F84)", 0, layout_chrygld ) -GAME( 199?, goldfrui, goldstar, goldfrui, goldstar, driver_device, 0, ROT0, "bootleg", "Gold Fruit", 0 ) // maybe fullname should be 'Gold Fruit (main 40%)' +GAME( 199?, goldfrui, goldstar, goldfrui, goldstar, goldstar_state, 0, ROT0, "bootleg", "Gold Fruit", 0 ) // maybe fullname should be 'Gold Fruit (main 40%)' GAME( 2001, super9, goldstar, super9, goldstar, goldstar_state, super9, ROT0, "Playmark", "Super Nove (Playmark)", MACHINE_NOT_WORKING ) // need to decode gfx and see the program loops/reset... GAME( 2001, wcherry, 0, wcherry, chrygld, goldstar_state, wcherry, ROT0, "bootleg", "Win Cherry (ver 0.16 - 19990219)", MACHINE_NOT_WORKING ) -GAME( 199?, star100, 0, star100, star100, driver_device, 0, ROT0, "Sang Ho", "Ming Xing 100 (Star 100)", MACHINE_IMPERFECT_COLORS ) +GAME( 199?, star100, 0, star100, star100, sanghopm_state, 0, ROT0, "Sang Ho", "Ming Xing 100 (Star 100)", MACHINE_IMPERFECT_COLORS ) // are these really dyna, or bootlegs? -GAMEL( 199?, ncb3, 0, ncb3, ncb3, driver_device, 0, ROT0, "Dyna", "Cherry Bonus III (ver.1.40, set 1)", 0, layout_cherryb3 ) -GAMEL( 199?, cb3a, ncb3, ncb3, cb3a, driver_device, 0, ROT0, "Dyna", "Cherry Bonus III (ver.1.40, set 2)", 0, layout_cherryb3 ) +GAMEL( 199?, ncb3, 0, ncb3, ncb3, cb3_state, 0, ROT0, "Dyna", "Cherry Bonus III (ver.1.40, set 1)", 0, layout_cherryb3 ) +GAMEL( 199?, cb3a, ncb3, ncb3, cb3a, cb3_state, 0, ROT0, "Dyna", "Cherry Bonus III (ver.1.40, set 2)", 0, layout_cherryb3 ) GAMEL( 199?, cb3, ncb3, ncb3, ncb3, cb3_state, cb3, ROT0, "Dyna", "Cherry Bonus III (ver.1.40, encrypted)", 0, layout_cherryb3 ) GAMEL( 199?, cb3b, ncb3, cherrys, ncb3, cb3_state, cherrys, ROT0, "Dyna", "Cherry Bonus III (alt)", 0, layout_cherryb3 ) GAME( 199?, cb3c, ncb3, cb3c, chrygld, cb3_state, cb3, ROT0, "bootleg", "Cherry Bonus III (alt, set 2)", MACHINE_NOT_WORKING) -GAMEL( 199?, cb3d, ncb3, ncb3, ncb3, driver_device, 0, ROT0, "bootleg", "Cherry Bonus III (set 3)", 0, layout_cherryb3 ) +GAMEL( 199?, cb3d, ncb3, ncb3, ncb3, cb3_state, 0, ROT0, "bootleg", "Cherry Bonus III (set 3)", 0, layout_cherryb3 ) GAMEL( 199?, cb3e, ncb3, cb3e, chrygld, cb3_state, cb3e, ROT0, "bootleg", "Cherry Bonus III (set 4, encrypted bootleg)", 0, layout_chrygld ) GAMEL( 199?, chryglda, ncb3, cb3e, chrygld, cb3_state, cb3e, ROT0, "bootleg", "Cherry Gold I (set 2, encrypted bootleg)", 0, layout_chrygld ) // Runs in CB3e hardware. -GAME( 1996, cmast97, ncb3, cm97, chrygld, driver_device, 0, ROT0, "Dyna", "Cherry Master '97", MACHINE_NOT_WORKING) // fix prom decode +GAME( 1996, cmast97, ncb3, cm97, chrygld, cb3_state, 0, ROT0, "Dyna", "Cherry Master '97", MACHINE_NOT_WORKING) // fix prom decode // looks like a hack of Cherry Bonus 3 GAME( 199?, chryangl, ncb3, cm, chryangl, cmaster_state, cmv4, ROT0, "", "Cherry Angel", MACHINE_NOT_WORKING ) @@ -16049,7 +16049,7 @@ GAMEL( 1992, cmv4, 0, cm, cmv4, cmaster_state, cmv4, GAMEL( 1992, cmv4a, cmv4, cm, cmv4, cmaster_state, cmv4, ROT0, "Dyna", "Cherry Master (ver.4, set 2)", MACHINE_NOT_WORKING, layout_cmv4 ) // stealth game? GAMEL( 199?, cmwm, cmv4, cm, cmv4, cmaster_state, cmv4, ROT0, "Dyna", "Cherry Master (Watermelon bootleg / hack)", 0, layout_cmv4 ) // CM Fruit Bonus ver.2 T bootleg/hack GAMEL( 1995, cmfun, cmv4, cm, cmv4, cmaster_state, cmv4, ROT0, "Dyna", "Cherry Master (Fun USA v2.5 bootleg / hack)", 0, layout_cmv4 ) -GAMEL( 1991, cmaster, 0, cm, cmaster, driver_device, 0, ROT0, "Dyna", "Cherry Master I (ver.1.01, set 1)", 0, layout_cmaster ) +GAMEL( 1991, cmaster, 0, cm, cmaster, cmaster_state, 0, ROT0, "Dyna", "Cherry Master I (ver.1.01, set 1)", 0, layout_cmaster ) GAMEL( 1991, cmasterb, cmaster, cm, cmasterb, cmaster_state, cmv4, ROT0, "Dyna", "Cherry Master I (ver.1.01, set 2)", 0, layout_cmasterb ) GAMEL( 1991, cmezspin, cmaster, cm, cmezspin, cmaster_state, cmv4, ROT0, "Dyna", "Cherry Master I (E-Z Spin bootleg / hack)", 0, layout_cmezspin ) // CM Fruit Bonus 55 ver.2 bootleg/hack GAMEL( 1991, cmasterc, cmaster, cmasterc, cmasterc, cmaster_state, cmv4, ROT0, "Dyna", "Cherry Master I (ver.1.01, set 3)", 0, layout_cmasterc ) @@ -16062,9 +16062,9 @@ GAMEL( 1991, cmasterh, cmaster, cm, cmasterb, cmaster_state, cmv4, GAMEL( 1991, tonypok, 0, cm, tonypok, cmaster_state, tonypok, ROT0, "Corsica", "Poker Master (Tony-Poker V3.A, hack?)", 0 , layout_tonypok ) -GAME( 199?, jkrmast, 0, pkrmast, pkrmast, driver_device, 0, ROT0, "", "Joker Master", MACHINE_NOT_WORKING ) // encrypted? -GAME( 199?, pkrmast, jkrmast, pkrmast, pkrmast, driver_device, 0, ROT0, "", "Poker Master (ED-1993 set 1)", MACHINE_NOT_WORKING ) // incomplete dump + encrypted? -GAME( 1993, pkrmasta, jkrmast, pkrmast, pkrmast, driver_device, 0, ROT0, "", "Poker Master (ED-1993 set 2)", MACHINE_NOT_WORKING ) // incomplete dump + encrypted? +GAME( 199?, jkrmast, 0, pkrmast, pkrmast, goldstar_state, 0, ROT0, "", "Joker Master", MACHINE_NOT_WORKING ) // encrypted? +GAME( 199?, pkrmast, jkrmast, pkrmast, pkrmast, goldstar_state, 0, ROT0, "", "Poker Master (ED-1993 set 1)", MACHINE_NOT_WORKING ) // incomplete dump + encrypted? +GAME( 1993, pkrmasta, jkrmast, pkrmast, pkrmast, goldstar_state, 0, ROT0, "", "Poker Master (ED-1993 set 2)", MACHINE_NOT_WORKING ) // incomplete dump + encrypted? GAME( 1991, cmast91, 0, cmast91, cmast91, goldstar_state, cmast91, ROT0, "Dyna", "Cherry Master '91 (ver.1.30)", 0 ) @@ -16075,33 +16075,33 @@ GAME( 1993, aplan, 0, cm, cmast99, cmaster_state, cmv4, // --- Wing W-4 hardware --- -GAMEL( 1989, lucky8, 0, lucky8, lucky8, driver_device, 0, ROT0, "Wing Co., Ltd.", "New Lucky 8 Lines (set 1, W-4)", 0, layout_lucky8 ) // 2 control sets... +GAMEL( 1989, lucky8, 0, lucky8, lucky8, wingco_state, 0, ROT0, "Wing Co., Ltd.", "New Lucky 8 Lines (set 1, W-4)", 0, layout_lucky8 ) // 2 control sets... GAMEL( 1989, lucky8a, lucky8, lucky8, lucky8a, wingco_state, lucky8a, ROT0, "Wing Co., Ltd.", "New Lucky 8 Lines (set 2, W-4)", 0, layout_lucky8 ) // 2 control sets... -GAMEL( 1989, lucky8b, lucky8, lucky8, lucky8b, driver_device, 0, ROT0, "Wing Co., Ltd.", "New Lucky 8 Lines (set 3, W-4, extended gfx)", 0, layout_lucky8p1 ) // only 1 control set... +GAMEL( 1989, lucky8b, lucky8, lucky8, lucky8b, wingco_state, 0, ROT0, "Wing Co., Ltd.", "New Lucky 8 Lines (set 3, W-4, extended gfx)", 0, layout_lucky8p1 ) // only 1 control set... GAMEL( 1989, lucky8c, lucky8, lucky8, lucky8, wingco_state, lucky8a, ROT0, "Wing Co., Ltd.", "New Lucky 8 Lines (set 4, W-4)", 0, layout_lucky8 ) // 2 control sets... -GAMEL( 1989, lucky8d, lucky8, lucky8, lucky8d, driver_device, 0, ROT0, "Wing Co., Ltd.", "New Lucky 8 Lines (set 5, W-4, main 40%, d-up 60%)", 0, layout_lucky8 ) // 2 control sets... -GAMEL( 1989, lucky8e, lucky8, lucky8, lucky8d, driver_device, 0, ROT0, "Wing Co., Ltd.", "New Lucky 8 Lines (set 6, W-4, main 40%, d-up 60%)", 0, layout_lucky8 ) // 2 control sets... -GAMEL( 198?, ns8lines, 0, lucky8, lucky8b, driver_device, 0, ROT0, "", "New Lucky 8 Lines / New Super 8 Lines (W-4)", 0, layout_lucky8p1 ) // only 1 control set... -GAMEL( 1985, ns8linesa, ns8lines, lucky8, lucky8b, driver_device, 0, ROT0, "Yamate (bootleg)", "New Lucky 8 Lines / New Super 8 Lines (W-4, Lucky97 HW)", 0, layout_lucky8p1 ) // only 1 control set... -GAMEL( 198?, ns8linew, ns8lines, lucky8, ns8linew, driver_device, 0, ROT0, "", "New Lucky 8 Lines / New Super 8 Lines (F-5, Witch Bonus)", 0, layout_lucky8 ) // 2 control sets... -GAMEL( 198?, ns8linewa, ns8lines, lucky8, ns8linwa, driver_device, 0, ROT0, "", "New Lucky 8 Lines / New Super 8 Lines (W-4, Witch Bonus)", 0, layout_lucky8p1 ) // only 1 control set... -GAME( 198?, luckybar, 0, lucky8, ns8linew, driver_device, 0, ROT0, "", "Lucky Bar (W-4 with mc68705 MCU)", MACHINE_NOT_WORKING ) // MC68705 MCU -GAME( 198?, chryangla, ncb3, lucky8, ns8linew, driver_device, 0, ROT0, "", "Cherry Angel (encrypted, W-4 hardware)", MACHINE_NOT_WORKING ) -GAMEL( 198?, kkotnoli, 0, kkotnoli, kkotnoli, driver_device, 0, ROT0, "hack", "Kkot No Li (Kill the Bees)", MACHINE_IMPERFECT_COLORS, layout_lucky8 ) -GAME( 198?, ladylinr, 0, ladylinr, ladylinr, driver_device, 0, ROT0, "TAB Austria", "Lady Liner", 0 ) -GAME( 198?, wcat3, 0, wcat3, lucky8, driver_device, 0, ROT0, "E.A.I.", "Wild Cat 3", MACHINE_NOT_WORKING ) +GAMEL( 1989, lucky8d, lucky8, lucky8, lucky8d, wingco_state, 0, ROT0, "Wing Co., Ltd.", "New Lucky 8 Lines (set 5, W-4, main 40%, d-up 60%)", 0, layout_lucky8 ) // 2 control sets... +GAMEL( 1989, lucky8e, lucky8, lucky8, lucky8d, wingco_state, 0, ROT0, "Wing Co., Ltd.", "New Lucky 8 Lines (set 6, W-4, main 40%, d-up 60%)", 0, layout_lucky8 ) // 2 control sets... +GAMEL( 198?, ns8lines, 0, lucky8, lucky8b, wingco_state, 0, ROT0, "", "New Lucky 8 Lines / New Super 8 Lines (W-4)", 0, layout_lucky8p1 ) // only 1 control set... +GAMEL( 1985, ns8linesa, ns8lines, lucky8, lucky8b, wingco_state, 0, ROT0, "Yamate (bootleg)", "New Lucky 8 Lines / New Super 8 Lines (W-4, Lucky97 HW)", 0, layout_lucky8p1 ) // only 1 control set... +GAMEL( 198?, ns8linew, ns8lines, lucky8, ns8linew, wingco_state, 0, ROT0, "", "New Lucky 8 Lines / New Super 8 Lines (F-5, Witch Bonus)", 0, layout_lucky8 ) // 2 control sets... +GAMEL( 198?, ns8linewa, ns8lines, lucky8, ns8linwa, wingco_state, 0, ROT0, "", "New Lucky 8 Lines / New Super 8 Lines (W-4, Witch Bonus)", 0, layout_lucky8p1 ) // only 1 control set... +GAME( 198?, luckybar, 0, lucky8, ns8linew, wingco_state, 0, ROT0, "", "Lucky Bar (W-4 with mc68705 MCU)", MACHINE_NOT_WORKING ) // MC68705 MCU +GAME( 198?, chryangla, ncb3, lucky8, ns8linew, wingco_state, 0, ROT0, "", "Cherry Angel (encrypted, W-4 hardware)", MACHINE_NOT_WORKING ) +GAMEL( 198?, kkotnoli, 0, kkotnoli, kkotnoli, goldstar_state, 0, ROT0, "hack", "Kkot No Li (Kill the Bees)", MACHINE_IMPERFECT_COLORS, layout_lucky8 ) +GAME( 198?, ladylinr, 0, ladylinr, ladylinr, goldstar_state, 0, ROT0, "TAB Austria", "Lady Liner", 0 ) +GAME( 198?, wcat3, 0, wcat3, lucky8, wingco_state, 0, ROT0, "E.A.I.", "Wild Cat 3", MACHINE_NOT_WORKING ) -GAME( 1985, luckylad, 0, lucky8, luckylad, driver_device, 0, ROT0, "Wing Co., Ltd.", "Lucky Lady (Wing, encrypted)", MACHINE_NOT_WORKING ) // encrypted (see notes in rom_load)... -GAME( 1991, megaline, 0, megaline, megaline, driver_device, 0, ROT0, "Fun World", "Mega Lines", MACHINE_NOT_WORKING ) +GAME( 1985, luckylad, 0, lucky8, luckylad, wingco_state, 0, ROT0, "Wing Co., Ltd.", "Lucky Lady (Wing, encrypted)", MACHINE_NOT_WORKING ) // encrypted (see notes in rom_load)... +GAME( 1991, megaline, 0, megaline, megaline, unkch_state, 0, ROT0, "Fun World", "Mega Lines", MACHINE_NOT_WORKING ) -GAMEL( 1993, bingowng, 0, bingowng, bingowng, driver_device, 0, ROT0, "Wing Co., Ltd.", "Bingo (set 1)", 0, layout_bingowng ) -GAMEL( 1993, bingownga, bingowng, bingownga,bingownga,driver_device, 0, ROT0, "Wing Co., Ltd.", "Bingo (set 2)", 0, layout_bingowng ) +GAMEL( 1993, bingowng, 0, bingowng, bingowng, wingco_state, 0, ROT0, "Wing Co., Ltd.", "Bingo (set 1)", 0, layout_bingowng ) +GAMEL( 1993, bingownga, bingowng, bingownga,bingownga,wingco_state, 0, ROT0, "Wing Co., Ltd.", "Bingo (set 2)", 0, layout_bingowng ) -GAME( 2002, mbs2euro, 0, mbstar, mbstar, driver_device, 0, ROT0, "Auto-Data Graz", "Mega Bonus Star II (Euro, Millennium Edition)", MACHINE_NOT_WORKING ) // need more work in memory map, inputs, and reels alignment. +GAME( 2002, mbs2euro, 0, mbstar, mbstar, wingco_state, 0, ROT0, "Auto-Data Graz", "Mega Bonus Star II (Euro, Millennium Edition)", MACHINE_NOT_WORKING ) // need more work in memory map, inputs, and reels alignment. // --- Flaming 7's hardware (W-4 derivative) --- -GAME( 199?, fl7_3121, 0, flam7_w4, flam7_w4, driver_device, 0, ROT0, "Cyberdyne Systems", "Flaming 7 (W4 Hardware, Red, White & Blue 7's + Hollywood Nights)", 0 ) +GAME( 199?, fl7_3121, 0, flam7_w4, flam7_w4, wingco_state, 0, ROT0, "Cyberdyne Systems", "Flaming 7 (W4 Hardware, Red, White & Blue 7's + Hollywood Nights)", 0 ) GAME( 199?, fl7_50, 0, flaming7, flaming7, wingco_state, flaming7, ROT0, "Cyberdyne Systems", "Flaming 7 (Custom Hardware, Main, 50 Bonus)", MACHINE_UNEMULATED_PROTECTION | MACHINE_IMPERFECT_GRAPHICS ) GAME( 199?, fl7_500, fl7_50, flaming7, flaming7, wingco_state, flaming7, ROT0, "Cyberdyne Systems", "Flaming 7 (Custom Hardware, Main, 500 Bonus)", MACHINE_UNEMULATED_PROTECTION | MACHINE_IMPERFECT_GRAPHICS ) GAME( 199?, fl7_2000, fl7_50, flaming7, flaming7, wingco_state, flaming7, ROT0, "Cyberdyne Systems", "Flaming 7 (Custom Hardware, Main, 2000 Bonus)", MACHINE_UNEMULATED_PROTECTION | MACHINE_IMPERFECT_GRAPHICS ) @@ -16110,13 +16110,13 @@ GAME( 199?, fl7_tw, fl7_50, flam7_tw, flaming7, wingco_state, flam7_tw, // --- Wing W-8 hardware --- -GAME( 1990, bonusch, 0, bonusch, bonusch, driver_device, 0, ROT0, "Wing Co., Ltd.", "Bonus Chance (W-8)", MACHINE_NOT_WORKING ) // M80C51F MCU +GAME( 1990, bonusch, 0, bonusch, bonusch, unkch_state, 0, ROT0, "Wing Co., Ltd.", "Bonus Chance (W-8)", MACHINE_NOT_WORKING ) // M80C51F MCU // --- Magical Odds hardware --- -GAME( 1992, magodds, 0, magodds, magodds, driver_device, 0, ROT0, "Pal Company / Micro Manufacturing Inc.", "Magical Odds (set 1)", MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1992, magoddsa, magodds, magodds, magodds, driver_device, 0, ROT0, "Pal Company / Micro Manufacturing Inc.", "Magical Odds (set 2)", MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1992, magoddsb, magodds, magodds, magodds, driver_device, 0, ROT0, "Pal Company / Micro Manufacturing Inc.", "Magical Odds (set 3)", MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1992, magodds, 0, magodds, magodds, wingco_state, 0, ROT0, "Pal Company / Micro Manufacturing Inc.", "Magical Odds (set 1)", MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1992, magoddsa, magodds, magodds, magodds, wingco_state, 0, ROT0, "Pal Company / Micro Manufacturing Inc.", "Magical Odds (set 2)", MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1992, magoddsb, magodds, magodds, magodds, wingco_state, 0, ROT0, "Pal Company / Micro Manufacturing Inc.", "Magical Odds (set 3)", MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_GRAPHICS ) GAME( 1991, magoddsc, magodds, magodds, magoddsc, wingco_state, magoddsc, ROT0, "Pal Company", "Magical Odds (set 4, custom encrypted CPU block)", MACHINE_WRONG_COLORS | MACHINE_NOT_WORKING |MACHINE_NO_SOUND) GAME( 1991, magoddsd, magodds, magodds, magoddsc, wingco_state, magoddsc, ROT0, "Pal Company", "Magical Odds (set 5, custom encrypted CPU block)", MACHINE_WRONG_COLORS | MACHINE_NOT_WORKING |MACHINE_NO_SOUND) @@ -16159,13 +16159,13 @@ GAME( 1996, roypok96c, roypok96, amcoe2, roypok96a, cmaster_state, rp96sub, some sets are messy and appear to have mismatched graphic roms, they need to be sorted out properly */ /* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS */ -GAME( 1996, nfb96se, nfb96, amcoe2, nfb96bl, driver_device, 0, ROT0, "bootleg", "New Fruit Bonus '96 Special Edition (bootleg set 1, v97-3.3c Portuguese)", 0 ) +GAME( 1996, nfb96se, nfb96, amcoe2, nfb96bl, cmaster_state, 0, ROT0, "bootleg", "New Fruit Bonus '96 Special Edition (bootleg set 1, v97-3.3c Portuguese)", 0 ) GAME( 1996, nfb96sea, nfb96, amcoe2, nfb96bl, cmaster_state, nfb96sea, ROT0, "bootleg", "New Fruit Bonus '96 Special Edition (bootleg set 2, v97-3.3c English)", MACHINE_WRONG_COLORS ) // encrypted program -GAME( 1996, nfb96seb, nfb96, amcoe2, nfb96bl, driver_device, 0, ROT0, "bootleg", "New Fruit Bonus '96 Special Edition (bootleg set 3, v97-3.3c Portuguese)", MACHINE_WRONG_COLORS ) -GAME( 2002, carb2002, nfb96, amcoe2, nfb96bl, driver_device, 0, ROT0, "bootleg", "Carriage Bonus 2002 (bootleg)", MACHINE_WRONG_COLORS ) -GAME( 2003, carb2003, nfb96, amcoe2, nfb96bl, driver_device, 0, ROT0, "bootleg", "Carriage Bonus 2003 (bootleg)", MACHINE_WRONG_COLORS ) +GAME( 1996, nfb96seb, nfb96, amcoe2, nfb96bl, cmaster_state, 0, ROT0, "bootleg", "New Fruit Bonus '96 Special Edition (bootleg set 3, v97-3.3c Portuguese)", MACHINE_WRONG_COLORS ) +GAME( 2002, carb2002, nfb96, amcoe2, nfb96bl, cmaster_state, 0, ROT0, "bootleg", "Carriage Bonus 2002 (bootleg)", MACHINE_WRONG_COLORS ) +GAME( 2003, carb2003, nfb96, amcoe2, nfb96bl, cmaster_state, 0, ROT0, "bootleg", "Carriage Bonus 2003 (bootleg)", MACHINE_WRONG_COLORS ) -GAME( 2003, nfm, 0, nfm, nfm, driver_device, 0, ROT0, "Ming-Yang Electronic", "New Fruit Machine (Ming-Yang Electronic)", MACHINE_NOT_WORKING ) // vFB02-07A "Copyright By Ms. Liu Orchis 2003/03/06" +GAME( 2003, nfm, 0, nfm, nfm, cmaster_state, 0, ROT0, "Ming-Yang Electronic", "New Fruit Machine (Ming-Yang Electronic)", MACHINE_NOT_WORKING ) // vFB02-07A "Copyright By Ms. Liu Orchis 2003/03/06" // super cherry master sets... @@ -16189,7 +16189,7 @@ GAMEL( 198?, cmpacmana, cmpacman, cm, cmpacman, cmaster_state, cm, R GAMEL( 198?, cmtetris, 0, cm, cmtetris, cmaster_state, cm, ROT0, "", "Tetris + Cherry Master (Corsica, v8.01, set 1)", 0, layout_cmpacman ) // need to press K/L to switch between games... GAMEL( 198?, cmtetrsa, 0, cm, cmtetris, cmaster_state, cm, ROT0, "", "Tetris + Cherry Master (Corsica, v8.01, set 2)", MACHINE_NOT_WORKING, layout_cmpacman ) // seems banked... GAMEL( 198?, cmtetrsb, 0, cm, cmtetris, cmaster_state, cm, ROT0, "", "Tetris + Cherry Master (+K, Canada Version, encrypted)", MACHINE_NOT_WORKING, layout_cmpacman ) // different Tetris game. press insert to throttle and see the attract running. -GAMEL( 1997, crazybon, 0, pkrmast, crazybon, driver_device, 0, ROT0, "bootleg (Crazy Co.)", "Crazy Bonus 2002", MACHINE_IMPERFECT_COLORS, layout_crazybon ) // Windows ME desktop... but not found the way to switch it. +GAMEL( 1997, crazybon, 0, pkrmast, crazybon, goldstar_state, 0, ROT0, "bootleg (Crazy Co.)", "Crazy Bonus 2002", MACHINE_IMPERFECT_COLORS, layout_crazybon ) // Windows ME desktop... but not found the way to switch it. /* other possible stealth sets: - cmv4a ---> see the 1fxx zone. put a bp in 1f9f to see the loop. diff --git a/src/mame/drivers/gomoku.cpp b/src/mame/drivers/gomoku.cpp index 32d2412485e..492e70594d0 100644 --- a/src/mame/drivers/gomoku.cpp +++ b/src/mame/drivers/gomoku.cpp @@ -25,6 +25,7 @@ todo: #include "emu.h" #include "includes/gomoku.h" +#include "audio/gomoku.h" #include "cpu/z80/z80.h" #include "speaker.h" @@ -122,7 +123,7 @@ static GFXDECODE_START( gomoku ) GFXDECODE_END -static MACHINE_CONFIG_START( gomoku, gomoku_state ) +static MACHINE_CONFIG_START( gomoku ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_18_432MHz/12) /* 1.536 MHz ? */ MCFG_CPU_PROGRAM_MAP(gomoku_map) @@ -181,5 +182,5 @@ ROM_START( gomoku ) ROM_END -// YEAR, NAME, PARENT, MACHINE, INPUT, INIT, MONITOR, COMPANY, FULLNAME -GAME( 1981, gomoku, 0, gomoku, gomoku, driver_device, 0, ROT90, "Nichibutsu", "Gomoku Narabe Renju", 0 ) +// YEAR, NAME, PARENT, MACHINE, INPUT, STATE INIT, MONITOR, COMPANY, FULLNAME, FLAGS +GAME( 1981, gomoku, 0, gomoku, gomoku, gomoku_state, 0, ROT90, "Nichibutsu", "Gomoku Narabe Renju", 0 ) diff --git a/src/mame/drivers/good.cpp b/src/mame/drivers/good.cpp index 3000fa23278..f5043b2005a 100644 --- a/src/mame/drivers/good.cpp +++ b/src/mame/drivers/good.cpp @@ -47,7 +47,9 @@ public: m_fg_tilemapram(*this, "fg_tilemapram"), m_bg_tilemapram(*this, "bg_tilemapram"), m_maincpu(*this, "maincpu"), - m_gfxdecode(*this, "gfxdecode") { } + m_gfxdecode(*this, "gfxdecode") + { + } /* memory pointers */ required_shared_ptr m_fg_tilemapram; @@ -282,7 +284,7 @@ static GFXDECODE_START( good ) GFXDECODE_END -static MACHINE_CONFIG_START( good, good_state ) +static MACHINE_CONFIG_START( good ) MCFG_CPU_ADD("maincpu", M68000, 16000000 /2) MCFG_CPU_PROGRAM_MAP(good_map) @@ -304,7 +306,7 @@ static MACHINE_CONFIG_START( good, good_state ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_OKIM6295_ADD("oki", 1000000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki", 1000000, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.47) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.47) MACHINE_CONFIG_END @@ -325,4 +327,4 @@ ROM_START( good ) ROM_LOAD16_BYTE( "grp-04", 0x40001, 0x20000, CRC(83dbbb52) SHA1(e597f3cbb54b5cdf2230ea6318f970319061e31b) ) ROM_END -GAME( 1998, good, 0, good, good, driver_device, 0, ROT0, "", "Good (Korea)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, good, 0, good, good, good_state, 0, ROT0, "", "Good (Korea)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/goodejan.cpp b/src/mame/drivers/goodejan.cpp index 38291ec75da..7f1567c554d 100644 --- a/src/mame/drivers/goodejan.cpp +++ b/src/mame/drivers/goodejan.cpp @@ -630,7 +630,7 @@ WRITE16_MEMBER( goodejan_state::layer_scroll_w ) -static MACHINE_CONFIG_START( goodejan, goodejan_state ) +static MACHINE_CONFIG_START( goodejan ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", V30, GOODEJAN_MHZ2/2) @@ -665,7 +665,7 @@ static MACHINE_CONFIG_START( goodejan, goodejan_state ) MCFG_YM3812_IRQ_HANDLER(DEVWRITELINE("seibu_sound", seibu_sound_device, fm_irqhandler)) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MCFG_OKIM6295_ADD("oki", GOODEJAN_MHZ2/16, OKIM6295_PIN7_LOW) + MCFG_OKIM6295_ADD("oki", GOODEJAN_MHZ2/16, PIN7_LOW) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40) MCFG_DEVICE_ADD("seibu_sound", SEIBU_SOUND, 0) @@ -776,6 +776,6 @@ ROM_START( goodejana ) ROM_LOAD( "fmj08.083", 0x000, 0x100, CRC(9657b7ad) SHA1(e9b469c2b3534593f7fe0ea19cbbf93b55957e42) ) ROM_END -GAME( 1991, totmejan, 0, totmejan, goodejan, driver_device, 0, ROT0, "Seibu Kaihatsu (Tecmo license)", "Tottemo E Jong", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1991, goodejan, 0, goodejan, goodejan, driver_device, 0, ROT0, "Seibu Kaihatsu (Tecmo license)", "Good E Jong -Kachinuki Mahjong Syoukin Oh!!- (set 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1991, goodejana,goodejan, goodejan, goodejan, driver_device, 0, ROT0, "Seibu Kaihatsu (Tecmo license)", "Good E Jong -Kachinuki Mahjong Syoukin Oh!!- (set 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1991, totmejan, 0, totmejan, goodejan, goodejan_state, 0, ROT0, "Seibu Kaihatsu (Tecmo license)", "Tottemo E Jong", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1991, goodejan, 0, goodejan, goodejan, goodejan_state, 0, ROT0, "Seibu Kaihatsu (Tecmo license)", "Good E Jong -Kachinuki Mahjong Syoukin Oh!!- (set 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1991, goodejana,goodejan, goodejan, goodejan, goodejan_state, 0, ROT0, "Seibu Kaihatsu (Tecmo license)", "Good E Jong -Kachinuki Mahjong Syoukin Oh!!- (set 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/gotcha.cpp b/src/mame/drivers/gotcha.cpp index e8c78beb988..ba423131407 100644 --- a/src/mame/drivers/gotcha.cpp +++ b/src/mame/drivers/gotcha.cpp @@ -262,7 +262,7 @@ void gotcha_state::machine_reset() m_banksel = 0; } -static MACHINE_CONFIG_START( gotcha, gotcha_state ) +static MACHINE_CONFIG_START( gotcha ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000,14318180) /* 14.31818 MHz */ @@ -304,7 +304,7 @@ static MACHINE_CONFIG_START( gotcha, gotcha_state ) MCFG_SOUND_ROUTE(0, "mono", 0.80) MCFG_SOUND_ROUTE(1, "mono", 0.80) - MCFG_OKIM6295_ADD("oki", 1000000, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", 1000000, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60) MACHINE_CONFIG_END @@ -388,5 +388,5 @@ ROM_START( ppchamp ) ROM_LOAD( "uz11", 0x00000, 0x80000, CRC(3d96274c) SHA1(c7a670af86194c370bf8fb30afbe027ab78a0227) ) ROM_END -GAMEL( 1997, gotcha, 0, gotcha, gotcha, driver_device, 0, ROT0, "Dongsung / Para", "Got-cha Mini Game Festival", MACHINE_SUPPORTS_SAVE, layout_gotcha ) -GAMEL( 1997, ppchamp, gotcha, gotcha, gotcha, driver_device, 0, ROT0, "Dongsung / Para", "Pasha Pasha Champ Mini Game Festival (Korea)", MACHINE_SUPPORTS_SAVE, layout_gotcha ) +GAMEL( 1997, gotcha, 0, gotcha, gotcha, gotcha_state, 0, ROT0, "Dongsung / Para", "Got-cha Mini Game Festival", MACHINE_SUPPORTS_SAVE, layout_gotcha ) +GAMEL( 1997, ppchamp, gotcha, gotcha, gotcha, gotcha_state, 0, ROT0, "Dongsung / Para", "Pasha Pasha Champ Mini Game Festival (Korea)", MACHINE_SUPPORTS_SAVE, layout_gotcha ) diff --git a/src/mame/drivers/gottlieb.cpp b/src/mame/drivers/gottlieb.cpp index 038f4927883..01f8a174b66 100644 --- a/src/mame/drivers/gottlieb.cpp +++ b/src/mame/drivers/gottlieb.cpp @@ -1764,7 +1764,7 @@ GFXDECODE_END * *************************************/ -static MACHINE_CONFIG_START( gottlieb_core, gottlieb_state ) +static MACHINE_CONFIG_START( gottlieb_core ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8088, CPU_CLOCK/3) @@ -1806,7 +1806,7 @@ static MACHINE_CONFIG_DERIVED( g2laser, gottlieb_core ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0) MCFG_LASERDISC_PR8210_ADD("laserdisc") - MCFG_LASERDISC_AUDIO(laserdisc_audio_delegate(&gottlieb_state::laserdisc_audio_process, (gottlieb_state*)owner)) + MCFG_LASERDISC_AUDIO(laserdisc_device::audio_delegate(&gottlieb_state::laserdisc_audio_process, downcast(owner))) MCFG_LASERDISC_OVERLAY_DRIVER(GOTTLIEB_VIDEO_HCOUNT, GOTTLIEB_VIDEO_VCOUNT, gottlieb_state, screen_update_gottlieb) MCFG_LASERDISC_OVERLAY_CLIP(0, GOTTLIEB_VIDEO_HBLANK-1, 0, GOTTLIEB_VIDEO_VBLANK-8) MCFG_LASERDISC_OVERLAY_PALETTE("palette") @@ -1827,7 +1827,7 @@ MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( gottlieb1_votrax, gottlieb_core ) - MCFG_SOUND_ADD("r1sound", GOTTLIEB_SOUND_REV1_WITH_VOTRAX, 0) + MCFG_SOUND_ADD("r1sound", GOTTLIEB_SOUND_REV1_VOTRAX, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0) MACHINE_CONFIG_END @@ -1864,7 +1864,7 @@ static MACHINE_CONFIG_DERIVED( cobram3, gottlieb_core ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0) MCFG_LASERDISC_PR8210_ADD("laserdisc") - MCFG_LASERDISC_AUDIO(laserdisc_audio_delegate(&gottlieb_state::laserdisc_audio_process, (gottlieb_state*)owner)) + MCFG_LASERDISC_AUDIO(laserdisc_device::audio_delegate(&gottlieb_state::laserdisc_audio_process, downcast(owner))) MCFG_LASERDISC_OVERLAY_DRIVER(GOTTLIEB_VIDEO_HCOUNT, GOTTLIEB_VIDEO_VCOUNT, gottlieb_state, screen_update_gottlieb) MCFG_LASERDISC_OVERLAY_CLIP(0, GOTTLIEB_VIDEO_HBLANK-1, 0, GOTTLIEB_VIDEO_VBLANK-8) MCFG_LASERDISC_OVERLAY_PALETTE("palette") diff --git a/src/mame/drivers/gotya.cpp b/src/mame/drivers/gotya.cpp index ca07e25bac6..ebd89eab829 100644 --- a/src/mame/drivers/gotya.cpp +++ b/src/mame/drivers/gotya.cpp @@ -185,7 +185,7 @@ void gotya_state::machine_reset() m_theme_playing = 0; } -static MACHINE_CONFIG_START( gotya, gotya_state ) +static MACHINE_CONFIG_START( gotya ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80,18432000/6) /* 3.072 MHz ??? */ @@ -279,5 +279,5 @@ ROM_START( gotya ) ROM_LOAD( "gb-07.bin", 0x7000, 0x1000, CRC(92a9f8bf) SHA1(9231cd86f24f1e6a585c3a919add50c1f8e42a4c) ) ROM_END -GAME( 1981, thehand, 0, gotya, gotya, driver_device, 0, ROT270, "T.I.C.", "The Hand", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1981, gotya, thehand, gotya, gotya, driver_device, 0, ROT270, "Game-A-Tron", "Got-Ya (12/24/1981, prototype?)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1981, thehand, 0, gotya, gotya, gotya_state, 0, ROT270, "T.I.C.", "The Hand", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1981, gotya, thehand, gotya, gotya, gotya_state, 0, ROT270, "Game-A-Tron", "Got-Ya (12/24/1981, prototype?)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/goupil.cpp b/src/mame/drivers/goupil.cpp index 645c9f9a913..c5a80b0eb3b 100644 --- a/src/mame/drivers/goupil.cpp +++ b/src/mame/drivers/goupil.cpp @@ -90,7 +90,7 @@ private: required_device m_via_video; required_device m_via_keyb; required_device m_via_modem; - required_device m_fdc; + required_device m_fdc; required_device m_floppy0; required_device m_floppy1; floppy_image_device *m_floppy; @@ -127,7 +127,7 @@ static ADDRESS_MAP_START(goupil_mem, AS_PROGRAM, 8, goupil_g1_state) AM_RANGE(0xE860,0xE86F) AM_DEVREADWRITE("m_via_modem", via6522_device, read, write) - AM_RANGE(0xe8f0,0xe8ff) AM_DEVREADWRITE("fd1791", fd1791_t, read, write) + AM_RANGE(0xe8f0,0xe8ff) AM_DEVREADWRITE("fd1791", fd1791_device, read, write) //AM_RANGE(0xf08a,0xf08a) AM_READWRITE( fdc_sel0_r, fdc_sel0_w ) //AM_RANGE(0xf08b,0xf08b) AM_READWRITE( fdc_sel1_r, fdc_sel1_w ) @@ -424,7 +424,7 @@ WRITE_LINE_MEMBER( goupil_g1_state::via_video_ca2_w ) old_state_ca2 = state; } -static MACHINE_CONFIG_START( goupil_g1, goupil_g1_state ) +static MACHINE_CONFIG_START( goupil_g1 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",M6808, CPU_CLOCK) MCFG_CPU_PROGRAM_MAP(goupil_mem) @@ -507,5 +507,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1979, goupilg1, 0, 0, goupil_g1, goupil_g1,driver_device, 0, "SMT", "Goupil G1", MACHINE_IS_SKELETON ) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 1979, goupilg1, 0, 0, goupil_g1, goupil_g1, goupil_g1_state, 0, "SMT", "Goupil G1", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/gp2x.cpp b/src/mame/drivers/gp2x.cpp index 3c1e9fabbcd..b2ad1c2d44f 100644 --- a/src/mame/drivers/gp2x.cpp +++ b/src/mame/drivers/gp2x.cpp @@ -356,7 +356,7 @@ ADDRESS_MAP_END static INPUT_PORTS_START( gp2x ) INPUT_PORTS_END -static MACHINE_CONFIG_START( gp2x, gp2x_state ) +static MACHINE_CONFIG_START( gp2x ) MCFG_CPU_ADD("maincpu", ARM9, 80000000) MCFG_CPU_PROGRAM_MAP(gp2x_map) @@ -392,4 +392,4 @@ ROM_START(gp2x) ROMX_LOAD( "gp2xyaffs.v4", 0x300000, 0x2dfed0, CRC(e77efc53) SHA1(21477ff77aacb84005bc465a03066d71031a6098), ROM_BIOS(3)) ROM_END -CONS(2005, gp2x, 0, 0, gp2x, gp2x, driver_device, 0, "Game Park Holdings", "GP2X", MACHINE_NOT_WORKING|MACHINE_NO_SOUND) +CONS(2005, gp2x, 0, 0, gp2x, gp2x, gp2x_state, 0, "Game Park Holdings", "GP2X", MACHINE_NOT_WORKING|MACHINE_NO_SOUND) diff --git a/src/mame/drivers/gp32.cpp b/src/mame/drivers/gp32.cpp index abe3966d1d6..3f54ef58e9c 100644 --- a/src/mame/drivers/gp32.cpp +++ b/src/mame/drivers/gp32.cpp @@ -1682,7 +1682,7 @@ void gp32_state::machine_reset() s3c240x_machine_reset(); } -static MACHINE_CONFIG_START( gp32, gp32_state ) +static MACHINE_CONFIG_START( gp32 ) MCFG_CPU_ADD("maincpu", ARM9, 40000000) MCFG_CPU_PROGRAM_MAP(gp32_map) @@ -1730,4 +1730,4 @@ ROM_START( gp32 ) #endif ROM_END -CONS(2001, gp32, 0, 0, gp32, gp32, driver_device, 0, "Game Park Holdings", "GP32", ROT270|MACHINE_NOT_WORKING|MACHINE_NO_SOUND) +CONS(2001, gp32, 0, 0, gp32, gp32, gp32_state, 0, "Game Park Holdings", "GP32", ROT270|MACHINE_NOT_WORKING|MACHINE_NO_SOUND) diff --git a/src/mame/drivers/gp_1.cpp b/src/mame/drivers/gp_1.cpp index d8f3a4f282f..80eeffe1a79 100644 --- a/src/mame/drivers/gp_1.cpp +++ b/src/mame/drivers/gp_1.cpp @@ -420,7 +420,7 @@ static const z80_daisy_config daisy_chain[] = { nullptr } }; -static MACHINE_CONFIG_START( gp_1, gp_1_state ) +static MACHINE_CONFIG_START( gp_1 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 2457600) MCFG_CPU_PROGRAM_MAP(gp_1_map) @@ -532,13 +532,13 @@ ROM_START(vegasgp) ROM_LOAD( "140b.13", 0x0800, 0x0800, CRC(cf26d67b) SHA1(05481e880e23a7bc1d1716b52ac1effc0db437f2)) ROM_END -GAME(1978, gp_110, 0, gp_1, gp_1, driver_device, 0, ROT0, "Game Plan", "Model 110", MACHINE_IS_BIOS_ROOT | MACHINE_NOT_WORKING) -GAME(1978, blvelvet, gp_110, gp_1, gp_1, driver_device, 0, ROT0, "Game Plan", "Black Velvet", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) -GAME(1978, camlight, gp_110, gp_1, gp_1, driver_device, 0, ROT0, "Game Plan", "Camel Lights", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) -GAME(1978, foxylady, gp_110, gp_1, gp_1, driver_device, 0, ROT0, "Game Plan", "Foxy Lady", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) -GAME(1978, real, gp_110, gp_1, gp_1, driver_device, 0, ROT0, "Game Plan", "Real", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) -GAME(1978, rio, gp_110, gp_1, gp_1, driver_device, 0, ROT0, "Game Plan", "Rio", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) -GAME(1978, chucklck, gp_110, gp_1, gp_1, driver_device, 0, ROT0, "Game Plan", "Chuck-A-Luck", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) -GAME(1979, famlyfun, 0, gp_1s, gp_1, driver_device, 0, ROT0, "Game Plan", "Family Fun!", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) -GAME(1979, startrip, 0, gp_1s, gp_1, driver_device, 0, ROT0, "Game Plan", "Star Trip", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) -GAME(1979, vegasgp, 0, gp_1s, gp_1, driver_device, 0, ROT0, "Game Plan", "Vegas (Game Plan)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) +GAME(1978, gp_110, 0, gp_1, gp_1, gp_1_state, 0, ROT0, "Game Plan", "Model 110", MACHINE_IS_BIOS_ROOT | MACHINE_NOT_WORKING) +GAME(1978, blvelvet, gp_110, gp_1, gp_1, gp_1_state, 0, ROT0, "Game Plan", "Black Velvet", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) +GAME(1978, camlight, gp_110, gp_1, gp_1, gp_1_state, 0, ROT0, "Game Plan", "Camel Lights", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) +GAME(1978, foxylady, gp_110, gp_1, gp_1, gp_1_state, 0, ROT0, "Game Plan", "Foxy Lady", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) +GAME(1978, real, gp_110, gp_1, gp_1, gp_1_state, 0, ROT0, "Game Plan", "Real", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) +GAME(1978, rio, gp_110, gp_1, gp_1, gp_1_state, 0, ROT0, "Game Plan", "Rio", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) +GAME(1978, chucklck, gp_110, gp_1, gp_1, gp_1_state, 0, ROT0, "Game Plan", "Chuck-A-Luck", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) +GAME(1979, famlyfun, 0, gp_1s, gp_1, gp_1_state, 0, ROT0, "Game Plan", "Family Fun!", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) +GAME(1979, startrip, 0, gp_1s, gp_1, gp_1_state, 0, ROT0, "Game Plan", "Star Trip", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) +GAME(1979, vegasgp, 0, gp_1s, gp_1, gp_1_state, 0, ROT0, "Game Plan", "Vegas (Game Plan)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) diff --git a/src/mame/drivers/gp_2.cpp b/src/mame/drivers/gp_2.cpp index 1636b36a47a..6f3012edc0f 100644 --- a/src/mame/drivers/gp_2.cpp +++ b/src/mame/drivers/gp_2.cpp @@ -570,7 +570,7 @@ static const z80_daisy_config daisy_chain[] = { nullptr } }; -static MACHINE_CONFIG_START( gp_2, gp_2_state ) +static MACHINE_CONFIG_START( gp_2 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 2457600) MCFG_CPU_PROGRAM_MAP(gp_2_map) @@ -808,24 +808,24 @@ ROM_START(suprnova) ROM_END // GP1 dips -GAME(1979, sshootep, 0, gp_2, gp_1, driver_device, 0, ROT0, "Game Plan", "Sharpshooter", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) -GAME(1979, coneyis, 0, gp_2, gp_1, driver_device, 0, ROT0, "Game Plan", "Old Coney Island!", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) -GAME(1980, lizard, 0, gp_2, gp_1, driver_device, 0, ROT0, "Game Plan", "Pinball Lizard", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) -GAME(1982, suprnova, 0, gp_2, gp_1, driver_device, 0, ROT0, "Game Plan", "Super Nova", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) -GAME(1983, sshootr2, 0, gp_2, gp_1, driver_device, 0, ROT0, "Game Plan", "Sharp Shooter II", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) +GAME(1979, sshootep, 0, gp_2, gp_1, gp_2_state, 0, ROT0, "Game Plan", "Sharpshooter", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) +GAME(1979, coneyis, 0, gp_2, gp_1, gp_2_state, 0, ROT0, "Game Plan", "Old Coney Island!", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) +GAME(1980, lizard, 0, gp_2, gp_1, gp_2_state, 0, ROT0, "Game Plan", "Pinball Lizard", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) +GAME(1982, suprnova, 0, gp_2, gp_1, gp_2_state, 0, ROT0, "Game Plan", "Super Nova", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) +GAME(1983, sshootr2, 0, gp_2, gp_1, gp_2_state, 0, ROT0, "Game Plan", "Sharp Shooter II", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) // GP2 dips -GAME(1981, gwarfare, 0, gp_2, gp_2, driver_device, 0, ROT0, "Game Plan", "Global Warfare", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) -GAME(1982, mbossy, 0, gp_2, gp_2, driver_device, 0, ROT0, "Game Plan", "Mike Bossy", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1984, attila, 0, gp_2, gp_2, driver_device, 0, ROT0, "Game Plan", "Attila The Hun", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) +GAME(1981, gwarfare, 0, gp_2, gp_2, gp_2_state, 0, ROT0, "Game Plan", "Global Warfare", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) +GAME(1982, mbossy, 0, gp_2, gp_2, gp_2_state, 0, ROT0, "Game Plan", "Mike Bossy", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1984, attila, 0, gp_2, gp_2, gp_2_state, 0, ROT0, "Game Plan", "Attila The Hun", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) // revolving match -GAME(1984, agent777, 0, gp_2, gp_2, driver_device, 0, ROT0, "Game Plan", "Agents 777", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) -GAME(1985, cpthook, 0, gp_2, gp_2, driver_device, 0, ROT0, "Game Plan", "Captain Hook", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) -GAME(1985, ladyshot, 0, gp_2, gp_2, driver_device, 0, ROT0, "Game Plan", "Lady Sharpshooter (set 1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) -GAME(1985, ladyshota, ladyshot, gp_2, gp_2, driver_device, 0, ROT0, "Game Plan", "Lady Sharpshooter (set 2)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) +GAME(1984, agent777, 0, gp_2, gp_2, gp_2_state, 0, ROT0, "Game Plan", "Agents 777", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) +GAME(1985, cpthook, 0, gp_2, gp_2, gp_2_state, 0, ROT0, "Game Plan", "Captain Hook", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) +GAME(1985, ladyshot, 0, gp_2, gp_2, gp_2_state, 0, ROT0, "Game Plan", "Lady Sharpshooter (set 1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) +GAME(1985, ladyshota, ladyshot, gp_2, gp_2, gp_2_state, 0, ROT0, "Game Plan", "Lady Sharpshooter (set 2)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) // credit (start) button not working -GAME(1985, andromep, 0, gp_2, gp_2, driver_device, 0, ROT0, "Game Plan", "Andromeda (set 1)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1985, andromepa, andromep, gp_2, gp_2, driver_device, 0, ROT0, "Game Plan", "Andromeda (set 2)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1985, cyclopes, 0, gp_2, gp_2, driver_device, 0, ROT0, "Game Plan", "Cyclopes", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1985, andromep, 0, gp_2, gp_2, gp_2_state, 0, ROT0, "Game Plan", "Andromeda (set 1)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1985, andromepa, andromep, gp_2, gp_2, gp_2_state, 0, ROT0, "Game Plan", "Andromeda (set 2)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1985, cyclopes, 0, gp_2, gp_2, gp_2_state, 0, ROT0, "Game Plan", "Cyclopes", MACHINE_IS_SKELETON_MECHANICAL) diff --git a/src/mame/drivers/gpworld.cpp b/src/mame/drivers/gpworld.cpp index 6a12ae598e2..9b8199f4432 100644 --- a/src/mame/drivers/gpworld.cpp +++ b/src/mame/drivers/gpworld.cpp @@ -488,7 +488,7 @@ static GFXDECODE_START( gpworld ) GFXDECODE_END /* DRIVER */ -static MACHINE_CONFIG_START( gpworld, gpworld_state ) +static MACHINE_CONFIG_START( gpworld ) /* main cpu */ MCFG_CPU_ADD("maincpu", Z80, GUESSED_CLOCK) @@ -561,5 +561,5 @@ DRIVER_INIT_MEMBER(gpworld_state,gpworld) } -/* YEAR NAME PARENT MACHINE INPUT INIT MONITOR COMPANY FULLNAME FLAGS) */ +/* YEAR NAME PARENT MACHINE INPUT STATE INIT MONITOR COMPANY FULLNAME FLAGS) */ GAME( 1984, gpworld, 0, gpworld, gpworld, gpworld_state, gpworld, ROT0, "Sega", "GP World", MACHINE_NOT_WORKING|MACHINE_NO_SOUND) diff --git a/src/mame/drivers/gradius3.cpp b/src/mame/drivers/gradius3.cpp index 7ee8624a245..f5861caaac8 100644 --- a/src/mame/drivers/gradius3.cpp +++ b/src/mame/drivers/gradius3.cpp @@ -274,7 +274,7 @@ void gradius3_state::machine_reset() } -static MACHINE_CONFIG_START( gradius3, gradius3_state ) +static MACHINE_CONFIG_START( gradius3 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_10MHz) @@ -509,7 +509,7 @@ ROM_END -GAME( 1989, gradius3, 0, gradius3, gradius3, driver_device, 0, ROT0, "Konami", "Gradius III (World, program code R)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, gradius3j, gradius3, gradius3, gradius3, driver_device, 0, ROT0, "Konami", "Gradius III (Japan, program code S)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, gradius3js, gradius3, gradius3, gradius3, driver_device, 0, ROT0, "Konami", "Gradius III (Japan, program code S, split)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, gradius3a, gradius3, gradius3, gradius3, driver_device, 0, ROT0, "Konami", "Gradius III (Asia)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, gradius3, 0, gradius3, gradius3, gradius3_state, 0, ROT0, "Konami", "Gradius III (World, program code R)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, gradius3j, gradius3, gradius3, gradius3, gradius3_state, 0, ROT0, "Konami", "Gradius III (Japan, program code S)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, gradius3js, gradius3, gradius3, gradius3, gradius3_state, 0, ROT0, "Konami", "Gradius III (Japan, program code S, split)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, gradius3a, gradius3, gradius3, gradius3, gradius3_state, 0, ROT0, "Konami", "Gradius III (Asia)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/grchamp.cpp b/src/mame/drivers/grchamp.cpp index 9a854405c87..70b2416ac8b 100644 --- a/src/mame/drivers/grchamp.cpp +++ b/src/mame/drivers/grchamp.cpp @@ -644,7 +644,7 @@ INPUT_PORTS_END * *************************************/ -static MACHINE_CONFIG_START( grchamp, grchamp_state ) +static MACHINE_CONFIG_START( grchamp ) /* basic machine hardware */ /* CPU BOARD */ @@ -765,4 +765,4 @@ ROM_END * *************************************/ -GAMEL( 1981, grchamp, 0, grchamp, grchamp, driver_device, 0, ROT270, "Taito", "Grand Champion", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE, layout_grchamp ) +GAMEL( 1981, grchamp, 0, grchamp, grchamp, grchamp_state, 0, ROT270, "Taito", "Grand Champion", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE, layout_grchamp ) diff --git a/src/mame/drivers/grfd2301.cpp b/src/mame/drivers/grfd2301.cpp index c277766e1ea..09fcb7b1f2d 100644 --- a/src/mame/drivers/grfd2301.cpp +++ b/src/mame/drivers/grfd2301.cpp @@ -108,7 +108,7 @@ uint32_t grfd2301_state::screen_update(screen_device &screen, bitmap_ind16 &bitm return 0; } -static MACHINE_CONFIG_START( grfd2301, grfd2301_state ) +static MACHINE_CONFIG_START( grfd2301 ) // basic machine hardware MCFG_CPU_ADD("maincpu", Z80, 4000000) MCFG_CPU_PROGRAM_MAP(grfd2301_mem) @@ -135,4 +135,4 @@ ROM_START( grfd2301 ) ROM_LOAD( "c10_char.bin", 0x0000, 0x2000, BAD_DUMP CRC(cb530b6f) SHA1(95590bbb433db9c4317f535723b29516b9b9fcbf)) ROM_END -COMP( 198?, grfd2301, 0, 0, grfd2301, grfd2301, driver_device, 0, "Genrad", "Futuredata 2301 Network Processor", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW ) +COMP( 198?, grfd2301, 0, 0, grfd2301, grfd2301, grfd2301_state, 0, "Genrad", "Futuredata 2301 Network Processor", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW ) diff --git a/src/mame/drivers/gridlee.cpp b/src/mame/drivers/gridlee.cpp index 87f60fde51f..9e72dedd806 100644 --- a/src/mame/drivers/gridlee.cpp +++ b/src/mame/drivers/gridlee.cpp @@ -410,7 +410,7 @@ static const char *const sample_names[] = * *************************************/ -static MACHINE_CONFIG_START( gridlee, gridlee_state ) +static MACHINE_CONFIG_START( gridlee ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809, GRIDLEE_CPU_CLOCK) @@ -478,4 +478,4 @@ ROM_END * *************************************/ -GAME( 1983, gridlee, 0, gridlee, gridlee, driver_device, 0, ROT0, "Videa", "Gridlee", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) +GAME( 1983, gridlee, 0, gridlee, gridlee, gridlee_state, 0, ROT0, "Videa", "Gridlee", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) diff --git a/src/mame/drivers/groundfx.cpp b/src/mame/drivers/groundfx.cpp index 6b2e94ac6c1..7f131bc59bc 100644 --- a/src/mame/drivers/groundfx.cpp +++ b/src/mame/drivers/groundfx.cpp @@ -311,7 +311,7 @@ INTERRUPT_GEN_MEMBER(groundfx_state::interrupt) device.execute().set_input_line(4, HOLD_LINE); } -static MACHINE_CONFIG_START( groundfx, groundfx_state ) +static MACHINE_CONFIG_START( groundfx ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68EC020, XTAL_40MHz/2) /* 20MHz - verified */ diff --git a/src/mame/drivers/gstream.cpp b/src/mame/drivers/gstream.cpp index 70537bb2bd9..e9d4ab198e9 100644 --- a/src/mame/drivers/gstream.cpp +++ b/src/mame/drivers/gstream.cpp @@ -866,7 +866,7 @@ void gstream_state::machine_reset() m_oki_bank_2 = 0; } -static MACHINE_CONFIG_START( gstream, gstream_state ) +static MACHINE_CONFIG_START( gstream ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", E132XT, 16000000*4) /* 4x internal multiplier */ @@ -894,14 +894,14 @@ static MACHINE_CONFIG_START( gstream, gstream_state ) MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki1", 1000000, OKIM6295_PIN7_HIGH) /* 1 Mhz? */ + MCFG_OKIM6295_ADD("oki1", 1000000, PIN7_HIGH) /* 1 Mhz? */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) - MCFG_OKIM6295_ADD("oki2", 1000000, OKIM6295_PIN7_HIGH) /* 1 Mhz? */ + MCFG_OKIM6295_ADD("oki2", 1000000, PIN7_HIGH) /* 1 Mhz? */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( x2222, gstream_state ) +static MACHINE_CONFIG_START( x2222 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", E132XT, 16000000*4) /* 4x internal multiplier */ @@ -927,7 +927,7 @@ static MACHINE_CONFIG_START( x2222, gstream_state ) MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki1", 1000000, OKIM6295_PIN7_HIGH) /* 1 Mhz? */ + MCFG_OKIM6295_ADD("oki1", 1000000, PIN7_HIGH) /* 1 Mhz? */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) MACHINE_CONFIG_END @@ -1173,6 +1173,6 @@ DRIVER_INIT_MEMBER(gstream_state,x2222) } -GAME( 2002, gstream, 0, gstream, gstream, gstream_state, gstream, ROT270, "Oriental Soft Japan", "G-Stream G2020", MACHINE_SUPPORTS_SAVE ) -GAME( 2000, x2222, 0, x2222, x2222, gstream_state, x2222, ROT270, "Oriental Soft / Promat", "X2222 (final debug?)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND ) +GAME( 2002, gstream, 0, gstream, gstream, gstream_state, gstream, ROT270, "Oriental Soft Japan", "G-Stream G2020", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, x2222, 0, x2222, x2222, gstream_state, x2222, ROT270, "Oriental Soft / Promat", "X2222 (final debug?)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND ) GAME( 2000, x2222o, x2222, x2222, x2222, gstream_state, x2222, ROT270, "Oriental Soft / Promat", "X2222 (5-level prototype)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/gstriker.cpp b/src/mame/drivers/gstriker.cpp index f568780f454..20e2a254940 100644 --- a/src/mame/drivers/gstriker.cpp +++ b/src/mame/drivers/gstriker.cpp @@ -505,7 +505,7 @@ INPUT_PORTS_END /*** MACHINE DRIVER **********************************************************/ -static MACHINE_CONFIG_START( gstriker, gstriker_state ) +static MACHINE_CONFIG_START( gstriker ) MCFG_CPU_ADD("maincpu", M68000, 10000000) MCFG_CPU_PROGRAM_MAP(gstriker_map) MCFG_CPU_VBLANK_INT_DRIVER("screen", gstriker_state, irq1_line_hold) @@ -1044,9 +1044,9 @@ DRIVER_INIT_MEMBER(gstriker_state,vgoalsoc) /*** GAME DRIVERS ************************************************************/ -GAME( 1993, gstriker, 0, gstriker, gstriker, driver_device, 0, ROT0, "Human", "Grand Striker", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1993, gstrikera, gstriker, gstriker, gstriker, driver_device, 0, ROT0, "Human", "Grand Striker (Americas)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1993, gstrikerj, gstriker, gstriker, gstriker, driver_device, 0, ROT0, "Human", "Grand Striker (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1993, gstriker, 0, gstriker, gstriker, gstriker_state, 0, ROT0, "Human", "Grand Striker", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1993, gstrikera, gstriker, gstriker, gstriker, gstriker_state, 0, ROT0, "Human", "Grand Striker (Americas)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1993, gstrikerj, gstriker, gstriker, gstriker, gstriker_state, 0, ROT0, "Human", "Grand Striker (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) /* Similar, but not identical hardware, appear to be protected by an MCU :-( */ diff --git a/src/mame/drivers/gsword.cpp b/src/mame/drivers/gsword.cpp index a112878aad2..eb61afc0d3d 100644 --- a/src/mame/drivers/gsword.cpp +++ b/src/mame/drivers/gsword.cpp @@ -774,7 +774,7 @@ static GFXDECODE_START( gsword ) GFXDECODE_END -static MACHINE_CONFIG_START( gsword, gsword_state ) +static MACHINE_CONFIG_START( gsword ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_18MHz/6) /* verified on pcb */ @@ -828,11 +828,11 @@ static MACHINE_CONFIG_START( gsword, gsword_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30) MCFG_SOUND_ADD("msm", MSM5205, XTAL_400kHz) /* verified on pcb */ - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_SEX_4B) /* vclk input mode */ + MCFG_MSM5205_PRESCALER_SELECTOR(SEX_4B) /* vclk input mode */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( josvolly, josvolly_state ) +static MACHINE_CONFIG_START( josvolly ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 18000000/4) /* ? */ @@ -1042,6 +1042,6 @@ ROM_START( josvolly ) ROM_END -GAME( 1983, josvolly, 0, josvolly, josvolly, driver_device, 0, ROT90, "Allumer / Taito Corporation", "Joshi Volleyball", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1983, josvolly, 0, josvolly, josvolly, josvolly_state, 0, ROT90, "Allumer / Taito Corporation", "Joshi Volleyball", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) GAME( 1984, gsword, 0, gsword, gsword, gsword_state, gsword, ROT0, "Allumer / Taito Corporation", "Great Swordsman (World?)", MACHINE_SUPPORTS_SAVE ) GAME( 1984, gsword2, gsword, gsword, gsword, gsword_state, gsword2, ROT0, "Allumer / Taito Corporation", "Great Swordsman (Japan?)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/gticlub.cpp b/src/mame/drivers/gticlub.cpp index 5f392819340..957b090daf7 100644 --- a/src/mame/drivers/gticlub.cpp +++ b/src/mame/drivers/gticlub.cpp @@ -934,7 +934,7 @@ uint32_t gticlub_state::screen_update_hangplt(screen_device &screen, bitmap_rgb3 return 0; } -static MACHINE_CONFIG_START( gticlub, gticlub_state ) +static MACHINE_CONFIG_START( gticlub ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", PPC403GA, XTAL_64MHz/2) /* PowerPC 403GA 32MHz */ @@ -1004,7 +1004,7 @@ static MACHINE_CONFIG_START( gticlub, gticlub_state ) MCFG_DEVICE_ADD("konppc", KONPPC, 0) MCFG_KONPPC_CGBOARD_NUMBER(1) - MCFG_KONPPC_CGBOARD_TYPE(CGBOARD_TYPE_GTICLUB) + MCFG_KONPPC_CGBOARD_TYPE(GTICLUB) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( thunderh, gticlub ) @@ -1041,7 +1041,7 @@ MACHINE_RESET_MEMBER(gticlub_state,hangplt) m_dsp2->set_input_line(INPUT_LINE_RESET, ASSERT_LINE); } -static MACHINE_CONFIG_START( hangplt, gticlub_state ) +static MACHINE_CONFIG_START( hangplt ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", PPC403GA, XTAL_64MHz/2) /* PowerPC 403GA 32MHz */ @@ -1131,7 +1131,7 @@ static MACHINE_CONFIG_START( hangplt, gticlub_state ) MCFG_DEVICE_ADD("konppc", KONPPC, 0) MCFG_KONPPC_CGBOARD_NUMBER(2) - MCFG_KONPPC_CGBOARD_TYPE(CGBOARD_TYPE_HANGPLT) + MCFG_KONPPC_CGBOARD_TYPE(HANGPLT) MACHINE_CONFIG_END /*************************************************************************/ diff --git a/src/mame/drivers/gts1.cpp b/src/mame/drivers/gts1.cpp index 124b177be23..09b65fddff2 100644 --- a/src/mame/drivers/gts1.cpp +++ b/src/mame/drivers/gts1.cpp @@ -675,7 +675,7 @@ WRITE8_MEMBER(gts1_state::gts1_do_w) } -static MACHINE_CONFIG_START( gts1, gts1_state ) +static MACHINE_CONFIG_START( gts1 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", PPS4_2, XTAL_3_579545MHz) // divided by 18 in the CPU MCFG_CPU_PROGRAM_MAP(gts1_map) diff --git a/src/mame/drivers/gts3.cpp b/src/mame/drivers/gts3.cpp index b9a32fe3365..6a7262468e6 100644 --- a/src/mame/drivers/gts3.cpp +++ b/src/mame/drivers/gts3.cpp @@ -274,7 +274,7 @@ DRIVER_INIT_MEMBER( gts3_state, gts3 ) { } -static MACHINE_CONFIG_START( gts3, gts3_state ) +static MACHINE_CONFIG_START( gts3 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M65C02, XTAL_4MHz / 2) MCFG_CPU_PROGRAM_MAP(gts3_map) diff --git a/src/mame/drivers/gts3a.cpp b/src/mame/drivers/gts3a.cpp index 7041ad77a4e..8cbf012e168 100644 --- a/src/mame/drivers/gts3a.cpp +++ b/src/mame/drivers/gts3a.cpp @@ -330,7 +330,7 @@ MC6845_UPDATE_ROW( gts3a_state::crtc_update_row ) } } -static MACHINE_CONFIG_START( gts3a, gts3a_state ) +static MACHINE_CONFIG_START( gts3a ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M65C02, XTAL_4MHz / 2) MCFG_CPU_PROGRAM_MAP(gts3a_map) @@ -1266,42 +1266,42 @@ ROM_START(wcsoccerd2) ROM_LOAD("yrom1.bin", 0x8000, 0x8000, CRC(8b2795b0) SHA1(b838d4e410c815421099c65b0d3b22227dae17c6)) ROM_END -GAME(1992, smb, 0, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Super Mario Brothers", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1992, smb1, smb, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Super Mario Brothers (rev.1)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1992, smb2, smb, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Super Mario Brothers (rev.2)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1992, smb3, smb, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Super Mario Brothers (rev.3)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1992, smbmush, 0, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Super Mario Brothers Mushroom World", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1992, cueball, 0, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Cue Ball Wizard", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1992, cueball2, cueball, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Cue Ball Wizard (rev.2)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1992, cueball3, cueball, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Cue Ball Wizard (rev.3)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1993, sfight2, 0, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Street Fighter II", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1993, sfight2a, sfight2, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Street Fighter II (rev.1)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1993, sfight2b, sfight2, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Street Fighter II (rev.2)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1993, teedoffp, 0, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Tee'd Off", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1993, teedoffp1, teedoffp, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Tee'd Off (rev.1)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1993, teedoffp3, teedoffp, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Tee'd Off (rev.3)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1993, gladiatp, 0, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Gladiators", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1993, wipeout, 0, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Wipeout (rev.2)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1994, rescu911, 0, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Rescue 911 (rev.1)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1994, wcsoccer, 0, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "World Challenge Soccer (rev.1)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1994, wcsoccerd2, wcsoccer, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "World Challenge Soccer (disp.rev.2)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1995, stargatp, 0, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Stargate (Pinball)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1995, stargatp1, stargatp, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Stargate (rev.1)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1995, stargatp2, stargatp, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Stargate (rev.2)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1995, stargatp3, stargatp, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Stargate (rev.3)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1995, stargatp4, stargatp, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Stargate (rev.4)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1995, stargatp5, stargatp, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Stargate (rev.5)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1995, shaqattq, 0, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Shaq Attaq (rev.5)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1995, shaqattq2, shaqattq, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Shaq Attaq (rev.2)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1994, freddy, 0, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Freddy: A Nightmare on Elm Street (rev.3)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1994, freddy4, freddy, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Freddy: A Nightmare on Elm Street (rev.4)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1995, bighurt, 0, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Frank Thomas' Big Hurt (rev.3)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1995, waterwld, 0, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Waterworld (rev.3)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1995, waterwld2, waterwld, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Waterworld (rev.2)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1995, snspares, 0, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Strikes n' Spares (rev.6)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1995, snspares2, snspares, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Strikes n' Spares (rev.2)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1995, snspares1, snspares, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Strikes n' Spares (rev.1)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1995, andretti, 0, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Mario Andretti", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1995, andretti4, andretti, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Mario Andretti (rev.T4)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1996, barbwire, 0, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Barb Wire", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1996, brooks, 0, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Brooks & Dunn (rev.T1)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1992, smb, 0, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Super Mario Brothers", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1992, smb1, smb, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Super Mario Brothers (rev.1)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1992, smb2, smb, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Super Mario Brothers (rev.2)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1992, smb3, smb, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Super Mario Brothers (rev.3)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1992, smbmush, 0, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Super Mario Brothers Mushroom World", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1992, cueball, 0, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Cue Ball Wizard", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1992, cueball2, cueball, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Cue Ball Wizard (rev.2)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1992, cueball3, cueball, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Cue Ball Wizard (rev.3)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1993, sfight2, 0, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Street Fighter II", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1993, sfight2a, sfight2, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Street Fighter II (rev.1)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1993, sfight2b, sfight2, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Street Fighter II (rev.2)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1993, teedoffp, 0, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Tee'd Off", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1993, teedoffp1, teedoffp, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Tee'd Off (rev.1)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1993, teedoffp3, teedoffp, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Tee'd Off (rev.3)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1993, gladiatp, 0, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Gladiators", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1993, wipeout, 0, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Wipeout (rev.2)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1994, rescu911, 0, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Rescue 911 (rev.1)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1994, wcsoccer, 0, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "World Challenge Soccer (rev.1)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1994, wcsoccerd2, wcsoccer, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "World Challenge Soccer (disp.rev.2)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1995, stargatp, 0, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Stargate (Pinball)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1995, stargatp1, stargatp, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Stargate (rev.1)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1995, stargatp2, stargatp, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Stargate (rev.2)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1995, stargatp3, stargatp, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Stargate (rev.3)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1995, stargatp4, stargatp, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Stargate (rev.4)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1995, stargatp5, stargatp, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Stargate (rev.5)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1995, shaqattq, 0, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Shaq Attaq (rev.5)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1995, shaqattq2, shaqattq, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Shaq Attaq (rev.2)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1994, freddy, 0, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Freddy: A Nightmare on Elm Street (rev.3)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1994, freddy4, freddy, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Freddy: A Nightmare on Elm Street (rev.4)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1995, bighurt, 0, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Frank Thomas' Big Hurt (rev.3)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1995, waterwld, 0, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Waterworld (rev.3)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1995, waterwld2, waterwld, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Waterworld (rev.2)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1995, snspares, 0, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Strikes n' Spares (rev.6)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1995, snspares2, snspares, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Strikes n' Spares (rev.2)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1995, snspares1, snspares, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Strikes n' Spares (rev.1)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1995, andretti, 0, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Mario Andretti", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1995, andretti4, andretti, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Mario Andretti (rev.T4)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1996, barbwire, 0, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Barb Wire", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1996, brooks, 0, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Brooks & Dunn (rev.T1)", MACHINE_IS_SKELETON_MECHANICAL) diff --git a/src/mame/drivers/gts80.cpp b/src/mame/drivers/gts80.cpp index 1bb92bf44e8..e5b3d813570 100644 --- a/src/mame/drivers/gts80.cpp +++ b/src/mame/drivers/gts80.cpp @@ -344,7 +344,7 @@ DRIVER_INIT_MEMBER( gts80_state, gts80 ) } /* with Sound Board */ -static MACHINE_CONFIG_START( gts80, gts80_state ) +static MACHINE_CONFIG_START( gts80 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, XTAL_3_579545MHz/4) MCFG_CPU_PROGRAM_MAP(gts80_map) @@ -784,28 +784,28 @@ ROM_START(s80tst) ROM_LOAD("80tst-s2.snd", 0x7800, 0x0800, CRC(1a4b1e9d) SHA1(18e7ffbdbdaf83ab1c8daa5fa5201d9f54390758)) ROM_END -/* disp1 */GAME(1981, s80tst, 0, gts80_ss, gts80, gts80_state, gts80, ROT0, "Gottlieb", "System 80 Test", MACHINE_IS_SKELETON_MECHANICAL) - -/* disp1 */GAME(1980, panthera, 0, gts80_s, gts80, gts80_state, gts80, ROT0, "Gottlieb", "Panthera", MACHINE_IS_SKELETON_MECHANICAL) -/* disp1 */GAME(1980, spidermn, 0, gts80_s, gts80, gts80_state, gts80, ROT0, "Gottlieb", "The Amazing Spider-Man", MACHINE_IS_SKELETON_MECHANICAL) -/* disp1 */GAME(1980, circusp, 0, gts80_s, gts80, gts80_state, gts80, ROT0, "Gottlieb", "Circus", MACHINE_IS_SKELETON_MECHANICAL) -/* disp1 */GAME(1980, cntforce, 0, gts80_s, gts80, gts80_state, gts80, ROT0, "Gottlieb", "Counterforce", MACHINE_IS_SKELETON_MECHANICAL) -/* disp1 */GAME(1980, starrace, 0, gts80_s, gts80, gts80_state, gts80, ROT0, "Gottlieb", "Star Race", MACHINE_IS_SKELETON_MECHANICAL) -/* disp2 */GAME(1980, jamesb, 0, gts80_s, gts80, gts80_state, gts80, ROT0, "Gottlieb", "James Bond (Timed Play)", MACHINE_IS_SKELETON_MECHANICAL) -/* disp2 */GAME(1980, jamesb2, jamesb, gts80_s, gts80, gts80_state, gts80, ROT0, "Gottlieb", "James Bond (3/5-Ball)", MACHINE_IS_SKELETON_MECHANICAL) -/* cust */GAME(1980, timeline, 0, gts80_s, gts80, gts80_state, gts80, ROT0, "Gottlieb", "Time Line", MACHINE_IS_SKELETON_MECHANICAL) -/* disp1 */GAME(1981, forceii, 0, gts80_s, gts80, gts80_state, gts80, ROT0, "Gottlieb", "Force II", MACHINE_IS_SKELETON_MECHANICAL) -/* cust */GAME(1981, pnkpnthr, 0, gts80_s, gts80, gts80_state, gts80, ROT0, "Gottlieb", "Pink Panther", MACHINE_IS_SKELETON_MECHANICAL) -/* disp1 */GAME(1981, marsp, 0, gts80_ss, gts80, gts80_state, gts80, ROT0, "Gottlieb", "Mars - God of War", MACHINE_IS_SKELETON_MECHANICAL) +/* disp1 */GAME(1981, s80tst, 0, gts80_ss, gts80, gts80_state, gts80, ROT0, "Gottlieb", "System 80 Test", MACHINE_IS_SKELETON_MECHANICAL) + +/* disp1 */GAME(1980, panthera, 0, gts80_s, gts80, gts80_state, gts80, ROT0, "Gottlieb", "Panthera", MACHINE_IS_SKELETON_MECHANICAL) +/* disp1 */GAME(1980, spidermn, 0, gts80_s, gts80, gts80_state, gts80, ROT0, "Gottlieb", "The Amazing Spider-Man", MACHINE_IS_SKELETON_MECHANICAL) +/* disp1 */GAME(1980, circusp, 0, gts80_s, gts80, gts80_state, gts80, ROT0, "Gottlieb", "Circus", MACHINE_IS_SKELETON_MECHANICAL) +/* disp1 */GAME(1980, cntforce, 0, gts80_s, gts80, gts80_state, gts80, ROT0, "Gottlieb", "Counterforce", MACHINE_IS_SKELETON_MECHANICAL) +/* disp1 */GAME(1980, starrace, 0, gts80_s, gts80, gts80_state, gts80, ROT0, "Gottlieb", "Star Race", MACHINE_IS_SKELETON_MECHANICAL) +/* disp2 */GAME(1980, jamesb, 0, gts80_s, gts80, gts80_state, gts80, ROT0, "Gottlieb", "James Bond (Timed Play)", MACHINE_IS_SKELETON_MECHANICAL) +/* disp2 */GAME(1980, jamesb2, jamesb, gts80_s, gts80, gts80_state, gts80, ROT0, "Gottlieb", "James Bond (3/5-Ball)", MACHINE_IS_SKELETON_MECHANICAL) +/* cust */GAME(1980, timeline, 0, gts80_s, gts80, gts80_state, gts80, ROT0, "Gottlieb", "Time Line", MACHINE_IS_SKELETON_MECHANICAL) +/* disp1 */GAME(1981, forceii, 0, gts80_s, gts80, gts80_state, gts80, ROT0, "Gottlieb", "Force II", MACHINE_IS_SKELETON_MECHANICAL) +/* cust */GAME(1981, pnkpnthr, 0, gts80_s, gts80, gts80_state, gts80, ROT0, "Gottlieb", "Pink Panther", MACHINE_IS_SKELETON_MECHANICAL) +/* disp1 */GAME(1981, marsp, 0, gts80_ss, gts80, gts80_state, gts80, ROT0, "Gottlieb", "Mars - God of War", MACHINE_IS_SKELETON_MECHANICAL) /* disp1 */GAME(1981, marspf, marsp, gts80_ss, gts80, gts80_state, gts80, ROT0, "Gottlieb", "Mars - God of War (French speech)", MACHINE_IS_SKELETON_MECHANICAL) -/* disp1 */GAME(1981, marspp, marsp, gts80_ss, gts80, gts80_state, gts80, ROT0, "Gottlieb", "Mars - God of War (Prototype)", MACHINE_IS_SKELETON_MECHANICAL) -/* disp1 */GAME(1981, vlcno_ax, 0, gts80_ss, gts80, gts80_state, gts80, ROT0, "Gottlieb", "Volcano", MACHINE_IS_SKELETON_MECHANICAL) -/* disp1 */GAME(1981, vlcno_1c, 0, gts80_s, gts80, gts80_state, gts80, ROT0, "Gottlieb", "Volcano (Sound Only set 1)", MACHINE_IS_SKELETON_MECHANICAL) -/* disp1 */GAME(1981, vlcno_1b, vlcno_1c, gts80_s, gts80, gts80_state, gts80, ROT0, "Gottlieb", "Volcano (Sound Only set 2)", MACHINE_IS_SKELETON_MECHANICAL) -/* disp1 */GAME(1981, vlcno_1a, vlcno_1c, gts80_s, gts80, gts80_state, gts80, ROT0, "Gottlieb", "Volcano (Sound Only set 3)", MACHINE_IS_SKELETON_MECHANICAL) -/* disp2 */GAME(1981, blckhole, 0, gts80_ss, gts80, gts80_state, gts80, ROT0, "Gottlieb", "Black Hole (Rev. 4)", MACHINE_IS_SKELETON_MECHANICAL) -/* disp2 */GAME(1981, blckhole2, blckhole, gts80_ss, gts80, gts80_state, gts80, ROT0, "Gottlieb", "Black Hole (Rev. 2)", MACHINE_IS_SKELETON_MECHANICAL) -/* disp2 */GAME(1981, blckhols, 0, gts80_s, gts80, gts80_state, gts80, ROT0, "Gottlieb", "Black Hole (Sound Only)", MACHINE_IS_SKELETON_MECHANICAL) -/* disp2 */GAME(1982, hh, 0, gts80_hh, gts80, gts80_state, gts80, ROT0, "Gottlieb", "Haunted House (Rev. 2)", MACHINE_IS_SKELETON_MECHANICAL) -/* disp2 */GAME(1982, hh_1, hh, gts80_hh, gts80, gts80_state, gts80, ROT0, "Gottlieb", "Haunted House (Rev. 1)", MACHINE_IS_SKELETON_MECHANICAL) -/* disp2 */GAME(1981, eclipse, 0, gts80_s, gts80, gts80_state, gts80, ROT0, "Gottlieb", "Eclipse", MACHINE_IS_SKELETON_MECHANICAL) +/* disp1 */GAME(1981, marspp, marsp, gts80_ss, gts80, gts80_state, gts80, ROT0, "Gottlieb", "Mars - God of War (Prototype)", MACHINE_IS_SKELETON_MECHANICAL) +/* disp1 */GAME(1981, vlcno_ax, 0, gts80_ss, gts80, gts80_state, gts80, ROT0, "Gottlieb", "Volcano", MACHINE_IS_SKELETON_MECHANICAL) +/* disp1 */GAME(1981, vlcno_1c, 0, gts80_s, gts80, gts80_state, gts80, ROT0, "Gottlieb", "Volcano (Sound Only set 1)", MACHINE_IS_SKELETON_MECHANICAL) +/* disp1 */GAME(1981, vlcno_1b, vlcno_1c, gts80_s, gts80, gts80_state, gts80, ROT0, "Gottlieb", "Volcano (Sound Only set 2)", MACHINE_IS_SKELETON_MECHANICAL) +/* disp1 */GAME(1981, vlcno_1a, vlcno_1c, gts80_s, gts80, gts80_state, gts80, ROT0, "Gottlieb", "Volcano (Sound Only set 3)", MACHINE_IS_SKELETON_MECHANICAL) +/* disp2 */GAME(1981, blckhole, 0, gts80_ss, gts80, gts80_state, gts80, ROT0, "Gottlieb", "Black Hole (Rev. 4)", MACHINE_IS_SKELETON_MECHANICAL) +/* disp2 */GAME(1981, blckhole2, blckhole, gts80_ss, gts80, gts80_state, gts80, ROT0, "Gottlieb", "Black Hole (Rev. 2)", MACHINE_IS_SKELETON_MECHANICAL) +/* disp2 */GAME(1981, blckhols, 0, gts80_s, gts80, gts80_state, gts80, ROT0, "Gottlieb", "Black Hole (Sound Only)", MACHINE_IS_SKELETON_MECHANICAL) +/* disp2 */GAME(1982, hh, 0, gts80_hh, gts80, gts80_state, gts80, ROT0, "Gottlieb", "Haunted House (Rev. 2)", MACHINE_IS_SKELETON_MECHANICAL) +/* disp2 */GAME(1982, hh_1, hh, gts80_hh, gts80, gts80_state, gts80, ROT0, "Gottlieb", "Haunted House (Rev. 1)", MACHINE_IS_SKELETON_MECHANICAL) +/* disp2 */GAME(1981, eclipse, 0, gts80_s, gts80, gts80_state, gts80, ROT0, "Gottlieb", "Eclipse", MACHINE_IS_SKELETON_MECHANICAL) diff --git a/src/mame/drivers/gts80a.cpp b/src/mame/drivers/gts80a.cpp index e1249f80893..28656075ca2 100644 --- a/src/mame/drivers/gts80a.cpp +++ b/src/mame/drivers/gts80a.cpp @@ -335,7 +335,7 @@ DRIVER_INIT_MEMBER( gts80a_state, gts80a ) } /* with Sound Board */ -static MACHINE_CONFIG_START( gts80a, gts80a_state ) +static MACHINE_CONFIG_START( gts80a ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, XTAL_3_579545MHz/4) MCFG_CPU_PROGRAM_MAP(gts80a_map) @@ -441,7 +441,7 @@ static ADDRESS_MAP_START( video_io_map, AS_IO, 8, caveman_state ) ADDRESS_MAP_END -static MACHINE_CONFIG_DERIVED_CLASS( caveman, gts80a_ss, caveman_state ) +static MACHINE_CONFIG_DERIVED( caveman, gts80a_ss ) MCFG_CPU_ADD("video_cpu", I8088, 5000000) MCFG_CPU_PROGRAM_MAP(video_map) MCFG_CPU_IO_MAP(video_io_map) @@ -804,29 +804,29 @@ ROM_START(touchdn) ROM_END -/* cust */GAME(1981, dvlsdre, 0, gts80a_ss, gts80a, gts80a_state, gts80a, ROT0, "Gottlieb", "Devil's Dare", MACHINE_IS_SKELETON_MECHANICAL) -/* cust */GAME(1981, dvlsdre2, 0, gts80a_s, gts80a, gts80a_state, gts80a, ROT0, "Gottlieb", "Devil's Dare (Sound Only)", MACHINE_IS_SKELETON_MECHANICAL) -/* cust */GAME(1982, rocky, 0, gts80a_ss, gts80a, gts80a_state, gts80a, ROT0, "Gottlieb", "Rocky", MACHINE_IS_SKELETON_MECHANICAL) -/* cust */GAME(1982, rockyf, rocky, gts80a_ss, gts80a, gts80a_state, gts80a, ROT0, "Gottlieb", "Rocky (French speech)", MACHINE_IS_SKELETON_MECHANICAL) -/* cust */GAME(1982, spirit, 0, gts80a_ss, gts80a, gts80a_state, gts80a, ROT0, "Gottlieb", "Spirit", MACHINE_IS_SKELETON_MECHANICAL) -/* disp3 */GAME(1982, punk, 0, gts80a_ss, gts80a, gts80a_state, gts80a, ROT0, "Gottlieb", "Punk!", MACHINE_IS_SKELETON_MECHANICAL) -/* cust */GAME(1982, striker, 0, gts80a_ss, gts80a, gts80a_state, gts80a, ROT0, "Gottlieb", "Striker", MACHINE_IS_SKELETON_MECHANICAL) -/* cust */GAME(1983, krullp, 0, gts80a_ss, gts80a, gts80a_state, gts80a, ROT0, "Gottlieb", "Krull (Pinball)", MACHINE_IS_SKELETON_MECHANICAL) -/* disp3 */GAME(1983, qbquest, 0, gts80a_ss, gts80a, gts80a_state, gts80a, ROT0, "Gottlieb", "Q*Bert's Quest", MACHINE_IS_SKELETON_MECHANICAL) -/* disp3 */GAME(1983, sorbit, 0, gts80a_ss, gts80a, gts80a_state, gts80a, ROT0, "Gottlieb", "Super Orbit", MACHINE_IS_SKELETON_MECHANICAL) -/* disp3 */GAME(1983, rflshdlx, 0, gts80a_ss, gts80a, gts80a_state, gts80a, ROT0, "Gottlieb", "Royal Flush Deluxe", MACHINE_IS_SKELETON_MECHANICAL) -/* cust */GAME(1983, goinnuts, 0, gts80a_ss, gts80a, gts80a_state, gts80a, ROT0, "Gottlieb", "Goin' Nuts", MACHINE_IS_SKELETON_MECHANICAL) -/* disp3 */GAME(1983, amazonh, 0, gts80a_ss, gts80a, gts80a_state, gts80a, ROT0, "Gottlieb", "Amazon Hunt", MACHINE_IS_SKELETON_MECHANICAL) -/* disp3 */GAME(1983, amazonha, amazonh,gts80a_ss, gts80a, gts80a_state, gts80a, ROT0, "Gottlieb", "Amazon Hunt (alternate set)", MACHINE_IS_SKELETON_MECHANICAL) -/* disp3 */GAME(1983, rackempp, 0, gts80a_s, gts80a, gts80a_state, gts80a, ROT0, "Gottlieb", "Rack 'em Up! (Pinball)", MACHINE_IS_SKELETON_MECHANICAL) -/* disp3 */GAME(1983, raimfire, 0, gts80a_s, gts80a, gts80a_state, gts80a, ROT0, "Gottlieb", "Ready...Aim...Fire!", MACHINE_IS_SKELETON_MECHANICAL) -/* disp3 */GAME(1984, jack2opn, 0, gts80a_s, gts80a, gts80a_state, gts80a, ROT0, "Gottlieb", "Jacks to Open", MACHINE_IS_SKELETON_MECHANICAL) -/* disp3 */GAME(1984, touchdn, 0, gts80a_s, gts80a, gts80a_state, gts80a, ROT0, "Gottlieb", "Touchdown", MACHINE_IS_SKELETON_MECHANICAL) -/* disp3 */GAME(1984, alienstr, 0, gts80a_s, gts80a, gts80a_state, gts80a, ROT0, "Gottlieb", "Alien Star", MACHINE_IS_SKELETON_MECHANICAL) -/* disp3 */GAME(1984, thegames, 0, gts80a_s, gts80a, gts80a_state, gts80a, ROT0, "Gottlieb", "The Games", MACHINE_IS_SKELETON_MECHANICAL) -/* disp3 */GAME(1984, eldorado, 0, gts80a_s, gts80a, gts80a_state, gts80a, ROT0, "Gottlieb", "El Dorado City of Gold", MACHINE_IS_SKELETON_MECHANICAL) -/* disp3 */GAME(1985, icefever, 0, gts80a_s, gts80a, gts80a_state, gts80a, ROT0, "Gottlieb", "Ice Fever", MACHINE_IS_SKELETON_MECHANICAL) +/* cust */GAME(1981, dvlsdre, 0, gts80a_ss, gts80a, gts80a_state, gts80a, ROT0, "Gottlieb", "Devil's Dare", MACHINE_IS_SKELETON_MECHANICAL) +/* cust */GAME(1981, dvlsdre2, 0, gts80a_s, gts80a, gts80a_state, gts80a, ROT0, "Gottlieb", "Devil's Dare (Sound Only)", MACHINE_IS_SKELETON_MECHANICAL) +/* cust */GAME(1982, rocky, 0, gts80a_ss, gts80a, gts80a_state, gts80a, ROT0, "Gottlieb", "Rocky", MACHINE_IS_SKELETON_MECHANICAL) +/* cust */GAME(1982, rockyf, rocky, gts80a_ss, gts80a, gts80a_state, gts80a, ROT0, "Gottlieb", "Rocky (French speech)", MACHINE_IS_SKELETON_MECHANICAL) +/* cust */GAME(1982, spirit, 0, gts80a_ss, gts80a, gts80a_state, gts80a, ROT0, "Gottlieb", "Spirit", MACHINE_IS_SKELETON_MECHANICAL) +/* disp3 */GAME(1982, punk, 0, gts80a_ss, gts80a, gts80a_state, gts80a, ROT0, "Gottlieb", "Punk!", MACHINE_IS_SKELETON_MECHANICAL) +/* cust */GAME(1982, striker, 0, gts80a_ss, gts80a, gts80a_state, gts80a, ROT0, "Gottlieb", "Striker", MACHINE_IS_SKELETON_MECHANICAL) +/* cust */GAME(1983, krullp, 0, gts80a_ss, gts80a, gts80a_state, gts80a, ROT0, "Gottlieb", "Krull (Pinball)", MACHINE_IS_SKELETON_MECHANICAL) +/* disp3 */GAME(1983, qbquest, 0, gts80a_ss, gts80a, gts80a_state, gts80a, ROT0, "Gottlieb", "Q*Bert's Quest", MACHINE_IS_SKELETON_MECHANICAL) +/* disp3 */GAME(1983, sorbit, 0, gts80a_ss, gts80a, gts80a_state, gts80a, ROT0, "Gottlieb", "Super Orbit", MACHINE_IS_SKELETON_MECHANICAL) +/* disp3 */GAME(1983, rflshdlx, 0, gts80a_ss, gts80a, gts80a_state, gts80a, ROT0, "Gottlieb", "Royal Flush Deluxe", MACHINE_IS_SKELETON_MECHANICAL) +/* cust */GAME(1983, goinnuts, 0, gts80a_ss, gts80a, gts80a_state, gts80a, ROT0, "Gottlieb", "Goin' Nuts", MACHINE_IS_SKELETON_MECHANICAL) +/* disp3 */GAME(1983, amazonh, 0, gts80a_ss, gts80a, gts80a_state, gts80a, ROT0, "Gottlieb", "Amazon Hunt", MACHINE_IS_SKELETON_MECHANICAL) +/* disp3 */GAME(1983, amazonha, amazonh, gts80a_ss, gts80a, gts80a_state, gts80a, ROT0, "Gottlieb", "Amazon Hunt (alternate set)", MACHINE_IS_SKELETON_MECHANICAL) +/* disp3 */GAME(1983, rackempp, 0, gts80a_s, gts80a, gts80a_state, gts80a, ROT0, "Gottlieb", "Rack 'em Up! (Pinball)", MACHINE_IS_SKELETON_MECHANICAL) +/* disp3 */GAME(1983, raimfire, 0, gts80a_s, gts80a, gts80a_state, gts80a, ROT0, "Gottlieb", "Ready...Aim...Fire!", MACHINE_IS_SKELETON_MECHANICAL) +/* disp3 */GAME(1984, jack2opn, 0, gts80a_s, gts80a, gts80a_state, gts80a, ROT0, "Gottlieb", "Jacks to Open", MACHINE_IS_SKELETON_MECHANICAL) +/* disp3 */GAME(1984, touchdn, 0, gts80a_s, gts80a, gts80a_state, gts80a, ROT0, "Gottlieb", "Touchdown", MACHINE_IS_SKELETON_MECHANICAL) +/* disp3 */GAME(1984, alienstr, 0, gts80a_s, gts80a, gts80a_state, gts80a, ROT0, "Gottlieb", "Alien Star", MACHINE_IS_SKELETON_MECHANICAL) +/* disp3 */GAME(1984, thegames, 0, gts80a_s, gts80a, gts80a_state, gts80a, ROT0, "Gottlieb", "The Games", MACHINE_IS_SKELETON_MECHANICAL) +/* disp3 */GAME(1984, eldorado, 0, gts80a_s, gts80a, gts80a_state, gts80a, ROT0, "Gottlieb", "El Dorado City of Gold", MACHINE_IS_SKELETON_MECHANICAL) +/* disp3 */GAME(1985, icefever, 0, gts80a_s, gts80a, gts80a_state, gts80a, ROT0, "Gottlieb", "Ice Fever", MACHINE_IS_SKELETON_MECHANICAL) /* custom (+video) */ -GAME(1981, caveman, 0, caveman, caveman, gts80a_state, gts80a, ROT0, "Gottlieb", "Caveman (Pinball/Video Combo, set 1)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1981, cavemana, caveman, caveman, caveman, gts80a_state, gts80a, ROT0, "Gottlieb", "Caveman (Pinball/Video Combo, set 2)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1981, caveman, 0, caveman, caveman, caveman_state, gts80a, ROT0, "Gottlieb", "Caveman (Pinball/Video Combo, set 1)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1981, cavemana, caveman, caveman, caveman, caveman_state, gts80a, ROT0, "Gottlieb", "Caveman (Pinball/Video Combo, set 2)", MACHINE_IS_SKELETON_MECHANICAL) diff --git a/src/mame/drivers/gts80b.cpp b/src/mame/drivers/gts80b.cpp index ad9b87979e2..e6bcb349895 100644 --- a/src/mame/drivers/gts80b.cpp +++ b/src/mame/drivers/gts80b.cpp @@ -374,7 +374,7 @@ DRIVER_INIT_MEMBER( gts80b_state, gts80b ) } /* with Sound Board */ -static MACHINE_CONFIG_START( gts80b, gts80b_state ) +static MACHINE_CONFIG_START( gts80b ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, XTAL_3_579545MHz/4) MCFG_CPU_PROGRAM_MAP(gts80b_map) @@ -1715,71 +1715,71 @@ ROM_START(s80btest) ROM_LOAD("testd.snd", 0x8000, 0x2000, CRC(5d04a6d9) SHA1(f83bd8692146af7d234c1a32d0b688e76d1b2b85)) ROM_END -GAME(1985, bountyh, 0, gts80b_s, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Bounty Hunter", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1985, bountyhg, bountyh, gts80b_s, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Bounty Hunter (German)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1985, triplay, 0, gts80b_s, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Chicago Cubs' Triple Play", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1985, bountyh, 0, gts80b_s, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Bounty Hunter", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1985, bountyhg, bountyh, gts80b_s, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Bounty Hunter (German)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1985, triplay, 0, gts80b_s, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Chicago Cubs' Triple Play", MACHINE_IS_SKELETON_MECHANICAL) GAME(1985, triplaya, triplay, gts80b_s, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Chicago Cubs' Triple Play (alternate set)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1985, rock, 0, gts80b_s1, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Rock", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1985, rockg, rock, gts80b_s1, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Rock (German)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1985, tagteamp, 0, gts80b_s, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Tag-Team Wrestling", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1985, tagteampg, tagteamp, gts80b_s, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Tag-Team Wrestling (German)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1985, tagteamp2, tagteamp, gts80b_s, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Tag-Team Wrestling (rev.2)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1986, raven, 0, gts80b_s1, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Raven", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1986, ravena, raven, gts80b_s1, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Raven (alternate set)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1986, raveng, raven, gts80b_s1, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Raven (German)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1986, hlywoodh, 0, gts80b_s1, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Hollywood Heat", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1986, hlywoodhf, hlywoodh, gts80b_s1, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Hollywood Heat (French)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1986, hlywoodhg, hlywoodh, gts80b_s1, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Hollywood Heat (German)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1986, rock_enc, rock, gts80b_s1, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Rock Encore", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1986, rock_encg, rock, gts80b_s1, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Rock Encore (German)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1986, genesisp, 0, gts80b_s1, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Genesis", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1986, genesispf, genesisp, gts80b_s1, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Genesis (French)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1986, genesispg, genesisp, gts80b_s1, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Genesis (German)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1987, amazonh2, 0, gts80b_s1, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Amazon Hunt II (French)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1987, sprbreak, 0, gts80b_s1, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Spring Break", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1987, sprbreaka, sprbreak, gts80b_s1, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Spring Break (alternate set)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1987, sprbreakf, sprbreak, gts80b_s1, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Spring Break (French)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1987, sprbreakg, sprbreak, gts80b_s1, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Spring Break (German)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1987, sprbreaks, sprbreak, gts80b_s1, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Spring Break (single ball game)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1986, goldwing, 0, gts80b_s1, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Gold Wings", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1986, goldwingf, goldwing, gts80b_s1, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Gold Wings (French)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1986, goldwingg, goldwing, gts80b_s1, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Gold Wings (German)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1987, mntecrlo, 0, gts80b_s1, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Monte Carlo (Pinball)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1987, mntecrloa, mntecrlo, gts80b_s1, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Monte Carlo (Pinball, alternate set)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1987, mntecrlof, mntecrlo, gts80b_s1, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Monte Carlo (Pinball, French)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1987, mntecrlog, mntecrlo, gts80b_s1, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Monte Carlo (Pinball, German)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1987, mntecrlo2, mntecrlo, gts80b_s1, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Monte Carlo (Pinball, rev. 2)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1987, arena, 0, gts80b_s1, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Arena", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1987, arenaa, arena, gts80b_s1, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Arena (alternate set)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1987, arenaf, arena, gts80b_s1, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Arena (French)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1987, arenag, arena, gts80b_s1, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Arena (German)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1987, victoryp, 0, gts80b_s2, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Victory (Pinball)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1987, victorypf, victoryp, gts80b_s2, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Victory (Pinball, French)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1987, victorypg, victoryp, gts80b_s2, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Victory (Pinball, German)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1988, diamondp, 0, gts80b_s2, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Diamond Lady", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1988, diamondpf, diamondp, gts80b_s2, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Diamond Lady (French)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1988, diamondpg, diamondp, gts80b_s2, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Diamond Lady (German)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1988, txsector, 0, gts80b_s2, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "TX-Sector", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1988, txsectorf, txsector, gts80b_s2, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "TX-Sector (French)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1988, txsectorg, txsector, gts80b_s2, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "TX-Sector (German)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1989, bighouse, 0, gts80b_s3, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Big House", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1989, bighousef, bighouse, gts80b_s3, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Big House (French)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1989, bighouseg, bighouse, gts80b_s3, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Big House (German)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1988, robowars, 0, gts80b_s2, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Robo-War", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1988, robowarsf, robowars, gts80b_s2, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Robo-War (French)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1988, excalibr, 0, gts80b_s3, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Excalibur", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1988, excalibrf, excalibr, gts80b_s3, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Excalibur (French)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1988, excalibrg, excalibr, gts80b_s3, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Excalibur (German)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1988, badgirls, 0, gts80b_s3, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Bad Girls", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1988, badgirlsf, badgirls, gts80b_s3, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Bad Girls (French)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1988, badgirlsg, badgirls, gts80b_s3, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Bad Girls (German)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1989, hotshots, 0, gts80b_s2, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Hot Shots", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1989, hotshotsf, hotshots, gts80b_s2, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Hot Shots (French)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1989, hotshotsg, hotshots, gts80b_s2, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Hot Shots (German)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1989, bonebstr, 0, bonebstr, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Bone Busters Inc.", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1989, bonebstrf, bonebstr, bonebstr, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Bone Busters Inc. (French)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1989, bonebstrg, bonebstr, bonebstr, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Bone Busters Inc. (German)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1989, nmoves, 0, gts80b_s2, gts80b, gts80b_state, gts80b, ROT0, "International Concepts", "Night Moves", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1987, amazonh3, 0, gts80b_s1, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Amazon Hunt III (French)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1987, amazonh3a, amazonh3, gts80b_s1, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Amazon Hunt III (rev. 1, French)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(198?, s80btest, 0, gts80b_s2, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "System 80B Test", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1985, rock, 0, gts80b_s1, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Rock", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1985, rockg, rock, gts80b_s1, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Rock (German)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1985, tagteamp, 0, gts80b_s, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Tag-Team Wrestling", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1985, tagteampg, tagteamp, gts80b_s, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Tag-Team Wrestling (German)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1985, tagteamp2, tagteamp, gts80b_s, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Tag-Team Wrestling (rev.2)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1986, raven, 0, gts80b_s1, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Raven", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1986, ravena, raven, gts80b_s1, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Raven (alternate set)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1986, raveng, raven, gts80b_s1, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Raven (German)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1986, hlywoodh, 0, gts80b_s1, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Hollywood Heat", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1986, hlywoodhf, hlywoodh, gts80b_s1, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Hollywood Heat (French)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1986, hlywoodhg, hlywoodh, gts80b_s1, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Hollywood Heat (German)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1986, rock_enc, rock, gts80b_s1, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Rock Encore", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1986, rock_encg, rock, gts80b_s1, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Rock Encore (German)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1986, genesisp, 0, gts80b_s1, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Genesis", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1986, genesispf, genesisp, gts80b_s1, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Genesis (French)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1986, genesispg, genesisp, gts80b_s1, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Genesis (German)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1987, amazonh2, 0, gts80b_s1, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Amazon Hunt II (French)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1987, sprbreak, 0, gts80b_s1, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Spring Break", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1987, sprbreaka, sprbreak, gts80b_s1, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Spring Break (alternate set)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1987, sprbreakf, sprbreak, gts80b_s1, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Spring Break (French)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1987, sprbreakg, sprbreak, gts80b_s1, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Spring Break (German)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1987, sprbreaks, sprbreak, gts80b_s1, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Spring Break (single ball game)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1986, goldwing, 0, gts80b_s1, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Gold Wings", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1986, goldwingf, goldwing, gts80b_s1, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Gold Wings (French)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1986, goldwingg, goldwing, gts80b_s1, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Gold Wings (German)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1987, mntecrlo, 0, gts80b_s1, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Monte Carlo (Pinball)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1987, mntecrloa, mntecrlo, gts80b_s1, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Monte Carlo (Pinball, alternate set)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1987, mntecrlof, mntecrlo, gts80b_s1, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Monte Carlo (Pinball, French)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1987, mntecrlog, mntecrlo, gts80b_s1, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Monte Carlo (Pinball, German)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1987, mntecrlo2, mntecrlo, gts80b_s1, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Monte Carlo (Pinball, rev. 2)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1987, arena, 0, gts80b_s1, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Arena", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1987, arenaa, arena, gts80b_s1, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Arena (alternate set)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1987, arenaf, arena, gts80b_s1, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Arena (French)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1987, arenag, arena, gts80b_s1, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Arena (German)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1987, victoryp, 0, gts80b_s2, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Victory (Pinball)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1987, victorypf, victoryp, gts80b_s2, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Victory (Pinball, French)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1987, victorypg, victoryp, gts80b_s2, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Victory (Pinball, German)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1988, diamondp, 0, gts80b_s2, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Diamond Lady", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1988, diamondpf, diamondp, gts80b_s2, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Diamond Lady (French)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1988, diamondpg, diamondp, gts80b_s2, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Diamond Lady (German)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1988, txsector, 0, gts80b_s2, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "TX-Sector", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1988, txsectorf, txsector, gts80b_s2, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "TX-Sector (French)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1988, txsectorg, txsector, gts80b_s2, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "TX-Sector (German)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1989, bighouse, 0, gts80b_s3, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Big House", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1989, bighousef, bighouse, gts80b_s3, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Big House (French)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1989, bighouseg, bighouse, gts80b_s3, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Big House (German)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1988, robowars, 0, gts80b_s2, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Robo-War", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1988, robowarsf, robowars, gts80b_s2, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Robo-War (French)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1988, excalibr, 0, gts80b_s3, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Excalibur", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1988, excalibrf, excalibr, gts80b_s3, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Excalibur (French)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1988, excalibrg, excalibr, gts80b_s3, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Excalibur (German)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1988, badgirls, 0, gts80b_s3, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Bad Girls", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1988, badgirlsf, badgirls, gts80b_s3, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Bad Girls (French)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1988, badgirlsg, badgirls, gts80b_s3, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Bad Girls (German)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1989, hotshots, 0, gts80b_s2, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Hot Shots", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1989, hotshotsf, hotshots, gts80b_s2, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Hot Shots (French)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1989, hotshotsg, hotshots, gts80b_s2, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Hot Shots (German)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1989, bonebstr, 0, bonebstr, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Bone Busters Inc.", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1989, bonebstrf, bonebstr, bonebstr, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Bone Busters Inc. (French)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1989, bonebstrg, bonebstr, bonebstr, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Bone Busters Inc. (German)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1989, nmoves, 0, gts80b_s2, gts80b, gts80b_state, gts80b, ROT0, "International Concepts", "Night Moves", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1987, amazonh3, 0, gts80b_s1, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Amazon Hunt III (French)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1987, amazonh3a, amazonh3, gts80b_s1, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Amazon Hunt III (rev. 1, French)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(198?, s80btest, 0, gts80b_s2, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "System 80B Test", MACHINE_IS_SKELETON_MECHANICAL) diff --git a/src/mame/drivers/guab.cpp b/src/mame/drivers/guab.cpp index 7ef39617c86..56d18f3568c 100644 --- a/src/mame/drivers/guab.cpp +++ b/src/mame/drivers/guab.cpp @@ -101,7 +101,7 @@ private: required_device m_maincpu; required_device m_tms34061; required_device m_sn; - required_device m_fdc; + required_device m_fdc; required_device m_floppy; required_device m_palette; @@ -126,7 +126,7 @@ static ADDRESS_MAP_START( guab_map, AS_PROGRAM, 16, guab_state ) AM_RANGE(0x0c00a0, 0x0c00a1) AM_DEVREADWRITE8("acia6850_2", acia6850_device, status_r, control_w, 0x00ff) AM_RANGE(0x0c00a2, 0x0c00a3) AM_DEVREADWRITE8("acia6850_2", acia6850_device, data_r, data_w, 0x00ff) AM_RANGE(0x0c00c0, 0x0c00cf) AM_DEVREADWRITE8("6840ptm", ptm6840_device, read, write, 0x00ff) - AM_RANGE(0x0c00e0, 0x0c00e7) AM_DEVREADWRITE8("fdc", wd1773_t, read, write, 0x00ff) + AM_RANGE(0x0c00e0, 0x0c00e7) AM_DEVREADWRITE8("fdc", wd1773_device, read, write, 0x00ff) AM_RANGE(0x080000, 0x080fff) AM_RAM AM_RANGE(0x100000, 0x100001) AM_DEVREADWRITE8("ef9369", ef9369_device, data_r, data_w, 0x00ff) AM_RANGE(0x100002, 0x100003) AM_DEVWRITE8("ef9369", ef9369_device, address_w, 0x00ff) @@ -449,7 +449,7 @@ SLOT_INTERFACE_END // MACHINE DEFINTIONS //************************************************************************** -static MACHINE_CONFIG_START( guab, guab_state ) +static MACHINE_CONFIG_START( guab ) /* TODO: Verify clock */ MCFG_CPU_ADD("maincpu", M68000, 8000000) MCFG_CPU_PROGRAM_MAP(guab_map) @@ -553,7 +553,7 @@ ROM_END // SYSTEM DRIVERS //************************************************************************** -// YEAR NAME PARENT MACHINE INPUT CLASS INIT ROTATION COMPANY FULLNAME FLAGS -GAME( 1986, guab, 0, guab, guab, driver_device, 0, ROT0, "JPM", "Give us a Break", 0 ) -GAME( 1986, crisscrs, 0, guab, guab, driver_device, 0, ROT0, "JPM", "Criss Cross (Sweden)", MACHINE_NOT_WORKING ) -GAME( 1988, tenup, 0, guab, tenup, driver_device, 0, ROT0, "JPM", "Ten Up", 0 ) +// YEAR NAME PARENT MACHINE INPUT CLASS INIT ROTATION COMPANY FULLNAME FLAGS +GAME( 1986, guab, 0, guab, guab, guab_state, 0, ROT0, "JPM", "Give us a Break", 0 ) +GAME( 1986, crisscrs, 0, guab, guab, guab_state, 0, ROT0, "JPM", "Criss Cross (Sweden)", MACHINE_NOT_WORKING ) +GAME( 1988, tenup, 0, guab, tenup, guab_state, 0, ROT0, "JPM", "Ten Up", 0 ) diff --git a/src/mame/drivers/gumbo.cpp b/src/mame/drivers/gumbo.cpp index d0f9450a544..8cff2256311 100644 --- a/src/mame/drivers/gumbo.cpp +++ b/src/mame/drivers/gumbo.cpp @@ -233,7 +233,7 @@ static GFXDECODE_START( gumbo ) GFXDECODE_END -static MACHINE_CONFIG_START( gumbo, gumbo_state ) +static MACHINE_CONFIG_START( gumbo ) MCFG_CPU_ADD("maincpu", M68000, XTAL_14_31818MHz/2) MCFG_CPU_PROGRAM_MAP(gumbo_map) @@ -254,7 +254,7 @@ static MACHINE_CONFIG_START( gumbo, gumbo_state ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_OKIM6295_ADD("oki", XTAL_14_31818MHz/16, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki", XTAL_14_31818MHz/16, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.47) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.47) MACHINE_CONFIG_END @@ -397,10 +397,10 @@ ROM_START( dblpointd ) ROM_LOAD( "d15.bin", 0x40000, 0x40000, CRC(6b899a51) SHA1(04114ec9695caaac722800ac1a4ffb563ec433c9) ) ROM_END -GAME( 1994, gumbo, 0, gumbo, gumbo, driver_device, 0, ROT0, "Min Corp.", "Gumbo", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, mspuzzleg,gumbo, gumbo, gumbo, driver_device, 0, ROT0, "Min Corp.", "Miss Puzzle (Clone of Gumbo)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, msbingo, 0, mspuzzle, msbingo, driver_device, 0, ROT0, "Min Corp.", "Miss Bingo", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, mspuzzle, 0, mspuzzle, mspuzzle, driver_device, 0, ROT90, "Min Corp.", "Miss Puzzle", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, mspuzzlen,mspuzzle, mspuzzle, mspuzzle, driver_device, 0, ROT90, "Min Corp.", "Miss Puzzle (Nudes)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) -GAME( 1995, dblpoint, 0, dblpoint, dblpoint, driver_device, 0, ROT0, "Min Corp.", "Double Point", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, dblpointd,dblpoint, dblpoint, dblpoint, driver_device, 0, ROT0, "bootleg? (Dong Bang Electron)", "Double Point (Dong Bang Electron, bootleg?)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, gumbo, 0, gumbo, gumbo, gumbo_state, 0, ROT0, "Min Corp.", "Gumbo", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, mspuzzleg,gumbo, gumbo, gumbo, gumbo_state, 0, ROT0, "Min Corp.", "Miss Puzzle (Clone of Gumbo)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, msbingo, 0, mspuzzle, msbingo, gumbo_state, 0, ROT0, "Min Corp.", "Miss Bingo", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, mspuzzle, 0, mspuzzle, mspuzzle, gumbo_state, 0, ROT90, "Min Corp.", "Miss Puzzle", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, mspuzzlen,mspuzzle, mspuzzle, mspuzzle, gumbo_state, 0, ROT90, "Min Corp.", "Miss Puzzle (Nudes)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +GAME( 1995, dblpoint, 0, dblpoint, dblpoint, gumbo_state, 0, ROT0, "Min Corp.", "Double Point", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, dblpointd,dblpoint, dblpoint, dblpoint, gumbo_state, 0, ROT0, "bootleg? (Dong Bang Electron)", "Double Point (Dong Bang Electron, bootleg?)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/gunbustr.cpp b/src/mame/drivers/gunbustr.cpp index e8fe44a9b02..2c6b8970702 100644 --- a/src/mame/drivers/gunbustr.cpp +++ b/src/mame/drivers/gunbustr.cpp @@ -276,7 +276,7 @@ GFXDECODE_END MACHINE DRIVERS ***********************************************************/ -static MACHINE_CONFIG_START( gunbustr, gunbustr_state ) +static MACHINE_CONFIG_START( gunbustr ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68EC020, XTAL_16MHz) @@ -440,6 +440,6 @@ DRIVER_INIT_MEMBER(gunbustr_state,gunbustrj) m_coin_lockout = false; } -GAME( 1992, gunbustr, 0, gunbustr, gunbustr, gunbustr_state, gunbustr, ORIENTATION_FLIP_X, "Taito Corporation Japan", "Gunbuster (World)", 0 ) -GAME( 1992, gunbustru, gunbustr, gunbustr, gunbustr, gunbustr_state, gunbustr, ORIENTATION_FLIP_X, "Taito America Corporation", "Gunbuster (US)", 0 ) -GAME( 1992, gunbustrj, gunbustr, gunbustr, gunbustr, gunbustr_state, gunbustrj,ORIENTATION_FLIP_X, "Taito Corporation", "Gunbuster (Japan)", 0 ) +GAME( 1992, gunbustr, 0, gunbustr, gunbustr, gunbustr_state, gunbustr, ORIENTATION_FLIP_X, "Taito Corporation Japan", "Gunbuster (World)", 0 ) +GAME( 1992, gunbustru, gunbustr, gunbustr, gunbustr, gunbustr_state, gunbustr, ORIENTATION_FLIP_X, "Taito America Corporation", "Gunbuster (US)", 0 ) +GAME( 1992, gunbustrj, gunbustr, gunbustr, gunbustr, gunbustr_state, gunbustrj,ORIENTATION_FLIP_X, "Taito Corporation", "Gunbuster (Japan)", 0 ) diff --git a/src/mame/drivers/gundealr.cpp b/src/mame/drivers/gundealr.cpp index 957968f49f9..d8f8efb793d 100644 --- a/src/mame/drivers/gundealr.cpp +++ b/src/mame/drivers/gundealr.cpp @@ -414,7 +414,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(gundealr_state::gundealr_scanline) m_maincpu->set_input_line_and_vector(0, HOLD_LINE,0xcf); /* RST 10h */ } -static MACHINE_CONFIG_START( gundealr, gundealr_state ) +static MACHINE_CONFIG_START( gundealr ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_12MHz/2) /* 6 MHz verified for Yam! Yam!? */ @@ -649,11 +649,11 @@ ROM_END -GAME( 1990, gundealr, 0, gundealr, gundealr, driver_device, 0, ROT270, "Dooyong", "Gun Dealer", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, gundealra, gundealr, gundealr, gundealr, driver_device, 0, ROT270, "Dooyong", "Gun Dealer (alt card set)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, gundealrt, gundealr, gundealr, gundealt, driver_device, 0, ROT270, "Dooyong (Tecmo license)", "Gun Dealer (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, gundealrbl, gundealr, yamyam, gundealr, driver_device, 0, ROT270, "bootleg", "Gun Dealer (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, gundealr, 0, gundealr, gundealr, gundealr_state, 0, ROT270, "Dooyong", "Gun Dealer", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, gundealra, gundealr, gundealr, gundealr, gundealr_state, 0, ROT270, "Dooyong", "Gun Dealer (alt card set)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, gundealrt, gundealr, gundealr, gundealt, gundealr_state, 0, ROT270, "Dooyong (Tecmo license)", "Gun Dealer (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, gundealrbl, gundealr, yamyam, gundealr, gundealr_state, 0, ROT270, "bootleg", "Gun Dealer (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, yamyam, 0, yamyam, yamyam, driver_device, 0, ROT0, "Dooyong", "Yam! Yam!?", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, yamyamk, yamyam, yamyam, yamyam, driver_device, 0, ROT0, "Dooyong", "Yam! Yam!? (Korea)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, wiseguy, yamyam, yamyam, yamyam, driver_device, 0, ROT0, "Dooyong", "Wise Guy", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, yamyam, 0, yamyam, yamyam, gundealr_state, 0, ROT0, "Dooyong", "Yam! Yam!?", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, yamyamk, yamyam, yamyam, yamyam, gundealr_state, 0, ROT0, "Dooyong", "Yam! Yam!? (Korea)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, wiseguy, yamyam, yamyam, yamyam, gundealr_state, 0, ROT0, "Dooyong", "Wise Guy", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/gunpey.cpp b/src/mame/drivers/gunpey.cpp index 8b611737423..46a0d91f5db 100644 --- a/src/mame/drivers/gunpey.cpp +++ b/src/mame/drivers/gunpey.cpp @@ -1438,7 +1438,7 @@ GFXDECODE_END /***************************************************************************************/ -static MACHINE_CONFIG_START( gunpey, gunpey_state ) +static MACHINE_CONFIG_START( gunpey ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", V30, 57242400 / 4) @@ -1457,7 +1457,7 @@ static MACHINE_CONFIG_START( gunpey, gunpey_state ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker","rspeaker") - MCFG_OKIM6295_ADD("oki", XTAL_16_9344MHz / 8, OKIM6295_PIN7_LOW) + MCFG_OKIM6295_ADD("oki", XTAL_16_9344MHz / 8, PIN7_LOW) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.25) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.25) @@ -1500,4 +1500,4 @@ DRIVER_INIT_MEMBER(gunpey_state,gunpey) // ... } -GAME( 2000, gunpey, 0, gunpey, gunpey, gunpey_state, gunpey, ROT0, "Banpresto", "Gunpey (Japan)",MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS) +GAME( 2000, gunpey, 0, gunpey, gunpey, gunpey_state, gunpey, ROT0, "Banpresto", "Gunpey (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS ) diff --git a/src/mame/drivers/gunsmoke.cpp b/src/mame/drivers/gunsmoke.cpp index fc62ca64daf..b8a18cd3377 100644 --- a/src/mame/drivers/gunsmoke.cpp +++ b/src/mame/drivers/gunsmoke.cpp @@ -299,7 +299,7 @@ void gunsmoke_state::machine_reset() m_sprite3bank = 0; } -static MACHINE_CONFIG_START( gunsmoke, gunsmoke_state ) +static MACHINE_CONFIG_START( gunsmoke ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 4000000) // 4 MHz @@ -649,9 +649,9 @@ ROM_END // this information is not displayed onscreen -GAME( 1985, gunsmoke, 0, gunsmoke, gunsmoke, driver_device, 0, ROT270, "Capcom", "Gun.Smoke (World, 851115)", MACHINE_SUPPORTS_SAVE ) // GSE_03 -GAME( 1985, gunsmokeb, gunsmoke, gunsmoke, gunsmoke, driver_device, 0, ROT270, "bootleg", "Gun.Smoke (World, 851115) (bootleg)", MACHINE_SUPPORTS_SAVE ) // based on above version, warning message patched out -GAME( 1985, gunsmokej, gunsmoke, gunsmoke, gunsmoke, driver_device, 0, ROT270, "Capcom", "Gun.Smoke (Japan, 851115)", MACHINE_SUPPORTS_SAVE ) // GSJ_03 -GAME( 1986, gunsmokeu, gunsmoke, gunsmoke, gunsmokeu, driver_device, 0, ROT270, "Capcom (Romstar license)", "Gun.Smoke (US, 860408)", MACHINE_SUPPORTS_SAVE ) // GSA_03 -GAME( 1985, gunsmokeua, gunsmoke, gunsmoke, gunsmoke, driver_device, 0, ROT270, "Capcom (Romstar license)", "Gun.Smoke (US, 851115, set 1)", MACHINE_SUPPORTS_SAVE ) // GSR_03 (03A on the chip) -GAME( 1986, gunsmokeub, gunsmoke, gunsmoke, gunsmoke, driver_device, 0, ROT270, "Capcom (Romstar license)", "Gun.Smoke (US, 851115, set 2)", MACHINE_SUPPORTS_SAVE ) // GSR_03 +GAME( 1985, gunsmoke, 0, gunsmoke, gunsmoke, gunsmoke_state, 0, ROT270, "Capcom", "Gun.Smoke (World, 851115)", MACHINE_SUPPORTS_SAVE ) // GSE_03 +GAME( 1985, gunsmokeb, gunsmoke, gunsmoke, gunsmoke, gunsmoke_state, 0, ROT270, "bootleg", "Gun.Smoke (World, 851115) (bootleg)", MACHINE_SUPPORTS_SAVE ) // based on above version, warning message patched out +GAME( 1985, gunsmokej, gunsmoke, gunsmoke, gunsmoke, gunsmoke_state, 0, ROT270, "Capcom", "Gun.Smoke (Japan, 851115)", MACHINE_SUPPORTS_SAVE ) // GSJ_03 +GAME( 1986, gunsmokeu, gunsmoke, gunsmoke, gunsmokeu, gunsmoke_state, 0, ROT270, "Capcom (Romstar license)", "Gun.Smoke (US, 860408)", MACHINE_SUPPORTS_SAVE ) // GSA_03 +GAME( 1985, gunsmokeua, gunsmoke, gunsmoke, gunsmoke, gunsmoke_state, 0, ROT270, "Capcom (Romstar license)", "Gun.Smoke (US, 851115, set 1)", MACHINE_SUPPORTS_SAVE ) // GSR_03 (03A on the chip) +GAME( 1986, gunsmokeub, gunsmoke, gunsmoke, gunsmoke, gunsmoke_state, 0, ROT270, "Capcom (Romstar license)", "Gun.Smoke (US, 851115, set 2)", MACHINE_SUPPORTS_SAVE ) // GSR_03 diff --git a/src/mame/drivers/gyruss.cpp b/src/mame/drivers/gyruss.cpp index 7ab865d409e..27af1c3f08a 100644 --- a/src/mame/drivers/gyruss.cpp +++ b/src/mame/drivers/gyruss.cpp @@ -461,7 +461,7 @@ INTERRUPT_GEN_MEMBER(gyruss_state::slave_vblank_irq) device.execute().set_input_line(0, ASSERT_LINE); } -static MACHINE_CONFIG_START( gyruss, gyruss_state ) +static MACHINE_CONFIG_START( gyruss ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, MASTER_CLOCK/6) /* 3.072 MHz */ @@ -691,7 +691,7 @@ DRIVER_INIT_MEMBER(gyruss_state,gyruss) } -GAME( 1983, gyruss, 0, gyruss, gyruss, gyruss_state, gyruss, ROT90, "Konami", "Gyruss", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, gyruss, 0, gyruss, gyruss, gyruss_state, gyruss, ROT90, "Konami", "Gyruss", MACHINE_SUPPORTS_SAVE ) GAME( 1983, gyrussce, gyruss, gyruss, gyrussce, gyruss_state, gyruss, ROT90, "Konami (Centuri license)", "Gyruss (Centuri)", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, gyrussb, gyruss, gyruss, gyruss, gyruss_state, gyruss, ROT90, "bootleg?", "Gyruss (bootleg?)", MACHINE_SUPPORTS_SAVE ) /* Supposed Taito NZ license, but (c) Konami */ -GAME( 1983, venus, gyruss, gyruss, gyruss, gyruss_state, gyruss, ROT90, "bootleg", "Venus (bootleg of Gyruss)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, gyrussb, gyruss, gyruss, gyruss, gyruss_state, gyruss, ROT90, "bootleg?", "Gyruss (bootleg?)", MACHINE_SUPPORTS_SAVE ) /* Supposed Taito NZ license, but (c) Konami */ +GAME( 1983, venus, gyruss, gyruss, gyruss, gyruss_state, gyruss, ROT90, "bootleg", "Venus (bootleg of Gyruss)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/h19.cpp b/src/mame/drivers/h19.cpp index a83bb3cc55e..3f1ba78d62a 100644 --- a/src/mame/drivers/h19.cpp +++ b/src/mame/drivers/h19.cpp @@ -510,7 +510,7 @@ static GFXDECODE_START( h19 ) GFXDECODE_ENTRY( "chargen", 0x0000, h19_charlayout, 0, 1 ) GFXDECODE_END -static MACHINE_CONFIG_START( h19, h19_state ) +static MACHINE_CONFIG_START( h19 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, H19_CLOCK) // From schematics MCFG_CPU_PROGRAM_MAP(h19_mem) @@ -600,10 +600,9 @@ ROM_START( watz19 ) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1979, h19, 0, 0, h19, h19, driver_device, 0, "Heath Inc", "Heathkit H-19", 0 ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1979, h19, 0, 0, h19, h19, h19_state, 0, "Heath Inc", "Heathkit H-19", 0 ) //Super-19 ROM - ATG Systems, Inc - Adv in Sextant Issue 4, Winter 1983. With the magazine lead-time, likely released late 1982. -COMP( 1982, super19, h19, 0, h19, h19, driver_device, 0, "Heath Inc", "Heathkit H-19 w/ Super-19 ROM", 0 ) +COMP( 1982, super19, h19, 0, h19, h19, h19_state, 0, "Heath Inc", "Heathkit H-19 w/ Super-19 ROM", 0 ) // Watzman ROM - HUG p/n 885-1121, announced in REMark Issue 33, Oct. 1982 -COMP( 1982, watz19, h19, 0, h19, h19, driver_device, 0, "Heath Inc", "Heathkit H-19 w/ Watzman ROM", 0 ) - +COMP( 1982, watz19, h19, 0, h19, h19, h19_state, 0, "Heath Inc", "Heathkit H-19 w/ Watzman ROM", 0 ) diff --git a/src/mame/drivers/h8.cpp b/src/mame/drivers/h8.cpp index c9efaed1d60..470b8ca8bc1 100644 --- a/src/mame/drivers/h8.cpp +++ b/src/mame/drivers/h8.cpp @@ -242,7 +242,7 @@ the data is /INTE while the clock is /M1. If the system is in Single Instruction a int20 (output of 2nd flipflop) will occur after 4 M1 steps, to pause the running program. But, all of this can only occur if bit 5 of port F0 is low. */ - bool state = (data & I8085_STATUS_M1) ? 0 : 1; + bool state = (data & i8080_cpu_device::STATUS_M1) ? 0 : 1; bool c,a = (m_irq_ctl & 0x80) ? 1 : 0; if (m_irq_ctl & 2) @@ -307,7 +307,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(h8_state::h8_p) } } -static MACHINE_CONFIG_START( h8, h8_state ) +static MACHINE_CONFIG_START( h8 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8080, H8_CLOCK) MCFG_CPU_PROGRAM_MAP(h8_mem) @@ -366,5 +366,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS, INIT COMPANY FULLNAME FLAGS */ -COMP( 1977, h8, 0, 0, h8, h8, driver_device, 0, "Heath, Inc.", "Heathkit H8", MACHINE_NOT_WORKING ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS, INIT COMPANY FULLNAME FLAGS */ +COMP( 1977, h8, 0, 0, h8, h8, h8_state, 0, "Heath, Inc.", "Heathkit H8", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/h89.cpp b/src/mame/drivers/h89.cpp index 3a9dabd68c8..99f71df9a83 100644 --- a/src/mame/drivers/h89.cpp +++ b/src/mame/drivers/h89.cpp @@ -177,7 +177,7 @@ static DEVICE_INPUT_DEFAULTS_START( terminal ) DEVICE_INPUT_DEFAULTS_END -static MACHINE_CONFIG_START( h89, h89_state ) +static MACHINE_CONFIG_START( h89 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80, XTAL_12_288MHz / 6) MCFG_CPU_PROGRAM_MAP(h89_mem) @@ -206,5 +206,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1979, h89, 0, 0, h89, h89, driver_device, 0, "Heath Inc", "Heathkit H89", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +COMP( 1979, h89, 0, 0, h89, h89, h89_state, 0, "Heath Inc", "Heathkit H89", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) diff --git a/src/mame/drivers/halleys.cpp b/src/mame/drivers/halleys.cpp index 392cd9d0960..9b3e8152c86 100644 --- a/src/mame/drivers/halleys.cpp +++ b/src/mame/drivers/halleys.cpp @@ -1919,7 +1919,7 @@ void halleys_state::machine_reset() } -static MACHINE_CONFIG_START( halleys, halleys_state ) +static MACHINE_CONFIG_START( halleys ) 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) @@ -2223,8 +2223,8 @@ DRIVER_INIT_MEMBER(halleys_state,halley87) //************************************************************************** // Game Definitions -GAME( 1984, benberob, 0, benberob, benberob, halleys_state, benberob, ROT0, "Taito", "Ben Bero Beh (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_COLORS | MACHINE_NO_COCKTAIL ) -GAME( 1986, halleys, 0, halleys, halleys, halleys_state, halleys, ROT90, "Taito America Corporation (Coin-It license)", "Halley's Comet (US)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_COCKTAIL ) -GAME( 1986, halleysc, halleys, halleys, halleys, halleys_state, halleys, ROT90, "Taito Corporation", "Halley's Comet (Japan, Newer)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_COCKTAIL ) -GAME( 1986, halleycj, halleys, halleys, halleys, halleys_state, halleys, ROT90, "Taito Corporation", "Halley's Comet (Japan, Older)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_COCKTAIL ) -GAME( 1986, halley87, halleys, halleys, halleys, halleys_state, halley87, ROT90, "Taito Corporation", "Halley's Comet '87", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_COCKTAIL ) +GAME( 1984, benberob, 0, benberob, benberob, halleys_state, benberob, ROT0, "Taito", "Ben Bero Beh (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_COLORS | MACHINE_NO_COCKTAIL ) +GAME( 1986, halleys, 0, halleys, halleys, halleys_state, halleys, ROT90, "Taito America Corporation (Coin-It license)", "Halley's Comet (US)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_COCKTAIL ) +GAME( 1986, halleysc, halleys, halleys, halleys, halleys_state, halleys, ROT90, "Taito Corporation", "Halley's Comet (Japan, Newer)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_COCKTAIL ) +GAME( 1986, halleycj, halleys, halleys, halleys, halleys_state, halleys, ROT90, "Taito Corporation", "Halley's Comet (Japan, Older)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_COCKTAIL ) +GAME( 1986, halley87, halleys, halleys, halleys, halleys_state, halley87, ROT90, "Taito Corporation", "Halley's Comet '87", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_COCKTAIL ) diff --git a/src/mame/drivers/hanaawas.cpp b/src/mame/drivers/hanaawas.cpp index 9ca0ec9bb0e..cf0caebe318 100644 --- a/src/mame/drivers/hanaawas.cpp +++ b/src/mame/drivers/hanaawas.cpp @@ -213,7 +213,7 @@ void hanaawas_state::machine_reset() m_mux = 0; } -static MACHINE_CONFIG_START( hanaawas, hanaawas_state ) +static MACHINE_CONFIG_START( hanaawas ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80,18432000/6) /* 3.072 MHz ??? */ @@ -272,4 +272,4 @@ ROM_START( hanaawas ) ROM_END -GAME( 1982, hanaawas, 0, hanaawas, hanaawas, driver_device, 0, ROT0, "Seta Kikaku, Ltd.", "Hana Awase", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, hanaawas, 0, hanaawas, hanaawas, hanaawas_state, 0, ROT0, "Seta Kikaku, Ltd.", "Hana Awase", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/hankin.cpp b/src/mame/drivers/hankin.cpp index 10c46d70915..7a4d7466d87 100644 --- a/src/mame/drivers/hankin.cpp +++ b/src/mame/drivers/hankin.cpp @@ -490,7 +490,7 @@ WRITE_LINE_MEMBER( hankin_state::ic2_cb2_w ) m_ic2_cb2 = state; } -static MACHINE_CONFIG_START( hankin, hankin_state ) +static MACHINE_CONFIG_START( hankin ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6802, 3276800) MCFG_CPU_PROGRAM_MAP(hankin_map) @@ -602,8 +602,8 @@ ROM_START(empsback) ROM_END -GAME(1978, fjholden, 0, hankin, hankin, driver_device, 0, ROT0, "Hankin", "FJ Holden", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) -GAME(1978, orbit1, 0, hankin, hankin, driver_device, 0, ROT0, "Hankin", "Orbit 1", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) -GAME(1980, shark, 0, hankin, hankin, driver_device, 0, ROT0, "Hankin", "Shark", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) -GAME(1980, howzat, 0, hankin, hankin, driver_device, 0, ROT0, "Hankin", "Howzat!", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) -GAME(1981, empsback, 0, hankin, hankin, driver_device, 0, ROT0, "Hankin", "The Empire Strike Back", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME(1978, fjholden, 0, hankin, hankin, hankin_state, 0, ROT0, "Hankin", "FJ Holden", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME(1978, orbit1, 0, hankin, hankin, hankin_state, 0, ROT0, "Hankin", "Orbit 1", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME(1980, shark, 0, hankin, hankin, hankin_state, 0, ROT0, "Hankin", "Shark", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME(1980, howzat, 0, hankin, hankin, hankin_state, 0, ROT0, "Hankin", "Howzat!", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME(1981, empsback, 0, hankin, hankin, hankin_state, 0, ROT0, "Hankin", "The Empire Strike Back", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/hapyfish.cpp b/src/mame/drivers/hapyfish.cpp index cd41f22da9f..d109e6154d0 100644 --- a/src/mame/drivers/hapyfish.cpp +++ b/src/mame/drivers/hapyfish.cpp @@ -53,7 +53,7 @@ void hapyfish_state::video_start() -static MACHINE_CONFIG_START( hapyfish, hapyfish_state ) +static MACHINE_CONFIG_START( hapyfish ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", ARM9, 20000000) // ?? ARM baesd CPU @@ -82,5 +82,4 @@ ROM_START( hapyfsh2 ) ROM_LOAD( "flash.u28", 0x00000000, 0x84000000, CRC(f00a25cd) SHA1(9c33f8e26b84cea957d9c37fb83a686b948c6834) ) ROM_END - GAME( 201?, hapyfsh2, 0, hapyfish, hapyfish, driver_device, 0, ROT0, "bootleg", "Happy Fish (V2 PCB, 302-in-1)", MACHINE_IS_SKELETON ) - +GAME( 201?, hapyfsh2, 0, hapyfish, hapyfish, hapyfish_state, 0, ROT0, "bootleg", "Happy Fish (V2 PCB, 302-in-1)", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/harddriv.cpp b/src/mame/drivers/harddriv.cpp index db8f68209b0..11b9652fc94 100644 --- a/src/mame/drivers/harddriv.cpp +++ b/src/mame/drivers/harddriv.cpp @@ -340,8 +340,8 @@ Notes: * *************************************/ -harddriv_state::harddriv_state(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), +harddriv_state::harddriv_state(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock), /* device_video_interface(mconfig, *this, false), */ m_maincpu(*this, "maincpu"), m_gsp(*this, "gsp"), @@ -1635,7 +1635,7 @@ static MACHINE_CONFIG_FRAGMENT( harddriv ) MCFG_FRAGMENT_ADD( driver_msp ) /* basic machine hardware */ /* original driver board with MSP */ MCFG_FRAGMENT_ADD( adsp ) /* ADSP board */ - MCFG_DEVICE_ADD("harddriv_sound", HARDDRIV_SOUND_BOARD_DEVICE, 0) /* driver sound board */ + MCFG_DEVICE_ADD("harddriv_sound", HARDDRIV_SOUND_BOARD, 0) /* driver sound board */ MACHINE_CONFIG_END static MACHINE_CONFIG_FRAGMENT( harddrivc ) @@ -1643,7 +1643,7 @@ static MACHINE_CONFIG_FRAGMENT( harddrivc ) /* basic machine hardware */ /* multisync board with MSP */ MCFG_FRAGMENT_ADD( adsp ) /* ADSP board */ - MCFG_DEVICE_ADD("harddriv_sound", HARDDRIV_SOUND_BOARD_DEVICE, 0) /* driver sound board */ + MCFG_DEVICE_ADD("harddriv_sound", HARDDRIV_SOUND_BOARD, 0) /* driver sound board */ MACHINE_CONFIG_END static MACHINE_CONFIG_FRAGMENT( racedriv ) @@ -1652,7 +1652,7 @@ static MACHINE_CONFIG_FRAGMENT( racedriv ) /* basic machine hardware */ /* original driver board without MSP */ MCFG_FRAGMENT_ADD( adsp ) /* ADSP board */ MCFG_FRAGMENT_ADD( dsk ) /* DSK board */ - MCFG_DEVICE_ADD("harddriv_sound", HARDDRIV_SOUND_BOARD_DEVICE, 0) /* driver sound board */ + MCFG_DEVICE_ADD("harddriv_sound", HARDDRIV_SOUND_BOARD, 0) /* driver sound board */ MACHINE_CONFIG_END static MACHINE_CONFIG_FRAGMENT( racedrivc ) @@ -1662,7 +1662,7 @@ static MACHINE_CONFIG_FRAGMENT( racedrivc ) /* basic machine hardware */ /* multisync board without MSP */ MCFG_FRAGMENT_ADD( adsp ) /* ADSP board */ MCFG_FRAGMENT_ADD( dsk ) /* DSK board */ - MCFG_DEVICE_ADD("harddriv_sound", HARDDRIV_SOUND_BOARD_DEVICE, 0) /* driver sound board */ + MCFG_DEVICE_ADD("harddriv_sound", HARDDRIV_SOUND_BOARD, 0) /* driver sound board */ MACHINE_CONFIG_END @@ -1673,7 +1673,7 @@ static MACHINE_CONFIG_FRAGMENT( racedrivc_panorama_side ) /* basic machine hardware */ /* multisync board without MSP */ MCFG_FRAGMENT_ADD( adsp ) /* ADSP board */ // MCFG_FRAGMENT_ADD( dsk ) /* DSK board */ -// MCFG_DEVICE_ADD("sound_board", HARDDRIV_SOUND_BOARD_DEVICE, 0) /* driver sound board */ +// MCFG_DEVICE_ADD("sound_board", HARDDRIV_SOUND_BOARD, 0) /* driver sound board */ MACHINE_CONFIG_END WRITE_LINE_MEMBER(harddriv_state::sound_int_write_line) @@ -1749,10 +1749,10 @@ static MACHINE_CONFIG_FRAGMENT( hdrivair ) MCFG_FRAGMENT_ADD( dsk2 ) /* DSK II board */ MACHINE_CONFIG_END -const device_type HARDDRIV_BOARD_DEVICE = device_creator; +DEFINE_DEVICE_TYPE(HARDDRIV_BOARD, harddriv_board_device_state, "harddriv_board", "Hard Drivin' Board Device") harddriv_board_device_state::harddriv_board_device_state(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : harddriv_state(mconfig, HARDDRIV_BOARD_DEVICE, "Hard Drivin' Board Device", tag, owner, clock, "harddriv_board_device", __FILE__) + : harddriv_state(mconfig, HARDDRIV_BOARD, tag, owner, clock) { } @@ -1775,10 +1775,10 @@ void harddrivc_board_device_state::device_start() harddriv_state::device_start(); } -const device_type HARDDRIVC_BOARD_DEVICE = device_creator; +DEFINE_DEVICE_TYPE(HARDDRIVC_BOARD, harddrivc_board_device_state, "harddrivc_board", "Hard Drivin' C Board Device") harddrivc_board_device_state::harddrivc_board_device_state(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : harddriv_state(mconfig, HARDDRIVC_BOARD_DEVICE, "Hard Drivin' C Board Device", tag, owner, clock, "harddrivc_board_device", __FILE__) + : harddriv_state(mconfig, HARDDRIVC_BOARD, tag, owner, clock) { } @@ -1802,21 +1802,21 @@ void racedrivb1_board_device_state::device_start() harddriv_state::device_start(); } -const device_type RACEDRIV_BOARD_DEVICE = device_creator; -const device_type RACEDRIVB1_BOARD_DEVICE = device_creator; +DEFINE_DEVICE_TYPE(RACEDRIV_BOARD, racedriv_board_device_state, "racedriv_board", "Race Drivin' Board Device") +DEFINE_DEVICE_TYPE(RACEDRIVB1_BOARD, racedrivb1_board_device_state, "racedrivb1_board", "Race Drivin' B1 Board Device") racedriv_board_device_state::racedriv_board_device_state(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : harddriv_state(mconfig, RACEDRIV_BOARD_DEVICE, "Race Drivin' Board Device", tag, owner, clock, "racedriv_board_device", __FILE__) + : racedriv_board_device_state(mconfig, RACEDRIV_BOARD, tag, owner, clock) { } -racedriv_board_device_state::racedriv_board_device_state(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : harddriv_state(mconfig, type, name, tag, owner, clock, shortname, source) +racedriv_board_device_state::racedriv_board_device_state(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : harddriv_state(mconfig, type, tag, owner, clock) { } racedrivb1_board_device_state::racedrivb1_board_device_state(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : racedriv_board_device_state(mconfig, RACEDRIVB1_BOARD_DEVICE, "Race Drivin' B1 Board Device", tag, owner, clock, "racedrivb1_board_device", __FILE__) + : racedriv_board_device_state(mconfig, RACEDRIVB1_BOARD, tag, owner, clock) { } @@ -1848,27 +1848,27 @@ void racedrivc_panorama_side_board_device_state::device_start() -const device_type RACEDRIVC_BOARD_DEVICE = device_creator; -const device_type RACEDRIVC1_BOARD_DEVICE = device_creator; -const device_type RACEDRIVC_PANORAMA_SIDE_BOARD_DEVICE = device_creator; +DEFINE_DEVICE_TYPE(RACEDRIVC_BOARD, racedrivc_board_device_state, "racedrivc_board", "Race Drivin' C Board Device") +DEFINE_DEVICE_TYPE(RACEDRIVC1_BOARD, racedrivc1_board_device_state, "racedrivc1_board", "Race Drivin' C1 Board Device") +DEFINE_DEVICE_TYPE(RACEDRIVC_PANORAMA_SIDE_BOARD, racedrivc_panorama_side_board_device_state, "racedrivc_panorama_side_board", "Race Drivin' C Panorama Board Device") racedrivc_board_device_state::racedrivc_board_device_state(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : harddriv_state(mconfig, RACEDRIVC_BOARD_DEVICE, "Race Drivin' C Board Device", tag, owner, clock, "racedrivc_board_device", __FILE__) + : racedrivc_board_device_state(mconfig, RACEDRIVC_BOARD, tag, owner, clock) { } -racedrivc_board_device_state::racedrivc_board_device_state(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : harddriv_state(mconfig, type, name, tag, owner, clock, shortname, source) +racedrivc_board_device_state::racedrivc_board_device_state(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : harddriv_state(mconfig, type, tag, owner, clock) { } racedrivc1_board_device_state::racedrivc1_board_device_state(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : racedrivc_board_device_state(mconfig, RACEDRIVC1_BOARD_DEVICE, "Race Drivin' C1 Board Device", tag, owner, clock, "racedrivc1_board_device", __FILE__) + : racedrivc_board_device_state(mconfig, RACEDRIVC1_BOARD, tag, owner, clock) { } racedrivc_panorama_side_board_device_state::racedrivc_panorama_side_board_device_state(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : racedrivc_board_device_state(mconfig, RACEDRIVC_PANORAMA_SIDE_BOARD_DEVICE, "Race Drivin' C Panorama Board Device", tag, owner, clock, "racedrivc_panorama_side_board_device", __FILE__) + : racedrivc_board_device_state(mconfig, RACEDRIVC_PANORAMA_SIDE_BOARD, tag, owner, clock) { } @@ -1891,10 +1891,10 @@ void stunrun_board_device_state::device_start() harddriv_state::device_start(); } -const device_type STUNRUN_BOARD_DEVICE = device_creator; +DEFINE_DEVICE_TYPE(STUNRUN_BOARD, stunrun_board_device_state, "stunrun_board", "Stun Runner Board Device") stunrun_board_device_state::stunrun_board_device_state(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : harddriv_state(mconfig, STUNRUN_BOARD_DEVICE, "Stun Runner Board Device", tag, owner, clock, "stunrun_board_device", __FILE__) + : harddriv_state(mconfig, STUNRUN_BOARD, tag, owner, clock) { } @@ -1923,27 +1923,27 @@ void steeltalp_board_device_state::device_start() harddriv_state::device_start(); } -const device_type STEELTAL_BOARD_DEVICE = device_creator; -const device_type STEELTAL1_BOARD_DEVICE = device_creator; -const device_type STEELTALP_BOARD_DEVICE = device_creator; +DEFINE_DEVICE_TYPE(STEELTAL_BOARD, steeltal_board_device_state, "steeltal_board", "Steel Talons Board Device") +DEFINE_DEVICE_TYPE(STEELTAL1_BOARD, steeltal1_board_device_state, "steeltal1_board", "Steel Talons 1 Board Device") +DEFINE_DEVICE_TYPE(STEELTALP_BOARD, steeltalp_board_device_state, "steeltalp_board", "Steel Talons P Board Device") steeltal_board_device_state::steeltal_board_device_state(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : harddriv_state(mconfig, STEELTAL_BOARD_DEVICE, "Steel Talons Board Device", tag, owner, clock, "steeltal_board_device", __FILE__) + : steeltal_board_device_state(mconfig, STEELTAL_BOARD, tag, owner, clock) { } -steeltal_board_device_state::steeltal_board_device_state(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : harddriv_state(mconfig, type, name, tag, owner, clock, shortname, source) +steeltal_board_device_state::steeltal_board_device_state(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : harddriv_state(mconfig, type, tag, owner, clock) { } steeltal1_board_device_state::steeltal1_board_device_state(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : steeltal_board_device_state(mconfig, STEELTAL1_BOARD_DEVICE, "Steel Talons 1 Board Device", tag, owner, clock, "steeltal1_board_device", __FILE__) + : steeltal_board_device_state(mconfig, STEELTAL1_BOARD, tag, owner, clock) { } steeltalp_board_device_state::steeltalp_board_device_state(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : steeltal_board_device_state(mconfig, STEELTALP_BOARD_DEVICE, "Steel Talons P Board Device", tag, owner, clock, "steeltalp_board_device", __FILE__) + : steeltal_board_device_state(mconfig, STEELTALP_BOARD, tag, owner, clock) { } @@ -1960,10 +1960,10 @@ void strtdriv_board_device_state::device_start() harddriv_state::device_start(); } -const device_type STRTDRIV_BOARD_DEVICE = device_creator; +DEFINE_DEVICE_TYPE(STRTDRIV_BOARD, strtdriv_board_device_state, "strtdriv_board", "Street Drivin' Board Device") strtdriv_board_device_state::strtdriv_board_device_state(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : harddriv_state(mconfig, STRTDRIV_BOARD_DEVICE, "Street Drivin' Board Device", tag, owner, clock, "strtdriv_board_device", __FILE__) + : harddriv_state(mconfig, STRTDRIV_BOARD, tag, owner, clock) { } @@ -1986,21 +1986,21 @@ void hdrivairp_board_device_state::device_start() harddriv_state::device_start(); } -const device_type HDRIVAIR_BOARD_DEVICE = device_creator; -const device_type HDRIVAIRP_BOARD_DEVICE = device_creator; +DEFINE_DEVICE_TYPE(HDRIVAIR_BOARD, hdrivair_board_device_state, "hdrivair_board", "Hard Drivin' Airborne Board Device") +DEFINE_DEVICE_TYPE(HDRIVAIRP_BOARD, hdrivairp_board_device_state, "hdrivairp_board", "Hard Drivin' Airborne P Board Device") hdrivair_board_device_state::hdrivair_board_device_state(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : harddriv_state(mconfig, HDRIVAIR_BOARD_DEVICE, "Hard Drivin' Airborne Board Device", tag, owner, clock, "hdrivair_board_device", __FILE__) + : hdrivair_board_device_state(mconfig, HDRIVAIR_BOARD, tag, owner, clock) { } -hdrivair_board_device_state::hdrivair_board_device_state(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : harddriv_state(mconfig, type, name, tag, owner, clock, shortname, source) +hdrivair_board_device_state::hdrivair_board_device_state(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : harddriv_state(mconfig, type, tag, owner, clock) { } hdrivairp_board_device_state::hdrivairp_board_device_state(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : hdrivair_board_device_state(mconfig, HDRIVAIRP_BOARD_DEVICE, "Hard Drivin' Airborne P Board Device", tag, owner, clock, "hrdrvairp_board_device", __FILE__) + : hdrivair_board_device_state(mconfig, HDRIVAIRP_BOARD, tag, owner, clock) { } @@ -2011,56 +2011,56 @@ machine_config_constructor hdrivair_board_device_state::device_mconfig_additions -static MACHINE_CONFIG_START( harddriv_machine, harddriv_new_state ) - MCFG_DEVICE_ADD("mainpcb", HARDDRIV_BOARD_DEVICE, 0) +static MACHINE_CONFIG_START( harddriv_machine ) + MCFG_DEVICE_ADD("mainpcb", HARDDRIV_BOARD, 0) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( harddrivc_machine, harddriv_new_state ) - MCFG_DEVICE_ADD("mainpcb", HARDDRIVC_BOARD_DEVICE, 0) +static MACHINE_CONFIG_START( harddrivc_machine ) + MCFG_DEVICE_ADD("mainpcb", HARDDRIVC_BOARD, 0) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( racedriv_machine, harddriv_new_state ) - MCFG_DEVICE_ADD("mainpcb", RACEDRIV_BOARD_DEVICE, 0) +static MACHINE_CONFIG_START( racedriv_machine ) + MCFG_DEVICE_ADD("mainpcb", RACEDRIV_BOARD, 0) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( racedrivb1_machine, harddriv_new_state ) - MCFG_DEVICE_ADD("mainpcb", RACEDRIVB1_BOARD_DEVICE, 0) +static MACHINE_CONFIG_START( racedrivb1_machine ) + MCFG_DEVICE_ADD("mainpcb", RACEDRIVB1_BOARD, 0) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( racedrivc_machine, harddriv_new_state ) - MCFG_DEVICE_ADD("mainpcb", RACEDRIVC_BOARD_DEVICE, 0) +static MACHINE_CONFIG_START( racedrivc_machine ) + MCFG_DEVICE_ADD("mainpcb", RACEDRIVC_BOARD, 0) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( racedrivc1_machine, harddriv_new_state ) - MCFG_DEVICE_ADD("mainpcb", RACEDRIVC1_BOARD_DEVICE, 0) +static MACHINE_CONFIG_START( racedrivc1_machine ) + MCFG_DEVICE_ADD("mainpcb", RACEDRIVC1_BOARD, 0) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( stunrun_machine, harddriv_new_state ) - MCFG_DEVICE_ADD("mainpcb", STUNRUN_BOARD_DEVICE, 0) +static MACHINE_CONFIG_START( stunrun_machine ) + MCFG_DEVICE_ADD("mainpcb", STUNRUN_BOARD, 0) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( strtdriv_machine, harddriv_new_state ) - MCFG_DEVICE_ADD("mainpcb", STRTDRIV_BOARD_DEVICE, 0) +static MACHINE_CONFIG_START( strtdriv_machine ) + MCFG_DEVICE_ADD("mainpcb", STRTDRIV_BOARD, 0) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( hdrivair_machine, harddriv_new_state ) - MCFG_DEVICE_ADD("mainpcb", HDRIVAIR_BOARD_DEVICE, 0) +static MACHINE_CONFIG_START( hdrivair_machine ) + MCFG_DEVICE_ADD("mainpcb", HDRIVAIR_BOARD, 0) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( hdrivairp_machine, harddriv_new_state ) - MCFG_DEVICE_ADD("mainpcb", HDRIVAIRP_BOARD_DEVICE, 0) +static MACHINE_CONFIG_START( hdrivairp_machine ) + MCFG_DEVICE_ADD("mainpcb", HDRIVAIRP_BOARD, 0) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( steeltal_machine, harddriv_new_state ) - MCFG_DEVICE_ADD("mainpcb", STEELTAL_BOARD_DEVICE, 0) +static MACHINE_CONFIG_START( steeltal_machine ) + MCFG_DEVICE_ADD("mainpcb", STEELTAL_BOARD, 0) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( steeltal1_machine, harddriv_new_state ) - MCFG_DEVICE_ADD("mainpcb", STEELTAL1_BOARD_DEVICE, 0) +static MACHINE_CONFIG_START( steeltal1_machine ) + MCFG_DEVICE_ADD("mainpcb", STEELTAL1_BOARD, 0) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( steeltalp_machine, harddriv_new_state ) - MCFG_DEVICE_ADD("mainpcb", STEELTALP_BOARD_DEVICE, 0) +static MACHINE_CONFIG_START( steeltalp_machine ) + MCFG_DEVICE_ADD("mainpcb", STEELTALP_BOARD, 0) MACHINE_CONFIG_END WRITE_LINE_MEMBER(harddriv_new_state::tx_a) @@ -2070,10 +2070,10 @@ WRITE_LINE_MEMBER(harddriv_new_state::tx_a) m_rightpcb->get_duart()->rx_a_w(state); } -static MACHINE_CONFIG_START( racedriv_panorama_machine, harddriv_new_state ) - MCFG_DEVICE_ADD("mainpcb", RACEDRIV_BOARD_DEVICE, 0) - MCFG_DEVICE_ADD("leftpcb", RACEDRIVC_PANORAMA_SIDE_BOARD_DEVICE, 0) - MCFG_DEVICE_ADD("rightpcb", RACEDRIVC_PANORAMA_SIDE_BOARD_DEVICE, 0) +static MACHINE_CONFIG_START( racedriv_panorama_machine ) + MCFG_DEVICE_ADD("mainpcb", RACEDRIV_BOARD, 0) + MCFG_DEVICE_ADD("leftpcb", RACEDRIVC_PANORAMA_SIDE_BOARD, 0) + MCFG_DEVICE_ADD("rightpcb", RACEDRIVC_PANORAMA_SIDE_BOARD, 0) // MCFG_QUANTUM_TIME(attotime::from_hz(100000)) MCFG_DEVICE_MODIFY("mainpcb:duartn68681") @@ -5240,64 +5240,64 @@ void harddriv_state::init_hdrivairp(void) * *************************************/ -GAME( 1988, harddriv, 0, harddriv_machine, harddriv, driver_device, 0, ROT0, "Atari Games", "Hard Drivin' (cockpit, rev 7)", 0 ) -GAME( 1988, harddrivb, harddriv, harddriv_machine, harddriv, driver_device, 0, ROT0, "Atari Games", "Hard Drivin' (cockpit, British, rev 7)", 0 ) -GAME( 1988, harddrivg, harddriv, harddriv_machine, harddriv, driver_device, 0, ROT0, "Atari Games", "Hard Drivin' (cockpit, German, rev 7)", 0 ) -GAME( 1988, harddrivj, harddriv, harddriv_machine, harddriv, driver_device, 0, ROT0, "Atari Games", "Hard Drivin' (cockpit, Japan, rev 7)", 0 ) -GAME( 1988, harddrivb6, harddriv, harddriv_machine, harddriv, driver_device, 0, ROT0, "Atari Games", "Hard Drivin' (cockpit, British, rev 6)", 0 ) -GAME( 1988, harddrivj6, harddriv, harddriv_machine, harddriv, driver_device, 0, ROT0, "Atari Games", "Hard Drivin' (cockpit, Japan, rev 6)", 0 ) -GAME( 1988, harddrivb5, harddriv, harddriv_machine, harddriv, driver_device, 0, ROT0, "Atari Games", "Hard Drivin' (cockpit, British, rev 5)", 0 ) -GAME( 1988, harddrivg4, harddriv, harddriv_machine, harddriv, driver_device, 0, ROT0, "Atari Games", "Hard Drivin' (cockpit, German, rev 4)", 0 ) -GAME( 1988, harddriv3, harddriv, harddriv_machine, harddriv, driver_device, 0, ROT0, "Atari Games", "Hard Drivin' (cockpit, rev 3)", 0 ) -GAME( 1988, harddriv2, harddriv, harddriv_machine, harddriv, driver_device, 0, ROT0, "Atari Games", "Hard Drivin' (cockpit, rev 2)", 0 ) -GAME( 1988, harddriv1, harddriv, harddriv_machine, harddriv, driver_device, 0, ROT0, "Atari Games", "Hard Drivin' (cockpit, rev 1)", 0 ) - -GAME( 1990, harddrivc, harddriv, harddrivc_machine, racedrivc, driver_device, 0, ROT0, "Atari Games", "Hard Drivin' (compact, rev 2)", 0 ) -GAME( 1990, harddrivcg, harddriv, harddrivc_machine, racedrivc, driver_device, 0, ROT0, "Atari Games", "Hard Drivin' (compact, German, rev 2)", 0 ) -GAME( 1990, harddrivcb, harddriv, harddrivc_machine, racedrivc, driver_device, 0, ROT0, "Atari Games", "Hard Drivin' (compact, British, rev 2)", 0 ) -GAME( 1990, harddrivc1, harddriv, harddrivc_machine, racedrivc, driver_device, 0, ROT0, "Atari Games", "Hard Drivin' (compact, rev 1)", 0 ) - -GAME( 1989, stunrun, 0, stunrun_machine, stunrun, driver_device, 0, ROT0, "Atari Games", "S.T.U.N. Runner (rev 6)", 0 ) -GAME( 1989, stunrunj, stunrun, stunrun_machine, stunrun, driver_device, 0, ROT0, "Atari Games", "S.T.U.N. Runner (rev 7, Japan)", 0 ) -GAME( 1989, stunrun5, stunrun, stunrun_machine, stunrun, driver_device, 0, ROT0, "Atari Games", "S.T.U.N. Runner (rev 5)", 0 ) -GAME( 1989, stunrune, stunrun, stunrun_machine, stunrun, driver_device, 0, ROT0, "Atari Games", "S.T.U.N. Runner (rev 5, Europe)", 0 ) -GAME( 1989, stunrun4, stunrun, stunrun_machine, stunrun, driver_device, 0, ROT0, "Atari Games", "S.T.U.N. Runner (rev 4)", 0 ) -GAME( 1989, stunrun3, stunrun, stunrun_machine, stunrun, driver_device, 0, ROT0, "Atari Games", "S.T.U.N. Runner (rev 3)", 0 ) -GAME( 1989, stunrun3e, stunrun, stunrun_machine, stunrun, driver_device, 0, ROT0, "Atari Games", "S.T.U.N. Runner (rev 3, Europe)", 0 ) -GAME( 1989, stunrun2, stunrun, stunrun_machine, stunrun, driver_device, 0, ROT0, "Atari Games", "S.T.U.N. Runner (rev 2)", 0 ) -GAME( 1989, stunrun2e, stunrun, stunrun_machine, stunrun, driver_device, 0, ROT0, "Atari Games", "S.T.U.N. Runner (rev 2, Europe)", 0 ) -GAME( 1989, stunrun0, stunrun, stunrun_machine, stunrun, driver_device, 0, ROT0, "Atari Games", "S.T.U.N. Runner (rev 0)", 0 ) -GAME( 1989, stunrunp, stunrun, stunrun_machine, stunrun, driver_device, 0, ROT0, "Atari Games", "S.T.U.N. Runner (upright prototype)", 0 ) - -GAME( 1990, racedriv, 0, racedriv_machine, racedriv, driver_device, 0, ROT0, "Atari Games", "Race Drivin' (cockpit, rev 5)", 0 ) -GAME( 1990, racedrivb, racedriv, racedriv_machine, racedriv, driver_device, 0, ROT0, "Atari Games", "Race Drivin' (cockpit, British, rev 5)", 0 ) -GAME( 1990, racedrivg, racedriv, racedriv_machine, racedriv, driver_device, 0, ROT0, "Atari Games", "Race Drivin' (cockpit, German, rev 5)", 0 ) -GAME( 1990, racedriv4, racedriv, racedriv_machine, racedriv, driver_device, 0, ROT0, "Atari Games", "Race Drivin' (cockpit, rev 4)", 0 ) -GAME( 1990, racedrivb4, racedriv, racedriv_machine, racedriv, driver_device, 0, ROT0, "Atari Games", "Race Drivin' (cockpit, British, rev 4)", 0 ) -GAME( 1990, racedrivg4, racedriv, racedriv_machine, racedriv, driver_device, 0, ROT0, "Atari Games", "Race Drivin' (cockpit, German, rev 4)", 0 ) -GAME( 1990, racedriv3, racedriv, racedriv_machine, racedriv, driver_device, 0, ROT0, "Atari Games", "Race Drivin' (cockpit, rev 3)", 0 ) -GAME( 1990, racedriv2, racedriv, racedriv_machine, racedriv, driver_device, 0, ROT0, "Atari Games", "Race Drivin' (cockpit, rev 2)", 0 ) -GAME( 1990, racedriv1, racedriv, racedrivb1_machine, racedriv, driver_device, 0, ROT0, "Atari Games", "Race Drivin' (cockpit, rev 1)", 0 ) -GAME( 1990, racedrivb1, racedriv, racedrivb1_machine, racedriv, driver_device, 0, ROT0, "Atari Games", "Race Drivin' (cockpit, British, rev 1)", 0 ) -GAME( 1990, racedrivg1, racedriv, racedrivb1_machine, racedriv, driver_device, 0, ROT0, "Atari Games", "Race Drivin' (cockpit, German, rev 2)", 0 ) - -GAME( 1990, racedrivc, racedriv, racedrivc_machine, racedrivc, driver_device, 0, ROT0, "Atari Games", "Race Drivin' (compact, rev 5)", 0 ) -GAME( 1990, racedrivcb, racedriv, racedrivc_machine, racedrivc, driver_device, 0, ROT0, "Atari Games", "Race Drivin' (compact, British, rev 5)", 0 ) -GAME( 1990, racedrivcg, racedriv, racedrivc_machine, racedrivc, driver_device, 0, ROT0, "Atari Games", "Race Drivin' (compact, German, rev 5)", 0 ) -GAME( 1990, racedrivc4, racedriv, racedrivc_machine, racedrivc, driver_device, 0, ROT0, "Atari Games", "Race Drivin' (compact, rev 4)", 0 ) -GAME( 1990, racedrivcb4, racedriv, racedrivc_machine, racedrivc, driver_device, 0, ROT0, "Atari Games", "Race Drivin' (compact, British, rev 4)", 0 ) -GAME( 1990, racedrivcg4, racedriv, racedrivc_machine, racedrivc, driver_device, 0, ROT0, "Atari Games", "Race Drivin' (compact, German, rev 4)", 0 ) -GAME( 1990, racedrivc2, racedriv, racedrivc1_machine, racedrivc, driver_device, 0,ROT0, "Atari Games", "Race Drivin' (compact, rev 2)", 0 ) -GAME( 1990, racedrivc1, racedriv, racedrivc1_machine, racedrivc, driver_device, 0,ROT0, "Atari Games", "Race Drivin' (compact, rev 1)", 0 ) - -GAMEL( 1990, racedrivpan, racedriv, racedriv_panorama_machine, racedriv_pan, driver_device, 0, ROT0, "Atari Games", "Race Drivin' Panorama (prototype, rev 2.1)", 0, layout_racedrivpan ) - -GAME( 1991, steeltal, 0, steeltal_machine, steeltal, driver_device, 0, ROT0, "Atari Games", "Steel Talons (rev 2)", 0 ) -GAME( 1991, steeltalg, steeltal, steeltal_machine, steeltal, driver_device, 0, ROT0, "Atari Games", "Steel Talons (German, rev 2)", 0 ) -GAME( 1991, steeltal1, steeltal, steeltal1_machine, steeltal, driver_device, 0,ROT0, "Atari Games", "Steel Talons (rev 1)", 0 ) -GAME( 1991, steeltalp, steeltal, steeltalp_machine, steeltal, driver_device, 0,ROT0, "Atari Games", "Steel Talons (prototype)", MACHINE_NOT_WORKING ) - -GAME( 1993, strtdriv, 0, strtdriv_machine, strtdriv, driver_device, 0, ROT0, "Atari Games", "Street Drivin' (prototype)", 0 ) - -GAME( 1993, hdrivair, 0, hdrivair_machine, hdrivair, driver_device, 0, ROT0, "Atari Games", "Hard Drivin's Airborne (prototype)", MACHINE_IMPERFECT_SOUND ) -GAME( 1993, hdrivairp, hdrivair, hdrivairp_machine, hdrivair, driver_device, 0,ROT0, "Atari Games", "Hard Drivin's Airborne (prototype, early rev)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) +GAME( 1988, harddriv, 0, harddriv_machine, harddriv, harddriv_new_state, 0, ROT0, "Atari Games", "Hard Drivin' (cockpit, rev 7)", 0 ) +GAME( 1988, harddrivb, harddriv, harddriv_machine, harddriv, harddriv_new_state, 0, ROT0, "Atari Games", "Hard Drivin' (cockpit, British, rev 7)", 0 ) +GAME( 1988, harddrivg, harddriv, harddriv_machine, harddriv, harddriv_new_state, 0, ROT0, "Atari Games", "Hard Drivin' (cockpit, German, rev 7)", 0 ) +GAME( 1988, harddrivj, harddriv, harddriv_machine, harddriv, harddriv_new_state, 0, ROT0, "Atari Games", "Hard Drivin' (cockpit, Japan, rev 7)", 0 ) +GAME( 1988, harddrivb6, harddriv, harddriv_machine, harddriv, harddriv_new_state, 0, ROT0, "Atari Games", "Hard Drivin' (cockpit, British, rev 6)", 0 ) +GAME( 1988, harddrivj6, harddriv, harddriv_machine, harddriv, harddriv_new_state, 0, ROT0, "Atari Games", "Hard Drivin' (cockpit, Japan, rev 6)", 0 ) +GAME( 1988, harddrivb5, harddriv, harddriv_machine, harddriv, harddriv_new_state, 0, ROT0, "Atari Games", "Hard Drivin' (cockpit, British, rev 5)", 0 ) +GAME( 1988, harddrivg4, harddriv, harddriv_machine, harddriv, harddriv_new_state, 0, ROT0, "Atari Games", "Hard Drivin' (cockpit, German, rev 4)", 0 ) +GAME( 1988, harddriv3, harddriv, harddriv_machine, harddriv, harddriv_new_state, 0, ROT0, "Atari Games", "Hard Drivin' (cockpit, rev 3)", 0 ) +GAME( 1988, harddriv2, harddriv, harddriv_machine, harddriv, harddriv_new_state, 0, ROT0, "Atari Games", "Hard Drivin' (cockpit, rev 2)", 0 ) +GAME( 1988, harddriv1, harddriv, harddriv_machine, harddriv, harddriv_new_state, 0, ROT0, "Atari Games", "Hard Drivin' (cockpit, rev 1)", 0 ) + +GAME( 1990, harddrivc, harddriv, harddrivc_machine, racedrivc, harddriv_new_state, 0, ROT0, "Atari Games", "Hard Drivin' (compact, rev 2)", 0 ) +GAME( 1990, harddrivcg, harddriv, harddrivc_machine, racedrivc, harddriv_new_state, 0, ROT0, "Atari Games", "Hard Drivin' (compact, German, rev 2)", 0 ) +GAME( 1990, harddrivcb, harddriv, harddrivc_machine, racedrivc, harddriv_new_state, 0, ROT0, "Atari Games", "Hard Drivin' (compact, British, rev 2)", 0 ) +GAME( 1990, harddrivc1, harddriv, harddrivc_machine, racedrivc, harddriv_new_state, 0, ROT0, "Atari Games", "Hard Drivin' (compact, rev 1)", 0 ) + +GAME( 1989, stunrun, 0, stunrun_machine, stunrun, harddriv_new_state, 0, ROT0, "Atari Games", "S.T.U.N. Runner (rev 6)", 0 ) +GAME( 1989, stunrunj, stunrun, stunrun_machine, stunrun, harddriv_new_state, 0, ROT0, "Atari Games", "S.T.U.N. Runner (rev 7, Japan)", 0 ) +GAME( 1989, stunrun5, stunrun, stunrun_machine, stunrun, harddriv_new_state, 0, ROT0, "Atari Games", "S.T.U.N. Runner (rev 5)", 0 ) +GAME( 1989, stunrune, stunrun, stunrun_machine, stunrun, harddriv_new_state, 0, ROT0, "Atari Games", "S.T.U.N. Runner (rev 5, Europe)", 0 ) +GAME( 1989, stunrun4, stunrun, stunrun_machine, stunrun, harddriv_new_state, 0, ROT0, "Atari Games", "S.T.U.N. Runner (rev 4)", 0 ) +GAME( 1989, stunrun3, stunrun, stunrun_machine, stunrun, harddriv_new_state, 0, ROT0, "Atari Games", "S.T.U.N. Runner (rev 3)", 0 ) +GAME( 1989, stunrun3e, stunrun, stunrun_machine, stunrun, harddriv_new_state, 0, ROT0, "Atari Games", "S.T.U.N. Runner (rev 3, Europe)", 0 ) +GAME( 1989, stunrun2, stunrun, stunrun_machine, stunrun, harddriv_new_state, 0, ROT0, "Atari Games", "S.T.U.N. Runner (rev 2)", 0 ) +GAME( 1989, stunrun2e, stunrun, stunrun_machine, stunrun, harddriv_new_state, 0, ROT0, "Atari Games", "S.T.U.N. Runner (rev 2, Europe)", 0 ) +GAME( 1989, stunrun0, stunrun, stunrun_machine, stunrun, harddriv_new_state, 0, ROT0, "Atari Games", "S.T.U.N. Runner (rev 0)", 0 ) +GAME( 1989, stunrunp, stunrun, stunrun_machine, stunrun, harddriv_new_state, 0, ROT0, "Atari Games", "S.T.U.N. Runner (upright prototype)", 0 ) + +GAME( 1990, racedriv, 0, racedriv_machine, racedriv, harddriv_new_state, 0, ROT0, "Atari Games", "Race Drivin' (cockpit, rev 5)", 0 ) +GAME( 1990, racedrivb, racedriv, racedriv_machine, racedriv, harddriv_new_state, 0, ROT0, "Atari Games", "Race Drivin' (cockpit, British, rev 5)", 0 ) +GAME( 1990, racedrivg, racedriv, racedriv_machine, racedriv, harddriv_new_state, 0, ROT0, "Atari Games", "Race Drivin' (cockpit, German, rev 5)", 0 ) +GAME( 1990, racedriv4, racedriv, racedriv_machine, racedriv, harddriv_new_state, 0, ROT0, "Atari Games", "Race Drivin' (cockpit, rev 4)", 0 ) +GAME( 1990, racedrivb4, racedriv, racedriv_machine, racedriv, harddriv_new_state, 0, ROT0, "Atari Games", "Race Drivin' (cockpit, British, rev 4)", 0 ) +GAME( 1990, racedrivg4, racedriv, racedriv_machine, racedriv, harddriv_new_state, 0, ROT0, "Atari Games", "Race Drivin' (cockpit, German, rev 4)", 0 ) +GAME( 1990, racedriv3, racedriv, racedriv_machine, racedriv, harddriv_new_state, 0, ROT0, "Atari Games", "Race Drivin' (cockpit, rev 3)", 0 ) +GAME( 1990, racedriv2, racedriv, racedriv_machine, racedriv, harddriv_new_state, 0, ROT0, "Atari Games", "Race Drivin' (cockpit, rev 2)", 0 ) +GAME( 1990, racedriv1, racedriv, racedrivb1_machine, racedriv, harddriv_new_state, 0, ROT0, "Atari Games", "Race Drivin' (cockpit, rev 1)", 0 ) +GAME( 1990, racedrivb1, racedriv, racedrivb1_machine, racedriv, harddriv_new_state, 0, ROT0, "Atari Games", "Race Drivin' (cockpit, British, rev 1)", 0 ) +GAME( 1990, racedrivg1, racedriv, racedrivb1_machine, racedriv, harddriv_new_state, 0, ROT0, "Atari Games", "Race Drivin' (cockpit, German, rev 2)", 0 ) + +GAME( 1990, racedrivc, racedriv, racedrivc_machine, racedrivc, harddriv_new_state, 0, ROT0, "Atari Games", "Race Drivin' (compact, rev 5)", 0 ) +GAME( 1990, racedrivcb, racedriv, racedrivc_machine, racedrivc, harddriv_new_state, 0, ROT0, "Atari Games", "Race Drivin' (compact, British, rev 5)", 0 ) +GAME( 1990, racedrivcg, racedriv, racedrivc_machine, racedrivc, harddriv_new_state, 0, ROT0, "Atari Games", "Race Drivin' (compact, German, rev 5)", 0 ) +GAME( 1990, racedrivc4, racedriv, racedrivc_machine, racedrivc, harddriv_new_state, 0, ROT0, "Atari Games", "Race Drivin' (compact, rev 4)", 0 ) +GAME( 1990, racedrivcb4, racedriv, racedrivc_machine, racedrivc, harddriv_new_state, 0, ROT0, "Atari Games", "Race Drivin' (compact, British, rev 4)", 0 ) +GAME( 1990, racedrivcg4, racedriv, racedrivc_machine, racedrivc, harddriv_new_state, 0, ROT0, "Atari Games", "Race Drivin' (compact, German, rev 4)", 0 ) +GAME( 1990, racedrivc2, racedriv, racedrivc1_machine, racedrivc, harddriv_new_state, 0, ROT0, "Atari Games", "Race Drivin' (compact, rev 2)", 0 ) +GAME( 1990, racedrivc1, racedriv, racedrivc1_machine, racedrivc, harddriv_new_state, 0, ROT0, "Atari Games", "Race Drivin' (compact, rev 1)", 0 ) + +GAMEL( 1990, racedrivpan, racedriv, racedriv_panorama_machine, racedriv_pan, harddriv_new_state, 0, ROT0, "Atari Games", "Race Drivin' Panorama (prototype, rev 2.1)", 0, layout_racedrivpan ) + +GAME( 1991, steeltal, 0, steeltal_machine, steeltal, harddriv_new_state, 0, ROT0, "Atari Games", "Steel Talons (rev 2)", 0 ) +GAME( 1991, steeltalg, steeltal, steeltal_machine, steeltal, harddriv_new_state, 0, ROT0, "Atari Games", "Steel Talons (German, rev 2)", 0 ) +GAME( 1991, steeltal1, steeltal, steeltal1_machine, steeltal, harddriv_new_state, 0, ROT0, "Atari Games", "Steel Talons (rev 1)", 0 ) +GAME( 1991, steeltalp, steeltal, steeltalp_machine, steeltal, harddriv_new_state, 0, ROT0, "Atari Games", "Steel Talons (prototype)", MACHINE_NOT_WORKING ) + +GAME( 1993, strtdriv, 0, strtdriv_machine, strtdriv, harddriv_new_state, 0, ROT0, "Atari Games", "Street Drivin' (prototype)", 0 ) + +GAME( 1993, hdrivair, 0, hdrivair_machine, hdrivair, harddriv_new_state, 0, ROT0, "Atari Games", "Hard Drivin's Airborne (prototype)", MACHINE_IMPERFECT_SOUND ) +GAME( 1993, hdrivairp, hdrivair, hdrivairp_machine, hdrivair, harddriv_new_state, 0, ROT0, "Atari Games", "Hard Drivin's Airborne (prototype, early rev)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/harriet.cpp b/src/mame/drivers/harriet.cpp index b3d9dec6a74..5fd82f1a3ac 100644 --- a/src/mame/drivers/harriet.cpp +++ b/src/mame/drivers/harriet.cpp @@ -29,29 +29,30 @@ public: { } - // devices - required_device m_maincpu; - required_device m_terminal; - // screen updates uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - uint8_t m_teletype_data; - uint8_t m_teletype_status; - DECLARE_READ8_MEMBER(unk_r); DECLARE_WRITE8_MEMBER(unk_w); DECLARE_WRITE8_MEMBER(serial_w); DECLARE_READ8_MEMBER(unk2_r); DECLARE_READ8_MEMBER(unk3_r); DECLARE_READ8_MEMBER(keyboard_status_r); - DECLARE_WRITE8_MEMBER( kbd_put ); + void kbd_put(u8 data); + protected: // driver_device overrides virtual void machine_start() override; virtual void machine_reset() override; virtual void video_start() override; + + // devices + required_device m_maincpu; + required_device m_terminal; + + uint8_t m_teletype_data; + uint8_t m_teletype_status; }; void harriet_state::video_start() @@ -177,7 +178,7 @@ static INPUT_PORTS_START( harriet ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) INPUT_PORTS_END -WRITE8_MEMBER( harriet_state::kbd_put ) +void harriet_state::kbd_put(u8 data) { m_teletype_data = data; m_teletype_status |= 0x80; @@ -192,7 +193,7 @@ void harriet_state::machine_reset() } -static MACHINE_CONFIG_START( harriet, harriet_state ) +static MACHINE_CONFIG_START( harriet ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",M68010,XTAL_8MHz) // TODO: clock @@ -200,7 +201,7 @@ static MACHINE_CONFIG_START( harriet, harriet_state ) /* video hardware */ MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0) - MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(harriet_state, kbd_put)) + MCFG_GENERIC_TERMINAL_KEYBOARD_CB(PUT(harriet_state, kbd_put)) MCFG_PALETTE_ADD("palette", 8) @@ -223,4 +224,4 @@ ROM_START( harriet ) ROM_LOAD16_BYTE( "harriet 36-74c.tdb v5.01 hibyte 2a0c.bin", 0x0000, 0x4000, CRC(a61f441d) SHA1(76af6eddd5c042f1b2eef590eb822379944b9b28) ) ROM_END -COMP( 1990, harriet, 0, 0, harriet, harriet, driver_device, 0, "Quantel", "Harriet", MACHINE_IS_SKELETON ) +COMP( 1990, harriet, 0, 0, harriet, harriet, harriet_state, 0, "Quantel", "Harriet", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/hazelgr.cpp b/src/mame/drivers/hazelgr.cpp index b22c62381f9..cca9a43c63c 100644 --- a/src/mame/drivers/hazelgr.cpp +++ b/src/mame/drivers/hazelgr.cpp @@ -35,7 +35,7 @@ static INPUT_PORTS_START( haze ) INPUT_PORTS_END -static MACHINE_CONFIG_START( haze, haze_state ) +static MACHINE_CONFIG_START( haze ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80,2000000) /* ? MHz */ MCFG_CPU_PROGRAM_MAP(haze_map) @@ -49,4 +49,4 @@ ROM_START( hg_frd ) ROM_END -GAME( 198?, hg_frd, 0, haze, haze, driver_device, 0, ROT0, "Hazel Grove", "Fruit Deuce (Hazel Grove)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 198?, hg_frd, 0, haze, haze, haze_state, 0, ROT0, "Hazel Grove", "Fruit Deuce (Hazel Grove)", MACHINE_IS_SKELETON_MECHANICAL) diff --git a/src/mame/drivers/hazeltin.cpp b/src/mame/drivers/hazeltin.cpp index 69f067f8312..d8a68012ecc 100644 --- a/src/mame/drivers/hazeltin.cpp +++ b/src/mame/drivers/hazeltin.cpp @@ -167,36 +167,36 @@ public: private: required_device m_maincpu; - required_device m_video_board; - required_device m_u9; - required_device m_u10; - required_device m_u11; - required_device m_u12; - required_device m_u13; - required_device m_u14; - required_device m_u15; - required_device m_u16; - required_device m_u22; - required_device m_u23; - required_device m_u24; - required_device m_u25; - required_device m_u26; - required_device m_u27; - required_device m_u28; - required_device m_u29; - required_device m_cpu_db0; - required_device m_cpu_db1; - required_device m_cpu_db2; - required_device m_cpu_db3; - required_device m_cpu_db4; - required_device m_cpu_db5; - required_device m_cpu_db6; - required_device m_cpu_db7; - required_device m_cpu_ba4; - required_device m_cpu_iowq; - required_device m_video_out; - required_device m_vblank_out; - required_device m_tvinterq_out; + required_device m_video_board; + required_device m_u9; + required_device m_u10; + required_device m_u11; + required_device m_u12; + required_device m_u13; + required_device m_u14; + required_device m_u15; + required_device m_u16; + required_device m_u22; + required_device m_u23; + required_device m_u24; + required_device m_u25; + required_device m_u26; + required_device m_u27; + required_device m_u28; + required_device m_u29; + required_device m_cpu_db0; + required_device m_cpu_db1; + required_device m_cpu_db2; + required_device m_cpu_db3; + required_device m_cpu_db4; + required_device m_cpu_db5; + required_device m_cpu_db6; + required_device m_cpu_db7; + required_device m_cpu_ba4; + required_device m_cpu_iowq; + required_device m_video_out; + required_device m_vblank_out; + required_device m_tvinterq_out; required_device m_uart; required_device m_kbdc; required_ioport m_baud_dips; @@ -686,7 +686,7 @@ static GFXDECODE_START( hazl1500 ) GFXDECODE_ENTRY( CHAR_EPROM_TAG, 0x0000, hazl1500_charlayout, 0, 1 ) GFXDECODE_END -static MACHINE_CONFIG_START( hazl1500, hazl1500_state ) +static MACHINE_CONFIG_START( hazl1500 ) /* basic machine hardware */ MCFG_CPU_ADD(CPU_TAG, I8080, XTAL_18MHz/9) // 18MHz crystal on schematics, using an i8224 clock gen/driver IC MCFG_CPU_PROGRAM_MAP(hazl1500_mem) @@ -784,5 +784,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1977, hazl1500, 0, 0, hazl1500, hazl1500, driver_device, 0, "Hazeltine Corporation", "Hazeltine 1500", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 1977, hazl1500, 0, 0, hazl1500, hazl1500, hazl1500_state, 0, "Hazeltine Corporation", "Hazeltine 1500", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW) diff --git a/src/mame/drivers/hcastle.cpp b/src/mame/drivers/hcastle.cpp index 7125a710ba2..55509e598f0 100644 --- a/src/mame/drivers/hcastle.cpp +++ b/src/mame/drivers/hcastle.cpp @@ -188,7 +188,7 @@ void hcastle_state::machine_reset() m_old_pf2 = -1; } -static MACHINE_CONFIG_START( hcastle, hcastle_state ) +static MACHINE_CONFIG_START( hcastle ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", KONAMI, 3000000) /* Derived from 24 MHz clock */ @@ -381,8 +381,8 @@ ROM_END -GAME( 1988, hcastle, 0, hcastle, hcastle, driver_device, 0, ROT0, "Konami", "Haunted Castle (version M)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, hcastlek, hcastle, hcastle, hcastle, driver_device, 0, ROT0, "Konami", "Haunted Castle (version K)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, hcastlee, hcastle, hcastle, hcastle, driver_device, 0, ROT0, "Konami", "Haunted Castle (version E)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, akumajou, hcastle, hcastle, hcastle, driver_device, 0, ROT0, "Konami", "Akuma-Jou Dracula (Japan version P)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, akumajoun, hcastle, hcastle, hcastle, driver_device, 0, ROT0, "Konami", "Akuma-Jou Dracula (Japan version N)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, hcastle, 0, hcastle, hcastle, hcastle_state, 0, ROT0, "Konami", "Haunted Castle (version M)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, hcastlek, hcastle, hcastle, hcastle, hcastle_state, 0, ROT0, "Konami", "Haunted Castle (version K)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, hcastlee, hcastle, hcastle, hcastle, hcastle_state, 0, ROT0, "Konami", "Haunted Castle (version E)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, akumajou, hcastle, hcastle, hcastle, hcastle_state, 0, ROT0, "Konami", "Akuma-Jou Dracula (Japan version P)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, akumajoun, hcastle, hcastle, hcastle, hcastle_state, 0, ROT0, "Konami", "Akuma-Jou Dracula (Japan version N)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/headonb.cpp b/src/mame/drivers/headonb.cpp index ccbb0bad2b6..aa7dda8b505 100644 --- a/src/mame/drivers/headonb.cpp +++ b/src/mame/drivers/headonb.cpp @@ -157,7 +157,7 @@ static GFXDECODE_START( headonb ) GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0, 1 ) GFXDECODE_END -static MACHINE_CONFIG_START( headonb, headonb_state ) +static MACHINE_CONFIG_START( headonb ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8080A, XTAL_20MHz / 10) // divider guessed @@ -205,4 +205,4 @@ ROM_START( headonb ) ROM_END -GAME( 1979, headonb, headon, headonb, headonb, driver_device, 0, ROT0, "bootleg (EFG Sanremo)", "Head On (bootleg on dedicated hardware)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1979, headonb, headon, headonb, headonb, headonb_state, 0, ROT0, "bootleg (EFG Sanremo)", "Head On (bootleg on dedicated hardware)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/hec2hrp.cpp b/src/mame/drivers/hec2hrp.cpp index 7b990ed4edd..c99902e50e3 100644 --- a/src/mame/drivers/hec2hrp.cpp +++ b/src/mame/drivers/hec2hrp.cpp @@ -182,7 +182,7 @@ static ADDRESS_MAP_START( hec2mdhrx_io , AS_IO, 8, hec2hrp_state ) ADDRESS_MAP_GLOBAL_MASK(0xff) // Minidisc commands and changing the rom page !*/ - AM_RANGE(0x04, 0x07) AM_DEVREADWRITE("wd179x", fd1793_t, read, write) + AM_RANGE(0x04, 0x07) AM_DEVREADWRITE("wd179x", fd1793_device, read, write) AM_RANGE(0x08, 0x08) AM_WRITE(minidisc_control_w) AM_RANGE(0x0f0,0x0ff) AM_READWRITE(hector_io_8255_r, hector_io_8255_w ) ADDRESS_MAP_END @@ -401,7 +401,7 @@ SLOT_INTERFACE_END /******************************************************************************/ -static MACHINE_CONFIG_START( hec2hr, hec2hrp_state ) +static MACHINE_CONFIG_START( hec2hr ) /******************************************************************************/ /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80, XTAL_5MHz) @@ -436,7 +436,7 @@ static MACHINE_CONFIG_START( hec2hr, hec2hrp_state ) MACHINE_CONFIG_END /*****************************************************************************/ -static MACHINE_CONFIG_START( hec2hrp, hec2hrp_state ) +static MACHINE_CONFIG_START( hec2hrp ) /*****************************************************************************/ /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80, XTAL_5MHz) @@ -475,7 +475,7 @@ static SLOT_INTERFACE_START( hector_floppies ) SLOT_INTERFACE_END /*****************************************************************************/ -static MACHINE_CONFIG_START( hec2mx40, hec2hrp_state ) +static MACHINE_CONFIG_START( hec2mx40 ) /*****************************************************************************/ /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80, XTAL_5MHz) @@ -519,7 +519,7 @@ static MACHINE_CONFIG_START( hec2mx40, hec2hrp_state ) MACHINE_CONFIG_END /*****************************************************************************/ -static MACHINE_CONFIG_START( hec2hrx, hec2hrp_state ) +static MACHINE_CONFIG_START( hec2hrx ) /*****************************************************************************/ /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80, XTAL_5MHz) @@ -563,7 +563,7 @@ static MACHINE_CONFIG_START( hec2hrx, hec2hrp_state ) MACHINE_CONFIG_END /*****************************************************************************/ -static MACHINE_CONFIG_START( hec2mdhrx, hec2hrp_state ) +static MACHINE_CONFIG_START( hec2mdhrx ) /*****************************************************************************/ // minidisc /* basic machine hardware */ @@ -605,7 +605,7 @@ static MACHINE_CONFIG_START( hec2mdhrx, hec2hrp_state ) MACHINE_CONFIG_END /*****************************************************************************/ -static MACHINE_CONFIG_START( hec2mx80, hec2hrp_state ) +static MACHINE_CONFIG_START( hec2mx80 ) /*****************************************************************************/ /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80, XTAL_5MHz) @@ -726,11 +726,11 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP(1983, hec2hrp, 0, interact, hec2hrp, hec2hrp, driver_device,0, "Micronique", "Hector 2HR+", MACHINE_IMPERFECT_SOUND) -COMP(1980, victor, hec2hrp, 0, hec2hrp, hec2hrp, driver_device,0, "Micronique", "Victor", MACHINE_IMPERFECT_SOUND) -COMP(1983, hec2hr, hec2hrp, 0, hec2hr, hec2hrp, driver_device,0, "Micronique", "Hector 2HR", MACHINE_IMPERFECT_SOUND) -COMP(1984, hec2hrx, hec2hrp, 0, hec2hrx, hec2hrp, driver_device,0, "Micronique", "Hector HRX + Disc2", MACHINE_IMPERFECT_SOUND) -COMP(1985, hec2mdhrx, hec2hrp, 0, hec2mdhrx, hec2hrp, driver_device,0, "Micronique", "Hector HRX + mini Disc" , MACHINE_IMPERFECT_SOUND) -COMP(1985, hec2mx80, hec2hrp, 0, hec2mx80, hec2hrp, driver_device,0, "Micronique", "Hector MX 80c + Disc2" , MACHINE_IMPERFECT_SOUND) -COMP(1985, hec2mx40, hec2hrp, 0, hec2mx40, hec2hrp, driver_device,0, "Micronique", "Hector MX 40c + Disc2" , MACHINE_IMPERFECT_SOUND) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +COMP(1983, hec2hrp, 0, interact, hec2hrp, hec2hrp, hec2hrp_state, 0, "Micronique", "Hector 2HR+", MACHINE_IMPERFECT_SOUND) +COMP(1980, victor, hec2hrp, 0, hec2hrp, hec2hrp, hec2hrp_state, 0, "Micronique", "Victor", MACHINE_IMPERFECT_SOUND) +COMP(1983, hec2hr, hec2hrp, 0, hec2hr, hec2hrp, hec2hrp_state, 0, "Micronique", "Hector 2HR", MACHINE_IMPERFECT_SOUND) +COMP(1984, hec2hrx, hec2hrp, 0, hec2hrx, hec2hrp, hec2hrp_state, 0, "Micronique", "Hector HRX + Disc2", MACHINE_IMPERFECT_SOUND) +COMP(1985, hec2mdhrx, hec2hrp, 0, hec2mdhrx, hec2hrp, hec2hrp_state, 0, "Micronique", "Hector HRX + mini Disc", MACHINE_IMPERFECT_SOUND) +COMP(1985, hec2mx80, hec2hrp, 0, hec2mx80, hec2hrp, hec2hrp_state, 0, "Micronique", "Hector MX 80c + Disc2", MACHINE_IMPERFECT_SOUND) +COMP(1985, hec2mx40, hec2hrp, 0, hec2mx40, hec2hrp, hec2hrp_state, 0, "Micronique", "Hector MX 40c + Disc2", MACHINE_IMPERFECT_SOUND) diff --git a/src/mame/drivers/hexion.cpp b/src/mame/drivers/hexion.cpp index 76c8ebf933f..6af765a64a1 100644 --- a/src/mame/drivers/hexion.cpp +++ b/src/mame/drivers/hexion.cpp @@ -239,7 +239,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(hexion_state::scanline) } -static MACHINE_CONFIG_START( hexion, hexion_state ) +static MACHINE_CONFIG_START( hexion ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_24MHz/4) /* Z80B 6 MHz @ 17F, xtal verified, divider not verified */ @@ -266,7 +266,7 @@ static MACHINE_CONFIG_START( hexion, hexion_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", 1056000, OKIM6295_PIN7_HIGH) /* MSM6295GS @ 5E, clock frequency & pin 7 not verified */ + MCFG_OKIM6295_ADD("oki", 1056000, PIN7_HIGH) /* MSM6295GS @ 5E, clock frequency & pin 7 not verified */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) MCFG_K051649_ADD("k051649", XTAL_24MHz/16) /* KONAMI 051649 // 2212P003 // JAPAN 8910EAJ @ 1D, xtal verified, divider not verified */ @@ -279,7 +279,7 @@ static MACHINE_CONFIG_DERIVED( hexionb, hexion ) MCFG_DEVICE_REMOVE("k051649") - MCFG_OKIM6295_ADD("oki2", 1056000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki2", 1056000, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) MACHINE_CONFIG_END @@ -337,5 +337,5 @@ ROM_START( hexionb ) //PAL20L10 @U31 ROM_END -GAME( 1992, hexion, 0, hexion, hexion, driver_device, 0, ROT0, "Konami", "Hexion (Japan ver JAB)", 0 ) -GAME( 1992, hexionb,hexion, hexionb,hexion, driver_device, 0, ROT0, "bootleg (Impeuropex Corp.)", "Hexion (Asia ver AAA, bootleg)", 0 ) // we're missing an original Asia AAA +GAME( 1992, hexion, 0, hexion, hexion, hexion_state, 0, ROT0, "Konami", "Hexion (Japan ver JAB)", 0 ) +GAME( 1992, hexionb,hexion, hexionb,hexion, hexion_state, 0, ROT0, "bootleg (Impeuropex Corp.)", "Hexion (Asia ver AAA, bootleg)", 0 ) // we're missing an original Asia AAA diff --git a/src/mame/drivers/hh_amis2k.cpp b/src/mame/drivers/hh_amis2k.cpp index 015d56c7ddd..f8e76bb0271 100644 --- a/src/mame/drivers/hh_amis2k.cpp +++ b/src/mame/drivers/hh_amis2k.cpp @@ -305,7 +305,7 @@ static const u8 wildfire_7seg_table[0x10] = }; -static MACHINE_CONFIG_START( wildfire, wildfire_state ) +static MACHINE_CONFIG_START( wildfire ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", AMI_S2152, MASTER_CLOCK) @@ -343,4 +343,4 @@ ROM_START( wildfire ) ROM_END -CONS( 1979, wildfire, 0, 0, wildfire, wildfire, driver_device, 0, "Parker Brothers", "Wildfire (patent)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK ) // note: pretty sure that it matches the commercial release +CONS( 1979, wildfire, 0, 0, wildfire, wildfire, wildfire_state, 0, "Parker Brothers", "Wildfire (patent)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK ) // note: pretty sure that it matches the commercial release diff --git a/src/mame/drivers/hh_cop400.cpp b/src/mame/drivers/hh_cop400.cpp index ad3e8489e5b..cc0ac93d298 100644 --- a/src/mame/drivers/hh_cop400.cpp +++ b/src/mame/drivers/hh_cop400.cpp @@ -320,7 +320,7 @@ static INPUT_PORTS_START( ctstein ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Blue Button") INPUT_PORTS_END -static MACHINE_CONFIG_START( ctstein, ctstein_state ) +static MACHINE_CONFIG_START( ctstein ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", COP421, 850000) // approximation - RC osc. R=12K, C=100pF @@ -443,7 +443,7 @@ static INPUT_PORTS_START( h2hbaskb ) PORT_CONFSETTING( 0x0c, "Soccer" ) INPUT_PORTS_END -static MACHINE_CONFIG_START( h2hbaskb, h2hbaskb_state ) +static MACHINE_CONFIG_START( h2hbaskb ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", COP420, 850000) // approximation - RC osc. R=43K, C=101pF @@ -555,7 +555,7 @@ static INPUT_PORTS_START( einvaderc ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) INPUT_PORTS_END -static MACHINE_CONFIG_START( einvaderc, einvaderc_state ) +static MACHINE_CONFIG_START( einvaderc ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", COP444L, 900000) // approximation - RC osc. R=47K, C=100pF @@ -716,7 +716,7 @@ void lchicken_state::machine_start() save_item(NAME(m_motor_pos)); } -static MACHINE_CONFIG_START( lchicken, lchicken_state ) +static MACHINE_CONFIG_START( lchicken ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", COP421, 850000) // approximation - RC osc. R=12K, C=100pF @@ -826,7 +826,7 @@ static INPUT_PORTS_START( funjacks ) PORT_CONFSETTING( 0x08, "2" ) INPUT_PORTS_END -static MACHINE_CONFIG_START( funjacks, funjacks_state ) +static MACHINE_CONFIG_START( funjacks ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", COP410, 1000000) // approximation - RC osc. R=47K, C=56pF @@ -921,7 +921,7 @@ INPUT_CHANGED_MEMBER(funrlgl_state::reset_button) m_maincpu->set_input_line(INPUT_LINE_RESET, newval ? ASSERT_LINE : CLEAR_LINE); } -static MACHINE_CONFIG_START( funrlgl, funrlgl_state ) +static MACHINE_CONFIG_START( funrlgl ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", COP410, 1000000) // approximation - RC osc. R=51K, C=91pF @@ -1057,7 +1057,7 @@ static INPUT_PORTS_START( mdallas ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_W) PORT_NAME("North") // N INPUT_PORTS_END -static MACHINE_CONFIG_START( mdallas, mdallas_state ) +static MACHINE_CONFIG_START( mdallas ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", COP444L, 1000000) // approximation - RC osc. R=57K, C=101pF @@ -1141,7 +1141,7 @@ static INPUT_PORTS_START( plus1 ) PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) INPUT_PORTS_END -static MACHINE_CONFIG_START( plus1, plus1_state ) +static MACHINE_CONFIG_START( plus1 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", COP410, 1000000) // approximation - RC osc. R=51K, C=100pF @@ -1269,7 +1269,7 @@ static INPUT_PORTS_START( lightfgt ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_COCKTAIL INPUT_PORTS_END -static MACHINE_CONFIG_START( lightfgt, lightfgt_state ) +static MACHINE_CONFIG_START( lightfgt ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", COP421, 950000) // approximation - RC osc. R=82K, C=56pF @@ -1423,7 +1423,7 @@ base pulled high with 4.7K resistor, connects directly to G3, 1K resistor to G2, */ -static MACHINE_CONFIG_START( bship82, bship82_state ) +static MACHINE_CONFIG_START( bship82 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", COP420, 750000) // approximation - RC osc. R=14K, C=100pF @@ -1555,7 +1555,7 @@ static INPUT_PORTS_START( qkracer ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_R) PORT_NAME("Tables") INPUT_PORTS_END -static MACHINE_CONFIG_START( qkracer, qkracer_state ) +static MACHINE_CONFIG_START( qkracer ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", COP420, 1000000) // approximation - RC osc. R=47K, C=100pF @@ -1652,24 +1652,24 @@ ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY, FULLNAME, FLAGS */ -CONS( 1979, ctstein, 0, 0, ctstein, ctstein, driver_device, 0, "Castle Toy", "Einstein (Castle Toy)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY, FULLNAME, FLAGS +CONS( 1979, ctstein, 0, 0, ctstein, ctstein, ctstein_state, 0, "Castle Toy", "Einstein (Castle Toy)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1980, h2hbaskb, 0, 0, h2hbaskb, h2hbaskb, driver_device, 0, "Coleco", "Head to Head Basketball/Hockey/Soccer (COP420L version)", MACHINE_SUPPORTS_SAVE ) +CONS( 1980, h2hbaskb, 0, 0, h2hbaskb, h2hbaskb, h2hbaskb_state, 0, "Coleco", "Head to Head Basketball/Hockey/Soccer (COP420L version)", MACHINE_SUPPORTS_SAVE ) -CONS( 1981, einvaderc, einvader, 0, einvaderc, einvaderc, driver_device, 0, "Entex", "Space Invader (Entex, COP444L version)", MACHINE_SUPPORTS_SAVE ) +CONS( 1981, einvaderc, einvader, 0, einvaderc, einvaderc, einvaderc_state, 0, "Entex", "Space Invader (Entex, COP444L version)", MACHINE_SUPPORTS_SAVE ) -CONS( 1980, lchicken, 0, 0, lchicken, lchicken, driver_device, 0, "LJN", "I Took a Lickin' From a Chicken", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_MECHANICAL ) +CONS( 1980, lchicken, 0, 0, lchicken, lchicken, lchicken_state, 0, "LJN", "I Took a Lickin' From a Chicken", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_MECHANICAL ) -CONS( 1979, funjacks, 0, 0, funjacks, funjacks, driver_device, 0, "Mattel", "Funtronics Jacks", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1979, funrlgl, 0, 0, funrlgl, funrlgl, driver_device, 0, "Mattel", "Funtronics Red Light Green Light", MACHINE_SUPPORTS_SAVE ) -CONS( 1981, mdallas, 0, 0, mdallas, mdallas, driver_device, 0, "Mattel", "Dalla$ (J.R. handheld)", MACHINE_SUPPORTS_SAVE ) // *** +CONS( 1979, funjacks, 0, 0, funjacks, funjacks, funjacks_state, 0, "Mattel", "Funtronics Jacks", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1979, funrlgl, 0, 0, funrlgl, funrlgl, funrlgl_state, 0, "Mattel", "Funtronics Red Light Green Light", MACHINE_SUPPORTS_SAVE ) +CONS( 1981, mdallas, 0, 0, mdallas, mdallas, mdallas_state, 0, "Mattel", "Dalla$ (J.R. handheld)", MACHINE_SUPPORTS_SAVE ) // *** -CONS( 1980, plus1, 0, 0, plus1, plus1, driver_device, 0, "Milton Bradley", "Plus One", MACHINE_SUPPORTS_SAVE ) // *** -CONS( 1981, lightfgt, 0, 0, lightfgt, lightfgt, driver_device, 0, "Milton Bradley", "Lightfight", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1982, bship82, bship, 0, bship82, bship82, driver_device, 0, "Milton Bradley", "Electronic Battleship (1982 version)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) // *** +CONS( 1980, plus1, 0, 0, plus1, plus1, plus1_state, 0, "Milton Bradley", "Plus One", MACHINE_SUPPORTS_SAVE ) // *** +CONS( 1981, lightfgt, 0, 0, lightfgt, lightfgt, lightfgt_state, 0, "Milton Bradley", "Lightfight", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1982, bship82, bship, 0, bship82, bship82, bship82_state, 0, "Milton Bradley", "Electronic Battleship (1982 version)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) // *** -CONS( 1978, qkracer, 0, 0, qkracer, qkracer, driver_device, 0, "National Semiconductor", "QuizKid Racer (COP420 version)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) +CONS( 1978, qkracer, 0, 0, qkracer, qkracer, qkracer_state, 0, "National Semiconductor", "QuizKid Racer (COP420 version)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) // ***: 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_hmcs40.cpp b/src/mame/drivers/hh_hmcs40.cpp index eb57472b7ff..ad9e195bf36 100644 --- a/src/mame/drivers/hh_hmcs40.cpp +++ b/src/mame/drivers/hh_hmcs40.cpp @@ -385,7 +385,7 @@ public: WRITE8_MEMBER(bambball_state::plate_w) { // R1x-R3x(,D0-D3): vfd matrix plate - int shift = (offset - HMCS40_PORT_R1X) * 4; + int shift = (offset - hmcs40_cpu_device::PORT_R1X) * 4; m_plate = (m_plate & ~(0xf << shift)) | (data << shift); // update display @@ -405,7 +405,7 @@ WRITE16_MEMBER(bambball_state::grid_w) m_grid = data >> 7 & 0x1ff; // D0-D3: more plates (update display there) - plate_w(space, 3 + HMCS40_PORT_R1X, data & 0xf); + plate_w(space, 3 + hmcs40_cpu_device::PORT_R1X, data & 0xf); } READ8_MEMBER(bambball_state::input_r) @@ -444,7 +444,7 @@ static INPUT_PORTS_START( bambball ) PORT_CONFSETTING( 0x00, "2" ) INPUT_PORTS_END -static MACHINE_CONFIG_START( bambball, bambball_state ) +static MACHINE_CONFIG_START( bambball ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", HD38750, 400000) // approximation @@ -506,7 +506,7 @@ void bmboxing_state::prepare_display() WRITE8_MEMBER(bmboxing_state::plate_w) { // R1x-R3x: vfd matrix plate - int shift = (offset - HMCS40_PORT_R1X) * 4; + int shift = (offset - hmcs40_cpu_device::PORT_R1X) * 4; m_plate = (m_plate & ~(0xf << shift)) | (data << shift); prepare_display(); } @@ -580,7 +580,7 @@ static INPUT_PORTS_START( bmboxing ) PORT_BIT( 0xfff8, IP_ACTIVE_HIGH, IPT_UNUSED ) INPUT_PORTS_END -static MACHINE_CONFIG_START( bmboxing, bmboxing_state ) +static MACHINE_CONFIG_START( bmboxing ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", HD38750, 400000) // approximation @@ -705,7 +705,7 @@ INPUT_CHANGED_MEMBER(bfriskyt_state::input_changed) update_int1(); } -static MACHINE_CONFIG_START( bfriskyt, bfriskyt_state ) +static MACHINE_CONFIG_START( bfriskyt ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", HD38800, 400000) // approximation @@ -815,7 +815,7 @@ static INPUT_PORTS_START( packmon ) PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) INPUT_PORTS_END -static MACHINE_CONFIG_START( packmon, packmon_state ) +static MACHINE_CONFIG_START( packmon ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", HD38800, 400000) // approximation @@ -950,7 +950,7 @@ INPUT_CHANGED_MEMBER(msthawk_state::input_changed) update_int0(); } -static MACHINE_CONFIG_START( msthawk, msthawk_state ) +static MACHINE_CONFIG_START( msthawk ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", HD38800, 400000) // approximation @@ -1071,7 +1071,7 @@ INPUT_CHANGED_MEMBER(bzaxxon_state::input_changed) update_int1(); } -static MACHINE_CONFIG_START( bzaxxon, bzaxxon_state ) +static MACHINE_CONFIG_START( bzaxxon ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", HD38800, 450000) // approximation @@ -1187,7 +1187,7 @@ INPUT_CHANGED_MEMBER(zackman_state::input_changed) update_int0(); } -static MACHINE_CONFIG_START( zackman, zackman_state ) +static MACHINE_CONFIG_START( zackman ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", HD38820, 400000) // approximation @@ -1314,7 +1314,7 @@ INPUT_CHANGED_MEMBER(bpengo_state::input_changed) update_int0(); } -static MACHINE_CONFIG_START( bpengo, bpengo_state ) +static MACHINE_CONFIG_START( bpengo ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", HD38820, 400000) // approximation @@ -1439,7 +1439,7 @@ INPUT_CHANGED_MEMBER(bbtime_state::input_changed) update_int0(); } -static MACHINE_CONFIG_START( bbtime, bbtime_state ) +static MACHINE_CONFIG_START( bbtime ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", HD38820, 400000) // approximation @@ -1539,7 +1539,7 @@ static INPUT_PORTS_START( bdoramon ) PORT_CONFSETTING( 0x08, DEF_STR( On ) ) INPUT_PORTS_END -static MACHINE_CONFIG_START( bdoramon, bdoramon_state ) +static MACHINE_CONFIG_START( bdoramon ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", HD38800, 400000) // approximation @@ -1632,7 +1632,7 @@ static INPUT_PORTS_START( bultrman ) PORT_BIT( 0xff8f, IP_ACTIVE_HIGH, IPT_UNUSED ) INPUT_PORTS_END -static MACHINE_CONFIG_START( bultrman, bultrman_state ) +static MACHINE_CONFIG_START( bultrman ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", HD38800, 350000) // approximation @@ -1693,7 +1693,7 @@ void machiman_state::prepare_display() WRITE8_MEMBER(machiman_state::plate_w) { // R0x-R3x,R6012: vfd matrix plate - int shift = (offset == HMCS40_PORT_R6X) ? 16 : offset * 4; + int shift = (offset == hmcs40_cpu_device::PORT_R6X) ? 16 : offset * 4; m_plate = (m_plate & ~(0xf << shift)) | (data << shift); prepare_display(); } @@ -1721,7 +1721,7 @@ static INPUT_PORTS_START( machiman ) PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY INPUT_PORTS_END -static MACHINE_CONFIG_START( machiman, machiman_state ) +static MACHINE_CONFIG_START( machiman ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", HD38820, 400000) // approximation @@ -1788,7 +1788,7 @@ public: WRITE8_MEMBER(pairmtch_state::plate_w) { // R2x,R3x,R6x: vfd matrix plate - int shift = (offset == HMCS40_PORT_R6X) ? 8 : (offset-2) * 4; + 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); } @@ -1871,7 +1871,7 @@ static INPUT_PORTS_START( pairmtch ) PORT_BIT( 0x86bf, IP_ACTIVE_HIGH, IPT_UNUSED ) INPUT_PORTS_END -static MACHINE_CONFIG_START( pairmtch, pairmtch_state ) +static MACHINE_CONFIG_START( pairmtch ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", HD38820, 400000) // approximation @@ -1993,7 +1993,7 @@ static INPUT_PORTS_START( alnattck ) PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Fire") INPUT_PORTS_END -static MACHINE_CONFIG_START( alnattck, alnattck_state ) +static MACHINE_CONFIG_START( alnattck ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", HD38800, 400000) // approximation @@ -2120,7 +2120,7 @@ void cdkong_state::machine_start() save_item(NAME(m_speaker_volume)); } -static MACHINE_CONFIG_START( cdkong, cdkong_state ) +static MACHINE_CONFIG_START( cdkong ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", HD38820, 400000) // approximation @@ -2196,11 +2196,11 @@ void cgalaxn_state::prepare_display() WRITE8_MEMBER(cgalaxn_state::grid_w) { // R10,R11: input mux - if (offset == HMCS40_PORT_R1X) + if (offset == hmcs40_cpu_device::PORT_R1X) m_inp_mux = data & 3; // R1x-R3x: vfd matrix grid - int shift = (offset - HMCS40_PORT_R1X) * 4; + int shift = (offset - hmcs40_cpu_device::PORT_R1X) * 4; m_grid = (m_grid & ~(0xf << shift)) | (data << shift); prepare_display(); } @@ -2253,7 +2253,7 @@ INPUT_CHANGED_MEMBER(cgalaxn_state::player_switch) prepare_display(); } -static MACHINE_CONFIG_START( cgalaxn, cgalaxn_state ) +static MACHINE_CONFIG_START( cgalaxn ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", HD38800, 400000) // approximation @@ -2319,7 +2319,7 @@ public: WRITE8_MEMBER(cpacman_state::plate_w) { // R1x-R6x(,D1,D2): vfd matrix plate - int shift = (offset - HMCS40_PORT_R1X) * 4; + int shift = (offset - hmcs40_cpu_device::PORT_R1X) * 4; m_plate = (m_plate & ~(0xf << shift)) | (data << shift); // update display @@ -2340,7 +2340,7 @@ WRITE16_MEMBER(cpacman_state::grid_w) m_grid = data >> 5 & 0x7ff; // D1,D2: plate 8,14 (update display there) - plate_w(space, 6 + HMCS40_PORT_R1X, data >> 1 & 3); + plate_w(space, 6 + hmcs40_cpu_device::PORT_R1X, data >> 1 & 3); } READ8_MEMBER(cpacman_state::input_r) @@ -2372,7 +2372,7 @@ static INPUT_PORTS_START( cpacman ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) INPUT_PORTS_END -static MACHINE_CONFIG_START( cpacman, cpacman_state ) +static MACHINE_CONFIG_START( cpacman ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", HD38820, 400000) // approximation @@ -2436,7 +2436,7 @@ public: WRITE8_MEMBER(cmspacmn_state::plate_w) { // R1x-R6x(,D0,D1): vfd matrix plate - int shift = (offset - HMCS40_PORT_R1X) * 4; + int shift = (offset - hmcs40_cpu_device::PORT_R1X) * 4; m_plate = (m_plate & ~(0xf << shift)) | (data << shift); // update display @@ -2457,7 +2457,7 @@ WRITE16_MEMBER(cmspacmn_state::grid_w) m_grid = data >> 5 & 0x7ff; // D0,D1: more plates (update display there) - plate_w(space, 6 + HMCS40_PORT_R1X, data & 3); + plate_w(space, 6 + hmcs40_cpu_device::PORT_R1X, data & 3); } READ8_MEMBER(cmspacmn_state::input_r) @@ -2489,7 +2489,7 @@ static INPUT_PORTS_START( cmspacmn ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) INPUT_PORTS_END -static MACHINE_CONFIG_START( cmspacmn, cmspacmn_state ) +static MACHINE_CONFIG_START( cmspacmn ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", HD38820, 400000) // approximation @@ -2636,7 +2636,7 @@ static INPUT_PORTS_START( sag ) PORT_CONFSETTING( 0x02, "2" ) INPUT_PORTS_END -static MACHINE_CONFIG_START( sag, sag_state ) +static MACHINE_CONFIG_START( sag ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", HD38800, 450000) // approximation @@ -2707,7 +2707,7 @@ WRITE16_MEMBER(egalaxn2_state::grid_w) WRITE8_MEMBER(egalaxn2_state::plate_w) { // R1x-R6x: vfd matrix plate - int shift = (offset - HMCS40_PORT_R1X) * 4; + int shift = (offset - hmcs40_cpu_device::PORT_R1X) * 4; m_plate = (m_plate & ~(0xf << shift)) | (data << shift); prepare_display(); } @@ -2751,7 +2751,7 @@ static INPUT_PORTS_START( egalaxn2 ) PORT_CONFSETTING( 0x04, "2" ) INPUT_PORTS_END -static MACHINE_CONFIG_START( egalaxn2, egalaxn2_state ) +static MACHINE_CONFIG_START( egalaxn2 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", HD38820, 400000) // approximation @@ -3000,7 +3000,7 @@ void eturtles_state::machine_start() save_item(NAME(m_cop_irq)); } -static MACHINE_CONFIG_START( eturtles, eturtles_state ) +static MACHINE_CONFIG_START( eturtles ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", HD38820, 400000) // approximation @@ -3110,7 +3110,7 @@ static INPUT_PORTS_START( estargte ) PORT_BIT( 0x03, IP_ACTIVE_HIGH, IPT_UNUSED ) INPUT_PORTS_END -static MACHINE_CONFIG_START( estargte, estargte_state ) +static MACHINE_CONFIG_START( estargte ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", HD38820, 400000) // approximation @@ -3236,7 +3236,7 @@ static INPUT_PORTS_START( ghalien ) PORT_CONFSETTING( 0x8000, "Professional" ) INPUT_PORTS_END -static MACHINE_CONFIG_START( ghalien, ghalien_state ) +static MACHINE_CONFIG_START( ghalien ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", HD38800, 400000) // approximation @@ -3363,7 +3363,7 @@ INPUT_CHANGED_MEMBER(gckong_state::input_changed) update_int1(); } -static MACHINE_CONFIG_START( gckong, gckong_state ) +static MACHINE_CONFIG_START( gckong ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", HD38800, 400000) // approximation @@ -3482,7 +3482,7 @@ INPUT_CHANGED_MEMBER(gdigdug_state::input_changed) update_int1(); } -static MACHINE_CONFIG_START( gdigdug, gdigdug_state ) +static MACHINE_CONFIG_START( gdigdug ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", HD38820, 400000) // approximation @@ -3551,7 +3551,7 @@ void mwcbaseb_state::prepare_display() WRITE8_MEMBER(mwcbaseb_state::plate_w) { // R1x-R3x,R6x: vfd matrix plate - int shift = (offset == HMCS40_PORT_R6X) ? 12 : (offset - HMCS40_PORT_R1X) * 4; + 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(); } @@ -3644,7 +3644,7 @@ INPUT_PORTS_END static const s16 mwcbaseb_speaker_levels[] = { 0, 0x3fff, -0x4000, 0, -0x4000, 0, -0x8000, -0x4000 }; -static MACHINE_CONFIG_START( mwcbaseb, mwcbaseb_state ) +static MACHINE_CONFIG_START( mwcbaseb ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", HD38820, 400000) // approximation @@ -3732,7 +3732,7 @@ static INPUT_PORTS_START( pbqbert ) PORT_BIT( 0xe1ff, IP_ACTIVE_HIGH, IPT_UNUSED ) INPUT_PORTS_END -static MACHINE_CONFIG_START( pbqbert, pbqbert_state ) +static MACHINE_CONFIG_START( pbqbert ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", HD38820, 400000) // approximation @@ -3857,7 +3857,7 @@ INPUT_CHANGED_MEMBER(kingman_state::input_changed) update_int0(); } -static MACHINE_CONFIG_START( kingman, kingman_state ) +static MACHINE_CONFIG_START( kingman ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", HD38800, 400000) // approximation @@ -3978,7 +3978,7 @@ INPUT_CHANGED_MEMBER(tmtron_state::input_changed) update_int1(); } -static MACHINE_CONFIG_START( tmtron, tmtron_state ) +static MACHINE_CONFIG_START( tmtron ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", HD38800, 400000) // approximation @@ -4035,7 +4035,7 @@ public: WRITE8_MEMBER(vinvader_state::plate_w) { // R1x-R3x(,D4-D6): vfd matrix plate - int shift = (offset - HMCS40_PORT_R1X) * 4; + int shift = (offset - hmcs40_cpu_device::PORT_R1X) * 4; m_plate = (m_plate & ~(0xf << shift)) | (data << shift); // update display @@ -4052,7 +4052,7 @@ WRITE16_MEMBER(vinvader_state::grid_w) m_grid = data >> 7 & 0x1ff; // D4-D6: more plates (update display there) - plate_w(space, 3 + HMCS40_PORT_R1X, data >> 4 & 7); + plate_w(space, 3 + hmcs40_cpu_device::PORT_R1X, data >> 4 & 7); } @@ -4072,7 +4072,7 @@ static INPUT_PORTS_START( vinvader ) PORT_BIT( 0xfff5, IP_ACTIVE_HIGH, IPT_UNUSED ) INPUT_PORTS_END -static MACHINE_CONFIG_START( vinvader, vinvader_state ) +static MACHINE_CONFIG_START( vinvader ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", HD38750, 400000) // approximation @@ -4454,47 +4454,47 @@ ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY, FULLNAME, FLAGS */ -CONS( 1979, bambball, 0, 0, bambball, bambball, driver_device, 0, "Bambino", "Dribble Away Basketball", MACHINE_SUPPORTS_SAVE ) -CONS( 1979, bmboxing, 0, 0, bmboxing, bmboxing, driver_device, 0, "Bambino", "Knock-Em Out Boxing", MACHINE_SUPPORTS_SAVE ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY, FULLNAME, FLAGS */ +CONS( 1979, bambball, 0, 0, bambball, bambball, bambball_state, 0, "Bambino", "Dribble Away Basketball", MACHINE_SUPPORTS_SAVE ) +CONS( 1979, bmboxing, 0, 0, bmboxing, bmboxing, bmboxing_state, 0, "Bambino", "Knock-Em Out Boxing", MACHINE_SUPPORTS_SAVE ) -CONS( 1982, bfriskyt, 0, 0, bfriskyt, bfriskyt, driver_device, 0, "Bandai", "Frisky Tom (Bandai)", MACHINE_SUPPORTS_SAVE ) -CONS( 1981, packmon, 0, 0, packmon, packmon, driver_device, 0, "Bandai", "Packri Monster", MACHINE_SUPPORTS_SAVE ) -CONS( 1982, msthawk, 0, 0, msthawk, msthawk, driver_device, 0, "Bandai (Mattel license)", "Star Hawk (Mattel)", MACHINE_SUPPORTS_SAVE ) -CONS( 1982, bzaxxon, 0, 0, bzaxxon, bzaxxon, driver_device, 0, "Bandai", "Zaxxon (Bandai)", MACHINE_SUPPORTS_SAVE ) -CONS( 1983, zackman, 0, 0, zackman, zackman, driver_device, 0, "Bandai", "Zackman", MACHINE_SUPPORTS_SAVE ) -CONS( 1983, bpengo, 0, 0, bpengo, bpengo, driver_device, 0, "Bandai", "Pengo (Bandai)", MACHINE_SUPPORTS_SAVE ) -CONS( 1983, bbtime, 0, 0, bbtime, bbtime, driver_device, 0, "Bandai", "Burger Time (Bandai)", MACHINE_SUPPORTS_SAVE ) -CONS( 1983, bdoramon, 0, 0, bdoramon, bdoramon, driver_device, 0, "Bandai", "Dokodemo Dorayaki Doraemon", MACHINE_SUPPORTS_SAVE ) -CONS( 1983, bultrman, 0, 0, bultrman, bultrman, driver_device, 0, "Bandai", "Ultraman Monster Battle", MACHINE_SUPPORTS_SAVE ) -CONS( 1984, machiman, 0, 0, machiman, machiman, driver_device, 0, "Bandai", "Machine Man", MACHINE_SUPPORTS_SAVE ) -CONS( 1984, pairmtch, 0, 0, pairmtch, pairmtch, driver_device, 0, "Bandai", "Pair Match", MACHINE_SUPPORTS_SAVE ) +CONS( 1982, bfriskyt, 0, 0, bfriskyt, bfriskyt, bfriskyt_state, 0, "Bandai", "Frisky Tom (Bandai)", MACHINE_SUPPORTS_SAVE ) +CONS( 1981, packmon, 0, 0, packmon, packmon, packmon_state, 0, "Bandai", "Packri Monster", MACHINE_SUPPORTS_SAVE ) +CONS( 1982, msthawk, 0, 0, msthawk, msthawk, msthawk_state, 0, "Bandai (Mattel license)", "Star Hawk (Mattel)", MACHINE_SUPPORTS_SAVE ) +CONS( 1982, bzaxxon, 0, 0, bzaxxon, bzaxxon, bzaxxon_state, 0, "Bandai", "Zaxxon (Bandai)", MACHINE_SUPPORTS_SAVE ) +CONS( 1983, zackman, 0, 0, zackman, zackman, zackman_state, 0, "Bandai", "Zackman", MACHINE_SUPPORTS_SAVE ) +CONS( 1983, bpengo, 0, 0, bpengo, bpengo, bpengo_state, 0, "Bandai", "Pengo (Bandai)", MACHINE_SUPPORTS_SAVE ) +CONS( 1983, bbtime, 0, 0, bbtime, bbtime, bbtime_state, 0, "Bandai", "Burger Time (Bandai)", MACHINE_SUPPORTS_SAVE ) +CONS( 1983, bdoramon, 0, 0, bdoramon, bdoramon, bdoramon_state, 0, "Bandai", "Dokodemo Dorayaki Doraemon", MACHINE_SUPPORTS_SAVE ) +CONS( 1983, bultrman, 0, 0, bultrman, bultrman, bultrman_state, 0, "Bandai", "Ultraman Monster Battle", MACHINE_SUPPORTS_SAVE ) +CONS( 1984, machiman, 0, 0, machiman, machiman, machiman_state, 0, "Bandai", "Machine Man", MACHINE_SUPPORTS_SAVE ) +CONS( 1984, pairmtch, 0, 0, pairmtch, pairmtch, pairmtch_state, 0, "Bandai", "Pair Match", MACHINE_SUPPORTS_SAVE ) -CONS( 1981, alnattck, 0, 0, alnattck, alnattck, driver_device, 0, "Coleco", "Alien Attack", MACHINE_SUPPORTS_SAVE ) -CONS( 1982, cdkong, 0, 0, cdkong, cdkong, driver_device, 0, "Coleco", "Donkey Kong (Coleco)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) -CONS( 1982, cgalaxn, 0, 0, cgalaxn, cgalaxn, driver_device, 0, "Coleco", "Galaxian (Coleco)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) -CONS( 1981, cpacman, 0, 0, cpacman, cpacman, driver_device, 0, "Coleco", "Pac-Man (Coleco, Rev. 29)", MACHINE_SUPPORTS_SAVE ) -CONS( 1981, cpacmanr1, cpacman, 0, cpacman, cpacman, driver_device, 0, "Coleco", "Pac-Man (Coleco, Rev. 28)", MACHINE_SUPPORTS_SAVE ) -CONS( 1983, cmspacmn, 0, 0, cmspacmn, cmspacmn, driver_device, 0, "Coleco", "Ms. Pac-Man (Coleco)", MACHINE_SUPPORTS_SAVE ) +CONS( 1981, alnattck, 0, 0, alnattck, alnattck, alnattck_state, 0, "Coleco", "Alien Attack", MACHINE_SUPPORTS_SAVE ) +CONS( 1982, cdkong, 0, 0, cdkong, cdkong, cdkong_state, 0, "Coleco", "Donkey Kong (Coleco)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) +CONS( 1982, cgalaxn, 0, 0, cgalaxn, cgalaxn, cgalaxn_state, 0, "Coleco", "Galaxian (Coleco)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) +CONS( 1981, cpacman, 0, 0, cpacman, cpacman, cpacman_state, 0, "Coleco", "Pac-Man (Coleco, Rev. 29)", MACHINE_SUPPORTS_SAVE ) +CONS( 1981, cpacmanr1, cpacman, 0, cpacman, cpacman, cpacman_state, 0, "Coleco", "Pac-Man (Coleco, Rev. 28)", MACHINE_SUPPORTS_SAVE ) +CONS( 1983, cmspacmn, 0, 0, cmspacmn, cmspacmn, cmspacmn_state, 0, "Coleco", "Ms. Pac-Man (Coleco)", MACHINE_SUPPORTS_SAVE ) -CONS( 1981, sag_si2, 0, 0, sag, sag, driver_device, 0, "Entex", "Select-A-Game: Space Invader 2", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK | MACHINE_NOT_WORKING ) // suspect bad dump -CONS( 1981, sag_bb4, 0, 0, sag, sag, driver_device, 0, "Entex", "Select-A-Game: Baseball 4", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK ) -CONS( 1981, sag_pb, 0, 0, sag, sag, driver_device, 0, "Entex", "Select-A-Game: Pinball", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK ) -CONS( 1981, egalaxn2, 0, 0, egalaxn2, egalaxn2, driver_device, 0, "Entex", "Galaxian 2 (Entex)", MACHINE_SUPPORTS_SAVE ) -CONS( 1981, epacman2, 0, 0, epacman2, epacman2, driver_device, 0, "Entex", "Pac Man 2 (Entex, cyan Pacman)", MACHINE_SUPPORTS_SAVE ) -CONS( 1981, epacman2r, epacman2, 0, epacman2, epacman2, driver_device, 0, "Entex", "Pac Man 2 (Entex, red Pacman)", MACHINE_SUPPORTS_SAVE ) -CONS( 1982, estargte, 0, 0, estargte, estargte, driver_device, 0, "Entex", "Stargate (Entex)", MACHINE_SUPPORTS_SAVE ) -CONS( 1982, eturtles, 0, 0, eturtles, eturtles, driver_device, 0, "Entex", "Turtles (Entex)", MACHINE_SUPPORTS_SAVE ) +CONS( 1981, sag_si2, 0, 0, sag, sag, sag_state, 0, "Entex", "Select-A-Game: Space Invader 2", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK | MACHINE_NOT_WORKING ) // suspect bad dump +CONS( 1981, sag_bb4, 0, 0, sag, sag, sag_state, 0, "Entex", "Select-A-Game: Baseball 4", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK ) +CONS( 1981, sag_pb, 0, 0, sag, sag, sag_state, 0, "Entex", "Select-A-Game: Pinball", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK ) +CONS( 1981, egalaxn2, 0, 0, egalaxn2, egalaxn2, egalaxn2_state, 0, "Entex", "Galaxian 2 (Entex)", MACHINE_SUPPORTS_SAVE ) +CONS( 1981, epacman2, 0, 0, epacman2, epacman2, egalaxn2_state, 0, "Entex", "Pac Man 2 (Entex, cyan Pacman)", MACHINE_SUPPORTS_SAVE ) +CONS( 1981, epacman2r, epacman2, 0, epacman2, epacman2, egalaxn2_state, 0, "Entex", "Pac Man 2 (Entex, red Pacman)", MACHINE_SUPPORTS_SAVE ) +CONS( 1982, estargte, 0, 0, estargte, estargte, estargte_state, 0, "Entex", "Stargate (Entex)", MACHINE_SUPPORTS_SAVE ) +CONS( 1982, eturtles, 0, 0, eturtles, eturtles, eturtles_state, 0, "Entex", "Turtles (Entex)", MACHINE_SUPPORTS_SAVE ) -CONS( 1980, ghalien, 0, 0, ghalien, ghalien, driver_device, 0, "Gakken", "Heiankyo Alien (Gakken)", MACHINE_SUPPORTS_SAVE ) -CONS( 1982, gckong, 0, 0, gckong, gckong, driver_device, 0, "Gakken", "Crazy Kong (Gakken)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) -CONS( 1983, gdigdug, 0, 0, gdigdug, gdigdug, driver_device, 0, "Gakken", "Dig Dug (Gakken)", MACHINE_SUPPORTS_SAVE ) +CONS( 1980, ghalien, 0, 0, ghalien, ghalien, ghalien_state, 0, "Gakken", "Heiankyo Alien (Gakken)", MACHINE_SUPPORTS_SAVE ) +CONS( 1982, gckong, 0, 0, gckong, gckong, gckong_state, 0, "Gakken", "Crazy Kong (Gakken)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) +CONS( 1983, gdigdug, 0, 0, gdigdug, gdigdug, gdigdug_state, 0, "Gakken", "Dig Dug (Gakken)", MACHINE_SUPPORTS_SAVE ) -CONS( 1980, mwcbaseb, 0, 0, mwcbaseb, mwcbaseb, driver_device, 0, "Mattel", "World Championship Baseball", MACHINE_SUPPORTS_SAVE ) +CONS( 1980, mwcbaseb, 0, 0, mwcbaseb, mwcbaseb, mwcbaseb_state, 0, "Mattel", "World Championship Baseball", MACHINE_SUPPORTS_SAVE ) -CONS( 1983, pbqbert, 0, 0, pbqbert, pbqbert, driver_device, 0, "Parker Brothers", "Q*Bert (Parker Brothers)", MACHINE_SUPPORTS_SAVE ) +CONS( 1983, pbqbert, 0, 0, pbqbert, pbqbert, pbqbert_state, 0, "Parker Brothers", "Q*Bert (Parker Brothers)", MACHINE_SUPPORTS_SAVE ) -CONS( 1982, kingman, 0, 0, kingman, kingman, driver_device, 0, "Tomy", "Kingman", MACHINE_SUPPORTS_SAVE ) -CONS( 1984, tmtron, 0, 0, tmtron, tmtron, driver_device, 0, "Tomy", "Tron (Tomy)", MACHINE_SUPPORTS_SAVE ) +CONS( 1982, kingman, 0, 0, kingman, kingman, kingman_state, 0, "Tomy", "Kingman", MACHINE_SUPPORTS_SAVE ) +CONS( 1984, tmtron, 0, 0, tmtron, tmtron, tmtron_state, 0, "Tomy", "Tron (Tomy)", MACHINE_SUPPORTS_SAVE ) -CONS( 1981, vinvader, 0, 0, vinvader, vinvader, driver_device, 0, "VTech", "Invaders (VTech)", MACHINE_SUPPORTS_SAVE ) +CONS( 1981, vinvader, 0, 0, vinvader, vinvader, vinvader_state, 0, "VTech", "Invaders (VTech)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/hh_melps4.cpp b/src/mame/drivers/hh_melps4.cpp index 5e2f507835c..96208e0749b 100644 --- a/src/mame/drivers/hh_melps4.cpp +++ b/src/mame/drivers/hh_melps4.cpp @@ -310,7 +310,7 @@ static INPUT_PORTS_START( cfrogger ) PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_melps4_state, reset_button, nullptr) INPUT_PORTS_END -static MACHINE_CONFIG_START( cfrogger, cfrogger_state ) +static MACHINE_CONFIG_START( cfrogger ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M58846, XTAL_600kHz) @@ -426,7 +426,7 @@ static INPUT_PORTS_START( gjungler ) PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_melps4_state, reset_button, nullptr) INPUT_PORTS_END -static MACHINE_CONFIG_START( gjungler, gjungler_state ) +static MACHINE_CONFIG_START( gjungler ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M58846, XTAL_600kHz) @@ -481,7 +481,7 @@ ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY, FULLNAME, FLAGS */ -CONS( 1981, cfrogger, 0, 0, cfrogger, cfrogger, driver_device, 0, "Coleco", "Frogger (Coleco)", MACHINE_SUPPORTS_SAVE ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +CONS( 1981, cfrogger, 0, 0, cfrogger, cfrogger, cfrogger_state, 0, "Coleco", "Frogger (Coleco)", MACHINE_SUPPORTS_SAVE ) -CONS( 1982, gjungler, 0, 0, gjungler, gjungler, driver_device, 0, "Gakken / Konami", "Jungler (Gakken)", MACHINE_SUPPORTS_SAVE ) +CONS( 1982, gjungler, 0, 0, gjungler, gjungler, gjungler_state, 0, "Gakken / Konami", "Jungler (Gakken)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/hh_pic16.cpp b/src/mame/drivers/hh_pic16.cpp index d3473d5b669..5cb7b846f80 100644 --- a/src/mame/drivers/hh_pic16.cpp +++ b/src/mame/drivers/hh_pic16.cpp @@ -375,7 +375,7 @@ INPUT_PORTS_END static const s16 touchme_speaker_levels[] = { 0, 0x7fff, -0x8000, 0 }; -static MACHINE_CONFIG_START( touchme, touchme_state ) +static MACHINE_CONFIG_START( touchme ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", PIC1655, 300000) // approximation - RC osc. R=100K, C=47pF @@ -484,7 +484,7 @@ INPUT_CHANGED_MEMBER(pabball_state::reset_button) m_maincpu->set_input_line(INPUT_LINE_RESET, newval ? ASSERT_LINE : CLEAR_LINE); } -static MACHINE_CONFIG_START( pabball, pabball_state ) +static MACHINE_CONFIG_START( pabball ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", PIC1655, 1200000) // approximation - RC osc. R=18K, C=27pF @@ -599,7 +599,7 @@ static INPUT_PORTS_START( melodym ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_0) PORT_NAME("Note") INPUT_PORTS_END -static MACHINE_CONFIG_START( melodym, melodym_state ) +static MACHINE_CONFIG_START( melodym ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", PIC1655, 1000000) // approximation @@ -699,7 +699,7 @@ INPUT_PORTS_END static const s16 maniac_speaker_levels[] = { 0, 0x7fff, -0x8000, 0 }; -static MACHINE_CONFIG_START( maniac, maniac_state ) +static MACHINE_CONFIG_START( maniac ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", PIC1655, 1000000) // approximation - RC osc. R=~13.4K, C=470pF @@ -855,7 +855,7 @@ void leboom_state::machine_start() save_item(NAME(m_speaker_volume)); } -static MACHINE_CONFIG_START( leboom, leboom_state ) +static MACHINE_CONFIG_START( leboom ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", PIC1655, 1000000) // approximation @@ -965,7 +965,7 @@ static INPUT_PORTS_START( tbaskb ) PORT_CONFSETTING( 0x00, "2" ) INPUT_PORTS_END -static MACHINE_CONFIG_START( tbaskb, tbaskb_state ) +static MACHINE_CONFIG_START( tbaskb ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", PIC1655, 950000) // approximation - RC osc. R=18K, C=47pF @@ -1074,7 +1074,7 @@ INPUT_PORTS_END static const s16 rockpin_speaker_levels[] = { 0, 0x7fff, -0x8000, 0 }; -static MACHINE_CONFIG_START( rockpin, rockpin_state ) +static MACHINE_CONFIG_START( rockpin ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", PIC1650, 450000) // approximation - RC osc. R=47K, C=47pF @@ -1192,7 +1192,7 @@ static INPUT_PORTS_START( hccbaskb ) PORT_CONFSETTING( 0x00, "2" ) INPUT_PORTS_END -static MACHINE_CONFIG_START( hccbaskb, hccbaskb_state ) +static MACHINE_CONFIG_START( hccbaskb ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", PIC1655, 950000) // approximation - RC osc. R=15K, C=47pF @@ -1344,7 +1344,7 @@ static INPUT_PORTS_START( ttfballa ) PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_16WAY INPUT_PORTS_END -static MACHINE_CONFIG_START( ttfball, ttfball_state ) +static MACHINE_CONFIG_START( ttfball ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", PIC1655, 1000000) // approximation - RC osc. R=27K(set 1) or 33K(set 2), C=68pF @@ -1448,7 +1448,7 @@ static INPUT_PORTS_START( uspbball ) PORT_CONFSETTING( 0x00, "2" ) INPUT_PORTS_END -static MACHINE_CONFIG_START( uspbball, uspbball_state ) +static MACHINE_CONFIG_START( uspbball ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", PIC1650, 1000000) // approximation - RC osc. R=22K, C=47pF @@ -1583,7 +1583,7 @@ static INPUT_PORTS_START( us2pfball ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START ) PORT_NAME("Status/Score") // S INPUT_PORTS_END -static MACHINE_CONFIG_START( us2pfball, us2pfball_state ) +static MACHINE_CONFIG_START( us2pfball ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", PIC1650, 800000) // approximation - RC osc. R=39K, C=75pF @@ -1690,24 +1690,24 @@ ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY, FULLNAME, FLAGS */ -CONS( 1979, touchme, 0, 0, touchme, touchme, driver_device, 0, "Atari", "Touch Me (handheld, Rev 2)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY, FULLNAME, FLAGS +CONS( 1979, touchme, 0, 0, touchme, touchme, touchme_state, 0, "Atari", "Touch Me (handheld, Rev 2)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1979, pabball, 0, 0, pabball, pabball, driver_device, 0, "Caprice / Calfax", "Pro-Action Baseball", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) +CONS( 1979, pabball, 0, 0, pabball, pabball, pabball_state, 0, "Caprice / Calfax", "Pro-Action Baseball", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) -CONS( 1980, melodym, 0, 0, melodym, melodym, driver_device, 0, "GAF", "Melody Madness", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1980, melodym, 0, 0, melodym, melodym, melodym_state, 0, "GAF", "Melody Madness", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1979, maniac, 0, 0, maniac, maniac, driver_device, 0, "Ideal", "Maniac", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1979, maniac, 0, 0, maniac, maniac, maniac_state, 0, "Ideal", "Maniac", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1980, leboom, 0, 0, leboom, leboom, driver_device, 0, "Lakeside", "Le Boom", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1980, leboom, 0, 0, leboom, leboom, leboom_state, 0, "Lakeside", "Le Boom", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1979, tbaskb, 0, 0, tbaskb, tbaskb, driver_device, 0, "Tandy Radio Shack", "Electronic Basketball (Tandy)", MACHINE_SUPPORTS_SAVE ) +CONS( 1979, tbaskb, 0, 0, tbaskb, tbaskb, tbaskb_state, 0, "Tandy Radio Shack", "Electronic Basketball (Tandy)", MACHINE_SUPPORTS_SAVE ) -CONS( 1979, rockpin, 0, 0, rockpin, rockpin, driver_device, 0, "Tiger Electronics", "Rocket Pinball", MACHINE_SUPPORTS_SAVE ) -CONS( 1979, hccbaskb, 0, 0, hccbaskb, hccbaskb, driver_device, 0, "Tiger Electronics", "Half Court Computer Basketball", MACHINE_SUPPORTS_SAVE ) +CONS( 1979, rockpin, 0, 0, rockpin, rockpin, rockpin_state, 0, "Tiger Electronics", "Rocket Pinball", MACHINE_SUPPORTS_SAVE ) +CONS( 1979, hccbaskb, 0, 0, hccbaskb, hccbaskb, hccbaskb_state, 0, "Tiger Electronics", "Half Court Computer Basketball", MACHINE_SUPPORTS_SAVE ) -CONS( 1979, ttfball, 0, 0, ttfball, ttfball, driver_device, 0, "Toytronic", "Football (Toytronic, set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) -CONS( 1979, ttfballa, ttfball, 0, ttfball, ttfballa, driver_device, 0, "Toytronic", "Football (Toytronic, set 2)", MACHINE_SUPPORTS_SAVE ) +CONS( 1979, ttfball, 0, 0, ttfball, ttfball, ttfball_state, 0, "Toytronic", "Football (Toytronic, set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) +CONS( 1979, ttfballa, ttfball, 0, ttfball, ttfballa, ttfball_state, 0, "Toytronic", "Football (Toytronic, set 2)", MACHINE_SUPPORTS_SAVE ) -CONS( 1981, uspbball, 0, 0, uspbball, uspbball, driver_device, 0, "U.S. Games", "Programmable Baseball", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) -CONS( 1981, us2pfball, 0, 0, us2pfball, us2pfball, driver_device, 0, "U.S. Games", "Electronic 2-Player Football", MACHINE_SUPPORTS_SAVE ) +CONS( 1981, uspbball, 0, 0, uspbball, uspbball, uspbball_state, 0, "U.S. Games", "Programmable Baseball", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) +CONS( 1981, us2pfball, 0, 0, us2pfball, us2pfball, us2pfball_state, 0, "U.S. Games", "Electronic 2-Player Football", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/hh_sm500.cpp b/src/mame/drivers/hh_sm500.cpp index a61af09878d..3389ff41b47 100644 --- a/src/mame/drivers/hh_sm500.cpp +++ b/src/mame/drivers/hh_sm500.cpp @@ -98,7 +98,7 @@ public: static INPUT_PORTS_START( nupogodi ) INPUT_PORTS_END -static MACHINE_CONFIG_START( nupogodi, nupogodi_state ) +static MACHINE_CONFIG_START( nupogodi ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", KB1013VK12, XTAL_32_768kHz) @@ -126,5 +126,5 @@ ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY, FULLNAME, FLAGS */ -CONS( 1984, nupogodi, 0, 0, nupogodi, nupogodi, driver_device, 0, "Elektronika", "Nu, pogodi!", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME, FLAGS */ +CONS( 1984, nupogodi, 0, 0, nupogodi, nupogodi, nupogodi_state, 0, "Elektronika", "Nu, pogodi!", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/hh_sm510.cpp b/src/mame/drivers/hh_sm510.cpp index b989fe2dbf6..0c98fe57391 100644 --- a/src/mame/drivers/hh_sm510.cpp +++ b/src/mame/drivers/hh_sm510.cpp @@ -221,7 +221,7 @@ static INPUT_PORTS_START( ktopgun ) PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, acl_button, nullptr) PORT_NAME("All Clear") INPUT_PORTS_END -static MACHINE_CONFIG_START( ktopgun, ktopgun_state ) +static MACHINE_CONFIG_START( ktopgun ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", SM510, XTAL_32_768kHz) @@ -290,7 +290,7 @@ static INPUT_PORTS_START( kcontra ) PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, acl_button, nullptr) PORT_NAME("All Clear") INPUT_PORTS_END -static MACHINE_CONFIG_START( kcontra, kcontra_state ) +static MACHINE_CONFIG_START( kcontra ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", SM511, XTAL_32_768kHz) @@ -358,7 +358,7 @@ static INPUT_PORTS_START( ktmnt ) PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, acl_button, nullptr) PORT_NAME("All Clear") INPUT_PORTS_END -static MACHINE_CONFIG_START( ktmnt, ktmnt_state ) +static MACHINE_CONFIG_START( ktmnt ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", SM511, XTAL_32_768kHz) @@ -421,7 +421,7 @@ static INPUT_PORTS_START( kgradius ) PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, acl_button, nullptr) PORT_NAME("All Clear") INPUT_PORTS_END -static MACHINE_CONFIG_START( kgradius, kgradius_state ) +static MACHINE_CONFIG_START( kgradius ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", SM511, XTAL_32_768kHz) @@ -484,7 +484,7 @@ static INPUT_PORTS_START( kloneran ) PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, acl_button, nullptr) PORT_NAME("All Clear") INPUT_PORTS_END -static MACHINE_CONFIG_START( kloneran, kloneran_state ) +static MACHINE_CONFIG_START( kloneran ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", SM511, XTAL_32_768kHz) @@ -547,7 +547,7 @@ static INPUT_PORTS_START( dm53 ) 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( dm53, dm53_state ) +static MACHINE_CONFIG_START( dm53 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", SM510, XTAL_32_768kHz) @@ -614,7 +614,7 @@ static INPUT_PORTS_START( jr55 ) 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( jr55, jr55_state ) +static MACHINE_CONFIG_START( jr55 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", SM510, XTAL_32_768kHz) @@ -676,7 +676,7 @@ static INPUT_PORTS_START( ml102 ) 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( ml102, ml102_state ) +static MACHINE_CONFIG_START( ml102 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", SM510, XTAL_32_768kHz) @@ -757,7 +757,7 @@ static INPUT_PORTS_START( bx301 ) 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( bx301, bx301_state ) +static MACHINE_CONFIG_START( bx301 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", SM511, XTAL_32_768kHz) @@ -886,14 +886,14 @@ ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY, FULLNAME, FLAGS */ -CONS( 1989, ktopgun, 0, 0, ktopgun, ktopgun, driver_device, 0, "Konami", "Top Gun (handheld)", MACHINE_SUPPORTS_SAVE ) -CONS( 1989, kcontra, 0, 0, kcontra, kcontra, driver_device, 0, "Konami", "Contra (handheld)", MACHINE_SUPPORTS_SAVE ) -CONS( 1989, ktmnt, 0, 0, ktmnt, ktmnt, driver_device, 0, "Konami", "Teenage Mutant Ninja Turtles (handheld)", MACHINE_SUPPORTS_SAVE ) -CONS( 1989, kgradius, 0, 0, kgradius, kgradius, driver_device, 0, "Konami", "Gradius (handheld)", MACHINE_SUPPORTS_SAVE ) -CONS( 1989, kloneran, 0, 0, kloneran, kloneran, driver_device, 0, "Konami", "Lone Ranger (handheld)", MACHINE_SUPPORTS_SAVE ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME, FLAGS +CONS( 1989, ktopgun, 0, 0, ktopgun, ktopgun, ktopgun_state, 0, "Konami", "Top Gun (handheld)", MACHINE_SUPPORTS_SAVE ) +CONS( 1989, kcontra, 0, 0, kcontra, kcontra, kcontra_state, 0, "Konami", "Contra (handheld)", MACHINE_SUPPORTS_SAVE ) +CONS( 1989, ktmnt, 0, 0, ktmnt, ktmnt, ktmnt_state, 0, "Konami", "Teenage Mutant Ninja Turtles (handheld)", MACHINE_SUPPORTS_SAVE ) +CONS( 1989, kgradius, 0, 0, kgradius, kgradius, kgradius_state, 0, "Konami", "Gradius (handheld)", MACHINE_SUPPORTS_SAVE ) +CONS( 1989, kloneran, 0, 0, kloneran, kloneran, kloneran_state, 0, "Konami", "Lone Ranger (handheld)", MACHINE_SUPPORTS_SAVE ) -CONS( 1982, gnw_dm53, 0, 0, dm53, dm53, driver_device, 0, "Nintendo", "Game & Watch: Mickey & Donald", MACHINE_SUPPORTS_SAVE ) -CONS( 1983, gnw_jr55, 0, 0, jr55, jr55, driver_device, 0, "Nintendo", "Game & Watch: Donkey Kong II", MACHINE_SUPPORTS_SAVE ) -CONS( 1983, gnw_ml102, 0, 0, ml102, ml102, driver_device, 0, "Nintendo", "Game & Watch: Mario's Cement Factory", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) // GNW: missing svg screen -CONS( 1984, gnw_bx301, 0, 0, bx301, bx301, driver_device, 0, "Nintendo", "Game & Watch: Boxing", MACHINE_SUPPORTS_SAVE ) +CONS( 1982, gnw_dm53, 0, 0, dm53, dm53, dm53_state, 0, "Nintendo", "Game & Watch: Mickey & Donald", MACHINE_SUPPORTS_SAVE ) +CONS( 1983, gnw_jr55, 0, 0, jr55, jr55, jr55_state, 0, "Nintendo", "Game & Watch: Donkey Kong II", MACHINE_SUPPORTS_SAVE ) +CONS( 1983, gnw_ml102, 0, 0, ml102, ml102, ml102_state, 0, "Nintendo", "Game & Watch: Mario's Cement Factory", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) // GNW: missing svg screen +CONS( 1984, gnw_bx301, 0, 0, bx301, bx301, bx301_state, 0, "Nintendo", "Game & Watch: Boxing", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/hh_tms1k.cpp b/src/mame/drivers/hh_tms1k.cpp index 873b2e3b95f..fcb93b211e3 100644 --- a/src/mame/drivers/hh_tms1k.cpp +++ b/src/mame/drivers/hh_tms1k.cpp @@ -528,7 +528,7 @@ INPUT_PORTS_END static const s16 matchnum_speaker_levels[4] = { 0, 0x7fff, -0x8000, 0 }; -static MACHINE_CONFIG_START( matchnum, matchnum_state ) +static MACHINE_CONFIG_START( matchnum ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS1000, 325000) // approximation - RC osc. R=47K, C=47pF @@ -708,7 +708,7 @@ static const u16 mathmagi_output_pla[0x20] = lA+lF+lE+lD+lC // G }; -static MACHINE_CONFIG_START( mathmagi, mathmagi_state ) +static MACHINE_CONFIG_START( mathmagi ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS1100, 175000) // approximation - RC osc. R=68K, C=82pF @@ -814,7 +814,7 @@ static INPUT_PORTS_START( bcheetah ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD) PORT_NAME("4") INPUT_PORTS_END -static MACHINE_CONFIG_START( bcheetah, bcheetah_state ) +static MACHINE_CONFIG_START( bcheetah ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS1000, 100000) // approximation - RC osc. R=47K, C=47pF @@ -941,7 +941,7 @@ static INPUT_PORTS_START( amaztron ) PORT_BIT( 0x1c, IP_ACTIVE_HIGH, IPT_UNUSED ) INPUT_PORTS_END -static MACHINE_CONFIG_START( amaztron, amaztron_state ) +static MACHINE_CONFIG_START( amaztron ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS1100, 300000) // approximation - RC osc. R=33K?, C=100pF @@ -1118,7 +1118,7 @@ static const u16 zodiac_output_pla[0x20] = lB+lC+lD+lE+lF // U }; -static MACHINE_CONFIG_START( zodiac, zodiac_state ) +static MACHINE_CONFIG_START( zodiac ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS1100, 500000) // approximation - RC osc. R=18K, C=100pF @@ -1234,7 +1234,7 @@ static INPUT_PORTS_START( cqback ) PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_16WAY INPUT_PORTS_END -static MACHINE_CONFIG_START( cqback, cqback_state ) +static MACHINE_CONFIG_START( cqback ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS1100, 310000) // approximation - RC osc. R=33K, C=100pF @@ -1352,7 +1352,7 @@ static INPUT_PORTS_START( h2hfootb ) PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_16WAY INPUT_PORTS_END -static MACHINE_CONFIG_START( h2hfootb, h2hfootb_state ) +static MACHINE_CONFIG_START( h2hfootb ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS1100, 310000) // approximation - RC osc. R=39K, C=100pF @@ -1491,7 +1491,7 @@ void h2hbaseb_state::machine_reset() set_clock(); } -static MACHINE_CONFIG_START( h2hbaseb, h2hbaseb_state ) +static MACHINE_CONFIG_START( h2hbaseb ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS1170, 350000) // see set_clock @@ -1603,7 +1603,7 @@ static INPUT_PORTS_START( h2hboxing ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL PORT_NAME("P2 Block") INPUT_PORTS_END -static MACHINE_CONFIG_START( h2hboxing, h2hboxing_state ) +static MACHINE_CONFIG_START( h2hboxing ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS1100, 350000) // approximation - RC osc. R=39K, C=100pF @@ -1774,7 +1774,7 @@ void quizwizc_state::machine_start() save_item(NAME(m_pinout)); } -static MACHINE_CONFIG_START( quizwizc, quizwizc_state ) +static MACHINE_CONFIG_START( quizwizc ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS1000, 300000) // approximation - RC osc. R=43K, C=100pF @@ -1950,7 +1950,7 @@ void tc4_state::machine_start() save_item(NAME(m_pinout)); } -static MACHINE_CONFIG_START( tc4, tc4_state ) +static MACHINE_CONFIG_START( tc4 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS1400, 450000) // approximation - RC osc. R=27.3K, C=100pF @@ -2065,7 +2065,7 @@ static INPUT_PORTS_START( cnbaskb ) PORT_BIT( 0x0e, IP_ACTIVE_HIGH, IPT_UNUSED ) INPUT_PORTS_END -static MACHINE_CONFIG_START( cnbaskb, cnbaskb_state ) +static MACHINE_CONFIG_START( cnbaskb ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS1000, 400000) // approximation - RC osc. R=39K, C=47pF @@ -2178,7 +2178,7 @@ static INPUT_PORTS_START( cmsport ) PORT_CONFSETTING( 0x08, "2" ) // professional INPUT_PORTS_END -static MACHINE_CONFIG_START( cmsport, cmsport_state ) +static MACHINE_CONFIG_START( cmsport ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS1000, 375000) // approximation - RC osc. R=47K, C=47pF @@ -2304,7 +2304,7 @@ INPUT_PORTS_END static const s16 cnfball_speaker_levels[4] = { 0, 0x7fff, -0x8000, 0 }; -static MACHINE_CONFIG_START( cnfball, cnfball_state ) +static MACHINE_CONFIG_START( cnfball ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS1000, 400000) // approximation - RC osc. R=39K, C=47pF @@ -2430,7 +2430,7 @@ static const u16 cnfball2_output_pla[0x20] = 0, 0, 0, 0, 0, 0, 0, 0 }; -static MACHINE_CONFIG_START( cnfball2, cnfball2_state ) +static MACHINE_CONFIG_START( cnfball2 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS1100, 375000) // approximation - RC osc. R=47K, C=47pF @@ -2572,7 +2572,7 @@ INPUT_CHANGED_MEMBER(eleciq_state::reset_button) m_maincpu->set_input_line(INPUT_LINE_RESET, newval ? ASSERT_LINE : CLEAR_LINE); } -static MACHINE_CONFIG_START( eleciq, eleciq_state ) +static MACHINE_CONFIG_START( eleciq ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS1000, 325000) // approximation - RC osc. R=47K, C=50pF @@ -2677,7 +2677,7 @@ static INPUT_PORTS_START( esoccer ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL INPUT_PORTS_END -static MACHINE_CONFIG_START( esoccer, esoccer_state ) +static MACHINE_CONFIG_START( esoccer ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS1000, 350000) // approximation - RC osc. R=47K, C=33pF @@ -2811,7 +2811,7 @@ static INPUT_PORTS_START( ebball ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("P1 Batter") INPUT_PORTS_END -static MACHINE_CONFIG_START( ebball, ebball_state ) +static MACHINE_CONFIG_START( ebball ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS1000, 375000) // approximation - RC osc. R=43K, C=47pF @@ -2934,7 +2934,7 @@ static INPUT_PORTS_START( ebball2 ) PORT_BIT( 0x0a, IP_ACTIVE_HIGH, IPT_UNUSED ) INPUT_PORTS_END -static MACHINE_CONFIG_START( ebball2, ebball2_state ) +static MACHINE_CONFIG_START( ebball2 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS1000, 350000) // approximation - RC osc. R=47K, C=47pF @@ -3114,7 +3114,7 @@ void ebball3_state::machine_reset() set_clock(); } -static MACHINE_CONFIG_START( ebball3, ebball3_state ) +static MACHINE_CONFIG_START( ebball3 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS1100, 340000) // see set_clock @@ -3225,7 +3225,7 @@ static INPUT_PORTS_START( esbattle ) PORT_CONFSETTING( 0x00, "2" ) // Manual INPUT_PORTS_END -static MACHINE_CONFIG_START( esbattle, esbattle_state ) +static MACHINE_CONFIG_START( esbattle ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS1000, 425000) // approximation - RC osc. R=47K, C=33pF @@ -3334,7 +3334,7 @@ void einvader_state::machine_reset() set_clock(); } -static MACHINE_CONFIG_START( einvader, einvader_state ) +static MACHINE_CONFIG_START( einvader ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS1100, 320000) // see set_clock @@ -3454,7 +3454,7 @@ static INPUT_PORTS_START( efootb4 ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED ) INPUT_PORTS_END -static MACHINE_CONFIG_START( efootb4, efootb4_state ) +static MACHINE_CONFIG_START( efootb4 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS1670, 475000) // approximation - RC osc. R=42K, C=47pF @@ -3575,7 +3575,7 @@ static INPUT_PORTS_START( ebaskb2 ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_16WAY INPUT_PORTS_END -static MACHINE_CONFIG_START( ebaskb2, ebaskb2_state ) +static MACHINE_CONFIG_START( ebaskb2 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS1100, 360000) // approximation - RC osc. R=33K, C=82pF @@ -3714,7 +3714,7 @@ void raisedvl_state::machine_reset() set_clock(); } -static MACHINE_CONFIG_START( raisedvl, raisedvl_state ) +static MACHINE_CONFIG_START( raisedvl ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS1100, 350000) // see set_clock @@ -3845,7 +3845,7 @@ INPUT_CHANGED_MEMBER(f2pbball_state::reset_button) m_maincpu->set_input_line(INPUT_LINE_RESET, newval ? ASSERT_LINE : CLEAR_LINE); } -static MACHINE_CONFIG_START( f2pbball, f2pbball_state ) +static MACHINE_CONFIG_START( f2pbball ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS1000, 325000) // approximation - RC osc. R=51K, C=39pF @@ -3989,7 +3989,7 @@ void gpoker_state::machine_reset() m_beeper->set_state(0); } -static MACHINE_CONFIG_START( gpoker, gpoker_state ) +static MACHINE_CONFIG_START( gpoker ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS1370, 350000) // approximation - RC osc. R=47K, C=47pF @@ -4102,7 +4102,7 @@ static INPUT_PORTS_START( gjackpot ) PORT_BIT( 0x09, IP_ACTIVE_HIGH, IPT_UNUSED ) INPUT_PORTS_END -static MACHINE_CONFIG_START( gjackpot, gjackpot_state ) +static MACHINE_CONFIG_START( gjackpot ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS1670, 450000) // approximation - RC osc. R=47K, C=47pF @@ -4207,7 +4207,7 @@ static INPUT_PORTS_START( ginv1000 ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 ) INPUT_PORTS_END -static MACHINE_CONFIG_START( ginv1000, ginv1000_state ) +static MACHINE_CONFIG_START( ginv1000 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS1370, 340000) // approximation @@ -4350,7 +4350,7 @@ static INPUT_PORTS_START( fxmcr165 ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_MINUS) PORT_CODE(KEYCODE_MINUS_PAD) PORT_NAME("Address Set") INPUT_PORTS_END -static MACHINE_CONFIG_START( fxmcr165, fxmcr165_state ) +static MACHINE_CONFIG_START( fxmcr165 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS1100, XTAL_400kHz) @@ -4478,7 +4478,7 @@ INPUT_PORTS_END static const s16 elecdet_speaker_levels[4] = { 0, 0x3fff, 0x3fff, 0x7fff }; -static MACHINE_CONFIG_START( elecdet, elecdet_state ) +static MACHINE_CONFIG_START( elecdet ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS0980, 425000) // approximation @@ -4606,7 +4606,7 @@ static INPUT_PORTS_START( starwbc ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_RIGHT) PORT_NAME("Right") INPUT_PORTS_END -static MACHINE_CONFIG_START( starwbc, starwbc_state ) +static MACHINE_CONFIG_START( starwbc ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS1100, 325000) // approximation - RC osc. R=51K, C=47pF @@ -4733,7 +4733,7 @@ static INPUT_PORTS_START( astro ) PORT_CONFSETTING( 0x08, "Astro" ) INPUT_PORTS_END -static MACHINE_CONFIG_START( astro, astro_state ) +static MACHINE_CONFIG_START( astro ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS1470, 450000) // approximation - RC osc. R=4.7K, C=33pF @@ -4898,7 +4898,7 @@ static const u16 elecbowl_output_pla[0x20] = 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f }; -static MACHINE_CONFIG_START( elecbowl, elecbowl_state ) +static MACHINE_CONFIG_START( elecbowl ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS1100, 350000) // approximation - RC osc. R=33K, C=100pF @@ -5052,7 +5052,7 @@ static INPUT_PORTS_START( horseran ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_7_PAD) PORT_NAME("7") INPUT_PORTS_END -static MACHINE_CONFIG_START( horseran, horseran_state ) +static MACHINE_CONFIG_START( horseran ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS1100, 300000) // approximation - RC osc. R=56K, C=47pF @@ -5230,7 +5230,7 @@ static INPUT_PORTS_START( mdndclab ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD) PORT_NAME("Dragon Attacks / Dragon Wakes") INPUT_PORTS_END -static MACHINE_CONFIG_START( mdndclab, mdndclab_state ) +static MACHINE_CONFIG_START( mdndclab ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS1100, 475000) // approximation - RC osc. R=27K, C=100pF @@ -5334,7 +5334,7 @@ static INPUT_PORTS_START( comp4 ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_9) PORT_CODE(KEYCODE_9_PAD) PORT_NAME("9") INPUT_PORTS_END -static MACHINE_CONFIG_START( comp4, comp4_state ) +static MACHINE_CONFIG_START( comp4 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS0970, 250000) // approximation @@ -5484,7 +5484,7 @@ static INPUT_PORTS_START( bship ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("P2 Clear Last Entry") INPUT_PORTS_END -static MACHINE_CONFIG_START( bship, bship_state ) +static MACHINE_CONFIG_START( bship ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS1000, 200000) // approximation - RC osc. R=100K, C=47pF @@ -5587,7 +5587,7 @@ READ8_MEMBER(bshipb_state::read_k) // buttons are same as bship set -static MACHINE_CONFIG_START( bshipb, bshipb_state ) +static MACHINE_CONFIG_START( bshipb ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS1000, 200000) // approximation - RC osc. R=100K, C=47pF @@ -5705,7 +5705,7 @@ static INPUT_PORTS_START( simon ) PORT_CONFSETTING( 0x01, "4" ) INPUT_PORTS_END -static MACHINE_CONFIG_START( simon, simon_state ) +static MACHINE_CONFIG_START( simon ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS1000, 350000) // approximation - RC osc. R=33K, C=100pF @@ -5846,7 +5846,7 @@ void ssimon_state::machine_reset() set_clock(); } -static MACHINE_CONFIG_START( ssimon, ssimon_state ) +static MACHINE_CONFIG_START( ssimon ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS1100, 275000) // see set_clock @@ -6026,7 +6026,7 @@ void bigtrak_state::machine_start() static const s16 bigtrak_speaker_levels[8] = { 0, 0x7fff/3, 0x7fff/3, 0x7fff/3*2, 0x7fff/3, 0x7fff/3*2, 0x7fff/3*2, 0x7fff }; -static MACHINE_CONFIG_START( bigtrak, bigtrak_state ) +static MACHINE_CONFIG_START( bigtrak ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS1000, 200000) // approximation - RC osc. R=83K, C=100pF @@ -6259,7 +6259,7 @@ void mbdtower_state::machine_start() save_item(NAME(m_sensor_blind)); } -static MACHINE_CONFIG_START( mbdtower, mbdtower_state ) +static MACHINE_CONFIG_START( mbdtower ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS1400, 425000) // approximation - RC osc. R=43K, C=56pF @@ -6378,7 +6378,7 @@ static INPUT_PORTS_START( cnsector ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_B) PORT_NAME("Teach Mode") INPUT_PORTS_END -static MACHINE_CONFIG_START( cnsector, cnsector_state ) +static MACHINE_CONFIG_START( cnsector ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS0970, 250000) // approximation @@ -6492,7 +6492,7 @@ INPUT_PORTS_END static const s16 merlin_speaker_levels[8] = { 0, 0x7fff/3, 0x7fff/3, 0x7fff/3*2, 0x7fff/3, 0x7fff/3*2, 0x7fff/3*2, 0x7fff }; -static MACHINE_CONFIG_START( merlin, merlin_state ) +static MACHINE_CONFIG_START( merlin ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS1100, 350000) // approximation - RC osc. R=33K, C=100pF @@ -6556,7 +6556,7 @@ static INPUT_PORTS_START( mmerlin ) PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_S) PORT_NAME("Score") // instead of Hit Me INPUT_PORTS_END -static MACHINE_CONFIG_START( mmerlin, mmerlin_state ) +static MACHINE_CONFIG_START( mmerlin ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS1400, 425000) // approximation - RC osc. R=30K, C=100pF @@ -6671,7 +6671,7 @@ INPUT_PORTS_END static const s16 stopthief_speaker_levels[7] = { 0, 0x7fff/6, 0x7fff/5, 0x7fff/4, 0x7fff/3, 0x7fff/2, 0x7fff }; -static MACHINE_CONFIG_START( stopthief, stopthief_state ) +static MACHINE_CONFIG_START( stopthief ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS0980, 425000) // approximation @@ -6780,7 +6780,7 @@ static INPUT_PORTS_START( bankshot ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED ) INPUT_PORTS_END -static MACHINE_CONFIG_START( bankshot, bankshot_state ) +static MACHINE_CONFIG_START( bankshot ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS1400, 475000) // approximation - RC osc. R=24K, C=100pF @@ -6891,7 +6891,7 @@ static INPUT_PORTS_START( splitsec ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED ) INPUT_PORTS_END -static MACHINE_CONFIG_START( splitsec, splitsec_state ) +static MACHINE_CONFIG_START( splitsec ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS1400, 475000) // approximation - RC osc. R=24K, C=100pF @@ -7009,7 +7009,7 @@ static const s16 lostreas_speaker_levels[16] = 0x7fff/8, 0x7fff/7, 0x7fff/6, 0x7fff/5, 0x7fff/4, 0x7fff/3, 0x7fff/2, 0x7fff/1 }; -static MACHINE_CONFIG_START( lostreas, lostreas_state ) +static MACHINE_CONFIG_START( lostreas ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS1100, 425000) // approximation - RC osc. R=39K, C=47pF @@ -7119,7 +7119,7 @@ static INPUT_PORTS_START( tcfball ) PORT_CONFSETTING( 0x08, "2" ) // professional INPUT_PORTS_END -static MACHINE_CONFIG_START( tcfball, tcfball_state ) +static MACHINE_CONFIG_START( tcfball ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS1100, 375000) // approximation - RC osc. R=56K, C=24pF @@ -7183,7 +7183,7 @@ static const u16 tcfballa_output_pla[0x20] = 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; -static MACHINE_CONFIG_START( tcfballa, tcfballa_state ) +static MACHINE_CONFIG_START( tcfballa ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS1100, 375000) // approximation - RC osc. R=47K, C=50pF @@ -7347,7 +7347,7 @@ static const u16 tandy12_output_pla[0x20] = 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; -static MACHINE_CONFIG_START( tandy12, tandy12_state ) +static MACHINE_CONFIG_START( tandy12 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS1100, 400000) // approximation - RC osc. R=39K, C=47pF @@ -7456,7 +7456,7 @@ static INPUT_PORTS_START( monkeysee ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_STOP) PORT_CODE(KEYCODE_DEL_PAD) PORT_NAME(".") INPUT_PORTS_END -static MACHINE_CONFIG_START( monkeysee, monkeysee_state ) +static MACHINE_CONFIG_START( monkeysee ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS1000, 250000) // approximation - RC osc. R=68K, C=47pF @@ -7605,7 +7605,7 @@ static INPUT_PORTS_START( speechp ) PORT_CONFSETTING( 0x00, DEF_STR( Normal ) ) INPUT_PORTS_END -static MACHINE_CONFIG_START( speechp, speechp_state ) +static MACHINE_CONFIG_START( speechp ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS1000, 400000) // approximation - RC osc. R=39K, C=47pF @@ -7710,7 +7710,7 @@ INPUT_PORTS_END static const s16 copycat_speaker_levels[4] = { 0, 0x7fff, -0x8000, 0 }; -static MACHINE_CONFIG_START( copycat, copycat_state ) +static MACHINE_CONFIG_START( copycat ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS1000, 320000) // approximation - RC osc. R=47K, C=47pF @@ -7786,7 +7786,7 @@ static INPUT_PORTS_START( copycatm2 ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_NAME("Green Button") INPUT_PORTS_END -static MACHINE_CONFIG_START( copycatm2, copycatm2_state ) +static MACHINE_CONFIG_START( copycatm2 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS1730, 275000) // approximation - RC osc. R=100K, C=47pF @@ -7857,7 +7857,7 @@ static INPUT_PORTS_START( ditto ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_NAME("Red Button") INPUT_PORTS_END -static MACHINE_CONFIG_START( ditto, ditto_state ) +static MACHINE_CONFIG_START( ditto ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS1730, 275000) // approximation - RC osc. R=100K, C=47pF @@ -7972,7 +7972,7 @@ static INPUT_PORTS_START( ss7in1 ) PORT_BIT( 0x0c, IP_ACTIVE_LOW, IPT_UNUSED ) INPUT_PORTS_END -static MACHINE_CONFIG_START( ss7in1, ss7in1_state ) +static MACHINE_CONFIG_START( ss7in1 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS1400, 450000) // approximation - RC osc. R=47K, C=47pF @@ -8165,7 +8165,7 @@ void tbreakup_state::machine_start() save_item(NAME(m_exp_port)); } -static MACHINE_CONFIG_START( tbreakup, tbreakup_state ) +static MACHINE_CONFIG_START( tbreakup ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS1040, 325000) // see set_clock @@ -8174,13 +8174,13 @@ static MACHINE_CONFIG_START( tbreakup, tbreakup_state ) MCFG_TMS1XXX_WRITE_O_CB(WRITE16(tbreakup_state, write_o)) MCFG_DEVICE_ADD("expander", TMS1025, 0) - MCFG_TMS1025_WRITE_PORT_CB(TMS1025_PORT1, WRITE8(tbreakup_state, expander_w)) - MCFG_TMS1025_WRITE_PORT_CB(TMS1025_PORT2, WRITE8(tbreakup_state, expander_w)) - MCFG_TMS1025_WRITE_PORT_CB(TMS1025_PORT3, WRITE8(tbreakup_state, expander_w)) - MCFG_TMS1025_WRITE_PORT_CB(TMS1025_PORT4, WRITE8(tbreakup_state, expander_w)) - MCFG_TMS1025_WRITE_PORT_CB(TMS1025_PORT5, WRITE8(tbreakup_state, expander_w)) - MCFG_TMS1025_WRITE_PORT_CB(TMS1025_PORT6, WRITE8(tbreakup_state, expander_w)) - MCFG_TMS1025_WRITE_PORT_CB(TMS1025_PORT7, WRITE8(tbreakup_state, expander_w)) + MCFG_TMS1025_WRITE_PORT_CB(PORT1, WRITE8(tbreakup_state, expander_w)) + MCFG_TMS1025_WRITE_PORT_CB(PORT2, WRITE8(tbreakup_state, expander_w)) + MCFG_TMS1025_WRITE_PORT_CB(PORT3, WRITE8(tbreakup_state, expander_w)) + MCFG_TMS1025_WRITE_PORT_CB(PORT4, WRITE8(tbreakup_state, expander_w)) + MCFG_TMS1025_WRITE_PORT_CB(PORT5, WRITE8(tbreakup_state, expander_w)) + MCFG_TMS1025_WRITE_PORT_CB(PORT6, WRITE8(tbreakup_state, expander_w)) + MCFG_TMS1025_WRITE_PORT_CB(PORT7, WRITE8(tbreakup_state, expander_w)) MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_tms1k_state, display_decay_tick, attotime::from_msec(1)) MCFG_DEFAULT_LAYOUT(layout_tbreakup) @@ -8296,7 +8296,7 @@ INPUT_CHANGED_MEMBER(phpball_state::flipper_button) output().set_lamp_value(90 + (int)(uintptr_t)param, newval); } -static MACHINE_CONFIG_START( phpball, phpball_state ) +static MACHINE_CONFIG_START( phpball ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS1100, 375000) // approximation - RC osc. R=47K, C=47pF @@ -8431,7 +8431,7 @@ static const u16 ssports4_output_pla[0x20] = 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0x00, 0x40, 0x40, 0x40, 0x40, 0x40 }; -static MACHINE_CONFIG_START( ssports4, ssports4_state ) +static MACHINE_CONFIG_START( ssports4 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS1100, 375000) // approximation - RC osc. R=47K, C=47pF @@ -9198,91 +9198,91 @@ ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY, FULLNAME, FLAGS */ -CONS( 1979, matchnum, 0, 0, matchnum, matchnum, driver_device, 0, "A-One LSI", "Match Number", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +// YEAR NAME PARENT COMPAT 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 ) -COMP( 1980, mathmagi, 0, 0, mathmagi, mathmagi, driver_device, 0, "APF Electronics Inc.", "Mathemagician", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) +COMP( 1980, mathmagi, 0, 0, mathmagi, mathmagi, mathmagi_state, 0, "APF Electronics Inc.", "Mathemagician", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) -CONS( 1979, bcheetah, 0, 0, bcheetah, bcheetah, driver_device, 0, "Bandai", "System Control Car: Cheetah", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW | MACHINE_MECHANICAL ) // *** +CONS( 1979, bcheetah, 0, 0, bcheetah, bcheetah, bcheetah_state, 0, "Bandai", "System Control Car: Cheetah", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW | MACHINE_MECHANICAL ) // *** -CONS( 1978, amaztron, 0, 0, amaztron, amaztron, driver_device, 0, "Coleco", "Amaze-A-Tron", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) // *** -COMP( 1979, zodiac, 0, 0, zodiac, zodiac, driver_device, 0, "Coleco", "Zodiac - The Astrology Computer", MACHINE_SUPPORTS_SAVE ) -CONS( 1978, cqback, 0, 0, cqback, cqback, driver_device, 0, "Coleco", "Electronic Quarterback", MACHINE_SUPPORTS_SAVE ) -CONS( 1980, h2hfootb, 0, 0, h2hfootb, h2hfootb, driver_device, 0, "Coleco", "Head to Head Football", MACHINE_SUPPORTS_SAVE ) -CONS( 1980, h2hbaseb, 0, 0, h2hbaseb, h2hbaseb, driver_device, 0, "Coleco", "Head to Head Baseball", MACHINE_SUPPORTS_SAVE ) -CONS( 1981, h2hboxing, 0, 0, h2hboxing, h2hboxing, driver_device, 0, "Coleco", "Head to Head Boxing", MACHINE_SUPPORTS_SAVE ) -CONS( 1981, quizwizc, 0, 0, quizwizc, quizwizc, driver_device, 0, "Coleco", "Quiz Wiz Challenger", MACHINE_SUPPORTS_SAVE ) // *** -CONS( 1981, tc4, 0, 0, tc4, tc4, driver_device, 0, "Coleco", "Total Control 4", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK ) +CONS( 1978, amaztron, 0, 0, amaztron, amaztron, amaztron_state, 0, "Coleco", "Amaze-A-Tron", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) // *** +COMP( 1979, zodiac, 0, 0, zodiac, zodiac, zodiac_state, 0, "Coleco", "Zodiac - The Astrology Computer", MACHINE_SUPPORTS_SAVE ) +CONS( 1978, cqback, 0, 0, cqback, cqback, cqback_state, 0, "Coleco", "Electronic Quarterback", MACHINE_SUPPORTS_SAVE ) +CONS( 1980, h2hfootb, 0, 0, h2hfootb, h2hfootb, h2hfootb_state, 0, "Coleco", "Head to Head Football", MACHINE_SUPPORTS_SAVE ) +CONS( 1980, h2hbaseb, 0, 0, h2hbaseb, h2hbaseb, h2hbaseb_state, 0, "Coleco", "Head to Head Baseball", MACHINE_SUPPORTS_SAVE ) +CONS( 1981, h2hboxing, 0, 0, h2hboxing, h2hboxing, h2hboxing_state, 0, "Coleco", "Head to Head Boxing", MACHINE_SUPPORTS_SAVE ) +CONS( 1981, quizwizc, 0, 0, quizwizc, quizwizc, quizwizc_state, 0, "Coleco", "Quiz Wiz Challenger", MACHINE_SUPPORTS_SAVE ) // *** +CONS( 1981, tc4, 0, 0, tc4, tc4, tc4_state, 0, "Coleco", "Total Control 4", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK ) -CONS( 1979, cnbaskb, 0, 0, cnbaskb, cnbaskb, driver_device, 0, "Conic", "Electronic Basketball (Conic)", MACHINE_SUPPORTS_SAVE ) -CONS( 1979, cmsport, 0, 0, cmsport, cmsport, driver_device, 0, "Conic", "Electronic Multisport", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK ) -CONS( 1979, cnfball, 0, 0, cnfball, cnfball, driver_device, 0, "Conic", "Electronic Football (Conic, TMS1000 version)", MACHINE_SUPPORTS_SAVE ) -CONS( 1979, cnfball2, 0, 0, cnfball2, cnfball2, driver_device, 0, "Conic", "Electronic Football II (Conic)", MACHINE_SUPPORTS_SAVE ) -CONS( 1979, eleciq, 0, 0, eleciq, eleciq, driver_device, 0, "Conic", "Electronic I.Q.", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1979, cnbaskb, 0, 0, cnbaskb, cnbaskb, cnbaskb_state, 0, "Conic", "Electronic Basketball (Conic)", MACHINE_SUPPORTS_SAVE ) +CONS( 1979, cmsport, 0, 0, cmsport, cmsport, cmsport_state, 0, "Conic", "Electronic Multisport", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK ) +CONS( 1979, cnfball, 0, 0, cnfball, cnfball, cnfball_state, 0, "Conic", "Electronic Football (Conic, TMS1000 version)", MACHINE_SUPPORTS_SAVE ) +CONS( 1979, cnfball2, 0, 0, cnfball2, cnfball2, cnfball2_state, 0, "Conic", "Electronic Football II (Conic)", MACHINE_SUPPORTS_SAVE ) +CONS( 1979, eleciq, 0, 0, eleciq, eleciq, eleciq_state, 0, "Conic", "Electronic I.Q.", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1979, esoccer, 0, 0, esoccer, esoccer, driver_device, 0, "Entex", "Electronic Soccer (Entex)", MACHINE_SUPPORTS_SAVE ) -CONS( 1979, ebball, 0, 0, ebball, ebball, driver_device, 0, "Entex", "Electronic Baseball (Entex)", MACHINE_SUPPORTS_SAVE ) -CONS( 1979, ebball2, 0, 0, ebball2, ebball2, driver_device, 0, "Entex", "Electronic Baseball 2 (Entex)", MACHINE_SUPPORTS_SAVE ) -CONS( 1980, ebball3, 0, 0, ebball3, ebball3, driver_device, 0, "Entex", "Electronic Baseball 3 (Entex)", MACHINE_SUPPORTS_SAVE ) -CONS( 1979, esbattle, 0, 0, esbattle, esbattle, driver_device, 0, "Entex", "Space Battle (Entex)", MACHINE_SUPPORTS_SAVE ) -CONS( 1980, einvader, 0, 0, einvader, einvader, driver_device, 0, "Entex", "Space Invader (Entex, TMS1100 version)", MACHINE_SUPPORTS_SAVE ) -CONS( 1980, efootb4 , 0, 0, efootb4, efootb4, driver_device, 0, "Entex", "Color Football 4 (Entex)", MACHINE_SUPPORTS_SAVE ) -CONS( 1980, ebaskb2 , 0, 0, ebaskb2, ebaskb2, driver_device, 0, "Entex", "Electronic Basketball 2 (Entex)", MACHINE_SUPPORTS_SAVE ) -CONS( 1980, raisedvl, 0, 0, raisedvl, raisedvl, driver_device, 0, "Entex", "Raise The Devil", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK ) +CONS( 1979, esoccer, 0, 0, esoccer, esoccer, esoccer_state, 0, "Entex", "Electronic Soccer (Entex)", MACHINE_SUPPORTS_SAVE ) +CONS( 1979, ebball, 0, 0, ebball, ebball, ebball_state, 0, "Entex", "Electronic Baseball (Entex)", MACHINE_SUPPORTS_SAVE ) +CONS( 1979, ebball2, 0, 0, ebball2, ebball2, ebball2_state, 0, "Entex", "Electronic Baseball 2 (Entex)", MACHINE_SUPPORTS_SAVE ) +CONS( 1980, ebball3, 0, 0, ebball3, ebball3, ebball3_state, 0, "Entex", "Electronic Baseball 3 (Entex)", MACHINE_SUPPORTS_SAVE ) +CONS( 1979, esbattle, 0, 0, esbattle, esbattle, esbattle_state, 0, "Entex", "Space Battle (Entex)", MACHINE_SUPPORTS_SAVE ) +CONS( 1980, einvader, 0, 0, einvader, einvader, einvader_state, 0, "Entex", "Space Invader (Entex, TMS1100 version)", MACHINE_SUPPORTS_SAVE ) +CONS( 1980, efootb4 , 0, 0, efootb4, efootb4, efootb4_state, 0, "Entex", "Color Football 4 (Entex)", MACHINE_SUPPORTS_SAVE ) +CONS( 1980, ebaskb2 , 0, 0, ebaskb2, ebaskb2, ebaskb2_state, 0, "Entex", "Electronic Basketball 2 (Entex)", MACHINE_SUPPORTS_SAVE ) +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, driver_device, 0, "Fonas", "2 Player Baseball (Fonas)", MACHINE_SUPPORTS_SAVE ) +CONS( 1979, f2pbball, 0, 0, f2pbball, f2pbball, f2pbball_state, 0, "Fonas", "2 Player Baseball (Fonas)", MACHINE_SUPPORTS_SAVE ) -CONS( 1979, gpoker, 0, 0, gpoker, gpoker, driver_device, 0, "Gakken", "Poker (Gakken, 1979 version)", MACHINE_SUPPORTS_SAVE ) -CONS( 1980, gjackpot, 0, 0, gjackpot, gjackpot, driver_device, 0, "Gakken", "Jackpot: Gin Rummy & Black Jack", MACHINE_SUPPORTS_SAVE ) -CONS( 1982, ginv1000, 0, 0, ginv1000, ginv1000, driver_device, 0, "Gakken", "Galaxy Invader 1000", MACHINE_SUPPORTS_SAVE ) -COMP( 1983, fxmcr165, 0, 0, fxmcr165, fxmcr165, driver_device, 0, "Gakken", "FX-Micom R-165", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_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( 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, driver_device, 0, "Ideal", "Electronic Detective", MACHINE_SUPPORTS_SAVE ) // *** +CONS( 1979, elecdet, 0, 0, elecdet, elecdet, elecdet_state, 0, "Ideal", "Electronic Detective", MACHINE_SUPPORTS_SAVE ) // *** -CONS( 1979, starwbc, 0, 0, starwbc, starwbc, driver_device, 0, "Kenner", "Star Wars - Electronic Battle Command", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1979, starwbcp, starwbc, 0, starwbc, starwbc, driver_device, 0, "Kenner", "Star Wars - Electronic Battle Command (patent)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1979, starwbc, 0, 0, starwbc, starwbc, starwbc_state, 0, "Kenner", "Star Wars - Electronic Battle Command", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1979, starwbcp, starwbc, 0, starwbc, starwbc, starwbc_state, 0, "Kenner", "Star Wars - Electronic Battle Command (patent)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -COMP( 1979, astro, 0, 0, astro, astro, driver_device, 0, "Kosmos", "Astro", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) +COMP( 1979, astro, 0, 0, astro, astro, astro_state, 0, "Kosmos", "Astro", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) -CONS( 1978, elecbowl, 0, 0, elecbowl, elecbowl, driver_device, 0, "Marx", "Electronic Bowling (Marx)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND | MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) // *** +CONS( 1978, elecbowl, 0, 0, elecbowl, elecbowl, driver_device, 0, "Marx", "Electronic Bowling (Marx)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND | MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) // *** -COMP( 1979, horseran, 0, 0, horseran, horseran, driver_device, 0, "Mattel", "Thoroughbred Horse Race Analyzer", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) -CONS( 1980, mdndclab, 0, 0, mdndclab, mdndclab, driver_device, 0, "Mattel", "Dungeons & Dragons - Computer Labyrinth Game", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) // *** +COMP( 1979, horseran, 0, 0, horseran, horseran, horseran_state, 0, "Mattel", "Thoroughbred Horse Race Analyzer", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) +CONS( 1980, mdndclab, 0, 0, mdndclab, mdndclab, mdndclab_state, 0, "Mattel", "Dungeons & Dragons - Computer Labyrinth Game", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) // *** -CONS( 1977, comp4, 0, 0, comp4, comp4, driver_device, 0, "Milton Bradley", "Comp IV", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_NO_SOUND_HW ) -CONS( 1977, bship, 0, 0, bship, bship, driver_device, 0, "Milton Bradley", "Electronic Battleship (1977 version, model 4750A)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_NO_SOUND | MACHINE_NOT_WORKING ) // *** -CONS( 1977, bshipb, bship, 0, bshipb, bship, driver_device, 0, "Milton Bradley", "Electronic Battleship (1977 version, model 4750B)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) // *** -CONS( 1978, simon, 0, 0, simon, simon, driver_device, 0, "Milton Bradley", "Simon (Rev A)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1979, simonf, simon, 0, simon, simon, driver_device, 0, "Milton Bradley", "Simon (Rev F)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1979, ssimon, 0, 0, ssimon, ssimon, driver_device, 0, "Milton Bradley", "Super Simon", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1979, bigtrak, 0, 0, bigtrak, bigtrak, driver_device, 0, "Milton Bradley", "Big Trak", MACHINE_SUPPORTS_SAVE | MACHINE_MECHANICAL ) // *** -CONS( 1981, mbdtower, 0, 0, mbdtower, mbdtower, driver_device, 0, "Milton Bradley", "Dark Tower (Milton Bradley)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_MECHANICAL ) // *** +CONS( 1977, comp4, 0, 0, comp4, comp4, comp4_state, 0, "Milton Bradley", "Comp IV", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_NO_SOUND_HW ) +CONS( 1977, bship, 0, 0, bship, bship, bship_state, 0, "Milton Bradley", "Electronic Battleship (1977 version, model 4750A)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_NO_SOUND | MACHINE_NOT_WORKING ) // *** +CONS( 1977, bshipb, bship, 0, bshipb, bship, bshipb_state, 0, "Milton Bradley", "Electronic Battleship (1977 version, model 4750B)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) // *** +CONS( 1978, simon, 0, 0, simon, simon, simon_state, 0, "Milton Bradley", "Simon (Rev A)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1979, simonf, simon, 0, simon, simon, simon_state, 0, "Milton Bradley", "Simon (Rev F)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1979, ssimon, 0, 0, ssimon, ssimon, ssimon_state, 0, "Milton Bradley", "Super Simon", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1979, bigtrak, 0, 0, bigtrak, bigtrak, bigtrak_state, 0, "Milton Bradley", "Big Trak", MACHINE_SUPPORTS_SAVE | MACHINE_MECHANICAL ) // *** +CONS( 1981, mbdtower, 0, 0, mbdtower, mbdtower, mbdtower_state, 0, "Milton Bradley", "Dark Tower (Milton Bradley)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_MECHANICAL ) // *** -CONS( 1977, cnsector, 0, 0, cnsector, cnsector, driver_device, 0, "Parker Brothers", "Code Name: Sector", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_NO_SOUND_HW ) // *** -CONS( 1978, merlin, 0, 0, merlin, merlin, driver_device, 0, "Parker Brothers", "Merlin - The Electronic Wizard", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1979, stopthief, 0, 0, stopthief, stopthief, driver_device, 0, "Parker Brothers", "Stop Thief (Electronic Crime Scanner)", MACHINE_SUPPORTS_SAVE ) // *** -CONS( 1979, stopthiefp,stopthief,0, stopthief, stopthief, driver_device, 0, "Parker Brothers", "Stop Thief (Electronic Crime Scanner) (patent)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) // *** -CONS( 1980, bankshot, 0, 0, bankshot, bankshot, driver_device, 0, "Parker Brothers", "Bank Shot - Electronic Pool", MACHINE_SUPPORTS_SAVE ) -CONS( 1980, splitsec, 0, 0, splitsec, splitsec, driver_device, 0, "Parker Brothers", "Split Second", MACHINE_SUPPORTS_SAVE ) -CONS( 1982, mmerlin, 0, 0, mmerlin, mmerlin, driver_device, 0, "Parker Brothers", "Master Merlin", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1982, lostreas, 0, 0, lostreas, lostreas, driver_device, 0, "Parker Brothers", "Lost Treasure - The Electronic Deep-Sea Diving Game (Electronic Dive-Control Center)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) // *** +CONS( 1977, cnsector, 0, 0, cnsector, cnsector, cnsector_state, 0, "Parker Brothers", "Code Name: Sector", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_NO_SOUND_HW ) // *** +CONS( 1978, merlin, 0, 0, merlin, merlin, merlin_state, 0, "Parker Brothers", "Merlin - The Electronic Wizard", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1979, stopthief, 0, 0, stopthief, stopthief, stopthief_state, 0, "Parker Brothers", "Stop Thief (Electronic Crime Scanner)", MACHINE_SUPPORTS_SAVE ) // *** +CONS( 1979, stopthiefp, stopthief, 0, stopthief, stopthief, stopthief_state, 0, "Parker Brothers", "Stop Thief (Electronic Crime Scanner) (patent)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) // *** +CONS( 1980, bankshot, 0, 0, bankshot, bankshot, bankshot_state, 0, "Parker Brothers", "Bank Shot - Electronic Pool", MACHINE_SUPPORTS_SAVE ) +CONS( 1980, splitsec, 0, 0, splitsec, splitsec, splitsec_state, 0, "Parker Brothers", "Split Second", MACHINE_SUPPORTS_SAVE ) +CONS( 1982, mmerlin, 0, 0, mmerlin, mmerlin, mmerlin_state, 0, "Parker Brothers", "Master Merlin", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1982, lostreas, 0, 0, lostreas, lostreas, lostreas_state, 0, "Parker Brothers", "Lost Treasure - The Electronic Deep-Sea Diving Game (Electronic Dive-Control Center)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) // *** -CONS( 1980, tcfball, 0, 0, tcfball, tcfball, driver_device, 0, "Tandy Radio Shack", "Championship Football (model 60-2150)", MACHINE_SUPPORTS_SAVE ) -CONS( 1980, tcfballa, tcfball, 0, tcfballa, tcfballa, driver_device, 0, "Tandy Radio Shack", "Championship Football (model 60-2151)", MACHINE_SUPPORTS_SAVE ) -CONS( 1981, tandy12, 0, 0, tandy12, tandy12, driver_device, 0, "Tandy Radio Shack", "Tandy-12: Computerized Arcade", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) // some of the minigames: *** -CONS( 1982, monkeysee, 0, 0, monkeysee, monkeysee, driver_device, 0, "Tandy Radio Shack", "Monkey See (1982 version)", MACHINE_SUPPORTS_SAVE ) +CONS( 1980, tcfball, 0, 0, tcfball, tcfball, tcfball_state, 0, "Tandy Radio Shack", "Championship Football (model 60-2150)", MACHINE_SUPPORTS_SAVE ) +CONS( 1980, tcfballa, tcfball, 0, tcfballa, tcfballa, tcfballa_state, 0, "Tandy Radio Shack", "Championship Football (model 60-2151)", MACHINE_SUPPORTS_SAVE ) +CONS( 1981, tandy12, 0, 0, tandy12, tandy12, tandy12_state, 0, "Tandy Radio Shack", "Tandy-12: Computerized Arcade", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) // some of the minigames: *** +CONS( 1982, monkeysee, 0, 0, monkeysee, monkeysee, monkeysee_state, 0, "Tandy Radio Shack", "Monkey See (1982 version)", MACHINE_SUPPORTS_SAVE ) -COMP( 1976, speechp, 0, 0, speechp, speechp, driver_device, 0, "Telesensory Systems, Inc.", "Speech+", MACHINE_SUPPORTS_SAVE ) +COMP( 1976, speechp, 0, 0, speechp, speechp, speechp_state, 0, "Telesensory Systems, Inc.", "Speech+", MACHINE_SUPPORTS_SAVE ) -CONS( 1979, copycat, 0, 0, copycat, copycat, driver_device, 0, "Tiger Electronics", "Copy Cat (model 7-520)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1989, copycatm2, copycat, 0, copycatm2, copycatm2, driver_device, 0, "Tiger Electronics", "Copy Cat (model 7-522)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1981, ditto, 0, 0, ditto, ditto, driver_device, 0, "Tiger Electronics", "Ditto", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1982, 7in1ss, 0, 0, ss7in1, ss7in1, driver_device, 0, "Tiger Electronics", "7 in 1 Sports Stadium", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK ) +CONS( 1979, copycat, 0, 0, copycat, copycat, copycat_state, 0, "Tiger Electronics", "Copy Cat (model 7-520)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1989, copycatm2, copycat, 0, copycatm2, copycatm2, copycatm2_state, 0, "Tiger Electronics", "Copy Cat (model 7-522)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1981, ditto, 0, 0, ditto, ditto, ditto_state, 0, "Tiger Electronics", "Ditto", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1982, 7in1ss, 0, 0, ss7in1, ss7in1, ss7in1_state, 0, "Tiger Electronics", "7 in 1 Sports Stadium", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK ) -CONS( 1979, tbreakup, 0, 0, tbreakup, tbreakup, driver_device, 0, "Tomy", "Break Up (Tomy)", MACHINE_SUPPORTS_SAVE ) -CONS( 1980, phpball, 0, 0, phpball, phpball, driver_device, 0, "Tomy", "Power House Pinball", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK ) +CONS( 1979, tbreakup, 0, 0, tbreakup, tbreakup, tbreakup_state, 0, "Tomy", "Break Up (Tomy)", MACHINE_SUPPORTS_SAVE ) +CONS( 1980, phpball, 0, 0, phpball, phpball, phpball_state, 0, "Tomy", "Power House Pinball", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK ) -CONS( 1980, ssports4, 0, 0, ssports4, ssports4, driver_device, 0, "U.S. Games", "Super Sports-4", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK ) +CONS( 1980, ssports4, 0, 0, ssports4, ssports4, ssports4_state, 0, "U.S. Games", "Super Sports-4", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_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 0595b4591ec..4d1069b552a 100644 --- a/src/mame/drivers/hh_ucom4.cpp +++ b/src/mame/drivers/hh_ucom4.cpp @@ -348,7 +348,7 @@ INPUT_PORTS_END static const s16 ufombs_speaker_levels[] = { 0, 0x7fff, -0x8000, 0 }; -static MACHINE_CONFIG_START( ufombs, ufombs_state ) +static MACHINE_CONFIG_START( ufombs ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", NEC_D552, 400000) // approximation @@ -494,7 +494,7 @@ INPUT_PORTS_END static const s16 ssfball_speaker_levels[] = { 0, 0x7fff, -0x8000, 0 }; -static MACHINE_CONFIG_START( ssfball, ssfball_state ) +static MACHINE_CONFIG_START( ssfball ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", NEC_D553, 400000) // approximation @@ -622,7 +622,7 @@ static INPUT_PORTS_START( bmsoccer ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Shoot") INPUT_PORTS_END -static MACHINE_CONFIG_START( bmsoccer, bmsoccer_state ) +static MACHINE_CONFIG_START( bmsoccer ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", NEC_D552, 400000) // approximation @@ -730,7 +730,7 @@ static INPUT_PORTS_START( bmsafari ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_16WAY INPUT_PORTS_END -static MACHINE_CONFIG_START( bmsafari, bmsafari_state ) +static MACHINE_CONFIG_START( bmsafari ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", NEC_D552, 400000) // approximation @@ -880,7 +880,7 @@ INPUT_PORTS_END static const s16 splasfgt_speaker_levels[] = { 0, 0x7fff, -0x8000, 0 }; -static MACHINE_CONFIG_START( splasfgt, splasfgt_state ) +static MACHINE_CONFIG_START( splasfgt ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", NEC_D553, 400000) // approximation @@ -984,7 +984,7 @@ static INPUT_PORTS_START( bcclimbr ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICKRIGHT_RIGHT ) INPUT_PORTS_END -static MACHINE_CONFIG_START( bcclimbr, bcclimbr_state ) +static MACHINE_CONFIG_START( bcclimbr ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", NEC_D553, XTAL_400kHz) @@ -1107,7 +1107,7 @@ static INPUT_PORTS_START( tactix ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED ) INPUT_PORTS_END -static MACHINE_CONFIG_START( tactix, tactix_state ) +static MACHINE_CONFIG_START( tactix ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", NEC_D557L, 400000) // approximation @@ -1201,7 +1201,7 @@ static INPUT_PORTS_START( invspace ) PORT_BIT( 0x0c, IP_ACTIVE_HIGH, IPT_UNUSED ) INPUT_PORTS_END -static MACHINE_CONFIG_START( invspace, invspace_state ) +static MACHINE_CONFIG_START( invspace ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", NEC_D552, XTAL_400kHz) @@ -1319,7 +1319,7 @@ static INPUT_PORTS_START( efball ) PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_16WAY INPUT_PORTS_END -static MACHINE_CONFIG_START( efball, efball_state ) +static MACHINE_CONFIG_START( efball ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", NEC_D553, XTAL_400kHz) @@ -1418,7 +1418,7 @@ static INPUT_PORTS_START( galaxy2 ) PORT_BIT( 0x0c, IP_ACTIVE_HIGH, IPT_UNUSED ) INPUT_PORTS_END -static MACHINE_CONFIG_START( galaxy2, galaxy2_state ) +static MACHINE_CONFIG_START( galaxy2 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", NEC_D553, XTAL_400kHz) @@ -1536,7 +1536,7 @@ static INPUT_PORTS_START( astrocmd ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) INPUT_PORTS_END -static MACHINE_CONFIG_START( astrocmd, astrocmd_state ) +static MACHINE_CONFIG_START( astrocmd ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", NEC_D553, XTAL_400kHz) @@ -1632,7 +1632,7 @@ static INPUT_PORTS_START( edracula ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) INPUT_PORTS_END -static MACHINE_CONFIG_START( edracula, edracula_state ) +static MACHINE_CONFIG_START( edracula ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", NEC_D553, XTAL_400kHz) @@ -1714,7 +1714,7 @@ static INPUT_PORTS_START( mcompgin ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON8 ) INPUT_PORTS_END -static MACHINE_CONFIG_START( mcompgin, mcompgin_state ) +static MACHINE_CONFIG_START( mcompgin ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", NEC_D650, 400000) // approximation @@ -1821,7 +1821,7 @@ static INPUT_PORTS_START( mvbfree ) PORT_CONFSETTING( 0x08, "3" ) INPUT_PORTS_END -static MACHINE_CONFIG_START( mvbfree, mvbfree_state ) +static MACHINE_CONFIG_START( mvbfree ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", NEC_D553, 400000) // approximation @@ -1940,7 +1940,7 @@ static INPUT_PORTS_START( grobot9 ) PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_V) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_ucom4_state, single_interrupt_line, nullptr) PORT_NAME("Start-Pitch") INPUT_PORTS_END -static MACHINE_CONFIG_START( grobot9, grobot9_state ) +static MACHINE_CONFIG_START( grobot9 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", NEC_D557L, 160000) // approximation @@ -2030,7 +2030,7 @@ static INPUT_PORTS_START( tccombat ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY INPUT_PORTS_END -static MACHINE_CONFIG_START( tccombat, tccombat_state ) +static MACHINE_CONFIG_START( tccombat ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", NEC_D552, 400000) // approximation @@ -2187,7 +2187,7 @@ void tmtennis_state::machine_reset() set_clock(); } -static MACHINE_CONFIG_START( tmtennis, tmtennis_state ) +static MACHINE_CONFIG_START( tmtennis ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", NEC_D552, 360000) // see set_clock @@ -2296,7 +2296,7 @@ static INPUT_PORTS_START( tmpacman ) PORT_BIT( 0x0e, IP_ACTIVE_HIGH, IPT_UNUSED ) INPUT_PORTS_END -static MACHINE_CONFIG_START( tmpacman, tmpacman_state ) +static MACHINE_CONFIG_START( tmpacman ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", NEC_D553, XTAL_430kHz) @@ -2399,7 +2399,7 @@ static INPUT_PORTS_START( tmscramb ) PORT_BIT( 0x0c, IP_ACTIVE_HIGH, IPT_UNUSED ) INPUT_PORTS_END -static MACHINE_CONFIG_START( tmscramb, tmscramb_state ) +static MACHINE_CONFIG_START( tmscramb ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", NEC_D553, XTAL_400kHz) @@ -2499,7 +2499,7 @@ static INPUT_PORTS_START( tcaveman ) PORT_CONFSETTING( 0x08, "Professional" ) INPUT_PORTS_END -static MACHINE_CONFIG_START( tcaveman, tcaveman_state ) +static MACHINE_CONFIG_START( tcaveman ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", NEC_D553, XTAL_400kHz) @@ -2631,7 +2631,7 @@ static INPUT_PORTS_START( alnchase ) PORT_BIT( 0x0c, IP_ACTIVE_HIGH, IPT_UNUSED ) INPUT_PORTS_END -static MACHINE_CONFIG_START( alnchase, alnchase_state ) +static MACHINE_CONFIG_START( alnchase ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", NEC_D553, XTAL_400kHz) @@ -2852,36 +2852,36 @@ ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY, FULLNAME, FLAGS */ -CONS( 1979, ufombs, 0, 0, ufombs, ufombs, driver_device, 0, "Bambino", "UFO Master-Blaster Station", MACHINE_SUPPORTS_SAVE ) -CONS( 1979, ssfball, 0, 0, ssfball, ssfball, driver_device, 0, "Bambino", "Superstar Football", MACHINE_SUPPORTS_SAVE ) -CONS( 1979, bmsoccer, 0, 0, bmsoccer, bmsoccer, driver_device, 0, "Bambino", "Kick The Goal Soccer", MACHINE_SUPPORTS_SAVE ) -CONS( 1981, bmsafari, 0, 0, bmsafari, bmsafari, driver_device, 0, "Bambino", "Safari (Bambino)", MACHINE_SUPPORTS_SAVE ) -CONS( 1980, splasfgt, 0, 0, splasfgt, splasfgt, driver_device, 0, "Bambino", "Space Laser Fight", MACHINE_SUPPORTS_SAVE ) +// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY, FULLNAME, FLAGS +CONS( 1979, ufombs, 0, 0, ufombs, ufombs, ufombs_state, 0, "Bambino", "UFO Master-Blaster Station", MACHINE_SUPPORTS_SAVE ) +CONS( 1979, ssfball, 0, 0, ssfball, ssfball, ssfball_state, 0, "Bambino", "Superstar Football", MACHINE_SUPPORTS_SAVE ) +CONS( 1979, bmsoccer, 0, 0, bmsoccer, bmsoccer, bmsoccer_state, 0, "Bambino", "Kick The Goal Soccer", MACHINE_SUPPORTS_SAVE ) +CONS( 1981, bmsafari, 0, 0, bmsafari, bmsafari, bmsafari_state, 0, "Bambino", "Safari (Bambino)", MACHINE_SUPPORTS_SAVE ) +CONS( 1980, splasfgt, 0, 0, splasfgt, splasfgt, splasfgt_state, 0, "Bambino", "Space Laser Fight", MACHINE_SUPPORTS_SAVE ) -CONS( 1982, bcclimbr, 0, 0, bcclimbr, bcclimbr, driver_device, 0, "Bandai", "Crazy Climber (Bandai)", MACHINE_SUPPORTS_SAVE ) +CONS( 1982, bcclimbr, 0, 0, bcclimbr, bcclimbr, bcclimbr_state, 0, "Bandai", "Crazy Climber (Bandai)", MACHINE_SUPPORTS_SAVE ) -CONS( 1980, tactix, 0, 0, tactix, tactix, driver_device, 0, "Castle Toy", "Tactix (Castle Toy)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1980, tactix, 0, 0, tactix, tactix, tactix_state, 0, "Castle Toy", "Tactix (Castle Toy)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1980, invspace, 0, 0, invspace, invspace, driver_device, 0, "Epoch", "Invader From Space", MACHINE_SUPPORTS_SAVE ) -CONS( 1980, efball, 0, 0, efball, efball, driver_device, 0, "Epoch", "Electronic Football (Epoch)", MACHINE_SUPPORTS_SAVE ) -CONS( 1981, galaxy2, 0, 0, galaxy2, galaxy2, driver_device, 0, "Epoch", "Galaxy II (VFD Rev. D)", MACHINE_SUPPORTS_SAVE ) -CONS( 1981, galaxy2b, galaxy2, 0, galaxy2b, galaxy2, driver_device, 0, "Epoch", "Galaxy II (VFD Rev. B)", MACHINE_SUPPORTS_SAVE ) -CONS( 1982, astrocmd, 0, 0, astrocmd, astrocmd, driver_device, 0, "Epoch", "Astro Command", MACHINE_SUPPORTS_SAVE ) -CONS( 1982, edracula, 0, 0, edracula, edracula, driver_device, 0, "Epoch", "Dracula (Epoch)", MACHINE_SUPPORTS_SAVE ) +CONS( 1980, invspace, 0, 0, invspace, invspace, invspace_state, 0, "Epoch", "Invader From Space", MACHINE_SUPPORTS_SAVE ) +CONS( 1980, efball, 0, 0, efball, efball, efball_state, 0, "Epoch", "Electronic Football (Epoch)", MACHINE_SUPPORTS_SAVE ) +CONS( 1981, galaxy2, 0, 0, galaxy2, galaxy2, galaxy2_state, 0, "Epoch", "Galaxy II (VFD Rev. D)", MACHINE_SUPPORTS_SAVE ) +CONS( 1981, galaxy2b, galaxy2, 0, galaxy2b, galaxy2, galaxy2_state, 0, "Epoch", "Galaxy II (VFD Rev. B)", MACHINE_SUPPORTS_SAVE ) +CONS( 1982, astrocmd, 0, 0, astrocmd, astrocmd, astrocmd_state, 0, "Epoch", "Astro Command", MACHINE_SUPPORTS_SAVE ) +CONS( 1982, edracula, 0, 0, edracula, edracula, edracula_state, 0, "Epoch", "Dracula (Epoch)", MACHINE_SUPPORTS_SAVE ) -CONS( 1979, mcompgin, 0, 0, mcompgin, mcompgin, driver_device, 0, "Mattel", "Computer Gin", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) +CONS( 1979, mcompgin, 0, 0, mcompgin, mcompgin, mcompgin_state, 0, "Mattel", "Computer Gin", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) -CONS( 1979, mvbfree, 0, 0, mvbfree, mvbfree, driver_device, 0, "Mego", "Mini-Vid Break Free", MACHINE_SUPPORTS_SAVE ) +CONS( 1979, mvbfree, 0, 0, mvbfree, mvbfree, mvbfree_state, 0, "Mego", "Mini-Vid Break Free", MACHINE_SUPPORTS_SAVE ) -CONS( 1980, grobot9, 0, 0, grobot9, grobot9, driver_device, 0, "Takatoku Toys", "Game Robot 9", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) // some of the minigames: *** +CONS( 1980, grobot9, 0, 0, grobot9, grobot9, grobot9_state, 0, "Takatoku Toys", "Game Robot 9", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) // some of the minigames: *** -CONS( 1980, tccombat, 0, 0, tccombat, tccombat, driver_device, 0, "Tomy", "Cosmic Combat", MACHINE_SUPPORTS_SAVE ) -CONS( 1980, tmtennis, 0, 0, tmtennis, tmtennis, driver_device, 0, "Tomy", "Tennis (Tomy)", MACHINE_SUPPORTS_SAVE ) -CONS( 1982, tmpacman, 0, 0, tmpacman, tmpacman, driver_device, 0, "Tomy", "Pac Man (Tomy)", MACHINE_SUPPORTS_SAVE ) -CONS( 1982, tmscramb, 0, 0, tmscramb, tmscramb, driver_device, 0, "Tomy", "Scramble (Tomy)", MACHINE_SUPPORTS_SAVE ) -CONS( 1982, tcaveman, 0, 0, tcaveman, tcaveman, driver_device, 0, "Tomy", "Caveman (Tomy)", MACHINE_SUPPORTS_SAVE ) -CONS( 1984, alnchase, 0, 0, alnchase, alnchase, driver_device, 0, "Tomy", "Alien Chase", MACHINE_SUPPORTS_SAVE ) +CONS( 1980, tccombat, 0, 0, tccombat, tccombat, tccombat_state, 0, "Tomy", "Cosmic Combat", MACHINE_SUPPORTS_SAVE ) +CONS( 1980, tmtennis, 0, 0, tmtennis, tmtennis, tmtennis_state, 0, "Tomy", "Tennis (Tomy)", MACHINE_SUPPORTS_SAVE ) +CONS( 1982, tmpacman, 0, 0, tmpacman, tmpacman, tmpacman_state, 0, "Tomy", "Pac Man (Tomy)", MACHINE_SUPPORTS_SAVE ) +CONS( 1982, tmscramb, 0, 0, tmscramb, tmscramb, tmscramb_state, 0, "Tomy", "Scramble (Tomy)", MACHINE_SUPPORTS_SAVE ) +CONS( 1982, tcaveman, 0, 0, tcaveman, tcaveman, tcaveman_state, 0, "Tomy", "Caveman (Tomy)", MACHINE_SUPPORTS_SAVE ) +CONS( 1984, alnchase, 0, 0, alnchase, alnchase, alnchase_state, 0, "Tomy", "Alien Chase", MACHINE_SUPPORTS_SAVE ) // ***: 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/hideseek.cpp b/src/mame/drivers/hideseek.cpp index 2d72d3c9750..cc98210c28c 100644 --- a/src/mame/drivers/hideseek.cpp +++ b/src/mame/drivers/hideseek.cpp @@ -96,7 +96,7 @@ PALETTE_INIT_MEMBER(hideseek_state, hideseek) -static MACHINE_CONFIG_START( hideseek, hideseek_state ) +static MACHINE_CONFIG_START( hideseek ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", SH2, 7372800 * 4 ) diff --git a/src/mame/drivers/higemaru.cpp b/src/mame/drivers/higemaru.cpp index bae44989a52..0f9b8914cf9 100644 --- a/src/mame/drivers/higemaru.cpp +++ b/src/mame/drivers/higemaru.cpp @@ -162,7 +162,7 @@ static GFXDECODE_START( higemaru ) GFXDECODE_END -static MACHINE_CONFIG_START( higemaru, higemaru_state ) +static MACHINE_CONFIG_START( higemaru ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_12MHz/4) /* 3 MHz Sharp LH0080A Z80A-CPU-D */ @@ -223,4 +223,4 @@ ROM_START( higemaru ) ROM_END -GAME( 1984, higemaru, 0, higemaru, higemaru, driver_device, 0, ROT0, "Capcom", "Pirate Ship Higemaru", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, higemaru, 0, higemaru, higemaru, higemaru_state, 0, ROT0, "Capcom", "Pirate Ship Higemaru", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/highvdeo.cpp b/src/mame/drivers/highvdeo.cpp index 7476e1f0cf8..6fa7329ea31 100644 --- a/src/mame/drivers/highvdeo.cpp +++ b/src/mame/drivers/highvdeo.cpp @@ -1124,7 +1124,7 @@ static ADDRESS_MAP_START( ramdac_map, AS_0, 8, highvdeo_state ) ADDRESS_MAP_END -static MACHINE_CONFIG_START( tv_vcf, highvdeo_state ) +static MACHINE_CONFIG_START( tv_vcf ) MCFG_CPU_ADD("maincpu", V30, XTAL_12MHz/2 ) // ? MCFG_CPU_PROGRAM_MAP(tv_vcf_map) MCFG_CPU_IO_MAP(tv_vcf_io) @@ -1202,7 +1202,7 @@ static MACHINE_CONFIG_DERIVED( ciclone, tv_tcf ) MCFG_CPU_VBLANK_INT_DRIVER("screen", highvdeo_state, vblank_irq_80186) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( brasil, highvdeo_state ) +static MACHINE_CONFIG_START( brasil ) MCFG_CPU_ADD("maincpu", I80186, 20000000 ) // fashion doesn't like 20/2 Mhz MCFG_CPU_PROGRAM_MAP(brasil_map) MCFG_CPU_IO_MAP(brasil_io) @@ -1228,7 +1228,7 @@ static MACHINE_CONFIG_START( brasil, highvdeo_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( grancapi, highvdeo_state ) +static MACHINE_CONFIG_START( grancapi ) MCFG_CPU_ADD("maincpu", I80186, 20000000 ) MCFG_CPU_PROGRAM_MAP(brasil_map) MCFG_CPU_IO_MAP(grancapi_io) @@ -1254,7 +1254,7 @@ static MACHINE_CONFIG_START( grancapi, highvdeo_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( magicbom, highvdeo_state ) +static MACHINE_CONFIG_START( magicbom ) MCFG_CPU_ADD("maincpu", I80186, 20000000 ) MCFG_CPU_PROGRAM_MAP(brasil_map) MCFG_CPU_IO_MAP(magicbom_io) @@ -1646,20 +1646,20 @@ DRIVER_INIT_MEMBER(highvdeo_state, record) } -GAMEL( 2000, tour4000, 0, tv_vcf, tv_vcf, driver_device, 0, ROT0, "High Video", "Tour 4000", 0, layout_fashion ) -GAMEL( 2000, cfever40, 0, tv_vcf, tv_vcf, driver_device, 0, ROT0, "High Video", "Casino Fever 4.0", 0, layout_fashion ) -GAMEL( 2000, cfever50, 0, tv_vcf, tv_vcf, driver_device, 0, ROT0, "High Video", "Casino Fever 5.0", 0, layout_fashion ) -GAMEL( 2000, tour4010, 0, tv_ncf, tv_ncf, driver_device, 0, ROT0, "High Video", "Tour 4010", 0, layout_fashion ) -GAMEL( 2000, cfever51, 0, tv_ncf, tv_ncf, driver_device, 0, ROT0, "High Video", "Casino Fever 5.1", 0, layout_fashion ) -GAMEL( 2000, cfever61, 0, tv_ncf, tv_ncf, driver_device, 0, ROT0, "High Video", "Casino Fever 6.1", 0, layout_fashion ) -GAMEL( 2000, nyjoker, 0, nyjoker, nyjoker, driver_device, 0, ROT0, "High Video", "New York Joker", 0, layout_fashion ) -GAMEL( 2000, cfever1k, 0, tv_tcf, tv_tcf, driver_device, 0, ROT0, "High Video", "Casino Fever 1k", 0, layout_fashion ) -GAMEL( 2000, girotutt, 0, tv_tcf, tv_tcf, driver_device, 0, ROT0, "High Video", "GiroTutto", 0, layout_fashion ) -GAMEL( 2000, galeone, 0, nyjoker, nyjoker, driver_device, 0, ROT0, "San Remo Games", "Il Galeone", 0, layout_fashion ) -GAMEL( 2000, ciclone, 0, ciclone, tv_tcf, highvdeo_state, ciclone, ROT0, "High Video", "Ciclone", 0, layout_fashion ) -GAMEL( 2000, newmcard, 0, newmcard, tv_tcf, driver_device, 0, ROT0, "High Video", "New Magic Card", 0, layout_fashion ) -GAMEL( 2000, brasil, 0, brasil, brasil, driver_device, 0, ROT0, "High Video", "Bra$il (Version 3)", 0, layout_fashion ) -GAMEL( 2000, fashion, brasil, brasil, fashion, highvdeo_state, fashion, ROT0, "High Video", "Fashion (Version 2.14)", 0, layout_fashion ) -GAMEL( 2000, grancapi, 0, grancapi, brasil, driver_device, 0, ROT0, "High Video", "Gran Capitan (Version 3)", MACHINE_NOT_WORKING, layout_fashion ) -GAMEL( 2000, magicbom, 0, magicbom, fashion, highvdeo_state, fashion, ROT0, "High Video", "Magic Bomb (Version 1)", MACHINE_NOT_WORKING, layout_fashion ) -GAMEL( 2000, record, 0, newmcard, tv_tcf, highvdeo_state, record, ROT0, "High Video", "Record (Version 1)", 0, layout_fashion ) +GAMEL( 2000, tour4000, 0, tv_vcf, tv_vcf, highvdeo_state, 0, ROT0, "High Video", "Tour 4000", 0, layout_fashion ) +GAMEL( 2000, cfever40, 0, tv_vcf, tv_vcf, highvdeo_state, 0, ROT0, "High Video", "Casino Fever 4.0", 0, layout_fashion ) +GAMEL( 2000, cfever50, 0, tv_vcf, tv_vcf, highvdeo_state, 0, ROT0, "High Video", "Casino Fever 5.0", 0, layout_fashion ) +GAMEL( 2000, tour4010, 0, tv_ncf, tv_ncf, highvdeo_state, 0, ROT0, "High Video", "Tour 4010", 0, layout_fashion ) +GAMEL( 2000, cfever51, 0, tv_ncf, tv_ncf, highvdeo_state, 0, ROT0, "High Video", "Casino Fever 5.1", 0, layout_fashion ) +GAMEL( 2000, cfever61, 0, tv_ncf, tv_ncf, highvdeo_state, 0, ROT0, "High Video", "Casino Fever 6.1", 0, layout_fashion ) +GAMEL( 2000, nyjoker, 0, nyjoker, nyjoker, highvdeo_state, 0, ROT0, "High Video", "New York Joker", 0, layout_fashion ) +GAMEL( 2000, cfever1k, 0, tv_tcf, tv_tcf, highvdeo_state, 0, ROT0, "High Video", "Casino Fever 1k", 0, layout_fashion ) +GAMEL( 2000, girotutt, 0, tv_tcf, tv_tcf, highvdeo_state, 0, ROT0, "High Video", "GiroTutto", 0, layout_fashion ) +GAMEL( 2000, galeone, 0, nyjoker, nyjoker, highvdeo_state, 0, ROT0, "San Remo Games", "Il Galeone", 0, layout_fashion ) +GAMEL( 2000, ciclone, 0, ciclone, tv_tcf, highvdeo_state, ciclone, ROT0, "High Video", "Ciclone", 0, layout_fashion ) +GAMEL( 2000, newmcard, 0, newmcard, tv_tcf, highvdeo_state, 0, ROT0, "High Video", "New Magic Card", 0, layout_fashion ) +GAMEL( 2000, brasil, 0, brasil, brasil, highvdeo_state, 0, ROT0, "High Video", "Bra$il (Version 3)", 0, layout_fashion ) +GAMEL( 2000, fashion, brasil, brasil, fashion, highvdeo_state, fashion, ROT0, "High Video", "Fashion (Version 2.14)", 0, layout_fashion ) +GAMEL( 2000, grancapi, 0, grancapi, brasil, highvdeo_state, 0, ROT0, "High Video", "Gran Capitan (Version 3)", MACHINE_NOT_WORKING, layout_fashion ) +GAMEL( 2000, magicbom, 0, magicbom, fashion, highvdeo_state, fashion, ROT0, "High Video", "Magic Bomb (Version 1)", MACHINE_NOT_WORKING, layout_fashion ) +GAMEL( 2000, record, 0, newmcard, tv_tcf, highvdeo_state, record, ROT0, "High Video", "Record (Version 1)", 0, layout_fashion ) diff --git a/src/mame/drivers/hikaru.cpp b/src/mame/drivers/hikaru.cpp index aa18d0d14cf..d44c03e70f3 100644 --- a/src/mame/drivers/hikaru.cpp +++ b/src/mame/drivers/hikaru.cpp @@ -481,7 +481,7 @@ static ADDRESS_MAP_START( hikaru_map_slave, AS_PROGRAM, 64, hikaru_state ) ADDRESS_MAP_END -static MACHINE_CONFIG_START( hikaru, hikaru_state ) +static MACHINE_CONFIG_START( hikaru ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", SH4LE, CPU_CLOCK) // MCFG_SH4_MD0(1) @@ -806,11 +806,11 @@ ROM_START( sgnascaro ) ROM_PARAMETER( ":rom_board:key", "56dedf33" ) ROM_END -GAME( 2000, hikaru, 0, hikaru, hikaru, driver_device, 0, ROT0, "Sega", "Hikaru Bios", MACHINE_NO_SOUND|MACHINE_NOT_WORKING|MACHINE_IS_BIOS_ROOT ) -GAME( 1999, braveff, hikaru, hikaru, hikaru, driver_device, 0, ROT0, "Sega", "Brave Fire Fighters", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) -GAME( 2000, airtrix, hikaru, hikaru, hikaru, driver_device, 0, ROT0, "Sega", "Air Trix (Rev A)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) -GAME( 2000, airtrixo, airtrix, hikaru, hikaru, driver_device, 0, ROT0, "Sega", "Air Trix (original)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) -GAME( 2000, sgnascar, hikaru, hikaru, hikaru, driver_device, 0, ROT0, "Sega / Electronic Arts", "NASCAR Racing (Rev A)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) -GAME( 2000, sgnascaro,sgnascar, hikaru, hikaru, driver_device, 0, ROT0, "Sega / Electronic Arts", "NASCAR Racing (original)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) -GAME( 2001, pharrier, hikaru, hikaru, hikaru, driver_device, 0, ROT0, "Sega", "Planet Harriers (Rev A)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) -GAME( 2001, podrace, hikaru, hikaru, hikaru, driver_device, 0, ROT0, "Sega", "Star Wars Pod Racer", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) +GAME( 2000, hikaru, 0, hikaru, hikaru, hikaru_state, 0, ROT0, "Sega", "Hikaru Bios", MACHINE_NO_SOUND|MACHINE_NOT_WORKING|MACHINE_IS_BIOS_ROOT ) +GAME( 1999, braveff, hikaru, hikaru, hikaru, hikaru_state, 0, ROT0, "Sega", "Brave Fire Fighters", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) +GAME( 2000, airtrix, hikaru, hikaru, hikaru, hikaru_state, 0, ROT0, "Sega", "Air Trix (Rev A)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) +GAME( 2000, airtrixo, airtrix, hikaru, hikaru, hikaru_state, 0, ROT0, "Sega", "Air Trix (original)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) +GAME( 2000, sgnascar, hikaru, hikaru, hikaru, hikaru_state, 0, ROT0, "Sega / Electronic Arts", "NASCAR Racing (Rev A)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) +GAME( 2000, sgnascaro,sgnascar, hikaru, hikaru, hikaru_state, 0, ROT0, "Sega / Electronic Arts", "NASCAR Racing (original)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) +GAME( 2001, pharrier, hikaru, hikaru, hikaru, hikaru_state, 0, ROT0, "Sega", "Planet Harriers (Rev A)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) +GAME( 2001, podrace, hikaru, hikaru, hikaru, hikaru_state, 0, ROT0, "Sega", "Star Wars Pod Racer", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/himesiki.cpp b/src/mame/drivers/himesiki.cpp index 2646e71d392..ee067fe50e6 100644 --- a/src/mame/drivers/himesiki.cpp +++ b/src/mame/drivers/himesiki.cpp @@ -422,7 +422,7 @@ void himesiki_state::machine_reset() m_flipscreen = 0; } -static MACHINE_CONFIG_START( himesiki, himesiki_state ) +static MACHINE_CONFIG_START( himesiki ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, CLK2) /* it's a 6.000 MHz rated part, but near the 8 Mhz XTAL?? - Android skips lots of frames at 6, crashes at 4 */ @@ -563,8 +563,8 @@ ROM_START( androidp ) ROM_END -GAME( 1989, himesiki, 0, himesiki, himesiki, driver_device, 0, ROT90, "Hi-Soft", "Himeshikibu (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, himesiki, 0, himesiki, himesiki, himesiki_state, 0, ROT90, "Hi-Soft", "Himeshikibu (Japan)", MACHINE_SUPPORTS_SAVE ) // the game changed significantly between these 2 versions -GAME( 198?, androidp, 0, himesiki, androidp, driver_device, 0, ROT90, "Nasco", "Android (prototype, later build)", MACHINE_SUPPORTS_SAVE ) -GAME( 198?, androidpo, androidp, himesiki, androidpo, driver_device, 0, ROT90, "Nasco", "Android (prototype, early build)", MACHINE_SUPPORTS_SAVE ) +GAME( 198?, androidp, 0, himesiki, androidp, himesiki_state, 0, ROT90, "Nasco", "Android (prototype, later build)", MACHINE_SUPPORTS_SAVE ) +GAME( 198?, androidpo, androidp, himesiki, androidpo, himesiki_state, 0, ROT90, "Nasco", "Android (prototype, early build)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/hitme.cpp b/src/mame/drivers/hitme.cpp index 067ec706d89..dd0bc7f7403 100644 --- a/src/mame/drivers/hitme.cpp +++ b/src/mame/drivers/hitme.cpp @@ -311,7 +311,7 @@ void hitme_state::machine_reset() m_timeout_time = attotime::zero; } -static MACHINE_CONFIG_START( hitme, hitme_state ) +static MACHINE_CONFIG_START( hitme ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8080, MASTER_CLOCK/16) @@ -690,9 +690,9 @@ ROM_END * *************************************/ -GAME( 1976, hitme, 0, hitme, hitme, driver_device, 0, ROT0, "Ramtek", "Hit Me (set 1)", MACHINE_SUPPORTS_SAVE ) // 05/1976 -GAME( 1976, hitme1, hitme, hitme, hitme, driver_device, 0, ROT0, "Ramtek", "Hit Me (set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1976, m21, hitme, hitme, hitme, driver_device, 0, ROT0, "Mirco Games", "21 (Mirco)", MACHINE_SUPPORTS_SAVE ) // 08/1976, licensed? -GAME( 1978, super21, 0, hitme, super21, driver_device, 0, ROT0, "Mirco Games", "Super Twenty One", MACHINE_SUPPORTS_SAVE ) -GAMEL(1976, barricad, 0, barricad, barricad, driver_device, 0, ROT0, "Ramtek", "Barricade", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_barricad ) -GAMEL(1976, brickyrd, barricad, barricad, barricad, driver_device, 0, ROT0, "Ramtek", "Brickyard", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_barricad ) +GAME( 1976, hitme, 0, hitme, hitme, hitme_state, 0, ROT0, "Ramtek", "Hit Me (set 1)", MACHINE_SUPPORTS_SAVE ) // 05/1976 +GAME( 1976, hitme1, hitme, hitme, hitme, hitme_state, 0, ROT0, "Ramtek", "Hit Me (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1976, m21, hitme, hitme, hitme, hitme_state, 0, ROT0, "Mirco Games", "21 (Mirco)", MACHINE_SUPPORTS_SAVE ) // 08/1976, licensed? +GAME( 1978, super21, 0, hitme, super21, hitme_state, 0, ROT0, "Mirco Games", "Super Twenty One", MACHINE_SUPPORTS_SAVE ) +GAMEL(1976, barricad, 0, barricad, barricad, hitme_state, 0, ROT0, "Ramtek", "Barricade", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_barricad ) +GAMEL(1976, brickyrd, barricad, barricad, barricad, hitme_state, 0, ROT0, "Ramtek", "Brickyard", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_barricad ) diff --git a/src/mame/drivers/hitpoker.cpp b/src/mame/drivers/hitpoker.cpp index 44c2ca5c417..c761c9f8eb1 100644 --- a/src/mame/drivers/hitpoker.cpp +++ b/src/mame/drivers/hitpoker.cpp @@ -469,7 +469,7 @@ INTERRUPT_GEN_MEMBER(hitpoker_state::hitpoker_irq) device.execute().set_input_line(MC68HC11_IRQ_LINE, HOLD_LINE); } -static MACHINE_CONFIG_START( hitpoker, hitpoker_state ) +static MACHINE_CONFIG_START( hitpoker ) MCFG_CPU_ADD("maincpu", MC68HC11,1000000) MCFG_CPU_PROGRAM_MAP(hitpoker_map) MCFG_CPU_IO_MAP(hitpoker_io) diff --git a/src/mame/drivers/hk68v10.cpp b/src/mame/drivers/hk68v10.cpp index e5fbeb53234..049dc5c2ed8 100644 --- a/src/mame/drivers/hk68v10.cpp +++ b/src/mame/drivers/hk68v10.cpp @@ -332,7 +332,7 @@ SLOT_INTERFACE_END /* * Machine configuration */ -static MACHINE_CONFIG_START (hk68v10, hk68v10_state) +static MACHINE_CONFIG_START (hk68v10) /* basic machine hardware */ MCFG_CPU_ADD ("maincpu", M68010, XTAL_10MHz) MCFG_CPU_PROGRAM_MAP (hk68v10_mem) @@ -389,5 +389,5 @@ ROM_LOAD16_BYTE ("hk68kv10U12.bin", 0xFC0000, 0x2000, CRC (f2d688e9) SHA1 (e6869 ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP (1985, hk68v10, 0, 0, hk68v10, hk68v10, driver_device, 0, "Heurikon Corporation", "HK68/V10", MACHINE_NO_SOUND_HW | MACHINE_TYPE_COMPUTER ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ +COMP (1985, hk68v10, 0, 0, hk68v10, hk68v10, hk68v10_state, 0, "Heurikon Corporation", "HK68/V10", MACHINE_NO_SOUND_HW | MACHINE_TYPE_COMPUTER ) diff --git a/src/mame/drivers/hnayayoi.cpp b/src/mame/drivers/hnayayoi.cpp index ed5612dea54..7054fa664d4 100644 --- a/src/mame/drivers/hnayayoi.cpp +++ b/src/mame/drivers/hnayayoi.cpp @@ -534,7 +534,7 @@ void hnayayoi_state::machine_reset() } -static MACHINE_CONFIG_START( hnayayoi, hnayayoi_state ) +static MACHINE_CONFIG_START( hnayayoi ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 20000000/4 ) /* 5 MHz ???? */ @@ -570,7 +570,7 @@ static MACHINE_CONFIG_START( hnayayoi, hnayayoi_state ) MCFG_SOUND_ROUTE(3, "mono", 0.80) MCFG_SOUND_ADD("msm", MSM5205, 384000) - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_SEX_4B) + MCFG_MSM5205_PRESCALER_SELECTOR(SEX_4B) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -679,6 +679,6 @@ DRIVER_INIT_MEMBER(hnayayoi_state,hnfubuki) } -GAME( 1987, hnayayoi, 0, hnayayoi, hnayayoi, driver_device, 0, ROT0, "Dyna Electronics", "Hana Yayoi (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, hnayayoi, 0, hnayayoi, hnayayoi, hnayayoi_state, 0, ROT0, "Dyna Electronics", "Hana Yayoi (Japan)", MACHINE_SUPPORTS_SAVE ) GAME( 1987, hnfubuki, hnayayoi, hnfubuki, hnfubuki, hnayayoi_state, hnfubuki, ROT0, "Dynax", "Hana Fubuki [BET] (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, untoucha, 0, untoucha, untoucha, driver_device, 0, ROT0, "Dynax", "Untouchable (Ver. 2.10)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, untoucha, 0, untoucha, untoucha, hnayayoi_state, 0, ROT0, "Dynax", "Untouchable (Ver. 2.10)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/hng64.cpp b/src/mame/drivers/hng64.cpp index 724d985bedc..241faead712 100644 --- a/src/mame/drivers/hng64.cpp +++ b/src/mame/drivers/hng64.cpp @@ -1530,7 +1530,7 @@ void hng64_state::machine_reset() MACHINE_CONFIG_EXTERN(hng64_audio); -static MACHINE_CONFIG_START(hng64, hng64_state) +static MACHINE_CONFIG_START(hng64) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", VR4300BE, HNG64_MASTER_CLOCK) // actually R4300 MCFG_MIPS3_ICACHE_SIZE(16384) diff --git a/src/mame/drivers/holeland.cpp b/src/mame/drivers/holeland.cpp index 3d22462253f..9f2181304a7 100644 --- a/src/mame/drivers/holeland.cpp +++ b/src/mame/drivers/holeland.cpp @@ -268,7 +268,7 @@ static GFXDECODE_START( crzrally ) GFXDECODE_END -static MACHINE_CONFIG_START( holeland, holeland_state ) +static MACHINE_CONFIG_START( holeland ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 3355700) /* measured 298ns on PCB */ @@ -343,7 +343,7 @@ Notes: */ -static MACHINE_CONFIG_START( crzrally, holeland_state ) +static MACHINE_CONFIG_START( crzrally ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 20000000/4) /* 5 MHz */ @@ -533,8 +533,8 @@ ROM_START( crzrallyg ) ROM_END -GAME( 1984, holeland, 0, holeland, holeland, driver_device, 0, ROT0, "Tecfri", "Hole Land (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1984, holeland2, holeland, holeland, holeland2, driver_device, 0, ROT0, "Tecfri", "Hole Land (Spain)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) //attract is different -GAME( 1985, crzrally, 0, crzrally, crzrally, driver_device, 0, ROT270, "Tecfri", "Crazy Rally (set 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1985, crzrallya, crzrally, crzrally, crzrally, driver_device, 0, ROT270, "Tecfri", "Crazy Rally (set 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1985, crzrallyg, crzrally, crzrally, crzrally, driver_device, 0, ROT270, "Tecfri (Gecas license)", "Crazy Rally (Gecas license)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1984, holeland, 0, holeland, holeland, holeland_state, 0, ROT0, "Tecfri", "Hole Land (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1984, holeland2, holeland, holeland, holeland2, holeland_state, 0, ROT0, "Tecfri", "Hole Land (Spain)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) //attract is different +GAME( 1985, crzrally, 0, crzrally, crzrally, holeland_state, 0, ROT270, "Tecfri", "Crazy Rally (set 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1985, crzrallya, crzrally, crzrally, crzrally, holeland_state, 0, ROT270, "Tecfri", "Crazy Rally (set 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1985, crzrallyg, crzrally, crzrally, crzrally, holeland_state, 0, ROT270, "Tecfri (Gecas license)", "Crazy Rally (Gecas license)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/homedata.cpp b/src/mame/drivers/homedata.cpp index 38a68baf9d2..c1bc171ae4e 100644 --- a/src/mame/drivers/homedata.cpp +++ b/src/mame/drivers/homedata.cpp @@ -1211,7 +1211,7 @@ MACHINE_RESET_MEMBER(homedata_state,reikaids) m_gfx_bank[1] = 0; // this is not used by reikaids } -static MACHINE_CONFIG_START( mrokumei, homedata_state ) +static MACHINE_CONFIG_START( mrokumei ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809, 16000000/4) /* 4MHz ? */ @@ -1258,7 +1258,7 @@ MACHINE_CONFIG_END /**************************************************************************/ -static MACHINE_CONFIG_START( reikaids, homedata_state ) +static MACHINE_CONFIG_START( reikaids ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809, 16000000/4) /* 4MHz ? */ @@ -1314,7 +1314,7 @@ MACHINE_CONFIG_END /**************************************************************************/ -static MACHINE_CONFIG_START( pteacher, homedata_state ) +static MACHINE_CONFIG_START( pteacher ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809, 16000000/4) /* 4MHz ? */ @@ -1483,7 +1483,7 @@ GFXDECODE_END /* clocks are 16mhz and 9mhz */ -static MACHINE_CONFIG_START( mirderby, homedata_state ) +static MACHINE_CONFIG_START( mirderby ) MCFG_CPU_ADD("maincpu", M6809, 16000000/8) /* 2 Mhz */ MCFG_CPU_PROGRAM_MAP(cpu2_map) @@ -2064,25 +2064,25 @@ DRIVER_INIT_MEMBER(homedata_state,mirderby) } -GAME( 1987, hourouki, 0, mrokumei, mjhokite, driver_device, 0, ROT0, "Home Data", "Mahjong Hourouki Part 1 - Seisyun Hen (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1987, mhgaiden, 0, mrokumei, mjhokite, driver_device, 0, ROT0, "Home Data", "Mahjong Hourouki Gaiden (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, mjhokite, 0, mrokumei, mjhokite, driver_device, 0, ROT0, "Home Data", "Mahjong Hourouki Okite (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, mjclinic, 0, mrokumei, mjhokite, driver_device, 0, ROT0, "Home Data", "Mahjong Clinic (Japan, set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, mjclinica, mjclinic, mrokumei, mjhokite, driver_device, 0, ROT0, "Home Data", "Mahjong Clinic (Japan, set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, mrokumei, 0, mrokumei, mjhokite, driver_device, 0, ROT0, "Home Data", "Mahjong Rokumeikan (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1987, hourouki, 0, mrokumei, mjhokite, homedata_state, 0, ROT0, "Home Data", "Mahjong Hourouki Part 1 - Seisyun Hen (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1987, mhgaiden, 0, mrokumei, mjhokite, homedata_state, 0, ROT0, "Home Data", "Mahjong Hourouki Gaiden (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, mjhokite, 0, mrokumei, mjhokite, homedata_state, 0, ROT0, "Home Data", "Mahjong Hourouki Okite (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, mjclinic, 0, mrokumei, mjhokite, homedata_state, 0, ROT0, "Home Data", "Mahjong Clinic (Japan, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, mjclinica, mjclinic, mrokumei, mjhokite, homedata_state, 0, ROT0, "Home Data", "Mahjong Clinic (Japan, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, mrokumei, 0, mrokumei, mjhokite, homedata_state, 0, ROT0, "Home Data", "Mahjong Rokumeikan (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1988, reikaids, 0, reikaids, reikaids, homedata_state, reikaids, ROT0, "Home Data", "Reikai Doushi (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, battlcry, 0, reikaids, battlcry, homedata_state, battlcry, ROT0, "Home Data", "Battlecry", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1989, mjkojink, 0, pteacher, pteacher, driver_device, 0, ROT0, "Home Data", "Mahjong Kojinkyouju (Private Teacher) (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, mjjoship, 0, pteacher, mjjoship, driver_device, 0, ROT0, "Home Data", "Mahjong Joshi Pro-wres -Give up 5 byou mae- (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, vitaminc, 0, pteacher, pteacher, driver_device, 0, ROT0, "Home Data", "Mahjong Vitamin C (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, mjyougo, 0, pteacher, pteacher, driver_device, 0, ROT0, "Home Data", "Mahjong-yougo no Kisotairyoku (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, mjkinjas, 0, mjkinjas, pteacher, driver_device, 0, ROT0, "Home Data", "Mahjong Kinjirareta Asobi (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992?,jogakuen, 0, pteacher, jogakuen, homedata_state, jogakuen, ROT0, "Windom", "Mahjong Jogakuen (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, reikaids, 0, reikaids, reikaids, homedata_state, reikaids, ROT0, "Home Data", "Reikai Doushi (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, battlcry, 0, reikaids, battlcry, homedata_state, battlcry, ROT0, "Home Data", "Battlecry", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1989, mjkojink, 0, pteacher, pteacher, homedata_state, 0, ROT0, "Home Data", "Mahjong Kojinkyouju (Private Teacher) (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, mjjoship, 0, pteacher, mjjoship, homedata_state, 0, ROT0, "Home Data", "Mahjong Joshi Pro-wres -Give up 5 byou mae- (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, vitaminc, 0, pteacher, pteacher, homedata_state, 0, ROT0, "Home Data", "Mahjong Vitamin C (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, mjyougo, 0, pteacher, pteacher, homedata_state, 0, ROT0, "Home Data", "Mahjong-yougo no Kisotairyoku (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, mjkinjas, 0, mjkinjas, pteacher, homedata_state, 0, ROT0, "Home Data", "Mahjong Kinjirareta Asobi (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992?,jogakuen, 0, pteacher, jogakuen, homedata_state, jogakuen, ROT0, "Windom", "Mahjong Jogakuen (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, lemnangl, 0, lemnangl, pteacher, driver_device, 0, ROT0, "Home Data", "Mahjong Lemon Angel (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, mjprivat, 0, lemnangl, pteacher, driver_device, 0, ROT0, "Matoba", "Mahjong Private (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, lemnangl, 0, lemnangl, pteacher, homedata_state, 0, ROT0, "Home Data", "Mahjong Lemon Angel (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, mjprivat, 0, lemnangl, pteacher, homedata_state, 0, ROT0, "Matoba", "Mahjong Private (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991?,mjikaga, 0, lemnangl, mjikaga, homedata_state, mjikaga, ROT0, "Mitchell", "Mahjong Ikaga Desu ka (Japan)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1991?,mjikaga, 0, lemnangl, mjikaga, homedata_state, mjikaga, ROT0, "Mitchell", "Mahjong Ikaga Desu ka (Japan)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1988, mirderby, 0, mirderby, mirderby, homedata_state, mirderby, ROT0, "Home Data?", "Miracle Derby - Ascot", MACHINE_NO_SOUND|MACHINE_NOT_WORKING ) +GAME( 1988, mirderby, 0, mirderby, mirderby, homedata_state, mirderby, ROT0, "Home Data?", "Miracle Derby - Ascot", MACHINE_NO_SOUND | MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/homelab.cpp b/src/mame/drivers/homelab.cpp index 8393ede6b99..383a0db1cfe 100644 --- a/src/mame/drivers/homelab.cpp +++ b/src/mame/drivers/homelab.cpp @@ -732,7 +732,7 @@ QUICKLOAD_LOAD_MEMBER( homelab_state,homelab) } /* Machine driver */ -static MACHINE_CONFIG_START( homelab, homelab_state ) +static MACHINE_CONFIG_START( homelab ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_8MHz / 2) MCFG_CPU_PROGRAM_MAP(homelab2_mem) @@ -764,7 +764,7 @@ static MACHINE_CONFIG_START( homelab, homelab_state ) MCFG_QUICKLOAD_ADD("quickload", homelab_state, homelab, "htp", 2) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( homelab3, homelab_state ) +static MACHINE_CONFIG_START( homelab3 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_12MHz / 4) MCFG_CPU_PROGRAM_MAP(homelab3_mem) @@ -797,7 +797,7 @@ static MACHINE_CONFIG_START( homelab3, homelab_state ) MCFG_QUICKLOAD_ADD("quickload", homelab_state, homelab, "htp", 2) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( brailab4, homelab_state ) +static MACHINE_CONFIG_START( brailab4 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_12MHz / 4) MCFG_CPU_PROGRAM_MAP(brailab4_mem) @@ -910,9 +910,9 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1982, homelab2, 0, 0, homelab, homelab, driver_device, 0, "Jozsef and Endre Lukacs", "Homelab 2 / Aircomp 16", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW ) -COMP( 1983, homelab3, homelab2, 0, homelab3, homelab3, driver_device, 0, "Jozsef and Endre Lukacs", "Homelab 3", MACHINE_NOT_WORKING ) -COMP( 1984, homelab4, homelab2, 0, homelab3, homelab3, driver_device, 0, "Jozsef and Endre Lukacs", "Homelab 4", MACHINE_NOT_WORKING ) -COMP( 1984, brailab4, homelab2, 0, brailab4, brailab4, homelab_state, brailab4, "Jozsef and Endre Lukacs", "Brailab 4", MACHINE_NOT_WORKING ) -COMP( 1988, braiplus, homelab2, 0, brailab4, brailab4, homelab_state, brailab4, "Jozsef and Endre Lukacs", "Brailab Plus", MACHINE_NOT_WORKING | MACHINE_IS_SKELETON ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +COMP( 1982, homelab2, 0, 0, homelab, homelab, homelab_state, 0, "Jozsef and Endre Lukacs", "Homelab 2 / Aircomp 16", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW ) +COMP( 1983, homelab3, homelab2, 0, homelab3, homelab3, homelab_state, 0, "Jozsef and Endre Lukacs", "Homelab 3", MACHINE_NOT_WORKING ) +COMP( 1984, homelab4, homelab2, 0, homelab3, homelab3, homelab_state, 0, "Jozsef and Endre Lukacs", "Homelab 4", MACHINE_NOT_WORKING ) +COMP( 1984, brailab4, homelab2, 0, brailab4, brailab4, homelab_state, brailab4, "Jozsef and Endre Lukacs", "Brailab 4", MACHINE_NOT_WORKING ) +COMP( 1988, braiplus, homelab2, 0, brailab4, brailab4, homelab_state, brailab4, "Jozsef and Endre Lukacs", "Brailab Plus", MACHINE_NOT_WORKING | MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/homerun.cpp b/src/mame/drivers/homerun.cpp index 4fc062d6d21..2176b59d42d 100644 --- a/src/mame/drivers/homerun.cpp +++ b/src/mame/drivers/homerun.cpp @@ -347,7 +347,7 @@ void homerun_state::machine_reset() /**************************************************************************/ -static MACHINE_CONFIG_START( dynashot, homerun_state ) +static MACHINE_CONFIG_START( dynashot ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_20MHz/4) @@ -452,6 +452,6 @@ ROM_START( ganjaja ) ROM_END -GAME( 1988, homerun, 0, homerun, homerun, driver_device, 0, ROT0, "Jaleco", "Moero!! Pro Yakyuu Homerun Kyousou", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1988, dynashot, 0, dynashot, dynashot, driver_device, 0, ROT0, "Jaleco", "Dynamic Shoot Kyousou", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1990, ganjaja, 0, ganjaja, ganjaja, driver_device, 0, ROT0, "Jaleco", "Ganbare Jajamaru Saisho wa Goo / Ganbare Jajamaru Hop Step & Jump", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1988, homerun, 0, homerun, homerun, homerun_state, 0, ROT0, "Jaleco", "Moero!! Pro Yakyuu Homerun Kyousou", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1988, dynashot, 0, dynashot, dynashot, homerun_state, 0, ROT0, "Jaleco", "Dynamic Shoot Kyousou", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1990, ganjaja, 0, ganjaja, ganjaja, homerun_state, 0, ROT0, "Jaleco", "Ganbare Jajamaru Saisho wa Goo / Ganbare Jajamaru Hop Step & Jump", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/homez80.cpp b/src/mame/drivers/homez80.cpp index 880bf285b71..0a21d013dc0 100644 --- a/src/mame/drivers/homez80.cpp +++ b/src/mame/drivers/homez80.cpp @@ -278,7 +278,7 @@ INTERRUPT_GEN_MEMBER(homez80_state::homez80_interrupt) m_irq ^= 1; } -static MACHINE_CONFIG_START( homez80, homez80_state ) +static MACHINE_CONFIG_START( homez80 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80, XTAL_8MHz / 2) MCFG_CPU_PROGRAM_MAP(homez80_mem) @@ -309,5 +309,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 2008, homez80, 0, 0, homez80, homez80, driver_device, 0, "Kun-Szabo Marton", "Homebrew Z80 Computer", MACHINE_NO_SOUND_HW) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +COMP( 2008, homez80, 0, 0, homez80, homez80, homez80_state, 0, "Kun-Szabo Marton", "Homebrew Z80 Computer", MACHINE_NO_SOUND_HW) diff --git a/src/mame/drivers/horizon.cpp b/src/mame/drivers/horizon.cpp index 895b8150437..c40e693cccd 100644 --- a/src/mame/drivers/horizon.cpp +++ b/src/mame/drivers/horizon.cpp @@ -141,7 +141,7 @@ SLOT_INTERFACE_END // MACHINE_CONFIG( horizon ) //------------------------------------------------- -static MACHINE_CONFIG_START( horizon, horizon_state ) +static MACHINE_CONFIG_START( horizon ) // basic machine hardware MCFG_CPU_ADD(Z80_TAG, Z80, XTAL_4MHz) MCFG_CPU_PROGRAM_MAP(horizon_mem) @@ -218,6 +218,6 @@ ROM_END // SYSTEM DRIVERS //************************************************************************** -// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS -COMP( 1976, nshrz, 0, 0, horizon, horizon, driver_device, 0, "North Star Computers", "Horizon (North Star Computers)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW ) -COMP( 1979, vector1, nshrz, 0, horizon, horizon, driver_device, 0, "Vector Graphic", "Vector 1+ (DD drive)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1976, nshrz, 0, 0, horizon, horizon, horizon_state, 0, "North Star Computers", "Horizon (North Star Computers)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW ) +COMP( 1979, vector1, nshrz, 0, horizon, horizon, horizon_state, 0, "Vector Graphic", "Vector 1+ (DD drive)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW ) diff --git a/src/mame/drivers/hornet.cpp b/src/mame/drivers/hornet.cpp index 4f86929cf3c..e68fd5b00a8 100644 --- a/src/mame/drivers/hornet.cpp +++ b/src/mame/drivers/hornet.cpp @@ -1004,7 +1004,7 @@ ADC12138_IPT_CONVERT_CB(hornet_state::adc12138_input_callback) return (double)(value) / 2047.0; } -static MACHINE_CONFIG_START( hornet, hornet_state ) +static MACHINE_CONFIG_START( hornet ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", PPC403GA, XTAL_64MHz/2) /* PowerPC 403GA 32MHz */ @@ -1063,7 +1063,7 @@ static MACHINE_CONFIG_START( hornet, hornet_state ) MCFG_DEVICE_ADD("konppc", KONPPC, 0) MCFG_KONPPC_CGBOARD_NUMBER(1) - MCFG_KONPPC_CGBOARD_TYPE(CGBOARD_TYPE_HORNET) + MCFG_KONPPC_CGBOARD_TYPE(HORNET) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( hornet_2board, hornet ) @@ -1120,7 +1120,7 @@ static MACHINE_CONFIG_DERIVED( hornet_2board, hornet ) MCFG_DEVICE_REMOVE("konppc") MCFG_DEVICE_ADD("konppc", KONPPC, 0) MCFG_KONPPC_CGBOARD_NUMBER(2) - MCFG_KONPPC_CGBOARD_TYPE(CGBOARD_TYPE_HORNET) + MCFG_KONPPC_CGBOARD_TYPE(HORNET) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( terabrst, hornet ) diff --git a/src/mame/drivers/hotblock.cpp b/src/mame/drivers/hotblock.cpp index 1dd41f02888..49abf987b1a 100644 --- a/src/mame/drivers/hotblock.cpp +++ b/src/mame/drivers/hotblock.cpp @@ -206,7 +206,7 @@ static INPUT_PORTS_START( hotblock ) INPUT_PORTS_END -static MACHINE_CONFIG_START( hotblock, hotblock_state ) +static MACHINE_CONFIG_START( hotblock ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8088, 10000000) @@ -241,4 +241,4 @@ ROM_START( hotblock ) ROM_LOAD( "hotblk6.ic5", 0x080000, 0x080000, CRC(3176d231) SHA1(ac22fd0e9820c6714f51a3d8315eb5d43ef91eeb) ) ROM_END -GAME( 1993, hotblock, 0, hotblock, hotblock, driver_device, 0, ROT0, "NIX?", "Hot Blocks - Tetrix II", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, hotblock, 0, hotblock, hotblock, hotblock_state, 0, ROT0, "NIX?", "Hot Blocks - Tetrix II", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/hotstuff.cpp b/src/mame/drivers/hotstuff.cpp index 4ff5e2d339e..2fae269a5be 100644 --- a/src/mame/drivers/hotstuff.cpp +++ b/src/mame/drivers/hotstuff.cpp @@ -126,7 +126,7 @@ ADDRESS_MAP_END static INPUT_PORTS_START( hotstuff ) INPUT_PORTS_END -static MACHINE_CONFIG_START( hotstuff, hotstuff_state ) +static MACHINE_CONFIG_START( hotstuff ) MCFG_CPU_ADD("maincpu", M68000, 16000000) MCFG_CPU_PROGRAM_MAP(hotstuff_map) @@ -153,4 +153,4 @@ ROM_START( hotstuff ) ROM_LOAD16_WORD_SWAP( "hot stuff symbol u8 (68000).bin", 0x00000, 0x80000, CRC(f154a157) SHA1(92ae0fb977e2dcc0377487d768f95c6e447e990b) ) ROM_END -GAME( ????, hotstuff, 0, hotstuff, hotstuff, driver_device, 0, ROT0, "Olympic Video Gaming", "Olympic Hot Stuff (TAS 5 Reel System)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +GAME( ????, hotstuff, 0, hotstuff, hotstuff, hotstuff_state, 0, ROT0, "Olympic Video Gaming", "Olympic Hot Stuff (TAS 5 Reel System)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/hp16500.cpp b/src/mame/drivers/hp16500.cpp index 4737c674b71..0a87fb13037 100644 --- a/src/mame/drivers/hp16500.cpp +++ b/src/mame/drivers/hp16500.cpp @@ -397,7 +397,7 @@ uint32_t hp16500_state::screen_update_hp16500(screen_device &screen, bitmap_rgb3 return 0; } -static MACHINE_CONFIG_START( hp1650, hp16500_state ) +static MACHINE_CONFIG_START( hp1650 ) /* basic machine hardware */ MCFG_CPU_ADD(MAINCPU_TAG, M68000, 10000000) MCFG_CPU_PROGRAM_MAP(hp1650_map) @@ -417,7 +417,7 @@ static MACHINE_CONFIG_START( hp1650, hp16500_state ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") MACHINE_CONFIG_END -static MACHINE_CONFIG_START( hp1651, hp16500_state ) +static MACHINE_CONFIG_START( hp1651 ) /* basic machine hardware */ MCFG_CPU_ADD(MAINCPU_TAG, M68000, 10000000) MCFG_CPU_PROGRAM_MAP(hp1651_map) @@ -437,7 +437,7 @@ static MACHINE_CONFIG_START( hp1651, hp16500_state ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") MACHINE_CONFIG_END -static MACHINE_CONFIG_START( hp16500a, hp16500_state ) +static MACHINE_CONFIG_START( hp16500a ) /* basic machine hardware */ MCFG_CPU_ADD(MAINCPU_TAG, M68000, 10000000) MCFG_CPU_PROGRAM_MAP(hp16500a_map) @@ -457,7 +457,7 @@ static MACHINE_CONFIG_START( hp16500a, hp16500_state ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") MACHINE_CONFIG_END -static MACHINE_CONFIG_START( hp16500, hp16500_state ) +static MACHINE_CONFIG_START( hp16500 ) /* basic machine hardware */ MCFG_CPU_ADD(MAINCPU_TAG, M68EC030, 25000000) MCFG_CPU_PROGRAM_MAP(hp16500_map) @@ -503,7 +503,7 @@ ROM_START( hp16500b ) ROM_LOAD32_BYTE( "16500-80017.bin", 0x000003, 0x008000, CRC(e0b1096b) SHA1(426bb9a4756d8087bded4f6b61365d733ffbb09a) ) ROM_END -COMP( 1989, hp1650b, 0, 0, hp1650, hp16500, driver_device, 0, "Hewlett Packard", "HP 1650b", MACHINE_NOT_WORKING|MACHINE_NO_SOUND) -COMP( 1989, hp1651b, 0, 0, hp1651, hp16500, driver_device, 0, "Hewlett Packard", "HP 1651b", MACHINE_NOT_WORKING|MACHINE_NO_SOUND) -COMP( 1991, hp165ka0, 0, 0, hp16500a, hp16500, driver_device, 0, "Hewlett Packard", "HP 16500a", MACHINE_NOT_WORKING|MACHINE_NO_SOUND) -COMP( 1991, hp16500b, 0, 0, hp16500, hp16500, driver_device, 0, "Hewlett Packard", "HP 16500b", MACHINE_NOT_WORKING|MACHINE_NO_SOUND) +COMP( 1989, hp1650b, 0, 0, hp1650, hp16500, hp16500_state, 0, "Hewlett Packard", "HP 1650b", MACHINE_NOT_WORKING|MACHINE_NO_SOUND) +COMP( 1989, hp1651b, 0, 0, hp1651, hp16500, hp16500_state, 0, "Hewlett Packard", "HP 1651b", MACHINE_NOT_WORKING|MACHINE_NO_SOUND) +COMP( 1991, hp165ka0, 0, 0, hp16500a, hp16500, hp16500_state, 0, "Hewlett Packard", "HP 16500a", MACHINE_NOT_WORKING|MACHINE_NO_SOUND) +COMP( 1991, hp16500b, 0, 0, hp16500, hp16500, hp16500_state, 0, "Hewlett Packard", "HP 16500b", MACHINE_NOT_WORKING|MACHINE_NO_SOUND) diff --git a/src/mame/drivers/hp48.cpp b/src/mame/drivers/hp48.cpp index 545aab99639..d703b139449 100644 --- a/src/mame/drivers/hp48.cpp +++ b/src/mame/drivers/hp48.cpp @@ -1257,7 +1257,7 @@ ADDRESS_MAP_END /*************************** driver ********************************/ -static MACHINE_CONFIG_START( hp48_common, hp48_state ) +static MACHINE_CONFIG_START( hp48_common ) /* cpu */ MCFG_CPU_ADD ( "maincpu", SATURN, 3937007 ) /* almost 4 MHz */ @@ -1352,10 +1352,10 @@ MACHINE_CONFIG_END COMP ( 1990, hp48sx, 0 , 0, hp48sx, hp48sx, hp48_state, hp48, "Hewlett Packard", "HP48SX", 0 ) -COMP ( 1991, hp48s , hp48sx, 0, hp48s, hp48sx, hp48_state, hp48, "Hewlett Packard", "HP48S", 0 ) +COMP ( 1991, hp48s , hp48sx, 0, hp48s, hp48sx, hp48_state, hp48, "Hewlett Packard", "HP48S", 0 ) COMP ( 1993, hp48gx, 0 , 0, hp48gx, hp48gx, hp48_state, hp48, "Hewlett Packard", "HP48GX", 0 ) -COMP ( 1993, hp48g , hp48gx, 0, hp48g, hp48gx, hp48_state, hp48, "Hewlett Packard", "HP48G", 0 ) +COMP ( 1993, hp48g , hp48gx, 0, hp48g, hp48gx, hp48_state, hp48, "Hewlett Packard", "HP48G", 0 ) COMP ( 1998, hp48gp, hp48gx, 0, hp48gp, hp48gx, hp48_state, hp48, "Hewlett Packard", "HP48G+", 0 ) -COMP ( 1999, hp49g , 0, 0, hp49g, hp49g, hp48_state, hp48, "Hewlett Packard", "HP49G", 0 ) -COMP ( 1995, hp38g , 0, 0, hp48g, hp48gx, hp48_state, hp48, "Hewlett Packard", "HP38G", 0 ) -COMP ( 2000, hp39g , 0, 0, hp48g, hp48gx, hp48_state, hp48, "Hewlett Packard", "HP39G", MACHINE_NOT_WORKING ) +COMP ( 1999, hp49g , 0, 0, hp49g, hp49g, hp48_state, hp48, "Hewlett Packard", "HP49G", 0 ) +COMP ( 1995, hp38g , 0, 0, hp48g, hp48gx, hp48_state, hp48, "Hewlett Packard", "HP38G", 0 ) +COMP ( 2000, hp39g , 0, 0, hp48g, hp48gx, hp48_state, hp48, "Hewlett Packard", "HP39G", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/hp49gp.cpp b/src/mame/drivers/hp49gp.cpp index 23dc2dd7cf9..a1592d9fcf0 100644 --- a/src/mame/drivers/hp49gp.cpp +++ b/src/mame/drivers/hp49gp.cpp @@ -276,7 +276,7 @@ DRIVER_INIT_MEMBER(hp49gp_state,hp49gp) lcd_spi_init(); } -static MACHINE_CONFIG_START( hp49gp, hp49gp_state ) +static MACHINE_CONFIG_START( hp49gp ) MCFG_CPU_ADD("maincpu", ARM9, 400000000) MCFG_CPU_PROGRAM_MAP(hp49gp_map) diff --git a/src/mame/drivers/hp64k.cpp b/src/mame/drivers/hp64k.cpp index 8338550fb0d..d545cf1a13a 100644 --- a/src/mame/drivers/hp64k.cpp +++ b/src/mame/drivers/hp64k.cpp @@ -171,249 +171,249 @@ class hp64k_state : public driver_device { public: - hp64k_state(const machine_config &mconfig, device_type type, const char *tag); - - virtual void driver_start() override; - //virtual void machine_start(); - virtual void video_start() override; - virtual void machine_reset() override; - - uint8_t hp64k_crtc_filter(uint8_t data); - DECLARE_WRITE16_MEMBER(hp64k_crtc_w); - DECLARE_WRITE_LINE_MEMBER(hp64k_crtc_drq_w); - DECLARE_WRITE_LINE_MEMBER(hp64k_crtc_vrtc_w); - - I8275_DRAW_CHARACTER_MEMBER(crtc_display_pixels); - - DECLARE_READ16_MEMBER(hp64k_rear_sw_r); - - IRQ_CALLBACK_MEMBER(hp64k_irq_callback); - void hp64k_update_irl(void); - DECLARE_WRITE16_MEMBER(hp64k_irl_mask_w); - - TIMER_DEVICE_CALLBACK_MEMBER(hp64k_kb_scan); - DECLARE_READ16_MEMBER(hp64k_kb_r); - - TIMER_DEVICE_CALLBACK_MEMBER(hp64k_line_sync); - DECLARE_READ16_MEMBER(hp64k_deltat_r); - DECLARE_WRITE16_MEMBER(hp64k_deltat_w); - - DECLARE_READ16_MEMBER(hp64k_slot_r); - DECLARE_WRITE16_MEMBER(hp64k_slot_w); - DECLARE_WRITE16_MEMBER(hp64k_slot_sel_w); - - DECLARE_READ16_MEMBER(hp64k_flp_r); - DECLARE_WRITE16_MEMBER(hp64k_flp_w); - DECLARE_WRITE_LINE_MEMBER(hp64k_flp_drq_w); - DECLARE_WRITE_LINE_MEMBER(hp64k_flp_intrq_w); - void hp64k_update_floppy_dma(void); - void hp64k_update_floppy_irq(void); - void hp64k_update_drv_ctrl(void); - DECLARE_WRITE8_MEMBER(hp64k_floppy0_rdy); - DECLARE_WRITE8_MEMBER(hp64k_floppy1_rdy); - void hp64k_floppy_idx_cb(floppy_image_device *floppy , int state); - void hp64k_floppy_wpt_cb(floppy_image_device *floppy , int state); - - DECLARE_READ16_MEMBER(hp64k_usart_r); - DECLARE_WRITE16_MEMBER(hp64k_usart_w); - DECLARE_WRITE_LINE_MEMBER(hp64k_rxrdy_w); - DECLARE_WRITE_LINE_MEMBER(hp64k_txrdy_w); - DECLARE_WRITE_LINE_MEMBER(hp64k_txd_w); - DECLARE_WRITE_LINE_MEMBER(hp64k_dtr_w); - DECLARE_WRITE_LINE_MEMBER(hp64k_rts_w); - DECLARE_WRITE16_MEMBER(hp64k_loopback_w); - void hp64k_update_loopback(void); - DECLARE_WRITE_LINE_MEMBER(hp64k_rs232_rxd_w); - DECLARE_WRITE_LINE_MEMBER(hp64k_rs232_dcd_w); - DECLARE_WRITE_LINE_MEMBER(hp64k_rs232_cts_w); - - DECLARE_WRITE16_MEMBER(hp64k_beep_w); - TIMER_DEVICE_CALLBACK_MEMBER(hp64k_beeper_off); - - DECLARE_WRITE_LINE_MEMBER(hp64k_baud_clk_w); + hp64k_state(const machine_config &mconfig, device_type type, const char *tag); + + virtual void driver_start() override; + //virtual void machine_start(); + virtual void video_start() override; + virtual void machine_reset() override; + + uint8_t hp64k_crtc_filter(uint8_t data); + DECLARE_WRITE16_MEMBER(hp64k_crtc_w); + DECLARE_WRITE_LINE_MEMBER(hp64k_crtc_drq_w); + DECLARE_WRITE_LINE_MEMBER(hp64k_crtc_vrtc_w); + + I8275_DRAW_CHARACTER_MEMBER(crtc_display_pixels); + + DECLARE_READ16_MEMBER(hp64k_rear_sw_r); + + IRQ_CALLBACK_MEMBER(hp64k_irq_callback); + void hp64k_update_irl(void); + DECLARE_WRITE16_MEMBER(hp64k_irl_mask_w); + + TIMER_DEVICE_CALLBACK_MEMBER(hp64k_kb_scan); + DECLARE_READ16_MEMBER(hp64k_kb_r); + + TIMER_DEVICE_CALLBACK_MEMBER(hp64k_line_sync); + DECLARE_READ16_MEMBER(hp64k_deltat_r); + DECLARE_WRITE16_MEMBER(hp64k_deltat_w); + + DECLARE_READ16_MEMBER(hp64k_slot_r); + DECLARE_WRITE16_MEMBER(hp64k_slot_w); + DECLARE_WRITE16_MEMBER(hp64k_slot_sel_w); + + DECLARE_READ16_MEMBER(hp64k_flp_r); + DECLARE_WRITE16_MEMBER(hp64k_flp_w); + DECLARE_WRITE_LINE_MEMBER(hp64k_flp_drq_w); + DECLARE_WRITE_LINE_MEMBER(hp64k_flp_intrq_w); + void hp64k_update_floppy_dma(void); + void hp64k_update_floppy_irq(void); + void hp64k_update_drv_ctrl(void); + DECLARE_WRITE8_MEMBER(hp64k_floppy0_rdy); + DECLARE_WRITE8_MEMBER(hp64k_floppy1_rdy); + void hp64k_floppy_idx_cb(floppy_image_device *floppy , int state); + void hp64k_floppy_wpt_cb(floppy_image_device *floppy , int state); + + DECLARE_READ16_MEMBER(hp64k_usart_r); + DECLARE_WRITE16_MEMBER(hp64k_usart_w); + DECLARE_WRITE_LINE_MEMBER(hp64k_rxrdy_w); + DECLARE_WRITE_LINE_MEMBER(hp64k_txrdy_w); + DECLARE_WRITE_LINE_MEMBER(hp64k_txd_w); + DECLARE_WRITE_LINE_MEMBER(hp64k_dtr_w); + DECLARE_WRITE_LINE_MEMBER(hp64k_rts_w); + DECLARE_WRITE16_MEMBER(hp64k_loopback_w); + void hp64k_update_loopback(void); + DECLARE_WRITE_LINE_MEMBER(hp64k_rs232_rxd_w); + DECLARE_WRITE_LINE_MEMBER(hp64k_rs232_dcd_w); + DECLARE_WRITE_LINE_MEMBER(hp64k_rs232_cts_w); + + DECLARE_WRITE16_MEMBER(hp64k_beep_w); + TIMER_DEVICE_CALLBACK_MEMBER(hp64k_beeper_off); + + DECLARE_WRITE_LINE_MEMBER(hp64k_baud_clk_w); private: - required_device m_cpu; - required_device m_crtc; - required_device m_palette; - required_ioport m_io_key0; - required_ioport m_io_key1; - required_ioport m_io_key2; - required_ioport m_io_key3; - required_device m_fdc; - required_device m_floppy0; - required_device m_floppy1; - required_device m_ss0; - required_device m_ss1; - required_ioport m_rear_panel_sw; - required_ioport m_rs232_sw; - required_device m_beeper; - required_device m_beep_timer; - required_device m_baud_rate; - required_ioport m_s5_sw; - required_device m_uart; - required_device m_rs232; - - // Character generator - const uint8_t *m_chargen; - - uint32_t m_crtc_ptr; - bool m_crtc_drq; - bool m_vrtc; - - // Interrupt handling - uint8_t m_irl_mask; - uint8_t m_irl_pending; - - // State of keyboard - ioport_value m_kb_state[ 4 ]; - uint8_t m_kb_row_col; - bool m_kb_scan_on; - bool m_kb_pressed; - - // Slot selection - std::vector m_low32k_ram; - uint8_t m_slot_select; - uint8_t m_slot_map; - - // Floppy I/F - uint8_t m_floppy_in_latch_msb; // U23 - uint8_t m_floppy_in_latch_lsb; // U38 - uint8_t m_floppy_out_latch_msb; // U22 - uint8_t m_floppy_out_latch_lsb; // U37 - uint8_t m_floppy_if_ctrl; // U24 - bool m_floppy_dmaen; - bool m_floppy_dmai; - bool m_floppy_mdci; - bool m_floppy_intrq; - bool m_floppy_drq; - bool m_floppy0_wpt; - bool m_floppy1_wpt; - uint8_t m_floppy_drv_ctrl; // U39 - uint8_t m_floppy_status; // U25 - - typedef enum { - HP64K_FLPST_IDLE, - HP64K_FLPST_DMAWR1, - HP64K_FLPST_DMAWR2, - HP64K_FLPST_DMARD1, - HP64K_FLPST_DMARD2 - } floppy_state_t; - - floppy_state_t m_floppy_if_state; - floppy_image_device *m_current_floppy; - - // RS232 I/F - bool m_16x_clk; - bool m_baud_clk; - uint8_t m_16x_div; - bool m_loopback; - bool m_txd_state; - bool m_dtr_state; - bool m_rts_state; + required_device m_cpu; + required_device m_crtc; + required_device m_palette; + required_ioport m_io_key0; + required_ioport m_io_key1; + required_ioport m_io_key2; + required_ioport m_io_key3; + required_device m_fdc; + required_device m_floppy0; + required_device m_floppy1; + required_device m_ss0; + required_device m_ss1; + required_ioport m_rear_panel_sw; + required_ioport m_rs232_sw; + required_device m_beeper; + required_device m_beep_timer; + required_device m_baud_rate; + required_ioport m_s5_sw; + required_device m_uart; + required_device m_rs232; + + // Character generator + const uint8_t *m_chargen; + + uint32_t m_crtc_ptr; + bool m_crtc_drq; + bool m_vrtc; + + // Interrupt handling + uint8_t m_irl_mask; + uint8_t m_irl_pending; + + // State of keyboard + ioport_value m_kb_state[ 4 ]; + uint8_t m_kb_row_col; + bool m_kb_scan_on; + bool m_kb_pressed; + + // Slot selection + std::vector m_low32k_ram; + uint8_t m_slot_select; + uint8_t m_slot_map; + + // Floppy I/F + uint8_t m_floppy_in_latch_msb; // U23 + uint8_t m_floppy_in_latch_lsb; // U38 + uint8_t m_floppy_out_latch_msb; // U22 + uint8_t m_floppy_out_latch_lsb; // U37 + uint8_t m_floppy_if_ctrl; // U24 + bool m_floppy_dmaen; + bool m_floppy_dmai; + bool m_floppy_mdci; + bool m_floppy_intrq; + bool m_floppy_drq; + bool m_floppy0_wpt; + bool m_floppy1_wpt; + uint8_t m_floppy_drv_ctrl; // U39 + uint8_t m_floppy_status; // U25 + + typedef enum { + HP64K_FLPST_IDLE, + HP64K_FLPST_DMAWR1, + HP64K_FLPST_DMAWR2, + HP64K_FLPST_DMARD1, + HP64K_FLPST_DMARD2 + } floppy_state_t; + + floppy_state_t m_floppy_if_state; + floppy_image_device *m_current_floppy; + + // RS232 I/F + bool m_16x_clk; + bool m_baud_clk; + uint8_t m_16x_div; + bool m_loopback; + bool m_txd_state; + bool m_dtr_state; + bool m_rts_state; }; static ADDRESS_MAP_START(cpu_mem_map , AS_PROGRAM , 16 , hp64k_state) - AM_RANGE(0x0000 , 0x3fff) AM_ROM - AM_RANGE(0x4000 , 0x7fff) AM_READWRITE(hp64k_slot_r , hp64k_slot_w) - AM_RANGE(0x8000 , 0x8001) AM_WRITE(hp64k_crtc_w) - AM_RANGE(0x8002 , 0xffff) AM_RAM + AM_RANGE(0x0000 , 0x3fff) AM_ROM + AM_RANGE(0x4000 , 0x7fff) AM_READWRITE(hp64k_slot_r , hp64k_slot_w) + AM_RANGE(0x8000 , 0x8001) AM_WRITE(hp64k_crtc_w) + AM_RANGE(0x8002 , 0xffff) AM_RAM ADDRESS_MAP_END static ADDRESS_MAP_START(cpu_io_map , AS_IO , 16 , hp64k_state) - // PA = 0, IC = [0..3] - // Keyboard input - AM_RANGE(HP_MAKE_IOADDR(0 , 0) , HP_MAKE_IOADDR(0 , 3)) AM_READ(hp64k_kb_r) - // PA = 2, IC = [0..3] - // Line sync interrupt clear/watchdog reset - AM_RANGE(HP_MAKE_IOADDR(2 , 0) , HP_MAKE_IOADDR(2 , 3)) AM_READWRITE(hp64k_deltat_r , hp64k_deltat_w) - // PA = 4, IC = [0..3] - // Floppy I/F - AM_RANGE(HP_MAKE_IOADDR(4 , 0) , HP_MAKE_IOADDR(4 , 3)) AM_READWRITE(hp64k_flp_r , hp64k_flp_w) - // PA = 5, IC = [0..3] - // Write to USART - AM_RANGE(HP_MAKE_IOADDR(5 , 0) , HP_MAKE_IOADDR(5 , 3)) AM_WRITE(hp64k_usart_w) - // PA = 6, IC = [0..3] - // Read from USART - AM_RANGE(HP_MAKE_IOADDR(6 , 0) , HP_MAKE_IOADDR(6 , 3)) AM_READ(hp64k_usart_r) - // PA = 7, IC = 2 - // Rear-panel switches and loopback relay control - AM_RANGE(HP_MAKE_IOADDR(7 , 2) , HP_MAKE_IOADDR(7 , 2)) AM_READWRITE(hp64k_rear_sw_r , hp64k_loopback_w) - // PA = 9, IC = [0..3] - // Beeper control & interrupt status read - AM_RANGE(HP_MAKE_IOADDR(9 , 0) , HP_MAKE_IOADDR(9 , 3)) AM_WRITE(hp64k_beep_w) - // PA = 10, IC = [0..3] - // Slot selection - AM_RANGE(HP_MAKE_IOADDR(10 , 0) , HP_MAKE_IOADDR(10 , 3)) AM_WRITE(hp64k_slot_sel_w) - // PA = 12, IC = [0..3] - // Interrupt mask - AM_RANGE(HP_MAKE_IOADDR(12 , 0) , HP_MAKE_IOADDR(12 , 3)) AM_WRITE(hp64k_irl_mask_w) + // PA = 0, IC = [0..3] + // Keyboard input + AM_RANGE(HP_MAKE_IOADDR(0 , 0) , HP_MAKE_IOADDR(0 , 3)) AM_READ(hp64k_kb_r) + // PA = 2, IC = [0..3] + // Line sync interrupt clear/watchdog reset + AM_RANGE(HP_MAKE_IOADDR(2 , 0) , HP_MAKE_IOADDR(2 , 3)) AM_READWRITE(hp64k_deltat_r , hp64k_deltat_w) + // PA = 4, IC = [0..3] + // Floppy I/F + AM_RANGE(HP_MAKE_IOADDR(4 , 0) , HP_MAKE_IOADDR(4 , 3)) AM_READWRITE(hp64k_flp_r , hp64k_flp_w) + // PA = 5, IC = [0..3] + // Write to USART + AM_RANGE(HP_MAKE_IOADDR(5 , 0) , HP_MAKE_IOADDR(5 , 3)) AM_WRITE(hp64k_usart_w) + // PA = 6, IC = [0..3] + // Read from USART + AM_RANGE(HP_MAKE_IOADDR(6 , 0) , HP_MAKE_IOADDR(6 , 3)) AM_READ(hp64k_usart_r) + // PA = 7, IC = 2 + // Rear-panel switches and loopback relay control + AM_RANGE(HP_MAKE_IOADDR(7 , 2) , HP_MAKE_IOADDR(7 , 2)) AM_READWRITE(hp64k_rear_sw_r , hp64k_loopback_w) + // PA = 9, IC = [0..3] + // Beeper control & interrupt status read + AM_RANGE(HP_MAKE_IOADDR(9 , 0) , HP_MAKE_IOADDR(9 , 3)) AM_WRITE(hp64k_beep_w) + // PA = 10, IC = [0..3] + // Slot selection + AM_RANGE(HP_MAKE_IOADDR(10 , 0) , HP_MAKE_IOADDR(10 , 3)) AM_WRITE(hp64k_slot_sel_w) + // PA = 12, IC = [0..3] + // Interrupt mask + AM_RANGE(HP_MAKE_IOADDR(12 , 0) , HP_MAKE_IOADDR(12 , 3)) AM_WRITE(hp64k_irl_mask_w) ADDRESS_MAP_END hp64k_state::hp64k_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig , type , tag), - m_cpu(*this , "cpu"), - m_crtc(*this , "crtc"), - m_palette(*this , "palette"), - m_io_key0(*this , "KEY0"), - m_io_key1(*this , "KEY1"), - m_io_key2(*this , "KEY2"), - m_io_key3(*this , "KEY3"), - m_fdc(*this , "fdc"), - m_floppy0(*this , "fdc:0"), - m_floppy1(*this , "fdc:1"), - m_ss0(*this , "fdc_rdy0"), - m_ss1(*this , "fdc_rdy1"), - m_rear_panel_sw(*this , "rear_sw"), - m_rs232_sw(*this , "rs232_sw"), - m_beeper(*this , "beeper"), - m_beep_timer(*this , "beep_timer"), - m_baud_rate(*this , "baud_rate"), - m_s5_sw(*this , "s5_sw"), - m_uart(*this , "uart"), - m_rs232(*this , "rs232") + : driver_device(mconfig , type , tag), + m_cpu(*this , "cpu"), + m_crtc(*this , "crtc"), + m_palette(*this , "palette"), + m_io_key0(*this , "KEY0"), + m_io_key1(*this , "KEY1"), + m_io_key2(*this , "KEY2"), + m_io_key3(*this , "KEY3"), + m_fdc(*this , "fdc"), + m_floppy0(*this , "fdc:0"), + m_floppy1(*this , "fdc:1"), + m_ss0(*this , "fdc_rdy0"), + m_ss1(*this , "fdc_rdy1"), + m_rear_panel_sw(*this , "rear_sw"), + m_rs232_sw(*this , "rs232_sw"), + m_beeper(*this , "beeper"), + m_beep_timer(*this , "beep_timer"), + m_baud_rate(*this , "baud_rate"), + m_s5_sw(*this , "s5_sw"), + m_uart(*this , "uart"), + m_rs232(*this , "rs232") { } void hp64k_state::driver_start() { - // 32kW for lower RAM - m_low32k_ram.resize(0x8000); + // 32kW for lower RAM + m_low32k_ram.resize(0x8000); } void hp64k_state::video_start() { - m_chargen = memregion("chargen")->base(); + m_chargen = memregion("chargen")->base(); } void hp64k_state::machine_reset() { - m_crtc_drq = false; - m_vrtc = false; - m_crtc_ptr = 0; - m_irl_mask = 0; - m_irl_pending = 0; - memset(&m_kb_state[ 0 ] , 0 , sizeof(m_kb_state)); - m_kb_row_col = 0; - m_kb_scan_on = true; - m_slot_select = 0; - m_slot_map = 3; - m_floppy_if_ctrl = ~0; - m_floppy_dmaen = false; - m_floppy_dmai = false; - m_floppy_mdci = false; - m_floppy_intrq = false; - m_floppy_drv_ctrl = ~0; - m_floppy_if_state = HP64K_FLPST_IDLE; - m_current_floppy = nullptr; - m_floppy0_wpt = false; - m_floppy1_wpt = false; - m_beeper->set_state(0); - m_baud_rate->str_w((m_s5_sw->read() >> 1) & 0xf); - m_16x_clk = (m_rs232_sw->read() & 0x02) != 0; - m_loopback = false; - m_txd_state = true; - m_dtr_state = true; - m_rts_state = true; + m_crtc_drq = false; + m_vrtc = false; + m_crtc_ptr = 0; + m_irl_mask = 0; + m_irl_pending = 0; + memset(&m_kb_state[ 0 ] , 0 , sizeof(m_kb_state)); + m_kb_row_col = 0; + m_kb_scan_on = true; + m_slot_select = 0; + m_slot_map = 3; + m_floppy_if_ctrl = ~0; + m_floppy_dmaen = false; + m_floppy_dmai = false; + m_floppy_mdci = false; + m_floppy_intrq = false; + m_floppy_drv_ctrl = ~0; + m_floppy_if_state = HP64K_FLPST_IDLE; + m_current_floppy = nullptr; + m_floppy0_wpt = false; + m_floppy1_wpt = false; + m_beeper->set_state(0); + m_baud_rate->str_w((m_s5_sw->read() >> 1) & 0xf); + m_16x_clk = (m_rs232_sw->read() & 0x02) != 0; + m_loopback = false; + m_txd_state = true; + m_dtr_state = true; + m_rts_state = true; } @@ -1008,419 +1008,418 @@ WRITE_LINE_MEMBER(hp64k_state::hp64k_dtr_w) WRITE_LINE_MEMBER(hp64k_state::hp64k_rts_w) { - if (BIT(m_s5_sw->read() , 0)) { - // Full duplex, RTS/ = 0 - state = 0; - } - m_rts_state = state; - if (m_loopback) { - m_uart->write_cts(state); - } - m_rs232->write_rts(state); + if (BIT(m_s5_sw->read() , 0)) { + // Full duplex, RTS/ = 0 + state = 0; + } + m_rts_state = state; + if (m_loopback) { + m_uart->write_cts(state); + } + m_rs232->write_rts(state); } WRITE16_MEMBER(hp64k_state::hp64k_loopback_w) { - m_loopback = BIT(data , 11); - hp64k_update_loopback(); + m_loopback = BIT(data , 11); + hp64k_update_loopback(); } void hp64k_state::hp64k_update_loopback(void) { - if (m_loopback) { - m_uart->write_rxd(m_txd_state); - m_uart->write_dsr(m_dtr_state); - m_uart->write_cts(m_rts_state); - } else { - m_uart->write_rxd(m_rs232->rxd_r()); - m_uart->write_dsr(m_rs232->dcd_r()); - m_uart->write_cts(m_rs232->cts_r()); - } + if (m_loopback) { + m_uart->write_rxd(m_txd_state); + m_uart->write_dsr(m_dtr_state); + m_uart->write_cts(m_rts_state); + } else { + m_uart->write_rxd(m_rs232->rxd_r()); + m_uart->write_dsr(m_rs232->dcd_r()); + m_uart->write_cts(m_rs232->cts_r()); + } } WRITE_LINE_MEMBER(hp64k_state::hp64k_rs232_rxd_w) { - if (!m_loopback) { - m_uart->write_rxd(state); - } + if (!m_loopback) { + m_uart->write_rxd(state); + } } WRITE_LINE_MEMBER(hp64k_state::hp64k_rs232_dcd_w) { - if (!m_loopback) { - m_uart->write_dsr(state); - } + if (!m_loopback) { + m_uart->write_dsr(state); + } } WRITE_LINE_MEMBER(hp64k_state::hp64k_rs232_cts_w) { - if (!m_loopback) { - m_uart->write_cts(state); - } + if (!m_loopback) { + m_uart->write_cts(state); + } } WRITE16_MEMBER(hp64k_state::hp64k_beep_w) { - if (!BIT(offset , 0)) { - m_beeper->set_state(1); - // Duration is bogus: in the real hw envelope decays exponentially with RC=~136 ms - m_beep_timer->adjust(attotime::from_msec(130)); - } + if (!BIT(offset , 0)) { + m_beeper->set_state(1); + // Duration is bogus: in the real hw envelope decays exponentially with RC=~136 ms + m_beep_timer->adjust(attotime::from_msec(130)); + } } TIMER_DEVICE_CALLBACK_MEMBER(hp64k_state::hp64k_beeper_off) { - m_beeper->set_state(0); + m_beeper->set_state(0); } WRITE_LINE_MEMBER(hp64k_state::hp64k_baud_clk_w) { - if (!m_16x_clk) { - if (state && !m_baud_clk) { - m_16x_div++; - } - m_baud_clk = !!state; - state = BIT(m_16x_div , 3); + if (!m_16x_clk) { + if (state && !m_baud_clk) { + m_16x_div++; } - m_uart->write_txc(state); - m_uart->write_rxc(state); + m_baud_clk = !!state; + state = BIT(m_16x_div , 3); + } + m_uart->write_txc(state); + m_uart->write_rxc(state); } static INPUT_PORTS_START(hp64k) - // Keyboard is arranged in a 8 x 16 matrix. Of the 128 possible positions, only 77 are used. - // For key arrangement on the matrix, see [1] pg 334 - // Keys are mapped on bit b of KEYn - // where b = (row & 1) << 4 + column, n = row >> 1 - // column = [0..15] - // row = [0..7] - PORT_START("KEY0") - PORT_BIT(BIT_MASK(0) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_LCONTROL) PORT_CHAR(UCHAR_SHIFT_2) - PORT_BIT(BIT_MASK(1) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_A) PORT_CHAR('a') PORT_CHAR('A') - PORT_BIT(BIT_MASK(2) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_W) PORT_CHAR('w') PORT_CHAR('W') - PORT_BIT(BIT_MASK(3) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_E) PORT_CHAR('e') PORT_CHAR('E') - PORT_BIT(BIT_MASK(4) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_R) PORT_CHAR('r') PORT_CHAR('R') - PORT_BIT(BIT_MASK(5) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_T) PORT_CHAR('t') PORT_CHAR('T') - PORT_BIT(BIT_MASK(6) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_Y) PORT_CHAR('y') PORT_CHAR('Y') - PORT_BIT(BIT_MASK(7) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_U) PORT_CHAR('u') PORT_CHAR('U') - PORT_BIT(BIT_MASK(8) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_I) PORT_CHAR('i') PORT_CHAR('I') - PORT_BIT(BIT_MASK(9) , IP_ACTIVE_HIGH , IPT_UNUSED) - PORT_BIT(BIT_MASK(10) , IP_ACTIVE_HIGH , IPT_UNUSED) - PORT_BIT(BIT_MASK(11) , IP_ACTIVE_HIGH , IPT_UNUSED) - PORT_BIT(BIT_MASK(12) , IP_ACTIVE_HIGH , IPT_UNUSED) - PORT_BIT(BIT_MASK(13) , IP_ACTIVE_HIGH , IPT_UNUSED) - PORT_BIT(BIT_MASK(14) , IP_ACTIVE_HIGH , IPT_UNUSED) - PORT_BIT(BIT_MASK(15) , IP_ACTIVE_HIGH , IPT_UNUSED) - PORT_BIT(BIT_MASK(16) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_TAB) PORT_CHAR('\t') - PORT_BIT(BIT_MASK(17) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_Q) PORT_CHAR('q') PORT_CHAR('Q') - PORT_BIT(BIT_MASK(18) , IP_ACTIVE_HIGH , IPT_UNUSED) - PORT_BIT(BIT_MASK(19) , IP_ACTIVE_HIGH , IPT_UNUSED) - PORT_BIT(BIT_MASK(20) , IP_ACTIVE_HIGH , IPT_UNUSED) - PORT_BIT(BIT_MASK(21) , IP_ACTIVE_HIGH , IPT_UNUSED) - PORT_BIT(BIT_MASK(22) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_7) PORT_CHAR('7') PORT_CHAR('\'') - PORT_BIT(BIT_MASK(23) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_8) PORT_CHAR('8') PORT_CHAR('(') - PORT_BIT(BIT_MASK(24) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_CHAR(')') - PORT_BIT(BIT_MASK(25) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_0) PORT_CHAR('0') - PORT_BIT(BIT_MASK(26) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_MINUS) PORT_CHAR('-') PORT_CHAR('=') - PORT_BIT(BIT_MASK(27) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_EQUALS) PORT_CHAR('^') PORT_CHAR('~') - PORT_BIT(BIT_MASK(28) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_TILDE) PORT_CHAR('\\') PORT_CHAR('|') - PORT_BIT(BIT_MASK(29) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_BACKSPACE) PORT_CHAR(8) - PORT_BIT(BIT_MASK(30) , IP_ACTIVE_HIGH , IPT_UNUSED) - PORT_BIT(BIT_MASK(31) , IP_ACTIVE_HIGH , IPT_UNUSED) - - PORT_START("KEY1") - PORT_BIT(BIT_MASK(0) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_1) PORT_CHAR('1') PORT_CHAR('!') - PORT_BIT(BIT_MASK(1) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_CHAR('"') - PORT_BIT(BIT_MASK(2) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_3) PORT_CHAR('3') PORT_CHAR('#') - PORT_BIT(BIT_MASK(3) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_4) PORT_CHAR('4') PORT_CHAR('$') - PORT_BIT(BIT_MASK(4) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_5) PORT_CHAR('5') PORT_CHAR('%') - PORT_BIT(BIT_MASK(5) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHAR('&') - PORT_BIT(BIT_MASK(6) , IP_ACTIVE_HIGH , IPT_UNUSED) - PORT_BIT(BIT_MASK(7) , IP_ACTIVE_HIGH , IPT_UNUSED) - PORT_BIT(BIT_MASK(8) , IP_ACTIVE_HIGH , IPT_UNUSED) - PORT_BIT(BIT_MASK(9) , IP_ACTIVE_HIGH , IPT_UNUSED) - PORT_BIT(BIT_MASK(10) , IP_ACTIVE_HIGH , IPT_UNUSED) - PORT_BIT(BIT_MASK(11) , IP_ACTIVE_HIGH , IPT_UNUSED) - PORT_BIT(BIT_MASK(12) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_F9) PORT_NAME("RECALL") - PORT_BIT(BIT_MASK(13) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_F10) PORT_NAME("CLRLINE") - PORT_BIT(BIT_MASK(14) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_F11) PORT_NAME("CAPS") - PORT_BIT(BIT_MASK(15) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_F12) PORT_NAME("RESET") - PORT_BIT(BIT_MASK(16) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_F1) PORT_NAME("SK1") - PORT_BIT(BIT_MASK(17) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_F2) PORT_NAME("SK2") - PORT_BIT(BIT_MASK(18) , IP_ACTIVE_HIGH , IPT_UNUSED) - PORT_BIT(BIT_MASK(19) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_F3) PORT_NAME("SK3") - PORT_BIT(BIT_MASK(20) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_F4) PORT_NAME("SK4") - PORT_BIT(BIT_MASK(21) , IP_ACTIVE_HIGH , IPT_UNUSED) - PORT_BIT(BIT_MASK(22) , IP_ACTIVE_HIGH , IPT_UNUSED) - PORT_BIT(BIT_MASK(23) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_F5) PORT_NAME("SK5") - PORT_BIT(BIT_MASK(24) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_F6) PORT_NAME("SK6") - PORT_BIT(BIT_MASK(25) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_F7) PORT_NAME("SK7") - PORT_BIT(BIT_MASK(26) , IP_ACTIVE_HIGH , IPT_UNUSED) - PORT_BIT(BIT_MASK(27) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_F8) PORT_NAME("SK8") - PORT_BIT(BIT_MASK(28) , IP_ACTIVE_HIGH , IPT_UNUSED) - PORT_BIT(BIT_MASK(29) , IP_ACTIVE_HIGH , IPT_UNUSED) - PORT_BIT(BIT_MASK(30) , IP_ACTIVE_HIGH , IPT_UNUSED) - PORT_BIT(BIT_MASK(31) , IP_ACTIVE_HIGH , IPT_UNUSED) - - PORT_START("KEY2") - PORT_BIT(BIT_MASK(0) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_LSHIFT) PORT_CHAR(UCHAR_SHIFT_1) - PORT_BIT(BIT_MASK(1) , IP_ACTIVE_HIGH , IPT_UNUSED) - PORT_BIT(BIT_MASK(2) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_S) PORT_CHAR('s') PORT_CHAR('S') - PORT_BIT(BIT_MASK(3) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_D) PORT_CHAR('d') PORT_CHAR('D') - PORT_BIT(BIT_MASK(4) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_F) PORT_CHAR('f') PORT_CHAR('F') - PORT_BIT(BIT_MASK(5) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_G) PORT_CHAR('g') PORT_CHAR('G') - PORT_BIT(BIT_MASK(6) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_H) PORT_CHAR('h') PORT_CHAR('H') - PORT_BIT(BIT_MASK(7) , IP_ACTIVE_HIGH , IPT_UNUSED) - PORT_BIT(BIT_MASK(8) , IP_ACTIVE_HIGH , IPT_UNUSED) - PORT_BIT(BIT_MASK(9) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_O) PORT_CHAR('o') PORT_CHAR('O') - PORT_BIT(BIT_MASK(10) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_P) PORT_CHAR('p') PORT_CHAR('P') - PORT_BIT(BIT_MASK(11) , IP_ACTIVE_HIGH , IPT_UNUSED) - PORT_BIT(BIT_MASK(12) , IP_ACTIVE_HIGH , IPT_UNUSED) - PORT_BIT(BIT_MASK(13) , IP_ACTIVE_HIGH , IPT_UNUSED) - PORT_BIT(BIT_MASK(14) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_INSERT) PORT_NAME("INSCHAR") - PORT_BIT(BIT_MASK(15) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_DEL) PORT_NAME("DELCHAR") - PORT_BIT(BIT_MASK(16) , IP_ACTIVE_HIGH , IPT_UNUSED) - PORT_BIT(BIT_MASK(17) , IP_ACTIVE_HIGH , IPT_UNUSED) - PORT_BIT(BIT_MASK(18) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_Z) PORT_CHAR('z') PORT_CHAR('Z') - PORT_BIT(BIT_MASK(19) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_X) PORT_CHAR('x') PORT_CHAR('X') - PORT_BIT(BIT_MASK(20) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_C) PORT_CHAR('c') PORT_CHAR('C') - PORT_BIT(BIT_MASK(21) , IP_ACTIVE_HIGH , IPT_UNUSED) - PORT_BIT(BIT_MASK(22) , IP_ACTIVE_HIGH , IPT_UNUSED) - PORT_BIT(BIT_MASK(23) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_J) PORT_CHAR('j') PORT_CHAR('J') - PORT_BIT(BIT_MASK(24) , IP_ACTIVE_HIGH , IPT_UNUSED) - PORT_BIT(BIT_MASK(25) , IP_ACTIVE_HIGH , IPT_UNUSED) - PORT_BIT(BIT_MASK(26) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_OPENBRACE) PORT_CHAR('@') PORT_CHAR('`') - PORT_BIT(BIT_MASK(27) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_CLOSEBRACE) PORT_CHAR('[') PORT_CHAR('{') - PORT_BIT(BIT_MASK(28) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_BACKSLASH2) PORT_CHAR('_') PORT_CHAR(UCHAR_MAMEKEY(DEL)) - PORT_BIT(BIT_MASK(29) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_HOME) PORT_NAME("ROLLUP") - PORT_BIT(BIT_MASK(30) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_UP) PORT_CHAR(UCHAR_MAMEKEY(UP)) - PORT_BIT(BIT_MASK(31) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_PGDN) PORT_NAME("NEXTPG") - - PORT_START("KEY3") - PORT_BIT(BIT_MASK(0) , IP_ACTIVE_HIGH , IPT_UNUSED) - PORT_BIT(BIT_MASK(1) , IP_ACTIVE_HIGH , IPT_UNUSED) - PORT_BIT(BIT_MASK(2) , IP_ACTIVE_HIGH , IPT_UNUSED) - PORT_BIT(BIT_MASK(3) , IP_ACTIVE_HIGH , IPT_UNUSED) - PORT_BIT(BIT_MASK(4) , IP_ACTIVE_HIGH , IPT_UNUSED) - PORT_BIT(BIT_MASK(5) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_V) PORT_CHAR('v') PORT_CHAR('V') - PORT_BIT(BIT_MASK(6) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_B) PORT_CHAR('b') PORT_CHAR('B') - PORT_BIT(BIT_MASK(7) , IP_ACTIVE_HIGH , IPT_UNUSED) - PORT_BIT(BIT_MASK(8) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_K) PORT_CHAR('k') PORT_CHAR('K') - PORT_BIT(BIT_MASK(9) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_L) PORT_CHAR('l') PORT_CHAR('L') - PORT_BIT(BIT_MASK(10) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_COLON) PORT_CHAR(';') PORT_CHAR('+') - PORT_BIT(BIT_MASK(11) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_QUOTE) PORT_CHAR(':') PORT_CHAR('*') - PORT_BIT(BIT_MASK(12) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_BACKSLASH) PORT_CHAR(']') PORT_CHAR('}') - PORT_BIT(BIT_MASK(13) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_ENTER) PORT_CHAR(13) - PORT_BIT(BIT_MASK(14) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_LEFT) PORT_CHAR(UCHAR_MAMEKEY(LEFT)) - PORT_BIT(BIT_MASK(15) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_RIGHT) PORT_CHAR(UCHAR_MAMEKEY(RIGHT)) - PORT_BIT(BIT_MASK(16) , IP_ACTIVE_HIGH , IPT_UNUSED) - PORT_BIT(BIT_MASK(17) , IP_ACTIVE_HIGH , IPT_UNUSED) - PORT_BIT(BIT_MASK(18) , IP_ACTIVE_HIGH , IPT_UNUSED) - PORT_BIT(BIT_MASK(19) , IP_ACTIVE_HIGH , IPT_UNUSED) - PORT_BIT(BIT_MASK(20) , IP_ACTIVE_HIGH , IPT_UNUSED) - PORT_BIT(BIT_MASK(21) , IP_ACTIVE_HIGH , IPT_UNUSED) - PORT_BIT(BIT_MASK(22) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ') - PORT_BIT(BIT_MASK(23) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_N) PORT_CHAR('n') PORT_CHAR('N') - PORT_BIT(BIT_MASK(24) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_M) PORT_CHAR('m') PORT_CHAR('M') - PORT_BIT(BIT_MASK(25) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') PORT_CHAR('<') - PORT_BIT(BIT_MASK(26) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR('>') - PORT_BIT(BIT_MASK(27) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_SLASH) PORT_CHAR('/') PORT_CHAR('?') - PORT_BIT(BIT_MASK(28) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_RSHIFT) PORT_CHAR(UCHAR_SHIFT_1) - PORT_BIT(BIT_MASK(29) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_END) PORT_NAME("ROLLDN") - PORT_BIT(BIT_MASK(30) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_DOWN) PORT_CHAR(UCHAR_MAMEKEY(DOWN)) - PORT_BIT(BIT_MASK(31) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_PGUP) PORT_NAME("PREVPG") - - PORT_START("rear_sw") - PORT_DIPNAME(0x8000 , 0x8000 , "E9-6 jumper") - PORT_DIPSETTING(0x0000 , DEF_STR(Yes)) - PORT_DIPSETTING(0x8000 , DEF_STR(No)) - PORT_DIPNAME(0x4000 , 0x4000 , "E9-5 jumper") - PORT_DIPSETTING(0x0000 , DEF_STR(Yes)) - PORT_DIPSETTING(0x4000 , DEF_STR(No)) - PORT_DIPNAME(0x2000 , 0x2000 , "E9-4 jumper") - PORT_DIPSETTING(0x0000 , DEF_STR(Yes)) - PORT_DIPSETTING(0x2000 , DEF_STR(No)) - PORT_DIPNAME(0x1000 , 0x1000 , "E9-3 jumper") - PORT_DIPSETTING(0x0000 , DEF_STR(Yes)) - PORT_DIPSETTING(0x1000 , DEF_STR(No)) - PORT_DIPNAME(0x0800 , 0x0800 , "E9-2 jumper") - PORT_DIPSETTING(0x0000 , DEF_STR(Yes)) - PORT_DIPSETTING(0x0800 , DEF_STR(No)) - PORT_DIPNAME(0x0400 , 0x0400 , "E9-1 jumper") - PORT_DIPSETTING(0x0000 , DEF_STR(Yes)) - PORT_DIPSETTING(0x0400 , DEF_STR(No)) - PORT_DIPNAME(0x0018 , 0x0000 , "System source") - PORT_DIPLOCATION("S1:!7,!6") - PORT_DIPSETTING(0x0000 , "Sys bus") - PORT_DIPSETTING(0x0008 , "Local storage-talk only") - PORT_DIPSETTING(0x0010 , "Local storage-addressable") - PORT_DIPSETTING(0x0018 , "Performance verification") - PORT_DIPNAME(0x0300 , 0x0000 , "Upper bus address (N/U)") - PORT_DIPLOCATION("S1:!2,!1") - PORT_DIPSETTING(0x0000 , "0") - PORT_DIPSETTING(0x0100 , "1") - PORT_DIPSETTING(0x0200 , "2") - PORT_DIPSETTING(0x0300 , "3") - PORT_DIPNAME(0x0007 , 0x0000 , "System bus address") - PORT_DIPLOCATION("S1:!5,!4,!3") - PORT_DIPSETTING(0x0000 , "0") - PORT_DIPSETTING(0x0001 , "1") - PORT_DIPSETTING(0x0002 , "2") - PORT_DIPSETTING(0x0003 , "3") - PORT_DIPSETTING(0x0004 , "4") - PORT_DIPSETTING(0x0005 , "5") - PORT_DIPSETTING(0x0006 , "6") - PORT_DIPSETTING(0x0007 , "7") - PORT_DIPNAME(0x0080 , 0x0000 , "RS232 mode") - PORT_DIPLOCATION("S4 IO:!8") - PORT_DIPSETTING(0x0000 , "Terminal") - PORT_DIPSETTING(0x0080 , "Modem") - - PORT_START("rs232_sw") - PORT_DIPNAME(0xc0 , 0x00 , "Stop bits") - PORT_DIPLOCATION("S4 IO:!2,!1") - PORT_DIPSETTING(0x00 , "Invalid") - PORT_DIPSETTING(0x40 , "1") - PORT_DIPSETTING(0x80 , "1.5") - PORT_DIPSETTING(0xc0 , "2") - PORT_DIPNAME(0x20 , 0x00 , "Parity") - PORT_DIPLOCATION("S4 IO:!3") - PORT_DIPSETTING(0x00 , "Odd") - PORT_DIPSETTING(0x20 , "Even") - PORT_DIPNAME(0x10 , 0x00 , "Parity enable") - PORT_DIPLOCATION("S4 IO:!4") - PORT_DIPSETTING(0x00 , DEF_STR(No)) - PORT_DIPSETTING(0x10 , DEF_STR(Yes)) - PORT_DIPNAME(0x0c , 0x00 , "Char length") - PORT_DIPLOCATION("S4 IO:!6,!5") - PORT_DIPSETTING(0x00 , "5") - PORT_DIPSETTING(0x04 , "6") - PORT_DIPSETTING(0x08 , "7") - PORT_DIPSETTING(0x0c , "8") - PORT_DIPNAME(0x02 , 0x00 , "Baud rate factor") - PORT_DIPLOCATION("S4 IO:!7") - PORT_DIPSETTING(0x00 , "1x") - PORT_DIPSETTING(0x02 , "16x") - - PORT_START("s5_sw") - PORT_DIPNAME(0x01 , 0x00 , "Duplex") - PORT_DIPLOCATION("S5 IO:!1") - PORT_DIPSETTING(0x00 , "Half duplex") - PORT_DIPSETTING(0x01 , "Full duplex") - PORT_DIPNAME(0x1e , 0x00 , "Baud rate") - PORT_DIPLOCATION("S5 IO:!5,!4,!3,!2") - PORT_DIPSETTING(0x00 , "50") - PORT_DIPSETTING(0x02 , "75") - PORT_DIPSETTING(0x04 , "110") - PORT_DIPSETTING(0x06 , "134.5") - PORT_DIPSETTING(0x08 , "150") - PORT_DIPSETTING(0x0a , "300") - PORT_DIPSETTING(0x0c , "600") - PORT_DIPSETTING(0x0e , "1200") - PORT_DIPSETTING(0x10 , "1800") - PORT_DIPSETTING(0x12 , "2000") - PORT_DIPSETTING(0x14 , "2400") - PORT_DIPSETTING(0x16 , "3600") - PORT_DIPSETTING(0x18 , "4800") - PORT_DIPSETTING(0x1a , "7200") - PORT_DIPSETTING(0x1c , "9600") - PORT_DIPSETTING(0x1e , "19200") - + // Keyboard is arranged in a 8 x 16 matrix. Of the 128 possible positions, only 77 are used. + // For key arrangement on the matrix, see [1] pg 334 + // Keys are mapped on bit b of KEYn + // where b = (row & 1) << 4 + column, n = row >> 1 + // column = [0..15] + // row = [0..7] + PORT_START("KEY0") + PORT_BIT(BIT_MASK(0) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_LCONTROL) PORT_CHAR(UCHAR_SHIFT_2) + PORT_BIT(BIT_MASK(1) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_A) PORT_CHAR('a') PORT_CHAR('A') + PORT_BIT(BIT_MASK(2) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_W) PORT_CHAR('w') PORT_CHAR('W') + PORT_BIT(BIT_MASK(3) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_E) PORT_CHAR('e') PORT_CHAR('E') + PORT_BIT(BIT_MASK(4) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_R) PORT_CHAR('r') PORT_CHAR('R') + PORT_BIT(BIT_MASK(5) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_T) PORT_CHAR('t') PORT_CHAR('T') + PORT_BIT(BIT_MASK(6) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_Y) PORT_CHAR('y') PORT_CHAR('Y') + PORT_BIT(BIT_MASK(7) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_U) PORT_CHAR('u') PORT_CHAR('U') + PORT_BIT(BIT_MASK(8) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_I) PORT_CHAR('i') PORT_CHAR('I') + PORT_BIT(BIT_MASK(9) , IP_ACTIVE_HIGH , IPT_UNUSED) + PORT_BIT(BIT_MASK(10) , IP_ACTIVE_HIGH , IPT_UNUSED) + PORT_BIT(BIT_MASK(11) , IP_ACTIVE_HIGH , IPT_UNUSED) + PORT_BIT(BIT_MASK(12) , IP_ACTIVE_HIGH , IPT_UNUSED) + PORT_BIT(BIT_MASK(13) , IP_ACTIVE_HIGH , IPT_UNUSED) + PORT_BIT(BIT_MASK(14) , IP_ACTIVE_HIGH , IPT_UNUSED) + PORT_BIT(BIT_MASK(15) , IP_ACTIVE_HIGH , IPT_UNUSED) + PORT_BIT(BIT_MASK(16) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_TAB) PORT_CHAR('\t') + PORT_BIT(BIT_MASK(17) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_Q) PORT_CHAR('q') PORT_CHAR('Q') + PORT_BIT(BIT_MASK(18) , IP_ACTIVE_HIGH , IPT_UNUSED) + PORT_BIT(BIT_MASK(19) , IP_ACTIVE_HIGH , IPT_UNUSED) + PORT_BIT(BIT_MASK(20) , IP_ACTIVE_HIGH , IPT_UNUSED) + PORT_BIT(BIT_MASK(21) , IP_ACTIVE_HIGH , IPT_UNUSED) + PORT_BIT(BIT_MASK(22) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_7) PORT_CHAR('7') PORT_CHAR('\'') + PORT_BIT(BIT_MASK(23) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_8) PORT_CHAR('8') PORT_CHAR('(') + PORT_BIT(BIT_MASK(24) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_CHAR(')') + PORT_BIT(BIT_MASK(25) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_0) PORT_CHAR('0') + PORT_BIT(BIT_MASK(26) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_MINUS) PORT_CHAR('-') PORT_CHAR('=') + PORT_BIT(BIT_MASK(27) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_EQUALS) PORT_CHAR('^') PORT_CHAR('~') + PORT_BIT(BIT_MASK(28) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_TILDE) PORT_CHAR('\\') PORT_CHAR('|') + PORT_BIT(BIT_MASK(29) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_BACKSPACE) PORT_CHAR(8) + PORT_BIT(BIT_MASK(30) , IP_ACTIVE_HIGH , IPT_UNUSED) + PORT_BIT(BIT_MASK(31) , IP_ACTIVE_HIGH , IPT_UNUSED) + + PORT_START("KEY1") + PORT_BIT(BIT_MASK(0) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_1) PORT_CHAR('1') PORT_CHAR('!') + PORT_BIT(BIT_MASK(1) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_CHAR('"') + PORT_BIT(BIT_MASK(2) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_3) PORT_CHAR('3') PORT_CHAR('#') + PORT_BIT(BIT_MASK(3) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_4) PORT_CHAR('4') PORT_CHAR('$') + PORT_BIT(BIT_MASK(4) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_5) PORT_CHAR('5') PORT_CHAR('%') + PORT_BIT(BIT_MASK(5) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHAR('&') + PORT_BIT(BIT_MASK(6) , IP_ACTIVE_HIGH , IPT_UNUSED) + PORT_BIT(BIT_MASK(7) , IP_ACTIVE_HIGH , IPT_UNUSED) + PORT_BIT(BIT_MASK(8) , IP_ACTIVE_HIGH , IPT_UNUSED) + PORT_BIT(BIT_MASK(9) , IP_ACTIVE_HIGH , IPT_UNUSED) + PORT_BIT(BIT_MASK(10) , IP_ACTIVE_HIGH , IPT_UNUSED) + PORT_BIT(BIT_MASK(11) , IP_ACTIVE_HIGH , IPT_UNUSED) + PORT_BIT(BIT_MASK(12) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_F9) PORT_NAME("RECALL") + PORT_BIT(BIT_MASK(13) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_F10) PORT_NAME("CLRLINE") + PORT_BIT(BIT_MASK(14) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_F11) PORT_NAME("CAPS") + PORT_BIT(BIT_MASK(15) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_F12) PORT_NAME("RESET") + PORT_BIT(BIT_MASK(16) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_F1) PORT_NAME("SK1") + PORT_BIT(BIT_MASK(17) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_F2) PORT_NAME("SK2") + PORT_BIT(BIT_MASK(18) , IP_ACTIVE_HIGH , IPT_UNUSED) + PORT_BIT(BIT_MASK(19) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_F3) PORT_NAME("SK3") + PORT_BIT(BIT_MASK(20) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_F4) PORT_NAME("SK4") + PORT_BIT(BIT_MASK(21) , IP_ACTIVE_HIGH , IPT_UNUSED) + PORT_BIT(BIT_MASK(22) , IP_ACTIVE_HIGH , IPT_UNUSED) + PORT_BIT(BIT_MASK(23) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_F5) PORT_NAME("SK5") + PORT_BIT(BIT_MASK(24) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_F6) PORT_NAME("SK6") + PORT_BIT(BIT_MASK(25) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_F7) PORT_NAME("SK7") + PORT_BIT(BIT_MASK(26) , IP_ACTIVE_HIGH , IPT_UNUSED) + PORT_BIT(BIT_MASK(27) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_F8) PORT_NAME("SK8") + PORT_BIT(BIT_MASK(28) , IP_ACTIVE_HIGH , IPT_UNUSED) + PORT_BIT(BIT_MASK(29) , IP_ACTIVE_HIGH , IPT_UNUSED) + PORT_BIT(BIT_MASK(30) , IP_ACTIVE_HIGH , IPT_UNUSED) + PORT_BIT(BIT_MASK(31) , IP_ACTIVE_HIGH , IPT_UNUSED) + + PORT_START("KEY2") + PORT_BIT(BIT_MASK(0) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_LSHIFT) PORT_CHAR(UCHAR_SHIFT_1) + PORT_BIT(BIT_MASK(1) , IP_ACTIVE_HIGH , IPT_UNUSED) + PORT_BIT(BIT_MASK(2) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_S) PORT_CHAR('s') PORT_CHAR('S') + PORT_BIT(BIT_MASK(3) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_D) PORT_CHAR('d') PORT_CHAR('D') + PORT_BIT(BIT_MASK(4) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_F) PORT_CHAR('f') PORT_CHAR('F') + PORT_BIT(BIT_MASK(5) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_G) PORT_CHAR('g') PORT_CHAR('G') + PORT_BIT(BIT_MASK(6) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_H) PORT_CHAR('h') PORT_CHAR('H') + PORT_BIT(BIT_MASK(7) , IP_ACTIVE_HIGH , IPT_UNUSED) + PORT_BIT(BIT_MASK(8) , IP_ACTIVE_HIGH , IPT_UNUSED) + PORT_BIT(BIT_MASK(9) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_O) PORT_CHAR('o') PORT_CHAR('O') + PORT_BIT(BIT_MASK(10) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_P) PORT_CHAR('p') PORT_CHAR('P') + PORT_BIT(BIT_MASK(11) , IP_ACTIVE_HIGH , IPT_UNUSED) + PORT_BIT(BIT_MASK(12) , IP_ACTIVE_HIGH , IPT_UNUSED) + PORT_BIT(BIT_MASK(13) , IP_ACTIVE_HIGH , IPT_UNUSED) + PORT_BIT(BIT_MASK(14) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_INSERT) PORT_NAME("INSCHAR") + PORT_BIT(BIT_MASK(15) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_DEL) PORT_NAME("DELCHAR") + PORT_BIT(BIT_MASK(16) , IP_ACTIVE_HIGH , IPT_UNUSED) + PORT_BIT(BIT_MASK(17) , IP_ACTIVE_HIGH , IPT_UNUSED) + PORT_BIT(BIT_MASK(18) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_Z) PORT_CHAR('z') PORT_CHAR('Z') + PORT_BIT(BIT_MASK(19) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_X) PORT_CHAR('x') PORT_CHAR('X') + PORT_BIT(BIT_MASK(20) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_C) PORT_CHAR('c') PORT_CHAR('C') + PORT_BIT(BIT_MASK(21) , IP_ACTIVE_HIGH , IPT_UNUSED) + PORT_BIT(BIT_MASK(22) , IP_ACTIVE_HIGH , IPT_UNUSED) + PORT_BIT(BIT_MASK(23) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_J) PORT_CHAR('j') PORT_CHAR('J') + PORT_BIT(BIT_MASK(24) , IP_ACTIVE_HIGH , IPT_UNUSED) + PORT_BIT(BIT_MASK(25) , IP_ACTIVE_HIGH , IPT_UNUSED) + PORT_BIT(BIT_MASK(26) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_OPENBRACE) PORT_CHAR('@') PORT_CHAR('`') + PORT_BIT(BIT_MASK(27) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_CLOSEBRACE) PORT_CHAR('[') PORT_CHAR('{') + PORT_BIT(BIT_MASK(28) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_BACKSLASH2) PORT_CHAR('_') PORT_CHAR(UCHAR_MAMEKEY(DEL)) + PORT_BIT(BIT_MASK(29) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_HOME) PORT_NAME("ROLLUP") + PORT_BIT(BIT_MASK(30) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_UP) PORT_CHAR(UCHAR_MAMEKEY(UP)) + PORT_BIT(BIT_MASK(31) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_PGDN) PORT_NAME("NEXTPG") + + PORT_START("KEY3") + PORT_BIT(BIT_MASK(0) , IP_ACTIVE_HIGH , IPT_UNUSED) + PORT_BIT(BIT_MASK(1) , IP_ACTIVE_HIGH , IPT_UNUSED) + PORT_BIT(BIT_MASK(2) , IP_ACTIVE_HIGH , IPT_UNUSED) + PORT_BIT(BIT_MASK(3) , IP_ACTIVE_HIGH , IPT_UNUSED) + PORT_BIT(BIT_MASK(4) , IP_ACTIVE_HIGH , IPT_UNUSED) + PORT_BIT(BIT_MASK(5) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_V) PORT_CHAR('v') PORT_CHAR('V') + PORT_BIT(BIT_MASK(6) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_B) PORT_CHAR('b') PORT_CHAR('B') + PORT_BIT(BIT_MASK(7) , IP_ACTIVE_HIGH , IPT_UNUSED) + PORT_BIT(BIT_MASK(8) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_K) PORT_CHAR('k') PORT_CHAR('K') + PORT_BIT(BIT_MASK(9) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_L) PORT_CHAR('l') PORT_CHAR('L') + PORT_BIT(BIT_MASK(10) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_COLON) PORT_CHAR(';') PORT_CHAR('+') + PORT_BIT(BIT_MASK(11) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_QUOTE) PORT_CHAR(':') PORT_CHAR('*') + PORT_BIT(BIT_MASK(12) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_BACKSLASH) PORT_CHAR(']') PORT_CHAR('}') + PORT_BIT(BIT_MASK(13) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_ENTER) PORT_CHAR(13) + PORT_BIT(BIT_MASK(14) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_LEFT) PORT_CHAR(UCHAR_MAMEKEY(LEFT)) + PORT_BIT(BIT_MASK(15) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_RIGHT) PORT_CHAR(UCHAR_MAMEKEY(RIGHT)) + PORT_BIT(BIT_MASK(16) , IP_ACTIVE_HIGH , IPT_UNUSED) + PORT_BIT(BIT_MASK(17) , IP_ACTIVE_HIGH , IPT_UNUSED) + PORT_BIT(BIT_MASK(18) , IP_ACTIVE_HIGH , IPT_UNUSED) + PORT_BIT(BIT_MASK(19) , IP_ACTIVE_HIGH , IPT_UNUSED) + PORT_BIT(BIT_MASK(20) , IP_ACTIVE_HIGH , IPT_UNUSED) + PORT_BIT(BIT_MASK(21) , IP_ACTIVE_HIGH , IPT_UNUSED) + PORT_BIT(BIT_MASK(22) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ') + PORT_BIT(BIT_MASK(23) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_N) PORT_CHAR('n') PORT_CHAR('N') + PORT_BIT(BIT_MASK(24) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_M) PORT_CHAR('m') PORT_CHAR('M') + PORT_BIT(BIT_MASK(25) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') PORT_CHAR('<') + PORT_BIT(BIT_MASK(26) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR('>') + PORT_BIT(BIT_MASK(27) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_SLASH) PORT_CHAR('/') PORT_CHAR('?') + PORT_BIT(BIT_MASK(28) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_RSHIFT) PORT_CHAR(UCHAR_SHIFT_1) + PORT_BIT(BIT_MASK(29) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_END) PORT_NAME("ROLLDN") + PORT_BIT(BIT_MASK(30) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_DOWN) PORT_CHAR(UCHAR_MAMEKEY(DOWN)) + PORT_BIT(BIT_MASK(31) , IP_ACTIVE_HIGH , IPT_KEYBOARD) PORT_CODE(KEYCODE_PGUP) PORT_NAME("PREVPG") + + PORT_START("rear_sw") + PORT_DIPNAME(0x8000 , 0x8000 , "E9-6 jumper") + PORT_DIPSETTING(0x0000 , DEF_STR(Yes)) + PORT_DIPSETTING(0x8000 , DEF_STR(No)) + PORT_DIPNAME(0x4000 , 0x4000 , "E9-5 jumper") + PORT_DIPSETTING(0x0000 , DEF_STR(Yes)) + PORT_DIPSETTING(0x4000 , DEF_STR(No)) + PORT_DIPNAME(0x2000 , 0x2000 , "E9-4 jumper") + PORT_DIPSETTING(0x0000 , DEF_STR(Yes)) + PORT_DIPSETTING(0x2000 , DEF_STR(No)) + PORT_DIPNAME(0x1000 , 0x1000 , "E9-3 jumper") + PORT_DIPSETTING(0x0000 , DEF_STR(Yes)) + PORT_DIPSETTING(0x1000 , DEF_STR(No)) + PORT_DIPNAME(0x0800 , 0x0800 , "E9-2 jumper") + PORT_DIPSETTING(0x0000 , DEF_STR(Yes)) + PORT_DIPSETTING(0x0800 , DEF_STR(No)) + PORT_DIPNAME(0x0400 , 0x0400 , "E9-1 jumper") + PORT_DIPSETTING(0x0000 , DEF_STR(Yes)) + PORT_DIPSETTING(0x0400 , DEF_STR(No)) + PORT_DIPNAME(0x0018 , 0x0000 , "System source") + PORT_DIPLOCATION("S1:!7,!6") + PORT_DIPSETTING(0x0000 , "Sys bus") + PORT_DIPSETTING(0x0008 , "Local storage-talk only") + PORT_DIPSETTING(0x0010 , "Local storage-addressable") + PORT_DIPSETTING(0x0018 , "Performance verification") + PORT_DIPNAME(0x0300 , 0x0000 , "Upper bus address (N/U)") + PORT_DIPLOCATION("S1:!2,!1") + PORT_DIPSETTING(0x0000 , "0") + PORT_DIPSETTING(0x0100 , "1") + PORT_DIPSETTING(0x0200 , "2") + PORT_DIPSETTING(0x0300 , "3") + PORT_DIPNAME(0x0007 , 0x0000 , "System bus address") + PORT_DIPLOCATION("S1:!5,!4,!3") + PORT_DIPSETTING(0x0000 , "0") + PORT_DIPSETTING(0x0001 , "1") + PORT_DIPSETTING(0x0002 , "2") + PORT_DIPSETTING(0x0003 , "3") + PORT_DIPSETTING(0x0004 , "4") + PORT_DIPSETTING(0x0005 , "5") + PORT_DIPSETTING(0x0006 , "6") + PORT_DIPSETTING(0x0007 , "7") + PORT_DIPNAME(0x0080 , 0x0000 , "RS232 mode") + PORT_DIPLOCATION("S4 IO:!8") + PORT_DIPSETTING(0x0000 , "Terminal") + PORT_DIPSETTING(0x0080 , "Modem") + + PORT_START("rs232_sw") + PORT_DIPNAME(0xc0 , 0x00 , "Stop bits") + PORT_DIPLOCATION("S4 IO:!2,!1") + PORT_DIPSETTING(0x00 , "Invalid") + PORT_DIPSETTING(0x40 , "1") + PORT_DIPSETTING(0x80 , "1.5") + PORT_DIPSETTING(0xc0 , "2") + PORT_DIPNAME(0x20 , 0x00 , "Parity") + PORT_DIPLOCATION("S4 IO:!3") + PORT_DIPSETTING(0x00 , "Odd") + PORT_DIPSETTING(0x20 , "Even") + PORT_DIPNAME(0x10 , 0x00 , "Parity enable") + PORT_DIPLOCATION("S4 IO:!4") + PORT_DIPSETTING(0x00 , DEF_STR(No)) + PORT_DIPSETTING(0x10 , DEF_STR(Yes)) + PORT_DIPNAME(0x0c , 0x00 , "Char length") + PORT_DIPLOCATION("S4 IO:!6,!5") + PORT_DIPSETTING(0x00 , "5") + PORT_DIPSETTING(0x04 , "6") + PORT_DIPSETTING(0x08 , "7") + PORT_DIPSETTING(0x0c , "8") + PORT_DIPNAME(0x02 , 0x00 , "Baud rate factor") + PORT_DIPLOCATION("S4 IO:!7") + PORT_DIPSETTING(0x00 , "1x") + PORT_DIPSETTING(0x02 , "16x") + + PORT_START("s5_sw") + PORT_DIPNAME(0x01 , 0x00 , "Duplex") + PORT_DIPLOCATION("S5 IO:!1") + PORT_DIPSETTING(0x00 , "Half duplex") + PORT_DIPSETTING(0x01 , "Full duplex") + PORT_DIPNAME(0x1e , 0x00 , "Baud rate") + PORT_DIPLOCATION("S5 IO:!5,!4,!3,!2") + PORT_DIPSETTING(0x00 , "50") + PORT_DIPSETTING(0x02 , "75") + PORT_DIPSETTING(0x04 , "110") + PORT_DIPSETTING(0x06 , "134.5") + PORT_DIPSETTING(0x08 , "150") + PORT_DIPSETTING(0x0a , "300") + PORT_DIPSETTING(0x0c , "600") + PORT_DIPSETTING(0x0e , "1200") + PORT_DIPSETTING(0x10 , "1800") + PORT_DIPSETTING(0x12 , "2000") + PORT_DIPSETTING(0x14 , "2400") + PORT_DIPSETTING(0x16 , "3600") + PORT_DIPSETTING(0x18 , "4800") + PORT_DIPSETTING(0x1a , "7200") + PORT_DIPSETTING(0x1c , "9600") + PORT_DIPSETTING(0x1e , "19200") INPUT_PORTS_END static SLOT_INTERFACE_START(hp64k_floppies) - SLOT_INTERFACE("525dd" , FLOPPY_525_DD) + SLOT_INTERFACE("525dd" , FLOPPY_525_DD) SLOT_INTERFACE_END -static MACHINE_CONFIG_START(hp64k , hp64k_state) - MCFG_CPU_ADD("cpu" , HP_5061_3011 , 6250000) - MCFG_CPU_PROGRAM_MAP(cpu_mem_map) - MCFG_CPU_IO_MAP(cpu_io_map) - MCFG_CPU_IRQ_ACKNOWLEDGE_DRIVER(hp64k_state , hp64k_irq_callback) - MCFG_QUANTUM_TIME(attotime::from_hz(100)) - - // Actual keyboard refresh rate should be between 1 and 2 kHz - MCFG_TIMER_DRIVER_ADD_PERIODIC("kb_timer" , hp64k_state , hp64k_kb_scan , attotime::from_hz(100)) - - // Line sync timer. A line frequency of 50 Hz is assumed. - MCFG_TIMER_DRIVER_ADD_PERIODIC("linesync_timer" , hp64k_state , hp64k_line_sync , attotime::from_hz(50)) - - // Clock = 25 MHz / 9 * (112/114) - MCFG_DEVICE_ADD("crtc" , I8275 , 2729045) - MCFG_VIDEO_SET_SCREEN("screen") - MCFG_I8275_CHARACTER_WIDTH(9) - MCFG_I8275_DRAW_CHARACTER_CALLBACK_OWNER(hp64k_state , crtc_display_pixels) - MCFG_I8275_DRQ_CALLBACK(WRITELINE(hp64k_state , hp64k_crtc_drq_w)) - MCFG_I8275_VRTC_CALLBACK(WRITELINE(hp64k_state , hp64k_crtc_vrtc_w)) - - MCFG_SCREEN_ADD_MONOCHROME("screen", RASTER, rgb_t::green()) - MCFG_SCREEN_UPDATE_DEVICE("crtc" , i8275_device , screen_update) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_SIZE(720 , 390) - MCFG_PALETTE_ADD_MONOCHROME_HIGHLIGHT("palette") - - MCFG_FD1791_ADD("fdc" , XTAL_4MHz / 4) - MCFG_WD_FDC_FORCE_READY - MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(hp64k_state , hp64k_flp_intrq_w)) - MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(hp64k_state , hp64k_flp_drq_w)) - MCFG_FLOPPY_DRIVE_ADD("fdc:0" , hp64k_floppies , "525dd" , floppy_image_device::default_floppy_formats) - MCFG_SLOT_FIXED(true) - MCFG_FLOPPY_DRIVE_ADD("fdc:1" , hp64k_floppies , "525dd" , floppy_image_device::default_floppy_formats) - MCFG_SLOT_FIXED(true) - - MCFG_DEVICE_ADD("fdc_rdy0" , TTL74123 , 0) - MCFG_TTL74123_CONNECTION_TYPE(TTL74123_NOT_GROUNDED_NO_DIODE) - MCFG_TTL74123_RESISTOR_VALUE(RES_K(68.1)) - // Warning! Duration formula is not correct for LS123, actual capacitor is 10 uF - MCFG_TTL74123_CAPACITOR_VALUE(CAP_U(16)) - MCFG_TTL74123_B_PIN_VALUE(1) - MCFG_TTL74123_CLEAR_PIN_VALUE(1) - MCFG_TTL74123_OUTPUT_CHANGED_CB(WRITE8(hp64k_state , hp64k_floppy0_rdy)); - - MCFG_DEVICE_ADD("fdc_rdy1" , TTL74123 , 0) - MCFG_TTL74123_CONNECTION_TYPE(TTL74123_NOT_GROUNDED_NO_DIODE) - MCFG_TTL74123_RESISTOR_VALUE(RES_K(68.1)) - MCFG_TTL74123_CAPACITOR_VALUE(CAP_U(16)) - MCFG_TTL74123_B_PIN_VALUE(1) - MCFG_TTL74123_CLEAR_PIN_VALUE(1) - MCFG_TTL74123_OUTPUT_CHANGED_CB(WRITE8(hp64k_state , hp64k_floppy1_rdy)); - - MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_SOUND_ADD("beeper" , BEEP , 2500) - MCFG_SOUND_ROUTE(ALL_OUTPUTS , "mono" , 1.00) - - MCFG_TIMER_DRIVER_ADD("beep_timer" , hp64k_state , hp64k_beeper_off); - - MCFG_DEVICE_ADD("baud_rate" , COM8116 , XTAL_5_0688MHz) - MCFG_COM8116_FR_HANDLER(WRITELINE(hp64k_state , hp64k_baud_clk_w)); - - MCFG_DEVICE_ADD("uart" , I8251 , 0) - MCFG_I8251_RXRDY_HANDLER(WRITELINE(hp64k_state , hp64k_rxrdy_w)); - MCFG_I8251_TXRDY_HANDLER(WRITELINE(hp64k_state , hp64k_txrdy_w)); - MCFG_I8251_TXD_HANDLER(WRITELINE(hp64k_state , hp64k_txd_w)); - MCFG_I8251_DTR_HANDLER(WRITELINE(hp64k_state , hp64k_dtr_w)); - MCFG_I8251_RTS_HANDLER(WRITELINE(hp64k_state , hp64k_rts_w)); - - MCFG_RS232_PORT_ADD("rs232" , default_rs232_devices , nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(hp64k_state , hp64k_rs232_rxd_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE(hp64k_state , hp64k_rs232_dcd_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE(hp64k_state , hp64k_rs232_cts_w)) +static MACHINE_CONFIG_START(hp64k) + MCFG_CPU_ADD("cpu" , HP_5061_3011 , 6250000) + MCFG_CPU_PROGRAM_MAP(cpu_mem_map) + MCFG_CPU_IO_MAP(cpu_io_map) + MCFG_CPU_IRQ_ACKNOWLEDGE_DRIVER(hp64k_state , hp64k_irq_callback) + MCFG_QUANTUM_TIME(attotime::from_hz(100)) + + // Actual keyboard refresh rate should be between 1 and 2 kHz + MCFG_TIMER_DRIVER_ADD_PERIODIC("kb_timer" , hp64k_state , hp64k_kb_scan , attotime::from_hz(100)) + + // Line sync timer. A line frequency of 50 Hz is assumed. + MCFG_TIMER_DRIVER_ADD_PERIODIC("linesync_timer" , hp64k_state , hp64k_line_sync , attotime::from_hz(50)) + + // Clock = 25 MHz / 9 * (112/114) + MCFG_DEVICE_ADD("crtc" , I8275 , 2729045) + MCFG_VIDEO_SET_SCREEN("screen") + MCFG_I8275_CHARACTER_WIDTH(9) + MCFG_I8275_DRAW_CHARACTER_CALLBACK_OWNER(hp64k_state , crtc_display_pixels) + MCFG_I8275_DRQ_CALLBACK(WRITELINE(hp64k_state , hp64k_crtc_drq_w)) + MCFG_I8275_VRTC_CALLBACK(WRITELINE(hp64k_state , hp64k_crtc_vrtc_w)) + + MCFG_SCREEN_ADD_MONOCHROME("screen", RASTER, rgb_t::green()) + MCFG_SCREEN_UPDATE_DEVICE("crtc" , i8275_device , screen_update) + MCFG_SCREEN_REFRESH_RATE(60) + MCFG_SCREEN_SIZE(720 , 390) + MCFG_PALETTE_ADD_MONOCHROME_HIGHLIGHT("palette") + + MCFG_FD1791_ADD("fdc" , XTAL_4MHz / 4) + MCFG_WD_FDC_FORCE_READY + MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(hp64k_state , hp64k_flp_intrq_w)) + MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(hp64k_state , hp64k_flp_drq_w)) + MCFG_FLOPPY_DRIVE_ADD("fdc:0" , hp64k_floppies , "525dd" , floppy_image_device::default_floppy_formats) + MCFG_SLOT_FIXED(true) + MCFG_FLOPPY_DRIVE_ADD("fdc:1" , hp64k_floppies , "525dd" , floppy_image_device::default_floppy_formats) + MCFG_SLOT_FIXED(true) + + MCFG_DEVICE_ADD("fdc_rdy0" , TTL74123 , 0) + MCFG_TTL74123_CONNECTION_TYPE(TTL74123_NOT_GROUNDED_NO_DIODE) + MCFG_TTL74123_RESISTOR_VALUE(RES_K(68.1)) + // Warning! Duration formula is not correct for LS123, actual capacitor is 10 uF + MCFG_TTL74123_CAPACITOR_VALUE(CAP_U(16)) + MCFG_TTL74123_B_PIN_VALUE(1) + MCFG_TTL74123_CLEAR_PIN_VALUE(1) + MCFG_TTL74123_OUTPUT_CHANGED_CB(WRITE8(hp64k_state , hp64k_floppy0_rdy)); + + MCFG_DEVICE_ADD("fdc_rdy1" , TTL74123 , 0) + MCFG_TTL74123_CONNECTION_TYPE(TTL74123_NOT_GROUNDED_NO_DIODE) + MCFG_TTL74123_RESISTOR_VALUE(RES_K(68.1)) + MCFG_TTL74123_CAPACITOR_VALUE(CAP_U(16)) + MCFG_TTL74123_B_PIN_VALUE(1) + MCFG_TTL74123_CLEAR_PIN_VALUE(1) + MCFG_TTL74123_OUTPUT_CHANGED_CB(WRITE8(hp64k_state , hp64k_floppy1_rdy)); + + MCFG_SPEAKER_STANDARD_MONO("mono") + MCFG_SOUND_ADD("beeper" , BEEP , 2500) + MCFG_SOUND_ROUTE(ALL_OUTPUTS , "mono" , 1.00) + + MCFG_TIMER_DRIVER_ADD("beep_timer" , hp64k_state , hp64k_beeper_off); + + MCFG_DEVICE_ADD("baud_rate" , COM8116 , XTAL_5_0688MHz) + MCFG_COM8116_FR_HANDLER(WRITELINE(hp64k_state , hp64k_baud_clk_w)); + + MCFG_DEVICE_ADD("uart" , I8251 , 0) + MCFG_I8251_RXRDY_HANDLER(WRITELINE(hp64k_state , hp64k_rxrdy_w)); + MCFG_I8251_TXRDY_HANDLER(WRITELINE(hp64k_state , hp64k_txrdy_w)); + MCFG_I8251_TXD_HANDLER(WRITELINE(hp64k_state , hp64k_txd_w)); + MCFG_I8251_DTR_HANDLER(WRITELINE(hp64k_state , hp64k_dtr_w)); + MCFG_I8251_RTS_HANDLER(WRITELINE(hp64k_state , hp64k_rts_w)); + + MCFG_RS232_PORT_ADD("rs232" , default_rs232_devices , nullptr) + MCFG_RS232_RXD_HANDLER(WRITELINE(hp64k_state , hp64k_rs232_rxd_w)) + MCFG_RS232_DCD_HANDLER(WRITELINE(hp64k_state , hp64k_rs232_dcd_w)) + MCFG_RS232_CTS_HANDLER(WRITELINE(hp64k_state , hp64k_rs232_cts_w)) MACHINE_CONFIG_END ROM_START(hp64k) - ROM_REGION(0x8000 , "cpu" , ROMREGION_16BIT | ROMREGION_BE | ROMREGION_INVERT) - ROM_LOAD16_BYTE("64100_80022.bin" , 0x0000 , 0x1000 , CRC(38b2aae5) SHA1(bfd0f126bfaf3724dc501979ad2d46afc41913aa)) - ROM_LOAD16_BYTE("64100_80020.bin" , 0x0001 , 0x1000 , CRC(ac01b436) SHA1(be1e827ea1393a95abb02a52ab5cc35dc2cd96e4)) - ROM_LOAD16_BYTE("64100_80023.bin" , 0x2000 , 0x1000 , CRC(6b4bc2ce) SHA1(00e6c58ccae9640dc81cb3e92db90a8c69b02a93)) - ROM_LOAD16_BYTE("64100_80021.bin" , 0x2001 , 0x1000 , CRC(74f9d33c) SHA1(543a845a992b0ceac3e0491acdfb178df0adeb1f)) - ROM_LOAD16_BYTE("64100_80026.bin" , 0x4000 , 0x1000 , CRC(a74e834b) SHA1(a2ff9765628985d9bab4cb44ba23257a9b8d0965)) - ROM_LOAD16_BYTE("64100_80024.bin" , 0x4001 , 0x1000 , CRC(2e15a1d2) SHA1(ce4330f8f8015a26c02f0965b95baf7dfd615512)) - ROM_LOAD16_BYTE("64100_80027.bin" , 0x6000 , 0x1000 , CRC(b93c0e7a) SHA1(b239446d3d6e9d3dba6c0278b2771abe1623e1ad)) - ROM_LOAD16_BYTE("64100_80025.bin" , 0x6001 , 0x1000 , CRC(e6353085) SHA1(48d78835c798f2caf6ee539057676d4f3c8a4df9)) - - ROM_REGION(0x800 , "chargen" , 0) - ROM_LOAD("1816_1496_82S191.bin" , 0 , 0x800 , CRC(32a52664) SHA1(8b2a49a32510103ff424e8481d5ed9887f609f2f)) + ROM_REGION(0x8000 , "cpu" , ROMREGION_16BIT | ROMREGION_BE | ROMREGION_INVERT) + ROM_LOAD16_BYTE("64100_80022.bin" , 0x0000 , 0x1000 , CRC(38b2aae5) SHA1(bfd0f126bfaf3724dc501979ad2d46afc41913aa)) + ROM_LOAD16_BYTE("64100_80020.bin" , 0x0001 , 0x1000 , CRC(ac01b436) SHA1(be1e827ea1393a95abb02a52ab5cc35dc2cd96e4)) + ROM_LOAD16_BYTE("64100_80023.bin" , 0x2000 , 0x1000 , CRC(6b4bc2ce) SHA1(00e6c58ccae9640dc81cb3e92db90a8c69b02a93)) + ROM_LOAD16_BYTE("64100_80021.bin" , 0x2001 , 0x1000 , CRC(74f9d33c) SHA1(543a845a992b0ceac3e0491acdfb178df0adeb1f)) + ROM_LOAD16_BYTE("64100_80026.bin" , 0x4000 , 0x1000 , CRC(a74e834b) SHA1(a2ff9765628985d9bab4cb44ba23257a9b8d0965)) + ROM_LOAD16_BYTE("64100_80024.bin" , 0x4001 , 0x1000 , CRC(2e15a1d2) SHA1(ce4330f8f8015a26c02f0965b95baf7dfd615512)) + ROM_LOAD16_BYTE("64100_80027.bin" , 0x6000 , 0x1000 , CRC(b93c0e7a) SHA1(b239446d3d6e9d3dba6c0278b2771abe1623e1ad)) + ROM_LOAD16_BYTE("64100_80025.bin" , 0x6001 , 0x1000 , CRC(e6353085) SHA1(48d78835c798f2caf6ee539057676d4f3c8a4df9)) + + ROM_REGION(0x800 , "chargen" , 0) + ROM_LOAD("1816_1496_82S191.bin" , 0 , 0x800 , CRC(32a52664) SHA1(8b2a49a32510103ff424e8481d5ed9887f609f2f)) ROM_END /* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ -COMP( 1979, hp64k, 0, 0, hp64k, hp64k, driver_device, 0, "HP", "HP 64000" , 0) +COMP( 1979, hp64k, 0, 0, hp64k, hp64k, hp64k_state, 0, "HP", "HP 64000" , 0) diff --git a/src/mame/drivers/hp9845.cpp b/src/mame/drivers/hp9845.cpp index f8b3fdf59d8..90d979d6a36 100644 --- a/src/mame/drivers/hp9845.cpp +++ b/src/mame/drivers/hp9845.cpp @@ -486,7 +486,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(hp9845_base_state::gv_timer) advance_gv_fsm(false , false); } -attotime hp9845_base_state::time_to_gv_mem_availability(void) const +attotime hp9845_base_state::time_to_gv_mem_availability() const { if (m_graphic_sel) { int hpos = m_screen->hpos(); @@ -514,7 +514,7 @@ IRQ_CALLBACK_MEMBER(hp9845_base_state::irq_callback) } } -void hp9845_base_state::update_irq(void) +void hp9845_base_state::update_irq() { m_ppu->set_input_line(HPHYBRID_IRL , m_irl_pending != 0); m_ppu->set_input_line(HPHYBRID_IRH , m_irh_pending != 0); @@ -545,7 +545,7 @@ void hp9845_base_state::irq_w(uint8_t sc , int state) update_irq(); } -void hp9845_base_state::update_flg_sts(void) +void hp9845_base_state::update_flg_sts() { bool sts = BIT(m_sts_status , m_pa); bool flg = BIT(m_flg_status , m_pa); @@ -750,7 +750,7 @@ protected: void graphic_video_render(unsigned video_scanline); virtual void advance_gv_fsm(bool ds , bool trigger) override; - void update_graphic_bits(void); + void update_graphic_bits(); // Optional character generator required_region_ptr m_optional_chargen; @@ -1235,7 +1235,7 @@ void hp9845b_state::advance_gv_fsm(bool ds , bool trigger) update_graphic_bits(); } -void hp9845b_state::update_graphic_bits(void) +void hp9845b_state::update_graphic_bits() { bool gv_ready = m_gv_fsm_state == GV_STAT_WAIT_DS_0 || m_gv_fsm_state == GV_STAT_WAIT_DS_1 || @@ -1253,13 +1253,13 @@ void hp9845b_state::update_graphic_bits(void) } // *************** -// hp9845ct_state +// hp9845ct_base_state // *************** -class hp9845ct_state : public hp9845_base_state +class hp9845ct_base_state : public hp9845_base_state { public: - hp9845ct_state(const machine_config &mconfig, device_type type, const char *tag); + hp9845ct_base_state(const machine_config &mconfig, device_type type, const char *tag); virtual void machine_start() override; virtual void machine_reset() override; @@ -1280,7 +1280,7 @@ protected: void video_fill_buff(bool buff_idx); virtual void plot(uint16_t x, uint16_t y, bool draw_erase) = 0; void draw_line(unsigned x0 , unsigned y0 , unsigned x1 , unsigned y1); - void update_line_pattern(void); + void update_line_pattern(); void pattern_fill(uint16_t x0 , uint16_t y0 , uint16_t x1 , uint16_t y1 , unsigned fill_idx); static uint16_t get_gv_mem_addr(unsigned x , unsigned y); virtual void update_graphic_bits(void) = 0; @@ -1288,10 +1288,10 @@ protected: void render_lp_cursor(unsigned video_scanline , unsigned pen_idx); void lp_r4_w(uint16_t data); - uint16_t lp_r4_r(void); + uint16_t lp_r4_r(); void lp_r5_w(uint16_t data); bool lp_segment_intersect(unsigned yline) const; - void compute_lp_data(void); + void compute_lp_data(); void lp_scanline_update(unsigned video_scanline); virtual void update_gcursor(void) = 0; @@ -1351,14 +1351,14 @@ protected: static INPUT_PORTS_START(hp9845ct) PORT_INCLUDE(hp9845_base) PORT_START("SOFTKEYS") - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Softkey0") PORT_CHANGED_MEMBER(DEVICE_SELF, hp9845ct_state, softkey_changed, 0) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Softkey1") PORT_CHANGED_MEMBER(DEVICE_SELF, hp9845ct_state, softkey_changed, 0) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Softkey2") PORT_CHANGED_MEMBER(DEVICE_SELF, hp9845ct_state, softkey_changed, 0) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Softkey3") PORT_CHANGED_MEMBER(DEVICE_SELF, hp9845ct_state, softkey_changed, 0) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Softkey4") PORT_CHANGED_MEMBER(DEVICE_SELF, hp9845ct_state, softkey_changed, 0) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Softkey5") PORT_CHANGED_MEMBER(DEVICE_SELF, hp9845ct_state, softkey_changed, 0) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Softkey6") PORT_CHANGED_MEMBER(DEVICE_SELF, hp9845ct_state, softkey_changed, 0) - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Softkey7") PORT_CHANGED_MEMBER(DEVICE_SELF, hp9845ct_state, softkey_changed, 0) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Softkey0") PORT_CHANGED_MEMBER(DEVICE_SELF, hp9845ct_base_state, softkey_changed, 0) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Softkey1") PORT_CHANGED_MEMBER(DEVICE_SELF, hp9845ct_base_state, softkey_changed, 0) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Softkey2") PORT_CHANGED_MEMBER(DEVICE_SELF, hp9845ct_base_state, softkey_changed, 0) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Softkey3") PORT_CHANGED_MEMBER(DEVICE_SELF, hp9845ct_base_state, softkey_changed, 0) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Softkey4") PORT_CHANGED_MEMBER(DEVICE_SELF, hp9845ct_base_state, softkey_changed, 0) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Softkey5") PORT_CHANGED_MEMBER(DEVICE_SELF, hp9845ct_base_state, softkey_changed, 0) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Softkey6") PORT_CHANGED_MEMBER(DEVICE_SELF, hp9845ct_base_state, softkey_changed, 0) + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Softkey7") PORT_CHANGED_MEMBER(DEVICE_SELF, hp9845ct_base_state, softkey_changed, 0) PORT_START("LIGHTPENX") PORT_BIT( 0x3ff, 0x000, IPT_LIGHTGUN_X ) PORT_SENSITIVITY(20) PORT_MINMAX(0, VIDEO_TOT_HPIXELS - 1) PORT_CROSSHAIR(X, 1.0, 0.0, 0) @@ -1370,7 +1370,7 @@ static INPUT_PORTS_START(hp9845ct) PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_CODE(MOUSECODE_BUTTON1) PORT_NAME("Gkey") INPUT_PORTS_END -hp9845ct_state::hp9845ct_state(const machine_config &mconfig, device_type type, const char *tag) +hp9845ct_base_state::hp9845ct_base_state(const machine_config &mconfig, device_type type, const char *tag) : hp9845_base_state(mconfig , type , tag), m_io_softkeys(*this, "SOFTKEYS"), m_lightpen_x(*this, "LIGHTPENX"), @@ -1379,13 +1379,13 @@ hp9845ct_state::hp9845ct_state(const machine_config &mconfig, device_type type, { } -void hp9845ct_state::machine_start() +void hp9845ct_base_state::machine_start() { // Common part first hp9845_base_state::machine_start(); } -void hp9845ct_state::machine_reset() +void hp9845ct_base_state::machine_reset() { // Common part first hp9845_base_state::machine_reset(); @@ -1427,14 +1427,14 @@ void hp9845ct_state::machine_reset() update_graphic_bits(); } -uint32_t hp9845ct_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) +uint32_t hp9845ct_base_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { copybitmap(bitmap, m_bitmap, 0, 0, 0, 0, cliprect); return 0; } -WRITE_LINE_MEMBER(hp9845ct_state::vblank_w) +WRITE_LINE_MEMBER(hp9845ct_base_state::vblank_w) { // VBlank signal is fed into HALT flag of PPU m_ppu->halt_w(state); @@ -1465,7 +1465,7 @@ WRITE_LINE_MEMBER(hp9845ct_state::vblank_w) } } -INPUT_CHANGED_MEMBER(hp9845ct_state::softkey_changed) +INPUT_CHANGED_MEMBER(hp9845ct_base_state::softkey_changed) { if (!m_gv_sk_status) { uint8_t softkey_data = m_io_softkeys->read(); @@ -1486,12 +1486,12 @@ INPUT_CHANGED_MEMBER(hp9845ct_state::softkey_changed) } } -void hp9845ct_state::set_video_mar(uint16_t mar) +void hp9845ct_base_state::set_video_mar(uint16_t mar) { m_video_mar = (mar & 0x1fff) | VIDEO_BUFFER_BASE_LOW; } -void hp9845ct_state::video_fill_buff(bool buff_idx) +void hp9845ct_base_state::video_fill_buff(bool buff_idx) { unsigned char_idx = 0; unsigned iters = 0; @@ -1549,7 +1549,7 @@ void hp9845ct_state::video_fill_buff(bool buff_idx) } } -void hp9845ct_state::draw_line(unsigned x0 , unsigned y0 , unsigned x1 , unsigned y1) +void hp9845ct_base_state::draw_line(unsigned x0 , unsigned y0 , unsigned x1 , unsigned y1) { int dx, dy, sx, sy, x, y, err, e2; @@ -1580,7 +1580,7 @@ void hp9845ct_state::draw_line(unsigned x0 , unsigned y0 , unsigned x1 , unsigne } } -void hp9845ct_state::update_line_pattern(void) +void hp9845ct_base_state::update_line_pattern() { // update line pattern m_gv_repeat_count++; @@ -1592,7 +1592,7 @@ void hp9845ct_state::update_line_pattern(void) } } -void hp9845ct_state::pattern_fill(uint16_t x0 , uint16_t y0 , uint16_t x1 , uint16_t y1 , unsigned fill_idx) +void hp9845ct_base_state::pattern_fill(uint16_t x0 , uint16_t y0 , uint16_t x1 , uint16_t y1 , unsigned fill_idx) { uint16_t x,y,xmax,ymax; uint16_t pixel_mask, fill_mask; @@ -1612,12 +1612,12 @@ void hp9845ct_state::pattern_fill(uint16_t x0 , uint16_t y0 , uint16_t x1 , uint } } -uint16_t hp9845ct_state::get_gv_mem_addr(unsigned x , unsigned y) +uint16_t hp9845ct_base_state::get_gv_mem_addr(unsigned x , unsigned y) { return (uint16_t)((x + y * 35) & GVIDEO_ADDR_MASK); } -int hp9845ct_state::get_wrapped_scanline(unsigned scanline) +int hp9845ct_base_state::get_wrapped_scanline(unsigned scanline) { // The 770's VTOTAL applies to 780, too. // The 780 hw generates a line clock (GVclk in Duell's schematics) that's suppressed @@ -1631,7 +1631,7 @@ int hp9845ct_state::get_wrapped_scanline(unsigned scanline) return wrapped_cursor_y; } -void hp9845ct_state::render_lp_cursor(unsigned video_scanline , unsigned pen_idx) +void hp9845ct_base_state::render_lp_cursor(unsigned video_scanline , unsigned pen_idx) { int cursor_y_top = get_wrapped_scanline(m_gv_lp_cursor_y); @@ -1668,7 +1668,7 @@ void hp9845ct_state::render_lp_cursor(unsigned video_scanline , unsigned pen_idx } } -void hp9845ct_state::lp_r4_w(uint16_t data) +void hp9845ct_base_state::lp_r4_w(uint16_t data) { if (m_gv_lp_en) { switch (m_gv_lp_reg_cnt) { @@ -1698,7 +1698,7 @@ void hp9845ct_state::lp_r4_w(uint16_t data) } } -uint16_t hp9845ct_state::lp_r4_r(void) +uint16_t hp9845ct_base_state::lp_r4_r() { uint16_t res = 0; @@ -1741,7 +1741,7 @@ uint16_t hp9845ct_state::lp_r4_r(void) return res; } -void hp9845ct_state::lp_r5_w(uint16_t data) +void hp9845ct_base_state::lp_r5_w(uint16_t data) { m_gv_lp_reg_cnt = data & 7; m_gv_lp_en = (data & 0x700) == 0x400; // enables writes on R4 to set LP data (actually FB bit), also enables LP command processing and LP IRQs @@ -1750,7 +1750,7 @@ void hp9845ct_state::lp_r5_w(uint16_t data) update_graphic_bits(); } -bool hp9845ct_state::lp_segment_intersect(unsigned yline) const +bool hp9845ct_base_state::lp_segment_intersect(unsigned yline) const { int xp = m_gv_lp_x; int yp = m_gv_lp_y; @@ -1770,7 +1770,7 @@ bool hp9845ct_state::lp_segment_intersect(unsigned yline) const return fx >= xc && ex <= (xc + 24); } -void hp9845ct_state::compute_lp_data(void) +void hp9845ct_base_state::compute_lp_data() { // get LP hit data, returns three words for cmd=6 and one word for cmd=4 // actually simulating the 9845 lightpen is a bit more complex, since YHI, XLEFT and YLO @@ -1889,7 +1889,7 @@ void hp9845ct_state::compute_lp_data(void) LOG("LP data %d %d %d %d (%u;%d) (%u;%u) %u %u %u %04x %04x %04x\n" , m_gv_lp_selftest , m_gv_lp_interlace , m_gv_lp_sw , m_gv_lp_hit_lt192 , m_gv_lp_cursor_x , yc , m_gv_lp_x , m_gv_lp_y , yhi , xleft , ylo , m_gv_next_lp_data[ 0 ] , m_gv_next_lp_data[ 1 ] , m_gv_next_lp_data[ 2 ]); } -void hp9845ct_state::lp_scanline_update(unsigned video_scanline) +void hp9845ct_base_state::lp_scanline_update(unsigned video_scanline) { if (video_scanline == 0) { compute_lp_data(); @@ -1922,11 +1922,11 @@ void hp9845ct_state::lp_scanline_update(unsigned video_scanline) } } -const uint16_t hp9845ct_state::m_line_type[] = { +const uint16_t hp9845ct_base_state::m_line_type[] = { 0xffff, 0xaaaa, 0xff00, 0xfff0, 0xfffa, 0xfff6, 0xffb6, 0x0000 }; -const uint16_t hp9845ct_state::m_area_fill[] = { +const uint16_t hp9845ct_base_state::m_area_fill[] = { 0xffff, 0xefff, 0xefbf, 0xefaf, 0xafaf, 0xadaf, 0xada7, 0xada5, 0xa5a5, 0xa4a5, 0xa4a1, 0xa4a0, 0xa0a0, 0x80a0, 0x8020, 0x8000 }; @@ -1934,7 +1934,7 @@ const uint16_t hp9845ct_state::m_area_fill[] = { // *************** // hp9845c_state // *************** -class hp9845c_state : public hp9845ct_state +class hp9845c_state : public hp9845ct_base_state { public: hp9845c_state(const machine_config &mconfig, device_type type, const char *tag); @@ -1953,10 +1953,10 @@ protected: void graphic_video_render(unsigned video_scanline); virtual void plot(uint16_t x, uint16_t y, bool draw_erase) override; - void check_io_counter_restore(void); - void advance_io_counter(void); + void check_io_counter_restore(); + void advance_io_counter(); virtual void advance_gv_fsm(bool ds , bool trigger) override; - virtual void update_graphic_bits(void) override; + virtual void update_graphic_bits() override; virtual void update_gcursor(void) override; @@ -1978,7 +1978,7 @@ protected: }; hp9845c_state::hp9845c_state(const machine_config &mconfig, device_type type, const char *tag) - : hp9845ct_state(mconfig , type , tag), + : hp9845ct_base_state(mconfig , type , tag), m_optional_chargen(*this , "optional_chargen") { } @@ -1986,7 +1986,7 @@ hp9845c_state::hp9845c_state(const machine_config &mconfig, device_type type, co void hp9845c_state::machine_start() { // Common part first - hp9845ct_state::machine_start(); + hp9845ct_base_state::machine_start(); m_graphic_mem[ 0 ].resize(GVIDEO_MEM_SIZE); m_graphic_mem[ 1 ].resize(GVIDEO_MEM_SIZE); @@ -2027,7 +2027,7 @@ void hp9845c_state::machine_start() void hp9845c_state::machine_reset() { // Common part first - hp9845ct_state::machine_reset(); + hp9845ct_base_state::machine_reset(); set_video_mar(0); @@ -2362,7 +2362,7 @@ void hp9845c_state::plot(uint16_t x, uint16_t y, bool draw_erase) } } -void hp9845c_state::check_io_counter_restore(void) +void hp9845c_state::check_io_counter_restore() { if (m_gv_last_cmd != m_gv_cmd) { // restore memory counter @@ -2377,7 +2377,7 @@ void hp9845c_state::check_io_counter_restore(void) } } -void hp9845c_state::advance_io_counter(void) +void hp9845c_state::advance_io_counter() { m_gv_plane++; if (m_gv_plane > 2) { @@ -2623,7 +2623,7 @@ void hp9845c_state::advance_gv_fsm(bool ds , bool trigger) update_graphic_bits(); } -void hp9845c_state::update_graphic_bits(void) +void hp9845c_state::update_graphic_bits() { bool lp_int = m_gv_lp_int_en && m_gv_lp_status; bool sk_int = m_gv_sk_status && m_gv_sk_en; @@ -2670,7 +2670,7 @@ void hp9845c_state::update_gcursor(void) // *************** // hp9845t_state // *************** -class hp9845t_state : public hp9845ct_state +class hp9845t_state : public hp9845ct_base_state { public: hp9845t_state(const machine_config &mconfig, device_type type, const char *tag); @@ -2692,7 +2692,7 @@ protected: void draw_full_arc(int x0 , int y0 , int dx , int dy , int draw_counter); virtual void advance_gv_fsm(bool ds , bool trigger) override; - virtual void update_graphic_bits(void) override; + virtual void update_graphic_bits() override; virtual void update_gcursor(void) override; @@ -2714,14 +2714,14 @@ protected: }; hp9845t_state::hp9845t_state(const machine_config &mconfig, device_type type, const char *tag) - : hp9845ct_state(mconfig , type , tag) + : hp9845ct_base_state(mconfig , type , tag) { } void hp9845t_state::machine_start() { // Common part first - hp9845ct_state::machine_start(); + hp9845ct_base_state::machine_start(); m_graphic_mem.resize(GVIDEO_MEM_SIZE); @@ -2736,7 +2736,7 @@ void hp9845t_state::machine_start() void hp9845t_state::machine_reset() { // Common part first - hp9845ct_state::machine_reset(); + hp9845ct_base_state::machine_reset(); m_gv_stat = false; m_gv_increment_to_next_row = false; @@ -3470,7 +3470,7 @@ void hp9845t_state::advance_gv_fsm(bool ds , bool trigger) update_graphic_bits(); } -void hp9845t_state::update_graphic_bits(void) +void hp9845t_state::update_graphic_bits() { bool gv_ready = (m_gv_lp_int_en && m_gv_lp_status) || (m_gv_sk_en && m_gv_sk_status); @@ -3515,7 +3515,7 @@ const uint8_t hp9845t_state::m_back_arrow_shape[] = { 0xf8, 0xf0, 0xe0, 0xc0, 0x80, 0x00, 0x00 }; -static MACHINE_CONFIG_START( hp9845a, hp9845_state ) +static MACHINE_CONFIG_START( hp9845a ) //MCFG_CPU_ADD("lpu", HP_5061_3010, XTAL_11_4MHz) //MCFG_CPU_ADD("ppu", HP_5061_3011, XTAL_11_4MHz) @@ -3530,7 +3530,7 @@ static MACHINE_CONFIG_START( hp9845a, hp9845_state ) MCFG_SOFTWARE_LIST_ADD("optrom_list", "hp9845a_rom") MACHINE_CONFIG_END -static MACHINE_CONFIG_START( hp9835a, hp9845_state ) +static MACHINE_CONFIG_START( hp9835a ) //MCFG_CPU_ADD("lpu", HP_5061_3001, XTAL_11_4MHz) //MCFG_CPU_ADD("ppu", HP_5061_3001, XTAL_11_4MHz) @@ -3682,7 +3682,7 @@ static MACHINE_CONFIG_FRAGMENT(hp9845_base) MCFG_RAM_EXTRA_OPTIONS("64K, 320K, 448K") MACHINE_CONFIG_END -static MACHINE_CONFIG_START(hp9845b, hp9845b_state) +static MACHINE_CONFIG_START(hp9845b) MCFG_FRAGMENT_ADD(hp9845_base) // video hardware MCFG_SCREEN_MODIFY("screen") @@ -3700,7 +3700,7 @@ static MACHINE_CONFIG_START(hp9845b, hp9845b_state) MACHINE_CONFIG_END -static MACHINE_CONFIG_START(hp9845c, hp9845c_state) +static MACHINE_CONFIG_START(hp9845c) MCFG_FRAGMENT_ADD(hp9845_base) // video hardware MCFG_SCREEN_MODIFY("screen") @@ -3714,7 +3714,7 @@ static MACHINE_CONFIG_START(hp9845c, hp9845c_state) MACHINE_CONFIG_END -static MACHINE_CONFIG_START(hp9845t, hp9845t_state) +static MACHINE_CONFIG_START(hp9845t) MCFG_FRAGMENT_ADD(hp9845_base) // video hardware MCFG_SCREEN_MODIFY("screen") @@ -3854,11 +3854,11 @@ ROM_START( hp9845t ) ROM_LOAD("9845-PPU-Color-Enhanced-Graphics.bin", 0, 0x10000, CRC(96e11edc) SHA1(3f1da50edb35dfc57ec2ecfd816a8c8230e110bd)) ROM_END -// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS -COMP( 1977, hp9845a, 0, 0, hp9845a, hp9845, driver_device, 0, "Hewlett-Packard", "9845A", MACHINE_IS_SKELETON | MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -COMP( 1977, hp9845s, hp9845a, 0, hp9845a, hp9845, driver_device, 0, "Hewlett-Packard", "9845S", MACHINE_IS_SKELETON | MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -COMP( 1979, hp9835a, 0, 0, hp9835a, hp9845, driver_device, 0, "Hewlett-Packard", "9835A", MACHINE_IS_SKELETON | MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -COMP( 1979, hp9835b, hp9835a, 0, hp9835a, hp9845, driver_device, 0, "Hewlett-Packard", "9835B", MACHINE_IS_SKELETON | MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -COMP( 1979, hp9845b, 0, 0, hp9845b, hp9845_base,driver_device, 0, "Hewlett-Packard", "9845B", 0 ) -COMP( 1982, hp9845t, 0, 0, hp9845t, hp9845ct,driver_device, 0, "Hewlett-Packard", "9845T", 0 ) -COMP( 1980, hp9845c, 0, 0, hp9845c, hp9845ct,driver_device, 0, "Hewlett-Packard", "9845C", 0 ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1977, hp9845a, 0, 0, hp9845a, hp9845, hp9845_state, 0, "Hewlett-Packard", "9845A", MACHINE_IS_SKELETON | MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +COMP( 1977, hp9845s, hp9845a, 0, hp9845a, hp9845, hp9845_state, 0, "Hewlett-Packard", "9845S", MACHINE_IS_SKELETON | MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +COMP( 1979, hp9835a, 0, 0, hp9835a, hp9845, hp9845_state, 0, "Hewlett-Packard", "9835A", MACHINE_IS_SKELETON | MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +COMP( 1979, hp9835b, hp9835a, 0, hp9835a, hp9845, hp9845_state, 0, "Hewlett-Packard", "9835B", MACHINE_IS_SKELETON | MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +COMP( 1979, hp9845b, 0, 0, hp9845b, hp9845_base, hp9845b_state, 0, "Hewlett-Packard", "9845B", 0 ) +COMP( 1982, hp9845t, 0, 0, hp9845t, hp9845ct, hp9845t_state, 0, "Hewlett-Packard", "9845T", 0 ) +COMP( 1980, hp9845c, 0, 0, hp9845c, hp9845ct, hp9845c_state, 0, "Hewlett-Packard", "9845C", 0 ) diff --git a/src/mame/drivers/hp9k.cpp b/src/mame/drivers/hp9k.cpp index 4334057d4d6..5326d2c905a 100644 --- a/src/mame/drivers/hp9k.cpp +++ b/src/mame/drivers/hp9k.cpp @@ -392,7 +392,7 @@ WRITE8_MEMBER( hp9k_state::kbd_put ) } -static MACHINE_CONFIG_START( hp9k, hp9k_state ) +static MACHINE_CONFIG_START( hp9k ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",M68000, XTAL_8MHz) MCFG_CPU_PROGRAM_MAP(hp9k_mem) @@ -429,5 +429,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1982, hp9816, 0, 0, hp9k, hp9k, hp9k_state, hp9k, "Hewlett Packard", "HP 9816" , MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +COMP( 1982, hp9816, 0, 0, hp9k, hp9k, hp9k_state, hp9k, "Hewlett Packard", "HP 9816" , MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/hp9k_3xx.cpp b/src/mame/drivers/hp9k_3xx.cpp index 1f2db5192c5..742672e1f72 100644 --- a/src/mame/drivers/hp9k_3xx.cpp +++ b/src/mame/drivers/hp9k_3xx.cpp @@ -287,7 +287,7 @@ WRITE32_MEMBER(hp9k3xx_state::buserror_w) } } -static MACHINE_CONFIG_START( hp9k310, hp9k3xx_state ) +static MACHINE_CONFIG_START( hp9k310 ) /* basic machine hardware */ MCFG_CPU_ADD(MAINCPU_TAG, M68010, 10000000) MCFG_CPU_PROGRAM_MAP(hp9k310_map) @@ -302,7 +302,7 @@ static MACHINE_CONFIG_START( hp9k310, hp9k3xx_state ) MCFG_SCREEN_REFRESH_RATE(70) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( hp9k320, hp9k3xx_state ) +static MACHINE_CONFIG_START( hp9k320 ) /* basic machine hardware */ MCFG_CPU_ADD(MAINCPU_TAG, M68020FPU, 16670000) MCFG_CPU_PROGRAM_MAP(hp9k320_map) @@ -317,7 +317,7 @@ static MACHINE_CONFIG_START( hp9k320, hp9k3xx_state ) MCFG_SCREEN_REFRESH_RATE(70) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( hp9k330, hp9k3xx_state ) +static MACHINE_CONFIG_START( hp9k330 ) /* basic machine hardware */ MCFG_CPU_ADD(MAINCPU_TAG, M68020PMMU, 16670000) MCFG_CPU_PROGRAM_MAP(hp9k330_map) @@ -332,7 +332,7 @@ static MACHINE_CONFIG_START( hp9k330, hp9k3xx_state ) MCFG_SCREEN_REFRESH_RATE(70) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( hp9k340, hp9k3xx_state ) +static MACHINE_CONFIG_START( hp9k340 ) /* basic machine hardware */ MCFG_CPU_ADD(MAINCPU_TAG, M68030, 16670000) MCFG_CPU_PROGRAM_MAP(hp9k330_map) @@ -347,7 +347,7 @@ static MACHINE_CONFIG_START( hp9k340, hp9k3xx_state ) MCFG_SCREEN_REFRESH_RATE(70) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( hp9k370, hp9k3xx_state ) +static MACHINE_CONFIG_START( hp9k370 ) /* basic machine hardware */ MCFG_CPU_ADD(MAINCPU_TAG, M68030, 33000000) MCFG_CPU_PROGRAM_MAP(hp9k370_map) @@ -362,7 +362,7 @@ static MACHINE_CONFIG_START( hp9k370, hp9k3xx_state ) MCFG_SCREEN_REFRESH_RATE(70) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( hp9k380, hp9k3xx_state ) +static MACHINE_CONFIG_START( hp9k380 ) /* basic machine hardware */ MCFG_CPU_ADD(MAINCPU_TAG, M68040, 25000000) // 25 MHz? 33? MCFG_CPU_PROGRAM_MAP(hp9k330_map) @@ -377,7 +377,7 @@ static MACHINE_CONFIG_START( hp9k380, hp9k3xx_state ) MCFG_SCREEN_REFRESH_RATE(70) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( hp9k382, hp9k3xx_state ) +static MACHINE_CONFIG_START( hp9k382 ) /* basic machine hardware */ MCFG_CPU_ADD(MAINCPU_TAG, M68040, 25000000) // 25 MHz? 33? MCFG_CPU_PROGRAM_MAP(hp9k382_map) @@ -459,11 +459,11 @@ ROM_START( hp9k382 ) ROM_LOAD( "1818-5282_8ce61e951207_28c64.bin", 0x000000, 0x002000, CRC(740442f3) SHA1(ab65bd4eec1024afb97fc2dd3bd3f017e90f49ae) ) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1985, hp9k310, 0, 0, hp9k310, hp9k330, driver_device, 0, "Hewlett-Packard", "HP9000/310", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -COMP( 1985, hp9k320, 0, 0, hp9k320, hp9k330, driver_device, 0, "Hewlett-Packard", "HP9000/320", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -COMP( 1987, hp9k330, 0, 0, hp9k330, hp9k330, driver_device, 0, "Hewlett-Packard", "HP9000/330", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -COMP( 1989, hp9k340, hp9k330,0, hp9k340, hp9k330, driver_device, 0, "Hewlett-Packard", "HP9000/340", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -COMP( 1988, hp9k370, hp9k330,0, hp9k370, hp9k330, driver_device, 0, "Hewlett-Packard", "HP9000/370", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -COMP( 1991, hp9k380, 0, 0, hp9k380, hp9k330, driver_device, 0, "Hewlett-Packard", "HP9000/380", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -COMP( 1991, hp9k382, 0, 0, hp9k382, hp9k330, driver_device, 0, "Hewlett-Packard", "HP9000/382", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +COMP( 1985, hp9k310, 0, 0, hp9k310, hp9k330, hp9k3xx_state, 0, "Hewlett-Packard", "HP9000/310", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +COMP( 1985, hp9k320, 0, 0, hp9k320, hp9k330, hp9k3xx_state, 0, "Hewlett-Packard", "HP9000/320", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +COMP( 1987, hp9k330, 0, 0, hp9k330, hp9k330, hp9k3xx_state, 0, "Hewlett-Packard", "HP9000/330", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +COMP( 1989, hp9k340, hp9k330,0, hp9k340, hp9k330, hp9k3xx_state, 0, "Hewlett-Packard", "HP9000/340", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +COMP( 1988, hp9k370, hp9k330,0, hp9k370, hp9k330, hp9k3xx_state, 0, "Hewlett-Packard", "HP9000/370", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +COMP( 1991, hp9k380, 0, 0, hp9k380, hp9k330, hp9k3xx_state, 0, "Hewlett-Packard", "HP9000/380", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +COMP( 1991, hp9k382, 0, 0, hp9k382, hp9k330, hp9k3xx_state, 0, "Hewlett-Packard", "HP9000/382", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) diff --git a/src/mame/drivers/hp_ipc.cpp b/src/mame/drivers/hp_ipc.cpp index 10f280fae18..9b6c4115f90 100644 --- a/src/mame/drivers/hp_ipc.cpp +++ b/src/mame/drivers/hp_ipc.cpp @@ -418,7 +418,7 @@ public: private: required_device m_maincpu; required_device m_bankdev; - required_device m_fdc; + required_device m_fdc; required_device m_ram; required_device m_screen; @@ -478,7 +478,7 @@ static ADDRESS_MAP_START(hp_ipc_mem_inner, AS_PROGRAM, 16, hp_ipc_state) AM_RANGE(0x0100000, 0x04FFFFF) AM_UNMAP // External ROM modules AM_RANGE(0x0600000, 0x060FFFF) AM_READWRITE(mmu_r, mmu_w) AM_RANGE(0x0610000, 0x0610007) AM_READWRITE8(floppy_id_r, floppy_id_w, 0x00ff) - AM_RANGE(0x0610008, 0x061000F) AM_DEVREADWRITE8("fdc", wd2797_t, read, write, 0x00ff) + AM_RANGE(0x0610008, 0x061000F) AM_DEVREADWRITE8("fdc", wd2797_device, read, write, 0x00ff) AM_RANGE(0x0620000, 0x062000F) AM_DEVREADWRITE8("gpu", hp1ll3_device, read, write, 0x00ff) AM_RANGE(0x0630000, 0x063FFFF) AM_NOP // AM_DEVREADWRITE8(TMS9914_TAG, tms9914_device, read, write, 0x00ff) AM_RANGE(0x0640000, 0x064002F) AM_DEVREADWRITE8("rtc", mm58167_device, read, write, 0x00ff) @@ -709,7 +709,7 @@ SLOT_INTERFACE_END * 2 HP-HIL devices (keyboard, mouse) * 1 Real-time clock */ -static MACHINE_CONFIG_START(hp_ipc, hp_ipc_state) +static MACHINE_CONFIG_START(hp_ipc) MCFG_CPU_ADD("maincpu", M68000, XTAL_15_92MHz / 2) MCFG_CPU_PROGRAM_MAP(hp_ipc_mem_outer) @@ -767,4 +767,4 @@ ROM_START(hp_ipc) ROM_END -COMP(1985, hp_ipc, 0, 0, hp_ipc, hp_ipc, driver_device, 0, "HP", "Integral Personal Computer", MACHINE_NO_SOUND|MACHINE_IMPERFECT_GRAPHICS|MACHINE_IMPERFECT_KEYBOARD) +COMP(1985, hp_ipc, 0, 0, hp_ipc, hp_ipc, hp_ipc_state, 0, "HP", "Integral Personal Computer", MACHINE_NO_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_KEYBOARD) diff --git a/src/mame/drivers/hprot1.cpp b/src/mame/drivers/hprot1.cpp index 188297ca4a5..56d9913e638 100644 --- a/src/mame/drivers/hprot1.cpp +++ b/src/mame/drivers/hprot1.cpp @@ -300,7 +300,7 @@ HD44780_PIXEL_UPDATE(hprot1_state::hprot1_pixel_update) } } -static MACHINE_CONFIG_START( hprot1, hprot1_state ) +static MACHINE_CONFIG_START( hprot1 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I80C31, XTAL_10MHz) MCFG_CPU_PROGRAM_MAP(i80c31_prg) @@ -380,5 +380,5 @@ COMP( 2002, hprot1, 0, 0, hprot1, hprot1, hprot1_state, hprot1 COMP( 2006, hprotr8a, hprot1, 0, hprotr8a, hprotr8a, hprot1_state, hprot1, "HENRY", "Henry Prot CARD I (REV.08A)", MACHINE_NOT_WORKING) /* fw version: "V6.5QI I" Release date: September 18th, 2006. */ -COMP( 2003, hprot2r6, hprot1, 0, hprot2r6, hprot2r6, hprot1_state, hprot1, "HENRY", "Henry Prot CARD II (REV.6)", MACHINE_NOT_WORKING) +COMP( 2003, hprot2r6, hprot1, 0, hprot2r6, hprot2r6, hprot1_state, hprot1, "HENRY", "Henry Prot CARD II (REV.6)", MACHINE_NOT_WORKING) /* fw version: "V5.8CF II" Release date: June 23rd, 2003. */ diff --git a/src/mame/drivers/hpz80unk.cpp b/src/mame/drivers/hpz80unk.cpp index c84bcaa369f..4a6f78632d5 100644 --- a/src/mame/drivers/hpz80unk.cpp +++ b/src/mame/drivers/hpz80unk.cpp @@ -55,7 +55,7 @@ public: DECLARE_READ8_MEMBER(port03_r); DECLARE_READ8_MEMBER(port04_r); DECLARE_READ8_MEMBER(portfc_r); - DECLARE_WRITE8_MEMBER(kbd_put); + void kbd_put(u8 data); required_shared_ptr m_p_rom; uint8_t m_term_data; uint8_t m_port02_data; @@ -114,12 +114,12 @@ void hpz80unk_state::machine_reset() // this should be rom/ram banking } -WRITE8_MEMBER( hpz80unk_state::kbd_put ) +void hpz80unk_state::kbd_put(u8 data) { m_term_data = data; } -static MACHINE_CONFIG_START( hpz80unk, hpz80unk_state ) +static MACHINE_CONFIG_START( hpz80unk ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80, XTAL_4MHz) MCFG_CPU_PROGRAM_MAP(hpz80unk_mem) @@ -127,7 +127,7 @@ static MACHINE_CONFIG_START( hpz80unk, hpz80unk_state ) /* video hardware */ MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0) - MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(hpz80unk_state, kbd_put)) + MCFG_GENERIC_TERMINAL_KEYBOARD_CB(PUT(hpz80unk_state, kbd_put)) MACHINE_CONFIG_END /* ROM definition */ @@ -155,5 +155,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1977, hpz80unk, 0, 0, hpz80unk, hpz80unk, driver_device, 0, "Hewlett-Packard", "unknown Z80-based mainframe", MACHINE_IS_SKELETON | MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1977, hpz80unk, 0, 0, hpz80unk, hpz80unk, hpz80unk_state, 0, "Hewlett-Packard", "unknown Z80-based mainframe", MACHINE_IS_SKELETON | MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW ) diff --git a/src/mame/drivers/ht68k.cpp b/src/mame/drivers/ht68k.cpp index 0a810999b29..900c70bcc2b 100644 --- a/src/mame/drivers/ht68k.cpp +++ b/src/mame/drivers/ht68k.cpp @@ -54,7 +54,7 @@ public: required_device m_maincpu; required_device m_duart; - required_device m_fdc; + required_device m_fdc; required_device m_floppy0; required_device m_floppy1; required_device m_floppy2; @@ -73,7 +73,7 @@ static ADDRESS_MAP_START(ht68k_mem, AS_PROGRAM, 16, ht68k_state) AM_RANGE(0x00000000, 0x0007ffff) AM_RAM AM_SHARE("p_ram") // 512 KB RAM / ROM at boot //AM_RANGE(0x00080000, 0x000fffff) // Expansion //AM_RANGE(0x00d80000, 0x00d8ffff) // Printer - AM_RANGE(0x00e00000, 0x00e00007) AM_MIRROR(0xfff8) AM_DEVREADWRITE8("wd1770", wd1770_t, read, write, 0x00ff) // FDC WD1770 + AM_RANGE(0x00e00000, 0x00e00007) AM_MIRROR(0xfff8) AM_DEVREADWRITE8("wd1770", wd1770_device, read, write, 0x00ff) // FDC WD1770 AM_RANGE(0x00e80000, 0x00e800ff) AM_MIRROR(0xff00) AM_DEVREADWRITE8("duart68681", mc68681_device, read, write, 0xff ) AM_RANGE(0x00f00000, 0x00f07fff) AM_ROM AM_MIRROR(0xf8000) AM_REGION("user1",0) ADDRESS_MAP_END @@ -123,7 +123,7 @@ static SLOT_INTERFACE_START( ht68k_floppies ) SLOT_INTERFACE_END -static MACHINE_CONFIG_START( ht68k, ht68k_state ) +static MACHINE_CONFIG_START( ht68k ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",M68000, XTAL_8MHz) MCFG_CPU_PROGRAM_MAP(ht68k_mem) @@ -158,5 +158,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1987, ht68k, 0, 0, ht68k, ht68k, driver_device, 0, "Hawthorne Technology", "TinyGiant HT68k", MACHINE_NO_SOUND) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1987, ht68k, 0, 0, ht68k, ht68k, ht68k_state, 0, "Hawthorne Technology", "TinyGiant HT68k", MACHINE_NO_SOUND) diff --git a/src/mame/drivers/huebler.cpp b/src/mame/drivers/huebler.cpp index 60eb7e4ad31..13e77786de1 100644 --- a/src/mame/drivers/huebler.cpp +++ b/src/mame/drivers/huebler.cpp @@ -309,7 +309,7 @@ static GFXDECODE_START( amu880 ) GFXDECODE_END -static MACHINE_CONFIG_START( amu880, amu880_state ) +static MACHINE_CONFIG_START( amu880 ) /* basic machine hardware */ MCFG_CPU_ADD(Z80_TAG, Z80, XTAL_10MHz/4) // U880D MCFG_CPU_PROGRAM_MAP(amu880_mem) @@ -378,5 +378,5 @@ ROM_END /* System Drivers */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1983, amu880, 0, 0, amu880, amu880, driver_device, 0, "Militaerverlag der DDR", "Ausbaufaehiger Mikrocomputer mit dem U 880", MACHINE_NO_SOUND ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT INIT COMPANY FULLNAME FLAGS */ +COMP( 1983, amu880, 0, 0, amu880, amu880, amu880_state, 0, "Militaerverlag der DDR", "Ausbaufaehiger Mikrocomputer mit dem U 880", MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/hunter2.cpp b/src/mame/drivers/hunter2.cpp index fa4c0713aad..5ea770d3db2 100644 --- a/src/mame/drivers/hunter2.cpp +++ b/src/mame/drivers/hunter2.cpp @@ -365,7 +365,7 @@ WRITE_LINE_MEMBER(hunter2_state::rxd_w) m_maincpu->set_input_line(NSC800_RSTB, ASSERT_LINE); } -static MACHINE_CONFIG_START( hunter2, hunter2_state ) +static MACHINE_CONFIG_START( hunter2 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", NSC800, XTAL_4MHz) MCFG_CPU_PROGRAM_MAP(hunter2_mem) @@ -442,5 +442,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS COMP( 1981, hunter2, 0, 0, hunter2, hunter2, hunter2_state, hunter2, "Husky", "Hunter 2", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/hvyunit.cpp b/src/mame/drivers/hvyunit.cpp index cd1ab6c5289..3dd8fb8f6c5 100644 --- a/src/mame/drivers/hvyunit.cpp +++ b/src/mame/drivers/hvyunit.cpp @@ -644,7 +644,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(hvyunit_state::scanline) * *************************************/ -static MACHINE_CONFIG_START( hvyunit, hvyunit_state ) +static MACHINE_CONFIG_START( hvyunit ) MCFG_CPU_ADD("master", Z80, 6000000) MCFG_CPU_PROGRAM_MAP(master_memory) @@ -815,7 +815,7 @@ ROM_END * *************************************/ -GAME( 1988, hvyunit, 0, hvyunit, hvyunit, driver_device, 0, ROT0, "Kaneko / Taito", "Heavy Unit (World)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1988, hvyunitj, hvyunit, hvyunit, hvyunitj, driver_device, 0, ROT0, "Kaneko / Taito", "Heavy Unit (Japan, Newer)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1988, hvyunitjo,hvyunit, hvyunit, hvyunitj, driver_device, 0, ROT0, "Kaneko / Taito", "Heavy Unit (Japan, Older)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1988, hvyunitu, hvyunit, hvyunit, hvyunitj, driver_device, 0, ROT0, "Kaneko / Taito", "Heavy Unit -U.S.A. Version- (US)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1988, hvyunit, 0, hvyunit, hvyunit, hvyunit_state, 0, ROT0, "Kaneko / Taito", "Heavy Unit (World)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1988, hvyunitj, hvyunit, hvyunit, hvyunitj, hvyunit_state, 0, ROT0, "Kaneko / Taito", "Heavy Unit (Japan, Newer)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1988, hvyunitjo,hvyunit, hvyunit, hvyunitj, hvyunit_state, 0, ROT0, "Kaneko / Taito", "Heavy Unit (Japan, Older)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1988, hvyunitu, hvyunit, hvyunit, hvyunitj, hvyunit_state, 0, ROT0, "Kaneko / Taito", "Heavy Unit -U.S.A. Version- (US)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/hx20.cpp b/src/mame/drivers/hx20.cpp index 6243512b079..6e14fcbdccc 100644 --- a/src/mame/drivers/hx20.cpp +++ b/src/mame/drivers/hx20.cpp @@ -817,7 +817,7 @@ void hx20_state::machine_start() // MACHINE_CONFIG( hx20 ) //------------------------------------------------- -static MACHINE_CONFIG_START( hx20, hx20_state ) +static MACHINE_CONFIG_START( hx20 ) // basic machine hardware MCFG_CPU_ADD(HD6301V1_MAIN_TAG, HD63701, XTAL_2_4576MHz) MCFG_CPU_PROGRAM_MAP(hx20_mem) @@ -920,6 +920,6 @@ ROM_END // SYSTEM DRIVERS //************************************************************************** -// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS -COMP( 1983, ehx20, 0, 0, hx20, hx20, driver_device, 0, "Epson", "Epson HX-20", MACHINE_NOT_WORKING ) -COMP( 1983, ehx20e, ehx20, 0, hx20, hx20e, driver_device, 0, "Epson", "Epson HX-20 (Europe)", MACHINE_NOT_WORKING ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1983, ehx20, 0, 0, hx20, hx20, hx20_state, 0, "Epson", "Epson HX-20", MACHINE_NOT_WORKING ) +COMP( 1983, ehx20e, ehx20, 0, hx20, hx20e, hx20_state, 0, "Epson", "Epson HX-20 (Europe)", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/hyhoo.cpp b/src/mame/drivers/hyhoo.cpp index 9b5770f3682..e753ba0a1f6 100644 --- a/src/mame/drivers/hyhoo.cpp +++ b/src/mame/drivers/hyhoo.cpp @@ -224,7 +224,7 @@ static INPUT_PORTS_START( hyhoo2 ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) INPUT_PORTS_END -static MACHINE_CONFIG_START( hyhoo, hyhoo_state ) +static MACHINE_CONFIG_START( hyhoo ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 5000000) /* 5.00 MHz ?? */ @@ -309,5 +309,5 @@ ROM_START( hyhoo2 ) ROM_END -GAME( 1987, hyhoo, 0, hyhoo, hyhoo, driver_device, 0, ROT90, "Nichibutsu", "Hayaoshi Taisen Quiz Hyhoo (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, hyhoo2, 0, hyhoo2, hyhoo2, driver_device, 0, ROT90, "Nichibutsu", "Hayaoshi Taisen Quiz Hyhoo 2 (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, hyhoo, 0, hyhoo, hyhoo, hyhoo_state, 0, ROT90, "Nichibutsu", "Hayaoshi Taisen Quiz Hyhoo (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, hyhoo2, 0, hyhoo2, hyhoo2, hyhoo_state, 0, ROT90, "Nichibutsu", "Hayaoshi Taisen Quiz Hyhoo 2 (Japan)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/hyperscan.cpp b/src/mame/drivers/hyperscan.cpp index 2e25154e065..91447a27ce3 100644 --- a/src/mame/drivers/hyperscan.cpp +++ b/src/mame/drivers/hyperscan.cpp @@ -616,7 +616,7 @@ void hyperscan_state::machine_reset() } -static MACHINE_CONFIG_START( hyperscan, hyperscan_state ) +static MACHINE_CONFIG_START( hyperscan ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", SCORE7, XTAL_27MHz * 4) // 108MHz S+core 7 MCFG_CPU_PROGRAM_MAP(spg290_mem) @@ -644,5 +644,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 2006, hs, 0, 0, hyperscan , hyperscan , driver_device, 0, "Mattel", "HyperScan", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 2006, hs, 0, 0, hyperscan, hyperscan, hyperscan_state, 0, "Mattel", "HyperScan", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/hyperspt.cpp b/src/mame/drivers/hyperspt.cpp index b96ef7ed5ed..ce9f7df21ae 100644 --- a/src/mame/drivers/hyperspt.cpp +++ b/src/mame/drivers/hyperspt.cpp @@ -283,7 +283,7 @@ INTERRUPT_GEN_MEMBER(hyperspt_state::vblank_irq) device.execute().set_input_line(0, HOLD_LINE); } -static MACHINE_CONFIG_START( hyperspt, hyperspt_state ) +static MACHINE_CONFIG_START( hyperspt ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", KONAMI1, XTAL_18_432MHz/12) /* verified on pcb */ @@ -569,9 +569,9 @@ ROM_START( roadf3 ) // This hack was found on an original GX330 (Hyper Sports) P ROM_LOAD( "82s129.a9", 0x0120, 0x0100, CRC(5b3b5f2a) SHA1(e83556fba6d50ad20dff6e19bd300ba0c30cc6e2) ) // identical to a09_c29.bin ROM_END -GAME( 1984, hyperspt, 0, hyperspt, hyperspt, driver_device, 0, ROT0, "Konami (Centuri license)", "Hyper Sports", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, hypersptb, hyperspt, hypersptb, hyperspt, driver_device, 0, ROT0, "bootleg", "Hyper Sports (bootleg)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // has ADPCM vis MSM5205 instead of VLM -GAME( 1984, hpolym84, hyperspt, hyperspt, hyperspt, driver_device, 0, ROT0, "Konami", "Hyper Olympic '84", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, roadf, 0, roadf, roadf, driver_device, 0, ROT90, "Konami", "Road Fighter (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, roadf2, roadf, roadf, roadf, driver_device, 0, ROT90, "Konami", "Road Fighter (set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, roadf3, roadf, roadf, roadf, driver_device, 0, ROT90, "hack", "Road Fighter (set 3, conversion hack on Hyper Sports PCB)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, hyperspt, 0, hyperspt, hyperspt, hyperspt_state, 0, ROT0, "Konami (Centuri license)", "Hyper Sports", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, hypersptb, hyperspt, hypersptb, hyperspt, hyperspt_state, 0, ROT0, "bootleg", "Hyper Sports (bootleg)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // has ADPCM vis MSM5205 instead of VLM +GAME( 1984, hpolym84, hyperspt, hyperspt, hyperspt, hyperspt_state, 0, ROT0, "Konami", "Hyper Olympic '84", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, roadf, 0, roadf, roadf, hyperspt_state, 0, ROT90, "Konami", "Road Fighter (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, roadf2, roadf, roadf, roadf, hyperspt_state, 0, ROT90, "Konami", "Road Fighter (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, roadf3, roadf, roadf, roadf, hyperspt_state, 0, ROT90, "hack", "Road Fighter (set 3, conversion hack on Hyper Sports PCB)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/hyprduel.cpp b/src/mame/drivers/hyprduel.cpp index 3df2fa71b7f..e178b21a2b0 100644 --- a/src/mame/drivers/hyprduel.cpp +++ b/src/mame/drivers/hyprduel.cpp @@ -649,7 +649,7 @@ MACHINE_START_MEMBER(hyprduel_state,magerror) m_magerror_irq_timer->adjust(attotime::zero, 0, attotime::from_hz(968)); /* tempo? */ } -static MACHINE_CONFIG_START( hyprduel, hyprduel_state ) +static MACHINE_CONFIG_START( hyprduel ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000,20000000/2) /* 10MHz */ @@ -684,13 +684,13 @@ static MACHINE_CONFIG_START( hyprduel, hyprduel_state ) MCFG_SOUND_ROUTE(0, "lspeaker", 0.80) MCFG_SOUND_ROUTE(1, "rspeaker", 0.80) - MCFG_OKIM6295_ADD("oki", 4000000/16/16*132, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki", 4000000/16/16*132, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.57) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.57) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( magerror, hyprduel_state ) +static MACHINE_CONFIG_START( magerror ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000,20000000/2) /* 10MHz */ @@ -724,7 +724,7 @@ static MACHINE_CONFIG_START( magerror, hyprduel_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.00) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.00) - MCFG_OKIM6295_ADD("oki", 4000000/16/16*132, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki", 4000000/16/16*132, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.57) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.57) MACHINE_CONFIG_END diff --git a/src/mame/drivers/i7000.cpp b/src/mame/drivers/i7000.cpp index 0b822ebaf08..f8c38bdf255 100644 --- a/src/mame/drivers/i7000.cpp +++ b/src/mame/drivers/i7000.cpp @@ -44,6 +44,7 @@ #include "emu.h" #include "bus/generic/carts.h" +#include "bus/generic/slot.h" #include "cpu/z80/z80.h" //CPU was actually a NSC800 (Z80 compatible) #include "machine/i8279.h" #include "machine/pit8253.h" @@ -331,7 +332,7 @@ MC6845_ON_UPDATE_ADDR_CHANGED(i7000_state::crtc_addr) } -static MACHINE_CONFIG_START( i7000, i7000_state ) +static MACHINE_CONFIG_START( i7000 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", NSC800, XTAL_4MHz) @@ -414,5 +415,5 @@ ROM_START( i7000 ) ROM_LOAD( "i7000_telex_ci09.rom", 0x0000, 0x1000, CRC(c1c8fcc8) SHA1(cbf5fb600e587b998f190a9e3fb398a51d8a5e87) ) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS COMP( 1982, i7000, 0, 0, i7000, i7000, i7000_state, i7000, "Itautec", "I-7000", MACHINE_NOT_WORKING) diff --git a/src/mame/drivers/ibm3153.cpp b/src/mame/drivers/ibm3153.cpp index d5e0e0225b0..92d66ff8fea 100644 --- a/src/mame/drivers/ibm3153.cpp +++ b/src/mame/drivers/ibm3153.cpp @@ -93,7 +93,7 @@ void ibm3153_state::machine_reset() { } -static MACHINE_CONFIG_START( ibm3153, ibm3153_state ) +static MACHINE_CONFIG_START( ibm3153 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I80C32, XTAL_16MHz) // no idea of clock MCFG_CPU_PROGRAM_MAP(ibm3153_mem) @@ -123,5 +123,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1999?, ibm3153, 0, 0, ibm3153, ibm3153, driver_device, 0, "IBM", "IBM 3153 Terminal", MACHINE_IS_SKELETON) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 1999?, ibm3153, 0, 0, ibm3153, ibm3153, ibm3153_state, 0, "IBM", "IBM 3153 Terminal", MACHINE_IS_SKELETON) diff --git a/src/mame/drivers/ibm6580.cpp b/src/mame/drivers/ibm6580.cpp index 787355f84af..b88d7feb381 100644 --- a/src/mame/drivers/ibm6580.cpp +++ b/src/mame/drivers/ibm6580.cpp @@ -874,7 +874,7 @@ static SLOT_INTERFACE_START( dw_floppies ) SLOT_INTERFACE( "8sssd", IBM_6360 ) SLOT_INTERFACE_END -static MACHINE_CONFIG_START( ibm6580, ibm6580_state ) +static MACHINE_CONFIG_START( ibm6580 ) MCFG_CPU_ADD("maincpu", I8086, XTAL_14_7456MHz/3) MCFG_CPU_PROGRAM_MAP(ibm6580_mem) MCFG_CPU_IO_MAP(ibm6580_io) @@ -971,5 +971,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1980, ibm6580, 0, 0, ibm6580, ibm6580, driver_device, 0, "IBM", "IBM 6580 Displaywriter", MACHINE_IS_SKELETON) +/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ +COMP( 1980, ibm6580, 0, 0, ibm6580, ibm6580, ibm6580_state, 0, "IBM", "IBM 6580 Displaywriter", MACHINE_IS_SKELETON) diff --git a/src/mame/drivers/ibmpc.cpp b/src/mame/drivers/ibmpc.cpp index 0e3db41f1eb..01f9aa926b3 100644 --- a/src/mame/drivers/ibmpc.cpp +++ b/src/mame/drivers/ibmpc.cpp @@ -286,7 +286,7 @@ static DEVICE_INPUT_DEFAULTS_START(cga) DEVICE_INPUT_DEFAULTS("DSW0",0x30, 0x20) DEVICE_INPUT_DEFAULTS_END -static MACHINE_CONFIG_START( ibm5150, ibmpc_state ) +static MACHINE_CONFIG_START( ibm5150 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8088, XTAL_14_31818MHz/3) MCFG_CPU_PROGRAM_MAP(pc8_map) @@ -323,7 +323,7 @@ static MACHINE_CONFIG_DERIVED( ibm5140, ibm5150 ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( ibm5160, ibmpc_state ) +static MACHINE_CONFIG_START( ibm5160 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8088, XTAL_14_31818MHz/3) MCFG_CPU_PROGRAM_MAP(pc8_map) @@ -555,8 +555,8 @@ ROM_END ***************************************************************************/ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ -COMP( 1981, ibm5150, 0, 0, ibm5150, 0, driver_device, 0, "International Business Machines", "IBM PC 5150" , 0) -COMP( 1982, ibm5155, ibm5150, 0, ibm5150, 0, driver_device, 0, "International Business Machines", "IBM PC 5155" , 0) -COMP( 1985, ibm5140, ibm5150, 0, ibm5140, 0, driver_device, 0, "International Business Machines", "IBM PC 5140 Convertible" , MACHINE_NOT_WORKING) -COMP( 1982, ibm5160, ibm5150, 0, ibm5160, 0, driver_device, 0, "International Business Machines", "IBM XT 5160" , 0) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1981, ibm5150, 0, 0, ibm5150, 0, ibmpc_state, 0, "International Business Machines", "IBM PC 5150", 0 ) +COMP( 1982, ibm5155, ibm5150, 0, ibm5150, 0, ibmpc_state, 0, "International Business Machines", "IBM PC 5155", 0 ) +COMP( 1985, ibm5140, ibm5150, 0, ibm5140, 0, ibmpc_state, 0, "International Business Machines", "IBM PC 5140 Convertible", MACHINE_NOT_WORKING ) +COMP( 1982, ibm5160, ibm5150, 0, ibm5160, 0, ibmpc_state, 0, "International Business Machines", "IBM XT 5160", 0 ) diff --git a/src/mame/drivers/ibmpcjr.cpp b/src/mame/drivers/ibmpcjr.cpp index de7382b4a2d..5e211507869 100644 --- a/src/mame/drivers/ibmpcjr.cpp +++ b/src/mame/drivers/ibmpcjr.cpp @@ -575,7 +575,7 @@ static ADDRESS_MAP_START(ibmpcjx_io, AS_IO, 8, pcjr_state) AM_IMPORT_FROM( ibmpcjr_io ) ADDRESS_MAP_END -static MACHINE_CONFIG_START( ibmpcjr, pcjr_state) +static MACHINE_CONFIG_START( ibmpcjr ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8088, 4900000) MCFG_CPU_PROGRAM_MAP(ibmpcjr_map) @@ -713,7 +713,7 @@ ROM_START( ibmpcjx ) ROM_LOAD("kanji.rom", 0x00000, 0x38000, BAD_DUMP CRC(eaa6e3c3) SHA1(35554587d02d947fae8446964b1886fff5c9d67f)) // hand-made rom ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS // pcjr COMP( 1983, ibmpcjr, ibm5150, 0, ibmpcjr, ibmpcjr, pcjr_state, pcjr, "International Business Machines", "IBM PC Jr", MACHINE_IMPERFECT_COLORS ) COMP( 1985, ibmpcjx, ibm5150, 0, ibmpcjx, ibmpcjr, pcjr_state, pcjr, "International Business Machines", "IBM PC JX", MACHINE_IMPERFECT_COLORS | MACHINE_NOT_WORKING) diff --git a/src/mame/drivers/icatel.cpp b/src/mame/drivers/icatel.cpp index 240fce9f9fa..c172f16cb04 100644 --- a/src/mame/drivers/icatel.cpp +++ b/src/mame/drivers/icatel.cpp @@ -239,7 +239,7 @@ HD44780_PIXEL_UPDATE(icatel_state::icatel_pixel_update) } } -static MACHINE_CONFIG_START( icatel, icatel_state ) +static MACHINE_CONFIG_START( icatel ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I80C31, XTAL_2_097152MHz) MCFG_CPU_PROGRAM_MAP(i80c31_prg) @@ -270,6 +270,6 @@ ROM_START( icatel ) ROM_LOAD( "icatel_tpci_em._4_v16.05.ci14", 0x00000, 0x8000, CRC(d310586e) SHA1(21736ad5a06cf9695f8cc5ff2dc2d19b101504f5) ) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1995, icatel, 0, 0, icatel, 0, icatel_state, icatel, "Icatel", "TPCI (Brazilian public payphone)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 1995, icatel, 0, 0, icatel, 0, icatel_state, icatel, "Icatel", "TPCI (Brazilian public payphone)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND) /*The hardware was clearly manufactured in 1995. There's no evindence of the actual date of the firmware.*/ diff --git a/src/mame/drivers/ice_bozopail.cpp b/src/mame/drivers/ice_bozopail.cpp index 76320a23b22..fe0df02664c 100644 --- a/src/mame/drivers/ice_bozopail.cpp +++ b/src/mame/drivers/ice_bozopail.cpp @@ -20,10 +20,10 @@ http://www.highwaygames.com/arcade-machines/bozo-s-grand-prize-game-6751/ #include "emu.h" #include "speaker.h" -class ice_bozopail : public driver_device +class ice_bozopail_state : public driver_device { public: - ice_bozopail(const machine_config &mconfig, device_type type, const char *tag) + ice_bozopail_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag) // ,m_maincpu(*this, "maincpu") { } @@ -39,16 +39,16 @@ INPUT_PORTS_END -void ice_bozopail::machine_start() +void ice_bozopail_state::machine_start() { } -void ice_bozopail::machine_reset() +void ice_bozopail_state::machine_reset() { } -static MACHINE_CONFIG_START( ice_bozoice_bozo, ice_bozopail ) +static MACHINE_CONFIG_START( ice_bozoice_bozo ) /* basic machine hardware */ // MCFG_CPU_ADD("maincpu", ??, 8000000) // unknown @@ -67,4 +67,4 @@ ROM_START( ice_bozo ) ROM_LOAD( "ICE-BOZO.U9", 0x100000, 0x100000, CRC(26fd9d60) SHA1(41fe8d42db1eb16b413bd5a0f16bf0d081c3cc97) ) ROM_END -GAME( 1997?, ice_bozo, 0, ice_bozoice_bozo, ice_bozoice_bozo, driver_device, 0, ROT0, "Innovative Creations in Entertainment", "Bozo's Pail Toss (v2.07)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 1997?, ice_bozo, 0, ice_bozoice_bozo, ice_bozoice_bozo, ice_bozopail_state, 0, ROT0, "Innovative Creations in Entertainment", "Bozo's Pail Toss (v2.07)", MACHINE_IS_SKELETON_MECHANICAL ) diff --git a/src/mame/drivers/ice_tbd.cpp b/src/mame/drivers/ice_tbd.cpp index 1d5fada7d9d..6f1aa892198 100644 --- a/src/mame/drivers/ice_tbd.cpp +++ b/src/mame/drivers/ice_tbd.cpp @@ -25,8 +25,8 @@ class ice_tbd_state : public driver_device public: ice_tbd_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag) - ,m_maincpu(*this, "maincpu") - { } + , m_maincpu(*this, "maincpu") + { } virtual void machine_start() override; virtual void machine_reset() override; @@ -51,7 +51,7 @@ void ice_tbd_state::machine_reset() { } -static MACHINE_CONFIG_START( ice_tbd, ice_tbd_state ) +static MACHINE_CONFIG_START( ice_tbd ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80,8000000) /* ? MHz */ @@ -66,4 +66,4 @@ ROM_START( ice_tbd ) ROM_END -GAME( 1988, ice_tbd, 0, ice_tbd, ice_tbd, driver_device, 0, ROT0, "Innovative Creations in Entertainment", "Turbo Drive (ICE)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 1988, ice_tbd, 0, ice_tbd, ice_tbd, ice_tbd_state, 0, ROT0, "Innovative Creations in Entertainment", "Turbo Drive (ICE)", MACHINE_IS_SKELETON_MECHANICAL ) diff --git a/src/mame/drivers/icecold.cpp b/src/mame/drivers/icecold.cpp index 4071226bf82..de83b8e417e 100644 --- a/src/mame/drivers/icecold.cpp +++ b/src/mame/drivers/icecold.cpp @@ -329,7 +329,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(icecold_state::icecold_motors_timer) } } -static MACHINE_CONFIG_START( icecold, icecold_state ) +static MACHINE_CONFIG_START( icecold ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809, XTAL_6MHz/4) @@ -399,5 +399,5 @@ ROM_START(zekepeak) ROM_END -GAME(1983, icecold, 0, icecold, icecold, driver_device, 0, ROT0, "Taito", "Ice Cold Beer", MACHINE_NOT_WORKING | MACHINE_MECHANICAL) -GAME(1983, zekepeak, icecold, icecold, icecold, driver_device, 0, ROT0, "Taito", "Zeke's Peak", MACHINE_NOT_WORKING | MACHINE_MECHANICAL) +GAME(1983, icecold, 0, icecold, icecold, icecold_state, 0, ROT0, "Taito", "Ice Cold Beer", MACHINE_NOT_WORKING | MACHINE_MECHANICAL) +GAME(1983, zekepeak, icecold, icecold, icecold, icecold_state, 0, ROT0, "Taito", "Zeke's Peak", MACHINE_NOT_WORKING | MACHINE_MECHANICAL) diff --git a/src/mame/drivers/ichiban.cpp b/src/mame/drivers/ichiban.cpp index a73da32455d..43fe1b3449f 100644 --- a/src/mame/drivers/ichiban.cpp +++ b/src/mame/drivers/ichiban.cpp @@ -115,7 +115,7 @@ void ichibanjyan_state::machine_reset() } -static MACHINE_CONFIG_START( ichibanjyan, ichibanjyan_state ) +static MACHINE_CONFIG_START( ichibanjyan ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80,MAIN_CLOCK/3) @@ -167,4 +167,4 @@ ROM_START( ichiban ) ROM_LOAD( "mjb.u38", 0x400, 0x200, CRC(0ef881cb) SHA1(44b61a443d683f5cb2d1b1a4f74d8a8f41021de5) ) ROM_END -GAME( 199?, ichiban, 0, ichibanjyan, ichibanjyan, driver_device, 0, ROT0, "Excel", "Ichi Ban Jyan", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +GAME( 199?, ichiban, 0, ichibanjyan, ichibanjyan, ichibanjyan_state, 0, ROT0, "Excel", "Ichi Ban Jyan", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/idsa.cpp b/src/mame/drivers/idsa.cpp index d297f837a2c..60e4f61e149 100644 --- a/src/mame/drivers/idsa.cpp +++ b/src/mame/drivers/idsa.cpp @@ -263,7 +263,7 @@ void idsa_state::machine_reset() m_irqcnt = 0; } -static MACHINE_CONFIG_START( idsa, idsa_state ) +static MACHINE_CONFIG_START( idsa ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_8MHz / 2) MCFG_CPU_PROGRAM_MAP(maincpu_map) @@ -308,5 +308,5 @@ ROM_START(bsktbllp) ROM_END -GAME( 1985, v1, 0, idsa, idsa, driver_device, 0, ROT0, "IDSA", "V.1", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 1987, bsktbllp, 0, idsa, idsa, driver_device, 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/ie15.cpp b/src/mame/drivers/ie15.cpp index 0c4902b3e88..96ced86bd46 100644 --- a/src/mame/drivers/ie15.cpp +++ b/src/mame/drivers/ie15.cpp @@ -29,7 +29,7 @@ public: }; -static MACHINE_CONFIG_START( ie15, ie15_state ) +static MACHINE_CONFIG_START( ie15 ) MCFG_DEVICE_ADD("ie15", IE15, 0) MACHINE_CONFIG_END @@ -37,5 +37,5 @@ MACHINE_CONFIG_END ROM_START(ie15) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1980, ie15, 0, 0, ie15, 0, driver_device, 0, "USSR", "15IE-00-013", 0) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1980, ie15, 0, 0, ie15, 0, ie15_state, 0, "USSR", "15IE-00-013", 0) diff --git a/src/mame/drivers/if800.cpp b/src/mame/drivers/if800.cpp index ddb34e7d184..cd747ad7597 100644 --- a/src/mame/drivers/if800.cpp +++ b/src/mame/drivers/if800.cpp @@ -80,7 +80,7 @@ static ADDRESS_MAP_START( upd7220_map, AS_0, 16, if800_state ) AM_RANGE(0x00000, 0x3ffff) AM_RAM AM_SHARE("video_ram") ADDRESS_MAP_END -static MACHINE_CONFIG_START( if800, if800_state ) +static MACHINE_CONFIG_START( if800 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8086, 8000000) MCFG_CPU_PROGRAM_MAP(if800_map) @@ -114,5 +114,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1985, if800, 0, 0, if800, if800, driver_device, 0, "Oki Electric", "if800 model 60", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1985, if800, 0, 0, if800, if800, if800_state, 0, "Oki Electric", "if800 model 60", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) diff --git a/src/mame/drivers/igs009.cpp b/src/mame/drivers/igs009.cpp index 21709d53c71..9be65e7f25f 100644 --- a/src/mame/drivers/igs009.cpp +++ b/src/mame/drivers/igs009.cpp @@ -808,7 +808,7 @@ INTERRUPT_GEN_MEMBER(igs009_state::interrupt) device.execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE); } -static MACHINE_CONFIG_START( jingbell, igs009_state ) +static MACHINE_CONFIG_START( jingbell ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z180, XTAL_12MHz / 2) /* HD64180RP8, 8 MHz? */ MCFG_CPU_PROGRAM_MAP(jingbell_map) @@ -845,7 +845,7 @@ static MACHINE_CONFIG_START( jingbell, igs009_state ) MCFG_SOUND_ADD("ymsnd", YM2413, XTAL_3_579545MHz) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MCFG_OKIM6295_ADD("oki", XTAL_12MHz / 12, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", XTAL_12MHz / 12, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -1166,4 +1166,4 @@ GAME( 1997, jingbella, jingbell, jingbell, jingbell, igs009_state, jingbell, GAME( 1997, jingbellb, jingbell, jingbell, jingbell, igs009_state, jingbell, ROT0, "IGS", "Jingle Bell (EU, V153UE)", MACHINE_SUPPORTS_SAVE ) GAME( 1995, jingbellc, jingbell, jingbell, jingbell, igs009_state, jingbelli, ROT0, "IGS", "Jingle Bell (EU, V141UE)", MACHINE_SUPPORTS_SAVE ) GAME( 1995?, jingbelli, jingbell, jingbell, jingbell, igs009_state, jingbelli, ROT0, "IGS", "Jingle Bell (Italy, V133I)", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, gp98, 0, gp98, jingbell, driver_device, 0, ROT0, "Romtec Co. Ltd", "Grand Prix '98 (V100K)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, gp98, 0, gp98, jingbell, igs009_state, 0, ROT0, "Romtec Co. Ltd", "Grand Prix '98 (V100K)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/igs011.cpp b/src/mame/drivers/igs011.cpp index d3e5a79ce3f..b2736bcdfa8 100644 --- a/src/mame/drivers/igs011.cpp +++ b/src/mame/drivers/igs011.cpp @@ -3989,7 +3989,7 @@ static GFXDECODE_START( igs011_hi ) GFXDECODE_END #endif -static MACHINE_CONFIG_START( igs011_base, igs011_state ) +static MACHINE_CONFIG_START( igs011_base ) MCFG_CPU_ADD("maincpu",M68000, XTAL_22MHz/3) MCFG_NVRAM_ADD_0FILL("nvram") @@ -4009,7 +4009,7 @@ static MACHINE_CONFIG_START( igs011_base, igs011_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", XTAL_22MHz/21, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", XTAL_22MHz/21, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END diff --git a/src/mame/drivers/igs017.cpp b/src/mame/drivers/igs017.cpp index a175eaa785f..6395e52441a 100644 --- a/src/mame/drivers/igs017.cpp +++ b/src/mame/drivers/igs017.cpp @@ -3249,7 +3249,7 @@ MACHINE_RESET_MEMBER(igs017_state,iqblocka) m_input_select = 0; } -static MACHINE_CONFIG_START( iqblocka, igs017_state ) +static MACHINE_CONFIG_START( iqblocka ) MCFG_CPU_ADD("maincpu", Z180, XTAL_16MHz / 2) MCFG_CPU_PROGRAM_MAP(iqblocka_map) MCFG_CPU_IO_MAP(iqblocka_io) @@ -3283,7 +3283,7 @@ static MACHINE_CONFIG_START( iqblocka, igs017_state ) MCFG_SOUND_ADD("ymsnd", YM2413, XTAL_3_579545MHz) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) - MCFG_OKIM6295_ADD("oki", XTAL_16MHz / 16, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", XTAL_16MHz / 16, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) MACHINE_CONFIG_END @@ -3314,7 +3314,7 @@ MACHINE_RESET_MEMBER(igs017_state,mgcs) memset(m_igs_magic, 0, sizeof(m_igs_magic)); } -static MACHINE_CONFIG_START( mgcs, igs017_state ) +static MACHINE_CONFIG_START( mgcs ) MCFG_CPU_ADD("maincpu", M68000, XTAL_22MHz / 2) MCFG_CPU_PROGRAM_MAP(mgcs) MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", igs017_state, mgcs_interrupt, "screen", 0, 1) @@ -3345,7 +3345,7 @@ static MACHINE_CONFIG_START( mgcs, igs017_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", XTAL_8MHz / 8, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", XTAL_8MHz / 8, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) MACHINE_CONFIG_END @@ -3353,7 +3353,7 @@ MACHINE_CONFIG_END // lhzb2 -static MACHINE_CONFIG_START( lhzb2, igs017_state ) +static MACHINE_CONFIG_START( lhzb2 ) MCFG_CPU_ADD("maincpu", M68000, XTAL_22MHz / 2) MCFG_CPU_PROGRAM_MAP(lhzb2) MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", igs017_state, mgcs_interrupt, "screen", 0, 1) @@ -3391,7 +3391,7 @@ static MACHINE_CONFIG_START( lhzb2, igs017_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", XTAL_8MHz / 8, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", XTAL_8MHz / 8, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) MACHINE_CONFIG_END @@ -3405,7 +3405,7 @@ MACHINE_RESET_MEMBER(igs017_state,lhzb2a) lhzb2a_input_addr_w(m_maincpu->space(AS_PROGRAM), 0, 0xf0); } -static MACHINE_CONFIG_START( lhzb2a, igs017_state ) +static MACHINE_CONFIG_START( lhzb2a ) MCFG_CPU_ADD("maincpu", M68000, XTAL_22MHz/2) MCFG_CPU_PROGRAM_MAP(lhzb2a) MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", igs017_state, mgcs_interrupt, "screen", 0, 1) @@ -3434,7 +3434,7 @@ static MACHINE_CONFIG_START( lhzb2a, igs017_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", XTAL_22MHz / 22, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", XTAL_22MHz / 22, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) MACHINE_CONFIG_END @@ -3442,7 +3442,7 @@ MACHINE_CONFIG_END // slqz2 -static MACHINE_CONFIG_START( slqz2, igs017_state ) +static MACHINE_CONFIG_START( slqz2 ) MCFG_CPU_ADD("maincpu", M68000, XTAL_22MHz / 2) MCFG_CPU_PROGRAM_MAP(slqz2) MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", igs017_state, mgcs_interrupt, "screen", 0, 1) @@ -3478,7 +3478,7 @@ static MACHINE_CONFIG_START( slqz2, igs017_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", XTAL_8MHz / 8, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", XTAL_8MHz / 8, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) MACHINE_CONFIG_END @@ -3486,7 +3486,7 @@ MACHINE_CONFIG_END // sdmg2 -static MACHINE_CONFIG_START( sdmg2, igs017_state ) +static MACHINE_CONFIG_START( sdmg2 ) MCFG_CPU_ADD("maincpu", M68000, XTAL_22MHz/2) MCFG_CPU_PROGRAM_MAP(sdmg2) MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", igs017_state, mgcs_interrupt, "screen", 0, 1) @@ -3516,7 +3516,7 @@ static MACHINE_CONFIG_START( sdmg2, igs017_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", XTAL_22MHz / 22, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", XTAL_22MHz / 22, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) MACHINE_CONFIG_END @@ -3534,7 +3534,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(igs017_state::mgdh_interrupt) m_maincpu->set_input_line(3, HOLD_LINE); // lev 3 instead of 2 } -static MACHINE_CONFIG_START( mgdha, igs017_state ) +static MACHINE_CONFIG_START( mgdha ) MCFG_CPU_ADD("maincpu", M68000, XTAL_22MHz / 2) MCFG_CPU_PROGRAM_MAP(mgdha_map) MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", igs017_state, mgdh_interrupt, "screen", 0, 1) @@ -3563,14 +3563,14 @@ static MACHINE_CONFIG_START( mgdha, igs017_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", XTAL_22MHz / 22, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", XTAL_22MHz / 22, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) MACHINE_CONFIG_END // tjsb -static MACHINE_CONFIG_START( tjsb, igs017_state ) +static MACHINE_CONFIG_START( tjsb ) MCFG_CPU_ADD("maincpu", Z180, XTAL_16MHz / 2) MCFG_CPU_PROGRAM_MAP(tjsb_map) MCFG_CPU_IO_MAP(tjsb_io) @@ -3606,14 +3606,14 @@ static MACHINE_CONFIG_START( tjsb, igs017_state ) MCFG_SOUND_ADD("ymsnd", YM2413, XTAL_3_579545MHz) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) - MCFG_OKIM6295_ADD("oki", XTAL_16MHz / 16, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", XTAL_16MHz / 16, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) MACHINE_CONFIG_END // spkrform -static MACHINE_CONFIG_START( spkrform, igs017_state ) +static MACHINE_CONFIG_START( spkrform ) MCFG_CPU_ADD("maincpu", Z180, XTAL_16MHz / 2) MCFG_CPU_PROGRAM_MAP(spkrform_map) MCFG_CPU_IO_MAP(spkrform_io) @@ -3647,7 +3647,7 @@ static MACHINE_CONFIG_START( spkrform, igs017_state ) MCFG_SOUND_ADD("ymsnd", YM2413, XTAL_3_579545MHz) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) - MCFG_OKIM6295_ADD("oki", XTAL_16MHz / 16, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", XTAL_16MHz / 16, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) MACHINE_CONFIG_END diff --git a/src/mame/drivers/igs_fear.cpp b/src/mame/drivers/igs_fear.cpp index cad0ea39f1a..e864fad5fcb 100644 --- a/src/mame/drivers/igs_fear.cpp +++ b/src/mame/drivers/igs_fear.cpp @@ -75,7 +75,7 @@ WRITE_LINE_MEMBER(igs_fear_state::sound_irq) } -static MACHINE_CONFIG_START( igs_fear, igs_fear_state ) +static MACHINE_CONFIG_START( igs_fear ) MCFG_CPU_ADD("maincpu",ARM7, 50000000/2) MCFG_CPU_PROGRAM_MAP(igs_igs_fear_map) diff --git a/src/mame/drivers/igs_m027.cpp b/src/mame/drivers/igs_m027.cpp index 0a8d950c17f..7db33800f5c 100644 --- a/src/mame/drivers/igs_m027.cpp +++ b/src/mame/drivers/igs_m027.cpp @@ -333,7 +333,7 @@ INTERRUPT_GEN_MEMBER(igs_m027_state::igs_majhong_interrupt) } -static MACHINE_CONFIG_START( igs_majhong, igs_m027_state ) +static MACHINE_CONFIG_START( igs_majhong ) MCFG_CPU_ADD("maincpu",ARM7, 20000000) MCFG_CPU_PROGRAM_MAP(igs_majhong_map) @@ -367,7 +367,7 @@ MACHINE_CONFIG_END -static MACHINE_CONFIG_START( amazonia, igs_m027_state ) +static MACHINE_CONFIG_START( amazonia ) MCFG_CPU_ADD("maincpu",ARM7, 20000000) MCFG_CPU_PROGRAM_MAP(igs_majhong_map) diff --git a/src/mame/drivers/igs_m036.cpp b/src/mame/drivers/igs_m036.cpp index c9759711520..3bbcec427fe 100644 --- a/src/mame/drivers/igs_m036.cpp +++ b/src/mame/drivers/igs_m036.cpp @@ -245,7 +245,7 @@ void igs_m036_state::pgm_create_dummy_internal_arm_region(void) #define IGS036_CPU ARM7 -static MACHINE_CONFIG_START( igs_m036, igs_m036_state ) +static MACHINE_CONFIG_START( igs_m036 ) MCFG_CPU_ADD("maincpu",IGS036_CPU, 20000000) MCFG_CPU_PROGRAM_MAP(igs_m036_map) @@ -264,7 +264,7 @@ static MACHINE_CONFIG_START( igs_m036, igs_m036_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( igs_m036_tt, igs_m036_state ) +static MACHINE_CONFIG_START( igs_m036_tt ) MCFG_CPU_ADD("maincpu",IGS036_CPU, 20000000) MCFG_CPU_PROGRAM_MAP(igs_m036_map) @@ -319,10 +319,10 @@ DRIVER_INIT_MEMBER(igs_m036_state, igsm312) ***************************************************************************/ -GAME( 200?, cjdh2, 0, igs_m036, igs_m036, igs_m036_state, cjdh2, ROT0, "IGS", "Chao Ji Da Heng 2 (V311CN)", MACHINE_IS_SKELETON ) -GAME( 200?, cjdh2a, cjdh2, igs_m036, igs_m036, igs_m036_state, cjdh2, ROT0, "IGS", "Chao Ji Da Heng 2 (V311CNA)", MACHINE_IS_SKELETON ) -GAME( 200?, cjdh2b, cjdh2, igs_m036, igs_m036, igs_m036_state, cjdh2, ROT0, "IGS", "Chao Ji Da Heng 2 (V311CNB)", MACHINE_IS_SKELETON ) -GAME( 200?, cjdh2c, cjdh2, igs_m036, igs_m036, igs_m036_state, cjdh2, ROT0, "IGS", "Chao Ji Da Heng 2 (V215CN)", MACHINE_IS_SKELETON ) +GAME( 200?, cjdh2, 0, igs_m036, igs_m036, igs_m036_state, cjdh2, ROT0, "IGS", "Chao Ji Da Heng 2 (V311CN)", MACHINE_IS_SKELETON ) +GAME( 200?, cjdh2a, cjdh2, igs_m036, igs_m036, igs_m036_state, cjdh2, ROT0, "IGS", "Chao Ji Da Heng 2 (V311CNA)", MACHINE_IS_SKELETON ) +GAME( 200?, cjdh2b, cjdh2, igs_m036, igs_m036, igs_m036_state, cjdh2, ROT0, "IGS", "Chao Ji Da Heng 2 (V311CNB)", MACHINE_IS_SKELETON ) +GAME( 200?, cjdh2c, cjdh2, igs_m036, igs_m036, igs_m036_state, cjdh2, ROT0, "IGS", "Chao Ji Da Heng 2 (V215CN)", MACHINE_IS_SKELETON ) GAME( 200?, cjddzsp, 0, igs_m036_tt, igs_m036, igs_m036_state, cjddzsp, ROT0, "IGS", "Super Dou Di Zhu Special (V122CN)", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/igspc.cpp b/src/mame/drivers/igspc.cpp index 2acd3fc9b2f..8e217f8961e 100644 --- a/src/mame/drivers/igspc.cpp +++ b/src/mame/drivers/igspc.cpp @@ -75,7 +75,7 @@ INPUT_PORTS_END -static MACHINE_CONFIG_START( speeddrv, speeddrv_state ) +static MACHINE_CONFIG_START( speeddrv ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I486, 40000000 ) // ?? at least a pentium MCFG_CPU_PROGRAM_MAP(speeddrv_map) @@ -113,5 +113,5 @@ DRIVER_INIT_MEMBER(speeddrv_state,speeddrv) { } -GAME( 2004, speeddrv, 0, speeddrv, speeddrv, speeddrv_state, speeddrv, ROT0, "IGS", "Speed Driver", MACHINE_IS_SKELETON ) -GAME( 200?, eztouch, 0, speeddrv, speeddrv, speeddrv_state, speeddrv, ROT0, "IGS", "EZ Touch (v116 China)", MACHINE_IS_SKELETON ) +GAME( 2004, speeddrv, 0, speeddrv, speeddrv, speeddrv_state, speeddrv, ROT0, "IGS", "Speed Driver", MACHINE_IS_SKELETON ) +GAME( 200?, eztouch, 0, speeddrv, speeddrv, speeddrv_state, speeddrv, ROT0, "IGS", "EZ Touch (v116 China)", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/igspoker.cpp b/src/mame/drivers/igspoker.cpp index bc73053b433..c7fdab10abb 100644 --- a/src/mame/drivers/igspoker.cpp +++ b/src/mame/drivers/igspoker.cpp @@ -1777,7 +1777,7 @@ static GFXDECODE_START( cpokerpk ) GFXDECODE_ENTRY( "gfx2", 0x00000, charlayout2, 0, 1 ) GFXDECODE_END -static MACHINE_CONFIG_START( igspoker, igspoker_state ) +static MACHINE_CONFIG_START( igspoker ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80, 3579545) @@ -1832,7 +1832,7 @@ static MACHINE_CONFIG_DERIVED( number10, igspoker ) MCFG_SCREEN_UPDATE_DRIVER(igspoker_state, screen_update_cpokerpk) MCFG_VIDEO_START_OVERRIDE(igspoker_state,cpokerpk) - MCFG_OKIM6295_ADD("oki", XTAL_12MHz / 12, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", XTAL_12MHz / 12, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -2706,7 +2706,7 @@ GAMEL( 199?, citalcup, cpokerpk, cpokerpk, cpokerpk, igspoker_state, cpokerpk, GAMEL( 2000, igs_ncs2, 0, igs_ncs, igs_ncs, igspoker_state, igs_ncs2, ROT0, "IGS", "New Champion Skill (v100n 2000)", MACHINE_IMPERFECT_GRAPHICS, layout_igspoker ) -GAMEL( 1998, stellecu, 0, number10, number10, driver_device, 0, ROT0, "Sure", "Stelle e Cubi (Italy)", MACHINE_NOT_WORKING, layout_igspoker ) +GAMEL( 1998, stellecu, 0, number10, number10, igspoker_state, 0, ROT0, "Sure", "Stelle e Cubi (Italy)", MACHINE_NOT_WORKING, layout_igspoker ) GAMEL( 1993?,pktet346, 0, pktetris, pktet346, igspoker_state, pktet346, ROT0, "IGS", "PK Tetris (v346I)", 0, layout_igspoker ) diff --git a/src/mame/drivers/ikki.cpp b/src/mame/drivers/ikki.cpp index 4ed29121a72..ee138c77303 100644 --- a/src/mame/drivers/ikki.cpp +++ b/src/mame/drivers/ikki.cpp @@ -238,7 +238,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(ikki_state::ikki_irq) -static MACHINE_CONFIG_START( ikki, ikki_state ) +static MACHINE_CONFIG_START( ikki ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80,8000000/2) /* 4.000MHz */ @@ -356,5 +356,5 @@ ROM_END * *************************************/ -GAME( 1985, ikki, 0, ikki, ikki, driver_device, 0, ROT0, "Sun Electronics", "Ikki (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, farmer, ikki, ikki, ikki, driver_device, 0, ROT0, "Sun Electronics", "Farmers Rebellion", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, ikki, 0, ikki, ikki, ikki_state, 0, ROT0, "Sun Electronics", "Ikki (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, farmer, ikki, ikki, ikki, ikki_state, 0, ROT0, "Sun Electronics", "Farmers Rebellion", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/imds.cpp b/src/mame/drivers/imds.cpp index 2c6df441971..0536b13d75f 100644 --- a/src/mame/drivers/imds.cpp +++ b/src/mame/drivers/imds.cpp @@ -37,7 +37,7 @@ public: required_device m_terminal; DECLARE_READ8_MEMBER(term_r); DECLARE_READ8_MEMBER(term_status_r); - DECLARE_WRITE8_MEMBER(kbd_put); + void kbd_put(u8 data); uint8_t m_term_data; virtual void machine_reset() override; }; @@ -69,7 +69,7 @@ ADDRESS_MAP_END static INPUT_PORTS_START( imds ) INPUT_PORTS_END -WRITE8_MEMBER( imds_state::kbd_put ) +void imds_state::kbd_put(u8 data) { m_term_data = data; } @@ -88,7 +88,7 @@ void imds_state::machine_reset() // nullptr //}; -static MACHINE_CONFIG_START( imds, imds_state ) +static MACHINE_CONFIG_START( imds ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8080, XTAL_4MHz) // no idea of clock. MCFG_CPU_PROGRAM_MAP(imds_mem) @@ -98,7 +98,7 @@ static MACHINE_CONFIG_START( imds, imds_state ) /* video hardware */ MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0) - MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(imds_state, kbd_put)) + MCFG_GENERIC_TERMINAL_KEYBOARD_CB(PUT(imds_state, kbd_put)) MACHINE_CONFIG_END /* ROM definition */ @@ -112,5 +112,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1983, imds, 0, 0, imds, imds, driver_device, 0, "Intel", "Intellec MDS", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +COMP( 1983, imds, 0, 0, imds, imds, imds_state, 0, "Intel", "Intellec MDS", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) diff --git a/src/mame/drivers/imds2.cpp b/src/mame/drivers/imds2.cpp index 3955676926e..147c71eeea9 100644 --- a/src/mame/drivers/imds2.cpp +++ b/src/mame/drivers/imds2.cpp @@ -753,7 +753,7 @@ static SLOT_INTERFACE_START( imds2_floppies ) SLOT_INTERFACE( "8sssd", FLOPPY_8_SSSD ) SLOT_INTERFACE_END -static MACHINE_CONFIG_START(imds2 , imds2_state) +static MACHINE_CONFIG_START(imds2) MCFG_CPU_ADD("ipccpu" , I8085A , IPC_XTAL_Y2 / 2) // 4 MHz MCFG_CPU_PROGRAM_MAP(ipc_mem_map) MCFG_CPU_IO_MAP(ipc_io_map) @@ -913,5 +913,5 @@ ROM_START(imds2) ROM_LOAD ("ioc_a19.bin" , 0x0000 , 0x0400 , CRC(47487d0f) SHA1(0ed98f9f06622949ee3cc2ffc572fb9702db0f81)) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ -COMP( 1979, imds2, 0, 0, imds2, imds2, driver_device, 0, "Intel", "Intellec MDS-II" , 0) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME */ +COMP( 1979, imds2, 0, 0, imds2, imds2, imds2_state, 0, "Intel", "Intellec MDS-II" , 0) diff --git a/src/mame/drivers/imolagp.cpp b/src/mame/drivers/imolagp.cpp index 206390450ff..e6d07a7bcb2 100644 --- a/src/mame/drivers/imolagp.cpp +++ b/src/mame/drivers/imolagp.cpp @@ -484,7 +484,7 @@ void imolagp_state::machine_reset() } -static MACHINE_CONFIG_START( imolagp, imolagp_state ) +static MACHINE_CONFIG_START( imolagp ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 3000000) // ? (assume slower than slave) @@ -572,6 +572,6 @@ ROM_START( imolagpo ) ROM_END -/* YEAR, NAME, PARENT, MACHINE, INPUT, INIT, MONITOR, COMPANY, FULLNAME, FLAGS */ -GAMEL(1983?, imolagp, 0, imolagp, imolagp, driver_device, 0, ROT90, "RB Bologna", "Imola Grand Prix (set 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE, layout_imolagp ) // made by Alberici? year not shown, PCB labels suggests it's from 1983 -GAMEL(1983?, imolagpo, imolagp, imolagp, imolagpo, driver_device, 0, ROT90, "RB Bologna", "Imola Grand Prix (set 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE, layout_imolagp ) // " +// YEAR, NAME, PARENT, MACHINE, INPUT, STATE, INIT, MONITOR, COMPANY, FULLNAME, FLAGS +GAMEL(1983?, imolagp, 0, imolagp, imolagp, imolagp_state, 0, ROT90, "RB Bologna", "Imola Grand Prix (set 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE, layout_imolagp ) // made by Alberici? year not shown, PCB labels suggests it's from 1983 +GAMEL(1983?, imolagpo, imolagp, imolagp, imolagpo, imolagp_state, 0, ROT90, "RB Bologna", "Imola Grand Prix (set 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE, layout_imolagp ) // " diff --git a/src/mame/drivers/imsai.cpp b/src/mame/drivers/imsai.cpp index 4c6e92f6eea..6d118bbdb2c 100644 --- a/src/mame/drivers/imsai.cpp +++ b/src/mame/drivers/imsai.cpp @@ -36,7 +36,7 @@ public: { } - DECLARE_WRITE8_MEMBER(kbd_put); + void kbd_put(u8 data); DECLARE_READ8_MEMBER(keyin_r); DECLARE_READ8_MEMBER(status_r); DECLARE_WRITE8_MEMBER(control_w); @@ -90,7 +90,7 @@ READ8_MEMBER( imsai_state::status_r ) return (m_term_data) ? 3 : 1; } -WRITE8_MEMBER( imsai_state::kbd_put ) +void imsai_state::kbd_put(u8 data) { m_term_data = data; } @@ -110,7 +110,7 @@ void imsai_state::machine_reset() m_term_data = 0; } -static MACHINE_CONFIG_START( imsai, imsai_state ) +static MACHINE_CONFIG_START( imsai ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",I8085A, XTAL_6MHz) MCFG_CPU_PROGRAM_MAP(imsai_mem) @@ -118,7 +118,7 @@ static MACHINE_CONFIG_START( imsai, imsai_state ) /* video hardware */ MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0) - MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(imsai_state, kbd_put)) + MCFG_GENERIC_TERMINAL_KEYBOARD_CB(PUT(imsai_state, kbd_put)) /* Devices */ MCFG_DEVICE_ADD("uart", I8251, 0) @@ -138,5 +138,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1978, imsai, 0, 0, imsai, imsai, driver_device, 0, "Imsai", "MPU-B", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW ) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 1978, imsai, 0, 0, imsai, imsai, imsai_state, 0, "Imsai", "MPU-B", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW ) diff --git a/src/mame/drivers/inder.cpp b/src/mame/drivers/inder.cpp index 999faa5ca1e..9f015d29bef 100644 --- a/src/mame/drivers/inder.cpp +++ b/src/mame/drivers/inder.cpp @@ -1302,7 +1302,7 @@ WRITE8_MEMBER( inder_state::ppic_w ) { // pc4 - READY line back to cpu board, but not used if (BIT(data, 5) != BIT(m_portc, 5)) - m_msm->set_prescaler_selector(*m_msm, BIT(data, 5) ? MSM5205_S48_4B : MSM5205_S96_4B); // S1 pin + m_msm->set_prescaler_selector(*m_msm, BIT(data, 5) ? msm5205_device::S48_4B : msm5205_device::S96_4B); // S1 pin m_7a->clock_w(BIT(data, 6)); m_7a->preset_w(!BIT(data, 7)); m_9a->preset_w(!BIT(data, 7)); @@ -1346,7 +1346,7 @@ DRIVER_INIT_MEMBER( inder_state, inder1 ) m_game = 1; } -static MACHINE_CONFIG_START( brvteam, inder_state ) +static MACHINE_CONFIG_START( brvteam ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_5MHz / 2) MCFG_CPU_PROGRAM_MAP(brvteam_map) @@ -1364,7 +1364,7 @@ static MACHINE_CONFIG_START( brvteam, inder_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "snvol", 2.0) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( canasta, inder_state ) +static MACHINE_CONFIG_START( canasta ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_5MHz / 2) MCFG_CPU_PROGRAM_MAP(canasta_map) @@ -1382,7 +1382,7 @@ static MACHINE_CONFIG_START( canasta, inder_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "ayvol", 1.0) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( lapbylap, inder_state ) +static MACHINE_CONFIG_START( lapbylap ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_5MHz / 2) MCFG_CPU_PROGRAM_MAP(lapbylap_map) @@ -1406,7 +1406,7 @@ static MACHINE_CONFIG_START( lapbylap, inder_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "ayvol", 1.0) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( inder, inder_state ) +static MACHINE_CONFIG_START( inder ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_5MHz / 2) MCFG_CPU_PROGRAM_MAP(inder_map) @@ -1425,7 +1425,7 @@ static MACHINE_CONFIG_START( inder, inder_state ) MCFG_SPEAKER_STANDARD_MONO("msmvol") MCFG_SOUND_ADD("msm", MSM5205, XTAL_384kHz) MCFG_MSM5205_VCLK_CB(WRITELINE(inder_state, vck_w)) - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S48_4B) /* 4KHz 4-bit */ + MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) /* 4KHz 4-bit */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "msmvol", 1.0) /* Devices */ @@ -1640,13 +1640,13 @@ ROM_END // old cpu board, 6 digits, sn76489 -GAME(1985, brvteam, 0, brvteam, brvteam, driver_device, 0, ROT0, "Inder", "Brave Team", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME(1985, brvteam, 0, brvteam, brvteam, inder_state, 0, ROT0, "Inder", "Brave Team", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) // old cpu board, 7 digits, ay8910 -GAME(1986, canasta, 0, canasta, canasta, driver_device, 0, ROT0, "Inder", "Canasta '86'", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME(1986, canasta, 0, canasta, canasta, inder_state, 0, ROT0, "Inder", "Canasta '86'", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) // old cpu board, 7 digits, sound cpu with 2x ay8910 -GAME(1986, lapbylap, 0, lapbylap, lapbylap, driver_device, 0, ROT0, "Inder", "Lap By Lap", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME(1986, lapbylap, 0, lapbylap, lapbylap, inder_state, 0, ROT0, "Inder", "Lap By Lap", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) // new cpu board, sound board with msm5205 GAME(1987, pinmoonl, 0, inder, pinmoonl, inder_state, inder, ROT0, "Inder", "Moon Light (Inder)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/inderp.cpp b/src/mame/drivers/inderp.cpp index 140b6c103c3..9b4a7f3cff1 100644 --- a/src/mame/drivers/inderp.cpp +++ b/src/mame/drivers/inderp.cpp @@ -43,7 +43,7 @@ ADDRESS_MAP_END static INPUT_PORTS_START( inderp ) INPUT_PORTS_END -static MACHINE_CONFIG_START( inderp, inderp_state ) +static MACHINE_CONFIG_START( inderp ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, 1000000) MCFG_CPU_PROGRAM_MAP(maincpu_map) @@ -78,5 +78,5 @@ ROM_START(centauri2) ROM_END -GAME( 1979, centauri, 0, inderp, inderp, driver_device, 0, ROT0, "Inder", "Centaur (Inder)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 1979, centauri2, centauri, inderp, inderp, driver_device, 0, ROT0, "Inder", "Centaur (alternate set)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 1979, centauri, 0, inderp, inderp, inderp_state, 0, ROT0, "Inder", "Centaur (Inder)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 1979, centauri2, centauri, inderp, inderp, inderp_state, 0, ROT0, "Inder", "Centaur (alternate set)", MACHINE_IS_SKELETON_MECHANICAL ) diff --git a/src/mame/drivers/indiana.cpp b/src/mame/drivers/indiana.cpp index 944183ef999..693aa262e87 100644 --- a/src/mame/drivers/indiana.cpp +++ b/src/mame/drivers/indiana.cpp @@ -17,8 +17,12 @@ #include "emu.h" #include "bus/rs232/keyboard.h" #include "cpu/m68000/m68000.h" +#include "bus/isa/com.h" +#include "bus/isa/fdc.h" +#include "bus/isa/ide.h" #include "bus/isa/isa.h" #include "bus/isa/isa_cards.h" +#include "bus/isa/vga.h" #include "machine/mc68901.h" #define M68K_TAG "maincpu" @@ -82,7 +86,7 @@ static DEVICE_INPUT_DEFAULTS_START( keyboard ) DEVICE_INPUT_DEFAULTS( "RS232_STOPBITS", 0xff, RS232_STOPBITS_1 ) DEVICE_INPUT_DEFAULTS_END -static MACHINE_CONFIG_START( indiana, indiana_state ) +static MACHINE_CONFIG_START( indiana ) /* basic machine hardware */ MCFG_CPU_ADD(M68K_TAG, M68030, XTAL_16MHz) MCFG_CPU_PROGRAM_MAP(indiana_mem) @@ -119,5 +123,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1993, indiana, 0, 0, indiana, indiana, indiana_state, indiana, "Indiana University", "Indiana University 68030 board", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1993, indiana, 0, 0, indiana, indiana, indiana_state, indiana, "Indiana University", "Indiana University 68030 board", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) diff --git a/src/mame/drivers/indigo.cpp b/src/mame/drivers/indigo.cpp index cc8e0b9322e..892b85a2977 100644 --- a/src/mame/drivers/indigo.cpp +++ b/src/mame/drivers/indigo.cpp @@ -573,7 +573,7 @@ static MACHINE_CONFIG_FRAGMENT( cdrom_config ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "^^^^mono", 1.0) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( indigo3k, indigo_state ) +static MACHINE_CONFIG_START( indigo3k ) MCFG_CPU_ADD("maincpu", R3041, 33000000) MCFG_R3000_ENDIANNESS(ENDIANNESS_BIG) MCFG_CPU_PROGRAM_MAP(indigo3k_map) @@ -626,6 +626,6 @@ ROM_START( indigo4k ) ROM_LOAD( "ip20prom.070-8116-004.bin", 0x000000, 0x080000, CRC(940d960e) SHA1(596aba530b53a147985ff3f6f853471ce48c866c) ) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME */ -COMP( 1991, indigo3k, 0, 0, indigo3k, indigo, driver_device, 0, "Silicon Graphics Inc", "IRIS Indigo (R3000, 33MHz)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -COMP( 1993, indigo4k, 0, 0, indigo4k, indigo, driver_device, 0, "Silicon Graphics Inc", "IRIS Indigo (R4400, 150MHz, Ver. 4.0.5D Rev A)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 1991, indigo3k, 0, 0, indigo3k, indigo, indigo_state, 0, "Silicon Graphics Inc", "IRIS Indigo (R3000, 33MHz)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +COMP( 1993, indigo4k, 0, 0, indigo4k, indigo, indigo_state, 0, "Silicon Graphics Inc", "IRIS Indigo (R4400, 150MHz, Ver. 4.0.5D Rev A)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/indy_indigo2.cpp b/src/mame/drivers/indy_indigo2.cpp index e138aca954a..f5937b1d7b6 100644 --- a/src/mame/drivers/indy_indigo2.cpp +++ b/src/mame/drivers/indy_indigo2.cpp @@ -83,8 +83,6 @@ class ioc2_device : public device_t { public: - ioc2_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source, uint8_t id); - DECLARE_WRITE32_MEMBER( write ); DECLARE_READ32_MEMBER( read ); @@ -98,6 +96,8 @@ public: void raise_local1_irq(uint8_t source_mask); protected: + ioc2_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint8_t id); + virtual void device_start() override; virtual void device_reset() override; machine_config_constructor device_mconfig_additions() const override; @@ -141,28 +141,32 @@ class ioc2_guinness_device : public ioc2_device { public: ioc2_guinness_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ioc2_guinness_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : ioc2_device(mconfig, type, name, tag, owner, clock, shortname, source, 0x01) { } +protected: + ioc2_guinness_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : ioc2_device(mconfig, type, tag, owner, clock, 0x01) + { } }; class ioc2_full_house_device : public ioc2_device { public: ioc2_full_house_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ioc2_full_house_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : ioc2_device(mconfig, type, name, tag, owner, clock, shortname, source, 0x20) { } +protected: + ioc2_full_house_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : ioc2_device(mconfig, type, tag, owner, clock, 0x20) + { } }; -const device_type SGI_IOC2_GUINNESS = device_creator; -const device_type SGI_IOC2_FULL_HOUSE = device_creator; +DEFINE_DEVICE_TYPE(SGI_IOC2_GUINNESS, ioc2_guinness_device, "ioc2g", "SGI IOC2 (Guiness)") +DEFINE_DEVICE_TYPE(SGI_IOC2_FULL_HOUSE, ioc2_full_house_device, "ioc2f", "SGI IOC2 (Full House)") ioc2_guinness_device::ioc2_guinness_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : ioc2_guinness_device(mconfig, SGI_IOC2_GUINNESS, "SGI IOC2 (Guinness)", tag, owner, clock, "ioc2g", __FILE__) + : ioc2_guinness_device(mconfig, SGI_IOC2_GUINNESS, tag, owner, clock) { } ioc2_full_house_device::ioc2_full_house_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : ioc2_full_house_device(mconfig, SGI_IOC2_FULL_HOUSE, "SGI IOC2 (Full House)", tag, owner, clock, "ioc2f", __FILE__) + : ioc2_full_house_device(mconfig, SGI_IOC2_FULL_HOUSE, tag, owner, clock) { } @@ -215,8 +219,8 @@ machine_config_constructor ioc2_device::device_mconfig_additions() const return MACHINE_CONFIG_NAME(ioc2_device); } -ioc2_device::ioc2_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source, uint8_t id) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source) +ioc2_device::ioc2_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint8_t id) + : device_t(mconfig, type, tag, owner, clock) , m_maincpu(*this, "^maincpu") , m_scc(*this, SCC_TAG) , m_pi1(*this, PI1_TAG) @@ -1477,7 +1481,7 @@ static MACHINE_CONFIG_FRAGMENT( cdrom_config ) MCFG_SOUND_ROUTE( 1, "^^^^rspeaker", 1.0 ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( ip225015, ip22_state ) +static MACHINE_CONFIG_START( ip225015 ) MCFG_CPU_ADD( "maincpu", R5000BE, 50000000*3 ) //MCFG_MIPS3_ICACHE_SIZE(32768) //MCFG_MIPS3_DCACHE_SIZE(32768) @@ -1575,7 +1579,7 @@ ROM_START( ip244415 ) ROM_LOAD( "ip244415.bin", 0x000000, 0x080000, CRC(2f37825a) SHA1(0d48c573b53a307478820b85aacb57b868297ca3) ) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ -COMP( 1993, ip225015, 0, 0, ip225015, ip225015, ip22_state, ip225015, "Silicon Graphics Inc", "Indy (R5000, 150MHz)", MACHINE_NOT_WORKING ) -COMP( 1993, ip224613, 0, 0, ip224613, ip225015, ip22_state, ip225015, "Silicon Graphics Inc", "Indy (R4600, 133MHz)", MACHINE_NOT_WORKING ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1993, ip225015, 0, 0, ip225015, ip225015, ip22_state, ip225015, "Silicon Graphics Inc", "Indy (R5000, 150MHz)", MACHINE_NOT_WORKING ) +COMP( 1993, ip224613, 0, 0, ip224613, ip225015, ip22_state, ip225015, "Silicon Graphics Inc", "Indy (R4600, 133MHz)", MACHINE_NOT_WORKING ) COMP( 1994, ip244415, 0, 0, ip244415, ip225015, ip22_state, ip225015, "Silicon Graphics Inc", "Indigo2 (R4400, 150MHz)", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/instantm.cpp b/src/mame/drivers/instantm.cpp index 78610da5423..c2fb903b228 100644 --- a/src/mame/drivers/instantm.cpp +++ b/src/mame/drivers/instantm.cpp @@ -57,7 +57,7 @@ void instantm_state::machine_reset() // OSC1 = XTAL_3_579545MHz -static MACHINE_CONFIG_START( instantm, instantm_state ) +static MACHINE_CONFIG_START( instantm ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80,XTAL_3_579545MHz) @@ -78,4 +78,4 @@ ROM_START( instantm ) ROM_END -GAME( 199?, instantm, 0, instantm, instantm, driver_device, 0, ROT0, "Capcom / Polaroid", "Polaroid Instant Memories", MACHINE_IS_SKELETON ) +GAME( 199?, instantm, 0, instantm, instantm, instantm_state, 0, ROT0, "Capcom / Polaroid", "Polaroid Instant Memories", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/instruct.cpp b/src/mame/drivers/instruct.cpp index c2af4a3452a..1cbc607c521 100644 --- a/src/mame/drivers/instruct.cpp +++ b/src/mame/drivers/instruct.cpp @@ -405,7 +405,7 @@ QUICKLOAD_LOAD_MEMBER( instruct_state, instruct ) return result; } -static MACHINE_CONFIG_START( instruct, instruct_state ) +static MACHINE_CONFIG_START( instruct ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",S2650, XTAL_3_579545MHz / 4) MCFG_CPU_PROGRAM_MAP(instruct_mem) @@ -438,5 +438,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1978, instruct, 0, 0, instruct, instruct, driver_device, 0, "Signetics", "Signetics Instructor 50", 0 ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1978, instruct, 0, 0, instruct, instruct, instruct_state, 0, "Signetics", "Signetics Instructor 50", 0 ) diff --git a/src/mame/drivers/interact.cpp b/src/mame/drivers/interact.cpp index 3a09bff57e0..0c2cde72d9b 100644 --- a/src/mame/drivers/interact.cpp +++ b/src/mame/drivers/interact.cpp @@ -120,7 +120,7 @@ uint32_t interact_state::screen_update_interact(screen_device &screen, bitmap_in return 0; } -static MACHINE_CONFIG_START( interact, interact_state ) +static MACHINE_CONFIG_START( interact ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8080, XTAL_2MHz) @@ -157,7 +157,7 @@ static MACHINE_CONFIG_START( interact, interact_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( hector1, interact_state ) +static MACHINE_CONFIG_START( hector1 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_1_75MHz) @@ -296,6 +296,6 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP(1979, interact, 0, 0, interact, interact, driver_device, 0, "Interact", "Interact Family Computer", MACHINE_IMPERFECT_SOUND) -COMP(1983, hector1, interact, 0, hector1, interact, driver_device, 0, "Micronique", "Hector 1", MACHINE_IMPERFECT_SOUND) +/* YEAR NAME PARENT COMPA MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +COMP(1979, interact, 0, 0, interact, interact, interact_state, 0, "Interact", "Interact Family Computer", MACHINE_IMPERFECT_SOUND) +COMP(1983, hector1, interact, 0, hector1, interact, interact_state, 0, "Micronique", "Hector 1", MACHINE_IMPERFECT_SOUND) diff --git a/src/mame/drivers/interpro.cpp b/src/mame/drivers/interpro.cpp index 1732cbddae2..47e8f41c1fd 100644 --- a/src/mame/drivers/interpro.cpp +++ b/src/mame/drivers/interpro.cpp @@ -233,7 +233,7 @@ static ADDRESS_MAP_START(interpro_io_map, AS_1, 32, interpro_state) // this is probably the srx arbiter ga AM_RANGE(0x7f000200, 0x7f0002ff) AM_RAM AM_RANGE(0x7f000300, 0x7f00030f) AM_READWRITE16(system_r, system_w, 0xffff) - AM_RANGE(0x7f000400, 0x7f00040f) AM_DEVREADWRITE8(INTERPRO_SCC1_TAG, scc85C30_device, ba_cd_inv_r, ba_cd_inv_w, 0xff) + AM_RANGE(0x7f000400, 0x7f00040f) AM_DEVREADWRITE8(INTERPRO_SCC1_TAG, scc85c30_device, ba_cd_inv_r, ba_cd_inv_w, 0xff) AM_RANGE(0x7f000410, 0x7f00041f) AM_DEVREADWRITE8(INTERPRO_SCC2_TAG, scc85230_device, ba_cd_inv_r, ba_cd_inv_w, 0xff) AM_RANGE(0x7f000500, 0x7f0006ff) AM_READWRITE8(rtc_r, rtc_w, 0xff) AM_RANGE(0x7f000700, 0x7f00077f) AM_READ(idprom_r) @@ -262,7 +262,7 @@ SLOT_INTERFACE_END static INPUT_PORTS_START(ip2800) INPUT_PORTS_END -static MACHINE_CONFIG_START(ip2800, interpro_state) +static MACHINE_CONFIG_START(ip2800) MCFG_CPU_ADD(INTERPRO_CPU_TAG, CLIPPER_C400, XTAL_10MHz) MCFG_CPU_PROGRAM_MAP(clipper_insn_map) MCFG_CPU_DATA_MAP(clipper_data_map) diff --git a/src/mame/drivers/intrscti.cpp b/src/mame/drivers/intrscti.cpp index 69d993bf9e9..497df9a1f8f 100644 --- a/src/mame/drivers/intrscti.cpp +++ b/src/mame/drivers/intrscti.cpp @@ -176,7 +176,7 @@ static GFXDECODE_START( intrscti ) GFXDECODE_END -static MACHINE_CONFIG_START( intrscti, intrscti_state ) +static MACHINE_CONFIG_START( intrscti ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 4000000) /* ? MHz */ diff --git a/src/mame/drivers/intv.cpp b/src/mame/drivers/intv.cpp index 12834066b12..c22ecb51e7f 100644 --- a/src/mame/drivers/intv.cpp +++ b/src/mame/drivers/intv.cpp @@ -455,7 +455,7 @@ INTERRUPT_GEN_MEMBER(intv_state::intv_interrupt2) timer_set(m_keyboard->cycles_to_attotime(100), TIMER_INTV_INTERRUPT2_COMPLETE); } -static MACHINE_CONFIG_START( intv, intv_state ) +static MACHINE_CONFIG_START( intv ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", CP1610, XTAL_3_579545MHz/4) /* Colorburst/4 */ MCFG_CPU_PROGRAM_MAP(intv_mem) @@ -469,8 +469,8 @@ static MACHINE_CONFIG_START( intv, intv_state ) MCFG_SCREEN_REFRESH_RATE(59.92) //MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2400)) /* not accurate */ MCFG_SCREEN_UPDATE_DRIVER(intv_state, screen_update_intv) - MCFG_SCREEN_SIZE((STIC_OVERSCAN_LEFT_WIDTH+STIC_BACKTAB_WIDTH*STIC_CARD_WIDTH-1+STIC_OVERSCAN_RIGHT_WIDTH)*STIC_X_SCALE*INTV_X_SCALE, (STIC_OVERSCAN_TOP_HEIGHT+STIC_BACKTAB_HEIGHT*STIC_CARD_HEIGHT+STIC_OVERSCAN_BOTTOM_HEIGHT)*STIC_Y_SCALE*INTV_Y_SCALE) - MCFG_SCREEN_VISIBLE_AREA(0, (STIC_OVERSCAN_LEFT_WIDTH+STIC_BACKTAB_WIDTH*STIC_CARD_WIDTH-1+STIC_OVERSCAN_RIGHT_WIDTH)*STIC_X_SCALE*INTV_X_SCALE-1, 0, (STIC_OVERSCAN_TOP_HEIGHT+STIC_BACKTAB_HEIGHT*STIC_CARD_HEIGHT+STIC_OVERSCAN_BOTTOM_HEIGHT)*STIC_Y_SCALE*INTV_Y_SCALE-1) + MCFG_SCREEN_SIZE(stic_device::SCREEN_WIDTH*INTV_X_SCALE, stic_device::SCREEN_HEIGHT*INTV_Y_SCALE) + MCFG_SCREEN_VISIBLE_AREA(0, stic_device::SCREEN_WIDTH*INTV_X_SCALE-1, 0, stic_device::SCREEN_HEIGHT*INTV_Y_SCALE-1) MCFG_SCREEN_PALETTE("palette") MCFG_PALETTE_ADD("palette", 0x400) @@ -547,8 +547,8 @@ static MACHINE_CONFIG_DERIVED( intvkbd, intv ) /* crt controller */ MCFG_DEVICE_ADD("crtc", TMS9927, XTAL_7_15909MHz) MCFG_TMS9927_CHAR_WIDTH(8) - MCFG_TMS9927_OVERSCAN(STIC_OVERSCAN_LEFT_WIDTH*STIC_X_SCALE*INTVKBD_X_SCALE, STIC_OVERSCAN_RIGHT_WIDTH*STIC_X_SCALE*INTVKBD_X_SCALE, - STIC_OVERSCAN_TOP_HEIGHT*STIC_Y_SCALE*INTVKBD_Y_SCALE, STIC_OVERSCAN_BOTTOM_HEIGHT*STIC_Y_SCALE*INTVKBD_Y_SCALE) + MCFG_TMS9927_OVERSCAN(stic_device::OVERSCAN_LEFT_WIDTH*stic_device::X_SCALE*INTVKBD_X_SCALE, stic_device::OVERSCAN_RIGHT_WIDTH*stic_device::X_SCALE*INTVKBD_X_SCALE, + stic_device::OVERSCAN_TOP_HEIGHT*stic_device::Y_SCALE*INTVKBD_Y_SCALE, stic_device::OVERSCAN_BOTTOM_HEIGHT*stic_device::Y_SCALE*INTVKBD_Y_SCALE) MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_UPDATE_DRIVER(intv_state, screen_update_intvkbd) @@ -652,10 +652,10 @@ DRIVER_INIT_MEMBER(intv_state,intvkbd) ***************************************************************************/ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME */ CONS( 1979, intv, 0, 0, intv, 0, intv_state, intv, "Mattel", "Intellivision", MACHINE_SUPPORTS_SAVE ) CONS( 1981, intvsrs, intv, 0, intv, 0, intv_state, intv, "Sears", "Super Video Arcade", MACHINE_SUPPORTS_SAVE ) -COMP( 1981, intvkbd, intv, 0, intvkbd, intvkbd, intv_state, intvkbd, "Mattel", "Intellivision Keyboard Component (Unreleased)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +COMP( 1981, intvkbd, intv, 0, intvkbd, intvkbd, intv_state, intvkbd, "Mattel", "Intellivision Keyboard Component (Unreleased)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) CONS( 1982, intv2, intv, 0, intv2, 0, intv_state, intv, "Mattel", "Intellivision II", MACHINE_SUPPORTS_SAVE ) // made up, user friendlier machines with pre-mounted passthu expansions diff --git a/src/mame/drivers/inufuku.cpp b/src/mame/drivers/inufuku.cpp index ab9fa4070c7..32c44add03e 100644 --- a/src/mame/drivers/inufuku.cpp +++ b/src/mame/drivers/inufuku.cpp @@ -354,7 +354,7 @@ void inufuku_state::machine_reset() m_tx_palettebank = 0; } -static MACHINE_CONFIG_START( inufuku, inufuku_state ) +static MACHINE_CONFIG_START( inufuku ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 32000000/2) /* 16.00 MHz */ @@ -479,5 +479,5 @@ ROM_END ******************************************************************************/ -GAME( 1998, inufuku, 0, inufuku, inufuku, driver_device, 0, ROT0, "Video System Co.", "Quiz & Variety Sukusuku Inufuku (Japan)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1996, 3on3dunk, 0, _3on3dunk, inufuku, driver_device, 0, ROT0, "Video System Co.", "3 On 3 Dunk Madness (US, prototype? 1997/02/04)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS ) // tilemap priority is wrong in places (basketball before explosion in attract, highscores) +GAME( 1998, inufuku, 0, inufuku, inufuku, inufuku_state, 0, ROT0, "Video System Co.", "Quiz & Variety Sukusuku Inufuku (Japan)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1996, 3on3dunk, 0, _3on3dunk, inufuku, inufuku_state, 0, ROT0, "Video System Co.", "3 On 3 Dunk Madness (US, prototype? 1997/02/04)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS ) // tilemap priority is wrong in places (basketball before explosion in attract, highscores) diff --git a/src/mame/drivers/invqix.cpp b/src/mame/drivers/invqix.cpp index 7bec200f66f..f03e5006da0 100644 --- a/src/mame/drivers/invqix.cpp +++ b/src/mame/drivers/invqix.cpp @@ -277,7 +277,7 @@ WRITE16_MEMBER(invqix_state::vctl_w) static ADDRESS_MAP_START(invqix_prg_map, AS_PROGRAM, 16, invqix_state) AM_RANGE(0x000000, 0x1fffff) AM_ROM AM_REGION("program", 0) AM_RANGE(0x200000, 0x21ffff) AM_RAM - AM_RANGE(0x400000, 0x400001) AM_DEVWRITE8("oki", okim9810_device, write_TMP_register, 0x00ff) + AM_RANGE(0x400000, 0x400001) AM_DEVWRITE8("oki", okim9810_device, write_tmp_register, 0x00ff) AM_RANGE(0x400000, 0x400001) AM_DEVWRITE8("oki", okim9810_device, write, 0xff00) AM_RANGE(0x400002, 0x400003) AM_DEVREAD8("oki", okim9810_device, read, 0xff00) AM_RANGE(0x600000, 0x61ffff) AM_RAM AM_SHARE("vram") @@ -327,7 +327,7 @@ static INPUT_PORTS_START( invqix ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) INPUT_PORTS_END -static MACHINE_CONFIG_START( invqix, invqix_state ) +static MACHINE_CONFIG_START( invqix ) MCFG_CPU_ADD("maincpu", H8S2394, XTAL_20MHz) MCFG_CPU_PROGRAM_MAP(invqix_prg_map) MCFG_CPU_IO_MAP(invqix_io_map) @@ -364,4 +364,4 @@ ROM_START( invqix ) ROM_LOAD16_WORD_SWAP( "93c46.ic6", 0x000000, 0x000080, CRC(564b744e) SHA1(4d9ea7dc253797c513258d07a936dfb63d8ed18c) ) ROM_END -GAME( 2003, invqix, 0, invqix, invqix, driver_device, 0, ROT270, "Taito / Namco", "Space Invaders / Qix Silver Anniversary Edition (Ver. 2.03)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, invqix, 0, invqix, invqix, invqix_state, 0, ROT270, "Taito / Namco", "Space Invaders / Qix Silver Anniversary Edition (Ver. 2.03)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/ipc.cpp b/src/mame/drivers/ipc.cpp index b537510e628..0df64b30376 100644 --- a/src/mame/drivers/ipc.cpp +++ b/src/mame/drivers/ipc.cpp @@ -59,7 +59,7 @@ public: required_device m_terminal; DECLARE_READ8_MEMBER( ipc_f4_r ); DECLARE_READ8_MEMBER( ipc_f5_r ); - DECLARE_WRITE8_MEMBER( kbd_put ); + void kbd_put(u8 data); uint8_t *m_ram; uint8_t m_term_data; virtual void machine_reset() override; @@ -99,15 +99,15 @@ INPUT_PORTS_END void ipc_state::machine_reset() { - m_maincpu->set_state_int(I8085_PC, 0xE800); + m_maincpu->set_state_int(i8085a_cpu_device::I8085_PC, 0xE800); } -WRITE8_MEMBER( ipc_state::kbd_put ) +void ipc_state::kbd_put(u8 data) { m_term_data = data; } -static MACHINE_CONFIG_START( ipc, ipc_state ) +static MACHINE_CONFIG_START( ipc ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",I8085A, XTAL_19_6608MHz / 4) MCFG_CPU_PROGRAM_MAP(ipc_mem) @@ -115,7 +115,7 @@ static MACHINE_CONFIG_START( ipc, ipc_state ) /* video hardware */ MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0) - MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(ipc_state, kbd_put)) + MCFG_GENERIC_TERMINAL_KEYBOARD_CB(PUT(ipc_state, kbd_put)) MACHINE_CONFIG_END /* ROM definition */ @@ -135,6 +135,6 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 19??, ipb, 0, 0, ipc, ipc, driver_device, 0, "Intel", "iPB", MACHINE_NO_SOUND) -COMP( 19??, ipc, ipb, 0, ipc, ipc, driver_device, 0, "Intel", "iPC", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +COMP( 19??, ipb, 0, 0, ipc, ipc, ipc_state, 0, "Intel", "iPB", MACHINE_NO_SOUND) +COMP( 19??, ipc, ipb, 0, ipc, ipc, ipc_state, 0, "Intel", "iPC", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) diff --git a/src/mame/drivers/ipds.cpp b/src/mame/drivers/ipds.cpp index 102050d1ddc..c92b9eecaea 100644 --- a/src/mame/drivers/ipds.cpp +++ b/src/mame/drivers/ipds.cpp @@ -33,7 +33,7 @@ public: DECLARE_READ8_MEMBER(ipds_b1_r); DECLARE_READ8_MEMBER(ipds_c0_r); DECLARE_WRITE8_MEMBER(ipds_b1_w); - DECLARE_WRITE8_MEMBER(kbd_put); + void kbd_put(u8 data); I8275_DRAW_CHARACTER_MEMBER( crtc_display_pixels ); uint8_t m_term_data; virtual void machine_reset() override; @@ -121,12 +121,12 @@ static GFXDECODE_START( ipds ) GFXDECODE_END -WRITE8_MEMBER( ipds_state::kbd_put ) +void ipds_state::kbd_put(u8 data) { m_term_data = data; } -static MACHINE_CONFIG_START( ipds, ipds_state ) +static MACHINE_CONFIG_START( ipds ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",I8085A, XTAL_19_6608MHz / 4) MCFG_CPU_PROGRAM_MAP(ipds_mem) @@ -147,7 +147,7 @@ static MACHINE_CONFIG_START( ipds, ipds_state ) MCFG_I8275_DRAW_CHARACTER_CALLBACK_OWNER(ipds_state, crtc_display_pixels) MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0) - MCFG_GENERIC_KEYBOARD_CB(WRITE8(ipds_state, kbd_put)) + MCFG_GENERIC_KEYBOARD_CB(PUT(ipds_state, kbd_put)) MACHINE_CONFIG_END /* ROM definition */ @@ -164,5 +164,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1982, ipds, 0, 0, ipds, ipds, driver_device, 0, "Intel", "iPDS", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +COMP( 1982, ipds, 0, 0, ipds, ipds, ipds_state, 0, "Intel", "iPDS", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) diff --git a/src/mame/drivers/iq151.cpp b/src/mame/drivers/iq151.cpp index 2e57b3bfaf9..e1f76ff7d83 100644 --- a/src/mame/drivers/iq151.cpp +++ b/src/mame/drivers/iq151.cpp @@ -380,7 +380,7 @@ static SLOT_INTERFACE_START(iq151_cart) SLOT_INTERFACE("amos3" , IQ151_AMOS3) // AMOS cart 3 SLOT_INTERFACE_END -static MACHINE_CONFIG_START( iq151, iq151_state ) +static MACHINE_CONFIG_START( iq151 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",I8080, XTAL_2MHz) MCFG_CPU_PROGRAM_MAP(iq151_mem) @@ -476,5 +476,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 198?, iq151, 0, 0, iq151, iq151, iq151_state, iq151, "ZPA Novy Bor", "IQ-151", 0 ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 198?, iq151, 0, 0, iq151, iq151, iq151_state, iq151, "ZPA Novy Bor", "IQ-151", 0 ) diff --git a/src/mame/drivers/iqblock.cpp b/src/mame/drivers/iqblock.cpp index 843c582b3ce..54fcc6acd6e 100644 --- a/src/mame/drivers/iqblock.cpp +++ b/src/mame/drivers/iqblock.cpp @@ -339,7 +339,7 @@ GFXDECODE_END -static MACHINE_CONFIG_START( iqblock, iqblock_state ) +static MACHINE_CONFIG_START( iqblock ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80,12000000/2) /* 6 MHz */ diff --git a/src/mame/drivers/iris3130.cpp b/src/mame/drivers/iris3130.cpp index 070c1ae8460..96c5ea9f1d7 100644 --- a/src/mame/drivers/iris3130.cpp +++ b/src/mame/drivers/iris3130.cpp @@ -418,7 +418,7 @@ static DEVICE_INPUT_DEFAULTS_START( ip2_terminal ) DEVICE_INPUT_DEFAULTS( "RS232_STOPBITS", 0xff, RS232_STOPBITS_1 ) DEVICE_INPUT_DEFAULTS_END -static MACHINE_CONFIG_START( sgi_ip2, sgi_ip2_state ) +static MACHINE_CONFIG_START( sgi_ip2 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68020, 16000000) MCFG_CPU_PROGRAM_MAP(sgi_ip2_map) @@ -507,5 +507,5 @@ ROM_START( sgi_ip2 ) ROM_LOAD( "sgi-ip2-u93.ip2.2-008.od", 0x10000, 0x8000, CRC(bf967590) SHA1(1aac48e4f5531a25c5482f64de5cd3c7a9931f11) ) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS COMP( 1985, sgi_ip2, 0, 0, sgi_ip2, sgi_ip2, sgi_ip2_state, sgi_ip2, "Silicon Graphics Inc", "IRIS 3130 (IP2)", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/irisha.cpp b/src/mame/drivers/irisha.cpp index 9ba3c7cd92b..d39c175397d 100644 --- a/src/mame/drivers/irisha.cpp +++ b/src/mame/drivers/irisha.cpp @@ -376,7 +376,7 @@ void irisha_state::machine_reset() } /* Machine driver */ -static MACHINE_CONFIG_START( irisha, irisha_state ) +static MACHINE_CONFIG_START( irisha ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8080, XTAL_16MHz / 9) MCFG_CPU_PROGRAM_MAP(irisha_mem) @@ -429,5 +429,5 @@ ROM_START( irisha ) ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1983, irisha, 0, 0, irisha, irisha, driver_device, 0, "MGU", "Irisha", MACHINE_NOT_WORKING) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 1983, irisha, 0, 0, irisha, irisha, irisha_state, 0, "MGU", "Irisha", MACHINE_NOT_WORKING) diff --git a/src/mame/drivers/irobot.cpp b/src/mame/drivers/irobot.cpp index a95673ab6c2..8669ef200e7 100644 --- a/src/mame/drivers/irobot.cpp +++ b/src/mame/drivers/irobot.cpp @@ -298,7 +298,7 @@ GFXDECODE_END * *************************************/ -static MACHINE_CONFIG_START( irobot, irobot_state ) +static MACHINE_CONFIG_START( irobot ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809, MAIN_CLOCK/8) diff --git a/src/mame/drivers/ironhors.cpp b/src/mame/drivers/ironhors.cpp index 3aa0484b5e4..53f1e5affeb 100644 --- a/src/mame/drivers/ironhors.cpp +++ b/src/mame/drivers/ironhors.cpp @@ -360,7 +360,7 @@ void ironhors_state::machine_reset() m_spriterambank = 0; } -static MACHINE_CONFIG_START( ironhors, ironhors_state ) +static MACHINE_CONFIG_START( ironhors ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809,18432000/6) /* 3.072 MHz??? mod by Shingo Suzuki 1999/10/15 */ @@ -533,6 +533,6 @@ ROM_END * *************************************/ -GAME( 1986, ironhors, 0, ironhors, ironhors, driver_device, 0, ROT0, "Konami", "Iron Horse", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, dairesya, ironhors, ironhors, dairesya, driver_device, 0, ROT0, "Konami (Kawakusu license)", "Dai Ressya Goutou (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, farwest, ironhors, farwest, ironhors, driver_device, 0, ROT0, "bootleg?", "Far West", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +GAME( 1986, ironhors, 0, ironhors, ironhors, ironhors_state, 0, ROT0, "Konami", "Iron Horse", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, dairesya, ironhors, ironhors, dairesya, ironhors_state, 0, ROT0, "Konami (Kawakusu license)", "Dai Ressya Goutou (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, farwest, ironhors, farwest, ironhors, ironhors_state, 0, ROT0, "bootleg?", "Far West", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/isbc.cpp b/src/mame/drivers/isbc.cpp index 535a0887fda..c1afa9151f3 100644 --- a/src/mame/drivers/isbc.cpp +++ b/src/mame/drivers/isbc.cpp @@ -52,7 +52,7 @@ public: required_device m_maincpu; optional_device m_uart8251; // optional_device m_uart8274; - optional_device m_uart8274; + optional_device m_uart8274; required_device m_pic_0; optional_device m_pic_1; optional_device m_centronics; @@ -153,7 +153,7 @@ static ADDRESS_MAP_START(isbc286_io, AS_IO, 16, isbc_state) AM_RANGE(0x00c8, 0x00cf) AM_DEVREADWRITE8("ppi", i8255_device, read, write, 0x00ff) AM_RANGE(0x00c8, 0x00cf) AM_WRITE8(upperen_w, 0xff00) AM_RANGE(0x00d0, 0x00d7) AM_DEVREADWRITE8("pit", pit8254_device, read, write, 0x00ff) - AM_RANGE(0x00d8, 0x00df) AM_DEVREADWRITE8("uart8274", i8274N_device, cd_ba_r, cd_ba_w, 0x00ff) + AM_RANGE(0x00d8, 0x00df) AM_DEVREADWRITE8("uart8274", i8274_new_device, cd_ba_r, cd_ba_w, 0x00ff) AM_RANGE(0x0100, 0x0101) AM_DEVWRITE8("isbc_215g", isbc_215g_device, write, 0x00ff) ADDRESS_MAP_END @@ -258,7 +258,7 @@ WRITE_LINE_MEMBER(isbc_state::isbc_uart8274_irq) } #endif -static MACHINE_CONFIG_START( isbc86, isbc_state ) +static MACHINE_CONFIG_START( isbc86 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8086, XTAL_5MHz) MCFG_CPU_PROGRAM_MAP(isbc86_mem) @@ -290,7 +290,7 @@ static MACHINE_CONFIG_START( isbc86, isbc_state ) MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("terminal", isbc86_terminal) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( rpc86, isbc_state ) +static MACHINE_CONFIG_START( rpc86 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8086, XTAL_5MHz) MCFG_CPU_PROGRAM_MAP(rpc86_mem) @@ -347,7 +347,7 @@ static MACHINE_CONFIG_DERIVED( isbc8630, rpc86 ) MCFG_ISBC_215_IRQ(DEVWRITELINE("pic_0", pic8259_device, ir5_w)) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( isbc286, isbc_state ) +static MACHINE_CONFIG_START( isbc286 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I80286, XTAL_16MHz/2) MCFG_CPU_PROGRAM_MAP(isbc286_mem) @@ -362,7 +362,7 @@ static MACHINE_CONFIG_START( isbc286, isbc_state ) MCFG_PIT8253_OUT0_HANDLER(DEVWRITELINE("pic_0", pic8259_device, ir0_w)) MCFG_PIT8253_CLK1(XTAL_22_1184MHz/18) // MCFG_PIT8253_OUT1_HANDLER(DEVWRITELINE("uart8274", z80dart_device, rxtxcb_w)) - MCFG_PIT8253_OUT1_HANDLER(DEVWRITELINE("uart8274", i8274N_device, rxtxcb_w)) + MCFG_PIT8253_OUT1_HANDLER(DEVWRITELINE("uart8274", i8274_new_device, rxtxcb_w)) MCFG_PIT8253_CLK2(XTAL_22_1184MHz/18) MCFG_PIT8253_OUT2_HANDLER(WRITELINE(isbc_state, isbc286_tmr2_w)) @@ -406,9 +406,9 @@ static MACHINE_CONFIG_START( isbc286, isbc_state ) MCFG_RS232_DCD_HANDLER(DEVWRITELINE("uart8274", z80dart_device, dcda_w)) MCFG_RS232_CTS_HANDLER(DEVWRITELINE("uart8274", z80dart_device, ctsa_w)) #else - MCFG_RS232_RXD_HANDLER(DEVWRITELINE("uart8274", i8274N_device, rxa_w)) - MCFG_RS232_DCD_HANDLER(DEVWRITELINE("uart8274", i8274N_device, dcda_w)) - MCFG_RS232_CTS_HANDLER(DEVWRITELINE("uart8274", i8274N_device, ctsa_w)) + MCFG_RS232_RXD_HANDLER(DEVWRITELINE("uart8274", i8274_new_device, rxa_w)) + MCFG_RS232_DCD_HANDLER(DEVWRITELINE("uart8274", i8274_new_device, dcda_w)) + MCFG_RS232_CTS_HANDLER(DEVWRITELINE("uart8274", i8274_new_device, ctsa_w)) #endif MCFG_RS232_PORT_ADD("rs232b", default_rs232_devices, "terminal") @@ -417,9 +417,9 @@ static MACHINE_CONFIG_START( isbc286, isbc_state ) MCFG_RS232_DCD_HANDLER(DEVWRITELINE("uart8274", z80dart_device, dcdb_w)) MCFG_RS232_CTS_HANDLER(DEVWRITELINE("uart8274", z80dart_device, ctsb_w)) #else - MCFG_RS232_RXD_HANDLER(DEVWRITELINE("uart8274", i8274N_device, rxb_w)) - MCFG_RS232_DCD_HANDLER(DEVWRITELINE("uart8274", i8274N_device, dcdb_w)) - MCFG_RS232_CTS_HANDLER(DEVWRITELINE("uart8274", i8274N_device, ctsb_w)) + MCFG_RS232_RXD_HANDLER(DEVWRITELINE("uart8274", i8274_new_device, rxb_w)) + MCFG_RS232_DCD_HANDLER(DEVWRITELINE("uart8274", i8274_new_device, dcdb_w)) + MCFG_RS232_CTS_HANDLER(DEVWRITELINE("uart8274", i8274_new_device, ctsb_w)) #endif MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("terminal", isbc286_terminal) @@ -574,11 +574,11 @@ ROM_START( rpc86 ) ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 19??, rpc86, 0, 0, rpc86, isbc, driver_device, 0, "Intel", "RPC 86",MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW) -COMP( 1978, isbc86, 0, 0, isbc86, isbc, driver_device, 0, "Intel", "iSBC 86/12A",MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW) -COMP( 1981, isbc8605, 0, 0, isbc8605, isbc, driver_device, 0, "Intel", "iSBC 86/05",MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW) -COMP( 1981, isbc8630, 0, 0, isbc8630, isbc, driver_device, 0, "Intel", "iSBC 86/30",MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW) -COMP( 19??, isbc286, 0, 0, isbc286, isbc, driver_device, 0, "Intel", "iSBC 286",MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW) -COMP( 1983, isbc2861, 0, 0, isbc2861, isbc, driver_device, 0, "Intel", "iSBC 286/10", MACHINE_NO_SOUND_HW) -COMP( 1983, isbc28612,0, 0, isbc2861, isbc, driver_device, 0, "Intel", "iSBC 286/12", MACHINE_NO_SOUND_HW) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +COMP( 19??, rpc86, 0, 0, rpc86, isbc, isbc_state, 0, "Intel", "RPC 86", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW) +COMP( 1978, isbc86, 0, 0, isbc86, isbc, isbc_state, 0, "Intel", "iSBC 86/12A", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW) +COMP( 1981, isbc8605, 0, 0, isbc8605, isbc, isbc_state, 0, "Intel", "iSBC 86/05", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW) +COMP( 1981, isbc8630, 0, 0, isbc8630, isbc, isbc_state, 0, "Intel", "iSBC 86/30", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW) +COMP( 19??, isbc286, 0, 0, isbc286, isbc, isbc_state, 0, "Intel", "iSBC 286", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW) +COMP( 1983, isbc2861, 0, 0, isbc2861, isbc, isbc_state, 0, "Intel", "iSBC 286/10", MACHINE_NO_SOUND_HW) +COMP( 1983, isbc28612, 0, 0, isbc2861, isbc, isbc_state, 0, "Intel", "iSBC 286/12", MACHINE_NO_SOUND_HW) diff --git a/src/mame/drivers/isbc8010.cpp b/src/mame/drivers/isbc8010.cpp index e7e0f9a60cc..a3f662c6a0c 100644 --- a/src/mame/drivers/isbc8010.cpp +++ b/src/mame/drivers/isbc8010.cpp @@ -159,7 +159,7 @@ static DEVICE_INPUT_DEFAULTS_START( terminal ) // set up terminal to default to DEVICE_INPUT_DEFAULTS( "RS232_STOPBITS", 0xff, RS232_STOPBITS_1 ) DEVICE_INPUT_DEFAULTS_END -static MACHINE_CONFIG_START( isbc8010, isbc8010_state ) +static MACHINE_CONFIG_START( isbc8010 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8080A, XTAL_18_432MHz/9) MCFG_CPU_PROGRAM_MAP(isbc8010_mem) @@ -260,7 +260,7 @@ ROM_END #define rom_isbc8010a rom_isbc8010 #define rom_isbc8010b rom_isbc8010 -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1975, isbc8010, 0, 0, isbc8010, isbc8010, driver_device, 0, "Intel", "iSBC 80/10", MACHINE_NO_SOUND_HW ) -COMP( 1977, isbc8010a, isbc8010, 0, isbc8010a, isbc8010, driver_device, 0, "Intel", "iSBC 80/10A", MACHINE_NO_SOUND_HW ) -COMP( 1979, isbc8010b, isbc8010, 0, isbc8010b, isbc8010, driver_device, 0, "Intel", "iSBC 80/10B", MACHINE_NO_SOUND_HW ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ +COMP( 1975, isbc8010, 0, 0, isbc8010, isbc8010, isbc8010_state, 0, "Intel", "iSBC 80/10", MACHINE_NO_SOUND_HW ) +COMP( 1977, isbc8010a, isbc8010, 0, isbc8010a, isbc8010, isbc8010_state, 0, "Intel", "iSBC 80/10A", MACHINE_NO_SOUND_HW ) +COMP( 1979, isbc8010b, isbc8010, 0, isbc8010b, isbc8010, isbc8010_state, 0, "Intel", "iSBC 80/10B", MACHINE_NO_SOUND_HW ) diff --git a/src/mame/drivers/isbc8030.cpp b/src/mame/drivers/isbc8030.cpp index bc4b96f2877..0c4437fc8e5 100644 --- a/src/mame/drivers/isbc8030.cpp +++ b/src/mame/drivers/isbc8030.cpp @@ -135,7 +135,7 @@ static DEVICE_INPUT_DEFAULTS_START( terminal ) // set up terminal to default to DEVICE_INPUT_DEFAULTS( "RS232_STOPBITS", 0xff, RS232_STOPBITS_1 ) DEVICE_INPUT_DEFAULTS_END -static MACHINE_CONFIG_START( isbc8030, isbc8030_state ) +static MACHINE_CONFIG_START( isbc8030 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8085A, XTAL_22_1184MHz / 4) MCFG_CPU_PROGRAM_MAP(isbc8030_mem) @@ -173,5 +173,5 @@ ROM_START( isbc8030 ) ROM_LOAD( "mon830.bin", 0x0000, 0x0800, CRC(cda15115) SHA1(242dad14a919568178b363c3e27f22ec0a5849b3)) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1978, isbc8030, 0, 0, isbc8030, isbc8030, driver_device, 0, "Intel", "iSBC 80/30", MACHINE_NO_SOUND_HW ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ +COMP( 1978, isbc8030, 0, 0, isbc8030, isbc8030, isbc8030_state, 0, "Intel", "iSBC 80/30", MACHINE_NO_SOUND_HW ) diff --git a/src/mame/drivers/iskr103x.cpp b/src/mame/drivers/iskr103x.cpp index b829df842f7..638423fdb8d 100644 --- a/src/mame/drivers/iskr103x.cpp +++ b/src/mame/drivers/iskr103x.cpp @@ -60,7 +60,7 @@ static DEVICE_INPUT_DEFAULTS_START(iskr1031) DEVICE_INPUT_DEFAULTS_END // XXX -static MACHINE_CONFIG_START( iskr1030m, iskr103x_state ) +static MACHINE_CONFIG_START( iskr1030m ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8086, 4772720) MCFG_CPU_PROGRAM_MAP(iskr1031_map) @@ -114,6 +114,6 @@ ROM_END ***************************************************************************/ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ -COMP ( 1989, iskr1030m, ibm5150, 0, iskr1030m, 0, driver_device, 0, "Schetmash", "Iskra 1030M", MACHINE_NOT_WORKING) -COMP ( 1989, iskr1031, ibm5150, 0, iskr1031, 0, driver_device, 0, "", "Iskra 1031", 0) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP ( 1989, iskr1030m, ibm5150, 0, iskr1030m, 0, iskr103x_state, 0, "Schetmash", "Iskra 1030M", MACHINE_NOT_WORKING ) +COMP ( 1989, iskr1031, ibm5150, 0, iskr1031, 0, iskr103x_state, 0, "", "Iskra 1031", 0 ) diff --git a/src/mame/drivers/istellar.cpp b/src/mame/drivers/istellar.cpp index 4a273d6637c..3f28c9cd07b 100644 --- a/src/mame/drivers/istellar.cpp +++ b/src/mame/drivers/istellar.cpp @@ -339,7 +339,7 @@ INTERRUPT_GEN_MEMBER(istellar_state::vblank_callback_istellar) /* DRIVER */ -static MACHINE_CONFIG_START( istellar, istellar_state ) +static MACHINE_CONFIG_START( istellar ) /* main cpu */ MCFG_CPU_ADD("maincpu", Z80, GUESSED_CLOCK) MCFG_CPU_PROGRAM_MAP(z80_0_mem) @@ -434,5 +434,5 @@ DRIVER_INIT_MEMBER(istellar_state,istellar) #endif } -/* YEAR NAME PARENT MACHINE INPUT INIT MONITOR COMPANY FULLNAME FLAGS) */ -GAME( 1983, istellar, 0, istellar, istellar, istellar_state, istellar, ROT0, "Funai/Gakken", "Interstellar Laser Fantasy", MACHINE_NOT_WORKING|MACHINE_NO_SOUND) +// YEAR NAME PARENT MACHINE INPUT STATE INIT MONITOR COMPANY FULLNAME FLAGS) +GAME( 1983, istellar, 0, istellar, istellar, istellar_state, istellar, ROT0, "Funai/Gakken", "Interstellar Laser Fantasy", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) diff --git a/src/mame/drivers/istrebiteli.cpp b/src/mame/drivers/istrebiteli.cpp index 3127d7fc050..8f413efc0e2 100644 --- a/src/mame/drivers/istrebiteli.cpp +++ b/src/mame/drivers/istrebiteli.cpp @@ -56,14 +56,14 @@ private: uint8_t m_prev_data; }; -extern const device_type ISTREBITELI_SOUND; +DECLARE_DEVICE_TYPE(ISTREBITELI_SOUND, istrebiteli_sound_device) ////////////////////////////////////////////////////////////// -const device_type ISTREBITELI_SOUND = device_creator; +DEFINE_DEVICE_TYPE(ISTREBITELI_SOUND, istrebiteli_sound_device, "istrebiteli_sound", "Istrebiteli Sound") istrebiteli_sound_device::istrebiteli_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, ISTREBITELI_SOUND, "Istrebiteli Sound", tag, owner, clock, "istrebiteli_sound", __FILE__), + : device_t(mconfig, ISTREBITELI_SOUND, tag, owner, clock), device_sound_interface(mconfig, *this), m_channel(nullptr), m_rom(nullptr), @@ -413,7 +413,7 @@ static GFXDECODE_START( istrebiteli ) GFXDECODE_ENTRY( "sprite", 0x0200, projectile_layout, 0, 2 ) GFXDECODE_END -static MACHINE_CONFIG_START( istreb, istrebiteli_state) +static MACHINE_CONFIG_START( istreb ) /* basic machine hardware */ MCFG_CPU_ADD(I8080_TAG, I8080, XTAL_8MHz / 4) // KR580VM80A MCFG_CPU_PROGRAM_MAP(mem_map) @@ -466,4 +466,4 @@ ROM_START( istreb ) ROM_LOAD( "003-w3.bin", 0x000, 0x200, CRC(54eb4893) SHA1(c7a4724045c645ab728074ed7fef1882d9776005) ) ROM_END -GAME( 198?, istreb, 0, istreb, istreb, driver_device, 0, ROT0, "Terminal", "Istrebiteli", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE) +GAME( 198?, istreb, 0, istreb, istreb, istrebiteli_state, 0, ROT0, "Terminal", "Istrebiteli", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE) diff --git a/src/mame/drivers/iteagle.cpp b/src/mame/drivers/iteagle.cpp index b41ded09b8e..82f9c71dd9a 100644 --- a/src/mame/drivers/iteagle.cpp +++ b/src/mame/drivers/iteagle.cpp @@ -153,7 +153,7 @@ void iteagle_state::machine_reset() #define PCI_ID_VIDEO ":pci:09.0" #define PCI_ID_EEPROM ":pci:0a.0" -static MACHINE_CONFIG_START( iteagle, iteagle_state ) +static MACHINE_CONFIG_START( iteagle ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", VR4310LE, 166666666) @@ -585,20 +585,20 @@ ROM_END * *************************************/ -GAME( 2000, iteagle, 0, iteagle, iteagle, driver_device, 0, ROT0, "Incredible Technologies", "Eagle BIOS", MACHINE_IS_BIOS_ROOT ) -GAME( 1998, virtpool, iteagle, virtpool, virtpool, driver_device, 0, ROT0, "Incredible Technologies", "Virtual Pool", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // random lockups on loading screens -GAME( 2002, carnking, iteagle, carnking, bbh, driver_device, 0, ROT0, "Incredible Technologies", "Carnival King (v1.00.11)", MACHINE_SUPPORTS_SAVE ) -GAME( 2000, gtfore01, iteagle, gtfore01, iteagle, driver_device, 0, ROT0, "Incredible Technologies", "Golden Tee Fore! (v1.00.25)", MACHINE_SUPPORTS_SAVE ) -GAME( 2001, gtfore02, iteagle, gtfore02, iteagle, driver_device, 0, ROT0, "Incredible Technologies", "Golden Tee Fore! 2002 (v2.01.06)", MACHINE_SUPPORTS_SAVE ) -GAME( 2002, gtfore03, iteagle, gtfore03, iteagle, driver_device, 0, ROT0, "Incredible Technologies", "Golden Tee Fore! 2003 (v3.00.10)", MACHINE_SUPPORTS_SAVE ) -GAME( 2002, gtfore03a, gtfore03, gtfore03, iteagle, driver_device, 0, ROT0, "Incredible Technologies", "Golden Tee Fore! 2003 (v3.00.09)", MACHINE_SUPPORTS_SAVE ) -GAME( 2003, gtfore04, iteagle, gtfore04, iteagle, driver_device, 0, ROT0, "Incredible Technologies", "Golden Tee Fore! 2004 Extra (v4.00.08)", MACHINE_SUPPORTS_SAVE ) -GAME( 2003, gtfore04a, gtfore04, gtfore04, iteagle, driver_device, 0, ROT0, "Incredible Technologies", "Golden Tee Fore! 2004 (v4.00.00)", MACHINE_SUPPORTS_SAVE ) -GAME( 2004, gtfore05, iteagle, gtfore05, iteagle, driver_device, 0, ROT0, "Incredible Technologies", "Golden Tee Fore! 2005 Extra (v5.01.06)", MACHINE_SUPPORTS_SAVE ) -GAME( 2004, gtfore05a, gtfore05, gtfore05, iteagle, driver_device, 0, ROT0, "Incredible Technologies", "Golden Tee Fore! 2005 Extra (v5.01.02)", MACHINE_SUPPORTS_SAVE ) -GAME( 2004, gtfore05b, gtfore05, gtfore05, iteagle, driver_device, 0, ROT0, "Incredible Technologies", "Golden Tee Fore! 2005 Extra (v5.01.00)", MACHINE_SUPPORTS_SAVE ) -GAME( 2004, gtfore05c, gtfore05, gtfore05, iteagle, driver_device, 0, ROT0, "Incredible Technologies", "Golden Tee Fore! 2005 Extra (v5.00.00)", MACHINE_SUPPORTS_SAVE ) -GAME( 2005, gtfore06, iteagle, gtfore06, iteagle, driver_device, 0, ROT0, "Incredible Technologies", "Golden Tee Fore! 2006 Complete (v6.00.01)", MACHINE_SUPPORTS_SAVE ) -GAME( 2002, bbhsc, iteagle, bbhsc, bbh, driver_device, 0, ROT0, "Incredible Technologies", "Big Buck Hunter - Shooter's Challenge (v1.50.07)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // doesn't boot -GAME( 2002, bbh2sp, iteagle, bbh2sp, bbh, driver_device, 0, ROT0, "Incredible Technologies", "Big Buck Hunter II - Sportsman's Paradise (v2.02.11)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // SW51-2 needs to be off -GAME( 2006, bbhcotw, iteagle, bbhcotw, bbh, driver_device, 0, ROT0, "Incredible Technologies", "Big Buck Hunter Call of the Wild (v3.02.5)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // random lockups +GAME( 2000, iteagle, 0, iteagle, iteagle, iteagle_state, 0, ROT0, "Incredible Technologies", "Eagle BIOS", MACHINE_IS_BIOS_ROOT ) +GAME( 1998, virtpool, iteagle, virtpool, virtpool, iteagle_state, 0, ROT0, "Incredible Technologies", "Virtual Pool", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // random lockups on loading screens +GAME( 2002, carnking, iteagle, carnking, bbh, iteagle_state, 0, ROT0, "Incredible Technologies", "Carnival King (v1.00.11)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, gtfore01, iteagle, gtfore01, iteagle, iteagle_state, 0, ROT0, "Incredible Technologies", "Golden Tee Fore! (v1.00.25)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, gtfore02, iteagle, gtfore02, iteagle, iteagle_state, 0, ROT0, "Incredible Technologies", "Golden Tee Fore! 2002 (v2.01.06)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, gtfore03, iteagle, gtfore03, iteagle, iteagle_state, 0, ROT0, "Incredible Technologies", "Golden Tee Fore! 2003 (v3.00.10)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, gtfore03a, gtfore03, gtfore03, iteagle, iteagle_state, 0, ROT0, "Incredible Technologies", "Golden Tee Fore! 2003 (v3.00.09)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, gtfore04, iteagle, gtfore04, iteagle, iteagle_state, 0, ROT0, "Incredible Technologies", "Golden Tee Fore! 2004 Extra (v4.00.08)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, gtfore04a, gtfore04, gtfore04, iteagle, iteagle_state, 0, ROT0, "Incredible Technologies", "Golden Tee Fore! 2004 (v4.00.00)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, gtfore05, iteagle, gtfore05, iteagle, iteagle_state, 0, ROT0, "Incredible Technologies", "Golden Tee Fore! 2005 Extra (v5.01.06)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, gtfore05a, gtfore05, gtfore05, iteagle, iteagle_state, 0, ROT0, "Incredible Technologies", "Golden Tee Fore! 2005 Extra (v5.01.02)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, gtfore05b, gtfore05, gtfore05, iteagle, iteagle_state, 0, ROT0, "Incredible Technologies", "Golden Tee Fore! 2005 Extra (v5.01.00)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, gtfore05c, gtfore05, gtfore05, iteagle, iteagle_state, 0, ROT0, "Incredible Technologies", "Golden Tee Fore! 2005 Extra (v5.00.00)", MACHINE_SUPPORTS_SAVE ) +GAME( 2005, gtfore06, iteagle, gtfore06, iteagle, iteagle_state, 0, ROT0, "Incredible Technologies", "Golden Tee Fore! 2006 Complete (v6.00.01)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, bbhsc, iteagle, bbhsc, bbh, iteagle_state, 0, ROT0, "Incredible Technologies", "Big Buck Hunter - Shooter's Challenge (v1.50.07)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // doesn't boot +GAME( 2002, bbh2sp, iteagle, bbh2sp, bbh, iteagle_state, 0, ROT0, "Incredible Technologies", "Big Buck Hunter II - Sportsman's Paradise (v2.02.11)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // SW51-2 needs to be off +GAME( 2006, bbhcotw, iteagle, bbhcotw, bbh, iteagle_state, 0, ROT0, "Incredible Technologies", "Big Buck Hunter Call of the Wild (v3.02.5)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // random lockups diff --git a/src/mame/drivers/itech32.cpp b/src/mame/drivers/itech32.cpp index 9aa1288a2f9..eaffb85ebbb 100644 --- a/src/mame/drivers/itech32.cpp +++ b/src/mame/drivers/itech32.cpp @@ -1672,7 +1672,7 @@ INPUT_PORTS_END * *************************************/ -static MACHINE_CONFIG_START( timekill, itech32_state ) +static MACHINE_CONFIG_START( timekill ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, CPU_CLOCK) diff --git a/src/mame/drivers/itech8.cpp b/src/mame/drivers/itech8.cpp index 0db825c5d95..d75b7071c19 100644 --- a/src/mame/drivers/itech8.cpp +++ b/src/mame/drivers/itech8.cpp @@ -1655,7 +1655,7 @@ WRITE_LINE_MEMBER(itech8_state::generate_tms34061_interrupt) /************* core pieces ******************/ -static MACHINE_CONFIG_START( itech8_core_lo, itech8_state ) +static MACHINE_CONFIG_START( itech8_core_lo ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809, CLOCK_8MHz/4) @@ -1712,7 +1712,7 @@ static MACHINE_CONFIG_FRAGMENT( itech8_sound_ym2203 ) MCFG_SOUND_ROUTE(2, "mono", 0.07) MCFG_SOUND_ROUTE(3, "mono", 0.75) - MCFG_OKIM6295_ADD("oki", CLOCK_8MHz/8, OKIM6295_PIN7_HIGH) // was /128, not /132, so unsure so pin 7 not verified + MCFG_OKIM6295_ADD("oki", CLOCK_8MHz/8, PIN7_HIGH) // was /128, not /132, so unsure so pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.75) MACHINE_CONFIG_END @@ -1747,7 +1747,7 @@ static MACHINE_CONFIG_FRAGMENT( itech8_sound_ym3812 ) MCFG_YM3812_IRQ_HANDLER(INPUTLINE("soundcpu", M6809_FIRQ_LINE)) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.75) - MCFG_OKIM6295_ADD("oki", CLOCK_8MHz/8, OKIM6295_PIN7_HIGH) // was /128, not /132, so unsure so pin 7 not verified + MCFG_OKIM6295_ADD("oki", CLOCK_8MHz/8, PIN7_HIGH) // was /128, not /132, so unsure so pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.75) MACHINE_CONFIG_END @@ -1763,7 +1763,7 @@ static MACHINE_CONFIG_FRAGMENT( itech8_sound_ym3812_external ) MCFG_YM3812_IRQ_HANDLER(INPUTLINE("soundcpu", M6809_FIRQ_LINE)) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.75) - MCFG_OKIM6295_ADD("oki", CLOCK_8MHz/8, OKIM6295_PIN7_HIGH) // was /128, not /132, so unsure so pin 7 not verified + MCFG_OKIM6295_ADD("oki", CLOCK_8MHz/8, PIN7_HIGH) // was /128, not /132, so unsure so pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.75) MACHINE_CONFIG_END @@ -2737,20 +2737,20 @@ DRIVER_INIT_MEMBER(itech8_state,rimrockn) *************************************/ /* Wheel of Fortune-style PCB */ -GAME( 1989, wfortune, 0, wfortune, wfortune, driver_device, 0, ROT0, "GameTek", "Wheel Of Fortune (set 1)", 0 ) -GAME( 1989, wfortunea,wfortune, wfortune, wfortune, driver_device, 0, ROT0, "GameTek", "Wheel Of Fortune (set 2)", 0 ) +GAME( 1989, wfortune, 0, wfortune, wfortune, itech8_state, 0, ROT0, "GameTek", "Wheel Of Fortune (set 1)", 0 ) +GAME( 1989, wfortunea,wfortune, wfortune, wfortune, itech8_state, 0, ROT0, "GameTek", "Wheel Of Fortune (set 2)", 0 ) /* Grudge Match-style PCB */ -GAME( 1989, grmatch, 0, grmatch, grmatch, itech8_state, grmatch, ROT0, "Yankee Game Technology", "Grudge Match (Yankee Game Technology)", 0 ) +GAME( 1989, grmatch, 0, grmatch, grmatch, itech8_state, grmatch, ROT0, "Yankee Game Technology", "Grudge Match (Yankee Game Technology)", 0 ) /* Strata Bowling-style PCB */ -GAME( 1990, stratab, 0, stratab_hi, stratab, driver_device, 0, ROT270, "Strata/Incredible Technologies", "Strata Bowling (V3)", 0 ) // still says V1 in service mode? -GAME( 1990, stratab1, stratab, stratab_hi, stratab, driver_device, 0, ROT270, "Strata/Incredible Technologies", "Strata Bowling (V1)", 0 ) -GAME( 1990, gtg, 0, stratab_hi, gtg, driver_device, 0, ROT0, "Strata/Incredible Technologies", "Golden Tee Golf (Joystick, v3.1)", 0 ) -GAME( 1989, gtgt, gtg, stratab_hi, gtgt, driver_device, 0, ROT0, "Strata/Incredible Technologies", "Golden Tee Golf (Trackball, v2.0)", 0 ) -GAME( 1989, gtgt1, gtg, stratab_hi, gtgt, driver_device, 0, ROT0, "Strata/Incredible Technologies", "Golden Tee Golf (Trackball, v1.0)", 0 ) -GAME( 1989, gtg2t, gtg2, stratab_hi, gtg2t, driver_device, 0, ROT0, "Strata/Incredible Technologies", "Golden Tee Golf II (Trackball, V1.1)", 0 ) -GAME( 1991, gtg2j, gtg2, stratab_lo, gtg, driver_device, 0, ROT0, "Strata/Incredible Technologies", "Golden Tee Golf II (Joystick, V1.0)", 0 ) +GAME( 1990, stratab, 0, stratab_hi, stratab, itech8_state, 0, ROT270, "Strata/Incredible Technologies", "Strata Bowling (V3)", 0 ) // still says V1 in service mode? +GAME( 1990, stratab1, stratab, stratab_hi, stratab, itech8_state, 0, ROT270, "Strata/Incredible Technologies", "Strata Bowling (V1)", 0 ) +GAME( 1990, gtg, 0, stratab_hi, gtg, itech8_state, 0, ROT0, "Strata/Incredible Technologies", "Golden Tee Golf (Joystick, v3.1)", 0 ) +GAME( 1989, gtgt, gtg, stratab_hi, gtgt, itech8_state, 0, ROT0, "Strata/Incredible Technologies", "Golden Tee Golf (Trackball, v2.0)", 0 ) +GAME( 1989, gtgt1, gtg, stratab_hi, gtgt, itech8_state, 0, ROT0, "Strata/Incredible Technologies", "Golden Tee Golf (Trackball, v1.0)", 0 ) +GAME( 1989, gtg2t, gtg2, stratab_hi, gtg2t, itech8_state, 0, ROT0, "Strata/Incredible Technologies", "Golden Tee Golf II (Trackball, V1.1)", 0 ) +GAME( 1991, gtg2j, gtg2, stratab_lo, gtg, itech8_state, 0, ROT0, "Strata/Incredible Technologies", "Golden Tee Golf II (Joystick, V1.0)", 0 ) /* Slick Shot-style PCB */ GAME( 1990, slikshot, 0, slikshot_hi, slikshot, itech8_state, slikshot, ROT90, "Grand Products/Incredible Technologies", "Slick Shot (V2.2)", MACHINE_MECHANICAL ) @@ -2758,26 +2758,26 @@ GAME( 1990, slikshot17,slikshot, slikshot_hi, slikshot, itech8_state, slik GAME( 1990, slikshot16,slikshot, slikshot_hi, slikshot, itech8_state, slikshot, ROT90, "Grand Products/Incredible Technologies", "Slick Shot (V1.6)", MACHINE_MECHANICAL ) GAME( 1990, dynobop, 0, slikshot_hi, dynobop, itech8_state, slikshot, ROT90, "Grand Products/Incredible Technologies", "Dyno Bop (V1.1)", MACHINE_MECHANICAL ) GAME( 1990, sstrike, 0, sstrike, sstrike, itech8_state, sstrike, ROT270, "Strata/Incredible Technologies", "Super Strike Bowling", MACHINE_MECHANICAL ) -GAME( 1991, pokrdice, 0, slikshot_lo_noz80, pokrdice, driver_device,0, ROT90, "Strata/Incredible Technologies", "Poker Dice", 0 ) +GAME( 1991, pokrdice, 0, slikshot_lo_noz80, pokrdice, itech8_state, 0, ROT90, "Strata/Incredible Technologies", "Poker Dice", 0 ) GAME( 1990, stratabs, stratab, sstrike, stratabs, itech8_state, sstrike, ROT270, "Strata/Incredible Technologies", "Strata Bowling (V1 4T, Super Strike Bowling type PCB)", MACHINE_NOT_WORKING ) // need to figure out the control hookup for this set, service mode indicates it's still a trackball like stratab /* Hot Shots Tennis-style PCB */ GAME( 1990, hstennis, 0, hstennis_hi, hstennis, itech8_state, hstennis, ROT90, "Strata/Incredible Technologies", "Hot Shots Tennis (V1.1)", 0 ) GAME( 1990, hstennis10,hstennis, hstennis_hi, hstennis, itech8_state, hstennis, ROT90, "Strata/Incredible Technologies", "Hot Shots Tennis (V1.0)", 0 ) GAME( 1991, arlingtn, 0, hstennis_hi, arlingtn, itech8_state, arligntn, ROT0, "Strata/Incredible Technologies", "Arlington Horse Racing (v1.21-D)", 0 ) -GAME( 1991, peggle, 0, hstennis_lo, peggle, itech8_state, peggle, ROT90, "Strata/Incredible Technologies", "Peggle (Joystick, v1.0)", 0 ) -GAME( 1991, pegglet, peggle, hstennis_lo, pegglet, itech8_state, peggle, ROT90, "Strata/Incredible Technologies", "Peggle (Trackball, v1.0)", 0 ) +GAME( 1991, peggle, 0, hstennis_lo, peggle, itech8_state, peggle, ROT90, "Strata/Incredible Technologies", "Peggle (Joystick, v1.0)", 0 ) +GAME( 1991, pegglet, peggle, hstennis_lo, pegglet, itech8_state, peggle, ROT90, "Strata/Incredible Technologies", "Peggle (Trackball, v1.0)", 0 ) GAME( 1992, neckneck, 0, hstennis_lo, neckneck, itech8_state, neckneck, ROT0, "Bundra Games/Incredible Technologies", "Neck-n-Neck (v1.2)", 0 ) /* Rim Rockin' Basketball-style PCB */ -GAME( 1991, rimrockn, 0, rimrockn, rimrockn, itech8_state, rimrockn, ROT0, "Strata/Incredible Technologies", "Rim Rockin' Basketball (V2.2)", 0 ) -GAME( 1991, rimrockn20, rimrockn, rimrockn, rimrockn, itech8_state, rimrockn, ROT0, "Strata/Incredible Technologies", "Rim Rockin' Basketball (V2.0)", 0 ) -GAME( 1991, rimrockn16, rimrockn, rimrockn, rimrockn, itech8_state, rimrockn, ROT0, "Strata/Incredible Technologies", "Rim Rockin' Basketball (V1.6)", 0 ) -GAME( 1991, rimrockn12, rimrockn, rimrockn, rimrockn, itech8_state, rimrockn, ROT0, "Strata/Incredible Technologies", "Rim Rockin' Basketball (V1.2)", 0 ) +GAME( 1991, rimrockn, 0, rimrockn, rimrockn, itech8_state, rimrockn, ROT0, "Strata/Incredible Technologies", "Rim Rockin' Basketball (V2.2)", 0 ) +GAME( 1991, rimrockn20, rimrockn, rimrockn, rimrockn, itech8_state, rimrockn, ROT0, "Strata/Incredible Technologies", "Rim Rockin' Basketball (V2.0)", 0 ) +GAME( 1991, rimrockn16, rimrockn, rimrockn, rimrockn, itech8_state, rimrockn, ROT0, "Strata/Incredible Technologies", "Rim Rockin' Basketball (V1.6)", 0 ) +GAME( 1991, rimrockn12, rimrockn, rimrockn, rimrockn, itech8_state, rimrockn, ROT0, "Strata/Incredible Technologies", "Rim Rockin' Basketball (V1.2)", 0 ) /* Ninja Clowns-style PCB */ -GAME( 1991, ninclown, 0, ninclown, ninclown, driver_device, 0, ROT0, "Strata/Incredible Technologies", "Ninja Clowns (08/27/91)", 0 ) +GAME( 1991, ninclown, 0, ninclown, ninclown, itech8_state, 0, ROT0, "Strata/Incredible Technologies", "Ninja Clowns (08/27/91)", 0 ) /* Golden Tee Golf II-style PCB */ -GAME( 1992, gpgolf, 0, gtg2, gpgolf, driver_device, 0, ROT0, "Strata/Incredible Technologies", "Golden Par Golf (Joystick, V1.1)", 0 ) -GAME( 1992, gtg2, 0, gtg2, gtg2, driver_device, 0, ROT0, "Strata/Incredible Technologies", "Golden Tee Golf II (Trackball, V2.2)", 0 ) +GAME( 1992, gpgolf, 0, gtg2, gpgolf, itech8_state, 0, ROT0, "Strata/Incredible Technologies", "Golden Par Golf (Joystick, V1.1)", 0 ) +GAME( 1992, gtg2, 0, gtg2, gtg2, itech8_state, 0, ROT0, "Strata/Incredible Technologies", "Golden Tee Golf II (Trackball, V2.2)", 0 ) diff --git a/src/mame/drivers/itgambl2.cpp b/src/mame/drivers/itgambl2.cpp index 698055beeff..857aad36c04 100644 --- a/src/mame/drivers/itgambl2.cpp +++ b/src/mame/drivers/itgambl2.cpp @@ -270,7 +270,7 @@ PALETTE_INIT_MEMBER(itgambl2_state, itgambl2) * Machine Drivers * **************************/ -static MACHINE_CONFIG_START( itgambl2, itgambl2_state ) +static MACHINE_CONFIG_START( itgambl2 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", H83337, MAIN_CLOCK) @@ -1100,24 +1100,24 @@ ROM_END * Game Drivers * *************************/ -/* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS */ -GAME( 1999, ntcash, 0, itgambl2, itgambl2, driver_device, 0, ROT0, "", "NtCash", MACHINE_IS_SKELETON ) -GAME( 1999, wizard, 0, itgambl2, itgambl2, driver_device, 0, ROT0, "A.A.", "Wizard (Ver 1.0)", MACHINE_IS_SKELETON ) -GAME( 200?, trstar2k, 0, itgambl2, itgambl2, driver_device, 0, ROT0, "A.M.", "Triple Star 2000", MACHINE_IS_SKELETON ) -GAME( 2001, laser2k1, 0, itgambl2, itgambl2, driver_device, 0, ROT0, "", "Laser 2001 (Ver 1.2)", MACHINE_IS_SKELETON ) -GAME( 2001, mdrink, 0, itgambl2, itgambl2, driver_device, 0, ROT0, "", "Magic Drink (Ver 1.2)", MACHINE_IS_SKELETON ) -GAME( 2001, te0144, 0, itgambl2, itgambl2, driver_device, 0, ROT0, "", "Puzzle Bobble (Italian Gambling Game)", MACHINE_IS_SKELETON ) -GAME( 200?, cmagica, 0, itgambl2, itgambl2, driver_device, 0, ROT0, "", "Carta Magica (Ver 1.8)", MACHINE_IS_SKELETON ) -GAME( 200?, mcard_h8, cmagica, itgambl2, itgambl2, driver_device, 0, ROT0, "", "Magic Card (H8, English)", MACHINE_IS_SKELETON ) -GAME( 200?, millsun, 0, itgambl2, itgambl2, driver_device, 0, ROT0, "", "Millennium Sun", MACHINE_IS_SKELETON ) -GAME( 200?, sspac2k1, 0, itgambl2, itgambl2, driver_device, 0, ROT0, "", "Super Space 2001", MACHINE_IS_SKELETON ) -GAME( 200?, elvis, 0, itgambl2, itgambl2, driver_device, 0, ROT0, "", "Elvis?", MACHINE_IS_SKELETON ) -GAME( 200?, sstar, 0, itgambl2, itgambl2, driver_device, 0, ROT0, "", "Super Star", MACHINE_IS_SKELETON ) -GAME( 2001, pirati, 0, itgambl2, itgambl2, driver_device, 0, ROT0, "Cin", "Pirati", MACHINE_IS_SKELETON ) -GAME( 200?, mnumitg, 0, itgambl2, itgambl2, driver_device, 0, ROT0, "", "Magic Number (Italian Gambling Game, Ver 1.5)", MACHINE_IS_SKELETON ) -GAME( 200?, mclass, 0, itgambl2, itgambl2, driver_device, 0, ROT0, "", "Magic Class (Ver 2.2)", MACHINE_IS_SKELETON ) -GAME( 200?, europass, 0, itgambl2, itgambl2, driver_device, 0, ROT0, "", "Euro Pass (Ver 1.1)", MACHINE_IS_SKELETON ) -GAME( 200?, thedrink, 0, itgambl2, itgambl2, driver_device, 0, ROT0, "", "The Drink", MACHINE_IS_SKELETON ) -GAME( 200?, unkh8gam, 0, itgambl2, itgambl2, driver_device, 0, ROT0, "", "unknown H8 Italian Gambling game", MACHINE_IS_SKELETON ) -GAME( 200?, eurodsr, 0, itgambl2, itgambl2, driver_device, 0, ROT0, "", "Euro Double Star Record (ver.1.2)", MACHINE_IS_SKELETON ) -GAME( 200?, granfrat, 0, itgambl2, itgambl2, driver_device, 0, ROT0, "", "Grande Fratello (Ver. 1.7)", MACHINE_IS_SKELETON ) +// YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS +GAME( 1999, ntcash, 0, itgambl2, itgambl2, itgambl2_state, 0, ROT0, "", "NtCash", MACHINE_IS_SKELETON ) +GAME( 1999, wizard, 0, itgambl2, itgambl2, itgambl2_state, 0, ROT0, "A.A.", "Wizard (Ver 1.0)", MACHINE_IS_SKELETON ) +GAME( 200?, trstar2k, 0, itgambl2, itgambl2, itgambl2_state, 0, ROT0, "A.M.", "Triple Star 2000", MACHINE_IS_SKELETON ) +GAME( 2001, laser2k1, 0, itgambl2, itgambl2, itgambl2_state, 0, ROT0, "", "Laser 2001 (Ver 1.2)", MACHINE_IS_SKELETON ) +GAME( 2001, mdrink, 0, itgambl2, itgambl2, itgambl2_state, 0, ROT0, "", "Magic Drink (Ver 1.2)", MACHINE_IS_SKELETON ) +GAME( 2001, te0144, 0, itgambl2, itgambl2, itgambl2_state, 0, ROT0, "", "Puzzle Bobble (Italian Gambling Game)", MACHINE_IS_SKELETON ) +GAME( 200?, cmagica, 0, itgambl2, itgambl2, itgambl2_state, 0, ROT0, "", "Carta Magica (Ver 1.8)", MACHINE_IS_SKELETON ) +GAME( 200?, mcard_h8, cmagica, itgambl2, itgambl2, itgambl2_state, 0, ROT0, "", "Magic Card (H8, English)", MACHINE_IS_SKELETON ) +GAME( 200?, millsun, 0, itgambl2, itgambl2, itgambl2_state, 0, ROT0, "", "Millennium Sun", MACHINE_IS_SKELETON ) +GAME( 200?, sspac2k1, 0, itgambl2, itgambl2, itgambl2_state, 0, ROT0, "", "Super Space 2001", MACHINE_IS_SKELETON ) +GAME( 200?, elvis, 0, itgambl2, itgambl2, itgambl2_state, 0, ROT0, "", "Elvis?", MACHINE_IS_SKELETON ) +GAME( 200?, sstar, 0, itgambl2, itgambl2, itgambl2_state, 0, ROT0, "", "Super Star", MACHINE_IS_SKELETON ) +GAME( 2001, pirati, 0, itgambl2, itgambl2, itgambl2_state, 0, ROT0, "Cin", "Pirati", MACHINE_IS_SKELETON ) +GAME( 200?, mnumitg, 0, itgambl2, itgambl2, itgambl2_state, 0, ROT0, "", "Magic Number (Italian Gambling Game, Ver 1.5)", MACHINE_IS_SKELETON ) +GAME( 200?, mclass, 0, itgambl2, itgambl2, itgambl2_state, 0, ROT0, "", "Magic Class (Ver 2.2)", MACHINE_IS_SKELETON ) +GAME( 200?, europass, 0, itgambl2, itgambl2, itgambl2_state, 0, ROT0, "", "Euro Pass (Ver 1.1)", MACHINE_IS_SKELETON ) +GAME( 200?, thedrink, 0, itgambl2, itgambl2, itgambl2_state, 0, ROT0, "", "The Drink", MACHINE_IS_SKELETON ) +GAME( 200?, unkh8gam, 0, itgambl2, itgambl2, itgambl2_state, 0, ROT0, "", "unknown H8 Italian Gambling game", MACHINE_IS_SKELETON ) +GAME( 200?, eurodsr, 0, itgambl2, itgambl2, itgambl2_state, 0, ROT0, "", "Euro Double Star Record (ver.1.2)", MACHINE_IS_SKELETON ) +GAME( 200?, granfrat, 0, itgambl2, itgambl2, itgambl2_state, 0, ROT0, "", "Grande Fratello (Ver. 1.7)", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/itgambl3.cpp b/src/mame/drivers/itgambl3.cpp index a7450add868..522f43567ec 100644 --- a/src/mame/drivers/itgambl3.cpp +++ b/src/mame/drivers/itgambl3.cpp @@ -258,7 +258,7 @@ PALETTE_INIT_MEMBER(itgambl3_state, itgambl3) * Machine Drivers * **************************/ -static MACHINE_CONFIG_START( itgambl3, itgambl3_state ) +static MACHINE_CONFIG_START( itgambl3 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", H83044, MAIN_CLOCK) /* wrong CPU, but we have not a M16C core ATM */ @@ -279,7 +279,7 @@ static MACHINE_CONFIG_START( itgambl3, itgambl3_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", MAIN_CLOCK/16, OKIM6295_PIN7_HIGH) /* 1MHz */ + MCFG_OKIM6295_ADD("oki", MAIN_CLOCK/16, PIN7_HIGH) /* 1MHz */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -515,10 +515,10 @@ ROM_END * Game Drivers * *************************/ -/* YEAR NAME PARENT MACHINE INPUT INIT ROT COMPANY FULLNAME FLAGS */ -GAME( 200?, ejollyx5, 0, itgambl3, itgambl3, driver_device, 0, ROT0, "Solar Games", "Euro Jolly X5", MACHINE_IS_SKELETON ) -GAME( 200?, grandprx, 0, itgambl3, itgambl3, driver_device, 0, ROT0, "4fun", "Grand Prix", MACHINE_IS_SKELETON ) -GAME( 200?, supjolly, 0, itgambl3, itgambl3, driver_device, 0, ROT0, "", "Super Jolly", MACHINE_IS_SKELETON ) -GAME( 200?, x5jokers, 0, itgambl3, itgambl3, driver_device, 0, ROT0, "Electronic Projects", "X Five Jokers (Version 1.12)", MACHINE_IS_SKELETON ) -GAME( 200?, queenotg, 0, itgambl3, itgambl3, driver_device, 0, ROT0, "", "Queen of the Games", MACHINE_IS_SKELETON ) -GAME( 200?, ejollyx9, 0, itgambl3, itgambl3, driver_device, 0, ROT0, "Solar Games", "Euro Jolly X9", MACHINE_IS_SKELETON ) +// YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS +GAME( 200?, ejollyx5, 0, itgambl3, itgambl3, itgambl3_state, 0, ROT0, "Solar Games", "Euro Jolly X5", MACHINE_IS_SKELETON ) +GAME( 200?, grandprx, 0, itgambl3, itgambl3, itgambl3_state, 0, ROT0, "4fun", "Grand Prix", MACHINE_IS_SKELETON ) +GAME( 200?, supjolly, 0, itgambl3, itgambl3, itgambl3_state, 0, ROT0, "", "Super Jolly", MACHINE_IS_SKELETON ) +GAME( 200?, x5jokers, 0, itgambl3, itgambl3, itgambl3_state, 0, ROT0, "Electronic Projects", "X Five Jokers (Version 1.12)", MACHINE_IS_SKELETON ) +GAME( 200?, queenotg, 0, itgambl3, itgambl3, itgambl3_state, 0, ROT0, "", "Queen of the Games", MACHINE_IS_SKELETON ) +GAME( 200?, ejollyx9, 0, itgambl3, itgambl3, itgambl3_state, 0, ROT0, "Solar Games", "Euro Jolly X9", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/itgamble.cpp b/src/mame/drivers/itgamble.cpp index 968d49e713f..e7a8f8d9d44 100644 --- a/src/mame/drivers/itgamble.cpp +++ b/src/mame/drivers/itgamble.cpp @@ -208,7 +208,7 @@ void itgamble_state::machine_reset() * Machine Drivers * **************************/ -static MACHINE_CONFIG_START( itgamble, itgamble_state ) +static MACHINE_CONFIG_START( itgamble ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", H83048, MAIN_CLOCK/2) @@ -228,7 +228,7 @@ static MACHINE_CONFIG_START( itgamble, itgamble_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", SND_CLOCK, OKIM6295_PIN7_HIGH) /* 1MHz resonator */ + MCFG_OKIM6295_ADD("oki", SND_CLOCK, PIN7_HIGH) /* 1MHz resonator */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -237,7 +237,7 @@ static MACHINE_CONFIG_DERIVED( mnumber, itgamble ) MCFG_CPU_MODIFY("maincpu") MCFG_CPU_CLOCK(MNUMBER_MAIN_CLOCK/2) /* probably the wrong CPU */ - MCFG_OKIM6295_REPLACE("oki", MNUMBER_SND_CLOCK/16, OKIM6295_PIN7_HIGH) /* clock frequency & pin 7 not verified */ + MCFG_OKIM6295_REPLACE("oki", MNUMBER_SND_CLOCK/16, PIN7_HIGH) /* clock frequency & pin 7 not verified */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -248,7 +248,7 @@ static MACHINE_CONFIG_DERIVED( ejollyx5, itgamble ) MCFG_CPU_MODIFY("maincpu") MCFG_CPU_CLOCK(EJOLLYX5_MAIN_CLOCK/2) /* up to 10MHz.*/ - MCFG_OKIM6295_REPLACE("oki", MNUMBER_SND_CLOCK/16, OKIM6295_PIN7_HIGH) /* clock frequency & pin 7 not verified */ + MCFG_OKIM6295_REPLACE("oki", MNUMBER_SND_CLOCK/16, PIN7_HIGH) /* clock frequency & pin 7 not verified */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END #endif @@ -703,16 +703,16 @@ ROM_END * Game Drivers * *************************/ -/* YEAR NAME PARENT MACHINE INPUT INIT ROT COMPANY FULLNAME FLAGS */ -GAME( 2000, capunc, 0, itgamble, itgamble, driver_device, 0, ROT0, "Nazionale Elettronica", "Capitan Uncino (Ver 1.2)", MACHINE_IS_SKELETON ) -GAME( 2001, capcor, 0, itgamble, itgamble, driver_device, 0, ROT0, "Nazionale Elettronica", "Capitani Coraggiosi (Ver 1.3)", MACHINE_IS_SKELETON ) -GAME( 2002, laperla, 0, itgamble, itgamble, driver_device, 0, ROT0, "Nazionale Elettronica", "La Perla Nera (Ver 2.0)", MACHINE_IS_SKELETON ) -GAME( 2001, laperlag, 0, itgamble, itgamble, driver_device, 0, ROT0, "Nazionale Elettronica", "La Perla Nera Gold (Ver 2.0)", MACHINE_IS_SKELETON ) -GAME( 2001, euro2k2, 0, itgamble, itgamble, driver_device, 0, ROT0, "Nazionale Elettronica", "Europa 2002 (Ver 2.0, set 1)", MACHINE_IS_SKELETON ) -GAME( 2001, euro2k2a, euro2k2, itgamble, itgamble, driver_device, 0, ROT0, "Nazionale Elettronica", "Europa 2002 (Ver 2.0, set 2)", MACHINE_IS_SKELETON ) -GAME( 2002, euro2k2s, euro2k2, itgamble, itgamble, driver_device, 0, ROT0, "Nazionale Elettronica", "Europa 2002 Space (Ver 3.0)", MACHINE_IS_SKELETON ) -GAME( 200?, abacus, 0, itgamble, itgamble, driver_device, 0, ROT0, "", "Abacus (Ver 1.0)", MACHINE_IS_SKELETON ) -GAME( 200?, bookthr, 0, itgamble, itgamble, driver_device, 0, ROT0, "", "Book Theatre (Ver 1.2)", MACHINE_IS_SKELETON ) +// YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS +GAME( 2000, capunc, 0, itgamble, itgamble, itgamble_state, 0, ROT0, "Nazionale Elettronica", "Capitan Uncino (Ver 1.2)", MACHINE_IS_SKELETON ) +GAME( 2001, capcor, 0, itgamble, itgamble, itgamble_state, 0, ROT0, "Nazionale Elettronica", "Capitani Coraggiosi (Ver 1.3)", MACHINE_IS_SKELETON ) +GAME( 2002, laperla, 0, itgamble, itgamble, itgamble_state, 0, ROT0, "Nazionale Elettronica", "La Perla Nera (Ver 2.0)", MACHINE_IS_SKELETON ) +GAME( 2001, laperlag, 0, itgamble, itgamble, itgamble_state, 0, ROT0, "Nazionale Elettronica", "La Perla Nera Gold (Ver 2.0)", MACHINE_IS_SKELETON ) +GAME( 2001, euro2k2, 0, itgamble, itgamble, itgamble_state, 0, ROT0, "Nazionale Elettronica", "Europa 2002 (Ver 2.0, set 1)", MACHINE_IS_SKELETON ) +GAME( 2001, euro2k2a, euro2k2, itgamble, itgamble, itgamble_state, 0, ROT0, "Nazionale Elettronica", "Europa 2002 (Ver 2.0, set 2)", MACHINE_IS_SKELETON ) +GAME( 2002, euro2k2s, euro2k2, itgamble, itgamble, itgamble_state, 0, ROT0, "Nazionale Elettronica", "Europa 2002 Space (Ver 3.0)", MACHINE_IS_SKELETON ) +GAME( 200?, abacus, 0, itgamble, itgamble, itgamble_state, 0, ROT0, "", "Abacus (Ver 1.0)", MACHINE_IS_SKELETON ) +GAME( 200?, bookthr, 0, itgamble, itgamble, itgamble_state, 0, ROT0, "", "Book Theatre (Ver 1.2)", MACHINE_IS_SKELETON ) /* different hardware */ -GAME( 2000, mnumber, 0, mnumber, itgamble, driver_device, 0, ROT0, "MM / BRL Bologna", "Mystery Number", MACHINE_IS_SKELETON ) +GAME( 2000, mnumber, 0, mnumber, itgamble, itgamble_state, 0, ROT0, "MM / BRL Bologna", "Mystery Number", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/itt3030.cpp b/src/mame/drivers/itt3030.cpp index cd07cfa4dd6..070e3a943de 100644 --- a/src/mame/drivers/itt3030.cpp +++ b/src/mame/drivers/itt3030.cpp @@ -227,29 +227,9 @@ public: , m_palette(*this, "palette") { } - // devices - required_device m_maincpu; - required_device m_kbdmcu; - required_device m_ram; - required_device m_crtc; - required_device m_48kbank; - required_device m_fdc; - required_device m_floppy0; - required_device m_floppy1; - required_device m_beep; - - required_ioport_array<16> m_keyrows; - - // shared pointers - required_shared_ptr m_vram; - // screen updates uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); -protected: - // driver_device overrides - virtual void machine_start() override; - virtual void machine_reset() override; public: DECLARE_READ8_MEMBER(vsync_r); @@ -270,6 +250,27 @@ public: DECLARE_WRITE_LINE_MEMBER(fdchld_w); DECLARE_PALETTE_INIT(itt3030); +protected: + // driver_device overrides + virtual void machine_start() override; + virtual void machine_reset() override; + + // devices + required_device m_maincpu; + required_device m_kbdmcu; + required_device m_ram; + required_device m_crtc; + required_device m_48kbank; + required_device m_fdc; + required_device m_floppy0; + required_device m_floppy1; + required_device m_beep; + + required_ioport_array<16> m_keyrows; + + // shared pointers + required_shared_ptr m_vram; + private: uint8_t m_kbdclk, m_kbdread, m_kbdport2; required_device m_gfxdecode; @@ -655,7 +656,7 @@ PALETTE_INIT_MEMBER(itt3030_state, itt3030) palette.set_pen_color(2, rgb_t::black()); } -static MACHINE_CONFIG_START( itt3030, itt3030_state ) +static MACHINE_CONFIG_START( itt3030 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80,XTAL_4MHz) @@ -732,4 +733,4 @@ ROM_START( itt3030 ) ROM_LOAD( "8741ad.bin", 0x0000, 0x0400, CRC(cabf4394) SHA1(e5d1416b568efa32b578ca295a29b7b5d20c0def)) ROM_END -COMP( 1982, itt3030, 0, 0, itt3030, itt3030, driver_device, 0, "ITT RFA", "ITT3030", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +COMP( 1982, itt3030, 0, 0, itt3030, itt3030, itt3030_state, 0, "ITT RFA", "ITT3030", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/jack.cpp b/src/mame/drivers/jack.cpp index d941f12fd22..e17e13ab373 100644 --- a/src/mame/drivers/jack.cpp +++ b/src/mame/drivers/jack.cpp @@ -902,7 +902,7 @@ MACHINE_RESET_MEMBER(jack_state,joinem) /***************************************************************/ -static MACHINE_CONFIG_START( jack, jack_state ) +static MACHINE_CONFIG_START( jack ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_18MHz/6) diff --git a/src/mame/drivers/jackal.cpp b/src/mame/drivers/jackal.cpp index 9a5f4fc2d25..d619c1d3c79 100644 --- a/src/mame/drivers/jackal.cpp +++ b/src/mame/drivers/jackal.cpp @@ -355,7 +355,7 @@ void jackal_state::machine_reset() m_irq_enable = 0; } -static MACHINE_CONFIG_START( jackal, jackal_state ) +static MACHINE_CONFIG_START( jackal ) /* basic machine hardware */ MCFG_CPU_ADD("master", M6809, MASTER_CLOCK/12) // verified on pcb @@ -571,9 +571,9 @@ ROM_END * *************************************/ -GAME( 1986, jackal, 0, jackal, jackal, driver_device, 0, ROT90, "Konami", "Jackal (World, 8-way Joystick)", 0 ) -GAME( 1986, jackalr, jackal, jackal, jackalr, driver_device, 0, ROT90, "Konami", "Jackal (World, Rotary Joystick)", 0 ) -GAME( 1986, topgunr, jackal, jackal, jackal, driver_device, 0, ROT90, "Konami", "Top Gunner (US, 8-way Joystick)", 0 ) -GAME( 1986, jackalj, jackal, jackal, jackal, driver_device, 0, ROT90, "Konami", "Tokushu Butai Jackal (Japan, 8-way Joystick)", 0 ) -GAME( 1986, jackalbl, jackal, jackal, jackalr, driver_device, 0, ROT90, "bootleg", "Jackal (bootleg, Rotary Joystick)", 0 ) -GAME( 1986, topgunbl, jackal, jackal, jackalr, driver_device, 0, ROT90, "bootleg", "Top Gunner (bootleg, Rotary Joystick)", 0 ) +GAME( 1986, jackal, 0, jackal, jackal, jackal_state, 0, ROT90, "Konami", "Jackal (World, 8-way Joystick)", 0 ) +GAME( 1986, jackalr, jackal, jackal, jackalr, jackal_state, 0, ROT90, "Konami", "Jackal (World, Rotary Joystick)", 0 ) +GAME( 1986, topgunr, jackal, jackal, jackal, jackal_state, 0, ROT90, "Konami", "Top Gunner (US, 8-way Joystick)", 0 ) +GAME( 1986, jackalj, jackal, jackal, jackal, jackal_state, 0, ROT90, "Konami", "Tokushu Butai Jackal (Japan, 8-way Joystick)", 0 ) +GAME( 1986, jackalbl, jackal, jackal, jackalr, jackal_state, 0, ROT90, "bootleg", "Jackal (bootleg, Rotary Joystick)", 0 ) +GAME( 1986, topgunbl, jackal, jackal, jackalr, jackal_state, 0, ROT90, "bootleg", "Top Gunner (bootleg, Rotary Joystick)", 0 ) diff --git a/src/mame/drivers/jackie.cpp b/src/mame/drivers/jackie.cpp index 4bca5ce1f9e..287301a6965 100644 --- a/src/mame/drivers/jackie.cpp +++ b/src/mame/drivers/jackie.cpp @@ -595,7 +595,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(jackie_state::irq) m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE); } -static MACHINE_CONFIG_START( jackie, jackie_state ) +static MACHINE_CONFIG_START( jackie ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_12MHz / 2) diff --git a/src/mame/drivers/jackpool.cpp b/src/mame/drivers/jackpool.cpp index 8432bea81ee..c8fb44318e3 100644 --- a/src/mame/drivers/jackpool.cpp +++ b/src/mame/drivers/jackpool.cpp @@ -267,7 +267,7 @@ INTERRUPT_GEN_MEMBER(jackpool_state::jackpool_interrupt) } -static MACHINE_CONFIG_START( jackpool, jackpool_state ) +static MACHINE_CONFIG_START( jackpool ) MCFG_CPU_ADD("maincpu", M68000, 12000000) // ? MCFG_CPU_PROGRAM_MAP(jackpool_mem) MCFG_CPU_VBLANK_INT_DRIVER("screen", jackpool_state, jackpool_interrupt) // ? @@ -289,7 +289,7 @@ static MACHINE_CONFIG_START( jackpool, jackpool_state ) MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", 1056000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki", 1056000, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END diff --git a/src/mame/drivers/jade.cpp b/src/mame/drivers/jade.cpp index ad281aea28b..4cf9240d770 100644 --- a/src/mame/drivers/jade.cpp +++ b/src/mame/drivers/jade.cpp @@ -31,7 +31,7 @@ public: { } - DECLARE_WRITE8_MEMBER(kbd_put); + void kbd_put(u8 data); DECLARE_READ8_MEMBER(keyin_r); DECLARE_READ8_MEMBER(status_r); private: @@ -74,7 +74,7 @@ READ8_MEMBER( jade_state::status_r ) return (m_term_data) ? 5 : 4; } -WRITE8_MEMBER( jade_state::kbd_put ) +void jade_state::kbd_put(u8 data) { m_term_data = data; } @@ -84,7 +84,7 @@ void jade_state::machine_reset() m_term_data = 0; } -static MACHINE_CONFIG_START( jade, jade_state ) +static MACHINE_CONFIG_START( jade ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80, XTAL_4MHz) MCFG_CPU_PROGRAM_MAP(jade_mem) @@ -92,7 +92,7 @@ static MACHINE_CONFIG_START( jade, jade_state ) /* video hardware */ MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0) - MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(jade_state, kbd_put)) + MCFG_GENERIC_TERMINAL_KEYBOARD_CB(PUT(jade_state, kbd_put)) /* Devices */ MCFG_DEVICE_ADD("uart", I8251, 0) @@ -106,5 +106,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 19??, jade, 0, 0, jade, jade, driver_device, 0, "Jade", "JGZ80", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW ) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 19??, jade, 0, 0, jade, jade, jade_state, 0, "Jade", "JGZ80", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW ) diff --git a/src/mame/drivers/jaguar.cpp b/src/mame/drivers/jaguar.cpp index f909f68a59e..21aa7600dcf 100644 --- a/src/mame/drivers/jaguar.cpp +++ b/src/mame/drivers/jaguar.cpp @@ -334,6 +334,7 @@ Notes: #include "emu.h" #include "includes/jaguar.h" + #include "bus/generic/slot.h" #include "bus/generic/carts.h" #include "cpu/m68000/m68000.h" @@ -342,6 +343,7 @@ Notes: #include "imagedev/chd_cd.h" #include "imagedev/snapquik.h" #include "machine/eepromser.h" +#include "machine/idehd.h" #include "machine/watchdog.h" #include "machine/vt83c461.h" #include "sound/cdda.h" @@ -370,15 +372,13 @@ IRQ_CALLBACK_MEMBER(jaguar_state::jaguar_irq_callback) /// HACK: Maximum force requests data but doesn't transfer it all before issuing another command. /// According to the ATA specification this is not allowed, more investigation is required. -#include "machine/idehd.h" - -extern const device_type COJAG_HARDDISK; +DECLARE_DEVICE_TYPE(COJAG_HARDDISK, cojag_hdd) class cojag_hdd : public ide_hdd_device { public: cojag_hdd(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : ide_hdd_device(mconfig, COJAG_HARDDISK, "HDD CoJag", tag, owner, clock, "cojag_hdd", __FILE__) + : ide_hdd_device(mconfig, COJAG_HARDDISK, tag, owner, clock) { } @@ -394,7 +394,7 @@ public: } }; -const device_type COJAG_HARDDISK = device_creator; +DEFINE_DEVICE_TYPE(COJAG_HARDDISK, cojag_hdd, "cojag_hdd", "HDD CoJag") SLOT_INTERFACE_START(cojag_devices) SLOT_INTERFACE("hdd", COJAG_HARDDISK) @@ -1801,7 +1801,7 @@ INPUT_PORTS_END * *************************************/ -static MACHINE_CONFIG_START( cojagr3k, jaguar_state ) +static MACHINE_CONFIG_START( cojagr3k ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", R3041, R3000_CLOCK) @@ -1851,7 +1851,7 @@ static MACHINE_CONFIG_DERIVED( cojag68k, cojagr3k ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( jaguar, jaguar_state ) +static MACHINE_CONFIG_START( jaguar ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, JAGUAR_CLOCK/2) diff --git a/src/mame/drivers/jailbrek.cpp b/src/mame/drivers/jailbrek.cpp index 97583d59fb5..96e5171613e 100644 --- a/src/mame/drivers/jailbrek.cpp +++ b/src/mame/drivers/jailbrek.cpp @@ -259,7 +259,7 @@ void jailbrek_state::machine_reset() m_nmi_enable = 0; } -static MACHINE_CONFIG_START( jailbrek, jailbrek_state ) +static MACHINE_CONFIG_START( jailbrek ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", KONAMI1, MASTER_CLOCK/12) @@ -421,6 +421,6 @@ ROM_START( jailbrekb ) ROM_LOAD( "k8.bin", 0x0000, 0x0001, NO_DUMP ) /* PAL16L8 */ ROM_END -GAME( 1986, jailbrek, 0, jailbrek, jailbrek, driver_device, 0, ROT0, "Konami", "Jail Break", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, jailbrekb,jailbrek, jailbrek, jailbrek, driver_device, 0, ROT0, "bootleg","Jail Break (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, manhatan, jailbrek, jailbrek, jailbrek, driver_device, 0, ROT0, "Konami", "Manhattan 24 Bunsyo (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, jailbrek, 0, jailbrek, jailbrek, jailbrek_state, 0, ROT0, "Konami", "Jail Break", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, jailbrekb, jailbrek, jailbrek, jailbrek, jailbrek_state, 0, ROT0, "bootleg", "Jail Break (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, manhatan, jailbrek, jailbrek, jailbrek, jailbrek_state, 0, ROT0, "Konami", "Manhattan 24 Bunsyo (Japan)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/jalmah.cpp b/src/mame/drivers/jalmah.cpp index 74582939bb9..4778b53f678 100644 --- a/src/mame/drivers/jalmah.cpp +++ b/src/mame/drivers/jalmah.cpp @@ -1413,7 +1413,7 @@ void jalmah_state::machine_reset() } } -static MACHINE_CONFIG_START( jalmah, jalmah_state ) +static MACHINE_CONFIG_START( jalmah ) MCFG_CPU_ADD("maincpu" , M68000, 12000000) /* 68000-8 */ MCFG_CPU_PROGRAM_MAP(jalmah) MCFG_CPU_VBLANK_INT_DRIVER("screen", jalmah_state, irq2_line_hold) @@ -1436,7 +1436,7 @@ static MACHINE_CONFIG_START( jalmah, jalmah_state ) MCFG_TIMER_DRIVER_ADD_PERIODIC("mcusim", jalmah_state, jalmah_mcu_sim, attotime::from_hz(10000)) MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", 4000000, OKIM6295_PIN7_LOW) + MCFG_OKIM6295_ADD("oki", 4000000, PIN7_LOW) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) MACHINE_CONFIG_END @@ -2475,10 +2475,10 @@ DRIVER_INIT_MEMBER(jalmah_state,suchipi) } /*First version of the MCU*/ -GAME( 1989, urashima, 0, urashima, urashima, jalmah_state, urashima, ROT0, "UPL", "Otogizoushi Urashima Mahjong (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION ) -GAME( 1989, daireika, 0, jalmah, daireika, jalmah_state, daireika, ROT0, "Jaleco / NMK", "Mahjong Daireikai (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION ) -GAME( 1990, mjzoomin, 0, jalmah, mjzoomin, jalmah_state, mjzoomin, ROT0, "Jaleco", "Mahjong Channel Zoom In (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION ) +GAME( 1989, urashima, 0, urashima, urashima, jalmah_state, urashima, ROT0, "UPL", "Otogizoushi Urashima Mahjong (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION ) +GAME( 1989, daireika, 0, jalmah, daireika, jalmah_state, daireika, ROT0, "Jaleco / NMK", "Mahjong Daireikai (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION ) +GAME( 1990, mjzoomin, 0, jalmah, mjzoomin, jalmah_state, mjzoomin, ROT0, "Jaleco", "Mahjong Channel Zoom In (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION ) /*Second version of the MCU*/ -GAME( 1990, kakumei, 0, jalmah, kakumei, jalmah_state, kakumei, ROT0, "Jaleco", "Mahjong Kakumei (Japan)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1990, kakumei, 0, jalmah, kakumei, jalmah_state, kakumei, ROT0, "Jaleco", "Mahjong Kakumei (Japan)", MACHINE_IMPERFECT_GRAPHICS ) GAME( 1992, kakumei2, 0, jalmah, kakumei2, jalmah_state, kakumei2, ROT0, "Jaleco", "Mahjong Kakumei 2 - Princess League (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_UNEMULATED_PROTECTION ) -GAME( 1993, suchipi, 0, jalmah, suchipi, jalmah_state, suchipi, ROT0, "Jaleco", "Idol Janshi Suchie-Pai Special (Japan)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1993, suchipi, 0, jalmah, suchipi, jalmah_state, suchipi, ROT0, "Jaleco", "Idol Janshi Suchie-Pai Special (Japan)", MACHINE_IMPERFECT_GRAPHICS ) diff --git a/src/mame/drivers/jangou.cpp b/src/mame/drivers/jangou.cpp index 8615d4a1e69..2ecedbc4979 100644 --- a/src/mame/drivers/jangou.cpp +++ b/src/mame/drivers/jangou.cpp @@ -44,15 +44,17 @@ class jangou_state : public driver_device { public: jangou_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag), - m_cpu_0(*this, "cpu0"), - m_cpu_1(*this, "cpu1"), - m_nsc(*this, "nsc"), - m_msm(*this, "msm"), - m_cvsd(*this, "cvsd"), - m_palette(*this, "palette"), - m_blitter(*this, "blitter"), - m_soundlatch(*this, "soundlatch") { } + : driver_device(mconfig, type, tag) + , m_cpu_0(*this, "cpu0") + , m_cpu_1(*this, "cpu1") + , m_nsc(*this, "nsc") + , m_msm(*this, "msm") + , m_cvsd(*this, "cvsd") + , m_palette(*this, "palette") + , m_blitter(*this, "blitter") + , m_soundlatch(*this, "soundlatch") + { + } /* sound-related */ // Jangou CVSD Sound @@ -168,7 +170,7 @@ uint32_t jangou_state::screen_update_jangou(screen_device &screen, bitmap_ind16 for (y = cliprect.min_y; y <= cliprect.max_y; ++y) { - uint8_t *src = &m_blitter->m_blit_buffer[y * 256 + cliprect.min_x]; + const uint8_t *src = &m_blitter->blit_buffer(y, cliprect.min_x); uint16_t *dst = &m_tmp_bitmap->pix16(y, cliprect.min_x); for (x = cliprect.min_x; x <= cliprect.max_x; x += 2) @@ -836,7 +838,7 @@ MACHINE_RESET_MEMBER(jangou_state,jngolady) } /* Note: All frequencies and dividers are unverified */ -static MACHINE_CONFIG_START( jangou, jangou_state ) +static MACHINE_CONFIG_START( jangou ) /* basic machine hardware */ MCFG_CPU_ADD("cpu0", Z80, MASTER_CLOCK / 8) @@ -895,7 +897,7 @@ static MACHINE_CONFIG_DERIVED( jngolady, jangou ) MCFG_SOUND_ADD("msm", MSM5205, XTAL_400kHz) MCFG_MSM5205_VCLK_CB(WRITELINE(jangou_state, jngolady_vclk_cb)) - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S96_4B) + MCFG_MSM5205_PRESCALER_SELECTOR(S96_4B) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) MACHINE_CONFIG_END @@ -1265,13 +1267,13 @@ DRIVER_INIT_MEMBER(jangou_state,luckygrl) * *************************************/ -GAME( 1983, jangou, 0, jangou, jangou, driver_device, 0, ROT0, "Nichibutsu", "Jangou [BET] (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, macha, 0, jangou, macha, driver_device, 0, ROT0, "Logitec", "Monoshiri Quiz Osyaberi Macha (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, jangou, 0, jangou, jangou, jangou_state, 0, ROT0, "Nichibutsu", "Jangou [BET] (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, macha, 0, jangou, macha, jangou_state, 0, ROT0, "Logitec", "Monoshiri Quiz Osyaberi Macha (Japan)", MACHINE_SUPPORTS_SAVE ) GAME( 1984, jngolady, 0, jngolady, jngolady, jangou_state, jngolady, ROT0, "Nichibutsu", "Jangou Lady (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, cntrygrl, 0, cntrygrl, cntrygrl, driver_device, 0, ROT0, "Royal Denshi", "Country Girl (Japan set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, cntrygrla, cntrygrl, cntrygrl, cntrygrl, driver_device, 0, ROT0, "Nichibutsu", "Country Girl (Japan set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, fruitbun, cntrygrl, cntrygrl, cntrygrl, driver_device, 0, ROT0, "Nichibutsu", "Fruits & Bunny (World?)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, roylcrdn, 0, roylcrdn, roylcrdn, driver_device, 0, ROT0, "Nichibutsu", "Royal Card (Nichibutsu)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, cntrygrl, 0, cntrygrl, cntrygrl, jangou_state, 0, ROT0, "Royal Denshi", "Country Girl (Japan set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, cntrygrla, cntrygrl, cntrygrl, cntrygrl, jangou_state, 0, ROT0, "Nichibutsu", "Country Girl (Japan set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, fruitbun, cntrygrl, cntrygrl, cntrygrl, jangou_state, 0, ROT0, "Nichibutsu", "Fruits & Bunny (World?)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, roylcrdn, 0, roylcrdn, roylcrdn, jangou_state, 0, ROT0, "Nichibutsu", "Royal Card (Nichibutsu)", MACHINE_SUPPORTS_SAVE ) /* The following might not run there... */ GAME( 1984?, luckygrl, 0, cntrygrl, cntrygrl, jangou_state, luckygrl, ROT0, "Wing Co., Ltd.", "Lucky Girl? (Wing)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/jankenmn.cpp b/src/mame/drivers/jankenmn.cpp index f2c0b73089a..df5fd004b31 100644 --- a/src/mame/drivers/jankenmn.cpp +++ b/src/mame/drivers/jankenmn.cpp @@ -362,7 +362,7 @@ static const z80_daisy_config daisy_chain[] = * Machine Config * *********************************************/ -static MACHINE_CONFIG_START( jankenmn, jankenmn_state ) +static MACHINE_CONFIG_START( jankenmn ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, MASTER_CLOCK) /* 2.5 MHz */ MCFG_Z80_DAISY_CHAIN(daisy_chain) @@ -416,5 +416,5 @@ ROM_END * Game Drivers * *********************************************/ -/* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS... LAYOUT */ -GAMEL( 1991, jankenmn, 0, jankenmn, jankenmn, driver_device, 0, ROT0, "Sunwise", "Janken Man Kattara Ageru", MACHINE_SUPPORTS_SAVE, layout_jankenmn ) +// YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS LAYOUT +GAMEL( 1991, jankenmn, 0, jankenmn, jankenmn, jankenmn_state, 0, ROT0, "Sunwise", "Janken Man Kattara Ageru", MACHINE_SUPPORTS_SAVE, layout_jankenmn ) diff --git a/src/mame/drivers/jantotsu.cpp b/src/mame/drivers/jantotsu.cpp index a77895515d8..afa91d7ff59 100644 --- a/src/mame/drivers/jantotsu.cpp +++ b/src/mame/drivers/jantotsu.cpp @@ -494,7 +494,7 @@ void jantotsu_state::machine_reset() m_adpcm_trigger = 0; } -static MACHINE_CONFIG_START( jantotsu, jantotsu_state ) +static MACHINE_CONFIG_START( jantotsu ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80,MAIN_CLOCK/4) @@ -525,7 +525,7 @@ static MACHINE_CONFIG_START( jantotsu, jantotsu_state ) MCFG_SOUND_ADD("adpcm", MSM5205, XTAL_384kHz) MCFG_MSM5205_VCLK_CB(WRITELINE(jantotsu_state, jan_adpcm_int)) /* interrupt function */ - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S64_4B) /* 6 KHz */ + MCFG_MSM5205_PRESCALER_SELECTOR(S64_4B) /* 6 KHz */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) MACHINE_CONFIG_END @@ -562,4 +562,4 @@ ROM_END * *************************************/ -GAME( 1983, jantotsu, 0, jantotsu, jantotsu, driver_device, 0, ROT270, "Sanritsu", "4nin-uchi Mahjong Jantotsu", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, jantotsu, 0, jantotsu, jantotsu, jantotsu_state, 0, ROT270, "Sanritsu", "4nin-uchi Mahjong Jantotsu", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/jchan.cpp b/src/mame/drivers/jchan.cpp index 5da50b63809..490624d5e18 100644 --- a/src/mame/drivers/jchan.cpp +++ b/src/mame/drivers/jchan.cpp @@ -576,7 +576,7 @@ INPUT_PORTS_END /* machine driver */ -static MACHINE_CONFIG_START( jchan, jchan_state ) +static MACHINE_CONFIG_START( jchan ) MCFG_CPU_ADD("maincpu", M68000, 16000000) MCFG_CPU_PROGRAM_MAP(jchan_main) @@ -713,5 +713,5 @@ DRIVER_INIT_MEMBER( jchan_state, jchan ) /* game drivers */ -GAME( 1995, jchan, 0, jchan, jchan, jchan_state, jchan, ROT0, "Kaneko", "Jackie Chan - The Kung-Fu Master", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1995, jchan2, 0, jchan, jchan2, jchan_state, jchan, ROT0, "Kaneko", "Jackie Chan in Fists of Fire", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1995, jchan, 0, jchan, jchan, jchan_state, jchan, ROT0, "Kaneko", "Jackie Chan - The Kung-Fu Master", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1995, jchan2, 0, jchan, jchan2, jchan_state, jchan, ROT0, "Kaneko", "Jackie Chan in Fists of Fire", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/jclub2.cpp b/src/mame/drivers/jclub2.cpp index 6f125a3d946..a1ed108ca9d 100644 --- a/src/mame/drivers/jclub2.cpp +++ b/src/mame/drivers/jclub2.cpp @@ -1109,7 +1109,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(common_state::scanline_irq) } // Older hardware (ST-0020 + ST-0016) -static MACHINE_CONFIG_START( jclub2o, jclub2o_state ) +static MACHINE_CONFIG_START( jclub2o ) MCFG_CPU_ADD("gamecpu", M68EC020, 12000000) MCFG_CPU_PROGRAM_MAP(jclub2o_map) MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", common_state, scanline_irq, "screen", 0, 1) @@ -1148,7 +1148,7 @@ MACHINE_CONFIG_END // Newer hardware (ST-0032) -static MACHINE_CONFIG_START( jclub2, jclub2_state ) +static MACHINE_CONFIG_START( jclub2 ) MCFG_CPU_ADD("gamecpu", M68EC020, 12000000) MCFG_CPU_PROGRAM_MAP(jclub2_map) MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", common_state, scanline_irq, "screen", 0, 1) @@ -1183,7 +1183,7 @@ static MACHINE_CONFIG_START( jclub2, jclub2_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( darkhors, darkhors_state ) +static MACHINE_CONFIG_START( darkhors ) MCFG_CPU_ADD("gamecpu", M68EC020, 12000000) // 36MHz/3 ?? MCFG_CPU_PROGRAM_MAP(darkhors_map) MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", common_state, scanline_irq, "screen", 0, 1) @@ -1216,7 +1216,7 @@ static MACHINE_CONFIG_START( darkhors, darkhors_state ) // sound hardware MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", 528000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki", 528000, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -1506,16 +1506,16 @@ DRIVER_INIT_MEMBER(darkhors_state,darkhors) // Older hardware (ST-0020 + ST-0016) -GAME( 1994, jclub2v100, jclub2v112, jclub2o, jclub2v100, driver_device, 0, ROT0, "Seta", "Jockey Club II (v1.00, older hardware)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1995, jclub2v101, jclub2v112, jclub2o, jclub2v100, driver_device, 0, ROT0, "Seta", "Jockey Club II (v1.01, older hardware)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1996, jclub2v110, jclub2v112, jclub2o, jclub2v100, driver_device, 0, ROT0, "Seta", "Jockey Club II (v1.10X, older hardware)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1996, jclub2v112, 0, jclub2o, jclub2v112, driver_device, 0, ROT0, "Seta", "Jockey Club II (v1.12X, older hardware)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1997, jclub2v203, jclub2v112, jclub2o, jclub2v112, driver_device, 0, ROT0, "Seta", "Jockey Club II (v2.03X RC, older hardware, prototype)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1994, jclub2v100, jclub2v112, jclub2o, jclub2v100, jclub2o_state, 0, ROT0, "Seta", "Jockey Club II (v1.00, older hardware)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1995, jclub2v101, jclub2v112, jclub2o, jclub2v100, jclub2o_state, 0, ROT0, "Seta", "Jockey Club II (v1.01, older hardware)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1996, jclub2v110, jclub2v112, jclub2o, jclub2v100, jclub2o_state, 0, ROT0, "Seta", "Jockey Club II (v1.10X, older hardware)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1996, jclub2v112, 0, jclub2o, jclub2v112, jclub2o_state, 0, ROT0, "Seta", "Jockey Club II (v1.12X, older hardware)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1997, jclub2v203, jclub2v112, jclub2o, jclub2v112, jclub2o_state, 0, ROT0, "Seta", "Jockey Club II (v2.03X RC, older hardware, prototype)", MACHINE_IMPERFECT_GRAPHICS ) // Newer hardware (ST-0032) -GAME( 1996, jclub2v200, jclub2v112, jclub2, jclub2v112, driver_device, 0, ROT0, "Seta", "Jockey Club II (v2.00, newer hardware)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND ) -GAME( 1996, jclub2v201, jclub2v112, jclub2, jclub2v112, driver_device, 0, ROT0, "Seta", "Jockey Club II (v2.01X, newer hardware)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND ) -GAME( 1997, jclub2v204, jclub2v112, jclub2, jclub2v112, driver_device, 0, ROT0, "Seta", "Jockey Club II (v2.04, newer hardware)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND ) -GAME( 1997, jclub2v205, jclub2v112, jclub2, jclub2v112, driver_device, 0, ROT0, "Seta", "Jockey Club II (v2.05, newer hardware)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND ) -GAME( 1998, jclub2v220, jclub2v112, jclub2, jclub2v112, driver_device, 0, ROT0, "Seta", "Jockey Club II (v2.20X, newer hardware)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND ) +GAME( 1996, jclub2v200, jclub2v112, jclub2, jclub2v112, jclub2_state, 0, ROT0, "Seta", "Jockey Club II (v2.00, newer hardware)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND ) +GAME( 1996, jclub2v201, jclub2v112, jclub2, jclub2v112, jclub2_state, 0, ROT0, "Seta", "Jockey Club II (v2.01X, newer hardware)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND ) +GAME( 1997, jclub2v204, jclub2v112, jclub2, jclub2v112, jclub2_state, 0, ROT0, "Seta", "Jockey Club II (v2.04, newer hardware)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND ) +GAME( 1997, jclub2v205, jclub2v112, jclub2, jclub2v112, jclub2_state, 0, ROT0, "Seta", "Jockey Club II (v2.05, newer hardware)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND ) +GAME( 1998, jclub2v220, jclub2v112, jclub2, jclub2v112, jclub2_state, 0, ROT0, "Seta", "Jockey Club II (v2.20X, newer hardware)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND ) // Bootleg hardware GAME( 2001, darkhors, jclub2v112, darkhors, darkhors, darkhors_state, darkhors, ROT0, "bootleg", "Dark Horse (USA v4.00, bootleg of Jockey Club II)", MACHINE_IMPERFECT_GRAPHICS ) diff --git a/src/mame/drivers/jedi.cpp b/src/mame/drivers/jedi.cpp index ed22eeaf888..18acb2347f7 100644 --- a/src/mame/drivers/jedi.cpp +++ b/src/mame/drivers/jedi.cpp @@ -333,7 +333,7 @@ INPUT_PORTS_END * *************************************/ -static MACHINE_CONFIG_START( jedi, jedi_state ) +static MACHINE_CONFIG_START( jedi ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, JEDI_MAIN_CPU_CLOCK) @@ -398,4 +398,4 @@ ROM_END * *************************************/ -GAME( 1984, jedi, 0, jedi, jedi, driver_device, 0, ROT0, "Atari", "Return of the Jedi", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, jedi, 0, jedi, jedi, jedi_state, 0, ROT0, "Atari", "Return of the Jedi", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/jeutel.cpp b/src/mame/drivers/jeutel.cpp index ed9e8efc485..ea5ce245d55 100644 --- a/src/mame/drivers/jeutel.cpp +++ b/src/mame/drivers/jeutel.cpp @@ -104,14 +104,13 @@ WRITE8_MEMBER( jeutel_state::porta_w ) { if ((data & 0xf0) == 0xf0) { - m_tms->ctl_w(space, offset, TMS5110_CMD_RESET); + m_tms->ctl_w(space, offset, tms5110_device::CMD_RESET); m_tms->pdc_w(1); m_tms->pdc_w(0); } - else - if ((data & 0xf0) == 0xd0) + else if ((data & 0xf0) == 0xd0) { - m_tms->ctl_w(space, offset, TMS5110_CMD_SPEAK); + m_tms->ctl_w(space, offset, tms5110_device::CMD_SPEAK); m_tms->pdc_w(1); m_tms->pdc_w(0); } @@ -184,7 +183,7 @@ DRIVER_INIT_MEMBER( jeutel_state, jeutel ) { } -static MACHINE_CONFIG_START( jeutel, jeutel_state ) +static MACHINE_CONFIG_START( jeutel ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 3300000) MCFG_CPU_PROGRAM_MAP(jeutel_map) @@ -268,5 +267,5 @@ ROM_START(olympic) ROM_END -GAME(1983, leking, 0, jeutel, jeutel, jeutel_state, jeutel, ROT0, "Jeutel", "Le King", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1983, leking, 0, jeutel, jeutel, jeutel_state, jeutel, ROT0, "Jeutel", "Le King", MACHINE_IS_SKELETON_MECHANICAL) GAME(1984, olympic, 0, jeutel, jeutel, jeutel_state, jeutel, ROT0, "Jeutel", "Olympic Games", MACHINE_IS_SKELETON_MECHANICAL) diff --git a/src/mame/drivers/joctronic.cpp b/src/mame/drivers/joctronic.cpp index f31a9449c90..0c928469386 100644 --- a/src/mame/drivers/joctronic.cpp +++ b/src/mame/drivers/joctronic.cpp @@ -310,7 +310,7 @@ void joctronic_state::machine_reset() static INPUT_PORTS_START( joctronic ) INPUT_PORTS_END -static MACHINE_CONFIG_START( joctronic, joctronic_state ) +static MACHINE_CONFIG_START( joctronic ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_12MHz/4) // 3 MHz - uses WAIT MCFG_CPU_PROGRAM_MAP(maincpu_map) // 139 @@ -346,7 +346,7 @@ static MACHINE_CONFIG_START( joctronic, joctronic_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( slalom03, joctronic_state ) +static MACHINE_CONFIG_START( slalom03 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_12MHz/2) // 6 MHz - uses WAIT MCFG_CPU_PROGRAM_MAP(slalom03_maincpu_map) // 138, 368, 32 @@ -382,7 +382,7 @@ static MACHINE_CONFIG_START( slalom03, joctronic_state ) MCFG_74157_OUT_CB(DEVWRITE8("oki", msm5205_device, data_w)) MCFG_SOUND_ADD("oki", MSM5205, XTAL_12MHz/2/16) // 375 kHz - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S96_4B) // frequency modifiable during operation + MCFG_MSM5205_PRESCALER_SELECTOR(S96_4B) // frequency modifiable during operation MCFG_MSM5205_VCLK_CB(WRITELINE(joctronic_state, vclk_w)) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30) MACHINE_CONFIG_END @@ -441,7 +441,7 @@ ROM_START(slalom03) ROM_END -GAME( 1986, punkywil, 0, joctronic, joctronic, driver_device, 0, ROT0, "Joctronic", "Punky Willy", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 1986, walkyria, 0, joctronic, joctronic, driver_device, 0, ROT0, "Joctronic", "Walkyria", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 1987, bldyrolr, 0, bldyrolr, joctronic, driver_device, 0, ROT0, "Playbar", "Bloody Roller", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 1988, slalom03, 0, slalom03, joctronic, driver_device, 0, ROT0, "Stargame", "Slalom Code 0.3", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 1986, punkywil, 0, joctronic, joctronic, joctronic_state, 0, ROT0, "Joctronic", "Punky Willy", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 1986, walkyria, 0, joctronic, joctronic, joctronic_state, 0, ROT0, "Joctronic", "Walkyria", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 1987, bldyrolr, 0, bldyrolr, joctronic, joctronic_state, 0, ROT0, "Playbar", "Bloody Roller", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 1988, slalom03, 0, slalom03, joctronic, joctronic_state, 0, ROT0, "Stargame", "Slalom Code 0.3", MACHINE_IS_SKELETON_MECHANICAL ) diff --git a/src/mame/drivers/jokrwild.cpp b/src/mame/drivers/jokrwild.cpp index 99113017d09..fa12026fc2f 100644 --- a/src/mame/drivers/jokrwild.cpp +++ b/src/mame/drivers/jokrwild.cpp @@ -402,7 +402,7 @@ WRITE8_MEMBER(jokrwild_state::testb_w) * Machine Drivers * *************************/ -static MACHINE_CONFIG_START( jokrwild, jokrwild_state ) +static MACHINE_CONFIG_START( jokrwild ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809, MASTER_CLOCK/2) /* guess */ @@ -505,5 +505,5 @@ DRIVER_INIT_MEMBER(jokrwild_state,jokrwild) * Game Drivers * *************************/ -/* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS */ +// YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS GAME( 1988, jokrwild, 0, jokrwild, jokrwild, jokrwild_state, jokrwild, ROT0, "Sigma", "Joker's Wild (encrypted)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/jollyjgr.cpp b/src/mame/drivers/jollyjgr.cpp index 7cc7832d790..0d25f61d0a2 100644 --- a/src/mame/drivers/jollyjgr.cpp +++ b/src/mame/drivers/jollyjgr.cpp @@ -669,7 +669,7 @@ void jollyjgr_state::machine_reset() m_tilemap_bank = 0; } -static MACHINE_CONFIG_START( jollyjgr, jollyjgr_state ) +static MACHINE_CONFIG_START( jollyjgr ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_18MHz/6) /* 3MHz verified */ MCFG_CPU_PROGRAM_MAP(jollyjgr_map) diff --git a/src/mame/drivers/jongkyo.cpp b/src/mame/drivers/jongkyo.cpp index 7370947a73d..49783c3b31a 100644 --- a/src/mame/drivers/jongkyo.cpp +++ b/src/mame/drivers/jongkyo.cpp @@ -490,7 +490,7 @@ void jongkyo_state::machine_reset() } -static MACHINE_CONFIG_START( jongkyo, jongkyo_state ) +static MACHINE_CONFIG_START( jongkyo ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", SEGA_315_5084,JONGKYO_CLOCK/4) diff --git a/src/mame/drivers/jonos.cpp b/src/mame/drivers/jonos.cpp index a3075fefd59..21fc52f2988 100644 --- a/src/mame/drivers/jonos.cpp +++ b/src/mame/drivers/jonos.cpp @@ -117,7 +117,7 @@ static GFXDECODE_START( jonos ) GFXDECODE_END -static MACHINE_CONFIG_START( jonos, jonos_state ) +static MACHINE_CONFIG_START( jonos ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8085A, XTAL_16MHz / 4) MCFG_CPU_PROGRAM_MAP(jonos_mem) @@ -153,5 +153,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 198?, jonos, 0, 0, jonos, jonos, jonos_state, jonos, "Jonos", "Escort", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 198?, jonos, 0, 0, jonos, jonos, jonos_state, jonos, "Jonos", "Escort", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) diff --git a/src/mame/drivers/joystand.cpp b/src/mame/drivers/joystand.cpp index e92b4d032f1..d2b2303da42 100644 --- a/src/mame/drivers/joystand.cpp +++ b/src/mame/drivers/joystand.cpp @@ -579,7 +579,7 @@ INTERRUPT_GEN_MEMBER(joystand_state::joystand_interrupt) m_tmp68301->external_interrupt_1(); } -static MACHINE_CONFIG_START( joystand, joystand_state ) +static MACHINE_CONFIG_START( joystand ) // basic machine hardware MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz) // !! TMP68301 !! @@ -610,7 +610,7 @@ static MACHINE_CONFIG_START( joystand, joystand_state ) MCFG_SOUND_ADD("ym2413", YM2413, XTAL_3_579545MHz) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) - MCFG_OKIM6295_ADD("oki", XTAL_16MHz / 16, OKIM6295_PIN7_HIGH) // pin 7 not verified + MCFG_OKIM6295_ADD("oki", XTAL_16MHz / 16, PIN7_HIGH) // pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) // cart @@ -686,4 +686,4 @@ ROM_START( joystand ) ROM_LOAD( "jsp-xct.ic5", 0x000, 0x117, NO_DUMP ) ROM_END -GAME( 1997, joystand, 0, joystand, joystand, driver_device, 0, ROT0, "Yuvo", "Joy Stand Private", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +GAME( 1997, joystand, 0, joystand, joystand, joystand_state, 0, ROT0, "Yuvo", "Joy Stand Private", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/jp.cpp b/src/mame/drivers/jp.cpp index d1322f61742..64617ccf8f7 100644 --- a/src/mame/drivers/jp.cpp +++ b/src/mame/drivers/jp.cpp @@ -272,7 +272,7 @@ DRIVER_INIT_MEMBER( jp_state, jp ) { } -static MACHINE_CONFIG_START( jp, jp_state ) +static MACHINE_CONFIG_START( jp ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_8MHz / 2) MCFG_CPU_PROGRAM_MAP(jp_map) @@ -483,17 +483,17 @@ ROM_START(petaco2) ROM_END // different hardware -GAME(1984, petaco, 0, jp, jp, jp_state, jp, ROT0, "Juegos Populares", "Petaco", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1984, petaco, 0, jp, jp, jp_state, jp, ROT0, "Juegos Populares", "Petaco", MACHINE_IS_SKELETON_MECHANICAL) // mostly ok -GAME(1985, petacon, 0, jp, jp, jp_state, jp, ROT0, "Juegos Populares", "Petaco (new hardware)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) -GAME(1985, petacona, 0, jp, jp, jp_state, jp, ROT0, "Juegos Populares", "Petaco (new hardware, alternate set)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) -GAME(1985, petaco2, 0, jp, jp, jp_state, jp, ROT0, "Juegos Populares", "Petaco 2", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) -GAME(1985, faeton, 0, jp, jp, jp_state, jp, ROT0, "Juegos Populares", "Faeton", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) -GAME(1986, halley, 0, jp, jp, jp_state, jp, ROT0, "Juegos Populares", "Halley Comet", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) -GAME(1986, halleya, halley, jp, jp, jp_state, jp, ROT0, "Juegos Populares", "Halley Comet (alternate version)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) -GAME(1986, aqualand, 0, jp, jp, jp_state, jp, ROT0, "Juegos Populares", "Aqualand", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) -GAME(1986, america, 0, jp, jp, jp_state, jp, ROT0, "Juegos Populares", "America 1492", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) -GAME(1986, olympus, 0, jp, jp, jp_state, jp, ROT0, "Juegos Populares", "Olympus", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) -GAME(1987, lortium, 0, jp, jp, jp_state, jp, ROT0, "Juegos Populares", "Lortium", MACHINE_IS_SKELETON_MECHANICAL) -GAME(19??, pimbal, 0, jp, jp, jp_state, jp, ROT0, "Juegos Populares", "Pimbal (Pinball 3000)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1985, petacon, 0, jp, jp, jp_state, jp, ROT0, "Juegos Populares", "Petaco (new hardware)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME(1985, petacona, 0, jp, jp, jp_state, jp, ROT0, "Juegos Populares", "Petaco (new hardware, alternate set)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) +GAME(1985, petaco2, 0, jp, jp, jp_state, jp, ROT0, "Juegos Populares", "Petaco 2", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) +GAME(1985, faeton, 0, jp, jp, jp_state, jp, ROT0, "Juegos Populares", "Faeton", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME(1986, halley, 0, jp, jp, jp_state, jp, ROT0, "Juegos Populares", "Halley Comet", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) +GAME(1986, halleya, halley, jp, jp, jp_state, jp, ROT0, "Juegos Populares", "Halley Comet (alternate version)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) +GAME(1986, aqualand, 0, jp, jp, jp_state, jp, ROT0, "Juegos Populares", "Aqualand", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) +GAME(1986, america, 0, jp, jp, jp_state, jp, ROT0, "Juegos Populares", "America 1492", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) +GAME(1986, olympus, 0, jp, jp, jp_state, jp, ROT0, "Juegos Populares", "Olympus", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) +GAME(1987, lortium, 0, jp, jp, jp_state, jp, ROT0, "Juegos Populares", "Lortium", MACHINE_IS_SKELETON_MECHANICAL) +GAME(19??, pimbal, 0, jp, jp, jp_state, jp, ROT0, "Juegos Populares", "Pimbal (Pinball 3000)", MACHINE_IS_SKELETON_MECHANICAL) diff --git a/src/mame/drivers/jpmimpct.cpp b/src/mame/drivers/jpmimpct.cpp index f513aabd29c..5b07067699c 100644 --- a/src/mame/drivers/jpmimpct.cpp +++ b/src/mame/drivers/jpmimpct.cpp @@ -835,7 +835,7 @@ WRITE_LINE_MEMBER(jpmimpct_state::tms_irq) * *************************************/ -static MACHINE_CONFIG_START( jpmimpct, jpmimpct_state ) +static MACHINE_CONFIG_START( jpmimpct ) MCFG_CPU_ADD("maincpu", M68000, 8000000) MCFG_CPU_PROGRAM_MAP(m68k_program_map) @@ -1307,7 +1307,7 @@ INPUT_PORTS_END * *************************************/ -MACHINE_CONFIG_START( impctawp, jpmimpct_state ) +MACHINE_CONFIG_START( impctawp ) MCFG_CPU_ADD("maincpu",M68000, 8000000) MCFG_CPU_PROGRAM_MAP(awp68k_program_map) @@ -1745,20 +1745,20 @@ ROM_END /* Video */ -GAME( 1995, cluedo, 0, jpmimpct, cluedo, driver_device, 0, ROT0, "JPM", "Cluedo (prod. 2D)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1995, cluedod, cluedo, jpmimpct, cluedo, driver_device, 0, ROT0, "JPM", "Cluedo (prod. 2D) (Protocol)",MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1995, cluedo2c, cluedo, jpmimpct, cluedo, driver_device, 0, ROT0, "JPM", "Cluedo (prod. 2C)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1995, cluedo2, cluedo, jpmimpct, cluedo, driver_device, 0, ROT0, "JPM", "Cluedo (prod. 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1996, trivialp, 0, jpmimpct, trivialp, driver_device, 0, ROT0, "JPM", "Trivial Pursuit (New Edition) (prod. 1D)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, trivialpd,trivialp,jpmimpct, trivialp, driver_device, 0, ROT0, "JPM", "Trivial Pursuit (New Edition) (prod. 1D) (Protocol)",MACHINE_SUPPORTS_SAVE ) -GAME( 1996, trivialpo,trivialp,jpmimpct, trivialp, driver_device, 0, ROT0, "JPM", "Trivial Pursuit", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, scrabble, 0, jpmimpct, scrabble, driver_device, 0, ROT0, "JPM", "Scrabble (rev. F)", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, scrabbled,scrabble,jpmimpct, scrabble, driver_device, 0, ROT0, "JPM", "Scrabble (rev. F) (Protocol)",MACHINE_SUPPORTS_SAVE ) -GAME( 1998, hngmnjpm, 0, jpmimpct, hngmnjpm, driver_device, 0, ROT0, "JPM", "Hangman (JPM)", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, hngmnjpmd,hngmnjpm,jpmimpct, hngmnjpm, driver_device, 0, ROT0, "JPM", "Hangman (JPM) (Protocol)", MACHINE_SUPPORTS_SAVE ) -GAME( 1999, coronatn, 0, jpmimpct, coronatn, driver_device, 0, ROT0, "JPM", "Coronation Street Quiz Game", MACHINE_SUPPORTS_SAVE ) -GAME( 1999, coronatnd,coronatn,jpmimpct, coronatn, driver_device, 0, ROT0, "JPM", "Coronation Street Quiz Game (Protocol)", MACHINE_SUPPORTS_SAVE ) -GAME( 199?, tqst, 0, jpmimpct, cluedo , driver_device, 0, ROT0, "JPM", "Treasure Quest" , MACHINE_NOT_WORKING) // incomplete (ACE?) -GAME( 199?, snlad, 0, jpmimpct, cluedo , driver_device, 0, ROT0, "JPM", "Snake & Ladders" , MACHINE_NOT_WORKING) // incomplete -GAME( 199?, buzzundr, 0, jpmimpct, cluedo , driver_device, 0, ROT0, "Ace", "Buzzundrum (Ace)", MACHINE_NOT_WORKING ) -GAME( 199?, monspdr , 0, jpmimpct, cluedo , driver_device, 0, ROT0, "Ace", "Money Spider (Ace)", MACHINE_NOT_WORKING ) +GAME( 1995, cluedo, 0, jpmimpct, cluedo, jpmimpct_state, 0, ROT0, "JPM", "Cluedo (prod. 2D)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1995, cluedod, cluedo, jpmimpct, cluedo, jpmimpct_state, 0, ROT0, "JPM", "Cluedo (prod. 2D) (Protocol)",MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1995, cluedo2c, cluedo, jpmimpct, cluedo, jpmimpct_state, 0, ROT0, "JPM", "Cluedo (prod. 2C)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1995, cluedo2, cluedo, jpmimpct, cluedo, jpmimpct_state, 0, ROT0, "JPM", "Cluedo (prod. 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1996, trivialp, 0, jpmimpct, trivialp, jpmimpct_state, 0, ROT0, "JPM", "Trivial Pursuit (New Edition) (prod. 1D)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, trivialpd,trivialp,jpmimpct, trivialp, jpmimpct_state, 0, ROT0, "JPM", "Trivial Pursuit (New Edition) (prod. 1D) (Protocol)",MACHINE_SUPPORTS_SAVE ) +GAME( 1996, trivialpo,trivialp,jpmimpct, trivialp, jpmimpct_state, 0, ROT0, "JPM", "Trivial Pursuit", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, scrabble, 0, jpmimpct, scrabble, jpmimpct_state, 0, ROT0, "JPM", "Scrabble (rev. F)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, scrabbled,scrabble,jpmimpct, scrabble, jpmimpct_state, 0, ROT0, "JPM", "Scrabble (rev. F) (Protocol)",MACHINE_SUPPORTS_SAVE ) +GAME( 1998, hngmnjpm, 0, jpmimpct, hngmnjpm, jpmimpct_state, 0, ROT0, "JPM", "Hangman (JPM)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, hngmnjpmd,hngmnjpm,jpmimpct, hngmnjpm, jpmimpct_state, 0, ROT0, "JPM", "Hangman (JPM) (Protocol)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, coronatn, 0, jpmimpct, coronatn, jpmimpct_state, 0, ROT0, "JPM", "Coronation Street Quiz Game", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, coronatnd,coronatn,jpmimpct, coronatn, jpmimpct_state, 0, ROT0, "JPM", "Coronation Street Quiz Game (Protocol)", MACHINE_SUPPORTS_SAVE ) +GAME( 199?, tqst, 0, jpmimpct, cluedo , jpmimpct_state, 0, ROT0, "JPM", "Treasure Quest" , MACHINE_NOT_WORKING) // incomplete (ACE?) +GAME( 199?, snlad, 0, jpmimpct, cluedo , jpmimpct_state, 0, ROT0, "JPM", "Snake & Ladders" , MACHINE_NOT_WORKING) // incomplete +GAME( 199?, buzzundr, 0, jpmimpct, cluedo , jpmimpct_state, 0, ROT0, "Ace", "Buzzundrum (Ace)", MACHINE_NOT_WORKING ) +GAME( 199?, monspdr , 0, jpmimpct, cluedo , jpmimpct_state, 0, ROT0, "Ace", "Money Spider (Ace)", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/jpmmps.cpp b/src/mame/drivers/jpmmps.cpp index b4d2a2c30b5..1f4609a5223 100644 --- a/src/mame/drivers/jpmmps.cpp +++ b/src/mame/drivers/jpmmps.cpp @@ -244,7 +244,7 @@ void jpmmps_state::machine_reset() static_cast(machine().device("maincpu"))->ready_line(ASSERT_LINE); } -static MACHINE_CONFIG_START( jpmmps, jpmmps_state ) +static MACHINE_CONFIG_START( jpmmps ) // CPU TMS9995, standard variant; no line connections MCFG_TMS99xx_ADD("maincpu", TMS9995, MAIN_CLOCK, jpmmps_map, jpmmps_io_map) @@ -2111,211 +2111,211 @@ ROM_END -GAMEL(198?, j2adnote ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Add A Note (JPM) (MPS, set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2adnote ) -GAMEL(198?, j2adnotea,j2adnote ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Add A Note (JPM) (MPS, set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2adnote ) -GAMEL(198?, j2adnoteb,j2adnote ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Add A Note (JPM) (MPS, set 3)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2adnote ) -GAMEL(198?, j2adnotec,j2adnote ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Add A Note (JPM) (MPS, set 4)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2adnote ) -GAMEL(198?, j2adnoted,j2adnote ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Add A Note (JPM) (MPS, set 5)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2adnote ) -GAMEL(198?, j2adnotee,j2adnote ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Add A Note (JPM) (MPS, set 6)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2adnote ) -GAMEL(198?, j2adnotef,j2adnote ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Add A Note (JPM) (MPS, set 7)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2adnote ) -GAMEL(198?, j2adnoteg,j2adnote ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Add A Note (JPM) (MPS, set 8)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2adnote ) -GAMEL(198?, j2adnoteh,j2adnote ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Add A Note (JPM) (MPS, set 9)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2adnote ) -GAMEL(198?, j2adnotei,j2adnote ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Add A Note (JPM) (MPS, set 10)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2adnote ) -GAMEL(198?, j2bankch ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Bank Chase (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2bankch ) -GAME(198?, j2bankrd ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Bank Raid (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) -GAMEL(198?, j2bigbnk ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Big Banker (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2bigbnk ) -GAMEL(198?, j2bigbox ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Big Box (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2bigbox ) -GAME(198?, j2bigbuk ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Big Buck$ (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME(198?, j2bigdl ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Big Deal (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME(198?, j2blkchy ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Black Cherry (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) -GAMEL(198?, j2cashbn ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Cash Bonus Club (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2cashbn ) -GAME(198?, j2cashfl ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Cash Falls (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) -GAMEL(198?, j2cashrl ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Cash Reels (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2cashrl ) -GAMEL(198?, j2cashrv ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Cash Reserve (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2cashrv ) -GAMEL(198?, j2cashro ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Cash Rolls (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2cashro ) -GAMEL(198?, j2cashtk ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Cash Track (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2cashtk ) -GAME(198?, j2cashtd ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Cash Track Deluxe (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) -GAMEL(198?, j2coppot ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Copper Pot (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2coppot ) -GAME(198?, j2coprun ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Copper Run (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) -GAMEL(198?, j2cprndx ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Copper Run Deluxe (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2cprndx ) -GAME(198?, j2crkbnk ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Crack The Bank (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) -GAMEL(198?, j2droplt ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Drop The Lot (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2droplt ) -GAME(198?, j2dropld ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Drop The Lot Deluxe (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) -GAMEL(198?, j2ewn ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Each Way Nudger (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2ewn ) -GAMEL(198?, j2ews ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Each Way Shuffle (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2ews ) -GAMEL(198?, j2exec ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Executive Club (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2exec ) -GAMEL(198?, j2fasttk ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Fast Trak (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2fasttk ) -GAMEL(198?, j2fqueen ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Find The Queen (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2fqueen ) -GAMEL(198?, j2fiveal ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Five Alive (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2fiveal ) -GAMEL(198?, j2fiveln ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Five Liner (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2fiveln ) -GAMEL(198?, j2fws ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Five Way Shuffle (Set 1) (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2fws ) -GAMEL(198?, j2fwsa ,j2fws ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Five Way Shuffle (Set 2) (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2fws ) -GAME(198?, j2frmtch ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Fruit Match (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) -GAMEL(198?, j2fullhs ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Full House Club (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2fullhs ) -GAMEL(198?, j2ghostb ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Ghostbuster (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2ghostb ) -GAME(198?, j2goldrn ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Gold Run (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) -GAMEL(198?, j2goldbr ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Golden Bars (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2goldbr ) -GAMEL(198?, j2gldchy ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Golden Cherry (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2gldchy ) -GAME(198?, j2gldwin ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Golden Win (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) -GAMEL(198?, j2hinote ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Hi Note (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2hinote ) -GAMEL(198?, j2hiroll ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Hi Roller (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2hiroll ) -GAMEL(198?, j2hotpot ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Hot Pot (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2hotpot ) -GAME(198?, j2hotptd ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Hot Pot Deluxe (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) -GAMEL(198?, j2hotsht ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Hot Shot Club (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2hotsht ) -GAMEL(198?, j2hypnot ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Hypernote (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2hypnot ) -GAMEL(198?, j2jackbr ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Jackpot Bars (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2jackbr ) -GAME(198?, j2jackdc ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Jackpot Dice (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME(198?, j2jokers ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Jokers (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) -GAMEL(198?, j2kingcl ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","King Of Clubs (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2kingcl ) -GAMEL(198?, j2litean ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Lite A Nudge (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2litean ) -GAMEL(198?, j2lovsht ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Loot Shoot (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2lovsht ) -GAMEL(198?, j2lovshd ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Loot Shoot Deluxe (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2lovshd ) -GAMEL(198?, j2luckar ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Lucky Arrows (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2luckar ) -GAMEL(198?, j2lucky2 ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Lucky 2s (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2lucky2 ) -GAMEL(198?, j2monblt ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Money Belt (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2monblt ) -GAMEL(198?, j2mongam ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Money Game (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2mongam ) -GAME(198?, j2mongmd ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Money Game Deluxe (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME(198?, j2multwn ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Multi Win (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME(198?, j2notexc ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Note Exchange (Set 1) (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME(198?, j2notexca,j2notexc ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Note Exchange (Set 2) (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME(198?, j2notexcb,j2notexc ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Note Exchange (Set 3) (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) -GAMEL(198?, j2notesh ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Note Shoot (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2notesh ) -GAMEL(198?, j2nudbnz ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Nudge Bonanza Deluxe (Set 1) (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2nudbnz ) -GAME(198?, j2nudbnza,j2nudbnz ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Nudge Bonanza Deluxe (Set 2) (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME(198?, j2nuddup ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Nudge Double Up (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME(198?, j2nuddud ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Nudge Double Up Deluxe (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME(198?, j2nudup3 ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Nudge Double Up MkIII (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) -GAMEL(198?, j2nudshf ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Nudge Shuffler (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2nudshf ) -GAME(198?, j2plsmon ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Plus Money (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) -GAMEL(198?, j2plsmnd ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Plus Money Deluxe (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2plsmnd ) -GAMEL(198?, j2plsnud ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Plus Nudge (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2plsnud ) -GAME(198?, j2potlck ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Pot Luck (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) -GAMEL(198?, j2pndrsh ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Pound Rush (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2pndrsh ) -GAME(198?, j2pyramd ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Pyramid (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) -GAMEL(198?, j2reelbn ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Reel Bingo Club (Set 1) (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2reelbn ) -GAMEL(198?, j2reelbna,j2reelbn ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Reel Bingo Club (Set 2) (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2reelbn ) -GAMEL(198?, j2reelbo ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Reel Bonus (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2reelbo ) -GAME(198?, j2reelmg ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Reel Magic (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME(198?, j2reelmgd,j2reelmg ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Reel Magic (JPM) [Dutch] (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) -GAMEL(198?, j2reelmc ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Reel Magic Club (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2reelmc ) -GAMEL(198?, j2reelmo ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Reel Money (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2reelmo ) -GAME(198?, j2rotnot ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Rota Note (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME(198?, j2roulcl ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Roulette Club (JPM) [Mps] (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) -GAMEL(198?, j2rdclb ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Royal Deal Club (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2rdclb ) -GAMEL(198?, j2slvrgh ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Silver Ghost (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2slvrgh ) -GAMEL(198?, j2sldgld ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Solid Gold (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2sldgld ) -GAMEL(198?, j2spcrsv ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Special Reserve (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2spcrsv ) -GAMEL(198?, j2stahed ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Streets Ahead (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2stahed ) -GAME(198?, j2supfrt ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Supa Fruit (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) -GAMEL(198?, j2supfrc ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Supa Fruit Club (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2supfrc ) -GAMEL(1987, j2supsft ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Supashifta (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2supsft ) -GAMEL(198?, j2supstp ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Supa Steppa (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2supstp ) -GAMEL(198?, j2suptrk ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Supa Track (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2suptrk ) -GAME(198?, j2suprft ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Super Fruit (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME(198?, j2supln ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Super Line (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME(198?, j2suppot ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Super Pots (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME(198?, j2suprl ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Super Reel (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) -GAMEL(198?, j2suprsh ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Supershot (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2suprsh ) -GAME(198?, j2supstr ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Superstars (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) -GAMEL(198?, j2swbank ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Switch Back (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2swbank ) -GAMEL(198?, j2take2 ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Take 2 (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2take2 ) -GAME(198?, j2topsht ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Top Shot (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME(198?, j2westrn ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Western (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) - - -GAMEL(198?, j2blustr ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "Pcp","Blue Streak (Pcp) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2blustr ) -GAMEL(198?, j2cshalm ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "Pcp","Cash Alarm (Pcp) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2cshalm ) -GAMEL(198?, j2cshcrd ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "Pcp","Cash Cards (Pcp) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2cshcrd ) -GAMEL(198?, j2cshfil ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "Pcp","Cash-Filla (Pcp) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2cshfil ) -GAMEL(198?, j2cshsmh ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "Pcp","Cash Smash (Pcp) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2cshsmh ) -GAMEL(198?, j2criscr ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "Pcp","Criss Cross Jackpot (Pcp) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2criscr ) -GAMEL(198?, j2frucnx ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "Pcp","Fruit Connexion (Pcp) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2frucnx ) -GAMEL(198?, j2hitmon ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "Pcp","Hit Money (Pcp) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2hitmon ) -GAMEL(198?, j2penny ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "Pcp","In For A Penny In For A Pound (Pcp) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2penny ) -GAMEL(198?, j2maxima ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "Pcp","Maxima (Pcp) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2maxima ) -GAMEL(198?, j2montrp ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "Pcp","Money Trapper (Pcp) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2montrp ) -GAMEL(198?, j2nudmon ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "Pcp","Nudge Money (Pcp) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2nudmon ) -GAMEL(198?, j2paypkt ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "Pcp","Pay Packet (Pcp) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2paypkt ) -GAMEL(198?, j2silvcl ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "Pcp","Silver Classic (Pcp) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2silvcl ) -GAMEL(198?, j2silvsh ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "Pcp","Silver Shot (Pcp) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2silvsh ) -GAMEL(198?, j2sstrea ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "Pcp","Supa Streak (Pcp) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2sstrea ) -GAMEL(198?, j2tstplt ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "Pcp","Test Pilot (Set 1) (Pcp) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2tstplt ) -GAMEL(198?, j2tstplta,j2tstplt ,jpmmps,jpmmps, driver_device, 0,ROT0, "Pcp","Test Pilot (Set 2) (Pcp) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2tstplt ) - -GAME(198?, j2bonanz ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "Eurocoin","Bonanza (Eurocoin) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME(198?, j2supchy ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "Eurocoin","Super Cherry (Eurocoin) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) - -GAMEL(198?, j2hilocl ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "Crystal","Hi Lo Climber Club (Crystal) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2hilocl ) -GAMEL(198?, j2litnot ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "Crystal","Lite A Note Club (Crystal) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2litnot ) -GAMEL(198?, j2missis ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "Crystal","Mississippi Gambler Club (Crystal) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2missis ) - -GAMEL(198?, j2always ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "Bwb","Always Eight (Bwb) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2always ) -GAMEL(198?, j2coinsh ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "Bwb","Coin Shoot (Bwb) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2coinsh ) -GAMEL(198?, j2nudfev ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "Bwb","Nudge Fever (Bwb) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2nudfev ) -GAMEL(198?, j2trail ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "Bwb","Trailblazer (Bwb) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2trail ) -GAME(198?, j2wag ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "Bwb","Win-A-Gain (Bwb) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) - -GAMEL(198?, j2cshnud ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "Mdm","Cash Nudger (Mdm) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2cshnud ) -GAME(198?, j2fivepn ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "Mdm","Fivepenny Nudger (Mdm) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) -GAMEL(198?, j2nolimt ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "Mdm","No Limit Nudge (Mdm) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2nolimt ) - -GAME(198?, j2strk10 ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "Ace?","Strike Ten (Ace) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) // there was another (68k based) game in this set, which makes me wonder if this one is by Ace at all - - - - -GAME(198?, j2bkroll ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Bank Roll (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME(198?, j2bodym ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Body Match (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) -GAMEL(198?, j2cvault ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Cash Vault (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2cvault ) -GAME(198?, j2cashab ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Cashablanca (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME(198?, j2cashry ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "Pcp","Cashino Royale (Pcp) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME(198?, j2casino ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "Pcp","Casino Classic (Pcp) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME(198?, j2coinct ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Coin Count (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME(198?, j2loots ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "Pcp","Loot Shoot (Pcp) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME(198?, j2match ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Match It (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME(198?, j2monbnd ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Money Bands (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME(198?, j2monmtx ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "Bwb","Money Matrix (Bwb) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME(198?, j2tst ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","MPS 1 Test Rom (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME(198?, j2nudnud ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Nudge Nudge (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME(198?, j2pinac ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Pinnacle (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME(198?, j2pinclb ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Pinnacle Club (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) -GAMEL(198?, j2reelcz ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Reel Crazy (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2reelcz ) -GAME(198?, j2reeldc ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Reel Deal Club (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME(198?, j2topcd ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "Bwb","Top Card (Bwb) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME(198?, j2xxx ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "Bwb","Triple X (Bwb) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME(198?, j2tupnud ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Tuppenny Nudger (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME(198?, j2wrb ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Wild Reel Bingo (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME(198?, j2ncsp ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "Bwb","unknown 'ncsp0pp' (Bwb) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME(198?, j2nrrp ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "Bwb","unknown 'nprpopp' (Bwb) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME(198?, j2nsc15 ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "Pcp","unknown 'nsc15' (Pcp) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME(198?, j2nsw12 ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "Pcp","unknown 'nsw12' (Pcp) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) - -GAME(198?, j2club77 ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "","Club 77 (Unk) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME(198?, j2contnd ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "Mdm","Continuous Nudger (Mdm) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) -GAMEL(198?, j2crown ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "","Crown Dealer (Unk) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2crown ) -GAME(198?, j2hirola ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "","Hi Roll (Unk) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME(198?, j2monmin ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "","Money Mine (Unk) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME(198?, j2notspn ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "","Note Spinner (Unk) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME(198?, j2super7 ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "","Super 7's (Unk) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME(198?, j2sex ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "","Super Exchanger (Unk) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME(198?, j2sng ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "Cotswold Microsystems","Super Nudge Gambler (Cotswold Microsystems) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME(198?, j2tupnd ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "Mdm","Tuppenny Nudger (Mdm) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME(198?, j2008 ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "","unknown '008' (Unk) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME(198?, j2chsn ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "","unknown 'chsnsn05' (Unk) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME(198?, j2lhs ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "","unknown 'lhs' (Unk) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME(198?, j2nn2 ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "","unknown 'nn_2' (Unk) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME(198?, j2rm941 ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "","unknown 'rm941' (Unk) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME(198?, j2pharo ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "","Pharoah (Unk) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) - -GAME(198?, j2nud5p ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","5p Nudger (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME(198?, j2b7 ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Bar 7? (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME(198?, j2ss ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Supa Stepper (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME(198?, j2nbz ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Nudge Bonanza (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) - -GAME(198?, j2clbbin ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "Crystal?","Club Bingo (Crystal) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) - -GAME(198?, j2sirich ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Strike It Rich (JPM) (MPS) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) // I don't think this is MayGay, it was just in a MayGay set with some actual MayGay roms -GAME(198?, j2siricha,j2sirich ,jpmmps,jpmmps, driver_device, 0,ROT0, "JPM","Strike It Rich (JPM) (MPS) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) // I don't think this is MayGay, it was just in a MayGay set with some actual MayGay roms - -GAME(198?, j2hcash ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "","Hot Cash (Unk) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME(198?, j2sset ,0 ,jpmmps,jpmmps, driver_device, 0,ROT0, "","Sunset Strip (v2.0) (Unk) (MPS?)", MACHINE_IS_SKELETON_MECHANICAL ) +GAMEL(198?, j2adnote ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Add A Note (JPM) (MPS, set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2adnote ) +GAMEL(198?, j2adnotea,j2adnote ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Add A Note (JPM) (MPS, set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2adnote ) +GAMEL(198?, j2adnoteb,j2adnote ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Add A Note (JPM) (MPS, set 3)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2adnote ) +GAMEL(198?, j2adnotec,j2adnote ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Add A Note (JPM) (MPS, set 4)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2adnote ) +GAMEL(198?, j2adnoted,j2adnote ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Add A Note (JPM) (MPS, set 5)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2adnote ) +GAMEL(198?, j2adnotee,j2adnote ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Add A Note (JPM) (MPS, set 6)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2adnote ) +GAMEL(198?, j2adnotef,j2adnote ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Add A Note (JPM) (MPS, set 7)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2adnote ) +GAMEL(198?, j2adnoteg,j2adnote ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Add A Note (JPM) (MPS, set 8)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2adnote ) +GAMEL(198?, j2adnoteh,j2adnote ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Add A Note (JPM) (MPS, set 9)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2adnote ) +GAMEL(198?, j2adnotei,j2adnote ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Add A Note (JPM) (MPS, set 10)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2adnote ) +GAMEL(198?, j2bankch ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Bank Chase (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2bankch ) +GAME (198?, j2bankrd ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Bank Raid (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) +GAMEL(198?, j2bigbnk ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Big Banker (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2bigbnk ) +GAMEL(198?, j2bigbox ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Big Box (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2bigbox ) +GAME (198?, j2bigbuk ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Big Buck$ (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME (198?, j2bigdl ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Big Deal (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME (198?, j2blkchy ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Black Cherry (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) +GAMEL(198?, j2cashbn ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Cash Bonus Club (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2cashbn ) +GAME (198?, j2cashfl ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Cash Falls (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) +GAMEL(198?, j2cashrl ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Cash Reels (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2cashrl ) +GAMEL(198?, j2cashrv ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Cash Reserve (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2cashrv ) +GAMEL(198?, j2cashro ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Cash Rolls (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2cashro ) +GAMEL(198?, j2cashtk ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Cash Track (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2cashtk ) +GAME (198?, j2cashtd ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Cash Track Deluxe (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) +GAMEL(198?, j2coppot ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Copper Pot (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2coppot ) +GAME (198?, j2coprun ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Copper Run (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) +GAMEL(198?, j2cprndx ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Copper Run Deluxe (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2cprndx ) +GAME (198?, j2crkbnk ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Crack The Bank (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) +GAMEL(198?, j2droplt ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Drop The Lot (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2droplt ) +GAME (198?, j2dropld ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Drop The Lot Deluxe (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) +GAMEL(198?, j2ewn ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Each Way Nudger (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2ewn ) +GAMEL(198?, j2ews ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Each Way Shuffle (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2ews ) +GAMEL(198?, j2exec ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Executive Club (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2exec ) +GAMEL(198?, j2fasttk ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Fast Trak (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2fasttk ) +GAMEL(198?, j2fqueen ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Find The Queen (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2fqueen ) +GAMEL(198?, j2fiveal ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Five Alive (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2fiveal ) +GAMEL(198?, j2fiveln ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Five Liner (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2fiveln ) +GAMEL(198?, j2fws ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Five Way Shuffle (Set 1) (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2fws ) +GAMEL(198?, j2fwsa ,j2fws ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Five Way Shuffle (Set 2) (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2fws ) +GAME (198?, j2frmtch ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Fruit Match (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) +GAMEL(198?, j2fullhs ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Full House Club (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2fullhs ) +GAMEL(198?, j2ghostb ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Ghostbuster (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2ghostb ) +GAME (198?, j2goldrn ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Gold Run (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) +GAMEL(198?, j2goldbr ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Golden Bars (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2goldbr ) +GAMEL(198?, j2gldchy ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Golden Cherry (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2gldchy ) +GAME (198?, j2gldwin ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Golden Win (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) +GAMEL(198?, j2hinote ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Hi Note (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2hinote ) +GAMEL(198?, j2hiroll ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Hi Roller (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2hiroll ) +GAMEL(198?, j2hotpot ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Hot Pot (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2hotpot ) +GAME (198?, j2hotptd ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Hot Pot Deluxe (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) +GAMEL(198?, j2hotsht ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Hot Shot Club (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2hotsht ) +GAMEL(198?, j2hypnot ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Hypernote (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2hypnot ) +GAMEL(198?, j2jackbr ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Jackpot Bars (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2jackbr ) +GAME (198?, j2jackdc ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Jackpot Dice (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME (198?, j2jokers ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Jokers (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) +GAMEL(198?, j2kingcl ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","King Of Clubs (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2kingcl ) +GAMEL(198?, j2litean ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Lite A Nudge (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2litean ) +GAMEL(198?, j2lovsht ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Loot Shoot (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2lovsht ) +GAMEL(198?, j2lovshd ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Loot Shoot Deluxe (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2lovshd ) +GAMEL(198?, j2luckar ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Lucky Arrows (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2luckar ) +GAMEL(198?, j2lucky2 ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Lucky 2s (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2lucky2 ) +GAMEL(198?, j2monblt ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Money Belt (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2monblt ) +GAMEL(198?, j2mongam ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Money Game (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2mongam ) +GAME (198?, j2mongmd ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Money Game Deluxe (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME (198?, j2multwn ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Multi Win (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME (198?, j2notexc ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Note Exchange (Set 1) (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME (198?, j2notexca,j2notexc ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Note Exchange (Set 2) (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME (198?, j2notexcb,j2notexc ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Note Exchange (Set 3) (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) +GAMEL(198?, j2notesh ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Note Shoot (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2notesh ) +GAMEL(198?, j2nudbnz ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Nudge Bonanza Deluxe (Set 1) (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2nudbnz ) +GAME (198?, j2nudbnza,j2nudbnz ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Nudge Bonanza Deluxe (Set 2) (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME (198?, j2nuddup ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Nudge Double Up (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME (198?, j2nuddud ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Nudge Double Up Deluxe (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME (198?, j2nudup3 ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Nudge Double Up MkIII (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) +GAMEL(198?, j2nudshf ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Nudge Shuffler (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2nudshf ) +GAME (198?, j2plsmon ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Plus Money (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) +GAMEL(198?, j2plsmnd ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Plus Money Deluxe (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2plsmnd ) +GAMEL(198?, j2plsnud ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Plus Nudge (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2plsnud ) +GAME (198?, j2potlck ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Pot Luck (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) +GAMEL(198?, j2pndrsh ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Pound Rush (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2pndrsh ) +GAME (198?, j2pyramd ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Pyramid (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) +GAMEL(198?, j2reelbn ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Reel Bingo Club (Set 1) (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2reelbn ) +GAMEL(198?, j2reelbna,j2reelbn ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Reel Bingo Club (Set 2) (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2reelbn ) +GAMEL(198?, j2reelbo ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Reel Bonus (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2reelbo ) +GAME (198?, j2reelmg ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Reel Magic (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME (198?, j2reelmgd,j2reelmg ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Reel Magic (JPM) [Dutch] (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) +GAMEL(198?, j2reelmc ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Reel Magic Club (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2reelmc ) +GAMEL(198?, j2reelmo ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Reel Money (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2reelmo ) +GAME (198?, j2rotnot ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Rota Note (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME (198?, j2roulcl ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Roulette Club (JPM) [Mps] (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) +GAMEL(198?, j2rdclb ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Royal Deal Club (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2rdclb ) +GAMEL(198?, j2slvrgh ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Silver Ghost (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2slvrgh ) +GAMEL(198?, j2sldgld ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Solid Gold (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2sldgld ) +GAMEL(198?, j2spcrsv ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Special Reserve (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2spcrsv ) +GAMEL(198?, j2stahed ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Streets Ahead (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2stahed ) +GAME (198?, j2supfrt ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Supa Fruit (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) +GAMEL(198?, j2supfrc ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Supa Fruit Club (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2supfrc ) +GAMEL(1987, j2supsft ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Supashifta (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2supsft ) +GAMEL(198?, j2supstp ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Supa Steppa (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2supstp ) +GAMEL(198?, j2suptrk ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Supa Track (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2suptrk ) +GAME (198?, j2suprft ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Super Fruit (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME (198?, j2supln ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Super Line (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME (198?, j2suppot ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Super Pots (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME (198?, j2suprl ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Super Reel (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) +GAMEL(198?, j2suprsh ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Supershot (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2suprsh ) +GAME (198?, j2supstr ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Superstars (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) +GAMEL(198?, j2swbank ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Switch Back (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2swbank ) +GAMEL(198?, j2take2 ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Take 2 (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2take2 ) +GAME (198?, j2topsht ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Top Shot (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME (198?, j2westrn ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Western (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) + + +GAMEL(198?, j2blustr ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "Pcp","Blue Streak (Pcp) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2blustr ) +GAMEL(198?, j2cshalm ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "Pcp","Cash Alarm (Pcp) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2cshalm ) +GAMEL(198?, j2cshcrd ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "Pcp","Cash Cards (Pcp) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2cshcrd ) +GAMEL(198?, j2cshfil ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "Pcp","Cash-Filla (Pcp) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2cshfil ) +GAMEL(198?, j2cshsmh ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "Pcp","Cash Smash (Pcp) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2cshsmh ) +GAMEL(198?, j2criscr ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "Pcp","Criss Cross Jackpot (Pcp) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2criscr ) +GAMEL(198?, j2frucnx ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "Pcp","Fruit Connexion (Pcp) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2frucnx ) +GAMEL(198?, j2hitmon ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "Pcp","Hit Money (Pcp) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2hitmon ) +GAMEL(198?, j2penny ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "Pcp","In For A Penny In For A Pound (Pcp) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2penny ) +GAMEL(198?, j2maxima ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "Pcp","Maxima (Pcp) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2maxima ) +GAMEL(198?, j2montrp ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "Pcp","Money Trapper (Pcp) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2montrp ) +GAMEL(198?, j2nudmon ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "Pcp","Nudge Money (Pcp) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2nudmon ) +GAMEL(198?, j2paypkt ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "Pcp","Pay Packet (Pcp) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2paypkt ) +GAMEL(198?, j2silvcl ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "Pcp","Silver Classic (Pcp) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2silvcl ) +GAMEL(198?, j2silvsh ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "Pcp","Silver Shot (Pcp) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2silvsh ) +GAMEL(198?, j2sstrea ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "Pcp","Supa Streak (Pcp) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2sstrea ) +GAMEL(198?, j2tstplt ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "Pcp","Test Pilot (Set 1) (Pcp) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2tstplt ) +GAMEL(198?, j2tstplta,j2tstplt ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "Pcp","Test Pilot (Set 2) (Pcp) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2tstplt ) + +GAME (198?, j2bonanz ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "Eurocoin","Bonanza (Eurocoin) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME (198?, j2supchy ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "Eurocoin","Super Cherry (Eurocoin) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) + +GAMEL(198?, j2hilocl ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "Crystal","Hi Lo Climber Club (Crystal) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2hilocl ) +GAMEL(198?, j2litnot ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "Crystal","Lite A Note Club (Crystal) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2litnot ) +GAMEL(198?, j2missis ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "Crystal","Mississippi Gambler Club (Crystal) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2missis ) + +GAMEL(198?, j2always ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "Bwb","Always Eight (Bwb) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2always ) +GAMEL(198?, j2coinsh ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "Bwb","Coin Shoot (Bwb) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2coinsh ) +GAMEL(198?, j2nudfev ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "Bwb","Nudge Fever (Bwb) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2nudfev ) +GAMEL(198?, j2trail ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "Bwb","Trailblazer (Bwb) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2trail ) +GAME (198?, j2wag ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "Bwb","Win-A-Gain (Bwb) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) + +GAMEL(198?, j2cshnud ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "Mdm","Cash Nudger (Mdm) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2cshnud ) +GAME (198?, j2fivepn ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "Mdm","Fivepenny Nudger (Mdm) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) +GAMEL(198?, j2nolimt ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "Mdm","No Limit Nudge (Mdm) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2nolimt ) + +GAME (198?, j2strk10 ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "Ace?","Strike Ten (Ace) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) // there was another (68k based) game in this set, which makes me wonder if this one is by Ace at all + + + + +GAME (198?, j2bkroll ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Bank Roll (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME (198?, j2bodym ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Body Match (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) +GAMEL(198?, j2cvault ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Cash Vault (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2cvault ) +GAME (198?, j2cashab ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Cashablanca (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME (198?, j2cashry ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "Pcp","Cashino Royale (Pcp) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME (198?, j2casino ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "Pcp","Casino Classic (Pcp) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME (198?, j2coinct ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Coin Count (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME (198?, j2loots ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "Pcp","Loot Shoot (Pcp) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME (198?, j2match ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Match It (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME (198?, j2monbnd ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Money Bands (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME (198?, j2monmtx ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "Bwb","Money Matrix (Bwb) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME (198?, j2tst ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","MPS 1 Test Rom (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME (198?, j2nudnud ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Nudge Nudge (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME (198?, j2pinac ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Pinnacle (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME (198?, j2pinclb ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Pinnacle Club (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) +GAMEL(198?, j2reelcz ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Reel Crazy (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2reelcz ) +GAME (198?, j2reeldc ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Reel Deal Club (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME (198?, j2topcd ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "Bwb","Top Card (Bwb) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME (198?, j2xxx ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "Bwb","Triple X (Bwb) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME (198?, j2tupnud ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Tuppenny Nudger (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME (198?, j2wrb ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Wild Reel Bingo (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME (198?, j2ncsp ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "Bwb","unknown 'ncsp0pp' (Bwb) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME (198?, j2nrrp ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "Bwb","unknown 'nprpopp' (Bwb) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME (198?, j2nsc15 ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "Pcp","unknown 'nsc15' (Pcp) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME (198?, j2nsw12 ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "Pcp","unknown 'nsw12' (Pcp) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) + +GAME (198?, j2club77 ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "","Club 77 (Unk) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME (198?, j2contnd ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "Mdm","Continuous Nudger (Mdm) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) +GAMEL(198?, j2crown ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "","Crown Dealer (Unk) (MPS)", MACHINE_IS_SKELETON_MECHANICAL, layout_j2crown ) +GAME (198?, j2hirola ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "","Hi Roll (Unk) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME (198?, j2monmin ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "","Money Mine (Unk) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME (198?, j2notspn ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "","Note Spinner (Unk) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME (198?, j2super7 ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "","Super 7's (Unk) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME (198?, j2sex ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "","Super Exchanger (Unk) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME (198?, j2sng ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "Cotswold Microsystems","Super Nudge Gambler (Cotswold Microsystems) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME (198?, j2tupnd ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "Mdm","Tuppenny Nudger (Mdm) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME (198?, j2008 ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "","unknown '008' (Unk) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME (198?, j2chsn ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "","unknown 'chsnsn05' (Unk) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME (198?, j2lhs ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "","unknown 'lhs' (Unk) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME (198?, j2nn2 ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "","unknown 'nn_2' (Unk) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME (198?, j2rm941 ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "","unknown 'rm941' (Unk) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME (198?, j2pharo ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "","Pharoah (Unk) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) + +GAME (198?, j2nud5p ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","5p Nudger (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME (198?, j2b7 ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Bar 7? (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME (198?, j2ss ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Supa Stepper (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME (198?, j2nbz ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Nudge Bonanza (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) + +GAME (198?, j2clbbin ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "Crystal?","Club Bingo (Crystal) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) + +GAME (198?, j2sirich ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Strike It Rich (JPM) (MPS) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) // I don't think this is MayGay, it was just in a MayGay set with some actual MayGay roms +GAME (198?, j2siricha,j2sirich ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "JPM","Strike It Rich (JPM) (MPS) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) // I don't think this is MayGay, it was just in a MayGay set with some actual MayGay roms + +GAME (198?, j2hcash ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "","Hot Cash (Unk) (MPS)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME (198?, j2sset ,0 ,jpmmps,jpmmps, jpmmps_state, 0,ROT0, "","Sunset Strip (v2.0) (Unk) (MPS?)", MACHINE_IS_SKELETON_MECHANICAL ) diff --git a/src/mame/drivers/jpms80.cpp b/src/mame/drivers/jpms80.cpp index df240e73caa..43968eccf46 100644 --- a/src/mame/drivers/jpms80.cpp +++ b/src/mame/drivers/jpms80.cpp @@ -95,7 +95,7 @@ void jpms80_state::machine_reset() static_cast(machine().device("maincpu"))->ready_line(ASSERT_LINE); } -static MACHINE_CONFIG_START( jpms80, jpms80_state ) +static MACHINE_CONFIG_START( jpms80 ) // CPU TMS9995, standard variant; no line connections MCFG_TMS99xx_ADD("maincpu", TMS9995, MAIN_CLOCK, jpms80_map, jpms80_io_map) MCFG_SPEAKER_STANDARD_MONO("mono") @@ -306,7 +306,7 @@ ROM_END GAMEL(198?, j80bac ,0 ,jpms80,jpms80, jpms80_state,jpms80,ROT0, "JPM","Bank A Coin (JPM) (SYSTEM80)", MACHINE_IS_SKELETON_MECHANICAL, layout_j80bac ) GAMEL(198?, j80bounc ,0 ,jpms80,jpms80, jpms80_state,jpms80,ROT0, "JPM","Bouncer (JPM) (SYSTEM80)", MACHINE_IS_SKELETON_MECHANICAL, layout_j80bounc ) GAMEL(198?, j80frogh ,0 ,jpms80,jpms80, jpms80_state,jpms80,ROT0, "JPM","Frog Hop (JPM) (SYSTEM80)", MACHINE_IS_SKELETON_MECHANICAL, layout_j80frogh ) -GAME(198?, j80fruit ,0 ,jpms80,jpms80, jpms80_state,jpms80,ROT0, "JPM","Fruit Snappa (JPM) (SYSTEM80)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME (198?, j80fruit ,0 ,jpms80,jpms80, jpms80_state,jpms80,ROT0, "JPM","Fruit Snappa (JPM) (SYSTEM80)", MACHINE_IS_SKELETON_MECHANICAL ) GAMEL(198?, j80golds ,0 ,jpms80,jpms80, jpms80_state,jpms80,ROT0, "JPM","Golden Steppa (JPM) (SYSTEM80)", MACHINE_IS_SKELETON_MECHANICAL, layout_j80golds ) GAMEL(198?, j80hotln ,0 ,jpms80,jpms80, jpms80_state,jpms80,ROT0, "JPM","Hot Lines (JPM) (SYSTEM80)", MACHINE_IS_SKELETON_MECHANICAL, layout_j80hotln ) GAMEL(198?, j80myspn ,0 ,jpms80,jpms80, jpms80_state,jpms80,ROT0, "JPM","Mystery Spin (JPM) (SYSTEM80)", MACHINE_IS_SKELETON_MECHANICAL, layout_j80myspn ) @@ -316,16 +316,16 @@ GAMEL(198?, j80rra ,j80rr ,jpms80,jpms80, jpms80_state,jpms80,ROT0, "JP GAMEL(198?, j80supst ,0 ,jpms80,jpms80, jpms80_state,jpms80,ROT0, "JPM","Supa Steppa (JPM) (SYSTEM80)", MACHINE_IS_SKELETON_MECHANICAL, layout_j80supst ) GAMEL(198?, j80supbk ,0 ,jpms80,jpms80, jpms80_state,jpms80,ROT0, "JPM","Superbank (JPM) (SYSTEM80)", MACHINE_IS_SKELETON_MECHANICAL, layout_j80supbk ) GAMEL(198?, j80topsp ,0 ,jpms80,jpms80, jpms80_state,jpms80,ROT0, "JPM","Top Sprint (JPM) (SYSTEM80)", MACHINE_IS_SKELETON_MECHANICAL, layout_j80topsp ) -GAME(198?, j80topup ,0 ,jpms80,jpms80, jpms80_state,jpms80,ROT0, "JPM","Top Up (JPM) (SYSTEM80)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME(198?, j80tumbl ,0 ,jpms80,jpms80, jpms80_state,jpms80,ROT0, "JPM","Tumble (JPM) (SYSTEM80)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME (198?, j80topup ,0 ,jpms80,jpms80, jpms80_state,jpms80,ROT0, "JPM","Top Up (JPM) (SYSTEM80)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME (198?, j80tumbl ,0 ,jpms80,jpms80, jpms80_state,jpms80,ROT0, "JPM","Tumble (JPM) (SYSTEM80)", MACHINE_IS_SKELETON_MECHANICAL ) GAMEL(198?, j80wsprt, 0 ,jpms80,jpms80, jpms80_state,jpms80,ROT0, "JPM","Winsprint (JPM) (V4, 5x20p) (SYSTEM80)", MACHINE_IS_SKELETON_MECHANICAL, layout_j80wsprt2 ) GAMEL(198?, j80wsprt3, j80wsprt ,jpms80,jpms80, jpms80_state,jpms80,ROT0, "JPM","Winsprint (JPM) (V3, 50p, 5 credits) (SYSTEM80)", MACHINE_IS_SKELETON_MECHANICAL, layout_j80wsprt2 ) GAMEL(198?, j80wsprt2,j80wsprt ,jpms80,jpms80, jpms80_state,jpms80,ROT0, "JPM","Winsprint (JPM) (V2, 10x10p) (SYSTEM80)", MACHINE_IS_SKELETON_MECHANICAL, layout_j80wsprt2 ) -GAME(198?, j80blbnk ,0 ,jpms80,jpms80, jpms80_state,jpms80,ROT0, "PCP","Blankity Bank (PCP) (SYSTEM80)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME (198?, j80blbnk ,0 ,jpms80,jpms80, jpms80_state,jpms80,ROT0, "PCP","Blankity Bank (PCP) (SYSTEM80)", MACHINE_IS_SKELETON_MECHANICAL ) // these look like they're probably SYSTEM80, not 100% sure tho -GAME(198?, j80alad ,0 ,jpms80,jpms80, jpms80_state,jpms80,ROT0, "JPM","Aladdin's Cave (PCP)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME(198?, j80fortr ,0 ,jpms80,jpms80, jpms80_state,jpms80,ROT0, "JPM","Fortune Trail (JPM)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME(198?, j80mster ,0 ,jpms80,jpms80, jpms80_state,jpms80,ROT0, "JPM","Masterspy (Pcp)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME(198?, j80plsnd ,0 ,jpms80,jpms80, jpms80_state,jpms80,ROT0, "JPM","Plus Nudge (JPM)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME (198?, j80alad ,0 ,jpms80,jpms80, jpms80_state,jpms80,ROT0, "JPM","Aladdin's Cave (PCP)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME (198?, j80fortr ,0 ,jpms80,jpms80, jpms80_state,jpms80,ROT0, "JPM","Fortune Trail (JPM)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME (198?, j80mster ,0 ,jpms80,jpms80, jpms80_state,jpms80,ROT0, "JPM","Masterspy (Pcp)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME (198?, j80plsnd ,0 ,jpms80,jpms80, jpms80_state,jpms80,ROT0, "JPM","Plus Nudge (JPM)", MACHINE_IS_SKELETON_MECHANICAL ) diff --git a/src/mame/drivers/jpmsru.cpp b/src/mame/drivers/jpmsru.cpp index 98a3a895991..b64a708524a 100644 --- a/src/mame/drivers/jpmsru.cpp +++ b/src/mame/drivers/jpmsru.cpp @@ -63,11 +63,11 @@ ADDRESS_MAP_END static INPUT_PORTS_START( jpmsru ) INPUT_PORTS_END -static MACHINE_CONFIG_START( jpmsru, jpmsru_state ) +static MACHINE_CONFIG_START( jpmsru ) MCFG_TMS99xx_ADD("maincpu", TMS9980A, MAIN_CLOCK, jpmsru_map, jpmsru_io) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( jpmsru_4, jpmsru_state ) +static MACHINE_CONFIG_START( jpmsru_4 ) MCFG_TMS99xx_ADD("maincpu", TMS9980A, MAIN_CLOCK, jpmsru_4_map, jpmsru_io) MACHINE_CONFIG_END @@ -164,22 +164,22 @@ ROM_START( j_unk ) ROM_LOAD( "sruunk1.p3", 0x0800, 0x000400, CRC(25138e03) SHA1(644fc6144ea74f08dc892f106ad494ba364afe86) ) ROM_END -GAME(198?, j_ewnud ,0 ,jpmsru,jpmsru, jpmsru_state,jpmsru,ROT0, "Barcrest?","Each Way Nudger (Barcrest?, set 1)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME(198?, j_ewnda ,j_ewnud ,jpmsru,jpmsru, jpmsru_state,jpmsru,ROT0, "Barcrest?","Each Way Nudger (Barcrest?, set 2)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME(198?, j_ewnd20 ,j_ewnud ,jpmsru,jpmsru, jpmsru_state,jpmsru,ROT0, "Barcrest?","Each Way Nudger (Barcrest?, set 3, version 20?)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME(198?, j_ews ,0 ,jpmsru,jpmsru, jpmsru_state,jpmsru,ROT0, "Barcrest?","Each Way Shifter (Barcrest?, set 1, version 16)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME(198?, j_ews8a ,j_ews ,jpmsru,jpmsru, jpmsru_state,jpmsru,ROT0, "Barcrest?","Each Way Shifter (Barcrest?, set 2, version 8a)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME(198?, j_ewnud ,0 ,jpmsru,jpmsru, jpmsru_state,jpmsru,ROT0, "Barcrest?","Each Way Nudger (Barcrest?, set 1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME(198?, j_ewnda ,j_ewnud ,jpmsru,jpmsru, jpmsru_state,jpmsru,ROT0, "Barcrest?","Each Way Nudger (Barcrest?, set 2)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME(198?, j_ewnd20 ,j_ewnud ,jpmsru,jpmsru, jpmsru_state,jpmsru,ROT0, "Barcrest?","Each Way Nudger (Barcrest?, set 3, version 20?)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME(198?, j_ews ,0 ,jpmsru,jpmsru, jpmsru_state,jpmsru,ROT0, "Barcrest?","Each Way Shifter (Barcrest?, set 1, version 16)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME(198?, j_ews8a ,j_ews ,jpmsru,jpmsru, jpmsru_state,jpmsru,ROT0, "Barcrest?","Each Way Shifter (Barcrest?, set 2, version 8a)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME(198?, j_luckac ,0 ,jpmsru,jpmsru, jpmsru_state,jpmsru,ROT0, "","Lucky Aces (Unk)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME(198?, j_super2 ,0 ,jpmsru,jpmsru, jpmsru_state,jpmsru,ROT0, "JPM","Super 2 (JPM)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME(198?, j_luckac ,0 ,jpmsru,jpmsru, jpmsru_state,jpmsru,ROT0, "","Lucky Aces (Unk)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME(198?, j_super2 ,0 ,jpmsru,jpmsru, jpmsru_state,jpmsru,ROT0, "JPM","Super 2 (JPM)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME(198?, j_luck2 ,0 ,jpmsru_4,jpmsru, jpmsru_state,jpmsru,ROT0, "","Lucky Twos?", MACHINE_IS_SKELETON_MECHANICAL ) +GAME(198?, j_luck2 ,0 ,jpmsru_4,jpmsru, jpmsru_state,jpmsru,ROT0, "","Lucky Twos?", MACHINE_IS_SKELETON_MECHANICAL ) -GAME(198?, j_nuddup ,0 ,jpmsru_4,jpmsru, jpmsru_state,jpmsru,ROT0, "JPM","Nudge Double Up (JPM SRU, set 1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME(198?, j_nuddup ,0 ,jpmsru_4,jpmsru, jpmsru_state,jpmsru,ROT0, "JPM","Nudge Double Up (JPM SRU, set 1)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME(198?, j_nuddup2,j_nuddup ,jpmsru_4,jpmsru, jpmsru_state,jpmsru,ROT0, "JPM","Nudge Double Up (JPM SRU, set 2)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME(198?, j_nuddup2,j_nuddup ,jpmsru_4,jpmsru, jpmsru_state,jpmsru,ROT0, "JPM","Nudge Double Up (JPM SRU, set 2)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME(198?, j_unk ,0 ,jpmsru_4,jpmsru, jpmsru_state,jpmsru,ROT0, "JPM?","unknown SRU Game (JPM?)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME(198?, j_unk ,0 ,jpmsru_4,jpmsru, jpmsru_state,jpmsru,ROT0, "JPM?","unknown SRU Game (JPM?)", MACHINE_IS_SKELETON_MECHANICAL ) // this one is different again? -GAME(198?, j_plus2 ,0 ,jpmsru_4,jpmsru, jpmsru_state,jpmsru,ROT0, "JPM","Plus 2 (JPM)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME(198?, j_plus2 ,0 ,jpmsru_4,jpmsru, jpmsru_state,jpmsru,ROT0, "JPM","Plus 2 (JPM)", MACHINE_IS_SKELETON_MECHANICAL ) diff --git a/src/mame/drivers/jpmsys5.cpp b/src/mame/drivers/jpmsys5.cpp index fb807e877a5..07186fe79f0 100644 --- a/src/mame/drivers/jpmsys5.cpp +++ b/src/mame/drivers/jpmsys5.cpp @@ -619,7 +619,7 @@ MACHINE_RESET_MEMBER(jpmsys5_state,jpmsys5v) * *************************************/ -static MACHINE_CONFIG_START( jpmsys5v, jpmsys5_state ) +static MACHINE_CONFIG_START( jpmsys5v ) MCFG_CPU_ADD("maincpu", M68000, XTAL_8MHz) MCFG_CPU_PROGRAM_MAP(68000_map) @@ -835,7 +835,7 @@ MACHINE_RESET_MEMBER(jpmsys5_state,jpmsys5) *************************************/ // later (incompatible with earlier revision) motherboards used a YM2413 -MACHINE_CONFIG_START( jpmsys5_ym, jpmsys5_state ) +MACHINE_CONFIG_START( jpmsys5_ym ) MCFG_CPU_ADD("maincpu", M68000, XTAL_8MHz) MCFG_CPU_PROGRAM_MAP(68000_awp_map) @@ -889,7 +889,7 @@ MACHINE_CONFIG_START( jpmsys5_ym, jpmsys5_state ) MACHINE_CONFIG_END // the first rev PCB used an SAA1099 -MACHINE_CONFIG_START( jpmsys5, jpmsys5_state ) +MACHINE_CONFIG_START( jpmsys5 ) MCFG_CPU_ADD("maincpu", M68000, XTAL_8MHz) MCFG_CPU_PROGRAM_MAP(68000_awp_map_saa) @@ -1039,8 +1039,8 @@ ROM_END /* Video based titles */ -GAME( 1994, monopoly , 0 , jpmsys5v, monopoly, driver_device, 0, ROT0, "JPM", "Monopoly (JPM) (SYSTEM5 VIDEO, set 1)", 0 ) -GAME( 1994, monopolya , monopoly , jpmsys5v, monopoly, driver_device, 0, ROT0, "JPM", "Monopoly (JPM) (SYSTEM5 VIDEO, set 2)", 0 ) -GAME( 1995, monoplcl , monopoly , jpmsys5v, monopoly, driver_device, 0, ROT0, "JPM", "Monopoly Classic (JPM) (SYSTEM5 VIDEO)", 0 ) -GAME( 1995, monopldx , 0 , jpmsys5v, monopoly, driver_device, 0, ROT0, "JPM", "Monopoly Deluxe (JPM) (SYSTEM5 VIDEO)", 0 ) -GAME( 199?, cashcade , 0 , jpmsys5v, monopoly, driver_device, 0, ROT0, "JPM", "Cashcade (JPM) (SYSTEM5 VIDEO)", MACHINE_NOT_WORKING|MACHINE_NO_SOUND ) // shows a loading error.. is the set incomplete? +GAME( 1994, monopoly , 0 , jpmsys5v, monopoly, jpmsys5_state, 0, ROT0, "JPM", "Monopoly (JPM) (SYSTEM5 VIDEO, set 1)", 0 ) +GAME( 1994, monopolya , monopoly , jpmsys5v, monopoly, jpmsys5_state, 0, ROT0, "JPM", "Monopoly (JPM) (SYSTEM5 VIDEO, set 2)", 0 ) +GAME( 1995, monoplcl , monopoly , jpmsys5v, monopoly, jpmsys5_state, 0, ROT0, "JPM", "Monopoly Classic (JPM) (SYSTEM5 VIDEO)", 0 ) +GAME( 1995, monopldx , 0 , jpmsys5v, monopoly, jpmsys5_state, 0, ROT0, "JPM", "Monopoly Deluxe (JPM) (SYSTEM5 VIDEO)", 0 ) +GAME( 199?, cashcade , 0 , jpmsys5v, monopoly, jpmsys5_state, 0, ROT0, "JPM", "Cashcade (JPM) (SYSTEM5 VIDEO)", MACHINE_NOT_WORKING|MACHINE_NO_SOUND ) // shows a loading error.. is the set incomplete? diff --git a/src/mame/drivers/jpmsys5sw.cpp b/src/mame/drivers/jpmsys5sw.cpp index 14d0f3bf66f..f1ff1c6c530 100644 --- a/src/mame/drivers/jpmsys5sw.cpp +++ b/src/mame/drivers/jpmsys5sw.cpp @@ -1410,228 +1410,228 @@ ROM_END #define GAME_FLAGS MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL|MACHINE_NO_SOUND|MACHINE_CLICKABLE_ARTWORK -GAME( 199?, j5tstal , 0 , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "JPM System 5 Alpha Display Test Utility (JPM) (SYSTEM5)", GAME_FLAGS ) -GAME( 199?, j5tst1 , 0 , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "JPM System 5 Test Set (JPM) (SYSTEM5, set 1)", GAME_FLAGS ) -GAME( 199?, j5tst2 , j5tst1 , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "JPM System 5 Test Set (JPM) (SYSTEM5, set 2)", GAME_FLAGS ) +GAME( 199?, j5tstal , 0 , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "JPM System 5 Alpha Display Test Utility (JPM) (SYSTEM5)", GAME_FLAGS ) +GAME( 199?, j5tst1 , 0 , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "JPM System 5 Test Set (JPM) (SYSTEM5, set 1)", GAME_FLAGS ) +GAME( 199?, j5tst2 , j5tst1 , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "JPM System 5 Test Set (JPM) (SYSTEM5, set 2)", GAME_FLAGS ) /* SAA based board */ -GAME( 199?, j5fifth , 0 , jpmsys5, popeye, driver_device, 0, ROT0, "JPM", "5th Avenue (JPM) (SYSTEM5-SAA)", GAME_FLAGS ) +GAME( 199?, j5fifth , 0 , jpmsys5, popeye, jpmsys5_state, 0, ROT0, "JPM", "5th Avenue (JPM) (SYSTEM5-SAA)", GAME_FLAGS ) -GAME( 199?, j5clbnud , 0 , jpmsys5, popeye, driver_device, 0, ROT0, "JPM", "Club Nudger (JPM) (SYSTEM5-SAA, set 1)", GAME_FLAGS ) -GAME( 199?, j5clbnuda , j5clbnud , jpmsys5, popeye, driver_device, 0, ROT0, "JPM", "Club Nudger (JPM) (SYSTEM5-SAA, set 2)", GAME_FLAGS ) +GAME( 199?, j5clbnud , 0 , jpmsys5, popeye, jpmsys5_state, 0, ROT0, "JPM", "Club Nudger (JPM) (SYSTEM5-SAA, set 1)", GAME_FLAGS ) +GAME( 199?, j5clbnuda , j5clbnud , jpmsys5, popeye, jpmsys5_state, 0, ROT0, "JPM", "Club Nudger (JPM) (SYSTEM5-SAA, set 2)", GAME_FLAGS ) -GAMEL( 199?, j5firebl , 0 , jpmsys5, popeye, driver_device, 0, ROT0, "JPM", "Fireball (JPM) (SYSTEM5-SAA, set 1)", GAME_FLAGS, layout_j5firebl ) -GAMEL( 199?, j5firebla , j5firebl , jpmsys5, popeye, driver_device, 0, ROT0, "JPM", "Fireball (JPM) (SYSTEM5-SAA, set 2)", GAME_FLAGS, layout_j5firebl ) -GAMEL( 199?, j5fireblb , j5firebl , jpmsys5, popeye, driver_device, 0, ROT0, "JPM", "Fireball (JPM) (SYSTEM5-SAA, set 3)", GAME_FLAGS, layout_j5firebl ) +GAMEL( 199?, j5firebl , 0 , jpmsys5, popeye, jpmsys5_state, 0, ROT0, "JPM", "Fireball (JPM) (SYSTEM5-SAA, set 1)", GAME_FLAGS, layout_j5firebl ) +GAMEL( 199?, j5firebla , j5firebl , jpmsys5, popeye, jpmsys5_state, 0, ROT0, "JPM", "Fireball (JPM) (SYSTEM5-SAA, set 2)", GAME_FLAGS, layout_j5firebl ) +GAMEL( 199?, j5fireblb , j5firebl , jpmsys5, popeye, jpmsys5_state, 0, ROT0, "JPM", "Fireball (JPM) (SYSTEM5-SAA, set 3)", GAME_FLAGS, layout_j5firebl ) -GAME( 199?, j5frmag , 0 , jpmsys5, popeye, driver_device, 0, ROT0, "JPM", "Fruit Magic (JPM) (SYSTEM5-SAA)", GAME_FLAGS ) +GAME( 199?, j5frmag , 0 , jpmsys5, popeye, jpmsys5_state, 0, ROT0, "JPM", "Fruit Magic (JPM) (SYSTEM5-SAA)", GAME_FLAGS ) -GAME( 199?, j5goldbr , 0 , jpmsys5, popeye, driver_device, 0, ROT0, "JPM", "Golden Bars (JPM) (SYSTEM5-SAA)", GAME_FLAGS ) +GAME( 199?, j5goldbr , 0 , jpmsys5, popeye, jpmsys5_state, 0, ROT0, "JPM", "Golden Bars (JPM) (SYSTEM5-SAA)", GAME_FLAGS ) -GAME( 199?, j5reelgh , 0 , jpmsys5, popeye, driver_device, 0, ROT0, "JPM", "Reel Ghost (JPM) (SYSTEM5-SAA)", GAME_FLAGS ) +GAME( 199?, j5reelgh , 0 , jpmsys5, popeye, jpmsys5_state, 0, ROT0, "JPM", "Reel Ghost (JPM) (SYSTEM5-SAA)", GAME_FLAGS ) -GAME( 199?, j5sup4 , 0 , jpmsys5, popeye, driver_device, 0, ROT0, "JPM", "Super 4 (JPM) (SYSTEM5-SAA)", GAME_FLAGS ) +GAME( 199?, j5sup4 , 0 , jpmsys5, popeye, jpmsys5_state, 0, ROT0, "JPM", "Super 4 (JPM) (SYSTEM5-SAA)", GAME_FLAGS ) -GAMEL( 199?, j5suphi , 0 , jpmsys5, popeye, driver_device, 0, ROT0, "JPM", "Super Hi-Lo (JPM) (SYSTEM5-SAA)", GAME_FLAGS, layout_j5suphi ) +GAMEL( 199?, j5suphi , 0 , jpmsys5, popeye, jpmsys5_state, 0, ROT0, "JPM", "Super Hi-Lo (JPM) (SYSTEM5-SAA)", GAME_FLAGS, layout_j5suphi ) -GAMEL( 199?, j5swop , 0 , jpmsys5, popeye, driver_device, 0, ROT0, "JPM", "Swop A Fruit Club (JPM) (SYSTEM5-SAA)", GAME_FLAGS, layout_j5swop ) +GAMEL( 199?, j5swop , 0 , jpmsys5, popeye, jpmsys5_state, 0, ROT0, "JPM", "Swop A Fruit Club (JPM) (SYSTEM5-SAA)", GAME_FLAGS, layout_j5swop ) -GAME( 199?, j5td , 0 , jpmsys5, popeye, driver_device, 0, ROT0, "JPM", "Tumbling Dice (JPM) (SYSTEM5-SAA)", GAME_FLAGS ) +GAME( 199?, j5td , 0 , jpmsys5, popeye, jpmsys5_state, 0, ROT0, "JPM", "Tumbling Dice (JPM) (SYSTEM5-SAA)", GAME_FLAGS ) /* YM based board */ -GAME( 199?, j5ar80 , 0 , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Around The World In Eighty Days (JPM) (SYSTEM5, set 1)", GAME_FLAGS ) // This was also listed as by 'Crystal'. There was Crystal ROM in the set, but it wasn't an JPM SYS5 rom... -GAME( 199?, j5ar80a , j5ar80 , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Around The World In Eighty Days (JPM) (SYSTEM5, set 2)", GAME_FLAGS ) -GAME( 199?, j5ar80b , j5ar80 , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Around The World In Eighty Days (JPM) (SYSTEM5, set 3)", GAME_FLAGS ) -GAME( 199?, j5ar80c , j5ar80 , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Around The World In Eighty Days (JPM) (SYSTEM5, set 4)", GAME_FLAGS ) -GAME( 199?, j5ar80d , j5ar80 , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Around The World In Eighty Days (JPM) (SYSTEM5, set 5)", GAME_FLAGS ) - -GAMEL( 199?, j5ar80cl , 0 , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Around The World Club (JPM) (SYSTEM5, set 1)", GAME_FLAGS, layout_j5ar80cla ) -GAMEL( 199?, j5ar80cla , j5ar80cl , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Around The World Club (JPM) (SYSTEM5, set 2)", GAME_FLAGS, layout_j5ar80cla ) -GAMEL( 199?, j5ar80clb , j5ar80cl , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Around The World Club (JPM) (SYSTEM5, set 3)", GAME_FLAGS, layout_j5ar80cla ) -GAMEL( 199?, j5ar80clc , j5ar80cl , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Around The World Club (JPM) (SYSTEM5, set 4)", GAME_FLAGS, layout_j5ar80cla ) - -GAME( 199?, j5buc , 0 , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Buccaneer (JPM) (SYSTEM5)", GAME_FLAGS ) - -GAMEL( 199?, j5cir , 0 , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Circus (JPM) (SYSTEM5, set 1)", GAME_FLAGS, layout_j5cira ) -GAMEL( 199?, j5cira , j5cir , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Circus (JPM) (SYSTEM5, set 2)", GAME_FLAGS, layout_j5cira ) -GAMEL( 199?, j5cirb , j5cir , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Circus (JPM) (SYSTEM5, set 3)", GAME_FLAGS, layout_j5cira ) -GAMEL( 199?, j5circ , j5cir , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Circus (JPM) (SYSTEM5, set 4)", GAME_FLAGS, layout_j5cira ) -GAMEL( 199?, j5cird , j5cir , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Circus (JPM) (SYSTEM5, set 5)", GAME_FLAGS, layout_j5cira ) -GAMEL( 199?, j5cire , j5cir , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Circus (JPM) (SYSTEM5, set 6)", GAME_FLAGS, layout_j5cira ) - - -GAME( 199?, j5daytn , 0 , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Daytona (JPM) (SYSTEM5, set 1)", GAME_FLAGS ) -GAME( 199?, j5daytna , j5daytn , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Daytona (JPM) (SYSTEM5, set 2)", GAME_FLAGS ) - -GAME( 199?, j5daycls , 0 , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Daytona Classic (JPM) (SYSTEM5, set 1)", GAME_FLAGS ) -GAME( 199?, j5dayclsa , j5daycls , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Daytona Classic (JPM) (SYSTEM5, set 2)", GAME_FLAGS ) - -GAME( 199?, j5dirty , 0 , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Dirty Dozen (JPM) (SYSTEM5, set 1)", GAME_FLAGS ) -GAME( 199?, j5dirtya , j5dirty , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Dirty Dozen (JPM) (SYSTEM5, set 2)", GAME_FLAGS ) -GAME( 199?, j5dirtyb , j5dirty , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Dirty Dozen (JPM) (SYSTEM5, set 3)", GAME_FLAGS ) -GAME( 199?, j5dirtyc , j5dirty , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Dirty Dozen (JPM) (SYSTEM5, set 4)", GAME_FLAGS ) - -GAME( 199?, j5fairgd , 0 , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Fairground Attraction Club (JPM) (SYSTEM5, set 1)", GAME_FLAGS ) // or just 'Fairground' ? -GAME( 199?, j5fairgda , j5fairgd , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Fairground Attraction Club (JPM) (SYSTEM5, set 2)", GAME_FLAGS ) -GAME( 199?, j5fairgdb , j5fairgd , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Fairground Attraction Club (JPM) (SYSTEM5, set 3)", GAME_FLAGS ) -GAME( 199?, j5fairgdc , j5fairgd , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Fairground Attraction Club (JPM) (SYSTEM5, set 4)", GAME_FLAGS ) -GAME( 199?, j5fairgdd , j5fairgd , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Fairground Attraction Club (JPM) (SYSTEM5, set 5)", GAME_FLAGS ) -GAME( 199?, j5fairgde , j5fairgd , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Fairground Attraction Club (JPM) (SYSTEM5, set 6)", GAME_FLAGS ) - -GAMEL( 199?, j5fair , 0 , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Fairground (JPM) (SYSTEM5, set 1)", GAME_FLAGS, layout_j5fairp ) -GAMEL( 199?, j5faira , j5fair , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Fairground (JPM) (SYSTEM5, set 2)", GAME_FLAGS, layout_j5fairp ) -GAMEL( 199?, j5fairb , j5fair , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Fairground (JPM) (SYSTEM5, set 3)", GAME_FLAGS, layout_j5fairp ) -GAMEL( 199?, j5fairc , j5fair , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Fairground (JPM) (SYSTEM5, set 4)", GAME_FLAGS, layout_j5fairp ) -GAMEL( 199?, j5faird , j5fair , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Fairground (JPM) (SYSTEM5, set 5)", GAME_FLAGS, layout_j5fairp ) -GAMEL( 199?, j5faire , j5fair , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Fairground (JPM) (SYSTEM5, set 6)", GAME_FLAGS, layout_j5fairp ) -GAMEL( 199?, j5fairf , j5fair , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Fairground (JPM) (SYSTEM5, set 7)", GAME_FLAGS, layout_j5fairp ) -GAMEL( 199?, j5fairg , j5fair , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Fairground (JPM) (SYSTEM5, set 8)", GAME_FLAGS, layout_j5fairp ) -GAMEL( 199?, j5fairh , j5fair , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Fairground (JPM) (SYSTEM5, set 9)", GAME_FLAGS, layout_j5fairp ) -GAMEL( 199?, j5fairi , j5fair , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Fairground (JPM) (SYSTEM5, set 10)", GAME_FLAGS, layout_j5fairp ) -GAMEL( 199?, j5fairj , j5fair , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Fairground (JPM) (SYSTEM5, set 11)", GAME_FLAGS, layout_j5fairp ) -GAMEL( 199?, j5fairk , j5fair , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Fairground (JPM) (SYSTEM5, set 12)", GAME_FLAGS, layout_j5fairp ) -GAMEL( 199?, j5fairl , j5fair , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Fairground (JPM) (SYSTEM5, set 13)", GAME_FLAGS, layout_j5fairp ) -GAMEL( 199?, j5fairm , j5fair , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Fairground (JPM) (SYSTEM5, set 14)", GAME_FLAGS, layout_j5fairp ) -GAMEL( 199?, j5fairn , j5fair , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Fairground (JPM) (SYSTEM5, set 15)", GAME_FLAGS, layout_j5fairp ) -GAMEL( 199?, j5fairo , j5fair , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Fairground (JPM) (SYSTEM5, set 16)", GAME_FLAGS, layout_j5fairp ) -GAMEL( 199?, j5fairp , j5fair , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Fairground (JPM) (SYSTEM5, set 17)", GAME_FLAGS, layout_j5fairp ) -GAMEL( 199?, j5fairq , j5fair , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Fairground (JPM) (SYSTEM5, set 18)", GAME_FLAGS, layout_j5fairp ) - -GAME( 199?, j5filth , 0 , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Filthy Rich (JPM) (SYSTEM5, set 1)", GAME_FLAGS ) -GAME( 199?, j5filtha , j5filth , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Filthy Rich (JPM) (SYSTEM5, set 2)", GAME_FLAGS ) -GAME( 199?, j5filthb , j5filth , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Filthy Rich (JPM) (SYSTEM5, set 3)", GAME_FLAGS ) -GAME( 199?, j5filthc , j5filth , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Filthy Rich (JPM) (SYSTEM5, set 4)", GAME_FLAGS ) -GAME( 199?, j5filthd , j5filth , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Filthy Rich (JPM) (SYSTEM5, set 5)", GAME_FLAGS ) -GAME( 199?, j5filthe , j5filth , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Filthy Rich (JPM) (SYSTEM5, set 6)", GAME_FLAGS ) -GAME( 199?, j5filthf , j5filth , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Filthy Rich (JPM) (SYSTEM5, set 7)", GAME_FLAGS ) -GAME( 199?, j5filthg , j5filth , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Filthy Rich (JPM) (SYSTEM5, set 8)", GAME_FLAGS ) -GAME( 199?, j5filthh , j5filth , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Filthy Rich (JPM) (SYSTEM5, set 9)", GAME_FLAGS ) -GAME( 199?, j5filthi , j5filth , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Filthy Rich (JPM) (SYSTEM5, set 10)", GAME_FLAGS ) -GAME( 199?, j5filthj , j5filth , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Filthy Rich (JPM) (SYSTEM5, set 11)", GAME_FLAGS ) - - -GAME( 199?, j5hagar , 0 , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Hagar (JPM) (SYSTEM5, set 1)", GAME_FLAGS ) -GAME( 199?, j5hagara , j5hagar , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Hagar (JPM) (SYSTEM5, set 2)", GAME_FLAGS ) -GAME( 199?, j5hagarb , j5hagar , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Hagar (JPM) (SYSTEM5, set 3)", GAME_FLAGS ) -GAME( 199?, j5hagarc , j5hagar , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Hagar (JPM) (SYSTEM5, set 4)", GAME_FLAGS ) -GAME( 199?, j5hagard , j5hagar , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Hagar (JPM) (SYSTEM5, set 5)", GAME_FLAGS ) -GAME( 199?, j5hagare , j5hagar , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Hagar (JPM) (SYSTEM5, set 6)", GAME_FLAGS ) -GAME( 199?, j5hagarf , j5hagar , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Hagar (JPM) (SYSTEM5, set 7)", GAME_FLAGS ) -GAME( 199?, j5hagarg , j5hagar , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Hagar (JPM) (SYSTEM5, set 8)", GAME_FLAGS ) -GAME( 199?, j5hagarh , j5hagar , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Hagar (JPM) (SYSTEM5, set 9)", GAME_FLAGS ) -GAME( 199?, j5hagari , j5hagar , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Hagar (JPM) (SYSTEM5, set 10)", GAME_FLAGS ) -GAME( 199?, j5hagarj , j5hagar , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Hagar (JPM) (SYSTEM5, set 11)", GAME_FLAGS ) - -GAME( 199?, j5hagsho , 0 , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Hagar Showcase (JPM) (SYSTEM5, set 1)", GAME_FLAGS ) -GAME( 199?, j5hagshoa , j5hagsho , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Hagar Showcase (JPM) (SYSTEM5, set 2)", GAME_FLAGS ) -GAME( 199?, j5hagshob , j5hagsho , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Hagar Showcase (JPM) (SYSTEM5, set 3)", GAME_FLAGS ) -GAME( 199?, j5hagshoc , j5hagsho , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Hagar Showcase (JPM) (SYSTEM5, set 4)", GAME_FLAGS ) +GAME( 199?, j5ar80 , 0 , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Around The World In Eighty Days (JPM) (SYSTEM5, set 1)", GAME_FLAGS ) // This was also listed as by 'Crystal'. There was Crystal ROM in the set, but it wasn't an JPM SYS5 rom... +GAME( 199?, j5ar80a , j5ar80 , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Around The World In Eighty Days (JPM) (SYSTEM5, set 2)", GAME_FLAGS ) +GAME( 199?, j5ar80b , j5ar80 , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Around The World In Eighty Days (JPM) (SYSTEM5, set 3)", GAME_FLAGS ) +GAME( 199?, j5ar80c , j5ar80 , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Around The World In Eighty Days (JPM) (SYSTEM5, set 4)", GAME_FLAGS ) +GAME( 199?, j5ar80d , j5ar80 , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Around The World In Eighty Days (JPM) (SYSTEM5, set 5)", GAME_FLAGS ) + +GAMEL( 199?, j5ar80cl , 0 , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Around The World Club (JPM) (SYSTEM5, set 1)", GAME_FLAGS, layout_j5ar80cla ) +GAMEL( 199?, j5ar80cla , j5ar80cl , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Around The World Club (JPM) (SYSTEM5, set 2)", GAME_FLAGS, layout_j5ar80cla ) +GAMEL( 199?, j5ar80clb , j5ar80cl , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Around The World Club (JPM) (SYSTEM5, set 3)", GAME_FLAGS, layout_j5ar80cla ) +GAMEL( 199?, j5ar80clc , j5ar80cl , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Around The World Club (JPM) (SYSTEM5, set 4)", GAME_FLAGS, layout_j5ar80cla ) + +GAME( 199?, j5buc , 0 , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Buccaneer (JPM) (SYSTEM5)", GAME_FLAGS ) + +GAMEL( 199?, j5cir , 0 , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Circus (JPM) (SYSTEM5, set 1)", GAME_FLAGS, layout_j5cira ) +GAMEL( 199?, j5cira , j5cir , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Circus (JPM) (SYSTEM5, set 2)", GAME_FLAGS, layout_j5cira ) +GAMEL( 199?, j5cirb , j5cir , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Circus (JPM) (SYSTEM5, set 3)", GAME_FLAGS, layout_j5cira ) +GAMEL( 199?, j5circ , j5cir , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Circus (JPM) (SYSTEM5, set 4)", GAME_FLAGS, layout_j5cira ) +GAMEL( 199?, j5cird , j5cir , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Circus (JPM) (SYSTEM5, set 5)", GAME_FLAGS, layout_j5cira ) +GAMEL( 199?, j5cire , j5cir , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Circus (JPM) (SYSTEM5, set 6)", GAME_FLAGS, layout_j5cira ) + + +GAME( 199?, j5daytn , 0 , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Daytona (JPM) (SYSTEM5, set 1)", GAME_FLAGS ) +GAME( 199?, j5daytna , j5daytn , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Daytona (JPM) (SYSTEM5, set 2)", GAME_FLAGS ) + +GAME( 199?, j5daycls , 0 , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Daytona Classic (JPM) (SYSTEM5, set 1)", GAME_FLAGS ) +GAME( 199?, j5dayclsa , j5daycls , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Daytona Classic (JPM) (SYSTEM5, set 2)", GAME_FLAGS ) + +GAME( 199?, j5dirty , 0 , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Dirty Dozen (JPM) (SYSTEM5, set 1)", GAME_FLAGS ) +GAME( 199?, j5dirtya , j5dirty , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Dirty Dozen (JPM) (SYSTEM5, set 2)", GAME_FLAGS ) +GAME( 199?, j5dirtyb , j5dirty , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Dirty Dozen (JPM) (SYSTEM5, set 3)", GAME_FLAGS ) +GAME( 199?, j5dirtyc , j5dirty , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Dirty Dozen (JPM) (SYSTEM5, set 4)", GAME_FLAGS ) + +GAME( 199?, j5fairgd , 0 , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Fairground Attraction Club (JPM) (SYSTEM5, set 1)", GAME_FLAGS ) // or just 'Fairground' ? +GAME( 199?, j5fairgda , j5fairgd , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Fairground Attraction Club (JPM) (SYSTEM5, set 2)", GAME_FLAGS ) +GAME( 199?, j5fairgdb , j5fairgd , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Fairground Attraction Club (JPM) (SYSTEM5, set 3)", GAME_FLAGS ) +GAME( 199?, j5fairgdc , j5fairgd , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Fairground Attraction Club (JPM) (SYSTEM5, set 4)", GAME_FLAGS ) +GAME( 199?, j5fairgdd , j5fairgd , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Fairground Attraction Club (JPM) (SYSTEM5, set 5)", GAME_FLAGS ) +GAME( 199?, j5fairgde , j5fairgd , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Fairground Attraction Club (JPM) (SYSTEM5, set 6)", GAME_FLAGS ) + +GAMEL( 199?, j5fair , 0 , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Fairground (JPM) (SYSTEM5, set 1)", GAME_FLAGS, layout_j5fairp ) +GAMEL( 199?, j5faira , j5fair , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Fairground (JPM) (SYSTEM5, set 2)", GAME_FLAGS, layout_j5fairp ) +GAMEL( 199?, j5fairb , j5fair , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Fairground (JPM) (SYSTEM5, set 3)", GAME_FLAGS, layout_j5fairp ) +GAMEL( 199?, j5fairc , j5fair , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Fairground (JPM) (SYSTEM5, set 4)", GAME_FLAGS, layout_j5fairp ) +GAMEL( 199?, j5faird , j5fair , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Fairground (JPM) (SYSTEM5, set 5)", GAME_FLAGS, layout_j5fairp ) +GAMEL( 199?, j5faire , j5fair , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Fairground (JPM) (SYSTEM5, set 6)", GAME_FLAGS, layout_j5fairp ) +GAMEL( 199?, j5fairf , j5fair , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Fairground (JPM) (SYSTEM5, set 7)", GAME_FLAGS, layout_j5fairp ) +GAMEL( 199?, j5fairg , j5fair , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Fairground (JPM) (SYSTEM5, set 8)", GAME_FLAGS, layout_j5fairp ) +GAMEL( 199?, j5fairh , j5fair , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Fairground (JPM) (SYSTEM5, set 9)", GAME_FLAGS, layout_j5fairp ) +GAMEL( 199?, j5fairi , j5fair , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Fairground (JPM) (SYSTEM5, set 10)", GAME_FLAGS, layout_j5fairp ) +GAMEL( 199?, j5fairj , j5fair , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Fairground (JPM) (SYSTEM5, set 11)", GAME_FLAGS, layout_j5fairp ) +GAMEL( 199?, j5fairk , j5fair , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Fairground (JPM) (SYSTEM5, set 12)", GAME_FLAGS, layout_j5fairp ) +GAMEL( 199?, j5fairl , j5fair , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Fairground (JPM) (SYSTEM5, set 13)", GAME_FLAGS, layout_j5fairp ) +GAMEL( 199?, j5fairm , j5fair , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Fairground (JPM) (SYSTEM5, set 14)", GAME_FLAGS, layout_j5fairp ) +GAMEL( 199?, j5fairn , j5fair , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Fairground (JPM) (SYSTEM5, set 15)", GAME_FLAGS, layout_j5fairp ) +GAMEL( 199?, j5fairo , j5fair , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Fairground (JPM) (SYSTEM5, set 16)", GAME_FLAGS, layout_j5fairp ) +GAMEL( 199?, j5fairp , j5fair , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Fairground (JPM) (SYSTEM5, set 17)", GAME_FLAGS, layout_j5fairp ) +GAMEL( 199?, j5fairq , j5fair , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Fairground (JPM) (SYSTEM5, set 18)", GAME_FLAGS, layout_j5fairp ) + +GAME( 199?, j5filth , 0 , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Filthy Rich (JPM) (SYSTEM5, set 1)", GAME_FLAGS ) +GAME( 199?, j5filtha , j5filth , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Filthy Rich (JPM) (SYSTEM5, set 2)", GAME_FLAGS ) +GAME( 199?, j5filthb , j5filth , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Filthy Rich (JPM) (SYSTEM5, set 3)", GAME_FLAGS ) +GAME( 199?, j5filthc , j5filth , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Filthy Rich (JPM) (SYSTEM5, set 4)", GAME_FLAGS ) +GAME( 199?, j5filthd , j5filth , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Filthy Rich (JPM) (SYSTEM5, set 5)", GAME_FLAGS ) +GAME( 199?, j5filthe , j5filth , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Filthy Rich (JPM) (SYSTEM5, set 6)", GAME_FLAGS ) +GAME( 199?, j5filthf , j5filth , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Filthy Rich (JPM) (SYSTEM5, set 7)", GAME_FLAGS ) +GAME( 199?, j5filthg , j5filth , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Filthy Rich (JPM) (SYSTEM5, set 8)", GAME_FLAGS ) +GAME( 199?, j5filthh , j5filth , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Filthy Rich (JPM) (SYSTEM5, set 9)", GAME_FLAGS ) +GAME( 199?, j5filthi , j5filth , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Filthy Rich (JPM) (SYSTEM5, set 10)", GAME_FLAGS ) +GAME( 199?, j5filthj , j5filth , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Filthy Rich (JPM) (SYSTEM5, set 11)", GAME_FLAGS ) + + +GAME( 199?, j5hagar , 0 , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Hagar (JPM) (SYSTEM5, set 1)", GAME_FLAGS ) +GAME( 199?, j5hagara , j5hagar , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Hagar (JPM) (SYSTEM5, set 2)", GAME_FLAGS ) +GAME( 199?, j5hagarb , j5hagar , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Hagar (JPM) (SYSTEM5, set 3)", GAME_FLAGS ) +GAME( 199?, j5hagarc , j5hagar , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Hagar (JPM) (SYSTEM5, set 4)", GAME_FLAGS ) +GAME( 199?, j5hagard , j5hagar , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Hagar (JPM) (SYSTEM5, set 5)", GAME_FLAGS ) +GAME( 199?, j5hagare , j5hagar , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Hagar (JPM) (SYSTEM5, set 6)", GAME_FLAGS ) +GAME( 199?, j5hagarf , j5hagar , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Hagar (JPM) (SYSTEM5, set 7)", GAME_FLAGS ) +GAME( 199?, j5hagarg , j5hagar , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Hagar (JPM) (SYSTEM5, set 8)", GAME_FLAGS ) +GAME( 199?, j5hagarh , j5hagar , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Hagar (JPM) (SYSTEM5, set 9)", GAME_FLAGS ) +GAME( 199?, j5hagari , j5hagar , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Hagar (JPM) (SYSTEM5, set 10)", GAME_FLAGS ) +GAME( 199?, j5hagarj , j5hagar , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Hagar (JPM) (SYSTEM5, set 11)", GAME_FLAGS ) + +GAME( 199?, j5hagsho , 0 , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Hagar Showcase (JPM) (SYSTEM5, set 1)", GAME_FLAGS ) +GAME( 199?, j5hagshoa , j5hagsho , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Hagar Showcase (JPM) (SYSTEM5, set 2)", GAME_FLAGS ) +GAME( 199?, j5hagshob , j5hagsho , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Hagar Showcase (JPM) (SYSTEM5, set 3)", GAME_FLAGS ) +GAME( 199?, j5hagshoc , j5hagsho , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Hagar Showcase (JPM) (SYSTEM5, set 4)", GAME_FLAGS ) -GAMEL( 199?, j5holly , 0 , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Hollywood Nights (JPM) (SYSTEM5, set 1)", GAME_FLAGS, layout_j5hollyc ) -GAMEL( 199?, j5hollya , j5holly , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Hollywood Nights (JPM) (SYSTEM5, set 2)", GAME_FLAGS, layout_j5hollyc ) -GAMEL( 199?, j5hollyb , j5holly , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Hollywood Nights (JPM) (SYSTEM5, set 3)", GAME_FLAGS, layout_j5hollyc ) -GAMEL( 199?, j5hollyc , j5holly , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Hollywood Nights (JPM) (SYSTEM5, set 4)", GAME_FLAGS, layout_j5hollyc ) -GAMEL( 199?, j5hollyd , j5holly , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Hollywood Nights (JPM) (SYSTEM5, set 5)", GAME_FLAGS, layout_j5hollyc ) -GAMEL( 199?, j5hollye , j5holly , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Hollywood Nights (JPM) (SYSTEM5, set 6)", GAME_FLAGS, layout_j5hollyc ) +GAMEL( 199?, j5holly , 0 , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Hollywood Nights (JPM) (SYSTEM5, set 1)", GAME_FLAGS, layout_j5hollyc ) +GAMEL( 199?, j5hollya , j5holly , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Hollywood Nights (JPM) (SYSTEM5, set 2)", GAME_FLAGS, layout_j5hollyc ) +GAMEL( 199?, j5hollyb , j5holly , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Hollywood Nights (JPM) (SYSTEM5, set 3)", GAME_FLAGS, layout_j5hollyc ) +GAMEL( 199?, j5hollyc , j5holly , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Hollywood Nights (JPM) (SYSTEM5, set 4)", GAME_FLAGS, layout_j5hollyc ) +GAMEL( 199?, j5hollyd , j5holly , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Hollywood Nights (JPM) (SYSTEM5, set 5)", GAME_FLAGS, layout_j5hollyc ) +GAMEL( 199?, j5hollye , j5holly , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Hollywood Nights (JPM) (SYSTEM5, set 6)", GAME_FLAGS, layout_j5hollyc ) -GAMEL( 199?, j5hotdog , 0 , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Hot Dogs (JPM) (SYSTEM5, set 1)", GAME_FLAGS, layout_j5hotdoga ) -GAMEL( 199?, j5hotdoga , j5hotdog , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Hot Dogs (JPM) (SYSTEM5, set 2)", GAME_FLAGS, layout_j5hotdoga ) +GAMEL( 199?, j5hotdog , 0 , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Hot Dogs (JPM) (SYSTEM5, set 1)", GAME_FLAGS, layout_j5hotdoga ) +GAMEL( 199?, j5hotdoga , j5hotdog , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Hot Dogs (JPM) (SYSTEM5, set 2)", GAME_FLAGS, layout_j5hotdoga ) -GAMEL( 199?, j5indsum , 0 , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Indian Summer (JPM) (SYSTEM5)", GAME_FLAGS, layout_j5indsum ) - - -GAMEL( 199?, j5intr , 0 , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Intrigue (JPM) (SYSTEM5, set 1)", GAME_FLAGS, layout_j5intr ) -GAMEL( 199?, j5intra , j5intr , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Intrigue (JPM) (SYSTEM5, set 2)", GAME_FLAGS, layout_j5intr ) -GAMEL( 199?, j5intrb , j5intr , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Intrigue (JPM) (SYSTEM5, set 3)", GAME_FLAGS, layout_j5intr ) -GAMEL( 199?, j5intrc , j5intr , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Intrigue (JPM) (SYSTEM5, set 4)", GAME_FLAGS, layout_j5intr ) - -GAME( 199?, j5jokgld , 0 , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Jokers Gold (JPM) (SYSTEM5, set 1)", GAME_FLAGS ) -GAME( 199?, j5jokglda , j5jokgld , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Jokers Gold (JPM) (SYSTEM5, set 2)", GAME_FLAGS ) -GAME( 199?, j5jokgldb , j5jokgld , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Jokers Gold (JPM) (SYSTEM5, set 3)", GAME_FLAGS ) -GAME( 199?, j5jokgldc , j5jokgld , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Jokers Gold (JPM) (SYSTEM5, set 4)", GAME_FLAGS ) -GAME( 199?, j5jokgldd , j5jokgld , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Jokers Gold (JPM) (SYSTEM5, set 5)", GAME_FLAGS ) -GAME( 199?, j5jokglde , j5jokgld , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Jokers Gold (JPM) (SYSTEM5, set 6)", GAME_FLAGS ) -GAME( 199?, j5jokgldf , j5jokgld , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Jokers Gold (JPM) (SYSTEM5, set 7)", GAME_FLAGS ) -GAME( 199?, j5jokgldg , j5jokgld , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Jokers Gold (JPM) (SYSTEM5, set 8)", GAME_FLAGS ) -GAME( 199?, j5jokgldh , j5jokgld , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Jokers Gold (JPM) (SYSTEM5, set 9)", GAME_FLAGS ) - -GAMEL( 199?, j5nite , 0 , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Nite Club (JPM) (SYSTEM5, set 1)", GAME_FLAGS, layout_j5nite ) -GAMEL( 199?, j5nitea , j5nite , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Nite Club (JPM) (SYSTEM5, set 2)", GAME_FLAGS, layout_j5nite ) - -GAMEL( 199?, j5palm , 0 , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Palm Springs (JPM) (SYSTEM5, set 1)", GAME_FLAGS, layout_j5palma ) // doesn't behave well -GAMEL( 199?, j5palma , j5palm , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Palm Springs (JPM) (SYSTEM5, set 2)", GAME_FLAGS, layout_j5palma ) - -GAME( 199?, j5phnx , 0 , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Phoenix (JPM) (SYSTEM5, set 1)", GAME_FLAGS ) -GAME( 199?, j5phnxa , j5phnx , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Phoenix (JPM) (SYSTEM5, set 2)", GAME_FLAGS ) - -GAMEL( 199?, j5popeye , 0 , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Popeye (JPM) (SYSTEM5, set 1)", GAME_FLAGS, layout_j5popeye ) // (20p/8 GBP Token) ? -GAMEL( 199?, j5popeyea , j5popeye , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Popeye (JPM) (SYSTEM5, set 2)", GAME_FLAGS, layout_j5popeye ) -GAMEL( 199?, j5popeyeb , j5popeye , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Popeye (JPM) (SYSTEM5, set 3)", GAME_FLAGS, layout_j5popeye ) -GAMEL( 199?, j5popeyec , j5popeye , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Popeye (JPM) (SYSTEM5, set 4)", GAME_FLAGS, layout_j5popeye ) -GAMEL( 199?, j5popeyed , j5popeye , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Popeye (JPM) (SYSTEM5, set 5)", GAME_FLAGS, layout_j5popeye ) -GAMEL( 199?, j5popeyee , j5popeye , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Popeye (JPM) (SYSTEM5, set 6)", GAME_FLAGS, layout_j5popeye ) -GAMEL( 199?, j5popeyef , j5popeye , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Popeye (JPM) (SYSTEM5, set 7)", GAME_FLAGS, layout_j5popeye ) -GAMEL( 199?, j5popeyeg , j5popeye , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Popeye (JPM) (SYSTEM5, set 8)", GAME_FLAGS, layout_j5popeye ) -GAMEL( 199?, j5popeyeh , j5popeye , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Popeye (JPM) (SYSTEM5, set 9)", GAME_FLAGS, layout_j5popeye ) -GAMEL( 199?, j5popeyei , j5popeye , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Popeye (JPM) (SYSTEM5, set 10)", GAME_FLAGS, layout_j5popeye ) - -GAME( 199?, j5popth , 0 , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Popeye's Treasure Hunt (JPM) (SYSTEM5, set 1)", GAME_FLAGS ) -GAME( 199?, j5poptha , j5popth , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Popeye's Treasure Hunt (JPM) (SYSTEM5, set 2)", GAME_FLAGS ) -GAME( 199?, j5popthb , j5popth , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Popeye's Treasure Hunt (JPM) (SYSTEM5, set 3)", GAME_FLAGS ) - -GAME( 199?, j5popprz , 0 , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Prize Popeye Vending (JPM) (SYSTEM5, set 1)", GAME_FLAGS ) -GAME( 199?, j5popprza , j5popprz , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Prize Popeye Vending (JPM) (SYSTEM5, set 2)", GAME_FLAGS ) - - -GAME( 199?, j5roul , 0 , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Roulette (JPM) (SYSTEM5)", GAME_FLAGS ) +GAMEL( 199?, j5indsum , 0 , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Indian Summer (JPM) (SYSTEM5)", GAME_FLAGS, layout_j5indsum ) + + +GAMEL( 199?, j5intr , 0 , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Intrigue (JPM) (SYSTEM5, set 1)", GAME_FLAGS, layout_j5intr ) +GAMEL( 199?, j5intra , j5intr , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Intrigue (JPM) (SYSTEM5, set 2)", GAME_FLAGS, layout_j5intr ) +GAMEL( 199?, j5intrb , j5intr , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Intrigue (JPM) (SYSTEM5, set 3)", GAME_FLAGS, layout_j5intr ) +GAMEL( 199?, j5intrc , j5intr , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Intrigue (JPM) (SYSTEM5, set 4)", GAME_FLAGS, layout_j5intr ) + +GAME( 199?, j5jokgld , 0 , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Jokers Gold (JPM) (SYSTEM5, set 1)", GAME_FLAGS ) +GAME( 199?, j5jokglda , j5jokgld , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Jokers Gold (JPM) (SYSTEM5, set 2)", GAME_FLAGS ) +GAME( 199?, j5jokgldb , j5jokgld , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Jokers Gold (JPM) (SYSTEM5, set 3)", GAME_FLAGS ) +GAME( 199?, j5jokgldc , j5jokgld , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Jokers Gold (JPM) (SYSTEM5, set 4)", GAME_FLAGS ) +GAME( 199?, j5jokgldd , j5jokgld , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Jokers Gold (JPM) (SYSTEM5, set 5)", GAME_FLAGS ) +GAME( 199?, j5jokglde , j5jokgld , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Jokers Gold (JPM) (SYSTEM5, set 6)", GAME_FLAGS ) +GAME( 199?, j5jokgldf , j5jokgld , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Jokers Gold (JPM) (SYSTEM5, set 7)", GAME_FLAGS ) +GAME( 199?, j5jokgldg , j5jokgld , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Jokers Gold (JPM) (SYSTEM5, set 8)", GAME_FLAGS ) +GAME( 199?, j5jokgldh , j5jokgld , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Jokers Gold (JPM) (SYSTEM5, set 9)", GAME_FLAGS ) + +GAMEL( 199?, j5nite , 0 , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Nite Club (JPM) (SYSTEM5, set 1)", GAME_FLAGS, layout_j5nite ) +GAMEL( 199?, j5nitea , j5nite , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Nite Club (JPM) (SYSTEM5, set 2)", GAME_FLAGS, layout_j5nite ) + +GAMEL( 199?, j5palm , 0 , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Palm Springs (JPM) (SYSTEM5, set 1)", GAME_FLAGS, layout_j5palma ) // doesn't behave well +GAMEL( 199?, j5palma , j5palm , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Palm Springs (JPM) (SYSTEM5, set 2)", GAME_FLAGS, layout_j5palma ) + +GAME( 199?, j5phnx , 0 , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Phoenix (JPM) (SYSTEM5, set 1)", GAME_FLAGS ) +GAME( 199?, j5phnxa , j5phnx , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Phoenix (JPM) (SYSTEM5, set 2)", GAME_FLAGS ) + +GAMEL( 199?, j5popeye , 0 , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Popeye (JPM) (SYSTEM5, set 1)", GAME_FLAGS, layout_j5popeye ) // (20p/8 GBP Token) ? +GAMEL( 199?, j5popeyea , j5popeye , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Popeye (JPM) (SYSTEM5, set 2)", GAME_FLAGS, layout_j5popeye ) +GAMEL( 199?, j5popeyeb , j5popeye , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Popeye (JPM) (SYSTEM5, set 3)", GAME_FLAGS, layout_j5popeye ) +GAMEL( 199?, j5popeyec , j5popeye , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Popeye (JPM) (SYSTEM5, set 4)", GAME_FLAGS, layout_j5popeye ) +GAMEL( 199?, j5popeyed , j5popeye , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Popeye (JPM) (SYSTEM5, set 5)", GAME_FLAGS, layout_j5popeye ) +GAMEL( 199?, j5popeyee , j5popeye , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Popeye (JPM) (SYSTEM5, set 6)", GAME_FLAGS, layout_j5popeye ) +GAMEL( 199?, j5popeyef , j5popeye , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Popeye (JPM) (SYSTEM5, set 7)", GAME_FLAGS, layout_j5popeye ) +GAMEL( 199?, j5popeyeg , j5popeye , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Popeye (JPM) (SYSTEM5, set 8)", GAME_FLAGS, layout_j5popeye ) +GAMEL( 199?, j5popeyeh , j5popeye , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Popeye (JPM) (SYSTEM5, set 9)", GAME_FLAGS, layout_j5popeye ) +GAMEL( 199?, j5popeyei , j5popeye , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Popeye (JPM) (SYSTEM5, set 10)", GAME_FLAGS, layout_j5popeye ) + +GAME( 199?, j5popth , 0 , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Popeye's Treasure Hunt (JPM) (SYSTEM5, set 1)", GAME_FLAGS ) +GAME( 199?, j5poptha , j5popth , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Popeye's Treasure Hunt (JPM) (SYSTEM5, set 2)", GAME_FLAGS ) +GAME( 199?, j5popthb , j5popth , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Popeye's Treasure Hunt (JPM) (SYSTEM5, set 3)", GAME_FLAGS ) + +GAME( 199?, j5popprz , 0 , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Prize Popeye Vending (JPM) (SYSTEM5, set 1)", GAME_FLAGS ) +GAME( 199?, j5popprza , j5popprz , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Prize Popeye Vending (JPM) (SYSTEM5, set 2)", GAME_FLAGS ) + + +GAME( 199?, j5roul , 0 , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Roulette (JPM) (SYSTEM5)", GAME_FLAGS ) -GAME( 199?, j5roulcl , 0 , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Roulette Club (JPM) (SYSTEM5, set 1)", GAME_FLAGS ) -GAME( 199?, j5roulcla , j5roulcl , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Roulette Club (JPM) (SYSTEM5, set 2)", GAME_FLAGS ) -GAME( 199?, j5roulclb , j5roulcl , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Roulette Club (JPM) (SYSTEM5, set 3)", GAME_FLAGS ) -GAME( 199?, j5roulclc , j5roulcl , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Roulette Club (JPM) (SYSTEM5, set 4)", GAME_FLAGS ) +GAME( 199?, j5roulcl , 0 , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Roulette Club (JPM) (SYSTEM5, set 1)", GAME_FLAGS ) +GAME( 199?, j5roulcla , j5roulcl , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Roulette Club (JPM) (SYSTEM5, set 2)", GAME_FLAGS ) +GAME( 199?, j5roulclb , j5roulcl , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Roulette Club (JPM) (SYSTEM5, set 3)", GAME_FLAGS ) +GAME( 199?, j5roulclc , j5roulcl , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Roulette Club (JPM) (SYSTEM5, set 4)", GAME_FLAGS ) -GAME( 199?, j5slvree , 0 , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Silver Reels (JPM) (SYSTEM5, set 1)", GAME_FLAGS ) -GAME( 199?, j5slvreea , j5slvree , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Silver Reels (JPM) (SYSTEM5, set 2)", GAME_FLAGS ) +GAME( 199?, j5slvree , 0 , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Silver Reels (JPM) (SYSTEM5, set 1)", GAME_FLAGS ) +GAME( 199?, j5slvreea , j5slvree , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Silver Reels (JPM) (SYSTEM5, set 2)", GAME_FLAGS ) -GAME( 199?, j5slvstr , 0 , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Silver Streak (JPM) (SYSTEM5, set 1)", GAME_FLAGS ) -GAME( 199?, j5slvstra , j5slvstr , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Silver Streak (JPM) (SYSTEM5, set 2)", GAME_FLAGS ) -GAME( 199?, j5slvstrb , j5slvstr , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Silver Streak (JPM) (SYSTEM5, set 3)", GAME_FLAGS ) +GAME( 199?, j5slvstr , 0 , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Silver Streak (JPM) (SYSTEM5, set 1)", GAME_FLAGS ) +GAME( 199?, j5slvstra , j5slvstr , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Silver Streak (JPM) (SYSTEM5, set 2)", GAME_FLAGS ) +GAME( 199?, j5slvstrb , j5slvstr , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Silver Streak (JPM) (SYSTEM5, set 3)", GAME_FLAGS ) -GAME( 199?, j5street , 0 , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Streetwise (JPM) (SYSTEM5)", GAME_FLAGS ) // doesn't behave well +GAME( 199?, j5street , 0 , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Streetwise (JPM) (SYSTEM5)", GAME_FLAGS ) // doesn't behave well -GAMEL( 199?, j5supbar , 0 , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Super Bars (JPM) (SYSTEM5, set 1)", GAME_FLAGS, layout_j5supbara ) -GAMEL( 199?, j5supbara , j5supbar , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Super Bars (JPM) (SYSTEM5, set 2)", GAME_FLAGS, layout_j5supbara ) +GAMEL( 199?, j5supbar , 0 , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Super Bars (JPM) (SYSTEM5, set 1)", GAME_FLAGS, layout_j5supbara ) +GAMEL( 199?, j5supbara , j5supbar , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Super Bars (JPM) (SYSTEM5, set 2)", GAME_FLAGS, layout_j5supbara ) -GAMEL( 199?, j5term , 0 , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Terminator (JPM) (SYSTEM5)", GAME_FLAGS, layout_j5term ) +GAMEL( 199?, j5term , 0 , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Terminator (JPM) (SYSTEM5)", GAME_FLAGS, layout_j5term ) -GAMEL( 199?, j5topshp , 0 , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Top Of The Shop Club (JPM) (SYSTEM5)", GAME_FLAGS, layout_j5topshp ) +GAMEL( 199?, j5topshp , 0 , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Top Of The Shop Club (JPM) (SYSTEM5)", GAME_FLAGS, layout_j5topshp ) -GAMEL( 199?, j5trail , 0 , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Trailblazer Club (JPM) (SYSTEM5, set 1)", GAME_FLAGS, layout_j5trail ) -GAMEL( 199?, j5traila , j5trail , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Trailblazer Club (JPM) (SYSTEM5, set 2)", GAME_FLAGS, layout_j5trail ) -GAMEL( 199?, j5trailb , j5trail , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Trailblazer Club (JPM) (SYSTEM5, set 3)", GAME_FLAGS, layout_j5trail ) +GAMEL( 199?, j5trail , 0 , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Trailblazer Club (JPM) (SYSTEM5, set 1)", GAME_FLAGS, layout_j5trail ) +GAMEL( 199?, j5traila , j5trail , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Trailblazer Club (JPM) (SYSTEM5, set 2)", GAME_FLAGS, layout_j5trail ) +GAMEL( 199?, j5trailb , j5trail , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Trailblazer Club (JPM) (SYSTEM5, set 3)", GAME_FLAGS, layout_j5trail ) -GAMEL( 199?, j5uj , 0 , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Union Jackpot (JPM) (SYSTEM5, set 1)", GAME_FLAGS, layout_j5ujb ) -GAMEL( 199?, j5uja , j5uj , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Union Jackpot (JPM) (SYSTEM5, set 2)", GAME_FLAGS, layout_j5ujb ) -GAMEL( 199?, j5ujb , j5uj , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Union Jackpot (JPM) (SYSTEM5, set 3)", GAME_FLAGS, layout_j5ujb ) +GAMEL( 199?, j5uj , 0 , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Union Jackpot (JPM) (SYSTEM5, set 1)", GAME_FLAGS, layout_j5ujb ) +GAMEL( 199?, j5uja , j5uj , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Union Jackpot (JPM) (SYSTEM5, set 2)", GAME_FLAGS, layout_j5ujb ) +GAMEL( 199?, j5ujb , j5uj , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Union Jackpot (JPM) (SYSTEM5, set 3)", GAME_FLAGS, layout_j5ujb ) -GAMEL( 199?, j5wsc , 0 , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Wall Street Club (JPM) (SYSTEM5, set 1)", GAME_FLAGS, layout_j5wsc ) -GAMEL( 199?, j5wsca , j5wsc , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Wall Street Club (JPM) (SYSTEM5, set 2)", GAME_FLAGS, layout_j5wsc ) +GAMEL( 199?, j5wsc , 0 , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Wall Street Club (JPM) (SYSTEM5, set 1)", GAME_FLAGS, layout_j5wsc ) +GAMEL( 199?, j5wsca , j5wsc , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Wall Street Club (JPM) (SYSTEM5, set 2)", GAME_FLAGS, layout_j5wsc ) -GAMEL( 199?, j5movie , 0 , jpmsys5_ym, popeye, driver_device, 0, ROT0, "Crystal", "Movie Magic Club (Crystal) (SYSTEM5)", GAME_FLAGS, layout_j5movie ) // apparently by Crystal +GAMEL( 199?, j5movie , 0 , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "Crystal", "Movie Magic Club (Crystal) (SYSTEM5)", GAME_FLAGS, layout_j5movie ) // apparently by Crystal -GAME( 199?, j5nudfic , 0 , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Nudge Fiction (JPM) (SYSTEM5)", GAME_FLAGS ) +GAME( 199?, j5nudfic , 0 , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Nudge Fiction (JPM) (SYSTEM5)", GAME_FLAGS ) -GAME( 199?, j5revo , 0 , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Revolver (JPM) (SYSTEM5, set 1)", GAME_FLAGS ) -GAME( 199?, j5revoa , j5revo , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Revolver (JPM) (SYSTEM5, set 2)", GAME_FLAGS ) +GAME( 199?, j5revo , 0 , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Revolver (JPM) (SYSTEM5, set 1)", GAME_FLAGS ) +GAME( 199?, j5revoa , j5revo , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Revolver (JPM) (SYSTEM5, set 2)", GAME_FLAGS ) -GAMEL( 199?, j5sizl , 0 , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Sizzling (JPM) (SYSTEM5)", GAME_FLAGS, layout_j5sizl ) +GAMEL( 199?, j5sizl , 0 , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Sizzling (JPM) (SYSTEM5)", GAME_FLAGS, layout_j5sizl ) -GAME( 199?, j5hilos , 0 , jpmsys5_ym, popeye, driver_device, 0, ROT0, "JPM", "Hi Lo Silver (JPM) (SYSTEM5)", GAME_FLAGS ) +GAME( 199?, j5hilos , 0 , jpmsys5_ym, popeye, jpmsys5_state, 0, ROT0, "JPM", "Hi Lo Silver (JPM) (SYSTEM5)", GAME_FLAGS ) diff --git a/src/mame/drivers/jpmsys7.cpp b/src/mame/drivers/jpmsys7.cpp index 87232a18117..8f7c2a323ed 100644 --- a/src/mame/drivers/jpmsys7.cpp +++ b/src/mame/drivers/jpmsys7.cpp @@ -52,7 +52,7 @@ ADDRESS_MAP_END static INPUT_PORTS_START( jpmsys7 ) INPUT_PORTS_END -static MACHINE_CONFIG_START( jpmsys7, jpmsys7_state ) +static MACHINE_CONFIG_START( jpmsys7 ) MCFG_CPU_ADD("maincpu", MCF5206E, 40000000) // seems to be a Coldfire of some kind MCFG_CPU_PROGRAM_MAP(jpmsys7_map) MCFG_MCF5206E_PERIPHERAL_ADD("maincpu_onboard") @@ -225,15 +225,15 @@ ROM_START( j7bullio ) ROM_END -GAME( 200?, j7bmagic ,0, jpmsys7, jpmsys7, driver_device, 0, ROT0, "JPM","Black Magic (JPM)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 200?, j7cexprs ,0, jpmsys7, jpmsys7, driver_device, 0, ROT0, "JPM","Cash Xpress (JPM)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 200?, j7crztrl ,0, jpmsys7, jpmsys7, driver_device, 0, ROT0, "JPM","Crazy Trails (JPM)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 200?, j7fantaz ,0, jpmsys7, jpmsys7, driver_device, 0, ROT0, "JPM","Fantaztec (JPM)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 200?, j7kerchn ,0, jpmsys7, jpmsys7, driver_device, 0, ROT0, "JPM","Ker - Chinq (JPM)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 200?, j7razzma ,0, jpmsys7, jpmsys7, driver_device, 0, ROT0, "JPM","Razzamataz (JPM) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 200?, j7razzmaa ,j7razzma, jpmsys7, jpmsys7, driver_device, 0, ROT0, "JPM","Razzamataz (JPM) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 200?, j7r2roll ,0, jpmsys7, jpmsys7, driver_device, 0, ROT0, "JPM","Ready To Roll (JPM)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 200?, j7tubgld ,0, jpmsys7, jpmsys7, driver_device, 0, ROT0, "JPM","Turbo Gold (JPM)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 200?, j7wldwkd ,0, jpmsys7, jpmsys7, driver_device, 0, ROT0, "JPM","Wild 'N' Wicked (JPM)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 200?, j7bullio ,0, jpmsys7, jpmsys7, driver_device, 0, ROT0, "Ace","Bullionaire (Ace)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 200?, j7clbmag ,0, jpmsys7, jpmsys7, driver_device, 0, ROT0, "Qps","Club Magic (JPM)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 200?, j7bmagic ,0, jpmsys7, jpmsys7, jpmsys7_state, 0, ROT0, "JPM","Black Magic (JPM)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 200?, j7cexprs ,0, jpmsys7, jpmsys7, jpmsys7_state, 0, ROT0, "JPM","Cash Xpress (JPM)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 200?, j7crztrl ,0, jpmsys7, jpmsys7, jpmsys7_state, 0, ROT0, "JPM","Crazy Trails (JPM)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 200?, j7fantaz ,0, jpmsys7, jpmsys7, jpmsys7_state, 0, ROT0, "JPM","Fantaztec (JPM)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 200?, j7kerchn ,0, jpmsys7, jpmsys7, jpmsys7_state, 0, ROT0, "JPM","Ker - Chinq (JPM)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 200?, j7razzma ,0, jpmsys7, jpmsys7, jpmsys7_state, 0, ROT0, "JPM","Razzamataz (JPM) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 200?, j7razzmaa ,j7razzma, jpmsys7, jpmsys7, jpmsys7_state, 0, ROT0, "JPM","Razzamataz (JPM) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 200?, j7r2roll ,0, jpmsys7, jpmsys7, jpmsys7_state, 0, ROT0, "JPM","Ready To Roll (JPM)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 200?, j7tubgld ,0, jpmsys7, jpmsys7, jpmsys7_state, 0, ROT0, "JPM","Turbo Gold (JPM)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 200?, j7wldwkd ,0, jpmsys7, jpmsys7, jpmsys7_state, 0, ROT0, "JPM","Wild 'N' Wicked (JPM)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 200?, j7bullio ,0, jpmsys7, jpmsys7, jpmsys7_state, 0, ROT0, "Ace","Bullionaire (Ace)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 200?, j7clbmag ,0, jpmsys7, jpmsys7, jpmsys7_state, 0, ROT0, "Qps","Club Magic (JPM)", MACHINE_IS_SKELETON_MECHANICAL ) diff --git a/src/mame/drivers/jr100.cpp b/src/mame/drivers/jr100.cpp index 9276ee528af..99c469c80a4 100644 --- a/src/mame/drivers/jr100.cpp +++ b/src/mame/drivers/jr100.cpp @@ -364,7 +364,7 @@ QUICKLOAD_LOAD_MEMBER( jr100_state,jr100) return image_init_result::PASS; } -static MACHINE_CONFIG_START( jr100, jr100_state ) +static MACHINE_CONFIG_START( jr100 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",M6802, XTAL_14_31818MHz / 4) // clock devided internaly by 4 @@ -420,6 +420,6 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1981, jr100, 0, 0, jr100, jr100, driver_device, 0, "National", "JR-100", 0) -COMP( 1981, jr100u, jr100, 0, jr100, jr100, driver_device, 0, "Panasonic", "JR-100U", 0) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1981, jr100, 0, 0, jr100, jr100, jr100_state, 0, "National", "JR-100", 0 ) +COMP( 1981, jr100u, jr100, 0, jr100, jr100, jr100_state, 0, "Panasonic", "JR-100U", 0 ) diff --git a/src/mame/drivers/jr200.cpp b/src/mame/drivers/jr200.cpp index 21d92e7903b..1050335963b 100644 --- a/src/mame/drivers/jr200.cpp +++ b/src/mame/drivers/jr200.cpp @@ -532,7 +532,7 @@ void jr200_state::machine_reset() } -static MACHINE_CONFIG_START( jr200, jr200_state ) +static MACHINE_CONFIG_START( jr200 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6802, XTAL_14_31818MHz / 4) /* MN1800A, ? Mhz assumption that it is same as JR-100*/ MCFG_CPU_PROGRAM_MAP(jr200_mem) @@ -596,6 +596,6 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1982, jr200, 0, 0, jr200, jr200, driver_device, 0, "National", "JR-200", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -COMP( 1982, jr200u, jr200, 0, jr200, jr200, driver_device, 0, "Panasonic", "JR-200U", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1982, jr200, 0, 0, jr200, jr200, jr200_state, 0, "National", "JR-200", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +COMP( 1982, jr200u, jr200, 0, jr200, jr200, jr200_state, 0, "Panasonic", "JR-200U", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) diff --git a/src/mame/drivers/jrpacman.cpp b/src/mame/drivers/jrpacman.cpp index 7484ab4c550..792915d0a79 100644 --- a/src/mame/drivers/jrpacman.cpp +++ b/src/mame/drivers/jrpacman.cpp @@ -275,7 +275,7 @@ INTERRUPT_GEN_MEMBER(jrpacman_state::vblank_irq) device.execute().set_input_line(0, HOLD_LINE); } -static MACHINE_CONFIG_START( jrpacman, jrpacman_state ) +static MACHINE_CONFIG_START( jrpacman ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 18432000/6) /* 3.072 MHz */ diff --git a/src/mame/drivers/jtc.cpp b/src/mame/drivers/jtc.cpp index 8618b25e7db..d8fd6fc83a5 100644 --- a/src/mame/drivers/jtc.cpp +++ b/src/mame/drivers/jtc.cpp @@ -720,7 +720,7 @@ static GFXDECODE_START( jtces40 ) GFXDECODE_ENTRY( UB8830D_TAG, 0x1000, jtces40_charlayout, 0, 8 ) GFXDECODE_END -static MACHINE_CONFIG_START( basic, jtc_state ) +static MACHINE_CONFIG_START( basic ) /* basic machine hardware */ MCFG_CPU_ADD(UB8830D_TAG, UB8830D, XTAL_8MHz) MCFG_CPU_PROGRAM_MAP(jtc_mem) @@ -760,7 +760,7 @@ static MACHINE_CONFIG_DERIVED( jtc, basic ) MCFG_RAM_DEFAULT_SIZE("2K") MACHINE_CONFIG_END -static MACHINE_CONFIG_DERIVED_CLASS( jtces88, jtc, jtces88_state ) +static MACHINE_CONFIG_DERIVED( jtces88, jtc ) /* basic machine hardware */ MCFG_CPU_MODIFY(UB8830D_TAG) MCFG_CPU_PROGRAM_MAP(jtc_es1988_mem) @@ -770,7 +770,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( jtces88, jtc, jtces88_state ) MCFG_RAM_DEFAULT_SIZE("4K") MACHINE_CONFIG_END -static MACHINE_CONFIG_DERIVED_CLASS( jtces23, basic, jtces23_state ) +static MACHINE_CONFIG_DERIVED( jtces23, basic ) /* basic machine hardware */ MCFG_CPU_MODIFY(UB8830D_TAG) MCFG_CPU_PROGRAM_MAP(jtc_es23_mem) @@ -792,7 +792,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( jtces23, basic, jtces23_state ) MCFG_RAM_DEFAULT_SIZE("4K") MACHINE_CONFIG_END -static MACHINE_CONFIG_DERIVED_CLASS( jtces40, basic, jtces40_state ) +static MACHINE_CONFIG_DERIVED( jtces40, basic ) /* basic machine hardware */ MCFG_CPU_MODIFY(UB8830D_TAG) MCFG_CPU_PROGRAM_MAP(jtc_es40_mem) @@ -846,8 +846,8 @@ ROM_END /* System Drivers */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1987, jtc, 0, 0, jtc, jtc, driver_device, 0, "Jugend+Technik", "CompJU+TEr", MACHINE_NOT_WORKING ) -COMP( 1988, jtces88, jtc, 0, jtces88,jtc, driver_device, 0, "Jugend+Technik", "CompJU+TEr (EMR-ES 1988)", MACHINE_NOT_WORKING ) -COMP( 1989, jtces23, jtc, 0, jtces23,jtces23, driver_device, 0, "Jugend+Technik", "CompJU+TEr (ES 2.3)", MACHINE_NOT_WORKING ) -COMP( 1990, jtces40, jtc, 0, jtces40,jtces40, driver_device, 0, "Jugend+Technik", "CompJU+TEr (ES 4.0)", MACHINE_NOT_WORKING ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +COMP( 1987, jtc, 0, 0, jtc, jtc, jtc_state, 0, "Jugend+Technik", "CompJU+TEr", MACHINE_NOT_WORKING ) +COMP( 1988, jtces88, jtc, 0, jtces88,jtc, jtces88_state, 0, "Jugend+Technik", "CompJU+TEr (EMR-ES 1988)", MACHINE_NOT_WORKING ) +COMP( 1989, jtces23, jtc, 0, jtces23,jtces23, jtces23_state, 0, "Jugend+Technik", "CompJU+TEr (ES 2.3)", MACHINE_NOT_WORKING ) +COMP( 1990, jtces40, jtc, 0, jtces40,jtces40, jtces40_state, 0, "Jugend+Technik", "CompJU+TEr (ES 4.0)", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/jubilee.cpp b/src/mame/drivers/jubilee.cpp index 79bd3f9383e..93bf71f8549 100644 --- a/src/mame/drivers/jubilee.cpp +++ b/src/mame/drivers/jubilee.cpp @@ -656,7 +656,7 @@ GFXDECODE_END * Machine Drivers * *************************/ -static MACHINE_CONFIG_START( jubileep, jubilee_state ) +static MACHINE_CONFIG_START( jubileep ) // Main CPU TMS9980A, no line connections. MCFG_TMS99xx_ADD("maincpu", TMS9980A, CPU_CLOCK, jubileep_map, jubileep_cru_map) @@ -706,5 +706,5 @@ ROM_END * Game Drivers * *************************/ -/* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS */ -GAME( 1985, jubileep, 0, jubileep, jubileep, driver_device, 0, ROT0, "Jubilee", "Double-Up Poker (Jubilee)", MACHINE_NO_SOUND ) +// YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS +GAME( 1985, jubileep, 0, jubileep, jubileep, jubilee_state, 0, ROT0, "Jubilee", "Double-Up Poker (Jubilee)", MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/juicebox.cpp b/src/mame/drivers/juicebox.cpp index 34a5db71c50..0ad95457959 100644 --- a/src/mame/drivers/juicebox.cpp +++ b/src/mame/drivers/juicebox.cpp @@ -301,7 +301,7 @@ DRIVER_INIT_MEMBER(juicebox_state,juicebox) // do nothing } -static MACHINE_CONFIG_START( juicebox, juicebox_state ) +static MACHINE_CONFIG_START( juicebox ) MCFG_CPU_ADD("maincpu", ARM7, 66000000) MCFG_CPU_PROGRAM_MAP(juicebox_map) diff --git a/src/mame/drivers/jungleyo.cpp b/src/mame/drivers/jungleyo.cpp index 078fc267c60..12c7a5f3de9 100644 --- a/src/mame/drivers/jungleyo.cpp +++ b/src/mame/drivers/jungleyo.cpp @@ -111,7 +111,7 @@ static GFXDECODE_START( jungleyo ) GFXDECODE_END -static MACHINE_CONFIG_START( jungleyo, jungleyo_state ) +static MACHINE_CONFIG_START( jungleyo ) MCFG_CPU_ADD("maincpu", M68000, XTAL_12MHz) MCFG_CPU_PROGRAM_MAP(jungleyo_map) @@ -132,7 +132,7 @@ static MACHINE_CONFIG_START( jungleyo, jungleyo_state ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_OKIM6295_ADD("oki", XTAL_12MHz/16, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki", XTAL_12MHz/16, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.47) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.47) MACHINE_CONFIG_END @@ -157,4 +157,4 @@ ROM_START( jungleyo ) ROM_END -GAME( 1999, jungleyo, 0, jungleyo, jungleyo, driver_device, 0, ROT0, "Yonshi", "Jungle (VI3.02)", MACHINE_NOT_WORKING ) +GAME( 1999, jungleyo, 0, jungleyo, jungleyo, jungleyo_state, 0, ROT0, "Yonshi", "Jungle (VI3.02)", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/junior.cpp b/src/mame/drivers/junior.cpp index bae6c5b28ce..b6872389740 100644 --- a/src/mame/drivers/junior.cpp +++ b/src/mame/drivers/junior.cpp @@ -35,12 +35,13 @@ class junior_state : public driver_device { public: junior_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag), - m_riot(*this, "riot") - , - m_maincpu(*this, "maincpu") { } + : driver_device(mconfig, type, tag) + , m_riot(*this, "riot") + , m_maincpu(*this, "maincpu") + { + } - required_device m_riot; + required_device m_riot; DECLARE_READ8_MEMBER(junior_riot_a_r); DECLARE_READ8_MEMBER(junior_riot_b_r); DECLARE_WRITE8_MEMBER(junior_riot_a_w); @@ -62,8 +63,8 @@ static ADDRESS_MAP_START(junior_mem, AS_PROGRAM, 8, junior_state) ADDRESS_MAP_GLOBAL_MASK(0x1FFF) ADDRESS_MAP_UNMAP_HIGH AM_RANGE(0x0000, 0x03ff) AM_RAM // 1K RAM - AM_RANGE(0x1a00, 0x1a7f) AM_DEVICE("riot", mos6532_t, ram_map) - AM_RANGE(0x1a80, 0x1a9f) AM_DEVICE("riot", mos6532_t, io_map) + AM_RANGE(0x1a00, 0x1a7f) AM_DEVICE("riot", mos6532_new_device, ram_map) + AM_RANGE(0x1a80, 0x1a9f) AM_DEVICE("riot", mos6532_new_device, io_map) AM_RANGE(0x1c00, 0x1fff) AM_ROM // Monitor ADDRESS_MAP_END @@ -211,7 +212,7 @@ void junior_state::machine_reset() } -static MACHINE_CONFIG_START( junior, junior_state ) +static MACHINE_CONFIG_START( junior ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",M6502, XTAL_1MHz) MCFG_CPU_PROGRAM_MAP(junior_mem) @@ -221,7 +222,7 @@ static MACHINE_CONFIG_START( junior, junior_state ) MCFG_DEFAULT_LAYOUT( layout_junior ) /* Devices */ - MCFG_DEVICE_ADD("riot", MOS6532n, XTAL_1MHz) + MCFG_DEVICE_ADD("riot", MOS6532_NEW, XTAL_1MHz) MCFG_MOS6530n_IN_PA_CB(READ8(junior_state, junior_riot_a_r)) MCFG_MOS6530n_OUT_PA_CB(WRITE8(junior_state, junior_riot_a_w)) MCFG_MOS6530n_IN_PB_CB(READ8(junior_state, junior_riot_b_r)) @@ -249,5 +250,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1980, junior, 0, 0, junior, junior, driver_device, 0, "Elektor Electronics", "Junior Computer", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +COMP( 1980, junior, 0, 0, junior, junior, junior_state, 0, "Elektor Electronics", "Junior Computer", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW) diff --git a/src/mame/drivers/junofrst.cpp b/src/mame/drivers/junofrst.cpp index c8dfd6ef8bd..019af9dce2c 100644 --- a/src/mame/drivers/junofrst.cpp +++ b/src/mame/drivers/junofrst.cpp @@ -245,7 +245,7 @@ WRITE8_MEMBER(junofrst_state::portB_w) C += 220000; /* 220000pF = 0.22uF */ data >>= 2; - filter[i]->filter_rc_set_RC(FLT_RC_LOWPASS, 1000, 2200, 200, CAP_P(C)); + filter[i]->filter_rc_set_RC(filter_rc_device::LOWPASS, 1000, 2200, 200, CAP_P(C)); } } @@ -410,7 +410,7 @@ INTERRUPT_GEN_MEMBER(junofrst_state::_30hz_irq) device.execute().set_input_line(0, ASSERT_LINE); } -static MACHINE_CONFIG_START( junofrst, junofrst_state ) +static MACHINE_CONFIG_START( junofrst ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", KONAMI1, 1500000) /* 1.5 MHz ??? */ diff --git a/src/mame/drivers/jupace.cpp b/src/mame/drivers/jupace.cpp index bbb555bfd8b..1c696430197 100644 --- a/src/mame/drivers/jupace.cpp +++ b/src/mame/drivers/jupace.cpp @@ -745,7 +745,7 @@ void ace_state::machine_start() // MACHINE_CONFIG( ace ) //------------------------------------------------- -static MACHINE_CONFIG_START( ace, ace_state ) +static MACHINE_CONFIG_START( ace ) // basic machine hardware MCFG_CPU_ADD(Z80_TAG, Z80, XTAL_6_5MHz/2) MCFG_CPU_PROGRAM_MAP(ace_mem) @@ -835,5 +835,5 @@ ROM_END // SYSTEM DRIVERS //************************************************************************** -// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS -COMP( 1981, jupace, 0, 0, ace, ace, driver_device, 0, "Jupiter Cantab", "Jupiter Ace" , 0 ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1981, jupace, 0, 0, ace, ace, ace_state, 0, "Jupiter Cantab", "Jupiter Ace", 0 ) diff --git a/src/mame/drivers/jupiter.cpp b/src/mame/drivers/jupiter.cpp index fa8e63511d8..f429a35de49 100644 --- a/src/mame/drivers/jupiter.cpp +++ b/src/mame/drivers/jupiter.cpp @@ -46,7 +46,7 @@ static ADDRESS_MAP_START( jupiter_m6800_mem, AS_PROGRAM, 8, jupiter2_state ) // AM_RANGE(0xff58, 0xff5c) Cartridge Disk Controller PIA // AM_RANGE(0xff60, 0xff76) DMA Controller // AM_RANGE(0xff80, 0xff83) Floppy PIA - AM_RANGE(0xff84, 0xff87) AM_DEVREADWRITE(INS1771N1_TAG, wd_fdc_t, read, write) + AM_RANGE(0xff84, 0xff87) AM_DEVREADWRITE(INS1771N1_TAG, wd_fdc_device_base, read, write) // AM_RANGE(0xff90, 0xff93) Hytype Parallel Printer PIA // AM_RANGE(0xffa0, 0xffa7) Persci Floppy Disk Controller // AM_RANGE(0xffb0, 0xffb3) Video PIA @@ -120,7 +120,7 @@ READ8_MEMBER( jupiter3_state::status_r ) return (m_term_data) ? 0x80 : 0x00; } -WRITE8_MEMBER( jupiter3_state::kbd_put ) +void jupiter3_state::kbd_put(u8 data) { if (data) m_term_data = data ^ 0x80; @@ -213,7 +213,7 @@ void jupiter3_state::machine_reset() // MACHINE_CONFIG( jupiter ) //------------------------------------------------- -static MACHINE_CONFIG_START( jupiter, jupiter2_state ) +static MACHINE_CONFIG_START( jupiter ) // basic machine hardware MCFG_CPU_ADD(MCM6571AP_TAG, M6800, 2000000) MCFG_CPU_PROGRAM_MAP(jupiter_m6800_mem) @@ -236,7 +236,7 @@ MACHINE_CONFIG_END // MACHINE_CONFIG( jupiter3 ) //------------------------------------------------- -static MACHINE_CONFIG_START( jupiter3, jupiter3_state ) +static MACHINE_CONFIG_START( jupiter3 ) // basic machine hardware MCFG_CPU_ADD(Z80_TAG, Z80, 4000000) MCFG_CPU_PROGRAM_MAP(jupiter3_mem) @@ -259,7 +259,7 @@ static MACHINE_CONFIG_START( jupiter3, jupiter3_state ) MCFG_FLOPPY_DRIVE_ADD(INS1771N1_TAG":1", jupiter_floppies, nullptr, floppy_image_device::default_floppy_formats) MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0) - MCFG_GENERIC_KEYBOARD_CB(WRITE8(jupiter3_state, kbd_put)) + MCFG_GENERIC_KEYBOARD_CB(PUT(jupiter3_state, kbd_put)) // internal ram MCFG_RAM_ADD(RAM_TAG) @@ -355,6 +355,6 @@ DRIVER_INIT_MEMBER(jupiter3_state,jupiter3) // SYSTEM DRIVERS //************************************************************************** -// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS -COMP( 1976, jupiter2, 0, 0, jupiter, jupiter, jupiter2_state, jupiter, "Wave Mate", "Jupiter II", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW ) -COMP( 1976, jupiter3, 0, 0, jupiter3, jupiter, jupiter3_state, jupiter3,"Wave Mate", "Jupiter III", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1976, jupiter2, 0, 0, jupiter, jupiter, jupiter2_state, jupiter, "Wave Mate", "Jupiter II", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW ) +COMP( 1976, jupiter3, 0, 0, jupiter3, jupiter, jupiter3_state, jupiter3,"Wave Mate", "Jupiter III", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW ) diff --git a/src/mame/drivers/jvh.cpp b/src/mame/drivers/jvh.cpp index 68c5c44b120..ec0a0920eb9 100644 --- a/src/mame/drivers/jvh.cpp +++ b/src/mame/drivers/jvh.cpp @@ -106,14 +106,14 @@ DRIVER_INIT_MEMBER(jvh_state,jvh) { } -static MACHINE_CONFIG_START( jvh, jvh_state ) +static MACHINE_CONFIG_START( jvh ) // CPU TMS9980A; no line connections MCFG_TMS99xx_ADD("maincpu", TMS9980A, 1000000, jvh_map, escape_io) MCFG_CPU_ADD("cpu2", M6800, 1000000) MCFG_CPU_PROGRAM_MAP(jvh_sub_map) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( jvh2, jvh_state ) +static MACHINE_CONFIG_START( jvh2 ) // CPU TMS9980At; no line connections MCFG_TMS99xx_ADD("maincpu", TMS9980A, 1000000, jvh_map, movmastr_io) MCFG_CPU_ADD("cpu2", M6800, 1000000) diff --git a/src/mame/drivers/k1003.cpp b/src/mame/drivers/k1003.cpp index 39843f93e97..d8dd1baabf6 100644 --- a/src/mame/drivers/k1003.cpp +++ b/src/mame/drivers/k1003.cpp @@ -134,7 +134,7 @@ void k1003_state::machine_reset() { } -static MACHINE_CONFIG_START( k1003, k1003_state ) +static MACHINE_CONFIG_START( k1003 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",I8008, 800000) MCFG_CPU_PROGRAM_MAP(k1003_mem) @@ -193,5 +193,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1978, k1003, 0, 0, k1003, k1003, driver_device, 0, "Robotron", "K1003", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1978, k1003, 0, 0, k1003, k1003, k1003_state, 0, "Robotron", "K1003", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/k28.cpp b/src/mame/drivers/k28.cpp index ef0b413ad47..4f9dd9a0b4b 100644 --- a/src/mame/drivers/k28.cpp +++ b/src/mame/drivers/k28.cpp @@ -465,7 +465,7 @@ INPUT_PORTS_END ***************************************************************************/ -static MACHINE_CONFIG_START( k28, k28_state ) +static MACHINE_CONFIG_START( k28 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8021, XTAL_3_579545MHz) @@ -508,5 +508,5 @@ ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY, FULLNAME, FLAGS */ -COMP( 1981, k28, 0, 0, k28, k28, driver_device, 0, "Tiger Electronics", "K28: Talking Learning Computer (model 7-230)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1981, k28, 0, 0, k28, k28, k28_state, 0, "Tiger Electronics", "K28: Talking Learning Computer (model 7-230)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) diff --git a/src/mame/drivers/k8915.cpp b/src/mame/drivers/k8915.cpp index 4e8961cf462..4ef64f931d1 100644 --- a/src/mame/drivers/k8915.cpp +++ b/src/mame/drivers/k8915.cpp @@ -29,7 +29,7 @@ public: DECLARE_READ8_MEMBER(k8915_52_r); DECLARE_READ8_MEMBER(k8915_53_r); DECLARE_WRITE8_MEMBER(k8915_a8_w); - DECLARE_WRITE8_MEMBER(kbd_put); + void kbd_put(u8 data); DECLARE_DRIVER_INIT(k8915); uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); @@ -140,12 +140,12 @@ uint32_t k8915_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, return 0; } -WRITE8_MEMBER( k8915_state::kbd_put ) +void k8915_state::kbd_put(u8 data) { m_term_data = data; } -static MACHINE_CONFIG_START( k8915, k8915_state ) +static MACHINE_CONFIG_START( k8915 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_16MHz / 4) MCFG_CPU_PROGRAM_MAP(k8915_mem) @@ -163,7 +163,7 @@ static MACHINE_CONFIG_START( k8915, k8915_state ) MCFG_PALETTE_ADD_MONOCHROME("palette") MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0) - MCFG_GENERIC_KEYBOARD_CB(WRITE8(k8915_state, kbd_put)) + MCFG_GENERIC_KEYBOARD_CB(PUT(k8915_state, kbd_put)) MACHINE_CONFIG_END @@ -179,5 +179,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1982, k8915, 0, 0, k8915, k8915, k8915_state, k8915, "Robotron", "K8915", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1982, k8915, 0, 0, k8915, k8915, k8915_state, k8915, "Robotron", "K8915", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) diff --git a/src/mame/drivers/kaneko16.cpp b/src/mame/drivers/kaneko16.cpp index 07ebbf9d49e..26804b6c377 100644 --- a/src/mame/drivers/kaneko16.cpp +++ b/src/mame/drivers/kaneko16.cpp @@ -1862,7 +1862,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(kaneko16_state::kaneko16_interrupt) 6-7] rte */ -static MACHINE_CONFIG_START( berlwall, kaneko16_berlwall_state ) +static MACHINE_CONFIG_START( berlwall ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 12000000) /* MC68000P12 */ @@ -1911,7 +1911,7 @@ static MACHINE_CONFIG_START( berlwall, kaneko16_berlwall_state ) MCFG_SOUND_ADD("ym2149_2", YM2149, 1000000) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) - MCFG_OKIM6295_ADD("oki", 12000000/6, OKIM6295_PIN7_LOW) + MCFG_OKIM6295_ADD("oki", 12000000/6, PIN7_LOW) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) MACHINE_CONFIG_END @@ -1921,7 +1921,7 @@ MACHINE_CONFIG_END Bakuretsu Breaker ***************************************************************************/ -static MACHINE_CONFIG_START( bakubrkr, kaneko16_state ) +static MACHINE_CONFIG_START( bakubrkr ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_12MHz) /* verified on pcb */ @@ -1977,7 +1977,7 @@ static MACHINE_CONFIG_START( bakubrkr, kaneko16_state ) MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(kaneko16_state, eeprom_w)) /* outputs B: 0,EEPROM reset */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MCFG_OKIM6295_ADD("oki", XTAL_12MHz/6, OKIM6295_PIN7_HIGH) /* verified on pcb */ + MCFG_OKIM6295_ADD("oki", XTAL_12MHz/6, PIN7_HIGH) /* verified on pcb */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -1996,7 +1996,7 @@ MACHINE_CONFIG_END 6-7] busy loop */ -static MACHINE_CONFIG_START( blazeon, kaneko16_state ) +static MACHINE_CONFIG_START( blazeon ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000,12000000) /* TMP68HC000-12 */ @@ -2050,7 +2050,7 @@ MACHINE_CONFIG_END Wing Force ***************************************************************************/ -static MACHINE_CONFIG_START( wingforc, kaneko16_state ) +static MACHINE_CONFIG_START( wingforc ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz) /* TMP68HC000N-16 */ @@ -2097,7 +2097,7 @@ static MACHINE_CONFIG_START( wingforc, kaneko16_state ) MCFG_YM2151_ADD("ymsnd", XTAL_16MHz/4) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.4) - MCFG_OKIM6295_ADD("oki", XTAL_16MHz/16, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", XTAL_16MHz/16, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -2116,7 +2116,7 @@ MACHINE_CONFIG_END VIDEO_UPDATE_AFTER_VBLANK fixes the mangled/wrong colored sprites */ -static MACHINE_CONFIG_START( gtmr, kaneko16_gtmr_state ) +static MACHINE_CONFIG_START( gtmr ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz) /* verified on pcb */ @@ -2167,16 +2167,16 @@ static MACHINE_CONFIG_START( gtmr, kaneko16_gtmr_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki1", XTAL_16MHz/8, OKIM6295_PIN7_LOW) /* verified on pcb */ + MCFG_OKIM6295_ADD("oki1", XTAL_16MHz/8, PIN7_LOW) /* verified on pcb */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) - MCFG_OKIM6295_ADD("oki2", XTAL_16MHz/8, OKIM6295_PIN7_LOW) /* verified on pcb */ + MCFG_OKIM6295_ADD("oki2", XTAL_16MHz/8, PIN7_LOW) /* verified on pcb */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( gtmre, gtmr ) MCFG_DEVICE_MODIFY("toybox") - MCFG_TOYBOX_TABLE_TYPE(TABLE_ALT) + MCFG_TOYBOX_TABLE_TYPE(ALT) MACHINE_CONFIG_END /*************************************************************************** @@ -2228,7 +2228,7 @@ static MACHINE_CONFIG_DERIVED( bonkadv, gtmr ) MCFG_DEVICE_MODIFY("toybox") - MCFG_TOYBOX_GAME_TYPE(GAME_BONK) + MCFG_TOYBOX_GAME_TYPE(BONK) MCFG_DEVICE_MODIFY("kan_hit") kaneko_hit_device::set_type(*device, 0); @@ -2239,7 +2239,7 @@ MACHINE_CONFIG_END Magical Crystal ***************************************************************************/ -static MACHINE_CONFIG_START( mgcrystl, kaneko16_state ) +static MACHINE_CONFIG_START( mgcrystl ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_12MHz) /* verified on pcb, TMP68HC000N-12 @U31 and X2 is 12MHz */ @@ -2294,7 +2294,7 @@ static MACHINE_CONFIG_START( mgcrystl, kaneko16_state ) MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(kaneko16_state, eeprom_w)) /* outputs B: 0,EEPROM reset */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MCFG_OKIM6295_ADD("oki", XTAL_12MHz/6, OKIM6295_PIN7_HIGH) /* verified on pcb */ + MCFG_OKIM6295_ADD("oki", XTAL_12MHz/6, PIN7_HIGH) /* verified on pcb */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -2368,7 +2368,7 @@ static ADDRESS_MAP_START( shogwarr_oki2_map, AS_0, 8, kaneko16_shogwarr_state ) AM_RANGE(0x00000, 0x3ffff) AM_ROMBANK("bank11") ADDRESS_MAP_END -static MACHINE_CONFIG_START( shogwarr, kaneko16_shogwarr_state ) +static MACHINE_CONFIG_START( shogwarr ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_12MHz) @@ -2418,11 +2418,11 @@ static MACHINE_CONFIG_START( shogwarr, kaneko16_shogwarr_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki1", XTAL_16MHz/8, OKIM6295_PIN7_LOW) + MCFG_OKIM6295_ADD("oki1", XTAL_16MHz/8, PIN7_LOW) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MCFG_DEVICE_ADDRESS_MAP(AS_0, shogwarr_oki1_map) - MCFG_OKIM6295_ADD("oki2", XTAL_16MHz/8, OKIM6295_PIN7_LOW) + MCFG_OKIM6295_ADD("oki2", XTAL_16MHz/8, PIN7_LOW) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MCFG_DEVICE_ADDRESS_MAP(AS_0, shogwarr_oki2_map) MACHINE_CONFIG_END @@ -4483,7 +4483,7 @@ GAME( 1992, explbrkr, 0, bakubrkr, bakubrkr, kaneko16_state, kan GAME( 1992, bakubrkr, explbrkr, bakubrkr, bakubrkr, kaneko16_state, kaneko16, ROT90, "Kaneko", "Bakuretsu Breaker", MACHINE_SUPPORTS_SAVE ) GAME( 1993, wingforc, 0, wingforc, wingforc, kaneko16_state, kaneko16, ROT270,"A.I (Atlus license)", "Wing Force (Japan, prototype)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, bonkadv, 0, bonkadv , bonkadv, kaneko16_gtmr_state, gtmr, ROT0, "Kaneko", "B.C. Kid / Bonk's Adventure / Kyukyoku!! PC Genjin", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, bonkadv, 0, bonkadv, bonkadv, kaneko16_gtmr_state, gtmr, ROT0, "Kaneko", "B.C. Kid / Bonk's Adventure / Kyukyoku!! PC Genjin", MACHINE_SUPPORTS_SAVE ) GAME( 1994, bloodwar, 0, bloodwar, bloodwar, kaneko16_gtmr_state, gtmr, ROT0, "Kaneko", "Blood Warrior", MACHINE_SUPPORTS_SAVE ) GAME( 1994, oedfight, bloodwar, bloodwar, bloodwar, kaneko16_gtmr_state, gtmr, ROT0, "Kaneko", "Oedo Fight (Japan Bloodshed Ver.)", MACHINE_SUPPORTS_SAVE ) GAME( 1994, gtmr, 0, gtmr, gtmr, kaneko16_gtmr_state, gtmr, ROT0, "Kaneko", "1000 Miglia: Great 1000 Miles Rally (94/07/18)", MACHINE_SUPPORTS_SAVE ) // this set shows 'PCB by Jinwei Co Ltd. ROC' diff --git a/src/mame/drivers/kangaroo.cpp b/src/mame/drivers/kangaroo.cpp index e74f17150ba..01dc3ac888c 100644 --- a/src/mame/drivers/kangaroo.cpp +++ b/src/mame/drivers/kangaroo.cpp @@ -426,7 +426,7 @@ INPUT_PORTS_END * *************************************/ -static MACHINE_CONFIG_START( nomcu, kangaroo_state ) +static MACHINE_CONFIG_START( nomcu ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, MASTER_CLOCK/4) @@ -572,7 +572,7 @@ ROM_END * *************************************/ -GAME( 1981, fnkyfish, 0, nomcu, fnkyfish, driver_device, 0, ROT90, "Sun Electronics", "Funky Fish", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, kangaroo, 0, mcu, kangaroo, driver_device, 0, ROT90, "Sun Electronics", "Kangaroo", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, kangarooa, kangaroo, mcu, kangaroo, driver_device, 0, ROT90, "Sun Electronics (Atari license)", "Kangaroo (Atari)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, kangaroob, kangaroo, nomcu, kangaroo, driver_device, 0, ROT90, "bootleg", "Kangaroo (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, fnkyfish, 0, nomcu, fnkyfish, kangaroo_state, 0, ROT90, "Sun Electronics", "Funky Fish", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, kangaroo, 0, mcu, kangaroo, kangaroo_state, 0, ROT90, "Sun Electronics", "Kangaroo", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, kangarooa, kangaroo, mcu, kangaroo, kangaroo_state, 0, ROT90, "Sun Electronics (Atari license)", "Kangaroo (Atari)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, kangaroob, kangaroo, nomcu, kangaroo, kangaroo_state, 0, ROT90, "bootleg", "Kangaroo (bootleg)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/karnov.cpp b/src/mame/drivers/karnov.cpp index 9222799c0ae..6df531ebaee 100644 --- a/src/mame/drivers/karnov.cpp +++ b/src/mame/drivers/karnov.cpp @@ -803,7 +803,7 @@ void karnov_state::machine_reset() } -static MACHINE_CONFIG_START( karnov, karnov_state ) +static MACHINE_CONFIG_START( karnov ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 10000000) /* 10 MHz */ @@ -882,7 +882,7 @@ MACHINE_CONFIG_END -static MACHINE_CONFIG_START( wndrplnt, karnov_state ) +static MACHINE_CONFIG_START( wndrplnt ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 10000000) /* 10 MHz */ @@ -1393,13 +1393,13 @@ DRIVER_INIT_MEMBER(karnov_state,chelnovj) * *************************************/ -GAME( 1987, karnov, 0, karnov, karnov, karnov_state, karnov, ROT0, "Data East USA", "Karnov (US, rev 6)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, karnova, karnov, karnov, karnov, karnov_state, karnov, ROT0, "Data East USA", "Karnov (US, rev 5)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, karnovj, karnov, karnov, karnov, karnov_state, karnovj, ROT0, "Data East Corporation", "Karnov (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, karnovjbl,karnov, karnovjbl,karnov, karnov_state, karnovj, ROT0, "bootleg (K. J. Corporation)", "Karnov (Japan, bootleg with NEC D8748HD)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) -GAME( 1987, wndrplnt, 0, wndrplnt, wndrplnt, karnov_state, wndrplnt, ROT270, "Data East Corporation", "Wonder Planet (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, chelnov, 0, karnov, chelnov, karnov_state, chelnov, ROT0, "Data East Corporation", "Chelnov - Atomic Runner (World)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, chelnovu, chelnov, karnov, chelnovu, karnov_state, chelnovu, ROT0, "Data East USA", "Chelnov - Atomic Runner (US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, chelnovj, chelnov, karnov, chelnovj, karnov_state, chelnovj, ROT0, "Data East Corporation", "Chelnov - Atomic Runner (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, chelnovjbl,chelnov,chelnovjbl,chelnovj,karnov_state, chelnovj, ROT0, "bootleg", "Chelnov - Atomic Runner (Japan, bootleg with I8031, set 1)", MACHINE_SUPPORTS_SAVE ) // todo: hook up MCU instead of using simulation code -GAME( 1988, chelnovjbla,chelnov,chelnovjbl,chelnovj,karnov_state,chelnovj, ROT0, "bootleg", "Chelnov - Atomic Runner (Japan, bootleg with I8031, set 2)", MACHINE_SUPPORTS_SAVE ) // ^^ +GAME( 1987, karnov, 0, karnov, karnov, karnov_state, karnov, ROT0, "Data East USA", "Karnov (US, rev 6)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, karnova, karnov, karnov, karnov, karnov_state, karnov, ROT0, "Data East USA", "Karnov (US, rev 5)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, karnovj, karnov, karnov, karnov, karnov_state, karnovj, ROT0, "Data East Corporation", "Karnov (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, karnovjbl, karnov, karnovjbl, karnov, karnov_state, karnovj, ROT0, "bootleg (K. J. Corporation)", "Karnov (Japan, bootleg with NEC D8748HD)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +GAME( 1987, wndrplnt, 0, wndrplnt, wndrplnt, karnov_state, wndrplnt, ROT270, "Data East Corporation", "Wonder Planet (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, chelnov, 0, karnov, chelnov, karnov_state, chelnov, ROT0, "Data East Corporation", "Chelnov - Atomic Runner (World)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, chelnovu, chelnov, karnov, chelnovu, karnov_state, chelnovu, ROT0, "Data East USA", "Chelnov - Atomic Runner (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, chelnovj, chelnov, karnov, chelnovj, karnov_state, chelnovj, ROT0, "Data East Corporation", "Chelnov - Atomic Runner (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, chelnovjbl, chelnov, chelnovjbl, chelnovj, karnov_state, chelnovj, ROT0, "bootleg", "Chelnov - Atomic Runner (Japan, bootleg with I8031, set 1)", MACHINE_SUPPORTS_SAVE ) // todo: hook up MCU instead of using simulation code +GAME( 1988, chelnovjbla, chelnov, chelnovjbl, chelnovj, karnov_state, chelnovj, ROT0, "bootleg", "Chelnov - Atomic Runner (Japan, bootleg with I8031, set 2)", MACHINE_SUPPORTS_SAVE ) // ^^ diff --git a/src/mame/drivers/kas89.cpp b/src/mame/drivers/kas89.cpp index 5da34fe0055..6f012930174 100644 --- a/src/mame/drivers/kas89.cpp +++ b/src/mame/drivers/kas89.cpp @@ -752,7 +752,7 @@ INPUT_PORTS_END * Machine Driver * **************************************/ -static MACHINE_CONFIG_START( kas89, kas89_state ) +static MACHINE_CONFIG_START( kas89 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, MASTER_CLOCK/6) /* Confirmed */ @@ -857,5 +857,5 @@ DRIVER_INIT_MEMBER(kas89_state,kas89) * Game Driver(s) * **************************************/ -/* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS LAYOUT */ +// YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS LAYOUT GAMEL( 1989, kas89, 0, kas89, kas89, kas89_state, kas89, ROT90, "SFC S.R.L.", "Kasino '89", MACHINE_IMPERFECT_SOUND, layout_kas89 ) diff --git a/src/mame/drivers/kaypro.cpp b/src/mame/drivers/kaypro.cpp index a5d2039f6bf..68cf60d01b7 100644 --- a/src/mame/drivers/kaypro.cpp +++ b/src/mame/drivers/kaypro.cpp @@ -71,7 +71,7 @@ static ADDRESS_MAP_START( kayproii_io, AS_IO, 8, kaypro_state ) AM_RANGE(0x04, 0x07) AM_READWRITE(kaypro_sio_r, kaypro_sio_w) AM_RANGE(0x08, 0x0b) AM_DEVREADWRITE("z80pio_g", z80pio_device, read_alt, write_alt) AM_RANGE(0x0c, 0x0f) AM_DEVWRITE("brg", com8116_device, str_w) - AM_RANGE(0x10, 0x13) AM_DEVREADWRITE("fdc", fd1793_t, read, write) + AM_RANGE(0x10, 0x13) AM_DEVREADWRITE("fdc", fd1793_device, read, write) AM_RANGE(0x1c, 0x1f) AM_DEVREADWRITE("z80pio_s", z80pio_device, read_alt, write_alt) ADDRESS_MAP_END @@ -82,7 +82,7 @@ static ADDRESS_MAP_START( kaypro2x_io, AS_IO, 8, kaypro_state ) AM_RANGE(0x04, 0x07) AM_READWRITE(kaypro_sio_r, kaypro_sio_w) AM_RANGE(0x08, 0x0b) AM_DEVWRITE("brg", com8116_device, stt_w) AM_RANGE(0x0c, 0x0f) AM_DEVREADWRITE("z80sio_2x", z80sio0_device, ba_cd_r, ba_cd_w) - AM_RANGE(0x10, 0x13) AM_DEVREADWRITE("fdc", fd1793_t, read, write) + AM_RANGE(0x10, 0x13) AM_DEVREADWRITE("fdc", fd1793_device, read, write) AM_RANGE(0x14, 0x17) AM_READWRITE(kaypro2x_system_port_r,kaypro2x_system_port_w) AM_RANGE(0x18, 0x1b) AM_DEVWRITE("cent_data_out", output_latch_device, write) AM_RANGE(0x1c, 0x1c) AM_READWRITE(kaypro2x_status_r,kaypro2x_index_w) @@ -195,7 +195,7 @@ static SLOT_INTERFACE_START( kaypro_floppies ) SLOT_INTERFACE_END -static MACHINE_CONFIG_START( kayproii, kaypro_state ) +static MACHINE_CONFIG_START( kayproii ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_20MHz / 8) MCFG_CPU_PROGRAM_MAP(kaypro_map) @@ -265,7 +265,7 @@ static MACHINE_CONFIG_DERIVED( kaypro4, kayproii ) MCFG_Z80PIO_OUT_PA_CB(WRITE8(kaypro_state, kaypro4_pio_system_w)) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( kaypro2x, kaypro_state ) +static MACHINE_CONFIG_START( kaypro2x ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_16MHz / 4) MCFG_CPU_PROGRAM_MAP(kaypro_map) @@ -454,13 +454,13 @@ ROM_START(robie) ROM_LOAD("81-235.u9", 0x0000, 0x1000, CRC(5f72da5b) SHA1(8a597000cce1a7e184abfb7bebcb564c6bf24fb7) ) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME */ -COMP( 1982, kayproii, 0, 0, kayproii, kay_kbd, kaypro_state, kaypro, "Non Linear Systems", "Kaypro II - 2/83" , 0 ) -COMP( 1983, kaypro4, kayproii, 0, kaypro4, kay_kbd, kaypro_state, kaypro, "Non Linear Systems", "Kaypro 4 - 4/83" , 0 ) // model 81-004 -COMP( 1983, kaypro4p88, kayproii, 0, kaypro4, kay_kbd, kaypro_state, kaypro, "Non Linear Systems", "Kaypro 4 plus88 - 4/83" , MACHINE_NOT_WORKING ) // model 81-004 with an added 8088 daughterboard and rom -COMP( 198?, omni2, kayproii, 0, omni2, kay_kbd, kaypro_state, kaypro, "Non Linear Systems", "Omni II Logic Analyzer" , 0 ) -COMP( 1984, kaypro2x, 0, 0, kaypro2x, kay_kbd, kaypro_state, kaypro, "Non Linear Systems", "Kaypro 2x" , MACHINE_NOT_WORKING ) // model 81-025 -COMP( 1984, kaypro4a, kaypro2x, 0, kaypro2x, kay_kbd, kaypro_state, kaypro, "Non Linear Systems", "Kaypro 4 - 4/84" , MACHINE_NOT_WORKING ) // model 81-015 +/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME */ +COMP( 1982, kayproii, 0, 0, kayproii, kay_kbd, kaypro_state, kaypro, "Non Linear Systems", "Kaypro II - 2/83" , 0 ) +COMP( 1983, kaypro4, kayproii, 0, kaypro4, kay_kbd, kaypro_state, kaypro, "Non Linear Systems", "Kaypro 4 - 4/83" , 0 ) // model 81-004 +COMP( 1983, kaypro4p88, kayproii, 0, kaypro4, kay_kbd, kaypro_state, kaypro, "Non Linear Systems", "Kaypro 4 plus88 - 4/83" , MACHINE_NOT_WORKING ) // model 81-004 with an added 8088 daughterboard and rom +COMP( 198?, omni2, kayproii, 0, omni2, kay_kbd, kaypro_state, kaypro, "Non Linear Systems", "Omni II Logic Analyzer" , 0 ) +COMP( 1984, kaypro2x, 0, 0, kaypro2x, kay_kbd, kaypro_state, kaypro, "Non Linear Systems", "Kaypro 2x" , MACHINE_NOT_WORKING ) // model 81-025 +COMP( 1984, kaypro4a, kaypro2x, 0, kaypro2x, kay_kbd, kaypro_state, kaypro, "Non Linear Systems", "Kaypro 4 - 4/84" , MACHINE_NOT_WORKING ) // model 81-015 // Kaypro 4/84 plus 88 goes here, model 81-015 with an added 8088 daughterboard and rom -COMP( 1983, kaypro10, 0, 0, kaypro10, kay_kbd, kaypro_state, kaypro, "Non Linear Systems", "Kaypro 10" , MACHINE_NOT_WORKING ) // model 81-005 -COMP( 1984, robie, 0, 0, kaypro2x, kay_kbd, kaypro_state, kaypro, "Non Linear Systems", "Kaypro Robie" , MACHINE_NOT_WORKING ) // model 81-005 +COMP( 1983, kaypro10, 0, 0, kaypro10, kay_kbd, kaypro_state, kaypro, "Non Linear Systems", "Kaypro 10" , MACHINE_NOT_WORKING ) // model 81-005 +COMP( 1984, robie, 0, 0, kaypro2x, kay_kbd, kaypro_state, kaypro, "Non Linear Systems", "Kaypro Robie" , MACHINE_NOT_WORKING ) // model 81-005 diff --git a/src/mame/drivers/kc.cpp b/src/mame/drivers/kc.cpp index e83ba542781..72661bfbdb1 100644 --- a/src/mame/drivers/kc.cpp +++ b/src/mame/drivers/kc.cpp @@ -90,7 +90,7 @@ extern SLOT_INTERFACE_START(kc85_exp) SLOT_INTERFACE_END -static MACHINE_CONFIG_START( kc85_3, kc_state ) +static MACHINE_CONFIG_START( kc85_3 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, KC85_3_CLOCK) MCFG_CPU_PROGRAM_MAP(kc85_3_mem) @@ -174,7 +174,7 @@ static MACHINE_CONFIG_START( kc85_3, kc_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( kc85_4, kc85_4_state ) +static MACHINE_CONFIG_START( kc85_4 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, KC85_4_CLOCK) MCFG_CPU_PROGRAM_MAP(kc85_4_mem) @@ -316,8 +316,8 @@ ROM_START(kc85_5) ROMX_LOAD( "caos43e.855", 0x2000, 0x2000, CRC(b66fc6c3) SHA1(521ac2fbded4148220f8af2d5a5ab99634364079), ROM_BIOS(2)) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ -COMP( 1987, kc85_2, 0, 0, kc85_3, kc85, driver_device, 0, "VEB Mikroelektronik", "HC900 / KC 85/2", MACHINE_NOT_WORKING) -COMP( 1987, kc85_3, kc85_2, 0, kc85_3, kc85, driver_device, 0, "VEB Mikroelektronik", "KC 85/3", MACHINE_NOT_WORKING) -COMP( 1989, kc85_4, kc85_2, 0, kc85_4, kc85, driver_device, 0, "VEB Mikroelektronik", "KC 85/4", MACHINE_NOT_WORKING) -COMP( 1989, kc85_5, kc85_2, 0, kc85_5, kc85, driver_device, 0, "VEB Mikroelektronik", "KC 85/5", MACHINE_NOT_WORKING) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1987, kc85_2, 0, 0, kc85_3, kc85, kc_state, 0, "VEB Mikroelektronik", "HC900 / KC 85/2", MACHINE_NOT_WORKING) +COMP( 1987, kc85_3, kc85_2, 0, kc85_3, kc85, kc_state, 0, "VEB Mikroelektronik", "KC 85/3", MACHINE_NOT_WORKING) +COMP( 1989, kc85_4, kc85_2, 0, kc85_4, kc85, kc85_4_state, 0, "VEB Mikroelektronik", "KC 85/4", MACHINE_NOT_WORKING) +COMP( 1989, kc85_5, kc85_2, 0, kc85_5, kc85, kc85_4_state, 0, "VEB Mikroelektronik", "KC 85/5", MACHINE_NOT_WORKING) diff --git a/src/mame/drivers/kchamp.cpp b/src/mame/drivers/kchamp.cpp index cb925f7af52..632d54e53af 100644 --- a/src/mame/drivers/kchamp.cpp +++ b/src/mame/drivers/kchamp.cpp @@ -390,7 +390,7 @@ void kchamp_state::machine_reset() m_sound_nmi_enable = 0; } -static MACHINE_CONFIG_START( kchampvs, kchamp_state ) +static MACHINE_CONFIG_START( kchampvs ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_12MHz/4) /* verified on pcb */ @@ -437,7 +437,7 @@ static MACHINE_CONFIG_START( kchampvs, kchamp_state ) MCFG_SOUND_ADD("msm", MSM5205, 375000) /* verified on pcb, discrete circuit clock */ MCFG_MSM5205_VCLK_CB(WRITELINE(kchamp_state, msmint)) /* interrupt function */ - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S96_4B) /* 1 / 96 = 3906.25Hz playback */ + MCFG_MSM5205_PRESCALER_SELECTOR(S96_4B) /* 1 / 96 = 3906.25Hz playback */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0) MACHINE_CONFIG_END @@ -445,7 +445,7 @@ MACHINE_CONFIG_END * 1 Player Version * ********************/ -static MACHINE_CONFIG_START( kchamp, kchamp_state ) +static MACHINE_CONFIG_START( kchamp ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_12MHz/4) /* 12MHz / 4 = 3.0 MHz */ @@ -754,8 +754,8 @@ DRIVER_INIT_MEMBER(kchamp_state,kchampvs2) -GAME( 1984, kchamp, 0, kchamp, kchamp, driver_device, 0, ROT90, "Data East USA", "Karate Champ (US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, karatedo, kchamp, kchamp, kchamp, driver_device, 0, ROT90, "Data East Corporation", "Karate Dou (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, kchamp, 0, kchamp, kchamp, kchamp_state, 0, ROT90, "Data East USA", "Karate Champ (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, karatedo, kchamp, kchamp, kchamp, kchamp_state, 0, ROT90, "Data East Corporation", "Karate Dou (Japan)", MACHINE_SUPPORTS_SAVE ) GAME( 1984, kchampvs, kchamp, kchampvs, kchampvs, kchamp_state, kchampvs, ROT90, "Data East USA", "Karate Champ (US VS version, set 1)", MACHINE_SUPPORTS_SAVE ) GAME( 1984, kchampvs2, kchamp, kchampvs, kchampvs, kchamp_state, kchampvs2, ROT90, "Data East USA", "Karate Champ (US VS version, set 2)", MACHINE_SUPPORTS_SAVE ) GAME( 1984, karatevs, kchamp, kchampvs, kchampvs, kchamp_state, kchampvs, ROT90, "Data East Corporation", "Taisen Karate Dou (Japan VS version)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/kenseim.cpp b/src/mame/drivers/kenseim.cpp index 8fb73325ee5..7952391f98e 100644 --- a/src/mame/drivers/kenseim.cpp +++ b/src/mame/drivers/kenseim.cpp @@ -470,7 +470,7 @@ static const z80_daisy_config daisy_chain_gamecpu[] = { nullptr } }; -static MACHINE_CONFIG_DERIVED_CLASS( kenseim, cps1_12MHz, kenseim_state ) +static MACHINE_CONFIG_DERIVED( kenseim, cps1_12MHz ) /* basic machine hardware */ MCFG_CPU_ADD("gamecpu", TMPZ84C011, XTAL_16MHz/2) // tmpz84c011-8 diff --git a/src/mame/drivers/kickgoal.cpp b/src/mame/drivers/kickgoal.cpp index f653a717aba..c6da4e43fd3 100644 --- a/src/mame/drivers/kickgoal.cpp +++ b/src/mame/drivers/kickgoal.cpp @@ -628,7 +628,7 @@ void kickgoal_state::machine_reset() m_m6295_key_delay = 0; } -static MACHINE_CONFIG_START( kickgoal, kickgoal_state ) +static MACHINE_CONFIG_START( kickgoal ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 12000000) /* 12 MHz */ @@ -663,11 +663,11 @@ static MACHINE_CONFIG_START( kickgoal, kickgoal_state ) //MCFG_GENERIC_LATCH_8_ADD("soundlatch") - MCFG_OKIM6295_ADD("oki", 12000000/8, OKIM6295_PIN7_LOW) + MCFG_OKIM6295_ADD("oki", 12000000/8, PIN7_LOW) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( actionhw, kickgoal_state ) +static MACHINE_CONFIG_START( actionhw ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_12MHz) /* verified on pcb */ @@ -701,7 +701,7 @@ static MACHINE_CONFIG_START( actionhw, kickgoal_state ) //MCFG_GENERIC_LATCH_8_ADD("soundlatch") - MCFG_OKIM6295_ADD("oki", XTAL_12MHz/12, OKIM6295_PIN7_HIGH) /* verified on pcb */ + MCFG_OKIM6295_ADD("oki", XTAL_12MHz/12, PIN7_HIGH) /* verified on pcb */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) MACHINE_CONFIG_END @@ -778,5 +778,5 @@ DRIVER_INIT_MEMBER(kickgoal_state,kickgoal) } -GAME( 1995, kickgoal,0, kickgoal, kickgoal, kickgoal_state, kickgoal, ROT0, "TCH", "Kick Goal", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1995, actionhw,0, actionhw, kickgoal, kickgoal_state, kickgoal, ROT0, "TCH", "Action Hollywood", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1995, kickgoal, 0, kickgoal, kickgoal, kickgoal_state, kickgoal, ROT0, "TCH", "Kick Goal", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1995, actionhw, 0, actionhw, kickgoal, kickgoal_state, kickgoal, ROT0, "TCH", "Action Hollywood", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/kim1.cpp b/src/mame/drivers/kim1.cpp index 23fa7bdf16a..1c620f98f28 100644 --- a/src/mame/drivers/kim1.cpp +++ b/src/mame/drivers/kim1.cpp @@ -245,7 +245,7 @@ void kim1_state::machine_reset() // MACHINE DRIVERS //************************************************************************** -static MACHINE_CONFIG_START( kim1, kim1_state ) +static MACHINE_CONFIG_START( kim1 ) // basic machine hardware MCFG_CPU_ADD("maincpu", M6502, 1000000) /* 1 MHz */ MCFG_CPU_PROGRAM_MAP(kim1_map) @@ -290,5 +290,5 @@ ROM_END // SYSTEM DRIVERS //************************************************************************** -// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS -COMP( 1975, kim1, 0, 0, kim1, kim1, driver_device, 0, "MOS Technologies", "KIM-1" , MACHINE_NO_SOUND_HW | MACHINE_SUPPORTS_SAVE) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 1975, kim1, 0, 0, kim1, kim1, kim1_state, 0, "MOS Technologies", "KIM-1" , MACHINE_NO_SOUND_HW | MACHINE_SUPPORTS_SAVE) diff --git a/src/mame/drivers/kingdrby.cpp b/src/mame/drivers/kingdrby.cpp index 087bc841830..15b9b1e4436 100644 --- a/src/mame/drivers/kingdrby.cpp +++ b/src/mame/drivers/kingdrby.cpp @@ -926,7 +926,7 @@ PALETTE_INIT_MEMBER(kingdrby_state,kingdrbb) } } -static MACHINE_CONFIG_START( kingdrby, kingdrby_state ) +static MACHINE_CONFIG_START( kingdrby ) MCFG_CPU_ADD("master", Z80, CLK_2) MCFG_CPU_PROGRAM_MAP(master_map) MCFG_CPU_IO_MAP(master_io_map) @@ -1012,7 +1012,7 @@ static MACHINE_CONFIG_DERIVED( cowrace, kingdrbb ) MCFG_GFXDECODE_MODIFY("gfxdecode", cowrace) MCFG_PALETTE_MODIFY("palette") MCFG_PALETTE_INIT_OWNER(kingdrby_state,kingdrby) - MCFG_OKIM6295_ADD("oki", 1056000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki", 1056000, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) MCFG_SOUND_REPLACE("aysnd", YM2203, 3000000) @@ -1192,7 +1192,7 @@ ROM_START( kingdrbb2 ) ROM_END -GAMEL( 1981, kingdrby, 0, kingdrby, kingdrby, driver_device, 0, ROT0, "Tazmi", "King Derby (1981)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_SOUND, layout_kingdrby ) -GAME ( 1986, kingdrbb, kingdrby, kingdrbb, kingdrbb, driver_device, 0, ROT0, "bootleg (Casino Electronics)", "King Derby (Taiwan bootleg)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_COLORS ) -GAMEL( 198?, kingdrbb2, kingdrby, kingdrby, kingdrby, driver_device, 0, ROT0, "bootleg", "King Derby (bootleg set 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_SOUND, layout_kingdrby ) -GAME ( 2000, cowrace, kingdrby, cowrace, kingdrbb, driver_device, 0, ROT0, "bootleg (Gate In)", "Cow Race (King Derby hack)", MACHINE_NOT_WORKING | MACHINE_WRONG_COLORS ) +GAMEL( 1981, kingdrby, 0, kingdrby, kingdrby, kingdrby_state, 0, ROT0, "Tazmi", "King Derby (1981)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_SOUND, layout_kingdrby ) +GAME ( 1986, kingdrbb, kingdrby, kingdrbb, kingdrbb, kingdrby_state, 0, ROT0, "bootleg (Casino Electronics)", "King Derby (Taiwan bootleg)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_COLORS ) +GAMEL( 198?, kingdrbb2, kingdrby, kingdrby, kingdrby, kingdrby_state, 0, ROT0, "bootleg", "King Derby (bootleg set 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_SOUND, layout_kingdrby ) +GAME ( 2000, cowrace, kingdrby, cowrace, kingdrbb, kingdrby_state, 0, ROT0, "bootleg (Gate In)", "Cow Race (King Derby hack)", MACHINE_NOT_WORKING | MACHINE_WRONG_COLORS ) diff --git a/src/mame/drivers/kingobox.cpp b/src/mame/drivers/kingobox.cpp index c7ac7ba4957..211268f3fb5 100644 --- a/src/mame/drivers/kingobox.cpp +++ b/src/mame/drivers/kingobox.cpp @@ -460,7 +460,7 @@ void kingofb_state::machine_reset() m_palette_bank = 0; } -static MACHINE_CONFIG_START( kingofb, kingofb_state ) +static MACHINE_CONFIG_START( kingofb ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 4000000) /* 4.0 MHz */ @@ -514,7 +514,7 @@ MACHINE_CONFIG_END /* Ring King */ -static MACHINE_CONFIG_START( ringking, kingofb_state ) +static MACHINE_CONFIG_START( ringking ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 4000000) /* 4.0 MHz */ @@ -859,9 +859,9 @@ DRIVER_INIT_MEMBER(kingofb_state,ringkingw) } -GAME( 1985, kingofb, 0, kingofb, kingofb, driver_device, 0, ROT90, "Wood Place Inc.", "King of Boxer (World)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, kingofbj, kingofb, kingofb, kingofb, driver_device, 0, ROT90, "Wood Place Inc.", "King of Boxer (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, kingofb, 0, kingofb, kingofb, kingofb_state, 0, ROT90, "Wood Place Inc.", "King of Boxer (World)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, kingofbj, kingofb, kingofb, kingofb, kingofb_state, 0, ROT90, "Wood Place Inc.", "King of Boxer (Japan)", MACHINE_SUPPORTS_SAVE ) GAME( 1985, ringkingw, kingofb, kingofb, kingofb, kingofb_state, ringkingw, ROT90, "Wood Place Inc.", "Ring King (US, Wood Place Inc.)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, ringking, kingofb, ringking, ringking, driver_device, 0, ROT90, "Wood Place Inc. (Data East USA license)", "Ring King (US set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, ringking2, kingofb, ringking, ringking, driver_device, 0, ROT90, "Wood Place Inc. (Data East USA license)", "Ring King (US set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, ringking, kingofb, ringking, ringking, kingofb_state, 0, ROT90, "Wood Place Inc. (Data East USA license)", "Ring King (US set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, ringking2, kingofb, ringking, ringking, kingofb_state, 0, ROT90, "Wood Place Inc. (Data East USA license)", "Ring King (US set 2)", MACHINE_SUPPORTS_SAVE ) GAME( 1985, ringking3, kingofb, kingofb, kingofb, kingofb_state, ringking3, ROT90, "Wood Place Inc. (Data East USA license)", "Ring King (US set 3)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/kingpin.cpp b/src/mame/drivers/kingpin.cpp index b581089475e..27cb6ce9abf 100644 --- a/src/mame/drivers/kingpin.cpp +++ b/src/mame/drivers/kingpin.cpp @@ -127,7 +127,7 @@ static INPUT_PORTS_START( kingpin ) INPUT_PORTS_END -static MACHINE_CONFIG_START( kingpin, kingpin_state ) +static MACHINE_CONFIG_START( kingpin ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_3_579545MHz) @@ -210,5 +210,5 @@ ROM_START( maxideal ) ROM_END -GAME( 1983, kingpin, 0, kingpin, kingpin, driver_device, 0, 0, "ACL Manufacturing", "Kingpin", 0) -GAME( 1983, maxideal, 0, kingpin, kingpin, driver_device, 0, 0, "ACL Manufacturing", "Maxi-Dealer", 0) +GAME( 1983, kingpin, 0, kingpin, kingpin, kingpin_state, 0, 0, "ACL Manufacturing", "Kingpin", 0 ) +GAME( 1983, maxideal, 0, kingpin, kingpin, kingpin_state, 0, 0, "ACL Manufacturing", "Maxi-Dealer", 0 ) diff --git a/src/mame/drivers/kinst.cpp b/src/mame/drivers/kinst.cpp index c6f29e8958d..1f5c56702a5 100644 --- a/src/mame/drivers/kinst.cpp +++ b/src/mame/drivers/kinst.cpp @@ -666,7 +666,7 @@ INPUT_PORTS_END * *************************************/ -static MACHINE_CONFIG_START( kinst, kinst_state ) +static MACHINE_CONFIG_START( kinst ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", R4600LE, MASTER_CLOCK*2) @@ -932,7 +932,7 @@ DRIVER_INIT_MEMBER(kinst_state,kinst2) * *************************************/ -GAME( 1994, kinst, 0, kinst, kinst, kinst_state, kinst, ROT0, "Rare", "Killer Instinct (v1.5d)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, kinst, 0, kinst, kinst, kinst_state, kinst, ROT0, "Rare", "Killer Instinct (v1.5d)", MACHINE_SUPPORTS_SAVE ) GAME( 1994, kinst14, kinst, kinst, kinst2, kinst_state, kinst, ROT0, "Rare", "Killer Instinct (v1.4)", MACHINE_SUPPORTS_SAVE ) GAME( 1994, kinst13, kinst, kinst, kinst2, kinst_state, kinst, ROT0, "Rare", "Killer Instinct (v1.3)", MACHINE_SUPPORTS_SAVE ) GAME( 1994, kinstp, kinst, kinst, kinst2, kinst_state, kinst, ROT0, "Rare", "Killer Instinct (proto v4.7)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/kissproto.cpp b/src/mame/drivers/kissproto.cpp index d732fb116be..60a8c68dd86 100644 --- a/src/mame/drivers/kissproto.cpp +++ b/src/mame/drivers/kissproto.cpp @@ -46,7 +46,7 @@ DRIVER_INIT_MEMBER(kissp_state,kissp) { } -static MACHINE_CONFIG_START( kissp, kissp_state ) +static MACHINE_CONFIG_START( kissp ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8035, 6000000/15) MCFG_CPU_PROGRAM_MAP(kissp_map) @@ -72,5 +72,5 @@ ROM_START(kissp2) ROM_RELOAD( 0x4800, 0x0800) ROM_END -GAME( 1979, kissp, kiss, kissp, kissp, kissp_state, kissp, ROT0, "Bally", "Kiss (prototype)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 1979, kissp, kiss, kissp, kissp, kissp_state, kissp, ROT0, "Bally", "Kiss (prototype)", MACHINE_IS_SKELETON_MECHANICAL ) GAME( 1979, kissp2, kiss, kissp, kissp, kissp_state, kissp, ROT0, "Bally", "Kiss (prototype v.2)", MACHINE_IS_SKELETON_MECHANICAL ) diff --git a/src/mame/drivers/klax.cpp b/src/mame/drivers/klax.cpp index c90a405d368..7446c8b27f3 100644 --- a/src/mame/drivers/klax.cpp +++ b/src/mame/drivers/klax.cpp @@ -190,7 +190,7 @@ GFXDECODE_END * *************************************/ -static MACHINE_CONFIG_START( klax, klax_state ) +static MACHINE_CONFIG_START( klax ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, ATARI_CLOCK_14MHz/2) @@ -226,7 +226,7 @@ static MACHINE_CONFIG_START( klax, klax_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", ATARI_CLOCK_14MHz/4/4, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", ATARI_CLOCK_14MHz/4/4, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -438,10 +438,10 @@ ROM_END * *************************************/ -GAME( 1989, klax, 0, klax, klax, driver_device, 0, ROT0, "Atari Games", "Klax (set 1)", 0 ) -GAME( 1989, klax2, klax, klax, klax, driver_device, 0, ROT0, "Atari Games", "Klax (set 2)", 0 ) -GAME( 1989, klax3, klax, klax, klax, driver_device, 0, ROT0, "Atari Games", "Klax (set 3)", 0 ) -GAME( 1989, klaxj, klax, klax, klax, driver_device, 0, ROT0, "Atari Games", "Klax (Japan)", 0 ) -GAME( 1989, klaxd, klax, klax, klax, driver_device, 0, ROT0, "Atari Games", "Klax (Germany)", 0 ) +GAME( 1989, klax, 0, klax, klax, klax_state, 0, ROT0, "Atari Games", "Klax (set 1)", 0 ) +GAME( 1989, klax2, klax, klax, klax, klax_state, 0, ROT0, "Atari Games", "Klax (set 2)", 0 ) +GAME( 1989, klax3, klax, klax, klax, klax_state, 0, ROT0, "Atari Games", "Klax (set 3)", 0 ) +GAME( 1989, klaxj, klax, klax, klax, klax_state, 0, ROT0, "Atari Games", "Klax (Japan)", 0 ) +GAME( 1989, klaxd, klax, klax, klax, klax_state, 0, ROT0, "Atari Games", "Klax (Germany)", 0 ) -GAME( 1989, klax2bl, klax, klax2bl, klax, driver_device, 0, ROT0, "bootleg", "Klax (set 2, bootleg)", MACHINE_NOT_WORKING ) +GAME( 1989, klax2bl, klax, klax2bl, klax, klax_state, 0, ROT0, "bootleg", "Klax (set 2, bootleg)", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/kncljoe.cpp b/src/mame/drivers/kncljoe.cpp index 39e5df12cac..2f07c4a98fe 100644 --- a/src/mame/drivers/kncljoe.cpp +++ b/src/mame/drivers/kncljoe.cpp @@ -252,7 +252,7 @@ void kncljoe_state::machine_reset() m_flipscreen = 0; } -static MACHINE_CONFIG_START( kncljoe, kncljoe_state ) +static MACHINE_CONFIG_START( kncljoe ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_6MHz) /* verified on pcb */ @@ -397,6 +397,6 @@ ROM_END -GAME( 1985, kncljoe, 0, kncljoe, kncljoe, driver_device, 0, ROT0, "Seibu Kaihatsu (Taito license)", "Knuckle Joe (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, kncljoea, kncljoe, kncljoe, kncljoe, driver_device, 0, ROT0, "Seibu Kaihatsu (Taito license)", "Knuckle Joe (set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, bcrusher, kncljoe, kncljoe, kncljoe, driver_device, 0, ROT0, "bootleg", "Bone Crusher", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, kncljoe, 0, kncljoe, kncljoe, kncljoe_state, 0, ROT0, "Seibu Kaihatsu (Taito license)", "Knuckle Joe (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, kncljoea, kncljoe, kncljoe, kncljoe, kncljoe_state, 0, ROT0, "Seibu Kaihatsu (Taito license)", "Knuckle Joe (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, bcrusher, kncljoe, kncljoe, kncljoe, kncljoe_state, 0, ROT0, "bootleg", "Bone Crusher", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/koftball.cpp b/src/mame/drivers/koftball.cpp index 3802e8e960b..2dcd56578bd 100644 --- a/src/mame/drivers/koftball.cpp +++ b/src/mame/drivers/koftball.cpp @@ -28,8 +28,6 @@ ft5_v6_c4.u58 / */ -#define NVRAM_HACK 1 - #include "emu.h" #include "cpu/m68000/m68000.h" #include "sound/okim6295.h" @@ -39,6 +37,8 @@ ft5_v6_c4.u58 / #include "speaker.h" +#define NVRAM_HACK 1 + class koftball_state : public driver_device { public: @@ -228,7 +228,7 @@ static GFXDECODE_START( koftball ) GFXDECODE_END -static MACHINE_CONFIG_START( koftball, koftball_state ) +static MACHINE_CONFIG_START( koftball ) MCFG_CPU_ADD("maincpu", M68000, XTAL_21_4772MHz / 2) MCFG_CPU_PROGRAM_MAP(koftball_mem) MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", koftball_state, bmc_interrupt, "screen", 0, 1) @@ -252,7 +252,7 @@ static MACHINE_CONFIG_START( koftball, koftball_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.50) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.50) - MCFG_OKIM6295_ADD("oki", 1122000, OKIM6295_PIN7_LOW) /* clock frequency & pin 7 not verified */ + MCFG_OKIM6295_ADD("oki", 1122000, PIN7_LOW) /* clock frequency & pin 7 not verified */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.50) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.50) MACHINE_CONFIG_END diff --git a/src/mame/drivers/koikoi.cpp b/src/mame/drivers/koikoi.cpp index 7c066b35e9c..1f8ccecccab 100644 --- a/src/mame/drivers/koikoi.cpp +++ b/src/mame/drivers/koikoi.cpp @@ -347,7 +347,7 @@ void koikoi_state::machine_reset() m_ioram[i] = 0; } -static MACHINE_CONFIG_START( koikoi, koikoi_state ) +static MACHINE_CONFIG_START( koikoi ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80,KOIKOI_CRYSTAL/4) /* ?? */ @@ -432,4 +432,4 @@ ROM_END * *************************************/ -GAME( 1982, koikoi, 0, koikoi, koikoi, driver_device, 0, ROT270, "Kiwako", "Koi Koi Part 2", MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE ) +GAME( 1982, koikoi, 0, koikoi, koikoi, koikoi_state, 0, ROT270, "Kiwako", "Koi Koi Part 2", MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/konamigq.cpp b/src/mame/drivers/konamigq.cpp index 522c1571306..d5fa61e8106 100644 --- a/src/mame/drivers/konamigq.cpp +++ b/src/mame/drivers/konamigq.cpp @@ -311,7 +311,7 @@ MACHINE_RESET_MEMBER(konamigq_state,konamigq) { } -static MACHINE_CONFIG_START( konamigq, konamigq_state ) +static MACHINE_CONFIG_START( konamigq ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", CXD8530BQ, XTAL_67_7376MHz) MCFG_CPU_PROGRAM_MAP(konamigq_map) @@ -319,8 +319,8 @@ static MACHINE_CONFIG_START( konamigq, konamigq_state ) MCFG_RAM_MODIFY("maincpu:ram") MCFG_RAM_DEFAULT_SIZE("4M") - MCFG_PSX_DMA_CHANNEL_READ( "maincpu", 5, psx_dma_read_delegate(&konamigq_state::scsi_dma_read, (konamigq_state *) owner ) ) - MCFG_PSX_DMA_CHANNEL_WRITE( "maincpu", 5, psx_dma_write_delegate(&konamigq_state::scsi_dma_write, (konamigq_state *) owner ) ) + MCFG_PSX_DMA_CHANNEL_READ( "maincpu", 5, psxdma_device::read_delegate(&konamigq_state::scsi_dma_read, (konamigq_state *) owner ) ) + MCFG_PSX_DMA_CHANNEL_WRITE( "maincpu", 5, psxdma_device::write_delegate(&konamigq_state::scsi_dma_write, (konamigq_state *) owner ) ) MCFG_CPU_ADD("soundcpu", M68000, XTAL_32MHz/4) /* 8MHz - measured */ MCFG_CPU_PROGRAM_MAP(konamigq_sound_map) diff --git a/src/mame/drivers/konamigv.cpp b/src/mame/drivers/konamigv.cpp index c8aa17a5015..52176b87920 100644 --- a/src/mame/drivers/konamigv.cpp +++ b/src/mame/drivers/konamigv.cpp @@ -320,7 +320,7 @@ static MACHINE_CONFIG_FRAGMENT( cdrom_config ) MCFG_SOUND_ROUTE( 1, "^^^^rspeaker", 1.0 ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( konamigv, konamigv_state ) +static MACHINE_CONFIG_START( konamigv ) /* basic machine hardware */ MCFG_CPU_ADD( "maincpu", CXD8530BQ, XTAL_67_7376MHz ) MCFG_CPU_PROGRAM_MAP( konamigv_map ) @@ -328,8 +328,8 @@ static MACHINE_CONFIG_START( konamigv, konamigv_state ) MCFG_RAM_MODIFY("maincpu:ram") MCFG_RAM_DEFAULT_SIZE("2M") - MCFG_PSX_DMA_CHANNEL_READ( "maincpu", 5, psx_dma_read_delegate(&konamigv_state::scsi_dma_read, (konamigv_state *) owner ) ) - MCFG_PSX_DMA_CHANNEL_WRITE( "maincpu", 5, psx_dma_write_delegate(&konamigv_state::scsi_dma_write, (konamigv_state *) owner ) ) + MCFG_PSX_DMA_CHANNEL_READ( "maincpu", 5, psxdma_device::read_delegate(&konamigv_state::scsi_dma_read, (konamigv_state *) owner ) ) + MCFG_PSX_DMA_CHANNEL_WRITE( "maincpu", 5, psxdma_device::write_delegate(&konamigv_state::scsi_dma_write, (konamigv_state *) owner ) ) MCFG_DEVICE_ADD("mb89371", MB89371, 0) MCFG_EEPROM_SERIAL_93C46_ADD("eeprom") @@ -848,19 +848,19 @@ ROM_START( tmoshspa ) ROM_END /* BIOS placeholder */ -GAME( 1995, konamigv, 0, konamigv, konamigv, driver_device, 0, ROT0, "Konami", "Baby Phoenix/GV System", MACHINE_IS_BIOS_ROOT ) - -GAME( 1996, powyak96, konamigv, konamigv, konamigv, driver_device, 0, ROT0, "Konami", "Jikkyou Powerful Pro Yakyuu '96 (GV017 Japan 1.03)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1996, hyperath, konamigv, konamigv, konamigv, driver_device, 0, ROT0, "Konami", "Hyper Athlete (GV021 Japan 1.00)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1996, lacrazyc, konamigv, konamigv, konamigv, driver_device, 0, ROT0, "Konami", "Let's Attack Crazy Cross (GV027 Asia 1.10)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1996, susume, lacrazyc, konamigv, konamigv, driver_device, 0, ROT0, "Konami", "Susume! Taisen Puzzle-Dama (GV027 Japan 1.20)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1996, btchamp, konamigv, btchamp, btchamp, driver_device, 0, ROT0, "Konami", "Beat the Champ (GV053 UAA01)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1996, kdeadeye, konamigv, kdeadeye, kdeadeye, driver_device, 0, ROT0, "Konami", "Dead Eye (GV054 UAA01)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1997, weddingr, konamigv, konamigv, weddingr, driver_device, 0, ROT0, "Konami", "Wedding Rhapsody (GX624 JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1997, tmosh, konamigv, tmosh, konamigv, driver_device, 0, ROT0, "Konami", "Tokimeki Memorial Oshiete Your Heart (GQ673 JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) -GAME( 1997, tmoshs, konamigv, tmosh, konamigv, driver_device, 0, ROT0, "Konami", "Tokimeki Memorial Oshiete Your Heart Seal Version (GE755 JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) -GAME( 1997, tmoshsp, konamigv, tmosh, konamigv, driver_device, 0, ROT0, "Konami", "Tokimeki Memorial Oshiete Your Heart Seal Version Plus (GE756 JAB)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) -GAME( 1997, tmoshspa, tmoshsp, tmosh, konamigv, driver_device, 0, ROT0, "Konami", "Tokimeki Memorial Oshiete Your Heart Seal Version Plus (GE756 JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) -GAME( 1998, nagano98, konamigv, konamigv, konamigv, driver_device, 0, ROT0, "Konami", "Nagano Winter Olympics '98 (GX720 EAA)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE) -GAME( 1998, naganoj, nagano98, konamigv, konamigv, driver_device, 0, ROT0, "Konami", "Hyper Olympic in Nagano (GX720 JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE) +GAME( 1995, konamigv, 0, konamigv, konamigv, konamigv_state, 0, ROT0, "Konami", "Baby Phoenix/GV System", MACHINE_IS_BIOS_ROOT ) + +GAME( 1996, powyak96, konamigv, konamigv, konamigv, konamigv_state, 0, ROT0, "Konami", "Jikkyou Powerful Pro Yakyuu '96 (GV017 Japan 1.03)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1996, hyperath, konamigv, konamigv, konamigv, konamigv_state, 0, ROT0, "Konami", "Hyper Athlete (GV021 Japan 1.00)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1996, lacrazyc, konamigv, konamigv, konamigv, konamigv_state, 0, ROT0, "Konami", "Let's Attack Crazy Cross (GV027 Asia 1.10)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1996, susume, lacrazyc, konamigv, konamigv, konamigv_state, 0, ROT0, "Konami", "Susume! Taisen Puzzle-Dama (GV027 Japan 1.20)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1996, btchamp, konamigv, btchamp, btchamp, konamigv_state, 0, ROT0, "Konami", "Beat the Champ (GV053 UAA01)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1996, kdeadeye, konamigv, kdeadeye, kdeadeye, konamigv_state, 0, ROT0, "Konami", "Dead Eye (GV054 UAA01)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1997, weddingr, konamigv, konamigv, weddingr, konamigv_state, 0, ROT0, "Konami", "Wedding Rhapsody (GX624 JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1997, tmosh, konamigv, tmosh, konamigv, konamigv_state, 0, ROT0, "Konami", "Tokimeki Memorial Oshiete Your Heart (GQ673 JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) +GAME( 1997, tmoshs, konamigv, tmosh, konamigv, konamigv_state, 0, ROT0, "Konami", "Tokimeki Memorial Oshiete Your Heart Seal Version (GE755 JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) +GAME( 1997, tmoshsp, konamigv, tmosh, konamigv, konamigv_state, 0, ROT0, "Konami", "Tokimeki Memorial Oshiete Your Heart Seal Version Plus (GE756 JAB)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) +GAME( 1997, tmoshspa, tmoshsp, tmosh, konamigv, konamigv_state, 0, ROT0, "Konami", "Tokimeki Memorial Oshiete Your Heart Seal Version Plus (GE756 JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) +GAME( 1998, nagano98, konamigv, konamigv, konamigv, konamigv_state, 0, ROT0, "Konami", "Nagano Winter Olympics '98 (GX720 EAA)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE) +GAME( 1998, naganoj, nagano98, konamigv, konamigv, konamigv_state, 0, ROT0, "Konami", "Hyper Olympic in Nagano (GX720 JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE) GAME( 2000, simpbowl, konamigv, simpbowl, simpbowl, konamigv_state, simpbowl, ROT0, "Konami", "Simpsons Bowling (GQ829 UAA)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE) diff --git a/src/mame/drivers/konamigx.cpp b/src/mame/drivers/konamigx.cpp index 94164f5ef83..5cde5f8072d 100644 --- a/src/mame/drivers/konamigx.cpp +++ b/src/mame/drivers/konamigx.cpp @@ -1609,7 +1609,7 @@ WRITE_LINE_MEMBER(konamigx_state::hblank_irq_ack_w) m_gx_syncen |= 0x40; } -static MACHINE_CONFIG_START( konamigx, konamigx_state ) +static MACHINE_CONFIG_START( konamigx ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68EC020, MASTER_CLOCK) MCFG_CPU_PROGRAM_MAP(gx_type2_map) diff --git a/src/mame/drivers/konamim2.cpp b/src/mame/drivers/konamim2.cpp index fb180a6874e..71149b07a8a 100644 --- a/src/mame/drivers/konamim2.cpp +++ b/src/mame/drivers/konamim2.cpp @@ -1269,7 +1269,7 @@ void konamim2_state::machine_reset() cde_init(); } -static MACHINE_CONFIG_START( m2, konamim2_state ) +static MACHINE_CONFIG_START( m2 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", PPC602, 66000000) /* actually PPC602, 66MHz */ @@ -1302,7 +1302,7 @@ static MACHINE_CONFIG_START( m2, konamim2_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_DERIVED_CLASS ( 3do_m2, m2, konamim2_state ) +static MACHINE_CONFIG_DERIVED ( 3do_m2, m2 ) MCFG_CPU_MODIFY("maincpu") MCFG_CPU_PROGRAM_MAP(3do_m2_main) @@ -1458,4 +1458,4 @@ GAME( 1998, evilngt, 0, m2, m2, konamim2_state, m2, ROT0, "Konami", "Evi GAME( 1998, evilngte, evilngt, m2, m2, konamim2_state, m2, ROT0, "Konami", "Evil Night (ver EAA)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) GAME( 1998, hellngt, evilngt, m2, m2, konamim2_state, m2, ROT0, "Konami", "Hell Night (ver EAA)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -CONS( 199?, 3do_m2, 0, 0, 3do_m2, m2, driver_device, 0, "3DO", "3DO M2", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +CONS( 199?, 3do_m2, 0, 0, 3do_m2, m2, konamim2_state, 0, "3DO", "3DO M2", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/konendev.cpp b/src/mame/drivers/konendev.cpp index 4bbbfdc35ed..9e583f34f53 100644 --- a/src/mame/drivers/konendev.cpp +++ b/src/mame/drivers/konendev.cpp @@ -299,7 +299,7 @@ INTERRUPT_GEN_MEMBER(konendev_state::vbl_interrupt) device.execute().set_input_line(INPUT_LINE_IRQ3, ASSERT_LINE); } -static MACHINE_CONFIG_START( konendev, konendev_state ) +static MACHINE_CONFIG_START( konendev ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", PPC403GCX, 32000000) // Clock unknown MCFG_CPU_PROGRAM_MAP(konendev_map) diff --git a/src/mame/drivers/konin.cpp b/src/mame/drivers/konin.cpp index db194aa5e59..68c15cf24f3 100644 --- a/src/mame/drivers/konin.cpp +++ b/src/mame/drivers/konin.cpp @@ -102,7 +102,7 @@ WRITE_LINE_MEMBER( konin_state::clock_w ) m_uart->write_rxc(state); } -static MACHINE_CONFIG_START( konin, konin_state ) +static MACHINE_CONFIG_START( konin ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80, XTAL_4MHz) MCFG_CPU_PROGRAM_MAP(konin_mem) @@ -140,5 +140,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 198?, konin, 0, 0, konin, konin, driver_device, 0, "Mera-Elzab", "Konin", MACHINE_IS_SKELETON | MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 198?, konin, 0, 0, konin, konin, konin_state, 0, "Mera-Elzab", "Konin", MACHINE_IS_SKELETON | MACHINE_NOT_WORKING | MACHINE_NO_SOUND) diff --git a/src/mame/drivers/konmedal.cpp b/src/mame/drivers/konmedal.cpp index 4686ffb5434..0b6dbb22163 100644 --- a/src/mame/drivers/konmedal.cpp +++ b/src/mame/drivers/konmedal.cpp @@ -206,7 +206,7 @@ void konmedal_state::machine_reset() { } -static MACHINE_CONFIG_START( konmedal, konmedal_state ) +static MACHINE_CONFIG_START( konmedal ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_14_31818MHz/2) // z84c0008pec 8mhz part, 14.31818Mhz xtal verified on PCB, divisor unknown @@ -261,4 +261,4 @@ ROM_START( tsukande ) ROM_LOAD( "441a12.10e", 0x080000, 0x080000, CRC(dc2dd5bc) SHA1(28ef6c96c360d706a4296a686f3f2a54fce61bfb) ) ROM_END -GAME( 1995, tsukande, 0, konmedal, konmedal, driver_device, 0, 0, "Konami", "Tsukande Toru Chicchi", MACHINE_NOT_WORKING) +GAME( 1995, tsukande, 0, konmedal, konmedal, konmedal_state, 0, ROT0, "Konami", "Tsukande Toru Chicchi", MACHINE_NOT_WORKING) diff --git a/src/mame/drivers/kontest.cpp b/src/mame/drivers/kontest.cpp index e794a2fd9ad..22f3610345d 100644 --- a/src/mame/drivers/kontest.cpp +++ b/src/mame/drivers/kontest.cpp @@ -247,7 +247,7 @@ void kontest_state::machine_reset() m_control = 0; } -static MACHINE_CONFIG_START( kontest, kontest_state ) +static MACHINE_CONFIG_START( kontest ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80,MAIN_CLOCK/8) @@ -291,4 +291,4 @@ ROM_START( kontest ) ROM_LOAD( "800a02.4f", 0x000000, 0x000020, CRC(6d604171) SHA1(6b1366fb53cecbde6fb651142a77917dd16daf69) ) ROM_END -GAME( 1987?, kontest, 0, kontest, kontest, driver_device, 0, ROT0, "Konami", "Konami Test Board (GX800, Japan)", MACHINE_SUPPORTS_SAVE ) // late 1987 or early 1988 +GAME( 1987?, kontest, 0, kontest, kontest, kontest_state, 0, ROT0, "Konami", "Konami Test Board (GX800, Japan)", MACHINE_SUPPORTS_SAVE ) // late 1987 or early 1988 diff --git a/src/mame/drivers/kopunch.cpp b/src/mame/drivers/kopunch.cpp index 50abe9a3b3c..2ca5856dcb4 100644 --- a/src/mame/drivers/kopunch.cpp +++ b/src/mame/drivers/kopunch.cpp @@ -229,7 +229,7 @@ void kopunch_state::machine_start() save_item(NAME(m_scrollx)); } -static MACHINE_CONFIG_START( kopunch, kopunch_state ) +static MACHINE_CONFIG_START( kopunch ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8085A, 4000000) // 4 MHz? @@ -312,4 +312,4 @@ ROM_START( kopunch ) ROM_END -GAME( 1981, kopunch, 0, kopunch, kopunch, driver_device, 0, ROT270, "Sega", "KO Punch", MACHINE_NO_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_SUPPORTS_SAVE ) +GAME( 1981, kopunch, 0, kopunch, kopunch, kopunch_state, 0, ROT270, "Sega", "KO Punch", MACHINE_NO_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/kramermc.cpp b/src/mame/drivers/kramermc.cpp index 03f0fd2d900..9197df36af2 100644 --- a/src/mame/drivers/kramermc.cpp +++ b/src/mame/drivers/kramermc.cpp @@ -109,7 +109,7 @@ static INPUT_PORTS_START( kramermc ) INPUT_PORTS_END /* Machine driver */ -static MACHINE_CONFIG_START( kramermc, kramermc_state ) +static MACHINE_CONFIG_START( kramermc ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 1500000) MCFG_CPU_PROGRAM_MAP(kramermc_mem) @@ -150,5 +150,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1987, kramermc, 0, 0, kramermc, kramermc, kramermc_state, kramermc,"Manfred Kramer", "Kramer MC", MACHINE_NO_SOUND) +/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ +COMP( 1987, kramermc, 0, 0, kramermc, kramermc, kramermc_state, kramermc,"Manfred Kramer", "Kramer MC", MACHINE_NO_SOUND) diff --git a/src/mame/drivers/kron.cpp b/src/mame/drivers/kron.cpp index 74e7888b7d0..6af2118dba0 100644 --- a/src/mame/drivers/kron.cpp +++ b/src/mame/drivers/kron.cpp @@ -290,7 +290,7 @@ WRITE_LINE_MEMBER(kron180_state::keyb_interrupt) /* * Machine configuration */ -static MACHINE_CONFIG_START (kron180, kron180_state) +static MACHINE_CONFIG_START (kron180) /* basic machine hardware */ MCFG_CPU_ADD ("maincpu", Z180, XTAL_12_288MHz) MCFG_CPU_PROGRAM_MAP (kron180_mem) @@ -321,5 +321,5 @@ ROM_START (kron180) ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP (1995, kron180, 0, 0, kron180, kron180, driver_device, 0, "Kron Ltd", "Kron K-180", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP ( 1995, kron180, 0, 0, kron180, kron180, kron180_state, 0, "Kron Ltd", "Kron K-180", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/ksayakyu.cpp b/src/mame/drivers/ksayakyu.cpp index 3e67efdd53d..4ec6e1a2dd1 100644 --- a/src/mame/drivers/ksayakyu.cpp +++ b/src/mame/drivers/ksayakyu.cpp @@ -250,7 +250,7 @@ void ksayakyu_state::machine_reset() m_flipscreen = 0; } -static MACHINE_CONFIG_START( ksayakyu, ksayakyu_state ) +static MACHINE_CONFIG_START( ksayakyu ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80,MAIN_CLOCK/8) //divider is guessed @@ -333,4 +333,4 @@ ROM_START( ksayakyu ) ROM_LOAD( "9f.bin", 0x0000, 0x0100, CRC(ff71b27f) SHA1(6aad2bd2be997595a05ddb81d24df8fe1435910b) ) ROM_END -GAME( 1985, ksayakyu, 0, ksayakyu, ksayakyu, driver_device, 0, ORIENTATION_FLIP_Y, "Taito Corporation", "Kusayakyuu", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, ksayakyu, 0, ksayakyu, ksayakyu, ksayakyu_state, 0, ORIENTATION_FLIP_Y, "Taito Corporation", "Kusayakyuu", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/ksys573.cpp b/src/mame/drivers/ksys573.cpp index d05e306822b..4d70db2351d 100644 --- a/src/mame/drivers/ksys573.cpp +++ b/src/mame/drivers/ksys573.cpp @@ -2021,7 +2021,7 @@ static MACHINE_CONFIG_FRAGMENT( cr589_config ) MCFG_SOUND_ROUTE( 1, "^^^^rspeaker", 1.0 ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( konami573, ksys573_state ) +static MACHINE_CONFIG_START( konami573 ) /* basic machine hardware */ MCFG_CPU_ADD( "maincpu", CXD8530CQ, XTAL_67_7376MHz ) MCFG_CPU_PROGRAM_MAP( konami573_map ) @@ -2029,8 +2029,8 @@ static MACHINE_CONFIG_START( konami573, ksys573_state ) MCFG_RAM_MODIFY( "maincpu:ram" ) MCFG_RAM_DEFAULT_SIZE( "4M" ) - MCFG_PSX_DMA_CHANNEL_READ( "maincpu", 5, psx_dma_read_delegate(&ksys573_state::cdrom_dma_read, (ksys573_state *) owner ) ) - MCFG_PSX_DMA_CHANNEL_WRITE( "maincpu", 5, psx_dma_write_delegate(&ksys573_state::cdrom_dma_write, (ksys573_state *) owner ) ) + MCFG_PSX_DMA_CHANNEL_READ( "maincpu", 5, psxdma_device::read_delegate(&ksys573_state::cdrom_dma_read, (ksys573_state *) owner ) ) + MCFG_PSX_DMA_CHANNEL_WRITE( "maincpu", 5, psxdma_device::write_delegate(&ksys573_state::cdrom_dma_write, (ksys573_state *) owner ) ) MCFG_MACHINE_RESET_OVERRIDE( ksys573_state, konami573 ) @@ -4742,117 +4742,117 @@ ROM_START( strgchmp ) ROM_LOAD( "710uaa.22h", 0x000000, 0x002000, CRC(a3e93d49) SHA1(630daa1a02320433a068eb5214f6b30acc06df76) ) ROM_END -GAME( 1997, sys573, 0, konami573, konami573, driver_device, 0, ROT0, "Konami", "System 573 BIOS", MACHINE_IS_BIOS_ROOT ) - -GAME( 1997, strgchmp, sys573, konami573, hndlchmp, driver_device, 0, ROT0, "Konami", "Steering Champ (GQ710 VER. UAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1997, hndlchmp, strgchmp, konami573, hndlchmp, driver_device, 0, ROT0, "Konami", "Handle Champ (GQ710 VER. JAB)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1998, darkhleg, sys573, konami573x, konami573, driver_device, 0, ROT0, "Konami", "Dark Horse Legend (GX706 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1998, fbaitbc, sys573, fbaitbc, fbaitbc, driver_device, 0, ROT0, "Konami", "Fisherman's Bait - A Bass Challenge (GE765 VER. UAB)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1998, bassangl, fbaitbc, fbaitbc, fbaitbc, driver_device, 0, ROT0, "Konami", "Bass Angler (GE765 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1998, powyakex, sys573, konami573x, konami573, driver_device, 0, ROT0, "Konami", "Jikkyou Powerful Pro Yakyuu EX (GX802 VER. JAB)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1998, konam80s, sys573, konami573x, konami573, driver_device, 0, ROT90, "Konami", "Konami 80's AC Special (GC826 VER. EAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1998, konam80u, konam80s, konami573x, konami573, driver_device, 0, ROT90, "Konami", "Konami 80's AC Special (GC826 VER. UAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1998, konam80j, konam80s, konami573x, konami573, driver_device, 0, ROT90, "Konami", "Konami 80's Gallery (GC826 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1998, konam80a, konam80s, konami573x, konami573, driver_device, 0, ROT90, "Konami", "Konami 80's AC Special (GC826 VER. AAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1998, konam80k, konam80s, konami573x, konami573, driver_device, 0, ROT90, "Konami", "Konami 80's AC Special (GC826 VER. KAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1999, dstage, sys573, dsftkd, ddr, ksys573_state, ddr, ROT0, "Konami", "Dancing Stage - Internet Ranking Ver (GC845 VER. EBA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1999, dstagea, dstage, ddr, ddr, ksys573_state, ddr, ROT0, "Konami", "Dancing Stage (GN845 VER. EAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1999, ddru, dstage, ddr, ddr, ksys573_state, ddr, ROT0, "Konami", "Dance Dance Revolution (GN845 VER. UAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1998, ddrj, dstage, ddr, ddr, ksys573_state, ddr, ROT0, "Konami", "Dance Dance Revolution - Internet Ranking Ver (GC845 VER. JBA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1998, ddrja, dstage, ddr, ddr, ksys573_state, ddr, ROT0, "Konami", "Dance Dance Revolution (GC845 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) -GAME( 1998, ddrjb, dstage, ddr, ddr, ksys573_state, ddr, ROT0, "Konami", "Dance Dance Revolution (GC845 VER. JAB)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) -GAME( 1999, ddra, dstage, ddr, ddr, ksys573_state, ddr, ROT0, "Konami", "Dance Dance Revolution (GN845 VER. AAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1998, fbait2bc, sys573, fbaitbc, fbaitbc, driver_device, 0, ROT0, "Konami", "Fisherman's Bait 2 - A Bass Challenge (GE865 VER. UAB)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1998, bassang2, fbait2bc, fbaitbc, fbaitbc, driver_device, 0, ROT0, "Konami", "Bass Angler 2 (GE865 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1998, hyperbbc, sys573, hyperbbc, hyperbbc, ksys573_state, hyperbbc, ROT0, "Konami", "Hyper Bishi Bashi Champ (GQ876 VER. EAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1998, hyperbbca, hyperbbc, hyperbbc, hyperbbc, ksys573_state, hyperbbc, ROT0, "Konami", "Hyper Bishi Bashi Champ (GQ876 VER. AAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1998, hyperbbck, hyperbbc, hyperbbc, hyperbbc, ksys573_state, hyperbbc, ROT0, "Konami", "Hyper Bishi Bashi Champ (GE876 VER. KAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1999, gchgchmp, sys573, gchgchmp, gchgchmp, driver_device, 0, ROT0, "Konami", "Gachaga Champ (GE877 VER. JAB)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1999, drmn, sys573, drmn, drmn, ksys573_state, drmn, ROT0, "Konami", "DrumMania (GQ881 VER. JAD)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) -GAME( 1999, gtrfrks, sys573, gtrfrks, gtrfrks, driver_device, 0, ROT0, "Konami", "Guitar Freaks (GQ886 VER. EAC)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1999, gtrfrksu, gtrfrks, gtrfrks, gtrfrks, driver_device, 0, ROT0, "Konami", "Guitar Freaks (GQ886 VER. UAC)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1999, gtrfrksj, gtrfrks, gtrfrks, gtrfrks, driver_device, 0, ROT0, "Konami", "Guitar Freaks (GQ886 VER. JAC)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1999, gtrfrksa, gtrfrks, gtrfrks, gtrfrks, driver_device, 0, ROT0, "Konami", "Guitar Freaks (GQ886 VER. AAC)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1999, fbaitmc, sys573, fbaitbc, fbaitmc, driver_device, 0, ROT0, "Konami", "Fisherman's Bait - Marlin Challenge (GX889 VER. EA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1999, fbaitmcu, fbaitmc, fbaitbc, fbaitmc, driver_device, 0, ROT0, "Konami", "Fisherman's Bait - Marlin Challenge (GX889 VER. UA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1999, fbaitmcj, fbaitmc, fbaitbc, fbaitmc, driver_device, 0, ROT0, "Konami", "Fisherman's Bait - Marlin Challenge (GX889 VER. JA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1999, fbaitmca, fbaitmc, fbaitbc, fbaitmc, driver_device, 0, ROT0, "Konami", "Fisherman's Bait - Marlin Challenge (GX889 VER. AA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1999, ddr2m, sys573, ddr, ddr, ksys573_state, ddr, ROT0, "Konami", "Dance Dance Revolution 2nd Mix (GN895 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1999, ddr2ml, ddr2m, ddr2ml, ddr, ksys573_state, ddr, ROT0, "Konami", "Dance Dance Revolution 2nd Mix - Link Ver (GE885 VER. JAB)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1999, ddr2mla, ddr2m, ddr2ml, ddr, ksys573_state, ddr, ROT0, "Konami", "Dance Dance Revolution 2nd Mix - Link Ver (GE885 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1999, ddrbocd, ddr2m, ddr2ml, ddr, ksys573_state, ddr, ROT0, "Konami", "Dance Dance Revolution Best of Cool Dancers (GE892 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1999, ddr2mc, ddr2m, ddr, ddr, ksys573_state, ddr, ROT0, "Konami", "Dance Dance Revolution 2nd Mix with beatmaniaIIDX CLUB VERSiON (GE896 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1999, ddr2mc2, ddr2m, ddr, ddr, ksys573_state, ddr, ROT0, "Konami", "Dance Dance Revolution 2nd Mix with beatmaniaIIDX substream CLUB VERSiON 2 (GE984 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1999, gtrfrk2m, sys573, gtrfrk2m, gtrfrks, driver_device, 0, ROT0, "Konami", "Guitar Freaks 2nd Mix Ver 1.01 (GQ883 VER. JAD)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1999, dsftkd, sys573, dsftkd, ddr, ksys573_state, ddr, ROT0, "Konami", "Dancing Stage featuring TRUE KiSS DESTiNATiON (G*884 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1999, cr589fw, sys573, konami573, konami573, driver_device, 0, ROT0, "Konami", "CD-ROM Drive Updater 2.0 (700B04)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1999, cr589fwa, sys573, konami573, konami573, driver_device, 0, ROT0, "Konami", "CD-ROM Drive Updater (700A04)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 2000, ddr3mk, sys573, ddr3m, ddr, driver_device, 0, ROT0, "Konami", "Dance Dance Revolution 3rd Mix - Ver.Korea2 (GN887 VER. KBA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.3 */ -GAME( 2000, ddr3mka, ddr3mk, ddr3m, ddr, driver_device, 0, ROT0, "Konami", "Dance Dance Revolution 3rd Mix - Ver.Korea (GN887 VER. KAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.3 */ -GAME( 1999, ddr3ma, ddr3mk, ddr3m, ddr, driver_device, 0, ROT0, "Konami", "Dance Dance Revolution 3rd Mix (GN887 VER. AAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.1 */ -GAME( 1999, ddr3mj, ddr3mk, ddr3m, ddr, driver_device, 0, ROT0, "Konami", "Dance Dance Revolution 3rd Mix (GN887 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.0 */ -GAME( 1999, ddrsbm, sys573, ddrsolo, ddrsolo, driver_device, 0, ROT0, "Konami", "Dance Dance Revolution Solo Bass Mix (GQ894 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) -GAME( 1999, ddrs2k, sys573, ddrs2k, ddrsolo, driver_device, 0, ROT0, "Konami", "Dance Dance Revolution Solo 2000 (GC905 VER. AAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.3 */ -GAME( 1999, ddrs2kj, ddrs2k, ddrs2k, ddrsolo, driver_device, 0, ROT0, "Konami", "Dance Dance Revolution Solo 2000 (GC905 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.2 */ -GAME( 1999, hypbbc2p, sys573, hypbbc2p, hypbbc2p, ksys573_state, hyperbbc, ROT0, "Konami", "Hyper Bishi Bashi Champ - 2 Player (GX908 1999/08/24 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1999, hypbbc2pk, hypbbc2p, hypbbc2p, hypbbc2p, ksys573_state, hyperbbc, ROT0, "Konami", "Hyper Bishi Bashi Champ - 2 Player (GX908 1999/08/24 VER. KAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1999, dsfdct, sys573, ddr3m, ddr, driver_device, 0, ROT0, "Konami", "Dancing Stage featuring Dreams Come True (GC910 VER. JCA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) -GAME( 1999, dsfdcta, dsfdct, dsfdcta, ddr, ksys573_state, ddr, ROT0, "Konami", "Dancing Stage featuring Dreams Come True (GC910 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1999, drmn2m, sys573, drmn2m, drmn, driver_device, 0, ROT0, "Konami", "DrumMania 2nd Mix (GE912 VER. JAB)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.5 */ -GAME( 1999, drmn2mpu, drmn2m, drmn2m, drmn, driver_device, 0, ROT0, "Konami", "DrumMania 2nd Mix Session Power Up Kit (GE912 VER. JAB)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.5 */ -GAME( 1999, stepchmp, sys573, salarymc, hyperbbc, ksys573_state, salarymc, ROT0, "Konami", "Step Champ (GQ930 VER. JA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND ) -GAME( 2000, dncfrks, sys573, dmx, dmx, driver_device, 0, ROT0, "Konami", "Dance Freaks (G*874 VER. KAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.6 */ -GAME( 2000, dmx, dncfrks, dmx, dmx, driver_device, 0, ROT0, "Konami", "Dance Maniax (G*874 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.6 */ -GAME( 2000, gunmania, sys573, gunmania, gunmania, driver_device, 0, ROT0, "Konami", "GunMania (GL906 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) -GAME( 2000, fghtmn, sys573, pnchmn, pnchmn, ksys573_state, pnchmn, ROT0, "Konami", "Fighting Mania (QG918 VER. EAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* motor/artwork/network */ -GAME( 2000, fghtmna, fghtmn, pnchmn, pnchmn, ksys573_state, pnchmn, ROT0, "Konami", "Fighting Mania (QG918 VER. AAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* motor/artwork/network */ -GAME( 2000, pnchmn, fghtmn, pnchmn, pnchmn, ksys573_state, pnchmn, ROT0, "Konami", "Punch Mania: Hokuto No Ken (GQ918 VER. JAB)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* motor/artwork/network */ -GAME( 2000, pnchmna, fghtmn, pnchmn, pnchmn, ksys573_state, pnchmn, ROT0, "Konami", "Punch Mania: Hokuto No Ken (GQ918 VER. JAB ALT CD)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* motor/artwork/network */ -GAME( 2000, fghtmnk, fghtmn, pnchmn, pnchmn, ksys573_state, pnchmn, ROT0, "Konami", "Fighting Mania (QG918 VER. KAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* motor/artwork/network */ -GAME( 2000, fghtmnu, fghtmn, pnchmn, pnchmn, ksys573_state, pnchmn, ROT0, "Konami", "Fighting Mania (QG918 VER. UAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* motor/artwork/network */ -GAME( 2000, dsem, sys573, dsem, ddr, driver_device, 0, ROT0, "Konami", "Dancing Stage Euro Mix (G*936 VER. EAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.7 */ -GAME( 2000, gtrfrk3m, sys573, gtrfrk3m, gtrfrks, driver_device, 0, ROT0, "Konami", "Guitar Freaks 3rd Mix (GE949 VER. JAC)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.4 */ -GAME( 2000, gtfrk3ma, gtrfrk3m, gtrfrk3m, gtrfrks, driver_device, 0, ROT0, "Konami", "Guitar Freaks 3rd Mix (GE949 VER. JAB)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.4 */ -GAME( 2000, gtfrk3mb, gtrfrk3m, gtrfrk5m, gtrfrks, driver_device, 0, ROT0, "Konami", "Guitar Freaks 3rd Mix - security cassette versionup (949JAZ02)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.4 */ -GAME( 2000, pnchmn2, sys573, pnchmn2, pnchmn, ksys573_state, pnchmn, ROT0, "Konami", "Punch Mania 2: Hokuto No Ken (GQA09 JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* motor/artwork/network */ -GAME( 2000, salarymc, sys573, salarymc, hypbbc2p, ksys573_state, salarymc, ROT0, "Konami", "Salary Man Champ (GCA18 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 2000, ddr3mp, sys573, ddr3mp, ddr, driver_device, 0, ROT0, "Konami", "Dance Dance Revolution 3rd Mix Plus (G*A22 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.6 */ -GAME( 2000, pcnfrk3m, sys573, drmn2m, drmn, driver_device, 0, ROT0, "Konami", "Percussion Freaks 3rd Mix (G*A23 VER. KAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.8 */ -GAME( 2000, drmn3m, pcnfrk3m, drmn2m, drmn, driver_device, 0, ROT0, "Konami", "DrumMania 3rd Mix (G*A23 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.8 */ -GAME( 2000, gtrfrk4m, sys573, gtrfrk3m, gtrfrks, driver_device, 0, ROT0, "Konami", "Guitar Freaks 4th Mix (G*A24 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.8 */ -GAME( 2000, ddr4m, sys573, ddr3mp, ddr, driver_device, 0, ROT0, "Konami", "Dance Dance Revolution 4th Mix (G*A33 VER. AAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.8 */ -GAME( 2000, ddr4mj, ddr4m, ddr3mp, ddr, driver_device, 0, ROT0, "Konami", "Dance Dance Revolution 4th Mix (G*A33 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.8 */ -GAME( 2000, ddr4ms, sys573, ddr4ms, ddrsolo, driver_device, 0, ROT0, "Konami", "Dance Dance Revolution 4th Mix Solo (G*A33 VER. ABA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.8 */ -GAME( 2000, ddr4msj, ddr4ms, ddr4ms, ddrsolo, driver_device, 0, ROT0, "Konami", "Dance Dance Revolution 4th Mix Solo (G*A33 VER. JBA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.8 */ -GAME( 2000, dsfdr, sys573, dsfdr, ddr, driver_device, 0, ROT0, "Konami", "Dancing Stage Featuring Disney's Rave (GCA37JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.8 */ -GAME( 2000, ddrusa, sys573, ddrusa, ddr, driver_device, 0, ROT0, "Konami", "Dance Dance Revolution USA (G*A44 VER. UAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.8 */ -GAME( 2000, ddr4mp, sys573, ddr3mp, ddr, driver_device, 0, ROT0, "Konami", "Dance Dance Revolution 4th Mix Plus (G*A34 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.9 */ -GAME( 2000, ddr4mps, sys573, ddr4ms, ddrsolo, driver_device, 0, ROT0, "Konami", "Dance Dance Revolution 4th Mix Plus Solo (G*A34 VER. JBA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.9 */ -GAME( 2000, dmx2m, sys573, dmx, dmx, driver_device, 0, ROT0, "Konami", "Dance Maniax 2nd Mix (G*A39 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.9 */ -GAME( 2000, drmn4m, sys573, drmn4m, drmn, driver_device, 0, ROT0, "Konami", "DrumMania 4th Mix (G*A25 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.8 */ -GAME( 2001, gtrfrk5m, sys573, gtrfrk5m, gtrfrks, driver_device, 0, ROT0, "Konami", "Guitar Freaks 5th Mix (G*A26 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.9 */ -GAME( 2001, ddr5m, sys573, ddr5m, ddr, driver_device, 0, ROT0, "Konami", "Dance Dance Revolution 5th Mix (G*A27 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.9 */ -GAME( 2001, dmx2majp, sys573, dmx, dmx, driver_device, 0, ROT0, "Konami", "Dance Maniax 2nd Mix Append J-Paradise (G*A38 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.9 */ -GAME( 2001, mamboagg, sys573, mamboagg, mamboagg, driver_device, 0, ROT0, "Konami", "Mambo A Go-Go (GQA40 VER. JAB)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.95 */ -GAME( 2001, mamboagga, mamboagg, mamboagga, mamboagg, driver_device, 0, ROT0, "Konami", "Mambo A Go-Go e-Amusement (GQA40 VER. JRB)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.95 */ -GAME( 2001, drmn5m, sys573, drmn4m, drmn, driver_device, 0, ROT0, "Konami", "DrumMania 5th Mix (G*B05 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.9 */ -GAME( 2001, gtrfrk6m, sys573, gtrfrk5m, gtrfrks, driver_device, 0, ROT0, "Konami", "Guitar Freaks 6th Mix (G*B06 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.9 */ -GAME( 2001, drmn6m, sys573, drmn4m, drmn, driver_device, 0, ROT0, "Konami", "DrumMania 6th Mix (G*B16 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.95 */ -GAME( 2001, gtrfrk7m, sys573, gtrfrk7m, gtrfrks, driver_device, 0, ROT0, "Konami", "Guitar Freaks 7th Mix (G*B17 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.95 */ -GAME( 2001, ddrmax, sys573, ddr5m, ddr, driver_device, 0, ROT0, "Konami", "DDR Max - Dance Dance Revolution 6th Mix (G*B19 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.9 */ -GAME( 2002, ddrmax2, sys573, ddr5m, ddr, driver_device, 0, ROT0, "Konami", "DDR Max 2 - Dance Dance Revolution 7th Mix (G*B20 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.95 */ -GAME( 2002, mrtlbeat, sys573, ddr5m, ddr, driver_device, 0, ROT0, "Konami", "Martial Beat (G*B47 VER. JBA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.9 */ -GAME( 2002, drmn7m, sys573, drmn4m, drmn, driver_device, 0, ROT0, "Konami", "DrumMania 7th Mix power-up ver. (G*C07 VER. JBA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.95 */ -GAME( 2002, drmn7ma, drmn7m, drmn4m, drmn, driver_device, 0, ROT0, "Konami", "DrumMania 7th Mix (G*C07 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.95 */ -GAME( 2002, gtrfrk8m, sys573, gtrfrk7m, gtrfrks, driver_device, 0, ROT0, "Konami", "Guitar Freaks 8th Mix power-up ver. (G*C08 VER. JBA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.95 */ -GAME( 2002, gtrfrk8ma, gtrfrk8m, gtrfrk7m, gtrfrks, driver_device, 0, ROT0, "Konami", "Guitar Freaks 8th Mix (G*C08 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.95 */ -GAME( 2002, dsem2, sys573, ddr5m, ddr, driver_device, 0, ROT0, "Konami", "Dancing Stage Euro Mix 2 (G*C23 VER. EAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.95 */ -GAME( 2002, ddrextrm, sys573, ddr5m, ddr, driver_device, 0, ROT0, "Konami", "Dance Dance Revolution Extreme (G*C36 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.95 */ -GAME( 2003, drmn8m, sys573, drmn4m, drmn, driver_device, 0, ROT0, "Konami", "DrumMania 8th Mix (G*C07 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.95 */ -GAME( 2003, gtrfrk9m, sys573, gtrfrk7m, gtrfrks, driver_device, 0, ROT0, "Konami", "Guitar Freaks 9th Mix (G*C39 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.95 */ -GAME( 2003, drmn9m, sys573, drmn4m, drmn, driver_device, 0, ROT0, "Konami", "DrumMania 9th Mix (G*D09 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.95 */ -GAME( 2003, gtfrk10m, sys573, gtrfrk7m, gtrfrks, driver_device, 0, ROT0, "Konami", "Guitar Freaks 10th Mix (G*D10 VER. JAB)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.95 */ -GAME( 2003, gtfrk10ma, gtfrk10m, gtrfrk7m, gtrfrks, driver_device, 0, ROT0, "Konami", "Guitar Freaks 10th Mix (G*D10 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.95 */ -GAME( 2003, gtfrk10mb, gtfrk10m, gtfrk10mb, gtrfrks, driver_device, 0, ROT0, "Konami", "Guitar Freaks 10th Mix eAmusement (G*D10 VER. JBA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.95 */ -GAME( 2004, gtfrk11m, sys573, gtrfrk7m, gtrfrks, driver_device, 0, ROT0, "Konami", "Guitar Freaks 11th Mix (G*D39 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.95 */ -GAME( 2004, drmn10m, sys573, drmn4m, drmn, driver_device, 0, ROT0, "Konami", "DrumMania 10th Mix (G*D40 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.95 */ +GAME( 1997, sys573, 0, konami573, konami573, ksys573_state, 0, ROT0, "Konami", "System 573 BIOS", MACHINE_IS_BIOS_ROOT ) + +GAME( 1997, strgchmp, sys573, konami573, hndlchmp, ksys573_state, 0, ROT0, "Konami", "Steering Champ (GQ710 VER. UAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1997, hndlchmp, strgchmp, konami573, hndlchmp, ksys573_state, 0, ROT0, "Konami", "Handle Champ (GQ710 VER. JAB)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1998, darkhleg, sys573, konami573x, konami573, ksys573_state, 0, ROT0, "Konami", "Dark Horse Legend (GX706 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1998, fbaitbc, sys573, fbaitbc, fbaitbc, ksys573_state, 0, ROT0, "Konami", "Fisherman's Bait - A Bass Challenge (GE765 VER. UAB)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1998, bassangl, fbaitbc, fbaitbc, fbaitbc, ksys573_state, 0, ROT0, "Konami", "Bass Angler (GE765 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1998, powyakex, sys573, konami573x, konami573, ksys573_state, 0, ROT0, "Konami", "Jikkyou Powerful Pro Yakyuu EX (GX802 VER. JAB)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1998, konam80s, sys573, konami573x, konami573, ksys573_state, 0, ROT90, "Konami", "Konami 80's AC Special (GC826 VER. EAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1998, konam80u, konam80s, konami573x, konami573, ksys573_state, 0, ROT90, "Konami", "Konami 80's AC Special (GC826 VER. UAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1998, konam80j, konam80s, konami573x, konami573, ksys573_state, 0, ROT90, "Konami", "Konami 80's Gallery (GC826 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1998, konam80a, konam80s, konami573x, konami573, ksys573_state, 0, ROT90, "Konami", "Konami 80's AC Special (GC826 VER. AAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1998, konam80k, konam80s, konami573x, konami573, ksys573_state, 0, ROT90, "Konami", "Konami 80's AC Special (GC826 VER. KAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1999, dstage, sys573, dsftkd, ddr, ksys573_state, ddr, ROT0, "Konami", "Dancing Stage - Internet Ranking Ver (GC845 VER. EBA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1999, dstagea, dstage, ddr, ddr, ksys573_state, ddr, ROT0, "Konami", "Dancing Stage (GN845 VER. EAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1999, ddru, dstage, ddr, ddr, ksys573_state, ddr, ROT0, "Konami", "Dance Dance Revolution (GN845 VER. UAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1998, ddrj, dstage, ddr, ddr, ksys573_state, ddr, ROT0, "Konami", "Dance Dance Revolution - Internet Ranking Ver (GC845 VER. JBA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1998, ddrja, dstage, ddr, ddr, ksys573_state, ddr, ROT0, "Konami", "Dance Dance Revolution (GC845 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) +GAME( 1998, ddrjb, dstage, ddr, ddr, ksys573_state, ddr, ROT0, "Konami", "Dance Dance Revolution (GC845 VER. JAB)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) +GAME( 1999, ddra, dstage, ddr, ddr, ksys573_state, ddr, ROT0, "Konami", "Dance Dance Revolution (GN845 VER. AAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1998, fbait2bc, sys573, fbaitbc, fbaitbc, ksys573_state, 0, ROT0, "Konami", "Fisherman's Bait 2 - A Bass Challenge (GE865 VER. UAB)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1998, bassang2, fbait2bc, fbaitbc, fbaitbc, ksys573_state, 0, ROT0, "Konami", "Bass Angler 2 (GE865 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1998, hyperbbc, sys573, hyperbbc, hyperbbc, ksys573_state, hyperbbc, ROT0, "Konami", "Hyper Bishi Bashi Champ (GQ876 VER. EAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1998, hyperbbca, hyperbbc, hyperbbc, hyperbbc, ksys573_state, hyperbbc, ROT0, "Konami", "Hyper Bishi Bashi Champ (GQ876 VER. AAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1998, hyperbbck, hyperbbc, hyperbbc, hyperbbc, ksys573_state, hyperbbc, ROT0, "Konami", "Hyper Bishi Bashi Champ (GE876 VER. KAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1999, gchgchmp, sys573, gchgchmp, gchgchmp, ksys573_state, 0, ROT0, "Konami", "Gachaga Champ (GE877 VER. JAB)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1999, drmn, sys573, drmn, drmn, ksys573_state, drmn, ROT0, "Konami", "DrumMania (GQ881 VER. JAD)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) +GAME( 1999, gtrfrks, sys573, gtrfrks, gtrfrks, ksys573_state, 0, ROT0, "Konami", "Guitar Freaks (GQ886 VER. EAC)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1999, gtrfrksu, gtrfrks, gtrfrks, gtrfrks, ksys573_state, 0, ROT0, "Konami", "Guitar Freaks (GQ886 VER. UAC)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1999, gtrfrksj, gtrfrks, gtrfrks, gtrfrks, ksys573_state, 0, ROT0, "Konami", "Guitar Freaks (GQ886 VER. JAC)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1999, gtrfrksa, gtrfrks, gtrfrks, gtrfrks, ksys573_state, 0, ROT0, "Konami", "Guitar Freaks (GQ886 VER. AAC)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1999, fbaitmc, sys573, fbaitbc, fbaitmc, ksys573_state, 0, ROT0, "Konami", "Fisherman's Bait - Marlin Challenge (GX889 VER. EA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1999, fbaitmcu, fbaitmc, fbaitbc, fbaitmc, ksys573_state, 0, ROT0, "Konami", "Fisherman's Bait - Marlin Challenge (GX889 VER. UA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1999, fbaitmcj, fbaitmc, fbaitbc, fbaitmc, ksys573_state, 0, ROT0, "Konami", "Fisherman's Bait - Marlin Challenge (GX889 VER. JA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1999, fbaitmca, fbaitmc, fbaitbc, fbaitmc, ksys573_state, 0, ROT0, "Konami", "Fisherman's Bait - Marlin Challenge (GX889 VER. AA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1999, ddr2m, sys573, ddr, ddr, ksys573_state, ddr, ROT0, "Konami", "Dance Dance Revolution 2nd Mix (GN895 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1999, ddr2ml, ddr2m, ddr2ml, ddr, ksys573_state, ddr, ROT0, "Konami", "Dance Dance Revolution 2nd Mix - Link Ver (GE885 VER. JAB)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1999, ddr2mla, ddr2m, ddr2ml, ddr, ksys573_state, ddr, ROT0, "Konami", "Dance Dance Revolution 2nd Mix - Link Ver (GE885 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1999, ddrbocd, ddr2m, ddr2ml, ddr, ksys573_state, ddr, ROT0, "Konami", "Dance Dance Revolution Best of Cool Dancers (GE892 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1999, ddr2mc, ddr2m, ddr, ddr, ksys573_state, ddr, ROT0, "Konami", "Dance Dance Revolution 2nd Mix with beatmaniaIIDX CLUB VERSiON (GE896 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1999, ddr2mc2, ddr2m, ddr, ddr, ksys573_state, ddr, ROT0, "Konami", "Dance Dance Revolution 2nd Mix with beatmaniaIIDX substream CLUB VERSiON 2 (GE984 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1999, gtrfrk2m, sys573, gtrfrk2m, gtrfrks, ksys573_state, 0, ROT0, "Konami", "Guitar Freaks 2nd Mix Ver 1.01 (GQ883 VER. JAD)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1999, dsftkd, sys573, dsftkd, ddr, ksys573_state, ddr, ROT0, "Konami", "Dancing Stage featuring TRUE KiSS DESTiNATiON (G*884 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1999, cr589fw, sys573, konami573, konami573, ksys573_state, 0, ROT0, "Konami", "CD-ROM Drive Updater 2.0 (700B04)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1999, cr589fwa, sys573, konami573, konami573, ksys573_state, 0, ROT0, "Konami", "CD-ROM Drive Updater (700A04)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 2000, ddr3mk, sys573, ddr3m, ddr, ksys573_state, 0, ROT0, "Konami", "Dance Dance Revolution 3rd Mix - Ver.Korea2 (GN887 VER. KBA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.3 */ +GAME( 2000, ddr3mka, ddr3mk, ddr3m, ddr, ksys573_state, 0, ROT0, "Konami", "Dance Dance Revolution 3rd Mix - Ver.Korea (GN887 VER. KAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.3 */ +GAME( 1999, ddr3ma, ddr3mk, ddr3m, ddr, ksys573_state, 0, ROT0, "Konami", "Dance Dance Revolution 3rd Mix (GN887 VER. AAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.1 */ +GAME( 1999, ddr3mj, ddr3mk, ddr3m, ddr, ksys573_state, 0, ROT0, "Konami", "Dance Dance Revolution 3rd Mix (GN887 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.0 */ +GAME( 1999, ddrsbm, sys573, ddrsolo, ddrsolo, ksys573_state, 0, ROT0, "Konami", "Dance Dance Revolution Solo Bass Mix (GQ894 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) +GAME( 1999, ddrs2k, sys573, ddrs2k, ddrsolo, ksys573_state, 0, ROT0, "Konami", "Dance Dance Revolution Solo 2000 (GC905 VER. AAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.3 */ +GAME( 1999, ddrs2kj, ddrs2k, ddrs2k, ddrsolo, ksys573_state, 0, ROT0, "Konami", "Dance Dance Revolution Solo 2000 (GC905 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.2 */ +GAME( 1999, hypbbc2p, sys573, hypbbc2p, hypbbc2p, ksys573_state, hyperbbc, ROT0, "Konami", "Hyper Bishi Bashi Champ - 2 Player (GX908 1999/08/24 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1999, hypbbc2pk, hypbbc2p, hypbbc2p, hypbbc2p, ksys573_state, hyperbbc, ROT0, "Konami", "Hyper Bishi Bashi Champ - 2 Player (GX908 1999/08/24 VER. KAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1999, dsfdct, sys573, ddr3m, ddr, ksys573_state, 0, ROT0, "Konami", "Dancing Stage featuring Dreams Come True (GC910 VER. JCA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) +GAME( 1999, dsfdcta, dsfdct, dsfdcta, ddr, ksys573_state, ddr, ROT0, "Konami", "Dancing Stage featuring Dreams Come True (GC910 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1999, drmn2m, sys573, drmn2m, drmn, ksys573_state, 0, ROT0, "Konami", "DrumMania 2nd Mix (GE912 VER. JAB)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.5 */ +GAME( 1999, drmn2mpu, drmn2m, drmn2m, drmn, ksys573_state, 0, ROT0, "Konami", "DrumMania 2nd Mix Session Power Up Kit (GE912 VER. JAB)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.5 */ +GAME( 1999, stepchmp, sys573, salarymc, hyperbbc, ksys573_state, salarymc, ROT0, "Konami", "Step Champ (GQ930 VER. JA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND ) +GAME( 2000, dncfrks, sys573, dmx, dmx, ksys573_state, 0, ROT0, "Konami", "Dance Freaks (G*874 VER. KAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.6 */ +GAME( 2000, dmx, dncfrks, dmx, dmx, ksys573_state, 0, ROT0, "Konami", "Dance Maniax (G*874 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.6 */ +GAME( 2000, gunmania, sys573, gunmania, gunmania, ksys573_state, 0, ROT0, "Konami", "GunMania (GL906 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) +GAME( 2000, fghtmn, sys573, pnchmn, pnchmn, ksys573_state, pnchmn, ROT0, "Konami", "Fighting Mania (QG918 VER. EAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* motor/artwork/network */ +GAME( 2000, fghtmna, fghtmn, pnchmn, pnchmn, ksys573_state, pnchmn, ROT0, "Konami", "Fighting Mania (QG918 VER. AAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* motor/artwork/network */ +GAME( 2000, pnchmn, fghtmn, pnchmn, pnchmn, ksys573_state, pnchmn, ROT0, "Konami", "Punch Mania: Hokuto No Ken (GQ918 VER. JAB)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* motor/artwork/network */ +GAME( 2000, pnchmna, fghtmn, pnchmn, pnchmn, ksys573_state, pnchmn, ROT0, "Konami", "Punch Mania: Hokuto No Ken (GQ918 VER. JAB ALT CD)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* motor/artwork/network */ +GAME( 2000, fghtmnk, fghtmn, pnchmn, pnchmn, ksys573_state, pnchmn, ROT0, "Konami", "Fighting Mania (QG918 VER. KAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* motor/artwork/network */ +GAME( 2000, fghtmnu, fghtmn, pnchmn, pnchmn, ksys573_state, pnchmn, ROT0, "Konami", "Fighting Mania (QG918 VER. UAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* motor/artwork/network */ +GAME( 2000, dsem, sys573, dsem, ddr, ksys573_state, 0, ROT0, "Konami", "Dancing Stage Euro Mix (G*936 VER. EAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.7 */ +GAME( 2000, gtrfrk3m, sys573, gtrfrk3m, gtrfrks, ksys573_state, 0, ROT0, "Konami", "Guitar Freaks 3rd Mix (GE949 VER. JAC)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.4 */ +GAME( 2000, gtfrk3ma, gtrfrk3m, gtrfrk3m, gtrfrks, ksys573_state, 0, ROT0, "Konami", "Guitar Freaks 3rd Mix (GE949 VER. JAB)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.4 */ +GAME( 2000, gtfrk3mb, gtrfrk3m, gtrfrk5m, gtrfrks, ksys573_state, 0, ROT0, "Konami", "Guitar Freaks 3rd Mix - security cassette versionup (949JAZ02)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.4 */ +GAME( 2000, pnchmn2, sys573, pnchmn2, pnchmn, ksys573_state, pnchmn, ROT0, "Konami", "Punch Mania 2: Hokuto No Ken (GQA09 JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* motor/artwork/network */ +GAME( 2000, salarymc, sys573, salarymc, hypbbc2p, ksys573_state, salarymc, ROT0, "Konami", "Salary Man Champ (GCA18 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 2000, ddr3mp, sys573, ddr3mp, ddr, ksys573_state, 0, ROT0, "Konami", "Dance Dance Revolution 3rd Mix Plus (G*A22 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.6 */ +GAME( 2000, pcnfrk3m, sys573, drmn2m, drmn, ksys573_state, 0, ROT0, "Konami", "Percussion Freaks 3rd Mix (G*A23 VER. KAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.8 */ +GAME( 2000, drmn3m, pcnfrk3m, drmn2m, drmn, ksys573_state, 0, ROT0, "Konami", "DrumMania 3rd Mix (G*A23 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.8 */ +GAME( 2000, gtrfrk4m, sys573, gtrfrk3m, gtrfrks, ksys573_state, 0, ROT0, "Konami", "Guitar Freaks 4th Mix (G*A24 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.8 */ +GAME( 2000, ddr4m, sys573, ddr3mp, ddr, ksys573_state, 0, ROT0, "Konami", "Dance Dance Revolution 4th Mix (G*A33 VER. AAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.8 */ +GAME( 2000, ddr4mj, ddr4m, ddr3mp, ddr, ksys573_state, 0, ROT0, "Konami", "Dance Dance Revolution 4th Mix (G*A33 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.8 */ +GAME( 2000, ddr4ms, sys573, ddr4ms, ddrsolo, ksys573_state, 0, ROT0, "Konami", "Dance Dance Revolution 4th Mix Solo (G*A33 VER. ABA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.8 */ +GAME( 2000, ddr4msj, ddr4ms, ddr4ms, ddrsolo, ksys573_state, 0, ROT0, "Konami", "Dance Dance Revolution 4th Mix Solo (G*A33 VER. JBA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.8 */ +GAME( 2000, dsfdr, sys573, dsfdr, ddr, ksys573_state, 0, ROT0, "Konami", "Dancing Stage Featuring Disney's Rave (GCA37JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.8 */ +GAME( 2000, ddrusa, sys573, ddrusa, ddr, ksys573_state, 0, ROT0, "Konami", "Dance Dance Revolution USA (G*A44 VER. UAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.8 */ +GAME( 2000, ddr4mp, sys573, ddr3mp, ddr, ksys573_state, 0, ROT0, "Konami", "Dance Dance Revolution 4th Mix Plus (G*A34 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.9 */ +GAME( 2000, ddr4mps, sys573, ddr4ms, ddrsolo, ksys573_state, 0, ROT0, "Konami", "Dance Dance Revolution 4th Mix Plus Solo (G*A34 VER. JBA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.9 */ +GAME( 2000, dmx2m, sys573, dmx, dmx, ksys573_state, 0, ROT0, "Konami", "Dance Maniax 2nd Mix (G*A39 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.9 */ +GAME( 2000, drmn4m, sys573, drmn4m, drmn, ksys573_state, 0, ROT0, "Konami", "DrumMania 4th Mix (G*A25 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.8 */ +GAME( 2001, gtrfrk5m, sys573, gtrfrk5m, gtrfrks, ksys573_state, 0, ROT0, "Konami", "Guitar Freaks 5th Mix (G*A26 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.9 */ +GAME( 2001, ddr5m, sys573, ddr5m, ddr, ksys573_state, 0, ROT0, "Konami", "Dance Dance Revolution 5th Mix (G*A27 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.9 */ +GAME( 2001, dmx2majp, sys573, dmx, dmx, ksys573_state, 0, ROT0, "Konami", "Dance Maniax 2nd Mix Append J-Paradise (G*A38 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.9 */ +GAME( 2001, mamboagg, sys573, mamboagg, mamboagg, ksys573_state, 0, ROT0, "Konami", "Mambo A Go-Go (GQA40 VER. JAB)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.95 */ +GAME( 2001, mamboagga, mamboagg, mamboagga, mamboagg, ksys573_state, 0, ROT0, "Konami", "Mambo A Go-Go e-Amusement (GQA40 VER. JRB)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.95 */ +GAME( 2001, drmn5m, sys573, drmn4m, drmn, ksys573_state, 0, ROT0, "Konami", "DrumMania 5th Mix (G*B05 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.9 */ +GAME( 2001, gtrfrk6m, sys573, gtrfrk5m, gtrfrks, ksys573_state, 0, ROT0, "Konami", "Guitar Freaks 6th Mix (G*B06 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.9 */ +GAME( 2001, drmn6m, sys573, drmn4m, drmn, ksys573_state, 0, ROT0, "Konami", "DrumMania 6th Mix (G*B16 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.95 */ +GAME( 2001, gtrfrk7m, sys573, gtrfrk7m, gtrfrks, ksys573_state, 0, ROT0, "Konami", "Guitar Freaks 7th Mix (G*B17 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.95 */ +GAME( 2001, ddrmax, sys573, ddr5m, ddr, ksys573_state, 0, ROT0, "Konami", "DDR Max - Dance Dance Revolution 6th Mix (G*B19 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.9 */ +GAME( 2002, ddrmax2, sys573, ddr5m, ddr, ksys573_state, 0, ROT0, "Konami", "DDR Max 2 - Dance Dance Revolution 7th Mix (G*B20 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.95 */ +GAME( 2002, mrtlbeat, sys573, ddr5m, ddr, ksys573_state, 0, ROT0, "Konami", "Martial Beat (G*B47 VER. JBA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.9 */ +GAME( 2002, drmn7m, sys573, drmn4m, drmn, ksys573_state, 0, ROT0, "Konami", "DrumMania 7th Mix power-up ver. (G*C07 VER. JBA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.95 */ +GAME( 2002, drmn7ma, drmn7m, drmn4m, drmn, ksys573_state, 0, ROT0, "Konami", "DrumMania 7th Mix (G*C07 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.95 */ +GAME( 2002, gtrfrk8m, sys573, gtrfrk7m, gtrfrks, ksys573_state, 0, ROT0, "Konami", "Guitar Freaks 8th Mix power-up ver. (G*C08 VER. JBA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.95 */ +GAME( 2002, gtrfrk8ma, gtrfrk8m, gtrfrk7m, gtrfrks, ksys573_state, 0, ROT0, "Konami", "Guitar Freaks 8th Mix (G*C08 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.95 */ +GAME( 2002, dsem2, sys573, ddr5m, ddr, ksys573_state, 0, ROT0, "Konami", "Dancing Stage Euro Mix 2 (G*C23 VER. EAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.95 */ +GAME( 2002, ddrextrm, sys573, ddr5m, ddr, ksys573_state, 0, ROT0, "Konami", "Dance Dance Revolution Extreme (G*C36 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.95 */ +GAME( 2003, drmn8m, sys573, drmn4m, drmn, ksys573_state, 0, ROT0, "Konami", "DrumMania 8th Mix (G*C07 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.95 */ +GAME( 2003, gtrfrk9m, sys573, gtrfrk7m, gtrfrks, ksys573_state, 0, ROT0, "Konami", "Guitar Freaks 9th Mix (G*C39 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.95 */ +GAME( 2003, drmn9m, sys573, drmn4m, drmn, ksys573_state, 0, ROT0, "Konami", "DrumMania 9th Mix (G*D09 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.95 */ +GAME( 2003, gtfrk10m, sys573, gtrfrk7m, gtrfrks, ksys573_state, 0, ROT0, "Konami", "Guitar Freaks 10th Mix (G*D10 VER. JAB)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.95 */ +GAME( 2003, gtfrk10ma, gtfrk10m, gtrfrk7m, gtrfrks, ksys573_state, 0, ROT0, "Konami", "Guitar Freaks 10th Mix (G*D10 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.95 */ +GAME( 2003, gtfrk10mb, gtfrk10m, gtfrk10mb, gtrfrks, ksys573_state, 0, ROT0, "Konami", "Guitar Freaks 10th Mix eAmusement (G*D10 VER. JBA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.95 */ +GAME( 2004, gtfrk11m, sys573, gtrfrk7m, gtrfrks, ksys573_state, 0, ROT0, "Konami", "Guitar Freaks 11th Mix (G*D39 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.95 */ +GAME( 2004, drmn10m, sys573, drmn4m, drmn, ksys573_state, 0, ROT0, "Konami", "DrumMania 10th Mix (G*D40 VER. JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* BOOT VER 1.95 */ diff --git a/src/mame/drivers/kungfur.cpp b/src/mame/drivers/kungfur.cpp index 60e8417ef1d..a2ac5aaddca 100644 --- a/src/mame/drivers/kungfur.cpp +++ b/src/mame/drivers/kungfur.cpp @@ -284,7 +284,7 @@ void kungfur_state::machine_reset() m_control = 0; } -static MACHINE_CONFIG_START( kungfur, kungfur_state ) +static MACHINE_CONFIG_START( kungfur ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809, 8000000/2) // 4MHz? @@ -310,12 +310,12 @@ static MACHINE_CONFIG_START( kungfur, kungfur_state ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") MCFG_SOUND_ADD("adpcm1", MSM5205, XTAL_384kHz) // clock verified with recording MCFG_MSM5205_VCLK_CB(WRITELINE(kungfur_state, kfr_adpcm1_int)) - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S48_4B) + MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) MCFG_SOUND_ADD("adpcm2", MSM5205, XTAL_384kHz) // " MCFG_MSM5205_VCLK_CB(WRITELINE(kungfur_state, kfr_adpcm2_int)) - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S48_4B) + MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) MACHINE_CONFIG_END @@ -340,4 +340,4 @@ ROM_START( kungfur ) ROM_LOAD( "kr6.bin", 0x20000, 0x10000, CRC(9ea75d4a) SHA1(57445ccb961acb11a25cdac81f2e543d92bcb7f9) ) ROM_END -GAMEL(1987, kungfur, 0, kungfur, kungfur, driver_device, 0, ROT0, "Namco", "Kung-Fu Roushi", MACHINE_SUPPORTS_SAVE, layout_kungfur ) +GAMEL(1987, kungfur, 0, kungfur, kungfur, kungfur_state, 0, ROT0, "Namco", "Kung-Fu Roushi", MACHINE_SUPPORTS_SAVE, layout_kungfur ) diff --git a/src/mame/drivers/kurukuru.cpp b/src/mame/drivers/kurukuru.cpp index 5a2fc951ae3..e24626db159 100644 --- a/src/mame/drivers/kurukuru.cpp +++ b/src/mame/drivers/kurukuru.cpp @@ -848,7 +848,7 @@ void kurukuru_state::machine_reset() * Machine Driver * *************************************************/ -static MACHINE_CONFIG_START( kurukuru, kurukuru_state ) +static MACHINE_CONFIG_START( kurukuru ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80, CPU_CLOCK) @@ -881,12 +881,12 @@ static MACHINE_CONFIG_START( kurukuru, kurukuru_state ) MCFG_SOUND_ADD("adpcm", MSM5205, M5205_CLOCK) MCFG_MSM5205_VCLK_CB(WRITELINE(kurukuru_state, kurukuru_msm5205_vck)) - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S48_4B) /* changed on the fly */ + MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) /* changed on the fly */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( ppj, kurukuru_state ) +static MACHINE_CONFIG_START( ppj ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80, CPU_CLOCK) @@ -919,7 +919,7 @@ static MACHINE_CONFIG_START( ppj, kurukuru_state ) MCFG_SOUND_ADD("adpcm", MSM5205, M5205_CLOCK) MCFG_MSM5205_VCLK_CB(WRITELINE(kurukuru_state, kurukuru_msm5205_vck)) - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S48_4B) // changed on the fly + MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) // changed on the fly MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) MACHINE_CONFIG_END @@ -982,9 +982,9 @@ ROM_END * Game Drivers * ***************************************************************************/ -/* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS */ -GAME( 1990, kurukuru, 0, kurukuru, kurukuru, driver_device, 0, ROT0, "Success / Taiyo Jidoki", "Kuru Kuru Pyon Pyon (Japan)", 0 ) -GAME( 199?, ppj, 0, ppj, ppj, driver_device, 0, ROT0, "Success / Taiyo Jidoki", "Pyon Pyon Jump (V1.40, Japan)", 0 ) +// YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS +GAME( 1990, kurukuru, 0, kurukuru, kurukuru, kurukuru_state, 0, ROT0, "Success / Taiyo Jidoki", "Kuru Kuru Pyon Pyon (Japan)", 0 ) +GAME( 199?, ppj, 0, ppj, ppj, kurukuru_state, 0, ROT0, "Success / Taiyo Jidoki", "Pyon Pyon Jump (V1.40, Japan)", 0 ) // unemulated.... diff --git a/src/mame/drivers/kyocera.cpp b/src/mame/drivers/kyocera.cpp index 22bfe9e15d7..8614d1bc70e 100644 --- a/src/mame/drivers/kyocera.cpp +++ b/src/mame/drivers/kyocera.cpp @@ -1339,7 +1339,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(tandy200_state::tandy200_tp_tick) m_tp = !m_tp; } -static MACHINE_CONFIG_START( kc85, kc85_state ) +static MACHINE_CONFIG_START( kc85 ) /* basic machine hardware */ MCFG_CPU_ADD(I8085_TAG, I8085A, XTAL_4_9152MHz) MCFG_CPU_PROGRAM_MAP(kc85_mem) @@ -1389,7 +1389,7 @@ static MACHINE_CONFIG_START( kc85, kc85_state ) MCFG_RAM_EXTRA_OPTIONS("32K") MACHINE_CONFIG_END -static MACHINE_CONFIG_START( pc8201, pc8201_state ) +static MACHINE_CONFIG_START( pc8201 ) /* basic machine hardware */ MCFG_CPU_ADD(I8085_TAG, I8085A, XTAL_4_9152MHz) MCFG_CPU_PROGRAM_MAP(pc8201_mem) @@ -1449,7 +1449,7 @@ static MACHINE_CONFIG_DERIVED( pc8300, pc8201 ) MCFG_RAM_EXTRA_OPTIONS("64K,96K") MACHINE_CONFIG_END -static MACHINE_CONFIG_START( trsm100, trsm100_state ) +static MACHINE_CONFIG_START( trsm100 ) /* basic machine hardware */ MCFG_CPU_ADD(I8085_TAG, I8085A, XTAL_4_9152MHz) MCFG_CPU_PROGRAM_MAP(kc85_mem) @@ -1504,7 +1504,7 @@ static MACHINE_CONFIG_DERIVED( tandy102, trsm100 ) MCFG_RAM_EXTRA_OPTIONS("32K") MACHINE_CONFIG_END -static MACHINE_CONFIG_START( tandy200, tandy200_state ) +static MACHINE_CONFIG_START( tandy200 ) /* basic machine hardware */ MCFG_CPU_ADD(I8085_TAG, I8085A, XTAL_4_9152MHz) MCFG_CPU_PROGRAM_MAP(tandy200_mem) @@ -1621,13 +1621,13 @@ ROM_END /* System Drivers */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ -COMP( 1983, kc85, 0, 0, kc85, kc85, driver_device, 0, "Kyosei", "Kyotronic 85 (Japan)", 0 ) -COMP( 1983, m10, kc85, 0, kc85, olivm10, driver_device, 0, "Olivetti", "M-10", 0 ) -//COMP( 1983, m10m, kc85, 0, kc85, olivm10, driver_device, 0, "Olivetti", "M-10 Modem (US)", 0 ) -COMP( 1983, trsm100, 0, 0, trsm100, kc85, driver_device, 0, "Tandy Radio Shack", "TRS-80 Model 100", 0 ) -COMP( 1986, tandy102, trsm100,0, tandy102, kc85, driver_device, 0, "Tandy Radio Shack", "Tandy 102", 0 ) -COMP( 1983, pc8201, 0, 0, pc8201, pc8201, driver_device, 0, "NEC", "PC-8201 (Japan)", MACHINE_NOT_WORKING ) // keyboard layout wrong -COMP( 1983, pc8201a, pc8201, 0, pc8201, pc8201a, driver_device, 0, "NEC", "PC-8201A", 0 ) -COMP( 1987, npc8300, pc8201, 0, pc8300, pc8201a, driver_device, 0, "NEC", "PC-8300", MACHINE_NOT_WORKING ) -COMP( 1984, tandy200, 0, 0, tandy200, kc85, driver_device, 0, "Tandy Radio Shack", "Tandy 200", 0 ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME */ +COMP( 1983, kc85, 0, 0, kc85, kc85, kc85_state, 0, "Kyosei", "Kyotronic 85 (Japan)", 0 ) +COMP( 1983, m10, kc85, 0, kc85, olivm10, kc85_state, 0, "Olivetti", "M-10", 0 ) +//COMP( 1983, m10m, kc85, 0, kc85, olivm10, kc85_state, 0, "Olivetti", "M-10 Modem (US)", 0 ) +COMP( 1983, trsm100, 0, 0, trsm100, kc85, trsm100_state, 0, "Tandy Radio Shack", "TRS-80 Model 100", 0 ) +COMP( 1986, tandy102, trsm100,0, tandy102, kc85, trsm100_state, 0, "Tandy Radio Shack", "Tandy 102", 0 ) +COMP( 1983, pc8201, 0, 0, pc8201, pc8201, pc8201_state, 0, "NEC", "PC-8201 (Japan)", MACHINE_NOT_WORKING ) // keyboard layout wrong +COMP( 1983, pc8201a, pc8201, 0, pc8201, pc8201a, pc8201_state, 0, "NEC", "PC-8201A", 0 ) +COMP( 1987, npc8300, pc8201, 0, pc8300, pc8201a, pc8201_state, 0, "NEC", "PC-8300", MACHINE_NOT_WORKING ) +COMP( 1984, tandy200, 0, 0, tandy200, kc85, tandy200_state, 0, "Tandy Radio Shack", "Tandy 200", 0 ) diff --git a/src/mame/drivers/kyugo.cpp b/src/mame/drivers/kyugo.cpp index 861a6d96cd0..51a605bfa17 100644 --- a/src/mame/drivers/kyugo.cpp +++ b/src/mame/drivers/kyugo.cpp @@ -518,7 +518,7 @@ INTERRUPT_GEN_MEMBER(kyugo_state::vblank_irq) } -static MACHINE_CONFIG_START( kyugo_base, kyugo_state ) +static MACHINE_CONFIG_START( kyugo_base ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_18_432MHz/6) /* verified on pcb */ @@ -1414,23 +1414,23 @@ DRIVER_INIT_MEMBER(kyugo_state,srdmissn) * *************************************/ -GAME( 1984, gyrodine, 0, gyrodine, gyrodine, driver_device, 0, ROT90, "Crux", "Gyrodine", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, gyrodinet, gyrodine, gyrodine, gyrodine, driver_device, 0, ROT90, "Crux (Taito Corporation license)", "Gyrodine (Taito Corporation license)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, buzzard, gyrodine, gyrodine, gyrodine, driver_device, 0, ROT90, "Crux", "Buzzard", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, repulse, 0, repulse, repulse, driver_device, 0, ROT90, "Crux / Sega", "Repulse", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, 99lstwar, repulse, repulse, repulse, driver_device, 0, ROT90, "Crux / Proma", "'99: The Last War (set 1)", MACHINE_SUPPORTS_SAVE ) // Crux went bankrupt during Repulse development, -GAME( 1985, 99lstwara, repulse, repulse, repulse, driver_device, 0, ROT90, "Crux / Proma", "'99: The Last War (set 2)", MACHINE_SUPPORTS_SAVE ) // some of their staff later worked on the newer games on this hardware, -GAME( 1985, 99lstwark, repulse, repulse, repulse, driver_device, 0, ROT90, "Crux / Kyugo", "'99: The Last War (Kyugo)", MACHINE_SUPPORTS_SAVE ) // directly for Kyugo? (Flashgal, Legend, SRD Mission, Airwolf, Planet Probe) -GAME( 1985, sonofphx, repulse, repulse, repulse, driver_device, 0, ROT90, "bootleg (Associated Overseas MFR, Inc.)", "Son of Phoenix (bootleg of Repulse)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, flashgal, 0, repulse, flashgal, driver_device, 0, ROT0, "Kyugo / Sega", "Flashgal (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, flashgalk, flashgal, repulse, flashgal, driver_device, 0, ROT0, "Kyugo / Sega", "Flashgal (set 1, Kyugo logo)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, flashgala, flashgal, flashgala, flashgal, driver_device, 0, ROT0, "Kyugo / Sega", "Flashgal (set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, srdmissn, 0, srdmissn, srdmissn, kyugo_state, srdmissn, ROT90, "Kyugo / Taito Corporation", "S.R.D. Mission", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, fx, srdmissn, srdmissn, srdmissn, kyugo_state, srdmissn, ROT90, "bootleg", "F-X (bootleg of S.R.D. Mission)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, legend, 0, legend, legend, kyugo_state, srdmissn, ROT0, "Kyugo / Sega", "Legend", MACHINE_SUPPORTS_SAVE ) // no copyright (maybe also a bootleg?) -GAME( 1986, legendb, legend, legend, legend, kyugo_state, srdmissn, ROT0, "bootleg", "Legion (bootleg of Legend)", MACHINE_SUPPORTS_SAVE ) // no copyright -GAME( 1987, airwolf, 0, srdmissn, airwolf, kyugo_state, srdmissn, ROT0, "Kyugo", "Airwolf", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, airwolfa, airwolf, srdmissn, airwolf, kyugo_state, srdmissn, ROT0, "Kyugo (United Amusements license)", "Airwolf (US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, skywolf, airwolf, srdmissn, skywolf, kyugo_state, srdmissn, ROT0, "bootleg", "Sky Wolf (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, skywolf2, airwolf, srdmissn, airwolf, kyugo_state, srdmissn, ROT0, "bootleg", "Sky Wolf (set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, skywolf3, airwolf, srdmissn, airwolf, kyugo_state, srdmissn, ROT0, "bootleg", "Sky Wolf (set 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, gyrodine, 0, gyrodine, gyrodine, kyugo_state, 0, ROT90, "Crux", "Gyrodine", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, gyrodinet, gyrodine, gyrodine, gyrodine, kyugo_state, 0, ROT90, "Crux (Taito Corporation license)", "Gyrodine (Taito Corporation license)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, buzzard, gyrodine, gyrodine, gyrodine, kyugo_state, 0, ROT90, "Crux", "Buzzard", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, repulse, 0, repulse, repulse, kyugo_state, 0, ROT90, "Crux / Sega", "Repulse", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, 99lstwar, repulse, repulse, repulse, kyugo_state, 0, ROT90, "Crux / Proma", "'99: The Last War (set 1)", MACHINE_SUPPORTS_SAVE ) // Crux went bankrupt during Repulse development, +GAME( 1985, 99lstwara, repulse, repulse, repulse, kyugo_state, 0, ROT90, "Crux / Proma", "'99: The Last War (set 2)", MACHINE_SUPPORTS_SAVE ) // some of their staff later worked on the newer games on this hardware, +GAME( 1985, 99lstwark, repulse, repulse, repulse, kyugo_state, 0, ROT90, "Crux / Kyugo", "'99: The Last War (Kyugo)", MACHINE_SUPPORTS_SAVE ) // directly for Kyugo? (Flashgal, Legend, SRD Mission, Airwolf, Planet Probe) +GAME( 1985, sonofphx, repulse, repulse, repulse, kyugo_state, 0, ROT90, "bootleg (Associated Overseas MFR, Inc.)", "Son of Phoenix (bootleg of Repulse)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, flashgal, 0, repulse, flashgal, kyugo_state, 0, ROT0, "Kyugo / Sega", "Flashgal (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, flashgalk, flashgal, repulse, flashgal, kyugo_state, 0, ROT0, "Kyugo / Sega", "Flashgal (set 1, Kyugo logo)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, flashgala, flashgal, flashgala, flashgal, kyugo_state, 0, ROT0, "Kyugo / Sega", "Flashgal (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, srdmissn, 0, srdmissn, srdmissn, kyugo_state, srdmissn, ROT90, "Kyugo / Taito Corporation", "S.R.D. Mission", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, fx, srdmissn, srdmissn, srdmissn, kyugo_state, srdmissn, ROT90, "bootleg", "F-X (bootleg of S.R.D. Mission)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, legend, 0, legend, legend, kyugo_state, srdmissn, ROT0, "Kyugo / Sega", "Legend", MACHINE_SUPPORTS_SAVE ) // no copyright (maybe also a bootleg?) +GAME( 1986, legendb, legend, legend, legend, kyugo_state, srdmissn, ROT0, "bootleg", "Legion (bootleg of Legend)", MACHINE_SUPPORTS_SAVE ) // no copyright +GAME( 1987, airwolf, 0, srdmissn, airwolf, kyugo_state, srdmissn, ROT0, "Kyugo", "Airwolf", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, airwolfa, airwolf, srdmissn, airwolf, kyugo_state, srdmissn, ROT0, "Kyugo (United Amusements license)", "Airwolf (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, skywolf, airwolf, srdmissn, skywolf, kyugo_state, srdmissn, ROT0, "bootleg", "Sky Wolf (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, skywolf2, airwolf, srdmissn, airwolf, kyugo_state, srdmissn, ROT0, "bootleg", "Sky Wolf (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, skywolf3, airwolf, srdmissn, airwolf, kyugo_state, srdmissn, ROT0, "bootleg", "Sky Wolf (set 3)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/labyrunr.cpp b/src/mame/drivers/labyrunr.cpp index 636cd9aa1e3..a00f76b25ae 100644 --- a/src/mame/drivers/labyrunr.cpp +++ b/src/mame/drivers/labyrunr.cpp @@ -165,7 +165,7 @@ void labyrunr_state::machine_start() membank("bank1")->configure_entries(0, 6, &ROM[0x10000], 0x4000); } -static MACHINE_CONFIG_START( labyrunr, labyrunr_state ) +static MACHINE_CONFIG_START( labyrunr ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", HD6309, 3000000*4) /* 24MHz/8? */ @@ -269,6 +269,6 @@ ROM_START( labyrunrk ) ROM_END -GAME( 1987, tricktrp, 0, labyrunr, labyrunr, driver_device, 0, ROT90, "Konami", "Trick Trap (World?)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, labyrunr, tricktrp, labyrunr, labyrunr, driver_device, 0, ROT90, "Konami", "Labyrinth Runner (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, labyrunrk,tricktrp, labyrunr, labyrunr, driver_device, 0, ROT90, "Konami", "Labyrinth Runner (World Ver. K)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, tricktrp, 0, labyrunr, labyrunr, labyrunr_state, 0, ROT90, "Konami", "Trick Trap (World?)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, labyrunr, tricktrp, labyrunr, labyrunr, labyrunr_state, 0, ROT90, "Konami", "Labyrinth Runner (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, labyrunrk,tricktrp, labyrunr, labyrunr, labyrunr_state, 0, ROT90, "Konami", "Labyrinth Runner (World Ver. K)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/ladybug.cpp b/src/mame/drivers/ladybug.cpp index 21cdf5af40e..e733d789d38 100644 --- a/src/mame/drivers/ladybug.cpp +++ b/src/mame/drivers/ladybug.cpp @@ -513,7 +513,7 @@ MACHINE_START_MEMBER(ladybug_state,ladybug) { } -static MACHINE_CONFIG_START( ladybug, ladybug_state ) +static MACHINE_CONFIG_START( ladybug ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 4000000) /* 4 MHz */ @@ -736,10 +736,10 @@ DRIVER_INIT_MEMBER(ladybug_state,dorodon) } -GAME( 1981, cavenger, 0, ladybug, cavenger, driver_device, 0, ROT0, "Universal", "Cosmic Avenger", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, ladybug, 0, ladybug, ladybug, driver_device, 0, ROT270, "Universal", "Lady Bug", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, ladybugb, ladybug, ladybug, ladybug, driver_device, 0, ROT270, "bootleg", "Lady Bug (bootleg set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, ladybugb2, ladybug, ladybug, ladybug, driver_device, 0, ROT270, "bootleg (Model Racing)", "Coccinelle (bootleg of Lady Bug, set 2)", MACHINE_SUPPORTS_SAVE ) // title removed, but manual names it Coccinelle -GAME( 1982, dorodon, 0, dorodon, dorodon, ladybug_state, dorodon, ROT270, "UPL (Falcon license?)", "Dorodon (set 1)", MACHINE_SUPPORTS_SAVE ) // license or bootleg? -GAME( 1982, dorodon2, dorodon, dorodon, dorodon, ladybug_state, dorodon, ROT270, "UPL (Falcon license?)", "Dorodon (set 2)", MACHINE_SUPPORTS_SAVE ) // " -GAME( 1982, snapjack, 0, ladybug, snapjack, driver_device, 0, ROT0, "Universal", "Snap Jack", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, cavenger, 0, ladybug, cavenger, ladybug_state, 0, ROT0, "Universal", "Cosmic Avenger", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, ladybug, 0, ladybug, ladybug, ladybug_state, 0, ROT270, "Universal", "Lady Bug", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, ladybugb, ladybug, ladybug, ladybug, ladybug_state, 0, ROT270, "bootleg", "Lady Bug (bootleg set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, ladybugb2, ladybug, ladybug, ladybug, ladybug_state, 0, ROT270, "bootleg (Model Racing)", "Coccinelle (bootleg of Lady Bug, set 2)", MACHINE_SUPPORTS_SAVE ) // title removed, but manual names it Coccinelle +GAME( 1982, dorodon, 0, dorodon, dorodon, ladybug_state, dorodon, ROT270, "UPL (Falcon license?)", "Dorodon (set 1)", MACHINE_SUPPORTS_SAVE ) // license or bootleg? +GAME( 1982, dorodon2, dorodon, dorodon, dorodon, ladybug_state, dorodon, ROT270, "UPL (Falcon license?)", "Dorodon (set 2)", MACHINE_SUPPORTS_SAVE ) // " +GAME( 1982, snapjack, 0, ladybug, snapjack, ladybug_state, 0, ROT0, "Universal", "Snap Jack", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/ladyfrog.cpp b/src/mame/drivers/ladyfrog.cpp index 6f91ad613e3..fd79cf25778 100644 --- a/src/mame/drivers/ladyfrog.cpp +++ b/src/mame/drivers/ladyfrog.cpp @@ -281,7 +281,7 @@ void ladyfrog_state::machine_reset() m_snd_data = 0; } -static MACHINE_CONFIG_START( ladyfrog, ladyfrog_state ) +static MACHINE_CONFIG_START( ladyfrog ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80,8000000/2) @@ -386,8 +386,8 @@ ROM_START( touchemea ) ROM_LOAD( "8.ic10", 0x20000, 0x10000, CRC(fc6808bf) SHA1(f1f1b75a79dfdb500012f9b52c6364f0a13dce2d) ) ROM_END -GAME( 1990, ladyfrog, 0, ladyfrog, ladyfrog, driver_device, 0, ORIENTATION_SWAP_XY, "Mondial Games", "Lady Frog", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, ladyfrog, 0, ladyfrog, ladyfrog, ladyfrog_state, 0, ORIENTATION_SWAP_XY, "Mondial Games", "Lady Frog", MACHINE_SUPPORTS_SAVE ) // toucheme art style is similar to ladyfrog, so it's probably the same manufacturer -GAME( 19??, toucheme, 0, toucheme, toucheme, driver_device, 0, ORIENTATION_SWAP_XY, "", "Touche Me (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 19??, touchemea,toucheme, toucheme, toucheme, driver_device, 0, ORIENTATION_SWAP_XY, "", "Touche Me (set 2, harder)", MACHINE_SUPPORTS_SAVE ) +GAME( 19??, toucheme, 0, toucheme, toucheme, ladyfrog_state, 0, ORIENTATION_SWAP_XY, "", "Touche Me (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 19??, touchemea, toucheme, toucheme, toucheme, ladyfrog_state, 0, ORIENTATION_SWAP_XY, "", "Touche Me (set 2, harder)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/laser3k.cpp b/src/mame/drivers/laser3k.cpp index bd73426e89b..15c81db8508 100644 --- a/src/mame/drivers/laser3k.cpp +++ b/src/mame/drivers/laser3k.cpp @@ -960,7 +960,7 @@ PALETTE_INIT_MEMBER(laser3k_state, laser3k) palette.set_pen_colors(0, laser3k_palette, ARRAY_LENGTH(laser3k_palette)); } -static MACHINE_CONFIG_START( laser3k, laser3k_state ) +static MACHINE_CONFIG_START( laser3k ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, 1021800) MCFG_CPU_PROGRAM_MAP(laser3k_map) @@ -1035,5 +1035,5 @@ ROM_START(las3000) ROM_LOAD ( "l3kdisk.rom", 0x0000, 0x0100, CRC(2d4b1584) SHA1(989780b77e100598124df7b72663e5a31a3339c0)) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ -COMP( 1983, las3000, 0, 0, laser3k, laser3k, driver_device, 0, "Video Technology", "Laser 3000", MACHINE_NOT_WORKING ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1983, las3000, 0, 0, laser3k, laser3k, laser3k_state, 0, "Video Technology", "Laser 3000", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/laserbas.cpp b/src/mame/drivers/laserbas.cpp index db3f131962d..9baf4974385 100644 --- a/src/mame/drivers/laserbas.cpp +++ b/src/mame/drivers/laserbas.cpp @@ -404,7 +404,7 @@ INPUT_PORTS_END #define CLOCK 16680000 #define PIT_CLOCK (CLOCK/16) // 12 divider ? -static MACHINE_CONFIG_START( laserbas, laserbas_state ) +static MACHINE_CONFIG_START( laserbas ) MCFG_CPU_ADD("maincpu", Z80, CLOCK / 4) MCFG_CPU_PROGRAM_MAP(laserbas_memory) @@ -546,6 +546,6 @@ ROM_START( futflash ) ROM_LOAD( "ff.8", 0xf000, 0x0800, CRC(623f558f) SHA1(be6c6565df658555f21c43a8c2459cf399794a84) ) ROM_END -GAME( 1980, futflash, 0, laserbas, laserbas, driver_device, 0, ROT270, "Hoei", "Future Flash", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1981, laserbas, futflash, laserbas, laserbas, driver_device, 0, ROT270, "Hoei (Amstar license)", "Laser Base (set 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1981, laserbasa,futflash, laserbas, laserbas, driver_device, 0, ROT270, "Hoei (Amstar license)", "Laser Base (set 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1980, futflash, 0, laserbas, laserbas, laserbas_state, 0, ROT270, "Hoei", "Future Flash", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1981, laserbas, futflash, laserbas, laserbas, laserbas_state, 0, ROT270, "Hoei (Amstar license)", "Laser Base (set 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1981, laserbasa, futflash, laserbas, laserbas, laserbas_state, 0, ROT270, "Hoei (Amstar license)", "Laser Base (set 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/laserbat.cpp b/src/mame/drivers/laserbat.cpp index db01721f61f..4bfe2148713 100644 --- a/src/mame/drivers/laserbat.cpp +++ b/src/mame/drivers/laserbat.cpp @@ -466,7 +466,7 @@ void laserbat_state_base::device_timer(emu_timer &timer, device_timer_id id, int } -static MACHINE_CONFIG_START( laserbat_base, laserbat_state_base ) +static MACHINE_CONFIG_START( laserbat_base ) // basic machine hardware MCFG_CPU_ADD("maincpu", S2650, XTAL_14_31818MHz/4) @@ -498,7 +498,7 @@ static MACHINE_CONFIG_START( laserbat_base, laserbat_state_base ) MACHINE_CONFIG_END -static MACHINE_CONFIG_DERIVED_CLASS( laserbat, laserbat_base, laserbat_state ) +static MACHINE_CONFIG_DERIVED( laserbat, laserbat_base ) // video hardware MCFG_PALETTE_ADD("palette", 256) @@ -523,14 +523,14 @@ static MACHINE_CONFIG_DERIVED_CLASS( laserbat, laserbat_base, laserbat_state ) MCFG_SN76477_ENABLE(0) // AB SOUND MCFG_TMS3615_ADD("synth_low", XTAL_4MHz/16/2) // from the other one's /2 clock output - MCFG_SOUND_ROUTE(TMS3615_FOOTAGE_8, "speaker", 1.0) + MCFG_SOUND_ROUTE(tms3615_device::FOOTAGE_8, "speaker", 1.0) MCFG_TMS3615_ADD("synth_high", XTAL_4MHz/16) // 4MHz divided down with a 74LS161 - MCFG_SOUND_ROUTE(TMS3615_FOOTAGE_8, "speaker", 1.0) + MCFG_SOUND_ROUTE(tms3615_device::FOOTAGE_8, "speaker", 1.0) MACHINE_CONFIG_END -static MACHINE_CONFIG_DERIVED_CLASS( catnmous, laserbat_base, catnmous_state ) +static MACHINE_CONFIG_DERIVED( catnmous, laserbat_base ) // video hardware MCFG_PALETTE_ADD("palette", 256) @@ -728,7 +728,7 @@ ROM_START( catnmousa ) ROM_END -GAME( 1981, laserbat, 0, laserbat, laserbat, laserbat_state_base, laserbat, ROT0, "Zaccaria", "Laser Battle", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1981, lazarian, laserbat, laserbat, lazarian, laserbat_state_base, laserbat, ROT0, "Zaccaria (Bally Midway license)", "Lazarian", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1982, catnmous, 0, catnmous, catnmous, laserbat_state_base, laserbat, ROT90, "Zaccaria", "Cat and Mouse (set 1)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1982, catnmousa, catnmous, catnmous, catnmous, laserbat_state_base, laserbat, ROT90, "Zaccaria", "Cat and Mouse (set 2)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1981, laserbat, 0, laserbat, laserbat, laserbat_state, laserbat, ROT0, "Zaccaria", "Laser Battle", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1981, lazarian, laserbat, laserbat, lazarian, laserbat_state, laserbat, ROT0, "Zaccaria (Bally Midway license)", "Lazarian", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1982, catnmous, 0, catnmous, catnmous, catnmous_state, laserbat, ROT90, "Zaccaria", "Cat and Mouse (set 1)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1982, catnmousa, catnmous, catnmous, catnmous, catnmous_state, laserbat, ROT90, "Zaccaria", "Cat and Mouse (set 2)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/lasso.cpp b/src/mame/drivers/lasso.cpp index 9eb4608ea68..68168d4a4b2 100644 --- a/src/mame/drivers/lasso.cpp +++ b/src/mame/drivers/lasso.cpp @@ -481,7 +481,7 @@ MACHINE_RESET_MEMBER(lasso_state,wwjgtin) m_track_enable = 0; } -static MACHINE_CONFIG_START( base, lasso_state ) +static MACHINE_CONFIG_START( base ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, 11289000/16) /* guess */ @@ -870,10 +870,10 @@ ROM_END ***************************************************************************/ -GAME( 1982, lasso, 0, lasso, lasso, driver_device, 0, ROT90, "SNK", "Lasso", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, chameleo, 0, chameleo, chameleo, driver_device, 0, ROT0, "Jaleco", "Chameleon", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, wwjgtin, 0, wwjgtin, wwjgtin, driver_device, 0, ROT0, "Jaleco / Casio", "Wai Wai Jockey Gate-In!", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, photof, wwjgtin, wwjgtin, wwjgtin, driver_device, 0, ROT0, "Jaleco / Casio", "Photo Finish (bootleg?)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, pinbo, 0, pinbo, pinbo, driver_device, 0, ROT90, "Jaleco", "Pinbo (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, pinboa, pinbo, pinbo, pinboa, driver_device, 0, ROT90, "Jaleco", "Pinbo (set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, pinbos, pinbo, pinbo, pinboa, driver_device, 0, ROT90, "bootleg (Strike)", "Pinbo (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, lasso, 0, lasso, lasso, lasso_state, 0, ROT90, "SNK", "Lasso", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, chameleo, 0, chameleo, chameleo, lasso_state, 0, ROT0, "Jaleco", "Chameleon", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, wwjgtin, 0, wwjgtin, wwjgtin, lasso_state, 0, ROT0, "Jaleco / Casio", "Wai Wai Jockey Gate-In!", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, photof, wwjgtin, wwjgtin, wwjgtin, lasso_state, 0, ROT0, "Jaleco / Casio", "Photo Finish (bootleg?)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, pinbo, 0, pinbo, pinbo, lasso_state, 0, ROT90, "Jaleco", "Pinbo (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, pinboa, pinbo, pinbo, pinboa, lasso_state, 0, ROT90, "Jaleco", "Pinbo (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, pinbos, pinbo, pinbo, pinboa, lasso_state, 0, ROT90, "bootleg (Strike)", "Pinbo (bootleg)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/lastbank.cpp b/src/mame/drivers/lastbank.cpp index 15177093ea5..ca83256c4fb 100644 --- a/src/mame/drivers/lastbank.cpp +++ b/src/mame/drivers/lastbank.cpp @@ -32,7 +32,7 @@ public: m_vdp(*this, "tc0091lvc"), m_oki(*this, "oki"), m_essnd(*this, "essnd") - { } + { } required_device m_maincpu; required_device m_vdp; @@ -527,7 +527,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(lastbank_state::lastbank_irq_scanline) } } -static MACHINE_CONFIG_START( lastbank, lastbank_state ) +static MACHINE_CONFIG_START( lastbank ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80,MASTER_CLOCK/4) //!!! TC0091LVC !!! @@ -567,7 +567,7 @@ static MACHINE_CONFIG_START( lastbank, lastbank_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", 1000000, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", 1000000, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.75) MCFG_ES8712_ADD("essnd", 12000) @@ -602,4 +602,4 @@ ROM_START( lastbank ) ROM_LOAD( "7.u60", 0x00000, 0x80000, CRC(41be7146) SHA1(00f1c0d5809efccf888e27518a2a5876c4b633d8) ) ROM_END -GAME( 1994, lastbank, 0, lastbank, lastbank, driver_device, 0, ROT0, "Excellent System", "Last Bank (v1.16)", 0 ) +GAME( 1994, lastbank, 0, lastbank, lastbank, lastbank_state, 0, ROT0, "Excellent System", "Last Bank (v1.16)", 0 ) diff --git a/src/mame/drivers/lastduel.cpp b/src/mame/drivers/lastduel.cpp index 8f3a800dad5..2199a1f60ca 100644 --- a/src/mame/drivers/lastduel.cpp +++ b/src/mame/drivers/lastduel.cpp @@ -483,7 +483,7 @@ void lastduel_state::machine_reset() m_scroll[i] = 0; } -static MACHINE_CONFIG_START( lastduel, lastduel_state ) +static MACHINE_CONFIG_START( lastduel ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 10000000) // Unconfirmed - could be 8MHz @@ -528,7 +528,7 @@ static MACHINE_CONFIG_START( lastduel, lastduel_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( madgear, lastduel_state ) +static MACHINE_CONFIG_START( madgear ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_10MHz) @@ -571,7 +571,7 @@ static MACHINE_CONFIG_START( madgear, lastduel_state ) MCFG_SOUND_ADD("ym2", YM2203, XTAL_3_579545MHz) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40) - MCFG_OKIM6295_ADD("oki", XTAL_10MHz/10, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", XTAL_10MHz/10, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.98) MACHINE_CONFIG_END @@ -893,16 +893,16 @@ ROM_END /******************************************************************************/ -GAME( 1988, lastduel, 0, lastduel, lastduel, driver_device, 0, ROT270, "Capcom", "Last Duel (US New Ver.)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, lastduelo, lastduel, lastduel, lastduel, driver_device, 0, ROT270, "Capcom", "Last Duel (US Old Ver.)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, lastduelj, lastduel, lastduel, lastduel, driver_device, 0, ROT270, "Capcom", "Last Duel (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, lastduelb, lastduel, lastduel, lastduel, driver_device, 0, ROT270, "bootleg", "Last Duel (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, lastduel, 0, lastduel, lastduel, lastduel_state, 0, ROT270, "Capcom", "Last Duel (US New Ver.)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, lastduelo, lastduel, lastduel, lastduel, lastduel_state, 0, ROT270, "Capcom", "Last Duel (US Old Ver.)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, lastduelj, lastduel, lastduel, lastduel, lastduel_state, 0, ROT270, "Capcom", "Last Duel (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, lastduelb, lastduel, lastduel, lastduel, lastduel_state, 0, ROT270, "bootleg", "Last Duel (bootleg)", MACHINE_SUPPORTS_SAVE ) // are both Mad Gear and Led Storm really US sets, both have a (c) Capcom USA, but so do several World sets from Capcom during this era, including Led Storm Rally 2011. None of these display a region warning, 2011 does. // the region warning text is however still present in the ROM (albeit unused) and does appear to indicate both are US sets, so it's possible the title was revised to avoid confusion with the older Led Storm Rally 2011. -GAME( 1989, madgear, 0, madgear, madgear, driver_device, 0, ROT270, "Capcom", "Mad Gear (US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, madgearj, madgear, madgear, madgear, driver_device, 0, ROT270, "Capcom", "Mad Gear (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, ledstorm, madgear, madgear, madgear, driver_device, 0, ROT270, "Capcom", "Led Storm (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, madgear, 0, madgear, madgear, lastduel_state, 0, ROT270, "Capcom", "Mad Gear (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, madgearj, madgear, madgear, madgear, lastduel_state, 0, ROT270, "Capcom", "Mad Gear (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, ledstorm, madgear, madgear, madgear, lastduel_state, 0, ROT270, "Capcom", "Led Storm (US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, leds2011, 0, madgear, madgear, driver_device, 0, ROT270, "Capcom", "Led Storm Rally 2011 (World)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, leds2011u, leds2011, madgear, madgear, driver_device, 0, ROT270, "Capcom", "Led Storm Rally 2011 (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, leds2011, 0, madgear, madgear, lastduel_state, 0, ROT270, "Capcom", "Led Storm Rally 2011 (World)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, leds2011u, leds2011, madgear, madgear, lastduel_state, 0, ROT270, "Capcom", "Led Storm Rally 2011 (US)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/lastfght.cpp b/src/mame/drivers/lastfght.cpp index 326147d30b9..760628ad48c 100644 --- a/src/mame/drivers/lastfght.cpp +++ b/src/mame/drivers/lastfght.cpp @@ -561,7 +561,7 @@ void lastfght_state::machine_reset() m_c00006 = 0; } -static MACHINE_CONFIG_START( lastfght, lastfght_state ) +static MACHINE_CONFIG_START( lastfght ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", H83044, 32000000/2) diff --git a/src/mame/drivers/laz_aftrshok.cpp b/src/mame/drivers/laz_aftrshok.cpp index 28bd3e4e52e..e3fcd308fea 100644 --- a/src/mame/drivers/laz_aftrshok.cpp +++ b/src/mame/drivers/laz_aftrshok.cpp @@ -62,7 +62,7 @@ void aftrshok_state::machine_reset() } -static MACHINE_CONFIG_START( aftrshok, aftrshok_state ) +static MACHINE_CONFIG_START( aftrshok ) /* basic machine hardware */ // MCFG_CPU_ADD("maincpu", ??, 8000000) // unknown @@ -73,7 +73,7 @@ static MACHINE_CONFIG_START( aftrshok, aftrshok_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", 1000000, OKIM6295_PIN7_HIGH) // maybe + MCFG_OKIM6295_ADD("oki", 1000000, PIN7_HIGH) // maybe MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -100,5 +100,5 @@ ROM_START( aftrshoka ) ROM_END -GAME( 19??, aftrshok, 0, aftrshok, aftrshok, driver_device, 0, ROT0, "Lazer-tron", "After Shock (Lazer-tron, set 1)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 19??, aftrshoka, aftrshok, aftrshok, aftrshok, driver_device, 0, ROT0, "Lazer-tron", "After Shock (Lazer-tron, set 2)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 19??, aftrshok, 0, aftrshok, aftrshok, aftrshok_state, 0, ROT0, "Lazer-tron", "After Shock (Lazer-tron, set 1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 19??, aftrshoka, aftrshok, aftrshok, aftrshok, aftrshok_state, 0, ROT0, "Lazer-tron", "After Shock (Lazer-tron, set 2)", MACHINE_IS_SKELETON_MECHANICAL ) diff --git a/src/mame/drivers/laz_awetoss.cpp b/src/mame/drivers/laz_awetoss.cpp index 6e39139461b..637dcc01953 100644 --- a/src/mame/drivers/laz_awetoss.cpp +++ b/src/mame/drivers/laz_awetoss.cpp @@ -42,7 +42,7 @@ void awetoss_state::machine_reset() } -static MACHINE_CONFIG_START( awetoss, awetoss_state ) +static MACHINE_CONFIG_START( awetoss ) /* basic machine hardware */ // MCFG_CPU_ADD("maincpu", ??, 8000000) // unknown @@ -53,7 +53,7 @@ static MACHINE_CONFIG_START( awetoss, awetoss_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", 1000000, OKIM6295_PIN7_HIGH) // maybe + MCFG_OKIM6295_ADD("oki", 1000000, PIN7_HIGH) // maybe MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -81,4 +81,4 @@ ROM_START( awetoss ) ROM_LOAD( "AWSMTOSS.U11", 0x30000, 0x10000, CRC(8ae9d4f0) SHA1(58d1d8972c8e4c9a7c63e9d63e267ea81515d22a) ) ROM_END -GAME( 19??, awetoss, 0, awetoss, awetoss, driver_device, 0, ROT0, "Lazer-tron", "Awesome Toss'em (Lazer-tron)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 19??, awetoss, 0, awetoss, awetoss, awetoss_state, 0, ROT0, "Lazer-tron", "Awesome Toss'em (Lazer-tron)", MACHINE_IS_SKELETON_MECHANICAL ) diff --git a/src/mame/drivers/laz_ribrac.cpp b/src/mame/drivers/laz_ribrac.cpp index d8b19d7aecf..35332cc3c89 100644 --- a/src/mame/drivers/laz_ribrac.cpp +++ b/src/mame/drivers/laz_ribrac.cpp @@ -46,7 +46,7 @@ void laz_ribrac_state::machine_reset() } -static MACHINE_CONFIG_START( laz_ribrac, laz_ribrac_state ) +static MACHINE_CONFIG_START( laz_ribrac ) /* basic machine hardware */ // MCFG_CPU_ADD("maincpu", ??, 8000000) // unknown @@ -56,7 +56,7 @@ static MACHINE_CONFIG_START( laz_ribrac, laz_ribrac_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", 1000000, OKIM6295_PIN7_HIGH) // maybe + MCFG_OKIM6295_ADD("oki", 1000000, PIN7_HIGH) // maybe MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -79,4 +79,4 @@ ROM_START( ribrac ) ROM_LOAD( "RIBBITR_SND.U11", 0x30000, 0x10000, NO_DUMP ) ROM_END -GAME( 1993, ribrac, 0, laz_ribrac, laz_ribrac, driver_device, 0, ROT0, "Lazer-tron", "Ribbit Racing (Lazer-tron)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 1993, ribrac, 0, laz_ribrac, laz_ribrac, laz_ribrac_state, 0, ROT0, "Lazer-tron", "Ribbit Racing (Lazer-tron)", MACHINE_IS_SKELETON_MECHANICAL ) diff --git a/src/mame/drivers/lazercmd.cpp b/src/mame/drivers/lazercmd.cpp index 89aa2419121..ee3cfc03341 100644 --- a/src/mame/drivers/lazercmd.cpp +++ b/src/mame/drivers/lazercmd.cpp @@ -622,7 +622,7 @@ void lazercmd_state::machine_reset() } -static MACHINE_CONFIG_START( lazercmd, lazercmd_state ) +static MACHINE_CONFIG_START( lazercmd ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", S2650, MASTER_CLOCK/12) /* 666 kHz? */ @@ -661,7 +661,7 @@ static MACHINE_CONFIG_START( lazercmd, lazercmd_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( medlanes, lazercmd_state ) +static MACHINE_CONFIG_START( medlanes ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", S2650, MASTER_CLOCK/12) /* 666 kHz */ @@ -696,7 +696,7 @@ static MACHINE_CONFIG_START( medlanes, lazercmd_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( bbonk, lazercmd_state ) +static MACHINE_CONFIG_START( bbonk ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", S2650, MASTER_CLOCK/12) /* 666 kHz */ diff --git a/src/mame/drivers/lb186.cpp b/src/mame/drivers/lb186.cpp index acd2cbfd20d..7969c061306 100644 --- a/src/mame/drivers/lb186.cpp +++ b/src/mame/drivers/lb186.cpp @@ -15,15 +15,16 @@ class lb186_state : public driver_device { public: - lb186_state(const machine_config &mconfig, device_type type, const char *tag) : - driver_device(mconfig, type, tag), - m_maincpu(*this, "maincpu"), - m_fdc(*this, "fdc"), - m_scsi(*this, "scsibus:7:ncr5380") - {} + lb186_state(const machine_config &mconfig, device_type type, const char *tag) + : driver_device(mconfig, type, tag) + , m_maincpu(*this, "maincpu") + , m_fdc(*this, "fdc") + , m_scsi(*this, "scsibus:7:ncr5380") + { + } required_device m_maincpu; - required_device m_fdc; + required_device m_fdc; required_device m_scsi; DECLARE_WRITE8_MEMBER(sio_out_w); @@ -93,7 +94,7 @@ static ADDRESS_MAP_START( lb186_io, AS_IO, 16, lb186_state ) ADDRESS_MAP_UNMAP_HIGH AM_RANGE(0x1000, 0x101f) AM_DEVREADWRITE8("sc2681", mc68681_device, read, write, 0x00ff) AM_RANGE(0x1080, 0x108f) AM_DEVREADWRITE8("scsibus:7:ncr5380", ncr5380n_device, read, write, 0x00ff) - AM_RANGE(0x1100, 0x1107) AM_DEVREADWRITE8("fdc", wd1772_t, read, write, 0x00ff) + AM_RANGE(0x1100, 0x1107) AM_DEVREADWRITE8("fdc", wd1772_device, read, write, 0x00ff) AM_RANGE(0x1180, 0x1181) AM_READWRITE8(scsi_dack_r, scsi_dack_w, 0x00ff) AM_RANGE(0x1200, 0x1201) AM_WRITE8(drive_sel_w, 0x00ff) ADDRESS_MAP_END @@ -118,7 +119,7 @@ FLOPPY_FORMATS_MEMBER( lb186_state::floppy_formats ) FLOPPY_NASLITE_FORMAT FLOPPY_FORMATS_END -static MACHINE_CONFIG_START( lb186, lb186_state ) +static MACHINE_CONFIG_START( lb186 ) MCFG_CPU_ADD("maincpu", I80186, XTAL_16MHz / 2) MCFG_CPU_PROGRAM_MAP(lb186_map) MCFG_CPU_IO_MAP(lb186_io) @@ -160,4 +161,4 @@ ROM_START( lb186 ) ROM_LOAD16_BYTE("a75516_v3.35.rom", 0x0001, 0x2000, CRC(9d9a5e22) SHA1(070be31c622f50508e8cbdb797c79978b6a4b8f6)) ROM_END -COMP( 1985, lb186, 0, 0, lb186, 0, driver_device, 0, "Ampro Computers", "Little Board/186", MACHINE_NO_SOUND_HW ) +COMP( 1985, lb186, 0, 0, lb186, 0, lb186_state, 0, "Ampro Computers", "Little Board/186", MACHINE_NO_SOUND_HW ) diff --git a/src/mame/drivers/lbeach.cpp b/src/mame/drivers/lbeach.cpp index 908a6e49284..fd9e89deb9f 100644 --- a/src/mame/drivers/lbeach.cpp +++ b/src/mame/drivers/lbeach.cpp @@ -324,7 +324,7 @@ void lbeach_state::machine_reset() { } -static MACHINE_CONFIG_START( lbeach, lbeach_state ) +static MACHINE_CONFIG_START( lbeach ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6800, XTAL_16MHz / 32) // Motorola MC6800P, 500kHz @@ -376,4 +376,4 @@ ROM_START( lbeach ) ROM_END -GAMEL(1979, lbeach, 0, lbeach, lbeach, driver_device, 0, ROT0, "Olympia / Seletron", "Long Beach", MACHINE_IMPERFECT_COLORS | MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE, layout_lbeach ) +GAMEL(1979, lbeach, 0, lbeach, lbeach, lbeach_state, 0, ROT0, "Olympia / Seletron", "Long Beach", MACHINE_IMPERFECT_COLORS | MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE, layout_lbeach ) diff --git a/src/mame/drivers/lc80.cpp b/src/mame/drivers/lc80.cpp index ef866d363ac..ca64d778460 100644 --- a/src/mame/drivers/lc80.cpp +++ b/src/mame/drivers/lc80.cpp @@ -325,7 +325,7 @@ void lc80_state::machine_start() /* Machine Driver */ -static MACHINE_CONFIG_START( lc80, lc80_state ) +static MACHINE_CONFIG_START( lc80 ) /* basic machine hardware */ MCFG_CPU_ADD(Z80_TAG, Z80, 900000) /* UD880D */ MCFG_CPU_PROGRAM_MAP(lc80_mem) @@ -364,7 +364,7 @@ static MACHINE_CONFIG_START( lc80, lc80_state ) MCFG_RAM_EXTRA_OPTIONS("2K,3K,4K") MACHINE_CONFIG_END -static MACHINE_CONFIG_START( lc80_2, lc80_state ) +static MACHINE_CONFIG_START( lc80_2 ) /* basic machine hardware */ MCFG_CPU_ADD(Z80_TAG, Z80, 1800000) /* UD880D */ MCFG_CPU_PROGRAM_MAP(lc80_mem) @@ -437,7 +437,7 @@ ROM_END /* System Drivers */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1984, lc80, 0, 0, lc80, lc80, driver_device, 0, "VEB Mikroelektronik", "Lerncomputer LC 80", MACHINE_SUPPORTS_SAVE ) -COMP( 1984, lc80_2, lc80, 0, lc80_2, lc80, driver_device, 0, "VEB Mikroelektronik", "Lerncomputer LC 80.2", MACHINE_SUPPORTS_SAVE ) -COMP( 1984, sc80, lc80, 0, lc80_2, lc80, driver_device, 0, "VEB Mikroelektronik", "Schachcomputer SC-80", MACHINE_SUPPORTS_SAVE ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1984, lc80, 0, 0, lc80, lc80, lc80_state, 0, "VEB Mikroelektronik", "Lerncomputer LC 80", MACHINE_SUPPORTS_SAVE ) +COMP( 1984, lc80_2, lc80, 0, lc80_2, lc80, lc80_state, 0, "VEB Mikroelektronik", "Lerncomputer LC 80.2", MACHINE_SUPPORTS_SAVE ) +COMP( 1984, sc80, lc80, 0, lc80_2, lc80, lc80_state, 0, "VEB Mikroelektronik", "Schachcomputer SC-80", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/lcmate2.cpp b/src/mame/drivers/lcmate2.cpp index 25fbc3ec82f..1164fc52101 100644 --- a/src/mame/drivers/lcmate2.cpp +++ b/src/mame/drivers/lcmate2.cpp @@ -223,7 +223,7 @@ static GFXDECODE_START( lcmate2 ) GFXDECODE_END -static MACHINE_CONFIG_START( lcmate2, lcmate2_state ) +static MACHINE_CONFIG_START( lcmate2 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_3_579545MHz) // confirmed MCFG_CPU_PROGRAM_MAP(lcmate2_mem) @@ -266,5 +266,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1984, lcmate2, 0, 0, lcmate2, lcmate2, driver_device, 0, "Vtech", "Laser Compumate 2", MACHINE_NOT_WORKING ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1984, lcmate2, 0, 0, lcmate2, lcmate2, lcmate2_state, 0, "Vtech", "Laser Compumate 2", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/ldplayer.cpp b/src/mame/drivers/ldplayer.cpp index 9fda0081662..eac15f4d01f 100644 --- a/src/mame/drivers/ldplayer.cpp +++ b/src/mame/drivers/ldplayer.cpp @@ -620,13 +620,13 @@ INPUT_PORTS_END * *************************************/ -static MACHINE_CONFIG_START( ldplayer_ntsc, ldplayer_state ) +static MACHINE_CONFIG_START( ldplayer_ntsc ) MACHINE_CONFIG_END -static MACHINE_CONFIG_DERIVED_CLASS( ldv1000, ldplayer_ntsc, ldv1000_state ) +static MACHINE_CONFIG_DERIVED( ldv1000, ldplayer_ntsc ) MCFG_LASERDISC_LDV1000_ADD("laserdisc") - MCFG_LASERDISC_GET_DISC(laserdisc_get_disc_delegate(&ldplayer_state::get_disc_static, device)) + MCFG_LASERDISC_GET_DISC(laserdisc_device::get_disc_delegate(&ldplayer_state::get_disc_static, device)) MCFG_LASERDISC_SCREEN_ADD_NTSC("screen", "laserdisc") MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") @@ -636,9 +636,9 @@ static MACHINE_CONFIG_DERIVED_CLASS( ldv1000, ldplayer_ntsc, ldv1000_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_DERIVED_CLASS( pr8210, ldplayer_ntsc, pr8210_state ) +static MACHINE_CONFIG_DERIVED( pr8210, ldplayer_ntsc ) MCFG_LASERDISC_PR8210_ADD("laserdisc") - MCFG_LASERDISC_GET_DISC(laserdisc_get_disc_delegate(&ldplayer_state::get_disc_static, device)) + MCFG_LASERDISC_GET_DISC(laserdisc_device::get_disc_delegate(&ldplayer_state::get_disc_static, device)) MCFG_LASERDISC_SCREEN_ADD_NTSC("screen", "laserdisc") MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") @@ -672,5 +672,5 @@ ROM_END * *************************************/ -GAME( 2008, simldv1000, 0, ldv1000, ldplayer, driver_device, 0, ROT0, "MAME", "Pioneer LDV-1000 Simulator", 0 ) -GAMEL(2008, simpr8210, 0, pr8210, ldplayer, driver_device, 0, ROT0, "MAME", "Pioneer PR-8210 Simulator", 0, layout_pr8210 ) +GAME( 2008, simldv1000, 0, ldv1000, ldplayer, ldv1000_state, 0, ROT0, "MAME", "Pioneer LDV-1000 Simulator", 0 ) +GAMEL(2008, simpr8210, 0, pr8210, ldplayer, pr8210_state, 0, ROT0, "MAME", "Pioneer PR-8210 Simulator", 0, layout_pr8210 ) diff --git a/src/mame/drivers/leapster.cpp b/src/mame/drivers/leapster.cpp index 33bf92a7bbe..432337c87c0 100644 --- a/src/mame/drivers/leapster.cpp +++ b/src/mame/drivers/leapster.cpp @@ -301,7 +301,7 @@ static ADDRESS_MAP_START( leapster_aux, AS_IO, 32, leapster_state ) AM_RANGE(0x00000012c, 0x00000012f) AM_WRITE(leapster_aux004b_w) // this address isn't used by ARC internal stuff afaik, so probably leapster specific ADDRESS_MAP_END -static MACHINE_CONFIG_START( leapster, leapster_state ) +static MACHINE_CONFIG_START( leapster ) /* basic machine hardware */ // CPU is ArcTangent-A5 '5.1' (ARCompact core) MCFG_CPU_ADD("maincpu", ARCA5, 96000000/10) @@ -338,5 +338,5 @@ DRIVER_INIT_MEMBER(leapster_state,leapster) { } -CONS(2003, leapster, 0, 0, leapster, leapster, leapster_state, leapster, "LeapFrog", "Leapster (Germany)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_IS_SKELETON ) -CONS(2005, leapstertv, leapster, 0, leapster, leapster, leapster_state, leapster, "LeapFrog", "Leapster TV (Germany)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_IS_SKELETON ) +CONS( 2003, leapster, 0, 0, leapster, leapster, leapster_state, leapster, "LeapFrog", "Leapster (Germany)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_IS_SKELETON ) +CONS( 2005, leapstertv, leapster, 0, leapster, leapster, leapster_state, leapster, "LeapFrog", "Leapster TV (Germany)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/legionna.cpp b/src/mame/drivers/legionna.cpp index 3424ff2daf0..d3e45f92b57 100644 --- a/src/mame/drivers/legionna.cpp +++ b/src/mame/drivers/legionna.cpp @@ -1156,7 +1156,7 @@ GFXDECODE_END /*****************************************************************************/ -static MACHINE_CONFIG_START( legionna, legionna_state ) +static MACHINE_CONFIG_START( legionna ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000,20000000/2) /* ??? */ @@ -1196,7 +1196,7 @@ static MACHINE_CONFIG_START( legionna, legionna_state ) MCFG_YM3812_IRQ_HANDLER(DEVWRITELINE("seibu_sound", seibu_sound_device, fm_irqhandler)) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MCFG_OKIM6295_ADD("oki", 1320000, OKIM6295_PIN7_LOW) + MCFG_OKIM6295_ADD("oki", 1320000, PIN7_LOW) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40) MCFG_DEVICE_ADD("seibu_sound", SEIBU_SOUND, 0) @@ -1207,7 +1207,7 @@ static MACHINE_CONFIG_START( legionna, legionna_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( heatbrl, legionna_state ) +static MACHINE_CONFIG_START( heatbrl ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000,20000000/2) /* ??? */ @@ -1249,7 +1249,7 @@ static MACHINE_CONFIG_START( heatbrl, legionna_state ) MCFG_YM3812_IRQ_HANDLER(DEVWRITELINE("seibu_sound", seibu_sound_device, fm_irqhandler)) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MCFG_OKIM6295_ADD("oki", 1320000, OKIM6295_PIN7_LOW) + MCFG_OKIM6295_ADD("oki", 1320000, PIN7_LOW) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40) MCFG_DEVICE_ADD("seibu_sound", SEIBU_SOUND, 0) @@ -1259,7 +1259,7 @@ static MACHINE_CONFIG_START( heatbrl, legionna_state ) MCFG_SEIBU_SOUND_YM_WRITE_CB(DEVWRITE8("ymsnd", ym3812_device, write)) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( godzilla, legionna_state ) +static MACHINE_CONFIG_START( godzilla ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 20000000/2) @@ -1303,7 +1303,7 @@ static MACHINE_CONFIG_START( godzilla, legionna_state ) MCFG_SOUND_ROUTE(0, "mono", 0.50) MCFG_SOUND_ROUTE(1, "mono", 0.50) - MCFG_OKIM6295_ADD("oki", 1320000, OKIM6295_PIN7_LOW) + MCFG_OKIM6295_ADD("oki", 1320000, PIN7_LOW) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40) MCFG_DEVICE_ADD("seibu_sound", SEIBU_SOUND, 0) @@ -1313,7 +1313,7 @@ static MACHINE_CONFIG_START( godzilla, legionna_state ) MCFG_SEIBU_SOUND_YM_WRITE_CB(DEVWRITE8("ymsnd", ym2151_device, write)) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( denjinmk, legionna_state ) +static MACHINE_CONFIG_START( denjinmk ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 20000000/2) @@ -1356,7 +1356,7 @@ static MACHINE_CONFIG_START( denjinmk, legionna_state ) MCFG_SOUND_ROUTE(0, "mono", 0.50) MCFG_SOUND_ROUTE(1, "mono", 0.50) - MCFG_OKIM6295_ADD("oki", 1320000, OKIM6295_PIN7_LOW) + MCFG_OKIM6295_ADD("oki", 1320000, PIN7_LOW) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40) MCFG_DEVICE_ADD("seibu_sound", SEIBU_SOUND, 0) @@ -1366,7 +1366,7 @@ static MACHINE_CONFIG_START( denjinmk, legionna_state ) MCFG_SEIBU_SOUND_YM_WRITE_CB(DEVWRITE8("ymsnd", ym2151_device, write)) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( grainbow, legionna_state ) +static MACHINE_CONFIG_START( grainbow ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 20000000/2) @@ -1409,7 +1409,7 @@ static MACHINE_CONFIG_START( grainbow, legionna_state ) MCFG_SOUND_ROUTE(0, "mono", 0.50) MCFG_SOUND_ROUTE(1, "mono", 0.50) - MCFG_OKIM6295_ADD("oki", 1320000, OKIM6295_PIN7_LOW) + MCFG_OKIM6295_ADD("oki", 1320000, PIN7_LOW) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40) MCFG_DEVICE_ADD("seibu_sound", SEIBU_SOUND, 0) @@ -1420,7 +1420,7 @@ static MACHINE_CONFIG_START( grainbow, legionna_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( cupsoc, legionna_state ) +static MACHINE_CONFIG_START( cupsoc ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000,20000000/2) @@ -1462,7 +1462,7 @@ static MACHINE_CONFIG_START( cupsoc, legionna_state ) MCFG_YM3812_IRQ_HANDLER(DEVWRITELINE("seibu_sound", seibu_sound_device, fm_irqhandler)) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MCFG_OKIM6295_ADD("oki", 1320000, OKIM6295_PIN7_LOW) + MCFG_OKIM6295_ADD("oki", 1320000, PIN7_LOW) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40) MCFG_DEVICE_ADD("seibu_sound", SEIBU_SOUND, 0) @@ -2537,21 +2537,21 @@ GAME( 1992, legionna, 0, legionna, legionna, legionna_state, legiongfx, R GAME( 1992, legionnau,legionna, legionna, legionna, legionna_state, legiongfx, ROT0, "TAD Corporation (Fabtek license)", "Legionnaire (US)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) GAME( 1992, legionnaj,legionna, legionna, legionna, legionna_state, legiongfx, ROT0, "TAD Corporation", "Legionnaire (Japan)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) -GAME( 1992, heatbrl, 0, heatbrl, heatbrl, driver_device, 0, ROT0, "TAD Corporation", "Heated Barrel (World version 3)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) -GAME( 1992, heatbrl2, heatbrl, heatbrl, heatbrl, driver_device, 0, ROT0, "TAD Corporation", "Heated Barrel (World version 2)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) -GAME( 1992, heatbrlo, heatbrl, heatbrl, heatbrl, driver_device, 0, ROT0, "TAD Corporation", "Heated Barrel (World old version)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) -GAME( 1992, heatbrlu, heatbrl, heatbrl, heatbrl, driver_device, 0, ROT0, "TAD Corporation", "Heated Barrel (US)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) -GAME( 1992, heatbrle, heatbrl, heatbrl, heatbrl, driver_device, 0, ROT0, "TAD Corporation (Electronic Devices license)", "Heated Barrel (Electronic Devices license)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) - -GAME( 1993, godzilla, 0, godzilla, godzilla, driver_device, 0, ROT0, "Banpresto", "Godzilla (Japan)", 0 ) -GAME( 1993, grainbow, 0, grainbow, grainbow, driver_device, 0, ROT0, "Banpresto", "SD Gundam Sangokushi Rainbow Tairiku Senki", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) -GAME( 1993, denjinmk, 0, denjinmk, denjinmk, driver_device, 0, ROT0, "Winkysoft (Banpresto license)", "Denjin Makai", MACHINE_IMPERFECT_COLORS ) - -GAME( 1992, cupsoc, 0, cupsoc, cupsoc, legionna_state, cupsoc, ROT0, "Seibu Kaihatsu", "Seibu Cup Soccer (set 1)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) -GAME( 1992, cupsoca, cupsoc, cupsoc, cupsoc, legionna_state, cupsoc, ROT0, "Seibu Kaihatsu", "Seibu Cup Soccer (set 2)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) -GAME( 1992, cupsocb, cupsoc, cupsoc, cupsoc, legionna_state, cupsocs, ROT0, "Seibu Kaihatsu", "Seibu Cup Soccer (set 3)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) -GAME( 1992, cupsocs, cupsoc, cupsocs, cupsoc, legionna_state, cupsocs, ROT0, "Seibu Kaihatsu", "Seibu Cup Soccer :Selection: (set 1)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) -GAME( 1992, cupsocs2, cupsoc, cupsocs, cupsoc, legionna_state, cupsocs, ROT0, "Seibu Kaihatsu", "Seibu Cup Soccer :Selection: (set 2)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) -GAME( 1992, olysoc92, cupsoc, cupsoc, cupsoc, legionna_state, olysoc92, ROT0, "Seibu Kaihatsu", "Olympic Soccer '92 (set 1)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) -GAME( 1992, olysoc92a,cupsoc, cupsoc, cupsoc, legionna_state, olysoc92, ROT0, "Seibu Kaihatsu", "Olympic Soccer '92 (set 2)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) -GAME( 1992, olysoc92b,cupsoc, cupsoc, cupsoc, legionna_state, olysoc92, ROT0, "Seibu Kaihatsu", "Olympic Soccer '92 (set 3)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) +GAME( 1992, heatbrl, 0, heatbrl, heatbrl, legionna_state, 0, ROT0, "TAD Corporation", "Heated Barrel (World version 3)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) +GAME( 1992, heatbrl2, heatbrl, heatbrl, heatbrl, legionna_state, 0, ROT0, "TAD Corporation", "Heated Barrel (World version 2)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) +GAME( 1992, heatbrlo, heatbrl, heatbrl, heatbrl, legionna_state, 0, ROT0, "TAD Corporation", "Heated Barrel (World old version)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) +GAME( 1992, heatbrlu, heatbrl, heatbrl, heatbrl, legionna_state, 0, ROT0, "TAD Corporation", "Heated Barrel (US)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) +GAME( 1992, heatbrle, heatbrl, heatbrl, heatbrl, legionna_state, 0, ROT0, "TAD Corporation (Electronic Devices license)", "Heated Barrel (Electronic Devices license)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) + +GAME( 1993, godzilla, 0, godzilla, godzilla, legionna_state, 0, ROT0, "Banpresto", "Godzilla (Japan)", 0 ) +GAME( 1993, grainbow, 0, grainbow, grainbow, legionna_state, 0, ROT0, "Banpresto", "SD Gundam Sangokushi Rainbow Tairiku Senki", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) +GAME( 1993, denjinmk, 0, denjinmk, denjinmk, legionna_state, 0, ROT0, "Winkysoft (Banpresto license)", "Denjin Makai", MACHINE_IMPERFECT_COLORS ) + +GAME( 1992, cupsoc, 0, cupsoc, cupsoc, legionna_state, cupsoc, ROT0, "Seibu Kaihatsu", "Seibu Cup Soccer (set 1)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) +GAME( 1992, cupsoca, cupsoc, cupsoc, cupsoc, legionna_state, cupsoc, ROT0, "Seibu Kaihatsu", "Seibu Cup Soccer (set 2)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) +GAME( 1992, cupsocb, cupsoc, cupsoc, cupsoc, legionna_state, cupsocs, ROT0, "Seibu Kaihatsu", "Seibu Cup Soccer (set 3)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) +GAME( 1992, cupsocs, cupsoc, cupsocs, cupsoc, legionna_state, cupsocs, ROT0, "Seibu Kaihatsu", "Seibu Cup Soccer :Selection: (set 1)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) +GAME( 1992, cupsocs2, cupsoc, cupsocs, cupsoc, legionna_state, cupsocs, ROT0, "Seibu Kaihatsu", "Seibu Cup Soccer :Selection: (set 2)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) +GAME( 1992, olysoc92, cupsoc, cupsoc, cupsoc, legionna_state, olysoc92, ROT0, "Seibu Kaihatsu", "Olympic Soccer '92 (set 1)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) +GAME( 1992, olysoc92a,cupsoc, cupsoc, cupsoc, legionna_state, olysoc92, ROT0, "Seibu Kaihatsu", "Olympic Soccer '92 (set 2)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) +GAME( 1992, olysoc92b,cupsoc, cupsoc, cupsoc, legionna_state, olysoc92, ROT0, "Seibu Kaihatsu", "Olympic Soccer '92 (set 3)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/leland.cpp b/src/mame/drivers/leland.cpp index 64e83f6bd87..c4e2a4f43d9 100644 --- a/src/mame/drivers/leland.cpp +++ b/src/mame/drivers/leland.cpp @@ -60,6 +60,8 @@ #include "emu.h" #include "includes/leland.h" +#include "audio/leland.h" + #include "cpu/z80/z80.h" #include "machine/nvram.h" #include "sound/volt_reg.h" @@ -938,7 +940,7 @@ INPUT_PORTS_END * *************************************/ -static MACHINE_CONFIG_START( leland, leland_state ) +static MACHINE_CONFIG_START( leland ) /* basic machine hardware */ MCFG_CPU_ADD("master", Z80, MASTER_CLOCK/2) @@ -1020,7 +1022,7 @@ static MACHINE_CONFIG_DERIVED( lelandi, quarterb ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( ataxx, leland_state ) +static MACHINE_CONFIG_START( ataxx ) /* basic machine hardware */ MCFG_CPU_ADD("master", Z80, 6000000) diff --git a/src/mame/drivers/lemmings.cpp b/src/mame/drivers/lemmings.cpp index a5ec3d42789..e3e04e32afb 100644 --- a/src/mame/drivers/lemmings.cpp +++ b/src/mame/drivers/lemmings.cpp @@ -233,7 +233,7 @@ void lemmings_state::machine_start() { } -static MACHINE_CONFIG_START( lemmings, lemmings_state ) +static MACHINE_CONFIG_START( lemmings ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 14000000) @@ -283,7 +283,7 @@ static MACHINE_CONFIG_START( lemmings, lemmings_state ) MCFG_SOUND_ROUTE(0, "lspeaker", 0.45) MCFG_SOUND_ROUTE(1, "rspeaker", 0.45) - MCFG_OKIM6295_ADD("oki", 1023924, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki", 1023924, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.50) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.50) MACHINE_CONFIG_END @@ -322,4 +322,4 @@ ROM_END /******************************************************************************/ -GAME( 1991, lemmings, 0, lemmings, lemmings, driver_device, 0, ROT0, "Data East USA", "Lemmings (US prototype)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, lemmings, 0, lemmings, lemmings, lemmings_state, 0, ROT0, "Data East USA", "Lemmings (US prototype)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/lethal.cpp b/src/mame/drivers/lethal.cpp index 3dc1dc0f05a..08cbdccc65f 100644 --- a/src/mame/drivers/lethal.cpp +++ b/src/mame/drivers/lethal.cpp @@ -486,7 +486,7 @@ void lethal_state::machine_reset() m_bank4000->set_bank(0); } -static MACHINE_CONFIG_START( lethalen, lethal_state ) +static MACHINE_CONFIG_START( lethalen ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", HD6309, MAIN_CLOCK/2) /* verified on pcb */ @@ -753,14 +753,14 @@ ROM_END // date strings are at 0x3fd00 in the main program rom -GAME( 1992, lethalen, 0, lethalen, lethalen, driver_device, 0, ORIENTATION_FLIP_Y, "Konami", "Lethal Enforcers (ver UAE, 11/19/92 15:04)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // writes UE to eeprom -GAME( 1992, lethalenub, lethalen, lethalen, lethalen, driver_device, 0, ORIENTATION_FLIP_Y, "Konami", "Lethal Enforcers (ver UAB, 09/01/92 11:12)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // writes UB to eeprom -GAME( 1992, lethalenua, lethalen, lethalen, lethalen, driver_device, 0, ORIENTATION_FLIP_Y, "Konami", "Lethal Enforcers (ver UAA, 08/17/92 21:38)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // writes UA to eeprom -GAME( 1992, lethalenux, lethalen, lethalen, lethalen, driver_device, 0, ORIENTATION_FLIP_Y, "Konami", "Lethal Enforcers (ver unknown, US, 08/06/92 15:11, hacked/proto?)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // writes UA to eeprom but earlier than suspected UAA set, might be a proto, might be hacked, fails rom test, definitely a good dump, another identical set was found in Italy +GAME( 1992, lethalen, 0, lethalen, lethalen, lethal_state, 0, ORIENTATION_FLIP_Y, "Konami", "Lethal Enforcers (ver UAE, 11/19/92 15:04)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // writes UE to eeprom +GAME( 1992, lethalenub, lethalen, lethalen, lethalen, lethal_state, 0, ORIENTATION_FLIP_Y, "Konami", "Lethal Enforcers (ver UAB, 09/01/92 11:12)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // writes UB to eeprom +GAME( 1992, lethalenua, lethalen, lethalen, lethalen, lethal_state, 0, ORIENTATION_FLIP_Y, "Konami", "Lethal Enforcers (ver UAA, 08/17/92 21:38)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // writes UA to eeprom +GAME( 1992, lethalenux, lethalen, lethalen, lethalen, lethal_state, 0, ORIENTATION_FLIP_Y, "Konami", "Lethal Enforcers (ver unknown, US, 08/06/92 15:11, hacked/proto?)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // writes UA to eeprom but earlier than suspected UAA set, might be a proto, might be hacked, fails rom test, definitely a good dump, another identical set was found in Italy -GAME( 1992, lethaleneae,lethalen, lethalen, lethalene, driver_device, 0, ORIENTATION_FLIP_Y, "Konami", "Lethal Enforcers (ver EAE, 11/19/92 16:24)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // writes EE to eeprom -GAME( 1992, lethaleneab,lethalen, lethalen, lethalene, driver_device, 0, ORIENTATION_FLIP_Y, "Konami", "Lethal Enforcers (ver EAB, 10/14/92 19:53)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // writes EC to eeprom, so might actually be EC -GAME( 1992, lethaleneaa,lethalen, lethalen, lethalene, driver_device, 0, ORIENTATION_FLIP_Y, "Konami", "Lethal Enforcers (ver EAA, 09/09/92 09:44)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // writes EA to eeprom +GAME( 1992, lethaleneae,lethalen, lethalen, lethalene, lethal_state, 0, ORIENTATION_FLIP_Y, "Konami", "Lethal Enforcers (ver EAE, 11/19/92 16:24)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // writes EE to eeprom +GAME( 1992, lethaleneab,lethalen, lethalen, lethalene, lethal_state, 0, ORIENTATION_FLIP_Y, "Konami", "Lethal Enforcers (ver EAB, 10/14/92 19:53)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // writes EC to eeprom, so might actually be EC +GAME( 1992, lethaleneaa,lethalen, lethalen, lethalene, lethal_state, 0, ORIENTATION_FLIP_Y, "Konami", "Lethal Enforcers (ver EAA, 09/09/92 09:44)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // writes EA to eeprom // different mirror / display setup -GAME( 1992, lethalenj, lethalen, lethalej, lethalenj, driver_device, 0, ORIENTATION_FLIP_X, "Konami", "Lethal Enforcers (ver JAD, 12/04/92 17:16)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // writes JC to eeprom?! +GAME( 1992, lethalenj, lethalen, lethalej, lethalenj, lethal_state, 0, ORIENTATION_FLIP_X, "Konami", "Lethal Enforcers (ver JAD, 12/04/92 17:16)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // writes JC to eeprom?! diff --git a/src/mame/drivers/lethalj.cpp b/src/mame/drivers/lethalj.cpp index d55fd3490e7..46d4f812ada 100644 --- a/src/mame/drivers/lethalj.cpp +++ b/src/mame/drivers/lethalj.cpp @@ -629,7 +629,7 @@ INPUT_PORTS_END * *************************************/ -static MACHINE_CONFIG_START( gameroom, lethalj_state ) +static MACHINE_CONFIG_START( gameroom ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS34010, MASTER_CLOCK) @@ -652,13 +652,13 @@ static MACHINE_CONFIG_START( gameroom, lethalj_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki1", SOUND_CLOCK, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki1", SOUND_CLOCK, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.8) - MCFG_OKIM6295_ADD("oki2", SOUND_CLOCK, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki2", SOUND_CLOCK, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.8) - MCFG_OKIM6295_ADD("oki3", SOUND_CLOCK, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki3", SOUND_CLOCK, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.8) MACHINE_CONFIG_END @@ -1040,14 +1040,14 @@ DRIVER_INIT_MEMBER(lethalj_state,cclownz) * *************************************/ -GAME( 1996, lethalj, 0, lethalj, lethalj, driver_device, 0, ROT0, "The Game Room", "Lethal Justice (Version 2.3)", 0 ) -GAME( 1996, franticf, 0, gameroom, franticf, driver_device, 0, ROT0, "The Game Room", "Frantic Fred", MACHINE_NOT_WORKING ) -GAME( 1997, eggventr, 0, gameroom, eggventr, driver_device, 0, ROT0, "The Game Room", "Egg Venture (Release 10)", 0 ) -GAME( 1997, eggventr8, eggventr, gameroom, eggventr, driver_device, 0, ROT0, "The Game Room", "Egg Venture (Release 8)", 0 ) -GAME( 1997, eggventr7, eggventr, gameroom, eggventr, driver_device, 0, ROT0, "The Game Room", "Egg Venture (Release 7)", 0 ) -GAME( 1997, eggventr2, eggventr, gameroom, eggventr2, driver_device, 0, ROT0, "The Game Room", "Egg Venture (Release 2)", 0 ) -GAME( 1997, eggventra, eggventr, gameroom, eggventr, driver_device, 0, ROT0, "The Game Room (A.L. Australia license)", "Egg Venture (A.L. Release)", 0 ) -GAME( 1997, eggventrd, eggventr, gameroom, eggvntdx, driver_device, 0, ROT0, "The Game Room", "Egg Venture Deluxe", 0 ) +GAME( 1996, lethalj, 0, lethalj, lethalj, lethalj_state, 0, ROT0, "The Game Room", "Lethal Justice (Version 2.3)", 0 ) +GAME( 1996, franticf, 0, gameroom, franticf, lethalj_state, 0, ROT0, "The Game Room", "Frantic Fred", MACHINE_NOT_WORKING ) +GAME( 1997, eggventr, 0, gameroom, eggventr, lethalj_state, 0, ROT0, "The Game Room", "Egg Venture (Release 10)", 0 ) +GAME( 1997, eggventr8, eggventr, gameroom, eggventr, lethalj_state, 0, ROT0, "The Game Room", "Egg Venture (Release 8)", 0 ) +GAME( 1997, eggventr7, eggventr, gameroom, eggventr, lethalj_state, 0, ROT0, "The Game Room", "Egg Venture (Release 7)", 0 ) +GAME( 1997, eggventr2, eggventr, gameroom, eggventr2, lethalj_state, 0, ROT0, "The Game Room", "Egg Venture (Release 2)", 0 ) +GAME( 1997, eggventra, eggventr, gameroom, eggventr, lethalj_state, 0, ROT0, "The Game Room (A.L. Australia license)", "Egg Venture (A.L. Release)", 0 ) +GAME( 1997, eggventrd, eggventr, gameroom, eggvntdx, lethalj_state, 0, ROT0, "The Game Room", "Egg Venture Deluxe", 0 ) GAME( 1997, ripribit, 0, gameroom, ripribit, lethalj_state, ripribit, ROT0, "LAI Games", "Ripper Ribbit (Version 3.5)", 0 ) GAME( 1997, ripribita, ripribit, gameroom, ripribit, lethalj_state, ripribit, ROT0, "LAI Games", "Ripper Ribbit (Version 2.8.4)", 0 ) GAME( 1999, cfarm, 0, gameroom, cfarm, lethalj_state, cfarm, ROT90, "LAI Games", "Chicken Farm (Version 2.0)", 0 ) diff --git a/src/mame/drivers/lft.cpp b/src/mame/drivers/lft.cpp index e067ac93994..315a6bf97e5 100644 --- a/src/mame/drivers/lft.cpp +++ b/src/mame/drivers/lft.cpp @@ -19,9 +19,10 @@ public: : driver_device(mconfig, type, tag) , m_maincpu(*this, "maincpu") , m_terminal(*this, "terminal") - {} + { + } - DECLARE_WRITE8_MEMBER(kbd_put); + void kbd_put(u8 data); DECLARE_WRITE16_MEMBER(term_w); DECLARE_READ16_MEMBER(keyin_r); DECLARE_READ16_MEMBER(status_r); @@ -67,7 +68,7 @@ READ16_MEMBER( lft_state::status_r ) return (m_term_data) ? 5 : 4; } -WRITE8_MEMBER( lft_state::kbd_put ) +void lft_state::kbd_put(u8 data) { m_term_data = data; } @@ -82,7 +83,7 @@ void lft_state::machine_reset() m_term_data = 0; } -static MACHINE_CONFIG_START( lft, lft_state ) +static MACHINE_CONFIG_START( lft ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I80186, 4000000) // no idea MCFG_CPU_PROGRAM_MAP(lft_mem) @@ -90,7 +91,7 @@ static MACHINE_CONFIG_START( lft, lft_state ) /* video hardware */ MCFG_DEVICE_ADD("terminal", GENERIC_TERMINAL, 0) - MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(lft_state, kbd_put)) + MCFG_GENERIC_TERMINAL_KEYBOARD_CB(PUT(lft_state, kbd_put)) MACHINE_CONFIG_END @@ -112,6 +113,6 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( ????, lft1510, 0, 0, lft, lft, driver_device, 0, "LFT", "LFT 1510", MACHINE_IS_SKELETON) -COMP( ????, lft1230, lft1510, 0, lft, lft, driver_device, 0, "LFT", "LFT 1230", MACHINE_IS_SKELETON) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( ????, lft1510, 0, 0, lft, lft, lft_state, 0, "LFT", "LFT 1510", MACHINE_IS_SKELETON) +COMP( ????, lft1230, lft1510, 0, lft, lft, lft_state, 0, "LFT", "LFT 1230", MACHINE_IS_SKELETON) diff --git a/src/mame/drivers/lg-dvd.cpp b/src/mame/drivers/lg-dvd.cpp index 6255b4f2f1d..e3aba7d3d0b 100644 --- a/src/mame/drivers/lg-dvd.cpp +++ b/src/mame/drivers/lg-dvd.cpp @@ -9,13 +9,15 @@ #include "emu.h" #include "cpu/mcs51/mcs51.h" -class lg_dvd_state : public driver_device { +class lg_dvd_state : public driver_device +{ public: lg_dvd_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag), - maincpu(*this, "maincpu") + : driver_device(mconfig, type, tag) + , maincpu(*this, "maincpu") { } +protected: required_device maincpu; }; @@ -26,7 +28,7 @@ static ADDRESS_MAP_START( lg_dvd_map, AS_PROGRAM, 8, lg_dvd_state ) AM_RANGE(0x0000, 0x7fff) AM_ROM AM_REGION("maincpu", 0) ADDRESS_MAP_END -static MACHINE_CONFIG_START( lg, lg_dvd_state ) +static MACHINE_CONFIG_START( lg ) MCFG_CPU_ADD( "maincpu", I80C52, XTAL_16MHz ) MCFG_CPU_PROGRAM_MAP( lg_dvd_map ) MACHINE_CONFIG_END @@ -39,4 +41,4 @@ ROM_START( lggp40 ) ROMX_LOAD( "firm-1.01.bin", 0x000000, 0x100000, CRC(28820e0c) SHA1(c5f2c1e14e6cff2e57c5196cabcebfaaff7284ce), ROM_BIOS(2) ) ROM_END -SYST( 2011, lggp40, 0, 0, lg, lg, driver_device, 0, "LG", "GP40NW10 dvd writer", MACHINE_NOT_WORKING|MACHINE_NO_SOUND_HW ) +SYST( 2011, lggp40, 0, 0, lg, lg, lg_dvd_state, 0, "LG", "GP40NW10 dvd writer", MACHINE_NOT_WORKING|MACHINE_NO_SOUND_HW ) diff --git a/src/mame/drivers/lgp.cpp b/src/mame/drivers/lgp.cpp index c9ccb9c9d93..a18a7cdf148 100644 --- a/src/mame/drivers/lgp.cpp +++ b/src/mame/drivers/lgp.cpp @@ -397,7 +397,7 @@ PALETTE_INIT_MEMBER(lgp_state, lgp) } /* DRIVER */ -static MACHINE_CONFIG_START( lgp, lgp_state ) +static MACHINE_CONFIG_START( lgp ) /* main cpu */ MCFG_CPU_ADD("maincpu", Z80, CPU_PCB_CLOCK) MCFG_CPU_PROGRAM_MAP(main_program_map) @@ -609,6 +609,6 @@ DRIVER_INIT_MEMBER(lgp_state,lgp) { } -/* YEAR NAME PARENT MACHINE INPUT INIT MONITOR COMPANY FULLNAME FLAGS) */ -GAME( 1983, lgp, 0, lgp, lgp, lgp_state, lgp, ROT0, "Taito", "Laser Grand Prix", MACHINE_NOT_WORKING|MACHINE_NO_SOUND) -GAME( 1983, lgpalt, lgp, lgp, lgp, lgp_state, lgp, ROT0, "Taito", "Laser Grand Prix (alternate)", MACHINE_NOT_WORKING|MACHINE_NO_SOUND) +/* YEAR NAME PARENT MACHINE INPUT STATE INIT MONITOR COMPANY FULLNAME FLAGS) */ +GAME( 1983, lgp, 0, lgp, lgp, lgp_state, lgp, ROT0, "Taito", "Laser Grand Prix", MACHINE_NOT_WORKING|MACHINE_NO_SOUND) +GAME( 1983, lgpalt, lgp, lgp, lgp, lgp_state, lgp, ROT0, "Taito", "Laser Grand Prix (alternate)", MACHINE_NOT_WORKING|MACHINE_NO_SOUND) diff --git a/src/mame/drivers/liberate.cpp b/src/mame/drivers/liberate.cpp index d4c810d4eb6..12f62bc03c5 100644 --- a/src/mame/drivers/liberate.cpp +++ b/src/mame/drivers/liberate.cpp @@ -728,7 +728,7 @@ MACHINE_RESET_MEMBER(liberate_state,liberate) m_bank = 0; } -static MACHINE_CONFIG_START( liberate_base, liberate_state ) +static MACHINE_CONFIG_START( liberate_base ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",DECO16, 2000000) @@ -815,7 +815,7 @@ static MACHINE_CONFIG_DERIVED( prosoccr, liberate_base ) MCFG_VIDEO_START_OVERRIDE(liberate_state,prosoccr) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( prosport, liberate_state ) +static MACHINE_CONFIG_START( prosport ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", DECO16, 2000000) diff --git a/src/mame/drivers/liberatr.cpp b/src/mame/drivers/liberatr.cpp index 989b607e1fa..601fdc054a0 100644 --- a/src/mame/drivers/liberatr.cpp +++ b/src/mame/drivers/liberatr.cpp @@ -415,7 +415,7 @@ INPUT_PORTS_END * *************************************/ -static MACHINE_CONFIG_START( liberatr, liberatr_state ) +static MACHINE_CONFIG_START( liberatr ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, MASTER_CLOCK/16) /* 1.25Mhz divided from 20Mhz master clock */ @@ -532,5 +532,5 @@ ROM_END * *************************************/ -GAME( 1982, liberatr, 0, liberatr, liberatr, driver_device, 0, ROT0, "Atari", "Liberator (set 1)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1982, liberatr2,liberatr, liberat2, liberatr, driver_device, 0, ROT0, "Atari", "Liberator (set 2)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1982, liberatr, 0, liberatr, liberatr, liberatr_state, 0, ROT0, "Atari", "Liberator (set 1)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1982, liberatr2,liberatr, liberat2, liberatr, liberatr_state, 0, ROT0, "Atari", "Liberator (set 2)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/limenko.cpp b/src/mame/drivers/limenko.cpp index aa249e7be94..b4157858677 100644 --- a/src/mame/drivers/limenko.cpp +++ b/src/mame/drivers/limenko.cpp @@ -730,7 +730,7 @@ GFXDECODE_END *****************************************************************************************************/ -static MACHINE_CONFIG_START( limenko, limenko_state ) +static MACHINE_CONFIG_START( limenko ) MCFG_CPU_ADD("maincpu", E132XN, 20000000*4) /* 4x internal multiplier */ MCFG_CPU_PROGRAM_MAP(limenko_map) MCFG_CPU_IO_MAP(limenko_io_map) @@ -766,7 +766,7 @@ static MACHINE_CONFIG_START( limenko, limenko_state ) MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( spotty, limenko_state ) +static MACHINE_CONFIG_START( spotty ) MCFG_CPU_ADD("maincpu", GMS30C2232, 20000000) /* 20 MHz, no internal multiplier */ MCFG_CPU_PROGRAM_MAP(spotty_map) MCFG_CPU_IO_MAP(spotty_io_map) @@ -796,7 +796,7 @@ static MACHINE_CONFIG_START( spotty, limenko_state ) MCFG_GENERIC_LATCH_8_ADD("soundlatch") - MCFG_OKIM6295_ADD("oki", 4000000 / 4 , OKIM6295_PIN7_HIGH) //? + MCFG_OKIM6295_ADD("oki", 4000000 / 4 , PIN7_HIGH) //? MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -1161,10 +1161,10 @@ DRIVER_INIT_MEMBER(limenko_state,spotty) save_item(NAME(m_spotty_sound_cmd)); } -GAME( 2000, dynabomb, 0, limenko, sb2003, limenko_state, dynabomb, ROT0, "Limenko", "Dynamite Bomber (Korea, Rev 1.5)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 2000, legendoh, 0, limenko, legendoh, limenko_state, legendoh, ROT0, "Limenko", "Legend of Heroes", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 2003, sb2003, 0, limenko, sb2003, limenko_state, sb2003, ROT0, "Limenko", "Super Bubble 2003 (World, Ver 1.0)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 2003, sb2003a, sb2003, limenko, sb2003, limenko_state, sb2003, ROT0, "Limenko", "Super Bubble 2003 (Asia, Ver 1.0)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 2000, dynabomb, 0, limenko, sb2003, limenko_state, dynabomb, ROT0, "Limenko", "Dynamite Bomber (Korea, Rev 1.5)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 2000, legendoh, 0, limenko, legendoh, limenko_state, legendoh, ROT0, "Limenko", "Legend of Heroes", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 2003, sb2003, 0, limenko, sb2003, limenko_state, sb2003, ROT0, "Limenko", "Super Bubble 2003 (World, Ver 1.0)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 2003, sb2003a, sb2003, limenko, sb2003, limenko_state, sb2003, ROT0, "Limenko", "Super Bubble 2003 (Asia, Ver 1.0)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // this game only uses the same graphics chip used in Limenko's system -GAME( 2001, spotty, 0, spotty, spotty, limenko_state, spotty, ROT0, "Prince Co.", "Spotty (Ver. 2.0.2)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 2001, spotty, 0, spotty, spotty, limenko_state, spotty, ROT0, "Prince Co.", "Spotty (Ver. 2.0.2)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/lindbergh.cpp b/src/mame/drivers/lindbergh.cpp index 6bcd5e0cfb3..2ce6da999d2 100644 --- a/src/mame/drivers/lindbergh.cpp +++ b/src/mame/drivers/lindbergh.cpp @@ -389,7 +389,7 @@ void lindbergh_state::machine_reset() { } -static MACHINE_CONFIG_START(lindbergh, lindbergh_state) +static MACHINE_CONFIG_START(lindbergh) MCFG_CPU_ADD("maincpu", PENTIUM4, 28000000U*5) /* Actually Celeron D at 2,8 GHz */ MCFG_PCI_ROOT_ADD( ":pci") @@ -609,22 +609,22 @@ ROM_START(lbvbiosu) DISK_IMAGE_READONLY("dvp-0021b", 0, SHA1(362ac028ba19ba4762678953a033034a5ee8ad53)) ROM_END -GAME(1999, lindbios, 0, lindbergh, 0, driver_device, 0, ROT0, "Sega", "Sega Lindbergh Bios", MACHINE_IS_BIOS_ROOT) -GAME(2005, hotd4, lindbios, lindbergh, 0, driver_device, 0, ROT0, "Sega", "House of the Dead 4 (Export) (Rev B)", MACHINE_NOT_WORKING|MACHINE_UNEMULATED_PROTECTION|MACHINE_NO_SOUND) -GAME(2005, hotd4a, hotd4, lindbergh, 0, driver_device, 0, ROT0, "Sega", "House of the Dead 4 (Export) (Rev A)", MACHINE_NOT_WORKING|MACHINE_UNEMULATED_PROTECTION|MACHINE_NO_SOUND) -GAME(2005, vf5, lindbios, lindbergh, 0, driver_device, 0, ROT0, "Sega", "Virtua Fighter 5 (Export)", MACHINE_NOT_WORKING|MACHINE_UNEMULATED_PROTECTION|MACHINE_NO_SOUND) -GAME(2006, abclimax, lindbios, lindbergh, 0, driver_device, 0, ROT0, "Sega", "After Burner Climax (Export)", MACHINE_NOT_WORKING|MACHINE_UNEMULATED_PROTECTION|MACHINE_NO_SOUND) -GAME(2006, letsgoju, lindbios, lindbergh, 0, driver_device, 0, ROT0, "Sega", "Let's Go Jungle (Export)", MACHINE_NOT_WORKING|MACHINE_UNEMULATED_PROTECTION|MACHINE_NO_SOUND) -GAME(2006, outr2sdx, lindbios, lindbergh, 0, driver_device, 0, ROT0, "Sega", "OutRun 2 SP SDX", MACHINE_NOT_WORKING|MACHINE_UNEMULATED_PROTECTION|MACHINE_NO_SOUND) -GAME(2006, psmash3, lindbios, lindbergh, 0, driver_device, 0, ROT0, "Sega", "Power Smash 3 / Virtua Tennis 3 (Export)", MACHINE_NOT_WORKING|MACHINE_UNEMULATED_PROTECTION|MACHINE_NO_SOUND) -GAME(2006, vtennis3, lindbios, lindbergh, 0, driver_device, 0, ROT0, "Sega", "Virtua Tennis 3 (Japan)", MACHINE_NOT_WORKING|MACHINE_UNEMULATED_PROTECTION|MACHINE_NO_SOUND) -GAME(2007, 2spicy, lindbios, lindbergh, 0, driver_device, 0, ROT0, "Sega", "2 Spicy", MACHINE_NOT_WORKING|MACHINE_UNEMULATED_PROTECTION|MACHINE_NO_SOUND) -GAME(2007, ghostsev, lindbios, lindbergh, 0, driver_device, 0, ROT0, "Sega", "Ghost Squad Evolution", MACHINE_NOT_WORKING|MACHINE_UNEMULATED_PROTECTION|MACHINE_NO_SOUND) -GAME(2007, initiad4, lindbios, lindbergh, 0, driver_device, 0, ROT0, "Sega", "Initial D4 (Rev D)", MACHINE_NOT_WORKING|MACHINE_UNEMULATED_PROTECTION|MACHINE_NO_SOUND) -GAME(2007, initiad4c, initiad4, lindbergh, 0, driver_device, 0, ROT0, "Sega", "Initial D4 (Rev C)", MACHINE_NOT_WORKING|MACHINE_UNEMULATED_PROTECTION|MACHINE_NO_SOUND) -GAME(2007, segartv, lindbios, lindbergh, 0, driver_device, 0, ROT0, "Sega", "Sega Race-TV (Export)", MACHINE_NOT_WORKING|MACHINE_UNEMULATED_PROTECTION|MACHINE_NO_SOUND) -GAME(2008, hotdex, lindbios, lindbergh, 0, driver_device, 0, ROT0, "Sega", "House of the Dead EX (Japan)", MACHINE_NOT_WORKING|MACHINE_UNEMULATED_PROTECTION|MACHINE_NO_SOUND) -GAME(2008, primevah, lindbios, lindbergh, 0, driver_device, 0, ROT0, "Sega", "Primeval Hunt", MACHINE_NOT_WORKING|MACHINE_UNEMULATED_PROTECTION|MACHINE_NO_SOUND) -GAME(2008, rambo, lindbios, lindbergh, 0, driver_device, 0, ROT0, "Sega", "Rambo (Export)", MACHINE_NOT_WORKING|MACHINE_UNEMULATED_PROTECTION|MACHINE_NO_SOUND) -GAME(2009, hummerxt, lindbios, lindbergh, 0, driver_device, 0, ROT0, "Sega", "Hummer Extreme", MACHINE_NOT_WORKING|MACHINE_UNEMULATED_PROTECTION|MACHINE_NO_SOUND) -GAME(200?, lbvbiosu, lindbios, lindbergh, 0, driver_device, 0, ROT0, "Sega", "VBios updater", MACHINE_NOT_WORKING|MACHINE_UNEMULATED_PROTECTION|MACHINE_NO_SOUND) +GAME(1999, lindbios, 0, lindbergh, 0, lindbergh_state, 0, ROT0, "Sega", "Sega Lindbergh Bios", MACHINE_IS_BIOS_ROOT) +GAME(2005, hotd4, lindbios, lindbergh, 0, lindbergh_state, 0, ROT0, "Sega", "House of the Dead 4 (Export) (Rev B)", MACHINE_NOT_WORKING|MACHINE_UNEMULATED_PROTECTION|MACHINE_NO_SOUND) +GAME(2005, hotd4a, hotd4, lindbergh, 0, lindbergh_state, 0, ROT0, "Sega", "House of the Dead 4 (Export) (Rev A)", MACHINE_NOT_WORKING|MACHINE_UNEMULATED_PROTECTION|MACHINE_NO_SOUND) +GAME(2005, vf5, lindbios, lindbergh, 0, lindbergh_state, 0, ROT0, "Sega", "Virtua Fighter 5 (Export)", MACHINE_NOT_WORKING|MACHINE_UNEMULATED_PROTECTION|MACHINE_NO_SOUND) +GAME(2006, abclimax, lindbios, lindbergh, 0, lindbergh_state, 0, ROT0, "Sega", "After Burner Climax (Export)", MACHINE_NOT_WORKING|MACHINE_UNEMULATED_PROTECTION|MACHINE_NO_SOUND) +GAME(2006, letsgoju, lindbios, lindbergh, 0, lindbergh_state, 0, ROT0, "Sega", "Let's Go Jungle (Export)", MACHINE_NOT_WORKING|MACHINE_UNEMULATED_PROTECTION|MACHINE_NO_SOUND) +GAME(2006, outr2sdx, lindbios, lindbergh, 0, lindbergh_state, 0, ROT0, "Sega", "OutRun 2 SP SDX", MACHINE_NOT_WORKING|MACHINE_UNEMULATED_PROTECTION|MACHINE_NO_SOUND) +GAME(2006, psmash3, lindbios, lindbergh, 0, lindbergh_state, 0, ROT0, "Sega", "Power Smash 3 / Virtua Tennis 3 (Export)", MACHINE_NOT_WORKING|MACHINE_UNEMULATED_PROTECTION|MACHINE_NO_SOUND) +GAME(2006, vtennis3, lindbios, lindbergh, 0, lindbergh_state, 0, ROT0, "Sega", "Virtua Tennis 3 (Japan)", MACHINE_NOT_WORKING|MACHINE_UNEMULATED_PROTECTION|MACHINE_NO_SOUND) +GAME(2007, 2spicy, lindbios, lindbergh, 0, lindbergh_state, 0, ROT0, "Sega", "2 Spicy", MACHINE_NOT_WORKING|MACHINE_UNEMULATED_PROTECTION|MACHINE_NO_SOUND) +GAME(2007, ghostsev, lindbios, lindbergh, 0, lindbergh_state, 0, ROT0, "Sega", "Ghost Squad Evolution", MACHINE_NOT_WORKING|MACHINE_UNEMULATED_PROTECTION|MACHINE_NO_SOUND) +GAME(2007, initiad4, lindbios, lindbergh, 0, lindbergh_state, 0, ROT0, "Sega", "Initial D4 (Rev D)", MACHINE_NOT_WORKING|MACHINE_UNEMULATED_PROTECTION|MACHINE_NO_SOUND) +GAME(2007, initiad4c, initiad4, lindbergh, 0, lindbergh_state, 0, ROT0, "Sega", "Initial D4 (Rev C)", MACHINE_NOT_WORKING|MACHINE_UNEMULATED_PROTECTION|MACHINE_NO_SOUND) +GAME(2007, segartv, lindbios, lindbergh, 0, lindbergh_state, 0, ROT0, "Sega", "Sega Race-TV (Export)", MACHINE_NOT_WORKING|MACHINE_UNEMULATED_PROTECTION|MACHINE_NO_SOUND) +GAME(2008, hotdex, lindbios, lindbergh, 0, lindbergh_state, 0, ROT0, "Sega", "House of the Dead EX (Japan)", MACHINE_NOT_WORKING|MACHINE_UNEMULATED_PROTECTION|MACHINE_NO_SOUND) +GAME(2008, primevah, lindbios, lindbergh, 0, lindbergh_state, 0, ROT0, "Sega", "Primeval Hunt", MACHINE_NOT_WORKING|MACHINE_UNEMULATED_PROTECTION|MACHINE_NO_SOUND) +GAME(2008, rambo, lindbios, lindbergh, 0, lindbergh_state, 0, ROT0, "Sega", "Rambo (Export)", MACHINE_NOT_WORKING|MACHINE_UNEMULATED_PROTECTION|MACHINE_NO_SOUND) +GAME(2009, hummerxt, lindbios, lindbergh, 0, lindbergh_state, 0, ROT0, "Sega", "Hummer Extreme", MACHINE_NOT_WORKING|MACHINE_UNEMULATED_PROTECTION|MACHINE_NO_SOUND) +GAME(200?, lbvbiosu, lindbios, lindbergh, 0, lindbergh_state, 0, ROT0, "Sega", "VBios updater", MACHINE_NOT_WORKING|MACHINE_UNEMULATED_PROTECTION|MACHINE_NO_SOUND) diff --git a/src/mame/drivers/lisa.cpp b/src/mame/drivers/lisa.cpp index fb67ddd07f8..05b196400dc 100644 --- a/src/mame/drivers/lisa.cpp +++ b/src/mame/drivers/lisa.cpp @@ -95,7 +95,7 @@ static const floppy_interface lisa_floppy_interface = ***************************************************************************/ /* Lisa1 and Lisa 2 machine */ -static MACHINE_CONFIG_START( lisa, lisa_state ) +static MACHINE_CONFIG_START( lisa ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 5093760) /* 20.37504 MHz / 4 */ MCFG_CPU_PROGRAM_MAP(lisa_map) @@ -479,8 +479,8 @@ ROM_END Lisa drivers boot MacWorks, but do not boot the Lisa OS, which is why we set the MACHINE_NOT_WORKING flag... */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ -COMP( 1983, lisa, 0, 0, lisa, lisa, lisa_state, lisa2, "Apple Computer", "Lisa", MACHINE_NOT_WORKING ) -COMP( 1984, lisa2, 0, 0, lisa, lisa, lisa_state, lisa2, "Apple Computer", "Lisa2", MACHINE_NOT_WORKING ) -COMP( 1984, lisa210, lisa2, 0, lisa210, lisa, lisa_state, lisa210, "Apple Computer", "Lisa2/10", MACHINE_NOT_WORKING ) -COMP( 1985, macxl, lisa2, 0, macxl, lisa, lisa_state, mac_xl, "Apple Computer", "Macintosh XL", /*MACHINE_NOT_WORKING*/0 ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME */ +COMP( 1983, lisa, 0, 0, lisa, lisa, lisa_state, lisa2, "Apple Computer", "Lisa", MACHINE_NOT_WORKING ) +COMP( 1984, lisa2, 0, 0, lisa, lisa, lisa_state, lisa2, "Apple Computer", "Lisa2", MACHINE_NOT_WORKING ) +COMP( 1984, lisa210, lisa2, 0, lisa210, lisa, lisa_state, lisa210, "Apple Computer", "Lisa2/10", MACHINE_NOT_WORKING ) +COMP( 1985, macxl, lisa2, 0, macxl, lisa, lisa_state, mac_xl, "Apple Computer", "Macintosh XL", /*MACHINE_NOT_WORKING*/0 ) diff --git a/src/mame/drivers/littlerb.cpp b/src/mame/drivers/littlerb.cpp index 7e17e2abc02..ceb23f816d7 100644 --- a/src/mame/drivers/littlerb.cpp +++ b/src/mame/drivers/littlerb.cpp @@ -248,7 +248,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(littlerb_state::littlerb_sound_step_cb) m_soundframe++; } -static MACHINE_CONFIG_START( littlerb, littlerb_state ) +static MACHINE_CONFIG_START( littlerb ) MCFG_CPU_ADD("maincpu", M68000, 12000000) MCFG_CPU_PROGRAM_MAP(littlerb_main) @@ -278,4 +278,4 @@ ROM_START( littlerb ) ROM_END -GAME( 1994, littlerb, 0, littlerb, littlerb, driver_device, 0, ROT0, "TCH", "Little Robin", MACHINE_IMPERFECT_GRAPHICS|MACHINE_IMPERFECT_SOUND ) +GAME( 1994, littlerb, 0, littlerb, littlerb, littlerb_state, 0, ROT0, "TCH", "Little Robin", MACHINE_IMPERFECT_GRAPHICS|MACHINE_IMPERFECT_SOUND ) diff --git a/src/mame/drivers/lkage.cpp b/src/mame/drivers/lkage.cpp index a9d9a413903..46a9b723d3b 100644 --- a/src/mame/drivers/lkage.cpp +++ b/src/mame/drivers/lkage.cpp @@ -505,7 +505,7 @@ void lkage_state::machine_reset() } -static MACHINE_CONFIG_START( lkage, lkage_state ) +static MACHINE_CONFIG_START( lkage ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, MAIN_CPU_CLOCK) @@ -554,7 +554,7 @@ static MACHINE_CONFIG_START( lkage, lkage_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( lkageb, lkage_state ) +static MACHINE_CONFIG_START( lkageb ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80,MAIN_CPU_CLOCK) @@ -935,10 +935,10 @@ DRIVER_INIT_MEMBER(lkage_state,bygone) m_sprite_dx=1; } -GAME( 1984, lkage, 0, lkage, lkage, lkage_state, lkage, ROT0, "Taito Corporation", "The Legend of Kage", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1984, lkageo, lkage, lkage, lkage, lkage_state, lkage, ROT0, "Taito Corporation", "The Legend of Kage (older)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1984, lkageoo, lkage, lkage, lkage, lkage_state, lkage, ROT0, "Taito Corporation", "The Legend of Kage (oldest)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1984, lkageb, lkage, lkageb, lkageb, lkage_state, lkage, ROT0, "bootleg", "The Legend of Kage (bootleg set 1)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1984, lkageb2, lkage, lkageb, lkageb, lkage_state, lkage, ROT0, "bootleg", "The Legend of Kage (bootleg set 2)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1984, lkageb3, lkage, lkageb, lkageb, lkage_state, lkage, ROT0, "bootleg", "The Legend of Kage (bootleg set 3)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1985, bygone, 0, lkage, bygone, lkage_state, bygone, ROT0, "Taito Corporation", "Bygone (prototype)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1984, lkage, 0, lkage, lkage, lkage_state, lkage, ROT0, "Taito Corporation", "The Legend of Kage", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1984, lkageo, lkage, lkage, lkage, lkage_state, lkage, ROT0, "Taito Corporation", "The Legend of Kage (older)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1984, lkageoo, lkage, lkage, lkage, lkage_state, lkage, ROT0, "Taito Corporation", "The Legend of Kage (oldest)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1984, lkageb, lkage, lkageb, lkageb, lkage_state, lkage, ROT0, "bootleg", "The Legend of Kage (bootleg set 1)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1984, lkageb2, lkage, lkageb, lkageb, lkage_state, lkage, ROT0, "bootleg", "The Legend of Kage (bootleg set 2)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1984, lkageb3, lkage, lkageb, lkageb, lkage_state, lkage, ROT0, "bootleg", "The Legend of Kage (bootleg set 3)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1985, bygone, 0, lkage, bygone, lkage_state, bygone, ROT0, "Taito Corporation", "Bygone (prototype)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/llc.cpp b/src/mame/drivers/llc.cpp index 62d593778c5..ade1d3c994c 100644 --- a/src/mame/drivers/llc.cpp +++ b/src/mame/drivers/llc.cpp @@ -125,24 +125,21 @@ static INPUT_PORTS_START( llc2 ) INPUT_PORTS_END -WRITE8_MEMBER( llc_state::kbd_put ) +void llc_state::kbd_put(u8 data) { - static uint8_t s1[16]={0x40, 0x1e, 0x12, 0x1b, 0x19, 0x14, 0x15, 0x1d, 0x16, 0x17, 0x1c, 0x3c, 0x3f, 0x3d, 0x3e, 0x10}; // 0x20 to 0x2F - static uint8_t s2[7] ={0x1a, 0x11, 0x7c, 0x13, 0x7b, 0x1f, 0x00}; // 0x3A to 0x40 - static uint8_t s3[6] ={0x5c, 0x00, 0x5b, 0x7e, 0x00, 0x5e}; // 0x5B to 0x60 + static constexpr uint8_t s1[16]={0x40, 0x1e, 0x12, 0x1b, 0x19, 0x14, 0x15, 0x1d, 0x16, 0x17, 0x1c, 0x3c, 0x3f, 0x3d, 0x3e, 0x10}; // 0x20 to 0x2F + static constexpr uint8_t s2[7] ={0x1a, 0x11, 0x7c, 0x13, 0x7b, 0x1f, 0x00}; // 0x3A to 0x40 + static constexpr uint8_t s3[6] ={0x5c, 0x00, 0x5b, 0x7e, 0x00, 0x5e}; // 0x5B to 0x60 m_term_data = data; if ((data >= 0x20) && (data <= 0x2f)) m_term_data = s1[data-0x20]; - else - if ((data >= 0x3a) && (data <= 0x40)) + else if ((data >= 0x3a) && (data <= 0x40)) m_term_data = s2[data-0x3a]; - else - if ((data >= 0x5b) && (data <= 0x60)) + else if ((data >= 0x5b) && (data <= 0x60)) m_term_data = s3[data-0x5b]; - else - if (data >= 0x7b) + else if (data >= 0x7b) m_term_data = 0; if (m_term_data) @@ -198,7 +195,7 @@ static GFXDECODE_START( llc2 ) GFXDECODE_END /* Machine driver */ -static MACHINE_CONFIG_START( llc1, llc_state ) +static MACHINE_CONFIG_START( llc1 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_3MHz) MCFG_Z80_DAISY_CHAIN(llc1_daisy_chain) @@ -239,10 +236,10 @@ static MACHINE_CONFIG_START( llc1, llc_state ) MCFG_Z80CTC_ZC1_CB(DEVWRITELINE("z80ctc", z80ctc_device, trg3)) MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0) - MCFG_GENERIC_KEYBOARD_CB(WRITE8(llc_state, kbd_put)) + MCFG_GENERIC_KEYBOARD_CB(PUT(llc_state, kbd_put)) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( llc2, llc_state ) +static MACHINE_CONFIG_START( llc2 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_3MHz) MCFG_Z80_DAISY_CHAIN(llc2_daisy_chain) @@ -310,6 +307,6 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1984, llc1, 0, 0, llc1, llc1, llc_state, llc1, "SCCH", "LLC-1", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW) -COMP( 1984, llc2, llc1, 0, llc2, llc2, llc_state, llc2, "SCCH", "LLC-2", 0 ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +COMP( 1984, llc1, 0, 0, llc1, llc1, llc_state, llc1, "SCCH", "LLC-1", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW) +COMP( 1984, llc2, llc1, 0, llc2, llc2, llc_state, llc2, "SCCH", "LLC-2", 0 ) diff --git a/src/mame/drivers/lockon.cpp b/src/mame/drivers/lockon.cpp index 559c1d38467..9dc1be38a12 100644 --- a/src/mame/drivers/lockon.cpp +++ b/src/mame/drivers/lockon.cpp @@ -480,7 +480,7 @@ void lockon_state::machine_reset() m_main_inten = 0; } -static MACHINE_CONFIG_START( lockon, lockon_state ) +static MACHINE_CONFIG_START( lockon ) MCFG_CPU_ADD("maincpu", V30, XTAL_16MHz / 2) MCFG_CPU_PROGRAM_MAP(main_v30) @@ -778,5 +778,5 @@ ROM_END * *************************************/ -GAME( 1986, lockon, 0, lockon, lockon, driver_device, 0, ROT0, "Tatsumi", "Lock-On (rev. E)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, lockonc, lockon, lockon, lockone, driver_device, 0, ROT0, "Tatsumi", "Lock-On (rev. C)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, lockon, 0, lockon, lockon, lockon_state, 0, ROT0, "Tatsumi", "Lock-On (rev. E)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, lockonc, lockon, lockon, lockone, lockon_state, 0, ROT0, "Tatsumi", "Lock-On (rev. C)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/lola8a.cpp b/src/mame/drivers/lola8a.cpp index def2ca69321..7a22a1d7f13 100644 --- a/src/mame/drivers/lola8a.cpp +++ b/src/mame/drivers/lola8a.cpp @@ -248,7 +248,7 @@ WRITE_LINE_MEMBER(lola8a_state::crtc_vsync) m_maincpu->set_input_line(I8085_RST75_LINE, state? ASSERT_LINE : CLEAR_LINE); } -static MACHINE_CONFIG_START( lola8a, lola8a_state ) +static MACHINE_CONFIG_START( lola8a ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8085A, XTAL_4_9152MHz) MCFG_CPU_PROGRAM_MAP(lola8a_mem) @@ -294,5 +294,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1986, lola8a, 0, 0, lola8a, lola8a, driver_device, 0, "Institut Ivo Lola Ribar", "Lola 8A", MACHINE_NOT_WORKING) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 1986, lola8a, 0, 0, lola8a, lola8a, lola8a_state, 0, "Institut Ivo Lola Ribar", "Lola 8A", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/looping.cpp b/src/mame/drivers/looping.cpp index 005b631a11a..d3e82a0eacb 100644 --- a/src/mame/drivers/looping.cpp +++ b/src/mame/drivers/looping.cpp @@ -621,7 +621,7 @@ GFXDECODE_END * *************************************/ -static MACHINE_CONFIG_START( looping, looping_state ) +static MACHINE_CONFIG_START( looping ) // CPU TMS9995, standard variant; no line connections MCFG_TMS99xx_ADD("maincpu", TMS9995, MAIN_CPU_CLOCK, looping_map, looping_io_map) diff --git a/src/mame/drivers/lordgun.cpp b/src/mame/drivers/lordgun.cpp index 999097f95d5..15f60657248 100644 --- a/src/mame/drivers/lordgun.cpp +++ b/src/mame/drivers/lordgun.cpp @@ -632,7 +632,7 @@ void lordgun_state::machine_start() save_item(NAME(m_whitescreen)); } -static MACHINE_CONFIG_START( lordgun, lordgun_state ) +static MACHINE_CONFIG_START( lordgun ) MCFG_CPU_ADD("maincpu", M68000, XTAL_20MHz / 2) MCFG_CPU_PROGRAM_MAP(lordgun_map) MCFG_CPU_VBLANK_INT_DRIVER("screen", lordgun_state, irq4_line_hold) @@ -679,12 +679,12 @@ static MACHINE_CONFIG_START( lordgun, lordgun_state ) MCFG_YM3812_IRQ_HANDLER(INPUTLINE("soundcpu", 0)) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MCFG_OKIM6295_ADD("oki", XTAL_20MHz / 20, OKIM6295_PIN7_HIGH) // ? 5MHz can't be right! + MCFG_OKIM6295_ADD("oki", XTAL_20MHz / 20, PIN7_HIGH) // ? 5MHz can't be right! MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( aliencha, lordgun_state ) +static MACHINE_CONFIG_START( aliencha ) MCFG_CPU_ADD("maincpu", M68000, XTAL_20MHz / 2) MCFG_CPU_PROGRAM_MAP(aliencha_map) MCFG_CPU_VBLANK_INT_DRIVER("screen", lordgun_state, irq4_line_hold) @@ -732,10 +732,10 @@ static MACHINE_CONFIG_START( aliencha, lordgun_state ) MCFG_YMF278B_IRQ_HANDLER(INPUTLINE("soundcpu", 0)) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) - MCFG_OKIM6295_ADD("oki", XTAL_20MHz / 20, OKIM6295_PIN7_HIGH) // ? 5MHz can't be right + MCFG_OKIM6295_ADD("oki", XTAL_20MHz / 20, PIN7_HIGH) // ? 5MHz can't be right MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MCFG_OKIM6295_ADD("oki2", XTAL_20MHz / 20, OKIM6295_PIN7_HIGH) // ? 5MHz can't be right + MCFG_OKIM6295_ADD("oki2", XTAL_20MHz / 20, PIN7_HIGH) // ? 5MHz can't be right MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -1080,6 +1080,6 @@ DRIVER_INIT_MEMBER(lordgun_state, aliencha) ***************************************************************************/ -GAME( 1994, lordgun, 0, lordgun, lordgun, lordgun_state, lordgun, ROT0, "IGS", "Lord of Gun (USA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1994, aliencha, 0, aliencha, aliencha, driver_device, 0, ROT0, "IGS", "Alien Challenge (World)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, alienchac, aliencha, aliencha, aliencha, driver_device, 0, ROT0, "IGS", "Alien Challenge (China)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, lordgun, 0, lordgun, lordgun, lordgun_state, lordgun, ROT0, "IGS", "Lord of Gun (USA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1994, aliencha, 0, aliencha, aliencha, lordgun_state, 0, ROT0, "IGS", "Alien Challenge (World)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, alienchac, aliencha, aliencha, aliencha, lordgun_state, 0, ROT0, "IGS", "Alien Challenge (China)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/lsasquad.cpp b/src/mame/drivers/lsasquad.cpp index 7f981732f4a..93809d7a60d 100644 --- a/src/mame/drivers/lsasquad.cpp +++ b/src/mame/drivers/lsasquad.cpp @@ -560,7 +560,7 @@ MACHINE_RESET_MEMBER(lsasquad_state,lsasquad) } /* Note: lsasquad clock values are not verified */ -static MACHINE_CONFIG_START( lsasquad, lsasquad_state ) +static MACHINE_CONFIG_START( lsasquad ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, MASTER_CLOCK / 4) @@ -616,7 +616,7 @@ static MACHINE_CONFIG_DERIVED( storming, lsasquad ) MCFG_DEVICE_REMOVE("bmcu") MACHINE_CONFIG_END -static MACHINE_CONFIG_START( daikaiju, lsasquad_state ) +static MACHINE_CONFIG_START( daikaiju ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, MASTER_CLOCK / 4) @@ -786,6 +786,6 @@ ROM_START( daikaiju ) ROM_END -GAME( 1986, lsasquad, 0, lsasquad, lsasquad, driver_device, 0, ROT270, "Taito", "Land Sea Air Squad / Riku Kai Kuu Saizensen", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1986, storming, lsasquad, storming, storming, driver_device, 0, ROT270, "bootleg", "Storming Party / Riku Kai Kuu Saizensen", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1986, daikaiju, 0, daikaiju, daikaiju, driver_device, 0, ROT270, "Taito", "Daikaiju no Gyakushu", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1986, lsasquad, 0, lsasquad, lsasquad, lsasquad_state, 0, ROT270, "Taito", "Land Sea Air Squad / Riku Kai Kuu Saizensen", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1986, storming, lsasquad, storming, storming, lsasquad_state, 0, ROT270, "bootleg", "Storming Party / Riku Kai Kuu Saizensen", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1986, daikaiju, 0, daikaiju, daikaiju, lsasquad_state, 0, ROT270, "Taito", "Daikaiju no Gyakushu", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/ltcasino.cpp b/src/mame/drivers/ltcasino.cpp index 6a61524c346..05df8f26cd7 100644 --- a/src/mame/drivers/ltcasino.cpp +++ b/src/mame/drivers/ltcasino.cpp @@ -651,7 +651,7 @@ uint32_t ltcasino_state::screen_update_ltcasino(screen_device &screen, bitmap_in } -static MACHINE_CONFIG_START( ltcasino, ltcasino_state ) +static MACHINE_CONFIG_START( ltcasino ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502,2000000) /* ? MHz */ MCFG_CPU_PROGRAM_MAP(ltcasino_map) @@ -728,6 +728,6 @@ DRIVER_INIT_MEMBER(ltcasino_state,mv4in1) -GAME( 1982, ltcasino, 0, ltcasino, ltcasino, driver_device, 0, ROT0, "Digital Controls Inc.", "Little Casino (older)", MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1983, mv4in1, ltcasino, ltcasino, mv4in1, ltcasino_state, mv4in1, ROT0, "Entertainment Enterprises, Ltd.", "Mini Vegas 4in1", MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1984, ltcasinn, 0, ltcasino, ltcasinn, driver_device, 0, ROT0, "Digital Controls Inc.", "Little Casino (newer)", MACHINE_NOT_WORKING ) +GAME( 1982, ltcasino, 0, ltcasino, ltcasino, ltcasino_state, 0, ROT0, "Digital Controls Inc.", "Little Casino (older)", MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1983, mv4in1, ltcasino, ltcasino, mv4in1, ltcasino_state, mv4in1, ROT0, "Entertainment Enterprises, Ltd.", "Mini Vegas 4in1", MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1984, ltcasinn, 0, ltcasino, ltcasinn, ltcasino_state, 0, ROT0, "Digital Controls Inc.", "Little Casino (newer)", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/ltd.cpp b/src/mame/drivers/ltd.cpp index fda41c21373..9d270503ab1 100644 --- a/src/mame/drivers/ltd.cpp +++ b/src/mame/drivers/ltd.cpp @@ -515,7 +515,7 @@ TIMER_DEVICE_CALLBACK_MEMBER( ltd_state::timer_r ) } } -static MACHINE_CONFIG_START( ltd3, ltd_state ) +static MACHINE_CONFIG_START( ltd3 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6802, XTAL_3_579545MHz) MCFG_CPU_PROGRAM_MAP(ltd3_map) @@ -531,7 +531,7 @@ static MACHINE_CONFIG_START( ltd3, ltd_state ) MCFG_TIMER_DRIVER_ADD_PERIODIC("timer_r", ltd_state, timer_r, attotime::from_hz(500)) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( ltd4, ltd_state ) +static MACHINE_CONFIG_START( ltd4 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6803, XTAL_3_579545MHz) // guess, no details available MCFG_CPU_PROGRAM_MAP(ltd4_map) diff --git a/src/mame/drivers/luckgrln.cpp b/src/mame/drivers/luckgrln.cpp index aff328f94c0..7679bc041e5 100644 --- a/src/mame/drivers/luckgrln.cpp +++ b/src/mame/drivers/luckgrln.cpp @@ -986,7 +986,7 @@ INTERRUPT_GEN_MEMBER(luckgrln_state::luckgrln_irq) m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE); } -static MACHINE_CONFIG_START( luckgrln, luckgrln_state ) +static MACHINE_CONFIG_START( luckgrln ) MCFG_CPU_ADD("maincpu", Z180,8000000) MCFG_CPU_PROGRAM_MAP(mainmap) MCFG_CPU_IO_MAP(portmap) @@ -1092,8 +1092,8 @@ ROM_END /********************************************* * Game Drivers * -********************************************** +**********************************************/ - YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS LAYOUT */ +// YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULL NAME FLAGS LAYOUT GAMEL( 1991, luckgrln, 0, luckgrln, luckgrln, luckgrln_state, luckgrln, ROT0, "Wing Co., Ltd.", "Lucky Girl (newer Z180 based hardware)", MACHINE_NO_SOUND, layout_luckgrln ) -GAMEL( 1993, 7smash, 0, _7smash, _7smash, driver_device, 0, ROT0, "Sovic", "7 Smash", MACHINE_NO_SOUND, layout_7smash ) +GAMEL( 1993, 7smash, 0, _7smash, _7smash, luckgrln_state, 0, ROT0, "Sovic", "7 Smash", MACHINE_NO_SOUND, layout_7smash ) diff --git a/src/mame/drivers/lucky74.cpp b/src/mame/drivers/lucky74.cpp index dd49c52350f..e5d048f1372 100644 --- a/src/mame/drivers/lucky74.cpp +++ b/src/mame/drivers/lucky74.cpp @@ -1461,7 +1461,7 @@ WRITE_LINE_MEMBER(lucky74_state::lucky74_adpcm_int) * Machine Drivers * *************************/ -static MACHINE_CONFIG_START( lucky74, lucky74_state ) +static MACHINE_CONFIG_START( lucky74 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, C_06B49P_CLKOUT_03) /* 3 MHz. */ @@ -1526,7 +1526,7 @@ static MACHINE_CONFIG_START( lucky74, lucky74_state ) MCFG_SOUND_ADD("msm", MSM5205, C_06B49P_CLKOUT_06) /* 375 kHz. */ MCFG_MSM5205_VCLK_CB(WRITELINE(lucky74_state, lucky74_adpcm_int)) /* interrupt function */ - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S48_4B) /* 8KHz */ + MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) /* 8KHz */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.70) MACHINE_CONFIG_END @@ -1743,10 +1743,10 @@ ROM_END /********************************************* * Game Drivers * -********************************************** +**********************************************/ - YEAR NAME PARENT MACHINE INPUT STATS INIT ROT COMPANY FULLNAME FLAGS LAYOUT */ -GAMEL( 1988, lucky74, 0, lucky74, lucky74, driver_device, 0, ROT0, "Wing Co., Ltd.", "Lucky 74 (bootleg, set 1)", 0, layout_lucky74 ) -GAMEL( 1988, lucky74a, lucky74, lucky74, lucky74a, driver_device, 0, ROT0, "Wing Co., Ltd.", "Lucky 74 (bootleg, set 3)", 0, layout_lucky74 ) -GAMEL( 1988, lucky74b, lucky74, lucky74, lucky74, driver_device, 0, ROT0, "Wing Co., Ltd.", "Lucky 74 (bootleg, set 2)", MACHINE_NOT_WORKING, layout_lucky74 ) -GAME( 1989, excitbj, 0, lucky74, excitbj, driver_device, 0, ROT0, "Sega", "Exciting Black Jack", MACHINE_NOT_WORKING ) +// YEAR NAME PARENT MACHINE INPUT STATS INIT ROT COMPANY FULLNAME FLAGS LAYOUT +GAMEL( 1988, lucky74, 0, lucky74, lucky74, lucky74_state, 0, ROT0, "Wing Co., Ltd.", "Lucky 74 (bootleg, set 1)", 0, layout_lucky74 ) +GAMEL( 1988, lucky74a, lucky74, lucky74, lucky74a, lucky74_state, 0, ROT0, "Wing Co., Ltd.", "Lucky 74 (bootleg, set 3)", 0, layout_lucky74 ) +GAMEL( 1988, lucky74b, lucky74, lucky74, lucky74, lucky74_state, 0, ROT0, "Wing Co., Ltd.", "Lucky 74 (bootleg, set 2)", MACHINE_NOT_WORKING, layout_lucky74 ) +GAME( 1989, excitbj, 0, lucky74, excitbj, lucky74_state, 0, ROT0, "Sega", "Exciting Black Jack", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/lvcards.cpp b/src/mame/drivers/lvcards.cpp index 5d3b6bb70fc..e72db16f15a 100644 --- a/src/mame/drivers/lvcards.cpp +++ b/src/mame/drivers/lvcards.cpp @@ -451,7 +451,7 @@ GFXDECODE_END /* Sound Interfaces */ -static MACHINE_CONFIG_START( lvcards, lvcards_state ) +static MACHINE_CONFIG_START( lvcards ) // basic machine hardware MCFG_CPU_ADD("maincpu",Z80, 18432000/4) // unknown frequency, assume same as tehkanwc.cpp MCFG_CPU_PROGRAM_MAP(lvcards_map) @@ -564,6 +564,6 @@ ROM_START( ponttehk ) ROM_LOAD( "pon24s10.001", 0x0200, 0x0100, CRC(c64ecee8) SHA1(80c9ec21e135235f7f2d41ce7900cf3904123823) ) /* blue component */ ROM_END -GAME( 1985, lvcards, 0, lvcards, lvcards, driver_device, 0, ROT0, "Tehkan", "Lovely Cards", 0 ) -GAME( 1985, lvpoker, lvcards, lvpoker, lvpoker, driver_device, 0, ROT0, "Tehkan", "Lovely Poker [BET]", 0 ) -GAME( 1985, ponttehk, 0, ponttehk, ponttehk, driver_device, 0, ROT0, "Tehkan", "Pontoon (Tehkan)", 0 ) +GAME( 1985, lvcards, 0, lvcards, lvcards, lvcards_state, 0, ROT0, "Tehkan", "Lovely Cards", 0 ) +GAME( 1985, lvpoker, lvcards, lvpoker, lvpoker, lvcards_state, 0, ROT0, "Tehkan", "Lovely Poker [BET]", 0 ) +GAME( 1985, ponttehk, 0, ponttehk, ponttehk, lvcards_state, 0, ROT0, "Tehkan", "Pontoon (Tehkan)", 0 ) diff --git a/src/mame/drivers/lviv.cpp b/src/mame/drivers/lviv.cpp index 6be2f7aa9a1..d8e589371d6 100644 --- a/src/mame/drivers/lviv.cpp +++ b/src/mame/drivers/lviv.cpp @@ -420,7 +420,7 @@ INPUT_PORTS_END /* machine definition */ -static MACHINE_CONFIG_START( lviv, lviv_state ) +static MACHINE_CONFIG_START( lviv ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8080, 2500000) MCFG_CPU_PROGRAM_MAP(lviv_mem) @@ -489,5 +489,5 @@ ROM_START(lviv) ROMX_LOAD("lvivp.bin", 0x10000, 0x4000, CRC(f171c282) SHA1(c7dc2bdb02400e6b5cdcc50040eb06f506a7ed84), ROM_BIOS(3)) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1989, lviv, 0, 0, lviv, lviv, driver_device, 0, "V. I. Lenin", "PK-01 Lviv" , 0 ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +COMP( 1989, lviv, 0, 0, lviv, lviv, lviv_state, 0, "V. I. Lenin", "PK-01 Lviv", 0 ) diff --git a/src/mame/drivers/lwings.cpp b/src/mame/drivers/lwings.cpp index 654030e951f..0aeb8016876 100644 --- a/src/mame/drivers/lwings.cpp +++ b/src/mame/drivers/lwings.cpp @@ -916,7 +916,7 @@ void lwings_state::machine_reset() m_adpcm = 0; } -static MACHINE_CONFIG_START( lwings, lwings_state ) +static MACHINE_CONFIG_START( lwings ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_12MHz/2) /* verified on PCB */ @@ -972,7 +972,7 @@ MACHINE_CONFIG_END -static MACHINE_CONFIG_START( fball, lwings_state ) +static MACHINE_CONFIG_START( fball ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_12MHz/2) @@ -1007,7 +1007,7 @@ static MACHINE_CONFIG_START( fball, lwings_state ) MCFG_GENERIC_LATCH_8_ADD("soundlatch") - MCFG_OKIM6295_ADD("oki", XTAL_12MHz/12, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki", XTAL_12MHz/12, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MCFG_DEVICE_ADDRESS_MAP(AS_0, fball_oki_map) @@ -1041,7 +1041,7 @@ static MACHINE_CONFIG_DERIVED( trojan, lwings ) MCFG_GENERIC_LATCH_8_ADD("soundlatch2") MCFG_SOUND_ADD("5205", MSM5205, XTAL_384kHz) /* verified on PCB */ - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_SEX_4B) /* slave mode */ + MCFG_MSM5205_PRESCALER_SELECTOR(SEX_4B) /* slave mode */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) MACHINE_CONFIG_END @@ -1740,24 +1740,24 @@ DRIVER_INIT_MEMBER(lwings_state, avengersb) * *************************************/ -GAME( 1985, sectionz, 0, lwings, sectionz, driver_device, 0, ROT0, "Capcom", "Section Z (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, sectionza, sectionz, lwings, sectionz, driver_device, 0, ROT0, "Capcom", "Section Z (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, sectionz, 0, lwings, sectionz, lwings_state, 0, ROT0, "Capcom", "Section Z (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, sectionza, sectionz, lwings, sectionz, lwings_state, 0, ROT0, "Capcom", "Section Z (set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, lwings, 0, lwings, lwings, driver_device, 0, ROT90, "Capcom", "Legendary Wings (US set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, lwings2, lwings, lwings, lwings, driver_device, 0, ROT90, "Capcom", "Legendary Wings (US set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, lwingsj, lwings, lwings, lwings, driver_device, 0, ROT90, "Capcom", "Ares no Tsubasa (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, lwingsb, lwings, lwings, lwingsb, driver_device, 0, ROT90, "bootleg", "Legendary Wings (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, lwings, 0, lwings, lwings, lwings_state, 0, ROT90, "Capcom", "Legendary Wings (US set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, lwings2, lwings, lwings, lwings, lwings_state, 0, ROT90, "Capcom", "Legendary Wings (US set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, lwingsj, lwings, lwings, lwings, lwings_state, 0, ROT90, "Capcom", "Ares no Tsubasa (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, lwingsb, lwings, lwings, lwingsb, lwings_state, 0, ROT90, "bootleg", "Legendary Wings (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, trojan, 0, trojan, trojanls, driver_device, 0, ROT0, "Capcom", "Trojan (US set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, trojana, trojan, trojan, trojanls, driver_device, 0, ROT0, "Capcom", "Trojan (US set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, trojanr, trojan, trojan, trojan, driver_device, 0, ROT0, "Capcom (Romstar license)", "Trojan (Romstar)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, trojanj, trojan, trojan, trojan, driver_device, 0, ROT0, "Capcom", "Tatakai no Banka (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, trojanb, trojan, trojan, trojanls, driver_device, 0, ROT0, "bootleg", "Trojan (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, trojan, 0, trojan, trojanls, lwings_state, 0, ROT0, "Capcom", "Trojan (US set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, trojana, trojan, trojan, trojanls, lwings_state, 0, ROT0, "Capcom", "Trojan (US set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, trojanr, trojan, trojan, trojan, lwings_state, 0, ROT0, "Capcom (Romstar license)", "Trojan (Romstar)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, trojanj, trojan, trojan, trojan, lwings_state, 0, ROT0, "Capcom", "Tatakai no Banka (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, trojanb, trojan, trojan, trojanls, lwings_state, 0, ROT0, "bootleg", "Trojan (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, avengers, 0, avengers, avengers, driver_device, 0, ROT90, "Capcom", "Avengers (US set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, avengers2, avengers, avengers, avengers, driver_device, 0, ROT90, "Capcom", "Avengers (US set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, buraiken, avengers, avengers, avengers, driver_device, 0, ROT90, "Capcom", "Hissatsu Buraiken (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, avengers, 0, avengers, avengers, lwings_state, 0, ROT90, "Capcom", "Avengers (US set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, avengers2, avengers, avengers, avengers, lwings_state, 0, ROT90, "Capcom", "Avengers (US set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, buraiken, avengers, avengers, avengers, lwings_state, 0, ROT90, "Capcom", "Hissatsu Buraiken (Japan)", MACHINE_SUPPORTS_SAVE ) GAME( 1987, buraikenb, avengers, avengersb,avengers, lwings_state, avengersb, ROT90, "Capcom", "Hissatsu Buraiken (Japan, bootleg?)", MACHINE_SUPPORTS_SAVE ) // unprotected at least // cloned lwings hardware -GAME( 1992, fball, 0, fball, fball, driver_device, 0, ROT0, "FM Work", "Fire Ball (FM Work)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, fball, 0, fball, fball, lwings_state, 0, ROT0, "FM Work", "Fire Ball (FM Work)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/lwriter.cpp b/src/mame/drivers/lwriter.cpp index bffd21052d6..93cea41ba28 100644 --- a/src/mame/drivers/lwriter.cpp +++ b/src/mame/drivers/lwriter.cpp @@ -349,7 +349,7 @@ WRITE_LINE_MEMBER(lwriter_state::scc_int) #define CPU_CLK (XTAL_22_3210MHz / 2) // Based on pictures form here: http://picclick.co.uk/Apple-Postscript-LaserWriter-IINT-Printer-640-4105-M6009-Mainboard-282160713108.html#&gid=1&pid=7 #define RXC_CLK ((CPU_CLK - (87 * 16 * 70)) / 3) // Tuned to get 9600 baud according to manual, needs rework based on real hardware -static MACHINE_CONFIG_START( lwriter, lwriter_state ) +static MACHINE_CONFIG_START( lwriter ) MCFG_CPU_ADD("maincpu", M68000, CPU_CLK) MCFG_CPU_PROGRAM_MAP(maincpu_map) MCFG_SCC8530_ADD("scc", CPU_CLK, RXC_CLK, 0, RXC_CLK, 0) @@ -435,5 +435,5 @@ ROM_START(lwriter) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT, COMPANY, FULLNAME, FLAGS */ -CONS( 1988, lwriter, 0, 0, lwriter, lwriter, driver_device, 0, "Apple", "Apple Laser Writer II NT", MACHINE_IS_SKELETON) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +CONS( 1988, lwriter, 0, 0, lwriter, lwriter, lwriter_state, 0, "Apple Computer", "Apple Laser Writer II NT", MACHINE_IS_SKELETON) diff --git a/src/mame/drivers/lynx.cpp b/src/mame/drivers/lynx.cpp index 598ed06981c..6f0cd93a68a 100644 --- a/src/mame/drivers/lynx.cpp +++ b/src/mame/drivers/lynx.cpp @@ -75,7 +75,7 @@ void lynx_state::sound_cb() lynx_timer_count_down(1); } -static MACHINE_CONFIG_START( lynx, lynx_state ) +static MACHINE_CONFIG_START( lynx ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M65SC02, 4000000) /* vti core, integrated in vlsi, stz, but not bbr bbs */ MCFG_CPU_PROGRAM_MAP(lynx_mem) @@ -198,6 +198,6 @@ QUICKLOAD_LOAD_MEMBER( lynx_state, lynx ) ***************************************************************************/ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -CONS( 1989, lynx, 0, 0, lynx, lynx, driver_device, 0, "Atari", "Lynx", MACHINE_SUPPORTS_SAVE ) -// CONS( 1991, lynx2, lynx, 0, lynx2, lynx, driver_device, 0, "Atari", "Lynx II", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +CONS( 1989, lynx, 0, 0, lynx, lynx, lynx_state, 0, "Atari", "Lynx", MACHINE_SUPPORTS_SAVE ) +// CONS( 1991, lynx2, lynx, 0, lynx2, lynx, lynx_state, 0, "Atari", "Lynx II", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) diff --git a/src/mame/drivers/m10.cpp b/src/mame/drivers/m10.cpp index e07a81cc188..1611df8ba6e 100644 --- a/src/mame/drivers/m10.cpp +++ b/src/mame/drivers/m10.cpp @@ -809,7 +809,7 @@ static const char *const m10_sample_names[] = * *************************************/ -static MACHINE_CONFIG_START( m10, m10_state ) +static MACHINE_CONFIG_START( m10 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502,IREMM10_CPU_CLOCK) @@ -872,7 +872,7 @@ static MACHINE_CONFIG_DERIVED( m11, m10 ) /* sound hardware */ MACHINE_CONFIG_END -static MACHINE_CONFIG_START( m15, m10_state ) +static MACHINE_CONFIG_START( m15 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502,IREMM15_CPU_CLOCK) @@ -1045,10 +1045,10 @@ ROM_START( greenber ) ROM_LOAD( "gb9", 0x3000, 0x0400, CRC(c27b9ba3) SHA1(a2f4f0c4b61eb03bba13ae5d25dc01009a4f86ee) ) // ok ? ROM_END -GAME( 1979, andromed, 0, m11, skychut, m10_state, andromed, ROT270, "IPM", "Andromeda (Japan?)", MACHINE_NO_SOUND | MACHINE_IMPERFECT_COLORS | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) -GAME( 1979, ipminvad, 0, m10, ipminvad, driver_device, 0, ROT270, "IPM", "IPM Invader", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE ) +GAME( 1979, andromed, 0, m11, skychut, m10_state, andromed, ROT270, "IPM", "Andromeda (Japan?)", MACHINE_NO_SOUND | MACHINE_IMPERFECT_COLORS | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +GAME( 1979, ipminvad, 0, m10, ipminvad, m10_state, 0, ROT270, "IPM", "IPM Invader", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE ) GAME( 1979, ipminvad1, ipminvad, m10, ipminvad, m10_state, ipminva1, ROT270, "IPM", "IPM Invader (Incomplete Dump)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) -GAME( 1980, skychut, 0, m11, skychut, driver_device, 0, ROT270, "Irem", "Sky Chuter", MACHINE_NO_SOUND | MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE ) -GAME( 1979, spacbeam, 0, m15, spacbeam, driver_device, 0, ROT270, "Irem", "Space Beam", MACHINE_NO_SOUND | MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE ) // IPM or Irem? -GAME( 1979, headoni, 0, headoni, headoni, driver_device, 0, ROT270, "Irem", "Head On (Irem, M-15 Hardware)", MACHINE_NO_SOUND | MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE ) -GAME( 1980, greenber, 0, m15, spacbeam, driver_device, 0, ROT270, "Irem", "Green Beret (Irem)", MACHINE_NO_SOUND | MACHINE_IMPERFECT_COLORS | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +GAME( 1980, skychut, 0, m11, skychut, m10_state, 0, ROT270, "Irem", "Sky Chuter", MACHINE_NO_SOUND | MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE ) +GAME( 1979, spacbeam, 0, m15, spacbeam, m10_state, 0, ROT270, "Irem", "Space Beam", MACHINE_NO_SOUND | MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE ) // IPM or Irem? +GAME( 1979, headoni, 0, headoni, headoni, m10_state, 0, ROT270, "Irem", "Head On (Irem, M-15 Hardware)", MACHINE_NO_SOUND | MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE ) +GAME( 1980, greenber, 0, m15, spacbeam, m10_state, 0, ROT270, "Irem", "Green Beret (Irem)", MACHINE_NO_SOUND | MACHINE_IMPERFECT_COLORS | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/m107.cpp b/src/mame/drivers/m107.cpp index 3b5086152aa..ddb546e8a7e 100644 --- a/src/mame/drivers/m107.cpp +++ b/src/mame/drivers/m107.cpp @@ -772,7 +772,7 @@ GFXDECODE_END /***************************************************************************/ -static MACHINE_CONFIG_START( firebarr, m107_state ) +static MACHINE_CONFIG_START( firebarr ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", V33, 28000000/2) /* NEC V33, 28MHz clock */ @@ -1060,11 +1060,11 @@ DRIVER_INIT_MEMBER(m107_state,wpksoc) /***************************************************************************/ -GAME( 1993, airass, 0, airass, firebarr, m107_state, firebarr, ROT270, "Irem", "Air Assault (World)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // possible location test, but sound code is newer than Japan version -GAME( 1993, firebarr, airass, firebarr, firebarr, m107_state, firebarr, ROT270, "Irem", "Fire Barrel (Japan)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1993, airass, 0, airass, firebarr, m107_state, firebarr, ROT270, "Irem", "Air Assault (World)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // possible location test, but sound code is newer than Japan version +GAME( 1993, firebarr, airass, firebarr, firebarr, m107_state, firebarr, ROT270, "Irem", "Fire Barrel (Japan)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1994, dsoccr94, 0, dsoccr94, dsoccr94, m107_state, dsoccr94, ROT0, "Irem (Data East Corporation license)", "Dream Soccer '94 (World, M107 hardware)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1994, dsoccr94k, dsoccr94, dsoccr94, dsoccr94, m107_state, dsoccr94, ROT0, "Irem (Data East Corporation license)", "Dream Soccer '94 (Korea, M107 hardware)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // default team selected is Korea, so likely a Korean set +GAME( 1994, dsoccr94, 0, dsoccr94, dsoccr94, m107_state, dsoccr94, ROT0, "Irem (Data East Corporation license)", "Dream Soccer '94 (World, M107 hardware)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1994, dsoccr94k, dsoccr94, dsoccr94, dsoccr94, m107_state, dsoccr94, ROT0, "Irem (Data East Corporation license)", "Dream Soccer '94 (Korea, M107 hardware)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // default team selected is Korea, so likely a Korean set -GAME( 1995, wpksoc, 0, wpksoc, wpksoc, m107_state, wpksoc, ROT0, "Jaleco", "World PK Soccer", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_COCKTAIL | MACHINE_MECHANICAL | MACHINE_SUPPORTS_SAVE ) -GAME( 1994, kftgoal, wpksoc, wpksoc, wpksoc, m107_state, wpksoc, ROT0, "Jaleco", "Kick for the Goal", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_COCKTAIL | MACHINE_MECHANICAL | MACHINE_SUPPORTS_SAVE ) +GAME( 1995, wpksoc, 0, wpksoc, wpksoc, m107_state, wpksoc, ROT0, "Jaleco", "World PK Soccer", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_COCKTAIL | MACHINE_MECHANICAL | MACHINE_SUPPORTS_SAVE ) +GAME( 1994, kftgoal, wpksoc, wpksoc, wpksoc, m107_state, wpksoc, ROT0, "Jaleco", "Kick for the Goal", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_COCKTAIL | MACHINE_MECHANICAL | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/m14.cpp b/src/mame/drivers/m14.cpp index e8a92f1cae4..a396e6391b3 100644 --- a/src/mame/drivers/m14.cpp +++ b/src/mame/drivers/m14.cpp @@ -329,7 +329,7 @@ void m14_state::machine_reset() } -static MACHINE_CONFIG_START( m14, m14_state ) +static MACHINE_CONFIG_START( m14 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",I8085A,6000000/2) //guess: 6 Mhz internally divided by 2 @@ -383,4 +383,4 @@ ROM_START( ptrmj ) ROM_LOAD( "mgpa10.bin", 0x0400, 0x0400, CRC(e1a4ebdc) SHA1(d9df42424ede17f0634d8d0a56c0374a33c55333) ) ROM_END -GAME( 1979, ptrmj, 0, m14, m14, driver_device, 0, ROT0, "Irem", "PT Reach Mahjong (Japan)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) // IPM or Irem? +GAME( 1979, ptrmj, 0, m14, m14, m14_state, 0, ROT0, "Irem", "PT Reach Mahjong (Japan)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) // IPM or Irem? diff --git a/src/mame/drivers/m20.cpp b/src/mame/drivers/m20.cpp index ac0bf307675..5c39ecb5ade 100644 --- a/src/mame/drivers/m20.cpp +++ b/src/mame/drivers/m20.cpp @@ -84,7 +84,7 @@ public: required_device m_ttyi8251; required_device m_i8255; required_device m_i8259; - required_device m_fd1797; + required_device m_fd1797; required_device m_floppy0; required_device m_floppy1; optional_device m_apb; @@ -698,7 +698,7 @@ void m20_state::install_memory() static ADDRESS_MAP_START(m20_io, AS_IO, 16, m20_state) ADDRESS_MAP_UNMAP_HIGH - AM_RANGE(0x00, 0x07) AM_DEVREADWRITE8("fd1797", fd1797_t, read, write, 0x00ff) + AM_RANGE(0x00, 0x07) AM_DEVREADWRITE8("fd1797", fd1797_device, read, write, 0x00ff) AM_RANGE(0x20, 0x21) AM_READWRITE(port21_r, port21_w); @@ -760,8 +760,8 @@ void m20_state::machine_reset() memcpy(RAM, ROM, 8); // we need only the reset vector m_maincpu->reset(); // reset the CPU to ensure it picks up the new vector m_kbdi8251->write_cts(0); - if(m_apb) - m_apb->m_8086->set_input_line(INPUT_LINE_HALT, ASSERT_LINE); + if (m_apb) + m_apb->halt(); } @@ -778,7 +778,7 @@ static SLOT_INTERFACE_START(keyboard) SLOT_INTERFACE("m20", M20_KEYBOARD) SLOT_INTERFACE_END -static MACHINE_CONFIG_START( m20, m20_state ) +static MACHINE_CONFIG_START( m20 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z8001, MAIN_CLOCK) MCFG_CPU_PROGRAM_MAP(m20_program_mem) @@ -867,6 +867,6 @@ ROM_START(m40) ROM_REGION(0x4000, "apb_bios", ROMREGION_ERASEFF) // Processor board with 8086 ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1981, m20, 0, 0, m20, 0, driver_device, 0, "Olivetti", "Olivetti L1 M20", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -COMP( 1981, m40, m20, 0, m20, 0, driver_device, 0, "Olivetti", "Olivetti L1 M40", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1981, m20, 0, 0, m20, 0, m20_state, 0, "Olivetti", "Olivetti L1 M20", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +COMP( 1981, m40, m20, 0, m20, 0, m20_state, 0, "Olivetti", "Olivetti L1 M40", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/m24.cpp b/src/mame/drivers/m24.cpp index 21ac6bd26c9..fbacf36ffeb 100644 --- a/src/mame/drivers/m24.cpp +++ b/src/mame/drivers/m24.cpp @@ -5,13 +5,16 @@ #include "cpu/i86/i86.h" #include "cpu/tms7000/tms7000.h" +#include "imagedev/floppy.h" #include "machine/m24_kbd.h" #include "machine/m24_z8000.h" #include "machine/mm58274c.h" #include "machine/genpc.h" + #include "formats/pc_dsk.h" #include "formats/naslite_dsk.h" #include "formats/m20_dsk.h" + #include "softlist.h" class m24_state : public driver_device @@ -58,7 +61,7 @@ void m24_state::machine_reset() m_i86_halt = false; m_i86_halt_perm = false; if(m_z8000_apb) - m_z8000_apb->m_z8000->set_input_line(INPUT_LINE_HALT, ASSERT_LINE); + m_z8000_apb->halt_w(ASSERT_LINE); } READ8_MEMBER(m24_state::keyboard_r) @@ -140,7 +143,7 @@ WRITE_LINE_MEMBER(m24_state::dma_hrq_w) if(!m_i86_halt) m_maincpu->set_input_line(INPUT_LINE_HALT, state ? ASSERT_LINE : CLEAR_LINE); if(m_z8000_apb && !m_z8000_apb->halted()) - m_z8000_apb->m_z8000->set_input_line(INPUT_LINE_HALT, state ? ASSERT_LINE : CLEAR_LINE); + m_z8000_apb->halt_w(state ? ASSERT_LINE : CLEAR_LINE); /* Assert HLDA */ m_mb->m_dma8237->hack_w(state); @@ -151,7 +154,7 @@ WRITE_LINE_MEMBER(m24_state::int_w) if(!m_i86_halt) m_maincpu->set_input_line(INPUT_LINE_IRQ0, state ? ASSERT_LINE : CLEAR_LINE); if(m_z8000_apb && !m_z8000_apb->halted()) - m_z8000_apb->m_z8000->set_input_line(INPUT_LINE_IRQ1, state ? ASSERT_LINE : CLEAR_LINE); + m_z8000_apb->int_w(state ? ASSERT_LINE : CLEAR_LINE); } WRITE_LINE_MEMBER(m24_state::halt_i86_w) @@ -243,7 +246,7 @@ static MACHINE_CONFIG_FRAGMENT( cfg_m20_format ) static_cast(device)->set_formats(m24_state::floppy_formats); MACHINE_CONFIG_END -static MACHINE_CONFIG_START( olivetti, m24_state ) +static MACHINE_CONFIG_START( olivetti ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8086, XTAL_8MHz) MCFG_CPU_PROGRAM_MAP(m24_map) @@ -308,5 +311,5 @@ ROM_START( m240 ) ROM_LOAD("pdbd.tms2516.keyboardmcureplacementdaughterboard_10u", 0x000, 0x800, BAD_DUMP CRC(b8c4c18a) SHA1(25b4c24e19ff91924c53557c66513ab242d926c6)) ROM_END -COMP( 1983, m24, ibm5150, 0, olivetti, m24, driver_device, 0, "Olivetti", "M24", MACHINE_NOT_WORKING) -COMP( 1987, m240, ibm5150, 0, olivetti, m24, driver_device, 0, "Olivetti", "M240", MACHINE_NOT_WORKING) +COMP( 1983, m24, ibm5150, 0, olivetti, m24, m24_state, 0, "Olivetti", "M24", MACHINE_NOT_WORKING ) +COMP( 1987, m240, ibm5150, 0, olivetti, m24, m24_state, 0, "Olivetti", "M240", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/m5.cpp b/src/mame/drivers/m5.cpp index 2c7d99b81eb..9f98433bddf 100644 --- a/src/mame/drivers/m5.cpp +++ b/src/mame/drivers/m5.cpp @@ -1051,7 +1051,7 @@ static ADDRESS_MAP_START( brno_io, AS_IO, 8, brno_state ) AM_RANGE(0x68, 0x6b) AM_READWRITE(ramsel_r, ramsel_w) // CASEN 0=access to ramdisk enabled, 0xff=ramdisk access disabled(data protection), &80=ROM2+48k RAM, &81=ROM2+4k RAM AM_RANGE(0x6c, 0x6f) AM_READWRITE(romsel_r, romsel_w) // RAMEN 0=rom enable; 0xff=rom+sord ram disabled (ramdisk visible) // AM_RANGE(0x70, 0x73) AM_MIRROR(0x04) AM_DEVREADWRITE(I8255A_TAG, i8255_device, read, write) // PIO - AM_RANGE(0x78, 0x7b) AM_DEVREADWRITE(WD2797_TAG, wd_fdc_t, read, write) // WD2797 registers -> 78 - status/cmd, 79 - track #, 7a - sector #, 7b - data + AM_RANGE(0x78, 0x7b) AM_DEVREADWRITE(WD2797_TAG, wd_fdc_device_base, read, write) // WD2797 registers -> 78 - status/cmd, 79 - track #, 7a - sector #, 7b - data AM_RANGE(0x7c, 0x7c) AM_READWRITE(fd_r, fd_w) // drive select ADDRESS_MAP_END @@ -1396,7 +1396,7 @@ void brno_state::machine_reset() // MACHINE_CONFIG( m5 ) //------------------------------------------------- -static MACHINE_CONFIG_START( m5, m5_state ) +static MACHINE_CONFIG_START( m5 ) // basic machine hardware MCFG_CPU_ADD(Z80_TAG, Z80, XTAL_14_31818MHz/4) MCFG_CPU_PROGRAM_MAP(m5_mem) @@ -1487,7 +1487,7 @@ MACHINE_CONFIG_END //------------------------------------------------- -static MACHINE_CONFIG_DERIVED_CLASS( brno, m5, brno_state ) +static MACHINE_CONFIG_DERIVED( brno, m5 ) // basic machine hardware MCFG_CPU_MODIFY(Z80_TAG) @@ -1606,7 +1606,7 @@ DRIVER_INIT_MEMBER(brno_state,brno) // SYSTEM DRIVERS //************************************************************************** -// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS -COMP( 1983, m5, 0, 0, ntsc, m5, m5_state, ntsc, "Sord", "m.5 (Japan)", 0 ) -COMP( 1983, m5p, m5, 0, pal, m5, m5_state, pal, "Sord", "m.5 (Europe)", 0 ) -COMP( 1983, m5p_brno, m5, 0, brno, m5, brno_state, brno, "Sord", "m.5 (Europe) BRNO mod", 0 ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1983, m5, 0, 0, ntsc, m5, m5_state, ntsc, "Sord", "m.5 (Japan)", 0 ) +COMP( 1983, m5p, m5, 0, pal, m5, m5_state, pal, "Sord", "m.5 (Europe)", 0 ) +COMP( 1983, m5p_brno, m5, 0, brno, m5, brno_state, brno, "Sord", "m.5 (Europe) BRNO mod", 0 ) diff --git a/src/mame/drivers/m52.cpp b/src/mame/drivers/m52.cpp index 07814650a63..8b3c336f057 100644 --- a/src/mame/drivers/m52.cpp +++ b/src/mame/drivers/m52.cpp @@ -392,7 +392,7 @@ void m52_state::machine_reset() m_bgcontrol = 0; } -static MACHINE_CONFIG_START( m52, m52_state ) +static MACHINE_CONFIG_START( m52 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, MASTER_CLOCK/6) @@ -586,7 +586,7 @@ ROM_END * *************************************/ -GAME( 1982, mpatrol, 0, m52, mpatrol, driver_device, 0, ROT0, "Irem", "Moon Patrol", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, mpatrolw, mpatrol, m52, mpatrolw, driver_device, 0, ROT0, "Irem (Williams license)", "Moon Patrol (Williams)", MACHINE_SUPPORTS_SAVE ) // USA -GAME( 1982, mranger, mpatrol, m52, mpatrol, driver_device, 0, ROT0, "bootleg", "Moon Ranger (bootleg of Moon Patrol)", MACHINE_SUPPORTS_SAVE ) // Italy -GAME( 1988, alpha1v, 0, alpha1v, alpha1v, driver_device, 0, ROT0, "Vision Electronics", "Alpha One (Vision Electronics)", MACHINE_NOT_WORKING| MACHINE_NO_SOUND| MACHINE_SUPPORTS_SAVE ) +GAME( 1982, mpatrol, 0, m52, mpatrol, m52_state, 0, ROT0, "Irem", "Moon Patrol", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, mpatrolw, mpatrol, m52, mpatrolw, m52_state, 0, ROT0, "Irem (Williams license)", "Moon Patrol (Williams)", MACHINE_SUPPORTS_SAVE ) // USA +GAME( 1982, mranger, mpatrol, m52, mpatrol, m52_state, 0, ROT0, "bootleg", "Moon Ranger (bootleg of Moon Patrol)", MACHINE_SUPPORTS_SAVE ) // Italy +GAME( 1988, alpha1v, 0, alpha1v, alpha1v, m52_state, 0, ROT0, "Vision Electronics", "Alpha One (Vision Electronics)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/m57.cpp b/src/mame/drivers/m57.cpp index 5a9f85c00d4..7ad550e65e6 100644 --- a/src/mame/drivers/m57.cpp +++ b/src/mame/drivers/m57.cpp @@ -228,7 +228,7 @@ GFXDECODE_END * *************************************/ -static MACHINE_CONFIG_START( m57, m57_state ) +static MACHINE_CONFIG_START( m57 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_18_432MHz/6) /* verified on pcb */ @@ -333,5 +333,5 @@ ROM_END * *************************************/ -GAME( 1983, troangel, 0, m57, troangel, driver_device, 0, ROT0, "Irem", "Tropical Angel", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, newtangl, troangel, m57, troangel, driver_device, 0, ROT0, "Irem", "New Tropical Angel", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, troangel, 0, m57, troangel, m57_state, 0, ROT0, "Irem", "Tropical Angel", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, newtangl, troangel, m57, troangel, m57_state, 0, ROT0, "Irem", "New Tropical Angel", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/m58.cpp b/src/mame/drivers/m58.cpp index d92775a9389..ee4e8b3876f 100644 --- a/src/mame/drivers/m58.cpp +++ b/src/mame/drivers/m58.cpp @@ -191,7 +191,7 @@ GFXDECODE_END * *************************************/ -static MACHINE_CONFIG_START( yard, m58_state ) +static MACHINE_CONFIG_START( yard ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, MASTER_CLOCK/3/2) @@ -426,10 +426,10 @@ ROM_START( 10yard85 ) ROM_END -/* YEAR NAME PARENT MACHINE INPUT INIT MONITOR, COMPANY, FULLNAME, FLAGS */ -GAME( 1983, 10yard, 0, yard, yard, driver_device, 0, ROT0, "Irem", "10-Yard Fight (World, set 1)", MACHINE_SUPPORTS_SAVE ) // no copyright -GAME( 1983, 10yardj, 10yard, yard, yard, driver_device, 0, ROT0, "Irem", "10-Yard Fight (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, vs10yard, 10yard, yard, vs10yard, driver_device, 0, ROT0, "Irem", "Vs 10-Yard Fight (World, 11/05/84)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, vs10yardj, 10yard, yard, vs10yarj, driver_device, 0, ROT0, "Irem", "Vs 10-Yard Fight (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, vs10yardu, 10yard, yard, vs10yard, driver_device, 0, ROT0, "Irem (Taito license)", "Vs 10-Yard Fight (US, Taito license)", MACHINE_SUPPORTS_SAVE ) // had '85 stickers, but doesn't have '85 on the title screen like the set below -GAME( 1985, 10yard85, 10yard, yard, yard, driver_device, 0, ROT0, "Irem (Taito license)", "10-Yard Fight '85 (US, Taito license)", MACHINE_SUPPORTS_SAVE ) +/* YEAR NAME PARENT MACHINE INPUT STATE INIT MONITOR COMPANY FULLNAME, FLAGS */ +GAME( 1983, 10yard, 0, yard, yard, m58_state, 0, ROT0, "Irem", "10-Yard Fight (World, set 1)", MACHINE_SUPPORTS_SAVE ) // no copyright +GAME( 1983, 10yardj, 10yard, yard, yard, m58_state, 0, ROT0, "Irem", "10-Yard Fight (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, vs10yard, 10yard, yard, vs10yard, m58_state, 0, ROT0, "Irem", "Vs 10-Yard Fight (World, 11/05/84)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, vs10yardj, 10yard, yard, vs10yarj, m58_state, 0, ROT0, "Irem", "Vs 10-Yard Fight (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, vs10yardu, 10yard, yard, vs10yard, m58_state, 0, ROT0, "Irem (Taito license)", "Vs 10-Yard Fight (US, Taito license)", MACHINE_SUPPORTS_SAVE ) // had '85 stickers, but doesn't have '85 on the title screen like the set below +GAME( 1985, 10yard85, 10yard, yard, yard, m58_state, 0, ROT0, "Irem (Taito license)", "10-Yard Fight '85 (US, Taito license)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/m62.cpp b/src/mame/drivers/m62.cpp index a770110b9c0..88e85d42e6a 100644 --- a/src/mame/drivers/m62.cpp +++ b/src/mame/drivers/m62.cpp @@ -932,7 +932,7 @@ void m62_state::machine_reset() m_bankcontrol[1] = 0; } -static MACHINE_CONFIG_START( ldrun, m62_state ) +static MACHINE_CONFIG_START( ldrun ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 24000000/6) @@ -2180,25 +2180,25 @@ DRIVER_INIT_MEMBER(m62_state,youjyudn) membank("bank1")->configure_entries(0, 2, memregion("maincpu")->base() + 0x10000, 0x4000); } -GAME( 1984, kungfum, 0, kungfum, kungfum, driver_device, 0, ROT0, "Irem", "Kung-Fu Master (World)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) -GAME( 1984, kungfumd, kungfum, kungfum, kungfum, driver_device, 0, ROT0, "Irem (Data East USA license)", "Kung-Fu Master (US)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) -GAME( 1984, spartanx, kungfum, kungfum, kungfum, driver_device, 0, ROT0, "Irem", "Spartan X (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) -GAME( 1984, kungfub, kungfum, kungfum, kungfum, driver_device, 0, ROT0, "bootleg", "Kung-Fu Master (bootleg set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) -GAME( 1984, kungfub2, kungfum, kungfum, kungfum, driver_device, 0, ROT0, "bootleg", "Kung-Fu Master (bootleg set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) -GAME( 1984, battroad, 0, battroad, battroad, m62_state, battroad, ROT90, "Irem", "The Battle-Road", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) -GAME( 1984, ldrun, 0, ldrun, ldrun, driver_device, 0, ROT0, "Irem (licensed from Broderbund)", "Lode Runner (set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) -GAME( 1984, ldruna, ldrun, ldrun, ldrun, driver_device, 0, ROT0, "Irem (licensed from Broderbund, Digital Controls Inc. license)", "Lode Runner (set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) -GAME( 1984, ldrun2, 0, ldrun2, ldrun2, m62_state, ldrun2, ROT0, "Irem (licensed from Broderbund)", "Lode Runner II - The Bungeling Strikes Back", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) /* Japanese version is called Bangeringu Teikoku No Gyakushuu */ -GAME( 1985, ldrun3, 0, ldrun3, ldrun3, driver_device, 0, ROT0, "Irem (licensed from Broderbund)", "Lode Runner III - The Golden Labyrinth", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) -GAME( 1985, ldrun3j, ldrun3, ldrun3, ldrun3, driver_device, 0, ROT0, "Irem (licensed from Broderbund)", "Lode Runner III - Majin No Fukkatsu (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) -GAME( 1986, ldrun4, 0, ldrun4, ldrun4, m62_state, ldrun4, ROT0, "Irem (licensed from Broderbund)", "Lode Runner IV - Teikoku Karano Dasshutsu (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) -GAME( 1985, lotlot, 0, lotlot, lotlot, driver_device, 0, ROT0, "Irem (licensed from Tokuma Shoten)", "Lot Lot", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) -GAME( 1986, kidniki, 0, kidniki, kidniki, m62_state, kidniki, ROT0, "Irem", "Kid Niki - Radical Ninja (World)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) -GAME( 1986, kidnikiu, kidniki, kidniki, kidniki, m62_state, kidniki, ROT0, "Irem (Data East USA license)", "Kid Niki - Radical Ninja (US)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) -GAME( 1986, yanchamr, kidniki, kidniki, kidniki, m62_state, kidniki, ROT0, "Irem", "Kaiketsu Yanchamaru (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) -GAME( 1987, lithero, kidniki, kidniki, kidniki, m62_state, kidniki, ROT0, "bootleg", "Little Hero", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) -GAME( 1985, spelunkr, 0, spelunkr, spelunkr, m62_state, spelunkr, ROT0, "Irem (licensed from Broderbund)", "Spelunker", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) -GAME( 1985, spelunkrj,spelunkr, spelunkr, spelunkr, m62_state, spelunkr, ROT0, "Irem (licensed from Broderbund)", "Spelunker (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) -GAME( 1986, spelunk2, 0, spelunk2, spelunk2, m62_state, spelunk2, ROT0, "Irem (licensed from Broderbund)", "Spelunker II", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) -GAME( 1986, youjyudn, 0, youjyudn, youjyudn, m62_state, youjyudn, ROT270, "Irem", "Youjyuden (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) -GAME( 1985, horizon, 0, horizon, horizon, driver_device, 0, ROT0, "Irem", "Horizon (Irem)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) +GAME( 1984, kungfum, 0, kungfum, kungfum, m62_state, 0, ROT0, "Irem", "Kung-Fu Master (World)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) +GAME( 1984, kungfumd, kungfum, kungfum, kungfum, m62_state, 0, ROT0, "Irem (Data East USA license)", "Kung-Fu Master (US)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) +GAME( 1984, spartanx, kungfum, kungfum, kungfum, m62_state, 0, ROT0, "Irem", "Spartan X (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) +GAME( 1984, kungfub, kungfum, kungfum, kungfum, m62_state, 0, ROT0, "bootleg", "Kung-Fu Master (bootleg set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) +GAME( 1984, kungfub2, kungfum, kungfum, kungfum, m62_state, 0, ROT0, "bootleg", "Kung-Fu Master (bootleg set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) +GAME( 1984, battroad, 0, battroad, battroad, m62_state, battroad, ROT90, "Irem", "The Battle-Road", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) +GAME( 1984, ldrun, 0, ldrun, ldrun, m62_state, 0, ROT0, "Irem (licensed from Broderbund)", "Lode Runner (set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) +GAME( 1984, ldruna, ldrun, ldrun, ldrun, m62_state, 0, ROT0, "Irem (licensed from Broderbund, Digital Controls Inc. license)", "Lode Runner (set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) +GAME( 1984, ldrun2, 0, ldrun2, ldrun2, m62_state, ldrun2, ROT0, "Irem (licensed from Broderbund)", "Lode Runner II - The Bungeling Strikes Back", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) /* Japanese version is called Bangeringu Teikoku No Gyakushuu */ +GAME( 1985, ldrun3, 0, ldrun3, ldrun3, m62_state, 0, ROT0, "Irem (licensed from Broderbund)", "Lode Runner III - The Golden Labyrinth", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) +GAME( 1985, ldrun3j, ldrun3, ldrun3, ldrun3, m62_state, 0, ROT0, "Irem (licensed from Broderbund)", "Lode Runner III - Majin No Fukkatsu (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) +GAME( 1986, ldrun4, 0, ldrun4, ldrun4, m62_state, ldrun4, ROT0, "Irem (licensed from Broderbund)", "Lode Runner IV - Teikoku Karano Dasshutsu (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) +GAME( 1985, lotlot, 0, lotlot, lotlot, m62_state, 0, ROT0, "Irem (licensed from Tokuma Shoten)", "Lot Lot", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) +GAME( 1986, kidniki, 0, kidniki, kidniki, m62_state, kidniki, ROT0, "Irem", "Kid Niki - Radical Ninja (World)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) +GAME( 1986, kidnikiu, kidniki, kidniki, kidniki, m62_state, kidniki, ROT0, "Irem (Data East USA license)", "Kid Niki - Radical Ninja (US)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) +GAME( 1986, yanchamr, kidniki, kidniki, kidniki, m62_state, kidniki, ROT0, "Irem", "Kaiketsu Yanchamaru (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) +GAME( 1987, lithero, kidniki, kidniki, kidniki, m62_state, kidniki, ROT0, "bootleg", "Little Hero", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) +GAME( 1985, spelunkr, 0, spelunkr, spelunkr, m62_state, spelunkr, ROT0, "Irem (licensed from Broderbund)", "Spelunker", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) +GAME( 1985, spelunkrj,spelunkr, spelunkr, spelunkr, m62_state, spelunkr, ROT0, "Irem (licensed from Broderbund)", "Spelunker (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) +GAME( 1986, spelunk2, 0, spelunk2, spelunk2, m62_state, spelunk2, ROT0, "Irem (licensed from Broderbund)", "Spelunker II", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) +GAME( 1986, youjyudn, 0, youjyudn, youjyudn, m62_state, youjyudn, ROT270, "Irem", "Youjyuden (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) +GAME( 1985, horizon, 0, horizon, horizon, m62_state, 0, ROT0, "Irem", "Horizon (Irem)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) diff --git a/src/mame/drivers/m63.cpp b/src/mame/drivers/m63.cpp index 927a845bb64..126e820ff15 100644 --- a/src/mame/drivers/m63.cpp +++ b/src/mame/drivers/m63.cpp @@ -749,7 +749,7 @@ INTERRUPT_GEN_MEMBER(m63_state::vblank_irq) device.execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE); } -static MACHINE_CONFIG_START( m63, m63_state ) +static MACHINE_CONFIG_START( m63 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80,XTAL_12MHz/4) /* 3 MHz */ @@ -799,7 +799,7 @@ static MACHINE_CONFIG_DERIVED( atomboy, m63 ) MCFG_CPU_PERIODIC_INT_DRIVER(m63_state, snd_irq, 60/2) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( fghtbskt, m63_state ) +static MACHINE_CONFIG_START( fghtbskt ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_12MHz/4) /* 3 MHz */ diff --git a/src/mame/drivers/m6805evs.cpp b/src/mame/drivers/m6805evs.cpp index f42260193ce..ca262cc0301 100644 --- a/src/mame/drivers/m6805evs.cpp +++ b/src/mame/drivers/m6805evs.cpp @@ -98,7 +98,7 @@ void m6805evs_state::machine_reset() { } -static MACHINE_CONFIG_START( m6805evs, m6805evs_state ) +static MACHINE_CONFIG_START( m6805evs ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6805, XTAL_4MHz) MCFG_CPU_PROGRAM_MAP(m6805evs_mem) @@ -116,5 +116,5 @@ ROM_END ***************************************************************************/ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME */ -COMP( 1990, m6805evs, 0, 0, m6805evs, m6805evs, driver_device, 0, "Motorola", "M68HC05EVS", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW ) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 1990, m6805evs, 0, 0, m6805evs, m6805evs, m6805evs_state, 0, "Motorola", "M68HC05EVS", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW ) diff --git a/src/mame/drivers/m68705prg.cpp b/src/mame/drivers/m68705prg.cpp index 965fa9bb8cf..31a22791ffb 100644 --- a/src/mame/drivers/m68705prg.cpp +++ b/src/mame/drivers/m68705prg.cpp @@ -219,7 +219,7 @@ INPUT_PORTS_START(m68705prg) INPUT_PORTS_END -MACHINE_CONFIG_START(m68705prg, m68705prg_state_base) +MACHINE_CONFIG_START(m68705prg) MCFG_QUANTUM_PERFECT_CPU("mcu") MCFG_GENERIC_SOCKET_ADD("eprom_image", generic_plain_slot, "eprom") @@ -235,28 +235,28 @@ MACHINE_CONFIG_START(m68705prg, m68705prg_state_base) MCFG_DEFAULT_LAYOUT(layout_m68705prg) MACHINE_CONFIG_END -MACHINE_CONFIG_DERIVED_CLASS(m68705p3prg, m68705prg, p3prg_state) +MACHINE_CONFIG_DERIVED(m68705p3prg, m68705prg) MCFG_CPU_ADD("mcu", M68705P3, XTAL_1MHz) MCFG_M68705_PORTB_W_CB(WRITE8(p3prg_state, pb_w)) MCFG_MACHINE_RESET_OVERRIDE(p3prg_state, m68705prg) MACHINE_CONFIG_END -MACHINE_CONFIG_DERIVED_CLASS(m68705p5prg, m68705prg, p5prg_state) +MACHINE_CONFIG_DERIVED(m68705p5prg, m68705prg) MCFG_CPU_ADD("mcu", M68705P5, XTAL_1MHz) MCFG_M68705_PORTB_W_CB(WRITE8(p5prg_state, pb_w)) MCFG_MACHINE_RESET_OVERRIDE(p5prg_state, m68705prg) MACHINE_CONFIG_END -MACHINE_CONFIG_DERIVED_CLASS(m68705r3prg, m68705prg, r3prg_state) +MACHINE_CONFIG_DERIVED(m68705r3prg, m68705prg) MCFG_CPU_ADD("mcu", M68705R3, XTAL_1MHz) MCFG_M68705_PORTB_W_CB(WRITE8(r3prg_state, pb_w)) MCFG_MACHINE_RESET_OVERRIDE(r3prg_state, m68705prg) MACHINE_CONFIG_END -MACHINE_CONFIG_DERIVED_CLASS(m68705u3prg, m68705prg, u3prg_state) +MACHINE_CONFIG_DERIVED(m68705u3prg, m68705prg) MCFG_CPU_ADD("mcu", M68705U3, XTAL_1MHz) MCFG_M68705_PORTB_W_CB(WRITE8(u3prg_state, pb_w)) @@ -287,8 +287,8 @@ ROM_END } // anonymous namespace -// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS -COMP( 1984, 705p5prg, 0, 0, m68705p5prg, m68705prg, m68705prg_state_base, m68705prg, "Motorola", "MC68705P5 Programmer", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) -COMP( 1984, 705p3prg, 705p5prg, 0, m68705p3prg, m68705prg, m68705prg_state_base, m68705prg, "Motorola", "MC68705P3 Programmer", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) -COMP( 1984, 705r3prg, 705p5prg, 0, m68705r3prg, m68705prg, m68705prg_state_base, m68705prg, "Motorola", "MC68705R3 Programmer", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) -COMP( 1984, 705u3prg, 705p5prg, 0, m68705u3prg, m68705prg, m68705prg_state_base, m68705prg, "Motorola", "MC68705U3 Programmer", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1984, 705p5prg, 0, 0, m68705p5prg, m68705prg, p5prg_state, m68705prg, "Motorola", "MC68705P5 Programmer", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) +COMP( 1984, 705p3prg, 705p5prg, 0, m68705p3prg, m68705prg, p3prg_state, m68705prg, "Motorola", "MC68705P3 Programmer", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) +COMP( 1984, 705r3prg, 705p5prg, 0, m68705r3prg, m68705prg, r3prg_state, m68705prg, "Motorola", "MC68705R3 Programmer", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) +COMP( 1984, 705u3prg, 705p5prg, 0, m68705u3prg, m68705prg, u3prg_state, m68705prg, "Motorola", "MC68705U3 Programmer", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) diff --git a/src/mame/drivers/m72.cpp b/src/mame/drivers/m72.cpp index 669ad1429a3..5c0cdbab664 100644 --- a/src/mame/drivers/m72.cpp +++ b/src/mame/drivers/m72.cpp @@ -1877,7 +1877,7 @@ static MACHINE_CONFIG_FRAGMENT( m72_audio_chips ) MCFG_GENERIC_LATCH_8_ADD("soundlatch") - MCFG_SOUND_ADD("m72", M72, 0) + MCFG_SOUND_ADD("m72", IREM_M72_AUDIO, 0) MCFG_YM2151_ADD("ymsnd", SOUND_CLOCK) MCFG_YM2151_IRQ_HANDLER(DEVWRITELINE("m72", m72_audio_device, ym2151_irq_handler)) @@ -1888,7 +1888,7 @@ static MACHINE_CONFIG_FRAGMENT( m72_audio_chips ) 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( m72_base, m72_state ) +static MACHINE_CONFIG_START( m72_base ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",V30,MASTER_CLOCK/2/2) /* 16 MHz external freq (8MHz internal) */ @@ -2000,7 +2000,7 @@ MACHINE_CONFIG_END /****************************************** M84 ***********************************************/ // M84 -static MACHINE_CONFIG_START( rtype2, m72_state ) +static MACHINE_CONFIG_START( rtype2 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", V30,MASTER_CLOCK/2/2) /* 16 MHz external freq (8MHz internal) */ @@ -2045,7 +2045,7 @@ MACHINE_CONFIG_END // M84 // is the upd71059c present and unused, or has it been removed from the PCB? it isn't needed beacuse the V35 has it's own IRQ controller. -static MACHINE_CONFIG_START( cosmccop, m72_state ) +static MACHINE_CONFIG_START( cosmccop ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", V35,MASTER_CLOCK/2) @@ -2094,7 +2094,7 @@ M82-A-A as the top board M82-B-A and as the bottom board */ -static MACHINE_CONFIG_START( m82, m72_state ) +static MACHINE_CONFIG_START( m82 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", V30,MASTER_CLOCK/2/2) /* 16 MHz external freq (8MHz internal) */ @@ -2130,7 +2130,7 @@ MACHINE_CONFIG_END M85-A-B / M85-B */ -static MACHINE_CONFIG_START( poundfor, m72_state ) +static MACHINE_CONFIG_START( poundfor ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", V30,MASTER_CLOCK/2/2) /* 16 MHz external freq (8MHz internal) */ @@ -3779,11 +3779,11 @@ ROM_END /* M72 */ -GAME( 1987, rtype, 0, rtype, rtype, driver_device, 0, ROT0, "Irem", "R-Type (World)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1987, rtypej, rtype, rtype, rtype, driver_device, 0, ROT0, "Irem", "R-Type (Japan)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1987, rtypejp, rtype, rtype, rtypep, driver_device, 0, ROT0, "Irem", "R-Type (Japan prototype)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1987, rtypeu, rtype, rtype, rtype, driver_device, 0, ROT0, "Irem (Nintendo of America license)", "R-Type (US)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1987, rtypeb, rtype, rtype, rtype, driver_device, 0, ROT0, "bootleg", "R-Type (World bootleg)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1987, rtype, 0, rtype, rtype, m72_state, 0, ROT0, "Irem", "R-Type (World)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1987, rtypej, rtype, rtype, rtype, m72_state, 0, ROT0, "Irem", "R-Type (Japan)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1987, rtypejp, rtype, rtype, rtypep, m72_state, 0, ROT0, "Irem", "R-Type (Japan prototype)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1987, rtypeu, rtype, rtype, rtype, m72_state, 0, ROT0, "Irem (Nintendo of America license)", "R-Type (US)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1987, rtypeb, rtype, rtype, rtype, m72_state, 0, ROT0, "bootleg", "R-Type (World bootleg)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) GAME( 1987, bchopper, 0, m72, bchopper, m72_state, bchopper, ROT0, "Irem", "Battle Chopper", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) GAME( 1987, mrheli, bchopper, m72_8751, bchopper, m72_state, m72_8751, ROT0, "Irem", "Mr. HELI no Daibouken (Japan)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) @@ -3800,7 +3800,7 @@ GAME( 1989, lohtb2, loht, m72_8751, loht, m72_state, m72_875 GAME( 1989, xmultiplm72, xmultipl, m72_xmultipl,xmultipl, m72_state, m72_8751, ROT0, "Irem", "X Multiply (Japan, M72)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1989, dbreedm72, dbreed, m72_dbreed, dbreed, m72_state, dbreedm72, ROT0, "Irem", "Dragon Breed (M72 PCB version)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // probably Japan version +GAME( 1989, dbreedm72, dbreed, m72_dbreed, dbreed, m72_state, dbreedm72, ROT0, "Irem", "Dragon Breed (M72 PCB version)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // probably Japan version GAME( 1991, gallop, cosmccop, m72, gallop, m72_state, gallop, ROT0, "Irem", "Gallop - Armed Police Unit (Japan, M72)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) @@ -3809,40 +3809,40 @@ GAME( 1990, airduelm72, airduel, m72, airduel, m72_state, airduel GAME( 1990, dkgensanm72, hharry, m72, hharry, m72_state, dkgenm72, ROT0, "Irem", "Daiku no Gensan (Japan, M72)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) /* M81 */ -GAME( 1989, xmultipl, 0, m81_xmultipl,m81_xmultipl,driver_device,0, ROT0, "Irem", "X Multiply (World, M81)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1989, dbreed, 0, m81_dbreed, m81_dbreed,driver_device,0, ROT0, "Irem", "Dragon Breed (M81 PCB version)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1990, hharry, 0, m81_hharry, m81_hharry,driver_device,0, ROT0, "Irem", "Hammerin' Harry (World, M81)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1989, xmultipl, 0, m81_xmultipl,m81_xmultipl,m72_state,0, ROT0, "Irem", "X Multiply (World, M81)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1989, dbreed, 0, m81_dbreed, m81_dbreed,m72_state,0, ROT0, "Irem", "Dragon Breed (M81 PCB version)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1990, hharry, 0, m81_hharry, m81_hharry,m72_state,0, ROT0, "Irem", "Hammerin' Harry (World, M81)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) /* M82 */ -GAME( 1990, majtitle, 0, m82, rtype2, driver_device, 0, ROT0, "Irem", "Major Title (World)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // M82-A-A + M82-B-A -GAME( 1990, majtitlej, majtitle, m82, rtype2, driver_device, 0, ROT0, "Irem", "Major Title (Japan)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // ^ +GAME( 1990, majtitle, 0, m82, rtype2, m72_state, 0, ROT0, "Irem", "Major Title (World)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // M82-A-A + M82-B-A +GAME( 1990, majtitlej, majtitle, m82, rtype2, m72_state, 0, ROT0, "Irem", "Major Title (Japan)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // ^ -GAME( 1990, airduel, 0, m82, airduel, driver_device, 0, ROT270, "Irem", "Air Duel (World, M82-A-A + M82-B-A)", MACHINE_SUPPORTS_SAVE ) // Major Title conversion +GAME( 1990, airduel, 0, m82, airduel, m72_state, 0, ROT270, "Irem", "Air Duel (World, M82-A-A + M82-B-A)", MACHINE_SUPPORTS_SAVE ) // Major Title conversion -GAME( 2009, rtypem82b, rtype, m82, rtype, driver_device, 0, ROT0, "bootleg", "R-Type (Japan, bootleg Major Title conversion, M82)", MACHINE_NOT_WORKING | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // unofficial conversion of Major Title, extensive wiremods, made in 2009 by Paul Swan +GAME( 2009, rtypem82b, rtype, m82, rtype, m72_state, 0, ROT0, "bootleg", "R-Type (Japan, bootleg Major Title conversion, M82)", MACHINE_NOT_WORKING | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // unofficial conversion of Major Title, extensive wiremods, made in 2009 by Paul Swan -GAME( 1997, rtype2m82b, rtype2, m82, rtype2, driver_device, 0, ROT0, "bootleg", "R-Type II (Japan, bootleg Major Title conversion, M82)", MACHINE_NOT_WORKING | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // made in 1997 by Chris Hardy +GAME( 1997, rtype2m82b, rtype2, m82, rtype2, m72_state, 0, ROT0, "bootleg", "R-Type II (Japan, bootleg Major Title conversion, M82)", MACHINE_NOT_WORKING | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // made in 1997 by Chris Hardy /* M84 */ -GAME( 1990, hharryu, hharry, hharryu, hharry, driver_device, 0, ROT0, "Irem America", "Hammerin' Harry (US, M84)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1990, dkgensan, hharry, hharryu, hharry, driver_device, 0, ROT0, "Irem", "Daiku no Gensan (Japan, M84)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1990, hharryu, hharry, hharryu, hharry, m72_state, 0, ROT0, "Irem America", "Hammerin' Harry (US, M84)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1990, dkgensan, hharry, hharryu, hharry, m72_state, 0, ROT0, "Irem", "Daiku no Gensan (Japan, M84)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1989, rtype2, 0, rtype2, rtype2, driver_device, 0, ROT0, "Irem", "R-Type II", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1989, rtype2j, rtype2, rtype2, rtype2, driver_device, 0, ROT0, "Irem", "R-Type II (Japan)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1989, rtype2jc, rtype2, rtype2, rtype2, driver_device, 0, ROT0, "Irem", "R-Type II (Japan, revision C)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1989, rtype2, 0, rtype2, rtype2, m72_state, 0, ROT0, "Irem", "R-Type II", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1989, rtype2j, rtype2, rtype2, rtype2, m72_state, 0, ROT0, "Irem", "R-Type II (Japan)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1989, rtype2jc, rtype2, rtype2, rtype2, m72_state, 0, ROT0, "Irem", "R-Type II (Japan, revision C)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1991, cosmccop, 0, cosmccop, gallop, driver_device, 0, ROT0, "Irem", "Cosmic Cop (World)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1991, cosmccop, 0, cosmccop, gallop, m72_state, 0, ROT0, "Irem", "Cosmic Cop (World)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1991, ltswords, 0, kengo, kengo, driver_device, 0, ROT0, "Irem", "Lightning Swords", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1991, kengo, ltswords, kengo, kengo, driver_device, 0, ROT0, "Irem", "Ken-Go (set 1)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1991, kengoa, ltswords, kengo, kengo, driver_device, 0, ROT0, "Irem", "Ken-Go (set 2)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // has 'for use in Japan' message, above set doesn't +GAME( 1991, ltswords, 0, kengo, kengo, m72_state, 0, ROT0, "Irem", "Lightning Swords", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1991, kengo, ltswords, kengo, kengo, m72_state, 0, ROT0, "Irem", "Ken-Go (set 1)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1991, kengoa, ltswords, kengo, kengo, m72_state, 0, ROT0, "Irem", "Ken-Go (set 2)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // has 'for use in Japan' message, above set doesn't /* M85 */ -GAME( 1990, poundfor, 0, poundfor, poundfor, driver_device, 0, ROT270, "Irem", "Pound for Pound (World)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // M85-A-B / M85-B -GAME( 1990, poundforj, poundfor, poundfor, poundfor, driver_device, 0, ROT270, "Irem", "Pound for Pound (Japan)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // ^ -GAME( 1990, poundforu, poundfor, poundfor, poundfor, driver_device, 0, ROT270, "Irem America", "Pound for Pound (US)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // ^ +GAME( 1990, poundfor, 0, poundfor, poundfor, m72_state, 0, ROT270, "Irem", "Pound for Pound (World)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // M85-A-B / M85-B +GAME( 1990, poundforj, poundfor, poundfor, poundfor, m72_state, 0, ROT270, "Irem", "Pound for Pound (Japan)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // ^ +GAME( 1990, poundforu, poundfor, poundfor, poundfor, m72_state, 0, ROT270, "Irem America", "Pound for Pound (US)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // ^ /* bootlegs, unique hw */ -GAME( 1989, lohtb, loht, m72, loht, driver_device, 0, ROT0, "bootleg", "Legend of Hero Tonma (unprotected bootleg)", MACHINE_NOT_WORKING| MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1989, lohtb, loht, m72, loht, m72_state, 0, ROT0, "bootleg", "Legend of Hero Tonma (unprotected bootleg)", MACHINE_NOT_WORKING| MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/m79152pc.cpp b/src/mame/drivers/m79152pc.cpp index d216e0d588d..35c976fe304 100644 --- a/src/mame/drivers/m79152pc.cpp +++ b/src/mame/drivers/m79152pc.cpp @@ -110,7 +110,7 @@ static GFXDECODE_START( m79152pc ) GFXDECODE_ENTRY( "chargen", 0x0000, m79152pc_charlayout, 0, 1 ) GFXDECODE_END -static MACHINE_CONFIG_START( m79152pc, m79152pc_state ) +static MACHINE_CONFIG_START( m79152pc ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80, XTAL_4MHz) MCFG_CPU_PROGRAM_MAP(m79152pc_mem) @@ -141,5 +141,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( ????, m79152pc, 0, 0, m79152pc, m79152pc, driver_device, 0, "Mera-Elzab", "MERA 79152 PC", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( ????, m79152pc, 0, 0, m79152pc, m79152pc, m79152pc_state, 0, "Mera-Elzab", "MERA 79152 PC", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) diff --git a/src/mame/drivers/m79amb.cpp b/src/mame/drivers/m79amb.cpp index 116018e518d..ab39c3f088e 100644 --- a/src/mame/drivers/m79amb.cpp +++ b/src/mame/drivers/m79amb.cpp @@ -189,7 +189,7 @@ INTERRUPT_GEN_MEMBER(m79amb_state::m79amb_interrupt) device.execute().set_input_line_and_vector(0, HOLD_LINE, 0xcf); /* RST 08h */ } -static MACHINE_CONFIG_START( m79amb, m79amb_state ) +static MACHINE_CONFIG_START( m79amb ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8080, XTAL_19_6608MHz / 10) diff --git a/src/mame/drivers/m90.cpp b/src/mame/drivers/m90.cpp index 4f601bcb9f0..bbc32655550 100644 --- a/src/mame/drivers/m90.cpp +++ b/src/mame/drivers/m90.cpp @@ -718,7 +718,7 @@ INTERRUPT_GEN_MEMBER(m90_state::bomblord_interrupt) /* Basic hardware -- no decryption table is setup for CPU */ -static MACHINE_CONFIG_START( m90, m90_state ) +static MACHINE_CONFIG_START( m90 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", V35, XTAL_32MHz/2) MCFG_CPU_PROGRAM_MAP(m90_main_cpu_map) @@ -750,7 +750,7 @@ static MACHINE_CONFIG_START( m90, m90_state ) MCFG_GENERIC_LATCH_8_ADD("soundlatch") - MCFG_SOUND_ADD("m72", M72, 0) + MCFG_SOUND_ADD("m72", IREM_M72_AUDIO, 0) MCFG_YM2151_ADD("ymsnd", XTAL_3_579545MHz) /* verified on pcb */ MCFG_YM2151_IRQ_HANDLER(DEVWRITELINE("m72", m72_audio_device, ym2151_irq_handler)) @@ -1258,20 +1258,20 @@ DRIVER_INIT_MEMBER(m90_state,bomblord) -GAME( 1991, hasamu, 0, hasamu, hasamu, driver_device, 0, ROT0, "Irem", "Hasamu (Japan)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1991, dynablst, 0, bombrman, dynablst, driver_device, 0, ROT0, "Irem (licensed from Hudson Soft)", "Dynablaster / Bomber Man", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1991, bombrman, dynablst, bombrman, bombrman, driver_device, 0, ROT0, "Irem (licensed from Hudson Soft)", "Bomber Man (Japan)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1991, atompunk, dynablst, bombrman, atompunk, driver_device, 0, ROT0, "Irem America (licensed from Hudson Soft)", "Atomic Punk (US)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1992, dynablstb,dynablst, dynablsb, dynablsb, driver_device, 0, ROT0, "bootleg (Seitu)", "Dynablaster / Bomber Man (bootleg, set 1)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1992, dynablstb2,dynablst,dynablsb, dynablsb, driver_device, 0, ROT0, "bootleg (Seitu)", "Dynablaster / Bomber Man (bootleg, set 2)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1992, dynablstb3,dynablst,dynablsb, dynablsb, driver_device, 0, ROT0, "bootleg (Seitu)", "Dynablaster / Bomber Man (bootleg, set 3)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // PCB has Playmark labels -GAME( 1992, bbmanw, 0, bbmanw, bbmanw, driver_device, 0, ROT0, "Irem", "Bomber Man World / New Dyna Blaster - Global Quest", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1992, bbmanwj, bbmanw, bbmanw, bbmanwj, driver_device, 0, ROT0, "Irem", "Bomber Man World (Japan)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1992, bbmanwja, bbmanw, bbmanwj, bbmanwj, driver_device, 0, ROT0, "Irem", "Bomber Man World (Japan, revised sound hardware)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1992, newapunk, bbmanw, bbmanw, newapunk, driver_device, 0, ROT0, "Irem America", "New Atomic Punk - Global Quest (US)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1992, bomblord, bbmanw, bomblord, bbmanw, m90_state, bomblord, ROT0, "bootleg", "Bomber Lord (bootleg)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1992, quizf1, 0, quizf1, quizf1, m90_state, quizf1, ROT0, "Irem", "Quiz F1 1-2 Finish (Japan)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1993, riskchal, 0, riskchal, riskchal, driver_device, 0, ROT0, "Irem", "Risky Challenge", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1993, gussun, riskchal, riskchal, riskchal, driver_device, 0, ROT0, "Irem", "Gussun Oyoyo (Japan)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1993, matchit2, 0, matchit2, matchit2, driver_device, 0, ROT0, "Tamtex", "Match It II", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1993, shisen2, matchit2, matchit2, shisen2, driver_device, 0, ROT0, "Tamtex", "Shisensho II", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1991, hasamu, 0, hasamu, hasamu, m90_state, 0, ROT0, "Irem", "Hasamu (Japan)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1991, dynablst, 0, bombrman, dynablst, m90_state, 0, ROT0, "Irem (licensed from Hudson Soft)", "Dynablaster / Bomber Man", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1991, bombrman, dynablst, bombrman, bombrman, m90_state, 0, ROT0, "Irem (licensed from Hudson Soft)", "Bomber Man (Japan)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1991, atompunk, dynablst, bombrman, atompunk, m90_state, 0, ROT0, "Irem America (licensed from Hudson Soft)", "Atomic Punk (US)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1992, dynablstb,dynablst, dynablsb, dynablsb, m90_state, 0, ROT0, "bootleg (Seitu)", "Dynablaster / Bomber Man (bootleg, set 1)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1992, dynablstb2,dynablst,dynablsb, dynablsb, m90_state, 0, ROT0, "bootleg (Seitu)", "Dynablaster / Bomber Man (bootleg, set 2)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1992, dynablstb3,dynablst,dynablsb, dynablsb, m90_state, 0, ROT0, "bootleg (Seitu)", "Dynablaster / Bomber Man (bootleg, set 3)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // PCB has Playmark labels +GAME( 1992, bbmanw, 0, bbmanw, bbmanw, m90_state, 0, ROT0, "Irem", "Bomber Man World / New Dyna Blaster - Global Quest", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1992, bbmanwj, bbmanw, bbmanw, bbmanwj, m90_state, 0, ROT0, "Irem", "Bomber Man World (Japan)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1992, bbmanwja, bbmanw, bbmanwj, bbmanwj, m90_state, 0, ROT0, "Irem", "Bomber Man World (Japan, revised sound hardware)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1992, newapunk, bbmanw, bbmanw, newapunk, m90_state, 0, ROT0, "Irem America", "New Atomic Punk - Global Quest (US)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1992, bomblord, bbmanw, bomblord, bbmanw, m90_state, bomblord, ROT0, "bootleg", "Bomber Lord (bootleg)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1992, quizf1, 0, quizf1, quizf1, m90_state, quizf1, ROT0, "Irem", "Quiz F1 1-2 Finish (Japan)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1993, riskchal, 0, riskchal, riskchal, m90_state, 0, ROT0, "Irem", "Risky Challenge", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1993, gussun, riskchal, riskchal, riskchal, m90_state, 0, ROT0, "Irem", "Gussun Oyoyo (Japan)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1993, matchit2, 0, matchit2, matchit2, m90_state, 0, ROT0, "Tamtex", "Match It II", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1993, shisen2, matchit2, matchit2, shisen2, m90_state, 0, ROT0, "Tamtex", "Shisensho II", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/m92.cpp b/src/mame/drivers/m92.cpp index cadf88db39d..2a4af7dadbf 100644 --- a/src/mame/drivers/m92.cpp +++ b/src/mame/drivers/m92.cpp @@ -965,7 +965,7 @@ void m92_state::m92_sprite_interrupt() } -static MACHINE_CONFIG_START( m92, m92_state ) +static MACHINE_CONFIG_START( m92 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",V33,XTAL_18MHz/2) @@ -1068,7 +1068,7 @@ static MACHINE_CONFIG_DERIVED( ppan, m92 ) MCFG_VIDEO_START_OVERRIDE(m92_state,ppan) - MCFG_OKIM6295_ADD("oki", 1000000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki", 1000000, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END diff --git a/src/mame/drivers/mac.cpp b/src/mame/drivers/mac.cpp index d42f940160c..79b75997ee4 100644 --- a/src/mame/drivers/mac.cpp +++ b/src/mame/drivers/mac.cpp @@ -906,7 +906,7 @@ static const floppy_interface mac_floppy_interface = "floppy_3_5" }; -static MACHINE_CONFIG_START( mac512ke, mac_state ) +static MACHINE_CONFIG_START( mac512ke ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, C7M) /* 7.8336 MHz */ @@ -1029,7 +1029,7 @@ static MACHINE_CONFIG_DERIVED( macclasc, macplus ) MCFG_MACKBD_REMOVE(MACKBD_TAG) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( macprtb, mac_state ) +static MACHINE_CONFIG_START( macprtb ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, C15M) MCFG_CPU_PROGRAM_MAP(macprtb_map) @@ -1053,7 +1053,7 @@ static MACHINE_CONFIG_START( macprtb, mac_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_ASC_ADD("asc", C15M, ASC_TYPE_ASC, WRITELINE(mac_state, mac_asc_irq)) + MCFG_ASC_ADD("asc", C15M, ASC, WRITELINE(mac_state, mac_asc_irq)) MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) @@ -1090,7 +1090,7 @@ static MACHINE_CONFIG_START( macprtb, mac_state ) MCFG_SOFTWARE_LIST_ADD("hdd_list", "mac_hdd") MACHINE_CONFIG_END -static MACHINE_CONFIG_START( macii, mac_state ) +static MACHINE_CONFIG_START( macii ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68020PMMU, C15M) @@ -1101,7 +1101,7 @@ static MACHINE_CONFIG_START( macii, mac_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_ASC_ADD("asc", C15M, ASC_TYPE_ASC, WRITELINE(mac_state, mac_asc_irq)) + MCFG_ASC_ADD("asc", C15M, ASC, WRITELINE(mac_state, mac_asc_irq)) MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) @@ -1168,7 +1168,7 @@ static MACHINE_CONFIG_DERIVED( maciihmu, macii ) MCFG_CPU_DISASSEMBLE_OVERRIDE(mac_state, mac_dasm_override) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( maciifx, mac_state ) +static MACHINE_CONFIG_START( maciifx ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68030, 40000000) @@ -1177,7 +1177,7 @@ static MACHINE_CONFIG_START( maciifx, mac_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_ASC_ADD("asc", C15M, ASC_TYPE_ASC, WRITELINE(mac_state, mac_asc_irq)) + MCFG_ASC_ADD("asc", C15M, ASC, WRITELINE(mac_state, mac_asc_irq)) MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) @@ -1275,7 +1275,7 @@ static MACHINE_CONFIG_DERIVED( maclc, macii ) MCFG_NUBUS_OUT_IRQE_CB(WRITELINE(mac_state, nubus_irq_e_w)) MCFG_NUBUS_SLOT_ADD("pds","lcpds", mac_lcpds_cards, nullptr) - MCFG_ASC_REPLACE("asc", C15M, ASC_TYPE_V8, WRITELINE(mac_state, mac_asc_irq)) + MCFG_ASC_REPLACE("asc", C15M, V8, WRITELINE(mac_state, mac_asc_irq)) MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) @@ -1329,7 +1329,7 @@ static MACHINE_CONFIG_DERIVED( maclc3, maclc ) MCFG_RAM_DEFAULT_SIZE("4M") MCFG_RAM_EXTRA_OPTIONS("8M,16M,32M,48M,64M,80M") - MCFG_ASC_REPLACE("asc", C15M, ASC_TYPE_SONORA, WRITELINE(mac_state, mac_asc_irq)) + MCFG_ASC_REPLACE("asc", C15M, SONORA, WRITELINE(mac_state, mac_asc_irq)) MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) @@ -1442,7 +1442,7 @@ static MACHINE_CONFIG_DERIVED( maciicx, maciix ) // IIcx is a IIx with only s MCFG_NUBUS_SLOT_REMOVE("nbe") MACHINE_CONFIG_END -static MACHINE_CONFIG_START( macse30, mac_state ) +static MACHINE_CONFIG_START( macse30 ) MCFG_CPU_ADD("maincpu", M68030, C15M) MCFG_CPU_PROGRAM_MAP(macse30_map) @@ -1465,7 +1465,7 @@ static MACHINE_CONFIG_START( macse30, mac_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_ASC_ADD("asc", C15M, ASC_TYPE_ASC, WRITELINE(mac_state, mac_asc_irq)) + MCFG_ASC_ADD("asc", C15M, ASC, WRITELINE(mac_state, mac_asc_irq)) MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) @@ -1520,7 +1520,7 @@ static MACHINE_CONFIG_START( macse30, mac_state ) MCFG_SOFTWARE_LIST_ADD("hdd_list", "mac_hdd") MACHINE_CONFIG_END -static MACHINE_CONFIG_START( macpb140, mac_state ) +static MACHINE_CONFIG_START( macpb140 ) MCFG_CPU_ADD("maincpu", M68030, C15M) MCFG_CPU_PROGRAM_MAP(macpb140_map) @@ -1543,7 +1543,7 @@ static MACHINE_CONFIG_START( macpb140, mac_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_ASC_ADD("asc", C15M, ASC_TYPE_ASC, WRITELINE(mac_state, mac_asc_irq)) + MCFG_ASC_ADD("asc", C15M, ASC, WRITELINE(mac_state, mac_asc_irq)) MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) @@ -1608,7 +1608,7 @@ static MACHINE_CONFIG_DERIVED( macpb170, macpb140 ) MCFG_RAM_EXTRA_OPTIONS("6M,8M") MACHINE_CONFIG_END -static MACHINE_CONFIG_START( macpb160, mac_state ) +static MACHINE_CONFIG_START( macpb160 ) MCFG_CPU_ADD("maincpu", M68030, 25000000) MCFG_CPU_PROGRAM_MAP(macpb160_map) @@ -1631,7 +1631,7 @@ static MACHINE_CONFIG_START( macpb160, mac_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_ASC_ADD("asc", C15M, ASC_TYPE_ASC, WRITELINE(mac_state, mac_asc_irq)) + MCFG_ASC_ADD("asc", C15M, ASC, WRITELINE(mac_state, mac_asc_irq)) MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) @@ -1724,7 +1724,7 @@ static MACHINE_CONFIG_DERIVED( macclas2, maclc ) MCFG_SCREEN_VISIBLE_AREA(0, MAC_H_VIS-1, 0, MAC_V_VIS-1) MCFG_SCREEN_UPDATE_DRIVER(mac_state, screen_update_macrbv) - MCFG_ASC_REPLACE("asc", C15M, ASC_TYPE_EAGLE, WRITELINE(mac_state, mac_asc_irq)) + MCFG_ASC_REPLACE("asc", C15M, EAGLE, WRITELINE(mac_state, mac_asc_irq)) MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) @@ -1814,7 +1814,7 @@ static MACHINE_CONFIG_DERIVED( maciisi, macii ) MCFG_QUANTUM_PERFECT_CPU("maincpu") MACHINE_CONFIG_END -static MACHINE_CONFIG_START( pwrmac, mac_state ) +static MACHINE_CONFIG_START( pwrmac ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", PPC601, 60000000) @@ -1882,7 +1882,7 @@ static MACHINE_CONFIG_START( pwrmac, mac_state ) MCFG_CUDA_VIA_DATA_CALLBACK(DEVWRITELINE("via6522_0", via6522_device, write_cb2)) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( macqd700, mac_state ) +static MACHINE_CONFIG_START( macqd700 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68040, 25000000) MCFG_CPU_PROGRAM_MAP(quadra700_map) @@ -1902,7 +1902,7 @@ static MACHINE_CONFIG_START( macqd700, mac_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_ASC_ADD("asc", C15M, ASC_TYPE_EASC, WRITELINE(mac_state, mac_asc_irq)) + MCFG_ASC_ADD("asc", C15M, EASC, WRITELINE(mac_state, mac_asc_irq)) MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) @@ -2309,37 +2309,37 @@ ROM_START( maclc520 ) ROM_LOAD( "ede66cbd.rom", 0x000000, 0x100000, CRC(a893cb0f) SHA1(c54ee2f45020a4adeb7451adce04cd6e5fb69790) ) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ -//COMP( 1983, mactw, 0, 0, mac128k, macplus, mac_state, mac128k512k, "Apple Computer", "Macintosh (4.3T Prototype)", MACHINE_NOT_WORKING ) -COMP( 1987, macse, 0, 0, macse, macadb, mac_state, macse, "Apple Computer", "Macintosh SE", 0 ) -COMP( 1987, macsefd, 0, 0, macse, macadb, mac_state, macse, "Apple Computer", "Macintosh SE (FDHD)", 0 ) -COMP( 1987, macii, 0, 0, macii, macadb, mac_state, macii, "Apple Computer", "Macintosh II", 0 ) -COMP( 1987, maciihmu, macii, 0, maciihmu, macadb, mac_state, macii, "Apple Computer", "Macintosh II (w/o 68851 MMU)", 0 ) -COMP( 1988, mac2fdhd, 0, 0, macii, macadb, mac_state, maciifdhd, "Apple Computer", "Macintosh II (FDHD)", 0 ) -COMP( 1988, maciix, mac2fdhd, 0, maciix, macadb, mac_state, maciix, "Apple Computer", "Macintosh IIx", 0 ) -COMP( 1989, macprtb, 0, 0, macprtb, macadb, mac_state, macprtb, "Apple Computer", "Macintosh Portable", MACHINE_NOT_WORKING ) -COMP( 1989, macse30, mac2fdhd, 0, macse30, macadb, mac_state, macse30, "Apple Computer", "Macintosh SE/30", 0 ) -COMP( 1989, maciicx, mac2fdhd, 0, maciicx, macadb, mac_state, maciicx, "Apple Computer", "Macintosh IIcx", 0 ) -COMP( 1989, maciici, 0, 0, maciici, maciici, mac_state, maciici, "Apple Computer", "Macintosh IIci", 0 ) -COMP( 1990, maciifx, 0, 0, maciifx, macadb, mac_state, maciifx, "Apple Computer", "Macintosh IIfx", MACHINE_NOT_WORKING ) -COMP( 1990, macclasc, 0, 0, macclasc, macadb, mac_state, macclassic, "Apple Computer", "Macintosh Classic", 0 ) -COMP( 1990, maclc, 0, 0, maclc, maciici, mac_state, maclc, "Apple Computer", "Macintosh LC", MACHINE_IMPERFECT_SOUND ) -COMP( 1990, maciisi, 0, 0, maciisi, maciici, mac_state, maciisi, "Apple Computer", "Macintosh IIsi", 0 ) -COMP( 1991, macpb100, 0, 0, macprtb, macadb, mac_state, macprtb, "Apple Computer", "Macintosh PowerBook 100", MACHINE_NOT_WORKING ) -COMP( 1991, macpb140, 0, 0, macpb140, macadb, mac_state, macpb140, "Apple Computer", "Macintosh PowerBook 140", MACHINE_NOT_WORKING ) -COMP( 1991, macpb170, macpb140, 0, macpb170, macadb, mac_state, macpb140, "Apple Computer", "Macintosh PowerBook 170", MACHINE_NOT_WORKING ) -COMP( 1991, macqd700, macpb140, 0, macqd700, macadb, mac_state, macquadra700, "Apple Computer", "Macintosh Quadra 700", MACHINE_NOT_WORKING ) -COMP( 1991, macclas2, 0, 0, macclas2, macadb, mac_state, macclassic2, "Apple Computer", "Macintosh Classic II", MACHINE_IMPERFECT_SOUND ) -COMP( 1991, maclc2, 0, 0, maclc2, maciici, mac_state, maclc2, "Apple Computer", "Macintosh LC II", MACHINE_IMPERFECT_SOUND ) -COMP( 1992, macpb145, macpb140, 0, macpb145, macadb, mac_state, macpb140, "Apple Computer", "Macintosh PowerBook 145", MACHINE_NOT_WORKING ) -COMP( 1992, macpb160, 0, 0, macpb160, macadb, mac_state, macpb160, "Apple Computer", "Macintosh PowerBook 160", MACHINE_NOT_WORKING ) -COMP( 1992, macpb180, macpb160, 0, macpb180, macadb, mac_state, macpb160, "Apple Computer", "Macintosh PowerBook 180", MACHINE_NOT_WORKING ) -COMP( 1992, macpb180c,macpb160, 0, macpb180c,macadb, mac_state, macpb160, "Apple Computer", "Macintosh PowerBook 180c", MACHINE_NOT_WORKING ) -COMP( 1992, macpd210, 0, 0, macpd210, macadb, mac_state, macpd210, "Apple Computer", "Macintosh PowerBook Duo 210", MACHINE_NOT_WORKING ) -COMP( 1993, maccclas, 0, 0, maccclas, macadb, mac_state, maclrcclassic,"Apple Computer", "Macintosh Color Classic", MACHINE_NOT_WORKING ) -COMP( 1992, macpb145b,macpb140, 0, macpb170, macadb, mac_state, macpb140, "Apple Computer", "Macintosh PowerBook 145B", MACHINE_NOT_WORKING ) -COMP( 1993, maclc3, 0, 0, maclc3, maciici, mac_state, maclc3, "Apple Computer", "Macintosh LC III", MACHINE_IMPERFECT_SOUND ) -COMP( 1993, maciivx, 0, 0, maciivx, maciici, mac_state, maciivx, "Apple Computer", "Macintosh IIvx", MACHINE_IMPERFECT_SOUND ) -COMP( 1993, maciivi, maciivx, 0, maciivi, maciici, mac_state, maciivx, "Apple Computer", "Macintosh IIvi", MACHINE_IMPERFECT_SOUND ) -COMP( 1993, maclc520, 0, 0, maclc520, maciici, mac_state, maclc520, "Apple Computer", "Macintosh LC 520", MACHINE_NOT_WORKING ) -COMP( 1994, pmac6100, 0, 0, pwrmac, macadb, mac_state, macpm6100, "Apple Computer", "Power Macintosh 6100/60", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME */ +//COMP( 1983, mactw, 0, 0, mac128k, macplus, mac_state, mac128k512k, "Apple Computer", "Macintosh (4.3T Prototype)", MACHINE_NOT_WORKING ) +COMP( 1987, macse, 0, 0, macse, macadb, mac_state, macse, "Apple Computer", "Macintosh SE", 0 ) +COMP( 1987, macsefd, 0, 0, macse, macadb, mac_state, macse, "Apple Computer", "Macintosh SE (FDHD)", 0 ) +COMP( 1987, macii, 0, 0, macii, macadb, mac_state, macii, "Apple Computer", "Macintosh II", 0 ) +COMP( 1987, maciihmu, macii, 0, maciihmu, macadb, mac_state, macii, "Apple Computer", "Macintosh II (w/o 68851 MMU)", 0 ) +COMP( 1988, mac2fdhd, 0, 0, macii, macadb, mac_state, maciifdhd, "Apple Computer", "Macintosh II (FDHD)", 0 ) +COMP( 1988, maciix, mac2fdhd, 0, maciix, macadb, mac_state, maciix, "Apple Computer", "Macintosh IIx", 0 ) +COMP( 1989, macprtb, 0, 0, macprtb, macadb, mac_state, macprtb, "Apple Computer", "Macintosh Portable", MACHINE_NOT_WORKING ) +COMP( 1989, macse30, mac2fdhd, 0, macse30, macadb, mac_state, macse30, "Apple Computer", "Macintosh SE/30", 0 ) +COMP( 1989, maciicx, mac2fdhd, 0, maciicx, macadb, mac_state, maciicx, "Apple Computer", "Macintosh IIcx", 0 ) +COMP( 1989, maciici, 0, 0, maciici, maciici, mac_state, maciici, "Apple Computer", "Macintosh IIci", 0 ) +COMP( 1990, maciifx, 0, 0, maciifx, macadb, mac_state, maciifx, "Apple Computer", "Macintosh IIfx", MACHINE_NOT_WORKING ) +COMP( 1990, macclasc, 0, 0, macclasc, macadb, mac_state, macclassic, "Apple Computer", "Macintosh Classic", 0 ) +COMP( 1990, maclc, 0, 0, maclc, maciici, mac_state, maclc, "Apple Computer", "Macintosh LC", MACHINE_IMPERFECT_SOUND ) +COMP( 1990, maciisi, 0, 0, maciisi, maciici, mac_state, maciisi, "Apple Computer", "Macintosh IIsi", 0 ) +COMP( 1991, macpb100, 0, 0, macprtb, macadb, mac_state, macprtb, "Apple Computer", "Macintosh PowerBook 100", MACHINE_NOT_WORKING ) +COMP( 1991, macpb140, 0, 0, macpb140, macadb, mac_state, macpb140, "Apple Computer", "Macintosh PowerBook 140", MACHINE_NOT_WORKING ) +COMP( 1991, macpb170, macpb140, 0, macpb170, macadb, mac_state, macpb140, "Apple Computer", "Macintosh PowerBook 170", MACHINE_NOT_WORKING ) +COMP( 1991, macqd700, macpb140, 0, macqd700, macadb, mac_state, macquadra700, "Apple Computer", "Macintosh Quadra 700", MACHINE_NOT_WORKING ) +COMP( 1991, macclas2, 0, 0, macclas2, macadb, mac_state, macclassic2, "Apple Computer", "Macintosh Classic II", MACHINE_IMPERFECT_SOUND ) +COMP( 1991, maclc2, 0, 0, maclc2, maciici, mac_state, maclc2, "Apple Computer", "Macintosh LC II", MACHINE_IMPERFECT_SOUND ) +COMP( 1992, macpb145, macpb140, 0, macpb145, macadb, mac_state, macpb140, "Apple Computer", "Macintosh PowerBook 145", MACHINE_NOT_WORKING ) +COMP( 1992, macpb160, 0, 0, macpb160, macadb, mac_state, macpb160, "Apple Computer", "Macintosh PowerBook 160", MACHINE_NOT_WORKING ) +COMP( 1992, macpb180, macpb160, 0, macpb180, macadb, mac_state, macpb160, "Apple Computer", "Macintosh PowerBook 180", MACHINE_NOT_WORKING ) +COMP( 1992, macpb180c,macpb160, 0, macpb180c,macadb, mac_state, macpb160, "Apple Computer", "Macintosh PowerBook 180c", MACHINE_NOT_WORKING ) +COMP( 1992, macpd210, 0, 0, macpd210, macadb, mac_state, macpd210, "Apple Computer", "Macintosh PowerBook Duo 210", MACHINE_NOT_WORKING ) +COMP( 1993, maccclas, 0, 0, maccclas, macadb, mac_state, maclrcclassic,"Apple Computer", "Macintosh Color Classic", MACHINE_NOT_WORKING ) +COMP( 1992, macpb145b,macpb140, 0, macpb170, macadb, mac_state, macpb140, "Apple Computer", "Macintosh PowerBook 145B", MACHINE_NOT_WORKING ) +COMP( 1993, maclc3, 0, 0, maclc3, maciici, mac_state, maclc3, "Apple Computer", "Macintosh LC III", MACHINE_IMPERFECT_SOUND ) +COMP( 1993, maciivx, 0, 0, maciivx, maciici, mac_state, maciivx, "Apple Computer", "Macintosh IIvx", MACHINE_IMPERFECT_SOUND ) +COMP( 1993, maciivi, maciivx, 0, maciivi, maciici, mac_state, maciivx, "Apple Computer", "Macintosh IIvi", MACHINE_IMPERFECT_SOUND ) +COMP( 1993, maclc520, 0, 0, maclc520, maciici, mac_state, maclc520, "Apple Computer", "Macintosh LC 520", MACHINE_NOT_WORKING ) +COMP( 1994, pmac6100, 0, 0, pwrmac, macadb, mac_state, macpm6100, "Apple Computer", "Power Macintosh 6100/60", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/mac128.cpp b/src/mame/drivers/mac128.cpp index f2c202bc45e..0da4c911a62 100644 --- a/src/mame/drivers/mac128.cpp +++ b/src/mame/drivers/mac128.cpp @@ -1327,7 +1327,7 @@ static const floppy_interface mac_floppy_interface = "floppy_3_5" }; -static MACHINE_CONFIG_START( mac512ke, mac128_state ) +static MACHINE_CONFIG_START( mac512ke ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, C7M) /* 7.8336 MHz */ MCFG_CPU_PROGRAM_MAP(mac512ke_map) diff --git a/src/mame/drivers/macp.cpp b/src/mame/drivers/macp.cpp index 568ac10f1af..9a8e29d0e09 100644 --- a/src/mame/drivers/macp.cpp +++ b/src/mame/drivers/macp.cpp @@ -44,7 +44,7 @@ INPUT_PORTS_END static INPUT_PORTS_START( cicplay ) INPUT_PORTS_END -static MACHINE_CONFIG_START( macp, macp_state ) +static MACHINE_CONFIG_START( macp ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 2500000) MCFG_CPU_PROGRAM_MAP(macp_map) @@ -131,14 +131,14 @@ ROM_START(glxplay2) ROM_END // MAC S.A. pinballs -GAME( 1986, macgalxy, 0, macp0, macp, driver_device, 0, ROT0, "MAC S.A.", "MAC's Galaxy", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 1987, spctrain, 0, macp, macp, driver_device, 0, ROT0, "MAC S.A.", "Space Train (Pinball)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 1988, spcpnthr, 0, macpmsm, macp, driver_device, 0, ROT0, "MAC S.A.", "Space Panther", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 19??, mac_1808, 0, macpmsm, macp, driver_device, 0, ROT0, "MAC S.A.", "Unknown Game (MAC #1808)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 1995, macjungn, 0, macpmsm, macp, driver_device, 0, ROT0, "MAC S.A.", "MAC Jungle (New version)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 1996, nbamac, 0, macpmsm, macp, driver_device, 0, ROT0, "MAC S.A.", "NBA MAC", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 1986, macgalxy, 0, macp0, macp, macp_state, 0, ROT0, "MAC S.A.", "MAC's Galaxy", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 1987, spctrain, 0, macp, macp, macp_state, 0, ROT0, "MAC S.A.", "Space Train (Pinball)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 1988, spcpnthr, 0, macpmsm, macp, macp_state, 0, ROT0, "MAC S.A.", "Space Panther", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 19??, mac_1808, 0, macpmsm, macp, macp_state, 0, ROT0, "MAC S.A.", "Unknown Game (MAC #1808)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 1995, macjungn, 0, macpmsm, macp, macp_state, 0, ROT0, "MAC S.A.", "MAC Jungle (New version)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 1996, nbamac, 0, macpmsm, macp, macp_state, 0, ROT0, "MAC S.A.", "NBA MAC", MACHINE_IS_SKELETON_MECHANICAL ) // CICPlay pinballs -GAME( 1985, glxplay, 0, macp0, cicplay, driver_device, 0, ROT0, "CICPlay", "Galaxy Play", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 1986, kidnap, 0, macp0, cicplay, driver_device, 0, ROT0, "CICPlay", "Kidnap", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 1987, glxplay2, 0, macp0, cicplay, driver_device, 0, ROT0, "CICPlay", "Galaxy Play 2", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 1985, glxplay, 0, macp0, cicplay, macp_state, 0, ROT0, "CICPlay", "Galaxy Play", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 1986, kidnap, 0, macp0, cicplay, macp_state, 0, ROT0, "CICPlay", "Kidnap", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 1987, glxplay2, 0, macp0, cicplay, macp_state, 0, ROT0, "CICPlay", "Galaxy Play 2", MACHINE_IS_SKELETON_MECHANICAL ) diff --git a/src/mame/drivers/macpci.cpp b/src/mame/drivers/macpci.cpp index e76ed9d4dac..a2e325b925d 100644 --- a/src/mame/drivers/macpci.cpp +++ b/src/mame/drivers/macpci.cpp @@ -89,7 +89,7 @@ uint32_t macpci_state::screen_update_pippin(screen_device &screen, bitmap_ind16 return 0; } -static MACHINE_CONFIG_START( pippin, macpci_state ) +static MACHINE_CONFIG_START( pippin ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", PPC603, 66000000) MCFG_CPU_PROGRAM_MAP(pippin_mem) @@ -167,5 +167,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1996, pippin, 0, 0, pippin, pippin, driver_device, 0, "Apple / Bandai", "Pippin @mark", MACHINE_NOT_WORKING) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +COMP( 1996, pippin, 0, 0, pippin, pippin, macpci_state, 0, "Apple / Bandai", "Pippin @mark", MACHINE_NOT_WORKING) diff --git a/src/mame/drivers/macrossp.cpp b/src/mame/drivers/macrossp.cpp index f1d7f4263ac..6da90c12abc 100644 --- a/src/mame/drivers/macrossp.cpp +++ b/src/mame/drivers/macrossp.cpp @@ -539,7 +539,7 @@ void macrossp_state::machine_reset() m_snd_toggle = 0; } -static MACHINE_CONFIG_START( macrossp, macrossp_state ) +static MACHINE_CONFIG_START( macrossp ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68EC020, 50000000/2) /* 25 MHz */ diff --git a/src/mame/drivers/macs.cpp b/src/mame/drivers/macs.cpp index 709a24aff47..dbdabaa62aa 100644 --- a/src/mame/drivers/macs.cpp +++ b/src/mame/drivers/macs.cpp @@ -486,7 +486,7 @@ ST0016_DMA_OFFS_CB(macs_state::dma_offset) return m_cart_bank; } -static MACHINE_CONFIG_START( macs, macs_state ) +static MACHINE_CONFIG_START( macs ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",ST0016_CPU,8000000) /* 8 MHz ? */ MCFG_CPU_PROGRAM_MAP(macs_mem) @@ -767,11 +767,11 @@ DRIVER_INIT_MEMBER(macs_state,kisekaem) } -GAME( 1995, macsbios, 0, macs, macs_m, macs_state, macs, ROT0, "I'Max", "Multi Amenity Cassette System BIOS", MACHINE_IS_BIOS_ROOT | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) -GAME( 1995, mac2bios, 0, macs, macs_m, macs_state, macs2, ROT0, "I'Max", "Multi Amenity Cassette System 2 BIOS", MACHINE_IS_BIOS_ROOT | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) +GAME( 1995, macsbios, 0, macs, macs_m, macs_state, macs, ROT0, "I'Max", "Multi Amenity Cassette System BIOS", MACHINE_IS_BIOS_ROOT | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) +GAME( 1995, mac2bios, 0, macs, macs_m, macs_state, macs2, ROT0, "I'Max", "Multi Amenity Cassette System 2 BIOS", MACHINE_IS_BIOS_ROOT | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) -GAME( 1995, kisekaem, macsbios, macs, kisekaem, macs_state, kisekaem, ROT0, "I'Max", "Kisekae Mahjong", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND ) -GAME( 1995, kisekaeh, macsbios, macs, macs_h, macs_state, kisekaeh, ROT0, "I'Max", "Kisekae Hanafuda", MACHINE_NOT_WORKING |MACHINE_IMPERFECT_SOUND) -GAME( 1996, cultname, macsbios, macs, macs_m, macs_state, macs, ROT0, "I'Max", "Seimei-Kantei-Meimei-Ki Cult Name", MACHINE_NOT_WORKING |MACHINE_IMPERFECT_SOUND) -GAME( 1999, yuka, macsbios, macs, macs_h, macs_state, macs2, ROT0, "Yubis / T.System", "Yu-Ka", 0 ) -GAME( 1999, yujan, macsbios, macs, macs_m, macs_state, macs2, ROT0, "Yubis / T.System", "Yu-Jan", 0 ) +GAME( 1995, kisekaem, macsbios, macs, kisekaem, macs_state, kisekaem, ROT0, "I'Max", "Kisekae Mahjong", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) +GAME( 1995, kisekaeh, macsbios, macs, macs_h, macs_state, kisekaeh, ROT0, "I'Max", "Kisekae Hanafuda", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) +GAME( 1996, cultname, macsbios, macs, macs_m, macs_state, macs, ROT0, "I'Max", "Seimei-Kantei-Meimei-Ki Cult Name", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) +GAME( 1999, yuka, macsbios, macs, macs_h, macs_state, macs2, ROT0, "Yubis / T.System", "Yu-Ka", 0 ) +GAME( 1999, yujan, macsbios, macs, macs_m, macs_state, macs2, ROT0, "Yubis / T.System", "Yu-Jan", 0 ) diff --git a/src/mame/drivers/madalien.cpp b/src/mame/drivers/madalien.cpp index ba4a1054aae..6586f1144e2 100644 --- a/src/mame/drivers/madalien.cpp +++ b/src/mame/drivers/madalien.cpp @@ -162,7 +162,7 @@ static INPUT_PORTS_START( madalien ) INPUT_PORTS_END -static MACHINE_CONFIG_START( madalien, madalien_state ) +static MACHINE_CONFIG_START( madalien ) /* main CPU */ MCFG_CPU_ADD("maincpu", M6502, MADALIEN_MAIN_CLOCK / 8) /* 1324kHz */ @@ -464,6 +464,6 @@ ROM_START( madalienb ) ROM_END /* set parent machine inp init */ -GAME( 1980, madalien, 0, madalien, madalien, driver_device, 0, ROT270, "Data East Corporation", "Mad Alien (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1980, madaliena,madalien, madalien, madalien, driver_device, 0, ROT270, "Data East Corporation", "Mad Alien (set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1980, madalienb,madalien, madalien, madalien, driver_device, 0, ROT270, "Data East Corporation", "Mad Alien (set 2, alt gfx)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, madalien, 0, madalien, madalien, madalien_state, 0, ROT270, "Data East Corporation", "Mad Alien (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, madaliena,madalien, madalien, madalien, madalien_state, 0, ROT270, "Data East Corporation", "Mad Alien (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, madalienb,madalien, madalien, madalien, madalien_state, 0, ROT270, "Data East Corporation", "Mad Alien (set 2, alt gfx)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/madmotor.cpp b/src/mame/drivers/madmotor.cpp index dad6e18407b..d81b46b4b0d 100644 --- a/src/mame/drivers/madmotor.cpp +++ b/src/mame/drivers/madmotor.cpp @@ -232,7 +232,7 @@ void madmotor_state::machine_reset() m_flipscreen = 0; } -static MACHINE_CONFIG_START( madmotor, madmotor_state ) +static MACHINE_CONFIG_START( madmotor ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 12000000) /* Custom chip 59, 24 MHz crystal */ @@ -286,10 +286,10 @@ static MACHINE_CONFIG_START( madmotor, madmotor_state ) MCFG_SOUND_ROUTE(0, "mono", 0.45) MCFG_SOUND_ROUTE(1, "mono", 0.45) - MCFG_OKIM6295_ADD("oki1", 1023924, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki1", 1023924, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) - MCFG_OKIM6295_ADD("oki2", 2047848, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki2", 2047848, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) MACHINE_CONFIG_END diff --git a/src/mame/drivers/magic10.cpp b/src/mame/drivers/magic10.cpp index 0057e4db9cc..477a5de51ae 100644 --- a/src/mame/drivers/magic10.cpp +++ b/src/mame/drivers/magic10.cpp @@ -737,7 +737,7 @@ GFXDECODE_END * Machine Drivers * ****************************/ -static MACHINE_CONFIG_START( magic10, magic10_state ) +static MACHINE_CONFIG_START( magic10 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, CPU_CLOCK) // 10 MHz. MCFG_CPU_PROGRAM_MAP(magic10_map) @@ -760,7 +760,7 @@ static MACHINE_CONFIG_START( magic10, magic10_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", 1056000, OKIM6295_PIN7_HIGH) /* clock frequency & pin 7 not verified */ + MCFG_OKIM6295_ADD("oki", 1056000, PIN7_HIGH) /* clock frequency & pin 7 not verified */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -1492,7 +1492,7 @@ DRIVER_INIT_MEMBER(magic10_state, altaten) * Game Drivers * ******************************/ -/* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS LAYOUT */ +// YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS LAYOUT GAMEL( 1995, magic10, 0, magic10, magic10, magic10_state, magic10, ROT0, "A.W.P. Games", "Magic's 10 (ver. 16.55)", 0, layout_sgsafari ) GAMEL( 1995, magic10a, magic10, magic10, magic10, magic10_state, magic10, ROT0, "A.W.P. Games", "Magic's 10 (ver. 16.54)", 0, layout_sgsafari ) GAMEL( 1995, magic10b, magic10, magic10a, magic10, magic10_state, magic10, ROT0, "A.W.P. Games", "Magic's 10 (ver. 16.45)", 0, layout_sgsafari ) diff --git a/src/mame/drivers/magicard.cpp b/src/mame/drivers/magicard.cpp index 2ff9031ceb1..1f481203b9d 100644 --- a/src/mame/drivers/magicard.cpp +++ b/src/mame/drivers/magicard.cpp @@ -751,7 +751,7 @@ static ADDRESS_MAP_START( ramdac_map, AS_0, 8, magicard_state ) ADDRESS_MAP_END -static MACHINE_CONFIG_START( magicard, magicard_state ) +static MACHINE_CONFIG_START( magicard ) MCFG_CPU_ADD("maincpu", SCC68070, CLOCK_A / 2) /* SCC-68070 CCA84 datasheet */ MCFG_CPU_PROGRAM_MAP(magicard_mem) MCFG_CPU_VBLANK_INT_DRIVER("screen", magicard_state, magicard_irq) /* no interrupts? (it erases the vectors..) */ @@ -902,7 +902,7 @@ DRIVER_INIT_MEMBER(magicard_state, magicard) * Game Drivers * *************************/ -/* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS... */ +// YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS GAME( 199?, magicard, 0, magicard, magicard, magicard_state, magicard, ROT0, "Impera", "Magic Card (set 1)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING ) GAME( 199?, magicarda, magicard, magicard, magicard, magicard_state, magicard, ROT0, "Impera", "Magic Card (set 2)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/magicfly.cpp b/src/mame/drivers/magicfly.cpp index ee116e13b3a..fec2be3368a 100644 --- a/src/mame/drivers/magicfly.cpp +++ b/src/mame/drivers/magicfly.cpp @@ -932,7 +932,7 @@ GFXDECODE_END * Machine Drivers * *********************************************/ -static MACHINE_CONFIG_START( magicfly, magicfly_state ) +static MACHINE_CONFIG_START( magicfly ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, MASTER_CLOCK / 16) /* guess */ @@ -1056,7 +1056,7 @@ ROM_END * Game Drivers * *********************************************/ -/* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS... */ -GAME( 198?, magicfly, 0, magicfly, magicfly, driver_device, 0, ROT0, "P&A Games", "Magic Fly", 0 ) -GAME( 198?, 7mezzo, 0, 7mezzo, 7mezzo, driver_device, 0, ROT0, "", "7 e Mezzo", 0 ) -GAME( 198?, bchance, 0, bchance, bchance, driver_device, 0, ROT0, "", "Bonne Chance! (French/English)", MACHINE_IMPERFECT_GRAPHICS ) +// YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS +GAME( 198?, magicfly, 0, magicfly, magicfly, magicfly_state, 0, ROT0, "P&A Games", "Magic Fly", 0 ) +GAME( 198?, 7mezzo, 0, 7mezzo, 7mezzo, magicfly_state, 0, ROT0, "", "7 e Mezzo", 0 ) +GAME( 198?, bchance, 0, bchance, bchance, magicfly_state, 0, ROT0, "", "Bonne Chance! (French/English)", MACHINE_IMPERFECT_GRAPHICS ) diff --git a/src/mame/drivers/magictg.cpp b/src/mame/drivers/magictg.cpp index feede417431..c5c8b27649a 100644 --- a/src/mame/drivers/magictg.cpp +++ b/src/mame/drivers/magictg.cpp @@ -897,7 +897,7 @@ INPUT_PORTS_END * *************************************/ -static MACHINE_CONFIG_START( magictg, magictg_state ) +static MACHINE_CONFIG_START( magictg ) MCFG_CPU_ADD("mips", R5000BE, 150000000) /* TODO: CPU type and clock are unknown */ //MCFG_MIPS3_ICACHE_SIZE(16384) /* TODO: Unknown */ //MCFG_MIPS3_DCACHE_SIZE(16384) /* TODO: Unknown */ @@ -1013,5 +1013,5 @@ ROM_END * *************************************/ -GAME( 1997, magictg, 0, magictg, magictg, driver_device, 0, ROT0, "Acclaim", "Magic the Gathering: Armageddon (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -GAME( 1997, magictga, magictg, magictg, magictg, driver_device, 0, ROT0, "Acclaim", "Magic the Gathering: Armageddon (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +GAME( 1997, magictg, 0, magictg, magictg, magictg_state, 0, ROT0, "Acclaim", "Magic the Gathering: Armageddon (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +GAME( 1997, magictga, magictg, magictg, magictg, magictg_state, 0, ROT0, "Acclaim", "Magic the Gathering: Armageddon (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/magmax.cpp b/src/mame/drivers/magmax.cpp index fb26b84c386..56952be50bb 100644 --- a/src/mame/drivers/magmax.cpp +++ b/src/mame/drivers/magmax.cpp @@ -334,7 +334,7 @@ static GFXDECODE_START( magmax ) GFXDECODE_END -static MACHINE_CONFIG_START( magmax, magmax_state ) +static MACHINE_CONFIG_START( magmax ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz/2) /* verified on pcb */ @@ -426,4 +426,4 @@ ROM_START( magmax ) ROM_END -GAME( 1985, magmax, 0, magmax, magmax, driver_device, 0, ROT0, "Nichibutsu", "Mag Max", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, magmax, 0, magmax, magmax, magmax_state, 0, ROT0, "Nichibutsu", "Mag Max", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/magnum.cpp b/src/mame/drivers/magnum.cpp index 773f44273d7..33ce723634a 100644 --- a/src/mame/drivers/magnum.cpp +++ b/src/mame/drivers/magnum.cpp @@ -16,20 +16,23 @@ class magnum_state : public driver_device { public: - magnum_state(const machine_config &mconfig, device_type type, const char *tag) : - driver_device(mconfig, type, tag), - m_palette(*this, "palette"), - m_cgrom(*this, "cgrom"), - m_beep(*this, "beep") - {} + magnum_state(const machine_config &mconfig, device_type type, const char *tag) + : driver_device(mconfig, type, tag) + , m_palette(*this, "palette") + , m_cgrom(*this, "cgrom") + , m_beep(*this, "beep") + { + } DECLARE_READ8_MEMBER(lcd_r); DECLARE_WRITE8_MEMBER(lcd_w); DECLARE_WRITE8_MEMBER(beep_w); u32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); + protected: virtual void machine_reset() override; virtual void machine_start() override; + private: required_device m_palette; required_memory_region m_cgrom; @@ -140,7 +143,7 @@ static ADDRESS_MAP_START( magnum_io, AS_IO, 16, magnum_state ) AM_RANGE(0x0080, 0x008f) AM_DEVREADWRITE8("rtc", cdp1879_device, read, write, 0x00ff) ADDRESS_MAP_END -static MACHINE_CONFIG_START( magnum, magnum_state ) +static MACHINE_CONFIG_START( magnum ) MCFG_CPU_ADD("maincpu", I80186, XTAL_12MHz / 2) MCFG_CPU_PROGRAM_MAP(magnum_map) MCFG_CPU_IO_MAP(magnum_io) @@ -181,4 +184,4 @@ ROM_START( magnum ) ROM_LOAD("hd44780_a00.bin", 0x0000, 0x1000, BAD_DUMP CRC(01d108e2) SHA1(bc0cdf0c9ba895f22e183c7bd35a3f655f2ca96f)) ROM_END -COMP( 1983, magnum, 0, 0, magnum, 0, driver_device, 0, "Dulmont", "Magnum", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) +COMP( 1983, magnum, 0, 0, magnum, 0, magnum_state, 0, "Dulmont", "Magnum", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) diff --git a/src/mame/drivers/magtouch.cpp b/src/mame/drivers/magtouch.cpp index 5fe05796c7a..c4518a6f057 100644 --- a/src/mame/drivers/magtouch.cpp +++ b/src/mame/drivers/magtouch.cpp @@ -182,7 +182,7 @@ static MACHINE_CONFIG_FRAGMENT( magtouch_sb_conf ) MCFG_DEVICE_SLOT_INTERFACE(pc_joysticks, nullptr, true) // remove joystick MACHINE_CONFIG_END -static MACHINE_CONFIG_START( magtouch, magtouch_state ) +static MACHINE_CONFIG_START( magtouch ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I386, 14318180*2) /* I386 ?? Mhz */ MCFG_CPU_PROGRAM_MAP(magtouch_map) @@ -243,4 +243,4 @@ ROM_START(magtouch) ROM_FILL(0x511ba, 1, 0xeb) // skip csum ROM_END -GAME( 1995, magtouch, 0, magtouch, magtouch, driver_device, 0, ROT0, "Micro Manufacturing", "Magical Touch", MACHINE_UNEMULATED_PROTECTION ) +GAME( 1995, magtouch, 0, magtouch, magtouch, magtouch_state, 0, ROT0, "Micro Manufacturing", "Magical Touch", MACHINE_UNEMULATED_PROTECTION ) diff --git a/src/mame/drivers/mainevt.cpp b/src/mame/drivers/mainevt.cpp index 9909d64fa3a..03feedd4207 100644 --- a/src/mame/drivers/mainevt.cpp +++ b/src/mame/drivers/mainevt.cpp @@ -406,7 +406,7 @@ INTERRUPT_GEN_MEMBER(mainevt_state::devstors_sound_timer_irq) device.execute().set_input_line(0, HOLD_LINE); } -static MACHINE_CONFIG_START( mainevt, mainevt_state ) +static MACHINE_CONFIG_START( mainevt ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", HD6309, 3000000*4) /* ?? */ @@ -454,7 +454,7 @@ static MACHINE_CONFIG_START( mainevt, mainevt_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( devstors, mainevt_state ) +static MACHINE_CONFIG_START( devstors ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", HD6309, 3000000*4) /* ?? */ @@ -720,11 +720,11 @@ ROM_END -GAME( 1988, mainevt, 0, mainevt, mainevt, driver_device, 0, ROT0, "Konami", "The Main Event (4 Players ver. Y)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, mainevto, mainevt, mainevt, mainevt, driver_device, 0, ROT0, "Konami", "The Main Event (4 Players ver. F)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, mainevt2p,mainevt, mainevt, mainev2p, driver_device, 0, ROT0, "Konami", "The Main Event (2 Players ver. X)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, ringohja, mainevt, mainevt, mainev2p, driver_device, 0, ROT0, "Konami", "Ring no Ohja (Japan 2 Players ver. N)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, devstors, 0, devstors, devstors, driver_device, 0, ROT90, "Konami", "Devastators (ver. Z)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, devstors2,devstors, devstors, devstor2, driver_device, 0, ROT90, "Konami", "Devastators (ver. X)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, devstors3,devstors, devstors, devstors, driver_device, 0, ROT90, "Konami", "Devastators (ver. V)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, garuka, devstors, devstors, devstor2, driver_device, 0, ROT90, "Konami", "Garuka (Japan ver. W)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, mainevt, 0, mainevt, mainevt, mainevt_state, 0, ROT0, "Konami", "The Main Event (4 Players ver. Y)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, mainevto, mainevt, mainevt, mainevt, mainevt_state, 0, ROT0, "Konami", "The Main Event (4 Players ver. F)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, mainevt2p,mainevt, mainevt, mainev2p, mainevt_state, 0, ROT0, "Konami", "The Main Event (2 Players ver. X)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, ringohja, mainevt, mainevt, mainev2p, mainevt_state, 0, ROT0, "Konami", "Ring no Ohja (Japan 2 Players ver. N)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, devstors, 0, devstors, devstors, mainevt_state, 0, ROT90, "Konami", "Devastators (ver. Z)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, devstors2,devstors, devstors, devstor2, mainevt_state, 0, ROT90, "Konami", "Devastators (ver. X)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, devstors3,devstors, devstors, devstors, mainevt_state, 0, ROT90, "Konami", "Devastators (ver. V)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, garuka, devstors, devstors, devstor2, mainevt_state, 0, ROT90, "Konami", "Garuka (Japan ver. W)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/mainsnk.cpp b/src/mame/drivers/mainsnk.cpp index cdb6ebc5575..23646543f57 100644 --- a/src/mame/drivers/mainsnk.cpp +++ b/src/mame/drivers/mainsnk.cpp @@ -389,7 +389,7 @@ GFXDECODE_END -static MACHINE_CONFIG_START( mainsnk, mainsnk_state ) +static MACHINE_CONFIG_START( mainsnk ) MCFG_CPU_ADD("maincpu", Z80, 3360000) MCFG_CPU_PROGRAM_MAP(main_map) @@ -491,5 +491,5 @@ ROM_START( canvas ) ROM_END -GAME( 1984, mainsnk, 0, mainsnk, mainsnk, driver_device, 0, ROT0, "SNK", "Main Event (1984)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, canvas, 0, mainsnk, canvas, driver_device, 0, ROT0, "SNK", "Canvas Croquis", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, mainsnk, 0, mainsnk, mainsnk, mainsnk_state, 0, ROT0, "SNK", "Main Event (1984)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, canvas, 0, mainsnk, canvas, mainsnk_state, 0, ROT0, "SNK", "Canvas Croquis", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/majorpkr.cpp b/src/mame/drivers/majorpkr.cpp index 12b871bd641..69c8bc63c0b 100644 --- a/src/mame/drivers/majorpkr.cpp +++ b/src/mame/drivers/majorpkr.cpp @@ -985,7 +985,7 @@ GFXDECODE_END * Machine Drivers * *************************/ -static MACHINE_CONFIG_START( majorpkr, majorpkr_state ) +static MACHINE_CONFIG_START( majorpkr ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, CPU_CLOCK) // 6 MHz. MCFG_CPU_PROGRAM_MAP(map) @@ -1026,7 +1026,7 @@ static MACHINE_CONFIG_START( majorpkr, majorpkr_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", OKI_CLOCK, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 verified. + MCFG_OKIM6295_ADD("oki", OKI_CLOCK, PIN7_HIGH) // clock frequency & pin 7 verified. MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END diff --git a/src/mame/drivers/malzak.cpp b/src/mame/drivers/malzak.cpp index bc92e18aacb..1b83286f986 100644 --- a/src/mame/drivers/malzak.cpp +++ b/src/mame/drivers/malzak.cpp @@ -299,7 +299,7 @@ void malzak_state::machine_reset() m_malzak_y = 0; } -static MACHINE_CONFIG_START( malzak, malzak_state ) +static MACHINE_CONFIG_START( malzak ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", S2650, 3800000/4) @@ -413,5 +413,5 @@ ROM_START( malzak2 ) ROM_END -GAME( 19??, malzak, 0, malzak, malzak, driver_device, 0, ROT0, "Kitronix", "Malzak", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 19??, malzak2, malzak, malzak2, malzak2, driver_device, 0, ROT0, "Kitronix", "Malzak II", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 19??, malzak, 0, malzak, malzak, malzak_state, 0, ROT0, "Kitronix", "Malzak", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 19??, malzak2, malzak, malzak2, malzak2, malzak_state, 0, ROT0, "Kitronix", "Malzak II", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/manohman.cpp b/src/mame/drivers/manohman.cpp index 08aff866efb..e0e42b5c6ff 100644 --- a/src/mame/drivers/manohman.cpp +++ b/src/mame/drivers/manohman.cpp @@ -140,10 +140,10 @@ #define SECONDARY_CLOCK XTAL_3_6864MHz -class _manohman_state : public driver_device +class manohman_state : public driver_device { public: - _manohman_state(const machine_config &mconfig, device_type type, const char *tag) + manohman_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), m_maincpu(*this, "maincpu") { } @@ -155,7 +155,7 @@ public: * Memory Map Definition * *********************************************/ -static ADDRESS_MAP_START( manohman_map, AS_PROGRAM, 16, _manohman_state ) +static ADDRESS_MAP_START( manohman_map, AS_PROGRAM, 16, manohman_state ) AM_RANGE(0x000000, 0x01ffff) AM_ROM AM_RANGE(0x100000, 0x100001) AM_NOP // smell to MAX696 watchdog... AM_RANGE(0x300000, 0x300001) AM_DEVWRITE8("saa", saa1099_device, data_w, 0x00ff) @@ -209,7 +209,7 @@ INPUT_PORTS_END * Machine Config * *********************************************/ -static MACHINE_CONFIG_START( manohman, _manohman_state ) +static MACHINE_CONFIG_START( manohman ) // basic machine hardware MCFG_CPU_ADD("maincpu", M68000, MASTER_CLOCK) // 8 MHz MCFG_CPU_PROGRAM_MAP(manohman_map) @@ -236,5 +236,5 @@ ROM_END * Game Drivers * *********************************************/ -/* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS... */ -GAME( 199?, manohman, 0, manohman, manohman, driver_device, 0, ROT0, "Merkur", "Mann, oh-Mann", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_REQUIRES_ARTWORK ) +// YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS +GAME( 199?, manohman, 0, manohman, manohman, manohman_state, 0, ROT0, "Merkur", "Mann, oh-Mann", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_REQUIRES_ARTWORK ) diff --git a/src/mame/drivers/mappy.cpp b/src/mame/drivers/mappy.cpp index def351c0926..0cae9597044 100644 --- a/src/mame/drivers/mappy.cpp +++ b/src/mame/drivers/mappy.cpp @@ -1707,17 +1707,17 @@ static MACHINE_CONFIG_FRAGMENT( superpac_common ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( superpac, mappy_state ) +static MACHINE_CONFIG_START( superpac ) MCFG_FRAGMENT_ADD(superpac_common) - MCFG_DEVICE_ADD("namcoio_1", NAMCO56XX, 0) + MCFG_DEVICE_ADD("namcoio_1", NAMCO_56XX, 0) MCFG_NAMCO56XX_IN_0_CB(IOPORT("COINS")) MCFG_NAMCO56XX_IN_1_CB(IOPORT("P1")) MCFG_NAMCO56XX_IN_2_CB(IOPORT("P2")) MCFG_NAMCO56XX_IN_3_CB(IOPORT("BUTTONS")) - MCFG_DEVICE_ADD("namcoio_2", NAMCO56XX, 0) + MCFG_DEVICE_ADD("namcoio_2", NAMCO_56XX, 0) MCFG_NAMCO56XX_IN_0_CB(READ8(mappy_state, dipB_mux)) MCFG_NAMCO56XX_IN_1_CB(READ8(mappy_state, dipA_l)) MCFG_NAMCO56XX_IN_2_CB(READ8(mappy_state, dipA_h)) @@ -1725,21 +1725,21 @@ static MACHINE_CONFIG_START( superpac, mappy_state ) MCFG_NAMCO56XX_OUT_0_CB(WRITE8(mappy_state, out_mux)) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( pacnpal, mappy_state ) +static MACHINE_CONFIG_START( pacnpal ) MCFG_FRAGMENT_ADD(superpac_common) MCFG_CPU_MODIFY("maincpu") MCFG_CPU_VBLANK_INT_DRIVER("screen", mappy_state, pacnpal_main_vblank_irq) // also update the custom I/O chips - MCFG_DEVICE_ADD("namcoio_1", NAMCO56XX, 0) + MCFG_DEVICE_ADD("namcoio_1", NAMCO_56XX, 0) MCFG_NAMCO56XX_IN_0_CB(IOPORT("COINS")) MCFG_NAMCO56XX_IN_1_CB(IOPORT("P1")) MCFG_NAMCO56XX_IN_2_CB(IOPORT("P2")) MCFG_NAMCO56XX_IN_3_CB(IOPORT("BUTTONS")) MCFG_NAMCO56XX_OUT_0_CB(WRITE8(mappy_state, out_lamps)) - MCFG_DEVICE_ADD("namcoio_2", NAMCO59XX, 0) + MCFG_DEVICE_ADD("namcoio_2", NAMCO_59XX, 0) MCFG_NAMCO59XX_IN_0_CB(READ8(mappy_state, dipB_mux)) MCFG_NAMCO59XX_IN_1_CB(READ8(mappy_state, dipA_l)) MCFG_NAMCO59XX_IN_2_CB(READ8(mappy_state, dipA_h)) @@ -1748,20 +1748,20 @@ static MACHINE_CONFIG_START( pacnpal, mappy_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( grobda, mappy_state ) +static MACHINE_CONFIG_START( grobda ) MCFG_FRAGMENT_ADD(superpac_common) MCFG_CPU_MODIFY("maincpu") MCFG_CPU_VBLANK_INT_DRIVER("screen", mappy_state, grobda_main_vblank_irq) // also update the custom I/O chips - MCFG_DEVICE_ADD("namcoio_1", NAMCO58XX, 0) + MCFG_DEVICE_ADD("namcoio_1", NAMCO_58XX, 0) MCFG_NAMCO58XX_IN_0_CB(IOPORT("COINS")) MCFG_NAMCO58XX_IN_1_CB(IOPORT("P1")) MCFG_NAMCO58XX_IN_2_CB(IOPORT("P2")) MCFG_NAMCO58XX_IN_3_CB(IOPORT("BUTTONS")) - MCFG_DEVICE_ADD("namcoio_2", NAMCO56XX, 0) + MCFG_DEVICE_ADD("namcoio_2", NAMCO_56XX, 0) MCFG_NAMCO56XX_IN_0_CB(READ8(mappy_state, dipB_mux)) MCFG_NAMCO56XX_IN_1_CB(READ8(mappy_state, dipA_l)) MCFG_NAMCO56XX_IN_2_CB(READ8(mappy_state, dipA_h)) @@ -1775,7 +1775,7 @@ static MACHINE_CONFIG_START( grobda, mappy_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( phozon, mappy_state ) +static MACHINE_CONFIG_START( phozon ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809, PIXEL_CLOCK/4) /* MAIN CPU */ @@ -1797,13 +1797,13 @@ static MACHINE_CONFIG_START( phozon, mappy_state ) MCFG_MACHINE_START_OVERRIDE(mappy_state,mappy) MCFG_MACHINE_RESET_OVERRIDE(mappy_state,phozon) - MCFG_DEVICE_ADD("namcoio_1", NAMCO58XX, 0) + MCFG_DEVICE_ADD("namcoio_1", NAMCO_58XX, 0) MCFG_NAMCO58XX_IN_0_CB(IOPORT("COINS")) MCFG_NAMCO58XX_IN_1_CB(IOPORT("P1")) MCFG_NAMCO58XX_IN_2_CB(IOPORT("P2")) MCFG_NAMCO58XX_IN_3_CB(IOPORT("BUTTONS")) - MCFG_DEVICE_ADD("namcoio_2", NAMCO56XX, 0) + MCFG_DEVICE_ADD("namcoio_2", NAMCO_56XX, 0) MCFG_NAMCO56XX_IN_0_CB(READ8(mappy_state, dipB_muxi)) MCFG_NAMCO56XX_IN_1_CB(READ8(mappy_state, dipA_l)) MCFG_NAMCO56XX_IN_2_CB(READ8(mappy_state, dipA_h)) @@ -1871,17 +1871,17 @@ static MACHINE_CONFIG_FRAGMENT( mappy_common ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( mappy, mappy_state ) +static MACHINE_CONFIG_START( mappy ) MCFG_FRAGMENT_ADD(mappy_common) - MCFG_DEVICE_ADD("namcoio_1", NAMCO58XX, 0) + MCFG_DEVICE_ADD("namcoio_1", NAMCO_58XX, 0) MCFG_NAMCO58XX_IN_0_CB(IOPORT("COINS")) MCFG_NAMCO58XX_IN_1_CB(IOPORT("P1")) MCFG_NAMCO58XX_IN_2_CB(IOPORT("P2")) MCFG_NAMCO58XX_IN_3_CB(IOPORT("BUTTONS")) - MCFG_DEVICE_ADD("namcoio_2", NAMCO58XX, 0) + MCFG_DEVICE_ADD("namcoio_2", NAMCO_58XX, 0) MCFG_NAMCO58XX_IN_0_CB(READ8(mappy_state, dipB_mux)) MCFG_NAMCO58XX_IN_1_CB(READ8(mappy_state, dipA_l)) MCFG_NAMCO58XX_IN_2_CB(READ8(mappy_state, dipA_h)) @@ -1889,7 +1889,7 @@ static MACHINE_CONFIG_START( mappy, mappy_state ) MCFG_NAMCO58XX_OUT_0_CB(WRITE8(mappy_state, out_mux)) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( digdug2, mappy_state ) +static MACHINE_CONFIG_START( digdug2 ) MCFG_FRAGMENT_ADD(mappy_common) @@ -1899,13 +1899,13 @@ static MACHINE_CONFIG_START( digdug2, mappy_state ) MCFG_WATCHDOG_MODIFY("watchdog") MCFG_WATCHDOG_VBLANK_INIT("screen", 0) - MCFG_DEVICE_ADD("namcoio_1", NAMCO58XX, 0) + MCFG_DEVICE_ADD("namcoio_1", NAMCO_58XX, 0) MCFG_NAMCO58XX_IN_0_CB(IOPORT("COINS")) MCFG_NAMCO58XX_IN_1_CB(IOPORT("P1")) MCFG_NAMCO58XX_IN_2_CB(IOPORT("P2")) MCFG_NAMCO58XX_IN_3_CB(IOPORT("BUTTONS")) - MCFG_DEVICE_ADD("namcoio_2", NAMCO56XX, 0) + MCFG_DEVICE_ADD("namcoio_2", NAMCO_56XX, 0) MCFG_NAMCO56XX_IN_0_CB(READ8(mappy_state, dipB_mux)) MCFG_NAMCO56XX_IN_1_CB(READ8(mappy_state, dipA_l)) MCFG_NAMCO56XX_IN_2_CB(READ8(mappy_state, dipA_h)) @@ -1921,21 +1921,21 @@ static MACHINE_CONFIG_DERIVED( todruaga, digdug2 ) MCFG_PALETTE_ENTRIES(64*4+64*16) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( motos, mappy_state ) +static MACHINE_CONFIG_START( motos ) MCFG_FRAGMENT_ADD(mappy_common) MCFG_CPU_MODIFY("maincpu") MCFG_CPU_VBLANK_INT_DRIVER("screen", mappy_state, motos_main_vblank_irq) // also update the custom I/O chips - MCFG_DEVICE_ADD("namcoio_1", NAMCO56XX, 0) + MCFG_DEVICE_ADD("namcoio_1", NAMCO_56XX, 0) MCFG_NAMCO56XX_IN_0_CB(IOPORT("COINS")) MCFG_NAMCO56XX_IN_1_CB(IOPORT("P1")) MCFG_NAMCO56XX_IN_2_CB(IOPORT("P2")) MCFG_NAMCO56XX_IN_3_CB(IOPORT("BUTTONS")) MCFG_NAMCO56XX_OUT_0_CB(WRITE8(mappy_state, out_lamps)) - MCFG_DEVICE_ADD("namcoio_2", NAMCO56XX, 0) + MCFG_DEVICE_ADD("namcoio_2", NAMCO_56XX, 0) MCFG_NAMCO56XX_IN_0_CB(READ8(mappy_state, dipB_mux)) MCFG_NAMCO56XX_IN_1_CB(READ8(mappy_state, dipA_l)) MCFG_NAMCO56XX_IN_2_CB(READ8(mappy_state, dipA_h)) @@ -2457,25 +2457,25 @@ DRIVER_INIT_MEMBER(mappy_state,motos) /* 2x6809, static tilemap, 2bpp sprites (Super Pacman type) */ -GAME( 1982, superpac, 0, superpac, superpac, mappy_state, superpac, ROT90, "Namco", "Super Pac-Man", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, superpacm,superpac, superpac, superpac, mappy_state, superpac, ROT90, "Namco (Bally Midway license)", "Super Pac-Man (Midway)", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, pacnpal, 0, pacnpal, pacnpal, mappy_state, pacnpal, ROT90, "Namco", "Pac & Pal", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, pacnpal2, pacnpal, pacnpal, pacnpal, mappy_state, pacnpal, ROT90, "Namco", "Pac & Pal (older)", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, pacnchmp, pacnpal, pacnpal, pacnpal, mappy_state, pacnpal, ROT90, "Namco", "Pac-Man & Chomp Chomp", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, grobda, 0, grobda, grobda, mappy_state, grobda, ROT90, "Namco", "Grobda (New Ver.)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, grobda2, grobda, grobda, grobda, mappy_state, grobda, ROT90, "Namco", "Grobda (Old Ver. set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, grobda3, grobda, grobda, grobda, mappy_state, grobda, ROT90, "Namco", "Grobda (Old Ver. set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, superpac, 0, superpac, superpac, mappy_state, superpac, ROT90, "Namco", "Super Pac-Man", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, superpacm,superpac, superpac, superpac, mappy_state, superpac, ROT90, "Namco (Bally Midway license)", "Super Pac-Man (Midway)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, pacnpal, 0, pacnpal, pacnpal, mappy_state, pacnpal, ROT90, "Namco", "Pac & Pal", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, pacnpal2, pacnpal, pacnpal, pacnpal, mappy_state, pacnpal, ROT90, "Namco", "Pac & Pal (older)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, pacnchmp, pacnpal, pacnpal, pacnpal, mappy_state, pacnpal, ROT90, "Namco", "Pac-Man & Chomp Chomp", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, grobda, 0, grobda, grobda, mappy_state, grobda, ROT90, "Namco", "Grobda (New Ver.)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, grobda2, grobda, grobda, grobda, mappy_state, grobda, ROT90, "Namco", "Grobda (Old Ver. set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, grobda3, grobda, grobda, grobda, mappy_state, grobda, ROT90, "Namco", "Grobda (Old Ver. set 2)", MACHINE_SUPPORTS_SAVE ) /* 3x6809, static tilemap, 2bpp sprites (Gaplus type) */ -GAME( 1983, phozon, 0, phozon, phozon, mappy_state, phozon, ROT90, "Namco", "Phozon (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, phozons, phozon, phozon, phozon, mappy_state, phozon, ROT90, "Namco (Sidam license)", "Phozon (Sidam)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, phozon, 0, phozon, phozon, mappy_state, phozon, ROT90, "Namco", "Phozon (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, phozons, phozon, phozon, phozon, mappy_state, phozon, ROT90, "Namco (Sidam license)", "Phozon (Sidam)", MACHINE_SUPPORTS_SAVE ) /* 2x6809, scroling tilemap, 4bpp sprites (Super Pacman type) */ -GAME( 1983, mappy, 0, mappy, mappy, mappy_state, mappy, ROT90, "Namco", "Mappy (US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, mappyj, mappy, mappy, mappy, mappy_state, mappy, ROT90, "Namco", "Mappy (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, todruaga, 0, todruaga, todruaga, mappy_state, druaga, ROT90, "Namco", "The Tower of Druaga (New Ver.)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, todruagao,todruaga, todruaga, todruaga, mappy_state, druaga, ROT90, "Namco", "The Tower of Druaga (Old Ver.)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, todruagas,todruaga, todruaga, todruaga, mappy_state, druaga, ROT90, "bootleg? (Sidam)", "The Tower of Druaga (Sidam)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, digdug2, 0, digdug2, digdug2, mappy_state, digdug2, ROT90, "Namco", "Dig Dug II (New Ver.)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, digdug2o, digdug2, digdug2, digdug2, mappy_state, digdug2, ROT90, "Namco", "Dig Dug II (Old Ver.)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, motos, 0, motos, motos, mappy_state, motos, ROT90, "Namco", "Motos", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, mappy, 0, mappy, mappy, mappy_state, mappy, ROT90, "Namco", "Mappy (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, mappyj, mappy, mappy, mappy, mappy_state, mappy, ROT90, "Namco", "Mappy (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, todruaga, 0, todruaga, todruaga, mappy_state, druaga, ROT90, "Namco", "The Tower of Druaga (New Ver.)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, todruagao,todruaga, todruaga, todruaga, mappy_state, druaga, ROT90, "Namco", "The Tower of Druaga (Old Ver.)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, todruagas,todruaga, todruaga, todruaga, mappy_state, druaga, ROT90, "bootleg? (Sidam)", "The Tower of Druaga (Sidam)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, digdug2, 0, digdug2, digdug2, mappy_state, digdug2, ROT90, "Namco", "Dig Dug II (New Ver.)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, digdug2o, digdug2, digdug2, digdug2, mappy_state, digdug2, ROT90, "Namco", "Dig Dug II (Old Ver.)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, motos, 0, motos, motos, mappy_state, motos, ROT90, "Namco", "Motos", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/marineb.cpp b/src/mame/drivers/marineb.cpp index 55661a882c5..442bda78bb2 100644 --- a/src/mame/drivers/marineb.cpp +++ b/src/mame/drivers/marineb.cpp @@ -537,7 +537,7 @@ INTERRUPT_GEN_MEMBER(marineb_state::wanted_vblank_irq) } -static MACHINE_CONFIG_START( marineb, marineb_state ) +static MACHINE_CONFIG_START( marineb ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, CPU_CLOCK) /* 3 MHz? */ @@ -874,13 +874,13 @@ ROM_END /* year name parent machine inputs */ -GAME( 1982, marineb, 0, marineb, marineb, driver_device, 0, ROT0, "Orca", "Marine Boy", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, changes, 0, changes, changes, driver_device, 0, ROT0, "Orca", "Changes", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, changesa, changes, changes, changes, driver_device, 0, ROT0, "Orca (Eastern Micro Electronics, Inc. license)", "Changes (EME license)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, looper, changes, changes, changes, driver_device, 0, ROT0, "Orca", "Looper", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, springer, 0, springer, marineb, driver_device, 0, ROT270, "Orca", "Springer", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, hoccer, 0, hoccer, hoccer, driver_device, 0, ROT90, "Eastern Micro Electronics, Inc.", "Hoccer (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, hoccer2, hoccer, hoccer, hoccer, driver_device, 0, ROT90, "Eastern Micro Electronics, Inc.", "Hoccer (set 2)" , MACHINE_SUPPORTS_SAVE ) /* earlier */ -GAME( 1983, bcruzm12, 0, bcruzm12, bcruzm12, driver_device,0, ROT90, "Sigma Enterprises Inc.", "Battle Cruiser M-12", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, hopprobo, 0, hopprobo, marineb, driver_device, 0, ROT90, "Sega", "Hopper Robo", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, wanted, 0, wanted, wanted, driver_device, 0, ROT90, "Sigma Enterprises Inc.", "Wanted", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, marineb, 0, marineb, marineb, marineb_state, 0, ROT0, "Orca", "Marine Boy", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, changes, 0, changes, changes, marineb_state, 0, ROT0, "Orca", "Changes", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, changesa, changes, changes, changes, marineb_state, 0, ROT0, "Orca (Eastern Micro Electronics, Inc. license)", "Changes (EME license)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, looper, changes, changes, changes, marineb_state, 0, ROT0, "Orca", "Looper", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, springer, 0, springer, marineb, marineb_state, 0, ROT270, "Orca", "Springer", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, hoccer, 0, hoccer, hoccer, marineb_state, 0, ROT90, "Eastern Micro Electronics, Inc.", "Hoccer (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, hoccer2, hoccer, hoccer, hoccer, marineb_state, 0, ROT90, "Eastern Micro Electronics, Inc.", "Hoccer (set 2)" , MACHINE_SUPPORTS_SAVE ) /* earlier */ +GAME( 1983, bcruzm12, 0, bcruzm12, bcruzm12, marineb_state, 0, ROT90, "Sigma Enterprises Inc.", "Battle Cruiser M-12", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, hopprobo, 0, hopprobo, marineb, marineb_state, 0, ROT90, "Sega", "Hopper Robo", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, wanted, 0, wanted, wanted, marineb_state, 0, ROT90, "Sigma Enterprises Inc.", "Wanted", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/marinedt.cpp b/src/mame/drivers/marinedt.cpp index 73139b4b655..b4b1518757c 100644 --- a/src/mame/drivers/marinedt.cpp +++ b/src/mame/drivers/marinedt.cpp @@ -112,7 +112,7 @@ static INPUT_PORTS_START( marinedt ) INPUT_PORTS_END -static MACHINE_CONFIG_START( marinedt, marinedt_state ) +static MACHINE_CONFIG_START( marinedt ) MACHINE_CONFIG_END ROM_START( marinedt ) @@ -143,4 +143,4 @@ ROM_START( marinedt ) ROM_LOAD( "mg17.bpr", 0x0060, 0x0020, CRC(13261a02) SHA1(050edd18e4f79d19d5206f55f329340432fd4099) ) ROM_END -GAME( 1981, marinedt, 0, marinedt, marinedt, driver_device, 0, ROT270, "Taito", "Marine Date", MACHINE_IS_SKELETON ) +GAME( 1981, marinedt, 0, marinedt, marinedt, marinedt_state, 0, ROT270, "Taito", "Marine Date", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/mario.cpp b/src/mame/drivers/mario.cpp index e2acb770428..7503dc23d0c 100644 --- a/src/mame/drivers/mario.cpp +++ b/src/mame/drivers/mario.cpp @@ -332,7 +332,7 @@ INTERRUPT_GEN_MEMBER(mario_state::vblank_irq) device.execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE); } -static MACHINE_CONFIG_START( mario_base, mario_state ) +static MACHINE_CONFIG_START( mario_base ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, Z80_CLOCK) /* verified on pcb */ @@ -546,8 +546,8 @@ ROM_END * *************************************/ -GAME( 1983, mario, 0, mario, mario, driver_device, 0, ROT0, "Nintendo of America", "Mario Bros. (US, Revision F)", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, marioe, mario, mario, marioe, driver_device, 0, ROT0, "Nintendo of America", "Mario Bros. (US, Revision E)", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, marioo, mario, mario, marioo, driver_device, 0, ROT0, "Nintendo of America", "Mario Bros. (US, Unknown Rev)", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, marioj, mario, mario, marioj, driver_device, 0, ROT0, "Nintendo", "Mario Bros. (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, masao, mario, masao, mario, driver_device, 0, ROT0, "bootleg", "Masao", 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)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, masao, mario, masao, mario, mario_state, 0, ROT0, "bootleg", "Masao", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/markham.cpp b/src/mame/drivers/markham.cpp index 8481b4f0595..212762dd692 100644 --- a/src/mame/drivers/markham.cpp +++ b/src/mame/drivers/markham.cpp @@ -177,7 +177,7 @@ static GFXDECODE_START( markham ) GFXDECODE_END -static MACHINE_CONFIG_START( markham, markham_state ) +static MACHINE_CONFIG_START( markham ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80,8000000/2) /* 4.000MHz */ @@ -245,4 +245,4 @@ ROM_START( markham ) ROM_END -GAME( 1983, markham, 0, markham, markham, driver_device, 0, ROT0, "Sun Electronics", "Markham", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, markham, 0, markham, markham, markham_state, 0, ROT0, "Sun Electronics", "Markham", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/marywu.cpp b/src/mame/drivers/marywu.cpp index 11826be3965..951cfdc68fe 100644 --- a/src/mame/drivers/marywu.cpp +++ b/src/mame/drivers/marywu.cpp @@ -181,7 +181,7 @@ static ADDRESS_MAP_START( io_map, AS_IO, 8, marywu_state ) AM_RANGE(MCS51_PORT_P0, MCS51_PORT_P3) AM_READ(port_r) ADDRESS_MAP_END -static MACHINE_CONFIG_START( marywu , marywu_state ) +static MACHINE_CONFIG_START( marywu ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I80C31, XTAL_10_738635MHz) //actual CPU is a Winbond w78c31b-24 MCFG_CPU_PROGRAM_MAP(program_map) @@ -214,5 +214,5 @@ ROM_START( marywu ) ROM_LOAD( "marywu_sunkiss_chen.rom", 0x0000, 0x8000, CRC(11f67c7d) SHA1(9c1fd1a5cc6e2b0d675f0217aa8ff21c30609a0c) ) ROM_END -/* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS */ -GAME( ????, marywu, 0, marywu, marywu, driver_device, 0, ROT0, "", " Labeled 'WU- MARY-1A' Music by: SunKiss Chen", MACHINE_NOT_WORKING ) +// YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS +GAME( ????, marywu, 0, marywu, marywu, marywu_state, 0, ROT0, "", " Labeled 'WU- MARY-1A' Music by: SunKiss Chen", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/mastboy.cpp b/src/mame/drivers/mastboy.cpp index 08fa73396c2..9f7ffc4c21e 100644 --- a/src/mame/drivers/mastboy.cpp +++ b/src/mame/drivers/mastboy.cpp @@ -906,7 +906,7 @@ void mastboy_state::machine_reset() -static MACHINE_CONFIG_START( mastboy, mastboy_state ) +static MACHINE_CONFIG_START( mastboy ) MCFG_CPU_ADD("maincpu", Z180, 12000000/2) /* HD647180X0CP6-1M1R */ MCFG_CPU_PROGRAM_MAP(mastboy_map) MCFG_CPU_IO_MAP(mastboy_io_map) @@ -935,7 +935,7 @@ static MACHINE_CONFIG_START( mastboy, mastboy_state ) MCFG_SOUND_ADD("msm", MSM5205, 384000) MCFG_MSM5205_VCLK_CB(WRITELINE(mastboy_state, adpcm_int)) /* interrupt function */ - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_SEX_4B) /* 4KHz 4-bit */ + MCFG_MSM5205_PRESCALER_SELECTOR(SEX_4B) /* 4KHz 4-bit */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) MACHINE_CONFIG_END @@ -1056,6 +1056,6 @@ ROM_START( mastboyia ) /* 0x1c0000 to 0x1fffff EMPTY */ ROM_END -GAME( 1991, mastboy, 0, mastboy, mastboy, driver_device, 0, ROT0, "Gaelco", "Master Boy (Spanish, PCB Rev A)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, mastboyi, mastboy, mastboy, mastboy, driver_device, 0, ROT0, "Gaelco", "Master Boy (Italian, PCB Rev A, set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, mastboyia,mastboy, mastboy, mastboy, driver_device, 0, ROT0, "Gaelco", "Master Boy (Italian, PCB Rev A, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, mastboy, 0, mastboy, mastboy, mastboy_state, 0, ROT0, "Gaelco", "Master Boy (Spanish, PCB Rev A)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, mastboyi, mastboy, mastboy, mastboy, mastboy_state, 0, ROT0, "Gaelco", "Master Boy (Italian, PCB Rev A, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, mastboyia,mastboy, mastboy, mastboy, mastboy_state, 0, ROT0, "Gaelco", "Master Boy (Italian, PCB Rev A, set 2)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/matmania.cpp b/src/mame/drivers/matmania.cpp index 33b915f8f4c..534eb6fa618 100644 --- a/src/mame/drivers/matmania.cpp +++ b/src/mame/drivers/matmania.cpp @@ -295,7 +295,7 @@ GFXDECODE_END * *************************************/ -static MACHINE_CONFIG_START( matmania, matmania_state ) +static MACHINE_CONFIG_START( matmania ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, 1500000) /* 1.5 MHz ???? */ @@ -338,7 +338,7 @@ static MACHINE_CONFIG_START( matmania, matmania_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( maniach, matmania_state ) +static MACHINE_CONFIG_START( maniach ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, 1500000) /* 1.5 MHz ???? */ @@ -614,7 +614,7 @@ ROM_END * *************************************/ -GAME( 1985, matmania, 0, matmania, matmania, driver_device, 0, ROT270, "Technos Japan (Taito America license)", "Mat Mania", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, excthour, matmania, matmania, maniach, driver_device, 0, ROT270, "Technos Japan (Taito license)", "Exciting Hour", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, maniach, 0, maniach, maniach, driver_device, 0, ROT270, "Technos Japan (Taito America license)", "Mania Challenge (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, maniach2, maniach, maniach, maniach, driver_device, 0, ROT270, "Technos Japan (Taito America license)", "Mania Challenge (set 2)", MACHINE_SUPPORTS_SAVE ) /* earlier version? */ +GAME( 1985, matmania, 0, matmania, matmania, matmania_state, 0, ROT270, "Technos Japan (Taito America license)", "Mat Mania", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, excthour, matmania, matmania, maniach, matmania_state, 0, ROT270, "Technos Japan (Taito license)", "Exciting Hour", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, maniach, 0, maniach, maniach, matmania_state, 0, ROT270, "Technos Japan (Taito America license)", "Mania Challenge (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, maniach2, maniach, maniach, maniach, matmania_state, 0, ROT270, "Technos Japan (Taito America license)", "Mania Challenge (set 2)", MACHINE_SUPPORTS_SAVE ) // earlier version? diff --git a/src/mame/drivers/maxaflex.cpp b/src/mame/drivers/maxaflex.cpp index 3154c9c8caf..0f01a02f143 100644 --- a/src/mame/drivers/maxaflex.cpp +++ b/src/mame/drivers/maxaflex.cpp @@ -305,9 +305,9 @@ TIMER_DEVICE_CALLBACK_MEMBER( maxaflex_state::mf_interrupt ) m_antic->generic_interrupt(2); } -static MACHINE_CONFIG_START( maxaflex, maxaflex_state ) +static MACHINE_CONFIG_START( maxaflex ) /* basic machine hardware */ - MCFG_CPU_ADD("maincpu", M6502, FREQ_17_EXACT) + MCFG_CPU_ADD("maincpu", M6502, pokey_device::FREQ_17_EXACT) MCFG_CPU_PROGRAM_MAP(a600xl_mem) MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", maxaflex_state, mf_interrupt, "screen", 0, 1) @@ -332,9 +332,9 @@ static MACHINE_CONFIG_START( maxaflex, maxaflex_state ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_VISIBLE_AREA(MIN_X, MAX_X, MIN_Y, MAX_Y) - MCFG_SCREEN_REFRESH_RATE(FRAME_RATE_60HZ) - MCFG_SCREEN_SIZE(HWIDTH*8, TOTAL_LINES_60HZ) + MCFG_SCREEN_VISIBLE_AREA_ANTIC() + MCFG_SCREEN_REFRESH_RATE_ANTIC_60HZ() + MCFG_SCREEN_SIZE_ANTIC_60HZ() MCFG_SCREEN_UPDATE_DEVICE("antic", antic_device, screen_update) MCFG_SCREEN_PALETTE("palette") @@ -345,7 +345,7 @@ static MACHINE_CONFIG_START( maxaflex, maxaflex_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_SOUND_ADD("pokey", POKEY, FREQ_17_EXACT) + MCFG_SOUND_ADD("pokey", POKEY, pokey_device::FREQ_17_EXACT) MCFG_POKEY_INTERRUPT_CB(atari_common_state, interrupt_cb) MCFG_POKEY_OUTPUT_RC(RES_K(1), CAP_U(0.0), 5.0) @@ -417,8 +417,8 @@ ROM_START(mf_flip) ROM_END -GAME( 1984, maxaflex, 0, maxaflex, a600xl, driver_device, 0, ROT0, "Exidy", "Max-A-Flex", MACHINE_IS_BIOS_ROOT ) -GAME( 1982, mf_achas, maxaflex, maxaflex, a600xl, driver_device, 0, ROT0, "Exidy / First Star Software", "Astro Chase (Max-A-Flex)", 0 ) -GAME( 1983, mf_brist, maxaflex, maxaflex, a600xl, driver_device, 0, ROT0, "Exidy / First Star Software", "Bristles (Max-A-Flex)", 0 ) -GAME( 1983, mf_flip, maxaflex, maxaflex, a600xl, driver_device, 0, ROT0, "Exidy / First Star Software", "Flip & Flop (Max-A-Flex)", 0 ) -GAME( 1984, mf_bdash, maxaflex, maxaflex, a600xl, driver_device, 0, ROT0, "Exidy / First Star Software", "Boulder Dash (Max-A-Flex)", 0 ) +GAME( 1984, maxaflex, 0, maxaflex, a600xl, maxaflex_state, 0, ROT0, "Exidy", "Max-A-Flex", MACHINE_IS_BIOS_ROOT ) +GAME( 1982, mf_achas, maxaflex, maxaflex, a600xl, maxaflex_state, 0, ROT0, "Exidy / First Star Software", "Astro Chase (Max-A-Flex)", 0 ) +GAME( 1983, mf_brist, maxaflex, maxaflex, a600xl, maxaflex_state, 0, ROT0, "Exidy / First Star Software", "Bristles (Max-A-Flex)", 0 ) +GAME( 1983, mf_flip, maxaflex, maxaflex, a600xl, maxaflex_state, 0, ROT0, "Exidy / First Star Software", "Flip & Flop (Max-A-Flex)", 0 ) +GAME( 1984, mf_bdash, maxaflex, maxaflex, a600xl, maxaflex_state, 0, ROT0, "Exidy / First Star Software", "Boulder Dash (Max-A-Flex)", 0 ) diff --git a/src/mame/drivers/maygay1b.cpp b/src/mame/drivers/maygay1b.cpp index 3f4de5b3cb6..a236c2d786a 100644 --- a/src/mame/drivers/maygay1b.cpp +++ b/src/mame/drivers/maygay1b.cpp @@ -767,7 +767,7 @@ ADDRESS_MAP_END // machine driver for maygay m1 board ///////////////////////////////// -MACHINE_CONFIG_START( maygay_m1, maygay1b_state ) +MACHINE_CONFIG_START( maygay_m1 ) MCFG_CPU_ADD("maincpu", M6809, M1_MASTER_CLOCK/2) MCFG_CPU_PROGRAM_MAP(m1_memmap) diff --git a/src/mame/drivers/maygayep.cpp b/src/mame/drivers/maygayep.cpp index 469a2a08eaa..d0579fb5a31 100644 --- a/src/mame/drivers/maygayep.cpp +++ b/src/mame/drivers/maygayep.cpp @@ -103,7 +103,7 @@ DRIVER_INIT_MEMBER(maygayep_state,maygayep) } -static MACHINE_CONFIG_START( maygayep, maygayep_state ) +static MACHINE_CONFIG_START( maygayep ) MCFG_CPU_ADD("maincpu", H83002, 16000000 ) MCFG_CPU_PROGRAM_MAP( maygayep_map ) diff --git a/src/mame/drivers/maygaysw.cpp b/src/mame/drivers/maygaysw.cpp index e095ac2b885..d92474910c4 100644 --- a/src/mame/drivers/maygaysw.cpp +++ b/src/mame/drivers/maygaysw.cpp @@ -125,7 +125,7 @@ static INPUT_PORTS_START( maygayew ) INPUT_PORTS_END -static MACHINE_CONFIG_START( maygayew, maygayew_state ) +static MACHINE_CONFIG_START( maygayew ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000,8000000) // MC68306FC16 - standard 68000 core + peripherals @@ -430,15 +430,15 @@ ROM_START( mg_scl ) ROM_END // complete(?) dump -GAME( 199?, mg_gbr , 0 , maygayew, maygayew, driver_device, 0, ROT0, "Maygay", "Guinness Book Of Records (Maygay M2)", MACHINE_IS_SKELETON ) -GAME( 199?, mg_risk , 0 , maygayew, maygayew, driver_device, 0, ROT0, "Maygay", "Risk (Maygay M2)", MACHINE_IS_SKELETON ) -GAME( 199?, mg_bb , 0 , maygayew, maygayew, driver_device, 0, ROT0, "Maygay", "Big Break (Maygay M2)", MACHINE_IS_SKELETON ) -GAME( 199?, mg_lug , 0 , maygayew, maygayew, driver_device, 0, ROT0, "Maygay", "London Underground (Maygay M2)", MACHINE_IS_SKELETON ) -GAME( 199?, mg_alad , 0 , maygayew, maygayew, driver_device, 0, ROT0, "Maygay", "Aladdin's Cave (Maygay M2)", MACHINE_IS_SKELETON ) +GAME( 199?, mg_gbr , 0 , maygayew, maygayew, maygayew_state, 0, ROT0, "Maygay", "Guinness Book Of Records (Maygay M2)", MACHINE_IS_SKELETON ) +GAME( 199?, mg_risk , 0 , maygayew, maygayew, maygayew_state, 0, ROT0, "Maygay", "Risk (Maygay M2)", MACHINE_IS_SKELETON ) +GAME( 199?, mg_bb , 0 , maygayew, maygayew, maygayew_state, 0, ROT0, "Maygay", "Big Break (Maygay M2)", MACHINE_IS_SKELETON ) +GAME( 199?, mg_lug , 0 , maygayew, maygayew, maygayew_state, 0, ROT0, "Maygay", "London Underground (Maygay M2)", MACHINE_IS_SKELETON ) +GAME( 199?, mg_alad , 0 , maygayew, maygayew, maygayew_state, 0, ROT0, "Maygay", "Aladdin's Cave (Maygay M2)", MACHINE_IS_SKELETON ) // incomplete dumps -GAME( 199?, mg_ewg , 0 , maygayew, maygayew, driver_device, 0, ROT0, "Maygay", "Each Way Gambler (Maygay M2)", MACHINE_IS_SKELETON ) -GAME( 199?, mg_jv , 0 , maygayew, maygayew, driver_device, 0, ROT0, "Maygay", "Jack & Vera (Maygay M2)", MACHINE_IS_SKELETON ) -GAME( 199?, mg_pbw , 0 , maygayew, maygayew, driver_device, 0, ROT0, "Maygay", "Pinball Wizard (Maygay M2)", MACHINE_IS_SKELETON ) -GAME( 199?, mg_scl , 0 , maygayew, maygayew, driver_device, 0, ROT0, "Maygay", "Super Clue (Maygay M2)", MACHINE_IS_SKELETON ) -GAME( 199?, mg_kf , 0 , maygayew, maygayew, driver_device, 0, ROT0, "Maygay", "Krypton Factor (Maygay M2)", MACHINE_IS_SKELETON ) +GAME( 199?, mg_ewg , 0 , maygayew, maygayew, maygayew_state, 0, ROT0, "Maygay", "Each Way Gambler (Maygay M2)", MACHINE_IS_SKELETON ) +GAME( 199?, mg_jv , 0 , maygayew, maygayew, maygayew_state, 0, ROT0, "Maygay", "Jack & Vera (Maygay M2)", MACHINE_IS_SKELETON ) +GAME( 199?, mg_pbw , 0 , maygayew, maygayew, maygayew_state, 0, ROT0, "Maygay", "Pinball Wizard (Maygay M2)", MACHINE_IS_SKELETON ) +GAME( 199?, mg_scl , 0 , maygayew, maygayew, maygayew_state, 0, ROT0, "Maygay", "Super Clue (Maygay M2)", MACHINE_IS_SKELETON ) +GAME( 199?, mg_kf , 0 , maygayew, maygayew, maygayew_state, 0, ROT0, "Maygay", "Krypton Factor (Maygay M2)", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/maygayv1.cpp b/src/mame/drivers/maygayv1.cpp index 9af4c16b5ff..2288214dd6d 100644 --- a/src/mame/drivers/maygayv1.cpp +++ b/src/mame/drivers/maygayv1.cpp @@ -864,7 +864,7 @@ INTERRUPT_GEN_MEMBER(maygayv1_state::vsync_interrupt) } -static MACHINE_CONFIG_START( maygayv1, maygayv1_state ) +static MACHINE_CONFIG_START( maygayv1 ) MCFG_CPU_ADD("maincpu", M68000, MASTER_CLOCK / 2) MCFG_CPU_PROGRAM_MAP(main_map) MCFG_CPU_VBLANK_INT_DRIVER("screen", maygayv1_state, vsync_interrupt) diff --git a/src/mame/drivers/mazerbla.cpp b/src/mame/drivers/mazerbla.cpp index 4cd2005b072..d6d8534491b 100644 --- a/src/mame/drivers/mazerbla.cpp +++ b/src/mame/drivers/mazerbla.cpp @@ -1441,7 +1441,7 @@ void mazerbla_state::machine_reset() memset(m_lookup_ram, 0, ARRAY_LENGTH(m_lookup_ram)); } -static MACHINE_CONFIG_START( mazerbla, mazerbla_state ) +static MACHINE_CONFIG_START( mazerbla ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, MASTER_CLOCK) /* 4 MHz, no NMI, IM2 - vectors at 0xf8, 0xfa, 0xfc */ @@ -1483,7 +1483,7 @@ static MACHINE_CONFIG_START( mazerbla, mazerbla_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( greatgun, mazerbla_state ) +static MACHINE_CONFIG_START( greatgun ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, MASTER_CLOCK) /* 4 MHz, no NMI, IM2 - vectors at 0xf8, 0xfa, 0xfc */ @@ -1666,4 +1666,4 @@ DRIVER_INIT_MEMBER(mazerbla_state,greatgun) GAME( 1983, mazerbla, 0, mazerbla, mazerbla, mazerbla_state, mazerbla, ROT0, "Stern Electronics", "Mazer Blazer (set 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) GAME( 1983, mazerblaa, mazerbla, mazerbla, mazerbla, mazerbla_state, mazerbla, ROT0, "Stern Electronics", "Mazer Blazer (set 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) -GAME( 1983, greatgun, 0, greatgun, greatgun, mazerbla_state, greatgun, ROT0, "Stern Electronics", "Great Guns", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +GAME( 1983, greatgun, 0, greatgun, greatgun, mazerbla_state, greatgun, ROT0, "Stern Electronics", "Great Guns", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/mbc200.cpp b/src/mame/drivers/mbc200.cpp index 22934fbba2b..db2075b1658 100644 --- a/src/mame/drivers/mbc200.cpp +++ b/src/mame/drivers/mbc200.cpp @@ -78,7 +78,7 @@ public: DECLARE_WRITE8_MEMBER(pm_porta_w); DECLARE_WRITE8_MEMBER(pm_portb_w); DECLARE_READ8_MEMBER(keyboard_r); - DECLARE_WRITE8_MEMBER(kbd_put); + void kbd_put(u8 data); MC6845_UPDATE_ROW(update_row); required_device m_palette; @@ -93,7 +93,7 @@ private: required_device m_maincpu; required_device m_beep; required_device m_speaker; - required_device m_fdc; + required_device m_fdc; required_device m_floppy0; required_device m_floppy1; }; @@ -144,7 +144,7 @@ static ADDRESS_MAP_START( mbc200_io , AS_IO, 8, mbc200_state) //AM_RANGE(0xe0, 0xe0) AM_DEVREADWRITE("uart1", i8251_device, data_r, data_w) //AM_RANGE(0xe1, 0xe1) AM_DEVREADWRITE("uart1", i8251_device, status_r, control_w) AM_RANGE(0xe0, 0xe1) AM_READ(keyboard_r) AM_WRITENOP - AM_RANGE(0xe4, 0xe7) AM_DEVREADWRITE("fdc", mb8876_t, read, write) + AM_RANGE(0xe4, 0xe7) AM_DEVREADWRITE("fdc", mb8876_device, read, write) AM_RANGE(0xe8, 0xeb) AM_DEVREADWRITE("ppi_m", i8255_device, read, write) AM_RANGE(0xec, 0xec) AM_DEVREADWRITE("uart2", i8251_device, data_r, data_w) AM_RANGE(0xed, 0xed) AM_DEVREADWRITE("uart2", i8251_device, status_r, control_w) @@ -207,7 +207,7 @@ READ8_MEMBER( mbc200_state::keyboard_r ) } // convert standard control keys to expected code; -WRITE8_MEMBER( mbc200_state::kbd_put ) +void mbc200_state::kbd_put(u8 data) { switch (data) { @@ -290,7 +290,7 @@ static GFXDECODE_START( mbc200 ) GFXDECODE_END -static MACHINE_CONFIG_START( mbc200, mbc200_state ) +static MACHINE_CONFIG_START( mbc200 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80, XTAL_8MHz/2) // NEC D780C-1 MCFG_CPU_PROGRAM_MAP(mbc200_mem) @@ -344,7 +344,7 @@ static MACHINE_CONFIG_START( mbc200, mbc200_state ) /* Keyboard */ MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0) - MCFG_GENERIC_KEYBOARD_CB(WRITE8(mbc200_state, kbd_put)) + MCFG_GENERIC_KEYBOARD_CB(PUT(mbc200_state, kbd_put)) /* software lists */ MCFG_SOFTWARE_LIST_ADD("flop_list", "mbc200") @@ -361,5 +361,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1982, mbc200, 0, 0, mbc200, mbc200, driver_device, 0, "Sanyo", "MBC-200", 0 ) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 1982, mbc200, 0, 0, mbc200, mbc200, mbc200_state, 0, "Sanyo", "MBC-200", 0 ) diff --git a/src/mame/drivers/mbc55x.cpp b/src/mame/drivers/mbc55x.cpp index 5c40ca10687..7857eb5b514 100644 --- a/src/mame/drivers/mbc55x.cpp +++ b/src/mame/drivers/mbc55x.cpp @@ -238,7 +238,7 @@ static SLOT_INTERFACE_START( mbc55x_floppies ) SLOT_INTERFACE_END -static MACHINE_CONFIG_START( mbc55x, mbc55x_state ) +static MACHINE_CONFIG_START( mbc55x ) /* basic machine hardware */ MCFG_CPU_ADD(MAINCPU_TAG, I8088, 3600000) MCFG_CPU_PROGRAM_MAP(mbc55x_mem) @@ -315,5 +315,5 @@ ROM_START( mbc55x ) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1983, mbc55x, 0, 0, mbc55x, mbc55x, driver_device, 0, "Sanyo", "MBC-55x", 0 /*MACHINE_NO_SOUND*/) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1983, mbc55x, 0, 0, mbc55x, mbc55x, mbc55x_state, 0, "Sanyo", "MBC-55x", 0 /*MACHINE_NO_SOUND*/) diff --git a/src/mame/drivers/mbee.cpp b/src/mame/drivers/mbee.cpp index ec8bc737c15..23ca1f16d99 100644 --- a/src/mame/drivers/mbee.cpp +++ b/src/mame/drivers/mbee.cpp @@ -282,7 +282,7 @@ static ADDRESS_MAP_START(mbee56_io, AS_IO, 8, mbee_state) AM_RANGE(0x0b, 0x0b) AM_WRITE(port0b_w) AM_RANGE(0x0c, 0x0c) AM_DEVREAD("crtc", mc6845_device, status_r) AM_WRITE(m6545_index_w) AM_RANGE(0x0d, 0x0d) AM_DEVREAD("crtc", mc6845_device, register_r) AM_WRITE(m6545_data_w) - AM_RANGE(0x44, 0x47) AM_DEVREADWRITE("fdc", wd2793_t, read, write) + AM_RANGE(0x44, 0x47) AM_DEVREADWRITE("fdc", wd2793_device, read, write) AM_RANGE(0x48, 0x4f) AM_READWRITE(fdc_status_r, fdc_motor_w) ADDRESS_MAP_END @@ -299,7 +299,7 @@ static ADDRESS_MAP_START(mbee128_io, AS_IO, 8, mbee_state) AM_RANGE(0x0c, 0x0c) AM_DEVREAD("crtc", mc6845_device, status_r) AM_WRITE(m6545_index_w) AM_RANGE(0x0d, 0x0d) AM_DEVREAD("crtc", mc6845_device, register_r) AM_WRITE(m6545_data_w) AM_RANGE(0x1c, 0x1f) AM_READWRITE(port1c_r, port1c_w) - AM_RANGE(0x44, 0x47) AM_DEVREADWRITE("fdc", wd2793_t, read, write) + AM_RANGE(0x44, 0x47) AM_DEVREADWRITE("fdc", wd2793_device, read, write) AM_RANGE(0x48, 0x4f) AM_READWRITE(fdc_status_r, fdc_motor_w) AM_RANGE(0x50, 0x57) AM_WRITE(mbee128_50_w) ADDRESS_MAP_END @@ -320,7 +320,7 @@ static ADDRESS_MAP_START(mbee256_io, AS_IO, 8, mbee_state) // AM_RANGE(0x0010, 0x0013) AM_MIRROR(0xff00) Optional SN76489AN audio chip AM_RANGE(0x0018, 0x001b) AM_MIRROR(0xff00) AM_READ(port18_r) AM_RANGE(0x001c, 0x001f) AM_MIRROR(0xff00) AM_READWRITE(port1c_r, port1c_w) - AM_RANGE(0x0044, 0x0047) AM_MIRROR(0xff00) AM_DEVREADWRITE("fdc", wd2793_t, read, write) + AM_RANGE(0x0044, 0x0047) AM_MIRROR(0xff00) AM_DEVREADWRITE("fdc", wd2793_device, read, write) AM_RANGE(0x0048, 0x004f) AM_MIRROR(0xff00) AM_READWRITE(fdc_status_r, fdc_motor_w) AM_RANGE(0x0050, 0x0057) AM_MIRROR(0xff00) AM_WRITE(mbee256_50_w) // AM_RANGE(0x0058, 0x005f) AM_MIRROR(0xff00) External options: floppy drive, hard drive and keyboard @@ -631,7 +631,7 @@ static SLOT_INTERFACE_START( mbee_floppies ) SLOT_INTERFACE_END -static MACHINE_CONFIG_START( mbee, mbee_state ) +static MACHINE_CONFIG_START( mbee ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_12MHz / 6) /* 2 MHz */ MCFG_CPU_PROGRAM_MAP(mbee_mem) @@ -690,7 +690,7 @@ static MACHINE_CONFIG_START( mbee, mbee_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( mbeeic, mbee_state ) +static MACHINE_CONFIG_START( mbeeic ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_13_5MHz / 4) /* 3.37500 MHz */ MCFG_CPU_PROGRAM_MAP(mbeeic_mem) @@ -1191,4 +1191,4 @@ COMP( 1986, mbee56, mbee, 0, mbee56, mbee, mbee_state, mbee56, COMP( 1986, mbee128, mbee, 0, mbee128, mbee128, mbee_state, mbee128, "Applied Technology", "Microbee 128k Standard" , MACHINE_NOT_WORKING ) COMP( 1986, mbee128p, mbee, 0, mbee128p, mbee128, mbee_state, mbee128, "Applied Technology", "Microbee 128k Premium" , MACHINE_NOT_WORKING ) COMP( 1987, mbee256, mbee, 0, mbee256, mbee256, mbee_state, mbee256, "Applied Technology", "Microbee 256TC" , MACHINE_NOT_WORKING ) -COMP( 2012, mbeepp, mbee, 0, mbee256, mbee128, mbee_state, mbee128, "Microbee Systems", "Microbee Premium Plus" , MACHINE_NOT_WORKING ) +COMP( 2012, mbeepp, mbee, 0, mbee256, mbee128, mbee_state, mbee128, "Microbee Systems", "Microbee Premium Plus" , MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/mc10.cpp b/src/mame/drivers/mc10.cpp index d02d766b6c5..ad84fdaaf4d 100644 --- a/src/mame/drivers/mc10.cpp +++ b/src/mame/drivers/mc10.cpp @@ -482,7 +482,7 @@ INPUT_PORTS_END MACHINE DRIVERS ***************************************************************************/ -static MACHINE_CONFIG_START( mc10, mc10_state ) +static MACHINE_CONFIG_START( mc10 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6803, XTAL_3_579545MHz) /* 0,894886 MHz */ @@ -518,7 +518,7 @@ static MACHINE_CONFIG_START( mc10, mc10_state ) MCFG_SOFTWARE_LIST_ADD("cass_list", "mc10") MACHINE_CONFIG_END -static MACHINE_CONFIG_START( alice32, mc10_state ) +static MACHINE_CONFIG_START( alice32 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6803, XTAL_3_579545MHz) @@ -609,8 +609,8 @@ ROM_END GAME DRIVERS ***************************************************************************/ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1983, mc10, 0, 0, mc10, mc10, mc10_state, mc10, "Tandy Radio Shack", "MC-10", MACHINE_SUPPORTS_SAVE ) -COMP( 1983, alice, mc10, 0, mc10, alice, mc10_state, mc10, "Matra & Hachette", "Alice", MACHINE_SUPPORTS_SAVE ) -COMP( 1984, alice32, 0, 0, alice32, alice, mc10_state, mc10, "Matra & Hachette", "Alice 32", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -COMP( 1985, alice90, alice32, 0, alice90, alice, mc10_state, mc10, "Matra & Hachette", "Alice 90", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1983, mc10, 0, 0, mc10, mc10, mc10_state, mc10, "Tandy Radio Shack", "MC-10", MACHINE_SUPPORTS_SAVE ) +COMP( 1983, alice, mc10, 0, mc10, alice, mc10_state, mc10, "Matra & Hachette", "Alice", MACHINE_SUPPORTS_SAVE ) +COMP( 1984, alice32, 0, 0, alice32, alice, mc10_state, mc10, "Matra & Hachette", "Alice 32", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +COMP( 1985, alice90, alice32, 0, alice90, alice, mc10_state, mc10, "Matra & Hachette", "Alice 90", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/mc1000.cpp b/src/mame/drivers/mc1000.cpp index e3b855bbc00..43c0152a153 100644 --- a/src/mame/drivers/mc1000.cpp +++ b/src/mame/drivers/mc1000.cpp @@ -531,7 +531,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(mc1000_state::ne555_tick) m_maincpu->set_input_line(INPUT_LINE_IRQ0, param); } -static MACHINE_CONFIG_START( mc1000, mc1000_state ) +static MACHINE_CONFIG_START( mc1000 ) /* basic machine hardware */ MCFG_CPU_ADD(Z80_TAG, Z80, 3579545) @@ -593,5 +593,5 @@ ROM_END /* System Drivers */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1985, mc1000, 0, 0, mc1000, mc1000, driver_device, 0, "CCE", "MC-1000", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +COMP( 1985, mc1000, 0, 0, mc1000, mc1000, mc1000_state, 0, "CCE", "MC-1000", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/mc1502.cpp b/src/mame/drivers/mc1502.cpp index e2de01ce6e1..b2634587a62 100644 --- a/src/mame/drivers/mc1502.cpp +++ b/src/mame/drivers/mc1502.cpp @@ -241,7 +241,7 @@ static INPUT_PORTS_START( mc1502 ) PORT_INCLUDE( mc7007_3_keyboard ) INPUT_PORTS_END -static MACHINE_CONFIG_START( mc1502, mc1502_state ) +static MACHINE_CONFIG_START( mc1502 ) MCFG_CPU_ADD("maincpu", I8088, XTAL_16MHz/3) MCFG_CPU_PROGRAM_MAP(mc1502_map) MCFG_CPU_IO_MAP(mc1502_io) @@ -398,6 +398,6 @@ ROM_END ***************************************************************************/ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ -COMP ( 1989, mc1502, 0, 0, mc1502, mc1502, mc1502_state, mc1502, "NPO Microprocessor", "Elektronika MS 1502", 0) -COMP ( 1988, pk88, 0, 0, mc1502, mc1502, mc1502_state, mc1502, "NPO Microprocessor", "Elektronika PK-88", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP ( 1989, mc1502, 0, 0, mc1502, mc1502, mc1502_state, mc1502, "NPO Microprocessor", "Elektronika MS 1502", 0 ) +COMP ( 1988, pk88, 0, 0, mc1502, mc1502, mc1502_state, mc1502, "NPO Microprocessor", "Elektronika PK-88", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/mc80.cpp b/src/mame/drivers/mc80.cpp index da71367b000..47134d37dfa 100644 --- a/src/mame/drivers/mc80.cpp +++ b/src/mame/drivers/mc80.cpp @@ -161,7 +161,7 @@ static const z80_daisy_config mc8030_daisy_chain[] = { nullptr } }; -static MACHINE_CONFIG_START( mc8020, mc80_state ) +static MACHINE_CONFIG_START( mc8020 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80, XTAL_2_4576MHz) MCFG_CPU_PROGRAM_MAP(mc8020_mem) @@ -198,7 +198,7 @@ static MACHINE_CONFIG_START( mc8020, mc80_state ) MCFG_TIMER_DRIVER_ADD_PERIODIC("mc8020_kbd", mc80_state, mc8020_kbd, attotime::from_hz(50)) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( mc8030, mc80_state ) +static MACHINE_CONFIG_START( mc8030 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80, XTAL_2_4576MHz) MCFG_CPU_PROGRAM_MAP(mc8030_mem) @@ -301,6 +301,6 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 198?, mc8020, 0, 0, mc8020, mc8020, driver_device, 0, "VEB Elektronik Gera", "MC-80.21/22", MACHINE_NO_SOUND) -COMP( 198?, mc8030, mc8020, 0, mc8030, mc8030, driver_device, 0, "VEB Elektronik Gera", "MC-80.30/31", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | ORIENTATION_FLIP_X) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 198?, mc8020, 0, 0, mc8020, mc8020, mc80_state, 0, "VEB Elektronik Gera", "MC-80.21/22", MACHINE_NO_SOUND ) +COMP( 198?, mc8030, mc8020, 0, mc8030, mc8030, mc80_state, 0, "VEB Elektronik Gera", "MC-80.30/31", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | ORIENTATION_FLIP_X ) diff --git a/src/mame/drivers/mcatadv.cpp b/src/mame/drivers/mcatadv.cpp index a1b40e02816..fbba4532907 100644 --- a/src/mame/drivers/mcatadv.cpp +++ b/src/mame/drivers/mcatadv.cpp @@ -428,7 +428,7 @@ void mcatadv_state::machine_start() save_item(NAME(m_palette_bank2)); } -static MACHINE_CONFIG_START( mcatadv, mcatadv_state ) +static MACHINE_CONFIG_START( mcatadv ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz) /* verified on pcb */ @@ -668,9 +668,9 @@ ROM_START( nostk ) ROM_END -GAME( 1993, mcatadv, 0, mcatadv, mcatadv, driver_device, 0, ROT0, "Wintechno", "Magical Cat Adventure", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1993, mcatadvj, mcatadv, mcatadv, mcatadv, driver_device, 0, ROT0, "Wintechno", "Magical Cat Adventure (Japan)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1993, catt, mcatadv, mcatadv, mcatadv, driver_device, 0, ROT0, "Wintechno", "Catt (Japan)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1993, nost, 0, nost, nost, driver_device, 0, ROT270, "Face", "Nostradamus", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1993, nostj, nost, nost, nost, driver_device, 0, ROT270, "Face", "Nostradamus (Japan)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1993, nostk, nost, nost, nost, driver_device, 0, ROT270, "Face", "Nostradamus (Korea)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1993, mcatadv, 0, mcatadv, mcatadv, mcatadv_state, 0, ROT0, "Wintechno", "Magical Cat Adventure", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1993, mcatadvj, mcatadv, mcatadv, mcatadv, mcatadv_state, 0, ROT0, "Wintechno", "Magical Cat Adventure (Japan)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1993, catt, mcatadv, mcatadv, mcatadv, mcatadv_state, 0, ROT0, "Wintechno", "Catt (Japan)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1993, nost, 0, nost, nost, mcatadv_state, 0, ROT270, "Face", "Nostradamus", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1993, nostj, nost, nost, nost, mcatadv_state, 0, ROT270, "Face", "Nostradamus (Japan)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1993, nostk, nost, nost, nost, mcatadv_state, 0, ROT270, "Face", "Nostradamus (Korea)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/mcb216.cpp b/src/mame/drivers/mcb216.cpp index 86112783d16..0190e2b4100 100644 --- a/src/mame/drivers/mcb216.cpp +++ b/src/mame/drivers/mcb216.cpp @@ -48,7 +48,7 @@ public: { } - DECLARE_WRITE8_MEMBER(kbd_put); + void kbd_put(u8 data); DECLARE_READ8_MEMBER(keyin_r); DECLARE_READ8_MEMBER(status_r); DECLARE_MACHINE_RESET(mcb216); @@ -99,7 +99,7 @@ READ8_MEMBER( mcb216_state::status_r ) return (m_term_data) ? 0xc0 : 0x80; } -WRITE8_MEMBER( mcb216_state::kbd_put ) +void mcb216_state::kbd_put(u8 data) { m_term_data = data; } @@ -115,7 +115,7 @@ MACHINE_RESET_MEMBER( mcb216_state, cb308 ) m_maincpu->set_state_int(Z80_PC, 0xe000); } -static MACHINE_CONFIG_START( mcb216, mcb216_state ) +static MACHINE_CONFIG_START( mcb216 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 4000000) MCFG_CPU_PROGRAM_MAP(mcb216_mem) @@ -124,10 +124,10 @@ static MACHINE_CONFIG_START( mcb216, mcb216_state ) /* video hardware */ MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0) - MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(mcb216_state, kbd_put)) + MCFG_GENERIC_TERMINAL_KEYBOARD_CB(PUT(mcb216_state, kbd_put)) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( cb308, mcb216_state ) +static MACHINE_CONFIG_START( cb308 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 4000000) MCFG_CPU_PROGRAM_MAP(cb308_mem) @@ -136,7 +136,7 @@ static MACHINE_CONFIG_START( cb308, mcb216_state ) /* video hardware */ MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0) - MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(mcb216_state, kbd_put)) + MCFG_GENERIC_TERMINAL_KEYBOARD_CB(PUT(mcb216_state, kbd_put)) MACHINE_CONFIG_END /* ROM definition */ @@ -156,6 +156,6 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1979, mcb216, 0, 0, mcb216, mcb216, driver_device, 0, "Cromemco", "MCB-216", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW ) -COMP( 1977, cb308, mcb216, 0, cb308, mcb216, driver_device, 0, "Cromemco", "CB-308", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ +COMP( 1979, mcb216, 0, 0, mcb216, mcb216, mcb216_state, 0, "Cromemco", "MCB-216", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW ) +COMP( 1977, cb308, mcb216, 0, cb308, mcb216, mcb216_state, 0, "Cromemco", "CB-308", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW ) diff --git a/src/mame/drivers/mccpm.cpp b/src/mame/drivers/mccpm.cpp index b008301b972..03003623456 100644 --- a/src/mame/drivers/mccpm.cpp +++ b/src/mame/drivers/mccpm.cpp @@ -74,7 +74,7 @@ public: required_device m_terminal; DECLARE_READ8_MEMBER(mccpm_f0_r); DECLARE_READ8_MEMBER(mccpm_f1_r); - DECLARE_WRITE8_MEMBER(kbd_put); + void kbd_put(u8 data); required_shared_ptr m_p_ram; uint8_t m_term_data; virtual void machine_reset() override; @@ -119,12 +119,12 @@ void mccpm_state::machine_reset() memcpy(m_p_ram, bios, 0x1000); } -WRITE8_MEMBER( mccpm_state::kbd_put ) +void mccpm_state::kbd_put(u8 data) { m_term_data = data; } -static MACHINE_CONFIG_START( mccpm, mccpm_state ) +static MACHINE_CONFIG_START( mccpm ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80, XTAL_4MHz) MCFG_CPU_PROGRAM_MAP(mccpm_mem) @@ -132,7 +132,7 @@ static MACHINE_CONFIG_START( mccpm, mccpm_state ) /* video hardware */ MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0) - MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(mccpm_state, kbd_put)) + MCFG_GENERIC_TERMINAL_KEYBOARD_CB(PUT(mccpm_state, kbd_put)) MACHINE_CONFIG_END /* ROM definition */ @@ -148,5 +148,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1981, mccpm, 0, 0, mccpm, mccpm, driver_device, 0, "GRAF Elektronik Systeme GmbH", "mc-CP/M-Computer", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1981, mccpm, 0, 0, mccpm, mccpm, mccpm_state, 0, "GRAF Elektronik Systeme GmbH", "mc-CP/M-Computer", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/mcr.cpp b/src/mame/drivers/mcr.cpp index 473d593a37f..f23f8a8afad 100644 --- a/src/mame/drivers/mcr.cpp +++ b/src/mame/drivers/mcr.cpp @@ -1756,7 +1756,7 @@ static const char *const twotiger_sample_names[] = *************************************/ /* 90009 CPU board plus 90908/90913/91483 sound board */ -static MACHINE_CONFIG_START( mcr_90009, mcr_state ) +static MACHINE_CONFIG_START( mcr_90009 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, MAIN_OSC_MCR_I/8) diff --git a/src/mame/drivers/mcr3.cpp b/src/mame/drivers/mcr3.cpp index 966eb0c4bf6..86e679b00a8 100644 --- a/src/mame/drivers/mcr3.cpp +++ b/src/mame/drivers/mcr3.cpp @@ -1084,7 +1084,7 @@ GFXDECODE_END *************************************/ /* Core MCR monoboard system with no sound */ -static MACHINE_CONFIG_START( mcrmono, mcr3_state ) +static MACHINE_CONFIG_START( mcrmono ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, MASTER_CLOCK/4) diff --git a/src/mame/drivers/mcr68.cpp b/src/mame/drivers/mcr68.cpp index d24ea59af70..dc51a33f966 100644 --- a/src/mame/drivers/mcr68.cpp +++ b/src/mame/drivers/mcr68.cpp @@ -889,7 +889,7 @@ GFXDECODE_END =================================================================*/ -static MACHINE_CONFIG_START( mcr68, mcr68_state ) +static MACHINE_CONFIG_START( mcr68 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 7723800) diff --git a/src/mame/drivers/meadows.cpp b/src/mame/drivers/meadows.cpp index 4d7032e1587..32e492caa48 100644 --- a/src/mame/drivers/meadows.cpp +++ b/src/mame/drivers/meadows.cpp @@ -610,7 +610,7 @@ static const char *const bowl3d_sample_names[] = * *************************************/ -static MACHINE_CONFIG_START( meadows, meadows_state ) +static MACHINE_CONFIG_START( meadows ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", S2650, MASTER_CLOCK/8) /* 5MHz / 8 = 625 kHz */ @@ -647,7 +647,7 @@ static MACHINE_CONFIG_START( meadows, meadows_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( minferno, meadows_state ) +static MACHINE_CONFIG_START( minferno ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", S2650, MASTER_CLOCK/24) /* 5MHz / 8 / 3 = 208.33 kHz */ @@ -671,7 +671,7 @@ static MACHINE_CONFIG_START( minferno, meadows_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( bowl3d, meadows_state ) +static MACHINE_CONFIG_START( bowl3d ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", S2650, MASTER_CLOCK/8) /* 5MHz / 8 = 625 kHz */ @@ -881,7 +881,7 @@ DRIVER_INIT_MEMBER(meadows_state,minferno) * *************************************/ -GAMEL( 1978, deadeye, 0, meadows, meadows, driver_device, 0, ROT0, "Meadows Games, Inc.", "Dead Eye", 0, layout_deadeye ) -GAME ( 1978, bowl3d, 0, bowl3d, bowl3d, driver_device, 0, ROT90, "Meadows Games, Inc.", "3-D Bowling", MACHINE_NO_SOUND ) -GAMEL( 1978, gypsyjug, 0, meadows, meadows, meadows_state, gypsyjug, ROT0, "Meadows Games, Inc.", "Gypsy Juggler", MACHINE_IMPERFECT_GRAPHICS, layout_gypsyjug ) +GAMEL( 1978, deadeye, 0, meadows, meadows, meadows_state, 0, ROT0, "Meadows Games, Inc.", "Dead Eye", 0, layout_deadeye ) +GAME ( 1978, bowl3d, 0, bowl3d, bowl3d, meadows_state, 0, ROT90, "Meadows Games, Inc.", "3-D Bowling", MACHINE_NO_SOUND ) +GAMEL( 1978, gypsyjug, 0, meadows, meadows, meadows_state, gypsyjug, ROT0, "Meadows Games, Inc.", "Gypsy Juggler", MACHINE_IMPERFECT_GRAPHICS, layout_gypsyjug ) GAMEL( 1978, minferno, 0, minferno, minferno, meadows_state, minferno, ROT0, "Meadows Games, Inc.", "Inferno (Meadows)", MACHINE_NO_SOUND, layout_minferno ) diff --git a/src/mame/drivers/meadwttl.cpp b/src/mame/drivers/meadwttl.cpp index 58f51227d44..7413708041d 100644 --- a/src/mame/drivers/meadwttl.cpp +++ b/src/mame/drivers/meadwttl.cpp @@ -49,7 +49,7 @@ public: } // devices - required_device m_maincpu; + required_device m_maincpu; required_device m_video; protected: @@ -92,7 +92,7 @@ void meadwttl_state::video_start() { } -static MACHINE_CONFIG_START( meadows, meadwttl_state ) +static MACHINE_CONFIG_START( meadows ) /* basic machine hardware */ MCFG_DEVICE_ADD("maincpu", NETLIST_CPU, NETLIST_CLOCK) @@ -165,7 +165,7 @@ ROM_END -GAME( 1976, bombaway, 0, meadows, 0, driver_device, 0, ROT0, "Meadows", "Bombs Away [TTL]", MACHINE_IS_SKELETON ) -GAME( 1976, ckidzo, 0, meadows, 0, driver_device, 0, ROT0, "Meadows", "Ckidzo [TTL]", MACHINE_IS_SKELETON ) -GAME( 1976, cgunship, 0, meadows, 0, driver_device, 0, ROT0, "Meadows", "Cobra Gunship [TTL]", MACHINE_IS_SKELETON ) -GAME( 1976, mead4in1, 0, meadows, 0, driver_device, 0, ROT0, "Meadows", "Meadows 4 in 1 [TTL]", MACHINE_IS_SKELETON ) +GAME( 1976, bombaway, 0, meadows, 0, meadwttl_state, 0, ROT0, "Meadows", "Bombs Away [TTL]", MACHINE_IS_SKELETON ) +GAME( 1976, ckidzo, 0, meadows, 0, meadwttl_state, 0, ROT0, "Meadows", "Ckidzo [TTL]", MACHINE_IS_SKELETON ) +GAME( 1976, cgunship, 0, meadows, 0, meadwttl_state, 0, ROT0, "Meadows", "Cobra Gunship [TTL]", MACHINE_IS_SKELETON ) +GAME( 1976, mead4in1, 0, meadows, 0, meadwttl_state, 0, ROT0, "Meadows", "Meadows 4 in 1 [TTL]", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/mediagx.cpp b/src/mame/drivers/mediagx.cpp index 8afdc14d266..989c9006bc3 100644 --- a/src/mame/drivers/mediagx.cpp +++ b/src/mame/drivers/mediagx.cpp @@ -870,7 +870,7 @@ static ADDRESS_MAP_START( ramdac_map, AS_0, 8, mediagx_state ) AM_RANGE(0x000, 0x3ff) AM_DEVREADWRITE("ramdac",ramdac_device,ramdac_pal_r,ramdac_rgb666_w) ADDRESS_MAP_END -static MACHINE_CONFIG_START( mediagx, mediagx_state ) +static MACHINE_CONFIG_START( mediagx ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", MEDIAGX, 166000000) diff --git a/src/mame/drivers/megadriv.cpp b/src/mame/drivers/megadriv.cpp index 5b37f4d7320..b1c29f07c1c 100644 --- a/src/mame/drivers/megadriv.cpp +++ b/src/mame/drivers/megadriv.cpp @@ -369,18 +369,15 @@ WRITE_LINE_MEMBER(md_cons_state::screen_vblank_console) m_vdp->m_megadriv_scanline_timer->adjust(attotime::zero); if (m_32x) - { - m_32x->m_32x_vblank_flag = 0; - m_32x->m_32x_hcount_compare_val = -1; - m_32x->update_total_scanlines(mode3); - } + m_32x->screen_eof(mode3); + if (m_segacd) m_segacd->update_total_scanlines(mode3); } } } -static MACHINE_CONFIG_START( ms_megadriv, md_cons_state ) +static MACHINE_CONFIG_START( ms_megadriv ) MCFG_FRAGMENT_ADD( md_ntsc ) MCFG_MACHINE_START_OVERRIDE(md_cons_state, ms_megadriv) @@ -393,7 +390,7 @@ static MACHINE_CONFIG_START( ms_megadriv, md_cons_state ) MCFG_SOFTWARE_LIST_ADD("cart_list","megadriv") MACHINE_CONFIG_END -static MACHINE_CONFIG_START( ms_megadpal, md_cons_state ) +static MACHINE_CONFIG_START( ms_megadpal ) MCFG_FRAGMENT_ADD( md_pal ) MCFG_MACHINE_START_OVERRIDE(md_cons_state, ms_megadriv) @@ -581,7 +578,7 @@ void md_cons_state::_32x_scanline_helper_callback(int scanline) m_32x->_32x_render_videobuffer_to_screenbuffer_helper(scanline); } -static MACHINE_CONFIG_START( genesis_32x, md_cons_state ) +static MACHINE_CONFIG_START( genesis_32x ) MCFG_FRAGMENT_ADD( md_ntsc ) MCFG_MACHINE_START_OVERRIDE(md_cons_state, md_common) @@ -622,7 +619,7 @@ static MACHINE_CONFIG_START( genesis_32x, md_cons_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( mdj_32x, md_cons_state ) +static MACHINE_CONFIG_START( mdj_32x ) MCFG_FRAGMENT_ADD( md_ntsc ) MCFG_MACHINE_START_OVERRIDE(md_cons_state, md_common) @@ -663,7 +660,7 @@ static MACHINE_CONFIG_START( mdj_32x, md_cons_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( md_32x, md_cons_state ) +static MACHINE_CONFIG_START( md_32x ) MCFG_FRAGMENT_ADD( md_pal ) MCFG_MACHINE_START_OVERRIDE(md_cons_state, md_common) @@ -736,7 +733,7 @@ ROM_END /****************************************** SegaCD emulation ****************************************/ -static MACHINE_CONFIG_START( genesis_scd, md_cons_state ) +static MACHINE_CONFIG_START( genesis_scd ) MCFG_FRAGMENT_ADD( md_ntsc ) MCFG_MACHINE_START_OVERRIDE(md_cons_state, ms_megacd) @@ -754,7 +751,7 @@ static MACHINE_CONFIG_START( genesis_scd, md_cons_state ) MCFG_SOFTWARE_LIST_ADD("cd_list","segacd") MACHINE_CONFIG_END -static MACHINE_CONFIG_START( md_scd, md_cons_state ) +static MACHINE_CONFIG_START( md_scd ) MCFG_FRAGMENT_ADD( md_pal ) MCFG_MACHINE_START_OVERRIDE(md_cons_state, ms_megacd) @@ -772,7 +769,7 @@ static MACHINE_CONFIG_START( md_scd, md_cons_state ) MCFG_SOFTWARE_LIST_ADD("cd_list","megacd") MACHINE_CONFIG_END -static MACHINE_CONFIG_START( mdj_scd, md_cons_state ) +static MACHINE_CONFIG_START( mdj_scd ) MCFG_FRAGMENT_ADD( md_ntsc ) MCFG_MACHINE_START_OVERRIDE(md_cons_state, ms_megacd) diff --git a/src/mame/drivers/megadrvb.cpp b/src/mame/drivers/megadrvb.cpp index c474d004107..22dfbbe709d 100644 --- a/src/mame/drivers/megadrvb.cpp +++ b/src/mame/drivers/megadrvb.cpp @@ -283,7 +283,7 @@ static ADDRESS_MAP_START( md_bootleg_map, AS_PROGRAM, 16, md_boot_state ) AM_RANGE(0xe00000, 0xe0ffff) AM_RAM AM_MIRROR(0x1f0000) AM_SHARE("megadrive_ram") ADDRESS_MAP_END -MACHINE_CONFIG_START( md_bootleg, md_boot_state ) +MACHINE_CONFIG_START( md_bootleg ) MCFG_FRAGMENT_ADD( md_ntsc ) MCFG_CPU_MODIFY("maincpu") @@ -678,7 +678,7 @@ INPUT_PORTS_END * *************************************/ -static MACHINE_CONFIG_START( megadrvb, md_boot_state ) +static MACHINE_CONFIG_START( megadrvb ) MCFG_FRAGMENT_ADD(md_ntsc) MCFG_MACHINE_START_OVERRIDE(md_boot_state, md_bootleg) MACHINE_CONFIG_END @@ -697,7 +697,7 @@ MACHINE_START_MEMBER(md_boot_state, md_6button) m_io_timeout[i] = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(md_base_state::io_timeout_timer_callback),this), (void*)(uintptr_t)i); } -static MACHINE_CONFIG_START( megadrvb_6b, md_boot_state ) +static MACHINE_CONFIG_START( megadrvb_6b ) MCFG_FRAGMENT_ADD(md_ntsc) MCFG_MACHINE_START_OVERRIDE(md_boot_state, md_6button) MACHINE_CONFIG_END diff --git a/src/mame/drivers/megaphx.cpp b/src/mame/drivers/megaphx.cpp index 56581c376f4..8123e2a96ef 100644 --- a/src/mame/drivers/megaphx.cpp +++ b/src/mame/drivers/megaphx.cpp @@ -350,7 +350,7 @@ WRITE8_MEMBER(megaphx_state::port_c_w) } -static MACHINE_CONFIG_START( megaphx, megaphx_state ) +static MACHINE_CONFIG_START( megaphx ) MCFG_CPU_ADD("maincpu", M68000, 8000000) // ?? can't read xtal due to reflections, CPU is an 8Mhz part MCFG_CPU_PROGRAM_MAP(megaphx_68k_map) diff --git a/src/mame/drivers/megaplay.cpp b/src/mame/drivers/megaplay.cpp index 812e2e65b08..7981be137f2 100644 --- a/src/mame/drivers/megaplay.cpp +++ b/src/mame/drivers/megaplay.cpp @@ -625,9 +625,9 @@ uint32_t mplay_state::screen_update_megplay(screen_device &screen, bitmap_rgb32 for (int y = 0; y < 224; y++) { uint32_t* lineptr = &bitmap.pix32(y); - uint32_t* srcptr = &m_vdp1->get_bitmap().pix32(y + SEGA315_5124_TBORDER_START + SEGA315_5124_NTSC_224_TBORDER_HEIGHT); + uint32_t* srcptr = &m_vdp1->get_bitmap().pix32(y + sega315_5124_device::TBORDER_START + sega315_5124_device::NTSC_224_TBORDER_HEIGHT); - for (int x = 0; x < SEGA315_5124_WIDTH; x++) + for (int x = 0; x < sega315_5124_device::WIDTH; x++) { uint32_t src = srcptr[x] & 0xffffff; @@ -651,7 +651,7 @@ MACHINE_RESET_MEMBER(mplay_state,megaplay) MACHINE_RESET_CALL_MEMBER(megadriv); } -static MACHINE_CONFIG_START( megaplay, mplay_state ) +static MACHINE_CONFIG_START( megaplay ) /* basic machine hardware */ MCFG_FRAGMENT_ADD(md_ntsc) @@ -686,8 +686,8 @@ static MACHINE_CONFIG_START( megaplay, mplay_state ) /* New update functions to handle the extra layer */ MCFG_SCREEN_MODIFY("megadriv") MCFG_SCREEN_RAW_PARAMS(XTAL_10_738635MHz/2, \ - SEGA315_5124_WIDTH , SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH, SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH + 256, \ - SEGA315_5124_HEIGHT_NTSC, SEGA315_5124_TBORDER_START + SEGA315_5124_NTSC_224_TBORDER_HEIGHT, SEGA315_5124_TBORDER_START + SEGA315_5124_NTSC_224_TBORDER_HEIGHT + 224) + 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_224_TBORDER_HEIGHT, sega315_5124_device::TBORDER_START + sega315_5124_device::NTSC_224_TBORDER_HEIGHT + 224) MCFG_SCREEN_UPDATE_DRIVER(mplay_state, screen_update_megplay) // Megaplay has an additional SMS VDP as an overlay @@ -967,9 +967,9 @@ didn't have original Sega part numbers it's probably a converted TWC cart /* 02 */ GAME( 1993, mp_gaxe2, megaplay, megaplay, mp_gaxe2, mplay_state, megaplay, ROT0, "Sega", "Golden Axe II (Mega Play) (Rev B)" , 0 ) /* 02 */ GAME( 1993, mp_gaxe2a,mp_gaxe2, megaplay, mp_gaxe2, mplay_state, megaplay, ROT0, "Sega", "Golden Axe II (Mega Play)" , 0 ) /* 03 */ GAME( 1993, mp_gslam, megaplay, megaplay, mp_gslam, mplay_state, megaplay, ROT0, "Sega", "Grand Slam (Mega Play)",0 ) -/* 04 */ GAME( 1993, mp_twc, megaplay, megaplay, mp_twc, mplay_state, megaplay, ROT0, "Sega", "Tecmo World Cup (Mega Play)" , 0 ) -/* 05 */ GAME( 1993, mp_sor2, megaplay, megaplay, mp_sor2, mplay_state, megaplay, ROT0, "Sega", "Streets of Rage II (Mega Play)" , 0 ) -/* 06 */ GAME( 1993, mp_bio, megaplay, megaplay, mp_bio, mplay_state, megaplay, ROT0, "Sega", "Bio-hazard Battle (Mega Play)" , 0 ) +/* 04 */ GAME( 1993, mp_twc, megaplay, megaplay, mp_twc, mplay_state, megaplay, ROT0, "Sega", "Tecmo World Cup (Mega Play)" , 0 ) +/* 05 */ GAME( 1993, mp_sor2, megaplay, megaplay, mp_sor2, mplay_state, megaplay, ROT0, "Sega", "Streets of Rage II (Mega Play)" , 0 ) +/* 06 */ GAME( 1993, mp_bio, megaplay, megaplay, mp_bio, mplay_state, megaplay, ROT0, "Sega", "Bio-hazard Battle (Mega Play)" , 0 ) /* 07 */ GAME( 1993, mp_soni2, megaplay, megaplay, mp_soni2, mplay_state, megaplay, ROT0, "Sega", "Sonic The Hedgehog 2 (Mega Play)" , 0 ) /* 08 */ /* 09 */ GAME( 1993, mp_shnb3, megaplay, megaplay, mp_shnb3, mplay_state, megaplay, ROT0, "Sega", "Shinobi III (Mega Play)" , 0 ) diff --git a/src/mame/drivers/megasys1.cpp b/src/mame/drivers/megasys1.cpp index f3f05649d8a..2ffbc7f2376 100644 --- a/src/mame/drivers/megasys1.cpp +++ b/src/mame/drivers/megasys1.cpp @@ -1604,7 +1604,7 @@ GFXDECODE_END /* Provided by Jim Hernandez: 3.5MHz for FM, 30KHz (!) for ADPCM */ -static MACHINE_CONFIG_START( system_A, megasys1_state ) +static MACHINE_CONFIG_START( system_A ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, SYS_A_CPU_CLOCK) /* 6MHz verified */ @@ -1649,11 +1649,11 @@ static MACHINE_CONFIG_START( system_A, megasys1_state ) MCFG_SOUND_ROUTE(0, "lspeaker", 0.80) MCFG_SOUND_ROUTE(1, "rspeaker", 0.80) - MCFG_OKIM6295_ADD("oki1", OKI4_SOUND_CLOCK, OKIM6295_PIN7_HIGH) /* 4MHz verified */ + MCFG_OKIM6295_ADD("oki1", OKI4_SOUND_CLOCK, PIN7_HIGH) /* 4MHz verified */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.30) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.30) - MCFG_OKIM6295_ADD("oki2", OKI4_SOUND_CLOCK, OKIM6295_PIN7_HIGH) /* 4MHz verified */ + MCFG_OKIM6295_ADD("oki2", OKI4_SOUND_CLOCK, PIN7_HIGH) /* 4MHz verified */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.30) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.30) MACHINE_CONFIG_END @@ -1693,7 +1693,7 @@ static MACHINE_CONFIG_DERIVED( system_B_monkelf, system_B ) MCFG_CPU_PROGRAM_MAP(megasys1B_monkelf_map) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( system_Bbl, megasys1_state ) +static MACHINE_CONFIG_START( system_Bbl ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, SYS_B_CPU_CLOCK) @@ -1727,7 +1727,7 @@ static MACHINE_CONFIG_START( system_Bbl, megasys1_state ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") /* just the one OKI, used for sound and music */ - MCFG_OKIM6295_ADD("oki1", OKI4_SOUND_CLOCK, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki1", OKI4_SOUND_CLOCK, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.30) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.30) MACHINE_CONFIG_END @@ -1736,11 +1736,11 @@ static MACHINE_CONFIG_DERIVED( system_B_hayaosi1, system_B ) /* basic machine hardware */ - MCFG_OKIM6295_REPLACE("oki1", 2000000, OKIM6295_PIN7_HIGH) /* correct speed, but unknown OSC + divider combo */ + MCFG_OKIM6295_REPLACE("oki1", 2000000, PIN7_HIGH) /* correct speed, but unknown OSC + divider combo */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.30) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.30) - MCFG_OKIM6295_REPLACE("oki2", 2000000, OKIM6295_PIN7_HIGH) /* correct speed, but unknown OSC + divider combo */ + MCFG_OKIM6295_REPLACE("oki2", 2000000, PIN7_HIGH) /* correct speed, but unknown OSC + divider combo */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.30) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.30) MACHINE_CONFIG_END @@ -1771,7 +1771,7 @@ MACHINE_CONFIG_END ***************************************************************************/ -static MACHINE_CONFIG_START( system_D, megasys1_state ) +static MACHINE_CONFIG_START( system_D ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, SYS_D_CPU_CLOCK) /* 8MHz */ @@ -1802,7 +1802,7 @@ static MACHINE_CONFIG_START( system_D, megasys1_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki1", SYS_D_CPU_CLOCK/4, OKIM6295_PIN7_HIGH) /* 2MHz (8MHz / 4) */ + MCFG_OKIM6295_ADD("oki1", SYS_D_CPU_CLOCK/4, PIN7_HIGH) /* 2MHz (8MHz / 4) */ MCFG_DEVICE_ADDRESS_MAP(AS_0, megasys1D_oki_map) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -1821,7 +1821,7 @@ MACHINE_CONFIG_END ***************************************************************************/ -static MACHINE_CONFIG_START( system_Z, megasys1_state ) +static MACHINE_CONFIG_START( system_Z ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, SYS_A_CPU_CLOCK) /* 6MHz (12MHz / 2) */ @@ -4591,14 +4591,14 @@ DRIVER_INIT_MEMBER(megasys1_state,monkelf) *************************************/ // Type Z -GAME( 1988, lomakai, 0, system_Z, lomakai, driver_device, 0, ROT0, "Jaleco", "Legend of Makai (World)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, makaiden, lomakai, system_Z, lomakai, driver_device, 0, ROT0, "Jaleco", "Makai Densetsu (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, lomakai, 0, system_Z, lomakai, megasys1_state, 0, ROT0, "Jaleco", "Legend of Makai (World)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, makaiden, lomakai, system_Z, lomakai, megasys1_state, 0, ROT0, "Jaleco", "Makai Densetsu (Japan)", MACHINE_SUPPORTS_SAVE ) // Type A -GAME( 1988, p47, 0, system_A, p47, driver_device, 0, ROT0, "Jaleco", "P-47 - The Phantom Fighter (World)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, p47j, p47, system_A, p47, driver_device, 0, ROT0, "Jaleco", "P-47 - The Freedom Fighter (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, p47je, p47, system_A, p47, driver_device, 0, ROT0, "Jaleco", "P-47 - The Freedom Fighter (Japan, Export)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, kickoff, 0, system_A, kickoff, driver_device, 0, ROT0, "Jaleco", "Kick Off (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, p47, 0, system_A, p47, megasys1_state, 0, ROT0, "Jaleco", "P-47 - The Phantom Fighter (World)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, p47j, p47, system_A, p47, megasys1_state, 0, ROT0, "Jaleco", "P-47 - The Freedom Fighter (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, p47je, p47, system_A, p47, megasys1_state, 0, ROT0, "Jaleco", "P-47 - The Freedom Fighter (Japan, Export)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, kickoff, 0, system_A, kickoff, megasys1_state, 0, ROT0, "Jaleco", "Kick Off (Japan)", MACHINE_SUPPORTS_SAVE ) GAME( 1988, tshingen, 0, system_A, tshingen, megasys1_state, phantasm, ROT0, "Jaleco", "Shingen Samurai-Fighter (Japan, English)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) GAME( 1988, tshingena,tshingen, system_A, tshingen, megasys1_state, phantasm, ROT0, "Jaleco", "Takeda Shingen (Japan, Japanese)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) GAME( 1988, kazan, 0, system_A_iganinju, kazan, megasys1_state, iganinju, ROT0, "Jaleco", "Ninja Kazan (World)", MACHINE_SUPPORTS_SAVE ) @@ -4626,7 +4626,7 @@ GAME( 1990, monkelf, avspirit, system_B_monkelf, avspirit, megasys1_state, mon GAME( 1991, edf, 0, system_B, edf, megasys1_state, edf, ROT0, "Jaleco", "E.D.F. : Earth Defense Force (set 1)", MACHINE_SUPPORTS_SAVE ) GAME( 1991, edfa, edf, system_B, edf, megasys1_state, edf, ROT0, "Jaleco", "E.D.F. : Earth Defense Force (set 2)", MACHINE_SUPPORTS_SAVE ) GAME( 1991, edfu, edf, system_B, edf, megasys1_state, edf, ROT0, "Jaleco", "E.D.F. : Earth Defense Force (North America)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, edfbl, edf, system_Bbl, edf, driver_device, 0, ROT0, "bootleg","E.D.F. : Earth Defense Force (bootleg)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1991, edfbl, edf, system_Bbl, edf, megasys1_state, 0, ROT0, "bootleg","E.D.F. : Earth Defense Force (bootleg)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) GAME( 1993, hayaosi1, 0, system_B_hayaosi1, hayaosi1, megasys1_state, hayaosi1, ROT0, "Jaleco", "Hayaoshi Quiz Ouza Ketteisen - The King Of Quiz", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // Type C diff --git a/src/mame/drivers/megatech.cpp b/src/mame/drivers/megatech.cpp index bb69e9ffa70..a2f6dfb4c3d 100644 --- a/src/mame/drivers/megatech.cpp +++ b/src/mame/drivers/megatech.cpp @@ -617,9 +617,9 @@ uint32_t mtech_state::screen_update_main(screen_device &screen, bitmap_rgb32 &bi for (int y = 0; y < 224; y++) { uint32_t* lineptr = &bitmap.pix32(y); - uint32_t* srcptr = &m_vdp->get_bitmap().pix32(y + SEGA315_5124_TBORDER_START + SEGA315_5124_NTSC_224_TBORDER_HEIGHT); + uint32_t* srcptr = &m_vdp->get_bitmap().pix32(y + sega315_5124_device::TBORDER_START + sega315_5124_device::NTSC_224_TBORDER_HEIGHT); - for (int x = 0; x < SEGA315_5124_WIDTH; x++) + for (int x = 0; x < sega315_5124_device::WIDTH; x++) lineptr[x] = srcptr[x]; } #endif @@ -668,7 +668,7 @@ uint32_t mtech_state::screen_update_menu(screen_device &screen, bitmap_rgb32 &bi } -static MACHINE_CONFIG_START( megatech, mtech_state ) +static MACHINE_CONFIG_START( megatech ) /* basic machine hardware */ MCFG_FRAGMENT_ADD(md_ntsc) @@ -696,8 +696,8 @@ static MACHINE_CONFIG_START( megatech, mtech_state ) MCFG_SCREEN_MODIFY("megadriv") MCFG_SCREEN_RAW_PARAMS(XTAL_10_738635MHz/2, \ - SEGA315_5124_WIDTH , SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH, SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH + 256, \ - SEGA315_5124_HEIGHT_NTSC, SEGA315_5124_TBORDER_START + SEGA315_5124_NTSC_224_TBORDER_HEIGHT, SEGA315_5124_TBORDER_START + SEGA315_5124_NTSC_224_TBORDER_HEIGHT + 224) + 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_224_TBORDER_HEIGHT, sega315_5124_device::TBORDER_START + sega315_5124_device::NTSC_224_TBORDER_HEIGHT + 224) MCFG_SCREEN_UPDATE_DRIVER(mtech_state, screen_update_main) MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(mtech_state, screen_vblank_main)) @@ -707,8 +707,8 @@ static MACHINE_CONFIG_START( megatech, mtech_state ) MCFG_SCREEN_ADD("menu", RASTER) // check frq MCFG_SCREEN_RAW_PARAMS(XTAL_10_738635MHz/2, \ - SEGA315_5124_WIDTH , SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH, SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH + 256, \ - SEGA315_5124_HEIGHT_NTSC, SEGA315_5124_TBORDER_START + SEGA315_5124_NTSC_224_TBORDER_HEIGHT, SEGA315_5124_TBORDER_START + SEGA315_5124_NTSC_224_TBORDER_HEIGHT + 224) + 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_224_TBORDER_HEIGHT, sega315_5124_device::TBORDER_START + sega315_5124_device::NTSC_224_TBORDER_HEIGHT + 224) MCFG_SCREEN_UPDATE_DRIVER(mtech_state, screen_update_menu) MCFG_DEVICE_ADD("vdp1", SEGA315_5246, 0) diff --git a/src/mame/drivers/megazone.cpp b/src/mame/drivers/megazone.cpp index 7385f732ac6..85928fbea61 100644 --- a/src/mame/drivers/megazone.cpp +++ b/src/mame/drivers/megazone.cpp @@ -59,7 +59,7 @@ WRITE8_MEMBER(megazone_state::megazone_port_b_w) C += 220000; /* 220000pF = 0.22uF */ data >>= 2; - dynamic_cast(machine().device(fltname[i]))->filter_rc_set_RC(FLT_RC_LOWPASS, 1000, 2200, 200, CAP_P(C)); + downcast(machine().device(fltname[i]))->filter_rc_set_RC(filter_rc_device::LOWPASS, 1000, 2200, 200, CAP_P(C)); } } @@ -235,7 +235,7 @@ INTERRUPT_GEN_MEMBER(megazone_state::vblank_irq) } -static MACHINE_CONFIG_START( megazone, megazone_state ) +static MACHINE_CONFIG_START( megazone ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", KONAMI1, 18432000/9) /* 2 MHz */ @@ -515,8 +515,8 @@ ROM_START( megazonec ) ROM_END -GAME( 1983, megazone, 0, megazone, megazone, driver_device, 0, ROT90, "Konami", "Mega Zone (Konami set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, megazonea, megazone, megazone, megazona, driver_device, 0, ROT90, "Konami", "Mega Zone (Konami set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, megazoneb, megazone, megazone, megazone, driver_device, 0, ROT90, "Konami (Kosuka license)", "Mega Zone (Kosuka set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, megazonec, megazone, megazone, megazone, driver_device, 0, ROT90, "Konami (Kosuka license)", "Mega Zone (Kosuka set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, megazonei, megazone, megazone, megazone, driver_device, 0, ROT90, "Konami (Interlogic license)", "Mega Zone (Interlogic)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, megazone, 0, megazone, megazone, megazone_state, 0, ROT90, "Konami", "Mega Zone (Konami set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, megazonea, megazone, megazone, megazona, megazone_state, 0, ROT90, "Konami", "Mega Zone (Konami set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, megazoneb, megazone, megazone, megazone, megazone_state, 0, ROT90, "Konami (Kosuka license)", "Mega Zone (Kosuka set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, megazonec, megazone, megazone, megazone, megazone_state, 0, ROT90, "Konami (Kosuka license)", "Mega Zone (Kosuka set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, megazonei, megazone, megazone, megazone, megazone_state, 0, ROT90, "Konami (Interlogic license)", "Mega Zone (Interlogic)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/meijinsn.cpp b/src/mame/drivers/meijinsn.cpp index 116b72b6784..92e12ed11e7 100644 --- a/src/mame/drivers/meijinsn.cpp +++ b/src/mame/drivers/meijinsn.cpp @@ -350,7 +350,7 @@ void meijinsn_state::machine_reset() } -static MACHINE_CONFIG_START( meijinsn, meijinsn_state ) +static MACHINE_CONFIG_START( meijinsn ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 9000000 ) @@ -414,4 +414,4 @@ ROM_START( meijinsn ) ROM_LOAD( "clr", 0x00, 0x20, CRC(7b95b5a7) SHA1(c15be28bcd6f5ffdde659f2d352ae409f04b2557) ) ROM_END -GAME( 1986, meijinsn, 0, meijinsn, meijinsn, driver_device, 0, ROT0, "SNK", "Meijinsen", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, meijinsn, 0, meijinsn, meijinsn, meijinsn_state, 0, ROT0, "SNK", "Meijinsen", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/mekd2.cpp b/src/mame/drivers/mekd2.cpp index 4bdfb6e8ef8..69b2269e7dc 100644 --- a/src/mame/drivers/mekd2.cpp +++ b/src/mame/drivers/mekd2.cpp @@ -364,7 +364,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(mekd2_state::mekd2_p) ************************************************************/ -static MACHINE_CONFIG_START( mekd2, mekd2_state ) +static MACHINE_CONFIG_START( mekd2 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6800, XTAL_MEKD2 / 2) /* 614.4 kHz */ MCFG_CPU_PROGRAM_MAP(mekd2_mem) @@ -424,5 +424,5 @@ ROM_END ***************************************************************************/ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1977, mekd2, 0, 0, mekd2, mekd2, driver_device, 0, "Motorola", "MEK6800D2" , 0 ) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 1977, mekd2, 0, 0, mekd2, mekd2, mekd2_state, 0, "Motorola", "MEK6800D2" , 0 ) diff --git a/src/mame/drivers/mephisto.cpp b/src/mame/drivers/mephisto.cpp index 03f660ccf15..0649fd98a7a 100644 --- a/src/mame/drivers/mephisto.cpp +++ b/src/mame/drivers/mephisto.cpp @@ -354,7 +354,7 @@ void mephisto_state::machine_reset() } -static MACHINE_CONFIG_START( mephisto, mephisto_state ) +static MACHINE_CONFIG_START( mephisto ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",M65C02,4915200) /* 65C02 */ MCFG_CPU_PROGRAM_MAP(mephisto_mem) @@ -456,7 +456,7 @@ DRIVER_INIT_MEMBER(mephisto_state,mephisto) ***************************************************************************/ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ +/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ CONS( 1984, mm2, mm4, 0, mm2, mephisto, mephisto_state, mephisto, "Hegener & Glaser", "Mephisto MM2 Schachcomputer", MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK | MACHINE_CLICKABLE_ARTWORK ) CONS( 1986, rebel5, mm4, 0, rebel5, mephisto, mephisto_state, mephisto, "Hegener & Glaser", "Mephisto Rebell 5,0 Schachcomputer", MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK | MACHINE_CLICKABLE_ARTWORK ) diff --git a/src/mame/drivers/mephistp.cpp b/src/mame/drivers/mephistp.cpp index 9f2c8fb6cad..103459f6e4d 100644 --- a/src/mame/drivers/mephistp.cpp +++ b/src/mame/drivers/mephistp.cpp @@ -162,7 +162,7 @@ void mephisto_pinball_state::machine_reset() { } -static MACHINE_CONFIG_START( mephisto, mephisto_pinball_state ) +static MACHINE_CONFIG_START( mephisto ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8088, XTAL_18MHz/3) MCFG_CPU_PROGRAM_MAP(mephisto_map) @@ -247,6 +247,6 @@ ROM_START(mephistp1) ROM_END -GAME(1987, mephistp, 0, mephisto, mephisto, driver_device, 0, ROT0, "Stargame", "Mephisto (rev. 1.2)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1987, mephistp1, mephistp, mephisto, mephisto, driver_device, 0, ROT0, "Stargame", "Mephisto (rev. 1.1)", MACHINE_IS_SKELETON_MECHANICAL) -//GAME(1988, sport2k, 0, sport2k, sport2k, driver_device, 0, ROT0, "Unidesa", "Cirsa Sport 2000", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1987, mephistp, 0, mephisto, mephisto, mephisto_pinball_state, 0, ROT0, "Stargame", "Mephisto (rev. 1.2)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1987, mephistp1, mephistp, mephisto, mephisto, mephisto_pinball_state, 0, ROT0, "Stargame", "Mephisto (rev. 1.1)", MACHINE_IS_SKELETON_MECHANICAL) +//GAME(1988, sport2k, 0, sport2k, sport2k, mephisto_pinball_state, 0, ROT0, "Unidesa", "Cirsa Sport 2000", MACHINE_IS_SKELETON_MECHANICAL) diff --git a/src/mame/drivers/merit.cpp b/src/mame/drivers/merit.cpp index 14351066f71..e360fc2df53 100644 --- a/src/mame/drivers/merit.cpp +++ b/src/mame/drivers/merit.cpp @@ -1357,7 +1357,7 @@ MACHINE_START_MEMBER(merit_state,casino5) membank("bank2")->set_entry(0); } -static MACHINE_CONFIG_START( pitboss, merit_state ) +static MACHINE_CONFIG_START( pitboss ) MCFG_CPU_ADD("maincpu",Z80, CPU_CLOCK) MCFG_CPU_PROGRAM_MAP(pitboss_map) MCFG_CPU_IO_MAP(trvwhiz_io_map) @@ -2451,34 +2451,34 @@ DRIVER_INIT_MEMBER(merit_state,dtrvwz5) /* Gambling type games */ -GAME( 1983, pitboss, 0, pitboss, pitbossa, driver_device, 0, ROT0, "Merit", "The Pit Boss (2214-07, U5-0A)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS ) /* "7" hand written over a 5 */ -GAME( 1983, pitboss04, pitboss, casino5, pitboss, driver_device, 0, ROT0, "Merit", "The Pit Boss (2214-04)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1983, pitboss03, pitboss, pitboss, pitbossa, driver_device, 0, ROT0, "Merit", "The Pit Boss (2214-03, U5-0C)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1983, pitboss03a, pitboss, pitboss, pitbossa1,driver_device, 0, ROT0, "Merit", "The Pit Boss (2214-03, U5-1C)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1983, pitbossm4, pitboss, pitboss, pitbossb, driver_device, 0, ROT0, "Merit", "The Pit Boss (M4A1)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1983, pitbossps, pitboss, pitboss, pitbossa, driver_device, 0, ROT0, "Merit", "The Pit Boss (PSB1)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1983, mdchoice, pitboss, pitboss, mdchoice, driver_device, 0, ROT0, "Merit", "Dealer's Choice (E4A1)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS ) /* Copyright year based on other Pit Boss sets */ -GAME( 1983, mpchoice, pitboss, pitboss, mpchoice, driver_device, 0, ROT0, "Merit", "Player's Choice (M4C1)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1983, pitboss, 0, pitboss, pitbossa, merit_state, 0, ROT0, "Merit", "The Pit Boss (2214-07, U5-0A)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS ) /* "7" hand written over a 5 */ +GAME( 1983, pitboss04, pitboss, casino5, pitboss, merit_state, 0, ROT0, "Merit", "The Pit Boss (2214-04)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1983, pitboss03, pitboss, pitboss, pitbossa, merit_state, 0, ROT0, "Merit", "The Pit Boss (2214-03, U5-0C)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1983, pitboss03a, pitboss, pitboss, pitbossa1,merit_state, 0, ROT0, "Merit", "The Pit Boss (2214-03, U5-1C)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1983, pitbossm4, pitboss, pitboss, pitbossb, merit_state, 0, ROT0, "Merit", "The Pit Boss (M4A1)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1983, pitbossps, pitboss, pitboss, pitbossa, merit_state, 0, ROT0, "Merit", "The Pit Boss (PSB1)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1983, mdchoice, pitboss, pitboss, mdchoice, merit_state, 0, ROT0, "Merit", "Dealer's Choice (E4A1)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS ) /* Copyright year based on other Pit Boss sets */ +GAME( 1983, mpchoice, pitboss, pitboss, mpchoice, merit_state, 0, ROT0, "Merit", "Player's Choice (M4C1)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1989, casino5, 0, casino5, casino5, driver_device, 0, ROT0, "Merit", "Casino Five (3315-02, U5-2B)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, casino5a, casino5, casino5, casino5, driver_device, 0, ROT0, "Merit", "Casino Five (3315-02, U5-0)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, casino5, 0, casino5, casino5, merit_state, 0, ROT0, "Merit", "Casino Five (3315-02, U5-2B)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, casino5a, casino5, casino5, casino5, merit_state, 0, ROT0, "Merit", "Casino Five (3315-02, U5-0)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, mroundup, 0, pitboss, mroundup, driver_device, 0, ROT0, "Merit", "The Round Up", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL ) +GAME( 1984, mroundup, 0, pitboss, mroundup, merit_state, 0, ROT0, "Merit", "The Round Up", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL ) -GAME( 1984, chkndraw, 0, pitboss, chkndraw, driver_device, 0, ROT0, "Merit", "Chicken Draw (2131-04, U5-1)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1984, chkndrawa, chkndraw, pitboss, chkndraw, driver_device, 0, ROT0, "Merit", "Chicken Draw (2131-04, U5-0)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1984, chkndraw, 0, pitboss, chkndraw, merit_state, 0, ROT0, "Merit", "Chicken Draw (2131-04, U5-1)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1984, chkndrawa, chkndraw, pitboss, chkndraw, merit_state, 0, ROT0, "Merit", "Chicken Draw (2131-04, U5-0)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1987, riviera, 0, dodge, riviera, driver_device, 0, ROT0, "Merit", "Riviera Hi-Score (2131-08, U5-4A)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1986, rivieraa, riviera, dodge, riviera, driver_device, 0, ROT0, "Merit", "Riviera Hi-Score (2131-08, U5-4)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1986, rivierab, riviera, dodge, rivierab, driver_device, 0, ROT0, "Merit", "Riviera Hi-Score (2131-08, U5-2D)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1987, riviera, 0, dodge, riviera, merit_state, 0, ROT0, "Merit", "Riviera Hi-Score (2131-08, U5-4A)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1986, rivieraa, riviera, dodge, riviera, merit_state, 0, ROT0, "Merit", "Riviera Hi-Score (2131-08, U5-4)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1986, rivierab, riviera, dodge, rivierab, merit_state, 0, ROT0, "Merit", "Riviera Hi-Score (2131-08, U5-2D)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1986, bigappg, 0, bigappg, bigappg, driver_device, 0, ROT0, "Big Apple Games / Merit", "The Big Apple (2131-13, U5-0)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, misdraw, 0, misdraw, bigappg, driver_device, 0, ROT0, "Big Apple Games / Merit", "Michigan Super Draw (2131-16, U5-2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, iowapp, 0, dodge, iowapp, driver_device, 0, ROT0, "Merit", "Iowa Premium Player (2131-21, U5-1)", MACHINE_SUPPORTS_SAVE ) /* Copyright year based on rom label */ +GAME( 1986, bigappg, 0, bigappg, bigappg, merit_state, 0, ROT0, "Big Apple Games / Merit", "The Big Apple (2131-13, U5-0)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, misdraw, 0, misdraw, bigappg, merit_state, 0, ROT0, "Big Apple Games / Merit", "Michigan Super Draw (2131-16, U5-2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, iowapp, 0, dodge, iowapp, merit_state, 0, ROT0, "Merit", "Iowa Premium Player (2131-21, U5-1)", MACHINE_SUPPORTS_SAVE ) /* Copyright year based on rom label */ -GAME( 1986, dodgectya,dodgecty,dodge, dodge, driver_device, 0, ROT0, "Merit", "Dodge City (2131-82, U5-0D)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) -GAME( 1986, dodgectyb,dodgecty,dodge, dodge, driver_device, 0, ROT0, "Merit", "Dodge City (2131-82, U5-50)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) -GAME( 1986, dodgectyc,dodgecty,dodge, dodge, driver_device, 0, ROT0, "Merit", "Dodge City (2131-82, U5-0 GT)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) +GAME( 1986, dodgectya,dodgecty,dodge, dodge, merit_state, 0, ROT0, "Merit", "Dodge City (2131-82, U5-0D)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) +GAME( 1986, dodgectyb,dodgecty,dodge, dodge, merit_state, 0, ROT0, "Merit", "Dodge City (2131-82, U5-50)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) +GAME( 1986, dodgectyc,dodgecty,dodge, dodge, merit_state, 0, ROT0, "Merit", "Dodge City (2131-82, U5-0 GT)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) /* Trivia and Word games */ @@ -2508,6 +2508,6 @@ GAME( 1986, phrcrazev,phrcraze,phrcraze, phrcrazs, merit_state, key_7, ROT90, " GAME( 1987, dtrvwz5, 0, dtrvwz5, dtrvwh5, merit_state, dtrvwz5,ROT0, "Merit", "Deluxe Trivia ? Whiz (6221-70, U5-0A Edition 5)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, couple, 0, couple, couple, merit_state, couple, ROT0, "Merit", "The Couples (set 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_UNEMULATED_PROTECTION ) -GAME( 1988, couplep, couple, couple, couplep, merit_state, couple, ROT0, "Merit", "The Couples (set 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_UNEMULATED_PROTECTION ) -GAME( 1988, couplei, couple, couple, couple, merit_state, couple, ROT0, "Merit", "The Couples (set 3)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_UNEMULATED_PROTECTION ) +GAME( 1988, couple, 0, couple, couple, merit_state, couple, ROT0, "Merit", "The Couples (set 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_UNEMULATED_PROTECTION ) +GAME( 1988, couplep, couple, couple, couplep, merit_state, couple, ROT0, "Merit", "The Couples (set 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_UNEMULATED_PROTECTION ) +GAME( 1988, couplei, couple, couple, couple, merit_state, couple, ROT0, "Merit", "The Couples (set 3)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_UNEMULATED_PROTECTION ) diff --git a/src/mame/drivers/meritm.cpp b/src/mame/drivers/meritm.cpp index ddaedf1cc29..f1cf7319f2b 100644 --- a/src/mame/drivers/meritm.cpp +++ b/src/mame/drivers/meritm.cpp @@ -1085,7 +1085,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(meritm_state::vblank_end_tick) m_z80pio_0->port_a_write(m_vint); } -static MACHINE_CONFIG_START( meritm_crt250, meritm_state ) +static MACHINE_CONFIG_START( meritm_crt250 ) MCFG_CPU_ADD("maincpu", Z80, SYSTEM_CLK/6) MCFG_CPU_PROGRAM_MAP(meritm_crt250_map) MCFG_CPU_IO_MAP(meritm_crt250_io_map) @@ -2292,63 +2292,63 @@ DRIVER_INIT_MEMBER(meritm_state,megat3te) } /* CRT-250 */ -GAME( 1987, americna, 0, meritm_crt250, americna, driver_device, 0, ROT0, "Merit", "Americana (9131-01)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1987, americnaa, americna, meritm_crt250, americna, driver_device, 0, ROT0, "Merit", "Americana (9131-00)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1988, meritjp, 0, meritm_crt250, americna, driver_device, 0, ROT0, "Merit", "Merit Joker Poker (9131-09)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1988, dodgecty, 0, meritm_crt250, dodgecty, driver_device, 0, ROT0, "Merit", "Dodge City (9131-02)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1988, pitboss2, 0, meritm_crt250, pitboss2, driver_device, 0, ROT0, "Merit", "Pit Boss II (9221-01C)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1988, spitboss, 0, meritm_crt250, spitboss, driver_device, 0, ROT0, "Merit", "Super Pit Boss (9221-02A)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1990, pitbosss, 0, meritm_crt250, pitbosss, driver_device, 0, ROT0, "Merit", "Pit Boss Superstar (9221-10-00B)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1990, pitbosssa, pitbosss, meritm_crt250, pitbosss, driver_device, 0, ROT0, "Merit", "Pit Boss Superstar (9221-10-00A)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1992, pitbosssc, pitbosss, meritm_crt250, pitbosss, driver_device, 0, ROT0, "Merit", "Pit Boss Superstar (9221-12-01)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1987, americna, 0, meritm_crt250, americna, meritm_state, 0, ROT0, "Merit", "Americana (9131-01)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1987, americnaa, americna, meritm_crt250, americna, meritm_state, 0, ROT0, "Merit", "Americana (9131-00)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1988, meritjp, 0, meritm_crt250, americna, meritm_state, 0, ROT0, "Merit", "Merit Joker Poker (9131-09)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1988, dodgecty, 0, meritm_crt250, dodgecty, meritm_state, 0, ROT0, "Merit", "Dodge City (9131-02)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1988, pitboss2, 0, meritm_crt250, pitboss2, meritm_state, 0, ROT0, "Merit", "Pit Boss II (9221-01C)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1988, spitboss, 0, meritm_crt250, spitboss, meritm_state, 0, ROT0, "Merit", "Super Pit Boss (9221-02A)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1990, pitbosss, 0, meritm_crt250, pitbosss, meritm_state, 0, ROT0, "Merit", "Pit Boss Superstar (9221-10-00B)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1990, pitbosssa, pitbosss, meritm_crt250, pitbosss, meritm_state, 0, ROT0, "Merit", "Pit Boss Superstar (9221-10-00A)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1992, pitbosssc, pitbosss, meritm_crt250, pitbosss, meritm_state, 0, ROT0, "Merit", "Pit Boss Superstar (9221-12-01)", MACHINE_IMPERFECT_GRAPHICS ) /* CRT-250 + CRT-252 + CRT-256 + CRT-258 */ -GAME( 1994, mtjpoker, 0, meritm_crt250_crt252_crt258, mtjpoker, driver_device, 0, ROT0, "Merit", "Merit Touch Joker Poker (9132-00)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1994, megat, 0, meritm_crt250_crt252_crt258, pbst30, driver_device, 0, ROT0, "Merit", "Pit Boss Megatouch (9234-20-01)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1994, pbst30, 0, meritm_crt250_crt252_crt258, pbst30, driver_device, 0, ROT0, "Merit", "Pit Boss Supertouch 30 (9234-10-01)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1993, pbst30a, pbst30, meritm_crt250_crt252_crt258, pbst30, driver_device, 0, ROT0, "Merit", "Pit Boss Supertouch 30 (9234-00-01)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1994, mtjpoker, 0, meritm_crt250_crt252_crt258, mtjpoker, meritm_state, 0, ROT0, "Merit", "Merit Touch Joker Poker (9132-00)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1994, megat, 0, meritm_crt250_crt252_crt258, pbst30, meritm_state, 0, ROT0, "Merit", "Pit Boss Megatouch (9234-20-01)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1994, pbst30, 0, meritm_crt250_crt252_crt258, pbst30, meritm_state, 0, ROT0, "Merit", "Pit Boss Supertouch 30 (9234-10-01)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1993, pbst30a, pbst30, meritm_crt250_crt252_crt258, pbst30, meritm_state, 0, ROT0, "Merit", "Pit Boss Supertouch 30 (9234-00-01)", MACHINE_IMPERFECT_GRAPHICS ) /* CRT-250 + CRT-254 + CRT-256 */ -GAME( 1993, pbss330, 0, meritm_crt250_questions, pbss330, driver_device, 0, ROT0, "Merit", "Pit Boss Superstar III 30 (9233-00-01)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1994, pitbossm, 0, meritm_crt250_questions, pitbossm, driver_device, 0, ROT0, "Merit", "Pit Boss Megastar (9244-00-01)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1994, pitbossma, pitbossm, meritm_crt250_questions, pitbossa, driver_device, 0, ROT0, "Merit", "Pit Boss Megastar (9243-00-01)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1993, pbss330, 0, meritm_crt250_questions, pbss330, meritm_state, 0, ROT0, "Merit", "Pit Boss Superstar III 30 (9233-00-01)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1994, pitbossm, 0, meritm_crt250_questions, pitbossm, meritm_state, 0, ROT0, "Merit", "Pit Boss Megastar (9244-00-01)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1994, pitbossma, pitbossm, meritm_crt250_questions, pitbossa, meritm_state, 0, ROT0, "Merit", "Pit Boss Megastar (9243-00-01)", MACHINE_IMPERFECT_GRAPHICS ) /* CRT-260 NON-touchscreen based */ -GAME( 1995, realbrod, 0, meritm_crt260, realbrod, driver_device, 0, ROT0, "Merit", "The Real Broadway (9131-20-00 R0A)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1995, realbrod, 0, meritm_crt260, realbrod, meritm_state, 0, ROT0, "Merit", "The Real Broadway (9131-20-00 R0A)", MACHINE_IMPERFECT_GRAPHICS ) /* CRT-260 */ -GAME( 1994, megat2, 0, meritm_crt260, meritm_crt260, driver_device, 0, ROT0, "Merit", "Pit Boss Megatouch II (9255-10-01 ROG, Standard version)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1994, megat2a , megat2, meritm_crt260, meritm_crt260, driver_device, 0, ROT0, "Merit", "Pit Boss Megatouch II (9255-10-01 ROE, Standard version)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1994, megat2b , megat2, meritm_crt260, meritm_crt260, driver_device, 0, ROT0, "Merit", "Pit Boss Megatouch II (9255-10-01 ROD, Standard version)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1994, megat2mn, megat2, meritm_crt260, meritm_crt260, driver_device, 0, ROT0, "Merit", "Pit Boss Megatouch II (9255-10-02 ROG, Minnesota version)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1994, megat2ca, megat2, meritm_crt260, meritm_crt260, driver_device, 0, ROT0, "Merit", "Pit Boss Megatouch II (9255-10-06 ROG, California version)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1994, megat2caa, megat2, meritm_crt260, meritm_crt260, driver_device, 0, ROT0, "Merit", "Pit Boss Megatouch II (9255-10-06 ROE, California version)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1996, megat3, 0, meritm_crt260, meritm_crt260, driver_device, 0, ROT0, "Merit", "Megatouch III (9255-20-01 RON, Standard version)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1995, megat3a, megat3, meritm_crt260, meritm_crt260, driver_device, 0, ROT0, "Merit", "Megatouch III (9255-20-01 ROK, Standard version)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1995, megat3b, megat3, meritm_crt260, meritm_crt260, driver_device, 0, ROT0, "Merit", "Megatouch III (9255-20-01 ROF, Standard version)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1995, megat3c, megat3, meritm_crt260, meritm_crt260, driver_device, 0, ROT0, "Merit", "Megatouch III (9255-20-01 ROB, Standard version)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1995, megat3d, megat3, meritm_crt260, meritm_crt260, driver_device, 0, ROT0, "Merit", "Megatouch III (9255-20-01 ROA, Standard version)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1996, megat3ca, megat3, meritm_crt260, meritm_crt260, driver_device, 0, ROT0, "Merit", "Megatouch III (9255-20-06 RON, California version)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1995, megat3caa, megat3, meritm_crt260, meritm_crt260, driver_device, 0, ROT0, "Merit", "Megatouch III (9255-20-06 ROD, California version)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1995, megat3nj, megat3, meritm_crt260, meritm_crt260, driver_device, 0, ROT0, "Merit", "Megatouch III (9255-20-07 ROG, New Jersey version)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1996, megat3te, megat3, meritm_crt260, meritm_crt260, meritm_state, megat3te, ROT0, "Merit", "Megatouch III Tournament Edition (9255-30-01 ROE, Standard version)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1996, megat4, 0, meritm_crt260, meritm_crt260, driver_device, 0, ROT0, "Merit", "Megatouch IV (9255-40-01 ROE, Standard version)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1996, megat4a, megat4, meritm_crt260, meritm_crt260, driver_device, 0, ROT0, "Merit", "Megatouch IV (9255-40-01 ROD, Standard version)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1996, megat4b, megat4, meritm_crt260, meritm_crt260, driver_device, 0, ROT0, "Merit", "Megatouch IV (9255-40-01 ROB, Standard version)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1996, megat4c, megat4, meritm_crt260, meritm_crt260, driver_device, 0, ROT0, "Merit", "Megatouch IV (9255-40-01 ROA, Standard version)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1996, megat4d, megat4, meritm_crt260, meritm_crt260, driver_device, 0, ROT0, "Merit", "Megatouch IV (9255-40-01 RO, Standard version)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1996, megat4s, megat4, meritm_crt260, meritm_crt260, driver_device, 0, ROT0, "Merit", "Super Megatouch IV (9255-41-01 ROG, Standard version)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1996, megat4sa, megat4, meritm_crt260, meritm_crt260, driver_device, 0, ROT0, "Merit", "Super Megatouch IV (9255-41-01 ROE, Standard version)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1996, megat4sb, megat4, meritm_crt260, meritm_crt260, driver_device, 0, ROT0, "Merit", "Super Megatouch IV (9255-41-01 ROC, Standard version)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1996, megat4smn, megat4, meritm_crt260, meritm_crt260, driver_device, 0, ROT0, "Merit", "Super Megatouch IV (9255-41-02 ROC, Minnesota version)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1996, megat4snj, megat4, meritm_crt260, meritm_crt260, driver_device, 0, ROT0, "Merit", "Super Megatouch IV (9255-41-07 ROG, New Jersey version)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1996, megat4te, megat4, meritm_crt260, meritm_crt260, meritm_state, megat3te, ROT0, "Merit", "Megatouch IV Tournament Edition (9255-50-01 ROD, Standard version)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1996, megat4tea, megat4, meritm_crt260, meritm_crt260, meritm_state, megat3te, ROT0, "Merit", "Megatouch IV Tournament Edition (9255-50-01 ROA, Standard version)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1996, megat4st, megat4, meritm_crt260, meritm_crt260, meritm_state, megat3te, ROT0, "Merit", "Super Megatouch IV Tournament Edition (9255-51-01 ROB, Standard version)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1996, megat4stg, megat4, meritm_crt260, meritm_crt260, meritm_state, megat3te, ROT0, "Merit", "Super Megatouch IV Turnier Version (9255-51-50 ROA, Bi-Lingual GER/ENG version)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1997, megat5, 0, meritm_crt260, meritm_crt260, driver_device, 0, ROT0, "Merit", "Megatouch 5 (9255-60-01 ROI, Standard version)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1997, megat5a, megat5, meritm_crt260, meritm_crt260, driver_device, 0, ROT0, "Merit", "Megatouch 5 (9255-60-01 ROC, Standard version)", MACHINE_IMPERFECT_GRAPHICS|MACHINE_NOT_WORKING ) -GAME( 1998, megat5nj, megat5, meritm_crt260, meritm_crt260, driver_device, 0, ROT0, "Merit", "Megatouch 5 (9255-60-07 RON, New Jersey version)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1998, megat5t, megat5, meritm_crt260, meritm_crt260, meritm_state, megat3te, ROT0, "Merit", "Megatouch 5 Tournament Edition (9255-70-01 ROC, Standard version)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1998, megat5tg, megat5, meritm_crt260, meritm_crt260, meritm_state, megat3te, ROT0, "Merit", "Megatouch 5 Turnier Version (9255-70-50 ROD, Bi-Lingual GER/ENG version)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1998, megat6, 0, meritm_crt260, meritm_crt260, driver_device, 0, ROT0, "Merit", "Megatouch 6 (9255-80-01 ROA, Standard version)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1994, megat2, 0, meritm_crt260, meritm_crt260, meritm_state, 0, ROT0, "Merit", "Pit Boss Megatouch II (9255-10-01 ROG, Standard version)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1994, megat2a , megat2, meritm_crt260, meritm_crt260, meritm_state, 0, ROT0, "Merit", "Pit Boss Megatouch II (9255-10-01 ROE, Standard version)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1994, megat2b , megat2, meritm_crt260, meritm_crt260, meritm_state, 0, ROT0, "Merit", "Pit Boss Megatouch II (9255-10-01 ROD, Standard version)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1994, megat2mn, megat2, meritm_crt260, meritm_crt260, meritm_state, 0, ROT0, "Merit", "Pit Boss Megatouch II (9255-10-02 ROG, Minnesota version)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1994, megat2ca, megat2, meritm_crt260, meritm_crt260, meritm_state, 0, ROT0, "Merit", "Pit Boss Megatouch II (9255-10-06 ROG, California version)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1994, megat2caa, megat2, meritm_crt260, meritm_crt260, meritm_state, 0, ROT0, "Merit", "Pit Boss Megatouch II (9255-10-06 ROE, California version)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1996, megat3, 0, meritm_crt260, meritm_crt260, meritm_state, 0, ROT0, "Merit", "Megatouch III (9255-20-01 RON, Standard version)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1995, megat3a, megat3, meritm_crt260, meritm_crt260, meritm_state, 0, ROT0, "Merit", "Megatouch III (9255-20-01 ROK, Standard version)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1995, megat3b, megat3, meritm_crt260, meritm_crt260, meritm_state, 0, ROT0, "Merit", "Megatouch III (9255-20-01 ROF, Standard version)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1995, megat3c, megat3, meritm_crt260, meritm_crt260, meritm_state, 0, ROT0, "Merit", "Megatouch III (9255-20-01 ROB, Standard version)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1995, megat3d, megat3, meritm_crt260, meritm_crt260, meritm_state, 0, ROT0, "Merit", "Megatouch III (9255-20-01 ROA, Standard version)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1996, megat3ca, megat3, meritm_crt260, meritm_crt260, meritm_state, 0, ROT0, "Merit", "Megatouch III (9255-20-06 RON, California version)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1995, megat3caa, megat3, meritm_crt260, meritm_crt260, meritm_state, 0, ROT0, "Merit", "Megatouch III (9255-20-06 ROD, California version)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1995, megat3nj, megat3, meritm_crt260, meritm_crt260, meritm_state, 0, ROT0, "Merit", "Megatouch III (9255-20-07 ROG, New Jersey version)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1996, megat3te, megat3, meritm_crt260, meritm_crt260, meritm_state, megat3te, ROT0, "Merit", "Megatouch III Tournament Edition (9255-30-01 ROE, Standard version)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1996, megat4, 0, meritm_crt260, meritm_crt260, meritm_state, 0, ROT0, "Merit", "Megatouch IV (9255-40-01 ROE, Standard version)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1996, megat4a, megat4, meritm_crt260, meritm_crt260, meritm_state, 0, ROT0, "Merit", "Megatouch IV (9255-40-01 ROD, Standard version)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1996, megat4b, megat4, meritm_crt260, meritm_crt260, meritm_state, 0, ROT0, "Merit", "Megatouch IV (9255-40-01 ROB, Standard version)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1996, megat4c, megat4, meritm_crt260, meritm_crt260, meritm_state, 0, ROT0, "Merit", "Megatouch IV (9255-40-01 ROA, Standard version)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1996, megat4d, megat4, meritm_crt260, meritm_crt260, meritm_state, 0, ROT0, "Merit", "Megatouch IV (9255-40-01 RO, Standard version)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1996, megat4s, megat4, meritm_crt260, meritm_crt260, meritm_state, 0, ROT0, "Merit", "Super Megatouch IV (9255-41-01 ROG, Standard version)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1996, megat4sa, megat4, meritm_crt260, meritm_crt260, meritm_state, 0, ROT0, "Merit", "Super Megatouch IV (9255-41-01 ROE, Standard version)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1996, megat4sb, megat4, meritm_crt260, meritm_crt260, meritm_state, 0, ROT0, "Merit", "Super Megatouch IV (9255-41-01 ROC, Standard version)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1996, megat4smn, megat4, meritm_crt260, meritm_crt260, meritm_state, 0, ROT0, "Merit", "Super Megatouch IV (9255-41-02 ROC, Minnesota version)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1996, megat4snj, megat4, meritm_crt260, meritm_crt260, meritm_state, 0, ROT0, "Merit", "Super Megatouch IV (9255-41-07 ROG, New Jersey version)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1996, megat4te, megat4, meritm_crt260, meritm_crt260, meritm_state, megat3te, ROT0, "Merit", "Megatouch IV Tournament Edition (9255-50-01 ROD, Standard version)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1996, megat4tea, megat4, meritm_crt260, meritm_crt260, meritm_state, megat3te, ROT0, "Merit", "Megatouch IV Tournament Edition (9255-50-01 ROA, Standard version)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1996, megat4st, megat4, meritm_crt260, meritm_crt260, meritm_state, megat3te, ROT0, "Merit", "Super Megatouch IV Tournament Edition (9255-51-01 ROB, Standard version)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1996, megat4stg, megat4, meritm_crt260, meritm_crt260, meritm_state, megat3te, ROT0, "Merit", "Super Megatouch IV Turnier Version (9255-51-50 ROA, Bi-Lingual GER/ENG version)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1997, megat5, 0, meritm_crt260, meritm_crt260, meritm_state, 0, ROT0, "Merit", "Megatouch 5 (9255-60-01 ROI, Standard version)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1997, megat5a, megat5, meritm_crt260, meritm_crt260, meritm_state, 0, ROT0, "Merit", "Megatouch 5 (9255-60-01 ROC, Standard version)", MACHINE_IMPERFECT_GRAPHICS|MACHINE_NOT_WORKING ) +GAME( 1998, megat5nj, megat5, meritm_crt260, meritm_crt260, meritm_state, 0, ROT0, "Merit", "Megatouch 5 (9255-60-07 RON, New Jersey version)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1998, megat5t, megat5, meritm_crt260, meritm_crt260, meritm_state, megat3te, ROT0, "Merit", "Megatouch 5 Tournament Edition (9255-70-01 ROC, Standard version)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1998, megat5tg, megat5, meritm_crt260, meritm_crt260, meritm_state, megat3te, ROT0, "Merit", "Megatouch 5 Turnier Version (9255-70-50 ROD, Bi-Lingual GER/ENG version)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1998, megat6, 0, meritm_crt260, meritm_crt260, meritm_state, 0, ROT0, "Merit", "Megatouch 6 (9255-80-01 ROA, Standard version)", MACHINE_IMPERFECT_GRAPHICS ) diff --git a/src/mame/drivers/mermaid.cpp b/src/mame/drivers/mermaid.cpp index 3451f363fc1..08f498f09b2 100644 --- a/src/mame/drivers/mermaid.cpp +++ b/src/mame/drivers/mermaid.cpp @@ -429,7 +429,7 @@ INTERRUPT_GEN_MEMBER(mermaid_state::vblank_irq) device.execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE); } -static MACHINE_CONFIG_START( mermaid, mermaid_state ) +static MACHINE_CONFIG_START( mermaid ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 4000000) // ??? @@ -473,7 +473,7 @@ static MACHINE_CONFIG_DERIVED( rougien, mermaid ) MCFG_SOUND_ADD("adpcm", MSM5205, 384000) MCFG_MSM5205_VCLK_CB(WRITELINE(mermaid_state, rougien_adpcm_int)) /* interrupt function */ - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S96_4B) + MCFG_MSM5205_PRESCALER_SELECTOR(S96_4B) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) MACHINE_CONFIG_END @@ -582,6 +582,6 @@ ROM_END /* Game Drivers */ -GAME( 1982, mermaid, 0, mermaid, mermaid, driver_device, 0, ROT0, "Sanritsu / Rock-Ola", "Mermaid", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) -GAME( 1982, yachtmn, mermaid, mermaid, yachtmn, driver_device, 0, ROT0, "Sanritsu / Esco", "Yachtsman", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) -GAME( 1982, rougien, 0, rougien, rougien, driver_device, 0, ROT0, "Sanritsu", "Rougien", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1982, mermaid, 0, mermaid, mermaid, mermaid_state, 0, ROT0, "Sanritsu / Rock-Ola", "Mermaid", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) +GAME( 1982, yachtmn, mermaid, mermaid, yachtmn, mermaid_state, 0, ROT0, "Sanritsu / Esco", "Yachtsman", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) +GAME( 1982, rougien, 0, rougien, rougien, mermaid_state, 0, ROT0, "Sanritsu", "Rougien", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS ) diff --git a/src/mame/drivers/mes.cpp b/src/mame/drivers/mes.cpp index d21bcae7a7a..fcbff5f8f06 100644 --- a/src/mame/drivers/mes.cpp +++ b/src/mame/drivers/mes.cpp @@ -21,7 +21,7 @@ public: , m_maincpu(*this, "maincpu") , m_p_videoram(*this, "videoram") , m_p_chargen(*this, "chargen") - { } + { } uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); @@ -102,7 +102,7 @@ uint32_t mes_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, c return 0; } -static MACHINE_CONFIG_START( mes, mes_state ) +static MACHINE_CONFIG_START( mes ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_16MHz / 4) MCFG_CPU_PROGRAM_MAP(mes_mem) @@ -136,5 +136,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 198?, mes, 0, 0, mes, mes, driver_device, 0, "Schleicher", "MES", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 198?, mes, 0, 0, mes, mes, mes_state, 0, "Schleicher", "MES", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) diff --git a/src/mame/drivers/metalmx.cpp b/src/mame/drivers/metalmx.cpp index bdb9d70843d..5d4f4b24870 100644 --- a/src/mame/drivers/metalmx.cpp +++ b/src/mame/drivers/metalmx.cpp @@ -685,7 +685,7 @@ INPUT_PORTS_END * *************************************/ -static MACHINE_CONFIG_START( metalmx, metalmx_state ) +static MACHINE_CONFIG_START( metalmx ) MCFG_CPU_ADD("maincpu", M68EC020, XTAL_14_31818MHz) MCFG_CPU_PROGRAM_MAP(main_map) diff --git a/src/mame/drivers/metlclsh.cpp b/src/mame/drivers/metlclsh.cpp index eb07074ab7f..90ce18be6fd 100644 --- a/src/mame/drivers/metlclsh.cpp +++ b/src/mame/drivers/metlclsh.cpp @@ -273,7 +273,7 @@ void metlclsh_state::machine_reset() m_gfxbank = 0; } -static MACHINE_CONFIG_START( metlclsh, metlclsh_state ) +static MACHINE_CONFIG_START( metlclsh ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809, 1500000) // ? @@ -416,4 +416,4 @@ ROM_START( metlclsh ) ROM_LOAD( "82s123.prm", 0x0000, 0x20, CRC(6844cc88) SHA1(89d23367aa6ff541205416e82781fe938dfeeb52) ) ROM_END -GAME( 1985, metlclsh, 0, metlclsh, metlclsh, driver_device, 0, ROT0, "Data East", "Metal Clash (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, metlclsh, 0, metlclsh, metlclsh, metlclsh_state, 0, ROT0, "Data East", "Metal Clash (Japan)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/metlfrzr.cpp b/src/mame/drivers/metlfrzr.cpp index 6ae92b9fc92..6d87987e312 100644 --- a/src/mame/drivers/metlfrzr.cpp +++ b/src/mame/drivers/metlfrzr.cpp @@ -356,7 +356,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(metlfrzr_state::scanline) m_maincpu->set_input_line_and_vector(0, HOLD_LINE,0x08); /* RST 08h */ } -static MACHINE_CONFIG_START(metlfrzr, metlfrzr_state) +static MACHINE_CONFIG_START(metlfrzr) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_12MHz / 2) diff --git a/src/mame/drivers/metro.cpp b/src/mame/drivers/metro.cpp index b70e4475287..73aab2891d9 100644 --- a/src/mame/drivers/metro.cpp +++ b/src/mame/drivers/metro.cpp @@ -1703,7 +1703,7 @@ public: DECLARE_WRITE_LINE_MEMBER( ce_w ); DECLARE_WRITE_LINE_MEMBER( clk_w ); - template static devcb_base &set_data_cb(device_t &device, _Object object) { return downcast(device).data_cb.set_callback(object); } + template static devcb_base &set_data_cb(device_t &device, Object &&cb) { return downcast(device).data_cb.set_callback(std::forward(cb)); } protected: virtual void device_start() override; @@ -1717,13 +1717,13 @@ private: uint8_t value; }; -const device_type PUZZLET_IO = device_creator; +DEFINE_DEVICE_TYPE(PUZZLET_IO, puzzlet_io_device, "puzzlet_io", "Puzzlet Coin/Start I/O") puzzlet_io_device::puzzlet_io_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, PUZZLET_IO, "Puzzlet Coin/Start I/O", tag, owner, clock, "puzzlet_io", __FILE__), - data_cb(*this), - port(*this, ":IN0") + : device_t(mconfig, PUZZLET_IO, tag, owner, clock) + , data_cb(*this) + , port(*this, ":IN0") { } @@ -3663,7 +3663,7 @@ void metro_state::machine_start() -static MACHINE_CONFIG_START( msgogo, metro_state ) +static MACHINE_CONFIG_START( msgogo ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz) @@ -3744,7 +3744,7 @@ static MACHINE_CONFIG_FRAGMENT( daitorid_upd7810_sound ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( daitorid, metro_state ) +static MACHINE_CONFIG_START( daitorid ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_32MHz/2) @@ -3777,12 +3777,12 @@ static MACHINE_CONFIG_START( daitorid, metro_state ) MCFG_YM2151_IRQ_HANDLER(INPUTLINE("audiocpu", UPD7810_INTF2)) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) - MCFG_OKIM6295_ADD("oki", 1200000, OKIM6295_PIN7_HIGH) // sample rate = M6295 clock / 132 + MCFG_OKIM6295_ADD("oki", 1200000, PIN7_HIGH) // sample rate = M6295 clock / 132 MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( dharma, metro_state ) +static MACHINE_CONFIG_START( dharma ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_24MHz/2) @@ -3811,7 +3811,7 @@ static MACHINE_CONFIG_START( dharma, metro_state ) MCFG_GENERIC_LATCH_8_ADD("soundlatch") - MCFG_OKIM6295_ADD("oki", XTAL_24MHz/20, OKIM6295_PIN7_HIGH) // sample rate = M6295 clock / 132 + MCFG_OKIM6295_ADD("oki", XTAL_24MHz/20, PIN7_HIGH) // sample rate = M6295 clock / 132 MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10) MCFG_SOUND_ADD("ymsnd", YM2413, XTAL_3_579545MHz) @@ -3819,7 +3819,7 @@ static MACHINE_CONFIG_START( dharma, metro_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( karatour, metro_state ) +static MACHINE_CONFIG_START( karatour ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_24MHz/2) @@ -3848,7 +3848,7 @@ static MACHINE_CONFIG_START( karatour, metro_state ) MCFG_GENERIC_LATCH_8_ADD("soundlatch") - MCFG_OKIM6295_ADD("oki", XTAL_24MHz/20, OKIM6295_PIN7_HIGH) // was /128.. so pin 7 not verified + MCFG_OKIM6295_ADD("oki", XTAL_24MHz/20, PIN7_HIGH) // was /128.. so pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10) MCFG_SOUND_ADD("ymsnd", YM2413, XTAL_3_579545MHz) @@ -3856,7 +3856,7 @@ static MACHINE_CONFIG_START( karatour, metro_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( 3kokushi, metro_state ) +static MACHINE_CONFIG_START( 3kokushi ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_24MHz/2) @@ -3885,7 +3885,7 @@ static MACHINE_CONFIG_START( 3kokushi, metro_state ) MCFG_GENERIC_LATCH_8_ADD("soundlatch") - MCFG_OKIM6295_ADD("oki", XTAL_24MHz/20, OKIM6295_PIN7_HIGH) // was /128.. so pin 7 not verified + MCFG_OKIM6295_ADD("oki", XTAL_24MHz/20, PIN7_HIGH) // was /128.. so pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10) MCFG_SOUND_ADD("ymsnd", YM2413, XTAL_3_579545MHz) @@ -3893,7 +3893,7 @@ static MACHINE_CONFIG_START( 3kokushi, metro_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( lastfort, metro_state ) +static MACHINE_CONFIG_START( lastfort ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_24MHz/2) @@ -3922,14 +3922,14 @@ static MACHINE_CONFIG_START( lastfort, metro_state ) MCFG_GENERIC_LATCH_8_ADD("soundlatch") - MCFG_OKIM6295_ADD("oki", XTAL_24MHz/20, OKIM6295_PIN7_LOW) // sample rate = M6295 clock / 165 + MCFG_OKIM6295_ADD("oki", XTAL_24MHz/20, PIN7_LOW) // sample rate = M6295 clock / 165 MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10) MCFG_SOUND_ADD("ymsnd", YM2413, XTAL_3_579545MHz) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.90) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( lastforg, metro_state ) +static MACHINE_CONFIG_START( lastforg ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_24MHz/2) @@ -3958,14 +3958,14 @@ static MACHINE_CONFIG_START( lastforg, metro_state ) MCFG_GENERIC_LATCH_8_ADD("soundlatch") - MCFG_OKIM6295_ADD("oki", XTAL_24MHz/20, OKIM6295_PIN7_HIGH) // was /128.. so pin 7 not verified + MCFG_OKIM6295_ADD("oki", XTAL_24MHz/20, PIN7_HIGH) // was /128.. so pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10) MCFG_SOUND_ADD("ymsnd", YM2413, XTAL_3_579545MHz) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.90) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( dokyusei, metro_state ) +static MACHINE_CONFIG_START( dokyusei ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz) @@ -3990,14 +3990,14 @@ static MACHINE_CONFIG_START( dokyusei, metro_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", 1056000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki", 1056000, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) MCFG_SOUND_ADD("ymsnd", YM2413, XTAL_3_579545MHz) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.90) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( dokyusp, metro_state ) +static MACHINE_CONFIG_START( dokyusp ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_32MHz/2) @@ -4026,7 +4026,7 @@ static MACHINE_CONFIG_START( dokyusp, metro_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", 2112000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki", 2112000, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) MCFG_SOUND_ADD("ymsnd", YM2413, XTAL_3_579545MHz) @@ -4034,7 +4034,7 @@ static MACHINE_CONFIG_START( dokyusp, metro_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( gakusai, metro_state ) +static MACHINE_CONFIG_START( gakusai ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 16000000) /* 26.6660MHz/2?, OSCs listed are 26.6660MHz & 3.579545MHz */ @@ -4063,7 +4063,7 @@ static MACHINE_CONFIG_START( gakusai, metro_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", 2112000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki", 2112000, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) MCFG_SOUND_ADD("ymsnd", YM2413, XTAL_3_579545MHz) @@ -4071,7 +4071,7 @@ static MACHINE_CONFIG_START( gakusai, metro_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( gakusai2, metro_state ) +static MACHINE_CONFIG_START( gakusai2 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 16000000) /* 26.6660MHz/2?, OSCs listed are 26.6660MHz & 3.579545MHz */ @@ -4100,7 +4100,7 @@ static MACHINE_CONFIG_START( gakusai2, metro_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", 2112000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki", 2112000, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) MCFG_SOUND_ADD("ymsnd", YM2413, XTAL_3_579545MHz) @@ -4108,7 +4108,7 @@ static MACHINE_CONFIG_START( gakusai2, metro_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( pangpoms, metro_state ) +static MACHINE_CONFIG_START( pangpoms ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_24MHz/2) @@ -4137,7 +4137,7 @@ static MACHINE_CONFIG_START( pangpoms, metro_state ) MCFG_GENERIC_LATCH_8_ADD("soundlatch") - MCFG_OKIM6295_ADD("oki", XTAL_24MHz/20, OKIM6295_PIN7_HIGH) // was /128.. so pin 7 not verified + MCFG_OKIM6295_ADD("oki", XTAL_24MHz/20, PIN7_HIGH) // was /128.. so pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10) MCFG_SOUND_ADD("ymsnd", YM2413, XTAL_3_579545MHz) @@ -4145,7 +4145,7 @@ static MACHINE_CONFIG_START( pangpoms, metro_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( poitto, metro_state ) +static MACHINE_CONFIG_START( poitto ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_24MHz/2) @@ -4174,7 +4174,7 @@ static MACHINE_CONFIG_START( poitto, metro_state ) MCFG_GENERIC_LATCH_8_ADD("soundlatch") - MCFG_OKIM6295_ADD("oki", XTAL_24MHz/20, OKIM6295_PIN7_HIGH) // was /128.. so pin 7 not verified + MCFG_OKIM6295_ADD("oki", XTAL_24MHz/20, PIN7_HIGH) // was /128.. so pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10) MCFG_SOUND_ADD("ymsnd", YM2413, XTAL_3_579545MHz) @@ -4182,7 +4182,7 @@ static MACHINE_CONFIG_START( poitto, metro_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( pururun, metro_state ) +static MACHINE_CONFIG_START( pururun ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_24MHz/2) /* Not confirmed */ @@ -4215,12 +4215,12 @@ static MACHINE_CONFIG_START( pururun, metro_state ) MCFG_YM2151_IRQ_HANDLER(INPUTLINE("audiocpu", UPD7810_INTF2)) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) - MCFG_OKIM6295_ADD("oki", XTAL_3_579545MHz/3, OKIM6295_PIN7_HIGH) // sample rate = M6295 clock / 132 + MCFG_OKIM6295_ADD("oki", XTAL_3_579545MHz/3, PIN7_HIGH) // sample rate = M6295 clock / 132 MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( skyalert, metro_state ) +static MACHINE_CONFIG_START( skyalert ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_24MHz/2) @@ -4249,7 +4249,7 @@ static MACHINE_CONFIG_START( skyalert, metro_state ) MCFG_GENERIC_LATCH_8_ADD("soundlatch") - MCFG_OKIM6295_ADD("oki", XTAL_24MHz/20, OKIM6295_PIN7_LOW) // sample rate = M6295 clock / 165 + MCFG_OKIM6295_ADD("oki", XTAL_24MHz/20, PIN7_LOW) // sample rate = M6295 clock / 165 MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10) MCFG_SOUND_ADD("ymsnd", YM2413, XTAL_3_579545MHz) @@ -4257,7 +4257,7 @@ static MACHINE_CONFIG_START( skyalert, metro_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( toride2g, metro_state ) +static MACHINE_CONFIG_START( toride2g ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_24MHz/2) @@ -4286,7 +4286,7 @@ static MACHINE_CONFIG_START( toride2g, metro_state ) MCFG_GENERIC_LATCH_8_ADD("soundlatch") - MCFG_OKIM6295_ADD("oki", XTAL_24MHz/20, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki", XTAL_24MHz/20, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10) MCFG_SOUND_ADD("ymsnd", YM2413, XTAL_3_579545MHz) @@ -4294,7 +4294,7 @@ static MACHINE_CONFIG_START( toride2g, metro_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( mouja, metro_state ) +static MACHINE_CONFIG_START( mouja ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz) @@ -4320,7 +4320,7 @@ static MACHINE_CONFIG_START( mouja, metro_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", XTAL_16MHz/1024*132, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki", XTAL_16MHz/1024*132, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_DEVICE_ADDRESS_MAP(AS_0, mouja_okimap) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) @@ -4329,7 +4329,7 @@ static MACHINE_CONFIG_START( mouja, metro_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( vmetal, metro_state ) +static MACHINE_CONFIG_START( vmetal ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz) @@ -4354,7 +4354,7 @@ static MACHINE_CONFIG_START( vmetal, metro_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", XTAL_1MHz, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", XTAL_1MHz, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) MCFG_ES8712_ADD("essnd", 12000) @@ -4365,7 +4365,7 @@ static MACHINE_CONFIG_START( vmetal, metro_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( blzntrnd, metro_state ) +static MACHINE_CONFIG_START( blzntrnd ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz) @@ -4415,7 +4415,7 @@ static MACHINE_CONFIG_DERIVED( gstrik2, blzntrnd ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( puzzlet, metro_state ) +static MACHINE_CONFIG_START( puzzlet ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", H83007, XTAL_20MHz) // H8/3007 - Hitachi HD6413007F20 CPU. Clock 20MHz @@ -4447,7 +4447,7 @@ static MACHINE_CONFIG_START( puzzlet, metro_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", XTAL_20MHz/5, OKIM6295_PIN7_LOW) + MCFG_OKIM6295_ADD("oki", XTAL_20MHz/5, PIN7_LOW) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) MCFG_SOUND_ADD("ymsnd", YM2413, XTAL_20MHz/5) diff --git a/src/mame/drivers/mexico86.cpp b/src/mame/drivers/mexico86.cpp index 1c63c75317b..2079685a432 100644 --- a/src/mame/drivers/mexico86.cpp +++ b/src/mame/drivers/mexico86.cpp @@ -423,7 +423,7 @@ void mexico86_state::machine_reset() m_charbank = 0; } -static MACHINE_CONFIG_START( mexico86, mexico86_state ) +static MACHINE_CONFIG_START( mexico86 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80, 24000000/4) /* 6 MHz, Uses clock divided 24MHz OSC */ @@ -699,9 +699,9 @@ ROM_END * *************************************/ -GAME( 1986, kikikai, 0, kikikai, kikikai, driver_device, 0, ROT90, "Taito Corporation", "KiKi KaiKai", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, knightb, kikikai, knightb, kikikai, driver_device, 0, ROT90, "bootleg", "Knight Boy", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, kicknrun, 0, mexico86, mexico86, driver_device, 0, ROT0, "Taito Corporation", "Kick and Run (World)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, kicknrunu,kicknrun, mexico86, mexico86, driver_device, 0, ROT0, "Taito America Corp", "Kick and Run (US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, mexico86, kicknrun, mexico86, mexico86, driver_device, 0, ROT0, "bootleg", "Mexico 86 (bootleg of Kick and Run) (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, mexico86a,kicknrun, mexico86, mexico86, driver_device, 0, ROT0, "bootleg", "Mexico 86 (bootleg of Kick and Run) (set 2)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +GAME( 1986, kikikai, 0, kikikai, kikikai, mexico86_state, 0, ROT90, "Taito Corporation", "KiKi KaiKai", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, knightb, kikikai, knightb, kikikai, mexico86_state, 0, ROT90, "bootleg", "Knight Boy", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, kicknrun, 0, mexico86, mexico86, mexico86_state, 0, ROT0, "Taito Corporation", "Kick and Run (World)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, kicknrunu,kicknrun, mexico86, mexico86, mexico86_state, 0, ROT0, "Taito America Corp", "Kick and Run (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, mexico86, kicknrun, mexico86, mexico86, mexico86_state, 0, ROT0, "bootleg", "Mexico 86 (bootleg of Kick and Run) (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, mexico86a,kicknrun, mexico86, mexico86, mexico86_state, 0, ROT0, "bootleg", "Mexico 86 (bootleg of Kick and Run) (set 2)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/meyc8080.cpp b/src/mame/drivers/meyc8080.cpp index e7b54bd7cd7..cd76389a247 100644 --- a/src/mame/drivers/meyc8080.cpp +++ b/src/mame/drivers/meyc8080.cpp @@ -579,7 +579,7 @@ INPUT_PORTS_END * *************************************/ -static MACHINE_CONFIG_START( meyc8080, meyc8080_state ) +static MACHINE_CONFIG_START( meyc8080 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8080, XTAL_20MHz / 10) // divider guessed @@ -732,8 +732,8 @@ ROM_END * *************************************/ -/* YEAR NAME PARENT MACHINE INPUT INIT ROT COMPANY FULLNAME FLAGS LAYOUT */ -GAMEL(1982, wldarrow, 0, meyc8080, wldarrow, driver_device, 0, ROT0, "Meyco Games, Inc.", "Wild Arrow (color, Standard V4.8)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_wldarrow ) // B&W version not dumped yet -GAMEL(1984, mdrawpkr, 0, meyc8080, mdrawpkr, driver_device, 0, ROT0, "Meyco Games, Inc.", "Draw Poker - Joker's Wild (Standard)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_mdrawpkr ) // year not shown, but it is in mdrawpkra -GAMEL(1984, mdrawpkra, mdrawpkr, meyc8080, mdrawpkra, driver_device, 0, ROT0, "Meyco Games, Inc.", "Draw Poker - Joker's Wild (02-11)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_mdrawpkr ) -GAMEL(1983, casbjack, 0, meyc8080, casbjack, driver_device, 0, ROT0, "Meyco Games, Inc.", "Casino Black Jack (color, Standard 00-05)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_meybjack ) // B&W version not dumped yet +// YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS LAYOUT +GAMEL(1982, wldarrow, 0, meyc8080, wldarrow, meyc8080_state, 0, ROT0, "Meyco Games, Inc.", "Wild Arrow (color, Standard V4.8)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_wldarrow ) // B&W version not dumped yet +GAMEL(1984, mdrawpkr, 0, meyc8080, mdrawpkr, meyc8080_state, 0, ROT0, "Meyco Games, Inc.", "Draw Poker - Joker's Wild (Standard)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_mdrawpkr ) // year not shown, but it is in mdrawpkra +GAMEL(1984, mdrawpkra, mdrawpkr, meyc8080, mdrawpkra, meyc8080_state, 0, ROT0, "Meyco Games, Inc.", "Draw Poker - Joker's Wild (02-11)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_mdrawpkr ) +GAMEL(1983, casbjack, 0, meyc8080, casbjack, meyc8080_state, 0, ROT0, "Meyco Games, Inc.", "Casino Black Jack (color, Standard 00-05)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_meybjack ) // B&W version not dumped yet diff --git a/src/mame/drivers/meyc8088.cpp b/src/mame/drivers/meyc8088.cpp index 6f00a018b00..b9c04a86964 100644 --- a/src/mame/drivers/meyc8088.cpp +++ b/src/mame/drivers/meyc8088.cpp @@ -345,7 +345,7 @@ INPUT_PORTS_END ***************************************************************************/ -static MACHINE_CONFIG_START( meyc8088, meyc8088_state ) +static MACHINE_CONFIG_START( meyc8088 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8088, (XTAL_15MHz / 3) * 0.95) // NOTE: underclocked to prevent errors on diagnostics, MAME i8088 cycle timing is probably inaccurate @@ -399,4 +399,4 @@ ROM_START( gldarrow ) ROM_END -GAMEL(1984, gldarrow, 0, meyc8088, gldarrow, driver_device, 0, ROT0, "Meyco Games, Inc.", "Golden Arrow (Standard G8-03)", 0, layout_gldarrow ) +GAMEL(1984, gldarrow, 0, meyc8088, gldarrow, meyc8088_state, 0, ROT0, "Meyco Games, Inc.", "Golden Arrow (Standard G8-03)", 0, layout_gldarrow ) diff --git a/src/mame/drivers/mgames.cpp b/src/mame/drivers/mgames.cpp index 64953836fdd..7137711733f 100644 --- a/src/mame/drivers/mgames.cpp +++ b/src/mame/drivers/mgames.cpp @@ -632,7 +632,7 @@ static GFXDECODE_START( mgames ) GFXDECODE_END -static MACHINE_CONFIG_START( mgames, mgames_state ) +static MACHINE_CONFIG_START( mgames ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80,MASTER_CLOCK/6) /* 3 MHz? */ MCFG_CPU_PROGRAM_MAP(main_map) @@ -680,5 +680,5 @@ ROM_END * Game Drivers * *************************/ -/* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS... LAYOUT */ -GAMEL( 1981, mgames, 0, mgames, mgames, driver_device, 0, ROT0, "Merit", "Match Games", MACHINE_WRONG_COLORS | MACHINE_NO_SOUND, layout_mgames ) +/* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS... LAYOUT */ +GAMEL( 1981, mgames, 0, mgames, mgames, mgames_state, 0, ROT0, "Merit", "Match Games", MACHINE_WRONG_COLORS | MACHINE_NO_SOUND, layout_mgames ) diff --git a/src/mame/drivers/mgavegas.cpp b/src/mame/drivers/mgavegas.cpp index 6b48e387cfa..654620edce3 100644 --- a/src/mame/drivers/mgavegas.cpp +++ b/src/mame/drivers/mgavegas.cpp @@ -59,9 +59,9 @@ public: m_ticket(*this, "hopper"), m_filter1(*this, "filter1"), m_filter2(*this, "filter2") + { } - { } uint8_t m_int; //OUT1 @@ -546,8 +546,8 @@ void mgavegas_state::machine_reset() m_mc=0; m_mr=0; - m_filter1->filter_rc_set_RC(FLT_RC_LOWPASS, 1000, 0, 0, CAP_N(1) ); /* RC out of MSM5205 R=1K C=1nF */ - m_filter2->filter_rc_set_RC(FLT_RC_HIGHPASS, 3846, 0, 0, CAP_N(100 )); /*ALP3B active-hybrid filter fc=2.6Khz 2poles???*/ + m_filter1->filter_rc_set_RC(filter_rc_device::LOWPASS, 1000, 0, 0, CAP_N(1) ); /* RC out of MSM5205 R=1K C=1nF */ + m_filter2->filter_rc_set_RC(filter_rc_device::HIGHPASS, 3846, 0, 0, CAP_N(100 )); /*ALP3B active-hybrid filter fc=2.6Khz 2poles???*/ } @@ -587,7 +587,7 @@ DRIVER_INIT_MEMBER(mgavegas_state,mgavegas133) *************************/ -static MACHINE_CONFIG_START( mgavegas, mgavegas_state ) +static MACHINE_CONFIG_START( mgavegas ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, CPU_CLK) MCFG_CPU_PROGRAM_MAP(mgavegas_map) @@ -607,7 +607,7 @@ static MACHINE_CONFIG_START( mgavegas, mgavegas_state ) MCFG_AY8910_PORT_B_READ_CB(READ8(mgavegas_state, ay8910_b_r)) MCFG_SOUND_ADD("5205", MSM5205, MSM_CLK) - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S64_4B) + MCFG_MSM5205_PRESCALER_SELECTOR(S64_4B) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "filter1", 2.0) @@ -656,7 +656,7 @@ ROM_END /************************* * Game Drivers * *************************/ -/* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS*/ +// YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS GAME( 1985, mgavegas, 0, mgavegas, mgavegas, mgavegas_state, mgavegas, ROT0, "MGA", "Vegas 1 (Ver 2.3 dual coin pulse, shorter)", MACHINE_MECHANICAL ) -GAME( 1985, mgavegas21, mgavegas, mgavegas, mgavegas, mgavegas_state, mgavegas21, ROT0, "MGA", "Vegas 1 (Ver 2.1 dual coin pulse, longer)", MACHINE_MECHANICAL ) -GAME( 1985, mgavegas133, mgavegas, mgavegas, mgavegas, mgavegas_state, mgavegas133,ROT0, "MGA", "Vegas 1 (Ver 1.33 single coin pulse)", MACHINE_MECHANICAL ) +GAME( 1985, mgavegas21, mgavegas, mgavegas, mgavegas, mgavegas_state, mgavegas21, ROT0, "MGA", "Vegas 1 (Ver 2.1 dual coin pulse, longer)", MACHINE_MECHANICAL ) +GAME( 1985, mgavegas133, mgavegas, mgavegas, mgavegas, mgavegas_state, mgavegas133,ROT0, "MGA", "Vegas 1 (Ver 1.33 single coin pulse)", MACHINE_MECHANICAL ) diff --git a/src/mame/drivers/mgolf.cpp b/src/mame/drivers/mgolf.cpp index 3a46e4c6c41..7b93183085f 100644 --- a/src/mame/drivers/mgolf.cpp +++ b/src/mame/drivers/mgolf.cpp @@ -362,7 +362,7 @@ void mgolf_state::machine_reset() } -static MACHINE_CONFIG_START( mgolf, mgolf_state ) +static MACHINE_CONFIG_START( mgolf ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, 12096000 / 16) /* ? */ @@ -409,4 +409,4 @@ ROM_START( mgolf ) ROM_END -GAME( 1978, mgolf, 0, mgolf, mgolf, driver_device, 0, ROT270, "Atari", "Atari Mini Golf (prototype)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1978, mgolf, 0, mgolf, mgolf, mgolf_state, 0, ROT270, "Atari", "Atari Mini Golf (prototype)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/mhavoc.cpp b/src/mame/drivers/mhavoc.cpp index a8dcde55d5b..122bef9afa8 100644 --- a/src/mame/drivers/mhavoc.cpp +++ b/src/mame/drivers/mhavoc.cpp @@ -526,7 +526,7 @@ INPUT_PORTS_END * *************************************/ -static MACHINE_CONFIG_START( mhavoc, mhavoc_state ) +static MACHINE_CONFIG_START( mhavoc ) /* basic machine hardware */ MCFG_CPU_ADD("alpha", M6502, MHAVOC_CLOCK_2_5M) /* 2.5 MHz */ @@ -805,9 +805,9 @@ ROM_END * *************************************/ -GAME( 1983, mhavoc, 0, mhavoc, mhavoc, driver_device, 0, ROT0, "Atari", "Major Havoc (rev 3)", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, mhavoc2, mhavoc, mhavoc, mhavoc, driver_device, 0, ROT0, "Atari", "Major Havoc (rev 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, mhavoc, 0, mhavoc, mhavoc, mhavoc_state, 0, ROT0, "Atari", "Major Havoc (rev 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, mhavoc2, mhavoc, mhavoc, mhavoc, mhavoc_state, 0, ROT0, "Atari", "Major Havoc (rev 2)", MACHINE_SUPPORTS_SAVE ) GAME( 2006, mhavocrv, mhavoc, mhavocrv, mhavocrv, mhavoc_state, mhavocrv, ROT0, "Atari / JMA (hack/homebrew)", "Major Havoc (Return to Vax)", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, mhavocp, mhavoc, mhavoc, mhavocp, driver_device, 0, ROT0, "Atari", "Major Havoc (prototype)", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, alphaone, mhavoc, alphaone, alphaone, driver_device, 0, ROT0, "Atari", "Alpha One (prototype, 3 lives)", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, alphaonea,mhavoc, alphaone, alphaone, driver_device, 0, ROT0, "Atari", "Alpha One (prototype, 5 lives)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, mhavocp, mhavoc, mhavoc, mhavocp, mhavoc_state, 0, ROT0, "Atari", "Major Havoc (prototype)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, alphaone, mhavoc, alphaone, alphaone, mhavoc_state, 0, ROT0, "Atari", "Alpha One (prototype, 3 lives)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, alphaonea,mhavoc, alphaone, alphaone, mhavoc_state, 0, ROT0, "Atari", "Alpha One (prototype, 5 lives)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/mice.cpp b/src/mame/drivers/mice.cpp index f3a868c04b6..61661a6965a 100644 --- a/src/mame/drivers/mice.cpp +++ b/src/mame/drivers/mice.cpp @@ -32,11 +32,14 @@ public: { } - required_device m_maincpu; - required_device m_terminal; DECLARE_READ8_MEMBER(port50_r); DECLARE_READ8_MEMBER(port51_r); - DECLARE_WRITE8_MEMBER(kbd_put); + void kbd_put(u8 data); + +protected: + required_device m_maincpu; + required_device m_terminal; + uint8_t m_term_data; virtual void machine_reset() override; }; @@ -76,12 +79,12 @@ void mice_state::machine_reset() { } -WRITE8_MEMBER( mice_state::kbd_put ) +void mice_state::kbd_put(u8 data) { m_term_data = data; } -static MACHINE_CONFIG_START( mice, mice_state ) +static MACHINE_CONFIG_START( mice ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8085A, XTAL_6_144MHz) MCFG_CPU_PROGRAM_MAP(mice_mem) @@ -89,7 +92,7 @@ static MACHINE_CONFIG_START( mice, mice_state ) /* video hardware */ MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0) - MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(mice_state, kbd_put)) + MCFG_GENERIC_TERMINAL_KEYBOARD_CB(PUT(mice_state, kbd_put)) MACHINE_CONFIG_END /* ROM definition */ @@ -117,5 +120,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1980, mice, 0, 0, mice, mice, driver_device, 0, "Microtek International Inc", "Mice", MACHINE_IS_SKELETON ) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 1980, mice, 0, 0, mice, mice, mice_state, 0, "Microtek International Inc", "Mice", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/micral.cpp b/src/mame/drivers/micral.cpp index 3130e5d0c71..c681b8b7bd4 100644 --- a/src/mame/drivers/micral.cpp +++ b/src/mame/drivers/micral.cpp @@ -247,7 +247,7 @@ MACHINE_RESET_MEMBER( micral_state, micral ) m_maincpu->set_state_int(Z80_PC, 0xf800); } -static MACHINE_CONFIG_START( micral, micral_state ) +static MACHINE_CONFIG_START( micral ) // basic machine hardware MCFG_CPU_ADD( "maincpu", Z80, XTAL_4MHz ) MCFG_CPU_PROGRAM_MAP(micral_mem) @@ -289,5 +289,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1981, micral, 0, 0, micral, micral, micral_state, micral, "Bull R2E", "Micral 80-22G", MACHINE_IS_SKELETON ) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 1981, micral, 0, 0, micral, micral, micral_state, micral, "Bull R2E", "Micral 80-22G", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/micro20.cpp b/src/mame/drivers/micro20.cpp index 8f4f9b7f7f5..91372e586ca 100644 --- a/src/mame/drivers/micro20.cpp +++ b/src/mame/drivers/micro20.cpp @@ -141,16 +141,16 @@ static ADDRESS_MAP_START(micro20_map, AS_PROGRAM, 32, micro20_state ) AM_RANGE(0x00000000, 0x001fffff) AM_RAM AM_SHARE("mainram") AM_RANGE(0x00200000, 0x002fffff) AM_READ(buserror_r) AM_RANGE(0x00800000, 0x0083ffff) AM_ROM AM_REGION("bootrom", 0) - AM_RANGE(0xffff8000, 0xffff8003) AM_DEVREADWRITE8(FDC_TAG, wd1772_t, status_r, cmd_w, 0xff000000) - AM_RANGE(0xffff8000, 0xffff8003) AM_DEVREADWRITE8(FDC_TAG, wd1772_t, track_r, track_w, 0x00ff0000) - AM_RANGE(0xffff8000, 0xffff8003) AM_DEVREADWRITE8(FDC_TAG, wd1772_t, sector_r, sector_w, 0x0000ff00) - AM_RANGE(0xffff8000, 0xffff8003) AM_DEVREADWRITE8(FDC_TAG, wd1772_t, data_r, data_w, 0x000000ff) + AM_RANGE(0xffff8000, 0xffff8003) AM_DEVREADWRITE8(FDC_TAG, wd1772_device, status_r, cmd_w, 0xff000000) + AM_RANGE(0xffff8000, 0xffff8003) AM_DEVREADWRITE8(FDC_TAG, wd1772_device, track_r, track_w, 0x00ff0000) + AM_RANGE(0xffff8000, 0xffff8003) AM_DEVREADWRITE8(FDC_TAG, wd1772_device, sector_r, sector_w, 0x0000ff00) + AM_RANGE(0xffff8000, 0xffff8003) AM_DEVREADWRITE8(FDC_TAG, wd1772_device, data_r, data_w, 0x000000ff) AM_RANGE(0xffff8080, 0xffff808f) AM_DEVREADWRITE8(DUART_A_TAG, mc68681_device, read, write, 0xffffffff) AM_RANGE(0xffff80a0, 0xffff80af) AM_DEVREADWRITE8(DUART_B_TAG, mc68681_device, read, write, 0xffffffff) AM_RANGE(0xffff80c0, 0xffff80df) AM_DEVREADWRITE8(PIT_TAG, pit68230_device, read, write, 0xffffffff) ADDRESS_MAP_END -static MACHINE_CONFIG_START( micro20, micro20_state ) +static MACHINE_CONFIG_START( micro20 ) /* basic machine hardware */ MCFG_CPU_ADD(MAINCPU_TAG, M68020, XTAL_16_67MHz) MCFG_CPU_PROGRAM_MAP(micro20_map) @@ -200,6 +200,4 @@ ROM_START( micro20 ) ROM_LOAD32_BYTE( "d24-31_u13_d115.bin", 0x000000, 0x010000, CRC(3646d943) SHA1(97ee54063e2fe49fef2ff68d0f2e39345a75eac5) ) ROM_END -COMP( 1984, micro20, 0, 0, micro20, micro20, driver_device, 0, "GMX", "Micro 20", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) - - +COMP( 1984, micro20, 0, 0, micro20, micro20, micro20_state, 0, "GMX", "Micro 20", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/micro3d.cpp b/src/mame/drivers/micro3d.cpp index 150b22b84f2..b2dc7d7ba21 100644 --- a/src/mame/drivers/micro3d.cpp +++ b/src/mame/drivers/micro3d.cpp @@ -25,6 +25,7 @@ #include "emu.h" #include "includes/micro3d.h" +#include "audio/micro3d.h" #include "cpu/am29000/am29000.h" #include "cpu/m68000/m68000.h" @@ -292,7 +293,7 @@ ADDRESS_MAP_END * *************************************/ -static MACHINE_CONFIG_START( micro3d, micro3d_state ) +static MACHINE_CONFIG_START( micro3d ) MCFG_CPU_ADD("maincpu", M68000, XTAL_32MHz / 2) MCFG_CPU_PROGRAM_MAP(hostmem) @@ -644,8 +645,8 @@ ROM_END * *************************************/ -GAME( 1991, f15se, 0, micro3d, f15se, micro3d_state, micro3d, ROT0, "Microprose Games Inc.", "F-15 Strike Eagle (rev. 2.2 02/25/91)", MACHINE_IMPERFECT_SOUND ) -GAME( 1991, f15se21, f15se, micro3d, f15se, micro3d_state, micro3d, ROT0, "Microprose Games Inc.", "F-15 Strike Eagle (rev. 2.1 02/04/91)", MACHINE_IMPERFECT_SOUND ) -GAME( 1992, botss, 0, micro3d, botss, micro3d_state, botss, ROT0, "Microprose Games Inc.", "Battle of the Solar System (rev. 1.1a 7/23/92)", MACHINE_IMPERFECT_SOUND ) -GAME( 1992, botss11, botss, micro3d, botss11, micro3d_state, micro3d, ROT0, "Microprose Games Inc.", "Battle of the Solar System (rev. 1.1 3/24/92)", MACHINE_IMPERFECT_SOUND ) -GAME( 1992, tankbatl, 0, micro3d, tankbatl, micro3d_state, micro3d, ROT0, "Microprose Games Inc.", "Tank Battle (prototype rev. 4/21/92)", MACHINE_IMPERFECT_SOUND ) +GAME( 1991, f15se, 0, micro3d, f15se, micro3d_state, micro3d, ROT0, "Microprose Games Inc.", "F-15 Strike Eagle (rev. 2.2 02/25/91)", MACHINE_IMPERFECT_SOUND ) +GAME( 1991, f15se21, f15se, micro3d, f15se, micro3d_state, micro3d, ROT0, "Microprose Games Inc.", "F-15 Strike Eagle (rev. 2.1 02/04/91)", MACHINE_IMPERFECT_SOUND ) +GAME( 1992, botss, 0, micro3d, botss, micro3d_state, botss, ROT0, "Microprose Games Inc.", "Battle of the Solar System (rev. 1.1a 7/23/92)", MACHINE_IMPERFECT_SOUND ) +GAME( 1992, botss11, botss, micro3d, botss11, micro3d_state, micro3d, ROT0, "Microprose Games Inc.", "Battle of the Solar System (rev. 1.1 3/24/92)", MACHINE_IMPERFECT_SOUND ) +GAME( 1992, tankbatl, 0, micro3d, tankbatl, micro3d_state, micro3d, ROT0, "Microprose Games Inc.", "Tank Battle (prototype rev. 4/21/92)", MACHINE_IMPERFECT_SOUND ) diff --git a/src/mame/drivers/microdec.cpp b/src/mame/drivers/microdec.cpp index b8a42c53e4f..d9c301d9ffd 100644 --- a/src/mame/drivers/microdec.cpp +++ b/src/mame/drivers/microdec.cpp @@ -48,7 +48,7 @@ public: DECLARE_READ8_MEMBER(status_r); DECLARE_READ8_MEMBER(keyin_r); - DECLARE_WRITE8_MEMBER(kbd_put); + void kbd_put(u8 data); DECLARE_READ8_MEMBER(portf5_r); DECLARE_READ8_MEMBER(portf6_r); DECLARE_WRITE8_MEMBER(portf6_w); @@ -183,7 +183,7 @@ void microdec_state::machine_reset() m_term_data = 0; } -WRITE8_MEMBER( microdec_state::kbd_put ) +void microdec_state::kbd_put(u8 data) { m_term_data = data; } @@ -201,7 +201,7 @@ DRIVER_INIT_MEMBER( microdec_state, microdec ) membank("bankw0")->configure_entry(0, &main[0x1000]); } -static MACHINE_CONFIG_START( microdec, microdec_state ) +static MACHINE_CONFIG_START( microdec ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80, XTAL_4MHz) MCFG_CPU_PROGRAM_MAP(microdec_mem) @@ -209,7 +209,7 @@ static MACHINE_CONFIG_START( microdec, microdec_state ) /* video hardware */ MCFG_DEVICE_ADD("terminal", GENERIC_TERMINAL, 0) - MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(microdec_state, kbd_put)) + MCFG_GENERIC_TERMINAL_KEYBOARD_CB(PUT(microdec_state, kbd_put)) MCFG_UPD765A_ADD("fdc", true, true) MCFG_UPD765_INTRQ_CALLBACK(INPUTLINE("maincpu", INPUT_LINE_IRQ0)) @@ -249,6 +249,6 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS COMP( 1982, md2, 0, 0, microdec, microdec, microdec_state, microdec, "Morrow Designs", "Micro Decision MD-2", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW ) COMP( 1982, md3, md2, 0, microdec, microdec, microdec_state, microdec, "Morrow Designs", "Micro Decision MD-3", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW ) diff --git a/src/mame/drivers/microkit.cpp b/src/mame/drivers/microkit.cpp index 765c95e04db..a0fbb10e271 100644 --- a/src/mame/drivers/microkit.cpp +++ b/src/mame/drivers/microkit.cpp @@ -78,7 +78,7 @@ INPUT_PORTS_END READ_LINE_MEMBER( microkit_state::clear_r ) { if (m_resetcnt < 0x10) - m_maincpu->set_state_int(COSMAC_R0, 0x8001); // skip IDL + m_maincpu->set_state_int(cosmac_device::COSMAC_R0, 0x8001); // skip IDL if (m_resetcnt < 0x20) m_resetcnt++; // set reset pin to normal @@ -113,7 +113,7 @@ static DEVICE_INPUT_DEFAULTS_START( serial_keyb ) DEVICE_INPUT_DEFAULTS_END -static MACHINE_CONFIG_START( microkit, microkit_state ) +static MACHINE_CONFIG_START( microkit ) // basic machine hardware MCFG_CPU_ADD("maincpu", CDP1802, 1750000) MCFG_CPU_PROGRAM_MAP(microkit_mem) @@ -134,4 +134,4 @@ ROM_START( microkit ) ROM_LOAD( "4.2a", 0x100, 0x100, CRC(27267bad) SHA1(838df9be2dc175584a1a6ee1770039118e49482e) ) ROM_END -COMP( 1975, microkit, 0, 0, microkit, microkit, driver_device, 0, "RCA", "COSMAC Microkit", MACHINE_IS_SKELETON | MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +COMP( 1975, microkit, 0, 0, microkit, microkit, microkit_state, 0, "RCA", "COSMAC Microkit", MACHINE_IS_SKELETON | MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/micronic.cpp b/src/mame/drivers/micronic.cpp index 708f2783d35..761c69429a2 100644 --- a/src/mame/drivers/micronic.cpp +++ b/src/mame/drivers/micronic.cpp @@ -348,7 +348,7 @@ WRITE_LINE_MEMBER( micronic_state::mc146818_irq ) } -static MACHINE_CONFIG_START( micronic, micronic_state ) +static MACHINE_CONFIG_START( micronic ) /* basic machine hardware */ MCFG_CPU_ADD(Z80_TAG, Z80, XTAL_3_579545MHz) MCFG_CPU_PROGRAM_MAP(micronic_mem) @@ -397,5 +397,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 198?, micronic, 0, 0, micronic, micronic, driver_device, 0, "Victor Micronic", "Micronic 1000", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 198?, micronic, 0, 0, micronic, micronic, micronic_state, 0, "Victor Micronic", "Micronic 1000", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/micropin.cpp b/src/mame/drivers/micropin.cpp index d84eff02b73..2126c9d8784 100644 --- a/src/mame/drivers/micropin.cpp +++ b/src/mame/drivers/micropin.cpp @@ -283,7 +283,7 @@ DRIVER_INIT_MEMBER( micropin_state, micropin ) { } -static MACHINE_CONFIG_START( micropin, micropin_state ) +static MACHINE_CONFIG_START( micropin ) /* basic machine hardware */ MCFG_CPU_ADD("v1cpu", M6800, XTAL_2MHz / 2) MCFG_CPU_PROGRAM_MAP(micropin_map) @@ -320,7 +320,7 @@ static MACHINE_CONFIG_START( micropin, micropin_state ) MCFG_TIMER_DRIVER_ADD_PERIODIC("timer_a", micropin_state, timer_a, attotime::from_hz(100)) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( pentacup2, micropin_state ) +static MACHINE_CONFIG_START( pentacup2 ) /* basic machine hardware */ MCFG_CPU_ADD("v2cpu", I8085A, 2000000) MCFG_CPU_PROGRAM_MAP(pentacup2_map) diff --git a/src/mame/drivers/microtan.cpp b/src/mame/drivers/microtan.cpp index 05e4b51f29a..6bb45857199 100644 --- a/src/mame/drivers/microtan.cpp +++ b/src/mame/drivers/microtan.cpp @@ -209,7 +209,7 @@ static GFXDECODE_START( microtan ) GFXDECODE_END -static MACHINE_CONFIG_START( microtan, microtan_state ) +static MACHINE_CONFIG_START( microtan ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, 750000) // 750 kHz MCFG_CPU_PROGRAM_MAP(microtan_map) @@ -284,5 +284,5 @@ ROM_START( microtan ) ROM_END -// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME -COMP( 1979, microtan, 0, 0, microtan, microtan, microtan_state, microtan, "Tangerine", "Microtan 65" , 0) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1979, microtan, 0, 0, microtan, microtan, microtan_state, microtan, "Tangerine", "Microtan 65" , 0 ) diff --git a/src/mame/drivers/microvsn.cpp b/src/mame/drivers/microvsn.cpp index 0c272537042..e2e650aed09 100644 --- a/src/mame/drivers/microvsn.cpp +++ b/src/mame/drivers/microvsn.cpp @@ -637,7 +637,7 @@ static ADDRESS_MAP_START( microvision_8021_io, AS_IO, 8, microvision_state ) ADDRESS_MAP_END -static MACHINE_CONFIG_START( microvision, microvision_state ) +static MACHINE_CONFIG_START( microvision ) MCFG_CPU_ADD("maincpu1", I8021, 2000000) // approximately MCFG_CPU_IO_MAP(microvision_8021_io) MCFG_MCS48_PORT_P1_OUT_CB(WRITE8(microvision_state, i8021_p1_write)) @@ -695,4 +695,4 @@ ROM_START( microvsn ) ROM_END -CONS( 1979, microvsn, 0, 0, microvision, microvision, driver_device, 0, "Milton Bradley", "MicroVision", MACHINE_NOT_WORKING ) +CONS( 1979, microvsn, 0, 0, microvision, microvision, microvision_state, 0, "Milton Bradley", "MicroVision", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/midas.cpp b/src/mame/drivers/midas.cpp index 451447089d0..bb4139bb056 100644 --- a/src/mame/drivers/midas.cpp +++ b/src/mame/drivers/midas.cpp @@ -618,7 +618,7 @@ WRITE_LINE_MEMBER(midas_state::screen_vblank_midas) -static MACHINE_CONFIG_START( livequiz, midas_state ) +static MACHINE_CONFIG_START( livequiz ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_24MHz / 2) @@ -646,7 +646,7 @@ static MACHINE_CONFIG_START( livequiz, midas_state ) MCFG_SOUND_ROUTE(1, "rspeaker", 0.80) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( hammer, midas_state ) +static MACHINE_CONFIG_START( hammer ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_28MHz / 2) @@ -888,4 +888,4 @@ ROM_START( hammer ) ROM_END GAME( 1999, livequiz, 0, livequiz, livequiz, midas_state, livequiz, ROT0, "Andamiro", "Live Quiz Show", 0 ) -GAME( 2000, hammer, 0, hammer, hammer, driver_device, 0, ROT0, "Andamiro", "Hammer", 0 ) +GAME( 2000, hammer, 0, hammer, hammer, midas_state, 0, ROT0, "Andamiro", "Hammer", 0 ) diff --git a/src/mame/drivers/midqslvr.cpp b/src/mame/drivers/midqslvr.cpp index eb7f3bba092..3e77183a6ae 100644 --- a/src/mame/drivers/midqslvr.cpp +++ b/src/mame/drivers/midqslvr.cpp @@ -407,7 +407,7 @@ void midqslvr_state::machine_reset() membank("video_bank2")->set_base(memregion("video_bios")->base() + 0x4000); } -static MACHINE_CONFIG_START( midqslvr, midqslvr_state ) +static MACHINE_CONFIG_START( midqslvr ) MCFG_CPU_ADD("maincpu", PENTIUM, 333000000) // actually Celeron 333 MCFG_CPU_PROGRAM_MAP(midqslvr_map) MCFG_CPU_IO_MAP(midqslvr_io) @@ -498,11 +498,11 @@ ROM_START( ultarctcup ) ROM_END // there are almost certainly multiple versions of these; updates were offered on floppy disk. The version numbers for the existing CHDs are unknown. -GAME(1999, hydrthnd, 0, midqslvr, at_keyboard, driver_device, 0, ROT0, "Midway Games", "Hydro Thunder", MACHINE_IS_SKELETON) +GAME(1999, hydrthnd, 0, midqslvr, at_keyboard, midqslvr_state, 0, ROT0, "Midway Games", "Hydro Thunder", MACHINE_IS_SKELETON) -GAME(2000, offrthnd, 0, midqslvr, at_keyboard, driver_device, 0, ROT0, "Midway Games", "Offroad Thunder", MACHINE_IS_SKELETON) +GAME(2000, offrthnd, 0, midqslvr, at_keyboard, midqslvr_state, 0, ROT0, "Midway Games", "Offroad Thunder", MACHINE_IS_SKELETON) -GAME(2001, arctthnd, 0, midqslvr, at_keyboard, driver_device, 0, ROT0, "Midway Games", "Arctic Thunder (v1.002)", MACHINE_IS_SKELETON) +GAME(2001, arctthnd, 0, midqslvr, at_keyboard, midqslvr_state, 0, ROT0, "Midway Games", "Arctic Thunder (v1.002)", MACHINE_IS_SKELETON) -GAME(2001, ultarctc, 0, midqslvr, at_keyboard, driver_device, 0, ROT0, "Midway Games", "Ultimate Arctic Thunder", MACHINE_IS_SKELETON) -GAME(2004, ultarctcup, ultarctc, midqslvr, at_keyboard, driver_device, 0, ROT0, "Midway Games", "Ultimate Arctic Thunder Update CD ver 1.950 (5/3/04)", MACHINE_IS_SKELETON) +GAME(2001, ultarctc, 0, midqslvr, at_keyboard, midqslvr_state, 0, ROT0, "Midway Games", "Ultimate Arctic Thunder", MACHINE_IS_SKELETON) +GAME(2004, ultarctcup, ultarctc, midqslvr, at_keyboard, midqslvr_state, 0, ROT0, "Midway Games", "Ultimate Arctic Thunder Update CD ver 1.950 (5/3/04)", MACHINE_IS_SKELETON) diff --git a/src/mame/drivers/midtunit.cpp b/src/mame/drivers/midtunit.cpp index 789209e22e3..b9584cca122 100644 --- a/src/mame/drivers/midtunit.cpp +++ b/src/mame/drivers/midtunit.cpp @@ -590,7 +590,7 @@ INPUT_PORTS_END * *************************************/ -static MACHINE_CONFIG_START( tunit_core, midtunit_state ) +static MACHINE_CONFIG_START( tunit_core ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS34010, CPU_CLOCK) diff --git a/src/mame/drivers/midvunit.cpp b/src/mame/drivers/midvunit.cpp index 78d476c09e6..928002c0ab7 100644 --- a/src/mame/drivers/midvunit.cpp +++ b/src/mame/drivers/midvunit.cpp @@ -1122,7 +1122,7 @@ INPUT_PORTS_END * *************************************/ -static MACHINE_CONFIG_START( midvcommon, midvunit_state ) +static MACHINE_CONFIG_START( midvcommon ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS32031, CPU_CLOCK) diff --git a/src/mame/drivers/midwunit.cpp b/src/mame/drivers/midwunit.cpp index 8ce72e6bcdf..8628f2ad1e5 100644 --- a/src/mame/drivers/midwunit.cpp +++ b/src/mame/drivers/midwunit.cpp @@ -620,7 +620,7 @@ INPUT_PORTS_END * *************************************/ -static MACHINE_CONFIG_START( wunit, midwunit_state ) +static MACHINE_CONFIG_START( wunit ) MCFG_CPU_ADD("maincpu", TMS34010, 50000000) MCFG_CPU_PROGRAM_MAP(main_map) diff --git a/src/mame/drivers/midxunit.cpp b/src/mame/drivers/midxunit.cpp index 850c904eab2..f63e779554c 100644 --- a/src/mame/drivers/midxunit.cpp +++ b/src/mame/drivers/midxunit.cpp @@ -241,7 +241,7 @@ INPUT_PORTS_END * *************************************/ -static MACHINE_CONFIG_START( midxunit, midxunit_state ) +static MACHINE_CONFIG_START( midxunit ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS34020, 40000000) diff --git a/src/mame/drivers/midyunit.cpp b/src/mame/drivers/midyunit.cpp index 0a2be834c91..2d3c1ab7560 100644 --- a/src/mame/drivers/midyunit.cpp +++ b/src/mame/drivers/midyunit.cpp @@ -1101,7 +1101,7 @@ INPUT_PORTS_END * *************************************/ -static MACHINE_CONFIG_START( zunit, midyunit_state ) +static MACHINE_CONFIG_START( zunit ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS34010, FAST_MASTER_CLOCK) @@ -1143,7 +1143,7 @@ MACHINE_CONFIG_END * *************************************/ -static MACHINE_CONFIG_START( yunit_core, midyunit_state ) +static MACHINE_CONFIG_START( yunit_core ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS34010, SLOW_MASTER_CLOCK) @@ -1264,7 +1264,7 @@ static MACHINE_CONFIG_DERIVED( mkyawdim, yunit_core ) MCFG_GENERIC_LATCH_8_ADD("soundlatch") - MCFG_OKIM6295_ADD("oki", XTAL_8MHz / 8, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", XTAL_8MHz / 8, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0) MACHINE_CONFIG_END diff --git a/src/mame/drivers/midzeus.cpp b/src/mame/drivers/midzeus.cpp index b056e6175c7..aaf7c032c7e 100644 --- a/src/mame/drivers/midzeus.cpp +++ b/src/mame/drivers/midzeus.cpp @@ -1255,7 +1255,7 @@ INPUT_PORTS_END * *************************************/ -static MACHINE_CONFIG_START( midzeus, midzeus_state ) +static MACHINE_CONFIG_START( midzeus ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS32032, CPU_CLOCK) @@ -1297,7 +1297,7 @@ static MACHINE_CONFIG_DERIVED( invasn, midzeus ) MCFG_MIDWAY_IOASIC_UPPER(468/* or 488 */) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( midzeus2, midzeus2_state ) +static MACHINE_CONFIG_START( midzeus2 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS32032, CPU_CLOCK) @@ -1692,16 +1692,16 @@ DRIVER_INIT_MEMBER(midzeus_state,thegrid) * *************************************/ -GAME( 1997, mk4, 0, mk4, mk4, midzeus_state, mk4, ROT0, "Midway", "Mortal Kombat 4 (version 3.0)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1997, mk4a, mk4, mk4, mk4, midzeus_state, mk4, ROT0, "Midway", "Mortal Kombat 4 (version 2.1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1997, mk4b, mk4, mk4, mk4, midzeus_state, mk4, ROT0, "Midway", "Mortal Kombat 4 (version 1.0)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1999, invasnab, 0, invasn, invasn, midzeus_state, invasn, ROT0, "Midway", "Invasion - The Abductors (version 5.0)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1999, invasnab4,invasnab, invasn, invasn, midzeus_state, invasn, ROT0, "Midway", "Invasion - The Abductors (version 4.0)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1999, invasnab3,invasnab, invasn, invasn, midzeus_state, invasn, ROT0, "Midway", "Invasion - The Abductors (version 3.0)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAMEL( 1999, crusnexo, 0, crusnexo, crusnexo, midzeus_state, crusnexo, ROT0, "Midway", "Cruis'n Exotica (version 2.4)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE, layout_crusnexo ) -GAMEL( 1999, crusnexoa,crusnexo, crusnexo, crusnexo, midzeus_state, crusnexo, ROT0, "Midway", "Cruis'n Exotica (version 2.0)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE, layout_crusnexo ) -GAMEL( 1999, crusnexob,crusnexo, crusnexo, crusnexo, midzeus_state, crusnexo, ROT0, "Midway", "Cruis'n Exotica (version 1.6)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE, layout_crusnexo ) -GAMEL( 1999, crusnexoc,crusnexo, crusnexo, crusnexo, midzeus_state, crusnexo, ROT0, "Midway", "Cruis'n Exotica (version 1.3)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE, layout_crusnexo ) -GAMEL( 1999, crusnexod,crusnexo, crusnexo, crusnexo, midzeus_state, crusnexo, ROT0, "Midway", "Cruis'n Exotica (version 1.0)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE, layout_crusnexo ) -GAME( 2001, thegrid, 0, thegrid, thegrid, midzeus_state, thegrid, ROT0, "Midway", "The Grid (version 1.2)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 2001, thegrida, thegrid, thegrid, thegrid, midzeus_state, thegrid, ROT0, "Midway", "The Grid (version 1.1)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1997, mk4, 0, mk4, mk4, midzeus_state, mk4, ROT0, "Midway", "Mortal Kombat 4 (version 3.0)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1997, mk4a, mk4, mk4, mk4, midzeus_state, mk4, ROT0, "Midway", "Mortal Kombat 4 (version 2.1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1997, mk4b, mk4, mk4, mk4, midzeus_state, mk4, ROT0, "Midway", "Mortal Kombat 4 (version 1.0)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1999, invasnab, 0, invasn, invasn, midzeus_state, invasn, ROT0, "Midway", "Invasion - The Abductors (version 5.0)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1999, invasnab4,invasnab, invasn, invasn, midzeus_state, invasn, ROT0, "Midway", "Invasion - The Abductors (version 4.0)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1999, invasnab3,invasnab, invasn, invasn, midzeus_state, invasn, ROT0, "Midway", "Invasion - The Abductors (version 3.0)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAMEL( 1999, crusnexo, 0, crusnexo, crusnexo, midzeus2_state, crusnexo, ROT0, "Midway", "Cruis'n Exotica (version 2.4)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE, layout_crusnexo ) +GAMEL( 1999, crusnexoa,crusnexo, crusnexo, crusnexo, midzeus2_state, crusnexo, ROT0, "Midway", "Cruis'n Exotica (version 2.0)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE, layout_crusnexo ) +GAMEL( 1999, crusnexob,crusnexo, crusnexo, crusnexo, midzeus2_state, crusnexo, ROT0, "Midway", "Cruis'n Exotica (version 1.6)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE, layout_crusnexo ) +GAMEL( 1999, crusnexoc,crusnexo, crusnexo, crusnexo, midzeus2_state, crusnexo, ROT0, "Midway", "Cruis'n Exotica (version 1.3)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE, layout_crusnexo ) +GAMEL( 1999, crusnexod,crusnexo, crusnexo, crusnexo, midzeus2_state, crusnexo, ROT0, "Midway", "Cruis'n Exotica (version 1.0)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE, layout_crusnexo ) +GAME( 2001, thegrid, 0, thegrid, thegrid, midzeus2_state, thegrid, ROT0, "Midway", "The Grid (version 1.2)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 2001, thegrida, thegrid, thegrid, thegrid, midzeus2_state, thegrid, ROT0, "Midway", "The Grid (version 1.1)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/mikie.cpp b/src/mame/drivers/mikie.cpp index 35ded5f2f99..0efa89c21d3 100644 --- a/src/mame/drivers/mikie.cpp +++ b/src/mame/drivers/mikie.cpp @@ -254,7 +254,7 @@ INTERRUPT_GEN_MEMBER(mikie_state::vblank_irq) device.execute().set_input_line(0, HOLD_LINE); } -static MACHINE_CONFIG_START( mikie, mikie_state ) +static MACHINE_CONFIG_START( mikie ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809, OSC/12) @@ -382,6 +382,6 @@ ROM_END * *************************************/ -GAME( 1984, mikie, 0, mikie, mikie, driver_device, 0, ROT270, "Konami", "Mikie", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, mikiej, mikie, mikie, mikie, driver_device, 0, ROT270, "Konami", "Shinnyuushain Tooru-kun", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, mikiehs, mikie, mikie, mikie, driver_device, 0, ROT270, "Konami", "Mikie (High School Graffiti)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, mikie, 0, mikie, mikie, mikie_state, 0, ROT270, "Konami", "Mikie", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, mikiej, mikie, mikie, mikie, mikie_state, 0, ROT270, "Konami", "Shinnyuushain Tooru-kun", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, mikiehs, mikie, mikie, mikie, mikie_state, 0, ROT270, "Konami", "Mikie (High School Graffiti)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/mikro80.cpp b/src/mame/drivers/mikro80.cpp index 0c1d3ff91d2..a529f0eb037 100644 --- a/src/mame/drivers/mikro80.cpp +++ b/src/mame/drivers/mikro80.cpp @@ -160,7 +160,7 @@ static GFXDECODE_START( mikro80 ) GFXDECODE_ENTRY( "gfx1", 0x0000, mikro80_charlayout, 0, 1 ) GFXDECODE_END -static MACHINE_CONFIG_START( mikro80, mikro80_state ) +static MACHINE_CONFIG_START( mikro80 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",I8080, 2000000) MCFG_CPU_PROGRAM_MAP(mikro80_mem) @@ -237,7 +237,7 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1983, mikro80, 0, 0, mikro80, mikro80, mikro80_state, mikro80, "", "Mikro-80", 0) -COMP( 1993, radio99, mikro80, 0, radio99, mikro80, mikro80_state, radio99, "", "Radio-99DM", 0) -COMP( 1987, kristall2, mikro80, 0, kristall, mikro80, mikro80_state, mikro80, "", "Kristall-2", 0) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +COMP( 1983, mikro80, 0, 0, mikro80, mikro80, mikro80_state, mikro80, "", "Mikro-80", 0) +COMP( 1993, radio99, mikro80, 0, radio99, mikro80, mikro80_state, radio99, "", "Radio-99DM", 0) +COMP( 1987, kristall2, mikro80, 0, kristall, mikro80, mikro80_state, mikro80, "", "Kristall-2", 0) diff --git a/src/mame/drivers/mikromik.cpp b/src/mame/drivers/mikromik.cpp index 8cbeaed5fdf..3e54905b2a9 100644 --- a/src/mame/drivers/mikromik.cpp +++ b/src/mame/drivers/mikromik.cpp @@ -455,18 +455,18 @@ void mm1_state::machine_reset() // MACHINE_CONFIG( mm1 ) //------------------------------------------------- -static MACHINE_CONFIG_START( mm1, mm1_state ) +static MACHINE_CONFIG_START( mm1 ) // basic system hardware MCFG_CPU_ADD(I8085A_TAG, I8085A, XTAL_6_144MHz) MCFG_CPU_PROGRAM_MAP(mm1_map) MCFG_I8085A_SID(READLINE(mm1_state, dsra_r)) - MCFG_I8085A_SOD(DEVWRITELINE(KB_TAG, mm1_keyboard_t, bell_w)) + MCFG_I8085A_SOD(DEVWRITELINE(KB_TAG, mm1_keyoard_device, bell_w)) MCFG_QUANTUM_PERFECT_CPU(I8085A_TAG) // peripheral hardware MCFG_DEVICE_ADD(I8212_TAG, I8212, 0) MCFG_I8212_IRQ_CALLBACK(INPUTLINE(I8085A_TAG, I8085_RST65_LINE)) - MCFG_I8212_DI_CALLBACK(DEVREAD8(KB_TAG, mm1_keyboard_t, read)) + MCFG_I8212_DI_CALLBACK(DEVREAD8(KB_TAG, mm1_keyoard_device, read)) MCFG_DEVICE_ADD(I8237_TAG, AM9517A, XTAL_6_144MHz/2) MCFG_I8237_OUT_HREQ_CB(WRITELINE(mm1_state, dma_hrq_w)) @@ -576,6 +576,6 @@ ROM_END // SYSTEM DRIVERS //************************************************************************** -// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS -COMP( 1981, mm1m6, 0, 0, mm1m6, mm1, driver_device, 0, "Nokia Data", "MikroMikko 1 M6", MACHINE_SUPPORTS_SAVE ) -COMP( 1981, mm1m7, mm1m6, 0, mm1m7, mm1, driver_device, 0, "Nokia Data", "MikroMikko 1 M7", MACHINE_SUPPORTS_SAVE ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1981, mm1m6, 0, 0, mm1m6, mm1, mm1_state, 0, "Nokia Data", "MikroMikko 1 M6", MACHINE_SUPPORTS_SAVE ) +COMP( 1981, mm1m7, mm1m6, 0, mm1m7, mm1, mm1_state, 0, "Nokia Data", "MikroMikko 1 M7", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/mikrosha.cpp b/src/mame/drivers/mikrosha.cpp index 233fdbde003..cfdf4570cda 100644 --- a/src/mame/drivers/mikrosha.cpp +++ b/src/mame/drivers/mikrosha.cpp @@ -203,7 +203,7 @@ static GFXDECODE_START( mikrosha ) GFXDECODE_ENTRY( "gfx1", 0x0000, mikrosha_charlayout, 0, 1 ) GFXDECODE_END -static MACHINE_CONFIG_START( mikrosha, mikrosha_state ) +static MACHINE_CONFIG_START( mikrosha ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8080, XTAL_16MHz / 9) MCFG_CPU_PROGRAM_MAP(mikrosha_mem) @@ -283,6 +283,6 @@ ROM_START( m86rk ) ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1987, mikrosha, radio86,0, mikrosha, mikrosha, radio86_state, radio86, "Lianozovo Electromechanical Factory", "Mikrosha", 0) -COMP( 1987, m86rk, radio86,0, mikrosha, mikrosha, radio86_state, radio86, "", "Mikrosha-86RK", 0) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1987, mikrosha, radio86, 0, mikrosha, mikrosha, mikrosha_state, radio86, "Lianozovo Electromechanical Factory", "Mikrosha", 0) +COMP( 1987, m86rk, radio86, 0, mikrosha, mikrosha, mikrosha_state, radio86, "", "Mikrosha-86RK", 0) diff --git a/src/mame/drivers/mil4000.cpp b/src/mame/drivers/mil4000.cpp index 52b0d120002..3b18ba1868d 100644 --- a/src/mame/drivers/mil4000.cpp +++ b/src/mame/drivers/mil4000.cpp @@ -537,7 +537,7 @@ static GFXDECODE_START( mil4000 ) GFXDECODE_END -static MACHINE_CONFIG_START( mil4000, mil4000_state ) +static MACHINE_CONFIG_START( mil4000 ) MCFG_CPU_ADD("maincpu", M68000, CPU_CLOCK) MCFG_CPU_PROGRAM_MAP(mil4000_map) // irq 2/4/5 point to the same place, others invalid @@ -559,7 +559,7 @@ static MACHINE_CONFIG_START( mil4000, mil4000_state ) MCFG_GFXDECODE_ADD("gfxdecode", "palette", mil4000) MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", 1000000, OKIM6295_PIN7_HIGH) // frequency from 1000 kHz resonator. pin 7 high not verified. + MCFG_OKIM6295_ADD("oki", 1000000, PIN7_HIGH) // frequency from 1000 kHz resonator. pin 7 high not verified. MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -748,10 +748,10 @@ ROM_START( chewheel ) ROM_END -/* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS LAYOUT */ -GAMEL( 2000, mil4000, 0, mil4000, mil4000, driver_device, 0, ROT0, "Sure Milano", "Millennium Nuovo 4000 (Version 2.0)", 0, layout_mil4000 ) -GAMEL( 2000, mil4000a, mil4000, mil4000, mil4000, driver_device, 0, ROT0, "Sure Milano", "Millennium Nuovo 4000 (Version 1.8)", 0, layout_mil4000 ) -GAMEL( 2000, mil4000b, mil4000, mil4000, mil4000, driver_device, 0, ROT0, "Sure Milano", "Millennium Nuovo 4000 (Version 1.5)", 0, layout_mil4000 ) -GAMEL( 2000, mil4000c, mil4000, mil4000, mil4000, driver_device, 0, ROT0, "Sure Milano", "Millennium Nuovo 4000 (Version 1.6)", 0, layout_mil4000 ) -GAMEL( 200?, top21, 0, mil4000, mil4000, driver_device, 0, ROT0, "Assogiochi Assago", "Top XXI (Version 1.2)", 0, layout_mil4000 ) -GAMEL( 200?, chewheel, 0, chewheel, mil4000, driver_device, 0, ROT0, "Assogiochi Assago", "Cherry Wheel (Version 1.7)", MACHINE_UNEMULATED_PROTECTION, layout_mil4000 ) +// YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS LAYOUT +GAMEL( 2000, mil4000, 0, mil4000, mil4000, mil4000_state, 0, ROT0, "Sure Milano", "Millennium Nuovo 4000 (Version 2.0)", 0, layout_mil4000 ) +GAMEL( 2000, mil4000a, mil4000, mil4000, mil4000, mil4000_state, 0, ROT0, "Sure Milano", "Millennium Nuovo 4000 (Version 1.8)", 0, layout_mil4000 ) +GAMEL( 2000, mil4000b, mil4000, mil4000, mil4000, mil4000_state, 0, ROT0, "Sure Milano", "Millennium Nuovo 4000 (Version 1.5)", 0, layout_mil4000 ) +GAMEL( 2000, mil4000c, mil4000, mil4000, mil4000, mil4000_state, 0, ROT0, "Sure Milano", "Millennium Nuovo 4000 (Version 1.6)", 0, layout_mil4000 ) +GAMEL( 200?, top21, 0, mil4000, mil4000, mil4000_state, 0, ROT0, "Assogiochi Assago", "Top XXI (Version 1.2)", 0, layout_mil4000 ) +GAMEL( 200?, chewheel, 0, chewheel, mil4000, mil4000_state, 0, ROT0, "Assogiochi Assago", "Cherry Wheel (Version 1.7)", MACHINE_UNEMULATED_PROTECTION, layout_mil4000 ) diff --git a/src/mame/drivers/mini2440.cpp b/src/mame/drivers/mini2440.cpp index 6d4ad637a96..1a5689435c6 100644 --- a/src/mame/drivers/mini2440.cpp +++ b/src/mame/drivers/mini2440.cpp @@ -219,7 +219,7 @@ DRIVER_INIT_MEMBER(mini2440_state,mini2440) // do nothing } -static MACHINE_CONFIG_START( mini2440, mini2440_state ) +static MACHINE_CONFIG_START( mini2440 ) MCFG_CPU_ADD("maincpu", ARM920T, 400000000) MCFG_CPU_PROGRAM_MAP(mini2440_map) @@ -254,7 +254,7 @@ static MACHINE_CONFIG_START( mini2440, mini2440_state ) MCFG_S3C2440_NAND_DATA_W_CB(WRITE8(mini2440_state, s3c2440_nand_data_w)) MCFG_DEVICE_ADD("nand", NAND, 0) - MCFG_NAND_TYPE(NAND_CHIP_K9F1G08U0B) + MCFG_NAND_TYPE(K9F1G08U0B) MCFG_NAND_RNB_CALLBACK(DEVWRITELINE("s3c2440", s3c2440_device, frnb_w)) MACHINE_CONFIG_END diff --git a/src/mame/drivers/miniboy7.cpp b/src/mame/drivers/miniboy7.cpp index feac53e1b2b..bf86128018a 100644 --- a/src/mame/drivers/miniboy7.cpp +++ b/src/mame/drivers/miniboy7.cpp @@ -501,7 +501,7 @@ GFXDECODE_END * Machine Drivers * ***********************************/ -static MACHINE_CONFIG_START( miniboy7, miniboy7_state ) +static MACHINE_CONFIG_START( miniboy7 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, MASTER_CLOCK / 16) /* guess */ @@ -624,6 +624,6 @@ ROM_END * Game Drivers * ***********************************/ -// YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS LAYOUT -GAMEL( 1983, miniboy7, 0, miniboy7, miniboy7, driver_device, 0, ROT0, "Bonanza Enterprises, Ltd", "Mini-Boy 7 (set 1)", MACHINE_NO_COCKTAIL, layout_miniboy7 ) -GAMEL( 1983, miniboy7a, miniboy7, miniboy7, miniboy7, driver_device, 0, ROT0, "Bonanza Enterprises, Ltd", "Mini-Boy 7 (set 2)", MACHINE_NO_COCKTAIL, layout_miniboy7 ) +// YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS LAYOUT +GAMEL( 1983, miniboy7, 0, miniboy7, miniboy7, miniboy7_state, 0, ROT0, "Bonanza Enterprises, Ltd", "Mini-Boy 7 (set 1)", MACHINE_NO_COCKTAIL, layout_miniboy7 ) +GAMEL( 1983, miniboy7a, miniboy7, miniboy7, miniboy7, miniboy7_state, 0, ROT0, "Bonanza Enterprises, Ltd", "Mini-Boy 7 (set 2)", MACHINE_NO_COCKTAIL, layout_miniboy7 ) diff --git a/src/mame/drivers/minicom.cpp b/src/mame/drivers/minicom.cpp index a1695237b4a..e094f8dffba 100644 --- a/src/mame/drivers/minicom.cpp +++ b/src/mame/drivers/minicom.cpp @@ -225,7 +225,7 @@ DRIVER_INIT_MEMBER( minicom_state, minicom ) { } -static MACHINE_CONFIG_START( minicom, minicom_state ) +static MACHINE_CONFIG_START( minicom ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I87C52, XTAL_10MHz) /*FIX-ME: verify the correct clock frequency */ MCFG_CPU_IO_MAP(i87c52_io) @@ -249,6 +249,6 @@ ROM_START( mcom4_02 ) ROM_LOAD( "ultratec_minicom_iv_20020419.rom", 0x0000, 0x2000, CRC(99b6cc35) SHA1(32577005bf02042f893c8880f8ce5b3d8a5f55f9) ) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1997, minicom, 0, 0, minicom, 0, minicom_state, minicom, "Ultratec", "Minicom IV (1997-08-11)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND) /* fw release data: 11th Aug 1997 */ -COMP( 2002, mcom4_02, 0, 0, minicom, 0, minicom_state, minicom, "Ultratec", "Minicom IV (2002-04-19)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND) /* fw release data: 19th Apr 2002 */ +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 1997, minicom, 0, 0, minicom, 0, minicom_state, minicom, "Ultratec", "Minicom IV (1997-08-11)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND ) // fw release data: 11th Aug 1997 +COMP( 2002, mcom4_02, 0, 0, minicom, 0, minicom_state, minicom, "Ultratec", "Minicom IV (2002-04-19)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND ) // fw release data: 19th Apr 2002 diff --git a/src/mame/drivers/miniforce.cpp b/src/mame/drivers/miniforce.cpp index 1c194060602..6e73d8390a4 100644 --- a/src/mame/drivers/miniforce.cpp +++ b/src/mame/drivers/miniforce.cpp @@ -173,7 +173,7 @@ SLOT_INTERFACE_END /* * Machine configuration */ -MACHINE_CONFIG_START (miniforce, miniforce_state) +MACHINE_CONFIG_START (miniforce) // MCFG_CPU_PROGRAM_MAP (miniforce_mem) MCFG_VME_DEVICE_ADD("vme") MCFG_VME_SLOT_ADD ("vme", 1, miniforce_vme_cards, "fccpu21") @@ -191,5 +191,5 @@ ROM_START(miniforce) ROM_END /* Drivers TODO: setup distinct miniforce machine configurations */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP (1987, miniforce, 0, 0, miniforce, miniforce, driver_device, 0, "Force Computers", "miniFORCE", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW | MACHINE_TYPE_COMPUTER ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ +COMP (1987, miniforce, 0, 0, miniforce, miniforce, miniforce_state, 0, "Force Computers", "miniFORCE", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW | MACHINE_TYPE_COMPUTER) diff --git a/src/mame/drivers/minitel_2_rpic.cpp b/src/mame/drivers/minitel_2_rpic.cpp index d0a091c3748..723fef8f52b 100644 --- a/src/mame/drivers/minitel_2_rpic.cpp +++ b/src/mame/drivers/minitel_2_rpic.cpp @@ -411,7 +411,7 @@ static INPUT_PORTS_START( minitel2 ) INPUT_PORTS_END -static MACHINE_CONFIG_START( minitel2, minitel_state ) +static MACHINE_CONFIG_START( minitel2 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I80C32, XTAL_14_31818MHz) //verified on pcb MCFG_CPU_PROGRAM_MAP(mem_prg) @@ -446,4 +446,4 @@ ROM_START( minitel2 ) ROM_LOAD( "charset.rom", 0x0000, 0x2000, BAD_DUMP CRC(b2f49eb3) SHA1(d0ef530be33bfc296314e7152302d95fdf9520fc) ) // from dcvg5k ROM_END -COMP( 1989, minitel2, 0, 0, minitel2, minitel2,driver_device, 0, "Philips", "Minitel 2", MACHINE_TYPE_COMPUTER | MACHINE_NO_SOUND) +COMP( 1989, minitel2, 0, 0, minitel2, minitel2, minitel_state, 0, "Philips", "Minitel 2", MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/minivadr.cpp b/src/mame/drivers/minivadr.cpp index b2e11eb42d6..c6ce4e7eca5 100644 --- a/src/mame/drivers/minivadr.cpp +++ b/src/mame/drivers/minivadr.cpp @@ -105,7 +105,7 @@ static INPUT_PORTS_START( minivadr ) INPUT_PORTS_END -static MACHINE_CONFIG_START( minivadr, minivadr_state ) +static MACHINE_CONFIG_START( minivadr ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80,24000000 / 6) /* 4 MHz ? */ @@ -136,4 +136,4 @@ ROM_START( minivadr ) ROM_END -GAME( 1990, minivadr, 0, minivadr, minivadr, driver_device, 0, ROT0, "Taito Corporation", "Mini Vaders", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) +GAME( 1990, minivadr, 0, minivadr, minivadr, minivadr_state, 0, ROT0, "Taito Corporation", "Mini Vaders", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) diff --git a/src/mame/drivers/mirage.cpp b/src/mame/drivers/mirage.cpp index eaf5658bbd9..a8beb19edd7 100644 --- a/src/mame/drivers/mirage.cpp +++ b/src/mame/drivers/mirage.cpp @@ -284,7 +284,7 @@ void miragemj_state::machine_reset() m_mux_data = 0; } -static MACHINE_CONFIG_START( mirage, miragemj_state ) +static MACHINE_CONFIG_START( mirage ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 28000000/2) @@ -331,10 +331,10 @@ static MACHINE_CONFIG_START( mirage, miragemj_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki_bgm", 2000000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki_bgm", 2000000, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30) - MCFG_OKIM6295_ADD("oki_sfx", 1000000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki_sfx", 1000000, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.70) MACHINE_CONFIG_END diff --git a/src/mame/drivers/mirax.cpp b/src/mame/drivers/mirax.cpp index ff0a166a23b..d95f34d3adb 100644 --- a/src/mame/drivers/mirax.cpp +++ b/src/mame/drivers/mirax.cpp @@ -474,7 +474,7 @@ INTERRUPT_GEN_MEMBER(mirax_state::vblank_irq) device.execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE); } -static MACHINE_CONFIG_START( mirax, mirax_state ) +static MACHINE_CONFIG_START( mirax ) MCFG_CPU_ADD("maincpu", Z80, 12000000/4) // ceramic potted module, encrypted z80 MCFG_CPU_PROGRAM_MAP(mirax_main_map) MCFG_CPU_VBLANK_INT_DRIVER("screen", mirax_state, vblank_irq) @@ -588,5 +588,5 @@ DRIVER_INIT_MEMBER(mirax_state,mirax) m_flipscreen_y = 0; } -GAME( 1985, mirax, 0, mirax, mirax, mirax_state, mirax, ROT90, "Current Technologies", "Mirax (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, mirax, 0, mirax, mirax, mirax_state, mirax, ROT90, "Current Technologies", "Mirax (set 1)", MACHINE_SUPPORTS_SAVE ) GAME( 1985, miraxa, mirax, mirax, miraxa, mirax_state, mirax, ROT90, "Current Technologies", "Mirax (set 2)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/missb2.cpp b/src/mame/drivers/missb2.cpp index b0dea93a3c0..63b24d5ad9d 100644 --- a/src/mame/drivers/missb2.cpp +++ b/src/mame/drivers/missb2.cpp @@ -31,20 +31,23 @@ class missb2_state : public bublbobl_state { public: missb2_state(const machine_config &mconfig, device_type type, const char *tag) - : bublbobl_state(mconfig, type, tag), - m_bgvram(*this, "bgvram"), - m_bgpalette(*this, "bgpalette") - { } + : bublbobl_state(mconfig, type, tag) + , m_bgvram(*this, "bgvram") + , m_bgpalette(*this, "bgpalette") + { } - required_shared_ptr m_bgvram; - required_device m_bgpalette; DECLARE_WRITE8_MEMBER(missb2_bg_bank_w); DECLARE_WRITE_LINE_MEMBER(irqhandler); DECLARE_DRIVER_INIT(missb2); DECLARE_MACHINE_START(missb2); DECLARE_MACHINE_RESET(missb2); uint32_t screen_update_missb2(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); + +protected: void configure_banks(); + + required_shared_ptr m_bgvram; + required_device m_bgpalette; }; @@ -437,7 +440,7 @@ MACHINE_RESET_MEMBER(missb2_state,missb2) m_sound_status = 0; } -static MACHINE_CONFIG_START( missb2, missb2_state ) +static MACHINE_CONFIG_START( missb2 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, MAIN_XTAL/4) // 6 MHz @@ -483,7 +486,7 @@ static MACHINE_CONFIG_START( missb2, missb2_state ) MCFG_YM3526_IRQ_HANDLER(WRITELINE(missb2_state, irqhandler)) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40) - MCFG_OKIM6295_ADD("oki", 1056000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki", 1056000, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.4) MACHINE_CONFIG_END @@ -581,4 +584,4 @@ DRIVER_INIT_MEMBER(missb2_state,missb2) /* Game Drivers */ GAME( 1996, missb2, 0, missb2, missb2, missb2_state, missb2, ROT0, "Alpha Co.", "Miss Bubble II", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1996, bublpong, missb2, bublpong, missb2, missb2_state, missb2, ROT0, "Top Ltd.", "Bubble Pong Pong", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, bublpong, missb2, bublpong, missb2, missb2_state, missb2, ROT0, "Top Ltd.", "Bubble Pong Pong", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/missile.cpp b/src/mame/drivers/missile.cpp index 49196586e38..548eb3777e9 100644 --- a/src/mame/drivers/missile.cpp +++ b/src/mame/drivers/missile.cpp @@ -1134,7 +1134,7 @@ INPUT_PORTS_END * *************************************/ -static MACHINE_CONFIG_START( missile, missile_state ) +static MACHINE_CONFIG_START( missile ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, MASTER_CLOCK/8) @@ -1485,17 +1485,17 @@ DRIVER_INIT_MEMBER(missile_state,missilem) * *************************************/ -GAME( 1980, missile, 0, missile, missile, driver_device, 0, ROT0, "Atari", "Missile Command (rev 3)", MACHINE_SUPPORTS_SAVE ) -GAME( 1980, missile2, missile, missile, missile, driver_device, 0, ROT0, "Atari", "Missile Command (rev 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1980, missile1, missile, missile, missile, driver_device, 0, ROT0, "Atari", "Missile Command (rev 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, missile, 0, missile, missile, missile_state, 0, ROT0, "Atari", "Missile Command (rev 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, missile2, missile, missile, missile, missile_state, 0, ROT0, "Atari", "Missile Command (rev 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, missile1, missile, missile, missile, missile_state, 0, ROT0, "Atari", "Missile Command (rev 1)", MACHINE_SUPPORTS_SAVE ) GAME( 1981, suprmatk, missile, missile, suprmatk, missile_state, suprmatk, ROT0, "Atari / General Computer Corporation", "Super Missile Attack (for rev 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, suprmatkd,missile, missile, suprmatk, driver_device, 0, ROT0, "Atari / General Computer Corporation", "Super Missile Attack (not encrypted)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, suprmatkd,missile, missile, suprmatk, missile_state, 0, ROT0, "Atari / General Computer Corporation", "Super Missile Attack (not encrypted)", MACHINE_SUPPORTS_SAVE ) /* the following bootleg has extremely similar program ROMs to missile1, but has different unknown sound hardware and 2 more ROMs */ -GAME( 1981, missilea, missile, missilea, missile, driver_device, 0, ROT0, "bootleg (Ugames)", "Missile Attack", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1981, missilea, missile, missilea, missile, driver_device, 0, ROT0, "bootleg (Ugames)", "Missile Attack", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) /* the following bootlegs are on different hardware and don't work */ -GAME( 1980, mcombat, missile, missileb, missileb, driver_device, 0, ROT0, "bootleg (Videotron)", "Missile Combat (Videotron bootleg, set 1)", MACHINE_NOT_WORKING ) -GAME( 1980, mcombata, missile, missileb, missileb, driver_device, 0, ROT0, "bootleg (Videotron)", "Missile Combat (Videotron bootleg, set 2)", MACHINE_NOT_WORKING ) -GAME( 1980, mcombats, missile, missileb, missileb, driver_device, 0, ROT0, "bootleg (Sidam)", "Missile Combat (Sidam bootleg)", MACHINE_NOT_WORKING ) -GAME( 2005, missilem, missile, missilea, missileb, missile_state, missilem, ROT0, "hack (Braze Technologies)", "Missile Command Multigame", MACHINE_NOT_WORKING ) +GAME( 1980, mcombat, missile, missileb, missileb, missile_state, 0, ROT0, "bootleg (Videotron)", "Missile Combat (Videotron bootleg, set 1)", MACHINE_NOT_WORKING ) +GAME( 1980, mcombata, missile, missileb, missileb, missile_state, 0, ROT0, "bootleg (Videotron)", "Missile Combat (Videotron bootleg, set 2)", MACHINE_NOT_WORKING ) +GAME( 1980, mcombats, missile, missileb, missileb, missile_state, 0, ROT0, "bootleg (Sidam)", "Missile Combat (Sidam bootleg)", MACHINE_NOT_WORKING ) +GAME( 2005, missilem, missile, missilea, missileb, missile_state, missilem, ROT0, "hack (Braze Technologies)", "Missile Command Multigame", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/mitchell.cpp b/src/mame/drivers/mitchell.cpp index 162e20c7eb5..80081c0fd9b 100644 --- a/src/mame/drivers/mitchell.cpp +++ b/src/mame/drivers/mitchell.cpp @@ -1163,7 +1163,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(mitchell_state::mitchell_irq) } } -static MACHINE_CONFIG_START( mgakuen, mitchell_state ) +static MACHINE_CONFIG_START( mgakuen ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_16MHz/2) /* probably same clock as the other mitchell hardware games */ @@ -1195,7 +1195,7 @@ static MACHINE_CONFIG_START( mgakuen, mitchell_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", XTAL_16MHz/16, OKIM6295_PIN7_HIGH) /* probably same clock as the other mitchell hardware games */ + MCFG_OKIM6295_ADD("oki", XTAL_16MHz/16, PIN7_HIGH) /* probably same clock as the other mitchell hardware games */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) MCFG_SOUND_ADD("ymsnd", YM2413, XTAL_16MHz/4) /* probably same clock as the other mitchell hardware games */ @@ -1203,7 +1203,7 @@ static MACHINE_CONFIG_START( mgakuen, mitchell_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( pang, mitchell_state ) +static MACHINE_CONFIG_START( pang ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80, XTAL_16MHz/2) /* verified on pcb */ @@ -1236,7 +1236,7 @@ static MACHINE_CONFIG_START( pang, mitchell_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", XTAL_16MHz/16, OKIM6295_PIN7_HIGH) /* verified on pcb */ + MCFG_OKIM6295_ADD("oki", XTAL_16MHz/16, PIN7_HIGH) /* verified on pcb */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30) MCFG_SOUND_ADD("ymsnd",YM2413, XTAL_16MHz/4) /* verified on pcb */ @@ -1298,7 +1298,7 @@ static MACHINE_CONFIG_DERIVED( spangbl, pangnv ) MCFG_DEVICE_REMOVE("oki") MCFG_SOUND_ADD("msm", MSM5205, 384000) MCFG_MSM5205_VCLK_CB(WRITELINE(mitchell_state, spangbl_adpcm_int)) /* interrupt function */ - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S48_4B) /* 4KHz 4-bit */ + MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) /* 4KHz 4-bit */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) MCFG_DEVICE_ADD("adpcm_select", LS157, 0) @@ -1313,7 +1313,7 @@ static MACHINE_CONFIG_DERIVED( pangba, spangbl ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( mstworld, mitchell_state ) +static MACHINE_CONFIG_START( mstworld ) /* basic machine hardware */ /* it doesn't glitch with the clock speed set to 4x normal, however this is incorrect.. @@ -1352,12 +1352,12 @@ static MACHINE_CONFIG_START( mstworld, mitchell_state ) MCFG_GENERIC_LATCH_8_ADD("soundlatch") - MCFG_OKIM6295_ADD("oki", 990000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki", 990000, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( marukin, mitchell_state ) +static MACHINE_CONFIG_START( marukin ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_16MHz/2) /* verified on pcb */ @@ -1387,7 +1387,7 @@ static MACHINE_CONFIG_START( marukin, mitchell_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", XTAL_16MHz/16, OKIM6295_PIN7_HIGH) /* verified on pcb */ + MCFG_OKIM6295_ADD("oki", XTAL_16MHz/16, PIN7_HIGH) /* verified on pcb */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30) MCFG_SOUND_ADD("ymsnd", YM2413, XTAL_16MHz/4) /* verified on pcb */ @@ -1412,7 +1412,7 @@ Vsync is 59.09hz */ -static MACHINE_CONFIG_START( pkladiesbl, mitchell_state ) +static MACHINE_CONFIG_START( pkladiesbl ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_12MHz/2) /* verified on pcb */ @@ -1442,7 +1442,7 @@ static MACHINE_CONFIG_START( pkladiesbl, mitchell_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", XTAL_16MHz/16, OKIM6295_PIN7_HIGH) /* It should be a OKIM5205 with a 384khz resonator */ + MCFG_OKIM6295_ADD("oki", XTAL_16MHz/16, PIN7_HIGH) /* It should be a OKIM5205 with a 384khz resonator */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) MCFG_SOUND_ADD("ymsnd", YM2413, 3750000) /* verified on pcb, read the comments */ diff --git a/src/mame/drivers/mits680b.cpp b/src/mame/drivers/mits680b.cpp index b7dac966cc9..cd3c008ab58 100644 --- a/src/mame/drivers/mits680b.cpp +++ b/src/mame/drivers/mits680b.cpp @@ -39,14 +39,17 @@ public: { } - required_device m_maincpu; - required_device m_terminal; DECLARE_READ8_MEMBER(terminal_status_r); DECLARE_READ8_MEMBER(terminal_r); DECLARE_READ8_MEMBER(status_check_r); - DECLARE_WRITE8_MEMBER(kbd_put); - uint8_t m_term_data; + void kbd_put(u8 data); + +protected: virtual void machine_reset() override; + + required_device m_maincpu; + required_device m_terminal; + uint8_t m_term_data; }; READ8_MEMBER( mits680b_state::status_check_r ) @@ -87,19 +90,19 @@ void mits680b_state::machine_reset() m_term_data = 0; } -WRITE8_MEMBER( mits680b_state::kbd_put ) +void mits680b_state::kbd_put(u8 data) { m_term_data = data; } -static MACHINE_CONFIG_START( mits680b, mits680b_state ) +static MACHINE_CONFIG_START( mits680b ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",M6800, XTAL_1MHz / 2) MCFG_CPU_PROGRAM_MAP(mits680b_mem) /* video hardware */ MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0) - MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(mits680b_state, kbd_put)) + MCFG_GENERIC_TERMINAL_KEYBOARD_CB(PUT(mits680b_state, kbd_put)) /* acia */ //MCFG_ACIA6551_ADD("acia") @@ -113,5 +116,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1976, mits680b, 0, 0, mits680b, mits680b, driver_device, 0, "MITS", "Altair 680b", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1976, mits680b, 0, 0, mits680b, mits680b, mits680b_state, 0, "MITS", "Altair 680b", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) diff --git a/src/mame/drivers/mjkjidai.cpp b/src/mame/drivers/mjkjidai.cpp index f964372558d..9a0f8ce44d6 100644 --- a/src/mame/drivers/mjkjidai.cpp +++ b/src/mame/drivers/mjkjidai.cpp @@ -300,7 +300,7 @@ void mjkjidai_state::machine_reset() m_adpcm_pos = m_adpcm_end = 0; } -static MACHINE_CONFIG_START( mjkjidai, mjkjidai_state ) +static MACHINE_CONFIG_START( mjkjidai ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80,10000000/2) /* 5 MHz ??? */ @@ -333,7 +333,7 @@ static MACHINE_CONFIG_START( mjkjidai, mjkjidai_state ) MCFG_SOUND_ADD("msm", MSM5205, 384000) MCFG_MSM5205_VCLK_CB(WRITELINE(mjkjidai_state, adpcm_int)) - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S64_4B) /* 6kHz */ + MCFG_MSM5205_PRESCALER_SELECTOR(S64_4B) /* 6kHz */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -372,4 +372,4 @@ ROM_START( mjkjidai ) ROM_END -GAME( 1986, mjkjidai, 0, mjkjidai, mjkjidai, driver_device, 0, ROT0, "Sanritsu", "Mahjong Kyou Jidai (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1986, mjkjidai, 0, mjkjidai, mjkjidai, mjkjidai_state, 0, ROT0, "Sanritsu", "Mahjong Kyou Jidai (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/mjsenpu.cpp b/src/mame/drivers/mjsenpu.cpp index f2f7e99987b..3e423d318cf 100644 --- a/src/mame/drivers/mjsenpu.cpp +++ b/src/mame/drivers/mjsenpu.cpp @@ -454,7 +454,7 @@ following clocks are on the PCB */ -static MACHINE_CONFIG_START( mjsenpu, mjsenpu_state ) +static MACHINE_CONFIG_START( mjsenpu ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", E132XT, 27000000*2) /* ?? Mhz */ @@ -480,7 +480,7 @@ static MACHINE_CONFIG_START( mjsenpu, mjsenpu_state ) MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", 1000000, OKIM6295_PIN7_HIGH) /* 1 Mhz? */ + MCFG_OKIM6295_ADD("oki", 1000000, PIN7_HIGH) /* 1 Mhz? */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) MACHINE_CONFIG_END diff --git a/src/mame/drivers/mjsister.cpp b/src/mame/drivers/mjsister.cpp index d26d6c18b89..3ef65322117 100644 --- a/src/mame/drivers/mjsister.cpp +++ b/src/mame/drivers/mjsister.cpp @@ -483,7 +483,7 @@ void mjsister_state::machine_reset() } -static MACHINE_CONFIG_START( mjsister, mjsister_state ) +static MACHINE_CONFIG_START( mjsister ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, MCLK/2) /* 6.000 MHz */ @@ -547,4 +547,4 @@ ROM_END * *************************************/ -GAME( 1986, mjsister, 0, mjsister, mjsister, driver_device, 0, ROT0, "Toaplan", "Mahjong Sisters (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, mjsister, 0, mjsister, mjsister, mjsister_state, 0, ROT0, "Toaplan", "Mahjong Sisters (Japan)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/mk1.cpp b/src/mame/drivers/mk1.cpp index b70db2cd727..f1905c2817d 100644 --- a/src/mame/drivers/mk1.cpp +++ b/src/mame/drivers/mk1.cpp @@ -174,7 +174,7 @@ F3853_INTERRUPT_REQ_CB(mk1_state::mk1_interrupt) m_maincpu->set_input_line(F8_INPUT_LINE_INT_REQ, level ? ASSERT_LINE : CLEAR_LINE); } -static MACHINE_CONFIG_START( mk1, mk1_state ) +static MACHINE_CONFIG_START( mk1 ) /* basic machine hardware */ MCFG_CPU_ADD( "maincpu", F8, MAIN_CLOCK ) /* MK3850 */ MCFG_CPU_PROGRAM_MAP(mk1_mem) @@ -205,5 +205,5 @@ ROM_END ***************************************************************************/ // seams to be developed by mostek (MK) -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ -CONS( 1979, ccmk1, 0, 0, mk1, mk1, driver_device, 0, "Novag", "Chess Champion MK I", MACHINE_NO_SOUND_HW ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +CONS( 1979, ccmk1, 0, 0, mk1, mk1, mk1_state, 0, "Novag", "Chess Champion MK I", MACHINE_NO_SOUND_HW ) diff --git a/src/mame/drivers/mk14.cpp b/src/mame/drivers/mk14.cpp index dff0ff8119b..bf7e7692b27 100644 --- a/src/mame/drivers/mk14.cpp +++ b/src/mame/drivers/mk14.cpp @@ -188,7 +188,7 @@ void mk14_state::machine_reset() { } -static MACHINE_CONFIG_START( mk14, mk14_state ) +static MACHINE_CONFIG_START( mk14 ) /* basic machine hardware */ // IC1 1SP-8A/600 (8060) SC/MP Microprocessor MCFG_CPU_ADD("maincpu", INS8060, XTAL_4_433619MHz) @@ -225,5 +225,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1977, mk14, 0, 0, mk14, mk14, driver_device, 0, "Science of Cambridge", "MK-14", 0 ) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 1977, mk14, 0, 0, mk14, mk14, mk14_state, 0, "Science of Cambridge", "MK-14", 0 ) diff --git a/src/mame/drivers/mk2.cpp b/src/mame/drivers/mk2.cpp index df887a44e7a..90d9e57c026 100644 --- a/src/mame/drivers/mk2.cpp +++ b/src/mame/drivers/mk2.cpp @@ -186,7 +186,7 @@ WRITE8_MEMBER( mk2_state::mk2_write_b ) } -static MACHINE_CONFIG_START( mk2, mk2_state ) +static MACHINE_CONFIG_START( mk2 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6504, 1000000) MCFG_CPU_PROGRAM_MAP(mk2_mem) @@ -223,6 +223,6 @@ ROM_END ***************************************************************************/ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME */ -CONS( 1979, ccmk2, 0, 0, mk2, mk2, driver_device, 0, "Novag", "Chess Champion MK II", 0) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +CONS( 1979, ccmk2, 0, 0, mk2, mk2, mk2_state, 0, "Novag", "Chess Champion MK II", 0 ) // second design sold (same computer/program?) diff --git a/src/mame/drivers/mk85.cpp b/src/mame/drivers/mk85.cpp index 67cb4db34b8..b8a73ef8662 100644 --- a/src/mame/drivers/mk85.cpp +++ b/src/mame/drivers/mk85.cpp @@ -64,7 +64,7 @@ uint32_t mk85_state::screen_update_mk85(screen_device &screen, bitmap_ind16 &bit return 0; } -static MACHINE_CONFIG_START( mk85, mk85_state ) +static MACHINE_CONFIG_START( mk85 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", K1801VM2, XTAL_4MHz) MCFG_T11_INITIAL_MODE(0) @@ -91,5 +91,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1986, mk85, 0, 0, mk85, mk85, driver_device, 0, "Elektronika", "MK-85", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +COMP( 1986, mk85, 0, 0, mk85, mk85, mk85_state, 0, "Elektronika", "MK-85", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) diff --git a/src/mame/drivers/mk90.cpp b/src/mame/drivers/mk90.cpp index 356be54115e..7ce2c4eabbb 100644 --- a/src/mame/drivers/mk90.cpp +++ b/src/mame/drivers/mk90.cpp @@ -67,7 +67,7 @@ uint32_t mk90_state::screen_update_mk90(screen_device &screen, bitmap_ind16 &bit return 0; } -static MACHINE_CONFIG_START( mk90, mk90_state ) +static MACHINE_CONFIG_START( mk90 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", K1801VM2, XTAL_4MHz) MCFG_T11_INITIAL_MODE(0x8000) @@ -99,5 +99,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1988, mk90, 0, 0, mk90, mk90, driver_device, 0, "Elektronika", "MK-90", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +COMP( 1988, mk90, 0, 0, mk90, mk90, mk90_state, 0, "Elektronika", "MK-90", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) diff --git a/src/mame/drivers/mkit09.cpp b/src/mame/drivers/mkit09.cpp index f7f3b626d84..b38fe364f34 100644 --- a/src/mame/drivers/mkit09.cpp +++ b/src/mame/drivers/mkit09.cpp @@ -189,7 +189,7 @@ WRITE8_MEMBER( mkit09_state::pb_w ) } -static MACHINE_CONFIG_START( mkit09, mkit09_state ) +static MACHINE_CONFIG_START( mkit09 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",M6809E, XTAL_4MHz) MCFG_CPU_PROGRAM_MAP(mkit09_mem) @@ -215,7 +215,7 @@ static MACHINE_CONFIG_START( mkit09, mkit09_state ) MCFG_CASSETTE_ADD( "cassette" ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( mkit09a, mkit09_state ) +static MACHINE_CONFIG_START( mkit09a ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",M6809E, XTAL_4MHz) MCFG_CPU_PROGRAM_MAP(mkit09a_mem) @@ -254,6 +254,6 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1983, mkit09, 0, 0, mkit09, mkit09, driver_device, 0, "Multitech", "Microkit09", MACHINE_NO_SOUND_HW ) -COMP( 1983, mkit09a, mkit09, 0, mkit09a, mkit09, driver_device, 0, "Multitech", "Microkit09 (Alt version)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW ) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 1983, mkit09, 0, 0, mkit09, mkit09, mkit09_state, 0, "Multitech", "Microkit09", MACHINE_NO_SOUND_HW ) +COMP( 1983, mkit09a, mkit09, 0, mkit09a, mkit09, mkit09_state, 0, "Multitech", "Microkit09 (Alt version)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW ) diff --git a/src/mame/drivers/mlanding.cpp b/src/mame/drivers/mlanding.cpp index 9d5a51af337..2a037cba84c 100644 --- a/src/mame/drivers/mlanding.cpp +++ b/src/mame/drivers/mlanding.cpp @@ -922,7 +922,7 @@ INPUT_PORTS_END * *************************************/ -static MACHINE_CONFIG_START( mlanding, mlanding_state ) +static MACHINE_CONFIG_START( mlanding ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 8000000) // Appears to be 68000P8 in PCB photo @@ -977,11 +977,11 @@ static MACHINE_CONFIG_START( mlanding, mlanding_state ) MCFG_SOUND_ADD("msm1", MSM5205, 384000) MCFG_MSM5205_VCLK_CB(WRITELINE(mlanding_state, msm5205_1_vck)) // VCK function - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S48_4B) // 8 kHz, 4-bit + MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) // 8 kHz, 4-bit MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) MCFG_SOUND_ADD("msm2", MSM5205, 384000) - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_SEX_4B) // Slave mode, 4-bit + MCFG_MSM5205_PRESCALER_SELECTOR(SEX_4B) // Slave mode, 4-bit MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10) MACHINE_CONFIG_END @@ -1031,4 +1031,4 @@ ROM_END * *************************************/ -GAME( 1987, mlanding, 0, mlanding, mlanding, driver_device, 0, ROT0, "Taito America Corporation", "Midnight Landing (Germany)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, mlanding, 0, mlanding, mlanding, mlanding_state, 0, ROT0, "Taito America Corporation", "Midnight Landing (Germany)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/mmagic.cpp b/src/mame/drivers/mmagic.cpp index 52548495a86..ccb0d8be365 100644 --- a/src/mame/drivers/mmagic.cpp +++ b/src/mame/drivers/mmagic.cpp @@ -269,7 +269,7 @@ void mmagic_state::machine_start() // MACHINE DEFINTIONS //************************************************************************** -static MACHINE_CONFIG_START( mmagic, mmagic_state ) +static MACHINE_CONFIG_START( mmagic ) // basic machine hardware MCFG_CPU_ADD("maincpu", I8085A, XTAL_6_144MHz) // NEC D8085A MCFG_CPU_PROGRAM_MAP(mmagic_mem) @@ -314,5 +314,5 @@ ROM_END // GAME DRIVERS //************************************************************************** -// YEAR NAME PARENT MACHINE INPUT CLASS INIT ROT COMPANY FULLNAME FLAGS -GAME( 1979, mmagic, 0, mmagic, mmagic, driver_device, 0, ROT270, "Nintendo", "Monkey Magic", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND ) +// YEAR NAME PARENT MACHINE INPUT CLASS INIT ROT COMPANY FULLNAME FLAGS +GAME( 1979, mmagic, 0, mmagic, mmagic, mmagic_state, 0, ROT270, "Nintendo", "Monkey Magic", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/mmd1.cpp b/src/mame/drivers/mmd1.cpp index 890b7c39c13..a566a5af8ee 100644 --- a/src/mame/drivers/mmd1.cpp +++ b/src/mame/drivers/mmd1.cpp @@ -413,10 +413,10 @@ READ8_MEMBER( mmd1_state::mmd2_kbd_r ) WRITE8_MEMBER( mmd1_state::mmd2_status_callback ) { // operate the HALT LED - output().set_value("led_halt", ~data & I8085_STATUS_HLTA); + output().set_value("led_halt", ~data & i8080_cpu_device::STATUS_HLTA); // operate the HOLD LED - this should connect to the HLDA pin, // but it isn't emulated, using WO instead (whatever that does). - output().set_value("led_hold", data & I8085_STATUS_WO); + output().set_value("led_hold", data & i8080_cpu_device::STATUS_WO); } WRITE_LINE_MEMBER( mmd1_state::mmd2_inte_callback ) @@ -475,7 +475,7 @@ We preset all banks here, so that bankswitching will incur no speed penalty. membank("bank8")->configure_entry(2, &p_ram[0xd800]); } -static MACHINE_CONFIG_START( mmd1, mmd1_state ) +static MACHINE_CONFIG_START( mmd1 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",I8080, 6750000 / 9) MCFG_CPU_PROGRAM_MAP(mmd1_mem) @@ -487,7 +487,7 @@ static MACHINE_CONFIG_START( mmd1, mmd1_state ) MCFG_DEFAULT_LAYOUT(layout_mmd1) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( mmd2, mmd1_state ) +static MACHINE_CONFIG_START( mmd2 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",I8080, 6750000 / 9) MCFG_CPU_PROGRAM_MAP(mmd2_mem) @@ -526,6 +526,6 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1976, mmd1, 0, 0, mmd1, mmd1, driver_device, 0, "E&L Instruments Inc", "MMD-1", MACHINE_NO_SOUND_HW) -COMP( 1976, mmd2, mmd1, 0, mmd2, mmd2, mmd1_state, mmd2, "E&L Instruments Inc", "MMD-2", MACHINE_NO_SOUND_HW) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1976, mmd1, 0, 0, mmd1, mmd1, mmd1_state, 0, "E&L Instruments Inc", "MMD-1", MACHINE_NO_SOUND_HW ) +COMP( 1976, mmd2, mmd1, 0, mmd2, mmd2, mmd1_state, mmd2, "E&L Instruments Inc", "MMD-2", MACHINE_NO_SOUND_HW ) diff --git a/src/mame/drivers/mmm.cpp b/src/mame/drivers/mmm.cpp index 1f567dced93..1ebf30fab19 100644 --- a/src/mame/drivers/mmm.cpp +++ b/src/mame/drivers/mmm.cpp @@ -35,7 +35,7 @@ static INPUT_PORTS_START( mmm ) INPUT_PORTS_END -static MACHINE_CONFIG_START( mmm, mmm_state ) +static MACHINE_CONFIG_START( mmm ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80,2000000) /* ? MHz */ MCFG_CPU_PROGRAM_MAP(mmm_map) @@ -51,4 +51,4 @@ ROM_START( mmm_ldip ) ROM_END -GAME( 198?, mmm_ldip, 0, mmm, mmm, driver_device, 0, ROT0, "Maygay", "Lucky Dip (Maygay)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 198?, mmm_ldip, 0, mmm, mmm, mmm_state, 0, ROT0, "Maygay", "Lucky Dip (Maygay)", MACHINE_IS_SKELETON_MECHANICAL) diff --git a/src/mame/drivers/mmodular.cpp b/src/mame/drivers/mmodular.cpp index 50c2cfda0e1..a2f4db88480 100644 --- a/src/mame/drivers/mmodular.cpp +++ b/src/mame/drivers/mmodular.cpp @@ -1281,7 +1281,7 @@ static MACHINE_CONFIG_FRAGMENT ( chess_common ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( polgar, polgar_state ) +static MACHINE_CONFIG_START( polgar ) MCFG_CPU_ADD("maincpu",M65C02,4915200) MCFG_CPU_PROGRAM_MAP(polgar_mem) MCFG_QUANTUM_TIME(attotime::from_hz(60)) @@ -1295,7 +1295,7 @@ static MACHINE_CONFIG_START( polgar, polgar_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( alm32, polgar_state ) +static MACHINE_CONFIG_START( alm32 ) MCFG_CPU_ADD("maincpu", M68020, XTAL_12MHz) MCFG_CPU_PROGRAM_MAP(alm32_mem) MCFG_MACHINE_START_OVERRIDE(polgar_state,van32) @@ -1324,7 +1324,7 @@ static MACHINE_CONFIG_DERIVED( milano, polgar ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( monteciv, polgar_state ) +static MACHINE_CONFIG_START( monteciv ) MCFG_CPU_ADD("maincpu",M65C02,8000000) MCFG_CPU_PROGRAM_MAP( monteciv_mem ) MCFG_MACHINE_START_OVERRIDE(polgar_state, polgar ) @@ -1344,7 +1344,7 @@ static MACHINE_CONFIG_DERIVED( megaiv, monteciv ) MCFG_CPU_PROGRAM_MAP(megaiv_mem) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( van16, polgar_state ) +static MACHINE_CONFIG_START( van16 ) MCFG_CPU_ADD("maincpu", M68000, XTAL_12MHz) MCFG_CPU_PROGRAM_MAP(van16_mem) MCFG_MACHINE_START_OVERRIDE(polgar_state,van16) @@ -1362,7 +1362,7 @@ static MACHINE_CONFIG_DERIVED( alm16, van16 ) MCFG_CPU_PROGRAM_MAP(alm16_mem) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( van32, polgar_state ) +static MACHINE_CONFIG_START( van32 ) MCFG_CPU_ADD("maincpu", M68020, XTAL_12MHz) MCFG_CPU_PROGRAM_MAP(van32_mem) MCFG_MACHINE_START_OVERRIDE(polgar_state,van32) @@ -1375,7 +1375,7 @@ static MACHINE_CONFIG_START( van32, polgar_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( gen32, polgar_state ) +static MACHINE_CONFIG_START( gen32 ) MCFG_CPU_ADD("maincpu", M68030, XTAL_33_333MHz) MCFG_CPU_PROGRAM_MAP(gen32_mem) MCFG_MACHINE_START_OVERRIDE(polgar_state,van32) @@ -1390,7 +1390,7 @@ static MACHINE_CONFIG_START( gen32, polgar_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( bpl32, polgar_state ) +static MACHINE_CONFIG_START( bpl32 ) MCFG_CPU_ADD("maincpu", M68020, XTAL_24_576MHz) MCFG_CPU_PROGRAM_MAP(bpl32_mem) MCFG_MACHINE_START_OVERRIDE(polgar_state,van32) @@ -1508,22 +1508,22 @@ DRIVER_INIT_MEMBER(polgar_state,polgar) led_status=0; } -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ - CONS( 1986, polgar, 0, 0, polgar, polgar, polgar_state, polgar, "Hegener & Glaser", "Mephisto Polgar Schachcomputer", MACHINE_NOT_WORKING | MACHINE_REQUIRES_ARTWORK | MACHINE_CLICKABLE_ARTWORK) - CONS( 1988, alm16, van16, 0, alm16, van16, driver_device, 0, "Hegener & Glaser Muenchen", "Mephisto Almeria 68000", MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK | MACHINE_CLICKABLE_ARTWORK ) - CONS( 1988, alm32, van16, 0, alm32, van32, driver_device, 0, "Hegener & Glaser Muenchen", "Mephisto Alimera 68020", MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK | MACHINE_CLICKABLE_ARTWORK ) - CONS( 1989, academy, 0, 0, academy, academy, driver_device, 0, "Hegener & Glaser", "Mephisto Academy Schachcomputer", MACHINE_REQUIRES_ARTWORK|MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK ) - CONS( 1989, megaiv, 0, 0, megaiv, megaiv, driver_device, 0, "Hegener & Glaser", "Mephisto Mega IV Schachcomputer", MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK | MACHINE_CLICKABLE_ARTWORK ) - CONS( 1989, milano, polgar, 0, milano, polgar, polgar_state, polgar, "Hegener & Glaser", "Mephisto Milano Schachcomputer", MACHINE_REQUIRES_ARTWORK | MACHINE_CLICKABLE_ARTWORK ) -//CONS( 1989, montec4, 0, 0, monteciv, monteciv, driver_device, 0, "Hegener & Glaser", "Mephisto Monte Carlo IV", MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK | MACHINE_CLICKABLE_ARTWORK ) - CONS( 1990, lyon16, van16, 0, alm16, van16, driver_device, 0, "Hegener & Glaser Muenchen", "Mephisto Lyon 68000", MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK | MACHINE_CLICKABLE_ARTWORK ) - CONS( 1990, lyon32, van16, 0, alm32, van32, driver_device, 0, "Hegener & Glaser Muenchen", "Mephisto Lyon 68020", MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK | MACHINE_CLICKABLE_ARTWORK ) - CONS( 1990, monteciv, 0, 0, monteciv, monteciv, driver_device, 0, "Hegener & Glaser", "Mephisto Monte Carlo IV LE Schachcomputer", MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK | MACHINE_CLICKABLE_ARTWORK ) - CONS( 1991, van16, 0, 0, van16, van16, driver_device, 0, "Hegener & Glaser Muenchen", "Mephisto Vancouver 68000", MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK | MACHINE_CLICKABLE_ARTWORK ) - CONS( 1991, van32, van16, 0, van32, van32, driver_device, 0, "Hegener & Glaser Muenchen", "Mephisto Vancouver 68020", MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK | MACHINE_CLICKABLE_ARTWORK ) - CONS( 1993, gen32, van16, 0, gen32, gen32, driver_device, 0, "Hegener & Glaser Muenchen", "Mephisto Genius030 V4.00", MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK | MACHINE_CLICKABLE_ARTWORK ) - CONS( 1993, gen32_41, van16, 0, gen32, gen32, driver_device, 0, "Hegener & Glaser Muenchen", "Mephisto Genius030 V4.01", MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK | MACHINE_CLICKABLE_ARTWORK ) - CONS( 1994, berlinp, van16, 0, bpl32, bpl32, driver_device, 0, "Hegener & Glaser Muenchen", "Mephisto Berlin Pro 68020", MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK | MACHINE_CLICKABLE_ARTWORK ) - CONS( 1996, bpl32, van16, 0, bpl32, bpl32, driver_device, 0, "Hegener & Glaser Muenchen", "Mephisto Berlin Pro London Upgrade V5.00", MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK | MACHINE_CLICKABLE_ARTWORK ) - CONS( 1996, lond020, van16, 0, van32, van32, driver_device, 0, "Hegener & Glaser Muenchen", "Mephisto London 68020 32 Bit", MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK | MACHINE_CLICKABLE_ARTWORK ) - CONS( 1996, lond030, van16, 0, gen32, gen32, driver_device, 0, "Hegener & Glaser Muenchen", "Mephisto Genius030 London Upgrade V5.00", MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK | MACHINE_CLICKABLE_ARTWORK ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ + CONS( 1986, polgar, 0, 0, polgar, polgar, polgar_state, polgar, "Hegener & Glaser", "Mephisto Polgar Schachcomputer", MACHINE_NOT_WORKING | MACHINE_REQUIRES_ARTWORK | MACHINE_CLICKABLE_ARTWORK) + CONS( 1988, alm16, van16, 0, alm16, van16, polgar_state, 0, "Hegener & Glaser Muenchen", "Mephisto Almeria 68000", MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK | MACHINE_CLICKABLE_ARTWORK ) + CONS( 1988, alm32, van16, 0, alm32, van32, polgar_state, 0, "Hegener & Glaser Muenchen", "Mephisto Alimera 68020", MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK | MACHINE_CLICKABLE_ARTWORK ) + CONS( 1989, academy, 0, 0, academy, academy, polgar_state, 0, "Hegener & Glaser", "Mephisto Academy Schachcomputer", MACHINE_REQUIRES_ARTWORK|MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK ) + CONS( 1989, megaiv, 0, 0, megaiv, megaiv, polgar_state, 0, "Hegener & Glaser", "Mephisto Mega IV Schachcomputer", MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK | MACHINE_CLICKABLE_ARTWORK ) + CONS( 1989, milano, polgar, 0, milano, polgar, polgar_state, polgar, "Hegener & Glaser", "Mephisto Milano Schachcomputer", MACHINE_REQUIRES_ARTWORK | MACHINE_CLICKABLE_ARTWORK ) +// CONS( 1989, montec4, 0, 0, monteciv, monteciv, polgar_state, 0, "Hegener & Glaser", "Mephisto Monte Carlo IV", MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK | MACHINE_CLICKABLE_ARTWORK ) + CONS( 1990, lyon16, van16, 0, alm16, van16, polgar_state, 0, "Hegener & Glaser Muenchen", "Mephisto Lyon 68000", MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK | MACHINE_CLICKABLE_ARTWORK ) + CONS( 1990, lyon32, van16, 0, alm32, van32, polgar_state, 0, "Hegener & Glaser Muenchen", "Mephisto Lyon 68020", MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK | MACHINE_CLICKABLE_ARTWORK ) + CONS( 1990, monteciv, 0, 0, monteciv, monteciv, polgar_state, 0, "Hegener & Glaser", "Mephisto Monte Carlo IV LE Schachcomputer", MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK | MACHINE_CLICKABLE_ARTWORK ) + CONS( 1991, van16, 0, 0, van16, van16, polgar_state, 0, "Hegener & Glaser Muenchen", "Mephisto Vancouver 68000", MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK | MACHINE_CLICKABLE_ARTWORK ) + CONS( 1991, van32, van16, 0, van32, van32, polgar_state, 0, "Hegener & Glaser Muenchen", "Mephisto Vancouver 68020", MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK | MACHINE_CLICKABLE_ARTWORK ) + CONS( 1993, gen32, van16, 0, gen32, gen32, polgar_state, 0, "Hegener & Glaser Muenchen", "Mephisto Genius030 V4.00", MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK | MACHINE_CLICKABLE_ARTWORK ) + CONS( 1993, gen32_41, van16, 0, gen32, gen32, polgar_state, 0, "Hegener & Glaser Muenchen", "Mephisto Genius030 V4.01", MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK | MACHINE_CLICKABLE_ARTWORK ) + CONS( 1994, berlinp, van16, 0, bpl32, bpl32, polgar_state, 0, "Hegener & Glaser Muenchen", "Mephisto Berlin Pro 68020", MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK | MACHINE_CLICKABLE_ARTWORK ) + CONS( 1996, bpl32, van16, 0, bpl32, bpl32, polgar_state, 0, "Hegener & Glaser Muenchen", "Mephisto Berlin Pro London Upgrade V5.00", MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK | MACHINE_CLICKABLE_ARTWORK ) + CONS( 1996, lond020, van16, 0, van32, van32, polgar_state, 0, "Hegener & Glaser Muenchen", "Mephisto London 68020 32 Bit", MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK | MACHINE_CLICKABLE_ARTWORK ) + CONS( 1996, lond030, van16, 0, gen32, gen32, polgar_state, 0, "Hegener & Glaser Muenchen", "Mephisto Genius030 London Upgrade V5.00", MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK | MACHINE_CLICKABLE_ARTWORK ) diff --git a/src/mame/drivers/mod8.cpp b/src/mame/drivers/mod8.cpp index 1ddeccc7eb0..007efd6ed27 100644 --- a/src/mame/drivers/mod8.cpp +++ b/src/mame/drivers/mod8.cpp @@ -69,7 +69,7 @@ public: DECLARE_WRITE8_MEMBER(out_w); DECLARE_WRITE8_MEMBER(tty_w); - DECLARE_WRITE8_MEMBER(kbd_put); + void kbd_put(u8 data); DECLARE_READ8_MEMBER(tty_r); IRQ_CALLBACK_MEMBER(mod8_irq_callback); private: @@ -134,13 +134,13 @@ void mod8_state::machine_reset() { } -WRITE8_MEMBER( mod8_state::kbd_put ) +void mod8_state::kbd_put(u8 data) { m_tty_key_data = data ^ 0xff; m_maincpu->set_input_line(0, HOLD_LINE); } -static MACHINE_CONFIG_START( mod8, mod8_state ) +static MACHINE_CONFIG_START( mod8 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",I8008, 800000) MCFG_CPU_PROGRAM_MAP(mod8_mem) @@ -149,7 +149,7 @@ static MACHINE_CONFIG_START( mod8, mod8_state ) /* video hardware */ MCFG_DEVICE_ADD(TELEPRINTER_TAG, TELEPRINTER, 0) - MCFG_GENERIC_TELEPRINTER_KEYBOARD_CB(WRITE8(mod8_state, kbd_put)) + MCFG_GENERIC_TELEPRINTER_KEYBOARD_CB(PUT(mod8_state, kbd_put)) MACHINE_CONFIG_END @@ -167,5 +167,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1974, mod8, 0, 0, mod8, mod8, driver_device, 0, "Microsystems International Ltd", "MOD-8", MACHINE_NO_SOUND_HW) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 1974, mod8, 0, 0, mod8, mod8, mod8_state, 0, "Microsystems International Ltd", "MOD-8", MACHINE_NO_SOUND_HW ) diff --git a/src/mame/drivers/model1.cpp b/src/mame/drivers/model1.cpp index 6dc1ee86c74..411311e8692 100644 --- a/src/mame/drivers/model1.cpp +++ b/src/mame/drivers/model1.cpp @@ -862,12 +862,12 @@ static ADDRESS_MAP_START( model1_mem, AS_PROGRAM, 16, model1_state ) AM_RANGE(0x610000, 0x61ffff) AM_RAM_WRITE(md1_w) AM_SHARE("display_list1") AM_RANGE(0x680000, 0x680003) AM_READWRITE(model1_listctl_r, model1_listctl_w) - AM_RANGE(0x700000, 0x70ffff) AM_DEVREADWRITE("tile", segas24_tile, tile_r, tile_w) + AM_RANGE(0x700000, 0x70ffff) AM_DEVREADWRITE("tile", segas24_tile_device, tile_r, tile_w) AM_RANGE(0x720000, 0x720001) AM_WRITENOP // Unknown, always 0 AM_RANGE(0x740000, 0x740001) AM_WRITENOP // Horizontal synchronization register AM_RANGE(0x760000, 0x760001) AM_WRITENOP // Vertical synchronization register AM_RANGE(0x770000, 0x770001) AM_WRITENOP // Video synchronization switch - AM_RANGE(0x780000, 0x7fffff) AM_DEVREADWRITE("tile", segas24_tile, char_r, char_w) + AM_RANGE(0x780000, 0x7fffff) AM_DEVREADWRITE("tile", segas24_tile_device, char_r, char_w) AM_RANGE(0x900000, 0x903fff) AM_RAM_WRITE(p_w) AM_SHARE("palette") AM_RANGE(0x910000, 0x91bfff) AM_RAM AM_SHARE("color_xlat") @@ -914,12 +914,12 @@ static ADDRESS_MAP_START( model1_vr_mem, AS_PROGRAM, 16, model1_state ) AM_RANGE(0x610000, 0x61ffff) AM_RAM_WRITE(md1_w) AM_SHARE("display_list1") AM_RANGE(0x680000, 0x680003) AM_READWRITE(model1_listctl_r, model1_listctl_w) - AM_RANGE(0x700000, 0x70ffff) AM_DEVREADWRITE("tile", segas24_tile, tile_r, tile_w) + AM_RANGE(0x700000, 0x70ffff) AM_DEVREADWRITE("tile", segas24_tile_device, tile_r, tile_w) AM_RANGE(0x720000, 0x720001) AM_WRITENOP // Unknown, always 0 AM_RANGE(0x740000, 0x740001) AM_WRITENOP // Horizontal synchronization register AM_RANGE(0x760000, 0x760001) AM_WRITENOP // Vertical synchronization register AM_RANGE(0x770000, 0x770001) AM_WRITENOP // Video synchronization switch - AM_RANGE(0x780000, 0x7fffff) AM_DEVREADWRITE("tile", segas24_tile, char_r, char_w) + AM_RANGE(0x780000, 0x7fffff) AM_DEVREADWRITE("tile", segas24_tile_device, char_r, char_w) AM_RANGE(0x900000, 0x903fff) AM_RAM_WRITE(p_w) AM_SHARE("palette") AM_RANGE(0x910000, 0x91bfff) AM_RAM AM_SHARE("color_xlat") @@ -1598,7 +1598,7 @@ ROM_START( netmerc ) ROM_LOAD( "u2", 0x4000, 0x4000, CRC(c589f428) SHA1(98dc0114a5f89636b4e237ed954e19f1cfd186ab) ) ROM_END -static MACHINE_CONFIG_START( model1, model1_state ) +static MACHINE_CONFIG_START( model1 ) MCFG_CPU_ADD("maincpu", V60, 16000000) MCFG_CPU_PROGRAM_MAP(model1_mem) MCFG_CPU_IO_MAP(model1_io) @@ -1649,7 +1649,7 @@ static MACHINE_CONFIG_DERIVED(swa, model1) MCFG_DEVCB_CHAIN_OUTPUT(DEVWRITELINE(DSBZ80_TAG, dsbz80_device, write_txd)) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( model1_vr, model1_state ) +static MACHINE_CONFIG_START( model1_vr ) MCFG_CPU_ADD("maincpu", V60, 16000000) MCFG_CPU_PROGRAM_MAP(model1_vr_mem) MCFG_CPU_IO_MAP(model1_vr_io) @@ -1758,12 +1758,12 @@ WRITE16_MEMBER(model1_state::r360_w) } } -GAME( 1993, vf, 0, model1, vf, driver_device, 0, ROT0, "Sega", "Virtua Fighter", MACHINE_IMPERFECT_GRAPHICS ) -GAMEL(1992, vr, 0, model1_vr, vr, driver_device, 0, ROT0, "Sega", "Virtua Racing", MACHINE_IMPERFECT_GRAPHICS, layout_vr ) -GAME( 1993, vformula, vr, model1_vr, vr, driver_device, 0, ROT0, "Sega", "Virtua Formula", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1993, swa, 0, swa, swa, driver_device, 0, ROT0, "Sega", "Star Wars Arcade", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) -GAME( 1994, wingwar, 0, model1, wingwar, driver_device, 0, ROT0, "Sega", "Wing War (World)", MACHINE_NOT_WORKING ) -GAME( 1994, wingwaru, wingwar, model1, wingwar, driver_device, 0, ROT0, "Sega", "Wing War (US)", MACHINE_NOT_WORKING ) -GAME( 1994, wingwarj, wingwar, model1, wingwar, driver_device, 0, ROT0, "Sega", "Wing War (Japan)", MACHINE_NOT_WORKING ) +GAME( 1993, vf, 0, model1, vf, model1_state, 0, ROT0, "Sega", "Virtua Fighter", MACHINE_IMPERFECT_GRAPHICS ) +GAMEL(1992, vr, 0, model1_vr, vr, model1_state, 0, ROT0, "Sega", "Virtua Racing", MACHINE_IMPERFECT_GRAPHICS, layout_vr ) +GAME( 1993, vformula, vr, model1_vr, vr, model1_state, 0, ROT0, "Sega", "Virtua Formula", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1993, swa, 0, swa, swa, model1_state, 0, ROT0, "Sega", "Star Wars Arcade", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) +GAME( 1994, wingwar, 0, model1, wingwar, model1_state, 0, ROT0, "Sega", "Wing War (World)", MACHINE_NOT_WORKING ) +GAME( 1994, wingwaru, wingwar, model1, wingwar, model1_state, 0, ROT0, "Sega", "Wing War (US)", MACHINE_NOT_WORKING ) +GAME( 1994, wingwarj, wingwar, model1, wingwar, model1_state, 0, ROT0, "Sega", "Wing War (Japan)", MACHINE_NOT_WORKING ) GAME( 1994, wingwar360, wingwar, model1, wingwar, model1_state, wingwar360, ROT0, "Sega", "Wing War R360 (US)", MACHINE_NOT_WORKING ) -GAME( 1993, netmerc, 0, model1, vf, driver_device, 0, ROT0, "Sega", "NetMerc?", MACHINE_NOT_WORKING ) +GAME( 1993, netmerc, 0, model1, vf, model1_state, 0, ROT0, "Sega", "NetMerc?", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/model2.cpp b/src/mame/drivers/model2.cpp index 3c0eddcf62f..8111224e35a 100644 --- a/src/mame/drivers/model2.cpp +++ b/src/mame/drivers/model2.cpp @@ -1485,12 +1485,12 @@ static ADDRESS_MAP_START( model2_base_mem, AS_PROGRAM, 32, model2_state ) AM_RANGE(0x00f00000, 0x00f0000f) AM_READWRITE(timers_r, timers_w) - AM_RANGE(0x01000000, 0x0100ffff) AM_DEVREADWRITE("tile", segas24_tile, tile32_r, tile32_w) AM_MIRROR(0x110000) + AM_RANGE(0x01000000, 0x0100ffff) AM_DEVREADWRITE("tile", segas24_tile_device, tile32_r, tile32_w) AM_MIRROR(0x110000) AM_RANGE(0x01020000, 0x01020003) AM_WRITENOP AM_MIRROR(0x100000) // Unknown, always 0 AM_RANGE(0x01040000, 0x01040003) AM_WRITENOP AM_MIRROR(0x100000) // Horizontal synchronization register AM_RANGE(0x01060000, 0x01060003) AM_WRITENOP AM_MIRROR(0x100000) // Vertical synchronization register AM_RANGE(0x01070000, 0x01070003) AM_WRITENOP AM_MIRROR(0x100000) // Video synchronization switch - AM_RANGE(0x01080000, 0x010fffff) AM_DEVREADWRITE("tile", segas24_tile, char32_r, char32_w) AM_MIRROR(0x100000) + AM_RANGE(0x01080000, 0x010fffff) AM_DEVREADWRITE("tile", segas24_tile_device, char32_r, char32_w) AM_MIRROR(0x100000) AM_RANGE(0x01800000, 0x01803fff) AM_READWRITE16(model2_palette_r,model2_palette_w,0xffffffff) AM_RANGE(0x01810000, 0x0181bfff) AM_RAM AM_SHARE("colorxlat") @@ -2371,7 +2371,7 @@ ADDRESS_MAP_END #define VIDEO_CLOCK XTAL_32MHz /* original Model 2 */ -static MACHINE_CONFIG_START( model2o, model2_state ) +static MACHINE_CONFIG_START( model2o ) MCFG_CPU_ADD("maincpu", I960, 25000000) MCFG_CPU_PROGRAM_MAP(model2o_mem) MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", model2_state, model2_interrupt, "screen", 0, 1) @@ -2474,7 +2474,7 @@ static MACHINE_CONFIG_DERIVED( daytona, model2o ) MACHINE_CONFIG_END /* 2A-CRX */ -static MACHINE_CONFIG_START( model2a, model2_state ) +static MACHINE_CONFIG_START( model2a ) MCFG_CPU_ADD("maincpu", I960, 25000000) MCFG_CPU_PROGRAM_MAP(model2a_crx_mem) MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", model2_state, model2_interrupt, "screen", 0, 1) @@ -2561,7 +2561,7 @@ static MACHINE_CONFIG_DERIVED( srallyc, model2a ) MACHINE_CONFIG_END /* 2B-CRX */ -static MACHINE_CONFIG_START( model2b, model2_state ) +static MACHINE_CONFIG_START( model2b ) MCFG_CPU_ADD("maincpu", I960, 25000000) MCFG_CPU_PROGRAM_MAP(model2b_crx_mem) MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", model2_state, model2_interrupt, "screen", 0, 1) @@ -2658,7 +2658,7 @@ static ADDRESS_MAP_START( copro_tgpx4_map, AS_PROGRAM, 64, model2_state ) ADDRESS_MAP_END /* 2C-CRX */ -static MACHINE_CONFIG_START( model2c, model2_state ) +static MACHINE_CONFIG_START( model2c ) MCFG_CPU_ADD("maincpu", I960, 25000000) MCFG_CPU_PROGRAM_MAP(model2c_crx_mem) MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", model2_state, model2c_interrupt, "screen", 0, 1) @@ -6167,71 +6167,71 @@ GAME( 1993, daytonas, daytona, daytona, daytona, model2_state, srallyc, ROT0, GAME( 1993, daytonat, daytona, daytona, daytona, model2_state, srallyc, ROT0, "Sega", "Daytona USA (Japan, Turbo hack, set 1)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) GAME( 1993, daytonata, daytona, daytona, daytona, model2_state, srallyc, ROT0, "Sega", "Daytona USA (Japan, Turbo hack, set 2)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) GAME( 1993, daytonam, daytona, daytona, daytona, model2_state, daytonam, ROT0, "Sega", "Daytona USA (Japan, To The MAXX)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1994, desert, 0, model2o, desert, driver_device, 0, ROT0, "Sega / Martin Marietta", "Desert Tank", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1994, vcop, 0, model2o, vcop, driver_device, 0, ROT0, "Sega", "Virtua Cop (Revision B)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1994, vcopa, vcop, model2o, vcop, driver_device, 0, ROT0, "Sega", "Virtua Cop (Revision A)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1994, desert, 0, model2o, desert, model2_state, 0, ROT0, "Sega / Martin Marietta", "Desert Tank", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1994, vcop, 0, model2o, vcop, model2_state, 0, ROT0, "Sega", "Virtua Cop (Revision B)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1994, vcopa, vcop, model2o, vcop, model2_state, 0, ROT0, "Sega", "Virtua Cop (Revision A)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) // Model 2A-CRX (TGPs, SCSP sound board) -GAME( 1995, manxtt, 0, manxttdx, manxtt, driver_device, 0, ROT0, "Sega", "Manx TT Superbike - DX (Revision D)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1995, manxttc, 0, model2a, manxtt, driver_device, 0, ROT0, "Sega", "Manx TT Superbike - Twin (Revision C)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1995, srallyc, 0, srallyc, srallyc, model2_state, srallyc, ROT0, "Sega", "Sega Rally Championship - TWIN/DX (Revision C)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1995, srallycb, srallyc, srallyc, srallyc, model2_state, srallyc, ROT0, "Sega", "Sega Rally Championship - TWIN/DX (Revision B)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1995, srallycdx, srallyc, srallyc, srallyc, model2_state, srallyc, ROT0, "Sega", "Sega Rally Championship - DX (Revision A)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1995, srallycdxa,srallyc, srallyc, srallyc, model2_state, srallyc, ROT0, "Sega", "Sega Rally Championship - DX", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1995, vf2, 0, model2a, model2, driver_device, 0, ROT0, "Sega", "Virtua Fighter 2 (Version 2.1)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1995, vf2b, vf2, model2a, model2, driver_device, 0, ROT0, "Sega", "Virtua Fighter 2 (Revision B)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1995, vf2a, vf2, model2a, model2, driver_device, 0, ROT0, "Sega", "Virtua Fighter 2 (Revision A)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1995, vf2o, vf2, model2a, model2, driver_device, 0, ROT0, "Sega", "Virtua Fighter 2", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1995, vcop2, 0, model2a, vcop2, driver_device, 0, ROT0, "Sega", "Virtua Cop 2", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1995, skytargt, 0, model2a, skytargt, driver_device, 0, ROT0, "Sega", "Sky Target", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1996, doaa, doa, model2a_0229, model2, model2_state, doa, ROT0, "Sega", "Dead or Alive (Model 2A, Revision A)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1997, zeroguna, zerogun, model2a_5881, model2, model2_state, zerogun, ROT0, "Psikyo", "Zero Gunner (Export, Model 2A)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1997, zerogunaj, zerogun, model2a_5881, model2, model2_state, zerogun, ROT0, "Psikyo", "Zero Gunner (Japan, Model 2A)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1997, motoraid, 0, model2a, manxtt, driver_device, 0, ROT0, "Sega", "Motor Raid - Twin", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1998, dynamcop, 0, model2a_5881, model2, model2_state, genprot, ROT0, "Sega", "Dynamite Cop (Export, Model 2A)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1998, dyndeka2, dynamcop, model2a_5881, model2, model2_state, genprot, ROT0, "Sega", "Dynamite Deka 2 (Japan, Model 2A)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1998, pltkidsa, pltkids, model2a_5881, model2, model2_state, pltkids, ROT0, "Psikyo", "Pilot Kids (Model 2A)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1995, manxtt, 0, manxttdx, manxtt, model2_state, 0, ROT0, "Sega", "Manx TT Superbike - DX (Revision D)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1995, manxttc, 0, model2a, manxtt, model2_state, 0, ROT0, "Sega", "Manx TT Superbike - Twin (Revision C)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1995, srallyc, 0, srallyc, srallyc, model2_state, srallyc, ROT0, "Sega", "Sega Rally Championship - TWIN/DX (Revision C)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1995, srallycb, srallyc, srallyc, srallyc, model2_state, srallyc, ROT0, "Sega", "Sega Rally Championship - TWIN/DX (Revision B)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1995, srallycdx, srallyc, srallyc, srallyc, model2_state, srallyc, ROT0, "Sega", "Sega Rally Championship - DX (Revision A)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1995, srallycdxa,srallyc, srallyc, srallyc, model2_state, srallyc, ROT0, "Sega", "Sega Rally Championship - DX", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1995, vf2, 0, model2a, model2, model2_state, 0, ROT0, "Sega", "Virtua Fighter 2 (Version 2.1)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1995, vf2b, vf2, model2a, model2, model2_state, 0, ROT0, "Sega", "Virtua Fighter 2 (Revision B)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1995, vf2a, vf2, model2a, model2, model2_state, 0, ROT0, "Sega", "Virtua Fighter 2 (Revision A)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1995, vf2o, vf2, model2a, model2, model2_state, 0, ROT0, "Sega", "Virtua Fighter 2", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1995, vcop2, 0, model2a, vcop2, model2_state, 0, ROT0, "Sega", "Virtua Cop 2", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1995, skytargt, 0, model2a, skytargt, model2_state, 0, ROT0, "Sega", "Sky Target", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1996, doaa, doa, model2a_0229, model2, model2_state, doa, ROT0, "Sega", "Dead or Alive (Model 2A, Revision A)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1997, zeroguna, zerogun, model2a_5881, model2, model2_state, zerogun, ROT0, "Psikyo", "Zero Gunner (Export, Model 2A)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1997, zerogunaj, zerogun, model2a_5881, model2, model2_state, zerogun, ROT0, "Psikyo", "Zero Gunner (Japan, Model 2A)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1997, motoraid, 0, model2a, manxtt, model2_state, 0, ROT0, "Sega", "Motor Raid - Twin", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1998, dynamcop, 0, model2a_5881, model2, model2_state, genprot, ROT0, "Sega", "Dynamite Cop (Export, Model 2A)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1998, dyndeka2, dynamcop, model2a_5881, model2, model2_state, genprot, ROT0, "Sega", "Dynamite Deka 2 (Japan, Model 2A)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1998, pltkidsa, pltkids, model2a_5881, model2, model2_state, pltkids, ROT0, "Psikyo", "Pilot Kids (Model 2A)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) // Model 2B-CRX (SHARC, SCSP sound board) -GAME( 1994, vstriker, 0, model2b, model2, driver_device, 0, ROT0, "Sega", "Virtua Striker (Revision A)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1994, vstrikero,vstriker, model2b, model2, driver_device, 0, ROT0, "Sega", "Virtua Striker", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1995, fvipers, 0, model2b, model2, driver_device, 0, ROT0, "Sega", "Fighting Vipers (Revision D)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1995, gunblade, 0, model2b, model2, driver_device, 0, ROT0, "Sega", "Gunblade NY (Revision A)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1995, indy500, 0, model2b, srallyc, driver_device, 0, ROT0, "Sega", "INDY 500 Twin (Revision A, Newer)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1995, indy500d, indy500, model2b, srallyc, driver_device, 0, ROT0, "Sega", "INDY 500 Deluxe (Revision A)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1995, indy500to, indy500, model2b, srallyc, driver_device, 0, ROT0, "Sega", "INDY 500 Twin (Revision A)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1996, schamp, 0, model2b, model2, driver_device, 0, ROT0, "Sega", "Sonic Championship (USA)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1996, sfight, schamp, model2b, model2, driver_device, 0, ROT0, "Sega", "Sonic the Fighters (Japan)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1996, lastbrnx, 0, model2b, model2, driver_device, 0, ROT0, "Sega", "Last Bronx (Export, Revision A)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1996, lastbrnxu,lastbrnx, model2b, model2, driver_device, 0, ROT0, "Sega", "Last Bronx (USA, Revision A)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1996, lastbrnxj,lastbrnx, model2b, model2, driver_device, 0, ROT0, "Sega", "Last Bronx (Japan, Revision A)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1996, doa, 0, model2b_0229, model2, model2_state, doa, ROT0, "Sega", "Dead or Alive (Model 2B, Revision B)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1996, sgt24h, 0, model2b, srallyc, model2_state, sgt24h, ROT0, "Jaleco", "Super GT 24h", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1996, von, 0, model2b, model2, driver_device, 0, ROT0, "Sega", "Cyber Troopers Virtual-On (USA, Revision B)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1996, vonj, von, model2b, model2, driver_device, 0, ROT0, "Sega", "Cyber Troopers Virtual-On (Japan, Revision B)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1996, dynabb, 0, model2b, model2, driver_device, 0, ROT0, "Sega", "Dynamite Baseball", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1997, dynabb97, 0, model2b, model2, driver_device, 0, ROT0, "Sega", "Dynamite Baseball 97 (Revision A)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1997, overrevb, overrev, model2b, srallyc, driver_device, 0, ROT0, "Jaleco", "Over Rev (Model 2B, Revision B)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1997, zerogun, 0, model2b_5881, model2, model2_state, zerogun, ROT0, "Psikyo", "Zero Gunner (Export, Model 2B)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1997, zerogunj, zerogun, model2b_5881, model2, model2_state, zerogun, ROT0, "Psikyo", "Zero Gunner (Japan, Model 2B)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1998, dynamcopb,dynamcop, model2b_5881, model2, model2_state, genprot, ROT0, "Sega", "Dynamite Cop (Export, Model 2B)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1998, dyndeka2b,dynamcop, model2b_5881, model2, model2_state, genprot, ROT0, "Sega", "Dynamite Deka 2 (Japan, Model 2B)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1998, pltkids, 0, model2b_5881, model2, model2_state, pltkids, ROT0, "Psikyo", "Pilot Kids (Model 2B, Revision A)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1995, rchase2, 0, rchase2, rchase2, model2_state, rchase2, ROT0, "Sega", "Rail Chase 2 (Revision A)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1994, vstriker, 0, model2b, model2, model2_state, 0, ROT0, "Sega", "Virtua Striker (Revision A)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1994, vstrikero,vstriker, model2b, model2, model2_state, 0, ROT0, "Sega", "Virtua Striker", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1995, fvipers, 0, model2b, model2, model2_state, 0, ROT0, "Sega", "Fighting Vipers (Revision D)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1995, gunblade, 0, model2b, model2, model2_state, 0, ROT0, "Sega", "Gunblade NY (Revision A)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1995, indy500, 0, model2b, srallyc, model2_state, 0, ROT0, "Sega", "INDY 500 Twin (Revision A, Newer)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1995, indy500d, indy500, model2b, srallyc, model2_state, 0, ROT0, "Sega", "INDY 500 Deluxe (Revision A)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1995, indy500to, indy500, model2b, srallyc, model2_state, 0, ROT0, "Sega", "INDY 500 Twin (Revision A)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1996, schamp, 0, model2b, model2, model2_state, 0, ROT0, "Sega", "Sonic Championship (USA)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1996, sfight, schamp, model2b, model2, model2_state, 0, ROT0, "Sega", "Sonic the Fighters (Japan)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1996, lastbrnx, 0, model2b, model2, model2_state, 0, ROT0, "Sega", "Last Bronx (Export, Revision A)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1996, lastbrnxu,lastbrnx, model2b, model2, model2_state, 0, ROT0, "Sega", "Last Bronx (USA, Revision A)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1996, lastbrnxj,lastbrnx, model2b, model2, model2_state, 0, ROT0, "Sega", "Last Bronx (Japan, Revision A)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1996, doa, 0, model2b_0229, model2, model2_state, doa, ROT0, "Sega", "Dead or Alive (Model 2B, Revision B)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1996, sgt24h, 0, model2b, srallyc, model2_state, sgt24h, ROT0, "Jaleco", "Super GT 24h", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1996, von, 0, model2b, model2, model2_state, 0, ROT0, "Sega", "Cyber Troopers Virtual-On (USA, Revision B)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1996, vonj, von, model2b, model2, model2_state, 0, ROT0, "Sega", "Cyber Troopers Virtual-On (Japan, Revision B)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1996, dynabb, 0, model2b, model2, model2_state, 0, ROT0, "Sega", "Dynamite Baseball", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1997, dynabb97, 0, model2b, model2, model2_state, 0, ROT0, "Sega", "Dynamite Baseball 97 (Revision A)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1997, overrevb, overrev, model2b, srallyc, model2_state, 0, ROT0, "Jaleco", "Over Rev (Model 2B, Revision B)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1997, zerogun, 0, model2b_5881, model2, model2_state, zerogun, ROT0, "Psikyo", "Zero Gunner (Export, Model 2B)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1997, zerogunj, zerogun, model2b_5881, model2, model2_state, zerogun, ROT0, "Psikyo", "Zero Gunner (Japan, Model 2B)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1998, dynamcopb,dynamcop, model2b_5881, model2, model2_state, genprot, ROT0, "Sega", "Dynamite Cop (Export, Model 2B)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1998, dyndeka2b,dynamcop, model2b_5881, model2, model2_state, genprot, ROT0, "Sega", "Dynamite Deka 2 (Japan, Model 2B)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1998, pltkids, 0, model2b_5881, model2, model2_state, pltkids, ROT0, "Psikyo", "Pilot Kids (Model 2B, Revision A)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1995, rchase2, 0, rchase2, rchase2, model2_state, rchase2, ROT0, "Sega", "Rail Chase 2 (Revision A)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) // Model 2C-CRX (TGPx4, SCSP sound board) -GAME( 1996, skisuprg, 0, model2c, model2, driver_device, 0, ROT0, "Sega", "Sega Ski Super G", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS|MACHINE_UNEMULATED_PROTECTION ) -GAME( 1996, stcc, 0, stcc, model2, driver_device, 0, ROT0, "Sega", "Sega Touring Car Championship", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1996, stccb, stcc, stcc, model2, driver_device, 0, ROT0, "Sega", "Sega Touring Car Championship (Revision B)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1996, stcca, stcc, stcc, model2, driver_device, 0, ROT0, "Sega", "Sega Touring Car Championship (Revision A)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1996, waverunr, 0, model2c, model2, driver_device, 0, ROT0, "Sega", "Wave Runner (Japan, Revision A)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1997, hotd, 0, model2c, model2, driver_device, 0, ROT0, "Sega", "House of the Dead", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1997, overrev, 0, model2c, srallyc, driver_device, 0, ROT0, "Jaleco", "Over Rev (Model 2C, Revision A)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1997, rascot2, 0, model2c, model2, driver_device, 0, ROT0, "Sega", "Royal Ascot II", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1997, segawski, 0, model2c, model2, driver_device, 0, ROT0, "Sega", "Sega Water Ski (Japan, Revision A)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1997, topskatr, 0, model2c, model2, driver_device, 0, ROT0, "Sega", "Top Skater (Export, Revision A)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1997, topskatru,topskatr, model2c, model2, driver_device, 0, ROT0, "Sega", "Top Skater (USA, Revision A)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1997, topskatruo,topskatr,model2c, model2, driver_device, 0, ROT0, "Sega", "Top Skater (USA)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1997, topskatrj,topskatr, model2c, model2, driver_device, 0, ROT0, "Sega", "Top Skater (Japan)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1998, bel, 0, model2c, bel, driver_device, 0, ROT0, "Sega / EPL Productions", "Behind Enemy Lines", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1998, dynamcopc,dynamcop, model2c_5881, model2, model2_state, genprot, ROT0, "Sega", "Dynamite Cop (USA, Model 2C)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1996, skisuprg, 0, model2c, model2, model2_state, 0, ROT0, "Sega", "Sega Ski Super G", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS|MACHINE_UNEMULATED_PROTECTION ) +GAME( 1996, stcc, 0, stcc, model2, model2_state, 0, ROT0, "Sega", "Sega Touring Car Championship", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1996, stccb, stcc, stcc, model2, model2_state, 0, ROT0, "Sega", "Sega Touring Car Championship (Revision B)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1996, stcca, stcc, stcc, model2, model2_state, 0, ROT0, "Sega", "Sega Touring Car Championship (Revision A)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1996, waverunr, 0, model2c, model2, model2_state, 0, ROT0, "Sega", "Wave Runner (Japan, Revision A)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1997, hotd, 0, model2c, model2, model2_state, 0, ROT0, "Sega", "House of the Dead", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1997, overrev, 0, model2c, srallyc, model2_state, 0, ROT0, "Jaleco", "Over Rev (Model 2C, Revision A)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1997, rascot2, 0, model2c, model2, model2_state, 0, ROT0, "Sega", "Royal Ascot II", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1997, segawski, 0, model2c, model2, model2_state, 0, ROT0, "Sega", "Sega Water Ski (Japan, Revision A)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1997, topskatr, 0, model2c, model2, model2_state, 0, ROT0, "Sega", "Top Skater (Export, Revision A)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1997, topskatru,topskatr, model2c, model2, model2_state, 0, ROT0, "Sega", "Top Skater (USA, Revision A)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1997, topskatruo,topskatr,model2c, model2, model2_state, 0, ROT0, "Sega", "Top Skater (USA)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1997, topskatrj,topskatr, model2c, model2, model2_state, 0, ROT0, "Sega", "Top Skater (Japan)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1998, bel, 0, model2c, bel, model2_state, 0, ROT0, "Sega / EPL Productions", "Behind Enemy Lines", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1998, dynamcopc,dynamcop, model2c_5881, model2, model2_state, genprot, ROT0, "Sega", "Dynamite Cop (USA, Model 2C)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) diff --git a/src/mame/drivers/model3.cpp b/src/mame/drivers/model3.cpp index 3113d0b8fbd..a98a8ebae7c 100644 --- a/src/mame/drivers/model3.cpp +++ b/src/mame/drivers/model3.cpp @@ -1073,28 +1073,28 @@ READ64_MEMBER(model3_state::scsi_r) int reg = offset*8; uint64_t r = 0; if (ACCESSING_BITS_56_63) { - r |= (uint64_t)m_lsi53c810->lsi53c810_reg_r(reg+0) << 56; + r |= (uint64_t)m_lsi53c810->reg_r(reg+0) << 56; } if (ACCESSING_BITS_48_55) { - r |= (uint64_t)m_lsi53c810->lsi53c810_reg_r(reg+1) << 48; + r |= (uint64_t)m_lsi53c810->reg_r(reg+1) << 48; } if (ACCESSING_BITS_40_47) { - r |= (uint64_t)m_lsi53c810->lsi53c810_reg_r(reg+2) << 40; + r |= (uint64_t)m_lsi53c810->reg_r(reg+2) << 40; } if (ACCESSING_BITS_32_39) { - r |= (uint64_t)m_lsi53c810->lsi53c810_reg_r(reg+3) << 32; + r |= (uint64_t)m_lsi53c810->reg_r(reg+3) << 32; } if (ACCESSING_BITS_24_31) { - r |= (uint64_t)m_lsi53c810->lsi53c810_reg_r(reg+4) << 24; + r |= (uint64_t)m_lsi53c810->reg_r(reg+4) << 24; } if (ACCESSING_BITS_16_23) { - r |= (uint64_t)m_lsi53c810->lsi53c810_reg_r(reg+5) << 16; + r |= (uint64_t)m_lsi53c810->reg_r(reg+5) << 16; } if (ACCESSING_BITS_8_15) { - r |= (uint64_t)m_lsi53c810->lsi53c810_reg_r(reg+6) << 8; + r |= (uint64_t)m_lsi53c810->reg_r(reg+6) << 8; } if (ACCESSING_BITS_0_7) { - r |= (uint64_t)m_lsi53c810->lsi53c810_reg_r(reg+7) << 0; + r |= (uint64_t)m_lsi53c810->reg_r(reg+7) << 0; } return r; @@ -1104,28 +1104,28 @@ WRITE64_MEMBER(model3_state::scsi_w) { int reg = offset*8; if (ACCESSING_BITS_56_63) { - m_lsi53c810->lsi53c810_reg_w(reg+0, data >> 56); + m_lsi53c810->reg_w(reg+0, data >> 56); } if (ACCESSING_BITS_48_55) { - m_lsi53c810->lsi53c810_reg_w(reg+1, data >> 48); + m_lsi53c810->reg_w(reg+1, data >> 48); } if (ACCESSING_BITS_40_47) { - m_lsi53c810->lsi53c810_reg_w(reg+2, data >> 40); + m_lsi53c810->reg_w(reg+2, data >> 40); } if (ACCESSING_BITS_32_39) { - m_lsi53c810->lsi53c810_reg_w(reg+3, data >> 32); + m_lsi53c810->reg_w(reg+3, data >> 32); } if (ACCESSING_BITS_24_31) { - m_lsi53c810->lsi53c810_reg_w(reg+4, data >> 24); + m_lsi53c810->reg_w(reg+4, data >> 24); } if (ACCESSING_BITS_16_23) { - m_lsi53c810->lsi53c810_reg_w(reg+5, data >> 16); + m_lsi53c810->reg_w(reg+5, data >> 16); } if (ACCESSING_BITS_8_15) { - m_lsi53c810->lsi53c810_reg_w(reg+6, data >> 8); + m_lsi53c810->reg_w(reg+6, data >> 8); } if (ACCESSING_BITS_0_7) { - m_lsi53c810->lsi53c810_reg_w(reg+7, data >> 0); + m_lsi53c810->reg_w(reg+7, data >> 0); } } @@ -5701,7 +5701,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(model3_state::model3_interrupt) } } -static MACHINE_CONFIG_START( model3_10, model3_state ) +static MACHINE_CONFIG_START( model3_10 ) MCFG_CPU_ADD("maincpu", PPC603E, 66000000) MCFG_PPC_BUS_FREQUENCY(66000000) /* Multiplier 1, Bus = 66MHz, Core = 66MHz */ MCFG_CPU_PROGRAM_MAP(model3_10_mem) @@ -5749,7 +5749,7 @@ static MACHINE_CONFIG_START( model3_10, model3_state ) MCFG_LEGACY_SCSI_PORT("scsi") MACHINE_CONFIG_END -static MACHINE_CONFIG_START( model3_15, model3_state ) +static MACHINE_CONFIG_START( model3_15 ) MCFG_CPU_ADD("maincpu", PPC603E, 100000000) MCFG_PPC_BUS_FREQUENCY(66000000) /* Multiplier 1.5, Bus = 66MHz, Core = 100MHz */ MCFG_CPU_PROGRAM_MAP(model3_mem) @@ -5810,7 +5810,7 @@ static MACHINE_CONFIG_DERIVED(scud, model3_15) MCFG_DEVCB_CHAIN_OUTPUT(DEVWRITELINE("uart", i8251_device, write_rxc)) MACHINE_CONFIG_END -static MACHINE_CONFIG_START(model3_20, model3_state) +static MACHINE_CONFIG_START(model3_20) MCFG_CPU_ADD("maincpu", PPC603R, 166000000) MCFG_PPC_BUS_FREQUENCY(66000000) /* Multiplier 2.5, Bus = 66MHz, Core = 166MHz */ MCFG_CPU_PROGRAM_MAP(model3_mem) @@ -5855,7 +5855,7 @@ static MACHINE_CONFIG_DERIVED(model3_20_5881, model3_20) MCFG_SET_READ_CALLBACK(model3_state, crypt_read_callback) MACHINE_CONFIG_END -static MACHINE_CONFIG_START(model3_21, model3_state) +static MACHINE_CONFIG_START(model3_21) MCFG_CPU_ADD("maincpu", PPC603R, 166000000) MCFG_PPC_BUS_FREQUENCY(66000000) /* Multiplier 2.5, Bus = 66MHz, Core = 166MHz */ MCFG_CPU_PROGRAM_MAP(model3_mem) diff --git a/src/mame/drivers/modellot.cpp b/src/mame/drivers/modellot.cpp index dac0082e9a7..c7f08e01522 100644 --- a/src/mame/drivers/modellot.cpp +++ b/src/mame/drivers/modellot.cpp @@ -35,7 +35,7 @@ public: DECLARE_READ8_MEMBER(port77_r); DECLARE_READ8_MEMBER(portff_r); - DECLARE_WRITE8_MEMBER(kbd_put); + void kbd_put(u8 data); uint32_t screen_update_modellot(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); private: @@ -77,7 +77,7 @@ READ8_MEMBER( modellot_state::portff_r) return data; } -WRITE8_MEMBER( modellot_state::kbd_put ) +void modellot_state::kbd_put(u8 data) { m_term_data = data; } @@ -149,7 +149,7 @@ uint32_t modellot_state::screen_update_modellot(screen_device &screen, bitmap_in return 0; } -static MACHINE_CONFIG_START( modellot, modellot_state ) +static MACHINE_CONFIG_START( modellot ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80, XTAL_4MHz) MCFG_CPU_PROGRAM_MAP(modellot_mem) @@ -169,7 +169,7 @@ static MACHINE_CONFIG_START( modellot, modellot_state ) /* Devices */ MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0) - MCFG_GENERIC_KEYBOARD_CB(WRITE8(modellot_state, kbd_put)) + MCFG_GENERIC_KEYBOARD_CB(PUT(modellot_state, kbd_put)) MACHINE_CONFIG_END /* ROM definition */ @@ -187,4 +187,4 @@ ROM_START( modellot ) ROM_END /* Driver */ -COMP( 1979, modellot, 0, 0, modellot, modellot, driver_device, 0, "General Processor", "Modello T", MACHINE_IS_SKELETON) +COMP( 1979, modellot, 0, 0, modellot, modellot, modellot_state, 0, "General Processor", "Modello T", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/mogura.cpp b/src/mame/drivers/mogura.cpp index e52e3af829c..6f11bb8e5b9 100644 --- a/src/mame/drivers/mogura.cpp +++ b/src/mame/drivers/mogura.cpp @@ -202,7 +202,7 @@ void mogura_state::machine_start() { } -static MACHINE_CONFIG_START( mogura, mogura_state ) +static MACHINE_CONFIG_START( mogura ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80,3000000) /* 3 MHz */ @@ -241,4 +241,4 @@ ROM_START( mogura ) ROM_LOAD( "gx141.7j", 0x00, 0x20, CRC(b21c5d5f) SHA1(6913c840dd69a7d4687f4c4cbe3ff12300f62bc2) ) ROM_END -GAME( 1991, mogura, 0, mogura, mogura, driver_device, 0, ROT0, "Konami", "Mogura Desse (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, mogura, 0, mogura, mogura, mogura_state, 0, ROT0, "Konami", "Mogura Desse (Japan)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/mole.cpp b/src/mame/drivers/mole.cpp index 8e3e218c493..a2cbc39e50d 100644 --- a/src/mame/drivers/mole.cpp +++ b/src/mame/drivers/mole.cpp @@ -317,7 +317,7 @@ void mole_state::machine_reset() m_tile_bank = 0; } -static MACHINE_CONFIG_START( mole, mole_state ) +static MACHINE_CONFIG_START( mole ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, 4000000) // ??? @@ -372,4 +372,4 @@ ROM_END * *************************************/ -GAME( 1982, mole, 0, mole, mole, driver_device, 0, ROT0, "Yachiyo Electronics, Ltd.", "Mole Attack", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, mole, 0, mole, mole, mole_state, 0, ROT0, "Yachiyo Electronics, Ltd.", "Mole Attack", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/molecular.cpp b/src/mame/drivers/molecular.cpp index 1439eabf44b..ed9ed2f395d 100644 --- a/src/mame/drivers/molecular.cpp +++ b/src/mame/drivers/molecular.cpp @@ -284,7 +284,7 @@ PALETTE_INIT_MEMBER(molecula_state, molecula) { } -static MACHINE_CONFIG_START( molecula, molecula_state ) +static MACHINE_CONFIG_START( molecula ) /* basic machine hardware */ MCFG_CPU_ADD("filecpu",Z80,Z80_CLOCK/2) @@ -355,4 +355,4 @@ ROM_START( molecula ) ROM_LOAD( "wait_16r4.jed", 0x000000, 0x00caef, CRC(3aacfeb4) SHA1(1af1a8046e5a8a0337c85b55adceaef6e45702b7) ) ROM_END -COMP( 1982, molecula, 0, 0, molecula, molecula, driver_device, 0, "MOLECULAR", "MOLECULAR Computer", MACHINE_IS_SKELETON ) +COMP( 1982, molecula, 0, 0, molecula, molecula, molecula_state, 0, "MOLECULAR", "MOLECULAR Computer", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/momoko.cpp b/src/mame/drivers/momoko.cpp index 1fedaa73dda..462f35174a0 100644 --- a/src/mame/drivers/momoko.cpp +++ b/src/mame/drivers/momoko.cpp @@ -253,7 +253,7 @@ void momoko_state::machine_reset() m_flipscreen = 0; } -static MACHINE_CONFIG_START( momoko, momoko_state ) +static MACHINE_CONFIG_START( momoko ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_10MHz/2) /* 5.0MHz */ @@ -423,6 +423,6 @@ ROM_START( momokob ) // bootleg board, almost exact copy of an original one ROM_LOAD( "momoko-b.bin", 0x0100, 0x0020, CRC(427b0e5c) SHA1(aa2797b899571527cc96013fd3420b841954ee67) ) ROM_END -GAME( 1986, momoko, 0, momoko, momoko, driver_device, 0, ROT0, "Jaleco", "Momoko 120% (Japanese text)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, momokoe, momoko, momoko, momoko, driver_device, 0, ROT0, "Jaleco", "Momoko 120% (English text)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, momokob, momoko, momoko, momoko, driver_device, 0, ROT0, "bootleg", "Momoko 120% (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, momoko, 0, momoko, momoko, momoko_state, 0, ROT0, "Jaleco", "Momoko 120% (Japanese text)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, momokoe, momoko, momoko, momoko, momoko_state, 0, ROT0, "Jaleco", "Momoko 120% (English text)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, momokob, momoko, momoko, momoko, momoko_state, 0, ROT0, "bootleg", "Momoko 120% (bootleg)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/monacogp.cpp b/src/mame/drivers/monacogp.cpp index 768e9978939..16946be8c6d 100644 --- a/src/mame/drivers/monacogp.cpp +++ b/src/mame/drivers/monacogp.cpp @@ -142,7 +142,7 @@ public: } // devices - required_device m_maincpu; + required_device m_maincpu; required_device m_video; protected: @@ -185,7 +185,7 @@ void monacogp_state::video_start() { } -static MACHINE_CONFIG_START( monacogp, monacogp_state ) +static MACHINE_CONFIG_START( monacogp ) /* basic machine hardware */ MCFG_DEVICE_ADD("maincpu", NETLIST_CPU, NETLIST_CLOCK) @@ -269,5 +269,5 @@ ROM_END -GAME( 1980, monacogp, 0, monacogp, 0, driver_device, 0, ROT0, "Sega", "Monaco GP (Set 1) [TTL]", MACHINE_IS_SKELETON ) -GAME( 1980, monacogpa, monacogp, monacogp, 0, driver_device, 0, ROT0, "Sega", "Monaco GP (Set 2) [TTL]", MACHINE_IS_SKELETON ) +GAME( 1980, monacogp, 0, monacogp, 0, monacogp_state, 0, ROT0, "Sega", "Monaco GP (Set 1) [TTL]", MACHINE_IS_SKELETON ) +GAME( 1980, monacogpa, monacogp, monacogp, 0, monacogp_state, 0, ROT0, "Sega", "Monaco GP (Set 2) [TTL]", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/monty.cpp b/src/mame/drivers/monty.cpp index f8dc3071cdc..813bb724a32 100644 --- a/src/mame/drivers/monty.cpp +++ b/src/mame/drivers/monty.cpp @@ -237,7 +237,7 @@ SED1520_UPDATE_CB(monty_screen_update) // TODO: Additional machine definition - Master Monty has a different memory layout -static MACHINE_CONFIG_START( monty, monty_state ) +static MACHINE_CONFIG_START( monty ) // Basic machine hardware MCFG_CPU_ADD("maincpu", Z80, 3580000) // Ceramic resonator labeled 3.58MT MCFG_CPU_PROGRAM_MAP(monty_mem) @@ -285,6 +285,6 @@ ROM_END // Drivers -// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS -COMP( 1980, monty, 0, 0, monty, monty, driver_device, 0, "Ritam", "Monty Plays Scrabble", MACHINE_NOT_WORKING ) -COMP( 1982, mmonty, 0, 0, mmonty, monty, driver_device, 0, "Ritam", "Master Monty", MACHINE_NOT_WORKING ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1980, monty, 0, 0, monty, monty, monty_state, 0, "Ritam", "Monty Plays Scrabble", MACHINE_NOT_WORKING ) +COMP( 1982, mmonty, 0, 0, mmonty, monty, monty_state, 0, "Ritam", "Master Monty", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/monzagp.cpp b/src/mame/drivers/monzagp.cpp index 286c10d735e..a01a10379ae 100644 --- a/src/mame/drivers/monzagp.cpp +++ b/src/mame/drivers/monzagp.cpp @@ -483,7 +483,7 @@ static GFXDECODE_START( monzagp ) GFXDECODE_ENTRY( "gfx3", 0x0000, tile_layout, 0, 8 ) GFXDECODE_END -static MACHINE_CONFIG_START( monzagp, monzagp_state ) +static MACHINE_CONFIG_START( monzagp ) MCFG_CPU_ADD("maincpu", I8035, 12000000/4) /* 400KHz ??? - Main board Crystal is 12MHz */ MCFG_CPU_PROGRAM_MAP(monzagp_map) MCFG_CPU_IO_MAP(monzagp_io) @@ -585,5 +585,5 @@ ROM_START( monzagpb ) ROM_END -GAMEL( 1981, monzagp, 0, monzagp, monzagp, driver_device, 0, ROT270, "Olympia", "Monza GP", MACHINE_NOT_WORKING|MACHINE_NO_SOUND, layout_monzagp ) -GAMEL( 1981, monzagpb, monzagp, monzagp, monzagp, driver_device, 0, ROT270, "bootleg", "Monza GP (bootleg)", MACHINE_NOT_WORKING|MACHINE_NO_SOUND, layout_monzagp ) +GAMEL( 1981, monzagp, 0, monzagp, monzagp, monzagp_state, 0, ROT270, "Olympia", "Monza GP", MACHINE_NOT_WORKING|MACHINE_NO_SOUND, layout_monzagp ) +GAMEL( 1981, monzagpb, monzagp, monzagp, monzagp, monzagp_state, 0, ROT270, "bootleg", "Monza GP (bootleg)", MACHINE_NOT_WORKING|MACHINE_NO_SOUND, layout_monzagp ) diff --git a/src/mame/drivers/moo.cpp b/src/mame/drivers/moo.cpp index 6a877cae264..d0b6f02105d 100644 --- a/src/mame/drivers/moo.cpp +++ b/src/mame/drivers/moo.cpp @@ -490,7 +490,7 @@ MACHINE_RESET_MEMBER(moo_state,moo) m_sprite_colorbase = 0; } -static MACHINE_CONFIG_START( moo, moo_state ) +static MACHINE_CONFIG_START( moo ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_32MHz/2) // 16MHz verified @@ -552,7 +552,7 @@ static MACHINE_CONFIG_START( moo, moo_state ) MCFG_SOUND_ROUTE(1, "rspeaker", 0.75) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( moobl, moo_state ) +static MACHINE_CONFIG_START( moobl ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 16100000) @@ -597,7 +597,7 @@ static MACHINE_CONFIG_START( moobl, moo_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_OKIM6295_ADD("oki", 1056000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki", 1056000, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) MACHINE_CONFIG_END @@ -999,13 +999,13 @@ ROM_START( moomesabl ) ROM_END -GAME( 1992, moomesa, 0, moo, moo, driver_device, 0, ROT0, "Konami", "Wild West C.O.W.-Boys of Moo Mesa (ver EAB)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1992, moomesauac, moomesa, moo, moo, driver_device, 0, ROT0, "Konami", "Wild West C.O.W.-Boys of Moo Mesa (ver UAC)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1992, moomesauab, moomesa, moo, moo, driver_device, 0, ROT0, "Konami", "Wild West C.O.W.-Boys of Moo Mesa (ver UAB)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1992, moomesaaab, moomesa, moo, moo, driver_device, 0, ROT0, "Konami", "Wild West C.O.W.-Boys of Moo Mesa (ver AAB)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1992, moomesabl, moomesa, moobl, moo, driver_device, 0, ROT0, "bootleg", "Wild West C.O.W.-Boys of Moo Mesa (bootleg)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // based on Version AA -GAME( 1992, bucky, 0, bucky, bucky, driver_device, 0, ROT0, "Konami", "Bucky O'Hare (ver EAB)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1992, buckyea, bucky, bucky, bucky, driver_device, 0, ROT0, "Konami", "Bucky O'Hare (ver EA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1992, buckyjaa, bucky, bucky, bucky, driver_device, 0, ROT0, "Konami", "Bucky O'Hare (ver JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1992, buckyuab, bucky, bucky, bucky, driver_device, 0, ROT0, "Konami", "Bucky O'Hare (ver UAB)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1992, buckyaab, bucky, bucky, bucky, driver_device, 0, ROT0, "Konami", "Bucky O'Hare (ver AAB)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1992, moomesa, 0, moo, moo, moo_state, 0, ROT0, "Konami", "Wild West C.O.W.-Boys of Moo Mesa (ver EAB)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1992, moomesauac, moomesa, moo, moo, moo_state, 0, ROT0, "Konami", "Wild West C.O.W.-Boys of Moo Mesa (ver UAC)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1992, moomesauab, moomesa, moo, moo, moo_state, 0, ROT0, "Konami", "Wild West C.O.W.-Boys of Moo Mesa (ver UAB)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1992, moomesaaab, moomesa, moo, moo, moo_state, 0, ROT0, "Konami", "Wild West C.O.W.-Boys of Moo Mesa (ver AAB)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1992, moomesabl, moomesa, moobl, moo, moo_state, 0, ROT0, "bootleg", "Wild West C.O.W.-Boys of Moo Mesa (bootleg)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // based on Version AA +GAME( 1992, bucky, 0, bucky, bucky, moo_state, 0, ROT0, "Konami", "Bucky O'Hare (ver EAB)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1992, buckyea, bucky, bucky, bucky, moo_state, 0, ROT0, "Konami", "Bucky O'Hare (ver EA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1992, buckyjaa, bucky, bucky, bucky, moo_state, 0, ROT0, "Konami", "Bucky O'Hare (ver JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1992, buckyuab, bucky, bucky, bucky, moo_state, 0, ROT0, "Konami", "Bucky O'Hare (ver UAB)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1992, buckyaab, bucky, bucky, bucky, moo_state, 0, ROT0, "Konami", "Bucky O'Hare (ver AAB)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/mosaic.cpp b/src/mame/drivers/mosaic.cpp index fa8284734a6..d3b31481093 100644 --- a/src/mame/drivers/mosaic.cpp +++ b/src/mame/drivers/mosaic.cpp @@ -246,7 +246,7 @@ void mosaic_state::machine_reset() m_prot_val = 0; } -static MACHINE_CONFIG_START( mosaic, mosaic_state ) +static MACHINE_CONFIG_START( mosaic ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z180, 7000000) /* ??? */ @@ -344,6 +344,6 @@ ROM_END -GAME( 1990, mosaic, 0, mosaic, mosaic, driver_device, 0, ROT0, "Space", "Mosaic", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, mosaica, mosaic, mosaic, mosaic, driver_device, 0, ROT0, "Space (Fuuki license)", "Mosaic (Fuuki)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, gfire2, 0, gfire2, gfire2, driver_device, 0, ROT0, "Topis Corp", "Golden Fire II", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, mosaic, 0, mosaic, mosaic, mosaic_state, 0, ROT0, "Space", "Mosaic", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, mosaica, mosaic, mosaic, mosaic, mosaic_state, 0, ROT0, "Space (Fuuki license)", "Mosaic (Fuuki)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, gfire2, 0, gfire2, gfire2, mosaic_state, 0, ROT0, "Topis Corp", "Golden Fire II", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/mouser.cpp b/src/mame/drivers/mouser.cpp index d1a096749f5..6dfa00ac4e9 100644 --- a/src/mame/drivers/mouser.cpp +++ b/src/mame/drivers/mouser.cpp @@ -201,7 +201,7 @@ void mouser_state::machine_reset() m_nmi_enable = 0; } -static MACHINE_CONFIG_START( mouser, mouser_state ) +static MACHINE_CONFIG_START( mouser ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 4000000) /* 4 MHz ? */ @@ -302,5 +302,5 @@ DRIVER_INIT_MEMBER(mouser_state,mouser) } -GAME( 1983, mouser, 0, mouser, mouser, mouser_state, mouser, ROT90, "UPL", "Mouser", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, mouser, 0, mouser, mouser, mouser_state, mouser, ROT90, "UPL", "Mouser", MACHINE_SUPPORTS_SAVE ) GAME( 1983, mouserc, mouser, mouser, mouser, mouser_state, mouser, ROT90, "UPL (Cosmos license)", "Mouser (Cosmos)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/mpf1.cpp b/src/mame/drivers/mpf1.cpp index a2d1edcd748..f850c163a6e 100644 --- a/src/mame/drivers/mpf1.cpp +++ b/src/mame/drivers/mpf1.cpp @@ -352,7 +352,7 @@ void mpf1_state::machine_reset() /* Machine Drivers */ -static MACHINE_CONFIG_START( mpf1, mpf1_state ) +static MACHINE_CONFIG_START( mpf1 ) /* basic machine hardware */ MCFG_CPU_ADD(Z80_TAG, Z80, XTAL_3_579545MHz/2) @@ -387,7 +387,7 @@ static MACHINE_CONFIG_START( mpf1, mpf1_state ) MCFG_TIMER_DRIVER_ADD_PERIODIC("halt_timer", mpf1_state, check_halt_callback, attotime::from_hz(1)) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( mpf1b, mpf1_state ) +static MACHINE_CONFIG_START( mpf1b ) /* basic machine hardware */ MCFG_CPU_ADD(Z80_TAG, Z80, XTAL_3_579545MHz/2) MCFG_CPU_PROGRAM_MAP(mpf1b_map) @@ -424,7 +424,7 @@ static MACHINE_CONFIG_START( mpf1b, mpf1_state ) MCFG_TIMER_DRIVER_ADD_PERIODIC("halt_timer", mpf1_state, check_halt_callback, attotime::from_hz(1)) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( mpf1p, mpf1_state ) +static MACHINE_CONFIG_START( mpf1p ) /* basic machine hardware */ MCFG_CPU_ADD(Z80_TAG, Z80, 2500000) MCFG_CPU_PROGRAM_MAP(mpf1p_map) @@ -486,6 +486,6 @@ DRIVER_INIT_MEMBER(mpf1_state,mpf1) m_program = &m_maincpu->space(AS_PROGRAM); } -COMP( 1979, mpf1, 0, 0, mpf1, mpf1, mpf1_state, mpf1, "Multitech", "Micro Professor 1", 0) -COMP( 1979, mpf1b, mpf1, 0, mpf1b,mpf1b, mpf1_state, mpf1, "Multitech", "Micro Professor 1B", 0) -COMP( 1982, mpf1p, mpf1, 0, mpf1p,mpf1b, mpf1_state, mpf1, "Multitech", "Micro Professor 1 Plus", MACHINE_NOT_WORKING) +COMP( 1979, mpf1, 0, 0, mpf1, mpf1, mpf1_state, mpf1, "Multitech", "Micro Professor 1", 0 ) +COMP( 1979, mpf1b, mpf1, 0, mpf1b,mpf1b, mpf1_state, mpf1, "Multitech", "Micro Professor 1B", 0 ) +COMP( 1982, mpf1p, mpf1, 0, mpf1p,mpf1b, mpf1_state, mpf1, "Multitech", "Micro Professor 1 Plus", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/mps1230.cpp b/src/mame/drivers/mps1230.cpp index d12a09470cf..99cdff6ff25 100644 --- a/src/mame/drivers/mps1230.cpp +++ b/src/mame/drivers/mps1230.cpp @@ -132,7 +132,7 @@ ADDRESS_MAP_END static INPUT_PORTS_START( mps1230 ) INPUT_PORTS_END -static MACHINE_CONFIG_START( mps1230, mps1230_state ) +static MACHINE_CONFIG_START( mps1230 ) MCFG_CPU_ADD(CPU_TAG, UPD7810, 11060000) MCFG_CPU_PROGRAM_MAP(mps1230_map) MACHINE_CONFIG_END @@ -157,6 +157,6 @@ ROM_START(mps1230) ROM_LOAD( "peek.f03ee", 0x000000, 0x010000, CRC(b5215f25) SHA1(dcfdd16942652447c472301392d9b39514547af1) ) // ver 2.1E, 09/AUG/1989 ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ -COMP( 1986, mps1000, 0, 0, mps1230, mps1230, driver_device, 0, "Commodore Business Machines", "MPS-1000 Printer", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW | MACHINE_TYPE_OTHER ) -COMP( 1988, mps1230, 0, 0, mps1230, mps1230, driver_device, 0, "Commodore Business Machines", "MPS-1230 NLQ Printer", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW | MACHINE_TYPE_OTHER ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME */ +COMP( 1986, mps1000, 0, 0, mps1230, mps1230, mps1230_state, 0, "Commodore Business Machines", "MPS-1000 Printer", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW | MACHINE_TYPE_OTHER ) +COMP( 1988, mps1230, 0, 0, mps1230, mps1230, mps1230_state, 0, "Commodore Business Machines", "MPS-1230 NLQ Printer", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW | MACHINE_TYPE_OTHER ) diff --git a/src/mame/drivers/mpu12wbk.cpp b/src/mame/drivers/mpu12wbk.cpp index dfd26114196..1addccedda6 100644 --- a/src/mame/drivers/mpu12wbk.cpp +++ b/src/mame/drivers/mpu12wbk.cpp @@ -483,7 +483,7 @@ GFXDECODE_END * Machine Drivers * *************************/ -static MACHINE_CONFIG_START( mpu12wbk, mpu12wbk_state ) +static MACHINE_CONFIG_START( mpu12wbk ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809, MASTER_CLOCK/2) /* guess */ @@ -560,5 +560,5 @@ DRIVER_INIT_MEMBER(mpu12wbk_state, mpu12wbk) * Game Drivers * *************************/ -/* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS */ +// YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS GAME( 1997, fruitstb, 0, mpu12wbk, mpu12wbk, mpu12wbk_state, mpu12wbk, ROT0, "Webak Elektronik", "Fruit Star Bonus (Ver 8.20PIR)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/mpu2.cpp b/src/mame/drivers/mpu2.cpp index 1ded190b0b2..9c7aa3fcdb3 100644 --- a/src/mame/drivers/mpu2.cpp +++ b/src/mame/drivers/mpu2.cpp @@ -67,7 +67,7 @@ INPUT_PORTS_END -static MACHINE_CONFIG_START( mpu2, mpu2_state ) +static MACHINE_CONFIG_START( mpu2 ) MCFG_CPU_ADD("maincpu", M6800, 2000000) // ? MCFG_CPU_PROGRAM_MAP(mpu2_basemap) MACHINE_CONFIG_END @@ -98,5 +98,5 @@ ROM_START( m2svlite ) ROM_LOAD( "sl1.bin", 0x0000, 0x0800, CRC(afe04b5a) SHA1(3b3385a9b039992279fda5b87926b5089a448581) ) ROM_END -GAME(198?, m2hilite, 0, mpu2, mpu2, driver_device, 0, ROT0, "Barcrest", "Hi-Lights (Barcrest) (MPU2)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(198?, m2svlite, 0, mpu2, mpu2, driver_device, 0, ROT0, "Barcrest", "Silver Lights (Barcrest) (MPU2)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(198?, m2hilite, 0, mpu2, mpu2, mpu2_state, 0, ROT0, "Barcrest", "Hi-Lights (Barcrest) (MPU2)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(198?, m2svlite, 0, mpu2, mpu2, mpu2_state, 0, ROT0, "Barcrest", "Silver Lights (Barcrest) (MPU2)", MACHINE_IS_SKELETON_MECHANICAL) diff --git a/src/mame/drivers/mpu3.cpp b/src/mame/drivers/mpu3.cpp index f914909b4c5..c9eb63f6c58 100644 --- a/src/mame/drivers/mpu3.cpp +++ b/src/mame/drivers/mpu3.cpp @@ -178,15 +178,15 @@ class mpu3_state : public driver_device { public: mpu3_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag), - m_maincpu(*this, "maincpu"), - m_reel0(*this, "reel0"), - m_reel1(*this, "reel1"), - m_reel2(*this, "reel2"), - m_reel3(*this, "reel3"), - m_meters(*this, "meters"), - m_vfd(*this, "vfd") - { } + : driver_device(mconfig, type, tag) + , m_maincpu(*this, "maincpu") + , m_reel0(*this, "reel0") + , m_reel1(*this, "reel1") + , m_reel2(*this, "reel2") + , m_reel3(*this, "reel3") + , m_meters(*this, "meters") + , m_vfd(*this, "vfd") + { } int m_triac_ic3; int m_triac_ic4; @@ -265,7 +265,7 @@ public: required_device m_reel2; required_device m_reel3; required_device m_meters; - optional_device m_vfd; + optional_device m_vfd; }; #define DISPLAY_PORT 0 @@ -847,7 +847,7 @@ ADDRESS_MAP_END MCFG_STEPPER_INDEX_PATTERN(0x00)\ MCFG_STEPPER_INIT_PHASE(2) -static MACHINE_CONFIG_START( mpu3base, mpu3_state ) +static MACHINE_CONFIG_START( mpu3base ) MCFG_CPU_ADD("maincpu", M6808, MPU3_MASTER_CLOCK)///4) MCFG_CPU_PROGRAM_MAP(mpu3_basemap) @@ -1617,10 +1617,10 @@ ROM_END #define GAME_FLAGS MACHINE_NOT_WORKING|MACHINE_NO_SOUND|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL|MACHINE_CLICKABLE_ARTWORK -GAME( 198?, m3tst, 0, mpu3base, mpu3, driver_device, 0, ROT0, "Barcrest","MPU3 Unit Test (Program 5) (Barcrest) (MPU3)",GAME_FLAGS ) +GAME( 198?, m3tst, 0, mpu3base, mpu3, mpu3_state, 0, ROT0, "Barcrest","MPU3 Unit Test (Program 5) (Barcrest) (MPU3)",GAME_FLAGS ) GAMEL( 198?, m3autort, 0, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Barcrest","Autoroute (Barcrest) (MPU3)", GAME_FLAGS, layout_m3autort ) -GAME( 198?, m3big20j, 0, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Barcrest","Big 20 Joker (Barcrest) (MPU3)",GAME_FLAGS ) +GAME( 198?, m3big20j, 0, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Barcrest","Big 20 Joker (Barcrest) (MPU3)",GAME_FLAGS ) GAMEL( 198?, m3biggam, 0, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Barcrest","The Big Game (Barcrest) (MPU3)", GAME_FLAGS, layout_m3biggam ) GAMEL( 198?, m3bigsht, 0, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Barcrest","Big Shot (Barcrest) (MPU3)", GAME_FLAGS, layout_m3bigsht ) GAMEL( 198?, m3blkhle, 0, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Barcrest","Black Hole (Barcrest) (MPU3)", GAME_FLAGS, layout_m3blkhle ) @@ -1628,26 +1628,26 @@ GAMEL( 198?, m3cabret, 0, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, GAMEL( 198?, m3cabreta, m3cabret, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Barcrest","Cabaret (Barcrest) (MPU3, set 2)", GAME_FLAGS, layout_m3cabreta ) GAMEL( 198?, m3cunlim, 0, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Barcrest","Chances Unlimited (Barcrest) (MPU3)", GAME_FLAGS, layout_m3cunlim ) GAMEL( 198?, m3cskill, 0, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Barcrest","Circle Skill (Barcrest) (MPU3)", GAME_FLAGS, layout_m3cskill ) -GAME( 198?, m3cjoker, 0, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Barcrest","Crazy Joker (Barcrest) (MPU3)",GAME_FLAGS ) +GAME( 198?, m3cjoker, 0, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Barcrest","Crazy Joker (Barcrest) (MPU3)",GAME_FLAGS ) GAMEL( 198?, m3xchngg, 0, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Barcrest","Exchanges Galore (Barcrest) (MPU3)", GAME_FLAGS, layout_m3xchngg ) -GAME( 198?, m3xchngu, 0, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Barcrest","Exchanges Unlimited (Barcrest) (MPU3, set 1)",GAME_FLAGS ) -GAME( 198?, m3xchngua, m3xchngu, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Barcrest","Exchanges Unlimited (Barcrest) (MPU3, set 2)",GAME_FLAGS ) +GAME( 198?, m3xchngu, 0, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Barcrest","Exchanges Unlimited (Barcrest) (MPU3, set 1)",GAME_FLAGS ) +GAME( 198?, m3xchngua, m3xchngu, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Barcrest","Exchanges Unlimited (Barcrest) (MPU3, set 2)",GAME_FLAGS ) GAMEL( 198?, m3fortun, 0, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Barcrest","Fortune Numbers (Barcrest) (MPU3, set 1)", GAME_FLAGS, layout_m3fortun ) GAMEL( 198?, m3fortuna, m3fortun, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Barcrest","Fortune Numbers (Barcrest) (MPU3, set 2)", GAME_FLAGS, layout_m3fortun ) GAMEL( 198?, m3fortund, m3fortun, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Barcrest","Fortune Numbers (Barcrest) [Dutch] (MPU3)", GAME_FLAGS, layout_m3fortun ) -GAME( 198?, m3gaward, 0, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Barcrest","Golden Award (Barcrest) (MPU3)",GAME_FLAGS ) -GAME( 198?, m3hprvpr, 0, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Barcrest","Hyper Viper (Barcrest) (MPU3)",GAME_FLAGS ) -GAME( 198?, m3snappy, m3hprvpr, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Barcrest","Snappy Viper (Barcrest) (MPU3)",GAME_FLAGS ) +GAME( 198?, m3gaward, 0, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Barcrest","Golden Award (Barcrest) (MPU3)",GAME_FLAGS ) +GAME( 198?, m3hprvpr, 0, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Barcrest","Hyper Viper (Barcrest) (MPU3)",GAME_FLAGS ) +GAME( 198?, m3snappy, m3hprvpr, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Barcrest","Snappy Viper (Barcrest) (MPU3)",GAME_FLAGS ) GAMEL( 198?, m3replay, 0, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Barcrest","Instant Replay (Barcrest) (MPU3)", GAME_FLAGS, layout_m3replay ) GAMEL( 198?, m3lineup, 0, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Barcrest","Line Up (Barcrest) (MPU3)", GAME_FLAGS, layout_m3lineup ) -GAME( 198?, m3llotto, 0, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Barcrest","Lucky Lotto (Barcrest) (MPU3)",GAME_FLAGS ) -GAME( 198?, m3lstrik, 0, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Barcrest","Lucky Strike Club (Barcrest) (MPU3, set 1)",GAME_FLAGS ) -GAME( 198?, m3lstrika, m3lstrik, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Barcrest","Lucky Strike Club (Barcrest) (MPU3, set 2)",GAME_FLAGS ) -GAME( 198?, m3magrp, 0, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Barcrest","Magic Replay (Barcrest) (MPU3)",GAME_FLAGS ) +GAME( 198?, m3llotto, 0, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Barcrest","Lucky Lotto (Barcrest) (MPU3)",GAME_FLAGS ) +GAME( 198?, m3lstrik, 0, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Barcrest","Lucky Strike Club (Barcrest) (MPU3, set 1)",GAME_FLAGS ) +GAME( 198?, m3lstrika, m3lstrik, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Barcrest","Lucky Strike Club (Barcrest) (MPU3, set 2)",GAME_FLAGS ) +GAME( 198?, m3magrp, 0, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Barcrest","Magic Replay (Barcrest) (MPU3)",GAME_FLAGS ) GAMEL( 198?, m3nnice, 0, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Barcrest","Naughty But Nice (Barcrest) (MPU3)", GAME_FLAGS, layout_m3nnice ) -GAME( 198?, m3nudge, 0, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Barcrest","Nudges Unlimited (Barcrest) (MPU3)",GAME_FLAGS ) +GAME( 198?, m3nudge, 0, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Barcrest","Nudges Unlimited (Barcrest) (MPU3)",GAME_FLAGS ) GAMEL( 198?, m3oddson, 0, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Barcrest","Odds On (Barcrest) (MPU3)", GAME_FLAGS, layout_m3oddson ) -GAME( 198?, m3optunl, 0, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Barcrest","Options Unlimited (Barcrest) (MPU3)",GAME_FLAGS ) +GAME( 198?, m3optunl, 0, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Barcrest","Options Unlimited (Barcrest) (MPU3)",GAME_FLAGS ) GAMEL( 198?, m3razdaz, 0, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Barcrest","Razzle Dazzle (Barcrest) (MPU3, set 1)", GAME_FLAGS, layout_m3razdaza ) GAMEL( 198?, m3razdaza, m3razdaz, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Barcrest","Razzle Dazzle (Barcrest) (MPU3, set 2)", GAME_FLAGS, layout_m3razdaza ) GAMEL( 198?, m3razdazd, m3razdaz, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Barcrest","Razzle Dazzle (Barcrest) [Dutch] (MPU3)", GAME_FLAGS, layout_m3razdaza ) @@ -1657,25 +1657,25 @@ GAMEL( 198?, m3circlea, m3circle, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, GAMEL( 198?, m3circleb, m3circle, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Barcrest","Special Circle Club (Barcrest) (MPU3, set 3)", GAME_FLAGS, layout_m3circle ) GAMEL( 198?, m3slight, 0, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Barcrest","Strike A Light (Barcrest) (MPU3)", GAME_FLAGS, layout_m3slight ) GAMEL( 198?, m3supadr, 0, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Barcrest","Super Adders & Ladders (Barcrest) (MPU3)", GAME_FLAGS, layout_m3supadr ) -GAME( 198?, m3sdeal, 0, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Barcrest","Super Deal (Barcrest) (MPU3)",GAME_FLAGS ) +GAME( 198?, m3sdeal, 0, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Barcrest","Super Deal (Barcrest) (MPU3)",GAME_FLAGS ) GAMEL( 198?, m3sexcu, 0, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Barcrest","Super Exchanges Unlimited (Barcrest) (MPU3)", GAME_FLAGS, layout_m3sexcu ) -GAME( 198?, m3suplin, 0, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Barcrest","Super Line Up (Barcrest) (MPU3, set 1)",GAME_FLAGS ) -GAME( 198?, m3suplina, m3suplin, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Barcrest","Super Line Up (Barcrest) (MPU3, set 2)",GAME_FLAGS ) +GAME( 198?, m3suplin, 0, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Barcrest","Super Line Up (Barcrest) (MPU3, set 1)",GAME_FLAGS ) +GAME( 198?, m3suplina, m3suplin, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Barcrest","Super Line Up (Barcrest) (MPU3, set 2)",GAME_FLAGS ) GAMEL( 198?, m3supnud, 0, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Barcrest","Super Nudges Unlimited (Barcrest) (MPU3)", GAME_FLAGS, layout_m3supnud ) -GAME( 198?, m3supser, 0, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Barcrest","Super Series (Barcrest) (MPU3)",GAME_FLAGS ) +GAME( 198?, m3supser, 0, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Barcrest","Super Series (Barcrest) (MPU3)",GAME_FLAGS ) GAMEL( 198?, m3sweep, 0, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Barcrest","Sweep Stake Club (Barcrest) (MPU3, set 1)", GAME_FLAGS, layout_m3sweep ) GAMEL( 198?, m3sweepa, m3sweep, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Barcrest","Sweep Stake Club (Barcrest) (MPU3, set 2)", GAME_FLAGS, layout_m3sweep ) -GAME( 198?, m3topsht, 0, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Barcrest","Top Shot (Barcrest) (MPU3)",GAME_FLAGS ) -GAME( 198?, m3winstra, m3winstr, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Barcrest","Winstrike (Barcrest) (MPU3)",GAME_FLAGS ) +GAME( 198?, m3topsht, 0, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Barcrest","Top Shot (Barcrest) (MPU3)",GAME_FLAGS ) +GAME( 198?, m3winstra, m3winstr, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Barcrest","Winstrike (Barcrest) (MPU3)",GAME_FLAGS ) /* Bwb */ GAMEL( 198?, m3acech, 0, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Bwb","Ace Chase (Bwb) (MPU3)", GAME_FLAGS, layout_m3acech ) -GAME( 198?, m3bankr, 0, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Bwb","Banker (Bwb) (MPU3)",GAME_FLAGS ) +GAME( 198?, m3bankr, 0, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Bwb","Banker (Bwb) (MPU3)",GAME_FLAGS ) GAMEL( 198?, m3chase, 0, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Bwb","Chase It (Bwb) (MPU3)", GAME_FLAGS, layout_m3chase ) GAMEL( 198?, m3gmine, 0, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Bwb","Gold Mine (Bwb) (MPU3)", GAME_FLAGS, layout_m3gmine ) GAMEL( 198?, m3ratrce, 0, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Bwb","Rat Race (Bwb) (MPU3)", GAME_FLAGS, layout_m3ratrce ) -GAME( 198?, m3supasw, 0, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Bwb","Supaswop (Bwb) (MPU3)",GAME_FLAGS ) +GAME( 198?, m3supasw, 0, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Bwb","Supaswop (Bwb) (MPU3)",GAME_FLAGS ) GAMEL( 198?, m3supwin, 0, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Bwb","Super Win (Bwb) (MPU3, set 1)", GAME_FLAGS, layout_m3supwin ) GAMEL( 198?, m3supwina, m3supwin, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Bwb","Super Win (Bwb) (MPU3, set 2)", GAME_FLAGS, layout_m3supwin ) GAMEL( 198?, m3winagn, 0, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Bwb","Win-A-Gain (Bwb) (MPU3, set 1)", GAME_FLAGS, layout_m3winagnb ) @@ -1685,7 +1685,7 @@ GAMEL( 198?, m3winstr, 0, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, /* Pcp */ -GAME( 198?, m3cdash, 0, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Pcp","Cash Dash (Pcp) (MPU3)",GAME_FLAGS ) +GAME( 198?, m3cdash, 0, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Pcp","Cash Dash (Pcp) (MPU3)",GAME_FLAGS ) GAMEL( 198?, m3loony, 0, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Pcp","Loonybin (Pcp) (MPU3)", GAME_FLAGS, layout_m3loony ) GAMEL( 198?, m3online, 0, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Pcp","On Line (Pcp) (MPU3)", GAME_FLAGS, layout_m3online ) GAMEL( 198?, m3rockpl, 0, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Pcp","Rock Pile (Pcp) (MPU3)", GAME_FLAGS, layout_m3rockpl ) @@ -1696,20 +1696,20 @@ GAMEL( 198?, m3spoofa, m3spoof, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, GAMEL( 198?, m3supspo, 0, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Pcp","Super Spoof (Pcp) (MPU3, set 1)", GAME_FLAGS, layout_m3supspo ) GAMEL( 198?, m3supspoa, m3supspo, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Pcp","Super Spoof (Pcp) (MPU3, set 2)", GAME_FLAGS, layout_m3supspo ) GAMEL( 198?, m3toplin, 0, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Pcp","Top Line (Pcp) (MPU3)", GAME_FLAGS, layout_m3toplin ) -GAME( 198?, m3wigwam, 0, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Pcp","Wig Wam (Pcp) (MPU3)",GAME_FLAGS ) +GAME( 198?, m3wigwam, 0, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Pcp","Wig Wam (Pcp) (MPU3)",GAME_FLAGS ) /* Mdm */ GAMEL( 198?, m3gcrown, 0, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Mdm","Golden Crowns (Mdm) (MPU3)", GAME_FLAGS, layout_m3gcrown ) GAMEL( 198?, m3tfair, 0, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Mdm","Tuppenny Fair (Mdm) (MPU3)", GAME_FLAGS, layout_m3tfair ) -GAME( 198?, m3wacky, 0, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Mdm","Wacky Racer (Mdm) (MPU3)",GAME_FLAGS ) +GAME( 198?, m3wacky, 0, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Mdm","Wacky Racer (Mdm) (MPU3)",GAME_FLAGS ) /* VFS */ GAMEL( 198?, m3oxo, 0, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "VFS","Noughts 'n' Crosses (VFS) (MPU3)", GAME_FLAGS, layout_m3oxo ) -GAME( 198?, m3mremon, 0, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "VFS","More Money (VFS) (MPU3)",GAME_FLAGS ) +GAME( 198?, m3mremon, 0, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "VFS","More Money (VFS) (MPU3)",GAME_FLAGS ) /* Others */ -GAME( 198?, m3minmax, 0, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Associated Leisure","Mini Max (Associated Leisure) (MPU3)",GAME_FLAGS ) -GAME( 198?, m3scoop, 0, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Peter Simper","Scoop (Peter Simper, prototype?) (MPU3)",GAME_FLAGS ) -GAME( 198?, m3tlktwn, 0, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "","Talk of the Town (MPU3?)",GAME_FLAGS ) +GAME( 198?, m3minmax, 0, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Associated Leisure","Mini Max (Associated Leisure) (MPU3)",GAME_FLAGS ) +GAME( 198?, m3scoop, 0, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "Peter Simper","Scoop (Peter Simper, prototype?) (MPU3)",GAME_FLAGS ) +GAME( 198?, m3tlktwn, 0, mpu3base, mpu3, mpu3_state, m3hprvpr, ROT0, "","Talk of the Town (MPU3?)",GAME_FLAGS ) diff --git a/src/mame/drivers/mpu4.cpp b/src/mame/drivers/mpu4.cpp index f889fa3af7f..45d3829be3a 100644 --- a/src/mame/drivers/mpu4.cpp +++ b/src/mame/drivers/mpu4.cpp @@ -3083,7 +3083,7 @@ MACHINE_CONFIG_FRAGMENT( mpu4_common2 ) MACHINE_CONFIG_END /* machine driver for MOD 2 board */ -MACHINE_CONFIG_START( mpu4base, mpu4_state ) +MACHINE_CONFIG_START( mpu4base ) MCFG_MACHINE_START_OVERRIDE(mpu4_state,mod2 ) MCFG_MACHINE_RESET_OVERRIDE(mpu4_state,mpu4) diff --git a/src/mame/drivers/mpu4dealem.cpp b/src/mame/drivers/mpu4dealem.cpp index 8327c7e983f..a1797b42da3 100644 --- a/src/mame/drivers/mpu4dealem.cpp +++ b/src/mame/drivers/mpu4dealem.cpp @@ -194,7 +194,7 @@ MACHINE_RESET_MEMBER(mpu4dealem_state,dealem_vid) /* machine driver for Zenitone Deal 'Em board */ -static MACHINE_CONFIG_START( dealem, mpu4dealem_state ) +static MACHINE_CONFIG_START( dealem ) MCFG_MACHINE_START_OVERRIDE(mpu4dealem_state,mod2) /* main mpu4 board initialisation */ MCFG_MACHINE_RESET_OVERRIDE(mpu4dealem_state,dealem_vid) @@ -380,4 +380,4 @@ and reel assembly with this kit and a supplied monitor. This explains why the ca The original Deal 'Em ran on Summit Coin hardware, and was made by someone else. Two further different releases were made, running on the Barcrest MPU4 Video, rather than this one. These are Deal 'Em Again and Deal 'Em 2000*/ -GAME( 1987,v4dealem, 0, dealem, dealem, driver_device, 0, ROT0, "Zenitone","Deal 'Em (MPU4 Conversion Kit, v7.0)",MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1987,v4dealem, 0, dealem, dealem, mpu4dealem_state, 0, ROT0, "Zenitone","Deal 'Em (MPU4 Conversion Kit, v7.0)",MACHINE_IMPERFECT_GRAPHICS ) diff --git a/src/mame/drivers/mpu4plasma.cpp b/src/mame/drivers/mpu4plasma.cpp index ef2f442f5c2..dc141ff5d7d 100644 --- a/src/mame/drivers/mpu4plasma.cpp +++ b/src/mame/drivers/mpu4plasma.cpp @@ -87,7 +87,7 @@ uint32_t mpu4plasma_state::screen_update_mpu4plasma(screen_device &screen, bitma } -MACHINE_CONFIG_DERIVED_CLASS( mpu4plasma , mod2, mpu4plasma_state ) +MACHINE_CONFIG_DERIVED( mpu4plasma, mod2 ) MCFG_CPU_ADD("plasmacpu", M68000, 10000000) MCFG_CPU_PROGRAM_MAP(mpu4plasma_map) MCFG_CPU_VBLANK_INT_DRIVER("screen", mpu4plasma_state, irq4_line_hold) @@ -196,14 +196,14 @@ ROM_END #define GAME_FLAGS (MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL) -GAMEL(199?, m4bigchf ,0 ,mpu4plasma ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Big Chief (Barcrest) (MPU4 w/ Plasma DMD) (set 1)", GAME_FLAGS|MACHINE_NO_SOUND,layout_mpu4plasma ) -GAMEL(199?, m4bigchfa ,m4bigchf ,mpu4plasma ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Big Chief (Barcrest) (MPU4 w/ Plasma DMD) (set 2)", GAME_FLAGS|MACHINE_NO_SOUND,layout_mpu4plasma ) -GAMEL(199?, m4bigchfb ,m4bigchf ,mpu4plasma ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Big Chief (Barcrest) (MPU4 w/ Plasma DMD) (set 3)", GAME_FLAGS|MACHINE_NO_SOUND,layout_mpu4plasma ) -GAMEL(199?, m4bigchfc ,m4bigchf ,mpu4plasma ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Big Chief (Barcrest) (MPU4 w/ Plasma DMD) (set 4)", GAME_FLAGS|MACHINE_NO_SOUND,layout_mpu4plasma ) +GAMEL(199?, m4bigchf ,0 ,mpu4plasma ,mpu4 , mpu4plasma_state,m4default ,ROT0, "Barcrest","Big Chief (Barcrest) (MPU4 w/ Plasma DMD) (set 1)", GAME_FLAGS|MACHINE_NO_SOUND,layout_mpu4plasma ) +GAMEL(199?, m4bigchfa ,m4bigchf ,mpu4plasma ,mpu4 , mpu4plasma_state,m4default ,ROT0, "Barcrest","Big Chief (Barcrest) (MPU4 w/ Plasma DMD) (set 2)", GAME_FLAGS|MACHINE_NO_SOUND,layout_mpu4plasma ) +GAMEL(199?, m4bigchfb ,m4bigchf ,mpu4plasma ,mpu4 , mpu4plasma_state,m4default ,ROT0, "Barcrest","Big Chief (Barcrest) (MPU4 w/ Plasma DMD) (set 3)", GAME_FLAGS|MACHINE_NO_SOUND,layout_mpu4plasma ) +GAMEL(199?, m4bigchfc ,m4bigchf ,mpu4plasma ,mpu4 , mpu4plasma_state,m4default ,ROT0, "Barcrest","Big Chief (Barcrest) (MPU4 w/ Plasma DMD) (set 4)", GAME_FLAGS|MACHINE_NO_SOUND,layout_mpu4plasma ) -GAMEL(199?, m4click ,0 ,mpu4plasma ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Clickity Click (Barcrest) (MPU4 w/ Plasma DMD)", GAME_FLAGS|MACHINE_NO_SOUND,layout_mpu4plasma ) +GAMEL(199?, m4click ,0 ,mpu4plasma ,mpu4 , mpu4plasma_state,m4default ,ROT0, "Barcrest","Clickity Click (Barcrest) (MPU4 w/ Plasma DMD)", GAME_FLAGS|MACHINE_NO_SOUND,layout_mpu4plasma ) // not confirmed to be plasma, is this an alt version of big chief? maybe it uses the same plasma roms? -GAMEL(199?, m4apach ,0 ,mpu4plasma ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Apache (Barcrest) (MPU4 w/ Plasma DMD?)", GAME_FLAGS|MACHINE_NO_SOUND,layout_mpu4plasma ) +GAMEL(199?, m4apach ,0 ,mpu4plasma ,mpu4 , mpu4plasma_state,m4default ,ROT0, "Barcrest","Apache (Barcrest) (MPU4 w/ Plasma DMD?)", GAME_FLAGS|MACHINE_NO_SOUND,layout_mpu4plasma ) // not confirmed to be plasma, but acts like it -GAMEL(199?, m4elite ,0 ,mpu4plasma ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Elite (Barcrest) (MPU4 w/ Plasma DMD?)", GAME_FLAGS|MACHINE_NO_SOUND,layout_mpu4plasma ) +GAMEL(199?, m4elite ,0 ,mpu4plasma ,mpu4 , mpu4plasma_state,m4default ,ROT0, "Barcrest","Elite (Barcrest) (MPU4 w/ Plasma DMD?)", GAME_FLAGS|MACHINE_NO_SOUND,layout_mpu4plasma ) diff --git a/src/mame/drivers/mpu4vid.cpp b/src/mame/drivers/mpu4vid.cpp index 18d1e439d4e..f94e46f8183 100644 --- a/src/mame/drivers/mpu4vid.cpp +++ b/src/mame/drivers/mpu4vid.cpp @@ -1267,7 +1267,7 @@ ADDRESS_MAP_END -static MACHINE_CONFIG_START( mpu4_vid, mpu4vid_state ) +static MACHINE_CONFIG_START( mpu4_vid ) MCFG_CPU_ADD("maincpu", M6809, MPU4_MASTER_CLOCK/4 ) MCFG_CPU_PROGRAM_MAP(mpu4_6809_map) @@ -3576,28 +3576,28 @@ ROM_END AMLD versions do not pay out, and instead just feature highscore tables. These were mainly intended for locations unwilling to pay for gaming licenses. The AMLD Crystal Maze versions appear to be a mixture of the original game modules and Team Challenge's scoring system. This would suggest they were all made ~1994. */ -GAME( 199?,v4bios, 0, mod2, mpu4, driver_device, 0, ROT0, "Barcrest","MPU4 Video Firmware",MACHINE_IS_BIOS_ROOT ) +GAME( 199?,v4bios, 0, mod2, mpu4, mpu4_state, 0, ROT0, "Barcrest","MPU4 Video Firmware",MACHINE_IS_BIOS_ROOT ) #define GAME_FLAGS MACHINE_NOT_WORKING -GAMEL( 1993,v4cmaze, v4bios, crmaze, crmaze, mpu4vid_state, crmaze, ROT0, "Barcrest","The Crystal Maze (v1.3) (MPU4 Video)",GAME_FLAGS,layout_crmaze2p )//SWP 0.9 -GAMEL( 1993,v4cmazedat, v4cmaze, crmaze, crmaze, mpu4vid_state, crmaze, ROT0, "Barcrest","The Crystal Maze (v1.3, Datapak) (MPU4 Video)",GAME_FLAGS,layout_crmaze2p )//SWP 0.9D -GAMEL( 1993,v4cmazea, v4cmaze, crmaze, crmaze, mpu4vid_state, crmazea, ROT0, "Barcrest","The Crystal Maze (v0.1, AMLD) (MPU4 Video)",GAME_FLAGS,layout_crmaze2p )//SWP 0.9 (actually newer than the 1.1 set then??) -GAMEL( 1993,v4cmazeb, v4cmaze, crmaze, crmaze, mpu4vid_state, v4cmazeb, ROT0, "Barcrest","The Crystal Maze (v1.2) (MPU4 Video)",GAME_FLAGS,layout_crmaze2p )//SWP 0.9 -GAMEL( 1993,v4cmazec, v4cmaze, crmaze, crmaze, mpu4vid_state, v4cmazeb, ROT0, "Barcrest","The Crystal Maze (v1.3 alt) (MPU4 Video)",GAME_FLAGS,layout_crmaze2p )//SWP 0.9 -GAMEL( 1993,v4cmazed, v4cmaze, crmaze, crmaze, mpu4vid_state, v4cmazeb, ROT0, "Barcrest","The Crystal Maze (v1.1) (MPU4 Video)",GAME_FLAGS,layout_crmaze2p )//SWP 0.6 - -GAMEL( 1993,v4cmaze2, v4bios, crmaze, crmaze, mpu4vid_state, crmaze2, ROT0, "Barcrest","The New Crystal Maze Featuring Ocean Zone (v2.2) (MPU4 Video)",GAME_FLAGS,layout_crmaze4p )//SWP 1.0 -GAMEL( 1993,v4cmaze2d, v4cmaze2, crmaze, crmaze, mpu4vid_state, crmaze2, ROT0, "Barcrest","The New Crystal Maze Featuring Ocean Zone (v2.2, Datapak) (MPU4 Video)",GAME_FLAGS,layout_crmaze4p )//SWP 1.0D -GAMEL( 1993,v4cmaze2a, v4cmaze2, crmaze, crmaze, mpu4vid_state, crmaze2a, ROT0, "Barcrest","The New Crystal Maze Featuring Ocean Zone (v0.1, AMLD) (MPU4 Video)",GAME_FLAGS,layout_crmaze4p )//SWP 1.0 /* unprotected? proto? */ -GAMEL( 1993,v4cmaze2b, v4cmaze2, crmaze, crmaze, mpu4vid_state, crmaze2, ROT0, "Barcrest","The New Crystal Maze Featuring Ocean Zone (v2.0) (MPU4 Video)",GAME_FLAGS,layout_crmaze4p )//SWP 1.0 -GAMEL( 1993,v4cmaze2c, v4cmaze2, crmaze, crmaze, mpu4vid_state, crmaze2, ROT0, "Barcrest","The New Crystal Maze Featuring Ocean Zone (v?.?) (MPU4 Video)",GAME_FLAGS,layout_crmaze4p )// bad rom? - -GAMEL( 1994,v4cmaze3, v4bios, crmaze, crmaze, mpu4vid_state, crmaze3, ROT0, "Barcrest","The Crystal Maze Team Challenge (v0.9) (MPU4 Video)",GAME_FLAGS,layout_crmaze4p )//SWP 0.7 -GAMEL( 1994,v4cmaze3d, v4cmaze3, crmaze, crmaze, mpu4vid_state, crmaze3, ROT0, "Barcrest","The Crystal Maze Team Challenge (v0.9, Datapak) (MPU4 Video)",GAME_FLAGS,layout_crmaze4p )//SWP 0.7D -GAMEL( 1994,v4cmaze3a, v4cmaze3, crmaze, crmaze, mpu4vid_state, crmaze3a, ROT0, "Barcrest","The Crystal Maze Team Challenge (v1.2, AMLD) (MPU4 Video)",GAME_FLAGS,layout_crmaze4p )//SWP 0.7 -GAMEL( 1994,v4cmaze3b, v4cmaze3, crmaze, crmaze, mpu4vid_state, v4cmazeb, ROT0, "Barcrest","The Crystal Maze Team Challenge (v0.8) (MPU4 Video)",GAME_FLAGS,layout_crmaze4p )//SWP 0.7 -GAMEL( 1994,v4cmaze3c, v4cmaze3, crmaze, crmaze, mpu4vid_state, v4cmazeb, ROT0, "Barcrest","The Crystal Maze Team Challenge (v?.?) (MPU4 Video)",GAME_FLAGS,layout_crmaze4p )// missing one program rom +GAMEL( 1993,v4cmaze, v4bios, crmaze, crmaze, mpu4vid_state, crmaze, ROT0, "Barcrest","The Crystal Maze (v1.3) (MPU4 Video)",GAME_FLAGS,layout_crmaze2p )//SWP 0.9 +GAMEL( 1993,v4cmazedat, v4cmaze, crmaze, crmaze, mpu4vid_state, crmaze, ROT0, "Barcrest","The Crystal Maze (v1.3, Datapak) (MPU4 Video)",GAME_FLAGS,layout_crmaze2p )//SWP 0.9D +GAMEL( 1993,v4cmazea, v4cmaze, crmaze, crmaze, mpu4vid_state, crmazea, ROT0, "Barcrest","The Crystal Maze (v0.1, AMLD) (MPU4 Video)",GAME_FLAGS,layout_crmaze2p )//SWP 0.9 (actually newer than the 1.1 set then??) +GAMEL( 1993,v4cmazeb, v4cmaze, crmaze, crmaze, mpu4vid_state, v4cmazeb, ROT0, "Barcrest","The Crystal Maze (v1.2) (MPU4 Video)",GAME_FLAGS,layout_crmaze2p )//SWP 0.9 +GAMEL( 1993,v4cmazec, v4cmaze, crmaze, crmaze, mpu4vid_state, v4cmazeb, ROT0, "Barcrest","The Crystal Maze (v1.3 alt) (MPU4 Video)",GAME_FLAGS,layout_crmaze2p )//SWP 0.9 +GAMEL( 1993,v4cmazed, v4cmaze, crmaze, crmaze, mpu4vid_state, v4cmazeb, ROT0, "Barcrest","The Crystal Maze (v1.1) (MPU4 Video)",GAME_FLAGS,layout_crmaze2p )//SWP 0.6 + +GAMEL( 1993,v4cmaze2, v4bios, crmaze, crmaze, mpu4vid_state, crmaze2, ROT0, "Barcrest","The New Crystal Maze Featuring Ocean Zone (v2.2) (MPU4 Video)",GAME_FLAGS,layout_crmaze4p )//SWP 1.0 +GAMEL( 1993,v4cmaze2d, v4cmaze2, crmaze, crmaze, mpu4vid_state, crmaze2, ROT0, "Barcrest","The New Crystal Maze Featuring Ocean Zone (v2.2, Datapak) (MPU4 Video)",GAME_FLAGS,layout_crmaze4p )//SWP 1.0D +GAMEL( 1993,v4cmaze2a, v4cmaze2, crmaze, crmaze, mpu4vid_state, crmaze2a, ROT0, "Barcrest","The New Crystal Maze Featuring Ocean Zone (v0.1, AMLD) (MPU4 Video)",GAME_FLAGS,layout_crmaze4p )//SWP 1.0 /* unprotected? proto? */ +GAMEL( 1993,v4cmaze2b, v4cmaze2, crmaze, crmaze, mpu4vid_state, crmaze2, ROT0, "Barcrest","The New Crystal Maze Featuring Ocean Zone (v2.0) (MPU4 Video)",GAME_FLAGS,layout_crmaze4p )//SWP 1.0 +GAMEL( 1993,v4cmaze2c, v4cmaze2, crmaze, crmaze, mpu4vid_state, crmaze2, ROT0, "Barcrest","The New Crystal Maze Featuring Ocean Zone (v?.?) (MPU4 Video)",GAME_FLAGS,layout_crmaze4p )// bad rom? + +GAMEL( 1994,v4cmaze3, v4bios, crmaze, crmaze, mpu4vid_state, crmaze3, ROT0, "Barcrest","The Crystal Maze Team Challenge (v0.9) (MPU4 Video)",GAME_FLAGS,layout_crmaze4p )//SWP 0.7 +GAMEL( 1994,v4cmaze3d, v4cmaze3, crmaze, crmaze, mpu4vid_state, crmaze3, ROT0, "Barcrest","The Crystal Maze Team Challenge (v0.9, Datapak) (MPU4 Video)",GAME_FLAGS,layout_crmaze4p )//SWP 0.7D +GAMEL( 1994,v4cmaze3a, v4cmaze3, crmaze, crmaze, mpu4vid_state, crmaze3a, ROT0, "Barcrest","The Crystal Maze Team Challenge (v1.2, AMLD) (MPU4 Video)",GAME_FLAGS,layout_crmaze4p )//SWP 0.7 +GAMEL( 1994,v4cmaze3b, v4cmaze3, crmaze, crmaze, mpu4vid_state, v4cmazeb, ROT0, "Barcrest","The Crystal Maze Team Challenge (v0.8) (MPU4 Video)",GAME_FLAGS,layout_crmaze4p )//SWP 0.7 +GAMEL( 1994,v4cmaze3c, v4cmaze3, crmaze, crmaze, mpu4vid_state, v4cmazeb, ROT0, "Barcrest","The Crystal Maze Team Challenge (v?.?) (MPU4 Video)",GAME_FLAGS,layout_crmaze4p )// missing one program rom GAME( 199?,v4turnov, v4bios, mpu4_vid, turnover, mpu4vid_state, turnover, ROT0, "Barcrest","Turnover (v2.3) (MPU4 Video)",GAME_FLAGS ) @@ -3605,14 +3605,14 @@ GAME( 1990,v4skltrk, v4bios, mpu4_vid, skiltrek, mpu4vid_state, skil GAME( 1990,v4skltrka, v4skltrk, mpu4_vid, skiltrek, mpu4vid_state, skiltrek, ROT0, "Barcrest","Skill Trek (v1.1) (MPU4 Video, set 2)",GAME_FLAGS ) // 12 pound max GAME( 1990,v4sklcsh, v4bios, mpu4_vid, skiltrek, mpu4vid_state, v4barqst, ROT0, "Barcrest","Skill Cash (v1.1) (MPU4 Video)",GAME_FLAGS ) -GAME( 1989,v4addlad, v4bios, mpu4_vid, adders, mpu4vid_state, adders, ROT0, "Barcrest","Adders and Ladders (v2.1) (MPU4 Video)",GAME_FLAGS ) -GAME( 1989,v4addlad20, v4addlad, mpu4_vid, adders, mpu4vid_state, adders, ROT0, "Barcrest","Adders and Ladders (v2.0) (MPU4 Video)",GAME_FLAGS ) +GAME( 1989,v4addlad, v4bios, mpu4_vid, adders, mpu4vid_state, adders, ROT0, "Barcrest","Adders and Ladders (v2.1) (MPU4 Video)",GAME_FLAGS ) +GAME( 1989,v4addlad20, v4addlad, mpu4_vid, adders, mpu4vid_state, adders, ROT0, "Barcrest","Adders and Ladders (v2.0) (MPU4 Video)",GAME_FLAGS ) GAME( 1989,v4time, v4bios, mpu4_vid, skiltrek, mpu4vid_state, timemchn, ROT0, "Barcrest","Time Machine (v2.0) (MPU4 Video)",GAME_FLAGS ) //Year is a guess, based on the use of the 'Coin Man' logo -GAME( 1996?,v4mate, v4bios, mating, mating, mpu4vid_state, mating, ROT0, "Barcrest","The Mating Game (v0.4) (MPU4 Video)",GAME_FLAGS )//SWP 0.2 /* Using crmaze controls for now, cabinet has trackball */ -GAME( 1996?,v4mated, v4mate, mating, mating, mpu4vid_state, mating, ROT0, "Barcrest","The Mating Game (v0.4, Datapak) (MPU4 Video)",GAME_FLAGS )//SWP 0.2D +GAME( 1996?,v4mate, v4bios, mating, mating, mpu4vid_state, mating, ROT0, "Barcrest","The Mating Game (v0.4) (MPU4 Video)",GAME_FLAGS )//SWP 0.2 /* Using crmaze controls for now, cabinet has trackball */ +GAME( 1996?,v4mated, v4mate, mating, mating, mpu4vid_state, mating, ROT0, "Barcrest","The Mating Game (v0.4, Datapak) (MPU4 Video)",GAME_FLAGS )//SWP 0.2D /* Games below are missing question ROMs */ @@ -3643,39 +3643,39 @@ GAME( 1991,v4opt3d, v4opt3, mpu4_vid, mpu4, mpu4vid_state, v4op /* Games below are newer BwB games and use their own BIOS ROMs and hardware setups*/ -GAME( 199?,v4vgpok, 0, bwbvid, mpu4, driver_device, 0, ROT0, "BwB","Vegas Poker (prototype, release 2) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?,v4vgpok, 0, bwbvid, mpu4, mpu4vid_state, 0, ROT0, "BwB","Vegas Poker (prototype, release 2) (MPU4 Video)",GAME_FLAGS ) GAME( 199?,v4psi, 0, bwbvid, mpu4, mpu4vid_state, prizeinv, ROT0, "BwB","Prize Space Invaders (v1.1) (MPU4 Video)",GAME_FLAGS ) GAME( 199?,v4psia, 0, bwbvid, mpu4, mpu4vid_state, prizeinv, ROT0, "BwB","Prize Space Invaders (v1.2) (MPU4 Video)",GAME_FLAGS ) GAME( 199?,v4psib, 0, bwbvid, mpu4, mpu4vid_state, prizeinv, ROT0, "BwB","Prize Space Invaders (v2.0?) (MPU4 Video)",GAME_FLAGS ) // bad dump -GAME( 199?,v4blox, 0, bwbvid, mpu4, driver_device, 0, ROT0, "BwB","Blox (v2.0) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?,v4bloxd, v4blox, bwbvid, mpu4, driver_device, 0, ROT0, "BwB","Blox (v2.0, Datapak) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?,v4blox, 0, bwbvid, mpu4, mpu4vid_state, 0, ROT0, "BwB","Blox (v2.0) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?,v4bloxd, v4blox, bwbvid, mpu4, mpu4vid_state, 0, ROT0, "BwB","Blox (v2.0, Datapak) (MPU4 Video)",GAME_FLAGS ) GAME( 1996,v4reno, 0, bwbvid5, mpu4, mpu4vid_state, prizeinv, ROT0, "BwB","Reno Reels (20p/10GBP Cash, release A) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?,v4bigfrt, 0, bwbvid, mpu4, driver_device, 0, ROT0, "BwB","Big Fruits (v2.0?) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?,v4bubbnk, 0, bwbvid, mpu4, driver_device, 0, ROT0, "BwB","Bubbly Bonk (v4.0?) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?,v4mazbel, 0, bwbvid, mpu4, driver_device, 0, ROT0, "BwB","Mazooma Belle (v2.5) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?,v4mazbla, 0, bwbvid, mpu4, driver_device, 0, ROT0, "BwB","Mazooma Belle (v1.5) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?,v4shpwnd, 0, bwbvid, mpu4, driver_device, 0, ROT0, "BwB","Shop Window (v2.0) (MPU4 Video)",GAME_FLAGS ) - -GAME( 199?,v4redhtp, 0, bwbvid, mpu4, driver_device, 0, ROT0, "BwB","Red Hot Poker (20p/10GBP Cash, release 3) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?,v4tetrs, 0, bwbvid, mpu4, driver_device, 0, ROT0, "BwB","BwB Tetris v 2.2 (MPU4 Video)",GAME_FLAGS ) - -GAME( 199?,v4big40, 0, bwbvid, mpu4, driver_device, 0, ROT0, "BwB","Big 40 Poker (Bwb) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?,v4bulblx, 0, bwbvid, mpu4, driver_device, 0, ROT0, "BwB","Bullion Blox (Bwb) (MPU4 Video)",GAME_FLAGS ) // is this the same game as v4blox? -GAME( 199?,v4cshinf, 0, bwbvid, mpu4, driver_device, 0, ROT0, "BwB","Cash Inferno (Bwb) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?,v4dbltak, 0, bwbvid, mpu4, driver_device, 0, ROT0, "BwB","Double Take (Bwb) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?,v4gldrsh, 0, bwbvid, mpu4, driver_device, 0, ROT0, "BwB","Gold Rush (Bwb) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?,v4mdice, 0, bwbvid, mpu4, driver_device, 0, ROT0, "BwB","Miami Dice (Bwb) (MPU4 Video)",GAME_FLAGS ) // is this the same as the Nova game below? -GAME( 199?,v4monte, 0, bwbvid, mpu4, driver_device, 0, ROT0, "BwB","Monte Carlo Or Bust (Bwb) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?,v4ovrmn3, 0, bwbvid, mpu4, driver_device, 0, ROT0, "BwB","Over Moon Pt3 (Bwb) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?,v4pztet, 0, bwbvid, mpu4, driver_device, 0, ROT0, "BwB","Prize Tetris (Bwb) (MPU4 Video, set 1)",GAME_FLAGS ) // is this the same as v4tetrs? -GAME( 199?,v4pzteta, v4pztet, bwbvid, mpu4, driver_device, 0, ROT0, "BwB","Prize Tetris (Bwb) (MPU4 Video, set 2)",GAME_FLAGS ) -GAME( 199?,v4rhmaz, 0, bwbvid, mpu4, driver_device, 0, ROT0, "BwB","Red Hot Mazooma Belle (Bwb) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?,v4sunbst, 0, bwbvid, mpu4, driver_device, 0, ROT0, "BwB","Sunburst (Bwb) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?,v4timebn, 0, bwbvid, mpu4, driver_device, 0, ROT0, "BwB","Time Bandit (Bwb) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?,v4sixx, 0, bwbvid, mpu4, driver_device, 0, ROT0, "BwB","6-X (Bwb) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?,v4megbuk, 0, bwbvid, mpu4, driver_device, 0, ROT0, "BwB","Megabucks Poker (Bwb) (MPU4 Video)",GAME_FLAGS ) // no video roms! -GAME( 199?,v4rencas, 0, bwbvid, mpu4, driver_device, 0, ROT0, "BwB","Reno Casino (Bwb) (MPU4 Video)",GAME_FLAGS ) // no video roms! +GAME( 199?,v4bigfrt, 0, bwbvid, mpu4, mpu4vid_state, 0, ROT0, "BwB","Big Fruits (v2.0?) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?,v4bubbnk, 0, bwbvid, mpu4, mpu4vid_state, 0, ROT0, "BwB","Bubbly Bonk (v4.0?) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?,v4mazbel, 0, bwbvid, mpu4, mpu4vid_state, 0, ROT0, "BwB","Mazooma Belle (v2.5) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?,v4mazbla, 0, bwbvid, mpu4, mpu4vid_state, 0, ROT0, "BwB","Mazooma Belle (v1.5) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?,v4shpwnd, 0, bwbvid, mpu4, mpu4vid_state, 0, ROT0, "BwB","Shop Window (v2.0) (MPU4 Video)",GAME_FLAGS ) + +GAME( 199?,v4redhtp, 0, bwbvid, mpu4, mpu4vid_state, 0, ROT0, "BwB","Red Hot Poker (20p/10GBP Cash, release 3) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?,v4tetrs, 0, bwbvid, mpu4, mpu4vid_state, 0, ROT0, "BwB","BwB Tetris v 2.2 (MPU4 Video)",GAME_FLAGS ) + +GAME( 199?,v4big40, 0, bwbvid, mpu4, mpu4vid_state, 0, ROT0, "BwB","Big 40 Poker (Bwb) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?,v4bulblx, 0, bwbvid, mpu4, mpu4vid_state, 0, ROT0, "BwB","Bullion Blox (Bwb) (MPU4 Video)",GAME_FLAGS ) // is this the same game as v4blox? +GAME( 199?,v4cshinf, 0, bwbvid, mpu4, mpu4vid_state, 0, ROT0, "BwB","Cash Inferno (Bwb) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?,v4dbltak, 0, bwbvid, mpu4, mpu4vid_state, 0, ROT0, "BwB","Double Take (Bwb) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?,v4gldrsh, 0, bwbvid, mpu4, mpu4vid_state, 0, ROT0, "BwB","Gold Rush (Bwb) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?,v4mdice, 0, bwbvid, mpu4, mpu4vid_state, 0, ROT0, "BwB","Miami Dice (Bwb) (MPU4 Video)",GAME_FLAGS ) // is this the same as the Nova game below? +GAME( 199?,v4monte, 0, bwbvid, mpu4, mpu4vid_state, 0, ROT0, "BwB","Monte Carlo Or Bust (Bwb) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?,v4ovrmn3, 0, bwbvid, mpu4, mpu4vid_state, 0, ROT0, "BwB","Over Moon Pt3 (Bwb) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?,v4pztet, 0, bwbvid, mpu4, mpu4vid_state, 0, ROT0, "BwB","Prize Tetris (Bwb) (MPU4 Video, set 1)",GAME_FLAGS ) // is this the same as v4tetrs? +GAME( 199?,v4pzteta, v4pztet, bwbvid, mpu4, mpu4vid_state, 0, ROT0, "BwB","Prize Tetris (Bwb) (MPU4 Video, set 2)",GAME_FLAGS ) +GAME( 199?,v4rhmaz, 0, bwbvid, mpu4, mpu4vid_state, 0, ROT0, "BwB","Red Hot Mazooma Belle (Bwb) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?,v4sunbst, 0, bwbvid, mpu4, mpu4vid_state, 0, ROT0, "BwB","Sunburst (Bwb) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?,v4timebn, 0, bwbvid, mpu4, mpu4vid_state, 0, ROT0, "BwB","Time Bandit (Bwb) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?,v4sixx, 0, bwbvid, mpu4, mpu4vid_state, 0, ROT0, "BwB","6-X (Bwb) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?,v4megbuk, 0, bwbvid, mpu4, mpu4vid_state, 0, ROT0, "BwB","Megabucks Poker (Bwb) (MPU4 Video)",GAME_FLAGS ) // no video roms! +GAME( 199?,v4rencas, 0, bwbvid, mpu4, mpu4vid_state, 0, ROT0, "BwB","Reno Casino (Bwb) (MPU4 Video)",GAME_FLAGS ) // no video roms! /* Uncertain BIOS */ @@ -3685,6 +3685,6 @@ GAME( 199?,v4frfact, v4bios, crmaze, crmaze, mpu4vid_state, crma /* Nova - is this the same video board? One of the games displays 'Resetting' but the others do nothing interesting and access strange addresses */ /* All contain BwB video in the BIOS rom tho */ GAME( 199?,v4cybcas, 0, bwbvid5, mpu4, mpu4vid_state, cybcas, ROT0, "Nova","Cyber Casino (Nova) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?,v4miami, 0, bwbvid5, mpu4, driver_device, 0, ROT0, "Nova","Miami Dice (Nova) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?,v4missis, 0, bwbvid5, mpu4, driver_device, 0, ROT0, "Nova","Mississippi Lady (Nova) (MPU4 Video)",GAME_FLAGS ) -GAME( 199?,v4picdil, 0, bwbvid5, mpu4, driver_device, 0, ROT0, "Nova","Piccadilly Nights (Nova) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?,v4miami, 0, bwbvid5, mpu4, mpu4vid_state, 0, ROT0, "Nova","Miami Dice (Nova) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?,v4missis, 0, bwbvid5, mpu4, mpu4vid_state, 0, ROT0, "Nova","Mississippi Lady (Nova) (MPU4 Video)",GAME_FLAGS ) +GAME( 199?,v4picdil, 0, bwbvid5, mpu4, mpu4vid_state, 0, ROT0, "Nova","Piccadilly Nights (Nova) (MPU4 Video)",GAME_FLAGS ) diff --git a/src/mame/drivers/mpu5.cpp b/src/mame/drivers/mpu5.cpp index af1e49b57e4..dc67b2839a7 100644 --- a/src/mame/drivers/mpu5.cpp +++ b/src/mame/drivers/mpu5.cpp @@ -235,7 +235,7 @@ public: protected: // devices - required_device m_maincpu; + required_device m_maincpu; virtual void machine_start() override; }; @@ -541,7 +541,7 @@ void mpu5_state::machine_start() } -MACHINE_CONFIG_START( mpu5, mpu5_state ) +MACHINE_CONFIG_START( mpu5 ) MCFG_CPU_ADD("maincpu", M68340, 16000000) // ? MCFG_CPU_PROGRAM_MAP(mpu5_map) diff --git a/src/mame/drivers/mpu5.hxx b/src/mame/drivers/mpu5.hxx index 74997f208f4..745c5f7907e 100644 --- a/src/mame/drivers/mpu5.hxx +++ b/src/mame/drivers/mpu5.hxx @@ -7189,937 +7189,937 @@ ROM_END /* Barcrest */ -GAME( 199?, m5clr ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","MPU 5 Ram & Meter Clear (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5tst ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","MPU 5 Test Rom (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5clr ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","MPU 5 Ram & Meter Clear (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5tst ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","MPU 5 Test Rom (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAMEL( 199?, m5addams ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Addams Family (Barcrest) (MPU5) (v0.5, set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5addams ) -GAMEL( 199?, m5addamsa ,m5addams, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Addams Family (Barcrest) (MPU5) (v0.5, set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5addams ) -GAMEL( 199?, m5addamsb ,m5addams, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Addams Family (Barcrest) (MPU5) (v0.5, set 3)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5addams ) -GAMEL( 199?, m5addamsc ,m5addams, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Addams Family (Barcrest) (MPU5) (v0.5, set 4)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5addams ) -GAMEL( 199?, m5addamsd ,m5addams, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Addams Family (Barcrest) (MPU5) (v0.5, set 5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5addams ) -GAMEL( 199?, m5addamse ,m5addams, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Addams Family (Barcrest) (MPU5) (v0.5, set 6)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5addams ) -GAMEL( 199?, m5addamsf ,m5addams, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Addams Family (Barcrest) (MPU5) (v0.5, set 7)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5addams ) -GAMEL( 199?, m5addamsg ,m5addams, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Addams Family (Barcrest) (MPU5) (v0.5, set 8)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5addams ) -GAMEL( 199?, m5addamsh ,m5addams, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Addams Family (Barcrest) (MPU5) (v0.2, set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5addams ) -GAMEL( 199?, m5addamsi ,m5addams, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Addams Family (Barcrest) (MPU5) (v0.2, set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5addams ) -GAMEL( 199?, m5addamsj ,m5addams, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Addams Family (Barcrest) (MPU5) (v0.2, set 3)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5addams ) -GAMEL( 199?, m5addamsk ,m5addams, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Addams Family (Barcrest) (MPU5) (v0.3, set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5addams ) -GAMEL( 199?, m5addamsl ,m5addams, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Addams Family (Barcrest) (MPU5) (v0.3, set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5addams ) -GAMEL( 199?, m5addamsm ,m5addams, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Addams Family (Barcrest) (MPU5) (v0.3, set 3)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5addams ) -GAMEL( 199?, m5addamsn ,m5addams, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Addams Family (Barcrest) (MPU5) (v0.3, set 4)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5addams ) -GAMEL( 199?, m5addamso ,m5addams, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Addams Family (Barcrest) (MPU5) (v0.3, set 5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5addams ) -GAMEL( 199?, m5addamsp ,m5addams, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Addams Family (Barcrest) (MPU5) (v0.3, set 6)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5addams ) -GAMEL( 199?, m5addamsq ,m5addams, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Addams Family (Barcrest) (MPU5) (v0.3, set 7)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5addams ) -GAMEL( 199?, m5addamsr ,m5addams, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Addams Family (Barcrest) (MPU5) (v0.3, set 8)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5addams ) -GAMEL( 199?, m5addamss ,m5addams, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Addams Family (Barcrest) (MPU5) (v0.3, set 9)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5addams ) +GAMEL( 199?, m5addams ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Addams Family (Barcrest) (MPU5) (v0.5, set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5addams ) +GAMEL( 199?, m5addamsa ,m5addams, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Addams Family (Barcrest) (MPU5) (v0.5, set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5addams ) +GAMEL( 199?, m5addamsb ,m5addams, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Addams Family (Barcrest) (MPU5) (v0.5, set 3)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5addams ) +GAMEL( 199?, m5addamsc ,m5addams, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Addams Family (Barcrest) (MPU5) (v0.5, set 4)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5addams ) +GAMEL( 199?, m5addamsd ,m5addams, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Addams Family (Barcrest) (MPU5) (v0.5, set 5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5addams ) +GAMEL( 199?, m5addamse ,m5addams, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Addams Family (Barcrest) (MPU5) (v0.5, set 6)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5addams ) +GAMEL( 199?, m5addamsf ,m5addams, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Addams Family (Barcrest) (MPU5) (v0.5, set 7)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5addams ) +GAMEL( 199?, m5addamsg ,m5addams, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Addams Family (Barcrest) (MPU5) (v0.5, set 8)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5addams ) +GAMEL( 199?, m5addamsh ,m5addams, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Addams Family (Barcrest) (MPU5) (v0.2, set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5addams ) +GAMEL( 199?, m5addamsi ,m5addams, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Addams Family (Barcrest) (MPU5) (v0.2, set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5addams ) +GAMEL( 199?, m5addamsj ,m5addams, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Addams Family (Barcrest) (MPU5) (v0.2, set 3)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5addams ) +GAMEL( 199?, m5addamsk ,m5addams, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Addams Family (Barcrest) (MPU5) (v0.3, set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5addams ) +GAMEL( 199?, m5addamsl ,m5addams, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Addams Family (Barcrest) (MPU5) (v0.3, set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5addams ) +GAMEL( 199?, m5addamsm ,m5addams, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Addams Family (Barcrest) (MPU5) (v0.3, set 3)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5addams ) +GAMEL( 199?, m5addamsn ,m5addams, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Addams Family (Barcrest) (MPU5) (v0.3, set 4)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5addams ) +GAMEL( 199?, m5addamso ,m5addams, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Addams Family (Barcrest) (MPU5) (v0.3, set 5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5addams ) +GAMEL( 199?, m5addamsp ,m5addams, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Addams Family (Barcrest) (MPU5) (v0.3, set 6)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5addams ) +GAMEL( 199?, m5addamsq ,m5addams, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Addams Family (Barcrest) (MPU5) (v0.3, set 7)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5addams ) +GAMEL( 199?, m5addamsr ,m5addams, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Addams Family (Barcrest) (MPU5) (v0.3, set 8)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5addams ) +GAMEL( 199?, m5addamss ,m5addams, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Addams Family (Barcrest) (MPU5) (v0.3, set 9)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5addams ) -GAME( 199?, m5addlad ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Adders & Ladders (Barcrest) (MPU5, v0.6, set 1)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5addlada ,m5addlad, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Adders & Ladders (Barcrest) (MPU5, v0.6, set 2)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5addladb ,m5addlad, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Adders & Ladders (Barcrest) (MPU5, v0.6, set 3)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5addladc ,m5addlad, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Adders & Ladders (Barcrest) (MPU5, v0.6, set 4)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5addladd ,m5addlad, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Adders & Ladders (Barcrest) (MPU5, v0.6, set 5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5addlade ,m5addlad, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Adders & Ladders (Barcrest) (MPU5, v0.6, set 6)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5addladf ,m5addlad, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Adders & Ladders (Barcrest) (MPU5, v0.6, set 7)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5addladg ,m5addlad, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Adders & Ladders (Barcrest) (MPU5, v0.6, set 8)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5addladh ,m5addlad, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Adders & Ladders (Barcrest) (MPU5, v0.6, set 9)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5addladi ,m5addlad, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Adders & Ladders (Barcrest) (MPU5, v0.6, set 10)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5addladj ,m5addlad, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Adders & Ladders (Barcrest) (MPU5, v0.1, set 1)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5addladk ,m5addlad, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Adders & Ladders (Barcrest) (MPU5, v0.1, set 2)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5addladl ,m5addlad, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Adders & Ladders (Barcrest) (MPU5, v0.1, set 3)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5addladm ,m5addlad, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Adders & Ladders (Barcrest) (MPU5, v0.1, set 4)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5addladn ,m5addlad, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Adders & Ladders (Barcrest) (MPU5, v0.1, set 5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5addlado ,m5addlad, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Adders & Ladders (Barcrest) (MPU5, v0.1, set 6)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5addladp ,m5addlad, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Adders & Ladders (Barcrest) (MPU5, v0.1, set 7)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5addladq ,m5addlad, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Adders & Ladders (Barcrest) (MPU5, v0.4, set 1)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5addladr ,m5addlad, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Adders & Ladders (Barcrest) (MPU5, v0.4, set 2)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5addlads ,m5addlad, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Adders & Ladders (Barcrest) (MPU5, v?.?)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5addlad ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Adders & Ladders (Barcrest) (MPU5, v0.6, set 1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5addlada ,m5addlad, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Adders & Ladders (Barcrest) (MPU5, v0.6, set 2)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5addladb ,m5addlad, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Adders & Ladders (Barcrest) (MPU5, v0.6, set 3)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5addladc ,m5addlad, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Adders & Ladders (Barcrest) (MPU5, v0.6, set 4)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5addladd ,m5addlad, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Adders & Ladders (Barcrest) (MPU5, v0.6, set 5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5addlade ,m5addlad, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Adders & Ladders (Barcrest) (MPU5, v0.6, set 6)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5addladf ,m5addlad, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Adders & Ladders (Barcrest) (MPU5, v0.6, set 7)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5addladg ,m5addlad, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Adders & Ladders (Barcrest) (MPU5, v0.6, set 8)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5addladh ,m5addlad, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Adders & Ladders (Barcrest) (MPU5, v0.6, set 9)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5addladi ,m5addlad, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Adders & Ladders (Barcrest) (MPU5, v0.6, set 10)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5addladj ,m5addlad, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Adders & Ladders (Barcrest) (MPU5, v0.1, set 1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5addladk ,m5addlad, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Adders & Ladders (Barcrest) (MPU5, v0.1, set 2)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5addladl ,m5addlad, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Adders & Ladders (Barcrest) (MPU5, v0.1, set 3)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5addladm ,m5addlad, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Adders & Ladders (Barcrest) (MPU5, v0.1, set 4)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5addladn ,m5addlad, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Adders & Ladders (Barcrest) (MPU5, v0.1, set 5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5addlado ,m5addlad, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Adders & Ladders (Barcrest) (MPU5, v0.1, set 6)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5addladp ,m5addlad, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Adders & Ladders (Barcrest) (MPU5, v0.1, set 7)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5addladq ,m5addlad, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Adders & Ladders (Barcrest) (MPU5, v0.4, set 1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5addladr ,m5addlad, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Adders & Ladders (Barcrest) (MPU5, v0.4, set 2)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5addlads ,m5addlad, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Adders & Ladders (Barcrest) (MPU5, v?.?)", MACHINE_IS_SKELETON_MECHANICAL ) -GAMEL( 199?, m5fire ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","All Fired Up (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5fire ) +GAMEL( 199?, m5fire ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","All Fired Up (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5fire ) -GAMEL( 199?, m5arab ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Arabian Nights (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5arab ) -GAMEL( 199?, m5arab03 ,m5arab, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Arabian Nights (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5arab ) +GAMEL( 199?, m5arab ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Arabian Nights (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5arab ) +GAMEL( 199?, m5arab03 ,m5arab, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Arabian Nights (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5arab ) -GAMEL( 199?, m5austin ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Austin Powers (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5austin11 ) -GAMEL( 199?, m5austin10 ,m5austin, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Austin Powers (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5austin11 ) -GAMEL( 199?, m5austin11 ,m5austin, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Austin Powers (Barcrest) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5austin11 ) +GAMEL( 199?, m5austin ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Austin Powers (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5austin11 ) +GAMEL( 199?, m5austin10 ,m5austin, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Austin Powers (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5austin11 ) +GAMEL( 199?, m5austin11 ,m5austin, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Austin Powers (Barcrest) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5austin11 ) -GAME( 199?, m5bankrl ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","The Bank Roll (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5bankrl ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","The Bank Roll (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAMEL( 199?, m5barkng ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Barking Mad (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5barkng ) +GAMEL( 199?, m5barkng ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Barking Mad (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5barkng ) -GAMEL( 199?, m5barmy ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Barmy Army (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5barmy ) +GAMEL( 199?, m5barmy ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Barmy Army (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5barmy ) -GAMEL( 199?, m5baxe ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Battle Axe (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5baxe04 ) -GAMEL( 199?, m5baxe04 ,m5baxe, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Battle Axe (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5baxe04 ) +GAMEL( 199?, m5baxe ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Battle Axe (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5baxe04 ) +GAMEL( 199?, m5baxe04 ,m5baxe, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Battle Axe (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5baxe04 ) -GAMEL( 199?, m5bbro ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Big Brother (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5bbro ) -GAMEL( 199?, m5bbro02 ,m5bbro, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Big Brother (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5bbro ) +GAMEL( 199?, m5bbro ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Big Brother (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5bbro ) +GAMEL( 199?, m5bbro02 ,m5bbro, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Big Brother (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5bbro ) -GAMEL( 199?, m5bbrocl ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Big Brother Club (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5bbrocl ) +GAMEL( 199?, m5bbrocl ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Big Brother Club (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5bbrocl ) -GAMEL( 199?, m5bigchs ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","The Big Cheese (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5bigchs ) -GAMEL( 199?, m5bigchs05 ,m5bigchs, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","The Big Cheese (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5bigchs ) +GAMEL( 199?, m5bigchs ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","The Big Cheese (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5bigchs ) +GAMEL( 199?, m5bigchs05 ,m5bigchs, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","The Big Cheese (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5bigchs ) -GAMEL( 199?, m5biggam ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","The Big Game (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5biggam ) -GAMEL( 199?, m5biggam11 ,m5biggam, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","The Big Game (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5biggam ) +GAMEL( 199?, m5biggam ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","The Big Game (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5biggam ) +GAMEL( 199?, m5biggam11 ,m5biggam, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","The Big Game (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5biggam ) -GAMEL( 199?, m5blkwht ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Black & White (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5blkwht11 ) -GAMEL( 199?, m5blkwht11 ,m5blkwht, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Black & White (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5blkwht11 ) -GAMEL( 199?, m5blkwht01 ,m5blkwht, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Black & White (Barcrest) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5blkwht11 ) +GAMEL( 199?, m5blkwht ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Black & White (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5blkwht11 ) +GAMEL( 199?, m5blkwht11 ,m5blkwht, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Black & White (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5blkwht11 ) +GAMEL( 199?, m5blkwht01 ,m5blkwht, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Black & White (Barcrest) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5blkwht11 ) -GAMEL( 199?, m5bwaves ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Brain Waves (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5bwaves ) -GAMEL( 199?, m5bwaves07 ,m5bwaves, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Brain Waves (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5bwaves ) +GAMEL( 199?, m5bwaves ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Brain Waves (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5bwaves ) +GAMEL( 199?, m5bwaves07 ,m5bwaves, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Brain Waves (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5bwaves ) -GAMEL( 199?, m5bling ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Bling King Crazy (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5bling ) +GAMEL( 199?, m5bling ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Bling King Crazy (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5bling ) -GAMEL( 199?, m5cbw ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Ca$h Bang Wallop (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5cbw ) -GAMEL( 199?, m5cbwa ,m5cbw, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Ca$h Bang Wallop (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5cbw ) +GAMEL( 199?, m5cbw ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Ca$h Bang Wallop (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5cbw ) +GAMEL( 199?, m5cbwa ,m5cbw, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Ca$h Bang Wallop (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5cbw ) -GAME( 199?, m5cpcash ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Captain Cash (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5cpcash ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Captain Cash (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5carclb ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Caribbean Club (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5carclb ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Caribbean Club (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5cashar ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Cash Arena (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5cashar04 ,m5cashar, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Cash Arena (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5cashar ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Cash Arena (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5cashar04 ,m5cashar, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Cash Arena (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) -GAMEL( 199?, m5cashat ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Cash Attack (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5cashat ) +GAMEL( 199?, m5cashat ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Cash Attack (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5cashat ) -GAME( 199?, m5cashln ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Cash Lines (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5cashln ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Cash Lines (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAMEL( 199?, m5cashrn ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Cash Run (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5cashrn ) -GAMEL( 199?, m5cashrn01 ,m5cashrn, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Cash Run (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5cashrn ) -GAMEL( 199?, m5cashrn02 ,m5cashrn, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Cash Run (Barcrest) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5cashrn ) -GAMEL( 199?, m5cashrn04 ,m5cashrn, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Cash Run (Barcrest) (MPU5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5cashrn ) +GAMEL( 199?, m5cashrn ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Cash Run (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5cashrn ) +GAMEL( 199?, m5cashrn01 ,m5cashrn, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Cash Run (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5cashrn ) +GAMEL( 199?, m5cashrn02 ,m5cashrn, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Cash Run (Barcrest) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5cashrn ) +GAMEL( 199?, m5cashrn04 ,m5cashrn, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Cash Run (Barcrest) (MPU5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5cashrn ) -GAMEL( 199?, m5codft ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","The Codfather (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5codft ) -GAMEL( 199?, m5codft02 ,m5codft, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","The Codfather (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5codft ) +GAMEL( 199?, m5codft ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","The Codfather (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5codft ) +GAMEL( 199?, m5codft02 ,m5codft, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","The Codfather (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5codft ) -GAME( 199?, m5cos ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Costa Del Cash Casino (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5cos ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Costa Del Cash Casino (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAMEL( 199?, m5cosclb ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Costa Del Cash Club (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5cosclb ) +GAMEL( 199?, m5cosclb ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Costa Del Cash Club (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5cosclb ) -GAMEL( 199?, m5crzkni ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Crazy Crazy Knights (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5crzkni ) -GAMEL( 199?, m5crzkni03 ,m5crzkni, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Crazy Crazy Knights (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5crzkni ) +GAMEL( 199?, m5crzkni ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Crazy Crazy Knights (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5crzkni ) +GAMEL( 199?, m5crzkni03 ,m5crzkni, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Crazy Crazy Knights (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5crzkni ) -GAMEL( 199?, m5doshpk ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Do$h 'n' Pecks (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5doshpk05 ) -GAMEL( 199?, m5doshpk05 ,m5doshpk, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Do$h 'n' Pecks (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5doshpk05 ) +GAMEL( 199?, m5doshpk ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Do$h 'n' Pecks (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5doshpk05 ) +GAMEL( 199?, m5doshpk05 ,m5doshpk, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Do$h 'n' Pecks (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5doshpk05 ) -GAME( 199?, m5draclb ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Ooh Aah Dracula Club (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5draclb07 ,m5draclb, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Ooh Aah Dracula Club (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5draclb01 ,m5draclb, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Ooh Aah Dracula Club (Barcrest) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5draclb ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Ooh Aah Dracula Club (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5draclb07 ,m5draclb, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Ooh Aah Dracula Club (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5draclb01 ,m5draclb, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Ooh Aah Dracula Club (Barcrest) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL ) -GAMEL( 199?, m5ewn ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Each Way Nudge (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5ewn ) -GAMEL( 199?, m5ewn08 ,m5ewn, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Each Way Nudge (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5ewn ) +GAMEL( 199?, m5ewn ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Each Way Nudge (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5ewn ) +GAMEL( 199?, m5ewn08 ,m5ewn, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Each Way Nudge (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5ewn ) -GAMEL( 199?, m5elim ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Eliminator (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5elim ) -GAMEL( 199?, m5elim03 ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Eliminator (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5elim ) -GAMEL( 199?, m5elim04 ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Eliminator (Barcrest) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5elim ) +GAMEL( 199?, m5elim ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Eliminator (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5elim ) +GAMEL( 199?, m5elim03 ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Eliminator (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5elim ) +GAMEL( 199?, m5elim04 ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Eliminator (Barcrest) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5elim ) -GAMEL( 199?, m5egr ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Elvis Gold Rush (Barcrest) (MPU5, set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5egr ) -GAMEL( 199?, m5egra ,m5egr, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Elvis Gold Rush (Barcrest) (MPU5, set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5egr ) +GAMEL( 199?, m5egr ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Elvis Gold Rush (Barcrest) (MPU5, set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5egr ) +GAMEL( 199?, m5egra ,m5egr, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Elvis Gold Rush (Barcrest) (MPU5, set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5egr ) -GAME( 199?, m5egss ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Elvis Gold Super Streak (Barcrest) (MPU5, set 1)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5egssa ,m5egss, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Elvis Gold Super Streak (Barcrest) (MPU5, set 2)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5egss ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Elvis Gold Super Streak (Barcrest) (MPU5, set 1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5egssa ,m5egss, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Elvis Gold Super Streak (Barcrest) (MPU5, set 2)", MACHINE_IS_SKELETON_MECHANICAL ) -GAMEL( 199?, m5evgrhr ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Elvis Gold Red Hot Roll (Barcrest) (MPU5, set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5evgrhr ) -GAMEL( 199?, m5evgrhra ,m5evgrhr, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Elvis Gold Red Hot Roll (Barcrest) (MPU5, set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5evgrhr ) +GAMEL( 199?, m5evgrhr ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Elvis Gold Red Hot Roll (Barcrest) (MPU5, set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5evgrhr ) +GAMEL( 199?, m5evgrhra ,m5evgrhr, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Elvis Gold Red Hot Roll (Barcrest) (MPU5, set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5evgrhr ) -GAMEL( 199?, m5xchn ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Exchanges Unlimited (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5xchn ) +GAMEL( 199?, m5xchn ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Exchanges Unlimited (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5xchn ) -GAMEL( 199?, m5firebl ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Fireball (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5firebl ) +GAMEL( 199?, m5firebl ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Fireball (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5firebl ) -GAMEL( 199?, m5flipcr ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Flippin Crazy (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5flipcr ) +GAMEL( 199?, m5flipcr ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Flippin Crazy (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5flipcr ) -GAMEL( 199?, m5fortby ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Fort Boyard (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5fortby ) -GAMEL( 199?, m5fortby01 ,m5fortby, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Fort Boyard (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5fortby ) +GAMEL( 199?, m5fortby ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Fort Boyard (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5fortby ) +GAMEL( 199?, m5fortby01 ,m5fortby, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Fort Boyard (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5fortby ) -GAMEL( 199?, m5frnzy ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Frenzy (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5frnzy ) -GAMEL( 199?, m5frnzya ,m5frnzy, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Frenzy (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5frnzy ) +GAMEL( 199?, m5frnzy ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Frenzy (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5frnzy ) +GAMEL( 199?, m5frnzya ,m5frnzy, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Frenzy (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5frnzy ) -GAMEL( 199?, m5beans ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Full Of Beans (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5beansa ) -GAMEL( 199?, m5beansa ,m5beans, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Full Of Beans (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5beansa ) +GAMEL( 199?, m5beans ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Full Of Beans (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5beansa ) +GAMEL( 199?, m5beansa ,m5beans, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Full Of Beans (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5beansa ) -GAMEL( 199?, m5funsun ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Fun In The Sun (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5funsun ) -GAMEL( 199?, m5funsun03 ,m5funsun, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Fun In The Sun (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5funsun ) +GAMEL( 199?, m5funsun ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Fun In The Sun (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5funsun ) +GAMEL( 199?, m5funsun03 ,m5funsun, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Fun In The Sun (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5funsun ) -GAMEL( 199?, m5gimmie ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Gimmie Gimmie Gimmie (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5gimmie ) +GAMEL( 199?, m5gimmie ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Gimmie Gimmie Gimmie (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5gimmie ) -GAMEL( 199?, m5grush ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Gold Rush (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5grush ) -GAMEL( 199?, m5grush10 ,m5grush, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Gold Rush (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5grush ) -GAMEL( 199?, m5grush04 ,m5grush, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Gold Rush (Barcrest) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5grush ) -GAMEL( 199?, m5grush03 ,m5grush, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Gold Rush (Barcrest) (MPU5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5grush ) -GAMEL( 199?, m5grush02 ,m5grush, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Gold Rush (Barcrest) (MPU5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5grush ) -GAMEL( 199?, m5grush01 ,m5grush, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Gold Rush (Barcrest) (MPU5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5grush ) +GAMEL( 199?, m5grush ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Gold Rush (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5grush ) +GAMEL( 199?, m5grush10 ,m5grush, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Gold Rush (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5grush ) +GAMEL( 199?, m5grush04 ,m5grush, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Gold Rush (Barcrest) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5grush ) +GAMEL( 199?, m5grush03 ,m5grush, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Gold Rush (Barcrest) (MPU5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5grush ) +GAMEL( 199?, m5grush02 ,m5grush, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Gold Rush (Barcrest) (MPU5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5grush ) +GAMEL( 199?, m5grush01 ,m5grush, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Gold Rush (Barcrest) (MPU5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5grush ) -GAMEL( 199?, m5grush5 ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Gold Rush Five Liner (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5grush5 ) -GAMEL( 199?, m5grush504 ,m5grush5, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Gold Rush Five Liner (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5grush5 ) +GAMEL( 199?, m5grush5 ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Gold Rush Five Liner (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5grush5 ) +GAMEL( 199?, m5grush504 ,m5grush5, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Gold Rush Five Liner (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5grush5 ) -GAME( 199?, m5gruss ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Gold Rush Sit Down (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5gruss ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Gold Rush Sit Down (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5grusst ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Gold Rush Stampede (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5grusst04 ,m5grusst, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Gold Rush Stampede (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5grusst03 ,m5grusst, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Gold Rush Stampede (Barcrest) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5grusst ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Gold Rush Stampede (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5grusst04 ,m5grusst, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Gold Rush Stampede (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5grusst03 ,m5grusst, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Gold Rush Stampede (Barcrest) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL ) -GAMEL( 199?, m5gstrik ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Gold Strike (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5gstrik ) -GAMEL( 199?, m5gstrik11 ,m5gstrik, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Gold Strike (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5gstrik ) -GAMEL( 199?, m5gstrik02 ,m5gstrik, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Gold Strike (Barcrest) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5gstrik ) -GAMEL( 199?, m5gstrik01 ,m5gstrik, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Gold Strike (Barcrest) (MPU5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5gstrik ) -GAMEL( 199?, m5gstrik01a ,m5gstrik, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Gold Strike (Barcrest) (MPU5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5gstrik ) -GAMEL( 199?, m5gstrika ,m5gstrik, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Gold Strike (Barcrest) (MPU5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5gstrik ) +GAMEL( 199?, m5gstrik ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Gold Strike (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5gstrik ) +GAMEL( 199?, m5gstrik11 ,m5gstrik, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Gold Strike (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5gstrik ) +GAMEL( 199?, m5gstrik02 ,m5gstrik, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Gold Strike (Barcrest) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5gstrik ) +GAMEL( 199?, m5gstrik01 ,m5gstrik, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Gold Strike (Barcrest) (MPU5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5gstrik ) +GAMEL( 199?, m5gstrik01a ,m5gstrik, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Gold Strike (Barcrest) (MPU5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5gstrik ) +GAMEL( 199?, m5gstrika ,m5gstrik, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Gold Strike (Barcrest) (MPU5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5gstrik ) -GAMEL( 199?, m5gsstrk ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Gold Super Streak (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5gsstrk07 ) -GAMEL( 199?, m5gsstrk07 ,m5gsstrk, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Gold Super Streak (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5gsstrk07 ) +GAMEL( 199?, m5gsstrk ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Gold Super Streak (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5gsstrk07 ) +GAMEL( 199?, m5gsstrk07 ,m5gsstrk, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Gold Super Streak (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5gsstrk07 ) -GAMEL( 199?, m5gdrag ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Golden Dragon (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5gdrag ) +GAMEL( 199?, m5gdrag ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Golden Dragon (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5gdrag ) -GAME( 199?, m5gdrgcl ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Golden Dragon Club (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5gdrgcl05 ,m5gdrgcl, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Golden Dragon Club (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5gdrgcl ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Golden Dragon Club (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5gdrgcl05 ,m5gdrgcl, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Golden Dragon Club (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5gkeys ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Golden Keys (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5gkeys ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Golden Keys (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAMEL( 199?, m5hellrz ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Hellraiser (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5hellrz ) +GAMEL( 199?, m5hellrz ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Hellraiser (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5hellrz ) -GAMEL( 199?, m5hlsumo ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Hi Lo Sumo (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5hlsumo ) +GAMEL( 199?, m5hlsumo ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Hi Lo Sumo (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5hlsumo ) -GAMEL( 199?, m5hifly ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","High Flyer (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5hifly ) -GAMEL( 199?, m5hifly03 ,m5hifly, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","High Flyer (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5hifly ) -GAMEL( 199?, m5hifly04 ,m5hifly, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","High Flyer (Barcrest) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5hifly ) +GAMEL( 199?, m5hifly ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","High Flyer (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5hifly ) +GAMEL( 199?, m5hifly03 ,m5hifly, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","High Flyer (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5hifly ) +GAMEL( 199?, m5hifly04 ,m5hifly, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","High Flyer (Barcrest) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5hifly ) -GAMEL( 199?, m5holy ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","The Holy Grail (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5holy ) -GAMEL( 199?, m5holy10 ,m5holy, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","The Holy Grail (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5holy ) +GAMEL( 199?, m5holy ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","The Holy Grail (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5holy ) +GAMEL( 199?, m5holy10 ,m5holy, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","The Holy Grail (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5holy ) -GAMEL( 199?, m5hotslt ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Hot Slot (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5hotslt ) +GAMEL( 199?, m5hotslt ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Hot Slot (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5hotslt ) -GAMEL( 199?, m5hotstf ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Hot Stuff (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5hotstf ) +GAMEL( 199?, m5hotstf ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Hot Stuff (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5hotstf ) -GAMEL( 199?, m5hypvip ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Hyper Viper (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5hypvip ) +GAMEL( 199?, m5hypvip ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Hyper Viper (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5hypvip ) -GAMEL( 199?, m5jackpt ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Jackpoteers (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5jackpt ) -GAMEL( 199?, m5jackpt07 ,m5jackpt, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Jackpoteers (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5jackpt ) +GAMEL( 199?, m5jackpt ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Jackpoteers (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5jackpt ) +GAMEL( 199?, m5jackpt07 ,m5jackpt, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Jackpoteers (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5jackpt ) -GAMEL( 199?, m5jackp2 ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Jackpoteers 2 (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5jackp2 ) -GAMEL( 199?, m5jackp2a ,m5jackp2, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Jackpoteers 2 (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5jackp2 ) +GAMEL( 199?, m5jackp2 ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Jackpoteers 2 (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5jackp2 ) +GAMEL( 199?, m5jackp2a ,m5jackp2, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Jackpoteers 2 (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5jackp2 ) -GAMEL( 199?, m5jlyjwl ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Jolly Jewels (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5jlyjwl ) -GAMEL( 199?, m5jlyjwl01 ,m5jlyjwl, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Jolly Jewels (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5jlyjwl ) -GAMEL( 199?, m5jlyjwl02 ,m5jlyjwl, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Jolly Jewels (Barcrest) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5jlyjwl ) +GAMEL( 199?, m5jlyjwl ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Jolly Jewels (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5jlyjwl ) +GAMEL( 199?, m5jlyjwl01 ,m5jlyjwl, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Jolly Jewels (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5jlyjwl ) +GAMEL( 199?, m5jlyjwl02 ,m5jlyjwl, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Jolly Jewels (Barcrest) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5jlyjwl ) -GAME( 199?, m5jlyrog ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Jolly Roger (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5jlyroga ,m5jlyrog, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Jolly Roger (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5jlyrog ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Jolly Roger (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5jlyroga ,m5jlyrog, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Jolly Roger (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) -GAMEL( 199?, m5kkebab ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","King Kebab (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5kkebab ) -GAMEL( 199?, m5kkebab10 ,m5kkebab, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","King Kebab (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5kkebab ) -GAMEL( 199?, m5kkebaba ,m5kkebab, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","King Kebab (Barcrest) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5kkebab ) +GAMEL( 199?, m5kkebab ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","King Kebab (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5kkebab ) +GAMEL( 199?, m5kkebab10 ,m5kkebab, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","King Kebab (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5kkebab ) +GAMEL( 199?, m5kkebaba ,m5kkebab, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","King Kebab (Barcrest) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5kkebab ) -GAME( 199?, m5kingko ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","King KO (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5kingko04 ,m5kingko, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","King KO (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5kingko05 ,m5kingko, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","King KO (Barcrest) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5kingko ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","King KO (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5kingko04 ,m5kingko, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","King KO (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5kingko05 ,m5kingko, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","King KO (Barcrest) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL ) -GAMEL( 199?, m5lotta ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Lotta Luck (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5lotta ) +GAMEL( 199?, m5lotta ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Lotta Luck (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5lotta ) -GAMEL( 199?, m5mega ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Mega Zone (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5mega ) +GAMEL( 199?, m5mega ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Mega Zone (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5mega ) -GAMEL( 199?, m5martns ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Money Mad Martians (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5martns07 ) -GAMEL( 199?, m5martns07 ,m5martns, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Money Mad Martians (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5martns07 ) +GAMEL( 199?, m5martns ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Money Mad Martians (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5martns07 ) +GAMEL( 199?, m5martns07 ,m5martns, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Money Mad Martians (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5martns07 ) -GAMEL( 199?, m5mmak ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Money Maker (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5mmak06 ) -GAMEL( 199?, m5mmak06 ,m5mmak, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Money Maker (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5mmak06 ) +GAMEL( 199?, m5mmak ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Money Maker (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5mmak06 ) +GAMEL( 199?, m5mmak06 ,m5mmak, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Money Maker (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5mmak06 ) -GAME( 199?, m5monjok ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Monedin Joker (Spanish) (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5monjoka ,m5monjok, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Monedin Joker (Spanish) (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5monjok ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Monedin Joker (Spanish) (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5monjoka ,m5monjok, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Monedin Joker (Spanish) (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5monty ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Monty Python (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5monty ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Monty Python (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAMEL( 199?, m5mprio ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Monty Python Rio (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5mprio ) +GAMEL( 199?, m5mprio ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Monty Python Rio (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5mprio ) -GAMEL( 199?, m5mpfc ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Monty Python's Flying Circus (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5mpfc ) +GAMEL( 199?, m5mpfc ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Monty Python's Flying Circus (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5mpfc ) -GAME( 199?, m5mpfccl ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Monty Python's Flying Circus Club (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5mpfccl ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Monty Python's Flying Circus Club (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAMEL( 199?, m5neptun ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Neptunes Treasure (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5neptun ) +GAMEL( 199?, m5neptun ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Neptunes Treasure (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5neptun ) -GAMEL( 199?, m5nnww ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Nudge Nudge Wink Wink (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5nnww ) +GAMEL( 199?, m5nnww ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Nudge Nudge Wink Wink (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5nnww ) -GAME( 199?, m5nnwwgl ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Nudge Nudge Wink Wink Gold (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5nnwwgl ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Nudge Nudge Wink Wink Gold (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAMEL( 199?, m5fiddle ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","On The Fiddle (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5fiddle ) -GAMEL( 199?, m5fiddle03 ,m5fiddle, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","On The Fiddle (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5fiddle ) +GAMEL( 199?, m5fiddle ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","On The Fiddle (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5fiddle ) +GAMEL( 199?, m5fiddle03 ,m5fiddle, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","On The Fiddle (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5fiddle ) -GAMEL( 199?, m5oohaah ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Ooh Aah Dracula (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5oohaah ) -GAMEL( 199?, m5oohaah01 ,m5oohaah, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Ooh Aah Dracula (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5oohaah ) +GAMEL( 199?, m5oohaah ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Ooh Aah Dracula (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5oohaah ) +GAMEL( 199?, m5oohaah01 ,m5oohaah, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Ooh Aah Dracula (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5oohaah ) -GAMEL( 199?, m5oohrio ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Ooh Ahh Dracula Rio (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5oohrio ) +GAMEL( 199?, m5oohrio ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Ooh Ahh Dracula Rio (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5oohrio ) -GAMEL( 199?, m5openbx ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Open The Box (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5openbx05 ) -GAMEL( 199?, m5openbx06 ,m5openbx, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Open The Box (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5openbx05 ) -GAMEL( 199?, m5openbx05 ,m5openbx, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Open The Box (Barcrest) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5openbx05 ) -GAMEL( 199?, m5openbx01 ,m5openbx, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Open The Box (Barcrest) (MPU5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5openbx05 ) +GAMEL( 199?, m5openbx ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Open The Box (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5openbx05 ) +GAMEL( 199?, m5openbx06 ,m5openbx, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Open The Box (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5openbx05 ) +GAMEL( 199?, m5openbx05 ,m5openbx, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Open The Box (Barcrest) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5openbx05 ) +GAMEL( 199?, m5openbx01 ,m5openbx, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Open The Box (Barcrest) (MPU5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5openbx05 ) -GAMEL( 199?, m5overld ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Overload (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5overld ) -GAMEL( 199?, m5overld02 ,m5overld, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Overload (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5overld ) -GAMEL( 199?, m5overld10 ,m5overld, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Overload (Barcrest) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5overld ) -GAMEL( 199?, m5overld11 ,m5overld, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Overload (Barcrest) (MPU5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5overld ) +GAMEL( 199?, m5overld ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Overload (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5overld ) +GAMEL( 199?, m5overld02 ,m5overld, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Overload (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5overld ) +GAMEL( 199?, m5overld10 ,m5overld, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Overload (Barcrest) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5overld ) +GAMEL( 199?, m5overld11 ,m5overld, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Overload (Barcrest) (MPU5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5overld ) -GAMEL( 199?, m5ptyani ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Party Animal (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5ptyani ) -GAMEL( 199?, m5ptyani01 ,m5ptyani, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Party Animal (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5ptyani ) +GAMEL( 199?, m5ptyani ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Party Animal (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5ptyani ) +GAMEL( 199?, m5ptyani01 ,m5ptyani, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Party Animal (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5ptyani ) -GAMEL( 199?, m5peepsh ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Peep Show (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5peepsh ) +GAMEL( 199?, m5peepsh ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Peep Show (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5peepsh ) -GAME( 199?, m5psy2 ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Psycho Cash Beast 2 (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5psy2 ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Psycho Cash Beast 2 (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAMEL( 199?, m5qshot ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Quack Shot (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5qshot04 ) -GAMEL( 199?, m5qshot04 ,m5qshot, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Quack Shot (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5qshot04 ) +GAMEL( 199?, m5qshot ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Quack Shot (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5qshot04 ) +GAMEL( 199?, m5qshot04 ,m5qshot, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Quack Shot (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5qshot04 ) -GAME( 199?, m5roof ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Raise The Roof (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5roofa ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Raise The Roof (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5roof ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Raise The Roof (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5roofa ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Raise The Roof (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) -GAMEL( 199?, m5razdz ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Razzle Dazzle Club (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5razdz10 ) -GAMEL( 199?, m5razdz10 ,m5razdz, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Razzle Dazzle Club (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5razdz10 ) -GAMEL( 199?, m5razdz11 ,m5razdz, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Razzle Dazzle Club (Barcrest) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5razdz10 ) +GAMEL( 199?, m5razdz ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Razzle Dazzle Club (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5razdz10 ) +GAMEL( 199?, m5razdz10 ,m5razdz, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Razzle Dazzle Club (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5razdz10 ) +GAMEL( 199?, m5razdz11 ,m5razdz, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Razzle Dazzle Club (Barcrest) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5razdz10 ) -GAMEL( 199?, m5redrck ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Ready To Rock (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5redrcka ) -GAMEL( 199?, m5redrck10 ,m5redrck, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Ready To Rock (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5redrcka ) -GAMEL( 199?, m5redrcka ,m5redrck, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Ready To Rock (Barcrest) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5redrcka ) +GAMEL( 199?, m5redrck ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Ready To Rock (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5redrcka ) +GAMEL( 199?, m5redrck10 ,m5redrck, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Ready To Rock (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5redrcka ) +GAMEL( 199?, m5redrcka ,m5redrck, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Ready To Rock (Barcrest) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5redrcka ) -GAME( 199?, m5rhkni ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Red Hot Knights (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5rhkni ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Red Hot Knights (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5rhrg ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Red Hot Roll Gold (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5rhrga ,m5rhrg, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Red Hot Roll Gold (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5rhrg ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Red Hot Roll Gold (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5rhrga ,m5rhrg, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Red Hot Roll Gold (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) -GAMEL( 199?, m5rhrgt ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Red Hot Roll Triple (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5rhrgt02 ) -GAMEL( 199?, m5rhrgt12 ,m5rhrgt, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Red Hot Roll Triple (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5rhrgt02 ) -GAMEL( 199?, m5rhrgt02 ,m5rhrgt, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Red Hot Roll Triple (Barcrest) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5rhrgt02 ) +GAMEL( 199?, m5rhrgt ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Red Hot Roll Triple (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5rhrgt02 ) +GAMEL( 199?, m5rhrgt12 ,m5rhrgt, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Red Hot Roll Triple (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5rhrgt02 ) +GAMEL( 199?, m5rhrgt02 ,m5rhrgt, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Red Hot Roll Triple (Barcrest) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5rhrgt02 ) -GAMEL( 199?, m5revo ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Revolution (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5revo13 ) -GAMEL( 199?, m5revo13 ,m5revo, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Revolution (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5revo13 ) -GAMEL( 199?, m5revoa ,m5revo, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Revolution (Barcrest) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5revo13 ) +GAMEL( 199?, m5revo ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Revolution (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5revo13 ) +GAMEL( 199?, m5revo13 ,m5revo, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Revolution (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5revo13 ) +GAMEL( 199?, m5revoa ,m5revo, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Revolution (Barcrest) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5revo13 ) -GAMEL( 199?, m5rgclb ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Rio Grande Club (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5rgclb12 ) -GAMEL( 199?, m5rgclb11 ,m5rgclb, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Rio Grande Club (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5rgclb12 ) -GAMEL( 199?, m5rgclb12 ,m5rgclb, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Rio Grande Club (Barcrest) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5rgclb12 ) -GAMEL( 199?, m5rgclb20 ,m5rgclb, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Rio Grande Club (Barcrest) (MPU5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5rgclb12 ) -GAMEL( 199?, m5rgclb21 ,m5rgclb, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Rio Grande Club (Barcrest) (MPU5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5rgclb12 ) -GAMEL( 199?, m5rgclb03 ,m5rgclb, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Rio Grande Club (Barcrest) (MPU5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5rgclb12 ) -GAMEL( 199?, m5rgclb01 ,m5rgclb, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Rio Grande Club (Barcrest) (MPU5) (set 7)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5rgclb12 ) -GAMEL( 199?, m5rgclb01a ,m5rgclb, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Rio Grande Club (Barcrest) (MPU5) (set 8)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5rgclb12 ) +GAMEL( 199?, m5rgclb ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Rio Grande Club (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5rgclb12 ) +GAMEL( 199?, m5rgclb11 ,m5rgclb, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Rio Grande Club (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5rgclb12 ) +GAMEL( 199?, m5rgclb12 ,m5rgclb, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Rio Grande Club (Barcrest) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5rgclb12 ) +GAMEL( 199?, m5rgclb20 ,m5rgclb, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Rio Grande Club (Barcrest) (MPU5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5rgclb12 ) +GAMEL( 199?, m5rgclb21 ,m5rgclb, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Rio Grande Club (Barcrest) (MPU5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5rgclb12 ) +GAMEL( 199?, m5rgclb03 ,m5rgclb, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Rio Grande Club (Barcrest) (MPU5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5rgclb12 ) +GAMEL( 199?, m5rgclb01 ,m5rgclb, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Rio Grande Club (Barcrest) (MPU5) (set 7)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5rgclb12 ) +GAMEL( 199?, m5rgclb01a ,m5rgclb, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Rio Grande Club (Barcrest) (MPU5) (set 8)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5rgclb12 ) -GAME( 199?, m5rcx ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Royal Exchange Club (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5rcxa ,m5rcx, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Royal Exchange Club (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5rcx ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Royal Exchange Club (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5rcxa ,m5rcx, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Royal Exchange Club (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) -GAMEL( 199?, m5rub ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Rubies & Diamonds (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5rub ) +GAMEL( 199?, m5rub ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Rubies & Diamonds (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5rub ) -GAMEL( 199?, m5ritj ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Rumble In The Jungle (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5ritj ) +GAMEL( 199?, m5ritj ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Rumble In The Jungle (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5ritj ) -GAMEL( 199?, m5rfymc ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Run For Your Money Club (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5rfymc ) -GAMEL( 199?, m5rfymc06 ,m5rfymc, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Run For Your Money Club (Barcrest) (MPU5) (Set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5rfymc ) +GAMEL( 199?, m5rfymc ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Run For Your Money Club (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5rfymc ) +GAMEL( 199?, m5rfymc06 ,m5rfymc, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Run For Your Money Club (Barcrest) (MPU5) (Set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5rfymc ) -GAMEL( 199?, m5seven ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Seven Deadly Spins (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5seven ) +GAMEL( 199?, m5seven ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Seven Deadly Spins (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5seven ) -GAMEL( 199?, m5sheik ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Sheik Yer Money (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5sheik ) +GAMEL( 199?, m5sheik ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Sheik Yer Money (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5sheik ) -GAME( 199?, m5showtm ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Showtime (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5showtm ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Showtime (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5silver ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Silver Screen (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5silver06 ,m5silver, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Silver Screen (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5silver03 ,m5silver, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Silver Screen (Barcrest) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5silver ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Silver Screen (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5silver06 ,m5silver, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Silver Screen (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5silver03 ,m5silver, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Silver Screen (Barcrest) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL ) -GAMEL( 199?, m5sondr ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Son Of Dracula (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5sondra ) -GAMEL( 199?, m5sondr05 ,m5sondr, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Son Of Dracula (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5sondra ) -GAMEL( 199?, m5sondra ,m5sondr, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Son Of Dracula (Barcrest) (MPU5) (15GBP Jackpot)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5sondra ) +GAMEL( 199?, m5sondr ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Son Of Dracula (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5sondra ) +GAMEL( 199?, m5sondr05 ,m5sondr, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Son Of Dracula (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5sondra ) +GAMEL( 199?, m5sondra ,m5sondr, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Son Of Dracula (Barcrest) (MPU5) (15GBP Jackpot)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5sondra ) -GAME( 199?, m5spicer ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","The Spice Is Right (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5spicer06 ,m5spicer, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","The Spice Is Right (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5spicer ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","The Spice Is Right (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5spicer06 ,m5spicer, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","The Spice Is Right (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) -GAMEL( 199?, m5spiker ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Spiker The Biker (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5spiker ) -GAMEL( 199?, m5spiker02 ,m5spiker, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Spiker The Biker (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5spiker ) -GAMEL( 199?, m5spikera ,m5spiker, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Spiker The Biker (Barcrest) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5spiker ) +GAMEL( 199?, m5spiker ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Spiker The Biker (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5spiker ) +GAMEL( 199?, m5spiker02 ,m5spiker, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Spiker The Biker (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5spiker ) +GAMEL( 199?, m5spikera ,m5spiker, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Spiker The Biker (Barcrest) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5spiker ) -GAMEL( 199?, m5spins ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Spinsation (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5spins ) +GAMEL( 199?, m5spins ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Spinsation (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5spins ) -GAMEL( 199?, m5squids ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Squids In (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5squids06 ) -GAMEL( 199?, m5squids04a ,m5squids, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Squids In (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5squids06 ) -GAMEL( 199?, m5squids05 ,m5squids, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Squids In (Barcrest) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5squids06 ) -GAMEL( 199?, m5squids06 ,m5squids, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Squids In (Barcrest) (MPU5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5squids06 ) +GAMEL( 199?, m5squids ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Squids In (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5squids06 ) +GAMEL( 199?, m5squids04a ,m5squids, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Squids In (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5squids06 ) +GAMEL( 199?, m5squids05 ,m5squids, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Squids In (Barcrest) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5squids06 ) +GAMEL( 199?, m5squids06 ,m5squids, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Squids In (Barcrest) (MPU5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5squids06 ) -GAMEL( 199?, m5stax ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Stax Of Cash (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5stax ) +GAMEL( 199?, m5stax ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Stax Of Cash (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5stax ) -GAMEL( 199?, m5scharg ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Super Charged (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5scharg ) -GAMEL( 199?, m5scharg05 ,m5scharg, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Super Charged (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5scharg ) -GAMEL( 199?, m5scharg06 ,m5scharg, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Super Charged (Barcrest) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5scharg ) -GAMEL( 199?, m5scharga ,m5scharg, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Super Charged (Barcrest) (MPU5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5scharg ) +GAMEL( 199?, m5scharg ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Super Charged (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5scharg ) +GAMEL( 199?, m5scharg05 ,m5scharg, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Super Charged (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5scharg ) +GAMEL( 199?, m5scharg06 ,m5scharg, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Super Charged (Barcrest) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5scharg ) +GAMEL( 199?, m5scharga ,m5scharg, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Super Charged (Barcrest) (MPU5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5scharg ) -GAME( 199?, m5supstr ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Super Star (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5supstra ,m5supstr, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Super Star (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5supstr ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Super Star (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5supstra ,m5supstr, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Super Star (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) -GAMEL( 199?, m5sstrk ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Super Streak (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5sstrk ) -GAMEL( 199?, m5sstrk02a ,m5sstrk, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Super Streak (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5sstrk ) +GAMEL( 199?, m5sstrk ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Super Streak (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5sstrk ) +GAMEL( 199?, m5sstrk02a ,m5sstrk, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Super Streak (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5sstrk ) -GAMEL( 199?, m5supnov ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Supernova (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5supnov ) -GAMEL( 199?, m5supnova ,m5supnov, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Supernova (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5supnov ) +GAMEL( 199?, m5supnov ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Supernova (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5supnov ) +GAMEL( 199?, m5supnova ,m5supnov, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Supernova (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5supnov ) -GAME( 199?, m5tempt ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Temple Of Treasure (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5tempt05 ,m5tempt, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Temple Of Treasure (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5tempta ,m5tempt, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Temple Of Treasure (Barcrest) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5temptb ,m5tempt, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Temple Of Treasure (Barcrest) (MPU5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5tempt ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Temple Of Treasure (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5tempt05 ,m5tempt, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Temple Of Treasure (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5tempta ,m5tempt, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Temple Of Treasure (Barcrest) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5temptb ,m5tempt, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Temple Of Treasure (Barcrest) (MPU5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL ) -GAMEL( 199?, m5tempt2 ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Temple Of Treasure 2 (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5tempt2 ) -GAMEL( 199?, m5tempt203 ,m5tempt2, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Temple Of Treasure 2 (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5tempt2 ) -GAMEL( 199?, m5tempt2a ,m5tempt2, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Temple Of Treasure 2 (Barcrest) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5tempt2 ) +GAMEL( 199?, m5tempt2 ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Temple Of Treasure 2 (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5tempt2 ) +GAMEL( 199?, m5tempt203 ,m5tempt2, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Temple Of Treasure 2 (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5tempt2 ) +GAMEL( 199?, m5tempt2a ,m5tempt2, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Temple Of Treasure 2 (Barcrest) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5tempt2 ) -GAMEL( 199?, m5tempcl ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Temple Of Treasure Club (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5tempcl ) +GAMEL( 199?, m5tempcl ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Temple Of Treasure Club (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5tempcl ) -GAMEL( 199?, m5tbird ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Thunderbird (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5tbird ) +GAMEL( 199?, m5tbird ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Thunderbird (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5tbird ) -GAME( 199?, m5topdog ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Top Dog (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5topdog04 ,m5topdog, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Top Dog (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5topdoga ,m5topdog, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Top Dog (Barcrest) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5topdog ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Top Dog (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5topdog04 ,m5topdog, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Top Dog (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5topdoga ,m5topdog, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Top Dog (Barcrest) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL ) -GAMEL( 199?, m5trail ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Trailblazer Club (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5trail ) +GAMEL( 199?, m5trail ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Trailblazer Club (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5trail ) -GAMEL( 199?, m5ultimo ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Ultimo (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5ultimo04 ) -GAMEL( 199?, m5ultimo03a ,m5ultimo, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Ultimo (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5ultimo04 ) -GAMEL( 199?, m5ultimo04 ,m5ultimo, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Ultimo (Barcrest) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5ultimo04 ) +GAMEL( 199?, m5ultimo ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Ultimo (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5ultimo04 ) +GAMEL( 199?, m5ultimo03a ,m5ultimo, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Ultimo (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5ultimo04 ) +GAMEL( 199?, m5ultimo04 ,m5ultimo, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Ultimo (Barcrest) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5ultimo04 ) -GAMEL( 199?, m5upover ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Up & Over (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5upover ) -GAMEL( 199?, m5upover15 ,m5upover, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Up & Over (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5upover ) +GAMEL( 199?, m5upover ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Up & Over (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5upover ) +GAMEL( 199?, m5upover15 ,m5upover, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Up & Over (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5upover ) -GAMEL( 199?, m5vampup ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Vamp It Up (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5vampup ) +GAMEL( 199?, m5vampup ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Vamp It Up (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5vampup ) -GAMEL( 199?, m5wking ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Wild King (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5wking05 ) -GAMEL( 199?, m5wking05 ,m5wking, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Wild King (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5wking05 ) +GAMEL( 199?, m5wking ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Wild King (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5wking05 ) +GAMEL( 199?, m5wking05 ,m5wking, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Wild King (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5wking05 ) -GAME( 199?, m5costa ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Costa Del Cash (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5costa ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Costa Del Cash (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5ttwo ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Take Two (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5ttwo ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Take Two (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5horn ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Whitbread","Horn Of Plenty (Barcrest / Whitbread) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5horn ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest / Whitbread","Horn Of Plenty (Barcrest / Whitbread) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5hotrk ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Hot Rocks (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5hotrk ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Hot Rocks (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) /* Barcrest / Red Gaming */ -GAME( 199?, m5ashock ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Aftershock (Barcrest - Red Gaming) (MPU5, v1.2)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5ashocka ,m5ashock, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Aftershock (Barcrest - Red Gaming) (MPU5, v1.3)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5ashock ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest / Red Gaming","Aftershock (Barcrest - Red Gaming) (MPU5, v1.2)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5ashocka ,m5ashock, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest / Red Gaming","Aftershock (Barcrest - Red Gaming) (MPU5, v1.3)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5bigsht ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Big Shot (Barcrest - Red Gaming) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5bigsht04 ,m5bigsht, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Big Shot (Barcrest - Red Gaming) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5bigsht11 ,m5bigsht, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Big Shot (Barcrest - Red Gaming) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5bigsht13 ,m5bigsht, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Big Shot (Barcrest - Red Gaming) (MPU5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5bigshta ,m5bigsht, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Big Shot (Barcrest - Red Gaming) (MPU5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5bigsht ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest / Red Gaming","Big Shot (Barcrest - Red Gaming) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5bigsht04 ,m5bigsht, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest / Red Gaming","Big Shot (Barcrest - Red Gaming) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5bigsht11 ,m5bigsht, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest / Red Gaming","Big Shot (Barcrest - Red Gaming) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5bigsht13 ,m5bigsht, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest / Red Gaming","Big Shot (Barcrest - Red Gaming) (MPU5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5bigshta ,m5bigsht, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest / Red Gaming","Big Shot (Barcrest - Red Gaming) (MPU5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5bnkrs ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Bonkers (Barcrest - Red Gaming) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5bnkrs ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest / Red Gaming","Bonkers (Barcrest - Red Gaming) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5bbank ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Break The Bank (Barcrest - Red Gaming) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5bbank13 ,m5bbank, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Break The Bank (Barcrest - Red Gaming) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5bbank ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest / Red Gaming","Break The Bank (Barcrest - Red Gaming) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5bbank13 ,m5bbank, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest / Red Gaming","Break The Bank (Barcrest - Red Gaming) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5casfev ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Casino Fever (Red Gaming) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5casfev12 ,m5casfev, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Casino Fever (Red Gaming) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5casfev ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest / Red Gaming","Casino Fever (Red Gaming) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5casfev12 ,m5casfev, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest / Red Gaming","Casino Fever (Red Gaming) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5dmnstr ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Demon Streak (Barcrest - Red Gaming) (MPU5, set 1)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5dmnstra ,m5dmnstr, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Demon Streak (Barcrest - Red Gaming) (MPU5, set 2)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5dmnstr ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest / Red Gaming","Demon Streak (Barcrest - Red Gaming) (MPU5, set 1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5dmnstra ,m5dmnstr, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest / Red Gaming","Demon Streak (Barcrest - Red Gaming) (MPU5, set 2)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5dbubl ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Double Bubble (Barcrest - Red Gaming) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5dbubl ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest / Red Gaming","Double Bubble (Barcrest - Red Gaming) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5dragnd ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Dragon Drop (Barcrest - Red Gaming) (MPU5, set 1)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5dragnda ,m5dragnd, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Dragon Drop (Barcrest - Red Gaming) (MPU5, set 2)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5dragnd ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest / Red Gaming","Dragon Drop (Barcrest - Red Gaming) (MPU5, set 1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5dragnda ,m5dragnd, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest / Red Gaming","Dragon Drop (Barcrest - Red Gaming) (MPU5, set 2)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5fnfair ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Funfair (Barcrest - Red Gaming) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5fnfaird ,m5fnfair, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Funfair (Barcrest - Red Gaming) (MPU5) (Datapak)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5fnfair ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest / Red Gaming","Funfair (Barcrest - Red Gaming) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5fnfaird ,m5fnfair, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest / Red Gaming","Funfair (Barcrest - Red Gaming) (MPU5) (Datapak)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5fusir ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Fruits U Sir (Barcrest - Red Gaming) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5fusir11 ,m5fusir, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Fruits U Sir (Barcrest - Red Gaming) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5fusir12 ,m5fusir, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Fruits U Sir (Barcrest - Red Gaming) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5fusir ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest / Red Gaming","Fruits U Sir (Barcrest - Red Gaming) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5fusir11 ,m5fusir, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest / Red Gaming","Fruits U Sir (Barcrest - Red Gaming) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5fusir12 ,m5fusir, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest / Red Gaming","Fruits U Sir (Barcrest - Red Gaming) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5hypalx ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Hypalinx (Barcrest - Red Gaming) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5hypalx ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest / Red Gaming","Hypalinx (Barcrest - Red Gaming) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5invad ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Invaders (Barcrest - Red Gaming) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5invad ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest / Red Gaming","Invaders (Barcrest - Red Gaming) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5jcptgn ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Jackpot Genie (Barcrest - Red Gaming) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5jcptgn ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest / Red Gaming","Jackpot Genie (Barcrest - Red Gaming) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5jlstrk ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Jewel Strike (Barcrest - Red Gaming) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5jlstrk ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest / Red Gaming","Jewel Strike (Barcrest - Red Gaming) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5lock ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Lock 'n' Load (Barcrest - Red Gaming) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5lock13 ,m5lock, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Lock 'n' Load (Barcrest - Red Gaming) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5lock12 ,m5lock, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Lock 'n' Load (Barcrest - Red Gaming) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5lock ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest / Red Gaming","Lock 'n' Load (Barcrest - Red Gaming) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5lock13 ,m5lock, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest / Red Gaming","Lock 'n' Load (Barcrest - Red Gaming) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5lock12 ,m5lock, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest / Red Gaming","Lock 'n' Load (Barcrest - Red Gaming) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5lockcl ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Lock 'n' Load Club (Barcrest - Red Gaming) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5lockcl15 ,m5lockcl, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Lock 'n' Load Club (Barcrest - Red Gaming) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5lockcl14 ,m5lockcl, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Lock 'n' Load Club (Barcrest - Red Gaming) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5lockcl ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest / Red Gaming","Lock 'n' Load Club (Barcrest - Red Gaming) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5lockcl15 ,m5lockcl, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest / Red Gaming","Lock 'n' Load Club (Barcrest - Red Gaming) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5lockcl14 ,m5lockcl, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest / Red Gaming","Lock 'n' Load Club (Barcrest - Red Gaming) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5nitro ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Nitro (Barcrest - Red Gaming) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5nitro ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest / Red Gaming","Nitro (Barcrest - Red Gaming) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5paint ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Paint The Town Red (Barcrest - Red Gaming) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5paint ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest / Red Gaming","Paint The Town Red (Barcrest - Red Gaming) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5quake ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Quake (Barcrest - Red Gaming) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5quake ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest / Red Gaming","Quake (Barcrest - Red Gaming) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5rainrn ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Rainbow Runner (Barcrest - Red Gaming) (MPU5, set 1)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5rainrna ,m5rainrn, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Rainbow Runner (Barcrest - Red Gaming) (MPU5, set 2)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5rainrn ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest / Red Gaming","Rainbow Runner (Barcrest - Red Gaming) (MPU5, set 1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5rainrna ,m5rainrn, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest / Red Gaming","Rainbow Runner (Barcrest - Red Gaming) (MPU5, set 2)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5rampg ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Rampage (Barcrest - Red Gaming) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5rampg11 ,m5rampg, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Rampage (Barcrest - Red Gaming) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5rampg12 ,m5rampg, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Rampage (Barcrest - Red Gaming) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5rampg ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest / Red Gaming","Rampage (Barcrest - Red Gaming) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5rampg11 ,m5rampg, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest / Red Gaming","Rampage (Barcrest - Red Gaming) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5rampg12 ,m5rampg, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest / Red Gaming","Rampage (Barcrest - Red Gaming) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5rdwarf ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Red Dwarf (Barcrest - Red Gaming) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5rdwarf ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest / Red Gaming","Red Dwarf (Barcrest - Red Gaming) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5redx ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Red X (Barcrest - Red Gaming) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5redx12 ,m5redx, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Red X (Barcrest - Red Gaming) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5redx ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest / Red Gaming","Red X (Barcrest - Red Gaming) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5redx12 ,m5redx, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest / Red Gaming","Red X (Barcrest - Red Gaming) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5thtsmg ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","That's Magic (Barcrest - Red Gaming) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5thtsmg ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest / Red Gaming","That's Magic (Barcrest - Red Gaming) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5topdol ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Top Dollar (Barcrest - Red Gaming) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5topdola ,m5topdol, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Top Dollar (Barcrest - Red Gaming) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5topdol ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest / Red Gaming","Top Dollar (Barcrest - Red Gaming) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5topdola ,m5topdol, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest / Red Gaming","Top Dollar (Barcrest - Red Gaming) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5zigzag ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Zig Zag (Barcrest - Red Gaming) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5zigzag ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest / Red Gaming","Zig Zag (Barcrest - Red Gaming) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5cmass ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Critical Mass (Barcrest - Red Gaming) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5cmass ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest / Red Gaming","Critical Mass (Barcrest - Red Gaming) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5sblz ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Snail Blazer (Barcrest - Red Gaming) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5sblz ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest / Red Gaming","Snail Blazer (Barcrest - Red Gaming) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5slide ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Slider (Barcrest - Red Gaming) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5slide ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest / Red Gaming","Slider (Barcrest - Red Gaming) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) /* Vivid */ -GAME( 199?, m5sixsht ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Six Shooter (Vivid) (MPU5) (v1.1, set 1)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5sixshta ,m5sixsht, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Six Shooter (Vivid) (MPU5) (v1.1, set 2)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5sixshtb ,m5sixsht, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Six Shooter (Vivid) (MPU5) (v2.0, set 1)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5sixshtc ,m5sixsht, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Six Shooter (Vivid) (MPU5) (v2.0, set 2)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5sixshtd ,m5sixsht, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Six Shooter (Vivid) (MPU5) (v2.0, set 3)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5sixshte ,m5sixsht, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Six Shooter (Vivid) (MPU5) (v2.0, set 4)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5sixshtf ,m5sixsht, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Six Shooter (Vivid) (MPU5) (v2.0, set 5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5sixshtg ,m5sixsht, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Six Shooter (Vivid) (MPU5) (v2.0, set 6)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5sixshth ,m5sixsht, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Six Shooter (Vivid) (MPU5) (v2.0, set 7)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5sixshti ,m5sixsht, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Six Shooter (Vivid) (MPU5) (v2.1, set 1)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5sixshtj ,m5sixsht, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Six Shooter (Vivid) (MPU5) (v2.1, set 2)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5sixshtk ,m5sixsht, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Six Shooter (Vivid) (MPU5) (v2.1, set 3)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5sixshtl ,m5sixsht, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Six Shooter (Vivid) (MPU5) (v2.1, set 4)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5sixshtm ,m5sixsht, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Six Shooter (Vivid) (MPU5) (v2.1, set 5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5sixshtn ,m5sixsht, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Six Shooter (Vivid) (MPU5) (v2.1, set 6)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5sixsht ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Six Shooter (Vivid) (MPU5) (v1.1, set 1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5sixshta ,m5sixsht, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Six Shooter (Vivid) (MPU5) (v1.1, set 2)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5sixshtb ,m5sixsht, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Six Shooter (Vivid) (MPU5) (v2.0, set 1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5sixshtc ,m5sixsht, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Six Shooter (Vivid) (MPU5) (v2.0, set 2)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5sixshtd ,m5sixsht, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Six Shooter (Vivid) (MPU5) (v2.0, set 3)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5sixshte ,m5sixsht, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Six Shooter (Vivid) (MPU5) (v2.0, set 4)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5sixshtf ,m5sixsht, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Six Shooter (Vivid) (MPU5) (v2.0, set 5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5sixshtg ,m5sixsht, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Six Shooter (Vivid) (MPU5) (v2.0, set 6)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5sixshth ,m5sixsht, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Six Shooter (Vivid) (MPU5) (v2.0, set 7)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5sixshti ,m5sixsht, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Six Shooter (Vivid) (MPU5) (v2.1, set 1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5sixshtj ,m5sixsht, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Six Shooter (Vivid) (MPU5) (v2.1, set 2)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5sixshtk ,m5sixsht, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Six Shooter (Vivid) (MPU5) (v2.1, set 3)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5sixshtl ,m5sixsht, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Six Shooter (Vivid) (MPU5) (v2.1, set 4)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5sixshtm ,m5sixsht, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Six Shooter (Vivid) (MPU5) (v2.1, set 5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5sixshtn ,m5sixsht, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Six Shooter (Vivid) (MPU5) (v2.1, set 6)", MACHINE_IS_SKELETON_MECHANICAL ) -GAMEL( 199?, m5all41 ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","All 4 One (Vivid) (MPU5, set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5all41d ) -GAMEL( 199?, m5all41a ,m5all41, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","All 4 One (Vivid) (MPU5, set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5all41d ) -GAMEL( 199?, m5all41b ,m5all41, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","All 4 One (Vivid) (MPU5, set 3)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5all41d ) -GAMEL( 199?, m5all41c ,m5all41, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","All 4 One (Vivid) (MPU5, set 4)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5all41d ) -GAMEL( 199?, m5all41d ,m5all41, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","All 4 One (Vivid) (MPU5, set 5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5all41d ) -GAMEL( 199?, m5all41e ,m5all41, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","All 4 One (Vivid) (MPU5, set 6)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5all41d ) -GAMEL( 199?, m5all41f ,m5all41, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","All 4 One (Vivid) (MPU5, set 7)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5all41d ) -GAMEL( 199?, m5all41g ,m5all41, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","All 4 One (Vivid) (MPU5, set 8)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5all41d ) -GAMEL( 199?, m5all41h ,m5all41, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","All 4 One (Vivid) (MPU5, set 9)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5all41d ) -GAMEL( 199?, m5all41i ,m5all41, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","All 4 One (Vivid) (MPU5, set 10)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5all41d ) -GAMEL( 199?, m5all41j ,m5all41, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","All 4 One (Vivid) (MPU5, set 11)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5all41d ) -GAMEL( 199?, m5all41k ,m5all41, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","All 4 One (Vivid) (MPU5, set 12)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5all41d ) -GAMEL( 199?, m5all41l ,m5all41, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","All 4 One (Vivid) (MPU5, set 13)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5all41d ) -GAMEL( 199?, m5all41m ,m5all41, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","All 4 One (Vivid) (MPU5, set 14)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5all41d ) +GAMEL( 199?, m5all41 ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","All 4 One (Vivid) (MPU5, set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5all41d ) +GAMEL( 199?, m5all41a ,m5all41, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","All 4 One (Vivid) (MPU5, set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5all41d ) +GAMEL( 199?, m5all41b ,m5all41, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","All 4 One (Vivid) (MPU5, set 3)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5all41d ) +GAMEL( 199?, m5all41c ,m5all41, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","All 4 One (Vivid) (MPU5, set 4)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5all41d ) +GAMEL( 199?, m5all41d ,m5all41, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","All 4 One (Vivid) (MPU5, set 5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5all41d ) +GAMEL( 199?, m5all41e ,m5all41, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","All 4 One (Vivid) (MPU5, set 6)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5all41d ) +GAMEL( 199?, m5all41f ,m5all41, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","All 4 One (Vivid) (MPU5, set 7)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5all41d ) +GAMEL( 199?, m5all41g ,m5all41, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","All 4 One (Vivid) (MPU5, set 8)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5all41d ) +GAMEL( 199?, m5all41h ,m5all41, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","All 4 One (Vivid) (MPU5, set 9)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5all41d ) +GAMEL( 199?, m5all41i ,m5all41, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","All 4 One (Vivid) (MPU5, set 10)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5all41d ) +GAMEL( 199?, m5all41j ,m5all41, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","All 4 One (Vivid) (MPU5, set 11)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5all41d ) +GAMEL( 199?, m5all41k ,m5all41, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","All 4 One (Vivid) (MPU5, set 12)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5all41d ) +GAMEL( 199?, m5all41l ,m5all41, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","All 4 One (Vivid) (MPU5, set 13)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5all41d ) +GAMEL( 199?, m5all41m ,m5all41, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","All 4 One (Vivid) (MPU5, set 14)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5all41d ) -GAME( 199?, m5atlan ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Atlantic (Vivid) (MPU5, v1.4)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5atlana ,m5atlan, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Atlantic (Vivid) (MPU5, v1.2)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5atlan ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Atlantic (Vivid) (MPU5, v1.4)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5atlana ,m5atlan, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Atlantic (Vivid) (MPU5, v1.2)", MACHINE_IS_SKELETON_MECHANICAL ) -GAMEL( 199?, m5bttf ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Back To The Features (Vivid) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5bttf ) -GAMEL( 199?, m5bttfa ,m5bttf, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Back To The Features (Vivid) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5bttf ) +GAMEL( 199?, m5bttf ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Back To The Features (Vivid) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5bttf ) +GAMEL( 199?, m5bttfa ,m5bttf, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Back To The Features (Vivid) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5bttf ) -GAMEL( 199?, m5btlbnk ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Bottle Bank (Vivid) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5btlbnk ) +GAMEL( 199?, m5btlbnk ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Bottle Bank (Vivid) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5btlbnk ) -GAME( 199?, m5caesc ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Caesar's Cash (Vivid) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5caesc ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Caesar's Cash (Vivid) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5card ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Card Shark (Vivid) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5card ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Card Shark (Vivid) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAMEL( 199?, m5cshkcb ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Card Shark Club (Vivid) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5cshkcb ) -GAMEL( 199?, m5cshkcb12 ,m5cshkcb, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Card Shark Club (Vivid) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5cshkcb ) -GAMEL( 199?, m5cshkcb13 ,m5cshkcb, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Card Shark Club (Vivid) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5cshkcb ) +GAMEL( 199?, m5cshkcb ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Card Shark Club (Vivid) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5cshkcb ) +GAMEL( 199?, m5cshkcb12 ,m5cshkcb, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Card Shark Club (Vivid) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5cshkcb ) +GAMEL( 199?, m5cshkcb13 ,m5cshkcb, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Card Shark Club (Vivid) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5cshkcb ) -GAMEL( 199?, m5clifhn ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Cliffhanger (Vivid) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5clifhn ) +GAMEL( 199?, m5clifhn ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Cliffhanger (Vivid) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5clifhn ) -GAME( 199?, m5cnct4 ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Connect 4 (Vivid) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5cnct415 ,m5cnct4, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Connect 4 (Vivid) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5cnct420 ,m5cnct4, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Connect 4 (Vivid) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5cnct4 ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Connect 4 (Vivid) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5cnct415 ,m5cnct4, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Connect 4 (Vivid) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5cnct420 ,m5cnct4, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Connect 4 (Vivid) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL ) -GAMEL( 199?, m5devil ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Devil Of A Deal (Vivid) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5devil ) +GAMEL( 199?, m5devil ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Devil Of A Deal (Vivid) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5devil ) -GAMEL( 199?, m5elband ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","El Bandido Club (Vivid) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5elband ) +GAMEL( 199?, m5elband ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","El Bandido Club (Vivid) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5elband ) -GAME( 199?, m5fair ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Fairground Attraction (Vivid) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5fair ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Fairground Attraction (Vivid) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAMEL( 199?, m5ggems ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Giant Gems (Vivid) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5ggems20 ) -GAMEL( 199?, m5ggems20 ,m5ggems, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Giant Gems (Vivid) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5ggems20 ) +GAMEL( 199?, m5ggems ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Giant Gems (Vivid) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5ggems20 ) +GAMEL( 199?, m5ggems20 ,m5ggems, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Giant Gems (Vivid) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5ggems20 ) -GAME( 199?, m5groll ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Golden Roll (Vivid) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5groll ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Golden Roll (Vivid) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAMEL( 199?, m5hilok ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Hi Lo Karate (Vivid) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5hilok ) +GAMEL( 199?, m5hilok ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Hi Lo Karate (Vivid) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5hilok ) -GAMEL( 199?, m5hiclau ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","High Claudius (Vivid) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5hiclau ) +GAMEL( 199?, m5hiclau ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","High Claudius (Vivid) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5hiclau ) -GAME( 199?, m5honmon ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Honey Money (Vivid) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5honmona ,m5honmon, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Honey Money (Vivid) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5honmon ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Honey Money (Vivid) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5honmona ,m5honmon, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Honey Money (Vivid) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) -GAMEL( 199?, m5hopidl ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Hop Idol (Vivid) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5hopidl ) +GAMEL( 199?, m5hopidl ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Hop Idol (Vivid) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5hopidl ) -GAME( 199?, m5hypno ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Hypnotic (Vivid) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5hypno ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Hypnotic (Vivid) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5jmpjok ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Jumpin Jokers (Vivid) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5jmpjok11 ,m5jmpjok, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Jumpin Jokers (Vivid) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5jmpjoka ,m5jmpjok, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Jumpin Jokers (Vivid) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5jmpjokb ,m5jmpjok, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Jumpin Jokers (Vivid) (MPU5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5jmpjok ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Jumpin Jokers (Vivid) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5jmpjok11 ,m5jmpjok, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Jumpin Jokers (Vivid) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5jmpjoka ,m5jmpjok, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Jumpin Jokers (Vivid) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5jmpjokb ,m5jmpjok, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Jumpin Jokers (Vivid) (MPU5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL ) -GAMEL( 199?, m5loony ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Loony Juice (Vivid) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5loony ) +GAMEL( 199?, m5loony ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Loony Juice (Vivid) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5loony ) -GAMEL( 199?, m5loot ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Loot 'n' Khamun (Vivid) (MPU5, set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5loot ) // aka 3-in-1 ? -GAMEL( 199?, m5loota ,m5loot, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Loot 'n' Khamun (Vivid) (MPU5, set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5loot ) // aka 3-in-1 ? +GAMEL( 199?, m5loot ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Loot 'n' Khamun (Vivid) (MPU5, set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5loot ) // aka 3-in-1 ? +GAMEL( 199?, m5loota ,m5loot, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Loot 'n' Khamun (Vivid) (MPU5, set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5loot ) // aka 3-in-1 ? -GAME( 199?, m5mag7s ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Magnificent 7s (Vivid) (MPU5, set 1)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5mag7sa ,m5mag7s, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Magnificent 7s (Vivid) (MPU5, set 2)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5mag7sb ,m5mag7s, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Magnificent 7s (Vivid) (MPU5, set 3)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5mag7sc ,m5mag7s, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Magnificent 7s (Vivid) (MPU5, set 4)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5mag7sd ,m5mag7s, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Magnificent 7s (Vivid) (MPU5, set 5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5mag7se ,m5mag7s, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Magnificent 7s (Vivid) (MPU5, set 6)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5mag7s ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Magnificent 7s (Vivid) (MPU5, set 1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5mag7sa ,m5mag7s, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Magnificent 7s (Vivid) (MPU5, set 2)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5mag7sb ,m5mag7s, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Magnificent 7s (Vivid) (MPU5, set 3)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5mag7sc ,m5mag7s, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Magnificent 7s (Vivid) (MPU5, set 4)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5mag7sd ,m5mag7s, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Magnificent 7s (Vivid) (MPU5, set 5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5mag7se ,m5mag7s, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Magnificent 7s (Vivid) (MPU5, set 6)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5msf ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Manic Streak Features (Vivid) (MPU5, set 1)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5msfa ,m5msf, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Manic Streak Features (Vivid) (MPU5, set 2)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5msf ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Manic Streak Features (Vivid) (MPU5, set 1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5msfa ,m5msf, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Manic Streak Features (Vivid) (MPU5, set 2)", MACHINE_IS_SKELETON_MECHANICAL ) -GAMEL( 199?, m5piefac ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Pie Factory (Vivid) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5piefac ) -GAMEL( 199?, m5piefac23 ,m5piefac, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Pie Factory (Vivid) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5piefac ) -GAMEL( 199?, m5piefac12 ,m5piefac, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Pie Factory (Vivid) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5piefac ) -GAMEL( 199?, m5piefaca ,m5piefac, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Pie Factory (Vivid) (MPU5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5piefac ) +GAMEL( 199?, m5piefac ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Pie Factory (Vivid) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5piefac ) +GAMEL( 199?, m5piefac23 ,m5piefac, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Pie Factory (Vivid) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5piefac ) +GAMEL( 199?, m5piefac12 ,m5piefac, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Pie Factory (Vivid) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5piefac ) +GAMEL( 199?, m5piefaca ,m5piefac, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Pie Factory (Vivid) (MPU5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5piefac ) -GAME( 199?, m5piefc2 ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Pie Factory 2 (Vivid) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5piefc2a ,m5piefc2, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Pie Factory 2 (Vivid) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5piefc2b ,m5piefc2, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Pie Factory 2 (Vivid) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5piefc2 ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Pie Factory 2 (Vivid) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5piefc2a ,m5piefc2, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Pie Factory 2 (Vivid) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5piefc2b ,m5piefc2, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Pie Factory 2 (Vivid) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL ) -GAMEL( 199?, m5piefcr ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Pie Factory Rio (Vivid) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5piefcr ) +GAMEL( 199?, m5piefcr ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Pie Factory Rio (Vivid) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5piefcr ) -GAMEL( 199?, m5qdraw ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Quick On The Draw (Vivid) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5qdrawb ) -GAMEL( 199?, m5qdraw12 ,m5qdraw, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Quick On The Draw (Vivid) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5qdrawb ) -GAMEL( 199?, m5qdraw14 ,m5qdraw, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Quick On The Draw (Vivid) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5qdrawb ) -GAMEL( 199?, m5qdraw15 ,m5qdraw, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Quick On The Draw (Vivid) (MPU5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5qdrawb ) -GAMEL( 199?, m5qdrawa ,m5qdraw, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Quick On The Draw (Vivid) (MPU5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5qdrawb ) -GAMEL( 199?, m5qdrawb ,m5qdraw, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Quick On The Draw (Vivid) (MPU5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5qdrawb ) +GAMEL( 199?, m5qdraw ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Quick On The Draw (Vivid) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5qdrawb ) +GAMEL( 199?, m5qdraw12 ,m5qdraw, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Quick On The Draw (Vivid) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5qdrawb ) +GAMEL( 199?, m5qdraw14 ,m5qdraw, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Quick On The Draw (Vivid) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5qdrawb ) +GAMEL( 199?, m5qdraw15 ,m5qdraw, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Quick On The Draw (Vivid) (MPU5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5qdrawb ) +GAMEL( 199?, m5qdrawa ,m5qdraw, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Quick On The Draw (Vivid) (MPU5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5qdrawb ) +GAMEL( 199?, m5qdrawb ,m5qdraw, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Quick On The Draw (Vivid) (MPU5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5qdrawb ) -GAMEL( 199?, m5redbal ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Random Red Ball (Vivid) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5redbal ) +GAMEL( 199?, m5redbal ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Random Red Ball (Vivid) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5redbal ) -GAMEL( 199?, m5ratpk ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Rat Pack (Vivid) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5ratpka ) -GAMEL( 199?, m5ratpka ,m5ratpk, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Rat Pack (Vivid) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5ratpka ) +GAMEL( 199?, m5ratpk ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Rat Pack (Vivid) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5ratpka ) +GAMEL( 199?, m5ratpka ,m5ratpk, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Rat Pack (Vivid) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5ratpka ) -GAME( 199?, m5rawin ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid / Whitbread","Reel A Win (Vivid / Whitbread) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5rawin ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid / Whitbread","Reel A Win (Vivid / Whitbread) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAMEL( 199?, m5rollup ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Roll Up Roll Up (Vivid) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5rollup ) +GAMEL( 199?, m5rollup ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Roll Up Roll Up (Vivid) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5rollup ) -GAMEL( 199?, m5shark ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Shark Raving Mad (Vivid) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5shark ) -GAMEL( 199?, m5sharka ,m5shark, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Shark Raving Mad (Vivid) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5shark ) +GAMEL( 199?, m5shark ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Shark Raving Mad (Vivid) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5shark ) +GAMEL( 199?, m5sharka ,m5shark, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Shark Raving Mad (Vivid) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5shark ) -GAMEL( 199?, m5speccl ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Spectrum Club (Vivid) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5speccl ) +GAMEL( 199?, m5speccl ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Spectrum Club (Vivid) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5speccl ) -GAME( 199?, m5spddmn ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Speed Demon (Vivid) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5spddmn ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Speed Demon (Vivid) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAMEL( 199?, m5stars ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Stars & Stripes (Vivid) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5stars26 ) -GAMEL( 199?, m5stars13a ,m5stars, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Stars & Stripes (Vivid) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5stars26 ) -GAMEL( 199?, m5stars26 ,m5stars, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Stars & Stripes (Vivid) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5stars26 ) -GAMEL( 199?, m5stars25a ,m5stars, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Stars & Stripes (Vivid) (MPU5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5stars26 ) -GAMEL( 199?, m5stars25 ,m5stars, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Stars & Stripes (Vivid) (MPU5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5stars26 ) -GAMEL( 199?, m5stars22 ,m5stars, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Stars & Stripes (Vivid) (MPU5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5stars26 ) -GAMEL( 199?, m5stars20 ,m5stars, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Stars & Stripes (Vivid) (MPU5) (set 7)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5stars26 ) -GAMEL( 199?, m5stars10 ,m5stars, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Stars & Stripes (Vivid) (MPU5) (set 8)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5stars26 ) -GAMEL( 199?, m5stars10a ,m5stars, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Stars & Stripes (Vivid) (MPU5) (set 9)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5stars26 ) +GAMEL( 199?, m5stars ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Stars & Stripes (Vivid) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5stars26 ) +GAMEL( 199?, m5stars13a ,m5stars, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Stars & Stripes (Vivid) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5stars26 ) +GAMEL( 199?, m5stars26 ,m5stars, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Stars & Stripes (Vivid) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5stars26 ) +GAMEL( 199?, m5stars25a ,m5stars, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Stars & Stripes (Vivid) (MPU5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5stars26 ) +GAMEL( 199?, m5stars25 ,m5stars, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Stars & Stripes (Vivid) (MPU5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5stars26 ) +GAMEL( 199?, m5stars22 ,m5stars, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Stars & Stripes (Vivid) (MPU5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5stars26 ) +GAMEL( 199?, m5stars20 ,m5stars, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Stars & Stripes (Vivid) (MPU5) (set 7)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5stars26 ) +GAMEL( 199?, m5stars10 ,m5stars, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Stars & Stripes (Vivid) (MPU5) (set 8)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5stars26 ) +GAMEL( 199?, m5stars10a ,m5stars, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Stars & Stripes (Vivid) (MPU5) (set 9)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5stars26 ) -GAMEL( 199?, m5starcl ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Stars & Stripes Club (Vivid) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5starcl ) +GAMEL( 199?, m5starcl ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Stars & Stripes Club (Vivid) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5starcl ) -GAME( 199?, m5startr ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Stars & Stripes Triple (Vivid) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5startr ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Stars & Stripes Triple (Vivid) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAMEL( 199?, m5supro ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Super Roulette (Vivid) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5supro ) -GAMEL( 199?, m5suproa ,m5supro, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Super Roulette (Vivid) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5supro ) +GAMEL( 199?, m5supro ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Super Roulette (Vivid) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5supro ) +GAMEL( 199?, m5suproa ,m5supro, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Super Roulette (Vivid) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5supro ) -GAMEL( 199?, m5tempp ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Temple Of Pleasure (Vivid) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5tempp ) +GAMEL( 199?, m5tempp ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Temple Of Pleasure (Vivid) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5tempp ) -GAME( 199?, m5whdres ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Who Dares Spins (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5whdres ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Who Dares Spins (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5winway ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Winning Ways (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5winway ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Winning Ways (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) /* Empire */ -GAME( 199?, m5fewmor ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","A Few Dollars More (Empire) (MPU5) (v0.2, set 1)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5fewmora ,m5fewmor, mpu5, mpu5, driver_device, 0, ROT0, "Empire","A Few Dollars More (Empire) (MPU5) (v0.2, set 2)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5fewmorb ,m5fewmor, mpu5, mpu5, driver_device, 0, ROT0, "Empire","A Few Dollars More (Empire) (MPU5) (v0.3, set 1)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5fewmorc ,m5fewmor, mpu5, mpu5, driver_device, 0, ROT0, "Empire","A Few Dollars More (Empire) (MPU5) (v0.3, set 2)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5fewmor ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","A Few Dollars More (Empire) (MPU5) (v0.2, set 1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5fewmora ,m5fewmor, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","A Few Dollars More (Empire) (MPU5) (v0.2, set 2)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5fewmorb ,m5fewmor, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","A Few Dollars More (Empire) (MPU5) (v0.3, set 1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5fewmorc ,m5fewmor, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","A Few Dollars More (Empire) (MPU5) (v0.3, set 2)", MACHINE_IS_SKELETON_MECHANICAL ) -GAMEL( 199?, m5wonga ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","A Fish Called Wonga (Empire) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5wonga ) +GAMEL( 199?, m5wonga ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","A Fish Called Wonga (Empire) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5wonga ) -GAME( 199?, m5aceclb ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Ace Of Clubs (Empire) (MPU5, set 1)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5aceclba ,m5aceclb, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Ace Of Clubs (Empire) (MPU5, set 2)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5aceclbb ,m5aceclb, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Ace Of Clubs (Empire) (MPU5, set 3)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5aceclb ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Ace Of Clubs (Empire) (MPU5, set 1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5aceclba ,m5aceclb, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Ace Of Clubs (Empire) (MPU5, set 2)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5aceclbb ,m5aceclb, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Ace Of Clubs (Empire) (MPU5, set 3)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5barxdx ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Bar X Deluxe (Empire) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5barxdx ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Bar X Deluxe (Empire) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAMEL( 199?, m5bnzclb ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Bonanza Club (Empire) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5bnzclb ) -GAMEL( 199?, m5bnzclb11 ,m5bnzclb, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Bonanza Club (Empire) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5bnzclb ) +GAMEL( 199?, m5bnzclb ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Bonanza Club (Empire) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5bnzclb ) +GAMEL( 199?, m5bnzclb11 ,m5bnzclb, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Bonanza Club (Empire) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5bnzclb ) -GAME( 199?, m5bukroo ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Buckaroo (Empire) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5bukroo ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Buckaroo (Empire) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5cbrun ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Cannonball Run (Empire) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5cbrun ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Cannonball Run (Empire) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAMEL( 199?, m5carou ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Carousel (Empire) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5carou ) +GAMEL( 199?, m5carou ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Carousel (Empire) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5carou ) -GAME( 199?, m5casroc ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Casino Royale Club (Empire) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5casroc ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Casino Royale Club (Empire) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAMEL( 199?, m5centcl ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Centurion Club (Empire) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5centcl ) -GAMEL( 199?, m5centcl20 ,m5centcl, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Centurion Club (Empire) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5centcl ) -GAMEL( 199?, m5centcl21 ,m5centcl, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Centurion Club (Empire) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5centcl ) -GAMEL( 199?, m5centcl21a ,m5centcl, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Centurion Club (Empire) (MPU5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5centcl ) -GAMEL( 199?, m5centcla ,m5centcl, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Centurion Club (Empire) (MPU5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5centcl ) +GAMEL( 199?, m5centcl ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Centurion Club (Empire) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5centcl ) +GAMEL( 199?, m5centcl20 ,m5centcl, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Centurion Club (Empire) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5centcl ) +GAMEL( 199?, m5centcl21 ,m5centcl, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Centurion Club (Empire) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5centcl ) +GAMEL( 199?, m5centcl21a ,m5centcl, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Centurion Club (Empire) (MPU5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5centcl ) +GAMEL( 199?, m5centcla ,m5centcl, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Centurion Club (Empire) (MPU5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5centcl ) -GAME( 199?, m5cworan ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Clockwork Oranges (Empire) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5cworan12 ,m5cworan, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Clockwork Oranges (Empire) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5cworan ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Clockwork Oranges (Empire) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5cworan12 ,m5cworan, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Clockwork Oranges (Empire) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5clbtro ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Club Tropicana (Empire) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5clbtro24 ,m5clbtro, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Club Tropicana (Empire) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5clbtro25 ,m5clbtro, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Club Tropicana (Empire) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5clbtro ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Club Tropicana (Empire) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5clbtro24 ,m5clbtro, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Club Tropicana (Empire) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5clbtro25 ,m5clbtro, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Club Tropicana (Empire) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5cockdd ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Cock A Doodle Dough! (Empire) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5cockdd05 ,m5cockdd, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Cock A Doodle Dough! (Empire) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5cockdd ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Cock A Doodle Dough! (Empire) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5cockdd05 ,m5cockdd, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Cock A Doodle Dough! (Empire) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5coloss ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Colossus Club (Empire) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5coloss ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Colossus Club (Empire) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5crocrk ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Crocodile Rock (Empire) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5crocrk10 ,m5crocrk, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Crocodile Rock (Empire) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5crocrk ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Crocodile Rock (Empire) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5crocrk10 ,m5crocrk, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Crocodile Rock (Empire) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5croclb ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Crocodile Rock Club (Empire) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5croclb ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Crocodile Rock Club (Empire) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5crsfir ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Crossfire (Empire) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5crsfir ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Crossfire (Empire) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5dmnf ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Diamonds Are Forever (Empire) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5dmnf10 ,m5dmnf, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Diamonds Are Forever (Empire) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5dmnf ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Diamonds Are Forever (Empire) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5dmnf10 ,m5dmnf, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Diamonds Are Forever (Empire) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5dmnfcl ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Diamonds Are Forever Club (Empire) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5dmnfcl04 ,m5dmnfcl, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Diamonds Are Forever Club (Empire) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5dmnfcl ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Diamonds Are Forever Club (Empire) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5dmnfcl04 ,m5dmnfcl, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Diamonds Are Forever Club (Empire) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) -GAMEL( 199?, m5extrm ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Extreme (Empire) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5extrm ) +GAMEL( 199?, m5extrm ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Extreme (Empire) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5extrm ) -GAME( 199?, m5extrmm ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Extreme Madness (Empire) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5extrmm04a ,m5extrmm, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Extreme Madness (Empire) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5extrmm04b ,m5extrmm, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Extreme Madness (Empire) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5extrmm10 ,m5extrmm, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Extreme Madness (Empire) (MPU5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5extrmm ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Extreme Madness (Empire) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5extrmm04a ,m5extrmm, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Extreme Madness (Empire) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5extrmm04b ,m5extrmm, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Extreme Madness (Empire) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5extrmm10 ,m5extrmm, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Extreme Madness (Empire) (MPU5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5fatcat ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Fat Cat (Empire) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5fatcat ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Fat Cat (Empire) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5fishdl ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Fish Full Of Dollars (Empire) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5fishdl10 ,m5fishdl, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Fish Full Of Dollars (Empire) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5fishdl ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Fish Full Of Dollars (Empire) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5fishdl10 ,m5fishdl, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Fish Full Of Dollars (Empire) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5fishcl ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Fish Full Of Dollars Club (Empire) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5fishcl ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Fish Full Of Dollars Club (Empire) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5fmonty ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","The Full Monty (Empire) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5fmonty04a ,m5fmonty, mpu5, mpu5, driver_device, 0, ROT0, "Empire","The Full Monty (Empire) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5fmonty04b ,m5fmonty, mpu5, mpu5, driver_device, 0, ROT0, "Empire","The Full Monty (Empire) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5fmonty04c ,m5fmonty, mpu5, mpu5, driver_device, 0, ROT0, "Empire","The Full Monty (Empire) (MPU5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5fmonty ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","The Full Monty (Empire) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5fmonty04a ,m5fmonty, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","The Full Monty (Empire) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5fmonty04b ,m5fmonty, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","The Full Monty (Empire) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5fmonty04c ,m5fmonty, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","The Full Monty (Empire) (MPU5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5fmount ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Full Mountie (Empire) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5fmount ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Full Mountie (Empire) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5gophr ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Gopher Gold (Empire) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5gophr ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Gopher Gold (Empire) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5gophcl ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Gopher Gold Club (Empire) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5gophcl ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Gopher Gold Club (Empire) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAMEL( 199?, m5hisprt ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","High Spirits (Empire) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5hisprt ) +GAMEL( 199?, m5hisprt ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","High Spirits (Empire) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5hisprt ) -GAME( 199?, m5hocus ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Hocus Pocus (Empire) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5hocus10 ,m5hocus, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Hocus Pocus (Empire) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5hocus ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Hocus Pocus (Empire) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5hocus10 ,m5hocus, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Hocus Pocus (Empire) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5hocscl ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Hocus Pocus Club (Empire) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5hocscl ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Hocus Pocus Club (Empire) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5hotsht ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Hot Shots (Empire) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5hotsht07a ,m5hotsht, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Hot Shots (Empire) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5hotsht08 ,m5hotsht, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Hot Shots (Empire) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5hotsht08a ,m5hotsht, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Hot Shots (Empire) (MPU5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5hotsht10 ,m5hotsht, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Hot Shots (Empire) (MPU5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5hotsht10a ,m5hotsht, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Hot Shots (Empire) (MPU5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5hotsht ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Hot Shots (Empire) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5hotsht07a ,m5hotsht, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Hot Shots (Empire) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5hotsht08 ,m5hotsht, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Hot Shots (Empire) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5hotsht08a ,m5hotsht, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Hot Shots (Empire) (MPU5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5hotsht10 ,m5hotsht, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Hot Shots (Empire) (MPU5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5hotsht10a ,m5hotsht, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Hot Shots (Empire) (MPU5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5hula ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Hula Moolah (Empire) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5hula10 ,m5hula, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Hula Moolah (Empire) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5hula ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Hula Moolah (Empire) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5hula10 ,m5hula, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Hula Moolah (Empire) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5hulacl ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Hula Moolah Club (Empire) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5hulacl ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Hula Moolah Club (Empire) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAMEL( 199?, m5jackbx ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Jack In The Box (Empire) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5jackbx ) -GAMEL( 199?, m5jackbx03 ,m5jackbx, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Jack In The Box (Empire) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5jackbx ) +GAMEL( 199?, m5jackbx ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Jack In The Box (Empire) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5jackbx ) +GAMEL( 199?, m5jackbx03 ,m5jackbx, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Jack In The Box (Empire) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5jackbx ) -GAME( 199?, m5jcy ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Juicy Fruits (Empire) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5jcy ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Juicy Fruits (Empire) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAMEL( 199?, m5jmpgem ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Jumping Gems (Empire) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5jmpgem01 ) -GAMEL( 199?, m5jmpgem01 ,m5jmpgem, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Jumping Gems (Empire) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5jmpgem01 ) -GAMEL( 199?, m5jmpgem03 ,m5jmpgem, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Jumping Gems (Empire) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5jmpgem01 ) +GAMEL( 199?, m5jmpgem ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Jumping Gems (Empire) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5jmpgem01 ) +GAMEL( 199?, m5jmpgem01 ,m5jmpgem, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Jumping Gems (Empire) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5jmpgem01 ) +GAMEL( 199?, m5jmpgem03 ,m5jmpgem, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Jumping Gems (Empire) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5jmpgem01 ) -GAME( 199?, m5jmpgmc ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Jumping Gems Club (Empire) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5jmpgmc ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Jumping Gems Club (Empire) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5kaleid ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Kaleidoscope Club (Empire) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5kaleid ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Kaleidoscope Club (Empire) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5kcclb ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","King Cobra Club (Empire) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5kcclb24 ,m5kcclb, mpu5, mpu5, driver_device, 0, ROT0, "Empire","King Cobra Club (Empire) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5kcclb ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","King Cobra Club (Empire) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5kcclb24 ,m5kcclb, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","King Cobra Club (Empire) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) -GAMEL( 199?, m5kingqc ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Kings & Queens Club (Empire) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5kingqc06 ) -GAMEL( 199?, m5kingqc06 ,m5kingqc, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Kings & Queens Club (Empire) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5kingqc06 ) -GAMEL( 199?, m5kingqc07 ,m5kingqc, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Kings & Queens Club (Empire) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5kingqc06 ) -GAMEL( 199?, m5kingqc08 ,m5kingqc, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Kings & Queens Club (Empire) (MPU5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5kingqc06 ) +GAMEL( 199?, m5kingqc ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Kings & Queens Club (Empire) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5kingqc06 ) +GAMEL( 199?, m5kingqc06 ,m5kingqc, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Kings & Queens Club (Empire) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5kingqc06 ) +GAMEL( 199?, m5kingqc07 ,m5kingqc, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Kings & Queens Club (Empire) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5kingqc06 ) +GAMEL( 199?, m5kingqc08 ,m5kingqc, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Kings & Queens Club (Empire) (MPU5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5kingqc06 ) -GAMEL( 199?, m5korma ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Korma Chameleon (Empire) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5korma ) -GAMEL( 199?, m5korma12 ,m5korma, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Korma Chameleon (Empire) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5korma ) +GAMEL( 199?, m5korma ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Korma Chameleon (Empire) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5korma ) +GAMEL( 199?, m5korma12 ,m5korma, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Korma Chameleon (Empire) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5korma ) -GAME( 199?, m5kormcl ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Korma Chameleon Club (Empire) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5kormcl ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Korma Chameleon Club (Empire) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAMEL( 199?, m5monmst ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Money Monster (Empire) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5monmst ) -GAMEL( 199?, m5monmsta ,m5monmst, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Money Monster (Empire) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5monmst ) +GAMEL( 199?, m5monmst ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Money Monster (Empire) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5monmst ) +GAMEL( 199?, m5monmsta ,m5monmst, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Money Monster (Empire) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5monmst ) -GAME( 199?, m5ramrd ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Ram Raid (Empire) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5ramrd ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Ram Raid (Empire) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5ramrcl ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Ram Raid Club (Empire) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5ramrcl ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Ram Raid Club (Empire) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5ronr ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Reel Or No Reel (Empire) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5ronr05 ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Reel Or No Reel (Empire) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5ronr07 ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Reel Or No Reel (Empire) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5ronr ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Reel Or No Reel (Empire) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5ronr05 ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Reel Or No Reel (Empire) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5ronr07 ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Reel Or No Reel (Empire) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL ) -GAMEL( 199?, m5resfrg ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Reservoir Frogs (Empire) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5resfrg ) +GAMEL( 199?, m5resfrg ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Reservoir Frogs (Empire) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5resfrg ) -GAMEL( 199?, m5rthh ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Return To The Haunted House (Empire) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5rthh ) +GAMEL( 199?, m5rthh ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Return To The Haunted House (Empire) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5rthh ) -GAMEL( 199?, m5rollx ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Roll X (Empire) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5rollx ) -GAMEL( 199?, m5rollx12 ,m5rollx, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Roll X (Empire) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5rollx ) +GAMEL( 199?, m5rollx ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Roll X (Empire) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5rollx ) +GAMEL( 199?, m5rollx12 ,m5rollx, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Roll X (Empire) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5rollx ) -GAMEL( 199?, m5skulcl ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Skullduggery Club (Empire) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5skulcl20 ) -GAMEL( 199?, m5skulcl20 ,m5skulcl, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Skullduggery Club (Empire) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5skulcl20 ) -GAMEL( 199?, m5skulcl23 ,m5skulcl, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Skullduggery Club (Empire) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5skulcl20 ) +GAMEL( 199?, m5skulcl ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Skullduggery Club (Empire) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5skulcl20 ) +GAMEL( 199?, m5skulcl20 ,m5skulcl, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Skullduggery Club (Empire) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5skulcl20 ) +GAMEL( 199?, m5skulcl23 ,m5skulcl, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Skullduggery Club (Empire) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5skulcl20 ) -GAME( 199?, m5tball ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Thunderball (Empire) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5tball ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Thunderball (Empire) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5tomb ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Tomb Raiders (Empire) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5tomb ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Tomb Raiders (Empire) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5trclb ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Tomb Raiders Club (Empire) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5trclb ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Tomb Raiders Club (Empire) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5ttop ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Treble Top (Empire) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5ttop04 ,m5ttop, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Treble Top (Empire) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5ttop10 ,m5ttop, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Treble Top (Empire) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5ttop ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Treble Top (Empire) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5ttop04 ,m5ttop, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Treble Top (Empire) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5ttop10 ,m5ttop, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Treble Top (Empire) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5ttopcl ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Treble Top Club (Empire) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5ttopcl ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Treble Top Club (Empire) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5tsar ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Tsar Wars (Empire) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5tsar ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Tsar Wars (Empire) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAMEL( 199?, m5vertgo ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Vertigo (Empire) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5vertgo ) +GAMEL( 199?, m5vertgo ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Vertigo (Empire) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5vertgo ) -GAME( 199?, m5vertcl ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Vertigo Club (Empire) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5vertcl ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Vertigo Club (Empire) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAMEL( 199?, m5wthing ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Wild Thing Club (Empire) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5wthing20 ) -GAMEL( 199?, m5wthing11 ,m5wthing, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Wild Thing Club (Empire) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5wthing20 ) -GAMEL( 199?, m5wthing20 ,m5wthing, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Wild Thing Club (Empire) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5wthing20 ) +GAMEL( 199?, m5wthing ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Wild Thing Club (Empire) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5wthing20 ) +GAMEL( 199?, m5wthing11 ,m5wthing, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Wild Thing Club (Empire) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5wthing20 ) +GAMEL( 199?, m5wthing20 ,m5wthing, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","Wild Thing Club (Empire) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5wthing20 ) -GAMEL( 199?, m5xfact ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","X Factor (Empire) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5xfact11 ) -GAMEL( 199?, m5xfact02 ,m5xfact, mpu5, mpu5, driver_device, 0, ROT0, "Empire","X Factor (Empire) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5xfact11 ) -GAMEL( 199?, m5xfact04 ,m5xfact, mpu5, mpu5, driver_device, 0, ROT0, "Empire","X Factor (Empire) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5xfact11 ) -GAMEL( 199?, m5xfact11 ,m5xfact, mpu5, mpu5, driver_device, 0, ROT0, "Empire","X Factor (Empire) (MPU5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5xfact11 ) +GAMEL( 199?, m5xfact ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","X Factor (Empire) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5xfact11 ) +GAMEL( 199?, m5xfact02 ,m5xfact, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","X Factor (Empire) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5xfact11 ) +GAMEL( 199?, m5xfact04 ,m5xfact, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","X Factor (Empire) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5xfact11 ) +GAMEL( 199?, m5xfact11 ,m5xfact, mpu5, mpu5, mpu5_state, 0, ROT0, "Empire","X Factor (Empire) (MPU5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5xfact11 ) /* Bwb */ -GAME( 199?, m5carwsh ,0, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Car Wash (Bwb) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5carwsh10 ,m5carwsh, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Car Wash (Bwb) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5carwsh ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Bwb","Car Wash (Bwb) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5carwsh10 ,m5carwsh, mpu5, mpu5, mpu5_state, 0, ROT0, "Bwb","Car Wash (Bwb) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) -GAMEL( 199?, m5cshstx ,0, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Cash Stax (Bwb) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5cshstx ) +GAMEL( 199?, m5cshstx ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Bwb","Cash Stax (Bwb) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5cshstx ) -GAMEL( 199?, m5circus ,0, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Circus (Bwb) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5circus0a ) -GAMEL( 199?, m5circus0a ,m5circus, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Circus (Bwb) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5circus0a ) -GAMEL( 199?, m5circus0b ,m5circus, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Circus (Bwb) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5circus0a ) -GAMEL( 199?, m5circus20 ,m5circus, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Circus (Bwb) (MPU5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5circus0a ) -GAMEL( 199?, m5circus21 ,m5circus, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Circus (Bwb) (MPU5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5circus0a ) -GAMEL( 199?, m5circus11 ,m5circus, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Circus (Bwb) (MPU5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5circus0a ) +GAMEL( 199?, m5circus ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Bwb","Circus (Bwb) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5circus0a ) +GAMEL( 199?, m5circus0a ,m5circus, mpu5, mpu5, mpu5_state, 0, ROT0, "Bwb","Circus (Bwb) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5circus0a ) +GAMEL( 199?, m5circus0b ,m5circus, mpu5, mpu5, mpu5_state, 0, ROT0, "Bwb","Circus (Bwb) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5circus0a ) +GAMEL( 199?, m5circus20 ,m5circus, mpu5, mpu5, mpu5_state, 0, ROT0, "Bwb","Circus (Bwb) (MPU5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5circus0a ) +GAMEL( 199?, m5circus21 ,m5circus, mpu5, mpu5, mpu5_state, 0, ROT0, "Bwb","Circus (Bwb) (MPU5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5circus0a ) +GAMEL( 199?, m5circus11 ,m5circus, mpu5, mpu5, mpu5_state, 0, ROT0, "Bwb","Circus (Bwb) (MPU5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5circus0a ) -GAMEL( 199?, m5circlb ,0, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Circus Club (Bwb) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5circlb33 ) -GAMEL( 199?, m5circlb00 ,m5circlb, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Circus Club (Bwb) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5circlb33 ) -GAMEL( 199?, m5circlb15 ,m5circlb, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Circus Club (Bwb) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5circlb33 ) -GAMEL( 199?, m5circlb33 ,m5circlb, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Circus Club (Bwb) (MPU5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5circlb33 ) +GAMEL( 199?, m5circlb ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Bwb","Circus Club (Bwb) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5circlb33 ) +GAMEL( 199?, m5circlb00 ,m5circlb, mpu5, mpu5, mpu5_state, 0, ROT0, "Bwb","Circus Club (Bwb) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5circlb33 ) +GAMEL( 199?, m5circlb15 ,m5circlb, mpu5, mpu5, mpu5_state, 0, ROT0, "Bwb","Circus Club (Bwb) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5circlb33 ) +GAMEL( 199?, m5circlb33 ,m5circlb, mpu5, mpu5, mpu5_state, 0, ROT0, "Bwb","Circus Club (Bwb) (MPU5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5circlb33 ) -GAMEL( 199?, m5clown ,0, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Clown In Around (Bwb) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5clown11 ) -GAMEL( 199?, m5clown11 ,m5clown, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Clown In Around (Bwb) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5clown11 ) -GAMEL( 199?, m5clown13 ,m5clown, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Clown In Around (Bwb) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5clown11 ) +GAMEL( 199?, m5clown ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Bwb","Clown In Around (Bwb) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5clown11 ) +GAMEL( 199?, m5clown11 ,m5clown, mpu5, mpu5, mpu5_state, 0, ROT0, "Bwb","Clown In Around (Bwb) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5clown11 ) +GAMEL( 199?, m5clown13 ,m5clown, mpu5, mpu5, mpu5_state, 0, ROT0, "Bwb","Clown In Around (Bwb) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5clown11 ) -GAME( 199?, m5clubsn ,0, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Club Sandwich (Bwb) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5clubsn11 ,m5clubsn, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Club Sandwich (Bwb) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5clubsn14 ,m5clubsn, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Club Sandwich (Bwb) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5clubsn16 ,m5clubsn, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Club Sandwich (Bwb) (MPU5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5clubsn ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Bwb","Club Sandwich (Bwb) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5clubsn11 ,m5clubsn, mpu5, mpu5, mpu5_state, 0, ROT0, "Bwb","Club Sandwich (Bwb) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5clubsn14 ,m5clubsn, mpu5, mpu5, mpu5_state, 0, ROT0, "Bwb","Club Sandwich (Bwb) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5clubsn16 ,m5clubsn, mpu5, mpu5, mpu5_state, 0, ROT0, "Bwb","Club Sandwich (Bwb) (MPU5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL ) -GAMEL( 199?, m5dick ,0, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Dick Turnip (Bwb) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5dick10 ) -GAMEL( 199?, m5dick10 ,m5dick, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Dick Turnip (Bwb) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5dick10 ) +GAMEL( 199?, m5dick ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Bwb","Dick Turnip (Bwb) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5dick10 ) +GAMEL( 199?, m5dick10 ,m5dick, mpu5, mpu5, mpu5_state, 0, ROT0, "Bwb","Dick Turnip (Bwb) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5dick10 ) -GAME( 199?, m5donna ,0, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Donna Kebab (Bwb) (MPU5, set 1)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5donnad ,0, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Donna Kebab (Bwb) (MPU5, set 1, Datapak)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5donnaa ,m5donna, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Donna Kebab (Bwb) (MPU5, set 3)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5donna ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Bwb","Donna Kebab (Bwb) (MPU5, set 1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5donnad ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Bwb","Donna Kebab (Bwb) (MPU5, set 1, Datapak)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5donnaa ,m5donna, mpu5, mpu5, mpu5_state, 0, ROT0, "Bwb","Donna Kebab (Bwb) (MPU5, set 3)", MACHINE_IS_SKELETON_MECHANICAL ) -GAMEL( 199?, m5dblqts ,0, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Double Or Quits (Bwb) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5dblqtsb ) -GAMEL( 199?, m5dblqtsa ,m5dblqts, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Double Or Quits (Bwb) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5dblqtsb ) -GAMEL( 199?, m5dblqtsb ,m5dblqts, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Double Or Quits (Bwb) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5dblqtsb ) -GAMEL( 199?, m5dblqts1b ,m5dblqts, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Double Or Quits (Bwb) (MPU5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5dblqtsb ) +GAMEL( 199?, m5dblqts ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Bwb","Double Or Quits (Bwb) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5dblqtsb ) +GAMEL( 199?, m5dblqtsa ,m5dblqts, mpu5, mpu5, mpu5_state, 0, ROT0, "Bwb","Double Or Quits (Bwb) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5dblqtsb ) +GAMEL( 199?, m5dblqtsb ,m5dblqts, mpu5, mpu5, mpu5_state, 0, ROT0, "Bwb","Double Or Quits (Bwb) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5dblqtsb ) +GAMEL( 199?, m5dblqts1b ,m5dblqts, mpu5, mpu5, mpu5_state, 0, ROT0, "Bwb","Double Or Quits (Bwb) (MPU5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5dblqtsb ) -GAME( 199?, m5eggold ,0, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Egyptian Gold (Bwb) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5eggold ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Bwb","Egyptian Gold (Bwb) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m55050 ,0, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Fifty Fifty (Bwb) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m55050 ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Bwb","Fifty Fifty (Bwb) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5gpclub ,0, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Get Plastered Club (Bwb) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5gpclub ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Bwb","Get Plastered Club (Bwb) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5goape ,0, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Going Ape (Bwb) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5goape ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Bwb","Going Ape (Bwb) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAMEL( 199?, m5hgl ,0, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Happy Go Lucky (Bwb) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5hgl14 ) -GAMEL( 199?, m5hgl16 ,m5hgl, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Happy Go Lucky (Bwb) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5hgl14 ) -GAMEL( 199?, m5hgl14 ,m5hgl, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Happy Go Lucky (Bwb) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5hgl14 ) +GAMEL( 199?, m5hgl ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Bwb","Happy Go Lucky (Bwb) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5hgl14 ) +GAMEL( 199?, m5hgl16 ,m5hgl, mpu5, mpu5, mpu5_state, 0, ROT0, "Bwb","Happy Go Lucky (Bwb) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5hgl14 ) +GAMEL( 199?, m5hgl14 ,m5hgl, mpu5, mpu5, mpu5_state, 0, ROT0, "Bwb","Happy Go Lucky (Bwb) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5hgl14 ) -GAME( 199?, m5jokpak ,0, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Joker In The Pack (Bwb) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5jokpak ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Bwb","Joker In The Pack (Bwb) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5lvwire ,0, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Live Wire (Bwb) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5lvwirea ,m5lvwire, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Live Wire (Bwb) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5lvwire ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Bwb","Live Wire (Bwb) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5lvwirea ,m5lvwire, mpu5, mpu5, mpu5_state, 0, ROT0, "Bwb","Live Wire (Bwb) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5carpet ,0, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Magic Carpet (Bwb) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5carpet12 ,m5carpet, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Magic Carpet (Bwb) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5carpet ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Bwb","Magic Carpet (Bwb) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5carpet12 ,m5carpet, mpu5, mpu5, mpu5_state, 0, ROT0, "Bwb","Magic Carpet (Bwb) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5minesw ,0, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Minesweeper (Bwb) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5minesw ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Bwb","Minesweeper (Bwb) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAMEL( 199?, m5psycho ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Psycho Cash Beast (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5psycho ) -GAMEL( 199?, m5psycho06 ,m5psycho, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Psycho Cash Beast (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5psycho ) -GAMEL( 199?, m5psychoa ,m5psycho, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Psycho Cash Beast (Bwb) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5psycho ) -GAMEL( 199?, m5psychoa21 ,m5psycho, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Psycho Cash Beast (Bwb) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5psycho ) +GAMEL( 199?, m5psycho ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Psycho Cash Beast (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5psycho ) +GAMEL( 199?, m5psycho06 ,m5psycho, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Psycho Cash Beast (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5psycho ) +GAMEL( 199?, m5psychoa ,m5psycho, mpu5, mpu5, mpu5_state, 0, ROT0, "Bwb","Psycho Cash Beast (Bwb) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5psycho ) +GAMEL( 199?, m5psychoa21 ,m5psycho, mpu5, mpu5, mpu5_state, 0, ROT0, "Bwb","Psycho Cash Beast (Bwb) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5psycho ) -GAMEL( 199?, m5psyccl ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Psycho Cash Beast Club (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5psyccl01 ) -GAMEL( 199?, m5psyccl01 ,m5psyccl, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Psycho Cash Beast Club (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5psyccl01 ) -GAMEL( 199?, m5psyccla ,m5psyccl, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Psycho Cash Beast Club (Bwb) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5psyccl01 ) -GAMEL( 199?, m5psyccla24 ,m5psyccl, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Psycho Cash Beast Club (Bwb) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5psyccl01 ) -GAMEL( 199?, m5psyccla02 ,m5psyccl, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Psycho Cash Beast Club (Bwb) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5psyccl01 ) +GAMEL( 199?, m5psyccl ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Psycho Cash Beast Club (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5psyccl01 ) +GAMEL( 199?, m5psyccl01 ,m5psyccl, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Psycho Cash Beast Club (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5psyccl01 ) +GAMEL( 199?, m5psyccla ,m5psyccl, mpu5, mpu5, mpu5_state, 0, ROT0, "Bwb","Psycho Cash Beast Club (Bwb) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5psyccl01 ) +GAMEL( 199?, m5psyccla24 ,m5psyccl, mpu5, mpu5, mpu5_state, 0, ROT0, "Bwb","Psycho Cash Beast Club (Bwb) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5psyccl01 ) +GAMEL( 199?, m5psyccla02 ,m5psyccl, mpu5, mpu5, mpu5_state, 0, ROT0, "Bwb","Psycho Cash Beast Club (Bwb) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5psyccl01 ) -GAMEL( 199?, m5rwb ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Red White & Blue (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5rwb ) -GAMEL( 199?, m5rwbbwb ,m5rwb, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Red White & Blue (Bwb) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5rwb ) -GAMEL( 199?, m5rwbbwb24 ,m5rwb, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Red White & Blue (Bwb) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5rwb ) -GAMEL( 199?, m5rwbbwb25 ,m5rwb, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Red White & Blue (Bwb) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5rwb ) -GAMEL( 199?, m5rwbbwb15 ,m5rwb, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Red White & Blue (Bwb) (MPU5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5rwb ) +GAMEL( 199?, m5rwb ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Barcrest","Red White & Blue (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5rwb ) +GAMEL( 199?, m5rwbbwb ,m5rwb, mpu5, mpu5, mpu5_state, 0, ROT0, "Bwb","Red White & Blue (Bwb) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5rwb ) +GAMEL( 199?, m5rwbbwb24 ,m5rwb, mpu5, mpu5, mpu5_state, 0, ROT0, "Bwb","Red White & Blue (Bwb) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5rwb ) +GAMEL( 199?, m5rwbbwb25 ,m5rwb, mpu5, mpu5, mpu5_state, 0, ROT0, "Bwb","Red White & Blue (Bwb) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5rwb ) +GAMEL( 199?, m5rwbbwb15 ,m5rwb, mpu5, mpu5, mpu5_state, 0, ROT0, "Bwb","Red White & Blue (Bwb) (MPU5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5rwb ) -GAME( 199?, m5reelwn ,0, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Reel A Win (Bwb) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5reelwn24 ,m5reelwn, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Reel A Win (Bwb) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5reelwn ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Bwb","Reel A Win (Bwb) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5reelwn24 ,m5reelwn, mpu5, mpu5, mpu5_state, 0, ROT0, "Bwb","Reel A Win (Bwb) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5reelth ,0, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Reel Thunder (Bwb) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5reelth ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Bwb","Reel Thunder (Bwb) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5rlup ,0, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Roll Up (Bwb) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5rlup ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Bwb","Roll Up (Bwb) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5round ,0, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Round & Round (Bwb) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5round ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Bwb","Round & Round (Bwb) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5sec7 ,0, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Secret 7s (Bwb) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5sec7a ,m5sec7, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Secret 7s (Bwb) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5sec7 ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Bwb","Secret 7s (Bwb) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5sec7a ,m5sec7, mpu5, mpu5, mpu5_state, 0, ROT0, "Bwb","Secret 7s (Bwb) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5sil7 ,0, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Silver 7s (Bwb) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5sil7a ,m5sil7, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Silver 7s (Bwb) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5sil7 ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Bwb","Silver 7s (Bwb) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5sil7a ,m5sil7, mpu5, mpu5, mpu5_state, 0, ROT0, "Bwb","Silver 7s (Bwb) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5smobik ,0, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Smokey Bikin (Bwb) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5smobik12 ,m5smobik, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Smokey Bikin (Bwb) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5smobik ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Bwb","Smokey Bikin (Bwb) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5smobik12 ,m5smobik, mpu5, mpu5, mpu5_state, 0, ROT0, "Bwb","Smokey Bikin (Bwb) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) -GAMEL( 199?, m5tictac ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Tic Tac Tut (Vivid) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5tictacbwb ) -GAMEL( 199?, m5tictacbwb ,m5tictac, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Tic Tac Tut (Bwb) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5tictacbwb ) -GAMEL( 199?, m5tictacbwb16,m5tictac, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Tic Tac Tut (Bwb) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5tictacbwb ) +GAMEL( 199?, m5tictac ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Vivid","Tic Tac Tut (Vivid) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5tictacbwb ) +GAMEL( 199?, m5tictacbwb ,m5tictac, mpu5, mpu5, mpu5_state, 0, ROT0, "Bwb","Tic Tac Tut (Bwb) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5tictacbwb ) +GAMEL( 199?, m5tictacbwb16,m5tictac, mpu5, mpu5, mpu5_state, 0, ROT0, "Bwb","Tic Tac Tut (Bwb) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5tictacbwb ) -GAME( 199?, m5xena ,0, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Xena Warrior Princess (Bwb) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5xena ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Bwb","Xena Warrior Princess (Bwb) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) /* Lowen */ -GAME( 199?, m5all41low ,m5all41, mpu5, mpu5, driver_device, 0, ROT0, "Lowen","All 4 One (Lowen) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5dblfun ,0, mpu5, mpu5, driver_device, 0, ROT0, "Lowen","Double Fun (Lowen) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5jakjok ,0, mpu5, mpu5, driver_device, 0, ROT0, "Lowen","Jackpot Jokers (Lowen) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5roundl ,m5round, mpu5, mpu5, driver_device, 0, ROT0, "Lowen","Round & Round (Lowen) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 199?, m5scfinl ,0, mpu5, mpu5, driver_device, 0, ROT0, "Lowen","Super Cup Final (Lowen) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5all41low ,m5all41, mpu5, mpu5, mpu5_state, 0, ROT0, "Lowen","All 4 One (Lowen) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5dblfun ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Lowen","Double Fun (Lowen) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5jakjok ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Lowen","Jackpot Jokers (Lowen) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5roundl ,m5round, mpu5, mpu5, mpu5_state, 0, ROT0, "Lowen","Round & Round (Lowen) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, m5scfinl ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Lowen","Super Cup Final (Lowen) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL ) /* Others / Uncertain */ -GAMEL( 199?, m5ppussy ,0, mpu5, mpu5, driver_device, 0, ROT0, "Mdm","Pink Pussy (Mdm) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5ppussy ) +GAMEL( 199?, m5ppussy ,0, mpu5, mpu5, mpu5_state, 0, ROT0, "Mdm","Pink Pussy (Mdm) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL, layout_m5ppussy ) diff --git a/src/mame/drivers/mpz80.cpp b/src/mame/drivers/mpz80.cpp index cb6c4d3af98..15e64582680 100644 --- a/src/mame/drivers/mpz80.cpp +++ b/src/mame/drivers/mpz80.cpp @@ -709,7 +709,7 @@ void mpz80_state::machine_reset() // MACHINE_CONFIG( mpz80 ) //------------------------------------------------- -static MACHINE_CONFIG_START( mpz80, mpz80_state ) +static MACHINE_CONFIG_START( mpz80 ) // basic machine hardware MCFG_CPU_ADD(Z80_TAG, Z80, XTAL_4MHz) MCFG_CPU_PROGRAM_MAP(mpz80_mem) @@ -778,5 +778,5 @@ ROM_END // SYSTEM DRIVERS //************************************************************************** -// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS -COMP( 1980, mpz80, 0, 0, mpz80, mpz80, driver_device, 0, "Morrow Designs", "MPZ80", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1980, mpz80, 0, 0, mpz80, mpz80, mpz80_state, 0, "Morrow Designs", "MPZ80", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW ) diff --git a/src/mame/drivers/mquake.cpp b/src/mame/drivers/mquake.cpp index 47e009cd4b4..45a6f6f935f 100644 --- a/src/mame/drivers/mquake.cpp +++ b/src/mame/drivers/mquake.cpp @@ -302,7 +302,7 @@ INPUT_PORTS_END * *************************************/ -static MACHINE_CONFIG_START( mquake, mquake_state ) +static MACHINE_CONFIG_START( mquake ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, amiga_state::CLK_7M_NTSC) diff --git a/src/mame/drivers/mrdo.cpp b/src/mame/drivers/mrdo.cpp index 8501dde3262..8560a2fa8da 100644 --- a/src/mame/drivers/mrdo.cpp +++ b/src/mame/drivers/mrdo.cpp @@ -169,7 +169,7 @@ static GFXDECODE_START( mrdo ) GFXDECODE_END -static MACHINE_CONFIG_START( mrdo, mrdo_state ) +static MACHINE_CONFIG_START( mrdo ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, MAIN_CLOCK/2) /* Verified */ @@ -389,10 +389,10 @@ ROM_END -GAME( 1982, mrdo, 0, mrdo, mrdo, driver_device, 0, ROT270, "Universal", "Mr. Do!", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, mrdoy, mrdo, mrdo, mrdo, driver_device, 0, ROT270, "Universal", "Mr. Do! (prototype)" , MACHINE_SUPPORTS_SAVE ) /* aka "Yukidaruma" */ -GAME( 1982, mrdot, mrdo, mrdo, mrdo, driver_device, 0, ROT270, "Universal (Taito license)", "Mr. Do! (Taito)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, mrdofix, mrdo, mrdo, mrdo, driver_device, 0, ROT270, "Universal (Taito license)", "Mr. Do! (bugfixed)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, mrlo, mrdo, mrdo, mrdo, driver_device, 0, ROT270, "bootleg", "Mr. Lo!", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, mrdu, mrdo, mrdo, mrdo, driver_device, 0, ROT270, "bootleg", "Mr. Du!", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, yankeedo, mrdo, mrdo, mrdo, driver_device, 0, ROT270, "hack", "Yankee DO!", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, mrdo, 0, mrdo, mrdo, mrdo_state, 0, ROT270, "Universal", "Mr. Do!", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, mrdoy, mrdo, mrdo, mrdo, mrdo_state, 0, ROT270, "Universal", "Mr. Do! (prototype)", MACHINE_SUPPORTS_SAVE ) /* aka "Yukidaruma" */ +GAME( 1982, mrdot, mrdo, mrdo, mrdo, mrdo_state, 0, ROT270, "Universal (Taito license)", "Mr. Do! (Taito)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, mrdofix, mrdo, mrdo, mrdo, mrdo_state, 0, ROT270, "Universal (Taito license)", "Mr. Do! (bugfixed)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, mrlo, mrdo, mrdo, mrdo, mrdo_state, 0, ROT270, "bootleg", "Mr. Lo!", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, mrdu, mrdo, mrdo, mrdo, mrdo_state, 0, ROT270, "bootleg", "Mr. Du!", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, yankeedo, mrdo, mrdo, mrdo, mrdo_state, 0, ROT270, "hack", "Yankee DO!", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/mrflea.cpp b/src/mame/drivers/mrflea.cpp index 99ba8b6109e..da2a3a3524f 100644 --- a/src/mame/drivers/mrflea.cpp +++ b/src/mame/drivers/mrflea.cpp @@ -325,7 +325,7 @@ void mrflea_state::machine_reset() m_select1 = 0; } -static MACHINE_CONFIG_START( mrflea, mrflea_state ) +static MACHINE_CONFIG_START( mrflea ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 4000000) /* 4 MHz? */ @@ -419,4 +419,4 @@ ROM_END * *************************************/ -GAME( 1982, mrflea, 0, mrflea, mrflea, driver_device, 0, ROT270, "Pacific Novelty", "The Amazing Adventures of Mr. F. Lea" , MACHINE_SUPPORTS_SAVE ) +GAME( 1982, mrflea, 0, mrflea, mrflea, mrflea_state, 0, ROT270, "Pacific Novelty", "The Amazing Adventures of Mr. F. Lea" , MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/mrgame.cpp b/src/mame/drivers/mrgame.cpp index ea3065cc1a1..9d332891df2 100644 --- a/src/mame/drivers/mrgame.cpp +++ b/src/mame/drivers/mrgame.cpp @@ -459,7 +459,7 @@ uint32_t mrgame_state::screen_update_mrgame(screen_device &screen, bitmap_ind16 return 0; } -static MACHINE_CONFIG_START( mrgame, mrgame_state ) +static MACHINE_CONFIG_START( mrgame ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_6MHz) MCFG_CPU_PROGRAM_MAP(main_map) @@ -664,8 +664,8 @@ ROM_START(wcup90) ROM_END -GAME(1988, dakar, 0, mrgame, mrgame, mrgame_state, mrgame, ROT0, "Mr Game", "Dakar", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) +GAME(1988, dakar, 0, mrgame, mrgame, mrgame_state, mrgame, ROT0, "Mr Game", "Dakar", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) GAME(1989, motrshow, 0, mrgame, mrgame, mrgame_state, mrgame, ROT0, "Mr Game", "Motor Show (set 1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) GAME(1989, motrshowa, motrshow, mrgame, mrgame, mrgame_state, mrgame, ROT0, "Mr Game", "Motor Show (set 2)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) -GAME(1990, macattck, 0, mrgame, mrgame, mrgame_state, mrgame, ROT0, "Mr Game", "Mac Attack", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1990, wcup90, 0, mrgame, mrgame, mrgame_state, mrgame, ROT0, "Mr Game", "World Cup 90", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1990, macattck, 0, mrgame, mrgame, mrgame_state, mrgame, ROT0, "Mr Game", "Mac Attack", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1990, wcup90, 0, mrgame, mrgame, mrgame_state, mrgame, ROT0, "Mr Game", "World Cup 90", MACHINE_IS_SKELETON_MECHANICAL) diff --git a/src/mame/drivers/mrjong.cpp b/src/mame/drivers/mrjong.cpp index 23bf9a6c0db..e417e14a2d5 100644 --- a/src/mame/drivers/mrjong.cpp +++ b/src/mame/drivers/mrjong.cpp @@ -183,7 +183,7 @@ GFXDECODE_END * *************************************/ -static MACHINE_CONFIG_START( mrjong, mrjong_state ) +static MACHINE_CONFIG_START( mrjong ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80,15468000/6) /* 2.578 MHz?? */ @@ -276,6 +276,6 @@ ROM_END * *************************************/ -GAME( 1983, mrjong, 0, mrjong, mrjong, driver_device, 0, ROT90, "Kiwako", "Mr. Jong (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, crazyblk, mrjong, mrjong, mrjong, driver_device, 0, ROT90, "Kiwako (ECI license)", "Crazy Blocks", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, blkbustr, mrjong, mrjong, mrjong, driver_device, 0, ROT90, "Kiwako (ECI license)", "BlockBuster", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, mrjong, 0, mrjong, mrjong, mrjong_state, 0, ROT90, "Kiwako", "Mr. Jong (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, crazyblk, mrjong, mrjong, mrjong, mrjong_state, 0, ROT90, "Kiwako (ECI license)", "Crazy Blocks", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, blkbustr, mrjong, mrjong, mrjong, mrjong_state, 0, ROT90, "Kiwako (ECI license)", "BlockBuster", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/ms0515.cpp b/src/mame/drivers/ms0515.cpp index 238c733a467..af84f73a627 100644 --- a/src/mame/drivers/ms0515.cpp +++ b/src/mame/drivers/ms0515.cpp @@ -71,18 +71,6 @@ public: , m_ms7004(*this, "ms7004") { } - required_device m_maincpu; - required_device m_ram; - required_device m_fdc; - required_device m_floppy0; - required_device m_floppy1; - required_device m_i8251line; - required_device m_rs232; - required_device m_i8251kbd; - required_device m_ms7004; - - virtual void machine_reset() override; - DECLARE_PALETTE_INIT(ms0515); uint32_t screen_update_ms0515(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); DECLARE_WRITE_LINE_MEMBER(screen_vblank); @@ -101,13 +89,27 @@ public: DECLARE_FLOPPY_FORMATS(floppy_formats); - void irq_encoder(int irq, int state); DECLARE_WRITE_LINE_MEMBER(irq2_w); DECLARE_WRITE_LINE_MEMBER(irq5_w); DECLARE_WRITE_LINE_MEMBER(irq8_w); DECLARE_WRITE_LINE_MEMBER(irq9_w); DECLARE_WRITE_LINE_MEMBER(irq11_w); +protected: + virtual void machine_reset() override; + + void irq_encoder(int irq, int state); + + required_device m_maincpu; + required_device m_ram; + required_device m_fdc; + required_device m_floppy0; + required_device m_floppy1; + required_device m_i8251line; + required_device m_rs232; + required_device m_i8251kbd; + required_device m_ms7004; + private: uint8_t *m_video_ram; uint8_t m_sysrega, m_sysregc; @@ -147,10 +149,10 @@ static ADDRESS_MAP_START(ms0515_mem, AS_PROGRAM, 16, ms0515_state) AM_RANGE(0177600, 0177607) AM_DEVREADWRITE8("ppi8255_1", i8255_device, read, write, 0x00ff) - AM_RANGE(0177640, 0177641) AM_DEVREADWRITE8("vg93", kr1818vg93_t, status_r, cmd_w, 0x00ff) - AM_RANGE(0177642, 0177643) AM_DEVREADWRITE8("vg93", kr1818vg93_t, track_r, track_w, 0x00ff) - AM_RANGE(0177644, 0177645) AM_DEVREADWRITE8("vg93", kr1818vg93_t, sector_r, sector_w, 0x00ff) - AM_RANGE(0177646, 0177647) AM_DEVREADWRITE8("vg93", kr1818vg93_t, data_r, data_w, 0x00ff) + AM_RANGE(0177640, 0177641) AM_DEVREADWRITE8("vg93", kr1818vg93_device, status_r, cmd_w, 0x00ff) + AM_RANGE(0177642, 0177643) AM_DEVREADWRITE8("vg93", kr1818vg93_device, track_r, track_w, 0x00ff) + AM_RANGE(0177644, 0177645) AM_DEVREADWRITE8("vg93", kr1818vg93_device, sector_r, sector_w, 0x00ff) + AM_RANGE(0177646, 0177647) AM_DEVREADWRITE8("vg93", kr1818vg93_device, data_r, data_w, 0x00ff) AM_RANGE(0177700, 0177701) AM_DEVREAD8("i8251line", i8251_device, data_r, 0x00ff) AM_RANGE(0177702, 0177703) AM_DEVREADWRITE8("i8251line", i8251_device, status_r, control_w, 0x00ff) @@ -498,7 +500,7 @@ WRITE_LINE_MEMBER(ms0515_state::irq11_w) irq_encoder(11, state); } -static MACHINE_CONFIG_START( ms0515, ms0515_state ) +static MACHINE_CONFIG_START( ms0515 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", T11, XTAL_4MHz) // actual CPU is T11 clone, KR1807VM1 MCFG_T11_INITIAL_MODE(0xf2ff) @@ -580,5 +582,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1990, ms0515, 0, 0, ms0515, ms0515, driver_device, 0, "Elektronika", "MS 0515", MACHINE_NO_SOUND) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1990, ms0515, 0, 0, ms0515, ms0515, ms0515_state, 0, "Elektronika", "MS 0515", MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/ms32.cpp b/src/mame/drivers/ms32.cpp index e97a1f14543..3f299c6d868 100644 --- a/src/mame/drivers/ms32.cpp +++ b/src/mame/drivers/ms32.cpp @@ -1386,7 +1386,7 @@ void ms32_state::machine_reset() /********** MACHINE DRIVER **********/ -static MACHINE_CONFIG_START( ms32, ms32_state ) +static MACHINE_CONFIG_START( ms32 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", V70, 20000000) // 20MHz @@ -2259,19 +2259,19 @@ DRIVER_INIT_MEMBER(ms32_state,bnstars) GAME( 1994, hayaosi2, 0, ms32, hayaosi2, ms32_state, ss92046_01, ROT0, "Jaleco", "Hayaoshi Quiz Grand Champion Taikai", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) GAME( 1994, hayaosi3, 0, ms32, hayaosi3, ms32_state, ss92046_01, ROT0, "Jaleco", "Hayaoshi Quiz Nettou Namahousou", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1994, bbbxing, 0, ms32, bbbxing, ms32_state, ss92046_01, ROT0, "Jaleco", "Best Bout Boxing", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1994, 47pie2, 0, ms32, 47pie2, ms32_state, 47pie2, ROT0, "Jaleco", "Idol Janshi Suchie-Pai II (v1.1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1994, 47pie2o, 47pie2, ms32, 47pie2, ms32_state, 47pie2, ROT0, "Jaleco", "Idol Janshi Suchie-Pai II (v1.0)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1994, bbbxing, 0, ms32, bbbxing, ms32_state, ss92046_01, ROT0, "Jaleco", "Best Bout Boxing", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1994, 47pie2, 0, ms32, 47pie2, ms32_state, 47pie2, ROT0, "Jaleco", "Idol Janshi Suchie-Pai II (v1.1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1994, 47pie2o, 47pie2, ms32, 47pie2, ms32_state, 47pie2, ROT0, "Jaleco", "Idol Janshi Suchie-Pai II (v1.0)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) GAME( 1995, desertwr, 0, ms32, desertwr, ms32_state, ss91022_10, ROT270, "Jaleco", "Desert War / Wangan Sensou", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) GAME( 1995, gametngk, 0, ms32, gametngk, ms32_state, ss91022_10, ROT270, "Jaleco", "The Game Paradise - Master of Shooting! / Game Tengoku - The Game Paradise", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1995, tetrisp, 0, ms32, tetrisp, ms32_state, ss92046_01, ROT0, "Jaleco / BPS", "Tetris Plus", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1995, p47aces, 0, ms32, p47aces, ms32_state, ss92048_01, ROT0, "Jaleco", "P-47 Aces", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1995, akiss, 0, ms32, 47pie2, ms32_state, kirarast, ROT0, "Jaleco", "Mahjong Angel Kiss", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1996, gratia, 0, ms32, gratia, ms32_state, ss92047_01, ROT0, "Jaleco", "Gratia - Second Earth (92047-01 version)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1996, gratiaa, gratia, ms32, gratia, ms32_state, ss91022_10, ROT0, "Jaleco", "Gratia - Second Earth (91022-10 version)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1995, tetrisp, 0, ms32, tetrisp, ms32_state, ss92046_01, ROT0, "Jaleco / BPS", "Tetris Plus", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1995, p47aces, 0, ms32, p47aces, ms32_state, ss92048_01, ROT0, "Jaleco", "P-47 Aces", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1995, akiss, 0, ms32, 47pie2, ms32_state, kirarast, ROT0, "Jaleco", "Mahjong Angel Kiss", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1996, gratia, 0, ms32, gratia, ms32_state, ss92047_01, ROT0, "Jaleco", "Gratia - Second Earth (92047-01 version)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1996, gratiaa, gratia, ms32, gratia, ms32_state, ss91022_10, ROT0, "Jaleco", "Gratia - Second Earth (91022-10 version)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) GAME( 1996, kirarast, 0, ms32, kirarast, ms32_state, kirarast, ROT0, "Jaleco", "Ryuusei Janshi Kirara Star", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1997, tp2m32, tetrisp2, ms32, tp2m32, ms32_state, ss91022_10, ROT0, "Jaleco", "Tetris Plus 2 (MegaSystem 32 Version)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1997, bnstars, bnstars1, ms32, 47pie2, ms32_state, bnstars, ROT0, "Jaleco", "Vs. Janshi Brandnew Stars (MegaSystem32 Version)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1997, tp2m32, tetrisp2, ms32, tp2m32, ms32_state, ss91022_10, ROT0, "Jaleco", "Tetris Plus 2 (MegaSystem 32 Version)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1997, bnstars, bnstars1, ms32, 47pie2, ms32_state, bnstars, ROT0, "Jaleco", "Vs. Janshi Brandnew Stars (MegaSystem32 Version)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) GAME( 1996, wpksocv2, 0, ms32, wpksocv2, ms32_state, ss92046_01, ROT0, "Jaleco", "World PK Soccer V2 (ver 1.1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/ms9540.cpp b/src/mame/drivers/ms9540.cpp index d159fc10bcb..1f15b290f81 100644 --- a/src/mame/drivers/ms9540.cpp +++ b/src/mame/drivers/ms9540.cpp @@ -40,7 +40,7 @@ public: { } - DECLARE_WRITE8_MEMBER(kbd_put); + void kbd_put(u8 data); private: uint8_t m_term_data; @@ -72,19 +72,19 @@ void ms9540_state::machine_reset() m_maincpu->reset(); } -WRITE8_MEMBER( ms9540_state::kbd_put ) +void ms9540_state::kbd_put(u8 data) { m_term_data = data; } -static MACHINE_CONFIG_START( ms9540, ms9540_state ) +static MACHINE_CONFIG_START( ms9540 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 8000000) // unknown clock MCFG_CPU_PROGRAM_MAP(ms9540_mem) /* video hardware */ MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0) - MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(ms9540_state, kbd_put)) + MCFG_GENERIC_TERMINAL_KEYBOARD_CB(PUT(ms9540_state, kbd_put)) MACHINE_CONFIG_END @@ -102,5 +102,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 198?, ms9540, 0, 0, ms9540, ms9540, driver_device, 0, "Millennium Systems", "ms9540", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW ) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 198?, ms9540, 0, 0, ms9540, ms9540, ms9540_state, 0, "Millennium Systems", "ms9540", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW ) diff --git a/src/mame/drivers/msbc1.cpp b/src/mame/drivers/msbc1.cpp index 25816c299d9..2b2cc5d52f4 100644 --- a/src/mame/drivers/msbc1.cpp +++ b/src/mame/drivers/msbc1.cpp @@ -77,7 +77,7 @@ void msbc1_state::machine_reset() m_maincpu->reset(); } -static MACHINE_CONFIG_START( msbc1, msbc1_state ) +static MACHINE_CONFIG_START( msbc1 ) /* basic machine hardware */ MCFG_CPU_ADD(MC68000R12_TAG, M68000, XTAL_12_5MHz) MCFG_CPU_PROGRAM_MAP(msbc1_mem) @@ -109,5 +109,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1985, msbc1, 0, 0, msbc1, msbc1, driver_device, 0, "Omnibyte", "MSBC-1", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1985, msbc1, 0, 0, msbc1, msbc1, msbc1_state, 0, "Omnibyte", "MSBC-1", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) diff --git a/src/mame/drivers/msisaac.cpp b/src/mame/drivers/msisaac.cpp index 9c2977cce73..4e1deb276f2 100644 --- a/src/mame/drivers/msisaac.cpp +++ b/src/mame/drivers/msisaac.cpp @@ -463,7 +463,7 @@ void msisaac_state::machine_reset() #endif } -static MACHINE_CONFIG_START( msisaac, msisaac_state ) +static MACHINE_CONFIG_START( msisaac ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 4000000) @@ -558,4 +558,4 @@ ROM_START( msisaac ) ROM_END -GAME( 1985, msisaac, 0, msisaac, msisaac, driver_device, 0, ROT270, "Taito Corporation", "Metal Soldier Isaac II", MACHINE_UNEMULATED_PROTECTION | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1985, msisaac, 0, msisaac, msisaac, msisaac_state, 0, ROT270, "Taito Corporation", "Metal Soldier Isaac II", MACHINE_UNEMULATED_PROTECTION | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/mstation.cpp b/src/mame/drivers/mstation.cpp index 0c2b515fee5..842e3032f98 100644 --- a/src/mame/drivers/mstation.cpp +++ b/src/mame/drivers/mstation.cpp @@ -435,7 +435,7 @@ PALETTE_INIT_MEMBER(mstation_state, mstation) } -static MACHINE_CONFIG_START( mstation, mstation_state ) +static MACHINE_CONFIG_START( mstation ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80, XTAL_4MHz) //unknown clock MCFG_CPU_PROGRAM_MAP(mstation_mem) @@ -494,5 +494,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1999, mstation, 0, 0, mstation, mstation, driver_device, 0, "CIDCO", "MailStation", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1999, mstation, 0, 0, mstation, mstation, mstation_state, 0, "CIDCO", "MailStation", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/msx.cpp b/src/mame/drivers/msx.cpp index ab5ea0e9a42..ce80ed060d1 100644 --- a/src/mame/drivers/msx.cpp +++ b/src/mame/drivers/msx.cpp @@ -1341,7 +1341,7 @@ static MACHINE_CONFIG_FRAGMENT( msx2_64kb_vram ) v9938_device::static_set_vram_size(*device, 0x10000); MACHINE_CONFIG_END -static MACHINE_CONFIG_START( msx, msx_state ) +static MACHINE_CONFIG_START( msx ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_10_738635MHz/3) /* 3.579545 MHz */ MCFG_CPU_PROGRAM_MAP(msx_memory_map) @@ -1481,7 +1481,7 @@ static MACHINE_CONFIG_DERIVED( msx_tms9929, msx ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( msx2, msx_state ) +static MACHINE_CONFIG_START( msx2 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_21_4772MHz/6) /* 3.579545 MHz */ MCFG_CPU_PROGRAM_MAP(msx_memory_map) @@ -1539,7 +1539,7 @@ static MACHINE_CONFIG_START( msx2, msx_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( msx2p, msx_state ) +static MACHINE_CONFIG_START( msx2p ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_21_4772MHz/6) /* 3.579545 MHz */ MCFG_CPU_PROGRAM_MAP(msx_memory_map) @@ -8243,258 +8243,258 @@ static MACHINE_CONFIG_DERIVED( fsa1st, msx2 ) MACHINE_CONFIG_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ +/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ /* MSX1 */ -COMP(1986, ax150, 0, 0, ax150, msx, driver_device, 0, "Al Alamiah", "AX-150 (Arabic) (MSX1)", 0) -COMP(1986, ax170, 0, 0, ax170, msx, driver_device, 0, "Al Alamiah", "AX-170 (Arabic) (MSX1)", 0) -COMP(1983, canonv8, 0, 0, canonv8, msx, driver_device, 0, "Canon", "V-8 (MSX1)", 0) -COMP(1983, canonv10, canonv20, 0, canonv10, msx, driver_device, 0, "Canon", "V-10 (MSX1)", 0) -COMP(1983, canonv20, 0, 0, canonv20, msx, driver_device, 0, "Canon", "V-20 (MSX1)", 0) -COMP(1983, canonv20e, canonv20, 0, canonv20, msx, driver_device, 0, "Canon", "V-20E (MSX1)", 0) // Different Euro keyboard layout? -COMP(1983, canonv20f, canonv20, 0, canonv20, msx, driver_device, 0, "Canon", "V-20F (MSX1)", 0) // Different French keyboard layout? -COMP(1983, canonv20g, canonv20, 0, canonv20, msx, driver_device, 0, "Canon", "V-20G (MSX1)", 0) // Different German keyboard layout? -COMP(1983, canonv20s, canonv20, 0, canonv20, msx, driver_device, 0, "Canon", "V-20S (MSX1)", 0) // Different Spanish keyboard layout? -COMP(1984, mx10, 0, 0, mx10, msx, driver_device, 0, "Casio", "MX-10 (MSX1)", 0) -COMP(1984, mx101, mx10, 0, mx101, msx, driver_device, 0, "Casio", "MX-101 (MSX1)", 0) -COMP(1984, mx15, mx10, 0, mx15, msx, driver_device, 0, "Casio", "MX-15 (MSX1)", 0) -COMP(1984, pv7, 0, 0, pv7, msx, driver_device, 0, "Casio", "PV-7 (MSX1)", 0) -COMP(1984, pv16, 0, 0, pv16, msx, driver_device, 0, "Casio", "PV-16 (MSX1)", 0) -COMP(198?, cpc88, 0, 0, cpc88, msxkr, driver_device, 0, "Daewoo", "CPC-88 (Korea) (MSX1)", 0) -COMP(1984, dpc100, dpc200, 0, dpc100, msxkr, driver_device, 0, "Daewoo", "IQ-1000 DPC-100 (Korea) (MSX1)", 0) -COMP(1984, dpc180, dpc200, 0, dpc180, msxkr, driver_device, 0, "Daewoo", "IQ-1000 DPC-180 (Korea) (MSX1)", 0) -COMP(1984, dpc200, 0, 0, dpc200, msxkr, driver_device, 0, "Daewoo", "IQ-1000 DPC-200 (Korea) (MSX1)", 0) -COMP(1985, dpc200e, 0, 0, dpc200e, msx, driver_device, 0, "Daewoo", "DPC-200E (MSX1)", 0) -COMP(1983, cpc50a, cpc51, 0, cpc50a, msxkr, driver_device, 0, "Daewoo", "Zemmix CPC-50A (Korea) (MSX1)", 0) -COMP(1983, cpc50b, cpc51, 0, cpc50b, msxkr, driver_device, 0, "Daewoo", "Zemmix CPC-50B (Korea) (MSX1)", 0) -COMP(1986, cpc51, 0, 0, cpc51, msxkr, driver_device, 0, "Daewoo", "Zemmix CPC-51 (Korea) (MSX1)", 0) -COMP(1983, fdpc200, 0, 0, fdpc200, msx, driver_device, 0, "Fenner", "DPC-200 (Italy) (MSX1)", 0) -COMP(1984, fpc500, 0, 0, fpc500, msx, driver_device, 0, "Fenner", "FPC-500 (Italy) (MSX1)", 0) -COMP(1986, fspc800, 0, 0, fspc800, msx, driver_device, 0, "Fenner", "SPC-800 (Italy) (MSX1)", 0) -COMP(1984, bruc100, 0, 0, bruc100, msx, driver_device, 0, "Frael", "Bruc 100-1 (MSX1)", 0) -COMP(1983, fmx, 0, 0, fmx, msxjp, driver_device, 0, "Fujitsu", "FM-X (MSX1)", 0) -COMP(1984, gsfc80u, 0, 0, gsfc80u, msxkr, driver_device, 0, "Goldstar", "FC-80U (MSX1)", 0) -COMP(1983, gsfc200, 0, 0, gsfc200, msx, driver_device, 0, "Goldstar", "FC-200 (MSX1)", 0) -COMP(198?, gfc1080, 0, 0, gfc1080, msxkr, driver_device, 0, "Goldstar", "GFC-1080 (MSX1)", 0) -COMP(198?, gfc1080a, 0, 0, gfc1080a, msxkr, driver_device, 0, "Goldstar", "GFC-1080A (MSX1)", 0) -COMP(1983, expert10, expert13, 0, expert10, expert10, driver_device, 0, "Gradiente", "Expert 1.0 (Brazil) (MSX1)", 0) -COMP(1984, expert11, expert13, 0, expert11, expert11, driver_device, 0, "Gradiente", "Expert 1.1 (Brazil) (MSX1)", 0) -COMP(1984, expert13, 0, 0, expert13, expert11, driver_device, 0, "Gradiente", "Expert 1.3 (Brazil) (MSX1)", 0) -COMP(1985, expertdp, 0, 0, expertdp, expert11, driver_device, 0, "Gradiente", "Expert DDPlus (Brazil) (MSX1)", 0) -COMP(1984, expertpl, 0, 0, expertpl, expert11, driver_device, 0, "Gradiente", "Expert Plus (Brazil) (MSX1)", 0) -COMP(1984, mbh2, 0, 0, mbh2, msxjp, driver_device, 0, "Hitachi", "MB-H2 (MSX1)", 0) -COMP(1984, mbh25, 0, 0, mbh25, msxjp, driver_device, 0, "Hitachi", "MB-H25 (MSX1)", 0) -COMP(1983, mbh50, 0, 0, mbh50, msxjp, driver_device, 0, "Hitachi", "MB-H50 (MSX1)", 0) -COMP(1983, jvchc7gb, 0, 0, jvchc7gb, msx, driver_device, 0, "JVC", "HC-7GB (MSX1)", 0) -COMP(198?, mlf48, 0, 0, mlf48, msx, driver_device, 0, "Mitsubishi", "ML-F48 (MSX1)", 0) -COMP(1983, mlf80, 0, 0, mlf80, msx, driver_device, 0, "Mitsubishi", "ML-F80 (MSX1)", 0) -COMP(1984, mlf110, 0, 0, mlf110, msxjp, driver_device, 0, "Mitsubishi", "ML-F110 (MSX1)", 0) -COMP(1984, mlf120, 0, 0, mlf120, msxjp, driver_device, 0, "Mitsubishi", "ML-F120 (MSX1)", 0) -COMP(1983, mlfx1, 0, 0, mlfx1, msx, driver_device, 0, "Mitsubishi", "ML-FX1 (MSX1)", 0) -COMP(1984, cf1200, 0, 0, cf1200, msxjp, driver_device, 0, "National / Matsushita", "CF-1200 (Japan) (MSX1)", 0) -COMP(1983, cf2000, 0, 0, cf2000, msxjp, driver_device, 0, "National / Matsushita", "CF-2000 (Japan) (MSX1)", 0) -COMP(1984, cf2700, 0, 0, cf2700, msxjp, driver_device, 0, "National / Matsushita", "CF-2700 (Japan) (MSX1)", 0) -COMP(1984, cf3000, 0, 0, cf3000, msxjp, driver_device, 0, "National / Matsushita", "CF-3000 (Japan) (MSX1)", 0) -COMP(1985, cf3300, 0, 0, cf3300, msxjp, driver_device, 0, "National / Matsushita", "CF-3300 (Japan) (MSX1)", 0) -COMP(1985, fs1300, 0, 0, fs1300, msxjp, driver_device, 0, "National / Matsushita", "FS-1300 (Japan) (MSX1)", 0) -COMP(1985, fs4000, 0, 0, fs4000, msxjp, driver_device, 0, "National / Matsushita", "FS-4000 (Japan) (MSX1)", 0) -COMP(1985, fs4000a, fs4000, 0, fs4000a, msxjp, driver_device, 0, "National / Matsushita", "FS-4000 (alt) (Japan) (MSX1)", 0) -COMP(1983, phc2, 0, 0, phc2, msx, driver_device, 0, "Olympia", "PHC-2 (MSX1)" , 0) -COMP(19??, phc28, 0, 0, phc28, msx, driver_device, 0, "Olympia", "PHC-28 (MSX1)", 0) -COMP(1984, cf2700g, 0, 0, cf2700g, msx, driver_device, 0, "Panasonic", "CF-2700G (Germany) (MSX1)", 0) -COMP(198?, perfect1, 0, 0, perfect1, msx, driver_device, 0, "Perfect", "Perfect1 (MSX1)", MACHINE_NOT_WORKING) -COMP(1983, nms801, 0, 0, nms801, msx, driver_device, 0, "Philips", "NMS-801 (MSX1)", 0) -COMP(1984, vg8000, vg8010, 0, vg8000, msx, driver_device, 0, "Philips", "VG-8000 (MSX1)", 0) -COMP(1984, vg8010, 0, 0, vg8010, msx, driver_device, 0, "Philips", "VG-8010 (MSX1)", 0) -COMP(1984, vg8010f, vg8010, 0, vg8010f, msx, driver_device, 0, "Philips", "VG-8010F (MSX1)" , 0) -COMP(1985, vg802000, vg802020, 0, vg802000, msx, driver_device, 0, "Philips", "VG-8020-00 (MSX1)", 0) -COMP(1985, vg802020, 0, 0, vg802020, msx, driver_device, 0, "Philips", "VG-8020-20 (MSX1)", 0) -COMP(19??, vg8020f, vg802020, 0, vg8020f, msx, driver_device, 0, "Philips", "VG-8020F (MSX1)", 0) -COMP(1985, piopx7, 0, 0, piopx7, msx, driver_device, 0, "Pioneer", "PX-07 Palcom (MSX1)", 0) -COMP(1985, piopx7uk, piopx7, 0, piopx7uk, msx, driver_device, 0, "Pioneer", "PX-07UK Palcom (MSX1)", 0) -COMP(1984, piopxv60, piopx7, 0, piopxv60, msxjp, driver_device, 0, "Pioneer", "PX-V60 (MSX1)", 0) -COMP(19??, spc800, 0, 0, spc800, msx, driver_device, 0, "Samsung", "SPC-800 (MSX1)", 0) -COMP(1985, mpc64, 0, 0, mpc64, msxjp, driver_device, 0, "Sanyo", "MPC-64 (MSX1)", 0) -COMP(1985, mpc100, 0, 0, mpc100, msx, driver_device, 0, "Sanyo", "MPC-100 (MSX1)", 0) -COMP(1983, mpc200, 0, 0, mpc200, msx, driver_device, 0, "Sanyo", "MPC-200 (MSX1)", 0) -COMP(1983, mpc200sp, mpc200, 0, mpc200sp, msx, driver_device, 0, "Sanyo", "MPC-200SP (MSX1)", 0) // Spanish keyboard? -COMP(1983, phc28l, 0, 0, phc28l, msx, driver_device, 0, "Sanyo", "PHC-28L (MSX1)", 0) -COMP(1983, phc28s, 0, 0, phc28s, msx, driver_device, 0, "Sanyo", "PHC-28S (MSX1)", 0) -COMP(19??, mpc10, 0, 0, mpc10, msx, driver_device, 0, "Sanyo", "Wavy MPC-10 (MSX1)", 0) -COMP(1985, hotbit11, hotbi13p, 0, hotbit11, hotbit, driver_device, 0, "Sharp / Epcom", "HB-8000 Hotbit 1.1 (MSX1)", 0) -COMP(1985, hotbit12, hotbi13p, 0, hotbit12, hotbit, driver_device, 0, "Sharp / Epcom", "HB-8000 Hotbit 1.2 (MSX1)", 0) -COMP(1985, hotbi13b, hotbi13p, 0, hotbi13b, hotbit, driver_device, 0, "Sharp / Epcom", "HB-8000 Hotbit 1.3b (MSX1)", 0) -COMP(1985, hotbi13p, 0, 0, hotbi13p, hotbit, driver_device, 0, "Sharp / Epcom", "HB-8000 Hotbit 1.3p (MSX1)", 0) -COMP(198?, hb10, hb10p, 0, hb10, msxjp, driver_device, 0, "Sony", "HB-10 (MSX1)", 0) -COMP(1985, hb10p, 0, 0, hb10p, msx, driver_device, 0, "Sony", "HB-10P (MSX1)", 0) -COMP(1984, hb101p, 0, 0, hb101p, msx, driver_device, 0, "Sony", "HB-101P (MSX1)", 0) -COMP(1985, hb20p, 0, 0, hb20p, msx, driver_device, 0, "Sony", "HB-20P (Spanish) (MSX1)", 0) -COMP(1985, hb201, hb201p, 0, hb201, msxjp, driver_device, 0, "Sony", "HB-201 (Japan) (MSX1)", 0) -COMP(1985, hb201p, 0, 0, hb201p, msx, driver_device, 0, "Sony", "HB-201P (MSX1)", 0) -COMP(1984, hb501p, 0, 0, hb501p, msx, driver_device, 0, "Sony", "HB-501P (MSX1)", 0) -COMP(1983, hb55, hb55p, 0, hb55, msxjp, driver_device, 0, "Sony", "HB-55 (MSX1)", 0) -COMP(1983, hb55d, hb55p, 0, hb55d, msx, driver_device, 0, "Sony", "HB-55D (Germany) (MSX1)", 0) -COMP(1983, hb55p, 0, 0, hb55p, msx, driver_device, 0, "Sony", "HB-55P (MSX1)", 0) -COMP(1984, hb701fd, 0, 0, hb701fd, msxjp, driver_device, 0, "Sony", "HB-701FD (MSX1)", 0) -COMP(1983, hb75d, hb75p, 0, hb75d, msx, driver_device, 0, "Sony", "HB-75D (Germany) (MSX1)", 0) -COMP(1983, hb75p, 0, 0, hb75p, msx, driver_device, 0, "Sony", "HB-75P (MSX1)", 0) -COMP(1985, svi728, 0, 0, svi728, msx, driver_device, 0, "Spectravideo", "SVI-728 (MSX1)", 0) -COMP(1985, svi738, 0, 0, svi738, msx, driver_device, 0, "Spectravideo", "SVI-738 (MSX1)", 0) -COMP(1983, svi738ar, svi738, 0, svi738ar, msx, driver_device, 0, "Spectravideo", "SVI-738 (Arabic) (MSX1)", 0) -COMP(1983, svi738dk, svi738, 0, svi738dk, msx, driver_device, 0, "Spectravideo", "SVI-738 (Denmark) (MSX1)", 0) -COMP(1983, svi738sp, svi738, 0, svi738sp, msx, driver_device, 0, "Spectravideo", "SVI-738 (Spain) (MSX1)", 0) -COMP(1983, svi738sw, svi738, 0, svi738sw, msx, driver_device, 0, "Spectravideo", "SVI-738 (Swedish) (MSX1)", 0) -COMP(1983, svi738pl, svi738, 0, svi738pl, msx, driver_device, 0, "Spectravideo", "SVI-738 (Poland) (MSX1)", 0) -COMP(1983, tadpc200, dpc200, 0, tadpc200, msx, driver_device, 0, "Talent", "DPC-200 (MSX1)", 0) -COMP(1983, tadpc20a, dpc200, 0, tadpc20a, msx, driver_device, 0, "Talent", "DPC-200A (MSX1)", 0) -COMP(1984, hx10, 0, 0, hx10, msx, driver_device, 0, "Toshiba", "HX-10 (MSX1)", 0) -COMP(1984, hx10d, hx10, 0, hx10d, msxjp, driver_device, 0, "Toshiba", "HX-10D (MSX1)", 0) -COMP(1984, hx10dp, hx10, 0, hx10dp, msxjp, driver_device, 0, "Toshiba", "HX-10DP (MSX1)", 0) -COMP(1984, hx10e, hx10, 0, hx10e, msx, driver_device, 0, "Toshiba", "HX-10E (MSX1)", 0) -COMP(1984, hx10f, hx10, 0, hx10f, msx, driver_device, 0, "Toshiba", "HX-10F (MSX1)", 0) -COMP(1984, hx10s, hx10, 0, hx10s, msx, driver_device, 0, "Toshiba", "HX-10S (MSX1)", 0) -COMP(1984, hx10sa, hx10, 0, hx10sa, msxjp, driver_device, 0, "Toshiba", "HX-10SA (MSX1)", 0) -COMP(1984, hx20, 0, 0, hx20, msx, driver_device, 0, "Toshiba", "HX-20 (MSX1)", 0) -COMP(1984, hx20i, hx20, 0, hx20i, msx, driver_device, 0, "Toshiba", "HX-20I (MSX1)", 0) -COMP(1984, hx21, 0, 0, hx21, msxjp, driver_device, 0, "Toshiba", "HX-21 (MSX1)", MACHINE_NOT_WORKING) // Does not go into firmware -COMP(1984, hx21i, hx21, 0, hx21i, msx, driver_device, 0, "Toshiba", "HX-21I (MSX1)", 0) -COMP(1984, hx22, 0, 0, hx22, msxjp, driver_device, 0, "Toshiba", "HX-22 (MSX1)", MACHINE_NOT_WORKING) // Does not go into firmware -COMP(1984, hx22i, hx22, 0, hx22i, msx, driver_device, 0, "Toshiba", "HX-22I (MSX1)", 0) -COMP(198?, hc5, hc7, 0, hc5, msxjp, driver_device, 0, "Victor", "HC-5 (MSX1)", 0) -COMP(198?, hc6, hc7, 0, hc6, msxjp, driver_device, 0, "Victor", "HC-6 (MSX1)", 0) -COMP(198?, hc7, 0, 0, hc7, msxjp, driver_device, 0, "Victor", "HC-7 (MSX1)", 0) -COMP(1984, cx5f1, cx5f, 0, cx5f1, msxjp, driver_device, 0, "Yamaha", "CX5F (w/SFG01) (MSX1)", 0) -COMP(1984, cx5f, 0, 0, cx5f, msxjp, driver_device, 0, "Yamaha", "CX5F (w/SFG05) (MSX1)", 0) -COMP(1984, cx5m, cx5m128, 0, cx5m, msx, driver_device, 0, "Yamaha", "CX5M (MSX1)", 0) -COMP(1984, cx5m128, 0, 0, cx5m128, msx, driver_device, 0, "Yamaha", "CX5M-128 (MSX1)", 0) -COMP(1984, cx5m2, cx5m128, 0, cx5m2, msx, driver_device, 0, "Yamaha", "CX5MII (MSX1)", 0) -COMP(1984, yis303, 0, 0, yis303, msx, driver_device, 0, "Yamaha", "YIS303 (MSX1)", 0) -COMP(1984, yis503, 0, 0, yis503, msx, driver_device, 0, "Yamaha", "YIS503 (MSX1)", 0) -COMP(19??, yis503f, yis503, 0, yis503f, msx, driver_device, 0, "Yamaha", "YIS503F (MSX1)", 0) -COMP(1984, yis503ii, yis503, 0, yis503ii, msx, driver_device, 0, "Yamaha", "YIS503II (MSX1)", 0) -COMP(1986, y503iir, yis503, 0, y503iir, msx, driver_device, 0, "Yamaha", "YIS503IIR (Russian) (MSX1)", 0) -COMP(1986, y503iir2, yis503, 0, y503iir2, msx, driver_device, 0, "Yamaha", "YIS503IIR (Estonian) (MSX1)", 0) -COMP(1984, yis503m, yis503, 0, yis503m, msx, driver_device, 0, "Yamaha", "YIS503M (MSX1)", 0) -COMP(1984, yc64, 0, 0, yc64, msx, driver_device, 0, "Yashica", "YC-64 (MSX1)", 0) -COMP(1984, mx64, 0, 0, mx64, msxkr, driver_device, 0, "Yeno", "MX64 (MSX1)", 0) +COMP(1986, ax150, 0, 0, ax150, msx, msx_state, 0, "Al Alamiah", "AX-150 (Arabic) (MSX1)", 0) +COMP(1986, ax170, 0, 0, ax170, msx, msx_state, 0, "Al Alamiah", "AX-170 (Arabic) (MSX1)", 0) +COMP(1983, canonv8, 0, 0, canonv8, msx, msx_state, 0, "Canon", "V-8 (MSX1)", 0) +COMP(1983, canonv10, canonv20, 0, canonv10, msx, msx_state, 0, "Canon", "V-10 (MSX1)", 0) +COMP(1983, canonv20, 0, 0, canonv20, msx, msx_state, 0, "Canon", "V-20 (MSX1)", 0) +COMP(1983, canonv20e, canonv20, 0, canonv20, msx, msx_state, 0, "Canon", "V-20E (MSX1)", 0) // Different Euro keyboard layout? +COMP(1983, canonv20f, canonv20, 0, canonv20, msx, msx_state, 0, "Canon", "V-20F (MSX1)", 0) // Different French keyboard layout? +COMP(1983, canonv20g, canonv20, 0, canonv20, msx, msx_state, 0, "Canon", "V-20G (MSX1)", 0) // Different German keyboard layout? +COMP(1983, canonv20s, canonv20, 0, canonv20, msx, msx_state, 0, "Canon", "V-20S (MSX1)", 0) // Different Spanish keyboard layout? +COMP(1984, mx10, 0, 0, mx10, msx, msx_state, 0, "Casio", "MX-10 (MSX1)", 0) +COMP(1984, mx101, mx10, 0, mx101, msx, msx_state, 0, "Casio", "MX-101 (MSX1)", 0) +COMP(1984, mx15, mx10, 0, mx15, msx, msx_state, 0, "Casio", "MX-15 (MSX1)", 0) +COMP(1984, pv7, 0, 0, pv7, msx, msx_state, 0, "Casio", "PV-7 (MSX1)", 0) +COMP(1984, pv16, 0, 0, pv16, msx, msx_state, 0, "Casio", "PV-16 (MSX1)", 0) +COMP(198?, cpc88, 0, 0, cpc88, msxkr, msx_state, 0, "Daewoo", "CPC-88 (Korea) (MSX1)", 0) +COMP(1984, dpc100, dpc200, 0, dpc100, msxkr, msx_state, 0, "Daewoo", "IQ-1000 DPC-100 (Korea) (MSX1)", 0) +COMP(1984, dpc180, dpc200, 0, dpc180, msxkr, msx_state, 0, "Daewoo", "IQ-1000 DPC-180 (Korea) (MSX1)", 0) +COMP(1984, dpc200, 0, 0, dpc200, msxkr, msx_state, 0, "Daewoo", "IQ-1000 DPC-200 (Korea) (MSX1)", 0) +COMP(1985, dpc200e, 0, 0, dpc200e, msx, msx_state, 0, "Daewoo", "DPC-200E (MSX1)", 0) +COMP(1983, cpc50a, cpc51, 0, cpc50a, msxkr, msx_state, 0, "Daewoo", "Zemmix CPC-50A (Korea) (MSX1)", 0) +COMP(1983, cpc50b, cpc51, 0, cpc50b, msxkr, msx_state, 0, "Daewoo", "Zemmix CPC-50B (Korea) (MSX1)", 0) +COMP(1986, cpc51, 0, 0, cpc51, msxkr, msx_state, 0, "Daewoo", "Zemmix CPC-51 (Korea) (MSX1)", 0) +COMP(1983, fdpc200, 0, 0, fdpc200, msx, msx_state, 0, "Fenner", "DPC-200 (Italy) (MSX1)", 0) +COMP(1984, fpc500, 0, 0, fpc500, msx, msx_state, 0, "Fenner", "FPC-500 (Italy) (MSX1)", 0) +COMP(1986, fspc800, 0, 0, fspc800, msx, msx_state, 0, "Fenner", "SPC-800 (Italy) (MSX1)", 0) +COMP(1984, bruc100, 0, 0, bruc100, msx, msx_state, 0, "Frael", "Bruc 100-1 (MSX1)", 0) +COMP(1983, fmx, 0, 0, fmx, msxjp, msx_state, 0, "Fujitsu", "FM-X (MSX1)", 0) +COMP(1984, gsfc80u, 0, 0, gsfc80u, msxkr, msx_state, 0, "Goldstar", "FC-80U (MSX1)", 0) +COMP(1983, gsfc200, 0, 0, gsfc200, msx, msx_state, 0, "Goldstar", "FC-200 (MSX1)", 0) +COMP(198?, gfc1080, 0, 0, gfc1080, msxkr, msx_state, 0, "Goldstar", "GFC-1080 (MSX1)", 0) +COMP(198?, gfc1080a, 0, 0, gfc1080a, msxkr, msx_state, 0, "Goldstar", "GFC-1080A (MSX1)", 0) +COMP(1983, expert10, expert13, 0, expert10, expert10, msx_state, 0, "Gradiente", "Expert 1.0 (Brazil) (MSX1)", 0) +COMP(1984, expert11, expert13, 0, expert11, expert11, msx_state, 0, "Gradiente", "Expert 1.1 (Brazil) (MSX1)", 0) +COMP(1984, expert13, 0, 0, expert13, expert11, msx_state, 0, "Gradiente", "Expert 1.3 (Brazil) (MSX1)", 0) +COMP(1985, expertdp, 0, 0, expertdp, expert11, msx_state, 0, "Gradiente", "Expert DDPlus (Brazil) (MSX1)", 0) +COMP(1984, expertpl, 0, 0, expertpl, expert11, msx_state, 0, "Gradiente", "Expert Plus (Brazil) (MSX1)", 0) +COMP(1984, mbh2, 0, 0, mbh2, msxjp, msx_state, 0, "Hitachi", "MB-H2 (MSX1)", 0) +COMP(1984, mbh25, 0, 0, mbh25, msxjp, msx_state, 0, "Hitachi", "MB-H25 (MSX1)", 0) +COMP(1983, mbh50, 0, 0, mbh50, msxjp, msx_state, 0, "Hitachi", "MB-H50 (MSX1)", 0) +COMP(1983, jvchc7gb, 0, 0, jvchc7gb, msx, msx_state, 0, "JVC", "HC-7GB (MSX1)", 0) +COMP(198?, mlf48, 0, 0, mlf48, msx, msx_state, 0, "Mitsubishi", "ML-F48 (MSX1)", 0) +COMP(1983, mlf80, 0, 0, mlf80, msx, msx_state, 0, "Mitsubishi", "ML-F80 (MSX1)", 0) +COMP(1984, mlf110, 0, 0, mlf110, msxjp, msx_state, 0, "Mitsubishi", "ML-F110 (MSX1)", 0) +COMP(1984, mlf120, 0, 0, mlf120, msxjp, msx_state, 0, "Mitsubishi", "ML-F120 (MSX1)", 0) +COMP(1983, mlfx1, 0, 0, mlfx1, msx, msx_state, 0, "Mitsubishi", "ML-FX1 (MSX1)", 0) +COMP(1984, cf1200, 0, 0, cf1200, msxjp, msx_state, 0, "National / Matsushita", "CF-1200 (Japan) (MSX1)", 0) +COMP(1983, cf2000, 0, 0, cf2000, msxjp, msx_state, 0, "National / Matsushita", "CF-2000 (Japan) (MSX1)", 0) +COMP(1984, cf2700, 0, 0, cf2700, msxjp, msx_state, 0, "National / Matsushita", "CF-2700 (Japan) (MSX1)", 0) +COMP(1984, cf3000, 0, 0, cf3000, msxjp, msx_state, 0, "National / Matsushita", "CF-3000 (Japan) (MSX1)", 0) +COMP(1985, cf3300, 0, 0, cf3300, msxjp, msx_state, 0, "National / Matsushita", "CF-3300 (Japan) (MSX1)", 0) +COMP(1985, fs1300, 0, 0, fs1300, msxjp, msx_state, 0, "National / Matsushita", "FS-1300 (Japan) (MSX1)", 0) +COMP(1985, fs4000, 0, 0, fs4000, msxjp, msx_state, 0, "National / Matsushita", "FS-4000 (Japan) (MSX1)", 0) +COMP(1985, fs4000a, fs4000, 0, fs4000a, msxjp, msx_state, 0, "National / Matsushita", "FS-4000 (alt) (Japan) (MSX1)", 0) +COMP(1983, phc2, 0, 0, phc2, msx, msx_state, 0, "Olympia", "PHC-2 (MSX1)" , 0) +COMP(19??, phc28, 0, 0, phc28, msx, msx_state, 0, "Olympia", "PHC-28 (MSX1)", 0) +COMP(1984, cf2700g, 0, 0, cf2700g, msx, msx_state, 0, "Panasonic", "CF-2700G (Germany) (MSX1)", 0) +COMP(198?, perfect1, 0, 0, perfect1, msx, msx_state, 0, "Perfect", "Perfect1 (MSX1)", MACHINE_NOT_WORKING) +COMP(1983, nms801, 0, 0, nms801, msx, msx_state, 0, "Philips", "NMS-801 (MSX1)", 0) +COMP(1984, vg8000, vg8010, 0, vg8000, msx, msx_state, 0, "Philips", "VG-8000 (MSX1)", 0) +COMP(1984, vg8010, 0, 0, vg8010, msx, msx_state, 0, "Philips", "VG-8010 (MSX1)", 0) +COMP(1984, vg8010f, vg8010, 0, vg8010f, msx, msx_state, 0, "Philips", "VG-8010F (MSX1)" , 0) +COMP(1985, vg802000, vg802020, 0, vg802000, msx, msx_state, 0, "Philips", "VG-8020-00 (MSX1)", 0) +COMP(1985, vg802020, 0, 0, vg802020, msx, msx_state, 0, "Philips", "VG-8020-20 (MSX1)", 0) +COMP(19??, vg8020f, vg802020, 0, vg8020f, msx, msx_state, 0, "Philips", "VG-8020F (MSX1)", 0) +COMP(1985, piopx7, 0, 0, piopx7, msx, msx_state, 0, "Pioneer", "PX-07 Palcom (MSX1)", 0) +COMP(1985, piopx7uk, piopx7, 0, piopx7uk, msx, msx_state, 0, "Pioneer", "PX-07UK Palcom (MSX1)", 0) +COMP(1984, piopxv60, piopx7, 0, piopxv60, msxjp, msx_state, 0, "Pioneer", "PX-V60 (MSX1)", 0) +COMP(19??, spc800, 0, 0, spc800, msx, msx_state, 0, "Samsung", "SPC-800 (MSX1)", 0) +COMP(1985, mpc64, 0, 0, mpc64, msxjp, msx_state, 0, "Sanyo", "MPC-64 (MSX1)", 0) +COMP(1985, mpc100, 0, 0, mpc100, msx, msx_state, 0, "Sanyo", "MPC-100 (MSX1)", 0) +COMP(1983, mpc200, 0, 0, mpc200, msx, msx_state, 0, "Sanyo", "MPC-200 (MSX1)", 0) +COMP(1983, mpc200sp, mpc200, 0, mpc200sp, msx, msx_state, 0, "Sanyo", "MPC-200SP (MSX1)", 0) // Spanish keyboard? +COMP(1983, phc28l, 0, 0, phc28l, msx, msx_state, 0, "Sanyo", "PHC-28L (MSX1)", 0) +COMP(1983, phc28s, 0, 0, phc28s, msx, msx_state, 0, "Sanyo", "PHC-28S (MSX1)", 0) +COMP(19??, mpc10, 0, 0, mpc10, msx, msx_state, 0, "Sanyo", "Wavy MPC-10 (MSX1)", 0) +COMP(1985, hotbit11, hotbi13p, 0, hotbit11, hotbit, msx_state, 0, "Sharp / Epcom", "HB-8000 Hotbit 1.1 (MSX1)", 0) +COMP(1985, hotbit12, hotbi13p, 0, hotbit12, hotbit, msx_state, 0, "Sharp / Epcom", "HB-8000 Hotbit 1.2 (MSX1)", 0) +COMP(1985, hotbi13b, hotbi13p, 0, hotbi13b, hotbit, msx_state, 0, "Sharp / Epcom", "HB-8000 Hotbit 1.3b (MSX1)", 0) +COMP(1985, hotbi13p, 0, 0, hotbi13p, hotbit, msx_state, 0, "Sharp / Epcom", "HB-8000 Hotbit 1.3p (MSX1)", 0) +COMP(198?, hb10, hb10p, 0, hb10, msxjp, msx_state, 0, "Sony", "HB-10 (MSX1)", 0) +COMP(1985, hb10p, 0, 0, hb10p, msx, msx_state, 0, "Sony", "HB-10P (MSX1)", 0) +COMP(1984, hb101p, 0, 0, hb101p, msx, msx_state, 0, "Sony", "HB-101P (MSX1)", 0) +COMP(1985, hb20p, 0, 0, hb20p, msx, msx_state, 0, "Sony", "HB-20P (Spanish) (MSX1)", 0) +COMP(1985, hb201, hb201p, 0, hb201, msxjp, msx_state, 0, "Sony", "HB-201 (Japan) (MSX1)", 0) +COMP(1985, hb201p, 0, 0, hb201p, msx, msx_state, 0, "Sony", "HB-201P (MSX1)", 0) +COMP(1984, hb501p, 0, 0, hb501p, msx, msx_state, 0, "Sony", "HB-501P (MSX1)", 0) +COMP(1983, hb55, hb55p, 0, hb55, msxjp, msx_state, 0, "Sony", "HB-55 (MSX1)", 0) +COMP(1983, hb55d, hb55p, 0, hb55d, msx, msx_state, 0, "Sony", "HB-55D (Germany) (MSX1)", 0) +COMP(1983, hb55p, 0, 0, hb55p, msx, msx_state, 0, "Sony", "HB-55P (MSX1)", 0) +COMP(1984, hb701fd, 0, 0, hb701fd, msxjp, msx_state, 0, "Sony", "HB-701FD (MSX1)", 0) +COMP(1983, hb75d, hb75p, 0, hb75d, msx, msx_state, 0, "Sony", "HB-75D (Germany) (MSX1)", 0) +COMP(1983, hb75p, 0, 0, hb75p, msx, msx_state, 0, "Sony", "HB-75P (MSX1)", 0) +COMP(1985, svi728, 0, 0, svi728, msx, msx_state, 0, "Spectravideo", "SVI-728 (MSX1)", 0) +COMP(1985, svi738, 0, 0, svi738, msx, msx_state, 0, "Spectravideo", "SVI-738 (MSX1)", 0) +COMP(1983, svi738ar, svi738, 0, svi738ar, msx, msx_state, 0, "Spectravideo", "SVI-738 (Arabic) (MSX1)", 0) +COMP(1983, svi738dk, svi738, 0, svi738dk, msx, msx_state, 0, "Spectravideo", "SVI-738 (Denmark) (MSX1)", 0) +COMP(1983, svi738sp, svi738, 0, svi738sp, msx, msx_state, 0, "Spectravideo", "SVI-738 (Spain) (MSX1)", 0) +COMP(1983, svi738sw, svi738, 0, svi738sw, msx, msx_state, 0, "Spectravideo", "SVI-738 (Swedish) (MSX1)", 0) +COMP(1983, svi738pl, svi738, 0, svi738pl, msx, msx_state, 0, "Spectravideo", "SVI-738 (Poland) (MSX1)", 0) +COMP(1983, tadpc200, dpc200, 0, tadpc200, msx, msx_state, 0, "Talent", "DPC-200 (MSX1)", 0) +COMP(1983, tadpc20a, dpc200, 0, tadpc20a, msx, msx_state, 0, "Talent", "DPC-200A (MSX1)", 0) +COMP(1984, hx10, 0, 0, hx10, msx, msx_state, 0, "Toshiba", "HX-10 (MSX1)", 0) +COMP(1984, hx10d, hx10, 0, hx10d, msxjp, msx_state, 0, "Toshiba", "HX-10D (MSX1)", 0) +COMP(1984, hx10dp, hx10, 0, hx10dp, msxjp, msx_state, 0, "Toshiba", "HX-10DP (MSX1)", 0) +COMP(1984, hx10e, hx10, 0, hx10e, msx, msx_state, 0, "Toshiba", "HX-10E (MSX1)", 0) +COMP(1984, hx10f, hx10, 0, hx10f, msx, msx_state, 0, "Toshiba", "HX-10F (MSX1)", 0) +COMP(1984, hx10s, hx10, 0, hx10s, msx, msx_state, 0, "Toshiba", "HX-10S (MSX1)", 0) +COMP(1984, hx10sa, hx10, 0, hx10sa, msxjp, msx_state, 0, "Toshiba", "HX-10SA (MSX1)", 0) +COMP(1984, hx20, 0, 0, hx20, msx, msx_state, 0, "Toshiba", "HX-20 (MSX1)", 0) +COMP(1984, hx20i, hx20, 0, hx20i, msx, msx_state, 0, "Toshiba", "HX-20I (MSX1)", 0) +COMP(1984, hx21, 0, 0, hx21, msxjp, msx_state, 0, "Toshiba", "HX-21 (MSX1)", MACHINE_NOT_WORKING) // Does not go into firmware +COMP(1984, hx21i, hx21, 0, hx21i, msx, msx_state, 0, "Toshiba", "HX-21I (MSX1)", 0) +COMP(1984, hx22, 0, 0, hx22, msxjp, msx_state, 0, "Toshiba", "HX-22 (MSX1)", MACHINE_NOT_WORKING) // Does not go into firmware +COMP(1984, hx22i, hx22, 0, hx22i, msx, msx_state, 0, "Toshiba", "HX-22I (MSX1)", 0) +COMP(198?, hc5, hc7, 0, hc5, msxjp, msx_state, 0, "Victor", "HC-5 (MSX1)", 0) +COMP(198?, hc6, hc7, 0, hc6, msxjp, msx_state, 0, "Victor", "HC-6 (MSX1)", 0) +COMP(198?, hc7, 0, 0, hc7, msxjp, msx_state, 0, "Victor", "HC-7 (MSX1)", 0) +COMP(1984, cx5f1, cx5f, 0, cx5f1, msxjp, msx_state, 0, "Yamaha", "CX5F (w/SFG01) (MSX1)", 0) +COMP(1984, cx5f, 0, 0, cx5f, msxjp, msx_state, 0, "Yamaha", "CX5F (w/SFG05) (MSX1)", 0) +COMP(1984, cx5m, cx5m128, 0, cx5m, msx, msx_state, 0, "Yamaha", "CX5M (MSX1)", 0) +COMP(1984, cx5m128, 0, 0, cx5m128, msx, msx_state, 0, "Yamaha", "CX5M-128 (MSX1)", 0) +COMP(1984, cx5m2, cx5m128, 0, cx5m2, msx, msx_state, 0, "Yamaha", "CX5MII (MSX1)", 0) +COMP(1984, yis303, 0, 0, yis303, msx, msx_state, 0, "Yamaha", "YIS303 (MSX1)", 0) +COMP(1984, yis503, 0, 0, yis503, msx, msx_state, 0, "Yamaha", "YIS503 (MSX1)", 0) +COMP(19??, yis503f, yis503, 0, yis503f, msx, msx_state, 0, "Yamaha", "YIS503F (MSX1)", 0) +COMP(1984, yis503ii, yis503, 0, yis503ii, msx, msx_state, 0, "Yamaha", "YIS503II (MSX1)", 0) +COMP(1986, y503iir, yis503, 0, y503iir, msx, msx_state, 0, "Yamaha", "YIS503IIR (Russian) (MSX1)", 0) +COMP(1986, y503iir2, yis503, 0, y503iir2, msx, msx_state, 0, "Yamaha", "YIS503IIR (Estonian) (MSX1)", 0) +COMP(1984, yis503m, yis503, 0, yis503m, msx, msx_state, 0, "Yamaha", "YIS503M (MSX1)", 0) +COMP(1984, yc64, 0, 0, yc64, msx, msx_state, 0, "Yashica", "YC-64 (MSX1)", 0) +COMP(1984, mx64, 0, 0, mx64, msxkr, msx_state, 0, "Yeno", "MX64 (MSX1)", 0) /* MSX2 */ -COMP(1986, ax350, 0, 0, ax350, msx2, driver_device, 0, "Al Alamiah", "AX-350 (Arabic) (MSX2)", 0) -COMP(1986, ax370, 0, 0, ax370, msx2, driver_device, 0, "Al Alamiah", "AX-370 (Arabic) (MSX2)", 0) -COMP(1985, canonv25, 0, 0, canonv25, msx2, driver_device, 0, "Canon", "V-25 (MSX2)", 0) -COMP(1985, canonv30, 0, 0, canonv30, msx2, driver_device, 0, "Canon", "V-30 (MSX2)", 0) -COMP(1985, canonv30f, canonv30, 0, canonv30f, msx2, driver_device, 0, "Canon", "V-30F (MSX2)", 0) -COMP(1986, cpc300, 0, 0, cpc300, msx2kr, driver_device, 0, "Daewoo", "IQ-2000 CPC-300 (Korea) (MSX2)", 0) -COMP(1986, cpc300e, 0, 0, cpc300e, msx2kr, driver_device, 0, "Daewoo", "IQ-2000 CPC-300E (Korea) (MSX2)", 0) -COMP(1985, cpc330k, 0, 0, cpc330k, msx2kr, driver_device, 0, "Daewoo", "CPC-330K KOBO (Korea) (MSX2)", 0) -COMP(1988, cpc400, 0, 0, cpc400, msx2kr, driver_device, 0, "Daewoo", "X-II CPC-400 (Korea) (MSX2)", 0) -COMP(1988, cpc400s, 0, 0, cpc400s, msx2kr, driver_device, 0, "Daewoo", "X-II CPC-400S (Korea) (MSX2)", 0) -COMP(1990, cpc61, 0, 0, cpc61, msx2kr, driver_device, 0, "Daewoo", "Zemmix CPC-61 (Korea) (MSX2)", 0) -COMP(1991, cpg120, 0, 0, cpg120, msx2kr, driver_device, 0, "Daewoo", "Zemmix CPG-120 Normal (Korea) (MSX2)", MACHINE_NOT_WORKING) // v9958 not added -COMP(198?, fpc900, 0, 0, fpc900, msx2, driver_device, 0, "Fenner", "FPC-900 (MSX2)", 0) -COMP(1986, expert20, 0, 0, expert20, msx2, driver_device, 0, "Gradiente", "Expert 2.0 (Brazil) (MSX2)", 0) -COMP(198?, mbh70, 0, 0, mbh70, msx2jp, driver_device, 0, "Hitachi", "MB-H70 (MSX2)", MACHINE_NOT_WORKING) // Firmware not working -COMP(1987, kmc5000, 0, 0, kmc5000, msx2jp, driver_device, 0, "Kawai", "KMC-5000 (MSX2)", 0) -COMP(1985, mlg1, 0, 0, mlg1, msx2, driver_device, 0, "Mitsubishi", "ML-G1 (MSX2)", 0) -COMP(198?, mlg3, 0, 0, mlg3, msx2, driver_device, 0, "Mitsubishi", "ML-G3 (MSX2)", 0) -COMP(1985, mlg10, 0, 0, mlg10, msx2jp, driver_device, 0, "Mitsubishi", "ML-G10 (MSX2)", 0) -COMP(1983, mlg30, 0, 0, mlg30, msx2, driver_device, 0, "Mitsubishi", "ML-G30 (MSX2)", 0) -COMP(1985, fs5500f1, fs5500f2, 0, fs5500f1, msx2jp, driver_device, 0, "National / Matsushita", "FS-5500F1 (Japan) (MSX2)", 0) -COMP(1985, fs5500f2, 0, 0, fs5500f2, msx2jp, driver_device, 0, "National / Matsushita", "FS-5500F2 (Japan) (MSX2)", 0) -COMP(1986, fs4500, 0, 0, fs4500, msx2jp, driver_device, 0, "National / Matsushita", "FS-4500 (Japan) (MSX2)", 0) -COMP(1986, fs4700, 0, 0, fs4700, msx2jp, driver_device, 0, "National / Matsushita", "FS-4700 (Japan) (MSX2)", 0) -COMP(1986, fs5000, 0, 0, fs5000, msx2jp, driver_device, 0, "National / Matsushita", "FS-5000F2 (Japan) (MSX2)", 0) -COMP(1986, fs4600, 0, 0, fs4600, msx2jp, driver_device, 0, "National / Matsushita", "FS-4600 (Japan) (MSX2)", 0) -COMP(1986, fsa1, fsa1a, 0, fsa1, msx2jp, driver_device, 0, "Panasonic / Matsushita", "FS-A1 / 1st released version (Japan) (MSX2)", 0) -COMP(1986, fsa1a, 0, 0, fsa1a, msx2jp, driver_device, 0, "Panasonic / Matsushita", "FS-A1 / 2nd released version (Japan) (MSX2)", 0) -COMP(1987, fsa1mk2, 0, 0, fsa1mk2, msx2jp, driver_device, 0, "Panasonic / Matsushita", "FS-A1MK2 (Japan) (MSX2)", 0) -COMP(1987, fsa1f, 0, 0, fsa1f, msx2jp, driver_device, 0, "Panasonic / Matsushita", "FS-A1F (Japan) (MSX2)", 0) -COMP(1987, fsa1fm, 0, 0, fsa1fm, msx2jp, driver_device, 0, "Panasonic / Matsushita", "FS-A1FM (Japan) (MSX2)", 0) -COMP(1986, nms8220, nms8220a, 0, nms8220, msx2, driver_device, 0, "Philips", "NMS-8220 (12-jun-1986) (MSX2)", 0) -COMP(1986, nms8220a, 0, 0, nms8220a, msx2, driver_device, 0, "Philips", "NMS-8220 (13-aug-1986) (MSX2)", 0) -COMP(1986, vg8230, 0, 0, vg8230, msx2, driver_device, 0, "Philips", "VG-8230 (MSX2)", 0) -COMP(19??, vg8230j, vg8230, 0, vg8230j, msx2jp, driver_device, 0, "Philips", "VG-8230J (MSX2)", MACHINE_NOT_WORKING) // Screen flashes a few times before going into basic -COMP(1986, vg8235, 0, 0, vg8235, msx2, driver_device, 0, "Philips", "VG-8235 (MSX2)", 0) -COMP(1986, vg8235f, vg8235, 0, vg8235f, msx2, driver_device, 0, "Philips", "VG-8235F (MSX2)", 0) -COMP(1986, vg8240, 0, 0, vg8240, msx2, driver_device, 0, "Philips", "VG-8240 (MSX2)", 0) -COMP(1986, nms8245, 0, 0, nms8245, msx2, driver_device, 0, "Philips", "NMS-8245 (MSX2)", 0) -COMP(1986, nms8245f, nms8245, 0, nms8245f, msx2, driver_device, 0, "Philips", "NMS-8245F (MSX2)", 0) -COMP(1986, nms8250, nms8255, 0, nms8250, msx2, driver_device, 0, "Philips", "NMS-8250 (MSX2)", 0) -COMP(1986, nms8250f, nms8255, 0, nms8250f, msx2, driver_device, 0, "Philips", "NMS-8250F (MSX2)", 0) // French keyboard -COMP(19??, nms8250j, nms8255, 0, nms8250j, msx2jp, driver_device, 0, "Philips", "NMS-8250J (MSX2)", 0) -COMP(1986, nms8255, 0, 0, nms8255, msx2, driver_device, 0, "Philips", "NMS-8255 (MSX2)", 0) -COMP(1986, nms8255f, nms8255, 0, nms8255f, msx2, driver_device, 0, "Philips", "NMS-8255F (MSX2)", 0) // French keyboard -COMP(1986, nms8260, 0, 0, nms8260, msx2, driver_device, 0, "Philips", "NMS-8260 (Prototype) (MSX2)", MACHINE_NOT_WORKING) -COMP(1986, nms8280, 0, 0, nms8280, msx2, driver_device, 0, "Philips", "NMS-8280 (MSX2)", 0) -COMP(1986, nms8280f, nms8280, 0, nms8280f, msx2, driver_device, 0, "Philips", "NMS-8280F (MSX2)", 0) // French keyboard -COMP(1986, nms8280g, nms8280, 0, nms8280g, msx2, driver_device, 0, "Philips", "NMS-8280G (MSX2)", 0) -COMP(19??, mpc2300, 0, 0, mpc2300, msx2, driver_device, 0, "Sanyo", "MPC-2300 (MSX2)", MACHINE_NOT_WORKING) // Keyboard responds differently -COMP(198?, mpc2500f, 0, 0, mpc2500f, msx2, driver_device, 0, "Sanyo", "MPC-2500FD (MSX2)", MACHINE_NOT_WORKING) // Russian keyboard? -COMP(19??, mpc25fd, 0, 0, mpc25fd, msx2, driver_device, 0, "Sanyo", "Wavy MPC-25FD (MSX2)", 0) -COMP(198?, mpc27, 0, 0, mpc27, msx2jp, driver_device, 0, "Sanyo", "Wavy MPC-27 (MSX2)", MACHINE_NOT_WORKING) // Light pen not emulated -COMP(1988, phc23, 0, 0, phc23, msx2jp, driver_device, 0, "Sanyo", "Wavy PHC-23 (Japan) (MSX2)", 0) -COMP(198?, phc55fd2, 0, 0, phc55fd2, msx2jp, driver_device, 0, "Sanyo", "Wavy PHC-55FD2 (MSX2)", 0) -COMP(198?, phc77, 0, 0, phc77, msx2jp, driver_device, 0, "Sanyo", "Wavy PHC-77 (MSX2)", MACHINE_NOT_WORKING) // Firmware not emulated -COMP(1986, hbf1, 0, 0, hbf1, msx2jp, driver_device, 0, "Sony", "HB-F1 (Japan) (MSX2)", MACHINE_NOT_WORKING ) // Screen stays a single color after a while -COMP(1987, hbf12, 0, 0, hbf12, msx2jp, driver_device, 0, "Sony", "HB-F1II (Japan) (MSX2)", MACHINE_NOT_WORKING ) // Screen stays a single color after a while -COMP(1987, hbf1xd, 0, 0, hbf1xd, msx2jp, driver_device, 0, "Sony", "HB-F1XD (Japan) (MSX2)", 0) -COMP(1988, hbf1xdm2, 0, 0, hbf1xdm2, msx2jp, driver_device, 0, "Sony", "HB-F1XDMK2 (Japan) (MSX2)", 0) -COMP(19??, hbf5, 0, 0, hbf5, msx2, driver_device, 0, "Sony", "HB-F5 (MSX2)", 0) -COMP(1985, hbf9p, 0, 0, hbf9p, msx2, driver_device, 0, "Sony", "HB-F9P (MSX2)", 0) -COMP(19??, hbf9pr, hbf9p, 0, hbf9pr, msx2, driver_device, 0, "Sony", "HB-F9P Russion (MSX2)", MACHINE_NOT_WORKING) // Keyboard responds differently -COMP(1985, hbf9s, hbf9p, 0, hbf9s, msx2, driver_device, 0, "Sony", "HB-F9S (MSX2)", 0) -COMP(1986, hbf500, hbf500p, 0, hbf500, msx2jp, driver_device, 0, "Sony", "HB-F500 (Japan) (MSX2)", 0) -COMP(198?, hbf500f, hbf500p, 0, hbf500f, msx2, driver_device, 0, "Sony", "HB-F500F (MSX2)", 0) // French keyboard? -COMP(1985, hbf500p, 0, 0, hbf500p, msx2, driver_device, 0, "Sony", "HB-F500P (MSX2)", 0) -COMP(1985, hbf700d, hbf700p, 0, hbf700d, msx2, driver_device, 0, "Sony", "HB-F700D (Germany) (MSX2)", 0) -COMP(1985, hbf700f, hbf700p, 0, hbf700f, msx2, driver_device, 0, "Sony", "HB-F700F (MSX2)", 0) -COMP(1985, hbf700p, 0, 0, hbf700p, msx2, driver_device, 0, "Sony", "HB-F700P (MSX2)", 0) -COMP(1985, hbf700s, hbf700p, 0, hbf700s, msx2, driver_device, 0, "Sony", "HB-F700S (Spain) (MSX2)", 0) -COMP(1986, hbf900, hbf900a, 0, hbf900, msx2jp, driver_device, 0, "Sony", "HB-F900 / 1st released version (Japan) (MSX2)", 0) -COMP(1986, hbf900a, 0, 0, hbf900a, msx2jp, driver_device, 0, "Sony", "HB-F900 / 2nd released version (Japan) (MSX2)", 0) -COMP(1986, hbg900ap, hbg900p, 0, hbg900ap, msx2, driver_device, 0, "Sony", "HB-G900AP (MSX2)", 0 ) -COMP(1986, hbg900p, 0, 0, hbg900p, msx2, driver_device, 0, "Sony", "HB-G900P (MSX2)", 0 ) -COMP(1986, hotbit20, 0, 0, hotbit20, msx2, driver_device, 0, "Sharp / Epcom", "HB-8000 Hotbit 2.0 (MSX2)", 0) // Black screen -COMP(1986, tpc310, 0, 0, tpc310, msx2, driver_device, 0, "Talent", "TPC-310 (MSX2)", 0) -COMP(19??, tpp311, 0, 0, tpp311, msx2, driver_device, 0, "Talent", "TPP-311 (MSX2)", 0) -COMP(19??, tps312, 0, 0, tps312, msx2, driver_device, 0, "Talent", "TPS-312 (MSX2)", 0) -COMP(1986, hx23, hx23i, 0, hx23, msx2, driver_device, 0, "Toshiba", "HX-23 (MSX2)", 0) -COMP(1986, hx23f, hx23i, 0, hx23f, msx2, driver_device, 0, "Toshiba", "HX-23F (MSX2)", 0) -COMP(19??, hx23i, 0, 0, hx23i, msx2, driver_device, 0, "Toshiba", "HX-23I (MSX2)", 0) -COMP(1985, hx33, 0, 0, hx33, msx2jp, driver_device, 0, "Toshiba", "HX-33 (MSX2)", 0) -COMP(1985, hx34, hx34i, 0, hx34, msx2jp, driver_device, 0, "Toshiba", "HX-34 (MSX2)", 0) -COMP(1985, hx34i, 0, 0, hx34i, msx, driver_device, 0, "Toshiba", "HX-34I (MSX2)", 0) -COMP(1985, fstm1, 0, 0, fstm1, msx, driver_device, 0, "Toshiba", "FS-TM1 (MSX2)", 0) -COMP(198?, victhc90, victhc95, 0, victhc90, msxjp, driver_device, 0, "Victor", "HC-90 (MSX2)", MACHINE_NOT_WORKING) // 2nd cpu/turbo not emulated, firmware won't start -COMP(1986, victhc95, 0, 0, victhc95, msxjp, driver_device, 0, "Victor", "HC-95 (MSX2)", MACHINE_NOT_WORKING) // 2nd cpu/turbo not emulated, firmware won't start -COMP(1986, victhc95a, victhc95, 0, victhc95a, msxjp, driver_device, 0, "Victor", "HC-95A (MSX2)", MACHINE_NOT_WORKING) // 2nd cpu/turbo not emulated, firmware won't start -COMP(1986, cx7m, cx7m128, 0, cx7m, msx2, driver_device, 0, "Yamaha", "CX7M (MSX2)", 0) -COMP(1986, cx7m128, 0, 0, cx7m128, msx2, driver_device, 0, "Yamaha", "CX7M/128 (MSX2)", 0) -COMP(198?, y503iiir, 0, 0, y503iiir, msx2, driver_device, 0, "Yamaha", "YIS-503 III R (Russian) (MSX2)", MACHINE_NOT_WORKING) // Russian keyboard, floppy support broken -COMP(198?, y503iiire, y503iiir, 0, y503iiire, msx2, driver_device, 0, "Yamaha", "YIS-503 III R (Estonian) (MSX2)", MACHINE_NOT_WORKING) // Russian/Estonian keyboard, floppy support broken -COMP(1985, yis60464, yis604, 0, yis60464, msx2jp, driver_device, 0, "Yamaha", "YIS604 (64KB) (MSX2)", 0) -COMP(1985, yis604, 0, 0, yis604, msx2jp, driver_device, 0, "Yamaha", "YIS604 (128KB) (MSX2)", 0) -COMP(198?, y805128, y805256, 0, y805128, msx2jp, driver_device, 0, "Yamaha", "YIS805/128 (Russian) (MSX2)", MACHINE_NOT_WORKING) // Floppy support broken -COMP(198?, y805128r2, y805256, 0, y805128r2, msx2jp, driver_device, 0, "Yamaha", "YIS805R2/128 (Russian) (MSX2)", MACHINE_NOT_WORKING) // Floppy support broken -COMP(198?, y805128r2e, y805256, 0, y805128r2e, msx2jp, driver_device, 0, "Yamaha", "YIS805R2/128 (Estonian) (MSX2)", MACHINE_NOT_WORKING) // Floppy support broken -COMP(198?, y805256, 0, 0, y805256, msx2jp, driver_device, 0, "Yamaha", "YIS805/256 (Russian) (MSX2)", MACHINE_NOT_WORKING) // Floppy support broken +COMP(1986, ax350, 0, 0, ax350, msx2, msx_state, 0, "Al Alamiah", "AX-350 (Arabic) (MSX2)", 0) +COMP(1986, ax370, 0, 0, ax370, msx2, msx_state, 0, "Al Alamiah", "AX-370 (Arabic) (MSX2)", 0) +COMP(1985, canonv25, 0, 0, canonv25, msx2, msx_state, 0, "Canon", "V-25 (MSX2)", 0) +COMP(1985, canonv30, 0, 0, canonv30, msx2, msx_state, 0, "Canon", "V-30 (MSX2)", 0) +COMP(1985, canonv30f, canonv30, 0, canonv30f, msx2, msx_state, 0, "Canon", "V-30F (MSX2)", 0) +COMP(1986, cpc300, 0, 0, cpc300, msx2kr, msx_state, 0, "Daewoo", "IQ-2000 CPC-300 (Korea) (MSX2)", 0) +COMP(1986, cpc300e, 0, 0, cpc300e, msx2kr, msx_state, 0, "Daewoo", "IQ-2000 CPC-300E (Korea) (MSX2)", 0) +COMP(1985, cpc330k, 0, 0, cpc330k, msx2kr, msx_state, 0, "Daewoo", "CPC-330K KOBO (Korea) (MSX2)", 0) +COMP(1988, cpc400, 0, 0, cpc400, msx2kr, msx_state, 0, "Daewoo", "X-II CPC-400 (Korea) (MSX2)", 0) +COMP(1988, cpc400s, 0, 0, cpc400s, msx2kr, msx_state, 0, "Daewoo", "X-II CPC-400S (Korea) (MSX2)", 0) +COMP(1990, cpc61, 0, 0, cpc61, msx2kr, msx_state, 0, "Daewoo", "Zemmix CPC-61 (Korea) (MSX2)", 0) +COMP(1991, cpg120, 0, 0, cpg120, msx2kr, msx_state, 0, "Daewoo", "Zemmix CPG-120 Normal (Korea) (MSX2)", MACHINE_NOT_WORKING) // v9958 not added +COMP(198?, fpc900, 0, 0, fpc900, msx2, msx_state, 0, "Fenner", "FPC-900 (MSX2)", 0) +COMP(1986, expert20, 0, 0, expert20, msx2, msx_state, 0, "Gradiente", "Expert 2.0 (Brazil) (MSX2)", 0) +COMP(198?, mbh70, 0, 0, mbh70, msx2jp, msx_state, 0, "Hitachi", "MB-H70 (MSX2)", MACHINE_NOT_WORKING) // Firmware not working +COMP(1987, kmc5000, 0, 0, kmc5000, msx2jp, msx_state, 0, "Kawai", "KMC-5000 (MSX2)", 0) +COMP(1985, mlg1, 0, 0, mlg1, msx2, msx_state, 0, "Mitsubishi", "ML-G1 (MSX2)", 0) +COMP(198?, mlg3, 0, 0, mlg3, msx2, msx_state, 0, "Mitsubishi", "ML-G3 (MSX2)", 0) +COMP(1985, mlg10, 0, 0, mlg10, msx2jp, msx_state, 0, "Mitsubishi", "ML-G10 (MSX2)", 0) +COMP(1983, mlg30, 0, 0, mlg30, msx2, msx_state, 0, "Mitsubishi", "ML-G30 (MSX2)", 0) +COMP(1985, fs5500f1, fs5500f2, 0, fs5500f1, msx2jp, msx_state, 0, "National / Matsushita", "FS-5500F1 (Japan) (MSX2)", 0) +COMP(1985, fs5500f2, 0, 0, fs5500f2, msx2jp, msx_state, 0, "National / Matsushita", "FS-5500F2 (Japan) (MSX2)", 0) +COMP(1986, fs4500, 0, 0, fs4500, msx2jp, msx_state, 0, "National / Matsushita", "FS-4500 (Japan) (MSX2)", 0) +COMP(1986, fs4700, 0, 0, fs4700, msx2jp, msx_state, 0, "National / Matsushita", "FS-4700 (Japan) (MSX2)", 0) +COMP(1986, fs5000, 0, 0, fs5000, msx2jp, msx_state, 0, "National / Matsushita", "FS-5000F2 (Japan) (MSX2)", 0) +COMP(1986, fs4600, 0, 0, fs4600, msx2jp, msx_state, 0, "National / Matsushita", "FS-4600 (Japan) (MSX2)", 0) +COMP(1986, fsa1, fsa1a, 0, fsa1, msx2jp, msx_state, 0, "Panasonic / Matsushita", "FS-A1 / 1st released version (Japan) (MSX2)", 0) +COMP(1986, fsa1a, 0, 0, fsa1a, msx2jp, msx_state, 0, "Panasonic / Matsushita", "FS-A1 / 2nd released version (Japan) (MSX2)", 0) +COMP(1987, fsa1mk2, 0, 0, fsa1mk2, msx2jp, msx_state, 0, "Panasonic / Matsushita", "FS-A1MK2 (Japan) (MSX2)", 0) +COMP(1987, fsa1f, 0, 0, fsa1f, msx2jp, msx_state, 0, "Panasonic / Matsushita", "FS-A1F (Japan) (MSX2)", 0) +COMP(1987, fsa1fm, 0, 0, fsa1fm, msx2jp, msx_state, 0, "Panasonic / Matsushita", "FS-A1FM (Japan) (MSX2)", 0) +COMP(1986, nms8220, nms8220a, 0, nms8220, msx2, msx_state, 0, "Philips", "NMS-8220 (12-jun-1986) (MSX2)", 0) +COMP(1986, nms8220a, 0, 0, nms8220a, msx2, msx_state, 0, "Philips", "NMS-8220 (13-aug-1986) (MSX2)", 0) +COMP(1986, vg8230, 0, 0, vg8230, msx2, msx_state, 0, "Philips", "VG-8230 (MSX2)", 0) +COMP(19??, vg8230j, vg8230, 0, vg8230j, msx2jp, msx_state, 0, "Philips", "VG-8230J (MSX2)", MACHINE_NOT_WORKING) // Screen flashes a few times before going into basic +COMP(1986, vg8235, 0, 0, vg8235, msx2, msx_state, 0, "Philips", "VG-8235 (MSX2)", 0) +COMP(1986, vg8235f, vg8235, 0, vg8235f, msx2, msx_state, 0, "Philips", "VG-8235F (MSX2)", 0) +COMP(1986, vg8240, 0, 0, vg8240, msx2, msx_state, 0, "Philips", "VG-8240 (MSX2)", 0) +COMP(1986, nms8245, 0, 0, nms8245, msx2, msx_state, 0, "Philips", "NMS-8245 (MSX2)", 0) +COMP(1986, nms8245f, nms8245, 0, nms8245f, msx2, msx_state, 0, "Philips", "NMS-8245F (MSX2)", 0) +COMP(1986, nms8250, nms8255, 0, nms8250, msx2, msx_state, 0, "Philips", "NMS-8250 (MSX2)", 0) +COMP(1986, nms8250f, nms8255, 0, nms8250f, msx2, msx_state, 0, "Philips", "NMS-8250F (MSX2)", 0) // French keyboard +COMP(19??, nms8250j, nms8255, 0, nms8250j, msx2jp, msx_state, 0, "Philips", "NMS-8250J (MSX2)", 0) +COMP(1986, nms8255, 0, 0, nms8255, msx2, msx_state, 0, "Philips", "NMS-8255 (MSX2)", 0) +COMP(1986, nms8255f, nms8255, 0, nms8255f, msx2, msx_state, 0, "Philips", "NMS-8255F (MSX2)", 0) // French keyboard +COMP(1986, nms8260, 0, 0, nms8260, msx2, msx_state, 0, "Philips", "NMS-8260 (Prototype) (MSX2)", MACHINE_NOT_WORKING) +COMP(1986, nms8280, 0, 0, nms8280, msx2, msx_state, 0, "Philips", "NMS-8280 (MSX2)", 0) +COMP(1986, nms8280f, nms8280, 0, nms8280f, msx2, msx_state, 0, "Philips", "NMS-8280F (MSX2)", 0) // French keyboard +COMP(1986, nms8280g, nms8280, 0, nms8280g, msx2, msx_state, 0, "Philips", "NMS-8280G (MSX2)", 0) +COMP(19??, mpc2300, 0, 0, mpc2300, msx2, msx_state, 0, "Sanyo", "MPC-2300 (MSX2)", MACHINE_NOT_WORKING) // Keyboard responds differently +COMP(198?, mpc2500f, 0, 0, mpc2500f, msx2, msx_state, 0, "Sanyo", "MPC-2500FD (MSX2)", MACHINE_NOT_WORKING) // Russian keyboard? +COMP(19??, mpc25fd, 0, 0, mpc25fd, msx2, msx_state, 0, "Sanyo", "Wavy MPC-25FD (MSX2)", 0) +COMP(198?, mpc27, 0, 0, mpc27, msx2jp, msx_state, 0, "Sanyo", "Wavy MPC-27 (MSX2)", MACHINE_NOT_WORKING) // Light pen not emulated +COMP(1988, phc23, 0, 0, phc23, msx2jp, msx_state, 0, "Sanyo", "Wavy PHC-23 (Japan) (MSX2)", 0) +COMP(198?, phc55fd2, 0, 0, phc55fd2, msx2jp, msx_state, 0, "Sanyo", "Wavy PHC-55FD2 (MSX2)", 0) +COMP(198?, phc77, 0, 0, phc77, msx2jp, msx_state, 0, "Sanyo", "Wavy PHC-77 (MSX2)", MACHINE_NOT_WORKING) // Firmware not emulated +COMP(1986, hbf1, 0, 0, hbf1, msx2jp, msx_state, 0, "Sony", "HB-F1 (Japan) (MSX2)", MACHINE_NOT_WORKING ) // Screen stays a single color after a while +COMP(1987, hbf12, 0, 0, hbf12, msx2jp, msx_state, 0, "Sony", "HB-F1II (Japan) (MSX2)", MACHINE_NOT_WORKING ) // Screen stays a single color after a while +COMP(1987, hbf1xd, 0, 0, hbf1xd, msx2jp, msx_state, 0, "Sony", "HB-F1XD (Japan) (MSX2)", 0) +COMP(1988, hbf1xdm2, 0, 0, hbf1xdm2, msx2jp, msx_state, 0, "Sony", "HB-F1XDMK2 (Japan) (MSX2)", 0) +COMP(19??, hbf5, 0, 0, hbf5, msx2, msx_state, 0, "Sony", "HB-F5 (MSX2)", 0) +COMP(1985, hbf9p, 0, 0, hbf9p, msx2, msx_state, 0, "Sony", "HB-F9P (MSX2)", 0) +COMP(19??, hbf9pr, hbf9p, 0, hbf9pr, msx2, msx_state, 0, "Sony", "HB-F9P Russion (MSX2)", MACHINE_NOT_WORKING) // Keyboard responds differently +COMP(1985, hbf9s, hbf9p, 0, hbf9s, msx2, msx_state, 0, "Sony", "HB-F9S (MSX2)", 0) +COMP(1986, hbf500, hbf500p, 0, hbf500, msx2jp, msx_state, 0, "Sony", "HB-F500 (Japan) (MSX2)", 0) +COMP(198?, hbf500f, hbf500p, 0, hbf500f, msx2, msx_state, 0, "Sony", "HB-F500F (MSX2)", 0) // French keyboard? +COMP(1985, hbf500p, 0, 0, hbf500p, msx2, msx_state, 0, "Sony", "HB-F500P (MSX2)", 0) +COMP(1985, hbf700d, hbf700p, 0, hbf700d, msx2, msx_state, 0, "Sony", "HB-F700D (Germany) (MSX2)", 0) +COMP(1985, hbf700f, hbf700p, 0, hbf700f, msx2, msx_state, 0, "Sony", "HB-F700F (MSX2)", 0) +COMP(1985, hbf700p, 0, 0, hbf700p, msx2, msx_state, 0, "Sony", "HB-F700P (MSX2)", 0) +COMP(1985, hbf700s, hbf700p, 0, hbf700s, msx2, msx_state, 0, "Sony", "HB-F700S (Spain) (MSX2)", 0) +COMP(1986, hbf900, hbf900a, 0, hbf900, msx2jp, msx_state, 0, "Sony", "HB-F900 / 1st released version (Japan) (MSX2)", 0) +COMP(1986, hbf900a, 0, 0, hbf900a, msx2jp, msx_state, 0, "Sony", "HB-F900 / 2nd released version (Japan) (MSX2)", 0) +COMP(1986, hbg900ap, hbg900p, 0, hbg900ap, msx2, msx_state, 0, "Sony", "HB-G900AP (MSX2)", 0 ) +COMP(1986, hbg900p, 0, 0, hbg900p, msx2, msx_state, 0, "Sony", "HB-G900P (MSX2)", 0 ) +COMP(1986, hotbit20, 0, 0, hotbit20, msx2, msx_state, 0, "Sharp / Epcom", "HB-8000 Hotbit 2.0 (MSX2)", 0) // Black screen +COMP(1986, tpc310, 0, 0, tpc310, msx2, msx_state, 0, "Talent", "TPC-310 (MSX2)", 0) +COMP(19??, tpp311, 0, 0, tpp311, msx2, msx_state, 0, "Talent", "TPP-311 (MSX2)", 0) +COMP(19??, tps312, 0, 0, tps312, msx2, msx_state, 0, "Talent", "TPS-312 (MSX2)", 0) +COMP(1986, hx23, hx23i, 0, hx23, msx2, msx_state, 0, "Toshiba", "HX-23 (MSX2)", 0) +COMP(1986, hx23f, hx23i, 0, hx23f, msx2, msx_state, 0, "Toshiba", "HX-23F (MSX2)", 0) +COMP(19??, hx23i, 0, 0, hx23i, msx2, msx_state, 0, "Toshiba", "HX-23I (MSX2)", 0) +COMP(1985, hx33, 0, 0, hx33, msx2jp, msx_state, 0, "Toshiba", "HX-33 (MSX2)", 0) +COMP(1985, hx34, hx34i, 0, hx34, msx2jp, msx_state, 0, "Toshiba", "HX-34 (MSX2)", 0) +COMP(1985, hx34i, 0, 0, hx34i, msx, msx_state, 0, "Toshiba", "HX-34I (MSX2)", 0) +COMP(1985, fstm1, 0, 0, fstm1, msx, msx_state, 0, "Toshiba", "FS-TM1 (MSX2)", 0) +COMP(198?, victhc90, victhc95, 0, victhc90, msxjp, msx_state, 0, "Victor", "HC-90 (MSX2)", MACHINE_NOT_WORKING) // 2nd cpu/turbo not emulated, firmware won't start +COMP(1986, victhc95, 0, 0, victhc95, msxjp, msx_state, 0, "Victor", "HC-95 (MSX2)", MACHINE_NOT_WORKING) // 2nd cpu/turbo not emulated, firmware won't start +COMP(1986, victhc95a, victhc95, 0, victhc95a, msxjp, msx_state, 0, "Victor", "HC-95A (MSX2)", MACHINE_NOT_WORKING) // 2nd cpu/turbo not emulated, firmware won't start +COMP(1986, cx7m, cx7m128, 0, cx7m, msx2, msx_state, 0, "Yamaha", "CX7M (MSX2)", 0) +COMP(1986, cx7m128, 0, 0, cx7m128, msx2, msx_state, 0, "Yamaha", "CX7M/128 (MSX2)", 0) +COMP(198?, y503iiir, 0, 0, y503iiir, msx2, msx_state, 0, "Yamaha", "YIS-503 III R (Russian) (MSX2)", MACHINE_NOT_WORKING) // Russian keyboard, floppy support broken +COMP(198?, y503iiire, y503iiir, 0, y503iiire, msx2, msx_state, 0, "Yamaha", "YIS-503 III R (Estonian) (MSX2)", MACHINE_NOT_WORKING) // Russian/Estonian keyboard, floppy support broken +COMP(1985, yis60464, yis604, 0, yis60464, msx2jp, msx_state, 0, "Yamaha", "YIS604 (64KB) (MSX2)", 0) +COMP(1985, yis604, 0, 0, yis604, msx2jp, msx_state, 0, "Yamaha", "YIS604 (128KB) (MSX2)", 0) +COMP(198?, y805128, y805256, 0, y805128, msx2jp, msx_state, 0, "Yamaha", "YIS805/128 (Russian) (MSX2)", MACHINE_NOT_WORKING) // Floppy support broken +COMP(198?, y805128r2, y805256, 0, y805128r2, msx2jp, msx_state, 0, "Yamaha", "YIS805R2/128 (Russian) (MSX2)", MACHINE_NOT_WORKING) // Floppy support broken +COMP(198?, y805128r2e, y805256, 0, y805128r2e, msx2jp, msx_state, 0, "Yamaha", "YIS805R2/128 (Estonian) (MSX2)", MACHINE_NOT_WORKING) // Floppy support broken +COMP(198?, y805256, 0, 0, y805256, msx2jp, msx_state, 0, "Yamaha", "YIS805/256 (Russian) (MSX2)", MACHINE_NOT_WORKING) // Floppy support broken /* MSX2+ */ -COMP(19??, expert3i, 0, 0, expert3i, msx2, driver_device, 0, "Ciel", "Expert 3 IDE (MSX2+)", MACHINE_NOT_WORKING ) // Some hardware not emulated -COMP(1996, expert3t, 0, 0, expert3t, msx2, driver_device, 0, "Ciel", "Expert 3 Turbo (MSX2+)", MACHINE_NOT_WORKING ) // Some hardware not emulated -COMP(19??, expertac, 0, 0, expertac, msx2, driver_device, 0, "Gradiente", "Expert AC88+ (MSX2+)", MACHINE_NOT_WORKING ) // Some hardware not emulated -COMP(19??, expertdx, 0, 0, expertdx, msx2, driver_device, 0, "Gradiente", "Expert DDX+ (MSX2+)", MACHINE_NOT_WORKING ) // Some hardware not emulated -COMP(1988, fsa1fx, 0, 0, fsa1fx, msx2jp, driver_device, 0, "Panasonic / Matsushita", "FS-A1FX (Japan) (MSX2+)", 0 ) -COMP(1988, fsa1wx, fsa1wxa, 0, fsa1wx, msx2jp, driver_device, 0, "Panasonic / Matsushita", "FS-A1WX / 1st released version (Japan) (MSX2+)", 0 ) -COMP(1988, fsa1wxa, 0, 0, fsa1wxa, msx2jp, driver_device, 0, "Panasonic / Matsushita", "FS-A1WX / 2nd released version (Japan) (MSX2+)", 0 ) -COMP(1989, fsa1wsx, 0, 0, fsa1wsx, msx2jp, driver_device, 0, "Panasonic / Matsushita", "FS-A1WSX (Japan) (MSX2+)", 0 ) -COMP(1988, hbf1xdj, 0, 0, hbf1xdj, msx2jp, driver_device, 0, "Sony", "HB-F1XDJ (Japan) (MSX2+)", 0 ) -COMP(1989, hbf1xv, 0, 0, hbf1xv, msx2jp, driver_device, 0, "Sony", "HB-F1XV (Japan) (MSX2+)", 0 ) -COMP(1988, phc70fd, phc70fd2, 0, phc70fd, msx2jp, driver_device, 0, "Sanyo", "WAVY PHC-70FD (Japan) (MSX2+)", 0 ) -COMP(1988, phc70fd2, 0, 0, phc70fd2, msx2jp, driver_device, 0, "Sanyo", "WAVY PHC-70FD2 (Japan) (MSX2+)", 0 ) -COMP(1989, phc35j, 0, 0, phc35j, msx2jp, driver_device, 0, "Sanyo", "WAVY PHC-35J (Japan) (MSX2+)", 0) -COMP(19??, hbf9sp, 0, 0, hbf9sp, msx2jp, driver_device, 0, "Sony", "HB-F9S+ (MSX2+)", 0) +COMP(19??, expert3i, 0, 0, expert3i, msx2, msx_state, 0, "Ciel", "Expert 3 IDE (MSX2+)", MACHINE_NOT_WORKING ) // Some hardware not emulated +COMP(1996, expert3t, 0, 0, expert3t, msx2, msx_state, 0, "Ciel", "Expert 3 Turbo (MSX2+)", MACHINE_NOT_WORKING ) // Some hardware not emulated +COMP(19??, expertac, 0, 0, expertac, msx2, msx_state, 0, "Gradiente", "Expert AC88+ (MSX2+)", MACHINE_NOT_WORKING ) // Some hardware not emulated +COMP(19??, expertdx, 0, 0, expertdx, msx2, msx_state, 0, "Gradiente", "Expert DDX+ (MSX2+)", MACHINE_NOT_WORKING ) // Some hardware not emulated +COMP(1988, fsa1fx, 0, 0, fsa1fx, msx2jp, msx_state, 0, "Panasonic / Matsushita", "FS-A1FX (Japan) (MSX2+)", 0 ) +COMP(1988, fsa1wx, fsa1wxa, 0, fsa1wx, msx2jp, msx_state, 0, "Panasonic / Matsushita", "FS-A1WX / 1st released version (Japan) (MSX2+)", 0 ) +COMP(1988, fsa1wxa, 0, 0, fsa1wxa, msx2jp, msx_state, 0, "Panasonic / Matsushita", "FS-A1WX / 2nd released version (Japan) (MSX2+)", 0 ) +COMP(1989, fsa1wsx, 0, 0, fsa1wsx, msx2jp, msx_state, 0, "Panasonic / Matsushita", "FS-A1WSX (Japan) (MSX2+)", 0 ) +COMP(1988, hbf1xdj, 0, 0, hbf1xdj, msx2jp, msx_state, 0, "Sony", "HB-F1XDJ (Japan) (MSX2+)", 0 ) +COMP(1989, hbf1xv, 0, 0, hbf1xv, msx2jp, msx_state, 0, "Sony", "HB-F1XV (Japan) (MSX2+)", 0 ) +COMP(1988, phc70fd, phc70fd2, 0, phc70fd, msx2jp, msx_state, 0, "Sanyo", "WAVY PHC-70FD (Japan) (MSX2+)", 0 ) +COMP(1988, phc70fd2, 0, 0, phc70fd2, msx2jp, msx_state, 0, "Sanyo", "WAVY PHC-70FD2 (Japan) (MSX2+)", 0 ) +COMP(1989, phc35j, 0, 0, phc35j, msx2jp, msx_state, 0, "Sanyo", "WAVY PHC-35J (Japan) (MSX2+)", 0) +COMP(19??, hbf9sp, 0, 0, hbf9sp, msx2jp, msx_state, 0, "Sony", "HB-F9S+ (MSX2+)", 0) /* MSX Turbo-R */ /* Temporary placeholders, Turbo-R hardware is not supported yet */ -COMP(19??, fsa1gt, 0, 0, fsa1gt, msx2jp, driver_device, 0, "Panasonic", "FS-A1GT (MSX Turbo-R)", MACHINE_NOT_WORKING) -COMP(19??, fsa1st, 0, 0, fsa1st, msx2jp, driver_device, 0, "Panasonic", "FS-A1ST (MSX Turbo-R)", MACHINE_NOT_WORKING) +COMP(19??, fsa1gt, 0, 0, fsa1gt, msx2jp, msx_state, 0, "Panasonic", "FS-A1GT (MSX Turbo-R)", MACHINE_NOT_WORKING) +COMP(19??, fsa1st, 0, 0, fsa1st, msx2jp, msx_state, 0, "Panasonic", "FS-A1ST (MSX Turbo-R)", MACHINE_NOT_WORKING) diff --git a/src/mame/drivers/mt735.cpp b/src/mame/drivers/mt735.cpp index b6bbfffa5e6..e80c4013302 100644 --- a/src/mame/drivers/mt735.cpp +++ b/src/mame/drivers/mt735.cpp @@ -59,7 +59,7 @@ ADDRESS_MAP_END static INPUT_PORTS_START( mt735 ) INPUT_PORTS_END -static MACHINE_CONFIG_START( mt735, mt735_state ) +static MACHINE_CONFIG_START( mt735 ) MCFG_CPU_ADD("maincpu", M68000, XTAL_48MHz/6) MCFG_CPU_PROGRAM_MAP(mt735_map) MACHINE_CONFIG_END @@ -70,4 +70,4 @@ ROM_START( mt735 ) ROM_LOAD16_BYTE( "spg_m_o_ic102.bin", 1, 0x20000, CRC(84d8446b) SHA1(b1cedd8b09556eb8118f79b012aeec5b61e3ff32) ) ROM_END -COMP( ????, mt735, 0, 0, mt735, mt735, driver_device, 0, "Brother", "MT735", MACHINE_NOT_WORKING|MACHINE_NO_SOUND ) +COMP( ????, mt735, 0, 0, mt735, mt735, mt735_state, 0, "Brother", "MT735", MACHINE_NOT_WORKING|MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/mtouchxl.cpp b/src/mame/drivers/mtouchxl.cpp index 3faad8f9d93..89e831aab3b 100644 --- a/src/mame/drivers/mtouchxl.cpp +++ b/src/mame/drivers/mtouchxl.cpp @@ -55,7 +55,7 @@ public: m_iocard(*this, "dbank"), //m_ibutton(*this, "ibutton"), m_multikey(*this, "multikey") - { } + { } required_device m_maincpu; required_device m_mb; required_device m_ram; @@ -177,7 +177,7 @@ static MACHINE_CONFIG_FRAGMENT(cdrom) MCFG_SLOT_FIXED(true) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( at486, mtxl_state ) +static MACHINE_CONFIG_START( at486 ) MCFG_CPU_ADD("maincpu", I486DX4, 33000000) MCFG_CPU_PROGRAM_MAP(at32_map) MCFG_CPU_IO_MAP(at32_io) @@ -369,14 +369,14 @@ ROM_END ***************************************************************************/ -/* YEAR NAME PARENT COMPAT MACHINE INPUT DEVICE INIT COMPANY FULLNAME */ +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS // Any indicates this is from a CD-R at a trade show that was claimed to be a prototype, but R1 is several versions in? -COMP ( 1997, mtouchxl, 0, 0, at486, mtouchxl, driver_device, 0, "Merit Industries", "MegaTouch XL (Version R1, prototype?)", 0 ) -COMP ( 1998, mtchxl5k, 0, 0, at486, mtouchxl, driver_device, 0, "Merit Industries", "MegaTouch XL Super 5000 (Version R5I)", MACHINE_NOT_WORKING ) -COMP ( 1998, mtchxl5ko, mtchxl5k,0, at486, mtouchxl, driver_device, 0, "Merit Industries", "MegaTouch XL Super 5000 (Version R5B)", MACHINE_NOT_WORKING ) -COMP ( 1998, mtchxl5ko2, mtchxl5k,0, at486, mtouchxl, driver_device, 0, "Merit Industries", "MegaTouch XL Super 5000 (Version R5E)", MACHINE_NOT_WORKING ) -COMP ( 1999, mtchxl6k, 0, 0, at486, mtouchxl, driver_device, 0, "Merit Industries", "MegaTouch XL 6000 (Version r07)", 0 ) -COMP ( 1999, mtchxl6ko4, mtchxl6k,0, at486, mtouchxl, driver_device, 0, "Merit Industries", "MegaTouch XL 6000 (Version r04)", 0 ) -COMP ( 1999, mtchxl6ko, mtchxl6k,0, at486, mtouchxl, driver_device, 0, "Merit Industries", "MegaTouch XL 6000 (Version r02)", 0 ) -COMP ( 2000, mtchxlgld, 0, 0, at486, mtouchxl, driver_device, 0, "Merit Industries", "MegaTouch XL Gold (Version r01)", MACHINE_NOT_WORKING ) -COMP ( 2000, mtchxlgldo, mtchxlgld, 0, at486, mtouchxl, driver_device, 0, "Merit Industries", "MegaTouch XL Gold (Version r00)", MACHINE_NOT_WORKING ) +COMP ( 1997, mtouchxl, 0, 0, at486, mtouchxl, mtxl_state, 0, "Merit Industries", "MegaTouch XL (Version R1, prototype?)", 0 ) +COMP ( 1998, mtchxl5k, 0, 0, at486, mtouchxl, mtxl_state, 0, "Merit Industries", "MegaTouch XL Super 5000 (Version R5I)", MACHINE_NOT_WORKING ) +COMP ( 1998, mtchxl5ko, mtchxl5k, 0, at486, mtouchxl, mtxl_state, 0, "Merit Industries", "MegaTouch XL Super 5000 (Version R5B)", MACHINE_NOT_WORKING ) +COMP ( 1998, mtchxl5ko2, mtchxl5k, 0, at486, mtouchxl, mtxl_state, 0, "Merit Industries", "MegaTouch XL Super 5000 (Version R5E)", MACHINE_NOT_WORKING ) +COMP ( 1999, mtchxl6k, 0, 0, at486, mtouchxl, mtxl_state, 0, "Merit Industries", "MegaTouch XL 6000 (Version r07)", 0 ) +COMP ( 1999, mtchxl6ko4, mtchxl6k, 0, at486, mtouchxl, mtxl_state, 0, "Merit Industries", "MegaTouch XL 6000 (Version r04)", 0 ) +COMP ( 1999, mtchxl6ko, mtchxl6k, 0, at486, mtouchxl, mtxl_state, 0, "Merit Industries", "MegaTouch XL 6000 (Version r02)", 0 ) +COMP ( 2000, mtchxlgld, 0, 0, at486, mtouchxl, mtxl_state, 0, "Merit Industries", "MegaTouch XL Gold (Version r01)", MACHINE_NOT_WORKING ) +COMP ( 2000, mtchxlgldo, mtchxlgld, 0, at486, mtouchxl, mtxl_state, 0, "Merit Industries", "MegaTouch XL Gold (Version r00)", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/mtx.cpp b/src/mame/drivers/mtx.cpp index 99fff4172dd..b764ba33558 100644 --- a/src/mame/drivers/mtx.cpp +++ b/src/mame/drivers/mtx.cpp @@ -282,10 +282,10 @@ WRITE_LINE_MEMBER(mtx_state::mtx_tms9929a_interrupt) ***************************************************************************/ /*------------------------------------------------- - MACHINE_CONFIG_START( mtx512, mtx_state ) + MACHINE_CONFIG_START( mtx512 ) -------------------------------------------------*/ -static MACHINE_CONFIG_START( mtx512, mtx_state ) +static MACHINE_CONFIG_START( mtx512 ) /* basic machine hardware */ MCFG_CPU_ADD(Z80_TAG, Z80, XTAL_4MHz) @@ -409,10 +409,10 @@ ROM_END SYSTEM DRIVERS ***************************************************************************/ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1983, mtx512, 0, 0, mtx512, mtx512, driver_device, 0, "Memotech Ltd", "MTX 512", 0 ) -COMP( 1983, mtx500, mtx512, 0, mtx500, mtx512, driver_device, 0, "Memotech Ltd", "MTX 500", 0 ) -COMP( 1984, rs128, mtx512, 0, rs128, mtx512, driver_device, 0, "Memotech Ltd", "RS 128", 0 ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1983, mtx512, 0, 0, mtx512, mtx512, mtx_state, 0, "Memotech Ltd", "MTX 512", 0 ) +COMP( 1983, mtx500, mtx512, 0, mtx500, mtx512, mtx_state, 0, "Memotech Ltd", "MTX 500", 0 ) +COMP( 1984, rs128, mtx512, 0, rs128, mtx512, mtx_state, 0, "Memotech Ltd", "RS 128", 0 ) /* diff --git a/src/mame/drivers/mugsmash.cpp b/src/mame/drivers/mugsmash.cpp index 29d713fab2f..9a9cb0d0aba 100644 --- a/src/mame/drivers/mugsmash.cpp +++ b/src/mame/drivers/mugsmash.cpp @@ -397,7 +397,7 @@ void mugsmash_state::machine_start() { } -static MACHINE_CONFIG_START( mugsmash, mugsmash_state ) +static MACHINE_CONFIG_START( mugsmash ) MCFG_CPU_ADD("maincpu", M68000, 12000000) MCFG_CPU_PROGRAM_MAP(mugsmash_map) @@ -430,7 +430,7 @@ static MACHINE_CONFIG_START( mugsmash, mugsmash_state ) MCFG_SOUND_ROUTE(0, "lspeaker", 1.00) /* music */ MCFG_SOUND_ROUTE(1, "rspeaker", 1.00) - MCFG_OKIM6295_ADD("oki", 1122000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki", 1122000, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.50) /* sound fx */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.50) MACHINE_CONFIG_END @@ -462,4 +462,4 @@ ROM_START( mugsmash ) ROM_LOAD( "mugs_15.bin", 0x180000, 0x080000, CRC(82e8187c) SHA1(c7a0e1b3d90dbbe2588886a27a07a9c336447ae3) ) ROM_END -GAME( 1990?, mugsmash, 0, mugsmash, mugsmash, driver_device, 0, ROT0, "Electronic Devices Italy / 3D Games England", "Mug Smashers", MACHINE_SUPPORTS_SAVE ) +GAME( 1990?, mugsmash, 0, mugsmash, mugsmash, mugsmash_state, 0, ROT0, "Electronic Devices Italy / 3D Games England", "Mug Smashers", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/multfish.cpp b/src/mame/drivers/multfish.cpp index 431f6efeed2..d0087f46468 100644 --- a/src/mame/drivers/multfish.cpp +++ b/src/mame/drivers/multfish.cpp @@ -1037,7 +1037,7 @@ void igrosoft_gamble_state::machine_reset() m_hopper = 0; } -MACHINE_CONFIG_START( igrosoft_gamble, igrosoft_gamble_state ) +MACHINE_CONFIG_START( igrosoft_gamble ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_24MHz/4) MCFG_CPU_PROGRAM_MAP(igrosoft_gamble_map) @@ -2706,117 +2706,117 @@ Most games had a revision in early 2007 to meet the standards of the "Government -GAME( 2002, goldfish, mfish_13, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Gold Fish (020903, prototype)", MACHINE_SUPPORTS_SAVE ) /* World */ -GAME( 2002, mfish_3, mfish_13, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Multi Fish (021124)", MACHINE_SUPPORTS_SAVE ) /* World */ -GAME( 2002, mfish_6, mfish_13, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Multi Fish (030124)", MACHINE_SUPPORTS_SAVE ) /* World */ -GAME( 2002, mfish_8, mfish_13, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Multi Fish (030522)", MACHINE_SUPPORTS_SAVE ) /* World */ -GAME( 2002, mfish_11, mfish_13, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Multi Fish (031124)", MACHINE_SUPPORTS_SAVE ) /* World */ -GAME( 2002, mfish_12, mfish_13, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Multi Fish (040308)", MACHINE_SUPPORTS_SAVE ) /* World */ -GAME( 2002, mfish_13, 0, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Multi Fish (040316)", MACHINE_SUPPORTS_SAVE ) /* World */ - -GAME( 2002, windjamr, 0, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Windjammer (021216)", MACHINE_SUPPORTS_SAVE ) /* World */ - -GAME( 2003, czmon_5, czmon_13, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Crazy Monkey (030421 World)", MACHINE_SUPPORTS_SAVE ) /* World */ -GAME( 2003, czmon_7, czmon_13, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Crazy Monkey (031110 World)", MACHINE_SUPPORTS_SAVE ) /* World */ -GAME( 2003, czmon_8, czmon_13, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Crazy Monkey (050120 World)", MACHINE_SUPPORTS_SAVE ) /* World */ -GAME( 2003, czmon_9, czmon_13, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Crazy Monkey (070315 Russia)", MACHINE_SUPPORTS_SAVE ) /* Russia */ -GAME( 2003, czmon_13, 0, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Crazy Monkey (100311 World)", MACHINE_SUPPORTS_SAVE ) /* World */ -GAME( 2003, czmon_15, czmon_13, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, crzmonent,ROT0, "Igrosoft", "Crazy Monkey (100311 Entertainment)", MACHINE_SUPPORTS_SAVE ) /* Entertainment */ -GAME( 2003, czmon_16, czmon_13, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Crazy Monkey (100312 Russia)", MACHINE_SUPPORTS_SAVE ) /* Russia */ - -GAME( 2003, fcockt_3, fcockt_8, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Fruit Cocktail (030623 World)", MACHINE_SUPPORTS_SAVE ) /* World */ -GAME( 2003, fcockt_5, fcockt_8, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Fruit Cocktail (031111 World)", MACHINE_SUPPORTS_SAVE ) /* World */ -GAME( 2003, fcockt_6, fcockt_8, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Fruit Cocktail (040216 World)", MACHINE_SUPPORTS_SAVE ) /* World */ -GAME( 2003, fcockt_7, fcockt_8, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Fruit Cocktail (050118 World)", MACHINE_SUPPORTS_SAVE ) /* World */ -GAME( 2003, fcockt_8, 0, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Fruit Cocktail (060111 World)", MACHINE_SUPPORTS_SAVE ) /* World */ -GAME( 2003, fcockt_9, fcockt_8, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Fruit Cocktail (070305 Russia)", MACHINE_SUPPORTS_SAVE ) /* Russia */ -GAME( 2003, fcockt_10, fcockt_8, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Fruit Cocktail (070517 Russia)", MACHINE_SUPPORTS_SAVE ) /* Russia */ -GAME( 2003, fcockt_11, fcockt_8, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Fruit Cocktail (070822 Russia)", MACHINE_SUPPORTS_SAVE ) /* Russia */ -GAME( 2003, fcockt_12, fcockt_8, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Fruit Cocktail (070911 Russia)", MACHINE_SUPPORTS_SAVE ) /* Russia */ -GAME( 2003, fcockt_14, fcockt_8, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, fcocktent,ROT0, "Igrosoft", "Fruit Cocktail (090708 Entertainment)", MACHINE_SUPPORTS_SAVE ) /* Entertainment */ - -GAME( 2003, lhaunt_2, lhaunt_6, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Lucky Haunter (030804 World)", MACHINE_SUPPORTS_SAVE ) /* World */ -GAME( 2003, lhaunt_4, lhaunt_6, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Lucky Haunter (031111 World)", MACHINE_SUPPORTS_SAVE ) /* World */ -GAME( 2003, lhaunt_5, lhaunt_6, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Lucky Haunter (040216 World)", MACHINE_SUPPORTS_SAVE ) /* World */ -GAME( 2003, lhaunt_6, 0, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Lucky Haunter (040825 World)", MACHINE_SUPPORTS_SAVE ) /* World */ -GAME( 2003, lhaunt_7, lhaunt_6, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Lucky Haunter (070402 Russia)", MACHINE_SUPPORTS_SAVE ) /* Russia */ -GAME( 2003, lhaunt_8, lhaunt_6, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Lucky Haunter (070604 Russia)", MACHINE_SUPPORTS_SAVE ) /* Russia */ -GAME( 2003, lhaunt_10, lhaunt_6, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, lhauntent,ROT0, "Igrosoft", "Lucky Haunter (090712 Entertainment)", MACHINE_SUPPORTS_SAVE ) /* Entertainment */ -GAME( 2003, lhaunt_11, lhaunt_6, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, lhauntent,ROT0, "Igrosoft", "Lucky Haunter (100331 Entertainment)", MACHINE_SUPPORTS_SAVE ) /* Entertainment */ - -GAME( 2003, rollfr_2, rollfr_4, rollfr, rollfr, driver_device, 0, ROT0, "Igrosoft", "Roll Fruit (040318)", MACHINE_SUPPORTS_SAVE ) /* World */ -GAME( 2003, rollfr_3, rollfr_4, rollfr, rollfr, driver_device, 0, ROT0, "Igrosoft", "Roll Fruit (080327)", MACHINE_SUPPORTS_SAVE ) /* World */ -GAME( 2003, rollfr_4, 0, rollfr, rollfr, driver_device, 0, ROT0, "Igrosoft", "Roll Fruit (080331)", MACHINE_SUPPORTS_SAVE ) /* World */ - -GAME( 2004, garage_4, garage_5, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Garage (040219 World)", MACHINE_SUPPORTS_SAVE ) /* World */ -GAME( 2004, garage_5, 0, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Garage (050311 World)", MACHINE_SUPPORTS_SAVE ) /* World */ -GAME( 2004, garage_6, garage_5, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Garage (070213 Russia)", MACHINE_SUPPORTS_SAVE ) /* Russia */ -GAME( 2004, garage_7, garage_5, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Garage (070329 Russia)", MACHINE_SUPPORTS_SAVE ) /* Russia */ -GAME( 2004, garage_9, garage_5, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, garageent,ROT0, "Igrosoft", "Garage (090715 Entertainment)", MACHINE_SUPPORTS_SAVE ) /* Entertainment */ - -GAME( 2004, rclimb, rclimb_3, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Rock Climber (040815 World)", MACHINE_SUPPORTS_SAVE ) /* World */ -GAME( 2004, rclimb_3, 0, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Rock Climber (040827 World)", MACHINE_SUPPORTS_SAVE ) /* World */ -GAME( 2004, rclimb_4, rclimb_3, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Rock Climber (070322 Russia)", MACHINE_SUPPORTS_SAVE ) /* Russia */ -GAME( 2004, rclimb_5, rclimb_3, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Rock Climber (070621 Russia)", MACHINE_SUPPORTS_SAVE ) /* Russia */ -GAME( 2004, rclimb_7, rclimb_3, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, rclimbent,ROT0, "Igrosoft", "Rock Climber (090716 Entertainment)", MACHINE_SUPPORTS_SAVE ) /* Entertainment */ - -GAME( 2004, sweetl, 0, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Sweet Life (041220 World)", MACHINE_SUPPORTS_SAVE ) /* World */ -GAME( 2004, sweetl_2, sweetl, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Sweet Life (070412 Russia)", MACHINE_SUPPORTS_SAVE ) /* Russia */ - -GAME( 2004, resdnt, resdnt_6, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Resident (040415 World)", MACHINE_SUPPORTS_SAVE ) /* World */ -GAME( 2004, resdnt_2, resdnt_6, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Resident (040513 World)", MACHINE_SUPPORTS_SAVE ) /* World */ -GAME( 2004, resdnt_3, resdnt_6, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Resident (070222 Russia)", MACHINE_SUPPORTS_SAVE ) /* Russia */ -GAME( 2004, resdnt_6, 0, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Resident (100311 World)", MACHINE_SUPPORTS_SAVE ) /* World */ -GAME( 2004, resdnt_8, resdnt_6, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, resdntent,ROT0, "Igrosoft", "Resident (100311 Entertainment)", MACHINE_SUPPORTS_SAVE ) /* Entertainment */ -GAME( 2004, resdnt_9, resdnt_6, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Resident (100316 Russia)", MACHINE_SUPPORTS_SAVE ) /* Russia */ - -GAME( 2005, island, 0, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Island (050713 World)", MACHINE_SUPPORTS_SAVE ) /* World */ -GAME( 2005, island_2, island, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Island (070409 Russia)", MACHINE_SUPPORTS_SAVE ) /* Russia */ - -GAME( 2005, pirate_2, pirate_3, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Pirate (060210 World)", MACHINE_SUPPORTS_SAVE ) /* World */ -GAME( 2005, pirate_3, 0, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Pirate (060803 World)", MACHINE_SUPPORTS_SAVE ) /* World */ -GAME( 2005, pirate_4, pirate_3, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Pirate (070412 Russia)", MACHINE_SUPPORTS_SAVE ) /* Russia */ - -GAME( 2006, island2, 0, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Island 2 (060529 World)", MACHINE_SUPPORTS_SAVE ) /* World */ -GAME( 2006, island2_3, island2, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Island 2 (061218 World)", MACHINE_SUPPORTS_SAVE ) /* World */ -GAME( 2006, island2_4, island2, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Island 2 (070205 Russia)", MACHINE_SUPPORTS_SAVE ) /* Russia */ -GAME( 2006, island2_5, island2, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, island2l, ROT0, "Igrosoft", "Island 2 (090528 Lottery)", MACHINE_SUPPORTS_SAVE ) /* Lottery */ -GAME( 2006, island2_6, island2, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state,island2ent,ROT0, "Igrosoft", "Island 2 (090724 Entertainment)", MACHINE_SUPPORTS_SAVE ) /* Entertainment */ - -GAME( 2006, pirate2, 0, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Pirate 2 (061005 World)", MACHINE_SUPPORTS_SAVE ) /* World */ -GAME( 2006, pirate2_2, pirate2, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Pirate 2 (070126 Russia)", MACHINE_SUPPORTS_SAVE ) /* Russia */ -GAME( 2006, pirate2_3, pirate2, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, pirate2l, ROT0, "Igrosoft", "Pirate 2 (090528 Lottery)", MACHINE_SUPPORTS_SAVE ) /* Lottery */ -GAME( 2006, pirate2_4, pirate2, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state,pirate2ent,ROT0, "Igrosoft", "Pirate 2 (090730 Entertainment)", MACHINE_SUPPORTS_SAVE ) /* Entertainment */ - -GAME( 2006, keks, keks_2, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Keks (060328 World)", MACHINE_SUPPORTS_SAVE ) /* World */ -GAME( 2006, keks_2, 0, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Keks (060403 World)", MACHINE_SUPPORTS_SAVE ) /* World */ -GAME( 2006, keks_3, keks_2, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Keks (070119 Russia)", MACHINE_SUPPORTS_SAVE ) /* Russia */ -GAME( 2006, keks_4, keks_2, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, keksl, ROT0, "Igrosoft", "Keks (090604 Lottery)", MACHINE_SUPPORTS_SAVE ) /* Lottery */ -GAME( 2006, keks_5, keks_2, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, keksent, ROT0, "Igrosoft", "Keks (090727 Entertainment)", MACHINE_SUPPORTS_SAVE ) /* Entertainment */ - -GAME( 2007, gnome, gnome_9, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Gnome (070906 Russia)", MACHINE_SUPPORTS_SAVE ) /* Russia */ -GAME( 2007, gnome_2, gnome_9, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Gnome (071115 Russia)", MACHINE_SUPPORTS_SAVE ) /* Russia */ -GAME( 2007, gnome_3, gnome_9, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Gnome (080303 World)", MACHINE_SUPPORTS_SAVE ) /* World */ -GAME( 2007, gnome_4, gnome_9, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Gnome (090402 Russia)", MACHINE_SUPPORTS_SAVE ) /* Russia */ -GAME( 2007, gnome_5, gnome_9, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Gnome (090406 World)", MACHINE_SUPPORTS_SAVE ) /* World */ -GAME( 2007, gnome_7, gnome_9, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, gnomel, ROT0, "Igrosoft", "Gnome (090708 Lottery)", MACHINE_SUPPORTS_SAVE ) /* Lottery */ -GAME( 2007, gnome_9, 0, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Gnome (100326 World)", MACHINE_SUPPORTS_SAVE ) /* World */ -GAME( 2007, gnome_10, gnome_9, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, gnomel, ROT0, "Igrosoft", "Gnome (100326 Lottery)", MACHINE_SUPPORTS_SAVE ) /* Lottery */ -GAME( 2007, gnome_11, gnome_9, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, gnomeent, ROT0, "Igrosoft", "Gnome (100326 Entertainment)", MACHINE_SUPPORTS_SAVE ) /* Entertainment */ -GAME( 2007, gnome_12, gnome_9, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Gnome (100326 Russia)", MACHINE_SUPPORTS_SAVE ) /* Russia */ - -GAME( 2007, sweetl2, 0, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Sweet Life 2 (071217 Russia)", MACHINE_SUPPORTS_SAVE ) /* Russia */ -GAME( 2007, sweetl2_2, sweetl2, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Sweet Life 2 (080320 World)", MACHINE_SUPPORTS_SAVE ) /* World */ -GAME( 2007, sweetl2_3, sweetl2, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, sweetl2l, ROT0, "Igrosoft", "Sweet Life 2 (090525 Lottery)", MACHINE_SUPPORTS_SAVE ) /* Lottery */ -GAME( 2007, sweetl2_4, sweetl2, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state,sweetl2ent,ROT0, "Igrosoft", "Sweet Life 2 (090812 Entertainment)", MACHINE_SUPPORTS_SAVE ) /* Entertainment */ - -GAME( 2008, fcockt2, 0, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Fruit Cocktail 2 (080707 Russia)", MACHINE_SUPPORTS_SAVE ) /* Russia */ -GAME( 2008, fcockt2_3, fcockt2, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Fruit Cocktail 2 (080909 World)", MACHINE_SUPPORTS_SAVE ) /* World */ -GAME( 2008, fcockt2_4, fcockt2, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Fruit Cocktail 2 (081105 World)", MACHINE_SUPPORTS_SAVE ) /* World */ -GAME( 2008, fcockt2_5, fcockt2, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Fruit Cocktail 2 (081106 Russia)", MACHINE_SUPPORTS_SAVE ) /* Russia */ -GAME( 2008, fcockt2_6, fcockt2, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, fcockt2l, ROT0, "Igrosoft", "Fruit Cocktail 2 (090528 Lottery)", MACHINE_SUPPORTS_SAVE ) /* Lottery */ -GAME( 2008, fcockt2_7, fcockt2, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state,fcockt2ent,ROT0, "Igrosoft", "Fruit Cocktail 2 (090813 Entertainment)", MACHINE_SUPPORTS_SAVE ) /* Entertainment */ - -GAME( 2010, crzmon2, 0, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state,crzmon2, ROT0, "Igrosoft", "Crazy Monkey 2 (100310)", MACHINE_NOT_WORKING|MACHINE_SUPPORTS_SAVE ) /* World */ // xored and bitswapped palette and gfx roms -GAME( 2010, crzmon2_2, crzmon2, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state,crzmon2lot,ROT0, "Igrosoft", "Crazy Monkey 2 (100311 Lottery)", MACHINE_NOT_WORKING|MACHINE_SUPPORTS_SAVE ) /* Lottery */ -GAME( 2010, crzmon2_3, crzmon2, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state,crzmon2ent,ROT0, "Igrosoft", "Crazy Monkey 2 (100315 Entertainment)", MACHINE_NOT_WORKING|MACHINE_SUPPORTS_SAVE ) /* Entertainment */ +GAME( 2002, goldfish, mfish_13, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "Igrosoft", "Gold Fish (020903, prototype)", MACHINE_SUPPORTS_SAVE ) /* World */ +GAME( 2002, mfish_3, mfish_13, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "Igrosoft", "Multi Fish (021124)", MACHINE_SUPPORTS_SAVE ) /* World */ +GAME( 2002, mfish_6, mfish_13, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "Igrosoft", "Multi Fish (030124)", MACHINE_SUPPORTS_SAVE ) /* World */ +GAME( 2002, mfish_8, mfish_13, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "Igrosoft", "Multi Fish (030522)", MACHINE_SUPPORTS_SAVE ) /* World */ +GAME( 2002, mfish_11, mfish_13, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "Igrosoft", "Multi Fish (031124)", MACHINE_SUPPORTS_SAVE ) /* World */ +GAME( 2002, mfish_12, mfish_13, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "Igrosoft", "Multi Fish (040308)", MACHINE_SUPPORTS_SAVE ) /* World */ +GAME( 2002, mfish_13, 0, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "Igrosoft", "Multi Fish (040316)", MACHINE_SUPPORTS_SAVE ) /* World */ + +GAME( 2002, windjamr, 0, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "Igrosoft", "Windjammer (021216)", MACHINE_SUPPORTS_SAVE ) /* World */ + +GAME( 2003, czmon_5, czmon_13, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "Igrosoft", "Crazy Monkey (030421 World)", MACHINE_SUPPORTS_SAVE ) /* World */ +GAME( 2003, czmon_7, czmon_13, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "Igrosoft", "Crazy Monkey (031110 World)", MACHINE_SUPPORTS_SAVE ) /* World */ +GAME( 2003, czmon_8, czmon_13, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "Igrosoft", "Crazy Monkey (050120 World)", MACHINE_SUPPORTS_SAVE ) /* World */ +GAME( 2003, czmon_9, czmon_13, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "Igrosoft", "Crazy Monkey (070315 Russia)", MACHINE_SUPPORTS_SAVE ) /* Russia */ +GAME( 2003, czmon_13, 0, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "Igrosoft", "Crazy Monkey (100311 World)", MACHINE_SUPPORTS_SAVE ) /* World */ +GAME( 2003, czmon_15, czmon_13, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, crzmonent, ROT0, "Igrosoft", "Crazy Monkey (100311 Entertainment)", MACHINE_SUPPORTS_SAVE ) /* Entertainment */ +GAME( 2003, czmon_16, czmon_13, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "Igrosoft", "Crazy Monkey (100312 Russia)", MACHINE_SUPPORTS_SAVE ) /* Russia */ + +GAME( 2003, fcockt_3, fcockt_8, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "Igrosoft", "Fruit Cocktail (030623 World)", MACHINE_SUPPORTS_SAVE ) /* World */ +GAME( 2003, fcockt_5, fcockt_8, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "Igrosoft", "Fruit Cocktail (031111 World)", MACHINE_SUPPORTS_SAVE ) /* World */ +GAME( 2003, fcockt_6, fcockt_8, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "Igrosoft", "Fruit Cocktail (040216 World)", MACHINE_SUPPORTS_SAVE ) /* World */ +GAME( 2003, fcockt_7, fcockt_8, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "Igrosoft", "Fruit Cocktail (050118 World)", MACHINE_SUPPORTS_SAVE ) /* World */ +GAME( 2003, fcockt_8, 0, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "Igrosoft", "Fruit Cocktail (060111 World)", MACHINE_SUPPORTS_SAVE ) /* World */ +GAME( 2003, fcockt_9, fcockt_8, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "Igrosoft", "Fruit Cocktail (070305 Russia)", MACHINE_SUPPORTS_SAVE ) /* Russia */ +GAME( 2003, fcockt_10, fcockt_8, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "Igrosoft", "Fruit Cocktail (070517 Russia)", MACHINE_SUPPORTS_SAVE ) /* Russia */ +GAME( 2003, fcockt_11, fcockt_8, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "Igrosoft", "Fruit Cocktail (070822 Russia)", MACHINE_SUPPORTS_SAVE ) /* Russia */ +GAME( 2003, fcockt_12, fcockt_8, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "Igrosoft", "Fruit Cocktail (070911 Russia)", MACHINE_SUPPORTS_SAVE ) /* Russia */ +GAME( 2003, fcockt_14, fcockt_8, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, fcocktent, ROT0, "Igrosoft", "Fruit Cocktail (090708 Entertainment)", MACHINE_SUPPORTS_SAVE ) /* Entertainment */ + +GAME( 2003, lhaunt_2, lhaunt_6, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "Igrosoft", "Lucky Haunter (030804 World)", MACHINE_SUPPORTS_SAVE ) /* World */ +GAME( 2003, lhaunt_4, lhaunt_6, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "Igrosoft", "Lucky Haunter (031111 World)", MACHINE_SUPPORTS_SAVE ) /* World */ +GAME( 2003, lhaunt_5, lhaunt_6, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "Igrosoft", "Lucky Haunter (040216 World)", MACHINE_SUPPORTS_SAVE ) /* World */ +GAME( 2003, lhaunt_6, 0, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "Igrosoft", "Lucky Haunter (040825 World)", MACHINE_SUPPORTS_SAVE ) /* World */ +GAME( 2003, lhaunt_7, lhaunt_6, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "Igrosoft", "Lucky Haunter (070402 Russia)", MACHINE_SUPPORTS_SAVE ) /* Russia */ +GAME( 2003, lhaunt_8, lhaunt_6, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "Igrosoft", "Lucky Haunter (070604 Russia)", MACHINE_SUPPORTS_SAVE ) /* Russia */ +GAME( 2003, lhaunt_10, lhaunt_6, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, lhauntent, ROT0, "Igrosoft", "Lucky Haunter (090712 Entertainment)", MACHINE_SUPPORTS_SAVE ) /* Entertainment */ +GAME( 2003, lhaunt_11, lhaunt_6, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, lhauntent, ROT0, "Igrosoft", "Lucky Haunter (100331 Entertainment)", MACHINE_SUPPORTS_SAVE ) /* Entertainment */ + +GAME( 2003, rollfr_2, rollfr_4, rollfr, rollfr, igrosoft_gamble_state, 0, ROT0, "Igrosoft", "Roll Fruit (040318)", MACHINE_SUPPORTS_SAVE ) /* World */ +GAME( 2003, rollfr_3, rollfr_4, rollfr, rollfr, igrosoft_gamble_state, 0, ROT0, "Igrosoft", "Roll Fruit (080327)", MACHINE_SUPPORTS_SAVE ) /* World */ +GAME( 2003, rollfr_4, 0, rollfr, rollfr, igrosoft_gamble_state, 0, ROT0, "Igrosoft", "Roll Fruit (080331)", MACHINE_SUPPORTS_SAVE ) /* World */ + +GAME( 2004, garage_4, garage_5, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "Igrosoft", "Garage (040219 World)", MACHINE_SUPPORTS_SAVE ) /* World */ +GAME( 2004, garage_5, 0, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "Igrosoft", "Garage (050311 World)", MACHINE_SUPPORTS_SAVE ) /* World */ +GAME( 2004, garage_6, garage_5, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "Igrosoft", "Garage (070213 Russia)", MACHINE_SUPPORTS_SAVE ) /* Russia */ +GAME( 2004, garage_7, garage_5, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "Igrosoft", "Garage (070329 Russia)", MACHINE_SUPPORTS_SAVE ) /* Russia */ +GAME( 2004, garage_9, garage_5, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, garageent, ROT0, "Igrosoft", "Garage (090715 Entertainment)", MACHINE_SUPPORTS_SAVE ) /* Entertainment */ + +GAME( 2004, rclimb, rclimb_3, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "Igrosoft", "Rock Climber (040815 World)", MACHINE_SUPPORTS_SAVE ) /* World */ +GAME( 2004, rclimb_3, 0, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "Igrosoft", "Rock Climber (040827 World)", MACHINE_SUPPORTS_SAVE ) /* World */ +GAME( 2004, rclimb_4, rclimb_3, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "Igrosoft", "Rock Climber (070322 Russia)", MACHINE_SUPPORTS_SAVE ) /* Russia */ +GAME( 2004, rclimb_5, rclimb_3, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "Igrosoft", "Rock Climber (070621 Russia)", MACHINE_SUPPORTS_SAVE ) /* Russia */ +GAME( 2004, rclimb_7, rclimb_3, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, rclimbent, ROT0, "Igrosoft", "Rock Climber (090716 Entertainment)", MACHINE_SUPPORTS_SAVE ) /* Entertainment */ + +GAME( 2004, sweetl, 0, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "Igrosoft", "Sweet Life (041220 World)", MACHINE_SUPPORTS_SAVE ) /* World */ +GAME( 2004, sweetl_2, sweetl, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "Igrosoft", "Sweet Life (070412 Russia)", MACHINE_SUPPORTS_SAVE ) /* Russia */ + +GAME( 2004, resdnt, resdnt_6, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "Igrosoft", "Resident (040415 World)", MACHINE_SUPPORTS_SAVE ) /* World */ +GAME( 2004, resdnt_2, resdnt_6, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "Igrosoft", "Resident (040513 World)", MACHINE_SUPPORTS_SAVE ) /* World */ +GAME( 2004, resdnt_3, resdnt_6, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "Igrosoft", "Resident (070222 Russia)", MACHINE_SUPPORTS_SAVE ) /* Russia */ +GAME( 2004, resdnt_6, 0, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "Igrosoft", "Resident (100311 World)", MACHINE_SUPPORTS_SAVE ) /* World */ +GAME( 2004, resdnt_8, resdnt_6, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, resdntent, ROT0, "Igrosoft", "Resident (100311 Entertainment)", MACHINE_SUPPORTS_SAVE ) /* Entertainment */ +GAME( 2004, resdnt_9, resdnt_6, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "Igrosoft", "Resident (100316 Russia)", MACHINE_SUPPORTS_SAVE ) /* Russia */ + +GAME( 2005, island, 0, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "Igrosoft", "Island (050713 World)", MACHINE_SUPPORTS_SAVE ) /* World */ +GAME( 2005, island_2, island, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "Igrosoft", "Island (070409 Russia)", MACHINE_SUPPORTS_SAVE ) /* Russia */ + +GAME( 2005, pirate_2, pirate_3, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "Igrosoft", "Pirate (060210 World)", MACHINE_SUPPORTS_SAVE ) /* World */ +GAME( 2005, pirate_3, 0, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "Igrosoft", "Pirate (060803 World)", MACHINE_SUPPORTS_SAVE ) /* World */ +GAME( 2005, pirate_4, pirate_3, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "Igrosoft", "Pirate (070412 Russia)", MACHINE_SUPPORTS_SAVE ) /* Russia */ + +GAME( 2006, island2, 0, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "Igrosoft", "Island 2 (060529 World)", MACHINE_SUPPORTS_SAVE ) /* World */ +GAME( 2006, island2_3, island2, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "Igrosoft", "Island 2 (061218 World)", MACHINE_SUPPORTS_SAVE ) /* World */ +GAME( 2006, island2_4, island2, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "Igrosoft", "Island 2 (070205 Russia)", MACHINE_SUPPORTS_SAVE ) /* Russia */ +GAME( 2006, island2_5, island2, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, island2l, ROT0, "Igrosoft", "Island 2 (090528 Lottery)", MACHINE_SUPPORTS_SAVE ) /* Lottery */ +GAME( 2006, island2_6, island2, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, island2ent, ROT0, "Igrosoft", "Island 2 (090724 Entertainment)", MACHINE_SUPPORTS_SAVE ) /* Entertainment */ + +GAME( 2006, pirate2, 0, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "Igrosoft", "Pirate 2 (061005 World)", MACHINE_SUPPORTS_SAVE ) /* World */ +GAME( 2006, pirate2_2, pirate2, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "Igrosoft", "Pirate 2 (070126 Russia)", MACHINE_SUPPORTS_SAVE ) /* Russia */ +GAME( 2006, pirate2_3, pirate2, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, pirate2l, ROT0, "Igrosoft", "Pirate 2 (090528 Lottery)", MACHINE_SUPPORTS_SAVE ) /* Lottery */ +GAME( 2006, pirate2_4, pirate2, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, pirate2ent, ROT0, "Igrosoft", "Pirate 2 (090730 Entertainment)", MACHINE_SUPPORTS_SAVE ) /* Entertainment */ + +GAME( 2006, keks, keks_2, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "Igrosoft", "Keks (060328 World)", MACHINE_SUPPORTS_SAVE ) /* World */ +GAME( 2006, keks_2, 0, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "Igrosoft", "Keks (060403 World)", MACHINE_SUPPORTS_SAVE ) /* World */ +GAME( 2006, keks_3, keks_2, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "Igrosoft", "Keks (070119 Russia)", MACHINE_SUPPORTS_SAVE ) /* Russia */ +GAME( 2006, keks_4, keks_2, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, keksl, ROT0, "Igrosoft", "Keks (090604 Lottery)", MACHINE_SUPPORTS_SAVE ) /* Lottery */ +GAME( 2006, keks_5, keks_2, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, keksent, ROT0, "Igrosoft", "Keks (090727 Entertainment)", MACHINE_SUPPORTS_SAVE ) /* Entertainment */ + +GAME( 2007, gnome, gnome_9, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "Igrosoft", "Gnome (070906 Russia)", MACHINE_SUPPORTS_SAVE ) /* Russia */ +GAME( 2007, gnome_2, gnome_9, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "Igrosoft", "Gnome (071115 Russia)", MACHINE_SUPPORTS_SAVE ) /* Russia */ +GAME( 2007, gnome_3, gnome_9, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "Igrosoft", "Gnome (080303 World)", MACHINE_SUPPORTS_SAVE ) /* World */ +GAME( 2007, gnome_4, gnome_9, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "Igrosoft", "Gnome (090402 Russia)", MACHINE_SUPPORTS_SAVE ) /* Russia */ +GAME( 2007, gnome_5, gnome_9, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "Igrosoft", "Gnome (090406 World)", MACHINE_SUPPORTS_SAVE ) /* World */ +GAME( 2007, gnome_7, gnome_9, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, gnomel, ROT0, "Igrosoft", "Gnome (090708 Lottery)", MACHINE_SUPPORTS_SAVE ) /* Lottery */ +GAME( 2007, gnome_9, 0, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "Igrosoft", "Gnome (100326 World)", MACHINE_SUPPORTS_SAVE ) /* World */ +GAME( 2007, gnome_10, gnome_9, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, gnomel, ROT0, "Igrosoft", "Gnome (100326 Lottery)", MACHINE_SUPPORTS_SAVE ) /* Lottery */ +GAME( 2007, gnome_11, gnome_9, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, gnomeent, ROT0, "Igrosoft", "Gnome (100326 Entertainment)", MACHINE_SUPPORTS_SAVE ) /* Entertainment */ +GAME( 2007, gnome_12, gnome_9, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "Igrosoft", "Gnome (100326 Russia)", MACHINE_SUPPORTS_SAVE ) /* Russia */ + +GAME( 2007, sweetl2, 0, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "Igrosoft", "Sweet Life 2 (071217 Russia)", MACHINE_SUPPORTS_SAVE ) /* Russia */ +GAME( 2007, sweetl2_2, sweetl2, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "Igrosoft", "Sweet Life 2 (080320 World)", MACHINE_SUPPORTS_SAVE ) /* World */ +GAME( 2007, sweetl2_3, sweetl2, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, sweetl2l, ROT0, "Igrosoft", "Sweet Life 2 (090525 Lottery)", MACHINE_SUPPORTS_SAVE ) /* Lottery */ +GAME( 2007, sweetl2_4, sweetl2, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, sweetl2ent, ROT0, "Igrosoft", "Sweet Life 2 (090812 Entertainment)", MACHINE_SUPPORTS_SAVE ) /* Entertainment */ + +GAME( 2008, fcockt2, 0, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "Igrosoft", "Fruit Cocktail 2 (080707 Russia)", MACHINE_SUPPORTS_SAVE ) /* Russia */ +GAME( 2008, fcockt2_3, fcockt2, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "Igrosoft", "Fruit Cocktail 2 (080909 World)", MACHINE_SUPPORTS_SAVE ) /* World */ +GAME( 2008, fcockt2_4, fcockt2, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "Igrosoft", "Fruit Cocktail 2 (081105 World)", MACHINE_SUPPORTS_SAVE ) /* World */ +GAME( 2008, fcockt2_5, fcockt2, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "Igrosoft", "Fruit Cocktail 2 (081106 Russia)", MACHINE_SUPPORTS_SAVE ) /* Russia */ +GAME( 2008, fcockt2_6, fcockt2, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, fcockt2l, ROT0, "Igrosoft", "Fruit Cocktail 2 (090528 Lottery)", MACHINE_SUPPORTS_SAVE ) /* Lottery */ +GAME( 2008, fcockt2_7, fcockt2, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, fcockt2ent, ROT0, "Igrosoft", "Fruit Cocktail 2 (090813 Entertainment)", MACHINE_SUPPORTS_SAVE ) /* Entertainment */ + +GAME( 2010, crzmon2, 0, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, crzmon2, ROT0, "Igrosoft", "Crazy Monkey 2 (100310)", MACHINE_NOT_WORKING|MACHINE_SUPPORTS_SAVE ) /* World */ // xored and bitswapped palette and gfx roms +GAME( 2010, crzmon2_2, crzmon2, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, crzmon2lot, ROT0, "Igrosoft", "Crazy Monkey 2 (100311 Lottery)", MACHINE_NOT_WORKING|MACHINE_SUPPORTS_SAVE ) /* Lottery */ +GAME( 2010, crzmon2_3, crzmon2, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, crzmon2ent, ROT0, "Igrosoft", "Crazy Monkey 2 (100315 Entertainment)", MACHINE_NOT_WORKING|MACHINE_SUPPORTS_SAVE ) /* Entertainment */ diff --git a/src/mame/drivers/multfish_boot.cpp b/src/mame/drivers/multfish_boot.cpp index 340fd09c9ca..fb2ce7a3ef9 100644 --- a/src/mame/drivers/multfish_boot.cpp +++ b/src/mame/drivers/multfish_boot.cpp @@ -1711,128 +1711,128 @@ ROM_START( fcockt2_4f ) // 081105 custom alteras, modified graphics, bank F9, ma ROM_END -GAME( 2002, mfish_3a, mfish_13, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Multi Fish (bootleg, 021124, banking address hack)", MACHINE_SUPPORTS_SAVE ) // bank F9 -GAME( 2002, mfish_12a, mfish_13, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Multi Fish (bootleg, 040308, banking address hack)", MACHINE_SUPPORTS_SAVE ) // bank F9 - -GAME( 2003, czmon_7a, czmon_13, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Crazy Monkey (bootleg, 031110, backdoor set 1)", MACHINE_SUPPORTS_SAVE ) // backdoor 1,1 1,3 1,5 1,7 3,3 3,4 -GAME( 2003, czmon_7b, czmon_13, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Crazy Monkey (bootleg, 031110, backdoor set 2)", MACHINE_SUPPORTS_SAVE ) // backdoor 1,5 5,5 1,7 3,2 3,3 3,4 -GAME( 2003, czmon_8a, czmon_13, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Crazy Monkey (bootleg, 050120, backdoor)", MACHINE_SUPPORTS_SAVE ) // backdoor 1,1 1,3 1,5 1,7 3,3 3,4 -GAME( 2003, czmon_8b, czmon_13, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Crazy Monkey (bootleg, 050120, changed version text)", MACHINE_SUPPORTS_SAVE ) // changed version text to 070315 -GAME( 2003, czmon_8c, czmon_13, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, customl,ROT0, "bootleg", "Crazy Monkey (bootleg, 050120, VIDEO GAME-1 CM01)", MACHINE_SUPPORTS_SAVE ) // custom alteras, modified graphics, changed version text to "VIDEO GAME-1 CM01" -GAME( 2003, czmon_8d, czmon_13, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Crazy Monkey (bootleg, 050120, LOTTOGAME (I))", MACHINE_SUPPORTS_SAVE ) // modified graphics, changed version text to "MDS_is_the_best_ LOTTOGAME (I)" -GAME( 2003, czmon_8e, czmon_13, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Crazy Monkey (bootleg, 050120, LOTO PROGRAM V-CM2)", MACHINE_SUPPORTS_SAVE ) // modified graphics, many texts changed, changed version text to "LOTO PROGRAM V-CM2" -GAME( 2003, czmon_8f, czmon_13, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, customl,ROT0, "bootleg", "Crazy Monkey (bootleg, 050120, LOTOS CM01)", MACHINE_SUPPORTS_SAVE ) // custom alteras, modified graphics, many texts changed, changed version text to "LOTOS CM01" -GAME( 2003, czmon_9a, czmon_13, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, customl,ROT0, "bootleg", "Crazy Monkey (bootleg, 070315, VIDEO GAME-1 O01 set 1)", MACHINE_SUPPORTS_SAVE ) // custom alteras, modified graphics, changed version text to "VIDEO GAME-1 O01" -GAME( 2003, czmon_9b, czmon_13, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Crazy Monkey (bootleg, 070315, VIDEO GAME-1 O01 set 2)", MACHINE_SUPPORTS_SAVE ) // modified graphics, changed version text to "VIDEO GAME-1 O01" (czmon_9a, decoded gfx) -GAME( 2003, czmon_9c, czmon_13, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Crazy Monkey (bootleg, 070315, payout percentage 70)", MACHINE_SUPPORTS_SAVE ) // payout percentage 70% - -GAME( 2003, fcockt_6a, fcockt_8, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Fruit Cocktail (bootleg, 040216, banking address hack)", MACHINE_SUPPORTS_SAVE ) // bank F8 -GAME( 2003, fcockt_6b, fcockt_8, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Fruit Cocktail (bootleg, 040216, backdoor)", MACHINE_SUPPORTS_SAVE ) // backdoor 1,1 1,3 1,5 1,7 3,3 3,4 -GAME( 2003, fcockt_6c, fcockt_8, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Fruit Cocktail (bootleg, 040216, LotoRossy+)", MACHINE_SUPPORTS_SAVE ) // modified graphics, some code changes, description says "for Lat-02 terminals", older set -GAME( 2003, fcockt_6d, fcockt_8, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Fruit Cocktail (bootleg, 040216, VIDEO GAME-1 FR01)", MACHINE_SUPPORTS_SAVE ) // modified graphics, some code changes, changed version text to "VIDEO GAME-1 FR01", description says "for Lat-02 terminals", newer set -GAME( 2003, fcockt_7a, fcockt_8, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Fruit Cocktail (bootleg, 050118, backdoor)", MACHINE_SUPPORTS_SAVE ) // backdoor 1,1 1,3 1,5 1,7 3,3 3,4 -GAME( 2003, fcockt_7b, fcockt_8, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, customl,ROT0, "bootleg", "Fruit Cocktail (bootleg, 050118, VIDEO GAME-1 FR01)", MACHINE_SUPPORTS_SAVE ) // custom alteras, modified graphics, many texts changed, changed version text to "VIDEO GAME-1 FR01" -GAME( 2003, fcockt_7c, fcockt_8, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Fruit Cocktail (bootleg, 050118, payout percentage 40)", MACHINE_SUPPORTS_SAVE ) // payout percentage 40% -GAME( 2003, fcockt_7d, fcockt_8, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Fruit Cocktail (bootleg, 050118, payout percentage 60)", MACHINE_SUPPORTS_SAVE ) // payout percentage 60% -GAME( 2003, fcockt_7e, fcockt_8, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Fruit Cocktail (bootleg, 050118, payout percentage 70)", MACHINE_SUPPORTS_SAVE ) // payout percentage 70% -GAME( 2003, fcockt_7f, fcockt_8, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Fruit Cocktail (bootleg, 050118, changed version text)", MACHINE_SUPPORTS_SAVE ) // changed version text to 070305 -GAME( 2003, fcockt_7g, fcockt_8, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Fruit Cocktail (bootleg, 050118, LOTO PROGRAM V-FC2)", MACHINE_SUPPORTS_SAVE ) // modified graphics, many texts changed, changed version text to "LOTO PROGRAM V-FC2" -GAME( 2003, fcockt_7h, fcockt_8, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Fruit Cocktail (bootleg, 050118, LOTOS FR01)", MACHINE_SUPPORTS_SAVE ) // modified graphics, many texts changed, changed version text to "LOTOS FR01" -GAME( 2003, fcockt_8a, fcockt_8, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Fruit Cocktail (bootleg, 060111, LOTO COCKTAIL V01-0001)", MACHINE_SUPPORTS_SAVE ) // modified graphics, many texts changed, changed version text to "LOTO COCKTAIL V01-0001" -GAME( 2003, fcockt_8b, fcockt_8, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Fruit Cocktail (bootleg, 060111, LOTTOGAME (I))", MACHINE_SUPPORTS_SAVE ) // modified graphics, changed version text to "MDS_is_the_best_ LOTTOGAME (I)" - -GAME( 2003, lhaunt_4a, lhaunt_6, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Lucky Haunter (bootleg, 031111, backdoor)", MACHINE_SUPPORTS_SAVE ) // backdoor 1,1 1,3 1,5 1,7 3,3 3,4 -GAME( 2003, lhaunt_5a, lhaunt_6, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Lucky Haunter (bootleg, 040216, backdoor)", MACHINE_SUPPORTS_SAVE ) // backdoor 1,1 1,3 1,5 1,7 3,3 3,4 -GAME( 2003, lhaunt_6a, lhaunt_6, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Lucky Haunter (bootleg, 040825, backdoor)", MACHINE_SUPPORTS_SAVE ) // backdoor 1,5 9,1 5,1 1,5 3,3 3,4 -GAME( 2003, lhaunt_6b, lhaunt_6, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, customl,ROT0, "bootleg", "Lucky Haunter (bootleg, 040825, VIDEO GAME-1 PB01)", MACHINE_SUPPORTS_SAVE ) // custom alteras, modified graphics, many texts changed, changed version text to "VIDEO GAME-1 PB01" -GAME( 2003, lhaunt_6c, lhaunt_6, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Lucky Haunter (bootleg, 040825, changed version text)", MACHINE_SUPPORTS_SAVE ) // changed version text to 070604 -GAME( 2003, lhaunt_6d, lhaunt_6, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Lucky Haunter (bootleg, 040825, LOTTOGAME (I))", MACHINE_SUPPORTS_SAVE ) // modified graphics, changed version text to "MDS_is_the_best_ LOTTOGAME (I)" -GAME( 2003, lhaunt_6e, lhaunt_6, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Lucky Haunter (bootleg, 040825, LOTO PROGRAM V-LH2)", MACHINE_SUPPORTS_SAVE ) // modified graphics, many texts changed, changed version text to "LOTO PROGRAM V-LH2" -GAME( 2003, lhaunt_6f, lhaunt_6, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, customl,ROT0, "bootleg", "Lucky Haunter (bootleg, 040825, LOTOS PB01)", MACHINE_SUPPORTS_SAVE ) // custom alteras, modified graphics, many texts changed, changed version text to "LOTOS PB01" - -GAME( 2004, garage_4a, garage_5, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Garage (bootleg, 040219, backdoor)", MACHINE_SUPPORTS_SAVE ) // backdoor 1,1 1,3 1,5 1,7 3,3 3,4 -GAME( 2004, garage_4b, garage_5, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Garage (bootleg, 040219, changed version text)", MACHINE_SUPPORTS_SAVE ) // changed version text to 070329 -GAME( 2004, garage_4c, garage_5, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Garage (bootleg, 040219, LOTO PROGRAM V-GG2)", MACHINE_SUPPORTS_SAVE ) // modified graphics, many texts changed, changed version text to "LOTO PROGRAM V-GG2" -GAME( 2004, garage_5a, garage_5, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Garage (bootleg, 050311, backdoor)", MACHINE_SUPPORTS_SAVE ) // backdoor 1,1 1,3 1,5 1,7 3,3 3,4 -GAME( 2004, garage_5b, garage_5, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, customl,ROT0, "bootleg", "Garage (bootleg, 050311, VIDEO GAME-1 GA01)", MACHINE_SUPPORTS_SAVE ) // custom alteras, modified graphics, changed version text to "VIDEO GAME-1 GA01" -GAME( 2004, garage_5c, garage_5, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Garage (bootleg, 050311, payout percentage 70)", MACHINE_SUPPORTS_SAVE ) // payout percentage 70% -GAME( 2004, garage_5d, garage_5, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Garage (bootleg, 050311, LOTTOGAME (I))", MACHINE_SUPPORTS_SAVE ) // modified graphics, changed version text to "MDS_is_the_best_ LOTTOGAME (I)" -GAME( 2004, garage_5e, garage_5, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, customl,ROT0, "bootleg", "Garage (bootleg, 050311, LOTOS GA01)", MACHINE_SUPPORTS_SAVE ) // custom alteras, modified graphics, many texts changed, changed version text to "LOTOS GA01" - -GAME( 2004, rclimb_3a, rclimb_3, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Rock Climber (bootleg, 040827, backdoor)", MACHINE_SUPPORTS_SAVE ) // backdoor 1,5 9,1 5,1 1,5 3,3 3,4 -GAME( 2004, rclimb_3b, rclimb_3, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Rock Climber (bootleg, 040827, new service menu)", MACHINE_SUPPORTS_SAVE ) // new service menu -GAME( 2004, rclimb_3c, rclimb_3, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, customl,ROT0, "bootleg", "Rock Climber (bootleg, 040827, VIDEO GAME-1 SK01)", MACHINE_SUPPORTS_SAVE ) // custom alteras, modified graphics, many texts changed, changed version text to "VIDEO GAME-1 SK01" -GAME( 2004, rclimb_3d, rclimb_3, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Rock Climber (bootleg, 040827, LOTTOGAME (I))", MACHINE_SUPPORTS_SAVE ) // modified graphics, changed version text to "MDS_is_the_best_ LOTTOGAME (I)" -GAME( 2004, rclimb_3e, rclimb_3, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, customl,ROT0, "bootleg", "Rock Climber (bootleg, 040827, LOTOS SK01)", MACHINE_SUPPORTS_SAVE ) // custom alteras, modified graphics, many texts changed, changed version text to "LOTOS SK01" - -GAME( 2004, sweetla, sweetl, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Sweet Life (bootleg, 041220, backdoor)", MACHINE_SUPPORTS_SAVE ) // backdoor 1,5 9,1 5,3 1,5 3,3 3,4 -GAME( 2004, sweetlb, sweetl, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Sweet Life (bootleg, 041220, banking address hack, changed version text)", MACHINE_SUPPORTS_SAVE ) // bank F9, changed version text to 070412 - -GAME( 2004, resdnt_2a, resdnt_6, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Resident (bootleg, 040513, backdoor)", MACHINE_SUPPORTS_SAVE ) // backdoor 1,5 9,1 5,1 1,5 3,3 3,4 -GAME( 2004, resdnt_2b, resdnt_6, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, customl,ROT0, "bootleg", "Resident (bootleg, 040513, VIDEO GAME-1 SE01 set 1)", MACHINE_SUPPORTS_SAVE ) // custom alteras, modified graphics, changed version text to "VIDEO GAME-1 SE01" -GAME( 2004, resdnt_2c, resdnt_6, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, customl,ROT0, "bootleg", "Resident (bootleg, 040513, VIDEO GAME-1 SE01 set 2)", MACHINE_SUPPORTS_SAVE ) // custom alteras, modified graphics, changed version text to "VIDEO GAME-1 SE01" -GAME( 2004, resdnt_2d, resdnt_6, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, customl,ROT0, "bootleg", "Resident (bootleg, 040513, VIDEO GAME-1 SE01 set 3)", MACHINE_SUPPORTS_SAVE ) // custom alteras, modified graphics, many texts changed, changed version text to "VIDEO GAME-1 SE01" -GAME( 2004, resdnt_2e, resdnt_6, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Resident (bootleg, 040513, LOTTOGAME (I))", MACHINE_SUPPORTS_SAVE ) // modified graphics, changed version text to "MDS_is_the_best_ LOTTOGAME (I)" -GAME( 2004, resdnt_2f, resdnt_6, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Resident (bootleg, 040513, LOTO PROGRAM V-RS2)", MACHINE_SUPPORTS_SAVE ) // modified graphics, many texts changed, changed version text to "LOTO PROGRAM V-RS2" -GAME( 2004, resdnt_2g, resdnt_6, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, customl,ROT0, "bootleg", "Resident (bootleg, 040513, LOTOS SE01)", MACHINE_SUPPORTS_SAVE ) // custom alteras, modified graphics, many texts changed, changed version text to "LOTOS SE01" - -GAME( 2005, islanda, island, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Island (bootleg, 050713, backdoor)", MACHINE_SUPPORTS_SAVE ) // backdoor 1,1 1,3 1,5 1,7 3,3 3,4 -GAME( 2005, islandb, island, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, customl,ROT0, "bootleg", "Island (bootleg, 050713, VIDEO GAME-1 OS01)", MACHINE_SUPPORTS_SAVE ) // custom alteras, modified graphics, many texts changed, changed version text to "VIDEO GAME-1 OS01" -GAME( 2005, islandc, island, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, customl,ROT0, "bootleg", "Island (bootleg, 050713, LOTOS OS01)", MACHINE_SUPPORTS_SAVE ) // custom alteras, modified graphics, many texts changed, changed version text to "LOTOS OS01" - -GAME( 2006, island2a, island2, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Island 2 (bootleg, 060529, banking address hack)", MACHINE_SUPPORTS_SAVE ) // bank F9 (not standart, game not work) -GAME( 2006, island2b, island2, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Island 2 (bootleg, 060529, banking address hack, changed version text)", MACHINE_SUPPORTS_SAVE ) // bank F9, changed version text to 070205, skip some start tests -GAME( 2006, island2c, island2, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Island 2 (bootleg, 060529, LOTTOGAME (I))", MACHINE_SUPPORTS_SAVE ) // bank F9, modified graphics, changed version text to "MDS_is_the_best_ LOTTOGAME (I)" -GAME( 2006, island2_3a, island2, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Island 2 (bootleg, 061218, VIDEO GAME-1 OS2-01)", MACHINE_SUPPORTS_SAVE ) // bank F9, modified graphics, changed version text to "VIDEO GAME-1 OS2-01" -GAME( 2006, island2_4a, island2, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Island 2 (bootleg, 070205, banking address hack)", MACHINE_SUPPORTS_SAVE ) // bank F9 - -GAME( 2006, pirate2a, pirate2, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Pirate 2 (bootleg, 061005, banking address hack set 1)", MACHINE_SUPPORTS_SAVE ) // bank F9 -GAME( 2006, pirate2b, pirate2, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Pirate 2 (bootleg, 061005, banking address hack set 2)", MACHINE_SUPPORTS_SAVE ) // bank F9, skip raster beam position check -GAME( 2006, pirate2c, pirate2, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Pirate 2 (bootleg, 061005, banking address hack, changed version text set 1)", MACHINE_SUPPORTS_SAVE ) // bank F9, changed version text to 070126 -GAME( 2006, pirate2d, pirate2, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Pirate 2 (bootleg, 061005, banking address hack, changed version text set 2)", MACHINE_SUPPORTS_SAVE ) // bank F9, changed version text to 070126 -GAME( 2006, pirate2e, pirate2, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Pirate 2 (bootleg, 061005, banking address hack, changed version text set 3)", MACHINE_SUPPORTS_SAVE ) // bank F9, changed version text to 070126, skip some start tests -GAME( 2006, pirate2f, pirate2, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, customl,ROT0, "bootleg", "Pirate 2 (bootleg, 061005, VIDEO GAME-1 PR01)", MACHINE_SUPPORTS_SAVE ) // custom alteras, modified graphics, many texts changed, changed version text to "VIDEO GAME-1 PR01" -GAME( 2006, pirate2g, pirate2, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Pirate 2 (bootleg, 061005, LOTTOGAME (I))", MACHINE_SUPPORTS_SAVE ) // bank F9, modified graphics, changed version text to "MDS_is_the_best_ LOTTOGAME (I)" -GAME( 2006, pirate2h, pirate2, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, customl,ROT0, "bootleg", "Pirate 2 (bootleg, 061005, LOTOS PR01)", MACHINE_SUPPORTS_SAVE ) // custom alteras, modified graphics, many texts changed, changed version text to "LOTOS PR01" -GAME( 2006, pirate2_2a, pirate2, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Pirate 2 (bootleg, 070126, banking address hack)", MACHINE_SUPPORTS_SAVE ) // bank F9 - -GAME( 2006, keksa, keks_2, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Keks (bootleg, 060328, banking address hack)", MACHINE_SUPPORTS_SAVE ) // bank F9 -GAME( 2006, keksb, keks_2, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Keks (bootleg, 060328, backdoor)", MACHINE_SUPPORTS_SAVE ) // backdoor 1,1 1,3 1,5 1,7 3,3 3,4 -GAME( 2006, keksc, keks_2, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Keks (bootleg, 060328, banking address hack, changed version text)", MACHINE_SUPPORTS_SAVE ) // bank F9, changed version text to 070119 -GAME( 2006, keks_2a, keks_2, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Keks (bootleg, 060403, banking address hack)", MACHINE_SUPPORTS_SAVE ) // bank F9 -GAME( 2006, keks_2b, keks_2, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Keks (bootleg, 060403, banking address hack, changed version text)", MACHINE_SUPPORTS_SAVE ) // bank F9, changed version text to 070119 -GAME( 2006, keks_2c, keks_2, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, customl,ROT0, "bootleg", "Keks (bootleg, 060403, VIDEO GAME-1 KS01 set 1)", MACHINE_SUPPORTS_SAVE ) // custom alteras, modified graphics, bank F9, changed version text to "VIDEO GAME-1 KS01" -GAME( 2006, keks_2d, keks_2, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Keks (bootleg, 060403, VIDEO GAME-1 KS01 set 2)", MACHINE_SUPPORTS_SAVE ) // modified graphics, bank F9, changed version text to "VIDEO GAME-1 KS01" (keks_2c, decoded gfx) -GAME( 2006, keks_2e, keks_2, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Keks (bootleg, 060403, banking address hack, payout percentage 60)", MACHINE_SUPPORTS_SAVE ) // bank F9, payout percentage 60% -GAME( 2006, keks_2f, keks_2, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Keks (bootleg, 060403, LOTTOGAME (I))", MACHINE_SUPPORTS_SAVE ) // bank F9, modified graphics, changed version text to "MDS_is_the_best_ LOTTOGAME (I)" -GAME( 2006, keks_2g, keks_2, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, customl,ROT0, "bootleg", "Keks (bootleg, 060403, LOTOS KS01)", MACHINE_SUPPORTS_SAVE ) // custom alteras, modified graphics, bank F9, many texts changed, changed version text to "LOTOS KS01" -GAME( 2006, keks_3a, keks_2, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Keks (bootleg, 070119, banking address hack set 1)", MACHINE_SUPPORTS_SAVE ) // bank F9 -GAME( 2006, keks_3b, keks_2, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Keks (bootleg, 070119, banking address hack set 2)", MACHINE_SUPPORTS_SAVE ) // bank F9 - -GAME( 2007, gnomea, gnome_9, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Gnome (bootleg, 070906, banking address hack set 1)", MACHINE_SUPPORTS_SAVE ) // bank F9 -GAME( 2007, gnomeb, gnome_9, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Gnome (bootleg, 070906, banking address hack set 2)", MACHINE_SUPPORTS_SAVE ) // bank F9 -GAME( 2007, gnomec, gnome_9, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Gnome (bootleg, 070906, banking address hack set 3)", MACHINE_SUPPORTS_SAVE ) // bank F9 -GAME( 2007, gnomed, gnome_9, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, customl,ROT0, "bootleg", "Gnome (bootleg, 070906, VIDEO GAME-1 GN01)", MACHINE_SUPPORTS_SAVE ) // custom alteras, modified graphics, many texts changed, changed version text to "VIDEO GAME-1 GN01" -GAME( 2007, gnomee, gnome_9, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, customl,ROT0, "bootleg", "Gnome (bootleg, 070906, LOTOS GN01)", MACHINE_SUPPORTS_SAVE ) // custom alteras, modified graphics, bank F9, many texts changed, changed version text to "LOTOS GN01" -GAME( 2007, gnome_2a, gnome_9, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Gnome (bootleg, 071115, banking address hack)", MACHINE_SUPPORTS_SAVE ) // bank F9 -GAME( 2007, gnome_3a, gnome_9, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Gnome (bootleg, 080303, banking address hack)", MACHINE_SUPPORTS_SAVE ) // bank F9 -GAME( 2007, gnome_3b, gnome_9, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Gnome (bootleg, 080303, banking address hack, payout percentage 45)", MACHINE_SUPPORTS_SAVE ) // bank F9 payout percentage 45% -GAME( 2007, gnome_3c, gnome_9, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Gnome (bootleg, 080303, banking address hack, payout percentage 60)", MACHINE_SUPPORTS_SAVE ) // bank F9 payout percentage 60% -GAME( 2007, gnome_5a, gnome_9, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Gnome (bootleg, 090406, banking address hack, payout percentage 70)", MACHINE_SUPPORTS_SAVE ) // bank F9, payout percentage 70% -GAME( 2007, gnome_5b, gnome_9, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Gnome (bootleg, 090406, LOTTOGAME (I))", MACHINE_SUPPORTS_SAVE ) // bank F9, modified graphics, changed version text to "MDS_is_the_best_ LOTTOGAME (I)" - -GAME( 2007, sweetl2_2a, sweetl2, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Sweet Life 2 (bootleg, 080320, banking address hack set 1)", MACHINE_SUPPORTS_SAVE ) // bank F9 -GAME( 2007, sweetl2_2b, sweetl2, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Sweet Life 2 (bootleg, 080320, banking address hack set 2)", MACHINE_SUPPORTS_SAVE ) // bank F9, some fixes -GAME( 2007, sweetl2_2c, sweetl2, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Sweet Life 2 (bootleg, 080320, VIDEO GAME-1 MD01)", MACHINE_SUPPORTS_SAVE ) // modified graphics, bank F9, changed version text to "VIDEO GAME-1 MD01" -GAME( 2007, sweetl2_2d, sweetl2, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Sweet Life 2 (bootleg, 080320, LOTTOGAME (I))", MACHINE_SUPPORTS_SAVE ) // bank F9, modified graphics, changed version text to "MDS_is_the_best_ LOTTOGAME (I)" - -GAME( 2008, fcockt2a, fcockt2, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Fruit Cocktail 2 (bootleg, 080707, banking address hack)", MACHINE_SUPPORTS_SAVE ) // bank F9 -GAME( 2008, fcockt2_4a, fcockt2, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Fruit Cocktail 2 (bootleg, 081105, banking address hack)", MACHINE_SUPPORTS_SAVE ) // bank F9 -GAME( 2008, fcockt2_4b, fcockt2, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Fruit Cocktail 2 (bootleg, 081105, banking address hack, no credit limit)", MACHINE_SUPPORTS_SAVE ) // bank F9, no credit limit, "MaxVin" signature -GAME( 2008, fcockt2_4c, fcockt2, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, customl,ROT0, "bootleg", "Fruit Cocktail 2 (bootleg, 081105, VIDEO GAME-1 FR02)", MACHINE_SUPPORTS_SAVE ) // custom alteras, modified graphics, bank F9, many texts changed, changed version text to "VIDEO GAME-1 FR02" -GAME( 2008, fcockt2_4d, fcockt2, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Fruit Cocktail 2 (bootleg, 081105, banking address hack, payout percentage 70)", MACHINE_SUPPORTS_SAVE ) // bank F9, no credit limit, "MaxVin" signature, payout percentage 70% -GAME( 2008, fcockt2_4e, fcockt2, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Fruit Cocktail 2 (bootleg, 081105, LOTTOGAME (I))", MACHINE_SUPPORTS_SAVE ) // bank F9, modified graphics, changed version text to "MDS_is_the_best_ LOTTOGAME (I)" -GAME( 2008, fcockt2_4f, fcockt2, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, customl,ROT0, "bootleg", "Fruit Cocktail 2 (bootleg, 081105, LOTOS FR02)", MACHINE_SUPPORTS_SAVE ) // custom alteras, modified graphics, bank F9, many texts changed, changed version text to "LOTOS FR02" +GAME( 2002, mfish_3a, mfish_13, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "bootleg", "Multi Fish (bootleg, 021124, banking address hack)", MACHINE_SUPPORTS_SAVE ) // bank F9 +GAME( 2002, mfish_12a, mfish_13, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "bootleg", "Multi Fish (bootleg, 040308, banking address hack)", MACHINE_SUPPORTS_SAVE ) // bank F9 + +GAME( 2003, czmon_7a, czmon_13, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "bootleg", "Crazy Monkey (bootleg, 031110, backdoor set 1)", MACHINE_SUPPORTS_SAVE ) // backdoor 1,1 1,3 1,5 1,7 3,3 3,4 +GAME( 2003, czmon_7b, czmon_13, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "bootleg", "Crazy Monkey (bootleg, 031110, backdoor set 2)", MACHINE_SUPPORTS_SAVE ) // backdoor 1,5 5,5 1,7 3,2 3,3 3,4 +GAME( 2003, czmon_8a, czmon_13, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "bootleg", "Crazy Monkey (bootleg, 050120, backdoor)", MACHINE_SUPPORTS_SAVE ) // backdoor 1,1 1,3 1,5 1,7 3,3 3,4 +GAME( 2003, czmon_8b, czmon_13, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "bootleg", "Crazy Monkey (bootleg, 050120, changed version text)", MACHINE_SUPPORTS_SAVE ) // changed version text to 070315 +GAME( 2003, czmon_8c, czmon_13, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, customl, ROT0, "bootleg", "Crazy Monkey (bootleg, 050120, VIDEO GAME-1 CM01)", MACHINE_SUPPORTS_SAVE ) // custom alteras, modified graphics, changed version text to "VIDEO GAME-1 CM01" +GAME( 2003, czmon_8d, czmon_13, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "bootleg", "Crazy Monkey (bootleg, 050120, LOTTOGAME (I))", MACHINE_SUPPORTS_SAVE ) // modified graphics, changed version text to "MDS_is_the_best_ LOTTOGAME (I)" +GAME( 2003, czmon_8e, czmon_13, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "bootleg", "Crazy Monkey (bootleg, 050120, LOTO PROGRAM V-CM2)", MACHINE_SUPPORTS_SAVE ) // modified graphics, many texts changed, changed version text to "LOTO PROGRAM V-CM2" +GAME( 2003, czmon_8f, czmon_13, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, customl, ROT0, "bootleg", "Crazy Monkey (bootleg, 050120, LOTOS CM01)", MACHINE_SUPPORTS_SAVE ) // custom alteras, modified graphics, many texts changed, changed version text to "LOTOS CM01" +GAME( 2003, czmon_9a, czmon_13, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, customl, ROT0, "bootleg", "Crazy Monkey (bootleg, 070315, VIDEO GAME-1 O01 set 1)", MACHINE_SUPPORTS_SAVE ) // custom alteras, modified graphics, changed version text to "VIDEO GAME-1 O01" +GAME( 2003, czmon_9b, czmon_13, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "bootleg", "Crazy Monkey (bootleg, 070315, VIDEO GAME-1 O01 set 2)", MACHINE_SUPPORTS_SAVE ) // modified graphics, changed version text to "VIDEO GAME-1 O01" (czmon_9a, decoded gfx) +GAME( 2003, czmon_9c, czmon_13, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "bootleg", "Crazy Monkey (bootleg, 070315, payout percentage 70)", MACHINE_SUPPORTS_SAVE ) // payout percentage 70% + +GAME( 2003, fcockt_6a, fcockt_8, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "bootleg", "Fruit Cocktail (bootleg, 040216, banking address hack)", MACHINE_SUPPORTS_SAVE ) // bank F8 +GAME( 2003, fcockt_6b, fcockt_8, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "bootleg", "Fruit Cocktail (bootleg, 040216, backdoor)", MACHINE_SUPPORTS_SAVE ) // backdoor 1,1 1,3 1,5 1,7 3,3 3,4 +GAME( 2003, fcockt_6c, fcockt_8, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "bootleg", "Fruit Cocktail (bootleg, 040216, LotoRossy+)", MACHINE_SUPPORTS_SAVE ) // modified graphics, some code changes, description says "for Lat-02 terminals", older set +GAME( 2003, fcockt_6d, fcockt_8, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "bootleg", "Fruit Cocktail (bootleg, 040216, VIDEO GAME-1 FR01)", MACHINE_SUPPORTS_SAVE ) // modified graphics, some code changes, changed version text to "VIDEO GAME-1 FR01", description says "for Lat-02 terminals", newer set +GAME( 2003, fcockt_7a, fcockt_8, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "bootleg", "Fruit Cocktail (bootleg, 050118, backdoor)", MACHINE_SUPPORTS_SAVE ) // backdoor 1,1 1,3 1,5 1,7 3,3 3,4 +GAME( 2003, fcockt_7b, fcockt_8, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, customl, ROT0, "bootleg", "Fruit Cocktail (bootleg, 050118, VIDEO GAME-1 FR01)", MACHINE_SUPPORTS_SAVE ) // custom alteras, modified graphics, many texts changed, changed version text to "VIDEO GAME-1 FR01" +GAME( 2003, fcockt_7c, fcockt_8, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "bootleg", "Fruit Cocktail (bootleg, 050118, payout percentage 40)", MACHINE_SUPPORTS_SAVE ) // payout percentage 40% +GAME( 2003, fcockt_7d, fcockt_8, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "bootleg", "Fruit Cocktail (bootleg, 050118, payout percentage 60)", MACHINE_SUPPORTS_SAVE ) // payout percentage 60% +GAME( 2003, fcockt_7e, fcockt_8, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "bootleg", "Fruit Cocktail (bootleg, 050118, payout percentage 70)", MACHINE_SUPPORTS_SAVE ) // payout percentage 70% +GAME( 2003, fcockt_7f, fcockt_8, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "bootleg", "Fruit Cocktail (bootleg, 050118, changed version text)", MACHINE_SUPPORTS_SAVE ) // changed version text to 070305 +GAME( 2003, fcockt_7g, fcockt_8, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "bootleg", "Fruit Cocktail (bootleg, 050118, LOTO PROGRAM V-FC2)", MACHINE_SUPPORTS_SAVE ) // modified graphics, many texts changed, changed version text to "LOTO PROGRAM V-FC2" +GAME( 2003, fcockt_7h, fcockt_8, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "bootleg", "Fruit Cocktail (bootleg, 050118, LOTOS FR01)", MACHINE_SUPPORTS_SAVE ) // modified graphics, many texts changed, changed version text to "LOTOS FR01" +GAME( 2003, fcockt_8a, fcockt_8, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "bootleg", "Fruit Cocktail (bootleg, 060111, LOTO COCKTAIL V01-0001)", MACHINE_SUPPORTS_SAVE ) // modified graphics, many texts changed, changed version text to "LOTO COCKTAIL V01-0001" +GAME( 2003, fcockt_8b, fcockt_8, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "bootleg", "Fruit Cocktail (bootleg, 060111, LOTTOGAME (I))", MACHINE_SUPPORTS_SAVE ) // modified graphics, changed version text to "MDS_is_the_best_ LOTTOGAME (I)" + +GAME( 2003, lhaunt_4a, lhaunt_6, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "bootleg", "Lucky Haunter (bootleg, 031111, backdoor)", MACHINE_SUPPORTS_SAVE ) // backdoor 1,1 1,3 1,5 1,7 3,3 3,4 +GAME( 2003, lhaunt_5a, lhaunt_6, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "bootleg", "Lucky Haunter (bootleg, 040216, backdoor)", MACHINE_SUPPORTS_SAVE ) // backdoor 1,1 1,3 1,5 1,7 3,3 3,4 +GAME( 2003, lhaunt_6a, lhaunt_6, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "bootleg", "Lucky Haunter (bootleg, 040825, backdoor)", MACHINE_SUPPORTS_SAVE ) // backdoor 1,5 9,1 5,1 1,5 3,3 3,4 +GAME( 2003, lhaunt_6b, lhaunt_6, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, customl, ROT0, "bootleg", "Lucky Haunter (bootleg, 040825, VIDEO GAME-1 PB01)", MACHINE_SUPPORTS_SAVE ) // custom alteras, modified graphics, many texts changed, changed version text to "VIDEO GAME-1 PB01" +GAME( 2003, lhaunt_6c, lhaunt_6, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "bootleg", "Lucky Haunter (bootleg, 040825, changed version text)", MACHINE_SUPPORTS_SAVE ) // changed version text to 070604 +GAME( 2003, lhaunt_6d, lhaunt_6, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "bootleg", "Lucky Haunter (bootleg, 040825, LOTTOGAME (I))", MACHINE_SUPPORTS_SAVE ) // modified graphics, changed version text to "MDS_is_the_best_ LOTTOGAME (I)" +GAME( 2003, lhaunt_6e, lhaunt_6, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "bootleg", "Lucky Haunter (bootleg, 040825, LOTO PROGRAM V-LH2)", MACHINE_SUPPORTS_SAVE ) // modified graphics, many texts changed, changed version text to "LOTO PROGRAM V-LH2" +GAME( 2003, lhaunt_6f, lhaunt_6, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, customl, ROT0, "bootleg", "Lucky Haunter (bootleg, 040825, LOTOS PB01)", MACHINE_SUPPORTS_SAVE ) // custom alteras, modified graphics, many texts changed, changed version text to "LOTOS PB01" + +GAME( 2004, garage_4a, garage_5, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "bootleg", "Garage (bootleg, 040219, backdoor)", MACHINE_SUPPORTS_SAVE ) // backdoor 1,1 1,3 1,5 1,7 3,3 3,4 +GAME( 2004, garage_4b, garage_5, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "bootleg", "Garage (bootleg, 040219, changed version text)", MACHINE_SUPPORTS_SAVE ) // changed version text to 070329 +GAME( 2004, garage_4c, garage_5, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "bootleg", "Garage (bootleg, 040219, LOTO PROGRAM V-GG2)", MACHINE_SUPPORTS_SAVE ) // modified graphics, many texts changed, changed version text to "LOTO PROGRAM V-GG2" +GAME( 2004, garage_5a, garage_5, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "bootleg", "Garage (bootleg, 050311, backdoor)", MACHINE_SUPPORTS_SAVE ) // backdoor 1,1 1,3 1,5 1,7 3,3 3,4 +GAME( 2004, garage_5b, garage_5, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, customl, ROT0, "bootleg", "Garage (bootleg, 050311, VIDEO GAME-1 GA01)", MACHINE_SUPPORTS_SAVE ) // custom alteras, modified graphics, changed version text to "VIDEO GAME-1 GA01" +GAME( 2004, garage_5c, garage_5, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "bootleg", "Garage (bootleg, 050311, payout percentage 70)", MACHINE_SUPPORTS_SAVE ) // payout percentage 70% +GAME( 2004, garage_5d, garage_5, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "bootleg", "Garage (bootleg, 050311, LOTTOGAME (I))", MACHINE_SUPPORTS_SAVE ) // modified graphics, changed version text to "MDS_is_the_best_ LOTTOGAME (I)" +GAME( 2004, garage_5e, garage_5, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, customl, ROT0, "bootleg", "Garage (bootleg, 050311, LOTOS GA01)", MACHINE_SUPPORTS_SAVE ) // custom alteras, modified graphics, many texts changed, changed version text to "LOTOS GA01" + +GAME( 2004, rclimb_3a, rclimb_3, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "bootleg", "Rock Climber (bootleg, 040827, backdoor)", MACHINE_SUPPORTS_SAVE ) // backdoor 1,5 9,1 5,1 1,5 3,3 3,4 +GAME( 2004, rclimb_3b, rclimb_3, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "bootleg", "Rock Climber (bootleg, 040827, new service menu)", MACHINE_SUPPORTS_SAVE ) // new service menu +GAME( 2004, rclimb_3c, rclimb_3, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, customl, ROT0, "bootleg", "Rock Climber (bootleg, 040827, VIDEO GAME-1 SK01)", MACHINE_SUPPORTS_SAVE ) // custom alteras, modified graphics, many texts changed, changed version text to "VIDEO GAME-1 SK01" +GAME( 2004, rclimb_3d, rclimb_3, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "bootleg", "Rock Climber (bootleg, 040827, LOTTOGAME (I))", MACHINE_SUPPORTS_SAVE ) // modified graphics, changed version text to "MDS_is_the_best_ LOTTOGAME (I)" +GAME( 2004, rclimb_3e, rclimb_3, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, customl, ROT0, "bootleg", "Rock Climber (bootleg, 040827, LOTOS SK01)", MACHINE_SUPPORTS_SAVE ) // custom alteras, modified graphics, many texts changed, changed version text to "LOTOS SK01" + +GAME( 2004, sweetla, sweetl, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "bootleg", "Sweet Life (bootleg, 041220, backdoor)", MACHINE_SUPPORTS_SAVE ) // backdoor 1,5 9,1 5,3 1,5 3,3 3,4 +GAME( 2004, sweetlb, sweetl, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "bootleg", "Sweet Life (bootleg, 041220, banking address hack, changed version text)", MACHINE_SUPPORTS_SAVE ) // bank F9, changed version text to 070412 + +GAME( 2004, resdnt_2a, resdnt_6, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "bootleg", "Resident (bootleg, 040513, backdoor)", MACHINE_SUPPORTS_SAVE ) // backdoor 1,5 9,1 5,1 1,5 3,3 3,4 +GAME( 2004, resdnt_2b, resdnt_6, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, customl, ROT0, "bootleg", "Resident (bootleg, 040513, VIDEO GAME-1 SE01 set 1)", MACHINE_SUPPORTS_SAVE ) // custom alteras, modified graphics, changed version text to "VIDEO GAME-1 SE01" +GAME( 2004, resdnt_2c, resdnt_6, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, customl, ROT0, "bootleg", "Resident (bootleg, 040513, VIDEO GAME-1 SE01 set 2)", MACHINE_SUPPORTS_SAVE ) // custom alteras, modified graphics, changed version text to "VIDEO GAME-1 SE01" +GAME( 2004, resdnt_2d, resdnt_6, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, customl, ROT0, "bootleg", "Resident (bootleg, 040513, VIDEO GAME-1 SE01 set 3)", MACHINE_SUPPORTS_SAVE ) // custom alteras, modified graphics, many texts changed, changed version text to "VIDEO GAME-1 SE01" +GAME( 2004, resdnt_2e, resdnt_6, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "bootleg", "Resident (bootleg, 040513, LOTTOGAME (I))", MACHINE_SUPPORTS_SAVE ) // modified graphics, changed version text to "MDS_is_the_best_ LOTTOGAME (I)" +GAME( 2004, resdnt_2f, resdnt_6, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "bootleg", "Resident (bootleg, 040513, LOTO PROGRAM V-RS2)", MACHINE_SUPPORTS_SAVE ) // modified graphics, many texts changed, changed version text to "LOTO PROGRAM V-RS2" +GAME( 2004, resdnt_2g, resdnt_6, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, customl, ROT0, "bootleg", "Resident (bootleg, 040513, LOTOS SE01)", MACHINE_SUPPORTS_SAVE ) // custom alteras, modified graphics, many texts changed, changed version text to "LOTOS SE01" + +GAME( 2005, islanda, island, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "bootleg", "Island (bootleg, 050713, backdoor)", MACHINE_SUPPORTS_SAVE ) // backdoor 1,1 1,3 1,5 1,7 3,3 3,4 +GAME( 2005, islandb, island, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, customl, ROT0, "bootleg", "Island (bootleg, 050713, VIDEO GAME-1 OS01)", MACHINE_SUPPORTS_SAVE ) // custom alteras, modified graphics, many texts changed, changed version text to "VIDEO GAME-1 OS01" +GAME( 2005, islandc, island, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, customl, ROT0, "bootleg", "Island (bootleg, 050713, LOTOS OS01)", MACHINE_SUPPORTS_SAVE ) // custom alteras, modified graphics, many texts changed, changed version text to "LOTOS OS01" + +GAME( 2006, island2a, island2, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "bootleg", "Island 2 (bootleg, 060529, banking address hack)", MACHINE_SUPPORTS_SAVE ) // bank F9 (not standart, game not work) +GAME( 2006, island2b, island2, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "bootleg", "Island 2 (bootleg, 060529, banking address hack, changed version text)", MACHINE_SUPPORTS_SAVE ) // bank F9, changed version text to 070205, skip some start tests +GAME( 2006, island2c, island2, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "bootleg", "Island 2 (bootleg, 060529, LOTTOGAME (I))", MACHINE_SUPPORTS_SAVE ) // bank F9, modified graphics, changed version text to "MDS_is_the_best_ LOTTOGAME (I)" +GAME( 2006, island2_3a, island2, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "bootleg", "Island 2 (bootleg, 061218, VIDEO GAME-1 OS2-01)", MACHINE_SUPPORTS_SAVE ) // bank F9, modified graphics, changed version text to "VIDEO GAME-1 OS2-01" +GAME( 2006, island2_4a, island2, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "bootleg", "Island 2 (bootleg, 070205, banking address hack)", MACHINE_SUPPORTS_SAVE ) // bank F9 + +GAME( 2006, pirate2a, pirate2, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "bootleg", "Pirate 2 (bootleg, 061005, banking address hack set 1)", MACHINE_SUPPORTS_SAVE ) // bank F9 +GAME( 2006, pirate2b, pirate2, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "bootleg", "Pirate 2 (bootleg, 061005, banking address hack set 2)", MACHINE_SUPPORTS_SAVE ) // bank F9, skip raster beam position check +GAME( 2006, pirate2c, pirate2, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "bootleg", "Pirate 2 (bootleg, 061005, banking address hack, changed version text set 1)", MACHINE_SUPPORTS_SAVE ) // bank F9, changed version text to 070126 +GAME( 2006, pirate2d, pirate2, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "bootleg", "Pirate 2 (bootleg, 061005, banking address hack, changed version text set 2)", MACHINE_SUPPORTS_SAVE ) // bank F9, changed version text to 070126 +GAME( 2006, pirate2e, pirate2, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "bootleg", "Pirate 2 (bootleg, 061005, banking address hack, changed version text set 3)", MACHINE_SUPPORTS_SAVE ) // bank F9, changed version text to 070126, skip some start tests +GAME( 2006, pirate2f, pirate2, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, customl, ROT0, "bootleg", "Pirate 2 (bootleg, 061005, VIDEO GAME-1 PR01)", MACHINE_SUPPORTS_SAVE ) // custom alteras, modified graphics, many texts changed, changed version text to "VIDEO GAME-1 PR01" +GAME( 2006, pirate2g, pirate2, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "bootleg", "Pirate 2 (bootleg, 061005, LOTTOGAME (I))", MACHINE_SUPPORTS_SAVE ) // bank F9, modified graphics, changed version text to "MDS_is_the_best_ LOTTOGAME (I)" +GAME( 2006, pirate2h, pirate2, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, customl, ROT0, "bootleg", "Pirate 2 (bootleg, 061005, LOTOS PR01)", MACHINE_SUPPORTS_SAVE ) // custom alteras, modified graphics, many texts changed, changed version text to "LOTOS PR01" +GAME( 2006, pirate2_2a, pirate2, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "bootleg", "Pirate 2 (bootleg, 070126, banking address hack)", MACHINE_SUPPORTS_SAVE ) // bank F9 + +GAME( 2006, keksa, keks_2, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "bootleg", "Keks (bootleg, 060328, banking address hack)", MACHINE_SUPPORTS_SAVE ) // bank F9 +GAME( 2006, keksb, keks_2, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "bootleg", "Keks (bootleg, 060328, backdoor)", MACHINE_SUPPORTS_SAVE ) // backdoor 1,1 1,3 1,5 1,7 3,3 3,4 +GAME( 2006, keksc, keks_2, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "bootleg", "Keks (bootleg, 060328, banking address hack, changed version text)", MACHINE_SUPPORTS_SAVE ) // bank F9, changed version text to 070119 +GAME( 2006, keks_2a, keks_2, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "bootleg", "Keks (bootleg, 060403, banking address hack)", MACHINE_SUPPORTS_SAVE ) // bank F9 +GAME( 2006, keks_2b, keks_2, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "bootleg", "Keks (bootleg, 060403, banking address hack, changed version text)", MACHINE_SUPPORTS_SAVE ) // bank F9, changed version text to 070119 +GAME( 2006, keks_2c, keks_2, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, customl, ROT0, "bootleg", "Keks (bootleg, 060403, VIDEO GAME-1 KS01 set 1)", MACHINE_SUPPORTS_SAVE ) // custom alteras, modified graphics, bank F9, changed version text to "VIDEO GAME-1 KS01" +GAME( 2006, keks_2d, keks_2, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "bootleg", "Keks (bootleg, 060403, VIDEO GAME-1 KS01 set 2)", MACHINE_SUPPORTS_SAVE ) // modified graphics, bank F9, changed version text to "VIDEO GAME-1 KS01" (keks_2c, decoded gfx) +GAME( 2006, keks_2e, keks_2, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "bootleg", "Keks (bootleg, 060403, banking address hack, payout percentage 60)", MACHINE_SUPPORTS_SAVE ) // bank F9, payout percentage 60% +GAME( 2006, keks_2f, keks_2, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "bootleg", "Keks (bootleg, 060403, LOTTOGAME (I))", MACHINE_SUPPORTS_SAVE ) // bank F9, modified graphics, changed version text to "MDS_is_the_best_ LOTTOGAME (I)" +GAME( 2006, keks_2g, keks_2, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, customl, ROT0, "bootleg", "Keks (bootleg, 060403, LOTOS KS01)", MACHINE_SUPPORTS_SAVE ) // custom alteras, modified graphics, bank F9, many texts changed, changed version text to "LOTOS KS01" +GAME( 2006, keks_3a, keks_2, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "bootleg", "Keks (bootleg, 070119, banking address hack set 1)", MACHINE_SUPPORTS_SAVE ) // bank F9 +GAME( 2006, keks_3b, keks_2, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "bootleg", "Keks (bootleg, 070119, banking address hack set 2)", MACHINE_SUPPORTS_SAVE ) // bank F9 + +GAME( 2007, gnomea, gnome_9, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "bootleg", "Gnome (bootleg, 070906, banking address hack set 1)", MACHINE_SUPPORTS_SAVE ) // bank F9 +GAME( 2007, gnomeb, gnome_9, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "bootleg", "Gnome (bootleg, 070906, banking address hack set 2)", MACHINE_SUPPORTS_SAVE ) // bank F9 +GAME( 2007, gnomec, gnome_9, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "bootleg", "Gnome (bootleg, 070906, banking address hack set 3)", MACHINE_SUPPORTS_SAVE ) // bank F9 +GAME( 2007, gnomed, gnome_9, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, customl, ROT0, "bootleg", "Gnome (bootleg, 070906, VIDEO GAME-1 GN01)", MACHINE_SUPPORTS_SAVE ) // custom alteras, modified graphics, many texts changed, changed version text to "VIDEO GAME-1 GN01" +GAME( 2007, gnomee, gnome_9, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, customl, ROT0, "bootleg", "Gnome (bootleg, 070906, LOTOS GN01)", MACHINE_SUPPORTS_SAVE ) // custom alteras, modified graphics, bank F9, many texts changed, changed version text to "LOTOS GN01" +GAME( 2007, gnome_2a, gnome_9, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "bootleg", "Gnome (bootleg, 071115, banking address hack)", MACHINE_SUPPORTS_SAVE ) // bank F9 +GAME( 2007, gnome_3a, gnome_9, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "bootleg", "Gnome (bootleg, 080303, banking address hack)", MACHINE_SUPPORTS_SAVE ) // bank F9 +GAME( 2007, gnome_3b, gnome_9, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "bootleg", "Gnome (bootleg, 080303, banking address hack, payout percentage 45)", MACHINE_SUPPORTS_SAVE ) // bank F9 payout percentage 45% +GAME( 2007, gnome_3c, gnome_9, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "bootleg", "Gnome (bootleg, 080303, banking address hack, payout percentage 60)", MACHINE_SUPPORTS_SAVE ) // bank F9 payout percentage 60% +GAME( 2007, gnome_5a, gnome_9, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "bootleg", "Gnome (bootleg, 090406, banking address hack, payout percentage 70)", MACHINE_SUPPORTS_SAVE ) // bank F9, payout percentage 70% +GAME( 2007, gnome_5b, gnome_9, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "bootleg", "Gnome (bootleg, 090406, LOTTOGAME (I))", MACHINE_SUPPORTS_SAVE ) // bank F9, modified graphics, changed version text to "MDS_is_the_best_ LOTTOGAME (I)" + +GAME( 2007, sweetl2_2a, sweetl2, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "bootleg", "Sweet Life 2 (bootleg, 080320, banking address hack set 1)", MACHINE_SUPPORTS_SAVE ) // bank F9 +GAME( 2007, sweetl2_2b, sweetl2, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "bootleg", "Sweet Life 2 (bootleg, 080320, banking address hack set 2)", MACHINE_SUPPORTS_SAVE ) // bank F9, some fixes +GAME( 2007, sweetl2_2c, sweetl2, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "bootleg", "Sweet Life 2 (bootleg, 080320, VIDEO GAME-1 MD01)", MACHINE_SUPPORTS_SAVE ) // modified graphics, bank F9, changed version text to "VIDEO GAME-1 MD01" +GAME( 2007, sweetl2_2d, sweetl2, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "bootleg", "Sweet Life 2 (bootleg, 080320, LOTTOGAME (I))", MACHINE_SUPPORTS_SAVE ) // bank F9, modified graphics, changed version text to "MDS_is_the_best_ LOTTOGAME (I)" + +GAME( 2008, fcockt2a, fcockt2, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "bootleg", "Fruit Cocktail 2 (bootleg, 080707, banking address hack)", MACHINE_SUPPORTS_SAVE ) // bank F9 +GAME( 2008, fcockt2_4a, fcockt2, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "bootleg", "Fruit Cocktail 2 (bootleg, 081105, banking address hack)", MACHINE_SUPPORTS_SAVE ) // bank F9 +GAME( 2008, fcockt2_4b, fcockt2, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "bootleg", "Fruit Cocktail 2 (bootleg, 081105, banking address hack, no credit limit)", MACHINE_SUPPORTS_SAVE ) // bank F9, no credit limit, "MaxVin" signature +GAME( 2008, fcockt2_4c, fcockt2, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, customl, ROT0, "bootleg", "Fruit Cocktail 2 (bootleg, 081105, VIDEO GAME-1 FR02)", MACHINE_SUPPORTS_SAVE ) // custom alteras, modified graphics, bank F9, many texts changed, changed version text to "VIDEO GAME-1 FR02" +GAME( 2008, fcockt2_4d, fcockt2, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "bootleg", "Fruit Cocktail 2 (bootleg, 081105, banking address hack, payout percentage 70)", MACHINE_SUPPORTS_SAVE ) // bank F9, no credit limit, "MaxVin" signature, payout percentage 70% +GAME( 2008, fcockt2_4e, fcockt2, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "bootleg", "Fruit Cocktail 2 (bootleg, 081105, LOTTOGAME (I))", MACHINE_SUPPORTS_SAVE ) // bank F9, modified graphics, changed version text to "MDS_is_the_best_ LOTTOGAME (I)" +GAME( 2008, fcockt2_4f, fcockt2, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, customl, ROT0, "bootleg", "Fruit Cocktail 2 (bootleg, 081105, LOTOS FR02)", MACHINE_SUPPORTS_SAVE ) // custom alteras, modified graphics, bank F9, many texts changed, changed version text to "LOTOS FR02" /* 0x000000 - 0x03ffff Crazy Monkey V03-1110 @@ -1886,5 +1886,5 @@ ROM_START( igromula ) ROM_LOAD( "15games.gfx", 0x000000, 0x4000000, NO_DUMP ) ROM_END -GAME( 2003, igromult, 0, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Igrosoft Multigame Bootleg (10 Games)", MACHINE_NOT_WORKING ) // no GFX roms -GAME( 2003, igromula, igromult, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Igrosoft Multigame Bootleg (15 Games)", MACHINE_NOT_WORKING ) // no GFX roms +GAME( 2003, igromult, 0, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "bootleg", "Igrosoft Multigame Bootleg (10 Games)", MACHINE_NOT_WORKING ) // no GFX roms +GAME( 2003, igromula, igromult, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, 0, ROT0, "bootleg", "Igrosoft Multigame Bootleg (15 Games)", MACHINE_NOT_WORKING ) // no GFX roms diff --git a/src/mame/drivers/multi16.cpp b/src/mame/drivers/multi16.cpp index 3193c2e9e23..9bbce125c59 100644 --- a/src/mame/drivers/multi16.cpp +++ b/src/mame/drivers/multi16.cpp @@ -130,7 +130,7 @@ void multi16_state::machine_reset() } -static MACHINE_CONFIG_START( multi16, multi16_state ) +static MACHINE_CONFIG_START( multi16 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8086, 8000000) MCFG_CPU_PROGRAM_MAP(multi16_map) @@ -164,5 +164,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1986, multi16, 0, 0, multi16, multi16, driver_device, 0, "Mitsubishi", "Multi 16", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1986, multi16, 0, 0, multi16, multi16, multi16_state, 0, "Mitsubishi", "Multi 16", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) diff --git a/src/mame/drivers/multi8.cpp b/src/mame/drivers/multi8.cpp index 61c5291ff11..8761b6dd51f 100644 --- a/src/mame/drivers/multi8.cpp +++ b/src/mame/drivers/multi8.cpp @@ -617,7 +617,7 @@ void multi8_state::machine_reset() m_mcu_init = 0; } -static MACHINE_CONFIG_START( multi8, multi8_state ) +static MACHINE_CONFIG_START( multi8 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80, XTAL_4MHz) MCFG_CPU_PROGRAM_MAP(multi8_mem) @@ -680,5 +680,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1983, multi8, 0, 0, multi8, multi8, driver_device, 0, "Mitsubishi", "Multi 8 (Mitsubishi)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1983, multi8, 0, 0, multi8, multi8, multi8_state, 0, "Mitsubishi", "Multi 8 (Mitsubishi)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) diff --git a/src/mame/drivers/multigam.cpp b/src/mame/drivers/multigam.cpp index 103e8b87b3a..b157777e246 100644 --- a/src/mame/drivers/multigam.cpp +++ b/src/mame/drivers/multigam.cpp @@ -583,11 +583,11 @@ WRITE8_MEMBER(multigam_state::multigam3_mmc3_rom_switch_w) case 0x6000: /* disable irqs */ machine().device("maincpu")->execute().set_input_line(M6502_IRQ_LINE, CLEAR_LINE); - m_ppu->set_scanline_callback(ppu2c0x_scanline_delegate()); + m_ppu->set_scanline_callback(ppu2c0x_device::scanline_delegate()); break; case 0x6001: /* enable irqs */ - m_ppu->set_scanline_callback(ppu2c0x_scanline_delegate(FUNC(multigam_state::multigam3_mmc3_scanline_cb),this)); + m_ppu->set_scanline_callback(ppu2c0x_device::scanline_delegate(FUNC(multigam_state::multigam3_mmc3_scanline_cb),this)); break; } } @@ -712,7 +712,7 @@ void multigam_state::multigam_init_mapper02(uint8_t* prg_base, int prg_size) m_mapper02_prg_base = prg_base; m_mapper02_prg_size = prg_size; - m_ppu->set_scanline_callback(ppu2c0x_scanline_delegate()); + m_ppu->set_scanline_callback(ppu2c0x_device::scanline_delegate()); } /****************************************************** @@ -869,7 +869,7 @@ void multigam_state::multigam_init_mmc1(uint8_t *prg_base, int prg_size, int chr m_mmc1_prg_size = prg_size; m_mmc1_chr_bank_base = chr_bank_base; - m_ppu->set_scanline_callback(ppu2c0x_scanline_delegate()); + m_ppu->set_scanline_callback(ppu2c0x_device::scanline_delegate()); } @@ -932,7 +932,7 @@ void multigam_state::supergm3_set_bank() // title screen memcpy(mem + 0x8000, mem + 0x18000, 0x8000); membank("bank10")->set_base(mem + 0x6000); - m_ppu->set_scanline_callback(ppu2c0x_scanline_delegate()); + m_ppu->set_scanline_callback(ppu2c0x_device::scanline_delegate()); } else if ((m_supergm3_prg_bank & 0x40) == 0) { @@ -1212,7 +1212,7 @@ MACHINE_START_MEMBER(multigam_state,supergm3) m_multigmc_mmc3_6000_ram = std::make_unique(0x2000); } -static MACHINE_CONFIG_START( multigam, multigam_state ) +static MACHINE_CONFIG_START( multigam ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", N2A03, NTSC_APU_CLOCK) MCFG_CPU_PROGRAM_MAP(multigam_map) @@ -1462,5 +1462,5 @@ GAME( 1992, multigmb, multigam, multigam, multigam, multigam_state, multigam, RO GAME( 1992, multigm2, 0, multigm3, multigm2, multigam_state, multigm3, ROT0, "Seo Jin", "Multi Game 2", 0 ) GAME( 1992, multigm3, 0, multigm3, multigm3, multigam_state, multigm3, ROT0, "Seo Jin", "Multi Game III", 0 ) GAME( 1992, multigmt, 0, multigmt, multigmt, multigam_state, multigmt, ROT0, "Tung Sheng Electronics", "Multi Game (Tung Sheng Electronics)", 0 ) -GAME( 1994, sgmt1, 0, supergm3, sgmt1, driver_device, 0, ROT0, "", "Super Game Mega Type 1", 0 ) -GAME( 1996, supergm3, 0, supergm3, supergm3, driver_device, 0, ROT0, "", "Super Game III", 0 ) +GAME( 1994, sgmt1, 0, supergm3, sgmt1, multigam_state, 0, ROT0, "", "Super Game Mega Type 1", 0 ) +GAME( 1996, supergm3, 0, supergm3, supergm3, multigam_state, 0, ROT0, "", "Super Game III", 0 ) diff --git a/src/mame/drivers/munchmo.cpp b/src/mame/drivers/munchmo.cpp index d841dd8bbcc..407669ffd59 100644 --- a/src/mame/drivers/munchmo.cpp +++ b/src/mame/drivers/munchmo.cpp @@ -324,7 +324,7 @@ void munchmo_state::machine_reset() m_nmi_enable = 0; } -static MACHINE_CONFIG_START( mnchmobl, munchmo_state ) +static MACHINE_CONFIG_START( mnchmobl ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_15MHz/4) // from pin 13 of XTAL-driven 163 @@ -435,5 +435,5 @@ ROM_END * *************************************/ -GAME( 1983, joyfulr, 0, mnchmobl, mnchmobl, driver_device, 0, ROT270, "SNK", "Joyful Road (Japan)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1983, mnchmobl, joyfulr, mnchmobl, mnchmobl, driver_device, 0, ROT270, "SNK (Centuri license)", "Munch Mobile (US)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1983, joyfulr, 0, mnchmobl, mnchmobl, munchmo_state, 0, ROT270, "SNK", "Joyful Road (Japan)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1983, mnchmobl, joyfulr, mnchmobl, mnchmobl, munchmo_state, 0, ROT270, "SNK (Centuri license)", "Munch Mobile (US)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/murogem.cpp b/src/mame/drivers/murogem.cpp index fce442574e8..37adb074bc2 100644 --- a/src/mame/drivers/murogem.cpp +++ b/src/mame/drivers/murogem.cpp @@ -245,7 +245,7 @@ uint32_t murogem_state::screen_update(screen_device &screen, bitmap_ind16 &bitma } -static MACHINE_CONFIG_START( murogem, murogem_state ) +static MACHINE_CONFIG_START( murogem ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6802, 8000000) /* ? MHz */ MCFG_CPU_PROGRAM_MAP(murogem_map) @@ -332,7 +332,7 @@ ROM_START( lasvegas ) ROM_LOAD( "a3.1b", 0x0000, 0x0020, CRC(abddfb6b) SHA1(ed78b93701b5a3bf2053d2584e9a354fb6cec203) ) /* 74s288 at 1B */ ROM_END -GAME( 198?, murogem, 0, murogem, murogem, driver_device, 0, ROT0, "", "Muroge Monaco (set 1)", MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE ) -GAME( 198?, murogema, murogem, murogem, murogem, driver_device, 0, ROT0, "", "Muroge Monaco (set 2)", MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE ) -GAME( 198?, murogemb, murogem, murogem, murogem, driver_device, 0, ROT0, "", "Muroge Monaco (set 3)", MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE ) -GAME( 198?, lasvegas, murogem, murogem, murogem, driver_device, 0, ROT0, "hack", "Las Vegas, Nevada", MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE ) +GAME( 198?, murogem, 0, murogem, murogem, murogem_state, 0, ROT0, "", "Muroge Monaco (set 1)", MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE ) +GAME( 198?, murogema, murogem, murogem, murogem, murogem_state, 0, ROT0, "", "Muroge Monaco (set 2)", MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE ) +GAME( 198?, murogemb, murogem, murogem, murogem, murogem_state, 0, ROT0, "", "Muroge Monaco (set 3)", MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE ) +GAME( 198?, lasvegas, murogem, murogem, murogem, murogem_state, 0, ROT0, "hack", "Las Vegas, Nevada", MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/murogmbl.cpp b/src/mame/drivers/murogmbl.cpp index e8f19e19b69..931edbc6ae7 100644 --- a/src/mame/drivers/murogmbl.cpp +++ b/src/mame/drivers/murogmbl.cpp @@ -193,7 +193,7 @@ static GFXDECODE_START( murogmbl ) GFXDECODE_ENTRY( "gfx1", 0, layout8x8x2, 0x0, 1 ) GFXDECODE_END -static MACHINE_CONFIG_START( murogmbl, murogmbl_state ) +static MACHINE_CONFIG_START( murogmbl ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 1000000) /* Z80? */ MCFG_CPU_PROGRAM_MAP(murogmbl_map) @@ -234,4 +234,4 @@ ROM_START(murogmbl) ROM_LOAD( "74s288.a8", 0x0000, 0x0020, CRC(fc35201c) SHA1(4549e228c48992e0d10957f029b89a547392e72b) ) ROM_END -GAME( 1982, murogmbl, murogem, murogmbl, murogmbl, driver_device, 0, ROT0, "bootleg?", "Muroge Monaco (bootleg?)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1982, murogmbl, murogem, murogmbl, murogmbl, murogmbl_state, 0, ROT0, "bootleg?", "Muroge Monaco (bootleg?)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/mustache.cpp b/src/mame/drivers/mustache.cpp index 5110bba8a7c..c8d6a3e1782 100644 --- a/src/mame/drivers/mustache.cpp +++ b/src/mame/drivers/mustache.cpp @@ -177,7 +177,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(mustache_state::scanline) -static MACHINE_CONFIG_START( mustache, mustache_state ) +static MACHINE_CONFIG_START( mustache ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, CPU_CLOCK) diff --git a/src/mame/drivers/mvme147.cpp b/src/mame/drivers/mvme147.cpp index 80764860c03..00c9c4c8b9f 100644 --- a/src/mame/drivers/mvme147.cpp +++ b/src/mame/drivers/mvme147.cpp @@ -219,8 +219,8 @@ protected: private: required_device m_maincpu; - required_device m_sccterm; - required_device m_sccterm2; + required_device m_sccterm; + required_device m_sccterm2; // Pointer to System ROMs needed by bootvect_r and masking RAM buffer for post reset accesses uint32_t *m_sysrom; @@ -249,8 +249,8 @@ static ADDRESS_MAP_START (mvme147_mem, AS_PROGRAM, 32, mvme147_state) AM_RANGE (0xfffe1018, 0xfffe102f) AM_READWRITE8(pcc8_r, pcc8_w, 0xffffffff) /* PCC 8 bits registers */ AM_RANGE (0xfffe2000, 0xfffe201b) AM_READWRITE8(vmechip_r, vmechip_w, 0x00ff00ff) /* VMEchip 8 bits registers on odd adresses */ - AM_RANGE (0xfffe3000, 0xfffe3003) AM_DEVREADWRITE8("scc", scc85C30_device, ba_cd_inv_r, ba_cd_inv_w, 0xffffffff) /* Port 1&2 - Dual serial port Z80-SCC */ - AM_RANGE (0xfffe3800, 0xfffe3803) AM_DEVREADWRITE8("scc2", scc85C30_device, ba_cd_inv_r, ba_cd_inv_w, 0xffffffff) /* Port 3&4 - Dual serial port Z80-SCC */ + AM_RANGE (0xfffe3000, 0xfffe3003) AM_DEVREADWRITE8("scc", scc85c30_device, ba_cd_inv_r, ba_cd_inv_w, 0xffffffff) /* Port 1&2 - Dual serial port Z80-SCC */ + AM_RANGE (0xfffe3800, 0xfffe3803) AM_DEVREADWRITE8("scc2", scc85c30_device, ba_cd_inv_r, ba_cd_inv_w, 0xffffffff) /* Port 3&4 - Dual serial port Z80-SCC */ //AM_RANGE(0x100000, 0xfeffff) AM_READWRITE(vme_a24_r, vme_a24_w) /* VMEbus Rev B addresses (24 bits) - not verified */ //AM_RANGE(0xff0000, 0xffffff) AM_READWRITE(vme_a16_r, vme_a16_w) /* VMEbus Rev B addresses (16 bits) - not verified */ @@ -644,7 +644,7 @@ SLOT_INTERFACE_END /* * Machine configuration */ -static MACHINE_CONFIG_START (mvme147, mvme147_state) +static MACHINE_CONFIG_START (mvme147) /* basic machine hardware */ MCFG_CPU_ADD ("maincpu", M68030, XTAL_16MHz) MCFG_CPU_PROGRAM_MAP (mvme147_mem) @@ -660,8 +660,8 @@ static MACHINE_CONFIG_START (mvme147, mvme147_state) MCFG_Z80SCC_OUT_RTSA_CB(DEVWRITELINE("rs232trm", rs232_port_device, write_rts)) MCFG_RS232_PORT_ADD ("rs232trm", default_rs232_devices, "terminal") - MCFG_RS232_RXD_HANDLER (DEVWRITELINE ("scc", scc85C30_device, rxa_w)) - MCFG_RS232_CTS_HANDLER (DEVWRITELINE ("scc", scc85C30_device, ctsa_w)) + MCFG_RS232_RXD_HANDLER (DEVWRITELINE ("scc", scc85c30_device, rxa_w)) + MCFG_RS232_CTS_HANDLER (DEVWRITELINE ("scc", scc85c30_device, ctsa_w)) MCFG_SCC85C30_ADD("scc2", SCC_CLOCK, 0, 0, 0, 0 ) MACHINE_CONFIG_END @@ -710,5 +710,5 @@ ROM_START (mvme147) ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP (1989, mvme147, 0, 0, mvme147, mvme147, driver_device, 0, "Motorola", "MVME-147", MACHINE_NO_SOUND_HW | MACHINE_TYPE_COMPUTER ) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP (1989, mvme147, 0, 0, mvme147, mvme147, mvme147_state, 0, "Motorola", "MVME-147", MACHINE_NO_SOUND_HW | MACHINE_TYPE_COMPUTER ) diff --git a/src/mame/drivers/mw18w.cpp b/src/mame/drivers/mw18w.cpp index 0e24a1b7b51..07605d7f2cb 100644 --- a/src/mame/drivers/mw18w.cpp +++ b/src/mame/drivers/mw18w.cpp @@ -265,7 +265,7 @@ INPUT_PORTS_END ***************************************************************************/ -static MACHINE_CONFIG_START( mw18w, mw18w_state ) +static MACHINE_CONFIG_START( mw18w ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_19_968MHz/8) @@ -306,5 +306,5 @@ ROM_START( 18w2 ) ROM_END -GAMEL( 1979, 18w, 0, mw18w, mw18w, driver_device, 0, ROT0, "Midway", "18 Wheeler (set 1)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL, layout_18w ) -GAMEL( 1979, 18w2, 18w, mw18w, mw18w, driver_device, 0, ROT0, "Midway", "18 Wheeler (set 2)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL, layout_18w ) +GAMEL( 1979, 18w, 0, mw18w, mw18w, mw18w_state, 0, ROT0, "Midway", "18 Wheeler (set 1)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL, layout_18w ) +GAMEL( 1979, 18w2, 18w, mw18w, mw18w, mw18w_state, 0, ROT0, "Midway", "18 Wheeler (set 2)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL, layout_18w ) diff --git a/src/mame/drivers/mw8080bw.cpp b/src/mame/drivers/mw8080bw.cpp index bbec181f62d..f74260832fd 100644 --- a/src/mame/drivers/mw8080bw.cpp +++ b/src/mame/drivers/mw8080bw.cpp @@ -226,7 +226,7 @@ ADDRESS_MAP_END * *************************************/ -MACHINE_CONFIG_START( mw8080bw_root, mw8080bw_state ) +MACHINE_CONFIG_START( mw8080bw_root ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",I8080,MW8080BW_CPU_CLOCK) @@ -3224,37 +3224,37 @@ ROM_END * *************************************/ -/* PCB # rom parent machine inp init monitor,company,fullname,flags */ +/* PCB # year rom parent machine inp init monitor,company,fullname,flags */ -/* 596 */ GAMEL(1976, seawolf, 0, seawolf, seawolf, driver_device, 0, ROT0, "Dave Nutting Associates / Midway", "Sea Wolf (set 1)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_seawolf ) -/* 596 */ GAMEL(1976, seawolfo, seawolf, seawolf, seawolf, driver_device, 0, ROT0, "Dave Nutting Associates / Midway", "Sea Wolf (set 2)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_seawolf ) -/* 597 */ GAMEL(1975, gunfight, 0, gunfight, gunfight, driver_device, 0, ROT0, "Dave Nutting Associates / Midway", "Gun Fight (set 1)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_gunfight ) -/* 597 */ GAMEL(1975, gunfighto, gunfight, gunfight, gunfight, driver_device, 0, ROT0, "Dave Nutting Associates / Midway", "Gun Fight (set 2)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_gunfight ) +/* 596 */ GAMEL(1976, seawolf, 0, seawolf, seawolf, mw8080bw_state, 0, ROT0, "Dave Nutting Associates / Midway", "Sea Wolf (set 1)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_seawolf ) +/* 596 */ GAMEL(1976, seawolfo, seawolf, seawolf, seawolf, mw8080bw_state, 0, ROT0, "Dave Nutting Associates / Midway", "Sea Wolf (set 2)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_seawolf ) +/* 597 */ GAMEL(1975, gunfight, 0, gunfight, gunfight, mw8080bw_state, 0, ROT0, "Dave Nutting Associates / Midway", "Gun Fight (set 1)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_gunfight ) +/* 597 */ GAMEL(1975, gunfighto, gunfight, gunfight, gunfight, mw8080bw_state, 0, ROT0, "Dave Nutting Associates / Midway", "Gun Fight (set 2)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_gunfight ) /* 604 Gun Fight (cocktail, dump does not exist) */ -/* 605 */ GAME( 1976, tornbase, 0, tornbase, tornbase, driver_device, 0, ROT0, "Dave Nutting Associates / Midway / Taito", "Tornado Baseball / Ball Park", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -/* 610 */ GAMEL(1976, 280zzzap, 0, zzzap, zzzap, driver_device, 0, ROT0, "Dave Nutting Associates / Midway", "280-ZZZAP", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE, layout_280zzzap ) -/* 611 */ GAMEL(1976, maze, 0, maze, maze, driver_device, 0, ROT0, "Midway", "Amazing Maze", MACHINE_SUPPORTS_SAVE, layout_maze ) -/* 612 */ GAME( 1977, boothill, 0, boothill, boothill, driver_device, 0, ROT0, "Dave Nutting Associates / Midway", "Boot Hill", MACHINE_SUPPORTS_SAVE ) -/* 615 */ GAME( 1977, checkmat, 0, checkmat, checkmat, driver_device, 0, ROT0, "Dave Nutting Associates / Midway", "Checkmate", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -/* 618 */ GAME( 1977, desertgu, 0, desertgu, desertgu, driver_device, 0, ROT0, "Dave Nutting Associates / Midway", "Desert Gun", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -/* 618 */ GAME( 1977, roadrunm, desertgu, desertgu, desertgu, driver_device, 0, ROT0, "Midway", "Road Runner (Midway)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -/* 619 */ GAME( 1977, dplay, 0, dplay, dplay, driver_device, 0, ROT0, "Midway", "Double Play", MACHINE_SUPPORTS_SAVE ) -/* 622 */ GAMEL(1977, lagunar, 0, zzzap, lagunar, driver_device, 0, ROT90, "Midway", "Laguna Racer", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE, layout_lagunar ) -/* 623 */ GAME( 1977, gmissile, 0, gmissile, gmissile, driver_device, 0, ROT0, "Midway", "Guided Missile", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -/* 626 */ GAME( 1977, m4, 0, m4, m4, driver_device, 0, ROT0, "Midway", "M-4", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -/* 630 */ GAMEL(1978, clowns, 0, clowns, clowns, driver_device, 0, ROT0, "Midway", "Clowns (rev. 2)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_clowns ) -/* 630 */ GAMEL(1978, clowns1, clowns, clowns, clowns1, driver_device, 0, ROT0, "Midway", "Clowns (rev. 1)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_clowns ) -/* 640 */ GAMEL(1978, spacwalk, 0, spacwalk, spacwalk, driver_device, 0, ROT0, "Midway", "Space Walk", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_spacwalk ) -/* 642 */ GAME( 1978, einning, 0, dplay, einning, driver_device, 0, ROT0, "Midway / Taito", "Extra Inning / Ball Park II", MACHINE_SUPPORTS_SAVE ) -/* 643 */ GAME( 1978, shuffle, 0, shuffle, shuffle, driver_device, 0, ROT90, "Midway", "Shuffleboard", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -/* 644 */ GAME( 1977, dogpatch, 0, dogpatch, dogpatch, driver_device, 0, ROT0, "Midway", "Dog Patch", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -/* 645 */ GAMEL(1980, spcenctr, 0, spcenctr, spcenctr, driver_device, 0, ROT0, "Midway", "Space Encounters", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_spcenctr ) -/* 652 */ GAMEL(1979, phantom2, 0, phantom2, phantom2, driver_device, 0, ROT0, "Midway", "Phantom II", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_phantom2 ) -/* 730 */ GAME( 1978, bowler, 0, bowler, bowler, driver_device, 0, ROT90, "Midway", "Bowling Alley", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -/* 739 */ GAMEL(1978, invaders, 0, invaders, invaders, driver_device, 0, ROT270, "Taito / Midway", "Space Invaders / Space Invaders M", MACHINE_SUPPORTS_SAVE, layout_invaders ) -/* 742 */ GAME( 1978, blueshrk, 0, blueshrk, blueshrk, driver_device, 0, ROT0, "Midway", "Blue Shark", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) - GAME( 1978, blueshrkmr, blueshrk, blueshrk, blueshrk, driver_device, 0, ROT0, "bootleg (Model Racing)", "Blue Shark (Model Racing bootleg)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +/* 605 */ GAME( 1976, tornbase, 0, tornbase, tornbase, mw8080bw_state, 0, ROT0, "Dave Nutting Associates / Midway / Taito", "Tornado Baseball / Ball Park", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +/* 610 */ GAMEL(1976, 280zzzap, 0, zzzap, zzzap, mw8080bw_state, 0, ROT0, "Dave Nutting Associates / Midway", "280-ZZZAP", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE, layout_280zzzap ) +/* 611 */ GAMEL(1976, maze, 0, maze, maze, mw8080bw_state, 0, ROT0, "Midway", "Amazing Maze", MACHINE_SUPPORTS_SAVE, layout_maze ) +/* 612 */ GAME( 1977, boothill, 0, boothill, boothill, mw8080bw_state, 0, ROT0, "Dave Nutting Associates / Midway", "Boot Hill", MACHINE_SUPPORTS_SAVE ) +/* 615 */ GAME( 1977, checkmat, 0, checkmat, checkmat, mw8080bw_state, 0, ROT0, "Dave Nutting Associates / Midway", "Checkmate", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +/* 618 */ GAME( 1977, desertgu, 0, desertgu, desertgu, mw8080bw_state, 0, ROT0, "Dave Nutting Associates / Midway", "Desert Gun", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +/* 618 */ GAME( 1977, roadrunm, desertgu, desertgu, desertgu, mw8080bw_state, 0, ROT0, "Midway", "Road Runner (Midway)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +/* 619 */ GAME( 1977, dplay, 0, dplay, dplay, mw8080bw_state, 0, ROT0, "Midway", "Double Play", MACHINE_SUPPORTS_SAVE ) +/* 622 */ GAMEL(1977, lagunar, 0, zzzap, lagunar, mw8080bw_state, 0, ROT90, "Midway", "Laguna Racer", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE, layout_lagunar ) +/* 623 */ GAME( 1977, gmissile, 0, gmissile, gmissile, mw8080bw_state, 0, ROT0, "Midway", "Guided Missile", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +/* 626 */ GAME( 1977, m4, 0, m4, m4, mw8080bw_state, 0, ROT0, "Midway", "M-4", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +/* 630 */ GAMEL(1978, clowns, 0, clowns, clowns, mw8080bw_state, 0, ROT0, "Midway", "Clowns (rev. 2)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_clowns ) +/* 630 */ GAMEL(1978, clowns1, clowns, clowns, clowns1, mw8080bw_state, 0, ROT0, "Midway", "Clowns (rev. 1)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_clowns ) +/* 640 */ GAMEL(1978, spacwalk, 0, spacwalk, spacwalk, mw8080bw_state, 0, ROT0, "Midway", "Space Walk", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_spacwalk ) +/* 642 */ GAME( 1978, einning, 0, dplay, einning, mw8080bw_state, 0, ROT0, "Midway / Taito", "Extra Inning / Ball Park II", MACHINE_SUPPORTS_SAVE ) +/* 643 */ GAME( 1978, shuffle, 0, shuffle, shuffle, mw8080bw_state, 0, ROT90, "Midway", "Shuffleboard", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +/* 644 */ GAME( 1977, dogpatch, 0, dogpatch, dogpatch, mw8080bw_state, 0, ROT0, "Midway", "Dog Patch", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +/* 645 */ GAMEL(1980, spcenctr, 0, spcenctr, spcenctr, mw8080bw_state, 0, ROT0, "Midway", "Space Encounters", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_spcenctr ) +/* 652 */ GAMEL(1979, phantom2, 0, phantom2, phantom2, mw8080bw_state, 0, ROT0, "Midway", "Phantom II", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_phantom2 ) +/* 730 */ GAME( 1978, bowler, 0, bowler, bowler, mw8080bw_state, 0, ROT90, "Midway", "Bowling Alley", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +/* 739 */ GAMEL(1978, invaders, 0, invaders, invaders, mw8080bw_state, 0, ROT270, "Taito / Midway", "Space Invaders / Space Invaders M", MACHINE_SUPPORTS_SAVE, layout_invaders ) +/* 742 */ GAME( 1978, blueshrk, 0, blueshrk, blueshrk, mw8080bw_state, 0, ROT0, "Midway", "Blue Shark", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) + GAME( 1978, blueshrkmr, blueshrk, blueshrk, blueshrk, mw8080bw_state, 0, ROT0, "bootleg (Model Racing)", "Blue Shark (Model Racing bootleg)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) /* 749 4 Player Bowling Alley (cocktail, dump does not exist) */ -/* 851 */ GAMEL(1980, invad2ct, 0, invad2ct, invad2ct, driver_device, 0, ROT90, "Midway", "Space Invaders II (Midway, cocktail)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_invad2ct ) +/* 851 */ GAMEL(1980, invad2ct, 0, invad2ct, invad2ct, mw8080bw_state, 0, ROT90, "Midway", "Space Invaders II (Midway, cocktail)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_invad2ct ) /* 852 Space Invaders Deluxe (color hardware, not in this driver) */ /* 870 Space Invaders Deluxe (cocktail, dump does not exist) */ diff --git a/src/mame/drivers/mwarr.cpp b/src/mame/drivers/mwarr.cpp index d97533bda3b..d23703cbb10 100644 --- a/src/mame/drivers/mwarr.cpp +++ b/src/mame/drivers/mwarr.cpp @@ -552,7 +552,7 @@ void mwarr_state::machine_reset() m_which = 0; } -static MACHINE_CONFIG_START( mwarr, mwarr_state ) +static MACHINE_CONFIG_START( mwarr ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, MASTER_CLOCK) @@ -576,10 +576,10 @@ static MACHINE_CONFIG_START( mwarr, mwarr_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki1", SOUND_CLOCK/48 , OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki1", SOUND_CLOCK/48 , PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MCFG_OKIM6295_ADD("oki2", SOUND_CLOCK/48 , OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki2", SOUND_CLOCK/48 , PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -656,4 +656,4 @@ ROM_END * *************************************/ -GAME( 199?, mwarr, 0, mwarr, mwarr, driver_device, 0, ROT0, "Elettronica Video-Games S.R.L.", "Mighty Warriors", MACHINE_SUPPORTS_SAVE ) +GAME( 199?, mwarr, 0, mwarr, mwarr, mwarr_state, 0, ROT0, "Elettronica Video-Games S.R.L.", "Mighty Warriors", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/mwsub.cpp b/src/mame/drivers/mwsub.cpp index 38672507557..81a07b44d43 100644 --- a/src/mame/drivers/mwsub.cpp +++ b/src/mame/drivers/mwsub.cpp @@ -196,7 +196,7 @@ INPUT_PORTS_END ***************************************************************************/ -static MACHINE_CONFIG_START( submar, submar_state ) +static MACHINE_CONFIG_START( submar ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_19_968MHz/8) @@ -227,4 +227,4 @@ ROM_START( submar ) ROM_END -GAMEL( 1979, submar, 0, submar, submar, driver_device, 0, ROT0, "Midway", "Submarine (Midway)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL, layout_submar ) +GAMEL( 1979, submar, 0, submar, submar, submar_state, 0, ROT0, "Midway", "Submarine (Midway)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL, layout_submar ) diff --git a/src/mame/drivers/mx2178.cpp b/src/mame/drivers/mx2178.cpp index 442013d9283..9d712d2558d 100644 --- a/src/mame/drivers/mx2178.cpp +++ b/src/mame/drivers/mx2178.cpp @@ -43,7 +43,7 @@ public: } DECLARE_READ8_MEMBER(keyin_r); - DECLARE_WRITE8_MEMBER(kbd_put); + void kbd_put(u8 data); DECLARE_WRITE_LINE_MEMBER(write_acia_clock); MC6845_UPDATE_ROW(crtc_update_row); @@ -91,7 +91,7 @@ READ8_MEMBER( mx2178_state::keyin_r ) return (m_term_data) ? 0x83 : 0x82; } -WRITE8_MEMBER( mx2178_state::kbd_put ) +void mx2178_state::kbd_put(u8 data) { m_term_data = data; m_maincpu->set_input_line(0, HOLD_LINE); @@ -152,7 +152,7 @@ WRITE_LINE_MEMBER(mx2178_state::write_acia_clock) m_acia->write_rxc(state); } -static MACHINE_CONFIG_START( mx2178, mx2178_state ) +static MACHINE_CONFIG_START( mx2178 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 18869600/5) // guess MCFG_CPU_PROGRAM_MAP(mx2178_mem) @@ -179,7 +179,7 @@ static MACHINE_CONFIG_START( mx2178, mx2178_state ) /// TODO: hook up acia to keyboard and memory map MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0) - MCFG_GENERIC_KEYBOARD_CB(WRITE8(mx2178_state, kbd_put)) + MCFG_GENERIC_KEYBOARD_CB(PUT(mx2178_state, kbd_put)) MCFG_DEVICE_ADD("acia_clock", CLOCK, 614400) MCFG_CLOCK_SIGNAL_HANDLER(WRITELINE(mx2178_state, write_acia_clock)) @@ -197,5 +197,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ -COMP( 1984, mx2178, 0, 0, mx2178, mx2178, driver_device, 0, "Memorex", "Memorex 2178", MACHINE_IS_SKELETON ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1984, mx2178, 0, 0, mx2178, mx2178, mx2178_state, 0, "Memorex", "Memorex 2178", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/myb3k.cpp b/src/mame/drivers/myb3k.cpp index fe7446f27b1..c93d8b3c2bb 100644 --- a/src/mame/drivers/myb3k.cpp +++ b/src/mame/drivers/myb3k.cpp @@ -22,24 +22,28 @@ class myb3k_state : public driver_device { public: myb3k_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag), - m_maincpu(*this, "maincpu"), - m_fdc(*this, "fdc"), - m_crtc(*this, "crtc"), - m_floppy0(*this, "fdc:0"), - m_floppy1(*this, "fdc:1"), - m_p_vram(*this, "p_vram"), - m_palette(*this, "palette") { } + : driver_device(mconfig, type, tag) + , m_maincpu(*this, "maincpu") + , m_fdc(*this, "fdc") + , m_crtc(*this, "crtc") + , m_floppy0(*this, "fdc:0") + , m_floppy1(*this, "fdc:1") + , m_p_vram(*this, "p_vram") + , m_palette(*this, "palette") + { } - required_device m_maincpu; - required_device m_fdc; - required_device m_crtc; - required_device m_floppy0; - required_device m_floppy1; DECLARE_WRITE8_MEMBER(myb3k_6845_address_w); DECLARE_WRITE8_MEMBER(myb3k_6845_data_w); DECLARE_WRITE8_MEMBER(myb3k_video_mode_w); DECLARE_WRITE8_MEMBER(myb3k_fdc_output_w); + uint32_t screen_update_myb3k(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + +protected: + required_device m_maincpu; + required_device m_fdc; + required_device m_crtc; + required_device m_floppy0; + required_device m_floppy1; required_shared_ptr m_p_vram; required_device m_palette; uint8_t m_crtc_vreg[0x100],m_crtc_index; @@ -47,7 +51,6 @@ public: virtual void machine_start() override; virtual void machine_reset() override; virtual void video_start() override; - uint32_t screen_update_myb3k(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; void myb3k_state::video_start() @@ -158,7 +161,7 @@ static ADDRESS_MAP_START(myb3k_io, AS_IO, 8, myb3k_state) AM_RANGE(0x06, 0x06) AM_READ_PORT("DSW2") AM_RANGE(0x1c, 0x1c) AM_WRITE(myb3k_6845_address_w) AM_RANGE(0x1d, 0x1d) AM_WRITE(myb3k_6845_data_w) - AM_RANGE(0x20, 0x23) AM_DEVREADWRITE("fdc", mb8877_t, read, write) //FDC, almost likely wd17xx + AM_RANGE(0x20, 0x23) AM_DEVREADWRITE("fdc", mb8877_device, read, write) //FDC, almost likely wd17xx AM_RANGE(0x24, 0x24) AM_WRITE(myb3k_fdc_output_w) // AM_RANGE(0x520,0x524) mirror of above ADDRESS_MAP_END @@ -247,7 +250,7 @@ static SLOT_INTERFACE_START( myb3k_floppies ) SLOT_INTERFACE( "8dsdd", FLOPPY_8_DSDD ) SLOT_INTERFACE_END -static MACHINE_CONFIG_START( myb3k, myb3k_state ) +static MACHINE_CONFIG_START( myb3k ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8088, 4000000) /* unknown clock*/ MCFG_CPU_PROGRAM_MAP(myb3k_map) @@ -283,5 +286,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1982, myb3k, 0, 0, myb3k, myb3k, driver_device, 0, "Panasonic", "MyBrain 3000", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1982, myb3k, 0, 0, myb3k, myb3k, myb3k_state, 0, "Panasonic", "MyBrain 3000", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) diff --git a/src/mame/drivers/mycom.cpp b/src/mame/drivers/mycom.cpp index 600999a942e..ce3c354568b 100644 --- a/src/mame/drivers/mycom.cpp +++ b/src/mame/drivers/mycom.cpp @@ -114,7 +114,7 @@ private: required_device m_ppi2; required_device m_cass; required_device m_crtc; - required_device m_fdc; + required_device m_fdc; required_device m_floppy0; required_device m_floppy1; required_device m_audio; @@ -228,7 +228,7 @@ static ADDRESS_MAP_START(mycom_io, AS_IO, 8, mycom_state) AM_RANGE(0x04, 0x07) AM_DEVREADWRITE("ppi8255_0", i8255_device, read, write) AM_RANGE(0x08, 0x0b) AM_DEVREADWRITE("ppi8255_1", i8255_device, read, write) AM_RANGE(0x0c, 0x0f) AM_DEVREADWRITE("ppi8255_2", i8255_device, read, write) - AM_RANGE(0x10, 0x13) AM_DEVREADWRITE("fdc", fd1771_t, read, write) + AM_RANGE(0x10, 0x13) AM_DEVREADWRITE("fdc", fd1771_device, read, write) ADDRESS_MAP_END /* Input ports */ @@ -496,7 +496,7 @@ DRIVER_INIT_MEMBER(mycom_state,mycom) membank("boot")->configure_entries(0, 2, &RAM[0x0000], 0x10000); } -static MACHINE_CONFIG_START( mycom, mycom_state ) +static MACHINE_CONFIG_START( mycom ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80, XTAL_10MHz / 4) MCFG_CPU_PROGRAM_MAP(mycom_map) @@ -576,5 +576,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1981, mycom, 0, 0, mycom, mycom, mycom_state, mycom, "Japan Electronics College", "MYCOMZ-80A", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1981, mycom, 0, 0, mycom, mycom, mycom_state, mycom, "Japan Electronics College", "MYCOMZ-80A", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/mystston.cpp b/src/mame/drivers/mystston.cpp index 5fec3ea95cb..ac3bd274b94 100644 --- a/src/mame/drivers/mystston.cpp +++ b/src/mame/drivers/mystston.cpp @@ -191,7 +191,7 @@ INPUT_PORTS_END * *************************************/ -static MACHINE_CONFIG_START( mystston, mystston_state ) +static MACHINE_CONFIG_START( mystston ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, CPU_CLOCK) @@ -320,6 +320,6 @@ ROM_END * *************************************/ -GAME( 1984, mystston, 0, mystston, mystston, driver_device, 0, ROT270, "Technos Japan", "Mysterious Stones - Dr. John's Adventure", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, myststono,mystston, mystston, mystston, driver_device, 0, ROT270, "Technos Japan", "Mysterious Stones - Dr. Kick in Adventure", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, myststonoi,mystston, mystston, mystston, driver_device, 0, ROT270, "Technos Japan", "Mysterious Stones - Dr. Kick in Adventure (Itisa PCB)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, mystston, 0, mystston, mystston, mystston_state, 0, ROT270, "Technos Japan", "Mysterious Stones - Dr. John's Adventure", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, myststono, mystston, mystston, mystston, mystston_state, 0, ROT270, "Technos Japan", "Mysterious Stones - Dr. Kick in Adventure", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, myststonoi, mystston, mystston, mystston, mystston_state, 0, ROT270, "Technos Japan", "Mysterious Stones - Dr. Kick in Adventure (Itisa PCB)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/mystwarr.cpp b/src/mame/drivers/mystwarr.cpp index 0bb16f44423..737243746d3 100644 --- a/src/mame/drivers/mystwarr.cpp +++ b/src/mame/drivers/mystwarr.cpp @@ -898,7 +898,7 @@ MACHINE_RESET_MEMBER(mystwarr_state,gaiapols) } -static MACHINE_CONFIG_START( mystwarr, mystwarr_state ) +static MACHINE_CONFIG_START( mystwarr ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 16000000) /* 16 MHz (confirmed) */ @@ -2229,37 +2229,37 @@ ROM_START( dadandrn ) ROM_LOAD( "dadandrn.nv", 0x0000, 0x080, CRC(346ae0cf) SHA1(1f79b2e21766f7a971c7d0f618700deb8a32f78a) ) ROM_END -/* ROM parent machine inp init */ -GAME( 1993, mystwarr, 0, mystwarr, mystwarr, driver_device, 0, ROT0, "Konami", "Mystic Warriors (ver EAA)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1993, mystwarru, mystwarr, mystwarr, mystwarr, driver_device, 0, ROT0, "Konami", "Mystic Warriors (ver UAA)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1993, mystwarrj, mystwarr, mystwarr, mystwarr, driver_device, 0, ROT0, "Konami", "Mystic Warriors (ver JAA)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1993, mystwarra, mystwarr, mystwarr, mystwarr, driver_device, 0, ROT0, "Konami", "Mystic Warriors (ver AAB)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1993, mystwarraa, mystwarr, mystwarr, mystwarr, driver_device, 0, ROT0, "Konami", "Mystic Warriors (ver AAA)", MACHINE_IMPERFECT_GRAPHICS ) - -GAME( 1993, mmaulers, 0, dadandrn, dadandrn, driver_device, 0, ROT0, "Konami", "Monster Maulers (ver EAA)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1993, dadandrn, mmaulers, dadandrn, dadandrn, driver_device, 0, ROT0, "Konami", "Kyukyoku Sentai Dadandarn (ver JAA)", MACHINE_IMPERFECT_GRAPHICS ) - -GAME( 1993, viostorm, 0, viostorm, viostorm, driver_device, 0, ROT0, "Konami", "Violent Storm (ver EAC)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1993, viostormeb, viostorm, viostorm, viostorm, driver_device, 0, ROT0, "Konami", "Violent Storm (ver EAB)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1993, viostormu, viostorm, viostorm, viostorm, driver_device, 0, ROT0, "Konami", "Violent Storm (ver UAC)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1993, viostormub, viostorm, viostorm, viostorm, driver_device, 0, ROT0, "Konami", "Violent Storm (ver UAB)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1993, viostormj, viostorm, viostorm, viostorm, driver_device, 0, ROT0, "Konami", "Violent Storm (ver JAC)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1993, viostorma, viostorm, viostorm, viostorm, driver_device, 0, ROT0, "Konami", "Violent Storm (ver AAC)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1993, viostormab, viostorm, viostorm, viostorm, driver_device, 0, ROT0, "Konami", "Violent Storm (ver AAB)", MACHINE_IMPERFECT_GRAPHICS ) - -GAME( 1993, metamrph, 0, metamrph, metamrph, driver_device, 0, ROT0, "Konami", "Metamorphic Force (ver EAA)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1993, metamrphe, metamrph, metamrph, metamrph, driver_device, 0, ROT0, "Konami", "Metamorphic Force (ver EAA - alternate)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1993, metamrphu, metamrph, metamrph, metamrph, driver_device, 0, ROT0, "Konami", "Metamorphic Force (ver UAA)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1993, metamrphj, metamrph, metamrph, metamrph, driver_device, 0, ROT0, "Konami", "Metamorphic Force (ver JAA)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1993, metamrpha, metamrph, metamrph, metamrph, driver_device, 0, ROT0, "Konami", "Metamorphic Force (ver AAA)", MACHINE_IMPERFECT_GRAPHICS ) - -GAME( 1993, mtlchamp, 0, martchmp, martchmp, driver_device, 0, ROT0, "Konami", "Martial Champion (ver EAB)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1993, mtlchamp1, mtlchamp, martchmp, martchmp, driver_device, 0, ROT0, "Konami", "Martial Champion (ver EAA)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1993, mtlchampu, mtlchamp, martchmp, martchmp, driver_device, 0, ROT0, "Konami", "Martial Champion (ver UAE)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1993, mtlchampu1, mtlchamp, martchmp, martchmp, driver_device, 0, ROT0, "Konami", "Martial Champion (ver UAD)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1993, mtlchampj, mtlchamp, martchmp, martchmp, driver_device, 0, ROT0, "Konami", "Martial Champion (ver JAA)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1993, mtlchampa, mtlchamp, martchmp, martchmp, driver_device, 0, ROT0, "Konami", "Martial Champion (ver AAA)", MACHINE_IMPERFECT_GRAPHICS ) - -GAME( 1993, gaiapols, 0, gaiapols, dadandrn, driver_device, 0, ROT90, "Konami", "Gaiapolis (ver EAF)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1993, gaiapolsu, gaiapols, gaiapols, dadandrn, driver_device, 0, ROT90, "Konami", "Gaiapolis (ver UAF)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1993, gaiapolsj, gaiapols, gaiapols, dadandrn, driver_device, 0, ROT90, "Konami", "Gaiapolis (ver JAF)", MACHINE_IMPERFECT_GRAPHICS ) +// YEAR NAME PARENT MACHINE INPUT STATE +GAME( 1993, mystwarr, 0, mystwarr, mystwarr, mystwarr_state, 0, ROT0, "Konami", "Mystic Warriors (ver EAA)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1993, mystwarru, mystwarr, mystwarr, mystwarr, mystwarr_state, 0, ROT0, "Konami", "Mystic Warriors (ver UAA)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1993, mystwarrj, mystwarr, mystwarr, mystwarr, mystwarr_state, 0, ROT0, "Konami", "Mystic Warriors (ver JAA)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1993, mystwarra, mystwarr, mystwarr, mystwarr, mystwarr_state, 0, ROT0, "Konami", "Mystic Warriors (ver AAB)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1993, mystwarraa, mystwarr, mystwarr, mystwarr, mystwarr_state, 0, ROT0, "Konami", "Mystic Warriors (ver AAA)", MACHINE_IMPERFECT_GRAPHICS ) + +GAME( 1993, mmaulers, 0, dadandrn, dadandrn, mystwarr_state, 0, ROT0, "Konami", "Monster Maulers (ver EAA)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1993, dadandrn, mmaulers, dadandrn, dadandrn, mystwarr_state, 0, ROT0, "Konami", "Kyukyoku Sentai Dadandarn (ver JAA)", MACHINE_IMPERFECT_GRAPHICS ) + +GAME( 1993, viostorm, 0, viostorm, viostorm, mystwarr_state, 0, ROT0, "Konami", "Violent Storm (ver EAC)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1993, viostormeb, viostorm, viostorm, viostorm, mystwarr_state, 0, ROT0, "Konami", "Violent Storm (ver EAB)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1993, viostormu, viostorm, viostorm, viostorm, mystwarr_state, 0, ROT0, "Konami", "Violent Storm (ver UAC)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1993, viostormub, viostorm, viostorm, viostorm, mystwarr_state, 0, ROT0, "Konami", "Violent Storm (ver UAB)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1993, viostormj, viostorm, viostorm, viostorm, mystwarr_state, 0, ROT0, "Konami", "Violent Storm (ver JAC)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1993, viostorma, viostorm, viostorm, viostorm, mystwarr_state, 0, ROT0, "Konami", "Violent Storm (ver AAC)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1993, viostormab, viostorm, viostorm, viostorm, mystwarr_state, 0, ROT0, "Konami", "Violent Storm (ver AAB)", MACHINE_IMPERFECT_GRAPHICS ) + +GAME( 1993, metamrph, 0, metamrph, metamrph, mystwarr_state, 0, ROT0, "Konami", "Metamorphic Force (ver EAA)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1993, metamrphe, metamrph, metamrph, metamrph, mystwarr_state, 0, ROT0, "Konami", "Metamorphic Force (ver EAA - alternate)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1993, metamrphu, metamrph, metamrph, metamrph, mystwarr_state, 0, ROT0, "Konami", "Metamorphic Force (ver UAA)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1993, metamrphj, metamrph, metamrph, metamrph, mystwarr_state, 0, ROT0, "Konami", "Metamorphic Force (ver JAA)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1993, metamrpha, metamrph, metamrph, metamrph, mystwarr_state, 0, ROT0, "Konami", "Metamorphic Force (ver AAA)", MACHINE_IMPERFECT_GRAPHICS ) + +GAME( 1993, mtlchamp, 0, martchmp, martchmp, mystwarr_state, 0, ROT0, "Konami", "Martial Champion (ver EAB)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1993, mtlchamp1, mtlchamp, martchmp, martchmp, mystwarr_state, 0, ROT0, "Konami", "Martial Champion (ver EAA)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1993, mtlchampu, mtlchamp, martchmp, martchmp, mystwarr_state, 0, ROT0, "Konami", "Martial Champion (ver UAE)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1993, mtlchampu1, mtlchamp, martchmp, martchmp, mystwarr_state, 0, ROT0, "Konami", "Martial Champion (ver UAD)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1993, mtlchampj, mtlchamp, martchmp, martchmp, mystwarr_state, 0, ROT0, "Konami", "Martial Champion (ver JAA)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1993, mtlchampa, mtlchamp, martchmp, martchmp, mystwarr_state, 0, ROT0, "Konami", "Martial Champion (ver AAA)", MACHINE_IMPERFECT_GRAPHICS ) + +GAME( 1993, gaiapols, 0, gaiapols, dadandrn, mystwarr_state, 0, ROT90, "Konami", "Gaiapolis (ver EAF)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1993, gaiapolsu, gaiapols, gaiapols, dadandrn, mystwarr_state, 0, ROT90, "Konami", "Gaiapolis (ver UAF)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1993, gaiapolsj, gaiapols, gaiapols, dadandrn, mystwarr_state, 0, ROT90, "Konami", "Gaiapolis (ver JAF)", MACHINE_IMPERFECT_GRAPHICS ) diff --git a/src/mame/drivers/myvision.cpp b/src/mame/drivers/myvision.cpp index ea048d9eda0..37a3e5e9959 100644 --- a/src/mame/drivers/myvision.cpp +++ b/src/mame/drivers/myvision.cpp @@ -207,7 +207,7 @@ WRITE8_MEMBER( myvision_state::ay_port_b_w ) m_column = data; } -static MACHINE_CONFIG_START( myvision, myvision_state ) +static MACHINE_CONFIG_START( myvision ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80, XTAL_10_738635MHz/3) /* Not verified */ MCFG_CPU_PROGRAM_MAP(myvision_mem) @@ -245,5 +245,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -CONS( 1983, myvision, 0, 0, myvision, myvision, driver_device, 0, "Nichibutsu", "My Vision (KH-1000)", 0 ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLN AME FLAGS +CONS( 1983, myvision, 0, 0, myvision, myvision, myvision_state, 0, "Nichibutsu", "My Vision (KH-1000)", 0 ) diff --git a/src/mame/drivers/mz2000.cpp b/src/mame/drivers/mz2000.cpp index 823ee098c44..866895c3afe 100644 --- a/src/mame/drivers/mz2000.cpp +++ b/src/mame/drivers/mz2000.cpp @@ -129,7 +129,7 @@ public: protected: required_device m_maincpu; - required_device m_mb8877a; + required_device m_mb8877a; required_device m_floppy0; required_device m_floppy1; required_device m_floppy2; @@ -861,7 +861,7 @@ static SLOT_INTERFACE_START( mz2000_floppies ) SLOT_INTERFACE_END -static MACHINE_CONFIG_START( mz2000, mz2000_state ) +static MACHINE_CONFIG_START( mz2000 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80, MASTER_CLOCK) MCFG_CPU_PROGRAM_MAP(mz2000_map) @@ -994,7 +994,7 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1981, mz80b, 0, 0, mz80b, mz80be, driver_device, 0, "Sharp", "MZ-80B", MACHINE_NOT_WORKING ) -COMP( 1982, mz2000, 0, 0, mz2000, mz80bj, driver_device, 0, "Sharp", "MZ-2000", MACHINE_NOT_WORKING ) -COMP( 1982, mz2200, mz2000, 0, mz2000, mz80bj, driver_device, 0, "Sharp", "MZ-2200", MACHINE_NOT_WORKING ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1981, mz80b, 0, 0, mz80b, mz80be, mz2000_state, 0, "Sharp", "MZ-80B", MACHINE_NOT_WORKING ) +COMP( 1982, mz2000, 0, 0, mz2000, mz80bj, mz2000_state, 0, "Sharp", "MZ-2000", MACHINE_NOT_WORKING ) +COMP( 1982, mz2200, mz2000, 0, mz2000, mz80bj, mz2000_state, 0, "Sharp", "MZ-2200", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/mz2500.cpp b/src/mame/drivers/mz2500.cpp index 0b1308ca3a2..eddd2ad0a46 100644 --- a/src/mame/drivers/mz2500.cpp +++ b/src/mame/drivers/mz2500.cpp @@ -87,7 +87,7 @@ public: required_device m_pit; required_device m_beeper; required_device m_gfxdecode; - required_device m_fdc; + required_device m_fdc; required_device m_floppy0; required_device m_floppy1; required_device m_floppy2; @@ -2076,7 +2076,7 @@ static SLOT_INTERFACE_START( mz2500_floppies ) SLOT_INTERFACE_END -static MACHINE_CONFIG_START( mz2500, mz2500_state ) +static MACHINE_CONFIG_START( mz2500 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 6000000) MCFG_CPU_PROGRAM_MAP(mz2500_map) @@ -2199,5 +2199,5 @@ ROM_END /* Driver */ -COMP( 1985, mz2500, 0, 0, mz2500, mz2500, driver_device, 0, "Sharp", "MZ-2500", MACHINE_IMPERFECT_GRAPHICS ) -COMP( 1985, mz2520, mz2500, 0, mz2500, mz2500, driver_device, 0, "Sharp", "MZ-2520", MACHINE_IMPERFECT_GRAPHICS ) // looks a stripped down version of the regular MZ-2500, with only two floppies drives and no cassette interface +COMP( 1985, mz2500, 0, 0, mz2500, mz2500, mz2500_state, 0, "Sharp", "MZ-2500", MACHINE_IMPERFECT_GRAPHICS ) +COMP( 1985, mz2520, mz2500, 0, mz2500, mz2500, mz2500_state, 0, "Sharp", "MZ-2520", MACHINE_IMPERFECT_GRAPHICS ) // looks a stripped down version of the regular MZ-2500, with only two floppies drives and no cassette interface diff --git a/src/mame/drivers/mz3500.cpp b/src/mame/drivers/mz3500.cpp index badf86c6d19..fd00f0b88f4 100644 --- a/src/mame/drivers/mz3500.cpp +++ b/src/mame/drivers/mz3500.cpp @@ -800,7 +800,7 @@ static SLOT_INTERFACE_START( mz3500_floppies ) SLOT_INTERFACE_END /* TODO: clocks */ -static MACHINE_CONFIG_START( mz3500, mz3500_state ) +static MACHINE_CONFIG_START( mz3500 ) /* basic machine hardware */ MCFG_CPU_ADD("master",Z80,MAIN_CLOCK/2) @@ -871,4 +871,4 @@ ROM_START( mz3500 ) ROM_LOAD( "mz-3500_cg-rom_2-b_m5l2764k.bin", 0x000000, 0x002000, CRC(29f2f80a) SHA1(64b307cd9de5a3327e3ec9f3d0d6b3485706f436) ) ROM_END -COMP( 198?, mz3500, 0, 0, mz3500, mz3500, driver_device, 0, "Sharp", "MZ-3500", MACHINE_IS_SKELETON ) +COMP( 198?, mz3500, 0, 0, mz3500, mz3500, mz3500_state, 0, "Sharp", "MZ-3500", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/mz6500.cpp b/src/mame/drivers/mz6500.cpp index c33b3943411..6c371c2ac59 100644 --- a/src/mame/drivers/mz6500.cpp +++ b/src/mame/drivers/mz6500.cpp @@ -137,7 +137,7 @@ static ADDRESS_MAP_START( upd7220_map, AS_0, 16, mz6500_state ) ADDRESS_MAP_END -static MACHINE_CONFIG_START( mz6500, mz6500_state ) +static MACHINE_CONFIG_START( mz6500 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8086, 8000000) //unk clock MCFG_CPU_PROGRAM_MAP(mz6500_map) @@ -177,5 +177,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 198?, mz6500, 0, 0, mz6500, mz6500, driver_device, 0, "Sharp", "MZ-6500", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 198?, mz6500, 0, 0, mz6500, mz6500, mz6500_state, 0, "Sharp", "MZ-6500", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) diff --git a/src/mame/drivers/mz700.cpp b/src/mame/drivers/mz700.cpp index 93125aac2df..76b52872d82 100644 --- a/src/mame/drivers/mz700.cpp +++ b/src/mame/drivers/mz700.cpp @@ -368,7 +368,7 @@ GFXDECODE_END MACHINE DRIVERS ***************************************************************************/ -static MACHINE_CONFIG_START( mz700, mz_state ) +static MACHINE_CONFIG_START( mz700 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_17_73447MHz/5) MCFG_CPU_PROGRAM_MAP(mz700_mem) @@ -518,8 +518,8 @@ ROM_END GAME DRIVERS ***************************************************************************/ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ -COMP( 1982, mz700, 0, 0, mz700, mz700, mz_state, mz700, "Sharp", "MZ-700", 0 ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1982, mz700, 0, 0, mz700, mz700, mz_state, mz700, "Sharp", "MZ-700", 0 ) COMP( 1982, mz700j, mz700, 0, mz700, mz700, mz_state, mz700, "Sharp", "MZ-700 (Japan)", 0 ) -COMP( 1984, mz800, 0, 0, mz800, mz800, mz_state, mz800, "Sharp", "MZ-800", MACHINE_NOT_WORKING ) -COMP( 1984, mz1500, 0, 0, mz800, mz800, mz_state, mz800, "Sharp", "MZ-1500", MACHINE_NOT_WORKING ) // Japanese version of the MZ-800 +COMP( 1984, mz800, 0, 0, mz800, mz800, mz_state, mz800, "Sharp", "MZ-800", MACHINE_NOT_WORKING ) +COMP( 1984, mz1500, 0, 0, mz800, mz800, mz_state, mz800, "Sharp", "MZ-1500", MACHINE_NOT_WORKING ) // Japanese version of the MZ-800 diff --git a/src/mame/drivers/mz80.cpp b/src/mame/drivers/mz80.cpp index fda11575bd4..1d40616b6c0 100644 --- a/src/mame/drivers/mz80.cpp +++ b/src/mame/drivers/mz80.cpp @@ -274,7 +274,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(mz80_state::ne555_tempo_callback) m_mz80k_tempo_strobe ^= 1; } -static MACHINE_CONFIG_START( mz80k, mz80_state ) +static MACHINE_CONFIG_START( mz80k ) /* basic machine hardware */ /* main CPU */ @@ -371,7 +371,7 @@ ROM_START( mz80a ) ROM_LOAD( "mz80acg.rom", 0x0000, 0x0800, CRC(a87c2e2b) SHA1(e8aefbdb48a63e5f96692af868c353ca7e1bfcd2) ) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS COMP( 1979, mz80kj, 0, 0, mz80kj, mz80k, mz80_state, mz80k, "Sharp", "MZ-80K (Japanese)", 0 ) -COMP( 1979, mz80k, mz80kj, 0, mz80k, mz80k, mz80_state, mz80k, "Sharp", "MZ-80K", 0 ) -COMP( 1982, mz80a, 0, 0, mz80a, mz80a, mz80_state, mz80k, "Sharp", "MZ-80A", 0 ) +COMP( 1979, mz80k, mz80kj, 0, mz80k, mz80k, mz80_state, mz80k, "Sharp", "MZ-80K", 0 ) +COMP( 1982, mz80a, 0, 0, mz80a, mz80a, mz80_state, mz80k, "Sharp", "MZ-80A", 0 ) diff --git a/src/mame/drivers/mzr8105.cpp b/src/mame/drivers/mzr8105.cpp index 89c1d624906..3dca7921be5 100644 --- a/src/mame/drivers/mzr8105.cpp +++ b/src/mame/drivers/mzr8105.cpp @@ -203,7 +203,7 @@ SLOT_INTERFACE_END /* * Machine configuration */ -MACHINE_CONFIG_START (mzr8105, mzr8105_state) +MACHINE_CONFIG_START (mzr8105) MCFG_CPU_ADD ("maincpu", M68000, XTAL_10MHz) MCFG_CPU_PROGRAM_MAP (mzr8105_mem) MCFG_VME_DEVICE_ADD("vme") @@ -227,5 +227,5 @@ ROM_START (mzr8105) ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP (1987, mzr8105, 0, 0, mzr8105, mzr8105, driver_device, 0, "Mizar Inc", "Mizar VME8105", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW | MACHINE_TYPE_COMPUTER ) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP (1987, mzr8105, 0, 0, mzr8105, mzr8105, mzr8105_state, 0, "Mizar Inc", "Mizar VME8105", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW | MACHINE_TYPE_COMPUTER ) diff --git a/src/mame/drivers/n64.cpp b/src/mame/drivers/n64.cpp index d7088414722..3aac0f61e71 100644 --- a/src/mame/drivers/n64.cpp +++ b/src/mame/drivers/n64.cpp @@ -418,7 +418,7 @@ INTERRUPT_GEN_MEMBER(n64_mess_state::n64_reset_poll) periphs->poll_reset_button((ioport("RESET")->read() & 1) ? true : false); } -static MACHINE_CONFIG_START( n64, n64_mess_state ) +static MACHINE_CONFIG_START( n64 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", VR4300BE, 93750000) @@ -527,5 +527,5 @@ ROM_START( n64dd ) ROM_LOAD( "normslp.rom", 0x00, 0x80, CRC(4f2ae525) SHA1(eab43f8cc52c8551d9cff6fced18ef80eaba6f05) ) ROM_END -CONS(1996, n64, 0, 0, n64, n64, driver_device, 0, "Nintendo", "Nintendo 64", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS ) -CONS(1996, n64dd, n64, 0, n64dd, n64, driver_device, 0, "Nintendo", "Nintendo 64DD", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS ) +CONS(1996, n64, 0, 0, n64, n64, n64_mess_state, 0, "Nintendo", "Nintendo 64", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS ) +CONS(1996, n64dd, n64, 0, n64dd, n64, n64_mess_state, 0, "Nintendo", "Nintendo 64DD", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS ) diff --git a/src/mame/drivers/n8080.cpp b/src/mame/drivers/n8080.cpp index 78bdcebeeff..b1ec73a8c5c 100644 --- a/src/mame/drivers/n8080.cpp +++ b/src/mame/drivers/n8080.cpp @@ -453,7 +453,7 @@ WRITE_LINE_MEMBER(n8080_state::n8080_inte_callback) WRITE8_MEMBER(n8080_state::n8080_status_callback) { - if (data & I8085_STATUS_INTA) + if (data & i8080_cpu_device::STATUS_INTA) { /* interrupt acknowledge */ m_maincpu->set_input_line(INPUT_LINE_IRQ0, CLEAR_LINE); @@ -500,7 +500,7 @@ MACHINE_RESET_MEMBER(n8080_state,helifire) } -static MACHINE_CONFIG_START( spacefev, n8080_state ) +static MACHINE_CONFIG_START( spacefev ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8080, MASTER_CLOCK / 10) @@ -531,7 +531,7 @@ static MACHINE_CONFIG_START( spacefev, n8080_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( sheriff, n8080_state ) +static MACHINE_CONFIG_START( sheriff ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8080, MASTER_CLOCK / 10) @@ -574,7 +574,7 @@ static MACHINE_CONFIG_DERIVED( westgun2, sheriff ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( helifire, n8080_state ) +static MACHINE_CONFIG_START( helifire ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8080, MASTER_CLOCK / 10) @@ -932,15 +932,15 @@ ROM_START( helifirea ) ROM_END -GAME( 1979, spacefev, 0, spacefev, spacefev, driver_device, 0, ROT270, "Nintendo", "Space Fever (New Ver.)", MACHINE_SUPPORTS_SAVE ) -GAME( 1979, spacefevo, spacefev, spacefev, spacefev, driver_device, 0, ROT270, "Nintendo", "Space Fever (Old Ver.)", MACHINE_SUPPORTS_SAVE ) -GAME( 1979, spacefevo2, spacefev, spacefev, spacefev, driver_device, 0, ROT270, "Nintendo", "Space Fever (Older Ver.)", MACHINE_SUPPORTS_SAVE ) -GAME( 1979, highsplt, 0, spacefev, highsplt, driver_device, 0, ROT270, "Nintendo", "Space Fever High Splitter (set 1)", MACHINE_SUPPORTS_SAVE ) // known as "SF-Hisplitter" on its flyer -GAME( 1979, highsplta, highsplt, spacefev, highsplt, driver_device, 0, ROT270, "Nintendo", "Space Fever High Splitter (set 2)", MACHINE_SUPPORTS_SAVE ) // known as "SF-Hisplitter" on its flyer -GAME( 1979, highspltb, highsplt, spacefev, highsplt, driver_device, 0, ROT270, "Nintendo", "Space Fever High Splitter (alt Sound)", MACHINE_SUPPORTS_SAVE ) // known as "SF-Hisplitter" on its flyer -GAME( 1979, spacelnc, 0, spacefev, spacelnc, driver_device, 0, ROT270, "Nintendo", "Space Launcher", MACHINE_SUPPORTS_SAVE ) -GAME( 1979, sheriff, 0, sheriff, sheriff, driver_device, 0, ROT270, "Nintendo", "Sheriff", MACHINE_SUPPORTS_SAVE ) -GAME( 1980, bandido, sheriff, sheriff, bandido, driver_device, 0, ROT270, "Nintendo (Exidy license)", "Bandido", MACHINE_SUPPORTS_SAVE ) -GAME( 1980, westgun2, sheriff, westgun2, westgun2, driver_device, 0, ROT270, "Nintendo (Taito Corporation license)", "Western Gun Part II", MACHINE_SUPPORTS_SAVE ) // official Taito PCBs, but title/copyright not shown -GAME( 1980, helifire, 0, helifire, helifire, driver_device, 0, ROT270, "Nintendo", "HeliFire (set 1)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1980, helifirea, helifire, helifire, helifire, driver_device, 0, ROT270, "Nintendo", "HeliFire (set 2)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1979, spacefev, 0, spacefev, spacefev, n8080_state, 0, ROT270, "Nintendo", "Space Fever (New Ver.)", MACHINE_SUPPORTS_SAVE ) +GAME( 1979, spacefevo, spacefev, spacefev, spacefev, n8080_state, 0, ROT270, "Nintendo", "Space Fever (Old Ver.)", MACHINE_SUPPORTS_SAVE ) +GAME( 1979, spacefevo2, spacefev, spacefev, spacefev, n8080_state, 0, ROT270, "Nintendo", "Space Fever (Older Ver.)", MACHINE_SUPPORTS_SAVE ) +GAME( 1979, highsplt, 0, spacefev, highsplt, n8080_state, 0, ROT270, "Nintendo", "Space Fever High Splitter (set 1)", MACHINE_SUPPORTS_SAVE ) // known as "SF-Hisplitter" on its flyer +GAME( 1979, highsplta, highsplt, spacefev, highsplt, n8080_state, 0, ROT270, "Nintendo", "Space Fever High Splitter (set 2)", MACHINE_SUPPORTS_SAVE ) // known as "SF-Hisplitter" on its flyer +GAME( 1979, highspltb, highsplt, spacefev, highsplt, n8080_state, 0, ROT270, "Nintendo", "Space Fever High Splitter (alt Sound)", MACHINE_SUPPORTS_SAVE ) // known as "SF-Hisplitter" on its flyer +GAME( 1979, spacelnc, 0, spacefev, spacelnc, n8080_state, 0, ROT270, "Nintendo", "Space Launcher", MACHINE_SUPPORTS_SAVE ) +GAME( 1979, sheriff, 0, sheriff, sheriff, n8080_state, 0, ROT270, "Nintendo", "Sheriff", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, bandido, sheriff, sheriff, bandido, n8080_state, 0, ROT270, "Nintendo (Exidy license)", "Bandido", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, westgun2, sheriff, westgun2, westgun2, n8080_state, 0, ROT270, "Nintendo (Taito Corporation license)", "Western Gun Part II", MACHINE_SUPPORTS_SAVE ) // official Taito PCBs, but title/copyright not shown +GAME( 1980, helifire, 0, helifire, helifire, n8080_state, 0, ROT270, "Nintendo", "HeliFire (set 1)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1980, helifirea, helifire, helifire, helifire, n8080_state, 0, ROT270, "Nintendo", "HeliFire (set 2)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/nakajies.cpp b/src/mame/drivers/nakajies.cpp index 14ac132d6dc..73d189125de 100644 --- a/src/mame/drivers/nakajies.cpp +++ b/src/mame/drivers/nakajies.cpp @@ -736,7 +736,7 @@ static GFXDECODE_START( drwrt400 ) GFXDECODE_ENTRY( "bios", 0x580b6, nakajies_charlayout, 0, 1 ) GFXDECODE_END -static MACHINE_CONFIG_START( nakajies210, nakajies_state ) +static MACHINE_CONFIG_START( nakajies210 ) MCFG_CPU_ADD( "v20hl", V20, X301 / 2 ) MCFG_CPU_PROGRAM_MAP( nakajies_map) MCFG_CPU_IO_MAP( nakajies_io_map) @@ -827,11 +827,11 @@ ROM_START( es210_es ) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 199?, wales210, 0, 0, nakajies210, nakajies, driver_device, 0, "Walther", "ES-210", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) /* German, 128KB RAM */ -COMP( 199?, dator3k, wales210, 0, dator3k, nakajies, driver_device, 0, "Dator", "Dator 3000", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) /* Spanish, 128KB RAM */ -COMP( 199?, es210_es, wales210, 0, nakajies210, nakajies, driver_device, 0, "Nakajima","ES-210 (Spain)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) /* Spanish, 128KB RAM */ -COMP( 199?, drwrt100, wales210, 0, nakajies220, nakajies, driver_device, 0, "NTS", "DreamWriter T100", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) /* English, 128KB RAM */ -COMP( 1996, drwrt400, wales210, 0, nakajies220, nakajies, driver_device, 0, "NTS", "DreamWriter T400", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) /* English, 256KB RAM */ -COMP( 199?, drwrt450, wales210, 0, nakajies220, nakajies, driver_device, 0, "NTS", "DreamWriter 450", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) /* English, 128KB RAM */ -COMP( 199?, drwrt200, wales210, 0, nakajies250, nakajies, driver_device, 0, "NTS", "DreamWriter T200", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) /* English, 256KB? RAM */ +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 199?, wales210, 0, 0, nakajies210, nakajies, nakajies_state, 0, "Walther", "ES-210", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // German, 128KB RAM +COMP( 199?, dator3k, wales210, 0, dator3k, nakajies, nakajies_state, 0, "Dator", "Dator 3000", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // Spanish, 128KB RAM +COMP( 199?, es210_es, wales210, 0, nakajies210, nakajies, nakajies_state, 0, "Nakajima", "ES-210 (Spain)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // Spanish, 128KB RAM +COMP( 199?, drwrt100, wales210, 0, nakajies220, nakajies, nakajies_state, 0, "NTS", "DreamWriter T100", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // English, 128KB RAM +COMP( 1996, drwrt400, wales210, 0, nakajies220, nakajies, nakajies_state, 0, "NTS", "DreamWriter T400", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // English, 256KB RAM +COMP( 199?, drwrt450, wales210, 0, nakajies220, nakajies, nakajies_state, 0, "NTS", "DreamWriter 450", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // English, 128KB RAM +COMP( 199?, drwrt200, wales210, 0, nakajies250, nakajies, nakajies_state, 0, "NTS", "DreamWriter T200", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // English, 256KB? RAM diff --git a/src/mame/drivers/namcofl.cpp b/src/mame/drivers/namcofl.cpp index 4e8a0598383..38fd137d8fd 100644 --- a/src/mame/drivers/namcofl.cpp +++ b/src/mame/drivers/namcofl.cpp @@ -159,7 +159,7 @@ OSC3: 48.384MHz #include "emu.h" #include "includes/namcofl.h" -#include "includes/namcoic.h" +#include "machine/namcoic.h" #include "cpu/i960/i960.h" #include "sound/c352.h" @@ -577,7 +577,7 @@ MACHINE_RESET_MEMBER(namcofl_state,namcofl) } -static MACHINE_CONFIG_START( namcofl, namcofl_state ) +static MACHINE_CONFIG_START( namcofl ) MCFG_CPU_ADD("maincpu", I960, 20000000) // i80960KA-20 == 20 MHz part MCFG_CPU_PROGRAM_MAP(namcofl_mem) diff --git a/src/mame/drivers/namcona1.cpp b/src/mame/drivers/namcona1.cpp index 93dd8adc6e5..87136084eff 100644 --- a/src/mame/drivers/namcona1.cpp +++ b/src/mame/drivers/namcona1.cpp @@ -930,7 +930,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(namcona1_state::interrupt) } /* cropped at sides */ -static MACHINE_CONFIG_START( namcona1, namcona1_state ) +static MACHINE_CONFIG_START( namcona1 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, MASTER_CLOCK/4) @@ -962,7 +962,7 @@ static MACHINE_CONFIG_START( namcona1, namcona1_state ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") MCFG_C140_ADD("c140", 44100) - MCFG_C140_BANK_TYPE(C140_TYPE_ASIC219) + MCFG_C140_BANK_TYPE(ASIC219) MCFG_SOUND_ROUTE(0, "rspeaker", 1.00) MCFG_SOUND_ROUTE(1, "lspeaker", 1.00) MACHINE_CONFIG_END @@ -1315,25 +1315,25 @@ ROM_START( xday2 ) ROM_END // NA-1 (C69 MCU) -GAME( 1992, bkrtmaq, 0, namcona1w, namcona1_quiz, namcona1_state,bkrtmaq, ROT0, "Namco", "Bakuretsu Quiz Ma-Q Dai Bouken (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, cgangpzl, 0, namcona1w, namcona1_joy, namcona1_state, cgangpzl, ROT0, "Namco", "Cosmo Gang the Puzzle (US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, cgangpzlj, cgangpzl, namcona1w, namcona1_joy, namcona1_state, cgangpzl, ROT0, "Namco", "Cosmo Gang the Puzzle (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, exvania, 0, namcona1, namcona1_joy, namcona1_state, exbania, ROT0, "Namco", "Exvania (World)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, exvaniaj, exvania, namcona1, namcona1_joy, namcona1_state, exbania, ROT0, "Namco", "Exvania (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, fghtatck, 0, namcona1, namcona1_joy, namcona1_state, fa, ROT90,"Namco", "Fighter & Attacker (US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, fa, fghtatck, namcona1, namcona1_joy, namcona1_state, fa, ROT90,"Namco", "F/A (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, swcourt, 0, namcona1w, namcona1_joy, namcona1_state, swcourt, ROT0, "Namco", "Super World Court (World)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, swcourtj, swcourt, namcona1w, namcona1_joy, namcona1_state, swcourt, ROT0, "Namco", "Super World Court (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, emeraldaj, emeralda, namcona1w, namcona1_joy, namcona1_state, emeraldj, ROT0, "Namco", "Emeraldia (Japan Version B)", MACHINE_SUPPORTS_SAVE ) /* Parent is below on NA-2 Hardware */ -GAME( 1993, emeraldaja, emeralda, namcona1w, namcona1_joy, namcona1_state, emeraldj, ROT0, "Namco", "Emeraldia (Japan)", MACHINE_SUPPORTS_SAVE ) /* Parent is below on NA-2 Hardware */ -GAME( 1993, tinklpit, 0, namcona1w, namcona1_joy, namcona1_state, tinklpit, ROT0, "Namco", "Tinkle Pit (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, bkrtmaq, 0, namcona1w, namcona1_quiz, namcona1_state, bkrtmaq, ROT0, "Namco", "Bakuretsu Quiz Ma-Q Dai Bouken (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, cgangpzl, 0, namcona1w, namcona1_joy, namcona1_state, cgangpzl, ROT0, "Namco", "Cosmo Gang the Puzzle (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, cgangpzlj, cgangpzl, namcona1w, namcona1_joy, namcona1_state, cgangpzl, ROT0, "Namco", "Cosmo Gang the Puzzle (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, exvania, 0, namcona1, namcona1_joy, namcona1_state, exbania, ROT0, "Namco", "Exvania (World)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, exvaniaj, exvania, namcona1, namcona1_joy, namcona1_state, exbania, ROT0, "Namco", "Exvania (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, fghtatck, 0, namcona1, namcona1_joy, namcona1_state, fa, ROT90,"Namco", "Fighter & Attacker (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, fa, fghtatck, namcona1, namcona1_joy, namcona1_state, fa, ROT90,"Namco", "F/A (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, swcourt, 0, namcona1w, namcona1_joy, namcona1_state, swcourt, ROT0, "Namco", "Super World Court (World)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, swcourtj, swcourt, namcona1w, namcona1_joy, namcona1_state, swcourt, ROT0, "Namco", "Super World Court (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, emeraldaj, emeralda, namcona1w, namcona1_joy, namcona1_state, emeraldj, ROT0, "Namco", "Emeraldia (Japan Version B)", MACHINE_SUPPORTS_SAVE ) /* Parent is below on NA-2 Hardware */ +GAME( 1993, emeraldaja, emeralda, namcona1w, namcona1_joy, namcona1_state, emeraldj, ROT0, "Namco", "Emeraldia (Japan)", MACHINE_SUPPORTS_SAVE ) /* Parent is below on NA-2 Hardware */ +GAME( 1993, tinklpit, 0, namcona1w, namcona1_joy, namcona1_state, tinklpit, ROT0, "Namco", "Tinkle Pit (Japan)", MACHINE_SUPPORTS_SAVE ) // NA-2 (C70 MCU) -GAME( 1992, knckhead, 0, namcona2, namcona1_joy, namcona1_state, knckhead, ROT0, "Namco", "Knuckle Heads (World)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, knckheadj, knckhead, namcona2, namcona1_joy, namcona1_state, knckhead, ROT0, "Namco", "Knuckle Heads (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, knckheadjp, knckhead, namcona2, namcona1_joy, namcona1_state, knckhead, ROT0, "Namco", "Knuckle Heads (Japan, Prototype?)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, emeralda, 0, namcona2w, namcona1_joy, namcona1_state, emeralda, ROT0, "Namco", "Emeraldia (World)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, numanath, 0, namcona2, namcona1_joy, namcona1_state, numanath, ROT0, "Namco", "Numan Athletics (World)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, numanathj, numanath, namcona2, namcona1_joy, namcona1_state, numanath, ROT0, "Namco", "Numan Athletics (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, quiztou, 0, namcona2, namcona1_quiz, namcona1_state,quiztou, ROT0, "Namco", "Nettou! Gekitou! Quiztou!! (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, xday2, 0, namcona2, namcona1_joy, namcona1_state, xday2, ROT0, "Namco", "X-Day 2 (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1992, knckhead, 0, namcona2, namcona1_joy, namcona1_state, knckhead, ROT0, "Namco", "Knuckle Heads (World)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, knckheadj, knckhead, namcona2, namcona1_joy, namcona1_state, knckhead, ROT0, "Namco", "Knuckle Heads (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, knckheadjp, knckhead, namcona2, namcona1_joy, namcona1_state, knckhead, ROT0, "Namco", "Knuckle Heads (Japan, Prototype?)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, emeralda, 0, namcona2w, namcona1_joy, namcona1_state, emeralda, ROT0, "Namco", "Emeraldia (World)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, numanath, 0, namcona2, namcona1_joy, namcona1_state, numanath, ROT0, "Namco", "Numan Athletics (World)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, numanathj, numanath, namcona2, namcona1_joy, namcona1_state, numanath, ROT0, "Namco", "Numan Athletics (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, quiztou, 0, namcona2, namcona1_quiz, namcona1_state, quiztou, ROT0, "Namco", "Nettou! Gekitou! Quiztou!! (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, xday2, 0, namcona2, namcona1_joy, namcona1_state, xday2, ROT0, "Namco", "X-Day 2 (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/namconb1.cpp b/src/mame/drivers/namconb1.cpp index 1e9d6fa31d4..73fa99afb3c 100644 --- a/src/mame/drivers/namconb1.cpp +++ b/src/mame/drivers/namconb1.cpp @@ -272,7 +272,7 @@ GFX: Custom 145 ( 80 pin PQFP) */ #include "emu.h" #include "includes/namconb1.h" -#include "includes/namcoic.h" +#include "machine/namcoic.h" #include "cpu/m68000/m68000.h" #include "machine/namcomcu.h" @@ -1064,7 +1064,7 @@ MACHINE_RESET_MEMBER(namconb1_state, namconb) /***************************************************************/ -static MACHINE_CONFIG_START( namconb1, namconb1_state ) +static MACHINE_CONFIG_START( namconb1 ) MCFG_CPU_ADD("maincpu", M68EC020, MASTER_CLOCK/2) MCFG_CPU_PROGRAM_MAP(namconb1_am) @@ -1106,7 +1106,7 @@ static MACHINE_CONFIG_START( namconb1, namconb1_state ) //MCFG_SOUND_ROUTE(3, "rspeaker", 1.00) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( namconb2, namconb1_state ) +static MACHINE_CONFIG_START( namconb2 ) MCFG_CPU_ADD("maincpu", M68EC020, MASTER_CLOCK/2) MCFG_CPU_PROGRAM_MAP(namconb2_am) diff --git a/src/mame/drivers/namcond1.cpp b/src/mame/drivers/namcond1.cpp index 2123d28d516..216bef55771 100644 --- a/src/mame/drivers/namcond1.cpp +++ b/src/mame/drivers/namcond1.cpp @@ -176,7 +176,7 @@ INTERRUPT_GEN_MEMBER(namcond1_state::mcu_interrupt) - The level 1 interrupt to the 68k has been measured at 60Hz. *******************************************/ -static MACHINE_CONFIG_START( namcond1, namcond1_state ) +static MACHINE_CONFIG_START( namcond1 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_49_152MHz/4) @@ -301,8 +301,8 @@ ROM_START( ncv2j ) ROM_LOAD( "ncs1voic.7c", 0x000000, 0x200000, CRC(ed05fd88) SHA1(ad88632c89a9946708fc6b4c9247e1bae9b2944b) ) ROM_END -GAME( 1995, ncv1, 0, namcond1, namcond1, driver_device, 0, ROT90, "Namco", "Namco Classic Collection Vol.1", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1995, ncv1j, ncv1, namcond1, namcond1, driver_device, 0, ROT90, "Namco", "Namco Classic Collection Vol.1 (Japan, v1.00)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1995, ncv1j2, ncv1, namcond1, namcond1, driver_device, 0, ROT90, "Namco", "Namco Classic Collection Vol.1 (Japan, v1.03)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1996, ncv2, 0, namcond1, namcond1, driver_device, 0, ROT90, "Namco", "Namco Classic Collection Vol.2", MACHINE_IMPERFECT_GRAPHICS | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) -GAME( 1996, ncv2j, ncv2, namcond1, namcond1, driver_device, 0, ROT90, "Namco", "Namco Classic Collection Vol.2 (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) +GAME( 1995, ncv1, 0, namcond1, namcond1, namcond1_state, 0, ROT90, "Namco", "Namco Classic Collection Vol.1", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1995, ncv1j, ncv1, namcond1, namcond1, namcond1_state, 0, ROT90, "Namco", "Namco Classic Collection Vol.1 (Japan, v1.00)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1995, ncv1j2, ncv1, namcond1, namcond1, namcond1_state, 0, ROT90, "Namco", "Namco Classic Collection Vol.1 (Japan, v1.03)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1996, ncv2, 0, namcond1, namcond1, namcond1_state, 0, ROT90, "Namco", "Namco Classic Collection Vol.2", MACHINE_IMPERFECT_GRAPHICS | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) +GAME( 1996, ncv2j, ncv2, namcond1, namcond1, namcond1_state, 0, ROT90, "Namco", "Namco Classic Collection Vol.2 (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/namcops2.cpp b/src/mame/drivers/namcops2.cpp index c2088b7db6f..be08b2fd660 100644 --- a/src/mame/drivers/namcops2.cpp +++ b/src/mame/drivers/namcops2.cpp @@ -913,7 +913,7 @@ ADDRESS_MAP_END static INPUT_PORTS_START( system246 ) INPUT_PORTS_END -static MACHINE_CONFIG_START( system246, namcops2_state ) +static MACHINE_CONFIG_START( system246 ) MCFG_CPU_ADD("maincpu", R5000LE, 294000000) // actually R5900 @ 294 MHz MCFG_MIPS3_ICACHE_SIZE(16384) MCFG_MIPS3_DCACHE_SIZE(16384) @@ -1580,59 +1580,59 @@ ROM_START( sbxc ) ROM_END // System 246 -GAME(2001, sys246, 0, system246, system246, driver_device, 0, ROT0, "Namco", "System 246 BIOS", MACHINE_IS_SKELETON|MACHINE_IS_BIOS_ROOT) -GAME(2001, vnight, sys246, system246, system246, driver_device, 0, ROT0, "Sega / Namco", "Vampire Night (VPN3 Ver. B)", MACHINE_IS_SKELETON) -GAME(2001, bldyr3b, sys246, system246, system246, driver_device, 0, ROT0, "bootleg", "Bloody Roar 3 (bootleg)", MACHINE_IS_SKELETON) -GAME(2001, rrvac, sys246, system246, system246, driver_device, 0, ROT0, "Namco", "Ridge Racer V Arcade Battle (RRV3 Ver. A)", MACHINE_IS_SKELETON) -GAME(2001, rrvac2, rrvac, system246, system246, driver_device, 0, ROT0, "Namco", "Ridge Racer V Arcade Battle (RRV2 Ver. A)", MACHINE_IS_SKELETON) -GAME(2001, rrvac1, rrvac, system246, system246, driver_device, 0, ROT0, "Namco", "Ridge Racer V Arcade Battle (RRV1 Ver. A)", MACHINE_IS_SKELETON) -GAME(2001, wanganmd, sys246, system246, system246, driver_device, 0, ROT0, "Namco", "Wangan Midnight (WMN1 Ver. A)", MACHINE_IS_SKELETON) -GAME(2002, dragchrn, sys246, system246, system246, driver_device, 0, ROT0, "Namco", "Dragon Chronicles (DC001 Ver. A)", MACHINE_IS_SKELETON) -GAME(2002, netchu02, sys246, system246, system246, driver_device, 0, ROT0, "Namco", "Netchuu Pro Yakyuu 2002 (NPY1 Ver. A)", MACHINE_IS_SKELETON) -GAME(2002, scptour, sys246, system246, system246, driver_device, 0, ROT0, "Namco", "Smash Court Pro Tournament (SCP1)", MACHINE_IS_SKELETON) -GAME(2002, soulclb2, sys246, system246, system246, driver_device, 0, ROT0, "Namco", "Soul Calibur II (SC23 Ver. A)", MACHINE_IS_SKELETON) -GAME(2002, soulcl2a, soulclb2, system246, system246, driver_device, 0, ROT0, "Namco", "Soul Calibur II (SC22 Ver. A)", MACHINE_IS_SKELETON) -GAME(2002, soulcl2b, soulclb2, system246, system246, driver_device, 0, ROT0, "Namco", "Soul Calibur II (SC21 Ver. A)", MACHINE_IS_SKELETON) -GAME(2002, soulcl2w, soulclb2, system246, system246, driver_device, 0, ROT0, "Namco", "Soul Calibur II (SC23 world version)", MACHINE_IS_SKELETON) -GAME(2002, tekken4, sys246, system246, system246, driver_device, 0, ROT0, "Namco", "Tekken 4 (TEF3 Ver. C)", MACHINE_IS_SKELETON) -GAME(2002, tekken4a, tekken4, system246, system246, driver_device, 0, ROT0, "Namco", "Tekken 4 (TEF2 Ver. A)", MACHINE_IS_SKELETON) -GAME(2002, tekken4b, tekken4, system246, system246, driver_device, 0, ROT0, "Namco", "Tekken 4 (TEF1 Ver. A)", MACHINE_IS_SKELETON) -GAME(2002, tekken4c, tekken4, system246, system246, driver_device, 0, ROT0, "Namco", "Tekken 4 (TEF1 Ver. C)", MACHINE_IS_SKELETON) -GAME(2002, wanganmr, sys246, system246, system246, driver_device, 0, ROT0, "Namco", "Wangan Midnight R (WMR1 Ver. A)", MACHINE_IS_SKELETON) -GAME(2003, prdgp03, sys246, system246, system246, driver_device, 0, ROT0, "Namco", "Pride GP 2003 (PR21 Ver. A)", MACHINE_IS_SKELETON) -GAME(2003, timecrs3, sys246, system246, system246, driver_device, 0, ROT0, "Namco", "Time Crisis 3 (TST1)", MACHINE_IS_SKELETON) -GAME(2003, timecrs3e,timecrs3, system246, system246, driver_device, 0, ROT0, "Namco", "Time Crisis 3 (TST2 Ver. A)", MACHINE_IS_SKELETON) -GAME(2003, zgundm, sys246, system246, system246, driver_device, 0, ROT0, "Capcom / Banpresto", "Mobile Suit Z-Gundam: A.E.U.G. vs Titans (ZGA1 Ver. A)", MACHINE_IS_SKELETON) -GAME(2004, fghtjam, sys246, system246, system246, driver_device, 0, ROT0, "Capcom / Namco", "Capcom Fighting Jam (JAM1 Ver. A)", MACHINE_IS_SKELETON) -GAME(2004, sukuinuf, sys246, system246, system246, driver_device, 0, ROT0, "Namco", "Quiz and Variety Suku Suku Inufuku 2 (IN2 Ver. A)", MACHINE_IS_SKELETON) -GAME(2004, zgundmdx, sys246, system246, system246, driver_device, 0, ROT0, "Capcom / Banpresto", "Mobile Suit Z-Gundam: A.E.U.G. vs Titans DX (ZDX1 Ver. A)", MACHINE_IS_SKELETON) -GAME(2004, zoidsinf, sys246, system246, system246, driver_device, 0, ROT0, "Tomy / Taito", "Zoids Infinity", MACHINE_IS_SKELETON) -GAME(2005, cobrata, sys246, system246, system246, driver_device, 0, ROT0, "Namco", "Cobra: The Arcade (CBR1 Ver. B)", MACHINE_IS_SKELETON) -GAME(2005, gundzaft, sys246, system246, system246, driver_device, 0, ROT0, "Capcom / Banpresto", "Gundam Seed: Federation vs. Z.A.F.T. (SED1 Ver. A)", MACHINE_IS_SKELETON) -GAME(2005, soulclb3, sys246, system246, system246, driver_device, 0, ROT0, "Namco", "Soul Calibur III (SC31001-NA-A key, NA-B disc)", MACHINE_IS_SKELETON) -GAME(2005, soulclb3a,soulclb3, system246, system246, driver_device, 0, ROT0, "Namco", "Soul Calibur III (SC31002-NA-A key, NA-B disc)", MACHINE_IS_SKELETON) -GAME(2005, soulclb3b,soulclb3, system246, system246, driver_device, 0, ROT0, "Namco", "Soul Calibur III (SC31002-NA-A key, NA-A disc)", MACHINE_IS_SKELETON) -GAME(2005, taiko7, sys246, system246, system246, driver_device, 0, ROT0, "Namco", "Taiko No Tatsujin 7 (TK71-NA-A)", MACHINE_IS_SKELETON) -GAME(2006, taiko8, sys246, system246, system246, driver_device, 0, ROT0, "Namco", "Taiko No Tatsujin 8 (TK8100-1-NA-A)", MACHINE_IS_SKELETON) -GAME(2006, qgundam, sys246, system246, system246, driver_device, 0, ROT0, "Namco", "Quiz Mobile Suit Gundam: Monsenshi (QG1 Ver. A)", MACHINE_IS_SKELETON) -GAME(2008, fateulc, sys246, system246, system246, driver_device, 0, ROT0, "Capcom / Namco", "Fate: Unlimited Codes (FUD1 ver. A)", MACHINE_IS_SKELETON) -GAME(2008, fateulcb, fateulc, system246, system246, driver_device, 0, ROT0, "bootleg", "Fate: Unlimited Codes (bootleg)", MACHINE_IS_SKELETON) -GAME(2008, sbxc, sys246, system246, system246, driver_device, 0, ROT0, "Capcom / Arc System Works", "Sengoku Basara X Cross", MACHINE_IS_SKELETON) +GAME(2001, sys246, 0, system246, system246, namcops2_state, 0, ROT0, "Namco", "System 246 BIOS", MACHINE_IS_SKELETON|MACHINE_IS_BIOS_ROOT) +GAME(2001, vnight, sys246, system246, system246, namcops2_state, 0, ROT0, "Sega / Namco", "Vampire Night (VPN3 Ver. B)", MACHINE_IS_SKELETON) +GAME(2001, bldyr3b, sys246, system246, system246, namcops2_state, 0, ROT0, "bootleg", "Bloody Roar 3 (bootleg)", MACHINE_IS_SKELETON) +GAME(2001, rrvac, sys246, system246, system246, namcops2_state, 0, ROT0, "Namco", "Ridge Racer V Arcade Battle (RRV3 Ver. A)", MACHINE_IS_SKELETON) +GAME(2001, rrvac2, rrvac, system246, system246, namcops2_state, 0, ROT0, "Namco", "Ridge Racer V Arcade Battle (RRV2 Ver. A)", MACHINE_IS_SKELETON) +GAME(2001, rrvac1, rrvac, system246, system246, namcops2_state, 0, ROT0, "Namco", "Ridge Racer V Arcade Battle (RRV1 Ver. A)", MACHINE_IS_SKELETON) +GAME(2001, wanganmd, sys246, system246, system246, namcops2_state, 0, ROT0, "Namco", "Wangan Midnight (WMN1 Ver. A)", MACHINE_IS_SKELETON) +GAME(2002, dragchrn, sys246, system246, system246, namcops2_state, 0, ROT0, "Namco", "Dragon Chronicles (DC001 Ver. A)", MACHINE_IS_SKELETON) +GAME(2002, netchu02, sys246, system246, system246, namcops2_state, 0, ROT0, "Namco", "Netchuu Pro Yakyuu 2002 (NPY1 Ver. A)", MACHINE_IS_SKELETON) +GAME(2002, scptour, sys246, system246, system246, namcops2_state, 0, ROT0, "Namco", "Smash Court Pro Tournament (SCP1)", MACHINE_IS_SKELETON) +GAME(2002, soulclb2, sys246, system246, system246, namcops2_state, 0, ROT0, "Namco", "Soul Calibur II (SC23 Ver. A)", MACHINE_IS_SKELETON) +GAME(2002, soulcl2a, soulclb2, system246, system246, namcops2_state, 0, ROT0, "Namco", "Soul Calibur II (SC22 Ver. A)", MACHINE_IS_SKELETON) +GAME(2002, soulcl2b, soulclb2, system246, system246, namcops2_state, 0, ROT0, "Namco", "Soul Calibur II (SC21 Ver. A)", MACHINE_IS_SKELETON) +GAME(2002, soulcl2w, soulclb2, system246, system246, namcops2_state, 0, ROT0, "Namco", "Soul Calibur II (SC23 world version)", MACHINE_IS_SKELETON) +GAME(2002, tekken4, sys246, system246, system246, namcops2_state, 0, ROT0, "Namco", "Tekken 4 (TEF3 Ver. C)", MACHINE_IS_SKELETON) +GAME(2002, tekken4a, tekken4, system246, system246, namcops2_state, 0, ROT0, "Namco", "Tekken 4 (TEF2 Ver. A)", MACHINE_IS_SKELETON) +GAME(2002, tekken4b, tekken4, system246, system246, namcops2_state, 0, ROT0, "Namco", "Tekken 4 (TEF1 Ver. A)", MACHINE_IS_SKELETON) +GAME(2002, tekken4c, tekken4, system246, system246, namcops2_state, 0, ROT0, "Namco", "Tekken 4 (TEF1 Ver. C)", MACHINE_IS_SKELETON) +GAME(2002, wanganmr, sys246, system246, system246, namcops2_state, 0, ROT0, "Namco", "Wangan Midnight R (WMR1 Ver. A)", MACHINE_IS_SKELETON) +GAME(2003, prdgp03, sys246, system246, system246, namcops2_state, 0, ROT0, "Namco", "Pride GP 2003 (PR21 Ver. A)", MACHINE_IS_SKELETON) +GAME(2003, timecrs3, sys246, system246, system246, namcops2_state, 0, ROT0, "Namco", "Time Crisis 3 (TST1)", MACHINE_IS_SKELETON) +GAME(2003, timecrs3e,timecrs3, system246, system246, namcops2_state, 0, ROT0, "Namco", "Time Crisis 3 (TST2 Ver. A)", MACHINE_IS_SKELETON) +GAME(2003, zgundm, sys246, system246, system246, namcops2_state, 0, ROT0, "Capcom / Banpresto", "Mobile Suit Z-Gundam: A.E.U.G. vs Titans (ZGA1 Ver. A)", MACHINE_IS_SKELETON) +GAME(2004, fghtjam, sys246, system246, system246, namcops2_state, 0, ROT0, "Capcom / Namco", "Capcom Fighting Jam (JAM1 Ver. A)", MACHINE_IS_SKELETON) +GAME(2004, sukuinuf, sys246, system246, system246, namcops2_state, 0, ROT0, "Namco", "Quiz and Variety Suku Suku Inufuku 2 (IN2 Ver. A)", MACHINE_IS_SKELETON) +GAME(2004, zgundmdx, sys246, system246, system246, namcops2_state, 0, ROT0, "Capcom / Banpresto", "Mobile Suit Z-Gundam: A.E.U.G. vs Titans DX (ZDX1 Ver. A)", MACHINE_IS_SKELETON) +GAME(2004, zoidsinf, sys246, system246, system246, namcops2_state, 0, ROT0, "Tomy / Taito", "Zoids Infinity", MACHINE_IS_SKELETON) +GAME(2005, cobrata, sys246, system246, system246, namcops2_state, 0, ROT0, "Namco", "Cobra: The Arcade (CBR1 Ver. B)", MACHINE_IS_SKELETON) +GAME(2005, gundzaft, sys246, system246, system246, namcops2_state, 0, ROT0, "Capcom / Banpresto", "Gundam Seed: Federation vs. Z.A.F.T. (SED1 Ver. A)", MACHINE_IS_SKELETON) +GAME(2005, soulclb3, sys246, system246, system246, namcops2_state, 0, ROT0, "Namco", "Soul Calibur III (SC31001-NA-A key, NA-B disc)", MACHINE_IS_SKELETON) +GAME(2005, soulclb3a,soulclb3, system246, system246, namcops2_state, 0, ROT0, "Namco", "Soul Calibur III (SC31002-NA-A key, NA-B disc)", MACHINE_IS_SKELETON) +GAME(2005, soulclb3b,soulclb3, system246, system246, namcops2_state, 0, ROT0, "Namco", "Soul Calibur III (SC31002-NA-A key, NA-A disc)", MACHINE_IS_SKELETON) +GAME(2005, taiko7, sys246, system246, system246, namcops2_state, 0, ROT0, "Namco", "Taiko No Tatsujin 7 (TK71-NA-A)", MACHINE_IS_SKELETON) +GAME(2006, taiko8, sys246, system246, system246, namcops2_state, 0, ROT0, "Namco", "Taiko No Tatsujin 8 (TK8100-1-NA-A)", MACHINE_IS_SKELETON) +GAME(2006, qgundam, sys246, system246, system246, namcops2_state, 0, ROT0, "Namco", "Quiz Mobile Suit Gundam: Monsenshi (QG1 Ver. A)", MACHINE_IS_SKELETON) +GAME(2008, fateulc, sys246, system246, system246, namcops2_state, 0, ROT0, "Capcom / Namco", "Fate: Unlimited Codes (FUD1 ver. A)", MACHINE_IS_SKELETON) +GAME(2008, fateulcb, fateulc, system246, system246, namcops2_state, 0, ROT0, "bootleg", "Fate: Unlimited Codes (bootleg)", MACHINE_IS_SKELETON) +GAME(2008, sbxc, sys246, system246, system246, namcops2_state, 0, ROT0, "Capcom / Arc System Works", "Sengoku Basara X Cross", MACHINE_IS_SKELETON) // System 256 -GAME(2004, sys256, 0, system256, system246, driver_device, 0, ROT0, "Namco", "System 256 BIOS", MACHINE_IS_SKELETON|MACHINE_IS_BIOS_ROOT) -GAME(2005, tekken51, sys256, system256, system246, driver_device, 0, ROT0, "Namco", "Tekken 5.1 (TE51 Ver. B)", MACHINE_IS_SKELETON) -GAME(2005, tekken51b,tekken51, system256, system246, driver_device, 0, ROT0, "Namco", "Tekken 5.1 (TE53 Ver. B)", MACHINE_IS_SKELETON) -GAME(2005, tekken5d, sys256, system256, system246, driver_device, 0, ROT0, "Namco", "Tekken 5 Dark Resurrection (TED1 Ver. A)", MACHINE_IS_SKELETON) -GAME(2005, superdbz, sys256, system256, system246, driver_device, 0, ROT0, "Banpresto / Spike", "Super Dragon Ball Z (DB1 Ver. B)", MACHINE_IS_SKELETON) -GAME(2006, kinniku, sys256, system256, system246, driver_device, 0, ROT0, "Namco", "Kinnikuman Muscle Grand Prix (KN1 Ver. A)", MACHINE_IS_SKELETON) -GAME(2006, taiko9, sys256, system256, system246, driver_device, 0, ROT0, "Namco", "Taiko No Tatsujin 9 (TK91001-NA-A)", MACHINE_IS_SKELETON) -GAME(2006, yuyuhaku, sys256, system256, system246, driver_device, 0, ROT0, "Banpresto", "The Battle of Yu Yu Hakusho: Shitou! Ankoku Bujutsukai!", MACHINE_IS_SKELETON) -GAME(2006, zoidiexp, sys246, system246, system246, driver_device, 0, ROT0, "Tomy / Taito", "Zoids Infinity EX Plus (ver. 2.10)", MACHINE_IS_SKELETON) -GAME(2007, kinniku2, sys256, system256, system246, driver_device, 0, ROT0, "Namco", "Kinnikuman Muscle Grand Prix 2 (KN2 Ver. A)", MACHINE_IS_SKELETON) -GAME(2007, taiko10, sys256, system256, system246, driver_device, 0, ROT0, "Namco", "Taiko No Tatsujin 10 (T101001-NA-A)", MACHINE_IS_SKELETON) -GAME(2008, gdvsgd, sys256, system256, system246, driver_device, 0, ROT0, "Capcom / Bandai", "Gundam vs. Gundam (GVS1 Ver. A)", MACHINE_IS_SKELETON) -GAME(2009, gdvsgdnx, sys256, system256, system246, driver_device, 0, ROT0, "Capcom / Bandai", "Gundam vs. Gundam Next", MACHINE_IS_SKELETON) +GAME(2004, sys256, 0, system256, system246, namcops2_state, 0, ROT0, "Namco", "System 256 BIOS", MACHINE_IS_SKELETON|MACHINE_IS_BIOS_ROOT) +GAME(2005, tekken51, sys256, system256, system246, namcops2_state, 0, ROT0, "Namco", "Tekken 5.1 (TE51 Ver. B)", MACHINE_IS_SKELETON) +GAME(2005, tekken51b,tekken51, system256, system246, namcops2_state, 0, ROT0, "Namco", "Tekken 5.1 (TE53 Ver. B)", MACHINE_IS_SKELETON) +GAME(2005, tekken5d, sys256, system256, system246, namcops2_state, 0, ROT0, "Namco", "Tekken 5 Dark Resurrection (TED1 Ver. A)", MACHINE_IS_SKELETON) +GAME(2005, superdbz, sys256, system256, system246, namcops2_state, 0, ROT0, "Banpresto / Spike", "Super Dragon Ball Z (DB1 Ver. B)", MACHINE_IS_SKELETON) +GAME(2006, kinniku, sys256, system256, system246, namcops2_state, 0, ROT0, "Namco", "Kinnikuman Muscle Grand Prix (KN1 Ver. A)", MACHINE_IS_SKELETON) +GAME(2006, taiko9, sys256, system256, system246, namcops2_state, 0, ROT0, "Namco", "Taiko No Tatsujin 9 (TK91001-NA-A)", MACHINE_IS_SKELETON) +GAME(2006, yuyuhaku, sys256, system256, system246, namcops2_state, 0, ROT0, "Banpresto", "The Battle of Yu Yu Hakusho: Shitou! Ankoku Bujutsukai!", MACHINE_IS_SKELETON) +GAME(2006, zoidiexp, sys246, system246, system246, namcops2_state, 0, ROT0, "Tomy / Taito", "Zoids Infinity EX Plus (ver. 2.10)", MACHINE_IS_SKELETON) +GAME(2007, kinniku2, sys256, system256, system246, namcops2_state, 0, ROT0, "Namco", "Kinnikuman Muscle Grand Prix 2 (KN2 Ver. A)", MACHINE_IS_SKELETON) +GAME(2007, taiko10, sys256, system256, system246, namcops2_state, 0, ROT0, "Namco", "Taiko No Tatsujin 10 (T101001-NA-A)", MACHINE_IS_SKELETON) +GAME(2008, gdvsgd, sys256, system256, system246, namcops2_state, 0, ROT0, "Capcom / Bandai", "Gundam vs. Gundam (GVS1 Ver. A)", MACHINE_IS_SKELETON) +GAME(2009, gdvsgdnx, sys256, system256, system246, namcops2_state, 0, ROT0, "Capcom / Bandai", "Gundam vs. Gundam Next", MACHINE_IS_SKELETON) // System Super 256 -GAME(2006, timecrs4, sys256, system256, system246, driver_device, 0, ROT0, "Namco", "Time Crisis 4", MACHINE_IS_SKELETON) +GAME(2006, timecrs4, sys256, system256, system246, namcops2_state, 0, ROT0, "Namco", "Time Crisis 4", MACHINE_IS_SKELETON) diff --git a/src/mame/drivers/namcos1.cpp b/src/mame/drivers/namcos1.cpp index e1a4d295828..d137b515132 100644 --- a/src/mame/drivers/namcos1.cpp +++ b/src/mame/drivers/namcos1.cpp @@ -1012,7 +1012,7 @@ GFXDECODE_END LPF info : Fco = 3.3KHz , g = -12dB/oct */ -static MACHINE_CONFIG_START( ns1, namcos1_state ) +static MACHINE_CONFIG_START( ns1 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809,XTAL_49_152MHz/32) diff --git a/src/mame/drivers/namcos10.cpp b/src/mame/drivers/namcos10.cpp index 69c5feacae2..cc8aea3fdf0 100644 --- a/src/mame/drivers/namcos10.cpp +++ b/src/mame/drivers/namcos10.cpp @@ -775,7 +775,7 @@ MACHINE_RESET_MEMBER(namcos10_state,namcos10) i2c_bit = 0; } -static MACHINE_CONFIG_START( namcos10_memm, namcos10_state ) +static MACHINE_CONFIG_START( namcos10_memm ) /* basic machine hardware */ MCFG_CPU_ADD( "maincpu", CXD8606BQ, XTAL_101_4912MHz ) MCFG_CPU_PROGRAM_MAP( namcos10_memm_map ) @@ -799,7 +799,7 @@ static MACHINE_CONFIG_START( namcos10_memm, namcos10_state ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") MACHINE_CONFIG_END -static MACHINE_CONFIG_START( namcos10_memn, namcos10_state ) +static MACHINE_CONFIG_START( namcos10_memn ) /* basic machine hardware */ MCFG_CPU_ADD( "maincpu", CXD8606BQ, XTAL_101_4912MHz ) MCFG_CPU_PROGRAM_MAP( namcos10_memn_map ) diff --git a/src/mame/drivers/namcos11.cpp b/src/mame/drivers/namcos11.cpp index 3f401291653..9e752c586c6 100644 --- a/src/mame/drivers/namcos11.cpp +++ b/src/mame/drivers/namcos11.cpp @@ -576,7 +576,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(namcos11_state::mcu_adc_cb) m_mcu->set_input_line(M37710_LINE_ADC, HOLD_LINE); } -static MACHINE_CONFIG_START( coh110, namcos11_state ) +static MACHINE_CONFIG_START( coh110 ) MCFG_CPU_ADD( "maincpu", CXD8530CQ, XTAL_67_7376MHz ) MCFG_CPU_PROGRAM_MAP( namcos11_map ) @@ -1631,29 +1631,29 @@ ROM_END 9 = Location Test */ -GAME( 1994, tekken, 0, tekken, tekken, driver_device, 0, ROT0, "Namco", "Tekken (World, TE2/VER.C)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1994, tekkenac, tekken, tekken, tekken, driver_device, 0, ROT0, "Namco", "Tekken (Asia, TE4/VER.C)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1994, tekkenb, tekken, tekken, tekken, driver_device, 0, ROT0, "Namco", "Tekken (World, TE2/VER.B)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1994, tekkenjb, tekken, tekken, tekken, driver_device, 0, ROT0, "Namco", "Tekken (Japan, TE1/VER.B)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1996, tekken2, 0, tekken2, tekken, driver_device, 0, ROT0, "Namco", "Tekken 2 Ver.B (US, TES3/VER.D)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1995, tekken2ub, tekken2, tekken2o, tekken, driver_device, 0, ROT0, "Namco", "Tekken 2 Ver.B (US, TES3/VER.B)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1995, tekken2b, tekken2, tekken2o, tekken, driver_device, 0, ROT0, "Namco", "Tekken 2 Ver.B (World, TES2/VER.B)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1995, tekken2jc, tekken2, tekken2o, tekken, driver_device, 0, ROT0, "Namco", "Tekken 2 Ver.B (Japan, TES1/VER.C)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1995, tekken2jb, tekken2, tekken2o, tekken, driver_device, 0, ROT0, "Namco", "Tekken 2 Ver.B (Japan, TES1/VER.B)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1995, tekken2a, tekken2, tekken2o, tekken, driver_device, 0, ROT0, "Namco", "Tekken 2 (World, TES2/VER.A)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1996, souledge, 0, souledge, souledge, driver_device, 0, ROT0, "Namco", "Soul Edge Ver. II (Asia, SO4/VER.C)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1995, souledgeuc, souledge, souledge, souledge, driver_device, 0, ROT0, "Namco", "Soul Edge Ver. II (US, SO3/VER.C)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1995, souledgea, souledge, souledge, souledge, driver_device, 0, ROT0, "Namco", "Soul Edge (World, SO2/VER.A)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1995, souledgeua, souledge, souledge, souledge, driver_device, 0, ROT0, "Namco", "Soul Edge (US, SO3/VER.A)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1995, souledgeja, souledge, souledge, souledge, driver_device, 0, ROT0, "Namco", "Soul Edge (Japan, SO1/VER.A)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1995, dunkmnia, 0, dunkmnia, namcos11, driver_device, 0, ROT0, "Namco", "Dunk Mania (World, DM2/VER.C)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1995, dunkmniajc, dunkmnia, dunkmnia, namcos11, driver_device, 0, ROT0, "Namco", "Dunk Mania (Japan, DM1/VER.C)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1995, xevi3dg, 0, xevi3dg, namcos11, driver_device, 0, ROT0, "Namco", "Xevious 3D/G (Japan, XV31/VER.A)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1996, primglex, 0, primglex, tekken, driver_device, 0, ROT0, "Namco", "Prime Goal EX (Japan, PG1/VER.A)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1996, danceyes, 0, danceyes, namcos11, driver_device, 0, ROT0, "Namco", "Dancing Eyes (US, DC3/VER.C)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1996, danceyesj, danceyes, danceyes, namcos11, driver_device, 0, ROT0, "Namco", "Dancing Eyes (Japan, DC1/VER.A)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1996, pocketrc, 0, pocketrc, pocketrc, driver_device, 0, ROT0, "Namco", "Pocket Racer (Japan, PKR1/VER.B)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1997, starswep, 0, starswep, namcos11, driver_device, 0, ROT0, "Axela / Namco", "Star Sweep (World, STP2/VER.A)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1997, starswepj, starswep, starswep, namcos11, driver_device, 0, ROT0, "Axela / Namco", "Star Sweep (Japan, STP1/VER.A)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1998, myangel3, 0, myangel3, myangel3, driver_device, 0, ROT0, "MOSS / Namco", "Kosodate Quiz My Angel 3 (Japan, KQT1/VER.A)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1999, ptblank2ua, ptblank2, ptblank2ua, ptblank2ua, driver_device, 0, ROT0, "Namco", "Point Blank 2 (US, GNB3/VER.A)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1994, tekken, 0, tekken, tekken, namcos11_state, 0, ROT0, "Namco", "Tekken (World, TE2/VER.C)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1994, tekkenac, tekken, tekken, tekken, namcos11_state, 0, ROT0, "Namco", "Tekken (Asia, TE4/VER.C)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1994, tekkenb, tekken, tekken, tekken, namcos11_state, 0, ROT0, "Namco", "Tekken (World, TE2/VER.B)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1994, tekkenjb, tekken, tekken, tekken, namcos11_state, 0, ROT0, "Namco", "Tekken (Japan, TE1/VER.B)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1996, tekken2, 0, tekken2, tekken, namcos11_state, 0, ROT0, "Namco", "Tekken 2 Ver.B (US, TES3/VER.D)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1995, tekken2ub, tekken2, tekken2o, tekken, namcos11_state, 0, ROT0, "Namco", "Tekken 2 Ver.B (US, TES3/VER.B)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1995, tekken2b, tekken2, tekken2o, tekken, namcos11_state, 0, ROT0, "Namco", "Tekken 2 Ver.B (World, TES2/VER.B)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1995, tekken2jc, tekken2, tekken2o, tekken, namcos11_state, 0, ROT0, "Namco", "Tekken 2 Ver.B (Japan, TES1/VER.C)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1995, tekken2jb, tekken2, tekken2o, tekken, namcos11_state, 0, ROT0, "Namco", "Tekken 2 Ver.B (Japan, TES1/VER.B)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1995, tekken2a, tekken2, tekken2o, tekken, namcos11_state, 0, ROT0, "Namco", "Tekken 2 (World, TES2/VER.A)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1996, souledge, 0, souledge, souledge, namcos11_state, 0, ROT0, "Namco", "Soul Edge Ver. II (Asia, SO4/VER.C)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1995, souledgeuc, souledge, souledge, souledge, namcos11_state, 0, ROT0, "Namco", "Soul Edge Ver. II (US, SO3/VER.C)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1995, souledgea, souledge, souledge, souledge, namcos11_state, 0, ROT0, "Namco", "Soul Edge (World, SO2/VER.A)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1995, souledgeua, souledge, souledge, souledge, namcos11_state, 0, ROT0, "Namco", "Soul Edge (US, SO3/VER.A)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1995, souledgeja, souledge, souledge, souledge, namcos11_state, 0, ROT0, "Namco", "Soul Edge (Japan, SO1/VER.A)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1995, dunkmnia, 0, dunkmnia, namcos11, namcos11_state, 0, ROT0, "Namco", "Dunk Mania (World, DM2/VER.C)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1995, dunkmniajc, dunkmnia, dunkmnia, namcos11, namcos11_state, 0, ROT0, "Namco", "Dunk Mania (Japan, DM1/VER.C)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1995, xevi3dg, 0, xevi3dg, namcos11, namcos11_state, 0, ROT0, "Namco", "Xevious 3D/G (Japan, XV31/VER.A)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1996, primglex, 0, primglex, tekken, namcos11_state, 0, ROT0, "Namco", "Prime Goal EX (Japan, PG1/VER.A)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1996, danceyes, 0, danceyes, namcos11, namcos11_state, 0, ROT0, "Namco", "Dancing Eyes (US, DC3/VER.C)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1996, danceyesj, danceyes, danceyes, namcos11, namcos11_state, 0, ROT0, "Namco", "Dancing Eyes (Japan, DC1/VER.A)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1996, pocketrc, 0, pocketrc, pocketrc, namcos11_state, 0, ROT0, "Namco", "Pocket Racer (Japan, PKR1/VER.B)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1997, starswep, 0, starswep, namcos11, namcos11_state, 0, ROT0, "Axela / Namco", "Star Sweep (World, STP2/VER.A)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1997, starswepj, starswep, starswep, namcos11, namcos11_state, 0, ROT0, "Axela / Namco", "Star Sweep (Japan, STP1/VER.A)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1998, myangel3, 0, myangel3, myangel3, namcos11_state, 0, ROT0, "MOSS / Namco", "Kosodate Quiz My Angel 3 (Japan, KQT1/VER.A)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1999, ptblank2ua, ptblank2, ptblank2ua, ptblank2ua, namcos11_state, 0, ROT0, "Namco", "Point Blank 2 (US, GNB3/VER.A)", MACHINE_IMPERFECT_GRAPHICS ) diff --git a/src/mame/drivers/namcos12.cpp b/src/mame/drivers/namcos12.cpp index cff6874da6f..4dfed633d91 100644 --- a/src/mame/drivers/namcos12.cpp +++ b/src/mame/drivers/namcos12.cpp @@ -1672,7 +1672,7 @@ DRIVER_INIT_MEMBER(namcos12_state,technodr) *( (uint32_t *)( memregion( "sub" )->base() + 0x14b6 ) ) = 0; } -static MACHINE_CONFIG_START( coh700, namcos12_state ) +static MACHINE_CONFIG_START( coh700 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", CXD8661R, XTAL_100MHz) @@ -1681,7 +1681,7 @@ static MACHINE_CONFIG_START( coh700, namcos12_state ) MCFG_RAM_MODIFY("maincpu:ram") MCFG_RAM_DEFAULT_SIZE("4M") - MCFG_PSX_DMA_CHANNEL_READ( "maincpu", 5, psx_dma_read_delegate(&namcos12_state::namcos12_rom_read, (namcos12_state *) owner )) + MCFG_PSX_DMA_CHANNEL_READ( "maincpu", 5, psxdma_device::read_delegate(&namcos12_state::namcos12_rom_read, (namcos12_state *) owner )) MCFG_CPU_ADD("sub", H83002, 16934400) // frequency based on research (superctr) MCFG_CPU_PROGRAM_MAP(s12h8rwmap) diff --git a/src/mame/drivers/namcos2.cpp b/src/mame/drivers/namcos2.cpp index 620a0c12f6b..f738cb7d8dc 100644 --- a/src/mame/drivers/namcos2.cpp +++ b/src/mame/drivers/namcos2.cpp @@ -447,7 +447,7 @@ $a00000 checks have been seen on the Final Lap boards. #include "emu.h" #include "includes/namcos2.h" -#include "includes/namcoic.h" +#include "machine/namcoic.h" #include "cpu/m68000/m68000.h" #include "cpu/m6805/m6805.h" @@ -1681,7 +1681,7 @@ via software as INT1 /* */ /*************************************************************/ -static MACHINE_CONFIG_START( configure_c148_standard, namcos2_state ) +static MACHINE_CONFIG_START( configure_c148_standard ) MCFG_NAMCO_C148_ADD("master_intc","maincpu",true) namco_c148_device::link_c148_device(*device,"slave_intc"); MCFG_NAMCO_C148_EXT1_CB(WRITE8(namcos2_state, sound_reset_w)) @@ -1713,7 +1713,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(namcos2_state::screen_scanline) } } -static MACHINE_CONFIG_START( default, namcos2_state ) +static MACHINE_CONFIG_START( default ) MCFG_CPU_ADD("maincpu", M68000, M68K_CPU_CLOCK) /* 12.288MHz (49.152MHz OSC/4) */ MCFG_CPU_PROGRAM_MAP(master_default_am) MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", namcos2_state, screen_scanline, "screen", 0, 1) @@ -1754,7 +1754,7 @@ static MACHINE_CONFIG_START( default, namcos2_state ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") MCFG_C140_ADD("c140", C140_SOUND_CLOCK) /* 21.333kHz */ - MCFG_C140_BANK_TYPE(C140_TYPE_SYSTEM2) + MCFG_C140_BANK_TYPE(SYSTEM2) MCFG_SOUND_ROUTE(0, "lspeaker", 0.75) MCFG_SOUND_ROUTE(1, "rspeaker", 0.75) @@ -1767,7 +1767,7 @@ MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( default2, default ) MCFG_C140_REPLACE("c140", C140_SOUND_CLOCK) /* 21.333kHz */ - MCFG_C140_BANK_TYPE(C140_TYPE_SYSTEM2) + MCFG_C140_BANK_TYPE(SYSTEM2) MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) MACHINE_CONFIG_END @@ -1781,7 +1781,7 @@ MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( default3, default ) MCFG_C140_REPLACE("c140", C140_SOUND_CLOCK) /* 21.333kHz */ - MCFG_C140_BANK_TYPE(C140_TYPE_SYSTEM2) + MCFG_C140_BANK_TYPE(SYSTEM2) MCFG_SOUND_ROUTE(0, "lspeaker", 0.45) MCFG_SOUND_ROUTE(1, "rspeaker", 0.45) @@ -1790,7 +1790,7 @@ static MACHINE_CONFIG_DERIVED( default3, default ) MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( gollygho, namcos2_state ) +static MACHINE_CONFIG_START( gollygho ) MCFG_CPU_ADD("maincpu", M68000, M68K_CPU_CLOCK) /* 12.288MHz (49.152MHz OSC/4) */ MCFG_CPU_PROGRAM_MAP(master_default_am) MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", namcos2_state, screen_scanline, "screen", 0, 1) @@ -1831,7 +1831,7 @@ static MACHINE_CONFIG_START( gollygho, namcos2_state ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") MCFG_C140_ADD("c140", C140_SOUND_CLOCK) /* 21.333kHz */ - MCFG_C140_BANK_TYPE(C140_TYPE_SYSTEM2) + MCFG_C140_BANK_TYPE(SYSTEM2) MCFG_SOUND_ROUTE(0, "lspeaker", 0.75) MCFG_SOUND_ROUTE(1, "rspeaker", 0.75) @@ -1840,7 +1840,7 @@ static MACHINE_CONFIG_START( gollygho, namcos2_state ) MCFG_SOUND_ROUTE(1, "rspeaker", 0.80) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( finallap, namcos2_state ) +static MACHINE_CONFIG_START( finallap ) MCFG_CPU_ADD("maincpu", M68000, M68K_CPU_CLOCK) /* 12.288MHz (49.152MHz OSC/4) */ MCFG_CPU_PROGRAM_MAP(master_finallap_am) MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", namcos2_state, screen_scanline, "screen", 0, 1) @@ -1886,7 +1886,7 @@ static MACHINE_CONFIG_START( finallap, namcos2_state ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") MCFG_C140_ADD("c140", C140_SOUND_CLOCK) /* 21.333kHz */ - MCFG_C140_BANK_TYPE(C140_TYPE_SYSTEM2) + MCFG_C140_BANK_TYPE(SYSTEM2) MCFG_SOUND_ROUTE(0, "lspeaker", 0.75) MCFG_SOUND_ROUTE(1, "rspeaker", 0.75) @@ -1895,7 +1895,7 @@ static MACHINE_CONFIG_START( finallap, namcos2_state ) MCFG_SOUND_ROUTE(1, "rspeaker", 0.80) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( sgunner, namcos2_state ) +static MACHINE_CONFIG_START( sgunner ) MCFG_CPU_ADD("maincpu", M68000, M68K_CPU_CLOCK) /* 12.288MHz (49.152MHz OSC/4) */ MCFG_CPU_PROGRAM_MAP(master_sgunner_am) MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", namcos2_state, screen_scanline, "screen", 0, 1) @@ -1938,7 +1938,7 @@ static MACHINE_CONFIG_START( sgunner, namcos2_state ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") MCFG_C140_ADD("c140", C140_SOUND_CLOCK) /* 21.333kHz */ - MCFG_C140_BANK_TYPE(C140_TYPE_SYSTEM2) + MCFG_C140_BANK_TYPE(SYSTEM2) MCFG_SOUND_ROUTE(0, "lspeaker", 0.75) MCFG_SOUND_ROUTE(1, "rspeaker", 0.75) @@ -1947,7 +1947,7 @@ static MACHINE_CONFIG_START( sgunner, namcos2_state ) MCFG_SOUND_ROUTE(1, "rspeaker", 0.80) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( sgunner2, namcos2_state ) +static MACHINE_CONFIG_START( sgunner2 ) MCFG_CPU_ADD("maincpu", M68000, M68K_CPU_CLOCK) /* 12.288MHz (49.152MHz OSC/4) */ MCFG_CPU_PROGRAM_MAP(master_sgunner_am) MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", namcos2_state, screen_scanline, "screen", 0, 1) @@ -1995,7 +1995,7 @@ static MACHINE_CONFIG_START( sgunner2, namcos2_state ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") MCFG_C140_ADD("c140", C140_SOUND_CLOCK) /* 21.333kHz */ - MCFG_C140_BANK_TYPE(C140_TYPE_SYSTEM2) + MCFG_C140_BANK_TYPE(SYSTEM2) MCFG_SOUND_ROUTE(0, "lspeaker", 0.75) MCFG_SOUND_ROUTE(1, "rspeaker", 0.75) @@ -2004,7 +2004,7 @@ static MACHINE_CONFIG_START( sgunner2, namcos2_state ) MCFG_SOUND_ROUTE(1, "rspeaker", 0.80) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( luckywld, namcos2_state ) +static MACHINE_CONFIG_START( luckywld ) MCFG_CPU_ADD("maincpu", M68000, M68K_CPU_CLOCK) /* 12.288MHz (49.152MHz OSC/4) */ MCFG_CPU_PROGRAM_MAP(master_luckywld_am) MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", namcos2_state, screen_scanline, "screen", 0, 1) @@ -2050,7 +2050,7 @@ static MACHINE_CONFIG_START( luckywld, namcos2_state ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") MCFG_C140_ADD("c140", C140_SOUND_CLOCK) /* 21.333kHz */ - MCFG_C140_BANK_TYPE(C140_TYPE_SYSTEM2) + MCFG_C140_BANK_TYPE(SYSTEM2) MCFG_SOUND_ROUTE(0, "lspeaker", 0.75) MCFG_SOUND_ROUTE(1, "rspeaker", 0.75) @@ -2059,7 +2059,7 @@ static MACHINE_CONFIG_START( luckywld, namcos2_state ) MCFG_SOUND_ROUTE(1, "rspeaker", 0.80) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( metlhawk, namcos2_state ) +static MACHINE_CONFIG_START( metlhawk ) MCFG_CPU_ADD("maincpu", M68000, M68K_CPU_CLOCK) /* 12.288MHz (49.152MHz OSC/4) */ MCFG_CPU_PROGRAM_MAP(master_metlhawk_am) MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", namcos2_state, screen_scanline, "screen", 0, 1) @@ -2102,7 +2102,7 @@ static MACHINE_CONFIG_START( metlhawk, namcos2_state ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") MCFG_C140_ADD("c140", C140_SOUND_CLOCK) /* 21.333kHz */ - MCFG_C140_BANK_TYPE(C140_TYPE_SYSTEM2) + MCFG_C140_BANK_TYPE(SYSTEM2) MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) diff --git a/src/mame/drivers/namcos21.cpp b/src/mame/drivers/namcos21.cpp index c6c75b97772..8c0e249eb63 100644 --- a/src/mame/drivers/namcos21.cpp +++ b/src/mame/drivers/namcos21.cpp @@ -520,7 +520,7 @@ Filter Board */ #include "emu.h" #include "includes/namcos21.h" -#include "includes/namcoic.h" +#include "machine/namcoic.h" #include "cpu/m68000/m68000.h" #include "cpu/m6805/m6805.h" @@ -1870,7 +1870,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(namcos21_state::screen_scanline) } } -static MACHINE_CONFIG_START( configure_c148_standard, namcos21_state ) +static MACHINE_CONFIG_START( configure_c148_standard ) MCFG_NAMCO_C148_ADD("master_intc","maincpu",true) namco_c148_device::link_c148_device(*device,"slave_intc"); MCFG_NAMCO_C148_EXT1_CB(WRITE8(namcos21_state, sound_reset_w)) @@ -1881,7 +1881,7 @@ static MACHINE_CONFIG_START( configure_c148_standard, namcos21_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( namcos21, namcos21_state ) +static MACHINE_CONFIG_START( namcos21 ) MCFG_CPU_ADD("maincpu", M68000,12288000) /* Master */ MCFG_CPU_PROGRAM_MAP(master_map) MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", namcos21_state, screen_scanline, "screen", 0, 1) @@ -1938,7 +1938,7 @@ static MACHINE_CONFIG_START( namcos21, namcos21_state ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") MCFG_C140_ADD("c140", 8000000/374) - MCFG_C140_BANK_TYPE(C140_TYPE_SYSTEM21) + MCFG_C140_BANK_TYPE(SYSTEM21) MCFG_SOUND_ROUTE(0, "lspeaker", 0.50) MCFG_SOUND_ROUTE(1, "rspeaker", 0.50) @@ -1948,7 +1948,7 @@ static MACHINE_CONFIG_START( namcos21, namcos21_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( driveyes, namcos21_state ) +static MACHINE_CONFIG_START( driveyes ) MCFG_CPU_ADD("maincpu", M68000,12288000) /* Master */ MCFG_CPU_PROGRAM_MAP(driveyes_master_map) MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", namcos21_state, screen_scanline, "screen", 0, 1) @@ -1999,7 +1999,7 @@ static MACHINE_CONFIG_START( driveyes, namcos21_state ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") MCFG_C140_ADD("c140", 8000000/374) - MCFG_C140_BANK_TYPE(C140_TYPE_SYSTEM21) + MCFG_C140_BANK_TYPE(SYSTEM21) MCFG_SOUND_ROUTE(0, "lspeaker", 0.50) MCFG_SOUND_ROUTE(1, "rspeaker", 0.50) @@ -2008,7 +2008,7 @@ static MACHINE_CONFIG_START( driveyes, namcos21_state ) MCFG_SOUND_ROUTE(1, "rspeaker", 0.30) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( winrun, namcos21_state ) +static MACHINE_CONFIG_START( winrun ) MCFG_CPU_ADD("maincpu", M68000,12288000) /* Master */ MCFG_CPU_PROGRAM_MAP(winrun_master_map) MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", namcos21_state, screen_scanline, "screen", 0, 1) @@ -2062,7 +2062,7 @@ static MACHINE_CONFIG_START( winrun, namcos21_state ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") MCFG_C140_ADD("c140", 8000000/374) - MCFG_C140_BANK_TYPE(C140_TYPE_SYSTEM21) + MCFG_C140_BANK_TYPE(SYSTEM21) MCFG_SOUND_ROUTE(0, "lspeaker", 0.50) MCFG_SOUND_ROUTE(1, "rspeaker", 0.50) diff --git a/src/mame/drivers/namcos22.cpp b/src/mame/drivers/namcos22.cpp index aae96ea6c37..87cc9311bad 100644 --- a/src/mame/drivers/namcos22.cpp +++ b/src/mame/drivers/namcos22.cpp @@ -3732,7 +3732,7 @@ void namcos22_state::machine_start() } // System 22 -static MACHINE_CONFIG_START( namcos22, namcos22_state ) +static MACHINE_CONFIG_START( namcos22 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68020,SS22_MASTER_CLOCK/2) /* 25 MHz? */ @@ -3798,7 +3798,7 @@ static MACHINE_CONFIG_DERIVED( cybrcomm, namcos22 ) MACHINE_CONFIG_END // Super System 22 -static MACHINE_CONFIG_START( namcos22s, namcos22_state ) +static MACHINE_CONFIG_START( namcos22s ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68EC020,SS22_MASTER_CLOCK/2) diff --git a/src/mame/drivers/namcos23.cpp b/src/mame/drivers/namcos23.cpp index 96f27404130..a8dbbbd5e61 100644 --- a/src/mame/drivers/namcos23.cpp +++ b/src/mame/drivers/namcos23.cpp @@ -3536,7 +3536,7 @@ static GFXDECODE_START( namcos23 ) GFXDECODE_END -static MACHINE_CONFIG_START( gorgon, namcos23_state ) +static MACHINE_CONFIG_START( gorgon ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", R4650BE, BUSCLOCK*4) @@ -3602,7 +3602,7 @@ static MACHINE_CONFIG_START( gorgon, namcos23_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( s23, namcos23_state ) +static MACHINE_CONFIG_START( s23 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", R4650BE, BUSCLOCK*4) @@ -3688,7 +3688,7 @@ static MACHINE_CONFIG_DERIVED( gmen, s23 ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( ss23, namcos23_state ) +static MACHINE_CONFIG_START( ss23 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", R4650BE, BUSCLOCK*5) diff --git a/src/mame/drivers/namcos86.cpp b/src/mame/drivers/namcos86.cpp index 23e7c0ab90a..8fc4bb8a0c5 100644 --- a/src/mame/drivers/namcos86.cpp +++ b/src/mame/drivers/namcos86.cpp @@ -1047,7 +1047,7 @@ GFXDECODE_END /*******************************************************************/ -static MACHINE_CONFIG_START( hopmappy, namcos86_state ) +static MACHINE_CONFIG_START( hopmappy ) /* basic machine hardware */ MCFG_CPU_ADD("cpu1", M6809, XTAL_49_152MHz/32) diff --git a/src/mame/drivers/nanos.cpp b/src/mame/drivers/nanos.cpp index 91f1754a7ce..674014ca34d 100644 --- a/src/mame/drivers/nanos.cpp +++ b/src/mame/drivers/nanos.cpp @@ -453,7 +453,7 @@ static GFXDECODE_START( nanos ) GFXDECODE_ENTRY( "chargen", 0x0000, nanos_charlayout, 0, 1 ) GFXDECODE_END -static MACHINE_CONFIG_START( nanos, nanos_state ) +static MACHINE_CONFIG_START( nanos ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80, XTAL_4MHz) MCFG_CPU_PROGRAM_MAP(nanos_mem) @@ -525,5 +525,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1985, nanos, 0, 0, nanos, nanos, driver_device, 0, "Ingenieurhochschule fur Seefahrt Warnemunde/Wustrow", "NANOS", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +COMP( 1985, nanos, 0, 0, nanos, nanos, nanos_state, 0, "Ingenieurhochschule fur Seefahrt Warnemunde/Wustrow", "NANOS", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) diff --git a/src/mame/drivers/naomi.cpp b/src/mame/drivers/naomi.cpp index ffce8aa370c..a6ec8b18b71 100644 --- a/src/mame/drivers/naomi.cpp +++ b/src/mame/drivers/naomi.cpp @@ -2675,7 +2675,7 @@ MACHINE_RESET_MEMBER(naomi_state,naomi) */ // TODO: merge with Dreamcast base machine - MACHINE_CONFIG_START( naomi_aw_base, dc_state ) + MACHINE_CONFIG_START( naomi_aw_base ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", SH4LE, CPU_CLOCK) // SH4!!! MCFG_SH4_MD0(1) @@ -2716,7 +2716,7 @@ MACHINE_RESET_MEMBER(naomi_state,naomi) MCFG_AICARTC_ADD("aicartc", XTAL_32_768kHz ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( naomi_base, naomi_state ) +static MACHINE_CONFIG_START( naomi_base ) MCFG_FRAGMENT_ADD( naomi_aw_base ) MCFG_EEPROM_SERIAL_93C46_ADD("main_eeprom") @@ -2786,13 +2786,13 @@ MACHINE_CONFIG_END * Naomi 2 GD-Rom */ -static MACHINE_CONFIG_START( naomi2_base, naomi2_state ) +static MACHINE_CONFIG_START( naomi2_base ) MCFG_POWERVR2_ADD("powervr2_slave", WRITE8(dc_state, pvr_irq)) // TODO: ELAN device MACHINE_CONFIG_END -static MACHINE_CONFIG_START( naomi2gd, naomi2_state ) +static MACHINE_CONFIG_START( naomi2gd ) MCFG_FRAGMENT_ADD( naomigd ) MCFG_FRAGMENT_ADD( naomi2_base ) @@ -2804,7 +2804,7 @@ MACHINE_CONFIG_END * Naomi 2, M1 sub-board */ -static MACHINE_CONFIG_START( naomi2m1, naomi2_state ) +static MACHINE_CONFIG_START( naomi2m1 ) MCFG_FRAGMENT_ADD( naomim1 ) MCFG_FRAGMENT_ADD( naomi2_base ) @@ -2816,7 +2816,7 @@ MACHINE_CONFIG_END * Naomi 2, M2/3 sub-board */ -static MACHINE_CONFIG_START( naomi2m2, naomi2_state ) +static MACHINE_CONFIG_START( naomi2m2 ) MCFG_FRAGMENT_ADD( naomim2 ) MCFG_FRAGMENT_ADD( naomi2_base ) @@ -2828,7 +2828,7 @@ MACHINE_CONFIG_END * Atomiswave */ -static MACHINE_CONFIG_START( aw_base, atomiswave_state ) +static MACHINE_CONFIG_START( aw_base ) MCFG_FRAGMENT_ADD( naomi_aw_base ) MCFG_CPU_MODIFY("maincpu") @@ -9877,21 +9877,21 @@ ROM_END /* Main board and game specific BIOS */ /* Naomi */ GAME( 1998, naomi, 0, naomi, naomi, naomi_state, naomi, ROT0, "Sega", "Naomi Bios", GAME_FLAGS|MACHINE_IS_BIOS_ROOT ) -/* game */ GAME( 1998, hod2bios, 0, naomi, naomi, driver_device, 0, ROT0, "Sega", "Naomi House of the Dead 2 Bios", GAME_FLAGS|MACHINE_IS_BIOS_ROOT ) -/* game */ GAME( 1999, f355dlx, 0, naomi, naomi, driver_device, 0, ROT0, "Sega", "Naomi Ferrari F355 Challenge (deluxe) Bios", GAME_FLAGS|MACHINE_IS_BIOS_ROOT ) -/* game */ GAME( 1999, f355bios, 0, naomi, naomi, driver_device, 0, ROT0, "Sega", "Naomi Ferrari F355 Challenge (twin/deluxe) Bios", GAME_FLAGS|MACHINE_IS_BIOS_ROOT ) -/* game */ GAME( 1999, airlbios, 0, naomi, naomi, driver_device, 0, ROT0, "Sega", "Naomi Airline Pilots (deluxe) Bios", GAME_FLAGS|MACHINE_IS_BIOS_ROOT ) -/* Naomi2*/ GAME( 2001, naomi2, 0, naomi, naomi, driver_device, 0, ROT0, "Sega", "Naomi 2 Bios", GAME_FLAGS|MACHINE_IS_BIOS_ROOT ) +/* game */ GAME( 1998, hod2bios, 0, naomi, naomi, naomi_state, 0, ROT0, "Sega", "Naomi House of the Dead 2 Bios", GAME_FLAGS|MACHINE_IS_BIOS_ROOT ) +/* game */ GAME( 1999, f355dlx, 0, naomi, naomi, naomi_state, 0, ROT0, "Sega", "Naomi Ferrari F355 Challenge (deluxe) Bios", GAME_FLAGS|MACHINE_IS_BIOS_ROOT ) +/* game */ GAME( 1999, f355bios, 0, naomi, naomi, naomi_state, 0, ROT0, "Sega", "Naomi Ferrari F355 Challenge (twin/deluxe) Bios", GAME_FLAGS|MACHINE_IS_BIOS_ROOT ) +/* game */ GAME( 1999, airlbios, 0, naomi, naomi, naomi_state, 0, ROT0, "Sega", "Naomi Airline Pilots (deluxe) Bios", GAME_FLAGS|MACHINE_IS_BIOS_ROOT ) +/* Naomi2*/ GAME( 2001, naomi2, 0, naomi, naomi, naomi_state, 0, ROT0, "Sega", "Naomi 2 Bios", GAME_FLAGS|MACHINE_IS_BIOS_ROOT ) /* GDROM */ GAME( 2001, naomigd, 0, naomi, naomi, naomi_state, naomi, ROT0, "Sega", "Naomi GD-ROM Bios", GAME_FLAGS|MACHINE_IS_BIOS_ROOT ) /* 834-xxxxx (Sega Naomi cart with game specific BIOS sets) */ /* 13636-01 */ GAME( 1998, hotd2, hod2bios, naomim2, hotd2, naomi_state, hotd2, ROT0, "Sega", "House of the Dead 2 (USA)", GAME_FLAGS ) /* specific BIOS "hod2bios" needed */ /* 13636 */ GAME( 1998, hotd2o, hotd2, naomim2, hotd2, naomi_state, hotd2, ROT0, "Sega", "House of the Dead 2", GAME_FLAGS ) /* specific BIOS "hod2bios" needed */ /* none */ GAME( 1998, hotd2p, hotd2, naomim2, hotd2, naomi_state, hotd2, ROT0, "Sega", "House of the Dead 2 (prototype)", GAME_FLAGS ) /* specific BIOS "hod2bios" needed */ -/* 13842 */ GAME( 1999, f355, f355dlx, naomim2, naomi, driver_device, 0, ROT0, "Sega", "Ferrari F355 Challenge (deluxe, no link)", GAME_FLAGS ) /* specific BIOS "f355dlx" needed */ -/* 13950 */ GAME( 1999, f355twin, f355bios, naomim2, naomi, driver_device, 0, ROT0, "Sega", "Ferrari F355 Challenge (twin/deluxe)", GAME_FLAGS ) /* specific BIOS "f355bios" needed */ -/* none */ GAME( 2001, f355twn2, f355bios, naomim2, naomi, driver_device, 0, ROT0, "Sega", "Ferrari F355 Challenge 2 - International Course Edition (twin/deluxe)", GAME_FLAGS ) /* specific BIOS "f355bios" needed */ -/* ????? */ GAME( 1999, alpiltdx, airlbios, naomim2, naomi, driver_device, 0, ROT0, "Sega", "Airline Pilots (deluxe) (Rev B)", GAME_FLAGS ) /* specific BIOS "airlbios" needed */ +/* 13842 */ GAME( 1999, f355, f355dlx, naomim2, naomi, naomi_state, 0, ROT0, "Sega", "Ferrari F355 Challenge (deluxe, no link)", GAME_FLAGS ) /* specific BIOS "f355dlx" needed */ +/* 13950 */ GAME( 1999, f355twin, f355bios, naomim2, naomi, naomi_state, 0, ROT0, "Sega", "Ferrari F355 Challenge (twin/deluxe)", GAME_FLAGS ) /* specific BIOS "f355bios" needed */ +/* none */ GAME( 2001, f355twn2, f355bios, naomim2, naomi, naomi_state, 0, ROT0, "Sega", "Ferrari F355 Challenge 2 - International Course Edition (twin/deluxe)", GAME_FLAGS ) /* specific BIOS "f355bios" needed */ +/* ????? */ GAME( 1999, alpiltdx, airlbios, naomim2, naomi, naomi_state, 0, ROT0, "Sega", "Airline Pilots (deluxe) (Rev B)", GAME_FLAGS ) /* specific BIOS "airlbios" needed */ /* 840-xxxxx (Sega Naomi cart games)*/ /* 0001 */ GAME( 1998, dybbnao, naomi, naomim2, dybbnao, naomi_state, naomi, ROT0, "Sega", "Dynamite Baseball NAOMI (Japan)", GAME_FLAGS ) diff --git a/src/mame/drivers/nascom1.cpp b/src/mame/drivers/nascom1.cpp index 2209cb369fe..b97516ab3b7 100644 --- a/src/mame/drivers/nascom1.cpp +++ b/src/mame/drivers/nascom1.cpp @@ -644,7 +644,7 @@ INPUT_PORTS_END // MACHINE DRIVERS //************************************************************************** -static MACHINE_CONFIG_START( nascom1, nascom1_state ) +static MACHINE_CONFIG_START( nascom1 ) // main cpu MCFG_CPU_ADD("maincpu", Z80, XTAL_16MHz / 8) MCFG_CPU_PROGRAM_MAP(nascom1_mem) @@ -684,7 +684,7 @@ static MACHINE_CONFIG_START( nascom1, nascom1_state ) MCFG_SNAPSHOT_ADD("snapshot", nascom_state, nascom1, "nas", 0.5) MACHINE_CONFIG_END -static MACHINE_CONFIG_DERIVED_CLASS( nascom2, nascom1, nascom2_state ) +static MACHINE_CONFIG_DERIVED( nascom2, nascom1 ) MCFG_CPU_REPLACE("maincpu", Z80, XTAL_16MHz / 4) MCFG_CPU_PROGRAM_MAP(nascom2_mem) MCFG_CPU_IO_MAP(nascom2_io) @@ -718,7 +718,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( nascom2, nascom1, nascom2_state ) MCFG_SOFTWARE_LIST_ADD("floppy_list", "nascom_flop") MACHINE_CONFIG_END -static MACHINE_CONFIG_DERIVED_CLASS( nascom2c, nascom2, nascom2_state ) +static MACHINE_CONFIG_DERIVED( nascom2c, nascom2 ) MCFG_CPU_MODIFY("maincpu") MCFG_CPU_PROGRAM_MAP(nascom2c_mem) @@ -777,7 +777,7 @@ ROM_END // GAME DRIVERS //************************************************************************** -// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1977, nascom1, 0, 0, nascom1, nascom1, nascom_state, nascom, "Nascom Microcomputers", "Nascom 1", MACHINE_NO_SOUND_HW ) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 1977, nascom1, 0, 0, nascom1, nascom1, nascom_state, nascom, "Nascom Microcomputers", "Nascom 1", MACHINE_NO_SOUND_HW ) COMP( 1979, nascom2, 0, 0, nascom2, nascom2, nascom2_state, nascom2, "Nascom Microcomputers", "Nascom 2", MACHINE_NO_SOUND_HW ) COMP( 1980, nascom2c, nascom2, 0, nascom2c, nascom2c, nascom2_state, nascom2c, "Nascom Microcomputers", "Nascom 2 (CP/M)", MACHINE_NO_SOUND_HW ) diff --git a/src/mame/drivers/naughtyb.cpp b/src/mame/drivers/naughtyb.cpp index 0d60bc8e915..7f2145e5f66 100644 --- a/src/mame/drivers/naughtyb.cpp +++ b/src/mame/drivers/naughtyb.cpp @@ -406,7 +406,7 @@ static GFXDECODE_START( naughtyb ) GFXDECODE_END -static MACHINE_CONFIG_START( naughtyb, naughtyb_state ) +static MACHINE_CONFIG_START( naughtyb ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, CLOCK_XTAL / 4) /* 12 MHz clock, divided by 4. CPU is a Z80A */ @@ -443,7 +443,7 @@ MACHINE_CONFIG_END /* Exactly the same but for certain address writes */ -static MACHINE_CONFIG_START( popflame, naughtyb_state ) +static MACHINE_CONFIG_START( popflame ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, CLOCK_XTAL / 4) /* 12 MHz clock, divided by 4. CPU is a Z80A */ @@ -871,15 +871,15 @@ DRIVER_INIT_MEMBER(naughtyb_state,trvmstr) } -GAME( 1982, naughtyb, 0, naughtyb, naughtyb, driver_device, 0, ROT90, "Jaleco", "Naughty Boy", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, naughtyba,naughtyb, naughtyb, naughtyb, driver_device, 0, ROT90, "bootleg", "Naughty Boy (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, naughtybc,naughtyb, naughtyb, naughtyb, driver_device, 0, ROT90, "Jaleco (Cinematronics license)", "Naughty Boy (Cinematronics)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, naughtyb, 0, naughtyb, naughtyb, naughtyb_state, 0, ROT90, "Jaleco", "Naughty Boy", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, naughtyba,naughtyb, naughtyb, naughtyb, naughtyb_state, 0, ROT90, "bootleg", "Naughty Boy (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, naughtybc,naughtyb, naughtyb, naughtyb, naughtyb_state, 0, ROT90, "Jaleco (Cinematronics license)", "Naughty Boy (Cinematronics)", MACHINE_SUPPORTS_SAVE ) GAME( 1982, popflame, 0, popflame, naughtyb, naughtyb_state, popflame, ROT90, "Jaleco", "Pop Flamer (protected)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, popflamea,popflame, popflame, naughtyb, driver_device, 0, ROT90, "Jaleco", "Pop Flamer (not protected)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, popflameb,popflame, popflame, naughtyb, driver_device, 0, ROT90, "Jaleco", "Pop Flamer (hack?)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, popflamen,popflame, naughtyb, naughtyb, driver_device, 0, ROT90, "Jaleco", "Pop Flamer (bootleg on Naughty Boy PCB)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, trvmstr, 0, naughtyb, trvmstr, naughtyb_state, trvmstr, ROT90, "Enerdyne Technologies Inc.", "Trivia Master (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, trvmstra, trvmstr, naughtyb, trvmstr, naughtyb_state, trvmstr, ROT90, "Enerdyne Technologies Inc.", "Trivia Master (set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, trvmstrb, trvmstr, naughtyb, trvmstr, naughtyb_state, trvmstr, ROT90, "Enerdyne Technologies Inc.", "Trivia Master (set 3)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, trvmstrc, trvmstr, naughtyb, trvmstr, naughtyb_state, trvmstr, ROT90, "Enerdyne Technologies Inc.", "Trivia Master (set 4)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, trvgns, trvmstr, naughtyb, trvmstr, naughtyb_state, trvmstr, ROT90, "bootleg", "Trivia Genius", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, popflamea,popflame, popflame, naughtyb, naughtyb_state, 0, ROT90, "Jaleco", "Pop Flamer (not protected)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, popflameb,popflame, popflame, naughtyb, naughtyb_state, 0, ROT90, "Jaleco", "Pop Flamer (hack?)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, popflamen,popflame, naughtyb, naughtyb, naughtyb_state, 0, ROT90, "Jaleco", "Pop Flamer (bootleg on Naughty Boy PCB)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, trvmstr, 0, naughtyb, trvmstr, naughtyb_state, trvmstr, ROT90, "Enerdyne Technologies Inc.", "Trivia Master (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, trvmstra, trvmstr, naughtyb, trvmstr, naughtyb_state, trvmstr, ROT90, "Enerdyne Technologies Inc.", "Trivia Master (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, trvmstrb, trvmstr, naughtyb, trvmstr, naughtyb_state, trvmstr, ROT90, "Enerdyne Technologies Inc.", "Trivia Master (set 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, trvmstrc, trvmstr, naughtyb, trvmstr, naughtyb_state, trvmstr, ROT90, "Enerdyne Technologies Inc.", "Trivia Master (set 4)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, trvgns, trvmstr, naughtyb, trvmstr, naughtyb_state, trvmstr, ROT90, "bootleg", "Trivia Genius", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/nbmj8688.cpp b/src/mame/drivers/nbmj8688.cpp index 78d7ce180de..46b3a3736ed 100644 --- a/src/mame/drivers/nbmj8688.cpp +++ b/src/mame/drivers/nbmj8688.cpp @@ -2442,7 +2442,7 @@ READ8_MEMBER(nbmj8688_state::dipsw2_r) return m_nb1413m3->dipsw2_r(space,offset); } -static MACHINE_CONFIG_START( NBMJDRV_4096, nbmj8688_state ) +static MACHINE_CONFIG_START( NBMJDRV_4096 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 5000000) /* 5.00 MHz */ @@ -2596,7 +2596,7 @@ static MACHINE_CONFIG_DERIVED( mbmj_p16bit, NBMJDRV_65536 ) MCFG_VIDEO_START_OVERRIDE(nbmj8688_state,mbmj8688_pure_16bit) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( mbmj_p16bit_LCD, nbmj8688_state ) +static MACHINE_CONFIG_START( mbmj_p16bit_LCD ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 5000000) /* 5.00 MHz */ @@ -3777,53 +3777,53 @@ ROM_END /* 8-bit palette */ -GAME( 1986, crystalg, 0, crystalg, crystalg, driver_device, 0, ROT0, "Nichibutsu", "Crystal Gal (Japan 860512)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, crystal2, 0, crystal2, crystal2, driver_device, 0, ROT0, "Nichibutsu", "Crystal Gal 2 (Japan 860620)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, nightlov, 0, nightlov, nightlov, driver_device, 0, ROT0, "Central Denshi", "Night Love (Japan 860705)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) -GAME( 1986, apparel, 0, apparel, apparel, driver_device, 0, ROT0, "Central Denshi", "Apparel Night (Japan 860929)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, crystalg, 0, crystalg, crystalg, nbmj8688_state, 0, ROT0, "Nichibutsu", "Crystal Gal (Japan 860512)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, crystal2, 0, crystal2, crystal2, nbmj8688_state, 0, ROT0, "Nichibutsu", "Crystal Gal 2 (Japan 860620)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, nightlov, 0, nightlov, nightlov, nbmj8688_state, 0, ROT0, "Central Denshi", "Night Love (Japan 860705)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +GAME( 1986, apparel, 0, apparel, apparel, nbmj8688_state, 0, ROT0, "Central Denshi", "Apparel Night (Japan 860929)", MACHINE_SUPPORTS_SAVE ) /* hybrid 12-bit palette */ -GAME( 1986, citylove, 0, citylove, citylove, driver_device, 0, ROT0, "Nichibutsu", "City Love (Japan 860908)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, mcitylov, citylove, mcitylov, mcitylov, driver_device, 0, ROT0, "Nichibutsu", "City Love [BET] (Japan 860904)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, secolove, 0, secolove, secolove, driver_device, 0, ROT0, "Nichibutsu", "Second Love (Japan 861201)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, barline, 0, barline, barline, driver_device, 0, ROT180, "Nichibutsu", "Barline (Japan?)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1986, citylove, 0, citylove, citylove, nbmj8688_state, 0, ROT0, "Nichibutsu", "City Love (Japan 860908)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, mcitylov, citylove, mcitylov, mcitylov, nbmj8688_state, 0, ROT0, "Nichibutsu", "City Love [BET] (Japan 860904)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, secolove, 0, secolove, secolove, nbmj8688_state, 0, ROT0, "Nichibutsu", "Second Love (Japan 861201)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, barline, 0, barline, barline, nbmj8688_state, 0, ROT180, "Nichibutsu", "Barline (Japan?)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) /* hybrid 16-bit palette */ -GAME( 1987, seiha, 0, seiha, seiha, driver_device, 0, ROT0, "Nichibutsu", "Seiha (Japan 870725)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, seiham, seiha, seiham, seiham, driver_device, 0, ROT0, "Nichibutsu", "Seiha [BET] (Japan 870723)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, mjgaiden, 0, mjgaiden, ojousan, driver_device, 0, ROT0, "Central Denshi", "Mahjong Gaiden [BET] (Japan 870803)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, iemoto, 0, iemoto, iemoto, driver_device, 0, ROT0, "Nichibutsu", "Iemoto (Japan 871020)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, iemotom, iemoto, iemotom, iemotom, driver_device, 0, ROT0, "Nichibutsu", "Iemoto [BET] (Japan 871118)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, ryuuha, iemoto, ryuuha, ryuuha, driver_device, 0, ROT0, "Central Denshi", "Ryuuha [BET] (Japan 871027)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, ojousan, 0, ojousan, ojousan, driver_device, 0, ROT0, "Nichibutsu", "Ojousan (Japan 871204)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, ojousanm, ojousan, ojousanm, ojousanm, driver_device, 0, ROT0, "Nichibutsu", "Ojousan [BET] (Japan 870108)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, swinggal, 0, swinggal, ryuuha, driver_device, 0, ROT0, "Digital Denshi", "Swing Gal [BET] (Japan 871221)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, korinai, 0, korinai, korinai, driver_device, 0, ROT0, "Nichibutsu", "Mahjong-zukino Korinai Menmen (Japan 880425)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, korinaim, korinai, korinaim, korinaim, driver_device, 0, ROT0, "Nichibutsu", "Mahjong-zukino Korinai Menmen [BET] (Japan 880920)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, seiha, 0, seiha, seiha, nbmj8688_state, 0, ROT0, "Nichibutsu", "Seiha (Japan 870725)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, seiham, seiha, seiham, seiham, nbmj8688_state, 0, ROT0, "Nichibutsu", "Seiha [BET] (Japan 870723)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, mjgaiden, 0, mjgaiden, ojousan, nbmj8688_state, 0, ROT0, "Central Denshi", "Mahjong Gaiden [BET] (Japan 870803)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, iemoto, 0, iemoto, iemoto, nbmj8688_state, 0, ROT0, "Nichibutsu", "Iemoto (Japan 871020)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, iemotom, iemoto, iemotom, iemotom, nbmj8688_state, 0, ROT0, "Nichibutsu", "Iemoto [BET] (Japan 871118)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, ryuuha, iemoto, ryuuha, ryuuha, nbmj8688_state, 0, ROT0, "Central Denshi", "Ryuuha [BET] (Japan 871027)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, ojousan, 0, ojousan, ojousan, nbmj8688_state, 0, ROT0, "Nichibutsu", "Ojousan (Japan 871204)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, ojousanm, ojousan, ojousanm, ojousanm, nbmj8688_state, 0, ROT0, "Nichibutsu", "Ojousan [BET] (Japan 870108)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, swinggal, 0, swinggal, ryuuha, nbmj8688_state, 0, ROT0, "Digital Denshi", "Swing Gal [BET] (Japan 871221)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, korinai, 0, korinai, korinai, nbmj8688_state, 0, ROT0, "Nichibutsu", "Mahjong-zukino Korinai Menmen (Japan 880425)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, korinaim, korinai, korinaim, korinaim, nbmj8688_state, 0, ROT0, "Nichibutsu", "Mahjong-zukino Korinai Menmen [BET] (Japan 880920)", MACHINE_SUPPORTS_SAVE ) /* pure 16-bit palette (+ LCD in some) */ -GAME( 1987, housemnq, 0, housemnq, housemnq, driver_device, 0, ROT0, "Nichibutsu", "House Mannequin (Japan 870217)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, housemn2, 0, housemn2, housemn2, driver_device, 0, ROT0, "Nichibutsu", "House Mannequin Roppongi Live hen (Japan 870418)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, livegal, 0, livegal, livegal, driver_device, 0, ROT0, "Central Denshi", "Live Gal [BET] (Japan 870530)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, bijokkoy, 0, bijokkoy, bijokkoy, driver_device, 0, ROT0, "Nichibutsu", "Bijokko Yume Monogatari (Japan 870925)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, bijokkog, 0, bijokkog, bijokkog, driver_device, 0, ROT0, "Nichibutsu", "Bijokko Gakuen (Japan 880116)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, orangec, 0, orangec, orangec, driver_device, 0, ROT0, "Daiichi Denshi", "Orange Club - Maruhi Kagai Jugyou (Japan 880213)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, orangeci, orangec, orangeci, orangeci, driver_device, 0, ROT0, "Daiichi Denshi", "Orange Club - Maru-hi Ippatsu Kaihou [BET] (Japan 880221)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, vipclub, orangec, vipclub, vipclub, driver_device, 0, ROT0, "Daiichi Denshi", "Vip Club - Maru-hi Ippatsu Kaihou [BET] (Japan 880310)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, housemnq, 0, housemnq, housemnq, nbmj8688_state, 0, ROT0, "Nichibutsu", "House Mannequin (Japan 870217)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, housemn2, 0, housemn2, housemn2, nbmj8688_state, 0, ROT0, "Nichibutsu", "House Mannequin Roppongi Live hen (Japan 870418)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, livegal, 0, livegal, livegal, nbmj8688_state, 0, ROT0, "Central Denshi", "Live Gal [BET] (Japan 870530)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, bijokkoy, 0, bijokkoy, bijokkoy, nbmj8688_state, 0, ROT0, "Nichibutsu", "Bijokko Yume Monogatari (Japan 870925)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, bijokkog, 0, bijokkog, bijokkog, nbmj8688_state, 0, ROT0, "Nichibutsu", "Bijokko Gakuen (Japan 880116)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, orangec, 0, orangec, orangec, nbmj8688_state, 0, ROT0, "Daiichi Denshi", "Orange Club - Maruhi Kagai Jugyou (Japan 880213)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, orangeci, orangec, orangeci, orangeci, nbmj8688_state, 0, ROT0, "Daiichi Denshi", "Orange Club - Maru-hi Ippatsu Kaihou [BET] (Japan 880221)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, vipclub, orangec, vipclub, vipclub, nbmj8688_state, 0, ROT0, "Daiichi Denshi", "Vip Club - Maru-hi Ippatsu Kaihou [BET] (Japan 880310)", MACHINE_SUPPORTS_SAVE ) /* pure 12-bit palette */ -GAME( 1988, kaguya, 0, kaguya, kaguya, driver_device, 0, ROT0, "Miki Syouji", "Mahjong Kaguyahime [BET] (Japan 880521)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, kaguya2, 0, kaguya2, kaguya, nbmj8688_state, kaguya2, ROT0, "Miki Syouji", "Mahjong Kaguyahime Sono2 [BET] (Japan 890829)", MACHINE_SUPPORTS_SAVE ) -GAME( 2001, kaguya2f, kaguya2, kaguya2, kaguya, nbmj8688_state, kaguya2, ROT0, "Miki Syouji", "Mahjong Kaguyahime Sono2 Fukkokuban [BET] (Japan 010808)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, kanatuen, 0, kanatuen, kanatuen, nbmj8688_state, kanatuen, ROT0, "Panac", "Kanatsuen no Onna [BET] (Japan 880905)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, kyuhito, kanatuen, kyuhito, kyuhito, nbmj8688_state, kyuhito, ROT0, "Roller Tron", "Kyukyoku no Hito [BET] (Japan 880824)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, idhimitu, 0, idhimitu, idhimitu, nbmj8688_state, idhimitu, ROT0, "Digital Soft", "Idol no Himitsu [BET] (Japan 890304)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, kaguya, 0, kaguya, kaguya, nbmj8688_state, 0, ROT0, "Miki Syouji", "Mahjong Kaguyahime [BET] (Japan 880521)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, kaguya2, 0, kaguya2, kaguya, nbmj8688_state, kaguya2, ROT0, "Miki Syouji", "Mahjong Kaguyahime Sono2 [BET] (Japan 890829)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, kaguya2f, kaguya2, kaguya2, kaguya, nbmj8688_state, kaguya2, ROT0, "Miki Syouji", "Mahjong Kaguyahime Sono2 Fukkokuban [BET] (Japan 010808)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, kanatuen, 0, kanatuen, kanatuen, nbmj8688_state, kanatuen, ROT0, "Panac", "Kanatsuen no Onna [BET] (Japan 880905)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, kyuhito, kanatuen, kyuhito, kyuhito, nbmj8688_state, kyuhito, ROT0, "Roller Tron", "Kyukyoku no Hito [BET] (Japan 880824)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, idhimitu, 0, idhimitu, idhimitu, nbmj8688_state, idhimitu, ROT0, "Digital Soft", "Idol no Himitsu [BET] (Japan 890304)", MACHINE_SUPPORTS_SAVE ) /* pure 12-bit palette + YM3812 instead of AY-3-8910 */ -GAME( 1988, mjsikaku, 0, mjsikaku, mjsikaku, driver_device, 0, ROT0, "Nichibutsu", "Mahjong Shikaku (Japan 880908)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, mjsikakb, mjsikaku, mjsikaku, mjsikaku, driver_device, 0, ROT0, "Nichibutsu", "Mahjong Shikaku (Japan 880722)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, mjsikakc, mjsikaku, mjsikaku, mjsikaku, driver_device, 0, ROT0, "Nichibutsu", "Mahjong Shikaku (Japan 880806)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, mjsikakd, mjsikaku, mjsikaku, mjsikaku, driver_device, 0, ROT0, "Nichibutsu", "Mahjong Shikaku (Japan 880802)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, mmsikaku, mjsikaku, mmsikaku, mmsikaku, driver_device, 0, ROT0, "Nichibutsu", "Mahjong Shikaku [BET] (Japan 880929)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, otonano, 0, otonano, otonano, driver_device, 0, ROT0, "Apple", "Otona no Mahjong (Japan 880628)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, mjcamera, 0, mjcamera, mjcamera, nbmj8688_state, mjcamera, ROT0, "Miki Syouji", "Mahjong Camera Kozou (set 1) (Japan 881109)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, mjsikaku, 0, mjsikaku, mjsikaku, nbmj8688_state, 0, ROT0, "Nichibutsu", "Mahjong Shikaku (Japan 880908)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, mjsikakb, mjsikaku, mjsikaku, mjsikaku, nbmj8688_state, 0, ROT0, "Nichibutsu", "Mahjong Shikaku (Japan 880722)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, mjsikakc, mjsikaku, mjsikaku, mjsikaku, nbmj8688_state, 0, ROT0, "Nichibutsu", "Mahjong Shikaku (Japan 880806)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, mjsikakd, mjsikaku, mjsikaku, mjsikaku, nbmj8688_state, 0, ROT0, "Nichibutsu", "Mahjong Shikaku (Japan 880802)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, mmsikaku, mjsikaku, mmsikaku, mmsikaku, nbmj8688_state, 0, ROT0, "Nichibutsu", "Mahjong Shikaku [BET] (Japan 880929)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, otonano, 0, otonano, otonano, nbmj8688_state, 0, ROT0, "Apple", "Otona no Mahjong (Japan 880628)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, mjcamera, 0, mjcamera, mjcamera, nbmj8688_state, mjcamera, ROT0, "Miki Syouji", "Mahjong Camera Kozou (set 1) (Japan 881109)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/nbmj8891.cpp b/src/mame/drivers/nbmj8891.cpp index 7860e8a66b9..504be359ba7 100644 --- a/src/mame/drivers/nbmj8891.cpp +++ b/src/mame/drivers/nbmj8891.cpp @@ -2198,7 +2198,7 @@ static INPUT_PORTS_START( taiwanmb ) INPUT_PORTS_END -static MACHINE_CONFIG_START( gionbana, nbmj8891_state ) +static MACHINE_CONFIG_START( gionbana ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 20000000/4) /* 5.00 MHz ? */ @@ -3537,38 +3537,38 @@ ROM_START( hnageman ) ROM_END -// YEAR, NAME, PARENT, MACHINE, INPUT, INIT, MONITOR,COMPANY,FULLNAME,FLAGS) -GAME( 1988, msjiken, 0, msjiken, msjiken, driver_device, 0, ROT270, "Nichibutsu", "Mahjong Satsujin Jiken (Japan 881017)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, hanamomo, 0, hanamomo, hanamomo, driver_device, 0, ROT0, "Nichibutsu", "Mahjong Hana no Momoko gumi (Japan 881201)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, hanamomb, hanamomo, hanamomo, hanamomo, driver_device, 0, ROT0, "Nichibutsu", "Mahjong Hana no Momoko gumi (Japan 881125)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, telmahjn, 0, telmahjn, msjiken, nbmj8891_state, telmahjn, ROT270, "Nichibutsu", "Telephone Mahjong (Japan 890111)", MACHINE_SUPPORTS_SAVE ) +// YEAR, NAME, PARENT, MACHINE, INPUT, STATE, INIT, MONITOR,COMPANY,FULLNAME,FLAGS) +GAME( 1988, msjiken, 0, msjiken, msjiken, nbmj8891_state, 0, ROT270, "Nichibutsu", "Mahjong Satsujin Jiken (Japan 881017)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, hanamomo, 0, hanamomo, hanamomo, nbmj8891_state, 0, ROT0, "Nichibutsu", "Mahjong Hana no Momoko gumi (Japan 881201)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, hanamomb, hanamomo, hanamomo, hanamomo, nbmj8891_state, 0, ROT0, "Nichibutsu", "Mahjong Hana no Momoko gumi (Japan 881125)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, telmahjn, 0, telmahjn, msjiken, nbmj8891_state, telmahjn, ROT270, "Nichibutsu", "Telephone Mahjong (Japan 890111)", MACHINE_SUPPORTS_SAVE ) GAME( 1989, gionbana, 0, gionbana, gionbana, nbmj8891_state, gionbana, ROT0, "Nichibutsu", "Gionbana (Japan 890120)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, mgion, 0, mgion, mgion, driver_device, 0, ROT0, "Nichibutsu", "Gionbana [BET] (Japan 890207)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, mgion, 0, mgion, mgion, nbmj8891_state, 0, ROT0, "Nichibutsu", "Gionbana [BET] (Japan 890207)", MACHINE_SUPPORTS_SAVE ) GAME( 1989, omotesnd, 0, omotesnd, omotesnd, nbmj8891_state, omotesnd, ROT0, "Anime Tec", "Omotesandou (Japan 890215)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, abunai, 0, abunai, abunai, driver_device, 0, ROT0, "Green Soft", "Abunai Houkago - Mou Matenai (Japan 890325)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, mjfocus, 0, mjfocus, mjfocus, nbmj8891_state, mjfocus, ROT0, "Nichibutsu", "Mahjong Focus (Japan 890313)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, abunai, 0, abunai, abunai, nbmj8891_state, 0, ROT0, "Green Soft", "Abunai Houkago - Mou Matenai (Japan 890325)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, mjfocus, 0, mjfocus, mjfocus, nbmj8891_state, mjfocus, ROT0, "Nichibutsu", "Mahjong Focus (Japan 890313)", MACHINE_SUPPORTS_SAVE ) GAME( 1989, mjfocusm, mjfocus, mjfocusm, mjfocusm, nbmj8891_state, mjfocusm, ROT0, "Nichibutsu", "Mahjong Focus [BET] (Japan 890510)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, peepshow, mjfocus, mjfocus, mjfocus, nbmj8891_state, mjfocus, ROT0, "AC", "Nozokimeguri Mahjong Peep Show (Japan 890404)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, mjcamerb, 0, mjcamerb, mjcamerb, driver_device, 0, ROT0, "Miki Syouji", "Mahjong Camera Kozou (set 2) (Japan 881109)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, mmcamera, mjcamerb, mmcamera, mmcamera, driver_device, 0, ROT0, "Miki Syouji", "Mahjong Camera Kozou [BET] (Japan 890509)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, scandal, 0, scandal, scandal, nbmj8891_state, scandal, ROT0, "Nichibutsu", "Scandal Mahjong (Japan 890213)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, scandalm, scandal, scandalm, scandalm, driver_device, 0, ROT0, "Nichibutsu", "Scandal Mahjong [BET] (Japan 890217)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, peepshow, mjfocus, mjfocus, mjfocus, nbmj8891_state, mjfocus, ROT0, "AC", "Nozokimeguri Mahjong Peep Show (Japan 890404)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, mjcamerb, 0, mjcamerb, mjcamerb, nbmj8891_state, 0, ROT0, "Miki Syouji", "Mahjong Camera Kozou (set 2) (Japan 881109)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, mmcamera, mjcamerb, mmcamera, mmcamera, nbmj8891_state, 0, ROT0, "Miki Syouji", "Mahjong Camera Kozou [BET] (Japan 890509)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, scandal, 0, scandal, scandal, nbmj8891_state, scandal, ROT0, "Nichibutsu", "Scandal Mahjong (Japan 890213)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, scandalm, scandal, scandalm, scandalm, nbmj8891_state, 0, ROT0, "Nichibutsu", "Scandal Mahjong [BET] (Japan 890217)", MACHINE_SUPPORTS_SAVE ) GAME( 1989, mgmen89, 0, mgmen89, mgmen89, nbmj8891_state, mgmen89, ROT0, "Nichibutsu", "Mahjong G-MEN'89 (Japan 890425)", MACHINE_SUPPORTS_SAVE ) GAME( 1989, mjnanpas, 0, mjnanpas, mjnanpas, nbmj8891_state, mjnanpas, ROT0, "Brooks", "Mahjong Nanpa Story (Japan 890713)", MACHINE_SUPPORTS_SAVE ) GAME( 1989, mjnanpaa, mjnanpas, mjnanpas, mjnanpaa, nbmj8891_state, mjnanpas, ROT0, "Brooks", "Mahjong Nanpa Story (Japan 890712)", MACHINE_SUPPORTS_SAVE ) GAME( 1989, mjnanpau, mjnanpas, mjnanpas, mjnanpas, nbmj8891_state, mjnanpas, ROT0, "Brooks", "Mahjong Nanpa Story (Ura) (Japan 890805)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, bananadr, 0, bananadr, bananadr, driver_device, 0, ROT0, "Digital Soft", "Mahjong Banana Dream [BET] (Japan 891124)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, mladyhtr, 0, mladyhtr, mladyhtr, driver_device, 0, ROT0, "Nichibutsu", "Mahjong The Lady Hunter (Japan 900509)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, chinmoku, 0, chinmoku, chinmoku, driver_device, 0, ROT0, "Nichibutsu", "Mahjong Chinmoku no Hentai (Japan 900511)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, maiko, 0, maiko, maiko, driver_device, 0, ROT0, "Nichibutsu", "Maikobana (Japan 900802)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, mmaiko, 0, mmaiko, mmaiko, driver_device, 0, ROT0, "Nichibutsu", "Maikobana [BET] (Japan 900911)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, hnxmasev, 0, hnxmasev, maiko, driver_device, 0, ROT180, "Nichibutsu / AV Japan", "AV Hanafuda Hana no Christmas Eve (Japan 901204)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) -GAME( 1990, hnageman, 0, hnageman, maiko, driver_device, 0, ROT180, "Nichibutsu / AV Japan", "AV Hanafuda Hana no Ageman (Japan 900716)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) -GAME( 1990, club90s, 0, club90s, club90s, driver_device, 0, ROT0, "Nichibutsu", "Mahjong CLUB 90's (set 1) (Japan 900919)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, club90sa, club90s, club90s, club90s, driver_device, 0, ROT0, "Nichibutsu", "Mahjong CLUB 90's (set 2) (Japan 900919)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, lovehous, club90s, lovehous, lovehous, driver_device, 0, ROT0, "Nichibutsu", "Mahjong Love House [BET] (Japan 901024)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, hanaoji, 0, hanaoji, hanaoji, driver_device, 0, ROT0, "Nichibutsu", "Hana to Ojisan [BET] (ver 1.01, 1991/12/09)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, hanaojia, hanaoji, hanaoji, hanaoji, driver_device, 0, ROT0, "Nichibutsu", "Hana to Ojisan [BET] (ver 1.00, 1991/08/23)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, taiwanmb, 0, taiwanmb, taiwanmb, driver_device, 0, ROT0, "Miki Syouji", "Taiwan Mahjong [BET] (Japan 881208)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, pairsnb, 0, pairsnb, pairsnb, nbmj8891_state, pairsnb, ROT0, "Nichibutsu", "Pairs (Nichibutsu) (Japan 890822)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, pairsten, pairsnb, pairsten, pairsnb, nbmj8891_state, pairsten, ROT0, "System Ten", "Pairs (System Ten) (Japan 890826)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, bananadr, 0, bananadr, bananadr, nbmj8891_state, 0, ROT0, "Digital Soft", "Mahjong Banana Dream [BET] (Japan 891124)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, mladyhtr, 0, mladyhtr, mladyhtr, nbmj8891_state, 0, ROT0, "Nichibutsu", "Mahjong The Lady Hunter (Japan 900509)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, chinmoku, 0, chinmoku, chinmoku, nbmj8891_state, 0, ROT0, "Nichibutsu", "Mahjong Chinmoku no Hentai (Japan 900511)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, maiko, 0, maiko, maiko, nbmj8891_state, 0, ROT0, "Nichibutsu", "Maikobana (Japan 900802)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, mmaiko, 0, mmaiko, mmaiko, nbmj8891_state, 0, ROT0, "Nichibutsu", "Maikobana [BET] (Japan 900911)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, hnxmasev, 0, hnxmasev, maiko, nbmj8891_state, 0, ROT180, "Nichibutsu / AV Japan", "AV Hanafuda Hana no Christmas Eve (Japan 901204)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +GAME( 1990, hnageman, 0, hnageman, maiko, nbmj8891_state, 0, ROT180, "Nichibutsu / AV Japan", "AV Hanafuda Hana no Ageman (Japan 900716)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +GAME( 1990, club90s, 0, club90s, club90s, nbmj8891_state, 0, ROT0, "Nichibutsu", "Mahjong CLUB 90's (set 1) (Japan 900919)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, club90sa, club90s, club90s, club90s, nbmj8891_state, 0, ROT0, "Nichibutsu", "Mahjong CLUB 90's (set 2) (Japan 900919)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, lovehous, club90s, lovehous, lovehous, nbmj8891_state, 0, ROT0, "Nichibutsu", "Mahjong Love House [BET] (Japan 901024)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, hanaoji, 0, hanaoji, hanaoji, nbmj8891_state, 0, ROT0, "Nichibutsu", "Hana to Ojisan [BET] (ver 1.01, 1991/12/09)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, hanaojia, hanaoji, hanaoji, hanaoji, nbmj8891_state, 0, ROT0, "Nichibutsu", "Hana to Ojisan [BET] (ver 1.00, 1991/08/23)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, taiwanmb, 0, taiwanmb, taiwanmb, nbmj8891_state, 0, ROT0, "Miki Syouji", "Taiwan Mahjong [BET] (Japan 881208)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, pairsnb, 0, pairsnb, pairsnb, nbmj8891_state, pairsnb, ROT0, "Nichibutsu", "Pairs (Nichibutsu) (Japan 890822)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, pairsten, pairsnb, pairsten, pairsnb, nbmj8891_state, pairsten, ROT0, "System Ten", "Pairs (System Ten) (Japan 890826)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/nbmj8900.cpp b/src/mame/drivers/nbmj8900.cpp index 2447bbe193e..ae72ebbf2fb 100644 --- a/src/mame/drivers/nbmj8900.cpp +++ b/src/mame/drivers/nbmj8900.cpp @@ -301,7 +301,7 @@ INPUT_PORTS_END -static MACHINE_CONFIG_START( ohpaipee, nbmj8900_state ) +static MACHINE_CONFIG_START( ohpaipee ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 20000000/4) /* 5.00 MHz ? */ diff --git a/src/mame/drivers/nbmj8991.cpp b/src/mame/drivers/nbmj8991.cpp index a4e60c609d5..7126341d3bf 100644 --- a/src/mame/drivers/nbmj8991.cpp +++ b/src/mame/drivers/nbmj8991.cpp @@ -1314,7 +1314,7 @@ static INPUT_PORTS_START( av2mj2rg ) INPUT_PORTS_END -static MACHINE_CONFIG_START( nbmjdrv1, nbmj8991_state ) // galkoku +static MACHINE_CONFIG_START( nbmjdrv1 ) // galkoku /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 25000000/5) /* 5.00 MHz ? */ @@ -1346,7 +1346,7 @@ static MACHINE_CONFIG_START( nbmjdrv1, nbmj8991_state ) // galkoku MACHINE_CONFIG_END -static MACHINE_CONFIG_START( nbmjdrv2, nbmj8991_state ) // pstadium +static MACHINE_CONFIG_START( nbmjdrv2 ) // pstadium /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 6000000/2) /* 3.00 MHz */ @@ -2104,22 +2104,22 @@ ROM_START( av2mj2rg ) ROM_END -GAME( 1989, galkoku, 0, galkoku, galkoku, driver_device, 0, ROT180, "Nichibutsu / T.R.Tec", "Mahjong Gal no Kokuhaku (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, hyouban, galkoku, hyouban, hyouban, driver_device, 0, ROT180, "Nichibutsu / T.R.Tec", "Mahjong Hyouban Musume [BET] (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, galkoku, 0, galkoku, galkoku, nbmj8991_state, 0, ROT180, "Nichibutsu / T.R.Tec", "Mahjong Gal no Kokuhaku (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, hyouban, galkoku, hyouban, hyouban, nbmj8991_state, 0, ROT180, "Nichibutsu / T.R.Tec", "Mahjong Hyouban Musume [BET] (Japan)", MACHINE_SUPPORTS_SAVE ) GAME( 1989, galkaika, 0, galkaika, galkaika, nbmj8991_state, galkaika, ROT180, "Nichibutsu / T.R.Tec", "Mahjong Gal no Kaika (Japan)", MACHINE_SUPPORTS_SAVE ) GAME( 1989, tokyogal, 0, tokyogal, tokyogal, nbmj8991_state, tokyogal, ROT180, "Nichibutsu", "Tokyo Gal Zukan (Japan)", MACHINE_SUPPORTS_SAVE ) GAME( 1989, tokimbsj, tokyogal, tokimbsj, tokimbsj, nbmj8991_state, tokimbsj, ROT180, "Nichibutsu", "Tokimeki Bishoujo [BET] (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, mcontest, 0, mcontest, mcontest, driver_device, 0, ROT180, "Nichibutsu", "Miss Mahjong Contest (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, uchuuai, 0, uchuuai, uchuuai, driver_device, 0, ROT180, "Nichibutsu", "Mahjong Uchuu yori Ai wo komete (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, triplew1, 0, triplew1, triplew1, driver_device, 0, ROT180, "Nichibutsu", "Mahjong Triple Wars (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, pstadium, 0, pstadium, pstadium, driver_device, 0, ROT180, "Nichibutsu", "Mahjong Panic Stadium (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, triplew2, 0, triplew2, triplew1, driver_device, 0, ROT180, "Nichibutsu", "Mahjong Triple Wars 2 (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, ntopstar, 0, ntopstar, ntopstar, driver_device, 0, ROT180, "Nichibutsu", "Mahjong Nerae! Top Star (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, mjlstory, 0, mjlstory, mjlstory, driver_device, 0, ROT180, "Nichibutsu", "Mahjong Jikken Love Story (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, ladymakr, mjlstory, mjlstory, finalbny, driver_device, 0, ROT180, "Nichibutsu", "Lady Maker [BET] (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, vanilla, 0, vanilla, vanilla, driver_device, 0, ROT180, "Nichibutsu", "Mahjong Vanilla Syndrome (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, mcontest, 0, mcontest, mcontest, nbmj8991_state, 0, ROT180, "Nichibutsu", "Miss Mahjong Contest (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, uchuuai, 0, uchuuai, uchuuai, nbmj8991_state, 0, ROT180, "Nichibutsu", "Mahjong Uchuu yori Ai wo komete (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, triplew1, 0, triplew1, triplew1, nbmj8991_state, 0, ROT180, "Nichibutsu", "Mahjong Triple Wars (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, pstadium, 0, pstadium, pstadium, nbmj8991_state, 0, ROT180, "Nichibutsu", "Mahjong Panic Stadium (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, triplew2, 0, triplew2, triplew1, nbmj8991_state, 0, ROT180, "Nichibutsu", "Mahjong Triple Wars 2 (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, ntopstar, 0, ntopstar, ntopstar, nbmj8991_state, 0, ROT180, "Nichibutsu", "Mahjong Nerae! Top Star (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, mjlstory, 0, mjlstory, mjlstory, nbmj8991_state, 0, ROT180, "Nichibutsu", "Mahjong Jikken Love Story (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, ladymakr, mjlstory, mjlstory, finalbny, nbmj8991_state, 0, ROT180, "Nichibutsu", "Lady Maker [BET] (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, vanilla, 0, vanilla, vanilla, nbmj8991_state, 0, ROT180, "Nichibutsu", "Mahjong Vanilla Syndrome (Japan)", MACHINE_SUPPORTS_SAVE ) GAME( 1991, finalbny, vanilla, finalbny, finalbny, nbmj8991_state, finalbny, ROT180, "Nichibutsu", "Mahjong Final Bunny [BET] (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, qmhayaku, 0, qmhayaku, qmhayaku, driver_device, 0, ROT180, "Nichibutsu", "Quiz-Mahjong Hayaku Yatteyo! (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, mjgottub, 0, mjgottub, mjgottub, driver_device, 0, ROT180, "Nichibutsu", "Medal Mahjong Gottsu ee-kanji [BET] (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, av2mj1bb, 0, av2mj1bb, av2mj1bb, driver_device, 0, ROT0, "Miki Syouji / AV Japan", "AV2Mahjong No.1 Bay Bridge no Seijo (Japan)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) -GAME( 1991, av2mj2rg, 0, av2mj2rg, av2mj2rg, driver_device, 0, ROT0, "Miki Syouji / AV Japan", "AV2Mahjong No.2 Rouge no Kaori (Japan)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +GAME( 1991, qmhayaku, 0, qmhayaku, qmhayaku, nbmj8991_state, 0, ROT180, "Nichibutsu", "Quiz-Mahjong Hayaku Yatteyo! (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, mjgottub, 0, mjgottub, mjgottub, nbmj8991_state, 0, ROT180, "Nichibutsu", "Medal Mahjong Gottsu ee-kanji [BET] (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, av2mj1bb, 0, av2mj1bb, av2mj1bb, nbmj8991_state, 0, ROT0, "Miki Syouji / AV Japan", "AV2Mahjong No.1 Bay Bridge no Seijo (Japan)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +GAME( 1991, av2mj2rg, 0, av2mj2rg, av2mj2rg, nbmj8991_state, 0, ROT0, "Miki Syouji / AV Japan", "AV2Mahjong No.2 Rouge no Kaori (Japan)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/nbmj9195.cpp b/src/mame/drivers/nbmj9195.cpp index 742075e35dd..6878e59bedc 100644 --- a/src/mame/drivers/nbmj9195.cpp +++ b/src/mame/drivers/nbmj9195.cpp @@ -2503,7 +2503,7 @@ static const z80_daisy_config daisy_chain_sound[] = MCFG_TMPZ84C011_PORTD_WRITE_CB(WRITE8(nbmj9195_state, clutsel_w)) \ MCFG_TMPZ84C011_PORTE_WRITE_CB(WRITE8(nbmj9195_state, outcoin_flag_w)) -static MACHINE_CONFIG_START( NBMJDRV1_base, nbmj9195_state ) +static MACHINE_CONFIG_START( NBMJDRV1_base ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMPZ84C011, 12000000/2) /* TMPZ84C011, 6.00 MHz */ @@ -3432,39 +3432,39 @@ ROM_START( shabdama ) DISK_IMAGE_READONLY( "shabdama", 0, NO_DUMP ) ROM_END -// YEAR, NAME, PARENT, MACHINE, INPUT, INIT, MONITOR, COMPANY, FULLNAME, FLAGS -GAME( 1992, mjuraden, 0, mjuraden, mjuraden, nbmj9195_state, nbmj9195, ROT0, "Nichibutsu / Yubis", "Mahjong Uranai Densetsu (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, koinomp, 0, koinomp, koinomp, nbmj9195_state, nbmj9195, ROT0, "Nichibutsu", "Mahjong Koi no Magic Potion (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, patimono, 0, patimono, patimono, nbmj9195_state, nbmj9195, ROT0, "Nichibutsu", "Mahjong Pachinko Monogatari (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, janbari, 0, janbari, janbari, nbmj9195_state, nbmj9195, ROT0, "Nichibutsu / Yubis / AV Japan", "Mahjong Janjan Baribari (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, mjanbari, janbari, janbari, pachiten, nbmj9195_state, nbmj9195, ROT0, "Nichibutsu / Yubis / AV Japan", "Medal Mahjong Janjan Baribari [BET] (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, mmehyou, 0, mmehyou, mmehyou, nbmj9195_state, nbmj9195, ROT0, "Nichibutsu / Kawakusu", "Medal Mahjong Circuit no Mehyou [BET] (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, ultramhm, 0, ultramhm, ultramhm, nbmj9195_state, nbmj9195, ROT0, "Apple", "Ultra Maru-hi Mahjong (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, gal10ren, 0, gal10ren, gal10ren, nbmj9195_state, nbmj9195, ROT0, "Fujic", "Mahjong Gal 10-renpatsu (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, renaiclb, 0, renaiclb, renaiclb, nbmj9195_state, nbmj9195, ROT0, "Fujic", "Mahjong Ren-ai Club (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, mjlaman, 0, mjlaman, mjlaman, nbmj9195_state, nbmj9195, ROT0, "Nichibutsu / AV Japan", "Mahjong La Man (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, mkeibaou, 0, mkeibaou, patimono, nbmj9195_state, nbmj9195, ROT0, "Nichibutsu", "Mahjong Keibaou (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, pachiten, 0, pachiten, pachiten, nbmj9195_state, nbmj9195, ROT0, "Nichibutsu / AV Japan / Miki Syouji", "Medal Mahjong Pachi-Slot Tengoku [BET] (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, sailorws, 0, sailorws, sailorws, nbmj9195_state, nbmj9195, ROT0, "Nichibutsu", "Mahjong Sailor Wars (Japan set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, sailorwa, sailorws, sailorws, sailorws, nbmj9195_state, nbmj9195, ROT0, "Nichibutsu", "Mahjong Sailor Wars (Japan set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, sailorwr, sailorws, sailorwr, sailorwr, nbmj9195_state, nbmj9195, ROT0, "Nichibutsu", "Mahjong Sailor Wars-R [BET] (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, wcatcher, 0, otatidai, wcatcher, nbmj9195_state, nbmj9195, ROT0, "Nichibutsu", "Mahjong Wakuwaku Catcher (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, jituroku, 0, jituroku, jituroku, nbmj9195_state, nbmj9195, ROT0, "Windom", "Jitsuroku Maru-chi Mahjong (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, yosimoto, 0, yosimoto, yosimoto, nbmj9195_state, nbmj9195, ROT0, "Nichibutsu / Yoshimoto Kougyou", "Mahjong Yoshimoto Gekijou (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, yosimotm, yosimoto, yosimotm, yosimotm, nbmj9195_state, nbmj9195, ROT0, "Nichibutsu / Yoshimoto Kougyou", "Mahjong Yoshimoto Gekijou [BET] (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, psailor1, 0, psailor1, psailor1, nbmj9195_state, nbmj9195, ROT0, "Sphinx", "Bishoujo Janshi Pretty Sailor 18-kin (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, psailor2, 0, psailor2, psailor2, nbmj9195_state, nbmj9195, ROT0, "Sphinx", "Bishoujo Janshi Pretty Sailor 2 (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, otatidai, 0, otatidai, otatidai, nbmj9195_state, nbmj9195, ROT0, "Sphinx", "Disco Mahjong Otachidai no Okite (Japan)", MACHINE_SUPPORTS_SAVE ) - -GAME( 1991, ngpgal, 0, ngpgal, ngpgal, nbmj9195_state, nbmj9195, ROT0, "Nichibutsu", "Nekketsu Grand-Prix Gal (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, mjgottsu, 0, mjgottsu, mjgottsu, nbmj9195_state, nbmj9195, ROT0, "Nichibutsu", "Mahjong Gottsu ee-kanji (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, bakuhatu, mjgottsu, bakuhatu, bakuhatu, nbmj9195_state, nbmj9195, ROT0, "Nichibutsu", "Mahjong Bakuhatsu Junjouden (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, cmehyou, 0, cmehyou, cmehyou, nbmj9195_state, nbmj9195, ROT0, "Nichibutsu / Kawakusu", "Mahjong Circuit no Mehyou (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, mjkoiura, 0, mjkoiura, mjkoiura, nbmj9195_state, nbmj9195, ROT0, "Nichibutsu", "Mahjong Koi Uranai (Japan set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, mkoiuraa, mjkoiura, mkoiuraa, mjkoiura, nbmj9195_state, nbmj9195, ROT0, "Nichibutsu", "Mahjong Koi Uranai (Japan set 2)", MACHINE_SUPPORTS_SAVE ) - -GAME( 1994, mscoutm, 0, mscoutm, mscoutm, nbmj9195_state, nbmj9195, ROT0, "Sphinx / AV Japan", "Mahjong Scout Man (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, imekura, 0, imekura, imekura, nbmj9195_state, nbmj9195, ROT0, "Sphinx / AV Japan", "Imekura Mahjong (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, mjegolf, 0, mjegolf, mjegolf, nbmj9195_state, nbmj9195, ROT0, "Fujic / AV Japan", "Mahjong Erotica Golf (Japan)", MACHINE_SUPPORTS_SAVE ) - -GAME( 199?, shabdama, 0, shabdama, mjuraden,nbmj9195_state, nbmj9195, ROT0, "Nichibutsu", "LD Mahjong #4 Shabon-Dama", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) +// YEAR, NAME, PARENT, MACHINE, INPUT, STATE, INIT, MONITOR, COMPANY, FULLNAME, FLAGS +GAME( 1992, mjuraden, 0, mjuraden, mjuraden, nbmj9195_state, nbmj9195, ROT0, "Nichibutsu / Yubis", "Mahjong Uranai Densetsu (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, koinomp, 0, koinomp, koinomp, nbmj9195_state, nbmj9195, ROT0, "Nichibutsu", "Mahjong Koi no Magic Potion (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, patimono, 0, patimono, patimono, nbmj9195_state, nbmj9195, ROT0, "Nichibutsu", "Mahjong Pachinko Monogatari (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, janbari, 0, janbari, janbari, nbmj9195_state, nbmj9195, ROT0, "Nichibutsu / Yubis / AV Japan", "Mahjong Janjan Baribari (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, mjanbari, janbari, janbari, pachiten, nbmj9195_state, nbmj9195, ROT0, "Nichibutsu / Yubis / AV Japan", "Medal Mahjong Janjan Baribari [BET] (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, mmehyou, 0, mmehyou, mmehyou, nbmj9195_state, nbmj9195, ROT0, "Nichibutsu / Kawakusu", "Medal Mahjong Circuit no Mehyou [BET] (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, ultramhm, 0, ultramhm, ultramhm, nbmj9195_state, nbmj9195, ROT0, "Apple", "Ultra Maru-hi Mahjong (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, gal10ren, 0, gal10ren, gal10ren, nbmj9195_state, nbmj9195, ROT0, "Fujic", "Mahjong Gal 10-renpatsu (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, renaiclb, 0, renaiclb, renaiclb, nbmj9195_state, nbmj9195, ROT0, "Fujic", "Mahjong Ren-ai Club (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, mjlaman, 0, mjlaman, mjlaman, nbmj9195_state, nbmj9195, ROT0, "Nichibutsu / AV Japan", "Mahjong La Man (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, mkeibaou, 0, mkeibaou, patimono, nbmj9195_state, nbmj9195, ROT0, "Nichibutsu", "Mahjong Keibaou (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, pachiten, 0, pachiten, pachiten, nbmj9195_state, nbmj9195, ROT0, "Nichibutsu / AV Japan / Miki Syouji", "Medal Mahjong Pachi-Slot Tengoku [BET] (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, sailorws, 0, sailorws, sailorws, nbmj9195_state, nbmj9195, ROT0, "Nichibutsu", "Mahjong Sailor Wars (Japan set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, sailorwa, sailorws, sailorws, sailorws, nbmj9195_state, nbmj9195, ROT0, "Nichibutsu", "Mahjong Sailor Wars (Japan set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, sailorwr, sailorws, sailorwr, sailorwr, nbmj9195_state, nbmj9195, ROT0, "Nichibutsu", "Mahjong Sailor Wars-R [BET] (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, wcatcher, 0, otatidai, wcatcher, nbmj9195_state, nbmj9195, ROT0, "Nichibutsu", "Mahjong Wakuwaku Catcher (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, jituroku, 0, jituroku, jituroku, nbmj9195_state, nbmj9195, ROT0, "Windom", "Jitsuroku Maru-chi Mahjong (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, yosimoto, 0, yosimoto, yosimoto, nbmj9195_state, nbmj9195, ROT0, "Nichibutsu / Yoshimoto Kougyou", "Mahjong Yoshimoto Gekijou (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, yosimotm, yosimoto, yosimotm, yosimotm, nbmj9195_state, nbmj9195, ROT0, "Nichibutsu / Yoshimoto Kougyou", "Mahjong Yoshimoto Gekijou [BET] (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, psailor1, 0, psailor1, psailor1, nbmj9195_state, nbmj9195, ROT0, "Sphinx", "Bishoujo Janshi Pretty Sailor 18-kin (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, psailor2, 0, psailor2, psailor2, nbmj9195_state, nbmj9195, ROT0, "Sphinx", "Bishoujo Janshi Pretty Sailor 2 (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, otatidai, 0, otatidai, otatidai, nbmj9195_state, nbmj9195, ROT0, "Sphinx", "Disco Mahjong Otachidai no Okite (Japan)", MACHINE_SUPPORTS_SAVE ) + +GAME( 1991, ngpgal, 0, ngpgal, ngpgal, nbmj9195_state, nbmj9195, ROT0, "Nichibutsu", "Nekketsu Grand-Prix Gal (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, mjgottsu, 0, mjgottsu, mjgottsu, nbmj9195_state, nbmj9195, ROT0, "Nichibutsu", "Mahjong Gottsu ee-kanji (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, bakuhatu, mjgottsu, bakuhatu, bakuhatu, nbmj9195_state, nbmj9195, ROT0, "Nichibutsu", "Mahjong Bakuhatsu Junjouden (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, cmehyou, 0, cmehyou, cmehyou, nbmj9195_state, nbmj9195, ROT0, "Nichibutsu / Kawakusu", "Mahjong Circuit no Mehyou (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, mjkoiura, 0, mjkoiura, mjkoiura, nbmj9195_state, nbmj9195, ROT0, "Nichibutsu", "Mahjong Koi Uranai (Japan set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, mkoiuraa, mjkoiura, mkoiuraa, mjkoiura, nbmj9195_state, nbmj9195, ROT0, "Nichibutsu", "Mahjong Koi Uranai (Japan set 2)", MACHINE_SUPPORTS_SAVE ) + +GAME( 1994, mscoutm, 0, mscoutm, mscoutm, nbmj9195_state, nbmj9195, ROT0, "Sphinx / AV Japan", "Mahjong Scout Man (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, imekura, 0, imekura, imekura, nbmj9195_state, nbmj9195, ROT0, "Sphinx / AV Japan", "Imekura Mahjong (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, mjegolf, 0, mjegolf, mjegolf, nbmj9195_state, nbmj9195, ROT0, "Fujic / AV Japan", "Mahjong Erotica Golf (Japan)", MACHINE_SUPPORTS_SAVE ) + +GAME( 199?, shabdama, 0, shabdama, mjuraden, nbmj9195_state, nbmj9195, ROT0, "Nichibutsu", "LD Mahjong #4 Shabon-Dama", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/nc.cpp b/src/mame/drivers/nc.cpp index f63b8650666..09b51f0b14f 100644 --- a/src/mame/drivers/nc.cpp +++ b/src/mame/drivers/nc.cpp @@ -1396,7 +1396,7 @@ INPUT_PORTS_END /**********************************************************************************************************/ -static MACHINE_CONFIG_START( nc100, nc_state ) +static MACHINE_CONFIG_START( nc100 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, /*6000000*/ 4606000) /* Russell Marks says this is more accurate */ MCFG_CPU_PROGRAM_MAP(nc_map) @@ -1549,7 +1549,7 @@ ROM_START(nc200) ROM_LOAD("nc200.rom", 0x010000, 0x080000, CRC(bb8180e7) SHA1(fb5c93b0a3e199202c6a12548d2617f7a09bae47)) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ COMP( 1992, nc100, 0, 0, nc100, nc100, nc_state, nc, "Amstrad plc", "NC100", 0 ) COMP( 1992, dw225, nc100, 0, nc100, nc100, nc_state, nc, "NTS Computer Systems", "DreamWriter 225", 0 ) COMP( 1992, nc150, nc100, 0, nc100, nc100, nc_state, nc, "Amstrad plc", "NC150", 0 ) diff --git a/src/mame/drivers/nemesis.cpp b/src/mame/drivers/nemesis.cpp index faea4873a3a..92720ef75ce 100644 --- a/src/mame/drivers/nemesis.cpp +++ b/src/mame/drivers/nemesis.cpp @@ -218,10 +218,10 @@ WRITE8_MEMBER(nemesis_state::nemesis_filter_w) { int C1 = /* offset & 0x1000 ? 4700 : */ 0; // is this right? 4.7uF seems too large int C2 = offset & 0x0800 ? 33 : 0; // 0.033uF = 33 nF - m_filter1->filter_rc_set_RC(FLT_RC_LOWPASS, (AY8910_INTERNAL_RESISTANCE + 12000) / 3, 0, 0, CAP_N(C1)); // unused? - m_filter2->filter_rc_set_RC(FLT_RC_LOWPASS, AY8910_INTERNAL_RESISTANCE + 1000, 10000, 0, CAP_N(C2)); - m_filter3->filter_rc_set_RC(FLT_RC_LOWPASS, AY8910_INTERNAL_RESISTANCE + 1000, 10000, 0, CAP_N(C2)); - m_filter4->filter_rc_set_RC(FLT_RC_LOWPASS, AY8910_INTERNAL_RESISTANCE + 1000, 10000, 0, CAP_N(C2)); + m_filter1->filter_rc_set_RC(filter_rc_device::LOWPASS, (AY8910_INTERNAL_RESISTANCE + 12000) / 3, 0, 0, CAP_N(C1)); // unused? + m_filter2->filter_rc_set_RC(filter_rc_device::LOWPASS, AY8910_INTERNAL_RESISTANCE + 1000, 10000, 0, CAP_N(C2)); + m_filter3->filter_rc_set_RC(filter_rc_device::LOWPASS, AY8910_INTERNAL_RESISTANCE + 1000, 10000, 0, CAP_N(C2)); + m_filter4->filter_rc_set_RC(filter_rc_device::LOWPASS, AY8910_INTERNAL_RESISTANCE + 1000, 10000, 0, CAP_N(C2)); // konamigt also uses bits 0x0018, what are they for? } @@ -1485,7 +1485,7 @@ void nemesis_state::machine_reset() m_irq_port_last = 0; } -static MACHINE_CONFIG_START( nemesis, nemesis_state ) +static MACHINE_CONFIG_START( nemesis ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000,18432000/2) /* 9.216 MHz? */ @@ -1542,7 +1542,7 @@ static MACHINE_CONFIG_START( nemesis, nemesis_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( gx400, nemesis_state ) +static MACHINE_CONFIG_START( gx400 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000,18432000/2) /* 9.216MHz */ @@ -1603,7 +1603,7 @@ static MACHINE_CONFIG_START( gx400, nemesis_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( konamigt, nemesis_state ) +static MACHINE_CONFIG_START( konamigt ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000,18432000/2) /* 9.216 MHz? */ @@ -1659,7 +1659,7 @@ static MACHINE_CONFIG_START( konamigt, nemesis_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( rf2_gx400, nemesis_state ) +static MACHINE_CONFIG_START( rf2_gx400 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000,18432000/2) /* 9.216MHz */ @@ -1720,7 +1720,7 @@ static MACHINE_CONFIG_START( rf2_gx400, nemesis_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( salamand, nemesis_state ) +static MACHINE_CONFIG_START( salamand ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000,18432000/2) /* 9.216MHz */ @@ -1771,7 +1771,7 @@ static MACHINE_CONFIG_START( salamand, nemesis_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( blkpnthr, nemesis_state ) +static MACHINE_CONFIG_START( blkpnthr ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000,18432000/2) /* 9.216 MHz? */ @@ -1817,7 +1817,7 @@ static MACHINE_CONFIG_START( blkpnthr, nemesis_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( citybomb, nemesis_state ) +static MACHINE_CONFIG_START( citybomb ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000,18432000/2) /* 9.216 MHz? */ @@ -1867,7 +1867,7 @@ static MACHINE_CONFIG_START( citybomb, nemesis_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( nyanpani, nemesis_state ) +static MACHINE_CONFIG_START( nyanpani ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000,18432000/2) /* 9.216 MHz? */ @@ -1917,7 +1917,7 @@ static MACHINE_CONFIG_START( nyanpani, nemesis_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( hcrash, nemesis_state ) +static MACHINE_CONFIG_START( hcrash ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000,18432000/3) /* 6.144MHz */ @@ -2379,24 +2379,24 @@ ROM_END -GAME( 1985, nemesis, 0, nemesis, nemesis, driver_device, 0, ROT0, "Konami", "Nemesis (ROM version)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, nemesisuk, nemesis, nemesis, nemesuk, driver_device, 0, ROT0, "Konami", "Nemesis (World?, ROM version)", MACHINE_SUPPORTS_SAVE ) -GAMEL(1985, konamigt, 0, konamigt, konamigt, driver_device, 0, ROT0, "Konami", "Konami GT", MACHINE_SUPPORTS_SAVE, layout_konamigt ) -GAME( 1985, rf2, konamigt, rf2_gx400, rf2, driver_device, 0, ROT0, "Konami", "Konami RF2 - Red Fighter", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, twinbee, 0, gx400, twinbee, driver_device, 0, ROT90, "Konami", "TwinBee (ROM version)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, gradius, nemesis, gx400, gradius, driver_device, 0, ROT0, "Konami", "Gradius (Japan, ROM version)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, gwarrior, 0, gx400, gwarrior, driver_device, 0, ROT0, "Konami", "Galactic Warriors", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, salamand, 0, salamand, salamand, driver_device, 0, ROT0, "Konami", "Salamander (version D)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, salamandj, salamand, salamand, salamand, driver_device, 0, ROT0, "Konami", "Salamander (version J)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, lifefrce, salamand, salamand, salamand, driver_device, 0, ROT0, "Konami", "Lifeforce (US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, lifefrcej, salamand, salamand, lifefrcj, driver_device, 0, ROT0, "Konami", "Lifeforce (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, blkpnthr, 0, blkpnthr, blkpnthr, driver_device, 0, ROT0, "Konami", "Black Panther", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, citybomb, 0, citybomb, citybomb, driver_device, 0, ROT270, "Konami", "City Bomber (World)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, citybombj, citybomb, citybomb, citybomb, driver_device, 0, ROT270, "Konami", "City Bomber (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, hcrash, 0, hcrash, hcrash, driver_device, 0, ROT0, "Konami", "Hyper Crash (version D)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, hcrashc, hcrash, hcrash, hcrash, driver_device, 0, ROT0, "Konami", "Hyper Crash (version C)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, kittenk, 0, nyanpani, nyanpani, driver_device, 0, ROT0, "Konami", "Kitten Kaboodle", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, nyanpani, kittenk, nyanpani, nyanpani, driver_device, 0, ROT0, "Konami", "Nyan Nyan Panic (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, nemesis, 0, nemesis, nemesis, nemesis_state, 0, ROT0, "Konami", "Nemesis (ROM version)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, nemesisuk, nemesis, nemesis, nemesuk, nemesis_state, 0, ROT0, "Konami", "Nemesis (World?, ROM version)", MACHINE_SUPPORTS_SAVE ) +GAMEL(1985, konamigt, 0, konamigt, konamigt, nemesis_state, 0, ROT0, "Konami", "Konami GT", MACHINE_SUPPORTS_SAVE, layout_konamigt ) +GAME( 1985, rf2, konamigt, rf2_gx400, rf2, nemesis_state, 0, ROT0, "Konami", "Konami RF2 - Red Fighter", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, twinbee, 0, gx400, twinbee, nemesis_state, 0, ROT90, "Konami", "TwinBee (ROM version)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, gradius, nemesis, gx400, gradius, nemesis_state, 0, ROT0, "Konami", "Gradius (Japan, ROM version)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, gwarrior, 0, gx400, gwarrior, nemesis_state, 0, ROT0, "Konami", "Galactic Warriors", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, salamand, 0, salamand, salamand, nemesis_state, 0, ROT0, "Konami", "Salamander (version D)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, salamandj, salamand, salamand, salamand, nemesis_state, 0, ROT0, "Konami", "Salamander (version J)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, lifefrce, salamand, salamand, salamand, nemesis_state, 0, ROT0, "Konami", "Lifeforce (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, lifefrcej, salamand, salamand, lifefrcj, nemesis_state, 0, ROT0, "Konami", "Lifeforce (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, blkpnthr, 0, blkpnthr, blkpnthr, nemesis_state, 0, ROT0, "Konami", "Black Panther", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, citybomb, 0, citybomb, citybomb, nemesis_state, 0, ROT270, "Konami", "City Bomber (World)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, citybombj, citybomb, citybomb, citybomb, nemesis_state, 0, ROT270, "Konami", "City Bomber (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, hcrash, 0, hcrash, hcrash, nemesis_state, 0, ROT0, "Konami", "Hyper Crash (version D)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, hcrashc, hcrash, hcrash, hcrash, nemesis_state, 0, ROT0, "Konami", "Hyper Crash (version C)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, kittenk, 0, nyanpani, nyanpani, nemesis_state, 0, ROT0, "Konami", "Kitten Kaboodle", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, nyanpani, kittenk, nyanpani, nyanpani, nemesis_state, 0, ROT0, "Konami", "Nyan Nyan Panic (Japan)", MACHINE_SUPPORTS_SAVE ) /* @@ -2665,7 +2665,7 @@ Manual says SW4, 5, 6, 7 & 8 not used, leave off */ -static MACHINE_CONFIG_START( bubsys, nemesis_state ) +static MACHINE_CONFIG_START( bubsys ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000,18432000/2) /* 9.216MHz */ @@ -2747,4 +2747,4 @@ ROM_START( bubsys ) ROM_LOAD( "sram2.ic3", 0x2000, 0x2000, CRC(dda768be) SHA1(e98bae3ccf63eb67193346e9c40257a3ddb88e59) ) ROM_END -GAME( 1985, bubsys, 0, bubsys, nemesis, driver_device, 0, ROT0, "Konami", "Bubble System BIOS", MACHINE_IS_BIOS_ROOT | MACHINE_NOT_WORKING ) +GAME( 1985, bubsys, 0, bubsys, nemesis, nemesis_state, 0, ROT0, "Konami", "Bubble System BIOS", MACHINE_IS_BIOS_ROOT | MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/neogeo.cpp b/src/mame/drivers/neogeo.cpp index dc42437997a..d0129e8374c 100644 --- a/src/mame/drivers/neogeo.cpp +++ b/src/mame/drivers/neogeo.cpp @@ -472,6 +472,9 @@ #include "neogeo.lh" +#define VERBOSE (0) + + #define LOG_VIDEO_SYSTEM (0) #define LOG_MAIN_CPU_BANKING (0) #define LOG_AUDIO_CPU_BANKING (0) @@ -1639,7 +1642,7 @@ INPUT_CHANGED_MEMBER(aes_state::aes_jp1) * *************************************/ -MACHINE_CONFIG_START( neogeo_base, neogeo_state ) +MACHINE_CONFIG_START( neogeo_base ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, NEOGEO_MAIN_CPU_CLOCK) @@ -1773,7 +1776,7 @@ MACHINE_START_MEMBER(aes_state, aes) } -static MACHINE_CONFIG_DERIVED_CLASS( aes, neogeo_base, aes_state ) +static MACHINE_CONFIG_DERIVED( aes, neogeo_base ) MCFG_CPU_MODIFY("maincpu") MCFG_CPU_PROGRAM_MAP(aes_main_map) @@ -2038,8 +2041,8 @@ DRIVER_INIT_MEMBER(neogeo_state, neogeo) /* YEAR NAME PARENT COMPAT MACHINE INPUT INIT */ -CONS( 1990, neogeo, 0, 0, mvs, neogeo_6slot, neogeo_state, neogeo, "SNK", "Neo-Geo", MACHINE_IS_BIOS_ROOT | MACHINE_SUPPORTS_SAVE ) -CONS( 1990, aes, 0, 0, aes, aes, driver_device, 0, "SNK", "Neo-Geo AES", MACHINE_SUPPORTS_SAVE ) +CONS( 1990, neogeo, 0, 0, mvs, neogeo_6slot, neogeo_state, neogeo, "SNK", "Neo-Geo", MACHINE_IS_BIOS_ROOT | MACHINE_SUPPORTS_SAVE ) +CONS( 1990, aes, 0, 0, aes, aes, aes_state, 0, "SNK", "Neo-Geo AES", MACHINE_SUPPORTS_SAVE ) // Include standalone drivers for the single games diff --git a/src/mame/drivers/neogeocd.cpp b/src/mame/drivers/neogeocd.cpp index 5c109a47820..1da84ea7094 100644 --- a/src/mame/drivers/neogeocd.cpp +++ b/src/mame/drivers/neogeocd.cpp @@ -1036,7 +1036,7 @@ uint32_t ngcd_state::screen_update_neocd(screen_device &screen, bitmap_rgb32 &bi } -static MACHINE_CONFIG_DERIVED_CLASS( neocd, neogeo_base, ngcd_state ) +static MACHINE_CONFIG_DERIVED( neocd, neogeo_base ) MCFG_CPU_MODIFY("maincpu") MCFG_CPU_PROGRAM_MAP(neocd_main_map) @@ -1139,9 +1139,8 @@ DRIVER_INIT_MEMBER(ngcd_state,neocdzj) } -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -CONS( 1996, neocdz, 0, 0, neocd, neocd, ngcd_state, neocdz, "SNK", "Neo-Geo CDZ (US)", 0 ) // the CDZ is the newer model -CONS( 1996, neocdzj, neocdz, 0, neocd, neocd, ngcd_state, neocdzj, "SNK", "Neo-Geo CDZ (Japan)", 0 ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +CONS( 1996, neocdz, 0, 0, neocd, neocd, ngcd_state, neocdz, "SNK", "Neo-Geo CDZ (US)", 0 ) // the CDZ is the newer model +CONS( 1996, neocdzj, neocdz, 0, neocd, neocd, ngcd_state, neocdzj, "SNK", "Neo-Geo CDZ (Japan)", 0 ) - -CONS( 1994, neocd, neocdz, 0, neocd, neocd, driver_device, 0, "SNK", "Neo-Geo CD", MACHINE_NOT_WORKING ) // older model, ignores disc protections? +CONS( 1994, neocd, neocdz, 0, neocd, neocd, ngcd_state, 0, "SNK", "Neo-Geo CD", MACHINE_NOT_WORKING ) // older model, ignores disc protections? diff --git a/src/mame/drivers/neopcb.cpp b/src/mame/drivers/neopcb.cpp index e85e33ac68a..ae05d6209f0 100644 --- a/src/mame/drivers/neopcb.cpp +++ b/src/mame/drivers/neopcb.cpp @@ -29,7 +29,7 @@ void neopcb_state::neopcb_postload() set_outputs(); } -static MACHINE_CONFIG_DERIVED_CLASS( neopcb, neogeo_arcade, neopcb_state ) +static MACHINE_CONFIG_DERIVED( neopcb, neogeo_arcade ) MCFG_CMC_PROT_ADD("cmc50") MCFG_PCM2_PROT_ADD("pcm2") MCFG_PVC_PROT_ADD("pvc") diff --git a/src/mame/drivers/neoprint.cpp b/src/mame/drivers/neoprint.cpp index 4eb4f0bdafc..51fa4151b53 100644 --- a/src/mame/drivers/neoprint.cpp +++ b/src/mame/drivers/neoprint.cpp @@ -45,7 +45,8 @@ public: m_screen(*this, "screen"), m_palette(*this, "palette"), m_soundlatch(*this, "soundlatch"), - m_generic_paletteram_16(*this, "paletteram") { } + m_generic_paletteram_16(*this, "paletteram") + { } required_shared_ptr m_npvidram; required_shared_ptr m_npvidregs; @@ -477,7 +478,7 @@ void neoprint_state::machine_start() m_upd4990a->c2_w(1); } -static MACHINE_CONFIG_START( neoprint, neoprint_state ) +static MACHINE_CONFIG_START( neoprint ) MCFG_CPU_ADD("maincpu", M68000, 12000000) MCFG_CPU_PROGRAM_MAP(neoprint_map) MCFG_CPU_PERIODIC_INT_DRIVER(neoprint_state, irq3_line_hold, 45) /* camera / printer irq, unknown timing */ @@ -520,7 +521,7 @@ MACHINE_RESET_MEMBER(neoprint_state,nprsp) m_bank_val = 0; } -static MACHINE_CONFIG_START( nprsp, neoprint_state ) +static MACHINE_CONFIG_START( nprsp ) MCFG_CPU_ADD("maincpu", M68000, 12000000) MCFG_CPU_PROGRAM_MAP(nprsp_map) MCFG_CPU_PERIODIC_INT_DRIVER(neoprint_state, irq3_line_hold, 45) /* camera / printer irq, unknown timing */ @@ -672,7 +673,7 @@ DRIVER_INIT_MEMBER(neoprint_state,unkneo) ROM[0x12c2/2] = 0x4e71; } -GAME( 1996, neoprint, 0, neoprint, neoprint, neoprint_state, unkneo, ROT0, "SNK", "Neo Print (Japan) (T2d)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) -GAME( 1996, npcartv1, 0, neoprint, neoprint, neoprint_state, npcartv1, ROT0, "SNK", "Neo Print V1 (World) (E1a)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) -GAME( 1998, 98best44, 0, neoprint, neoprint, neoprint_state, 98best44, ROT0, "SNK", "Neo Print - '98 NeoPri Best 44 (Japan) (T4i 3.07)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) -GAME( 1996, nprsp, 0, nprsp, neoprint, neoprint_state, nprsp, ROT0, "SNK", "NeopriSP Retro Collection (Japan)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) +GAME( 1996, neoprint, 0, neoprint, neoprint, neoprint_state, unkneo, ROT0, "SNK", "Neo Print (Japan) (T2d)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) +GAME( 1996, npcartv1, 0, neoprint, neoprint, neoprint_state, npcartv1, ROT0, "SNK", "Neo Print V1 (World) (E1a)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) +GAME( 1998, 98best44, 0, neoprint, neoprint, neoprint_state, 98best44, ROT0, "SNK", "Neo Print - '98 NeoPri Best 44 (Japan) (T4i 3.07)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) +GAME( 1996, nprsp, 0, nprsp, neoprint, neoprint_state, nprsp, ROT0, "SNK", "NeopriSP Retro Collection (Japan)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/neptunp2.cpp b/src/mame/drivers/neptunp2.cpp index 952291942ae..31d1195f6bf 100644 --- a/src/mame/drivers/neptunp2.cpp +++ b/src/mame/drivers/neptunp2.cpp @@ -92,7 +92,7 @@ static GFXDECODE_START( neptunp2 ) // GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0, 8 ) GFXDECODE_END -static MACHINE_CONFIG_START( neptunp2, neptunp2_state ) +static MACHINE_CONFIG_START( neptunp2 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",I80188,20000000) // N80C188-20 AMD @@ -139,4 +139,4 @@ ROM_START( neptunp2 ) ROM_END -GAME( 199?, neptunp2, 0, neptunp2, neptunp2, driver_device, 0, ROT0, "Unidesa?", "Neptune's Pearls 2", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +GAME( 199?, neptunp2, 0, neptunp2, neptunp2, neptunp2_state, 0, ROT0, "Unidesa?", "Neptune's Pearls 2", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/nes.cpp b/src/mame/drivers/nes.cpp index 3c5989f5f8e..0501fe1cc3a 100644 --- a/src/mame/drivers/nes.cpp +++ b/src/mame/drivers/nes.cpp @@ -54,7 +54,7 @@ void nes_state::ppu_nmi(int *ppu_regs) } -static MACHINE_CONFIG_START( nes, nes_state ) +static MACHINE_CONFIG_START( nes ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", N2A03, NTSC_APU_CLOCK) MCFG_CPU_PROGRAM_MAP(nes_map) @@ -65,7 +65,7 @@ static MACHINE_CONFIG_START( nes, nes_state ) // the number of cycles in each scanline for the PPU scanline timer. Since the PPU has 20 vblank scanlines + 2 // non-rendering scanlines, we compensate. This ends up being 2500 cycles for the non-rendering portion, 2273 // cycles for the actual vblank period. - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC((113.66/(NTSC_APU_CLOCK/1000000)) * (PPU_VBLANK_LAST_SCANLINE_NTSC-PPU_VBLANK_FIRST_SCANLINE+1+2))) + MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC((113.66/(NTSC_APU_CLOCK/1000000)) * (ppu2c0x_device::VBLANK_LAST_SCANLINE_NTSC-ppu2c0x_device::VBLANK_FIRST_SCANLINE+1+2))) MCFG_SCREEN_SIZE(32*8, 262) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 30*8-1) MCFG_SCREEN_UPDATE_DRIVER(nes_state, screen_update_nes) @@ -110,7 +110,7 @@ static MACHINE_CONFIG_DERIVED( nespal, nes ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_REFRESH_RATE(50.0070) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC((106.53/(PAL_APU_CLOCK/1000000)) * (PPU_VBLANK_LAST_SCANLINE_PAL-PPU_VBLANK_FIRST_SCANLINE+1+2))) + MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC((106.53/(PAL_APU_CLOCK/1000000)) * (ppu2c0x_device::VBLANK_LAST_SCANLINE_PAL-ppu2c0x_device::VBLANK_FIRST_SCANLINE+1+2))) MCFG_SCREEN_SIZE(32*8, 312) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 30*8-1) MACHINE_CONFIG_END @@ -141,7 +141,7 @@ static MACHINE_CONFIG_DERIVED( nespalc, nespal ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_REFRESH_RATE(50.0070) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC((113.66/(PALC_APU_CLOCK/1000000)) * (PPU_VBLANK_LAST_SCANLINE_PAL-PPU_VBLANK_FIRST_SCANLINE_PALC+1+2))) + MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC((113.66/(PALC_APU_CLOCK/1000000)) * (ppu2c0x_device::VBLANK_LAST_SCANLINE_PAL-ppu2c0x_device::VBLANK_FIRST_SCANLINE_PALC+1+2))) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( famipalc, nespalc ) @@ -184,9 +184,9 @@ void nes_state::setup_disk(nes_disksys_device *slot) slot->pcb_start(machine(), m_ciram.get(), false); m_ppu->space(AS_PROGRAM).install_readwrite_handler(0, 0x1fff, read8_delegate(FUNC(device_nes_cart_interface::chr_r),(device_nes_cart_interface *)slot), write8_delegate(FUNC(device_nes_cart_interface::chr_w),(device_nes_cart_interface *)slot)); m_ppu->space(AS_PROGRAM).install_readwrite_handler(0x2000, 0x3eff, read8_delegate(FUNC(device_nes_cart_interface::nt_r),(device_nes_cart_interface *)slot), write8_delegate(FUNC(device_nes_cart_interface::nt_w),(device_nes_cart_interface *)slot)); - m_ppu->set_scanline_callback(ppu2c0x_scanline_delegate(FUNC(device_nes_cart_interface::scanline_irq),(device_nes_cart_interface *)slot)); - m_ppu->set_hblank_callback(ppu2c0x_hblank_delegate(FUNC(nes_disksys_device::hblank_irq),(nes_disksys_device *)slot)); - m_ppu->set_latch(ppu2c0x_latch_delegate(FUNC(device_nes_cart_interface::ppu_latch),(device_nes_cart_interface *)slot)); + m_ppu->set_scanline_callback(ppu2c0x_device::scanline_delegate(FUNC(device_nes_cart_interface::scanline_irq),(device_nes_cart_interface *)slot)); + m_ppu->set_hblank_callback(ppu2c0x_device::hblank_delegate(FUNC(nes_disksys_device::hblank_irq),(nes_disksys_device *)slot)); + m_ppu->set_latch(ppu2c0x_device::latch_delegate(FUNC(device_nes_cart_interface::ppu_latch),(device_nes_cart_interface *)slot)); } } @@ -341,38 +341,38 @@ ROM_END ***************************************************************************/ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME -/* Nintendo Entertainment System hardware */ -CONS( 1985, nes, 0, 0, nes, nes, driver_device, 0, "Nintendo", "Nintendo Entertainment System / Famicom (NTSC)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -CONS( 1987, nespal, nes, 0, nespal, nes, driver_device, 0, "Nintendo", "Nintendo Entertainment System (PAL)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +// Nintendo Entertainment System hardware +CONS( 1985, nes, 0, 0, nes, nes, nes_state, 0, "Nintendo", "Nintendo Entertainment System / Famicom (NTSC)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +CONS( 1987, nespal, nes, 0, nespal, nes, nes_state, 0, "Nintendo", "Nintendo Entertainment System (PAL)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // M82 Display Unit // supports up to twelve cartridge slots -CONS( 198?, m82, nes, 0, nes, nes, driver_device, 0, "Nintendo", "M82 Display Unit (NTSC)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) -CONS( 198?, m82p, nes, 0, nespal, nes, driver_device, 0, "Nintendo", "M82 Display Unit (PAL)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +CONS( 198?, m82, nes, 0, nes, nes, nes_state, 0, "Nintendo", "M82 Display Unit (NTSC)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +CONS( 198?, m82p, nes, 0, nespal, nes, nes_state, 0, "Nintendo", "M82 Display Unit (PAL)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) -/* Famicom hardware */ -CONS( 1983, famicom, 0, 0, famicom, famicom, nes_state, famicom, "Nintendo", "Famicom", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -CONS( 1983, fds, famicom, 0, fds, famicom, nes_state, famicom, "Nintendo", "Famicom (w/ Disk System add-on)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -CONS( 1986, famitwin, famicom, 0, famitwin, famicom, nes_state, famicom, "Sharp", "Famicom Twin", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +// Famicom hardware +CONS( 1983, famicom, 0, 0, famicom, famicom, nes_state, famicom, "Nintendo", "Famicom", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +CONS( 1983, fds, famicom, 0, fds, famicom, nes_state, famicom, "Nintendo", "Famicom (w/ Disk System add-on)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +CONS( 1986, famitwin, famicom, 0, famitwin, famicom, nes_state, famicom, "Sharp", "Famicom Twin", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -/* Clone hardware */ -/* Many knockoffs using derivatives of the UMC board design, later incorporated into single CMOS chips, were manufactured before and past the end of the Famicom's timeline. */ +// Clone hardware +// Many knockoffs using derivatives of the UMC board design, later incorporated into single CMOS chips, were manufactured before and past the end of the Famicom's timeline. -/* !! PAL clones documented here !! */ +// !! PAL clones documented here !! // Famicom-based -CONS( 1992, iq501, 0, 0, famipalc, nes, nes_state, famicom, "Micro Genius", "IQ-501", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -CONS( 1992, iq502, 0, 0, famipalc, nes, nes_state, famicom, "Micro Genius", "IQ-502", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -CONS( 1992, dendy, iq501, 0, famipalc, nes, nes_state, famicom, "Steepler", "Dendy Classic 1", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -CONS( 1992, dendy2, iq502, 0, famipalc, nes, nes_state, famicom, "Steepler", "Dendy Classic 2", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -CONS( 198?, gchinatv, 0, 0, famipalc, nes, nes_state, famicom, "Golden China", "Golden China TV Game", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +CONS( 1992, iq501, 0, 0, famipalc, nes, nes_state, famicom, "Micro Genius", "IQ-501", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +CONS( 1992, iq502, 0, 0, famipalc, nes, nes_state, famicom, "Micro Genius", "IQ-502", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +CONS( 1992, dendy, iq501, 0, famipalc, nes, nes_state, famicom, "Steepler", "Dendy Classic 1", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +CONS( 1992, dendy2, iq502, 0, famipalc, nes, nes_state, famicom, "Steepler", "Dendy Classic 2", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +CONS( 198?, gchinatv, 0, 0, famipalc, nes, nes_state, famicom, "Golden China", "Golden China TV Game", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // Subor/Xiao Ba Wang hardware and derivatives // These clones implement a keyboard and a parallel port for printing from a word processor. Later models have mice, PS/2 ports, serial ports and a floppy drive. -CONS( 1993, sb486, 0, 0, suborkbd, nes, nes_state, famicom, "Subor", "SB-486", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +CONS( 1993, sb486, 0, 0, suborkbd, nes, nes_state, famicom, "Subor", "SB-486", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) -/* !! NTSC clones documented here !! */ +// !! NTSC clones documented here !! // Famicom-based // Bung hardware // Mice, keyboard, etc, including a floppy drive that allows you to run games with a selection of 4 internal "mappers" available on the system. -CONS( 1996, drpcjr, 0, 0, famicom, famicom, nes_state, famicom, "Bung", "Doctor PC Jr", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +CONS( 1996, drpcjr, 0, 0, famicom, famicom, nes_state, famicom, "Bung", "Doctor PC Jr", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/newbrain.cpp b/src/mame/drivers/newbrain.cpp index 54f12085371..c4ebd73867a 100644 --- a/src/mame/drivers/newbrain.cpp +++ b/src/mame/drivers/newbrain.cpp @@ -805,7 +805,7 @@ void newbrain_state::device_timer(emu_timer &timer, device_timer_id id, int para // MACHINE_CONFIG( newbrain ) //------------------------------------------------- -static MACHINE_CONFIG_START( newbrain, newbrain_state ) +static MACHINE_CONFIG_START( newbrain ) // basic system hardware MCFG_CPU_ADD(Z80_TAG, Z80, XTAL_16MHz/4) MCFG_CPU_PROGRAM_MAP(newbrain_mreq) @@ -943,7 +943,7 @@ ROM_END // SYSTEM DRIVERS //************************************************************************** -// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS -COMP( 1981, newbrain, 0, 0, newbrain_ad, newbrain, driver_device, 0, "Grundy Business Systems Ltd", "NewBrain AD", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND ) -COMP( 1981, newbraina, newbrain, 0, newbrain_a, newbrain, driver_device, 0, "Grundy Business Systems Ltd", "NewBrain A", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND ) -COMP( 1981, newbrainmd, newbrain, 0, newbrain_md, newbrain, driver_device, 0, "Grundy Business Systems Ltd", "NewBrain MD", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1981, newbrain, 0, 0, newbrain_ad, newbrain, newbrain_state, 0, "Grundy Business Systems Ltd", "NewBrain AD", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND ) +COMP( 1981, newbraina, newbrain, 0, newbrain_a, newbrain, newbrain_state, 0, "Grundy Business Systems Ltd", "NewBrain A", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND ) +COMP( 1981, newbrainmd, newbrain, 0, newbrain_md, newbrain, newbrain_state, 0, "Grundy Business Systems Ltd", "NewBrain MD", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/news.cpp b/src/mame/drivers/news.cpp index 603b631dc02..464393eeec6 100644 --- a/src/mame/drivers/news.cpp +++ b/src/mame/drivers/news.cpp @@ -128,7 +128,7 @@ void news_state::machine_reset() m_bgpic = 0; } -static MACHINE_CONFIG_START( news, news_state ) +static MACHINE_CONFIG_START( news ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80,8000000) /* ? MHz */ @@ -153,7 +153,7 @@ static MACHINE_CONFIG_START( news, news_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", 1056000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki", 1056000, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -183,5 +183,5 @@ ROM_START( newsa ) ROM_LOAD( "virus.1", 0x00000, 0x40000, CRC(41f5935a) SHA1(1566d243f165019660cd4dd69df9f049e0130f15) ) ROM_END -GAME( 1993, news, 0, news, news, driver_device, 0, ROT0, "Poby / Virus", "News (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, newsa, news, news, newsa, driver_device, 0, ROT0, "Poby", "News (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, news, 0, news, news, news_state, 0, ROT0, "Poby / Virus", "News (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, newsa, news, news, newsa, news_state, 0, ROT0, "Poby", "News (set 2)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/next.cpp b/src/mame/drivers/next.cpp index 27d3df700f5..c9ff2957252 100644 --- a/src/mame/drivers/next.cpp +++ b/src/mame/drivers/next.cpp @@ -1014,7 +1014,7 @@ static MACHINE_CONFIG_FRAGMENT( ncr5390 ) MCFG_NCR5390_DRQ_HANDLER(DEVWRITELINE(":", next_state, scsi_drq)) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( next_base, next_state ) +static MACHINE_CONFIG_START( next_base ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -1216,12 +1216,12 @@ DRIVER_INIT_MEMBER(next_state,nextctc) /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1987, next, 0, 0, next, next, next_state, next, "Next Software Inc", "NeXT Cube", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -COMP( 1990, nexts, 0, 0, nexts, next, next_state, nexts, "Next Software Inc", "NeXTstation", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -COMP( 1990, nexts2, nexts, 0, nexts2, next, next_state, nexts2, "Next Software Inc", "NeXTstation (X15 variant)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -COMP( 1990, nextsc, nexts, 0, nextsc, next, next_state, nextsc, "Next Software Inc", "NeXTstation color", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -COMP( 1990, nextst, 0, 0, nextst, next, next_state, nextst, "Next Software Inc", "NeXTstation turbo", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -COMP( 1990, nextstc, nextst, 0, nextstc, next, next_state, nextstc, "Next Software Inc", "NeXTstation turbo color", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -COMP( ????, nextct, nextst, 0, nextct, next, next_state, nextct, "Next Software Inc", "NeXT Cube turbo", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -COMP( ????, nextctc, nextst, 0, nextctc, next, next_state, nextctc, "Next Software Inc", "NeXT Cube turbo color", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1987, next, 0, 0, next, next, next_state, next, "Next Software Inc", "NeXT Cube", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +COMP( 1990, nexts, 0, 0, nexts, next, next_state, nexts, "Next Software Inc", "NeXTstation", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +COMP( 1990, nexts2, nexts, 0, nexts2, next, next_state, nexts2, "Next Software Inc", "NeXTstation (X15 variant)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +COMP( 1990, nextsc, nexts, 0, nextsc, next, next_state, nextsc, "Next Software Inc", "NeXTstation color", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +COMP( 1990, nextst, 0, 0, nextst, next, next_state, nextst, "Next Software Inc", "NeXTstation turbo", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +COMP( 1990, nextstc, nextst, 0, nextstc, next, next_state, nextstc, "Next Software Inc", "NeXTstation turbo color", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +COMP( ????, nextct, nextst, 0, nextct, next, next_state, nextct, "Next Software Inc", "NeXT Cube turbo", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +COMP( ????, nextctc, nextst, 0, nextctc, next, next_state, nextctc, "Next Software Inc", "NeXT Cube turbo color", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/nexus3d.cpp b/src/mame/drivers/nexus3d.cpp index e8430db92d0..ae8afc957f9 100644 --- a/src/mame/drivers/nexus3d.cpp +++ b/src/mame/drivers/nexus3d.cpp @@ -115,7 +115,7 @@ void nexus3d_state::machine_reset() { } -static MACHINE_CONFIG_START( nexus3d, nexus3d_state ) +static MACHINE_CONFIG_START( nexus3d ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", ARM920T, 200000000) @@ -173,5 +173,5 @@ DRIVER_INIT_MEMBER(nexus3d_state,nexus3d) memcpy( m_mainram, memregion("flash")->base(), 4 * 1024); } -GAME( 2005, acheart, 0, nexus3d, nexus3d, nexus3d_state, nexus3d, ROT0, "Examu", "Arcana Heart",MACHINE_IS_SKELETON ) -GAME( 2006, acheartf, 0, nexus3d, nexus3d, nexus3d_state, nexus3d, ROT0, "Examu", "Arcana Heart Full",MACHINE_IS_SKELETON ) +GAME( 2005, acheart, 0, nexus3d, nexus3d, nexus3d_state, nexus3d, ROT0, "Examu", "Arcana Heart", MACHINE_IS_SKELETON ) +GAME( 2006, acheartf, 0, nexus3d, nexus3d, nexus3d_state, nexus3d, ROT0, "Examu", "Arcana Heart Full", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/ngen.cpp b/src/mame/drivers/ngen.cpp index e23e94b889d..53c0d522d9a 100644 --- a/src/mame/drivers/ngen.cpp +++ b/src/mame/drivers/ngen.cpp @@ -161,7 +161,7 @@ private: optional_memory_region m_disk_rom; memory_array m_vram; memory_array m_fontram; - optional_device m_fdc; + optional_device m_fdc; optional_device m_fd0; optional_device m_fdc_timer; optional_device m_hdc; @@ -911,7 +911,7 @@ static SLOT_INTERFACE_START( ngen_floppies ) SLOT_INTERFACE( "525qd", FLOPPY_525_QD ) SLOT_INTERFACE_END -static MACHINE_CONFIG_START( ngen, ngen_state ) +static MACHINE_CONFIG_START( ngen ) // basic machine hardware MCFG_CPU_ADD("maincpu", I80186, XTAL_16MHz / 2) MCFG_CPU_PROGRAM_MAP(ngen_mem) @@ -1024,7 +1024,7 @@ static MACHINE_CONFIG_START( ngen, ngen_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( ngen386, ngen386_state ) +static MACHINE_CONFIG_START( ngen386 ) MCFG_CPU_ADD("i386cpu", I386, XTAL_50MHz / 2) MCFG_CPU_PROGRAM_MAP(ngen386_mem) MCFG_CPU_IO_MAP(ngen386_io) @@ -1176,6 +1176,6 @@ ROM_START( 386i ) ROM_END -COMP( 1983, ngen, 0, 0, ngen, ngen, driver_device, 0, "Convergent Technologies", "NGEN CP-001", MACHINE_IS_SKELETON | MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -COMP( 1991, ngenb38, ngen, 0, ngen386, ngen, driver_device, 0, "Financial Products Corp.", "B28/38", MACHINE_IS_SKELETON | MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -COMP( 1990, 386i, ngen, 0, 386i, ngen, driver_device, 0, "Convergent Technologies", "386i", MACHINE_IS_SKELETON | MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +COMP( 1983, ngen, 0, 0, ngen, ngen, ngen_state, 0, "Convergent Technologies", "NGEN CP-001", MACHINE_IS_SKELETON | MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +COMP( 1991, ngenb38, ngen, 0, ngen386, ngen, ngen386_state, 0, "Financial Products Corp.", "B28/38", MACHINE_IS_SKELETON | MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +COMP( 1990, 386i, ngen, 0, 386i, ngen, ngen386_state, 0, "Convergent Technologies", "386i", MACHINE_IS_SKELETON | MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/ngp.cpp b/src/mame/drivers/ngp.cpp index dcbd70a8d81..d74884ad2a2 100644 --- a/src/mame/drivers/ngp.cpp +++ b/src/mame/drivers/ngp.cpp @@ -816,7 +816,7 @@ void ngp_state::nvram_write(emu_file &file) } -static MACHINE_CONFIG_START( ngp_common, ngp_state ) +static MACHINE_CONFIG_START( ngp_common ) MCFG_CPU_ADD( "maincpu", TMP95C061, XTAL_6_144MHz ) MCFG_TLCS900H_AM8_16(1) @@ -895,6 +895,6 @@ ROM_START( ngpc ) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY, FULLNAME, FLAGS */ -CONS( 1998, ngp, 0, 0, ngp, ngp, driver_device, 0, "SNK", "NeoGeo Pocket", MACHINE_SUPPORTS_SAVE ) -CONS( 1999, ngpc, ngp, 0, ngpc, ngp, driver_device, 0, "SNK", "NeoGeo Pocket Color", MACHINE_SUPPORTS_SAVE ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +CONS( 1998, ngp, 0, 0, ngp, ngp, ngp_state, 0, "SNK", "NeoGeo Pocket", MACHINE_SUPPORTS_SAVE ) +CONS( 1999, ngpc, ngp, 0, ngpc, ngp, ngp_state, 0, "SNK", "NeoGeo Pocket Color", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/nibble.cpp b/src/mame/drivers/nibble.cpp index 0a0ad62d7a0..41e00f71e88 100644 --- a/src/mame/drivers/nibble.cpp +++ b/src/mame/drivers/nibble.cpp @@ -301,7 +301,7 @@ GFXDECODE_END * Machine Drivers * *************************/ -static MACHINE_CONFIG_START( nibble, nibble_state ) +static MACHINE_CONFIG_START( nibble ) MCFG_TMS99xx_ADD("maincpu", TMS9900, MASTER_CLOCK/4, nibble_map, nibble_cru_map) MCFG_CPU_VBLANK_INT_DRIVER("screen", nibble_state, nibble_interrupt) @@ -359,5 +359,5 @@ ROM_END * Game Drivers * *************************/ -/* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS... */ -GAME( 19??, l9nibble, 0, nibble, nibble, driver_device, 0, ROT0, "Nibble", "Lucky 9", MACHINE_NO_SOUND | MACHINE_NOT_WORKING ) +// YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS +GAME( 19??, l9nibble, 0, nibble, nibble, nibble_state, 0, ROT0, "Nibble", "Lucky 9", MACHINE_NO_SOUND | MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/nightgal.cpp b/src/mame/drivers/nightgal.cpp index c2308b13ce9..dbd8f005d43 100644 --- a/src/mame/drivers/nightgal.cpp +++ b/src/mame/drivers/nightgal.cpp @@ -134,7 +134,7 @@ uint32_t nightgal_state::screen_update_nightgal(screen_device &screen, bitmap_in for (y = cliprect.min_y; y <= cliprect.max_y; ++y) { - uint8_t *src = &m_blitter->m_blit_buffer[y * 256 + cliprect.min_x]; + const uint8_t *src = &m_blitter->blit_buffer(y, cliprect.min_x); uint16_t *dst = &m_tmp_bitmap->pix16(y, cliprect.min_x); for (x = cliprect.min_x; x <= cliprect.max_x; x += 2) @@ -653,7 +653,7 @@ void nightgal_state::machine_reset() memset(m_blit_raw_data, 0, ARRAY_LENGTH(m_blit_raw_data)); } -static MACHINE_CONFIG_START( royalqn, nightgal_state ) +static MACHINE_CONFIG_START( royalqn ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80,MASTER_CLOCK / 8) /* ? MHz */ @@ -1035,12 +1035,12 @@ DRIVER_INIT_MEMBER(nightgal_state,ngalsumr) } /* Type 1 HW */ -GAME( 1984, nightgal, 0, royalqn, sexygal, driver_device, 0, ROT0, "Nichibutsu", "Night Gal (Japan 840920 AG 1-00)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1984, ngtbunny, 0, royalqn, sexygal, driver_device, 0, ROT0, "Nichibutsu", "Night Bunny (Japan 840601 MRN 2-10)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1984, royalngt, ngtbunny, royalqn, sexygal, driver_device, 0, ROT0, "Royal Denshi", "Royal Night [BET] (Japan 840220 RN 2-00)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1984, royalqn, 0, royalqn, sexygal, nightgal_state, royalqn, ROT0, "Royal Denshi", "Royal Queen [BET] (Japan 841010 RQ 0-07)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1984, nightgal, 0, royalqn, sexygal, nightgal_state, 0, ROT0, "Nichibutsu", "Night Gal (Japan 840920 AG 1-00)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1984, ngtbunny, 0, royalqn, sexygal, nightgal_state, 0, ROT0, "Nichibutsu", "Night Bunny (Japan 840601 MRN 2-10)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1984, royalngt, ngtbunny, royalqn, sexygal, nightgal_state, 0, ROT0, "Royal Denshi", "Royal Night [BET] (Japan 840220 RN 2-00)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1984, royalqn, 0, royalqn, sexygal, nightgal_state, royalqn, ROT0, "Royal Denshi", "Royal Queen [BET] (Japan 841010 RQ 0-07)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) /* Type 2 HW */ -GAME( 1985, sexygal, 0, sexygal, sexygal, driver_device, 0, ROT0, "Nichibutsu", "Sexy Gal (Japan 850501 SXG 1-00)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1985, sweetgal, sexygal, sexygal, sexygal, driver_device, 0, ROT0, "Nichibutsu", "Sweet Gal (Japan 850510 SWG 1-02)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1985, sexygal, 0, sexygal, sexygal, nightgal_state, 0, ROT0, "Nichibutsu", "Sexy Gal (Japan 850501 SXG 1-00)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1985, sweetgal, sexygal, sexygal, sexygal, nightgal_state, 0, ROT0, "Nichibutsu", "Sweet Gal (Japan 850510 SWG 1-02)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) /* Type 3 HW */ -GAME( 1985, ngalsumr, 0, ngalsumr,sexygal, nightgal_state, ngalsumr,ROT0, "Nichibutsu", "Night Gal Summer (Japan 850702 NGS 0-01)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1985, ngalsumr, 0, ngalsumr,sexygal, nightgal_state, ngalsumr, ROT0, "Nichibutsu", "Night Gal Summer (Japan 850702 NGS 0-01)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/ninjakd2.cpp b/src/mame/drivers/ninjakd2.cpp index 78972c598dc..d1685649fbc 100644 --- a/src/mame/drivers/ninjakd2.cpp +++ b/src/mame/drivers/ninjakd2.cpp @@ -927,7 +927,7 @@ MACHINE_RESET_MEMBER(ninjakd2_state,omegaf) /*****************************************************************************/ -static MACHINE_CONFIG_START( ninjakd2_core, ninjakd2_state ) +static MACHINE_CONFIG_START( ninjakd2_core ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, MAIN_CLOCK_12/2) /* verified */ @@ -1696,7 +1696,7 @@ DRIVER_INIT_MEMBER(ninjakd2_state,robokidj) * *************************************/ -// YEAR, NAME, PARENT, MACHINE, INPUT, INIT, MONITOR,COMPANY,FULLNAME,FLAGS +// YEAR, NAME, PARENT, MACHINE, INPUT, STATE, INIT, MONITOR,COMPANY,FULLNAME,FLAGS GAME( 1987, ninjakd2, 0, ninjakd2, ninjakd2, ninjakd2_state, ninjakd2, ROT0, "UPL", "Ninja-Kid II / NinjaKun Ashura no Shou (set 1)", MACHINE_SUPPORTS_SAVE ) GAME( 1987, ninjakd2a, ninjakd2, ninjakd2b, ninjakd2, ninjakd2_state, bootleg, ROT0, "UPL", "Ninja-Kid II / NinjaKun Ashura no Shou (set 2, bootleg?)", MACHINE_SUPPORTS_SAVE ) GAME( 1987, ninjakd2b, ninjakd2, ninjakd2b, rdaction, ninjakd2_state, bootleg, ROT0, "UPL", "Ninja-Kid II / NinjaKun Ashura no Shou (set 3, bootleg?)", MACHINE_SUPPORTS_SAVE ) @@ -1712,7 +1712,7 @@ GAME( 1988, arkarea, 0, arkarea, arkarea, ninjakd2_state, mnight, R GAME( 1988, robokid, 0, robokid, robokid, ninjakd2_state, robokid, ROT0, "UPL", "Atomic Robo-kid (World, Type-2)", MACHINE_SUPPORTS_SAVE | MACHINE_UNEMULATED_PROTECTION ) // 3-digit highscore names GAME( 1988, robokidj, robokid, robokid, robokidj, ninjakd2_state, robokidj, ROT0, "UPL", "Atomic Robo-kid (Japan, Type-2, set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_UNEMULATED_PROTECTION ) GAME( 1988, robokidj2, robokid, robokid, robokidj, ninjakd2_state, robokidj, ROT0, "UPL", "Atomic Robo-kid (Japan, Type-2, set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_UNEMULATED_PROTECTION ) -GAME( 1988, robokidj3, robokid, robokid, robokidj, driver_device, 0, ROT0, "UPL", "Atomic Robo-kid (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_UNEMULATED_PROTECTION ) +GAME( 1988, robokidj3, robokid, robokid, robokidj, ninjakd2_state, 0, ROT0, "UPL", "Atomic Robo-kid (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_UNEMULATED_PROTECTION ) -GAME( 1989, omegaf, 0, omegaf, omegaf, driver_device, 0, ROT270, "UPL", "Omega Fighter", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, omegafs, omegaf, omegaf, omegaf, driver_device, 0, ROT270, "UPL", "Omega Fighter Special", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, omegaf, 0, omegaf, omegaf, ninjakd2_state, 0, ROT270, "UPL", "Omega Fighter", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, omegafs, omegaf, omegaf, omegaf, ninjakd2_state, 0, ROT270, "UPL", "Omega Fighter Special", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/ninjaw.cpp b/src/mame/drivers/ninjaw.cpp index 409281acad2..d6d72ad8b11 100644 --- a/src/mame/drivers/ninjaw.cpp +++ b/src/mame/drivers/ninjaw.cpp @@ -723,7 +723,7 @@ void ninjaw_state::machine_reset() machine().sound().system_enable(true); /* mixer enabled */ } -static MACHINE_CONFIG_START( ninjaw, ninjaw_state ) +static MACHINE_CONFIG_START( ninjaw ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000,16000000/2) /* 8 MHz ? */ @@ -843,7 +843,7 @@ static MACHINE_CONFIG_START( ninjaw, ninjaw_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( darius2, ninjaw_state ) +static MACHINE_CONFIG_START( darius2 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000,16000000/2) /* 8 MHz ? */ @@ -1177,8 +1177,8 @@ ROM_END /* Working Games */ -// YEAR, NAME, PARENT, MACHINE, INPUT, INIT,MONITOR,COMPANY,FULLNAME,FLAGS -GAME( 1987, ninjaw, 0, ninjaw, ninjaw, driver_device, 0, ROT0, "Taito Corporation Japan", "The Ninja Warriors (World)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, ninjawj, ninjaw, ninjaw, ninjawj, driver_device, 0, ROT0, "Taito Corporation", "The Ninja Warriors (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, ninjawu, ninjaw, ninjaw, ninjawj, driver_device, 0, ROT0, "Taito Corporation America (licensed to Romstar)", "The Ninja Warriors (US)", MACHINE_SUPPORTS_SAVE ) /* Uses same coinage as World, see notes */ -GAME( 1989, darius2, 0, darius2, darius2, driver_device, 0, ROT0, "Taito Corporation", "Darius II (triple screen) (Japan)", MACHINE_SUPPORTS_SAVE ) +// YEAR, NAME, PARENT, MACHINE, INPUT, STATE INIT,MONITOR,COMPANY, FULLNAME,FLAGS +GAME( 1987, ninjaw, 0, ninjaw, ninjaw, ninjaw_state, 0, ROT0, "Taito Corporation Japan", "The Ninja Warriors (World)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, ninjawj, ninjaw, ninjaw, ninjawj, ninjaw_state, 0, ROT0, "Taito Corporation", "The Ninja Warriors (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, ninjawu, ninjaw, ninjaw, ninjawj, ninjaw_state, 0, ROT0, "Taito Corporation America (licensed to Romstar)", "The Ninja Warriors (US)", MACHINE_SUPPORTS_SAVE ) /* Uses same coinage as World, see notes */ +GAME( 1989, darius2, 0, darius2, darius2, ninjaw_state, 0, ROT0, "Taito Corporation", "Darius II (triple screen) (Japan)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/nitedrvr.cpp b/src/mame/drivers/nitedrvr.cpp index 1e006b023c9..3b67962236d 100644 --- a/src/mame/drivers/nitedrvr.cpp +++ b/src/mame/drivers/nitedrvr.cpp @@ -139,7 +139,7 @@ GFXDECODE_END /* Machine Driver */ -static MACHINE_CONFIG_START( nitedrvr, nitedrvr_state ) +static MACHINE_CONFIG_START( nitedrvr ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, XTAL_12_096MHz/12) // 1 MHz @@ -203,4 +203,4 @@ ROM_END /* Game Drivers */ -GAME( 1976, nitedrvr, 0, nitedrvr, nitedrvr, driver_device, 0, ROT0, "Atari", "Night Driver", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1976, nitedrvr, 0, nitedrvr, nitedrvr, nitedrvr_state, 0, ROT0, "Atari", "Night Driver", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/niyanpai.cpp b/src/mame/drivers/niyanpai.cpp index 03ce359a07f..1241a93039b 100644 --- a/src/mame/drivers/niyanpai.cpp +++ b/src/mame/drivers/niyanpai.cpp @@ -718,7 +718,7 @@ static const z80_daisy_config daisy_chain_sound[] = { nullptr } }; -static MACHINE_CONFIG_START( niyanpai, niyanpai_state ) +static MACHINE_CONFIG_START( niyanpai ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 12288000/2) /* TMP68301, 6.144 MHz */ diff --git a/src/mame/drivers/nmg5.cpp b/src/mame/drivers/nmg5.cpp index f4cb152f221..4cb894c99d4 100644 --- a/src/mame/drivers/nmg5.cpp +++ b/src/mame/drivers/nmg5.cpp @@ -974,7 +974,7 @@ void nmg5_state::machine_reset() m_input_data = 0; } -static MACHINE_CONFIG_START( nmg5, nmg5_state ) +static MACHINE_CONFIG_START( nmg5 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 16000000) /* 16 MHz */ @@ -1016,7 +1016,7 @@ static MACHINE_CONFIG_START( nmg5, nmg5_state ) MCFG_YM3812_IRQ_HANDLER(INPUTLINE("soundcpu", 0)) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MCFG_OKIM6295_ADD("oki", 1000000 , OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", 1000000 , PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END diff --git a/src/mame/drivers/nmk16.cpp b/src/mame/drivers/nmk16.cpp index ae2c019c7c3..554b2c8d81a 100644 --- a/src/mame/drivers/nmk16.cpp +++ b/src/mame/drivers/nmk16.cpp @@ -169,14 +169,14 @@ WRITE16_MEMBER(nmk16_state::nmk16_x0016_w) // this is part of a watchdog scheme // generating an NMI on the NMK004 keeps a timer alive // if that timer expires the NMK004 resets the system - m_nmk004->m_cpu->set_input_line(INPUT_LINE_NMI, (data & 1) ? ASSERT_LINE : CLEAR_LINE); + m_nmk004->nmi_w(BIT(data, 0) ? ASSERT_LINE : CLEAR_LINE); } WRITE16_MEMBER(nmk16_state::nmk16_bioship_x0016_w) { // ugly, ugly logic invert hack, but otherwise bioship doesn't hit the NMI enough to keep the game alive! - m_nmk004->m_cpu->set_input_line(INPUT_LINE_NMI, (data & 1) ? CLEAR_LINE : ASSERT_LINE); + m_nmk004->nmi_w(BIT(data, 0) ? CLEAR_LINE : ASSERT_LINE); } /********************************************************** @@ -3872,7 +3872,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(nmk16_state::nmk16_scanline) -static MACHINE_CONFIG_START( tharrier, nmk16_state ) +static MACHINE_CONFIG_START( tharrier ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 10000000) /* 10 MHz */ @@ -3906,16 +3906,16 @@ static MACHINE_CONFIG_START( tharrier, nmk16_state ) MCFG_SOUND_ROUTE(2, "mono", 0.50) MCFG_SOUND_ROUTE(3, "mono", 1.20) - MCFG_OKIM6295_ADD("oki1", 16000000/4, OKIM6295_PIN7_LOW) + MCFG_OKIM6295_ADD("oki1", 16000000/4, PIN7_LOW) MCFG_DEVICE_ADDRESS_MAP(AS_0, oki1_map) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10) - MCFG_OKIM6295_ADD("oki2", 16000000/4, OKIM6295_PIN7_LOW) + MCFG_OKIM6295_ADD("oki2", 16000000/4, PIN7_LOW) MCFG_DEVICE_ADDRESS_MAP(AS_0, oki2_map) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( mustang, nmk16_state ) +static MACHINE_CONFIG_START( mustang ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 10000000) /* 10 MHz ? */ @@ -3937,6 +3937,7 @@ static MACHINE_CONFIG_START( mustang, nmk16_state ) MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_NMK004_ADD("nmk004", 8000000) + MCFG_NMK004_RESET_CB(INPUTLINE("maincpu", INPUT_LINE_RESET)) MCFG_SOUND_ADD("ymsnd", YM2203, 1500000) MCFG_YM2203_IRQ_HANDLER(DEVWRITELINE("nmk004", nmk004_device, ym2203_irq_handler)) @@ -3945,16 +3946,16 @@ static MACHINE_CONFIG_START( mustang, nmk16_state ) MCFG_SOUND_ROUTE(2, "mono", 0.50) MCFG_SOUND_ROUTE(3, "mono", 1.20) - MCFG_OKIM6295_ADD("oki1", 16000000/4, OKIM6295_PIN7_LOW) + MCFG_OKIM6295_ADD("oki1", 16000000/4, PIN7_LOW) MCFG_DEVICE_ADDRESS_MAP(AS_0, oki1_map) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10) - MCFG_OKIM6295_ADD("oki2", 16000000/4, OKIM6295_PIN7_LOW) + MCFG_OKIM6295_ADD("oki2", 16000000/4, PIN7_LOW) MCFG_DEVICE_ADDRESS_MAP(AS_0, oki2_map) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( mustangb, nmk16_state ) +static MACHINE_CONFIG_START( mustangb ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 10000000) /* 10 MHz ? */ @@ -3982,7 +3983,7 @@ static MACHINE_CONFIG_START( mustangb, nmk16_state ) MCFG_YM3812_IRQ_HANDLER(DEVWRITELINE("seibu_sound", seibu_sound_device, fm_irqhandler)) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MCFG_OKIM6295_ADD("oki", 1320000, OKIM6295_PIN7_LOW) + MCFG_OKIM6295_ADD("oki", 1320000, PIN7_LOW) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40) MCFG_DEVICE_ADD("seibu_sound", SEIBU_SOUND, 0) @@ -3995,7 +3996,7 @@ MACHINE_CONFIG_END #define BIOSHIP_CRYSTAL1 10000000 #define BIOSHIP_CRYSTAL2 12000000 -static MACHINE_CONFIG_START( bioship, nmk16_state ) +static MACHINE_CONFIG_START( bioship ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, BIOSHIP_CRYSTAL1 ) /* 10.0 MHz (verified) */ @@ -4017,6 +4018,7 @@ static MACHINE_CONFIG_START( bioship, nmk16_state ) MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_NMK004_ADD("nmk004", 8000000) + MCFG_NMK004_RESET_CB(INPUTLINE("maincpu", INPUT_LINE_RESET)) MCFG_SOUND_ADD("ymsnd", YM2203, BIOSHIP_CRYSTAL2 / 8) /* 1.5 Mhz (verified) */ MCFG_YM2203_IRQ_HANDLER(DEVWRITELINE("nmk004", nmk004_device, ym2203_irq_handler)) @@ -4025,16 +4027,16 @@ static MACHINE_CONFIG_START( bioship, nmk16_state ) MCFG_SOUND_ROUTE(2, "mono", 0.50) MCFG_SOUND_ROUTE(3, "mono", 1.20) - MCFG_OKIM6295_ADD("oki1", BIOSHIP_CRYSTAL2 / 3 , OKIM6295_PIN7_LOW) /* 4.0 Mhz, Pin 7 High (verified) */ + MCFG_OKIM6295_ADD("oki1", BIOSHIP_CRYSTAL2 / 3 , PIN7_LOW) /* 4.0 Mhz, Pin 7 High (verified) */ MCFG_DEVICE_ADDRESS_MAP(AS_0, oki1_map) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10) - MCFG_OKIM6295_ADD("oki2", BIOSHIP_CRYSTAL2 / 3 , OKIM6295_PIN7_LOW) /* 4.0 Mhz, Pin 7 High (verified) */ + MCFG_OKIM6295_ADD("oki2", BIOSHIP_CRYSTAL2 / 3 , PIN7_LOW) /* 4.0 Mhz, Pin 7 High (verified) */ MCFG_DEVICE_ADDRESS_MAP(AS_0, oki2_map) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( vandyke, nmk16_state ) +static MACHINE_CONFIG_START( vandyke ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_10MHz) /* 68000p12 running at 10Mhz, verified on pcb */ @@ -4056,6 +4058,7 @@ static MACHINE_CONFIG_START( vandyke, nmk16_state ) MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_NMK004_ADD("nmk004", 8000000) + MCFG_NMK004_RESET_CB(INPUTLINE("maincpu", INPUT_LINE_RESET)) MCFG_SOUND_ADD("ymsnd", YM2203, XTAL_12MHz/8) /* verified on pcb */ MCFG_YM2203_IRQ_HANDLER(DEVWRITELINE("nmk004", nmk004_device, ym2203_irq_handler)) @@ -4064,16 +4067,16 @@ static MACHINE_CONFIG_START( vandyke, nmk16_state ) MCFG_SOUND_ROUTE(2, "mono", 0.50) MCFG_SOUND_ROUTE(3, "mono", 1.20) - MCFG_OKIM6295_ADD("oki1", XTAL_12MHz/3, OKIM6295_PIN7_LOW) /* verified on pcb */ + MCFG_OKIM6295_ADD("oki1", XTAL_12MHz/3, PIN7_LOW) /* verified on pcb */ MCFG_DEVICE_ADDRESS_MAP(AS_0, oki1_map) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10) - MCFG_OKIM6295_ADD("oki2", XTAL_12MHz/3, OKIM6295_PIN7_LOW) /* verified on pcb */ + MCFG_OKIM6295_ADD("oki2", XTAL_12MHz/3, PIN7_LOW) /* verified on pcb */ MCFG_DEVICE_ADDRESS_MAP(AS_0, oki2_map) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( vandykeb, nmk16_state ) +static MACHINE_CONFIG_START( vandykeb ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 10000000) /* 10 MHz ? */ @@ -4097,11 +4100,11 @@ static MACHINE_CONFIG_START( vandykeb, nmk16_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki1", 16000000/4, OKIM6295_PIN7_LOW) + MCFG_OKIM6295_ADD("oki1", 16000000/4, PIN7_LOW) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( acrobatm, nmk16_state ) +static MACHINE_CONFIG_START( acrobatm ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 10000000) /* 10 MHz (verified on pcb) */ @@ -4123,6 +4126,7 @@ static MACHINE_CONFIG_START( acrobatm, nmk16_state ) MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_NMK004_ADD("nmk004", 8000000) + MCFG_NMK004_RESET_CB(INPUTLINE("maincpu", INPUT_LINE_RESET)) MCFG_SOUND_ADD("ymsnd", YM2203, 1500000) /* (verified on pcb) */ MCFG_YM2203_IRQ_HANDLER(DEVWRITELINE("nmk004", nmk004_device, ym2203_irq_handler)) @@ -4131,17 +4135,17 @@ static MACHINE_CONFIG_START( acrobatm, nmk16_state ) MCFG_SOUND_ROUTE(2, "mono", 0.50) MCFG_SOUND_ROUTE(3, "mono", 1.20) - MCFG_OKIM6295_ADD("oki1", 16000000/4, OKIM6295_PIN7_LOW) /* (verified on pcb) on the pcb pin7 is not connected to gnd or +5v! */ + MCFG_OKIM6295_ADD("oki1", 16000000/4, PIN7_LOW) /* (verified on pcb) on the pcb pin7 is not connected to gnd or +5v! */ MCFG_DEVICE_ADDRESS_MAP(AS_0, oki1_map) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10) - MCFG_OKIM6295_ADD("oki2", 16000000/4, OKIM6295_PIN7_LOW) /* (verified on pcb) on the pcb pin7 is not connected to gnd or +5v! */ + MCFG_OKIM6295_ADD("oki2", 16000000/4, PIN7_LOW) /* (verified on pcb) on the pcb pin7 is not connected to gnd or +5v! */ MCFG_DEVICE_ADDRESS_MAP(AS_0, oki2_map) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( tdragonb, nmk16_state ) /* bootleg using Raiden sound hardware */ +static MACHINE_CONFIG_START( tdragonb ) /* bootleg using Raiden sound hardware */ /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 10000000) @@ -4169,7 +4173,7 @@ static MACHINE_CONFIG_START( tdragonb, nmk16_state ) /* bootleg using Raiden MCFG_YM3812_IRQ_HANDLER(DEVWRITELINE("seibu_sound", seibu_sound_device, fm_irqhandler)) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MCFG_OKIM6295_ADD("oki", 1320000, OKIM6295_PIN7_LOW) + MCFG_OKIM6295_ADD("oki", 1320000, PIN7_LOW) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40) MCFG_DEVICE_ADD("seibu_sound", SEIBU_SOUND, 0) @@ -4179,7 +4183,7 @@ static MACHINE_CONFIG_START( tdragonb, nmk16_state ) /* bootleg using Raiden MCFG_SEIBU_SOUND_YM_WRITE_CB(DEVWRITE8("ymsnd", ym3812_device, write)) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( tdragon, nmk16_state ) +static MACHINE_CONFIG_START( tdragon ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_8MHz) /* verified on pcb */ @@ -4201,6 +4205,7 @@ static MACHINE_CONFIG_START( tdragon, nmk16_state ) MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_NMK004_ADD("nmk004", 8000000) + MCFG_NMK004_RESET_CB(INPUTLINE("maincpu", INPUT_LINE_RESET)) MCFG_SOUND_ADD("ymsnd", YM2203, XTAL_12MHz/8) /* verified on pcb */ MCFG_YM2203_IRQ_HANDLER(DEVWRITELINE("nmk004", nmk004_device, ym2203_irq_handler)) @@ -4209,11 +4214,11 @@ static MACHINE_CONFIG_START( tdragon, nmk16_state ) MCFG_SOUND_ROUTE(2, "mono", 0.50) MCFG_SOUND_ROUTE(3, "mono", 1.20) - MCFG_OKIM6295_ADD("oki1", XTAL_8MHz/2, OKIM6295_PIN7_LOW) /* verified on pcb */ + MCFG_OKIM6295_ADD("oki1", XTAL_8MHz/2, PIN7_LOW) /* verified on pcb */ MCFG_DEVICE_ADDRESS_MAP(AS_0, oki1_map) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10) - MCFG_OKIM6295_ADD("oki2", XTAL_8MHz/2, OKIM6295_PIN7_LOW) /* verified on pcb */ + MCFG_OKIM6295_ADD("oki2", XTAL_8MHz/2, PIN7_LOW) /* verified on pcb */ MCFG_DEVICE_ADDRESS_MAP(AS_0, oki2_map) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10) MACHINE_CONFIG_END @@ -4221,7 +4226,7 @@ static MACHINE_CONFIG_DERIVED( tdragon_prot, tdragon ) MCFG_TIMER_DRIVER_ADD_PERIODIC("coinsim", nmk16_state, tdragon_mcu_sim, attotime::from_hz(10000)) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( ssmissin, nmk16_state ) +static MACHINE_CONFIG_START( ssmissin ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 8000000) /* 8 Mhz */ @@ -4247,13 +4252,13 @@ static MACHINE_CONFIG_START( ssmissin, nmk16_state ) MCFG_GENERIC_LATCH_8_ADD("soundlatch") - MCFG_OKIM6295_ADD("oki1", 8000000/8, OKIM6295_PIN7_HIGH) /* 1 Mhz, pin 7 high */ + MCFG_OKIM6295_ADD("oki1", 8000000/8, PIN7_HIGH) /* 1 Mhz, pin 7 high */ MCFG_DEVICE_ADDRESS_MAP(AS_0, oki1_map) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( strahl, nmk16_state ) +static MACHINE_CONFIG_START( strahl ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 12000000) /* 12 MHz ? */ @@ -4274,6 +4279,7 @@ static MACHINE_CONFIG_START( strahl, nmk16_state ) MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_NMK004_ADD("nmk004", 8000000) + MCFG_NMK004_RESET_CB(INPUTLINE("maincpu", INPUT_LINE_RESET)) MCFG_SOUND_ADD("ymsnd", YM2203, 1500000) MCFG_YM2203_IRQ_HANDLER(DEVWRITELINE("nmk004", nmk004_device, ym2203_irq_handler)) @@ -4282,16 +4288,16 @@ static MACHINE_CONFIG_START( strahl, nmk16_state ) MCFG_SOUND_ROUTE(2, "mono", 0.50) MCFG_SOUND_ROUTE(3, "mono", 1.20) - MCFG_OKIM6295_ADD("oki1", 16000000/4, OKIM6295_PIN7_LOW) + MCFG_OKIM6295_ADD("oki1", 16000000/4, PIN7_LOW) MCFG_DEVICE_ADDRESS_MAP(AS_0, oki1_map) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10) - MCFG_OKIM6295_ADD("oki2", 16000000/4, OKIM6295_PIN7_LOW) + MCFG_OKIM6295_ADD("oki2", 16000000/4, PIN7_LOW) MCFG_DEVICE_ADDRESS_MAP(AS_0, oki2_map) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( hachamf, nmk16_state ) +static MACHINE_CONFIG_START( hachamf ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 10000000) /* 10 MHz ? */ @@ -4313,6 +4319,7 @@ static MACHINE_CONFIG_START( hachamf, nmk16_state ) MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_NMK004_ADD("nmk004", 8000000) + MCFG_NMK004_RESET_CB(INPUTLINE("maincpu", INPUT_LINE_RESET)) MCFG_SOUND_ADD("ymsnd", YM2203, 1500000) MCFG_YM2203_IRQ_HANDLER(DEVWRITELINE("nmk004", nmk004_device, ym2203_irq_handler)) @@ -4321,11 +4328,11 @@ static MACHINE_CONFIG_START( hachamf, nmk16_state ) MCFG_SOUND_ROUTE(2, "mono", 0.50) MCFG_SOUND_ROUTE(3, "mono", 1.20) - MCFG_OKIM6295_ADD("oki1", 16000000/4, OKIM6295_PIN7_LOW) + MCFG_OKIM6295_ADD("oki1", 16000000/4, PIN7_LOW) MCFG_DEVICE_ADDRESS_MAP(AS_0, oki1_map) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10) - MCFG_OKIM6295_ADD("oki2", 16000000/4, OKIM6295_PIN7_LOW) + MCFG_OKIM6295_ADD("oki2", 16000000/4, PIN7_LOW) MCFG_DEVICE_ADDRESS_MAP(AS_0, oki2_map) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10) MACHINE_CONFIG_END @@ -4334,7 +4341,7 @@ static MACHINE_CONFIG_DERIVED( hachamf_prot, hachamf ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( macross, nmk16_state ) +static MACHINE_CONFIG_START( macross ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 10000000) /* 10 MHz ? */ @@ -4356,6 +4363,7 @@ static MACHINE_CONFIG_START( macross, nmk16_state ) MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_NMK004_ADD("nmk004", 8000000) + MCFG_NMK004_RESET_CB(INPUTLINE("maincpu", INPUT_LINE_RESET)) MCFG_SOUND_ADD("ymsnd", YM2203, 1500000) MCFG_YM2203_IRQ_HANDLER(DEVWRITELINE("nmk004", nmk004_device, ym2203_irq_handler)) @@ -4364,16 +4372,16 @@ static MACHINE_CONFIG_START( macross, nmk16_state ) MCFG_SOUND_ROUTE(2, "mono", 0.50) MCFG_SOUND_ROUTE(3, "mono", 1.20) - MCFG_OKIM6295_ADD("oki1", 16000000/4, OKIM6295_PIN7_LOW) + MCFG_OKIM6295_ADD("oki1", 16000000/4, PIN7_LOW) MCFG_DEVICE_ADDRESS_MAP(AS_0, oki1_map) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10) - MCFG_OKIM6295_ADD("oki2", 16000000/4, OKIM6295_PIN7_LOW) + MCFG_OKIM6295_ADD("oki2", 16000000/4, PIN7_LOW) MCFG_DEVICE_ADDRESS_MAP(AS_0, oki2_map) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( blkheart, nmk16_state ) +static MACHINE_CONFIG_START( blkheart ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_8MHz) /* verified on pcb */ @@ -4395,6 +4403,7 @@ static MACHINE_CONFIG_START( blkheart, nmk16_state ) MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_NMK004_ADD("nmk004", 8000000) + MCFG_NMK004_RESET_CB(INPUTLINE("maincpu", INPUT_LINE_RESET)) MCFG_SOUND_ADD("ymsnd", YM2203, XTAL_12MHz/8 ) /* verified on pcb */ MCFG_YM2203_IRQ_HANDLER(DEVWRITELINE("nmk004", nmk004_device, ym2203_irq_handler)) @@ -4403,16 +4412,16 @@ static MACHINE_CONFIG_START( blkheart, nmk16_state ) MCFG_SOUND_ROUTE(2, "mono", 0.50) MCFG_SOUND_ROUTE(3, "mono", 1.20) - MCFG_OKIM6295_ADD("oki1", XTAL_8MHz/2, OKIM6295_PIN7_LOW) /* verified on pcb */ + MCFG_OKIM6295_ADD("oki1", XTAL_8MHz/2, PIN7_LOW) /* verified on pcb */ MCFG_DEVICE_ADDRESS_MAP(AS_0, oki1_map) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10) - MCFG_OKIM6295_ADD("oki2", XTAL_8MHz/2, OKIM6295_PIN7_LOW) /* verified on pcb */ + MCFG_OKIM6295_ADD("oki2", XTAL_8MHz/2, PIN7_LOW) /* verified on pcb */ MCFG_DEVICE_ADDRESS_MAP(AS_0, oki2_map) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( gunnail, nmk16_state ) +static MACHINE_CONFIG_START( gunnail ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_10MHz) /* verified on pcb */ @@ -4433,6 +4442,7 @@ static MACHINE_CONFIG_START( gunnail, nmk16_state ) MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_NMK004_ADD("nmk004", XTAL_16MHz/2) /* verified on pcb */ + MCFG_NMK004_RESET_CB(INPUTLINE("maincpu", INPUT_LINE_RESET)) MCFG_SOUND_ADD("ymsnd", YM2203, XTAL_12MHz/8) /* verified on pcb */ MCFG_YM2203_IRQ_HANDLER(DEVWRITELINE("nmk004", nmk004_device, ym2203_irq_handler)) @@ -4441,16 +4451,16 @@ static MACHINE_CONFIG_START( gunnail, nmk16_state ) MCFG_SOUND_ROUTE(2, "mono", 0.50) MCFG_SOUND_ROUTE(3, "mono", 1.20) - MCFG_OKIM6295_ADD("oki1", XTAL_16MHz/4, OKIM6295_PIN7_LOW) /* verified on pcb */ + MCFG_OKIM6295_ADD("oki1", XTAL_16MHz/4, PIN7_LOW) /* verified on pcb */ MCFG_DEVICE_ADDRESS_MAP(AS_0, oki1_map) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10) - MCFG_OKIM6295_ADD("oki2", XTAL_16MHz/4, OKIM6295_PIN7_LOW) /* verified on pcb */ + MCFG_OKIM6295_ADD("oki2", XTAL_16MHz/4, PIN7_LOW) /* verified on pcb */ MCFG_DEVICE_ADDRESS_MAP(AS_0, oki2_map) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( macross2, nmk16_state ) +static MACHINE_CONFIG_START( macross2 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 10000000) /* 10 MHz ? */ @@ -4485,10 +4495,10 @@ static MACHINE_CONFIG_START( macross2, nmk16_state ) MCFG_SOUND_ROUTE(2, "mono", 0.50) MCFG_SOUND_ROUTE(3, "mono", 1.20) - MCFG_OKIM6295_ADD("oki1", 16000000/4, OKIM6295_PIN7_LOW) + MCFG_OKIM6295_ADD("oki1", 16000000/4, PIN7_LOW) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10) - MCFG_OKIM6295_ADD("oki2", 16000000/4, OKIM6295_PIN7_LOW) + MCFG_OKIM6295_ADD("oki2", 16000000/4, PIN7_LOW) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10) MCFG_DEVICE_ADD("nmk112", NMK112, 0) @@ -4496,7 +4506,7 @@ static MACHINE_CONFIG_START( macross2, nmk16_state ) MCFG_NMK112_ROM1("oki2") MACHINE_CONFIG_END -static MACHINE_CONFIG_START( tdragon2, nmk16_state ) +static MACHINE_CONFIG_START( tdragon2 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 10000000) /* 10 MHz */ @@ -4531,10 +4541,10 @@ static MACHINE_CONFIG_START( tdragon2, nmk16_state ) MCFG_SOUND_ROUTE(2, "mono", 0.50) MCFG_SOUND_ROUTE(3, "mono", 1.20) - MCFG_OKIM6295_ADD("oki1", 16000000/4, OKIM6295_PIN7_LOW) + MCFG_OKIM6295_ADD("oki1", 16000000/4, PIN7_LOW) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10) - MCFG_OKIM6295_ADD("oki2", 16000000/4, OKIM6295_PIN7_LOW) + MCFG_OKIM6295_ADD("oki2", 16000000/4, PIN7_LOW) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10) MCFG_DEVICE_ADD("nmk112", NMK112, 0) @@ -4542,7 +4552,7 @@ static MACHINE_CONFIG_START( tdragon2, nmk16_state ) MCFG_NMK112_ROM1("oki2") MACHINE_CONFIG_END -static MACHINE_CONFIG_START( raphero, nmk16_state ) +static MACHINE_CONFIG_START( raphero ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 14000000) /* 14 MHz measured */ @@ -4576,10 +4586,10 @@ static MACHINE_CONFIG_START( raphero, nmk16_state ) MCFG_SOUND_ROUTE(2, "mono", 0.50) MCFG_SOUND_ROUTE(3, "mono", 1.20) - MCFG_OKIM6295_ADD("oki1", 16000000/4, OKIM6295_PIN7_LOW) + MCFG_OKIM6295_ADD("oki1", 16000000/4, PIN7_LOW) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10) - MCFG_OKIM6295_ADD("oki2", 16000000/4, OKIM6295_PIN7_LOW) + MCFG_OKIM6295_ADD("oki2", 16000000/4, PIN7_LOW) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10) MCFG_DEVICE_ADD("nmk112", NMK112, 0) @@ -4587,7 +4597,7 @@ static MACHINE_CONFIG_START( raphero, nmk16_state ) MCFG_NMK112_ROM1("oki2") MACHINE_CONFIG_END -static MACHINE_CONFIG_START( bjtwin, nmk16_state ) +static MACHINE_CONFIG_START( bjtwin ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 10000000) /* verified on pcb */ @@ -4608,10 +4618,10 @@ static MACHINE_CONFIG_START( bjtwin, nmk16_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki1", 16000000/4, OKIM6295_PIN7_LOW) /* verified on pcb */ + MCFG_OKIM6295_ADD("oki1", 16000000/4, PIN7_LOW) /* verified on pcb */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) - MCFG_OKIM6295_ADD("oki2", 16000000/4, OKIM6295_PIN7_LOW) /* verified on pcb */ + MCFG_OKIM6295_ADD("oki2", 16000000/4, PIN7_LOW) /* verified on pcb */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) MCFG_DEVICE_ADD("nmk112", NMK112, 0) @@ -4621,7 +4631,7 @@ MACHINE_CONFIG_END -static MACHINE_CONFIG_START( atombjt, nmk16_state ) +static MACHINE_CONFIG_START( atombjt ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 10000000) /* there is a 28mhz crystal and a 10mhz crystal near the 12 rated CPU */ @@ -4643,7 +4653,7 @@ static MACHINE_CONFIG_START( atombjt, nmk16_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki1", 10000000/8, OKIM6295_PIN7_LOW) // divider and pin not verified + MCFG_OKIM6295_ADD("oki1", 10000000/8, PIN7_LOW) // divider and pin not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) MACHINE_CONFIG_END @@ -4668,7 +4678,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(nmk16_state::manybloc_scanline) } // non-nmk board, different to the others, very timing sensitive -static MACHINE_CONFIG_START( manybloc, nmk16_state ) +static MACHINE_CONFIG_START( manybloc ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 10000000) /* 10? MHz - check */ @@ -4709,11 +4719,11 @@ static MACHINE_CONFIG_START( manybloc, nmk16_state ) MCFG_SOUND_ROUTE(2, "mono", 0.50) MCFG_SOUND_ROUTE(3, "mono", 1.20) - MCFG_OKIM6295_ADD("oki1", 16000000/4, OKIM6295_PIN7_LOW) + MCFG_OKIM6295_ADD("oki1", 16000000/4, PIN7_LOW) MCFG_DEVICE_ADDRESS_MAP(AS_0, oki1_map) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10) - MCFG_OKIM6295_ADD("oki2", 16000000/4, OKIM6295_PIN7_LOW) + MCFG_OKIM6295_ADD("oki2", 16000000/4, PIN7_LOW) MCFG_DEVICE_ADDRESS_MAP(AS_0, oki2_map) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10) MACHINE_CONFIG_END @@ -5186,7 +5196,7 @@ GFXDECODE_END ***************************************************************************/ -static MACHINE_CONFIG_START( stagger1, nmk16_state ) +static MACHINE_CONFIG_START( stagger1 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000,XTAL_12MHz) /* 68000p10 running at 12mhz, verified on pcb */ @@ -5217,7 +5227,7 @@ static MACHINE_CONFIG_START( stagger1, nmk16_state ) MCFG_SOUND_ROUTE(0, "lspeaker", 0.30) MCFG_SOUND_ROUTE(1, "rspeaker", 0.30) - MCFG_OKIM6295_ADD("oki1", XTAL_4MHz/4, OKIM6295_PIN7_HIGH) /* verified on pcb */ + MCFG_OKIM6295_ADD("oki1", XTAL_4MHz/4, PIN7_HIGH) /* verified on pcb */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.70) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.70) MACHINE_CONFIG_END @@ -5270,7 +5280,7 @@ static MACHINE_CONFIG_DERIVED( popspops, grdnstrm ) MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_bubl2000) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( firehawk, nmk16_state ) +static MACHINE_CONFIG_START( firehawk ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000,12000000) @@ -5296,10 +5306,10 @@ static MACHINE_CONFIG_START( firehawk, nmk16_state ) MCFG_GENERIC_LATCH_8_ADD("soundlatch") - MCFG_OKIM6295_ADD("oki1", 1000000, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki1", 1000000, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MCFG_OKIM6295_ADD("oki2", 1000000, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki2", 1000000, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -5309,7 +5319,7 @@ static MACHINE_CONFIG_DERIVED( spec2k, firehawk ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( twinactn, nmk16_state ) +static MACHINE_CONFIG_START( twinactn ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000,12000000) @@ -5335,7 +5345,7 @@ static MACHINE_CONFIG_START( twinactn, nmk16_state ) MCFG_GENERIC_LATCH_8_ADD("soundlatch") - MCFG_OKIM6295_ADD("oki1", 1000000, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki1", 1000000, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -7928,113 +7938,113 @@ ROM_END ***************************************************************************/ -GAME( 1989, tharrier, 0, tharrier, tharrier, nmk16_state, tharrier, ROT270, "UPL", "Task Force Harrier", 0 ) -GAME( 1989, tharrieru, tharrier,tharrier, tharrier, nmk16_state, tharrier, ROT270, "UPL (American Sammy license)", "Task Force Harrier (US)", 0 ) // US version but no regional notice +GAME( 1989, tharrier, 0, tharrier, tharrier, nmk16_state, tharrier, ROT270, "UPL", "Task Force Harrier", 0 ) +GAME( 1989, tharrieru, tharrier, tharrier, tharrier, nmk16_state, tharrier, ROT270, "UPL (American Sammy license)", "Task Force Harrier (US)", 0 ) // US version but no regional notice -GAME( 1990, mustang, 0, mustang, mustang, driver_device, 0, ROT0, "UPL", "US AAF Mustang (25th May. 1990)", 0 ) -GAME( 1990, mustangs, mustang, mustang, mustang, driver_device, 0, ROT0, "UPL (Seoul Trading license)", "US AAF Mustang (25th May. 1990 / Seoul Trading)", 0 ) +GAME( 1990, mustang, 0, mustang, mustang, nmk16_state, 0, ROT0, "UPL", "US AAF Mustang (25th May. 1990)", 0 ) +GAME( 1990, mustangs, mustang, mustang, mustang, nmk16_state, 0, ROT0, "UPL (Seoul Trading license)", "US AAF Mustang (25th May. 1990 / Seoul Trading)", 0 ) -GAME( 1990, bioship, 0, bioship, bioship, driver_device, 0, ROT0, "UPL (American Sammy license)", "Bio-ship Paladin", 0 ) // US version but no regional notice -GAME( 1990, sbsgomo, bioship, bioship, bioship, driver_device, 0, ROT0, "UPL", "Space Battle Ship Gomorrah", 0 ) +GAME( 1990, bioship, 0, bioship, bioship, nmk16_state, 0, ROT0, "UPL (American Sammy license)", "Bio-ship Paladin", 0 ) // US version but no regional notice +GAME( 1990, sbsgomo, bioship, bioship, bioship, nmk16_state, 0, ROT0, "UPL", "Space Battle Ship Gomorrah", 0 ) -GAME( 1990, vandyke, 0, vandyke, vandyke, driver_device, 0, ROT270, "UPL", "Vandyke (Japan)", 0 ) -GAME( 1990, vandykejal, vandyke, vandyke, vandyke, driver_device, 0, ROT270, "UPL (Jaleco license)", "Vandyke (Jaleco, set 1)", 0 ) -GAME( 1990, vandykejal2,vandyke, vandyke, vandyke, driver_device, 0, ROT270, "UPL (Jaleco license)", "Vandyke (Jaleco, set 2)", 0 ) -GAME( 1990, vandykeb, vandyke, vandykeb, vandykeb, nmk16_state, vandykeb, ROT270, "bootleg", "Vandyke (bootleg with PIC16c57)", MACHINE_NO_SOUND ) +GAME( 1990, vandyke, 0, vandyke, vandyke, nmk16_state, 0, ROT270, "UPL", "Vandyke (Japan)", 0 ) +GAME( 1990, vandykejal, vandyke, vandyke, vandyke, nmk16_state, 0, ROT270, "UPL (Jaleco license)", "Vandyke (Jaleco, set 1)", 0 ) +GAME( 1990, vandykejal2,vandyke, vandyke, vandyke, nmk16_state, 0, ROT270, "UPL (Jaleco license)", "Vandyke (Jaleco, set 2)", 0 ) +GAME( 1990, vandykeb, vandyke, vandykeb, vandykeb, nmk16_state, vandykeb, ROT270, "bootleg", "Vandyke (bootleg with PIC16c57)", MACHINE_NO_SOUND ) -GAME( 1991, blkheart, 0, blkheart, blkheart, driver_device, 0, ROT0, "UPL", "Black Heart", 0 ) -GAME( 1991, blkheartj,blkheart, blkheart, blkheart, driver_device, 0, ROT0, "UPL", "Black Heart (Japan)", 0 ) +GAME( 1991, blkheart, 0, blkheart, blkheart, nmk16_state, 0, ROT0, "UPL", "Black Heart", 0 ) +GAME( 1991, blkheartj, blkheart, blkheart, blkheart, nmk16_state, 0, ROT0, "UPL", "Black Heart (Japan)", 0 ) + +GAME( 1991, acrobatm, 0, acrobatm, acrobatm, nmk16_state, 0, ROT270, "UPL (Taito license)", "Acrobat Mission", 0 ) + +GAME( 1992, strahl, 0, strahl, strahl, nmk16_state, 0, ROT0, "UPL", "Koutetsu Yousai Strahl (Japan set 1)", 0 ) +GAME( 1992, strahla, strahl, strahl, strahl, nmk16_state, 0, ROT0, "UPL", "Koutetsu Yousai Strahl (Japan set 2)", 0 ) -GAME( 1991, acrobatm, 0, acrobatm, acrobatm, driver_device, 0, ROT270, "UPL (Taito license)", "Acrobat Mission", 0 ) +GAME( 1991, tdragon, 0, tdragon, tdragon, nmk16_state, 0, ROT270, "NMK (Tecmo license)", "Thunder Dragon (8th Jan. 1992, unprotected)", 0 ) +GAME( 1991, tdragon1, tdragon, tdragon_prot, tdragon_prot, nmk16_state, tdragon_prot, ROT270, "NMK (Tecmo license)", "Thunder Dragon (4th Jun. 1991, protected)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NO_SOUND ) -GAME( 1992, strahl, 0, strahl, strahl, driver_device, 0, ROT0, "UPL", "Koutetsu Yousai Strahl (Japan set 1)", 0 ) -GAME( 1992, strahla, strahl, strahl, strahl, driver_device, 0, ROT0, "UPL", "Koutetsu Yousai Strahl (Japan set 2)", 0 ) +GAME( 1991, hachamf, 0, hachamf_prot, hachamf_prot, nmk16_state, hachamf_prot, ROT0, "NMK", "Hacha Mecha Fighter (19th Sep. 1991, protected)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NO_SOUND ) // lots of things wrong due to protection +GAME( 1991, hachamfb, hachamf, hachamf, hachamfb, nmk16_state, 0, ROT0, "bootleg", "Hacha Mecha Fighter (19th Sep. 1991, unprotected, bootleg Thunder Dragon conversion)", 0 ) // appears to be a Thunder Dragon conversion, could be bootleg? -GAME( 1991, tdragon, 0, tdragon, tdragon, driver_device, 0, ROT270, "NMK (Tecmo license)","Thunder Dragon (8th Jan. 1992, unprotected)", 0 ) -GAME( 1991, tdragon1, tdragon, tdragon_prot, tdragon_prot, nmk16_state, tdragon_prot, ROT270, "NMK (Tecmo license)","Thunder Dragon (4th Jun. 1991, protected)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NO_SOUND ) +GAME( 1992, macross, 0, macross, macross, nmk16_state, nmk, ROT270, "Banpresto", "Super Spacefortress Macross / Chou-Jikuu Yousai Macross", 0 ) -GAME( 1991, hachamf, 0, hachamf_prot, hachamf_prot, nmk16_state, hachamf_prot, ROT0, "NMK", "Hacha Mecha Fighter (19th Sep. 1991, protected)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NO_SOUND ) // lots of things wrong due to protection -GAME( 1991, hachamfb, hachamf,hachamf, hachamfb, driver_device, 0, ROT0, "bootleg", "Hacha Mecha Fighter (19th Sep. 1991, unprotected, bootleg Thunder Dragon conversion)", 0 ) // appears to be a Thunder Dragon conversion, could be bootleg? - -GAME( 1992, macross, 0, macross, macross, nmk16_state, nmk, ROT270, "Banpresto", "Super Spacefortress Macross / Chou-Jikuu Yousai Macross", 0 ) - -GAME( 1993, gunnail, 0, gunnail, gunnail, nmk16_state, nmk, ROT270, "NMK / Tecmo", "GunNail (28th May. 1992)", 0 ) // Tecmo is displayed only when set to Japan +GAME( 1993, gunnail, 0, gunnail, gunnail, nmk16_state, nmk, ROT270, "NMK / Tecmo", "GunNail (28th May. 1992)", 0 ) // Tecmo is displayed only when set to Japan // a 1992 version of Gunnail exists, see https://www.youtube.com/watch?v=tf15Wz0zUiA 3:10 -GAME( 1993, macross2, 0, macross2, macross2, nmk16_state, banked_audiocpu, ROT0, "Banpresto", "Super Spacefortress Macross II / Chou-Jikuu Yousai Macross II", MACHINE_NO_COCKTAIL ) -GAME( 1993, macross2g, macross2,macross2, macross2, nmk16_state, banked_audiocpu, ROT0, "Banpresto", "Super Spacefortress Macross II / Chou-Jikuu Yousai Macross II (GAMEST review build)", MACHINE_NO_COCKTAIL ) // Service switch pauses game +GAME( 1993, macross2, 0, macross2, macross2, nmk16_state, banked_audiocpu, ROT0, "Banpresto", "Super Spacefortress Macross II / Chou-Jikuu Yousai Macross II", MACHINE_NO_COCKTAIL ) +GAME( 1993, macross2g, macross2, macross2, macross2, nmk16_state, banked_audiocpu, ROT0, "Banpresto", "Super Spacefortress Macross II / Chou-Jikuu Yousai Macross II (GAMEST review build)", MACHINE_NO_COCKTAIL ) // Service switch pauses game -GAME( 1993, tdragon2, 0, tdragon2, tdragon2, nmk16_state, banked_audiocpu, ROT270, "NMK", "Thunder Dragon 2 (9th Nov. 1993)", MACHINE_NO_COCKTAIL ) -GAME( 1993, tdragon2a,tdragon2, tdragon2, tdragon2, nmk16_state, banked_audiocpu, ROT270, "NMK", "Thunder Dragon 2 (1st Oct. 1993)", MACHINE_NO_COCKTAIL ) -GAME( 1993, bigbang, tdragon2, tdragon2, tdragon2, nmk16_state, banked_audiocpu, ROT270, "NMK", "Big Bang (9th Nov. 1993)", MACHINE_NO_COCKTAIL ) +GAME( 1993, tdragon2, 0, tdragon2, tdragon2, nmk16_state, banked_audiocpu, ROT270, "NMK", "Thunder Dragon 2 (9th Nov. 1993)", MACHINE_NO_COCKTAIL ) +GAME( 1993, tdragon2a, tdragon2, tdragon2, tdragon2, nmk16_state, banked_audiocpu, ROT270, "NMK", "Thunder Dragon 2 (1st Oct. 1993)", MACHINE_NO_COCKTAIL ) +GAME( 1993, bigbang, tdragon2, tdragon2, tdragon2, nmk16_state, banked_audiocpu, ROT270, "NMK", "Big Bang (9th Nov. 1993)", MACHINE_NO_COCKTAIL ) /* arcadia was a name conflict to the Emerson Arcadia 2001 in mess */ -GAME( 1994, arcadian, 0, raphero, raphero, nmk16_state, banked_audiocpu, ROT270, "NMK", "Arcadia (NMK)", 0 ) // 23rd July 1993 in test mode, (c)1994 on title screen -GAME( 1994, raphero, arcadian, raphero, raphero, nmk16_state, banked_audiocpu, ROT270, "NMK (Media Trading license)", "Rapid Hero", 0 ) // ^^ +GAME( 1994, arcadian, 0, raphero, raphero, nmk16_state, banked_audiocpu, ROT270, "NMK", "Arcadia (NMK)", 0 ) // 23rd July 1993 in test mode, (c)1994 on title screen +GAME( 1994, raphero, arcadian, raphero, raphero, nmk16_state, banked_audiocpu, ROT270, "NMK (Media Trading license)", "Rapid Hero", 0 ) // ^^ /* both sets of both these games show a date of 9th Mar 1992 in the test mode, they look like different revisions so I doubt this is accurate */ GAME( 1992, sabotenb, 0, bjtwin, sabotenb, nmk16_state, nmk, ROT0, "NMK / Tecmo", "Saboten Bombers (set 1)", MACHINE_NO_COCKTAIL ) GAME( 1992, sabotenba,sabotenb, bjtwin, sabotenb, nmk16_state, nmk, ROT0, "NMK / Tecmo", "Saboten Bombers (set 2)", MACHINE_NO_COCKTAIL ) GAME( 1992, cactus, sabotenb, bjtwin, sabotenb, nmk16_state, nmk, ROT0, "bootleg", "Cactus (bootleg of Saboten Bombers)", MACHINE_NO_COCKTAIL ) // PCB marked 'Cactus', no title screen -GAME( 1993, bjtwin, 0, bjtwin, bjtwin, nmk16_state, bjtwin, ROT270, "NMK", "Bombjack Twin (set 1)", MACHINE_NO_COCKTAIL ) -GAME( 1993, bjtwina, bjtwin, bjtwin, bjtwin, nmk16_state, bjtwin, ROT270, "NMK", "Bombjack Twin (set 2)", MACHINE_NO_COCKTAIL ) -GAME( 1993, bjtwinp, bjtwin, bjtwin, bjtwin, driver_device, 0, ROT270, "NMK", "Bombjack Twin (prototype? with adult pictures, set 1)", MACHINE_NO_COCKTAIL ) // Cheap looking PCB, but Genuine NMK PCB, GFX aren't encrypted (maybe Korean version not proto?) -GAME( 1993, bjtwinpa, bjtwin, bjtwin, bjtwin, nmk16_state, bjtwin, ROT270, "NMK", "Bombjack Twin (prototype? with adult pictures, set 2)", MACHINE_NO_COCKTAIL ) // same PCB as above, different program revision, GFX are encrypted -GAME( 1993, atombjt, bjtwin, atombjt, atombjt, driver_device, 0, ROT270, "bootleg (Kyon K.)", "Atom (bootleg of Bombjack Twin)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) // some non-trivial mods to the gfx and sound hw (playmark hardware?) +GAME( 1993, bjtwin, 0, bjtwin, bjtwin, nmk16_state, bjtwin, ROT270, "NMK", "Bombjack Twin (set 1)", MACHINE_NO_COCKTAIL ) +GAME( 1993, bjtwina, bjtwin, bjtwin, bjtwin, nmk16_state, bjtwin, ROT270, "NMK", "Bombjack Twin (set 2)", MACHINE_NO_COCKTAIL ) +GAME( 1993, bjtwinp, bjtwin, bjtwin, bjtwin, nmk16_state, 0, ROT270, "NMK", "Bombjack Twin (prototype? with adult pictures, set 1)", MACHINE_NO_COCKTAIL ) // Cheap looking PCB, but Genuine NMK PCB, GFX aren't encrypted (maybe Korean version not proto?) +GAME( 1993, bjtwinpa, bjtwin, bjtwin, bjtwin, nmk16_state, bjtwin, ROT270, "NMK", "Bombjack Twin (prototype? with adult pictures, set 2)", MACHINE_NO_COCKTAIL ) // same PCB as above, different program revision, GFX are encrypted +GAME( 1993, atombjt, bjtwin, atombjt, atombjt, nmk16_state, 0, ROT270, "bootleg (Kyon K.)", "Atom (bootleg of Bombjack Twin)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) // some non-trivial mods to the gfx and sound hw (playmark hardware?) -GAME( 1995, nouryoku, 0, bjtwin, nouryoku, nmk16_state, nmk, ROT0, "Tecmo", "Nouryoku Koujou Iinkai", MACHINE_NO_COCKTAIL ) -GAME( 1995, nouryokup,nouryoku, bjtwin, nouryoku, driver_device, 0, ROT0, "Tecmo", "Nouryoku Koujou Iinkai (prototype)", MACHINE_NO_COCKTAIL ) // GFX aren't encrypted +GAME( 1995, nouryoku, 0, bjtwin, nouryoku, nmk16_state, nmk, ROT0, "Tecmo", "Nouryoku Koujou Iinkai", MACHINE_NO_COCKTAIL ) +GAME( 1995, nouryokup,nouryoku, bjtwin, nouryoku, nmk16_state, 0, ROT0, "Tecmo", "Nouryoku Koujou Iinkai (prototype)", MACHINE_NO_COCKTAIL ) // GFX aren't encrypted /* Non NMK boards */ // these use the seibu sound system (sound / music stolen from Raiden) rather than the bootleggers copying the nmk004 -GAME( 1990, mustangb, mustang, mustangb, mustang, driver_device, 0, ROT0, "bootleg", "US AAF Mustang (bootleg)", 0 ) -GAME( 1990, mustangb2,mustang, mustangb, mustang, driver_device, 0, ROT0, "bootleg (TAB Austria)", "US AAF Mustang (TAB Austria bootleg)", 0 ) // PCB and roms have TAB Austria stickers -GAME( 1991, tdragonb, tdragon, tdragonb, tdragonb, nmk16_state, tdragonb, ROT270, "bootleg", "Thunder Dragon (bootleg)", 0 ) +GAME( 1990, mustangb, mustang, mustangb, mustang, nmk16_state, 0, ROT0, "bootleg", "US AAF Mustang (bootleg)", 0 ) +GAME( 1990, mustangb2,mustang, mustangb, mustang, nmk16_state, 0, ROT0, "bootleg (TAB Austria)", "US AAF Mustang (TAB Austria bootleg)", 0 ) // PCB and roms have TAB Austria stickers +GAME( 1991, tdragonb, tdragon, tdragonb, tdragonb, nmk16_state, tdragonb, ROT270, "bootleg", "Thunder Dragon (bootleg)", 0 ) // these are from Comad, based on the Thunder Dragon code? -GAME( 1992, ssmissin, 0, ssmissin, ssmissin, nmk16_state, ssmissin, ROT270, "Comad", "S.S. Mission", MACHINE_NO_COCKTAIL ) +GAME( 1992, ssmissin, 0, ssmissin, ssmissin, nmk16_state, ssmissin, ROT270, "Comad", "S.S. Mission", MACHINE_NO_COCKTAIL ) -GAME( 1996, airattck, 0, ssmissin, airattck, nmk16_state, ssmissin, ROT270, "Comad", "Air Attack (set 1)", MACHINE_NO_COCKTAIL ) -GAME( 1996, airattcka,airattck, ssmissin, airattck, nmk16_state, ssmissin, ROT270, "Comad", "Air Attack (set 2)", MACHINE_NO_COCKTAIL ) +GAME( 1996, airattck, 0, ssmissin, airattck, nmk16_state, ssmissin, ROT270, "Comad", "Air Attack (set 1)", MACHINE_NO_COCKTAIL ) +GAME( 1996, airattcka,airattck, ssmissin, airattck, nmk16_state, ssmissin, ROT270, "Comad", "Air Attack (set 2)", MACHINE_NO_COCKTAIL ) // afega & clones -GAME( 1995, twinactn, 0, twinactn, twinactn, driver_device, 0, ROT0, "Afega", "Twin Action", 0 ) // hacked from USSAF Mustang - -GAME( 1995, dolmen, 0, twinactn, dolmen, driver_device, 0, ROT0, "Afega", "Dolmen", 0 ) - -GAME( 1998, stagger1, 0, stagger1, stagger1, driver_device, 0, ROT270, "Afega", "Stagger I (Japan)", 0 ) -GAME( 1997, redhawk, stagger1, stagger1, stagger1, nmk16_state, redhawk, ROT270, "Afega (New Vision Ent. license)", "Red Hawk (US)", 0 ) -GAME( 1997, redhawki, stagger1, redhawki, stagger1, driver_device, 0, ROT0, "Afega (Hea Dong Corp license)", "Red Hawk (Italy)", 0 ) // bootleg? strange scroll regs -GAME( 1997, redhawkg, stagger1, redhawki, stagger1, driver_device, 0, ROT0, "Afega", "Red Hawk (Greece)", 0 ) -GAME( 1997, redhawke, stagger1, stagger1, stagger1, driver_device, 0, ROT270, "Afega (Excellent Co. license)", "Red Hawk (Excellent Co., Ltd)", 0 ) -GAME( 1997, redhawkk, stagger1, stagger1, stagger1, driver_device, 0, ROT270, "Afega", "Red Hawk (Korea)", 0 ) -GAME( 1997, redhawkb, stagger1, redhawkb, redhawkb, driver_device, 0, ROT0, "bootleg", "Red Hawk (bootleg)", 0 ) - -GAME( 1998, grdnstrm, 0, grdnstrm, grdnstrm, driver_device, 0, ORIENTATION_FLIP_Y, "Afega (Apples Industries license)", "Guardian Storm (horizontal, not encrypted)", 0 ) -GAME( 1998, grdnstrmv,grdnstrm, grdnstrmk,grdnstrk, nmk16_state, grdnstrm, ROT270, "Afega (Apples Industries license)", "Guardian Storm (vertical)", 0 ) -GAME( 1998, grdnstrmj,grdnstrm, grdnstrmk,grdnstrk, nmk16_state, grdnstrmg, ROT270, "Afega", "Sen Jing - Guardian Storm (Japan)", 0 ) -GAME( 1998, grdnstrmk,grdnstrm, grdnstrmk,grdnstrk, nmk16_state, grdnstrm, ROT270, "Afega", "Jeon Sin - Guardian Storm (Korea)", 0 ) -GAME( 1998, redfoxwp2,grdnstrm, grdnstrmk,grdnstrk, nmk16_state, grdnstrm, ROT270, "Afega", "Red Fox War Planes II (China, set 1)", 0 ) -GAME( 1998, redfoxwp2a,grdnstrm,grdnstrmk,grdnstrk, nmk16_state, redfoxwp2a,ROT270, "Afega", "Red Fox War Planes II (China, set 2)", 0 ) -GAME( 1998, grdnstrmg,grdnstrm, grdnstrmk,grdnstrk, nmk16_state, grdnstrmg,ROT270, "Afega", "Guardian Storm (Germany)", 0 ) +GAME( 1995, twinactn, 0, twinactn, twinactn, nmk16_state, 0, ROT0, "Afega", "Twin Action", 0 ) // hacked from USSAF Mustang + +GAME( 1995, dolmen, 0, twinactn, dolmen, nmk16_state, 0, ROT0, "Afega", "Dolmen", 0 ) + +GAME( 1998, stagger1, 0, stagger1, stagger1, nmk16_state, 0, ROT270, "Afega", "Stagger I (Japan)", 0 ) +GAME( 1997, redhawk, stagger1, stagger1, stagger1, nmk16_state, redhawk, ROT270, "Afega (New Vision Ent. license)", "Red Hawk (US)", 0 ) +GAME( 1997, redhawki, stagger1, redhawki, stagger1, nmk16_state, 0, ROT0, "Afega (Hea Dong Corp license)", "Red Hawk (Italy)", 0 ) // bootleg? strange scroll regs +GAME( 1997, redhawkg, stagger1, redhawki, stagger1, nmk16_state, 0, ROT0, "Afega", "Red Hawk (Greece)", 0 ) +GAME( 1997, redhawke, stagger1, stagger1, stagger1, nmk16_state, 0, ROT270, "Afega (Excellent Co. license)", "Red Hawk (Excellent Co., Ltd)", 0 ) +GAME( 1997, redhawkk, stagger1, stagger1, stagger1, nmk16_state, 0, ROT270, "Afega", "Red Hawk (Korea)", 0 ) +GAME( 1997, redhawkb, stagger1, redhawkb, redhawkb, nmk16_state, 0, ROT0, "bootleg", "Red Hawk (bootleg)", 0 ) + +GAME( 1998, grdnstrm, 0, grdnstrm, grdnstrm, nmk16_state, 0, ORIENTATION_FLIP_Y, "Afega (Apples Industries license)", "Guardian Storm (horizontal, not encrypted)", 0 ) +GAME( 1998, grdnstrmv,grdnstrm, grdnstrmk,grdnstrk, nmk16_state, grdnstrm, ROT270, "Afega (Apples Industries license)", "Guardian Storm (vertical)", 0 ) +GAME( 1998, grdnstrmj,grdnstrm, grdnstrmk,grdnstrk, nmk16_state, grdnstrmg, ROT270, "Afega", "Sen Jing - Guardian Storm (Japan)", 0 ) +GAME( 1998, grdnstrmk,grdnstrm, grdnstrmk,grdnstrk, nmk16_state, grdnstrm, ROT270, "Afega", "Jeon Sin - Guardian Storm (Korea)", 0 ) +GAME( 1998, redfoxwp2,grdnstrm, grdnstrmk,grdnstrk, nmk16_state, grdnstrm, ROT270, "Afega", "Red Fox War Planes II (China, set 1)", 0 ) +GAME( 1998, redfoxwp2a,grdnstrm,grdnstrmk,grdnstrk, nmk16_state, redfoxwp2a,ROT270, "Afega", "Red Fox War Planes II (China, set 2)", 0 ) +GAME( 1998, grdnstrmg,grdnstrm, grdnstrmk,grdnstrk, nmk16_state, grdnstrmg, ROT270, "Afega", "Guardian Storm (Germany)", 0 ) // is there a 'bubble 2000' / 'hot bubble' version with Afega copyright, or is the only Afega release dolmen above, this seems like a sequel, not a clone? -GAME( 1998, bubl2000, 0, popspops, bubl2000, nmk16_state, bubl2000, ROT0, "Afega (Tuning license)", "Bubble 2000", 0 ) // on a tuning board (bootleg?) -GAME( 1998, hotbubl, bubl2000, popspops, bubl2000, nmk16_state, bubl2000, ROT0, "Afega (Pandora license)", "Hot Bubble (Korea, with adult pictures)" , 0 ) // on an afega board .. -GAME( 1998, hotbubla, bubl2000, popspops, bubl2000, nmk16_state, bubl2000, ROT0, "Afega (Pandora license)", "Hot Bubble (Korea)" , 0 ) // on an afega board .. +GAME( 1998, bubl2000, 0, popspops, bubl2000, nmk16_state, bubl2000, ROT0, "Afega (Tuning license)", "Bubble 2000", 0 ) // on a tuning board (bootleg?) +GAME( 1998, hotbubl, bubl2000, popspops, bubl2000, nmk16_state, bubl2000, ROT0, "Afega (Pandora license)", "Hot Bubble (Korea, with adult pictures)" , 0 ) // on an afega board .. +GAME( 1998, hotbubla, bubl2000, popspops, bubl2000, nmk16_state, bubl2000, ROT0, "Afega (Pandora license)", "Hot Bubble (Korea)" , 0 ) // on an afega board .. -GAME( 1999, popspops, 0, popspops, popspops, nmk16_state, grdnstrm, ROT0, "Afega", "Pop's Pop's", 0 ) +GAME( 1999, popspops, 0, popspops, popspops, nmk16_state, grdnstrm, ROT0, "Afega", "Pop's Pop's", 0 ) -GAME( 2000, mangchi, 0, popspops, mangchi, nmk16_state, bubl2000, ROT0, "Afega", "Mang-Chi", 0 ) +GAME( 2000, mangchi, 0, popspops, mangchi, nmk16_state, bubl2000, ROT0, "Afega", "Mang-Chi", 0 ) // these two are very similar games, but the exact parent/clone relationship is unknown -GAME( 2000, spec2k, 0, spec2k, spec2k, nmk16_state, spec2k, ROT270, "Yona Tech", "Spectrum 2000 (vertical)", MACHINE_IMPERFECT_GRAPHICS ) // the ships sometimes scroll off the screen if you insert a coin during the attract demo? verify it doesn't happen on real hw(!) -GAME( 2000, spec2kh, spec2k, spec2k, spec2k, nmk16_state, spec2k, ORIENTATION_FLIP_Y, "Yona Tech", "Spectrum 2000 (horizontal, buggy) (Europe)", 0 ) // this has odd bugs even on real hardware, eg glitchy 3 step destruction sequence of some larger enemies -GAME( 2001, firehawk, spec2k, firehawk, firehawk, driver_device, 0, ORIENTATION_FLIP_Y, "ESD", "Fire Hawk (horizontal)", 0 ) -GAME( 2001, firehawkv,spec2k, firehawk, firehawkv,driver_device, 0, ORIENTATION_FLIP_Y, "ESD", "Fire Hawk (switchable orientation)", MACHINE_NOT_WORKING ) // incomplete dump, vertical mode gfx not dumped +GAME( 2000, spec2k, 0, spec2k, spec2k, nmk16_state, spec2k, ROT270, "Yona Tech", "Spectrum 2000 (vertical)", MACHINE_IMPERFECT_GRAPHICS ) // the ships sometimes scroll off the screen if you insert a coin during the attract demo? verify it doesn't happen on real hw(!) +GAME( 2000, spec2kh, spec2k, spec2k, spec2k, nmk16_state, spec2k, ORIENTATION_FLIP_Y, "Yona Tech", "Spectrum 2000 (horizontal, buggy) (Europe)", 0 ) // this has odd bugs even on real hardware, eg glitchy 3 step destruction sequence of some larger enemies +GAME( 2001, firehawk, spec2k, firehawk, firehawk, nmk16_state, 0, ORIENTATION_FLIP_Y, "ESD", "Fire Hawk (horizontal)", 0 ) +GAME( 2001, firehawkv,spec2k, firehawk, firehawkv,nmk16_state, 0, ORIENTATION_FLIP_Y, "ESD", "Fire Hawk (switchable orientation)", MACHINE_NOT_WORKING ) // incomplete dump, vertical mode gfx not dumped // bee-oh board - different display / interrupt timing to others? GAME( 1991, manybloc, 0, manybloc, manybloc, nmk16_state, tharrier, ROT270, "Bee-Oh", "Many Block", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_SOUND ) diff --git a/src/mame/drivers/nokia_3310.cpp b/src/mame/drivers/nokia_3310.cpp index afa83f973b2..70760ddec54 100644 --- a/src/mame/drivers/nokia_3310.cpp +++ b/src/mame/drivers/nokia_3310.cpp @@ -688,7 +688,7 @@ static INPUT_PORTS_START( noki3310 ) INPUT_PORTS_END -static MACHINE_CONFIG_START( noki3310, noki3310_state ) +static MACHINE_CONFIG_START( noki3310 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", ARM7_BE, 26000000 / 2) // MAD2WD1 13 MHz, clock internally supplied to ARM core can be divided by 2, in sleep mode a 32768 Hz clock is used @@ -873,16 +873,16 @@ ROM_START( noki8890 ) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -SYST( 1999, noki3210, 0, 0, noki3310, noki3310, driver_device, 0, "Nokia", "Nokia 3210", MACHINE_NO_SOUND | MACHINE_IS_SKELETON ) -SYST( 1999, noki7110, 0, 0, noki7110, noki3310, driver_device, 0, "Nokia", "Nokia 7110", MACHINE_NO_SOUND | MACHINE_IS_SKELETON ) -SYST( 1999, noki8210, 0, 0, noki3310, noki3310, driver_device, 0, "Nokia", "Nokia 8210", MACHINE_NO_SOUND | MACHINE_IS_SKELETON ) -SYST( 1999, noki8850, 0, 0, noki3310, noki3310, driver_device, 0, "Nokia", "Nokia 8850", MACHINE_NO_SOUND | MACHINE_IS_SKELETON ) -SYST( 2000, noki3310, 0, 0, noki3310, noki3310, driver_device, 0, "Nokia", "Nokia 3310", MACHINE_NO_SOUND | MACHINE_IS_SKELETON ) -SYST( 2000, noki6210, 0, 0, noki6210, noki3310, driver_device, 0, "Nokia", "Nokia 6210", MACHINE_NO_SOUND | MACHINE_IS_SKELETON ) -SYST( 2000, noki6250, 0, 0, noki6210, noki3310, driver_device, 0, "Nokia", "Nokia 6250", MACHINE_NO_SOUND | MACHINE_IS_SKELETON ) -SYST( 2000, noki8250, 0, 0, noki3310, noki3310, driver_device, 0, "Nokia", "Nokia 8250", MACHINE_NO_SOUND | MACHINE_IS_SKELETON ) -SYST( 2000, noki8890, 0, 0, noki3310, noki3310, driver_device, 0, "Nokia", "Nokia 8890", MACHINE_NO_SOUND | MACHINE_IS_SKELETON ) -SYST( 2001, noki3330, 0, 0, noki3330, noki3310, driver_device, 0, "Nokia", "Nokia 3330", MACHINE_NO_SOUND | MACHINE_IS_SKELETON ) -SYST( 2002, noki3410, 0, 0, noki3410, noki3310, driver_device, 0, "Nokia", "Nokia 3410", MACHINE_NO_SOUND | MACHINE_IS_SKELETON ) -SYST( 2002, noki5210, 0, 0, noki3330, noki3310, driver_device, 0, "Nokia", "Nokia 5210", MACHINE_NO_SOUND | MACHINE_IS_SKELETON ) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +SYST( 1999, noki3210, 0, 0, noki3310, noki3310, noki3310_state, 0, "Nokia", "Nokia 3210", MACHINE_NO_SOUND | MACHINE_IS_SKELETON ) +SYST( 1999, noki7110, 0, 0, noki7110, noki3310, noki3310_state, 0, "Nokia", "Nokia 7110", MACHINE_NO_SOUND | MACHINE_IS_SKELETON ) +SYST( 1999, noki8210, 0, 0, noki3310, noki3310, noki3310_state, 0, "Nokia", "Nokia 8210", MACHINE_NO_SOUND | MACHINE_IS_SKELETON ) +SYST( 1999, noki8850, 0, 0, noki3310, noki3310, noki3310_state, 0, "Nokia", "Nokia 8850", MACHINE_NO_SOUND | MACHINE_IS_SKELETON ) +SYST( 2000, noki3310, 0, 0, noki3310, noki3310, noki3310_state, 0, "Nokia", "Nokia 3310", MACHINE_NO_SOUND | MACHINE_IS_SKELETON ) +SYST( 2000, noki6210, 0, 0, noki6210, noki3310, noki3310_state, 0, "Nokia", "Nokia 6210", MACHINE_NO_SOUND | MACHINE_IS_SKELETON ) +SYST( 2000, noki6250, 0, 0, noki6210, noki3310, noki3310_state, 0, "Nokia", "Nokia 6250", MACHINE_NO_SOUND | MACHINE_IS_SKELETON ) +SYST( 2000, noki8250, 0, 0, noki3310, noki3310, noki3310_state, 0, "Nokia", "Nokia 8250", MACHINE_NO_SOUND | MACHINE_IS_SKELETON ) +SYST( 2000, noki8890, 0, 0, noki3310, noki3310, noki3310_state, 0, "Nokia", "Nokia 8890", MACHINE_NO_SOUND | MACHINE_IS_SKELETON ) +SYST( 2001, noki3330, 0, 0, noki3330, noki3310, noki3310_state, 0, "Nokia", "Nokia 3330", MACHINE_NO_SOUND | MACHINE_IS_SKELETON ) +SYST( 2002, noki3410, 0, 0, noki3410, noki3310, noki3310_state, 0, "Nokia", "Nokia 3410", MACHINE_NO_SOUND | MACHINE_IS_SKELETON ) +SYST( 2002, noki5210, 0, 0, noki3330, noki3310, noki3310_state, 0, "Nokia", "Nokia 5210", MACHINE_NO_SOUND | MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/norautp.cpp b/src/mame/drivers/norautp.cpp index ae4b4db6c39..d0a611f3063 100644 --- a/src/mame/drivers/norautp.cpp +++ b/src/mame/drivers/norautp.cpp @@ -1209,7 +1209,7 @@ GFXDECODE_END * Machine Drivers * *************************/ -static MACHINE_CONFIG_START( noraut_base, norautp_state ) +static MACHINE_CONFIG_START( noraut_base ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, NORAUT_CPU_CLOCK) @@ -3590,59 +3590,59 @@ DRIVER_INIT_MEMBER(norautp_state,ssa) /* The following ones are 'Draw Poker HI-LO' type, running in a Z80 based hardware */ /**************************************************************************************/ -/* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS LAYOUT */ - -GAMEL( 1988, norautp, 0, norautp, norautp, driver_device, 0, ROT0, "Noraut Ltd.", "Noraut Poker", 0, layout_noraut11 ) -GAMEL( 198?, norautdx, 0, norautp, norautpn, driver_device, 0, ROT0, "Noraut Ltd.", "Noraut Deluxe Poker (console)", 0, layout_noraut12 ) -GAMEL( 198?, norautpn, norautp, norautp, norautpn, driver_device, 0, ROT0, "bootleg", "Noraut Deluxe Poker (bootleg)", 0, layout_noraut12 ) -GAMEL( 198?, norautjo, 0, norautp, mainline, driver_device, 0, ROT0, "Noraut Ltd.", "Noraut Joker Poker (original)", 0, layout_noraut12 ) -GAMEL( 198?, norautpl, 0, norautpl, mainline, driver_device, 0, ROT0, "Video Fun Games Ltd.", "Noraut Joker Poker (Prologic HW)", 0, layout_noraut12 ) -GAMEL( 1988, norautjp, norautp, norautp, norautp, driver_device, 0, ROT0, "Noraut Ltd.", "Noraut Joker Poker (alt)", 0, layout_noraut11 ) -GAMEL( 1988, norautrh, 0, norautp, norautrh, driver_device, 0, ROT0, "Noraut Ltd.", "Noraut Red Hot Joker Poker", 0, layout_noraut12 ) -GAMEL( 198?, norautra, 0, norautp, norautrh, driver_device, 0, ROT0, "Noraut Ltd.", "Noraut Red Hot Joker Poker (alt HW)", 0, layout_noraut12 ) // 1-bet?? where??... -GAME( 1988, norautu, 0, norautxp, norautp, driver_device, 0, ROT0, "Noraut Ltd.", "Noraut Poker (NTX10A)", MACHINE_NOT_WORKING ) -GAME( 2002, noraut3a, 0, norautxp, norautp, driver_device, 0, ROT0, "Noraut Ltd.", "Noraut Joker Poker (V3.010a)", MACHINE_NOT_WORKING ) -GAME( 2003, noraut3b, 0, norautxp, norautp, driver_device, 0, ROT0, "Noraut Ltd.", "Noraut Joker Poker (V3.011a)", MACHINE_NOT_WORKING ) -GAMEL( 198?, norautua, 0, norautp, norautp, norautp_state, enc, ROT0, "Noraut Ltd.", "Noraut unknown set 1 (console)", MACHINE_NOT_WORKING, layout_noraut12 ) -GAMEL( 198?, norautub, 0, norautp, norautp, norautp_state, enc, ROT0, "Noraut Ltd.", "Noraut unknown set 2 (console)", MACHINE_NOT_WORKING, layout_noraut12 ) -GAMEL( 198?, mainline, 0, norautp, mainline, driver_device, 0, ROT0, "Mainline London", "Mainline Double Joker Poker", 0, layout_noraut12 ) -GAMEL( 199?, df_djpkr, 0, norautp, mainline, driver_device, 0, ROT0, "DellFern Ltd.", "Double Joker Poker (45%-75% payout)", 0, layout_noraut12 ) -GAMEL( 2005, ndxron10, 0, norautp, ndxron10, driver_device, 0, ROT0, "", "Royal on Ten (Noraut Deluxe hack)", 0, layout_noraut12 ) -GAMEL( 1999, cgip30cs, 0, norautx4, norautkl, norautp_state, deb, ROT0, "CGI", "Credit Poker (ver.30c, standard)", 0, layout_noraut12 ) -GAME( 198?, kimblz80, 0, kimble, norautp, driver_device, 0, ROT0, "Kimble Ireland", "Kimble Double HI-LO (z80 version)", MACHINE_NOT_WORKING ) -GAME( 1983, pma, 0, nortest1, norautp, driver_device, 0, ROT0, "PMA", "PMA Poker", MACHINE_NOT_WORKING ) -GAMEL( 198?, bjpoker, 0, norautxp, norautrh, driver_device, 0, ROT0, "M.Kramer Manufacturing.", "Poker / Black Jack (Model 7521)", MACHINE_NOT_WORKING, layout_noraut12 ) -GAME( 19??, newhilop, 0, newhilop, norautp, driver_device, 0, ROT0, "Song Won?", "New Hi-Low Poker", MACHINE_NOT_WORKING ) +// YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS LAYOUT + +GAMEL( 1988, norautp, 0, norautp, norautp, norautp_state, 0, ROT0, "Noraut Ltd.", "Noraut Poker", 0, layout_noraut11 ) +GAMEL( 198?, norautdx, 0, norautp, norautpn, norautp_state, 0, ROT0, "Noraut Ltd.", "Noraut Deluxe Poker (console)", 0, layout_noraut12 ) +GAMEL( 198?, norautpn, norautp, norautp, norautpn, norautp_state, 0, ROT0, "bootleg", "Noraut Deluxe Poker (bootleg)", 0, layout_noraut12 ) +GAMEL( 198?, norautjo, 0, norautp, mainline, norautp_state, 0, ROT0, "Noraut Ltd.", "Noraut Joker Poker (original)", 0, layout_noraut12 ) +GAMEL( 198?, norautpl, 0, norautpl, mainline, norautp_state, 0, ROT0, "Video Fun Games Ltd.", "Noraut Joker Poker (Prologic HW)", 0, layout_noraut12 ) +GAMEL( 1988, norautjp, norautp, norautp, norautp, norautp_state, 0, ROT0, "Noraut Ltd.", "Noraut Joker Poker (alt)", 0, layout_noraut11 ) +GAMEL( 1988, norautrh, 0, norautp, norautrh, norautp_state, 0, ROT0, "Noraut Ltd.", "Noraut Red Hot Joker Poker", 0, layout_noraut12 ) +GAMEL( 198?, norautra, 0, norautp, norautrh, norautp_state, 0, ROT0, "Noraut Ltd.", "Noraut Red Hot Joker Poker (alt HW)", 0, layout_noraut12 ) // 1-bet?? where??... +GAME( 1988, norautu, 0, norautxp, norautp, norautp_state, 0, ROT0, "Noraut Ltd.", "Noraut Poker (NTX10A)", MACHINE_NOT_WORKING ) +GAME( 2002, noraut3a, 0, norautxp, norautp, norautp_state, 0, ROT0, "Noraut Ltd.", "Noraut Joker Poker (V3.010a)", MACHINE_NOT_WORKING ) +GAME( 2003, noraut3b, 0, norautxp, norautp, norautp_state, 0, ROT0, "Noraut Ltd.", "Noraut Joker Poker (V3.011a)", MACHINE_NOT_WORKING ) +GAMEL( 198?, norautua, 0, norautp, norautp, norautp_state, enc, ROT0, "Noraut Ltd.", "Noraut unknown set 1 (console)", MACHINE_NOT_WORKING, layout_noraut12 ) +GAMEL( 198?, norautub, 0, norautp, norautp, norautp_state, enc, ROT0, "Noraut Ltd.", "Noraut unknown set 2 (console)", MACHINE_NOT_WORKING, layout_noraut12 ) +GAMEL( 198?, mainline, 0, norautp, mainline, norautp_state, 0, ROT0, "Mainline London", "Mainline Double Joker Poker", 0, layout_noraut12 ) +GAMEL( 199?, df_djpkr, 0, norautp, mainline, norautp_state, 0, ROT0, "DellFern Ltd.", "Double Joker Poker (45%-75% payout)", 0, layout_noraut12 ) +GAMEL( 2005, ndxron10, 0, norautp, ndxron10, norautp_state, 0, ROT0, "", "Royal on Ten (Noraut Deluxe hack)", 0, layout_noraut12 ) +GAMEL( 1999, cgip30cs, 0, norautx4, norautkl, norautp_state, deb, ROT0, "CGI", "Credit Poker (ver.30c, standard)", 0, layout_noraut12 ) +GAME( 198?, kimblz80, 0, kimble, norautp, norautp_state, 0, ROT0, "Kimble Ireland", "Kimble Double HI-LO (z80 version)", MACHINE_NOT_WORKING ) +GAME( 1983, pma, 0, nortest1, norautp, norautp_state, 0, ROT0, "PMA", "PMA Poker", MACHINE_NOT_WORKING ) +GAMEL( 198?, bjpoker, 0, norautxp, norautrh, norautp_state, 0, ROT0, "M.Kramer Manufacturing.", "Poker / Black Jack (Model 7521)", MACHINE_NOT_WORKING, layout_noraut12 ) +GAME( 19??, newhilop, 0, newhilop, norautp, norautp_state, 0, ROT0, "Song Won?", "New Hi-Low Poker", MACHINE_NOT_WORKING ) /************************************* 8080 sets **************************************/ /* The following ones are 'Draw Poker HI-LO' type, running in a 8080 based hardware */ /**************************************************************************************/ -/* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS LAYOUT */ - -GAME( 1983, dphl, 0, dphl, norautp, driver_device, 0, ROT0, "M.Kramer Manufacturing.", "Draw Poker HI-LO (M.Kramer)", MACHINE_NOT_WORKING ) -GAME( 1983, dphla, 0, dphla, norautp, driver_device, 0, ROT0, "", "Draw Poker HI-LO (Alt)", MACHINE_NOT_WORKING ) -GAME( 1983, dphljp, 0, dphl, norautp, driver_device, 0, ROT0, "", "Draw Poker HI-LO (Japanese)", MACHINE_NOT_WORKING ) -GAME( 198?, kimbldhl, 0, kimbldhl, norautp, driver_device, 0, ROT0, "Kimble Ireland", "Kimble Double HI-LO", MACHINE_NOT_WORKING ) -GAME( 1983, gtipoker, 0, dphl, norautp, driver_device, 0, ROT0, "GTI Inc", "GTI Poker", MACHINE_NOT_WORKING ) -GAME( 1983, gtipokra, 0, dphla, norautp, driver_device, 0, ROT0, "GTI Inc", "GTI Poker? (SMS hardware)", MACHINE_NOT_WORKING ) -GAME( 1983, smshilo, 0, dphla, norautp, driver_device, 0, ROT0, "SMS Manufacturing Corp.", "HI-LO Double Up Joker Poker", MACHINE_NOT_WORKING ) -GAME( 1986, drhl, 0, drhl, norautp, driver_device, 0, ROT0, "Drews Inc.", "Drews Revenge (v.2.89, set 1)", MACHINE_NOT_WORKING ) -GAME( 1986, drhla, 0, drhl, norautp, driver_device, 0, ROT0, "Drews Inc.", "Drews Revenge (v.2.89, set 2)", MACHINE_NOT_WORKING ) +// YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS LAYOUT + +GAME( 1983, dphl, 0, dphl, norautp, norautp_state, 0, ROT0, "M.Kramer Manufacturing.", "Draw Poker HI-LO (M.Kramer)", MACHINE_NOT_WORKING ) +GAME( 1983, dphla, 0, dphla, norautp, norautp_state, 0, ROT0, "", "Draw Poker HI-LO (Alt)", MACHINE_NOT_WORKING ) +GAME( 1983, dphljp, 0, dphl, norautp, norautp_state, 0, ROT0, "", "Draw Poker HI-LO (Japanese)", MACHINE_NOT_WORKING ) +GAME( 198?, kimbldhl, 0, kimbldhl, norautp, norautp_state, 0, ROT0, "Kimble Ireland", "Kimble Double HI-LO", MACHINE_NOT_WORKING ) +GAME( 1983, gtipoker, 0, dphl, norautp, norautp_state, 0, ROT0, "GTI Inc", "GTI Poker", MACHINE_NOT_WORKING ) +GAME( 1983, gtipokra, 0, dphla, norautp, norautp_state, 0, ROT0, "GTI Inc", "GTI Poker? (SMS hardware)", MACHINE_NOT_WORKING ) +GAME( 1983, smshilo, 0, dphla, norautp, norautp_state, 0, ROT0, "SMS Manufacturing Corp.", "HI-LO Double Up Joker Poker", MACHINE_NOT_WORKING ) +GAME( 1986, drhl, 0, drhl, norautp, norautp_state, 0, ROT0, "Drews Inc.", "Drews Revenge (v.2.89, set 1)", MACHINE_NOT_WORKING ) +GAME( 1986, drhla, 0, drhl, norautp, norautp_state, 0, ROT0, "Drews Inc.", "Drews Revenge (v.2.89, set 2)", MACHINE_NOT_WORKING ) GAME( 1982, ssjkrpkr, 0, ssjkrpkr, norautp, norautp_state, ssa, ROT0, "Southern Systems & Assembly", "Southern Systems Joker Poker", MACHINE_NOT_WORKING ) /* The following one also has a custom 68705 MCU */ -GAME( 1993, tpoker2, 0, dphltest, norautp, driver_device, 0, ROT0, "Micro Manufacturing", "Turbo Poker 2", MACHINE_NOT_WORKING ) +GAME( 1993, tpoker2, 0, dphltest, norautp, norautp_state, 0, ROT0, "Micro Manufacturing", "Turbo Poker 2", MACHINE_NOT_WORKING ) /************************************ unknown sets ************************************/ /* The following ones are still unknown. No info about name, CPU, manufacturer, or HW */ /**************************************************************************************/ -/* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS LAYOUT */ +// YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS LAYOUT -GAME( 198?, fastdrwp, 0, dphl, norautp, driver_device, 0, ROT0, "Stern Electronics?", "Fast Draw (poker conversion kit)?", MACHINE_NOT_WORKING ) -GAME( 198?, dphlunka, 0, dphl, norautp, driver_device, 0, ROT0, "SMS Manufacturing Corp.", "Draw Poker HI-LO (unknown, rev 1)", MACHINE_NOT_WORKING ) -GAME( 198?, dphlunkb, 0, dphl, norautp, driver_device, 0, ROT0, "SMS Manufacturing Corp.", "Draw Poker HI-LO (unknown, rev 2)", MACHINE_NOT_WORKING ) -GAME( 198?, pkii_dm, 0, nortest1, norautp, driver_device, 0, ROT0, "", "Unknown Poker PKII/DM", MACHINE_NOT_WORKING ) +GAME( 198?, fastdrwp, 0, dphl, norautp, norautp_state, 0, ROT0, "Stern Electronics?", "Fast Draw (poker conversion kit)?", MACHINE_NOT_WORKING ) +GAME( 198?, dphlunka, 0, dphl, norautp, norautp_state, 0, ROT0, "SMS Manufacturing Corp.", "Draw Poker HI-LO (unknown, rev 1)", MACHINE_NOT_WORKING ) +GAME( 198?, dphlunkb, 0, dphl, norautp, norautp_state, 0, ROT0, "SMS Manufacturing Corp.", "Draw Poker HI-LO (unknown, rev 2)", MACHINE_NOT_WORKING ) +GAME( 198?, pkii_dm, 0, nortest1, norautp, norautp_state, 0, ROT0, "", "Unknown Poker PKII/DM", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/notetaker.cpp b/src/mame/drivers/notetaker.cpp index 5a237a0df6a..4d25e7411a1 100644 --- a/src/mame/drivers/notetaker.cpp +++ b/src/mame/drivers/notetaker.cpp @@ -115,7 +115,7 @@ public: required_device m_eiauart; required_device m_crtc; required_device m_dac; - required_device m_fdc; + required_device m_fdc; required_device m_floppy0; floppy_image_device *m_floppy; @@ -600,7 +600,7 @@ static ADDRESS_MAP_START(notetaker_iocpu_io, AS_IO, 16, notetaker_state) //AM_RANGE(0xa0, 0xa1) AM_MIRROR(0x7E18) AM_DEVREADWRITE("debug8255", 8255_device, read, write) // debugger board 8255 AM_RANGE(0xc0, 0xc1) AM_MIRROR(0x7E1E) AM_WRITE(FIFOBus_w) // DAC data write to FIFO AM_RANGE(0x100, 0x101) AM_MIRROR(0x7E1E) AM_WRITE(DiskReg_w) // I/O register (adc speed, crtc pixel clock and clock enable, +5 and +12v relays for floppy, etc) - AM_RANGE(0x120, 0x127) AM_MIRROR(0x7E18) AM_DEVREADWRITE8("wd1791", fd1791_t, read, write, 0x00FF) // floppy controller + AM_RANGE(0x120, 0x127) AM_MIRROR(0x7E18) AM_DEVREADWRITE8("wd1791", fd1791_device, read, write, 0x00FF) // floppy controller AM_RANGE(0x140, 0x15f) AM_MIRROR(0x7E00) AM_DEVREADWRITE8("crt5027", crt5027_device, read, write, 0x00FF) // crt controller AM_RANGE(0x160, 0x161) AM_MIRROR(0x7E1E) AM_WRITE(LoadDispAddr_w) // loads the start address for the display framebuffer AM_RANGE(0x1a0, 0x1a1) AM_MIRROR(0x7E10) AM_READ(ReadEIAStatus_r) // read eia fifo state @@ -793,7 +793,7 @@ void notetaker_state::ep_reset() static INPUT_PORTS_START( notetakr ) INPUT_PORTS_END -static MACHINE_CONFIG_START( notetakr, notetaker_state ) +static MACHINE_CONFIG_START( notetakr ) /* basic machine hardware */ /* IO CPU: 8086@8MHz */ MCFG_CPU_ADD("iocpu", I8086, XTAL_24MHz/3) /* iD8086-2 @ E4A; 24Mhz crystal divided down to 8Mhz by i8284 clock generator */ @@ -925,6 +925,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ -COMP( 1978, notetakr, 0, 0, notetakr, notetakr, notetaker_state, notetakr, "Xerox", "NoteTaker", MACHINE_IS_SKELETON) -//COMP( 1978, notetakr, 0, 0, notetakr, notetakr, driver_device, notetakr, "Xerox", "NoteTaker", MACHINE_IS_SKELETON) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1978, notetakr, 0, 0, notetakr, notetakr, notetaker_state, notetakr, "Xerox", "NoteTaker", MACHINE_IS_SKELETON) diff --git a/src/mame/drivers/nova2001.cpp b/src/mame/drivers/nova2001.cpp index 5e6e3b2d491..d46e8c59337 100644 --- a/src/mame/drivers/nova2001.cpp +++ b/src/mame/drivers/nova2001.cpp @@ -638,7 +638,7 @@ GFXDECODE_END * *************************************/ -static MACHINE_CONFIG_START( nova2001, nova2001_state ) +static MACHINE_CONFIG_START( nova2001 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, MAIN_CLOCK/4) // 3 MHz verified on schematics @@ -676,7 +676,7 @@ static MACHINE_CONFIG_START( nova2001, nova2001_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( ninjakun, nova2001_state ) +static MACHINE_CONFIG_START( ninjakun ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, MAIN_CLOCK/4) // 3 MHz @@ -720,7 +720,7 @@ static MACHINE_CONFIG_START( ninjakun, nova2001_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( pkunwar, nova2001_state ) +static MACHINE_CONFIG_START( pkunwar ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, MAIN_CLOCK/4) // 3 MHz @@ -757,7 +757,7 @@ static MACHINE_CONFIG_START( pkunwar, nova2001_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( raiders5, nova2001_state ) +static MACHINE_CONFIG_START( raiders5 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, MAIN_CLOCK/4) // 3 MHz @@ -1026,12 +1026,12 @@ DRIVER_INIT_MEMBER(nova2001_state,raiders5) // many of these don't explicitly state Japan, eg. Nova 2001 could easily be used anywhere. -// YEAR, NAME, PARENT, MACHINE, INPUT, INIT, MONITOR,COMPANY,FULLNAME,FLAGS -GAME( 1983, nova2001, 0, nova2001, nova2001, driver_device, 0, ROT0, "UPL", "Nova 2001 (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, nova2001h, nova2001, nova2001, nova2001, driver_device, 0, ROT0, "UPL", "Nova 2001 (Japan, hack?)", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, nova2001u, nova2001, nova2001, nova2001, driver_device, 0, ROT0, "UPL (Universal license)", "Nova 2001 (US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, ninjakun, 0, ninjakun, ninjakun, driver_device, 0, ROT0, "UPL (Taito license)", "Ninjakun Majou no Bouken", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, pkunwar, 0, pkunwar, pkunwar, nova2001_state, pkunwar, ROT0, "UPL", "Penguin-Kun Wars (US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, pkunwarj, pkunwar, pkunwar, pkunwar, nova2001_state, pkunwar, ROT0, "UPL", "Penguin-Kun Wars (Japan)", MACHINE_SUPPORTS_SAVE ) +// YEAR, NAME, PARENT, MACHINE, INPUT, STATE, INIT, MONITOR,COMPANY,FULLNAME,FLAGS +GAME( 1983, nova2001, 0, nova2001, nova2001, nova2001_state, 0, ROT0, "UPL", "Nova 2001 (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, nova2001h, nova2001, nova2001, nova2001, nova2001_state, 0, ROT0, "UPL", "Nova 2001 (Japan, hack?)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, nova2001u, nova2001, nova2001, nova2001, nova2001_state, 0, ROT0, "UPL (Universal license)", "Nova 2001 (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, ninjakun, 0, ninjakun, ninjakun, nova2001_state, 0, ROT0, "UPL (Taito license)", "Ninjakun Majou no Bouken", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, pkunwar, 0, pkunwar, pkunwar, nova2001_state, pkunwar, ROT0, "UPL", "Penguin-Kun Wars (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, pkunwarj, pkunwar, pkunwar, pkunwar, nova2001_state, pkunwar, ROT0, "UPL", "Penguin-Kun Wars (Japan)", MACHINE_SUPPORTS_SAVE ) GAME( 1985, raiders5, 0, raiders5, raiders5, nova2001_state, raiders5, ROT0, "UPL", "Raiders5", MACHINE_SUPPORTS_SAVE ) GAME( 1985, raiders5t, raiders5, raiders5, raiders5, nova2001_state, raiders5, ROT0, "UPL (Taito license)", "Raiders5 (Japan)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/novag6502.cpp b/src/mame/drivers/novag6502.cpp index 2c969c9f7df..b312bd03c71 100644 --- a/src/mame/drivers/novag6502.cpp +++ b/src/mame/drivers/novag6502.cpp @@ -871,7 +871,7 @@ INPUT_PORTS_END Machine Drivers ******************************************************************************/ -static MACHINE_CONFIG_START( supercon, novag6502_state ) +static MACHINE_CONFIG_START( supercon ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, XTAL_8MHz/2) @@ -889,7 +889,7 @@ static MACHINE_CONFIG_START( supercon, novag6502_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( cforte, novag6502_state ) +static MACHINE_CONFIG_START( cforte ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M65C02, 5000000) // 5MHz @@ -911,7 +911,7 @@ static MACHINE_CONFIG_START( cforte, novag6502_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( sexpert, novag6502_state ) +static MACHINE_CONFIG_START( sexpert ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M65C02, XTAL_10MHz/2) // or XTAL_12MHz/2 @@ -1052,17 +1052,17 @@ ROM_END Drivers ******************************************************************************/ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY, FULLNAME, FLAGS */ -CONS( 1984, supercon, 0, 0, supercon, supercon, driver_device, 0, "Novag", "Super Constellation", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +CONS( 1984, supercon, 0, 0, supercon, supercon, novag6502_state, 0, "Novag", "Super Constellation", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1986, cforteb, 0, 0, cforte, cforte, driver_device, 0, "Novag", "Constellation Forte (version B)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1986, cforteb, 0, 0, cforte, cforte, novag6502_state, 0, "Novag", "Constellation Forte (version B)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1987, sfortea, 0, 0, sforte, sforte, novag6502_state, sexpert, "Novag", "Super Forte (version A, set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1987, sfortea1, sfortea, 0, sforte, sforte, novag6502_state, sexpert, "Novag", "Super Forte (version A, set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1988, sforteb, sfortea, 0, sforte, sforte, novag6502_state, sexpert, "Novag", "Super Forte (version B)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1990, sfortec, sfortea, 0, sforte, sforte, novag6502_state, sexpert, "Novag", "Super Forte (version C)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1987, sfortea, 0, 0, sforte, sforte, novag6502_state, sexpert, "Novag", "Super Forte (version A, set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1987, sfortea1, sfortea, 0, sforte, sforte, novag6502_state, sexpert, "Novag", "Super Forte (version A, set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1988, sforteb, sfortea, 0, sforte, sforte, novag6502_state, sexpert, "Novag", "Super Forte (version B)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1990, sfortec, sfortea, 0, sforte, sforte, novag6502_state, sexpert, "Novag", "Super Forte (version C)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1987, sexperta, 0, 0, sexpert, sexpert, novag6502_state, sexpert, "Novag", "Super Expert (version A)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1988, sexpertb, sexperta, 0, sexpert, sexpert, novag6502_state, sexpert, "Novag", "Super Expert (version B)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1990, sexpertc, sexperta, 0, sexpert, sexpert, novag6502_state, sexpert, "Novag", "Super Expert (version C, V3.6)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1990, sexpertc1, sexperta, 0, sexpert, sexpert, novag6502_state, sexpert, "Novag", "Super Expert (version C, V1.2)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1987, sexperta, 0, 0, sexpert, sexpert, novag6502_state, sexpert, "Novag", "Super Expert (version A)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1988, sexpertb, sexperta, 0, sexpert, sexpert, novag6502_state, sexpert, "Novag", "Super Expert (version B)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1990, sexpertc, sexperta, 0, sexpert, sexpert, novag6502_state, sexpert, "Novag", "Super Expert (version C, V3.6)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1990, sexpertc1, sexperta, 0, sexpert, sexpert, novag6502_state, sexpert, "Novag", "Super Expert (version C, V1.2)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) diff --git a/src/mame/drivers/novag68k.cpp b/src/mame/drivers/novag68k.cpp index d0dbf41b4ab..df0f2c14a43 100644 --- a/src/mame/drivers/novag68k.cpp +++ b/src/mame/drivers/novag68k.cpp @@ -178,7 +178,7 @@ INPUT_PORTS_END Machine Drivers ******************************************************************************/ -static MACHINE_CONFIG_START( diablo68k, novag68k_state ) +static MACHINE_CONFIG_START( diablo68k ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz) @@ -233,5 +233,5 @@ ROM_END Drivers ******************************************************************************/ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY, FULLNAME, FLAGS */ -CONS( 1991, diablo68, 0, 0, diablo68k, diablo68k, driver_device, 0, "Novag", "Diablo 68000", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +CONS( 1991, diablo68, 0, 0, diablo68k, diablo68k, novag68k_state, 0, "Novag", "Diablo 68000", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) diff --git a/src/mame/drivers/novagmcs48.cpp b/src/mame/drivers/novagmcs48.cpp index 519d3bd6682..071553489b1 100644 --- a/src/mame/drivers/novagmcs48.cpp +++ b/src/mame/drivers/novagmcs48.cpp @@ -142,7 +142,7 @@ INPUT_CHANGED_MEMBER(novagmcs48_state::octo_cpu_freq) Machine Drivers ******************************************************************************/ -static MACHINE_CONFIG_START( presto, novagmcs48_state ) +static MACHINE_CONFIG_START( presto ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8049, 6000000) // LC circuit, measured @@ -191,6 +191,6 @@ ROM_END Drivers ******************************************************************************/ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY, FULLNAME, FLAGS */ -CONS( 1984, npresto, 0, 0, presto, presto, driver_device, 0, "Novag", "Presto (Novag)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1987, nocto, npresto, 0, octo, octo, driver_device, 0, "Novag", "Octo (Novag)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +// YEAR NAME PARENT COMPAT MACHINE INPUT INIT INIT COMPANY FULLNAME FLAGS +CONS( 1984, npresto, 0, 0, presto, presto, novagmcs48_state, 0, "Novag", "Presto (Novag)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1987, nocto, npresto, 0, octo, octo, novagmcs48_state, 0, "Novag", "Octo (Novag)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) diff --git a/src/mame/drivers/nsm.cpp b/src/mame/drivers/nsm.cpp index 049cd61eb53..bda6dae5913 100644 --- a/src/mame/drivers/nsm.cpp +++ b/src/mame/drivers/nsm.cpp @@ -119,7 +119,7 @@ void nsm_state::machine_reset() static_cast(machine().device("maincpu"))->ready_line(ASSERT_LINE); } -static MACHINE_CONFIG_START( nsm, nsm_state ) +static MACHINE_CONFIG_START( nsm ) // CPU TMS9995, standard variant; no line connection MCFG_TMS99xx_ADD("maincpu", TMS9995, 11052000, nsm_map, nsm_io_map) @@ -156,4 +156,4 @@ ROM_END / The Games (1985) /-------------------------------------------------------------------*/ -GAME(1985, firebird, 0, nsm, nsm, driver_device, 0, ROT0, "NSM", "Hot Fire Birds", MACHINE_NOT_WORKING | MACHINE_MECHANICAL) +GAME(1985, firebird, 0, nsm, nsm, nsm_state, 0, ROT0, "NSM", "Hot Fire Birds", MACHINE_NOT_WORKING | MACHINE_MECHANICAL) diff --git a/src/mame/drivers/nsmpoker.cpp b/src/mame/drivers/nsmpoker.cpp index 6589293b7ef..0eaa0cd662f 100644 --- a/src/mame/drivers/nsmpoker.cpp +++ b/src/mame/drivers/nsmpoker.cpp @@ -407,7 +407,7 @@ void nsmpoker_state::machine_reset() * Machine Drivers * *************************/ -static MACHINE_CONFIG_START( nsmpoker, nsmpoker_state ) +static MACHINE_CONFIG_START( nsmpoker ) // CPU TMS9995, standard variant; no line connections MCFG_TMS99xx_ADD("maincpu", TMS9995, MASTER_CLOCK/2, nsmpoker_map, nsmpoker_portmap) @@ -457,5 +457,5 @@ ROM_END * Game Drivers * *************************/ -/* YEAR NAME PARENT MACHINE INPUT INIT ROT COMPANY FULLNAME FLAGS */ -GAME( 198?, nsmpoker, 0, nsmpoker, nsmpoker, driver_device, 0, ROT0, "NSM", "NSM Poker (TMS9995)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING ) +// YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS +GAME( 198?, nsmpoker, 0, nsmpoker, nsmpoker, nsmpoker_state, 0, ROT0, "NSM", "NSM Poker (TMS9995)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/nss.cpp b/src/mame/drivers/nss.cpp index 5c6f8803b27..b96ed39cc6e 100644 --- a/src/mame/drivers/nss.cpp +++ b/src/mame/drivers/nss.cpp @@ -817,7 +817,7 @@ void nss_state::machine_reset() m_joy_flag = 1; } -static MACHINE_CONFIG_START( nss, nss_state ) +static MACHINE_CONFIG_START( nss ) /* base snes hardware */ MCFG_CPU_ADD("maincpu", _5A22, MCLK_NTSC) /* 2.68Mhz, also 3.58Mhz */ @@ -1069,7 +1069,7 @@ DRIVER_INIT_MEMBER(nss_state,nss) DRIVER_INIT_CALL(snes); } -GAME( 199?, nss, 0, nss, snes, snes_state, snes, ROT0, "Nintendo", "Nintendo Super System BIOS", MACHINE_IS_BIOS_ROOT ) +GAME( 199?, nss, 0, nss, snes, nss_state, snes, ROT0, "Nintendo", "Nintendo Super System BIOS", MACHINE_IS_BIOS_ROOT ) GAME( 1992, nss_actr, nss, nss, snes, nss_state, nss, ROT0, "Enix", "Act Raiser (Nintendo Super System)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) GAME( 1992, nss_adam, nss, nss, snes, nss_state, nss, ROT0, "Ocean", "The Addams Family (Nintendo Super System)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) GAME( 1992, nss_aten, nss, nss, snes, nss_state, nss, ROT0, "Absolute Entertainment Inc.", "David Crane's Amazing Tennis (Nintendo Super System)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/nwk-tr.cpp b/src/mame/drivers/nwk-tr.cpp index 37a603a1fcc..0fcca3191c9 100644 --- a/src/mame/drivers/nwk-tr.cpp +++ b/src/mame/drivers/nwk-tr.cpp @@ -765,7 +765,7 @@ void nwktr_state::machine_reset() m_dsp->set_input_line(INPUT_LINE_RESET, ASSERT_LINE); } -static MACHINE_CONFIG_START( nwktr, nwktr_state ) +static MACHINE_CONFIG_START( nwktr ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", PPC403GA, XTAL_64MHz/2) /* PowerPC 403GA 32MHz */ @@ -822,7 +822,7 @@ static MACHINE_CONFIG_START( nwktr, nwktr_state ) MCFG_DEVICE_ADD("konppc", KONPPC, 0) MCFG_KONPPC_CGBOARD_NUMBER(2) - MCFG_KONPPC_CGBOARD_TYPE(CGBOARD_TYPE_NWKTR) + MCFG_KONPPC_CGBOARD_TYPE(NWKTR) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( thrilld, nwktr ) @@ -992,9 +992,9 @@ ROM_END /*****************************************************************************/ -GAME( 1998, racingj, 0, nwktr, nwktr, nwktr_state, nwktr, ROT0, "Konami", "Racing Jam (JAC)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND ) +GAME( 1998, racingj, 0, nwktr, nwktr, nwktr_state, nwktr, ROT0, "Konami", "Racing Jam (JAC)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND ) GAME( 1999, racingj2, racingj, nwktr, nwktr, nwktr_state, nwktr, ROT0, "Konami", "Racing Jam: Chapter 2 (EAE)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND ) GAME( 1999, racingj2j, racingj, nwktr, nwktr, nwktr_state, nwktr, ROT0, "Konami", "Racing Jam: Chapter 2 (JAE)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND ) -GAME( 1998, thrilld, 0, thrilld, nwktr, nwktr_state, nwktr, ROT0, "Konami", "Thrill Drive (JAE)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1998, thrilldb, thrilld, thrilld, nwktr, nwktr_state, nwktr, ROT0, "Konami", "Thrill Drive (JAB)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1998, thrilldae, thrilld, thrilld, nwktr, nwktr_state, nwktr, ROT0, "Konami", "Thrill Drive (EAA)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1998, thrilld, 0, thrilld, nwktr, nwktr_state, nwktr, ROT0, "Konami", "Thrill Drive (JAE)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1998, thrilldb, thrilld, thrilld, nwktr, nwktr_state, nwktr, ROT0, "Konami", "Thrill Drive (JAB)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1998, thrilldae, thrilld, thrilld, nwktr, nwktr_state, nwktr, ROT0, "Konami", "Thrill Drive (EAA)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) diff --git a/src/mame/drivers/nycaptor.cpp b/src/mame/drivers/nycaptor.cpp index f26b3744a2d..34a721f5e63 100644 --- a/src/mame/drivers/nycaptor.cpp +++ b/src/mame/drivers/nycaptor.cpp @@ -778,7 +778,7 @@ void nycaptor_state::machine_reset() memset(m_vol_ctrl, 0, sizeof(m_vol_ctrl)); } -static MACHINE_CONFIG_START( nycaptor, nycaptor_state ) +static MACHINE_CONFIG_START( nycaptor ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80,8000000/2) /* ??? */ @@ -844,7 +844,7 @@ static MACHINE_CONFIG_START( nycaptor, nycaptor_state ) // Does the DAC also exist on this board? nycaptor writes 0x80 to 0xd600 MACHINE_CONFIG_END -static MACHINE_CONFIG_START( cyclshtg, nycaptor_state ) +static MACHINE_CONFIG_START( cyclshtg ) MCFG_CPU_ADD("maincpu", Z80,8000000/2) MCFG_CPU_PROGRAM_MAP(cyclshtg_master_map) @@ -911,7 +911,7 @@ static MACHINE_CONFIG_START( cyclshtg, nycaptor_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( bronx, nycaptor_state ) +static MACHINE_CONFIG_START( bronx ) MCFG_CPU_ADD("maincpu", Z80,8000000/2) MCFG_CPU_PROGRAM_MAP(bronx_master_map) @@ -1335,8 +1335,8 @@ DRIVER_INIT_MEMBER(nycaptor_state,colt) m_gametype = 2; } -GAME( 1985, nycaptor, 0, nycaptor, nycaptor, nycaptor_state, nycaptor, ROT0, "Taito", "N.Y. Captor", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1985, nycaptor, 0, nycaptor, nycaptor, nycaptor_state, nycaptor, ROT0, "Taito", "N.Y. Captor", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) GAME( 1986, cyclshtg, 0, cyclshtg, cyclshtg, nycaptor_state, cyclshtg, ROT90, "Taito", "Cycle Shooting", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) /* bootlegs */ -GAME( 1986, bronx, cyclshtg, bronx, bronx, nycaptor_state, bronx, ROT90, "bootleg", "Bronx", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1986, colt, nycaptor, bronx, colt, nycaptor_state, colt, ROT0, "bootleg", "Colt", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE ) +GAME( 1986, bronx, cyclshtg, bronx, bronx, nycaptor_state, bronx, ROT90, "bootleg", "Bronx", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1986, colt, nycaptor, bronx, colt, nycaptor_state, colt, ROT0, "bootleg", "Colt", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/nyny.cpp b/src/mame/drivers/nyny.cpp index cc5e795deb0..11c38f09a09 100644 --- a/src/mame/drivers/nyny.cpp +++ b/src/mame/drivers/nyny.cpp @@ -591,7 +591,7 @@ void nyny_state::machine_reset() * *************************************/ -static MACHINE_CONFIG_START( nyny, nyny_state ) +static MACHINE_CONFIG_START( nyny ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809, 1400000) /* 1.40 MHz? The clock signal is generated by analog chips */ @@ -745,6 +745,6 @@ ROM_END * *************************************/ -GAME( 1980, nyny, 0, nyny, nyny, driver_device, 0, ROT270, "Sigma Enterprises Inc.", "New York! New York!", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1980, nynyg, nyny, nyny, nyny, driver_device, 0, ROT270, "Sigma Enterprises Inc. (Gottlieb license)", "New York! New York! (Gottlieb)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1980, warcadia,nyny, nyny, nyny, driver_device, 0, ROT270, "Sigma Enterprises Inc.", "Waga Seishun no Arcadia", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1980, nyny, 0, nyny, nyny, nyny_state, 0, ROT270, "Sigma Enterprises Inc.", "New York! New York!", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1980, nynyg, nyny, nyny, nyny, nyny_state, 0, ROT270, "Sigma Enterprises Inc. (Gottlieb license)", "New York! New York! (Gottlieb)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1980, warcadia,nyny, nyny, nyny, nyny_state, 0, ROT270, "Sigma Enterprises Inc.", "Waga Seishun no Arcadia", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/ob68k1a.cpp b/src/mame/drivers/ob68k1a.cpp index 2379a3ea0ea..022dc66a5ed 100644 --- a/src/mame/drivers/ob68k1a.cpp +++ b/src/mame/drivers/ob68k1a.cpp @@ -217,7 +217,7 @@ void ob68k1a_state::machine_reset() // MACHINE_CONFIG( ob68k1a ) //------------------------------------------------- -static MACHINE_CONFIG_START( ob68k1a, ob68k1a_state ) +static MACHINE_CONFIG_START( ob68k1a ) // basic machine hardware MCFG_CPU_ADD(MC68000L10_TAG, M68000, XTAL_10MHz) MCFG_CPU_PROGRAM_MAP(ob68k1a_mem) @@ -288,5 +288,5 @@ ROM_END // SYSTEM DRIVERS //************************************************************************** -// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS -COMP( 1982, ob68k1a, 0, 0, ob68k1a, ob68k1a, driver_device, 0, "Omnibyte", "OB68K1A", MACHINE_NO_SOUND_HW ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1982, ob68k1a, 0, 0, ob68k1a, ob68k1a, ob68k1a_state, 0, "Omnibyte", "OB68K1A", MACHINE_NO_SOUND_HW ) diff --git a/src/mame/drivers/octopus.cpp b/src/mame/drivers/octopus.cpp index 2d1f2c9c919..74f2ec1f5ad 100644 --- a/src/mame/drivers/octopus.cpp +++ b/src/mame/drivers/octopus.cpp @@ -238,7 +238,7 @@ private: required_device m_pic1; required_device m_pic2; required_device m_rtc; - required_device m_fdc; + required_device m_fdc; required_device m_floppy0; required_device m_floppy1; required_device m_kb_uart; @@ -310,7 +310,7 @@ static ADDRESS_MAP_START( octopus_io, AS_IO, 8, octopus_state ) AM_RANGE(0xc8, 0xc8) AM_READWRITE(vidcontrol_r, vidcontrol_w) AM_RANGE(0xc9, 0xca) AM_READWRITE(video_latch_r, video_latch_w) // 0xcf: mode control - AM_RANGE(0xd0, 0xd3) AM_DEVREADWRITE("fdc", fd1793_t, read, write) + AM_RANGE(0xd0, 0xd3) AM_DEVREADWRITE("fdc", fd1793_device, read, write) AM_RANGE(0xe0, 0xe4) AM_READWRITE(z80_vector_r, z80_vector_w) AM_RANGE(0xf0, 0xf1) AM_READWRITE(parallel_r, parallel_w) AM_RANGE(0xf8, 0xff) AM_DEVREADWRITE("ppi", i8255_device, read, write) @@ -865,7 +865,7 @@ SLOT_INTERFACE_START(octopus_centronics_devices) SLOT_INTERFACE("printer", CENTRONICS_PRINTER) SLOT_INTERFACE_END -static MACHINE_CONFIG_START( octopus, octopus_state ) +static MACHINE_CONFIG_START( octopus ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",I8088, XTAL_24MHz / 3) // 8MHz MCFG_CPU_PROGRAM_MAP(octopus_mem) @@ -897,11 +897,11 @@ static MACHINE_CONFIG_START( octopus, octopus_state ) MCFG_I8237_IN_MEMR_CB(READ8(octopus_state,dma_read)) MCFG_I8237_OUT_MEMW_CB(WRITE8(octopus_state,dma_write)) //MCFG_I8237_IN_IOR_0_CB(NOOP) - MCFG_I8237_IN_IOR_1_CB(DEVREAD8("fdc",fd1793_t,data_r)) // FDC + MCFG_I8237_IN_IOR_1_CB(DEVREAD8("fdc",fd1793_device,data_r)) // FDC //MCFG_I8237_IN_IOR_2_CB(NOOP) //MCFG_I8237_IN_IOR_3_CB(NOOP) //MCFG_I8237_OUT_IOW_0_CB(NOOP) - MCFG_I8237_OUT_IOW_1_CB(DEVWRITE8("fdc",fd1793_t,data_w)) // FDC + MCFG_I8237_OUT_IOW_1_CB(DEVWRITE8("fdc",fd1793_device,data_w)) // FDC //MCFG_I8237_OUT_IOW_2_CB(NOOP) //MCFG_I8237_OUT_IOW_3_CB(NOOP) MCFG_I8237_OUT_DACK_0_CB(WRITELINE(octopus_state, dack4_w)) @@ -1015,5 +1015,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1986, octopus, 0, 0, octopus, octopus, driver_device, 0, "Digital Microsystems", "LSI Octopus", MACHINE_NOT_WORKING) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1986, octopus, 0, 0, octopus, octopus, octopus_state, 0, "Digital Microsystems", "LSI Octopus", MACHINE_NOT_WORKING) diff --git a/src/mame/drivers/odyssey2.cpp b/src/mame/drivers/odyssey2.cpp index 08d266614ad..a7a35b1b95a 100644 --- a/src/mame/drivers/odyssey2.cpp +++ b/src/mame/drivers/odyssey2.cpp @@ -657,7 +657,7 @@ static MACHINE_CONFIG_FRAGMENT( odyssey2_cartslot ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( odyssey2, odyssey2_state ) +static MACHINE_CONFIG_START( odyssey2 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8048, ( ( XTAL_7_15909MHz * 3 ) / 4 ) ) MCFG_CPU_PROGRAM_MAP(odyssey2_mem) @@ -691,7 +691,7 @@ static MACHINE_CONFIG_START( odyssey2, odyssey2_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( videopac, odyssey2_state ) +static MACHINE_CONFIG_START( videopac ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8048, ( XTAL_17_73447MHz / 3 ) ) MCFG_CPU_PROGRAM_MAP(odyssey2_mem) @@ -717,7 +717,7 @@ static MACHINE_CONFIG_START( videopac, odyssey2_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( g7400, g7400_state ) +static MACHINE_CONFIG_START( g7400 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8048, XTAL_5_911MHz ) MCFG_CPU_PROGRAM_MAP(odyssey2_mem) @@ -758,7 +758,7 @@ static MACHINE_CONFIG_START( g7400, g7400_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( odyssey3, g7400_state ) +static MACHINE_CONFIG_START( odyssey3 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8048, XTAL_5_911MHz ) MCFG_CPU_PROGRAM_MAP(odyssey2_mem) @@ -837,9 +837,9 @@ ROM_START (odyssey3) ROM_REGION(0x100, "gfx1", ROMREGION_ERASEFF) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1978, odyssey2, 0, 0, odyssey2, odyssey2, odyssey2_state, odyssey2, "Magnavox", "Odyssey 2", 0 ) -COMP( 1979, videopac, odyssey2, 0, videopac, odyssey2, odyssey2_state, odyssey2, "Philips", "Videopac G7000/C52", 0 ) -COMP( 1983, g7400, odyssey2, 0, g7400, odyssey2, odyssey2_state, odyssey2, "Philips", "Videopac Plus G7400", MACHINE_IMPERFECT_GRAPHICS ) -COMP( 1983, jopac, odyssey2, 0, g7400, odyssey2, odyssey2_state, odyssey2, "Brandt", "Jopac JO7400", MACHINE_IMPERFECT_GRAPHICS ) -COMP( 1983, odyssey3, odyssey2, 0, odyssey3, odyssey2, odyssey2_state, odyssey2, "Magnavox", "Odyssey 3 Command Center (prototype)", MACHINE_IMPERFECT_GRAPHICS ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +COMP( 1978, odyssey2, 0, 0, odyssey2, odyssey2, odyssey2_state, odyssey2, "Magnavox", "Odyssey 2", 0 ) +COMP( 1979, videopac, odyssey2, 0, videopac, odyssey2, odyssey2_state, odyssey2, "Philips", "Videopac G7000/C52", 0 ) +COMP( 1983, g7400, odyssey2, 0, g7400, odyssey2, g7400_state, odyssey2, "Philips", "Videopac Plus G7400", MACHINE_IMPERFECT_GRAPHICS ) +COMP( 1983, jopac, odyssey2, 0, g7400, odyssey2, g7400_state, odyssey2, "Brandt", " Jopac JO7400", MACHINE_IMPERFECT_GRAPHICS ) +COMP( 1983, odyssey3, odyssey2, 0, odyssey3, odyssey2, g7400_state, odyssey2, "Magnavox", "Odyssey 3 Command Center (prototype)", MACHINE_IMPERFECT_GRAPHICS ) diff --git a/src/mame/drivers/offtwall.cpp b/src/mame/drivers/offtwall.cpp index a105469525d..b6bef7c63df 100644 --- a/src/mame/drivers/offtwall.cpp +++ b/src/mame/drivers/offtwall.cpp @@ -360,7 +360,7 @@ GFXDECODE_END * *************************************/ -static MACHINE_CONFIG_START( offtwall, offtwall_state ) +static MACHINE_CONFIG_START( offtwall ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, ATARI_CLOCK_14MHz/2) diff --git a/src/mame/drivers/ohmygod.cpp b/src/mame/drivers/ohmygod.cpp index a93238fcdd9..aef61a5398f 100644 --- a/src/mame/drivers/ohmygod.cpp +++ b/src/mame/drivers/ohmygod.cpp @@ -318,7 +318,7 @@ void ohmygod_state::machine_reset() m_scrolly = 0; } -static MACHINE_CONFIG_START( ohmygod, ohmygod_state ) +static MACHINE_CONFIG_START( ohmygod ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 12000000) @@ -346,7 +346,7 @@ static MACHINE_CONFIG_START( ohmygod, ohmygod_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", 14000000/8, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", 14000000/8, PIN7_HIGH) MCFG_DEVICE_ADDRESS_MAP(AS_0, oki_map) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -399,5 +399,5 @@ DRIVER_INIT_MEMBER(ohmygod_state,naname) } -GAME( 1993, ohmygod, 0, ohmygod, ohmygod, ohmygod_state, ohmygod, ROT0, "Atlus", "Oh My God! (Japan)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1994, naname, 0, ohmygod, naname, ohmygod_state, naname, ROT0, "Atlus", "Naname de Magic! (Japan)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1993, ohmygod, 0, ohmygod, ohmygod, ohmygod_state, ohmygod, ROT0, "Atlus", "Oh My God! (Japan)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1994, naname, 0, ohmygod, naname, ohmygod_state, naname, ROT0, "Atlus", "Naname de Magic! (Japan)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/ojankohs.cpp b/src/mame/drivers/ojankohs.cpp index db5558bb817..8b0590a2459 100644 --- a/src/mame/drivers/ojankohs.cpp +++ b/src/mame/drivers/ojankohs.cpp @@ -810,7 +810,7 @@ void ojankohs_state::machine_reset() m_screen_refresh = 0; } -static MACHINE_CONFIG_START( ojankohs, ojankohs_state ) +static MACHINE_CONFIG_START( ojankohs ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80,12000000/2) /* 6.00 MHz ? */ @@ -847,11 +847,11 @@ static MACHINE_CONFIG_START( ojankohs, ojankohs_state ) MCFG_SOUND_ADD("msm", MSM5205, 384000) MCFG_MSM5205_VCLK_CB(WRITELINE(ojankohs_state, ojankohs_adpcm_int)) /* IRQ handler */ - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S48_4B) /* 8 KHz */ + MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) /* 8 KHz */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( ojankoy, ojankohs_state ) +static MACHINE_CONFIG_START( ojankoy ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80,12000000/2) /* 6.00 MHz ? */ @@ -887,11 +887,11 @@ static MACHINE_CONFIG_START( ojankoy, ojankohs_state ) MCFG_SOUND_ADD("msm", MSM5205, 384000) MCFG_MSM5205_VCLK_CB(WRITELINE(ojankohs_state, ojankohs_adpcm_int)) /* IRQ handler */ - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S48_4B) /* 8 KHz */ + MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) /* 8 KHz */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( ccasino, ojankohs_state ) +static MACHINE_CONFIG_START( ccasino ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80,12000000/2) /* 6.00 MHz ? */ @@ -928,11 +928,11 @@ static MACHINE_CONFIG_START( ccasino, ojankohs_state ) MCFG_SOUND_ADD("msm", MSM5205, 384000) MCFG_MSM5205_VCLK_CB(WRITELINE(ojankohs_state, ojankohs_adpcm_int)) /* IRQ handler */ - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S48_4B) /* 8 KHz */ + MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) /* 8 KHz */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( ojankoc, ojankohs_state ) +static MACHINE_CONFIG_START( ojankoc ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80,8000000/2) /* 4.00 MHz */ @@ -966,7 +966,7 @@ static MACHINE_CONFIG_START( ojankoc, ojankohs_state ) MCFG_SOUND_ADD("msm", MSM5205, 8000000/22) MCFG_MSM5205_VCLK_CB(WRITELINE(ojankohs_state, ojankohs_adpcm_int)) /* IRQ handler */ - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S48_4B) /* 8 KHz */ + MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) /* 8 KHz */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) MACHINE_CONFIG_END @@ -1080,9 +1080,9 @@ ROM_START( ojankoca ) ROM_END -GAME( 1986, ojankoc, 0, ojankoc, ojankoc, driver_device, 0, ROT0, "V-System Co.", "Ojanko Club (Japan, Program Ver. 1.3)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, ojankoca, ojankoc, ojankoc, ojankoc, driver_device, 0, ROT0, "V-System Co.", "Ojanko Club (Japan, Program Ver. 1.2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, ojankoy, 0, ojankoy, ojankoy, driver_device, 0, ROT0, "V-System Co.", "Ojanko Yakata (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, ojanko2, 0, ojankoy, ojankoy, driver_device, 0, ROT0, "V-System Co.", "Ojanko Yakata 2bankan (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, ccasino, 0, ccasino, ccasino, driver_device, 0, ROT0, "V-System Co.", "Chinese Casino [BET] (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, ojankohs, 0, ojankohs, ojankohs, driver_device, 0, ROT0, "V-System Co.", "Ojanko High School (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, ojankoc, 0, ojankoc, ojankoc, ojankohs_state, 0, ROT0, "V-System Co.", "Ojanko Club (Japan, Program Ver. 1.3)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, ojankoca, ojankoc, ojankoc, ojankoc, ojankohs_state, 0, ROT0, "V-System Co.", "Ojanko Club (Japan, Program Ver. 1.2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, ojankoy, 0, ojankoy, ojankoy, ojankohs_state, 0, ROT0, "V-System Co.", "Ojanko Yakata (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, ojanko2, 0, ojankoy, ojankoy, ojankohs_state, 0, ROT0, "V-System Co.", "Ojanko Yakata 2bankan (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, ccasino, 0, ccasino, ccasino, ojankohs_state, 0, ROT0, "V-System Co.", "Chinese Casino [BET] (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, ojankohs, 0, ojankohs, ojankohs, ojankohs_state, 0, ROT0, "V-System Co.", "Ojanko High School (Japan)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/okean240.cpp b/src/mame/drivers/okean240.cpp index 2fa47418255..1de7c0e53f2 100644 --- a/src/mame/drivers/okean240.cpp +++ b/src/mame/drivers/okean240.cpp @@ -82,24 +82,25 @@ public: DECLARE_READ8_MEMBER(okean240_keyboard_r); DECLARE_WRITE8_MEMBER(okean240_keyboard_w); DECLARE_READ8_MEMBER(okean240a_keyboard_r); - DECLARE_WRITE8_MEMBER(kbd_put); + void kbd_put(u8 data); DECLARE_WRITE8_MEMBER(scroll_w); - uint8_t m_term_data; - uint8_t m_j; - uint8_t m_scroll; - required_shared_ptr m_p_videoram; - virtual void machine_start() override; - virtual void machine_reset() override; - virtual void video_start() override; DECLARE_DRIVER_INIT(okean240); uint32_t screen_update_okean240(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); protected: + virtual void machine_start() override; + virtual void machine_reset() override; + virtual void video_start() override; + + virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + + uint8_t m_term_data; + uint8_t m_j; + uint8_t m_scroll; + required_shared_ptr m_p_videoram; optional_ioport m_io_modifiers; ioport_port *m_io_port[11]; required_device m_maincpu; - - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; }; // okean240 requires bit 4 to change @@ -405,7 +406,7 @@ void okean240_state::machine_reset() m_scroll = 0; } -WRITE8_MEMBER( okean240_state::kbd_put ) +void okean240_state::kbd_put(u8 data) { m_term_data = data; } @@ -472,7 +473,7 @@ static GFXDECODE_START( okean240a ) GFXDECODE_END -static MACHINE_CONFIG_START( okean240t, okean240_state ) +static MACHINE_CONFIG_START( okean240t ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",I8080, XTAL_12MHz / 6) MCFG_CPU_PROGRAM_MAP(okean240_mem) @@ -490,7 +491,7 @@ static MACHINE_CONFIG_START( okean240t, okean240_state ) MCFG_PALETTE_ADD_MONOCHROME("palette") MCFG_DEVICE_ADD("terminal", GENERIC_TERMINAL, 0) - MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(okean240_state, kbd_put)) + MCFG_GENERIC_TERMINAL_KEYBOARD_CB(PUT(okean240_state, kbd_put)) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( okean240a, okean240t ) @@ -499,7 +500,7 @@ static MACHINE_CONFIG_DERIVED( okean240a, okean240t ) MCFG_GFXDECODE_ADD("gfxdecode", "palette", okean240a) MCFG_DEVICE_REMOVE("terminal") MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0) - MCFG_GENERIC_KEYBOARD_CB(WRITE8(okean240_state, kbd_put)) + MCFG_GENERIC_KEYBOARD_CB(PUT(okean240_state, kbd_put)) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( okean240, okean240t ) @@ -508,7 +509,7 @@ static MACHINE_CONFIG_DERIVED( okean240, okean240t ) MCFG_GFXDECODE_ADD("gfxdecode", "palette", okean240) MCFG_DEVICE_REMOVE("terminal") MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0) - MCFG_GENERIC_KEYBOARD_CB(WRITE8(okean240_state, kbd_put)) + MCFG_GENERIC_KEYBOARD_CB(PUT(okean240_state, kbd_put)) MACHINE_CONFIG_END /* ROM definition */ @@ -531,7 +532,7 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1986, okean240, 0, 0, okean240, okean240, okean240_state, okean240, "", "Okeah-240", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -COMP( 1986, okean240a, okean240,0, okean240a, okean240a, okean240_state, okean240, "", "Ocean-240 with fdd", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -COMP( 1986, okean240t, okean240,0, okean240t, okean240, okean240_state, okean240, "", "Ocean-240 Test Rom", MACHINE_NO_SOUND) +// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS +COMP( 1986, okean240, 0, 0, okean240, okean240, okean240_state, okean240, "", "Okeah-240", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +COMP( 1986, okean240a, okean240, 0, okean240a, okean240a, okean240_state, okean240, "", "Ocean-240 with FDD", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +COMP( 1986, okean240t, okean240, 0, okean240t, okean240, okean240_state, okean240, "", "Ocean-240 Test ROM", MACHINE_NO_SOUND) diff --git a/src/mame/drivers/olibochu.cpp b/src/mame/drivers/olibochu.cpp index 5bf02fb5dda..f6518414a62 100644 --- a/src/mame/drivers/olibochu.cpp +++ b/src/mame/drivers/olibochu.cpp @@ -456,7 +456,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(olibochu_state::olibochu_scanline) m_maincpu->set_input_line_and_vector(0, HOLD_LINE, 0xcf); /* RST 08h */ } -static MACHINE_CONFIG_START( olibochu, olibochu_state ) +static MACHINE_CONFIG_START( olibochu ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 4000000) /* 4 MHz ?? */ @@ -537,4 +537,4 @@ ROM_END -GAME( 1981, olibochu, 0, olibochu, olibochu, driver_device, 0, ROT270, "Irem / GDI", "Oli-Boo-Chu", MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1981, olibochu, 0, olibochu, olibochu, olibochu_state, 0, ROT270, "Irem / GDI", "Oli-Boo-Chu", MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/omegrace.cpp b/src/mame/drivers/omegrace.cpp index 4e6fc310fdd..14377dd571d 100644 --- a/src/mame/drivers/omegrace.cpp +++ b/src/mame/drivers/omegrace.cpp @@ -496,7 +496,7 @@ INPUT_PORTS_END * *************************************/ -static MACHINE_CONFIG_START( omegrace, omegrace_state ) +static MACHINE_CONFIG_START( omegrace ) /* basic machine hardware */ diff --git a/src/mame/drivers/ondra.cpp b/src/mame/drivers/ondra.cpp index 40c7028d7e5..bd020405372 100644 --- a/src/mame/drivers/ondra.cpp +++ b/src/mame/drivers/ondra.cpp @@ -118,7 +118,7 @@ INTERRUPT_GEN_MEMBER(ondra_state::ondra_interrupt) } /* Machine driver */ -static MACHINE_CONFIG_START( ondra, ondra_state ) +static MACHINE_CONFIG_START( ondra ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 2000000) MCFG_CPU_PROGRAM_MAP(ondra_mem) @@ -183,6 +183,6 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1989, ondrat, 0, 0, ondra, ondra, driver_device, 0, "Tesla", "Ondra", 0) -COMP( 1989, ondrav, ondrat, 0, ondra, ondra, driver_device, 0, "ViLi", "Ondra ViLi", 0) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1989, ondrat, 0, 0, ondra, ondra, ondra_state, 0, "Tesla", "Ondra", 0 ) +COMP( 1989, ondrav, ondrat, 0, ondra, ondra, ondra_state, 0, "ViLi", "Ondra ViLi", 0 ) diff --git a/src/mame/drivers/oneshot.cpp b/src/mame/drivers/oneshot.cpp index ccbebdc4b76..b2a6d832b90 100644 --- a/src/mame/drivers/oneshot.cpp +++ b/src/mame/drivers/oneshot.cpp @@ -360,7 +360,7 @@ void oneshot_state::machine_reset() m_p2_wobble = 0; } -static MACHINE_CONFIG_START( oneshot, oneshot_state ) +static MACHINE_CONFIG_START( oneshot ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 12000000) @@ -392,7 +392,7 @@ static MACHINE_CONFIG_START( oneshot, oneshot_state ) MCFG_YM3812_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MCFG_OKIM6295_ADD("oki", 1056000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki", 1056000, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -494,6 +494,6 @@ ROM_END -GAME( 1995, maddonna, 0, maddonna, maddonna, driver_device, 0, ROT0, "Tuning", "Mad Donna (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, maddonnb, maddonna, maddonna, maddonna, driver_device, 0, ROT0, "Tuning", "Mad Donna (set 2)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) -GAME( 1996, oneshot, 0, oneshot, oneshot , driver_device, 0, ROT0, "Promat", "One Shot One Kill", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1995, maddonna, 0, maddonna, maddonna, oneshot_state, 0, ROT0, "Tuning", "Mad Donna (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, maddonnb, maddonna, maddonna, maddonna, oneshot_state, 0, ROT0, "Tuning", "Mad Donna (set 2)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +GAME( 1996, oneshot, 0, oneshot, oneshot , oneshot_state, 0, ROT0, "Promat", "One Shot One Kill", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/onetwo.cpp b/src/mame/drivers/onetwo.cpp index bbd211588ac..eba79c8557a 100644 --- a/src/mame/drivers/onetwo.cpp +++ b/src/mame/drivers/onetwo.cpp @@ -355,7 +355,7 @@ void onetwo_state::machine_start() } -static MACHINE_CONFIG_START( onetwo, onetwo_state ) +static MACHINE_CONFIG_START( onetwo ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80,MASTER_CLOCK) /* 4 MHz */ @@ -391,7 +391,7 @@ static MACHINE_CONFIG_START( onetwo, onetwo_state ) MCFG_YM3812_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MCFG_OKIM6295_ADD("oki", 1056000*2, OKIM6295_PIN7_LOW) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki", 1056000*2, PIN7_LOW) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -439,5 +439,5 @@ ROM_END * *************************************/ -GAME( 1997, onetwo, 0, onetwo, onetwo, driver_device, 0, ROT0, "Barko", "One + Two", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, onetwoe, onetwo, onetwo, onetwo, driver_device, 0, ROT0, "Barko", "One + Two (earlier)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, onetwo, 0, onetwo, onetwo, onetwo_state, 0, ROT0, "Barko", "One + Two", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, onetwoe, onetwo, onetwo, onetwo, onetwo_state, 0, ROT0, "Barko", "One + Two (earlier)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/onyx.cpp b/src/mame/drivers/onyx.cpp index d77d5f392eb..cb1bab9a754 100644 --- a/src/mame/drivers/onyx.cpp +++ b/src/mame/drivers/onyx.cpp @@ -46,7 +46,7 @@ public: } DECLARE_MACHINE_RESET(c8002); - DECLARE_WRITE8_MEMBER(kbd_put); + void kbd_put(u8 data); DECLARE_READ8_MEMBER(portff05_r); private: @@ -63,7 +63,7 @@ READ8_MEMBER( onyx_state::portff05_r ) return 4; } -WRITE8_MEMBER( onyx_state::kbd_put ) +void onyx_state::kbd_put(u8 data) { m_term_data = data; } @@ -111,7 +111,7 @@ ADDRESS_MAP_END ****************************************************************************/ -static MACHINE_CONFIG_START( c8002, onyx_state ) +static MACHINE_CONFIG_START( c8002 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z8002, XTAL_4MHz ) //MCFG_Z80_DAISY_CHAIN(main_daisy_chain) @@ -136,7 +136,7 @@ static MACHINE_CONFIG_START( c8002, onyx_state ) /* video hardware */ MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0) - MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(onyx_state, kbd_put)) + MCFG_GENERIC_TERMINAL_KEYBOARD_CB(PUT(onyx_state, kbd_put)) MACHINE_CONFIG_END /* ROM definition */ @@ -165,5 +165,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1982, c8002, 0, 0, c8002, c8002, driver_device, 0, "Onyx", "C8002", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW ) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 1982, c8002, 0, 0, c8002, c8002, onyx_state, 0, "Onyx", "C8002", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW ) diff --git a/src/mame/drivers/opwolf.cpp b/src/mame/drivers/opwolf.cpp index c33baaebc5d..1d48b814a80 100644 --- a/src/mame/drivers/opwolf.cpp +++ b/src/mame/drivers/opwolf.cpp @@ -774,7 +774,7 @@ GFXDECODE_END MACHINE DRIVERS ***********************************************************/ -static MACHINE_CONFIG_START( opwolf, opwolf_state ) +static MACHINE_CONFIG_START( opwolf ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, CPU_CLOCK ) /* 8 MHz */ @@ -820,13 +820,13 @@ static MACHINE_CONFIG_START( opwolf, opwolf_state ) MCFG_SOUND_ADD("msm1", MSM5205, 384000) MCFG_MSM5205_VCLK_CB(WRITELINE(opwolf_state, opwolf_msm5205_vck_1)) /* VCK function */ - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S48_4B) /* 8 kHz */ + MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) /* 8 kHz */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.60) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.60) MCFG_SOUND_ADD("msm2", MSM5205, 384000) MCFG_MSM5205_VCLK_CB(WRITELINE(opwolf_state, opwolf_msm5205_vck_2)) /* VCK function */ - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S48_4B) /* 8 kHz */ + MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) /* 8 kHz */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.60) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.60) @@ -845,7 +845,7 @@ MACHINE_CONFIG_END -static MACHINE_CONFIG_START( opwolfb, opwolf_state ) /* OSC clocks unknown for the bootleg, but changed to match original sets */ +static MACHINE_CONFIG_START( opwolfb ) /* OSC clocks unknown for the bootleg, but changed to match original sets */ /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, CPU_CLOCK ) /* 8 MHz ??? */ @@ -894,13 +894,13 @@ static MACHINE_CONFIG_START( opwolfb, opwolf_state ) /* OSC clocks unknown for t MCFG_SOUND_ADD("msm1", MSM5205, 384000) MCFG_MSM5205_VCLK_CB(WRITELINE(opwolf_state, opwolf_msm5205_vck_1)) /* VCK function */ - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S48_4B) /* 8 kHz */ + MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) /* 8 kHz */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.60) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.60) MCFG_SOUND_ADD("msm2", MSM5205, 384000) MCFG_MSM5205_VCLK_CB(WRITELINE(opwolf_state, opwolf_msm5205_vck_2)) /* VCK function */ - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S48_4B) /* 8 kHz */ + MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) /* 8 kHz */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.60) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.60) @@ -1117,10 +1117,10 @@ DRIVER_INIT_MEMBER(opwolf_state,opwolfp) // MACHINE_IMPERFECT_SOUND is present because the credit sound appears to double trigger. All other sounds seem correct. -/* year rom parent machine inp init */ -GAME( 1987, opwolf, 0, opwolf, opwolf, opwolf_state, opwolf, ROT0, "Taito Corporation Japan", "Operation Wolf (World, set 1)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1987, opwolfa, opwolf, opwolf, opwolf, opwolf_state, opwolf, ROT0, "Taito Corporation Japan", "Operation Wolf (World, set 2)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1987, opwolfj, opwolf, opwolf, opwolfu, opwolf_state, opwolf, ROT0, "Taito Corporation", "Operation Wolf (Japan)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1987, opwolfu, opwolf, opwolf, opwolfu, opwolf_state, opwolf, ROT0, "Taito America Corporation", "Operation Wolf (US)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +// year rom parent machine inp state init +GAME( 1987, opwolf, 0, opwolf, opwolf, opwolf_state, opwolf, ROT0, "Taito Corporation Japan", "Operation Wolf (World, set 1)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1987, opwolfa, opwolf, opwolf, opwolf, opwolf_state, opwolf, ROT0, "Taito Corporation Japan", "Operation Wolf (World, set 2)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1987, opwolfj, opwolf, opwolf, opwolfu, opwolf_state, opwolf, ROT0, "Taito Corporation", "Operation Wolf (Japan)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1987, opwolfu, opwolf, opwolf, opwolfu, opwolf_state, opwolf, ROT0, "Taito America Corporation", "Operation Wolf (US)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) GAME( 1987, opwolfb, opwolf, opwolfb, opwolfb, opwolf_state, opwolfb, ROT0, "bootleg (Bear Corporation Korea)", "Operation Bear (bootleg of Operation Wolf)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1987, opwolfp, opwolf, opwolfp, opwolfp, opwolf_state, opwolfp, ROT0, "Taito Corporation", "Operation Wolf (Japan, prototype)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // unprotected +GAME( 1987, opwolfp, opwolf, opwolfp, opwolfp, opwolf_state, opwolfp, ROT0, "Taito Corporation", "Operation Wolf (Japan, prototype)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // unprotected diff --git a/src/mame/drivers/orao.cpp b/src/mame/drivers/orao.cpp index d2b27d8ab79..346c7017db2 100644 --- a/src/mame/drivers/orao.cpp +++ b/src/mame/drivers/orao.cpp @@ -169,7 +169,7 @@ static INPUT_PORTS_START( orao ) INPUT_PORTS_END /* Machine driver */ -static MACHINE_CONFIG_START( orao, orao_state ) +static MACHINE_CONFIG_START( orao ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, 1000000) MCFG_CPU_PROGRAM_MAP(orao_mem) @@ -215,6 +215,6 @@ ROM_START( orao103 ) ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1984, orao, 0, 0, orao, orao, orao_state, orao, "PEL Varazdin", "Orao 102", 0) -COMP( 1985, orao103, orao, 0, orao, orao, orao_state, orao103, "PEL Varazdin", "Orao 103", 0) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1984, orao, 0, 0, orao, orao, orao_state, orao, "PEL Varazdin", "Orao 102", 0 ) +COMP( 1985, orao103, orao, 0, orao, orao, orao_state, orao103, "PEL Varazdin", "Orao 103", 0 ) diff --git a/src/mame/drivers/orbit.cpp b/src/mame/drivers/orbit.cpp index 7cbf45b2308..fe05f93004f 100644 --- a/src/mame/drivers/orbit.cpp +++ b/src/mame/drivers/orbit.cpp @@ -291,7 +291,7 @@ void orbit_state::machine_reset() * *************************************/ -static MACHINE_CONFIG_START( orbit, orbit_state ) +static MACHINE_CONFIG_START( orbit ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6800, MASTER_CLOCK / 16) @@ -365,4 +365,4 @@ ROM_END * *************************************/ -GAME( 1978, orbit, 0, orbit, orbit, driver_device, 0, 0, "Atari", "Orbit", MACHINE_SUPPORTS_SAVE ) +GAME( 1978, orbit, 0, orbit, orbit, orbit_state, 0, 0, "Atari", "Orbit", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/oric.cpp b/src/mame/drivers/oric.cpp index 409d928efdc..6808e9568b6 100644 --- a/src/mame/drivers/oric.cpp +++ b/src/mame/drivers/oric.cpp @@ -162,7 +162,7 @@ protected: }; required_device m_via2; - required_device m_fdc; + required_device m_fdc; required_memory_region m_telmatic; required_memory_region m_teleass; required_memory_region m_hyperbas; @@ -197,7 +197,7 @@ The telestrat has the memory regions split into 16k blocks. Memory region &c000-&ffff can be ram or rom. */ static ADDRESS_MAP_START(telestrat_mem, AS_PROGRAM, 8, telestrat_state ) AM_RANGE( 0x0300, 0x030f) AM_DEVREADWRITE("via6522", via6522_device, read, write) - AM_RANGE( 0x0310, 0x0313) AM_DEVREADWRITE("fdc", fd1793_t, read, write) + AM_RANGE( 0x0310, 0x0313) AM_DEVREADWRITE("fdc", fd1793_device, read, write) AM_RANGE( 0x0314, 0x0314) AM_READWRITE(port_314_r, port_314_w) AM_RANGE( 0x0318, 0x0318) AM_READ(port_318_r) AM_RANGE( 0x031c, 0x031f) AM_DEVREADWRITE("acia", mos6551_device, read, write) @@ -766,7 +766,7 @@ static INPUT_PORTS_START(telstrat) INPUT_PORTS_END -static MACHINE_CONFIG_START( oric, oric_state ) +static MACHINE_CONFIG_START( oric ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, XTAL_12MHz/12) MCFG_CPU_PROGRAM_MAP(oric_mem) @@ -828,7 +828,7 @@ static SLOT_INTERFACE_START( telestrat_floppies ) SLOT_INTERFACE( "3dsdd", FLOPPY_3_DSDD ) SLOT_INTERFACE_END -static MACHINE_CONFIG_DERIVED_CLASS( telstrat, oric, telestrat_state ) +static MACHINE_CONFIG_DERIVED( telstrat, oric ) MCFG_CPU_MODIFY( "maincpu" ) MCFG_CPU_PROGRAM_MAP(telestrat_mem) @@ -953,9 +953,9 @@ ROM_START(prav8dd) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ -COMP( 1983, oric1, 0, 0, oric, oric, driver_device, 0, "Tangerine", "Oric 1" , 0) -COMP( 1984, orica, oric1, 0, oric, orica, driver_device, 0, "Tangerine", "Oric Atmos" , 0) -COMP( 1985, prav8d, oric1, 0, prav8d, prav8d, driver_device, 0, "Pravetz", "Pravetz 8D", 0) -COMP( 1989, prav8dd, oric1, 0, prav8d, prav8d, driver_device, 0, "Pravetz", "Pravetz 8D (Disk ROM)", MACHINE_UNOFFICIAL) -COMP( 1986, telstrat, oric1, 0, telstrat, telstrat, driver_device, 0, "Tangerine", "Oric Telestrat", 0 ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1983, oric1, 0, 0, oric, oric, oric_state, 0, "Tangerine", "Oric 1" , 0 ) +COMP( 1984, orica, oric1, 0, oric, orica, oric_state, 0, "Tangerine", "Oric Atmos" , 0 ) +COMP( 1985, prav8d, oric1, 0, prav8d, prav8d, oric_state, 0, "Pravetz", "Pravetz 8D", 0 ) +COMP( 1989, prav8dd, oric1, 0, prav8d, prav8d, oric_state, 0, "Pravetz", "Pravetz 8D (Disk ROM)", MACHINE_UNOFFICIAL ) +COMP( 1986, telstrat, oric1, 0, telstrat, telstrat, telestrat_state, 0, "Tangerine", "Oric Telestrat", 0 ) diff --git a/src/mame/drivers/orion.cpp b/src/mame/drivers/orion.cpp index 15e2e5947e9..1655b9a63e3 100644 --- a/src/mame/drivers/orion.cpp +++ b/src/mame/drivers/orion.cpp @@ -85,7 +85,7 @@ static SLOT_INTERFACE_START( orion_floppies ) SLOT_INTERFACE_END /* Machine driver */ -static MACHINE_CONFIG_START( orion128, orion_state ) +static MACHINE_CONFIG_START( orion128 ) MCFG_CPU_ADD("maincpu", I8080, 2000000) MCFG_CPU_PROGRAM_MAP(orion128_mem) MCFG_CPU_IO_MAP(orion128_io) @@ -157,7 +157,7 @@ static MACHINE_CONFIG_DERIVED( orion128ms, orion128 ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( orionz80, orion_state ) +static MACHINE_CONFIG_START( orionz80 ) MCFG_CPU_ADD("maincpu", Z80, 2500000) MCFG_CPU_PROGRAM_MAP(orionz80_mem) MCFG_CPU_IO_MAP(orionz80_io) @@ -236,7 +236,7 @@ static MACHINE_CONFIG_DERIVED( orionz80ms, orionz80 ) MCFG_I8255_OUT_PORTC_CB(WRITE8(radio86_state, radio86_8255_portc_w2)) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( orionpro, orion_state ) +static MACHINE_CONFIG_START( orionpro ) MCFG_CPU_ADD("maincpu", Z80, 5000000) MCFG_CPU_PROGRAM_MAP(orionpro_mem) MCFG_CPU_IO_MAP(orionpro_io) @@ -368,11 +368,11 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1990, orion128, 0, 0, orion128, radio86, driver_device, 0, "", "Orion 128", 0) -COMP( 1990, orionms, orion128, 0, orion128ms, ms7007, driver_device, 0, "", "Orion 128 (MS7007)", 0) -COMP( 1990, orionz80, orion128, 0, orionz80, radio86, driver_device, 0, "", "Orion 128 + Z80 Card II", 0) -COMP( 1990, orionide, orion128, 0, orionz80, radio86, driver_device, 0, "", "Orion 128 + Z80 Card II + IDE", 0) -COMP( 1990, orionzms, orion128, 0, orionz80ms, ms7007, driver_device, 0, "", "Orion 128 + Z80 Card II (MS7007)", 0) -COMP( 1990, orionidm, orion128, 0, orionz80ms, ms7007, driver_device, 0, "", "Orion 128 + Z80 Card II + IDE (MS7007)", 0) -COMP( 1994, orionpro, orion128, 0, orionpro, radio86, driver_device, 0, "", "Orion Pro", 0) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1990, orion128, 0, 0, orion128, radio86, orion_state, 0, "", "Orion 128", 0 ) +COMP( 1990, orionms, orion128, 0, orion128ms, ms7007, orion_state, 0, "", "Orion 128 (MS7007)", 0 ) +COMP( 1990, orionz80, orion128, 0, orionz80, radio86, orion_state, 0, "", "Orion 128 + Z80 Card II", 0 ) +COMP( 1990, orionide, orion128, 0, orionz80, radio86, orion_state, 0, "", "Orion 128 + Z80 Card II + IDE", 0 ) +COMP( 1990, orionzms, orion128, 0, orionz80ms, ms7007, orion_state, 0, "", "Orion 128 + Z80 Card II (MS7007)", 0 ) +COMP( 1990, orionidm, orion128, 0, orionz80ms, ms7007, orion_state, 0, "", "Orion 128 + Z80 Card II + IDE (MS7007)", 0 ) +COMP( 1994, orionpro, orion128, 0, orionpro, radio86, orion_state, 0, "", "Orion Pro", 0 ) diff --git a/src/mame/drivers/osbexec.cpp b/src/mame/drivers/osbexec.cpp index ec1480cd7b7..fad52267053 100644 --- a/src/mame/drivers/osbexec.cpp +++ b/src/mame/drivers/osbexec.cpp @@ -47,7 +47,7 @@ public: { } required_device m_maincpu; - required_device m_mb8877; + required_device m_mb8877; required_device m_messram; required_device m_pia_0; required_device m_pia_1; @@ -218,12 +218,12 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( osbexec_io, AS_IO, 8, osbexec_state ) ADDRESS_MAP_UNMAP_HIGH - AM_RANGE( 0x00, 0x03 ) AM_MIRROR( 0xff00 ) AM_DEVREADWRITE( "pia_0", pia6821_device, read, write) /* 6821 PIA @ UD12 */ - AM_RANGE( 0x04, 0x07 ) AM_MIRROR( 0xff00 ) AM_DEVREADWRITE("ctc", pit8253_device, read, write) /* 8253 @UD1 */ - AM_RANGE( 0x08, 0x0B ) AM_MIRROR( 0xff00 ) AM_DEVREADWRITE("mb8877", wd_fdc_t, read, write ) /* MB8877 @ UB17 input clock = 1MHz */ - AM_RANGE( 0x0C, 0x0F ) AM_MIRROR( 0xff00 ) AM_DEVREADWRITE("sio", z80sio2_device, ba_cd_r, ba_cd_w ) /* SIO @ UD4 */ - AM_RANGE( 0x10, 0x13 ) AM_MIRROR( 0xff00 ) AM_DEVREADWRITE( "pia_1", pia6821_device, read, write) /* 6821 PIA @ UD8 */ - AM_RANGE( 0x14, 0x17 ) AM_SELECT( 0xff00 ) AM_READ(osbexec_kbd_r ) /* KBD */ + AM_RANGE( 0x00, 0x03 ) AM_MIRROR( 0xff00 ) AM_DEVREADWRITE( "pia_0", pia6821_device, read, write) /* 6821 PIA @ UD12 */ + AM_RANGE( 0x04, 0x07 ) AM_MIRROR( 0xff00 ) AM_DEVREADWRITE("ctc", pit8253_device, read, write) /* 8253 @UD1 */ + AM_RANGE( 0x08, 0x0B ) AM_MIRROR( 0xff00 ) AM_DEVREADWRITE("mb8877", wd_fdc_device_base, read, write ) /* MB8877 @ UB17 input clock = 1MHz */ + AM_RANGE( 0x0C, 0x0F ) AM_MIRROR( 0xff00 ) AM_DEVREADWRITE("sio", z80sio2_device, ba_cd_r, ba_cd_w ) /* SIO @ UD4 */ + AM_RANGE( 0x10, 0x13 ) AM_MIRROR( 0xff00 ) AM_DEVREADWRITE( "pia_1", pia6821_device, read, write) /* 6821 PIA @ UD8 */ + AM_RANGE( 0x14, 0x17 ) AM_SELECT( 0xff00 ) AM_READ(osbexec_kbd_r ) /* KBD */ AM_RANGE( 0x18, 0x1b ) AM_MIRROR( 0xff00 ) AM_READ(osbexec_rtc_r ) /* "RTC" @ UE13/UF13 */ /* ?? - vid ? */ ADDRESS_MAP_END @@ -557,7 +557,7 @@ static const z80_daisy_config osbexec_daisy_config[] = }; -static MACHINE_CONFIG_START( osbexec, osbexec_state ) +static MACHINE_CONFIG_START( osbexec ) MCFG_CPU_ADD( "maincpu", Z80, MAIN_CLOCK/6 ) MCFG_CPU_PROGRAM_MAP( osbexec_mem) MCFG_CPU_IO_MAP( osbexec_io) @@ -638,5 +638,5 @@ ROM_START( osbexec ) ROM_LOAD( "execv12.ud18", 0x0000, 0x2000, CRC(70798c2f) SHA1(2145a72da563bed1d6d455c77e48cc011a5f1153) ) /* Checksum C6B2 */ ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1982, osbexec, 0, 0, osbexec, osbexec, osbexec_state, osbexec, "Osborne", "Executive", MACHINE_NOT_WORKING ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1982, osbexec, 0, 0, osbexec, osbexec, osbexec_state, osbexec, "Osborne", "Executive", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/osborne1.cpp b/src/mame/drivers/osborne1.cpp index 43e5c995e5d..ff62f099c78 100644 --- a/src/mame/drivers/osborne1.cpp +++ b/src/mame/drivers/osborne1.cpp @@ -279,7 +279,7 @@ static GFXDECODE_START( osborne1 ) GFXDECODE_END -static MACHINE_CONFIG_START( osborne1, osborne1_state ) +static MACHINE_CONFIG_START( osborne1 ) MCFG_CPU_ADD("maincpu", Z80, MAIN_CLOCK/4) MCFG_CPU_PROGRAM_MAP(osborne1_mem) MCFG_CPU_DECRYPTED_OPCODES_MAP(osborne1_op) @@ -338,7 +338,7 @@ static MACHINE_CONFIG_START( osborne1, osborne1_state ) MCFG_SOFTWARE_LIST_ADD("flop_list","osborne1") MACHINE_CONFIG_END -MACHINE_CONFIG_DERIVED_CLASS( osborne1nv, osborne1, osborne1nv_state ) +MACHINE_CONFIG_DERIVED( osborne1nv, osborne1 ) MCFG_CPU_MODIFY("maincpu") MCFG_CPU_IO_MAP(osborne1nv_io) @@ -387,6 +387,6 @@ ROM_START( osborne1nv ) ROM_LOAD( "character_generator_6-29-84.14", 0x0000, 0x800, CRC(6c1eab0d) SHA1(b04459d377a70abc9155a5486003cb795342c801) ) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1981, osborne1, 0, 0, osborne1, osborne1, osborne1_state, osborne1, "Osborne", "Osborne-1", MACHINE_SUPPORTS_SAVE ) -COMP( 1984, osborne1nv, osborne1, 0, osborne1nv, osborne1nv, osborne1_state, osborne1, "Osborne/Nuevo", "Osborne-1 (Nuevo Video)", MACHINE_SUPPORTS_SAVE ) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 1981, osborne1, 0, 0, osborne1, osborne1, osborne1_state, osborne1, "Osborne", "Osborne-1", MACHINE_SUPPORTS_SAVE ) +COMP( 1984, osborne1nv, osborne1, 0, osborne1nv, osborne1nv, osborne1nv_state, osborne1, "Osborne/Nuevo", "Osborne-1 (Nuevo Video)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/osi.cpp b/src/mame/drivers/osi.cpp index 92d96939619..08ca2ec45db 100644 --- a/src/mame/drivers/osi.cpp +++ b/src/mame/drivers/osi.cpp @@ -711,7 +711,7 @@ GFXDECODE_END /* Machine Drivers */ -static MACHINE_CONFIG_START( osi600, sb2m600_state ) +static MACHINE_CONFIG_START( osi600 ) /* basic machine hardware */ MCFG_CPU_ADD(M6502_TAG, M6502, X1/4) // .98304 MHz MCFG_CPU_PROGRAM_MAP(osi600_mem) @@ -742,7 +742,7 @@ static MACHINE_CONFIG_START( osi600, sb2m600_state ) MCFG_RAM_EXTRA_OPTIONS("8K") MACHINE_CONFIG_END -static MACHINE_CONFIG_START( uk101, uk101_state ) +static MACHINE_CONFIG_START( uk101 ) /* basic machine hardware */ MCFG_CPU_ADD(M6502_TAG, M6502, UK101_X1/8) // 1 MHz MCFG_CPU_PROGRAM_MAP(uk101_mem) @@ -767,7 +767,7 @@ static MACHINE_CONFIG_START( uk101, uk101_state ) MCFG_RAM_EXTRA_OPTIONS("8K") MACHINE_CONFIG_END -static MACHINE_CONFIG_START( c1p, c1p_state ) +static MACHINE_CONFIG_START( c1p ) /* basic machine hardware */ MCFG_CPU_ADD(M6502_TAG, M6502, X1/4) // .98304 MHz MCFG_CPU_PROGRAM_MAP(c1p_mem) @@ -804,7 +804,7 @@ static MACHINE_CONFIG_START( c1p, c1p_state ) MCFG_RAM_EXTRA_OPTIONS("20K") MACHINE_CONFIG_END -static MACHINE_CONFIG_DERIVED_CLASS( c1pmf, c1p, c1pmf_state ) +static MACHINE_CONFIG_DERIVED( c1pmf, c1p ) MCFG_CPU_MODIFY(M6502_TAG) MCFG_CPU_PROGRAM_MAP(c1pmf_mem) @@ -893,9 +893,9 @@ DRIVER_INIT_MEMBER(c1p_state,c1p) /* System Drivers */ -// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME -COMP( 1978, sb2m600b, 0, 0, osi600, osi600, driver_device, 0, "Ohio Scientific", "Superboard II Model 600 (Rev. B)", MACHINE_NOT_WORKING) -//COMP( 1980, sb2m600c, 0, 0, osi600c, osi600, driver_device, 0, "Ohio Scientific", "Superboard II Model 600 (Rev. C)", MACHINE_NOT_WORKING) -COMP( 1980, c1p, sb2m600b, 0, c1p, osi600, c1p_state, c1p, "Ohio Scientific", "Challenger 1P Series 2", MACHINE_NOT_WORKING) -COMP( 1980, c1pmf, sb2m600b, 0, c1pmf, osi600, c1p_state, c1p, "Ohio Scientific", "Challenger 1P MF Series 2", MACHINE_NOT_WORKING) -COMP( 1979, uk101, sb2m600b, 0, uk101, uk101, driver_device, 0, "Compukit", "UK101", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1978, sb2m600b, 0, 0, osi600, osi600, sb2m600_state, 0, "Ohio Scientific", "Superboard II Model 600 (Rev. B)", MACHINE_NOT_WORKING) +//COMP( 1980, sb2m600c, 0, 0, osi600c, osi600, sb2m600_state, 0, "Ohio Scientific", "Superboard II Model 600 (Rev. C)", MACHINE_NOT_WORKING) +COMP( 1980, c1p, sb2m600b, 0, c1p, osi600, c1p_state, c1p, "Ohio Scientific", "Challenger 1P Series 2", MACHINE_NOT_WORKING) +COMP( 1980, c1pmf, sb2m600b, 0, c1pmf, osi600, c1pmf_state, c1p, "Ohio Scientific", "Challenger 1P MF Series 2", MACHINE_NOT_WORKING) +COMP( 1979, uk101, sb2m600b, 0, uk101, uk101, uk101_state, 0, "Compukit", "UK101", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW) diff --git a/src/mame/drivers/othello.cpp b/src/mame/drivers/othello.cpp index afa799bdbb3..fa289e6b08d 100644 --- a/src/mame/drivers/othello.cpp +++ b/src/mame/drivers/othello.cpp @@ -389,7 +389,7 @@ void othello_state::machine_reset() m_n7751_busy = 0; } -static MACHINE_CONFIG_START( othello, othello_state ) +static MACHINE_CONFIG_START( othello ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80,XTAL_8MHz/2) @@ -464,4 +464,4 @@ ROM_START( othello ) ROM_LOAD( "7.ic42", 0x4000, 0x2000, CRC(a76705f7) SHA1(b7d2a65d65d065732ddd0b3b738749369b382b48)) ROM_END -GAME( 1984, othello, 0, othello, othello, driver_device, 0, ROT0, "Success", "Othello (version 3.0)", MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1984, othello, 0, othello, othello, othello_state, 0, ROT0, "Success", "Othello (version 3.0)", MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/othunder.cpp b/src/mame/drivers/othunder.cpp index 220a6cd735f..ee6c08facd2 100644 --- a/src/mame/drivers/othunder.cpp +++ b/src/mame/drivers/othunder.cpp @@ -675,7 +675,7 @@ void othunder_state::machine_reset() m_ad_irq = 0; } -static MACHINE_CONFIG_START( othunder, othunder_state ) +static MACHINE_CONFIG_START( othunder ) /* basic machine hardware */ // MCFG_CPU_ADD("maincpu", M68000, 24000000/2 ) /* 12 MHz */ @@ -946,8 +946,8 @@ ROM_END -GAME( 1988, othunder, 0, othunder, othunder, driver_device, 0, ORIENTATION_FLIP_X, "Taito Corporation Japan", "Operation Thunderbolt (World, rev 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, othundero, othunder, othunder, othunder, driver_device, 0, ORIENTATION_FLIP_X, "Taito Corporation Japan", "Operation Thunderbolt (World)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, othunderu, othunder, othunder, othundu, driver_device, 0, ORIENTATION_FLIP_X, "Taito America Corporation", "Operation Thunderbolt (US, rev 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, othunderuo, othunder, othunder, othundu, driver_device, 0, ORIENTATION_FLIP_X, "Taito America Corporation", "Operation Thunderbolt (US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, othunderj, othunder, othunder, othundrj, driver_device, 0, ORIENTATION_FLIP_X, "Taito Corporation", "Operation Thunderbolt (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, othunder, 0, othunder, othunder, othunder_state, 0, ORIENTATION_FLIP_X, "Taito Corporation Japan", "Operation Thunderbolt (World, rev 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, othundero, othunder, othunder, othunder, othunder_state, 0, ORIENTATION_FLIP_X, "Taito Corporation Japan", "Operation Thunderbolt (World)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, othunderu, othunder, othunder, othundu, othunder_state, 0, ORIENTATION_FLIP_X, "Taito America Corporation", "Operation Thunderbolt (US, rev 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, othunderuo, othunder, othunder, othundu, othunder_state, 0, ORIENTATION_FLIP_X, "Taito America Corporation", "Operation Thunderbolt (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, othunderj, othunder, othunder, othundrj, othunder_state, 0, ORIENTATION_FLIP_X, "Taito Corporation", "Operation Thunderbolt (Japan)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/otomedius.cpp b/src/mame/drivers/otomedius.cpp index 7cd694f8bca..f922f73f660 100644 --- a/src/mame/drivers/otomedius.cpp +++ b/src/mame/drivers/otomedius.cpp @@ -62,7 +62,7 @@ void konami_pc_state::machine_reset() { } -static MACHINE_CONFIG_START( konami_pc, konami_pc_state ) +static MACHINE_CONFIG_START( konami_pc ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", PENTIUM3, 100000000) // not correct, but why bother? @@ -94,4 +94,4 @@ ROM_START( otomedius ) DISK_IMAGE( "otomedius", 0, SHA1(9283f8b7cd747be7b8e7321953adbf6cbe926f25) ) ROM_END -GAME( 2007, otomedius, 0, konami_pc, konami_pc, driver_device, 0, ROT0, "Konami", "Otomedius (ver GGG:J:A:A:2008041801)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +GAME( 2007, otomedius, 0, konami_pc, konami_pc, konami_pc_state, 0, ROT0, "Konami", "Otomedius (ver GGG:J:A:A:2008041801)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/overdriv.cpp b/src/mame/drivers/overdriv.cpp index baea234c0d6..7d285d56619 100644 --- a/src/mame/drivers/overdriv.cpp +++ b/src/mame/drivers/overdriv.cpp @@ -319,7 +319,7 @@ void overdriv_state::machine_reset() } -static MACHINE_CONFIG_START( overdriv, overdriv_state ) +static MACHINE_CONFIG_START( overdriv ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_24MHz/2) /* 12 MHz */ @@ -515,6 +515,6 @@ ROM_START( overdrivb ) ROM_LOAD( "789e02.f1", 0x100000, 0x100000, CRC(bdd3b5c6) SHA1(412332d64052c0a3714f4002c944b0e7d32980a4) ) ROM_END -GAMEL( 1990, overdriv, 0, overdriv, overdriv, driver_device, 0, ROT90, "Konami", "Over Drive (set 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE, layout_overdriv ) // US version -GAMEL( 1990, overdriva, overdriv, overdriv, overdriv, driver_device, 0, ROT90, "Konami", "Over Drive (set 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE, layout_overdriv ) // Overseas? -GAMEL( 1990, overdrivb, overdriv, overdriv, overdriv, driver_device, 0, ROT90, "Konami", "Over Drive (set 3)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE, layout_overdriv ) // Overseas? +GAMEL( 1990, overdriv, 0, overdriv, overdriv, overdriv_state, 0, ROT90, "Konami", "Over Drive (set 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE, layout_overdriv ) // US version +GAMEL( 1990, overdriva, overdriv, overdriv, overdriv, overdriv_state, 0, ROT90, "Konami", "Over Drive (set 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE, layout_overdriv ) // Overseas? +GAMEL( 1990, overdrivb, overdriv, overdriv, overdriv, overdriv_state, 0, ROT90, "Konami", "Over Drive (set 3)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE, layout_overdriv ) // Overseas? diff --git a/src/mame/drivers/p112.cpp b/src/mame/drivers/p112.cpp index 3707ce10c70..12d94156f32 100644 --- a/src/mame/drivers/p112.cpp +++ b/src/mame/drivers/p112.cpp @@ -81,7 +81,7 @@ uint32_t p112_state::screen_update_p112(screen_device &screen, bitmap_ind16 &bit return 0; } -static MACHINE_CONFIG_START( p112, p112_state ) +static MACHINE_CONFIG_START( p112 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z180, XTAL_16MHz) MCFG_CPU_PROGRAM_MAP(p112_mem) @@ -125,5 +125,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1996, p112, 0, 0, p112, p112, driver_device, 0, "Dave Brooks", "P112", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +COMP( 1996, p112, 0, 0, p112, p112, p112_state, 0, "Dave Brooks", "P112", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) diff --git a/src/mame/drivers/p2000t.cpp b/src/mame/drivers/p2000t.cpp index 0472d3dbe44..25f960fcd95 100644 --- a/src/mame/drivers/p2000t.cpp +++ b/src/mame/drivers/p2000t.cpp @@ -219,7 +219,7 @@ READ8_MEMBER( p2000t_state::videoram_r ) } /* Machine definition */ -static MACHINE_CONFIG_START( p2000t, p2000t_state ) +static MACHINE_CONFIG_START( p2000t ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 2500000) MCFG_CPU_PROGRAM_MAP(p2000t_mem) @@ -246,7 +246,7 @@ MACHINE_CONFIG_END /* Machine definition */ -static MACHINE_CONFIG_START( p2000m, p2000t_state ) +static MACHINE_CONFIG_START( p2000m ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 2500000) MCFG_CPU_PROGRAM_MAP(p2000m_mem) @@ -290,6 +290,6 @@ ROM_START(p2000m) ROM_LOAD("p2000.chr", 0x0140, 0x08c0, BAD_DUMP CRC(78c17e3e) SHA1(4e1c59dc484505de1dc0b1ba7e5f70a54b0d4ccc)) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ -COMP ( 1980, p2000t, 0, 0, p2000t, p2000t, driver_device, 0, "Philips", "Philips P2000T", 0) -COMP ( 1980, p2000m, p2000t, 0, p2000m, p2000t, driver_device, 0, "Philips", "Philips P2000M", 0) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP ( 1980, p2000t, 0, 0, p2000t, p2000t, p2000t_state, 0, "Philips", "Philips P2000T", 0 ) +COMP ( 1980, p2000m, p2000t, 0, p2000m, p2000t, p2000t_state, 0, "Philips", "Philips P2000M", 0 ) diff --git a/src/mame/drivers/p8k.cpp b/src/mame/drivers/p8k.cpp index 11735b65f05..ddb3cbd0588 100644 --- a/src/mame/drivers/p8k.cpp +++ b/src/mame/drivers/p8k.cpp @@ -79,8 +79,8 @@ public: DECLARE_WRITE8_MEMBER(p8k_port24_w); DECLARE_READ16_MEMBER(portff82_r); DECLARE_WRITE16_MEMBER(portff82_w); - DECLARE_WRITE8_MEMBER(kbd_put); - DECLARE_WRITE8_MEMBER(kbd_put_16); + void kbd_put(u8 data); + void kbd_put_16(u8 data); uint8_t m_term_data; required_device m_maincpu; required_device m_terminal; @@ -189,7 +189,7 @@ WRITE8_MEMBER( p8k_state::p8k_port24_w ) m_terminal->write(space, 0, data); } -WRITE8_MEMBER( p8k_state::kbd_put ) +void p8k_state::kbd_put(u8 data) { address_space &mem = m_maincpu->space(AS_PROGRAM); m_term_data = data; @@ -342,7 +342,7 @@ DRIVER_INIT_MEMBER(p8k_state,p8k) ****************************************************************************/ -WRITE8_MEMBER( p8k_state::kbd_put_16 ) +void p8k_state::kbd_put_16(u8 data) { address_space &mem = m_maincpu->space(AS_DATA); // keyboard int handler is at 0x0700 @@ -465,7 +465,7 @@ GFXDECODE_END ****************************************************************************/ -static MACHINE_CONFIG_START( p8k, p8k_state ) +static MACHINE_CONFIG_START( p8k ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_4MHz ) MCFG_Z80_DAISY_CHAIN(p8k_daisy_chain) @@ -522,10 +522,10 @@ static MACHINE_CONFIG_START( p8k, p8k_state ) /* video hardware */ MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0) - MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(p8k_state, kbd_put)) + MCFG_GENERIC_TERMINAL_KEYBOARD_CB(PUT(p8k_state, kbd_put)) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( p8k_16, p8k_state ) +static MACHINE_CONFIG_START( p8k_16 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z8001, XTAL_4MHz ) MCFG_Z80_DAISY_CHAIN(p8k_16_daisy_chain) @@ -562,7 +562,7 @@ static MACHINE_CONFIG_START( p8k_16, p8k_state ) /* video hardware */ MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0) - MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(p8k_state, kbd_put_16)) + MCFG_GENERIC_TERMINAL_KEYBOARD_CB(PUT(p8k_state, kbd_put_16)) MACHINE_CONFIG_END /* ROM definition */ @@ -592,6 +592,6 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1989, p8000, 0, 0, p8k, p8k, p8k_state, p8k, "EAW electronic Treptow", "P8000 (8bit Board)", MACHINE_NOT_WORKING) -COMP( 1989, p8000_16, p8000, 0, p8k_16, p8k, driver_device, 0, "EAW electronic Treptow", "P8000 (16bit Board)", MACHINE_NOT_WORKING) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1989, p8000, 0, 0, p8k, p8k, p8k_state, p8k, "EAW electronic Treptow", "P8000 (8bit Board)", MACHINE_NOT_WORKING) +COMP( 1989, p8000_16, p8000, 0, p8k_16, p8k, p8k_state, 0, "EAW electronic Treptow", "P8000 (16bit Board)", MACHINE_NOT_WORKING) diff --git a/src/mame/drivers/pachifev.cpp b/src/mame/drivers/pachifev.cpp index 37999a46caf..49b244a8aa4 100644 --- a/src/mame/drivers/pachifev.cpp +++ b/src/mame/drivers/pachifev.cpp @@ -339,7 +339,7 @@ void pachifev_state::machine_start() save_item(NAME(m_cnt)); } -static MACHINE_CONFIG_START( pachifev, pachifev_state ) +static MACHINE_CONFIG_START( pachifev ) // CPU TMS9995, standard variant; no line connections MCFG_TMS99xx_ADD("maincpu", TMS9995, XTAL_12MHz, pachifev_map, pachifev_cru) @@ -380,4 +380,4 @@ ROM_START( pachifev ) ROM_END -GAME( 1983, pachifev, 0, pachifev, pachifev, driver_device, 0, ROT270, "Sanki Denshi Kogyo", "Pachifever", MACHINE_IMPERFECT_SOUND ) +GAME( 1983, pachifev, 0, pachifev, pachifev, pachifev_state, 0, ROT270, "Sanki Denshi Kogyo", "Pachifever", MACHINE_IMPERFECT_SOUND ) diff --git a/src/mame/drivers/pacland.cpp b/src/mame/drivers/pacland.cpp index 8af5fcafd5b..487ca655278 100644 --- a/src/mame/drivers/pacland.cpp +++ b/src/mame/drivers/pacland.cpp @@ -426,7 +426,7 @@ INTERRUPT_GEN_MEMBER(pacland_state::mcu_vblank_irq) m_mcu->set_input_line(0, ASSERT_LINE); } -static MACHINE_CONFIG_START( pacland, pacland_state ) +static MACHINE_CONFIG_START( pacland ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809, XTAL_49_152MHz/32) /* 1.536 MHz */ @@ -640,8 +640,8 @@ ROM_END -GAME( 1984, pacland, 0, pacland, pacland, driver_device, 0, ROT0, "Namco", "Pac-Land (World)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, paclandj, pacland, pacland, pacland, driver_device, 0, ROT0, "Namco", "Pac-Land (Japan new)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, paclandjo, pacland, pacland, pacland, driver_device, 0, ROT0, "Namco", "Pac-Land (Japan old)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, paclandjo2,pacland, pacland, pacland, driver_device, 0, ROT0, "Namco", "Pac-Land (Japan older)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, paclandm, pacland, pacland, pacland, driver_device, 0, ROT0, "Namco (Bally Midway license)", "Pac-Land (Midway)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, pacland, 0, pacland, pacland, pacland_state, 0, ROT0, "Namco", "Pac-Land (World)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, paclandj, pacland, pacland, pacland, pacland_state, 0, ROT0, "Namco", "Pac-Land (Japan new)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, paclandjo, pacland, pacland, pacland, pacland_state, 0, ROT0, "Namco", "Pac-Land (Japan old)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, paclandjo2,pacland, pacland, pacland, pacland_state, 0, ROT0, "Namco", "Pac-Land (Japan older)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, paclandm, pacland, pacland, pacland, pacland_state, 0, ROT0, "Namco (Bally Midway license)", "Pac-Land (Midway)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/pacman.cpp b/src/mame/drivers/pacman.cpp index 292afc0e2f1..52b70e6cf27 100644 --- a/src/mame/drivers/pacman.cpp +++ b/src/mame/drivers/pacman.cpp @@ -3558,7 +3558,7 @@ GFXDECODE_END * *************************************/ -static MACHINE_CONFIG_START( pacman, pacman_state ) +static MACHINE_CONFIG_START( pacman ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, MASTER_CLOCK/6) @@ -7275,35 +7275,35 @@ DRIVER_INIT_MEMBER(pacman_state,cannonbp) * *************************************/ -/* rom parent machine inp init */ -GAME( 1980, puckman, 0, pacman, pacman, driver_device, 0, ROT90, "Namco", "Puck Man (Japan set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1980, puckmanb, puckman, pacman, pacman, driver_device, 0, ROT90, "bootleg", "Puck Man (bootleg set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1980, puckmanf, puckman, pacman, pacman, driver_device, 0, ROT90, "hack", "Puck Man (speedup hack)", MACHINE_SUPPORTS_SAVE ) -GAME( 1980, puckmanh, puckman, pacman, pacman, driver_device, 0, ROT90, "bootleg (Falcom?)", "Puck Man (bootleg set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1980, pacman, puckman, pacman, pacman, driver_device, 0, ROT90, "Namco (Midway license)", "Pac-Man (Midway)", MACHINE_SUPPORTS_SAVE ) -GAME( 1980, pacmanso, puckman, pacman, pacman, driver_device, 0, ROT90, "Namco (Sonic license)", "Pac-Man (SegaSA / Sonic)", MACHINE_SUPPORTS_SAVE ) // from SegaSA / Sonic, could be licensed, could be bootleg - it ignores the service mode credit settings despite listing them which is suspicious -GAME( 1980, pacmanf, puckman, pacman, pacman, driver_device, 0, ROT90, "hack", "Pac-Man (Midway, speedup hack)", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, puckmod, puckman, pacman, pacman, driver_device, 0, ROT90, "Namco", "Puck Man (Japan set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, pacmod, puckman, pacman, pacman, driver_device, 0, ROT90, "Namco (Midway license)", "Pac-Man (Midway, harder)", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, pacmanjpm,puckman, pacman, pacman, driver_device, 0, ROT90, "bootleg (JPM)", "Pac-Man (JPM bootleg)", MACHINE_SUPPORTS_SAVE ) // aka 'Muncher', UK bootleg, JPM later made fruit machines etc. -GAME( 1980, pacmanpe, puckman, pacman, pacmanpe, driver_device, 0, ROT90, "bootleg (Petaco SA)", "Come Come (Petaco SA bootleg of Puck Man)", MACHINE_SUPPORTS_SAVE ) // might have a speed-up button, check -GAME( 1980, newpuc2, puckman, pacman, pacman, driver_device, 0, ROT90, "hack", "Newpuc2 (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1980, newpuc2b, puckman, pacman, pacman, driver_device, 0, ROT90, "hack", "Newpuc2 (set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1980, newpuckx, puckman, pacman, pacman, driver_device, 0, ROT90, "hack", "New Puck-X", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, pacheart, puckman, pacman, pacman, driver_device, 0, ROT90, "hack", "Pac-Man (Hearts)", MACHINE_SUPPORTS_SAVE ) -GAME( 198?, bucaner, puckman, pacman, pacman, driver_device, 0, ROT90, "hack", "Buccaneer", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, hangly, puckman, pacman, pacman, driver_device, 0, ROT90, "hack", "Hangly-Man (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, hangly2, puckman, pacman, pacman, driver_device, 0, ROT90, "hack", "Hangly-Man (set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, hangly3, puckman, pacman, pacman, driver_device, 0, ROT90, "hack", "Hangly-Man (set 3)", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, popeyeman,puckman, pacman, pacman, driver_device, 0, ROT90, "hack", "Popeye-Man", MACHINE_SUPPORTS_SAVE ) -GAME( 1980, pacuman, puckman, pacman, pacuman, driver_device, 0, ROT90, "bootleg (Recreativos Franco S.A.)", "Pacu-Man (Spanish bootleg of Puck Man)", MACHINE_SUPPORTS_SAVE ) // common bootleg in Spain, code is shifted a bit compared to the Puck Man sets. Title & Manufacturer info from cabinet/PCB, not displayed ingame -GAME( 1980, crockman, puckman, pacman, pacman, driver_device, 0, ROT90, "bootleg (Rene Pierre)", "Crock-Man", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, joyman, puckman, pacman, pacman, driver_device, 0, ROT90, "hack", "Joyman", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, ctrpllrp, puckman, pacman, pacman, driver_device, 0, ROT90, "hack", "Caterpillar Pacman Hack", MACHINE_SUPPORTS_SAVE ) +// rom parent machine inp state init +GAME( 1980, puckman, 0, pacman, pacman, pacman_state, 0, ROT90, "Namco", "Puck Man (Japan set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, puckmanb, puckman, pacman, pacman, pacman_state, 0, ROT90, "bootleg", "Puck Man (bootleg set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, puckmanf, puckman, pacman, pacman, pacman_state, 0, ROT90, "hack", "Puck Man (speedup hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, puckmanh, puckman, pacman, pacman, pacman_state, 0, ROT90, "bootleg (Falcom?)", "Puck Man (bootleg set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, pacman, puckman, pacman, pacman, pacman_state, 0, ROT90, "Namco (Midway license)", "Pac-Man (Midway)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, pacmanso, puckman, pacman, pacman, pacman_state, 0, ROT90, "Namco (Sonic license)", "Pac-Man (SegaSA / Sonic)", MACHINE_SUPPORTS_SAVE ) // from SegaSA / Sonic, could be licensed, could be bootleg - it ignores the service mode credit settings despite listing them which is suspicious +GAME( 1980, pacmanf, puckman, pacman, pacman, pacman_state, 0, ROT90, "hack", "Pac-Man (Midway, speedup hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, puckmod, puckman, pacman, pacman, pacman_state, 0, ROT90, "Namco", "Puck Man (Japan set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, pacmod, puckman, pacman, pacman, pacman_state, 0, ROT90, "Namco (Midway license)", "Pac-Man (Midway, harder)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, pacmanjpm,puckman, pacman, pacman, pacman_state, 0, ROT90, "bootleg (JPM)", "Pac-Man (JPM bootleg)", MACHINE_SUPPORTS_SAVE ) // aka 'Muncher', UK bootleg, JPM later made fruit machines etc. +GAME( 1980, pacmanpe, puckman, pacman, pacmanpe, pacman_state, 0, ROT90, "bootleg (Petaco SA)", "Come Come (Petaco SA bootleg of Puck Man)", MACHINE_SUPPORTS_SAVE ) // might have a speed-up button, check +GAME( 1980, newpuc2, puckman, pacman, pacman, pacman_state, 0, ROT90, "hack", "Newpuc2 (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, newpuc2b, puckman, pacman, pacman, pacman_state, 0, ROT90, "hack", "Newpuc2 (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, newpuckx, puckman, pacman, pacman, pacman_state, 0, ROT90, "hack", "New Puck-X", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, pacheart, puckman, pacman, pacman, pacman_state, 0, ROT90, "hack", "Pac-Man (Hearts)", MACHINE_SUPPORTS_SAVE ) +GAME( 198?, bucaner, puckman, pacman, pacman, pacman_state, 0, ROT90, "hack", "Buccaneer", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, hangly, puckman, pacman, pacman, pacman_state, 0, ROT90, "hack", "Hangly-Man (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, hangly2, puckman, pacman, pacman, pacman_state, 0, ROT90, "hack", "Hangly-Man (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, hangly3, puckman, pacman, pacman, pacman_state, 0, ROT90, "hack", "Hangly-Man (set 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, popeyeman,puckman, pacman, pacman, pacman_state, 0, ROT90, "hack", "Popeye-Man", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, pacuman, puckman, pacman, pacuman, pacman_state, 0, ROT90, "bootleg (Recreativos Franco S.A.)", "Pacu-Man (Spanish bootleg of Puck Man)", MACHINE_SUPPORTS_SAVE ) // common bootleg in Spain, code is shifted a bit compared to the Puck Man sets. Title & Manufacturer info from cabinet/PCB, not displayed ingame +GAME( 1980, crockman, puckman, pacman, pacman, pacman_state, 0, ROT90, "bootleg (Rene Pierre)", "Crock-Man", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, joyman, puckman, pacman, pacman, pacman_state, 0, ROT90, "hack", "Joyman", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, ctrpllrp, puckman, pacman, pacman, pacman_state, 0, ROT90, "hack", "Caterpillar Pacman Hack", MACHINE_SUPPORTS_SAVE ) GAME( 1981, piranha, puckman, piranha, mspacman, pacman_state, eyes, ROT90, "GL (US Billiards license)", "Piranha", MACHINE_SUPPORTS_SAVE ) GAME( 1981, piranhao, puckman, piranha, mspacman, pacman_state, eyes, ROT90, "GL (US Billiards license)", "Piranha (older)", MACHINE_SUPPORTS_SAVE ) GAME( 1981, abscam, puckman, piranha, mspacman, pacman_state, eyes, ROT90, "GL (US Billiards license)", "Abscam", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, piranhah, puckman, pacman, mspacman, driver_device, 0, ROT90, "hack", "Piranha (hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, piranhah, puckman, pacman, mspacman, pacman_state, 0, ROT90, "hack", "Piranha (hack)", MACHINE_SUPPORTS_SAVE ) GAME( 1982, pacplus, 0, pacman, pacman, pacman_state, pacplus, ROT90, "Namco (Midway license)", "Pac-Man Plus", MACHINE_SUPPORTS_SAVE ) @@ -7313,30 +7313,30 @@ GAME( 1981, mspacmat, mspacman, mspacman, mspacman, pacman_state, mspacman, ROT GAME( 1989, msheartb, mspacman, mspacman, mspacman, pacman_state, mspacman, ROT90, "hack (Two-Bit Score)", "Ms. Pac-Man Heart Burn", MACHINE_SUPPORTS_SAVE ) GAME( 1981, pacgal2, mspacman, mspacman, mspacman, pacman_state, mspacman, ROT90, "bootleg", "Pac-Gal (set 2)", MACHINE_SUPPORTS_SAVE ) GAME( 1981, mspacmancr,mspacman,mspacman, mspacman, pacman_state, mspacman, ROT90, "bootleg", "Ms. Pac-Man (bootleg on Crush Roller Hardware)", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, mspacmab, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "bootleg", "Ms. Pac-Man (bootleg, set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, mspacmab2,mspacman, woodpek, mspacman, driver_device, 0, ROT90, "bootleg", "Ms. Pac-Man (bootleg, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, mspacmab, mspacman, woodpek, mspacman, pacman_state, 0, ROT90, "bootleg", "Ms. Pac-Man (bootleg, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, mspacmab2,mspacman, woodpek, mspacman, pacman_state, 0, ROT90, "bootleg", "Ms. Pac-Man (bootleg, set 2)", MACHINE_SUPPORTS_SAVE ) GAME( 1981, mspacmbe, mspacman, woodpek, mspacman, pacman_state, mspacmbe, ROT90, "bootleg", "Ms. Pac-Man (bootleg, encrypted)", MACHINE_SUPPORTS_SAVE ) GAME( 1981, mspacii, mspacman, woodpek, mspacman, pacman_state, mspacii, ROT90, "bootleg (Orca)", "Ms. Pac-Man II (Orca bootleg set 1)", MACHINE_SUPPORTS_SAVE ) GAME( 1981, mspacii2, mspacman, woodpek, mspacman, pacman_state, mspacii, ROT90, "bootleg (Orca)", "Ms. Pac-Man II (Orca bootleg set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, pacgal, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "hack", "Pac-Gal (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, mspacpls, mspacman, woodpek, mspacpls, driver_device, 0, ROT90, "hack", "Ms. Pac-Man Plus", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, pacgal, mspacman, woodpek, mspacman, pacman_state, 0, ROT90, "hack", "Pac-Gal (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, mspacpls, mspacman, woodpek, mspacpls, pacman_state, 0, ROT90, "hack", "Ms. Pac-Man Plus", MACHINE_SUPPORTS_SAVE ) GAME( 1992, mschamp, mspacman, mschamp, mschamp, pacman_state, mschamp, ROT90, "hack", "Ms. Pacman Champion Edition / Zola-Puc Gal", MACHINE_SUPPORTS_SAVE ) /* Rayglo version */ GAME( 1995, mschamps, mspacman, mschamp, mschamp, pacman_state, mschamp, ROT90, "hack", "Ms. Pacman Champion Edition / Super Zola-Puc Gal", MACHINE_SUPPORTS_SAVE ) // These bootlegs have MADE IN GREECE clearly visible and etched into the PCBs. They were very common in Spain with several operators having their own versions. // Based on the PCBs and copyright dates shown they were produced late 80s / early 90s. Usually they run a version of Ms. Pacman, but were sometimes converted back to regular Pac-Man -GAME( 198?, mspacmanbg, mspacman,woodpek, mspacman, driver_device, 0, ROT90, "bootleg", "Ms. Pac-Man ('Made in Greece' bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, mspacmanbgd,mspacman,woodpek, mspacman, driver_device, 0, ROT90, "bootleg (Datamat)", "Miss Pukman ('Made in Greece' Datamat bootleg)", MACHINE_SUPPORTS_SAVE ) // shows 'Miss Pukman 1991/1992' but confirmed to be the bootleg distributed by Datamat -GAME( 1992, mspacmanblt,mspacman,woodpek, mspacman, driver_device, 0, ROT90, "bootleg (Triunvi)", "Come-Cocos (Ms. Pac-Man) ('Made in Greece' Triunvi bootleg)", MACHINE_SUPPORTS_SAVE ) // -GAME( 1991, mspacmanbcc,mspacman,woodpek, mspacman, driver_device, 0, ROT90, "bootleg (Tecnausa)", "Come-Cocos (Ms. Pac-Man) ('Made in Greece' Tecnausa bootleg)", MACHINE_SUPPORTS_SAVE ) // ^ same PCB, also dated 1991, distributed by Tecnausa -GAME( 1991, mspacmanbhe,mspacman,woodpek, mspacman, driver_device, 0, ROT90, "bootleg (Herle SA)", "Come-Cocos (Ms. Pac-Man) ('Made in Greece' Herle SA bootleg)", MACHINE_SUPPORTS_SAVE ) // ^ same PCB -GAME( 198?, pacmansp, puckman, pacman, pacmansp, driver_device, 0, ROT90, "bootleg", "Puck Man (Spanish, 'Made in Greece' bootleg)", MACHINE_SUPPORTS_SAVE ) // probably a further conversion of the mspacmanbg bootleg, still has some MS Pacman code + extra features +GAME( 198?, mspacmanbg, mspacman,woodpek, mspacman, pacman_state, 0, ROT90, "bootleg", "Ms. Pac-Man ('Made in Greece' bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, mspacmanbgd,mspacman,woodpek, mspacman, pacman_state, 0, ROT90, "bootleg (Datamat)", "Miss Pukman ('Made in Greece' Datamat bootleg)", MACHINE_SUPPORTS_SAVE ) // shows 'Miss Pukman 1991/1992' but confirmed to be the bootleg distributed by Datamat +GAME( 1992, mspacmanblt,mspacman,woodpek, mspacman, pacman_state, 0, ROT90, "bootleg (Triunvi)", "Come-Cocos (Ms. Pac-Man) ('Made in Greece' Triunvi bootleg)", MACHINE_SUPPORTS_SAVE ) // +GAME( 1991, mspacmanbcc,mspacman,woodpek, mspacman, pacman_state, 0, ROT90, "bootleg (Tecnausa)", "Come-Cocos (Ms. Pac-Man) ('Made in Greece' Tecnausa bootleg)", MACHINE_SUPPORTS_SAVE ) // ^ same PCB, also dated 1991, distributed by Tecnausa +GAME( 1991, mspacmanbhe,mspacman,woodpek, mspacman, pacman_state, 0, ROT90, "bootleg (Herle SA)", "Come-Cocos (Ms. Pac-Man) ('Made in Greece' Herle SA bootleg)", MACHINE_SUPPORTS_SAVE ) // ^ same PCB +GAME( 198?, pacmansp, puckman, pacman, pacmansp, pacman_state, 0, ROT90, "bootleg", "Puck Man (Spanish, 'Made in Greece' bootleg)", MACHINE_SUPPORTS_SAVE ) // probably a further conversion of the mspacmanbg bootleg, still has some MS Pacman code + extra features -GAME( 1989, clubpacm, 0, woodpek, mspacman, driver_device, 0, ROT90, "Miky SRL", "Pacman Club / Club Lambada (Argentina)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) -GAME( 1990, clubpacma, clubpacm, woodpek, mspacman, driver_device, 0, ROT90, "Miky SRL", "Pacman Club (set 1, Argentina)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) -GAME( 1990, clubpacmb, clubpacm, woodpek, mspacman, driver_device, 0, ROT90, "Miky SRL", "Pacman Club (set 2, Argentina)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) +GAME( 1989, clubpacm, 0, woodpek, mspacman, pacman_state, 0, ROT90, "Miky SRL", "Pacman Club / Club Lambada (Argentina)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) +GAME( 1990, clubpacma, clubpacm, woodpek, mspacman, pacman_state, 0, ROT90, "Miky SRL", "Pacman Club (set 1, Argentina)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) +GAME( 1990, clubpacmb, clubpacm, woodpek, mspacman, pacman_state, 0, ROT90, "Miky SRL", "Pacman Club (set 2, Argentina)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) GAME( 1985, jumpshot, 0, pacman, jumpshot, pacman_state, jumpshot, ROT90, "Bally Midway", "Jump Shot", MACHINE_SUPPORTS_SAVE ) GAME( 1985, jumpshotp,jumpshot, pacman, jumpshotp,pacman_state, jumpshot, ROT90, "Bally Midway", "Jump Shot Engineering Sample", MACHINE_SUPPORTS_SAVE ) @@ -7344,35 +7344,35 @@ GAME( 1985, jumpshotp,jumpshot, pacman, jumpshotp,pacman_state, jumpshot, ROT GAME( 1985, shootbul, 0, pacman, shootbul, pacman_state, jumpshot, ROT90, "Bally Midway", "Shoot the Bull", MACHINE_SUPPORTS_SAVE ) GAME( 1981, crush, 0, pacmanp, maketrax, pacman_state, maketrax, ROT90, "Alpha Denshi Co. / Kural Samno Electric, Ltd.", "Crush Roller (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, crush2, crush, pacman, maketrax, driver_device, 0, ROT90, "Alpha Denshi Co. / Kural Esco Electric, Ltd.", "Crush Roller (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, crush2, crush, pacman, maketrax, pacman_state, 0, ROT90, "Alpha Denshi Co. / Kural Esco Electric, Ltd.", "Crush Roller (set 2)", MACHINE_SUPPORTS_SAVE ) GAME( 1981, crush3, crush, pacmanp, maketrax, pacman_state, maketrax, ROT90, "Alpha Denshi Co. / Kural Electric, Ltd.", "Crush Roller (set 3)", MACHINE_SUPPORTS_SAVE ) GAME( 1981, crush4, crush, pacman, maketrax, pacman_state, eyes, ROT90, "Alpha Denshi Co. / Kural Electric, Ltd.", "Crush Roller (set 4)", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, crush5, crush, crush4, crush4, driver_device, 0, ROT90, "Alpha Denshi Co. / Kural TWT", "Crush Roller (set 5)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, crush5, crush, crush4, crush4, pacman_state, 0, ROT90, "Alpha Denshi Co. / Kural TWT", "Crush Roller (set 5)", MACHINE_SUPPORTS_SAVE ) GAME( 1981, maketrax, crush, pacmanp, maketrax, pacman_state, maketrax, ROT270, "Alpha Denshi Co. / Kural (Williams license)", "Make Trax (US set 1)", MACHINE_SUPPORTS_SAVE ) GAME( 1981, maketrxb, crush, pacmanp, maketrax, pacman_state, maketrax, ROT270, "Alpha Denshi Co. / Kural (Williams license)", "Make Trax (US set 2)", MACHINE_SUPPORTS_SAVE ) GAME( 1981, korosuke, crush, pacmanp, 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, driver_device, 0, ROT90, "bootleg", "Crush Roller (Famaresa PCB)", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, crushbl, crush, pacman, maketrax, driver_device, 0, ROT90, "bootleg", "Crush Roller (bootleg set 1)", 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, pacmanp, mbrush, pacman_state, maketrax, ROT90, "bootleg", "Crush Roller (bootleg set 2)", MACHINE_SUPPORTS_SAVE ) GAME( 1981, crushbl3, crush, pacmanp, mbrush, pacman_state, maketrax, ROT90, "bootleg", "Crush Roller (bootleg set 3)", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, crushs, crush, crushs, crushs, driver_device, 0, ROT90, "bootleg (Sidam)", "Crush Roller (bootleg set 4)", MACHINE_SUPPORTS_SAVE ) // Sidam PCB, no Sidam text +GAME( 1981, crushs, crush, crushs, crushs, pacman_state, 0, ROT90, "bootleg (Sidam)", "Crush Roller (bootleg set 4)", MACHINE_SUPPORTS_SAVE ) // Sidam PCB, no Sidam text GAME( 1981, mbrush, crush, pacmanp, mbrush, pacman_state, maketrax, ROT90, "bootleg (Olympia)", "Magic Brush (bootleg of Crush Roller)", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, paintrlr, crush, pacman, paintrlr, driver_device, 0, ROT90, "bootleg", "Paint Roller (bootleg of Crush Roller)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, paintrlr, crush, pacman, paintrlr, pacman_state, 0, ROT90, "bootleg", "Paint Roller (bootleg of Crush Roller)", MACHINE_SUPPORTS_SAVE ) GAME( 1982, eyes, 0, pacman, eyes, pacman_state, eyes, ROT90, "Techstar (Rock-Ola license)", "Eyes (US set 1)", MACHINE_SUPPORTS_SAVE ) GAME( 1982, eyes2, eyes, pacman, eyes, pacman_state, eyes, ROT90, "Techstar (Rock-Ola license)", "Eyes (US set 2)", MACHINE_SUPPORTS_SAVE ) GAME( 1982, eyesb, eyes, pacman, eyes, pacman_state, eyes, ROT90, "bootleg", "Eyes (bootleg set 1)", MACHINE_SUPPORTS_SAVE ) GAME( 1982, eyeszac, eyes, pacman, eyes, pacman_state, eyes, ROT90, "Techstar (Zaccaria license)", "Eyes (Italy)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) // bad dump -GAME( 1982, eyeszacb, eyes, pacman, eyes, driver_device, 0, ROT90, "bootleg", "Eyes (bootleg set 2, decrypted)", MACHINE_SUPPORTS_SAVE ) // based on Zaccaria version +GAME( 1982, eyeszacb, eyes, pacman, eyes, pacman_state, 0, ROT90, "bootleg", "Eyes (bootleg set 2, decrypted)", MACHINE_SUPPORTS_SAVE ) // based on Zaccaria version GAME( 1983, mrtnt, 0, pacman, mrtnt, pacman_state, eyes, ROT90, "Techstar (Telko license)", "Mr. TNT", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, gorkans, mrtnt, pacman, mrtnt, driver_device, 0, ROT90, "Techstar", "Gorkans", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, gorkans, mrtnt, pacman, mrtnt, pacman_state, 0, ROT90, "Techstar", "Gorkans", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, lizwiz, 0, woodpek, lizwiz, driver_device, 0, ROT90, "Techstar (Sunn license)", "Lizard Wizard", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, lizwiz, 0, woodpek, lizwiz, pacman_state, 0, ROT90, "Techstar (Sunn license)", "Lizard Wizard", MACHINE_SUPPORTS_SAVE ) GAME( 1983, eggor, 0, pacman, mrtnt, pacman_state, eyes, ROT90, "Telko", "Eggor", MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1983, birdiy, 0, birdiy, birdiy, driver_device, 0, ROT270, "Mama Top", "Birdiy", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1983, birdiy, 0, birdiy, birdiy, pacman_state, 0, ROT270, "Mama Top", "Birdiy", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) GAME( 1981, woodpeck, 0, woodpek, woodpek, pacman_state, woodpek, ROT90, "Amenip (Palcom Queen River)", "Woodpecker (set 1)", MACHINE_SUPPORTS_SAVE ) GAME( 1981, woodpeca, woodpeck, woodpek, woodpek, pacman_state, woodpek, ROT90, "Amenip", "Woodpecker (set 2)", MACHINE_SUPPORTS_SAVE ) @@ -7384,23 +7384,23 @@ GAME( 1982, ponpoko, 0, woodpek, ponpoko, pacman_state, ponpoko, ROT GAME( 1982, ponpokov, ponpoko, woodpek, ponpoko, pacman_state, ponpoko, ROT0, "Sigma Enterprises Inc. (Venture Line license)", "Ponpoko (Venture Line)", MACHINE_SUPPORTS_SAVE ) GAME( 1982, candory, ponpoko, woodpek, ponpoko, pacman_state, ponpoko, ROT0, "bootleg", "Candory (Ponpoko bootleg with Mario)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, alibaba, 0, alibaba, alibaba, driver_device, 0, ROT90, "Sega", "Ali Baba and 40 Thieves", MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) -GAME( 1982, alibabab, alibaba, alibaba, alibaba, driver_device, 0, ROT90, "bootleg", "Mustafa and 40 Thieves (bootleg)", MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) +GAME( 1982, alibaba, 0, alibaba, alibaba, pacman_state, 0, ROT90, "Sega", "Ali Baba and 40 Thieves", MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) +GAME( 1982, alibabab, alibaba, alibaba, alibaba, pacman_state, 0, ROT90, "bootleg", "Mustafa and 40 Thieves (bootleg)", MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) -GAME( 1982, dremshpr, 0, dremshpr, dremshpr, driver_device, 0, ROT270, "Sanritsu", "Dream Shopper", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, dremshpr, 0, dremshpr, dremshpr, pacman_state, 0, ROT270, "Sanritsu", "Dream Shopper", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, vanvan, 0, vanvan, vanvan, driver_device, 0, ROT270, "Sanritsu", "Van-Van Car", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, vanvank, vanvan, vanvan, vanvank, driver_device, 0, ROT270, "Sanritsu (Karateco license?)", "Van-Van Car (Karateco set 1)", MACHINE_SUPPORTS_SAVE ) // or bootleg? -GAME( 1983, vanvanb, vanvan, vanvan, vanvank, driver_device, 0, ROT270, "Sanritsu (Karateco license?)", "Van-Van Car (Karateco set 2)", MACHINE_SUPPORTS_SAVE ) // " +GAME( 1983, vanvan, 0, vanvan, vanvan, pacman_state, 0, ROT270, "Sanritsu", "Van-Van Car", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, vanvank, vanvan, vanvan, vanvank, pacman_state, 0, ROT270, "Sanritsu (Karateco license?)", "Van-Van Car (Karateco set 1)", MACHINE_SUPPORTS_SAVE ) // or bootleg? +GAME( 1983, vanvanb, vanvan, vanvan, vanvank, pacman_state, 0, ROT270, "Sanritsu (Karateco license?)", "Van-Van Car (Karateco set 2)", MACHINE_SUPPORTS_SAVE ) // " -GAME( 1983, bwcasino, 0, acitya, bwcasino, driver_device, 0, ROT90, "Epos Corporation", "Boardwalk Casino", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, acitya, bwcasino, acitya, acitya, driver_device, 0, ROT90, "Epos Corporation", "Atlantic City Action", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, bwcasino, 0, acitya, bwcasino, pacman_state, 0, ROT90, "Epos Corporation", "Boardwalk Casino", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, acitya, bwcasino, acitya, acitya, pacman_state, 0, ROT90, "Epos Corporation", "Atlantic City Action", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, theglobp, suprglob, theglobp, theglobp, driver_device, 0, ROT90, "Epos Corporation", "The Glob (Pac-Man hardware)", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, sprglobp, suprglob, theglobp, theglobp, driver_device, 0, ROT90, "Epos Corporation", "Super Glob (Pac-Man hardware)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, sprglbpg, suprglob, pacman, theglobp, driver_device, 0, ROT90, "bootleg (Software Labor)", "Super Glob (Pac-Man hardware) (German bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, beastfp, suprglob, theglobp, theglobp, driver_device, 0, ROT90, "Epos Corporation", "Beastie Feastie (conversion kit)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, eeekk, 0, eeekk, eeekk, driver_device, 0, ROT90, "Epos Corporation", "Eeekk!", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, theglobp, suprglob, theglobp, theglobp, pacman_state, 0, ROT90, "Epos Corporation", "The Glob (Pac-Man hardware)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, sprglobp, suprglob, theglobp, theglobp, pacman_state, 0, ROT90, "Epos Corporation", "Super Glob (Pac-Man hardware)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, sprglbpg, suprglob, pacman, theglobp, pacman_state, 0, ROT90, "bootleg (Software Labor)", "Super Glob (Pac-Man hardware) (German bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, beastfp, suprglob, theglobp, theglobp, pacman_state, 0, ROT90, "Epos Corporation", "Beastie Feastie (conversion kit)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, eeekk, 0, eeekk, eeekk, pacman_state, 0, ROT90, "Epos Corporation", "Eeekk!", MACHINE_SUPPORTS_SAVE ) GAME( 1984, drivfrcp, 0, drivfrcp, drivfrcp, pacman_state, drivfrcp, ROT90, "Shinkai Inc. (Magic Electronics Inc. license)", "Driving Force (Pac-Man conversion)", MACHINE_SUPPORTS_SAVE ) @@ -7410,15 +7410,15 @@ GAME( 1985, porky, 0, porky, porky, pacman_state, porky, ROT GAME( 1986, rocktrv2, 0, rocktrv2, rocktrv2, pacman_state, rocktrv2, ROT90, "Triumph Software Inc.", "MTV Rock-N-Roll Trivia (Part 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, bigbucks, 0, bigbucks, bigbucks, driver_device, 0, ROT90, "Dynasoft Inc.", "Big Bucks", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, bigbucks, 0, bigbucks, bigbucks, pacman_state, 0, ROT90, "Dynasoft Inc.", "Big Bucks", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, numcrash, 0, numcrash, numcrash, driver_device, 0, ROT90, "Hanshin Goraku / Peni", "Number Crash", MACHINE_SUPPORTS_SAVE ) // "Peni soft" related? +GAME( 1983, numcrash, 0, numcrash, numcrash, pacman_state, 0, ROT90, "Hanshin Goraku / Peni", "Number Crash", MACHINE_SUPPORTS_SAVE ) // "Peni soft" related? GAME( 1985, cannonbp, 0, pacman, cannonbp, pacman_state, cannonbp, ROT90, "Novomatic", "Cannon Ball (Pac-Man Hardware)", MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE ) GAME( 1999, superabc, 0, superabc, superabc, pacman_state, superabc, ROT90, "hack (Two-Bit Score)", "Super ABC (Pac-Man multigame kit, Sep. 03 1999)", MACHINE_SUPPORTS_SAVE ) GAME( 1999, superabco,superabc, superabc, superabc, pacman_state, superabc, ROT90, "hack (Two-Bit Score)", "Super ABC (Pac-Man multigame kit, Mar. 08 1999)", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, pengojpm, pengo, pengojpm, pengojpm, driver_device, 0, ROT90, "bootleg", "Pengo (bootleg on Pac-Man hardware, set 1)", MACHINE_SUPPORTS_SAVE ) // conversion of pacmanjpm board with wire mods -GAME( 1981, pengopac, pengo, pengojpm, pengojpm, driver_device, 0, ROT90, "bootleg", "Pengo (bootleg on Pac-Man hardware, set 2)", MACHINE_SUPPORTS_SAVE ) // different conversion? -GAME( 1982, pinguinos, pengo, pengojpm, pengojpm, driver_device, 0, ROT90, "bootleg (Aincar)", "Pinguinos (Spanish bootleg on Pac-Man hardware)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, pengojpm, pengo, pengojpm, pengojpm, pacman_state, 0, ROT90, "bootleg", "Pengo (bootleg on Pac-Man hardware, set 1)", MACHINE_SUPPORTS_SAVE ) // conversion of pacmanjpm board with wire mods +GAME( 1981, pengopac, pengo, pengojpm, pengojpm, pacman_state, 0, ROT90, "bootleg", "Pengo (bootleg on Pac-Man hardware, set 2)", MACHINE_SUPPORTS_SAVE ) // different conversion? +GAME( 1982, pinguinos,pengo, pengojpm, pengojpm, pacman_state, 0, ROT90, "bootleg (Aincar)", "Pinguinos (Spanish bootleg on Pac-Man hardware)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/palm.cpp b/src/mame/drivers/palm.cpp index 4b8c6d795bb..544c1336468 100644 --- a/src/mame/drivers/palm.cpp +++ b/src/mame/drivers/palm.cpp @@ -167,7 +167,7 @@ ADDRESS_MAP_END MACHINE DRIVERS ***************************************************************************/ -static MACHINE_CONFIG_START( palm, palm_state ) +static MACHINE_CONFIG_START( palm ) /* basic machine hardware */ MCFG_CPU_ADD( "maincpu", M68000, 32768*506 ) /* 16.580608 MHz */ MCFG_CPU_PROGRAM_MAP( palm_map) @@ -465,22 +465,22 @@ static MACHINE_CONFIG_DERIVED( palmvx, palm ) MCFG_RAM_DEFAULT_SIZE("8M") MACHINE_CONFIG_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ -COMP( 1996, pilot1k, 0, 0, pilot1k, palm, driver_device, 0, "U.S. Robotics", "Pilot 1000", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND ) -COMP( 1996, pilot5k, pilot1k, 0, pilot5k, palm, driver_device, 0, "U.S. Robotics", "Pilot 5000", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND ) -COMP( 1997, palmpers, pilot1k, 0, pilot5k, palm, driver_device, 0, "U.S. Robotics", "Palm Pilot Personal", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND ) -COMP( 1997, palmpro, pilot1k, 0, palmpro, palm, driver_device, 0, "U.S. Robotics", "Palm Pilot Pro", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND ) -COMP( 1998, palmiii, pilot1k, 0, palmiii, palm, driver_device, 0, "3Com", "Palm III", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND ) -COMP( 1998, palmiiic, pilot1k, 0, palmiii, palm, driver_device, 0, "Palm Inc", "Palm IIIc", MACHINE_NOT_WORKING ) -COMP( 2000, palmm100, pilot1k, 0, palmiii, palm, driver_device, 0, "Palm Inc", "Palm m100", MACHINE_NOT_WORKING ) -COMP( 2000, palmm130, pilot1k, 0, palmiii, palm, driver_device, 0, "Palm Inc", "Palm m130", MACHINE_NOT_WORKING ) -COMP( 2001, palmm505, pilot1k, 0, palmiii, palm, driver_device, 0, "Palm Inc", "Palm m505", MACHINE_NOT_WORKING ) -COMP( 2001, palmm515, pilot1k, 0, palmiii, palm, driver_device, 0, "Palm Inc", "Palm m515", MACHINE_NOT_WORKING ) -COMP( 1999, palmv, pilot1k, 0, palmv, palm, driver_device, 0, "3Com", "Palm V", MACHINE_NOT_WORKING ) -COMP( 1999, palmvx, pilot1k, 0, palmvx, palm, driver_device, 0, "Palm Inc", "Palm Vx", MACHINE_NOT_WORKING ) -COMP( 2001, visor, pilot1k, 0, palmvx, palm, driver_device, 0, "Handspring", "Visor Edge", MACHINE_NOT_WORKING ) -COMP( 19??, spt1500, pilot1k, 0, palmvx, palm, driver_device, 0, "Symbol", "SPT 1500", MACHINE_NOT_WORKING ) -COMP( 19??, spt1700, pilot1k, 0, palmvx, palm, driver_device, 0, "Symbol", "SPT 1700", MACHINE_NOT_WORKING ) -COMP( 19??, spt1740, pilot1k, 0, palmvx, palm, driver_device, 0, "Symbol", "SPT 1740", MACHINE_NOT_WORKING ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1996, pilot1k, 0, 0, pilot1k, palm, palm_state, 0, "U.S. Robotics", "Pilot 1000", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND ) +COMP( 1996, pilot5k, pilot1k, 0, pilot5k, palm, palm_state, 0, "U.S. Robotics", "Pilot 5000", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND ) +COMP( 1997, palmpers, pilot1k, 0, pilot5k, palm, palm_state, 0, "U.S. Robotics", "Palm Pilot Personal", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND ) +COMP( 1997, palmpro, pilot1k, 0, palmpro, palm, palm_state, 0, "U.S. Robotics", "Palm Pilot Pro", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND ) +COMP( 1998, palmiii, pilot1k, 0, palmiii, palm, palm_state, 0, "3Com", "Palm III", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND ) +COMP( 1998, palmiiic, pilot1k, 0, palmiii, palm, palm_state, 0, "Palm Inc", "Palm IIIc", MACHINE_NOT_WORKING ) +COMP( 2000, palmm100, pilot1k, 0, palmiii, palm, palm_state, 0, "Palm Inc", "Palm m100", MACHINE_NOT_WORKING ) +COMP( 2000, palmm130, pilot1k, 0, palmiii, palm, palm_state, 0, "Palm Inc", "Palm m130", MACHINE_NOT_WORKING ) +COMP( 2001, palmm505, pilot1k, 0, palmiii, palm, palm_state, 0, "Palm Inc", "Palm m505", MACHINE_NOT_WORKING ) +COMP( 2001, palmm515, pilot1k, 0, palmiii, palm, palm_state, 0, "Palm Inc", "Palm m515", MACHINE_NOT_WORKING ) +COMP( 1999, palmv, pilot1k, 0, palmv, palm, palm_state, 0, "3Com", "Palm V", MACHINE_NOT_WORKING ) +COMP( 1999, palmvx, pilot1k, 0, palmvx, palm, palm_state, 0, "Palm Inc", "Palm Vx", MACHINE_NOT_WORKING ) +COMP( 2001, visor, pilot1k, 0, palmvx, palm, palm_state, 0, "Handspring", "Visor Edge", MACHINE_NOT_WORKING ) +COMP( 19??, spt1500, pilot1k, 0, palmvx, palm, palm_state, 0, "Symbol", "SPT 1500", MACHINE_NOT_WORKING ) +COMP( 19??, spt1700, pilot1k, 0, palmvx, palm, palm_state, 0, "Symbol", "SPT 1700", MACHINE_NOT_WORKING ) +COMP( 19??, spt1740, pilot1k, 0, palmvx, palm, palm_state, 0, "Symbol", "SPT 1740", MACHINE_NOT_WORKING ) #include "palm_dbg.hxx" diff --git a/src/mame/drivers/palmz22.cpp b/src/mame/drivers/palmz22.cpp index 3ca31438d5a..6a51dd93f49 100644 --- a/src/mame/drivers/palmz22.cpp +++ b/src/mame/drivers/palmz22.cpp @@ -278,7 +278,7 @@ DRIVER_INIT_MEMBER(palmz22_state,palmz22) { } -static MACHINE_CONFIG_START( palmz22, palmz22_state ) +static MACHINE_CONFIG_START( palmz22 ) MCFG_CPU_ADD("maincpu", ARM920T, 266000000) MCFG_CPU_PROGRAM_MAP(palmz22_map) @@ -305,7 +305,7 @@ static MACHINE_CONFIG_START( palmz22, palmz22_state ) MCFG_S3C2410_NAND_DATA_W_CB(WRITE8(palmz22_state, s3c2410_nand_data_w)) MCFG_DEVICE_ADD("nand", NAND, 0) - MCFG_NAND_TYPE(NAND_CHIP_K9F5608U0D_J) + MCFG_NAND_TYPE(K9F5608U0D_J) MCFG_NAND_RNB_CALLBACK(DEVWRITELINE("s3c2410", s3c2410_device, frnb_w)) MACHINE_CONFIG_END diff --git a/src/mame/drivers/pandoras.cpp b/src/mame/drivers/pandoras.cpp index 4475b56a85f..00a0e1d2ddb 100644 --- a/src/mame/drivers/pandoras.cpp +++ b/src/mame/drivers/pandoras.cpp @@ -321,7 +321,7 @@ READ8_MEMBER(pandoras_state::pandoras_portB_r) return (m_audiocpu->total_cycles() / 512) & 0x0f; } -static MACHINE_CONFIG_START( pandoras, pandoras_state ) +static MACHINE_CONFIG_START( pandoras ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809, MASTER_CLOCK/6) /* CPU A */ @@ -414,4 +414,4 @@ ROM_START( pandoras ) ROM_END -GAME( 1984, pandoras, 0, pandoras, pandoras, driver_device, 0, ROT90, "Konami / Interlogic", "Pandora's Palace", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, pandoras, 0, pandoras, pandoras, pandoras_state, 0, ROT90, "Konami / Interlogic", "Pandora's Palace", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/pangofun.cpp b/src/mame/drivers/pangofun.cpp index e334f3043c4..3e46859c913 100644 --- a/src/mame/drivers/pangofun.cpp +++ b/src/mame/drivers/pangofun.cpp @@ -171,7 +171,7 @@ void pangofun_state::machine_start() { } -static MACHINE_CONFIG_START( pangofun, pangofun_state ) +static MACHINE_CONFIG_START( pangofun ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I486, 25000000 ) /* I486 ?? Mhz (25 according to POST) */ MCFG_CPU_PROGRAM_MAP(pcat_map) diff --git a/src/mame/drivers/panicr.cpp b/src/mame/drivers/panicr.cpp index be6dd72e7e0..79cd9f07d2f 100644 --- a/src/mame/drivers/panicr.cpp +++ b/src/mame/drivers/panicr.cpp @@ -605,7 +605,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(panicr_state::scanline) m_maincpu->set_input_line_and_vector(0, HOLD_LINE, 0xc8/4); } -static MACHINE_CONFIG_START( panicr, panicr_state ) +static MACHINE_CONFIG_START( panicr ) MCFG_CPU_ADD("maincpu", V20,MASTER_CLOCK/2) /* Sony 8623h9 CXQ70116D-8 (V20 compatible) */ MCFG_CPU_PROGRAM_MAP(panicr_map) MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", panicr_state, scanline, "screen", 0, 1) diff --git a/src/mame/drivers/paradise.cpp b/src/mame/drivers/paradise.cpp index c1663bfbb11..bb826d78e42 100644 --- a/src/mame/drivers/paradise.cpp +++ b/src/mame/drivers/paradise.cpp @@ -723,7 +723,7 @@ INTERRUPT_GEN_MEMBER(paradise_state::irq) m_maincpu->set_input_line(INPUT_LINE_IRQ0, HOLD_LINE); } -static MACHINE_CONFIG_START( paradise, paradise_state ) +static MACHINE_CONFIG_START( paradise ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_12MHz/2) /* Z8400B - 6mhz Verified */ @@ -748,10 +748,10 @@ static MACHINE_CONFIG_START( paradise, paradise_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki1", XTAL_12MHz/12, OKIM6295_PIN7_HIGH) /* verified on pcb */ + MCFG_OKIM6295_ADD("oki1", XTAL_12MHz/12, PIN7_HIGH) /* verified on pcb */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) - MCFG_OKIM6295_ADD("oki2", XTAL_12MHz/12, OKIM6295_PIN7_HIGH) /* verified on pcb */ + MCFG_OKIM6295_ADD("oki2", XTAL_12MHz/12, PIN7_HIGH) /* verified on pcb */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) MACHINE_CONFIG_END diff --git a/src/mame/drivers/paranoia.cpp b/src/mame/drivers/paranoia.cpp index 83f9659bd4e..625bf5aab00 100644 --- a/src/mame/drivers/paranoia.cpp +++ b/src/mame/drivers/paranoia.cpp @@ -163,7 +163,7 @@ WRITE_LINE_MEMBER(paranoia_state::i8155_timer_out) //logerror("Timer out %d\n", state); } -static MACHINE_CONFIG_START( paranoia, paranoia_state ) +static MACHINE_CONFIG_START( paranoia ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", H6280, PCE_MAIN_CLOCK/3) MCFG_CPU_PROGRAM_MAP(pce_mem) @@ -186,7 +186,7 @@ static MACHINE_CONFIG_START( paranoia, paranoia_state ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(PCE_MAIN_CLOCK, HUC6260_WPF, 64, 64 + 1024 + 64, HUC6260_LPF, 18, 18 + 242) + MCFG_SCREEN_RAW_PARAMS(PCE_MAIN_CLOCK, huc6260_device::WPF, 64, 64 + 1024 + 64, huc6260_device::LPF, 18, 18 + 242) MCFG_SCREEN_UPDATE_DRIVER( pce_common_state, screen_update ) MCFG_SCREEN_PALETTE("huc6260:palette") @@ -221,4 +221,4 @@ ROM_START(paranoia) ROM_LOAD( "4.352", 0x18000, 0x8000, CRC(11297fed) SHA1(17a294e65ba1c4806307602dee4c7c627ad1fcfd) ) ROM_END -GAME( 1990, paranoia, 0, paranoia, paranoia, pce_common_state, pce_common, ROT0, "Naxat Soft", "Paranoia", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +GAME( 1990, paranoia, 0, paranoia, paranoia, paranoia_state, pce_common, ROT0, "Naxat Soft", "Paranoia", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/parodius.cpp b/src/mame/drivers/parodius.cpp index a06b4792169..ecc6bea5fa7 100644 --- a/src/mame/drivers/parodius.cpp +++ b/src/mame/drivers/parodius.cpp @@ -224,7 +224,7 @@ WRITE8_MEMBER( parodius_state::banking_callback ) membank("bank1")->set_entry((data & 0x0f) ^ 0x0f); } -static MACHINE_CONFIG_START( parodius, parodius_state ) +static MACHINE_CONFIG_START( parodius ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", KONAMI, 3000000) /* 053248 */ @@ -379,7 +379,7 @@ ROM_END ***************************************************************************/ -GAME( 1990, parodius, 0, parodius, parodius, driver_device, 0, ROT0, "Konami", "Parodius DA! (World, set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, parodiuse, parodius, parodius, parodius, driver_device, 0, ROT0, "Konami", "Parodius DA! (World, set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, parodiusj, parodius, parodius, parodius, driver_device, 0, ROT0, "Konami", "Parodius DA! (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, parodiusa, parodius, parodius, parodius, driver_device, 0, ROT0, "Konami", "Parodius DA! (Asia)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, parodius, 0, parodius, parodius, parodius_state, 0, ROT0, "Konami", "Parodius DA! (World, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, parodiuse, parodius, parodius, parodius, parodius_state, 0, ROT0, "Konami", "Parodius DA! (World, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, parodiusj, parodius, parodius, parodius, parodius_state, 0, ROT0, "Konami", "Parodius DA! (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, parodiusa, parodius, parodius, parodius, parodius_state, 0, ROT0, "Konami", "Parodius DA! (Asia)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/partner.cpp b/src/mame/drivers/partner.cpp index e3ae867cd45..502a6aedc6e 100644 --- a/src/mame/drivers/partner.cpp +++ b/src/mame/drivers/partner.cpp @@ -167,7 +167,7 @@ static GFXDECODE_START( partner ) GFXDECODE_END -static MACHINE_CONFIG_START( partner, partner_state ) +static MACHINE_CONFIG_START( partner ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8080, XTAL_16MHz / 9) MCFG_CPU_PROGRAM_MAP(partner_mem) @@ -204,8 +204,8 @@ static MACHINE_CONFIG_START( partner, partner_state ) MCFG_I8257_OUT_HRQ_CB(WRITELINE(partner_state, hrq_w)) MCFG_I8257_IN_MEMR_CB(READ8(radio86_state, memory_read_byte)) MCFG_I8257_OUT_MEMW_CB(WRITE8(radio86_state, memory_write_byte)) - MCFG_I8257_IN_IOR_0_CB(DEVREAD8("wd1793", fd1793_t, data_r)) - MCFG_I8257_OUT_IOW_0_CB(DEVWRITE8("wd1793", fd1793_t, data_w)) + MCFG_I8257_IN_IOR_0_CB(DEVREAD8("wd1793", fd1793_device, data_r)) + MCFG_I8257_OUT_IOW_0_CB(DEVWRITE8("wd1793", fd1793_device, data_w)) MCFG_I8257_OUT_IOW_2_CB(DEVWRITE8("i8275", i8275_device, dack_w)) MCFG_I8257_REVERSE_RW_MODE(1) @@ -242,5 +242,5 @@ ROM_START( partner ) ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1987, partner, radio86, 0, partner, partner, partner_state,partner, "SAM SKB VM", "Partner-01.01", MACHINE_NOT_WORKING) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1987, partner, radio86, 0, partner, partner, partner_state, partner, "SAM SKB VM", "Partner-01.01", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/pasha2.cpp b/src/mame/drivers/pasha2.cpp index c4bdaeba961..cc5004bb52c 100644 --- a/src/mame/drivers/pasha2.cpp +++ b/src/mame/drivers/pasha2.cpp @@ -412,7 +412,7 @@ void pasha2_state::machine_reset() m_vbuffer = 0; } -static MACHINE_CONFIG_START( pasha2, pasha2_state ) +static MACHINE_CONFIG_START( pasha2 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", E116XT, 20000000*4) /* 4x internal multiplier */ @@ -437,10 +437,10 @@ static MACHINE_CONFIG_START( pasha2, pasha2_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki1", 1000000, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki1", 1000000, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MCFG_OKIM6295_ADD("oki2", 1000000, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki2", 1000000, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) //and ATMEL DREAM SAM9773 diff --git a/src/mame/drivers/paso1600.cpp b/src/mame/drivers/paso1600.cpp index 5d1524b77fa..91a196ab99c 100644 --- a/src/mame/drivers/paso1600.cpp +++ b/src/mame/drivers/paso1600.cpp @@ -296,7 +296,7 @@ WRITE8_MEMBER(paso1600_state::pc_dma_write_byte) space.write_byte(offset, data); } -static MACHINE_CONFIG_START( paso1600, paso1600_state ) +static MACHINE_CONFIG_START( paso1600 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8086, 16000000/2) MCFG_CPU_PROGRAM_MAP(paso1600_map) @@ -343,5 +343,5 @@ ROM_START( paso1600 ) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP ( 198?,paso1600, 0, 0, paso1600, paso1600, driver_device, 0, "Toshiba", "Pasopia 1600" , MACHINE_NOT_WORKING|MACHINE_NO_SOUND) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP ( 198?,paso1600, 0, 0, paso1600, paso1600, paso1600_state, 0, "Toshiba", "Pasopia 1600", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/pasogo.cpp b/src/mame/drivers/pasogo.cpp index 26de7d26cff..f2e5c469ec9 100644 --- a/src/mame/drivers/pasogo.cpp +++ b/src/mame/drivers/pasogo.cpp @@ -108,6 +108,7 @@ TODO: #include "bus/generic/carts.h" #include "machine/bankdev.h" #include "machine/genpc.h" +#include "screen.h" #include "softlist.h" /* @@ -531,7 +532,7 @@ void pasogo_state::machine_reset() contrast(*color->fields().first(), nullptr, 0, color->read()); } -static MACHINE_CONFIG_START( pasogo, pasogo_state ) +static MACHINE_CONFIG_START( pasogo ) MCFG_CPU_ADD("maincpu", V30, XTAL_32_22MHz/2) MCFG_CPU_PROGRAM_MAP(pasogo_mem) @@ -573,5 +574,5 @@ ROM_START( pasogo ) ROM_REGION( 0x10000, "empty", ROMREGION_ERASEFF ) ROM_END -// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS -CONS( 1996, pasogo, 0, 0, pasogo, pasogo, driver_device, 0, "KOEI", "PasoGo", MACHINE_NO_SOUND|MACHINE_NOT_WORKING) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +CONS( 1996, pasogo, 0, 0, pasogo, pasogo, pasogo_state, 0, "KOEI", "PasoGo", MACHINE_NO_SOUND|MACHINE_NOT_WORKING) diff --git a/src/mame/drivers/pasopia.cpp b/src/mame/drivers/pasopia.cpp index 2a15b175685..15fda1c91be 100644 --- a/src/mame/drivers/pasopia.cpp +++ b/src/mame/drivers/pasopia.cpp @@ -277,7 +277,7 @@ We preset all banks here, so that bankswitching will incur no speed penalty. m_pio_timer->adjust(attotime::from_hz(50), 0, attotime::from_hz(50)); } -static MACHINE_CONFIG_START( pasopia, pasopia_state ) +static MACHINE_CONFIG_START( pasopia ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 4000000) MCFG_CPU_PROGRAM_MAP(pasopia_map) @@ -338,5 +338,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1986, pasopia, 0, 0, pasopia, pasopia, pasopia_state, pasopia, "Toshiba", "Pasopia", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1986, pasopia, 0, 0, pasopia, pasopia, pasopia_state, pasopia, "Toshiba", "Pasopia", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/pasopia7.cpp b/src/mame/drivers/pasopia7.cpp index f8b1903b563..edc4671dce5 100644 --- a/src/mame/drivers/pasopia7.cpp +++ b/src/mame/drivers/pasopia7.cpp @@ -908,7 +908,7 @@ static SLOT_INTERFACE_START( pasopia7_floppies ) SLOT_INTERFACE( "525hd", FLOPPY_525_HD ) SLOT_INTERFACE_END -static MACHINE_CONFIG_START( p7_base, pasopia7_state ) +static MACHINE_CONFIG_START( p7_base ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80, XTAL_4MHz) MCFG_CPU_PROGRAM_MAP(pasopia7_mem) @@ -1064,4 +1064,4 @@ DRIVER_INIT_MEMBER(pasopia7_state,p7_lcd) /* Driver */ COMP( 1983, pasopia7, 0, 0, p7_raster, pasopia7, pasopia7_state, p7_raster, "Toshiba", "Pasopia 7 (Raster)", MACHINE_NOT_WORKING ) -COMP( 1983, pasopia7lcd, pasopia7, 0, p7_lcd, pasopia7, pasopia7_state, p7_lcd, "Toshiba", "Pasopia 7 (LCD)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS ) +COMP( 1983, pasopia7lcd, pasopia7, 0, p7_lcd, pasopia7, pasopia7_state, p7_lcd, "Toshiba", "Pasopia 7 (LCD)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS ) diff --git a/src/mame/drivers/pass.cpp b/src/mame/drivers/pass.cpp index a7931dfab4e..5392255da57 100644 --- a/src/mame/drivers/pass.cpp +++ b/src/mame/drivers/pass.cpp @@ -237,7 +237,7 @@ static GFXDECODE_START( pass ) GFXDECODE_END /* todo : is this correct? */ -static MACHINE_CONFIG_START( pass, pass_state ) +static MACHINE_CONFIG_START( pass ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 14318180/2 ) @@ -271,7 +271,7 @@ static MACHINE_CONFIG_START( pass, pass_state ) MCFG_SOUND_ADD("ymsnd", YM2203, 14318180/4) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60) - MCFG_OKIM6295_ADD("oki", 792000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki", 792000, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60) MACHINE_CONFIG_END @@ -299,4 +299,4 @@ ROM_START( pass ) ROM_END -GAME( 1992, pass, 0, pass, pass, driver_device, 0, ROT0, "Oksan", "Pass", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, pass, 0, pass, pass, pass_state, 0, ROT0, "Oksan", "Pass", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/pastelg.cpp b/src/mame/drivers/pastelg.cpp index e493578bef2..ef73d5affa2 100644 --- a/src/mame/drivers/pastelg.cpp +++ b/src/mame/drivers/pastelg.cpp @@ -394,7 +394,7 @@ static INPUT_PORTS_START( galds ) INPUT_PORTS_END -static MACHINE_CONFIG_START( pastelg, pastelg_state ) +static MACHINE_CONFIG_START( pastelg ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 19968000/4) /* unknown divider, galds definitely relies on this for correct voice pitch */ @@ -455,7 +455,7 @@ Note */ -static MACHINE_CONFIG_START( threeds, pastelg_state ) +static MACHINE_CONFIG_START( threeds ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 19968000/4) /* unknown divider, galds definitely relies on this for correct voice pitch */ @@ -562,6 +562,6 @@ ROM_END -GAME( 1985, pastelg, 0, pastelg, pastelg, driver_device, 0, ROT0, "Nichibutsu", "Pastel Gal (Japan 851224)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, threeds, 0, threeds, threeds, driver_device, 0, ROT0, "Nichibutsu", "Three Ds - Three Dealers Casino House", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, galds, threeds, threeds, galds, driver_device, 0, ROT0, "Nihon System Corp.", "Gals Ds - Three Dealers Casino House (bootleg?)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, pastelg, 0, pastelg, pastelg, pastelg_state, 0, ROT0, "Nichibutsu", "Pastel Gal (Japan 851224)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, threeds, 0, threeds, threeds, pastelg_state, 0, ROT0, "Nichibutsu", "Three Ds - Three Dealers Casino House", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, galds, threeds, threeds, galds, pastelg_state, 0, ROT0, "Nihon System Corp.", "Gals Ds - Three Dealers Casino House (bootleg?)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/patapata.cpp b/src/mame/drivers/patapata.cpp index 19d04c9de00..91537c80af8 100644 --- a/src/mame/drivers/patapata.cpp +++ b/src/mame/drivers/patapata.cpp @@ -18,12 +18,14 @@ maybe close to jalmah.cpp? */ #include "emu.h" +#include "machine/nmk112.h" #include "cpu/m68000/m68000.h" #include "sound/okim6295.h" + #include "screen.h" #include "speaker.h" -#include "machine/nmk112.h" + class patapata_state : public driver_device { @@ -277,7 +279,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(patapata_state::scanline) if (param==128) m_maincpu->set_input_line(1, HOLD_LINE); } - static MACHINE_CONFIG_START( patapata, patapata_state ) +static MACHINE_CONFIG_START( patapata ) MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz) // 16 MHz XTAL, 16 MHz CPU MCFG_CPU_PROGRAM_MAP(main_map) @@ -299,10 +301,10 @@ TIMER_DEVICE_CALLBACK_MEMBER(patapata_state::scanline) MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki1", XTAL_16MHz / 4, OKIM6295_PIN7_LOW) // not verified + MCFG_OKIM6295_ADD("oki1", XTAL_16MHz / 4, PIN7_LOW) // not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40) - MCFG_OKIM6295_ADD("oki2", XTAL_16MHz / 4, OKIM6295_PIN7_LOW) // not verified + MCFG_OKIM6295_ADD("oki2", XTAL_16MHz / 4, PIN7_LOW) // not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40) MCFG_DEVICE_ADD("nmk112", NMK112, 0) // or 212? difficult to read (maybe 212 is 2* 112?) @@ -338,4 +340,4 @@ ROM_START( patapata ) ROM_END // cabinet shows Atlus logo, though there's no copyright on the title screen and PCB is NTC / NMK -GAME( 1993, patapata, 0, patapata, patapata, driver_device, 0, ROT0, "Atlus", "Pata Pata Panic", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, patapata, 0, patapata, patapata, patapata_state, 0, ROT0, "Atlus", "Pata Pata Panic", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/patinho_feio.cpp b/src/mame/drivers/patinho_feio.cpp index cd22a4a1853..211fa4f95b0 100644 --- a/src/mame/drivers/patinho_feio.cpp +++ b/src/mame/drivers/patinho_feio.cpp @@ -27,19 +27,9 @@ DRIVER_INIT_MEMBER(patinho_feio_state, patinho_feio) m_prev_RC = 0; } -READ16_MEMBER(patinho_feio_state::rc_r) -{ - return ioport("RC")->read(); -} - -READ16_MEMBER(patinho_feio_state::buttons_r) -{ - return ioport("BUTTONS")->read(); -} - void patinho_feio_state::update_panel(uint8_t ACC, uint8_t opcode, uint8_t mem_data, uint16_t mem_addr, uint16_t PC, uint8_t FLAGS, uint16_t RC, uint8_t mode){ char lamp_id[11]; - const char* button_names[] = { + static char const *const button_names[] = { "NORMAL", "CICLOUNICO", "INSTRUCAOUNICA", @@ -116,7 +106,7 @@ TIMER_CALLBACK_MEMBER(patinho_feio_state::decwriter_callback) m_decwriter_timer->enable(0); //stop the timer } -WRITE8_MEMBER(patinho_feio_state::decwriter_kbd_input) +void patinho_feio_state::decwriter_kbd_input(u8 data) { m_maincpu->transfer_byte_from_external_device(0xA, ~data); } @@ -139,7 +129,7 @@ TIMER_CALLBACK_MEMBER(patinho_feio_state::teletype_callback) m_teletype_timer->enable(0); //stop the timer } -WRITE8_MEMBER(patinho_feio_state::teletype_kbd_input) +void patinho_feio_state::teletype_kbd_input(u8 data) { //I figured out that the data is provided inverted (2's complement) //based on a comment in the source code listing of the HEXAM program. @@ -251,12 +241,12 @@ static INPUT_PORTS_START( patinho_feio ) PORT_BIT(0x800, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("MEMORIA (Liberada/Protegida)") PORT_CODE(KEYCODE_M) PORT_TOGGLE INPUT_PORTS_END -static MACHINE_CONFIG_START( patinho_feio, patinho_feio_state ) +static MACHINE_CONFIG_START( patinho_feio ) /* basic machine hardware */ /* CPU @ approx. 500 kHz (memory cycle time is 2usec) */ MCFG_CPU_ADD("maincpu", PATO_FEIO_CPU, 500000) - MCFG_PATINHO_RC_READ_CB(READ16(patinho_feio_state, rc_r)) - MCFG_PATINHO_BUTTONS_READ_CB(READ16(patinho_feio_state, buttons_r)) + MCFG_PATINHO_RC_READ_CB(IOPORT("RC")) + MCFG_PATINHO_BUTTONS_READ_CB(IOPORT("BUTTONS")) /* Printer */ // MCFG_PATINHO_IODEV_WRITE_CB(0x5, WRITE8(patinho_feio_state, printer_data_w)) @@ -284,11 +274,11 @@ static MACHINE_CONFIG_START( patinho_feio, patinho_feio_state ) /* DECWRITER */ MCFG_DEVICE_ADD("decwriter", TELEPRINTER, 0) - MCFG_GENERIC_TELEPRINTER_KEYBOARD_CB(WRITE8(patinho_feio_state, decwriter_kbd_input)) + MCFG_GENERIC_TELEPRINTER_KEYBOARD_CB(PUT(patinho_feio_state, decwriter_kbd_input)) /* Teletype */ MCFG_DEVICE_ADD("teletype", TELEPRINTER, 1) - MCFG_GENERIC_TELEPRINTER_KEYBOARD_CB(WRITE8(patinho_feio_state, teletype_kbd_input)) + MCFG_GENERIC_TELEPRINTER_KEYBOARD_CB(PUT(patinho_feio_state, teletype_kbd_input)) /* punched tape */ MCFG_GENERIC_CARTSLOT_ADD("cartslot", generic_plain_slot, "patinho_tape") @@ -318,5 +308,5 @@ ROM_START( patinho ) ROM_LOAD( "micro-pre-loader.bin", 0x000, 0x02a, CRC(1921feab) SHA1(bb063102e44e9ab963f95b45710141dc2c5046b0) ) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ -COMP( 1972, patinho, 0, 0, patinho_feio, patinho_feio, patinho_feio_state, patinho_feio, "Escola Politecnica - Universidade de Sao Paulo", "Patinho Feio" , MACHINE_NO_SOUND_HW | MACHINE_NOT_WORKING) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1972, patinho, 0, 0, patinho_feio, patinho_feio, patinho_feio_state, patinho_feio, "Escola Politecnica - Universidade de Sao Paulo", "Patinho Feio" , MACHINE_NO_SOUND_HW | MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/pb1000.cpp b/src/mame/drivers/pb1000.cpp index cd68ade4272..3e60c1a1b0a 100644 --- a/src/mame/drivers/pb1000.cpp +++ b/src/mame/drivers/pb1000.cpp @@ -474,7 +474,7 @@ void pb1000_state::machine_start() m_kb_timer->adjust(attotime::from_hz(192), 0, attotime::from_hz(192)); } -static MACHINE_CONFIG_START( pb1000, pb1000_state ) +static MACHINE_CONFIG_START( pb1000 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", HD61700, 910000) MCFG_CPU_PROGRAM_MAP(pb1000_mem) @@ -568,7 +568,7 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1987, pb1000 , 0, 0, pb1000 , pb1000 , driver_device, 0, "Casio", "PB-1000", MACHINE_NOT_WORKING) -COMP( 1989, pb2000c, 0, 0, pb2000c, pb2000c, driver_device, 0, "Casio", "PB-2000c", MACHINE_NOT_WORKING) -COMP( 1989, ai1000, pb2000c, 0, pb2000c, pb2000c, driver_device, 0, "Casio", "AI-1000", MACHINE_NOT_WORKING) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +COMP( 1987, pb1000, 0, 0, pb1000, pb1000, pb1000_state, 0, "Casio", "PB-1000", MACHINE_NOT_WORKING) +COMP( 1989, pb2000c, 0, 0, pb2000c, pb2000c, pb1000_state, 0, "Casio", "PB-2000c", MACHINE_NOT_WORKING) +COMP( 1989, ai1000, pb2000c, 0, pb2000c, pb2000c, pb1000_state, 0, "Casio", "AI-1000", MACHINE_NOT_WORKING) diff --git a/src/mame/drivers/pbaction.cpp b/src/mame/drivers/pbaction.cpp index e3fe16b9265..a8054c40fc8 100644 --- a/src/mame/drivers/pbaction.cpp +++ b/src/mame/drivers/pbaction.cpp @@ -281,7 +281,7 @@ INTERRUPT_GEN_MEMBER(pbaction_state::vblank_irq) device.execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE); } -static MACHINE_CONFIG_START( pbaction, pbaction_state ) +static MACHINE_CONFIG_START( pbaction ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 4000000) /* 4 MHz? */ @@ -504,8 +504,8 @@ DRIVER_INIT_MEMBER(pbaction_state,pbactio3) -GAME( 1985, pbaction, 0, pbaction, pbaction, driver_device, 0, ROT90, "Tehkan", "Pinball Action (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, pbaction2, pbaction, pbaction, pbaction, driver_device, 0, ROT90, "Tehkan", "Pinball Action (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, pbaction, 0, pbaction, pbaction, pbaction_state, 0, ROT90, "Tehkan", "Pinball Action (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, pbaction2, pbaction, pbaction, pbaction, pbaction_state, 0, ROT90, "Tehkan", "Pinball Action (set 2)", MACHINE_SUPPORTS_SAVE ) GAME( 1985, pbaction3, pbaction, pbactionx, pbaction, pbaction_state, pbactio3, ROT90, "Tehkan", "Pinball Action (set 3, encrypted)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, pbaction4, pbaction, pbactionx, pbaction, driver_device, 0, ROT90, "Tehkan", "Pinball Action (set 4, encrypted)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, pbaction5, pbaction, pbactionx, pbaction, driver_device, 0, ROT90, "Tehkan", "Pinball Action (set 5, encrypted)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, pbaction4, pbaction, pbactionx, pbaction, pbaction_state, 0, ROT90, "Tehkan", "Pinball Action (set 4, encrypted)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, pbaction5, pbaction, pbactionx, pbaction, pbaction_state, 0, ROT90, "Tehkan", "Pinball Action (set 5, encrypted)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/pc.cpp b/src/mame/drivers/pc.cpp index 098a030929f..6945b4e914b 100644 --- a/src/mame/drivers/pc.cpp +++ b/src/mame/drivers/pc.cpp @@ -396,7 +396,7 @@ DEVICE_INPUT_DEFAULTS_END MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("mb:pic8259", pic8259_device, inta_cb) -static MACHINE_CONFIG_START( pccga, pc_state ) +static MACHINE_CONFIG_START( pccga ) /* basic machine hardware */ MCFG_CPU_PC(pc8, pc8, I8088, 4772720) /* 4,77 MHz */ @@ -464,7 +464,7 @@ static DEVICE_INPUT_DEFAULTS_START( iskr3104 ) DEVICE_INPUT_DEFAULTS("DSW0", 0x30, 0x00) DEVICE_INPUT_DEFAULTS_END -static MACHINE_CONFIG_START( iskr3104, pc_state ) +static MACHINE_CONFIG_START( iskr3104 ) /* basic machine hardware */ MCFG_CPU_PC(pc16, pc16, I8086, 4772720) @@ -488,7 +488,7 @@ MACHINE_CONFIG_END //Poisk-2 -static MACHINE_CONFIG_START( poisk2, pc_state ) +static MACHINE_CONFIG_START( poisk2 ) /* basic machine hardware */ MCFG_CPU_PC(pc16, pc16, I8086, 4772720) @@ -517,7 +517,7 @@ MACHINE_CONFIG_END // Zenith SuperSport -static MACHINE_CONFIG_START( zenith, pc_state ) +static MACHINE_CONFIG_START( zenith ) /* basic machine hardware */ MCFG_CPU_PC(zenith, pc8, I8088, XTAL_14_31818MHz/3) /* 4,77 MHz */ @@ -559,7 +559,7 @@ static DEVICE_INPUT_DEFAULTS_START( siemens ) DEVICE_INPUT_DEFAULTS("DSW0", 0x30, 0x30) DEVICE_INPUT_DEFAULTS_END -static MACHINE_CONFIG_START( siemens, pc_state ) +static MACHINE_CONFIG_START( siemens ) /* basic machine hardware */ MCFG_CPU_PC(pc8, pc8, I8088, XTAL_14_31818MHz/3) /* 4,77 MHz */ @@ -584,7 +584,7 @@ MACHINE_CONFIG_END // IBM 5550 -static MACHINE_CONFIG_START( ibm5550, pc_state ) +static MACHINE_CONFIG_START( ibm5550 ) /* basic machine hardware */ MCFG_CPU_PC(pc16, ibm5550, I8086, 8000000) @@ -639,7 +639,7 @@ MACHINE_CONFIG_END //Laser XT/3 -static MACHINE_CONFIG_START( laser_xt3, pc_state ) +static MACHINE_CONFIG_START( laser_xt3 ) MCFG_CPU_PC(pc8, pc8, I8088, XTAL_14_31818MHz/3) /* 4,77 MHz */ MCFG_IBM5160_MOTHERBOARD_ADD("mb","maincpu") @@ -668,7 +668,7 @@ MACHINE_CONFIG_END //Laser Turbo XT -static MACHINE_CONFIG_START( laser_turbo_xt, pc_state ) +static MACHINE_CONFIG_START( laser_turbo_xt ) MCFG_CPU_PC(pc8, pc8, I8088, XTAL_14_31818MHz/3) /* 4,77 MHz */ MCFG_IBM5160_MOTHERBOARD_ADD("mb","maincpu") @@ -888,26 +888,26 @@ ROM_END ***************************************************************************/ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ -COMP( 1984, dgone, ibm5150, 0, dgone, pccga, driver_device, 0, "Data General", "Data General/One" , MACHINE_NOT_WORKING)/* CGA, 2x 3.5" disk drives */ -COMP( 1985, bw230, ibm5150, 0, bondwell, bondwell, pc_state, bondwell, "Bondwell Holding", "BW230 (PRO28 Series)", 0 ) -COMP( 1984, compc1, ibm5150, 0, pccga, pccga, driver_device, 0, "Commodore Business Machines", "Commodore PC-1" , MACHINE_NOT_WORKING) -COMP( 1987, pc10iii, ibm5150, 0, pccga, pccga, driver_device, 0, "Commodore Business Machines", "Commodore PC-10 III" , MACHINE_NOT_WORKING) -COMP( 1992, iskr3104, ibm5150, 0, iskr3104, pccga, driver_device, 0, "Schetmash", "Iskra 3104", MACHINE_NOT_WORKING) -COMP( 1989, mk88, ibm5150, 0, mk88, pccga, driver_device, 0, "", "MK-88", MACHINE_NOT_WORKING) -COMP( 1991, poisk2, ibm5150, 0, poisk2, pccga, driver_device, 0, "", "Poisk-2", MACHINE_NOT_WORKING) -COMP( 1990, mc1702, ibm5150, 0, pccga, pccga, driver_device, 0, "", "Elektronika MC-1702", MACHINE_NOT_WORKING) -COMP( 1987, zdsupers, ibm5150, 0, zenith, pccga, driver_device, 0, "Zenith Data Systems", "SuperSport", 0) -COMP( 1985, sicpc1605, ibm5150, 0, siemens, pccga, driver_device, 0, "Siemens", "Sicomp PC16-05", MACHINE_NOT_WORKING) -COMP( 1985, ncrpc4i, ibm5150, 0, ncrpc4i, pccga, driver_device, 0, "NCR", "PC4i", MACHINE_NOT_WORKING) -COMP( 198?, olivm15, ibm5150, 0, m15, pccga, driver_device, 0, "Olivetti", "M15", 0) -COMP( 1983, ibm5550, ibm5150, 0, ibm5550, pccga, driver_device, 0, "International Business Machines", "IBM 5550", MACHINE_NOT_WORKING) -COMP( 1985, pc7000, ibm5150, 0, pccga, pccga, driver_device, 0, "Sharp", "PC-7000", MACHINE_NOT_WORKING) -COMP( 1988, sx16, ibm5150, 0, pccga, pccga, driver_device, 0, "Sanyo", "SX-16", MACHINE_NOT_WORKING) -COMP( 198?, mbc16, ibm5150, 0, pccga, pccga, driver_device, 0, "Sanyo", "MBC-16" , MACHINE_NOT_WORKING) -COMP( 1987, ataripc1, ibm5150, 0, ataripc1, pccga, driver_device, 0, "Atari", "PC1" , 0) -COMP( 1988, ataripc3, ibm5150, 0, pccga, pccga, driver_device, 0, "Atari", "PC3" , 0) -COMP( 1989, ssam88s, ibm5150, 0, pccga, pccga, driver_device, 0, "Samsung", "Samtron 88S" , MACHINE_NOT_WORKING) -COMP( 1983, eagle1600, ibm5150, 0, eagle1600, pccga, driver_device, 0, "Eagle", "1600" , MACHINE_NOT_WORKING) -COMP( 1988, laser_turbo_xt, ibm5150, 0, laser_turbo_xt, 0, driver_device, 0, "VTech", "Laser Turbo XT" , 0) -COMP( 1989, laser_xt3, ibm5150, 0, laser_xt3, 0, driver_device, 0, "VTech", "Laser XT/3" , 0) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1984, dgone, ibm5150, 0, dgone, pccga, pc_state, 0, "Data General", "Data General/One" , MACHINE_NOT_WORKING ) // CGA, 2x 3.5" disk drives +COMP( 1985, bw230, ibm5150, 0, bondwell, bondwell, pc_state, bondwell, "Bondwell Holding", "BW230 (PRO28 Series)", 0 ) +COMP( 1984, compc1, ibm5150, 0, pccga, pccga, pc_state, 0, "Commodore Business Machines", "Commodore PC-1" , MACHINE_NOT_WORKING ) +COMP( 1987, pc10iii, ibm5150, 0, pccga, pccga, pc_state, 0, "Commodore Business Machines", "Commodore PC-10 III", MACHINE_NOT_WORKING ) +COMP( 1992, iskr3104, ibm5150, 0, iskr3104, pccga, pc_state, 0, "Schetmash", "Iskra 3104", MACHINE_NOT_WORKING ) +COMP( 1989, mk88, ibm5150, 0, mk88, pccga, pc_state, 0, "", "MK-88", MACHINE_NOT_WORKING ) +COMP( 1991, poisk2, ibm5150, 0, poisk2, pccga, pc_state, 0, "", "Poisk-2", MACHINE_NOT_WORKING ) +COMP( 1990, mc1702, ibm5150, 0, pccga, pccga, pc_state, 0, "", "Elektronika MC-1702", MACHINE_NOT_WORKING ) +COMP( 1987, zdsupers, ibm5150, 0, zenith, pccga, pc_state, 0, "Zenith Data Systems", "SuperSport", 0 ) +COMP( 1985, sicpc1605, ibm5150, 0, siemens, pccga, pc_state, 0, "Siemens", "Sicomp PC16-05", MACHINE_NOT_WORKING ) +COMP( 1985, ncrpc4i, ibm5150, 0, ncrpc4i, pccga, pc_state, 0, "NCR", "PC4i", MACHINE_NOT_WORKING ) +COMP( 198?, olivm15, ibm5150, 0, m15, pccga, pc_state, 0, "Olivetti", "M15", 0 ) +COMP( 1983, ibm5550, ibm5150, 0, ibm5550, pccga, pc_state, 0, "International Business Machines", "IBM 5550", MACHINE_NOT_WORKING ) +COMP( 1985, pc7000, ibm5150, 0, pccga, pccga, pc_state, 0, "Sharp", "PC-7000", MACHINE_NOT_WORKING ) +COMP( 1988, sx16, ibm5150, 0, pccga, pccga, pc_state, 0, "Sanyo", "SX-16", MACHINE_NOT_WORKING ) +COMP( 198?, mbc16, ibm5150, 0, pccga, pccga, pc_state, 0, "Sanyo", "MBC-16", MACHINE_NOT_WORKING ) +COMP( 1987, ataripc1, ibm5150, 0, ataripc1, pccga, pc_state, 0, "Atari", "PC1" , 0 ) +COMP( 1988, ataripc3, ibm5150, 0, pccga, pccga, pc_state, 0, "Atari", "PC3" , 0 ) +COMP( 1989, ssam88s, ibm5150, 0, pccga, pccga, pc_state, 0, "Samsung", "Samtron 88S" , MACHINE_NOT_WORKING ) +COMP( 1983, eagle1600, ibm5150, 0, eagle1600, pccga, pc_state, 0, "Eagle", "1600" , MACHINE_NOT_WORKING ) +COMP( 1988, laser_turbo_xt, ibm5150, 0, laser_turbo_xt, 0, pc_state, 0, "VTech", "Laser Turbo XT", 0 ) +COMP( 1989, laser_xt3, ibm5150, 0, laser_xt3, 0, pc_state, 0, "VTech", "Laser XT/3", 0 ) diff --git a/src/mame/drivers/pc100.cpp b/src/mame/drivers/pc100.cpp index c31e5a30128..a60f9ead634 100644 --- a/src/mame/drivers/pc100.cpp +++ b/src/mame/drivers/pc100.cpp @@ -490,7 +490,7 @@ SLOT_INTERFACE_END #define MASTER_CLOCK 6988800 -static MACHINE_CONFIG_START( pc100, pc100_state ) +static MACHINE_CONFIG_START( pc100 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8086, MASTER_CLOCK) MCFG_CPU_PROGRAM_MAP(pc100_map) @@ -564,5 +564,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 198?, pc100, 0, 0, pc100, pc100, driver_device, 0, "NEC", "PC-100", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 198?, pc100, 0, 0, pc100, pc100, pc100_state, 0, "NEC", "PC-100", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) diff --git a/src/mame/drivers/pc1500.cpp b/src/mame/drivers/pc1500.cpp index c359696f279..1620a6a84e8 100644 --- a/src/mame/drivers/pc1500.cpp +++ b/src/mame/drivers/pc1500.cpp @@ -262,7 +262,7 @@ PALETTE_INIT_MEMBER(pc1500_state, pc1500) palette.set_pen_color(1, rgb_t(92, 83, 88)); } -static MACHINE_CONFIG_START( pc1500, pc1500_state ) +static MACHINE_CONFIG_START( pc1500 ) MCFG_CPU_ADD("maincpu", LH5801, 1300000) //1.3 MHz MCFG_CPU_PROGRAM_MAP( pc1500_mem ) MCFG_CPU_IO_MAP( pc1500_mem_io ) @@ -298,5 +298,5 @@ ROM_START( pc1500 ) ROM_LOAD( "ce-150.rom", 0x0000, 0x2000, CRC(8fa1df6d) SHA1(a3aa02a641a46c27c0d4c0dc025b0dbe9b5b79c8)) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ -COMP( 198?, pc1500, 0, 0, pc1500, pc1500, driver_device, 0, "Sharp", "Pocket Computer 1500", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 198?, pc1500, 0, 0, pc1500, pc1500, pc1500_state, 0, "Sharp", "Pocket Computer 1500", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/pc1512.cpp b/src/mame/drivers/pc1512.cpp index aad7d0d066c..6e9ac05eb9b 100644 --- a/src/mame/drivers/pc1512.cpp +++ b/src/mame/drivers/pc1512.cpp @@ -1181,7 +1181,7 @@ void pc1640_state::machine_reset() // MACHINE_CONFIG( pc1512 ) //------------------------------------------------- -static MACHINE_CONFIG_START( pc1512, pc1512_state ) +static MACHINE_CONFIG_START( pc1512 ) MCFG_CPU_ADD(I8086_TAG, I8086, XTAL_24MHz/3) MCFG_CPU_PROGRAM_MAP(pc1512_mem) MCFG_CPU_IO_MAP(pc1512_io) @@ -1203,8 +1203,8 @@ static MACHINE_CONFIG_START( pc1512, pc1512_state ) MCFG_PC1512_MOUSE_PORT_ADD(PC1512_MOUSE_PORT_TAG, pc1512_mouse_port_devices, "mouse") MCFG_PC1512_MOUSE_PORT_X_CB(WRITE8(pc1512_state, mouse_x_w)) MCFG_PC1512_MOUSE_PORT_Y_CB(WRITE8(pc1512_state, mouse_y_w)) - MCFG_PC1512_MOUSE_PORT_M1_CB(DEVWRITELINE(PC1512_KEYBOARD_TAG, pc1512_keyboard_t, m1_w)) - MCFG_PC1512_MOUSE_PORT_M2_CB(DEVWRITELINE(PC1512_KEYBOARD_TAG, pc1512_keyboard_t, m2_w)) + MCFG_PC1512_MOUSE_PORT_M1_CB(DEVWRITELINE(PC1512_KEYBOARD_TAG, pc1512_keyboard_device, m1_w)) + MCFG_PC1512_MOUSE_PORT_M2_CB(DEVWRITELINE(PC1512_KEYBOARD_TAG, pc1512_keyboard_device, m2_w)) MCFG_DEVICE_ADD(I8237A5_TAG, AM9517A, XTAL_24MHz/6) MCFG_I8237_OUT_HREQ_CB(WRITELINE(pc1512_state, hrq_w)) @@ -1314,7 +1314,7 @@ MACHINE_CONFIG_END // MACHINE_CONFIG( pc1640 ) //------------------------------------------------- -static MACHINE_CONFIG_START( pc1640, pc1640_state ) +static MACHINE_CONFIG_START( pc1640 ) MCFG_CPU_ADD(I8086_TAG, I8086, XTAL_24MHz/3) MCFG_CPU_PROGRAM_MAP(pc1640_mem) MCFG_CPU_IO_MAP(pc1640_io) @@ -1333,8 +1333,8 @@ static MACHINE_CONFIG_START( pc1640, pc1640_state ) MCFG_PC1512_MOUSE_PORT_ADD(PC1512_MOUSE_PORT_TAG, pc1512_mouse_port_devices, "mouse") MCFG_PC1512_MOUSE_PORT_X_CB(WRITE8(pc1512_state, mouse_x_w)) MCFG_PC1512_MOUSE_PORT_Y_CB(WRITE8(pc1512_state, mouse_y_w)) - MCFG_PC1512_MOUSE_PORT_M1_CB(DEVWRITELINE(PC1512_KEYBOARD_TAG, pc1512_keyboard_t, m1_w)) - MCFG_PC1512_MOUSE_PORT_M2_CB(DEVWRITELINE(PC1512_KEYBOARD_TAG, pc1512_keyboard_t, m2_w)) + MCFG_PC1512_MOUSE_PORT_M1_CB(DEVWRITELINE(PC1512_KEYBOARD_TAG, pc1512_keyboard_device, m1_w)) + MCFG_PC1512_MOUSE_PORT_M2_CB(DEVWRITELINE(PC1512_KEYBOARD_TAG, pc1512_keyboard_device, m2_w)) MCFG_DEVICE_ADD(I8237A5_TAG, AM9517A, XTAL_24MHz/6) MCFG_I8237_OUT_HREQ_CB(WRITELINE(pc1512_state, hrq_w)) @@ -1500,12 +1500,12 @@ ROM_END // SYSTEM DRIVERS //************************************************************************** -// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS -COMP( 1986, pc1512, 0, 0, pc1512, pc1512, driver_device, 0, "Amstrad plc", "PC1512 SD", MACHINE_SUPPORTS_SAVE ) -COMP( 1986, pc1512dd, pc1512, 0, pc1512dd, pc1512, driver_device, 0, "Amstrad plc", "PC1512 DD", MACHINE_SUPPORTS_SAVE ) -COMP( 1986, pc1512hd10, pc1512, 0, pc1512hd, pc1512, driver_device, 0, "Amstrad plc", "PC1512 HD10", MACHINE_SUPPORTS_SAVE ) -COMP( 1986, pc1512hd20, pc1512, 0, pc1512hd, pc1512, driver_device, 0, "Amstrad plc", "PC1512 HD20", MACHINE_SUPPORTS_SAVE ) -COMP( 1987, pc1640, 0, 0, pc1640, pc1640, driver_device, 0, "Amstrad plc", "PC1640 SD", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -COMP( 1987, pc1640dd, pc1640, 0, pc1640dd, pc1640, driver_device, 0, "Amstrad plc", "PC1640 DD", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -COMP( 1987, pc1640hd20, pc1640, 0, pc1640hd, pc1640, driver_device, 0, "Amstrad plc", "PC1640 HD20", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -COMP( 1987, pc1640hd30, pc1640, 0, pc1640hd, pc1640, driver_device, 0, "Amstrad plc", "PC1640 HD30", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1986, pc1512, 0, 0, pc1512, pc1512, pc1512_state, 0, "Amstrad plc", "PC1512 SD", MACHINE_SUPPORTS_SAVE ) +COMP( 1986, pc1512dd, pc1512, 0, pc1512dd, pc1512, pc1512_state, 0, "Amstrad plc", "PC1512 DD", MACHINE_SUPPORTS_SAVE ) +COMP( 1986, pc1512hd10, pc1512, 0, pc1512hd, pc1512, pc1512_state, 0, "Amstrad plc", "PC1512 HD10", MACHINE_SUPPORTS_SAVE ) +COMP( 1986, pc1512hd20, pc1512, 0, pc1512hd, pc1512, pc1512_state, 0, "Amstrad plc", "PC1512 HD20", MACHINE_SUPPORTS_SAVE ) +COMP( 1987, pc1640, 0, 0, pc1640, pc1640, pc1640_state, 0, "Amstrad plc", "PC1640 SD", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +COMP( 1987, pc1640dd, pc1640, 0, pc1640dd, pc1640, pc1640_state, 0, "Amstrad plc", "PC1640 DD", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +COMP( 1987, pc1640hd20, pc1640, 0, pc1640hd, pc1640, pc1640_state, 0, "Amstrad plc", "PC1640 HD20", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +COMP( 1987, pc1640hd30, pc1640, 0, pc1640hd, pc1640, pc1640_state, 0, "Amstrad plc", "PC1640 HD30", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/pc2000.cpp b/src/mame/drivers/pc2000.cpp index 85d433e195a..82c8d85f16e 100644 --- a/src/mame/drivers/pc2000.cpp +++ b/src/mame/drivers/pc2000.cpp @@ -829,7 +829,7 @@ DEVICE_IMAGE_LOAD_MEMBER( pc2000_state, pc2000_cart ) return image_init_result::PASS; } -static MACHINE_CONFIG_START( pc2000, pc2000_state ) +static MACHINE_CONFIG_START( pc2000 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80, XTAL_4MHz) /* probably not accurate */ MCFG_CPU_PROGRAM_MAP(pc2000_mem) @@ -886,7 +886,7 @@ HD44780_PIXEL_UPDATE(gl4004_state::gl4000_pixel_update) } } -static MACHINE_CONFIG_DERIVED_CLASS( gl3000s, pc2000, gl3000s_state ) +static MACHINE_CONFIG_DERIVED( gl3000s, pc2000 ) MCFG_CPU_MODIFY("maincpu") MCFG_CPU_IO_MAP(gl3000s_io) @@ -907,7 +907,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( gl3000s, pc2000, gl3000s_state ) MCFG_SOFTWARE_LIST_COMPATIBLE_ADD("misterx_cart", "misterx") MACHINE_CONFIG_END -static MACHINE_CONFIG_DERIVED_CLASS( gl4000, pc2000, gl4004_state ) +static MACHINE_CONFIG_DERIVED( gl4000, pc2000 ) MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_SIZE(120, 36) // 4x20 chars MCFG_SCREEN_VISIBLE_AREA(0, 120-1, 0, 36-1) @@ -920,7 +920,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( gl4000, pc2000, gl4004_state ) MCFG_SOFTWARE_LIST_COMPATIBLE_ADD("misterx_cart", "misterx") MACHINE_CONFIG_END -static MACHINE_CONFIG_DERIVED_CLASS( misterx, pc2000, pc1000_state ) +static MACHINE_CONFIG_DERIVED( misterx, pc2000 ) /* basic machine hardware */ MCFG_CPU_MODIFY("maincpu") MCFG_CPU_PROGRAM_MAP(pc1000_mem) @@ -1036,21 +1036,21 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1988, pc1000, 0, 0, pc1000, pc1000, driver_device, 0, "Video Technology", "PreComputer 1000", MACHINE_NOT_WORKING) -COMP( 1988, misterx, 0, 0, misterx, pc1000, driver_device, 0, "Video Technology / Yeno", "MisterX", MACHINE_NOT_WORKING) -COMP( 1988, ordisava, 0, 0, pc1000, pc1000, driver_device, 0, "Video Technology", "Ordisavant (France)", MACHINE_NOT_WORKING) -COMP( 1993, pc2000, 0, 0, pc2000, pc2000, driver_device, 0, "Video Technology", "PreComputer 2000", MACHINE_NOT_WORKING) -COMP( 1993, gl2000, 0, 0, gl2000, pc2000, driver_device, 0, "Video Technology", "Genius Leader 2000", MACHINE_NOT_WORKING) -COMP( 1994, gl2000c, gl2000, 0, gl2000, pc2000, driver_device, 0, "Video Technology", "Genius Leader 2000 Compact", MACHINE_NOT_WORKING) -COMP( 1995, gl2000p, gl2000, 0, gl2000, pc2000, driver_device, 0, "Video Technology", "Genius Leader 2000 Plus", MACHINE_NOT_WORKING) -COMP( 1996, gl3000s, 0, 0, gl3000s, gl3000s,driver_device, 0, "Video Technology", "Genius Leader 3000S (Germany)", MACHINE_NOT_WORKING) -COMP( 1994, gl4000, 0, 0, gl4000, pc2000, driver_device, 0, "Video Technology", "Genius Leader 4000 Quadro (Germany)", MACHINE_NOT_WORKING) -COMP( 1996, gl4004, 0, 0, gl4000, pc2000, driver_device, 0, "Video Technology", "Genius Leader 4004 Quadro L (Germany)", MACHINE_NOT_WORKING) -COMP( 1997, gl5000, 0, 0, pc2000, pc2000, driver_device, 0, "Video Technology", "Genius Leader 5000 (Germany)", MACHINE_IS_SKELETON) -COMP( 1997, gl5005x, 0, 0, pc2000, pc2000, driver_device, 0, "Video Technology", "Genius Leader 5005X (Germany)", MACHINE_IS_SKELETON) -COMP( 1997, glpn, 0, 0, gl4000, pc2000, driver_device, 0, "Video Technology", "Genius Leader Power Notebook (Germany)", MACHINE_IS_SKELETON) -COMP( 1998, gmtt , 0, 0, gl4000, pc2000, driver_device, 0, "Video Technology", "Genius Master Table Top (Germany)", MACHINE_IS_SKELETON) -COMP( 2001, gbs5505x, 0, 0, pc2000, pc2000, driver_device, 0, "Video Technology", "Genius BrainStation 5505X (Germany)", MACHINE_IS_SKELETON) -COMP( 1993, gln, 0, 0, pc2000, pc2000, driver_device, 0, "Video Technology", "Genius Leader Notebook", MACHINE_IS_SKELETON) -COMP( 1999, lexipcm, 0, 0, pc2000, pc2000, driver_device, 0, "Lexibook", "LexiPC Mega 2000 (Germany)", MACHINE_IS_SKELETON) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 1988, pc1000, 0, 0, pc1000, pc1000, pc1000_state, 0, "Video Technology", "PreComputer 1000", MACHINE_NOT_WORKING ) +COMP( 1988, misterx, 0, 0, misterx, pc1000, pc1000_state, 0, "Video Technology / Yeno", "MisterX", MACHINE_NOT_WORKING ) +COMP( 1988, ordisava, 0, 0, pc1000, pc1000, pc1000_state, 0, "Video Technology", "Ordisavant (France)", MACHINE_NOT_WORKING ) +COMP( 1993, pc2000, 0, 0, pc2000, pc2000, pc2000_state, 0, "Video Technology", "PreComputer 2000", MACHINE_NOT_WORKING ) +COMP( 1993, gl2000, 0, 0, gl2000, pc2000, pc2000_state, 0, "Video Technology", "Genius Leader 2000", MACHINE_NOT_WORKING ) +COMP( 1994, gl2000c, gl2000, 0, gl2000, pc2000, pc2000_state, 0, "Video Technology", "Genius Leader 2000 Compact", MACHINE_NOT_WORKING ) +COMP( 1995, gl2000p, gl2000, 0, gl2000, pc2000, pc2000_state, 0, "Video Technology", "Genius Leader 2000 Plus", MACHINE_NOT_WORKING ) +COMP( 1996, gl3000s, 0, 0, gl3000s, gl3000s, gl3000s_state, 0, "Video Technology", "Genius Leader 3000S (Germany)", MACHINE_NOT_WORKING ) +COMP( 1994, gl4000, 0, 0, gl4000, pc2000, gl4004_state, 0, "Video Technology", "Genius Leader 4000 Quadro (Germany)", MACHINE_NOT_WORKING ) +COMP( 1996, gl4004, 0, 0, gl4000, pc2000, gl4004_state, 0, "Video Technology", "Genius Leader 4004 Quadro L (Germany)", MACHINE_NOT_WORKING ) +COMP( 1997, gl5000, 0, 0, pc2000, pc2000, pc2000_state, 0, "Video Technology", "Genius Leader 5000 (Germany)", MACHINE_IS_SKELETON ) +COMP( 1997, gl5005x, 0, 0, pc2000, pc2000, pc2000_state, 0, "Video Technology", "Genius Leader 5005X (Germany)", MACHINE_IS_SKELETON ) +COMP( 1997, glpn, 0, 0, gl4000, pc2000, gl4004_state, 0, "Video Technology", "Genius Leader Power Notebook (Germany)", MACHINE_IS_SKELETON ) +COMP( 1998, gmtt , 0, 0, gl4000, pc2000, gl4004_state, 0, "Video Technology", "Genius Master Table Top (Germany)", MACHINE_IS_SKELETON ) +COMP( 2001, gbs5505x, 0, 0, pc2000, pc2000, pc2000_state, 0, "Video Technology", "Genius BrainStation 5505X (Germany)", MACHINE_IS_SKELETON ) +COMP( 1993, gln, 0, 0, pc2000, pc2000, pc2000_state, 0, "Video Technology", "Genius Leader Notebook", MACHINE_IS_SKELETON ) +COMP( 1999, lexipcm, 0, 0, pc2000, pc2000, pc2000_state, 0, "Lexibook", "LexiPC Mega 2000 (Germany)", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/pc4.cpp b/src/mame/drivers/pc4.cpp index 1aa193eb344..fdbc5588278 100644 --- a/src/mame/drivers/pc4.cpp +++ b/src/mame/drivers/pc4.cpp @@ -216,7 +216,7 @@ void pc4_state::machine_start() m_blink = 0; } -static MACHINE_CONFIG_START( pc4, pc4_state ) +static MACHINE_CONFIG_START( pc4 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_4MHz) MCFG_CPU_PROGRAM_MAP(pc4_mem) @@ -250,5 +250,5 @@ ROM_START( pc4 ) ROM_LOAD( "44780a00.bin", 0x0000, 0x0860, BAD_DUMP CRC(3a89024c) SHA1(5a87b68422a916d1b37b5be1f7ad0b3fb3af5a8d)) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1990, pc4, 0, 0, pc4, pc4, driver_device, 0, "Laser Computer", "Laser PC4", MACHINE_NOT_WORKING ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1990, pc4, 0, 0, pc4, pc4, pc4_state, 0, "Laser Computer", "Laser PC4", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/pc6001.cpp b/src/mame/drivers/pc6001.cpp index 9fd2c50a98f..0471b58f8e5 100644 --- a/src/mame/drivers/pc6001.cpp +++ b/src/mame/drivers/pc6001.cpp @@ -2270,7 +2270,7 @@ GFXDECODE_END #define PC6001_MAIN_CLOCK 7987200 -static MACHINE_CONFIG_START( pc6001, pc6001_state ) +static MACHINE_CONFIG_START( pc6001 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80, PC6001_MAIN_CLOCK / 2) // ~4 Mhz MCFG_CPU_PROGRAM_MAP(pc6001_map) @@ -2464,9 +2464,9 @@ ROM_START( pc6001sr ) ROM_COPY( "maincpu", 0x28000, 0x00000, 0x8000 ) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1981, pc6001, 0, 0, pc6001, pc6001, driver_device, 0, "NEC", "PC-6001 (Japan)", MACHINE_NOT_WORKING ) -COMP( 1981, pc6001a, pc6001, 0, pc6001, pc6001, driver_device, 0, "NEC", "PC-6001A (US)", MACHINE_NOT_WORKING ) // This version is also known as the NEC Trek -COMP( 1983, pc6001mk2,pc6001, 0, pc6001m2, pc6001, driver_device, 0, "NEC", "PC-6001mkII (Japan)", MACHINE_NOT_WORKING ) -COMP( 1983, pc6601, pc6001, 0, pc6601, pc6001, driver_device, 0, "NEC", "PC-6601 (Japan)", MACHINE_NOT_WORKING ) -COMP( 1984, pc6001sr, pc6001, 0, pc6001sr, pc6001, driver_device, 0, "NEC", "PC-6001mkIISR (Japan)", MACHINE_NOT_WORKING ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1981, pc6001, 0, 0, pc6001, pc6001, pc6001_state, 0, "NEC", "PC-6001 (Japan)", MACHINE_NOT_WORKING ) +COMP( 1981, pc6001a, pc6001, 0, pc6001, pc6001, pc6001_state, 0, "NEC", "PC-6001A (US)", MACHINE_NOT_WORKING ) // This version is also known as the NEC Trek +COMP( 1983, pc6001mk2,pc6001, 0, pc6001m2, pc6001, pc6001_state, 0, "NEC", "PC-6001mkII (Japan)", MACHINE_NOT_WORKING ) +COMP( 1983, pc6601, pc6001, 0, pc6601, pc6001, pc6001_state, 0, "NEC", "PC-6601 (Japan)", MACHINE_NOT_WORKING ) +COMP( 1984, pc6001sr, pc6001, 0, pc6001sr, pc6001, pc6001_state, 0, "NEC", "PC-6001mkIISR (Japan)", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/pc8001.cpp b/src/mame/drivers/pc8001.cpp index eba3531fb75..dc3e7ffdd65 100644 --- a/src/mame/drivers/pc8001.cpp +++ b/src/mame/drivers/pc8001.cpp @@ -476,7 +476,7 @@ void pc8001_state::machine_start() /* Machine Drivers */ -static MACHINE_CONFIG_START( pc8001, pc8001_state ) +static MACHINE_CONFIG_START( pc8001 ) /* basic machine hardware */ MCFG_CPU_ADD(Z80_TAG, Z80, XTAL_4MHz) MCFG_CPU_PROGRAM_MAP(pc8001_mem) @@ -526,7 +526,7 @@ static MACHINE_CONFIG_START( pc8001, pc8001_state ) MCFG_RAM_EXTRA_OPTIONS("32K,64K") MACHINE_CONFIG_END -static MACHINE_CONFIG_START( pc8001mk2, pc8001mk2_state ) +static MACHINE_CONFIG_START( pc8001mk2 ) /* basic machine hardware */ MCFG_CPU_ADD(Z80_TAG, Z80, XTAL_4MHz) MCFG_CPU_PROGRAM_MAP(pc8001mk2_mem) @@ -601,6 +601,6 @@ ROM_END /* System Drivers */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1979, pc8001, 0, 0, pc8001, pc8001, driver_device, 0, "NEC", "PC-8001", MACHINE_NOT_WORKING ) -COMP( 1983, pc8001mk2, pc8001, 0, pc8001mk2, pc8001, driver_device, 0, "NEC", "PC-8001mkII", MACHINE_NOT_WORKING ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1979, pc8001, 0, 0, pc8001, pc8001, pc8001_state, 0, "NEC", "PC-8001", MACHINE_NOT_WORKING ) +COMP( 1983, pc8001mk2, pc8001, 0, pc8001mk2, pc8001, pc8001mk2_state, 0, "NEC", "PC-8001mkII", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/pc8401a.cpp b/src/mame/drivers/pc8401a.cpp index e14aa8b7c26..08a6558e6cd 100644 --- a/src/mame/drivers/pc8401a.cpp +++ b/src/mame/drivers/pc8401a.cpp @@ -568,7 +568,7 @@ WRITE8_MEMBER( pc8401a_state::ppi_pc_w ) /* Machine Drivers */ -static MACHINE_CONFIG_START( pc8401a, pc8401a_state ) +static MACHINE_CONFIG_START( pc8401a ) /* basic machine hardware */ MCFG_CPU_ADD(Z80_TAG, Z80, 4000000) // NEC uPD70008C MCFG_CPU_PROGRAM_MAP(pc8401a_mem) @@ -610,7 +610,7 @@ static MACHINE_CONFIG_START( pc8401a, pc8401a_state ) MCFG_RAM_EXTRA_OPTIONS("96K") MACHINE_CONFIG_END -static MACHINE_CONFIG_START( pc8500, pc8500_state ) +static MACHINE_CONFIG_START( pc8500 ) /* basic machine hardware */ MCFG_CPU_ADD(Z80_TAG, Z80, 4000000) // NEC uPD70008C MCFG_CPU_PROGRAM_MAP(pc8401a_mem) @@ -673,6 +673,6 @@ ROM_END /* System Drivers */ /* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ -COMP( 1984, pc8401a, 0, 0, pc8401a, pc8401a, driver_device, 0, "NEC", "PC-8401A-LS", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -//COMP( 1984, pc8401bd, pc8401a,0, pc8401a, pc8401a, driver_device, 0, "NEC", "PC-8401BD", MACHINE_NOT_WORKING) -COMP( 1985, pc8500, 0, 0, pc8500, pc8401a, driver_device, 0, "NEC", "PC-8500", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +COMP( 1984, pc8401a, 0, 0, pc8401a, pc8401a, pc8401a_state, 0, "NEC", "PC-8401A-LS", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +//COMP( 1984, pc8401bd, pc8401a,0, pc8401a, pc8401a, pc8401a_state, 0, "NEC", "PC-8401BD", MACHINE_NOT_WORKING) +COMP( 1985, pc8500, 0, 0, pc8500, pc8401a, pc8500_state, 0, "NEC", "PC-8500", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) diff --git a/src/mame/drivers/pc8801.cpp b/src/mame/drivers/pc8801.cpp index e349c9af39e..990fa861155 100644 --- a/src/mame/drivers/pc8801.cpp +++ b/src/mame/drivers/pc8801.cpp @@ -2565,7 +2565,7 @@ WRITE_LINE_MEMBER( pc8801_state::rxrdy_w ) // ... } -static MACHINE_CONFIG_START( pc8801, pc8801_state ) +static MACHINE_CONFIG_START( pc8801 ) /* main CPU */ MCFG_CPU_ADD("maincpu", Z80, MASTER_CLOCK) /* 4 MHz */ MCFG_CPU_PROGRAM_MAP(pc8801_mem) @@ -2946,21 +2946,21 @@ ROM_END /* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ -COMP( 1981, pc8801, 0, 0, pc8801, pc88sr, driver_device, 0, "NEC", "PC-8801", MACHINE_NOT_WORKING ) -COMP( 1983, pc8801mk2, pc8801, 0, pc8801, pc88sr, driver_device, 0, "NEC", "PC-8801mkII", MACHINE_NOT_WORKING ) -COMP( 1985, pc8801mk2sr, pc8801, 0, pc8801, pc88sr, driver_device, 0, "NEC", "PC-8801mkIISR", MACHINE_NOT_WORKING ) -//COMP( 1985, pc8801mk2tr, pc8801, 0, pc8801, pc88sr, driver_device, 0, "NEC", "PC-8801mkIITR", MACHINE_NOT_WORKING ) -COMP( 1985, pc8801mk2fr, pc8801, 0, pc8801, pc88sr, driver_device, 0, "NEC", "PC-8801mkIIFR", MACHINE_NOT_WORKING ) -COMP( 1985, pc8801mk2mr, pc8801, 0, pc8801, pc88sr, driver_device, 0, "NEC", "PC-8801mkIIMR", MACHINE_NOT_WORKING ) - -//COMP( 1986, pc8801fh, 0, 0, pc8801, pc88sr, driver_device, 0, "NEC", "PC-8801FH", MACHINE_NOT_WORKING ) -COMP( 1986, pc8801mh, pc8801, 0, pc8801fh, pc88sr, driver_device, 0, "NEC", "PC-8801MH", MACHINE_NOT_WORKING ) -COMP( 1987, pc8801fa, pc8801, 0, pc8801fh, pc88sr, driver_device, 0, "NEC", "PC-8801FA", MACHINE_NOT_WORKING ) -COMP( 1987, pc8801ma, pc8801, 0, pc8801ma, pc88sr, driver_device, 0, "NEC", "PC-8801MA", MACHINE_NOT_WORKING ) -//COMP( 1988, pc8801fe, pc8801, 0, pc8801, pc88sr, driver_device, 0, "NEC", "PC-8801FE", MACHINE_NOT_WORKING ) -COMP( 1988, pc8801ma2, pc8801, 0, pc8801ma, pc88sr, driver_device, 0, "NEC", "PC-8801MA2", MACHINE_NOT_WORKING ) -//COMP( 1989, pc8801fe2, pc8801, 0, pc8801, pc88sr, driver_device, 0, "NEC", "PC-8801FE2", MACHINE_NOT_WORKING ) -COMP( 1989, pc8801mc, pc8801, 0, pc8801mc, pc88sr, driver_device, 0, "NEC", "PC-8801MC", MACHINE_NOT_WORKING ) - -//COMP( 1989, pc98do, 0, 0, pc88va, pc88sr, driver_device, 0, "NEC", "PC-98DO", MACHINE_NOT_WORKING ) -//COMP( 1990, pc98dop, 0, 0, pc88va, pc88sr, driver_device, 0, "NEC", "PC-98DO+", MACHINE_NOT_WORKING ) +COMP( 1981, pc8801, 0, 0, pc8801, pc88sr, pc8801_state, 0, "NEC", "PC-8801", MACHINE_NOT_WORKING ) +COMP( 1983, pc8801mk2, pc8801, 0, pc8801, pc88sr, pc8801_state, 0, "NEC", "PC-8801mkII", MACHINE_NOT_WORKING ) +COMP( 1985, pc8801mk2sr, pc8801, 0, pc8801, pc88sr, pc8801_state, 0, "NEC", "PC-8801mkIISR", MACHINE_NOT_WORKING ) +//COMP( 1985, pc8801mk2tr, pc8801, 0, pc8801, pc88sr, pc8801_state, 0, "NEC", "PC-8801mkIITR", MACHINE_NOT_WORKING ) +COMP( 1985, pc8801mk2fr, pc8801, 0, pc8801, pc88sr, pc8801_state, 0, "NEC", "PC-8801mkIIFR", MACHINE_NOT_WORKING ) +COMP( 1985, pc8801mk2mr, pc8801, 0, pc8801, pc88sr, pc8801_state, 0, "NEC", "PC-8801mkIIMR", MACHINE_NOT_WORKING ) + +//COMP( 1986, pc8801fh, 0, 0, pc8801, pc88sr, pc8801_state, 0, "NEC", "PC-8801FH", MACHINE_NOT_WORKING ) +COMP( 1986, pc8801mh, pc8801, 0, pc8801fh, pc88sr, pc8801_state, 0, "NEC", "PC-8801MH", MACHINE_NOT_WORKING ) +COMP( 1987, pc8801fa, pc8801, 0, pc8801fh, pc88sr, pc8801_state, 0, "NEC", "PC-8801FA", MACHINE_NOT_WORKING ) +COMP( 1987, pc8801ma, pc8801, 0, pc8801ma, pc88sr, pc8801_state, 0, "NEC", "PC-8801MA", MACHINE_NOT_WORKING ) +//COMP( 1988, pc8801fe, pc8801, 0, pc8801, pc88sr, pc8801_state, 0, "NEC", "PC-8801FE", MACHINE_NOT_WORKING ) +COMP( 1988, pc8801ma2, pc8801, 0, pc8801ma, pc88sr, pc8801_state, 0, "NEC", "PC-8801MA2", MACHINE_NOT_WORKING ) +//COMP( 1989, pc8801fe2, pc8801, 0, pc8801, pc88sr, pc8801_state, 0, "NEC", "PC-8801FE2", MACHINE_NOT_WORKING ) +COMP( 1989, pc8801mc, pc8801, 0, pc8801mc, pc88sr, pc8801_state, 0, "NEC", "PC-8801MC", MACHINE_NOT_WORKING ) + +//COMP( 1989, pc98do, 0, 0, pc88va, pc88sr, pc8801_state, 0, "NEC", "PC-98DO", MACHINE_NOT_WORKING ) +//COMP( 1990, pc98dop, 0, 0, pc88va, pc88sr, pc8801_state, 0, "NEC", "PC-98DO+", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/pc88va.cpp b/src/mame/drivers/pc88va.cpp index e59c01fc642..894b6f370c9 100644 --- a/src/mame/drivers/pc88va.cpp +++ b/src/mame/drivers/pc88va.cpp @@ -1779,7 +1779,7 @@ printf("%08x %02x\n",offset,data); } -static MACHINE_CONFIG_START( pc88va, pc88va_state ) +static MACHINE_CONFIG_START( pc88va ) MCFG_CPU_ADD("maincpu", V30, 8000000) /* 8 MHz */ MCFG_CPU_PROGRAM_MAP(pc88va_map) @@ -1918,6 +1918,6 @@ ROM_END -COMP( 1987, pc88va, 0, 0, pc88va, pc88va, driver_device, 0, "NEC", "PC-88VA", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -COMP( 1988, pc88va2, pc88va, 0, pc88va, pc88va, driver_device, 0, "NEC", "PC-88VA2", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -//COMP( 1988, pc88va3, pc88va, 0, pc88va, pc88va, driver_device, 0, "NEC", "PC-88VA3", MACHINE_NOT_WORKING ) +COMP( 1987, pc88va, 0, 0, pc88va, pc88va, pc88va_state, 0, "NEC", "PC-88VA", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +COMP( 1988, pc88va2, pc88va, 0, pc88va, pc88va, pc88va_state, 0, "NEC", "PC-88VA2", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +//COMP( 1988, pc88va3, pc88va, 0, pc88va, pc88va, pc88va_state, 0, "NEC", "PC-88VA3", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/pc9801.cpp b/src/mame/drivers/pc9801.cpp index 21ffd872f2a..71bb1dbb3b7 100644 --- a/src/mame/drivers/pc9801.cpp +++ b/src/mame/drivers/pc9801.cpp @@ -483,7 +483,7 @@ public: required_device m_sio; required_device m_hgdc1; required_device m_hgdc2; - optional_device m_sasibus; + optional_device m_sasibus; optional_device m_sasi_data_out; optional_device m_sasi_data_in; optional_device m_sasi_ctrl_in; @@ -3365,7 +3365,7 @@ static MACHINE_CONFIG_FRAGMENT( pc9801_common ) MCFG_GFXDECODE_ADD("gfxdecode", "palette", pc9801) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( pc9801, pc9801_state ) +static MACHINE_CONFIG_START( pc9801 ) MCFG_CPU_ADD("maincpu", I8086, 5000000) //unknown clock MCFG_CPU_PROGRAM_MAP(pc9801_map) MCFG_CPU_IO_MAP(pc9801_io) @@ -3400,7 +3400,7 @@ static MACHINE_CONFIG_START( pc9801, pc9801_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( pc9801rs, pc9801_state ) +static MACHINE_CONFIG_START( pc9801rs ) MCFG_CPU_ADD("maincpu", I386SX, MAIN_CLOCK_X1*8) // unknown clock. MCFG_CPU_PROGRAM_MAP(pc9801rs_map) MCFG_CPU_IO_MAP(pc9801rs_io) @@ -3944,20 +3944,20 @@ DRIVER_INIT_MEMBER(pc9801_state,pc9801_kanji) } /* Genuine dumps */ -COMP( 1983, pc9801f, 0, 0, pc9801, pc9801, pc9801_state, pc9801_kanji, "NEC", "PC-9801F", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) +COMP( 1983, pc9801f, 0, 0, pc9801, pc9801, pc9801_state, pc9801_kanji, "NEC", "PC-9801F", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) /* TODO: ANYTHING below there needs REDUMPING! */ -COMP( 1989, pc9801rs, 0 ,0, pc9801rs, pc9801rs, pc9801_state, pc9801_kanji, "NEC", "PC-9801RS", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) //TODO: not sure about the exact model -COMP( 1985, pc9801vm, pc9801ux,0, pc9801vm, pc9801rs, pc9801_state, pc9801_kanji, "NEC", "PC-9801VM", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) -COMP( 1987, pc9801ux, 0 ,0, pc9801ux, pc9801rs, pc9801_state, pc9801_kanji, "NEC", "PC-9801UX", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) -COMP( 1988, pc9801rx, pc9801rs,0, pc9801rs, pc9801rs, pc9801_state, pc9801_kanji, "NEC", "PC-9801RX", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) -COMP( 1993, pc9801bx2, pc9801rs,0, pc9801bx2,pc9801rs, pc9801_state, pc9801_kanji, "NEC", "PC-9801BX2/U2", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) -COMP( 1994, pc9821, 0, 0, pc9821, pc9821, pc9801_state, pc9801_kanji, "NEC", "PC-9821 (98MATE)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) //TODO: not sure about the exact model -COMP( 1993, pc9821as, pc9821, 0, pc9821, pc9821, pc9801_state, pc9801_kanji, "NEC", "PC-9821 (98MATE A)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) -COMP( 1993, pc9821ap2, pc9821, 0, pc9821ap2,pc9821, pc9801_state, pc9801_kanji, "NEC", "PC-9821AP2/U8W (98MATE A)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) -COMP( 1994, pc9821xs, pc9821, 0, pc9821, pc9821, pc9801_state, pc9801_kanji, "NEC", "PC-9821 (98MATE Xs)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) -COMP( 1994, pc9821ce2, pc9821, 0, pc9821, pc9821, pc9801_state, pc9801_kanji, "NEC", "PC-9821 (98MULTi Ce2)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) -COMP( 1994, pc9821ne, pc9821, 0, pc9821, pc9821, pc9801_state, pc9801_kanji, "NEC", "PC-9821 (98NOTE)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) -COMP( 1994, pc486mu, pc9821, 0, pc9821, pc9821, pc9801_state, pc9801_kanji, "Epson", "PC-486MU", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -COMP( 1998, pc9821v13, pc9821, 0, pc9821, pc9821, pc9801_state, pc9801_kanji, "NEC", "PC-9821 (98MATE VALUESTAR 13)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) -COMP( 1998, pc9821v20, pc9821, 0, pc9821v20,pc9821, pc9801_state, pc9801_kanji, "NEC", "PC-9821 (98MATE VALUESTAR 20)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) +COMP( 1989, pc9801rs, 0, 0, pc9801rs, pc9801rs, pc9801_state, pc9801_kanji, "NEC", "PC-9801RS", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) //TODO: not sure about the exact model +COMP( 1985, pc9801vm, pc9801ux, 0, pc9801vm, pc9801rs, pc9801_state, pc9801_kanji, "NEC", "PC-9801VM", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) +COMP( 1987, pc9801ux, 0, 0, pc9801ux, pc9801rs, pc9801_state, pc9801_kanji, "NEC", "PC-9801UX", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) +COMP( 1988, pc9801rx, pc9801rs, 0, pc9801rs, pc9801rs, pc9801_state, pc9801_kanji, "NEC", "PC-9801RX", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) +COMP( 1993, pc9801bx2, pc9801rs, 0, pc9801bx2, pc9801rs, pc9801_state, pc9801_kanji, "NEC", "PC-9801BX2/U2", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) +COMP( 1994, pc9821, 0, 0, pc9821, pc9821, pc9801_state, pc9801_kanji, "NEC", "PC-9821 (98MATE)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) //TODO: not sure about the exact model +COMP( 1993, pc9821as, pc9821, 0, pc9821, pc9821, pc9801_state, pc9801_kanji, "NEC", "PC-9821 (98MATE A)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) +COMP( 1993, pc9821ap2, pc9821, 0, pc9821ap2, pc9821, pc9801_state, pc9801_kanji, "NEC", "PC-9821AP2/U8W (98MATE A)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) +COMP( 1994, pc9821xs, pc9821, 0, pc9821, pc9821, pc9801_state, pc9801_kanji, "NEC", "PC-9821 (98MATE Xs)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) +COMP( 1994, pc9821ce2, pc9821, 0, pc9821, pc9821, pc9801_state, pc9801_kanji, "NEC", "PC-9821 (98MULTi Ce2)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) +COMP( 1994, pc9821ne, pc9821, 0, pc9821, pc9821, pc9801_state, pc9801_kanji, "NEC", "PC-9821 (98NOTE)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) +COMP( 1994, pc486mu, pc9821, 0, pc9821, pc9821, pc9801_state, pc9801_kanji, "Epson", "PC-486MU", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +COMP( 1998, pc9821v13, pc9821, 0, pc9821, pc9821, pc9801_state, pc9801_kanji, "NEC", "PC-9821 (98MATE VALUESTAR 13)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) +COMP( 1998, pc9821v20, pc9821, 0, pc9821v20, pc9821, pc9801_state, pc9801_kanji, "NEC", "PC-9821 (98MATE VALUESTAR 20)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) diff --git a/src/mame/drivers/pcat_dyn.cpp b/src/mame/drivers/pcat_dyn.cpp index d01fb0c8a14..48aa679321b 100644 --- a/src/mame/drivers/pcat_dyn.cpp +++ b/src/mame/drivers/pcat_dyn.cpp @@ -152,7 +152,7 @@ static MACHINE_CONFIG_FRAGMENT( pcat_dyn_sb_conf ) MCFG_DEVICE_SLOT_INTERFACE(pc_joysticks, nullptr, true) // remove joystick MACHINE_CONFIG_END -static MACHINE_CONFIG_START( pcat_dyn, pcat_dyn_state ) +static MACHINE_CONFIG_START( pcat_dyn ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I486, 40000000) /* Am486 DX-40 */ MCFG_CPU_PROGRAM_MAP(pcat_map) @@ -264,5 +264,5 @@ ROM_START(toursol1) ROM_END -GAME( 1995, toursol, 0, pcat_dyn, pcat_dyn, driver_device, 0, ROT0, "Dynamo", "Tournament Solitaire (V1.06, 08/03/95)", MACHINE_UNEMULATED_PROTECTION ) -GAME( 1995, toursol1, toursol, pcat_dyn, pcat_dyn, driver_device, 0, ROT0, "Dynamo", "Tournament Solitaire (V1.04, 06/22/95)", MACHINE_NOT_WORKING|MACHINE_NO_SOUND ) +GAME( 1995, toursol, 0, pcat_dyn, pcat_dyn, pcat_dyn_state, 0, ROT0, "Dynamo", "Tournament Solitaire (V1.06, 08/03/95)", MACHINE_UNEMULATED_PROTECTION ) +GAME( 1995, toursol1, toursol, pcat_dyn, pcat_dyn, pcat_dyn_state, 0, ROT0, "Dynamo", "Tournament Solitaire (V1.04, 06/22/95)", MACHINE_NOT_WORKING|MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/pcat_nit.cpp b/src/mame/drivers/pcat_nit.cpp index 37948b8817b..3e1470957bd 100644 --- a/src/mame/drivers/pcat_nit.cpp +++ b/src/mame/drivers/pcat_nit.cpp @@ -217,7 +217,7 @@ void pcat_nit_state::machine_start() membank("rombank")->set_entry(0); } -static MACHINE_CONFIG_START( pcat_nit, pcat_nit_state ) +static MACHINE_CONFIG_START( pcat_nit ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I386, 14318180*2) /* I386 ?? Mhz */ MCFG_CPU_PROGRAM_MAP(pcat_map) @@ -236,7 +236,7 @@ static MACHINE_CONFIG_START( pcat_nit, pcat_nit_state ) MCFG_NVRAM_ADD_0FILL("nvram") MACHINE_CONFIG_END -static MACHINE_CONFIG_START( bonanza, pcat_nit_state ) +static MACHINE_CONFIG_START( bonanza ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I386, 14318180*2) /* I386 ?? Mhz */ MCFG_CPU_PROGRAM_MAP(bonanza_map) diff --git a/src/mame/drivers/pcd.cpp b/src/mame/drivers/pcd.cpp index 6b9210ccf63..bca2415c706 100644 --- a/src/mame/drivers/pcd.cpp +++ b/src/mame/drivers/pcd.cpp @@ -90,9 +90,9 @@ private: required_device m_pic1; required_device m_pic2; required_device m_speaker; - required_device m_fdc; + required_device m_fdc; required_device m_rtc; - required_device m_scsi; + required_device m_scsi; required_device m_scsi_data_out; required_device m_scsi_data_in; required_device m_ram; @@ -446,7 +446,7 @@ static ADDRESS_MAP_START( pcd_io, AS_IO, 16, pcd_state ) AM_RANGE(0xf840, 0xf841) AM_READWRITE8(stat_r, stat_w, 0x00ff) AM_RANGE(0xf840, 0xf841) AM_READWRITE8(led_r, led_w, 0xff00) AM_RANGE(0xf880, 0xf8bf) AM_READWRITE8(rtc_r, rtc_w, 0xffff) - AM_RANGE(0xf900, 0xf903) AM_DEVREADWRITE8("fdc", wd2793_t, read, write, 0xffff) + AM_RANGE(0xf900, 0xf903) AM_DEVREADWRITE8("fdc", wd2793_device, read, write, 0xffff) AM_RANGE(0xf904, 0xf905) AM_READWRITE(dskctl_r, dskctl_w) AM_RANGE(0xf940, 0xf943) AM_READWRITE8(scsi_r, scsi_w, 0xffff) AM_RANGE(0xf980, 0xf9bf) AM_DEVICE("video", pcdx_video_device, map) @@ -486,7 +486,7 @@ static INPUT_PORTS_START(pcx) PORT_CONFSETTING(0x02, "SINIX 1.2") INPUT_PORTS_END -static MACHINE_CONFIG_START( pcd, pcd_state ) +static MACHINE_CONFIG_START( pcd ) MCFG_CPU_ADD("maincpu", I80186, XTAL_16MHz) MCFG_CPU_PROGRAM_MAP(pcd_map) MCFG_CPU_IO_MAP(pcd_io) @@ -606,5 +606,5 @@ ROM_END // GAME DRIVERS //************************************************************************** -COMP( 1984, pcd, 0, 0, pcd, 0, driver_device, 0, "Siemens", "PC-D", MACHINE_NOT_WORKING ) -COMP( 1984, pcx, pcd, 0, pcx, pcx, driver_device, 0, "Siemens", "PC-X", MACHINE_NOT_WORKING ) +COMP( 1984, pcd, 0, 0, pcd, 0, pcd_state, 0, "Siemens", "PC-D", MACHINE_NOT_WORKING ) +COMP( 1984, pcx, pcd, 0, pcx, pcx, pcd_state, 0, "Siemens", "PC-X", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/pce.cpp b/src/mame/drivers/pce.cpp index dd1d22ee450..8c76d52a286 100644 --- a/src/mame/drivers/pce.cpp +++ b/src/mame/drivers/pce.cpp @@ -305,7 +305,7 @@ static SLOT_INTERFACE_START(pce_cart) SLOT_INTERFACE_INTERNAL("sf2", PCE_ROM_SF2) SLOT_INTERFACE_END -static MACHINE_CONFIG_START( pce_common, pce_state ) +static MACHINE_CONFIG_START( pce_common ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", H6280, MAIN_CLOCK/3) MCFG_CPU_PROGRAM_MAP(pce_mem) @@ -317,7 +317,7 @@ static MACHINE_CONFIG_START( pce_common, pce_state ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(MAIN_CLOCK, HUC6260_WPF, 64, 64 + 1024 + 64, HUC6260_LPF, 18, 18 + 242) + MCFG_SCREEN_RAW_PARAMS(MAIN_CLOCK, huc6260_device::WPF, 64, 64 + 1024 + 64, huc6260_device::LPF, 18, 18 + 242) MCFG_SCREEN_UPDATE_DRIVER( pce_state, screen_update ) MCFG_SCREEN_PALETTE("huc6260:palette") @@ -355,7 +355,7 @@ static MACHINE_CONFIG_DERIVED( tg16, pce_common ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( sgx, pce_state ) +static MACHINE_CONFIG_START( sgx ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", H6280, MAIN_CLOCK/3) MCFG_CPU_PROGRAM_MAP(sgx_mem) @@ -367,7 +367,7 @@ static MACHINE_CONFIG_START( sgx, pce_state ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(MAIN_CLOCK, HUC6260_WPF, 64, 64 + 1024 + 64, HUC6260_LPF, 18, 18 + 242) + MCFG_SCREEN_RAW_PARAMS(MAIN_CLOCK, huc6260_device::WPF, 64, 64 + 1024 + 64, huc6260_device::LPF, 18, 18 + 242) MCFG_SCREEN_UPDATE_DRIVER( pce_state, screen_update ) MCFG_SCREEN_PALETTE("huc6260:palette") @@ -424,6 +424,6 @@ ROM_END #define rom_tg16 rom_pce #define rom_sgx rom_pce -CONS( 1987, pce, 0, 0, pce, pce, pce_state, mess_pce, "NEC / Hudson Soft", "PC Engine", MACHINE_IMPERFECT_SOUND) -CONS( 1989, tg16, pce, 0, tg16, pce, pce_state, tg16, "NEC / Hudson Soft", "TurboGrafx 16", MACHINE_IMPERFECT_SOUND) -CONS( 1989, sgx, pce, 0, sgx, pce, pce_state, sgx, "NEC / Hudson Soft", "SuperGrafx", MACHINE_IMPERFECT_SOUND) +CONS( 1987, pce, 0, 0, pce, pce, pce_state, mess_pce, "NEC / Hudson Soft", "PC Engine", MACHINE_IMPERFECT_SOUND ) +CONS( 1989, tg16, pce, 0, tg16, pce, pce_state, tg16, "NEC / Hudson Soft", "TurboGrafx 16", MACHINE_IMPERFECT_SOUND ) +CONS( 1989, sgx, pce, 0, sgx, pce, pce_state, sgx, "NEC / Hudson Soft", "SuperGrafx", MACHINE_IMPERFECT_SOUND ) diff --git a/src/mame/drivers/pce220.cpp b/src/mame/drivers/pce220.cpp index 7e2e457fc6c..d1a39b8a8bf 100644 --- a/src/mame/drivers/pce220.cpp +++ b/src/mame/drivers/pce220.cpp @@ -925,7 +925,7 @@ PALETTE_INIT_MEMBER(pce220_state,pce220) } -static MACHINE_CONFIG_START( pce220, pce220_state ) +static MACHINE_CONFIG_START( pce220 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80, 3072000 ) // CMOS-SC7852 MCFG_CPU_PROGRAM_MAP(pce220_mem) @@ -961,7 +961,7 @@ static MACHINE_CONFIG_START( pce220, pce220_state ) MCFG_PCE220_SERIAL_ADD(PCE220SERIAL_TAG) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( pcg815, pcg850v_state ) +static MACHINE_CONFIG_START( pcg815 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80, XTAL_4MHz ) // 3.54MHz MCFG_CPU_PROGRAM_MAP(pce220_mem) @@ -997,7 +997,7 @@ static MACHINE_CONFIG_START( pcg815, pcg850v_state ) MCFG_PCE220_SERIAL_ADD(PCE220SERIAL_TAG) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( pcg850v, pcg850v_state ) +static MACHINE_CONFIG_START( pcg850v ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80, XTAL_8MHz ) // CMOS-SC7852 MCFG_CPU_PROGRAM_MAP(pce220_mem) @@ -1104,7 +1104,7 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1991, pce220, 0, 0, pce220, pce220, driver_device, 0, "Sharp", "PC-E220", MACHINE_NOT_WORKING ) -COMP( 1992, pcg815, 0, 0, pcg815, pcg850v, driver_device, 0, "Sharp", "PC-G815", MACHINE_NOT_WORKING ) -COMP( 2001, pcg850v, 0, 0, pcg850v, pcg850v, driver_device, 0, "Sharp", "PC-G850V", MACHINE_NOT_WORKING ) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 1991, pce220, 0, 0, pce220, pce220, pce220_state, 0, "Sharp", "PC-E220", MACHINE_NOT_WORKING ) +COMP( 1992, pcg815, 0, 0, pcg815, pcg850v, pcg850v_state, 0, "Sharp", "PC-G815", MACHINE_NOT_WORKING ) +COMP( 2001, pcg850v, 0, 0, pcg850v, pcg850v, pcg850v_state, 0, "Sharp", "PC-G850V", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/pcfx.cpp b/src/mame/drivers/pcfx.cpp index 26dafc00080..a825ef4c778 100644 --- a/src/mame/drivers/pcfx.cpp +++ b/src/mame/drivers/pcfx.cpp @@ -408,14 +408,14 @@ uint32_t pcfx_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, } -static MACHINE_CONFIG_START( pcfx, pcfx_state ) +static MACHINE_CONFIG_START( pcfx ) MCFG_CPU_ADD( "maincpu", V810, XTAL_21_4772MHz ) MCFG_CPU_PROGRAM_MAP( pcfx_mem) MCFG_CPU_IO_MAP( pcfx_io) MCFG_SCREEN_ADD( "screen", RASTER ) MCFG_SCREEN_UPDATE_DRIVER(pcfx_state, screen_update) - MCFG_SCREEN_RAW_PARAMS(XTAL_21_4772MHz, HUC6261_WPF, 64, 64 + 1024 + 64, HUC6261_LPF, 18, 18 + 242) + MCFG_SCREEN_RAW_PARAMS(XTAL_21_4772MHz, huc6261_device::WPF, 64, 64 + 1024 + 64, huc6261_device::LPF, 18, 18 + 242) MCFG_DEVICE_ADD( "huc6270_a", HUC6270, 0 ) MCFG_HUC6270_VRAM_SIZE(0x20000) @@ -464,6 +464,6 @@ ROM_END ***************************************************************************/ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -CONS( 1994, pcfx, 0, 0, pcfx, pcfx, driver_device, 0, "NEC", "PC-FX", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -CONS( 199?, pcfxga, pcfx, 0, pcfx, pcfx, driver_device, 0, "NEC", "PC-FX/GA (PC ISA Card)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +CONS( 1994, pcfx, 0, 0, pcfx, pcfx, pcfx_state, 0, "NEC", "PC-FX", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +CONS( 199?, pcfxga, pcfx, 0, pcfx, pcfx, pcfx_state, 0, "NEC", "PC-FX/GA (PC ISA Card)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/pcipc.cpp b/src/mame/drivers/pcipc.cpp index e8f4074f512..9be5128f202 100644 --- a/src/mame/drivers/pcipc.cpp +++ b/src/mame/drivers/pcipc.cpp @@ -276,7 +276,7 @@ WRITE8_MEMBER(pcipc_state::boot_state_award_w) } -static MACHINE_CONFIG_START(pcipc, pcipc_state) +static MACHINE_CONFIG_START(pcipc) MCFG_CPU_ADD("maincpu", PENTIUM, 90000000) MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("pci:07.0:pic8259_master", pic8259_device, inta_cb) @@ -288,7 +288,7 @@ static MACHINE_CONFIG_START(pcipc, pcipc_state) MCFG_MGA2064W_ADD( ":pci:12.0") MACHINE_CONFIG_END -static MACHINE_CONFIG_START(pcipctx, pcipc_state) +static MACHINE_CONFIG_START(pcipctx) MCFG_CPU_ADD("maincpu", PENTIUM, 60000000) MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("pci:07.0:pic8259_master", pic8259_device, inta_cb) @@ -326,5 +326,5 @@ ROM_END static INPUT_PORTS_START(pcipc) INPUT_PORTS_END -COMP(1998, pcipc, 0, 0, pcipc, pcipc, driver_device, 0, "Hack Inc.", "Sandbox PCI PC (440HX)", MACHINE_NO_SOUND) -COMP(1998, pcipctx, 0, 0, pcipctx, pcipc, driver_device, 0, "Hack Inc.", "Sandbox PCI PC (440TX)", MACHINE_NO_SOUND) +COMP(1998, pcipc, 0, 0, pcipc, pcipc, pcipc_state, 0, "Hack Inc.", "Sandbox PCI PC (440HX)", MACHINE_NO_SOUND) +COMP(1998, pcipctx, 0, 0, pcipctx, pcipc, pcipc_state, 0, "Hack Inc.", "Sandbox PCI PC (440TX)", MACHINE_NO_SOUND) diff --git a/src/mame/drivers/pcktgal.cpp b/src/mame/drivers/pcktgal.cpp index f09610cd8f4..da0fa64af82 100644 --- a/src/mame/drivers/pcktgal.cpp +++ b/src/mame/drivers/pcktgal.cpp @@ -221,7 +221,7 @@ void pcktgal_state::machine_start() save_item(NAME(m_toggle)); } -static MACHINE_CONFIG_START( pcktgal, pcktgal_state ) +static MACHINE_CONFIG_START( pcktgal ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, 2000000) @@ -264,7 +264,7 @@ static MACHINE_CONFIG_START( pcktgal, pcktgal_state ) MCFG_SOUND_ADD("msm", MSM5205, 384000) MCFG_MSM5205_VCLK_CB(WRITELINE(pcktgal_state, adpcm_int)) /* interrupt function */ - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S48_4B) /* 8KHz */ + MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) /* 8KHz */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.70) MACHINE_CONFIG_END @@ -449,7 +449,7 @@ DRIVER_INIT_MEMBER(pcktgal_state,pcktgal) /***************************************************************************/ GAME( 1987, pcktgal, 0, pcktgal, pcktgal, pcktgal_state, pcktgal, ROT0, "Data East Corporation", "Pocket Gal (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, pcktgalb, pcktgal, bootleg, pcktgal, driver_device, 0, ROT0, "bootleg", "Pocket Gal (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, pcktgalb, pcktgal, bootleg, pcktgal, pcktgal_state, 0, ROT0, "bootleg", "Pocket Gal (bootleg)", MACHINE_SUPPORTS_SAVE ) GAME( 1989, pcktgal2, pcktgal, pcktgal2,pcktgal, pcktgal_state, pcktgal, ROT0, "Data East Corporation", "Pocket Gal 2 (English)", MACHINE_SUPPORTS_SAVE ) GAME( 1989, pcktgal2j,pcktgal, pcktgal2,pcktgal, pcktgal_state, pcktgal, ROT0, "Data East Corporation", "Pocket Gal 2 (Japanese)", MACHINE_SUPPORTS_SAVE ) GAME( 1989, spool3, pcktgal, pcktgal2,pcktgal, pcktgal_state, pcktgal, ROT0, "Data East Corporation", "Super Pool III (English)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/pcm.cpp b/src/mame/drivers/pcm.cpp index 5f954f2bf98..e0dd023bf04 100644 --- a/src/mame/drivers/pcm.cpp +++ b/src/mame/drivers/pcm.cpp @@ -250,7 +250,7 @@ static GFXDECODE_START( pcm ) GFXDECODE_ENTRY( "chargen", 0x0000, pcm_charlayout, 0, 1 ) GFXDECODE_END -static MACHINE_CONFIG_START( pcm, pcm_state ) +static MACHINE_CONFIG_START( pcm ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80, XTAL_10MHz /4) MCFG_CPU_PROGRAM_MAP(pcm_mem) @@ -326,5 +326,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1988, pcm, 0, 0, pcm, pcm, driver_device, 0, "Mugler/Mathes", "PC/M", 0) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +COMP( 1988, pcm, 0, 0, pcm, pcm, pcm_state, 0, "Mugler/Mathes", "PC/M", 0) diff --git a/src/mame/drivers/pcw.cpp b/src/mame/drivers/pcw.cpp index 326f636baf6..2d2a0cb6c62 100644 --- a/src/mame/drivers/pcw.cpp +++ b/src/mame/drivers/pcw.cpp @@ -1242,7 +1242,7 @@ static SLOT_INTERFACE_START( pcw_floppies ) SLOT_INTERFACE_END /* PCW8256, PCW8512, PCW9256 */ -static MACHINE_CONFIG_START( pcw, pcw_state ) +static MACHINE_CONFIG_START( pcw ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 4000000) /* clock supplied to chip, but in reality it is 3.4 MHz */ MCFG_CPU_PROGRAM_MAP(pcw_map) @@ -1393,9 +1393,9 @@ ROM_END /* these are all variants on the pcw design */ /* major difference is memory configuration and drive type */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ -COMP( 1985, pcw8256, 0, 0, pcw8256, pcw, pcw_state, pcw, "Amstrad plc", "PCW8256", MACHINE_NOT_WORKING) -COMP( 1985, pcw8512, pcw8256, 0, pcw8512, pcw, pcw_state, pcw, "Amstrad plc", "PCW8512", MACHINE_NOT_WORKING) -COMP( 1987, pcw9256, pcw8256, 0, pcw8256, pcw, pcw_state, pcw, "Amstrad plc", "PCW9256", MACHINE_NOT_WORKING) -COMP( 1987, pcw9512, pcw8256, 0, pcw9512, pcw, pcw_state, pcw, "Amstrad plc", "PCW9512 (+)", MACHINE_NOT_WORKING) -COMP( 1993, pcw10, pcw8256, 0, pcw8512, pcw, pcw_state, pcw, "Amstrad plc", "PCW10", MACHINE_NOT_WORKING) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME */ +COMP( 1985, pcw8256, 0, 0, pcw8256, pcw, pcw_state, pcw, "Amstrad plc", "PCW8256", MACHINE_NOT_WORKING) +COMP( 1985, pcw8512, pcw8256, 0, pcw8512, pcw, pcw_state, pcw, "Amstrad plc", "PCW8512", MACHINE_NOT_WORKING) +COMP( 1987, pcw9256, pcw8256, 0, pcw8256, pcw, pcw_state, pcw, "Amstrad plc", "PCW9256", MACHINE_NOT_WORKING) +COMP( 1987, pcw9512, pcw8256, 0, pcw9512, pcw, pcw_state, pcw, "Amstrad plc", "PCW9512 (+)", MACHINE_NOT_WORKING) +COMP( 1993, pcw10, pcw8256, 0, pcw8512, pcw, pcw_state, pcw, "Amstrad plc", "PCW10", MACHINE_NOT_WORKING) diff --git a/src/mame/drivers/pcw16.cpp b/src/mame/drivers/pcw16.cpp index cd1bab1f3db..c5ed761e04c 100644 --- a/src/mame/drivers/pcw16.cpp +++ b/src/mame/drivers/pcw16.cpp @@ -1006,7 +1006,7 @@ static SLOT_INTERFACE_START(pcw16_com) SLOT_INTERFACE("msystems_mouse", MSYSTEM_SERIAL_MOUSE) SLOT_INTERFACE_END -static MACHINE_CONFIG_START( pcw16, pcw16_state ) +static MACHINE_CONFIG_START( pcw16 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 16000000) MCFG_CPU_PROGRAM_MAP(pcw16_map) @@ -1093,5 +1093,5 @@ ROM_START(pcw16) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ -COMP( 1995, pcw16, 0, 0, pcw16, pcw16, driver_device, 0, "Amstrad plc", "PcW16", MACHINE_NOT_WORKING ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME */ +COMP( 1995, pcw16, 0, 0, pcw16, pcw16, pcw16_state, 0, "Amstrad plc", "PcW16", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/pcxt.cpp b/src/mame/drivers/pcxt.cpp index cbe24788965..09ea4794b1b 100644 --- a/src/mame/drivers/pcxt.cpp +++ b/src/mame/drivers/pcxt.cpp @@ -57,6 +57,7 @@ the main program is 9th October 1990. ******************************************************************************************/ #include "emu.h" +#include "bus/isa/cga.h" #include "cpu/i86/i86.h" #include "sound/hc55516.h" #include "machine/bankdev.h" @@ -104,14 +105,14 @@ public: virtual const tiny_rom_entry *device_rom_region() const override; }; -const device_type ISA8_CGA_FILETTO = device_creator; +DEFINE_DEVICE_TYPE(ISA8_CGA_FILETTO, isa8_cga_filetto_device, "filetto_cga", "ISA8_CGA_FILETTO") //------------------------------------------------- // isa8_cga_filetto_device - constructor //------------------------------------------------- isa8_cga_filetto_device::isa8_cga_filetto_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - isa8_cga_device( mconfig, ISA8_CGA_FILETTO, "ISA8_CGA_FILETTO", tag, owner, clock, "filetto_cga", __FILE__) + isa8_cga_device(mconfig, ISA8_CGA_FILETTO, tag, owner, clock) { } @@ -145,14 +146,14 @@ private: /* for superimposing CGA over a different source video (i.e. tetriskr) */ -const device_type ISA8_CGA_TETRISKR = device_creator; +DEFINE_DEVICE_TYPE(ISA8_CGA_TETRISKR, isa8_cga_tetriskr_device, "tetriskr_cga", "ISA8_CGA_TETRISKR") //------------------------------------------------- // isa8_cga_tetriskr_device - constructor //------------------------------------------------- isa8_cga_tetriskr_device::isa8_cga_tetriskr_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - isa8_cga_superimpose_device( mconfig, ISA8_CGA_TETRISKR, "ISA8_CGA_TETRISKR", tag, owner, clock, "tetriskr_cga", __FILE__) + isa8_cga_superimpose_device(mconfig, ISA8_CGA_TETRISKR, tag, owner, clock) { } @@ -479,7 +480,7 @@ static SLOT_INTERFACE_START( filetto_isa8_cards ) SLOT_INTERFACE_END -static MACHINE_CONFIG_START( filetto, pcxt_state ) +static MACHINE_CONFIG_START( filetto ) MCFG_CPU_ADD("maincpu", I8088, XTAL_14_31818MHz/3) MCFG_CPU_PROGRAM_MAP(filetto_map) MCFG_CPU_IO_MAP(filetto_io) @@ -500,7 +501,7 @@ static MACHINE_CONFIG_START( filetto, pcxt_state ) MCFG_ADDRESS_MAP_BANK_STRIDE(0x10000) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( tetriskr, pcxt_state ) +static MACHINE_CONFIG_START( tetriskr ) MCFG_CPU_ADD("maincpu", I8088, XTAL_14_31818MHz/3) MCFG_CPU_PROGRAM_MAP(tetriskr_map) MCFG_CPU_IO_MAP(tetriskr_io) @@ -539,5 +540,5 @@ ROM_START( tetriskr ) ROM_LOAD( "b-10.u10", 0x0000, 0x10000, CRC(efc2a0f6) SHA1(5f0f1e90237bee9b78184035a32055b059a91eb3) ) ROM_END -GAME( 1990, filetto, 0, filetto, filetto, driver_device, 0, ROT0, "Novarmatic", "Filetto (v1.05 901009)",MACHINE_IMPERFECT_SOUND ) -GAME( 1988?,tetriskr, 0, tetriskr, tetriskr, driver_device, 0, ROT0, "bootleg", "Tetris (Korean bootleg of Mirrorsoft PC-XT Tetris)", MACHINE_IMPERFECT_SOUND ) +GAME( 1990, filetto, 0, filetto, filetto, pcxt_state, 0, ROT0, "Novarmatic", "Filetto (v1.05 901009)", MACHINE_IMPERFECT_SOUND ) +GAME( 1988?,tetriskr, 0, tetriskr, tetriskr, pcxt_state, 0, ROT0, "bootleg", "Tetris (Korean bootleg of Mirrorsoft PC-XT Tetris)", MACHINE_IMPERFECT_SOUND ) diff --git a/src/mame/drivers/pda600.cpp b/src/mame/drivers/pda600.cpp index 64914230cb8..dfe5ff7eee0 100644 --- a/src/mame/drivers/pda600.cpp +++ b/src/mame/drivers/pda600.cpp @@ -196,7 +196,7 @@ static GFXDECODE_START( pda600 ) GFXDECODE_END -static MACHINE_CONFIG_START( pda600, pda600_state ) +static MACHINE_CONFIG_START( pda600 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z180, XTAL_14_31818MHz) MCFG_CPU_PROGRAM_MAP(pda600_mem) @@ -235,5 +235,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1993, pda600, 0, 0, pda600, pda600, driver_device, 0, "Amstrad plc", "PenPad PDA 600", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +COMP( 1993, pda600, 0, 0, pda600, pda600, pda600_state, 0, "Amstrad plc", "PenPad PDA 600", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) diff --git a/src/mame/drivers/pdp1.cpp b/src/mame/drivers/pdp1.cpp index 8233b3784a1..aa300fa7976 100644 --- a/src/mame/drivers/pdp1.cpp +++ b/src/mame/drivers/pdp1.cpp @@ -689,11 +689,11 @@ protected: virtual void device_start() override { } }; -const device_type PDP1_READTAPE = device_creator; +DEFINE_DEVICE_TYPE(PDP1_READTAPE, pdp1_readtape_image_device, "pdp1_readtape_image", "PDP1 Tape Reader") pdp1_readtape_image_device::pdp1_readtape_image_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, PDP1_READTAPE, "PDP1 Tape Reader", tag, owner, clock, "pdp1_readtape_image", __FILE__), - device_image_interface(mconfig, *this) + : device_t(mconfig, PDP1_READTAPE, tag, owner, clock) + , device_image_interface(mconfig, *this) { } @@ -721,11 +721,11 @@ protected: virtual void device_start() override { } }; -const device_type PDP1_PUNCHTAPE = device_creator; +DEFINE_DEVICE_TYPE(PDP1_PUNCHTAPE, pdp1_punchtape_image_device, "pdp1_punchtape_image_device", "PDP1 Tape Puncher") pdp1_punchtape_image_device::pdp1_punchtape_image_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, PDP1_PUNCHTAPE, "PDP1 Tape Puncher", tag, owner, clock, "pdp1_punchtape_image", __FILE__), - device_image_interface(mconfig, *this) + : device_t(mconfig, PDP1_PUNCHTAPE, tag, owner, clock) + , device_image_interface(mconfig, *this) { } @@ -754,11 +754,11 @@ protected: virtual void device_start() override { } }; -const device_type PDP1_PRINTER = device_creator; +DEFINE_DEVICE_TYPE(PDP1_PRINTER, pdp1_printer_image_device, "pdp1_printer_image", "PDP1 Typewriter") pdp1_printer_image_device::pdp1_printer_image_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, PDP1_PRINTER, "PDP1 Typewriter", tag, owner, clock, "pdp1_printer_image", __FILE__), - device_image_interface(mconfig, *this) + : device_t(mconfig, PDP1_PRINTER, tag, owner, clock) + , device_image_interface(mconfig, *this) { } @@ -786,11 +786,11 @@ protected: virtual void device_start() override { } }; -const device_type PDP1_CYLINDER = device_creator; +DEFINE_DEVICE_TYPE(PDP1_CYLINDER, pdp1_cylinder_image_device, "pdp1_cylinder_image", "PDP1 Cylinder") pdp1_cylinder_image_device::pdp1_cylinder_image_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, PDP1_CYLINDER, "PDP1 Cylinder", tag, owner, clock, "pdp1_cylinder_image", __FILE__), - device_image_interface(mconfig, *this) + : device_t(mconfig, PDP1_CYLINDER, tag, owner, clock) + , device_image_interface(mconfig, *this) { } @@ -1917,7 +1917,7 @@ INTERRUPT_GEN_MEMBER(pdp1_state::pdp1_interrupt) } -static MACHINE_CONFIG_START( pdp1, pdp1_state ) +static MACHINE_CONFIG_START( pdp1 ) /* basic machine hardware */ /* PDP1 CPU @ 200 kHz (no master clock, but the instruction and memory rate is 200 kHz) */ @@ -1966,5 +1966,5 @@ ROM_END ***************************************************************************/ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME */ -COMP( 1961, pdp1, 0, 0, pdp1, pdp1, driver_device, 0, "Digital Equipment Corporation", "PDP-1" , MACHINE_NO_SOUND_HW ) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 1961, pdp1, 0, 0, pdp1, pdp1, pdp1_state, 0, "Digital Equipment Corporation", "PDP-1", MACHINE_NO_SOUND_HW ) diff --git a/src/mame/drivers/pdp11.cpp b/src/mame/drivers/pdp11.cpp index 16c202a1749..3934139c8db 100644 --- a/src/mame/drivers/pdp11.cpp +++ b/src/mame/drivers/pdp11.cpp @@ -109,7 +109,7 @@ public: required_device m_terminal; DECLARE_READ16_MEMBER( teletype_ctrl_r ); DECLARE_WRITE16_MEMBER( teletype_ctrl_w ); - DECLARE_WRITE8_MEMBER( kbd_put ); + void kbd_put(u8 data); uint8_t m_teletype_data; uint16_t m_teletype_status; virtual void machine_reset() override; @@ -340,13 +340,13 @@ MACHINE_RESET_MEMBER(pdp11_state,pdp11qb) } -WRITE8_MEMBER( pdp11_state::kbd_put ) +void pdp11_state::kbd_put(u8 data) { m_teletype_data = data; m_teletype_status |= 0x80; } -static MACHINE_CONFIG_START( pdp11, pdp11_state ) +static MACHINE_CONFIG_START( pdp11 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",T11, XTAL_4MHz) // Need proper CPU here MCFG_T11_INITIAL_MODE(6 << 13) @@ -355,7 +355,7 @@ static MACHINE_CONFIG_START( pdp11, pdp11_state ) /* video hardware */ MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0) - MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(pdp11_state, kbd_put)) + MCFG_GENERIC_TERMINAL_KEYBOARD_CB(PUT(pdp11_state, kbd_put)) MCFG_RX01_ADD("rx01") MACHINE_CONFIG_END @@ -463,8 +463,8 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( ????, pdp11ub, 0, 0, pdp11, pdp11, driver_device, 0, "Digital Equipment Corporation", "PDP-11 [Unibus](M9301-YA)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -COMP( ????, pdp11ub2, pdp11ub, 0, pdp11ub2, pdp11, driver_device, 0, "Digital Equipment Corporation", "PDP-11 [Unibus](M9312)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -COMP( ????, pdp11qb, pdp11ub, 0, pdp11qb, pdp11, driver_device, 0, "Digital Equipment Corporation", "PDP-11 [Q-BUS] (M7195 - MXV11)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -COMP( 1987, sms1000, pdp11ub, 0, pdp11qb, pdp11, driver_device, 0, "Scientific Micro Systems", "SMS-1000", MACHINE_IS_SKELETON ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +COMP( ????, pdp11ub, 0, 0, pdp11, pdp11, pdp11_state, 0, "Digital Equipment Corporation", "PDP-11 [Unibus](M9301-YA)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +COMP( ????, pdp11ub2, pdp11ub, 0, pdp11ub2, pdp11, pdp11_state, 0, "Digital Equipment Corporation", "PDP-11 [Unibus](M9312)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +COMP( ????, pdp11qb, pdp11ub, 0, pdp11qb, pdp11, pdp11_state, 0, "Digital Equipment Corporation", "PDP-11 [Q-BUS] (M7195 - MXV11)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +COMP( 1987, sms1000, pdp11ub, 0, pdp11qb, pdp11, pdp11_state, 0, "Scientific Micro Systems", "SMS-1000", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/pecom.cpp b/src/mame/drivers/pecom.cpp index e3a7c09abef..f9aff51cea0 100644 --- a/src/mame/drivers/pecom.cpp +++ b/src/mame/drivers/pecom.cpp @@ -168,9 +168,9 @@ static INPUT_PORTS_START( pecom ) INPUT_PORTS_END /* Machine driver */ -static MACHINE_CONFIG_START( pecom64, pecom_state ) +static MACHINE_CONFIG_START( pecom64 ) /* basic machine hardware */ - MCFG_CPU_ADD(CDP1802_TAG, CDP1802, CDP1869_DOT_CLK_PAL/3) + MCFG_CPU_ADD(CDP1802_TAG, CDP1802, cdp1869_device::DOT_CLK_PAL/3) MCFG_CPU_PROGRAM_MAP(pecom64_mem) MCFG_CPU_IO_MAP(pecom64_io) MCFG_COSMAC_WAIT_CALLBACK(VCC) @@ -213,6 +213,6 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1986, pecom32, 0, 0, pecom64, pecom, driver_device, 0, "Ei Nis", "Pecom 32", 0) -COMP( 1987, pecom64, pecom32, 0, pecom64, pecom, driver_device, 0, "Ei Nis", "Pecom 64", 0) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +COMP( 1986, pecom32, 0, 0, pecom64, pecom, pecom_state, 0, "Ei Nis", "Pecom 32", 0) +COMP( 1987, pecom64, pecom32, 0, pecom64, pecom, pecom_state, 0, "Ei Nis", "Pecom 64", 0) diff --git a/src/mame/drivers/pegasus.cpp b/src/mame/drivers/pegasus.cpp index 441f3eae6d0..fb213c8579a 100644 --- a/src/mame/drivers/pegasus.cpp +++ b/src/mame/drivers/pegasus.cpp @@ -477,7 +477,7 @@ DRIVER_INIT_MEMBER(pegasus_state, pegasus) pegasus_decrypt_rom(base); } -static MACHINE_CONFIG_START( pegasus, pegasus_state ) +static MACHINE_CONFIG_START( pegasus ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809E, XTAL_4MHz) // actually a 6809C - 4MHZ clock coming in, 1MHZ internally MCFG_CPU_PROGRAM_MAP(pegasus_mem) @@ -574,6 +574,6 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1981, pegasus, 0, 0, pegasus, pegasus, pegasus_state, pegasus, "Technosys", "Aamber Pegasus", MACHINE_NO_SOUND_HW ) -COMP( 1981, pegasusm, pegasus, 0, pegasusm, pegasus, pegasus_state, pegasus, "Technosys", "Aamber Pegasus with RAM expansion unit", MACHINE_NO_SOUND_HW ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1981, pegasus, 0, 0, pegasus, pegasus, pegasus_state, pegasus, "Technosys", "Aamber Pegasus", MACHINE_NO_SOUND_HW ) +COMP( 1981, pegasusm, pegasus, 0, pegasusm, pegasus, pegasus_state, pegasus, "Technosys", "Aamber Pegasus with RAM expansion unit", MACHINE_NO_SOUND_HW ) diff --git a/src/mame/drivers/pencil2.cpp b/src/mame/drivers/pencil2.cpp index de259bedd5a..27ec9d2f41a 100644 --- a/src/mame/drivers/pencil2.cpp +++ b/src/mame/drivers/pencil2.cpp @@ -303,7 +303,7 @@ void pencil2_state::machine_start() m_maincpu->space(AS_PROGRAM).install_read_handler(0x8000, 0xffff, read8_delegate(FUNC(generic_slot_device::read_rom),(generic_slot_device*)m_cart)); } -static MACHINE_CONFIG_START( pencil2, pencil2_state ) +static MACHINE_CONFIG_START( pencil2 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_10_738635MHz/3) MCFG_CPU_PROGRAM_MAP(pencil2_mem) @@ -348,5 +348,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ -COMP( 1983, pencil2, 0, 0, pencil2, pencil2, driver_device, 0, "Hanimex", "Pencil II", 0 ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1983, pencil2, 0, 0, pencil2, pencil2, pencil2_state, 0, "Hanimex", "Pencil II", 0 ) diff --git a/src/mame/drivers/pengadvb.cpp b/src/mame/drivers/pengadvb.cpp index 5bf0abc267c..0722e45bd1e 100644 --- a/src/mame/drivers/pengadvb.cpp +++ b/src/mame/drivers/pengadvb.cpp @@ -196,7 +196,7 @@ WRITE8_MEMBER(pengadvb_state::pengadvb_ppi_port_c_w) ***************************************************************************/ -static MACHINE_CONFIG_START( pengadvb, pengadvb_state ) +static MACHINE_CONFIG_START( pengadvb ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_10_738635MHz/3) diff --git a/src/mame/drivers/pengo.cpp b/src/mame/drivers/pengo.cpp index bfdf991f4eb..749f3e10601 100644 --- a/src/mame/drivers/pengo.cpp +++ b/src/mame/drivers/pengo.cpp @@ -372,7 +372,7 @@ INTERRUPT_GEN_MEMBER(pengo_state::vblank_irq) } -static MACHINE_CONFIG_START( pengo, pengo_state ) +static MACHINE_CONFIG_START( pengo ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, MASTER_CLOCK/6) @@ -733,11 +733,11 @@ DRIVER_INIT_MEMBER(pengo_state,penta) * *************************************/ -GAME( 1982, pengo, 0, pengoe, pengo, driver_device, 0, ROT90, "Sega", "Pengo (set 1 rev c)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, pengo2, pengo, pengoe, pengo, driver_device, 0, ROT90, "Sega", "Pengo (set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, pengo2u, pengo, pengou, pengo, driver_device, 0, ROT90, "Sega", "Pengo (set 2 not encrypted)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, pengo3u, pengo, pengou, pengo, driver_device, 0, ROT90, "Sega", "Pengo (set 3 not encrypted)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, pengo4, pengo, pengoe, pengo, driver_device, 0, ROT90, "Sega", "Pengo (set 4)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, pengob, pengo, pengo, pengo, pengo_state, penta, ROT90, "bootleg", "Pengo (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, penta, pengo, pengo, pengo, pengo_state, penta, ROT90, "bootleg (Grinbee Shouji)", "Penta", MACHINE_SUPPORTS_SAVE ) // Grinbee Shouji was a subsidiary of Orca -GAME( 1983, jrpacmbl, jrpacman, jrpacmbl, jrpacmbl, driver_device, 0, ROT90, "bootleg", "Jr. Pac-Man (Pengo hardware)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1982, pengo, 0, pengoe, pengo, pengo_state, 0, ROT90, "Sega", "Pengo (set 1 rev c)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, pengo2, pengo, pengoe, pengo, pengo_state, 0, ROT90, "Sega", "Pengo (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, pengo2u, pengo, pengou, pengo, pengo_state, 0, ROT90, "Sega", "Pengo (set 2 not encrypted)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, pengo3u, pengo, pengou, pengo, pengo_state, 0, ROT90, "Sega", "Pengo (set 3 not encrypted)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, pengo4, pengo, pengoe, pengo, pengo_state, 0, ROT90, "Sega", "Pengo (set 4)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, pengob, pengo, pengo, pengo, pengo_state, penta, ROT90, "bootleg", "Pengo (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, penta, pengo, pengo, pengo, pengo_state, penta, ROT90, "bootleg (Grinbee Shouji)", "Penta", MACHINE_SUPPORTS_SAVE ) // Grinbee Shouji was a subsidiary of Orca +GAME( 1983, jrpacmbl, jrpacman, jrpacmbl, jrpacmbl, pengo_state, 0, ROT90, "bootleg", "Jr. Pac-Man (Pengo hardware)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/pentagon.cpp b/src/mame/drivers/pentagon.cpp index 1056a8f4a44..8cfe7c0581e 100644 --- a/src/mame/drivers/pentagon.cpp +++ b/src/mame/drivers/pentagon.cpp @@ -241,7 +241,7 @@ GFXDECODE_END -static MACHINE_CONFIG_DERIVED_CLASS( pentagon, spectrum_128, pentagon_state ) +static MACHINE_CONFIG_DERIVED( pentagon, spectrum_128 ) MCFG_CPU_MODIFY("maincpu") MCFG_CPU_CLOCK(XTAL_14MHz / 4) MCFG_CPU_IO_MAP(pentagon_io) @@ -347,6 +347,6 @@ ROM_START(pent1024) ROMX_LOAD( "gluk51.rom", 0x018000, 0x4000, CRC(ea8c760b) SHA1(adaab28066ca46fbcdcf084c3b53d5a1b82d94a9), ROM_BIOS(9)) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ -COMP( 1989, pentagon, spec128, 0, pentagon, spec_plus, driver_device, 0, "", "Pentagon", 0) -COMP( 19??, pent1024, spec128, 0, pent1024, spec_plus, driver_device, 0, "", "Pentagon 1024", 0) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1989, pentagon, spec128, 0, pentagon, spec_plus, pentagon_state, 0, "", "Pentagon", 0 ) +COMP( 19??, pent1024, spec128, 0, pent1024, spec_plus, pentagon_state, 0, "", "Pentagon 1024", 0 ) diff --git a/src/mame/drivers/peoplepc.cpp b/src/mame/drivers/peoplepc.cpp index bf74ab4926b..bde369f0dca 100644 --- a/src/mame/drivers/peoplepc.cpp +++ b/src/mame/drivers/peoplepc.cpp @@ -233,7 +233,7 @@ static DEVICE_INPUT_DEFAULTS_START(keyboard) DEVICE_INPUT_DEFAULTS( "RS232_STOPBITS", 0xff, RS232_STOPBITS_1 ) DEVICE_INPUT_DEFAULTS_END -static MACHINE_CONFIG_START( olypeopl, peoplepc_state) +static MACHINE_CONFIG_START( olypeopl ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8086, XTAL_14_7456MHz/3) MCFG_CPU_PROGRAM_MAP(peoplepc_map) @@ -300,4 +300,4 @@ ROM_START( olypeopl ) ROMX_LOAD( "u01277g3.bin", 0x00001, 0x1000, CRC(3295691c) SHA1(7d7ade62117d11656b8dd86cf0703127616d55bc), ROM_SKIP(1)|ROM_BIOS(2)) ROM_END -COMP( 198?, olypeopl, 0, 0, olypeopl, 0, driver_device, 0, "Olympia", "People PC", MACHINE_NOT_WORKING|MACHINE_NO_SOUND) +COMP( 198?, olypeopl, 0, 0, olypeopl, 0, peoplepc_state, 0, "Olympia", "People PC", MACHINE_NOT_WORKING|MACHINE_NO_SOUND) diff --git a/src/mame/drivers/peplus.cpp b/src/mame/drivers/peplus.cpp index 44030c3c6a3..38d4a5273ee 100644 --- a/src/mame/drivers/peplus.cpp +++ b/src/mame/drivers/peplus.cpp @@ -1325,7 +1325,7 @@ void peplus_state::machine_reset() * Machine Driver * *************************/ -static MACHINE_CONFIG_START( peplus, peplus_state ) +static MACHINE_CONFIG_START( peplus ) // basic machine hardware MCFG_CPU_ADD("maincpu", I80C32, XTAL_20MHz/2) /* 10MHz */ MCFG_CPU_PROGRAM_MAP(peplus_map) diff --git a/src/mame/drivers/pes.cpp b/src/mame/drivers/pes.cpp index d5d7cb0ba32..35bfcc1c523 100644 --- a/src/mame/drivers/pes.cpp +++ b/src/mame/drivers/pes.cpp @@ -69,7 +69,7 @@ Address map: /* Devices */ -WRITE8_MEMBER(pes_state::pes_kbd_input) +void pes_state::pes_kbd_input(u8 data) { #ifdef DEBUG_FIFO fprintf(stderr,"keyboard input: %c, ", data); @@ -245,7 +245,7 @@ INPUT_PORTS_END /****************************************************************************** Machine Drivers ******************************************************************************/ -static MACHINE_CONFIG_START( pes, pes_state ) +static MACHINE_CONFIG_START( pes ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I80C31, CPU_CLOCK) MCFG_CPU_PROGRAM_MAP(i80c31_mem) @@ -259,7 +259,7 @@ static MACHINE_CONFIG_START( pes, pes_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0) - MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(pes_state, pes_kbd_input)) + MCFG_GENERIC_TERMINAL_KEYBOARD_CB(PUT(pes_state, pes_kbd_input)) MACHINE_CONFIG_END /****************************************************************************** @@ -278,5 +278,5 @@ ROM_END Drivers ******************************************************************************/ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1987, pes, 0, 0, pes, pes, driver_device, 0, "Pacific Educational Systems", "VPU-01 Speech box", MACHINE_NOT_WORKING ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1987, pes, 0, 0, pes, pes, pes_state, 0, "Pacific Educational Systems", "VPU-01 Speech box", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/pet.cpp b/src/mame/drivers/pet.cpp index c61110972ff..c267c7b6172 100644 --- a/src/mame/drivers/pet.cpp +++ b/src/mame/drivers/pet.cpp @@ -1726,7 +1726,7 @@ MACHINE_CONFIG_END // MACHINE_CONFIG( pet ) //------------------------------------------------- -static MACHINE_CONFIG_START( pet, pet_state ) +static MACHINE_CONFIG_START( pet ) MCFG_MACHINE_START_OVERRIDE(pet_state, pet2001) MCFG_MACHINE_RESET_OVERRIDE(pet_state, pet) @@ -1914,7 +1914,7 @@ MACHINE_CONFIG_END // MACHINE_CONFIG( pet2001b ) //------------------------------------------------- -static MACHINE_CONFIG_DERIVED_CLASS( pet2001b, pet2001n, pet2001b_state ) +static MACHINE_CONFIG_DERIVED( pet2001b, pet2001n ) MCFG_DEVICE_MODIFY(M6520_1_TAG) MCFG_PIA_READPB_HANDLER(READ8(pet2001b_state, pia1_pb_r)) MACHINE_CONFIG_END @@ -2150,7 +2150,7 @@ MACHINE_CONFIG_END // MACHINE_CONFIG( pet80 ) //------------------------------------------------- -static MACHINE_CONFIG_START( pet80, pet80_state ) +static MACHINE_CONFIG_START( pet80 ) MCFG_MACHINE_START_OVERRIDE(pet80_state, pet80) MCFG_MACHINE_RESET_OVERRIDE(pet80_state, pet80) @@ -2257,7 +2257,7 @@ MACHINE_CONFIG_END // MACHINE_CONFIG( superpet ) //------------------------------------------------- -static MACHINE_CONFIG_DERIVED_CLASS( superpet, pet8032, superpet_state ) +static MACHINE_CONFIG_DERIVED( superpet, pet8032 ) MCFG_DEVICE_REMOVE(PET_EXPANSION_SLOT_TAG) MCFG_PET_EXPANSION_SLOT_ADD(PET_EXPANSION_SLOT_TAG, XTAL_16MHz/16, pet_expansion_cards, "superpet") MCFG_PET_EXPANSION_SLOT_DMA_CALLBACKS(READ8(pet_state, read), WRITE8(pet_state, write)) @@ -2270,7 +2270,7 @@ MACHINE_CONFIG_END // MACHINE_CONFIG( cbm8096 ) //------------------------------------------------- -static MACHINE_CONFIG_DERIVED_CLASS( cbm8096, pet80, cbm8096_state ) +static MACHINE_CONFIG_DERIVED( cbm8096, pet80 ) MCFG_DEVICE_REMOVE(PET_EXPANSION_SLOT_TAG) MCFG_PET_EXPANSION_SLOT_ADD(PET_EXPANSION_SLOT_TAG, XTAL_16MHz/16, pet_expansion_cards, "64k") MCFG_PET_EXPANSION_SLOT_DMA_CALLBACKS(READ8(pet_state, read), WRITE8(pet_state, write)) @@ -2286,7 +2286,7 @@ MACHINE_CONFIG_END // MACHINE_CONFIG( cbm8296 ) //------------------------------------------------- -static MACHINE_CONFIG_DERIVED_CLASS( cbm8296, pet80, cbm8296_state ) +static MACHINE_CONFIG_DERIVED( cbm8296, pet80 ) MCFG_MACHINE_START_OVERRIDE(cbm8296_state, cbm8296) MCFG_MACHINE_RESET_OVERRIDE(cbm8296_state, cbm8296) @@ -2837,39 +2837,39 @@ ROM_END // SYSTEM DRIVERS //************************************************************************** -// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS -COMP( 1977, pet2001, 0, 0, pet2001, pet, driver_device, 0, "Commodore Business Machines", "PET 2001-4", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) -COMP( 1977, pet20018, pet2001, 0, pet20018, pet, driver_device, 0, "Commodore Business Machines", "PET 2001-8", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) -COMP( 1979, pet2001n, 0, 0, pet2001n8, pet, driver_device, 0, "Commodore Business Machines", "PET 2001-N8", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) -COMP( 1979, pet2001n16, pet2001n, 0, pet2001n16, pet, driver_device, 0, "Commodore Business Machines", "PET 2001-N16", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) -COMP( 1979, pet2001n32, pet2001n, 0, pet2001n32, pet, driver_device, 0, "Commodore Business Machines", "PET 2001-N32", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) -COMP( 1979, cbm3008, pet2001n, 0, cbm3008, pet, driver_device, 0, "Commodore Business Machines", "CBM 3008", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) -COMP( 1979, cbm3016, pet2001n, 0, cbm3016, pet, driver_device, 0, "Commodore Business Machines", "CBM 3016", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) -COMP( 1979, cbm3032, pet2001n, 0, cbm3032, pet, driver_device, 0, "Commodore Business Machines", "CBM 3032", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) -COMP( 1979, pet2001b, 0, 0, pet2001b8, petb, driver_device, 0, "Commodore Business Machines", "PET 2001-B8", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) -COMP( 1979, pet2001b16, pet2001b, 0, pet2001b16, petb, driver_device, 0, "Commodore Business Machines", "PET 2001-B16", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) -COMP( 1979, pet2001b32, pet2001b, 0, pet2001b32, petb, driver_device, 0, "Commodore Business Machines", "PET 2001-B32", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) -COMP( 1979, cbm3032b, pet2001b, 0, cbm3032b, petb, driver_device, 0, "Commodore Business Machines", "CBM 3032B", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) -COMP( 1980, pet4016, 0, 0, pet4016, pet, driver_device, 0, "Commodore Business Machines", "PET 4016", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) -COMP( 1980, pet4032, pet4016, 0, pet4032, pet, driver_device, 0, "Commodore Business Machines", "PET 4032", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) -COMP( 1980, pet4032f, pet4016, 0, pet4032f, pet, driver_device, 0, "Commodore Business Machines", "PET 4032 (Fat 40)", MACHINE_SUPPORTS_SAVE ) -COMP( 1980, cbm4016, pet4016, 0, cbm4016, pet, driver_device, 0, "Commodore Business Machines", "CBM 4016", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) -COMP( 1980, cbm4032, pet4016, 0, cbm4032, pet, driver_device, 0, "Commodore Business Machines", "CBM 4032", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) -COMP( 1980, cbm4032f, pet4016, 0, cbm4032f, pet, driver_device, 0, "Commodore Business Machines", "CBM 4032 (Fat 40)", MACHINE_SUPPORTS_SAVE ) -COMP( 1980, pet4032b, 0, 0, pet4032b, petb, driver_device, 0, "Commodore Business Machines", "PET 4032B", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) -COMP( 1980, cbm4032b, pet4032b, 0, cbm4032b, petb, driver_device, 0, "Commodore Business Machines", "CBM 4032B", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) -COMP( 1980, pet8032, 0, 0, pet8032, petb, driver_device, 0, "Commodore Business Machines", "PET 8032", MACHINE_SUPPORTS_SAVE ) -COMP( 1981, cbm8032, pet8032, 0, pet8032, petb, driver_device, 0, "Commodore Business Machines", "CBM 8032", MACHINE_SUPPORTS_SAVE ) -COMP( 1981, cbm8032_de, pet8032, 0, pet8032, petb_de, driver_device, 0, "Commodore Business Machines", "CBM 8032 (Germany)", MACHINE_SUPPORTS_SAVE ) -COMP( 1981, cbm8032_fr, pet8032, 0, pet8032, petb_fr, driver_device, 0, "Commodore Business Machines", "CBM 8032 (France)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) -COMP( 1981, cbm8032_se, pet8032, 0, pet8032, petb_se, driver_device, 0, "Commodore Business Machines", "CBM 8032 (Sweden/Finland)", MACHINE_SUPPORTS_SAVE ) -COMP( 1981, superpet, pet8032, 0, superpet, petb, driver_device, 0, "Commodore Business Machines", "SuperPET SP-9000", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) -COMP( 1981, mmf9000, pet8032, 0, superpet, petb, driver_device, 0, "Commodore Business Machines", "MicroMainFrame 9000", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) -COMP( 1981, mmf9000_se, pet8032, 0, superpet, petb_se, driver_device, 0, "Commodore Business Machines", "MicroMainFrame 9000 (Sweden/Finland)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) -COMP( 1981, cbm8096, pet8032, 0, cbm8096, petb, driver_device, 0, "Commodore Business Machines", "CBM 8096", MACHINE_SUPPORTS_SAVE ) -COMP( 1984, cbm8296, 0, 0, cbm8296, petb, driver_device, 0, "Commodore Business Machines", "CBM 8296", MACHINE_SUPPORTS_SAVE ) -COMP( 1984, cbm8296ed, cbm8296, 0, cbm8296d, petb, driver_device, 0, "Commodore Business Machines", "CBM 8296 ExecuDesk", MACHINE_SUPPORTS_SAVE ) -COMP( 1984, cbm8296d, cbm8296, 0, cbm8296d, petb, driver_device, 0, "Commodore Business Machines", "CBM 8296-D", MACHINE_SUPPORTS_SAVE ) -COMP( 1984, cbm8296d_de,cbm8296, 0, cbm8296d, petb_de, driver_device, 0, "Commodore Business Machines", "CBM 8296-D (Germany)", MACHINE_SUPPORTS_SAVE ) -COMP( 1984, cbm8296gd, cbm8296, 0, cbm8296d, petb, driver_device, 0, "Commodore Business Machines", "CBM 8296GD", MACHINE_SUPPORTS_SAVE ) -COMP( 1984, cbm8296dgv_de,cbm8296, 0, cbm8296d, petb, driver_device, 0, "Commodore Business Machines", "CBM 8296-D GV? (Germany)", MACHINE_SUPPORTS_SAVE ) +// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS +COMP( 1977, pet2001, 0, 0, pet2001, pet, pet_state, 0, "Commodore Business Machines", "PET 2001-4", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) +COMP( 1977, pet20018, pet2001, 0, pet20018, pet, pet_state, 0, "Commodore Business Machines", "PET 2001-8", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) +COMP( 1979, pet2001n, 0, 0, pet2001n8, pet, pet_state, 0, "Commodore Business Machines", "PET 2001-N8", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) +COMP( 1979, pet2001n16, pet2001n, 0, pet2001n16, pet, pet_state, 0, "Commodore Business Machines", "PET 2001-N16", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) +COMP( 1979, pet2001n32, pet2001n, 0, pet2001n32, pet, pet_state, 0, "Commodore Business Machines", "PET 2001-N32", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) +COMP( 1979, cbm3008, pet2001n, 0, cbm3008, pet, pet_state, 0, "Commodore Business Machines", "CBM 3008", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) +COMP( 1979, cbm3016, pet2001n, 0, cbm3016, pet, pet_state, 0, "Commodore Business Machines", "CBM 3016", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) +COMP( 1979, cbm3032, pet2001n, 0, cbm3032, pet, pet_state, 0, "Commodore Business Machines", "CBM 3032", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) +COMP( 1979, pet2001b, 0, 0, pet2001b8, petb, pet2001b_state, 0, "Commodore Business Machines", "PET 2001-B8", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) +COMP( 1979, pet2001b16, pet2001b, 0, pet2001b16, petb, pet2001b_state, 0, "Commodore Business Machines", "PET 2001-B16", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) +COMP( 1979, pet2001b32, pet2001b, 0, pet2001b32, petb, pet2001b_state, 0, "Commodore Business Machines", "PET 2001-B32", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) +COMP( 1979, cbm3032b, pet2001b, 0, cbm3032b, petb, pet2001b_state, 0, "Commodore Business Machines", "CBM 3032B", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) +COMP( 1980, pet4016, 0, 0, pet4016, pet, pet2001b_state, 0, "Commodore Business Machines", "PET 4016", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) +COMP( 1980, pet4032, pet4016, 0, pet4032, pet, pet2001b_state, 0, "Commodore Business Machines", "PET 4032", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) +COMP( 1980, pet4032f, pet4016, 0, pet4032f, pet, pet2001b_state, 0, "Commodore Business Machines", "PET 4032 (Fat 40)", MACHINE_SUPPORTS_SAVE ) +COMP( 1980, cbm4016, pet4016, 0, cbm4016, pet, pet_state, 0, "Commodore Business Machines", "CBM 4016", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) +COMP( 1980, cbm4032, pet4016, 0, cbm4032, pet, pet_state, 0, "Commodore Business Machines", "CBM 4032", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) +COMP( 1980, cbm4032f, pet4016, 0, cbm4032f, pet, pet_state, 0, "Commodore Business Machines", "CBM 4032 (Fat 40)", MACHINE_SUPPORTS_SAVE ) +COMP( 1980, pet4032b, 0, 0, pet4032b, petb, pet2001b_state, 0, "Commodore Business Machines", "PET 4032B", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) +COMP( 1980, cbm4032b, pet4032b, 0, cbm4032b, petb, pet_state, 0, "Commodore Business Machines", "CBM 4032B", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) +COMP( 1980, pet8032, 0, 0, pet8032, petb, pet80_state, 0, "Commodore Business Machines", "PET 8032", MACHINE_SUPPORTS_SAVE ) +COMP( 1981, cbm8032, pet8032, 0, pet8032, petb, pet80_state, 0, "Commodore Business Machines", "CBM 8032", MACHINE_SUPPORTS_SAVE ) +COMP( 1981, cbm8032_de, pet8032, 0, pet8032, petb_de, pet80_state, 0, "Commodore Business Machines", "CBM 8032 (Germany)", MACHINE_SUPPORTS_SAVE ) +COMP( 1981, cbm8032_fr, pet8032, 0, pet8032, petb_fr, pet80_state, 0, "Commodore Business Machines", "CBM 8032 (France)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +COMP( 1981, cbm8032_se, pet8032, 0, pet8032, petb_se, pet80_state, 0, "Commodore Business Machines", "CBM 8032 (Sweden/Finland)", MACHINE_SUPPORTS_SAVE ) +COMP( 1981, superpet, pet8032, 0, superpet, petb, superpet_state, 0, "Commodore Business Machines", "SuperPET SP-9000", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +COMP( 1981, mmf9000, pet8032, 0, superpet, petb, superpet_state, 0, "Commodore Business Machines", "MicroMainFrame 9000", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +COMP( 1981, mmf9000_se, pet8032, 0, superpet, petb_se, superpet_state, 0, "Commodore Business Machines", "MicroMainFrame 9000 (Sweden/Finland)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +COMP( 1981, cbm8096, pet8032, 0, cbm8096, petb, cbm8096_state, 0, "Commodore Business Machines", "CBM 8096", MACHINE_SUPPORTS_SAVE ) +COMP( 1984, cbm8296, 0, 0, cbm8296, petb, cbm8296_state, 0, "Commodore Business Machines", "CBM 8296", MACHINE_SUPPORTS_SAVE ) +COMP( 1984, cbm8296ed, cbm8296, 0, cbm8296d, petb, cbm8296_state, 0, "Commodore Business Machines", "CBM 8296 ExecuDesk", MACHINE_SUPPORTS_SAVE ) +COMP( 1984, cbm8296d, cbm8296, 0, cbm8296d, petb, cbm8296_state, 0, "Commodore Business Machines", "CBM 8296-D", MACHINE_SUPPORTS_SAVE ) +COMP( 1984, cbm8296d_de, cbm8296, 0, cbm8296d, petb_de, cbm8296_state, 0, "Commodore Business Machines", "CBM 8296-D (Germany)", MACHINE_SUPPORTS_SAVE ) +COMP( 1984, cbm8296gd, cbm8296, 0, cbm8296d, petb, cbm8296_state, 0, "Commodore Business Machines", "CBM 8296GD", MACHINE_SUPPORTS_SAVE ) +COMP( 1984, cbm8296dgv_de,cbm8296, 0, cbm8296d, petb, cbm8296_state, 0, "Commodore Business Machines", "CBM 8296-D GV? (Germany)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/peyper.cpp b/src/mame/drivers/peyper.cpp index 97dc88a6624..7b74a445020 100644 --- a/src/mame/drivers/peyper.cpp +++ b/src/mame/drivers/peyper.cpp @@ -578,7 +578,7 @@ void peyper_state::machine_reset() { } -static MACHINE_CONFIG_START( peyper, peyper_state ) +static MACHINE_CONFIG_START( peyper ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 2500000) MCFG_CPU_PROGRAM_MAP(peyper_map) @@ -862,16 +862,16 @@ ROM_START(lancelot) ROM_LOAD("snd_u5.bin", 0x00000, 0x20000, CRC(bf141441) SHA1(630b852bb3bba0fcdae13ae548b1e9810bc64d7d)) ROM_END -GAME( 1985, odin, 0, peyper, odin_dlx, peyper_state, odin, ROT0, "Peyper", "Odin", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) -GAME( 1985, odin_dlx, 0, peyper, odin_dlx, peyper_state, odin, ROT0, "Sonic", "Odin De Luxe", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) -GAME( 1986, solarwap, 0, peyper, solarwap, peyper_state, peyper, ROT0, "Sonic", "Solar Wars (Sonic)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) -GAME( 1986, gamatros, 0, peyper, solarwap, peyper_state, peyper, ROT0, "Sonic", "Gamatron (Sonic)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1987, poleposn, 0, peyper, poleposn, peyper_state, peyper, ROT0, "Sonic", "Pole Position (Sonic)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) -GAME( 1987, sonstwar, 0, peyper, sonstwar, peyper_state, peyper, ROT0, "Sonic", "Star Wars (Sonic, set 1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) -GAME( 1987, sonstwr2, sonstwar, peyper, sonstwar, peyper_state, peyper, ROT0, "Sonic", "Star Wars (Sonic, set 2)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) -GAME( 1987, wolfman, 0, peyper, wolfman, peyper_state, wolfman, ROT0, "Peyper", "Wolf Man", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) -GAME( 1986, nemesisp, 0, peyper, wolfman, peyper_state, wolfman, ROT0, "Peyper", "Nemesis", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) -GAME( 1987, odisea, 0, peyper, odisea, peyper_state, wolfman, ROT0, "Peyper", "Odisea Paris-Dakar", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) -GAME( 1988, hangonp, 0, peyper, sonstwar, peyper_state, peyper, ROT0, "Sonic", "Hang-On (Sonic)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) // inputs to be checked -GAME( 1985, ator, 0, peyper, sonstwar, peyper_state, peyper, ROT0, "Video Dens", "Ator", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) // initial program ROM missing; no manual found -GAME( 1994, lancelot, 0, peyper, sonstwar, driver_device,0, ROT0, "Peyper", "Sir Lancelot", MACHINE_IS_SKELETON_MECHANICAL) // different hardware (see top of file) +GAME( 1985, odin, 0, peyper, odin_dlx, peyper_state, odin, ROT0, "Peyper", "Odin", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME( 1985, odin_dlx, 0, peyper, odin_dlx, peyper_state, odin, ROT0, "Sonic", "Odin De Luxe", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME( 1986, solarwap, 0, peyper, solarwap, peyper_state, peyper, ROT0, "Sonic", "Solar Wars (Sonic)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME( 1986, gamatros, 0, peyper, solarwap, peyper_state, peyper, ROT0, "Sonic", "Gamatron (Sonic)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1987, poleposn, 0, peyper, poleposn, peyper_state, peyper, ROT0, "Sonic", "Pole Position (Sonic)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME( 1987, sonstwar, 0, peyper, sonstwar, peyper_state, peyper, ROT0, "Sonic", "Star Wars (Sonic, set 1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME( 1987, sonstwr2, sonstwar, peyper, sonstwar, peyper_state, peyper, ROT0, "Sonic", "Star Wars (Sonic, set 2)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME( 1987, wolfman, 0, peyper, wolfman, peyper_state, wolfman, ROT0, "Peyper", "Wolf Man", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME( 1986, nemesisp, 0, peyper, wolfman, peyper_state, wolfman, ROT0, "Peyper", "Nemesis", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME( 1987, odisea, 0, peyper, odisea, peyper_state, wolfman, ROT0, "Peyper", "Odisea Paris-Dakar", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME( 1988, hangonp, 0, peyper, sonstwar, peyper_state, peyper, ROT0, "Sonic", "Hang-On (Sonic)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) // inputs to be checked +GAME( 1985, ator, 0, peyper, sonstwar, peyper_state, peyper, ROT0, "Video Dens", "Ator", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) // initial program ROM missing; no manual found +GAME( 1994, lancelot, 0, peyper, sonstwar, peyper_state, 0, ROT0, "Peyper", "Sir Lancelot", MACHINE_IS_SKELETON_MECHANICAL) // different hardware (see top of file) diff --git a/src/mame/drivers/pg685.cpp b/src/mame/drivers/pg685.cpp index 7a6cc974b42..46d3559ebb3 100644 --- a/src/mame/drivers/pg685.cpp +++ b/src/mame/drivers/pg685.cpp @@ -136,7 +136,7 @@ private: optional_shared_ptr m_vram; optional_shared_ptr m_vram16; optional_shared_ptr m_fontram; - required_device m_fdc; + required_device m_fdc; required_device m_floppy0; optional_device m_floppy1; }; @@ -156,7 +156,7 @@ static ADDRESS_MAP_START(pg675_mem, AS_PROGRAM, 8, pg685_state) AM_RANGE(0xf9f06, 0xf9f07) AM_DEVREADWRITE("mainpic", pic8259_device, read, write) AM_RANGE(0xf9f08, 0xf9f08) AM_DEVREADWRITE("mainuart", i8251_device, data_r, data_w) AM_RANGE(0xf9f09, 0xf9f09) AM_DEVREADWRITE("mainuart", i8251_device, status_r, control_w) - AM_RANGE(0xf9f20, 0xf9f23) AM_DEVREADWRITE("fdc", fd1797_t, read, write) + AM_RANGE(0xf9f20, 0xf9f23) AM_DEVREADWRITE("fdc", fd1797_device, read, write) AM_RANGE(0xf9f24, 0xf9f24) AM_READWRITE(f9f24_r, f9f24_w) AM_RANGE(0xf9f28, 0xf9f2b) AM_DEVREADWRITE("modppi1", i8255_device, read, write) AM_RANGE(0xf9f2c, 0xf9f2f) AM_DEVREADWRITE("modppi2", i8255_device, read, write) @@ -192,7 +192,7 @@ static ADDRESS_MAP_START(pg685oua12_mem, AS_PROGRAM, 16, pg685_state) AM_RANGE(0xf9f06, 0xf9f07) AM_DEVREADWRITE8("mainpic", pic8259_device, read, write, 0xffff) AM_RANGE(0xf9f08, 0xf9f09) AM_DEVREADWRITE8("mainuart", i8251_device, data_r, data_w, 0x00ff) AM_RANGE(0xf9f08, 0xf9f09) AM_DEVREADWRITE8("mainuart", i8251_device, status_r, control_w, 0xff00) - AM_RANGE(0xf9f20, 0xf9f23) AM_DEVREADWRITE8("fdc", fd1797_t, read, write, 0xffff) + AM_RANGE(0xf9f20, 0xf9f23) AM_DEVREADWRITE8("fdc", fd1797_device, read, write, 0xffff) AM_RANGE(0xf9f24, 0xf9f25) AM_READWRITE8(f9f24_r, f9f24_w, 0x00ff) AM_RANGE(0xf9f28, 0xf9f2b) AM_DEVREADWRITE8("modppi1", i8255_device, read, write, 0xffff) AM_RANGE(0xf9f2c, 0xf9f2f) AM_DEVREADWRITE8("modppi2", i8255_device, read, write, 0xffff) @@ -401,7 +401,7 @@ static MACHINE_CONFIG_FRAGMENT(pg685_module) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( pg675, pg685_state ) +static MACHINE_CONFIG_START( pg675 ) // main cpu MCFG_CPU_ADD("maincpu", I8088, XTAL_15MHz / 3) MCFG_CPU_PROGRAM_MAP(pg675_mem) @@ -448,7 +448,7 @@ static MACHINE_CONFIG_START( pg675, pg685_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( pg685, pg685_state ) +static MACHINE_CONFIG_START( pg685 ) // main cpu MCFG_CPU_ADD("maincpu", V20, XTAL_15MHz / 3) MCFG_CPU_PROGRAM_MAP(pg685_mem) @@ -497,7 +497,7 @@ static MACHINE_CONFIG_START( pg685, pg685_state ) MCFG_WD2010_OUT_INTRQ_CB(DEVWRITELINE("mainpic", pic8259_device, ir3_w)) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( pg685oua12, pg685_state ) +static MACHINE_CONFIG_START( pg685oua12 ) // main cpu MCFG_CPU_ADD("maincpu", I80286, XTAL_20MHz / 2) MCFG_CPU_PROGRAM_MAP(pg685oua12_mem) @@ -573,7 +573,7 @@ ROM_END //************************************************************************** // ROM DEFINITIONS //************************************************************************** -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 198?, pg675, 0, 0, pg675, pg685, driver_device, 0, "Siemens", "Simatic PG675", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -COMP( 198?, pg685, 0, 0, pg685, pg685, driver_device, 0, "Siemens", "Simatic PG685 OUA11", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -COMP( 198?, pg685oua12, pg685, 0, pg685oua12, pg685, driver_device, 0, "Siemens", "Simatic PG685 OUA12", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 198?, pg675, 0, 0, pg675, pg685, pg685_state, 0, "Siemens", "Simatic PG675", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +COMP( 198?, pg685, 0, 0, pg685, pg685, pg685_state, 0, "Siemens", "Simatic PG685 OUA11", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +COMP( 198?, pg685oua12, pg685, 0, pg685oua12, pg685, pg685_state, 0, "Siemens", "Simatic PG685 OUA12", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/pgm.cpp b/src/mame/drivers/pgm.cpp index 41ca6c8b6af..d79d04b828a 100644 --- a/src/mame/drivers/pgm.cpp +++ b/src/mame/drivers/pgm.cpp @@ -549,7 +549,7 @@ MACHINE_CONFIG_FRAGMENT( pgmbase ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 5.0) MACHINE_CONFIG_END -MACHINE_CONFIG_START( pgm, pgm_state ) +MACHINE_CONFIG_START( pgm ) MCFG_FRAGMENT_ADD(pgmbase) MACHINE_CONFIG_END diff --git a/src/mame/drivers/pgm2.cpp b/src/mame/drivers/pgm2.cpp index 46c5034c44b..a45cf7008be 100644 --- a/src/mame/drivers/pgm2.cpp +++ b/src/mame/drivers/pgm2.cpp @@ -198,7 +198,7 @@ void pgm2_state::pgm_create_dummy_internal_arm_region() -static MACHINE_CONFIG_START( pgm2, pgm2_state ) +static MACHINE_CONFIG_START( pgm2 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", ARM9, 20000000) // ?? ARM baesd CPU, has internal ROM. diff --git a/src/mame/drivers/pgm3.cpp b/src/mame/drivers/pgm3.cpp index 9f4ad96cca5..48e102594a0 100644 --- a/src/mame/drivers/pgm3.cpp +++ b/src/mame/drivers/pgm3.cpp @@ -97,7 +97,7 @@ void pgm3_state::machine_reset() { } -static MACHINE_CONFIG_START( pgm3, pgm3_state ) +static MACHINE_CONFIG_START( pgm3 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", ARM9, 800000000) // wrong, see notes at top of driver diff --git a/src/mame/drivers/phc25.cpp b/src/mame/drivers/phc25.cpp index 4bf9062497d..37881f0ede4 100644 --- a/src/mame/drivers/phc25.cpp +++ b/src/mame/drivers/phc25.cpp @@ -306,7 +306,7 @@ void phc25_state::video_start() /* Machine Driver */ -static MACHINE_CONFIG_START( phc25, phc25_state ) +static MACHINE_CONFIG_START( phc25 ) /* basic machine hardware */ MCFG_CPU_ADD(Z80_TAG, Z80, XTAL_4MHz) MCFG_CPU_PROGRAM_MAP(phc25_mem) @@ -348,7 +348,7 @@ static MACHINE_CONFIG_DERIVED( pal, phc25 ) MCFG_MC6847_FSYNC_CALLBACK(WRITELINE(phc25_state, irq_w)) MCFG_MC6847_INPUT_CALLBACK(READ8(phc25_state, video_ram_r)) MCFG_MC6847_CHARROM_CALLBACK(phc25_state, pal_char_rom_r) - MCFG_MC6847_FIXED_MODE(MC6847_MODE_GM2 | MC6847_MODE_GM1 | MC6847_MODE_INTEXT) + MCFG_MC6847_FIXED_MODE(mc6847_pal_device::MODE_GM2 | mc6847_pal_device::MODE_GM1 | mc6847_pal_device::MODE_INTEXT) // other lines not connected MACHINE_CONFIG_END @@ -360,7 +360,7 @@ static MACHINE_CONFIG_DERIVED( ntsc, phc25 ) MCFG_MC6847_FSYNC_CALLBACK(WRITELINE(phc25_state, irq_w)) MCFG_MC6847_INPUT_CALLBACK(READ8(phc25_state, video_ram_r)) MCFG_MC6847_CHARROM_CALLBACK(phc25_state, ntsc_char_rom_r) - MCFG_MC6847_FIXED_MODE(MC6847_MODE_GM2 | MC6847_MODE_GM1 | MC6847_MODE_INTEXT) + MCFG_MC6847_FIXED_MODE(mc6847_ntsc_device::MODE_GM2 | mc6847_ntsc_device::MODE_GM1 | mc6847_ntsc_device::MODE_INTEXT) // other lines not connected MACHINE_CONFIG_END @@ -389,6 +389,6 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1983, phc25, 0, 0, pal, phc25, driver_device, 0, "Sanyo", "PHC-25 (Europe)", MACHINE_NO_SOUND ) -COMP( 1983, phc25j, phc25, 0, ntsc, phc25j, driver_device, 0, "Sanyo", "PHC-25 (Japan)", MACHINE_NO_SOUND ) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 1983, phc25, 0, 0, pal, phc25, phc25_state, 0, "Sanyo", "PHC-25 (Europe)", MACHINE_NO_SOUND ) +COMP( 1983, phc25j, phc25, 0, ntsc, phc25j, phc25_state, 0, "Sanyo", "PHC-25 (Japan)", MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/phoenix.cpp b/src/mame/drivers/phoenix.cpp index 7e1f313b085..ea6793b4e3d 100644 --- a/src/mame/drivers/phoenix.cpp +++ b/src/mame/drivers/phoenix.cpp @@ -47,6 +47,7 @@ Pleiads: #include "emu.h" #include "includes/phoenix.h" +#include "audio/phoenix.h" #include "cpu/z80/z80.h" #include "cpu/i8085/i8085.h" @@ -436,7 +437,7 @@ MACHINE_RESET_MEMBER(phoenix_state,phoenix) } -static MACHINE_CONFIG_START( phoenix, phoenix_state ) +static MACHINE_CONFIG_START( phoenix ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8085A, CPU_CLOCK) /* 2.75 MHz */ @@ -505,7 +506,7 @@ MACHINE_CONFIG_END /* Same as Phoenix, but uses an AY8910 and an extra visible line (column) */ -static MACHINE_CONFIG_START( survival, phoenix_state ) +static MACHINE_CONFIG_START( survival ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8085A, CPU_CLOCK) /* 5.50 MHz */ @@ -1536,25 +1537,25 @@ DRIVER_INIT_MEMBER(phoenix_state, oneprom_coindsw) /*** Phoenix (& clones) ***/ -GAME( 1980, phoenix, 0, phoenix, phoenix, driver_device, 0, ROT90, "Amstar", "Phoenix (Amstar, set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1980, phoenix2, phoenix, phoenix, phoenix, driver_device, 0, ROT90, "Amstar", "Phoenix (Amstar, set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1980, phoenixa, phoenix, phoenix, phoenixa, driver_device, 0, ROT90, "Amstar (Centuri license)", "Phoenix (Centuri, set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1980, phoenixb, phoenix, phoenix, phoenixa, driver_device, 0, ROT90, "Amstar (Centuri license)", "Phoenix (Centuri, set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1980, phoenixt, phoenix, phoenix, phoenixt, driver_device, 0, ROT90, "Amstar (Taito license)", "Phoenix (Taito)", MACHINE_SUPPORTS_SAVE ) -GAME( 1980, phoenixj, phoenix, phoenix, phoenixt, driver_device, 0, ROT90, "Amstar (Taito Japan license)", "Phoenix (Taito Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1980, phoenix3, phoenix, phoenix, phoenix3, driver_device, 0, ROT90, "bootleg (T.P.N.)", "Phoenix (T.P.N. bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1980, phoenixdal, phoenix, phoenix, phoenixt, driver_device, 0, ROT90, "bootleg (D&L)", "Phoenix (D&L bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, phoenixc, phoenix, phoenix, phoenixt, driver_device, 0, ROT90, "bootleg? (Irecsa / G.G.I Corp)", "Phoenix (Irecsa / G.G.I Corp, set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, phoenixc2, phoenix, phoenix, phoenixt, driver_device, 0, ROT90, "bootleg? (Irecsa / G.G.I Corp)", "Phoenix (Irecsa / G.G.I Corp, set 2)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1981, phoenixc3, phoenix, phoenix, phoenixt, driver_device, 0, ROT90, "bootleg? (Irecsa / G.G.I Corp)", "Phoenix (Irecsa / G.G.I Corp, set 3)", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, phoenixc4, phoenix, phoenix, phoenixt, driver_device, 0, ROT90, "bootleg? (Irecsa / G.G.I Corp)", "Phoenix (Irecsa / G.G.I Corp, set 4)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, phoenix, 0, phoenix, phoenix, phoenix_state, 0, ROT90, "Amstar", "Phoenix (Amstar, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, phoenix2, phoenix, phoenix, phoenix, phoenix_state, 0, ROT90, "Amstar", "Phoenix (Amstar, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, phoenixa, phoenix, phoenix, phoenixa, phoenix_state, 0, ROT90, "Amstar (Centuri license)", "Phoenix (Centuri, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, phoenixb, phoenix, phoenix, phoenixa, phoenix_state, 0, ROT90, "Amstar (Centuri license)", "Phoenix (Centuri, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, phoenixt, phoenix, phoenix, phoenixt, phoenix_state, 0, ROT90, "Amstar (Taito license)", "Phoenix (Taito)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, phoenixj, phoenix, phoenix, phoenixt, phoenix_state, 0, ROT90, "Amstar (Taito Japan license)", "Phoenix (Taito Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, phoenix3, phoenix, phoenix, phoenix3, phoenix_state, 0, ROT90, "bootleg (T.P.N.)", "Phoenix (T.P.N. bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, phoenixdal, phoenix, phoenix, phoenixt, phoenix_state, 0, ROT90, "bootleg (D&L)", "Phoenix (D&L bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, phoenixc, phoenix, phoenix, phoenixt, phoenix_state, 0, ROT90, "bootleg? (Irecsa / G.G.I Corp)", "Phoenix (Irecsa / G.G.I Corp, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, phoenixc2, phoenix, phoenix, phoenixt, phoenix_state, 0, ROT90, "bootleg? (Irecsa / G.G.I Corp)", "Phoenix (Irecsa / G.G.I Corp, set 2)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1981, phoenixc3, phoenix, phoenix, phoenixt, phoenix_state, 0, ROT90, "bootleg? (Irecsa / G.G.I Corp)", "Phoenix (Irecsa / G.G.I Corp, set 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, phoenixc4, phoenix, phoenix, phoenixt, phoenix_state, 0, ROT90, "bootleg? (Irecsa / G.G.I Corp)", "Phoenix (Irecsa / G.G.I Corp, set 4)", MACHINE_SUPPORTS_SAVE ) GAME( 1981, phoenixi, phoenix, condor, condor, phoenix_state, oneprom_coindsw, ROT90, "bootleg (IDI)", "Phoenix (IDI bootleg)", MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE ) // Needs correct color PROM decode GAME( 1981, condor, phoenix, condor, condor, phoenix_state, coindsw, ROT90, "bootleg (Sidam)", "Condor (Sidam bootleg of Phoenix)", MACHINE_SUPPORTS_SAVE ) GAME( 1981, condorn, phoenix, condor, condor, phoenix_state, oneprom_coindsw, ROT90, "bootleg (S C Novar)", "Condor (S C Novar bootleg of Phoenix)", MACHINE_SUPPORTS_SAVE ) // the following 2 were common bootlegs in England & France respectively -GAME( 1980, falcon, phoenix, phoenix, phoenixt, driver_device, 0, ROT90, "bootleg", "Falcon (bootleg of Phoenix) (8085A CPU)", MACHINE_SUPPORTS_SAVE ) -GAME( 1980, vautour, phoenix, phoenix, phoenixt, driver_device, 0, ROT90, "bootleg (Jeutel)", "Vautour (bootleg of Phoenix) (8085A CPU)", MACHINE_SUPPORTS_SAVE ) -GAME( 1980, falconz, phoenix, condor, falconz, driver_device, 0, ROT90, "bootleg (Digimatic)", "Falcon (bootleg of Phoenix) (Z80 CPU)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, falcon, phoenix, phoenix, phoenixt, phoenix_state, 0, ROT90, "bootleg", "Falcon (bootleg of Phoenix) (8085A CPU)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, vautour, phoenix, phoenix, phoenixt, phoenix_state, 0, ROT90, "bootleg (Jeutel)", "Vautour (bootleg of Phoenix) (8085A CPU)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, falconz, phoenix, condor, falconz, phoenix_state, 0, ROT90, "bootleg (Digimatic)", "Falcon (bootleg of Phoenix) (Z80 CPU)", MACHINE_SUPPORTS_SAVE ) GAME( 1980, vautourz, phoenix, condor, condor, phoenix_state, coindsw, ROT90, "bootleg", "Vautour (bootleg of Phoenix) (Z80 CPU)", MACHINE_SUPPORTS_SAVE ) GAME( 1980, vautourza, phoenix, condor , phoenixt, phoenix_state, oneprom, ROT90, "bootleg (Jeutel)", "Vautour (bootleg of Phoenix) (Z80 CPU, single PROM)", MACHINE_SUPPORTS_SAVE ) @@ -1563,23 +1564,23 @@ GAME( 1980, fenix, phoenix, condor, condor, phoenix_state, oneprom_coin GAME( 1980, griffon, phoenix, condor, condor, phoenix_state, oneprom_coindsw, ROT90, "bootleg (Videotron)", "Griffon (Videotron bootleg of Phoenix)", MACHINE_SUPPORTS_SAVE ) GAME( 1980, griffono, phoenix, condor, condor, phoenix_state, oneprom_coindsw, ROT90, "bootleg (Olympia)", "Griffon (Olympia bootleg of Phoenix)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // nextfase is a Spanish bootleg -GAME( 1981, nextfase, phoenix, phoenix, nextfase, driver_device, 0, ROT90, "bootleg (Petaco S.A.)", "Next Fase (bootleg of Phoenix)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, nextfase, phoenix, phoenix, nextfase, phoenix_state, 0, ROT90, "bootleg (Petaco S.A.)", "Next Fase (bootleg of Phoenix)", MACHINE_SUPPORTS_SAVE ) // as is this -GAME( 1981, phoenixs, phoenix, phoenix, phoenix, driver_device, 0, ROT90, "bootleg (Sonic)", "Phoenix (Sonic, Spanish bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, phoenixass, phoenix, phoenix, phoenix, driver_device, 0, ROT90, "bootleg (Assa)", "Phoenix (Assa, Spanish bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1980, avefenix, phoenix, phoenix, phoenix, driver_device, 0, ROT90, "bootleg (Video Game)", "Ave Fenix (Electrogame, Spanish bootleg of Phoenix)", MACHINE_SUPPORTS_SAVE ) // Electrogame (Barcelona) made the dedicated cabinet and is likely the real manufacturer, ingame shows 'Video Game' -GAME( 1980, avefenixrf, phoenix, phoenix, phoenix, driver_device, 0, ROT90, "bootleg (Recreativos Franco S.A.)", "Ave Fenix (Recreativos Franco, Spanish bootleg of Phoenix)", MACHINE_SUPPORTS_SAVE ) -GAME( 1980, avefenixl, phoenix, phoenix, phoenix, driver_device, 0, ROT90, "bootleg (Laguna)", "Ave Fenix (Laguna, Spanish bootleg of Phoenix)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, phoenixs, phoenix, phoenix, phoenix, phoenix_state, 0, ROT90, "bootleg (Sonic)", "Phoenix (Sonic, Spanish bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, phoenixass, phoenix, phoenix, phoenix, phoenix_state, 0, ROT90, "bootleg (Assa)", "Phoenix (Assa, Spanish bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, avefenix, phoenix, phoenix, phoenix, phoenix_state, 0, ROT90, "bootleg (Video Game)", "Ave Fenix (Electrogame, Spanish bootleg of Phoenix)", MACHINE_SUPPORTS_SAVE ) // Electrogame (Barcelona) made the dedicated cabinet and is likely the real manufacturer, ingame shows 'Video Game' +GAME( 1980, avefenixrf, phoenix, phoenix, phoenix, phoenix_state, 0, ROT90, "bootleg (Recreativos Franco S.A.)", "Ave Fenix (Recreativos Franco, Spanish bootleg of Phoenix)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, avefenixl, phoenix, phoenix, phoenix, phoenix_state, 0, ROT90, "bootleg (Laguna)", "Ave Fenix (Laguna, Spanish bootleg of Phoenix)", MACHINE_SUPPORTS_SAVE ) /*** Pleiads (& clones) ***/ -GAME( 1981, pleiads, 0, pleiads, pleiads, driver_device, 0, ROT90, "Tehkan", "Pleiads (Tehkan)", MACHINE_IMPERFECT_COLORS ) -GAME( 1981, pleiadsb2, pleiads, pleiads, pleiads, driver_device, 0, ROT90, "bootleg (ESG)", "Pleiads (bootleg set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, pleiadbl, pleiads, pleiads, pleiadbl, driver_device, 0, ROT90, "bootleg", "Pleiads (bootleg set 1)", MACHINE_IMPERFECT_COLORS ) -GAME( 1981, pleiadce, pleiads, pleiads, pleiadce, driver_device, 0, ROT90, "Tehkan (Centuri license)", "Pleiads (Centuri)", MACHINE_IMPERFECT_COLORS ) -GAME( 1981, pleiadsi, pleiads, pleiads, pleiadce, driver_device, 0, ROT90, "bootleg? (Irecsa)", "Pleiads (Irecsa)", MACHINE_IMPERFECT_COLORS ) // possibly licensed, but some of the roms match the bootlegs -GAME( 1981, pleiadsn, pleiads, phoenix, pleiadce, driver_device, 0, ROT90, "Niemer S.A.", "Pleiads (Niemer S.A.)", MACHINE_IMPERFECT_COLORS ) // possibly licensed, but some of the roms match the bootlegs -GAME( 1981, pleiadss, pleiads, phoenix, pleiadce, driver_device, 0, ROT90, "bootleg", "Pleiads (Spanish bootleg)", MACHINE_SUPPORTS_SAVE ) // colours match PCB (but are ugly) -GAME( 1981, capitol, pleiads, phoenix, capitol, driver_device, 0, ROT90, "bootleg? (Universal Video Spiel)", "Capitol", MACHINE_IMPERFECT_COLORS ) +GAME( 1981, pleiads, 0, pleiads, pleiads, phoenix_state, 0, ROT90, "Tehkan", "Pleiads (Tehkan)", MACHINE_IMPERFECT_COLORS ) +GAME( 1981, pleiadsb2, pleiads, pleiads, pleiads, phoenix_state, 0, ROT90, "bootleg (ESG)", "Pleiads (bootleg set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, pleiadbl, pleiads, pleiads, pleiadbl, phoenix_state, 0, ROT90, "bootleg", "Pleiads (bootleg set 1)", MACHINE_IMPERFECT_COLORS ) +GAME( 1981, pleiadce, pleiads, pleiads, pleiadce, phoenix_state, 0, ROT90, "Tehkan (Centuri license)", "Pleiads (Centuri)", MACHINE_IMPERFECT_COLORS ) +GAME( 1981, pleiadsi, pleiads, pleiads, pleiadce, phoenix_state, 0, ROT90, "bootleg? (Irecsa)", "Pleiads (Irecsa)", MACHINE_IMPERFECT_COLORS ) // possibly licensed, but some of the roms match the bootlegs +GAME( 1981, pleiadsn, pleiads, phoenix, pleiadce, phoenix_state, 0, ROT90, "Niemer S.A.", "Pleiads (Niemer S.A.)", MACHINE_IMPERFECT_COLORS ) // possibly licensed, but some of the roms match the bootlegs +GAME( 1981, pleiadss, pleiads, phoenix, pleiadce, phoenix_state, 0, ROT90, "bootleg", "Pleiads (Spanish bootleg)", MACHINE_SUPPORTS_SAVE ) // colours match PCB (but are ugly) +GAME( 1981, capitol, pleiads, phoenix, capitol, phoenix_state, 0, ROT90, "bootleg? (Universal Video Spiel)", "Capitol", MACHINE_IMPERFECT_COLORS ) /*** Others ***/ -GAME( 1982, survival, 0, survival, survival, driver_device, 0, ROT90, "Rock-Ola", "Survival", MACHINE_IMPERFECT_COLORS ) +GAME( 1982, survival, 0, survival, survival, phoenix_state, 0, ROT90, "Rock-Ola", "Survival", MACHINE_IMPERFECT_COLORS ) diff --git a/src/mame/drivers/photon.cpp b/src/mame/drivers/photon.cpp index ef1b28fdccf..4c3bc0fa5d6 100644 --- a/src/mame/drivers/photon.cpp +++ b/src/mame/drivers/photon.cpp @@ -195,7 +195,7 @@ uint32_t photon_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap return video_update(screen, bitmap, cliprect, memregion("maincpu")->base()); } -static MACHINE_CONFIG_START( photon, photon_state ) +static MACHINE_CONFIG_START( photon ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",I8080, 1780000) @@ -271,6 +271,6 @@ ROM_START( phklad ) ROM_LOAD( "klad.bin", 0x10000, 0x4000, BAD_DUMP CRC(49cc7d65) SHA1(d966cfc1d973a533df8044a71fad37f7177da554) ) ROM_END -GAME( 19??, phtetris, 0, photon, photon, driver_device, 0, ROT0, "", "Tetris (Photon System)", 0 ) -GAME( 1989?, phpython, 0, photon, photon, driver_device, 0, ROT0, "", "Python (Photon System)", 0 ) -GAME( 19??, phklad, 0, photon, photon, driver_device, 0, ROT0, "", "Klad / Labyrinth (Photon System)", 0 ) +GAME( 19??, phtetris, 0, photon, photon, photon_state, 0, ROT0, "", "Tetris (Photon System)", 0 ) +GAME( 1989?, phpython, 0, photon, photon, photon_state, 0, ROT0, "", "Python (Photon System)", 0 ) +GAME( 19??, phklad, 0, photon, photon, photon_state, 0, ROT0, "", "Klad / Labyrinth (Photon System)", 0 ) diff --git a/src/mame/drivers/photon2.cpp b/src/mame/drivers/photon2.cpp index efb61569604..8cb476d4d62 100644 --- a/src/mame/drivers/photon2.cpp +++ b/src/mame/drivers/photon2.cpp @@ -346,7 +346,7 @@ void photon2_state::machine_start() save_item(NAME(m_nmi_enable)); } -static MACHINE_CONFIG_START( photon2, photon2_state ) +static MACHINE_CONFIG_START( photon2 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 3500000) /* 3.5 MHz */ MCFG_CPU_PROGRAM_MAP(spectrum_mem) @@ -408,6 +408,6 @@ ROM_START( brod ) ROM_LOAD( "brod13.bin", 0xa000, 0x2000, CRC(1177cd17) SHA1(58c5c09a7b857ce6311339c4d0f4d8c1a7e232a3) ) ROM_END -GAME( 19??, kok, 0, photon2, photon2, driver_device, 0, ROT0, "bootleg", "Povar / Sobrat' Buran / Agroprom (Arcade multi-game bootleg of ZX Spectrum 'Cookie', 'Jetpac' & 'Pssst')", MACHINE_SUPPORTS_SAVE ) // originals (c)1983 ACG / Ultimate -GAME( 19??, black, 0, photon2, black, driver_device, 0, ROT0, "bootleg", "Czernyj Korabl (Arcade bootleg of ZX Spectrum 'Blackbeard')", MACHINE_SUPPORTS_SAVE ) // original (c)1988 Toposoft -GAME( 19??, brod, 0, photon2, black, driver_device, 0, ROT0, "bootleg", "Brodjaga (Arcade bootleg of ZX Spectrum 'Inspector Gadget and the Circus of Fear')", MACHINE_SUPPORTS_SAVE ) // original (c)1987 BEAM software +GAME( 19??, kok, 0, photon2, photon2, photon2_state, 0, ROT0, "bootleg", "Povar / Sobrat' Buran / Agroprom (Arcade multi-game bootleg of ZX Spectrum 'Cookie', 'Jetpac' & 'Pssst')", MACHINE_SUPPORTS_SAVE ) // originals (c)1983 ACG / Ultimate +GAME( 19??, black, 0, photon2, black, photon2_state, 0, ROT0, "bootleg", "Czernyj Korabl (Arcade bootleg of ZX Spectrum 'Blackbeard')", MACHINE_SUPPORTS_SAVE ) // original (c)1988 Toposoft +GAME( 19??, brod, 0, photon2, black, photon2_state, 0, ROT0, "bootleg", "Brodjaga (Arcade bootleg of ZX Spectrum 'Inspector Gadget and the Circus of Fear')", MACHINE_SUPPORTS_SAVE ) // original (c)1987 BEAM software diff --git a/src/mame/drivers/photoply.cpp b/src/mame/drivers/photoply.cpp index 18e389e6d90..6c905d53af0 100644 --- a/src/mame/drivers/photoply.cpp +++ b/src/mame/drivers/photoply.cpp @@ -114,7 +114,7 @@ static GFXDECODE_START( photoply ) //there's also a 8x16 entry (just after the 8x8) GFXDECODE_END -static MACHINE_CONFIG_START( photoply, photoply_state ) +static MACHINE_CONFIG_START( photoply ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I486, 75000000) /* I486DX4, 75 or 100 Mhz */ MCFG_CPU_PROGRAM_MAP(photoply_map) diff --git a/src/mame/drivers/phunsy.cpp b/src/mame/drivers/phunsy.cpp index 2a70fb87a1a..6bbd9db3656 100644 --- a/src/mame/drivers/phunsy.cpp +++ b/src/mame/drivers/phunsy.cpp @@ -56,7 +56,7 @@ public: DECLARE_READ8_MEMBER(phunsy_data_r); DECLARE_WRITE8_MEMBER(phunsy_ctrl_w); DECLARE_WRITE8_MEMBER(phunsy_data_w); - DECLARE_WRITE8_MEMBER(kbd_put); + void kbd_put(u8 data); DECLARE_READ8_MEMBER(cass_r); DECLARE_WRITE_LINE_MEMBER(cass_w); DECLARE_QUICKLOAD_LOAD_MEMBER(phunsy); @@ -180,7 +180,7 @@ static INPUT_PORTS_START( phunsy ) INPUT_PORTS_END -WRITE8_MEMBER( phunsy_state::kbd_put ) +void phunsy_state::kbd_put(u8 data) { if (data) m_keyboard_input = data; @@ -327,7 +327,7 @@ DRIVER_INIT_MEMBER( phunsy_state, phunsy ) membank("bankq")->set_entry(0); } -static MACHINE_CONFIG_START( phunsy, phunsy_state ) +static MACHINE_CONFIG_START( phunsy ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",S2650, XTAL_1MHz) MCFG_CPU_PROGRAM_MAP(phunsy_mem) @@ -359,7 +359,7 @@ static MACHINE_CONFIG_START( phunsy, phunsy_state ) /* Devices */ MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0) - MCFG_GENERIC_KEYBOARD_CB(WRITE8(phunsy_state, kbd_put)) + MCFG_GENERIC_KEYBOARD_CB(PUT(phunsy_state, kbd_put)) MCFG_CASSETTE_ADD( "cassette" ) /* quickload */ @@ -389,5 +389,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ +/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ COMP( 1980, phunsy, 0, 0, phunsy, phunsy, phunsy_state, phunsy, "J.F.P. Philipse", "PHUNSY", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/piggypas.cpp b/src/mame/drivers/piggypas.cpp index d1eda58516d..1981f514765 100644 --- a/src/mame/drivers/piggypas.cpp +++ b/src/mame/drivers/piggypas.cpp @@ -126,7 +126,7 @@ HD44780_PIXEL_UPDATE(piggypas_state::piggypas_pixel_update) bitmap.pix16(y, (line * 8 + pos) * 6 + x) = state; } -static MACHINE_CONFIG_START( piggypas, piggypas_state ) +static MACHINE_CONFIG_START( piggypas ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8031, 8000000) // unknown variant @@ -152,7 +152,7 @@ static MACHINE_CONFIG_START( piggypas, piggypas_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", 1000000, OKIM6295_PIN7_HIGH) // not verified + MCFG_OKIM6295_ADD("oki", 1000000, PIN7_HIGH) // not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MCFG_TICKET_DISPENSER_ADD("ticket", attotime::from_msec(100), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_HIGH) @@ -227,16 +227,16 @@ ROM_END // COPYRIGHT (c) 1990, 1991, 1992, DOYLE & ASSOC., INC. VERSION 04.40 -GAME( 1992, piggypas, 0, piggypas, piggypas, driver_device, 0, ROT0, "Doyle & Assoc.", "Piggy Pass (version 04.40)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 1992, piggypas, 0, piggypas, piggypas, piggypas_state, 0, ROT0, "Doyle & Assoc.", "Piggy Pass (version 04.40)", MACHINE_IS_SKELETON_MECHANICAL ) // COPYRIGHT (c) 1990, 1991, 1992, DOYLE & ASSOC., INC. VERSION 05.22 -GAME( 1992, hoopshot, 0, piggypas, piggypas, driver_device, 0, ROT0, "Doyle & Assoc.", "Hoop Shot (version 05.22)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 1992, hoopshot, 0, piggypas, piggypas, piggypas_state, 0, ROT0, "Doyle & Assoc.", "Hoop Shot (version 05.22)", MACHINE_IS_SKELETON_MECHANICAL ) // Quick $ilver Development Co. 10/08/96 ROUND REV 6 -GAME( 1996, rndrndqs, 0, piggypas, piggypas, driver_device, 0, ROT0, "Quick $ilver Development Co.", "Round and Round (Rev 6) (Quick $ilver)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 1996, rndrndqs, 0, piggypas, piggypas, piggypas_state, 0, ROT0, "Quick $ilver Development Co.", "Round and Round (Rev 6) (Quick $ilver)", MACHINE_IS_SKELETON_MECHANICAL ) // Quick$ilver Development Co. 10/02/95 -FIDDLESTIX- REV 15T -GAME( 1995, fidlstix, 0, piggypas, piggypas, driver_device, 0, ROT0, "Quick $ilver Development Co.", "Fiddle Stix (1st Rev)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 1995, fidlstix, 0, piggypas, piggypas, piggypas_state, 0, ROT0, "Quick $ilver Development Co.", "Fiddle Stix (1st Rev)", MACHINE_IS_SKELETON_MECHANICAL ) // bad dump, so version unknown -GAME( 199?, jackbean, 0, piggypas, piggypas, driver_device, 0, ROT0, "Doyle & Assoc.", "Jack & The Beanstalk (Doyle & Assoc.?)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, jackbean, 0, piggypas, piggypas, piggypas_state, 0, ROT0, "Doyle & Assoc.", "Jack & The Beanstalk (Doyle & Assoc.?)", MACHINE_IS_SKELETON_MECHANICAL ) // bad dump, so version unknown -GAME( 199?, dumpump, 0, piggypas, piggypas, driver_device, 0, ROT0, "Doyle & Assoc.", "Dump The Ump", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, dumpump, 0, piggypas, piggypas, piggypas_state, 0, ROT0, "Doyle & Assoc.", "Dump The Ump", MACHINE_IS_SKELETON_MECHANICAL ) // bad dump, so version unknown -GAME( 199?, 3lilpigs, 0, piggypas, piggypas, driver_device, 0, ROT0, "Doyle & Assoc.", "3 Lil' Pigs", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 199?, 3lilpigs, 0, piggypas, piggypas, piggypas_state, 0, ROT0, "Doyle & Assoc.", "3 Lil' Pigs", MACHINE_IS_SKELETON_MECHANICAL ) diff --git a/src/mame/drivers/pimps.cpp b/src/mame/drivers/pimps.cpp index 3f292a47949..886e45af0cd 100644 --- a/src/mame/drivers/pimps.cpp +++ b/src/mame/drivers/pimps.cpp @@ -40,7 +40,7 @@ public: DECLARE_READ8_MEMBER(term_status_r); DECLARE_READ8_MEMBER(term_r); - DECLARE_WRITE8_MEMBER(kbd_put); + void kbd_put(u8 data); uint8_t m_term_data; virtual void machine_reset() override; @@ -86,12 +86,12 @@ void pimps_state::machine_reset() m_term_data = 0; } -WRITE8_MEMBER( pimps_state::kbd_put ) +void pimps_state::kbd_put(u8 data) { m_term_data = data; } -static MACHINE_CONFIG_START( pimps, pimps_state ) +static MACHINE_CONFIG_START( pimps ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",I8085A, XTAL_2MHz) MCFG_CPU_PROGRAM_MAP(pimps_mem) @@ -99,7 +99,7 @@ static MACHINE_CONFIG_START( pimps, pimps_state ) /* video hardware */ MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0) - MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(pimps_state, kbd_put)) + MCFG_GENERIC_TERMINAL_KEYBOARD_CB(PUT(pimps_state, kbd_put)) MACHINE_CONFIG_END /* ROM definition */ @@ -110,5 +110,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 197?, pimps, 0, 0, pimps, pimps, driver_device, 0, "Henry Colford", "P.I.M.P.S.", MACHINE_NO_SOUND_HW) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +COMP( 197?, pimps, 0, 0, pimps, pimps, pimps_state, 0, "Henry Colford", "P.I.M.P.S.", MACHINE_NO_SOUND_HW) diff --git a/src/mame/drivers/pinball2k.cpp b/src/mame/drivers/pinball2k.cpp index 85c522d4df0..c9457464af1 100644 --- a/src/mame/drivers/pinball2k.cpp +++ b/src/mame/drivers/pinball2k.cpp @@ -591,7 +591,7 @@ static ADDRESS_MAP_START( ramdac_map, AS_0, 8, pinball2k_state ) AM_RANGE(0x000, 0x3ff) AM_DEVREADWRITE("ramdac",ramdac_device,ramdac_pal_r,ramdac_rgb666_w) ADDRESS_MAP_END -static MACHINE_CONFIG_START( mediagx, pinball2k_state ) +static MACHINE_CONFIG_START( mediagx ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", MEDIAGX, 166000000) diff --git a/src/mame/drivers/pingpong.cpp b/src/mame/drivers/pingpong.cpp index 03a5fc68e39..d8e1ee47aea 100644 --- a/src/mame/drivers/pingpong.cpp +++ b/src/mame/drivers/pingpong.cpp @@ -446,7 +446,7 @@ static GFXDECODE_START( pingpong ) GFXDECODE_END -static MACHINE_CONFIG_START( pingpong, pingpong_state ) +static MACHINE_CONFIG_START( pingpong ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80,18432000/6) /* 3.072 MHz (probably) */ @@ -612,6 +612,6 @@ DRIVER_INIT_MEMBER(pingpong_state,cashquiz) } -GAME( 1985, pingpong, 0, pingpong, pingpong, driver_device, 0, ROT0, "Konami", "Konami's Ping-Pong", 0 ) -GAME( 1986, merlinmm, 0, merlinmm, merlinmm, pingpong_state, merlinmm, ROT90,"Zilec-Zenitone", "Merlins Money Maze", 0 ) -GAME( 1986, cashquiz, 0, merlinmm, cashquiz, pingpong_state, cashquiz, ROT0, "Zilec-Zenitone", "Cash Quiz (Type B, Version 5)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1985, pingpong, 0, pingpong, pingpong, pingpong_state, 0, ROT0, "Konami", "Konami's Ping-Pong", 0 ) +GAME( 1986, merlinmm, 0, merlinmm, merlinmm, pingpong_state, merlinmm, ROT90, "Zilec-Zenitone", "Merlins Money Maze", 0 ) +GAME( 1986, cashquiz, 0, merlinmm, cashquiz, pingpong_state, cashquiz, ROT0, "Zilec-Zenitone", "Cash Quiz (Type B, Version 5)", MACHINE_IMPERFECT_GRAPHICS ) diff --git a/src/mame/drivers/pinkiri8.cpp b/src/mame/drivers/pinkiri8.cpp index 1416bdc446a..c50b0d06b04 100644 --- a/src/mame/drivers/pinkiri8.cpp +++ b/src/mame/drivers/pinkiri8.cpp @@ -132,12 +132,12 @@ DEVICE_ADDRESS_MAP_START( map, 8, janshi_vdp_device ) AM_RANGE(0xff6000, 0xff601f) AM_RAM AM_SHARE("crtc_regs") ADDRESS_MAP_END -const device_type JANSHIVDP = device_creator; +DEFINE_DEVICE_TYPE(JANSHIVDP, janshi_vdp_device, "janshi_vdp", "Janshi VDP") janshi_vdp_device::janshi_vdp_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, JANSHIVDP, "Janshi VDP", tag, owner, clock, "janshi_vdp", __FILE__), - device_memory_interface(mconfig, *this), - m_space_config("janshi_vdp", ENDIANNESS_LITTLE, 8,24, 0, address_map_delegate(FUNC(janshi_vdp_device::map), this)) + : device_t(mconfig, JANSHIVDP, tag, owner, clock) + , device_memory_interface(mconfig, *this) + , m_space_config("janshi_vdp", ENDIANNESS_LITTLE, 8,24, 0, address_map_delegate(FUNC(janshi_vdp_device::map), this)) { } @@ -1085,7 +1085,7 @@ static GFXDECODE_START( pinkiri8 ) GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0, 0x100 ) GFXDECODE_END -static MACHINE_CONFIG_START( pinkiri8, pinkiri8_state ) +static MACHINE_CONFIG_START( pinkiri8 ) MCFG_CPU_ADD("maincpu",Z180,XTAL_32MHz/2) MCFG_CPU_PROGRAM_MAP(pinkiri8_map) MCFG_CPU_IO_MAP(pinkiri8_io) @@ -1108,7 +1108,7 @@ static MACHINE_CONFIG_START( pinkiri8, pinkiri8_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", 1056000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki", 1056000, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) MACHINE_CONFIG_END @@ -1229,7 +1229,7 @@ DRIVER_INIT_MEMBER(pinkiri8_state,ronjan) m_maincpu->space(AS_IO).install_read_handler(0x9f, 0x9f, read8_delegate(FUNC(pinkiri8_state::ronjan_patched_prot_r), this)); } -GAME( 1992, janshi, 0, pinkiri8, janshi, driver_device, 0, ROT0, "Eagle", "Janshi", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) +GAME( 1992, janshi, 0, pinkiri8, janshi, pinkiri8_state, 0, ROT0, "Eagle", "Janshi", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) GAME( 1991, ronjan, ronjans, pinkiri8, ronjan, pinkiri8_state, ronjan, ROT0, "Wing Co., Ltd", "Ron Jan", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) GAME( 1994, ronjans, 0, pinkiri8, ronjan, pinkiri8_state, ronjan, ROT0, "Wing Co., Ltd", "Ron Jan Super", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) // 'SUPER' flashes in the middle of the screen -GAME( 1994, pinkiri8, 0, pinkiri8, pinkiri8, driver_device, 0, ROT0, "Alta", "Pinkiri 8", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) +GAME( 1994, pinkiri8, 0, pinkiri8, pinkiri8, pinkiri8_state, 0, ROT0, "Alta", "Pinkiri 8", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/pipbug.cpp b/src/mame/drivers/pipbug.cpp index 295d04ee1c9..8459ab89688 100644 --- a/src/mame/drivers/pipbug.cpp +++ b/src/mame/drivers/pipbug.cpp @@ -154,7 +154,7 @@ QUICKLOAD_LOAD_MEMBER( pipbug_state, pipbug ) return result; } -static MACHINE_CONFIG_START( pipbug, pipbug_state ) +static MACHINE_CONFIG_START( pipbug ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",S2650, XTAL_1MHz) MCFG_CPU_PROGRAM_MAP(pipbug_mem) @@ -179,5 +179,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1979, pipbug, 0, 0, pipbug, pipbug, driver_device, 0, "Signetics", "PIPBUG", MACHINE_NO_SOUND_HW ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1979, pipbug, 0, 0, pipbug, pipbug, pipbug_state, 0, "Signetics", "PIPBUG", MACHINE_NO_SOUND_HW ) diff --git a/src/mame/drivers/pipedrm.cpp b/src/mame/drivers/pipedrm.cpp index f86fe865cda..c3f4eb48bf7 100644 --- a/src/mame/drivers/pipedrm.cpp +++ b/src/mame/drivers/pipedrm.cpp @@ -611,7 +611,7 @@ MACHINE_RESET_MEMBER(pipedrm_state,pipedrm) m_flipscreen = 0; } -static MACHINE_CONFIG_START( pipedrm, pipedrm_state ) +static MACHINE_CONFIG_START( pipedrm ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80,12000000/2) @@ -661,7 +661,7 @@ static MACHINE_CONFIG_START( pipedrm, pipedrm_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( hatris, pipedrm_state ) +static MACHINE_CONFIG_START( hatris ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80,12000000/2) @@ -925,9 +925,9 @@ DRIVER_INIT_MEMBER(pipedrm_state,hatris) * *************************************/ -GAME( 1990, pipedrm, 0, pipedrm, pipedrm, pipedrm_state, pipedrm, ROT0, "Video System Co.", "Pipe Dream (World)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, pipedrmu, pipedrm, pipedrm, pipedrm, pipedrm_state, pipedrm, ROT0, "Video System Co.", "Pipe Dream (US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, pipedrmj, pipedrm, pipedrm, pipedrm, pipedrm_state, pipedrm, ROT0, "Video System Co.", "Pipe Dream (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, pipedrm, 0, pipedrm, pipedrm, pipedrm_state, pipedrm, ROT0, "Video System Co.", "Pipe Dream (World)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, pipedrmu, pipedrm, pipedrm, pipedrm, pipedrm_state, pipedrm, ROT0, "Video System Co.", "Pipe Dream (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, pipedrmj, pipedrm, pipedrm, pipedrm, pipedrm_state, pipedrm, ROT0, "Video System Co.", "Pipe Dream (Japan)", MACHINE_SUPPORTS_SAVE ) GAME( 1990, pipedrmt, pipedrm, pipedrm, pipedrm, pipedrm_state, pipedrm, ROT0, "Video System Co.", "Pipe Dream (Taiwan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, hatris, 0, hatris, hatris, pipedrm_state, hatris, ROT0, "Video System Co.", "Hatris (US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, hatrisj, hatris, hatris, hatris, pipedrm_state, hatris, ROT0, "Video System Co.", "Hatris (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, hatris, 0, hatris, hatris, pipedrm_state, hatris, ROT0, "Video System Co.", "Hatris (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, hatrisj, hatris, hatris, hatris, pipedrm_state, hatris, ROT0, "Video System Co.", "Hatris (Japan)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/pipeline.cpp b/src/mame/drivers/pipeline.cpp index 40cce978752..3d66525a7be 100644 --- a/src/mame/drivers/pipeline.cpp +++ b/src/mame/drivers/pipeline.cpp @@ -349,7 +349,7 @@ PALETTE_INIT_MEMBER(pipeline_state, pipeline) } } -static MACHINE_CONFIG_START( pipeline, pipeline_state ) +static MACHINE_CONFIG_START( pipeline ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 7372800/2) @@ -433,4 +433,4 @@ ROM_START( pipeline ) ROM_LOAD( "82s123.u79", 0x00200, 0x00020,CRC(6df3f972) SHA1(0096a7f7452b70cac6c0752cb62e24b643015b5c) ) ROM_END -GAME( 1990, pipeline, 0, pipeline, pipeline, driver_device, 0, ROT0, "Daehyun Electronics", "Pipeline", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1990, pipeline, 0, pipeline, pipeline, pipeline_state, 0, ROT0, "Daehyun Electronics", "Pipeline", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/pirates.cpp b/src/mame/drivers/pirates.cpp index e31a6f56fd1..54f83d68175 100644 --- a/src/mame/drivers/pirates.cpp +++ b/src/mame/drivers/pirates.cpp @@ -251,7 +251,7 @@ GFXDECODE_END /* Machine Driver + Related bits */ -static MACHINE_CONFIG_START( pirates, pirates_state ) +static MACHINE_CONFIG_START( pirates ) MCFG_CPU_ADD("maincpu", M68000, 16000000) /* 16mhz */ MCFG_CPU_PROGRAM_MAP(pirates_map) MCFG_CPU_VBLANK_INT_DRIVER("screen", pirates_state, irq1_line_hold) @@ -275,7 +275,7 @@ static MACHINE_CONFIG_START( pirates, pirates_state ) MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", 1333333, OKIM6295_PIN7_LOW) + MCFG_OKIM6295_ADD("oki", 1333333, PIN7_LOW) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -472,7 +472,7 @@ DRIVER_INIT_MEMBER(pirates_state,genix) /* GAME */ -GAME( 1994, pirates, 0, pirates, pirates, pirates_state, pirates, 0, "NIX", "Pirates (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, pirates, 0, pirates, pirates, pirates_state, pirates, 0, "NIX", "Pirates (set 1)", MACHINE_SUPPORTS_SAVE ) GAME( 1995, piratesb, pirates, pirates, pirates, pirates_state, pirates, 0, "NIX", "Pirates (set 2)", MACHINE_SUPPORTS_SAVE ) // shows 'Copyright 1995' instead of (c)1994 Nix, but isn't unprotected, various changes to the names in the credis + a few other minor alterations -GAME( 1994, genix, 0, pirates, pirates, pirates_state, genix, 0, "NIX", "Genix Family", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, genix, 0, pirates, pirates, pirates_state, genix, 0, "NIX", "Genix Family", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/piratesh.cpp b/src/mame/drivers/piratesh.cpp index 13067c57239..cb828399489 100644 --- a/src/mame/drivers/piratesh.cpp +++ b/src/mame/drivers/piratesh.cpp @@ -579,7 +579,7 @@ MACHINE_RESET_MEMBER(piratesh_state,piratesh) } -static MACHINE_CONFIG_START( piratesh, piratesh_state ) +static MACHINE_CONFIG_START( piratesh ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_32MHz/2) @@ -675,5 +675,5 @@ ROM_START( piratesh ) // ROM_LOAD( "piratesh.nv", 0x0000, 0x080, CRC(28df2269) SHA1(3f071c97662745a199f96964e2e79f795bd5a391) ) ROM_END -/* ROM parent machine inp init */ -GAME( 1995, piratesh, 0, piratesh, piratesh, driver_device, 0, ROT90, "Konami", "Pirate Ship (ver UAA)", MACHINE_IMPERFECT_GRAPHICS ) +// year name parent machine input state init +GAME( 1995, piratesh, 0, piratesh, piratesh, piratesh_state, 0, ROT90, "Konami", "Pirate Ship (ver UAA)", MACHINE_IMPERFECT_GRAPHICS ) diff --git a/src/mame/drivers/pitagjr.cpp b/src/mame/drivers/pitagjr.cpp index db7a8dc2044..25cbfe3b7cf 100644 --- a/src/mame/drivers/pitagjr.cpp +++ b/src/mame/drivers/pitagjr.cpp @@ -202,7 +202,7 @@ uint32_t pitagjr_state::screen_update(screen_device &screen, bitmap_ind16 &bitma return 0; } -static MACHINE_CONFIG_START( pitajr, pitagjr_state ) +static MACHINE_CONFIG_START( pitajr ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", HD63705, XTAL_2MHz) // probably a m6805-based MCU with internal boot ROM MCFG_CPU_PROGRAM_MAP(pitajr_mem) @@ -231,5 +231,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 199?, pitagjr, 0, 0, pitajr, pitajr, driver_device, 0, "VTech", "Pitagorin Junior", MACHINE_IS_SKELETON) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 199?, pitagjr, 0, 0, pitajr, pitajr, pitagjr_state, 0, "VTech", "Pitagorin Junior", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/pitnrun.cpp b/src/mame/drivers/pitnrun.cpp index ca31ba1fd5d..e1474e0e22b 100644 --- a/src/mame/drivers/pitnrun.cpp +++ b/src/mame/drivers/pitnrun.cpp @@ -218,7 +218,7 @@ static GFXDECODE_START( pitnrun ) GFXDECODE_ENTRY( "gfx1", 0, spritelayout, 0, 4 ) GFXDECODE_END -static MACHINE_CONFIG_START( pitnrun, pitnrun_state ) +static MACHINE_CONFIG_START( pitnrun ) MCFG_CPU_ADD("maincpu", Z80,XTAL_18_432MHz/6) /* verified on pcb */ MCFG_CPU_PROGRAM_MAP(pitnrun_map) MCFG_CPU_VBLANK_INT_DRIVER("screen", pitnrun_state, nmi_source) @@ -339,5 +339,5 @@ ROM_START( pitnruna ) ROM_LOAD( "clr.3", 0x0040, 0x0020, CRC(25e70e5e) SHA1(fdb9c69e9568a725dd0e3ac25835270fb4f49280) ) ROM_END -GAME( 1984, pitnrun, 0, pitnrun, pitnrun, driver_device, 0, ROT90, "Taito Corporation", "Pit & Run - F-1 Race (set 1)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1984, pitnruna, pitnrun, pitnrun, pitnrun, driver_device, 0, ROT90, "Taito Corporation", "Pit & Run - F-1 Race (set 2)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1984, pitnrun, 0, pitnrun, pitnrun, pitnrun_state, 0, ROT90, "Taito Corporation", "Pit & Run - F-1 Race (set 1)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1984, pitnruna, pitnrun, pitnrun, pitnrun, pitnrun_state, 0, ROT90, "Taito Corporation", "Pit & Run - F-1 Race (set 2)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/pk8000.cpp b/src/mame/drivers/pk8000.cpp index c004cc43fda..64377184e73 100644 --- a/src/mame/drivers/pk8000.cpp +++ b/src/mame/drivers/pk8000.cpp @@ -355,7 +355,7 @@ uint32_t pk8000_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap return video_update(screen, bitmap, cliprect, m_ram->pointer()); } -static MACHINE_CONFIG_START( pk8000, pk8000_state ) +static MACHINE_CONFIG_START( pk8000 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",I8080, 1780000) MCFG_CPU_PROGRAM_MAP(pk8000_mem) @@ -419,7 +419,7 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1987, vesta, 0, 0, pk8000, pk8000, driver_device, 0, "BP EVM", "PK8000 Vesta", 0 ) -COMP( 1987, hobby, vesta, 0, pk8000, pk8000, driver_device, 0, "BP EVM", "PK8000 Sura/Hobby", 0 ) -COMP( 1987, pk8002, vesta, 0, pk8000, pk8000, driver_device, 0, "", "PK8002 Elf", MACHINE_NOT_WORKING ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +COMP( 1987, vesta, 0, 0, pk8000, pk8000, pk8000_state, 0, "BP EVM", "PK8000 Vesta", 0 ) +COMP( 1987, hobby, vesta, 0, pk8000, pk8000, pk8000_state, 0, "BP EVM", "PK8000 Sura/Hobby", 0 ) +COMP( 1987, pk8002, vesta, 0, pk8000, pk8000, pk8000_state, 0, "","PK8002 Elf", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/pk8020.cpp b/src/mame/drivers/pk8020.cpp index b8fc7507c18..b4539581ced 100644 --- a/src/mame/drivers/pk8020.cpp +++ b/src/mame/drivers/pk8020.cpp @@ -175,7 +175,7 @@ SLOT_INTERFACE_END /* Machine driver */ -static MACHINE_CONFIG_START( pk8020, pk8020_state ) +static MACHINE_CONFIG_START( pk8020 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8080, XTAL_20MHz / 8) MCFG_CPU_PROGRAM_MAP(pk8020_mem) @@ -289,8 +289,8 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1987, korvet, 0, 0, pk8020, pk8020, driver_device, 0, "", "PK8020 Korvet", 0) -COMP( 1987, neiva, korvet, 0, pk8020, pk8020, driver_device, 0, "", "PK8020 Neiva", 0) -COMP( 1987, kontur, korvet, 0, pk8020, pk8020, driver_device, 0, "", "PK8020 Kontur", 0) -COMP( 1987, bk8t, korvet, 0, pk8020, pk8020, driver_device, 0, "", "BK-8T", 0) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +COMP( 1987, korvet, 0, 0, pk8020, pk8020, pk8020_state, 0, "", "PK8020 Korvet", 0) +COMP( 1987, neiva, korvet, 0, pk8020, pk8020, pk8020_state, 0, "", "PK8020 Neiva", 0) +COMP( 1987, kontur, korvet, 0, pk8020, pk8020, pk8020_state, 0, "", "PK8020 Kontur", 0) +COMP( 1987, bk8t, korvet, 0, pk8020, pk8020, pk8020_state, 0, "", "BK-8T", 0) diff --git a/src/mame/drivers/pkscram.cpp b/src/mame/drivers/pkscram.cpp index a2286f6064a..24d8e1ecb17 100644 --- a/src/mame/drivers/pkscram.cpp +++ b/src/mame/drivers/pkscram.cpp @@ -299,7 +299,7 @@ void pkscram_state::machine_reset() scanline_timer->adjust(m_screen->time_until_pos(interrupt_scanline), interrupt_scanline); } -static MACHINE_CONFIG_START( pkscramble, pkscram_state ) +static MACHINE_CONFIG_START( pkscramble ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 8000000 ) MCFG_CPU_PROGRAM_MAP(pkscramble_map) diff --git a/src/mame/drivers/pktgaldx.cpp b/src/mame/drivers/pktgaldx.cpp index 9574d25c432..f837a93205c 100644 --- a/src/mame/drivers/pktgaldx.cpp +++ b/src/mame/drivers/pktgaldx.cpp @@ -324,7 +324,7 @@ void pktgaldx_state::machine_start() { } -static MACHINE_CONFIG_START( pktgaldx, pktgaldx_state ) +static MACHINE_CONFIG_START( pktgaldx ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 14000000) @@ -375,17 +375,17 @@ static MACHINE_CONFIG_START( pktgaldx, pktgaldx_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_OKIM6295_ADD("oki1", 32220000/32, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki1", 32220000/32, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.75) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.75) - MCFG_OKIM6295_ADD("oki2", 32220000/16, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki2", 32220000/16, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.60) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.60) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( pktgaldb, pktgaldx_state ) +static MACHINE_CONFIG_START( pktgaldb ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 16000000) @@ -410,11 +410,11 @@ static MACHINE_CONFIG_START( pktgaldb, pktgaldx_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_OKIM6295_ADD("oki1", 32220000/32, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki1", 32220000/32, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.75) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.75) - MCFG_OKIM6295_ADD("oki2", 32220000/16, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki2", 32220000/16, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.60) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.60) MACHINE_CONFIG_END @@ -487,4 +487,4 @@ DRIVER_INIT_MEMBER(pktgaldx_state,pktgaldx) GAME( 1992, pktgaldx, 0, pktgaldx, pktgaldx, pktgaldx_state, pktgaldx, ROT0, "Data East Corporation", "Pocket Gal Deluxe (Euro v3.00)", MACHINE_SUPPORTS_SAVE ) GAME( 1993, pktgaldxj, pktgaldx, pktgaldx, pktgaldx, pktgaldx_state, pktgaldx, ROT0, "Data East Corporation (Nihon System license)", "Pocket Gal Deluxe (Japan v3.00)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, pktgaldxb, pktgaldx, pktgaldb, pktgaldx, driver_device, 0, ROT0, "bootleg", "Pocket Gal Deluxe (Euro v3.00, bootleg)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1992, pktgaldxb, pktgaldx, pktgaldb, pktgaldx, pktgaldx_state, 0, ROT0, "bootleg", "Pocket Gal Deluxe (Euro v3.00, bootleg)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/plan80.cpp b/src/mame/drivers/plan80.cpp index 59dc7f07194..932cacc12dc 100644 --- a/src/mame/drivers/plan80.cpp +++ b/src/mame/drivers/plan80.cpp @@ -224,7 +224,7 @@ static GFXDECODE_START( plan80 ) GFXDECODE_END -static MACHINE_CONFIG_START( plan80, plan80_state ) +static MACHINE_CONFIG_START( plan80 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",I8080, 2048000) MCFG_CPU_PROGRAM_MAP(plan80_mem) @@ -257,5 +257,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1988, plan80, 0, 0, plan80, plan80, plan80_state, plan80, "Tesla Eltos", "Plan-80", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1988, plan80, 0, 0, plan80, plan80, plan80_state, plan80, "Tesla Eltos", "Plan-80", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) diff --git a/src/mame/drivers/play_1.cpp b/src/mame/drivers/play_1.cpp index a48e8b08efa..6558297548c 100644 --- a/src/mame/drivers/play_1.cpp +++ b/src/mame/drivers/play_1.cpp @@ -457,7 +457,7 @@ WRITE_LINE_MEMBER( play_1_state::clock_w ) } } -static MACHINE_CONFIG_START( play_1, play_1_state ) +static MACHINE_CONFIG_START( play_1 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", CDP1802, 400000) // 2 gates, 1 cap, 1 resistor oscillating somewhere between 350 to 450 kHz MCFG_CPU_PROGRAM_MAP(play_1_map) @@ -538,8 +538,8 @@ ROM_END /* Big Town, Last Lap and Party all reportedly share the same roms with different playfield/machine artworks */ -GAME(1978, bigtown, 0, play_1, play_1, driver_device, 0, ROT0, "Playmatic", "Big Town", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) -GAME(1978, lastlap, bigtown, play_1, play_1, driver_device, 0, ROT0, "Playmatic", "Last Lap", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) -GAME(1979, party, bigtown, play_1, play_1, driver_device, 0, ROT0, "Playmatic", "Party", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) -GAME(1978, spcgambl, 0, play_1, spcgambl, driver_device, 0, ROT0, "Playmatic", "Space Gambler", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) -GAME(1978, chance, 0, chance, chance, driver_device, 0, ROT0, "Playmatic", "Chance", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME(1978, bigtown, 0, play_1, play_1, play_1_state, 0, ROT0, "Playmatic", "Big Town", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME(1978, lastlap, bigtown, play_1, play_1, play_1_state, 0, ROT0, "Playmatic", "Last Lap", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME(1979, party, bigtown, play_1, play_1, play_1_state, 0, ROT0, "Playmatic", "Party", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME(1978, spcgambl, 0, play_1, spcgambl, play_1_state, 0, ROT0, "Playmatic", "Space Gambler", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME(1978, chance, 0, chance, chance, play_1_state, 0, ROT0, "Playmatic", "Chance", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/play_2.cpp b/src/mame/drivers/play_2.cpp index 4e4dd836314..e89ca5063db 100644 --- a/src/mame/drivers/play_2.cpp +++ b/src/mame/drivers/play_2.cpp @@ -351,7 +351,7 @@ WRITE8_MEMBER( play_2_state::psg_w ) } // **************** Machine ***************************** -static MACHINE_CONFIG_START( play_2, play_2_state ) +static MACHINE_CONFIG_START( play_2 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", CDP1802, XTAL_2_95MHz) MCFG_CPU_PROGRAM_MAP(play_2_map) @@ -506,11 +506,11 @@ ROM_START(madrace) ROM_END -GAME(1979, antar, 0, play_2, play_2, driver_device, 0, ROT0, "Playmatic", "Antar (set 1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) -GAME(1979, antar2, antar, play_2, play_2, driver_device, 0, ROT0, "Playmatic", "Antar (set 2)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) -GAME(1980, evlfight, 0, play_2, play_2, driver_device, 0, ROT0, "Playmatic", "Evil Fight", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) -GAME(1980, attack, 0, play_2, play_2, driver_device, 0, ROT0, "Playmatic", "Attack", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) -GAME(1980, blkfever, 0, play_2, play_2, driver_device, 0, ROT0, "Playmatic", "Black Fever", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) -GAME(1982, cerberup, 0, play_2, play_2, driver_device, 0, ROT0, "Playmatic", "Cerberus (Pinball)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -GAME(1985, madrace, 0, play_2, play_2, driver_device, 0, ROT0, "Playmatic", "Mad Race", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -GAME(1980, zira, 0, zira, play_2, play_2_state, zira, ROT0, "Playmatic", "Zira", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +GAME(1979, antar, 0, play_2, play_2, play_2_state, 0, ROT0, "Playmatic", "Antar (set 1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME(1979, antar2, antar, play_2, play_2, play_2_state, 0, ROT0, "Playmatic", "Antar (set 2)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME(1980, evlfight, 0, play_2, play_2, play_2_state, 0, ROT0, "Playmatic", "Evil Fight", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME(1980, attack, 0, play_2, play_2, play_2_state, 0, ROT0, "Playmatic", "Attack", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME(1980, blkfever, 0, play_2, play_2, play_2_state, 0, ROT0, "Playmatic", "Black Fever", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME(1982, cerberup, 0, play_2, play_2, play_2_state, 0, ROT0, "Playmatic", "Cerberus (Pinball)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +GAME(1985, madrace, 0, play_2, play_2, play_2_state, 0, ROT0, "Playmatic", "Mad Race", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +GAME(1980, zira, 0, zira, play_2, play_2_state, zira, ROT0, "Playmatic", "Zira", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND) diff --git a/src/mame/drivers/play_3.cpp b/src/mame/drivers/play_3.cpp index 19cb7e9173b..d455e2b9700 100644 --- a/src/mame/drivers/play_3.cpp +++ b/src/mame/drivers/play_3.cpp @@ -455,7 +455,7 @@ WRITE_LINE_MEMBER( play_3_state::q4013a_w ) m_clockcnt = 0; } -static MACHINE_CONFIG_START( play_3, play_3_state ) +static MACHINE_CONFIG_START( play_3 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", CDP1802, XTAL_3_579545MHz) MCFG_CPU_PROGRAM_MAP(play_3_map) @@ -773,27 +773,27 @@ ROM_START(comeback) ROM_END #endif -GAME(1982, spain82, 0, play_3, play_3, driver_device, 0, ROT0, "Playmatic", "Spain '82", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -GAME(1983, megaaton, 0, megaaton, megaaton, driver_device, 0, ROT0, "Playmatic", "Meg-Aaton", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) -GAME(1983, megaatona, megaaton, megaaton, megaaton, driver_device, 0, ROT0, "Playmatic", "Meg-Aaton (alternate set)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) -GAME(1984, nautilus, 0, play_3, play_3, driver_device, 0, ROT0, "Playmatic", "Nautilus", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -GAME(1984, theraid, 0, play_3, play_3, driver_device, 0, ROT0, "Playmatic", "The Raid", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) -GAME(1984, ufo_x, 0, play_3, play_3, driver_device, 0, ROT0, "Playmatic", "UFO-X", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) -GAME(1984, kz26, 0, play_3, play_3, driver_device, 0, ROT0, "Playmatic", "KZ-26", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) -GAME(1985, rock2500, 0, play_3, play_3, driver_device, 0, ROT0, "Playmatic", "Rock 2500", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) -GAME(1985, starfirp, 0, play_3, play_3, driver_device, 0, ROT0, "Playmatic", "Star Fire", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) -GAME(1985, starfirpa, starfirp, play_3, play_3, driver_device, 0, ROT0, "Playmatic", "Star Fire (alternate set)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) -GAME(1985, trailer, 0, play_3, play_3, driver_device, 0, ROT0, "Playmatic", "Trailer", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) -GAME(1986, fldragon, 0, play_3, play_3, driver_device, 0, ROT0, "Playmatic", "Flash Dragon", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) -GAME(1986, fldragona, fldragon, play_3, play_3, driver_device, 0, ROT0, "Playmatic", "Flash Dragon (alternate set)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) -GAME(1987, phntmshp, 0, sklflite, play_3, driver_device, 0, ROT0, "Playmatic", "Phantom Ship", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) -GAME(1987, sklflite, 0, sklflite, play_3, driver_device, 0, ROT0, "Playmatic", "Skill Flight (Playmatic)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) +GAME(1982, spain82, 0, play_3, play_3, play_3_state, 0, ROT0, "Playmatic", "Spain '82", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +GAME(1983, megaaton, 0, megaaton, megaaton, play_3_state, 0, ROT0, "Playmatic", "Meg-Aaton", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) +GAME(1983, megaatona, megaaton, megaaton, megaaton, play_3_state, 0, ROT0, "Playmatic", "Meg-Aaton (alternate set)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) +GAME(1984, nautilus, 0, play_3, play_3, play_3_state, 0, ROT0, "Playmatic", "Nautilus", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +GAME(1984, theraid, 0, play_3, play_3, play_3_state, 0, ROT0, "Playmatic", "The Raid", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) +GAME(1984, ufo_x, 0, play_3, play_3, play_3_state, 0, ROT0, "Playmatic", "UFO-X", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) +GAME(1984, kz26, 0, play_3, play_3, play_3_state, 0, ROT0, "Playmatic", "KZ-26", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) +GAME(1985, rock2500, 0, play_3, play_3, play_3_state, 0, ROT0, "Playmatic", "Rock 2500", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) +GAME(1985, starfirp, 0, play_3, play_3, play_3_state, 0, ROT0, "Playmatic", "Star Fire", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) +GAME(1985, starfirpa, starfirp, play_3, play_3, play_3_state, 0, ROT0, "Playmatic", "Star Fire (alternate set)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) +GAME(1985, trailer, 0, play_3, play_3, play_3_state, 0, ROT0, "Playmatic", "Trailer", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) +GAME(1986, fldragon, 0, play_3, play_3, play_3_state, 0, ROT0, "Playmatic", "Flash Dragon", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) +GAME(1986, fldragona, fldragon, play_3, play_3, play_3_state, 0, ROT0, "Playmatic", "Flash Dragon (alternate set)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) +GAME(1987, phntmshp, 0, sklflite, play_3, play_3_state, 0, ROT0, "Playmatic", "Phantom Ship", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) +GAME(1987, sklflite, 0, sklflite, play_3, play_3_state, 0, ROT0, "Playmatic", "Skill Flight (Playmatic)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) // not by Playmatic, but same hardware -GAME(1986, ridersrf, 0, play_3, play_3, driver_device, 0, ROT0, "JocMatic", "Rider's Surf", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) -GAME(1987, ironball, 0, play_3, play_3, driver_device, 0, ROT0, "Stargame", "Iron Balls", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) +GAME(1986, ridersrf, 0, play_3, play_3, play_3_state, 0, ROT0, "JocMatic", "Rider's Surf", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) +GAME(1987, ironball, 0, play_3, play_3, play_3_state, 0, ROT0, "Stargame", "Iron Balls", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) // "Z-Pinball" hardware, Z80 main and sound CPUs - to be split (?) -GAME(1986, eballchps, eballchp, sklflite, play_3, driver_device, 0, ROT0, "Bally (Maibesa license)", "Eight Ball Champ (Spain, Z-Pinball hardware)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1987, cobrapb, 0, sklflite, play_3, driver_device, 0, ROT0, "Playbar", "Cobra (Playbar)", MACHINE_IS_SKELETON_MECHANICAL) -//GAME(198?, comeback, 0, sklflite, play_3, driver_device, 0, ROT0, "Nondum", "Come Back", MACHINE_IS_SKELETON_MECHANICAL) // undumped +GAME(1986, eballchps, eballchp, sklflite, play_3, play_3_state, 0, ROT0, "Bally (Maibesa license)", "Eight Ball Champ (Spain, Z-Pinball hardware)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1987, cobrapb, 0, sklflite, play_3, play_3_state, 0, ROT0, "Playbar", "Cobra (Playbar)", MACHINE_IS_SKELETON_MECHANICAL) +//GAME(198?, comeback, 0, sklflite, play_3, play_3_state, 0, ROT0, "Nondum", "Come Back", MACHINE_IS_SKELETON_MECHANICAL) // undumped // bingo hardware, to be split (?) -GAME(1983, msdisco, 0, play_3, play_3, driver_device, 0, ROT0, "Playmatic", "Miss Disco (Bingo)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1983, msdisco, 0, play_3, play_3, play_3_state, 0, ROT0, "Playmatic", "Miss Disco (Bingo)", MACHINE_IS_SKELETON_MECHANICAL) diff --git a/src/mame/drivers/playch10.cpp b/src/mame/drivers/playch10.cpp index 0e42d8bb727..d95cb1697e5 100644 --- a/src/mame/drivers/playch10.cpp +++ b/src/mame/drivers/playch10.cpp @@ -645,7 +645,7 @@ INTERRUPT_GEN_MEMBER(playch10_state::playch10_interrupt){ device.execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE); } -static MACHINE_CONFIG_START( playch10, playch10_state ) +static MACHINE_CONFIG_START( playch10 ) // basic machine hardware MCFG_CPU_ADD("maincpu", Z80, 8000000/2) // 4 MHz MCFG_CPU_PROGRAM_MAP(bios_map) @@ -1690,7 +1690,7 @@ DRIVER_INIT_MEMBER(playch10_state,ttoon) DRIVER_INIT_CALL(pcgboard); } -/* YEAR NAME PARENT BIOS MACHINE INPUT INIT MONITOR */ +/* YEAR NAME PARENT MACHINE INPUT STATE INIT MONITOR */ /* Standard Games */ GAME( 1983, pc_tenis, playch10, playch10, playch10, playch10_state, playch10, ROT0, "Nintendo", "Tennis (PlayChoice-10)", 0 ) diff --git a/src/mame/drivers/playmark.cpp b/src/mame/drivers/playmark.cpp index 6ec5e882504..fd0d4c4e7a5 100644 --- a/src/mame/drivers/playmark.cpp +++ b/src/mame/drivers/playmark.cpp @@ -1209,7 +1209,7 @@ MACHINE_RESET_MEMBER(playmark_state,playmark) m_dispenser_latch = 0; } -static MACHINE_CONFIG_START( bigtwin, playmark_state ) +static MACHINE_CONFIG_START( bigtwin ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 12000000) /* 12 MHz */ @@ -1244,12 +1244,12 @@ static MACHINE_CONFIG_START( bigtwin, playmark_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", 1000000, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", 1000000, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MCFG_DEVICE_ADDRESS_MAP(AS_0, oki_map) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( bigtwinb, playmark_state ) +static MACHINE_CONFIG_START( bigtwinb ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_24MHz/2) @@ -1284,12 +1284,12 @@ static MACHINE_CONFIG_START( bigtwinb, playmark_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", 1000000, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", 1000000, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MCFG_DEVICE_ADDRESS_MAP(AS_0, oki_map) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( wbeachvl, playmark_state ) +static MACHINE_CONFIG_START( wbeachvl ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 12000000) /* 12 MHz */ @@ -1328,12 +1328,12 @@ static MACHINE_CONFIG_START( wbeachvl, playmark_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", 1000000, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", 1000000, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MCFG_DEVICE_ADDRESS_MAP(AS_0, oki_map) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( excelsr, playmark_state ) +static MACHINE_CONFIG_START( excelsr ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_24MHz/2) /* 12 MHz */ @@ -1368,12 +1368,12 @@ static MACHINE_CONFIG_START( excelsr, playmark_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", XTAL_1MHz, OKIM6295_PIN7_HIGH) /* 1MHz resonator */ + MCFG_OKIM6295_ADD("oki", XTAL_1MHz, PIN7_HIGH) /* 1MHz resonator */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MCFG_DEVICE_ADDRESS_MAP(AS_0, oki_map) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( hrdtimes, playmark_state ) +static MACHINE_CONFIG_START( hrdtimes ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_24MHz/2) /* verified on pcb */ @@ -1409,12 +1409,12 @@ static MACHINE_CONFIG_START( hrdtimes, playmark_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", XTAL_1MHz, OKIM6295_PIN7_HIGH) /* verified on pcb */ + MCFG_OKIM6295_ADD("oki", XTAL_1MHz, PIN7_HIGH) /* verified on pcb */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MCFG_DEVICE_ADDRESS_MAP(AS_0, oki_map) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( hotmind, playmark_state ) +static MACHINE_CONFIG_START( hotmind ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_24MHz/2) /* verified on pcb */ @@ -1455,12 +1455,12 @@ static MACHINE_CONFIG_START( hotmind, playmark_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", XTAL_1MHz, OKIM6295_PIN7_HIGH) /* verified on pcb */ + MCFG_OKIM6295_ADD("oki", XTAL_1MHz, PIN7_HIGH) /* verified on pcb */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MCFG_DEVICE_ADDRESS_MAP(AS_0, oki_map) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( luckboomh, playmark_state ) +static MACHINE_CONFIG_START( luckboomh ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_24MHz/2) /* verified on pcb */ @@ -1500,7 +1500,7 @@ static MACHINE_CONFIG_START( luckboomh, playmark_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", XTAL_1MHz, OKIM6295_PIN7_HIGH) /* verified on pcb */ + MCFG_OKIM6295_ADD("oki", XTAL_1MHz, PIN7_HIGH) /* verified on pcb */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MCFG_DEVICE_ADDRESS_MAP(AS_0, oki_map) MACHINE_CONFIG_END @@ -1985,12 +1985,12 @@ DRIVER_INIT_MEMBER(playmark_state,pic_decode) GAME( 1995, bigtwin, 0, bigtwin, bigtwin, playmark_state, pic_decode, ROT0, "Playmark", "Big Twin", MACHINE_SUPPORTS_SAVE ) GAME( 1995, bigtwinb, bigtwin, bigtwinb, bigtwinb, playmark_state, pic_decode, ROT0, "Playmark", "Big Twin (No Girls Conversion)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, wbeachvl, 0, wbeachvl, wbeachvl, driver_device, 0, ROT0, "Playmark", "World Beach Volley (set 1)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1995, wbeachvl2, wbeachvl, wbeachvl, wbeachvl, driver_device, 0, ROT0, "Playmark", "World Beach Volley (set 2)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1995, wbeachvl3, wbeachvl, wbeachvl, wbeachvl, driver_device, 0, ROT0, "Playmark", "World Beach Volley (set 3)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1995, wbeachvl, 0, wbeachvl, wbeachvl, playmark_state, 0, ROT0, "Playmark", "World Beach Volley (set 1)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1995, wbeachvl2, wbeachvl, wbeachvl, wbeachvl, playmark_state, 0, ROT0, "Playmark", "World Beach Volley (set 2)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1995, wbeachvl3, wbeachvl, wbeachvl, wbeachvl, playmark_state, 0, ROT0, "Playmark", "World Beach Volley (set 3)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) GAME( 1996, excelsr, 0, excelsr, excelsr, playmark_state, pic_decode, ROT0, "Playmark", "Excelsior (set 1)", MACHINE_SUPPORTS_SAVE ) GAME( 1996, excelsra, excelsr, excelsr, excelsr, playmark_state, pic_decode, ROT0, "Playmark", "Excelsior (set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, hrdtimes, 0, hrdtimes, hrdtimes, driver_device, 0, ROT0, "Playmark", "Hard Times (set 1)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1994, hrdtimesa, hrdtimes, hrdtimes, hrdtimes, driver_device, 0, ROT0, "Playmark", "Hard Times (set 2)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1994, hrdtimes, 0, hrdtimes, hrdtimes, playmark_state, 0, ROT0, "Playmark", "Hard Times (set 1)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1994, hrdtimesa, hrdtimes, hrdtimes, hrdtimes, playmark_state, 0, ROT0, "Playmark", "Hard Times (set 2)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) GAME( 1995, hotmind, 0, hotmind, hotmind, playmark_state, pic_decode, ROT0, "Playmark", "Hot Mind (Hard Times hardware)", MACHINE_SUPPORTS_SAVE ) GAME( 1996, luckboomh, luckboom, luckboomh, luckboomh, playmark_state, pic_decode, ROT0, "Playmark", "Lucky Boom (Hard Times hardware)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/plus4.cpp b/src/mame/drivers/plus4.cpp index 38dd420dfd3..229139ef426 100644 --- a/src/mame/drivers/plus4.cpp +++ b/src/mame/drivers/plus4.cpp @@ -16,7 +16,9 @@ #include "softlist.h" #include "speaker.h" #include "bus/cbmiec/cbmiec.h" +#include "bus/pet/c2n.h" #include "bus/pet/cass.h" +#include "bus/pet/diag264_lb_tape.h" #include "bus/plus4/exp.h" #include "bus/plus4/user.h" #include "bus/vcs_ctrl/ctrl.h" @@ -882,7 +884,7 @@ void plus4_state::machine_reset() // MACHINE_CONFIG( plus4 ) //------------------------------------------------- -static MACHINE_CONFIG_START( plus4, plus4_state ) +static MACHINE_CONFIG_START( plus4 ) // basic machine hardware MCFG_CPU_ADD(MOS7501_TAG, M7501, 0) MCFG_CPU_PROGRAM_MAP(plus4_mem) @@ -966,7 +968,7 @@ MACHINE_CONFIG_END // MACHINE_CONFIG( plus4p ) //------------------------------------------------- -static MACHINE_CONFIG_DERIVED_CLASS( plus4p, plus4, c16_state ) +static MACHINE_CONFIG_DERIVED( plus4p, plus4 ) MCFG_DEVICE_MODIFY(MOS7501_TAG) MCFG_DEVICE_CLOCK(XTAL_17_73447MHz/20) @@ -987,7 +989,7 @@ MACHINE_CONFIG_END // MACHINE_CONFIG( plus4n ) //------------------------------------------------- -static MACHINE_CONFIG_DERIVED_CLASS( plus4n, plus4, c16_state ) +static MACHINE_CONFIG_DERIVED( plus4n, plus4 ) MCFG_DEVICE_MODIFY(MOS7501_TAG) MCFG_DEVICE_CLOCK(XTAL_14_31818MHz/16) @@ -1008,7 +1010,7 @@ MACHINE_CONFIG_END // MACHINE_CONFIG( c16n ) //------------------------------------------------- -static MACHINE_CONFIG_DERIVED_CLASS( c16n, plus4n, c16_state ) +static MACHINE_CONFIG_DERIVED( c16n, plus4n ) MCFG_CPU_MODIFY(MOS7501_TAG) MCFG_M7501_PORT_CALLBACKS(READ8(c16_state, cpu_r), WRITE8(plus4_state, cpu_w)) MCFG_M7501_PORT_PULLS(0x00, 0xc0) @@ -1030,7 +1032,7 @@ MACHINE_CONFIG_END // MACHINE_CONFIG( c16p ) //------------------------------------------------- -static MACHINE_CONFIG_DERIVED_CLASS( c16p, plus4p, c16_state ) +static MACHINE_CONFIG_DERIVED( c16p, plus4p ) MCFG_CPU_MODIFY(MOS7501_TAG) MCFG_M7501_PORT_CALLBACKS(READ8(c16_state, cpu_r), WRITE8(plus4_state, cpu_w)) MCFG_M7501_PORT_PULLS(0x00, 0xc0) @@ -1267,13 +1269,13 @@ ROM_END // SYSTEM DRIVERS //************************************************************************** -// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS -COMP( 1984, c264, 0, 0, plus4n, plus4, driver_device, 0, "Commodore Business Machines", "Commodore 264 (Prototype)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -COMP( 1984, c232, c264, 0, c232, plus4, driver_device, 0, "Commodore Business Machines", "Commodore 232 (Prototype)", MACHINE_SUPPORTS_SAVE ) -COMP( 1984, v364, c264, 0, v364, plus4, driver_device, 0, "Commodore Business Machines", "Commodore V364 (Prototype)", MACHINE_SUPPORTS_SAVE ) -COMP( 1984, plus4, c264, 0, plus4n, plus4, driver_device, 0, "Commodore Business Machines", "Plus/4 (NTSC)", MACHINE_SUPPORTS_SAVE ) -COMP( 1984, plus4p, c264, 0, plus4p, plus4, driver_device, 0, "Commodore Business Machines", "Plus/4 (PAL)", MACHINE_SUPPORTS_SAVE ) -COMP( 1984, c16, c264, 0, c16n, c16, driver_device, 0, "Commodore Business Machines", "Commodore 16 (NTSC)", MACHINE_SUPPORTS_SAVE ) -COMP( 1984, c16p, c264, 0, c16p, c16, driver_device, 0, "Commodore Business Machines", "Commodore 16 (PAL)", MACHINE_SUPPORTS_SAVE ) -COMP( 1984, c16_hu, c264, 0, c16p, c16, driver_device, 0, "Commodore Business Machines", "Commodore 16 (Hungary)", MACHINE_SUPPORTS_SAVE ) -COMP( 1984, c116, c264, 0, c16p, c16, driver_device, 0, "Commodore Business Machines", "Commodore 116", MACHINE_SUPPORTS_SAVE ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1984, c264, 0, 0, plus4n, plus4, c16_state, 0, "Commodore Business Machines", "Commodore 264 (Prototype)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +COMP( 1984, c232, c264, 0, c232, plus4, c16_state, 0, "Commodore Business Machines", "Commodore 232 (Prototype)", MACHINE_SUPPORTS_SAVE ) +COMP( 1984, v364, c264, 0, v364, plus4, c16_state, 0, "Commodore Business Machines", "Commodore V364 (Prototype)", MACHINE_SUPPORTS_SAVE ) +COMP( 1984, plus4, c264, 0, plus4n, plus4, c16_state, 0, "Commodore Business Machines", "Plus/4 (NTSC)", MACHINE_SUPPORTS_SAVE ) +COMP( 1984, plus4p, c264, 0, plus4p, plus4, c16_state, 0, "Commodore Business Machines", "Plus/4 (PAL)", MACHINE_SUPPORTS_SAVE ) +COMP( 1984, c16, c264, 0, c16n, c16, c16_state, 0, "Commodore Business Machines", "Commodore 16 (NTSC)", MACHINE_SUPPORTS_SAVE ) +COMP( 1984, c16p, c264, 0, c16p, c16, c16_state, 0, "Commodore Business Machines", "Commodore 16 (PAL)", MACHINE_SUPPORTS_SAVE ) +COMP( 1984, c16_hu, c264, 0, c16p, c16, c16_state, 0, "Commodore Business Machines", "Commodore 16 (Hungary)", MACHINE_SUPPORTS_SAVE ) +COMP( 1984, c116, c264, 0, c16p, c16, c16_state, 0, "Commodore Business Machines", "Commodore 116", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/pluto5.cpp b/src/mame/drivers/pluto5.cpp index f6e5fce2e01..80c86242567 100644 --- a/src/mame/drivers/pluto5.cpp +++ b/src/mame/drivers/pluto5.cpp @@ -198,7 +198,7 @@ public: protected: // devices - required_device m_maincpu; + required_device m_maincpu; public: DECLARE_DRIVER_INIT(hb); virtual void machine_start() override; @@ -251,7 +251,7 @@ void pluto5_state::machine_start() } -static MACHINE_CONFIG_START( pluto5, pluto5_state ) +static MACHINE_CONFIG_START( pluto5 ) MCFG_CPU_ADD("maincpu", M68340, 16000000) MCFG_CPU_PROGRAM_MAP(pluto5_map) diff --git a/src/mame/drivers/plygonet.cpp b/src/mame/drivers/plygonet.cpp index d72732cdf2b..871baafe51a 100644 --- a/src/mame/drivers/plygonet.cpp +++ b/src/mame/drivers/plygonet.cpp @@ -319,7 +319,7 @@ READ16_MEMBER(polygonet_state::dsp56k_bootload_r) static uint8_t dsp56k_bank_group(device_t* cpu) { - uint16_t portC = ((dsp56k_device *)cpu)->get_peripheral_memory(0xffe3); + uint16_t portC = downcast(cpu)->get_peripheral_memory(0xffe3); /* If bank group B is on, it overrides bank group A */ if (portC & 0x0002) @@ -332,7 +332,7 @@ static uint8_t dsp56k_bank_group(device_t* cpu) static uint8_t dsp56k_bank_num(device_t* cpu, uint8_t bank_group) { - uint16_t portC = ((dsp56k_device *)cpu)->get_peripheral_memory(0xffe3); + uint16_t portC = downcast(cpu)->get_peripheral_memory(0xffe3); if (bank_group == BANK_GROUP_A) { @@ -603,7 +603,7 @@ WRITE_LINE_MEMBER(polygonet_state::k054539_nmi_gen) m_sound_intck = state; } -static MACHINE_CONFIG_START( plygonet, polygonet_state ) +static MACHINE_CONFIG_START( plygonet ) MCFG_CPU_ADD("maincpu", M68EC020, XTAL_32MHz/2) MCFG_CPU_PROGRAM_MAP(main_map) @@ -778,6 +778,6 @@ ROM_START( polynetw ) ROM_LOAD( "polynetw.nv", 0x0000, 0x0080, CRC(8f39d644) SHA1(8733e1a288ba20c4b04b3aedde52801d05cebdf9) ) ROM_END -/* ROM parent machine inp init */ +// YEAR NAME PARENT MACHINE INPUT STATE INIT GAME( 1993, plygonet, 0, plygonet, polygonet, polygonet_state, polygonet, ROT90, "Konami", "Polygonet Commanders (ver UAA)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) -GAME( 1993, polynetw, 0, plygonet, polynetw, polygonet_state, polygonet, ROT90, "Konami", "Poly-Net Warriors (ver JAA)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +GAME( 1993, polynetw, 0, plygonet, polynetw, polygonet_state, polygonet, ROT90, "Konami", "Poly-Net Warriors (ver JAA)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/pm68k.cpp b/src/mame/drivers/pm68k.cpp index cd4085ba6c3..fb1c6721970 100644 --- a/src/mame/drivers/pm68k.cpp +++ b/src/mame/drivers/pm68k.cpp @@ -27,7 +27,7 @@ public: { } - DECLARE_WRITE8_MEMBER(kbd_put); + void kbd_put(u8 data); DECLARE_READ16_MEMBER(keyin_r); DECLARE_READ16_MEMBER(status_r); private: @@ -73,19 +73,19 @@ void pm68k_state::machine_reset() m_maincpu->reset(); } -WRITE8_MEMBER( pm68k_state::kbd_put ) +void pm68k_state::kbd_put(u8 data) { m_term_data = data; } -static MACHINE_CONFIG_START( pm68k, pm68k_state ) +static MACHINE_CONFIG_START( pm68k ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 8000000) MCFG_CPU_PROGRAM_MAP(pm68k_mem) /* video hardware */ MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0) - MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(pm68k_state, kbd_put)) + MCFG_GENERIC_TERMINAL_KEYBOARD_CB(PUT(pm68k_state, kbd_put)) MACHINE_CONFIG_END /* ROM definition */ @@ -100,5 +100,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 198?, pm68k, 0, 0, pm68k, pm68k, driver_device, 0, "Callan Data Systems", "PM68K", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW ) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 198?, pm68k, 0, 0, pm68k, pm68k, pm68k_state, 0, "Callan Data Systems", "PM68K", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW ) diff --git a/src/mame/drivers/pmd85.cpp b/src/mame/drivers/pmd85.cpp index af3ca41d182..cf1ffbbbf89 100644 --- a/src/mame/drivers/pmd85.cpp +++ b/src/mame/drivers/pmd85.cpp @@ -572,7 +572,7 @@ static const struct CassetteOptions pmd85_cassette_options = }; /* machine definition */ -static MACHINE_CONFIG_START( pmd85, pmd85_state ) +static MACHINE_CONFIG_START( pmd85 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8080, 2000000) /* 2.048MHz ??? */ MCFG_CPU_PROGRAM_MAP(pmd85_mem) @@ -807,13 +807,13 @@ ROM_START(c2717pmd) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ -COMP( 1985, pmd851, 0, 0, pmd851, pmd85, pmd85_state, pmd851, "Tesla", "PMD-85.1" , 0) -COMP( 1985, pmd852, pmd851, 0, pmd851, pmd85, pmd85_state, pmd851, "Tesla", "PMD-85.2" , 0) -COMP( 1985, pmd852a, pmd851, 0, pmd852a, pmd85, pmd85_state, pmd852a, "Tesla", "PMD-85.2A" , 0) -COMP( 1985, pmd852b, pmd851, 0, pmd852a, pmd85, pmd85_state, pmd852a, "Tesla", "PMD-85.2B" , 0) -COMP( 1988, pmd853, pmd851, 0, pmd853, pmd85, pmd85_state, pmd853, "Tesla", "PMD-85.3" , 0) -COMP( 1986, alfa, pmd851, 0, alfa, alfa, pmd85_state, alfa, "Didaktik Skalica", "Didaktik Alfa" , 0) -COMP( 1985, mato, pmd851, 0, mato, mato, pmd85_state, mato, "Statny", "Mato" , 0) -COMP( 1989, c2717, pmd851, 0, c2717, pmd85, pmd85_state, c2717, "Zbrojovka Brno", "Consul 2717" , 0) -COMP( 1989, c2717pmd,pmd851, 0, c2717, pmd85, pmd85_state, c2717, "Zbrojovka Brno", "Consul 2717 (with PMD-32)" , MACHINE_NOT_WORKING) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1985, pmd851, 0, 0, pmd851, pmd85, pmd85_state, pmd851, "Tesla", "PMD-85.1", 0 ) +COMP( 1985, pmd852, pmd851, 0, pmd851, pmd85, pmd85_state, pmd851, "Tesla", "PMD-85.2", 0 ) +COMP( 1985, pmd852a, pmd851, 0, pmd852a, pmd85, pmd85_state, pmd852a, "Tesla", "PMD-85.2A", 0 ) +COMP( 1985, pmd852b, pmd851, 0, pmd852a, pmd85, pmd85_state, pmd852a, "Tesla", "PMD-85.2B", 0 ) +COMP( 1988, pmd853, pmd851, 0, pmd853, pmd85, pmd85_state, pmd853, "Tesla", "PMD-85.3", 0 ) +COMP( 1986, alfa, pmd851, 0, alfa, alfa, pmd85_state, alfa, "Didaktik Skalica", "Didaktik Alfa", 0 ) +COMP( 1985, mato, pmd851, 0, mato, mato, pmd85_state, mato, "Statny", "Mato", 0 ) +COMP( 1989, c2717, pmd851, 0, c2717, pmd85, pmd85_state, c2717, "Zbrojovka Brno", "Consul 2717", 0 ) +COMP( 1989, c2717pmd,pmd851, 0, c2717, pmd85, pmd85_state, c2717, "Zbrojovka Brno", "Consul 2717 (with PMD-32)", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/pmi80.cpp b/src/mame/drivers/pmi80.cpp index c1a0e82d503..0816086760c 100644 --- a/src/mame/drivers/pmi80.cpp +++ b/src/mame/drivers/pmi80.cpp @@ -152,7 +152,7 @@ void pmi80_state::machine_reset() } -static MACHINE_CONFIG_START( pmi80, pmi80_state ) +static MACHINE_CONFIG_START( pmi80 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",I8080, XTAL_1MHz) MCFG_CPU_PROGRAM_MAP(pmi80_mem) @@ -171,5 +171,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1982, pmi80, 0, 0, pmi80, pmi80, driver_device, 0, "Tesla", "PMI-80", MACHINE_NO_SOUND_HW) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1982, pmi80, 0, 0, pmi80, pmi80, pmi80_state, 0, "Tesla", "PMI-80", MACHINE_NO_SOUND_HW) diff --git a/src/mame/drivers/pntnpuzl.cpp b/src/mame/drivers/pntnpuzl.cpp index 5b5dcba359f..0d0e3c87fab 100644 --- a/src/mame/drivers/pntnpuzl.cpp +++ b/src/mame/drivers/pntnpuzl.cpp @@ -346,7 +346,7 @@ static INPUT_PORTS_START( pntnpuzl ) PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_D) INPUT_PORTS_END -static MACHINE_CONFIG_START( pntnpuzl, pntnpuzl_state ) +static MACHINE_CONFIG_START( pntnpuzl ) MCFG_CPU_ADD("maincpu", M68000, 12000000)//?? MCFG_CPU_PROGRAM_MAP(pntnpuzl_map) diff --git a/src/mame/drivers/pockchal.cpp b/src/mame/drivers/pockchal.cpp index facc24e60d6..40ed4c2aff2 100644 --- a/src/mame/drivers/pockchal.cpp +++ b/src/mame/drivers/pockchal.cpp @@ -91,7 +91,7 @@ void pockchalv1_state::machine_reset() } -static MACHINE_CONFIG_START( pockchalv1, pockchalv1_state ) +static MACHINE_CONFIG_START( pockchalv1 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMP90845,8000000) /* ? MHz */ @@ -126,5 +126,5 @@ MACHINE_CONFIG_END ROM_START( pockchal ) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME*/ -CONS( 199?, pockchal, 0, 0, pockchalv1, pockchalv1, driver_device, 0, "Benesse Corporation", "Pocket Challenge W (Japan)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +CONS( 199?, pockchal, 0, 0, pockchalv1, pockchalv1, pockchalv1_state, 0, "Benesse Corporation", "Pocket Challenge W (Japan)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/pocketc.cpp b/src/mame/drivers/pocketc.cpp index 1fbb9501f14..688be28d2d8 100644 --- a/src/mame/drivers/pocketc.cpp +++ b/src/mame/drivers/pocketc.cpp @@ -712,7 +712,7 @@ static GFXDECODE_START( pc1251 ) GFXDECODE_ENTRY( "gfx1", 0x0000, pc1251_charlayout, 0, 8 ) GFXDECODE_END -static MACHINE_CONFIG_START( pocketc, pocketc_state) +static MACHINE_CONFIG_START( pocketc ) MCFG_QUANTUM_TIME(attotime::from_hz(60)) MCFG_NVRAM_ADD_0FILL("cpu_nvram") @@ -739,7 +739,7 @@ static MACHINE_CONFIG_START( pocketc, pocketc_state) MCFG_PALETTE_INIT_OWNER( pocketc_state, pocketc ) MACHINE_CONFIG_END -static MACHINE_CONFIG_DERIVED_CLASS( pc1401, pocketc, pc1401_state ) +static MACHINE_CONFIG_DERIVED( pc1401, pocketc ) MCFG_CPU_ADD("maincpu", SC61860, 192000) /* 7.8336 MHz */ MCFG_CPU_PROGRAM_MAP(pc1401_mem) MCFG_SC61860_READ_RESET_HANDLER(READLINE(pc1401_state,pc1401_reset)) @@ -760,7 +760,7 @@ static MACHINE_CONFIG_DERIVED( pc1402, pc1401 ) MCFG_CPU_PROGRAM_MAP( pc1402_mem) MACHINE_CONFIG_END -static MACHINE_CONFIG_DERIVED_CLASS( pc1250, pocketc, pc1251_state ) +static MACHINE_CONFIG_DERIVED( pc1250, pocketc ) MCFG_CPU_ADD("maincpu", SC61860, 192000) /* 7.8336 MHz */ MCFG_CPU_PROGRAM_MAP( pc1250_mem) MCFG_SC61860_READ_RESET_HANDLER(NOOP) @@ -802,7 +802,7 @@ static MACHINE_CONFIG_DERIVED( pc1261, pc1260 ) MCFG_CPU_PROGRAM_MAP( pc1261_mem) MACHINE_CONFIG_END -static MACHINE_CONFIG_DERIVED_CLASS( pc1350, pocketc, pc1350_state ) +static MACHINE_CONFIG_DERIVED( pc1350, pocketc ) MCFG_CPU_ADD("maincpu", SC61860, 192000) /* 7.8336 MHz */ MCFG_CPU_PROGRAM_MAP( pc1350_mem) MCFG_SC61860_READ_RESET_HANDLER(NOOP) @@ -830,7 +830,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( pc1350, pocketc, pc1350_state ) MCFG_RAM_EXTRA_OPTIONS("12K,20K") MACHINE_CONFIG_END -static MACHINE_CONFIG_DERIVED_CLASS( pc1403, pocketc, pc1403_state ) +static MACHINE_CONFIG_DERIVED( pc1403, pocketc ) MCFG_CPU_ADD( "maincpu", SC61860, 256000 ) MCFG_CPU_PROGRAM_MAP( pc1403_mem) MCFG_SC61860_READ_RESET_HANDLER(NOOP) @@ -964,25 +964,25 @@ ROM_END pc1600 */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ -/* cpu sc61860 */ -COMP( 1982, pc1245, 0, 0, pc1250, pc1251, pc1251_state, pc1251, "Sharp", "Pocket Computer 1245", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -COMP( 1982, pc1250, 0, 0, pc1250, pc1251, pc1251_state, pc1251, "Sharp", "Pocket Computer 1250", MACHINE_NO_SOUND) -COMP( 1982, pc1251, pc1250, 0, pc1251, pc1251, pc1251_state, pc1251, "Sharp", "Pocket Computer 1251", MACHINE_NO_SOUND) -COMP( 1982, pc1255, pc1250, 0, pc1255, pc1251, pc1251_state, pc1251, "Sharp", "Pocket Computer 1255", MACHINE_NO_SOUND) -COMP( 1983, trs80pc3, pc1250, 0, pc1251, pc1251, pc1251_state, pc1251, "Tandy Radio Shack", "TRS-80 Pocket Computer PC-3", MACHINE_NO_SOUND) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +// cpu sc61860 +COMP( 1982, pc1245, 0, 0, pc1250, pc1251, pc1251_state, pc1251, "Sharp", "Pocket Computer 1245", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +COMP( 1982, pc1250, 0, 0, pc1250, pc1251, pc1251_state, pc1251, "Sharp", "Pocket Computer 1250", MACHINE_NO_SOUND) +COMP( 1982, pc1251, pc1250, 0, pc1251, pc1251, pc1251_state, pc1251, "Sharp", "Pocket Computer 1251", MACHINE_NO_SOUND) +COMP( 1982, pc1255, pc1250, 0, pc1255, pc1251, pc1251_state, pc1251, "Sharp", "Pocket Computer 1255", MACHINE_NO_SOUND) +COMP( 1983, trs80pc3, pc1250, 0, pc1251, pc1251, pc1251_state, pc1251, "Tandy Radio Shack", "TRS-80 Pocket Computer PC-3", MACHINE_NO_SOUND) -COMP( 1982, pc1260, 0, 0, pc1260, pc1251, pc1251_state, pc1251, "Sharp", "Pocket Computer 1260", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -COMP( 1982, pc1261, pc1260, 0, pc1261, pc1251, pc1251_state, pc1251, "Sharp", "Pocket Computer 1261/1262", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +COMP( 1982, pc1260, 0, 0, pc1260, pc1251, pc1251_state, pc1251, "Sharp", "Pocket Computer 1260", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +COMP( 1982, pc1261, pc1260, 0, pc1261, pc1251, pc1251_state, pc1251, "Sharp", "Pocket Computer 1261/1262", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -/* pc1261/pc1262 */ -COMP( 1984, pc1350, 0, 0, pc1350, pc1350, driver_device, 0, "Sharp", "Pocket Computer 1350", MACHINE_NO_SOUND ) -COMP( 198?, pc1450, 0, 0, pc1350, pc1350, driver_device, 0, "Sharp", "Pocket Computer 1450", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +// pc1261/pc1262 +COMP( 1984, pc1350, 0, 0, pc1350, pc1350, pc1350_state, 0, "Sharp", "Pocket Computer 1350", MACHINE_NO_SOUND ) +COMP( 198?, pc1450, 0, 0, pc1350, pc1350, pc1350_state, 0, "Sharp", "Pocket Computer 1450", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -COMP( 1983, pc1401, 0, 0, pc1401, pc1401, pc1401_state, pc1401, "Sharp", "Pocket Computer 1401", MACHINE_NO_SOUND) -COMP( 1984, pc1402, pc1401, 0, pc1402, pc1401, pc1401_state, pc1401, "Sharp", "Pocket Computer 1402", MACHINE_NO_SOUND) -COMP( 198?, pc1360, pc1401, 0, pc1401, pc1401, pc1401_state, pc1401, "Sharp", "Pocket Computer 1360", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +COMP( 1983, pc1401, 0, 0, pc1401, pc1401, pc1401_state, pc1401, "Sharp", "Pocket Computer 1401", MACHINE_NO_SOUND) +COMP( 1984, pc1402, pc1401, 0, pc1402, pc1401, pc1401_state, pc1401, "Sharp", "Pocket Computer 1402", MACHINE_NO_SOUND) +COMP( 198?, pc1360, pc1401, 0, pc1401, pc1401, pc1401_state, pc1401, "Sharp", "Pocket Computer 1360", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -/* 72kb rom, 32kb ram, cpu? pc1360 */ -COMP( 1986, pc1403, 0, 0, pc1403, pc1403, pc1403_state, pc1403, "Sharp", "Pocket Computer 1403", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -COMP( 198?, pc1403h, pc1403, 0, pc1403h,pc1403, pc1403_state, pc1403, "Sharp", "Pocket Computer 1403H", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +// 72kb rom, 32kb ram, cpu? pc1360 +COMP( 1986, pc1403, 0, 0, pc1403, pc1403, pc1403_state, pc1403, "Sharp", "Pocket Computer 1403", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +COMP( 198?, pc1403h, pc1403, 0, pc1403h, pc1403, pc1403_state, pc1403, "Sharp", "Pocket Computer 1403H", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) diff --git a/src/mame/drivers/pockstat.cpp b/src/mame/drivers/pockstat.cpp index 8c83cbc9b4e..a1edb66638f 100644 --- a/src/mame/drivers/pockstat.cpp +++ b/src/mame/drivers/pockstat.cpp @@ -972,7 +972,7 @@ DEVICE_IMAGE_LOAD_MEMBER( pockstat_state, pockstat_flash ) return image_init_result::PASS; } -static MACHINE_CONFIG_START( pockstat, pockstat_state ) +static MACHINE_CONFIG_START( pockstat ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", ARM7, DEFAULT_CLOCK) MCFG_CPU_PROGRAM_MAP(pockstat_mem) @@ -1008,5 +1008,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -CONS( 1999, pockstat, 0, 0, pockstat, pockstat, driver_device, 0, "Sony Computer Entertainment Inc", "Sony PocketStation", MACHINE_SUPPORTS_SAVE ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +CONS( 1999, pockstat, 0, 0, pockstat, pockstat, pockstat_state, 0, "Sony Computer Entertainment Inc", "Sony PocketStation", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/pofo.cpp b/src/mame/drivers/pofo.cpp index 5d9b7ac92b1..2cfbd3719f2 100644 --- a/src/mame/drivers/pofo.cpp +++ b/src/mame/drivers/pofo.cpp @@ -91,9 +91,9 @@ public: required_device m_maincpu; required_device m_lcdc; - required_device m_dtmf; - required_device m_ccm; - required_device m_exp; + required_device m_dtmf; + required_device m_ccm; + required_device m_exp; required_device m_timer_tick; required_device m_nvram; required_device m_ram; @@ -1004,7 +1004,7 @@ void portfolio_state::machine_reset() // MACHINE_CONFIG( portfolio ) //------------------------------------------------- -static MACHINE_CONFIG_START( portfolio, portfolio_state ) +static MACHINE_CONFIG_START( portfolio ) // basic machine hardware MCFG_CPU_ADD(M80C88A_TAG, I8088, XTAL_4_9152MHz) MCFG_CPU_PROGRAM_MAP(portfolio_mem) @@ -1086,5 +1086,5 @@ ROM_END // SYSTEM DRIVERS //************************************************************************** -// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS -COMP( 1989, pofo, 0, 0, portfolio, portfolio, driver_device, 0, "Atari", "Portfolio", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1989, pofo, 0, 0, portfolio, portfolio, portfolio_state, 0, "Atari", "Portfolio", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/poisk1.cpp b/src/mame/drivers/poisk1.cpp index 3d4ff3249da..57d9a25e7d2 100644 --- a/src/mame/drivers/poisk1.cpp +++ b/src/mame/drivers/poisk1.cpp @@ -35,6 +35,7 @@ #include "sound/spkrdev.h" #include "video/cgapal.h" +#include "screen.h" #include "softlist.h" #include "speaker.h" @@ -630,7 +631,7 @@ static INPUT_PORTS_START( poisk1 ) PORT_INCLUDE( poisk1_keyboard_v91 ) INPUT_PORTS_END -static MACHINE_CONFIG_START( poisk1, p1_state ) +static MACHINE_CONFIG_START( poisk1 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8088, 5000000) MCFG_CPU_PROGRAM_MAP(poisk1_map) @@ -736,5 +737,5 @@ ROM_END ***************************************************************************/ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ -COMP ( 1989, poisk1, ibm5150, 0, poisk1, poisk1, p1_state, poisk1, "Electronmash", "Poisk-1", 0) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP ( 1989, poisk1, ibm5150, 0, poisk1, poisk1, p1_state, poisk1, "Electronmash", "Poisk-1", 0 ) diff --git a/src/mame/drivers/pokechmp.cpp b/src/mame/drivers/pokechmp.cpp index 4885939cd14..0734450b2f6 100644 --- a/src/mame/drivers/pokechmp.cpp +++ b/src/mame/drivers/pokechmp.cpp @@ -216,7 +216,7 @@ OKI M6295 (an AD65 on this board, note pin 7 is low): 1.5mhz */ -static MACHINE_CONFIG_START( pokechmp, pokechmp_state ) +static MACHINE_CONFIG_START( pokechmp ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, XTAL_4MHz/4) @@ -251,7 +251,7 @@ static MACHINE_CONFIG_START( pokechmp, pokechmp_state ) MCFG_SOUND_ADD("ym2", YM3812, XTAL_24MHz/16) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MCFG_OKIM6295_ADD("oki", XTAL_24MHz/16, OKIM6295_PIN7_LOW) + MCFG_OKIM6295_ADD("oki", XTAL_24MHz/16, PIN7_LOW) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) /* sound fx */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) MCFG_DEVICE_ADDRESS_MAP(AS_0, pokechmp_oki_map) diff --git a/src/mame/drivers/pokemini.cpp b/src/mame/drivers/pokemini.cpp index 6f75c5b1d5c..430fd220f86 100644 --- a/src/mame/drivers/pokemini.cpp +++ b/src/mame/drivers/pokemini.cpp @@ -1753,7 +1753,7 @@ uint32_t pokemini_state::screen_update(screen_device &screen, bitmap_ind16 &bitm } -static MACHINE_CONFIG_START( pokemini, pokemini_state ) +static MACHINE_CONFIG_START( pokemini ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", MINX, 4000000) MCFG_CPU_PROGRAM_MAP(pokemini_mem_map) @@ -1797,4 +1797,4 @@ ROM_START( pokemini ) ROM_END -CONS( 2001, pokemini, 0, 0, pokemini, pokemini, driver_device, 0, "Nintendo", "Pokemon Mini", MACHINE_NO_SOUND ) +CONS( 2001, pokemini, 0, 0, pokemini, pokemini, pokemini_state, 0, "Nintendo", "Pokemon Mini", MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/poker72.cpp b/src/mame/drivers/poker72.cpp index 903b8a322df..d0dc35d5e17 100644 --- a/src/mame/drivers/poker72.cpp +++ b/src/mame/drivers/poker72.cpp @@ -363,7 +363,7 @@ void poker72_state::machine_reset() membank("bank1")->set_entry(0); } -static MACHINE_CONFIG_START( poker72, poker72_state ) +static MACHINE_CONFIG_START( poker72 ) /* basic machine hardware */ diff --git a/src/mame/drivers/polepos.cpp b/src/mame/drivers/polepos.cpp index 6a7b0dc8509..8f4ad67524e 100644 --- a/src/mame/drivers/polepos.cpp +++ b/src/mame/drivers/polepos.cpp @@ -863,7 +863,7 @@ GFXDECODE_END * Machine driver *********************************************************************/ -static MACHINE_CONFIG_START( polepos, polepos_state ) +static MACHINE_CONFIG_START( polepos ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, MASTER_CLOCK/8) /* 3.072 MHz */ @@ -990,7 +990,7 @@ static ADDRESS_MAP_START( sound_z80_bootleg_iomap, AS_IO, 8, polepos_state ) AM_RANGE(0x00, 0x00) AM_DEVREADWRITE("tms", tms5220_device, status_r, data_w) ADDRESS_MAP_END -static MACHINE_CONFIG_START( topracern, polepos_state ) +static MACHINE_CONFIG_START( topracern ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, MASTER_CLOCK/8) /* 3.072 MHz */ @@ -2375,17 +2375,17 @@ DRIVER_INIT_MEMBER(polepos_state,polepos2) *********************************************************************/ /* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS */ -GAME( 1982, polepos, 0, polepos, poleposa, driver_device, 0, ROT0, "Namco", "Pole Position (World)", 0 ) -GAME( 1982, poleposj, polepos, polepos, polepos, driver_device, 0, ROT0, "Namco", "Pole Position (Japan)", 0 ) -GAME( 1982, poleposa1, polepos, polepos, poleposa, driver_device, 0, ROT0, "Namco (Atari license)", "Pole Position (Atari version 1)", 0 ) -GAME( 1982, poleposa2, polepos, polepos, poleposa, driver_device, 0, ROT0, "Namco (Atari license)", "Pole Position (Atari version 2)", 0 ) -GAME( 1984, topracer, polepos, polepos, polepos, driver_device, 0, ROT0, "bootleg", "Top Racer (with MB8841 + MB8842, 1984)", 0 ) // the NAMCO customs have been cloned on these bootlegs -GAME( 1983, topracera, polepos, polepos, polepos, driver_device, 0, ROT0, "bootleg", "Top Racer (with MB8841 + MB8842, 1983)", 0 ) // the only difference between them is the year displayed on the title screen -GAME( 1983, ppspeed, polepos, polepos, polepos, driver_device, 0, ROT0, "bootleg", "Speed Up (Spanish bootleg of Pole Position)", 0 ) // very close to topracer / topracera -GAME( 1982, topracern, polepos, topracern, topracern, driver_device, 0, ROT0, "bootleg", "Top Racer (no MB8841 + MB8842)", MACHINE_IMPERFECT_SOUND ) // explosion sound generator missing +GAME( 1982, polepos, 0, polepos, poleposa, polepos_state, 0, ROT0, "Namco", "Pole Position (World)", 0 ) +GAME( 1982, poleposj, polepos, polepos, polepos, polepos_state, 0, ROT0, "Namco", "Pole Position (Japan)", 0 ) +GAME( 1982, poleposa1, polepos, polepos, poleposa, polepos_state, 0, ROT0, "Namco (Atari license)", "Pole Position (Atari version 1)", 0 ) +GAME( 1982, poleposa2, polepos, polepos, poleposa, polepos_state, 0, ROT0, "Namco (Atari license)", "Pole Position (Atari version 2)", 0 ) +GAME( 1984, topracer, polepos, polepos, polepos, polepos_state, 0, ROT0, "bootleg", "Top Racer (with MB8841 + MB8842, 1984)", 0 ) // the NAMCO customs have been cloned on these bootlegs +GAME( 1983, topracera, polepos, polepos, polepos, polepos_state, 0, ROT0, "bootleg", "Top Racer (with MB8841 + MB8842, 1983)", 0 ) // the only difference between them is the year displayed on the title screen +GAME( 1983, ppspeed, polepos, polepos, polepos, polepos_state, 0, ROT0, "bootleg", "Speed Up (Spanish bootleg of Pole Position)", 0 ) // very close to topracer / topracera +GAME( 1982, topracern, polepos, topracern, topracern, polepos_state, 0, ROT0, "bootleg", "Top Racer (no MB8841 + MB8842)", MACHINE_IMPERFECT_SOUND ) // explosion sound generator missing GAME( 1983, polepos2, 0, polepos, polepos2j, polepos_state, polepos2, ROT0, "Namco", "Pole Position II (Japan)", 0 ) GAME( 1983, polepos2a, polepos2, polepos, polepos2, polepos_state, polepos2, ROT0, "Namco (Atari license)", "Pole Position II (Atari)", 0 ) -GAME( 1983, polepos2b, polepos2, polepos, polepos2, driver_device, 0, ROT0, "bootleg", "Pole Position II (bootleg)", 0 ) -GAME( 1984, polepos2bi, polepos2, polepos2bi, polepos2bi,driver_device, 0, ROT0, "bootleg", "Gran Premio F1 (Italian bootleg of Pole Position II)", MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_SOUND ) -GAME( 1984, polepos2bs, polepos2, polepos2bi, polepos2bi,driver_device, 0, ROT0, "bootleg (BCN Internacional S.A.)", "Gran Premio F1 (Spanish bootleg of Pole Position II)", MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_SOUND ) +GAME( 1983, polepos2b, polepos2, polepos, polepos2, polepos_state, 0, ROT0, "bootleg", "Pole Position II (bootleg)", 0 ) +GAME( 1984, polepos2bi, polepos2, polepos2bi, polepos2bi,polepos_state, 0, ROT0, "bootleg", "Gran Premio F1 (Italian bootleg of Pole Position II)", MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_SOUND ) +GAME( 1984, polepos2bs, polepos2, polepos2bi, polepos2bi,polepos_state, 0, ROT0, "bootleg (BCN Internacional S.A.)", "Gran Premio F1 (Spanish bootleg of Pole Position II)", MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_SOUND ) diff --git a/src/mame/drivers/policetr.cpp b/src/mame/drivers/policetr.cpp index 998076fb28c..450956124f8 100644 --- a/src/mame/drivers/policetr.cpp +++ b/src/mame/drivers/policetr.cpp @@ -397,7 +397,7 @@ void policetr_state::machine_start() * *************************************/ -static MACHINE_CONFIG_START( policetr, policetr_state ) +static MACHINE_CONFIG_START( policetr ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", R3041, MASTER_CLOCK/2) @@ -719,14 +719,14 @@ DRIVER_INIT_MEMBER(policetr_state,sshoot12) * *************************************/ -GAME( 1996, policetr, 0, policetr, policetr, policetr_state, policetr, ROT0, "P&P Marketing", "Police Trainer (Rev 1.3)", 0 ) -GAME( 1996, policetr11, policetr, policetr, polict10, policetr_state, policetr, ROT0, "P&P Marketing", "Police Trainer (Rev 1.1)", 0 ) -GAME( 1996, policetr10, policetr, policetr, polict10, policetr_state, policetr, ROT0, "P&P Marketing", "Police Trainer (Rev 1.0)", 0 ) +GAME( 1996, policetr, 0, policetr, policetr, policetr_state, policetr, ROT0, "P&P Marketing", "Police Trainer (Rev 1.3)", 0 ) +GAME( 1996, policetr11, policetr, policetr, polict10, policetr_state, policetr, ROT0, "P&P Marketing", "Police Trainer (Rev 1.1)", 0 ) +GAME( 1996, policetr10, policetr, policetr, polict10, policetr_state, policetr, ROT0, "P&P Marketing", "Police Trainer (Rev 1.0)", 0 ) GAME( 1996, policetr13a, policetr, sshooter, policetr, policetr_state, plctr13b, ROT0, "P&P Marketing", "Police Trainer (Rev 1.3B Newer)", 0 ) -GAME( 1996, policetr13b, policetr, sshooter, policetr, policetr_state, plctr13b, ROT0, "P&P Marketing", "Police Trainer (Rev 1.3B)", 0 ) +GAME( 1996, policetr13b, policetr, sshooter, policetr, policetr_state, plctr13b, ROT0, "P&P Marketing", "Police Trainer (Rev 1.3B)", 0 ) -GAME( 1998, sshooter, 0, sshooter, policetr, policetr_state, sshooter, ROT0, "P&P Marketing", "Sharpshooter (Rev 1.9)", 0 ) -GAME( 1998, sshooter17, sshooter, sshooter, policetr, policetr_state, sshooter, ROT0, "P&P Marketing", "Sharpshooter (Rev 1.7)", 0 ) -GAME( 1998, sshooter12, sshooter, sshooter, sshoot11, policetr_state, sshoot12, ROT0, "P&P Marketing", "Sharpshooter (Rev 1.2)", 0 ) -GAME( 1998, sshooter11, sshooter, sshooter, sshoot11, policetr_state, sshoot12, ROT0, "P&P Marketing", "Sharpshooter (Rev 1.1)", 0 ) +GAME( 1998, sshooter, 0, sshooter, policetr, policetr_state, sshooter, ROT0, "P&P Marketing", "Sharpshooter (Rev 1.9)", 0 ) +GAME( 1998, sshooter17, sshooter, sshooter, policetr, policetr_state, sshooter, ROT0, "P&P Marketing", "Sharpshooter (Rev 1.7)", 0 ) +GAME( 1998, sshooter12, sshooter, sshooter, sshoot11, policetr_state, sshoot12, ROT0, "P&P Marketing", "Sharpshooter (Rev 1.2)", 0 ) +GAME( 1998, sshooter11, sshooter, sshooter, sshoot11, policetr_state, sshoot12, ROT0, "P&P Marketing", "Sharpshooter (Rev 1.1)", 0 ) diff --git a/src/mame/drivers/poly.cpp b/src/mame/drivers/poly.cpp index cc70f11556f..369e1f8f021 100644 --- a/src/mame/drivers/poly.cpp +++ b/src/mame/drivers/poly.cpp @@ -59,7 +59,7 @@ public: { } - DECLARE_WRITE8_MEMBER(kbd_put); + void kbd_put(u8 data); DECLARE_READ8_MEMBER(pia1_b_in); DECLARE_READ8_MEMBER(videoram_r); DECLARE_WRITE_LINE_MEMBER(write_acia_clock); @@ -127,7 +127,7 @@ READ8_MEMBER( poly_state::videoram_r ) return m_videoram[offset]; } -WRITE8_MEMBER( poly_state::kbd_put ) +void poly_state::kbd_put(u8 data) { m_term_data = data | 0x80; @@ -151,7 +151,7 @@ WRITE_LINE_MEMBER( poly_state::ptm_o3_callback ) m_speaker->level_w(state); } -static MACHINE_CONFIG_START( poly, poly_state ) +static MACHINE_CONFIG_START( poly ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809E, XTAL_12MHz / 3) // 12.0576MHz MCFG_CPU_PROGRAM_MAP(poly_mem) @@ -200,7 +200,7 @@ static MACHINE_CONFIG_START( poly, poly_state ) MCFG_DEVICE_ADD("adlc", MC6854, 0) MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0) - MCFG_GENERIC_KEYBOARD_CB(WRITE8(poly_state, kbd_put)) + MCFG_GENERIC_KEYBOARD_CB(PUT(poly_state, kbd_put)) MACHINE_CONFIG_END /* ROM definition */ @@ -225,5 +225,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1981, poly1, 0, 0, poly, poly, driver_device, 0, "Polycorp", "Poly-1 Educational Computer", MACHINE_NOT_WORKING ) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 1981, poly1, 0, 0, poly, poly, poly_state, 0, "Polycorp", "Poly-1 Educational Computer", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/poly88.cpp b/src/mame/drivers/poly88.cpp index 1d991d6ab67..9a7cf7a8b8e 100644 --- a/src/mame/drivers/poly88.cpp +++ b/src/mame/drivers/poly88.cpp @@ -179,7 +179,7 @@ static GFXDECODE_START( poly88 ) GFXDECODE_ENTRY( "chargen", 0x0000, poly88_charlayout, 0, 1 ) GFXDECODE_END -static MACHINE_CONFIG_START( poly88, poly88_state ) +static MACHINE_CONFIG_START( poly88 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",I8080, 1853000) MCFG_CPU_PROGRAM_MAP(poly88_mem) @@ -247,6 +247,6 @@ ROM_START( poly8813 ) ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1976, poly88, 0, 0, poly88, poly88, poly88_state, poly88, "PolyMorphic Systems", "Poly-88", 0) -COMP( 1977, poly8813,poly88,0, poly8813, poly88, poly88_state, poly88, "PolyMorphic Systems", "Poly-8813",MACHINE_NOT_WORKING) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1976, poly88, 0, 0, poly88, poly88, poly88_state, poly88, "PolyMorphic Systems", "Poly-88", 0 ) +COMP( 1977, poly8813,poly88,0, poly8813, poly88, poly88_state, poly88, "PolyMorphic Systems", "Poly-8813", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/poly880.cpp b/src/mame/drivers/poly880.cpp index 2716c8f9442..d3297d0cd15 100644 --- a/src/mame/drivers/poly880.cpp +++ b/src/mame/drivers/poly880.cpp @@ -242,7 +242,7 @@ void poly880_state::machine_start() /* Machine Driver */ -static MACHINE_CONFIG_START( poly880, poly880_state ) +static MACHINE_CONFIG_START( poly880 ) /* basic machine hardware */ MCFG_CPU_ADD(Z80_TAG, Z80, XTAL_7_3728MHz/8) MCFG_CPU_PROGRAM_MAP(poly880_mem) @@ -285,5 +285,5 @@ ROM_END /* System Drivers */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1983, poly880, 0, 0, poly880, poly880, driver_device, 0, "VEB Polytechnik", "Poly-Computer 880", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1983, poly880, 0, 0, poly880, poly880, poly880_state, 0, "VEB Polytechnik", "Poly-Computer 880", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) diff --git a/src/mame/drivers/polyplay.cpp b/src/mame/drivers/polyplay.cpp index e8422c73000..2c8e07acebb 100644 --- a/src/mame/drivers/polyplay.cpp +++ b/src/mame/drivers/polyplay.cpp @@ -308,7 +308,7 @@ GFXDECODE_END /* the machine driver */ -static MACHINE_CONFIG_START( polyplay_zre, polyplay_state ) +static MACHINE_CONFIG_START( polyplay_zre ) /* basic machine hardware */ MCFG_CPU_ADD(Z80CPU_TAG, Z80, POLYPLAY_MAIN_CLOCK / 4) /* UB880D */ MCFG_Z80_DAISY_CHAIN(daisy_chain_zre) @@ -350,7 +350,7 @@ static MACHINE_CONFIG_START( polyplay_zre, polyplay_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( polyplay_zrepp, polyplay_state ) +static MACHINE_CONFIG_START( polyplay_zrepp ) MCFG_FRAGMENT_ADD( polyplay_zre ) /* basic machine hardware */ @@ -434,6 +434,6 @@ ROM_START( polyplay2c ) ROM_END /* game driver */ -GAMEL( 1986, polyplay, 0, polyplay_zre, polyplay, driver_device, 0, ROT0, "VEB Polytechnik Karl-Marx-Stadt", "Poly-Play (ZRE)", 0, layout_polyplay ) -GAMEL( 1989, polyplay2, 0, polyplay_zrepp, polyplay, driver_device, 0, ROT0, "VEB Polytechnik Karl-Marx-Stadt", "Poly-Play (ZRE-PP)", 0, layout_polyplay ) -GAMEL( 1989, polyplay2c, polyplay2, polyplay_zrepp, polyplay, driver_device, 0, ROT0, "VEB Polytechnik Karl-Marx-Stadt", "Poly-Play (ZRE-PP - Czech)", 0, layout_polyplay ) +GAMEL( 1986, polyplay, 0, polyplay_zre, polyplay, polyplay_state, 0, ROT0, "VEB Polytechnik Karl-Marx-Stadt", "Poly-Play (ZRE)", 0, layout_polyplay ) +GAMEL( 1989, polyplay2, 0, polyplay_zrepp, polyplay, polyplay_state, 0, ROT0, "VEB Polytechnik Karl-Marx-Stadt", "Poly-Play (ZRE-PP)", 0, layout_polyplay ) +GAMEL( 1989, polyplay2c, polyplay2, polyplay_zrepp, polyplay, polyplay_state, 0, ROT0, "VEB Polytechnik Karl-Marx-Stadt", "Poly-Play (ZRE-PP - Czech)", 0, layout_polyplay ) diff --git a/src/mame/drivers/pong.cpp b/src/mame/drivers/pong.cpp index 27eddca1a71..9834d60bfde 100644 --- a/src/mame/drivers/pong.cpp +++ b/src/mame/drivers/pong.cpp @@ -144,7 +144,7 @@ public: } // devices - required_device m_maincpu; + required_device m_maincpu; required_device m_video; required_device m_dac; /* just to have a sound device */ @@ -176,8 +176,8 @@ public: } // sub devices - required_device m_sw1a; - required_device m_sw1b; + required_device m_sw1a; + required_device m_sw1b; DECLARE_INPUT_CHANGED_MEMBER(input_changed); @@ -207,15 +207,15 @@ public: m_sw1_4(*this, "maincpu:sw1_4") { } - required_device m_led_serve; - required_device m_lamp_credit1; - required_device m_lamp_credit2; - required_device m_coin_counter; + required_device m_led_serve; + required_device m_lamp_credit1; + required_device m_lamp_credit2; + required_device m_coin_counter; - required_device m_sw1_1; - required_device m_sw1_2; - required_device m_sw1_3; - required_device m_sw1_4; + required_device m_sw1_1; + required_device m_sw1_2; + required_device m_sw1_3; + required_device m_sw1_4; NETDEV_ANALOG_CALLBACK_MEMBER(serve_cb) { @@ -266,7 +266,7 @@ NETLIST_END() INPUT_CHANGED_MEMBER(pong_state::input_changed) { - int numpad = (uintptr_t) (param); + int numpad = uintptr_t(param); switch (numpad) { @@ -371,7 +371,7 @@ static INPUT_PORTS_START( breakout ) INPUT_PORTS_END -static MACHINE_CONFIG_START( pong, pong_state ) +static MACHINE_CONFIG_START( pong ) /* basic machine hardware */ MCFG_DEVICE_ADD("maincpu", NETLIST_CPU, NETLIST_CLOCK) @@ -406,7 +406,7 @@ static MACHINE_CONFIG_START( pong, pong_state ) 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( breakout, breakout_state ) +static MACHINE_CONFIG_START( breakout ) /* basic machine hardware */ MCFG_DEVICE_ADD("maincpu", NETLIST_CPU, NETLIST_CLOCK) @@ -467,7 +467,7 @@ static MACHINE_CONFIG_DERIVED( pongf, pong ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( pongd, pong_state ) +static MACHINE_CONFIG_START( pongd ) /* basic machine hardware */ MCFG_DEVICE_ADD("maincpu", NETLIST_CPU, NETLIST_CLOCK) @@ -565,10 +565,10 @@ ROM_START( consolet ) // dummy to satisfy game entry ROM_END */ -GAME( 1972, pong, 0, pong, pong, driver_device, 0, ROT0, "Atari", "Pong (Rev E) external [TTL]", MACHINE_SUPPORTS_SAVE) -GAME( 1972, pongf, 0, pongf, pong, driver_device, 0, ROT0, "Atari", "Pong (Rev E) [TTL]", MACHINE_SUPPORTS_SAVE) -GAME( 1973, pongd, 0, pongd, pongd, driver_device, 0, ROT0, "Atari", "Pong Doubles [TTL]", MACHINE_SUPPORTS_SAVE) -GAMEL( 1976, breakout, 0, breakout, breakout, driver_device, 0, ROT90, "Atari", "Breakout [TTL]", MACHINE_SUPPORTS_SAVE, layout_breakout) +GAME( 1972, pong, 0, pong, pong, pong_state, 0, ROT0, "Atari", "Pong (Rev E) external [TTL]", MACHINE_SUPPORTS_SAVE) +GAME( 1972, pongf, 0, pongf, pong, pong_state, 0, ROT0, "Atari", "Pong (Rev E) [TTL]", MACHINE_SUPPORTS_SAVE) +GAME( 1973, pongd, 0, pongd, pongd, pong_state, 0, ROT0, "Atari", "Pong Doubles [TTL]", MACHINE_SUPPORTS_SAVE) +GAMEL( 1976, breakout, 0, breakout, breakout, breakout_state, 0, ROT90, "Atari", "Breakout [TTL]", MACHINE_SUPPORTS_SAVE, layout_breakout) // 100% TTL //GAME( 1973, coupedav, pongd, pongd, pongd, driver_device, 0, ROT0, "Atari France", "Coupe Davis [TTL]", MACHINE_SUPPORTS_SAVE) diff --git a/src/mame/drivers/poolshrk.cpp b/src/mame/drivers/poolshrk.cpp index b9d29968640..9634ae8544f 100644 --- a/src/mame/drivers/poolshrk.cpp +++ b/src/mame/drivers/poolshrk.cpp @@ -215,7 +215,7 @@ PALETTE_INIT_MEMBER(poolshrk_state, poolshrk) } -static MACHINE_CONFIG_START( poolshrk, poolshrk_state ) +static MACHINE_CONFIG_START( poolshrk ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6800, 11055000 / 8) /* ? */ diff --git a/src/mame/drivers/pooyan.cpp b/src/mame/drivers/pooyan.cpp index 4988e2caf7e..82c45d20b92 100644 --- a/src/mame/drivers/pooyan.cpp +++ b/src/mame/drivers/pooyan.cpp @@ -188,7 +188,7 @@ void pooyan_state::machine_reset() } -static MACHINE_CONFIG_START( pooyan, pooyan_state ) +static MACHINE_CONFIG_START( pooyan ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, MASTER_CLOCK/3/2) @@ -308,6 +308,6 @@ ROM_END *************************************/ // YEAR, NAME, PARENT, MACHINE,INPUT, INIT,MONITOR,COMPANY,FULLNAME,FLAGS -GAME( 1982, pooyan, 0, pooyan, pooyan, driver_device, 0, ROT90, "Konami", "Pooyan", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, pooyans, pooyan, pooyan, pooyan, driver_device, 0, ROT90, "Konami (Stern Electronics license)", "Pooyan (Stern Electronics)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, pootan, pooyan, pooyan, pooyan, driver_device, 0, ROT90, "bootleg", "Pootan", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, pooyan, 0, pooyan, pooyan, pooyan_state, 0, ROT90, "Konami", "Pooyan", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, pooyans, pooyan, pooyan, pooyan, pooyan_state, 0, ROT90, "Konami (Stern Electronics license)", "Pooyan (Stern Electronics)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, pootan, pooyan, pooyan, pooyan, pooyan_state, 0, ROT90, "bootleg", "Pootan", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/popeye.cpp b/src/mame/drivers/popeye.cpp index 93646d51a2b..6e006797024 100644 --- a/src/mame/drivers/popeye.cpp +++ b/src/mame/drivers/popeye.cpp @@ -454,7 +454,7 @@ WRITE8_MEMBER(popeye_state::popeye_portB_w) m_dswbit = (data & 0x0e) >> 1; } -static MACHINE_CONFIG_START( skyskipr, popeye_state ) +static MACHINE_CONFIG_START( skyskipr ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_8MHz/2) /* 4 MHz */ MCFG_CPU_PROGRAM_MAP(skyskipr_map) @@ -762,9 +762,9 @@ DRIVER_INIT_MEMBER(popeye_state,popeye) } -GAME( 1981, skyskipr, 0, skyskipr, skyskipr, popeye_state, skyskipr, ROT0, "Nintendo", "Sky Skipper", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, popeye, 0, popeye, popeye, popeye_state, popeye, ROT0, "Nintendo", "Popeye (revision D)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, popeyeu, popeye, popeye, popeye, popeye_state, popeye, ROT0, "Nintendo", "Popeye (revision D not protected)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, popeyef, popeye, popeye, popeyef, popeye_state, popeye, ROT0, "Nintendo", "Popeye (revision F)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, popeyebl, popeye, popeyebl, popeye, driver_device, 0, ROT0, "bootleg", "Popeye (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, popeyej, popeye, popeyej, popeye, popeye_state, skyskipr, ROT0, "Nintendo", "Popeye (Japan, Sky Skipper hardware)", MACHINE_SUPPORTS_SAVE ) // this is the original Japanese release on the same hardware as Sky Skipper +GAME( 1981, skyskipr, 0, skyskipr, skyskipr, popeye_state, skyskipr, ROT0, "Nintendo", "Sky Skipper", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, popeye, 0, popeye, popeye, popeye_state, popeye, ROT0, "Nintendo", "Popeye (revision D)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, popeyeu, popeye, popeye, popeye, popeye_state, popeye, ROT0, "Nintendo", "Popeye (revision D not protected)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, popeyef, popeye, popeye, popeyef, popeye_state, popeye, ROT0, "Nintendo", "Popeye (revision F)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, popeyebl, popeye, popeyebl, popeye, popeye_state, 0, ROT0, "bootleg", "Popeye (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, popeyej, popeye, popeyej, popeye, popeye_state, skyskipr, ROT0, "Nintendo", "Popeye (Japan, Sky Skipper hardware)", MACHINE_SUPPORTS_SAVE ) // this is the original Japanese release on the same hardware as Sky Skipper diff --git a/src/mame/drivers/popobear.cpp b/src/mame/drivers/popobear.cpp index 45368f8efd6..d6ef1d1fa1b 100644 --- a/src/mame/drivers/popobear.cpp +++ b/src/mame/drivers/popobear.cpp @@ -634,7 +634,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(popobear_state::irq) m_maincpu->set_input_line(2, ASSERT_LINE); } -static MACHINE_CONFIG_START( popobear, popobear_state ) +static MACHINE_CONFIG_START( popobear ) MCFG_CPU_ADD("maincpu", M68000, XTAL_42MHz/4) // XTAL CORRECT, DIVISOR GUESSED MCFG_CPU_PROGRAM_MAP(popobear_mem) // levels 2,3,5 look interesting @@ -661,7 +661,7 @@ static MACHINE_CONFIG_START( popobear, popobear_state ) MCFG_SOUND_ADD("ymsnd", YM2413, XTAL_42MHz/16) // XTAL CORRECT, DIVISOR GUESSED MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MCFG_OKIM6295_ADD("oki", XTAL_42MHz/32, OKIM6295_PIN7_LOW) // XTAL CORRECT, DIVISOR GUESSED + MCFG_OKIM6295_ADD("oki", XTAL_42MHz/32, PIN7_LOW) // XTAL CORRECT, DIVISOR GUESSED MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -679,4 +679,4 @@ ROM_START( popobear ) ROM_LOAD( "popobear_ta-a-901.u9", 0x00000, 0x40000, CRC(f1e94926) SHA1(f4d6f5b5811d90d0069f6efbb44d725ff0d07e1c) ) ROM_END -GAME( 2000, popobear, 0, popobear, popobear, driver_device, 0, ROT0, "BMC", "PoPo Bear", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 2000, popobear, 0, popobear, popobear, popobear_state, 0, ROT0, "BMC", "PoPo Bear", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/popper.cpp b/src/mame/drivers/popper.cpp index 3147f514854..3b129a95c25 100644 --- a/src/mame/drivers/popper.cpp +++ b/src/mame/drivers/popper.cpp @@ -526,7 +526,7 @@ void popper_state::machine_reset() // MACHINE DEFINTIONS //************************************************************************** -static MACHINE_CONFIG_START( popper, popper_state ) +static MACHINE_CONFIG_START( popper ) MCFG_CPU_ADD("maincpu", Z80, XTAL_18_432MHz/3/2) MCFG_CPU_PROGRAM_MAP(main_map) @@ -587,5 +587,5 @@ ROM_END // SYSTEM DRIVERS //************************************************************************** -// YEAR NAME PARENT MACHINE INPUT CLASS INIT ROTATION COMPANY FULLNAME FLAGS -GAME( 1983, popper, 0, popper, popper, driver_device, 0, ROT90, "Omori", "Popper", MACHINE_SUPPORTS_SAVE ) +// YEAR NAME PARENT MACHINE INPUT CLASS INIT ROTATION COMPANY FULLNAME FLAGS +GAME( 1983, popper, 0, popper, popper, popper_state, 0, ROT90, "Omori", "Popper", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/portrait.cpp b/src/mame/drivers/portrait.cpp index d4f78eee780..3ab82b776da 100644 --- a/src/mame/drivers/portrait.cpp +++ b/src/mame/drivers/portrait.cpp @@ -247,7 +247,7 @@ static GFXDECODE_START( portrait ) GFXDECODE_END -static MACHINE_CONFIG_START( portrait, portrait_state ) +static MACHINE_CONFIG_START( portrait ) MCFG_CPU_ADD("maincpu", Z80, 4000000) /* 4 MHz ? */ MCFG_CPU_PROGRAM_MAP(portrait_map) MCFG_CPU_VBLANK_INT_DRIVER("screen", portrait_state, irq0_line_hold) @@ -390,5 +390,5 @@ ROM_END -GAME( 1983, portrait, 0, portrait, portrait, driver_device, 0, ROT270, "Olympia", "Portraits (set 1)", MACHINE_NO_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE ) -GAME( 1983, portraita,portrait, portrait, portrait, driver_device, 0, ROT270, "Olympia", "Portraits (set 2)", MACHINE_NO_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE ) +GAME( 1983, portrait, 0, portrait, portrait, portrait_state, 0, ROT270, "Olympia", "Portraits (set 1)", MACHINE_NO_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE ) +GAME( 1983, portraita,portrait, portrait, portrait, portrait_state, 0, ROT270, "Olympia", "Portraits (set 2)", MACHINE_NO_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/potgoldu.cpp b/src/mame/drivers/potgoldu.cpp index 06b635d30be..278165b0e56 100644 --- a/src/mame/drivers/potgoldu.cpp +++ b/src/mame/drivers/potgoldu.cpp @@ -71,7 +71,7 @@ static INPUT_PORTS_START( potgold ) INPUT_PORTS_END -static MACHINE_CONFIG_START( potgold, potgold_state ) +static MACHINE_CONFIG_START( potgold ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS34010, XTAL_40MHz) @@ -119,5 +119,5 @@ ROM_START( potgoldu580 ) // TMS34010FNL-40 + MC68H705 + YMF704C + ADV476KP35 RAM ROM_LOAD( "mc68h705", 0x0000, 0x2000, NO_DUMP ) // not sure which type of mcu this is, size is a guess ROM_END -GAME( 200?, potgoldu, 0, potgold, potgold, driver_device, 0, ROT0, "U.S. Games Inc.", "Pot O' Gold (U.S. Games, v400x?)", MACHINE_IS_SKELETON | MACHINE_NO_SOUND ) -GAME( 200?, potgoldu580, potgoldu, potgold, potgold, driver_device, 0, ROT0, "U.S. Games Inc.", "Pot O' Gold (U.S. Games, v580F)", MACHINE_IS_SKELETON | MACHINE_NO_SOUND ) +GAME( 200?, potgoldu, 0, potgold, potgold, potgold_state, 0, ROT0, "U.S. Games Inc.", "Pot O' Gold (U.S. Games, v400x?)", MACHINE_IS_SKELETON | MACHINE_NO_SOUND ) +GAME( 200?, potgoldu580, potgoldu, potgold, potgold, potgold_state, 0, ROT0, "U.S. Games Inc.", "Pot O' Gold (U.S. Games, v580F)", MACHINE_IS_SKELETON | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/powerbal.cpp b/src/mame/drivers/powerbal.cpp index b5e9a88bcaa..9e8dd59363c 100644 --- a/src/mame/drivers/powerbal.cpp +++ b/src/mame/drivers/powerbal.cpp @@ -491,7 +491,7 @@ MACHINE_RESET_MEMBER(powerbal_state,powerbal) configure_oki_banks(); } -static MACHINE_CONFIG_START( powerbal, powerbal_state ) +static MACHINE_CONFIG_START( powerbal ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 12000000) /* 12 MHz */ @@ -519,12 +519,12 @@ static MACHINE_CONFIG_START( powerbal, powerbal_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", 1000000, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", 1000000, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MCFG_DEVICE_ADDRESS_MAP(AS_0, oki_map) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( magicstk, powerbal_state ) +static MACHINE_CONFIG_START( magicstk ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 12000000) /* 12 MHz */ @@ -555,7 +555,7 @@ static MACHINE_CONFIG_START( magicstk, powerbal_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", 1000000, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", 1000000, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MCFG_DEVICE_ADDRESS_MAP(AS_0, oki_map) MACHINE_CONFIG_END @@ -704,7 +704,7 @@ DRIVER_INIT_MEMBER(powerbal_state,magicstk) * Game Drivers * *************************/ -/* YEAR NAME PARENT MACHINE INPUT INIT ROT COMPANY FULLNAME FLAGS */ +// YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS GAME( 1994, powerbal, 0, powerbal, powerbal, powerbal_state, powerbal, ROT0, "Playmark", "Power Balls", MACHINE_SUPPORTS_SAVE ) GAME( 1995, magicstk, 0, magicstk, magicstk, powerbal_state, magicstk, ROT0, "Playmark", "Magic Sticks", MACHINE_SUPPORTS_SAVE ) GAME( 1995, hotminda, hotmind, magicstk, hotminda, powerbal_state, magicstk, ROT0, "Playmark", "Hot Mind (adjustable prize)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/powerins.cpp b/src/mame/drivers/powerins.cpp index fe58539eaa1..6f4d633d39c 100644 --- a/src/mame/drivers/powerins.cpp +++ b/src/mame/drivers/powerins.cpp @@ -295,7 +295,7 @@ MACHINE_START_MEMBER(powerins_state, powerinsa) membank("okibank")->configure_entries(0, 5, memregion("oki1")->base() + 0x30000, 0x10000); } -static MACHINE_CONFIG_START( powerins, powerins_state ) +static MACHINE_CONFIG_START( powerins ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 12000000) /* 12MHz */ @@ -326,10 +326,10 @@ static MACHINE_CONFIG_START( powerins, powerins_state ) MCFG_GENERIC_LATCH_8_ADD("soundlatch") - MCFG_OKIM6295_ADD("oki1", 4000000, OKIM6295_PIN7_LOW) + MCFG_OKIM6295_ADD("oki1", 4000000, PIN7_LOW) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.15) - MCFG_OKIM6295_ADD("oki2", 4000000, OKIM6295_PIN7_LOW) + MCFG_OKIM6295_ADD("oki2", 4000000, PIN7_LOW) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.15) MCFG_SOUND_ADD("ym2203", YM2203, 12000000 / 8) @@ -355,7 +355,7 @@ static MACHINE_CONFIG_DERIVED( powerinsa, powerins ) MCFG_MACHINE_START_OVERRIDE(powerins_state, powerinsa) - MCFG_OKIM6295_REPLACE("oki1", 990000, OKIM6295_PIN7_LOW) // pin7 not verified + MCFG_OKIM6295_REPLACE("oki1", 990000, PIN7_LOW) // pin7 not verified MCFG_DEVICE_ADDRESS_MAP(AS_0, powerinsa_oki_map) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) @@ -679,7 +679,7 @@ ROM_END /* all supported sets give a 93.10.20 date */ -GAME( 1993, powerins, 0, powerins, powerins, driver_device, 0, ROT0, "Atlus", "Power Instinct (USA)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, powerinsj, powerins, powerins, powerinj, driver_device, 0, ROT0, "Atlus", "Gouketsuji Ichizoku (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, powerinsa, powerins, powerinsa, powerins, driver_device, 0, ROT0, "bootleg", "Power Instinct (USA, bootleg set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, powerinsb, powerins, powerinsb, powerins, driver_device, 0, ROT0, "bootleg", "Power Instinct (USA, bootleg set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, powerins, 0, powerins, powerins, powerins_state, 0, ROT0, "Atlus", "Power Instinct (USA)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, powerinsj, powerins, powerins, powerinj, powerins_state, 0, ROT0, "Atlus", "Gouketsuji Ichizoku (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, powerinsa, powerins, powerinsa, powerins, powerins_state, 0, ROT0, "bootleg", "Power Instinct (USA, bootleg set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, powerinsb, powerins, powerinsb, powerins, powerins_state, 0, ROT0, "bootleg", "Power Instinct (USA, bootleg set 2)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/pp01.cpp b/src/mame/drivers/pp01.cpp index e9ae497286d..02f20b09d15 100644 --- a/src/mame/drivers/pp01.cpp +++ b/src/mame/drivers/pp01.cpp @@ -198,7 +198,7 @@ static INPUT_PORTS_START( pp01 ) INPUT_PORTS_END /* Machine driver */ -static MACHINE_CONFIG_START( pp01, pp01_state ) +static MACHINE_CONFIG_START( pp01 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8080, 2000000) MCFG_CPU_PROGRAM_MAP(pp01_mem) @@ -275,5 +275,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 198?, pp01, 0, 0, pp01, pp01, driver_device, 0, "ZVT", "PP-01", MACHINE_NOT_WORKING ) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 198?, pp01, 0, 0, pp01, pp01, pp01_state, 0, "ZVT", "PP-01", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/ppmast93.cpp b/src/mame/drivers/ppmast93.cpp index 0d06ff0da02..9d6cf7b7661 100644 --- a/src/mame/drivers/ppmast93.cpp +++ b/src/mame/drivers/ppmast93.cpp @@ -360,7 +360,7 @@ uint32_t ppmast93_state::screen_update(screen_device &screen, bitmap_ind16 &bitm return 0; } -static MACHINE_CONFIG_START( ppmast93, ppmast93_state ) +static MACHINE_CONFIG_START( ppmast93 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80,5000000) /* 5 MHz */ MCFG_CPU_PROGRAM_MAP(ppmast93_cpu1_map) @@ -415,4 +415,4 @@ ROM_START( ppmast93 ) ROM_LOAD( "prom1.ug26", 0x200, 0x100, CRC(d979c64e) SHA1(172c9579013d58e35a5b4f732e360811ac36295e) ) ROM_END -GAME( 1993, ppmast93, 0, ppmast93, ppmast93, driver_device, 0, ROT0, "Electronic Devices S.R.L.", "Ping Pong Masters '93", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1993, ppmast93, 0, ppmast93, ppmast93, ppmast93_state, 0, ROT0, "Electronic Devices S.R.L.", "Ping Pong Masters '93", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/prehisle.cpp b/src/mame/drivers/prehisle.cpp index ac26fc73b93..835b7f1b046 100644 --- a/src/mame/drivers/prehisle.cpp +++ b/src/mame/drivers/prehisle.cpp @@ -196,7 +196,7 @@ GFXDECODE_END /******************************************************************************/ -static MACHINE_CONFIG_START( prehisle, prehisle_state ) +static MACHINE_CONFIG_START( prehisle ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_18MHz/2) /* verified on pcb */ @@ -397,8 +397,8 @@ ROM_END /******************************************************************************/ -GAME( 1989, prehisle, 0, prehisle, prehisle, driver_device, 0, ROT0, "SNK", "Prehistoric Isle in 1930 (World)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, prehisleu, prehisle, prehisle, prehisle, driver_device, 0, ROT0, "SNK", "Prehistoric Isle in 1930 (US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, prehislek, prehisle, prehisle, prehisle, driver_device, 0, ROT0, "SNK (Victor license)", "Prehistoric Isle in 1930 (Korea)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, gensitou, prehisle, prehisle, prehisle, driver_device, 0, ROT0, "SNK", "Genshi-Tou 1930's", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, prehisleb, prehisle, prehisle, prehisle, driver_device, 0, ROT0, "bootleg", "Prehistoric Isle in 1930 (World, bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, prehisle, 0, prehisle, prehisle, prehisle_state, 0, ROT0, "SNK", "Prehistoric Isle in 1930 (World)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, prehisleu, prehisle, prehisle, prehisle, prehisle_state, 0, ROT0, "SNK", "Prehistoric Isle in 1930 (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, prehislek, prehisle, prehisle, prehisle, prehisle_state, 0, ROT0, "SNK (Victor license)", "Prehistoric Isle in 1930 (Korea)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, gensitou, prehisle, prehisle, prehisle, prehisle_state, 0, ROT0, "SNK", "Genshi-Tou 1930's", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, prehisleb, prehisle, prehisle, prehisle, prehisle_state, 0, ROT0, "bootleg", "Prehistoric Isle in 1930 (World, bootleg)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/prestige.cpp b/src/mame/drivers/prestige.cpp index 996f8ac0687..042b9264594 100644 --- a/src/mame/drivers/prestige.cpp +++ b/src/mame/drivers/prestige.cpp @@ -722,7 +722,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(prestige_state::irq_timer) m_maincpu->set_input_line(0, ASSERT_LINE); } -static MACHINE_CONFIG_START( prestige_base, prestige_state ) +static MACHINE_CONFIG_START( prestige_base ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80, XTAL_8MHz) // Z84C008 MCFG_CPU_PROGRAM_MAP(prestige_mem) @@ -910,34 +910,34 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1994, glcolor, 0, 0, glcolor, glcolor, driver_device, 0, "VTech", "Genius Leader Color (Germany)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -COMP( 1994, glscolor, glcolor, 0, glcolor, glcolor, driver_device, 0, "VTech", "Genius Leader Super Color (Germany)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -COMP( 1995, snotec, 0, 0, snotec, glcolor, driver_device, 0, "Bandai", "Super Note Club (Japan)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -COMP( 1996, snotecex, 0, 0, snotec, glcolor, driver_device, 0, "Bandai", "Super Note Club EX (Japan)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -COMP( 1996, glmcolor, 0, 0, glmcolor, glmcolor, driver_device, 0, "VTech", "Genius Leader Magic Color (Germany)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -COMP( 1997, gl6000sl, 0, 0, gl6000sl, prestige, driver_device, 0, "VTech", "Genius Leader 6000SL (Germany)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -COMP( 1998, snotecu, 0, 0, snotec, glcolor, driver_device, 0, "Bandai", "Super Note Club \xce\xbc (Japan)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -COMP( 1998, gl7007sl, 0, 0, gl7007sl, prestige, driver_device, 0, "VTech", "Genius Leader 7007SL (Germany)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -COMP( 1998, prestige, 0, 0, prestige, prestige, driver_device, 0, "VTech", "PreComputer Prestige Elite", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -COMP( 1999, gwnf, 0, 0, prestige, prestige, driver_device, 0, "VTech", "Genius Winner Notebook Fun (Germany)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1994, glcolor, 0, 0, glcolor, glcolor, prestige_state, 0, "VTech", "Genius Leader Color (Germany)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +COMP( 1994, glscolor, glcolor, 0, glcolor, glcolor, prestige_state, 0, "VTech", "Genius Leader Super Color (Germany)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +COMP( 1995, snotec, 0, 0, snotec, glcolor, prestige_state, 0, "Bandai", "Super Note Club (Japan)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +COMP( 1996, snotecex, 0, 0, snotec, glcolor, prestige_state, 0, "Bandai", "Super Note Club EX (Japan)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +COMP( 1996, glmcolor, 0, 0, glmcolor, glmcolor, prestige_state, 0, "VTech", "Genius Leader Magic Color (Germany)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +COMP( 1997, gl6000sl, 0, 0, gl6000sl, prestige, prestige_state, 0, "VTech", "Genius Leader 6000SL (Germany)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +COMP( 1998, snotecu, 0, 0, snotec, glcolor, prestige_state, 0, "Bandai", "Super Note Club \xce\xbc (Japan)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +COMP( 1998, gl7007sl, 0, 0, gl7007sl, prestige, prestige_state, 0, "VTech", "Genius Leader 7007SL (Germany)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +COMP( 1998, prestige, 0, 0, prestige, prestige, prestige_state, 0, "VTech", "PreComputer Prestige Elite", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +COMP( 1999, gwnf, 0, 0, prestige, prestige, prestige_state, 0, "VTech", "Genius Winner Notebook Fun (Germany)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // these systems need to be moved into a separate driver -COMP( 1996, gj4000, 0, 0, prestige, prestige, driver_device, 0, "VTech", "Genius Junior 4000 (Germany)", MACHINE_IS_SKELETON) -COMP( 1996, gkidabc, 0, 0, prestige, prestige, driver_device, 0, "VTech", "Genius KID ABC Fan (Germany)", MACHINE_IS_SKELETON) -COMP( 1993, gjmovie, 0, 0, gjmovie, prestige, driver_device, 0, "VTech", "Genius Junior Movie (Germany)", MACHINE_IS_SKELETON) -COMP( 1996, gjrstar, 0, 0, prestige, prestige, driver_device, 0, "VTech", "Genius Junior Redstar(Germany)", MACHINE_IS_SKELETON) -COMP( 1996, gjrstar2, gjrstar, 0, prestige, prestige, driver_device, 0, "VTech", "Genius Junior Redstar 2 (Germany)", MACHINE_IS_SKELETON) -COMP( 1998, gjrstar3, 0, 0, prestige, prestige, driver_device, 0, "VTech", "Genius Junior Redstar 3 (Germany)", MACHINE_IS_SKELETON) -COMP( 1998, gj5000, 0, 0, prestige, prestige, driver_device, 0, "VTech", "Genius Junior 5000 (Germany)", MACHINE_IS_SKELETON) -COMP( 2012, cars2lap, 0, 0, prestige, prestige, driver_device, 0, "VTech", "CARS 2 Laptop (Germany)", MACHINE_IS_SKELETON) +COMP( 1996, gj4000, 0, 0, prestige, prestige, prestige_state, 0, "VTech", "Genius Junior 4000 (Germany)", MACHINE_IS_SKELETON ) +COMP( 1996, gkidabc, 0, 0, prestige, prestige, prestige_state, 0, "VTech", "Genius KID ABC Fan (Germany)", MACHINE_IS_SKELETON ) +COMP( 1993, gjmovie, 0, 0, gjmovie, prestige, prestige_state, 0, "VTech", "Genius Junior Movie (Germany)", MACHINE_IS_SKELETON ) +COMP( 1996, gjrstar, 0, 0, prestige, prestige, prestige_state, 0, "VTech", "Genius Junior Redstar(Germany)", MACHINE_IS_SKELETON ) +COMP( 1996, gjrstar2, gjrstar, 0, prestige, prestige, prestige_state, 0, "VTech", "Genius Junior Redstar 2 (Germany)", MACHINE_IS_SKELETON ) +COMP( 1998, gjrstar3, 0, 0, prestige, prestige, prestige_state, 0, "VTech", "Genius Junior Redstar 3 (Germany)", MACHINE_IS_SKELETON ) +COMP( 1998, gj5000, 0, 0, prestige, prestige, prestige_state, 0, "VTech", "Genius Junior 5000 (Germany)", MACHINE_IS_SKELETON ) +COMP( 2012, cars2lap, 0, 0, prestige, prestige, prestige_state, 0, "VTech", "CARS 2 Laptop (Germany)", MACHINE_IS_SKELETON ) // gl6600cx use a NSC1028 system-on-a-chip designed by National Semiconductor specifically for VTech // http://web.archive.org/web/19991127134657/http://www.national.com/news/item/0,1735,425,00.html -COMP( 1999, gl6600cx, 0, 0, prestige, prestige, driver_device, 0, "VTech", "Genius Leader 6600CX (Germany)", MACHINE_IS_SKELETON) +COMP( 1999, gl6600cx, 0, 0, prestige, prestige, prestige_state, 0, "VTech", "Genius Leader 6600CX (Germany)", MACHINE_IS_SKELETON ) // TODO: move into a separate driver // Prin-C use a Fujitsu MB90611A MCU (F2MC-16L) -COMP( ????, princ, 0, 0, prestige , prestige , driver_device, 0, "Tomy", "Prin-C", MACHINE_IS_SKELETON) +COMP( ????, princ, 0, 0, prestige , prestige, prestige_state, 0, "Tomy", "Prin-C", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/primo.cpp b/src/mame/drivers/primo.cpp index 3b87115ed8e..56fe2044328 100644 --- a/src/mame/drivers/primo.cpp +++ b/src/mame/drivers/primo.cpp @@ -240,7 +240,7 @@ static const struct CassetteOptions primo_cassette_options = { 22050 /* sample frequency */ }; -static MACHINE_CONFIG_START( primoa32, primo_state ) +static MACHINE_CONFIG_START( primoa32 ) /* basic machine hardware */ MCFG_CPU_ADD( "maincpu", Z80, 2500000 ) MCFG_CPU_PROGRAM_MAP( primo32_mem) @@ -373,11 +373,11 @@ ROM_START( primoc64 ) ROM_LOAD( "c64_4.rom", 0x13000, 0x1000, CRC(3770e3e6) SHA1(792cc71d8f89eb447f94aded5afc70d626a26030) ) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ -COMP ( 1984, primoa32, 0, 0, primoa32, primo, primo_state, primo32, "Microkey", "Primo A-32" , 0) -COMP ( 1984, primoa48, primoa32, 0, primoa48, primo, primo_state, primo48, "Microkey", "Primo A-48" , 0) -COMP ( 1984, primoa64, primoa32, 0, primoa64, primo, primo_state, primo64, "Microkey", "Primo A-64" , 0) -COMP ( 1984, primob32, primoa32, 0, primob32, primo, primo_state, primo32, "Microkey", "Primo B-32" , 0) -COMP ( 1984, primob48, primoa32, 0, primob48, primo, primo_state, primo48, "Microkey", "Primo B-48" , 0) -COMP ( 1984, primob64, primoa32, 0, primob64, primo, primo_state, primo64, "Microkey", "Primo B-64" , 0) -COMP ( 1984, primoc64, primoa32, 0, primoc64, primo, primo_state, primo64, "Microkey", "Primo C-64" , MACHINE_NOT_WORKING) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP ( 1984, primoa32, 0, 0, primoa32, primo, primo_state, primo32, "Microkey", "Primo A-32" , 0 ) +COMP ( 1984, primoa48, primoa32, 0, primoa48, primo, primo_state, primo48, "Microkey", "Primo A-48" , 0 ) +COMP ( 1984, primoa64, primoa32, 0, primoa64, primo, primo_state, primo64, "Microkey", "Primo A-64" , 0 ) +COMP ( 1984, primob32, primoa32, 0, primob32, primo, primo_state, primo32, "Microkey", "Primo B-32" , 0 ) +COMP ( 1984, primob48, primoa32, 0, primob48, primo, primo_state, primo48, "Microkey", "Primo B-48" , 0 ) +COMP ( 1984, primob64, primoa32, 0, primob64, primo, primo_state, primo64, "Microkey", "Primo B-64" , 0 ) +COMP ( 1984, primoc64, primoa32, 0, primoc64, primo, primo_state, primo64, "Microkey", "Primo C-64" , MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/pro80.cpp b/src/mame/drivers/pro80.cpp index 18323aad76a..a735c12ac8d 100644 --- a/src/mame/drivers/pro80.cpp +++ b/src/mame/drivers/pro80.cpp @@ -164,7 +164,7 @@ void pro80_state::machine_reset() m_cass_in = 0; } -static MACHINE_CONFIG_START( pro80, pro80_state ) +static MACHINE_CONFIG_START( pro80 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_4MHz / 2) MCFG_CPU_PROGRAM_MAP(pro80_mem) @@ -193,5 +193,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1981, pro80, 0, 0, pro80, pro80, driver_device, 0, "Protec", "Pro-80", MACHINE_NOT_WORKING ) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 1981, pro80, 0, 0, pro80, pro80, pro80_state, 0, "Protec", "Pro-80", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/proconn.cpp b/src/mame/drivers/proconn.cpp index 6abac672b61..2b9ee0965e5 100644 --- a/src/mame/drivers/proconn.cpp +++ b/src/mame/drivers/proconn.cpp @@ -182,7 +182,7 @@ public: protected: // devices - optional_device m_vfd; + optional_device m_vfd; required_device m_maincpu; required_device m_z80pio_1; required_device m_z80pio_2; @@ -318,7 +318,7 @@ void proconn_state::machine_reset() m_vfd->reset(); // reset display1 } -static MACHINE_CONFIG_START( proconn, proconn_state ) +static MACHINE_CONFIG_START( proconn ) MCFG_CPU_ADD("maincpu", Z80, 4000000) /* ?? Mhz */ MCFG_Z80_DAISY_CHAIN(z80_daisy_chain) MCFG_CPU_PROGRAM_MAP(proconn_map) diff --git a/src/mame/drivers/prodigy.cpp b/src/mame/drivers/prodigy.cpp index 641a5b8a3f3..292c4cef699 100644 --- a/src/mame/drivers/prodigy.cpp +++ b/src/mame/drivers/prodigy.cpp @@ -123,9 +123,9 @@ private: #if TTL74164DEV required_device m_shift; #else - required_device m_bcd; - required_device m_cb1; - required_device m_cb2; + required_device m_bcd; + required_device m_cb1; + required_device m_cb2; #endif uint8_t m_digit; void update_bcd(); @@ -218,7 +218,7 @@ ADDRESS_MAP_END static INPUT_PORTS_START( prodigy ) INPUT_PORTS_END -static MACHINE_CONFIG_START( prodigy, prodigy_state ) +static MACHINE_CONFIG_START( prodigy ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, XTAL_2MHz) MCFG_CPU_PROGRAM_MAP(maincpu_map) @@ -293,5 +293,5 @@ ROM_START(prodigy) ROM_LOAD("0x2000.bin", 0x0000, 0x02000, CRC(8d60345a) SHA1(fff18ff12e1b1be91f8eac1178605a682564eff2)) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT, COMPANY, FULLNAME, FLAGS */ -CONS( 1981, prodigy, 0, 0, prodigy, prodigy, driver_device, 0, "Applied Concepts Inc", "ACI Destiny Prodigy", MACHINE_IS_SKELETON) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY, FULLNAME, FLAGS +CONS( 1981, prodigy, 0, 0, prodigy, prodigy, prodigy_state, 0, "Applied Concepts Inc", "ACI Destiny Prodigy", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/prof180x.cpp b/src/mame/drivers/prof180x.cpp index 6b4119ec559..60dd5623a5a 100644 --- a/src/mame/drivers/prof180x.cpp +++ b/src/mame/drivers/prof180x.cpp @@ -234,7 +234,7 @@ void prof180x_state::machine_reset() } } -static MACHINE_CONFIG_START( prof180x, prof180x_state ) +static MACHINE_CONFIG_START( prof180x ) /* basic machine hardware */ MCFG_CPU_ADD(HD64180_TAG, Z80, XTAL_9_216MHz) MCFG_CPU_PROGRAM_MAP(prof180x_mem) @@ -326,6 +326,6 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1986, prof180x, 0, 0, prof180x, prof180x, driver_device, 0, "Conitec Datensysteme", "PROF-180X", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -COMP( 1992, prof181x, prof180x,0, prof180x, prof180x, driver_device, 0, "Conitec Datensysteme", "PROF-181X", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +COMP( 1986, prof180x, 0, 0, prof180x, prof180x, prof180x_state, 0, "Conitec Datensysteme", "PROF-180X", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +COMP( 1992, prof181x, prof180x,0, prof180x, prof180x, prof180x_state, 0, "Conitec Datensysteme", "PROF-181X", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/prof80.cpp b/src/mame/drivers/prof80.cpp index 0b94343cdcd..98441b1cbb3 100644 --- a/src/mame/drivers/prof80.cpp +++ b/src/mame/drivers/prof80.cpp @@ -501,7 +501,7 @@ void prof80_state::machine_reset() // MACHINE_CONFIG( prof80 ) //------------------------------------------------- -static MACHINE_CONFIG_START( prof80, prof80_state ) +static MACHINE_CONFIG_START( prof80 ) // basic machine hardware MCFG_CPU_ADD(Z80_TAG, Z80, XTAL_6MHz) MCFG_CPU_PROGRAM_MAP(prof80_mem) @@ -563,5 +563,5 @@ ROM_END // SYSTEM DRIVERS //************************************************************************** -// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS -COMP( 1984, prof80, 0, 0, prof80, prof80, driver_device, 0, "Conitec Datensysteme", "PROF-80", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1984, prof80, 0, 0, prof80, prof80, prof80_state, 0, "Conitec Datensysteme", "PROF-80", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) diff --git a/src/mame/drivers/progolf.cpp b/src/mame/drivers/progolf.cpp index 5534af9c152..8df11e55821 100644 --- a/src/mame/drivers/progolf.cpp +++ b/src/mame/drivers/progolf.cpp @@ -424,7 +424,7 @@ PALETTE_INIT_MEMBER(progolf_state, progolf) } } -static MACHINE_CONFIG_START( progolf, progolf_state ) +static MACHINE_CONFIG_START( progolf ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", DECO_222, 3000000/2) /* guess, 3 Mhz makes the game to behave worse? */ MCFG_CPU_PROGRAM_MAP(main_cpu) @@ -517,6 +517,6 @@ ROM_END // this uses DECO222 style encryption -GAME( 1981, progolf, 0, progolf, progolf, driver_device, 0, ROT270, "Data East Corporation", "18 Holes Pro Golf (set 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1981, progolf, 0, progolf, progolf, progolf_state, 0, ROT270, "Data East Corporation", "18 Holes Pro Golf (set 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // this uses DECO CPU-6 as custom module CPU (the same as Zoar, are we sure? our Zoar has different encryption, CPU-7 style) -GAME( 1981, progolfa, progolf, progolfa,progolf, driver_device, 0, ROT270, "Data East Corporation", "18 Holes Pro Golf (set 2)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1981, progolfa, progolf, progolfa, progolf, progolf_state, 0, ROT270, "Data East Corporation", "18 Holes Pro Golf (set 2)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/prophet600.cpp b/src/mame/drivers/prophet600.cpp index 5d4d01c3bf6..a03acd14202 100644 --- a/src/mame/drivers/prophet600.cpp +++ b/src/mame/drivers/prophet600.cpp @@ -262,7 +262,7 @@ DRIVER_INIT_MEMBER(prophet600_state, prophet600) } // master crystal is 8 MHz, all clocks derived from there -static MACHINE_CONFIG_START( prophet600, prophet600_state ) +static MACHINE_CONFIG_START( prophet600 ) MCFG_CPU_ADD(MAINCPU_TAG, Z80, XTAL_8MHz/2) MCFG_CPU_PROGRAM_MAP(cpu_map) MCFG_CPU_IO_MAP(io_map) diff --git a/src/mame/drivers/proteus3.cpp b/src/mame/drivers/proteus3.cpp index 670700347e8..abf2bf52bdb 100644 --- a/src/mame/drivers/proteus3.cpp +++ b/src/mame/drivers/proteus3.cpp @@ -76,7 +76,7 @@ public: DECLARE_WRITE_LINE_MEMBER(ca2_w); DECLARE_WRITE8_MEMBER(video_w); - DECLARE_WRITE8_MEMBER(kbd_put); + void kbd_put(u8 data); DECLARE_WRITE_LINE_MEMBER(acia1_txdata_w); DECLARE_WRITE_LINE_MEMBER(acia1_clock_w); DECLARE_WRITE_LINE_MEMBER(acia2_clock_w); @@ -128,7 +128,7 @@ ADDRESS_MAP_END static INPUT_PORTS_START(proteus3) INPUT_PORTS_END -WRITE8_MEMBER( proteus3_state::kbd_put ) +void proteus3_state::kbd_put(u8 data) { if (data == 0x08) data = 0x0f; // take care of backspace (bios 1 and 2) @@ -317,7 +317,7 @@ void proteus3_state::machine_reset() Machine Drivers ******************************************************************************/ -static MACHINE_CONFIG_START( proteus3, proteus3_state ) +static MACHINE_CONFIG_START( proteus3 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6800, XTAL_3_579545MHz) /* Divided by 4 internally */ MCFG_CPU_PROGRAM_MAP(proteus3_mem) @@ -339,7 +339,7 @@ static MACHINE_CONFIG_START( proteus3, proteus3_state ) MCFG_PIA_CA2_HANDLER(WRITELINE(proteus3_state, ca2_w)) MCFG_PIA_IRQB_HANDLER(INPUTLINE("maincpu", M6800_IRQ_LINE)) MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0) - MCFG_GENERIC_KEYBOARD_CB(WRITE8(proteus3_state, kbd_put)) + MCFG_GENERIC_KEYBOARD_CB(PUT(proteus3_state, kbd_put)) /* cassette */ MCFG_DEVICE_ADD ("acia1", ACIA6850, 0) @@ -409,5 +409,5 @@ ROM_END Drivers ******************************************************************************/ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1978, proteus3, 0, 0, proteus3, proteus3, driver_device, 0, "Proteus International", "Proteus III", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 1978, proteus3, 0, 0, proteus3, proteus3, proteus3_state, 0, "Proteus International", "Proteus III", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW) diff --git a/src/mame/drivers/ps2.cpp b/src/mame/drivers/ps2.cpp index 9f37fba46da..bdc22c86a48 100644 --- a/src/mame/drivers/ps2.cpp +++ b/src/mame/drivers/ps2.cpp @@ -17,7 +17,7 @@ public: m_maincpu(*this, "maincpu"), m_mb(*this, "mb"), m_ram(*this, RAM_TAG) - { } + { } required_device m_maincpu; required_device m_mb; required_device m_ram; @@ -66,7 +66,7 @@ void ps2_state::machine_start() } } -static MACHINE_CONFIG_START( ps2m30286, ps2_state ) +static MACHINE_CONFIG_START( ps2m30286 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I80286, 10000000) MCFG_CPU_PROGRAM_MAP(ps2_16_map) @@ -90,7 +90,7 @@ static MACHINE_CONFIG_START( ps2m30286, ps2_state ) MCFG_RAM_EXTRA_OPTIONS("2M,4M,8M,15M") MACHINE_CONFIG_END -static MACHINE_CONFIG_START( ps2386, ps2_state ) +static MACHINE_CONFIG_START( ps2386 ) MCFG_CPU_ADD("maincpu", I386, 12000000) MCFG_CPU_PROGRAM_MAP(ps2_32_map) MCFG_CPU_IO_MAP(ps2_32_io) @@ -245,11 +245,11 @@ ROM_START( i8580111 ) ROM_LOAD16_BYTE( "15f6639.bin", 0x00001, 0x10000, CRC(82cf0f7d) SHA1(13bb39225757b89749af70e881af0228673dbe0c)) ROM_END -COMP ( 1990, i8530h31, ibm5170, 0, ps2m30286, 0, driver_device, 0, "International Business Machines", "IBM PS/2 8530-H31 (Model 30/286)", MACHINE_NOT_WORKING ) -COMP ( 1988, i8530286, ibm5170, 0, ps2m30286, 0, driver_device, 0, "International Business Machines", "IBM PS/2 Model 30-286", MACHINE_NOT_WORKING ) -COMP ( 198?, i8535043, ibm5170, 0, ps2386, 0, driver_device, 0, "International Business Machines", "IBM PS/2 8535-043 (Model 35)", MACHINE_NOT_WORKING ) -COMP ( 198?, i8550021, ibm5170, 0, ps2386, 0, driver_device, 0, "International Business Machines", "IBM PS/2 8550-021 (Model 50)", MACHINE_NOT_WORKING ) -COMP ( 198?, i8550061, ibm5170, 0, ps2386, 0, driver_device, 0, "International Business Machines", "IBM PS/2 8550-061 (Model 50Z)", MACHINE_NOT_WORKING ) -COMP ( 1989, i8555081, ibm5170, 0, ps2386, 0, driver_device, 0, "International Business Machines", "IBM PS/2 8550-081 (Model 55SX)", MACHINE_NOT_WORKING ) -COMP ( 198?, i8580071, ibm5170, 0, ps2386, 0, driver_device, 0, "International Business Machines", "IBM PS/2 8580-071 (Model 80)", MACHINE_NOT_WORKING ) -COMP ( 198?, i8580111, ibm5170, 0, ps2386, 0, driver_device, 0, "International Business Machines", "IBM PS/2 8580-111 (Model 80)", MACHINE_NOT_WORKING ) +COMP ( 1990, i8530h31, ibm5170, 0, ps2m30286, 0, ps2_state, 0, "International Business Machines", "IBM PS/2 8530-H31 (Model 30/286)", MACHINE_NOT_WORKING ) +COMP ( 1988, i8530286, ibm5170, 0, ps2m30286, 0, ps2_state, 0, "International Business Machines", "IBM PS/2 Model 30-286", MACHINE_NOT_WORKING ) +COMP ( 198?, i8535043, ibm5170, 0, ps2386, 0, ps2_state, 0, "International Business Machines", "IBM PS/2 8535-043 (Model 35)", MACHINE_NOT_WORKING ) +COMP ( 198?, i8550021, ibm5170, 0, ps2386, 0, ps2_state, 0, "International Business Machines", "IBM PS/2 8550-021 (Model 50)", MACHINE_NOT_WORKING ) +COMP ( 198?, i8550061, ibm5170, 0, ps2386, 0, ps2_state, 0, "International Business Machines", "IBM PS/2 8550-061 (Model 50Z)", MACHINE_NOT_WORKING ) +COMP ( 1989, i8555081, ibm5170, 0, ps2386, 0, ps2_state, 0, "International Business Machines", "IBM PS/2 8550-081 (Model 55SX)", MACHINE_NOT_WORKING ) +COMP ( 198?, i8580071, ibm5170, 0, ps2386, 0, ps2_state, 0, "International Business Machines", "IBM PS/2 8580-071 (Model 80)", MACHINE_NOT_WORKING ) +COMP ( 198?, i8580111, ibm5170, 0, ps2386, 0, ps2_state, 0, "International Business Machines", "IBM PS/2 8580-111 (Model 80)", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/pse.cpp b/src/mame/drivers/pse.cpp index 04fb75b79a1..e09712ffca0 100644 --- a/src/mame/drivers/pse.cpp +++ b/src/mame/drivers/pse.cpp @@ -55,7 +55,7 @@ public: } // devices - required_device m_maincpu; + required_device m_maincpu; required_device m_video; protected: @@ -98,7 +98,7 @@ void pse_state::video_start() { } -static MACHINE_CONFIG_START( pse, pse_state ) +static MACHINE_CONFIG_START( pse ) /* basic machine hardware */ MCFG_DEVICE_ADD("maincpu", NETLIST_CPU, NETLIST_CLOCK) @@ -204,9 +204,9 @@ ROM_START( gametree ) ROM_END -GAME( 1976, bazooka, 0, pse, 0, driver_device, 0, ROT0, "Project Support Engineering", "Bazooka [TTL]", MACHINE_IS_SKELETON ) -GAME( 1977, bazookabr, bazooka, pse, 0, driver_device, 0, ROT0, "Taito do Brasil", "Bazooka (Brazil) [TTL]", MACHINE_IS_SKELETON ) -GAME( 1977, dpatrol, 0, pse, 0, driver_device, 0, ROT0, "Project Support Engineering", "Desert Patrol [TTL]", MACHINE_IS_SKELETON ) -GAME( 1977, dpatrola, dpatrol, pse, 0, driver_device, 0, ROT0, "Project Support Engineering (Telegames license)", "Desert Patrol (set 2) [TTL]", MACHINE_IS_SKELETON ) -GAME( 1978, gametree, 0, pse, 0, driver_device, 0, ROT0, "Project Support Engineering", "Game Tree [TTL]", MACHINE_IS_SKELETON ) -//GAME( 1976, knightar, 0, pse, 0, driver_device, 0, ROT0, "Project Support Engineering", "Knights in Armor [TTL]", MACHINE_IS_SKELETON ) +GAME( 1976, bazooka, 0, pse, 0, pse_state, 0, ROT0, "Project Support Engineering", "Bazooka [TTL]", MACHINE_IS_SKELETON ) +GAME( 1977, bazookabr, bazooka, pse, 0, pse_state, 0, ROT0, "Taito do Brasil", "Bazooka (Brazil) [TTL]", MACHINE_IS_SKELETON ) +GAME( 1977, dpatrol, 0, pse, 0, pse_state, 0, ROT0, "Project Support Engineering", "Desert Patrol [TTL]", MACHINE_IS_SKELETON ) +GAME( 1977, dpatrola, dpatrol, pse, 0, pse_state, 0, ROT0, "Project Support Engineering (Telegames license)", "Desert Patrol (set 2) [TTL]", MACHINE_IS_SKELETON ) +GAME( 1978, gametree, 0, pse, 0, pse_state, 0, ROT0, "Project Support Engineering", "Game Tree [TTL]", MACHINE_IS_SKELETON ) +//GAME( 1976, knightar, 0, pse, 0, pse_state, 0, ROT0, "Project Support Engineering", "Knights in Armor [TTL]", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/psikyo.cpp b/src/mame/drivers/psikyo.cpp index 1b4a3733be7..3b514e6bd1c 100644 --- a/src/mame/drivers/psikyo.cpp +++ b/src/mame/drivers/psikyo.cpp @@ -1028,7 +1028,7 @@ void psikyo_state::machine_reset() ***************************************************************************/ -static MACHINE_CONFIG_START( sngkace, psikyo_state ) +static MACHINE_CONFIG_START( sngkace ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68EC020, XTAL_32MHz/2) /* verified on pcb */ @@ -1071,7 +1071,7 @@ MACHINE_CONFIG_END ***************************************************************************/ -static MACHINE_CONFIG_START( gunbird, psikyo_state ) +static MACHINE_CONFIG_START( gunbird ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68EC020, 16000000) @@ -1107,7 +1107,7 @@ static MACHINE_CONFIG_START( gunbird, psikyo_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( s1945bl, psikyo_state ) /* Bootleg hardware based on the unprotected Japanese Strikers 1945 set */ +static MACHINE_CONFIG_START( s1945bl ) /* Bootleg hardware based on the unprotected Japanese Strikers 1945 set */ /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68EC020, 16000000) @@ -1134,7 +1134,7 @@ static MACHINE_CONFIG_START( s1945bl, psikyo_state ) /* Bootleg hardware based o /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", XTAL_16MHz/16, OKIM6295_PIN7_LOW) // ?? clock + MCFG_OKIM6295_ADD("oki", XTAL_16MHz/16, PIN7_LOW) // ?? clock MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MCFG_DEVICE_ADDRESS_MAP(AS_0, s1945bl_oki_map) MACHINE_CONFIG_END @@ -1146,7 +1146,7 @@ MACHINE_CONFIG_END ***************************************************************************/ -static MACHINE_CONFIG_START( s1945, psikyo_state ) +static MACHINE_CONFIG_START( s1945 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68EC020, 16000000) @@ -2008,23 +2008,23 @@ DRIVER_INIT_MEMBER(psikyo_state,s1945bl) ***************************************************************************/ -GAME( 1993, samuraia, 0, sngkace, samuraia, psikyo_state, sngkace, ROT270, "Psikyo", "Samurai Aces (World)", MACHINE_SUPPORTS_SAVE ) // Banpresto? -GAME( 1993, sngkace, samuraia, sngkace, sngkace, psikyo_state, sngkace, ROT270, "Psikyo", "Sengoku Ace (Japan, set 1)", MACHINE_SUPPORTS_SAVE ) // Banpresto? -GAME( 1993, sngkacea, samuraia, sngkace, sngkace, psikyo_state, sngkace, ROT270, "Psikyo", "Sengoku Ace (Japan, set 2)", MACHINE_SUPPORTS_SAVE ) // Banpresto? +GAME( 1993, samuraia, 0, sngkace, samuraia, psikyo_state, sngkace, ROT270, "Psikyo", "Samurai Aces (World)", MACHINE_SUPPORTS_SAVE ) // Banpresto? +GAME( 1993, sngkace, samuraia, sngkace, sngkace, psikyo_state, sngkace, ROT270, "Psikyo", "Sengoku Ace (Japan, set 1)", MACHINE_SUPPORTS_SAVE ) // Banpresto? +GAME( 1993, sngkacea, samuraia, sngkace, sngkace, psikyo_state, sngkace, ROT270, "Psikyo", "Sengoku Ace (Japan, set 2)", MACHINE_SUPPORTS_SAVE ) // Banpresto? -GAME( 1994, gunbird, 0, gunbird, gunbird, psikyo_state, gunbird, ROT270, "Psikyo", "Gunbird (World)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, gunbirdk, gunbird, gunbird, gunbirdj, psikyo_state, gunbird, ROT270, "Psikyo", "Gunbird (Korea)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, gunbirdj, gunbird, gunbird, gunbirdj, psikyo_state, gunbird, ROT270, "Psikyo", "Gunbird (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, gunbird, 0, gunbird, gunbird, psikyo_state, gunbird, ROT270, "Psikyo", "Gunbird (World)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, gunbirdk, gunbird, gunbird, gunbirdj, psikyo_state, gunbird, ROT270, "Psikyo", "Gunbird (Korea)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, gunbirdj, gunbird, gunbird, gunbirdj, psikyo_state, gunbird, ROT270, "Psikyo", "Gunbird (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, btlkroad, 0, gunbird, btlkroad, psikyo_state, gunbird, ROT0, "Psikyo", "Battle K-Road", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, btlkroadk, btlkroad,gunbird, btlkroad, psikyo_state, gunbird, ROT0, "Psikyo", "Battle K-Road (Korean PCB)", MACHINE_SUPPORTS_SAVE ) // game code is still multi-region, but sound rom appears to be Korea specific at least +GAME( 1994, btlkroad, 0, gunbird, btlkroad, psikyo_state, gunbird, ROT0, "Psikyo", "Battle K-Road", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, btlkroadk, btlkroad, gunbird, btlkroad, psikyo_state, gunbird, ROT0, "Psikyo", "Battle K-Road (Korean PCB)", MACHINE_SUPPORTS_SAVE ) // game code is still multi-region, but sound rom appears to be Korea specific at least -GAME( 1995, s1945, 0, s1945, s1945, psikyo_state, s1945, ROT270, "Psikyo", "Strikers 1945 (World)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, s1945a, s1945, s1945, s1945a, psikyo_state, s1945a, ROT270, "Psikyo", "Strikers 1945 (Japan / World)", MACHINE_SUPPORTS_SAVE ) // Region dip - 0x0f=Japan, anything else=World -GAME( 1995, s1945j, s1945, s1945, s1945j, psikyo_state, s1945j, ROT270, "Psikyo", "Strikers 1945 (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, s1945jn, s1945, gunbird, s1945j, psikyo_state, s1945jn, ROT270, "Psikyo", "Strikers 1945 (Japan, unprotected)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, s1945k, s1945, s1945, s1945j, psikyo_state, s1945, ROT270, "Psikyo", "Strikers 1945 (Korea)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, s1945bl, s1945, s1945bl, s1945bl, psikyo_state, s1945bl, ROT270, "bootleg","Strikers 1945 (Hong Kong, bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, s1945, 0, s1945, s1945, psikyo_state, s1945, ROT270, "Psikyo", "Strikers 1945 (World)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, s1945a, s1945, s1945, s1945a, psikyo_state, s1945a, ROT270, "Psikyo", "Strikers 1945 (Japan / World)", MACHINE_SUPPORTS_SAVE ) // Region dip - 0x0f=Japan, anything else=World +GAME( 1995, s1945j, s1945, s1945, s1945j, psikyo_state, s1945j, ROT270, "Psikyo", "Strikers 1945 (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, s1945jn, s1945, gunbird, s1945j, psikyo_state, s1945jn, ROT270, "Psikyo", "Strikers 1945 (Japan, unprotected)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, s1945k, s1945, s1945, s1945j, psikyo_state, s1945, ROT270, "Psikyo", "Strikers 1945 (Korea)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, s1945bl, s1945, s1945bl, s1945bl, psikyo_state, s1945bl, ROT270, "bootleg", "Strikers 1945 (Hong Kong, bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, tengai, 0, s1945, tengai, psikyo_state, tengai, ROT0, "Psikyo", "Tengai (World)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, tengaij, tengai, s1945, tengaij, psikyo_state, tengai, ROT0, "Psikyo", "Sengoku Blade: Sengoku Ace Episode II / Tengai", MACHINE_SUPPORTS_SAVE ) // Region dip - 0x0f=Japan, anything else=World +GAME( 1996, tengai, 0, s1945, tengai, psikyo_state, tengai, ROT0, "Psikyo", "Tengai (World)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, tengaij, tengai, s1945, tengaij, psikyo_state, tengai, ROT0, "Psikyo", "Sengoku Blade: Sengoku Ace Episode II / Tengai", MACHINE_SUPPORTS_SAVE ) // Region dip - 0x0f=Japan, anything else=World diff --git a/src/mame/drivers/psikyo4.cpp b/src/mame/drivers/psikyo4.cpp index f7a4f1addfd..6d5b2987b92 100644 --- a/src/mame/drivers/psikyo4.cpp +++ b/src/mame/drivers/psikyo4.cpp @@ -652,7 +652,7 @@ void psikyo4_state::machine_reset() m_oldbrt2 = -1; } -static MACHINE_CONFIG_START( ps4big, psikyo4_state ) +static MACHINE_CONFIG_START( ps4big ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", SH2, MASTER_CLOCK/2) @@ -913,12 +913,12 @@ ROM_START( hotdebut ) ROM_END -/* YEAR NAME PARENT MACHINE INPUT INIT MONITOR COMPANY FULLNAME FLAGS */ -GAME( 1997, hotgmck, 0, ps4big, hotgmck, driver_device, 0, ROT0, "Psikyo", "Taisen Hot Gimmick (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, hgkairak, 0, ps4big, hotgmck, driver_device, 0, ROT0, "Psikyo", "Taisen Hot Gimmick Kairakuten (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1999, hotgmck3, 0, ps4big, hotgmck, driver_device, 0, ROT0, "Psikyo", "Taisen Hot Gimmick 3 Digital Surfing (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 2000, hotgm4ev, 0, ps4big, hotgmck, driver_device, 0, ROT0, "Psikyo", "Taisen Hot Gimmick 4 Ever (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 2001, hotgmcki, 0, ps4big, hotgmck, driver_device, 0, ROT0, "Psikyo", "Mahjong Hot Gimmick Integral (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 2000, loderndf, 0, ps4small, loderndf, driver_device, 0, ROT0, "Psikyo", "Lode Runner - The Dig Fight (ver. B)", MACHINE_SUPPORTS_SAVE ) -GAME( 2000, loderndfa,loderndf, ps4small, loderndf, driver_device, 0, ROT0, "Psikyo", "Lode Runner - The Dig Fight (ver. A)", MACHINE_SUPPORTS_SAVE ) -GAME( 2000, hotdebut, 0, ps4small, hotdebut, driver_device, 0, ROT0, "MOSS / Psikyo", "Quiz de Idol! Hot Debut (Japan)", MACHINE_SUPPORTS_SAVE ) +// YEAR NAME PARENT MACHINE INPUT INIT MONITOR COMPANY FULLNAME FLAGS +GAME( 1997, hotgmck, 0, ps4big, hotgmck, psikyo4_state, 0, ROT0, "Psikyo", "Taisen Hot Gimmick (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, hgkairak, 0, ps4big, hotgmck, psikyo4_state, 0, ROT0, "Psikyo", "Taisen Hot Gimmick Kairakuten (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, hotgmck3, 0, ps4big, hotgmck, psikyo4_state, 0, ROT0, "Psikyo", "Taisen Hot Gimmick 3 Digital Surfing (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, hotgm4ev, 0, ps4big, hotgmck, psikyo4_state, 0, ROT0, "Psikyo", "Taisen Hot Gimmick 4 Ever (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, hotgmcki, 0, ps4big, hotgmck, psikyo4_state, 0, ROT0, "Psikyo", "Mahjong Hot Gimmick Integral (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, loderndf, 0, ps4small, loderndf, psikyo4_state, 0, ROT0, "Psikyo", "Lode Runner - The Dig Fight (ver. B)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, loderndfa,loderndf, ps4small, loderndf, psikyo4_state, 0, ROT0, "Psikyo", "Lode Runner - The Dig Fight (ver. A)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, hotdebut, 0, ps4small, hotdebut, psikyo4_state, 0, ROT0, "MOSS / Psikyo", "Quiz de Idol! Hot Debut (Japan)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/psikyosh.cpp b/src/mame/drivers/psikyosh.cpp index d4c9a186a2b..ae60f086231 100644 --- a/src/mame/drivers/psikyosh.cpp +++ b/src/mame/drivers/psikyosh.cpp @@ -775,7 +775,7 @@ void psikyosh_state::machine_start() } -static MACHINE_CONFIG_START( psikyo3v1, psikyosh_state ) +static MACHINE_CONFIG_START( psikyo3v1 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", SH2, MASTER_CLOCK/2) @@ -1218,23 +1218,23 @@ DRIVER_INIT_MEMBER(psikyosh_state,mjgtaste) } -/* YEAR NAME PARENT MACHINE INPUT INIT MONITOR COMPANY FULLNAME FLAGS */ +// YEAR NAME PARENT MACHINE INPUT STATE INIT MONITOR COMPANY FULLNAME FLAGS */ /* ps3-v1 */ -GAME( 1997, soldivid, 0, psikyo3v1, soldivid, psikyosh_state, ps3, ROT0, "Psikyo", "Sol Divide - The Sword Of Darkness", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, soldividk, soldivid, psikyo3v1, soldividk,psikyosh_state, ps3, ROT0, "Psikyo", "Sol Divide - The Sword Of Darkness (Korea)", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, s1945ii, 0, psikyo3v1, s1945ii, psikyosh_state, ps3, ROT270, "Psikyo", "Strikers 1945 II", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, daraku, 0, psikyo3v1, daraku, psikyosh_state, ps3, ROT0, "Psikyo", "Daraku Tenshi - The Fallen Angels", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, sbomber, 0, psikyo3v1, sbomberb, psikyosh_state, ps3, ROT270, "Psikyo", "Space Bomber (ver. B)", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, sbombera, sbomber, psikyo3v1, sbomberb, psikyosh_state, ps3, ROT270, "Psikyo", "Space Bomber", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, soldivid, 0, psikyo3v1, soldivid, psikyosh_state, ps3, ROT0, "Psikyo", "Sol Divide - The Sword Of Darkness", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, soldividk, soldivid, psikyo3v1, soldividk,psikyosh_state, ps3, ROT0, "Psikyo", "Sol Divide - The Sword Of Darkness (Korea)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, s1945ii, 0, psikyo3v1, s1945ii, psikyosh_state, ps3, ROT270, "Psikyo", "Strikers 1945 II", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, daraku, 0, psikyo3v1, daraku, psikyosh_state, ps3, ROT0, "Psikyo", "Daraku Tenshi - The Fallen Angels", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, sbomber, 0, psikyo3v1, sbomberb, psikyosh_state, ps3, ROT270, "Psikyo", "Space Bomber (ver. B)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, sbombera, sbomber, psikyo3v1, sbomberb, psikyosh_state, ps3, ROT270, "Psikyo", "Space Bomber", MACHINE_SUPPORTS_SAVE ) /* ps5 */ -GAME( 1998, gunbird2, 0, psikyo5, gunbird2, psikyosh_state, ps5, ROT270, "Psikyo", "Gunbird 2", MACHINE_SUPPORTS_SAVE ) -GAME( 1999, s1945iii, 0, psikyo5, s1945iii, psikyosh_state, ps5, ROT270, "Psikyo", "Strikers 1945 III (World) / Strikers 1999 (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, gunbird2, 0, psikyo5, gunbird2, psikyosh_state, ps5, ROT270, "Psikyo", "Gunbird 2", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, s1945iii, 0, psikyo5, s1945iii, psikyosh_state, ps5, ROT270, "Psikyo", "Strikers 1945 III (World) / Strikers 1999 (Japan)", MACHINE_SUPPORTS_SAVE ) /* ps5v2 */ -GAME( 2000, dragnblz, 0, psikyo5, dragnblz, psikyosh_state, ps5, ROT270, "Psikyo", "Dragon Blaze", MACHINE_SUPPORTS_SAVE ) -GAME( 2000, tgm2, 0, psikyo5_240, tgm2, psikyosh_state, ps5, ROT0, "Arika", "Tetris the Absolute The Grand Master 2", MACHINE_SUPPORTS_SAVE ) -GAME( 2000, tgm2p, tgm2, psikyo5_240, tgm2, psikyosh_state, ps5, ROT0, "Arika", "Tetris the Absolute The Grand Master 2 Plus", MACHINE_SUPPORTS_SAVE ) -GAME( 2001, gnbarich, 0, psikyo5, gnbarich, psikyosh_state, ps5, ROT270, "Psikyo", "Gunbarich", MACHINE_SUPPORTS_SAVE ) -GAME( 2002, mjgtaste, 0, psikyo5, mjgtaste, psikyosh_state, mjgtaste, ROT0, "Psikyo", "Mahjong G-Taste", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, dragnblz, 0, psikyo5, dragnblz, psikyosh_state, ps5, ROT270, "Psikyo", "Dragon Blaze", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, tgm2, 0, psikyo5_240, tgm2, psikyosh_state, ps5, ROT0, "Arika", "Tetris the Absolute The Grand Master 2", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, tgm2p, tgm2, psikyo5_240, tgm2, psikyosh_state, ps5, ROT0, "Arika", "Tetris the Absolute The Grand Master 2 Plus", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, gnbarich, 0, psikyo5, gnbarich, psikyosh_state, ps5, ROT270, "Psikyo", "Gunbarich", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, mjgtaste, 0, psikyo5, mjgtaste, psikyosh_state, mjgtaste, ROT0, "Psikyo", "Mahjong G-Taste", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/psion.cpp b/src/mame/drivers/psion.cpp index bfccf26f09e..b3a4da91915 100644 --- a/src/mame/drivers/psion.cpp +++ b/src/mame/drivers/psion.cpp @@ -564,7 +564,7 @@ static GFXDECODE_START( psion ) GFXDECODE_END /* basic configuration for 2 lines display */ -static MACHINE_CONFIG_START( psion_2lines, psion_state ) +static MACHINE_CONFIG_START( psion_2lines ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", HD63701, 980000) // should be HD6303 at 0.98MHz @@ -615,7 +615,7 @@ static MACHINE_CONFIG_DERIVED( psion_4lines, psion_2lines ) MCFG_HD44780_PIXEL_UPDATE_CB(psion_state,lz_pixel_update) MACHINE_CONFIG_END -static MACHINE_CONFIG_DERIVED_CLASS( psion1, psion_2lines, psion1_state ) +static MACHINE_CONFIG_DERIVED( psion1, psion_2lines ) MCFG_CPU_MODIFY("maincpu") MCFG_CPU_PROGRAM_MAP(psion1_mem) @@ -793,15 +793,15 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1984, psion1, 0, 0, psion1, psion1,driver_device, 0, "Psion", "Organiser I", MACHINE_NOT_WORKING) -COMP( 1986, psioncm, 0, 0, psioncm, psion, driver_device, 0, "Psion", "Organiser II CM", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS) -COMP( 1986, psionla, psioncm, 0, psionla, psion, driver_device, 0, "Psion", "Organiser II LA", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS) -COMP( 1986, psionxp, psioncm, 0, psionla, psion, driver_device, 0, "Psion", "Organiser II XP", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS) -COMP( 1986, psionp200, psioncm, 0, psionp350, psion, driver_device, 0, "Psion", "Organiser II P200", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS) -COMP( 1986, psionp350, psioncm, 0, psionp350, psion, driver_device, 0, "Psion", "Organiser II P350", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS) -COMP( 1986, psionlam, psioncm, 0, psionlam, psion, driver_device, 0, "Psion", "Organiser II LAM", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS) -COMP( 1989, psionlz, 0, 0, psionlz, psion, driver_device, 0, "Psion", "Organiser II LZ", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS) -COMP( 1989, psionlz64, psionlz, 0, psionlz, psion, driver_device, 0, "Psion", "Organiser II LZ64", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS) -COMP( 1989, psionlz64s, psionlz, 0, psionlz, psion, driver_device, 0, "Psion", "Organiser II LZ64S", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS) -COMP( 1989, psionp464, psionlz, 0, psionlz, psion, driver_device, 0, "Psion", "Organiser II P464", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1984, psion1, 0, 0, psion1, psion1, psion1_state, 0, "Psion", "Organiser I", MACHINE_NOT_WORKING ) +COMP( 1986, psioncm, 0, 0, psioncm, psion, psion_state, 0, "Psion", "Organiser II CM", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS ) +COMP( 1986, psionla, psioncm, 0, psionla, psion, psion_state, 0, "Psion", "Organiser II LA", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS ) +COMP( 1986, psionxp, psioncm, 0, psionla, psion, psion_state, 0, "Psion", "Organiser II XP", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS ) +COMP( 1986, psionp200, psioncm, 0, psionp350, psion, psion_state, 0, "Psion", "Organiser II P200", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS ) +COMP( 1986, psionp350, psioncm, 0, psionp350, psion, psion_state, 0, "Psion", "Organiser II P350", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS ) +COMP( 1986, psionlam, psioncm, 0, psionlam, psion, psion_state, 0, "Psion", "Organiser II LAM", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS ) +COMP( 1989, psionlz, 0, 0, psionlz, psion, psion_state, 0, "Psion", "Organiser II LZ", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS ) +COMP( 1989, psionlz64, psionlz, 0, psionlz, psion, psion_state, 0, "Psion", "Organiser II LZ64", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS ) +COMP( 1989, psionlz64s, psionlz, 0, psionlz, psion, psion_state, 0, "Psion", "Organiser II LZ64S", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS ) +COMP( 1989, psionp464, psionlz, 0, psionlz, psion, psion_state, 0, "Psion", "Organiser II P464", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS ) diff --git a/src/mame/drivers/psx.cpp b/src/mame/drivers/psx.cpp index b4d8124b2dd..453b030ce6f 100644 --- a/src/mame/drivers/psx.cpp +++ b/src/mame/drivers/psx.cpp @@ -93,7 +93,7 @@ static ADDRESS_MAP_START( subcpu_map, AS_PROGRAM, 8, psx1_state ) AM_RANGE(0x0000, 0xffff) AM_ROM ADDRESS_MAP_END -static MACHINE_CONFIG_START( psj, psx1_state ) +static MACHINE_CONFIG_START( psj ) /* basic machine hardware */ MCFG_CPU_ADD( "maincpu", CXD8530CQ, XTAL_67_7376MHz ) MCFG_CPU_PROGRAM_MAP( psx_map ) @@ -129,8 +129,8 @@ static MACHINE_CONFIG_START( psj, psx1_state ) MCFG_PSXCD_ADD(PSXCD_TAG, "cdrom") MCFG_PSXCD_IRQ_HANDLER(DEVWRITELINE("maincpu:irq", psxirq_device, intin2)) - MCFG_PSX_DMA_CHANNEL_READ( "maincpu", 3, psx_dma_read_delegate(&psx1_state::cd_dma_read, (psx1_state *) owner ) ) - MCFG_PSX_DMA_CHANNEL_WRITE( "maincpu", 3, psx_dma_write_delegate(&psx1_state::cd_dma_write, (psx1_state *) owner ) ) + MCFG_PSX_DMA_CHANNEL_READ( "maincpu", 3, psxdma_device::read_delegate(&psx1_state::cd_dma_read, (psx1_state *) owner ) ) + MCFG_PSX_DMA_CHANNEL_WRITE( "maincpu", 3, psxdma_device::write_delegate(&psx1_state::cd_dma_write, (psx1_state *) owner ) ) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( psu, psj ) @@ -138,7 +138,7 @@ static MACHINE_CONFIG_DERIVED( psu, psj ) MCFG_CPU_PROGRAM_MAP( subcpu_map ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( pse, psx1_state ) +static MACHINE_CONFIG_START( pse ) /* basic machine hardware */ MCFG_CPU_ADD( "maincpu", CXD8530AQ, XTAL_67_7376MHz ) MCFG_CPU_PROGRAM_MAP( psx_map) @@ -175,8 +175,8 @@ static MACHINE_CONFIG_START( pse, psx1_state ) MCFG_PSXCD_ADD(PSXCD_TAG, "cdrom") MCFG_PSXCD_IRQ_HANDLER(DEVWRITELINE("maincpu:irq", psxirq_device, intin2)) - MCFG_PSX_DMA_CHANNEL_READ( "maincpu", 3, psx_dma_read_delegate(&psx1_state::cd_dma_read, (psx1_state *) owner ) ) - MCFG_PSX_DMA_CHANNEL_WRITE( "maincpu", 3, psx_dma_write_delegate(&psx1_state::cd_dma_write, (psx1_state *) owner ) ) + MCFG_PSX_DMA_CHANNEL_READ( "maincpu", 3, psxdma_device::read_delegate(&psx1_state::cd_dma_read, (psx1_state *) owner ) ) + MCFG_PSX_DMA_CHANNEL_WRITE( "maincpu", 3, psxdma_device::write_delegate(&psx1_state::cd_dma_write, (psx1_state *) owner ) ) MACHINE_CONFIG_END ROM_START( psj ) @@ -306,8 +306,8 @@ Version 4.3 E */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -CONS( 1994, psj, 0, 0, psj, 0, driver_device, 0, "Sony Computer Entertainment Inc", "Sony PlayStation (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -CONS( 1995, pse, psj, 0, pse, 0, driver_device, 0, "Sony Computer Entertainment Inc", "Sony PlayStation (Europe)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -CONS( 1995, psu, psj, 0, psu, 0, driver_device, 0, "Sony Computer Entertainment Inc", "Sony PlayStation (USA)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -CONS( 1995, psa, psj, 0, psj, 0, driver_device, 0, "Sony Computer Entertainment Inc", "Sony PlayStation (Asia-Pacific)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +CONS( 1994, psj, 0, 0, psj, 0, psx1_state, 0, "Sony Computer Entertainment Inc", "Sony PlayStation (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +CONS( 1995, pse, psj, 0, pse, 0, psx1_state, 0, "Sony Computer Entertainment Inc", "Sony PlayStation (Europe)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +CONS( 1995, psu, psj, 0, psu, 0, psx1_state, 0, "Sony Computer Entertainment Inc", "Sony PlayStation (USA)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +CONS( 1995, psa, psj, 0, psj, 0, psx1_state, 0, "Sony Computer Entertainment Inc", "Sony PlayStation (Asia-Pacific)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) diff --git a/src/mame/drivers/psychic5.cpp b/src/mame/drivers/psychic5.cpp index 1c41e5ee726..10a710e9de8 100644 --- a/src/mame/drivers/psychic5.cpp +++ b/src/mame/drivers/psychic5.cpp @@ -712,7 +712,7 @@ static GFXDECODE_START( bombsa ) GFXDECODE_END -static MACHINE_CONFIG_START( psychic5, psychic5_state ) +static MACHINE_CONFIG_START( psychic5 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_12MHz/2) @@ -766,7 +766,7 @@ static MACHINE_CONFIG_START( psychic5, psychic5_state ) MCFG_SOUND_ROUTE(3, "mono", 0.50) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( bombsa, psychic5_state ) +static MACHINE_CONFIG_START( bombsa ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_12MHz/2 ) /* 6 MHz */ @@ -972,6 +972,6 @@ ROM_START( bombsa ) ROM_END -GAME( 1987, psychic5, 0, psychic5, psychic5, driver_device, 0, ROT270, "Jaleco / NMK", "Psychic 5 (World)", MACHINE_SUPPORTS_SAVE ) // "Oversea's version V2.00 CHANGED BY TAMIO NAKASATO" text present in ROM, various modifications (English names, more complete attract demo etc.) -GAME( 1987, psychic5j, psychic5, psychic5, psychic5, driver_device, 0, ROT270, "Jaleco / NMK", "Psychic 5 (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, bombsa, 0, bombsa, bombsa, driver_device, 0, ROT270, "Jaleco", "Bombs Away (prototype)", MACHINE_IS_INCOMPLETE | MACHINE_SUPPORTS_SAVE ) +GAME( 1987, psychic5, 0, psychic5, psychic5, psychic5_state, 0, ROT270, "Jaleco / NMK", "Psychic 5 (World)", MACHINE_SUPPORTS_SAVE ) // "Oversea's version V2.00 CHANGED BY TAMIO NAKASATO" text present in ROM, various modifications (English names, more complete attract demo etc.) +GAME( 1987, psychic5j, psychic5, psychic5, psychic5, psychic5_state, 0, ROT270, "Jaleco / NMK", "Psychic 5 (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, bombsa, 0, bombsa, bombsa, psychic5_state, 0, ROT270, "Jaleco", "Bombs Away (prototype)", MACHINE_IS_INCOMPLETE | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/pt68k4.cpp b/src/mame/drivers/pt68k4.cpp index a1761baaf5c..5b39076649b 100644 --- a/src/mame/drivers/pt68k4.cpp +++ b/src/mame/drivers/pt68k4.cpp @@ -62,8 +62,16 @@ TODO: 68230 device #include "machine/wd_fdc.h" #include "sound/spkrdev.h" +#include "bus/isa/cga.h" +#include "bus/isa/ega.h" +#include "bus/isa/fdc.h" #include "bus/isa/isa.h" #include "bus/isa/isa_cards.h" +#include "bus/isa/lpt.h" +#include "bus/isa/mda.h" +#include "bus/isa/vga.h" +#include "bus/isa/wdxt_gen.h" +#include "bus/isa/xtide.h" #include "bus/pc_kbd/keyboards.h" #include "bus/pc_kbd/pc_kbdc.h" @@ -125,7 +133,7 @@ private: required_device m_duart2; required_device m_isa; required_device m_speaker; - optional_device m_wdfdc; + optional_device m_wdfdc; void irq5_update(); @@ -248,7 +256,7 @@ static ADDRESS_MAP_START(pt68k2_mem, AS_PROGRAM, 16, pt68k4_state) AM_RANGE(0xfe0040, 0xfe005f) AM_DEVREADWRITE8(DUART2_TAG, mc68681_device, read, write, 0x00ff) AM_RANGE(0xfe0080, 0xfe00bf) AM_READ8(pia_stub_r, 0x00ff) AM_RANGE(0xfe00c0, 0xfe00ff) AM_WRITE8(fdc_select_w, 0x00ff) - AM_RANGE(0xfe0100, 0xfe013f) AM_DEVREADWRITE8(WDFDC_TAG, wd1772_t, read, write, 0x00ff) + AM_RANGE(0xfe0100, 0xfe013f) AM_DEVREADWRITE8(WDFDC_TAG, wd1772_device, read, write, 0x00ff) AM_RANGE(0xfe01c0, 0xfe01c3) AM_READWRITE8(keyboard_r, keyboard_w, 0x00ff) AM_RANGE(0xff0000, 0xff0fff) AM_READWRITE8(hiram_r, hiram_w, 0xff00) AM_RANGE(0xff0000, 0xff0fff) AM_DEVREADWRITE8(TIMEKEEPER_TAG, timekeeper_device, read, write, 0x00ff) @@ -386,7 +394,7 @@ SLOT_INTERFACE_START( pt68k4_isa8_cards ) SLOT_INTERFACE("xtide", ISA8_XTIDE) // Monk only SLOT_INTERFACE_END -static MACHINE_CONFIG_START( pt68k2, pt68k4_state ) +static MACHINE_CONFIG_START( pt68k2 ) /* basic machine hardware */ MCFG_CPU_ADD(M68K_TAG, M68000, XTAL_16MHz/2) // 68k2 came in 8, 10, and 12 MHz versions MCFG_CPU_PROGRAM_MAP(pt68k2_mem) @@ -426,7 +434,7 @@ static MACHINE_CONFIG_START( pt68k2, pt68k4_state ) MCFG_SOFTWARE_LIST_ADD("flop525_list", "pt68k2") MACHINE_CONFIG_END -static MACHINE_CONFIG_START( pt68k4, pt68k4_state ) +static MACHINE_CONFIG_START( pt68k4 ) /* basic machine hardware */ MCFG_CPU_ADD(M68K_TAG, M68000, XTAL_16MHz) MCFG_CPU_PROGRAM_MAP(pt68k4_mem) @@ -493,6 +501,6 @@ ROM_START( pt68k4 ) ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1988, pt68k2, 0, 0, pt68k2, pt68k4, driver_device, 0, "Peripheral Technology", "PT68K2", MACHINE_SUPPORTS_SAVE ) -COMP( 1990, pt68k4, 0, 0, pt68k4, pt68k4, driver_device, 0, "Peripheral Technology", "PT68K4", MACHINE_SUPPORTS_SAVE ) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 1988, pt68k2, 0, 0, pt68k2, pt68k4, pt68k4_state, 0, "Peripheral Technology", "PT68K2", MACHINE_SUPPORTS_SAVE ) +COMP( 1990, pt68k4, 0, 0, pt68k4, pt68k4, pt68k4_state, 0, "Peripheral Technology", "PT68K4", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/ptcsol.cpp b/src/mame/drivers/ptcsol.cpp index 163d48a16b6..7777959b7c2 100644 --- a/src/mame/drivers/ptcsol.cpp +++ b/src/mame/drivers/ptcsol.cpp @@ -179,7 +179,7 @@ public: DECLARE_WRITE8_MEMBER( sol20_fb_w ); DECLARE_WRITE8_MEMBER( sol20_fd_w ); DECLARE_WRITE8_MEMBER( sol20_fe_w ); - DECLARE_WRITE8_MEMBER( kbd_put ); + void kbd_put(u8 data); DECLARE_DRIVER_INIT(sol20); TIMER_CALLBACK_MEMBER(sol20_cassette_tc); TIMER_CALLBACK_MEMBER(sol20_boot); @@ -722,7 +722,7 @@ static GFXDECODE_START( sol20 ) GFXDECODE_ENTRY( "chargen", 0x0000, sol20_charlayout, 0, 1 ) GFXDECODE_END -WRITE8_MEMBER( sol20_state::kbd_put ) +void sol20_state::kbd_put(u8 data) { if (data) { @@ -731,7 +731,7 @@ WRITE8_MEMBER( sol20_state::kbd_put ) } } -static MACHINE_CONFIG_START( sol20, sol20_state ) +static MACHINE_CONFIG_START( sol20 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",I8080, XTAL_14_31818MHz/7) MCFG_CPU_PROGRAM_MAP(sol20_mem) @@ -777,7 +777,7 @@ static MACHINE_CONFIG_START( sol20, sol20_state ) MCFG_AY31015_TX_CLOCK(4800.0) MCFG_AY31015_RX_CLOCK(4800.0) MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0) - MCFG_GENERIC_KEYBOARD_CB(WRITE8(sol20_state, kbd_put)) + MCFG_GENERIC_KEYBOARD_CB(PUT(sol20_state, kbd_put)) MCFG_SOFTWARE_LIST_ADD("cass_list", "sol20_cass") MACHINE_CONFIG_END @@ -805,5 +805,5 @@ ROM_START( sol20 ) ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS COMP( 1976, sol20, 0, 0, sol20, sol20, sol20_state, sol20, "Processor Technology Corporation", "SOL-20", 0 ) diff --git a/src/mame/drivers/pturn.cpp b/src/mame/drivers/pturn.cpp index e14e863d215..5dfe05c42d6 100644 --- a/src/mame/drivers/pturn.cpp +++ b/src/mame/drivers/pturn.cpp @@ -498,7 +498,7 @@ void pturn_state::machine_reset() m_soundlatch->clear_w(space,0,0); } -static MACHINE_CONFIG_START( pturn, pturn_state ) +static MACHINE_CONFIG_START( pturn ) MCFG_CPU_ADD("maincpu", Z80, 12000000/3) MCFG_CPU_PROGRAM_MAP(main_map) MCFG_CPU_VBLANK_INT_DRIVER("screen", pturn_state, main_intgen) diff --git a/src/mame/drivers/puckpkmn.cpp b/src/mame/drivers/puckpkmn.cpp index ab276011ddc..28d46aa27b0 100644 --- a/src/mame/drivers/puckpkmn.cpp +++ b/src/mame/drivers/puckpkmn.cpp @@ -275,7 +275,7 @@ static ADDRESS_MAP_START( puckpkmna_map, AS_PROGRAM, 16, md_boot_state ) AM_RANGE(0x70001c, 0x70001d) AM_READ(puckpkmna_70001c_r) ADDRESS_MAP_END -static MACHINE_CONFIG_START( puckpkmn, md_boot_state ) +static MACHINE_CONFIG_START( puckpkmn ) MCFG_FRAGMENT_ADD(md_ntsc) MCFG_CPU_MODIFY("maincpu") @@ -285,7 +285,7 @@ static MACHINE_CONFIG_START( puckpkmn, md_boot_state ) MCFG_DEVICE_REMOVE("genesis_snd_z80") - MCFG_OKIM6295_ADD("oki", XTAL_4MHz / 4, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", XTAL_4MHz / 4, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.25) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker",0.25) MACHINE_CONFIG_END @@ -488,4 +488,4 @@ ROM_END GAME( 2000, puckpkmn, 0, puckpkmn, puckpkmn, md_boot_state, puckpkmn, ROT0, "Genie", "Puckman Pockimon (set 1)", 0 ) GAME( 2000, puckpkmna,puckpkmn, puckpkmna, puckpkmn, md_boot_state, puckpkmn, ROT0, "IBS", "Puckman Pockimon (set 2)", 0 ) GAME( 2000, puckpkmnb,puckpkmn, puckpkmna, puckpkmn, md_boot_state, puckpkmn, ROT0, "Sun Mixing", "Puckman Pockimon (set 3)", 0 ) -GAME( 2000, jzth, 0, jzth, jzth, md_boot_state, puckpkmn, ROT0, "", "Jue Zhan Tian Huang", MACHINE_IMPERFECT_SOUND ) +GAME( 2000, jzth, 0, jzth, jzth, md_boot_state, puckpkmn, ROT0, "", "Jue Zhan Tian Huang", MACHINE_IMPERFECT_SOUND ) diff --git a/src/mame/drivers/pulsar.cpp b/src/mame/drivers/pulsar.cpp index 1953c805e4b..d59f42b2fdf 100644 --- a/src/mame/drivers/pulsar.cpp +++ b/src/mame/drivers/pulsar.cpp @@ -77,7 +77,7 @@ private: required_device m_maincpu; required_device m_dart; required_device m_brg; - required_device m_fdc; + required_device m_fdc; required_device m_floppy0; required_device m_floppy1; required_device m_rtc; @@ -94,7 +94,7 @@ static ADDRESS_MAP_START(pulsar_io, AS_IO, 8, pulsar_state) ADDRESS_MAP_UNMAP_HIGH ADDRESS_MAP_GLOBAL_MASK(0xff) AM_RANGE(0xc0, 0xc3) AM_MIRROR(0x0c) AM_DEVREADWRITE("z80dart", z80dart_device, ba_cd_r, ba_cd_w) - AM_RANGE(0xd0, 0xd3) AM_MIRROR(0x0c) AM_DEVREADWRITE("fdc", fd1797_t, read, write) + AM_RANGE(0xd0, 0xd3) AM_MIRROR(0x0c) AM_DEVREADWRITE("fdc", fd1797_device, read, write) AM_RANGE(0xe0, 0xe3) AM_MIRROR(0x0c) AM_DEVREADWRITE("ppi", i8255_device, read, write) AM_RANGE(0xf0, 0xff) AM_WRITE(baud_w) ADDRESS_MAP_END @@ -224,7 +224,7 @@ DRIVER_INIT_MEMBER( pulsar_state, pulsar ) membank("bankw1")->configure_entry(0, &main[0xf800]); } -static MACHINE_CONFIG_START( pulsar, pulsar_state ) +static MACHINE_CONFIG_START( pulsar ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80, XTAL_4MHz) MCFG_CPU_PROGRAM_MAP(pulsar_mem) @@ -274,5 +274,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1981, pulsarlb, 0, 0, pulsar, pulsar, pulsar_state, pulsar, "Pulsar", "Little Big Board", MACHINE_NO_SOUND_HW) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 1981, pulsarlb, 0, 0, pulsar, pulsar, pulsar_state, pulsar, "Pulsar", "Little Big Board", MACHINE_NO_SOUND_HW ) diff --git a/src/mame/drivers/punchout.cpp b/src/mame/drivers/punchout.cpp index d3bc387214c..eab2aa94073 100644 --- a/src/mame/drivers/punchout.cpp +++ b/src/mame/drivers/punchout.cpp @@ -640,7 +640,7 @@ MACHINE_RESET_MEMBER(punchout_state, spnchout) } -static MACHINE_CONFIG_START( punchout, punchout_state ) +static MACHINE_CONFIG_START( punchout ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_8MHz/2) @@ -1342,11 +1342,11 @@ ROM_END -GAME( 1984, punchout, 0, punchout, punchout, driver_device, 0, ROT0, "Nintendo", "Punch-Out!! (Rev B)", 0 ) /* CHP1-02 boards */ -GAME( 1984, punchouta, punchout, punchout, punchout, driver_device, 0, ROT0, "Nintendo", "Punch-Out!! (Rev A)", 0 ) /* CHP1-01 boards */ -GAME( 1984, punchoutj, punchout, punchout, punchout, driver_device, 0, ROT0, "Nintendo", "Punch-Out!! (Japan)", 0 ) -GAME( 1984, punchita, punchout, punchout, punchout, driver_device, 0, ROT0, "bootleg", "Punch-Out!! (Italian bootleg)", 0 ) -GAME( 1984, spnchout, 0, spnchout, spnchout, driver_device, 0, ROT0, "Nintendo", "Super Punch-Out!! (Rev B)", 0 ) /* CHP1-02 boards */ -GAME( 1984, spnchouta, spnchout, spnchout, spnchout, driver_device, 0, ROT0, "Nintendo", "Super Punch-Out!! (Rev A)", 0 ) /* CHP1-01 boards */ -GAME( 1984, spnchoutj, spnchout, spnchout, spnchout, driver_device, 0, ROT0, "Nintendo", "Super Punch-Out!! (Japan)", 0 ) -GAME( 1985, armwrest, 0, armwrest, armwrest, driver_device, 0, ROT0, "Nintendo", "Arm Wrestling", 0 ) +GAME( 1984, punchout, 0, punchout, punchout, punchout_state, 0, ROT0, "Nintendo", "Punch-Out!! (Rev B)", 0 ) /* CHP1-02 boards */ +GAME( 1984, punchouta, punchout, punchout, punchout, punchout_state, 0, ROT0, "Nintendo", "Punch-Out!! (Rev A)", 0 ) /* CHP1-01 boards */ +GAME( 1984, punchoutj, punchout, punchout, punchout, punchout_state, 0, ROT0, "Nintendo", "Punch-Out!! (Japan)", 0 ) +GAME( 1984, punchita, punchout, punchout, punchout, punchout_state, 0, ROT0, "bootleg", "Punch-Out!! (Italian bootleg)", 0 ) +GAME( 1984, spnchout, 0, spnchout, spnchout, punchout_state, 0, ROT0, "Nintendo", "Super Punch-Out!! (Rev B)", 0 ) /* CHP1-02 boards */ +GAME( 1984, spnchouta, spnchout, spnchout, spnchout, punchout_state, 0, ROT0, "Nintendo", "Super Punch-Out!! (Rev A)", 0 ) /* CHP1-01 boards */ +GAME( 1984, spnchoutj, spnchout, spnchout, spnchout, punchout_state, 0, ROT0, "Nintendo", "Super Punch-Out!! (Japan)", 0 ) +GAME( 1985, armwrest, 0, armwrest, armwrest, punchout_state, 0, ROT0, "Nintendo", "Arm Wrestling", 0 ) diff --git a/src/mame/drivers/pv1000.cpp b/src/mame/drivers/pv1000.cpp index 2b6ea9a2b12..af677db56ac 100644 --- a/src/mame/drivers/pv1000.cpp +++ b/src/mame/drivers/pv1000.cpp @@ -45,13 +45,11 @@ private: sound_stream *m_sh_channel; }; -extern const device_type PV1000; - -const device_type PV1000 = device_creator; +DEFINE_DEVICE_TYPE(PV1000, pv1000_sound_device, "pv1000_sound", "NEC D65010G031") pv1000_sound_device::pv1000_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, PV1000, "NEC D65010G031", tag, owner, clock, "pv1000_sound", __FILE__), - device_sound_interface(mconfig, *this) + : device_t(mconfig, PV1000, tag, owner, clock) + , device_sound_interface(mconfig, *this) { } @@ -434,7 +432,7 @@ static GFXDECODE_START( pv1000 ) GFXDECODE_END -static MACHINE_CONFIG_START( pv1000, pv1000_state ) +static MACHINE_CONFIG_START( pv1000 ) MCFG_CPU_ADD( "maincpu", Z80, 17897725/5 ) MCFG_CPU_PROGRAM_MAP( pv1000 ) @@ -471,5 +469,5 @@ ROM_START( pv1000 ) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -CONS( 1983, pv1000, 0, 0, pv1000, pv1000, driver_device, 0, "Casio", "PV-1000", MACHINE_SUPPORTS_SAVE ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +CONS( 1983, pv1000, 0, 0, pv1000, pv1000, pv1000_state, 0, "Casio", "PV-1000", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/pv2000.cpp b/src/mame/drivers/pv2000.cpp index c2ae369f0c7..6c88b76550d 100644 --- a/src/mame/drivers/pv2000.cpp +++ b/src/mame/drivers/pv2000.cpp @@ -379,7 +379,7 @@ DEVICE_IMAGE_LOAD_MEMBER( pv2000_state, pv2000_cart ) } /* Machine Drivers */ -static MACHINE_CONFIG_START( pv2000, pv2000_state ) +static MACHINE_CONFIG_START( pv2000 ) // basic machine hardware MCFG_CPU_ADD("maincpu", Z80, XTAL_7_15909MHz/2) // 3.579545 MHz @@ -426,5 +426,5 @@ ROM_END /* System Drivers */ -// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS -CONS( 1983, pv2000, 0, 0, pv2000, pv2000, driver_device, 0, "Casio", "PV-2000", MACHINE_NOT_WORKING ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +CONS( 1983, pv2000, 0, 0, pv2000, pv2000, pv2000_state, 0, "Casio", "PV-2000", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/pv9234.cpp b/src/mame/drivers/pv9234.cpp index 97263c9bdc3..8924492d27d 100644 --- a/src/mame/drivers/pv9234.cpp +++ b/src/mame/drivers/pv9234.cpp @@ -29,17 +29,23 @@ class pv9234_state : public driver_device { public: pv9234_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag), - m_p_ram(*this, "p_ram"), - m_maincpu(*this, "maincpu") { } + : driver_device(mconfig, type, tag) + , m_p_ram(*this, "p_ram") + , m_maincpu(*this, "maincpu") + { + } DECLARE_WRITE32_MEMBER(debug_w); DECLARE_WRITE32_MEMBER(debug1_w); DECLARE_WRITE32_MEMBER(debug2_w); - required_shared_ptr m_p_ram; + + uint32_t screen_update_pv9234(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + +protected: virtual void machine_reset() override; virtual void video_start() override; - uint32_t screen_update_pv9234(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + + required_shared_ptr m_p_ram; required_device m_maincpu; }; @@ -137,7 +143,7 @@ uint32_t pv9234_state::screen_update_pv9234(screen_device &screen, bitmap_ind16 return 0; } -static MACHINE_CONFIG_START( pv9234, pv9234_state ) +static MACHINE_CONFIG_START( pv9234 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", ARM7, 4915000) //probably a more powerful clone. MCFG_CPU_PROGRAM_MAP(pv9234_map) @@ -167,5 +173,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -SYST( 1997, pv9234, 0, 0, pv9234, pv9234, driver_device, 0, "Scientific Atlanta", "PowerVu D9234", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +SYST( 1997, pv9234, 0, 0, pv9234, pv9234, pv9234_state, 0, "Scientific Atlanta", "PowerVu D9234", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) diff --git a/src/mame/drivers/pve500.cpp b/src/mame/drivers/pve500.cpp index 40208e508e0..00709e686a0 100644 --- a/src/mame/drivers/pve500.cpp +++ b/src/mame/drivers/pve500.cpp @@ -345,7 +345,7 @@ printf("io_expander_w: PORTA (io_SC=%02X)\n", data); } } -static MACHINE_CONFIG_START( pve500, pve500_state ) +static MACHINE_CONFIG_START( pve500 ) /* Main CPU */ MCFG_CPU_ADD("maincpu", TMPZ84C015, XTAL_12MHz / 2) /* TMPZ84C015BF-6 */ MCFG_CPU_PROGRAM_MAP(maincpu_prg) @@ -435,5 +435,5 @@ ROM_START( pve500 ) ROM_LOAD( "pve500.ice3", 0x0000, 0x080, NO_DUMP ) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1995, pve500, 0, 0, pve500, pve500, pve500_state, pve500, "SONY", "PVE-500", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 1995, pve500, 0, 0, pve500, pve500, pve500_state, pve500, "SONY", "PVE-500", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS) diff --git a/src/mame/drivers/pwrview.cpp b/src/mame/drivers/pwrview.cpp index a0ed78c2b49..be24d194c5c 100644 --- a/src/mame/drivers/pwrview.cpp +++ b/src/mame/drivers/pwrview.cpp @@ -347,7 +347,7 @@ static SLOT_INTERFACE_START(pwrview_floppies) SLOT_INTERFACE("525dd", FLOPPY_525_DD) SLOT_INTERFACE_END -static MACHINE_CONFIG_START( pwrview, pwrview_state ) +static MACHINE_CONFIG_START( pwrview ) MCFG_CPU_ADD("maincpu", I80186, XTAL_16MHz) MCFG_CPU_PROGRAM_MAP(pwrview_map) MCFG_CPU_DECRYPTED_OPCODES_MAP(pwrview_fetch_map) @@ -390,4 +390,4 @@ ROM_START(pwrview) ROMX_LOAD("215856-004.bin", 0x0001, 0x4000, CRC(4fd01e0a) SHA1(c4d1d40d4e8e529c03857f4a3c8428ccf6b8ff99), ROM_SKIP(1) | ROM_BIOS(1)) ROM_END -COMP(1984, pwrview, 0, 0, pwrview, 0, driver_device, 0, "Compugraphic", "MCS PowerView 10", MACHINE_NOT_WORKING) +COMP(1984, pwrview, 0, 0, pwrview, 0, pwrview_state, 0, "Compugraphic", "MCS PowerView 10", MACHINE_NOT_WORKING) diff --git a/src/mame/drivers/px4.cpp b/src/mame/drivers/px4.cpp index 0a5d764f8ba..b443ebf74d2 100644 --- a/src/mame/drivers/px4.cpp +++ b/src/mame/drivers/px4.cpp @@ -1473,7 +1473,7 @@ PALETTE_INIT_MEMBER( px4p_state, px4p ) // MACHINE DRIVERS //************************************************************************** -static MACHINE_CONFIG_START( px4, px4_state ) +static MACHINE_CONFIG_START( px4 ) // basic machine hardware MCFG_CPU_ADD("maincpu", Z80, XTAL_7_3728MHz / 2) // uPD70008 MCFG_CPU_PROGRAM_MAP(px4_mem) @@ -1539,7 +1539,7 @@ static MACHINE_CONFIG_START( px4, px4_state ) MCFG_SOFTWARE_LIST_ADD("epson_cpm_list", "epson_cpm") MACHINE_CONFIG_END -static MACHINE_CONFIG_DERIVED_CLASS( px4p, px4, px4p_state ) +static MACHINE_CONFIG_DERIVED( px4p, px4 ) MCFG_CPU_MODIFY("maincpu") MCFG_CPU_IO_MAP(px4p_io) diff --git a/src/mame/drivers/px8.cpp b/src/mame/drivers/px8.cpp index a443bb7ddfd..4d4392789bc 100644 --- a/src/mame/drivers/px8.cpp +++ b/src/mame/drivers/px8.cpp @@ -758,7 +758,7 @@ void px8_state::machine_reset() MACHINE DRIVERS ***************************************************************************/ -static MACHINE_CONFIG_START( px8, px8_state ) +static MACHINE_CONFIG_START( px8 ) /* main cpu (uPD70008) */ MCFG_CPU_ADD(UPD70008_TAG, Z80, XTAL_CR1 / 4) /* 2.45 MHz */ MCFG_CPU_PROGRAM_MAP(px8_mem) @@ -841,5 +841,5 @@ ROM_END SYSTEM DRIVERS ***************************************************************************/ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1984, px8, 0, 0, px8, px8, driver_device, 0, "Epson", "PX-8", MACHINE_NOT_WORKING ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +COMP( 1984, px8, 0, 0, px8, px8, px8_state, 0, "Epson", "PX-8", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/pyl601.cpp b/src/mame/drivers/pyl601.cpp index fc6cc6250db..d99b9ea2cce 100644 --- a/src/mame/drivers/pyl601.cpp +++ b/src/mame/drivers/pyl601.cpp @@ -529,7 +529,7 @@ static GFXDECODE_START( pyl601a ) GFXDECODE_ENTRY( "chargen", 0x0000, pyl601a_charlayout, 0, 1 ) GFXDECODE_END -static MACHINE_CONFIG_START( pyl601, pyl601_state ) +static MACHINE_CONFIG_START( pyl601 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",M6800, XTAL_1MHz) MCFG_CPU_PROGRAM_MAP(pyl601_mem) @@ -623,6 +623,6 @@ ROM_START( pyl601a ) ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1989, pyl601, 0, 0, pyl601, pyl601, pyl601_state, pyl601, "Mikroelektronika", "Pyldin-601", 0 ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +COMP( 1989, pyl601, 0, 0, pyl601, pyl601, pyl601_state, pyl601, "Mikroelektronika", "Pyldin-601", 0 ) COMP( 1989, pyl601a, pyl601, 0, pyl601a, pyl601, pyl601_state, pyl601, "Mikroelektronika", "Pyldin-601A", 0 ) diff --git a/src/mame/drivers/pyson.cpp b/src/mame/drivers/pyson.cpp index b117c8ee69c..22ad241f134 100644 --- a/src/mame/drivers/pyson.cpp +++ b/src/mame/drivers/pyson.cpp @@ -193,7 +193,7 @@ ADDRESS_MAP_END static INPUT_PORTS_START( pyson ) INPUT_PORTS_END -static MACHINE_CONFIG_START( pyson, pyson_state ) +static MACHINE_CONFIG_START( pyson ) MCFG_CPU_ADD("maincpu", R5000LE, 294000000) // imported from namcops2.c driver MCFG_MIPS3_ICACHE_SIZE(16384) MCFG_MIPS3_DCACHE_SIZE(16384) @@ -251,6 +251,6 @@ ROM_START( wswe2k3 ) ROM_END -GAME(2002, pyson, 0, pyson, pyson, driver_device, 0, ROT0, "Konami", "Konami Pyson BIOS", MACHINE_IS_SKELETON|MACHINE_IS_BIOS_ROOT) -GAME(2002, wswe, pyson, pyson, pyson, driver_device, 0, ROT0, "Konami", "World Soccer Winning Eleven Arcade Game Style", MACHINE_IS_SKELETON) -GAME(2003, wswe2k3, pyson, pyson, pyson, driver_device, 0, ROT0, "Konami", "World Soccer Winning Eleven Arcade Game 2003", MACHINE_IS_SKELETON) +GAME(2002, pyson, 0, pyson, pyson, pyson_state, 0, ROT0, "Konami", "Konami Pyson BIOS", MACHINE_IS_SKELETON|MACHINE_IS_BIOS_ROOT) +GAME(2002, wswe, pyson, pyson, pyson, pyson_state, 0, ROT0, "Konami", "World Soccer Winning Eleven Arcade Game Style", MACHINE_IS_SKELETON) +GAME(2003, wswe2k3, pyson, pyson, pyson, pyson_state, 0, ROT0, "Konami", "World Soccer Winning Eleven Arcade Game 2003", MACHINE_IS_SKELETON) diff --git a/src/mame/drivers/pzletime.cpp b/src/mame/drivers/pzletime.cpp index 02d1e525624..37edec843bd 100644 --- a/src/mame/drivers/pzletime.cpp +++ b/src/mame/drivers/pzletime.cpp @@ -328,7 +328,7 @@ void pzletime_state::machine_reset() m_ticket = 0; } -static MACHINE_CONFIG_START( pzletime, pzletime_state ) +static MACHINE_CONFIG_START( pzletime ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",M68000,10000000) @@ -355,7 +355,7 @@ static MACHINE_CONFIG_START( pzletime, pzletime_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", 937500, OKIM6295_PIN7_HIGH) //freq & pin7 taken from stlforce + MCFG_OKIM6295_ADD("oki", 937500, PIN7_HIGH) //freq & pin7 taken from stlforce MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -402,4 +402,4 @@ ROM_START( pzletime ) ROM_LOAD( "pzletime.nv", 0x0000, 0x0080, CRC(e5ed3d40) SHA1(8c163a6e5839e5c82d52f046d3268202fdf9f4d1) ) ROM_END -GAME( 199?, pzletime, 0, pzletime, pzletime, driver_device, 0, ROT0, "Elettronica Video-Games S.R.L.", "Puzzle Time (prototype)", MACHINE_SUPPORTS_SAVE ) +GAME( 199?, pzletime, 0, pzletime, pzletime, pzletime_state, 0, ROT0, "Elettronica Video-Games S.R.L.", "Puzzle Time (prototype)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/qdrmfgp.cpp b/src/mame/drivers/qdrmfgp.cpp index 0bcd0eb87cc..d71cdd035e0 100644 --- a/src/mame/drivers/qdrmfgp.cpp +++ b/src/mame/drivers/qdrmfgp.cpp @@ -574,7 +574,7 @@ void qdrmfgp_state::machine_reset() * Machine driver * *************************************/ -static MACHINE_CONFIG_START( qdrmfgp, qdrmfgp_state ) +static MACHINE_CONFIG_START( qdrmfgp ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_32MHz/2) /* 16.000 MHz */ @@ -618,7 +618,7 @@ static MACHINE_CONFIG_START( qdrmfgp, qdrmfgp_state ) MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( qdrmfgp2, qdrmfgp_state ) +static MACHINE_CONFIG_START( qdrmfgp2 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_32MHz/2) /* 16.000 MHz */ @@ -709,6 +709,6 @@ ROM_END * *************************************/ -/* year rom clone machine inputs init */ -GAME( 1994, qdrmfgp, 0, qdrmfgp, qdrmfgp, driver_device, 0, ROT0, "Konami", "Quiz Do Re Mi Fa Grand Prix (Japan)", 0 ) -GAME( 1995, qdrmfgp2, 0, qdrmfgp2, qdrmfgp2, driver_device, 0, ROT0, "Konami", "Quiz Do Re Mi Fa Grand Prix 2 - Shin-Kyoku Nyuukadayo (Japan)", 0 ) +/* year rom clone machine inputs state init */ +GAME( 1994, qdrmfgp, 0, qdrmfgp, qdrmfgp, qdrmfgp_state, 0, ROT0, "Konami", "Quiz Do Re Mi Fa Grand Prix (Japan)", 0 ) +GAME( 1995, qdrmfgp2, 0, qdrmfgp2, qdrmfgp2, qdrmfgp_state, 0, ROT0, "Konami", "Quiz Do Re Mi Fa Grand Prix 2 - Shin-Kyoku Nyuukadayo (Japan)", 0 ) diff --git a/src/mame/drivers/qix.cpp b/src/mame/drivers/qix.cpp index 494878f171e..6e9ab4c07f2 100644 --- a/src/mame/drivers/qix.cpp +++ b/src/mame/drivers/qix.cpp @@ -598,7 +598,7 @@ INPUT_PORTS_END ***************************************************************************/ -static MACHINE_CONFIG_START( qix_base, qix_state ) +static MACHINE_CONFIG_START( qix_base ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809, MAIN_CLOCK_OSC/4/4) /* 1.25 MHz */ @@ -1450,21 +1450,21 @@ DRIVER_INIT_MEMBER(qix_state,slither) * *************************************/ -GAME( 1981, qix, 0, qix, qix, driver_device, 0, ROT270, "Taito America Corporation", "Qix (Rev 2)", MACHINE_SUPPORTS_SAVE ) // newest set? closest to 'qix2' -GAME( 1981, qixa, qix, qix, qix, driver_device, 0, ROT270, "Taito America Corporation", "Qix (set 2, smaller roms)", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, qixb, qix, qix, qix, driver_device, 0, ROT270, "Taito America Corporation", "Qix (set 2, larger roms)", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, qixo, qix, qix, qix, driver_device, 0, ROT270, "Taito America Corporation", "Qix (set 3, earlier)", MACHINE_SUPPORTS_SAVE ) // oldest set / prototype? has incorrect spelling 'deutch' and doesn't allow language selection to be changed -GAME( 1981, qix2, qix, qix, qix, driver_device, 0, ROT270, "Taito America Corporation", "Qix II (Tournament)", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, sdungeon, 0, mcu, sdungeon, driver_device, 0, ROT270, "Taito America Corporation", "Space Dungeon", MACHINE_SUPPORTS_SAVE ) // actually released July 1982 -GAME( 1981, sdungeona, sdungeon,mcu, sdungeon, driver_device, 0, ROT270, "Taito America Corporation", "Space Dungeon (larger roms)", MACHINE_SUPPORTS_SAVE ) // same as above but uses larger ROMs -GAMEL(1982, elecyoyo, 0, mcu, elecyoyo, driver_device, 0, ROT270, "Taito America Corporation", "The Electric Yo-Yo (set 1)", MACHINE_SUPPORTS_SAVE, layout_elecyoyo ) -GAMEL(1982, elecyoyo2,elecyoyo, mcu, elecyoyo, driver_device, 0, ROT270, "Taito America Corporation", "The Electric Yo-Yo (set 2)", MACHINE_SUPPORTS_SAVE, layout_elecyoyo ) -GAME( 1982, kram, 0, mcu, kram, driver_device, 0, ROT0, "Taito America Corporation", "Kram (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, kram2, kram, mcu, kram, driver_device, 0, ROT0, "Taito America Corporation", "Kram (set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, kram3, kram, kram3, kram, qix_state, kram3, ROT0, "Taito America Corporation", "Kram (encrypted)", MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) -GAME( 1982, zookeep, 0, zookeep, zookeep, qix_state, zookeep, ROT0, "Taito America Corporation", "Zoo Keeper (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, zookeep2, zookeep, zookeep, zookeep, qix_state, zookeep, ROT0, "Taito America Corporation", "Zoo Keeper (set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, zookeep3, zookeep, zookeep, zookeep, qix_state, zookeep, ROT0, "Taito America Corporation", "Zoo Keeper (set 3)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, slither, 0, slither, slither, qix_state, slither, ROT270, "Century II", "Slither (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, slithera, slither, slither, slither, qix_state, slither, ROT270, "Century II", "Slither (set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, complexx, 0, qix, complexx, driver_device, 0, ROT270, "Taito America Corporation", "Complex X", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, qix, 0, qix, qix, qix_state, 0, ROT270, "Taito America Corporation", "Qix (Rev 2)", MACHINE_SUPPORTS_SAVE ) // newest set? closest to 'qix2' +GAME( 1981, qixa, qix, qix, qix, qix_state, 0, ROT270, "Taito America Corporation", "Qix (set 2, smaller roms)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, qixb, qix, qix, qix, qix_state, 0, ROT270, "Taito America Corporation", "Qix (set 2, larger roms)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, qixo, qix, qix, qix, qix_state, 0, ROT270, "Taito America Corporation", "Qix (set 3, earlier)", MACHINE_SUPPORTS_SAVE ) // oldest set / prototype? has incorrect spelling 'deutch' and doesn't allow language selection to be changed +GAME( 1981, qix2, qix, qix, qix, qix_state, 0, ROT270, "Taito America Corporation", "Qix II (Tournament)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, sdungeon, 0, mcu, sdungeon, qix_state, 0, ROT270, "Taito America Corporation", "Space Dungeon", MACHINE_SUPPORTS_SAVE ) // actually released July 1982 +GAME( 1981, sdungeona, sdungeon,mcu, sdungeon, qix_state, 0, ROT270, "Taito America Corporation", "Space Dungeon (larger roms)", MACHINE_SUPPORTS_SAVE ) // same as above but uses larger ROMs +GAMEL(1982, elecyoyo, 0, mcu, elecyoyo, qix_state, 0, ROT270, "Taito America Corporation", "The Electric Yo-Yo (set 1)", MACHINE_SUPPORTS_SAVE, layout_elecyoyo ) +GAMEL(1982, elecyoyo2,elecyoyo, mcu, elecyoyo, qix_state, 0, ROT270, "Taito America Corporation", "The Electric Yo-Yo (set 2)", MACHINE_SUPPORTS_SAVE, layout_elecyoyo ) +GAME( 1982, kram, 0, mcu, kram, qix_state, 0, ROT0, "Taito America Corporation", "Kram (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, kram2, kram, mcu, kram, qix_state, 0, ROT0, "Taito America Corporation", "Kram (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, kram3, kram, kram3, kram, qix_state, kram3, ROT0, "Taito America Corporation", "Kram (encrypted)", MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) +GAME( 1982, zookeep, 0, zookeep, zookeep, qix_state, zookeep, ROT0, "Taito America Corporation", "Zoo Keeper (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, zookeep2, zookeep, zookeep, zookeep, qix_state, zookeep, ROT0, "Taito America Corporation", "Zoo Keeper (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, zookeep3, zookeep, zookeep, zookeep, qix_state, zookeep, ROT0, "Taito America Corporation", "Zoo Keeper (set 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, slither, 0, slither, slither, qix_state, slither, ROT270, "Century II", "Slither (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, slithera, slither, slither, slither, qix_state, slither, ROT270, "Century II", "Slither (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, complexx, 0, qix, complexx, qix_state, 0, ROT270, "Taito America Corporation", "Complex X", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/ql.cpp b/src/mame/drivers/ql.cpp index b845607ebd7..652b93563dc 100644 --- a/src/mame/drivers/ql.cpp +++ b/src/mame/drivers/ql.cpp @@ -149,9 +149,9 @@ public: required_device m_ser1; required_device m_ser2; required_device m_ram; - required_device m_exp; - required_device m_cart; - optional_device m_qimi; + required_device m_exp; + required_device m_cart; + optional_device m_qimi; required_memory_region m_rom; required_ioport_array<8> m_y; required_ioport_array<2> m_joy; @@ -888,7 +888,7 @@ void ql_state::machine_reset() // MACHINE_CONFIG( ql ) //------------------------------------------------- -static MACHINE_CONFIG_START( ql, ql_state ) +static MACHINE_CONFIG_START( ql ) // basic machine hardware MCFG_CPU_ADD(M68008_TAG, M68008, X1/2) MCFG_CPU_PROGRAM_MAP(ql_mem) @@ -1259,15 +1259,15 @@ ROM_END // SYSTEM DRIVERS //************************************************************************** -// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS -COMP( 1984, ql, 0, 0, ql, ql, driver_device, 0, "Sinclair Research Ltd", "QL (UK)", MACHINE_SUPPORTS_SAVE ) -COMP( 1985, ql_us, ql, 0, ql_ntsc, ql, driver_device, 0, "Sinclair Research Ltd", "QL (USA)", MACHINE_SUPPORTS_SAVE ) -COMP( 1985, ql_es, ql, 0, ql, ql_es, driver_device, 0, "Sinclair Research Ltd", "QL (Spain)", MACHINE_SUPPORTS_SAVE ) -COMP( 1985, ql_fr, ql, 0, ql, ql_fr, driver_device, 0, "Sinclair Research Ltd", "QL (France)", MACHINE_NOT_WORKING ) -COMP( 1985, ql_de, ql, 0, ql, ql_de, driver_device, 0, "Sinclair Research Ltd", "QL (Germany)", MACHINE_SUPPORTS_SAVE ) -COMP( 1985, ql_it, ql, 0, ql, ql_it, driver_device, 0, "Sinclair Research Ltd", "QL (Italy)", MACHINE_SUPPORTS_SAVE ) -COMP( 1985, ql_se, ql, 0, ql, ql_se, driver_device, 0, "Sinclair Research Ltd", "QL (Sweden)", MACHINE_NOT_WORKING ) -COMP( 1985, ql_dk, ql, 0, ql, ql_dk, driver_device, 0, "Sinclair Research Ltd", "QL (Denmark)", MACHINE_NOT_WORKING ) -COMP( 1985, ql_gr, ql, 0, ql, ql, driver_device, 0, "Sinclair Research Ltd", "QL (Greece)", MACHINE_SUPPORTS_SAVE ) -COMP( 1984, tonto, 0, 0, opd, ql, driver_device, 0, "British Telecom Business Systems", "Merlin M1800 Tonto", MACHINE_NOT_WORKING ) -//COMP( 1986, megaopd,tonto, 0, megaopd, ql, driver_device, 0, "International Computer Limited", "MegaOPD (USA)", MACHINE_NOT_WORKING ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1984, ql, 0, 0, ql, ql, ql_state, 0, "Sinclair Research Ltd", "QL (UK)", MACHINE_SUPPORTS_SAVE ) +COMP( 1985, ql_us, ql, 0, ql_ntsc, ql, ql_state, 0, "Sinclair Research Ltd", "QL (USA)", MACHINE_SUPPORTS_SAVE ) +COMP( 1985, ql_es, ql, 0, ql, ql_es, ql_state, 0, "Sinclair Research Ltd", "QL (Spain)", MACHINE_SUPPORTS_SAVE ) +COMP( 1985, ql_fr, ql, 0, ql, ql_fr, ql_state, 0, "Sinclair Research Ltd", "QL (France)", MACHINE_NOT_WORKING ) +COMP( 1985, ql_de, ql, 0, ql, ql_de, ql_state, 0, "Sinclair Research Ltd", "QL (Germany)", MACHINE_SUPPORTS_SAVE ) +COMP( 1985, ql_it, ql, 0, ql, ql_it, ql_state, 0, "Sinclair Research Ltd", "QL (Italy)", MACHINE_SUPPORTS_SAVE ) +COMP( 1985, ql_se, ql, 0, ql, ql_se, ql_state, 0, "Sinclair Research Ltd", "QL (Sweden)", MACHINE_NOT_WORKING ) +COMP( 1985, ql_dk, ql, 0, ql, ql_dk, ql_state, 0, "Sinclair Research Ltd", "QL (Denmark)", MACHINE_NOT_WORKING ) +COMP( 1985, ql_gr, ql, 0, ql, ql, ql_state, 0, "Sinclair Research Ltd", "QL (Greece)", MACHINE_SUPPORTS_SAVE ) +COMP( 1984, tonto, 0, 0, opd, ql, ql_state, 0, "British Telecom Business Systems", "Merlin M1800 Tonto", MACHINE_NOT_WORKING ) +//COMP( 1986, megaopd,tonto, 0, megaopd, ql, ql_state, 0, "International Computer Limited", "MegaOPD (USA)", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/qtsbc.cpp b/src/mame/drivers/qtsbc.cpp index 124baacaa47..b1e64cb99e7 100644 --- a/src/mame/drivers/qtsbc.cpp +++ b/src/mame/drivers/qtsbc.cpp @@ -31,7 +31,7 @@ public: required_device m_terminal; DECLARE_READ8_MEMBER( qtsbc_06_r ); DECLARE_READ8_MEMBER( qtsbc_43_r ); - DECLARE_WRITE8_MEMBER( kbd_put ); + void kbd_put(u8 data); required_shared_ptr m_p_ram; uint8_t m_term_data; virtual void machine_reset() override; @@ -73,12 +73,12 @@ void qtsbc_state::machine_reset() memcpy(m_p_ram, bios, 0x800); } -WRITE8_MEMBER( qtsbc_state::kbd_put ) +void qtsbc_state::kbd_put(u8 data) { m_term_data = data; } -static MACHINE_CONFIG_START( qtsbc, qtsbc_state ) +static MACHINE_CONFIG_START( qtsbc ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80, XTAL_4MHz) // Mostek MK3880 MCFG_CPU_PROGRAM_MAP(qtsbc_mem) @@ -86,7 +86,7 @@ static MACHINE_CONFIG_START( qtsbc, qtsbc_state ) /* video hardware */ MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0) - MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(qtsbc_state, kbd_put)) + MCFG_GENERIC_TERMINAL_KEYBOARD_CB(PUT(qtsbc_state, kbd_put)) MACHINE_CONFIG_END /* ROM definition */ @@ -97,5 +97,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 19??, qtsbc, 0, 0, qtsbc, qtsbc, driver_device, 0, "Computer Systems Inc.", "QT SBC +2/4", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 19??, qtsbc, 0, 0, qtsbc, qtsbc, qtsbc_state, 0, "Computer Systems Inc.", "QT SBC +2/4", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/quakeat.cpp b/src/mame/drivers/quakeat.cpp index f2b9c1d734c..c9c72cc2171 100644 --- a/src/mame/drivers/quakeat.cpp +++ b/src/mame/drivers/quakeat.cpp @@ -116,7 +116,7 @@ void quakeat_state::machine_start() } /*************************************************************/ -static MACHINE_CONFIG_START( quake, quakeat_state ) +static MACHINE_CONFIG_START( quake ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", PENTIUM2, 233000000) /* Pentium II, 233MHz */ MCFG_CPU_PROGRAM_MAP(quake_map) @@ -148,4 +148,4 @@ ROM_START(quake) ROM_END -GAME( 1998, quake, 0, quake, quake, driver_device, 0, ROT0, "Lazer-Tron / iD Software", "Quake Arcade Tournament (Release Beta 2)", MACHINE_IS_SKELETON ) +GAME( 1998, quake, 0, quake, quake, quakeat_state, 0, ROT0, "Lazer-Tron / iD Software", "Quake Arcade Tournament (Release Beta 2)", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/quantum.cpp b/src/mame/drivers/quantum.cpp index ca30f154fd7..eba48b2e37d 100644 --- a/src/mame/drivers/quantum.cpp +++ b/src/mame/drivers/quantum.cpp @@ -264,7 +264,7 @@ DISCRETE_SOUND_END * *************************************/ -static MACHINE_CONFIG_START( quantum, quantum_state ) +static MACHINE_CONFIG_START( quantum ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, MASTER_CLOCK / 2) @@ -397,6 +397,6 @@ ROM_END * *************************************/ -GAME( 1982, quantum, 0, quantum, quantum, driver_device, 0, ROT270, "General Computer Corporation (Atari license)", "Quantum (rev 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, quantum1, quantum, quantum, quantum, driver_device, 0, ROT270, "General Computer Corporation (Atari license)", "Quantum (rev 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, quantump, quantum, quantum, quantum, driver_device, 0, ROT270, "General Computer Corporation (Atari license)", "Quantum (prototype)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, quantum, 0, quantum, quantum, quantum_state, 0, ROT270, "General Computer Corporation (Atari license)", "Quantum (rev 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, quantum1, quantum, quantum, quantum, quantum_state, 0, ROT270, "General Computer Corporation (Atari license)", "Quantum (rev 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, quantump, quantum, quantum, quantum, quantum_state, 0, ROT270, "General Computer Corporation (Atari license)", "Quantum (prototype)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/quasar.cpp b/src/mame/drivers/quasar.cpp index 9a7a7df3469..3f431eae339 100644 --- a/src/mame/drivers/quasar.cpp +++ b/src/mame/drivers/quasar.cpp @@ -294,7 +294,7 @@ MACHINE_RESET_MEMBER(quasar_state,quasar) m_io_page = 8; } -static MACHINE_CONFIG_START( quasar, quasar_state ) +static MACHINE_CONFIG_START( quasar ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", S2650, 14318000/4) /* 14 mhz crystal divide by 4 on board */ @@ -408,5 +408,5 @@ ROM_START( quasara ) ROM_END -GAME( 1980, quasar, 0, quasar, quasar, driver_device, 0, ROT90, "Zaccaria / Zelco", "Quasar (set 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1980, quasara, quasar, quasar, quasar, driver_device, 0, ROT90, "Zaccaria / Zelco", "Quasar (set 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1980, quasar, 0, quasar, quasar, quasar_state, 0, ROT90, "Zaccaria / Zelco", "Quasar (set 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1980, quasara, quasar, quasar, quasar, quasar_state, 0, ROT90, "Zaccaria / Zelco", "Quasar (set 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/queen.cpp b/src/mame/drivers/queen.cpp index 161ba40f197..2c697434347 100644 --- a/src/mame/drivers/queen.cpp +++ b/src/mame/drivers/queen.cpp @@ -270,7 +270,7 @@ void queen_state::machine_reset() -static MACHINE_CONFIG_START( queen, queen_state ) +static MACHINE_CONFIG_START( queen ) MCFG_CPU_ADD("maincpu", PENTIUM3, 533000000/16) // Celeron or Pentium 3, 533 Mhz MCFG_CPU_PROGRAM_MAP(queen_map) MCFG_CPU_IO_MAP(queen_io) @@ -308,4 +308,4 @@ ROM_START( queen ) ROM_END -GAME( 2002?, queen, 0, queen, at_keyboard, driver_device, 0, ROT0, "STG", "Queen?", MACHINE_IS_SKELETON ) +GAME( 2002?, queen, 0, queen, at_keyboard, queen_state, 0, ROT0, "STG", "Queen?", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/quizdna.cpp b/src/mame/drivers/quizdna.cpp index c500ce37ecb..e1cacaf7621 100644 --- a/src/mame/drivers/quizdna.cpp +++ b/src/mame/drivers/quizdna.cpp @@ -435,7 +435,7 @@ void quizdna_state::machine_start() } -static MACHINE_CONFIG_START( quizdna, quizdna_state ) +static MACHINE_CONFIG_START( quizdna ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, MCLK/2) /* 8.000 MHz */ @@ -467,7 +467,7 @@ static MACHINE_CONFIG_START( quizdna, quizdna_state ) MCFG_SOUND_ROUTE(2, "mono", 0.10) MCFG_SOUND_ROUTE(3, "mono", 0.40) - MCFG_OKIM6295_ADD("oki", (MCLK/1024)*132, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki", (MCLK/1024)*132, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30) MACHINE_CONFIG_END @@ -568,6 +568,6 @@ ROM_START( gekiretu ) ROM_LOAD( "quiz3.148", 0x000000, 0x000020, CRC(91267e8a) SHA1(ae5bd8efea5322c4d9986d06680a781392f9a642) ) ROM_END -GAME( 1991, gakupara, 0, gakupara, gakupara, driver_device, 0, ROT0, "NMK", "Quiz Gakuen Paradise (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, quizdna, 0, quizdna, quizdna, driver_device, 0, ROT0, "Face", "Quiz DNA no Hanran (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, gekiretu, 0, gekiretu, gekiretu, driver_device, 0, ROT0, "Face", "Quiz Gekiretsu Scramble (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, gakupara, 0, gakupara, gakupara, quizdna_state, 0, ROT0, "NMK", "Quiz Gakuen Paradise (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, quizdna, 0, quizdna, quizdna, quizdna_state, 0, ROT0, "Face", "Quiz DNA no Hanran (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, gekiretu, 0, gekiretu, gekiretu, quizdna_state, 0, ROT0, "Face", "Quiz Gekiretsu Scramble (Japan)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/quizo.cpp b/src/mame/drivers/quizo.cpp index cbcf43a90f4..da6ad3834d2 100644 --- a/src/mame/drivers/quizo.cpp +++ b/src/mame/drivers/quizo.cpp @@ -210,7 +210,7 @@ static INPUT_PORTS_START( quizo ) PORT_DIPSETTING( 0x80, DEF_STR( On ) ) INPUT_PORTS_END -static MACHINE_CONFIG_START( quizo, quizo_state ) +static MACHINE_CONFIG_START( quizo ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80,XTAL1/2) MCFG_CPU_PROGRAM_MAP(memmap) diff --git a/src/mame/drivers/quizpani.cpp b/src/mame/drivers/quizpani.cpp index 2ec0fe4fa5f..91cdf6ae4c6 100644 --- a/src/mame/drivers/quizpani.cpp +++ b/src/mame/drivers/quizpani.cpp @@ -193,7 +193,7 @@ static GFXDECODE_START( quizpani ) GFXDECODE_END -static MACHINE_CONFIG_START( quizpani, quizpani_state ) +static MACHINE_CONFIG_START( quizpani ) MCFG_CPU_ADD("maincpu", M68000, 10000000) MCFG_CPU_PROGRAM_MAP(quizpani_map) MCFG_CPU_VBLANK_INT_DRIVER("screen", quizpani_state, irq4_line_hold) @@ -214,7 +214,7 @@ static MACHINE_CONFIG_START( quizpani, quizpani_state ) MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", 16000000/4, OKIM6295_PIN7_LOW) + MCFG_OKIM6295_ADD("oki", 16000000/4, PIN7_LOW) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MCFG_DEVICE_ADD("nmk112", NMK112, 0) @@ -248,4 +248,4 @@ ROM_START( quizpani ) ROM_LOAD( "qz8.121", 0x200, 0x100, CRC(b4c19741) SHA1(a6d3686bad6ef2336463b89bc2d249003d9b4bcc) ) /* unknown */ ROM_END -GAME( 1993, quizpani, 0, quizpani, quizpani, driver_device, 0, ROT0, "NMK", "Quiz Panicuru Fantasy", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, quizpani, 0, quizpani, quizpani, quizpani_state, 0, ROT0, "NMK", "Quiz Panicuru Fantasy", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/quizpun2.cpp b/src/mame/drivers/quizpun2.cpp index a440a716014..477466592c2 100644 --- a/src/mame/drivers/quizpun2.cpp +++ b/src/mame/drivers/quizpun2.cpp @@ -681,7 +681,7 @@ GFXDECODE_END Machine Drivers ***************************************************************************/ -static MACHINE_CONFIG_START( quizpun2, quizpun2_state ) +static MACHINE_CONFIG_START( quizpun2 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_8MHz / 2) // 4 MHz MCFG_CPU_PROGRAM_MAP(quizpun2_map) @@ -811,5 +811,5 @@ ROM_START( quizpun ) ROM_LOAD( "93c46eeprom.bin", 0, 0x80, CRC(4d244cc8) SHA1(6593d5b7ac1ebb77fee4648ad1d3d9b59a25fdc8) BAD_DUMP ) // backup ram error ROM_END -GAME( 1988, quizpun, 0, quizpun, quizpun2, driver_device, 0, ROT270, "Space Computer", "Quiz Punch", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1989, quizpun2, 0, quizpun2, quizpun2, driver_device, 0, ROT270, "Space Computer", "Quiz Punch II", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION ) +GAME( 1988, quizpun, 0, quizpun, quizpun2, quizpun2_state, 0, ROT270, "Space Computer", "Quiz Punch", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1989, quizpun2, 0, quizpun2, quizpun2, quizpun2_state, 0, ROT270, "Space Computer", "Quiz Punch II", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION ) diff --git a/src/mame/drivers/quizshow.cpp b/src/mame/drivers/quizshow.cpp index 3bc63a6bb56..3bbbdc0e8a8 100644 --- a/src/mame/drivers/quizshow.cpp +++ b/src/mame/drivers/quizshow.cpp @@ -378,7 +378,7 @@ void quizshow_state::machine_reset() m_tape_head_pos = 0; } -static MACHINE_CONFIG_START( quizshow, quizshow_state ) +static MACHINE_CONFIG_START( quizshow ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", S2650, MASTER_CLOCK / 16) // divider guessed diff --git a/src/mame/drivers/qx10.cpp b/src/mame/drivers/qx10.cpp index 39d88731b0d..1d8db52b5ed 100644 --- a/src/mame/drivers/qx10.cpp +++ b/src/mame/drivers/qx10.cpp @@ -665,7 +665,7 @@ static SLOT_INTERFACE_START(keyboard) SLOT_INTERFACE("qx10", QX10_KEYBOARD) SLOT_INTERFACE_END -static MACHINE_CONFIG_START( qx10, qx10_state ) +static MACHINE_CONFIG_START( qx10 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80, MAIN_CLK / 4) MCFG_CPU_PROGRAM_MAP(qx10_mem) @@ -788,5 +788,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1983, qx10, 0, 0, qx10, qx10, driver_device, 0, "Epson", "QX-10", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +COMP( 1983, qx10, 0, 0, qx10, qx10, qx10_state, 0, "Epson", "QX-10", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/r2dtank.cpp b/src/mame/drivers/r2dtank.cpp index 0e74270699c..b12dd0b949a 100644 --- a/src/mame/drivers/r2dtank.cpp +++ b/src/mame/drivers/r2dtank.cpp @@ -441,7 +441,7 @@ INPUT_PORTS_END * *************************************/ -static MACHINE_CONFIG_START( r2dtank, r2dtank_state ) +static MACHINE_CONFIG_START( r2dtank ) MCFG_CPU_ADD("maincpu", M6809,3000000) /* ?? too fast ? */ MCFG_CPU_PROGRAM_MAP(r2dtank_main_map) @@ -532,4 +532,4 @@ ROM_END * *************************************/ -GAME( 1980, r2dtank, 0, r2dtank, r2dtank, driver_device, 0, ROT270, "Sigma Enterprises Inc.", "R2D Tank", MACHINE_SUPPORTS_SAVE) +GAME( 1980, r2dtank, 0, r2dtank, r2dtank, r2dtank_state, 0, ROT270, "Sigma Enterprises Inc.", "R2D Tank", MACHINE_SUPPORTS_SAVE) diff --git a/src/mame/drivers/r2dx_v33.cpp b/src/mame/drivers/r2dx_v33.cpp index 4e876c7a23c..6752f8bf864 100644 --- a/src/mame/drivers/r2dx_v33.cpp +++ b/src/mame/drivers/r2dx_v33.cpp @@ -764,7 +764,7 @@ static ADDRESS_MAP_START( r2dx_oki_map, AS_0, 8, r2dx_v33_state ) AM_RANGE(0x00000, 0x3ffff) AM_ROMBANK("okibank") ADDRESS_MAP_END -static MACHINE_CONFIG_START( rdx_v33, r2dx_v33_state ) +static MACHINE_CONFIG_START( rdx_v33 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", V33, 32000000/2 ) // ? @@ -796,12 +796,12 @@ static MACHINE_CONFIG_START( rdx_v33, r2dx_v33_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", XTAL_28_63636MHz/28, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki", XTAL_28_63636MHz/28, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) MCFG_DEVICE_ADDRESS_MAP(AS_0, r2dx_oki_map) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( nzerotea, r2dx_v33_state ) +static MACHINE_CONFIG_START( nzerotea ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", V33,XTAL_32MHz/2) /* verified on pcb */ @@ -838,7 +838,7 @@ static MACHINE_CONFIG_START( nzerotea, r2dx_v33_state ) MCFG_YM3812_IRQ_HANDLER(DEVWRITELINE("seibu_sound", seibu_sound_device, fm_irqhandler)) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MCFG_OKIM6295_ADD("oki", 1320000, OKIM6295_PIN7_LOW) + MCFG_OKIM6295_ADD("oki", 1320000, PIN7_LOW) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40) MCFG_DEVICE_ADD("seibu_sound", SEIBU_SOUND, 0) diff --git a/src/mame/drivers/r9751.cpp b/src/mame/drivers/r9751.cpp index 1133dc90ca5..bfe5d8591bc 100644 --- a/src/mame/drivers/r9751.cpp +++ b/src/mame/drivers/r9751.cpp @@ -492,7 +492,7 @@ INPUT_PORTS_END Machine Drivers ******************************************************************************/ -static MACHINE_CONFIG_START( r9751, r9751_state ) +static MACHINE_CONFIG_START( r9751 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68030, 20000000) MCFG_CPU_PROGRAM_MAP(r9751_mem) @@ -536,5 +536,5 @@ ROM_END Drivers ******************************************************************************/ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1988, r9751, 0, 0, r9751, r9751, r9751_state, r9751, "ROLM Systems, Inc.", "ROLM 9751 Model 10", MACHINE_NO_SOUND | MACHINE_NOT_WORKING ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1988, r9751, 0, 0, r9751, r9751, r9751_state, r9751, "ROLM Systems, Inc.", "ROLM 9751 Model 10", MACHINE_NO_SOUND | MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/rabbit.cpp b/src/mame/drivers/rabbit.cpp index c3ce3d5cc11..8fa73b9ec36 100644 --- a/src/mame/drivers/rabbit.cpp +++ b/src/mame/drivers/rabbit.cpp @@ -898,7 +898,7 @@ INTERRUPT_GEN_MEMBER(rabbit_state::vblank_interrupt) m_maincpu->set_input_line(m_vblirqlevel, HOLD_LINE); } -static MACHINE_CONFIG_START( rabbit, rabbit_state ) +static MACHINE_CONFIG_START( rabbit ) MCFG_CPU_ADD("maincpu", M68EC020, XTAL_24MHz) MCFG_CPU_PROGRAM_MAP(rabbit_map) MCFG_CPU_VBLANK_INT_DRIVER("screen", rabbit_state, vblank_interrupt) diff --git a/src/mame/drivers/radio86.cpp b/src/mame/drivers/radio86.cpp index e63771694aa..873f6265f88 100644 --- a/src/mame/drivers/radio86.cpp +++ b/src/mame/drivers/radio86.cpp @@ -343,7 +343,7 @@ GFXDECODE_END /* Machine driver */ -static MACHINE_CONFIG_START( radio86, radio86_state ) +static MACHINE_CONFIG_START( radio86 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",I8080, XTAL_16MHz / 9) MCFG_CPU_PROGRAM_MAP(radio86_mem) @@ -554,15 +554,15 @@ ROM_START( impuls03 ) ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1986, radio86, 0, 0, radio86, radio86, radio86_state, radio86, "", "Radio-86RK", 0) -COMP( 1986, radio16, radio86, 0, radio16, radio86, radio86_state, radio86, "", "Radio-86RK (16K RAM)", 0) -COMP( 1986, kr03, radio86, 0, radio86, radio86, radio86_state, radio86, "Elektronika", "KR-03", 0) -COMP( 1986, radio4k, radio86, 0, radio86, radio86, radio86_state, radio86, "", "Radio-86RK (4K ROM)", 0) -COMP( 1986, radiorom, radio86, 0, radiorom, radio86, radio86_state, radio86, "", "Radio-86RK (ROM-Disk)", 0) -COMP( 1986, radioram, radio86, 0, radioram, radio86, radio86_state, radioram, "", "Radio-86RK (ROM/RAM Disk)", 0) -COMP( 1986, spektr01, radio86, 0, radio86, radio86, radio86_state, radio86, "", "Spektr-001", 0) -COMP( 1986, rk7007, radio86, 0, rk7007, ms7007, radio86_state, radio86, "", "Radio-86RK (MS7007)", 0) -COMP( 1986, rk700716, radio86, 0, rk700716, ms7007, radio86_state, radio86, "", "Radio-86RK (MS7007 16K RAM)", 0) -COMP( 1986, mikron2, radio86, 0, mikron2, radio86, radio86_state, radio86, "", "Mikron-2", 0) -COMP( 1986, impuls03, radio86, 0, impuls03, radio86, radio86_state, radio86, "", "Impuls-03", 0) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1986, radio86, 0, 0, radio86, radio86, radio86_state, radio86, "", "Radio-86RK", 0 ) +COMP( 1986, radio16, radio86, 0, radio16, radio86, radio86_state, radio86, "", "Radio-86RK (16K RAM)", 0 ) +COMP( 1986, kr03, radio86, 0, radio86, radio86, radio86_state, radio86, "Elektronika", "KR-03", 0 ) +COMP( 1986, radio4k, radio86, 0, radio86, radio86, radio86_state, radio86, "", "Radio-86RK (4K ROM)", 0 ) +COMP( 1986, radiorom, radio86, 0, radiorom, radio86, radio86_state, radio86, "", "Radio-86RK (ROM-Disk)", 0 ) +COMP( 1986, radioram, radio86, 0, radioram, radio86, radio86_state, radioram, "", "Radio-86RK (ROM/RAM Disk)", 0 ) +COMP( 1986, spektr01, radio86, 0, radio86, radio86, radio86_state, radio86, "", "Spektr-001", 0 ) +COMP( 1986, rk7007, radio86, 0, rk7007, ms7007, radio86_state, radio86, "", "Radio-86RK (MS7007)", 0 ) +COMP( 1986, rk700716, radio86, 0, rk700716, ms7007, radio86_state, radio86, "", "Radio-86RK (MS7007 16K RAM)", 0 ) +COMP( 1986, mikron2, radio86, 0, mikron2, radio86, radio86_state, radio86, "", "Mikron-2", 0 ) +COMP( 1986, impuls03, radio86, 0, impuls03, radio86, radio86_state, radio86, "", "Impuls-03", 0 ) diff --git a/src/mame/drivers/raiden.cpp b/src/mame/drivers/raiden.cpp index de80fe7ee40..9e5eb1b54f7 100644 --- a/src/mame/drivers/raiden.cpp +++ b/src/mame/drivers/raiden.cpp @@ -318,7 +318,7 @@ INTERRUPT_GEN_MEMBER(raiden_state::raiden_interrupt) device.execute().set_input_line_and_vector(0, HOLD_LINE, 0xc8/4); /* VBL */ } -static MACHINE_CONFIG_START( raiden, raiden_state ) +static MACHINE_CONFIG_START( raiden ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", V30,XTAL_20MHz/2) /* NEC V30 CPU, 20MHz verified on pcb */ @@ -357,7 +357,7 @@ static MACHINE_CONFIG_START( raiden, raiden_state ) MCFG_YM3812_IRQ_HANDLER(DEVWRITELINE("seibu_sound", seibu_sound_device, fm_irqhandler)) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MCFG_OKIM6295_ADD("oki", XTAL_12MHz/12, OKIM6295_PIN7_HIGH) // frequency and pin 7 verified + MCFG_OKIM6295_ADD("oki", XTAL_12MHz/12, PIN7_HIGH) // frequency and pin 7 verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MCFG_DEVICE_ADD("seibu_sound", SEIBU_SOUND, 0) @@ -779,7 +779,7 @@ GAME( 1990, raidenk, raiden, raiden, raiden, raiden_state, raiden, ROT270, " GAME( 1990, raidenkb, raiden, raiden, raiden, raiden_state, raiden, ROT270, "bootleg", "Raiden (Korea, bootleg)", MACHINE_SUPPORTS_SAVE ) /* Alternate hardware; SEI8904 + SEI9008 PCBs. Main & Sub CPU code not encrypted */ -GAME( 1990, raidenua, raiden, raidenu, raiden, driver_device, 0, ROT270, "Seibu Kaihatsu (Fabtek license)", "Raiden (US set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, raidenua, raiden, raidenu, raiden, raiden_state, 0, ROT270, "Seibu Kaihatsu (Fabtek license)", "Raiden (US set 2)", MACHINE_SUPPORTS_SAVE ) /* Alternate hardware. Main, Sub & Sound CPU code not encrypted. It also sports Seibu custom CRTC. */ -GAME( 1990, raidenb, raiden, raidenb, raiden, driver_device, 0, ROT270, "Seibu Kaihatsu", "Raiden (set 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, raidenb, raiden, raidenb, raiden, raiden_state, 0, ROT270, "Seibu Kaihatsu", "Raiden (set 3)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/raiden2.cpp b/src/mame/drivers/raiden2.cpp index 2893c645da2..9e7b93f276c 100644 --- a/src/mame/drivers/raiden2.cpp +++ b/src/mame/drivers/raiden2.cpp @@ -1416,7 +1416,7 @@ GFXDECODE_END /* MACHINE DRIVERS */ -static MACHINE_CONFIG_START( raiden2, raiden2_state ) +static MACHINE_CONFIG_START( raiden2 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", V30,XTAL_32MHz/2) /* verified on pcb */ @@ -1455,10 +1455,10 @@ static MACHINE_CONFIG_START( raiden2, raiden2_state ) MCFG_SOUND_ROUTE(0, "mono", 0.50) MCFG_SOUND_ROUTE(1, "mono", 0.50) - MCFG_OKIM6295_ADD("oki1", XTAL_28_63636MHz/28, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki1", XTAL_28_63636MHz/28, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40) - MCFG_OKIM6295_ADD("oki2", XTAL_28_63636MHz/28, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki2", XTAL_28_63636MHz/28, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40) MCFG_DEVICE_ADD("seibu_sound", SEIBU_SOUND, 0) @@ -1487,7 +1487,7 @@ static MACHINE_CONFIG_DERIVED( raidendx, raiden2 ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( zeroteam, raiden2_state ) +static MACHINE_CONFIG_START( zeroteam ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", V30,XTAL_32MHz/2) /* verified on pcb */ @@ -1526,7 +1526,7 @@ static MACHINE_CONFIG_START( zeroteam, raiden2_state ) MCFG_YM3812_IRQ_HANDLER(DEVWRITELINE("seibu_sound", seibu_sound_device, fm_irqhandler)) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MCFG_OKIM6295_ADD("oki", 1320000/* ? */, OKIM6295_PIN7_LOW) + MCFG_OKIM6295_ADD("oki", 1320000/* ? */, PIN7_LOW) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40) MCFG_DEVICE_ADD("seibu_sound", SEIBU_SOUND, 0) diff --git a/src/mame/drivers/rainbow.cpp b/src/mame/drivers/rainbow.cpp index f80d79758d5..c254ee9c636 100644 --- a/src/mame/drivers/rainbow.cpp +++ b/src/mame/drivers/rainbow.cpp @@ -660,10 +660,10 @@ private: required_device m_i8088; required_device m_z80; - required_device m_fdc; + required_device m_fdc; optional_device m_hdc; - required_device m_corvus_hdc; + required_device m_corvus_hdc; required_device m_mpsc; required_device m_dbrg_A; @@ -957,7 +957,7 @@ AM_RANGE(0x11, 0x11) AM_DEVREADWRITE("kbdser", i8251_device, status_r, control_w // See boot rom @1EA6: 0x27 (<- RESET EXTENDED COMM OPTION ) // Corvus B/H harddisk controller (incompatible with EXT.COMM OPTION): -AM_RANGE(0x20, 0x20) AM_DEVREADWRITE("corvus", corvus_hdc_t, read, write) +AM_RANGE(0x20, 0x20) AM_DEVREADWRITE("corvus", corvus_hdc_device, read, write) AM_RANGE(0x21, 0x21) AM_READ(corvus_status_r) // =========================================================== @@ -1032,14 +1032,14 @@ AM_RANGE(0x00, 0x00) AM_READWRITE(z80_latch_r, z80_latch_w) AM_RANGE(0x20, 0x20) AM_READWRITE(z80_generalstat_r, z80_diskdiag_read_w) // read to port 0x20 used by MS-DOS 2.x diskette loader. AM_RANGE(0x21, 0x21) AM_READWRITE(z80_generalstat_r, z80_diskdiag_write_w) AM_RANGE(0x40, 0x40) AM_READWRITE(z80_diskstatus_r, z80_diskcontrol_w) -AM_RANGE(0x60, 0x63) AM_DEVREADWRITE(FD1793_TAG, fd1793_t, read, write) +AM_RANGE(0x60, 0x63) AM_DEVREADWRITE(FD1793_TAG, fd1793_device, read, write) // Z80 I/O shadow area > $80 AM_RANGE(0x80, 0x80) AM_READWRITE(z80_latch_r, z80_latch_w) AM_RANGE(0xA0, 0xA0) AM_READWRITE(z80_generalstat_r, z80_diskdiag_read_w) // read to port 0x20 used by MS-DOS 2.x diskette loader. AM_RANGE(0xA1, 0xA1) AM_READWRITE(z80_generalstat_r, z80_diskdiag_write_w) AM_RANGE(0xC0, 0xC0) AM_READWRITE(z80_diskstatus_r, z80_diskcontrol_w) -AM_RANGE(0xE0, 0xE3) AM_DEVREADWRITE(FD1793_TAG, fd1793_t, read, write) +AM_RANGE(0xE0, 0xE3) AM_DEVREADWRITE(FD1793_TAG, fd1793_device, read, write) ADDRESS_MAP_END /* Input ports */ @@ -3210,7 +3210,7 @@ static ADDRESS_MAP_START( upd7220_map, AS_0, 16, rainbow_state) AM_RANGE(0x00000, 0x3ffff) AM_READWRITE(vram_r, vram_w) AM_SHARE("vram") ADDRESS_MAP_END -static MACHINE_CONFIG_START(rainbow, rainbow_state) +static MACHINE_CONFIG_START(rainbow) MCFG_DEFAULT_LAYOUT(layout_rainbow) /* basic machine hardware */ @@ -3458,7 +3458,7 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ -COMP(1982, rainbow100a, rainbow, 0, rainbow, rainbow100b_in, driver_device, 0, "Digital Equipment Corporation", "Rainbow 100-A", MACHINE_IS_SKELETON) -COMP(1983, rainbow, 0, 0, rainbow, rainbow100b_in, driver_device, 0, "Digital Equipment Corporation", "Rainbow 100-B", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_COLORS) -COMP(1985, rainbow190, rainbow, 0, rainbow, rainbow100b_in, driver_device, 0, "Digital Equipment Corporation", "Rainbow 190-B", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_COLORS) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +COMP(1982, rainbow100a, rainbow, 0, rainbow, rainbow100b_in, rainbow_state, 0, "Digital Equipment Corporation", "Rainbow 100-A", MACHINE_IS_SKELETON) +COMP(1983, rainbow, 0, 0, rainbow, rainbow100b_in, rainbow_state, 0, "Digital Equipment Corporation", "Rainbow 100-B", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_COLORS) +COMP(1985, rainbow190, rainbow, 0, rainbow, rainbow100b_in, rainbow_state, 0, "Digital Equipment Corporation", "Rainbow 190-B", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_COLORS) diff --git a/src/mame/drivers/rallyx.cpp b/src/mame/drivers/rallyx.cpp index 7ff9e2e5800..1e8b5cd881c 100644 --- a/src/mame/drivers/rallyx.cpp +++ b/src/mame/drivers/rallyx.cpp @@ -841,7 +841,7 @@ INTERRUPT_GEN_MEMBER(rallyx_state::jungler_vblank_irq) device.execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE); } -static MACHINE_CONFIG_START( rallyx, rallyx_state ) +static MACHINE_CONFIG_START( rallyx ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, MASTER_CLOCK/6) /* 3.072 MHz */ @@ -885,7 +885,7 @@ static MACHINE_CONFIG_START( rallyx, rallyx_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( jungler, rallyx_state ) +static MACHINE_CONFIG_START( jungler ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, MASTER_CLOCK/6) /* 3.072 MHz */ @@ -1409,20 +1409,20 @@ ROM_END * *************************************/ -GAME( 1980, rallyx, 0, rallyx, rallyx, driver_device, 0, ROT0, "Namco", "Rally X (32k Ver.?)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1980, rallyxa, rallyx, rallyx, rallyx, driver_device, 0, ROT0, "Namco", "Rally X", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1980, rallyxm, rallyx, rallyx, rallyx, driver_device, 0, ROT0, "Namco (Midway license)", "Rally X (Midway)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1980, rallyxmr, rallyx, rallyx, rallyx, driver_device, 0, ROT0, "bootleg (Model Racing)", "Rally X (Model Racing bootleg)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1981, nrallyx, 0, rallyx, nrallyx, driver_device, 0, ROT0, "Namco", "New Rally X", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1981, nrallyxb, nrallyx, rallyx, nrallyx, driver_device, 0, ROT0, "Namco", "New Rally X (bootleg?)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1981, jungler, 0, jungler, jungler, driver_device, 0, ROT90, "Konami", "Jungler", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, junglers, jungler, jungler, jungler, driver_device, 0, ROT90, "Konami (Stern Electronics license)", "Jungler (Stern Electronics)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, jackler, jungler, jungler, jungler, driver_device, 0, ROT90, "bootleg", "Jackler (Jungler bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, savanna, jungler, jungler, jungler, driver_device, 0, ROT90, "bootleg (Olympia)", "Savanna (Jungler bootleg)", MACHINE_SUPPORTS_SAVE ) // or licensed from Konami? -GAME( 1982, tactcian, 0, tactcian, tactcian, driver_device, 0, ROT90, "Konami (Sega license)", "Tactician (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, tactcian2,tactcian, tactcian, tactcian, driver_device, 0, ROT90, "Konami (Sega license)", "Tactician (set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, locomotn, 0, locomotn, locomotn, driver_device, 0, ROT90, "Konami (Centuri license)", "Loco-Motion", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, gutangtn, locomotn, locomotn, locomotn, driver_device, 0, ROT90, "Konami (Sega license)", "Guttang Gottong", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, cottong, locomotn, locomotn, locomotn, driver_device, 0, ROT90, "bootleg", "Cotocoto Cottong", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, locoboot, locomotn, locomotn, locomotn, driver_device, 0, ROT90, "bootleg", "Loco-Motion (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, commsega, 0, commsega, commsega, driver_device, 0, ROT90, "Sega", "Commando (Sega)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1980, rallyx, 0, rallyx, rallyx, rallyx_state, 0, ROT0, "Namco", "Rally X (32k Ver.?)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1980, rallyxa, rallyx, rallyx, rallyx, rallyx_state, 0, ROT0, "Namco", "Rally X", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1980, rallyxm, rallyx, rallyx, rallyx, rallyx_state, 0, ROT0, "Namco (Midway license)", "Rally X (Midway)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1980, rallyxmr, rallyx, rallyx, rallyx, rallyx_state, 0, ROT0, "bootleg (Model Racing)", "Rally X (Model Racing bootleg)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1981, nrallyx, 0, rallyx, nrallyx, rallyx_state, 0, ROT0, "Namco", "New Rally X", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1981, nrallyxb, nrallyx, rallyx, nrallyx, rallyx_state, 0, ROT0, "Namco", "New Rally X (bootleg?)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1981, jungler, 0, jungler, jungler, rallyx_state, 0, ROT90, "Konami", "Jungler", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, junglers, jungler, jungler, jungler, rallyx_state, 0, ROT90, "Konami (Stern Electronics license)", "Jungler (Stern Electronics)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, jackler, jungler, jungler, jungler, rallyx_state, 0, ROT90, "bootleg", "Jackler (Jungler bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, savanna, jungler, jungler, jungler, rallyx_state, 0, ROT90, "bootleg (Olympia)", "Savanna (Jungler bootleg)", MACHINE_SUPPORTS_SAVE ) // or licensed from Konami? +GAME( 1982, tactcian, 0, tactcian, tactcian, rallyx_state, 0, ROT90, "Konami (Sega license)", "Tactician (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, tactcian2,tactcian, tactcian, tactcian, rallyx_state, 0, ROT90, "Konami (Sega license)", "Tactician (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, locomotn, 0, locomotn, locomotn, rallyx_state, 0, ROT90, "Konami (Centuri license)", "Loco-Motion", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, gutangtn, locomotn, locomotn, locomotn, rallyx_state, 0, ROT90, "Konami (Sega license)", "Guttang Gottong", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, cottong, locomotn, locomotn, locomotn, rallyx_state, 0, ROT90, "bootleg", "Cotocoto Cottong", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, locoboot, locomotn, locomotn, locomotn, rallyx_state, 0, ROT90, "bootleg", "Loco-Motion (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, commsega, 0, commsega, commsega, rallyx_state, 0, ROT90, "Sega", "Commando (Sega)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/rambo.cpp b/src/mame/drivers/rambo.cpp index 34dc5356d07..1f9c1f1d1ea 100644 --- a/src/mame/drivers/rambo.cpp +++ b/src/mame/drivers/rambo.cpp @@ -138,7 +138,7 @@ void rambo_state::machine_reset() m_port_l = 0; } -static MACHINE_CONFIG_START( rambo, rambo_state ) +static MACHINE_CONFIG_START( rambo ) MCFG_CPU_ADD("maincpu", ATMEGA2560, MASTER_CLOCK) MCFG_CPU_PROGRAM_MAP(rambo_prg_map) @@ -223,5 +223,5 @@ ROM_START( metamaq2 ) ROM_REGION( 0x1000, "eeprom", ROMREGION_ERASEFF ) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME */ -COMP(2012, metamaq2, 0, 0, rambo, 0, rambo_state, rambo, "Metamaquina", "Metamaquina 2 desktop 3d printer", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP(2012, metamaq2, 0, 0, rambo, 0, rambo_state, rambo, "Metamaquina", "Metamaquina 2 desktop 3d printer", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) diff --git a/src/mame/drivers/rampart.cpp b/src/mame/drivers/rampart.cpp index 7857d2ea4d3..e77fbbfb7d9 100644 --- a/src/mame/drivers/rampart.cpp +++ b/src/mame/drivers/rampart.cpp @@ -335,7 +335,7 @@ GFXDECODE_END * *************************************/ -static MACHINE_CONFIG_START( rampart, rampart_state ) +static MACHINE_CONFIG_START( rampart ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, MASTER_CLOCK/2) @@ -373,7 +373,7 @@ static MACHINE_CONFIG_START( rampart, rampart_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", MASTER_CLOCK/4/3, OKIM6295_PIN7_LOW) + MCFG_OKIM6295_ADD("oki", MASTER_CLOCK/4/3, PIN7_LOW) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60) MCFG_SOUND_ADD("ymsnd", YM2413, MASTER_CLOCK/4) @@ -496,6 +496,6 @@ DRIVER_INIT_MEMBER(rampart_state,rampart) * *************************************/ -GAME( 1990, rampart, 0, rampart, rampart, rampart_state, rampart, ROT0, "Atari Games", "Rampart (Trackball)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, rampart, 0, rampart, rampart, rampart_state, rampart, ROT0, "Atari Games", "Rampart (Trackball)", MACHINE_SUPPORTS_SAVE ) GAME( 1990, rampart2p,rampart, rampart, ramprt2p, rampart_state, rampart, ROT0, "Atari Games", "Rampart (Joystick)", MACHINE_SUPPORTS_SAVE ) GAME( 1990, rampartj, rampart, rampart, rampartj, rampart_state, rampart, ROT0, "Atari Games", "Rampart (Japan, Joystick)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/ramtek.cpp b/src/mame/drivers/ramtek.cpp index 7fc1c8fc736..74f14a88032 100644 --- a/src/mame/drivers/ramtek.cpp +++ b/src/mame/drivers/ramtek.cpp @@ -69,7 +69,7 @@ public: } // devices - required_device m_maincpu; + required_device m_maincpu; required_device m_video; protected: @@ -112,7 +112,7 @@ void ramtek_state::video_start() { } -static MACHINE_CONFIG_START( ramtek, ramtek_state ) +static MACHINE_CONFIG_START( ramtek ) /* basic machine hardware */ MCFG_DEVICE_ADD("maincpu", NETLIST_CPU, NETLIST_CLOCK) @@ -242,10 +242,10 @@ ROM_START( trivia ) ROM_LOAD( "550548.e3", 0x0000, 0x0020, CRC(2b7c6a5e) SHA1(943cc3901c651bfe5bf11a40c27801952731b6de) ) ROM_END -GAME( 1973, vollyrmt, 0, ramtek, 0, driver_device, 0, ROT0, "Ramtek", "Volly (Ramtek) [TTL]", MACHINE_IS_SKELETON ) -GAME( 1973, hockyrmt, 0, ramtek, 0, driver_device, 0, ROT0, "Ramtek", "Hockey (Ramtek) [TTL]", MACHINE_IS_SKELETON ) -GAME( 1973, soccrrmt, 0, ramtek, 0, driver_device, 0, ROT0, "Ramtek", "Soccer (Ramtek) [TTL]", MACHINE_IS_SKELETON ) -GAME( 1974, wipeormt, 0, ramtek, 0, driver_device, 0, ROT0, "Ramtek", "Wipeout (Ramtek) [TTL]", MACHINE_IS_SKELETON ) -GAME( 1974, cleanswp, 0, ramtek, 0, driver_device, 0, ROT0, "Ramtek", "Clean Sweep [TTL]", MACHINE_IS_SKELETON ) -GAME( 1974, bballrmt, 0, ramtek, 0, driver_device, 0, ROT0, "Ramtek", "Baseball (Ramtek) [TTL]", MACHINE_IS_SKELETON ) -GAME( 1975, trivia, 0, ramtek, 0, driver_device, 0, ROT0, "Ramtek", "Trivia (Rev B) [TTL]", MACHINE_IS_SKELETON ) +GAME( 1973, vollyrmt, 0, ramtek, 0, ramtek_state, 0, ROT0, "Ramtek", "Volly (Ramtek) [TTL]", MACHINE_IS_SKELETON ) +GAME( 1973, hockyrmt, 0, ramtek, 0, ramtek_state, 0, ROT0, "Ramtek", "Hockey (Ramtek) [TTL]", MACHINE_IS_SKELETON ) +GAME( 1973, soccrrmt, 0, ramtek, 0, ramtek_state, 0, ROT0, "Ramtek", "Soccer (Ramtek) [TTL]", MACHINE_IS_SKELETON ) +GAME( 1974, wipeormt, 0, ramtek, 0, ramtek_state, 0, ROT0, "Ramtek", "Wipeout (Ramtek) [TTL]", MACHINE_IS_SKELETON ) +GAME( 1974, cleanswp, 0, ramtek, 0, ramtek_state, 0, ROT0, "Ramtek", "Clean Sweep [TTL]", MACHINE_IS_SKELETON ) +GAME( 1974, bballrmt, 0, ramtek, 0, ramtek_state, 0, ROT0, "Ramtek", "Baseball (Ramtek) [TTL]", MACHINE_IS_SKELETON ) +GAME( 1975, trivia, 0, ramtek, 0, ramtek_state, 0, ROT0, "Ramtek", "Trivia (Rev B) [TTL]", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/rastan.cpp b/src/mame/drivers/rastan.cpp index f5f057f6351..c584bf4ae0c 100644 --- a/src/mame/drivers/rastan.cpp +++ b/src/mame/drivers/rastan.cpp @@ -362,7 +362,7 @@ void rastan_state::machine_reset() } -static MACHINE_CONFIG_START( rastan, rastan_state ) +static MACHINE_CONFIG_START( rastan ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz/2) /* verified on pcb */ @@ -408,7 +408,7 @@ static MACHINE_CONFIG_START( rastan, rastan_state ) MCFG_SOUND_ADD("msm", MSM5205, XTAL_384kHz) /* verified on pcb */ MCFG_MSM5205_VCLK_CB(WRITELINE(rastan_state, rastan_msm5205_vck)) /* VCK function */ - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S48_4B) /* 8 kHz */ + MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) /* 8 kHz */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60) MCFG_DEVICE_ADD("adpcm_sel", LS157, 0) @@ -704,14 +704,14 @@ ROM_START( rastsagab ) ROM_END /* Newer revised code base */ -GAME( 1987, rastan, 0, rastan, rastan, driver_device, 0, ROT0, "Taito Corporation Japan", "Rastan (World Rev 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, rastana, rastan, rastan, rastsaga, driver_device, 0, ROT0, "Taito Corporation Japan", "Rastan (World)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, rastanu, rastan, rastan, rastsaga, driver_device, 0, ROT0, "Taito America Corporation", "Rastan (US Rev 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, rastanua, rastan, rastan, rastsaga, driver_device, 0, ROT0, "Taito America Corporation", "Rastan (US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, rastsaga, rastan, rastan, rastsaga, driver_device, 0, ROT0, "Taito Corporation", "Rastan Saga (Japan Rev 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, rastan, 0, rastan, rastan, rastan_state, 0, ROT0, "Taito Corporation Japan", "Rastan (World Rev 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, rastana, rastan, rastan, rastsaga, rastan_state, 0, ROT0, "Taito Corporation Japan", "Rastan (World)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, rastanu, rastan, rastan, rastsaga, rastan_state, 0, ROT0, "Taito America Corporation", "Rastan (US Rev 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, rastanua, rastan, rastan, rastsaga, rastan_state, 0, ROT0, "Taito America Corporation", "Rastan (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, rastsaga, rastan, rastan, rastsaga, rastan_state, 0, ROT0, "Taito Corporation", "Rastan Saga (Japan Rev 1)", MACHINE_SUPPORTS_SAVE ) /* Based on earliest code base */ -GAME( 1987, rastanb, rastan, rastan, rastsaga, driver_device, 0, ROT0, "Taito Corporation Japan", "Rastan (World, Earlier code base)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, rastanub, rastan, rastan, rastsaga, driver_device, 0, ROT0, "Taito America Corporation", "Rastan (US, Earlier code base)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, rastsagaa, rastan, rastan, rastsaga, driver_device, 0, ROT0, "Taito Corporation", "Rastan Saga (Japan Rev 1, Earlier code base)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, rastsagab, rastan, rastan, rastsaga, driver_device, 0, ROT0, "Taito Corporation", "Rastan Saga (Japan, Earlier code base)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, rastanb, rastan, rastan, rastsaga, rastan_state, 0, ROT0, "Taito Corporation Japan", "Rastan (World, Earlier code base)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, rastanub, rastan, rastan, rastsaga, rastan_state, 0, ROT0, "Taito America Corporation", "Rastan (US, Earlier code base)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, rastsagaa, rastan, rastan, rastsaga, rastan_state, 0, ROT0, "Taito Corporation", "Rastan Saga (Japan Rev 1, Earlier code base)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, rastsagab, rastan, rastan, rastsaga, rastan_state, 0, ROT0, "Taito Corporation", "Rastan Saga (Japan, Earlier code base)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/rastersp.cpp b/src/mame/drivers/rastersp.cpp index 51e03a03249..ffce883e214 100644 --- a/src/mame/drivers/rastersp.cpp +++ b/src/mame/drivers/rastersp.cpp @@ -847,7 +847,7 @@ SLOT_INTERFACE_END * *************************************/ -static MACHINE_CONFIG_START( rastersp, rastersp_state ) +static MACHINE_CONFIG_START( rastersp ) MCFG_CPU_ADD("maincpu", I486, 33330000) MCFG_CPU_PROGRAM_MAP(cpu_map) MCFG_CPU_IO_MAP(io_map) @@ -954,5 +954,5 @@ ROM_END * *************************************/ -GAME( 1994, rotr, 0, rastersp, rotr, driver_device, 0, ROT0, "BFM/Mirage", "Rise of the Robots (prototype)", 0 ) -GAME( 1997, fbcrazy, 0, rastersp, rotr, driver_device, 0, ROT0, "BFM", "Football Crazy (Video Quiz)", MACHINE_NOT_WORKING ) +GAME( 1994, rotr, 0, rastersp, rotr, rastersp_state, 0, ROT0, "BFM/Mirage", "Rise of the Robots (prototype)", 0 ) +GAME( 1997, fbcrazy, 0, rastersp, rotr, rastersp_state, 0, ROT0, "BFM", "Football Crazy (Video Quiz)", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/ravens.cpp b/src/mame/drivers/ravens.cpp index 69873b3c8b5..51a5213bb08 100644 --- a/src/mame/drivers/ravens.cpp +++ b/src/mame/drivers/ravens.cpp @@ -100,7 +100,7 @@ public: DECLARE_WRITE8_MEMBER(port1c_w); DECLARE_WRITE8_MEMBER(display_w); DECLARE_WRITE8_MEMBER(leds_w); - DECLARE_WRITE8_MEMBER(kbd_put); + void kbd_put(u8 data); DECLARE_MACHINE_RESET(ravens2); DECLARE_READ8_MEMBER(cass_r); DECLARE_WRITE_LINE_MEMBER(cass_w); @@ -258,7 +258,7 @@ static INPUT_PORTS_START( ravens ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("???") PORT_CODE(KEYCODE_O) PORT_CHAR('O') INPUT_PORTS_END -WRITE8_MEMBER( ravens_state::kbd_put ) +void ravens_state::kbd_put(u8 data) { if (data > 0x60) data -= 0x20; // fold to uppercase m_term_data = data; @@ -328,7 +328,7 @@ QUICKLOAD_LOAD_MEMBER( ravens_state, ravens ) return result; } -static MACHINE_CONFIG_START( ravens, ravens_state ) +static MACHINE_CONFIG_START( ravens ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",S2650, XTAL_1MHz) // frequency is unknown MCFG_CPU_PROGRAM_MAP(ravens_mem) @@ -348,7 +348,7 @@ static MACHINE_CONFIG_START( ravens, ravens_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.05) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( ravens2, ravens_state ) +static MACHINE_CONFIG_START( ravens2 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",S2650, XTAL_1MHz) // frequency is unknown MCFG_CPU_PROGRAM_MAP(ravens_mem) @@ -359,7 +359,7 @@ static MACHINE_CONFIG_START( ravens2, ravens_state ) /* video hardware */ MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0) - MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(ravens_state, kbd_put)) + MCFG_GENERIC_TERMINAL_KEYBOARD_CB(PUT(ravens_state, kbd_put)) /* quickload */ MCFG_QUICKLOAD_ADD("quickload", ravens_state, ravens, "pgm", 1) @@ -387,6 +387,6 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1984, ravens, 0, 0, ravens, ravens, driver_device, 0, "Joseph Glagla and Dieter Feiler", "Ravensburger Selbstbaucomputer V0.9", MACHINE_NO_SOUND_HW ) -COMP( 1985, ravens2, ravens, 0, ravens2, ravens, driver_device, 0, "Joseph Glagla and Dieter Feiler", "Ravensburger Selbstbaucomputer V2.0", MACHINE_NO_SOUND_HW ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ +COMP( 1984, ravens, 0, 0, ravens, ravens, ravens_state, 0, "Joseph Glagla and Dieter Feiler", "Ravensburger Selbstbaucomputer V0.9", MACHINE_NO_SOUND_HW ) +COMP( 1985, ravens2, ravens, 0, ravens2, ravens, ravens_state, 0, "Joseph Glagla and Dieter Feiler", "Ravensburger Selbstbaucomputer V2.0", MACHINE_NO_SOUND_HW ) diff --git a/src/mame/drivers/rbisland.cpp b/src/mame/drivers/rbisland.cpp index 8bef6c3c775..30ee09abb39 100644 --- a/src/mame/drivers/rbisland.cpp +++ b/src/mame/drivers/rbisland.cpp @@ -627,7 +627,7 @@ void rbisland_state::machine_start() { } -static MACHINE_CONFIG_START( rbisland, rbisland_state ) +static MACHINE_CONFIG_START( rbisland ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz/2) /* verified on pcb */ @@ -677,7 +677,7 @@ MACHINE_CONFIG_END /* Jumping: The PCB has 2 Xtals, 18.432MHz and 24MHz */ -static MACHINE_CONFIG_START( jumping, rbisland_state ) +static MACHINE_CONFIG_START( jumping ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_18_432MHz/2) /* verified on pcb */ @@ -971,7 +971,7 @@ DRIVER_INIT_MEMBER(rbisland_state,jumping) GAME( 1987, rbisland, 0, rbisland, rbisland, rbisland_state, rbisland, ROT0, "Taito Corporation", "Rainbow Islands (new version)", MACHINE_SUPPORTS_SAVE ) GAME( 1987, rbislando, rbisland, rbisland, rbisland, rbisland_state, rbisland, ROT0, "Taito Corporation", "Rainbow Islands (old version)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, rbislande, rbisland, rbisland, rbisland, rbisland_state, rbislande, ROT0, "Taito Corporation", "Rainbow Islands (Extra)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, jumping, rbisland, jumping, jumping, rbisland_state, jumping, ROT0, "bootleg", "Jumping (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, jumpinga, rbisland, jumping, jumping, rbisland_state, jumping, ROT0, "bootleg (Seyutu)", "Jumping (set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, jumpingi, rbisland, jumpingi, jumping, rbisland_state, jumping, ROT0, "bootleg (Seyutu)", "Jumping (set 3, Imnoe PCB)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, rbislande, rbisland, rbisland, rbisland, rbisland_state, rbislande, ROT0, "Taito Corporation", "Rainbow Islands (Extra)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, jumping, rbisland, jumping, jumping, rbisland_state, jumping, ROT0, "bootleg", "Jumping (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, jumpinga, rbisland, jumping, jumping, rbisland_state, jumping, ROT0, "bootleg (Seyutu)", "Jumping (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, jumpingi, rbisland, jumpingi, jumping, rbisland_state, jumping, ROT0, "bootleg (Seyutu)", "Jumping (set 3, Imnoe PCB)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/rbmk.cpp b/src/mame/drivers/rbmk.cpp index 52b4c6214ab..b97c0d16dd8 100644 --- a/src/mame/drivers/rbmk.cpp +++ b/src/mame/drivers/rbmk.cpp @@ -547,7 +547,7 @@ INTERRUPT_GEN_MEMBER(rbmk_state::mcu_irq) m_mcu->set_input_line(INPUT_LINE_NMI, PULSE_LINE); } -static MACHINE_CONFIG_START( rbmk, rbmk_state ) +static MACHINE_CONFIG_START( rbmk ) MCFG_CPU_ADD("maincpu", M68000, 22000000 /2) MCFG_CPU_PROGRAM_MAP(rbmk_mem) MCFG_CPU_VBLANK_INT_DRIVER("screen", rbmk_state, irq1_line_hold) @@ -576,7 +576,7 @@ static MACHINE_CONFIG_START( rbmk, rbmk_state ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_OKIM6295_ADD("oki", 1122000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki", 1122000, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.47) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.47) @@ -609,4 +609,4 @@ ROM_START( rbmk ) ROM_END -GAME( 1998, rbmk, 0, rbmk, rbmk, driver_device,0, ROT0, "GMS", "Real Battle Mahjong King", MACHINE_NOT_WORKING ) +GAME( 1998, rbmk, 0, rbmk, rbmk, rbmk_state, 0, ROT0, "GMS", "Real Battle Mahjong King", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/rc702.cpp b/src/mame/drivers/rc702.cpp index 5b3e9d30859..b669370efab 100644 --- a/src/mame/drivers/rc702.cpp +++ b/src/mame/drivers/rc702.cpp @@ -75,7 +75,7 @@ public: DECLARE_WRITE_LINE_MEMBER(qbar_w); DECLARE_WRITE_LINE_MEMBER(dack1_w); I8275_DRAW_CHARACTER_MEMBER(display_pixels); - DECLARE_WRITE8_MEMBER(kbd_put); + void kbd_put(u8 data); private: bool m_q_state; @@ -326,9 +326,9 @@ static const z80_daisy_config daisy_chain_intf[] = { nullptr } }; -WRITE8_MEMBER( rc702_state::kbd_put ) +void rc702_state::kbd_put(u8 data) { - m_pio->pa_w(space, 0, data); + m_pio->pa_w(machine().dummy_space(), 0, data); m_pio->strobe_a(0); m_pio->strobe_a(1); } @@ -337,7 +337,7 @@ static SLOT_INTERFACE_START( floppies ) SLOT_INTERFACE( "drive0", FLOPPY_525_QD ) SLOT_INTERFACE_END -static MACHINE_CONFIG_START( rc702, rc702_state ) +static MACHINE_CONFIG_START( rc702 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_8MHz / 2) MCFG_CPU_PROGRAM_MAP(rc702_mem) @@ -380,7 +380,7 @@ static MACHINE_CONFIG_START( rc702, rc702_state ) /* Keyboard */ MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0) - MCFG_GENERIC_KEYBOARD_CB(WRITE8(rc702_state, kbd_put)) + MCFG_GENERIC_KEYBOARD_CB(PUT(rc702_state, kbd_put)) MCFG_DEVICE_ADD("7474", TTL7474, 0) MCFG_7474_COMP_OUTPUT_CB(WRITELINE(rc702_state, q_w)) @@ -424,5 +424,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS COMP( 1979, rc702, 0, 0, rc702, rc702, rc702_state, rc702, "Regnecentralen", "RC702 Piccolo", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/rc759.cpp b/src/mame/drivers/rc759.cpp index 6e0b2f11b1a..7e0c06c70e2 100644 --- a/src/mame/drivers/rc759.cpp +++ b/src/mame/drivers/rc759.cpp @@ -38,34 +38,34 @@ class rc759_state : public driver_device { public: rc759_state(const machine_config &mconfig, device_type type, const char *tag) : - driver_device(mconfig, type, tag), - m_maincpu(*this, "maincpu"), - m_pic(*this, "pic"), - m_nvram(*this, "nvram"), - m_ppi(*this, "ppi"), - m_txt(*this, "txt"), - m_cas(*this, "cas"), - m_isbx(*this, "isbx"), - m_speaker(*this, "speaker"), - m_snd(*this, "snd"), - m_rtc(*this, "rtc"), - m_centronics(*this, "centronics"), - m_fdc(*this, "fdc"), - m_floppy0(*this, "fdc:0"), - m_floppy1(*this, "fdc:1"), - m_vram(*this, "vram"), - m_config(*this, "config"), - m_cas_enabled(0), m_cas_data(0), - m_drq_source(0), - m_nvram_bank(0), - m_gfx_mode(0), - m_keyboard_enable(0), m_keyboard_key(0x00), - m_centronics_strobe(0), m_centronics_init(0), m_centronics_select_in(0), m_centronics_busy(0), - m_centronics_ack(0), m_centronics_fault(0), m_centronics_perror(0), m_centronics_select(0), - m_centronics_data(0xff) + driver_device(mconfig, type, tag), + m_maincpu(*this, "maincpu"), + m_pic(*this, "pic"), + m_nvram(*this, "nvram"), + m_ppi(*this, "ppi"), + m_txt(*this, "txt"), + m_cas(*this, "cas"), + m_isbx(*this, "isbx"), + m_speaker(*this, "speaker"), + m_snd(*this, "snd"), + m_rtc(*this, "rtc"), + m_centronics(*this, "centronics"), + m_fdc(*this, "fdc"), + m_floppy0(*this, "fdc:0"), + m_floppy1(*this, "fdc:1"), + m_vram(*this, "vram"), + m_config(*this, "config"), + m_cas_enabled(0), m_cas_data(0), + m_drq_source(0), + m_nvram_bank(0), + m_gfx_mode(0), + m_keyboard_enable(0), m_keyboard_key(0x00), + m_centronics_strobe(0), m_centronics_init(0), m_centronics_select_in(0), m_centronics_busy(0), + m_centronics_ack(0), m_centronics_fault(0), m_centronics_perror(0), m_centronics_select(0), + m_centronics_data(0xff) { } - DECLARE_WRITE8_MEMBER(keyb_put); + void keyb_put(u8 data); DECLARE_READ8_MEMBER(keyboard_r); DECLARE_WRITE8_MEMBER(floppy_control_w); @@ -121,7 +121,7 @@ private: required_device m_snd; required_device m_rtc; required_device m_centronics; - required_device m_fdc; + required_device m_fdc; required_device m_floppy0; required_device m_floppy1; required_shared_ptr m_vram; @@ -153,7 +153,7 @@ private: // I/O //************************************************************************** -WRITE8_MEMBER( rc759_state::keyb_put ) +void rc759_state::keyb_put(u8 data) { m_keyboard_key = data; m_pic->ir1_w(1); @@ -486,7 +486,7 @@ static ADDRESS_MAP_START( rc759_io, AS_IO, 16, rc759_state ) AM_RANGE(0x240, 0x241) AM_WRITE(txt_ca_w) AM_RANGE(0x250, 0x251) AM_READWRITE8(centronics_data_r, centronics_data_w, 0x00ff) AM_RANGE(0x260, 0x261) AM_READWRITE8(centronics_control_r, centronics_control_w, 0x00ff) - AM_RANGE(0x280, 0x287) AM_DEVREADWRITE8("fdc", wd2797_t, read, write, 0x00ff) + AM_RANGE(0x280, 0x287) AM_DEVREADWRITE8("fdc", wd2797_device, read, write, 0x00ff) AM_RANGE(0x288, 0x289) AM_WRITE8(floppy_control_w, 0x00ff) // AM_RANGE(0x28a, 0x28b) external printer data // AM_RANGE(0x28d, 0x28d) external printer control @@ -524,7 +524,7 @@ static SLOT_INTERFACE_START( rc759_floppies ) SLOT_INTERFACE("hd", FLOPPY_525_HD) SLOT_INTERFACE_END -static MACHINE_CONFIG_START( rc759, rc759_state ) +static MACHINE_CONFIG_START( rc759 ) MCFG_CPU_ADD("maincpu", I80186, 6000000) MCFG_CPU_PROGRAM_MAP(rc759_map) MCFG_CPU_IO_MAP(rc759_io) @@ -560,7 +560,7 @@ static MACHINE_CONFIG_START( rc759, rc759_state ) // keyboard MCFG_DEVICE_ADD("keyb", GENERIC_KEYBOARD, 0) - MCFG_GENERIC_KEYBOARD_CB(WRITE8(rc759_state, keyb_put)) + MCFG_GENERIC_KEYBOARD_CB(PUT(rc759_state, keyb_put)) // cassette MCFG_CASSETTE_ADD("cas") @@ -619,4 +619,4 @@ ROM_END // SYSTEM DRIVERS //************************************************************************** -COMP( 1984, rc759, 0, 0, rc759, rc759, driver_device, 0, "Regnecentralen", "RC759 Piccoline", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +COMP( 1984, rc759, 0, 0, rc759, rc759, rc759_state, 0, "Regnecentralen", "RC759 Piccoline", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/rcorsair.cpp b/src/mame/drivers/rcorsair.cpp index 168d8d519c0..0efe84a5e38 100644 --- a/src/mame/drivers/rcorsair.cpp +++ b/src/mame/drivers/rcorsair.cpp @@ -136,7 +136,7 @@ uint32_t rcorsair_state::screen_update(screen_device &screen, bitmap_ind16 &bitm return 0; } -static MACHINE_CONFIG_START( rcorsair, rcorsair_state ) +static MACHINE_CONFIG_START( rcorsair ) /* Main CPU is probably inside Custom Block with program code, unknown type */ @@ -178,4 +178,4 @@ ROM_START( rcorsair ) ROM_END -GAME( 1984, rcorsair, 0, rcorsair, inports, driver_device, 0, ROT90, "Nakasawa", "Red Corsair", MACHINE_IS_SKELETON ) +GAME( 1984, rcorsair, 0, rcorsair, inports, rcorsair_state, 0, ROT90, "Nakasawa", "Red Corsair", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/rd100.cpp b/src/mame/drivers/rd100.cpp index 6ac7b25cc99..c59cf054f5e 100644 --- a/src/mame/drivers/rd100.cpp +++ b/src/mame/drivers/rd100.cpp @@ -86,7 +86,7 @@ MACHINE_RESET_MEMBER( rd100_state, rd100 ) { } -static MACHINE_CONFIG_START( rd100, rd100_state ) +static MACHINE_CONFIG_START( rd100 ) // basic machine hardware MCFG_CPU_ADD("maincpu",M6809E, XTAL_4MHz) // freq unknown MCFG_CPU_PROGRAM_MAP(rd100_mem) @@ -112,5 +112,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1989, rd100, 0, 0, rd100, rd100, rd100_state, rd100, "Data", "RD100", MACHINE_IS_SKELETON ) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 1989, rd100, 0, 0, rd100, rd100, rd100_state, rd100, "Data", "RD100", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/rd110.cpp b/src/mame/drivers/rd110.cpp index 8a107b20811..4056c8ce42e 100644 --- a/src/mame/drivers/rd110.cpp +++ b/src/mame/drivers/rd110.cpp @@ -229,7 +229,7 @@ static ADDRESS_MAP_START( d110_io, AS_IO, 16, d110_state ) AM_RANGE(i8x9x_device::P0, i8x9x_device::P0) AM_READ(port0_r) ADDRESS_MAP_END -static MACHINE_CONFIG_START( d110, d110_state ) +static MACHINE_CONFIG_START( d110 ) MCFG_CPU_ADD( "maincpu", P8098, XTAL_12MHz ) MCFG_CPU_PROGRAM_MAP( d110_map ) MCFG_CPU_IO_MAP( d110_io ) @@ -284,4 +284,4 @@ ROM_START( d110 ) ROM_LOAD( "r15179879.ic6.bin", 0, 0x8000, CRC(5d34174e) SHA1(17bd2887711c5c5458aba6d3be5972b2096eb450) ) ROM_END -CONS( 1988, d110, 0, 0, d110, d110, driver_device, 0, "Roland", "D110", MACHINE_NOT_WORKING|MACHINE_NO_SOUND ) +CONS( 1988, d110, 0, 0, d110, d110, d110_state, 0, "Roland", "D110", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/re900.cpp b/src/mame/drivers/re900.cpp index 2f07d80a0b4..897bae20c77 100644 --- a/src/mame/drivers/re900.cpp +++ b/src/mame/drivers/re900.cpp @@ -377,7 +377,7 @@ INPUT_PORTS_END * Machine Driver * ***************************/ -static MACHINE_CONFIG_START( re900, re900_state ) +static MACHINE_CONFIG_START( re900 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8051, MAIN_CLOCK) @@ -452,6 +452,6 @@ DRIVER_INIT_MEMBER(re900_state,re900) * Game Drivers * *************************/ -/* YEAR NAME PARENT MACHINE INPUT INIT ROT COMPANY FULLNAME FLAGS LAYOUT */ -GAMEL( 1993, re900, 0, re900, re900, re900_state, re900, ROT90, "Entretenimientos GEMINIS", "Ruleta RE-900", MACHINE_SUPPORTS_SAVE, layout_re900) -GAME ( 1994, bs94 , 0, bs94, bs94 , driver_device, 0, ROT0, "Entretenimientos GEMINIS", "Buena Suerte '94", MACHINE_SUPPORTS_SAVE ) +// YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS LAYOUT +GAMEL( 1993, re900, 0, re900, re900, re900_state, re900, ROT90, "Entretenimientos GEMINIS", "Ruleta RE-900", MACHINE_SUPPORTS_SAVE, layout_re900 ) +GAME ( 1994, bs94 , 0, bs94, bs94 , re900_state, 0, ROT0, "Entretenimientos GEMINIS", "Buena Suerte '94", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/realbrk.cpp b/src/mame/drivers/realbrk.cpp index 895408a74a0..c57a82ac871 100644 --- a/src/mame/drivers/realbrk.cpp +++ b/src/mame/drivers/realbrk.cpp @@ -754,7 +754,7 @@ INTERRUPT_GEN_MEMBER(realbrk_state::interrupt) m_tmp68301->external_interrupt_1(); } -static MACHINE_CONFIG_START( realbrk, realbrk_state ) +static MACHINE_CONFIG_START( realbrk ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",M68000, XTAL_32MHz / 2) /* !! TMP68301 !! */ @@ -1277,13 +1277,13 @@ ROM_START( dai2kaku_alt_rom_size ) ROM_END #endif -GAME( 1998, pkgnsh, 0, pkgnsh, pkgnsh, driver_device, 0, ROT0, "Nakanihon / Dynax", "Pachinko Gindama Shoubu (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1998, pkgnsh, 0, pkgnsh, pkgnsh, realbrk_state, 0, ROT0, "Nakanihon / Dynax", "Pachinko Gindama Shoubu (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1998, pkgnshdx, 0, pkgnshdx, pkgnshdx, driver_device, 0, ROT0, "Nakanihon / Dynax", "Pachinko Gindama Shoubu DX (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1998, pkgnshdx, 0, pkgnshdx, pkgnshdx, realbrk_state, 0, ROT0, "Nakanihon / Dynax", "Pachinko Gindama Shoubu DX (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1998, realbrk, 0, realbrk, realbrk, driver_device, 0, ROT0, "Nakanihon", "Billiard Academy Real Break (Europe)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1998, realbrko, realbrk, realbrk, realbrk, driver_device, 0, ROT0, "Nakanihon", "Billiard Academy Real Break (Europe, older)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1998, realbrkj, realbrk, realbrk, realbrk, driver_device, 0, ROT0, "Nakanihon", "Billiard Academy Real Break (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1998, realbrkk, realbrk, realbrk, realbrk, driver_device, 0, ROT0, "Nakanihon", "Billiard Academy Real Break (Korea)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1998, realbrk, 0, realbrk, realbrk, realbrk_state, 0, ROT0, "Nakanihon", "Billiard Academy Real Break (Europe)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1998, realbrko, realbrk, realbrk, realbrk, realbrk_state, 0, ROT0, "Nakanihon", "Billiard Academy Real Break (Europe, older)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1998, realbrkj, realbrk, realbrk, realbrk, realbrk_state, 0, ROT0, "Nakanihon", "Billiard Academy Real Break (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1998, realbrkk, realbrk, realbrk, realbrk, realbrk_state, 0, ROT0, "Nakanihon", "Billiard Academy Real Break (Korea)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 2004, dai2kaku, 0, dai2kaku, dai2kaku, driver_device, 0, ROT0, "SystemBit", "Dai-Dai-Kakumei (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 2004, dai2kaku, 0, dai2kaku, dai2kaku, realbrk_state, 0, ROT0, "SystemBit", "Dai-Dai-Kakumei (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/redalert.cpp b/src/mame/drivers/redalert.cpp index cff4ab900da..21cef47ecfe 100644 --- a/src/mame/drivers/redalert.cpp +++ b/src/mame/drivers/redalert.cpp @@ -387,7 +387,7 @@ INPUT_PORTS_END * *************************************/ -static MACHINE_CONFIG_START( redalert, redalert_state ) +static MACHINE_CONFIG_START( redalert ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, MAIN_CPU_CLOCK) @@ -401,7 +401,7 @@ static MACHINE_CONFIG_START( redalert, redalert_state ) MCFG_FRAGMENT_ADD(redalert_audio) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( ww3, redalert_state ) +static MACHINE_CONFIG_START( ww3 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, MAIN_CPU_CLOCK) @@ -415,7 +415,7 @@ static MACHINE_CONFIG_START( ww3, redalert_state ) MCFG_FRAGMENT_ADD(ww3_audio) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( panther, redalert_state ) +static MACHINE_CONFIG_START( panther ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, MAIN_CPU_CLOCK) @@ -429,7 +429,7 @@ static MACHINE_CONFIG_START( panther, redalert_state ) MCFG_FRAGMENT_ADD(ww3_audio) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( demoneye, redalert_state ) +static MACHINE_CONFIG_START( demoneye ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, MAIN_CPU_CLOCK) @@ -538,7 +538,7 @@ ROM_END * *************************************/ -GAME( 1981, panther, 0, panther, panther, driver_device, 0, ROT270, "Irem", "Panther", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1981, redalert, 0, redalert, redalert, driver_device, 0, ROT270, "Irem (GDI license)", "Red Alert", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1981, ww3, redalert, ww3, redalert, driver_device, 0, ROT270, "Irem", "WW III", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1981, demoneye, 0, demoneye, demoneye, driver_device, 0, ROT270, "Irem", "Demoneye-X", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1981, panther, 0, panther, panther, redalert_state, 0, ROT270, "Irem", "Panther", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1981, redalert, 0, redalert, redalert, redalert_state, 0, ROT270, "Irem (GDI license)", "Red Alert", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1981, ww3, redalert, ww3, redalert, redalert_state, 0, ROT270, "Irem", "WW III", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1981, demoneye, 0, demoneye, demoneye, redalert_state, 0, ROT270, "Irem", "Demoneye-X", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/redclash.cpp b/src/mame/drivers/redclash.cpp index 5d16056ec87..4cb56a8b395 100644 --- a/src/mame/drivers/redclash.cpp +++ b/src/mame/drivers/redclash.cpp @@ -626,7 +626,7 @@ MACHINE_RESET_MEMBER(redclash_state,redclash) m_stars_count = 0; } -static MACHINE_CONFIG_START( zerohour, redclash_state ) +static MACHINE_CONFIG_START( zerohour ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 4000000) /* 4 MHz */ @@ -655,7 +655,7 @@ static MACHINE_CONFIG_START( zerohour, redclash_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( redclash, redclash_state ) +static MACHINE_CONFIG_START( redclash ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 4000000) /* 4 MHz */ @@ -683,7 +683,7 @@ static MACHINE_CONFIG_START( redclash, redclash_state ) /* sound hardware */ MACHINE_CONFIG_END -static MACHINE_CONFIG_START( sraider, redclash_state ) +static MACHINE_CONFIG_START( sraider ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 4000000) /* 4 MHz */ @@ -945,10 +945,10 @@ DRIVER_INIT_MEMBER(redclash_state,redclash) } -GAME( 1980, zerohour, 0, zerohour, zerohour, redclash_state, redclash, ROT270, "Universal", "Zero Hour (set 1)", MACHINE_NO_SOUND | MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1980, zerohoura, zerohour, zerohour, zerohour, redclash_state, redclash, ROT270, "Universal", "Zero Hour (set 2)", MACHINE_NO_SOUND | MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1980, zerohouri, zerohour, zerohour, zerohour, redclash_state, redclash, ROT270, "bootleg (Inder SA)", "Zero Hour (Inder)", MACHINE_NO_SOUND | MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1981, redclash, 0, redclash, redclash, redclash_state, redclash, ROT270, "Tehkan", "Red Clash (set 1)", MACHINE_NO_SOUND | MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1981, redclasha, redclash, redclash, redclash, redclash_state, redclash, ROT270, "Tehkan", "Red Clash (set 2)", MACHINE_NO_SOUND | MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1980, zerohour, 0, zerohour, zerohour, redclash_state, redclash, ROT270, "Universal", "Zero Hour (set 1)", MACHINE_NO_SOUND | MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1980, zerohoura, zerohour, zerohour, zerohour, redclash_state, redclash, ROT270, "Universal", "Zero Hour (set 2)", MACHINE_NO_SOUND | MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1980, zerohouri, zerohour, zerohour, zerohour, redclash_state, redclash, ROT270, "bootleg (Inder SA)", "Zero Hour (Inder)", MACHINE_NO_SOUND | MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1981, redclash, 0, redclash, redclash, redclash_state, redclash, ROT270, "Tehkan", "Red Clash (set 1)", MACHINE_NO_SOUND | MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1981, redclasha, redclash, redclash, redclash, redclash_state, redclash, ROT270, "Tehkan", "Red Clash (set 2)", MACHINE_NO_SOUND | MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) GAME( 1981, redclashk, redclash, redclash, redclash, redclash_state, redclash, ROT270, "Tehkan (Kaneko license)", "Red Clash (Kaneko)", MACHINE_NO_SOUND | MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1982, sraider, 0, sraider, sraider, driver_device, 0, ROT270, "Universal", "Space Raider", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, sraider, 0, sraider, sraider, redclash_state, 0, ROT270, "Universal", "Space Raider", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/relief.cpp b/src/mame/drivers/relief.cpp index 107cbc7aa6f..ed1d2ac08e6 100644 --- a/src/mame/drivers/relief.cpp +++ b/src/mame/drivers/relief.cpp @@ -267,7 +267,7 @@ GFXDECODE_END * *************************************/ -static MACHINE_CONFIG_START( relief, relief_state ) +static MACHINE_CONFIG_START( relief ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, ATARI_CLOCK_14MHz/2) @@ -302,7 +302,7 @@ static MACHINE_CONFIG_START( relief, relief_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", ATARI_CLOCK_14MHz/4/3, OKIM6295_PIN7_LOW) + MCFG_OKIM6295_ADD("oki", ATARI_CLOCK_14MHz/4/3, PIN7_LOW) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) MCFG_DEVICE_ADDRESS_MAP(AS_0, oki_map) diff --git a/src/mame/drivers/renegade.cpp b/src/mame/drivers/renegade.cpp index 47a5871b089..e573c386a94 100644 --- a/src/mame/drivers/renegade.cpp +++ b/src/mame/drivers/renegade.cpp @@ -738,7 +738,7 @@ void renegade_state::machine_reset() } -static MACHINE_CONFIG_START( renegade, renegade_state ) +static MACHINE_CONFIG_START( renegade ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, 12000000/8) /* 1.5 MHz (measured) */ @@ -774,7 +774,7 @@ static MACHINE_CONFIG_START( renegade, renegade_state ) MCFG_SOUND_ADD("msm", MSM5205, 12000000/32) MCFG_MSM5205_VCLK_CB(WRITELINE(renegade_state, adpcm_int)) - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S48_4B) /* 8kHz */ + MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) /* 8kHz */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END diff --git a/src/mame/drivers/replicator.cpp b/src/mame/drivers/replicator.cpp index 93faf5c73b7..094ffd191a4 100644 --- a/src/mame/drivers/replicator.cpp +++ b/src/mame/drivers/replicator.cpp @@ -599,7 +599,7 @@ static GFXDECODE_START( replicator ) GFXDECODE_ENTRY( "hd44780:cgrom", 0x0000, hd44780_charlayout, 0, 1 ) GFXDECODE_END -static MACHINE_CONFIG_START( replicator, replicator_state ) +static MACHINE_CONFIG_START( replicator ) MCFG_CPU_ADD("maincpu", ATMEGA1280, MASTER_CLOCK) MCFG_CPU_PROGRAM_MAP(replicator_prg_map) @@ -720,5 +720,5 @@ ROM_START( replica1 ) ROM_REGION( 0x1000, "eeprom", ROMREGION_ERASEFF ) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ -COMP(2012, replica1, 0, 0, replicator, replicator, replicator_state, replicator, "Makerbot", "Replicator 1 desktop 3d printer", MACHINE_NOT_WORKING) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME */ +COMP(2012, replica1, 0, 0, replicator, replicator, replicator_state, replicator, "Makerbot", "Replicator 1 desktop 3d printer", MACHINE_NOT_WORKING) diff --git a/src/mame/drivers/retofinv.cpp b/src/mame/drivers/retofinv.cpp index aec4c2d9d30..27e2463a60c 100644 --- a/src/mame/drivers/retofinv.cpp +++ b/src/mame/drivers/retofinv.cpp @@ -360,7 +360,7 @@ INTERRUPT_GEN_MEMBER(retofinv_state::sub_vblank_irq) } -static MACHINE_CONFIG_START( retofinv, retofinv_state ) +static MACHINE_CONFIG_START( retofinv ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 18432000/6) /* 3.072 MHz? */ @@ -525,6 +525,6 @@ ROM_END -GAME( 1985, retofinv, 0, retofinv, retofinv, driver_device, 0, ROT90, "Taito Corporation", "Return of the Invaders", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, retofinv1,retofinv, retofinb, retofinv, driver_device, 0, ROT90, "bootleg", "Return of the Invaders (bootleg set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, retofinv2,retofinv, retofinb, retofin2, driver_device, 0, ROT90, "bootleg", "Return of the Invaders (bootleg set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, retofinv, 0, retofinv, retofinv, retofinv_state, 0, ROT90, "Taito Corporation", "Return of the Invaders", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, retofinv1,retofinv, retofinb, retofinv, retofinv_state, 0, ROT90, "bootleg", "Return of the Invaders (bootleg set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, retofinv2,retofinv, retofinb, retofin2, retofinv_state, 0, ROT90, "bootleg", "Return of the Invaders (bootleg set 2)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/rex6000.cpp b/src/mame/drivers/rex6000.cpp index 893bb5860d9..bc6b01e81c2 100644 --- a/src/mame/drivers/rex6000.cpp +++ b/src/mame/drivers/rex6000.cpp @@ -870,7 +870,7 @@ static GFXDECODE_START( rex6000 ) GFXDECODE_END -static MACHINE_CONFIG_START( rex6000, rex6000_state ) +static MACHINE_CONFIG_START( rex6000 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80, XTAL_4MHz) //Toshiba microprocessor Z80 compatible at 4.3MHz MCFG_CPU_PROGRAM_MAP(rex6000_mem) @@ -947,7 +947,7 @@ static MACHINE_CONFIG_START( rex6000, rex6000_state ) MCFG_SOUND_ROUTE( ALL_OUTPUTS, "mono", 1.00 ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( oz750, oz750_state ) +static MACHINE_CONFIG_START( oz750 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80, XTAL_9_8304MHz) //Toshiba microprocessor Z80 compatible at 9.8MHz MCFG_CPU_PROGRAM_MAP(rex6000_mem) @@ -1053,7 +1053,7 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 199?, oz750, 0, 0, oz750 , oz750, driver_device, 0, "Sharp", "Wizard OZ-750", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -COMP( 2000, rex6000, 0, 0, rex6000, rex6000, driver_device, 0, "Xircom / Intel", "REX 6000", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -COMP( 2000, ds2, rex6000, 0, rex6000, rex6000, driver_device, 0, "Citizen", "DataSlim 2", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +COMP( 199?, oz750, 0, 0, oz750, oz750, oz750_state, 0, "Sharp", "Wizard OZ-750", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +COMP( 2000, rex6000, 0, 0, rex6000, rex6000, rex6000_state, 0, "Xircom / Intel", "REX 6000", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +COMP( 2000, ds2, rex6000, 0, rex6000, rex6000, rex6000_state, 0, "Citizen", "DataSlim 2", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) diff --git a/src/mame/drivers/rgum.cpp b/src/mame/drivers/rgum.cpp index d5b64dce64f..ab3649d29fe 100644 --- a/src/mame/drivers/rgum.cpp +++ b/src/mame/drivers/rgum.cpp @@ -238,7 +238,7 @@ static GFXDECODE_START( rgum ) GFXDECODE_END -static MACHINE_CONFIG_START( rgum, rgum_state ) +static MACHINE_CONFIG_START( rgum ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M65C02,24000000/16) /* ? MHz */ MCFG_CPU_PROGRAM_MAP(rgum_map) @@ -294,4 +294,4 @@ ROM_START( rgum ) ROM_END -GAME( 199?, rgum, 0, rgum, rgum, driver_device, 0, ROT0, "", "Royal Gum (Italy)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +GAME( 199?, rgum, 0, rgum, rgum, rgum_state, 0, ROT0, "", "Royal Gum (Italy)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/risc2500.cpp b/src/mame/drivers/risc2500.cpp index fde81bfd102..f3bfd22fb5f 100644 --- a/src/mame/drivers/risc2500.cpp +++ b/src/mame/drivers/risc2500.cpp @@ -286,10 +286,10 @@ static ADDRESS_MAP_START(risc2500_mem, AS_PROGRAM, 32, risc2500_state ) ADDRESS_MAP_END -static MACHINE_CONFIG_START( risc2500, risc2500_state ) +static MACHINE_CONFIG_START( risc2500 ) MCFG_CPU_ADD("maincpu", ARM, XTAL_28_322MHz / 2) // VY86C010 MCFG_CPU_PROGRAM_MAP(risc2500_mem) - MCFG_ARM_COPRO(ARM_COPRO_TYPE_VL86C020) + MCFG_ARM_COPRO(VL86C020) MCFG_CPU_PERIODIC_INT_DRIVER(risc2500_state, irq1_line_hold, 250) MCFG_SCREEN_ADD("screen", LCD) @@ -335,6 +335,6 @@ ROM_START( montreux ) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -CONS( 1992, risc, 0, 0, risc2500, risc2500, driver_device, 0, "Saitek", "RISC 2500", MACHINE_CLICKABLE_ARTWORK ) -CONS( 1995, montreux, 0, 0, risc2500, risc2500, driver_device, 0, "Saitek / Hegener & Glaser", "Mephisto Montreux", MACHINE_CLICKABLE_ARTWORK ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +CONS( 1992, risc, 0, 0, risc2500, risc2500, risc2500_state, 0, "Saitek", "RISC 2500", MACHINE_CLICKABLE_ARTWORK ) +CONS( 1995, montreux, 0, 0, risc2500, risc2500, risc2500_state, 0, "Saitek / Hegener & Glaser", "Mephisto Montreux", MACHINE_CLICKABLE_ARTWORK ) diff --git a/src/mame/drivers/riscpc.cpp b/src/mame/drivers/riscpc.cpp index 8eba052f3c2..6a89cf73a0d 100644 --- a/src/mame/drivers/riscpc.cpp +++ b/src/mame/drivers/riscpc.cpp @@ -799,7 +799,7 @@ void riscpc_state::machine_reset() m_flyback_timer->adjust( attotime::never); } -static MACHINE_CONFIG_START( rpc600, riscpc_state ) +static MACHINE_CONFIG_START( rpc600 ) /* Basic machine hardware */ MCFG_CPU_ADD( "maincpu", ARM7, XTAL_30MHz ) // ARM610 MCFG_CPU_PROGRAM_MAP(a7000_mem) @@ -814,7 +814,7 @@ static MACHINE_CONFIG_START( rpc600, riscpc_state ) MCFG_PALETTE_ADD("palette", 0x200) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( rpc700, riscpc_state ) +static MACHINE_CONFIG_START( rpc700 ) /* Basic machine hardware */ MCFG_CPU_ADD( "maincpu", ARM7, XTAL_40MHz ) // ARM710 MCFG_CPU_PROGRAM_MAP(a7000_mem) @@ -829,7 +829,7 @@ static MACHINE_CONFIG_START( rpc700, riscpc_state ) MCFG_PALETTE_ADD("palette", 0x200) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( a7000, riscpc_state ) +static MACHINE_CONFIG_START( a7000 ) /* Basic machine hardware */ MCFG_CPU_ADD( "maincpu", ARM7, XTAL_32MHz ) // ARM7500 MCFG_CPU_PROGRAM_MAP(a7000_mem) @@ -849,7 +849,7 @@ static MACHINE_CONFIG_DERIVED( a7000p, a7000 ) MCFG_CPU_CLOCK(XTAL_48MHz) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( sarpc, riscpc_state ) +static MACHINE_CONFIG_START( sarpc ) /* Basic machine hardware */ MCFG_CPU_ADD( "maincpu", ARM7, 202000000 ) // StrongARM MCFG_CPU_PROGRAM_MAP(a7000_mem) @@ -864,7 +864,7 @@ static MACHINE_CONFIG_START( sarpc, riscpc_state ) MCFG_PALETTE_ADD("palette", 0x200) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( sarpc_j233, riscpc_state ) +static MACHINE_CONFIG_START( sarpc_j233 ) /* Basic machine hardware */ MCFG_CPU_ADD( "maincpu", ARM7, 233000000 ) // StrongARM MCFG_CPU_PROGRAM_MAP(a7000_mem) @@ -947,10 +947,10 @@ ROM_END ***************************************************************************/ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1994, rpc600, 0, 0, rpc600, a7000, driver_device, 0, "Acorn", "Risc PC 600", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -COMP( 1994, rpc700, rpc600, 0, rpc700, a7000, driver_device, 0, "Acorn", "Risc PC 700", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -COMP( 1995, a7000, rpc600, 0, a7000, a7000, driver_device, 0, "Acorn", "Archimedes A7000", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -COMP( 1997, a7000p, rpc600, 0, a7000p, a7000, driver_device, 0, "Acorn", "Archimedes A7000+", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -COMP( 1997, sarpc, rpc600, 0, sarpc, a7000, driver_device, 0, "Acorn", "StrongARM Risc PC", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -COMP( 1997, sarpc_j233, rpc600, 0, sarpc_j233, a7000, driver_device, 0, "Acorn", "J233 StrongARM Risc PC", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +COMP( 1994, rpc600, 0, 0, rpc600, a7000, riscpc_state, 0, "Acorn", "Risc PC 600", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +COMP( 1994, rpc700, rpc600, 0, rpc700, a7000, riscpc_state, 0, "Acorn", "Risc PC 700", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +COMP( 1995, a7000, rpc600, 0, a7000, a7000, riscpc_state, 0, "Acorn", "Archimedes A7000", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +COMP( 1997, a7000p, rpc600, 0, a7000p, a7000, riscpc_state, 0, "Acorn", "Archimedes A7000+", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +COMP( 1997, sarpc, rpc600, 0, sarpc, a7000, riscpc_state, 0, "Acorn", "StrongARM Risc PC", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +COMP( 1997, sarpc_j233, rpc600, 0, sarpc_j233, a7000, riscpc_state, 0, "Acorn", "J233 StrongARM Risc PC", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/rltennis.cpp b/src/mame/drivers/rltennis.cpp index 61e39626ef7..3b827083d00 100644 --- a/src/mame/drivers/rltennis.cpp +++ b/src/mame/drivers/rltennis.cpp @@ -183,7 +183,7 @@ static ADDRESS_MAP_START( ramdac_map, AS_0, 8, rltennis_state ) AM_RANGE(0x000, 0x3ff) AM_DEVREADWRITE("ramdac",ramdac_device,ramdac_pal_r,ramdac_rgb888_w) ADDRESS_MAP_END -static MACHINE_CONFIG_START( rltennis, rltennis_state ) +static MACHINE_CONFIG_START( rltennis ) MCFG_CPU_ADD("maincpu", M68000, RLT_XTAL/2) /* 68000P8 ??? */ MCFG_CPU_PROGRAM_MAP(rltennis_main) @@ -236,4 +236,4 @@ ROM_START( rltennis ) ROM_LOAD( "tennis_3.u52", 0x00000, 0x80000, CRC(517dcd0e) SHA1(b2703e185ee8cf7e115ea07151e7bee8be34948b) ) ROM_END -GAME( 1993, rltennis, 0, rltennis, rltennis, driver_device, 0, ROT0, "TCH", "Reality Tennis", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1993, rltennis, 0, rltennis, rltennis, rltennis_state, 0, ROT0, "TCH", "Reality Tennis", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/rm380z.cpp b/src/mame/drivers/rm380z.cpp index b9651de896c..2f1b05730ac 100644 --- a/src/mame/drivers/rm380z.cpp +++ b/src/mame/drivers/rm380z.cpp @@ -183,7 +183,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( rm380z_io , AS_IO, 8, rm380z_state) ADDRESS_MAP_GLOBAL_MASK(0xff) AM_RANGE(0x00, 0xbf) AM_READWRITE(rm380z_portlow_r, rm380z_portlow_w) - AM_RANGE(0xc0, 0xc3) AM_DEVREADWRITE("wd1771", fd1771_t, read, write) + AM_RANGE(0xc0, 0xc3) AM_DEVREADWRITE("wd1771", fd1771_device, read, write) AM_RANGE(0xc4, 0xc4) AM_WRITE(disk_0_control) AM_RANGE(0xc5, 0xff) AM_READWRITE(rm380z_porthi_r, rm380z_porthi_w) ADDRESS_MAP_END @@ -228,7 +228,7 @@ uint32_t rm380z_state::screen_update_rm380z(screen_device &screen, bitmap_ind16 return 0; } -static MACHINE_CONFIG_START( rm380z, rm380z_state ) +static MACHINE_CONFIG_START( rm380z ) /* basic machine hardware */ MCFG_CPU_ADD(RM380Z_MAINCPU_TAG, Z80, XTAL_16MHz / 4) MCFG_CPU_PROGRAM_MAP(rm380z_mem) @@ -265,10 +265,10 @@ static MACHINE_CONFIG_START( rm380z, rm380z_state ) /* keyboard */ MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0) - MCFG_GENERIC_KEYBOARD_CB(WRITE8(rm380z_state, keyboard_put)) + MCFG_GENERIC_KEYBOARD_CB(PUT(rm380z_state, keyboard_put)) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( rm480z, rm380z_state ) +static MACHINE_CONFIG_START( rm480z ) /* basic machine hardware */ MCFG_CPU_ADD(RM380Z_MAINCPU_TAG, Z80, XTAL_16MHz / 4) MCFG_CPU_PROGRAM_MAP(rm480z_mem) @@ -288,7 +288,7 @@ static MACHINE_CONFIG_START( rm480z, rm380z_state ) /* keyboard */ // MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0) -// MCFG_GENERIC_KEYBOARD_CB(WRITE8(rm380z_state, keyboard_put)) +// MCFG_GENERIC_KEYBOARD_CB(PUT(rm380z_state, keyboard_put)) MACHINE_CONFIG_END @@ -345,10 +345,10 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME */ -COMP(1978, rm380z, 0, 0, rm380z, rm380z, rm380z_state, rm380z, "Research Machines", "RM-380Z, COS 4.0B", MACHINE_NO_SOUND_HW) -COMP(1978, rm380z34d, rm380z, 0, rm380z, rm380z, rm380z_state, rm380z34d, "Research Machines", "RM-380Z, COS 3.4D", MACHINE_BTANB_FLAGS) -COMP(1978, rm380z34e, rm380z, 0, rm380z, rm380z, rm380z_state, rm380z34e, "Research Machines", "RM-380Z, COS 3.4E", MACHINE_BTANB_FLAGS) -COMP(1981, rm480z, rm380z, 0, rm480z, rm380z, rm380z_state, rm380z34e, "Research Machines", "LINK RM-480Z (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -COMP(1981, rm480za, rm380z, 0, rm480z, rm380z, rm380z_state, rm380z34e, "Research Machines", "LINK RM-480Z (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP(1978, rm380z, 0, 0, rm380z, rm380z, rm380z_state, rm380z, "Research Machines", "RM-380Z, COS 4.0B", MACHINE_NO_SOUND_HW) +COMP(1978, rm380z34d, rm380z, 0, rm380z, rm380z, rm380z_state, rm380z34d, "Research Machines", "RM-380Z, COS 3.4D", MACHINE_BTANB_FLAGS) +COMP(1978, rm380z34e, rm380z, 0, rm380z, rm380z, rm380z_state, rm380z34e, "Research Machines", "RM-380Z, COS 3.4E", MACHINE_BTANB_FLAGS) +COMP(1981, rm480z, rm380z, 0, rm480z, rm380z, rm380z_state, rm380z34e, "Research Machines", "LINK RM-480Z (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +COMP(1981, rm480za, rm380z, 0, rm480z, rm380z, rm380z_state, rm380z34e, "Research Machines", "LINK RM-480Z (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) diff --git a/src/mame/drivers/rmhaihai.cpp b/src/mame/drivers/rmhaihai.cpp index d04feda3a11..1130b570d8d 100644 --- a/src/mame/drivers/rmhaihai.cpp +++ b/src/mame/drivers/rmhaihai.cpp @@ -471,7 +471,7 @@ static GFXDECODE_START( themj ) GFXDECODE_END -static MACHINE_CONFIG_START( rmhaihai, rmhaihai_state ) +static MACHINE_CONFIG_START( rmhaihai ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80,20000000/4) /* 5 MHz ??? */ @@ -503,7 +503,7 @@ static MACHINE_CONFIG_START( rmhaihai, rmhaihai_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30) MCFG_SOUND_ADD("msm", MSM5205, 500000) - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_SEX_4B) + MCFG_MSM5205_PRESCALER_SELECTOR(SEX_4B) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END diff --git a/src/mame/drivers/rmnimbus.cpp b/src/mame/drivers/rmnimbus.cpp index b0a50622cb0..ff62011a948 100644 --- a/src/mame/drivers/rmnimbus.cpp +++ b/src/mame/drivers/rmnimbus.cpp @@ -57,7 +57,7 @@ static ADDRESS_MAP_START(nimbus_io, AS_IO, 16, rmnimbus_state ) AM_RANGE( 0x00e0, 0x00ef) AM_DEVREADWRITE8(AY8910_TAG, ay8910_device, data_r, address_data_w, 0x00FF) AM_RANGE( 0x00f0, 0x00f7) AM_DEVREADWRITE8(Z80SIO_TAG, z80sio2_device, cd_ba_r, cd_ba_w, 0x00ff) AM_RANGE( 0x0400, 0x0401) AM_WRITE8(fdc_ctl_w, 0x00ff) - AM_RANGE( 0x0408, 0x040f) AM_DEVREADWRITE8(FDC_TAG, wd2793_t, read, write, 0x00ff) + AM_RANGE( 0x0408, 0x040f) AM_DEVREADWRITE8(FDC_TAG, wd2793_device, read, write, 0x00ff) AM_RANGE( 0x0410, 0x041f) AM_READWRITE8(scsi_r, scsi_w, 0x00ff) AM_RANGE( 0x0480, 0x049f) AM_DEVREADWRITE8(VIA_TAG, via6522_device, read, write, 0x00FF) ADDRESS_MAP_END @@ -108,7 +108,7 @@ static const uint16_t def_config[16] = 0x0000, 0x8893, 0x2025, 0xB9E6 }; -static MACHINE_CONFIG_START( nimbus, rmnimbus_state ) +static MACHINE_CONFIG_START( nimbus ) /* basic machine hardware */ MCFG_CPU_ADD(MAINCPU_TAG, I80186, 16000000) // the cpu is a 10Mhz part but the serial clocks are wrong unless it runs at 8Mhz MCFG_CPU_PROGRAM_MAP(nimbus_mem) @@ -155,8 +155,8 @@ static MACHINE_CONFIG_START( nimbus, rmnimbus_state ) MCFG_DEVICE_ADD("scsi_data_in", INPUT_BUFFER, 0) MCFG_DEVICE_ADD("scsi_ctrl_out", OUTPUT_LATCH, 0) - MCFG_OUTPUT_LATCH_BIT0_HANDLER(DEVWRITELINE(SCSIBUS_TAG, SCSI_PORT_DEVICE, write_rst)) - MCFG_OUTPUT_LATCH_BIT1_HANDLER(DEVWRITELINE(SCSIBUS_TAG, SCSI_PORT_DEVICE, write_sel)) + MCFG_OUTPUT_LATCH_BIT0_HANDLER(DEVWRITELINE(SCSIBUS_TAG, scsi_port_device, write_rst)) + MCFG_OUTPUT_LATCH_BIT1_HANDLER(DEVWRITELINE(SCSIBUS_TAG, scsi_port_device, write_sel)) MCFG_OUTPUT_LATCH_BIT2_HANDLER(WRITELINE(rmnimbus_state, write_scsi_iena)) MCFG_RAM_ADD(RAM_TAG) @@ -202,7 +202,7 @@ static MACHINE_CONFIG_START( nimbus, rmnimbus_state ) MCFG_SOUND_ADD(MSM5205_TAG, MSM5205, 384000) MCFG_MSM5205_VCLK_CB(WRITELINE(rmnimbus_state, nimbus_msm5205_vck)) /* VCK function */ - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S48_4B) /* 8 kHz */ + MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) /* 8 kHz */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, MONO_TAG, 0.75) /* Software list */ @@ -229,5 +229,5 @@ ROM_START( nimbus ) ROM_LOAD("hexec-v1.02u-13488-1985-10-29.rom", 0x0000, 0x1000, CRC(75c6adfd) SHA1(0f11e0b7386c6368d20e1fc7a6196d670f924825)) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1986, nimbus, 0, 0, nimbus, nimbus, driver_device, 0, "Research Machines", "Nimbus", 0) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1986, nimbus, 0, 0, nimbus, nimbus, rmnimbus_state, 0, "Research Machines", "Nimbus", 0) diff --git a/src/mame/drivers/rmt32.cpp b/src/mame/drivers/rmt32.cpp index 0be194f8d94..a77fbc0ab16 100644 --- a/src/mame/drivers/rmt32.cpp +++ b/src/mame/drivers/rmt32.cpp @@ -348,7 +348,7 @@ static ADDRESS_MAP_START( mt32_io, AS_IO, 16, mt32_state ) AM_RANGE(i8x9x_device::P0, i8x9x_device::P0) AM_READ(port0_r) ADDRESS_MAP_END -static MACHINE_CONFIG_START( mt32, mt32_state ) +static MACHINE_CONFIG_START( mt32 ) MCFG_CPU_ADD( "maincpu", P8098, XTAL_12MHz ) MCFG_CPU_PROGRAM_MAP( mt32_map ) MCFG_CPU_IO_MAP( mt32_io ) @@ -435,5 +435,5 @@ ROM_START( cm32l ) ROM_LOAD( "r15179917.ic19.bin", 0, 0x8000, CRC(236c87a6) SHA1(e1c03905c46e962d1deb15eeed92eb61b42bba4a) ) ROM_END -CONS( 1987, mt32, 0, 0, mt32, mt32, driver_device, 0, "Roland", "MT32", MACHINE_NOT_WORKING|MACHINE_NO_SOUND ) -CONS( 1989, cm32l, 0, 0, mt32, mt32, driver_device, 0, "Roland", "CM32L", MACHINE_NOT_WORKING|MACHINE_NO_SOUND ) +CONS( 1987, mt32, 0, 0, mt32, mt32, mt32_state, 0, "Roland", "MT32", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +CONS( 1989, cm32l, 0, 0, mt32, mt32, mt32_state, 0, "Roland", "CM32L", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/rockrage.cpp b/src/mame/drivers/rockrage.cpp index 1fc107b2c53..b6cc2c9cef5 100644 --- a/src/mame/drivers/rockrage.cpp +++ b/src/mame/drivers/rockrage.cpp @@ -245,7 +245,7 @@ void rockrage_state::machine_reset() m_vreg = 0; } -static MACHINE_CONFIG_START( rockrage, rockrage_state ) +static MACHINE_CONFIG_START( rockrage ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", HD6309, 3000000*4) /* 24MHz/8 */ @@ -391,6 +391,6 @@ ROM_END ***************************************************************************/ // YEAR, NAME, PARENT, MACHINE, INPUT, INIT,MONITOR,COMPANY,FULLNAME,FLAGS -GAME( 1986, rockrage, 0, rockrage, rockrage, driver_device, 0, ROT0, "Konami", "Rock'n Rage (World)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, rockragea, rockrage, rockrage, rockrage, driver_device, 0, ROT0, "Konami", "Rock'n Rage (prototype?)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, rockragej, rockrage, rockrage, rockrage, driver_device, 0, ROT0, "Konami", "Koi no Hotrock (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, rockrage, 0, rockrage, rockrage, rockrage_state, 0, ROT0, "Konami", "Rock'n Rage (World)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, rockragea, rockrage, rockrage, rockrage, rockrage_state, 0, ROT0, "Konami", "Rock'n Rage (prototype?)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, rockragej, rockrage, rockrage, rockrage, rockrage_state, 0, ROT0, "Konami", "Koi no Hotrock (Japan)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/rocnrope.cpp b/src/mame/drivers/rocnrope.cpp index fc532094a31..6b49896968e 100644 --- a/src/mame/drivers/rocnrope.cpp +++ b/src/mame/drivers/rocnrope.cpp @@ -200,7 +200,7 @@ INTERRUPT_GEN_MEMBER(rocnrope_state::vblank_irq) } -static MACHINE_CONFIG_START( rocnrope, rocnrope_state ) +static MACHINE_CONFIG_START( rocnrope ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", KONAMI1, MASTER_CLOCK / 3 / 4) /* Verified in schematics */ @@ -377,5 +377,5 @@ DRIVER_INIT_MEMBER(rocnrope_state,rocnrope) *************************************/ GAME( 1983, rocnrope, 0, rocnrope, rocnrope, rocnrope_state, rocnrope, ROT270, "Konami", "Roc'n Rope", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, rocnropek, rocnrope, rocnrope, rocnrope, driver_device, 0, ROT270, "Konami (Kosuka license)", "Roc'n Rope (Kosuka)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, rocnropek, rocnrope, rocnrope, rocnrope, rocnrope_state, 0, ROT270, "Konami (Kosuka license)", "Roc'n Rope (Kosuka)", MACHINE_SUPPORTS_SAVE ) GAME( 1983, ropeman, rocnrope, rocnrope, rocnrope, rocnrope_state, rocnrope, ROT270, "bootleg", "Ropeman (bootleg of Roc'n Rope)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/rohga.cpp b/src/mame/drivers/rohga.cpp index 093f9218b14..d631342e101 100644 --- a/src/mame/drivers/rohga.cpp +++ b/src/mame/drivers/rohga.cpp @@ -896,7 +896,7 @@ DECOSPR_COLOUR_CB_MEMBER(rohga_state::schmeisr_col_callback) return colour; } -static MACHINE_CONFIG_START( rohga, rohga_state ) +static MACHINE_CONFIG_START( rohga ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 14000000) @@ -972,16 +972,16 @@ static MACHINE_CONFIG_START( rohga, rohga_state ) MCFG_SOUND_ROUTE(0, "lspeaker", 0.78) MCFG_SOUND_ROUTE(1, "rspeaker", 0.78) - MCFG_OKIM6295_ADD("oki1", 32220000/32, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki1", 32220000/32, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) - MCFG_OKIM6295_ADD("oki2", 32220000/16, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki2", 32220000/16, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.40) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.40) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( wizdfire, rohga_state ) +static MACHINE_CONFIG_START( wizdfire ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 14000000) @@ -1062,16 +1062,16 @@ static MACHINE_CONFIG_START( wizdfire, rohga_state ) MCFG_SOUND_ROUTE(0, "lspeaker", 0.80) MCFG_SOUND_ROUTE(1, "rspeaker", 0.80) - MCFG_OKIM6295_ADD("oki1", 32220000/32, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki1", 32220000/32, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) - MCFG_OKIM6295_ADD("oki2", 32220000/16, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki2", 32220000/16, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.40) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.40) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( nitrobal, rohga_state ) +static MACHINE_CONFIG_START( nitrobal ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 14000000) @@ -1154,16 +1154,16 @@ static MACHINE_CONFIG_START( nitrobal, rohga_state ) MCFG_SOUND_ROUTE(0, "lspeaker", 0.80) MCFG_SOUND_ROUTE(1, "rspeaker", 0.80) - MCFG_OKIM6295_ADD("oki1", 32220000/32, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki1", 32220000/32, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) - MCFG_OKIM6295_ADD("oki2", 32220000/16, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki2", 32220000/16, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.40) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.40) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( schmeisr, rohga_state ) +static MACHINE_CONFIG_START( schmeisr ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 14000000) @@ -1239,11 +1239,11 @@ static MACHINE_CONFIG_START( schmeisr, rohga_state ) MCFG_SOUND_ROUTE(0, "lspeaker", 0.80) MCFG_SOUND_ROUTE(1, "rspeaker", 0.80) - MCFG_OKIM6295_ADD("oki1", 32220000/32, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki1", 32220000/32, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) - MCFG_OKIM6295_ADD("oki2", 32220000/16, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki2", 32220000/16, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.40) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.40) MACHINE_CONFIG_END @@ -1921,12 +1921,12 @@ DRIVER_INIT_MEMBER(rohga_state,hangzo) memcpy(dst + 0x20000, src + 0x80000, 0x20000); } -GAME( 1991, rohga, 0, rohga, rohga, rohga_state, rohga, ROT0, "Data East Corporation", "Rohga Armor Force (Asia/Europe v5.0)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, rohga1, rohga, rohga, rohga, rohga_state, rohga, ROT0, "Data East Corporation", "Rohga Armor Force (Asia/Europe v3.0 set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, rohga2, rohga, rohga, rohga, rohga_state, rohga, ROT0, "Data East Corporation", "Rohga Armor Force (Asia/Europe v3.0 set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, rohgah, rohga, rohga, rohga, rohga_state, rohga, ROT0, "Data East Corporation", "Rohga Armor Force (Hong Kong v3.0)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, rohgau, rohga, rohga, rohga, rohga_state, rohga, ROT0, "Data East Corporation", "Rohga Armor Force (US v1.0)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, wolffang, rohga, rohga, rohga, rohga_state, rohga, ROT0, "Data East Corporation", "Wolf Fang -Kuhga 2001- (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, rohga, 0, rohga, rohga, rohga_state, rohga, ROT0, "Data East Corporation", "Rohga Armor Force (Asia/Europe v5.0)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, rohga1, rohga, rohga, rohga, rohga_state, rohga, ROT0, "Data East Corporation", "Rohga Armor Force (Asia/Europe v3.0 set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, rohga2, rohga, rohga, rohga, rohga_state, rohga, ROT0, "Data East Corporation", "Rohga Armor Force (Asia/Europe v3.0 set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, rohgah, rohga, rohga, rohga, rohga_state, rohga, ROT0, "Data East Corporation", "Rohga Armor Force (Hong Kong v3.0)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, rohgau, rohga, rohga, rohga, rohga_state, rohga, ROT0, "Data East Corporation", "Rohga Armor Force (US v1.0)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, wolffang, rohga, rohga, rohga, rohga_state, rohga, ROT0, "Data East Corporation", "Wolf Fang -Kuhga 2001- (Japan)", MACHINE_SUPPORTS_SAVE ) GAME( 1992, wizdfire, 0, wizdfire, wizdfire, rohga_state, wizdfire, ROT0, "Data East Corporation", "Wizard Fire (Over Sea v2.1)", MACHINE_SUPPORTS_SAVE ) GAME( 1992, wizdfireu, wizdfire, wizdfire, wizdfire, rohga_state, wizdfire, ROT0, "Data East Corporation", "Wizard Fire (US v1.1)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/rollerg.cpp b/src/mame/drivers/rollerg.cpp index 668d261795e..18411cb6195 100644 --- a/src/mame/drivers/rollerg.cpp +++ b/src/mame/drivers/rollerg.cpp @@ -242,7 +242,7 @@ WRITE8_MEMBER( rollerg_state::banking_callback ) } -static MACHINE_CONFIG_START( rollerg, rollerg_state ) +static MACHINE_CONFIG_START( rollerg ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", KONAMI, 3000000) /* ? */ @@ -348,5 +348,5 @@ ROM_END ***************************************************************************/ -GAME( 1991, rollerg, 0, rollerg, rollerg, driver_device, 0, ROT0, "Konami", "Rollergames (US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, rollergj, rollerg, rollerg, rollerg, driver_device, 0, ROT0, "Konami", "Rollergames (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, rollerg, 0, rollerg, rollerg, rollerg_state, 0, ROT0, "Konami", "Rollergames (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, rollergj, rollerg, rollerg, rollerg, rollerg_state, 0, ROT0, "Konami", "Rollergames (Japan)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/rollext.cpp b/src/mame/drivers/rollext.cpp index 016b6b5adfe..d4e8753844f 100644 --- a/src/mame/drivers/rollext.cpp +++ b/src/mame/drivers/rollext.cpp @@ -537,7 +537,7 @@ void rollext_state::machine_start() } -static MACHINE_CONFIG_START(rollext, rollext_state) +static MACHINE_CONFIG_START(rollext) MCFG_CPU_ADD("maincpu", TMS32082_MP, 60000000) MCFG_CPU_PROGRAM_MAP(memmap) //MCFG_CPU_VBLANK_INT_DRIVER("screen", rollext_state, vblank_interrupt) diff --git a/src/mame/drivers/rollrace.cpp b/src/mame/drivers/rollrace.cpp index c91c490d6cd..ed5dfef309d 100644 --- a/src/mame/drivers/rollrace.cpp +++ b/src/mame/drivers/rollrace.cpp @@ -244,7 +244,7 @@ INTERRUPT_GEN_MEMBER(rollrace_state::sound_timer_irq) device.execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE); } -static MACHINE_CONFIG_START( rollrace, rollrace_state ) +static MACHINE_CONFIG_START( rollrace ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80,XTAL_24MHz/8) /* verified on pcb */ @@ -441,6 +441,6 @@ ROM_START( rollace2 ) ROM_END -GAME( 1983, fightrol, 0, rollrace, rollrace, driver_device, 0, ROT270, "Kaneko (Taito license)", "Fighting Roller", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1983, rollace, fightrol, rollrace, rollrace, driver_device, 0, ROT270, "Kaneko (Williams license)", "Roller Aces (set 1)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1983, rollace2, fightrol, rollace2, rollrace, driver_device, 0, ROT90, "Kaneko (Williams license)", "Roller Aces (set 2)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1983, fightrol, 0, rollrace, rollrace, rollrace_state, 0, ROT270, "Kaneko (Taito license)", "Fighting Roller", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1983, rollace, fightrol, rollrace, rollrace, rollrace_state, 0, ROT270, "Kaneko (Williams license)", "Roller Aces (set 1)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1983, rollace2, fightrol, rollace2, rollrace, rollrace_state, 0, ROT90, "Kaneko (Williams license)", "Roller Aces (set 2)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/rotaryf.cpp b/src/mame/drivers/rotaryf.cpp index 86bce2a785b..666657ded91 100644 --- a/src/mame/drivers/rotaryf.cpp +++ b/src/mame/drivers/rotaryf.cpp @@ -246,7 +246,7 @@ static INPUT_PORTS_START( rotaryf ) INPUT_PORTS_END -static MACHINE_CONFIG_START( rotaryf, rotaryf_state ) +static MACHINE_CONFIG_START( rotaryf ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",I8085A,4000000) /* ?? MHz */ @@ -297,4 +297,4 @@ ROM_START( rotaryf ) ROM_END -GAME( 1979, rotaryf, 0, rotaryf, rotaryf, driver_device, 0, ROT270, "Kasco", "Rotary Fighter", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1979, rotaryf, 0, rotaryf, rotaryf, rotaryf_state, 0, ROT270, "Kasco", "Rotary Fighter", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/roul.cpp b/src/mame/drivers/roul.cpp index bb32d609302..841684858a5 100644 --- a/src/mame/drivers/roul.cpp +++ b/src/mame/drivers/roul.cpp @@ -294,7 +294,7 @@ static INPUT_PORTS_START( roul ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) INPUT_PORTS_END -static MACHINE_CONFIG_START( roul, roul_state ) +static MACHINE_CONFIG_START( roul ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 4000000) MCFG_CPU_PROGRAM_MAP(roul_map) @@ -341,4 +341,4 @@ ROM_START(roul) ROM_LOAD( "roul.u38", 0x0020, 0x0020, CRC(23ae22c1) SHA1(bf0383462976ec6341ffa8a173264ce820bc654a) ) ROM_END -GAMEL( 1990, roul, 0, roul, roul, driver_device, 0, ROT0, "bootleg", "Super Lucky Roulette", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE, layout_roul ) +GAMEL( 1990, roul, 0, roul, roul, roul_state, 0, ROT0, "bootleg", "Super Lucky Roulette", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE, layout_roul ) diff --git a/src/mame/drivers/route16.cpp b/src/mame/drivers/route16.cpp index f0839becc48..cf174755a4f 100644 --- a/src/mame/drivers/route16.cpp +++ b/src/mame/drivers/route16.cpp @@ -554,7 +554,7 @@ MACHINE_START_MEMBER(route16_state, ttmahjng) } -static MACHINE_CONFIG_START( route16, route16_state ) +static MACHINE_CONFIG_START( route16 ) /* basic machine hardware */ MCFG_CPU_ADD("cpu1", Z80, 2500000) /* 10MHz / 4 = 2.5MHz */ @@ -1077,19 +1077,19 @@ DRIVER_INIT_MEMBER(route16_state,route16a) * *************************************/ -GAME( 1981, route16, 0, route16, route16, route16_state, route16, ROT270, "Tehkan / Sun Electronics (Centuri license)", "Route 16 (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, route16a, route16, route16, route16, route16_state, route16a, ROT270, "Tehkan / Sun Electronics (Centuri license)", "Route 16 (set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, route16c, route16, route16, route16, route16_state, route16c, ROT270, "Tehkan / Sun Electronics (Centuri license)", "Route 16 (set 3, bootleg?)", MACHINE_SUPPORTS_SAVE ) // similar to set 1 but with some protection removed? -GAME( 1981, route16bl,route16, route16, route16, driver_device, 0, ROT270, "bootleg (Leisure and Allied)", "Route 16 (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, routex, route16, routex, route16, driver_device, 0, ROT270, "bootleg", "Route X (bootleg)", MACHINE_SUPPORTS_SAVE ) - -GAME( 1980, speakres, 0, speakres, speakres, driver_device, 0, ROT270, "Sun Electronics", "Speak & Rescue", MACHINE_SUPPORTS_SAVE ) -GAME( 1980, speakresb,speakres, speakres, speakres, driver_device, 0, ROT270, "bootleg", "Speak & Rescue (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1980, stratvox, speakres, stratvox, stratvox, driver_device, 0, ROT270, "Sun Electronics (Taito license)", "Stratovox (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1980, stratvoxa,speakres, stratvox, stratvox, driver_device, 0, ROT270, "Sun Electronics (Taito license)", "Stratovox (set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1980, stratvoxb,speakres, stratvox, stratvox, driver_device, 0, ROT270, "bootleg", "Stratovox (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1980, spacecho, speakres, spacecho, spacecho, driver_device, 0, ROT270, "bootleg (Gayton Games)", "Space Echo (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1980, spacecho2,speakres, spacecho, spacecho, driver_device, 0, ROT270, "bootleg (Gayton Games)", "Space Echo (set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1980, speakhlp, speakres, spacecho, spacecho, driver_device, 0, ROT270, "bootleg", "Speak & Help", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) - -GAME( 1981, ttmahjng, 0, ttmahjng, ttmahjng, driver_device, 0, ROT0, "Taito", "T.T Mahjong", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, route16, 0, route16, route16, route16_state, route16, ROT270, "Tehkan / Sun Electronics (Centuri license)", "Route 16 (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, route16a, route16, route16, route16, route16_state, route16a, ROT270, "Tehkan / Sun Electronics (Centuri license)", "Route 16 (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, route16c, route16, route16, route16, route16_state, route16c, ROT270, "Tehkan / Sun Electronics (Centuri license)", "Route 16 (set 3, bootleg?)", MACHINE_SUPPORTS_SAVE ) // similar to set 1 but with some protection removed? +GAME( 1981, route16bl,route16, route16, route16, route16_state, 0, ROT270, "bootleg (Leisure and Allied)", "Route 16 (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, routex, route16, routex, route16, route16_state, 0, ROT270, "bootleg", "Route X (bootleg)", MACHINE_SUPPORTS_SAVE ) + +GAME( 1980, speakres, 0, speakres, speakres, route16_state, 0, ROT270, "Sun Electronics", "Speak & Rescue", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, speakresb,speakres, speakres, speakres, route16_state, 0, ROT270, "bootleg", "Speak & Rescue (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, stratvox, speakres, stratvox, stratvox, route16_state, 0, ROT270, "Sun Electronics (Taito license)", "Stratovox (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, stratvoxa,speakres, stratvox, stratvox, route16_state, 0, ROT270, "Sun Electronics (Taito license)", "Stratovox (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, stratvoxb,speakres, stratvox, stratvox, route16_state, 0, ROT270, "bootleg", "Stratovox (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, spacecho, speakres, spacecho, spacecho, route16_state, 0, ROT270, "bootleg (Gayton Games)", "Space Echo (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, spacecho2,speakres, spacecho, spacecho, route16_state, 0, ROT270, "bootleg (Gayton Games)", "Space Echo (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, speakhlp, speakres, spacecho, spacecho, route16_state, 0, ROT270, "bootleg", "Speak & Help", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) + +GAME( 1981, ttmahjng, 0, ttmahjng, ttmahjng, route16_state, 0, ROT0, "Taito", "T.T Mahjong", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/rowamet.cpp b/src/mame/drivers/rowamet.cpp index 0112bb652d6..83365b09c6a 100644 --- a/src/mame/drivers/rowamet.cpp +++ b/src/mame/drivers/rowamet.cpp @@ -209,7 +209,7 @@ TIMER_DEVICE_CALLBACK_MEMBER( rowamet_state::timer_a ) output().set_digit_value(++digit, patterns[m_p_ram[m_out_offs++]&15]); } -static MACHINE_CONFIG_START( rowamet, rowamet_state ) +static MACHINE_CONFIG_START( rowamet ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 1888888) MCFG_CPU_PROGRAM_MAP(rowamet_map) @@ -249,4 +249,4 @@ ROM_END /-------------------------------------------------------------------*/ -GAME(198?, heavymtl, 0, rowamet, rowamet, driver_device, 0, ROT0, "Rowamet", "Heavy Metal", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) +GAME(198?, heavymtl, 0, rowamet, rowamet, rowamet_state, 0, ROT0, "Rowamet", "Heavy Metal", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) diff --git a/src/mame/drivers/royalmah.cpp b/src/mame/drivers/royalmah.cpp index a11bbb68aa5..12f3896d85b 100644 --- a/src/mame/drivers/royalmah.cpp +++ b/src/mame/drivers/royalmah.cpp @@ -3342,7 +3342,7 @@ static INPUT_PORTS_START( mjvegasa ) INPUT_PORTS_END -static MACHINE_CONFIG_START( royalmah, royalmah_state ) +static MACHINE_CONFIG_START( royalmah ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 18432000/6) /* 3.072 MHz */ @@ -4997,43 +4997,43 @@ DRIVER_INIT_MEMBER(royalmah_state,janptr96) // the original Janputer (Sanritsu) is not yet dumped, basically Royal Mahjong but non-BET type -GAME( 1981, royalmj, 0, royalmah, royalmah, driver_device, 0, ROT0, "Nichibutsu", "Royal Mahjong (Japan, v1.13)", 0 ) -GAME( 1981?, openmj, royalmj, royalmah, royalmah, driver_device, 0, ROT0, "Sapporo Mechanic", "Open Mahjong [BET] (Japan)", 0 ) -GAME( 1982, royalmah, royalmj, royalmah, royalmah, driver_device, 0, ROT0, "bootleg", "Royal Mahjong (Falcon bootleg, v1.01)", 0 ) -GAME( 1983, janyoup2, royalmj, ippatsu, janyoup2, driver_device, 0, ROT0, "Cosmo Denshi", "Janyou Part II (ver 7.03, July 1 1983)",0 ) -GAME( 1985, tahjong, royalmj, tahjong, tahjong, driver_device, 0, ROT0, "Bally Pond / Nasco", "Tahjong Yakitori (ver. 2-1)", 0 ) // 1985 Jun. 17 -GAME( 1981, janputer, 0, royalmah, royalmah, driver_device, 0, ROT0, "bootleg (Paradise Denshi Ltd. / Mes)", "New Double Bet Mahjong (bootleg of Royal Mahjong) [BET]", 0 ) // MT #05392 -GAME( 1984, rkjanoh2, 0, royalmah, royalmah, driver_device, 0, ROT0, "SNK / Dyna", "Royal King Jang Oh 2 (v4.00 1984 Jun 10th)", MACHINE_NOT_WORKING ) -GAME( 1984, janoh, 0, royalmah, royalmah, driver_device, 0, ROT0, "Toaplan", "Jan Oh (set 1)", MACHINE_NOT_WORKING ) -GAME( 1984, janoha, janoh, janoh, royalmah, driver_device, 0, ROT0, "Toaplan", "Jan Oh (set 2)", MACHINE_NOT_WORKING ) // this one is complete? -GAME( 1985, jansou, 0, jansou, jansou, driver_device, 0, ROT0, "Dyna", "Jansou (set 1)", MACHINE_NOT_WORKING|MACHINE_NO_SOUND ) -GAME( 1985, jansoua, jansou, jansou, jansou, driver_device, 0, ROT0, "Dyna", "Jansou (set 2)", 0 ) -GAME( 1986, dondenmj, 0, dondenmj, majs101b, driver_device, 0, ROT0, "Dyna Electronics", "Don Den Mahjong [BET] (Japan)", 0 ) +GAME( 1981, royalmj, 0, royalmah, royalmah, royalmah_state, 0, ROT0, "Nichibutsu", "Royal Mahjong (Japan, v1.13)", 0 ) +GAME( 1981?, openmj, royalmj, royalmah, royalmah, royalmah_state, 0, ROT0, "Sapporo Mechanic", "Open Mahjong [BET] (Japan)", 0 ) +GAME( 1982, royalmah, royalmj, royalmah, royalmah, royalmah_state, 0, ROT0, "bootleg", "Royal Mahjong (Falcon bootleg, v1.01)", 0 ) +GAME( 1983, janyoup2, royalmj, ippatsu, janyoup2, royalmah_state, 0, ROT0, "Cosmo Denshi", "Janyou Part II (ver 7.03, July 1 1983)",0 ) +GAME( 1985, tahjong, royalmj, tahjong, tahjong, royalmah_state, 0, ROT0, "Bally Pond / Nasco", "Tahjong Yakitori (ver. 2-1)", 0 ) // 1985 Jun. 17 +GAME( 1981, janputer, 0, royalmah, royalmah, royalmah_state, 0, ROT0, "bootleg (Paradise Denshi Ltd. / Mes)", "New Double Bet Mahjong (bootleg of Royal Mahjong) [BET]", 0 ) // MT #05392 +GAME( 1984, rkjanoh2, 0, royalmah, royalmah, royalmah_state, 0, ROT0, "SNK / Dyna", "Royal King Jang Oh 2 (v4.00 1984 Jun 10th)", MACHINE_NOT_WORKING ) +GAME( 1984, janoh, 0, royalmah, royalmah, royalmah_state, 0, ROT0, "Toaplan", "Jan Oh (set 1)", MACHINE_NOT_WORKING ) +GAME( 1984, janoha, janoh, janoh, royalmah, royalmah_state, 0, ROT0, "Toaplan", "Jan Oh (set 2)", MACHINE_NOT_WORKING ) // this one is complete? +GAME( 1985, jansou, 0, jansou, jansou, royalmah_state, 0, ROT0, "Dyna", "Jansou (set 1)", MACHINE_NOT_WORKING|MACHINE_NO_SOUND ) +GAME( 1985, jansoua, jansou, jansou, jansou, royalmah_state, 0, ROT0, "Dyna", "Jansou (set 2)", 0 ) +GAME( 1986, dondenmj, 0, dondenmj, majs101b, royalmah_state, 0, ROT0, "Dyna Electronics", "Don Den Mahjong [BET] (Japan)", 0 ) GAME( 1986, ippatsu, 0, ippatsu, ippatsu, royalmah_state, ippatsu, ROT0, "Public Software / Paradais", "Ippatsu Gyakuten [BET] (Japan)", 0 ) -GAME( 1986, suzume, 0, suzume, suzume, driver_device, 0, ROT0, "Dyna Electronics", "Watashiha Suzumechan (Japan)", 0 ) -GAME( 1986, mjsiyoub, 0, royalmah, royalmah, driver_device, 0, ROT0, "Visco", "Mahjong Shiyou (Japan)", MACHINE_NOT_WORKING ) -GAME( 1986, mjsenka, 0, royalmah, royalmah, driver_device, 0, ROT0, "Visco", "Mahjong Senka (Japan)", MACHINE_NOT_WORKING ) -GAME( 1986, mjyarou, 0, mjyarou, mjyarou, driver_device, 0, ROT0, "Visco / Video System", "Mahjong Yarou [BET] (Japan, set 1)", MACHINE_IMPERFECT_GRAPHICS ) // girls aren't shown -GAME( 1986, mjyarou2, mjyarou, mjyarou, mjyarou, driver_device, 0, ROT0, "Visco / Video System", "Mahjong Yarou [BET] (Japan, set 2)", MACHINE_IMPERFECT_GRAPHICS ) // girls aren't shown -GAME( 1986?, mjclub, 0, mjclub, mjclub, driver_device, 0, ROT0, "Xex", "Mahjong Club [BET] (Japan)", 0 ) -GAME( 1987, mjdiplob, 0, mjdiplob, mjdiplob, driver_device, 0, ROT0, "Dynax", "Mahjong Diplomat [BET] (Japan)", 0 ) -GAME( 1987, tontonb, 0, tontonb, tontonb, driver_device, 0, ROT0, "Dynax", "Tonton [BET] (Japan, set 1)", 0 ) -GAME( 1987, makaijan, 0, makaijan, makaijan, driver_device, 0, ROT0, "Dynax", "Makaijan [BET] (Japan)", 0 ) -GAME( 1988, majs101b, 0, majs101b, majs101b, driver_device, 0, ROT0, "Dynax", "Mahjong Studio 101 [BET] (Japan)", 0 ) -GAME( 1988, mjapinky, 0, mjapinky, mjapinky, driver_device, 0, ROT0, "Dynax", "Almond Pinky [BET] (Japan)", 0 ) -GAME( 1989, mjdejavu, 0, mjdejavu, mjdejavu, driver_device, 0, ROT0, "Dynax", "Mahjong Shinkirou Deja Vu (Japan)", MACHINE_NOT_WORKING ) // MT #00964 -GAME( 1989, mjdejav2, mjdejavu, mjdejavu, mjdejavu, driver_device, 0, ROT0, "Dynax", "Mahjong Shinkirou Deja Vu 2 (Japan)", MACHINE_NOT_WORKING ) -GAME( 1989, mjderngr, 0, mjderngr, mjderngr, driver_device, 0, ROT0, "Dynax", "Mahjong Derringer (Japan)", 0 ) -GAME( 1989, daisyari, 0, daisyari, daisyari, driver_device, 0, ROT0, "Best System", "Daisyarin [BET] (Japan)", 0 ) -GAME( 1990, mjifb, 0, mjifb, mjifb, driver_device, 0, ROT0, "Dynax", "Mahjong If...? [BET]", 0 ) -GAME( 1990, mjifb2, mjifb, mjifb, mjifb, driver_device, 0, ROT0, "Dynax", "Mahjong If...? [BET](2921)", 0 ) -GAME( 1990, mjifb3, mjifb, mjifb, mjifb, driver_device, 0, ROT0, "Dynax", "Mahjong If...? [BET](2931)", 0 ) -GAME( 1991, mjvegasa, 0, mjvegasa, mjvegasa, driver_device, 0, ROT0, "Dynax", "Mahjong Vegas (Japan, unprotected)", 0 ) -GAME( 1991, mjvegas, mjvegasa, mjvegasa, mjvegasa, driver_device, 0, ROT0, "Dynax", "Mahjong Vegas (Japan)", MACHINE_NOT_WORKING ) -GAME( 1992, cafetime, 0, cafetime, cafetime, driver_device, 0, ROT0, "Dynax", "Mahjong Cafe Time", 0 ) -GAME( 1993, cafedoll, 0, mjifb, mjifb, driver_device, 0, ROT0, "Dynax", "Mahjong Cafe Doll (Japan)", MACHINE_NOT_WORKING ) -GAME( 1995, mjtensin, 0, mjtensin, mjtensin, driver_device, 0, ROT0, "Dynax", "Mahjong Tensinhai (Japan)", MACHINE_NOT_WORKING ) +GAME( 1986, suzume, 0, suzume, suzume, royalmah_state, 0, ROT0, "Dyna Electronics", "Watashiha Suzumechan (Japan)", 0 ) +GAME( 1986, mjsiyoub, 0, royalmah, royalmah, royalmah_state, 0, ROT0, "Visco", "Mahjong Shiyou (Japan)", MACHINE_NOT_WORKING ) +GAME( 1986, mjsenka, 0, royalmah, royalmah, royalmah_state, 0, ROT0, "Visco", "Mahjong Senka (Japan)", MACHINE_NOT_WORKING ) +GAME( 1986, mjyarou, 0, mjyarou, mjyarou, royalmah_state, 0, ROT0, "Visco / Video System", "Mahjong Yarou [BET] (Japan, set 1)", MACHINE_IMPERFECT_GRAPHICS ) // girls aren't shown +GAME( 1986, mjyarou2, mjyarou, mjyarou, mjyarou, royalmah_state, 0, ROT0, "Visco / Video System", "Mahjong Yarou [BET] (Japan, set 2)", MACHINE_IMPERFECT_GRAPHICS ) // girls aren't shown +GAME( 1986?, mjclub, 0, mjclub, mjclub, royalmah_state, 0, ROT0, "Xex", "Mahjong Club [BET] (Japan)", 0 ) +GAME( 1987, mjdiplob, 0, mjdiplob, mjdiplob, royalmah_state, 0, ROT0, "Dynax", "Mahjong Diplomat [BET] (Japan)", 0 ) +GAME( 1987, tontonb, 0, tontonb, tontonb, royalmah_state, 0, ROT0, "Dynax", "Tonton [BET] (Japan, set 1)", 0 ) +GAME( 1987, makaijan, 0, makaijan, makaijan, royalmah_state, 0, ROT0, "Dynax", "Makaijan [BET] (Japan)", 0 ) +GAME( 1988, majs101b, 0, majs101b, majs101b, royalmah_state, 0, ROT0, "Dynax", "Mahjong Studio 101 [BET] (Japan)", 0 ) +GAME( 1988, mjapinky, 0, mjapinky, mjapinky, royalmah_state, 0, ROT0, "Dynax", "Almond Pinky [BET] (Japan)", 0 ) +GAME( 1989, mjdejavu, 0, mjdejavu, mjdejavu, royalmah_state, 0, ROT0, "Dynax", "Mahjong Shinkirou Deja Vu (Japan)", MACHINE_NOT_WORKING ) // MT #00964 +GAME( 1989, mjdejav2, mjdejavu, mjdejavu, mjdejavu, royalmah_state, 0, ROT0, "Dynax", "Mahjong Shinkirou Deja Vu 2 (Japan)", MACHINE_NOT_WORKING ) +GAME( 1989, mjderngr, 0, mjderngr, mjderngr, royalmah_state, 0, ROT0, "Dynax", "Mahjong Derringer (Japan)", 0 ) +GAME( 1989, daisyari, 0, daisyari, daisyari, royalmah_state, 0, ROT0, "Best System", "Daisyarin [BET] (Japan)", 0 ) +GAME( 1990, mjifb, 0, mjifb, mjifb, royalmah_state, 0, ROT0, "Dynax", "Mahjong If...? [BET]", 0 ) +GAME( 1990, mjifb2, mjifb, mjifb, mjifb, royalmah_state, 0, ROT0, "Dynax", "Mahjong If...? [BET](2921)", 0 ) +GAME( 1990, mjifb3, mjifb, mjifb, mjifb, royalmah_state, 0, ROT0, "Dynax", "Mahjong If...? [BET](2931)", 0 ) +GAME( 1991, mjvegasa, 0, mjvegasa, mjvegasa, royalmah_state, 0, ROT0, "Dynax", "Mahjong Vegas (Japan, unprotected)", 0 ) +GAME( 1991, mjvegas, mjvegasa, mjvegasa, mjvegasa, royalmah_state, 0, ROT0, "Dynax", "Mahjong Vegas (Japan)", MACHINE_NOT_WORKING ) +GAME( 1992, cafetime, 0, cafetime, cafetime, royalmah_state, 0, ROT0, "Dynax", "Mahjong Cafe Time", 0 ) +GAME( 1993, cafedoll, 0, mjifb, mjifb, royalmah_state, 0, ROT0, "Dynax", "Mahjong Cafe Doll (Japan)", MACHINE_NOT_WORKING ) +GAME( 1995, mjtensin, 0, mjtensin, mjtensin, royalmah_state, 0, ROT0, "Dynax", "Mahjong Tensinhai (Japan)", MACHINE_NOT_WORKING ) GAME( 1996, janptr96, 0, janptr96, janptr96, royalmah_state, janptr96, ROT0, "Dynax", "Janputer '96 (Japan)", 0 ) GAME( 1997, janptrsp, 0, janptr96, janptr96, royalmah_state, janptr96, ROT0, "Dynax", "Janputer Special (Japan)", 0 ) -GAME( 1999, cafebrk, 0, mjifb, mjifb, driver_device, 0, ROT0, "Nakanihon / Dynax", "Mahjong Cafe Break", MACHINE_NOT_WORKING ) -GAME( 1999, cafepara, 0, mjifb, mjifb, driver_device, 0, ROT0, "Techno-Top", "Mahjong Cafe Paradise", MACHINE_NOT_WORKING ) +GAME( 1999, cafebrk, 0, mjifb, mjifb, royalmah_state, 0, ROT0, "Nakanihon / Dynax", "Mahjong Cafe Break", MACHINE_NOT_WORKING ) +GAME( 1999, cafepara, 0, mjifb, mjifb, royalmah_state, 0, ROT0, "Techno-Top", "Mahjong Cafe Paradise", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/rpunch.cpp b/src/mame/drivers/rpunch.cpp index 81c7feeb113..2dede3b784f 100644 --- a/src/mame/drivers/rpunch.cpp +++ b/src/mame/drivers/rpunch.cpp @@ -492,7 +492,7 @@ GFXDECODE_END * *************************************/ -static MACHINE_CONFIG_START( rpunch, rpunch_state ) +static MACHINE_CONFIG_START( rpunch ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, MASTER_CLOCK/2) @@ -537,7 +537,7 @@ MACHINE_CONFIG_END // c+p of above for now, bootleg hw, things need verifying -static MACHINE_CONFIG_START( svolleybl, rpunch_state ) +static MACHINE_CONFIG_START( svolleybl ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, MASTER_CLOCK/2) @@ -839,12 +839,12 @@ DRIVER_INIT_MEMBER(rpunch_state,svolley) * *************************************/ -GAME( 1987, rabiolep, 0, rpunch, rabiolep, rpunch_state, rabiolep, ROT0, "V-System Co.", "Rabio Lepus (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL ) -GAME( 1987, rpunch, rabiolep, rpunch, rpunch, rpunch_state, rabiolep, ROT0, "V-System Co. (Bally/Midway/Sente license)", "Rabbit Punch (US)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL ) -GAME( 1989, svolley, 0, svolley, svolley, rpunch_state, svolley, ROT0, "V-System Co.", "Super Volleyball (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL ) -GAME( 1989, svolleyk, svolley, svolley, svolley, rpunch_state, svolley, ROT0, "V-System Co.", "Super Volleyball (Korea)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL ) -GAME( 1989, svolleyu, svolley, svolley, svolley, rpunch_state, svolley, ROT0, "V-System Co. (Data East license)", "Super Volleyball (US)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL ) +GAME( 1987, rabiolep, 0, rpunch, rabiolep, rpunch_state, rabiolep, ROT0, "V-System Co.", "Rabio Lepus (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL ) +GAME( 1987, rpunch, rabiolep, rpunch, rpunch, rpunch_state, rabiolep, ROT0, "V-System Co. (Bally/Midway/Sente license)", "Rabbit Punch (US)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL ) +GAME( 1989, svolley, 0, svolley, svolley, rpunch_state, svolley, ROT0, "V-System Co.", "Super Volleyball (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL ) +GAME( 1989, svolleyk, svolley, svolley, svolley, rpunch_state, svolley, ROT0, "V-System Co.", "Super Volleyball (Korea)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL ) +GAME( 1989, svolleyu, svolley, svolley, svolley, rpunch_state, svolley, ROT0, "V-System Co. (Data East license)", "Super Volleyball (US)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL ) // video registers are changed, and there's some kind of RAM at 090xxx, possible a different sprite scheme for the bootleg (even if the original is intact) // the sound system seems to be ripped from the later Power Spikes (see aerofgt.c) -GAME( 1991, svolleybl,svolley, svolleybl,svolley, rpunch_state, svolley, ROT0, "bootleg", "Super Volleyball (bootleg)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_NO_COCKTAIL ) // aka 1991 Spikes? +GAME( 1991, svolleybl, svolley, svolleybl, svolley, rpunch_state, svolley, ROT0, "bootleg", "Super Volleyball (bootleg)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_NO_COCKTAIL ) // aka 1991 Spikes? diff --git a/src/mame/drivers/rsc55.cpp b/src/mame/drivers/rsc55.cpp index 1a5cd15f49d..ac8586e542f 100644 --- a/src/mame/drivers/rsc55.cpp +++ b/src/mame/drivers/rsc55.cpp @@ -64,7 +64,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( sc55_io, AS_IO, 16, sc55_state ) ADDRESS_MAP_END -static MACHINE_CONFIG_START( sc55, sc55_state ) +static MACHINE_CONFIG_START( sc55 ) MCFG_CPU_ADD( "maincpu", P8098, XTAL_20MHz ) // probably not? MCFG_CPU_PROGRAM_MAP( sc55_map ) MCFG_CPU_IO_MAP( sc55_io ) @@ -80,4 +80,4 @@ ROM_START( sc55 ) ROM_LOAD( "roland-gss.c_r15209281.ic26", 0x200000, 0x100000, CRC(e21ebc04) SHA1(7454b817778179806f3f9d1985b3a2ef67ace76f) ) ROM_END -CONS( 1991, sc55, 0, 0, sc55, sc55, driver_device, 0, "Roland", "Sound Canvas SC-55", MACHINE_NOT_WORKING|MACHINE_NO_SOUND ) +CONS( 1991, sc55, 0, 0, sc55, sc55, sc55_state, 0, "Roland", "Sound Canvas SC-55", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/rt1715.cpp b/src/mame/drivers/rt1715.cpp index 241f2d5648e..4735559109a 100644 --- a/src/mame/drivers/rt1715.cpp +++ b/src/mame/drivers/rt1715.cpp @@ -29,22 +29,28 @@ class rt1715_state : public driver_device { public: rt1715_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) , - m_maincpu(*this, "maincpu"), - m_ram(*this, RAM_TAG) { } + : driver_device(mconfig, type, tag) + , m_maincpu(*this, "maincpu") + , m_ram(*this, RAM_TAG) + { + } - int m_led1_val; - int m_led2_val; DECLARE_WRITE8_MEMBER(rt1715_floppy_enable); DECLARE_READ8_MEMBER(k7658_led1_r); DECLARE_READ8_MEMBER(k7658_led2_r); DECLARE_READ8_MEMBER(k7658_data_r); DECLARE_WRITE8_MEMBER(k7658_data_w); DECLARE_WRITE8_MEMBER(rt1715_rom_disable); - virtual void machine_start() override; - virtual void machine_reset() override; DECLARE_PALETTE_INIT(rt1715); I8275_DRAW_CHARACTER_MEMBER( crtc_display_pixels ); + +protected: + virtual void machine_start() override; + virtual void machine_reset() override; + +private: + int m_led1_val; + int m_led2_val; required_device m_maincpu; required_device m_ram; }; @@ -266,7 +272,7 @@ static const z80_daisy_config rt1715_daisy_chain[] = { nullptr } }; -static MACHINE_CONFIG_START( rt1715, rt1715_state ) +static MACHINE_CONFIG_START( rt1715 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_2_4576MHz) MCFG_CPU_PROGRAM_MAP(rt1715_mem) @@ -372,7 +378,7 @@ ROM_END GAME DRIVERS ***************************************************************************/ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1986, rt1715, 0, 0, rt1715, k7658, driver_device, 0, "Robotron", "Robotron PC-1715", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW) -COMP( 1986, rt1715lc, rt1715, 0, rt1715, k7658, driver_device, 0, "Robotron", "Robotron PC-1715 (latin/cyrillic)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW) -COMP( 1986, rt1715w, rt1715, 0, rt1715w, k7658, driver_device, 0, "Robotron", "Robotron PC-1715W", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1986, rt1715, 0, 0, rt1715, k7658, rt1715_state, 0, "Robotron", "Robotron PC-1715", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW ) +COMP( 1986, rt1715lc, rt1715, 0, rt1715, k7658, rt1715_state, 0, "Robotron", "Robotron PC-1715 (latin/cyrillic)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW ) +COMP( 1986, rt1715w, rt1715, 0, rt1715w, k7658, rt1715_state, 0, "Robotron", "Robotron PC-1715W", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW ) diff --git a/src/mame/drivers/runaway.cpp b/src/mame/drivers/runaway.cpp index 30080a0aabf..dad1d26bba8 100644 --- a/src/mame/drivers/runaway.cpp +++ b/src/mame/drivers/runaway.cpp @@ -327,7 +327,7 @@ static GFXDECODE_START( qwak ) GFXDECODE_END -static MACHINE_CONFIG_START( runaway, runaway_state ) +static MACHINE_CONFIG_START( runaway ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, 12096000 / 8) /* ? */ @@ -414,5 +414,5 @@ ROM_START( qwak ) ROM_END -GAME( 1982, qwak, 0, qwak, qwak, driver_device, 0, ROT270, "Atari", "Qwak (prototype)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, runaway, 0, runaway, runaway, driver_device, 0, ROT0, "Atari", "Runaway (prototype)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, qwak, 0, qwak, qwak, runaway_state, 0, ROT270, "Atari", "Qwak (prototype)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, runaway, 0, runaway, runaway, runaway_state, 0, ROT0, "Atari", "Runaway (prototype)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/rungun.cpp b/src/mame/drivers/rungun.cpp index 774cda18314..737defe7ff4 100644 --- a/src/mame/drivers/rungun.cpp +++ b/src/mame/drivers/rungun.cpp @@ -384,7 +384,7 @@ void rungun_state::machine_reset() m_sound_status = 0; } -static MACHINE_CONFIG_START( rng, rungun_state ) +static MACHINE_CONFIG_START( rng ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 16000000) @@ -950,18 +950,18 @@ ROM_END // it appears that all other regions were switchable from the first release, so use the 'A' code. // these are running WITHOUT the demux adapter, on a single screen -GAME( 1993, rungun, 0, rng, rng, driver_device, 0, ROT0, "Konami", "Run and Gun (ver EAA 1993 10.8)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_SOUND ) -GAME( 1993, runguna, rungun, rng, rng, driver_device, 0, ROT0, "Konami", "Run and Gun (ver EAA 1993 10.4)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_SOUND ) -GAME( 1993, rungunb, rungun, rng, rng, driver_device, 0, ROT0, "Konami", "Run and Gun (ver EAA 1993 9.10, prototype?)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_SOUND ) -GAME( 1993, rungunua, rungun, rng, rng, driver_device, 0, ROT0, "Konami", "Run and Gun (ver UBA 1993 10.8)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_SOUND ) -GAME( 1993, slmdunkj, rungun, rng, rng, driver_device, 0, ROT0, "Konami", "Slam Dunk (ver JAA 1993 10.8)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_SOUND ) +GAME( 1993, rungun, 0, rng, rng, rungun_state, 0, ROT0, "Konami", "Run and Gun (ver EAA 1993 10.8)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_SOUND ) +GAME( 1993, runguna, rungun, rng, rng, rungun_state, 0, ROT0, "Konami", "Run and Gun (ver EAA 1993 10.4)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_SOUND ) +GAME( 1993, rungunb, rungun, rng, rng, rungun_state, 0, ROT0, "Konami", "Run and Gun (ver EAA 1993 9.10, prototype?)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_SOUND ) +GAME( 1993, rungunua, rungun, rng, rng, rungun_state, 0, ROT0, "Konami", "Run and Gun (ver UBA 1993 10.8)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_SOUND ) +GAME( 1993, slmdunkj, rungun, rng, rng, rungun_state, 0, ROT0, "Konami", "Slam Dunk (ver JAA 1993 10.8)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_SOUND ) // these sets have the demux adapter connected, and output to 2 screens (as the adapter represents a physical hardware difference, albeit a minor one, use clone sets) -GAMEL( 1993, rungund, rungun, rng_dual, rng_dual, driver_device, 0, ROT0, "Konami", "Run and Gun (ver EAA 1993 10.8) (dual screen with demux adapter)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_SOUND, layout_rungun_dual ) -GAMEL( 1993, rungunad, rungun, rng_dual, rng_dual, driver_device, 0, ROT0, "Konami", "Run and Gun (ver EAA 1993 10.4) (dual screen with demux adapter)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_SOUND, layout_rungun_dual ) -GAMEL( 1993, rungunbd, rungun, rng_dual, rng_dual, driver_device, 0, ROT0, "Konami", "Run and Gun (ver EAA 1993 9.10, prototype?) (dual screen with demux adapter)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_SOUND, layout_rungun_dual ) -GAMEL( 1993, rungunuad,rungun, rng_dual, rng_dual, driver_device, 0, ROT0, "Konami", "Run and Gun (ver UBA 1993 10.8) (dual screen with demux adapter)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_SOUND, layout_rungun_dual ) -GAMEL( 1993, slmdunkjd,rungun, rng_dual, rng_dual, driver_device, 0, ROT0, "Konami", "Slam Dunk (ver JAA 1993 10.8) (dual screen with demux adapter)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_SOUND, layout_rungun_dual ) +GAMEL( 1993, rungund, rungun, rng_dual, rng_dual, rungun_state, 0, ROT0, "Konami", "Run and Gun (ver EAA 1993 10.8) (dual screen with demux adapter)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_SOUND, layout_rungun_dual ) +GAMEL( 1993, rungunad, rungun, rng_dual, rng_dual, rungun_state, 0, ROT0, "Konami", "Run and Gun (ver EAA 1993 10.4) (dual screen with demux adapter)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_SOUND, layout_rungun_dual ) +GAMEL( 1993, rungunbd, rungun, rng_dual, rng_dual, rungun_state, 0, ROT0, "Konami", "Run and Gun (ver EAA 1993 9.10, prototype?) (dual screen with demux adapter)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_SOUND, layout_rungun_dual ) +GAMEL( 1993, rungunuad,rungun, rng_dual, rng_dual, rungun_state, 0, ROT0, "Konami", "Run and Gun (ver UBA 1993 10.8) (dual screen with demux adapter)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_SOUND, layout_rungun_dual ) +GAMEL( 1993, slmdunkjd,rungun, rng_dual, rng_dual, rungun_state, 0, ROT0, "Konami", "Slam Dunk (ver JAA 1993 10.8) (dual screen with demux adapter)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_SOUND, layout_rungun_dual ) // this set has no dipswitches to select single screen mode (they're not even displayed in test menu) it's twin cabinet ONLY -GAMEL( 1993, rungunud, rungun, rng_dual, rng_nodip, driver_device, 0, ROT0, "Konami", "Run and Gun (ver UAB 1993 10.12, dedicated twin cabinet)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_SOUND, layout_rungun_dual ) +GAMEL( 1993, rungunud, rungun, rng_dual, rng_nodip, rungun_state, 0, ROT0, "Konami", "Run and Gun (ver UAB 1993 10.12, dedicated twin cabinet)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_SOUND, layout_rungun_dual ) diff --git a/src/mame/drivers/rvoice.cpp b/src/mame/drivers/rvoice.cpp index 2b3b3ffb79b..62fdcfeab43 100644 --- a/src/mame/drivers/rvoice.cpp +++ b/src/mame/drivers/rvoice.cpp @@ -86,7 +86,7 @@ public: DECLARE_WRITE8_MEMBER(main_hd63701_internal_registers_w); DECLARE_DRIVER_INIT(rvoicepc); virtual void machine_reset() override; - DECLARE_WRITE8_MEMBER(null_kbd_put); + void null_kbd_put(u8 data); required_device m_maincpu; }; @@ -354,11 +354,11 @@ INPUT_PORTS_END /****************************************************************************** Machine Drivers ******************************************************************************/ -WRITE8_MEMBER(rvoice_state::null_kbd_put) +void rvoice_state::null_kbd_put(u8 data) { } -static MACHINE_CONFIG_START( rvoicepc, rvoice_state ) +static MACHINE_CONFIG_START( rvoicepc ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", HD63701, XTAL_7_3728MHz) MCFG_CPU_PROGRAM_MAP(hd63701_main_mem) @@ -377,7 +377,7 @@ static MACHINE_CONFIG_START( rvoicepc, rvoice_state ) /* sound hardware */ MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0) - MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(rvoice_state, null_kbd_put)) + MCFG_GENERIC_TERMINAL_KEYBOARD_CB(PUT(rvoice_state, null_kbd_put)) MACHINE_CONFIG_END @@ -401,5 +401,5 @@ ROM_END Drivers ******************************************************************************/ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1988?, rvoicepc, 0, 0, rvoicepc, rvoicepc, rvoice_state, rvoicepc, "Adaptive Communication Systems", "Realvoice PC", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1988?, rvoicepc, 0, 0, rvoicepc, rvoicepc, rvoice_state, rvoicepc, "Adaptive Communication Systems", "Realvoice PC", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/rx78.cpp b/src/mame/drivers/rx78.cpp index 10d428a1446..d201c1db507 100644 --- a/src/mame/drivers/rx78.cpp +++ b/src/mame/drivers/rx78.cpp @@ -451,7 +451,7 @@ static GFXDECODE_START( rx78 ) GFXDECODE_END -static MACHINE_CONFIG_START( rx78, rx78_state ) +static MACHINE_CONFIG_START( rx78 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80, MASTER_CLOCK/7) // unknown divider MCFG_CPU_PROGRAM_MAP(rx78_mem) diff --git a/src/mame/drivers/s11.cpp b/src/mame/drivers/s11.cpp index 5a0a2df0658..f574e3b9c71 100644 --- a/src/mame/drivers/s11.cpp +++ b/src/mame/drivers/s11.cpp @@ -379,7 +379,7 @@ DRIVER_INIT_MEMBER( s11_state, s11 ) m_irq_active = false; } -static MACHINE_CONFIG_START( s11, s11_state ) +static MACHINE_CONFIG_START( s11 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6802, XTAL_4MHz) MCFG_CPU_PROGRAM_MAP(s11_main_map) @@ -684,15 +684,15 @@ ROM_END GAME( 1986, grand_l4, 0, s11, s11, s11_state, s11, ROT0, "Williams", "Grand Lizard (L-4)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) GAME( 1986, grand_l3, grand_l4, s11, s11, s11_state, s11, ROT0, "Williams", "Grand Lizard (L-3)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) -GAME( 1986, hs_l4, 0, s11, s11, s11_state, s11, ROT0, "Williams", "High Speed (L-4)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) -GAME( 1986, hs_l3, hs_l4, s11, s11, s11_state, s11, ROT0, "Williams", "High Speed (L-3)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) -GAME( 1986, rdkng_l4, 0, s11, s11, s11_state, s11, ROT0, "Williams", "Road Kings (L-4)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) -GAME( 1986, rdkng_l1, rdkng_l4, s11, s11, s11_state, s11, ROT0, "Williams", "Road Kings (L-1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) -GAME( 1986, rdkng_l2, rdkng_l4, s11, s11, s11_state, s11, ROT0, "Williams", "Road Kings (L-2)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) -GAME( 1986, rdkng_l3, rdkng_l4, s11, s11, s11_state, s11, ROT0, "Williams", "Road Kings (L-3)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) +GAME( 1986, hs_l4, 0, s11, s11, s11_state, s11, ROT0, "Williams", "High Speed (L-4)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) +GAME( 1986, hs_l3, hs_l4, s11, s11, s11_state, s11, ROT0, "Williams", "High Speed (L-3)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) +GAME( 1986, rdkng_l4, 0, s11, s11, s11_state, s11, ROT0, "Williams", "Road Kings (L-4)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) +GAME( 1986, rdkng_l1, rdkng_l4, s11, s11, s11_state, s11, ROT0, "Williams", "Road Kings (L-1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) +GAME( 1986, rdkng_l2, rdkng_l4, s11, s11, s11_state, s11, ROT0, "Williams", "Road Kings (L-2)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) +GAME( 1986, rdkng_l3, rdkng_l4, s11, s11, s11_state, s11, ROT0, "Williams", "Road Kings (L-3)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) GAME( 1986, tts_l2, 0, s11, s11, s11_state, s11, ROT0, "Williams", "Tic-Tac-Strike (Shuffle) (L-2)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND) GAME( 1986, tts_l1, tts_l2, s11, s11, s11_state, s11, ROT0, "Williams", "Tic-Tac-Strike (Shuffle) (L-1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -GAME( 1987, gmine_l2, 0, s11, s11, s11_state, s11, ROT0, "Williams", "Gold Mine (Shuffle) (L-2)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) -GAME( 1987, tdawg_l1, 0, s11, s11, s11_state, s11, ROT0, "Williams", "Top Dawg (Shuffle) (L-1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) -GAME( 1987, shfin_l1, 0, s11, s11, s11_state, s11, ROT0, "Williams", "Shuffle Inn (Shuffle) (L-1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) +GAME( 1987, gmine_l2, 0, s11, s11, s11_state, s11, ROT0, "Williams", "Gold Mine (Shuffle) (L-2)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) +GAME( 1987, tdawg_l1, 0, s11, s11, s11_state, s11, ROT0, "Williams", "Top Dawg (Shuffle) (L-1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) +GAME( 1987, shfin_l1, 0, s11, s11, s11_state, s11, ROT0, "Williams", "Shuffle Inn (Shuffle) (L-1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) diff --git a/src/mame/drivers/s11a.cpp b/src/mame/drivers/s11a.cpp index 97c172ba119..48ba3c9d55b 100644 --- a/src/mame/drivers/s11a.cpp +++ b/src/mame/drivers/s11a.cpp @@ -171,7 +171,7 @@ DRIVER_INIT_MEMBER( s11a_state, s11a ) s11_state::init_s11(); } -static MACHINE_CONFIG_START( s11a, s11a_state ) +static MACHINE_CONFIG_START( s11a ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6808, XTAL_4MHz) MCFG_CPU_PROGRAM_MAP(s11a_main_map) @@ -456,15 +456,15 @@ ROM_START(pb_p4) ROM_LOAD("pbot_u19.l1", 0x18000, 0x8000, CRC(40eb4e9f) SHA1(07b0557b35599a2dd5aa66a306fbbe8f50eed998)) ROM_END -GAME(1987, f14_l1, 0, s11a, s11a, s11a_state, s11a, ROT0, "Williams", "F-14 Tomcat (L-1)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1987, f14_p3, f14_l1, s11a, s11a, s11a_state, s11a, ROT0, "Williams", "F-14 Tomcat (P-3)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1987, f14_p4, f14_l1, s11a, s11a, s11a_state, s11a, ROT0, "Williams", "F-14 Tomcat (P-4)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1987, f14_p5, f14_l1, s11a, s11a, s11a_state, s11a, ROT0, "Williams", "F-14 Tomcat (P-5)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1987, fire_l3, 0, s11a, s11a, s11a_state, s11a, ROT0, "Williams", "Fire! (L-3)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1987, fire_l2, fire_l3,s11a, s11a, s11a_state, s11a, ROT0, "Williams", "Fire! (L-2)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1987, milln_l3, 0, s11a, s11a, s11a_state, s11a, ROT0, "Williams", "Millionaire (L-3)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1986, pb_l5, 0, s11a, s11a, s11a_state, s11a, ROT0, "Williams", "Pin-Bot (L-5)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1986, pb_l1, pb_l5, s11a, s11a, s11a_state, s11a, ROT0, "Williams", "Pin-Bot (L-1)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1986, pb_l2, pb_l5, s11a, s11a, s11a_state, s11a, ROT0, "Williams", "Pin-Bot (L-2)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1986, pb_l3, pb_l5, s11a, s11a, s11a_state, s11a, ROT0, "Williams", "Pin-Bot (L-3)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1986, pb_p4, pb_l5, s11a, s11a, s11a_state, s11a, ROT0, "Williams", "Pin-Bot (P-4)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1987, f14_l1, 0, s11a, s11a, s11a_state, s11a, ROT0, "Williams", "F-14 Tomcat (L-1)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1987, f14_p3, f14_l1, s11a, s11a, s11a_state, s11a, ROT0, "Williams", "F-14 Tomcat (P-3)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1987, f14_p4, f14_l1, s11a, s11a, s11a_state, s11a, ROT0, "Williams", "F-14 Tomcat (P-4)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1987, f14_p5, f14_l1, s11a, s11a, s11a_state, s11a, ROT0, "Williams", "F-14 Tomcat (P-5)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1987, fire_l3, 0, s11a, s11a, s11a_state, s11a, ROT0, "Williams", "Fire! (L-3)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1987, fire_l2, fire_l3, s11a, s11a, s11a_state, s11a, ROT0, "Williams", "Fire! (L-2)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1987, milln_l3, 0, s11a, s11a, s11a_state, s11a, ROT0, "Williams", "Millionaire (L-3)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1986, pb_l5, 0, s11a, s11a, s11a_state, s11a, ROT0, "Williams", "Pin-Bot (L-5)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1986, pb_l1, pb_l5, s11a, s11a, s11a_state, s11a, ROT0, "Williams", "Pin-Bot (L-1)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1986, pb_l2, pb_l5, s11a, s11a, s11a_state, s11a, ROT0, "Williams", "Pin-Bot (L-2)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1986, pb_l3, pb_l5, s11a, s11a, s11a_state, s11a, ROT0, "Williams", "Pin-Bot (L-3)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1986, pb_p4, pb_l5, s11a, s11a, s11a_state, s11a, ROT0, "Williams", "Pin-Bot (P-4)", MACHINE_IS_SKELETON_MECHANICAL) diff --git a/src/mame/drivers/s11b.cpp b/src/mame/drivers/s11b.cpp index 9504203e5ea..f8a278cc275 100644 --- a/src/mame/drivers/s11b.cpp +++ b/src/mame/drivers/s11b.cpp @@ -250,7 +250,7 @@ DRIVER_INIT_MEMBER( s11b_state, s11b_invert ) m_invert = true; } -static MACHINE_CONFIG_START( s11b, s11b_state ) +static MACHINE_CONFIG_START( s11b ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6808, XTAL_4MHz) MCFG_CPU_PROGRAM_MAP(s11b_main_map) @@ -1067,57 +1067,57 @@ ROM_START(whirl_l2) ROM_LOAD("whir_u20.l1", 0x20000, 0x8000, CRC(713007af) SHA1(3ac88bb905ccf8e227bbf3c102c74e3d2446cc88)) ROM_END -GAME(1989, bcats_l5, 0, s11b, s11b, s11b_state, s11b_invert, ROT0, "Williams", "Bad Cats (L-5)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1989, bcats_l2, bcats_l5, s11b, s11b, s11b_state, s11b_invert, ROT0, "Williams", "Bad Cats (LA-2)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1988, bnzai_l3, 0, s11b, s11b, s11b_state, s11b, ROT0, "Williams", "Banzai Run (L-3)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1988, bnzai_g3, bnzai_l3, s11b, s11b, s11b_state, s11b, ROT0, "Williams", "Banzai Run (L-3) Germany", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1988, bnzai_l1, bnzai_l3, s11b, s11b, s11b_state, s11b, ROT0, "Williams", "Banzai Run (L-1)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1988, bnzai_pa, bnzai_l3, s11b, s11b, s11b_state, s11b, ROT0, "Williams", "Banzai Run (P-A)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1987, bguns_l8, 0, s11b, s11b, s11b_state, s11b, ROT0, "Williams", "Big Guns (L-8)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1987, bguns_l7, bguns_l8, s11b, s11b, s11b_state, s11b, ROT0, "Williams", "Big Guns (L-7)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1987, bguns_la, bguns_l8, s11b, s11b, s11b_state, s11b, ROT0, "Williams", "Big Guns (L-A)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1987, bguns_p1, bguns_l8, s11b, s11b, s11b_state, s11b, ROT0, "Williams", "Big Guns (P-1)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1989, bk2k_l4, 0, s11b, s11b, s11b_state, s11b_invert, ROT0, "Williams", "Black Knight 2000 (L-4)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1989, bk2k_lg1, bk2k_l4, s11b, s11b, s11b_state, s11b_invert, ROT0, "Williams", "Black Knight 2000 (LG-1)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1989, bk2k_lg3, bk2k_l4, s11b, s11b, s11b_state, s11b_invert, ROT0, "Williams", "Black Knight 2000 (LG-3)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1989, bk2k_pu1, bk2k_l4, s11b, s11b, s11b_state, s11b_invert, ROT0, "Williams", "Black Knight 2000 (PU-1)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1989, bk2k_la2, bk2k_l4, s11b, s11b, s11b_state, s11b_invert, ROT0, "Williams", "Black Knight 2000 (LA-2)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1989, bk2k_pa7, bk2k_l4, s11b, s11b, s11b_state, s11b_invert, ROT0, "Williams", "Black Knight 2000 (PA-7)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1989, bk2k_pa5, bk2k_l4, s11b, s11b, s11b_state, s11b_invert, ROT0, "Williams", "Black Knight 2000 (PA-5)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1988, cycln_l5, 0, s11b, s11b, s11b_state, s11b, ROT0, "Williams", "Cyclone (L-5)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1988, cycln_l4, cycln_l5, s11b, s11b, s11b_state, s11b, ROT0, "Williams", "Cyclone (L-4)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1988, cycln_l1, cycln_l5, s11b, s11b, s11b_state, s11b, ROT0, "Williams", "Cyclone (L-1)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1988, esha_la3, 0, s11b, s11b, s11b_state, s11b_invert, ROT0, "Williams", "Earthshaker (LA-3)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1989, esha_ma3, esha_la3, s11b, s11b, s11b_state, s11b_invert, ROT0, "Williams", "Earthshaker (Metallica) (LA-3)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1989, esha_pr4, esha_la3, s11b, s11b, s11b_state, s11b_invert, ROT0, "Williams", "Earthshaker (Family version) (PR-4)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1988, esha_lg1, esha_la3, s11b, s11b, s11b_state, s11b_invert, ROT0, "Williams", "Earthshaker (German) (LG-1)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1988, esha_lg2, esha_la3, s11b, s11b, s11b_state, s11b_invert, ROT0, "Williams", "Earthshaker (German) (LG-2)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1988, esha_la1, esha_la3, s11b, s11b, s11b_state, s11b_invert, ROT0, "Williams", "Earthshaker (LA-1)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1988, esha_pa1, esha_la3, s11b, s11b, s11b_state, s11b_invert, ROT0, "Williams", "Earthshaker (Prototype) (PA-1)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1989, eatpm_l4, 0, s11b, s11b, s11b_state, s11b_invert, ROT0, "Bally", "Elvira and the Party Monsters (LA-4)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1989, eatpm_l1, eatpm_l4, s11b, s11b, s11b_state, s11b_invert, ROT0, "Bally", "Elvira and the Party Monsters (LA-1)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1989, eatpm_l2, eatpm_l4, s11b, s11b, s11b_state, s11b_invert, ROT0, "Bally", "Elvira and the Party Monsters (LA-2)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1989, eatpm_4g, eatpm_l4, s11b, s11b, s11b_state, s11b_invert, ROT0, "Bally", "Elvira and the Party Monsters (LG-4)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1989, eatpm_4u, eatpm_l4, s11b, s11b, s11b_state, s11b_invert, ROT0, "Bally", "Elvira and the Party Monsters (LU-4)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1989, eatpm_p7, eatpm_l4, s11b, s11b, s11b_state, s11b_invert, ROT0, "Bally", "Elvira and the Party Monsters (PA-7)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1989, jokrz_l6, 0, s11b, s11b, s11b_state, s11b_invert, ROT0, "Williams", "Jokerz! (L-6)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1989, jokrz_l3, jokrz_l6, s11b, s11b, s11b_state, s11b_invert, ROT0, "Williams", "Jokerz! (L-3)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1989, mousn_l4, 0, s11b, s11b, s11b_state, s11b_invert, ROT0, "Bally", "Mousin' Around! (LA-4)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1989, mousn_l1, mousn_l4, s11b, s11b, s11b_state, s11b_invert, ROT0, "Bally", "Mousin' Around! (LA-1)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1989, mousn_lu, mousn_l4, s11b, s11b, s11b_state, s11b_invert, ROT0, "Bally", "Mousin' Around! (LU-1)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1989, mousn_lx, mousn_l4, s11b, s11b, s11b_state, s11b_invert, ROT0, "Bally", "Mousin' Around! (LX-1)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1989, polic_l4, 0, s11b, s11b, s11b_state, s11b_invert, ROT0, "Williams", "Police Force (LA-4)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1989, polic_l3, polic_l4, s11b, s11b, s11b_state, s11b_invert, ROT0, "Williams", "Police Force (LA-3)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1989, polic_l2, polic_l4, s11b, s11b, s11b_state, s11b_invert, ROT0, "Williams", "Police Force (LA-2)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1988, spstn_l5, 0, s11b, s11b, s11b_state, s11b, ROT0, "Williams", "Space Station (L-5)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1988, swrds_l2, 0, s11b, s11b, s11b_state, s11b, ROT0, "Williams", "Swords of Fury (L-2)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1988, swrds_l1, swrds_l2, s11b, s11b, s11b_state, s11b, ROT0, "Williams", "Swords of Fury (L-1)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1988, taxi_l4, 0, s11b, s11b, s11b_state, s11b_invert, ROT0, "Williams", "Taxi (Lola) (L-4)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1988, taxi_l3, taxi_l4, s11b, s11b, s11b_state, s11b_invert, ROT0, "Williams", "Taxi (Marilyn) (L-3)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1988, taxi_lu1, taxi_l4, s11b, s11b, s11b_state, s11b_invert, ROT0, "Williams", "Taxi (Marilyn) (LU-1)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1988, taxi_lg1, taxi_l4, s11b, s11b, s11b_state, s11b_invert, ROT0, "Williams", "Taxi (Marilyn) (L-1) Germany", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1988, taxi_p5, taxi_l4, s11b, s11b, s11b_state, s11b_invert, ROT0, "Williams", "Taxi (P-5)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1989, tsptr_l3, 0, s11b, s11b, s11b_state, s11b_invert, ROT0, "Bally", "Transporter the Rescue (L-3)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1990, whirl_l3, 0, s11b, s11b, s11b_state, s11b_invert, ROT0, "Williams", "Whirlwind (L-3)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1990, whirl_l2, whirl_l3, s11b, s11b, s11b_state, s11b_invert, ROT0, "Williams", "Whirlwind (L-2)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1990, whirl_lg3, whirl_l3, s11b, s11b, s11b_state, s11b_invert, ROT0, "Williams", "Whirlwind (LG-3)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1989, bcats_l5, 0, s11b, s11b, s11b_state, s11b_invert, ROT0, "Williams", "Bad Cats (L-5)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1989, bcats_l2, bcats_l5, s11b, s11b, s11b_state, s11b_invert, ROT0, "Williams", "Bad Cats (LA-2)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1988, bnzai_l3, 0, s11b, s11b, s11b_state, s11b, ROT0, "Williams", "Banzai Run (L-3)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1988, bnzai_g3, bnzai_l3, s11b, s11b, s11b_state, s11b, ROT0, "Williams", "Banzai Run (L-3) Germany", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1988, bnzai_l1, bnzai_l3, s11b, s11b, s11b_state, s11b, ROT0, "Williams", "Banzai Run (L-1)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1988, bnzai_pa, bnzai_l3, s11b, s11b, s11b_state, s11b, ROT0, "Williams", "Banzai Run (P-A)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1987, bguns_l8, 0, s11b, s11b, s11b_state, s11b, ROT0, "Williams", "Big Guns (L-8)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1987, bguns_l7, bguns_l8, s11b, s11b, s11b_state, s11b, ROT0, "Williams", "Big Guns (L-7)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1987, bguns_la, bguns_l8, s11b, s11b, s11b_state, s11b, ROT0, "Williams", "Big Guns (L-A)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1987, bguns_p1, bguns_l8, s11b, s11b, s11b_state, s11b, ROT0, "Williams", "Big Guns (P-1)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1989, bk2k_l4, 0, s11b, s11b, s11b_state, s11b_invert, ROT0, "Williams", "Black Knight 2000 (L-4)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1989, bk2k_lg1, bk2k_l4, s11b, s11b, s11b_state, s11b_invert, ROT0, "Williams", "Black Knight 2000 (LG-1)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1989, bk2k_lg3, bk2k_l4, s11b, s11b, s11b_state, s11b_invert, ROT0, "Williams", "Black Knight 2000 (LG-3)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1989, bk2k_pu1, bk2k_l4, s11b, s11b, s11b_state, s11b_invert, ROT0, "Williams", "Black Knight 2000 (PU-1)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1989, bk2k_la2, bk2k_l4, s11b, s11b, s11b_state, s11b_invert, ROT0, "Williams", "Black Knight 2000 (LA-2)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1989, bk2k_pa7, bk2k_l4, s11b, s11b, s11b_state, s11b_invert, ROT0, "Williams", "Black Knight 2000 (PA-7)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1989, bk2k_pa5, bk2k_l4, s11b, s11b, s11b_state, s11b_invert, ROT0, "Williams", "Black Knight 2000 (PA-5)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1988, cycln_l5, 0, s11b, s11b, s11b_state, s11b, ROT0, "Williams", "Cyclone (L-5)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1988, cycln_l4, cycln_l5, s11b, s11b, s11b_state, s11b, ROT0, "Williams", "Cyclone (L-4)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1988, cycln_l1, cycln_l5, s11b, s11b, s11b_state, s11b, ROT0, "Williams", "Cyclone (L-1)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1988, esha_la3, 0, s11b, s11b, s11b_state, s11b_invert, ROT0, "Williams", "Earthshaker (LA-3)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1989, esha_ma3, esha_la3, s11b, s11b, s11b_state, s11b_invert, ROT0, "Williams", "Earthshaker (Metallica) (LA-3)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1989, esha_pr4, esha_la3, s11b, s11b, s11b_state, s11b_invert, ROT0, "Williams", "Earthshaker (Family version) (PR-4)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1988, esha_lg1, esha_la3, s11b, s11b, s11b_state, s11b_invert, ROT0, "Williams", "Earthshaker (German) (LG-1)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1988, esha_lg2, esha_la3, s11b, s11b, s11b_state, s11b_invert, ROT0, "Williams", "Earthshaker (German) (LG-2)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1988, esha_la1, esha_la3, s11b, s11b, s11b_state, s11b_invert, ROT0, "Williams", "Earthshaker (LA-1)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1988, esha_pa1, esha_la3, s11b, s11b, s11b_state, s11b_invert, ROT0, "Williams", "Earthshaker (Prototype) (PA-1)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1989, eatpm_l4, 0, s11b, s11b, s11b_state, s11b_invert, ROT0, "Bally", "Elvira and the Party Monsters (LA-4)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1989, eatpm_l1, eatpm_l4, s11b, s11b, s11b_state, s11b_invert, ROT0, "Bally", "Elvira and the Party Monsters (LA-1)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1989, eatpm_l2, eatpm_l4, s11b, s11b, s11b_state, s11b_invert, ROT0, "Bally", "Elvira and the Party Monsters (LA-2)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1989, eatpm_4g, eatpm_l4, s11b, s11b, s11b_state, s11b_invert, ROT0, "Bally", "Elvira and the Party Monsters (LG-4)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1989, eatpm_4u, eatpm_l4, s11b, s11b, s11b_state, s11b_invert, ROT0, "Bally", "Elvira and the Party Monsters (LU-4)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1989, eatpm_p7, eatpm_l4, s11b, s11b, s11b_state, s11b_invert, ROT0, "Bally", "Elvira and the Party Monsters (PA-7)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1989, jokrz_l6, 0, s11b, s11b, s11b_state, s11b_invert, ROT0, "Williams", "Jokerz! (L-6)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1989, jokrz_l3, jokrz_l6, s11b, s11b, s11b_state, s11b_invert, ROT0, "Williams", "Jokerz! (L-3)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1989, mousn_l4, 0, s11b, s11b, s11b_state, s11b_invert, ROT0, "Bally", "Mousin' Around! (LA-4)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1989, mousn_l1, mousn_l4, s11b, s11b, s11b_state, s11b_invert, ROT0, "Bally", "Mousin' Around! (LA-1)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1989, mousn_lu, mousn_l4, s11b, s11b, s11b_state, s11b_invert, ROT0, "Bally", "Mousin' Around! (LU-1)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1989, mousn_lx, mousn_l4, s11b, s11b, s11b_state, s11b_invert, ROT0, "Bally", "Mousin' Around! (LX-1)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1989, polic_l4, 0, s11b, s11b, s11b_state, s11b_invert, ROT0, "Williams", "Police Force (LA-4)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1989, polic_l3, polic_l4, s11b, s11b, s11b_state, s11b_invert, ROT0, "Williams", "Police Force (LA-3)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1989, polic_l2, polic_l4, s11b, s11b, s11b_state, s11b_invert, ROT0, "Williams", "Police Force (LA-2)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1988, spstn_l5, 0, s11b, s11b, s11b_state, s11b, ROT0, "Williams", "Space Station (L-5)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1988, swrds_l2, 0, s11b, s11b, s11b_state, s11b, ROT0, "Williams", "Swords of Fury (L-2)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1988, swrds_l1, swrds_l2, s11b, s11b, s11b_state, s11b, ROT0, "Williams", "Swords of Fury (L-1)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1988, taxi_l4, 0, s11b, s11b, s11b_state, s11b_invert, ROT0, "Williams", "Taxi (Lola) (L-4)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1988, taxi_l3, taxi_l4, s11b, s11b, s11b_state, s11b_invert, ROT0, "Williams", "Taxi (Marilyn) (L-3)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1988, taxi_lu1, taxi_l4, s11b, s11b, s11b_state, s11b_invert, ROT0, "Williams", "Taxi (Marilyn) (LU-1)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1988, taxi_lg1, taxi_l4, s11b, s11b, s11b_state, s11b_invert, ROT0, "Williams", "Taxi (Marilyn) (L-1) Germany", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1988, taxi_p5, taxi_l4, s11b, s11b, s11b_state, s11b_invert, ROT0, "Williams", "Taxi (P-5)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1989, tsptr_l3, 0, s11b, s11b, s11b_state, s11b_invert, ROT0, "Bally", "Transporter the Rescue (L-3)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1990, whirl_l3, 0, s11b, s11b, s11b_state, s11b_invert, ROT0, "Williams", "Whirlwind (L-3)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1990, whirl_l2, whirl_l3, s11b, s11b, s11b_state, s11b_invert, ROT0, "Williams", "Whirlwind (L-2)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1990, whirl_lg3, whirl_l3, s11b, s11b, s11b_state, s11b_invert, ROT0, "Williams", "Whirlwind (LG-3)", MACHINE_IS_SKELETON_MECHANICAL) diff --git a/src/mame/drivers/s11c.cpp b/src/mame/drivers/s11c.cpp index c18fb6f74a2..099b749dd5b 100644 --- a/src/mame/drivers/s11c.cpp +++ b/src/mame/drivers/s11c.cpp @@ -150,7 +150,7 @@ DRIVER_INIT_MEMBER(s11c_state,s11c) timer->adjust(attotime::from_ticks(S11_IRQ_CYCLES,E_CLOCK),1); } -static MACHINE_CONFIG_START( s11c, s11c_state ) +static MACHINE_CONFIG_START( s11c ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6808, XTAL_4MHz) MCFG_CPU_PROGRAM_MAP(s11c_main_map) diff --git a/src/mame/drivers/s3.cpp b/src/mame/drivers/s3.cpp index d64759c4239..700c0703c2f 100644 --- a/src/mame/drivers/s3.cpp +++ b/src/mame/drivers/s3.cpp @@ -423,7 +423,7 @@ TIMER_DEVICE_CALLBACK_MEMBER( s3_state::irq ) m_t_c++; } -static MACHINE_CONFIG_START( s3, s3_state ) +static MACHINE_CONFIG_START( s3 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6800, 3580000) MCFG_CPU_PROGRAM_MAP(s3_main_map) @@ -582,10 +582,10 @@ ROM_START(pkrno_l1) ROM_LOAD("sound1.716", 0x0000, 0x0800, CRC(f4190ca3) SHA1(ee234fb5c894fca5876ee6dc7ea8e89e7e0aec9c)) ROM_END -GAME( 1977, httip_l1, 0, s3, s3, driver_device, 0, ROT0, "Williams", "Hot Tip (L-1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) -GAME( 1977, lucky_l1, 0, s3, s3, driver_device, 0, ROT0, "Williams", "Lucky Seven (L-1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) -GAME( 1978, wldcp_l1, 0, s3a, s3, driver_device, 0, ROT0, "Williams", "World Cup Soccer (L-1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) -GAME( 1978, cntct_l1, 0, s3a, s3, driver_device, 0, ROT0, "Williams", "Contact (L-1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) -GAME( 1978, disco_l1, 0, s3a, s3, driver_device, 0, ROT0, "Williams", "Disco Fever (L-1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) -GAME( 1978, phnix_l1, 0, s3a, s3, driver_device, 0, ROT0, "Williams", "Phoenix (L-1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) -GAME( 1978, pkrno_l1, 0, s3a, s3, driver_device, 0, ROT0, "Williams", "Pokerino (L-1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME( 1977, httip_l1, 0, s3, s3, s3_state, 0, ROT0, "Williams", "Hot Tip (L-1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME( 1977, lucky_l1, 0, s3, s3, s3_state, 0, ROT0, "Williams", "Lucky Seven (L-1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME( 1978, wldcp_l1, 0, s3a, s3, s3_state, 0, ROT0, "Williams", "World Cup Soccer (L-1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME( 1978, cntct_l1, 0, s3a, s3, s3_state, 0, ROT0, "Williams", "Contact (L-1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME( 1978, disco_l1, 0, s3a, s3, s3_state, 0, ROT0, "Williams", "Disco Fever (L-1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME( 1978, phnix_l1, 0, s3a, s3, s3_state, 0, ROT0, "Williams", "Phoenix (L-1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME( 1978, pkrno_l1, 0, s3a, s3, s3_state, 0, ROT0, "Williams", "Pokerino (L-1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/s4.cpp b/src/mame/drivers/s4.cpp index 41c30194278..3dd088603d2 100644 --- a/src/mame/drivers/s4.cpp +++ b/src/mame/drivers/s4.cpp @@ -417,7 +417,7 @@ TIMER_DEVICE_CALLBACK_MEMBER( s4_state::irq ) m_t_c++; } -static MACHINE_CONFIG_START( s4, s4_state ) +static MACHINE_CONFIG_START( s4 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6800, 3580000) MCFG_CPU_PROGRAM_MAP(s4_main_map) @@ -683,20 +683,20 @@ ROM_START(tstrk_l1) ROM_END -GAME( 1979, flash_l2, 0, s4a, s4, driver_device, 0, ROT0, "Williams", "Flash (L-2)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) -GAME( 1979, flash_l1, flash_l2, s4a, s4, driver_device, 0, ROT0, "Williams", "Flash (L-1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) -GAME( 1979, flash_t1, flash_l2, s4a, s4, driver_device, 0, ROT0, "Williams", "Flash (T-1) Ted Estes", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) -GAME( 1978, trizn_l1, 0, s4a, s4, driver_device, 0, ROT0, "Williams", "Tri Zone (L-1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) -GAME( 1978, trizn_t1, trizn_l1, s4a, s4, driver_device, 0, ROT0, "Williams", "Tri Zone (T-1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) -GAME( 1979, tmwrp_l2, 0, s4a, s4, driver_device, 0, ROT0, "Williams", "Time Warp (L-2)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) -GAME( 1979, tmwrp_t2, tmwrp_l2, s4a, s4, driver_device, 0, ROT0, "Williams", "Time Warp (T-2)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) -GAME( 1979, stlwr_l2, 0, s4a, s4, driver_device, 0, ROT0, "Williams", "Stellar Wars (L-2)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) - -GAME( 1978, pomp_l1, 0, s4a, s4, driver_device, 0, ROT0, "Williams", "Pompeii (Shuffle) (L-1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) -GAME( 1978, arist_l1, 0, s4a, s4, driver_device, 0, ROT0, "Williams", "Aristocrat (Shuffle) (L-1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) -GAME( 1978, topaz_l1, 0, s4a, s4, driver_device, 0, ROT0, "Williams", "Topaz (Shuffle) (L-1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) -GAME( 1979, taurs_l1, 0, s4a, s4, driver_device, 0, ROT0, "Williams", "Taurus (Shuffle) (L-1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) -GAME( 1979, kingt_l1, 0, s4a, s4, driver_device, 0, ROT0, "Williams", "King Tut (Shuffle) (L-1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) -GAME( 1980, omni_l1, 0, s4a, s4, driver_device, 0, ROT0, "Williams", "Omni (Shuffle) (L-1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -GAME( 1983, bstrk_l1, 0, s4, s4, driver_device, 0, ROT0, "Williams", "Big Strike (Shuffle) (L-1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -GAME( 1983, tstrk_l1, 0, s4, s4, driver_device, 0, ROT0, "Williams", "Triple Strike (Shuffle) (L-1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +GAME( 1979, flash_l2, 0, s4a, s4, s4_state, 0, ROT0, "Williams", "Flash (L-2)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME( 1979, flash_l1, flash_l2, s4a, s4, s4_state, 0, ROT0, "Williams", "Flash (L-1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME( 1979, flash_t1, flash_l2, s4a, s4, s4_state, 0, ROT0, "Williams", "Flash (T-1) Ted Estes", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME( 1978, trizn_l1, 0, s4a, s4, s4_state, 0, ROT0, "Williams", "Tri Zone (L-1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME( 1978, trizn_t1, trizn_l1, s4a, s4, s4_state, 0, ROT0, "Williams", "Tri Zone (T-1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME( 1979, tmwrp_l2, 0, s4a, s4, s4_state, 0, ROT0, "Williams", "Time Warp (L-2)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME( 1979, tmwrp_t2, tmwrp_l2, s4a, s4, s4_state, 0, ROT0, "Williams", "Time Warp (T-2)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME( 1979, stlwr_l2, 0, s4a, s4, s4_state, 0, ROT0, "Williams", "Stellar Wars (L-2)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) + +GAME( 1978, pomp_l1, 0, s4a, s4, s4_state, 0, ROT0, "Williams", "Pompeii (Shuffle) (L-1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) +GAME( 1978, arist_l1, 0, s4a, s4, s4_state, 0, ROT0, "Williams", "Aristocrat (Shuffle) (L-1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) +GAME( 1978, topaz_l1, 0, s4a, s4, s4_state, 0, ROT0, "Williams", "Topaz (Shuffle) (L-1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) +GAME( 1979, taurs_l1, 0, s4a, s4, s4_state, 0, ROT0, "Williams", "Taurus (Shuffle) (L-1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) +GAME( 1979, kingt_l1, 0, s4a, s4, s4_state, 0, ROT0, "Williams", "King Tut (Shuffle) (L-1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) +GAME( 1980, omni_l1, 0, s4a, s4, s4_state, 0, ROT0, "Williams", "Omni (Shuffle) (L-1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +GAME( 1983, bstrk_l1, 0, s4, s4, s4_state, 0, ROT0, "Williams", "Big Strike (Shuffle) (L-1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +GAME( 1983, tstrk_l1, 0, s4, s4, s4_state, 0, ROT0, "Williams", "Triple Strike (Shuffle) (L-1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND) diff --git a/src/mame/drivers/s6.cpp b/src/mame/drivers/s6.cpp index 34ff6fa5924..c9f170625b3 100644 --- a/src/mame/drivers/s6.cpp +++ b/src/mame/drivers/s6.cpp @@ -396,7 +396,7 @@ DRIVER_INIT_MEMBER( s6_state, s6 ) m_irq_timer->adjust(attotime::from_ticks(980,3580000/4),1); } -static MACHINE_CONFIG_START( s6, s6_state ) +static MACHINE_CONFIG_START( s6 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6808, 3580000) // 6802 or 6808 could be used here MCFG_CPU_PROGRAM_MAP(s6_main_map) @@ -639,15 +639,15 @@ ROM_START(frpwr_l2) ROM_END -GAME( 1979, lzbal_l2, 0, s6, s6, s6_state, s6, ROT0, "Williams", "Laser Ball (L-2)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) -GAME( 1980, lzbal_t2, lzbal_l2, s6, s6, s6_state, s6, ROT0, "Williams", "Laser Ball (T-2)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) -GAME( 1980, scrpn_l1, 0, s6, s6, s6_state, s6, ROT0, "Williams", "Scorpion (L-1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) -GAME( 1980, scrpn_t1, scrpn_l1, s6, s6, s6_state, s6, ROT0, "Williams", "Scorpion (T-1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) -GAME( 1979, blkou_l1, 0, s6, s6, s6_state, s6, ROT0, "Williams", "Blackout (L-1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) -GAME( 1979, blkou_t1, blkou_l1, s6, s6, s6_state, s6, ROT0, "Williams", "Blackout (T-1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME( 1979, lzbal_l2, 0, s6, s6, s6_state, s6, ROT0, "Williams", "Laser Ball (L-2)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME( 1980, lzbal_t2, lzbal_l2, s6, s6, s6_state, s6, ROT0, "Williams", "Laser Ball (T-2)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME( 1980, scrpn_l1, 0, s6, s6, s6_state, s6, ROT0, "Williams", "Scorpion (L-1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME( 1980, scrpn_t1, scrpn_l1, s6, s6, s6_state, s6, ROT0, "Williams", "Scorpion (T-1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME( 1979, blkou_l1, 0, s6, s6, s6_state, s6, ROT0, "Williams", "Blackout (L-1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME( 1979, blkou_t1, blkou_l1, s6, s6, s6_state, s6, ROT0, "Williams", "Blackout (T-1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) GAME( 1979, blkou_f1, blkou_l1, s6, s6, s6_state, s6, ROT0, "Williams", "Blackout (L-1, French Speech)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) -GAME( 1979, grgar_l1, 0, s6, s6, s6_state, s6, ROT0, "Williams", "Gorgar (L-1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) -GAME( 1979, grgar_t1, grgar_l1, s6, s6, s6_state, s6, ROT0, "Williams", "Gorgar (T-1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) -GAME( 1980, frpwr_l6, 0, s6, s6, s6_state, s6, ROT0, "Williams", "Firepower (L-6)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -GAME( 1980, frpwr_t6, frpwr_l6, s6, s6, s6_state, s6, ROT0, "Williams", "Firepower (T-6)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -GAME( 1980, frpwr_l2, frpwr_l6, s6, s6, s6_state, s6, ROT0, "Williams", "Firepower (L-2)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +GAME( 1979, grgar_l1, 0, s6, s6, s6_state, s6, ROT0, "Williams", "Gorgar (L-1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME( 1979, grgar_t1, grgar_l1, s6, s6, s6_state, s6, ROT0, "Williams", "Gorgar (T-1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME( 1980, frpwr_l6, 0, s6, s6, s6_state, s6, ROT0, "Williams", "Firepower (L-6)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +GAME( 1980, frpwr_t6, frpwr_l6, s6, s6, s6_state, s6, ROT0, "Williams", "Firepower (T-6)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +GAME( 1980, frpwr_l2, frpwr_l6, s6, s6, s6_state, s6, ROT0, "Williams", "Firepower (L-2)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND) diff --git a/src/mame/drivers/s6a.cpp b/src/mame/drivers/s6a.cpp index d1a6eaa0e4b..6e055c6b28e 100644 --- a/src/mame/drivers/s6a.cpp +++ b/src/mame/drivers/s6a.cpp @@ -379,7 +379,7 @@ DRIVER_INIT_MEMBER( s6a_state, s6a ) m_irq_timer->adjust(attotime::from_ticks(980,3580000/4),1); } -static MACHINE_CONFIG_START( s6a, s6a_state ) +static MACHINE_CONFIG_START( s6a ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6808, 3580000) MCFG_CPU_PROGRAM_MAP(s6a_main_map) @@ -507,7 +507,7 @@ ROM_START(alpok_f6) ROM_END -GAME(1980,algar_l1, 0, s6a, s6a, s6a_state, s6a, ROT0, "Williams", "Algar (L-1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) -GAME(1980,alpok_l6, 0, s6a, s6a, s6a_state, s6a, ROT0, "Williams", "Alien Poker (L-6)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) -GAME(1980,alpok_l2, alpok_l6,s6a, s6a, s6a_state, s6a, ROT0, "Williams", "Alien Poker (L-2)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) -GAME(1980,alpok_f6, alpok_l6,s6a, s6a, s6a_state, s6a, ROT0, "Williams", "Alien Poker (L-6 French speech)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME( 1980, algar_l1, 0, s6a, s6a, s6a_state, s6a, ROT0, "Williams", "Algar (L-1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME( 1980, alpok_l6, 0, s6a, s6a, s6a_state, s6a, ROT0, "Williams", "Alien Poker (L-6)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME( 1980, alpok_l2, alpok_l6, s6a, s6a, s6a_state, s6a, ROT0, "Williams", "Alien Poker (L-2)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME( 1980, alpok_f6, alpok_l6, s6a, s6a, s6a_state, s6a, ROT0, "Williams", "Alien Poker (L-6 French speech)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/s7.cpp b/src/mame/drivers/s7.cpp index dd38d479a5e..5bef3f1258e 100644 --- a/src/mame/drivers/s7.cpp +++ b/src/mame/drivers/s7.cpp @@ -422,7 +422,7 @@ DRIVER_INIT_MEMBER( s7_state, s7 ) m_irq_timer->adjust(attotime::from_ticks(980,3580000/4),1); } -static MACHINE_CONFIG_START( s7, s7_state ) +static MACHINE_CONFIG_START( s7 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6808, 3580000) MCFG_CPU_PROGRAM_MAP(s7_main_map) @@ -865,29 +865,29 @@ ROM_END -GAME( 1980, bk_l4, 0, s7, s7, s7_state, s7, ROT0, "Williams", "Black Knight (L-4)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) -GAME( 1980, bk_f4, bk_l4, s7, s7, s7_state, s7, ROT0, "Williams", "Black Knight (L-4, French speech)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) -GAME( 1980, bk_l3, bk_l4, s7, s7, s7_state, s7, ROT0, "Williams", "Black Knight (L-3)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) -GAME( 1980, csmic_l1, 0, s7, s7, s7_state, s7, ROT0, "Williams", "Cosmic Gunfight (L-1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) -GAME( 1981, jngld_l2, 0, s7, s7, s7_state, s7, ROT0, "Williams", "Jungle Lord (L-2)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) -GAME( 1981, jngld_l1, jngld_l2, s7, s7, s7_state, s7, ROT0, "Williams", "Jungle Lord (L-1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) -GAME( 1981, pharo_l2, 0, s7, s7, s7_state, s7, ROT0, "Williams", "Pharaoh (L-2)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) -GAME( 1981, solar_l2, 0, s7, s7, s7_state, s7, ROT0, "Williams", "Solar Fire (L-2)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -GAME( 1982, thund_p1, 0, s7, s7, s7_state, s7, ROT0, "Williams", "Thunderball (P-1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) -GAME( 1982, thund_p2, thund_p1, s7, s7, s7_state, s7, ROT0, "Williams", "Thunderball (P-2)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) -GAME( 1982, thund_p3, thund_p1, s7, s7, s7_state, s7, ROT0, "Williams", "Thunderball (P-3)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) -GAME( 1981, hypbl_l4, 0, s7, s7, s7_state, s7, ROT0, "Williams", "HyperBall (L-4)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) -GAME( 1981, hypbl_l3, hypbl_l4, s7, s7, s7_state, s7, ROT0, "Williams", "HyperBall (L-3)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) -GAME( 1981, hypbl_l2, hypbl_l4, s7, s7, s7_state, s7, ROT0, "Williams", "HyperBall (L-2)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) -GAME( 1981, barra_l1, 0, s7, s7, s7_state, s7, ROT0, "Williams", "Barracora (L-1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -GAME( 1982, vrkon_l1, 0, s7, s7, s7_state, s7, ROT0, "Williams", "Varkon (L-1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) -GAME( 1982, tmfnt_l5, 0, s7, s7, s7_state, s7, ROT0, "Williams", "Time Fantasy (L-5)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) -GAME( 1982, wrlok_l3, 0, s7, s7, s7_state, s7, ROT0, "Williams", "Warlok (L-3)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) -GAME( 1982, dfndr_l4, 0, s7, s7, s7_state, s7, ROT0, "Williams", "Defender (L-4)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) -GAME( 1983, jst_l2, 0, s7, s7, s7_state, s7, ROT0, "Williams", "Joust (L-2)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) -GAME( 1983, jst_l1, jst_l2, s7, s7, s7_state, s7, ROT0, "Williams", "Joust (L-1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) -GAME( 1983, lsrcu_l2, 0, s7, s7, s7_state, s7, ROT0, "Williams", "Laser Cue (L-2)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) -GAME( 1983, fpwr2_l2, 0, s7, s7, s7_state, s7, ROT0, "Williams", "Firepower II (L-2)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) -GAME( 1984, strlt_l1, 0, s7, s7, s7_state, s7, ROT0, "Williams", "Star Light (L-1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME( 1980, bk_l4, 0, s7, s7, s7_state, s7, ROT0, "Williams", "Black Knight (L-4)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME( 1980, bk_f4, bk_l4, s7, s7, s7_state, s7, ROT0, "Williams", "Black Knight (L-4, French speech)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME( 1980, bk_l3, bk_l4, s7, s7, s7_state, s7, ROT0, "Williams", "Black Knight (L-3)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME( 1980, csmic_l1, 0, s7, s7, s7_state, s7, ROT0, "Williams", "Cosmic Gunfight (L-1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME( 1981, jngld_l2, 0, s7, s7, s7_state, s7, ROT0, "Williams", "Jungle Lord (L-2)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME( 1981, jngld_l1, jngld_l2, s7, s7, s7_state, s7, ROT0, "Williams", "Jungle Lord (L-1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME( 1981, pharo_l2, 0, s7, s7, s7_state, s7, ROT0, "Williams", "Pharaoh (L-2)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME( 1981, solar_l2, 0, s7, s7, s7_state, s7, ROT0, "Williams", "Solar Fire (L-2)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +GAME( 1982, thund_p1, 0, s7, s7, s7_state, s7, ROT0, "Williams", "Thunderball (P-1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) +GAME( 1982, thund_p2, thund_p1, s7, s7, s7_state, s7, ROT0, "Williams", "Thunderball (P-2)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) +GAME( 1982, thund_p3, thund_p1, s7, s7, s7_state, s7, ROT0, "Williams", "Thunderball (P-3)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) +GAME( 1981, hypbl_l4, 0, s7, s7, s7_state, s7, ROT0, "Williams", "HyperBall (L-4)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME( 1981, hypbl_l3, hypbl_l4, s7, s7, s7_state, s7, ROT0, "Williams", "HyperBall (L-3)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME( 1981, hypbl_l2, hypbl_l4, s7, s7, s7_state, s7, ROT0, "Williams", "HyperBall (L-2)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME( 1981, barra_l1, 0, s7, s7, s7_state, s7, ROT0, "Williams", "Barracora (L-1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +GAME( 1982, vrkon_l1, 0, s7, s7, s7_state, s7, ROT0, "Williams", "Varkon (L-1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME( 1982, tmfnt_l5, 0, s7, s7, s7_state, s7, ROT0, "Williams", "Time Fantasy (L-5)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME( 1982, wrlok_l3, 0, s7, s7, s7_state, s7, ROT0, "Williams", "Warlok (L-3)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME( 1982, dfndr_l4, 0, s7, s7, s7_state, s7, ROT0, "Williams", "Defender (L-4)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME( 1983, jst_l2, 0, s7, s7, s7_state, s7, ROT0, "Williams", "Joust (L-2)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME( 1983, jst_l1, jst_l2, s7, s7, s7_state, s7, ROT0, "Williams", "Joust (L-1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME( 1983, lsrcu_l2, 0, s7, s7, s7_state, s7, ROT0, "Williams", "Laser Cue (L-2)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME( 1983, fpwr2_l2, 0, s7, s7, s7_state, s7, ROT0, "Williams", "Firepower II (L-2)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME( 1984, strlt_l1, 0, s7, s7, s7_state, s7, ROT0, "Williams", "Star Light (L-1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) // same hardware, unknown manufacturer -GAME( 1983, wldtexas, 0, s7, s7, s7_state, s7, ROT0, "", "Wild Texas", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME( 1983, wldtexas, 0, s7, s7, s7_state, s7, ROT0, "", "Wild Texas", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/s8.cpp b/src/mame/drivers/s8.cpp index afa9baa5c14..5d664d0a067 100644 --- a/src/mame/drivers/s8.cpp +++ b/src/mame/drivers/s8.cpp @@ -304,7 +304,7 @@ DRIVER_INIT_MEMBER( s8_state, s8 ) m_irq_timer->adjust(attotime::from_ticks(980,1e6),1); } -static MACHINE_CONFIG_START( s8, s8_state ) +static MACHINE_CONFIG_START( s8 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6802, XTAL_4MHz) MCFG_CPU_PROGRAM_MAP(s8_main_map) @@ -388,5 +388,5 @@ ROM_START(pfevr_p3) ROM_END -GAME(1984,pfevr_l2, 0, s8, s8, s8_state, s8, ROT0, "Williams", "Pennant Fever (L-2)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) -GAME(1984,pfevr_p3, pfevr_l2, s8, s8, s8_state, s8, ROT0, "Williams", "Pennant Fever (P-3)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME(1984, pfevr_l2, 0, s8, s8, s8_state, s8, ROT0, "Williams", "Pennant Fever (L-2)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME(1984, pfevr_p3, pfevr_l2, s8, s8, s8_state, s8, ROT0, "Williams", "Pennant Fever (P-3)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/s8a.cpp b/src/mame/drivers/s8a.cpp index 2158f1a5fb2..22bd0234379 100644 --- a/src/mame/drivers/s8a.cpp +++ b/src/mame/drivers/s8a.cpp @@ -276,7 +276,7 @@ DRIVER_INIT_MEMBER( s8a_state, s8a ) m_irq_timer->adjust(attotime::from_ticks(980,1e6),1); } -static MACHINE_CONFIG_START( s8a, s8a_state ) +static MACHINE_CONFIG_START( s8a ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6802, XTAL_4MHz) MCFG_CPU_PROGRAM_MAP(s8a_main_map) @@ -351,4 +351,4 @@ ROM_START(scrzy_l1) ROM_LOAD("ic49.bin", 0x0000, 0x4000, CRC(bcc8ccc4) SHA1(2312f9cc4f5a2dadfbfa61d13c31bb5838adf152) ) ROM_END -GAME(1984,scrzy_l1, 0, s8a, s8a, s8a_state, s8a, ROT0, "Williams", "Still Crazy", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME( 1984, scrzy_l1, 0, s8a, s8a, s8a_state, s8a, ROT0, "Williams", "Still Crazy", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/s9.cpp b/src/mame/drivers/s9.cpp index 9ed3d272b49..946cc3604be 100644 --- a/src/mame/drivers/s9.cpp +++ b/src/mame/drivers/s9.cpp @@ -310,7 +310,7 @@ DRIVER_INIT_MEMBER( s9_state, s9 ) m_irq_timer->adjust(attotime::from_ticks(980,1e6),1); } -static MACHINE_CONFIG_START( s9, s9_state ) +static MACHINE_CONFIG_START( s9 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6808, XTAL_4MHz) MCFG_CPU_PROGRAM_MAP(s9_main_map) @@ -510,13 +510,13 @@ ROM_START(alcat_l7) ROM_END -GAME( 1983, ratrc_l1, 0, s9, s9, s9_state, s9, ROT0, "Williams", "Rat Race (L-1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) -GAME( 1985, sorcr_l1, sorcr_l2, s9, s9, s9_state, s9, ROT0, "Williams", "Sorcerer (L-1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) -GAME( 1985, sorcr_l2, 0, s9, s9, s9_state, s9, ROT0, "Williams", "Sorcerer (L-2)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) -GAME( 1984, sshtl_l7, 0, s9, s9, s9_state, s9, ROT0, "Williams", "Space Shuttle (L-7)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) -GAME( 1984, sshtl_l3, sshtl_l7, s9, s9, s9_state, s9, ROT0, "Williams", "Space Shuttle (L-3)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) -GAME( 1985, comet_l4, comet_l5, s9, s9, s9_state, s9, ROT0, "Williams", "Comet (L-4)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) -GAME( 1985, comet_l5, 0, s9, s9, s9_state, s9, ROT0, "Williams", "Comet (L-5)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME( 1983, ratrc_l1, 0, s9, s9, s9_state, s9, ROT0, "Williams", "Rat Race (L-1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) +GAME( 1985, sorcr_l1, sorcr_l2, s9, s9, s9_state, s9, ROT0, "Williams", "Sorcerer (L-1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME( 1985, sorcr_l2, 0, s9, s9, s9_state, s9, ROT0, "Williams", "Sorcerer (L-2)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME( 1984, sshtl_l7, 0, s9, s9, s9_state, s9, ROT0, "Williams", "Space Shuttle (L-7)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME( 1984, sshtl_l3, sshtl_l7, s9, s9, s9_state, s9, ROT0, "Williams", "Space Shuttle (L-3)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME( 1985, comet_l4, comet_l5, s9, s9, s9_state, s9, ROT0, "Williams", "Comet (L-4)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME( 1985, comet_l5, 0, s9, s9, s9_state, s9, ROT0, "Williams", "Comet (L-5)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) GAME( 1984, szone_l5, 0, s9, s9, s9_state, s9, ROT0, "Williams", "Strike Zone (Shuffle) (L-5)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) GAME( 1984, szone_l2, szone_l5, s9, s9, s9_state, s9, ROT0, "Williams", "Strike Zone (Shuffle) (L-2)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) -GAME( 1985, alcat_l7, 0, s9, s9, s9_state, s9, ROT0, "Williams", "Alley Cats (Shuffle) (L-7)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +GAME( 1985, alcat_l7, 0, s9, s9, s9_state, s9, ROT0, "Williams", "Alley Cats (Shuffle) (L-7)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND) diff --git a/src/mame/drivers/sacstate.cpp b/src/mame/drivers/sacstate.cpp index d10e813daca..067b2703563 100644 --- a/src/mame/drivers/sacstate.cpp +++ b/src/mame/drivers/sacstate.cpp @@ -56,7 +56,7 @@ public: DECLARE_READ8_MEMBER(port01_r); DECLARE_READ8_MEMBER(port04_r); DECLARE_WRITE8_MEMBER(port08_w); - DECLARE_WRITE8_MEMBER(kbd_put); + void kbd_put(u8 data); uint8_t m_term_data; uint8_t m_val; virtual void machine_reset() override; @@ -117,7 +117,7 @@ static INPUT_PORTS_START( sacstate ) PORT_CONFSETTING( 0x08, "B") INPUT_PORTS_END -WRITE8_MEMBER( sacstate_state::kbd_put ) +void sacstate_state::kbd_put(u8 data) { m_term_data = data; } @@ -128,7 +128,7 @@ void sacstate_state::machine_reset() m_val = ioport("CONFIG")->read(); } -static MACHINE_CONFIG_START( sacstate, sacstate_state ) +static MACHINE_CONFIG_START( sacstate ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",I8008, 800000) MCFG_CPU_PROGRAM_MAP(sacstate_mem) @@ -136,7 +136,7 @@ static MACHINE_CONFIG_START( sacstate, sacstate_state ) /* video hardware */ MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0) - MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(sacstate_state, kbd_put)) + MCFG_GENERIC_TERMINAL_KEYBOARD_CB(PUT(sacstate_state, kbd_put)) MACHINE_CONFIG_END /* ROM definition */ @@ -154,5 +154,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1973, sacstate, 0, 0, sacstate, sacstate, driver_device, 0, "SacState", "SacState 8008", MACHINE_NO_SOUND_HW) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 1973, sacstate, 0, 0, sacstate, sacstate, sacstate_state, 0, "SacState", "SacState 8008", MACHINE_NO_SOUND_HW ) diff --git a/src/mame/drivers/safarir.cpp b/src/mame/drivers/safarir.cpp index 31ac6dc22df..754ec5fa16e 100644 --- a/src/mame/drivers/safarir.cpp +++ b/src/mame/drivers/safarir.cpp @@ -399,7 +399,7 @@ INPUT_PORTS_END * *************************************/ -static MACHINE_CONFIG_START( safarir, safarir_state ) +static MACHINE_CONFIG_START( safarir ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8080A, XTAL_18MHz/12) /* 1.5 MHz ? */ @@ -500,5 +500,5 @@ ROM_END * *************************************/ -GAME( 1979, safarir, 0, safarir, safarir, driver_device, 0, ROT90, "SNK (Taito license)", "Safari Rally (World)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) -GAME( 1979, safarirj, safarir, safarir, safarir, driver_device, 0, ROT90, "SNK", "Safari Rally (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) +GAME( 1979, safarir, 0, safarir, safarir, safarir_state, 0, ROT90, "SNK (Taito license)", "Safari Rally (World)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) +GAME( 1979, safarirj, safarir, safarir, safarir, safarir_state, 0, ROT90, "SNK", "Safari Rally (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) diff --git a/src/mame/drivers/sage2.cpp b/src/mame/drivers/sage2.cpp index 645f624f9e3..ad6df892d7a 100644 --- a/src/mame/drivers/sage2.cpp +++ b/src/mame/drivers/sage2.cpp @@ -407,7 +407,7 @@ READ16_MEMBER(sage2_state::rom_r) // MACHINE_CONFIG( sage2 ) //------------------------------------------------- -static MACHINE_CONFIG_START( sage2, sage2_state ) +static MACHINE_CONFIG_START( sage2 ) // basic machine hardware MCFG_CPU_ADD(M68000_TAG, M68000, XTAL_16MHz/2) MCFG_CPU_PROGRAM_MAP(sage2_mem) @@ -525,5 +525,5 @@ DRIVER_INIT_MEMBER(sage2_state,sage2) // SYSTEM DRIVERS //************************************************************************** -// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS -COMP( 1982, sage2, 0, 0, sage2, sage2, sage2_state, sage2, "Sage Technology", "Sage II", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1982, sage2, 0, 0, sage2, sage2, sage2_state, sage2, "Sage Technology", "Sage II", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/sam.cpp b/src/mame/drivers/sam.cpp index 45b78cf3597..be023855e72 100644 --- a/src/mame/drivers/sam.cpp +++ b/src/mame/drivers/sam.cpp @@ -20,7 +20,7 @@ ADDRESS_MAP_END static INPUT_PORTS_START( sam ) INPUT_PORTS_END -static MACHINE_CONFIG_START( sam, sam_state ) +static MACHINE_CONFIG_START( sam ) MCFG_CPU_ADD("maincpu", ARM7, XTAL_40MHz) // AT91R40008 MCFG_CPU_PROGRAM_MAP(sam_map) MACHINE_CONFIG_END @@ -1068,213 +1068,213 @@ ROM_END #define MACHINE_FLAGS (MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL) -GAME( 2009, 24_130 ,24_150, sam, sam, driver_device, 0, ROT0, "Stern", "24 v1.30", MACHINE_FLAGS) -GAME( 2009, 24_140 ,24_150, sam, sam, driver_device, 0, ROT0, "Stern", "24 v1.40", MACHINE_FLAGS) -GAME( 2009, 24_144 ,24_150, sam, sam, driver_device, 0, ROT0, "Stern", "24 v1.44", MACHINE_FLAGS) -GAME( 2009, 24_150 ,0, sam, sam, driver_device, 0, ROT0, "Stern", "24 v1.50", MACHINE_FLAGS) -GAME( 2008, bdk_130 ,bdk_294, sam, sam, driver_device, 0, ROT0, "Stern", "Batman - The Dark Knight v1.30", MACHINE_FLAGS) -GAME( 2008, bdk_150 ,bdk_294, sam, sam, driver_device, 0, ROT0, "Stern", "Batman - The Dark Knight v1.50", MACHINE_FLAGS) -GAME( 2008, bdk_160 ,bdk_294, sam, sam, driver_device, 0, ROT0, "Stern", "Batman - The Dark Knight v1.60", MACHINE_FLAGS) -GAME( 2008, bdk_200 ,bdk_294, sam, sam, driver_device, 0, ROT0, "Stern", "Batman - The Dark Knight v2.00", MACHINE_FLAGS) -GAME( 2008, bdk_210 ,bdk_294, sam, sam, driver_device, 0, ROT0, "Stern", "Batman - The Dark Knight v2.10", MACHINE_FLAGS) -GAME( 2008, bdk_220 ,bdk_294, sam, sam, driver_device, 0, ROT0, "Stern", "Batman - The Dark Knight v2.20", MACHINE_FLAGS) -GAME( 2008, bdk_290 ,bdk_294, sam, sam, driver_device, 0, ROT0, "Stern", "Batman - The Dark Knight v2.90", MACHINE_FLAGS) -GAME( 2008, bdk_294 ,0, sam, sam, driver_device, 0, ROT0, "Stern", "Batman - The Dark Knight v2.94", MACHINE_FLAGS) +GAME( 2009, 24_130 ,24_150, sam, sam, sam_state, 0, ROT0, "Stern", "24 v1.30", MACHINE_FLAGS) +GAME( 2009, 24_140 ,24_150, sam, sam, sam_state, 0, ROT0, "Stern", "24 v1.40", MACHINE_FLAGS) +GAME( 2009, 24_144 ,24_150, sam, sam, sam_state, 0, ROT0, "Stern", "24 v1.44", MACHINE_FLAGS) +GAME( 2009, 24_150 ,0, sam, sam, sam_state, 0, ROT0, "Stern", "24 v1.50", MACHINE_FLAGS) +GAME( 2008, bdk_130 ,bdk_294, sam, sam, sam_state, 0, ROT0, "Stern", "Batman - The Dark Knight v1.30", MACHINE_FLAGS) +GAME( 2008, bdk_150 ,bdk_294, sam, sam, sam_state, 0, ROT0, "Stern", "Batman - The Dark Knight v1.50", MACHINE_FLAGS) +GAME( 2008, bdk_160 ,bdk_294, sam, sam, sam_state, 0, ROT0, "Stern", "Batman - The Dark Knight v1.60", MACHINE_FLAGS) +GAME( 2008, bdk_200 ,bdk_294, sam, sam, sam_state, 0, ROT0, "Stern", "Batman - The Dark Knight v2.00", MACHINE_FLAGS) +GAME( 2008, bdk_210 ,bdk_294, sam, sam, sam_state, 0, ROT0, "Stern", "Batman - The Dark Knight v2.10", MACHINE_FLAGS) +GAME( 2008, bdk_220 ,bdk_294, sam, sam, sam_state, 0, ROT0, "Stern", "Batman - The Dark Knight v2.20", MACHINE_FLAGS) +GAME( 2008, bdk_290 ,bdk_294, sam, sam, sam_state, 0, ROT0, "Stern", "Batman - The Dark Knight v2.90", MACHINE_FLAGS) +GAME( 2008, bdk_294 ,0, sam, sam, sam_state, 0, ROT0, "Stern", "Batman - The Dark Knight v2.94", MACHINE_FLAGS) // Missing version 1.30 (26-Jan-2010), 1.20 (25-Jan-2010), 1.10 (21-Jan-2010), 1.00 (15-Jan-2010) -GAME( 2010, bbh_140 ,bbh_160, sam, sam, driver_device, 0, ROT0, "Stern", "Big Buck Hunter Pro v1.40", MACHINE_FLAGS) -GAME( 2010, bbh_150 ,bbh_160, sam, sam, driver_device, 0, ROT0, "Stern", "Big Buck Hunter Pro v1.50", MACHINE_FLAGS) -GAME( 2010, bbh_160 ,0, sam, sam, driver_device, 0, ROT0, "Stern", "Big Buck Hunter Pro v1.60", MACHINE_FLAGS) -GAME( 2008, csi_102 ,csi_240, sam, sam, driver_device, 0, ROT0, "Stern", "C.S.I. v1.02", MACHINE_FLAGS) -GAME( 2008, csi_103 ,csi_240, sam, sam, driver_device, 0, ROT0, "Stern", "C.S.I. v1.03", MACHINE_FLAGS) -GAME( 2008, csi_104 ,csi_240, sam, sam, driver_device, 0, ROT0, "Stern", "C.S.I. v1.04", MACHINE_FLAGS) -GAME( 2008, csi_200 ,csi_240, sam, sam, driver_device, 0, ROT0, "Stern", "C.S.I. v2.00", MACHINE_FLAGS) -GAME( 2008, csi_210 ,csi_240, sam, sam, driver_device, 0, ROT0, "Stern", "C.S.I. v2.10", MACHINE_FLAGS) -GAME( 2008, csi_230 ,csi_240, sam, sam, driver_device, 0, ROT0, "Stern", "C.S.I. v2.30", MACHINE_FLAGS) -GAME( 2008, csi_240 ,0, sam, sam, driver_device, 0, ROT0, "Stern", "C.S.I. v2.40", MACHINE_FLAGS) -GAME( 2007, fg_1000af ,fg_120af, sam, sam, driver_device, 0, ROT0, "Stern", "Family Guy v10.0 (English,French)", MACHINE_FLAGS) -GAME( 2007, fg_1000ag ,fg_120af, sam, sam, driver_device, 0, ROT0, "Stern", "Family Guy v10.0 (English,German)", MACHINE_FLAGS) -GAME( 2007, fg_1000ai ,fg_120af, sam, sam, driver_device, 0, ROT0, "Stern", "Family Guy v10.0 (English,Italian)", MACHINE_FLAGS) -GAME( 2007, fg_1000al ,fg_120af, sam, sam, driver_device, 0, ROT0, "Stern", "Family Guy v10.0 (English,Spanish)", MACHINE_FLAGS) -GAME( 2007, fg_110af ,fg_120af, sam, sam, driver_device, 0, ROT0, "Stern", "Family Guy v11.0 (English,French)", MACHINE_FLAGS) -GAME( 2007, fg_110ag ,fg_120af, sam, sam, driver_device, 0, ROT0, "Stern", "Family Guy v11.0 (English,German)", MACHINE_FLAGS) -GAME( 2007, fg_110ai ,fg_120af, sam, sam, driver_device, 0, ROT0, "Stern", "Family Guy v11.0 (English,Italian)", MACHINE_FLAGS) -GAME( 2007, fg_110al ,fg_120af, sam, sam, driver_device, 0, ROT0, "Stern", "Family Guy v11.0 (English,Spanish)", MACHINE_FLAGS) -GAME( 2007, fg_120af ,0, sam, sam, driver_device, 0, ROT0, "Stern", "Family Guy v12.0 (English,French)", MACHINE_FLAGS) -GAME( 2007, fg_120ag ,fg_120af, sam, sam, driver_device, 0, ROT0, "Stern", "Family Guy v12.0 (English,German)", MACHINE_FLAGS) -GAME( 2007, fg_120ai ,fg_120af, sam, sam, driver_device, 0, ROT0, "Stern", "Family Guy v12.0 (English,Italian)", MACHINE_FLAGS) -GAME( 2007, fg_120al ,fg_120af, sam, sam, driver_device, 0, ROT0, "Stern", "Family Guy v12.0 (English,Spanish)", MACHINE_FLAGS) -GAME( 2007, fg_300ai ,fg_120af, sam, sam, driver_device, 0, ROT0, "Stern", "Family Guy v3.0 (English,Italian)", MACHINE_FLAGS) -GAME( 2007, fg_400a ,fg_120af, sam, sam, driver_device, 0, ROT0, "Stern", "Family Guy v4.0 (English)", MACHINE_FLAGS) -GAME( 2007, fg_400ag ,fg_120af, sam, sam, driver_device, 0, ROT0, "Stern", "Family Guy v4.0 (English,German)", MACHINE_FLAGS) -GAME( 2007, fg_700af ,fg_120af, sam, sam, driver_device, 0, ROT0, "Stern", "Family Guy v7.0 (English,French)", MACHINE_FLAGS) -GAME( 2007, fg_700al ,fg_120af, sam, sam, driver_device, 0, ROT0, "Stern", "Family Guy v7.0 (English,Spanish)", MACHINE_FLAGS) -GAME( 2007, fg_800al ,fg_120af, sam, sam, driver_device, 0, ROT0, "Stern", "Family Guy v8.0 (English,Spanish)", MACHINE_FLAGS) -GAME( 2010, im2_100 ,im2_140, sam, sam, driver_device, 0, ROT0, "Stern", "Iron Man 2 v1.00", MACHINE_FLAGS) -GAME( 2010, im2_110 ,im2_140, sam, sam, driver_device, 0, ROT0, "Stern", "Iron Man 2 v1.10", MACHINE_FLAGS) -GAME( 2010, im2_120 ,im2_140, sam, sam, driver_device, 0, ROT0, "Stern", "Iron Man 2 v1.20", MACHINE_FLAGS) -GAME( 2010, im2_140 ,0, sam, sam, driver_device, 0, ROT0, "Stern", "Iron Man 2 v1.40", MACHINE_FLAGS) -GAME( 2008, indy_113a ,indy_210, sam, sam, driver_device, 0, ROT0, "Stern", "Indiana Jones v1.13", MACHINE_FLAGS) -GAME( 2008, indy_113f ,indy_210, sam, sam, driver_device, 0, ROT0, "Stern", "Indiana Jones v1.13 (French)", MACHINE_FLAGS) -GAME( 2008, indy_113g ,indy_210, sam, sam, driver_device, 0, ROT0, "Stern", "Indiana Jones v1.13 (German)", MACHINE_FLAGS) -GAME( 2008, indy_113i ,indy_210, sam, sam, driver_device, 0, ROT0, "Stern", "Indiana Jones v1.13 (Italian)", MACHINE_FLAGS) -GAME( 2008, indy_113l ,indy_210, sam, sam, driver_device, 0, ROT0, "Stern", "Indiana Jones v1.13 (Spanish)", MACHINE_FLAGS) -GAME( 2008, indy_114a ,indy_210, sam, sam, driver_device, 0, ROT0, "Stern", "Indiana Jones v1.14", MACHINE_FLAGS) -GAME( 2008, indy_114f ,indy_210, sam, sam, driver_device, 0, ROT0, "Stern", "Indiana Jones v1.14 (French)", MACHINE_FLAGS) -GAME( 2008, indy_114g ,indy_210, sam, sam, driver_device, 0, ROT0, "Stern", "Indiana Jones v1.14 (German)", MACHINE_FLAGS) -GAME( 2008, indy_114i ,indy_210, sam, sam, driver_device, 0, ROT0, "Stern", "Indiana Jones v1.14 (Italian)", MACHINE_FLAGS) -GAME( 2008, indy_114l ,indy_210, sam, sam, driver_device, 0, ROT0, "Stern", "Indiana Jones v1.14 (Spanish)", MACHINE_FLAGS) -GAME( 2008, indy_116a ,indy_210, sam, sam, driver_device, 0, ROT0, "Stern", "Indiana Jones v1.16", MACHINE_FLAGS) -GAME( 2008, indy_116f ,indy_210, sam, sam, driver_device, 0, ROT0, "Stern", "Indiana Jones v1.16 (French)", MACHINE_FLAGS) -GAME( 2008, indy_116g ,indy_210, sam, sam, driver_device, 0, ROT0, "Stern", "Indiana Jones v1.16 (German)", MACHINE_FLAGS) -GAME( 2008, indy_116i ,indy_210, sam, sam, driver_device, 0, ROT0, "Stern", "Indiana Jones v1.16 (Italian)", MACHINE_FLAGS) -GAME( 2008, indy_116l ,indy_210, sam, sam, driver_device, 0, ROT0, "Stern", "Indiana Jones v1.16 (Spanish)", MACHINE_FLAGS) -GAME( 2008, indy_210 ,0, sam, sam, driver_device, 0, ROT0, "Stern", "Indiana Jones v2.10", MACHINE_FLAGS) -GAME( 2008, indy_210f ,indy_210, sam, sam, driver_device, 0, ROT0, "Stern", "Indiana Jones v2.10 (French)", MACHINE_FLAGS) +GAME( 2010, bbh_140 ,bbh_160, sam, sam, sam_state, 0, ROT0, "Stern", "Big Buck Hunter Pro v1.40", MACHINE_FLAGS) +GAME( 2010, bbh_150 ,bbh_160, sam, sam, sam_state, 0, ROT0, "Stern", "Big Buck Hunter Pro v1.50", MACHINE_FLAGS) +GAME( 2010, bbh_160 ,0, sam, sam, sam_state, 0, ROT0, "Stern", "Big Buck Hunter Pro v1.60", MACHINE_FLAGS) +GAME( 2008, csi_102 ,csi_240, sam, sam, sam_state, 0, ROT0, "Stern", "C.S.I. v1.02", MACHINE_FLAGS) +GAME( 2008, csi_103 ,csi_240, sam, sam, sam_state, 0, ROT0, "Stern", "C.S.I. v1.03", MACHINE_FLAGS) +GAME( 2008, csi_104 ,csi_240, sam, sam, sam_state, 0, ROT0, "Stern", "C.S.I. v1.04", MACHINE_FLAGS) +GAME( 2008, csi_200 ,csi_240, sam, sam, sam_state, 0, ROT0, "Stern", "C.S.I. v2.00", MACHINE_FLAGS) +GAME( 2008, csi_210 ,csi_240, sam, sam, sam_state, 0, ROT0, "Stern", "C.S.I. v2.10", MACHINE_FLAGS) +GAME( 2008, csi_230 ,csi_240, sam, sam, sam_state, 0, ROT0, "Stern", "C.S.I. v2.30", MACHINE_FLAGS) +GAME( 2008, csi_240 ,0, sam, sam, sam_state, 0, ROT0, "Stern", "C.S.I. v2.40", MACHINE_FLAGS) +GAME( 2007, fg_1000af ,fg_120af, sam, sam, sam_state, 0, ROT0, "Stern", "Family Guy v10.0 (English,French)", MACHINE_FLAGS) +GAME( 2007, fg_1000ag ,fg_120af, sam, sam, sam_state, 0, ROT0, "Stern", "Family Guy v10.0 (English,German)", MACHINE_FLAGS) +GAME( 2007, fg_1000ai ,fg_120af, sam, sam, sam_state, 0, ROT0, "Stern", "Family Guy v10.0 (English,Italian)", MACHINE_FLAGS) +GAME( 2007, fg_1000al ,fg_120af, sam, sam, sam_state, 0, ROT0, "Stern", "Family Guy v10.0 (English,Spanish)", MACHINE_FLAGS) +GAME( 2007, fg_110af ,fg_120af, sam, sam, sam_state, 0, ROT0, "Stern", "Family Guy v11.0 (English,French)", MACHINE_FLAGS) +GAME( 2007, fg_110ag ,fg_120af, sam, sam, sam_state, 0, ROT0, "Stern", "Family Guy v11.0 (English,German)", MACHINE_FLAGS) +GAME( 2007, fg_110ai ,fg_120af, sam, sam, sam_state, 0, ROT0, "Stern", "Family Guy v11.0 (English,Italian)", MACHINE_FLAGS) +GAME( 2007, fg_110al ,fg_120af, sam, sam, sam_state, 0, ROT0, "Stern", "Family Guy v11.0 (English,Spanish)", MACHINE_FLAGS) +GAME( 2007, fg_120af ,0, sam, sam, sam_state, 0, ROT0, "Stern", "Family Guy v12.0 (English,French)", MACHINE_FLAGS) +GAME( 2007, fg_120ag ,fg_120af, sam, sam, sam_state, 0, ROT0, "Stern", "Family Guy v12.0 (English,German)", MACHINE_FLAGS) +GAME( 2007, fg_120ai ,fg_120af, sam, sam, sam_state, 0, ROT0, "Stern", "Family Guy v12.0 (English,Italian)", MACHINE_FLAGS) +GAME( 2007, fg_120al ,fg_120af, sam, sam, sam_state, 0, ROT0, "Stern", "Family Guy v12.0 (English,Spanish)", MACHINE_FLAGS) +GAME( 2007, fg_300ai ,fg_120af, sam, sam, sam_state, 0, ROT0, "Stern", "Family Guy v3.0 (English,Italian)", MACHINE_FLAGS) +GAME( 2007, fg_400a ,fg_120af, sam, sam, sam_state, 0, ROT0, "Stern", "Family Guy v4.0 (English)", MACHINE_FLAGS) +GAME( 2007, fg_400ag ,fg_120af, sam, sam, sam_state, 0, ROT0, "Stern", "Family Guy v4.0 (English,German)", MACHINE_FLAGS) +GAME( 2007, fg_700af ,fg_120af, sam, sam, sam_state, 0, ROT0, "Stern", "Family Guy v7.0 (English,French)", MACHINE_FLAGS) +GAME( 2007, fg_700al ,fg_120af, sam, sam, sam_state, 0, ROT0, "Stern", "Family Guy v7.0 (English,Spanish)", MACHINE_FLAGS) +GAME( 2007, fg_800al ,fg_120af, sam, sam, sam_state, 0, ROT0, "Stern", "Family Guy v8.0 (English,Spanish)", MACHINE_FLAGS) +GAME( 2010, im2_100 ,im2_140, sam, sam, sam_state, 0, ROT0, "Stern", "Iron Man 2 v1.00", MACHINE_FLAGS) +GAME( 2010, im2_110 ,im2_140, sam, sam, sam_state, 0, ROT0, "Stern", "Iron Man 2 v1.10", MACHINE_FLAGS) +GAME( 2010, im2_120 ,im2_140, sam, sam, sam_state, 0, ROT0, "Stern", "Iron Man 2 v1.20", MACHINE_FLAGS) +GAME( 2010, im2_140 ,0, sam, sam, sam_state, 0, ROT0, "Stern", "Iron Man 2 v1.40", MACHINE_FLAGS) +GAME( 2008, indy_113a ,indy_210, sam, sam, sam_state, 0, ROT0, "Stern", "Indiana Jones v1.13", MACHINE_FLAGS) +GAME( 2008, indy_113f ,indy_210, sam, sam, sam_state, 0, ROT0, "Stern", "Indiana Jones v1.13 (French)", MACHINE_FLAGS) +GAME( 2008, indy_113g ,indy_210, sam, sam, sam_state, 0, ROT0, "Stern", "Indiana Jones v1.13 (German)", MACHINE_FLAGS) +GAME( 2008, indy_113i ,indy_210, sam, sam, sam_state, 0, ROT0, "Stern", "Indiana Jones v1.13 (Italian)", MACHINE_FLAGS) +GAME( 2008, indy_113l ,indy_210, sam, sam, sam_state, 0, ROT0, "Stern", "Indiana Jones v1.13 (Spanish)", MACHINE_FLAGS) +GAME( 2008, indy_114a ,indy_210, sam, sam, sam_state, 0, ROT0, "Stern", "Indiana Jones v1.14", MACHINE_FLAGS) +GAME( 2008, indy_114f ,indy_210, sam, sam, sam_state, 0, ROT0, "Stern", "Indiana Jones v1.14 (French)", MACHINE_FLAGS) +GAME( 2008, indy_114g ,indy_210, sam, sam, sam_state, 0, ROT0, "Stern", "Indiana Jones v1.14 (German)", MACHINE_FLAGS) +GAME( 2008, indy_114i ,indy_210, sam, sam, sam_state, 0, ROT0, "Stern", "Indiana Jones v1.14 (Italian)", MACHINE_FLAGS) +GAME( 2008, indy_114l ,indy_210, sam, sam, sam_state, 0, ROT0, "Stern", "Indiana Jones v1.14 (Spanish)", MACHINE_FLAGS) +GAME( 2008, indy_116a ,indy_210, sam, sam, sam_state, 0, ROT0, "Stern", "Indiana Jones v1.16", MACHINE_FLAGS) +GAME( 2008, indy_116f ,indy_210, sam, sam, sam_state, 0, ROT0, "Stern", "Indiana Jones v1.16 (French)", MACHINE_FLAGS) +GAME( 2008, indy_116g ,indy_210, sam, sam, sam_state, 0, ROT0, "Stern", "Indiana Jones v1.16 (German)", MACHINE_FLAGS) +GAME( 2008, indy_116i ,indy_210, sam, sam, sam_state, 0, ROT0, "Stern", "Indiana Jones v1.16 (Italian)", MACHINE_FLAGS) +GAME( 2008, indy_116l ,indy_210, sam, sam, sam_state, 0, ROT0, "Stern", "Indiana Jones v1.16 (Spanish)", MACHINE_FLAGS) +GAME( 2008, indy_210 ,0, sam, sam, sam_state, 0, ROT0, "Stern", "Indiana Jones v2.10", MACHINE_FLAGS) +GAME( 2008, indy_210f ,indy_210, sam, sam, sam_state, 0, ROT0, "Stern", "Indiana Jones v2.10 (French)", MACHINE_FLAGS) // Missing versions 4.00 (21-May-2009), 3.00 (20-May-2009), 2.00 (19-May-2009) and 1.00 (14-May-2009) of NBA -GAME( 2009, nba_500 ,nba_802, sam, sam, driver_device, 0, ROT0, "Stern", "NBA v5.00", MACHINE_FLAGS) -GAME( 2009, nba_600 ,nba_802, sam, sam, driver_device, 0, ROT0, "Stern", "NBA v6.00", MACHINE_FLAGS) -GAME( 2009, nba_700 ,nba_802, sam, sam, driver_device, 0, ROT0, "Stern", "NBA v7.00", MACHINE_FLAGS) -GAME( 2009, nba_801 ,nba_802, sam, sam, driver_device, 0, ROT0, "Stern", "NBA v8.01", MACHINE_FLAGS) -GAME( 2009, nba_802 ,0, sam, sam, driver_device, 0, ROT0, "Stern", "NBA v8.02", MACHINE_FLAGS) -GAME( 2006, potc_110af ,potc_600, sam, sam, driver_device, 0, ROT0, "Stern", "Pirates of the Caribbean v1.10 (English,French)", MACHINE_FLAGS) -GAME( 2006, potc_110ai ,potc_600, sam, sam, driver_device, 0, ROT0, "Stern", "Pirates of the Caribbean v1.10 (English,Italian)", MACHINE_FLAGS) -GAME( 2006, potc_110gf ,potc_600, sam, sam, driver_device, 0, ROT0, "Stern", "Pirates of the Caribbean v1.10 (German,French)", MACHINE_FLAGS) +GAME( 2009, nba_500 ,nba_802, sam, sam, sam_state, 0, ROT0, "Stern", "NBA v5.00", MACHINE_FLAGS) +GAME( 2009, nba_600 ,nba_802, sam, sam, sam_state, 0, ROT0, "Stern", "NBA v6.00", MACHINE_FLAGS) +GAME( 2009, nba_700 ,nba_802, sam, sam, sam_state, 0, ROT0, "Stern", "NBA v7.00", MACHINE_FLAGS) +GAME( 2009, nba_801 ,nba_802, sam, sam, sam_state, 0, ROT0, "Stern", "NBA v8.01", MACHINE_FLAGS) +GAME( 2009, nba_802 ,0, sam, sam, sam_state, 0, ROT0, "Stern", "NBA v8.02", MACHINE_FLAGS) +GAME( 2006, potc_110af ,potc_600, sam, sam, sam_state, 0, ROT0, "Stern", "Pirates of the Caribbean v1.10 (English,French)", MACHINE_FLAGS) +GAME( 2006, potc_110ai ,potc_600, sam, sam, sam_state, 0, ROT0, "Stern", "Pirates of the Caribbean v1.10 (English,Italian)", MACHINE_FLAGS) +GAME( 2006, potc_110gf ,potc_600, sam, sam, sam_state, 0, ROT0, "Stern", "Pirates of the Caribbean v1.10 (German,French)", MACHINE_FLAGS) // Missing version 1.11 for other languages ??? August 17, 2006 -GAME( 2006, potc_111as ,potc_600, sam, sam, driver_device, 0, ROT0, "Stern", "Pirates of the Caribbean v1.11 (English,Spanish)", MACHINE_FLAGS) +GAME( 2006, potc_111as ,potc_600, sam, sam, sam_state, 0, ROT0, "Stern", "Pirates of the Caribbean v1.11 (English,Spanish)", MACHINE_FLAGS) // Missing version 1.12 August 24, 2006 -GAME( 2006, potc_113af ,potc_600, sam, sam, driver_device, 0, ROT0, "Stern", "Pirates of the Caribbean v1.13 (English,French)", MACHINE_FLAGS) -GAME( 2006, potc_113ai ,potc_600, sam, sam, driver_device, 0, ROT0, "Stern", "Pirates of the Caribbean v1.13 (English,Italian)", MACHINE_FLAGS) -GAME( 2006, potc_113as ,potc_600, sam, sam, driver_device, 0, ROT0, "Stern", "Pirates of the Caribbean v1.13 (English,Spanish)", MACHINE_FLAGS) -GAME( 2006, potc_113gf ,potc_600, sam, sam, driver_device, 0, ROT0, "Stern", "Pirates of the Caribbean v1.13 (German,French)", MACHINE_FLAGS) +GAME( 2006, potc_113af ,potc_600, sam, sam, sam_state, 0, ROT0, "Stern", "Pirates of the Caribbean v1.13 (English,French)", MACHINE_FLAGS) +GAME( 2006, potc_113ai ,potc_600, sam, sam, sam_state, 0, ROT0, "Stern", "Pirates of the Caribbean v1.13 (English,Italian)", MACHINE_FLAGS) +GAME( 2006, potc_113as ,potc_600, sam, sam, sam_state, 0, ROT0, "Stern", "Pirates of the Caribbean v1.13 (English,Spanish)", MACHINE_FLAGS) +GAME( 2006, potc_113gf ,potc_600, sam, sam, sam_state, 0, ROT0, "Stern", "Pirates of the Caribbean v1.13 (German,French)", MACHINE_FLAGS) // Missing version 1.14 October 11, 2006 -GAME( 2006, potc_115af ,potc_600, sam, sam, driver_device, 0, ROT0, "Stern", "Pirates of the Caribbean v1.15 (English,French)", MACHINE_FLAGS) -GAME( 2006, potc_115ai ,potc_600, sam, sam, driver_device, 0, ROT0, "Stern", "Pirates of the Caribbean v1.15 (English,Italian)", MACHINE_FLAGS) -GAME( 2006, potc_115as ,potc_600, sam, sam, driver_device, 0, ROT0, "Stern", "Pirates of the Caribbean v1.15 (English,Spanish)", MACHINE_FLAGS) -GAME( 2006, potc_115gf ,potc_600, sam, sam, driver_device, 0, ROT0, "Stern", "Pirates of the Caribbean v1.15 (German,French)", MACHINE_FLAGS) +GAME( 2006, potc_115af ,potc_600, sam, sam, sam_state, 0, ROT0, "Stern", "Pirates of the Caribbean v1.15 (English,French)", MACHINE_FLAGS) +GAME( 2006, potc_115ai ,potc_600, sam, sam, sam_state, 0, ROT0, "Stern", "Pirates of the Caribbean v1.15 (English,Italian)", MACHINE_FLAGS) +GAME( 2006, potc_115as ,potc_600, sam, sam, sam_state, 0, ROT0, "Stern", "Pirates of the Caribbean v1.15 (English,Spanish)", MACHINE_FLAGS) +GAME( 2006, potc_115gf ,potc_600, sam, sam, sam_state, 0, ROT0, "Stern", "Pirates of the Caribbean v1.15 (German,French)", MACHINE_FLAGS) // Missing version 2.00 April 11, 2007 -GAME( 2007, potc_300af ,potc_600, sam, sam, driver_device, 0, ROT0, "Stern", "Pirates of the Caribbean v3.00 (English,French)", MACHINE_FLAGS) -GAME( 2007, potc_300ai ,potc_600, sam, sam, driver_device, 0, ROT0, "Stern", "Pirates of the Caribbean v3.00 (English,Italian)", MACHINE_FLAGS) -GAME( 2007, potc_300as ,potc_600, sam, sam, driver_device, 0, ROT0, "Stern", "Pirates of the Caribbean v3.00 (English,Spanish)", MACHINE_FLAGS) -GAME( 2007, potc_300gf ,potc_600, sam, sam, driver_device, 0, ROT0, "Stern", "Pirates of the Caribbean v3.00 (German,French)", MACHINE_FLAGS) -GAME( 2007, potc_400af ,potc_600, sam, sam, driver_device, 0, ROT0, "Stern", "Pirates of the Caribbean v4.00 (English,French)", MACHINE_FLAGS) -GAME( 2007, potc_400ai ,potc_600, sam, sam, driver_device, 0, ROT0, "Stern", "Pirates of the Caribbean v4.00 (English,Italian)", MACHINE_FLAGS) -GAME( 2007, potc_400as ,potc_600, sam, sam, driver_device, 0, ROT0, "Stern", "Pirates of the Caribbean v4.00 (English,Spanish)", MACHINE_FLAGS) -GAME( 2007, potc_400gf ,potc_600, sam, sam, driver_device, 0, ROT0, "Stern", "Pirates of the Caribbean v4.00 (German,French)", MACHINE_FLAGS) +GAME( 2007, potc_300af ,potc_600, sam, sam, sam_state, 0, ROT0, "Stern", "Pirates of the Caribbean v3.00 (English,French)", MACHINE_FLAGS) +GAME( 2007, potc_300ai ,potc_600, sam, sam, sam_state, 0, ROT0, "Stern", "Pirates of the Caribbean v3.00 (English,Italian)", MACHINE_FLAGS) +GAME( 2007, potc_300as ,potc_600, sam, sam, sam_state, 0, ROT0, "Stern", "Pirates of the Caribbean v3.00 (English,Spanish)", MACHINE_FLAGS) +GAME( 2007, potc_300gf ,potc_600, sam, sam, sam_state, 0, ROT0, "Stern", "Pirates of the Caribbean v3.00 (German,French)", MACHINE_FLAGS) +GAME( 2007, potc_400af ,potc_600, sam, sam, sam_state, 0, ROT0, "Stern", "Pirates of the Caribbean v4.00 (English,French)", MACHINE_FLAGS) +GAME( 2007, potc_400ai ,potc_600, sam, sam, sam_state, 0, ROT0, "Stern", "Pirates of the Caribbean v4.00 (English,Italian)", MACHINE_FLAGS) +GAME( 2007, potc_400as ,potc_600, sam, sam, sam_state, 0, ROT0, "Stern", "Pirates of the Caribbean v4.00 (English,Spanish)", MACHINE_FLAGS) +GAME( 2007, potc_400gf ,potc_600, sam, sam, sam_state, 0, ROT0, "Stern", "Pirates of the Caribbean v4.00 (German,French)", MACHINE_FLAGS) // Missing version 5.00 September 27, 2007 -GAME( 2007, potc_600 ,0, sam, sam, driver_device, 0, ROT0, "Stern", "Pirates of the Caribbean v6.00 (English,French)", MACHINE_FLAGS) -GAME( 2007, potc_600ai ,potc_600, sam, sam, driver_device, 0, ROT0, "Stern", "Pirates of the Caribbean v6.00 (English,Italian)", MACHINE_FLAGS) -GAME( 2007, potc_600as ,potc_600, sam, sam, driver_device, 0, ROT0, "Stern", "Pirates of the Caribbean v6.00 (English,Spanish)", MACHINE_FLAGS) -GAME( 2007, potc_600gf ,potc_600, sam, sam, driver_device, 0, ROT0, "Stern", "Pirates of the Caribbean v6.00 (German,French)", MACHINE_FLAGS) -GAME( 2008, sh_141 ,0, sam, sam, driver_device, 0, ROT0, "Stern", "Shrek v1.41", MACHINE_FLAGS) -GAME( 2006, skc_090 ,skc_105, sam, sam, driver_device, 0, ROT0, "Stern", "Simpsons Kooky Carnival (Redemption) v0.90 New Jersey", MACHINE_FLAGS) +GAME( 2007, potc_600 ,0, sam, sam, sam_state, 0, ROT0, "Stern", "Pirates of the Caribbean v6.00 (English,French)", MACHINE_FLAGS) +GAME( 2007, potc_600ai ,potc_600, sam, sam, sam_state, 0, ROT0, "Stern", "Pirates of the Caribbean v6.00 (English,Italian)", MACHINE_FLAGS) +GAME( 2007, potc_600as ,potc_600, sam, sam, sam_state, 0, ROT0, "Stern", "Pirates of the Caribbean v6.00 (English,Spanish)", MACHINE_FLAGS) +GAME( 2007, potc_600gf ,potc_600, sam, sam, sam_state, 0, ROT0, "Stern", "Pirates of the Caribbean v6.00 (German,French)", MACHINE_FLAGS) +GAME( 2008, sh_141 ,0, sam, sam, sam_state, 0, ROT0, "Stern", "Shrek v1.41", MACHINE_FLAGS) +GAME( 2006, skc_090 ,skc_105, sam, sam, sam_state, 0, ROT0, "Stern", "Simpsons Kooky Carnival (Redemption) v0.90 New Jersey", MACHINE_FLAGS) // Missing version 1.00 // Missing version 1.01 April 10, 2006 // Missing version 1.02 April 12, 2006 -GAME( 2006, skc_103 ,skc_105, sam, sam, driver_device, 0, ROT0, "Stern", "Simpsons Kooky Carnival (Redemption) v1.03", MACHINE_FLAGS) +GAME( 2006, skc_103 ,skc_105, sam, sam, sam_state, 0, ROT0, "Stern", "Simpsons Kooky Carnival (Redemption) v1.03", MACHINE_FLAGS) // Missing version 1.04 May 12, 2006 -GAME( 2006, skc_105 ,0, sam, sam, driver_device, 0, ROT0, "Stern", "Simpsons Kooky Carnival (Redemption) v1.05", MACHINE_FLAGS) -GAME( 2007, sman_130ef ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.30 (English,French)", MACHINE_FLAGS) -GAME( 2007, sman_130ei ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.30 (English,Italian)", MACHINE_FLAGS) -GAME( 2007, sman_130es ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.30 (English,Spanish)", MACHINE_FLAGS) -GAME( 2007, sman_130gf ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.30 (German,French)", MACHINE_FLAGS) -GAME( 2007, sman_140e ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.40", MACHINE_FLAGS) -GAME( 2007, sman_140ef ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.40 (English,French)", MACHINE_FLAGS) -GAME( 2007, sman_140ei ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.40 (English,Italian)", MACHINE_FLAGS) -GAME( 2007, sman_140es ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.40 (English,Spanish)", MACHINE_FLAGS) -GAME( 2007, sman_140gf ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.40 (German,French)", MACHINE_FLAGS) -GAME( 2007, sman_142e ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.42", MACHINE_FLAGS) -GAME( 2007, sman_160e ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.60", MACHINE_FLAGS) -GAME( 2007, sman_160ef ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.60 (English,French)", MACHINE_FLAGS) -GAME( 2007, sman_160ei ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.60 (English,Italian)", MACHINE_FLAGS) -GAME( 2007, sman_160es ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.60 (English,Spanish)", MACHINE_FLAGS) -GAME( 2007, sman_160gf ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.60 (German,French)", MACHINE_FLAGS) -GAME( 2007, sman_170e ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.70", MACHINE_FLAGS) -GAME( 2007, sman_170ef ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.70 (English,French)", MACHINE_FLAGS) -GAME( 2007, sman_170ei ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.70 (English,Italian)", MACHINE_FLAGS) -GAME( 2007, sman_170es ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.70 (English,Spanish)", MACHINE_FLAGS) -GAME( 2007, sman_170gf ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.70 (German,French)", MACHINE_FLAGS) -GAME( 2007, sman_190e ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.90", MACHINE_FLAGS) -GAME( 2007, sman_190ef ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.90 (English,French)", MACHINE_FLAGS) -GAME( 2007, sman_190ei ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.90 (English,Italian)", MACHINE_FLAGS) -GAME( 2007, sman_190es ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.90 (English,Spanish)", MACHINE_FLAGS) -GAME( 2007, sman_190gf ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.90 (German,French)", MACHINE_FLAGS) -GAME( 2007, sman_192e ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.92", MACHINE_FLAGS) -GAME( 2007, sman_192ef ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.92 (English,French)", MACHINE_FLAGS) -GAME( 2007, sman_192ei ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.92 (English,Italian)", MACHINE_FLAGS) -GAME( 2007, sman_192es ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.92 (English,Spanish)", MACHINE_FLAGS) -GAME( 2007, sman_192gf ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.92 (German,French)", MACHINE_FLAGS) -GAME( 2007, sman_200e ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v2.00", MACHINE_FLAGS) -GAME( 2007, sman_210e ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v2.10", MACHINE_FLAGS) -GAME( 2007, sman_210f ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v2.10 (French)", MACHINE_FLAGS) -GAME( 2007, sman_210ei ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v2.10 (English,Italian)", MACHINE_FLAGS) -GAME( 2007, sman_210es ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v2.10 (English,Spanish)", MACHINE_FLAGS) -GAME( 2007, sman_210gf ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v2.10 (German,French)", MACHINE_FLAGS) -GAME( 2007, sman_220e ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v2.20", MACHINE_FLAGS) -GAME( 2007, sman_230e ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v2.30", MACHINE_FLAGS) -GAME( 2007, sman_240 ,0, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v2.40", MACHINE_FLAGS) -GAME( 2007, wof_100a ,wof_500a, sam, sam, driver_device, 0, ROT0, "Stern", "Wheel of Fortune v1.0", MACHINE_FLAGS) -GAME( 2007, wof_200a ,wof_500a, sam, sam, driver_device, 0, ROT0, "Stern", "Wheel of Fortune v2.0", MACHINE_FLAGS) -GAME( 2007, wof_200f ,wof_500a, sam, sam, driver_device, 0, ROT0, "Stern", "Wheel of Fortune v2.0 (French)", MACHINE_FLAGS) -GAME( 2007, wof_200g ,wof_500a, sam, sam, driver_device, 0, ROT0, "Stern", "Wheel of Fortune v2.0 (German)", MACHINE_FLAGS) -GAME( 2007, wof_200i ,wof_500a, sam, sam, driver_device, 0, ROT0, "Stern", "Wheel of Fortune v2.0 (Italian)", MACHINE_FLAGS) -GAME( 2007, wof_300a ,wof_500a, sam, sam, driver_device, 0, ROT0, "Stern", "Wheel of Fortune v3.0", MACHINE_FLAGS) -GAME( 2007, wof_300f ,wof_500a, sam, sam, driver_device, 0, ROT0, "Stern", "Wheel of Fortune v3.0 (French)", MACHINE_FLAGS) -GAME( 2007, wof_300g ,wof_500a, sam, sam, driver_device, 0, ROT0, "Stern", "Wheel of Fortune v3.0 (German)", MACHINE_FLAGS) -GAME( 2007, wof_300i ,wof_500a, sam, sam, driver_device, 0, ROT0, "Stern", "Wheel of Fortune v3.0 (Italian)", MACHINE_FLAGS) -GAME( 2007, wof_300l ,wof_500a, sam, sam, driver_device, 0, ROT0, "Stern", "Wheel of Fortune v3.0 (Spanish)", MACHINE_FLAGS) -GAME( 2007, wof_400a ,wof_500a, sam, sam, driver_device, 0, ROT0, "Stern", "Wheel of Fortune v4.0", MACHINE_FLAGS) -GAME( 2007, wof_400f ,wof_500a, sam, sam, driver_device, 0, ROT0, "Stern", "Wheel of Fortune v4.0 (French)", MACHINE_FLAGS) -GAME( 2007, wof_400g ,wof_500a, sam, sam, driver_device, 0, ROT0, "Stern", "Wheel of Fortune v4.0 (German)", MACHINE_FLAGS) -GAME( 2007, wof_400i ,wof_500a, sam, sam, driver_device, 0, ROT0, "Stern", "Wheel of Fortune v4.0 (Italian)", MACHINE_FLAGS) -GAME( 2007, wof_400l ,wof_500a, sam, sam, driver_device, 0, ROT0, "Stern", "Wheel of Fortune v4.0 (Spanish)", MACHINE_FLAGS) -GAME( 2007, wof_500a ,0, sam, sam, driver_device, 0, ROT0, "Stern", "Wheel of Fortune v5.0", MACHINE_FLAGS) -GAME( 2007, wof_500f ,wof_500a, sam, sam, driver_device, 0, ROT0, "Stern", "Wheel of Fortune v5.0 (French)", MACHINE_FLAGS) -GAME( 2007, wof_500g ,wof_500a, sam, sam, driver_device, 0, ROT0, "Stern", "Wheel of Fortune v5.0 (German)", MACHINE_FLAGS) -GAME( 2007, wof_500i ,wof_500a, sam, sam, driver_device, 0, ROT0, "Stern", "Wheel of Fortune v5.0 (Italian)", MACHINE_FLAGS) -GAME( 2007, wof_500l ,wof_500a, sam, sam, driver_device, 0, ROT0, "Stern", "Wheel of Fortune v5.0 (Spanish)", MACHINE_FLAGS) -GAME( 2006, wpt_103a ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.03", MACHINE_FLAGS) -GAME( 2006, wpt_105a ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.05", MACHINE_FLAGS) -GAME( 2006, wpt_106a ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.06", MACHINE_FLAGS) -GAME( 2006, wpt_106f ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.06 (French)", MACHINE_FLAGS) -GAME( 2006, wpt_106g ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.06 (German)", MACHINE_FLAGS) -GAME( 2006, wpt_106i ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.06 (Italian)", MACHINE_FLAGS) -GAME( 2006, wpt_106l ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.06 (Spanish)", MACHINE_FLAGS) +GAME( 2006, skc_105 ,0, sam, sam, sam_state, 0, ROT0, "Stern", "Simpsons Kooky Carnival (Redemption) v1.05", MACHINE_FLAGS) +GAME( 2007, sman_130ef ,sman_240, sam, sam, sam_state, 0, ROT0, "Stern", "Spider-Man v1.30 (English,French)", MACHINE_FLAGS) +GAME( 2007, sman_130ei ,sman_240, sam, sam, sam_state, 0, ROT0, "Stern", "Spider-Man v1.30 (English,Italian)", MACHINE_FLAGS) +GAME( 2007, sman_130es ,sman_240, sam, sam, sam_state, 0, ROT0, "Stern", "Spider-Man v1.30 (English,Spanish)", MACHINE_FLAGS) +GAME( 2007, sman_130gf ,sman_240, sam, sam, sam_state, 0, ROT0, "Stern", "Spider-Man v1.30 (German,French)", MACHINE_FLAGS) +GAME( 2007, sman_140e ,sman_240, sam, sam, sam_state, 0, ROT0, "Stern", "Spider-Man v1.40", MACHINE_FLAGS) +GAME( 2007, sman_140ef ,sman_240, sam, sam, sam_state, 0, ROT0, "Stern", "Spider-Man v1.40 (English,French)", MACHINE_FLAGS) +GAME( 2007, sman_140ei ,sman_240, sam, sam, sam_state, 0, ROT0, "Stern", "Spider-Man v1.40 (English,Italian)", MACHINE_FLAGS) +GAME( 2007, sman_140es ,sman_240, sam, sam, sam_state, 0, ROT0, "Stern", "Spider-Man v1.40 (English,Spanish)", MACHINE_FLAGS) +GAME( 2007, sman_140gf ,sman_240, sam, sam, sam_state, 0, ROT0, "Stern", "Spider-Man v1.40 (German,French)", MACHINE_FLAGS) +GAME( 2007, sman_142e ,sman_240, sam, sam, sam_state, 0, ROT0, "Stern", "Spider-Man v1.42", MACHINE_FLAGS) +GAME( 2007, sman_160e ,sman_240, sam, sam, sam_state, 0, ROT0, "Stern", "Spider-Man v1.60", MACHINE_FLAGS) +GAME( 2007, sman_160ef ,sman_240, sam, sam, sam_state, 0, ROT0, "Stern", "Spider-Man v1.60 (English,French)", MACHINE_FLAGS) +GAME( 2007, sman_160ei ,sman_240, sam, sam, sam_state, 0, ROT0, "Stern", "Spider-Man v1.60 (English,Italian)", MACHINE_FLAGS) +GAME( 2007, sman_160es ,sman_240, sam, sam, sam_state, 0, ROT0, "Stern", "Spider-Man v1.60 (English,Spanish)", MACHINE_FLAGS) +GAME( 2007, sman_160gf ,sman_240, sam, sam, sam_state, 0, ROT0, "Stern", "Spider-Man v1.60 (German,French)", MACHINE_FLAGS) +GAME( 2007, sman_170e ,sman_240, sam, sam, sam_state, 0, ROT0, "Stern", "Spider-Man v1.70", MACHINE_FLAGS) +GAME( 2007, sman_170ef ,sman_240, sam, sam, sam_state, 0, ROT0, "Stern", "Spider-Man v1.70 (English,French)", MACHINE_FLAGS) +GAME( 2007, sman_170ei ,sman_240, sam, sam, sam_state, 0, ROT0, "Stern", "Spider-Man v1.70 (English,Italian)", MACHINE_FLAGS) +GAME( 2007, sman_170es ,sman_240, sam, sam, sam_state, 0, ROT0, "Stern", "Spider-Man v1.70 (English,Spanish)", MACHINE_FLAGS) +GAME( 2007, sman_170gf ,sman_240, sam, sam, sam_state, 0, ROT0, "Stern", "Spider-Man v1.70 (German,French)", MACHINE_FLAGS) +GAME( 2007, sman_190e ,sman_240, sam, sam, sam_state, 0, ROT0, "Stern", "Spider-Man v1.90", MACHINE_FLAGS) +GAME( 2007, sman_190ef ,sman_240, sam, sam, sam_state, 0, ROT0, "Stern", "Spider-Man v1.90 (English,French)", MACHINE_FLAGS) +GAME( 2007, sman_190ei ,sman_240, sam, sam, sam_state, 0, ROT0, "Stern", "Spider-Man v1.90 (English,Italian)", MACHINE_FLAGS) +GAME( 2007, sman_190es ,sman_240, sam, sam, sam_state, 0, ROT0, "Stern", "Spider-Man v1.90 (English,Spanish)", MACHINE_FLAGS) +GAME( 2007, sman_190gf ,sman_240, sam, sam, sam_state, 0, ROT0, "Stern", "Spider-Man v1.90 (German,French)", MACHINE_FLAGS) +GAME( 2007, sman_192e ,sman_240, sam, sam, sam_state, 0, ROT0, "Stern", "Spider-Man v1.92", MACHINE_FLAGS) +GAME( 2007, sman_192ef ,sman_240, sam, sam, sam_state, 0, ROT0, "Stern", "Spider-Man v1.92 (English,French)", MACHINE_FLAGS) +GAME( 2007, sman_192ei ,sman_240, sam, sam, sam_state, 0, ROT0, "Stern", "Spider-Man v1.92 (English,Italian)", MACHINE_FLAGS) +GAME( 2007, sman_192es ,sman_240, sam, sam, sam_state, 0, ROT0, "Stern", "Spider-Man v1.92 (English,Spanish)", MACHINE_FLAGS) +GAME( 2007, sman_192gf ,sman_240, sam, sam, sam_state, 0, ROT0, "Stern", "Spider-Man v1.92 (German,French)", MACHINE_FLAGS) +GAME( 2007, sman_200e ,sman_240, sam, sam, sam_state, 0, ROT0, "Stern", "Spider-Man v2.00", MACHINE_FLAGS) +GAME( 2007, sman_210e ,sman_240, sam, sam, sam_state, 0, ROT0, "Stern", "Spider-Man v2.10", MACHINE_FLAGS) +GAME( 2007, sman_210f ,sman_240, sam, sam, sam_state, 0, ROT0, "Stern", "Spider-Man v2.10 (French)", MACHINE_FLAGS) +GAME( 2007, sman_210ei ,sman_240, sam, sam, sam_state, 0, ROT0, "Stern", "Spider-Man v2.10 (English,Italian)", MACHINE_FLAGS) +GAME( 2007, sman_210es ,sman_240, sam, sam, sam_state, 0, ROT0, "Stern", "Spider-Man v2.10 (English,Spanish)", MACHINE_FLAGS) +GAME( 2007, sman_210gf ,sman_240, sam, sam, sam_state, 0, ROT0, "Stern", "Spider-Man v2.10 (German,French)", MACHINE_FLAGS) +GAME( 2007, sman_220e ,sman_240, sam, sam, sam_state, 0, ROT0, "Stern", "Spider-Man v2.20", MACHINE_FLAGS) +GAME( 2007, sman_230e ,sman_240, sam, sam, sam_state, 0, ROT0, "Stern", "Spider-Man v2.30", MACHINE_FLAGS) +GAME( 2007, sman_240 ,0, sam, sam, sam_state, 0, ROT0, "Stern", "Spider-Man v2.40", MACHINE_FLAGS) +GAME( 2007, wof_100a ,wof_500a, sam, sam, sam_state, 0, ROT0, "Stern", "Wheel of Fortune v1.0", MACHINE_FLAGS) +GAME( 2007, wof_200a ,wof_500a, sam, sam, sam_state, 0, ROT0, "Stern", "Wheel of Fortune v2.0", MACHINE_FLAGS) +GAME( 2007, wof_200f ,wof_500a, sam, sam, sam_state, 0, ROT0, "Stern", "Wheel of Fortune v2.0 (French)", MACHINE_FLAGS) +GAME( 2007, wof_200g ,wof_500a, sam, sam, sam_state, 0, ROT0, "Stern", "Wheel of Fortune v2.0 (German)", MACHINE_FLAGS) +GAME( 2007, wof_200i ,wof_500a, sam, sam, sam_state, 0, ROT0, "Stern", "Wheel of Fortune v2.0 (Italian)", MACHINE_FLAGS) +GAME( 2007, wof_300a ,wof_500a, sam, sam, sam_state, 0, ROT0, "Stern", "Wheel of Fortune v3.0", MACHINE_FLAGS) +GAME( 2007, wof_300f ,wof_500a, sam, sam, sam_state, 0, ROT0, "Stern", "Wheel of Fortune v3.0 (French)", MACHINE_FLAGS) +GAME( 2007, wof_300g ,wof_500a, sam, sam, sam_state, 0, ROT0, "Stern", "Wheel of Fortune v3.0 (German)", MACHINE_FLAGS) +GAME( 2007, wof_300i ,wof_500a, sam, sam, sam_state, 0, ROT0, "Stern", "Wheel of Fortune v3.0 (Italian)", MACHINE_FLAGS) +GAME( 2007, wof_300l ,wof_500a, sam, sam, sam_state, 0, ROT0, "Stern", "Wheel of Fortune v3.0 (Spanish)", MACHINE_FLAGS) +GAME( 2007, wof_400a ,wof_500a, sam, sam, sam_state, 0, ROT0, "Stern", "Wheel of Fortune v4.0", MACHINE_FLAGS) +GAME( 2007, wof_400f ,wof_500a, sam, sam, sam_state, 0, ROT0, "Stern", "Wheel of Fortune v4.0 (French)", MACHINE_FLAGS) +GAME( 2007, wof_400g ,wof_500a, sam, sam, sam_state, 0, ROT0, "Stern", "Wheel of Fortune v4.0 (German)", MACHINE_FLAGS) +GAME( 2007, wof_400i ,wof_500a, sam, sam, sam_state, 0, ROT0, "Stern", "Wheel of Fortune v4.0 (Italian)", MACHINE_FLAGS) +GAME( 2007, wof_400l ,wof_500a, sam, sam, sam_state, 0, ROT0, "Stern", "Wheel of Fortune v4.0 (Spanish)", MACHINE_FLAGS) +GAME( 2007, wof_500a ,0, sam, sam, sam_state, 0, ROT0, "Stern", "Wheel of Fortune v5.0", MACHINE_FLAGS) +GAME( 2007, wof_500f ,wof_500a, sam, sam, sam_state, 0, ROT0, "Stern", "Wheel of Fortune v5.0 (French)", MACHINE_FLAGS) +GAME( 2007, wof_500g ,wof_500a, sam, sam, sam_state, 0, ROT0, "Stern", "Wheel of Fortune v5.0 (German)", MACHINE_FLAGS) +GAME( 2007, wof_500i ,wof_500a, sam, sam, sam_state, 0, ROT0, "Stern", "Wheel of Fortune v5.0 (Italian)", MACHINE_FLAGS) +GAME( 2007, wof_500l ,wof_500a, sam, sam, sam_state, 0, ROT0, "Stern", "Wheel of Fortune v5.0 (Spanish)", MACHINE_FLAGS) +GAME( 2006, wpt_103a ,wpt_1400, sam, sam, sam_state, 0, ROT0, "Stern", "World Poker Tour v1.03", MACHINE_FLAGS) +GAME( 2006, wpt_105a ,wpt_1400, sam, sam, sam_state, 0, ROT0, "Stern", "World Poker Tour v1.05", MACHINE_FLAGS) +GAME( 2006, wpt_106a ,wpt_1400, sam, sam, sam_state, 0, ROT0, "Stern", "World Poker Tour v1.06", MACHINE_FLAGS) +GAME( 2006, wpt_106f ,wpt_1400, sam, sam, sam_state, 0, ROT0, "Stern", "World Poker Tour v1.06 (French)", MACHINE_FLAGS) +GAME( 2006, wpt_106g ,wpt_1400, sam, sam, sam_state, 0, ROT0, "Stern", "World Poker Tour v1.06 (German)", MACHINE_FLAGS) +GAME( 2006, wpt_106i ,wpt_1400, sam, sam, sam_state, 0, ROT0, "Stern", "World Poker Tour v1.06 (Italian)", MACHINE_FLAGS) +GAME( 2006, wpt_106l ,wpt_1400, sam, sam, sam_state, 0, ROT0, "Stern", "World Poker Tour v1.06 (Spanish)", MACHINE_FLAGS) // Missing version 1.07 should be 5 different files per language -GAME( 2006, wpt_108a ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.08", MACHINE_FLAGS) -GAME( 2006, wpt_108f ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.08 (French)", MACHINE_FLAGS) -GAME( 2006, wpt_108g ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.08 (German)", MACHINE_FLAGS) -GAME( 2006, wpt_108i ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.08 (Italian)", MACHINE_FLAGS) -GAME( 2006, wpt_108l ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.08 (Spanish)", MACHINE_FLAGS) -GAME( 2006, wpt_109a ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.09", MACHINE_FLAGS) -GAME( 2006, wpt_109f ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.09 (French)", MACHINE_FLAGS) -GAME( 2006, wpt_109f2 ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.09 (French)(alt)", MACHINE_FLAGS) -GAME( 2006, wpt_109g ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.09 (German)", MACHINE_FLAGS) -GAME( 2006, wpt_109i ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.09 (Italian)", MACHINE_FLAGS) -GAME( 2006, wpt_109l ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.09 (Spanish)", MACHINE_FLAGS) -GAME( 2006, wpt_111a ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.11", MACHINE_FLAGS) -GAME( 2006, wpt_111af ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.11 (English,French)", MACHINE_FLAGS) -GAME( 2006, wpt_111ai ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.11 (English,Italian)", MACHINE_FLAGS) -GAME( 2006, wpt_111al ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.11 (English,Spanish)", MACHINE_FLAGS) -GAME( 2006, wpt_111f ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.11 (French)", MACHINE_FLAGS) -GAME( 2006, wpt_111g ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.11 (German)", MACHINE_FLAGS) -GAME( 2006, wpt_111gf ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.11 (German,French)", MACHINE_FLAGS) -GAME( 2006, wpt_111i ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.11 (Italian)", MACHINE_FLAGS) -GAME( 2006, wpt_111l ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.11 (Spanish)", MACHINE_FLAGS) -GAME( 2006, wpt_112a ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.12", MACHINE_FLAGS) -GAME( 2006, wpt_112af ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.12 (English,French)", MACHINE_FLAGS) -GAME( 2006, wpt_112ai ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.12 (English,Italian)", MACHINE_FLAGS) -GAME( 2006, wpt_112al ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.12 (English,Spanish)", MACHINE_FLAGS) -GAME( 2006, wpt_112f ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.12 (French)", MACHINE_FLAGS) -GAME( 2006, wpt_112g ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.12 (German)", MACHINE_FLAGS) -GAME( 2006, wpt_112gf ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.12 (German,French)", MACHINE_FLAGS) -GAME( 2006, wpt_112i ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.12 (Italian)", MACHINE_FLAGS) -GAME( 2006, wpt_112l ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.12 (Spanish)", MACHINE_FLAGS) -GAME( 2006, wpt_1400 ,0, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v14.00", MACHINE_FLAGS) -GAME( 2006, wpt_1400af ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v14.00 (English,French)", MACHINE_FLAGS) -GAME( 2006, wpt_1400ai ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v14.00 (English,Italian)", MACHINE_FLAGS) -GAME( 2006, wpt_1400al ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v14.00 (English,Spanish)", MACHINE_FLAGS) -GAME( 2006, wpt_1400f ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v14.00 (French)", MACHINE_FLAGS) -GAME( 2006, wpt_1400g ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v14.00 (German)", MACHINE_FLAGS) -GAME( 2006, wpt_1400gf ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v14.00 (German,French)", MACHINE_FLAGS) -GAME( 2006, wpt_1400i ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v14.00 (Italian)", MACHINE_FLAGS) -GAME( 2006, wpt_1400l ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v14.00 (Spanish)", MACHINE_FLAGS) +GAME( 2006, wpt_108a ,wpt_1400, sam, sam, sam_state, 0, ROT0, "Stern", "World Poker Tour v1.08", MACHINE_FLAGS) +GAME( 2006, wpt_108f ,wpt_1400, sam, sam, sam_state, 0, ROT0, "Stern", "World Poker Tour v1.08 (French)", MACHINE_FLAGS) +GAME( 2006, wpt_108g ,wpt_1400, sam, sam, sam_state, 0, ROT0, "Stern", "World Poker Tour v1.08 (German)", MACHINE_FLAGS) +GAME( 2006, wpt_108i ,wpt_1400, sam, sam, sam_state, 0, ROT0, "Stern", "World Poker Tour v1.08 (Italian)", MACHINE_FLAGS) +GAME( 2006, wpt_108l ,wpt_1400, sam, sam, sam_state, 0, ROT0, "Stern", "World Poker Tour v1.08 (Spanish)", MACHINE_FLAGS) +GAME( 2006, wpt_109a ,wpt_1400, sam, sam, sam_state, 0, ROT0, "Stern", "World Poker Tour v1.09", MACHINE_FLAGS) +GAME( 2006, wpt_109f ,wpt_1400, sam, sam, sam_state, 0, ROT0, "Stern", "World Poker Tour v1.09 (French)", MACHINE_FLAGS) +GAME( 2006, wpt_109f2 ,wpt_1400, sam, sam, sam_state, 0, ROT0, "Stern", "World Poker Tour v1.09 (French)(alt)", MACHINE_FLAGS) +GAME( 2006, wpt_109g ,wpt_1400, sam, sam, sam_state, 0, ROT0, "Stern", "World Poker Tour v1.09 (German)", MACHINE_FLAGS) +GAME( 2006, wpt_109i ,wpt_1400, sam, sam, sam_state, 0, ROT0, "Stern", "World Poker Tour v1.09 (Italian)", MACHINE_FLAGS) +GAME( 2006, wpt_109l ,wpt_1400, sam, sam, sam_state, 0, ROT0, "Stern", "World Poker Tour v1.09 (Spanish)", MACHINE_FLAGS) +GAME( 2006, wpt_111a ,wpt_1400, sam, sam, sam_state, 0, ROT0, "Stern", "World Poker Tour v1.11", MACHINE_FLAGS) +GAME( 2006, wpt_111af ,wpt_1400, sam, sam, sam_state, 0, ROT0, "Stern", "World Poker Tour v1.11 (English,French)", MACHINE_FLAGS) +GAME( 2006, wpt_111ai ,wpt_1400, sam, sam, sam_state, 0, ROT0, "Stern", "World Poker Tour v1.11 (English,Italian)", MACHINE_FLAGS) +GAME( 2006, wpt_111al ,wpt_1400, sam, sam, sam_state, 0, ROT0, "Stern", "World Poker Tour v1.11 (English,Spanish)", MACHINE_FLAGS) +GAME( 2006, wpt_111f ,wpt_1400, sam, sam, sam_state, 0, ROT0, "Stern", "World Poker Tour v1.11 (French)", MACHINE_FLAGS) +GAME( 2006, wpt_111g ,wpt_1400, sam, sam, sam_state, 0, ROT0, "Stern", "World Poker Tour v1.11 (German)", MACHINE_FLAGS) +GAME( 2006, wpt_111gf ,wpt_1400, sam, sam, sam_state, 0, ROT0, "Stern", "World Poker Tour v1.11 (German,French)", MACHINE_FLAGS) +GAME( 2006, wpt_111i ,wpt_1400, sam, sam, sam_state, 0, ROT0, "Stern", "World Poker Tour v1.11 (Italian)", MACHINE_FLAGS) +GAME( 2006, wpt_111l ,wpt_1400, sam, sam, sam_state, 0, ROT0, "Stern", "World Poker Tour v1.11 (Spanish)", MACHINE_FLAGS) +GAME( 2006, wpt_112a ,wpt_1400, sam, sam, sam_state, 0, ROT0, "Stern", "World Poker Tour v1.12", MACHINE_FLAGS) +GAME( 2006, wpt_112af ,wpt_1400, sam, sam, sam_state, 0, ROT0, "Stern", "World Poker Tour v1.12 (English,French)", MACHINE_FLAGS) +GAME( 2006, wpt_112ai ,wpt_1400, sam, sam, sam_state, 0, ROT0, "Stern", "World Poker Tour v1.12 (English,Italian)", MACHINE_FLAGS) +GAME( 2006, wpt_112al ,wpt_1400, sam, sam, sam_state, 0, ROT0, "Stern", "World Poker Tour v1.12 (English,Spanish)", MACHINE_FLAGS) +GAME( 2006, wpt_112f ,wpt_1400, sam, sam, sam_state, 0, ROT0, "Stern", "World Poker Tour v1.12 (French)", MACHINE_FLAGS) +GAME( 2006, wpt_112g ,wpt_1400, sam, sam, sam_state, 0, ROT0, "Stern", "World Poker Tour v1.12 (German)", MACHINE_FLAGS) +GAME( 2006, wpt_112gf ,wpt_1400, sam, sam, sam_state, 0, ROT0, "Stern", "World Poker Tour v1.12 (German,French)", MACHINE_FLAGS) +GAME( 2006, wpt_112i ,wpt_1400, sam, sam, sam_state, 0, ROT0, "Stern", "World Poker Tour v1.12 (Italian)", MACHINE_FLAGS) +GAME( 2006, wpt_112l ,wpt_1400, sam, sam, sam_state, 0, ROT0, "Stern", "World Poker Tour v1.12 (Spanish)", MACHINE_FLAGS) +GAME( 2006, wpt_1400 ,0, sam, sam, sam_state, 0, ROT0, "Stern", "World Poker Tour v14.00", MACHINE_FLAGS) +GAME( 2006, wpt_1400af ,wpt_1400, sam, sam, sam_state, 0, ROT0, "Stern", "World Poker Tour v14.00 (English,French)", MACHINE_FLAGS) +GAME( 2006, wpt_1400ai ,wpt_1400, sam, sam, sam_state, 0, ROT0, "Stern", "World Poker Tour v14.00 (English,Italian)", MACHINE_FLAGS) +GAME( 2006, wpt_1400al ,wpt_1400, sam, sam, sam_state, 0, ROT0, "Stern", "World Poker Tour v14.00 (English,Spanish)", MACHINE_FLAGS) +GAME( 2006, wpt_1400f ,wpt_1400, sam, sam, sam_state, 0, ROT0, "Stern", "World Poker Tour v14.00 (French)", MACHINE_FLAGS) +GAME( 2006, wpt_1400g ,wpt_1400, sam, sam, sam_state, 0, ROT0, "Stern", "World Poker Tour v14.00 (German)", MACHINE_FLAGS) +GAME( 2006, wpt_1400gf ,wpt_1400, sam, sam, sam_state, 0, ROT0, "Stern", "World Poker Tour v14.00 (German,French)", MACHINE_FLAGS) +GAME( 2006, wpt_1400i ,wpt_1400, sam, sam, sam_state, 0, ROT0, "Stern", "World Poker Tour v14.00 (Italian)", MACHINE_FLAGS) +GAME( 2006, wpt_1400l ,wpt_1400, sam, sam, sam_state, 0, ROT0, "Stern", "World Poker Tour v14.00 (Spanish)", MACHINE_FLAGS) diff --git a/src/mame/drivers/samcoupe.cpp b/src/mame/drivers/samcoupe.cpp index 45e52df5119..065db524e5c 100644 --- a/src/mame/drivers/samcoupe.cpp +++ b/src/mame/drivers/samcoupe.cpp @@ -517,7 +517,7 @@ static SLOT_INTERFACE_START( samcoupe_floppies ) SLOT_INTERFACE_END -static MACHINE_CONFIG_START( samcoupe, samcoupe_state ) +static MACHINE_CONFIG_START( samcoupe ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, SAMCOUPE_XTAL_X1 / 4) /* 6 MHz */ MCFG_CPU_PROGRAM_MAP(samcoupe_mem) @@ -618,5 +618,5 @@ ROM_END GAME DRIVERS ***************************************************************************/ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1989, samcoupe, 0, 0, samcoupe, samcoupe, driver_device, 0, "Miles Gordon Technology plc", "SAM Coupe", 0 ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1989, samcoupe, 0, 0, samcoupe, samcoupe, samcoupe_state, 0, "Miles Gordon Technology plc", "SAM Coupe", 0 ) diff --git a/src/mame/drivers/sandscrp.cpp b/src/mame/drivers/sandscrp.cpp index 32905de2d6a..1b2876e993d 100644 --- a/src/mame/drivers/sandscrp.cpp +++ b/src/mame/drivers/sandscrp.cpp @@ -470,7 +470,7 @@ GFXDECODE_END ***************************************************************************/ -static MACHINE_CONFIG_START( sandscrp, sandscrp_state ) +static MACHINE_CONFIG_START( sandscrp ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000,12000000) /* TMP68HC000N-12 */ @@ -515,7 +515,7 @@ static MACHINE_CONFIG_START( sandscrp, sandscrp_state ) MCFG_GENERIC_LATCH_8_ADD("soundlatch") MCFG_GENERIC_LATCH_8_ADD("soundlatch2") - MCFG_OKIM6295_ADD("oki", 12000000/6, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", 12000000/6, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) /* YM3014B + YM2203C */ @@ -594,6 +594,6 @@ ROM_START( sandscrpb ) /* Different rev PCB */ ROM_END -GAME( 1992, sandscrp, 0, sandscrp, sandscrp, driver_device, 0, ROT90, "Face", "Sand Scorpion", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, sandscrpa, sandscrp, sandscrp, sandscrp, driver_device, 0, ROT90, "Face", "Sand Scorpion (Earlier)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, sandscrpb, sandscrp, sandscrp, sandscrp, driver_device, 0, ROT90, "Face", "Sand Scorpion (Chinese Title Screen, Revised Hardware)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, sandscrp, 0, sandscrp, sandscrp, sandscrp_state, 0, ROT90, "Face", "Sand Scorpion", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, sandscrpa, sandscrp, sandscrp, sandscrp, sandscrp_state, 0, ROT90, "Face", "Sand Scorpion (Earlier)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, sandscrpb, sandscrp, sandscrp, sandscrp, sandscrp_state, 0, ROT90, "Face", "Sand Scorpion (Chinese Title Screen, Revised Hardware)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/sangho.cpp b/src/mame/drivers/sangho.cpp index 682efa2deca..afb334f4102 100644 --- a/src/mame/drivers/sangho.cpp +++ b/src/mame/drivers/sangho.cpp @@ -452,7 +452,7 @@ MACHINE_RESET_MEMBER(sangho_state,sexyboom) } -static MACHINE_CONFIG_START( pzlestar, sangho_state ) +static MACHINE_CONFIG_START( pzlestar ) MCFG_CPU_ADD("maincpu", Z80, XTAL_21_4772MHz/6) // ? MCFG_CPU_PROGRAM_MAP(sangho_map) @@ -471,7 +471,7 @@ static MACHINE_CONFIG_START( pzlestar, sangho_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( sexyboom, sangho_state ) +static MACHINE_CONFIG_START( sexyboom ) MCFG_CPU_ADD("maincpu", Z80, XTAL_21_4772MHz/6) MCFG_CPU_PROGRAM_MAP(sangho_map) @@ -539,4 +539,4 @@ DRIVER_INIT_MEMBER(sangho_state,pzlestar) } GAME( 1991, pzlestar, 0, pzlestar, pzlestar, sangho_state, pzlestar, ROT270, "Sang Ho Soft", "Puzzle Star (Sang Ho Soft)", MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_SOUND ) -GAME( 1992, sexyboom, 0, sexyboom, sexyboom, driver_device, 0, ROT270, "Sang Ho Soft", "Sexy Boom", 0 ) +GAME( 1992, sexyboom, 0, sexyboom, sexyboom, sangho_state, 0, ROT270, "Sang Ho Soft", "Sexy Boom", 0 ) diff --git a/src/mame/drivers/sanremmg.cpp b/src/mame/drivers/sanremmg.cpp index c2e18c7a287..22888bdb30c 100644 --- a/src/mame/drivers/sanremmg.cpp +++ b/src/mame/drivers/sanremmg.cpp @@ -50,7 +50,7 @@ static INPUT_PORTS_START( sanremmg ) INPUT_PORTS_END -static MACHINE_CONFIG_START( sanremmg, sanremmg_state ) +static MACHINE_CONFIG_START( sanremmg ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", ARM7, 50000000) // ??? doesn't seem to be ARM, but what is it? @@ -76,4 +76,4 @@ ROM_START( sanremmg ) ROM_END -GAME( 2003, sanremmg, 0, sanremmg, sanremmg, driver_device, 0, ROT0, "San Remo Games", "unknown San Remo / Elsy Multigame", MACHINE_NO_SOUND | MACHINE_IS_SKELETON ) +GAME( 2003, sanremmg, 0, sanremmg, sanremmg, sanremmg_state, 0, ROT0, "San Remo Games", "unknown San Remo / Elsy Multigame", MACHINE_NO_SOUND | MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/sanremo.cpp b/src/mame/drivers/sanremo.cpp index 87ac4241e53..d013c9f6977 100644 --- a/src/mame/drivers/sanremo.cpp +++ b/src/mame/drivers/sanremo.cpp @@ -342,7 +342,7 @@ GFXDECODE_END * Machine Drivers * *********************************************/ -static MACHINE_CONFIG_START( sanremo, sanremo_state ) +static MACHINE_CONFIG_START( sanremo ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, CPU_CLOCK) @@ -409,5 +409,5 @@ ROM_END * Game Drivers * *********************************************/ -/* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS LAYOUT */ -GAMEL( 1996, number1, 0, sanremo, number1, driver_device, 0, ROT0, "San Remo Games", "Number One", 0, layout_sanremo ) +// YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS LAYOUT +GAMEL( 1996, number1, 0, sanremo, number1, sanremo_state, 0, ROT0, "San Remo Games", "Number One", 0, layout_sanremo ) diff --git a/src/mame/drivers/sansa_fuze.cpp b/src/mame/drivers/sansa_fuze.cpp index 4abf83d485c..d2058b501dc 100644 --- a/src/mame/drivers/sansa_fuze.cpp +++ b/src/mame/drivers/sansa_fuze.cpp @@ -38,7 +38,7 @@ static INPUT_PORTS_START( sansa_fuze ) INPUT_PORTS_END -static MACHINE_CONFIG_START( sansa_fuze, sansa_fuze_state ) +static MACHINE_CONFIG_START( sansa_fuze ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", ARM7, 50000000) // arm based, speed unknown @@ -68,5 +68,5 @@ ROM_START( sanfuze2 ) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -CONS(200?, sanfuze2, 0, 0, sansa_fuze, sansa_fuze, driver_device, 0, "Sandisk", "Sansa Fuze 2", MACHINE_NO_SOUND | MACHINE_IS_SKELETON ) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +CONS( 200?, sanfuze2, 0, 0, sansa_fuze, sansa_fuze, sansa_fuze_state, 0, "Sandisk", "Sansa Fuze 2", MACHINE_NO_SOUND | MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/sapi1.cpp b/src/mame/drivers/sapi1.cpp index cca28a27b31..1fff3a5b994 100644 --- a/src/mame/drivers/sapi1.cpp +++ b/src/mame/drivers/sapi1.cpp @@ -65,7 +65,7 @@ public: DECLARE_WRITE8_MEMBER(sapi3_00_w); DECLARE_READ8_MEMBER(sapi3_25_r); DECLARE_WRITE8_MEMBER(sapi3_25_w); - DECLARE_WRITE8_MEMBER(kbd_put); + void kbd_put(u8 data); DECLARE_DRIVER_INIT(sapizps3); DECLARE_DRIVER_INIT(sapizps3a); DECLARE_DRIVER_INIT(sapizps3b); @@ -467,7 +467,7 @@ READ8_MEMBER( sapi1_state::sapi2_keyboard_data_r) return ret; } -WRITE8_MEMBER( sapi1_state::kbd_put ) +void sapi1_state::kbd_put(u8 data) { m_term_data = data; } @@ -532,7 +532,7 @@ DRIVER_INIT_MEMBER( sapi1_state, sapizps3b ) /* Machine driver */ -static MACHINE_CONFIG_START( sapi1, sapi1_state ) +static MACHINE_CONFIG_START( sapi1 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8080, 2000000) MCFG_CPU_PROGRAM_MAP(sapi1_mem) @@ -559,7 +559,7 @@ static MACHINE_CONFIG_DERIVED( sapi2, sapi1 ) MCFG_CPU_MODIFY("maincpu") MCFG_CPU_PROGRAM_MAP(sapi2_mem) MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0) - MCFG_GENERIC_KEYBOARD_CB(WRITE8(sapi1_state, kbd_put)) + MCFG_GENERIC_KEYBOARD_CB(PUT(sapi1_state, kbd_put)) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( sapi3, sapi2 ) @@ -590,7 +590,7 @@ static MACHINE_CONFIG_DERIVED( sapi3b, sapi3 ) MCFG_SCREEN_NO_PALETTE MACHINE_CONFIG_END -static MACHINE_CONFIG_START( sapi3a, sapi1_state ) +static MACHINE_CONFIG_START( sapi3a ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 2000000) MCFG_CPU_PROGRAM_MAP(sapi3a_mem) @@ -599,7 +599,7 @@ static MACHINE_CONFIG_START( sapi3a, sapi1_state ) /* video hardware */ MCFG_DEVICE_ADD("terminal", GENERIC_TERMINAL, 0) - MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(sapi1_state, kbd_put)) + MCFG_GENERIC_TERMINAL_KEYBOARD_CB(PUT(sapi1_state, kbd_put)) /* internal ram */ MCFG_RAM_ADD(RAM_TAG) @@ -661,9 +661,9 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1985, sapi1, 0, 0, sapi1, sapi1, driver_device, 0, "Tesla", "SAPI-1 ZPS 1", MACHINE_NO_SOUND_HW) -COMP( 1985, sapizps2, sapi1, 0, sapi2, sapi1, driver_device, 0, "Tesla", "SAPI-1 ZPS 2", MACHINE_NO_SOUND_HW) -COMP( 1985, sapizps3, sapi1, 0, sapi3, sapi1, sapi1_state, sapizps3, "Tesla", "SAPI-1 ZPS 3", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW) -COMP( 1985, sapizps3a,sapi1, 0, sapi3a, sapi1, sapi1_state, sapizps3a, "Tesla", "SAPI-1 ZPS 3 (terminal)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW) -COMP( 1985, sapizps3b,sapi1, 0, sapi3b, sapi1, sapi1_state, sapizps3b, "Tesla", "SAPI-1 ZPS 3 (6845)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 1985, sapi1, 0, 0, sapi1, sapi1, sapi1_state, 0, "Tesla", "SAPI-1 ZPS 1", MACHINE_NO_SOUND_HW ) +COMP( 1985, sapizps2, sapi1, 0, sapi2, sapi1, sapi1_state, 0, "Tesla", "SAPI-1 ZPS 2", MACHINE_NO_SOUND_HW ) +COMP( 1985, sapizps3, sapi1, 0, sapi3, sapi1, sapi1_state, sapizps3, "Tesla", "SAPI-1 ZPS 3", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW ) +COMP( 1985, sapizps3a, sapi1, 0, sapi3a, sapi1, sapi1_state, sapizps3a, "Tesla", "SAPI-1 ZPS 3 (terminal)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW ) +COMP( 1985, sapizps3b, sapi1, 0, sapi3b, sapi1, sapi1_state, sapizps3b, "Tesla", "SAPI-1 ZPS 3 (6845)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW ) diff --git a/src/mame/drivers/saturn.cpp b/src/mame/drivers/saturn.cpp index fb6d2c62bf4..ae130d7d837 100644 --- a/src/mame/drivers/saturn.cpp +++ b/src/mame/drivers/saturn.cpp @@ -789,7 +789,7 @@ MACHINE_RESET_MEMBER(sat_console_state,saturn) } -static MACHINE_CONFIG_START( saturn, sat_console_state ) +static MACHINE_CONFIG_START( saturn ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", SH2, MASTER_CLOCK_352/2) // 28.6364 MHz @@ -992,7 +992,7 @@ ROM_START(hisaturn) ROM_COPY( "maincpu",0x000000,0,0x080000) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ CONS( 1994, saturn, 0, 0, saturnus, saturn, sat_console_state, saturnus, "Sega", "Saturn (USA)", MACHINE_NOT_WORKING ) CONS( 1994, saturnjp, saturn, 0, saturnjp, saturn, sat_console_state, saturnjp, "Sega", "Saturn (Japan)", MACHINE_NOT_WORKING ) CONS( 1994, saturneu, saturn, 0, saturneu, saturn, sat_console_state, saturneu, "Sega", "Saturn (PAL)", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/sauro.cpp b/src/mame/drivers/sauro.cpp index 68afb235f4c..d4a0a64c0d0 100644 --- a/src/mame/drivers/sauro.cpp +++ b/src/mame/drivers/sauro.cpp @@ -442,7 +442,7 @@ static GFXDECODE_START( trckydoc ) GFXDECODE_END -static MACHINE_CONFIG_START( tecfri, sauro_state ) +static MACHINE_CONFIG_START( tecfri ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_20MHz/4) /* verified on pcb */ @@ -725,10 +725,10 @@ DRIVER_INIT_MEMBER(sauro_state,tecfri) RAM[0xe000] = 1; } -GAME( 1987, sauro, 0, sauro, tecfri, sauro_state, tecfri, ROT0, "Tecfri", "Sauro", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, saurop, sauro, sauro, tecfri, sauro_state, tecfri, ROT0, "Tecfri (Philko license)", "Sauro (Philko license)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, saurorr, sauro, sauro, tecfri, sauro_state, tecfri, ROT0, "Tecfri (Recreativos Real S.A. license)","Sauro (Recreativos Real S.A. license)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, saurob, sauro, saurob, saurob, sauro_state, tecfri, ROT0, "bootleg", "Sauro (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, sauro, 0, sauro, tecfri, sauro_state, tecfri, ROT0, "Tecfri", "Sauro", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, saurop, sauro, sauro, tecfri, sauro_state, tecfri, ROT0, "Tecfri (Philko license)", "Sauro (Philko license)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, saurorr, sauro, sauro, tecfri, sauro_state, tecfri, ROT0, "Tecfri (Recreativos Real S.A. license)","Sauro (Recreativos Real S.A. license)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, saurob, sauro, saurob, saurob, sauro_state, tecfri, ROT0, "bootleg", "Sauro (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, trckydoc, 0, trckydoc, tecfri, sauro_state, tecfri, ROT0, "Tecfri", "Tricky Doc (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, trckydoc, 0, trckydoc, tecfri, sauro_state, tecfri, ROT0, "Tecfri", "Tricky Doc (set 1)", MACHINE_SUPPORTS_SAVE ) GAME( 1987, trckydoca,trckydoc, trckydoc, trckydoca, sauro_state, tecfri, ROT0, "Tecfri", "Tricky Doc (set 2)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/savia84.cpp b/src/mame/drivers/savia84.cpp index d13777b51ec..e3128c132b4 100644 --- a/src/mame/drivers/savia84.cpp +++ b/src/mame/drivers/savia84.cpp @@ -168,7 +168,7 @@ READ8_MEMBER( savia84_state::savia84_8255_portc_r ) // IN FA - read keyboard return 0xff; } -static MACHINE_CONFIG_START( savia84, savia84_state ) +static MACHINE_CONFIG_START( savia84 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80, XTAL_4MHz / 2) MCFG_CPU_PROGRAM_MAP(savia84_mem) @@ -197,5 +197,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1984, savia84, 0, 0, savia84, savia84, driver_device, 0, "JT Hyan", "Savia 84", MACHINE_NO_SOUND_HW) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1984, savia84, 0, 0, savia84, savia84, savia84_state, 0, "JT Hyan", "Savia 84", MACHINE_NO_SOUND_HW) diff --git a/src/mame/drivers/savquest.cpp b/src/mame/drivers/savquest.cpp index 3d20a6ff9b2..9831faa3648 100644 --- a/src/mame/drivers/savquest.cpp +++ b/src/mame/drivers/savquest.cpp @@ -802,7 +802,7 @@ SLOT_INTERFACE_START( savquest_isa16_cards ) SLOT_INTERFACE("sb16", ISA16_SOUND_BLASTER_16) SLOT_INTERFACE_END -static MACHINE_CONFIG_START( savquest, savquest_state ) +static MACHINE_CONFIG_START( savquest ) MCFG_CPU_ADD("maincpu", PENTIUM2, 450000000) // actually Pentium II 450 MCFG_CPU_PROGRAM_MAP(savquest_map) MCFG_CPU_IO_MAP(savquest_io) @@ -855,4 +855,4 @@ ROM_START( savquest ) ROM_END -GAME(1999, savquest, 0, savquest, savquest, driver_device, 0, ROT0, "Interactive Light", "Savage Quest", MACHINE_IS_SKELETON) +GAME(1999, savquest, 0, savquest, savquest, savquest_state, 0, ROT0, "Interactive Light", "Savage Quest", MACHINE_IS_SKELETON) diff --git a/src/mame/drivers/sbasketb.cpp b/src/mame/drivers/sbasketb.cpp index 85f5f011270..c28297e2e2d 100644 --- a/src/mame/drivers/sbasketb.cpp +++ b/src/mame/drivers/sbasketb.cpp @@ -187,7 +187,7 @@ INTERRUPT_GEN_MEMBER(sbasketb_state::vblank_irq) device.execute().set_input_line(0, HOLD_LINE); } -static MACHINE_CONFIG_START( sbasketb, sbasketb_state ) +static MACHINE_CONFIG_START( sbasketb ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", KONAMI1, 1400000) /* 1.400 MHz ??? */ @@ -416,7 +416,7 @@ DRIVER_INIT_MEMBER(sbasketb_state,sbasketb) { } -GAME( 1984, sbasketb, 0, sbasketb, sbasketb, sbasketb_state, sbasketb, ROT90, "Konami", "Super Basketball (version I, encrypted)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, sbasketh, sbasketb, sbasketbu, sbasketb, driver_device, 0, ROT90, "Konami", "Super Basketball (version H, unprotected)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, sbasketg, sbasketb, sbasketb, sbasketb, sbasketb_state, sbasketb, ROT90, "Konami", "Super Basketball (version G, encrypted)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, sbaskete, sbasketb, sbasketb, sbasketb, sbasketb_state, sbasketb, ROT90, "Konami", "Super Basketball (version E, encrypted)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, sbasketb, 0, sbasketb, sbasketb, sbasketb_state, sbasketb, ROT90, "Konami", "Super Basketball (version I, encrypted)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, sbasketh, sbasketb, sbasketbu, sbasketb, sbasketb_state, 0, ROT90, "Konami", "Super Basketball (version H, unprotected)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, sbasketg, sbasketb, sbasketb, sbasketb, sbasketb_state, sbasketb, ROT90, "Konami", "Super Basketball (version G, encrypted)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, sbaskete, sbasketb, sbasketb, sbasketb, sbasketb_state, sbasketb, ROT90, "Konami", "Super Basketball (version E, encrypted)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/sbc6510.cpp b/src/mame/drivers/sbc6510.cpp index 0d2db6317fa..515147f8757 100644 --- a/src/mame/drivers/sbc6510.cpp +++ b/src/mame/drivers/sbc6510.cpp @@ -278,7 +278,7 @@ static GFXDECODE_START( sbc6510 ) GFXDECODE_END -static MACHINE_CONFIG_START( sbc6510, sbc6510_state ) +static MACHINE_CONFIG_START( sbc6510 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",M6510, XTAL_1MHz) MCFG_CPU_PROGRAM_MAP(sbc6510_mem) @@ -323,5 +323,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 2009, sbc6510, 0, 0, sbc6510, sbc6510, driver_device, 0, "Josip Perusanec", "SBC6510", MACHINE_NOT_WORKING ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ +COMP( 2009, sbc6510, 0, 0, sbc6510, sbc6510, sbc6510_state, 0, "Josip Perusanec", "SBC6510", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/sbowling.cpp b/src/mame/drivers/sbowling.cpp index d0c75f64b7a..2ca1d2759b1 100644 --- a/src/mame/drivers/sbowling.cpp +++ b/src/mame/drivers/sbowling.cpp @@ -401,7 +401,7 @@ PALETTE_INIT_MEMBER(sbowling_state, sbowling) } } -static MACHINE_CONFIG_START( sbowling, sbowling_state ) +static MACHINE_CONFIG_START( sbowling ) MCFG_CPU_ADD("maincpu", I8080, XTAL_19_968MHz/10) /* ? */ MCFG_CPU_PROGRAM_MAP(main_map) MCFG_CPU_IO_MAP(port_map) @@ -448,4 +448,4 @@ ROM_START( sbowling ) ROM_LOAD( "kb09.6m", 0x0400, 0x0400, CRC(e29191a6) SHA1(9a2c78a96ef6d118f4dacbea0b7d454b66a452ae)) ROM_END -GAME( 1982, sbowling, 0, sbowling, sbowling, driver_device, 0, ROT90, "Taito Corporation", "Strike Bowling", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1982, sbowling, 0, sbowling, sbowling, sbowling_state, 0, ROT90, "Taito Corporation", "Strike Bowling", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/sbrain.cpp b/src/mame/drivers/sbrain.cpp index 575d01ebcf6..910ef304943 100644 --- a/src/mame/drivers/sbrain.cpp +++ b/src/mame/drivers/sbrain.cpp @@ -99,7 +99,7 @@ private: required_device m_u0; required_device m_u1; required_device m_ppi; - required_device m_fdc; + required_device m_fdc; required_device m_floppy0; required_device m_floppy1; required_ioport m_vs; @@ -136,7 +136,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( sbrain_subio, AS_IO, 8, sbrain_state ) ADDRESS_MAP_GLOBAL_MASK(0xff) AM_RANGE(0x08, 0x08) AM_READWRITE(port08_r,port08_w) - AM_RANGE(0x10, 0x13) AM_DEVREADWRITE("fdc", fd1791_t, read, write) + AM_RANGE(0x10, 0x13) AM_DEVREADWRITE("fdc", fd1791_device, read, write) ADDRESS_MAP_END // bit 0 is wrong, maybe the whole byte is wrong @@ -317,7 +317,7 @@ uint32_t sbrain_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap return 0; } -static MACHINE_CONFIG_START( sbrain, sbrain_state ) +static MACHINE_CONFIG_START( sbrain ) // basic machine hardware MCFG_CPU_ADD("maincpu", Z80, XTAL_16MHz / 4) MCFG_CPU_PROGRAM_MAP(sbrain_mem) diff --git a/src/mame/drivers/sbrkout.cpp b/src/mame/drivers/sbrkout.cpp index 03027619d66..588e6c000cb 100644 --- a/src/mame/drivers/sbrkout.cpp +++ b/src/mame/drivers/sbrkout.cpp @@ -580,7 +580,7 @@ GFXDECODE_END * *************************************/ -static MACHINE_CONFIG_START( sbrkout, sbrkout_state ) +static MACHINE_CONFIG_START( sbrkout ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502,MAIN_CLOCK/16) /* 375 KHz? Should be 750KHz? */ @@ -706,7 +706,7 @@ ROM_END * *************************************/ -GAMEL( 1978, sbrkout, 0, sbrkout, sbrkout, driver_device, 0, ROT270, "Atari", "Super Breakout (rev 04)", MACHINE_SUPPORTS_SAVE, layout_sbrkout ) -GAMEL( 1978, sbrkout3, sbrkout, sbrkout, sbrkout, driver_device, 0, ROT270, "Atari", "Super Breakout (rev 03)", MACHINE_SUPPORTS_SAVE, layout_sbrkout ) -GAMEL( 1978, sbrkoutc, sbrkout, sbrkout, sbrkoutc, driver_device, 0, ROT270, "Atari", "Super Breakout (Canyon and Vertical Breakout, prototype)", MACHINE_SUPPORTS_SAVE, layout_sbrkout ) -GAMEL( 1978, sbrkoutct, sbrkout, sbrkoutct, sbrkoutct, driver_device, 0, ROT270, "Atari", "Super Breakout (Cocktail, prototype)", MACHINE_SUPPORTS_SAVE, layout_sbrkout ) +GAMEL( 1978, sbrkout, 0, sbrkout, sbrkout, sbrkout_state, 0, ROT270, "Atari", "Super Breakout (rev 04)", MACHINE_SUPPORTS_SAVE, layout_sbrkout ) +GAMEL( 1978, sbrkout3, sbrkout, sbrkout, sbrkout, sbrkout_state, 0, ROT270, "Atari", "Super Breakout (rev 03)", MACHINE_SUPPORTS_SAVE, layout_sbrkout ) +GAMEL( 1978, sbrkoutc, sbrkout, sbrkout, sbrkoutc, sbrkout_state, 0, ROT270, "Atari", "Super Breakout (Canyon and Vertical Breakout, prototype)", MACHINE_SUPPORTS_SAVE, layout_sbrkout ) +GAMEL( 1978, sbrkoutct, sbrkout, sbrkoutct, sbrkoutct, sbrkout_state, 0, ROT270, "Atari", "Super Breakout (Cocktail, prototype)", MACHINE_SUPPORTS_SAVE, layout_sbrkout ) diff --git a/src/mame/drivers/sbugger.cpp b/src/mame/drivers/sbugger.cpp index 1e0a91f9832..e164e7b34d5 100644 --- a/src/mame/drivers/sbugger.cpp +++ b/src/mame/drivers/sbugger.cpp @@ -212,7 +212,7 @@ INPUT_PORTS_END /* machine driver */ -static MACHINE_CONFIG_START( sbugger, sbugger_state ) +static MACHINE_CONFIG_START( sbugger ) MCFG_CPU_ADD("maincpu", I8085A, 6000000) /* 3.00 MHz??? */ MCFG_CPU_PROGRAM_MAP(sbugger_map) @@ -279,5 +279,5 @@ ROM_START( sbuggera ) ROM_LOAD( "spbugger.gfx", 0x0000, 0x1000, CRC(d3f345b5) SHA1(a5082ffc3043352e9b731af95770bdd62fb928bf) ) ROM_END -GAME( 1981, sbugger, 0, sbugger, sbugger, driver_device, 0, ROT270, "Game-A-Tron", "Space Bugger (set 1)", MACHINE_NOT_WORKING | MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE ) -GAME( 1981, sbuggera, sbugger, sbugger, sbugger, driver_device, 0, ROT270, "Game-A-Tron", "Space Bugger (set 2)", MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE ) +GAME( 1981, sbugger, 0, sbugger, sbugger, sbugger_state, 0, ROT270, "Game-A-Tron", "Space Bugger (set 1)", MACHINE_NOT_WORKING | MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE ) +GAME( 1981, sbuggera, sbugger, sbugger, sbugger, sbugger_state, 0, ROT270, "Game-A-Tron", "Space Bugger (set 2)", MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/sc1.cpp b/src/mame/drivers/sc1.cpp index d2cb8ee3b8f..223c6329c18 100644 --- a/src/mame/drivers/sc1.cpp +++ b/src/mame/drivers/sc1.cpp @@ -170,7 +170,7 @@ static INPUT_PORTS_START( sc1 ) INPUT_PORTS_END -static MACHINE_CONFIG_START( sc1, sc1_state ) +static MACHINE_CONFIG_START( sc1 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80, XTAL_4MHz) MCFG_CPU_PROGRAM_MAP(sc1_mem) @@ -198,5 +198,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1989, sc1, 0, 0, sc1, sc1, driver_device, 0, "VEB Mikroelektronik Erfurt", "Schachcomputer SC1", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1989, sc1, 0, 0, sc1, sc1, sc1_state, 0, "VEB Mikroelektronik Erfurt", "Schachcomputer SC1", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/sc2.cpp b/src/mame/drivers/sc2.cpp index 5adc415e5c0..0dc458c6bff 100644 --- a/src/mame/drivers/sc2.cpp +++ b/src/mame/drivers/sc2.cpp @@ -197,7 +197,7 @@ WRITE8_MEMBER( sc2_state::pio_port_b_w ) m_kp_matrix = data; } -static MACHINE_CONFIG_START( sc2, sc2_state ) +static MACHINE_CONFIG_START( sc2 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80, XTAL_4MHz) MCFG_CPU_PROGRAM_MAP(sc2_mem) @@ -236,5 +236,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1981, sc2, 0, 0, sc2, sc2, driver_device, 0, "VEB Mikroelektronik Erfurt", "Schachcomputer SC2", MACHINE_SUPPORTS_SAVE) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1981, sc2, 0, 0, sc2, sc2, sc2_state, 0, "VEB Mikroelektronik Erfurt", "Schachcomputer SC2", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/scm_500.cpp b/src/mame/drivers/scm_500.cpp index 1e5eac486ae..c7f9736bf48 100644 --- a/src/mame/drivers/scm_500.cpp +++ b/src/mame/drivers/scm_500.cpp @@ -37,7 +37,7 @@ void scm_500_state::machine_reset() { } -static MACHINE_CONFIG_START( scm_500, scm_500_state ) +static MACHINE_CONFIG_START( scm_500 ) // unknown CPU @@ -80,5 +80,5 @@ ROM_START( scm_500 ) ROM_LOAD_BIOS( 4, "STNDXGR_307", 0x00000, 0x10000, CRC(4d0d91c6) SHA1(85ff5d43ec331bcd4cde6aaf82f6143acc7e020c) ) // USA 03.07 (could be 500E specific) ROM_END -GAME( 1987, scm_500, 0, scm_500, scm_500, driver_device, 0, ROT0, "Standard Change-Makers", "Standard Change-Makers System 500 / 500E", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 1987, scm_500, 0, scm_500, scm_500, scm_500_state, 0, ROT0, "Standard Change-Makers", "Standard Change-Makers System 500 / 500E", MACHINE_IS_SKELETON_MECHANICAL ) // 1995 - 500E - same basic hw? diff --git a/src/mame/drivers/scobra.cpp b/src/mame/drivers/scobra.cpp index 00893cc6174..9dbf543a12c 100644 --- a/src/mame/drivers/scobra.cpp +++ b/src/mame/drivers/scobra.cpp @@ -761,7 +761,7 @@ static INPUT_PORTS_START( mimonsco ) INPUT_PORTS_END -static MACHINE_CONFIG_START( type1, scobra_state ) +static MACHINE_CONFIG_START( type1 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 18432000/6) /* 3.072 MHz */ @@ -924,7 +924,7 @@ static MACHINE_CONFIG_DERIVED( darkplnt, type2 ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( hustler, scobra_state ) +static MACHINE_CONFIG_START( hustler ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 18432000/6) /* 3.072 MHz */ @@ -1598,29 +1598,29 @@ ROM_START( mimonsco ) ROM_END -GAME( 1981, stratgyx, 0, stratgyx, stratgyx, scramble_state, stratgyx, ROT0, "Konami", "Strategy X", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, stratgys, stratgyx, stratgyx, stratgyx, scramble_state, stratgyx, ROT0, "Konami (Stern Electronics license)", "Strategy X (Stern Electronics)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, strongx, stratgyx, stratgyx, stratgyx, scramble_state, stratgyx, ROT0, "bootleg", "Strong X", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, stratgyx, 0, stratgyx, stratgyx, scobra_state, stratgyx, ROT0, "Konami", "Strategy X", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, stratgys, stratgyx, stratgyx, stratgyx, scobra_state, stratgyx, ROT0, "Konami (Stern Electronics license)", "Strategy X (Stern Electronics)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, strongx, stratgyx, stratgyx, stratgyx, scobra_state, stratgyx, ROT0, "bootleg", "Strong X", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, darkplnt, 0, darkplnt, darkplnt, scramble_state, darkplnt, ROT180, "Stern Electronics", "Dark Planet", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, darkplnt, 0, darkplnt, darkplnt, scobra_state, darkplnt, ROT180, "Stern Electronics", "Dark Planet", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, tazmani2, tazmania, type2, tazmania, scramble_state, tazmani2, ROT90, "Stern Electronics", "Tazz-Mania (set 2, alt hardware)", 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, rescue, 0, rescue, rescue, scramble_state, rescue, ROT90, "Stern Electronics", "Rescue", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, rescueb, rescue, rescueb, rescue, scramble_state, rescue, ROT90, "bootleg (Videl Games)", "Tuono Blu (bootleg of Rescue)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, aponow, rescue, rescue, rescue, scramble_state, rescue, ROT90, "bootleg", "Apocaljpse Now (bootleg of Rescue)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, rescuefe, rescue, rescuefe, rescue, driver_device, 0, ROT90, "bootleg (Free Enterprise Games)", "Rescue (Free Enterprise Games, bootleg)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +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 ) +GAME( 1982, aponow, rescue, rescue, rescue, scobra_state, rescue, ROT90, "bootleg", "Apocaljpse Now (bootleg of Rescue)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, rescuefe, rescue, rescuefe, rescue, scobra_state, 0, ROT90, "bootleg (Free Enterprise Games)", "Rescue (Free Enterprise Games, bootleg)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) -GAME( 1983, minefld, 0, minefld, minefld, scramble_state, minefld, ROT90, "Stern Electronics", "Minefield", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, minefldfe, minefld, minefldfe, minefldfe, driver_device, 0, ROT90, "bootleg (The Logicshop)", "Minefield (The Logicshop, bootleg)", MACHINE_SUPPORTS_SAVE ) // The Logicshop ('licensed' from Free Enterprise Games? +GAME( 1983, minefld, 0, minefld, minefld, scobra_state, minefld, ROT90, "Stern Electronics", "Minefield", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, minefldfe, minefld, minefldfe, minefldfe, scobra_state, 0, ROT90, "bootleg (The Logicshop)", "Minefield (The Logicshop, bootleg)", MACHINE_SUPPORTS_SAVE ) // The Logicshop ('licensed' from Free Enterprise Games? -GAME( 1981, hustler, 0, hustler, hustler, scramble_state, hustler, ROT90, "Konami", "Video Hustler", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, hustlerd, hustler, hustler, hustler, scramble_state, hustlerd, ROT90, "Konami (Dynamo Games license)", "Video Hustler (Dynamo Games)", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, billiard, hustler, hustler, hustler, scramble_state, billiard, ROT90, "bootleg", "The Billiards (Video Hustler bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, hustlerb, hustler, hustlerb, hustler, driver_device, 0, ROT90, "bootleg (Digimatic)", "Video Hustler (bootleg, set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, hustlerb2, hustler, hustler, hustler, scramble_state, hustlerd, ROT90, "bootleg", "Fatsy Gambler (Video Hustler bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, hustlerb4, hustler, hustlerb4, hustler, driver_device, 0, ROT90, "bootleg", "Video Hustler (bootleg, set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, hustlerb5, hustler, hustlerb, hustler, driver_device, 0, ROT90, "bootleg", "Video Hustler (bootleg, set 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, hustler, 0, hustler, hustler, scobra_state, hustler, ROT90, "Konami", "Video Hustler", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, hustlerd, hustler, hustler, hustler, scobra_state, hustlerd, ROT90, "Konami (Dynamo Games license)", "Video Hustler (Dynamo Games)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, billiard, hustler, hustler, hustler, scobra_state, billiard, ROT90, "bootleg", "The Billiards (Video Hustler bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, hustlerb, hustler, hustlerb, hustler, scobra_state, 0, ROT90, "bootleg (Digimatic)", "Video Hustler (bootleg, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, hustlerb2, hustler, hustler, hustler, scobra_state, hustlerd, ROT90, "bootleg", "Fatsy Gambler (Video Hustler bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, hustlerb4, hustler, hustlerb4, hustler, scobra_state, 0, ROT90, "bootleg", "Video Hustler (bootleg, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, hustlerb5, hustler, hustlerb, hustler, scobra_state, 0, ROT90, "bootleg", "Video Hustler (bootleg, set 3)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, mimonkey, 0, mimonkey, mimonkey, scramble_state, mimonkey, ROT90, "Universal Video Games", "Mighty Monkey", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, mimonsco, mimonkey, mimonkey, mimonsco, scramble_state, mimonsco, ROT90, "bootleg", "Mighty Monkey (bootleg on Super Cobra hardware)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, mimonkey, 0, mimonkey, mimonkey, scobra_state, mimonkey, ROT90, "Universal Video Games", "Mighty Monkey", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, mimonsco, mimonkey, mimonkey, mimonsco, scobra_state, mimonsco, ROT90, "bootleg", "Mighty Monkey (bootleg on Super Cobra hardware)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/scorpion.cpp b/src/mame/drivers/scorpion.cpp index decdd724182..edbe114dd87 100644 --- a/src/mame/drivers/scorpion.cpp +++ b/src/mame/drivers/scorpion.cpp @@ -272,7 +272,7 @@ static GFXDECODE_START( quorum ) GFXDECODE_ENTRY( "maincpu", 0x1fb00, quorum_charlayout, 0, 8 ) GFXDECODE_END -static MACHINE_CONFIG_DERIVED_CLASS( scorpion, spectrum_128, scorpion_state ) +static MACHINE_CONFIG_DERIVED( scorpion, spectrum_128 ) MCFG_CPU_MODIFY("maincpu") MCFG_CPU_IO_MAP(scorpion_io) MCFG_CPU_DECRYPTED_OPCODES_MAP(scorpion_switch) @@ -376,9 +376,9 @@ ROM_START( kay1024 ) ROMX_LOAD( "kay1024s.rom", 0x010000, 0x10000, CRC(67351caa) SHA1(1d9c0606b380c000ca1dfa33f90a122ecf9df1f1), ROM_BIOS(3)) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME */ -COMP( 1994, scorpio, spec128, 0, scorpion, spec_plus, driver_device, 0, "Zonov and Co.", "Scorpion ZS-256", 0 ) -COMP( 1991, profi, spec128, 0, profi, spec_plus, driver_device, 0, "Kondor and Kramis", "Profi", MACHINE_NOT_WORKING ) -COMP( 1998, kay1024, spec128, 0, scorpion, spec_plus, driver_device, 0, "NEMO", "Kay 1024", MACHINE_NOT_WORKING ) -COMP( 19??, quorum, spec128, 0, quorum, spec_plus, driver_device, 0, "", "Quorum", MACHINE_NOT_WORKING ) -COMP( 19??, bestzx, spec128, 0, scorpion, spec_plus, driver_device, 0, "", "BestZX", MACHINE_NOT_WORKING ) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 1994, scorpio, spec128, 0, scorpion, spec_plus, scorpion_state, 0, "Zonov and Co.", "Scorpion ZS-256", 0 ) +COMP( 1991, profi, spec128, 0, profi, spec_plus, scorpion_state, 0, "Kondor and Kramis", "Profi", MACHINE_NOT_WORKING ) +COMP( 1998, kay1024, spec128, 0, scorpion, spec_plus, scorpion_state, 0, "NEMO", "Kay 1024", MACHINE_NOT_WORKING ) +COMP( 19??, quorum, spec128, 0, quorum, spec_plus, scorpion_state, 0, "", "Quorum", MACHINE_NOT_WORKING ) +COMP( 19??, bestzx, spec128, 0, scorpion, spec_plus, scorpion_state, 0, "", "BestZX", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/scotrsht.cpp b/src/mame/drivers/scotrsht.cpp index 723bad4544f..51b929d20cd 100644 --- a/src/mame/drivers/scotrsht.cpp +++ b/src/mame/drivers/scotrsht.cpp @@ -184,7 +184,7 @@ static GFXDECODE_START( scotrsht ) GFXDECODE_ENTRY( "gfx2", 0, spritelayout, 16*16*8, 16*8 ) /* sprites */ GFXDECODE_END -static MACHINE_CONFIG_START( scotrsht, scotrsht_state ) +static MACHINE_CONFIG_START( scotrsht ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809, 18432000/6) /* 3.072 MHz */ @@ -251,4 +251,4 @@ ROM_START( scotrsht ) ROM_LOAD( "gx545_6301_8f.bin", 0x0400, 0x0100, CRC(c1c7cf58) SHA1(08452228bf13e43ce4a05806f79e9cd1542416f1) ) /* sprites lookup */ ROM_END -GAME( 1985, scotrsht, 0, scotrsht, scotrsht, driver_device, 0, ROT90,"Konami", "Scooter Shooter", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, scotrsht, 0, scotrsht, scotrsht, scotrsht_state, 0, ROT90,"Konami", "Scooter Shooter", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/scramble.cpp b/src/mame/drivers/scramble.cpp index 6dfe59d3b00..f076240bc59 100644 --- a/src/mame/drivers/scramble.cpp +++ b/src/mame/drivers/scramble.cpp @@ -1291,7 +1291,7 @@ GFXDECODE_END /**************************************************************************/ -static MACHINE_CONFIG_START( scramble, scramble_state ) +static MACHINE_CONFIG_START( scramble ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 18432000/6) /* 3.072 MHz */ @@ -1569,7 +1569,7 @@ static MACHINE_CONFIG_DERIVED( hncholms, hunchbks ) MCFG_VIDEO_START_OVERRIDE(scramble_state,scorpion) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( ad2083, scramble_state ) +static MACHINE_CONFIG_START( ad2083 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 18432000/6) /* 3.072 MHz */ MCFG_CPU_PROGRAM_MAP(ad2083_map) @@ -2257,7 +2257,7 @@ GAME( 1983, mrkougb2, mrkougar, mrkougb, mrkougar, scramble_state, mrkougb, GAME( 1982, hotshock, 0, hotshock, hotshock, scramble_state, hotshock, ROT90, "E.G. Felaco (Domino license)", "Hot Shocker", MACHINE_SUPPORTS_SAVE ) GAME( 1982, hotshockb,hotshock, hotshock, hotshock, scramble_state, hotshock, ROT90, "E.G. Felaco", "Hot Shocker (early revision?)", MACHINE_SUPPORTS_SAVE ) // has "Dudley presents" (protagonist of the game), instead of Domino -GAME( 198?, conquer, 0, hotshock, hotshock, driver_device, 0, ROT90, "", "Conqueror", MACHINE_NOT_WORKING ) +GAME( 198?, conquer, 0, hotshock, hotshock, scramble_state, 0, ROT90, "", "Conqueror", MACHINE_NOT_WORKING ) GAME( 1983, hunchbks, hunchbak, hunchbks, hunchbks, scramble_state, scramble_ppi, ROT90, "Century Electronics", "Hunchback (Scramble hardware)", MACHINE_SUPPORTS_SAVE ) GAME( 1983, hunchbks2,hunchbak, hunchbks, hunchbks, scramble_state, scramble_ppi, ROT90, "bootleg (Sig)", "Hunchback (Scramble hardware, bootleg)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/scregg.cpp b/src/mame/drivers/scregg.cpp index 1070b75929e..06d10f5f168 100644 --- a/src/mame/drivers/scregg.cpp +++ b/src/mame/drivers/scregg.cpp @@ -257,7 +257,7 @@ MACHINE_RESET_MEMBER(scregg_state,scregg) m_btime_tilemap[3] = 0; } -static MACHINE_CONFIG_START( dommy, scregg_state ) +static MACHINE_CONFIG_START( dommy ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, XTAL_12MHz/8) @@ -289,7 +289,7 @@ static MACHINE_CONFIG_START( dommy, scregg_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( scregg, scregg_state ) +static MACHINE_CONFIG_START( scregg ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, XTAL_12MHz/8) @@ -424,7 +424,7 @@ DRIVER_INIT_MEMBER(scregg_state,rockduck) } -GAME( 1983, dommy, 0, dommy, scregg, driver_device, 0, ROT270, "Technos Japan", "Dommy", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, scregg, 0, scregg, scregg, driver_device, 0, ROT270, "Technos Japan", "Scrambled Egg", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, eggs, scregg, scregg, scregg, driver_device, 0, ROT270, "Technos Japan (Universal USA license)", "Eggs (USA)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, dommy, 0, dommy, scregg, scregg_state, 0, ROT270, "Technos Japan", "Dommy", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, scregg, 0, scregg, scregg, scregg_state, 0, ROT270, "Technos Japan", "Scrambled Egg", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, eggs, scregg, scregg, scregg, scregg_state, 0, ROT270, "Technos Japan (Universal USA license)", "Eggs (USA)", MACHINE_SUPPORTS_SAVE ) GAME( 1983, rockduck, 0, scregg, rockduck, scregg_state, rockduck, ROT270, "Datel SAS", "Rock Duck (prototype?)", MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/scv.cpp b/src/mame/drivers/scv.cpp index 821dac8425c..8d48e57dd9f 100644 --- a/src/mame/drivers/scv.cpp +++ b/src/mame/drivers/scv.cpp @@ -651,7 +651,7 @@ static SLOT_INTERFACE_START(scv_cart) SLOT_INTERFACE_INTERNAL("rom128k_ram", SCV_ROM128K_RAM4K) SLOT_INTERFACE_END -static MACHINE_CONFIG_START( scv, scv_state ) +static MACHINE_CONFIG_START( scv ) MCFG_CPU_ADD( "maincpu", UPD7801, XTAL_4MHz ) MCFG_CPU_PROGRAM_MAP( scv_mem ) @@ -712,6 +712,6 @@ ROM_START( scv_pal ) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -CONS( 1984, scv, 0, 0, scv, scv, driver_device, 0, "Epoch", "Super Cassette Vision", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -CONS( 198?, scv_pal, scv, 0, scv_pal, scv, driver_device, 0, "Yeno", "Super Cassette Vision (PAL)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +CONS( 1984, scv, 0, 0, scv, scv, scv_state, 0, "Epoch", "Super Cassette Vision", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +CONS( 198?, scv_pal, scv, 0, scv_pal, scv, scv_state, 0, "Yeno", "Super Cassette Vision (PAL)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/scyclone.cpp b/src/mame/drivers/scyclone.cpp index 260c9d44104..3a13a4f843a 100644 --- a/src/mame/drivers/scyclone.cpp +++ b/src/mame/drivers/scyclone.cpp @@ -41,26 +41,28 @@ #include "emu.h" #include "cpu/z80/z80.h" -#include "screen.h" -#include "speaker.h" +#include "machine/gen_latch.h" #include "machine/mb14241.h" -#include "sound/sn76477.h" #include "sound/dac.h" -#include "machine/gen_latch.h" +#include "sound/sn76477.h" #include "sound/volt_reg.h" +#include "screen.h" +#include "speaker.h" + + class scyclone_state : public driver_device { public: - scyclone_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag), + scyclone_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_stars(*this, "stars"), m_gfx1pal(*this, "gfx1pal"), m_palette(*this, "palette"), m_soundlatch(*this, "soundlatch") - { } + { } DECLARE_WRITE8_MEMBER(vidctrl_w); @@ -593,7 +595,7 @@ INTERRUPT_GEN_MEMBER(scyclone_state::irq) } -static MACHINE_CONFIG_START( scyclone, scyclone_state ) +static MACHINE_CONFIG_START( scyclone ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 5000000/2) // MOSTEK Z80-CPU ? MHz (there's also a 9.987MHz XTAL) intermissions seem driven directly by CPU speed for reference diff --git a/src/mame/drivers/sderby.cpp b/src/mame/drivers/sderby.cpp index 06f2e1bbf90..9dfca7f7fe8 100644 --- a/src/mame/drivers/sderby.cpp +++ b/src/mame/drivers/sderby.cpp @@ -593,7 +593,7 @@ GFXDECODE_END * Machine Drivers * ****************************/ -static MACHINE_CONFIG_START( sderby, sderby_state ) +static MACHINE_CONFIG_START( sderby ) MCFG_CPU_ADD("maincpu", M68000, 12000000) MCFG_CPU_PROGRAM_MAP(sderby_map) @@ -614,11 +614,11 @@ static MACHINE_CONFIG_START( sderby, sderby_state ) MCFG_PALETTE_FORMAT(RRRRRGGGGGBBBBBx) MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", 1056000, OKIM6295_PIN7_HIGH) /* clock frequency & pin 7 not verified */ + MCFG_OKIM6295_ADD("oki", 1056000, PIN7_HIGH) /* clock frequency & pin 7 not verified */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( sderbya, sderby_state ) +static MACHINE_CONFIG_START( sderbya ) MCFG_CPU_ADD("maincpu", M68000, 12000000) MCFG_CPU_PROGRAM_MAP(sderbya_map) @@ -639,11 +639,11 @@ static MACHINE_CONFIG_START( sderbya, sderby_state ) MCFG_PALETTE_FORMAT(RRRRRGGGGGBBBBBx) MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", 1056000, OKIM6295_PIN7_HIGH) /* clock frequency & pin 7 not verified */ + MCFG_OKIM6295_ADD("oki", 1056000, PIN7_HIGH) /* clock frequency & pin 7 not verified */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( luckboom, sderby_state ) +static MACHINE_CONFIG_START( luckboom ) MCFG_CPU_ADD("maincpu", M68000, 12000000) MCFG_CPU_PROGRAM_MAP(luckboom_map) @@ -664,11 +664,11 @@ static MACHINE_CONFIG_START( luckboom, sderby_state ) MCFG_PALETTE_FORMAT(RRRRRGGGGGBBBBBx) MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", 1056000, OKIM6295_PIN7_HIGH) /* clock frequency & pin 7 not verified */ + MCFG_OKIM6295_ADD("oki", 1056000, PIN7_HIGH) /* clock frequency & pin 7 not verified */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( spacewin, sderby_state ) +static MACHINE_CONFIG_START( spacewin ) MCFG_CPU_ADD("maincpu", M68000, 12000000) MCFG_CPU_PROGRAM_MAP(spacewin_map) @@ -689,11 +689,11 @@ static MACHINE_CONFIG_START( spacewin, sderby_state ) MCFG_PALETTE_FORMAT(RRRRRGGGGGBBBBBx) MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", 1056000, OKIM6295_PIN7_HIGH) /* clock frequency & pin 7 not verified */ + MCFG_OKIM6295_ADD("oki", 1056000, PIN7_HIGH) /* clock frequency & pin 7 not verified */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( shinygld, sderby_state ) +static MACHINE_CONFIG_START( shinygld) MCFG_CPU_ADD("maincpu", M68000, XTAL_24MHz / 2) // verified MCFG_CPU_PROGRAM_MAP(shinygld_map) @@ -714,11 +714,11 @@ static MACHINE_CONFIG_START( shinygld, sderby_state ) MCFG_PALETTE_FORMAT(RRRRRGGGGGBBBBBx) MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", XTAL_1_056MHz, OKIM6295_PIN7_HIGH) /* clock frequency & pin 7 verified */ + MCFG_OKIM6295_ADD("oki", XTAL_1_056MHz, PIN7_HIGH) /* clock frequency & pin 7 verified */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( pmroulet, sderby_state ) +static MACHINE_CONFIG_START( pmroulet ) MCFG_CPU_ADD("maincpu", M68000, 12000000) MCFG_CPU_PROGRAM_MAP(roulette_map) @@ -739,7 +739,7 @@ static MACHINE_CONFIG_START( pmroulet, sderby_state ) MCFG_PALETTE_FORMAT(RRRRRGGGGGBBBBBx) MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", 1056000, OKIM6295_PIN7_HIGH) /* clock frequency & pin 7 not verified */ + MCFG_OKIM6295_ADD("oki", 1056000, PIN7_HIGH) /* clock frequency & pin 7 not verified */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -1029,11 +1029,11 @@ ROM_END * Game Drivers * ******************************/ -/* YEAR NAME PARENT MACHINE INPUT INIT ROT COMPANY FULLNAME FLAGS LAYOUT */ -GAMEL( 1996, sderby, 0, sderby, sderby, driver_device, 0, ROT0, "Playmark", "Super Derby (v.07.03)", 0, layout_sderby ) -GAMEL( 1996, sderbya, sderby, sderbya, sderbya, driver_device, 0, ROT0, "Playmark", "Super Derby (v.10.04)", 0, layout_sderby ) -GAMEL( 1996, spacewin, 0, spacewin, spacewin, driver_device, 0, ROT0, "Playmark", "Scacco Matto / Space Win", 0, layout_spacewin ) -GAME ( 1996, shinygld, 0, shinygld, shinygld, driver_device, 0, ROT0, "Playmark", "Shiny Golds", 0 ) -GAMEL( 1997, croupier, 0, pmroulet, pmroulet, driver_device, 0, ROT0, "Playmark", "Croupier (Playmark Roulette v.20.05)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING, layout_pmroulet ) -GAMEL( 1997, croupiera, croupier, pmroulet, pmroulet, driver_device, 0, ROT0, "Playmark", "Croupier (Playmark Roulette v.09.04)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING, layout_pmroulet ) -GAME ( 1996, luckboom, 0, luckboom, luckboom, driver_device, 0, ROT0, "Playmark", "Lucky Boom", 0 ) +// YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS LAYOUT +GAMEL( 1996, sderby, 0, sderby, sderby, sderby_state, 0, ROT0, "Playmark", "Super Derby (v.07.03)", 0, layout_sderby ) +GAMEL( 1996, sderbya, sderby, sderbya, sderbya, sderby_state, 0, ROT0, "Playmark", "Super Derby (v.10.04)", 0, layout_sderby ) +GAMEL( 1996, spacewin, 0, spacewin, spacewin, sderby_state, 0, ROT0, "Playmark", "Scacco Matto / Space Win", 0, layout_spacewin ) +GAME ( 1996, shinygld, 0, shinygld, shinygld, sderby_state, 0, ROT0, "Playmark", "Shiny Golds", 0 ) +GAMEL( 1997, croupier, 0, pmroulet, pmroulet, sderby_state, 0, ROT0, "Playmark", "Croupier (Playmark Roulette v.20.05)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING, layout_pmroulet ) +GAMEL( 1997, croupiera, croupier, pmroulet, pmroulet, sderby_state, 0, ROT0, "Playmark", "Croupier (Playmark Roulette v.09.04)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING, layout_pmroulet ) +GAME ( 1996, luckboom, 0, luckboom, luckboom, sderby_state, 0, ROT0, "Playmark", "Lucky Boom", 0 ) diff --git a/src/mame/drivers/sdk80.cpp b/src/mame/drivers/sdk80.cpp index c5d2f45dd5e..08303254f76 100644 --- a/src/mame/drivers/sdk80.cpp +++ b/src/mame/drivers/sdk80.cpp @@ -115,7 +115,7 @@ static DEVICE_INPUT_DEFAULTS_START( terminal ) // set up terminal to default to DEVICE_INPUT_DEFAULTS( "RS232_STOPBITS", 0xff, RS232_STOPBITS_1 ) DEVICE_INPUT_DEFAULTS_END -static MACHINE_CONFIG_START( sdk80, sdk80_state ) +static MACHINE_CONFIG_START( sdk80 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8080A, XTAL_18_432MHz/9) MCFG_CPU_PROGRAM_MAP(sdk80_mem) @@ -145,5 +145,5 @@ ROM_START( sdk80 ) ROM_LOAD( "mcs80.a14", 0x0000, 0x0400, BAD_DUMP CRC(3ce7bd37) SHA1(04cc67875b53d4cdfefce07041af12be3acedf4f)) // Compiled from manual listing ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1975, sdk80, 0, 0, sdk80, sdk80, driver_device, 0, "Intel", "SDK-80", MACHINE_NO_SOUND_HW ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ +COMP( 1975, sdk80, 0, 0, sdk80, sdk80, sdk80_state, 0, "Intel", "SDK-80", MACHINE_NO_SOUND_HW ) diff --git a/src/mame/drivers/sdk85.cpp b/src/mame/drivers/sdk85.cpp index 7a899e067c1..799e707db90 100644 --- a/src/mame/drivers/sdk85.cpp +++ b/src/mame/drivers/sdk85.cpp @@ -124,7 +124,7 @@ READ8_MEMBER( sdk85_state::kbd_r ) return data; } -static MACHINE_CONFIG_START( sdk85, sdk85_state ) +static MACHINE_CONFIG_START( sdk85 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8085A, XTAL_2MHz) MCFG_CPU_PROGRAM_MAP(sdk85_mem) @@ -154,5 +154,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1977, sdk85, 0, 0, sdk85, sdk85, driver_device, 0, "Intel", "SDK-85", MACHINE_NO_SOUND_HW) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +COMP( 1977, sdk85, 0, 0, sdk85, sdk85, sdk85_state, 0, "Intel", "SDK-85", MACHINE_NO_SOUND_HW) diff --git a/src/mame/drivers/sdk86.cpp b/src/mame/drivers/sdk86.cpp index 435dce2d8c1..f2561185988 100644 --- a/src/mame/drivers/sdk86.cpp +++ b/src/mame/drivers/sdk86.cpp @@ -146,7 +146,7 @@ static DEVICE_INPUT_DEFAULTS_START( terminal ) DEVICE_INPUT_DEFAULTS( "RS232_STOPBITS", 0xff, RS232_STOPBITS_2 ) DEVICE_INPUT_DEFAULTS_END -static MACHINE_CONFIG_START( sdk86, sdk86_state ) +static MACHINE_CONFIG_START( sdk86 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8086, XTAL_14_7456MHz/3) /* divided down by i8284 clock generator; jumper selection allows it to be slowed to 2.5MHz, hence changing divider from 3 to 6 */ MCFG_CPU_PROGRAM_MAP(sdk86_mem) @@ -218,5 +218,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ -COMP( 1979, sdk86, 0, 0, sdk86, sdk86, driver_device, 0, "Intel", "SDK-86", MACHINE_NO_SOUND_HW) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +COMP( 1979, sdk86, 0, 0, sdk86, sdk86, sdk86_state, 0, "Intel", "SDK-86", MACHINE_NO_SOUND_HW) diff --git a/src/mame/drivers/seabattl.cpp b/src/mame/drivers/seabattl.cpp index 914a8ba7c0e..828b4d181db 100644 --- a/src/mame/drivers/seabattl.cpp +++ b/src/mame/drivers/seabattl.cpp @@ -477,7 +477,7 @@ static GFXDECODE_START( seabattl ) GFXDECODE_ENTRY( "gfx3", 0, tiles8x8_layout, 24, 1 ) GFXDECODE_END -static MACHINE_CONFIG_START( seabattl, seabattl_state ) +static MACHINE_CONFIG_START( seabattl ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", S2650, 14318180/4/2) @@ -568,5 +568,5 @@ ROM_START( seabattla ) // this was a very different looking PCB (bootleg called ROM_END -GAMEL(1980, seabattl, 0, seabattl, seabattl, driver_device, 0, ROT0, "Zaccaria", "Sea Battle (set 1)", MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND, layout_seabattl ) -GAMEL(1980, seabattla, seabattl, seabattl, seabattl, driver_device, 0, ROT0, "Zaccaria", "Sea Battle (set 2)", MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND | MACHINE_NOT_WORKING, layout_seabattl ) // incomplete dump +GAMEL(1980, seabattl, 0, seabattl, seabattl, seabattl_state, 0, ROT0, "Zaccaria", "Sea Battle (set 1)", MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND, layout_seabattl ) +GAMEL(1980, seabattla, seabattl, seabattl, seabattl, seabattl_state, 0, ROT0, "Zaccaria", "Sea Battle (set 2)", MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND | MACHINE_NOT_WORKING, layout_seabattl ) // incomplete dump diff --git a/src/mame/drivers/sealy.cpp b/src/mame/drivers/sealy.cpp index 59def9aee7f..bb5114bdeec 100644 --- a/src/mame/drivers/sealy.cpp +++ b/src/mame/drivers/sealy.cpp @@ -95,7 +95,7 @@ static GFXDECODE_START( sealy ) GFXDECODE_END -static MACHINE_CONFIG_START( sealy, sealy_state ) +static MACHINE_CONFIG_START( sealy ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", H83044, MAIN_CLOCK) /* wrong CPU, but we have not a M16C core ATM */ @@ -115,7 +115,7 @@ static MACHINE_CONFIG_START( sealy, sealy_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", MAIN_CLOCK/13, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", MAIN_CLOCK/13, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -136,4 +136,4 @@ ROM_START( crzyddz ) ROM_END -GAME( 2004?, crzyddz, 0, sealy, sealy, driver_device, 0, ROT0, "Sealy", "Crazy Dou Di Zhu", MACHINE_IS_SKELETON ) +GAME( 2004?, crzyddz, 0, sealy, sealy, sealy_state, 0, ROT0, "Sealy", "Crazy Dou Di Zhu", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/seattle.cpp b/src/mame/drivers/seattle.cpp index 030bf9108f6..a1f94c3011e 100644 --- a/src/mame/drivers/seattle.cpp +++ b/src/mame/drivers/seattle.cpp @@ -1735,7 +1735,7 @@ INPUT_PORTS_END #define PCI_ID_VIDEO ":pci:08.0" #define PCI_ID_IDE ":pci:09.0" -static MACHINE_CONFIG_START( seattle_common, seattle_state ) +static MACHINE_CONFIG_START( seattle_common ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", R5000LE, SYSTEM_CLOCK*3) diff --git a/src/mame/drivers/seattlecmp.cpp b/src/mame/drivers/seattlecmp.cpp index baa49c6101a..559e2d52eaa 100644 --- a/src/mame/drivers/seattlecmp.cpp +++ b/src/mame/drivers/seattlecmp.cpp @@ -47,7 +47,8 @@ public: DECLARE_READ16_MEMBER(read); DECLARE_WRITE16_MEMBER(write); - DECLARE_WRITE8_MEMBER(kbd_put); + void kbd_put(u8 data); + private: virtual void machine_reset() override; required_device m_maincpu; @@ -98,13 +99,13 @@ void seattle_comp_state::machine_reset() m_term_data = 0; } -WRITE8_MEMBER( seattle_comp_state::kbd_put ) +void seattle_comp_state::kbd_put(u8 data) { m_term_data = data; m_key_available = 1; } -static MACHINE_CONFIG_START( seattle, seattle_comp_state ) +static MACHINE_CONFIG_START( seattle ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8086, 4000000) // no idea MCFG_CPU_PROGRAM_MAP(seattle_mem) @@ -112,7 +113,7 @@ static MACHINE_CONFIG_START( seattle, seattle_comp_state ) /* video hardware */ MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0) - MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(seattle_comp_state, kbd_put)) + MCFG_GENERIC_TERMINAL_KEYBOARD_CB(PUT(seattle_comp_state, kbd_put)) MACHINE_CONFIG_END /* ROM definition */ @@ -123,5 +124,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1986, seattle, 0, 0, seattle, seattle, driver_device, 0, "Seattle Computer", "SCP-300F", MACHINE_NO_SOUND_HW) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 1986, seattle, 0, 0, seattle, seattle, seattle_comp_state, 0, "Seattle Computer", "SCP-300F", MACHINE_NO_SOUND_HW ) diff --git a/src/mame/drivers/sega_sawatte.cpp b/src/mame/drivers/sega_sawatte.cpp index 1caec4a2748..151bb74649b 100644 --- a/src/mame/drivers/sega_sawatte.cpp +++ b/src/mame/drivers/sega_sawatte.cpp @@ -43,7 +43,7 @@ static INPUT_PORTS_START( sawatte ) INPUT_PORTS_END -static MACHINE_CONFIG_START( sawatte, sawatte_state ) +static MACHINE_CONFIG_START( sawatte ) MCFG_SOFTWARE_LIST_ADD("cart_list", "sawatte") MACHINE_CONFIG_END @@ -51,4 +51,4 @@ ROM_START( sawatte ) ROM_END -CONS( 1996?, sawatte, 0, 0, sawatte, sawatte, driver_device, 0, "Sega", "Sawatte", MACHINE_IS_SKELETON ) +CONS( 1996?, sawatte, 0, 0, sawatte, sawatte, sawatte_state, 0, "Sega", "Sawatte", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/segac2.cpp b/src/mame/drivers/segac2.cpp index 5f71defa48c..6404b277a7a 100644 --- a/src/mame/drivers/segac2.cpp +++ b/src/mame/drivers/segac2.cpp @@ -1524,7 +1524,7 @@ WRITE_LINE_MEMBER(segac2_state::vdp_lv4irqline_callback_c2) } -static MACHINE_CONFIG_START( segac, segac2_state ) +static MACHINE_CONFIG_START( segac ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XL2_CLOCK/6) diff --git a/src/mame/drivers/segacoin.cpp b/src/mame/drivers/segacoin.cpp index aac1d5a2969..9895b038284 100644 --- a/src/mame/drivers/segacoin.cpp +++ b/src/mame/drivers/segacoin.cpp @@ -104,7 +104,7 @@ INPUT_PORTS_END ***************************************************************************/ -static MACHINE_CONFIG_START( westdrm, segacoin_state ) +static MACHINE_CONFIG_START( westdrm ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 8000000) // clock frequency unknown @@ -139,4 +139,4 @@ ROM_START( westdrm ) ROM_END -GAME (1992, westdrm, 0, westdrm, westdrm, driver_device, 0, ROT0, "Sega", "Western Dream", MACHINE_IS_SKELETON_MECHANICAL ) +GAME (1992, westdrm, 0, westdrm, westdrm, segacoin_state, 0, ROT0, "Sega", "Western Dream", MACHINE_IS_SKELETON_MECHANICAL ) diff --git a/src/mame/drivers/segae.cpp b/src/mame/drivers/segae.cpp index cf3b98cbd19..e7e06670405 100644 --- a/src/mame/drivers/segae.cpp +++ b/src/mame/drivers/segae.cpp @@ -1003,7 +1003,7 @@ uint32_t systeme_state::screen_update_systeme(screen_device &screen, bitmap_rgb3 return 0; } -static MACHINE_CONFIG_START( systeme, systeme_state ) +static MACHINE_CONFIG_START( systeme ) MCFG_CPU_ADD("maincpu", Z80, XTAL_10_738635MHz/2) /* Z80B @ 5.3693Mhz */ MCFG_CPU_PROGRAM_MAP(systeme_map) MCFG_CPU_IO_MAP(io_map) @@ -1013,8 +1013,8 @@ static MACHINE_CONFIG_START( systeme, systeme_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(XTAL_10_738635MHz/2, \ - SEGA315_5124_WIDTH , SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH, SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH + 256, \ - SEGA315_5124_HEIGHT_NTSC, SEGA315_5124_TBORDER_START + SEGA315_5124_NTSC_192_TBORDER_HEIGHT, SEGA315_5124_TBORDER_START + SEGA315_5124_NTSC_192_TBORDER_HEIGHT + 192) + 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_systeme) MCFG_DEVICE_ADD("vdp1", SEGA315_5124, 0) @@ -1090,12 +1090,12 @@ DRIVER_INIT_MEMBER(systeme_state, fantzn2) } -// YEAR, NAME, PARENT, MACHINE, INPUT, INIT, MONITOR,COMPANY,FULLNAME,FLAGS -GAME( 1985, hangonjr, 0, hangonjr, hangonjr, driver_device, 0, ROT0, "Sega", "Hang-On Jr.", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, transfrm, 0, systeme, transfrm, driver_device, 0, ROT0, "Sega", "Transformer", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, astrofl, transfrm, systemex_315_5177, transfrm, driver_device, 0, ROT0, "Sega", "Astro Flash (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, ridleofp, 0, ridleofp, ridleofp, driver_device, 0, ROT90, "Sega / Nasco", "Riddle of Pythagoras (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, opaopa, 0, systemeb, opaopa, systeme_state, opaopa, ROT0, "Sega", "Opa Opa (MC-8123, 317-0042)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, fantzn2, 0, systemex, fantzn2, systeme_state, fantzn2, ROT0, "Sega", "Fantasy Zone II - The Tears of Opa-Opa (MC-8123, 317-0057)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, tetrisse, 0, systeme, tetrisse, driver_device, 0, ROT0, "Sega", "Tetris (Japan, System E)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, slapshtr, 0, systeme, slapshtr, driver_device, 0, ROT0, "Sega", "Slap Shooter", MACHINE_SUPPORTS_SAVE) // 1986 date from flyer +// 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.", MACHINE_SUPPORTS_SAVE ) +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 ) +GAME( 1986, ridleofp, 0, ridleofp, ridleofp, systeme_state, 0, ROT90, "Sega / Nasco", "Riddle of Pythagoras (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, opaopa, 0, systemeb, opaopa, systeme_state, opaopa, ROT0, "Sega", "Opa Opa (MC-8123, 317-0042)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, fantzn2, 0, systemex, fantzn2, systeme_state, fantzn2, ROT0, "Sega", "Fantasy Zone II - The Tears of Opa-Opa (MC-8123, 317-0057)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, tetrisse, 0, systeme, tetrisse, systeme_state, 0, ROT0, "Sega", "Tetris (Japan, System E)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, slapshtr, 0, systeme, slapshtr, systeme_state, 0, ROT0, "Sega", "Slap Shooter", MACHINE_SUPPORTS_SAVE) // 1986 date from flyer diff --git a/src/mame/drivers/segag80r.cpp b/src/mame/drivers/segag80r.cpp index 83d34bef13b..edce5584cc7 100644 --- a/src/mame/drivers/segag80r.cpp +++ b/src/mame/drivers/segag80r.cpp @@ -809,7 +809,7 @@ GFXDECODE_END * *************************************/ -static MACHINE_CONFIG_START( g80r_base, segag80r_state ) +static MACHINE_CONFIG_START( g80r_base ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, VIDEO_CLOCK/4) @@ -1591,21 +1591,21 @@ DRIVER_INIT_MEMBER(segag80r_state,sindbadm) // YEAR, NAME, PARENT, MACHINE, INPUT, INIT, MONITOR,COMPANY,FULLNAME,FLAGS /* basic G-80 system with: CPU board, PROM board, Video I board, custom sound boards */ -GAME( 1981, astrob, 0, astrob, astrob, segag80r_state, astrob, ROT270, "Sega", "Astro Blaster (version 3)", MACHINE_IMPERFECT_SOUND ) -GAME( 1981, astrob2, astrob, astrob, astrob2, segag80r_state, astrob, ROT270, "Sega", "Astro Blaster (version 2)", MACHINE_IMPERFECT_SOUND ) -GAME( 1981, astrob2a, astrob, astrob, astrob2, segag80r_state, astrob, ROT270, "Sega", "Astro Blaster (version 2a)", MACHINE_IMPERFECT_SOUND ) -GAME( 1981, astrob1, astrob, astrob, astrob, segag80r_state, astrob, ROT270, "Sega", "Astro Blaster (version 1)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) // instant death if you start game with 1 credit, protection?, bad dump? -GAME( 1981, astrobg, astrob, astrob, astrob, segag80r_state, astrob, ROT270, "Sega", "Astro Blaster (German)", MACHINE_IMPERFECT_SOUND ) -GAME( 1981, 005, 0, 005, 005, segag80r_state, 005, ROT270, "Sega", "005", MACHINE_IMPERFECT_SOUND ) +GAME( 1981, astrob, 0, astrob, astrob, segag80r_state, astrob, ROT270, "Sega", "Astro Blaster (version 3)", MACHINE_IMPERFECT_SOUND ) +GAME( 1981, astrob2, astrob, astrob, astrob2, segag80r_state, astrob, ROT270, "Sega", "Astro Blaster (version 2)", MACHINE_IMPERFECT_SOUND ) +GAME( 1981, astrob2a, astrob, astrob, astrob2, segag80r_state, astrob, ROT270, "Sega", "Astro Blaster (version 2a)", MACHINE_IMPERFECT_SOUND ) +GAME( 1981, astrob1, astrob, astrob, astrob, segag80r_state, astrob, ROT270, "Sega", "Astro Blaster (version 1)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) // instant death if you start game with 1 credit, protection?, bad dump? +GAME( 1981, astrobg, astrob, astrob, astrob, segag80r_state, astrob, ROT270, "Sega", "Astro Blaster (German)", MACHINE_IMPERFECT_SOUND ) +GAME( 1981, 005, 0, 005, 005, segag80r_state, 005, ROT270, "Sega", "005", MACHINE_IMPERFECT_SOUND ) /* basic G-80 system with individual background boards */ -GAME( 1981, spaceod, 0, spaceod, spaceod, segag80r_state, spaceod, ROT270, "Sega", "Space Odyssey (version 2)", MACHINE_IMPERFECT_SOUND ) -GAME( 1981, spaceod2, spaceod, spaceod, spaceod, segag80r_state, spaceod, ROT270, "Sega", "Space Odyssey (version 1)", MACHINE_IMPERFECT_SOUND ) +GAME( 1981, spaceod, 0, spaceod, spaceod, segag80r_state, spaceod, ROT270, "Sega", "Space Odyssey (version 2)", MACHINE_IMPERFECT_SOUND ) +GAME( 1981, spaceod2, spaceod, spaceod, spaceod, segag80r_state, spaceod, ROT270, "Sega", "Space Odyssey (version 1)", MACHINE_IMPERFECT_SOUND ) GAME( 1982, monsterb, 0, monsterb, monsterb, segag80r_state, monsterb, ROT270, "Sega", "Monster Bash", MACHINE_IMPERFECT_SOUND ) /* 2-board G-80 system */ GAME( 1982, monsterb2, monsterb, monster2, monsterb, segag80r_state, monster2, ROT270, "Sega", "Monster Bash (2 board version)", MACHINE_IMPERFECT_SOUND ) -GAME( 1983, pignewt, 0, pignewt, pignewt, segag80r_state, pignewt, ROT270, "Sega", "Pig Newton (version C)", MACHINE_IMPERFECT_SOUND ) +GAME( 1983, pignewt, 0, pignewt, pignewt, segag80r_state, pignewt, ROT270, "Sega", "Pig Newton (version C)", MACHINE_IMPERFECT_SOUND ) GAME( 1983, pignewta, pignewt, pignewt, pignewta, segag80r_state, pignewt, ROT270, "Sega", "Pig Newton (version A)", MACHINE_IMPERFECT_SOUND ) GAME( 1983, sindbadm, 0, sindbadm, sindbadm, segag80r_state, sindbadm, ROT270, "Sega", "Sindbad Mystery", 0 ) diff --git a/src/mame/drivers/segag80v.cpp b/src/mame/drivers/segag80v.cpp index 7cf4919bd57..58b4eb901c0 100644 --- a/src/mame/drivers/segag80v.cpp +++ b/src/mame/drivers/segag80v.cpp @@ -870,7 +870,7 @@ static const char *const zektor_sample_names[] = * *************************************/ -static MACHINE_CONFIG_START( g80v_base, segag80v_state ) +static MACHINE_CONFIG_START( g80v_base ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, VIDEO_CLOCK/4) @@ -1385,15 +1385,15 @@ DRIVER_INIT_MEMBER(segag80v_state,startrek) * *************************************/ -// YEAR, NAME, PARENT, MACHINE, INPUT, INIT, MONITOR, COMPANY,FULLNAME,FLAGS -GAME( 1981, elim2, 0, elim2, elim2, segag80v_state, elim2, ORIENTATION_FLIP_Y, "Gremlin", "Eliminator (2 Players, set 1)", MACHINE_IMPERFECT_SOUND ) -GAME( 1981, elim2a, elim2, elim2, elim2, segag80v_state, elim2, ORIENTATION_FLIP_Y, "Gremlin", "Eliminator (2 Players, set 2)", MACHINE_IMPERFECT_SOUND ) -GAME( 1981, elim2c, elim2, elim2, elim2c, segag80v_state, elim2, ORIENTATION_FLIP_Y, "Gremlin", "Eliminator (2 Players, cocktail)", MACHINE_IMPERFECT_SOUND ) -GAME( 1981, elim4, elim2, elim2, elim4, segag80v_state, elim4, ORIENTATION_FLIP_Y, "Gremlin", "Eliminator (4 Players)", MACHINE_IMPERFECT_SOUND ) -GAME( 1981, elim4p, elim2, elim2, elim4, segag80v_state, elim4, ORIENTATION_FLIP_Y, "Gremlin", "Eliminator (4 Players, prototype)", MACHINE_IMPERFECT_SOUND ) -GAME( 1981, spacfury, 0, spacfury, spacfury, segag80v_state, spacfury, ORIENTATION_FLIP_Y, "Sega", "Space Fury (revision C)", MACHINE_IMPERFECT_SOUND ) -GAME( 1981, spacfurya, spacfury, spacfury, spacfury, segag80v_state, spacfury, ORIENTATION_FLIP_Y, "Sega", "Space Fury (revision A)", MACHINE_IMPERFECT_SOUND ) -GAME( 1981, spacfuryb, spacfury, spacfury, spacfury, segag80v_state, spacfury, ORIENTATION_FLIP_Y, "Sega", "Space Fury (revision B)", MACHINE_IMPERFECT_SOUND ) -GAME( 1982, zektor, 0, zektor, zektor, segag80v_state, zektor, ORIENTATION_FLIP_Y, "Sega", "Zektor (revision B)", MACHINE_IMPERFECT_SOUND ) -GAME( 1982, tacscan, 0, tacscan, tacscan, segag80v_state, tacscan, ORIENTATION_FLIP_X ^ ROT270, "Sega", "Tac/Scan", MACHINE_IMPERFECT_SOUND ) -GAME( 1982, startrek, 0, startrek, startrek, segag80v_state, startrek, ORIENTATION_FLIP_Y, "Sega", "Star Trek", MACHINE_IMPERFECT_SOUND ) +// YEAR, NAME, PARENT, MACHINE, INPUT, STATE INIT, MONITOR, COMPANY, FULLNAME,FLAGS +GAME( 1981, elim2, 0, elim2, elim2, segag80v_state, elim2, ORIENTATION_FLIP_Y, "Gremlin", "Eliminator (2 Players, set 1)", MACHINE_IMPERFECT_SOUND ) +GAME( 1981, elim2a, elim2, elim2, elim2, segag80v_state, elim2, ORIENTATION_FLIP_Y, "Gremlin", "Eliminator (2 Players, set 2)", MACHINE_IMPERFECT_SOUND ) +GAME( 1981, elim2c, elim2, elim2, elim2c, segag80v_state, elim2, ORIENTATION_FLIP_Y, "Gremlin", "Eliminator (2 Players, cocktail)", MACHINE_IMPERFECT_SOUND ) +GAME( 1981, elim4, elim2, elim2, elim4, segag80v_state, elim4, ORIENTATION_FLIP_Y, "Gremlin", "Eliminator (4 Players)", MACHINE_IMPERFECT_SOUND ) +GAME( 1981, elim4p, elim2, elim2, elim4, segag80v_state, elim4, ORIENTATION_FLIP_Y, "Gremlin", "Eliminator (4 Players, prototype)", MACHINE_IMPERFECT_SOUND ) +GAME( 1981, spacfury, 0, spacfury, spacfury, segag80v_state, spacfury, ORIENTATION_FLIP_Y, "Sega", "Space Fury (revision C)", MACHINE_IMPERFECT_SOUND ) +GAME( 1981, spacfurya, spacfury, spacfury, spacfury, segag80v_state, spacfury, ORIENTATION_FLIP_Y, "Sega", "Space Fury (revision A)", MACHINE_IMPERFECT_SOUND ) +GAME( 1981, spacfuryb, spacfury, spacfury, spacfury, segag80v_state, spacfury, ORIENTATION_FLIP_Y, "Sega", "Space Fury (revision B)", MACHINE_IMPERFECT_SOUND ) +GAME( 1982, zektor, 0, zektor, zektor, segag80v_state, zektor, ORIENTATION_FLIP_Y, "Sega", "Zektor (revision B)", MACHINE_IMPERFECT_SOUND ) +GAME( 1982, tacscan, 0, tacscan, tacscan, segag80v_state, tacscan, ORIENTATION_FLIP_X ^ ROT270, "Sega", "Tac/Scan", MACHINE_IMPERFECT_SOUND ) +GAME( 1982, startrek, 0, startrek, startrek, segag80v_state, startrek, ORIENTATION_FLIP_Y, "Sega", "Star Trek", MACHINE_IMPERFECT_SOUND ) diff --git a/src/mame/drivers/segahang.cpp b/src/mame/drivers/segahang.cpp index 13e3a4ea4ea..dbf08b70271 100644 --- a/src/mame/drivers/segahang.cpp +++ b/src/mame/drivers/segahang.cpp @@ -746,7 +746,7 @@ GFXDECODE_END // GENERIC MACHINE DRIVERS //************************************************************************** -static MACHINE_CONFIG_START( shared_base, segahang_state ) +static MACHINE_CONFIG_START( shared_base ) // basic machine hardware MCFG_CPU_ADD("maincpu", M68000, MASTER_CLOCK_25MHz/4) diff --git a/src/mame/drivers/segajw.cpp b/src/mame/drivers/segajw.cpp index 6cce002e225..f8c8f3b6a77 100644 --- a/src/mame/drivers/segajw.cpp +++ b/src/mame/drivers/segajw.cpp @@ -356,7 +356,7 @@ static ADDRESS_MAP_START( ramdac_map, AS_0, 8, segajw_state ) AM_RANGE(0x000, 0x3ff) AM_DEVREADWRITE("ramdac",ramdac_device,ramdac_pal_r,ramdac_rgb666_w) ADDRESS_MAP_END -static MACHINE_CONFIG_START( segajw, segajw_state ) +static MACHINE_CONFIG_START( segajw ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",M68000,8000000) // unknown clock MCFG_CPU_PROGRAM_MAP(segajw_map) @@ -428,4 +428,4 @@ ROM_START( segajw ) ROM_END -GAMEL( 1991, segajw, 0, segajw, segajw, driver_device, 0, ROT0, "Sega", "Joker's Wild (Rev. B)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE, layout_segajw ) +GAMEL( 1991, segajw, 0, segajw, segajw, segajw_state, 0, ROT0, "Sega", "Joker's Wild (Rev. B)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE, layout_segajw ) diff --git a/src/mame/drivers/segald.cpp b/src/mame/drivers/segald.cpp index 8a950115fda..82df5949cbc 100644 --- a/src/mame/drivers/segald.cpp +++ b/src/mame/drivers/segald.cpp @@ -367,7 +367,7 @@ void segald_state::machine_start() /* DRIVER */ -static MACHINE_CONFIG_START( astron, segald_state ) +static MACHINE_CONFIG_START( astron ) /* main cpu */ MCFG_CPU_ADD("maincpu", Z80, SCHEMATIC_CLOCK/4) @@ -605,10 +605,10 @@ DRIVER_INIT_MEMBER(segald_state,astron) } -// YEAR, NAME, PARENT, MACHINE,INPUT, INIT, MONITOR,COMPANY,FULLNAME,FLAGS -GAME( 1983, astron, 0, astron, astron, segald_state, astron, ROT0, "Sega", "Astron Belt", MACHINE_NOT_WORKING|MACHINE_NO_SOUND) -GAME( 1983, astronp, astron, astron, astron, segald_state, astron, ROT0, "Sega", "Astron Belt (Pioneer LDV1000)", MACHINE_NOT_WORKING|MACHINE_NO_SOUND) +// YEAR, NAME, PARENT, MACHINE,INPUT, STATE, INIT, MONITOR,COMPANY,FULLNAME,FLAGS +GAME( 1983, astron, 0, astron, astron, segald_state, astron, ROT0, "Sega", "Astron Belt", MACHINE_NOT_WORKING|MACHINE_NO_SOUND) +GAME( 1983, astronp, astron, astron, astron, segald_state, astron, ROT0, "Sega", "Astron Belt (Pioneer LDV1000)", MACHINE_NOT_WORKING|MACHINE_NO_SOUND) GAME( 1983, cobraseg, astron, astron, astron, segald_state, astron, ROT0, "Sega", "Cobra Command (Sega LaserDisc Hardware)", MACHINE_NOT_WORKING|MACHINE_NO_SOUND) -GAME( 1983, galaxyr, 0, astron, astron, segald_state, astron, ROT0, "Sega", "Galaxy Ranger", MACHINE_NOT_WORKING|MACHINE_NO_SOUND) -GAME( 1983, galaxyrp, galaxyr, astron, astron, segald_state, astron, ROT0, "Sega", "Galaxy Ranger (Pioneer LDV1000)", MACHINE_NOT_WORKING|MACHINE_NO_SOUND) -GAME( 1983, sblazerp, galaxyr, astron, astron, segald_state, astron, ROT0, "Sega", "Star Blazer (Pioneer LDV1000)", MACHINE_NOT_WORKING|MACHINE_NO_SOUND) +GAME( 1983, galaxyr, 0, astron, astron, segald_state, astron, ROT0, "Sega", "Galaxy Ranger", MACHINE_NOT_WORKING|MACHINE_NO_SOUND) +GAME( 1983, galaxyrp, galaxyr, astron, astron, segald_state, astron, ROT0, "Sega", "Galaxy Ranger (Pioneer LDV1000)", MACHINE_NOT_WORKING|MACHINE_NO_SOUND) +GAME( 1983, sblazerp, galaxyr, astron, astron, segald_state, astron, ROT0, "Sega", "Star Blazer (Pioneer LDV1000)", MACHINE_NOT_WORKING|MACHINE_NO_SOUND) diff --git a/src/mame/drivers/segam1.cpp b/src/mame/drivers/segam1.cpp index 2a295cf24a1..be95c899a05 100644 --- a/src/mame/drivers/segam1.cpp +++ b/src/mame/drivers/segam1.cpp @@ -86,7 +86,7 @@ INPUT_PORTS_END -static MACHINE_CONFIG_START( segam1, segam1_state ) +static MACHINE_CONFIG_START( segam1 ) MCFG_CPU_ADD("maincpu", M68000, XTAL_20MHz/2) MCFG_CPU_PROGRAM_MAP(segam1_map) @@ -140,5 +140,5 @@ ROM_START( unkm1 ) // 1992.01.31 string // dumps of the X-Board part, and the LINK PCB are missing. ROM_END -GAME( 199?, bingpty, 0, segam1, segam1, driver_device, 0, ROT0, "Sega", "Bingo Party Multicart (Rev B) (M1 Satellite board)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -GAME( 1992, unkm1, 0, segam1, segam1, driver_device, 0, ROT0, "Sega", "Unknown Sega gambling game (M1 Satellite board)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +GAME( 199?, bingpty, 0, segam1, segam1, segam1_state, 0, ROT0, "Sega", "Bingo Party Multicart (Rev B) (M1 Satellite board)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +GAME( 1992, unkm1, 0, segam1, segam1, segam1_state, 0, ROT0, "Sega", "Unknown Sega gambling game (M1 Satellite board)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/segaorun.cpp b/src/mame/drivers/segaorun.cpp index 6597cc255c4..6df2d4c3ffd 100644 --- a/src/mame/drivers/segaorun.cpp +++ b/src/mame/drivers/segaorun.cpp @@ -1183,7 +1183,7 @@ GFXDECODE_END // GENERIC MACHINE DRIVERS //************************************************************************** -static MACHINE_CONFIG_START( outrun_base, segaorun_state ) +static MACHINE_CONFIG_START( outrun_base ) // basic machine hardware MCFG_CPU_ADD("maincpu", M68000, MASTER_CLOCK/4) diff --git a/src/mame/drivers/segapico.cpp b/src/mame/drivers/segapico.cpp index 686a69e889f..1095dd02d0e 100644 --- a/src/mame/drivers/segapico.cpp +++ b/src/mame/drivers/segapico.cpp @@ -120,6 +120,7 @@ C = MB3514 / 9325 M36 #include "emu.h" #include "includes/megadriv.h" #include "sound/315-5641.h" +#include "bus/megadrive/rom.h" #include "softlist.h" @@ -384,7 +385,7 @@ MACHINE_START_MEMBER(pico_state,pico) m_vdp->stop_timers(); } -static MACHINE_CONFIG_START( pico, pico_state ) +static MACHINE_CONFIG_START( pico ) MCFG_FRAGMENT_ADD( md_ntsc ) MCFG_CPU_MODIFY("maincpu") @@ -405,7 +406,7 @@ static MACHINE_CONFIG_START( pico, pico_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.16) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( picopal, pico_state ) +static MACHINE_CONFIG_START( picopal ) MCFG_FRAGMENT_ADD( md_pal ) MCFG_CPU_MODIFY("maincpu") @@ -596,7 +597,7 @@ MACHINE_START_MEMBER(copera_state,copera) } -static MACHINE_CONFIG_START( copera, copera_state ) +static MACHINE_CONFIG_START( copera ) MCFG_FRAGMENT_ADD( md_ntsc ) MCFG_CPU_MODIFY("maincpu") @@ -624,4 +625,4 @@ ROM_START( copera ) ROM_REGION( 0x10000, "soundcpu", ROMREGION_ERASEFF) ROM_END -CONS( 1993, copera, 0, 0, copera, pico, pico_base_state, picoj, "Yamaha / Sega", "Yamaha Mixt Book Player Copera", MACHINE_NOT_WORKING) +CONS( 1993, copera, 0, 0, copera, pico, copera_state, picoj, "Yamaha / Sega", "Yamaha Mixt Book Player Copera", MACHINE_NOT_WORKING) diff --git a/src/mame/drivers/segapm.cpp b/src/mame/drivers/segapm.cpp index 1f70e62bda1..eeb729d257e 100644 --- a/src/mame/drivers/segapm.cpp +++ b/src/mame/drivers/segapm.cpp @@ -52,7 +52,7 @@ INPUT_PORTS_END -static MACHINE_CONFIG_START( segapm, segapm_state ) +static MACHINE_CONFIG_START( segapm ) MCFG_CPU_ADD("maincpu", M68000, 8000000) // ?? MCFG_CPU_PROGRAM_MAP(segapm_map) @@ -80,5 +80,5 @@ ROM_START( segapm ) // was more than one cartridge available? if so softlist the // todo, sh2 bios roms etc. ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -CONS( 1996, segapm, 0, 0, segapm, segapm, driver_device, 0, "Sega", "Picture Magic", MACHINE_NO_SOUND | MACHINE_NOT_WORKING ) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +CONS( 1996, segapm, 0, 0, segapm, segapm, segapm_state, 0, "Sega", "Picture Magic", MACHINE_NO_SOUND | MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/segas16a.cpp b/src/mame/drivers/segas16a.cpp index 47cd46c8d8e..6df55e060f2 100644 --- a/src/mame/drivers/segas16a.cpp +++ b/src/mame/drivers/segas16a.cpp @@ -1868,7 +1868,7 @@ GFXDECODE_END // GENERIC MACHINE DRIVERS //************************************************************************** -static MACHINE_CONFIG_START( system16a, segas16a_state ) +static MACHINE_CONFIG_START( system16a ) // basic machine hardware MCFG_CPU_ADD("maincpu", M68000, 10000000) diff --git a/src/mame/drivers/segas16b.cpp b/src/mame/drivers/segas16b.cpp index 1ae43e589c7..d875f81b30a 100644 --- a/src/mame/drivers/segas16b.cpp +++ b/src/mame/drivers/segas16b.cpp @@ -3596,7 +3596,7 @@ GFXDECODE_END // GENERIC MACHINE DRIVERS //************************************************************************** -static MACHINE_CONFIG_START( system16b, segas16b_state ) +static MACHINE_CONFIG_START( system16b ) // basic machine hardware MCFG_CPU_ADD("maincpu", M68000, MASTER_CLOCK_10MHz) @@ -3748,7 +3748,7 @@ static MACHINE_CONFIG_DERIVED( fpointbl, system16b ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( lockonph, segas16b_state ) +static MACHINE_CONFIG_START( lockonph ) // basic machine hardware MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz/2) // ? @@ -3787,7 +3787,7 @@ static MACHINE_CONFIG_START( lockonph, segas16b_state ) MCFG_SOUND_ROUTE(0, "mono", 0.5) MCFG_SOUND_ROUTE(1, "mono", 0.5) - MCFG_OKIM6295_ADD("oki", XTAL_16MHz/16, OKIM6295_PIN7_LOW) // clock / pin not verified + MCFG_OKIM6295_ADD("oki", XTAL_16MHz/16, PIN7_LOW) // clock / pin not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.2) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.2) @@ -8665,7 +8665,7 @@ DRIVER_INIT_MEMBER(segas16b_state,dunkshot_5358_small) { DRIVER_INIT_CALL(generic_5358_small); m_custom_io_r = read16_delegate(FUNC(segas16b_state::dunkshot_custom_io_r), this); - m_tilemap_type = SEGAIC16_TILEMAP_16B_ALT; + m_tilemap_type = segaic16_video_device::TILEMAP_16B_ALT; } DRIVER_INIT_MEMBER(segas16b_state,exctleag_5358) @@ -8740,13 +8740,13 @@ DRIVER_INIT_MEMBER(segas16b_state,sjryuko_5358_small) DRIVER_INIT_CALL(generic_5358_small); m_custom_io_r = read16_delegate(FUNC(segas16b_state::sjryuko_custom_io_r), this); m_custom_io_w = write16_delegate(FUNC(segas16b_state::sjryuko_custom_io_w), this); - m_tilemap_type = SEGAIC16_TILEMAP_16B_ALT; + m_tilemap_type = segaic16_video_device::TILEMAP_16B_ALT; } DRIVER_INIT_MEMBER(segas16b_state,timescan_5358_small) { DRIVER_INIT_CALL(generic_5358_small); - m_tilemap_type = SEGAIC16_TILEMAP_16B_ALT; + m_tilemap_type = segaic16_video_device::TILEMAP_16B_ALT; } DRIVER_INIT_MEMBER(segas16b_state,tturf_5704) @@ -9398,7 +9398,7 @@ void isgsm_state::machine_reset() } -static MACHINE_CONFIG_DERIVED_CLASS( isgsm, system16b, isgsm_state ) +static MACHINE_CONFIG_DERIVED( isgsm, system16b ) // basic machine hardware MCFG_DEVICE_REMOVE("maincpu") diff --git a/src/mame/drivers/segas18.cpp b/src/mame/drivers/segas18.cpp index c44c31e66cf..1da8c95315a 100644 --- a/src/mame/drivers/segas18.cpp +++ b/src/mame/drivers/segas18.cpp @@ -1356,7 +1356,7 @@ WRITE_LINE_MEMBER(segas18_state::ym3438_irq_handler) } -static MACHINE_CONFIG_START( system18, segas18_state ) +static MACHINE_CONFIG_START( system18 ) // basic machine hardware MCFG_CPU_ADD("maincpu", M68000, 10000000) diff --git a/src/mame/drivers/segas24.cpp b/src/mame/drivers/segas24.cpp index 7a9b1b7255d..4d3c87175f3 100644 --- a/src/mame/drivers/segas24.cpp +++ b/src/mame/drivers/segas24.cpp @@ -1100,15 +1100,15 @@ static ADDRESS_MAP_START( system24_cpu1_map, AS_PROGRAM, 16, segas24_state ) AM_RANGE(0x000000, 0x03ffff) AM_MIRROR(0x040000) AM_ROM AM_REGION("maincpu", 0) AM_RANGE(0x080000, 0x0bffff) AM_MIRROR(0x040000) AM_RAM AM_SHARE("share1") AM_RANGE(0x100000, 0x13ffff) AM_MIRROR(0x0c0000) AM_ROM AM_REGION("maincpu", 0) - AM_RANGE(0x200000, 0x20ffff) AM_MIRROR(0x110000) AM_DEVREADWRITE("tile", segas24_tile, tile_r, tile_w) + AM_RANGE(0x200000, 0x20ffff) AM_MIRROR(0x110000) AM_DEVREADWRITE("tile", segas24_tile_device, tile_r, tile_w) AM_RANGE(0x220000, 0x220001) AM_MIRROR(0x11fffe) AM_WRITENOP /* Horizontal split position (ABSEL) */ AM_RANGE(0x240000, 0x240001) AM_MIRROR(0x11fffe) AM_WRITENOP /* Scanline trigger position (XHOUT) */ AM_RANGE(0x260000, 0x260001) AM_MIRROR(0x10fffe) AM_WRITENOP /* Frame trigger position (XVOUT) */ AM_RANGE(0x270000, 0x270001) AM_MIRROR(0x10fffe) AM_WRITENOP /* Synchronization mode */ - AM_RANGE(0x280000, 0x29ffff) AM_MIRROR(0x160000) AM_DEVREADWRITE("tile", segas24_tile, char_r, char_w) + AM_RANGE(0x280000, 0x29ffff) AM_MIRROR(0x160000) AM_DEVREADWRITE("tile", segas24_tile_device, char_r, char_w) AM_RANGE(0x400000, 0x403fff) AM_MIRROR(0x1f8000) AM_READWRITE(sys16_paletteram_r, sys16_paletteram_w) AM_SHARE("paletteram") - AM_RANGE(0x404000, 0x40401f) AM_MIRROR(0x1fbfe0) AM_DEVREADWRITE("mixer", segas24_mixer, read, write) - AM_RANGE(0x600000, 0x63ffff) AM_MIRROR(0x180000) AM_DEVREADWRITE("sprite", segas24_sprite, read, write) + AM_RANGE(0x404000, 0x40401f) AM_MIRROR(0x1fbfe0) AM_DEVREADWRITE("mixer", segas24_mixer_device, read, write) + AM_RANGE(0x600000, 0x63ffff) AM_MIRROR(0x180000) AM_DEVREADWRITE("sprite", segas24_sprite_device, read, write) AM_RANGE(0x800000, 0x80003f) AM_MIRROR(0x1ffe00) AM_DEVREADWRITE8("io", sega_315_5296_device, read, write, 0x00ff) AM_RANGE(0x800040, 0x80007f) AM_MIRROR(0x1ffe00) AM_READWRITE(iod_r, iod_w) AM_RANGE(0x800100, 0x800103) AM_MIRROR(0x1ffe00) AM_DEVREADWRITE8("ymsnd", ym2151_device, read, write, 0x00ff) @@ -1147,15 +1147,15 @@ static ADDRESS_MAP_START( system24_cpu2_map, AS_PROGRAM, 16, segas24_state ) AM_RANGE(0x000000, 0x03ffff) AM_MIRROR(0x040000) AM_RAM AM_SHARE("subcpu") AM_RANGE(0x080000, 0x0bffff) AM_MIRROR(0x040000) AM_RAM AM_SHARE("share1") AM_RANGE(0x100000, 0x13ffff) AM_MIRROR(0x0c0000) AM_ROM AM_REGION("maincpu", 0) - AM_RANGE(0x200000, 0x20ffff) AM_MIRROR(0x110000) AM_DEVREADWRITE("tile", segas24_tile, tile_r, tile_w) + AM_RANGE(0x200000, 0x20ffff) AM_MIRROR(0x110000) AM_DEVREADWRITE("tile", segas24_tile_device, tile_r, tile_w) AM_RANGE(0x220000, 0x220001) AM_MIRROR(0x11fffe) AM_WRITENOP /* Horizontal split position (ABSEL) */ AM_RANGE(0x240000, 0x240001) AM_MIRROR(0x11fffe) AM_WRITENOP /* Scanline trigger position (XHOUT) */ AM_RANGE(0x260000, 0x260001) AM_MIRROR(0x10fffe) AM_WRITENOP /* Frame trigger position (XVOUT) */ AM_RANGE(0x270000, 0x270001) AM_MIRROR(0x10fffe) AM_WRITENOP /* Synchronization mode */ - AM_RANGE(0x280000, 0x29ffff) AM_MIRROR(0x160000) AM_DEVREADWRITE("tile", segas24_tile, char_r, char_w) + AM_RANGE(0x280000, 0x29ffff) AM_MIRROR(0x160000) AM_DEVREADWRITE("tile", segas24_tile_device, char_r, char_w) AM_RANGE(0x400000, 0x403fff) AM_MIRROR(0x1f8000) AM_READWRITE(sys16_paletteram_r, sys16_paletteram_w) AM_SHARE("paletteram") - AM_RANGE(0x404000, 0x40401f) AM_MIRROR(0x1fbfe0) AM_DEVREADWRITE("mixer", segas24_mixer, read, write) - AM_RANGE(0x600000, 0x63ffff) AM_MIRROR(0x180000) AM_DEVREADWRITE("sprite", segas24_sprite, read, write) + AM_RANGE(0x404000, 0x40401f) AM_MIRROR(0x1fbfe0) AM_DEVREADWRITE("mixer", segas24_mixer_device, read, write) + AM_RANGE(0x600000, 0x63ffff) AM_MIRROR(0x180000) AM_DEVREADWRITE("sprite", segas24_sprite_device, read, write) AM_RANGE(0x800000, 0x80003f) AM_MIRROR(0x1ffe00) AM_DEVREADWRITE8("io", sega_315_5296_device, read, write, 0x00ff) AM_RANGE(0x800040, 0x80007f) AM_MIRROR(0x1ffe00) AM_READWRITE(iod_r, iod_w) AM_RANGE(0x800100, 0x800103) AM_MIRROR(0x1ffe00) AM_DEVREADWRITE8("ymsnd", ym2151_device, read, write, 0x00ff) @@ -1204,9 +1204,9 @@ void segas24_state::machine_start() membank("bank2")->configure_entries(0, 16, usr1, 0x40000); } - vtile = machine().device("tile"); - vsprite = machine().device("sprite"); - vmixer = machine().device("mixer"); + vtile = machine().device("tile"); + vsprite = machine().device("sprite"); + vmixer = machine().device("mixer"); } void segas24_state::machine_reset() @@ -1875,7 +1875,7 @@ INPUT_PORTS_END * *************************************/ -static MACHINE_CONFIG_START( system24, segas24_state ) +static MACHINE_CONFIG_START( system24 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, MASTER_CLOCK/2) diff --git a/src/mame/drivers/segas32.cpp b/src/mame/drivers/segas32.cpp index e343822aa11..7ac164eb43a 100644 --- a/src/mame/drivers/segas32.cpp +++ b/src/mame/drivers/segas32.cpp @@ -547,29 +547,29 @@ orunners: Interleaved with the dj and << >> buttons is the data the drives the #include "radr.lh" -const device_type SEGA_S32_PCB = device_creator; +DEFINE_DEVICE_TYPE(SEGA_S32_PCB, segas32_state, "segas32_pcb", "Sega System 32 PCB") segas32_state::segas32_state(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : segas32_state(mconfig, SEGA_S32_PCB, "Sega System 32 PCB", tag, owner, clock, "segas32_pcb", __FILE__) + : segas32_state(mconfig, SEGA_S32_PCB, tag, owner, clock) { } -segas32_state::segas32_state(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), - m_z80_shared_ram(*this,"z80_shared_ram"), - m_system32_workram(*this,"workram"), - m_system32_videoram(*this,"videoram", 0), - m_system32_spriteram(*this,"spriteram", 0), - m_system32_paletteram(*this,"paletteram.%u", 0, uint8_t(0)), - m_maincpu(*this, "maincpu"), - m_soundcpu(*this, "soundcpu"), - m_multipcm(*this, "sega"), - m_gfxdecode(*this, "gfxdecode"), - m_screen(*this, "screen"), - m_palette(*this, "palette"), - m_irq_timer_0(*this, "v60_irq0"), - m_irq_timer_1(*this, "v60_irq1"), - m_s32comm(*this, "s32comm") +segas32_state::segas32_state(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock), + m_z80_shared_ram(*this,"z80_shared_ram"), + m_system32_workram(*this,"workram"), + m_system32_videoram(*this,"videoram", 0), + m_system32_spriteram(*this,"spriteram", 0), + m_system32_paletteram(*this,"paletteram.%u", 0, uint8_t(0)), + m_maincpu(*this, "maincpu"), + m_soundcpu(*this, "soundcpu"), + m_multipcm(*this, "sega"), + m_gfxdecode(*this, "gfxdecode"), + m_screen(*this, "screen"), + m_palette(*this, "palette"), + m_irq_timer_0(*this, "v60_irq0"), + m_irq_timer_1(*this, "v60_irq1"), + m_s32comm(*this, "s32comm") { } @@ -2342,10 +2342,10 @@ static MACHINE_CONFIG_FRAGMENT( system32 ) MCFG_S32COMM_ADD("s32comm") MACHINE_CONFIG_END -const device_type SEGA_S32_REGULAR_DEVICE = device_creator; +DEFINE_DEVICE_TYPE(SEGA_S32_REGULAR_DEVICE, segas32_regular_state, "segas32_pcb_regular", "Sega System 32 regular PCB") segas32_regular_state::segas32_regular_state(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : segas32_state(mconfig, SEGA_S32_REGULAR_DEVICE, "Sega System 32 regular PCB", tag, owner, clock, "sega32_pcb_regular", __FILE__) + : segas32_state(mconfig, SEGA_S32_REGULAR_DEVICE, tag, owner, clock) { } @@ -2377,10 +2377,10 @@ static MACHINE_CONFIG_FRAGMENT( system32_analog ) MCFG_MSM6253_IN3_ANALOG_PORT("ANALOG4") MACHINE_CONFIG_END -const device_type SEGA_S32_ANALOG_DEVICE = device_creator; +DEFINE_DEVICE_TYPE(SEGA_S32_ANALOG_DEVICE, segas32_analog_state, "segas32_pcb_analog", "Sega System 32 analog PCB") segas32_analog_state::segas32_analog_state(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : segas32_state(mconfig, SEGA_S32_ANALOG_DEVICE, "Sega System 32 analog PCB", tag, owner, clock, "sega32_pcb_analog", __FILE__) + : segas32_state(mconfig, SEGA_S32_ANALOG_DEVICE, tag, owner, clock) { } @@ -2406,11 +2406,11 @@ static MACHINE_CONFIG_FRAGMENT( system32_trackball ) MCFG_DEVICE_PROGRAM_MAP(system32_trackball_map) MACHINE_CONFIG_END -const device_type SEGA_S32_TRACKBALL_DEVICE = device_creator; +DEFINE_DEVICE_TYPE(SEGA_S32_TRACKBALL_DEVICE, segas32_trackball_state, "segas32_pcb_trackball", "Sega System 32 trackball PCB") segas32_trackball_state::segas32_trackball_state(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : segas32_state(mconfig, SEGA_S32_TRACKBALL_DEVICE, "Sega System 32 trackball PCB", tag, owner, clock, "sega32_pcb_trackball", __FILE__), - m_track_ports(*this, {"TRACKX1", "TRACKY1", "TRACKX2", "TRACKY2", "TRACKX3", "TRACKY3"}) + : segas32_state(mconfig, SEGA_S32_TRACKBALL_DEVICE, tag, owner, clock) + , m_track_ports(*this, {"TRACKX1", "TRACKY1", "TRACKX2", "TRACKY2", "TRACKX3", "TRACKY3"}) { } @@ -2441,10 +2441,10 @@ static MACHINE_CONFIG_FRAGMENT( system32_4player ) MCFG_I8255_IN_PORTC_CB(IOPORT("EXTRA3")) MACHINE_CONFIG_END -const device_type SEGA_S32_4PLAYER_DEVICE = device_creator; +DEFINE_DEVICE_TYPE(SEGA_S32_4PLAYER_DEVICE, segas32_4player_state, "segas32_pcb_4player", "Sega System 32 4-player/fighting PCB") segas32_4player_state::segas32_4player_state(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : segas32_state(mconfig, SEGA_S32_4PLAYER_DEVICE, "Sega System 32 4 player/fighting PCB", tag, owner, clock, "sega32_pcb_4player", __FILE__) + : segas32_state(mconfig, SEGA_S32_4PLAYER_DEVICE, tag, owner, clock) { } @@ -2477,10 +2477,10 @@ static MACHINE_CONFIG_FRAGMENT( system32_v25 ) MCFG_V25_CONFIG(ga2_v25_opcode_table) MACHINE_CONFIG_END -const device_type SEGA_S32_V25_DEVICE = device_creator; +DEFINE_DEVICE_TYPE(SEGA_S32_V25_DEVICE, segas32_v25_state, "segas32_pcb_v25", "Sega System 32 V25 PCB") segas32_v25_state::segas32_v25_state(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : segas32_state(mconfig, SEGA_S32_V25_DEVICE, "Sega System 32 V25 PCB", tag, owner, clock, "sega32_pcb_v25", __FILE__) + : segas32_state(mconfig, SEGA_S32_V25_DEVICE, tag, owner, clock) { } @@ -2507,10 +2507,10 @@ static MACHINE_CONFIG_FRAGMENT( system32_upd7725 ) // See HLE of this dsp in /src/mame/machine/segas32.cpp : arescue_dsp_r and arescue_dsp_w MACHINE_CONFIG_END -const device_type SEGA_S32_UPD7725_DEVICE = device_creator; +DEFINE_DEVICE_TYPE(SEGA_S32_UPD7725_DEVICE, segas32_upd7725_state, "segas32_pcb_upd7725", "Sega System 32 uPD7725 PCB") segas32_upd7725_state::segas32_upd7725_state(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : segas32_state(mconfig, SEGA_S32_UPD7725_DEVICE, "Sega System 32 UPD7725 PCB", tag, owner, clock, "sega32_pcb_upd7725", __FILE__) + : segas32_state(mconfig, SEGA_S32_UPD7725_DEVICE, tag, owner, clock) { } @@ -2555,10 +2555,10 @@ static MACHINE_CONFIG_FRAGMENT( system32_cd ) MCFG_CXD1095_IN_PORTD_CB(CONSTANT(0xff)) MACHINE_CONFIG_END -const device_type SEGA_S32_CD_DEVICE = device_creator; +DEFINE_DEVICE_TYPE(SEGA_S32_CD_DEVICE, segas32_cd_state, "segas32_pcb_cd", "Sega System 32 CD PCB") segas32_cd_state::segas32_cd_state(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : segas32_state(mconfig, SEGA_S32_CD_DEVICE, "Sega System 32 CD PCB", tag, owner, clock, "sega32_pcb_cd", __FILE__) + : segas32_state(mconfig, SEGA_S32_CD_DEVICE, tag, owner, clock) { } @@ -2643,10 +2643,10 @@ static MACHINE_CONFIG_FRAGMENT( multi32 ) MACHINE_CONFIG_END -const device_type SEGA_MULTI32_DEVICE = device_creator; +DEFINE_DEVICE_TYPE(SEGA_MULTI32_DEVICE, sega_multi32_state, "segas32_pcb_multi", "Sega Multi 32") sega_multi32_state::sega_multi32_state(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : segas32_state(mconfig, SEGA_MULTI32_DEVICE, "Sega Multi 32 PCB", tag, owner, clock, "sega32_pcb_multi", __FILE__) + : segas32_state(mconfig, SEGA_MULTI32_DEVICE, tag, owner, clock) { } @@ -2692,11 +2692,11 @@ WRITE8_MEMBER(sega_multi32_analog_state::analog_bank_w) m_analog_bank = data & 1; } -const device_type SEGA_MULTI32_ANALOG_DEVICE = device_creator; +DEFINE_DEVICE_TYPE(SEGA_MULTI32_ANALOG_DEVICE, sega_multi32_analog_state, "segas32_pcb_multi_analog", "Sega Multi 32 analog PCB") sega_multi32_analog_state::sega_multi32_analog_state(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : segas32_state(mconfig, SEGA_MULTI32_ANALOG_DEVICE, "Sega Multi 32 analog PCB", tag, owner, clock, "sega32_pcb_multi_analog", __FILE__), - m_analog_ports(*this, {"ANALOG1", "ANALOG2", "ANALOG3", "ANALOG4", "ANALOG5", "ANALOG6", "ANALOG7", "ANALOG8"}) + : segas32_state(mconfig, SEGA_MULTI32_ANALOG_DEVICE, tag, owner, clock) + , m_analog_ports(*this, "ANALOG%u", 1) { } @@ -2725,10 +2725,10 @@ static MACHINE_CONFIG_FRAGMENT( multi32_6player ) MCFG_I8255_IN_PORTC_CB(IOPORT("EXTRA3")) MACHINE_CONFIG_END -const device_type SEGA_MULTI32_6PLAYER_DEVICE = device_creator; +DEFINE_DEVICE_TYPE(SEGA_MULTI32_6PLAYER_DEVICE, sega_multi32_6player_state, "segas32_pcb_multi_6player", "Sega Multi 32 6-player PCB") sega_multi32_6player_state::sega_multi32_6player_state(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : segas32_state(mconfig, SEGA_MULTI32_6PLAYER_DEVICE, "Sega Multi 32 6 player PCB", tag, owner, clock, "sega32_pcb_multi_6player", __FILE__) + : segas32_state(mconfig, SEGA_MULTI32_6PLAYER_DEVICE, tag, owner, clock) { } @@ -2742,9 +2742,9 @@ class segas32_new_state : public driver_device { public: segas32_new_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag), - m_mainpcb(*this, "mainpcb"), - m_slavepcb(*this, "slavepcb") + : driver_device(mconfig, type, tag) + , m_mainpcb(*this, "mainpcb") + , m_slavepcb(*this, "slavepcb") { } required_device m_mainpcb; @@ -2785,51 +2785,51 @@ public: -static MACHINE_CONFIG_START( sega_system32, segas32_new_state ) +static MACHINE_CONFIG_START( sega_system32 ) MCFG_DEVICE_ADD("mainpcb", SEGA_S32_REGULAR_DEVICE, 0) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( sega_system32_analog, segas32_new_state ) +static MACHINE_CONFIG_START( sega_system32_analog ) MCFG_DEVICE_ADD("mainpcb", SEGA_S32_ANALOG_DEVICE, 0) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( sega_system32_track, segas32_new_state ) +static MACHINE_CONFIG_START( sega_system32_track ) MCFG_DEVICE_ADD("mainpcb", SEGA_S32_TRACKBALL_DEVICE, 0) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( sega_system32_4p, segas32_new_state ) +static MACHINE_CONFIG_START( sega_system32_4p ) MCFG_DEVICE_ADD("mainpcb", SEGA_S32_4PLAYER_DEVICE, 0) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( sega_system32_cd, segas32_new_state ) +static MACHINE_CONFIG_START( sega_system32_cd ) MCFG_DEVICE_ADD("mainpcb", SEGA_S32_CD_DEVICE, 0) MACHINE_CONFIG_END // for f1en where there is a sub-board containing shared ram sitting underneath the ROM board bridging 2 PCBs (not a network link) -static MACHINE_CONFIG_START( sega_system32_dual_direct, segas32_new_state ) +static MACHINE_CONFIG_START( sega_system32_dual_direct ) MCFG_DEVICE_ADD("mainpcb", SEGA_S32_ANALOG_DEVICE, 0) MCFG_DEVICE_ADD("slavepcb", SEGA_S32_ANALOG_DEVICE, 0) MACHINE_CONFIG_END // air rescue is like f1en above but also has the 837-8341 DSP daughterboard on the mainpcb side only -static MACHINE_CONFIG_START( sega_system32_dual_direct_upd7725, segas32_new_state ) +static MACHINE_CONFIG_START( sega_system32_dual_direct_upd7725 ) MCFG_DEVICE_ADD("mainpcb", SEGA_S32_UPD7725_DEVICE, 0) MCFG_DEVICE_ADD("slavepcb", SEGA_S32_ANALOG_DEVICE, 0) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( sega_system32_v25, segas32_new_state ) +static MACHINE_CONFIG_START( sega_system32_v25 ) MCFG_DEVICE_ADD("mainpcb", SEGA_S32_V25_DEVICE, 0) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( sega_multi32, segas32_new_state ) +static MACHINE_CONFIG_START( sega_multi32 ) MCFG_DEVICE_ADD("mainpcb", SEGA_MULTI32_DEVICE, 0) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( sega_multi32_analog, segas32_new_state ) +static MACHINE_CONFIG_START( sega_multi32_analog ) MCFG_DEVICE_ADD("mainpcb", SEGA_MULTI32_ANALOG_DEVICE, 0) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( sega_multi32_6p, segas32_new_state ) +static MACHINE_CONFIG_START( sega_multi32_6p ) MCFG_DEVICE_ADD("mainpcb", SEGA_MULTI32_6PLAYER_DEVICE, 0) MACHINE_CONFIG_END diff --git a/src/mame/drivers/segasp.cpp b/src/mame/drivers/segasp.cpp index 00d72f509a2..39c4e53baff 100644 --- a/src/mame/drivers/segasp.cpp +++ b/src/mame/drivers/segasp.cpp @@ -293,7 +293,7 @@ INPUT_PORTS_START( segasp ) INPUT_PORTS_END -static MACHINE_CONFIG_DERIVED_CLASS( segasp, naomi_aw_base, segasp_state ) +static MACHINE_CONFIG_DERIVED( segasp, naomi_aw_base ) MCFG_CPU_MODIFY("maincpu") MCFG_CPU_PROGRAM_MAP(segasp_map) MCFG_CPU_IO_MAP(onchip_port) @@ -539,24 +539,24 @@ ROM_END #define GAME_FLAGS (MACHINE_NO_SOUND|MACHINE_NOT_WORKING) -GAME( 2004, segasp, 0, segasp, segasp, driver_device, 0, ROT0, "Sega", "Sega System SP (Spider) BIOS", GAME_FLAGS | MACHINE_IS_BIOS_ROOT ) +GAME( 2004, segasp, 0, segasp, segasp, segasp_state, 0, ROT0, "Sega", "Sega System SP (Spider) BIOS", GAME_FLAGS | MACHINE_IS_BIOS_ROOT ) // These use ROMs -GAME( 2009, brickppl,segasp, segasp, segasp, driver_device, 0, ROT0, "Sega", "Brick People / Block PeePoo (Ver 1.002)", GAME_FLAGS ) +GAME( 2009, brickppl,segasp, segasp, segasp, segasp_state, 0, ROT0, "Sega", "Brick People / Block PeePoo (Ver 1.002)", GAME_FLAGS ) -GAME( 2005, dinoking,segasp, segasp, segasp, driver_device, 0, ROT0, "Sega", "Dinosaur King (USA)", GAME_FLAGS ) +GAME( 2005, dinoking,segasp, segasp, segasp, segasp_state, 0, ROT0, "Sega", "Dinosaur King (USA)", GAME_FLAGS ) -GAME( 2006, dinokior,segasp, segasp, segasp, driver_device, 0, ROT0, "Sega", "Dinosaur King - Operation: Dinosaur Rescue (USA, Export)", GAME_FLAGS ) +GAME( 2006, dinokior,segasp, segasp, segasp, segasp_state, 0, ROT0, "Sega", "Dinosaur King - Operation: Dinosaur Rescue (USA, Export)", GAME_FLAGS ) -GAME( 2006, lovebery,segasp, segasp, segasp, driver_device, 0, ROT0, "Sega", "Love And Berry - 1st-2nd Collection (Export, Ver 2.000)", GAME_FLAGS ) -GAME( 2006, lovebero,lovebery, segasp, segasp, driver_device, 0, ROT0, "Sega", "Love And Berry - 1st-2nd Collection (Export, Ver 1.003)", GAME_FLAGS ) +GAME( 2006, lovebery,segasp, segasp, segasp, segasp_state, 0, ROT0, "Sega", "Love And Berry - 1st-2nd Collection (Export, Ver 2.000)", GAME_FLAGS ) +GAME( 2006, lovebero,lovebery, segasp, segasp, segasp_state, 0, ROT0, "Sega", "Love And Berry - 1st-2nd Collection (Export, Ver 1.003)", GAME_FLAGS ) -GAME( 2009, tetgiant,segasp, segasp, segasp, driver_device, 0, ROT0, "Sega", "Tetris Giant / Tetris Dekaris (Ver.2.000)", GAME_FLAGS ) +GAME( 2009, tetgiant,segasp, segasp, segasp, segasp_state, 0, ROT0, "Sega", "Tetris Giant / Tetris Dekaris (Ver.2.000)", GAME_FLAGS ) // These use a CF card -GAME( 2008, dinoki25,segasp, segasp, segasp, driver_device, 0, ROT0, "Sega", "Dinosaur King - D-Team VS. the Alpha Fortress (Export, Ver 2.500) (MDA-C0047)", GAME_FLAGS ) +GAME( 2008, dinoki25,segasp, segasp, segasp, segasp_state, 0, ROT0, "Sega", "Dinosaur King - D-Team VS. the Alpha Fortress (Export, Ver 2.500) (MDA-C0047)", GAME_FLAGS ) -GAME( 2007, loveber3,segasp, segasp, segasp, driver_device, 0, ROT0, "Sega", "Love And Berry - 3rd-5th Collection (USA, Export, Ver 1.002) (MDA-C0042)", GAME_FLAGS ) +GAME( 2007, loveber3,segasp, segasp, segasp, segasp_state, 0, ROT0, "Sega", "Love And Berry - 3rd-5th Collection (USA, Export, Ver 1.002) (MDA-C0042)", GAME_FLAGS ) -GAME( 2009, tetgiano,tetgiant, segasp, segasp, driver_device, 0, ROT0, "Sega", "Tetris Giant / Tetris Dekaris (MDA-C0076)", GAME_FLAGS ) +GAME( 2009, tetgiano,tetgiant, segasp, segasp, segasp_state, 0, ROT0, "Sega", "Tetris Giant / Tetris Dekaris (MDA-C0076)", GAME_FLAGS ) diff --git a/src/mame/drivers/segaufo.cpp b/src/mame/drivers/segaufo.cpp index 66479d9bd54..1575fbd8878 100644 --- a/src/mame/drivers/segaufo.cpp +++ b/src/mame/drivers/segaufo.cpp @@ -747,7 +747,7 @@ void ufo_state::machine_start() save_item(NAME(m_stepper)); } -static MACHINE_CONFIG_START( newufo, ufo_state ) +static MACHINE_CONFIG_START( newufo ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_16MHz/2) @@ -899,10 +899,10 @@ ROM_START( ufo800 ) ROM_END -GAMEL( 1991, newufo, 0, newufo, newufo, driver_device, 0, ROT0, "Sega", "New UFO Catcher (standard)", MACHINE_MECHANICAL | MACHINE_SUPPORTS_SAVE, layout_newufo ) -GAMEL( 1991, newufo_sonic, newufo, newufo, newufo, driver_device, 0, ROT0, "Sega", "New UFO Catcher (Sonic The Hedgehog)", MACHINE_MECHANICAL | MACHINE_SUPPORTS_SAVE, layout_newufo ) -GAMEL( 1991, newufo_nfl, newufo, newufo, newufo, driver_device, 0, ROT0, "Sega", "New UFO Catcher (Team NFL)", MACHINE_MECHANICAL | MACHINE_SUPPORTS_SAVE, layout_newufo ) -GAMEL( 1991, newufo_xmas, newufo, newufo, newufo, driver_device, 0, ROT0, "Sega", "New UFO Catcher (Christmas season ROM kit)", MACHINE_MECHANICAL | MACHINE_SUPPORTS_SAVE, layout_newufo ) -GAMEL( 1991, ufomini, 0, ufomini, ufomini, driver_device, 0, ROT0, "Sega", "UFO Catcher Mini", MACHINE_MECHANICAL | MACHINE_SUPPORTS_SAVE, layout_ufomini ) -GAMEL( 1996, ufo21, 0, ufo21, ufo21, driver_device, 0, ROT0, "Sega", "UFO Catcher 21", MACHINE_MECHANICAL | MACHINE_SUPPORTS_SAVE, layout_ufo21 ) -GAMEL( 1998, ufo800, 0, ufo800, ufo800, driver_device, 0, ROT0, "Sega", "UFO Catcher 800", MACHINE_MECHANICAL | MACHINE_SUPPORTS_SAVE, layout_ufo800 ) +GAMEL( 1991, newufo, 0, newufo, newufo, ufo_state, 0, ROT0, "Sega", "New UFO Catcher (standard)", MACHINE_MECHANICAL | MACHINE_SUPPORTS_SAVE, layout_newufo ) +GAMEL( 1991, newufo_sonic, newufo, newufo, newufo, ufo_state, 0, ROT0, "Sega", "New UFO Catcher (Sonic The Hedgehog)", MACHINE_MECHANICAL | MACHINE_SUPPORTS_SAVE, layout_newufo ) +GAMEL( 1991, newufo_nfl, newufo, newufo, newufo, ufo_state, 0, ROT0, "Sega", "New UFO Catcher (Team NFL)", MACHINE_MECHANICAL | MACHINE_SUPPORTS_SAVE, layout_newufo ) +GAMEL( 1991, newufo_xmas, newufo, newufo, newufo, ufo_state, 0, ROT0, "Sega", "New UFO Catcher (Christmas season ROM kit)", MACHINE_MECHANICAL | MACHINE_SUPPORTS_SAVE, layout_newufo ) +GAMEL( 1991, ufomini, 0, ufomini, ufomini, ufo_state, 0, ROT0, "Sega", "UFO Catcher Mini", MACHINE_MECHANICAL | MACHINE_SUPPORTS_SAVE, layout_ufomini ) +GAMEL( 1996, ufo21, 0, ufo21, ufo21, ufo_state, 0, ROT0, "Sega", "UFO Catcher 21", MACHINE_MECHANICAL | MACHINE_SUPPORTS_SAVE, layout_ufo21 ) +GAMEL( 1998, ufo800, 0, ufo800, ufo800, ufo_state, 0, ROT0, "Sega", "UFO Catcher 800", MACHINE_MECHANICAL | MACHINE_SUPPORTS_SAVE, layout_ufo800 ) diff --git a/src/mame/drivers/segaxbd.cpp b/src/mame/drivers/segaxbd.cpp index 9e07415201b..9b049b8e79a 100644 --- a/src/mame/drivers/segaxbd.cpp +++ b/src/mame/drivers/segaxbd.cpp @@ -275,42 +275,42 @@ ROMs: #include "speaker.h" -const device_type SEGA_XBD_PCB = device_creator; +DEFINE_DEVICE_TYPE(SEGA_XBD_PCB, segaxbd_state, "segaxbd_pcb", "Sega X-Board PCB") segaxbd_state::segaxbd_state(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : segaxbd_state(mconfig, SEGA_XBD_PCB, "Sega X-Board PCB", tag, owner, clock, "segaxbd_pcb", __FILE__) + : segaxbd_state(mconfig, SEGA_XBD_PCB, tag, owner, clock) { } -segaxbd_state::segaxbd_state(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), - m_maincpu(*this, "maincpu"), - m_subcpu(*this, "subcpu"), - m_soundcpu(*this, "soundcpu"), - m_soundcpu2(*this, "soundcpu2"), - m_mcu(*this, "mcu"), - m_watchdog(*this, "watchdog"), - m_cmptimer_1(*this, "cmptimer_main"), - m_sprites(*this, "sprites"), - m_segaic16vid(*this, "segaic16vid"), - m_segaic16road(*this, "segaic16road"), - m_soundlatch(*this, "soundlatch"), - m_subram0(*this, "subram0"), - m_road_priority(1), - m_scanline_timer(nullptr), - m_timer_irq_state(0), - m_vblank_irq_state(0), - m_pc_0(0), - m_loffire_sync(nullptr), - m_lastsurv_mux(0), - m_paletteram(*this, "paletteram"), - m_gprider_hack(false), - m_palette_entries(0), - m_screen(*this, "screen"), - m_palette(*this, "palette"), - m_io0_porta(*this, "IO0PORTA"), - m_adc_ports(*this, {"ADC0", "ADC1", "ADC2", "ADC3", "ADC4", "ADC5", "ADC6", "ADC7"}), - m_mux_ports(*this, {"MUX0", "MUX1", "MUX2", "MUX3"}) +segaxbd_state::segaxbd_state(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock), + m_maincpu(*this, "maincpu"), + m_subcpu(*this, "subcpu"), + m_soundcpu(*this, "soundcpu"), + m_soundcpu2(*this, "soundcpu2"), + m_mcu(*this, "mcu"), + m_watchdog(*this, "watchdog"), + m_cmptimer_1(*this, "cmptimer_main"), + m_sprites(*this, "sprites"), + m_segaic16vid(*this, "segaic16vid"), + m_segaic16road(*this, "segaic16road"), + m_soundlatch(*this, "soundlatch"), + m_subram0(*this, "subram0"), + m_road_priority(1), + m_scanline_timer(nullptr), + m_timer_irq_state(0), + m_vblank_irq_state(0), + m_pc_0(0), + m_loffire_sync(nullptr), + m_lastsurv_mux(0), + m_paletteram(*this, "paletteram"), + m_gprider_hack(false), + m_palette_entries(0), + m_screen(*this, "screen"), + m_palette(*this, "palette"), + m_io0_porta(*this, "IO0PORTA"), + m_adc_ports(*this, "ADC%u", 0), + m_mux_ports(*this, "MUX%u", 0) { memset(m_adc_reverse, 0, sizeof(m_adc_reverse)); palette_init(); @@ -1753,10 +1753,10 @@ static MACHINE_CONFIG_FRAGMENT( xboard ) MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) MACHINE_CONFIG_END -const device_type SEGA_XBD_REGULAR_DEVICE = device_creator; +DEFINE_DEVICE_TYPE(SEGA_XBD_REGULAR, segaxbd_regular_state, "segaxbd_pcb_reg", "Sega X-Board PCB (regular)") segaxbd_regular_state::segaxbd_regular_state(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : segaxbd_state(mconfig, SEGA_XBD_REGULAR_DEVICE, "Sega X-Board PCB regular", tag, owner, clock, "segakbd_pcb_regular", __FILE__) + : segaxbd_state(mconfig, SEGA_XBD_REGULAR, tag, owner, clock) { } @@ -1765,8 +1765,8 @@ machine_config_constructor segaxbd_regular_state::device_mconfig_additions() con return MACHINE_CONFIG_NAME( xboard ); } -static MACHINE_CONFIG_START( sega_xboard, segaxbd_new_state ) - MCFG_DEVICE_ADD("mainpcb", SEGA_XBD_REGULAR_DEVICE, 0) +static MACHINE_CONFIG_START( sega_xboard ) + MCFG_DEVICE_ADD("mainpcb", SEGA_XBD_REGULAR, 0) MACHINE_CONFIG_END @@ -1779,10 +1779,10 @@ static MACHINE_CONFIG_FRAGMENT( xboard_fd1094 ) MCFG_CPU_DECRYPTED_OPCODES_MAP(decrypted_opcodes_map) MACHINE_CONFIG_END -const device_type SEGA_XBD_FD1094_DEVICE = device_creator; +DEFINE_DEVICE_TYPE(SEGA_XBD_FD1094, segaxbd_fd1094_state, "segaxbd_pcb_fd1094", "Sega X-Board PCB (FD1094)") segaxbd_fd1094_state::segaxbd_fd1094_state(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : segaxbd_state(mconfig, SEGA_XBD_FD1094_DEVICE, "Sega X-Board PCB FD1094", tag, owner, clock, "segakbd_pcb_fd1094", __FILE__) + : segaxbd_state(mconfig, SEGA_XBD_FD1094, tag, owner, clock) { } @@ -1791,13 +1791,13 @@ machine_config_constructor segaxbd_fd1094_state::device_mconfig_additions() cons return MACHINE_CONFIG_NAME( xboard_fd1094 ); } -static MACHINE_CONFIG_START( sega_xboard_fd1094, segaxbd_new_state ) - MCFG_DEVICE_ADD("mainpcb", SEGA_XBD_FD1094_DEVICE, 0) +static MACHINE_CONFIG_START( sega_xboard_fd1094 ) + MCFG_DEVICE_ADD("mainpcb", SEGA_XBD_FD1094, 0) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( sega_xboard_fd1094_double, segaxbd_new_state_double ) - MCFG_DEVICE_ADD("mainpcb", SEGA_XBD_FD1094_DEVICE, 0) - MCFG_DEVICE_ADD("subpcb", SEGA_XBD_FD1094_DEVICE, 0) +static MACHINE_CONFIG_START( sega_xboard_fd1094_double ) + MCFG_DEVICE_ADD("mainpcb", SEGA_XBD_FD1094, 0) + MCFG_DEVICE_ADD("subpcb", SEGA_XBD_FD1094, 0) //MCFG_QUANTUM_PERFECT_CPU("mainpcb:maincpu") // doesn't help.. MACHINE_CONFIG_END @@ -1816,10 +1816,10 @@ static MACHINE_CONFIG_FRAGMENT( aburner2 ) MCFG_CXD1095_OUT_PORTB_CB(WRITE8(segaxbd_state, aburner2_motor_w)) MACHINE_CONFIG_END -const device_type SEGA_XBD_ABURNER2_DEVICE = device_creator; +DEFINE_DEVICE_TYPE(SEGA_XBD_ABURNER2_DEVICE, segaxbd_aburner2_state, "segaxbd_pcb_aburner2", "Sega X-Board PCB (After Burner)") segaxbd_aburner2_state::segaxbd_aburner2_state(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : segaxbd_state(mconfig, SEGA_XBD_ABURNER2_DEVICE, "Sega X-Board After Burner PCB", tag, owner, clock, "segakbd_pcb_aburner2", __FILE__) + : segaxbd_state(mconfig, SEGA_XBD_ABURNER2_DEVICE, tag, owner, clock) { } @@ -1828,7 +1828,7 @@ machine_config_constructor segaxbd_aburner2_state::device_mconfig_additions() co return MACHINE_CONFIG_NAME( aburner2 ); } -static MACHINE_CONFIG_START( sega_aburner2, segaxbd_new_state ) +static MACHINE_CONFIG_START( sega_aburner2 ) MCFG_DEVICE_ADD("mainpcb", SEGA_XBD_ABURNER2_DEVICE, 0) MACHINE_CONFIG_END @@ -1853,10 +1853,10 @@ static MACHINE_CONFIG_FRAGMENT( lastsurv_fd1094 ) MCFG_SOUND_ROUTE(1, "lspeaker", 0.43) MACHINE_CONFIG_END -const device_type SEGA_XBD_LASTSURV_FD1094_DEVICE = device_creator; +DEFINE_DEVICE_TYPE(SEGA_XBD_LASTSURV_FD1094, segaxbd_lastsurv_fd1094_state, "segaxbd_pcb_lastsurv_fd1094", "Sega X-Board PCB (Last Survivor, FD1094)") segaxbd_lastsurv_fd1094_state::segaxbd_lastsurv_fd1094_state(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : segaxbd_state(mconfig, SEGA_XBD_LASTSURV_FD1094_DEVICE, "Sega X-Board Last Survivor PCB FD1094", tag, owner, clock, "segakbd_pcb_lastsurv_fd1094", __FILE__) + : segaxbd_state(mconfig, SEGA_XBD_LASTSURV_FD1094, tag, owner, clock) { } @@ -1865,8 +1865,8 @@ machine_config_constructor segaxbd_lastsurv_fd1094_state::device_mconfig_additio return MACHINE_CONFIG_NAME( lastsurv_fd1094 ); } -static MACHINE_CONFIG_START( sega_lastsurv_fd1094, segaxbd_new_state ) - MCFG_DEVICE_ADD("mainpcb", SEGA_XBD_LASTSURV_FD1094_DEVICE, 0) +static MACHINE_CONFIG_START( sega_lastsurv_fd1094 ) + MCFG_DEVICE_ADD("mainpcb", SEGA_XBD_LASTSURV_FD1094, 0) MACHINE_CONFIG_END static MACHINE_CONFIG_FRAGMENT( lastsurv ) @@ -1889,10 +1889,10 @@ static MACHINE_CONFIG_FRAGMENT( lastsurv ) MCFG_SOUND_ROUTE(1, "lspeaker", 0.43) MACHINE_CONFIG_END -const device_type SEGA_XBD_LASTSURV_DEVICE = device_creator; +DEFINE_DEVICE_TYPE(SEGA_XBD_LASTSURV, segaxbd_lastsurv_state, "segaxbd_pcb_lastsurv", "Sega X-Board PCB (Last Survivor)") segaxbd_lastsurv_state::segaxbd_lastsurv_state(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : segaxbd_state(mconfig, SEGA_XBD_LASTSURV_DEVICE, "Sega X-Board Last Survivor PCB", tag, owner, clock, "segakbd_pcb_lastsurv", __FILE__) + : segaxbd_state(mconfig, SEGA_XBD_LASTSURV, tag, owner, clock) { } @@ -1901,8 +1901,8 @@ machine_config_constructor segaxbd_lastsurv_state::device_mconfig_additions() co return MACHINE_CONFIG_NAME( lastsurv ); } -static MACHINE_CONFIG_START( sega_lastsurv, segaxbd_new_state ) - MCFG_DEVICE_ADD("mainpcb", SEGA_XBD_LASTSURV_DEVICE, 0) +static MACHINE_CONFIG_START( sega_lastsurv ) + MCFG_DEVICE_ADD("mainpcb", SEGA_XBD_LASTSURV, 0) MACHINE_CONFIG_END @@ -1936,10 +1936,10 @@ static MACHINE_CONFIG_FRAGMENT( smgp_fd1094 ) MCFG_SOUND_ROUTE(1, "rearright", 1.0) MACHINE_CONFIG_END -const device_type SEGA_XBD_SMGP_FD1094_DEVICE = device_creator; +DEFINE_DEVICE_TYPE(SEGA_XBD_SMGP_FD1094, segaxbd_smgp_fd1094_state, "segaxbd_pcb_smgp_fd1094", "Sega X-Board PCB (SMGP, FD1094)") segaxbd_smgp_fd1094_state::segaxbd_smgp_fd1094_state(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : segaxbd_state(mconfig, SEGA_XBD_SMGP_FD1094_DEVICE, "Sega X-Board SMGP PCB FD1094", tag, owner, clock, "segakbd_pcb_smgp_fd1094", __FILE__) + : segaxbd_state(mconfig, SEGA_XBD_SMGP_FD1094, tag, owner, clock) { } @@ -1948,8 +1948,8 @@ machine_config_constructor segaxbd_smgp_fd1094_state::device_mconfig_additions() return MACHINE_CONFIG_NAME( smgp_fd1094 ); } -static MACHINE_CONFIG_START( sega_smgp_fd1094, segaxbd_new_state ) - MCFG_DEVICE_ADD("mainpcb", SEGA_XBD_SMGP_FD1094_DEVICE, 0) +static MACHINE_CONFIG_START( sega_smgp_fd1094 ) + MCFG_DEVICE_ADD("mainpcb", SEGA_XBD_SMGP_FD1094, 0) MACHINE_CONFIG_END @@ -1983,10 +1983,10 @@ static MACHINE_CONFIG_FRAGMENT( smgp ) MCFG_SOUND_ROUTE(1, "rearright", 1.0) MACHINE_CONFIG_END -const device_type SEGA_XBD_SMGP_DEVICE = device_creator; +DEFINE_DEVICE_TYPE(SEGA_XBD_SMGP, segaxbd_smgp_state, "segaxbd_pcb_smgp", "Sega X-Board PCB (SMGP)") segaxbd_smgp_state::segaxbd_smgp_state(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : segaxbd_state(mconfig, SEGA_XBD_SMGP_DEVICE, "Sega X-Board SMGP PCB", tag, owner, clock, "segakbd_pcb_smgp", __FILE__) + : segaxbd_state(mconfig, SEGA_XBD_SMGP, tag, owner, clock) { } @@ -1995,8 +1995,8 @@ machine_config_constructor segaxbd_smgp_state::device_mconfig_additions() const return MACHINE_CONFIG_NAME( smgp ); } -static MACHINE_CONFIG_START( sega_smgp, segaxbd_new_state ) - MCFG_DEVICE_ADD("mainpcb", SEGA_XBD_SMGP_DEVICE, 0) +static MACHINE_CONFIG_START( sega_smgp ) + MCFG_DEVICE_ADD("mainpcb", SEGA_XBD_SMGP, 0) MACHINE_CONFIG_END @@ -2009,10 +2009,10 @@ static MACHINE_CONFIG_FRAGMENT( rascot ) MCFG_CPU_IO_MAP(rascot_z80_portmap) MACHINE_CONFIG_END -const device_type SEGA_XBD_RASCOT_DEVICE = device_creator; +DEFINE_DEVICE_TYPE(SEGA_XBD_RASCOT, segaxbd_rascot_state, "segaxbd_pcb_rascot", "Sega X-Board PCB (Royal Ascot)") segaxbd_rascot_state::segaxbd_rascot_state(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : segaxbd_state(mconfig, SEGA_XBD_RASCOT_DEVICE, "Sega X-Board Royal Ascot PCB", tag, owner, clock, "segakbd_pcb_rascot", __FILE__) + : segaxbd_state(mconfig, SEGA_XBD_RASCOT, tag, owner, clock) { } @@ -2021,8 +2021,8 @@ machine_config_constructor segaxbd_rascot_state::device_mconfig_additions() cons return MACHINE_CONFIG_NAME( rascot ); } -static MACHINE_CONFIG_START( sega_rascot, segaxbd_new_state ) - MCFG_DEVICE_ADD("mainpcb", SEGA_XBD_RASCOT_DEVICE, 0) +static MACHINE_CONFIG_START( sega_rascot ) + MCFG_DEVICE_ADD("mainpcb", SEGA_XBD_RASCOT, 0) MACHINE_CONFIG_END @@ -4741,22 +4741,22 @@ DRIVER_INIT_MEMBER(segaxbd_new_state_double,gprider_double) // GAME DRIVERS //************************************************************************** -// YEAR, NAME, PARENT, MACHINE, INPUT, INIT, MONITOR,COMPANY,FULLNAME,FLAGS +// YEAR, NAME, PARENT, MACHINE, INPUT, STATE, INIT, MONITOR,COMPANY,FULLNAME,FLAGS GAME( 1987, aburner2, 0, sega_aburner2, aburner2, segaxbd_new_state, aburner2, ROT0, "Sega", "After Burner II", 0 ) GAME( 1987, aburner2g,aburner2, sega_aburner2, aburner2, segaxbd_new_state, aburner2, ROT0, "Sega", "After Burner II (German)", 0 ) GAME( 1987, aburner, aburner2, sega_aburner2, aburner, segaxbd_new_state, aburner2, ROT0, "Sega", "After Burner", 0 ) -GAME( 1987, thndrbld, 0, sega_xboard_fd1094, thndrbld, driver_device, 0, ROT0, "Sega", "Thunder Blade (upright) (FD1094 317-0056)", 0 ) -GAME( 1987, thndrbld1,thndrbld, sega_xboard, thndrbd1, driver_device, 0, ROT0, "Sega", "Thunder Blade (deluxe/standing) (unprotected)", 0 ) +GAME( 1987, thndrbld, 0, sega_xboard_fd1094, thndrbld, segaxbd_new_state, 0, ROT0, "Sega", "Thunder Blade (upright) (FD1094 317-0056)", 0 ) +GAME( 1987, thndrbld1,thndrbld, sega_xboard, thndrbd1, segaxbd_new_state, 0, ROT0, "Sega", "Thunder Blade (deluxe/standing) (unprotected)", 0 ) -GAME( 1989, lastsurv, 0, sega_lastsurv_fd1094,lastsurv, driver_device, 0, ROT0, "Sega", "Last Survivor (Japan) (FD1094 317-0083)", 0 ) +GAME( 1989, lastsurv, 0, sega_lastsurv_fd1094,lastsurv, driver_device, 0, ROT0, "Sega", "Last Survivor (Japan) (FD1094 317-0083)", 0 ) GAME( 1989, loffire, 0, sega_xboard_fd1094, loffire, segaxbd_new_state, loffire, ROT0, "Sega", "Line of Fire / Bakudan Yarou (World) (FD1094 317-0136)", 0 ) GAME( 1989, loffireu, loffire, sega_xboard_fd1094, loffire, segaxbd_new_state, loffire, ROT0, "Sega", "Line of Fire / Bakudan Yarou (US) (FD1094 317-0135)", 0 ) GAME( 1989, loffirej, loffire, sega_xboard_fd1094, loffire, segaxbd_new_state, loffire, ROT0, "Sega", "Line of Fire / Bakudan Yarou (Japan) (FD1094 317-0134)", 0 ) -GAME( 1989, rachero, 0, sega_xboard_fd1094, rachero, driver_device, 0, ROT0, "Sega", "Racing Hero (FD1094 317-0144)", 0 ) +GAME( 1989, rachero, 0, sega_xboard_fd1094, rachero, segaxbd_new_state, 0, ROT0, "Sega", "Racing Hero (FD1094 317-0144)", 0 ) GAME( 1989, smgp, 0, sega_smgp_fd1094, smgp, segaxbd_new_state, smgp, ROT0, "Sega", "Super Monaco GP (World, Rev B) (FD1094 317-0126a)", 0 ) GAME( 1989, smgp6, smgp, sega_smgp_fd1094, smgp, segaxbd_new_state, smgp, ROT0, "Sega", "Super Monaco GP (World, Rev A) (FD1094 317-0126a)", 0 ) @@ -4767,13 +4767,13 @@ GAME( 1989, smgpu2, smgp, sega_smgp_fd1094, smgp, segaxbd_new_state GAME( 1989, smgpj, smgp, sega_smgp_fd1094, smgp, segaxbd_new_state, smgp, ROT0, "Sega", "Super Monaco GP (Japan, Rev B) (FD1094 317-0124a)", 0 ) GAME( 1989, smgpja, smgp, sega_smgp_fd1094, smgp, segaxbd_new_state, smgp, ROT0, "Sega", "Super Monaco GP (Japan, Rev A) (FD1094 317-0124a)", 0 ) -GAME( 1990, abcop, 0, sega_xboard_fd1094, abcop, driver_device, 0, ROT0, "Sega", "A.B. Cop (World) (FD1094 317-0169b)", 0 ) -GAME( 1990, abcopj, abcop, sega_xboard_fd1094, abcop, driver_device, 0, ROT0, "Sega", "A.B. Cop (Japan) (FD1094 317-0169b)", 0 ) +GAME( 1990, abcop, 0, sega_xboard_fd1094, abcop, segaxbd_new_state, 0, ROT0, "Sega", "A.B. Cop (World) (FD1094 317-0169b)", 0 ) +GAME( 1990, abcopj, abcop, sega_xboard_fd1094, abcop, segaxbd_new_state, 0, ROT0, "Sega", "A.B. Cop (Japan) (FD1094 317-0169b)", 0 ) // wasn't officially available as a single PCB setup, but runs anyway albeit with messages suggesting you can compete against a rival that doesn't exist? -GAME( 1990, gpriders, gprider, sega_xboard_fd1094, gprider, segaxbd_new_state, gprider, ROT0, "Sega", "GP Rider (World, FD1094 317-0163)", 0 ) -GAME( 1990, gpriderus,gprider, sega_xboard_fd1094, gprider, segaxbd_new_state, gprider, ROT0, "Sega", "GP Rider (US, FD1094 317-0162)", 0 ) -GAME( 1990, gpriderjs,gprider, sega_xboard_fd1094, gprider, segaxbd_new_state, gprider, ROT0, "Sega", "GP Rider (Japan, FD1094 317-0161)", 0 ) +GAME( 1990, gpriders, gprider, sega_xboard_fd1094, gprider, segaxbd_new_state, gprider, ROT0, "Sega", "GP Rider (World, FD1094 317-0163)", 0 ) +GAME( 1990, gpriderus,gprider, sega_xboard_fd1094, gprider, segaxbd_new_state, gprider, ROT0, "Sega", "GP Rider (US, FD1094 317-0162)", 0 ) +GAME( 1990, gpriderjs,gprider, sega_xboard_fd1094, gprider, segaxbd_new_state, gprider, ROT0, "Sega", "GP Rider (Japan, FD1094 317-0161)", 0 ) // multi X-Board (2 stacks directly connected, shared RAM on bridge PCB - not networked) GAME( 1990, gprider, 0, sega_xboard_fd1094_double, gprider_double, segaxbd_new_state_double, gprider_double, ROT0, "Sega", "GP Rider (World, FD1094 317-0163) (Twin setup)", 0 ) @@ -4781,13 +4781,13 @@ GAME( 1990, gprideru,gprider, sega_xboard_fd1094_double, gprider_double, segax GAME( 1990, gpriderj,gprider, sega_xboard_fd1094_double, gprider_double, segaxbd_new_state_double, gprider_double, ROT0, "Sega", "GP Rider (Japan, FD1094 317-0161) (Twin setup)", 0 ) // X-Board + other boards? -GAME( 1991, rascot, 0, sega_rascot, rascot, segaxbd_new_state, rascot, ROT0, "Sega", "Royal Ascot (Japan, terminal?)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +GAME( 1991, rascot, 0, sega_rascot, rascot, segaxbd_new_state, rascot, ROT0, "Sega", "Royal Ascot (Japan, terminal?)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // decrypted bootlegs -GAME( 1987, thndrbldd, thndrbld,sega_xboard, thndrbld, driver_device, 0, ROT0, "bootleg", "Thunder Blade (upright) (bootleg of FD1094 317-0056 set)", 0 ) +GAME( 1987, thndrbldd, thndrbld, sega_xboard, thndrbld, segaxbd_new_state, 0, ROT0, "bootleg", "Thunder Blade (upright) (bootleg of FD1094 317-0056 set)", 0 ) -GAME( 1989, racherod, rachero, sega_xboard, rachero, driver_device, 0, ROT0, "bootleg", "Racing Hero (bootleg of FD1094 317-0144 set)", 0 ) +GAME( 1989, racherod, rachero, sega_xboard, rachero, segaxbd_new_state, 0, ROT0, "bootleg", "Racing Hero (bootleg of FD1094 317-0144 set)", 0 ) GAME( 1989, smgpd, smgp, sega_smgp, smgp, segaxbd_new_state, smgp, ROT0, "bootleg", "Super Monaco GP (World, Rev B) (bootleg of FD1094 317-0126a set)", 0 ) GAME( 1989, smgp6d, smgp, sega_smgp, smgp, segaxbd_new_state, smgp, ROT0, "bootleg", "Super Monaco GP (World, Rev A) (bootleg of FD1094 317-0126a set)", 0 ) @@ -4797,10 +4797,10 @@ GAME( 1989, smgpu1d, smgp, sega_smgp, smgp, segaxbd_new_state, smgp GAME( 1989, smgpu2d, smgp, sega_smgp, smgp, segaxbd_new_state, smgp, ROT0, "bootleg", "Super Monaco GP (US, Rev A) (bootleg of FD1094 317-0125a set)", 0 ) GAME( 1989, smgpjd, smgp, sega_smgp, smgp, segaxbd_new_state, smgp, ROT0, "bootleg", "Super Monaco GP (Japan, Rev B) (bootleg of FD1094 317-0124a set)", 0 ) -GAME( 1989, lastsurvd,lastsurv, sega_lastsurv,lastsurv, driver_device, 0, ROT0, "bootleg", "Last Survivor (Japan) (bootleg of FD1094 317-0083 set)", 0 ) +GAME( 1989, lastsurvd, lastsurv, sega_lastsurv,lastsurv, segaxbd_new_state, 0, ROT0, "bootleg", "Last Survivor (Japan) (bootleg of FD1094 317-0083 set)", 0 ) -GAME( 1990, abcopd, abcop, sega_xboard, abcop, driver_device, 0, ROT0, "bootleg", "A.B. Cop (World) (bootleg of FD1094 317-0169b set)", 0 ) -GAME( 1990, abcopjd, abcop, sega_xboard, abcop, driver_device, 0, ROT0, "bootleg", "A.B. Cop (Japan) (bootleg of FD1094 317-0169b set)", 0 ) +GAME( 1990, abcopd, abcop, sega_xboard, abcop, segaxbd_new_state, 0, ROT0, "bootleg", "A.B. Cop (World) (bootleg of FD1094 317-0169b set)", 0 ) +GAME( 1990, abcopjd, abcop, sega_xboard, abcop, segaxbd_new_state, 0, ROT0, "bootleg", "A.B. Cop (Japan) (bootleg of FD1094 317-0169b set)", 0 ) GAME( 1989, loffired, loffire, sega_xboard, loffire, segaxbd_new_state, loffire, ROT0, "bootleg", "Line of Fire / Bakudan Yarou (World) (bootleg of FD1094 317-0136 set)", 0 ) GAME( 1989, loffireud, loffire, sega_xboard, loffire, segaxbd_new_state, loffire, ROT0, "bootleg", "Line of Fire / Bakudan Yarou (US) (bootleg of FD1094 317-0135 set)", 0 ) diff --git a/src/mame/drivers/segaybd.cpp b/src/mame/drivers/segaybd.cpp index bc96ea0ae07..9d7c1185d58 100644 --- a/src/mame/drivers/segaybd.cpp +++ b/src/mame/drivers/segaybd.cpp @@ -1303,7 +1303,7 @@ INPUT_PORTS_END // GENERIC MACHINE DRIVERS //************************************************************************** -static MACHINE_CONFIG_START( yboard, segaybd_state ) +static MACHINE_CONFIG_START( yboard ) // basic machine hardware MCFG_CPU_ADD("maincpu", M68000, MASTER_CLOCK/4) @@ -1376,7 +1376,7 @@ static MACHINE_CONFIG_START( yboard, segaybd_state ) MCFG_SOUND_ROUTE(1, "rspeaker", 0.43) MCFG_SEGAPCM_ADD("pcm", SOUND_CLOCK/8) - MCFG_SEGAPCM_BANK(BANK_12M | BANK_MASKF8) + MCFG_SEGAPCM_BANK_MASK(BANK_12M, BANK_MASKF8) MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) MACHINE_CONFIG_END @@ -2724,25 +2724,25 @@ DRIVER_INIT_MEMBER(segaybd_state,rchase) // GAME DRIVERS //************************************************************************** -// YEAR, NAME, PARENT, MACHINE, INPUT, INIT, MONITOR,COMPANY,FULLNAME,FLAGS, LAYOUT -GAME( 1988, gforce2, 0, yboard, gforce2, segaybd_state, gforce2, ROT0, "Sega", "Galaxy Force 2", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, gforce2sd, gforce2, yboard_deluxe, gforce2, segaybd_state, gforce2, ROT0, "Sega", "Galaxy Force 2 (Super Deluxe unit)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, gforce2ja, gforce2, yboard, gforce2, segaybd_state, gforce2, ROT0, "Sega", "Galaxy Force 2 (Japan, Rev A)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, gforce2j, gforce2, yboard, gforce2, segaybd_state, gforce2, ROT0, "Sega", "Galaxy Force 2 (Japan)", MACHINE_SUPPORTS_SAVE ) +// YEAR, NAME, PARENT, MACHINE, INPUT, STATE, INIT, MONITOR,COMPANY,FULLNAME,FLAGS, LAYOUT +GAME( 1988, gforce2, 0, yboard, gforce2, segaybd_state, gforce2, ROT0, "Sega", "Galaxy Force 2", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, gforce2sd, gforce2, yboard_deluxe, gforce2, segaybd_state, gforce2, ROT0, "Sega", "Galaxy Force 2 (Super Deluxe unit)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, gforce2ja, gforce2, yboard, gforce2, segaybd_state, gforce2, ROT0, "Sega", "Galaxy Force 2 (Japan, Rev A)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, gforce2j, gforce2, yboard, gforce2, segaybd_state, gforce2, ROT0, "Sega", "Galaxy Force 2 (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, gloc, 0, yboard, gloc, segaybd_state, gloc, ROT0, "Sega", "G-LOC Air Battle (World)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, glocu, gloc, yboard, gloc, segaybd_state, gloc, ROT0, "Sega", "G-LOC Air Battle (US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, glocr360, gloc, yboard, glocr360, segaybd_state, r360, ROT0, "Sega", "G-LOC R360", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, gloc, 0, yboard, gloc, segaybd_state, gloc, ROT0, "Sega", "G-LOC Air Battle (World)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, glocu, gloc, yboard, gloc, segaybd_state, gloc, ROT0, "Sega", "G-LOC Air Battle (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, glocr360, gloc, yboard, glocr360, segaybd_state, r360, ROT0, "Sega", "G-LOC R360", MACHINE_SUPPORTS_SAVE ) -GAMEL(1988, pdrift, 0, yboard, pdrift, segaybd_state, pdrift, ROT0, "Sega", "Power Drift (World, Rev A)", MACHINE_SUPPORTS_SAVE, layout_pdrift ) -GAMEL(1988, pdrifta, pdrift, yboard, pdrift, segaybd_state, pdrift, ROT0, "Sega", "Power Drift (World)", MACHINE_SUPPORTS_SAVE, layout_pdrift ) -GAMEL(1988, pdrifte, pdrift, yboard, pdrifte, segaybd_state, pdrift, ROT0, "Sega", "Power Drift (World, Earlier)", MACHINE_SUPPORTS_SAVE, layout_pdrift ) -GAMEL(1988, pdriftj, pdrift, yboard, pdriftj, segaybd_state, pdrift, ROT0, "Sega", "Power Drift (Japan)", MACHINE_SUPPORTS_SAVE, layout_pdrift ) +GAMEL(1988, pdrift, 0, yboard, pdrift, segaybd_state, pdrift, ROT0, "Sega", "Power Drift (World, Rev A)", MACHINE_SUPPORTS_SAVE, layout_pdrift ) +GAMEL(1988, pdrifta, pdrift, yboard, pdrift, segaybd_state, pdrift, ROT0, "Sega", "Power Drift (World)", MACHINE_SUPPORTS_SAVE, layout_pdrift ) +GAMEL(1988, pdrifte, pdrift, yboard, pdrifte, segaybd_state, pdrift, ROT0, "Sega", "Power Drift (World, Earlier)", MACHINE_SUPPORTS_SAVE, layout_pdrift ) +GAMEL(1988, pdriftj, pdrift, yboard, pdriftj, segaybd_state, pdrift, ROT0, "Sega", "Power Drift (Japan)", MACHINE_SUPPORTS_SAVE, layout_pdrift ) -GAMEL(1988, pdriftl, 0, yboard_link, pdriftl, segaybd_state, pdrift, ROT0, "Sega", "Power Drift - Link Version (Japan, Rev A)", MACHINE_SUPPORTS_SAVE, layout_pdrift) +GAMEL(1988, pdriftl, 0, yboard_link, pdriftl, segaybd_state, pdrift, ROT0, "Sega", "Power Drift - Link Version (Japan, Rev A)", MACHINE_SUPPORTS_SAVE, layout_pdrift) -GAME( 1991, rchase, 0, yboard, rchase, segaybd_state, rchase, ROT0, "Sega", "Rail Chase (World)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, rchasej, rchase, yboard, rchase, segaybd_state, rchase, ROT0, "Sega", "Rail Chase (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, rchase, 0, yboard, rchase, segaybd_state, rchase, ROT0, "Sega", "Rail Chase (World)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, rchasej, rchase, yboard, rchase, segaybd_state, rchase, ROT0, "Sega", "Rail Chase (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, strkfgtr, 0, yboard, strkfgtr, segaybd_state, gloc, ROT0, "Sega", "Strike Fighter (World)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, strkfgtrj, strkfgtr, yboard, strkfgtr, segaybd_state, gloc, ROT0, "Sega", "Strike Fighter (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, strkfgtr, 0, yboard, strkfgtr, segaybd_state, gloc, ROT0, "Sega", "Strike Fighter (World)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, strkfgtrj, strkfgtr, yboard, strkfgtr, segaybd_state, gloc, ROT0, "Sega", "Strike Fighter (Japan)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/seibuspi.cpp b/src/mame/drivers/seibuspi.cpp index 0bbf87f9b87..7e99891c3a9 100644 --- a/src/mame/drivers/seibuspi.cpp +++ b/src/mame/drivers/seibuspi.cpp @@ -1863,7 +1863,7 @@ MACHINE_RESET_MEMBER(seibuspi_state,spi) m_z80_prg_transfer_pos = 0; } -static MACHINE_CONFIG_START( spi, seibuspi_state ) +static MACHINE_CONFIG_START( spi ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I386, XTAL_50MHz/2) // AMD or Intel 386DX, 25MHz @@ -1992,7 +1992,7 @@ MACHINE_CONFIG_END /* SYS386I */ -static MACHINE_CONFIG_START( sys386i, seibuspi_state ) +static MACHINE_CONFIG_START( sys386i ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I386, XTAL_40MHz) // AMD 386DX, 40MHz @@ -2020,10 +2020,10 @@ static MACHINE_CONFIG_START( sys386i, seibuspi_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki1", XTAL_28_63636MHz/20, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki1", XTAL_28_63636MHz/20, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) - MCFG_OKIM6295_ADD("oki2", XTAL_28_63636MHz/20, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki2", XTAL_28_63636MHz/20, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) MACHINE_CONFIG_END @@ -2049,7 +2049,7 @@ DRIVER_INIT_MEMBER(seibuspi_state,sys386f) } } -static MACHINE_CONFIG_START( sys386f, seibuspi_state ) +static MACHINE_CONFIG_START( sys386f ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I386, XTAL_50MHz/2) // Intel i386DX, 25MHz diff --git a/src/mame/drivers/seicross.cpp b/src/mame/drivers/seicross.cpp index c82b6667fba..37ee07676fe 100644 --- a/src/mame/drivers/seicross.cpp +++ b/src/mame/drivers/seicross.cpp @@ -390,7 +390,7 @@ INTERRUPT_GEN_MEMBER(seicross_state::vblank_irq) } -static MACHINE_CONFIG_START( no_nvram, seicross_state ) +static MACHINE_CONFIG_START( no_nvram ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_18_432MHz / 6) /* D780C, 3.072 MHz? */ @@ -633,10 +633,10 @@ DRIVER_INIT_MEMBER(seicross_state,friskytb) } -GAME( 1981, friskyt, 0, nvram, friskyt, driver_device, 0, ROT0, "Nichibutsu", "Frisky Tom (set 1)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1981, friskyta, friskyt, nvram, friskyt, driver_device, 0, ROT0, "Nichibutsu", "Frisky Tom (set 2)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1981, friskytb, friskyt, friskytb, friskyt, seicross_state, friskytb, ROT0, "Nichibutsu", "Frisky Tom (set 3, encrypted)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // protection mcu runs encrypted opcodes -GAME( 1982, radrad, 0, no_nvram, radrad, driver_device, 0, ROT0, "Nichibutsu USA", "Radical Radial (US)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1983, radradj, radrad, no_nvram, radrad, driver_device, 0, ROT0, "Logitec Corp.", "Radical Radial (Japan)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1984, seicross, 0, no_nvram, seicross, driver_device, 0, ROT90, "Nichibutsu / Alice", "Seicross", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1984, sectrzon, seicross, no_nvram, seicross, driver_device, 0, ROT90, "Nichibutsu / Alice", "Sector Zone", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1981, friskyt, 0, nvram, friskyt, seicross_state, 0, ROT0, "Nichibutsu", "Frisky Tom (set 1)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1981, friskyta, friskyt, nvram, friskyt, seicross_state, 0, ROT0, "Nichibutsu", "Frisky Tom (set 2)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1981, friskytb, friskyt, friskytb, friskyt, seicross_state, friskytb, ROT0, "Nichibutsu", "Frisky Tom (set 3, encrypted)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // protection mcu runs encrypted opcodes +GAME( 1982, radrad, 0, no_nvram, radrad, seicross_state, 0, ROT0, "Nichibutsu USA", "Radical Radial (US)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1983, radradj, radrad, no_nvram, radrad, seicross_state, 0, ROT0, "Logitec Corp.", "Radical Radial (Japan)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1984, seicross, 0, no_nvram, seicross, seicross_state, 0, ROT90, "Nichibutsu / Alice", "Seicross", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1984, sectrzon, seicross, no_nvram, seicross, seicross_state, 0, ROT90, "Nichibutsu / Alice", "Sector Zone", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/seicupbl.cpp b/src/mame/drivers/seicupbl.cpp index f68cfbb815e..1545d08d758 100644 --- a/src/mame/drivers/seicupbl.cpp +++ b/src/mame/drivers/seicupbl.cpp @@ -539,7 +539,7 @@ static GFXDECODE_START( seicupbl_csb ) GFXDECODE_END -static MACHINE_CONFIG_START( cupsocbl, seicupbl_state ) +static MACHINE_CONFIG_START( cupsocbl ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000,12000000) @@ -579,7 +579,7 @@ static MACHINE_CONFIG_START( cupsocbl, seicupbl_state ) MCFG_GENERIC_LATCH_8_ADD("soundlatch") - MCFG_OKIM6295_ADD("oki", 1000000, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", 1000000, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -808,6 +808,6 @@ ROM_START( cupsocsb3 ) ROM_END -GAME( 1992, cupsocsb, cupsoc, cupsocbl, cupsoc, driver_device, 0, ROT0, "bootleg", "Seibu Cup Soccer :Selection: (bootleg, set 1)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) -GAME( 1992, cupsocsb2,cupsoc, cupsocbl, cupsoc, driver_device, 0, ROT0, "bootleg", "Seibu Cup Soccer :Selection: (bootleg, set 2)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) -GAME( 1992, cupsocsb3,cupsoc, cupsocbl, cupsoc, driver_device, 0, ROT0, "bootleg", "Seibu Cup Soccer :Selection: (bootleg, set 3)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) +GAME( 1992, cupsocsb, cupsoc, cupsocbl, cupsoc, seicupbl_state, 0, ROT0, "bootleg", "Seibu Cup Soccer :Selection: (bootleg, set 1)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) +GAME( 1992, cupsocsb2,cupsoc, cupsocbl, cupsoc, seicupbl_state, 0, ROT0, "bootleg", "Seibu Cup Soccer :Selection: (bootleg, set 2)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) +GAME( 1992, cupsocsb3,cupsoc, cupsocbl, cupsoc, seicupbl_state, 0, ROT0, "bootleg", "Seibu Cup Soccer :Selection: (bootleg, set 3)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/selz80.cpp b/src/mame/drivers/selz80.cpp index f4813520766..ffff71824d8 100644 --- a/src/mame/drivers/selz80.cpp +++ b/src/mame/drivers/selz80.cpp @@ -152,7 +152,7 @@ READ8_MEMBER( selz80_state::kbd_r ) return data; } -static MACHINE_CONFIG_START( selz80, selz80_state ) +static MACHINE_CONFIG_START( selz80 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80, XTAL_4MHz) MCFG_CPU_PROGRAM_MAP(selz80_mem) @@ -196,6 +196,6 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS, INIT COMPANY FULLNAME FLAGS */ -COMP( 1985, selz80, 0, 0, selz80, selz80, driver_device, 0, "SEL", "SEL Z80 Trainer", MACHINE_NO_SOUND_HW) -COMP( 1988, dagz80, selz80, 0, dagz80, selz80, driver_device, 0, "DAG", "DAG Z80 Trainer", MACHINE_NO_SOUND_HW) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 1985, selz80, 0, 0, selz80, selz80, selz80_state, 0, "SEL", "SEL Z80 Trainer", MACHINE_NO_SOUND_HW) +COMP( 1988, dagz80, selz80, 0, dagz80, selz80, selz80_state, 0, "DAG", "DAG Z80 Trainer", MACHINE_NO_SOUND_HW) diff --git a/src/mame/drivers/sengokmj.cpp b/src/mame/drivers/sengokmj.cpp index 8f5b522356f..285896d90fe 100644 --- a/src/mame/drivers/sengokmj.cpp +++ b/src/mame/drivers/sengokmj.cpp @@ -566,7 +566,7 @@ WRITE16_MEMBER( sengokmj_state::layer_scroll_w ) } -static MACHINE_CONFIG_START( sengokmj, sengokmj_state ) +static MACHINE_CONFIG_START( sengokmj ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", V30, 16000000/2) /* V30-8 */ @@ -603,7 +603,7 @@ static MACHINE_CONFIG_START( sengokmj, sengokmj_state ) MCFG_YM3812_IRQ_HANDLER(DEVWRITELINE("seibu_sound", seibu_sound_device, fm_irqhandler)) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MCFG_OKIM6295_ADD("oki", 1320000, OKIM6295_PIN7_LOW) + MCFG_OKIM6295_ADD("oki", 1320000, PIN7_LOW) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40) MCFG_DEVICE_ADD("seibu_sound", SEIBU_SOUND, 0) @@ -650,5 +650,5 @@ ROM_START( sengokmj ) ROM_LOAD( "rs006.89", 0x000, 0x200, CRC(96f7646e) SHA1(400a831b83d6ac4d2a46ef95b97b1ee237099e44) ) /* Priority */ ROM_END -GAME( 1991, sengokmj, 0, sengokmj, sengokmj, driver_device, 0, ROT0, "Sigma", "Sengoku Mahjong [BET] (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1991, sengokmj, 0, sengokmj, sengokmj, sengokmj_state, 0, ROT0, "Sigma", "Sengoku Mahjong [BET] (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) /*Non-Bet Version?*/ diff --git a/src/mame/drivers/senjyo.cpp b/src/mame/drivers/senjyo.cpp index 5390c5c9676..360745fbf7f 100644 --- a/src/mame/drivers/senjyo.cpp +++ b/src/mame/drivers/senjyo.cpp @@ -550,7 +550,7 @@ static GFXDECODE_START( senjyo ) GFXDECODE_END -static MACHINE_CONFIG_START( senjyo, senjyo_state ) +static MACHINE_CONFIG_START( senjyo ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 4000000) /* 4 MHz? */ @@ -940,10 +940,10 @@ DRIVER_INIT_MEMBER(senjyo_state,senjyo) } -GAME( 1983, senjyo, 0, senjyo, senjyo, senjyo_state, senjyo, ROT90, "Tehkan", "Senjyo", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, starforc, 0, senjyo, starforc, senjyo_state, starforc, ROT90, "Tehkan", "Star Force", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, starforce,starforc, senjyox_e, starforc, senjyo_state, starfore, ROT90, "Tehkan", "Star Force (encrypted, set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, starforcb,starforc, starforb, starforc, senjyo_state, starfore, ROT90, "bootleg", "Star Force (encrypted, bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, starforca,starforc, senjyox_a, starforc, senjyo_state, starfora, ROT90, "Tehkan", "Star Force (encrypted, set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, megaforc, starforc, senjyo, starforc, senjyo_state, starforc, ROT90, "Tehkan (Video Ware license)", "Mega Force", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, baluba, 0, senjyo, baluba, senjyo_state, starforc, ROT90, "Able Corp, Ltd.", "Baluba-louk no Densetsu (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, senjyo, 0, senjyo, senjyo, senjyo_state, senjyo, ROT90, "Tehkan", "Senjyo", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, starforc, 0, senjyo, starforc, senjyo_state, starforc, ROT90, "Tehkan", "Star Force", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, starforce, starforc, senjyox_e, starforc, senjyo_state, starfore, ROT90, "Tehkan", "Star Force (encrypted, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, starforcb, starforc, starforb, starforc, senjyo_state, starfore, ROT90, "bootleg", "Star Force (encrypted, bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, starforca, starforc, senjyox_a, starforc, senjyo_state, starfora, ROT90, "Tehkan", "Star Force (encrypted, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, megaforc, starforc, senjyo, starforc, senjyo_state, starforc, ROT90, "Tehkan (Video Ware license)", "Mega Force", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, baluba, 0, senjyo, baluba, senjyo_state, starforc, ROT90, "Able Corp, Ltd.", "Baluba-louk no Densetsu (Japan)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/seta.cpp b/src/mame/drivers/seta.cpp index 052fbab974e..dff9c7777b7 100644 --- a/src/mame/drivers/seta.cpp +++ b/src/mame/drivers/seta.cpp @@ -7706,7 +7706,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(seta_state::tndrcade_sub_interrupt) m_subcpu->set_input_line(0, HOLD_LINE); } -static MACHINE_CONFIG_START( tndrcade, seta_state ) +static MACHINE_CONFIG_START( tndrcade ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 16000000/2) /* 8 MHz */ @@ -7760,7 +7760,7 @@ MACHINE_CONFIG_END /* twineagl lev 3 = lev 2 + lev 1 ! */ -static MACHINE_CONFIG_START( twineagl, seta_state ) +static MACHINE_CONFIG_START( twineagl ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 16000000/2) /* 8 MHz */ @@ -7806,7 +7806,7 @@ MACHINE_CONFIG_END /* downtown lev 3 = lev 2 + lev 1 ! */ -static MACHINE_CONFIG_START( downtown, seta_state ) +static MACHINE_CONFIG_START( downtown ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz/2) /* verified on pcb */ @@ -7868,7 +7868,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(seta_state::calibr50_interrupt) } -static MACHINE_CONFIG_START( usclssic, seta_state ) +static MACHINE_CONFIG_START( usclssic ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 16000000/2) /* 8 MHz */ @@ -7923,7 +7923,7 @@ MACHINE_CONFIG_END Test mode shows a 16ms and 4ms counters. I wonder if every game has 5 ints per frame */ -static MACHINE_CONFIG_START( calibr50, seta_state ) +static MACHINE_CONFIG_START( calibr50 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz/2) /* verified on pcb */ @@ -7974,7 +7974,7 @@ MACHINE_CONFIG_END /* metafox lev 3 = lev 2 + lev 1 ! */ -static MACHINE_CONFIG_START( metafox, seta_state ) +static MACHINE_CONFIG_START( metafox ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 16000000/2) /* 8 MHz */ @@ -8018,7 +8018,7 @@ MACHINE_CONFIG_END Athena no Hatena? ***************************************************************************/ -static MACHINE_CONFIG_START( atehate, seta_state ) +static MACHINE_CONFIG_START( atehate ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 16000000) /* 16 MHz */ @@ -8061,7 +8061,7 @@ MACHINE_CONFIG_END samples are bankswitched */ -static MACHINE_CONFIG_START( blandia, seta_state ) +static MACHINE_CONFIG_START( blandia ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 16000000) /* 16 MHz */ @@ -8098,7 +8098,7 @@ static MACHINE_CONFIG_START( blandia, seta_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( blandiap, seta_state ) +static MACHINE_CONFIG_START( blandiap ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 16000000) /* 16 MHz */ @@ -8140,7 +8140,7 @@ MACHINE_CONFIG_END Block Carnival ***************************************************************************/ -static MACHINE_CONFIG_START( blockcar, seta_state ) +static MACHINE_CONFIG_START( blockcar ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 16000000/2) /* 8 MHz */ @@ -8201,7 +8201,7 @@ static MACHINE_CONFIG_DERIVED( blockcarb, blockcar ) /* the sound hardware / program is ripped from Tetris (S16B) */ MCFG_DEVICE_REMOVE("x1snd") - MCFG_OKIM6295_ADD("oki", 1000000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki", 1000000, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -8211,7 +8211,7 @@ MACHINE_CONFIG_END Daioh ***************************************************************************/ -static MACHINE_CONFIG_START( daioh, seta_state ) +static MACHINE_CONFIG_START( daioh ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz) /* 16 MHz, MC68000-16, Verified from PCB */ @@ -8248,7 +8248,7 @@ MACHINE_CONFIG_END Daioh (prototype) ***************************************************************************/ -static MACHINE_CONFIG_START( daiohp, seta_state ) +static MACHINE_CONFIG_START( daiohp ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz) /* 16 MHz, MC68000-16, Verified from PCB */ @@ -8290,7 +8290,7 @@ MACHINE_CONFIG_END lev 2 drives the game */ -static MACHINE_CONFIG_START( drgnunit, seta_state ) +static MACHINE_CONFIG_START( drgnunit ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 16000000/2) /* 8 MHz */ @@ -8326,7 +8326,7 @@ MACHINE_CONFIG_END /* Same as qzkklogy, but with a 16MHz CPU and different layout for the layer's tiles */ -static MACHINE_CONFIG_START( qzkklgy2, seta_state ) +static MACHINE_CONFIG_START( qzkklgy2 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 16000000) /* 16 MHz */ @@ -8376,7 +8376,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(seta_state::setaroul_interrupt) } -static MACHINE_CONFIG_START( setaroul, seta_state ) +static MACHINE_CONFIG_START( setaroul ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 16000000/2) /* 8 MHz */ @@ -8419,7 +8419,7 @@ MACHINE_CONFIG_END Eight Force ***************************************************************************/ -static MACHINE_CONFIG_START( eightfrc, seta_state ) +static MACHINE_CONFIG_START( eightfrc ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 16000000) /* 16 MHz */ @@ -8462,7 +8462,7 @@ MACHINE_CONFIG_END lev 1 == lev 3 (writes to $500000, bit 4 -> 1 then 0) lev 2 drives the game */ -static MACHINE_CONFIG_START( extdwnhl, seta_state ) +static MACHINE_CONFIG_START( extdwnhl ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 16000000) /* 16 MHz */ @@ -8520,7 +8520,7 @@ MACHINE_START_MEMBER(seta_state,wrofaero){ uPD71054_timer_init(); } lev 2: VBlank lev 4: Sound (generated by a timer mapped at $d00000-6 ?) */ -static MACHINE_CONFIG_START( gundhara, seta_state ) +static MACHINE_CONFIG_START( gundhara ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 16000000) /* 16 MHz */ @@ -8586,7 +8586,7 @@ MACHINE_CONFIG_END lev 1 == lev 3 (writes to $500000, bit 4 -> 1 then 0) lev 2 drives the game */ -static MACHINE_CONFIG_START( jjsquawk, seta_state ) +static MACHINE_CONFIG_START( jjsquawk ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 16000000) /* 16 MHz */ @@ -8622,7 +8622,7 @@ static MACHINE_CONFIG_START( jjsquawk, seta_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( jjsquawb, seta_state ) +static MACHINE_CONFIG_START( jjsquawb ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 16000000) /* 16 MHz */ @@ -8662,7 +8662,7 @@ MACHINE_CONFIG_END ***************************************************************************/ /* kamenrid: lev 2 by vblank, lev 4 by timer */ -static MACHINE_CONFIG_START( kamenrid, seta_state ) +static MACHINE_CONFIG_START( kamenrid ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 16000000) /* 16 MHz */ @@ -8705,7 +8705,7 @@ MACHINE_CONFIG_END /* The CPU clock has been verified/measured, PCB only has one OSC and it's 14.318180 MHz */ -static MACHINE_CONFIG_START( orbs, seta_state ) +static MACHINE_CONFIG_START( orbs ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 14318180/2) /* 7.143 MHz */ @@ -8745,7 +8745,7 @@ MACHINE_CONFIG_END Kero Kero Keroppi no Issyoni Asobou ***************************************************************************/ -static MACHINE_CONFIG_START( keroppij, seta_state ) +static MACHINE_CONFIG_START( keroppij ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 14318180/2) /* 7.143 MHz */ @@ -8788,7 +8788,7 @@ MACHINE_CONFIG_END Krazy Bowl ***************************************************************************/ -static MACHINE_CONFIG_START( krzybowl, seta_state ) +static MACHINE_CONFIG_START( krzybowl ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 16000000) /* 16 MHz */ @@ -8826,7 +8826,7 @@ MACHINE_CONFIG_END ***************************************************************************/ /* madshark: lev 2 by vblank, lev 4 by timer */ -static MACHINE_CONFIG_START( madshark, seta_state ) +static MACHINE_CONFIG_START( madshark ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 16000000) /* 16 MHz */ @@ -8872,7 +8872,7 @@ MACHINE_CONFIG_END ***************************************************************************/ /* magspeed: lev 2 by vblank, lev 4 by timer */ -static MACHINE_CONFIG_START( magspeed, seta_state ) +static MACHINE_CONFIG_START( magspeed ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 16000000) /* 16 MHz */ @@ -8917,7 +8917,7 @@ MACHINE_CONFIG_END /* msgundam lev 2 == lev 6 ! */ -static MACHINE_CONFIG_START( msgundam, seta_state ) +static MACHINE_CONFIG_START( msgundam ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 16000000) /* 16 MHz */ @@ -8964,7 +8964,7 @@ MACHINE_CONFIG_END Oishii Puzzle ***************************************************************************/ -static MACHINE_CONFIG_START( oisipuzl, seta_state ) +static MACHINE_CONFIG_START( oisipuzl ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 16000000) /* 16 MHz */ @@ -9003,7 +9003,7 @@ MACHINE_CONFIG_END /* same as oisipuzl but with different interrupts and sound */ -static MACHINE_CONFIG_START( triplfun, seta_state ) +static MACHINE_CONFIG_START( triplfun ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 16000000) /* 16 MHz */ @@ -9031,7 +9031,7 @@ static MACHINE_CONFIG_START( triplfun, seta_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_OKIM6295_ADD("oki", 792000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki", 792000, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) MACHINE_CONFIG_END @@ -9040,7 +9040,7 @@ MACHINE_CONFIG_END Pro Mahjong Kiwame ***************************************************************************/ -static MACHINE_CONFIG_START( kiwame, seta_state ) +static MACHINE_CONFIG_START( kiwame ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 16000000) /* 16 MHz */ @@ -9084,7 +9084,7 @@ MACHINE_CONFIG_END /* pretty much like wrofaero, but ints are 1&2, not 2&4 */ -static MACHINE_CONFIG_START( rezon, seta_state ) +static MACHINE_CONFIG_START( rezon ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 16000000) /* 16 MHz */ @@ -9125,7 +9125,7 @@ MACHINE_CONFIG_END /* thunderl lev 2 = lev 3 - other levels lead to an error */ -static MACHINE_CONFIG_START( thunderl, seta_state ) +static MACHINE_CONFIG_START( thunderl ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 16000000/2) /* 8 MHz */ @@ -9193,7 +9193,7 @@ static MACHINE_CONFIG_DERIVED( thunderlbl, thunderl ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( wiggie, seta_state ) +static MACHINE_CONFIG_START( wiggie ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 16000000/2) /* 8 MHz */ @@ -9224,7 +9224,7 @@ static MACHINE_CONFIG_START( wiggie, seta_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", 1000000, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", 1000000, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -9233,7 +9233,7 @@ static MACHINE_CONFIG_DERIVED( superbar, wiggie ) MCFG_GFXDECODE_MODIFY("gfxdecode", superbar) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( wits, seta_state ) +static MACHINE_CONFIG_START( wits ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 16000000/2) /* 8 MHz */ @@ -9270,7 +9270,7 @@ MACHINE_CONFIG_END Ultraman Club / SD Gundam Neo Battling ***************************************************************************/ -static MACHINE_CONFIG_START( umanclub, seta_state ) +static MACHINE_CONFIG_START( umanclub ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 16000000) /* 16 MHz */ @@ -9307,7 +9307,7 @@ MACHINE_CONFIG_END Ultra Toukond Densetsu ***************************************************************************/ -static MACHINE_CONFIG_START( utoukond, seta_state ) +static MACHINE_CONFIG_START( utoukond ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 16000000) /* 16 MHz */ @@ -9356,7 +9356,7 @@ MACHINE_CONFIG_END War of Aero ***************************************************************************/ -static MACHINE_CONFIG_START( wrofaero, seta_state ) +static MACHINE_CONFIG_START( wrofaero ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 16000000) /* 16 MHz */ @@ -9410,7 +9410,7 @@ MACHINE_CONFIG_END at int 1 is necessary: it plays the background music. */ -static MACHINE_CONFIG_START( zingzip, seta_state ) +static MACHINE_CONFIG_START( zingzip ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 16000000) /* 16 MHz */ @@ -9459,7 +9459,7 @@ static MACHINE_CONFIG_DERIVED( zingzipbl, zingzip ) MCFG_DEVICE_REMOVE("x1snd") - MCFG_OKIM6295_ADD("oki", 1000000, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", 1000000, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -9467,7 +9467,7 @@ MACHINE_CONFIG_END Pairs Love ***************************************************************************/ -static MACHINE_CONFIG_START( pairlove, seta_state ) +static MACHINE_CONFIG_START( pairlove ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 16000000/2) /* 8 MHz */ @@ -9515,7 +9515,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(seta_state::crazyfgt_interrupt) m_maincpu->set_input_line(1, HOLD_LINE); } -static MACHINE_CONFIG_START( crazyfgt, seta_state ) +static MACHINE_CONFIG_START( crazyfgt ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 16000000) /* 16 MHz */ @@ -9549,7 +9549,7 @@ static MACHINE_CONFIG_START( crazyfgt, seta_state ) MCFG_SOUND_ADD("ymsnd", YM3812, 16000000/4) /* 4 MHz */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MCFG_OKIM6295_ADD("oki", 1000000, OKIM6295_PIN7_HIGH) // clock? + MCFG_OKIM6295_ADD("oki", 1000000, PIN7_HIGH) // clock? MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -9577,7 +9577,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(seta_state::inttoote_interrupt) } -static MACHINE_CONFIG_START( inttoote, seta_state ) +static MACHINE_CONFIG_START( inttoote ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 16000000) @@ -11675,8 +11675,8 @@ DRIVER_INIT_MEMBER(seta_state,inttootea) ***************************************************************************/ /* 68000 + 65C02 */ -GAME( 1987, tndrcade, 0, tndrcade, tndrcade, driver_device, 0, ROT270, "Seta (Taito license)", "Thundercade / Twin Formation" , 0) // Title/License: DSW -GAME( 1987, tndrcadej,tndrcade, tndrcade, tndrcadj, driver_device, 0, ROT270, "Seta (Taito license)", "Tokusyu Butai U.A.G. (Japan)" , 0) // License: DSW +GAME( 1987, tndrcade, 0, tndrcade, tndrcade, seta_state, 0, ROT270, "Seta (Taito license)", "Thundercade / Twin Formation" , 0) // Title/License: DSW +GAME( 1987, tndrcadej,tndrcade, tndrcade, tndrcadj, seta_state, 0, ROT270, "Seta (Taito license)", "Tokusyu Butai U.A.G. (Japan)" , 0) // License: DSW GAME( 1988, twineagl, 0, twineagl, twineagl, seta_state, twineagl, ROT270, "Seta (Taito license)", "Twin Eagle - Revenge Joe's Brother" , 0) // Country/License: DSW @@ -11685,102 +11685,102 @@ GAME( 1989, downtown2,downtown, downtown, downtown, seta_state, downtown, ROT270 GAME( 1989, downtownj,downtown, downtown, downtown, seta_state, downtown, ROT270, "Seta", "DownTown / Mokugeki (joystick hack)" , 0) // Country/License: DSW GAME( 1989, downtownp,downtown, downtown, downtown, seta_state, downtown, ROT270, "Seta", "DownTown / Mokugeki (prototype)" , 0) // Country/License: DSW -GAME( 1989, usclssic, 0, usclssic, usclssic, driver_device, 0, ROT270, "Seta", "U.S. Classic" , 0) // Country/License: DSW +GAME( 1989, usclssic, 0, usclssic, usclssic, seta_state, 0, ROT270, "Seta", "U.S. Classic" , 0) // Country/License: DSW -GAME( 1989, calibr50, 0, calibr50, calibr50, driver_device, 0, ROT270, "Athena / Seta", "Caliber 50" , 0) // Country/License: DSW +GAME( 1989, calibr50, 0, calibr50, calibr50, seta_state, 0, ROT270, "Athena / Seta", "Caliber 50" , 0) // Country/License: DSW GAME( 1989, arbalest, 0, metafox, arbalest, seta_state, arbalest, ROT270, "Seta", "Arbalester" , 0) // Country/License: DSW -GAME( 1989, metafox, 0, metafox, metafox, seta_state, metafox, ROT270, "Seta", "Meta Fox" , 0) // Country/License: DSW +GAME( 1989, metafox, 0, metafox, metafox, seta_state, metafox, ROT270, "Seta", "Meta Fox" , 0) // Country/License: DSW /* 68000 */ -GAME( 198?, setaroul, 0, setaroul, setaroul, driver_device, 0, ROT270, "Visco", "Visco Roulette", MACHINE_NOT_WORKING ) // I can't see a title in the GFX roms. Press F2 twice to boot.. +GAME( 198?, setaroul, 0, setaroul, setaroul, seta_state, 0, ROT270, "Visco", "Visco Roulette", MACHINE_NOT_WORKING ) // I can't see a title in the GFX roms. Press F2 twice to boot.. -GAME( 1989, drgnunit, 0, drgnunit, drgnunit, driver_device, 0, ROT0, "Seta", "Dragon Unit / Castle of Dragon", 0 ) +GAME( 1989, drgnunit, 0, drgnunit, drgnunit, seta_state, 0, ROT0, "Seta", "Dragon Unit / Castle of Dragon", 0 ) -GAME( 1989, wits, 0, wits, wits, driver_device, 0, ROT0, "Athena (Visco license)", "Wit's (Japan)" , 0) // Country/License: DSW +GAME( 1989, wits, 0, wits, wits, seta_state, 0, ROT0, "Athena (Visco license)", "Wit's (Japan)" , 0) // Country/License: DSW -GAME( 1990, thunderl, 0, thunderl, thunderl, driver_device,0, ROT270, "Seta", "Thunder & Lightning" , 0) // Country/License: DSW -GAME( 1990, thunderlbl,thunderl,thunderlbl,thunderlbl,driver_device,0, ROT90, "bootleg", "Thunder & Lightning (bootleg with Tetris sound)", MACHINE_IMPERFECT_SOUND | MACHINE_NO_COCKTAIL ) // Country/License: DSW +GAME( 1990, thunderl, 0, thunderl, thunderl, seta_state,0, ROT270, "Seta", "Thunder & Lightning" , 0) // Country/License: DSW +GAME( 1990, thunderlbl,thunderl,thunderlbl,thunderlbl,seta_state,0, ROT90, "bootleg", "Thunder & Lightning (bootleg with Tetris sound)", MACHINE_IMPERFECT_SOUND | MACHINE_NO_COCKTAIL ) // Country/License: DSW -GAME( 1994, wiggie, 0, wiggie, thunderl, seta_state, wiggie, ROT270, "Promat", "Wiggie Waggie", MACHINE_IMPERFECT_GRAPHICS ) // hack of Thunder & Lightning -GAME( 1994, superbar, wiggie, superbar, thunderl, seta_state, wiggie, ROT270, "Promat", "Super Bar", MACHINE_IMPERFECT_GRAPHICS ) // hack of Thunder & Lightning +GAME( 1994, wiggie, 0, wiggie, thunderl, seta_state, wiggie, ROT270, "Promat", "Wiggie Waggie", MACHINE_IMPERFECT_GRAPHICS ) // hack of Thunder & Lightning +GAME( 1994, superbar, wiggie, superbar, thunderl, seta_state, wiggie, ROT270, "Promat", "Super Bar", MACHINE_IMPERFECT_GRAPHICS ) // hack of Thunder & Lightning -GAME( 1990, jockeyc, 0, jockeyc, jockeyc, driver_device, 0, ROT0, "Seta (Visco license)", "Jockey Club", 0 ) -GAME( 1998, inttoote, jockeyc, inttoote, inttoote, seta_state, inttoote, ROT0, "Coinmaster", "International Toote (Germany)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION ) -GAME( 1993, inttootea,jockeyc, inttoote, inttoote, seta_state, inttootea,ROT0, "Coinmaster", "International Toote II (World?)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION ) +GAME( 1990, jockeyc, 0, jockeyc, jockeyc, seta_state, 0, ROT0, "Seta (Visco license)", "Jockey Club", 0 ) +GAME( 1998, inttoote, jockeyc, inttoote, inttoote, seta_state, inttoote, ROT0, "Coinmaster", "International Toote (Germany)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION ) +GAME( 1993, inttootea,jockeyc, inttoote, inttoote, seta_state, inttootea,ROT0, "Coinmaster", "International Toote II (World?)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION ) -GAME( 1991, rezon, 0, rezon, rezon, seta_state, rezon, ROT0, "Allumer", "Rezon", 0 ) -GAME( 1992, rezont, rezon, rezon, rezont, seta_state, rezon, ROT0, "Allumer (Taito license)","Rezon (Taito)", 0 ) +GAME( 1991, rezon, 0, rezon, rezon, seta_state, rezon, ROT0, "Allumer", "Rezon", 0 ) +GAME( 1992, rezont, rezon, rezon, rezont, seta_state, rezon, ROT0, "Allumer (Taito license)","Rezon (Taito)", 0 ) -GAME( 1991, stg, 0, drgnunit, stg, driver_device, 0, ROT270, "Athena / Tecmo", "Strike Gunner S.T.G", 0 ) +GAME( 1991, stg, 0, drgnunit, stg, seta_state, 0, ROT270, "Athena / Tecmo", "Strike Gunner S.T.G", 0 ) -GAME( 1991, pairlove, 0, pairlove, pairlove, driver_device, 0, ROT270, "Athena", "Pairs Love", 0 ) +GAME( 1991, pairlove, 0, pairlove, pairlove, seta_state, 0, ROT270, "Athena", "Pairs Love", 0 ) -GAME( 1992, blandia, 0, blandia, blandia, seta_state, blandia, ROT0, "Allumer", "Blandia", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1992, blandiap, blandia, blandiap, blandia, driver_device, 0, ROT0, "Allumer", "Blandia (prototype)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1992, blandia, 0, blandia, blandia, seta_state, blandia, ROT0, "Allumer", "Blandia", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1992, blandiap, blandia, blandiap, blandia, seta_state, 0, ROT0, "Allumer", "Blandia (prototype)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1992, blockcar, 0, blockcar, blockcar, driver_device, 0, ROT90, "Visco", "Block Carnival / Thunder & Lightning 2" , 0) // Title: DSW -GAME( 1992, blockcarb,blockcar, blockcarb,blockcar, driver_device, 0, ROT90, "bootleg", "Block Carnival / Thunder & Lightning 2 (bootleg)", MACHINE_IMPERFECT_SOUND) +GAME( 1992, blockcar, 0, blockcar, blockcar, seta_state, 0, ROT90, "Visco", "Block Carnival / Thunder & Lightning 2" , 0) // Title: DSW +GAME( 1992, blockcarb,blockcar, blockcarb,blockcar, seta_state, 0, ROT90, "bootleg", "Block Carnival / Thunder & Lightning 2 (bootleg)", MACHINE_IMPERFECT_SOUND) -GAME( 1992, qzkklogy, 0, drgnunit, qzkklogy, driver_device, 0, ROT0, "Tecmo", "Quiz Kokology", 0 ) +GAME( 1992, qzkklogy, 0, drgnunit, qzkklogy, seta_state, 0, ROT0, "Tecmo", "Quiz Kokology", 0 ) -GAME( 1992, neobattl, 0, umanclub, neobattl, driver_device, 0, ROT270, "Banpresto / Sotsu Agency. Sunrise", "SD Gundam Neo Battling (Japan)", 0 ) +GAME( 1992, neobattl, 0, umanclub, neobattl, seta_state, 0, ROT270, "Banpresto / Sotsu Agency. Sunrise", "SD Gundam Neo Battling (Japan)", 0 ) -GAME( 1992, umanclub, 0, umanclub, umanclub, driver_device, 0, ROT0, "Banpresto / Tsuburaya Productions", "Ultraman Club - Tatakae! Ultraman Kyoudai!!", 0 ) +GAME( 1992, umanclub, 0, umanclub, umanclub, seta_state, 0, ROT0, "Banpresto / Tsuburaya Productions", "Ultraman Club - Tatakae! Ultraman Kyoudai!!", 0 ) -GAME( 1992, zingzip, 0, zingzip, zingzip, driver_device, 0, ROT270, "Allumer / Tecmo", "Zing Zing Zip", 0 ) -GAME( 1992, zingzipbl,zingzip, zingzipbl,zingzip, driver_device, 0, ROT270, "bootleg", "Zing Zing Zip (bootleg)", MACHINE_NOT_WORKING ) +GAME( 1992, zingzip, 0, zingzip, zingzip, seta_state, 0, ROT270, "Allumer / Tecmo", "Zing Zing Zip", 0 ) +GAME( 1992, zingzipbl,zingzip, zingzipbl,zingzip, seta_state, 0, ROT270, "bootleg", "Zing Zing Zip (bootleg)", MACHINE_NOT_WORKING ) -GAME( 1993, atehate, 0, atehate, atehate, driver_device, 0, ROT0, "Athena", "Athena no Hatena ?", 0 ) +GAME( 1993, atehate, 0, atehate, atehate, seta_state, 0, ROT0, "Athena", "Athena no Hatena ?", 0 ) -GAME( 1993, daioh, 0, daioh, daioh, driver_device, 0, ROT270, "Athena", "Daioh", 0 ) -GAME( 1993, daioha, daioh, daioh, daioh, driver_device, 0, ROT270, "Athena", "Daioh (earlier)", 0 ) -GAME( 1993, daiohp, daioh, daiohp, daiohp, driver_device, 0, ROT270, "Athena", "Daioh (prototype)", 0 ) -GAME( 1993, daiohc, daioh, wrofaero, daioh, driver_device, 0, ROT270, "Athena", "Daioh (93111A PCB conversion)", 0 ) +GAME( 1993, daioh, 0, daioh, daioh, seta_state, 0, ROT270, "Athena", "Daioh", 0 ) +GAME( 1993, daioha, daioh, daioh, daioh, seta_state, 0, ROT270, "Athena", "Daioh (earlier)", 0 ) +GAME( 1993, daiohp, daioh, daiohp, daiohp, seta_state, 0, ROT270, "Athena", "Daioh (prototype)", 0 ) +GAME( 1993, daiohc, daioh, wrofaero, daioh, seta_state, 0, ROT270, "Athena", "Daioh (93111A PCB conversion)", 0 ) -GAME( 1993, jjsquawk, 0, jjsquawk, jjsquawk, driver_device, 0, ROT0, "Athena / Able", "J. J. Squawkers", MACHINE_IMPERFECT_SOUND ) -GAME( 1993, jjsquawko,jjsquawk, jjsquawk, jjsquawk, driver_device, 0, ROT0, "Athena / Able", "J. J. Squawkers (older)", MACHINE_IMPERFECT_SOUND ) -GAME( 1993, jjsquawkb,jjsquawk, jjsquawb, jjsquawk, driver_device, 0, ROT0, "bootleg", "J. J. Squawkers (bootleg)", MACHINE_IMPERFECT_SOUND ) -GAME( 1993, jjsquawkb2,jjsquawk,jjsquawk, jjsquawk, driver_device, 0, ROT0, "bootleg", "J. J. Squawkers (bootleg, Blandia Conversion)", MACHINE_IMPERFECT_SOUND ) -GAME( 2003, simpsonjr, jjsquawk,jjsquawb, jjsquawk, driver_device, 0, ROT0, "bootleg", "Simpson Junior (bootleg of J. J. Squawkers)", MACHINE_IMPERFECT_SOUND ) +GAME( 1993, jjsquawk, 0, jjsquawk, jjsquawk, seta_state, 0, ROT0, "Athena / Able", "J. J. Squawkers", MACHINE_IMPERFECT_SOUND ) +GAME( 1993, jjsquawko,jjsquawk, jjsquawk, jjsquawk, seta_state, 0, ROT0, "Athena / Able", "J. J. Squawkers (older)", MACHINE_IMPERFECT_SOUND ) +GAME( 1993, jjsquawkb,jjsquawk, jjsquawb, jjsquawk, seta_state, 0, ROT0, "bootleg", "J. J. Squawkers (bootleg)", MACHINE_IMPERFECT_SOUND ) +GAME( 1993, jjsquawkb2,jjsquawk,jjsquawk, jjsquawk, seta_state, 0, ROT0, "bootleg", "J. J. Squawkers (bootleg, Blandia Conversion)", MACHINE_IMPERFECT_SOUND ) +GAME( 2003, simpsonjr, jjsquawk,jjsquawb, jjsquawk, seta_state, 0, ROT0, "bootleg", "Simpson Junior (bootleg of J. J. Squawkers)", MACHINE_IMPERFECT_SOUND ) -GAME( 1993, kamenrid, 0, kamenrid, kamenrid, driver_device, 0, ROT0, "Banpresto / Toei", "Masked Riders Club Battle Race", 0 ) +GAME( 1993, kamenrid, 0, kamenrid, kamenrid, seta_state, 0, ROT0, "Banpresto / Toei", "Masked Riders Club Battle Race", 0 ) -GAME( 1993, madshark, 0, madshark, madshark, driver_device, 0, ROT270, "Allumer", "Mad Shark", 0 ) +GAME( 1993, madshark, 0, madshark, madshark, seta_state, 0, ROT270, "Allumer", "Mad Shark", 0 ) -GAME( 1993, msgundam, 0, msgundam, msgundam, driver_device, 0, ROT0, "Banpresto", "Mobile Suit Gundam", 0 ) -GAME( 1993, msgundam1,msgundam, msgundam, msgunda1, driver_device, 0, ROT0, "Banpresto", "Mobile Suit Gundam (Japan)", 0 ) +GAME( 1993, msgundam, 0, msgundam, msgundam, seta_state, 0, ROT0, "Banpresto", "Mobile Suit Gundam", 0 ) +GAME( 1993, msgundam1,msgundam, msgundam, msgunda1, seta_state, 0, ROT0, "Banpresto", "Mobile Suit Gundam (Japan)", 0 ) -GAME( 1993, oisipuzl, 0, oisipuzl, oisipuzl, driver_device, 0, ROT0, "Sunsoft / Atlus", "Oishii Puzzle Ha Irimasenka", 0 ) -GAME( 1993, triplfun, oisipuzl, triplfun, oisipuzl, driver_device, 0, ROT0, "bootleg", "Triple Fun", 0 ) +GAME( 1993, oisipuzl, 0, oisipuzl, oisipuzl, seta_state, 0, ROT0, "Sunsoft / Atlus", "Oishii Puzzle Ha Irimasenka", 0 ) +GAME( 1993, triplfun, oisipuzl, triplfun, oisipuzl, seta_state, 0, ROT0, "bootleg", "Triple Fun", 0 ) -GAME( 1993, qzkklgy2, 0, qzkklgy2, qzkklgy2, driver_device, 0, ROT0, "Tecmo", "Quiz Kokology 2", 0 ) +GAME( 1993, qzkklgy2, 0, qzkklgy2, qzkklgy2, seta_state, 0, ROT0, "Tecmo", "Quiz Kokology 2", 0 ) -GAME( 1993, utoukond, 0, utoukond, utoukond, driver_device, 0, ROT0, "Banpresto / Tsuburaya Productions", "Ultra Toukon Densetsu (Japan)", 0 ) +GAME( 1993, utoukond, 0, utoukond, utoukond, seta_state, 0, ROT0, "Banpresto / Tsuburaya Productions", "Ultra Toukon Densetsu (Japan)", 0 ) -GAME( 1993, wrofaero, 0, wrofaero, wrofaero, driver_device, 0, ROT270, "Yang Cheng", "War of Aero - Project MEIOU", 0 ) +GAME( 1993, wrofaero, 0, wrofaero, wrofaero, seta_state, 0, ROT270, "Yang Cheng", "War of Aero - Project MEIOU", 0 ) -GAME( 1994, eightfrc, 0, eightfrc, eightfrc, seta_state, eightfrc, ROT90, "Tecmo", "Eight Forces", 0 ) +GAME( 1994, eightfrc, 0, eightfrc, eightfrc, seta_state, eightfrc, ROT90, "Tecmo", "Eight Forces", 0 ) -GAME( 1994, kiwame, 0, kiwame, kiwame, seta_state, kiwame, ROT0, "Athena", "Pro Mahjong Kiwame", 0 ) +GAME( 1994, kiwame, 0, kiwame, kiwame, seta_state, kiwame, ROT0, "Athena", "Pro Mahjong Kiwame", 0 ) -GAME( 1994, krzybowl, 0, krzybowl, krzybowl, driver_device, 0, ROT270, "American Sammy", "Krazy Bowl", 0 ) +GAME( 1994, krzybowl, 0, krzybowl, krzybowl, seta_state, 0, ROT270, "American Sammy", "Krazy Bowl", 0 ) -GAME( 1994, magspeed, 0, magspeed, magspeed, driver_device, 0, ROT0, "Allumer", "Magical Speed", 0 ) +GAME( 1994, magspeed, 0, magspeed, magspeed, seta_state, 0, ROT0, "Allumer", "Magical Speed", 0 ) -GAME( 1994, orbs, 0, orbs, orbs, driver_device, 0, ROT0, "American Sammy", "Orbs (10/7/94 prototype?)", 0 ) +GAME( 1994, orbs, 0, orbs, orbs, seta_state, 0, ROT0, "American Sammy", "Orbs (10/7/94 prototype?)", 0 ) -GAME( 1995, keroppi, 0, keroppi, keroppi, driver_device, 0, ROT0, "American Sammy", "Kero Kero Keroppi's Let's Play Together (USA, Version 2.0)", 0 ) // ROM labels are all v1.0 tho. -GAME( 1993, keroppij, keroppi, keroppij, keroppij,driver_device, 0, ROT0, "Sammy Industries", "Kero Kero Keroppi no Issyoni Asobou (Japan)", 0 ) +GAME( 1995, keroppi, 0, keroppi, keroppi, seta_state, 0, ROT0, "American Sammy", "Kero Kero Keroppi's Let's Play Together (USA, Version 2.0)", 0 ) // ROM labels are all v1.0 tho. +GAME( 1993, keroppij, keroppi, keroppij, keroppij, seta_state, 0, ROT0, "Sammy Industries", "Kero Kero Keroppi no Issyoni Asobou (Japan)", 0 ) -GAME( 1995, extdwnhl, 0, extdwnhl, extdwnhl, driver_device, 0, ROT0, "Sammy Industries Japan", "Extreme Downhill (v1.5)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1995, extdwnhl, 0, extdwnhl, extdwnhl, seta_state, 0, ROT0, "Sammy Industries Japan", "Extreme Downhill (v1.5)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1995, gundhara, 0, gundhara, gundhara, driver_device, 0, ROT270, "Banpresto", "Gundhara", 0 ) -GAME( 1995, gundharac, gundhara,gundhara, gundhara, driver_device, 0, ROT270, "Banpresto", "Gundhara (Chinese, bootleg?)", 0 ) +GAME( 1995, gundhara, 0, gundhara, gundhara, seta_state, 0, ROT270, "Banpresto", "Gundhara", 0 ) +GAME( 1995, gundharac, gundhara,gundhara, gundhara, seta_state, 0, ROT270, "Banpresto", "Gundhara (Chinese, bootleg?)", 0 ) -GAME( 1995, sokonuke, 0, extdwnhl, sokonuke, driver_device, 0, ROT0, "Sammy Industries", "Sokonuke Taisen Game (Japan)", MACHINE_IMPERFECT_SOUND ) +GAME( 1995, sokonuke, 0, extdwnhl, sokonuke, seta_state, 0, ROT0, "Sammy Industries", "Sokonuke Taisen Game (Japan)", MACHINE_IMPERFECT_SOUND ) GAME( 1995, zombraid, 0, zombraid, zombraid, seta_state, zombraid, ROT0, "American Sammy", "Zombie Raid (9/28/95, US)", MACHINE_NO_COCKTAIL ) GAME( 1995, zombraidp,zombraid, zombraid, zombraid, seta_state, zombraid, ROT0, "American Sammy", "Zombie Raid (9/28/95, US, prototype PCB)", MACHINE_NO_COCKTAIL ) // actual code is same as the released version diff --git a/src/mame/drivers/seta2.cpp b/src/mame/drivers/seta2.cpp index b94d0535149..9763acc6e37 100644 --- a/src/mame/drivers/seta2.cpp +++ b/src/mame/drivers/seta2.cpp @@ -665,7 +665,7 @@ private: uint8_t m_serial[4]; }; -const device_type FUNCUBE_TOUCHSCREEN = device_creator; +DEFINE_DEVICE_TYPE(FUNCUBE_TOUCHSCREEN, funcube_touchscreen_device, "funcube_touchscreen", "Funcube Touchscreen") static INPUT_PORTS_START( funcube_touchscreen ) PORT_START("touch_btn") @@ -679,7 +679,7 @@ static INPUT_PORTS_START( funcube_touchscreen ) INPUT_PORTS_END funcube_touchscreen_device::funcube_touchscreen_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, FUNCUBE_TOUCHSCREEN, "Funcube Touchscreen", tag, owner, clock, "funcube_touchscrene", __FILE__), + device_t(mconfig, FUNCUBE_TOUCHSCREEN, tag, owner, clock), device_serial_interface(mconfig, *this), m_tx_cb(*this), m_x(*this, "touch_x"), @@ -800,7 +800,7 @@ WRITE32_MEMBER(seta2_state::oki_write) if (ACCESSING_BITS_0_7) { const uint8_t tmp = (data & 0x000000ff); - m_oki->write_TMP_register(tmp); + m_oki->write_tmp_register(tmp); } else if (ACCESSING_BITS_16_23) { @@ -2325,7 +2325,7 @@ INTERRUPT_GEN_MEMBER(seta2_state::samshoot_interrupt) m_tmp68301->external_interrupt_2(); // to do: hook up x1-10 interrupts } -static MACHINE_CONFIG_START( seta2, seta2_state ) +static MACHINE_CONFIG_START( seta2 ) MCFG_CPU_ADD("maincpu", M68301, XTAL_50MHz/3) // !! TMP68301 !! MCFG_CPU_PROGRAM_MAP(mj4simai_map) MCFG_CPU_VBLANK_INT_DRIVER("screen", seta2_state, seta2_interrupt) @@ -2517,7 +2517,7 @@ MACHINE_RESET_MEMBER(seta2_state, funcube) m_funcube_hopper_motor = 0; } -static MACHINE_CONFIG_START( funcube, seta2_state ) +static MACHINE_CONFIG_START( funcube ) MCFG_CPU_ADD("maincpu", MCF5206E, XTAL_25_447MHz) MCFG_CPU_PROGRAM_MAP(funcube_map) @@ -2582,7 +2582,7 @@ static MACHINE_CONFIG_DERIVED( funcube3, funcube2 ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( namcostr, seta2_state ) +static MACHINE_CONFIG_START( namcostr ) MCFG_CPU_ADD("maincpu", M68301, XTAL_50MHz/3) // !! TMP68301 !! MCFG_CPU_PROGRAM_MAP(namcostr_map) MCFG_CPU_VBLANK_INT_DRIVER("screen", seta2_state, seta2_interrupt) @@ -3882,31 +3882,31 @@ ROM_START( trophyh ) /* V1.0 is currently the only known version */ ROM_END -GAME( 1994, gundamex, 0, gundamex, gundamex, driver_device, 0, ROT0, "Banpresto", "Mobile Suit Gundam EX Revue", 0 ) -GAME( 1995, grdians, 0, grdians, grdians, driver_device, 0, ROT0, "Winkysoft (Banpresto license)", "Guardians / Denjin Makai II", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1996, mj4simai, 0, mj4simai, mj4simai, driver_device, 0, ROT0, "Maboroshi Ware", "Wakakusamonogatari Mahjong Yonshimai (Japan)", MACHINE_NO_COCKTAIL ) -GAME( 1996, myangel, 0, myangel, myangel, driver_device, 0, ROT0, "MOSS / Namco", "Kosodate Quiz My Angel (Japan)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1997, myangel2, 0, myangel2, myangel2, driver_device, 0, ROT0, "MOSS / Namco", "Kosodate Quiz My Angel 2 (Japan)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1997, reelquak, 0, reelquak, reelquak, driver_device, 0, ROT0, "", "Reel'N Quake! (Version 1.05)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 199?, endrichs, 0, reelquak, endrichs, driver_device, 0, ROT0, "E.N.Tiger", "Endless Riches (Ver 1.20)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1997, staraudi, 0, staraudi, staraudi, seta2_state, staraudi, ROT0, "Namco", "Star Audition", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1999, pzlbowl, 0, pzlbowl, pzlbowl, driver_device, 0, ROT0, "MOSS / Nihon System", "Puzzle De Bowling (Japan)", MACHINE_NO_COCKTAIL ) -GAME( 2000, penbros, 0, penbros, penbros, driver_device, 0, ROT0, "Subsino", "Penguin Brothers (Japan)", MACHINE_NO_COCKTAIL ) -GAME( 2000, penbrosk, penbros, penbrosk, penbros, driver_device, 0, ROT0, "bootleg", "Penguin Brothers (Japan, bootleg)", MACHINE_NO_COCKTAIL | MACHINE_NOT_WORKING ) -GAME( 2000, namcostr, 0, namcostr, funcube, driver_device, 0, ROT0, "Namco", "Namco Stars", MACHINE_NO_COCKTAIL | MACHINE_NOT_WORKING ) -GAME( 2000, deerhunt, 0, samshoot, deerhunt, driver_device, 0, ROT0, "Sammy USA Corporation", "Deer Hunting USA V4.3", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 2000, deerhunta,deerhunt, samshoot, deerhunt, driver_device, 0, ROT0, "Sammy USA Corporation", "Deer Hunting USA V4.2", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 2000, deerhuntb,deerhunt, samshoot, deerhunt, driver_device, 0, ROT0, "Sammy USA Corporation", "Deer Hunting USA V4.0", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 2000, deerhuntc,deerhunt, samshoot, deerhunt, driver_device, 0, ROT0, "Sammy USA Corporation", "Deer Hunting USA V3", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 2000, deerhuntd,deerhunt, samshoot, deerhunt, driver_device, 0, ROT0, "Sammy USA Corporation", "Deer Hunting USA V2", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 2000, deerhunte,deerhunt, samshoot, deerhunt, driver_device, 0, ROT0, "Sammy USA Corporation", "Deer Hunting USA V1", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 2001, turkhunt, 0, samshoot, turkhunt, driver_device, 0, ROT0, "Sammy USA Corporation", "Turkey Hunting USA V1.0", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 2001, wschamp, 0, samshoot, wschamp, driver_device, 0, ROT0, "Sammy USA Corporation", "Wing Shooting Championship V2.00", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 2001, wschampa, wschamp, samshoot, wschamp, driver_device, 0, ROT0, "Sammy USA Corporation", "Wing Shooting Championship V1.01", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 2001, wschampb, wschamp, samshoot, wschamp, driver_device, 0, ROT0, "Sammy USA Corporation", "Wing Shooting Championship V1.00", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 2002, trophyh, 0, samshoot, trophyh, driver_device, 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, "", "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, seta2_state, staraudi, 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/sf.cpp b/src/mame/drivers/sf.cpp index a97deabca80..03386115e6f 100644 --- a/src/mame/drivers/sf.cpp +++ b/src/mame/drivers/sf.cpp @@ -534,7 +534,7 @@ void sf_state::machine_reset() m_fgscroll = 0; } -static MACHINE_CONFIG_START( sfan, sf_state ) +static MACHINE_CONFIG_START( sfan ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_8MHz) @@ -574,12 +574,12 @@ static MACHINE_CONFIG_START( sfan, sf_state ) MCFG_SOUND_ROUTE(1, "rspeaker", 0.60) MCFG_SOUND_ADD("msm1", MSM5205, 384000) - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_SEX_4B) /* 8KHz playback ? */ + MCFG_MSM5205_PRESCALER_SELECTOR(SEX_4B) /* 8KHz playback ? */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) MCFG_SOUND_ADD("msm2", MSM5205, 384000) - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_SEX_4B) /* 8KHz playback ? */ + MCFG_MSM5205_PRESCALER_SELECTOR(SEX_4B) /* 8KHz playback ? */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) MACHINE_CONFIG_END @@ -1023,9 +1023,9 @@ ROM_END -GAME( 1987, sf, 0, sfus, sfus, driver_device, 0, ROT0, "Capcom", "Street Fighter (US, set 1)", MACHINE_SUPPORTS_SAVE ) // Shows Capcom copyright -GAME( 1987, sfua, sf, sfjp, sfjp, driver_device, 0, ROT0, "Capcom", "Street Fighter (US, set 2) (protected)", MACHINE_SUPPORTS_SAVE ) // Shows Capcom USA copyright -GAME( 1987, sfj, sf, sfjp, sfjp, driver_device, 0, ROT0, "Capcom", "Street Fighter (Japan) (protected)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, sfjan,sf, sfan, sfan, driver_device, 0, ROT0, "Capcom", "Street Fighter (Japan, pneumatic buttons)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, sfan, sf, sfan, sfan, driver_device, 0, ROT0, "Capcom", "Street Fighter (World, pneumatic buttons)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, sfp, sf, sfp, sfan, driver_device, 0, ROT0, "Capcom", "Street Fighter (prototype)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, sf, 0, sfus, sfus, sf_state, 0, ROT0, "Capcom", "Street Fighter (US, set 1)", MACHINE_SUPPORTS_SAVE ) // Shows Capcom copyright +GAME( 1987, sfua, sf, sfjp, sfjp, sf_state, 0, ROT0, "Capcom", "Street Fighter (US, set 2) (protected)", MACHINE_SUPPORTS_SAVE ) // Shows Capcom USA copyright +GAME( 1987, sfj, sf, sfjp, sfjp, sf_state, 0, ROT0, "Capcom", "Street Fighter (Japan) (protected)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, sfjan,sf, sfan, sfan, sf_state, 0, ROT0, "Capcom", "Street Fighter (Japan, pneumatic buttons)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, sfan, sf, sfan, sfan, sf_state, 0, ROT0, "Capcom", "Street Fighter (World, pneumatic buttons)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, sfp, sf, sfp, sfan, sf_state, 0, ROT0, "Capcom", "Street Fighter (prototype)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/sfbonus.cpp b/src/mame/drivers/sfbonus.cpp index bd9ee52f5dc..62cb992d089 100644 --- a/src/mame/drivers/sfbonus.cpp +++ b/src/mame/drivers/sfbonus.cpp @@ -1360,7 +1360,7 @@ static ADDRESS_MAP_START( ramdac_map, AS_0, 8, sfbonus_state ) ADDRESS_MAP_END -static MACHINE_CONFIG_START( sfbonus, sfbonus_state ) +static MACHINE_CONFIG_START( sfbonus ) MCFG_CPU_ADD("maincpu", Z80, 6000000) // custom packaged z80 CPU ?? Mhz MCFG_CPU_PROGRAM_MAP(sfbonus_map) MCFG_CPU_IO_MAP(sfbonus_io) @@ -1387,7 +1387,7 @@ static MACHINE_CONFIG_START( sfbonus, sfbonus_state ) /* Parrot 3 seems fine at 1 Mhz, but Double Challenge isn't? */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", 1000000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki", 1000000, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) MACHINE_CONFIG_END diff --git a/src/mame/drivers/sfcbox.cpp b/src/mame/drivers/sfcbox.cpp index 16e4b6152df..1317fa7a7bc 100644 --- a/src/mame/drivers/sfcbox.cpp +++ b/src/mame/drivers/sfcbox.cpp @@ -445,7 +445,7 @@ void sfcbox_state::machine_reset() m_soundcpu->set_input_line(INPUT_LINE_RESET, ASSERT_LINE); } -static MACHINE_CONFIG_START( sfcbox, sfcbox_state ) +static MACHINE_CONFIG_START( sfcbox ) /* base snes hardware */ MCFG_CPU_ADD("maincpu", _5A22, 3580000*6) /* 2.68Mhz, also 3.58Mhz */ @@ -574,8 +574,8 @@ ROM_START( pss64 ) ROM_END -GAME( 1994, sfcbox, 0, sfcbox, snes, snes_state, snes, ROT0, "Nintendo", "Super Famicom Box BIOS", MACHINE_IS_BIOS_ROOT | MACHINE_NOT_WORKING ) -GAME( 1994, pss61, sfcbox, sfcbox, snes, snes_state, snes, ROT0, "Nintendo", "Super Mario Kart / Super Mario Collection / Star Fox (Super Famicom Box)", MACHINE_NOT_WORKING ) -GAME( 1994, pss62, sfcbox, sfcbox, snes, snes_state, snes, ROT0, "T&E Soft / I'Max", "New Super 3D Golf Simulation - Waialae No Kiseki / Super Mahjong 2 (Super Famicom Box)", MACHINE_NOT_WORKING ) -GAME( 1994, pss63, sfcbox, sfcbox, snes, snes_state, snes, ROT0, "Nintendo / BPS", "Super Donkey Kong / Super Tetris 2 + Bombliss (Super Famicom Box)", MACHINE_NOT_WORKING ) -GAME( 199?, pss64, sfcbox, sfcbox, snes, snes_state, snes, ROT0, "Nintendo / Hudson Soft", "Super Donkey Kong / Super Bomberman 2 (Super Famicom Box)", MACHINE_NOT_WORKING ) +GAME( 1994, sfcbox, 0, sfcbox, snes, sfcbox_state, snes, ROT0, "Nintendo", "Super Famicom Box BIOS", MACHINE_IS_BIOS_ROOT | MACHINE_NOT_WORKING ) +GAME( 1994, pss61, sfcbox, sfcbox, snes, sfcbox_state, snes, ROT0, "Nintendo", "Super Mario Kart / Super Mario Collection / Star Fox (Super Famicom Box)", MACHINE_NOT_WORKING ) +GAME( 1994, pss62, sfcbox, sfcbox, snes, sfcbox_state, snes, ROT0, "T&E Soft / I'Max", "New Super 3D Golf Simulation - Waialae No Kiseki / Super Mahjong 2 (Super Famicom Box)", MACHINE_NOT_WORKING ) +GAME( 1994, pss63, sfcbox, sfcbox, snes, sfcbox_state, snes, ROT0, "Nintendo / BPS", "Super Donkey Kong / Super Tetris 2 + Bombliss (Super Famicom Box)", MACHINE_NOT_WORKING ) +GAME( 199?, pss64, sfcbox, sfcbox, snes, sfcbox_state, snes, ROT0, "Nintendo / Hudson Soft", "Super Donkey Kong / Super Bomberman 2 (Super Famicom Box)", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/sfkick.cpp b/src/mame/drivers/sfkick.cpp index 315aca95721..26e12a70051 100644 --- a/src/mame/drivers/sfkick.cpp +++ b/src/mame/drivers/sfkick.cpp @@ -579,7 +579,7 @@ WRITE_LINE_MEMBER(sfkick_state::irqhandler) m_soundcpu->set_input_line_and_vector(0, state ? ASSERT_LINE : CLEAR_LINE, 0xff); } -static MACHINE_CONFIG_START( sfkick, sfkick_state ) +static MACHINE_CONFIG_START( sfkick ) MCFG_CPU_ADD("maincpu",Z80,MASTER_CLOCK/6) MCFG_CPU_PROGRAM_MAP(sfkick_map) diff --git a/src/mame/drivers/sg1000.cpp b/src/mame/drivers/sg1000.cpp index d49ba948c5c..a4618334147 100644 --- a/src/mame/drivers/sg1000.cpp +++ b/src/mame/drivers/sg1000.cpp @@ -514,10 +514,10 @@ void sf7000_state::machine_reset() ***************************************************************************/ /*------------------------------------------------- - MACHINE_CONFIG_START( sg1000, sg1000_state ) + MACHINE_CONFIG_START( sg1000 ) -------------------------------------------------*/ -static MACHINE_CONFIG_START( sg1000, sg1000_state ) +static MACHINE_CONFIG_START( sg1000 ) /* basic machine hardware */ MCFG_CPU_ADD(Z80_TAG, Z80, XTAL_10_738635MHz/3) MCFG_CPU_PROGRAM_MAP(sg1000_map) @@ -567,10 +567,10 @@ static MACHINE_CONFIG_DERIVED( omv, sg1000 ) MACHINE_CONFIG_END /*------------------------------------------------- - MACHINE_CONFIG_START( sc3000, sc3000_state ) + MACHINE_CONFIG_START( sc3000 ) -------------------------------------------------*/ -static MACHINE_CONFIG_START( sc3000, sc3000_state ) +static MACHINE_CONFIG_START( sc3000 ) /* basic machine hardware */ MCFG_CPU_ADD(Z80_TAG, Z80, XTAL_10_738635MHz/3) // LH0080A MCFG_CPU_PROGRAM_MAP(sc3000_map) @@ -605,10 +605,10 @@ static MACHINE_CONFIG_START( sc3000, sc3000_state ) MACHINE_CONFIG_END /*------------------------------------------------- - MACHINE_CONFIG_START( sf7000, sf7000_state ) + MACHINE_CONFIG_START( sf7000 ) -------------------------------------------------*/ -static MACHINE_CONFIG_START( sf7000, sf7000_state ) +static MACHINE_CONFIG_START( sf7000 ) /* basic machine hardware */ MCFG_CPU_ADD(Z80_TAG, Z80, XTAL_10_738635MHz/3) MCFG_CPU_PROGRAM_MAP(sf7000_map) @@ -693,11 +693,11 @@ ROM_END SYSTEM DRIVERS ***************************************************************************/ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -CONS( 1983, sg1000, 0, 0, sg1000, sg1000, driver_device, 0, "Sega", "SG-1000", MACHINE_SUPPORTS_SAVE ) -CONS( 1984, sg1000m2, sg1000, 0, sc3000, sc3000, driver_device, 0, "Sega", "SG-1000 II", MACHINE_SUPPORTS_SAVE ) -COMP( 1983, sc3000, 0, sg1000, sc3000, sc3000, driver_device, 0, "Sega", "SC-3000", MACHINE_SUPPORTS_SAVE ) -COMP( 1983, sc3000h, sc3000, 0, sc3000, sc3000, driver_device, 0, "Sega", "SC-3000H", MACHINE_SUPPORTS_SAVE ) -COMP( 1983, sf7000, sc3000, 0, sf7000, sf7000, driver_device, 0, "Sega", "SC-3000/Super Control Station SF-7000", MACHINE_SUPPORTS_SAVE ) -CONS( 1984, omv1000, sg1000, 0, omv, omv1000, driver_device, 0, "Tsukuda Original", "Othello Multivision FG-1000", MACHINE_SUPPORTS_SAVE ) -CONS( 1984, omv2000, sg1000, 0, omv, omv2000, driver_device, 0, "Tsukuda Original", "Othello Multivision FG-2000", MACHINE_SUPPORTS_SAVE ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +CONS( 1983, sg1000, 0, 0, sg1000, sg1000, sg1000_state, 0, "Sega", "SG-1000", MACHINE_SUPPORTS_SAVE ) +CONS( 1984, sg1000m2, sg1000, 0, sc3000, sc3000, sc3000_state, 0, "Sega", "SG-1000 II", MACHINE_SUPPORTS_SAVE ) +COMP( 1983, sc3000, 0, sg1000, sc3000, sc3000, sc3000_state, 0, "Sega", "SC-3000", MACHINE_SUPPORTS_SAVE ) +COMP( 1983, sc3000h, sc3000, 0, sc3000, sc3000, sc3000_state, 0, "Sega", "SC-3000H", MACHINE_SUPPORTS_SAVE ) +COMP( 1983, sf7000, sc3000, 0, sf7000, sf7000, sf7000_state, 0, "Sega", "SC-3000/Super Control Station SF-7000", MACHINE_SUPPORTS_SAVE ) +CONS( 1984, omv1000, sg1000, 0, omv, omv1000, sg1000_state, 0, "Tsukuda Original", "Othello Multivision FG-1000", MACHINE_SUPPORTS_SAVE ) +CONS( 1984, omv2000, sg1000, 0, omv, omv2000, sg1000_state, 0, "Tsukuda Original", "Othello Multivision FG-2000", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/sg1000a.cpp b/src/mame/drivers/sg1000a.cpp index efa29ed094d..83ef7aa6767 100644 --- a/src/mame/drivers/sg1000a.cpp +++ b/src/mame/drivers/sg1000a.cpp @@ -454,7 +454,7 @@ WRITE8_MEMBER(sg1000a_state::sg1000a_coin_counter_w) * *************************************/ -static MACHINE_CONFIG_START( sg1000a, sg1000a_state ) +static MACHINE_CONFIG_START( sg1000a ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_3_579545MHz) MCFG_CPU_PROGRAM_MAP(program_map) @@ -548,7 +548,7 @@ DRIVER_INIT_MEMBER(sg1000a_state,sg1000a) * *************************************/ -GAME( 1984, chboxing, 0, sg1000a, chboxing, sg1000a_state, sg1000a, ROT0, "Sega", "Champion Boxing", 0 ) -GAME( 1985, chwrestl, 0, sg1000ax, chwrestl, sg1000a_state, sg1000a, ROT0, "Sega", "Champion Pro Wrestling", 0 ) -GAME( 1985, dokidoki, 0, sg1000a, dokidoki, sg1000a_state, sg1000a, ROT0, "Sega", "Doki Doki Penguin Land", 0 ) +GAME( 1984, chboxing, 0, sg1000a, chboxing, sg1000a_state, sg1000a, ROT0, "Sega", "Champion Boxing", 0 ) +GAME( 1985, chwrestl, 0, sg1000ax, chwrestl, sg1000a_state, sg1000a, ROT0, "Sega", "Champion Pro Wrestling", 0 ) +GAME( 1985, dokidoki, 0, sg1000a, dokidoki, sg1000a_state, sg1000a, ROT0, "Sega", "Doki Doki Penguin Land", 0 ) GAME( 1985, sderby2, 0, sderby2, sderby2, sg1000a_state, sg1000a, ROT0, "Sega", "Super Derby II (Satellite board)", MACHINE_NOT_WORKING ) // inputs aren't hooked up, probably needs to be connected to the main board anyway diff --git a/src/mame/drivers/sh4robot.cpp b/src/mame/drivers/sh4robot.cpp index 5ebe20f7530..8f524ef10c7 100644 --- a/src/mame/drivers/sh4robot.cpp +++ b/src/mame/drivers/sh4robot.cpp @@ -57,7 +57,7 @@ ADDRESS_MAP_END static INPUT_PORTS_START( sh4robot ) INPUT_PORTS_END -static MACHINE_CONFIG_START( sh4robot, sh4robot_state ) +static MACHINE_CONFIG_START( sh4robot ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", SH4LE, 200000000) // SH7750 MCFG_SH4_MD0(1) @@ -89,5 +89,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT CONFIG COMPANY FULLNAME FLAGS */ -COMP( 20??, sh4robot, 0, 0, sh4robot, sh4robot, driver_device, 0, "", "Robot", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 20??, sh4robot, 0, 0, sh4robot, sh4robot, sh4robot_state, 0, "", "Robot", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/shadfrce.cpp b/src/mame/drivers/shadfrce.cpp index 55eb3656288..9de52d9c4bb 100644 --- a/src/mame/drivers/shadfrce.cpp +++ b/src/mame/drivers/shadfrce.cpp @@ -540,7 +540,7 @@ GFXDECODE_END /* Machine Driver Bits */ -static MACHINE_CONFIG_START( shadfrce, shadfrce_state ) +static MACHINE_CONFIG_START( shadfrce ) MCFG_CPU_ADD("maincpu", M68000, XTAL_28MHz / 2) /* verified on pcb */ MCFG_CPU_PROGRAM_MAP(shadfrce_map) @@ -571,7 +571,7 @@ static MACHINE_CONFIG_START( shadfrce, shadfrce_state ) MCFG_SOUND_ROUTE(0, "lspeaker", 0.50) MCFG_SOUND_ROUTE(1, "rspeaker", 0.50) - MCFG_OKIM6295_ADD("oki", XTAL_13_4952MHz/8, OKIM6295_PIN7_HIGH) /* verified on pcb */ + MCFG_OKIM6295_ADD("oki", XTAL_13_4952MHz/8, PIN7_HIGH) /* verified on pcb */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.50) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.50) MACHINE_CONFIG_END @@ -667,6 +667,6 @@ ROM_START( shadfrcej ) ROM_END -GAME( 1993, shadfrce, 0, shadfrce, shadfrce, driver_device, 0, ROT0, "Technos Japan", "Shadow Force (World, Version 3)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1993, shadfrceu, shadfrce, shadfrce, shadfrce, driver_device, 0, ROT0, "Technos Japan", "Shadow Force (US, Version 2)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1993, shadfrcej, shadfrce, shadfrce, shadfrce, driver_device, 0, ROT0, "Technos Japan", "Shadow Force (Japan, Version 2)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1993, shadfrce, 0, shadfrce, shadfrce, shadfrce_state, 0, ROT0, "Technos Japan", "Shadow Force (World, Version 3)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1993, shadfrceu, shadfrce, shadfrce, shadfrce, shadfrce_state, 0, ROT0, "Technos Japan", "Shadow Force (US, Version 2)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1993, shadfrcej, shadfrce, shadfrce, shadfrce, shadfrce_state, 0, ROT0, "Technos Japan", "Shadow Force (Japan, Version 2)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/shangha3.cpp b/src/mame/drivers/shangha3.cpp index 0a1fb133582..a551c1ef0cd 100644 --- a/src/mame/drivers/shangha3.cpp +++ b/src/mame/drivers/shangha3.cpp @@ -452,7 +452,7 @@ static GFXDECODE_START( shangha3 ) GFXDECODE_END -static MACHINE_CONFIG_START( shangha3, shangha3_state ) +static MACHINE_CONFIG_START( shangha3 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_48MHz/3) // TMP68HC000N-16 @@ -484,12 +484,12 @@ static MACHINE_CONFIG_START( shangha3, shangha3_state ) MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW2")) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30) - MCFG_OKIM6295_ADD("oki", XTAL_1_056MHz, OKIM6295_PIN7_HIGH) // pin 7 not verified + MCFG_OKIM6295_ADD("oki", XTAL_1_056MHz, PIN7_HIGH) // pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( heberpop, shangha3_state ) +static MACHINE_CONFIG_START( heberpop ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_48MHz/3) // TMP68HC000N-16 like the others?? @@ -527,12 +527,12 @@ static MACHINE_CONFIG_START( heberpop, shangha3_state ) MCFG_SOUND_ROUTE(0, "mono", 0.40) MCFG_SOUND_ROUTE(1, "mono", 0.40) - MCFG_OKIM6295_ADD("oki", 1056000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki", 1056000, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( blocken, shangha3_state ) +static MACHINE_CONFIG_START( blocken ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_48MHz/3) // TMP68HC000N-16 @@ -570,7 +570,7 @@ static MACHINE_CONFIG_START( blocken, shangha3_state ) MCFG_SOUND_ROUTE(0, "mono", 0.40) MCFG_SOUND_ROUTE(1, "mono", 0.40) - MCFG_OKIM6295_ADD("oki", XTAL_1_056MHz, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki", XTAL_1_056MHz, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END diff --git a/src/mame/drivers/shanghai.cpp b/src/mame/drivers/shanghai.cpp index 4245a0e287a..3ffa33b8033 100644 --- a/src/mame/drivers/shanghai.cpp +++ b/src/mame/drivers/shanghai.cpp @@ -403,7 +403,7 @@ static ADDRESS_MAP_START( hd63484_map, AS_0, 16, shanghai_state ) AM_RANGE(0x00000, 0x3ffff) AM_RAM ADDRESS_MAP_END -static MACHINE_CONFIG_START( shanghai, shanghai_state ) +static MACHINE_CONFIG_START( shanghai ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", V30, XTAL_16MHz/2) /* NEC D70116C-8 */ @@ -439,7 +439,7 @@ static MACHINE_CONFIG_START( shanghai, shanghai_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( shangha2, shanghai_state ) +static MACHINE_CONFIG_START( shangha2 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", V30, XTAL_16MHz/2) /* ? */ @@ -474,7 +474,7 @@ static MACHINE_CONFIG_START( shangha2, shanghai_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( kothello, shanghai_state ) +static MACHINE_CONFIG_START( kothello ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", V30, XTAL_16MHz) @@ -678,8 +678,8 @@ ROM_END -GAME( 1988, shanghai, 0, shanghai, shanghai, driver_device, 0, ROT0, "Sunsoft", "Shanghai (World)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1988, shanghaij, shanghai, shanghai, shanghai, driver_device, 0, ROT0, "Sunsoft", "Shanghai (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1989, shangha2, 0, shangha2, shangha2, driver_device, 0, ROT0, "Sunsoft", "Shanghai II (Japan, set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, shangha2a, shangha2, shangha2, shangha2, driver_device, 0, ROT0, "Sunsoft", "Shanghai II (Japan, set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, kothello, 0, kothello, kothello, driver_device, 0, ROT0, "Success", "Kyuukyoku no Othello", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1988, shanghai, 0, shanghai, shanghai, shanghai_state, 0, ROT0, "Sunsoft", "Shanghai (World)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1988, shanghaij, shanghai, shanghai, shanghai, shanghai_state, 0, ROT0, "Sunsoft", "Shanghai (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1989, shangha2, 0, shangha2, shangha2, shanghai_state, 0, ROT0, "Sunsoft", "Shanghai II (Japan, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, shangha2a, shangha2, shangha2, shangha2, shanghai_state, 0, ROT0, "Sunsoft", "Shanghai II (Japan, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, kothello, 0, kothello, kothello, shanghai_state, 0, ROT0, "Success", "Kyuukyoku no Othello", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/shangkid.cpp b/src/mame/drivers/shangkid.cpp index 8386ffb9edb..6102a5e5827 100644 --- a/src/mame/drivers/shangkid.cpp +++ b/src/mame/drivers/shangkid.cpp @@ -349,7 +349,7 @@ ADDRESS_MAP_END /***************************************************************************************/ -static MACHINE_CONFIG_START( chinhero, shangkid_state ) +static MACHINE_CONFIG_START( chinhero ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_18_432MHz/6) /* verified on pcb */ @@ -442,7 +442,7 @@ static ADDRESS_MAP_START( dynamski_portmap, AS_IO, 8, shangkid_state ) AM_RANGE(0x00, 0x01) AM_DEVWRITE("aysnd", ay8910_device, data_address_w) ADDRESS_MAP_END -static MACHINE_CONFIG_START( dynamski, shangkid_state ) +static MACHINE_CONFIG_START( dynamski ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 3000000) /* ? */ @@ -1010,10 +1010,10 @@ ROM_START( dynamski ) ROM_END -GAME( 1984, dynamski, 0, dynamski, dynamski, driver_device, 0, ROT90, "Taiyo", "Dynamic Ski", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1984, chinhero, 0, chinhero, chinhero, shangkid_state, chinhero, ROT90, "Taiyo", "Chinese Hero", MACHINE_SUPPORTS_SAVE ) // by Nihon Game? -GAME( 1984, chinhero2,chinhero, chinhero, chinhero, shangkid_state, chinhero, ROT90, "Taiyo", "Chinese Hero (older, set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, chinhero3,chinhero, chinhero, chinhero, shangkid_state, chinhero, ROT90, "Taiyo", "Chinese Hero (older, set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, chinherot,chinhero, chinhero, chinhero, shangkid_state, chinhero, ROT90, "Taiyo (Taito license)", "Chinese Heroe (Taito)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, shangkid, 0, shangkid, shangkid, shangkid_state, shangkid, ROT0, "Taiyo (Data East license)", "Shanghai Kid", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1985, hiryuken, shangkid, shangkid, shangkid, shangkid_state, shangkid, ROT0, "Taiyo (Taito license)", "Hokuha Syourin Hiryu no Ken", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1984, dynamski, 0, dynamski, dynamski, shangkid_state, 0, ROT90, "Taiyo", "Dynamic Ski", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1984, chinhero, 0, chinhero, chinhero, shangkid_state, chinhero, ROT90, "Taiyo", "Chinese Hero", MACHINE_SUPPORTS_SAVE ) // by Nihon Game? +GAME( 1984, chinhero2, chinhero, chinhero, chinhero, shangkid_state, chinhero, ROT90, "Taiyo", "Chinese Hero (older, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, chinhero3, chinhero, chinhero, chinhero, shangkid_state, chinhero, ROT90, "Taiyo", "Chinese Hero (older, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, chinherot, chinhero, chinhero, chinhero, shangkid_state, chinhero, ROT90, "Taiyo (Taito license)", "Chinese Heroe (Taito)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, shangkid, 0, shangkid, shangkid, shangkid_state, shangkid, ROT0, "Taiyo (Data East license)", "Shanghai Kid", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1985, hiryuken, shangkid, shangkid, shangkid, shangkid_state, shangkid, ROT0, "Taiyo (Taito license)", "Hokuha Syourin Hiryu no Ken", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/shaolins.cpp b/src/mame/drivers/shaolins.cpp index cd914cb8b5e..8b4fb99dd07 100644 --- a/src/mame/drivers/shaolins.cpp +++ b/src/mame/drivers/shaolins.cpp @@ -192,7 +192,7 @@ static GFXDECODE_START( shaolins ) GFXDECODE_END -static MACHINE_CONFIG_START( shaolins, shaolins_state ) +static MACHINE_CONFIG_START( shaolins ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809, MASTER_CLOCK/12) /* verified on pcb */ @@ -342,7 +342,7 @@ ROM_START( shaolinb ) ROM_END -/* YEAR, NAME, PARENT, MACHINE, INPUT, INIT, MONITOR, COMPANY, FULLNAME, FLAGS */ -GAME( 1985, kicker, 0, shaolins, shaolins, driver_device, 0, ROT90, "Konami", "Kicker", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, shaolins, kicker, shaolins, shaolins, driver_device, 0, ROT90, "Konami", "Shao-lin's Road (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, shaolinb, kicker, shaolins, shaolins, driver_device, 0, ROT90, "Konami", "Shao-lin's Road (set 2)", MACHINE_SUPPORTS_SAVE ) +/* YEAR, NAME, PARENT, MACHINE, INPUT, STATE, INIT, MONITOR, COMPANY, FULLNAME, FLAGS */ +GAME( 1985, kicker, 0, shaolins, shaolins, shaolins_state, 0, ROT90, "Konami", "Kicker", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, shaolins, kicker, shaolins, shaolins, shaolins_state, 0, ROT90, "Konami", "Shao-lin's Road (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, shaolinb, kicker, shaolins, shaolins, shaolins_state, 0, ROT90, "Konami", "Shao-lin's Road (set 2)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/shisen.cpp b/src/mame/drivers/shisen.cpp index c3ce31f1181..9318b6c39f2 100644 --- a/src/mame/drivers/shisen.cpp +++ b/src/mame/drivers/shisen.cpp @@ -207,7 +207,7 @@ GFXDECODE_END -static MACHINE_CONFIG_START( shisen, shisen_state ) +static MACHINE_CONFIG_START( shisen ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 6000000) /* 6 MHz ? */ @@ -238,7 +238,7 @@ static MACHINE_CONFIG_START( shisen, shisen_state ) MCFG_GENERIC_LATCH_8_ADD("soundlatch") - MCFG_SOUND_ADD("m72", M72, 0) + MCFG_SOUND_ADD("m72", IREM_M72_AUDIO, 0) MCFG_YM2151_ADD("ymsnd", 3579545) MCFG_YM2151_IRQ_HANDLER(DEVWRITELINE("m72", m72_audio_device, ym2151_irq_handler)) @@ -429,7 +429,7 @@ ROM_START( matchit ) /* no samples on this board */ ROM_END -GAME( 1989, matchit, 0, shisen, matchit, driver_device, 0, ROT0, "Tamtex", "Match It", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, shisen, matchit, shisen, shisen, driver_device, 0, ROT0, "Tamtex", "Shisensho - Joshiryo-Hen (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, sichuan2, matchit, shisen, shisen, driver_device, 0, ROT0, "hack", "Sichuan II (hack, set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, sichuan2a,matchit, shisen, shisen, driver_device, 0, ROT0, "hack", "Sichuan II (hack, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, matchit, 0, shisen, matchit, shisen_state, 0, ROT0, "Tamtex", "Match It", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, shisen, matchit, shisen, shisen, shisen_state, 0, ROT0, "Tamtex", "Shisensho - Joshiryo-Hen (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, sichuan2, matchit, shisen, shisen, shisen_state, 0, ROT0, "hack", "Sichuan II (hack, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, sichuan2a,matchit, shisen, shisen, shisen_state, 0, ROT0, "hack", "Sichuan II (hack, set 2)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/shootout.cpp b/src/mame/drivers/shootout.cpp index c5dfaf0108f..ba40d2ad694 100644 --- a/src/mame/drivers/shootout.cpp +++ b/src/mame/drivers/shootout.cpp @@ -273,7 +273,7 @@ void shootout_state::machine_reset () m_ccnt_old_val = 0x40; } -static MACHINE_CONFIG_START( shootout, shootout_state ) +static MACHINE_CONFIG_START( shootout ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", DECO_222, XTAL_12MHz / 6) // 2 MHz? @@ -306,7 +306,7 @@ static MACHINE_CONFIG_START( shootout, shootout_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( shootouj, shootout_state ) +static MACHINE_CONFIG_START( shootouj ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, XTAL_12MHz / 6) // 2 MHz? (Assuming the same XTAL as DE-0219 pcb) diff --git a/src/mame/drivers/shougi.cpp b/src/mame/drivers/shougi.cpp index 554150d2892..2fb3da8b000 100644 --- a/src/mame/drivers/shougi.cpp +++ b/src/mame/drivers/shougi.cpp @@ -398,7 +398,7 @@ INTERRUPT_GEN_MEMBER(shougi_state::vblank_nmi) } -static MACHINE_CONFIG_START( shougi, shougi_state ) +static MACHINE_CONFIG_START( shougi ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_10MHz/4) @@ -489,6 +489,6 @@ ROM_START( shougi2 ) ROM_END -/* YEAR NAME PARENT MACHINE INPUT INIT MONITOR, COMPANY, FULLNAME, FLAGS */ -GAME( 1982, shougi, 0, shougi, shougi, driver_device, 0, ROT0, "Alpha Denshi Co. (Tehkan license)", "Shougi", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, shougi2, 0, shougi, shougi2, driver_device, 0, ROT0, "Alpha Denshi Co. (Tehkan license)", "Shougi Part II", MACHINE_SUPPORTS_SAVE ) +/* YEAR NAME PARENT MACHINE INPUT STATE INIT MONITOR COMPANY FULLNAME FLAGS */ +GAME( 1982, shougi, 0, shougi, shougi, shougi_state, 0, ROT0, "Alpha Denshi Co. (Tehkan license)", "Shougi", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, shougi2, 0, shougi, shougi2, shougi_state, 0, ROT0, "Alpha Denshi Co. (Tehkan license)", "Shougi Part II", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/shtzone.cpp b/src/mame/drivers/shtzone.cpp index c83dc552550..c3d42179a4e 100644 --- a/src/mame/drivers/shtzone.cpp +++ b/src/mame/drivers/shtzone.cpp @@ -93,7 +93,7 @@ uint32_t shtzone_state::screen_update_shtzone(screen_device &screen, bitmap_ind1 } -static MACHINE_CONFIG_START( shtzone, shtzone_state ) +static MACHINE_CONFIG_START( shtzone ) /* basic machine hardware */ MCFG_CPU_ADD("timercpu", Z80,10738000/4) @@ -121,4 +121,4 @@ ROM_START( shtzone ) ROM_LOAD( "epr10894a.20", 0x00000, 0x04000, CRC(ea8901d9) SHA1(43fd8bfc395e3b2e3fbe9645d692a5eb04783d9c) ) ROM_END -GAME( 1987, shtzone, 0, shtzone, shtzone, driver_device, 0, ROT0, "Sega", "Shooting Zone System BIOS", MACHINE_IS_SKELETON | MACHINE_NO_SOUND | MACHINE_NOT_WORKING | MACHINE_IS_BIOS_ROOT ) +GAME( 1987, shtzone, 0, shtzone, shtzone, shtzone_state, 0, ROT0, "Sega", "Shooting Zone System BIOS", MACHINE_IS_SKELETON | MACHINE_NO_SOUND | MACHINE_NOT_WORKING | MACHINE_IS_BIOS_ROOT ) diff --git a/src/mame/drivers/shuuz.cpp b/src/mame/drivers/shuuz.cpp index 1bf575d14f6..dca4dcd5c6d 100644 --- a/src/mame/drivers/shuuz.cpp +++ b/src/mame/drivers/shuuz.cpp @@ -230,7 +230,7 @@ GFXDECODE_END * *************************************/ -static MACHINE_CONFIG_START( shuuz, shuuz_state ) +static MACHINE_CONFIG_START( shuuz ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, ATARI_CLOCK_14MHz/2) @@ -260,7 +260,7 @@ static MACHINE_CONFIG_START( shuuz, shuuz_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", ATARI_CLOCK_14MHz/16, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", ATARI_CLOCK_14MHz/16, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -347,5 +347,5 @@ ROM_END * *************************************/ -GAME( 1990, shuuz, 0, shuuz, shuuz, driver_device, 0, ROT0, "Atari Games", "Shuuz (version 8.0)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, shuuz2, shuuz, shuuz, shuuz2, driver_device, 0, ROT0, "Atari Games", "Shuuz (version 7.1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, shuuz, 0, shuuz, shuuz, shuuz_state, 0, ROT0, "Atari Games", "Shuuz (version 8.0)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, shuuz2, shuuz, shuuz, shuuz2, shuuz_state, 0, ROT0, "Atari Games", "Shuuz (version 7.1)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/sidearms.cpp b/src/mame/drivers/sidearms.cpp index 5ac932495f0..a31c6918b29 100644 --- a/src/mame/drivers/sidearms.cpp +++ b/src/mame/drivers/sidearms.cpp @@ -593,7 +593,7 @@ static GFXDECODE_START( turtship ) GFXDECODE_END -static MACHINE_CONFIG_START( sidearms, sidearms_state ) +static MACHINE_CONFIG_START( sidearms ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 4000000) /* 4 MHz (?) */ @@ -642,7 +642,7 @@ static MACHINE_CONFIG_START( sidearms, sidearms_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( turtship, sidearms_state ) +static MACHINE_CONFIG_START( turtship ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 4000000) /* 4 MHz (?) */ @@ -690,7 +690,7 @@ static MACHINE_CONFIG_START( turtship, sidearms_state ) MCFG_SOUND_ROUTE(3, "mono", 0.25) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( whizz, sidearms_state ) +static MACHINE_CONFIG_START( whizz ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 4000000) /* 4 MHz (?) */ diff --git a/src/mame/drivers/sidepckt.cpp b/src/mame/drivers/sidepckt.cpp index f69930110b5..6628de27a2a 100644 --- a/src/mame/drivers/sidepckt.cpp +++ b/src/mame/drivers/sidepckt.cpp @@ -372,7 +372,7 @@ void sidepckt_state::machine_reset() m_scroll_y = 0; } -static MACHINE_CONFIG_START( sidepckt, sidepckt_state ) +static MACHINE_CONFIG_START( sidepckt ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809, 2000000) /* 2 MHz */ @@ -527,4 +527,4 @@ DRIVER_INIT_MEMBER(sidepckt_state,sidepcktj) GAME( 1986, sidepckt, 0, sidepckt, sidepckt, sidepckt_state, sidepckt, ROT0, "Data East Corporation", "Side Pocket (World)", MACHINE_SUPPORTS_SAVE ) GAME( 1986, sidepcktj, sidepckt, sidepckt, sidepcktj, sidepckt_state, sidepcktj, ROT0, "Data East Corporation", "Side Pocket (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, sidepcktb, sidepckt, sidepcktb, sidepcktb, driver_device, 0, ROT0, "bootleg", "Side Pocket (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, sidepcktb, sidepckt, sidepcktb, sidepcktb, sidepckt_state, 0, ROT0, "bootleg", "Side Pocket (bootleg)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/sigmab52.cpp b/src/mame/drivers/sigmab52.cpp index 099cf63f603..3add7883ff7 100644 --- a/src/mame/drivers/sigmab52.cpp +++ b/src/mame/drivers/sigmab52.cpp @@ -575,7 +575,7 @@ void sigmab52_state::machine_reset() * Machine Drivers * *************************/ -static MACHINE_CONFIG_START( jwildb52, sigmab52_state ) +static MACHINE_CONFIG_START( jwildb52 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809, MAIN_CLOCK/9) /* 2 MHz */ diff --git a/src/mame/drivers/sigmab98.cpp b/src/mame/drivers/sigmab98.cpp index 91c4b1be335..1caec9d98c5 100644 --- a/src/mame/drivers/sigmab98.cpp +++ b/src/mame/drivers/sigmab98.cpp @@ -1236,7 +1236,7 @@ static ADDRESS_MAP_START( animalc_io, AS_IO, 8, sigmab98_state ) AM_RANGE( 0x32, 0x32 ) AM_WRITE(sammymdl_leds_w ) AM_RANGE( 0x34, 0x34 ) AM_READ(unk_34_r ) AM_RANGE( 0x90, 0x90 ) AM_DEVWRITE("oki", okim9810_device, write ) - AM_RANGE( 0x91, 0x91 ) AM_DEVWRITE("oki", okim9810_device, write_TMP_register ) + AM_RANGE( 0x91, 0x91 ) AM_DEVWRITE("oki", okim9810_device, write_tmp_register ) AM_RANGE( 0x92, 0x92 ) AM_DEVREAD("oki", okim9810_device, read ) AM_RANGE( 0xb0, 0xb0 ) AM_WRITE(sammymdl_hopper_w ) AM_RANGE( 0xc0, 0xc0 ) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w ) // 1 @@ -1480,7 +1480,7 @@ static ADDRESS_MAP_START( haekaka_io, AS_IO, 8, sigmab98_state ) AM_RANGE( 0x31, 0x31 ) AM_WRITE(haekaka_coin_w ) AM_RANGE( 0x32, 0x32 ) AM_WRITE(haekaka_leds_w ) AM_RANGE( 0x90, 0x90 ) AM_DEVWRITE("oki", okim9810_device, write ) - AM_RANGE( 0x91, 0x91 ) AM_DEVWRITE("oki", okim9810_device, write_TMP_register ) + AM_RANGE( 0x91, 0x91 ) AM_DEVWRITE("oki", okim9810_device, write_tmp_register ) AM_RANGE( 0x92, 0x92 ) AM_DEVREAD("oki", okim9810_device, read ) AM_RANGE( 0xb0, 0xb0 ) AM_WRITE(sammymdl_hopper_w ) AM_RANGE( 0xc0, 0xc0 ) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w ) // 1 @@ -1727,7 +1727,7 @@ static ADDRESS_MAP_START( itazuram_io, AS_IO, 8, sigmab98_state ) AM_RANGE( 0x31, 0x31 ) AM_WRITE(sammymdl_coin_w ) AM_RANGE( 0x32, 0x32 ) AM_WRITE(sammymdl_leds_w ) AM_RANGE( 0x90, 0x90 ) AM_DEVWRITE("oki", okim9810_device, write ) - AM_RANGE( 0x91, 0x91 ) AM_DEVWRITE("oki", okim9810_device, write_TMP_register ) + AM_RANGE( 0x91, 0x91 ) AM_DEVWRITE("oki", okim9810_device, write_tmp_register ) AM_RANGE( 0x92, 0x92 ) AM_DEVREAD("oki", okim9810_device, read ) AM_RANGE( 0xb0, 0xb0 ) AM_WRITE(sammymdl_hopper_w ) AM_RANGE( 0xc0, 0xc0 ) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w ) // 1 @@ -1956,7 +1956,7 @@ static ADDRESS_MAP_START( tdoboon_io, AS_IO, 8, sigmab98_state ) AM_RANGE( 0x31, 0x31 ) AM_WRITE(sammymdl_coin_w ) AM_RANGE( 0x32, 0x32 ) AM_WRITE(sammymdl_leds_w ) AM_RANGE( 0x90, 0x90 ) AM_DEVWRITE("oki", okim9810_device, write ) - AM_RANGE( 0x91, 0x91 ) AM_DEVWRITE("oki", okim9810_device, write_TMP_register ) + AM_RANGE( 0x91, 0x91 ) AM_DEVWRITE("oki", okim9810_device, write_tmp_register ) AM_RANGE( 0x92, 0x92 ) AM_DEVREAD("oki", okim9810_device, read ) AM_RANGE( 0xb0, 0xb0 ) AM_WRITE(sammymdl_hopper_w ) AM_RANGE( 0xc0, 0xc0 ) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w ) // 1 @@ -2148,7 +2148,7 @@ INTERRUPT_GEN_MEMBER(sigmab98_state::sigmab98_vblank_interrupt) device.execute().set_input_line_and_vector(0, HOLD_LINE, 0x5a); } -static MACHINE_CONFIG_START( sigmab98, sigmab98_state ) +static MACHINE_CONFIG_START( sigmab98 ) MCFG_CPU_ADD("maincpu", Z80, 10000000) // !! TAXAN KY-80, clock @X1? !! MCFG_CPU_PROGRAM_MAP(gegege_mem_map) MCFG_CPU_IO_MAP(gegege_io_map) @@ -2229,7 +2229,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(sigmab98_state::sammymdl_irq) m_maincpu->set_input_line_and_vector(0,HOLD_LINE, m_timer1_vector); } -static MACHINE_CONFIG_START( sammymdl, sigmab98_state ) +static MACHINE_CONFIG_START( sammymdl ) MCFG_CPU_ADD("maincpu", Z80, XTAL_20MHz / 2) // !! KL5C80A120FP @ 10MHz? (actually 4 times faster than Z80) !! MCFG_CPU_PROGRAM_MAP( animalc_map ) MCFG_CPU_IO_MAP( animalc_io ) diff --git a/src/mame/drivers/silkroad.cpp b/src/mame/drivers/silkroad.cpp index 18c6a20e325..28cb4546739 100644 --- a/src/mame/drivers/silkroad.cpp +++ b/src/mame/drivers/silkroad.cpp @@ -273,7 +273,7 @@ static GFXDECODE_START( silkroad ) GFXDECODE_ENTRY( "gfx1", 0, tiles16x16x6_layout, 0x0000, 256 ) GFXDECODE_END -static MACHINE_CONFIG_START( silkroad, silkroad_state ) +static MACHINE_CONFIG_START( silkroad ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68EC020, XTAL_32MHz/2) /* 16MHz */ @@ -300,11 +300,11 @@ static MACHINE_CONFIG_START( silkroad, silkroad_state ) MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) - MCFG_OKIM6295_ADD("oki1", 1056000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki1", 1056000, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.45) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.45) - MCFG_OKIM6295_ADD("oki2", 2112000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki2", 2112000, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.45) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.45) MACHINE_CONFIG_END diff --git a/src/mame/drivers/silvmil.cpp b/src/mame/drivers/silvmil.cpp index 38457eed1b8..d77d20c49c7 100644 --- a/src/mame/drivers/silvmil.cpp +++ b/src/mame/drivers/silvmil.cpp @@ -395,7 +395,7 @@ static ADDRESS_MAP_START( silvmil_sound_map, AS_PROGRAM, 8, silvmil_state ) ADDRESS_MAP_END -static MACHINE_CONFIG_START( silvmil, silvmil_state ) +static MACHINE_CONFIG_START( silvmil ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_12MHz) /* Verified */ @@ -434,7 +434,7 @@ static MACHINE_CONFIG_START( silvmil, silvmil_state ) MCFG_YM2151_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) - MCFG_OKIM6295_ADD("oki", XTAL_4_096MHz/4, OKIM6295_PIN7_HIGH) /* Verified */ + MCFG_OKIM6295_ADD("oki", XTAL_4_096MHz/4, PIN7_HIGH) /* Verified */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) MACHINE_CONFIG_END @@ -447,7 +447,7 @@ static MACHINE_CONFIG_DERIVED( puzzlove, silvmil ) MCFG_DECO_SPRITE_BOOTLEG_TYPE(1) MCFG_DEVICE_REMOVE("oki") - MCFG_OKIM6295_ADD("oki", XTAL_4MHz/4, OKIM6295_PIN7_HIGH) /* Verified */ + MCFG_OKIM6295_ADD("oki", XTAL_4MHz/4, PIN7_HIGH) /* Verified */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) MACHINE_CONFIG_END diff --git a/src/mame/drivers/simpl156.cpp b/src/mame/drivers/simpl156.cpp index 042794d2b21..c5ebeae8d31 100644 --- a/src/mame/drivers/simpl156.cpp +++ b/src/mame/drivers/simpl156.cpp @@ -380,7 +380,7 @@ DECOSPR_PRIORITY_CB_MEMBER(simpl156_state::pri_callback) } -static MACHINE_CONFIG_START( chainrec, simpl156_state ) +static MACHINE_CONFIG_START( chainrec ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", ARM, 28000000 /* /4 */) /*DE156*/ /* 7.000 MHz */ /* measured at 7.. seems to need 28? */ @@ -426,11 +426,11 @@ static MACHINE_CONFIG_START( chainrec, simpl156_state ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_OKIM6295_ADD("okisfx", 32220000/32, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("okisfx", 32220000/32, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.6) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.6) - MCFG_OKIM6295_ADD("okimusic", 32220000/16, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("okimusic", 32220000/16, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.2) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.2) MACHINE_CONFIG_END @@ -462,7 +462,7 @@ static MACHINE_CONFIG_DERIVED( mitchell156, chainrec ) MCFG_CPU_MODIFY("maincpu") MCFG_CPU_PROGRAM_MAP(mitchell156_map) - MCFG_OKIM6295_REPLACE("okimusic", 32220000/32, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_REPLACE("okimusic", 32220000/32, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.2) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.2) MACHINE_CONFIG_END diff --git a/src/mame/drivers/simple_st0016.cpp b/src/mame/drivers/simple_st0016.cpp index 2689a1fc592..f5cd2606a71 100644 --- a/src/mame/drivers/simple_st0016.cpp +++ b/src/mame/drivers/simple_st0016.cpp @@ -462,7 +462,7 @@ uint32_t st0016_state::screen_update_st0016(screen_device &screen, bitmap_ind16 } -static MACHINE_CONFIG_START( st0016, st0016_state ) +static MACHINE_CONFIG_START( st0016 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",ST0016_CPU,8000000) /* 8 MHz ? */ MCFG_CPU_PROGRAM_MAP(st0016_mem) @@ -720,13 +720,13 @@ DRIVER_INIT_MEMBER(st0016_state,mayjisn2) * *************************************/ -GAME( 1994, renju, 0, renju, renju, st0016_state, renju, ROT0, "Visco", "Renju Kizoku", MACHINE_NO_COCKTAIL) -GAME( 1996, nratechu, 0, st0016, nratechu, st0016_state, nratechu, ROT0, "Seta", "Neratte Chu", MACHINE_NO_COCKTAIL) -GAME( 1994, mayjisn2, 0, mayjinsn, mayjisn2, st0016_state, mayjisn2, ROT0, "Seta", "Mayjinsen 2", MACHINE_NO_COCKTAIL) -GAME( 1995, koikois, 0, st0016, koikois, st0016_state, renju, ROT0, "Visco", "Koi Koi Shimasho", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_COCKTAIL) +GAME( 1994, renju, 0, renju, renju, st0016_state, renju, ROT0, "Visco", "Renju Kizoku", MACHINE_NO_COCKTAIL) +GAME( 1996, nratechu, 0, st0016, nratechu, st0016_state, nratechu, ROT0, "Seta", "Neratte Chu", MACHINE_NO_COCKTAIL) +GAME( 1994, mayjisn2, 0, mayjinsn, mayjisn2, st0016_state, mayjisn2, ROT0, "Seta", "Mayjinsen 2", MACHINE_NO_COCKTAIL) +GAME( 1995, koikois, 0, st0016, koikois, st0016_state, renju, ROT0, "Visco", "Koi Koi Shimasho", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_COCKTAIL) GAME( 2001, gostop, 0, st0016, gostop, st0016_state, renju, ROT0, "Visco", "Kankoku Hanafuda Go-Stop", MACHINE_NO_COCKTAIL) /* Not working */ -GAME( 1994, mayjinsn, 0, mayjinsn, st0016, st0016_state, mayjinsn, ROT0, "Seta", "Mayjinsen",MACHINE_IMPERFECT_GRAPHICS|MACHINE_NOT_WORKING|MACHINE_NO_COCKTAIL) +GAME( 1994, mayjinsn, 0, mayjinsn, st0016, st0016_state, mayjinsn, ROT0, "Seta", "Mayjinsen", MACHINE_IMPERFECT_GRAPHICS|MACHINE_NOT_WORKING|MACHINE_NO_COCKTAIL) GAME( 1994, dcrown, 0, st0016, renju, st0016_state, renju, ROT0, "Nippon Data Kiki", "Dream Crown (Set 1)", MACHINE_NOT_WORKING|MACHINE_NO_COCKTAIL) // (c) 1994 Nippon Data Kiki is uploaded near the Japanese Insert coin text GAME( 1994, dcrowna, dcrown, st0016, renju, st0016_state, renju, ROT0, "Nippon Data Kiki", "Dream Crown (Set 2)", MACHINE_NOT_WORKING|MACHINE_NO_COCKTAIL) // the Insert Coin text has been translated to English and no (c) is uploaded diff --git a/src/mame/drivers/simpsons.cpp b/src/mame/drivers/simpsons.cpp index be92748a0c4..52fbcf9506b 100644 --- a/src/mame/drivers/simpsons.cpp +++ b/src/mame/drivers/simpsons.cpp @@ -317,7 +317,7 @@ INTERRUPT_GEN_MEMBER(simpsons_state::simpsons_irq) device.execute().set_input_line(KONAMI_IRQ_LINE, HOLD_LINE); } -static MACHINE_CONFIG_START( simpsons, simpsons_state ) +static MACHINE_CONFIG_START( simpsons ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", KONAMI, XTAL_24MHz/2/4) /* 053248, the clock input is 12MHz, and internal CPU divider of 4 */ @@ -605,10 +605,10 @@ ROM_END ***************************************************************************/ // the region warning, if one exists, is shown after the high-score screen in attract mode -GAME( 1991, simpsons, 0, simpsons, simpsons, driver_device, 0, ROT0, "Konami", "The Simpsons (4 Players World, set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, simpsons4pa, simpsons, simpsons, simpsons, driver_device, 0, ROT0, "Konami", "The Simpsons (4 Players World, set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, simpsons2p, simpsons, simpsons, simpsn2p, driver_device, 0, ROT0, "Konami", "The Simpsons (2 Players World, set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, simpsons2p2, simpsons, simpsons, simpsons, driver_device, 0, ROT0, "Konami", "The Simpsons (2 Players World, set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, simpsons2p3, simpsons, simpsons, simpsn2p, driver_device, 0, ROT0, "Konami", "The Simpsons (2 Players World, set 3)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, simpsons2pa, simpsons, simpsons, simpsn2p, driver_device, 0, ROT0, "Konami", "The Simpsons (2 Players Asia)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, simpsons2pj, simpsons, simpsons, simpsn2p, driver_device, 0, ROT0, "Konami", "The Simpsons (2 Players Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, simpsons, 0, simpsons, simpsons, simpsons_state, 0, ROT0, "Konami", "The Simpsons (4 Players World, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, simpsons4pa, simpsons, simpsons, simpsons, simpsons_state, 0, ROT0, "Konami", "The Simpsons (4 Players World, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, simpsons2p, simpsons, simpsons, simpsn2p, simpsons_state, 0, ROT0, "Konami", "The Simpsons (2 Players World, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, simpsons2p2, simpsons, simpsons, simpsons, simpsons_state, 0, ROT0, "Konami", "The Simpsons (2 Players World, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, simpsons2p3, simpsons, simpsons, simpsn2p, simpsons_state, 0, ROT0, "Konami", "The Simpsons (2 Players World, set 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, simpsons2pa, simpsons, simpsons, simpsn2p, simpsons_state, 0, ROT0, "Konami", "The Simpsons (2 Players Asia)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, simpsons2pj, simpsons, simpsons, simpsn2p, simpsons_state, 0, ROT0, "Konami", "The Simpsons (2 Players Japan)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/sitcom.cpp b/src/mame/drivers/sitcom.cpp index d67c35b12bd..d71caace1a3 100644 --- a/src/mame/drivers/sitcom.cpp +++ b/src/mame/drivers/sitcom.cpp @@ -329,7 +329,7 @@ void sitcom_timer_state::update_dac(uint8_t value) } -MACHINE_CONFIG_START( sitcom, sitcom_state ) +MACHINE_CONFIG_START( sitcom ) // basic machine hardware MCFG_CPU_ADD("maincpu", I8085A, XTAL_6_144MHz) // 3.072MHz can be used for an old slow 8085 MCFG_CPU_PROGRAM_MAP(sitcom_mem) @@ -367,7 +367,7 @@ MACHINE_CONFIG_START( sitcom, sitcom_state ) MACHINE_CONFIG_END -MACHINE_CONFIG_DERIVED_CLASS( sitcomtmr, sitcom, sitcom_timer_state ) +MACHINE_CONFIG_DERIVED( sitcomtmr, sitcom ) MCFG_DEVICE_ADD("ds2", DL1414T, 0) // remote display MCFG_DL1414_UPDATE_HANDLER(WRITE16(sitcom_state, update_ds<2>)) @@ -390,6 +390,6 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ -COMP( 2002, sitcom, 0, 0, sitcom, sitcom, driver_device, 0, "San Bergmans & Izabella Malcolm", "Sitcom", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW) -COMP( 2002, sitcomtmr, sitcom, 0, sitcomtmr, sitcomtmr, driver_device, 0, "San Bergmans & Izabella Malcolm", "Sitcom Timer", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +COMP( 2002, sitcom, 0, 0, sitcom, sitcom, sitcom_state, 0, "San Bergmans & Izabella Malcolm", "SITCOM", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW) +COMP( 2002, sitcomtmr, sitcom, 0, sitcomtmr, sitcomtmr, sitcom_timer_state, 0, "San Bergmans & Izabella Malcolm", "SITCOM Timer", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW) diff --git a/src/mame/drivers/skeetsht.cpp b/src/mame/drivers/skeetsht.cpp index 70ae23c3fc4..6155b28c9c7 100644 --- a/src/mame/drivers/skeetsht.cpp +++ b/src/mame/drivers/skeetsht.cpp @@ -227,7 +227,7 @@ INPUT_PORTS_END * *************************************/ -static MACHINE_CONFIG_START( skeetsht, skeetsht_state ) +static MACHINE_CONFIG_START( skeetsht ) MCFG_CPU_ADD("68hc11", MC68HC11, 4000000) // ? MCFG_CPU_PROGRAM_MAP(hc11_pgm_map) @@ -295,5 +295,5 @@ ROM_END * *************************************/ -GAME( 1991, skeetsht, 0, skeetsht, skeetsht, driver_device, 0, ROT0, "Dynamo", "Skeet Shot", MACHINE_NOT_WORKING ) -GAME( 1991, popshot, 0, skeetsht, skeetsht, driver_device, 0, ROT0, "Dynamo", "Pop Shot (prototype)", MACHINE_NOT_WORKING ) +GAME( 1991, skeetsht, 0, skeetsht, skeetsht, skeetsht_state, 0, ROT0, "Dynamo", "Skeet Shot", MACHINE_NOT_WORKING ) +GAME( 1991, popshot, 0, skeetsht, skeetsht, skeetsht_state, 0, ROT0, "Dynamo", "Pop Shot (prototype)", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/skimaxx.cpp b/src/mame/drivers/skimaxx.cpp index 77d7b3b67c7..524ab14ba95 100644 --- a/src/mame/drivers/skimaxx.cpp +++ b/src/mame/drivers/skimaxx.cpp @@ -493,7 +493,7 @@ void skimaxx_state::machine_reset() * *************************************/ -static MACHINE_CONFIG_START( skimaxx, skimaxx_state ) +static MACHINE_CONFIG_START( skimaxx ) MCFG_CPU_ADD("maincpu", M68EC030, XTAL_40MHz) MCFG_CPU_PROGRAM_MAP(68030_1_map) MCFG_CPU_VBLANK_INT_DRIVER("screen", skimaxx_state, irq3_line_hold) // 1,3,7 are identical, rest is RTE @@ -529,16 +529,16 @@ static MACHINE_CONFIG_START( skimaxx, skimaxx_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_OKIM6295_ADD("oki1", XTAL_4MHz, OKIM6295_PIN7_LOW) // ? + MCFG_OKIM6295_ADD("oki1", XTAL_4MHz, PIN7_LOW) // ? MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) - MCFG_OKIM6295_ADD("oki2", XTAL_4MHz/2, OKIM6295_PIN7_HIGH) // ? + MCFG_OKIM6295_ADD("oki2", XTAL_4MHz/2, PIN7_HIGH) // ? MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) - MCFG_OKIM6295_ADD("oki3", XTAL_4MHz, OKIM6295_PIN7_LOW) // ? + MCFG_OKIM6295_ADD("oki3", XTAL_4MHz, PIN7_LOW) // ? MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) - MCFG_OKIM6295_ADD("oki4", XTAL_4MHz/2, OKIM6295_PIN7_HIGH) // ? + MCFG_OKIM6295_ADD("oki4", XTAL_4MHz/2, PIN7_HIGH) // ? MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) MACHINE_CONFIG_END @@ -598,4 +598,4 @@ ROM_END * *************************************/ -GAME( 1996, skimaxx, 0, skimaxx, skimaxx, driver_device, 0, ROT0, "Kyle Hodgetts / ICE", "Skimaxx", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1996, skimaxx, 0, skimaxx, skimaxx, skimaxx_state, 0, ROT0, "Kyle Hodgetts / ICE", "Skimaxx", MACHINE_IMPERFECT_GRAPHICS ) diff --git a/src/mame/drivers/skullxbo.cpp b/src/mame/drivers/skullxbo.cpp index 718fc4d14c6..227ced02bd7 100644 --- a/src/mame/drivers/skullxbo.cpp +++ b/src/mame/drivers/skullxbo.cpp @@ -224,7 +224,7 @@ GFXDECODE_END * *************************************/ -static MACHINE_CONFIG_START( skullxbo, skullxbo_state ) +static MACHINE_CONFIG_START( skullxbo ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, ATARI_CLOCK_14MHz/2) diff --git a/src/mame/drivers/skyarmy.cpp b/src/mame/drivers/skyarmy.cpp index 84ad8c752c5..c7f8b03d4c1 100644 --- a/src/mame/drivers/skyarmy.cpp +++ b/src/mame/drivers/skyarmy.cpp @@ -317,7 +317,7 @@ static GFXDECODE_START( skyarmy ) GFXDECODE_ENTRY( "gfx2", 0, spritelayout, 0, 8 ) GFXDECODE_END -static MACHINE_CONFIG_START( skyarmy, skyarmy_state ) +static MACHINE_CONFIG_START( skyarmy ) MCFG_CPU_ADD("maincpu", Z80,4000000) MCFG_CPU_PROGRAM_MAP(skyarmy_map) @@ -366,4 +366,4 @@ ROM_START( skyarmy ) ROM_LOAD( "a6.bin", 0x0000, 0x0020, CRC(c721220b) SHA1(61b3320fb616c0600d56840cb6438616c7e0c6eb) ) ROM_END -GAME( 1982, skyarmy, 0, skyarmy, skyarmy, driver_device, 0, ROT90, "Shoei", "Sky Army", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, skyarmy, 0, skyarmy, skyarmy, skyarmy_state, 0, ROT90, "Shoei", "Sky Army", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/skydiver.cpp b/src/mame/drivers/skydiver.cpp index d394ce6ad6d..a02eb02254d 100644 --- a/src/mame/drivers/skydiver.cpp +++ b/src/mame/drivers/skydiver.cpp @@ -375,7 +375,7 @@ GFXDECODE_END * *************************************/ -static MACHINE_CONFIG_START( skydiver, skydiver_state ) +static MACHINE_CONFIG_START( skydiver ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6800,MASTER_CLOCK/16) /* ???? */ @@ -439,4 +439,4 @@ ROM_END * *************************************/ -GAMEL(1978, skydiver, 0, skydiver, skydiver, driver_device, 0, ROT0, "Atari", "Sky Diver", MACHINE_SUPPORTS_SAVE, layout_skydiver ) +GAMEL(1978, skydiver, 0, skydiver, skydiver, skydiver_state, 0, ROT0, "Atari", "Sky Diver", MACHINE_SUPPORTS_SAVE, layout_skydiver ) diff --git a/src/mame/drivers/skyfox.cpp b/src/mame/drivers/skyfox.cpp index 1292900c77f..332b28c89d0 100644 --- a/src/mame/drivers/skyfox.cpp +++ b/src/mame/drivers/skyfox.cpp @@ -220,7 +220,7 @@ void skyfox_state::machine_reset() m_bg_ctrl = 0; } -static MACHINE_CONFIG_START( skyfox, skyfox_state ) +static MACHINE_CONFIG_START( skyfox ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_8MHz/2) /* Verified at 4MHz */ diff --git a/src/mame/drivers/skykid.cpp b/src/mame/drivers/skykid.cpp index 3dbbd540388..fd3af38d83e 100644 --- a/src/mame/drivers/skykid.cpp +++ b/src/mame/drivers/skykid.cpp @@ -435,7 +435,7 @@ INTERRUPT_GEN_MEMBER(skykid_state::mcu_vblank_irq) } -static MACHINE_CONFIG_START( skykid, skykid_state ) +static MACHINE_CONFIG_START( skykid ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809,49152000/32) diff --git a/src/mame/drivers/skylncr.cpp b/src/mame/drivers/skylncr.cpp index 275cc6d0166..ed2de02827c 100644 --- a/src/mame/drivers/skylncr.cpp +++ b/src/mame/drivers/skylncr.cpp @@ -1616,7 +1616,7 @@ INTERRUPT_GEN_MEMBER(skylncr_state::skylncr_vblank_interrupt) * Machine Driver * *************************************/ -static MACHINE_CONFIG_START( skylncr, skylncr_state ) +static MACHINE_CONFIG_START( skylncr ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, MASTER_CLOCK/4) @@ -2012,14 +2012,14 @@ DRIVER_INIT_MEMBER(skylncr_state, sonikfig) * Game Drivers * ****************************************************/ -/* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS */ -GAME( 1995, skylncr, 0, skylncr, skylncr, driver_device, 0, ROT0, "Bordun International", "Sky Lancer (Bordun, version U450C)", 0 ) -GAME( 1995, butrfly, 0, skylncr, skylncr, driver_device, 0, ROT0, "Bordun International", "Butterfly Video Game (version U350C)", 0 ) -GAME( 1999, mbutrfly, 0, mbutrfly, mbutrfly, driver_device, 0, ROT0, "Bordun International", "Magical Butterfly (version U350C, protected)", 0 ) -GAME( 1995, madzoo, 0, skylncr, skylncr, driver_device, 0, ROT0, "Bordun International", "Mad Zoo (version U450C)", 0 ) -GAME( 1995, leader, 0, skylncr, leader, driver_device, 0, ROT0, "bootleg", "Leader (version Z 2E, Greece)", 0 ) -GAME( 199?, gallag50, 0, skylncr, gallag50, driver_device, 0, ROT0, "bootleg", "Gallag Video Game / Petalouda (Butterfly, x50)", 0 ) -GAME( 199?, neraidou, 0, neraidou, neraidou, driver_device, 0, ROT0, "bootleg", "Neraidoula (Fairy Butterfly)", 0 ) -GAME( 199?, sstar97, 0, sstar97, sstar97, driver_device, 0, ROT0, "Bordun International", "Super Star 97 / Ming Xing 97 (version V153B)", 0 ) -GAME( 1995, bdream97, 0, bdream97, skylncr, driver_device, 0, ROT0, "bootleg (KKK)", "Butterfly Dream 97 / Hudie Meng 97", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) +// YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS +GAME( 1995, skylncr, 0, skylncr, skylncr, skylncr_state, 0, ROT0, "Bordun International", "Sky Lancer (Bordun, version U450C)", 0 ) +GAME( 1995, butrfly, 0, skylncr, skylncr, skylncr_state, 0, ROT0, "Bordun International", "Butterfly Video Game (version U350C)", 0 ) +GAME( 1999, mbutrfly, 0, mbutrfly, mbutrfly, skylncr_state, 0, ROT0, "Bordun International", "Magical Butterfly (version U350C, protected)", 0 ) +GAME( 1995, madzoo, 0, skylncr, skylncr, skylncr_state, 0, ROT0, "Bordun International", "Mad Zoo (version U450C)", 0 ) +GAME( 1995, leader, 0, skylncr, leader, skylncr_state, 0, ROT0, "bootleg", "Leader (version Z 2E, Greece)", 0 ) +GAME( 199?, gallag50, 0, skylncr, gallag50, skylncr_state, 0, ROT0, "bootleg", "Gallag Video Game / Petalouda (Butterfly, x50)", 0 ) +GAME( 199?, neraidou, 0, neraidou, neraidou, skylncr_state, 0, ROT0, "bootleg", "Neraidoula (Fairy Butterfly)", 0 ) +GAME( 199?, sstar97, 0, sstar97, sstar97, skylncr_state, 0, ROT0, "Bordun International", "Super Star 97 / Ming Xing 97 (version V153B)", 0 ) +GAME( 1995, bdream97, 0, bdream97, skylncr, skylncr_state, 0, ROT0, "bootleg (KKK)", "Butterfly Dream 97 / Hudie Meng 97", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) GAME( 2000, sonikfig, 0, skylncr, sonikfig, skylncr_state, sonikfig, ROT0, "Z Games", "Sonik Fighter (version 02, encrypted)", MACHINE_WRONG_COLORS | MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/skyraid.cpp b/src/mame/drivers/skyraid.cpp index 7feae556898..1f9374c1a3d 100644 --- a/src/mame/drivers/skyraid.cpp +++ b/src/mame/drivers/skyraid.cpp @@ -218,7 +218,7 @@ static GFXDECODE_START( skyraid ) GFXDECODE_END -static MACHINE_CONFIG_START( skyraid, skyraid_state ) +static MACHINE_CONFIG_START( skyraid ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, 12096000 / 12) @@ -281,4 +281,4 @@ ROM_START( skyraid ) ROM_END -GAME( 1978, skyraid, 0, skyraid, skyraid, driver_device, 0, ORIENTATION_FLIP_Y, "Atari", "Sky Raider", MACHINE_IMPERFECT_COLORS ) +GAME( 1978, skyraid, 0, skyraid, skyraid, skyraid_state, 0, ORIENTATION_FLIP_Y, "Atari", "Sky Raider", MACHINE_IMPERFECT_COLORS ) diff --git a/src/mame/drivers/slapfght.cpp b/src/mame/drivers/slapfght.cpp index f9913ba7c3c..c5c5bb753b6 100644 --- a/src/mame/drivers/slapfght.cpp +++ b/src/mame/drivers/slapfght.cpp @@ -925,7 +925,7 @@ GFXDECODE_END ***************************************************************************/ -static MACHINE_CONFIG_START( perfrman, slapfght_state ) +static MACHINE_CONFIG_START( perfrman ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_16MHz/4) // 4MHz? XTAL is known, divider is guessed @@ -970,7 +970,7 @@ static MACHINE_CONFIG_START( perfrman, slapfght_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( tigerh, slapfght_state ) +static MACHINE_CONFIG_START( tigerh ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_36MHz/6) // 6MHz @@ -1034,7 +1034,7 @@ static MACHINE_CONFIG_DERIVED( tigerhb2, tigerhb1 ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( slapfigh, slapfght_state ) +static MACHINE_CONFIG_START( slapfigh ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80, XTAL_36MHz/6) // 6MHz @@ -2017,14 +2017,14 @@ ROM_END /* ( YEAR NAME PARENT MACHINE INPUT INIT MONITOR, COMPANY, FULLNAME, FLAGS ) */ -GAME( 1985, perfrman, 0, perfrman, perfrman, driver_device, 0, ROT270, "Toaplan / Data East Corporation", "Performan (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, perfrmanu, perfrman, perfrman, perfrman, driver_device, 0, ROT270, "Toaplan / Data East USA", "Performan (US)", MACHINE_SUPPORTS_SAVE ) - -GAME( 1985, tigerh, 0, tigerh, tigerh, driver_device, 0, ROT270, "Toaplan / Taito America Corp.", "Tiger Heli (US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, tigerhj, tigerh, tigerh, tigerh, driver_device, 0, ROT270, "Toaplan / Taito", "Tiger Heli (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, tigerhb1, tigerh, tigerhb1, tigerh, driver_device, 0, ROT270, "bootleg", "Tiger Heli (bootleg set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, tigerhb2, tigerh, tigerhb2, tigerh, driver_device, 0, ROT270, "bootleg", "Tiger Heli (bootleg set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, tigerhb3, tigerh, tigerhb2, tigerh, driver_device, 0, ROT270, "bootleg", "Tiger Heli (bootleg set 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, perfrman, 0, perfrman, perfrman, slapfght_state, 0, ROT270, "Toaplan / Data East Corporation", "Performan (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, perfrmanu, perfrman, perfrman, perfrman, slapfght_state, 0, ROT270, "Toaplan / Data East USA", "Performan (US)", MACHINE_SUPPORTS_SAVE ) + +GAME( 1985, tigerh, 0, tigerh, tigerh, slapfght_state, 0, ROT270, "Toaplan / Taito America Corp.", "Tiger Heli (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, tigerhj, tigerh, tigerh, tigerh, slapfght_state, 0, ROT270, "Toaplan / Taito", "Tiger Heli (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, tigerhb1, tigerh, tigerhb1, tigerh, slapfght_state, 0, ROT270, "bootleg", "Tiger Heli (bootleg set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, tigerhb2, tigerh, tigerhb2, tigerh, slapfght_state, 0, ROT270, "bootleg", "Tiger Heli (bootleg set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, tigerhb3, tigerh, tigerhb2, tigerh, slapfght_state, 0, ROT270, "bootleg", "Tiger Heli (bootleg set 3)", MACHINE_SUPPORTS_SAVE ) GAME( 1986, alcon, 0, slapfigh, slapfigh, slapfght_state, slapfigh, ROT270, "Toaplan / Taito America Corp.", "Alcon (US)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL ) GAME( 1986, slapfigh, alcon, slapfigh, slapfigh, slapfght_state, slapfigh, ROT270, "Toaplan / Taito", "Slap Fight (Japan set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL ) diff --git a/src/mame/drivers/slapshot.cpp b/src/mame/drivers/slapshot.cpp index 450ec0de202..3df6aee37e3 100644 --- a/src/mame/drivers/slapshot.cpp +++ b/src/mame/drivers/slapshot.cpp @@ -461,7 +461,7 @@ void slapshot_state::machine_start() } -static MACHINE_CONFIG_START( slapshot, slapshot_state ) +static MACHINE_CONFIG_START( slapshot ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 14346000) /* 28.6860 MHz / 2 ??? */ @@ -521,7 +521,7 @@ static MACHINE_CONFIG_START( slapshot, slapshot_state ) MCFG_TC0140SYT_SLAVE_CPU("audiocpu") MACHINE_CONFIG_END -static MACHINE_CONFIG_START( opwolf3, slapshot_state ) +static MACHINE_CONFIG_START( opwolf3 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 14346000) /* 28.6860 MHz / 2 ??? */ @@ -697,6 +697,6 @@ DRIVER_INIT_MEMBER(slapshot_state,slapshot) } } -GAME( 1994, slapshot, 0, slapshot, slapshot, slapshot_state, slapshot, ROT0, "Taito Corporation", "Slap Shot (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, opwolf3, 0, opwolf3, opwolf3, slapshot_state, slapshot, ROT0, "Taito Corporation Japan", "Operation Wolf 3 (World)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, opwolf3u, opwolf3, opwolf3, opwolf3, slapshot_state, slapshot, ROT0, "Taito America Corporation", "Operation Wolf 3 (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, slapshot, 0, slapshot, slapshot, slapshot_state, slapshot, ROT0, "Taito Corporation", "Slap Shot (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, opwolf3, 0, opwolf3, opwolf3, slapshot_state, slapshot, ROT0, "Taito Corporation Japan", "Operation Wolf 3 (World)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, opwolf3u, opwolf3, opwolf3, opwolf3, slapshot_state, slapshot, ROT0, "Taito America Corporation", "Operation Wolf 3 (US)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/slc1.cpp b/src/mame/drivers/slc1.cpp index 692d48e2779..b97e8c2ab07 100644 --- a/src/mame/drivers/slc1.cpp +++ b/src/mame/drivers/slc1.cpp @@ -252,7 +252,7 @@ INPUT_PORTS_END ***************************************************************************/ -static MACHINE_CONFIG_START( slc1, slc1_state ) +static MACHINE_CONFIG_START( slc1 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 2500000) MCFG_CPU_PROGRAM_MAP(slc1_map) @@ -283,5 +283,5 @@ ROM_START(slc1) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ -COMP( 1989, slc1, 0, 0, slc1, slc1, driver_device, 0, "Dr. Dieter Scheuschner", "SLC-1" , 0 ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME */ +COMP( 1989, slc1, 0, 0, slc1, slc1, slc1_state, 0, "Dr. Dieter Scheuschner", "SLC-1" , 0 ) diff --git a/src/mame/drivers/sleic.cpp b/src/mame/drivers/sleic.cpp index c64c9ed8437..537706fd8fe 100644 --- a/src/mame/drivers/sleic.cpp +++ b/src/mame/drivers/sleic.cpp @@ -64,7 +64,7 @@ DRIVER_INIT_MEMBER(sleic_state,sleic) { } -static MACHINE_CONFIG_START( sleic, sleic_state ) +static MACHINE_CONFIG_START( sleic ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8088, 8000000) MCFG_CPU_PROGRAM_MAP(sleic_map) @@ -148,7 +148,7 @@ ROM_START(sleicpin) ROM_LOAD("sp02-1_1.rom", 0x00000, 0x80000, CRC(0e4851a0) SHA1(0692ee2df0b560e2013db9c03fd27c6eb12e618d)) ROM_END -GAME(1992, bikerace, 0, sleic, sleic, sleic_state, sleic, ROT0, "Sleic", "Bike Race", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1992, bikerace2, bikerace, sleic, sleic, sleic_state, sleic, ROT0, "Sleic", "Bike Race (2-ball play)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1993, sleicpin, 0, sleic, sleic, sleic_state, sleic, ROT0, "Sleic", "Sleic Pin Ball", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1994, iomoon, 0, sleic, sleic, sleic_state, sleic, ROT0, "Sleic", "Io Moon", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1992, bikerace, 0, sleic, sleic, sleic_state, sleic, ROT0, "Sleic", "Bike Race", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1992, bikerace2, bikerace, sleic, sleic, sleic_state, sleic, ROT0, "Sleic", "Bike Race (2-ball play)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1993, sleicpin, 0, sleic, sleic, sleic_state, sleic, ROT0, "Sleic", "Sleic Pin Ball", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1994, iomoon, 0, sleic, sleic, sleic_state, sleic, ROT0, "Sleic", "Io Moon", MACHINE_IS_SKELETON_MECHANICAL) diff --git a/src/mame/drivers/slicer.cpp b/src/mame/drivers/slicer.cpp index ce294cfcea4..62a9fbaed7e 100644 --- a/src/mame/drivers/slicer.cpp +++ b/src/mame/drivers/slicer.cpp @@ -17,16 +17,18 @@ class slicer_state : public driver_device { public: slicer_state(const machine_config &mconfig, device_type type, const char *tag) : - driver_device(mconfig, type, tag), - m_fdc(*this, "fdc"), - m_sasi(*this, "sasi") - {} - - required_device m_fdc; - required_device m_sasi; + driver_device(mconfig, type, tag), + m_fdc(*this, "fdc"), + m_sasi(*this, "sasi") + { + } DECLARE_WRITE8_MEMBER(sio_out_w); DECLARE_WRITE8_MEMBER(drive_sel_w); + +protected: + required_device m_fdc; + required_device m_sasi; }; WRITE8_MEMBER(slicer_state::sio_out_w) @@ -49,17 +51,17 @@ WRITE8_MEMBER(slicer_state::drive_sel_w) data &= 1; switch(offset) { - case 0: - m_sasi->write_sel(data); - break; - case 1: - m_sasi->write_rst(data); - break; - case 7: - m_fdc->dden_w(data); - break; - - default: + case 0: + m_sasi->write_sel(data); + break; + case 1: + m_sasi->write_rst(data); + break; + case 7: + m_fdc->dden_w(data); + break; + + default: { floppy_image_device *floppy; char devname[8]; @@ -82,7 +84,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( slicer_io, AS_IO, 16, slicer_state ) ADDRESS_MAP_UNMAP_HIGH - AM_RANGE(0x0000, 0x007f) AM_DEVREADWRITE8("fdc", fd1797_t, read, write, 0x00ff) //PCS0 + AM_RANGE(0x0000, 0x007f) AM_DEVREADWRITE8("fdc", fd1797_device, read, write, 0x00ff) //PCS0 AM_RANGE(0x0080, 0x00ff) AM_DEVREADWRITE8("sc2681", mc68681_device, read, write, 0x00ff) //PCS1 AM_RANGE(0x0100, 0x017f) AM_WRITE8(drive_sel_w, 0x00ff) //PCS2 // TODO: 0x180 sets ack @@ -97,7 +99,7 @@ static SLOT_INTERFACE_START( slicer_floppies ) SLOT_INTERFACE("8dsdd", FLOPPY_8_DSDD) SLOT_INTERFACE_END -static MACHINE_CONFIG_START( slicer, slicer_state ) +static MACHINE_CONFIG_START( slicer ) MCFG_CPU_ADD("maincpu", I80186, XTAL_16MHz / 2) MCFG_CPU_PROGRAM_MAP(slicer_map) MCFG_CPU_IO_MAP(slicer_io) @@ -140,4 +142,4 @@ ROM_START( slicer ) ROM_LOAD("epbios.bin", 0x0000, 0x8001, CRC(96fe9dd4) SHA1(5fc43454fe7d51f2ae97aef822155dcd28eb7f23)) ROM_END -COMP( 1983, slicer, 0, 0, slicer, 0, driver_device, 0, "Slicer Computers", "Slicer", MACHINE_NO_SOUND) +COMP( 1983, slicer, 0, 0, slicer, 0, slicer_state, 0, "Slicer Computers", "Slicer", MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/sliver.cpp b/src/mame/drivers/sliver.cpp index f56192b1537..2cbe6e48a5b 100644 --- a/src/mame/drivers/sliver.cpp +++ b/src/mame/drivers/sliver.cpp @@ -503,7 +503,7 @@ TIMER_DEVICE_CALLBACK_MEMBER ( sliver_state::obj_irq_cb ) m_maincpu->set_input_line(3, HOLD_LINE); } -static MACHINE_CONFIG_START( sliver, sliver_state ) +static MACHINE_CONFIG_START( sliver ) MCFG_CPU_ADD("maincpu", M68000, 12000000) MCFG_CPU_PROGRAM_MAP(sliver_map) MCFG_CPU_VBLANK_INT_DRIVER("screen", sliver_state, irq4_line_hold) @@ -529,7 +529,7 @@ static MACHINE_CONFIG_START( sliver, sliver_state ) MCFG_GENERIC_LATCH_8_ADD("soundlatch") - MCFG_OKIM6295_ADD("oki", 1000000, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", 1000000, PIN7_HIGH) MCFG_DEVICE_ADDRESS_MAP(AS_0, oki_map) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.6) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.6) @@ -584,5 +584,5 @@ ROM_START( slivera ) ROM_END -GAME( 1996, sliver, 0, sliver, sliver, driver_device, 0, ROT0, "Hollow Corp", "Sliver (set 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1996, slivera, sliver, sliver, sliver, driver_device, 0, ROT0, "Hollow Corp", "Sliver (set 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1996, sliver, 0, sliver, sliver, sliver_state, 0, ROT0, "Hollow Corp", "Sliver (set 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1996, slivera, sliver, sliver, sliver, sliver_state, 0, ROT0, "Hollow Corp", "Sliver (set 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/slotcarn.cpp b/src/mame/drivers/slotcarn.cpp index d9552c2a898..8d3427836e8 100644 --- a/src/mame/drivers/slotcarn.cpp +++ b/src/mame/drivers/slotcarn.cpp @@ -535,7 +535,7 @@ void slotcarn_state::machine_start() * Machine Driver * ***********************************/ -static MACHINE_CONFIG_START( slotcarn, slotcarn_state ) +static MACHINE_CONFIG_START( slotcarn ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, CPU_CLOCK) // 2.5 Mhz? @@ -699,8 +699,8 @@ ROM_END /********************************************* * Game Drivers * -********************************************** +**********************************************/ - YEAR NAME PARENT MACHINE INPUT INIT ROT COMPANY FULLNAME FLAGS */ -GAME( 1985, slotcarn, 0, slotcarn, slotcarn, driver_device, 0, ROT0, "Wing Co., Ltd.", "Slot Carnival", MACHINE_NOT_WORKING ) -GAME( 1985, spielbud, 0, slotcarn, spielbud, driver_device, 0, ROT0, "ADP", "Spiel Bude (German)", MACHINE_NOT_WORKING ) +// YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS +GAME( 1985, slotcarn, 0, slotcarn, slotcarn, slotcarn_state, 0, ROT0, "Wing Co., Ltd.", "Slot Carnival", MACHINE_NOT_WORKING ) +GAME( 1985, spielbud, 0, slotcarn, spielbud, slotcarn_state, 0, ROT0, "ADP", "Spiel Bude (German)", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/sm1800.cpp b/src/mame/drivers/sm1800.cpp index c753cd46f16..97af4a198d0 100644 --- a/src/mame/drivers/sm1800.cpp +++ b/src/mame/drivers/sm1800.cpp @@ -153,7 +153,7 @@ static GFXDECODE_START( sm1800 ) GFXDECODE_END -static MACHINE_CONFIG_START( sm1800, sm1800_state ) +static MACHINE_CONFIG_START( sm1800 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",I8080, XTAL_2MHz) MCFG_CPU_PROGRAM_MAP(sm1800_mem) @@ -198,5 +198,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( ????, sm1800, 0, 0, sm1800, sm1800, driver_device, 0, "", "SM1800", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +COMP( ????, sm1800, 0, 0, sm1800, sm1800, sm1800_state, 0, "", "SM1800", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) diff --git a/src/mame/drivers/sm7238.cpp b/src/mame/drivers/sm7238.cpp index 26b543257ae..23f055a37a3 100644 --- a/src/mame/drivers/sm7238.cpp +++ b/src/mame/drivers/sm7238.cpp @@ -332,7 +332,7 @@ PALETTE_INIT_MEMBER(sm7238_state, sm7238) palette.set_pen_color(2, 0x00, 0xff, 0x00); // highlight } -static MACHINE_CONFIG_START( sm7238, sm7238_state ) +static MACHINE_CONFIG_START( sm7238 ) MCFG_CPU_ADD("maincpu", I8080, XTAL_16_5888MHz/9) MCFG_CPU_PROGRAM_MAP(sm7238_mem) MCFG_CPU_IO_MAP(sm7238_io) @@ -422,5 +422,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1989, sm7238, 0, 0, sm7238, 0, driver_device, 0, "USSR", "SM 7238", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_KEYBOARD) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1989, sm7238, 0, 0, sm7238, 0, sm7238_state, 0, "USSR", "SM 7238", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_KEYBOARD) diff --git a/src/mame/drivers/smc777.cpp b/src/mame/drivers/smc777.cpp index 1f62cd90fba..d1d4634bc46 100644 --- a/src/mame/drivers/smc777.cpp +++ b/src/mame/drivers/smc777.cpp @@ -54,15 +54,15 @@ class smc777_state : public driver_device { public: smc777_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag), - m_maincpu(*this, "maincpu"), - m_crtc(*this, "crtc"), - m_fdc(*this, "fdc"), - m_floppy0(*this, "fdc:0"), - m_floppy1(*this, "fdc:1"), - m_beeper(*this, "beeper"), - m_gfxdecode(*this, "gfxdecode"), - m_palette(*this, "palette") + : driver_device(mconfig, type, tag) + , m_maincpu(*this, "maincpu") + , m_crtc(*this, "crtc") + , m_fdc(*this, "fdc") + , m_floppy0(*this, "fdc:0") + , m_floppy1(*this, "fdc:1") + , m_beeper(*this, "beeper") + , m_gfxdecode(*this, "gfxdecode") + , m_palette(*this, "palette") { } DECLARE_WRITE8_MEMBER(mc6845_w); @@ -107,7 +107,7 @@ protected: private: required_device m_maincpu; required_device m_crtc; - required_device m_fdc; + required_device m_fdc; required_device m_floppy0; required_device m_floppy1; required_device m_beeper; @@ -963,7 +963,7 @@ static SLOT_INTERFACE_START( smc777_floppies ) SLOT_INTERFACE_END -static MACHINE_CONFIG_START( smc777, smc777_state ) +static MACHINE_CONFIG_START( smc777 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80, MASTER_CLOCK) MCFG_CPU_PROGRAM_MAP(smc777_mem) @@ -1026,5 +1026,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1983, smc777, 0, 0, smc777, smc777, driver_device, 0, "Sony", "SMC-777", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1983, smc777, 0, 0, smc777, smc777, smc777_state, 0, "Sony", "SMC-777", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND) diff --git a/src/mame/drivers/sms.cpp b/src/mame/drivers/sms.cpp index 7ece8832ef7..70aae875a66 100644 --- a/src/mame/drivers/sms.cpp +++ b/src/mame/drivers/sms.cpp @@ -486,7 +486,7 @@ static INPUT_PORTS_START( gg ) INPUT_PORTS_END -static MACHINE_CONFIG_START( sms_base, sms_state ) +static MACHINE_CONFIG_START( sms_base ) MCFG_MACHINE_START_OVERRIDE(sms_state,sms) MCFG_MACHINE_RESET_OVERRIDE(sms_state,sms) @@ -537,33 +537,33 @@ MACHINE_CONFIG_END #define MCFG_SCREEN_SMS_PAL_RAW_PARAMS(_pixelclock) \ MCFG_SCREEN_RAW_PARAMS(_pixelclock, \ - SEGA315_5124_WIDTH, \ - SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH - 2, \ - SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH + 256 + 10, \ - SEGA315_5124_HEIGHT_PAL, \ - SEGA315_5124_TBORDER_START + SEGA315_5124_PAL_240_TBORDER_HEIGHT, \ - SEGA315_5124_TBORDER_START + SEGA315_5124_PAL_240_TBORDER_HEIGHT + 240) \ - MCFG_SCREEN_REFRESH_RATE((double) _pixelclock / (SEGA315_5124_WIDTH * SEGA315_5124_HEIGHT_PAL)) + sega315_5124_device::WIDTH, \ + sega315_5124_device::LBORDER_START + sega315_5124_device::LBORDER_WIDTH - 2, \ + sega315_5124_device::LBORDER_START + sega315_5124_device::LBORDER_WIDTH + 256 + 10, \ + sega315_5124_device::HEIGHT_PAL, \ + sega315_5124_device::TBORDER_START + sega315_5124_device::PAL_240_TBORDER_HEIGHT, \ + sega315_5124_device::TBORDER_START + sega315_5124_device::PAL_240_TBORDER_HEIGHT + 240) \ + MCFG_SCREEN_REFRESH_RATE((double) _pixelclock / (sega315_5124_device::WIDTH * sega315_5124_device::HEIGHT_PAL)) #define MCFG_SCREEN_SMS_NTSC_RAW_PARAMS(_pixelclock) \ MCFG_SCREEN_RAW_PARAMS(_pixelclock, \ - SEGA315_5124_WIDTH, \ - SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH - 2, \ - SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH + 256 + 10, \ - SEGA315_5124_HEIGHT_NTSC, \ - SEGA315_5124_TBORDER_START + SEGA315_5124_NTSC_224_TBORDER_HEIGHT, \ - SEGA315_5124_TBORDER_START + SEGA315_5124_NTSC_224_TBORDER_HEIGHT + 224) \ - MCFG_SCREEN_REFRESH_RATE((double) _pixelclock / (SEGA315_5124_WIDTH * SEGA315_5124_HEIGHT_NTSC)) + sega315_5124_device::WIDTH, \ + sega315_5124_device::LBORDER_START + sega315_5124_device::LBORDER_WIDTH - 2, \ + sega315_5124_device::LBORDER_START + sega315_5124_device::LBORDER_WIDTH + 256 + 10, \ + sega315_5124_device::HEIGHT_NTSC, \ + sega315_5124_device::TBORDER_START + sega315_5124_device::NTSC_224_TBORDER_HEIGHT, \ + sega315_5124_device::TBORDER_START + sega315_5124_device::NTSC_224_TBORDER_HEIGHT + 224) \ + MCFG_SCREEN_REFRESH_RATE((double) _pixelclock / (sega315_5124_device::WIDTH * sega315_5124_device::HEIGHT_NTSC)) #define MCFG_SCREEN_GG_RAW_PARAMS(_pixelclock) \ MCFG_SCREEN_RAW_PARAMS(_pixelclock, \ - SEGA315_5124_WIDTH, \ - SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH + 6*8, \ - SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH + 26*8, \ - SEGA315_5124_HEIGHT_NTSC, \ - SEGA315_5124_TBORDER_START + SEGA315_5124_NTSC_192_TBORDER_HEIGHT + 3*8, \ - SEGA315_5124_TBORDER_START + SEGA315_5124_NTSC_192_TBORDER_HEIGHT + 21*8 ) \ - MCFG_SCREEN_REFRESH_RATE((double) _pixelclock / (SEGA315_5124_WIDTH * SEGA315_5124_HEIGHT_NTSC)) + sega315_5124_device::WIDTH, \ + sega315_5124_device::LBORDER_START + sega315_5124_device::LBORDER_WIDTH + 6*8, \ + sega315_5124_device::LBORDER_START + sega315_5124_device::LBORDER_WIDTH + 26*8, \ + sega315_5124_device::HEIGHT_NTSC, \ + sega315_5124_device::TBORDER_START + sega315_5124_device::NTSC_192_TBORDER_HEIGHT + 3*8, \ + sega315_5124_device::TBORDER_START + sega315_5124_device::NTSC_192_TBORDER_HEIGHT + 21*8 ) \ + MCFG_SCREEN_REFRESH_RATE((double) _pixelclock / (sega315_5124_device::WIDTH * sega315_5124_device::HEIGHT_NTSC)) static MACHINE_CONFIG_DERIVED( sms2_ntsc, sms_ntsc_base ) @@ -616,7 +616,7 @@ static MACHINE_CONFIG_DERIVED( sms1_ntsc, sms_ntsc_base ) MCFG_SMS_EXPANSION_ADD("smsexp", sms_expansion_devices, nullptr) MACHINE_CONFIG_END -static MACHINE_CONFIG_DERIVED_CLASS( sms_sdisp, sms1_ntsc, smssdisp_state ) +static MACHINE_CONFIG_DERIVED( sms_sdisp, sms1_ntsc ) MCFG_DEVICE_MODIFY("sms_vdp") MCFG_SEGA315_5124_INT_CB(WRITELINE(smssdisp_state, sms_store_int_callback)) @@ -917,7 +917,7 @@ static MACHINE_CONFIG_DERIVED( sg1000m3, sms1_ntsc ) MCFG_SMS_CONTROL_PORT_TH_INPUT_HANDLER(NOOP) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( gamegear, sms_state ) +static MACHINE_CONFIG_START( gamegear ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, MASTER_CLOCK_GG/9) MCFG_CPU_PROGRAM_MAP(sms_mem) diff --git a/src/mame/drivers/sms_bootleg.cpp b/src/mame/drivers/sms_bootleg.cpp index 7fa9a6f3412..5d83d8145d6 100644 --- a/src/mame/drivers/sms_bootleg.cpp +++ b/src/mame/drivers/sms_bootleg.cpp @@ -159,7 +159,7 @@ ADDRESS_MAP_END -static MACHINE_CONFIG_START( sms_supergame, smsbootleg_state ) +static MACHINE_CONFIG_START( sms_supergame ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_10_738635MHz/3) MCFG_CPU_PROGRAM_MAP(sms_supergame_map) @@ -178,9 +178,9 @@ static MACHINE_CONFIG_START( sms_supergame, smsbootleg_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(XTAL_10_738635MHz/2, \ - SEGA315_5124_WIDTH , SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH - 2, SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH + 256 + 10, \ - SEGA315_5124_HEIGHT_NTSC, SEGA315_5124_TBORDER_START + SEGA315_5124_NTSC_224_TBORDER_HEIGHT, SEGA315_5124_TBORDER_START + SEGA315_5124_NTSC_224_TBORDER_HEIGHT + 224) - MCFG_SCREEN_REFRESH_RATE((double) XTAL_10_738635MHz/2 / (SEGA315_5124_WIDTH * SEGA315_5124_HEIGHT_NTSC)) + sega315_5124_device::WIDTH , sega315_5124_device::LBORDER_START + sega315_5124_device::LBORDER_WIDTH - 2, sega315_5124_device::LBORDER_START + sega315_5124_device::LBORDER_WIDTH + 256 + 10, \ + sega315_5124_device::HEIGHT_NTSC, sega315_5124_device::TBORDER_START + sega315_5124_device::NTSC_224_TBORDER_HEIGHT, sega315_5124_device::TBORDER_START + sega315_5124_device::NTSC_224_TBORDER_HEIGHT + 224) + MCFG_SCREEN_REFRESH_RATE((double) XTAL_10_738635MHz/2 / (sega315_5124_device::WIDTH * sega315_5124_device::HEIGHT_NTSC)) MCFG_SCREEN_UPDATE_DRIVER(sms_state, screen_update_sms) MCFG_DEVICE_ADD("sms_vdp", SEGA315_5246, 0) diff --git a/src/mame/drivers/smsmcorp.cpp b/src/mame/drivers/smsmcorp.cpp index ffcf08257a9..7eb2ced7cb8 100644 --- a/src/mame/drivers/smsmcorp.cpp +++ b/src/mame/drivers/smsmcorp.cpp @@ -533,7 +533,7 @@ void smsmfg_state::machine_reset() m_communication_port_status = 0; } -static MACHINE_CONFIG_START( sms, smsmfg_state ) +static MACHINE_CONFIG_START( sms ) MCFG_CPU_ADD("maincpu", I8088, XTAL_24MHz/8) MCFG_CPU_PROGRAM_MAP(sms_map) @@ -909,7 +909,7 @@ ROM_START( secondch ) ROM_RELOAD( 0x1000, 0x1000 ) ROM_END -GAME( 1984, trvhang, 0, sms, sms, driver_device, 0, ROT0, "SMS Manufacturing Corp.", "Trivia Hangup (question set 1)", MACHINE_SUPPORTS_SAVE ) /* Version Trivia-1-050185 */ -GAME( 1984, trvhanga, 0, sms, sms, driver_device, 0, ROT0, "SMS Manufacturing Corp.", "Trivia Hangup (question set 2)", MACHINE_NOT_WORKING ) /* Version Trivia-2-011586 */ -GAME( 1985, sureshot, 0, sureshot, sms, driver_device, 0, ROT0, "SMS Manufacturing Corp.", "Sure Shot", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, secondch, 0, sureshot, sms, driver_device, 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/snes.cpp b/src/mame/drivers/snes.cpp index f4b37f7b05e..975de6f953e 100644 --- a/src/mame/drivers/snes.cpp +++ b/src/mame/drivers/snes.cpp @@ -1167,8 +1167,8 @@ SNESCTRL_GUNLATCH_CB(snes_console_state::gun_latch_cb) if (y < 0) y = 0; - if (y > (m_ppu->m_beam.last_visible_line - 1)) - y = m_ppu->m_beam.last_visible_line - 1; + if (y > (m_ppu->last_visible_line() - 1)) + y = m_ppu->last_visible_line() - 1; // m_ppu->set_latch_hv(x, y); // it would be more accurate to write twice to WRIO register, first with bit7 = 0 and then with bit7 = 1 m_ppu->set_latch_hv(m_ppu->current_x(), m_ppu->current_y()); @@ -1178,7 +1178,7 @@ SNESCTRL_ONSCREEN_CB(snes_console_state::onscreen_cb) { // these are the theoretical boundaries, but we currently are always onscreen due to the // way IPT_LIGHTGUNs work... investigate more on this! - if (x < 0 || x >= SNES_SCR_WIDTH || y < 0 || y >= m_ppu->m_beam.last_visible_line) + if (x < 0 || x >= SNES_SCR_WIDTH || y < 0 || y >= m_ppu->last_visible_line()) return false; else return true; @@ -1325,7 +1325,7 @@ void snes_console_state::machine_reset() } -static MACHINE_CONFIG_START( snes, snes_console_state ) +static MACHINE_CONFIG_START( snes ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", _5A22, MCLK_NTSC) /* 2.68 MHz, also 3.58 MHz */ @@ -1395,6 +1395,6 @@ ROM_END * *************************************/ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -CONS( 1989, snes, 0, 0, snes, snes, driver_device, 0, "Nintendo", "Super Nintendo Entertainment System / Super Famicom (NTSC)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -CONS( 1991, snespal, snes, 0, snespal, snes, driver_device, 0, "Nintendo", "Super Nintendo Entertainment System (PAL)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +CONS( 1989, snes, 0, 0, snes, snes, snes_console_state, 0, "Nintendo", "Super Nintendo Entertainment System / Super Famicom (NTSC)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +CONS( 1991, snespal, snes, 0, snespal, snes, snes_console_state, 0, "Nintendo", "Super Nintendo Entertainment System (PAL)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/snesb.cpp b/src/mame/drivers/snesb.cpp index 9180ad2f9a0..8bf30ffffad 100644 --- a/src/mame/drivers/snesb.cpp +++ b/src/mame/drivers/snesb.cpp @@ -683,7 +683,7 @@ static INPUT_PORTS_START( endless ) INPUT_PORTS_END -static MACHINE_CONFIG_START( kinstb, snesb_state ) +static MACHINE_CONFIG_START( kinstb ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", _5A22, 3580000*6) /* 2.68Mhz, also 3.58Mhz */ @@ -1137,10 +1137,10 @@ ROM_END -GAME( 199?, kinstb, 0, kinstb, kinstb, snesb_state, kinstb, ROT0, "bootleg", "Killer Instinct (SNES bootleg)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 199?, mk3snes, 0, mk3snes, kinstb, snesb_state, mk3snes, ROT0, "bootleg", "Mortal Kombat 3 (SNES bootleg)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 199?, kinstb, 0, kinstb, kinstb, snesb_state, kinstb, ROT0, "bootleg", "Killer Instinct (SNES bootleg)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 199?, mk3snes, 0, mk3snes, kinstb, snesb_state, mk3snes, ROT0, "bootleg", "Mortal Kombat 3 (SNES bootleg)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) GAME( 1996, ffight2b, 0, ffight2b, ffight2b, snesb_state, ffight2b, ROT0, "bootleg", "Final Fight 2 (SNES bootleg)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1996, iron, 0, kinstb, iron, snesb_state, iron, ROT0, "bootleg", "Iron (SNES bootleg)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1996, denseib, 0, kinstb, denseib, snesb_state, denseib, ROT0, "bootleg", "Ghost Chaser Densei (SNES bootleg)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1996, iron, 0, kinstb, iron, snesb_state, iron, ROT0, "bootleg", "Iron (SNES bootleg)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1996, denseib, 0, kinstb, denseib, snesb_state, denseib, ROT0, "bootleg", "Ghost Chaser Densei (SNES bootleg)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) GAME( 1997, sblast2b, 0, kinstb, sblast2b, snesb_state, sblast2b, ROT0, "bootleg", "Sonic Blast Man 2 Special Turbo (SNES bootleg)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS) -GAME( 1996, endless, 0, kinstb, endless, snesb_state, endless, ROT0, "bootleg", "Gundam Wing: Endless Duel (SNES bootleg)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1996, endless, 0, kinstb, endless, snesb_state, endless, ROT0, "bootleg", "Gundam Wing: Endless Duel (SNES bootleg)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) diff --git a/src/mame/drivers/snk.cpp b/src/mame/drivers/snk.cpp index 1ba2d83a3e4..36e7e3d05a3 100644 --- a/src/mame/drivers/snk.cpp +++ b/src/mame/drivers/snk.cpp @@ -3608,7 +3608,7 @@ GFXDECODE_END /**********************************************************************/ -static MACHINE_CONFIG_START( marvins, snk_state ) +static MACHINE_CONFIG_START( marvins ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 3360000) /* 3.36 MHz */ @@ -3680,7 +3680,7 @@ static MACHINE_CONFIG_DERIVED( madcrush, marvins ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( jcross, snk_state ) +static MACHINE_CONFIG_START( jcross ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 3350000) /* NOT verified */ @@ -3763,7 +3763,7 @@ static MACHINE_CONFIG_DERIVED( hal21, jcross ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( tnk3, snk_state ) +static MACHINE_CONFIG_START( tnk3 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_13_4MHz/4) /* verified on pcb */ @@ -3855,7 +3855,7 @@ static MACHINE_CONFIG_DERIVED( fitegolf2, fitegolf ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( ikari, snk_state ) +static MACHINE_CONFIG_START( ikari ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_13_4MHz/4) /* verified on pcb */ @@ -3914,7 +3914,7 @@ static MACHINE_CONFIG_DERIVED( victroad, ikari ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( bermudat, snk_state ) +static MACHINE_CONFIG_START( bermudat ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_8MHz/2) /* verified on pcb */ @@ -4012,7 +4012,7 @@ static MACHINE_CONFIG_DERIVED( choppera, chopper1 ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( tdfever, snk_state ) +static MACHINE_CONFIG_START( tdfever ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 4000000) @@ -6395,57 +6395,57 @@ DRIVER_INIT_MEMBER(snk_state,countryc) -GAME( 1983, marvins, 0, marvins, marvins, driver_device, 0, ROT270, "SNK", "Marvin's Maze", 0 ) -GAME( 1984, vangrd2, 0, vangrd2, vangrd2, driver_device, 0, ROT270, "SNK", "Vanguard II", 0 ) -GAME( 1984, madcrash, 0, vangrd2, madcrash, driver_device, 0, ROT0, "SNK", "Mad Crasher", 0 ) -GAME( 1984, madcrush, madcrash, madcrush, madcrash, driver_device, 0, ROT0, "SNK", "Mad Crusher (Japan)", 0 ) - -GAME( 1984, jcross, 0, jcross, jcross, driver_device, 0, ROT270, "SNK", "Jumping Cross (set 1)", 0 ) -GAME( 1984, jcrossa, jcross, jcross, jcross, driver_device, 0, ROT270, "SNK", "Jumping Cross (set 2)", 0 ) -GAME( 1984, sgladiat, 0, sgladiat, sgladiat, driver_device, 0, ROT0, "SNK", "Gladiator 1984", 0 ) -GAME( 1985, hal21, 0, hal21, hal21, driver_device, 0, ROT270, "SNK", "HAL21", 0 ) -GAME( 1985, hal21j, hal21, hal21, hal21, driver_device, 0, ROT270, "SNK", "HAL21 (Japan)", 0 ) - -GAME( 1985, aso, 0, aso, aso, driver_device, 0, ROT270, "SNK", "ASO - Armored Scrum Object", 0 ) -GAME( 1985, alphamis, aso, aso, alphamis, driver_device, 0, ROT270, "SNK", "Alpha Mission", 0 ) -GAME( 1985, arian, aso, aso, alphamis, driver_device, 0, ROT270, "SNK", "Arian Mission", 0 ) -GAME( 1985, tnk3, 0, tnk3, tnk3, driver_device, 0, ROT270, "SNK", "T.N.K III (US)", 0 ) -GAME( 1985, tnk3j, tnk3, tnk3, tnk3, driver_device, 0, ROT270, "SNK", "T.A.N.K (Japan)", 0 ) -GAME( 1986, athena, 0, athena, athena, driver_device, 0, ROT0, "SNK", "Athena", 0 ) -GAME( 1988, fitegolf, 0, fitegolf, fitegolf, driver_device, 0, ROT0, "SNK", "Fighting Golf (World?)", 0 ) -GAME( 1988, fitegolfu,fitegolf, fitegolf, fitegolfu, driver_device,0, ROT0, "SNK", "Fighting Golf (US)", 0 ) -GAME( 1988, fitegolf2,fitegolf, fitegolf2,fitegolfu, driver_device,0, ROT0, "SNK", "Fighting Golf (US, Ver 2)", 0 ) -GAME( 1988, countryc, 0, fitegolf, countryc, snk_state, countryc, ROT0, "SNK", "Country Club", 0 ) - -GAME( 1986, ikari, 0, ikari, ikari, driver_device, 0, ROT270, "SNK", "Ikari Warriors (US JAMMA)", 0 ) // distributed by Tradewest(?) -GAME( 1986, ikaria, ikari, ikari, ikaria, driver_device, 0, ROT270, "SNK", "Ikari Warriors (US)", 0 ) // distributed by Tradewest(?) -GAME( 1986, ikarinc, ikari, ikari, ikarinc, driver_device, 0, ROT270, "SNK", "Ikari Warriors (US No Continues)", 0 ) // distributed by Tradewest(?) -GAME( 1986, ikarijp, ikari, ikari, ikarinc, driver_device, 0, ROT270, "SNK", "Ikari (Japan No Continues)", 0 ) -GAME( 1986, ikarijpb, ikari, ikari, ikarijpb, driver_device, 0, ROT270, "bootleg", "Ikari (Joystick hack bootleg)", 0 ) -GAME( 1986, ikariram, ikari, ikari, ikarijpb, driver_device, 0, ROT270, "bootleg", "Rambo 3 (bootleg of Ikari, Joystick hack)", 0 ) -GAME( 1986, victroad, 0, victroad, victroad, driver_device, 0, ROT270, "SNK", "Victory Road", 0 ) -GAME( 1986, dogosoke, victroad, victroad, victroad, driver_device, 0, ROT270, "SNK", "Dogou Souken", 0 ) -GAME( 1986, dogosokb, victroad, victroad, dogosokb, driver_device, 0, ROT270, "bootleg", "Dogou Souken (Joystick hack bootleg)", 0 ) - -GAME( 1987, bermudat, 0, bermudat, bermudat, driver_device, 0, ROT270, "SNK", "Bermuda Triangle (World?)", 0 ) -GAME( 1987, bermudatj,bermudat, bermudat, bermudat, driver_device, 0, ROT270, "SNK", "Bermuda Triangle (Japan)", 0 ) -GAME( 1987, worldwar, 0, bermudat, worldwar, driver_device, 0, ROT270, "SNK", "World Wars (World?)", 0 ) -GAME( 1987, bermudata,worldwar, bermudat, bermudaa, driver_device, 0, ROT270, "SNK", "Bermuda Triangle (World Wars) (US)", 0 ) -GAME( 1987, psychos, 0, psychos, psychos, driver_device, 0, ROT0, "SNK", "Psycho Soldier (US)", 0 ) -GAME( 1987, psychosj, psychos, psychos, psychos, driver_device, 0, ROT0, "SNK", "Psycho Soldier (Japan)", 0 ) -GAME( 1987, gwar, 0, gwar, gwar, driver_device, 0, ROT270, "SNK", "Guerrilla War (US)", 0 ) -GAME( 1987, gwarj, gwar, gwar, gwar, driver_device, 0, ROT270, "SNK", "Guevara (Japan)", 0 ) -GAME( 1987, gwara, gwar, gwara, gwar, driver_device, 0, ROT270, "SNK", "Guerrilla War (Version 1)", 0 ) -GAME( 1987, gwarb, gwar, gwar, gwarb, driver_device, 0, ROT270, "bootleg", "Guerrilla War (Joystick hack bootleg)", 0 ) -GAME( 1988, chopper, 0, chopper1, chopper, driver_device, 0, ROT270, "SNK", "Chopper I (US set 1)", 0 ) -GAME( 1988, choppera, chopper, choppera, choppera, driver_device, 0, ROT270, "SNK", "Chopper I (US set 2)", 0 ) -GAME( 1988, chopperb, chopper, chopper1, chopper, driver_device, 0, ROT270, "SNK", "Chopper I (US set 3)", 0 ) -GAME( 1988, legofair, chopper, chopper1, chopper, driver_device, 0, ROT270, "SNK", "Koukuu Kihei Monogatari - The Legend of Air Cavalry (Japan)", 0 ) - -GAME( 1987, tdfever, 0, tdfever, tdfever, driver_device, 0, ROT90, "SNK", "TouchDown Fever (US)", 0 ) -GAME( 1987, tdfeverj, tdfever, tdfever, tdfever, driver_device, 0, ROT90, "SNK", "TouchDown Fever (Japan)", 0 ) -GAME( 1988, tdfever2, tdfever, tdfever2, tdfever, driver_device, 0, ROT90, "SNK", "TouchDown Fever 2", 0 ) /* upgrade kit for Touchdown Fever */ -GAME( 1988, fsoccer, 0, tdfever2, fsoccer, driver_device, 0, ROT0, "SNK", "Fighting Soccer (version 4)", 0 ) -GAME( 1988, fsoccerj, fsoccer, tdfever2, fsoccer, driver_device, 0, ROT0, "SNK", "Fighting Soccer (Japan)", 0 ) -GAME( 1988, fsoccerb, fsoccer, tdfever2, fsoccerb, driver_device, 0, ROT0, "bootleg", "Fighting Soccer (Joystick hack bootleg)", 0 ) -GAME( 1988, fsoccerba,fsoccer, tdfever2, fsoccerb, driver_device, 0, ROT0, "bootleg", "Fighting Soccer (Joystick hack bootleg, alt)", 0 ) +GAME( 1983, marvins, 0, marvins, marvins, snk_state, 0, ROT270, "SNK", "Marvin's Maze", 0 ) +GAME( 1984, vangrd2, 0, vangrd2, vangrd2, snk_state, 0, ROT270, "SNK", "Vanguard II", 0 ) +GAME( 1984, madcrash, 0, vangrd2, madcrash, snk_state, 0, ROT0, "SNK", "Mad Crasher", 0 ) +GAME( 1984, madcrush, madcrash, madcrush, madcrash, snk_state, 0, ROT0, "SNK", "Mad Crusher (Japan)", 0 ) + +GAME( 1984, jcross, 0, jcross, jcross, snk_state, 0, ROT270, "SNK", "Jumping Cross (set 1)", 0 ) +GAME( 1984, jcrossa, jcross, jcross, jcross, snk_state, 0, ROT270, "SNK", "Jumping Cross (set 2)", 0 ) +GAME( 1984, sgladiat, 0, sgladiat, sgladiat, snk_state, 0, ROT0, "SNK", "Gladiator 1984", 0 ) +GAME( 1985, hal21, 0, hal21, hal21, snk_state, 0, ROT270, "SNK", "HAL21", 0 ) +GAME( 1985, hal21j, hal21, hal21, hal21, snk_state, 0, ROT270, "SNK", "HAL21 (Japan)", 0 ) + +GAME( 1985, aso, 0, aso, aso, snk_state, 0, ROT270, "SNK", "ASO - Armored Scrum Object", 0 ) +GAME( 1985, alphamis, aso, aso, alphamis, snk_state, 0, ROT270, "SNK", "Alpha Mission", 0 ) +GAME( 1985, arian, aso, aso, alphamis, snk_state, 0, ROT270, "SNK", "Arian Mission", 0 ) +GAME( 1985, tnk3, 0, tnk3, tnk3, snk_state, 0, ROT270, "SNK", "T.N.K III (US)", 0 ) +GAME( 1985, tnk3j, tnk3, tnk3, tnk3, snk_state, 0, ROT270, "SNK", "T.A.N.K (Japan)", 0 ) +GAME( 1986, athena, 0, athena, athena, snk_state, 0, ROT0, "SNK", "Athena", 0 ) +GAME( 1988, fitegolf, 0, fitegolf, fitegolf, snk_state, 0, ROT0, "SNK", "Fighting Golf (World?)", 0 ) +GAME( 1988, fitegolfu, fitegolf, fitegolf, fitegolfu, snk_state, 0, ROT0, "SNK", "Fighting Golf (US)", 0 ) +GAME( 1988, fitegolf2, fitegolf, fitegolf2, fitegolfu, snk_state, 0, ROT0, "SNK", "Fighting Golf (US, Ver 2)", 0 ) +GAME( 1988, countryc, 0, fitegolf, countryc, snk_state, countryc, ROT0, "SNK", "Country Club", 0 ) + +GAME( 1986, ikari, 0, ikari, ikari, snk_state, 0, ROT270, "SNK", "Ikari Warriors (US JAMMA)", 0 ) // distributed by Tradewest(?) +GAME( 1986, ikaria, ikari, ikari, ikaria, snk_state, 0, ROT270, "SNK", "Ikari Warriors (US)", 0 ) // distributed by Tradewest(?) +GAME( 1986, ikarinc, ikari, ikari, ikarinc, snk_state, 0, ROT270, "SNK", "Ikari Warriors (US No Continues)", 0 ) // distributed by Tradewest(?) +GAME( 1986, ikarijp, ikari, ikari, ikarinc, snk_state, 0, ROT270, "SNK", "Ikari (Japan No Continues)", 0 ) +GAME( 1986, ikarijpb, ikari, ikari, ikarijpb, snk_state, 0, ROT270, "bootleg", "Ikari (Joystick hack bootleg)", 0 ) +GAME( 1986, ikariram, ikari, ikari, ikarijpb, snk_state, 0, ROT270, "bootleg", "Rambo 3 (bootleg of Ikari, Joystick hack)", 0 ) +GAME( 1986, victroad, 0, victroad, victroad, snk_state, 0, ROT270, "SNK", "Victory Road", 0 ) +GAME( 1986, dogosoke, victroad, victroad, victroad, snk_state, 0, ROT270, "SNK", "Dogou Souken", 0 ) +GAME( 1986, dogosokb, victroad, victroad, dogosokb, snk_state, 0, ROT270, "bootleg", "Dogou Souken (Joystick hack bootleg)", 0 ) + +GAME( 1987, bermudat, 0, bermudat, bermudat, snk_state, 0, ROT270, "SNK", "Bermuda Triangle (World?)", 0 ) +GAME( 1987, bermudatj, bermudat, bermudat, bermudat, snk_state, 0, ROT270, "SNK", "Bermuda Triangle (Japan)", 0 ) +GAME( 1987, worldwar, 0, bermudat, worldwar, snk_state, 0, ROT270, "SNK", "World Wars (World?)", 0 ) +GAME( 1987, bermudata, worldwar, bermudat, bermudaa, snk_state, 0, ROT270, "SNK", "Bermuda Triangle (World Wars) (US)", 0 ) +GAME( 1987, psychos, 0, psychos, psychos, snk_state, 0, ROT0, "SNK", "Psycho Soldier (US)", 0 ) +GAME( 1987, psychosj, psychos, psychos, psychos, snk_state, 0, ROT0, "SNK", "Psycho Soldier (Japan)", 0 ) +GAME( 1987, gwar, 0, gwar, gwar, snk_state, 0, ROT270, "SNK", "Guerrilla War (US)", 0 ) +GAME( 1987, gwarj, gwar, gwar, gwar, snk_state, 0, ROT270, "SNK", "Guevara (Japan)", 0 ) +GAME( 1987, gwara, gwar, gwara, gwar, snk_state, 0, ROT270, "SNK", "Guerrilla War (Version 1)", 0 ) +GAME( 1987, gwarb, gwar, gwar, gwarb, snk_state, 0, ROT270, "bootleg", "Guerrilla War (Joystick hack bootleg)", 0 ) +GAME( 1988, chopper, 0, chopper1, chopper, snk_state, 0, ROT270, "SNK", "Chopper I (US set 1)", 0 ) +GAME( 1988, choppera, chopper, choppera, choppera, snk_state, 0, ROT270, "SNK", "Chopper I (US set 2)", 0 ) +GAME( 1988, chopperb, chopper, chopper1, chopper, snk_state, 0, ROT270, "SNK", "Chopper I (US set 3)", 0 ) +GAME( 1988, legofair, chopper, chopper1, chopper, snk_state, 0, ROT270, "SNK", "Koukuu Kihei Monogatari - The Legend of Air Cavalry (Japan)", 0 ) + +GAME( 1987, tdfever, 0, tdfever, tdfever, snk_state, 0, ROT90, "SNK", "TouchDown Fever (US)", 0 ) +GAME( 1987, tdfeverj, tdfever, tdfever, tdfever, snk_state, 0, ROT90, "SNK", "TouchDown Fever (Japan)", 0 ) +GAME( 1988, tdfever2, tdfever, tdfever2, tdfever, snk_state, 0, ROT90, "SNK", "TouchDown Fever 2", 0 ) /* upgrade kit for Touchdown Fever */ +GAME( 1988, fsoccer, 0, tdfever2, fsoccer, snk_state, 0, ROT0, "SNK", "Fighting Soccer (version 4)", 0 ) +GAME( 1988, fsoccerj, fsoccer, tdfever2, fsoccer, snk_state, 0, ROT0, "SNK", "Fighting Soccer (Japan)", 0 ) +GAME( 1988, fsoccerb, fsoccer, tdfever2, fsoccerb, snk_state, 0, ROT0, "bootleg", "Fighting Soccer (Joystick hack bootleg)", 0 ) +GAME( 1988, fsoccerba, fsoccer, tdfever2, fsoccerb, snk_state, 0, ROT0, "bootleg", "Fighting Soccer (Joystick hack bootleg, alt)", 0 ) diff --git a/src/mame/drivers/snk6502.cpp b/src/mame/drivers/snk6502.cpp index 5eeda29aa17..cbcc1addae2 100644 --- a/src/mame/drivers/snk6502.cpp +++ b/src/mame/drivers/snk6502.cpp @@ -281,9 +281,11 @@ Stephh's notes (based on the games M6502 code and some tests) : #include "emu.h" #include "includes/snk6502.h" +#include "audio/snk6502.h" #include "cpu/m6502/m6502.h" #include "sound/samples.h" +#include "sound/sn76477.h" #include "video/mc6845.h" #include "screen.h" #include "speaker.h" @@ -412,7 +414,8 @@ static ADDRESS_MAP_START( fantasy_map, AS_PROGRAM, 8, snk6502_state ) AM_RANGE(0x1000, 0x1fff) AM_RAM_WRITE(charram_w) AM_SHARE("charram") AM_RANGE(0x2000, 0x2000) AM_DEVWRITE("crtc", mc6845_device, address_w) AM_RANGE(0x2001, 0x2001) AM_DEVWRITE("crtc", mc6845_device, register_w) - AM_RANGE(0x2100, 0x2103) AM_DEVWRITE("snk6502", snk6502_sound_device, fantasy_sound_w) + AM_RANGE(0x2100, 0x2102) AM_DEVWRITE("snk6502", snk6502_sound_device, fantasy_sound_w) + AM_RANGE(0x2103, 0x2103) AM_WRITE(fantasy_flipscreen_w) // affects both video and sound AM_RANGE(0x2104, 0x2104) AM_READ_PORT("IN0") AM_RANGE(0x2105, 0x2105) AM_READ_PORT("IN1") AM_RANGE(0x2106, 0x2106) AM_READ_PORT("DSW") @@ -433,7 +436,8 @@ static ADDRESS_MAP_START( pballoon_map, AS_PROGRAM, 8, snk6502_state ) AM_RANGE(0x3000, 0x9fff) AM_ROM AM_RANGE(0xb000, 0xb000) AM_DEVWRITE("crtc", mc6845_device, address_w) AM_RANGE(0xb001, 0xb001) AM_DEVWRITE("crtc", mc6845_device, register_w) - AM_RANGE(0xb100, 0xb103) AM_DEVWRITE("snk6502", snk6502_sound_device, fantasy_sound_w) + AM_RANGE(0xb100, 0xb102) AM_DEVWRITE("snk6502", snk6502_sound_device, fantasy_sound_w) + AM_RANGE(0xb103, 0xb103) AM_WRITE(fantasy_flipscreen_w) // affects both video and sound AM_RANGE(0xb104, 0xb104) AM_READ_PORT("IN0") AM_RANGE(0xb105, 0xb105) AM_READ_PORT("IN1") AM_RANGE(0xb106, 0xb106) AM_READ_PORT("DSW") @@ -804,7 +808,7 @@ MACHINE_RESET_MEMBER(snk6502_state,pballoon) * *************************************/ -static MACHINE_CONFIG_START( sasuke, snk6502_state ) +static MACHINE_CONFIG_START( sasuke ) // basic machine hardware MCFG_CPU_ADD("maincpu", M6502, MASTER_CLOCK / 16) // 700 kHz @@ -936,7 +940,7 @@ static MACHINE_CONFIG_DERIVED( satansat, sasuke ) MCFG_DEVICE_REMOVE("sn76477.3") MACHINE_CONFIG_END -static MACHINE_CONFIG_START( vanguard, snk6502_state ) +static MACHINE_CONFIG_START( vanguard ) // basic machine hardware MCFG_CPU_ADD("maincpu", M6502, MASTER_CLOCK / 16) // adjusted using common divisor @@ -1641,23 +1645,23 @@ ROM_END * *************************************/ -GAME( 1980, sasuke, 0, sasuke, sasuke, driver_device, 0, ROT90, "SNK", "Sasuke vs. Commander", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1981, satansat, 0, satansat, satansat, driver_device, 0, ROT90, "SNK", "Satan of Saturn (set 1)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1981, satansata,satansat, satansat, satansat, driver_device, 0, ROT90, "SNK", "Satan of Saturn (set 2)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1981, zarzon, satansat, satansat, satansat, driver_device, 0, ROT90, "SNK (Taito America license)", "Zarzon", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1981, satansatind,satansat,satansat,satansat, driver_device, 0, ROT90, "bootleg (Inder S.A.)", "Satan of Saturn (Inder S.A., bootleg)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1981, vanguard, 0, vanguard, vanguard, driver_device, 0, ROT90, "SNK", "Vanguard (SNK)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1981, vanguardc,vanguard, vanguard, vanguard, driver_device, 0, ROT90, "SNK (Centuri license)", "Vanguard (Centuri)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1981, vanguardj,vanguard, vanguard, vanguard, driver_device, 0, ROT90, "SNK", "Vanguard (Japan)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1981, fantasy, 0, fantasy, fantasy, driver_device, 0, ROT90, "SNK", "Fantasy (Germany)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // bootleg? -GAME( 1981, fantasyu, fantasy, fantasy, fantasyu, driver_device, 0, ROT90, "SNK (Rock-Ola license)", "Fantasy (US)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1981, fantasyj, fantasy, fantasy, fantasyu, driver_device, 0, ROT90, "SNK", "Fantasy (Japan)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1982, pballoon, 0, pballoon, pballoon, driver_device, 0, ROT90, "SNK", "Pioneer Balloon", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, pballoonr,pballoon, pballoon, pballoon, driver_device, 0, ROT90, "SNK (Rock-Ola license)", "Pioneer Balloon (Rock-Ola license)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, nibbler, 0, nibbler, nibbler, driver_device, 0, ROT90, "Rock-Ola", "Nibbler (rev 9)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, nibbler8, nibbler, nibbler, nibbler8, driver_device, 0, ROT90, "Rock-Ola", "Nibbler (rev 8)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, nibbler7, nibbler, nibbler, nibbler8, driver_device, 0, ROT90, "Rock-Ola", "Nibbler (rev 7)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, nibbler6, nibbler, nibbler, nibbler6, driver_device, 0, ROT90, "Rock-Ola", "Nibbler (rev 6)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, nibblera, nibbler, nibbler, nibbler, driver_device, 0, ROT90, "Rock-Ola", "Nibbler (rev ?)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, nibblerp, nibbler, nibbler, nibbler6, driver_device, 0, ROT90, "Rock-Ola", "Nibbler (Pioneer Balloon conversion)", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, nibblero, nibbler, nibbler, nibbler8, driver_device, 0, ROT90, "Rock-Ola (Olympia license)", "Nibbler (Olympia - rev 8)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, sasuke, 0, sasuke, sasuke, snk6502_state, 0, ROT90, "SNK", "Sasuke vs. Commander", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1981, satansat, 0, satansat, satansat, snk6502_state, 0, ROT90, "SNK", "Satan of Saturn (set 1)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1981, satansata, satansat, satansat, satansat, snk6502_state, 0, ROT90, "SNK", "Satan of Saturn (set 2)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1981, zarzon, satansat, satansat, satansat, snk6502_state, 0, ROT90, "SNK (Taito America license)", "Zarzon", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1981, satansatind, satansat, satansat, satansat, snk6502_state, 0, ROT90, "bootleg (Inder S.A.)", "Satan of Saturn (Inder S.A., bootleg)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +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, fantasy, 0, fantasy, fantasy, snk6502_state, 0, ROT90, "SNK", "Fantasy (Germany)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // bootleg? +GAME( 1981, fantasyu, fantasy, fantasy, fantasyu, snk6502_state, 0, ROT90, "SNK (Rock-Ola license)", "Fantasy (US)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1981, fantasyj, fantasy, 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 ) +GAME( 1982, nibbler, 0, nibbler, nibbler, snk6502_state, 0, ROT90, "Rock-Ola", "Nibbler (rev 9)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, nibbler8, nibbler, nibbler, nibbler8, snk6502_state, 0, ROT90, "Rock-Ola", "Nibbler (rev 8)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, nibbler7, nibbler, nibbler, nibbler8, snk6502_state, 0, ROT90, "Rock-Ola", "Nibbler (rev 7)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, nibbler6, nibbler, nibbler, nibbler6, snk6502_state, 0, ROT90, "Rock-Ola", "Nibbler (rev 6)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, nibblera, nibbler, nibbler, nibbler, snk6502_state, 0, ROT90, "Rock-Ola", "Nibbler (rev ?)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, nibblerp, nibbler, nibbler, nibbler6, snk6502_state, 0, ROT90, "Rock-Ola", "Nibbler (Pioneer Balloon conversion)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, nibblero, nibbler, nibbler, nibbler8, snk6502_state, 0, ROT90, "Rock-Ola (Olympia license)", "Nibbler (Olympia - rev 8)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/snk68.cpp b/src/mame/drivers/snk68.cpp index 61302b76d23..2dc6ed055f9 100644 --- a/src/mame/drivers/snk68.cpp +++ b/src/mame/drivers/snk68.cpp @@ -591,7 +591,7 @@ void snk68_state::tile_callback_notpow(int &tile, int& fx, int& fy, int& region) region = 1; } -static MACHINE_CONFIG_START( pow, snk68_state ) +static MACHINE_CONFIG_START( pow ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_18MHz/2) /* verified on pcb */ @@ -1104,16 +1104,16 @@ ROM_END /******************************************************************************/ -GAME( 1988, pow, 0, pow, pow, driver_device, 0, ROT0, "SNK", "P.O.W. - Prisoners of War (US version 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, powj, pow, pow, powj, driver_device, 0, ROT0, "SNK", "Datsugoku - Prisoners of War (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, streetsm, 0, streetsm, streetsm, driver_device, 0, ROT0, "SNK", "Street Smart (US version 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, streetsm1, streetsm, searchar, streetsm, driver_device, 0, ROT0, "SNK", "Street Smart (US version 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, streetsmw, streetsm, searchar, streetsj, driver_device, 0, ROT0, "SNK", "Street Smart (World version 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, streetsmj, streetsm, searchar, streetsj, driver_device, 0, ROT0, "SNK", "Street Smart (Japan version 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, ikari3, 0, searchar, ikari3, driver_device, 0, ROT0, "SNK", "Ikari III - The Rescue (World, 8-Way Joystick)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, ikari3u, ikari3, searchar, ikari3, driver_device, 0, ROT0, "SNK", "Ikari III - The Rescue (US, Rotary Joystick)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, ikari3j, ikari3, searchar, ikari3, driver_device, 0, ROT0, "SNK", "Ikari Three (Japan, Rotary Joystick)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, ikari3k, ikari3, searchar, ikari3, driver_device, 0, ROT0, "SNK", "Ikari Three (Korea, 8-Way Joystick)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, searchar, 0, searchar, searchar, driver_device, 0, ROT90, "SNK", "SAR - Search And Rescue (World)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, searcharu, searchar, searchar, searchar, driver_device, 0, ROT90, "SNK", "SAR - Search And Rescue (US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, searcharj, searchar, searchar, searchar, driver_device, 0, ROT90, "SNK", "SAR - Search And Rescue (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, pow, 0, pow, pow, snk68_state, 0, ROT0, "SNK", "P.O.W. - Prisoners of War (US version 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, powj, pow, pow, powj, snk68_state, 0, ROT0, "SNK", "Datsugoku - Prisoners of War (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, streetsm, 0, streetsm, streetsm, snk68_state, 0, ROT0, "SNK", "Street Smart (US version 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, streetsm1, streetsm, searchar, streetsm, snk68_state, 0, ROT0, "SNK", "Street Smart (US version 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, streetsmw, streetsm, searchar, streetsj, snk68_state, 0, ROT0, "SNK", "Street Smart (World version 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, streetsmj, streetsm, searchar, streetsj, snk68_state, 0, ROT0, "SNK", "Street Smart (Japan version 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, ikari3, 0, searchar, ikari3, snk68_state, 0, ROT0, "SNK", "Ikari III - The Rescue (World, 8-Way Joystick)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, ikari3u, ikari3, searchar, ikari3, snk68_state, 0, ROT0, "SNK", "Ikari III - The Rescue (US, Rotary Joystick)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, ikari3j, ikari3, searchar, ikari3, snk68_state, 0, ROT0, "SNK", "Ikari Three (Japan, Rotary Joystick)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, ikari3k, ikari3, searchar, ikari3, snk68_state, 0, ROT0, "SNK", "Ikari Three (Korea, 8-Way Joystick)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, searchar, 0, searchar, searchar, snk68_state, 0, ROT90, "SNK", "SAR - Search And Rescue (World)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, searcharu, searchar, searchar, searchar, snk68_state, 0, ROT90, "SNK", "SAR - Search And Rescue (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, searcharj, searchar, searchar, searchar, snk68_state, 0, ROT90, "SNK", "SAR - Search And Rescue (Japan)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/snookr10.cpp b/src/mame/drivers/snookr10.cpp index 1f2088476d1..64a44c3dc01 100644 --- a/src/mame/drivers/snookr10.cpp +++ b/src/mame/drivers/snookr10.cpp @@ -1037,7 +1037,7 @@ GFXDECODE_END * Machine Drivers * **************************/ -static MACHINE_CONFIG_START( snookr10, snookr10_state ) +static MACHINE_CONFIG_START( snookr10 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M65SC02, MASTER_CLOCK/8) /* 2 MHz (1.999 MHz measured) */ @@ -1062,7 +1062,7 @@ static MACHINE_CONFIG_START( snookr10, snookr10_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", MASTER_CLOCK/16, OKIM6295_PIN7_HIGH) /* 1 MHz (995.5 kHz measured); pin7 checked HIGH on PCB */ + MCFG_OKIM6295_ADD("oki", MASTER_CLOCK/16, PIN7_HIGH) /* 1 MHz (995.5 kHz measured); pin7 checked HIGH on PCB */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.8) MACHINE_CONFIG_END @@ -1220,9 +1220,9 @@ ROM_END * Game Drivers * *************************/ -/* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS LAYOUT */ -GAMEL( 1998, snookr10, 0, snookr10, snookr10, driver_device, 0, ROT0, "Sandii'", "Snooker 10 (Ver 1.11)", 0, layout_snookr10 ) -GAMEL( 1998, apple10, 0, apple10, apple10, driver_device, 0, ROT0, "Sandii'", "Apple 10 (Ver 1.21)", 0, layout_snookr10 ) -GAMEL( 1997, tenballs, snookr10, tenballs, tenballs, driver_device, 0, ROT0, "", "Ten Balls (Ver 1.05)", 0, layout_snookr10 ) -GAMEL( 1998, crystalc, 0, crystalc, crystalc, driver_device, 0, ROT0, "JCD srl", "Crystals Colours (Ver 1.02)", 0, layout_snookr10 ) -GAMEL( 1998, crystalca, crystalc, crystalc, crystalca, driver_device, 0, ROT0, "JCD srl", "Crystals Colours (Ver 1.01)", 0, layout_snookr10 ) +/* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS LAYOUT */ +GAMEL( 1998, snookr10, 0, snookr10, snookr10, snookr10_state, 0, ROT0, "Sandii'", "Snooker 10 (Ver 1.11)", 0, layout_snookr10 ) +GAMEL( 1998, apple10, 0, apple10, apple10, snookr10_state, 0, ROT0, "Sandii'", "Apple 10 (Ver 1.21)", 0, layout_snookr10 ) +GAMEL( 1997, tenballs, snookr10, tenballs, tenballs, snookr10_state, 0, ROT0, "", "Ten Balls (Ver 1.05)", 0, layout_snookr10 ) +GAMEL( 1998, crystalc, 0, crystalc, crystalc, snookr10_state, 0, ROT0, "JCD srl", "Crystals Colours (Ver 1.02)", 0, layout_snookr10 ) +GAMEL( 1998, crystalca, crystalc, crystalc, crystalca, snookr10_state, 0, ROT0, "JCD srl", "Crystals Colours (Ver 1.01)", 0, layout_snookr10 ) diff --git a/src/mame/drivers/snowbros.cpp b/src/mame/drivers/snowbros.cpp index b433b3127b0..4466edfa203 100644 --- a/src/mame/drivers/snowbros.cpp +++ b/src/mame/drivers/snowbros.cpp @@ -1763,7 +1763,7 @@ MACHINE_RESET_MEMBER(snowbros_state,finalttr) m_hyperpac_ram[0x2000/2 + i] = PROTDATA[i]; } -static MACHINE_CONFIG_START( snowbros, snowbros_state ) +static MACHINE_CONFIG_START( snowbros ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz/2) /* 8 Mhz - confirmed */ @@ -1840,7 +1840,7 @@ static MACHINE_CONFIG_DERIVED( semicom, snowbros ) MCFG_SOUND_ROUTE(0, "mono", 0.10) MCFG_SOUND_ROUTE(1, "mono", 0.10) - MCFG_OKIM6295_ADD("oki", XTAL_16MHz/16, OKIM6295_PIN7_HIGH) /* 1MHz & pin 7 High - Confirmed */ + MCFG_OKIM6295_ADD("oki", XTAL_16MHz/16, PIN7_HIGH) /* 1MHz & pin 7 High - Confirmed */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -1860,7 +1860,7 @@ static MACHINE_CONFIG_DERIVED( semiprot, semicom ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( honeydol, snowbros_state ) +static MACHINE_CONFIG_START( honeydol ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_12MHz) /* MC68000P12 @ 12MHz */ @@ -1894,11 +1894,11 @@ static MACHINE_CONFIG_START( honeydol, snowbros_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MCFG_OKIM6295_ADD("oki", XTAL_16MHz/16, OKIM6295_PIN7_HIGH) /* freq? */ + MCFG_OKIM6295_ADD("oki", XTAL_16MHz/16, PIN7_HIGH) /* freq? */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( twinadv, snowbros_state ) +static MACHINE_CONFIG_START( twinadv ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_12MHz) /* 12MHz like Honey Dolls ? */ @@ -1930,7 +1930,7 @@ static MACHINE_CONFIG_START( twinadv, snowbros_state ) MCFG_GENERIC_LATCH_8_ADD("soundlatch") /* sound hardware */ - MCFG_OKIM6295_ADD("oki", XTAL_16MHz/16, OKIM6295_PIN7_HIGH) /* freq? */ + MCFG_OKIM6295_ADD("oki", XTAL_16MHz/16, PIN7_HIGH) /* freq? */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -1969,7 +1969,7 @@ static MACHINE_CONFIG_DERIVED( finalttr, semicom ) MCFG_SOUND_ROUTE(0, "mono", 0.08) MCFG_SOUND_ROUTE(1, "mono", 0.08) - MCFG_OKIM6295_REPLACE("oki", 999900, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_REPLACE("oki", 999900, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40) MACHINE_CONFIG_END @@ -1980,7 +1980,7 @@ static MACHINE_CONFIG_DERIVED( _4in1, semicom ) MCFG_GFXDECODE_MODIFY("gfxdecode", snowbros) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( snowbro3, snowbros_state ) /* PCB has 16MHz & 12MHz OSCs */ +static MACHINE_CONFIG_START( snowbro3 ) /* PCB has 16MHz & 12MHz OSCs */ /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_12MHz) /* MC68000P10 CPU @ 12mhz or 8MHz (16MHz/2) ? */ @@ -2004,13 +2004,13 @@ static MACHINE_CONFIG_START( snowbro3, snowbros_state ) /* PCB has 16MHz & 12MHz /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", XTAL_16MHz/16, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki", XTAL_16MHz/16, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( yutnori, snowbros_state ) +static MACHINE_CONFIG_START( yutnori ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz/2) @@ -2039,10 +2039,10 @@ static MACHINE_CONFIG_START( yutnori, snowbros_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki1", XTAL_16MHz/16, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki1", XTAL_16MHz/16, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MCFG_OKIM6295_ADD("oki2", XTAL_16MHz/16, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki2", XTAL_16MHz/16, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -2909,48 +2909,48 @@ DRIVER_INIT_MEMBER(snowbros_state, yutnori) m_pandora->set_bg_pen(0xf0); } -GAME( 1990, snowbros, 0, snowbros, snowbros, driver_device, 0, ROT0, "Toaplan", "Snow Bros. - Nick & Tom (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, snowbrosa, snowbros, snowbros, snowbros, driver_device, 0, ROT0, "Toaplan", "Snow Bros. - Nick & Tom (set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, snowbrosb, snowbros, snowbros, snowbros, driver_device, 0, ROT0, "Toaplan", "Snow Bros. - Nick & Tom (set 3)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, snowbrosc, snowbros, snowbros, snowbros, driver_device, 0, ROT0, "Toaplan", "Snow Bros. - Nick & Tom (set 4)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, snowbrosj, snowbros, snowbros, snowbroj, driver_device, 0, ROT0, "Toaplan", "Snow Bros. - Nick & Tom (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, snowbrosd, snowbros, snowbros, snowbroj, driver_device, 0, ROT0, "Toaplan (Dooyong license)", "Snow Bros. - Nick & Tom (Dooyong license)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, wintbob, snowbros, wintbob, snowbros, driver_device, 0, ROT0, "bootleg (Sakowa Project Korea)", "The Winter Bobble (bootleg of Snow Bros.)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, snowbroswb,snowbros, wintbob, snowbros, driver_device, 0, ROT0, "bootleg", "Snow Bros. - Nick & Tom (The Winter Bobble hardware bootleg)", MACHINE_SUPPORTS_SAVE ) // this was probably unhacked back from the more common Winter Bobble to make it look more original +GAME( 1990, snowbros, 0, snowbros, snowbros, snowbros_state, 0, ROT0, "Toaplan", "Snow Bros. - Nick & Tom (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, snowbrosa, snowbros, snowbros, snowbros, snowbros_state, 0, ROT0, "Toaplan", "Snow Bros. - Nick & Tom (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, snowbrosb, snowbros, snowbros, snowbros, snowbros_state, 0, ROT0, "Toaplan", "Snow Bros. - Nick & Tom (set 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, snowbrosc, snowbros, snowbros, snowbros, snowbros_state, 0, ROT0, "Toaplan", "Snow Bros. - Nick & Tom (set 4)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, snowbrosj, snowbros, snowbros, snowbroj, snowbros_state, 0, ROT0, "Toaplan", "Snow Bros. - Nick & Tom (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, snowbrosd, snowbros, snowbros, snowbroj, snowbros_state, 0, ROT0, "Toaplan (Dooyong license)", "Snow Bros. - Nick & Tom (Dooyong license)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, wintbob, snowbros, wintbob, snowbros, snowbros_state, 0, ROT0, "bootleg (Sakowa Project Korea)", "The Winter Bobble (bootleg of Snow Bros.)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, snowbroswb, snowbros, wintbob, snowbros, snowbros_state, 0, ROT0, "bootleg", "Snow Bros. - Nick & Tom (The Winter Bobble hardware bootleg)", MACHINE_SUPPORTS_SAVE ) // this was probably unhacked back from the more common Winter Bobble to make it look more original -GAME( 1996, toto, 0, snowbros, snowbros, snowbros_state, toto, ROT0, "SoftClub", "Come Back Toto", MACHINE_SUPPORTS_SAVE ) // modified from 'snowbros' code +GAME( 1996, toto, 0, snowbros, snowbros, snowbros_state, toto, ROT0, "SoftClub", "Come Back Toto", MACHINE_SUPPORTS_SAVE ) // modified from 'snowbros' code // none of the games below are on genuine SnowBros hardware, but they clone the functionality of it. // SemiCom / Jeil titles are protected, a dumb MCU copies code into RAM at startup, some also check for a specific return value from an address on startup. -GAME( 1993, finalttr, 0, finalttr, finalttr, driver_device, 0, ROT0, "Jeil Computer System", "Final Tetris", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, hyperpac, 0, semicom_mcu, hyperpac, snowbros_state, hyperpac, ROT0, "SemiCom", "Hyper Pacman", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, hyperpacb,hyperpac, semicom, hyperpac, driver_device, 0, ROT0, "bootleg", "Hyper Pacman (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, cookbib2, 0, semiprot, cookbib2, snowbros_state, cookbib2, ROT0, "SemiCom", "Cookie & Bibi 2", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, toppyrap, 0, semiprot, toppyrap, driver_device, 0, ROT0, "SemiCom", "Toppy & Rappy", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, cookbib3, 0, semiprot, cookbib3, snowbros_state, cookbib3, ROT0, "SemiCom", "Cookie & Bibi 3", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, pzlbreak, 0, semiprot, pzlbreak, snowbros_state, pzlbreak, ROT0, "SemiCom / Tirano", "Puzzle Break", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, suhosong, 0, semiprot, suhosong, driver_device, 0, ROT0, "SemiCom", "Su Ho Seong", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, twinkle, 0, semiprot, twinkle, driver_device, 0, ROT0, "SemiCom / Tirano", "Twinkle", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, 3in1semi, 0, semiprot, moremore, snowbros_state, 3in1semi, ROT0, "SemiCom / XESS", "New HyperMan (3-in-1 with Cookie & Bibi & HyperMan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1999, mcheonru, 0, semiprot, mcheonru, snowbros_state, 3in1semi, ROT0, "SemiCom / AceVer", "Ma Cheon Ru", MACHINE_SUPPORTS_SAVE ) // a flyer exists for an English version called Arirang, AceVer team logo is displayed on it -GAME( 1999, moremore, 0, semiprot, moremore, snowbros_state, 3in1semi, ROT0, "SemiCom / Exit", "More More", MACHINE_SUPPORTS_SAVE ) -GAME( 1999, moremorp, 0, semiprot, moremore, snowbros_state, 3in1semi, ROT0, "SemiCom / Exit", "More More Plus", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, finalttr, 0, finalttr, finalttr, snowbros_state, 0, ROT0, "Jeil Computer System", "Final Tetris", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, hyperpac, 0, semicom_mcu, hyperpac, snowbros_state, hyperpac, ROT0, "SemiCom", "Hyper Pacman", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, hyperpacb, hyperpac, semicom, hyperpac, snowbros_state, 0, ROT0, "bootleg", "Hyper Pacman (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, cookbib2, 0, semiprot, cookbib2, snowbros_state, cookbib2, ROT0, "SemiCom", "Cookie & Bibi 2", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, toppyrap, 0, semiprot, toppyrap, snowbros_state, 0, ROT0, "SemiCom", "Toppy & Rappy", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, cookbib3, 0, semiprot, cookbib3, snowbros_state, cookbib3, ROT0, "SemiCom", "Cookie & Bibi 3", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, pzlbreak, 0, semiprot, pzlbreak, snowbros_state, pzlbreak, ROT0, "SemiCom / Tirano", "Puzzle Break", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, suhosong, 0, semiprot, suhosong, snowbros_state, 0, ROT0, "SemiCom", "Su Ho Seong", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, twinkle, 0, semiprot, twinkle, snowbros_state, 0, ROT0, "SemiCom / Tirano", "Twinkle", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, 3in1semi, 0, semiprot, moremore, snowbros_state, 3in1semi, ROT0, "SemiCom / XESS", "New HyperMan (3-in-1 with Cookie & Bibi & HyperMan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, mcheonru, 0, semiprot, mcheonru, snowbros_state, 3in1semi, ROT0, "SemiCom / AceVer", "Ma Cheon Ru", MACHINE_SUPPORTS_SAVE ) // a flyer exists for an English version called Arirang, AceVer team logo is displayed on it +GAME( 1999, moremore, 0, semiprot, moremore, snowbros_state, 3in1semi, ROT0, "SemiCom / Exit", "More More", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, moremorp, 0, semiprot, moremore, snowbros_state, 3in1semi, ROT0, "SemiCom / Exit", "More More Plus", MACHINE_SUPPORTS_SAVE ) // This is very similar to the SemiCom titles, but unprotected. -GAME( 2002, 4in1boot, 0, _4in1, 4in1boot, snowbros_state, 4in1boot, ROT0, "K1 Soft", "Puzzle King (PacMan 2, Tetris, HyperMan 2, Snow Bros.)" , MACHINE_SUPPORTS_SAVE ) +GAME( 2002, 4in1boot, 0, _4in1, 4in1boot, snowbros_state, 4in1boot, ROT0, "K1 Soft", "Puzzle King (PacMan 2, Tetris, HyperMan 2, Snow Bros.)" , MACHINE_SUPPORTS_SAVE ) -GAME( 1995, honeydol, 0, honeydol, honeydol, driver_device, 0, ROT0, "Barko Corp.", "Honey Dolls", MACHINE_SUPPORTS_SAVE ) // based on snowbros code.. +GAME( 1995, honeydol, 0, honeydol, honeydol, snowbros_state, 0, ROT0, "Barko Corp.", "Honey Dolls", MACHINE_SUPPORTS_SAVE ) // based on snowbros code.. -GAME( 1995, twinadv, 0, twinadv, twinadv, driver_device, 0, ROT0, "Barko Corp.", "Twin Adventure (World)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, twinadvk, twinadv, twinadv, twinadv, driver_device, 0, ROT0, "Barko Corp.", "Twin Adventure (Korea)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, multi96, twinadv, twinadv, twinadv, driver_device, 0, ROT0, "Barko Corp.", "Multi Game '96 (Italy)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, twinadv, 0, twinadv, twinadv, snowbros_state, 0, ROT0, "Barko Corp.", "Twin Adventure (World)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, twinadvk, twinadv, twinadv, twinadv, snowbros_state, 0, ROT0, "Barko Corp.", "Twin Adventure (Korea)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, multi96, twinadv, twinadv, twinadv, snowbros_state, 0, ROT0, "Barko Corp.", "Multi Game '96 (Italy)", MACHINE_SUPPORTS_SAVE ) // The Korean games database shows an earlier version of this called Ball Boy with a different title screen to the version of Ball Boy we have // http://mamedev.emulab.it/undumped/images/Ballboy.jpg // it is possible this 'ball boy' is the original bootleg, with snwobro3 being a hack of that, and the ballboy set we have a further hack of that // there is also a later 2004 version with 3 player support // these use an MCU to drive the sound -GAME( 2002, snowbro3, 0, snowbro3, snowbroj, snowbros_state, snowbro3, ROT0, "Syrmex", "Snow Brothers 3 - Magical Adventure", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // hacked from SnowBros code but released as an original game -GAME( 2003, ballboy, snowbro3, snowbro3, snowbroj, snowbros_state, snowbro3, ROT0, "bootleg", "Ball Boy", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 2002, snowbro3, 0, snowbro3, snowbroj, snowbros_state, snowbro3, ROT0, "Syrmex", "Snow Brothers 3 - Magical Adventure", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // hacked from SnowBros code but released as an original game +GAME( 2003, ballboy, snowbro3, snowbro3, snowbroj, snowbros_state, snowbro3, ROT0, "bootleg", "Ball Boy", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // protection appears to handle the sound, should check if it's just a block of code that is conditionally executed like some of the Semicom titles. -GAME( 1999, yutnori, 0, yutnori, yutnori, snowbros_state, yutnori, ROT0, "Nunal", "Puzzle Yutnori (Korea)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NO_SOUND ) // Nunal is apparently Korean slang for Eyeball, hence the logo. Some places report 'JCC Soft' as the manufacturer +GAME( 1999, yutnori, 0, yutnori, yutnori, snowbros_state, yutnori, ROT0, "Nunal", "Puzzle Yutnori (Korea)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NO_SOUND ) // Nunal is apparently Korean slang for Eyeball, hence the logo. Some places report 'JCC Soft' as the manufacturer diff --git a/src/mame/drivers/socrates.cpp b/src/mame/drivers/socrates.cpp index ce7218901ac..f97db1c009f 100644 --- a/src/mame/drivers/socrates.cpp +++ b/src/mame/drivers/socrates.cpp @@ -1367,7 +1367,7 @@ INTERRUPT_GEN_MEMBER(socrates_state::assert_irq) m_kbmcu_rscount = 0; // clear the mcu poke count } -static MACHINE_CONFIG_START( socrates, socrates_state ) +static MACHINE_CONFIG_START( socrates ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_21_4772MHz/6) /* Toshiba TMPZ84C00AP @ 3.579545 MHz, verified, xtal is divided by 6 */ MCFG_CPU_PROGRAM_MAP(z80_mem) @@ -1399,7 +1399,7 @@ static MACHINE_CONFIG_START( socrates, socrates_state ) MCFG_SOFTWARE_LIST_ADD("cart_list", "socrates") MACHINE_CONFIG_END -static MACHINE_CONFIG_START( socrates_pal, socrates_state ) +static MACHINE_CONFIG_START( socrates_pal ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_26_601712MHz/6) /* Toshiba TMPZ84C00AP @ 4.433 MHz? /6 or 7 or 8? TODO: verify divider!*/ MCFG_CPU_PROGRAM_MAP(z80_mem) @@ -1445,7 +1445,7 @@ static MACHINE_CONFIG_DERIVED( socrates_pal, socrates ) MACHINE_CONFIG_END */ -static MACHINE_CONFIG_START( iqunlimz, iqunlim_state ) +static MACHINE_CONFIG_START( iqunlimz ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_4MHz) /* not accurate */ MCFG_CPU_PROGRAM_MAP(iqunlim_mem) @@ -1583,11 +1583,11 @@ ROM_END Drivers ******************************************************************************/ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1988, socrates, 0, 0, socrates, socrates, socrates_state, socrates, "Video Technology", "Socrates Educational Video System", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) // English NTSC, no title copyright -COMP( 1988, socratfc, socrates, 0, socrates, socrates, socrates_state, socrates, "Video Technology", "Socrates SAITOUT", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) // French Canandian NTSC, 1988 title copyright -COMP( 1988, profweis, socrates, 0, socrates_pal, socrates, socrates_state, socrates, "Video Technology/Yeno", "Professor Weiss-Alles", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) // German PAL, 1988 title copyright +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1988, socrates, 0, 0, socrates, socrates, socrates_state, socrates, "Video Technology", "Socrates Educational Video System", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) // English NTSC, no title copyright +COMP( 1988, socratfc, socrates, 0, socrates, socrates, socrates_state, socrates, "Video Technology", "Socrates SAITOUT", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) // French Canandian NTSC, 1988 title copyright +COMP( 1988, profweis, socrates, 0, socrates_pal, socrates, socrates_state, socrates, "Video Technology/Yeno", "Professor Weiss-Alles", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) // German PAL, 1988 title copyright // Yeno Professeur Saitout goes here (french SECAM) // ? goes here (spanish PAL) -COMP( 1991, iqunlimz, 0, 0, iqunlimz, iqunlimz, driver_device, 0, "Video Technology", "IQ Unlimited (Z80)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +COMP( 1991, iqunlimz, 0, 0, iqunlimz, iqunlimz, iqunlim_state, 0, "Video Technology", "IQ Unlimited (Z80)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/softbox.cpp b/src/mame/drivers/softbox.cpp index 42c552d2050..293fc9275d4 100644 --- a/src/mame/drivers/softbox.cpp +++ b/src/mame/drivers/softbox.cpp @@ -140,7 +140,7 @@ static ADDRESS_MAP_START( softbox_io, AS_IO, 8, softbox_state ) AM_RANGE(0x0c, 0x0c) AM_WRITE(dbrg_w) AM_RANGE(0x10, 0x13) AM_DEVREADWRITE(I8255_0_TAG, i8255_device, read, write) AM_RANGE(0x14, 0x17) AM_DEVREADWRITE(I8255_1_TAG, i8255_device, read, write) - AM_RANGE(0x18, 0x18) AM_DEVREADWRITE(CORVUS_HDC_TAG, corvus_hdc_t, read, write) + AM_RANGE(0x18, 0x18) AM_DEVREADWRITE(CORVUS_HDC_TAG, corvus_hdc_device, read, write) ADDRESS_MAP_END @@ -270,8 +270,8 @@ READ8_MEMBER( softbox_state::ppi1_pc_r ) uint8_t status = m_hdc->status_r(space, 0); uint8_t data = 0; - data |= (status & CONTROLLER_BUSY) ? 0 : 0x10; - data |= (status & CONTROLLER_DIRECTION) ? 0 : 0x20; + data |= (status & corvus_hdc_device::CONTROLLER_BUSY) ? 0 : 0x10; + data |= (status & corvus_hdc_device::CONTROLLER_DIRECTION) ? 0 : 0x20; return data; } @@ -368,7 +368,7 @@ void softbox_state::ieee488_ifc(int state) // MACHINE_CONFIG( softbox ) //------------------------------------------------- -static MACHINE_CONFIG_START( softbox, softbox_state ) +static MACHINE_CONFIG_START( softbox ) // basic machine hardware MCFG_CPU_ADD(Z80_TAG, Z80, XTAL_8MHz/2) MCFG_CPU_PROGRAM_MAP(softbox_mem) @@ -449,5 +449,5 @@ ROM_END // SYSTEM DRIVERS //************************************************************************** -// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS -COMP( 1981, softbox, 0, 0, softbox, softbox, driver_device, 0, "Small Systems Engineering", "SoftBox", MACHINE_NO_SOUND_HW ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1981, softbox, 0, 0, softbox, softbox, softbox_state, 0, "Small Systems Engineering", "SoftBox", MACHINE_NO_SOUND_HW ) diff --git a/src/mame/drivers/solomon.cpp b/src/mame/drivers/solomon.cpp index 4912adeaf3d..4b197f59f5c 100644 --- a/src/mame/drivers/solomon.cpp +++ b/src/mame/drivers/solomon.cpp @@ -206,7 +206,7 @@ INTERRUPT_GEN_MEMBER(solomon_state::vblank_irq) -static MACHINE_CONFIG_START( solomon, solomon_state ) +static MACHINE_CONFIG_START( solomon ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 4000000) /* 4.0 MHz (?????) */ @@ -307,5 +307,5 @@ ROM_END -GAME( 1986, solomon, 0, solomon, solomon, driver_device, 0, ROT0, "Tecmo", "Solomon's Key (US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, solomonj, solomon, solomon, solomon, driver_device, 0, ROT0, "Tecmo", "Solomon no Kagi (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, solomon, 0, solomon, solomon, solomon_state, 0, ROT0, "Tecmo", "Solomon's Key (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, solomonj, solomon, solomon, solomon, solomon_state, 0, ROT0, "Tecmo", "Solomon no Kagi (Japan)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/sonson.cpp b/src/mame/drivers/sonson.cpp index ee93eaec869..a5aacf161b2 100644 --- a/src/mame/drivers/sonson.cpp +++ b/src/mame/drivers/sonson.cpp @@ -241,7 +241,7 @@ void sonson_state::machine_reset() m_last_irq = 0; } -static MACHINE_CONFIG_START( sonson, sonson_state ) +static MACHINE_CONFIG_START( sonson ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809, XTAL_12MHz/8) /* 1.5 MHz */ @@ -349,5 +349,5 @@ ROM_START( sonsonj ) ROM_END -GAME( 1984, sonson, 0, sonson, sonson, driver_device, 0, ROT0, "Capcom", "Son Son", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, sonsonj, sonson, sonson, sonson, driver_device, 0, ROT0, "Capcom", "Son Son (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, sonson, 0, sonson, sonson, sonson_state, 0, ROT0, "Capcom", "Son Son", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, sonsonj, sonson, sonson, sonson, sonson_state, 0, ROT0, "Capcom", "Son Son (Japan)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/sorcerer.cpp b/src/mame/drivers/sorcerer.cpp index 7740badf571..125c751ef8d 100644 --- a/src/mame/drivers/sorcerer.cpp +++ b/src/mame/drivers/sorcerer.cpp @@ -413,7 +413,7 @@ static DEVICE_INPUT_DEFAULTS_START( terminal ) DEVICE_INPUT_DEFAULTS( "RS232_STOPBITS", 0xff, RS232_STOPBITS_2 ) DEVICE_INPUT_DEFAULTS_END -static MACHINE_CONFIG_START( sorcerer, sorcerer_state ) +static MACHINE_CONFIG_START( sorcerer ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, ES_CPU_CLOCK) MCFG_CPU_PROGRAM_MAP(sorcerer_mem) @@ -535,7 +535,7 @@ ROM_START(sorcerer2) ROMX_LOAD("tvc-2.2e", 0xe800, 0x0800, CRC(bc194487) SHA1(dcfd916558e3e3be22091c5558ea633c332cf6c7), ROM_BIOS(2) ) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ -COMP(1979, sorcerer, 0, 0, sorcerer, sorcerer, sorcerer_state, sorcerer, "Exidy Inc", "Sorcerer", 0 ) -COMP(1979, sorcerer2, sorcerer, 0, sorcerer, sorcerer, sorcerer_state, sorcerer, "Exidy Inc", "Sorcerer 2", 0 ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME */ +COMP(1979, sorcerer, 0, 0, sorcerer, sorcerer, sorcerer_state, sorcerer, "Exidy Inc", "Sorcerer", 0 ) +COMP(1979, sorcerer2, sorcerer, 0, sorcerer, sorcerer, sorcerer_state, sorcerer, "Exidy Inc", "Sorcerer 2", 0 ) COMP(1979, sorcererd, sorcerer, 0, sorcererd, sorcerer, sorcerer_state, sorcerer, "Exidy Inc", "Sorcerer (with floppy disks)", 0 ) diff --git a/src/mame/drivers/sothello.cpp b/src/mame/drivers/sothello.cpp index d99a27c75a7..244f573efb2 100644 --- a/src/mame/drivers/sothello.cpp +++ b/src/mame/drivers/sothello.cpp @@ -340,7 +340,7 @@ void sothello_state::machine_reset() { } -static MACHINE_CONFIG_START( sothello, sothello_state ) +static MACHINE_CONFIG_START( sothello ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80, MAINCPU_CLOCK) @@ -379,7 +379,7 @@ static MACHINE_CONFIG_START( sothello, sothello_state ) MCFG_SOUND_ADD("msm", MSM5205, MSM_CLOCK) MCFG_MSM5205_VCLK_CB(WRITELINE(sothello_state, adpcm_int)) /* interrupt function */ - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S48_4B) /* changed on the fly */ + MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) /* changed on the fly */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -403,4 +403,4 @@ ROM_START( sothello ) ROM_LOAD( "6.7f", 0x8000, 0x8000, CRC(ee80fc78) SHA1(9a9d7925847d7a36930f0761c70f67a9affc5e7c) ) ROM_END -GAME( 1986, sothello, 0, sothello, sothello, driver_device, 0, ROT0, "Success / Fujiwara", "Super Othello", 0 ) +GAME( 1986, sothello, 0, sothello, sothello, sothello_state, 0, ROT0, "Success / Fujiwara", "Super Othello", 0 ) diff --git a/src/mame/drivers/spacefb.cpp b/src/mame/drivers/spacefb.cpp index 4014143779d..81eb57282c9 100644 --- a/src/mame/drivers/spacefb.cpp +++ b/src/mame/drivers/spacefb.cpp @@ -328,7 +328,7 @@ INPUT_PORTS_END * *************************************/ -static MACHINE_CONFIG_START( spacefb, spacefb_state ) +static MACHINE_CONFIG_START( spacefb ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, SPACEFB_MAIN_CPU_CLOCK) @@ -602,12 +602,12 @@ ROM_END * *************************************/ -GAME( 1980, spacefb, 0, spacefb, spacefb, driver_device, 0, ROT270, "Nintendo", "Space Firebird (rev. 04-u)", MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1980, spacefbe, spacefb, spacefb, spacefb, driver_device, 0, ROT270, "Nintendo", "Space Firebird (rev. 03-e set 1)", MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1980, spacefbe2,spacefb, spacefb, spacefb, driver_device, 0, ROT270, "Nintendo", "Space Firebird (rev. 03-e set 2)", MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1980, spacefba, spacefb, spacefb, spacefb, driver_device, 0, ROT270, "Nintendo", "Space Firebird (rev. 02-a)", MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1980, spacefbg, spacefb, spacefb, spacefb, driver_device, 0, ROT270, "Nintendo (Gremlin license)", "Space Firebird (Gremlin)", MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1980, spacebrd, spacefb, spacefb, spacefb, driver_device, 0, ROT270, "bootleg (Karateco)", "Space Bird (bootleg)", MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1980, spacefbb, spacefb, spacefb, spacefb, driver_device, 0, ROT270, "bootleg", "Space Firebird (bootleg)", MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1980, spacedem, spacefb, spacefb, spacedem, driver_device, 0, ROT270, "Nintendo (Fortrek license)", "Space Demon", MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1980, starwarr, spacefb, spacefb, spacefb, driver_device, 0, ROT270, "bootleg (Potomac Mortgage)", "Star Warrior", MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1980, spacefb, 0, spacefb, spacefb, spacefb_state, 0, ROT270, "Nintendo", "Space Firebird (rev. 04-u)", MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1980, spacefbe, spacefb, spacefb, spacefb, spacefb_state, 0, ROT270, "Nintendo", "Space Firebird (rev. 03-e set 1)", MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1980, spacefbe2,spacefb, spacefb, spacefb, spacefb_state, 0, ROT270, "Nintendo", "Space Firebird (rev. 03-e set 2)", MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1980, spacefba, spacefb, spacefb, spacefb, spacefb_state, 0, ROT270, "Nintendo", "Space Firebird (rev. 02-a)", MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1980, spacefbg, spacefb, spacefb, spacefb, spacefb_state, 0, ROT270, "Nintendo (Gremlin license)", "Space Firebird (Gremlin)", MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1980, spacebrd, spacefb, spacefb, spacefb, spacefb_state, 0, ROT270, "bootleg (Karateco)", "Space Bird (bootleg)", MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1980, spacefbb, spacefb, spacefb, spacefb, spacefb_state, 0, ROT270, "bootleg", "Space Firebird (bootleg)", MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1980, spacedem, spacefb, spacefb, spacedem, spacefb_state, 0, ROT270, "Nintendo (Fortrek license)", "Space Demon", MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1980, starwarr, spacefb, spacefb, spacefb, spacefb_state, 0, ROT270, "bootleg (Potomac Mortgage)", "Star Warrior", MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/spaceg.cpp b/src/mame/drivers/spaceg.cpp index d3635c9845d..445a5ed2e72 100644 --- a/src/mame/drivers/spaceg.cpp +++ b/src/mame/drivers/spaceg.cpp @@ -497,7 +497,7 @@ INPUT_PORTS_END * *************************************/ -static MACHINE_CONFIG_START( spaceg, spaceg_state ) +static MACHINE_CONFIG_START( spaceg ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80,2500000) /* 2.5 MHz */ @@ -577,4 +577,4 @@ ROM_END * *************************************/ -GAME( 1979, spaceg, 0, spaceg, spaceg, driver_device, 0, ROT270, "Omori Electric Co., Ltd.", "Space Guerrilla", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1979, spaceg, 0, spaceg, spaceg, spaceg_state, 0, ROT270, "Omori Electric Co., Ltd.", "Space Guerrilla", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/spartanxtec.cpp b/src/mame/drivers/spartanxtec.cpp index 1b81403ad19..ece7235298b 100644 --- a/src/mame/drivers/spartanxtec.cpp +++ b/src/mame/drivers/spartanxtec.cpp @@ -356,7 +356,7 @@ PALETTE_INIT_MEMBER(spartanxtec_state, spartanxtec) -static MACHINE_CONFIG_START( spartanxtec, spartanxtec_state ) +static MACHINE_CONFIG_START( spartanxtec ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80,4000000) /* ? MHz */ @@ -443,4 +443,4 @@ ROM_END -GAME( 1987, spartanxtec, kungfum, spartanxtec, spartanxtec, driver_device, 0, ROT0, "bootleg (Tecfri)", "Spartan X (Tecfri hardware bootleg)", 0 ) +GAME( 1987, spartanxtec, kungfum, spartanxtec, spartanxtec, spartanxtec_state, 0, ROT0, "bootleg (Tecfri)", "Spartan X (Tecfri hardware bootleg)", 0 ) diff --git a/src/mame/drivers/spbactn.cpp b/src/mame/drivers/spbactn.cpp index 3f61ac65e6d..cdee5222e70 100644 --- a/src/mame/drivers/spbactn.cpp +++ b/src/mame/drivers/spbactn.cpp @@ -405,7 +405,7 @@ static GFXDECODE_START( spbactnp ) GFXDECODE_END -static MACHINE_CONFIG_START( spbactn, spbactn_state ) +static MACHINE_CONFIG_START( spbactn ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_12MHz) @@ -446,12 +446,12 @@ static MACHINE_CONFIG_START( spbactn, spbactn_state ) MCFG_YM3812_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MCFG_OKIM6295_ADD("oki", XTAL_4MHz/4, OKIM6295_PIN7_HIGH) /* Was 1.056MHz, a common clock, but no way to generate via on PCB OSCs. clock frequency & pin 7 not verified */ + MCFG_OKIM6295_ADD("oki", XTAL_4MHz/4, PIN7_HIGH) /* Was 1.056MHz, a common clock, but no way to generate via on PCB OSCs. clock frequency & pin 7 not verified */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( spbactnp, spbactn_state ) +static MACHINE_CONFIG_START( spbactnp ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_12MHz) @@ -499,7 +499,7 @@ static MACHINE_CONFIG_START( spbactnp, spbactn_state ) MCFG_YM3812_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MCFG_OKIM6295_ADD("oki", XTAL_4MHz/4, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", XTAL_4MHz/4, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) MACHINE_CONFIG_END @@ -597,6 +597,6 @@ ROM_START( spbactnp ) ROM_LOAD( "tcm1.19g.bin", 0x00000, 0x53, CRC(2c54354a) SHA1(11d8b6cdaf052b5a9fbcf6b6fbf99c5f89575cfa) ) ROM_END -GAME( 1991, spbactn, 0, spbactn, spbactn, driver_device, 0, ROT90, "Tecmo", "Super Pinball Action (US)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1991, spbactnj, spbactn, spbactn, spbactn, driver_device, 0, ROT90, "Tecmo", "Super Pinball Action (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1989, spbactnp, spbactn, spbactnp, spbactn, driver_device, 0, ROT90, "Tecmo", "Super Pinball Action (prototype)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // early proto, (c) date is 2 years earlier! +GAME( 1991, spbactn, 0, spbactn, spbactn, spbactn_state, 0, ROT90, "Tecmo", "Super Pinball Action (US)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1991, spbactnj, spbactn, spbactn, spbactn, spbactn_state, 0, ROT90, "Tecmo", "Super Pinball Action (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1989, spbactnp, spbactn, spbactnp, spbactn, spbactn_state, 0, ROT90, "Tecmo", "Super Pinball Action (prototype)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // early proto, (c) date is 2 years earlier! diff --git a/src/mame/drivers/spc1000.cpp b/src/mame/drivers/spc1000.cpp index 10b26c44c55..07b0246326e 100644 --- a/src/mame/drivers/spc1000.cpp +++ b/src/mame/drivers/spc1000.cpp @@ -458,7 +458,7 @@ extern SLOT_INTERFACE_START(spc1000_exp) SLOT_INTERFACE("vdp", SPC1000_VDP_EXP) SLOT_INTERFACE_END -static MACHINE_CONFIG_START( spc1000, spc1000_state ) +static MACHINE_CONFIG_START( spc1000 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80, XTAL_4MHz) MCFG_CPU_PROGRAM_MAP(spc1000_mem) @@ -471,7 +471,7 @@ static MACHINE_CONFIG_START( spc1000, spc1000_state ) MCFG_MC6847_FSYNC_CALLBACK(WRITELINE(spc1000_state, irq_w)) MCFG_MC6847_INPUT_CALLBACK(READ8(spc1000_state, mc6847_videoram_r)) MCFG_MC6847_CHARROM_CALLBACK(spc1000_state, get_char_rom) - MCFG_MC6847_FIXED_MODE(MC6847_MODE_GM2) + MCFG_MC6847_FIXED_MODE(mc6847_ntsc_device::MODE_GM2) // other lines not connected /* sound hardware */ @@ -520,5 +520,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1982, spc1000, 0, 0, spc1000, spc1000, driver_device, 0, "Samsung", "SPC-1000", 0 ) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 1982, spc1000, 0, 0, spc1000, spc1000, spc1000_state, 0, "Samsung", "SPC-1000", 0 ) diff --git a/src/mame/drivers/spc1500.cpp b/src/mame/drivers/spc1500.cpp index ee3fd20f9e7..5eca88df13a 100644 --- a/src/mame/drivers/spc1500.cpp +++ b/src/mame/drivers/spc1500.cpp @@ -898,7 +898,7 @@ READ8_MEMBER( spc1500_state::porta_r ) return data; } -static MACHINE_CONFIG_START( spc1500, spc1500_state ) +static MACHINE_CONFIG_START( spc1500 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80, XTAL_4MHz) MCFG_CPU_PROGRAM_MAP(spc1500_mem) @@ -974,5 +974,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1987, spc1500, 0, 0, spc1500, spc1500, driver_device, 0, "Samsung", "SPC-1500", 0 ) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 1987, spc1500, 0, 0, spc1500, spc1500, spc1500_state, 0, "Samsung", "SPC-1500", 0 ) diff --git a/src/mame/drivers/spcforce.cpp b/src/mame/drivers/spcforce.cpp index 35d68821683..ea8343c899d 100644 --- a/src/mame/drivers/spcforce.cpp +++ b/src/mame/drivers/spcforce.cpp @@ -274,7 +274,7 @@ INTERRUPT_GEN_MEMBER(spcforce_state::vblank_irq) device.execute().set_input_line(3, HOLD_LINE); } -static MACHINE_CONFIG_START( spcforce, spcforce_state ) +static MACHINE_CONFIG_START( spcforce ) /* basic machine hardware */ /* FIXME: The 8085A had a max clock of 6MHz, internally divided by 2! */ @@ -425,7 +425,7 @@ ROM_START( meteors ) ROM_END -GAME( 1980, spcforce, 0, spcforce, spcforce, driver_device, 0, ROT270, "Venture Line", "Space Force (set 1)", MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE ) -GAME( 19??, spcforc2, spcforce, spcforce, spcforc2, driver_device, 0, ROT270, "bootleg? (Elcon)", "Space Force (set 2)", MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE ) -GAME( 1981, meteor, spcforce, spcforce, spcforc2, driver_device, 0, ROT270, "Venture Line", "Meteoroids", MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE ) -GAME( 19??, meteors, spcforce, meteors, spcforc2, driver_device, 0, ROT0, "Amusement World", "Meteors", MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE ) +GAME( 1980, spcforce, 0, spcforce, spcforce, spcforce_state, 0, ROT270, "Venture Line", "Space Force (set 1)", MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE ) +GAME( 19??, spcforc2, spcforce, spcforce, spcforc2, spcforce_state, 0, ROT270, "bootleg? (Elcon)", "Space Force (set 2)", MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE ) +GAME( 1981, meteor, spcforce, spcforce, spcforc2, spcforce_state, 0, ROT270, "Venture Line", "Meteoroids", MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE ) +GAME( 19??, meteors, spcforce, meteors, spcforc2, spcforce_state, 0, ROT0, "Amusement World", "Meteors", MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/spdodgeb.cpp b/src/mame/drivers/spdodgeb.cpp index f8583a17e93..df965abe70d 100644 --- a/src/mame/drivers/spdodgeb.cpp +++ b/src/mame/drivers/spdodgeb.cpp @@ -409,7 +409,7 @@ void spdodgeb_state::machine_reset() m_last_dash[0] = m_last_dash[1] = 0; } -static MACHINE_CONFIG_START( spdodgeb, spdodgeb_state ) +static MACHINE_CONFIG_START( spdodgeb ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, XTAL_12MHz/6) /* 2MHz ? */ @@ -441,13 +441,13 @@ static MACHINE_CONFIG_START( spdodgeb, spdodgeb_state ) MCFG_SOUND_ADD("msm1", MSM5205, 384000) MCFG_MSM5205_VCLK_CB(WRITELINE(spdodgeb_state, spd_adpcm_int_1)) /* interrupt function */ - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S48_4B) /* 8kHz? */ + MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) /* 8kHz? */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.50) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.50) MCFG_SOUND_ADD("msm2", MSM5205, 384000) MCFG_MSM5205_VCLK_CB(WRITELINE(spdodgeb_state, spd_adpcm_int_2)) /* interrupt function */ - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S48_4B) /* 8kHz? */ + MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) /* 8kHz? */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.50) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.50) MACHINE_CONFIG_END @@ -576,6 +576,6 @@ ROM_END -GAME( 1987, spdodgeb, 0, spdodgeb, spdodgeb, driver_device, 0, ROT0, "Technos Japan", "Super Dodge Ball (US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, nkdodge, spdodgeb, spdodgeb, spdodgeb, driver_device, 0, ROT0, "Technos Japan", "Nekketsu Koukou Dodgeball Bu (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, nkdodgeb, spdodgeb, spdodgeb, spdodgeb, driver_device, 0, ROT0, "bootleg", "Nekketsu Koukou Dodgeball Bu (Japan, bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, spdodgeb, 0, spdodgeb, spdodgeb, spdodgeb_state, 0, ROT0, "Technos Japan", "Super Dodge Ball (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, nkdodge, spdodgeb, spdodgeb, spdodgeb, spdodgeb_state, 0, ROT0, "Technos Japan", "Nekketsu Koukou Dodgeball Bu (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, nkdodgeb, spdodgeb, spdodgeb, spdodgeb, spdodgeb_state, 0, ROT0, "bootleg", "Nekketsu Koukou Dodgeball Bu (Japan, bootleg)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/spec128.cpp b/src/mame/drivers/spec128.cpp index 9e85d1ba47f..5e5b31fbc2e 100644 --- a/src/mame/drivers/spec128.cpp +++ b/src/mame/drivers/spec128.cpp @@ -359,8 +359,8 @@ ROM_START(hc2000) ROMX_LOAD("hc2000.v2", 0x14000,0x4000, CRC(65d90464) SHA1(5e2096e6460ff2120c8ada97579fdf82c1199c09), ROM_BIOS(2)) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ -COMP( 1986, spec128, 0, 0, spectrum_128, spec_plus, driver_device, 0, "Sinclair Research Ltd", "ZX Spectrum 128" , 0 ) -COMP( 1986, specpls2, spec128, 0, spectrum_128, spec_plus, driver_device, 0, "Amstrad plc", "ZX Spectrum +2" , 0 ) -COMP( 1991, hc128, spec128, 0, spectrum_128, spec_plus, driver_device, 0, "ICE-Felix", "HC-128" , 0 ) -COMP( 1992, hc2000, spec128, 0, spectrum_128, spec_plus, driver_device, 0, "ICE-Felix", "HC-2000" , MACHINE_NOT_WORKING ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1986, spec128, 0, 0, spectrum_128, spec_plus, spectrum_state, 0, "Sinclair Research Ltd", "ZX Spectrum 128", 0 ) +COMP( 1986, specpls2, spec128, 0, spectrum_128, spec_plus, spectrum_state, 0, "Amstrad plc", "ZX Spectrum +2", 0 ) +COMP( 1991, hc128, spec128, 0, spectrum_128, spec_plus, spectrum_state, 0, "ICE-Felix", "HC-128", 0 ) +COMP( 1992, hc2000, spec128, 0, spectrum_128, spec_plus, spectrum_state, 0, "ICE-Felix", "HC-2000", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/special.cpp b/src/mame/drivers/special.cpp index 1530648d38c..228d2c6c002 100644 --- a/src/mame/drivers/special.cpp +++ b/src/mame/drivers/special.cpp @@ -49,7 +49,7 @@ static ADDRESS_MAP_START( erik_io_map, AS_IO, 8, special_state ) AM_RANGE(0xf1, 0xf1) AM_READWRITE(erik_rr_reg_r, erik_rr_reg_w) AM_RANGE(0xf2, 0xf2) AM_READWRITE(erik_rc_reg_r, erik_rc_reg_w) AM_RANGE(0xf3, 0xf3) AM_READWRITE(erik_disk_reg_r, erik_disk_reg_w) - AM_RANGE(0xf4, 0xf7) AM_DEVREADWRITE("fd1793", fd1793_t, read, write) + AM_RANGE(0xf4, 0xf7) AM_DEVREADWRITE("fd1793", fd1793_device, read, write) ADDRESS_MAP_END static ADDRESS_MAP_START(specimx_mem, AS_PROGRAM, 8, special_state ) @@ -60,7 +60,7 @@ static ADDRESS_MAP_START(specimx_mem, AS_PROGRAM, 8, special_state ) AM_RANGE( 0xffc0, 0xffdf ) AM_RAMBANK("bank4") AM_RANGE( 0xffe0, 0xffe3 ) AM_DEVREADWRITE("ppi8255", i8255_device, read, write) AM_RANGE( 0xffe4, 0xffe7 ) AM_RAM //external 8255 - AM_RANGE( 0xffe8, 0xffeb ) AM_DEVREADWRITE("fd1793", fd1793_t, read, write) + AM_RANGE( 0xffe8, 0xffeb ) AM_DEVREADWRITE("fd1793", fd1793_device, read, write) AM_RANGE( 0xffec, 0xffef ) AM_DEVREADWRITE("pit8253", pit8253_device, read, write) AM_RANGE( 0xfff0, 0xfff3 ) AM_READWRITE(specimx_disk_ctrl_r, specimx_disk_ctrl_w) AM_RANGE( 0xfff8, 0xfffb ) AM_READWRITE(specimx_video_color_r,specimx_video_color_w) @@ -358,7 +358,7 @@ static SLOT_INTERFACE_START( specimx_floppies ) SLOT_INTERFACE_END /* Machine driver */ -static MACHINE_CONFIG_START( special, special_state ) +static MACHINE_CONFIG_START( special ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8080, 2000000) MCFG_CPU_PROGRAM_MAP(specialist_mem) @@ -475,7 +475,7 @@ static MACHINE_CONFIG_DERIVED( specimx, special ) MCFG_RAM_DEFAULT_VALUE(0x00) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( erik, special_state ) +static MACHINE_CONFIG_START( erik ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 4000000) MCFG_CPU_PROGRAM_MAP(erik_mem) @@ -598,11 +598,11 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1985, special, 0, 0, special, special, special_state, special, "", "Specialist", 0 ) -COMP( 1985, specialm, special, 0, specialm, special, special_state, special, "", "Specialist M", 0 ) -COMP( 1985, pioner, special, 0, special, special, special_state, special, "", "Pioner", MACHINE_NOT_WORKING ) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 1985, special, 0, 0, special, special, special_state, special, "", "Specialist", 0 ) +COMP( 1985, specialm, special, 0, specialm, special, special_state, special, "", "Specialist M", 0 ) +COMP( 1985, pioner, special, 0, special, special, special_state, special, "", "Pioner", MACHINE_NOT_WORKING ) COMP( 1985, specialp, special, 0, specialp, specialp, special_state, special, "", "Specialist + hires graph", MACHINE_NOT_WORKING ) -COMP( 1985, lik, special, 0, special, lik, special_state, special, "", "Lik", 0 ) -COMP( 1985, specimx, special, 0, specimx, specimx, driver_device, 0, "", "Specialist MX", 0) -COMP( 1994, erik, special, 0, erik, special, special_state, erik, "", "Erik", 0 ) +COMP( 1985, lik, special, 0, special, lik, special_state, special, "", "Lik", 0 ) +COMP( 1985, specimx, special, 0, specimx, specimx, special_state, 0, "", "Specialist MX", 0 ) +COMP( 1994, erik, special, 0, erik, special, special_state, erik, "", "Erik", 0 ) diff --git a/src/mame/drivers/spectra.cpp b/src/mame/drivers/spectra.cpp index 29b3b71963e..7009475ed1a 100644 --- a/src/mame/drivers/spectra.cpp +++ b/src/mame/drivers/spectra.cpp @@ -220,7 +220,7 @@ TIMER_DEVICE_CALLBACK_MEMBER( spectra_state::outtimer) } -static MACHINE_CONFIG_START( spectra, spectra_state ) +static MACHINE_CONFIG_START( spectra ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, XTAL_3_579545MHz/4) // actually a M6503 MCFG_CPU_PROGRAM_MAP(spectra_map) @@ -272,4 +272,4 @@ ROM_START(spectra) ROM_END -GAME(1979, spectra, 0, spectra, spectra, driver_device, 0, ROT0, "Valley", "Spectra IV", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME(1979, spectra, 0, spectra, spectra, spectra_state, 0, ROT0, "Valley", "Spectra IV", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/spectrum.cpp b/src/mame/drivers/spectrum.cpp index 2f5e8ebc130..e8e6c6255eb 100644 --- a/src/mame/drivers/spectrum.cpp +++ b/src/mame/drivers/spectrum.cpp @@ -680,7 +680,7 @@ DEVICE_IMAGE_LOAD_MEMBER(spectrum_state, spectrum_cart) return image_init_result::PASS; } -MACHINE_CONFIG_START( spectrum_common, spectrum_state ) +MACHINE_CONFIG_START( spectrum_common ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, X1 / 4) /* This is verified only for the ZX Spectum. Other clones are reported to have different clocks */ @@ -966,36 +966,36 @@ ROM_START(zvezda) ROM_LOAD( "2764-far-cpu_blue.bin", 0x2000, 0x2000, CRC(ebab64bc) SHA1(8c98a8b6e927b02cf602c20a1b50838e60f7785b)) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ -COMP( 1982, spectrum, 0, 0, spectrum, spectrum, spectrum_state, spectrum, "Sinclair Research Ltd", "ZX Spectrum" , 0) -COMP( 1987, spec80k, spectrum, 0, spectrum, spectrum, spectrum_state, spectrum, "", "ZX Spectrum 80K" , MACHINE_UNOFFICIAL) -COMP( 1995, specide, spectrum, 0, spectrum, spectrum, spectrum_state, spectrum, "", "ZX Spectrum IDE" , MACHINE_UNOFFICIAL) -COMP( 1986, inves, spectrum, 0, spectrum, spec_plus, spectrum_state, spectrum, "Investronica", "Inves Spectrum 48K+" , 0) -COMP( 1985, tk90x, spectrum, 0, spectrum, spectrum, spectrum_state, spectrum, "Micro Digital", "TK 90X Color Computer" , 0) -COMP( 1986, tk95, spectrum, 0, spectrum, spec_plus, spectrum_state, spectrum, "Micro Digital", "TK 95 Color Computer" , 0) -COMP( 1985, hc85, spectrum, 0, spectrum, spectrum, spectrum_state, spectrum, "ICE-Felix", "HC-85" , 0) -COMP( 1988, hc88, spectrum, 0, spectrum, spectrum, spectrum_state, spectrum, "ICE-Felix", "HC-88" , MACHINE_NOT_WORKING) -COMP( 1990, hc90, spectrum, 0, spectrum, spectrum, spectrum_state, spectrum, "ICE-Felix", "HC-90" , 0) -COMP( 1991, hc91, spectrum, 0, spectrum, spec_plus, spectrum_state, spectrum, "ICE-Felix", "HC-91" , 0) -COMP( 1988, cobrasp, spectrum, 0, spectrum, spectrum, spectrum_state, spectrum, "ITCI", "Cobra (ITCI)" , MACHINE_NOT_WORKING) -COMP( 1988, cobra80, spectrum, 0, spectrum, spectrum, spectrum_state, spectrum, "ITCI", "Cobra 80K (ITCI)" , MACHINE_NOT_WORKING) -COMP( 1987, cip01, spectrum, 0, spectrum, spectrum, spectrum_state, spectrum, "Electronica", "CIP-01" , 0) // keyboard should be spectrum, but image was not clear -COMP( 1988, cip03, spectrum, 0, spectrum, spectrum, spectrum_state, spectrum, "Electronica", "CIP-03" , 0) // keyboard should be spectrum, but image was not clear -COMP( 1990, jet, spectrum, 0, spectrum, spectrum, spectrum_state, spectrum, "Electromagnetica", "JET" , 0) // keyboard should be spectrum, but image was not clear -COMP( 1987, dgama87, spectrum, 0, spectrum, spectrum, spectrum_state, spectrum, "Didaktik Skalica", "Didaktik Gama 87" , 0) -COMP( 1988, dgama88, spectrum, 0, spectrum, spectrum, spectrum_state, spectrum, "Didaktik Skalica", "Didaktik Gama 88" , 0) -COMP( 1989, dgama89, spectrum, 0, spectrum, spectrum, spectrum_state, spectrum, "Didaktik Skalica", "Didaktik Gama 89" , 0) -COMP( 1990, didakt90, spectrum, 0, spectrum, spectrum, spectrum_state, spectrum, "Didaktik Skalica", "Didaktik 90" , 0) -COMP( 1991, didakm91, spectrum, 0, spectrum, spec_plus, spectrum_state, spectrum, "Didaktik Skalica", "Didaktik M 91" , 0) -COMP( 1992, didakm92, spectrum, 0, spectrum, spec_plus, spectrum_state, spectrum, "Didaktik Skalica", "Didaktik M 92" , 0) -COMP( 1992, didaktk, spectrum, 0, spectrum, spec_plus, spectrum_state, spectrum, "Didaktik Skalica", "Didaktik Kompakt" , 0) -COMP( 1993, didakm93, spectrum, 0, spectrum, spec_plus, spectrum_state, spectrum, "Didaktik Skalica", "Didaktik M 93" , 0) -COMP( 1988, mistrum, spectrum, 0, spectrum, spectrum, spectrum_state, spectrum, "Amaterske RADIO", "Mistrum" , 0) // keyboard could be spectrum in some models (since it was a build-yourself design) -COMP( 1990, blitzs, spectrum, 0, spectrum, spectrum, spectrum_state, spectrum, "", "Blic" , 0) // no keyboard images found -COMP( 1990, byte, spectrum, 0, spectrum, spectrum, spectrum_state, spectrum, "", "Byte" , 0) // no keyboard images found -COMP( 199?, orizon, spectrum, 0, spectrum, spectrum, spectrum_state, spectrum, "", "Orizon-Micro" , 0) // no keyboard images found -COMP( 1993, quorum48, spectrum, 0, spectrum, spectrum, spectrum_state, spectrum, "", "Kvorum 48K" , MACHINE_NOT_WORKING) -COMP( 1993, magic6, spectrum, 0, spectrum, spectrum, spectrum_state, spectrum, "", "Magic 6" , MACHINE_NOT_WORKING) // keyboard should be spectrum, but image was not clear -COMP( 1990, compani1, spectrum, 0, spectrum, spectrum, spectrum_state, spectrum, "", "Kompanion 1" , 0) // no keyboard images found -COMP( 1990, spektrbk, spectrum, 0, spectrum, spectrum, spectrum_state, spectrum, "", "Spektr BK-001" , 0) -COMP( 1990, zvezda, spectrum, 0, spectrum, spectrum, spectrum_state, spectrum, "", "Zvezda" , 0) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1982, spectrum, 0, 0, spectrum, spectrum, spectrum_state, spectrum, "Sinclair Research Ltd", "ZX Spectrum" , 0 ) +COMP( 1987, spec80k, spectrum, 0, spectrum, spectrum, spectrum_state, spectrum, "", "ZX Spectrum 80K", MACHINE_UNOFFICIAL ) +COMP( 1995, specide, spectrum, 0, spectrum, spectrum, spectrum_state, spectrum, "", "ZX Spectrum IDE", MACHINE_UNOFFICIAL ) +COMP( 1986, inves, spectrum, 0, spectrum, spec_plus, spectrum_state, spectrum, "Investronica", "Inves Spectrum 48K+", 0 ) +COMP( 1985, tk90x, spectrum, 0, spectrum, spectrum, spectrum_state, spectrum, "Micro Digital", "TK 90X Color Computer", 0 ) +COMP( 1986, tk95, spectrum, 0, spectrum, spec_plus, spectrum_state, spectrum, "Micro Digital", "TK 95 Color Computer", 0 ) +COMP( 1985, hc85, spectrum, 0, spectrum, spectrum, spectrum_state, spectrum, "ICE-Felix", "HC-85", 0 ) +COMP( 1988, hc88, spectrum, 0, spectrum, spectrum, spectrum_state, spectrum, "ICE-Felix", "HC-88", MACHINE_NOT_WORKING ) +COMP( 1990, hc90, spectrum, 0, spectrum, spectrum, spectrum_state, spectrum, "ICE-Felix", "HC-90", 0 ) +COMP( 1991, hc91, spectrum, 0, spectrum, spec_plus, spectrum_state, spectrum, "ICE-Felix", "HC-91", 0 ) +COMP( 1988, cobrasp, spectrum, 0, spectrum, spectrum, spectrum_state, spectrum, "ITCI", "Cobra (ITCI)", MACHINE_NOT_WORKING ) +COMP( 1988, cobra80, spectrum, 0, spectrum, spectrum, spectrum_state, spectrum, "ITCI", "Cobra 80K (ITCI)", MACHINE_NOT_WORKING ) +COMP( 1987, cip01, spectrum, 0, spectrum, spectrum, spectrum_state, spectrum, "Electronica", "CIP-01", 0 ) // keyboard should be spectrum, but image was not clear +COMP( 1988, cip03, spectrum, 0, spectrum, spectrum, spectrum_state, spectrum, "Electronica", "CIP-03", 0 ) // keyboard should be spectrum, but image was not clear +COMP( 1990, jet, spectrum, 0, spectrum, spectrum, spectrum_state, spectrum, "Electromagnetica", "JET", 0 ) // keyboard should be spectrum, but image was not clear +COMP( 1987, dgama87, spectrum, 0, spectrum, spectrum, spectrum_state, spectrum, "Didaktik Skalica", "Didaktik Gama 87", 0 ) +COMP( 1988, dgama88, spectrum, 0, spectrum, spectrum, spectrum_state, spectrum, "Didaktik Skalica", "Didaktik Gama 88", 0 ) +COMP( 1989, dgama89, spectrum, 0, spectrum, spectrum, spectrum_state, spectrum, "Didaktik Skalica", "Didaktik Gama 89", 0 ) +COMP( 1990, didakt90, spectrum, 0, spectrum, spectrum, spectrum_state, spectrum, "Didaktik Skalica", "Didaktik 90", 0 ) +COMP( 1991, didakm91, spectrum, 0, spectrum, spec_plus, spectrum_state, spectrum, "Didaktik Skalica", "Didaktik M 91", 0 ) +COMP( 1992, didakm92, spectrum, 0, spectrum, spec_plus, spectrum_state, spectrum, "Didaktik Skalica", "Didaktik M 92", 0 ) +COMP( 1992, didaktk, spectrum, 0, spectrum, spec_plus, spectrum_state, spectrum, "Didaktik Skalica", "Didaktik Kompakt", 0 ) +COMP( 1993, didakm93, spectrum, 0, spectrum, spec_plus, spectrum_state, spectrum, "Didaktik Skalica", "Didaktik M 93", 0 ) +COMP( 1988, mistrum, spectrum, 0, spectrum, spectrum, spectrum_state, spectrum, "Amaterske RADIO", "Mistrum", 0 ) // keyboard could be spectrum in some models (since it was a build-yourself design) +COMP( 1990, blitzs, spectrum, 0, spectrum, spectrum, spectrum_state, spectrum, "", "Blic", 0 ) // no keyboard images found +COMP( 1990, byte, spectrum, 0, spectrum, spectrum, spectrum_state, spectrum, "", "Byte", 0 ) // no keyboard images found +COMP( 199?, orizon, spectrum, 0, spectrum, spectrum, spectrum_state, spectrum, "", "Orizon-Micro", 0 ) // no keyboard images found +COMP( 1993, quorum48, spectrum, 0, spectrum, spectrum, spectrum_state, spectrum, "", "Kvorum 48K", MACHINE_NOT_WORKING ) +COMP( 1993, magic6, spectrum, 0, spectrum, spectrum, spectrum_state, spectrum, "", "Magic 6", MACHINE_NOT_WORKING ) // keyboard should be spectrum, but image was not clear +COMP( 1990, compani1, spectrum, 0, spectrum, spectrum, spectrum_state, spectrum, "", "Kompanion 1", 0 ) // no keyboard images found +COMP( 1990, spektrbk, spectrum, 0, spectrum, spectrum, spectrum_state, spectrum, "", "Spektr BK-001", 0 ) +COMP( 1990, zvezda, spectrum, 0, spectrum, spectrum, spectrum_state, spectrum, "", "Zvezda", 0 ) diff --git a/src/mame/drivers/speedatk.cpp b/src/mame/drivers/speedatk.cpp index 5e2d0c021a7..a383be07d4b 100644 --- a/src/mame/drivers/speedatk.cpp +++ b/src/mame/drivers/speedatk.cpp @@ -304,7 +304,7 @@ WRITE8_MEMBER(speedatk_state::output_w) logerror("%02x\n",data); } -static MACHINE_CONFIG_START( speedatk, speedatk_state ) +static MACHINE_CONFIG_START( speedatk ) MCFG_CPU_ADD("maincpu", Z80,MASTER_CLOCK/2) //divider is unknown MCFG_CPU_PROGRAM_MAP(speedatk_mem) @@ -362,4 +362,4 @@ ROM_START( speedatk ) ROM_LOAD( "cb2.bpr", 0x0020, 0x0100, CRC(a604cf96) SHA1(a4ef6e77dcd3abe4c27e8e636222a5ee711a51f5) ) /* lookup table */ ROM_END -GAME( 1984, speedatk, 0, speedatk, speedatk, driver_device, 0, ROT0, "Seta Kikaku Corp.", "Speed Attack! (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, speedatk, 0, speedatk, speedatk, speedatk_state, 0, ROT0, "Seta Kikaku Corp.", "Speed Attack! (Japan)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/speedbal.cpp b/src/mame/drivers/speedbal.cpp index 6617a853e1a..cc4d2c493ae 100644 --- a/src/mame/drivers/speedbal.cpp +++ b/src/mame/drivers/speedbal.cpp @@ -258,7 +258,7 @@ GFXDECODE_END -static MACHINE_CONFIG_START( speedbal, speedbal_state ) +static MACHINE_CONFIG_START( speedbal ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_4MHz) // 4 MHz diff --git a/src/mame/drivers/speedspn.cpp b/src/mame/drivers/speedspn.cpp index 99e75c8e18d..2de4f819986 100644 --- a/src/mame/drivers/speedspn.cpp +++ b/src/mame/drivers/speedspn.cpp @@ -277,7 +277,7 @@ void speedspn_state::machine_start() } -static MACHINE_CONFIG_START( speedspn, speedspn_state ) +static MACHINE_CONFIG_START( speedspn ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80,6000000) /* 6 MHz */ @@ -306,7 +306,7 @@ static MACHINE_CONFIG_START( speedspn, speedspn_state ) MCFG_GENERIC_LATCH_8_ADD("soundlatch") - MCFG_OKIM6295_ADD("oki", 1122000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki", 1122000, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MCFG_DEVICE_ADDRESS_MAP(AS_0, oki_map) MACHINE_CONFIG_END @@ -339,4 +339,4 @@ ROM_END /*** GAME DRIVERS ************************************************************/ -GAME( 1994, speedspn, 0, speedspn, speedspn, driver_device, 0, ROT180, "TCH", "Speed Spin", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, speedspn, 0, speedspn, speedspn, speedspn_state, 0, ROT180, "TCH", "Speed Spin", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/speglsht.cpp b/src/mame/drivers/speglsht.cpp index a625bdefa15..2a682f6e8dd 100644 --- a/src/mame/drivers/speglsht.cpp +++ b/src/mame/drivers/speglsht.cpp @@ -395,7 +395,7 @@ uint32_t speglsht_state::screen_update_speglsht(screen_device &screen, bitmap_rg return 0; } -static MACHINE_CONFIG_START( speglsht, speglsht_state ) +static MACHINE_CONFIG_START( speglsht ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",ST0016_CPU, 8000000) /* 8 MHz ? */ MCFG_CPU_PROGRAM_MAP(st0016_mem) diff --git a/src/mame/drivers/spiders.cpp b/src/mame/drivers/spiders.cpp index 715faac00b3..c25b6eac5b7 100644 --- a/src/mame/drivers/spiders.cpp +++ b/src/mame/drivers/spiders.cpp @@ -541,7 +541,7 @@ INPUT_PORTS_END * *************************************/ -static MACHINE_CONFIG_START( spiders, spiders_state ) +static MACHINE_CONFIG_START( spiders ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809, 2800000) @@ -704,7 +704,7 @@ ROM_END *************************************/ /* this is a newer version with just one bug fix */ -GAME( 1981, spiders, 0, spiders, spiders, driver_device, 0, ROT270, "Sigma Enterprises Inc.", "Spiders (set 1)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE) -GAME( 1981, spiders2, spiders, spiders, spiders, driver_device, 0, ROT270, "Sigma Enterprises Inc.", "Spiders (set 2)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE) -GAME( 1981, spiders3, spiders, spiders, spiders, driver_device, 0, ROT270, "Sigma Enterprises Inc.", "Spiders (set 3)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE) -GAME( 1981, spinner, spiders, spiders, spiders, driver_device, 0, ROT270, "bootleg", "Spinner", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE) +GAME( 1981, spiders, 0, spiders, spiders, spiders_state, 0, ROT270, "Sigma Enterprises Inc.", "Spiders (set 1)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE) +GAME( 1981, spiders2, spiders, spiders, spiders, spiders_state, 0, ROT270, "Sigma Enterprises Inc.", "Spiders (set 2)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE) +GAME( 1981, spiders3, spiders, spiders, spiders, spiders_state, 0, ROT270, "Sigma Enterprises Inc.", "Spiders (set 3)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE) +GAME( 1981, spinner, spiders, spiders, spiders, spiders_state, 0, ROT270, "bootleg", "Spinner", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE) diff --git a/src/mame/drivers/spinb.cpp b/src/mame/drivers/spinb.cpp index 70962152bea..12c0f863015 100644 --- a/src/mame/drivers/spinb.cpp +++ b/src/mame/drivers/spinb.cpp @@ -519,7 +519,7 @@ WRITE8_MEMBER( spinb_state::ppia_c_w ) { // pc4 - READY line back to cpu board, but not used if (BIT(data, 5) != BIT(m_portc_a, 5)) - m_msm_a->set_prescaler_selector(*m_msm_a, BIT(data, 5) ? MSM5205_S48_4B : MSM5205_S96_4B); // S1 pin + m_msm_a->set_prescaler_selector(*m_msm_a, BIT(data, 5) ? msm5205_device::S48_4B : msm5205_device::S96_4B); // S1 pin m_msm_a->reset_w(BIT(data, 6)); m_ic5a->clear_w(!BIT(data, 6)); m_portc_a = data & 0xfe; @@ -529,7 +529,7 @@ WRITE8_MEMBER( spinb_state::ppim_c_w ) { // pc4 - READY line back to cpu board, but not used if (BIT(data, 5) != BIT(m_portc_m, 5)) - m_msm_m->set_prescaler_selector(*m_msm_m, BIT(data, 5) ? MSM5205_S48_4B : MSM5205_S96_4B); // S1 pin + m_msm_m->set_prescaler_selector(*m_msm_m, BIT(data, 5) ? msm5205_device::S48_4B : msm5205_device::S96_4B); // S1 pin m_msm_m->reset_w(BIT(data, 6)); m_ic5m->clear_w(!BIT(data, 6)); m_portc_m = data & 0xfe; @@ -637,7 +637,7 @@ uint32_t spinb_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, return 0; } -static MACHINE_CONFIG_START( spinb, spinb_state ) +static MACHINE_CONFIG_START( spinb ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_5MHz / 2) MCFG_CPU_PROGRAM_MAP(spinb_map) @@ -668,12 +668,12 @@ static MACHINE_CONFIG_START( spinb, spinb_state ) MCFG_SPEAKER_STANDARD_MONO("msmavol") MCFG_SOUND_ADD("msm_a", MSM5205, XTAL_384kHz) MCFG_MSM5205_VCLK_CB(WRITELINE(spinb_state, vck_a_w)) - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S48_4B) /* 4KHz 4-bit */ + MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) /* 4KHz 4-bit */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "msmavol", 1.0) MCFG_SPEAKER_STANDARD_MONO("msmmvol") MCFG_SOUND_ADD("msm_m", MSM5205, XTAL_384kHz) MCFG_MSM5205_VCLK_CB(WRITELINE(spinb_state, vck_m_w)) - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S48_4B) /* 4KHz 4-bit */ + MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) /* 4KHz 4-bit */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "msmmvol", 1.0) /* Devices */ diff --git a/src/mame/drivers/splash.cpp b/src/mame/drivers/splash.cpp index 38bd11cecc0..ea15d95ec8d 100644 --- a/src/mame/drivers/splash.cpp +++ b/src/mame/drivers/splash.cpp @@ -487,7 +487,7 @@ MACHINE_RESET_MEMBER(splash_state,splash) m_ret = 0x100; } -static MACHINE_CONFIG_START( splash, splash_state ) +static MACHINE_CONFIG_START( splash ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_24MHz/2) /* 12MHz (24/2) */ @@ -524,7 +524,7 @@ static MACHINE_CONFIG_START( splash, splash_state ) MCFG_SOUND_ADD("msm", MSM5205, XTAL_384kHz) MCFG_MSM5205_VCLK_CB(WRITELINE(splash_state, splash_msm5205_int)) /* IRQ handler */ - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S48_4B) /* 8KHz */ /* Sample rate = 384kHz/48 */ + MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) /* 8KHz */ /* Sample rate = 384kHz/48 */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) MACHINE_CONFIG_END @@ -542,7 +542,7 @@ INTERRUPT_GEN_MEMBER(splash_state::roldfrog_interrupt) roldfrog_update_irq(); } -static MACHINE_CONFIG_START( roldfrog, splash_state ) +static MACHINE_CONFIG_START( roldfrog ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_24MHz/2) /* 12 MHz - verified */ @@ -628,7 +628,7 @@ MACHINE_START_MEMBER(splash_state, funystrp) save_item(NAME(m_snd_interrupt_enable2)); } -static MACHINE_CONFIG_START( funystrp, splash_state ) +static MACHINE_CONFIG_START( funystrp ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_24MHz/2) /* 12 MHz (24/2) */ @@ -662,12 +662,12 @@ static MACHINE_CONFIG_START( funystrp, splash_state ) MCFG_SOUND_ADD("msm1", MSM5205, XTAL_400kHz) MCFG_MSM5205_VCLK_CB(WRITELINE(splash_state, adpcm_int1)) /* interrupt function */ - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S48_4B) /* 1 / 48 */ /* Sample rate = 400kHz/64 */ + MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) /* 1 / 48 */ /* Sample rate = 400kHz/64 */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) MCFG_SOUND_ADD("msm2", MSM5205, XTAL_400kHz) MCFG_MSM5205_VCLK_CB(WRITELINE(splash_state, adpcm_int2)) /* interrupt function */ - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S96_4B) /* 1 / 96 */ /* Sample rate = 400kHz/96 */ + MCFG_MSM5205_PRESCALER_SELECTOR(S96_4B) /* 1 / 96 */ /* Sample rate = 400kHz/96 */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) MACHINE_CONFIG_END @@ -1408,13 +1408,13 @@ DRIVER_INIT_MEMBER(splash_state,funystrp) m_maincpu->space(AS_PROGRAM).install_read_handler(0x100000, 0x1fffff, read16_delegate(FUNC(splash_state::funystrp_protection_r),this)); } -GAME( 1992, splash, 0, splash, splash, splash_state, splash, ROT0, "Gaelco / OMK Software", "Splash! (Ver. 1.2 World)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, splash10, splash, splash, splash, splash_state, splash10, ROT0, "Gaelco / OMK Software", "Splash! (Ver. 1.0 World)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, paintlad, splash, splash, splash, splash_state, splash, ROT0, "Gaelco / OMK Software", "Painted Lady (Splash) (Ver. 1.3 US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, splash, 0, splash, splash, splash_state, splash, ROT0, "Gaelco / OMK Software", "Splash! (Ver. 1.2 World)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, splash10, splash, splash, splash, splash_state, splash10, ROT0, "Gaelco / OMK Software", "Splash! (Ver. 1.0 World)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, paintlad, splash, splash, splash, splash_state, splash, ROT0, "Gaelco / OMK Software", "Painted Lady (Splash) (Ver. 1.3 US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, roldfrog, 0, roldfrog, splash, splash_state, roldfrog, ROT0, "Microhard", "The Return of Lady Frog (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, roldfroga,roldfrog, roldfrog, splash, splash_state, roldfrog, ROT0, "Microhard", "The Return of Lady Frog (set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, rebus, 0, roldfrog, splash, splash_state, rebus, ROT0, "Microhard", "Rebus", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1993, roldfrog, 0, roldfrog, splash, splash_state, roldfrog, ROT0, "Microhard", "The Return of Lady Frog (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, roldfroga,roldfrog, roldfrog, splash, splash_state, roldfrog, ROT0, "Microhard", "The Return of Lady Frog (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, rebus, 0, roldfrog, splash, splash_state, rebus, ROT0, "Microhard", "Rebus", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) GAME( 199?, funystrp, 0, funystrp, funystrp, splash_state, funystrp, ROT0, "Microhard / MagicGames", "Funny Strip", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) -GAME( 199?, puckpepl, funystrp, funystrp, funystrp, splash_state, funystrp, ROT0, "Microhard", "Puck People", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) -GAME( 199?, ringball, funystrp, funystrp, funystrp, splash_state, funystrp, ROT0, "Microhard", "Ring & Ball (unknown title)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) // Wouldn't surprise me if in-game is actually called King & Bell ... +GAME( 199?, puckpepl, funystrp, funystrp, funystrp, splash_state, funystrp, ROT0, "Microhard", "Puck People", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) +GAME( 199?, ringball, funystrp, funystrp, funystrp, splash_state, funystrp, ROT0, "Microhard", "Ring & Ball (unknown title)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) // Wouldn't surprise me if in-game is actually called King & Bell ... diff --git a/src/mame/drivers/splus.cpp b/src/mame/drivers/splus.cpp index a449d8aca88..1191a8b4882 100644 --- a/src/mame/drivers/splus.cpp +++ b/src/mame/drivers/splus.cpp @@ -682,7 +682,7 @@ INPUT_PORTS_END * Machine Driver * *************************/ -static MACHINE_CONFIG_START( splus, splus_state ) // basic machine hardware +static MACHINE_CONFIG_START( splus ) // basic machine hardware MCFG_CPU_ADD("maincpu", I80C32, CPU_CLOCK) MCFG_CPU_PROGRAM_MAP(splus_map) MCFG_CPU_IO_MAP(splus_iomap) @@ -726,5 +726,5 @@ ROM_END * Game Drivers * *************************/ -/* YEAR NAME PARENT MACHINE INPUT INIT ROT COMPANY FULLNAME FLAGS LAYOUT */ +// YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS LAYOUT GAMEL( 1994, spss4240, 0, splus, splus, splus_state, splus, ROT0, "IGT - International Game Technology", "S-Plus (SS4240) Coral Reef", MACHINE_NOT_WORKING, layout_splus ) diff --git a/src/mame/drivers/spoker.cpp b/src/mame/drivers/spoker.cpp index 2597f49176e..1f898e21734 100644 --- a/src/mame/drivers/spoker.cpp +++ b/src/mame/drivers/spoker.cpp @@ -589,7 +589,7 @@ void spoker_state::machine_reset() Machine Drivers ***************************************************************************/ -static MACHINE_CONFIG_START( spoker, spoker_state ) +static MACHINE_CONFIG_START( spoker ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z180, XTAL_12MHz / 2) /* HD64180RP8, 8 MHz? */ @@ -627,7 +627,7 @@ static MACHINE_CONFIG_START( spoker, spoker_state ) MCFG_SOUND_ADD("ymsnd", YM2413, XTAL_3_579545MHz) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.4) - MCFG_OKIM6295_ADD("oki", XTAL_12MHz / 12, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", XTAL_12MHz / 12, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -965,8 +965,8 @@ GAME( 1996, spk205us, spk306us, spoker, spoker, spoker_state, spkleftover, GAME( 1996, spk203us, spk306us, spoker, spoker, spoker_state, spkleftover, ROT0, "IGS", "Super Poker (v203US)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // needs proper machine driver GAME( 1996, spk200ua, spk306us, spoker, spoker, spoker_state, spkleftover, ROT0, "IGS", "Super Poker (v200UA)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // needs proper machine driver GAME( 1993?, spk116it, spk306us, spoker, spoker, spoker_state, spk116it, ROT0, "IGS", "Super Poker (v116IT)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993?, spk116itmx, spk306us, spoker, spoker, driver_device, 0, ROT0, "IGS", "Super Poker (v116IT-MX)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // needs proper machine driver +GAME( 1993?, spk116itmx, spk306us, spoker, spoker, spoker_state, 0, ROT0, "IGS", "Super Poker (v116IT-MX)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // needs proper machine driver GAME( 1993?, spk115it, spk306us, spoker, spoker, spoker_state, spk116it, ROT0, "IGS", "Super Poker (v115IT)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993?, spk114it, spk306us, spoker, spoker, driver_device, 0, ROT0, "IGS", "Super Poker (v114IT)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // needs proper machine driver +GAME( 1993?, spk114it, spk306us, spoker, spoker, spoker_state, 0, ROT0, "IGS", "Super Poker (v114IT)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // needs proper machine driver GAME( 1996, spk102ua, spk306us, spoker, spoker, spoker_state, spkleftover, ROT0, "IGS", "Super Poker (v102UA)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // needs proper machine driver GAME( 1993?, 3super8, 0, 3super8, 3super8, spoker_state, 3super8, ROT0, "", "3 Super 8 (Italy)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) //roms are badly dumped diff --git a/src/mame/drivers/spool99.cpp b/src/mame/drivers/spool99.cpp index 56e59cdc589..f666619d9f8 100644 --- a/src/mame/drivers/spool99.cpp +++ b/src/mame/drivers/spool99.cpp @@ -355,7 +355,7 @@ INPUT_PORTS_END -static MACHINE_CONFIG_START( spool99, spool99_state ) +static MACHINE_CONFIG_START( spool99 ) MCFG_CPU_ADD("maincpu", Z80, 24000000/8) MCFG_CPU_PROGRAM_MAP(spool99_map) @@ -379,7 +379,7 @@ static MACHINE_CONFIG_START( spool99, spool99_state ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_OKIM6295_ADD("oki", 1000000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki", 1000000, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.47) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.47) MACHINE_CONFIG_END diff --git a/src/mame/drivers/sprcros2.cpp b/src/mame/drivers/sprcros2.cpp index 812703941df..ee4d98adc36 100644 --- a/src/mame/drivers/sprcros2.cpp +++ b/src/mame/drivers/sprcros2.cpp @@ -441,7 +441,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(sprcros2_state::master_scanline) m_master_cpu->set_input_line(0, HOLD_LINE); } -static MACHINE_CONFIG_START( sprcros2, sprcros2_state ) +static MACHINE_CONFIG_START( sprcros2 ) /* basic machine hardware */ MCFG_CPU_ADD("master_cpu",Z80,MAIN_CLOCK/4) @@ -566,5 +566,5 @@ ROM_START( sprcros2a ) ROM_LOAD( "sc-60.4k", 0x0320, 0x0100, CRC(d7a4e57d) SHA1(6db02ec6aa55b05422cb505e63c71e36b4b11b4a) ) //fg clut ROM_END -GAME( 1986, sprcros2, 0, sprcros2, sprcros2, driver_device, 0, ROT0, "GM Shoji", "Super Cross II (Japan, set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, sprcros2a,sprcros2, sprcros2, sprcros2, driver_device, 0, ROT0, "GM Shoji", "Super Cross II (Japan, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, sprcros2, 0, sprcros2, sprcros2, sprcros2_state, 0, ROT0, "GM Shoji", "Super Cross II (Japan, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, sprcros2a, sprcros2, sprcros2, sprcros2, sprcros2_state, 0, ROT0, "GM Shoji", "Super Cross II (Japan, set 2)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/sprint2.cpp b/src/mame/drivers/sprint2.cpp index 0c1f21b6b74..1a0fcf15ad0 100644 --- a/src/mame/drivers/sprint2.cpp +++ b/src/mame/drivers/sprint2.cpp @@ -529,7 +529,7 @@ static GFXDECODE_START( sprint2 ) GFXDECODE_END -static MACHINE_CONFIG_START( sprint2, sprint2_state ) +static MACHINE_CONFIG_START( sprint2 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, XTAL_12_096MHz / 16) diff --git a/src/mame/drivers/sprint4.cpp b/src/mame/drivers/sprint4.cpp index 86eba1f4882..56fe8c86c7f 100644 --- a/src/mame/drivers/sprint4.cpp +++ b/src/mame/drivers/sprint4.cpp @@ -409,7 +409,7 @@ static GFXDECODE_START( sprint4 ) GFXDECODE_END -static MACHINE_CONFIG_START( sprint4, sprint4_state ) +static MACHINE_CONFIG_START( sprint4 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, PIXEL_CLOCK / 8) @@ -481,5 +481,5 @@ ROM_START( sprint4a ) ROM_END -GAME( 1977, sprint4, 0, sprint4, sprint4, driver_device, 0, ROT180, "Atari", "Sprint 4 (set 1)", MACHINE_SUPPORTS_SAVE ) /* large cars */ -GAME( 1977, sprint4a, sprint4, sprint4, sprint4, driver_device, 0, ROT180, "Atari", "Sprint 4 (set 2)", MACHINE_SUPPORTS_SAVE ) /* small cars */ +GAME( 1977, sprint4, 0, sprint4, sprint4, sprint4_state, 0, ROT180, "Atari", "Sprint 4 (set 1)", MACHINE_SUPPORTS_SAVE ) /* large cars */ +GAME( 1977, sprint4a, sprint4, sprint4, sprint4, sprint4_state, 0, ROT180, "Atari", "Sprint 4 (set 2)", MACHINE_SUPPORTS_SAVE ) /* small cars */ diff --git a/src/mame/drivers/sprint8.cpp b/src/mame/drivers/sprint8.cpp index dadaeb92c2a..1787e21f7cc 100644 --- a/src/mame/drivers/sprint8.cpp +++ b/src/mame/drivers/sprint8.cpp @@ -456,7 +456,7 @@ static GFXDECODE_START( sprint8 ) GFXDECODE_END -static MACHINE_CONFIG_START( sprint8, sprint8_state ) +static MACHINE_CONFIG_START( sprint8 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6800, 11055000 / 11) /* ? */ @@ -532,5 +532,5 @@ ROM_START( sprint8a ) ROM_END -GAME( 1977, sprint8, 0, sprint8, sprint8, driver_device, 0, ROT0, "Atari", "Sprint 8", MACHINE_SUPPORTS_SAVE ) -GAME( 1977, sprint8a, sprint8, sprint8, sprint8p, driver_device, 0, ROT0, "Atari", "Sprint 8 (play tag & chase)", MACHINE_SUPPORTS_SAVE ) +GAME( 1977, sprint8, 0, sprint8, sprint8, sprint8_state, 0, ROT0, "Atari", "Sprint 8", MACHINE_SUPPORTS_SAVE ) +GAME( 1977, sprint8a, sprint8, sprint8, sprint8p, sprint8_state, 0, ROT0, "Atari", "Sprint 8 (play tag & chase)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/spy.cpp b/src/mame/drivers/spy.cpp index 6d0553fd57f..87e27afd992 100644 --- a/src/mame/drivers/spy.cpp +++ b/src/mame/drivers/spy.cpp @@ -492,7 +492,7 @@ void spy_state::machine_reset() m_old_3f90 = -1; } -static MACHINE_CONFIG_START( spy, spy_state ) +static MACHINE_CONFIG_START( spy ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809, 3000000) /* ? */ @@ -608,5 +608,5 @@ ROM_START( spyu ) ROM_END -GAME( 1989, spy, 0, spy, spy, driver_device, 0, ROT0, "Konami", "S.P.Y. - Special Project Y (World ver. N)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, spyu, spy, spy, spy, driver_device, 0, ROT0, "Konami", "S.P.Y. - Special Project Y (US ver. M)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, spy, 0, spy, spy, spy_state, 0, ROT0, "Konami", "S.P.Y. - Special Project Y (World ver. N)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, spyu, spy, spy, spy, spy_state, 0, ROT0, "Konami", "S.P.Y. - Special Project Y (US ver. M)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/spyhuntertec.cpp b/src/mame/drivers/spyhuntertec.cpp index 05c8126f29d..6894c520a2e 100644 --- a/src/mame/drivers/spyhuntertec.cpp +++ b/src/mame/drivers/spyhuntertec.cpp @@ -664,7 +664,7 @@ void spyhuntertec_state::machine_reset() -static MACHINE_CONFIG_START( spyhuntertec, spyhuntertec_state ) +static MACHINE_CONFIG_START( spyhuntertec ) // note: no ctc, no nvram // 2*z80, 3*ay8912 diff --git a/src/mame/drivers/squale.cpp b/src/mame/drivers/squale.cpp index f3644c61104..5e191bdf386 100644 --- a/src/mame/drivers/squale.cpp +++ b/src/mame/drivers/squale.cpp @@ -57,6 +57,7 @@ #include "emu.h" #include "bus/generic/carts.h" +#include "bus/generic/slot.h" #include "cpu/m6809/m6809.h" #include "machine/6821pia.h" #include "machine/6850acia.h" @@ -139,7 +140,7 @@ private: required_device m_pia_u75; required_device m_ef9365; required_device m_maincpu; - required_device m_fdc; + required_device m_fdc; required_device m_floppy0; required_device m_floppy1; floppy_image_device *m_floppy; @@ -624,7 +625,7 @@ static ADDRESS_MAP_START(squale_mem, AS_PROGRAM, 8, squale_state) AM_RANGE(0xf048,0xf04b) AM_DEVREADWRITE("pia_u72", pia6821_device, read, write) AM_RANGE(0xf050,0xf05f) AM_DEVREADWRITE("ef6850", acia6850_device, data_r, data_w) AM_RANGE(0xf060,0xf06f) AM_DEVREADWRITE("ay8910", ay8910_device, data_r, address_data_w) - AM_RANGE(0xf080,0xf083) AM_DEVREADWRITE("wd1770", wd1770_t, read, write) + AM_RANGE(0xf080,0xf083) AM_DEVREADWRITE("wd1770", wd1770_device, read, write) AM_RANGE(0xf08a,0xf08a) AM_READWRITE( fdc_sel0_r, fdc_sel0_w ) AM_RANGE(0xf08b,0xf08b) AM_READWRITE( fdc_sel1_r, fdc_sel1_w ) AM_RANGE(0xf100,0xffff) AM_ROMBANK("rom_bank"); @@ -776,7 +777,7 @@ void squale_state::machine_reset() { } -static MACHINE_CONFIG_START( squale, squale_state ) +static MACHINE_CONFIG_START( squale ) /* basic machine hardware */ 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) @@ -823,7 +824,7 @@ static MACHINE_CONFIG_START( squale, squale_state ) MCFG_DEVICE_ADD("ef9365", EF9365, VIDEO_CLOCK) MCFG_EF936X_PALETTE("palette") MCFG_EF936X_BITPLANES_CNT(4); - MCFG_EF936X_DISPLAYMODE(EF936X_256x256_DISPLAY_MODE); + MCFG_EF936X_DISPLAYMODE(DISPLAY_MODE_256x256); MCFG_TIMER_DRIVER_ADD_SCANLINE("squale_sl", squale_state, squale_scanline, "screen", 0, 10) /* Floppy */ @@ -852,5 +853,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1984, squale, 0, 0, squale, squale,driver_device, 0, "Apollo 7", "Squale", MACHINE_TYPE_COMPUTER ) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 1984, squale, 0, 0, squale, squale, squale_state, 0, "Apollo 7", "Squale", 0 ) diff --git a/src/mame/drivers/srmp2.cpp b/src/mame/drivers/srmp2.cpp index 1d7c3027880..05f6230552e 100644 --- a/src/mame/drivers/srmp2.cpp +++ b/src/mame/drivers/srmp2.cpp @@ -1133,7 +1133,7 @@ static GFXDECODE_START( srmp3 ) GFXDECODE_END -static MACHINE_CONFIG_START( srmp2, srmp2_state ) +static MACHINE_CONFIG_START( srmp2 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000,16000000/2) /* 8.00 MHz */ @@ -1172,12 +1172,12 @@ static MACHINE_CONFIG_START( srmp2, srmp2_state ) MCFG_SOUND_ADD("msm", MSM5205, 384000) MCFG_MSM5205_VCLK_CB(WRITELINE(srmp2_state, adpcm_int)) /* IRQ handler */ - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S48_4B) /* 8 KHz, 4 Bits */ + MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) /* 8 KHz, 4 Bits */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.45) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( srmp3, srmp2_state ) +static MACHINE_CONFIG_START( srmp3 ) /* basic machine hardware */ @@ -1219,7 +1219,7 @@ static MACHINE_CONFIG_START( srmp3, srmp2_state ) MCFG_SOUND_ADD("msm", MSM5205, 384000) MCFG_MSM5205_VCLK_CB(WRITELINE(srmp2_state, adpcm_int)) /* IRQ handler */ - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S48_4B) /* 8 KHz, 4 Bits */ + MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) /* 8 KHz, 4 Bits */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.45) MACHINE_CONFIG_END @@ -1232,7 +1232,7 @@ static MACHINE_CONFIG_DERIVED( rmgoldyh, srmp3 ) MCFG_MACHINE_START_OVERRIDE(srmp2_state,rmgoldyh) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( mjyuugi, srmp2_state ) +static MACHINE_CONFIG_START( mjyuugi ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000,16000000/2) /* 8.00 MHz */ @@ -1271,7 +1271,7 @@ static MACHINE_CONFIG_START( mjyuugi, srmp2_state ) MCFG_SOUND_ADD("msm", MSM5205, 384000) MCFG_MSM5205_VCLK_CB(WRITELINE(srmp2_state, adpcm_int)) /* IRQ handler */ - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S48_4B) /* 8 KHz, 4 Bits */ + MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) /* 8 KHz, 4 Bits */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.45) MACHINE_CONFIG_END @@ -1545,11 +1545,11 @@ ROM_END -GAME( 1987, srmp1, 0, srmp2, srmp2, driver_device, 0, ROT0, "Seta", "Super Real Mahjong Part 1 (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, srmp2, 0, srmp2, srmp2, driver_device, 0, ROT0, "Seta", "Super Real Mahjong Part 2 (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, srmp3, 0, srmp3, srmp3, driver_device, 0, ROT0, "Seta", "Super Real Mahjong Part 3 (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, rmgoldyh, srmp3, rmgoldyh, rmgoldyh, driver_device, 0, ROT0, "Seta (Alba license)", "Real Mahjong Gold Yumehai / Super Real Mahjong GOLD part.2 [BET] (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, mjyuugi, 0, mjyuugi, mjyuugi, driver_device, 0, ROT0, "Visco", "Mahjong Yuugi (Japan set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, mjyuugia, mjyuugi, mjyuugi, mjyuugi, driver_device, 0, ROT0, "Visco", "Mahjong Yuugi (Japan set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, ponchin, 0, mjyuugi, ponchin, driver_device, 0, ROT0, "Visco", "Mahjong Pon Chin Kan (Japan set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, ponchina, ponchin, mjyuugi, ponchin, driver_device, 0, ROT0, "Visco", "Mahjong Pon Chin Kan (Japan set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, srmp1, 0, srmp2, srmp2, srmp2_state, 0, ROT0, "Seta", "Super Real Mahjong Part 1 (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, srmp2, 0, srmp2, srmp2, srmp2_state, 0, ROT0, "Seta", "Super Real Mahjong Part 2 (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, srmp3, 0, srmp3, srmp3, srmp2_state, 0, ROT0, "Seta", "Super Real Mahjong Part 3 (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, rmgoldyh, srmp3, rmgoldyh, rmgoldyh, srmp2_state, 0, ROT0, "Seta (Alba license)", "Real Mahjong Gold Yumehai / Super Real Mahjong GOLD part.2 [BET] (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, mjyuugi, 0, mjyuugi, mjyuugi, srmp2_state, 0, ROT0, "Visco", "Mahjong Yuugi (Japan set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, mjyuugia, mjyuugi, mjyuugi, mjyuugi, srmp2_state, 0, ROT0, "Visco", "Mahjong Yuugi (Japan set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, ponchin, 0, mjyuugi, ponchin, srmp2_state, 0, ROT0, "Visco", "Mahjong Pon Chin Kan (Japan set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, ponchina, ponchin, mjyuugi, ponchin, srmp2_state, 0, ROT0, "Visco", "Mahjong Pon Chin Kan (Japan set 2)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/srmp5.cpp b/src/mame/drivers/srmp5.cpp index 572da2addbe..8e8c6a5361e 100644 --- a/src/mame/drivers/srmp5.cpp +++ b/src/mame/drivers/srmp5.cpp @@ -551,7 +551,7 @@ static GFXDECODE_START( srmp5 ) //GFXDECODE_ENTRY( "gfx1", 0, tile_16x16x8_layout, 0x0, 0x800 ) GFXDECODE_END -static MACHINE_CONFIG_START( srmp5, srmp5_state ) +static MACHINE_CONFIG_START( srmp5 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",ST0016_CPU,8000000) diff --git a/src/mame/drivers/srmp6.cpp b/src/mame/drivers/srmp6.cpp index 5add9eef53d..8e4c2ff22df 100644 --- a/src/mame/drivers/srmp6.cpp +++ b/src/mame/drivers/srmp6.cpp @@ -676,7 +676,7 @@ INPUT_PORTS_END Machine driver ***************************************************************************/ -static MACHINE_CONFIG_START( srmp6, srmp6_state ) +static MACHINE_CONFIG_START( srmp6 ) MCFG_CPU_ADD("maincpu", M68000, 16000000) MCFG_CPU_PROGRAM_MAP(srmp6_map) @@ -733,4 +733,4 @@ ROM_END Game driver(s) ***************************************************************************/ -GAME( 1995, srmp6, 0, srmp6, srmp6, driver_device, 0, ROT0, "Seta", "Super Real Mahjong P6 (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND) +GAME( 1995, srmp6, 0, srmp6, srmp6, srmp6_state, 0, ROT0, "Seta", "Super Real Mahjong P6 (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND) diff --git a/src/mame/drivers/srumbler.cpp b/src/mame/drivers/srumbler.cpp index 829f3aa2b6f..b1350b3cfa9 100644 --- a/src/mame/drivers/srumbler.cpp +++ b/src/mame/drivers/srumbler.cpp @@ -243,7 +243,7 @@ GFXDECODE_END -static MACHINE_CONFIG_START( srumbler, srumbler_state ) +static MACHINE_CONFIG_START( srumbler ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809, 1500000) /* 1.5 MHz (?) */ @@ -472,7 +472,7 @@ ROM_END -GAME( 1986, srumbler, 0, srumbler, srumbler, driver_device, 0, ROT270, "Capcom", "The Speed Rumbler (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, srumbler2, srumbler, srumbler, srumbler, driver_device, 0, ROT270, "Capcom", "The Speed Rumbler (set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, srumbler3, srumbler, srumbler, srumbler, driver_device, 0, ROT270, "Capcom (Tecfri license)", "The Speed Rumbler (set 3)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, rushcrsh, srumbler, srumbler, srumbler, driver_device, 0, ROT270, "Capcom", "Rush & Crash (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, srumbler, 0, srumbler, srumbler, srumbler_state, 0, ROT270, "Capcom", "The Speed Rumbler (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, srumbler2, srumbler, srumbler, srumbler, srumbler_state, 0, ROT270, "Capcom", "The Speed Rumbler (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, srumbler3, srumbler, srumbler, srumbler, srumbler_state, 0, ROT270, "Capcom (Tecfri license)", "The Speed Rumbler (set 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, rushcrsh, srumbler, srumbler, srumbler, srumbler_state, 0, ROT270, "Capcom", "Rush & Crash (Japan)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/ssem.cpp b/src/mame/drivers/ssem.cpp index 20e684d8493..7f6b1a85351 100644 --- a/src/mame/drivers/ssem.cpp +++ b/src/mame/drivers/ssem.cpp @@ -625,7 +625,7 @@ void ssem_state::machine_reset() m_store_line = 0; } -static MACHINE_CONFIG_START( ssem, ssem_state ) +static MACHINE_CONFIG_START( ssem ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", SSEMCPU, 700) MCFG_CPU_PROGRAM_MAP(ssem_map) @@ -649,5 +649,5 @@ ROM_START( ssem ) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ -COMP(1948, ssem, 0, 0, ssem, ssem, driver_device, 0, "Manchester University", "Small-Scale Experimental Machine (SSEM), 'Baby'", MACHINE_NO_SOUND_HW | MACHINE_SUPPORTS_SAVE ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME +COMP(1948, ssem, 0, 0, ssem, ssem, ssem_state, 0, "Manchester University", "Small-Scale Experimental Machine (SSEM), 'Baby'", MACHINE_NO_SOUND_HW | MACHINE_SUPPORTS_SAVE) diff --git a/src/mame/drivers/ssfindo.cpp b/src/mame/drivers/ssfindo.cpp index b611d16a3ad..45d118b3d02 100644 --- a/src/mame/drivers/ssfindo.cpp +++ b/src/mame/drivers/ssfindo.cpp @@ -783,7 +783,7 @@ static INPUT_PORTS_START( tetfight ) INPUT_PORTS_END -static MACHINE_CONFIG_START( ssfindo, ssfindo_state ) +static MACHINE_CONFIG_START( ssfindo ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", ARM7, 54000000) // guess... @@ -924,6 +924,6 @@ DRIVER_INIT_MEMBER(ssfindo_state,tetfight) m_iocr_hack=1; } -GAME( 1999, ssfindo, 0, ssfindo, ssfindo, ssfindo_state, ssfindo, ROT0, "Icarus", "See See Find Out", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1999, ppcar, 0, ppcar, ppcar, ssfindo_state, ppcar, ROT0, "Icarus", "Pang Pang Car", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 2001, tetfight,0, tetfight, tetfight, ssfindo_state, tetfight,ROT0, "Sego", "Tetris Fighters", MACHINE_NO_SOUND | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +GAME( 1999, ssfindo, 0, ssfindo, ssfindo, ssfindo_state, ssfindo, ROT0, "Icarus", "See See Find Out", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1999, ppcar, 0, ppcar, ppcar, ssfindo_state, ppcar, ROT0, "Icarus", "Pang Pang Car", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 2001, tetfight,0, tetfight, tetfight, ssfindo_state, tetfight, ROT0, "Sego", "Tetris Fighters", MACHINE_NO_SOUND | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/sshangha.cpp b/src/mame/drivers/sshangha.cpp index 012ce5bad91..f6c3c2990d0 100644 --- a/src/mame/drivers/sshangha.cpp +++ b/src/mame/drivers/sshangha.cpp @@ -378,7 +378,7 @@ DECO16IC_BANK_CB_MEMBER(sshangha_state::bank_callback) return (bank >> 4) * 0x1000; } -static MACHINE_CONFIG_START( sshangha, sshangha_state ) +static MACHINE_CONFIG_START( sshangha ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 28000000/2) @@ -434,7 +434,7 @@ static MACHINE_CONFIG_START( sshangha, sshangha_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.33) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.33) - MCFG_OKIM6295_ADD("oki", 1023924, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki", 1023924, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.27) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.27) MACHINE_CONFIG_END diff --git a/src/mame/drivers/sshot.cpp b/src/mame/drivers/sshot.cpp index 1d8eca3b2da..68c27d8fce9 100644 --- a/src/mame/drivers/sshot.cpp +++ b/src/mame/drivers/sshot.cpp @@ -337,7 +337,7 @@ static GFXDECODE_START( supershot ) GFXDECODE_ENTRY( "gfx", 0, supershot_charlayout, 0, 1 ) GFXDECODE_END -static MACHINE_CONFIG_START( supershot, supershot_state ) +static MACHINE_CONFIG_START( supershot ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", SCMP, XTAL_11_289MHz/4) @@ -396,5 +396,5 @@ ROM_START( gunchamps ) ROM_END -GAME( 1979, sshot, 0, supershot, supershot, driver_device, 0, ROT0, "Model Racing", "Super Shot", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND ) -GAMEL(1980, gunchamps, gunchamp, supershot, supershot, driver_device, 0, ROT0, "Model Racing", "Gun Champ (newer, Super Shot hardware)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND | MACHINE_NOT_WORKING, layout_gunchamps ) +GAME( 1979, sshot, 0, supershot, supershot, supershot_state, 0, ROT0, "Model Racing", "Super Shot", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND ) +GAMEL(1980, gunchamps, gunchamp, supershot, supershot, supershot_state, 0, ROT0, "Model Racing", "Gun Champ (newer, Super Shot hardware)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND | MACHINE_NOT_WORKING, layout_gunchamps ) diff --git a/src/mame/drivers/ssingles.cpp b/src/mame/drivers/ssingles.cpp index badf29eccb7..d3c0f7e7e92 100644 --- a/src/mame/drivers/ssingles.cpp +++ b/src/mame/drivers/ssingles.cpp @@ -536,7 +536,7 @@ static GFXDECODE_START( atamanot ) GFXDECODE_ENTRY( "kanji_lc", 0, layout_8x16, 0, 8 ) GFXDECODE_END -static MACHINE_CONFIG_START( ssingles, ssingles_state ) +static MACHINE_CONFIG_START( ssingles ) MCFG_CPU_ADD("maincpu", Z80,4000000) /* ? MHz */ MCFG_CPU_PROGRAM_MAP(ssingles_map) diff --git a/src/mame/drivers/sslam.cpp b/src/mame/drivers/sslam.cpp index 6bad5f3dc21..f56ca6f9dec 100644 --- a/src/mame/drivers/sslam.cpp +++ b/src/mame/drivers/sslam.cpp @@ -694,7 +694,7 @@ GFXDECODE_END /* Machine Driver */ -static MACHINE_CONFIG_START( sslam, sslam_state ) +static MACHINE_CONFIG_START( sslam ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 12000000) /* 12 MHz */ @@ -722,11 +722,11 @@ static MACHINE_CONFIG_START( sslam, sslam_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", 1000000, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", 1000000, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( powerbls, sslam_state ) +static MACHINE_CONFIG_START( powerbls ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 12000000) /* 12 MHz */ @@ -756,7 +756,7 @@ static MACHINE_CONFIG_START( powerbls, sslam_state ) MCFG_GENERIC_LATCH_8_ADD("soundlatch") - MCFG_OKIM6295_ADD("oki", 1000000, OKIM6295_PIN7_HIGH) /* verified on original PCB */ + MCFG_OKIM6295_ADD("oki", 1000000, PIN7_HIGH) /* verified on original PCB */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) MACHINE_CONFIG_END @@ -936,7 +936,7 @@ DRIVER_INIT_MEMBER(sslam_state,powerbls) } -GAME( 1993, sslam, 0, sslam, sslam, sslam_state, sslam, ROT0, "Playmark", "Super Slam (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, sslama, sslam, sslam, sslam, sslam_state, sslam, ROT0, "Playmark", "Super Slam (set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, sslamb, sslam, sslam, sslam, sslam_state, sslam, ROT0, "Playmark", "Super Slam (set 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, sslam, 0, sslam, sslam, sslam_state, sslam, ROT0, "Playmark", "Super Slam (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, sslama, sslam, sslam, sslam, sslam_state, sslam, ROT0, "Playmark", "Super Slam (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, sslamb, sslam, sslam, sslam, sslam_state, sslam, ROT0, "Playmark", "Super Slam (set 3)", MACHINE_SUPPORTS_SAVE ) GAME( 1994, powerbals,powerbal, powerbls, powerbls, sslam_state, powerbls, ROT0, "Playmark", "Power Balls (Super Slam conversion)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/ssozumo.cpp b/src/mame/drivers/ssozumo.cpp index ce68b106b13..2c7fe9c11c0 100644 --- a/src/mame/drivers/ssozumo.cpp +++ b/src/mame/drivers/ssozumo.cpp @@ -197,7 +197,7 @@ INTERRUPT_GEN_MEMBER(ssozumo_state::sound_timer_irq) device.execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE); } -static MACHINE_CONFIG_START( ssozumo, ssozumo_state ) +static MACHINE_CONFIG_START( ssozumo ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, 1200000) /* 1.2 MHz ???? */ @@ -296,4 +296,4 @@ ROM_END -GAME( 1984, ssozumo, 0, ssozumo, ssozumo, driver_device, 0, ROT270, "Technos Japan", "Syusse Oozumou (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, ssozumo, 0, ssozumo, ssozumo, ssozumo_state, 0, ROT270, "Technos Japan", "Syusse Oozumou (Japan)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/sspeedr.cpp b/src/mame/drivers/sspeedr.cpp index cbda22e932d..ea9be851d59 100644 --- a/src/mame/drivers/sspeedr.cpp +++ b/src/mame/drivers/sspeedr.cpp @@ -190,7 +190,7 @@ static GFXDECODE_START( sspeedr ) GFXDECODE_END -static MACHINE_CONFIG_START( sspeedr, sspeedr_state ) +static MACHINE_CONFIG_START( sspeedr ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_19_968MHz/8) @@ -234,4 +234,4 @@ ROM_START( sspeedr ) ROM_END -GAMEL( 1979, sspeedr, 0, sspeedr, sspeedr, driver_device, 0, ROT270, "Midway", "Super Speed Race", MACHINE_NO_SOUND, layout_sspeedr ) +GAMEL( 1979, sspeedr, 0, sspeedr, sspeedr, sspeedr_state, 0, ROT270, "Midway", "Super Speed Race", MACHINE_NO_SOUND, layout_sspeedr ) diff --git a/src/mame/drivers/ssrj.cpp b/src/mame/drivers/ssrj.cpp index be3621b183c..469f2aefb41 100644 --- a/src/mame/drivers/ssrj.cpp +++ b/src/mame/drivers/ssrj.cpp @@ -139,7 +139,7 @@ static GFXDECODE_START( ssrj ) GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0, 0x10 ) GFXDECODE_END -static MACHINE_CONFIG_START( ssrj, ssrj_state ) +static MACHINE_CONFIG_START( ssrj ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80,8000000/2) @@ -190,4 +190,4 @@ ROM_START( ssrj ) ROM_END -GAME( 1985, ssrj, 0, ssrj, ssrj, driver_device, 0, ROT90, "Taito Corporation", "Super Speed Race Junior (Japan)", MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1985, ssrj, 0, ssrj, ssrj, ssrj_state, 0, ROT90, "Taito Corporation", "Super Speed Race Junior (Japan)", MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/sstrangr.cpp b/src/mame/drivers/sstrangr.cpp index 97da000c732..fb59e1a8c5a 100644 --- a/src/mame/drivers/sstrangr.cpp +++ b/src/mame/drivers/sstrangr.cpp @@ -184,7 +184,7 @@ static INPUT_PORTS_START( sstrangr ) INPUT_PORTS_END -static MACHINE_CONFIG_START( sstrangr, sstrangr_state ) +static MACHINE_CONFIG_START( sstrangr ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",I8080,1996800) /* clock is a guess, taken from mw8080bw */ @@ -289,5 +289,5 @@ ROM_START( sstrangr2 ) ROM_END -GAMEL( 1978, sstrangr, 0, sstrangr, sstrangr, driver_device, 0, ROT270, "Yachiyo Electronics, Ltd.", "Space Stranger", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE, layout_sstrangr ) -GAME( 1979, sstrangr2,sstrangr, sstrngr2, sstrngr2, driver_device, 0, ROT270, "Yachiyo Electronics, Ltd.", "Space Stranger 2", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) +GAMEL( 1978, sstrangr, 0, sstrangr, sstrangr, sstrangr_state, 0, ROT270, "Yachiyo Electronics, Ltd.", "Space Stranger", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE, layout_sstrangr ) +GAME( 1979, sstrangr2, sstrangr, sstrngr2, sstrngr2, sstrangr_state, 0, ROT270, "Yachiyo Electronics, Ltd.", "Space Stranger 2", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/ssv.cpp b/src/mame/drivers/ssv.cpp index a05ab4313a6..26a41dcb49f 100644 --- a/src/mame/drivers/ssv.cpp +++ b/src/mame/drivers/ssv.cpp @@ -2567,7 +2567,7 @@ DRIVER_INIT_MEMBER(ssv_state,jsk) { init(0); save_item(NAME(m_latche #define SSV_VBEND 0 #define SSV_VBSTART 0xf0 -static MACHINE_CONFIG_START( ssv, ssv_state ) +static MACHINE_CONFIG_START( ssv ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", V60, SSV_MASTER_CLOCK) /* Based on STA-0001 & STA-0001B System boards */ diff --git a/src/mame/drivers/ssystem3.cpp b/src/mame/drivers/ssystem3.cpp index bf793b6a82e..ad655d8bd01 100644 --- a/src/mame/drivers/ssystem3.cpp +++ b/src/mame/drivers/ssystem3.cpp @@ -286,7 +286,7 @@ INPUT_PORTS_END -static MACHINE_CONFIG_START( ssystem3, ssystem3_state ) +static MACHINE_CONFIG_START( ssystem3 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, 1000000) MCFG_CPU_PROGRAM_MAP(ssystem3_map) @@ -327,6 +327,6 @@ ROM_END ***************************************************************************/ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS CONS( 1979, ssystem3, 0, 0, ssystem3, ssystem3, ssystem3_state, ssystem3, "SciSys / Novag", "Chess Champion Super System III", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) //chess champion MK III in germany diff --git a/src/mame/drivers/st17xx.cpp b/src/mame/drivers/st17xx.cpp index 5f45b8a23fb..1358ce0ea78 100644 --- a/src/mame/drivers/st17xx.cpp +++ b/src/mame/drivers/st17xx.cpp @@ -85,7 +85,7 @@ void st17xx_state::machine_start() /* Machine Driver */ -static MACHINE_CONFIG_START( st17xx, st17xx_state ) +static MACHINE_CONFIG_START( st17xx ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", ARM7, 50000000) /* speed unknown */ MCFG_CPU_PROGRAM_MAP(cpu_map) @@ -174,14 +174,14 @@ ROM_END /* System Drivers */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -CONS( 200?, st1700h, 0, 0, st17xx, st17xx, driver_device, 0, "Saturn", "ST-1700 (headphone version)", MACHINE_IS_SKELETON ) -CONS( 200?, st1701, 0, 0, st17xx, st17xx, driver_device, 0, "Saturn", "ST-1701", MACHINE_IS_SKELETON ) -CONS( 200?, st1702, 0, 0, st17xx, st17xx, driver_device, 0, "Saturn", "ST-1702", MACHINE_IS_SKELETON ) -CONS( 200?, st1703, 0, 0, st17xx, st17xx, driver_device, 0, "Saturn", "ST-1703", MACHINE_IS_SKELETON ) -CONS( 200?, st1704, 0, 0, st17xx, st17xx, driver_device, 0, "Saturn", "ST-1704", MACHINE_IS_SKELETON ) -CONS( 200?, st1705, 0, 0, st17xx, st17xx, driver_device, 0, "Saturn", "ST-1705", MACHINE_IS_SKELETON ) -CONS( 200?, st1706, 0, 0, st17xx, st17xx, driver_device, 0, "Saturn", "ST-1706", MACHINE_IS_SKELETON ) -CONS( 200?, st1707, 0, 0, st17xx, st17xx, driver_device, 0, "Saturn", "ST-1707", MACHINE_IS_SKELETON ) -CONS( 200?, st1708, 0, 0, st17xx, st17xx, driver_device, 0, "Saturn", "ST-1708", MACHINE_IS_SKELETON ) -CONS( 200?, st1714, 0, 0, st17xx, st17xx, driver_device, 0, "Saturn", "ST-1714", MACHINE_IS_SKELETON ) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +CONS( 200?, st1700h, 0, 0, st17xx, st17xx, st17xx_state, 0, "Saturn", "ST-1700 (headphone version)", MACHINE_IS_SKELETON ) +CONS( 200?, st1701, 0, 0, st17xx, st17xx, st17xx_state, 0, "Saturn", "ST-1701", MACHINE_IS_SKELETON ) +CONS( 200?, st1702, 0, 0, st17xx, st17xx, st17xx_state, 0, "Saturn", "ST-1702", MACHINE_IS_SKELETON ) +CONS( 200?, st1703, 0, 0, st17xx, st17xx, st17xx_state, 0, "Saturn", "ST-1703", MACHINE_IS_SKELETON ) +CONS( 200?, st1704, 0, 0, st17xx, st17xx, st17xx_state, 0, "Saturn", "ST-1704", MACHINE_IS_SKELETON ) +CONS( 200?, st1705, 0, 0, st17xx, st17xx, st17xx_state, 0, "Saturn", "ST-1705", MACHINE_IS_SKELETON ) +CONS( 200?, st1706, 0, 0, st17xx, st17xx, st17xx_state, 0, "Saturn", "ST-1706", MACHINE_IS_SKELETON ) +CONS( 200?, st1707, 0, 0, st17xx, st17xx, st17xx_state, 0, "Saturn", "ST-1707", MACHINE_IS_SKELETON ) +CONS( 200?, st1708, 0, 0, st17xx, st17xx, st17xx_state, 0, "Saturn", "ST-1708", MACHINE_IS_SKELETON ) +CONS( 200?, st1714, 0, 0, st17xx, st17xx, st17xx_state, 0, "Saturn", "ST-1714", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/st_mp100.cpp b/src/mame/drivers/st_mp100.cpp index e32d85abb60..751ebe438f3 100644 --- a/src/mame/drivers/st_mp100.cpp +++ b/src/mame/drivers/st_mp100.cpp @@ -699,7 +699,7 @@ TIMER_DEVICE_CALLBACK_MEMBER( st_mp100_state::u11_timer ) m_pia_u11->ca1_w(m_u11_timer); } -static MACHINE_CONFIG_START( st_mp100, st_mp100_state ) +static MACHINE_CONFIG_START( st_mp100 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6800, 1000000) // no xtal, just 2 chips forming a random oscillator MCFG_CPU_PROGRAM_MAP(st_mp100_map) @@ -845,19 +845,19 @@ ROM_START(magic) ROM_END // chimes -GAME(1977, pinball, 0, st_mp100, mp100, driver_device, 0, ROT0, "Stern", "Pinball", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) -GAME(1977, stingray, 0, st_mp100, mp100, driver_device, 0, ROT0, "Stern", "Stingray", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) -GAME(1978, stars, 0, st_mp100, mp100, driver_device, 0, ROT0, "Stern", "Stars", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) -GAME(1978, memlane, 0, st_mp100, mp100, driver_device, 0, ROT0, "Stern", "Memory Lane", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME( 1977, pinball, 0, st_mp100, mp100, st_mp100_state, 0, ROT0, "Stern", "Pinball", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME( 1977, stingray, 0, st_mp100, mp100, st_mp100_state, 0, ROT0, "Stern", "Stingray", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME( 1978, stars, 0, st_mp100, mp100, st_mp100_state, 0, ROT0, "Stern", "Stars", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME( 1978, memlane, 0, st_mp100, mp100, st_mp100_state, 0, ROT0, "Stern", "Memory Lane", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) // sound unit B-521 -GAME(1978, lectrono, 0, st_mp100, mp100, driver_device, 0, ROT0, "Stern", "Lectronamo", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -GAME(1978, wildfyre, 0, st_mp100, mp100, driver_device, 0, ROT0, "Stern", "Wildfyre", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -GAME(1978, nugent, 0, st_mp100, mp100, driver_device, 0, ROT0, "Stern", "Nugent", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -GAME(1979, dracula, 0, st_mp100, mp100, driver_device, 0, ROT0, "Stern", "Dracula (Pinball)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +GAME( 1978, lectrono, 0, st_mp100, mp100, st_mp100_state, 0, ROT0, "Stern", "Lectronamo", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +GAME( 1978, wildfyre, 0, st_mp100, mp100, st_mp100_state, 0, ROT0, "Stern", "Wildfyre", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +GAME( 1978, nugent, 0, st_mp100, mp100, st_mp100_state, 0, ROT0, "Stern", "Nugent", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +GAME( 1979, dracula, 0, st_mp100, mp100, st_mp100_state, 0, ROT0, "Stern", "Dracula (Pinball)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // different inputs -GAME(1979, trident, 0, st_mp100, mp200, driver_device, 0, ROT0, "Stern", "Trident", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -GAME(1979, hothand, 0, st_mp100, mp200, driver_device, 0, ROT0, "Stern", "Hot Hand", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -GAME(1979, princess, 0, st_mp100, mp200, driver_device, 0, ROT0, "Stern", "Cosmic Princess", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -GAME(1979, magic, 0, st_mp100, mp200, driver_device, 0, ROT0, "Stern", "Magic", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +GAME( 1979, trident, 0, st_mp100, mp200, st_mp100_state, 0, ROT0, "Stern", "Trident", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +GAME( 1979, hothand, 0, st_mp100, mp200, st_mp100_state, 0, ROT0, "Stern", "Hot Hand", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +GAME( 1979, princess, 0, st_mp100, mp200, st_mp100_state, 0, ROT0, "Stern", "Cosmic Princess", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +GAME( 1979, magic, 0, st_mp100, mp200, st_mp100_state, 0, ROT0, "Stern", "Magic", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/st_mp200.cpp b/src/mame/drivers/st_mp200.cpp index 25955cf0f87..28aa18baab6 100644 --- a/src/mame/drivers/st_mp200.cpp +++ b/src/mame/drivers/st_mp200.cpp @@ -566,7 +566,7 @@ TIMER_DEVICE_CALLBACK_MEMBER( st_mp200_state::u11_timer ) m_pia_u11->ca1_w(m_u11_timer); } -static MACHINE_CONFIG_START( st_mp200, st_mp200_state ) +static MACHINE_CONFIG_START( st_mp200 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6800, 1000000) // no xtal, just 2 chips forming a random oscillator MCFG_CPU_PROGRAM_MAP(st_mp200_map) @@ -916,31 +916,31 @@ ROM_START(st_game) ROM_END // 6-digit -GAME(1979, meteorp, 0, st_mp200, mp200, st_mp200_state, st_mp202, ROT0, "Stern", "Meteor (Stern)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1980, galaxypi, 0, st_mp200, mp200, st_mp200_state, st_mp202, ROT0, "Stern", "Galaxy", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1980, ali, 0, st_mp200, mp200, st_mp200_state, st_mp202, ROT0, "Stern", "Ali", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1979, meteorp, 0, st_mp200, mp200, st_mp200_state, st_mp202, ROT0, "Stern", "Meteor (Stern)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1980, galaxypi, 0, st_mp200, mp200, st_mp200_state, st_mp202, ROT0, "Stern", "Galaxy", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1980, ali, 0, st_mp200, mp200, st_mp200_state, st_mp202, ROT0, "Stern", "Ali", MACHINE_IS_SKELETON_MECHANICAL) // 7-digit -GAME(1980, biggame, 0, st_mp200, mp200, st_mp200_state, st_mp200, ROT0, "Stern", "Big Game", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1980, cheetah, 0, st_mp200, mp200, st_mp200_state, st_mp200, ROT0, "Stern", "Cheetah", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1980, quicksil, 0, st_mp200, mp200, st_mp200_state, st_mp200, ROT0, "Stern", "Quicksilver", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1980, seawitch, 0, st_mp200, mp200, st_mp200_state, st_mp200, ROT0, "Stern", "Seawitch", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1980, nineball, 0, st_mp200, mp200, st_mp200_state, st_mp200, ROT0, "Stern", "Nine Ball", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1981, lightnin, 0, st_mp201, mp200, st_mp200_state, st_mp201, ROT0, "Stern", "Lightning", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1980, stargzr, 0, st_mp200, mp200, st_mp200_state, st_mp200, ROT0, "Stern", "Stargazer", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1981, spltsecp, 0, st_mp201, mp200, st_mp200_state, st_mp201, ROT0, "Stern", "Split Second (Pinball)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1981, catacomp, 0, st_mp201, mp200, st_mp200_state, st_mp201, ROT0, "Stern", "Catacomb (Pinball)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1982, dragfist, 0, st_mp200, mp200, st_mp200_state, st_mp200, ROT0, "Stern", "Dragonfist", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1984, lazrlord, 0, st_mp200, mp200, st_mp200_state, st_mp200, ROT0, "Stern", "Lazer Lord", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1980, biggame, 0, st_mp200, mp200, st_mp200_state, st_mp200, ROT0, "Stern", "Big Game", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1980, cheetah, 0, st_mp200, mp200, st_mp200_state, st_mp200, ROT0, "Stern", "Cheetah", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1980, quicksil, 0, st_mp200, mp200, st_mp200_state, st_mp200, ROT0, "Stern", "Quicksilver", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1980, seawitch, 0, st_mp200, mp200, st_mp200_state, st_mp200, ROT0, "Stern", "Seawitch", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1980, nineball, 0, st_mp200, mp200, st_mp200_state, st_mp200, ROT0, "Stern", "Nine Ball", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1981, lightnin, 0, st_mp201, mp200, st_mp200_state, st_mp201, ROT0, "Stern", "Lightning", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1980, stargzr, 0, st_mp200, mp200, st_mp200_state, st_mp200, ROT0, "Stern", "Stargazer", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1981, spltsecp, 0, st_mp201, mp200, st_mp200_state, st_mp201, ROT0, "Stern", "Split Second (Pinball)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1981, catacomp, 0, st_mp201, mp200, st_mp200_state, st_mp201, ROT0, "Stern", "Catacomb (Pinball)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1982, dragfist, 0, st_mp200, mp200, st_mp200_state, st_mp200, ROT0, "Stern", "Dragonfist", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1984, lazrlord, 0, st_mp200, mp200, st_mp200_state, st_mp200, ROT0, "Stern", "Lazer Lord", MACHINE_IS_SKELETON_MECHANICAL) // hang after boot -GAME(1980, flight2k, 0, st_mp201, mp200, st_mp200_state, st_mp201, ROT0, "Stern", "Flight 2000", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1981, freefall, 0, st_mp201, mp200, st_mp200_state, st_mp201, ROT0, "Stern", "Freefall", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1981, viperp, 0, st_mp200, mp200, st_mp200_state, st_mp200, ROT0, "Stern", "Viper (Pinball)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1981, ironmaid, 0, st_mp200, mp200, st_mp200_state, st_mp200, ROT0, "Stern", "Iron Maiden", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1982, orbitor1, 0, st_mp201, mp200, st_mp200_state, st_mp201, ROT0, "Stern", "Orbitor 1", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1980, flight2k, 0, st_mp201, mp200, st_mp200_state, st_mp201, ROT0, "Stern", "Flight 2000", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1981, freefall, 0, st_mp201, mp200, st_mp200_state, st_mp201, ROT0, "Stern", "Freefall", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1981, viperp, 0, st_mp200, mp200, st_mp200_state, st_mp200, ROT0, "Stern", "Viper (Pinball)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1981, ironmaid, 0, st_mp200, mp200, st_mp200_state, st_mp200, ROT0, "Stern", "Iron Maiden", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1982, orbitor1, 0, st_mp201, mp200, st_mp200_state, st_mp201, ROT0, "Stern", "Orbitor 1", MACHINE_IS_SKELETON_MECHANICAL) // other manufacturer -GAME(1985, gamatron, flight2k, st_mp200, mp200, st_mp200_state, st_mp200, ROT0, "Pinstar", "Gamatron", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1978, blkshpsq, 0, st_mp200, mp200, st_mp200_state, st_mp202, ROT0, "Astro", "Black Sheep Squadron", MACHINE_IS_SKELETON_MECHANICAL) -GAME(198?, st_game, 0, st_mp200, mp200, st_mp200_state, st_mp200, ROT0, "", "unknown pinball game", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1985, gamatron, flight2k, st_mp200, mp200, st_mp200_state, st_mp200, ROT0, "Pinstar", "Gamatron", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1978, blkshpsq, 0, st_mp200, mp200, st_mp200_state, st_mp202, ROT0, "Astro", "Black Sheep Squadron", MACHINE_IS_SKELETON_MECHANICAL) +GAME(198?, st_game, 0, st_mp200, mp200, st_mp200_state, st_mp200, ROT0, "", "unknown pinball game", MACHINE_IS_SKELETON_MECHANICAL) diff --git a/src/mame/drivers/stactics.cpp b/src/mame/drivers/stactics.cpp index 3ca0d344126..3c803159bf4 100644 --- a/src/mame/drivers/stactics.cpp +++ b/src/mame/drivers/stactics.cpp @@ -297,7 +297,7 @@ void stactics_state::machine_start() * *************************************/ -static MACHINE_CONFIG_START( stactics, stactics_state ) +static MACHINE_CONFIG_START( stactics ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8080, 1933560) @@ -347,4 +347,4 @@ ROM_END * *************************************/ -GAMEL( 1981, stactics, 0, stactics, stactics, driver_device, 0, ORIENTATION_FLIP_X, "Sega", "Space Tactics", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE, layout_stactics ) +GAMEL( 1981, stactics, 0, stactics, stactics, stactics_state, 0, ORIENTATION_FLIP_X, "Sega", "Space Tactics", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE, layout_stactics ) diff --git a/src/mame/drivers/stadhero.cpp b/src/mame/drivers/stadhero.cpp index 1a67ea6778a..9a0ad5119e8 100644 --- a/src/mame/drivers/stadhero.cpp +++ b/src/mame/drivers/stadhero.cpp @@ -199,7 +199,7 @@ GFXDECODE_END /******************************************************************************/ -static MACHINE_CONFIG_START( stadhero, stadhero_state ) +static MACHINE_CONFIG_START( stadhero ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_20MHz/2) @@ -246,7 +246,7 @@ static MACHINE_CONFIG_START( stadhero, stadhero_state ) MCFG_YM3812_IRQ_HANDLER(INPUTLINE("audiocpu", M6502_IRQ_LINE)) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) - MCFG_OKIM6295_ADD("oki", XTAL_1_056MHz, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", XTAL_1_056MHz, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) MACHINE_CONFIG_END diff --git a/src/mame/drivers/starcrus.cpp b/src/mame/drivers/starcrus.cpp index ec2c9fa09c0..7948b81d008 100644 --- a/src/mame/drivers/starcrus.cpp +++ b/src/mame/drivers/starcrus.cpp @@ -134,7 +134,7 @@ static const char *const starcrus_sample_names[] = }; -static MACHINE_CONFIG_START( starcrus, starcrus_state ) +static MACHINE_CONFIG_START( starcrus ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8080,9750000/9) /* 8224 chip is a divide by 9 */ @@ -193,4 +193,4 @@ ROM_START( starcrus ) ROM_END -GAME( 1977, starcrus, 0, starcrus, starcrus, driver_device, 0, ROT0, "Ramtek", "Star Cruiser", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1977, starcrus, 0, starcrus, starcrus, starcrus_state, 0, ROT0, "Ramtek", "Star Cruiser", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/starfire.cpp b/src/mame/drivers/starfire.cpp index 795cf1b859e..51a4c427ddb 100644 --- a/src/mame/drivers/starfire.cpp +++ b/src/mame/drivers/starfire.cpp @@ -327,7 +327,7 @@ INTERRUPT_GEN_MEMBER(starfire_state::vblank_int) } -static MACHINE_CONFIG_START( fireone, starfire_state ) +static MACHINE_CONFIG_START( fireone ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, STARFIRE_CPU_CLOCK) diff --git a/src/mame/drivers/stargame.cpp b/src/mame/drivers/stargame.cpp index c7a552be0ce..a377828aa46 100644 --- a/src/mame/drivers/stargame.cpp +++ b/src/mame/drivers/stargame.cpp @@ -35,7 +35,7 @@ ADDRESS_MAP_END static INPUT_PORTS_START( stargame ) INPUT_PORTS_END -static MACHINE_CONFIG_START( stargame, stargame_state ) +static MACHINE_CONFIG_START( stargame ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 1000000) MCFG_CPU_PROGRAM_MAP(maincpu_map) @@ -63,5 +63,5 @@ ROM_START(whtforce) ROM_END -GAME( 1986, spcship, 0, stargame, stargame, driver_device, 0, ROT0, "Stargame", "Space Ship (Pinball)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 1987, whtforce, 0, stargame, stargame, driver_device, 0, ROT0, "Stargame", "White Force", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 1986, spcship, 0, stargame, stargame, stargame_state, 0, ROT0, "Stargame", "Space Ship (Pinball)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 1987, whtforce, 0, stargame, stargame, stargame_state, 0, ROT0, "Stargame", "White Force", MACHINE_IS_SKELETON_MECHANICAL ) diff --git a/src/mame/drivers/starshp1.cpp b/src/mame/drivers/starshp1.cpp index 748d81a841d..dbd09fae4e1 100644 --- a/src/mame/drivers/starshp1.cpp +++ b/src/mame/drivers/starshp1.cpp @@ -294,7 +294,7 @@ static GFXDECODE_START( starshp1 ) GFXDECODE_END -static MACHINE_CONFIG_START( starshp1, starshp1_state ) +static MACHINE_CONFIG_START( starshp1 ) /* basic machine hardware */ @@ -394,5 +394,5 @@ ROM_START( starshpp ) ROM_END -GAME( 1977, starshp1, 0, starshp1, starshp1, driver_device, 0, ORIENTATION_FLIP_X, "Atari", "Starship 1", MACHINE_IMPERFECT_SOUND ) -GAME( 1977, starshpp, starshp1, starshp1, starshp1, driver_device, 0, ORIENTATION_FLIP_X, "Atari", "Starship 1 (prototype?)", MACHINE_IMPERFECT_SOUND ) +GAME( 1977, starshp1, 0, starshp1, starshp1, starshp1_state, 0, ORIENTATION_FLIP_X, "Atari", "Starship 1", MACHINE_IMPERFECT_SOUND ) +GAME( 1977, starshpp, starshp1, starshp1, starshp1, starshp1_state, 0, ORIENTATION_FLIP_X, "Atari", "Starship 1 (prototype?)", MACHINE_IMPERFECT_SOUND ) diff --git a/src/mame/drivers/starwars.cpp b/src/mame/drivers/starwars.cpp index 6b9a0cb0acf..a47be5f4314 100644 --- a/src/mame/drivers/starwars.cpp +++ b/src/mame/drivers/starwars.cpp @@ -297,7 +297,7 @@ INPUT_PORTS_END * *************************************/ -static MACHINE_CONFIG_START( starwars, starwars_state ) +static MACHINE_CONFIG_START( starwars ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809, MASTER_CLOCK / 8) diff --git a/src/mame/drivers/statriv2.cpp b/src/mame/drivers/statriv2.cpp index 01c42e33525..3c81c9e1ed4 100644 --- a/src/mame/drivers/statriv2.cpp +++ b/src/mame/drivers/statriv2.cpp @@ -570,7 +570,7 @@ GFXDECODE_END * *************************************/ -static MACHINE_CONFIG_START( statriv2, statriv2_state ) +static MACHINE_CONFIG_START( statriv2 ) /* basic machine hardware */ /* FIXME: The 8085A had a max clock of 6MHz, internally divided by 2! */ MCFG_CPU_ADD("maincpu", I8085A, MASTER_CLOCK) @@ -1168,18 +1168,18 @@ DRIVER_INIT_MEMBER(statriv2_state,laserdisc) * *************************************/ -GAME( 1981, statusbj, 0, statriv2, statusbj, driver_device, 0, ROT0, "Status Games", "Status Black Jack (V1.0c)", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, funcsino, 0, funcsino, funcsino, driver_device, 0, ROT0, "Status Games", "Status Fun Casino (V1.3s)", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, tripdraw, 0, statriv2, funcsino, driver_device, 0, ROT0, "Status Games", "Tripple Draw (V3.1 s)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) -GAME( 1984, bigcsino, 0, funcsino, funcsino, driver_device, 0, ROT0, "Status Games", "Big Casino", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) //needs correct inputs -GAME( 1984, hangman, 0, statriv2, hangman, statriv2_state, addr_lmh, ROT0, "Status Games", "Hangman", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, trivquiz, 0, statriv2, statriv2, statriv2_state, addr_lhx, ROT0, "Status Games", "Triv Quiz", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, statriv2, 0, statriv2, statriv2, statriv2_state, addr_xlh, ROT0, "Status Games", "Triv Two", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, statriv2v,statriv2, statriv2v, statriv2, statriv2_state, addr_xlh, ROT90,"Status Games", "Triv Two (Vertical)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, statriv4, 0, statriv2, statriv4, statriv2_state, addr_xhl, ROT0, "Status Games", "Triv Four", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, sextriv, 0, statriv2, sextriv, statriv2_state, addr_lhx, ROT0, "Status Games", "Sex Triv", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, quaquiz2, 0, statriv2, quaquiz2, statriv2_state, addr_lmh, ROT0, "Status Games", "Quadro Quiz II", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) -GAME( 1985, supertr, 0, statriv2, supertr2, statriv2_state, addr_lhx, ROT0, "Status Games", "Super Triv Quiz I", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING) // missing questions' ROMs -GAME( 1986, supertr2, 0, statriv2, supertr2, statriv2_state, addr_lmhe, ROT0, "Status Games", "Super Triv II", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, supertr3, 0, statriv2, supertr2, statriv2_state, addr_lmh, ROT0, "Status Games", "Super Triv III", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, cstripxi, 0, statriv2, funcsino, statriv2_state, laserdisc, ROT0, "Status Games", "Casino Strip XI", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) +GAME( 1981, statusbj, 0, statriv2, statusbj, statriv2_state, 0, ROT0, "Status Games", "Status Black Jack (V1.0c)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, funcsino, 0, funcsino, funcsino, statriv2_state, 0, ROT0, "Status Games", "Status Fun Casino (V1.3s)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, tripdraw, 0, statriv2, funcsino, statriv2_state, 0, ROT0, "Status Games", "Tripple Draw (V3.1 s)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) +GAME( 1984, bigcsino, 0, funcsino, funcsino, statriv2_state, 0, ROT0, "Status Games", "Big Casino", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) //needs correct inputs +GAME( 1984, hangman, 0, statriv2, hangman, statriv2_state, addr_lmh, ROT0, "Status Games", "Hangman", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, trivquiz, 0, statriv2, statriv2, statriv2_state, addr_lhx, ROT0, "Status Games", "Triv Quiz", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, statriv2, 0, statriv2, statriv2, statriv2_state, addr_xlh, ROT0, "Status Games", "Triv Two", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, statriv2v, statriv2, statriv2v, statriv2, statriv2_state, addr_xlh, ROT90, "Status Games", "Triv Two (Vertical)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, statriv4, 0, statriv2, statriv4, statriv2_state, addr_xhl, ROT0, "Status Games", "Triv Four", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, sextriv, 0, statriv2, sextriv, statriv2_state, addr_lhx, ROT0, "Status Games", "Sex Triv", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, quaquiz2, 0, statriv2, quaquiz2, statriv2_state, addr_lmh, ROT0, "Status Games", "Quadro Quiz II", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) +GAME( 1985, supertr, 0, statriv2, supertr2, statriv2_state, addr_lhx, ROT0, "Status Games", "Super Triv Quiz I", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING) // missing questions' ROMs +GAME( 1986, supertr2, 0, statriv2, supertr2, statriv2_state, addr_lmhe, ROT0, "Status Games", "Super Triv II", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, supertr3, 0, statriv2, supertr2, statriv2_state, addr_lmh, ROT0, "Status Games", "Super Triv III", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, cstripxi, 0, statriv2, funcsino, statriv2_state, laserdisc, ROT0, "Status Games", "Casino Strip XI", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/stellafr.cpp b/src/mame/drivers/stellafr.cpp index af12d541c47..32c9f704c69 100644 --- a/src/mame/drivers/stellafr.cpp +++ b/src/mame/drivers/stellafr.cpp @@ -40,7 +40,7 @@ static INPUT_PORTS_START( stellafr ) INPUT_PORTS_END -static MACHINE_CONFIG_START( stellafr, stellafr_state ) +static MACHINE_CONFIG_START( stellafr ) MCFG_CPU_ADD("maincpu", M68000, 10000000 ) //? MCFG_CPU_PROGRAM_MAP(stellafr_map) MACHINE_CONFIG_END @@ -60,5 +60,5 @@ ROM_START( st_vulkn ) ROM_END -GAME(199?, st_ohla, 0, stellafr, stellafr, driver_device, 0, ROT0, "Stella", "Oh La La (Stella)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME(199?, st_vulkn, 0, stellafr, stellafr, driver_device, 0, ROT0, "Stella", "Vulkan (Stella)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME(199?, st_ohla, 0, stellafr, stellafr, stellafr_state, 0, ROT0, "Stella", "Oh La La (Stella)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME(199?, st_vulkn, 0, stellafr, stellafr, stellafr_state, 0, ROT0, "Stella", "Vulkan (Stella)", MACHINE_IS_SKELETON_MECHANICAL ) diff --git a/src/mame/drivers/stfight.cpp b/src/mame/drivers/stfight.cpp index 7882a12f711..9cb5ffbfda8 100644 --- a/src/mame/drivers/stfight.cpp +++ b/src/mame/drivers/stfight.cpp @@ -447,7 +447,7 @@ INPUT_PORTS_END -static MACHINE_CONFIG_START( stfight_base, stfight_state ) +static MACHINE_CONFIG_START( stfight_base ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_12MHz / 4) @@ -487,7 +487,7 @@ static MACHINE_CONFIG_START( stfight_base, stfight_state ) MCFG_SOUND_ADD("msm", MSM5205, XTAL_384kHz) MCFG_MSM5205_VCLK_CB(WRITELINE(stfight_state, stfight_adpcm_int)) // Interrupt function - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S48_4B) // 8KHz, 4-bit + MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) // 8KHz, 4-bit MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) MACHINE_CONFIG_END diff --git a/src/mame/drivers/stlforce.cpp b/src/mame/drivers/stlforce.cpp index b95b9627174..25aeacfec6e 100644 --- a/src/mame/drivers/stlforce.cpp +++ b/src/mame/drivers/stlforce.cpp @@ -188,7 +188,7 @@ static GFXDECODE_START( stlforce ) GFXDECODE_END -static MACHINE_CONFIG_START( stlforce, stlforce_state ) +static MACHINE_CONFIG_START( stlforce ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 15000000) @@ -213,7 +213,7 @@ static MACHINE_CONFIG_START( stlforce, stlforce_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", XTAL_32MHz/32 , OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", XTAL_32MHz/32 , PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END diff --git a/src/mame/drivers/stratos.cpp b/src/mame/drivers/stratos.cpp index 89970ff4aff..40c2fcc6a0e 100644 --- a/src/mame/drivers/stratos.cpp +++ b/src/mame/drivers/stratos.cpp @@ -342,7 +342,7 @@ ADDRESS_MAP_END static INPUT_PORTS_START( stratos ) INPUT_PORTS_END -static MACHINE_CONFIG_START( stratos, stratos_state ) +static MACHINE_CONFIG_START( stratos ) MCFG_CPU_ADD("maincpu", M65C02, 5670000) MCFG_CPU_PROGRAM_MAP(stratos_mem) diff --git a/src/mame/drivers/strnskil.cpp b/src/mame/drivers/strnskil.cpp index 3e43a9345f7..363115c3c31 100644 --- a/src/mame/drivers/strnskil.cpp +++ b/src/mame/drivers/strnskil.cpp @@ -342,7 +342,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(strnskil_state::strnskil_irq) } -static MACHINE_CONFIG_START( strnskil, strnskil_state ) +static MACHINE_CONFIG_START( strnskil ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80,8000000/2) /* 4.000MHz */ @@ -546,7 +546,7 @@ DRIVER_INIT_MEMBER(strnskil_state,banbam) m_maincpu->space(AS_PROGRAM).install_write_handler(0xd80d, 0xd80d, write8_delegate(FUNC(strnskil_state::protection_w),this)); } -GAME( 1984, strnskil, 0, strnskil, strnskil, driver_device, 0, ROT0, "Sun Electronics", "Strength & Skill", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, guiness, strnskil, strnskil, strnskil, driver_device, 0, ROT0, "Sun Electronics", "The Guiness (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, banbam, 0, banbam, banbam, strnskil_state, banbam, ROT0, "Sun Electronics", "BanBam", MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) -GAME( 1984, pettanp, banbam, strnskil, banbam, strnskil_state, pettanp, ROT0, "Sun Electronics", "Pettan Pyuu (Japan)", MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) +GAME( 1984, strnskil, 0, strnskil, strnskil, strnskil_state, 0, ROT0, "Sun Electronics", "Strength & Skill", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, guiness, strnskil, strnskil, strnskil, strnskil_state, 0, ROT0, "Sun Electronics", "The Guiness (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, banbam, 0, banbam, banbam, strnskil_state, banbam, ROT0, "Sun Electronics", "BanBam", MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) +GAME( 1984, pettanp, banbam, strnskil, banbam, strnskil_state, pettanp, ROT0, "Sun Electronics", "Pettan Pyuu (Japan)", MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/studio2.cpp b/src/mame/drivers/studio2.cpp index 20d4d341bfd..8414b7cd9ad 100644 --- a/src/mame/drivers/studio2.cpp +++ b/src/mame/drivers/studio2.cpp @@ -622,7 +622,7 @@ static MACHINE_CONFIG_FRAGMENT( studio2_cartslot ) MCFG_SOFTWARE_LIST_ADD("cart_list", "studio2") MACHINE_CONFIG_END -static MACHINE_CONFIG_START( studio2, studio2_state ) +static MACHINE_CONFIG_START( studio2 ) /* basic machine hardware */ MCFG_CPU_ADD(CDP1802_TAG, CDP1802, 1760000) /* the real clock is derived from an oscillator circuit */ MCFG_CPU_PROGRAM_MAP(studio2_map) @@ -649,7 +649,7 @@ static MACHINE_CONFIG_START( studio2, studio2_state ) MCFG_FRAGMENT_ADD( studio2_cartslot ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( visicom, visicom_state ) +static MACHINE_CONFIG_START( visicom ) /* basic machine hardware */ MCFG_CPU_ADD(CDP1802_TAG, CDP1802, XTAL_3_579545MHz/2) MCFG_CPU_PROGRAM_MAP(visicom_map) @@ -681,7 +681,7 @@ static MACHINE_CONFIG_START( visicom, visicom_state ) MCFG_SOFTWARE_LIST_ADD("cart_list", "visicom") MACHINE_CONFIG_END -static MACHINE_CONFIG_START( mpt02, mpt02_state ) +static MACHINE_CONFIG_START( mpt02 ) /* basic machine hardware */ MCFG_CPU_ADD(CDP1802_TAG, CDP1802, CDP1864_CLOCK) MCFG_CPU_PROGRAM_MAP(mpt02_map) @@ -745,12 +745,12 @@ ROM_END /* Game Drivers */ -// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS -CONS( 1977, studio2, 0, 0, studio2, studio2, driver_device, 0, "RCA", "Studio II", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -CONS( 1978, visicom, studio2,0, visicom, studio2, driver_device, 0, "Toshiba", "Visicom COM-100 (Japan)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -CONS( 1978, mpt02, studio2,0, mpt02, studio2, driver_device, 0, "Soundic", "Victory MPT-02 Home TV Programmer (Austria)", MACHINE_SUPPORTS_SAVE ) -CONS( 1978, mpt02h, studio2,0, mpt02, studio2, driver_device, 0, "Hanimex", "MPT-02 Jeu TV Programmable (France)", MACHINE_SUPPORTS_SAVE ) -CONS( 1978, mtc9016, studio2,0, mpt02, studio2, driver_device, 0, "Mustang", "9016 Telespiel Computer (Germany)", MACHINE_SUPPORTS_SAVE ) -CONS( 1978, shmc1200, studio2,0, mpt02, studio2, driver_device, 0, "Sheen", "M1200 Micro Computer (Australia)", MACHINE_SUPPORTS_SAVE ) -CONS( 1978, cm1200, studio2,0, mpt02, studio2, driver_device, 0, "Conic", "M-1200 (?)", MACHINE_SUPPORTS_SAVE ) -CONS( 1978, apollo80, studio2,0, mpt02, studio2, driver_device, 0, "Academy", "Apollo 80 (Germany)", MACHINE_SUPPORTS_SAVE ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +CONS( 1977, studio2, 0, 0, studio2, studio2, studio2_state, 0, "RCA", "Studio II", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +CONS( 1978, visicom, studio2,0, visicom, studio2, visicom_state, 0, "Toshiba", "Visicom COM-100 (Japan)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +CONS( 1978, mpt02, studio2,0, mpt02, studio2, mpt02_state, 0, "Soundic", "Victory MPT-02 Home TV Programmer (Austria)", MACHINE_SUPPORTS_SAVE ) +CONS( 1978, mpt02h, studio2,0, mpt02, studio2, mpt02_state, 0, "Hanimex", "MPT-02 Jeu TV Programmable (France)", MACHINE_SUPPORTS_SAVE ) +CONS( 1978, mtc9016, studio2,0, mpt02, studio2, mpt02_state, 0, "Mustang", "9016 Telespiel Computer (Germany)", MACHINE_SUPPORTS_SAVE ) +CONS( 1978, shmc1200, studio2,0, mpt02, studio2, mpt02_state, 0, "Sheen", "M1200 Micro Computer (Australia)", MACHINE_SUPPORTS_SAVE ) +CONS( 1978, cm1200, studio2,0, mpt02, studio2, mpt02_state, 0, "Conic", "M-1200 (?)", MACHINE_SUPPORTS_SAVE ) +CONS( 1978, apollo80, studio2,0, mpt02, studio2, mpt02_state, 0, "Academy", "Apollo 80 (Germany)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/stuntair.cpp b/src/mame/drivers/stuntair.cpp index 92e9641004e..0fb15814eb1 100644 --- a/src/mame/drivers/stuntair.cpp +++ b/src/mame/drivers/stuntair.cpp @@ -508,7 +508,7 @@ void stuntair_state::machine_reset() { } -static MACHINE_CONFIG_START( stuntair, stuntair_state ) +static MACHINE_CONFIG_START( stuntair ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_18_432MHz/6) /* 3 MHz? */ @@ -585,4 +585,4 @@ ROM_START( stuntair ) ROM_END -GAME( 1983, stuntair, 0, stuntair, stuntair, driver_device, 0, ROT90, "Nuova Videotron", "Stunt Air", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1983, stuntair, 0, stuntair, stuntair, stuntair_state, 0, ROT90, "Nuova Videotron", "Stunt Air", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) diff --git a/src/mame/drivers/stv.cpp b/src/mame/drivers/stv.cpp index 27f7da3bd64..10a036d7aa0 100644 --- a/src/mame/drivers/stv.cpp +++ b/src/mame/drivers/stv.cpp @@ -976,7 +976,7 @@ static ADDRESS_MAP_START( scudsp_data, AS_DATA, 32, stv_state ) ADDRESS_MAP_END -static MACHINE_CONFIG_START( stv, stv_state ) +static MACHINE_CONFIG_START( stv ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", SH2, MASTER_CLOCK_352/2) // 28.6364 MHz @@ -3469,125 +3469,125 @@ ROM_END -GAME( 1996, stvbios, 0, stv_slot, stv, stv_state, stv, ROT0, "Sega", "ST-V Bios", MACHINE_IS_BIOS_ROOT ) +GAME( 1996, stvbios, 0, stv_slot, stv, stv_state, stv, ROT0, "Sega", "ST-V Bios", MACHINE_IS_BIOS_ROOT ) -//GAME YEAR, NAME, PARENT, MACH, INP, INIT, MONITOR +//GAME YEAR, NAME, PARENT, MACH, INP, STATE, INIT, MONITOR /* Playable */ -GAME( 1998, astrass, stvbios, stv_5881, stv6b, stv_state, astrass, ROT0, "Sunsoft", "Astra SuperStars (J 980514 V1.002)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1995, bakubaku, stvbios, stv, stv, stv_state, stv, ROT0, "Sega", "Baku Baku Animal (J 950407 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1996, batmanfr, stvbios, batmanfr, stv, stv_state, batmanfr, ROT0, "Acclaim", "Batman Forever (JUE 960507 V1.000)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1996, colmns97, stvbios, stv, stv, stv_state, colmns97, ROT0, "Sega", "Columns '97 (JET 961209 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1997, cotton2, stvbios, stv, stv, stv_state, cotton2, ROT0, "Success", "Cotton 2 (JUET 970902 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1998, cottonbm, stvbios, stv, stv, stv_state, cottonbm, ROT0, "Success", "Cotton Boomerang (JUET 980709 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1998, astrass, stvbios, stv_5881, stv6b, stv_state, astrass, ROT0, "Sunsoft", "Astra SuperStars (J 980514 V1.002)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1995, bakubaku, stvbios, stv, stv, stv_state, stv, ROT0, "Sega", "Baku Baku Animal (J 950407 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1996, batmanfr, stvbios, batmanfr, stv, stv_state, batmanfr, ROT0, "Acclaim", "Batman Forever (JUE 960507 V1.000)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1996, colmns97, stvbios, stv, stv, stv_state, colmns97, ROT0, "Sega", "Columns '97 (JET 961209 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1997, cotton2, stvbios, stv, stv, stv_state, cotton2, ROT0, "Success", "Cotton 2 (JUET 970902 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1998, cottonbm, stvbios, stv, stv, stv_state, cottonbm, ROT0, "Success", "Cotton Boomerang (JUET 980709 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) GAME( 1995, critcrsh, stvbios, stv, critcrsh, stv_state, critcrsh, ROT0, "Sega", "Critter Crusher (EA 951204 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) GAME( 1995, tatacot, critcrsh,stv, critcrsh, stv_state, critcrsh, ROT0, "Sega", "Tatacot (JA 951128 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1999, danchih, stvbios, stv, stvmp, stv_state, danchih, ROT0, "Altron (Tecmo license)", "Danchi de Hanafuda (J 990607 V1.400)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 2000, danchiq, stvbios, stv, stv, stv_state, danchiq, ROT0, "Altron", "Danchi de Quiz: Okusan Yontaku Desuyo! (J 001128 V1.200)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1996, diehard, stvbios, stv, stv, stv_state, diehard, ROT0, "Sega", "Die Hard Arcade (UET 960515 V1.000)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1996, dnmtdeka, diehard, stv, stv, stv_state, dnmtdeka, ROT0, "Sega", "Dynamite Deka (J 960515 V1.000)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1995, ejihon, stvbios, stv, stv, stv_state, stv, ROT0, "Sega", "Ejihon Tantei Jimusyo (J 950613 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1998, elandore, stvbios, stv_5881, stv6b, stv_state, elandore, ROT0, "Sai-Mate", "Touryuu Densetsu Elan-Doree / Elan Doree - Legend of Dragoon (JUET 980922 V1.006)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1999, ffrevng10, ffreveng,stv_5881, stv6b, stv_state, ffreveng, ROT0, "Capcom", "Final Fight Revenge (JUET 990714 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1999, ffreveng, stvbios, stv_5881, stv6b, stv_state, ffreveng, ROT0, "Capcom", "Final Fight Revenge (JUET 990930 V1.100)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1995, fhboxers, stvbios, stv, stv, stv_state, fhboxers, ROT0, "Sega", "Funky Head Boxers (JUETBKAL 951218 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1997, findlove, stvbios, stv, stv, stv_state, stv, ROT0, "Daiki / FCF", "Zenkoku Seifuku Bishoujo Grand Prix Find Love (J 971212 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1994, gaxeduel, stvbios, stv, stv6b, stv_state, gaxeduel, ROT0, "Sega", "Golden Axe - The Duel (JUETL 950117 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS) -GAME( 1998, grdforce, stvbios, stv, stv, stv_state, grdforce, ROT0, "Success", "Guardian Force (JUET 980318 V0.105)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1998, groovef, stvbios, stv, stv6b, stv_state, groovef, ROT0, "Atlus", "Groove on Fight - Gouketsuji Ichizoku 3 (J 970416 V1.001)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1997, hanagumi, stvbios, stv, stv, stv_state, hanagumi, ROT0, "Sega", "Sakura Taisen - Hanagumi Taisen Columns (J 971007 V1.010)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1996, introdon, stvbios, stv, stv, stv_state, stv, ROT0, "Sunsoft / Success", "Karaoke Quiz Intro Don Don! (J 960213 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1995, kiwames, stvbios, stv, stvmp, stv_state, stvmp, ROT0, "Athena", "Pro Mahjong Kiwame S (J 951020 V1.208)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1997, maruchan, stvbios, stv, stv, stv_state, maruchan, ROT0, "Sega / Toyosuisan", "Maru-Chan de Goo! (J 971216 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1996, mausuke, stvbios, stv, stv, stv_state, mausuke, ROT0, "Data East", "Mausuke no Ojama the World (J 960314 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1999, danchih, stvbios, stv, stvmp, stv_state, danchih, ROT0, "Altron (Tecmo license)", "Danchi de Hanafuda (J 990607 V1.400)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 2000, danchiq, stvbios, stv, stv, stv_state, danchiq, ROT0, "Altron", "Danchi de Quiz: Okusan Yontaku Desuyo! (J 001128 V1.200)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1996, diehard, stvbios, stv, stv, stv_state, diehard, ROT0, "Sega", "Die Hard Arcade (UET 960515 V1.000)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1996, dnmtdeka, diehard, stv, stv, stv_state, dnmtdeka, ROT0, "Sega", "Dynamite Deka (J 960515 V1.000)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1995, ejihon, stvbios, stv, stv, stv_state, stv, ROT0, "Sega", "Ejihon Tantei Jimusyo (J 950613 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1998, elandore, stvbios, stv_5881, stv6b, stv_state, elandore, ROT0, "Sai-Mate", "Touryuu Densetsu Elan-Doree / Elan Doree - Legend of Dragoon (JUET 980922 V1.006)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1999, ffrevng10, ffreveng,stv_5881, stv6b, stv_state, ffreveng, ROT0, "Capcom", "Final Fight Revenge (JUET 990714 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1999, ffreveng, stvbios, stv_5881, stv6b, stv_state, ffreveng, ROT0, "Capcom", "Final Fight Revenge (JUET 990930 V1.100)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1995, fhboxers, stvbios, stv, stv, stv_state, fhboxers, ROT0, "Sega", "Funky Head Boxers (JUETBKAL 951218 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1997, findlove, stvbios, stv, stv, stv_state, stv, ROT0, "Daiki / FCF", "Zenkoku Seifuku Bishoujo Grand Prix Find Love (J 971212 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1994, gaxeduel, stvbios, stv, stv6b, stv_state, gaxeduel, ROT0, "Sega", "Golden Axe - The Duel (JUETL 950117 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS) +GAME( 1998, grdforce, stvbios, stv, stv, stv_state, grdforce, ROT0, "Success", "Guardian Force (JUET 980318 V0.105)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1998, groovef, stvbios, stv, stv6b, stv_state, groovef, ROT0, "Atlus", "Groove on Fight - Gouketsuji Ichizoku 3 (J 970416 V1.001)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1997, hanagumi, stvbios, stv, stv, stv_state, hanagumi, ROT0, "Sega", "Sakura Taisen - Hanagumi Taisen Columns (J 971007 V1.010)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1996, introdon, stvbios, stv, stv, stv_state, stv, ROT0, "Sunsoft / Success", "Karaoke Quiz Intro Don Don! (J 960213 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1995, kiwames, stvbios, stv, stvmp, stv_state, stvmp, ROT0, "Athena", "Pro Mahjong Kiwame S (J 951020 V1.208)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1997, maruchan, stvbios, stv, stv, stv_state, maruchan, ROT0, "Sega / Toyosuisan", "Maru-Chan de Goo! (J 971216 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1996, mausuke, stvbios, stv, stv, stv_state, mausuke, ROT0, "Data East", "Mausuke no Ojama the World (J 960314 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) GAME( 1998, myfairld, stvbios, stv, myfairld, stv_state, stvmp, ROT0, "Micronet", "Virtual Mahjong 2 - My Fair Lady (J 980608 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1998, othellos, stvbios, stv, stv, stv_state, othellos, ROT0, "Success", "Othello Shiyouyo (J 980423 V1.002)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1999, patocar, stvbios, stv, patocar, stv_state, stv, ROT0, "Sega", "Hashire Patrol Car (J 990326 V1.000)", MACHINE_NOT_WORKING ) -GAME( 1995, pblbeach, stvbios, stv, stv, stv_state, pblbeach, ROT0, "T&E Soft", "Pebble Beach - The Great Shot (JUE 950913 V0.990)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1996, prikura, stvbios, stv, stv, stv_state, prikura, ROT0, "Atlus", "Princess Clara Daisakusen (J 960910 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1996, puyosun, stvbios, stv, stv, stv_state, puyosun, ROT0, "Compile", "Puyo Puyo Sun (J 961115 V0.001)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1998, rsgun, stvbios, stv_5881, stv, stv_state, rsgun, ROT0, "Treasure", "Radiant Silvergun (JUET 980523 V1.000)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1998, sasissu, stvbios, stv, stv, stv_state, sasissu, ROT0, "Sega", "Taisen Tanto-R Sashissu!! (J 980216 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1999, sanjeon, sasissu, stv, stv, stv_state, sanjeon, ROT0, "Sega / Deniam", "DaeJeon! SanJeon SuJeon (AJTUE 990412 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1997, seabass, stvbios, stv, stv, stv_state, seabass, ROT0, "A wave inc. (Able license)", "Sea Bass Fishing (JUET 971110 V0.001)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1995, shanhigw, stvbios, stv, stv, stv_state, shanhigw, ROT0, "Sunsoft / Activision", "Shanghai - The Great Wall / Shanghai Triple Threat (JUE 950623 V1.005)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1997, shienryu, stvbios, stv, stv, stv_state, shienryu, ROT270, "Warashi", "Shienryu (JUET 961226 V1.000)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1998, sss, stvbios, stv_5881, stv, stv_state, sss, ROT0, "Capcom / Cave / Victor", "Steep Slope Sliders (JUET 981110 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1995, sandor, stvbios, stv, stv, stv_state, sandor, ROT0, "Sega", "Puzzle & Action: Sando-R (J 951114 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1997, thunt, sandor, stv, stv, stv_state, thunt, ROT0, "Sega", "Puzzle & Action: Treasure Hunt (JUET 970901 V2.00E)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1997, thuntk, sandor, stv, stv, stv_state, sandor, ROT0, "Sega / Deniam", "Puzzle & Action: BoMulEul Chajara (JUET 970125 V2.00K)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1995, smleague, stvbios, stv, stv, stv_state, smleague, ROT0, "Sega", "Super Major League (U 960108 V1.000)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1995, finlarch, smleague,stv, stv, stv_state, finlarch, ROT0, "Sega", "Final Arch (J 950714 V1.001)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1996, sokyugrt, stvbios, stv, stv, stv_state, sokyugrt, ROT0, "Raizing / Eighting", "Soukyugurentai / Terra Diver (JUET 960821 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1995, suikoenb, stvbios, stv, stv6b, stv_state, suikoenb, ROT0, "Data East", "Suiko Enbu / Outlaws of the Lost Dynasty (JUETL 950314 V2.001)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1996, vfkids, stvbios, stv, stv, stv_state, stv, ROT0, "Sega", "Virtua Fighter Kids (JUET 960319 V0.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1998, othellos, stvbios, stv, stv, stv_state, othellos, ROT0, "Success", "Othello Shiyouyo (J 980423 V1.002)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1999, patocar, stvbios, stv, patocar, stv_state, stv, ROT0, "Sega", "Hashire Patrol Car (J 990326 V1.000)", MACHINE_NOT_WORKING ) +GAME( 1995, pblbeach, stvbios, stv, stv, stv_state, pblbeach, ROT0, "T&E Soft", "Pebble Beach - The Great Shot (JUE 950913 V0.990)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1996, prikura, stvbios, stv, stv, stv_state, prikura, ROT0, "Atlus", "Princess Clara Daisakusen (J 960910 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1996, puyosun, stvbios, stv, stv, stv_state, puyosun, ROT0, "Compile", "Puyo Puyo Sun (J 961115 V0.001)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1998, rsgun, stvbios, stv_5881, stv, stv_state, rsgun, ROT0, "Treasure", "Radiant Silvergun (JUET 980523 V1.000)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1998, sasissu, stvbios, stv, stv, stv_state, sasissu, ROT0, "Sega", "Taisen Tanto-R Sashissu!! (J 980216 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1999, sanjeon, sasissu, stv, stv, stv_state, sanjeon, ROT0, "Sega / Deniam", "DaeJeon! SanJeon SuJeon (AJTUE 990412 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1997, seabass, stvbios, stv, stv, stv_state, seabass, ROT0, "A wave inc. (Able license)", "Sea Bass Fishing (JUET 971110 V0.001)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1995, shanhigw, stvbios, stv, stv, stv_state, shanhigw, ROT0, "Sunsoft / Activision", "Shanghai - The Great Wall / Shanghai Triple Threat (JUE 950623 V1.005)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1997, shienryu, stvbios, stv, stv, stv_state, shienryu, ROT270, "Warashi", "Shienryu (JUET 961226 V1.000)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1998, sss, stvbios, stv_5881, stv, stv_state, sss, ROT0, "Capcom / Cave / Victor", "Steep Slope Sliders (JUET 981110 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1995, sandor, stvbios, stv, stv, stv_state, sandor, ROT0, "Sega", "Puzzle & Action: Sando-R (J 951114 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1997, thunt, sandor, stv, stv, stv_state, thunt, ROT0, "Sega", "Puzzle & Action: Treasure Hunt (JUET 970901 V2.00E)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1997, thuntk, sandor, stv, stv, stv_state, sandor, ROT0, "Sega / Deniam", "Puzzle & Action: BoMulEul Chajara (JUET 970125 V2.00K)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1995, smleague, stvbios, stv, stv, stv_state, smleague, ROT0, "Sega", "Super Major League (U 960108 V1.000)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1995, finlarch, smleague,stv, stv, stv_state, finlarch, ROT0, "Sega", "Final Arch (J 950714 V1.001)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1996, sokyugrt, stvbios, stv, stv, stv_state, sokyugrt, ROT0, "Raizing / Eighting", "Soukyugurentai / Terra Diver (JUET 960821 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1995, suikoenb, stvbios, stv, stv6b, stv_state, suikoenb, ROT0, "Data East", "Suiko Enbu / Outlaws of the Lost Dynasty (JUETL 950314 V2.001)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1996, vfkids, stvbios, stv, stv, stv_state, stv, ROT0, "Sega", "Virtua Fighter Kids (JUET 960319 V0.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) GAME( 1997, vmahjong, stvbios, stv, vmahjong, stv_state, stvmp, ROT0, "Micronet", "Virtual Mahjong (J 961214 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1997, winterht, stvbios, stv, stv, stv_state, winterht, ROT0, "Sega", "Winter Heat (JUET 971012 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1997, znpwfv, stvbios, stv, stv, stv_state, znpwfv, ROT0, "Sega", "Zen Nippon Pro-Wrestling Featuring Virtua (J 971123 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1997, znpwfvt, znpwfv, stv, stv, stv_state, znpwfv, ROT0, "Sega", "Zen Nippon Pro-Wrestling Featuring Virtua (T 971123 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1997, winterht, stvbios, stv, stv, stv_state, winterht, ROT0, "Sega", "Winter Heat (JUET 971012 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1997, znpwfv, stvbios, stv, stv, stv_state, znpwfv, ROT0, "Sega", "Zen Nippon Pro-Wrestling Featuring Virtua (J 971123 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1997, znpwfvt, znpwfv, stv, stv, stv_state, znpwfv, ROT0, "Sega", "Zen Nippon Pro-Wrestling Featuring Virtua (T 971123 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) /* Unemulated printer / camera devices */ // USA sets -GAME( 1997, pclub2, stvbios, stv, stv, stv_state, stv, ROT0, "Atlus", "Print Club 2 (U 970921 V1.000)", MACHINE_NOT_WORKING ) -GAME( 1999, pclub2v3, stvbios, stv, stv, stv_state, stv, ROT0, "Atlus", "Print Club 2 Vol. 3 (U 990310 V1.000)", MACHINE_NOT_WORKING ) // Hello Kitty themed -GAME( 1999, pclubpok, stvbios, stv, stv, stv_state, stv, ROT0, "Atlus", "Print Club Pokemon B (U 991126 V1.000)", MACHINE_NOT_WORKING ) +GAME( 1997, pclub2, stvbios, stv, stv, stv_state, stv, ROT0, "Atlus", "Print Club 2 (U 970921 V1.000)", MACHINE_NOT_WORKING ) +GAME( 1999, pclub2v3, stvbios, stv, stv, stv_state, stv, ROT0, "Atlus", "Print Club 2 Vol. 3 (U 990310 V1.000)", MACHINE_NOT_WORKING ) // Hello Kitty themed +GAME( 1999, pclubpok, stvbios, stv, stv, stv_state, stv, ROT0, "Atlus", "Print Club Pokemon B (U 991126 V1.000)", MACHINE_NOT_WORKING ) // Japan sets -GAME( 1999, pclub2fc, stvbios, stv, stv, stv_state, stv, ROT0, "Atlus", "Print Club 2 Felix The Cat (Rev. A) (J 970415 V1.100)", MACHINE_NOT_WORKING ) -GAME( 1998, pclub2pf, stvbios, stv, stv, stv_state, stv, ROT0, "Atlus", "Print Club 2 Puffy (Japan)", MACHINE_NOT_WORKING ) // version info is blank -GAME( 1997, pclub2pe, stvbios, stv, stv, stv_state, stv, ROT0, "Atlus", "Print Club 2 Pepsiman (J 970618 V1.100)", MACHINE_NOT_WORKING ) -GAME( 1997, pclub2wb, stvbios, stv, stv, stv_state, stv, ROT0, "Atlus", "Print Club 2 Warner Bros (J 970228 V1.000)", MACHINE_NOT_WORKING ) +GAME( 1999, pclub2fc, stvbios, stv, stv, stv_state, stv, ROT0, "Atlus", "Print Club 2 Felix The Cat (Rev. A) (J 970415 V1.100)", MACHINE_NOT_WORKING ) +GAME( 1998, pclub2pf, stvbios, stv, stv, stv_state, stv, ROT0, "Atlus", "Print Club 2 Puffy (Japan)", MACHINE_NOT_WORKING ) // version info is blank +GAME( 1997, pclub2pe, stvbios, stv, stv, stv_state, stv, ROT0, "Atlus", "Print Club 2 Pepsiman (J 970618 V1.100)", MACHINE_NOT_WORKING ) +GAME( 1997, pclub2wb, stvbios, stv, stv, stv_state, stv, ROT0, "Atlus", "Print Club 2 Warner Bros (J 970228 V1.000)", MACHINE_NOT_WORKING ) -GAME( 1997, pclb2elk, stvbios, stv, stv, stv_state, stv, ROT0, "Atlus", "Print Club 2 Earth Limited Kobe (Print Club Custom) (J 970808 V1.000)", MACHINE_NOT_WORKING ) -GAME( 1997, pckobe99, stvbios, stv, stv, stv_state, stv, ROT0, "Atlus", "Print Club 2 Kobe Luminaire '99 (Print Club Custom 3) (J 991203 V1.000)", MACHINE_NOT_WORKING ) +GAME( 1997, pclb2elk, stvbios, stv, stv, stv_state, stv, ROT0, "Atlus", "Print Club 2 Earth Limited Kobe (Print Club Custom) (J 970808 V1.000)", MACHINE_NOT_WORKING ) +GAME( 1997, pckobe99, stvbios, stv, stv, stv_state, stv, ROT0, "Atlus", "Print Club 2 Kobe Luminaire '99 (Print Club Custom 3) (J 991203 V1.000)", MACHINE_NOT_WORKING ) -GAME( 1997, pclub26w, stvbios, stv, stv, stv_state, stv, ROT0, "Atlus", "Print Club 2 Vol. 6 Winter (J 961210 V1.000)", MACHINE_NOT_WORKING ) // internal string is 'PURIKURA2 97FUYU' (but in reality it seems to be an end of 96 Winter version) -GAME( 1997, pclub26wa, pclub26w,stv, stv, stv_state, stv, ROT0, "Atlus", "Print Club 2 Vol. 6 Winter (J 970121 V1.200)", MACHINE_NOT_WORKING ) // ^ -GAME( 1997, pclub27s, stvbios, stv, stv, stv_state, stv, ROT0, "Atlus", "Print Club 2 Vol. 7 Spring (J 970313 V1.100)", MACHINE_NOT_WORKING ) -GAME( 1997, prc28su, stvbios, stv, stv, stv_state, stv, ROT0, "Atlus", "Print Club 2 Vol. 8 Summer (J 970616 V1.100)", MACHINE_NOT_WORKING ) // internal string 97SUMMER -GAME( 1997, prc29au, stvbios, stv, stv, stv_state, stv, ROT0, "Atlus", "Print Club 2 Vol. 9 Autumn (J V1.100)", MACHINE_NOT_WORKING ) // internal string 97AUTUMN, no date code! (all 0) -GAME( 1997, prc297wi, stvbios, stv, stv, stv_state, stv, ROT0, "Atlus", "Print Club 2 '97 Winter Ver (J 971017 V1.100, set 1)", MACHINE_NOT_WORKING ) // internal string is '97WINTER' -GAME( 1997, prc297wia, prc297wi,stv, stv, stv_state, stv, ROT0, "Atlus", "Print Club 2 '97 Winter Ver (J 971017 V1.100, set 2)", MACHINE_NOT_WORKING ) // different program revision, same date code, clearly didn't get updated properly -GAME( 1998, prc298sp, stvbios, stv, stv, stv_state, stv, ROT0, "Atlus", "Print Club 2 '98 Spring Ver (J 971017 V1.100)", MACHINE_NOT_WORKING ) // again, date doesn't appear to have bene updated, this should be early 98 -GAME( 1998, prc298su, stvbios, stv, stv, stv_state, stv, ROT0, "Atlus", "Print Club 2 '98 Summer Ver (J 980603 V1.100)", MACHINE_NOT_WORKING ) // -GAME( 1998, prc298au, stvbios, stv, stv, stv_state, stv, ROT0, "Atlus", "Print Club 2 '98 Autumn Ver (J 980827 V1.000)", MACHINE_NOT_WORKING ) -GAME( 2000, prc2ksu, stvbios, stv, stv, stv_state, stv, ROT0, "Atlus", "Print Club 2 2000 Summer (J 000509 V1.000)", MACHINE_NOT_WORKING ) // internal string 2000_SUMMER +GAME( 1997, pclub26w, stvbios, stv, stv, stv_state, stv, ROT0, "Atlus", "Print Club 2 Vol. 6 Winter (J 961210 V1.000)", MACHINE_NOT_WORKING ) // internal string is 'PURIKURA2 97FUYU' (but in reality it seems to be an end of 96 Winter version) +GAME( 1997, pclub26wa, pclub26w,stv, stv, stv_state, stv, ROT0, "Atlus", "Print Club 2 Vol. 6 Winter (J 970121 V1.200)", MACHINE_NOT_WORKING ) // ^ +GAME( 1997, pclub27s, stvbios, stv, stv, stv_state, stv, ROT0, "Atlus", "Print Club 2 Vol. 7 Spring (J 970313 V1.100)", MACHINE_NOT_WORKING ) +GAME( 1997, prc28su, stvbios, stv, stv, stv_state, stv, ROT0, "Atlus", "Print Club 2 Vol. 8 Summer (J 970616 V1.100)", MACHINE_NOT_WORKING ) // internal string 97SUMMER +GAME( 1997, prc29au, stvbios, stv, stv, stv_state, stv, ROT0, "Atlus", "Print Club 2 Vol. 9 Autumn (J V1.100)", MACHINE_NOT_WORKING ) // internal string 97AUTUMN, no date code! (all 0) +GAME( 1997, prc297wi, stvbios, stv, stv, stv_state, stv, ROT0, "Atlus", "Print Club 2 '97 Winter Ver (J 971017 V1.100, set 1)", MACHINE_NOT_WORKING ) // internal string is '97WINTER' +GAME( 1997, prc297wia, prc297wi,stv, stv, stv_state, stv, ROT0, "Atlus", "Print Club 2 '97 Winter Ver (J 971017 V1.100, set 2)", MACHINE_NOT_WORKING ) // different program revision, same date code, clearly didn't get updated properly +GAME( 1998, prc298sp, stvbios, stv, stv, stv_state, stv, ROT0, "Atlus", "Print Club 2 '98 Spring Ver (J 971017 V1.100)", MACHINE_NOT_WORKING ) // again, date doesn't appear to have bene updated, this should be early 98 +GAME( 1998, prc298su, stvbios, stv, stv, stv_state, stv, ROT0, "Atlus", "Print Club 2 '98 Summer Ver (J 980603 V1.100)", MACHINE_NOT_WORKING ) // +GAME( 1998, prc298au, stvbios, stv, stv, stv_state, stv, ROT0, "Atlus", "Print Club 2 '98 Autumn Ver (J 980827 V1.000)", MACHINE_NOT_WORKING ) +GAME( 2000, prc2ksu, stvbios, stv, stv, stv_state, stv, ROT0, "Atlus", "Print Club 2 2000 Summer (J 000509 V1.000)", MACHINE_NOT_WORKING ) // internal string 2000_SUMMER -GAME( 1999, pclubor, stvbios, stv, stv, stv_state, stv, ROT0, "Atlus", "Print Club Goukakenran (J 991104 V1.000)", MACHINE_NOT_WORKING ) -GAME( 1999, pclubol, stvbios, stv, stv, stv_state, stv, ROT0, "Atlus", "Print Club Olive (J 980717 V1.000)", MACHINE_NOT_WORKING ) -GAME( 1997, pclub2kc, stvbios, stv, stv, stv_state, stv, ROT0, "Atlus", "Print Club Kome Kome Club (J 970203 V1.000)", MACHINE_NOT_WORKING ) -GAME( 1997, pclubyo2, stvbios, stv, stv, stv_state, stv, ROT0, "Atlus", "Print Club Yoshimoto V2 (J 970422 V1.100)", MACHINE_NOT_WORKING ) +GAME( 1999, pclubor, stvbios, stv, stv, stv_state, stv, ROT0, "Atlus", "Print Club Goukakenran (J 991104 V1.000)", MACHINE_NOT_WORKING ) +GAME( 1999, pclubol, stvbios, stv, stv, stv_state, stv, ROT0, "Atlus", "Print Club Olive (J 980717 V1.000)", MACHINE_NOT_WORKING ) +GAME( 1997, pclub2kc, stvbios, stv, stv, stv_state, stv, ROT0, "Atlus", "Print Club Kome Kome Club (J 970203 V1.000)", MACHINE_NOT_WORKING ) +GAME( 1997, pclubyo2, stvbios, stv, stv, stv_state, stv, ROT0, "Atlus", "Print Club Yoshimoto V2 (J 970422 V1.100)", MACHINE_NOT_WORKING ) -GAME( 1997, pclove, stvbios, stv_5838, stv, stv_state, decathlt, ROT0, "Atlus", "Print Club LoveLove (J 970421 V1.000)", MACHINE_NOT_WORKING ) // uses the same type of protection as decathlete!! -GAME( 1997, pclove2, stvbios, stv_5838, stv, stv_state, decathlt, ROT0, "Atlus", "Print Club LoveLove Ver 2 (J 970825 V1.000)", MACHINE_NOT_WORKING ) // ^ -GAME( 1997, pcpooh2, stvbios, stv_5838, stv, stv_state, decathlt, ROT0, "Atlus", "Print Club Winnie-the-Pooh Vol. 2 (J 971218 V1.000)", MACHINE_NOT_WORKING ) // ^ -GAME( 1998, pcpooh3, stvbios, stv_5838, stv, stv_state, decathlt, ROT0, "Atlus", "Print Club Winnie-the-Pooh Vol. 3 (J 980406 V1.000)", MACHINE_NOT_WORKING ) // ^ +GAME( 1997, pclove, stvbios, stv_5838, stv, stv_state, decathlt, ROT0, "Atlus", "Print Club LoveLove (J 970421 V1.000)", MACHINE_NOT_WORKING ) // uses the same type of protection as decathlete!! +GAME( 1997, pclove2, stvbios, stv_5838, stv, stv_state, decathlt, ROT0, "Atlus", "Print Club LoveLove Ver 2 (J 970825 V1.000)", MACHINE_NOT_WORKING ) // ^ +GAME( 1997, pcpooh2, stvbios, stv_5838, stv, stv_state, decathlt, ROT0, "Atlus", "Print Club Winnie-the-Pooh Vol. 2 (J 971218 V1.000)", MACHINE_NOT_WORKING ) // ^ +GAME( 1998, pcpooh3, stvbios, stv_5838, stv, stv_state, decathlt, ROT0, "Atlus", "Print Club Winnie-the-Pooh Vol. 3 (J 980406 V1.000)", MACHINE_NOT_WORKING ) // ^ -GAME( 1998, stress, stvbios, stv, stv, stv_state, stv, ROT0, "Sega", "Stress Busters (J 981020 V1.000)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1998, stress, stvbios, stv, stv, stv_state, stv, ROT0, "Sega", "Stress Busters (J 981020 V1.000)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1996, nameclub, stvbios, stv_5838, stv, stv_state, decathlt, ROT0, "Sega", "Name Club (J 960315 V1.000)", MACHINE_NOT_WORKING ) // uses the same type of protection as decathlete!! -GAME( 1996, nclubv2, stvbios, stv_5838, stv, stv_state, decathlt, ROT0, "Sega", "Name Club Ver.2 (J 960315 V1.000)", MACHINE_NOT_WORKING ) // ^ (has the same datecode as nameclub, probably incorrect unless both were released today) -GAME( 1997, nclubv3, stvbios, stv, stv, stv_state, nameclv3, ROT0, "Sega", "Name Club Ver.3 (J 970723 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) // no protection +GAME( 1996, nameclub, stvbios, stv_5838, stv, stv_state, decathlt, ROT0, "Sega", "Name Club (J 960315 V1.000)", MACHINE_NOT_WORKING ) // uses the same type of protection as decathlete!! +GAME( 1996, nclubv2, stvbios, stv_5838, stv, stv_state, decathlt, ROT0, "Sega", "Name Club Ver.2 (J 960315 V1.000)", MACHINE_NOT_WORKING ) // ^ (has the same datecode as nameclub, probably incorrect unless both were released today) +GAME( 1997, nclubv3, stvbios, stv, stv, stv_state, nameclv3, ROT0, "Sega", "Name Club Ver.3 (J 970723 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) // no protection /* Doing something.. but not enough yet */ -GAME( 1995, vfremix, stvbios, stv, stv, stv_state, vfremix, ROT0, "Sega", "Virtua Fighter Remix (JUETBKAL 950428 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) -GAME( 1996, decathlt, stvbios, stv_5838, stv, stv_state, decathlt, ROT0, "Sega", "Decathlete (JUET 960709 V1.001)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION ) -GAME( 1996, decathlto, decathlt,stv_5838, stv, stv_state, decathlt, ROT0, "Sega", "Decathlete (JUET 960424 V1.000)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION ) -GAME( 1998, twcup98, stvbios, stv_5881, stv, stv_state, twcup98, ROT0, "Tecmo", "Tecmo World Cup '98 (JUET 980410 V1.000)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // some situations with the GK result in the game stalling, maybe CPU core bug?? -GAME( 1998, twsoc98, twcup98, stv_5881, stv, stv_state, twcup98, ROT0, "Tecmo", "Tecmo World Soccer '98 (JUET 980410 V1.000)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // ^^ (check) +GAME( 1995, vfremix, stvbios, stv, stv, stv_state, vfremix, ROT0, "Sega", "Virtua Fighter Remix (JUETBKAL 950428 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) +GAME( 1996, decathlt, stvbios, stv_5838, stv, stv_state, decathlt, ROT0, "Sega", "Decathlete (JUET 960709 V1.001)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION ) +GAME( 1996, decathlto, decathlt,stv_5838, stv, stv_state, decathlt, ROT0, "Sega", "Decathlete (JUET 960424 V1.000)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION ) +GAME( 1998, twcup98, stvbios, stv_5881, stv, stv_state, twcup98, ROT0, "Tecmo", "Tecmo World Cup '98 (JUET 980410 V1.000)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // some situations with the GK result in the game stalling, maybe CPU core bug?? +GAME( 1998, twsoc98, twcup98, stv_5881, stv, stv_state, twcup98, ROT0, "Tecmo", "Tecmo World Soccer '98 (JUET 980410 V1.000)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // ^^ (check) /* Gives I/O errors */ -GAME( 1996, magzun, stvbios, stv, stv, stv_state, magzun, ROT0, "Sega", "Magical Zunou Power (J 961031 V1.000)", MACHINE_NOT_WORKING | MACHINE_NODEVICE_MICROPHONE ) -GAME( 1997, techbowl, stvbios, stv, stv, stv_state, stv, ROT0, "Sega", "Technical Bowling (J 971212 V1.000)", MACHINE_NOT_WORKING ) -GAME( 1999, micrombc, stvbios, stv, stv, stv_state, stv, ROT0, "Sega", "Microman Battle Charge (J 990326 V1.000)", MACHINE_NOT_WORKING ) -GAME( 1998, choroqhr, stvbios, stv, stv, stv_state, stv, ROT0, "Sega / Takara", "Choro Q Hyper Racing 5 (J 981230 V1.000)", MACHINE_NOT_WORKING ) +GAME( 1996, magzun, stvbios, stv, stv, stv_state, magzun, ROT0, "Sega", "Magical Zunou Power (J 961031 V1.000)", MACHINE_NOT_WORKING | MACHINE_NODEVICE_MICROPHONE ) +GAME( 1997, techbowl, stvbios, stv, stv, stv_state, stv, ROT0, "Sega", "Technical Bowling (J 971212 V1.000)", MACHINE_NOT_WORKING ) +GAME( 1999, micrombc, stvbios, stv, stv, stv_state, stv, ROT0, "Sega", "Microman Battle Charge (J 990326 V1.000)", MACHINE_NOT_WORKING ) +GAME( 1998, choroqhr, stvbios, stv, stv, stv_state, stv, ROT0, "Sega / Takara", "Choro Q Hyper Racing 5 (J 981230 V1.000)", MACHINE_NOT_WORKING ) /* CD games */ -GAME( 1995, sfish2, 0, stv, stv, stv_state, stv, ROT0, "Sega", "Sport Fishing 2 (UET 951106 V1.10e)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING ) -GAME( 1995, sfish2j, sfish2, stv, stv, stv_state, stv, ROT0, "Sega", "Sport Fishing 2 (J 951201 V1.100)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING ) +GAME( 1995, sfish2, 0, stv, stv, stv_state, stv, ROT0, "Sega", "Sport Fishing 2 (UET 951106 V1.10e)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING ) +GAME( 1995, sfish2j, sfish2, stv, stv, stv_state, stv, ROT0, "Sega", "Sport Fishing 2 (J 951201 V1.100)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING ) /* This is the known list of undumped ST-V games: diff --git a/src/mame/drivers/su2000.cpp b/src/mame/drivers/su2000.cpp index 05626c7714d..51501fe3dc7 100644 --- a/src/mame/drivers/su2000.cpp +++ b/src/mame/drivers/su2000.cpp @@ -119,7 +119,7 @@ static void ide_interrupt(device_t *device, int state) * *************************************/ -static MACHINE_CONFIG_START( su2000, su2000_state ) +static MACHINE_CONFIG_START( su2000 ) /* Basic machine hardware */ MCFG_CPU_ADD("maincpu", I486, I486_CLOCK) MCFG_CPU_PROGRAM_MAP(pcat_map) @@ -266,4 +266,4 @@ ROM_START( su2000 ) * *************************************/ -GAME( 1993, su2000, 0, su2000, pc_keyboard, driver_device, 0, ROT0, "Virtuality", "SU2000", MACHINE_IS_BIOS_ROOT | MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +GAME( 1993, su2000, 0, su2000, pc_keyboard, su2000_state, 0, ROT0, "Virtuality", "SU2000", MACHINE_IS_BIOS_ROOT | MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/sub.cpp b/src/mame/drivers/sub.cpp index c860afdd287..a43d54e3354 100644 --- a/src/mame/drivers/sub.cpp +++ b/src/mame/drivers/sub.cpp @@ -442,7 +442,7 @@ INTERRUPT_GEN_MEMBER(sub_state::sound_irq) m_soundcpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE); } -static MACHINE_CONFIG_START( sub, sub_state ) +static MACHINE_CONFIG_START( sub ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80,MASTER_CLOCK/6) /* ? MHz */ @@ -516,4 +516,4 @@ ROM_START( sub ) ROM_LOAD( "prom pos c8 n82s129", 0x0600, 0x100, CRC(351e1ef8) SHA1(530c9012ff5abda1c4ba9787ca999ca1ae1a893d) ) ROM_END -GAME( 1985, sub, 0, sub, sub, driver_device, 0, ROT270, "Sigma Enterprises Inc.", "Submarine (Sigma)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1985, sub, 0, sub, sub, sub_state, 0, ROT270, "Sigma Enterprises Inc.", "Submarine (Sigma)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/subhuntr.cpp b/src/mame/drivers/subhuntr.cpp index 33b61913da6..b9f6fc711b5 100644 --- a/src/mame/drivers/subhuntr.cpp +++ b/src/mame/drivers/subhuntr.cpp @@ -130,7 +130,7 @@ static GFXDECODE_START( subhuntr ) GFXDECODE_END -static MACHINE_CONFIG_START( subhuntr, subhuntr_state ) +static MACHINE_CONFIG_START( subhuntr ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", S2650, 14318180/4/2) @@ -179,4 +179,4 @@ ROM_START( subhuntr ) ROM_LOAD( "82S115.2B", 0x0000, 0x0200, CRC(6946c9de) SHA1(956b4bebe6960a73609deb75e1493c4127fd7f77) ) // ASCII, not much else ROM_END -GAME(1979, subhuntr, 0, subhuntr, subhuntr, driver_device, 0, ROT0, "Model Racing", "Sub Hunter (Model Racing)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +GAME(1979, subhuntr, 0, subhuntr, subhuntr, subhuntr_state, 0, ROT0, "Model Racing", "Sub Hunter (Model Racing)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/subs.cpp b/src/mame/drivers/subs.cpp index 84d1c34425b..76a30841615 100644 --- a/src/mame/drivers/subs.cpp +++ b/src/mame/drivers/subs.cpp @@ -180,7 +180,7 @@ GFXDECODE_END * *************************************/ -static MACHINE_CONFIG_START( subs, subs_state ) +static MACHINE_CONFIG_START( subs ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502,12096000/16) /* clock input is the "4H" signal */ @@ -256,4 +256,4 @@ ROM_END * *************************************/ -GAME( 1977, subs, 0, subs, subs, driver_device, 0, ROT0, "Atari", "Subs", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1977, subs, 0, subs, subs, subs_state, 0, ROT0, "Atari", "Subs", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/subsino.cpp b/src/mame/drivers/subsino.cpp index cca15d88f5d..54ec51fd806 100644 --- a/src/mame/drivers/subsino.cpp +++ b/src/mame/drivers/subsino.cpp @@ -2798,7 +2798,7 @@ GFXDECODE_END * Machine Drivers * ***************************************************************************/ -static MACHINE_CONFIG_START( victor21, subsino_state ) +static MACHINE_CONFIG_START( victor21 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z180, XTAL_12MHz / 8) /* Unknown clock */ MCFG_CPU_PROGRAM_MAP(victor21_map) @@ -2828,7 +2828,7 @@ static MACHINE_CONFIG_START( victor21, subsino_state ) MCFG_SOUND_ADD("ymsnd", YM2413, XTAL_3_579545MHz) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MCFG_OKIM6295_ADD("oki", XTAL_4_433619MHz / 4, OKIM6295_PIN7_HIGH) /* Clock frequency & pin 7 not verified */ + MCFG_OKIM6295_ADD("oki", XTAL_4_433619MHz / 4, PIN7_HIGH) /* Clock frequency & pin 7 not verified */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -2841,7 +2841,7 @@ static MACHINE_CONFIG_DERIVED( victor5, victor21 ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( crsbingo, subsino_state ) +static MACHINE_CONFIG_START( crsbingo ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z180, XTAL_12MHz / 8) /* Unknown CPU and clock */ MCFG_CPU_PROGRAM_MAP(crsbingo_map) @@ -2873,7 +2873,7 @@ static MACHINE_CONFIG_START( crsbingo, subsino_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( srider, subsino_state ) +static MACHINE_CONFIG_START( srider ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z180, XTAL_12MHz / 8) /* Unknown clock */ MCFG_CPU_PROGRAM_MAP(srider_map) @@ -2903,7 +2903,7 @@ static MACHINE_CONFIG_START( srider, subsino_state ) MCFG_SOUND_ADD("ymsnd", YM3812, XTAL_3_579545MHz) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MCFG_OKIM6295_ADD("oki", XTAL_4_433619MHz / 4, OKIM6295_PIN7_HIGH) /* Clock frequency & pin 7 not verified */ + MCFG_OKIM6295_ADD("oki", XTAL_4_433619MHz / 4, PIN7_HIGH) /* Clock frequency & pin 7 not verified */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -2915,7 +2915,7 @@ static MACHINE_CONFIG_DERIVED( sharkpy, srider ) MCFG_CPU_PROGRAM_MAP(sharkpy_map) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( tisub, subsino_state ) +static MACHINE_CONFIG_START( tisub ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z180, XTAL_12MHz / 8) /* Unknown CPU and clock */ MCFG_CPU_PROGRAM_MAP(tisub_map) @@ -2946,7 +2946,7 @@ static MACHINE_CONFIG_START( tisub, subsino_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( stbsub, subsino_state ) +static MACHINE_CONFIG_START( stbsub ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z180, XTAL_12MHz / 8) /* Unknown clock */ MCFG_CPU_PROGRAM_MAP(stbsub_map) diff --git a/src/mame/drivers/subsino2.cpp b/src/mame/drivers/subsino2.cpp index d5175798e67..03bd43f6dab 100644 --- a/src/mame/drivers/subsino2.cpp +++ b/src/mame/drivers/subsino2.cpp @@ -2352,7 +2352,7 @@ INPUT_PORTS_END Bishou Jan ***************************************************************************/ -static MACHINE_CONFIG_START( bishjan, subsino2_state ) +static MACHINE_CONFIG_START( bishjan ) MCFG_CPU_ADD("maincpu", H83044, XTAL_44_1MHz / 3) MCFG_CPU_PROGRAM_MAP( bishjan_map ) MCFG_CPU_VBLANK_INT_DRIVER("screen", subsino2_state, irq0_line_hold) @@ -2399,7 +2399,7 @@ MACHINE_CONFIG_END Magic Train ***************************************************************************/ -static MACHINE_CONFIG_START( mtrain, subsino2_state ) +static MACHINE_CONFIG_START( mtrain ) MCFG_CPU_ADD("maincpu", Z180, XTAL_12MHz / 8) /* Unknown clock */ MCFG_CPU_PROGRAM_MAP( mtrain_map ) MCFG_CPU_IO_MAP( mtrain_io ) @@ -2423,7 +2423,7 @@ static MACHINE_CONFIG_START( mtrain, subsino2_state ) // sound hardware MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", XTAL_8_4672MHz / 8, OKIM6295_PIN7_HIGH) // probably + MCFG_OKIM6295_ADD("oki", XTAL_8_4672MHz / 8, PIN7_HIGH) // probably MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -2431,7 +2431,7 @@ MACHINE_CONFIG_END Sakura Love - Ying Hua Lian ***************************************************************************/ -static MACHINE_CONFIG_START( saklove, subsino2_state ) +static MACHINE_CONFIG_START( saklove ) MCFG_CPU_ADD("maincpu", I80188, XTAL_20MHz*2 ) // !! AMD AM188-EM !! MCFG_CPU_PROGRAM_MAP( saklove_map ) MCFG_CPU_IO_MAP( saklove_io ) @@ -2455,7 +2455,7 @@ static MACHINE_CONFIG_START( saklove, subsino2_state ) // sound hardware MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", XTAL_8_4672MHz / 8, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", XTAL_8_4672MHz / 8, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) MCFG_SOUND_ADD("ymsnd", YM3812, XTAL_12MHz / 4) // ? chip and clock unknown @@ -2466,7 +2466,7 @@ MACHINE_CONFIG_END X-Plan ***************************************************************************/ -static MACHINE_CONFIG_START( xplan, subsino2_state ) +static MACHINE_CONFIG_START( xplan ) MCFG_CPU_ADD("maincpu", I80188, XTAL_20MHz*2 ) // !! AMD AM188-EM !! MCFG_CPU_PROGRAM_MAP( xplan_map ) MCFG_CPU_IO_MAP( xplan_io ) @@ -2491,7 +2491,7 @@ static MACHINE_CONFIG_START( xplan, subsino2_state ) // sound hardware MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", XTAL_8_4672MHz / 8, OKIM6295_PIN7_HIGH) // probably + MCFG_OKIM6295_ADD("oki", XTAL_8_4672MHz / 8, PIN7_HIGH) // probably MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END diff --git a/src/mame/drivers/summit.cpp b/src/mame/drivers/summit.cpp index 323958899a0..a8dc78e162d 100644 --- a/src/mame/drivers/summit.cpp +++ b/src/mame/drivers/summit.cpp @@ -304,7 +304,7 @@ PALETTE_INIT_MEMBER(summit_state, summit) { } -static MACHINE_CONFIG_START( summit, summit_state ) +static MACHINE_CONFIG_START( summit ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80,4000000) MCFG_CPU_PROGRAM_MAP(mainmap) @@ -346,4 +346,4 @@ ROM_START( pushover ) ROM_END -GAME( 1981, pushover, 0, summit, summit, driver_device, 0, ROT270, "Summit Coin", "Push Over (Summit Coin)", MACHINE_NOT_WORKING|MACHINE_NO_SOUND|MACHINE_WRONG_COLORS ) +GAME( 1981, pushover, 0, summit, summit, summit_state, 0, ROT270, "Summit Coin", "Push Over (Summit Coin)", MACHINE_NOT_WORKING|MACHINE_NO_SOUND|MACHINE_WRONG_COLORS ) diff --git a/src/mame/drivers/sumt8035.cpp b/src/mame/drivers/sumt8035.cpp index 457c7dbe006..8702b86a2b5 100644 --- a/src/mame/drivers/sumt8035.cpp +++ b/src/mame/drivers/sumt8035.cpp @@ -233,7 +233,7 @@ static INPUT_PORTS_START( summit ) INPUT_PORTS_END -static MACHINE_CONFIG_START( summit, sumt8035_state ) +static MACHINE_CONFIG_START( summit ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",I8035,5000000) MCFG_CPU_PROGRAM_MAP(sumt_map) @@ -255,5 +255,5 @@ ROM_START( sm_ultng ) ROM_END -GAME( 1981, sm_ngacc, 0, summit, summit, driver_device, 0, ROT270, "Summit Coin", "Nudge Accumulator (Summit Coin)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 1981, sm_ultng, 0, summit, summit, driver_device, 0, ROT270, "Summit Coin", "Ultimate Nudge (Summit Coin)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 1981, sm_ngacc, 0, summit, summit, sumt8035_state, 0, ROT270, "Summit Coin", "Nudge Accumulator (Summit Coin)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 1981, sm_ultng, 0, summit, summit, sumt8035_state, 0, ROT270, "Summit Coin", "Ultimate Nudge (Summit Coin)", MACHINE_IS_SKELETON_MECHANICAL ) diff --git a/src/mame/drivers/sun1.cpp b/src/mame/drivers/sun1.cpp index be74d757311..48f89b79425 100644 --- a/src/mame/drivers/sun1.cpp +++ b/src/mame/drivers/sun1.cpp @@ -67,12 +67,15 @@ public: { } - required_device m_maincpu; - required_device m_terminal; DECLARE_READ16_MEMBER(sun1_upd7201_r); DECLARE_WRITE16_MEMBER(sun1_upd7201_w); - DECLARE_WRITE8_MEMBER(kbd_put); + void kbd_put(u8 data); + +protected: virtual void machine_reset() override; + + required_device m_maincpu; + required_device m_terminal; required_shared_ptr m_p_ram; uint8_t m_term_data; }; @@ -124,19 +127,19 @@ void sun1_state::machine_reset() } -WRITE8_MEMBER( sun1_state::kbd_put ) +void sun1_state::kbd_put(u8 data) { m_term_data = data; } -static MACHINE_CONFIG_START( sun1, sun1_state ) +static MACHINE_CONFIG_START( sun1 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_10MHz) MCFG_CPU_PROGRAM_MAP(sun1_mem) /* video hardware */ MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0) - MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(sun1_state, kbd_put)) + MCFG_GENERIC_TERMINAL_KEYBOARD_CB(PUT(sun1_state, kbd_put)) MACHINE_CONFIG_END /* ROM definition */ @@ -166,5 +169,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1982, sun1, 0, 0, sun1, sun1, driver_device, 0, "Sun Microsystems", "Sun-1", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1982, sun1, 0, 0, sun1, sun1, sun1_state, 0, "Sun Microsystems", "Sun-1", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/sun2.cpp b/src/mame/drivers/sun2.cpp index a179a218c46..c2381f35b2a 100644 --- a/src/mame/drivers/sun2.cpp +++ b/src/mame/drivers/sun2.cpp @@ -582,7 +582,7 @@ void sun2_state::machine_reset() m_maincpu->reset(); } -static MACHINE_CONFIG_START( sun2vme, sun2_state ) +static MACHINE_CONFIG_START( sun2vme ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68010, 16670000) MCFG_CPU_PROGRAM_MAP(sun2_mem) @@ -642,7 +642,7 @@ static MACHINE_CONFIG_START( sun2vme, sun2_state ) MCFG_RS232_CTS_HANDLER(DEVWRITELINE(SCC2_TAG, z80scc_device, ctsb_w)) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( sun2mbus, sun2_state ) +static MACHINE_CONFIG_START( sun2mbus ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68010, 16670000) MCFG_CPU_PROGRAM_MAP(sun2_mem) @@ -722,6 +722,6 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1984, sun2_50, 0, 0, sun2vme, sun2, driver_device, 0, "Sun Microsystems", "Sun 2/50", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -COMP( 1984, sun2_120, 0, 0, sun2mbus, sun2, driver_device, 0, "Sun Microsystems", "Sun 2/120", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1984, sun2_50, 0, 0, sun2vme, sun2, driver_device, 0, "Sun Microsystems", "Sun 2/50", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +COMP( 1984, sun2_120, 0, 0, sun2mbus, sun2, driver_device, 0, "Sun Microsystems", "Sun 2/120", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) diff --git a/src/mame/drivers/sun3.cpp b/src/mame/drivers/sun3.cpp index 5257353a07f..ad3dd8a922a 100644 --- a/src/mame/drivers/sun3.cpp +++ b/src/mame/drivers/sun3.cpp @@ -950,7 +950,7 @@ void sun3_state::machine_reset() } // The base Sun 3004 CPU board -static MACHINE_CONFIG_START( sun3, sun3_state ) +static MACHINE_CONFIG_START( sun3 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68020, 16670000) MCFG_CPU_PROGRAM_MAP(sun3_mem) @@ -1053,7 +1053,7 @@ static MACHINE_CONFIG_DERIVED( sun3200, sun3 ) MCFG_RAM_EXTRA_OPTIONS("64M,96M,128M") MACHINE_CONFIG_END -static MACHINE_CONFIG_START( sun3_50, sun3_state ) +static MACHINE_CONFIG_START( sun3_50 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68020, 15700000) MCFG_CPU_PROGRAM_MAP(sun3_mem) @@ -1257,10 +1257,10 @@ ROM_START( sun3_e ) ROM_LOAD( "sun3-e-idprom.bin", 0x000000, 0x000020, CRC(d1a92116) SHA1(4836f3188f2c3dd5ba49ab66e0b55caa6b1b1791) ) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 198?, sun3_50, 0, 0, sun3_50, sun3, driver_device, 0, "Sun Microsystems", "Sun 3/50", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) // Model 25 -COMP( 1988, sun3_60, 0, 0, sun3_60, sun3, driver_device, 0, "Sun Microsystems", "Sun 3/60", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) // Ferrari -COMP( 198?, sun3_110, 0, 0, sun3, sun3, driver_device, 0, "Sun Microsystems", "Sun 3/110", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) // Prism -COMP( 1985, sun3_150, 0, 0, sun3, sun3, driver_device, 0, "Sun Microsystems", "Sun 3/75/140/150/160/180", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) // AKA Carrera -COMP( 198?, sun3_260, 0, 0, sun3200, sun3, driver_device, 0, "Sun Microsystems", "Sun 3/260/280", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) // Prism -COMP( 198?, sun3_e, 0, 0, sun3e, sun3, driver_device, 0, "Sun Microsystems", "Sun 3/E", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) // Polaris +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 198?, sun3_50, 0, 0, sun3_50, sun3, sun3_state, 0, "Sun Microsystems", "Sun 3/50", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // Model 25 +COMP( 1988, sun3_60, 0, 0, sun3_60, sun3, sun3_state, 0, "Sun Microsystems", "Sun 3/60", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // Ferrari +COMP( 198?, sun3_110, 0, 0, sun3, sun3, sun3_state, 0, "Sun Microsystems", "Sun 3/110", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // Prism +COMP( 1985, sun3_150, 0, 0, sun3, sun3, sun3_state, 0, "Sun Microsystems", "Sun 3/75/140/150/160/180", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // AKA Carrera +COMP( 198?, sun3_260, 0, 0, sun3200, sun3, sun3_state, 0, "Sun Microsystems", "Sun 3/260/280", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // Prism +COMP( 198?, sun3_e, 0, 0, sun3e, sun3, sun3_state, 0, "Sun Microsystems", "Sun 3/E", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // Polaris diff --git a/src/mame/drivers/sun3x.cpp b/src/mame/drivers/sun3x.cpp index 79125a1fffa..74a5ff4cb8e 100644 --- a/src/mame/drivers/sun3x.cpp +++ b/src/mame/drivers/sun3x.cpp @@ -574,7 +574,7 @@ static SLOT_INTERFACE_START( sun_floppies ) SLOT_INTERFACE( "35hd", FLOPPY_35_HD ) SLOT_INTERFACE_END -static MACHINE_CONFIG_START( sun3_80, sun3x_state ) +static MACHINE_CONFIG_START( sun3_80 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68030, 20000000) MCFG_CPU_PROGRAM_MAP(sun3_80_mem) @@ -621,7 +621,7 @@ static MACHINE_CONFIG_START( sun3_80, sun3x_state ) MCFG_SCREEN_REFRESH_RATE(72) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( sun3_460, sun3x_state ) +static MACHINE_CONFIG_START( sun3_460 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68030, 33000000) MCFG_CPU_PROGRAM_MAP(sun3_460_mem) @@ -690,6 +690,6 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 198?, sun3_80, 0, 0, sun3_80, sun3x, driver_device, 0, "Sun Microsystems", "Sun 3/80", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) // Hydra -COMP( 198?, sun3_460, 0, 0, sun3_460, sun3x, driver_device, 0, "Sun Microsystems", "Sun 3/460/470/480", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) // Pegasus +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 198?, sun3_80, 0, 0, sun3_80, sun3x, sun3x_state, 0, "Sun Microsystems", "Sun 3/80", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // Hydra +COMP( 198?, sun3_460, 0, 0, sun3_460, sun3x, sun3x_state, 0, "Sun Microsystems", "Sun 3/460/470/480", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // Pegasus diff --git a/src/mame/drivers/sun4.cpp b/src/mame/drivers/sun4.cpp index 2d560440fbd..d45eeabde98 100644 --- a/src/mame/drivers/sun4.cpp +++ b/src/mame/drivers/sun4.cpp @@ -1890,7 +1890,7 @@ static MACHINE_CONFIG_FRAGMENT( ncr5390 ) MCFG_NCR5390_DRQ_HANDLER(DEVWRITELINE(":", sun4_state, scsi_drq)) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( sun4, sun4_state ) +static MACHINE_CONFIG_START( sun4 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", MB86901, 16670000) MCFG_DEVICE_ADDRESS_MAP(AS_PROGRAM, sun4_mem) @@ -1955,7 +1955,7 @@ static MACHINE_CONFIG_START( sun4, sun4_state ) MCFG_DEVICE_CARD_MACHINE_CONFIG("ncr5390", ncr5390) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( sun4c, sun4_state ) +static MACHINE_CONFIG_START( sun4c ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", MB86901, 16670000) MCFG_DEVICE_ADDRESS_MAP(AS_PROGRAM, sun4c_mem) @@ -2296,20 +2296,20 @@ DRIVER_INIT_MEMBER(sun4_state, ss2) /* Drivers */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS // sun4 -COMP( 198?, sun4_110, 0, 0, sun4, sun4, sun4_state, sun4, "Sun Microsystems", "Sun 4/110", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -COMP( 1987, sun4_300, 0, 0, sun4, sun4, sun4_state, sun4, "Sun Microsystems", "Sun 4/3x0", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -COMP( 198?, sun4_400, 0, 0, sun4, sun4, sun4_state, sun4, "Sun Microsystems", "Sun 4/4x0", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +COMP( 198?, sun4_110, 0, 0, sun4, sun4, sun4_state, sun4, "Sun Microsystems", "Sun 4/110", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +COMP( 1987, sun4_300, 0, 0, sun4, sun4, sun4_state, sun4, "Sun Microsystems", "Sun 4/3x0", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +COMP( 198?, sun4_400, 0, 0, sun4, sun4, sun4_state, sun4, "Sun Microsystems", "Sun 4/4x0", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // sun4c -COMP( 1990, sun4_40, sun4_300,0, sun4c, sun4, sun4_state, sun4c, "Sun Microsystems", "SPARCstation IPC (Sun 4/40)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -COMP( 1991, sun4_50, sun4_300,0, sun4c, sun4, sun4_state, ss2, "Sun Microsystems", "SPARCstation IPX (Sun 4/50)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -COMP( 199?, sun4_20, sun4_300,0, sun4c, sun4, sun4_state, sun4c, "Sun Microsystems", "SPARCstation SLC (Sun 4/20)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -COMP( 1989, sun4_60, sun4_300,0, sun4c, sun4, sun4_state, sun4c, "Sun Microsystems", "SPARCstation 1 (Sun 4/60)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -COMP( 1990, sun4_65, sun4_300,0, sun4c, sun4, sun4_state, sun4c, "Sun Microsystems", "SPARCstation 1+ (Sun 4/65)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -COMP( 1990, sun4_75, sun4_300,0, sun4c, sun4, sun4_state, ss2, "Sun Microsystems", "SPARCstation 2 (Sun 4/75)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +COMP( 1990, sun4_40, sun4_300, 0, sun4c, sun4, sun4_state, sun4c, "Sun Microsystems", "SPARCstation IPC (Sun 4/40)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +COMP( 1991, sun4_50, sun4_300, 0, sun4c, sun4, sun4_state, ss2, "Sun Microsystems", "SPARCstation IPX (Sun 4/50)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +COMP( 199?, sun4_20, sun4_300, 0, sun4c, sun4, sun4_state, sun4c, "Sun Microsystems", "SPARCstation SLC (Sun 4/20)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +COMP( 1989, sun4_60, sun4_300, 0, sun4c, sun4, sun4_state, sun4c, "Sun Microsystems", "SPARCstation 1 (Sun 4/60)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +COMP( 1990, sun4_65, sun4_300, 0, sun4c, sun4, sun4_state, sun4c, "Sun Microsystems", "SPARCstation 1+ (Sun 4/65)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +COMP( 1990, sun4_75, sun4_300, 0, sun4c, sun4, sun4_state, ss2, "Sun Microsystems", "SPARCstation 2 (Sun 4/75)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // sun4m (using the SPARC "reference MMU", probably will go to a separate driver) -COMP( 1992, sun_s10, sun4_300,0, sun4c, sun4, sun4_state, sun4c, "Sun Microsystems", "SPARCstation 10 (Sun S10)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -COMP( 1994, sun_s20, sun4_300,0, sun4c, sun4, sun4_state, sun4c, "Sun Microsystems", "SPARCstation 20", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +COMP( 1992, sun_s10, sun4_300, 0, sun4c, sun4, sun4_state, sun4c, "Sun Microsystems", "SPARCstation 10 (Sun S10)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +COMP( 1994, sun_s20, sun4_300, 0, sun4c, sun4, sun4_state, sun4c, "Sun Microsystems", "SPARCstation 20", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/suna16.cpp b/src/mame/drivers/suna16.cpp index b264d29e3fe..b56c1fbd24d 100644 --- a/src/mame/drivers/suna16.cpp +++ b/src/mame/drivers/suna16.cpp @@ -796,7 +796,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(suna16_state::bssoccer_interrupt) m_maincpu->set_input_line(2, HOLD_LINE); // does RAM to sprite buffer copy here } -static MACHINE_CONFIG_START( bssoccer, suna16_state ) +static MACHINE_CONFIG_START( bssoccer ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_32MHz/4) /* 8MHz */ @@ -859,7 +859,7 @@ MACHINE_CONFIG_END Ultra Balloon ***************************************************************************/ -static MACHINE_CONFIG_START( uballoon, suna16_state ) +static MACHINE_CONFIG_START( uballoon ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_32MHz/4) /* 8MHz */ @@ -914,7 +914,7 @@ MACHINE_CONFIG_END Suna Quiz 6000 Academy ***************************************************************************/ -static MACHINE_CONFIG_START( sunaq, suna16_state ) +static MACHINE_CONFIG_START( sunaq ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_24MHz/4) /* 6MHz */ @@ -975,7 +975,7 @@ WRITE8_MEMBER(suna16_state::bestbest_ay8910_port_a_w) // ? } -static MACHINE_CONFIG_START( bestbest, suna16_state ) +static MACHINE_CONFIG_START( bestbest ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_24MHz/4) /* 6MHz */ @@ -1366,8 +1366,8 @@ ROM_END ***************************************************************************/ -GAME( 1994, bestbest, 0, bestbest, bestbest, driver_device, 0, ROT0, "SunA", "Best Of Best", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, sunaq, 0, sunaq, sunaq, driver_device, 0, ROT0, "SunA", "SunA Quiz 6000 Academy (940620-6)", MACHINE_SUPPORTS_SAVE ) // Date/Version on-screen is 940620-6, but in the program rom it's 1994,6,30 K.H.T V6.00 -GAME( 1996, bssoccer, 0, bssoccer, bssoccer, driver_device, 0, ROT0, "SunA (Unico license)", "Back Street Soccer (KRB-0031 PCB)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, bssoccera, bssoccer, bssoccer, bssoccer, driver_device, 0, ROT0, "SunA (Unico license)", "Back Street Soccer (KRB-0032A PCB)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, uballoon, 0, uballoon, uballoon, driver_device, 0, ROT0, "SunA (Unico license)", "Ultra Balloon", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, bestbest, 0, bestbest, bestbest, suna16_state, 0, ROT0, "SunA", "Best Of Best", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, sunaq, 0, sunaq, sunaq, suna16_state, 0, ROT0, "SunA", "SunA Quiz 6000 Academy (940620-6)", MACHINE_SUPPORTS_SAVE ) // Date/Version on-screen is 940620-6, but in the program rom it's 1994,6,30 K.H.T V6.00 +GAME( 1996, bssoccer, 0, bssoccer, bssoccer, suna16_state, 0, ROT0, "SunA (Unico license)", "Back Street Soccer (KRB-0031 PCB)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, bssoccera, bssoccer, bssoccer, bssoccer, suna16_state, 0, ROT0, "SunA (Unico license)", "Back Street Soccer (KRB-0032A PCB)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, uballoon, 0, uballoon, uballoon, suna16_state, 0, ROT0, "SunA (Unico license)", "Ultra Balloon", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/suna8.cpp b/src/mame/drivers/suna8.cpp index 0e315115ea6..ca3165638b1 100644 --- a/src/mame/drivers/suna8.cpp +++ b/src/mame/drivers/suna8.cpp @@ -1867,7 +1867,7 @@ GFXDECODE_END /* 1 x 24 MHz crystal */ -static MACHINE_CONFIG_START( hardhead, suna8_state ) +static MACHINE_CONFIG_START( hardhead ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, SUNA8_MASTER_CLOCK / 4) /* verified on pcb */ @@ -1925,7 +1925,7 @@ MACHINE_CONFIG_END /* 1 x 24 MHz crystal */ /* 2203 + 8910 */ -static MACHINE_CONFIG_START( rranger, suna8_state ) +static MACHINE_CONFIG_START( rranger ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, SUNA8_MASTER_CLOCK / 4) /* ? */ @@ -1993,7 +1993,7 @@ MACHINE_RESET_MEMBER(suna8_state,brickzn) m_bank1d->set_entry(0); } -static MACHINE_CONFIG_START( brickzn11, suna8_state ) +static MACHINE_CONFIG_START( brickzn11 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, SUNA8_MASTER_CLOCK / 4) /* SUNA PROTECTION BLOCK */ @@ -2106,7 +2106,7 @@ MACHINE_CONFIG_END Star Fighter ***************************************************************************/ -static MACHINE_CONFIG_START( starfigh, suna8_state ) +static MACHINE_CONFIG_START( starfigh ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, SUNA8_MASTER_CLOCK / 4) /* ? */ @@ -2161,7 +2161,7 @@ MACHINE_CONFIG_END Spark Man ***************************************************************************/ -static MACHINE_CONFIG_START( sparkman, suna8_state ) +static MACHINE_CONFIG_START( sparkman ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, SUNA8_MASTER_CLOCK / 4) /* ? */ @@ -3065,7 +3065,7 @@ GAME( 1989, sparkmana, sparkman, sparkman, sparkman, suna8_state, sparkman, ROT GAME( 1990, starfigh, 0, starfigh, starfigh, suna8_state, starfigh, ROT90, "SunA", "Star Fighter (v1)", MACHINE_IMPERFECT_GRAPHICS ) GAME( 1991, hardhea2, 0, hardhea2, hardhea2, suna8_state, hardhea2, ROT0, "SunA", "Hard Head 2 (v2.0)", 0 ) -GAME( 1991, hardhea2b, hardhea2, hardhea2b,hardhea2, suna8_state, hardhea2b, ROT0, "bootleg", "Hard Head 2 (v2.0, bootleg)", MACHINE_NOT_WORKING ) +GAME( 1991, hardhea2b, hardhea2, hardhea2b,hardhea2, suna8_state, hardhea2b, ROT0, "bootleg", "Hard Head 2 (v2.0, bootleg)", MACHINE_NOT_WORKING ) GAME( 1992, brickzn, 0, brickzn, brickznv6,suna8_state, brickzn, ROT90, "SunA", "Brick Zone (v6.0, Joystick)", 0 ) GAME( 1992, brickznv5, brickzn, brickzn, brickzn, suna8_state, brickznv5, ROT90, "SunA", "Brick Zone (v5.0, Joystick)", 0 ) diff --git a/src/mame/drivers/supbtime.cpp b/src/mame/drivers/supbtime.cpp index 7ccf5109050..fbb6122bd89 100644 --- a/src/mame/drivers/supbtime.cpp +++ b/src/mame/drivers/supbtime.cpp @@ -316,7 +316,7 @@ void supbtime_state::machine_start() { } -static MACHINE_CONFIG_START( supbtime, supbtime_state ) +static MACHINE_CONFIG_START( supbtime ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 14000000) @@ -368,12 +368,12 @@ static MACHINE_CONFIG_START( supbtime, supbtime_state ) MCFG_SOUND_ROUTE(0, "mono", 0.45) MCFG_SOUND_ROUTE(1, "mono", 0.45) - MCFG_OKIM6295_ADD("oki", 1023924, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki", 1023924, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( chinatwn, supbtime_state ) +static MACHINE_CONFIG_START( chinatwn ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 14000000) @@ -424,7 +424,7 @@ static MACHINE_CONFIG_START( chinatwn, supbtime_state ) MCFG_SOUND_ROUTE(0, "mono", 0.45) MCFG_SOUND_ROUTE(1, "mono", 0.45) - MCFG_OKIM6295_ADD("oki", 1023924, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki", 1023924, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) MACHINE_CONFIG_END @@ -509,7 +509,7 @@ ROM_END /******************************************************************************/ -GAME( 1990, supbtime, 0, supbtime, supbtime, driver_device, 0, ROT0, "Data East Corporation", "Super Burger Time (World, set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, supbtimea,supbtime, supbtime, supbtime, driver_device, 0, ROT0, "Data East Corporation", "Super Burger Time (World, set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, supbtimej,supbtime, supbtime, supbtime, driver_device, 0, ROT0, "Data East Corporation", "Super Burger Time (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, chinatwn, 0, chinatwn, chinatwn, driver_device, 0, ROT0, "Data East Corporation", "China Town (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, supbtime, 0, supbtime, supbtime, supbtime_state, 0, ROT0, "Data East Corporation", "Super Burger Time (World, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, supbtimea,supbtime, supbtime, supbtime, supbtime_state, 0, ROT0, "Data East Corporation", "Super Burger Time (World, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, supbtimej,supbtime, supbtime, supbtime, supbtime_state, 0, ROT0, "Data East Corporation", "Super Burger Time (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, chinatwn, 0, chinatwn, chinatwn, supbtime_state, 0, ROT0, "Data East Corporation", "China Town (Japan)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/supdrapo.cpp b/src/mame/drivers/supdrapo.cpp index 26e37acb32a..a1ae624f62a 100644 --- a/src/mame/drivers/supdrapo.cpp +++ b/src/mame/drivers/supdrapo.cpp @@ -449,7 +449,7 @@ WRITE8_MEMBER(supdrapo_state::ay8910_outputb_w) Machine Driver **********************************************************************/ -static MACHINE_CONFIG_START( supdrapo, supdrapo_state ) +static MACHINE_CONFIG_START( supdrapo ) MCFG_CPU_ADD("maincpu", Z80, CPU_CLOCK) /* guess */ MCFG_CPU_PROGRAM_MAP(sdpoker_mem) @@ -610,7 +610,7 @@ ROM_END Games Drivers **********************************************************************/ -/* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS... */ -GAME( 1983, supdrapo, 0, supdrapo, supdrapo, driver_device, 0, ROT90, "Valadon Automation (Stern Electronics license)", "Super Draw Poker (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, supdrapoa, supdrapo, supdrapo, supdrapo, driver_device, 0, ROT90, "Valadon Automation / Jeutel", "Super Draw Poker (set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, supdrapob, supdrapo, supdrapo, supdrapo, driver_device, 0, ROT90, "bootleg", "Super Draw Poker (bootleg)", MACHINE_SUPPORTS_SAVE ) +// YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS +GAME( 1983, supdrapo, 0, supdrapo, supdrapo, supdrapo_state, 0, ROT90, "Valadon Automation (Stern Electronics license)", "Super Draw Poker (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, supdrapoa, supdrapo, supdrapo, supdrapo, supdrapo_state, 0, ROT90, "Valadon Automation / Jeutel", "Super Draw Poker (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, supdrapob, supdrapo, supdrapo, supdrapo, supdrapo_state, 0, ROT90, "bootleg", "Super Draw Poker (bootleg)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/supduck.cpp b/src/mame/drivers/supduck.cpp index 6dd7f5bb1fd..1a762169f40 100644 --- a/src/mame/drivers/supduck.cpp +++ b/src/mame/drivers/supduck.cpp @@ -433,7 +433,7 @@ void supduck_state::machine_reset() } -static MACHINE_CONFIG_START( supduck, supduck_state ) +static MACHINE_CONFIG_START( supduck ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_8MHz) /* Verified on PCB */ @@ -467,7 +467,7 @@ static MACHINE_CONFIG_START( supduck, supduck_state ) MCFG_GENERIC_LATCH_8_ADD("soundlatch") - MCFG_OKIM6295_ADD("oki", XTAL_8MHz/8, OKIM6295_PIN7_HIGH) // 1MHz - Verified on PCB, pin 7 not verified + MCFG_OKIM6295_ADD("oki", XTAL_8MHz/8, PIN7_HIGH) // 1MHz - Verified on PCB, pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MCFG_DEVICE_ADDRESS_MAP(AS_0, oki_map) @@ -517,4 +517,4 @@ ROM_START( supduck ) ROM_LOAD( "1.su13", 0x00000, 0x80000, CRC(7fb1ed42) SHA1(77ec86a6454398e329066aa060e9b6a39085ce71) ) // banked sample data ROM_END -GAME( 1992, supduck, 0, supduck, supduck, driver_device, 0, ROT0, "Comad", "Super Duck", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, supduck, 0, supduck, supduck, supduck_state, 0, ROT0, "Comad", "Super Duck", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/super6.cpp b/src/mame/drivers/super6.cpp index 9359722cb3b..d3112637a0a 100644 --- a/src/mame/drivers/super6.cpp +++ b/src/mame/drivers/super6.cpp @@ -289,7 +289,7 @@ static ADDRESS_MAP_START( super6_io, AS_IO, 8, super6_state ) AM_RANGE(0x00, 0x03) AM_DEVREADWRITE(Z80DART_TAG, z80dart_device, ba_cd_r, ba_cd_w) AM_RANGE(0x04, 0x07) AM_DEVREADWRITE(Z80PIO_TAG, z80pio_device, read, write) AM_RANGE(0x08, 0x0b) AM_DEVREADWRITE(Z80CTC_TAG, z80ctc_device, read, write) - AM_RANGE(0x0c, 0x0f) AM_DEVREADWRITE(WD2793_TAG, wd2793_t, read, write) + AM_RANGE(0x0c, 0x0f) AM_DEVREADWRITE(WD2793_TAG, wd2793_device, read, write) AM_RANGE(0x10, 0x10) AM_MIRROR(0x03) AM_DEVREADWRITE(Z80DMA_TAG, z80dma_device, read, write) AM_RANGE(0x14, 0x14) AM_READWRITE(fdc_r, fdc_w) AM_RANGE(0x15, 0x15) AM_READ_PORT("J7") AM_WRITE(s100_w) @@ -486,7 +486,7 @@ void super6_state::machine_reset() // MACHINE_CONFIG( super6 ) //------------------------------------------------- -static MACHINE_CONFIG_START( super6, super6_state ) +static MACHINE_CONFIG_START( super6 ) // basic machine hardware MCFG_CPU_ADD(Z80_TAG, Z80, XTAL_24MHz/4) MCFG_CPU_PROGRAM_MAP(super6_mem) @@ -574,5 +574,5 @@ ROM_END // SYSTEM DRIVERS //************************************************************************** -// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS -COMP( 1983, super6, 0, 0, super6, super6, driver_device, 0, "Advanced Digital Corporation", "Super Six", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1983, super6, 0, 0, super6, super6, super6_state, 0, "Advanced Digital Corporation", "Super Six", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW ) diff --git a/src/mame/drivers/super80.cpp b/src/mame/drivers/super80.cpp index 6f1705aabdb..5195bf9b5a7 100644 --- a/src/mame/drivers/super80.cpp +++ b/src/mame/drivers/super80.cpp @@ -297,7 +297,7 @@ static ADDRESS_MAP_START( super80r_io, AS_IO, 8, super80_state ) AM_RANGE(0x11, 0x11) AM_DEVREAD("crtc", mc6845_device, register_r) AM_RANGE(0x11, 0x11) AM_WRITE(super80v_11_w) AM_RANGE(0x30, 0x30) AM_DEVREADWRITE("dma", z80dma_device, read, write) - AM_RANGE(0x38, 0x3b) AM_DEVREADWRITE("fdc", wd2793_t, read, write) + AM_RANGE(0x38, 0x3b) AM_DEVREADWRITE("fdc", wd2793_device, read, write) AM_RANGE(0x3e, 0x3e) AM_READ(port3e_r) AM_RANGE(0x3f, 0x3f) AM_WRITE(port3f_w) AM_RANGE(0xdc, 0xdc) AM_DEVREAD("cent_status_in", input_buffer_device, read) @@ -692,7 +692,7 @@ static const char *const relay_sample_names[] = }; -static MACHINE_CONFIG_START( super80, super80_state ) +static MACHINE_CONFIG_START( super80 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, MASTER_CLOCK/6) /* 2 MHz */ MCFG_CPU_PROGRAM_MAP(super80_map) @@ -778,7 +778,7 @@ static MACHINE_CONFIG_DERIVED( super80m, super80 ) MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(super80_state, screen_vblank_super80m)) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( super80v, super80_state ) +static MACHINE_CONFIG_START( super80v ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, MASTER_CLOCK/6) /* 2 MHz */ MCFG_CPU_PROGRAM_MAP(super80v_map) diff --git a/src/mame/drivers/superchs.cpp b/src/mame/drivers/superchs.cpp index 436646a5880..4eceea60799 100644 --- a/src/mame/drivers/superchs.cpp +++ b/src/mame/drivers/superchs.cpp @@ -304,7 +304,7 @@ GFXDECODE_END MACHINE DRIVERS ***********************************************************/ -static MACHINE_CONFIG_START( superchs, superchs_state ) +static MACHINE_CONFIG_START( superchs ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68EC020, XTAL_40MHz/2) /* 20MHz - verified */ @@ -589,4 +589,4 @@ DRIVER_INIT_MEMBER(superchs_state,superchs) GAMEL( 1992, superchs, 0, superchs, superchs, superchs_state, superchs, ROT0, "Taito Corporation Japan", "Super Chase - Criminal Termination (World)", 0, layout_superchs ) GAMEL( 1992, superchsu, superchs, superchs, superchs, superchs_state, superchs, ROT0, "Taito America Corporation", "Super Chase - Criminal Termination (US)", 0, layout_superchs ) GAMEL( 1992, superchsj, superchs, superchs, superchs, superchs_state, superchs, ROT0, "Taito Corporation", "Super Chase - Criminal Termination (Japan)", 0, layout_superchs ) -GAMEL( 1992, superchsp, superchs, chase3, superchs, driver_device, 0, ORIENTATION_FLIP_X, "Taito Corporation", "Super Chase - Criminal Termination (1992/10/26 20:24:29 CHASE 3 VER 1.1, prototype)", 0, layout_superchs ) // has CHASE 3 as the internal description +GAMEL( 1992, superchsp, superchs, chase3, superchs, superchs_state, 0, ORIENTATION_FLIP_X, "Taito Corporation", "Super Chase - Criminal Termination (1992/10/26 20:24:29 CHASE 3 VER 1.1, prototype)", 0, layout_superchs ) // has CHASE 3 as the internal description diff --git a/src/mame/drivers/supercrd.cpp b/src/mame/drivers/supercrd.cpp index 359110b6645..a292ef0af6a 100644 --- a/src/mame/drivers/supercrd.cpp +++ b/src/mame/drivers/supercrd.cpp @@ -412,7 +412,7 @@ GFXDECODE_END * Machine Drivers * **************************/ -static MACHINE_CONFIG_START( supercrd, supercrd_state ) +static MACHINE_CONFIG_START( supercrd ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, MASTER_CLOCK/8) /* 2MHz, guess */ MCFG_CPU_PROGRAM_MAP(supercrd_map) @@ -510,6 +510,6 @@ ROM_START( fruitstr ) ROM_END -/* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS */ -GAME( 1992, supercrd, 0, supercrd, supercrd, driver_device, 0, ROT0, "Fun World", "Super Card (encrypted)", MACHINE_NOT_WORKING ) -GAME( 1992, fruitstr, 0, supercrd, supercrd, driver_device, 0, ROT0, "Fun World", "Fruit Star (encrypted)", MACHINE_NOT_WORKING ) +// YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS +GAME( 1992, supercrd, 0, supercrd, supercrd, supercrd_state, 0, ROT0, "Fun World", "Super Card (encrypted)", MACHINE_NOT_WORKING ) +GAME( 1992, fruitstr, 0, supercrd, supercrd, supercrd_state, 0, ROT0, "Fun World", "Fruit Star (encrypted)", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/superdq.cpp b/src/mame/drivers/superdq.cpp index 7705d317aee..80e0a4d70da 100644 --- a/src/mame/drivers/superdq.cpp +++ b/src/mame/drivers/superdq.cpp @@ -325,7 +325,7 @@ void superdq_state::machine_start() } -static MACHINE_CONFIG_START( superdq, superdq_state ) +static MACHINE_CONFIG_START( superdq ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, MASTER_CLOCK/8) @@ -414,6 +414,6 @@ ROM_END * *************************************/ -GAME( 1984, superdq, 0, superdq, superdq, driver_device, 0, ROT0, "Universal", "Super Don Quix-ote (Long Scenes)", MACHINE_NOT_WORKING ) -GAME( 1984, superdqs, superdq, superdq, superdq, driver_device, 0, ROT0, "Universal", "Super Don Quix-ote (Short Scenes)", MACHINE_NOT_WORKING ) -GAME( 1984, superdqa, superdq, superdq, superdq, driver_device, 0, ROT0, "Universal", "Super Don Quix-ote (Short Scenes, Alt)", MACHINE_NOT_WORKING ) +GAME( 1984, superdq, 0, superdq, superdq, superdq_state, 0, ROT0, "Universal", "Super Don Quix-ote (Long Scenes)", MACHINE_NOT_WORKING ) +GAME( 1984, superdqs, superdq, superdq, superdq, superdq_state, 0, ROT0, "Universal", "Super Don Quix-ote (Short Scenes)", MACHINE_NOT_WORKING ) +GAME( 1984, superdqa, superdq, superdq, superdq, superdq_state, 0, ROT0, "Universal", "Super Don Quix-ote (Short Scenes, Alt)", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/superqix.cpp b/src/mame/drivers/superqix.cpp index 1df370144ca..384b8f82f07 100644 --- a/src/mame/drivers/superqix.cpp +++ b/src/mame/drivers/superqix.cpp @@ -1336,7 +1336,7 @@ INTERRUPT_GEN_MEMBER(superqix_state_base::sqix_timer_irq) -static MACHINE_CONFIG_START( pbillian, hotsmash_state ) +static MACHINE_CONFIG_START( pbillian ) MCFG_CPU_ADD("maincpu", Z80,XTAL_12MHz/2) /* 6 MHz, ROHM Z80B */ MCFG_CPU_PROGRAM_MAP(main_map) MCFG_CPU_IO_MAP(pbillian_port_map) @@ -1379,7 +1379,7 @@ static MACHINE_CONFIG_DERIVED( hotsmash, pbillian ) MCFG_M68705_PORTC_W_CB(WRITE8(hotsmash_state, hotsmash_68705_portC_w)) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( sqix, superqix_state ) +static MACHINE_CONFIG_START( sqix ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_12MHz/2) /* 6 MHz */ @@ -1433,7 +1433,7 @@ static MACHINE_CONFIG_DERIVED( sqix_8031, sqix ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( sqix_nomcu, superqix_state ) +static MACHINE_CONFIG_START( sqix_nomcu ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 12000000/2) /* 6 MHz */ @@ -1737,13 +1737,13 @@ DRIVER_INIT_MEMBER(superqix_state_base, perestro) -GAME( 1986, pbillian, 0, pbillian, pbillian, driver_device, 0, ROT0, "Kaneko / Taito", "Prebillian", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, hotsmash, 0, hotsmash, hotsmash, driver_device, 0, ROT90, "Kaneko / Taito", "Vs. Hot Smash", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, sqix, 0, sqix, superqix, superqix_state_base, sqix, ROT90, "Kaneko / Taito", "Super Qix (World/Japan, V1.2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, sqixr1, sqix, sqix, superqix, superqix_state_base, sqix, ROT90, "Kaneko / Taito", "Super Qix (World/Japan, V1.1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, sqixr0, sqix, sqix, superqix, superqix_state_base, sqixr0, ROT90, "Kaneko / Taito", "Super Qix (World/Japan, V1.0)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, sqixu, sqix, sqix, superqix, superqix_state_base, sqix, ROT90, "Kaneko / Taito (Romstar License)", "Super Qix (US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, sqixb1, sqix, sqix_8031, superqix, superqix_state_base, sqixr0, ROT90, "bootleg", "Super Qix (bootleg of V1.0, 8031 MCU)", MACHINE_SUPPORTS_SAVE ) // bootleg of World, Rev 1 -GAME( 1987, sqixb2, sqix, sqix_nomcu, superqix, superqix_state_base, sqix, ROT90, "bootleg", "Super Qix (bootleg, No MCU)", MACHINE_SUPPORTS_SAVE ) // bootleg of World, Rev 1 -GAME( 1994, perestro, 0, sqix_nomcu, superqix, superqix_state_base, perestro, ROT90, "Promat", "Perestroika Girls", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, perestrof,perestro, sqix_nomcu, superqix, superqix_state_base, perestro, ROT90, "Promat (Fuuki license)", "Perestroika Girls (Fuuki license)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, pbillian, 0, pbillian, pbillian, hotsmash_state, 0, ROT0, "Kaneko / Taito", "Prebillian", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, hotsmash, 0, hotsmash, hotsmash, hotsmash_state, 0, ROT90, "Kaneko / Taito", "Vs. Hot Smash", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, sqix, 0, sqix, superqix, superqix_state, sqix, ROT90, "Kaneko / Taito", "Super Qix (World/Japan, V1.2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, sqixr1, sqix, sqix, superqix, superqix_state, sqix, ROT90, "Kaneko / Taito", "Super Qix (World/Japan, V1.1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, sqixr0, sqix, sqix, superqix, superqix_state, sqixr0, ROT90, "Kaneko / Taito", "Super Qix (World/Japan, V1.0)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, sqixu, sqix, sqix, superqix, superqix_state, sqix, ROT90, "Kaneko / Taito (Romstar License)", "Super Qix (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, sqixb1, sqix, sqix_8031, superqix, superqix_state, sqixr0, ROT90, "bootleg", "Super Qix (bootleg of V1.0, 8031 MCU)", MACHINE_SUPPORTS_SAVE ) // bootleg of World, Rev 1 +GAME( 1987, sqixb2, sqix, sqix_nomcu, superqix, superqix_state, sqix, ROT90, "bootleg", "Super Qix (bootleg, No MCU)", MACHINE_SUPPORTS_SAVE ) // bootleg of World, Rev 1 +GAME( 1994, perestro, 0, sqix_nomcu, superqix, superqix_state, perestro, ROT90, "Promat", "Perestroika Girls", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, perestrof,perestro, sqix_nomcu, superqix, superqix_state, perestro, ROT90, "Promat (Fuuki license)", "Perestroika Girls (Fuuki license)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/superslave.cpp b/src/mame/drivers/superslave.cpp index 8d2ec5de24b..0800db8f20a 100644 --- a/src/mame/drivers/superslave.cpp +++ b/src/mame/drivers/superslave.cpp @@ -325,7 +325,7 @@ void superslave_state::machine_reset() // MACHINE_CONFIG( superslave ) //------------------------------------------------- -static MACHINE_CONFIG_START( superslave, superslave_state ) +static MACHINE_CONFIG_START( superslave ) // basic machine hardware MCFG_CPU_ADD(Z80_TAG, Z80, XTAL_8MHz/2) MCFG_CPU_PROGRAM_MAP(superslave_mem) @@ -408,5 +408,5 @@ ROM_END // SYSTEM DRIVERS //************************************************************************** -// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS -COMP( 1983, superslv, 0, 0, superslave, superslave, driver_device, 0, "Advanced Digital Corporation", "Super Slave", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW ) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 1983, superslv, 0, 0, superslave, superslave, superslave_state, 0, "Advanced Digital Corporation", "Super Slave", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW ) diff --git a/src/mame/drivers/supertnk.cpp b/src/mame/drivers/supertnk.cpp index 0a8e6388689..729b9d52a32 100644 --- a/src/mame/drivers/supertnk.cpp +++ b/src/mame/drivers/supertnk.cpp @@ -422,7 +422,7 @@ INPUT_PORTS_END * *************************************/ -static MACHINE_CONFIG_START( supertnk, supertnk_state ) +static MACHINE_CONFIG_START( supertnk ) // CPU TMS9980A; no line connections MCFG_TMS99xx_ADD("maincpu", TMS9980A, 2598750, supertnk_map, supertnk_io_map) diff --git a/src/mame/drivers/superwng.cpp b/src/mame/drivers/superwng.cpp index 45480e8454a..5841fbec7b6 100644 --- a/src/mame/drivers/superwng.cpp +++ b/src/mame/drivers/superwng.cpp @@ -470,7 +470,7 @@ void superwng_state::machine_reset() m_nmi_enable = 0; } -static MACHINE_CONFIG_START( superwng, superwng_state ) +static MACHINE_CONFIG_START( superwng ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, MASTER_CLOCK/4) @@ -525,4 +525,4 @@ ROM_START( superwng ) ROM_END -GAME( 1985, superwng, 0, superwng, superwng, driver_device, 0, ROT90, "Wing", "Super Wing", MACHINE_NOT_WORKING | MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE ) // crashes after bonus stage, see notes, bad rom? +GAME( 1985, superwng, 0, superwng, superwng, superwng_state, 0, ROT90, "Wing", "Super Wing", MACHINE_NOT_WORKING | MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE ) // crashes after bonus stage, see notes, bad rom? diff --git a/src/mame/drivers/supracan.cpp b/src/mame/drivers/supracan.cpp index 8b3e7a11d7a..99014c2c1ab 100644 --- a/src/mame/drivers/supracan.cpp +++ b/src/mame/drivers/supracan.cpp @@ -1884,7 +1884,7 @@ INTERRUPT_GEN_MEMBER(supracan_state::supracan_sound_irq) } } -static MACHINE_CONFIG_START( supracan, supracan_state ) +static MACHINE_CONFIG_START( supracan ) MCFG_CPU_ADD( "maincpu", M68000, XTAL_10_738635MHz ) /* Correct frequency unknown */ MCFG_CPU_PROGRAM_MAP( supracan_mem ) @@ -1923,5 +1923,5 @@ ROM_START( supracan ) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -CONS( 1995, supracan, 0, 0, supracan, supracan, driver_device, 0, "Funtech Entertainment", "Super A'Can", MACHINE_NO_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +CONS( 1995, supracan, 0, 0, supracan, supracan, supracan_state, 0, "Funtech Entertainment", "Super A'Can", MACHINE_NO_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/suprgolf.cpp b/src/mame/drivers/suprgolf.cpp index beec8b8ea15..221c2a236f7 100644 --- a/src/mame/drivers/suprgolf.cpp +++ b/src/mame/drivers/suprgolf.cpp @@ -486,7 +486,7 @@ void suprgolf_state::machine_reset() #define MASTER_CLOCK XTAL_12MHz -static MACHINE_CONFIG_START( suprgolf, suprgolf_state ) +static MACHINE_CONFIG_START( suprgolf ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80,MASTER_CLOCK/2) /* guess */ @@ -531,7 +531,7 @@ static MACHINE_CONFIG_START( suprgolf, suprgolf_state ) MCFG_SOUND_ADD("msm", MSM5205, XTAL_384kHz) /* guess */ MCFG_MSM5205_VCLK_CB(WRITELINE(suprgolf_state, adpcm_int)) /* interrupt function */ - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S48_4B) /* 4KHz 4-bit */ + MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) /* 4KHz 4-bit */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -673,6 +673,6 @@ DRIVER_INIT_MEMBER(suprgolf_state,suprgolf) ROM[0x6d72+(0x4000*3)-0x4000] = 0x20; //patch ROM check } -GAME( 1989, suprgolf, 0, suprgolf, suprgolf, driver_device, 0, ROT0, "Nasco", "Super Crowns Golf (World)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1989, suprgolfj, suprgolf, suprgolf, suprgolf, suprgolf_state, suprgolf, ROT0, "Nasco", "Super Crowns Golf (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1989, albatross, suprgolf, suprgolf, suprgolf, driver_device, 0, ROT0, "Nasco", "Albatross (US Prototype?)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_COCKTAIL| MACHINE_SUPPORTS_SAVE ) +GAME( 1989, suprgolf, 0, suprgolf, suprgolf, suprgolf_state, 0, ROT0, "Nasco", "Super Crowns Golf (World)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1989, suprgolfj, suprgolf, suprgolf, suprgolf, suprgolf_state, suprgolf, ROT0, "Nasco", "Super Crowns Golf (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1989, albatross, suprgolf, suprgolf, suprgolf, suprgolf_state, 0, ROT0, "Nasco", "Albatross (US Prototype?)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_COCKTAIL| MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/suprloco.cpp b/src/mame/drivers/suprloco.cpp index 5ec6b24f543..4c6eae66f69 100644 --- a/src/mame/drivers/suprloco.cpp +++ b/src/mame/drivers/suprloco.cpp @@ -167,7 +167,7 @@ static GFXDECODE_START( suprloco ) GFXDECODE_END -static MACHINE_CONFIG_START( suprloco, suprloco_state ) +static MACHINE_CONFIG_START( suprloco ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", SEGA_315_5015, 4000000) /* 4 MHz (?) */ @@ -308,4 +308,4 @@ DRIVER_INIT_MEMBER(suprloco_state,suprloco) GAME( 1982, suprloco, 0, suprloco, suprloco, suprloco_state, suprloco, ROT0, "Sega", "Super Locomotive (Rev.A)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, suprlocoo, suprloco, suprloco, suprloco, suprloco_state, suprloco, ROT0, "Sega", "Super Locomotive", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, suprlocoo, suprloco, suprloco, suprloco, suprloco_state, suprloco, ROT0, "Sega", "Super Locomotive", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/suprnova.cpp b/src/mame/drivers/suprnova.cpp index 7ee02a51a2d..5d134e1143d 100644 --- a/src/mame/drivers/suprnova.cpp +++ b/src/mame/drivers/suprnova.cpp @@ -786,7 +786,7 @@ GFXDECODE_END /***** MACHINE DRIVER *****/ -static MACHINE_CONFIG_START( skns, skns_state ) +static MACHINE_CONFIG_START( skns ) MCFG_CPU_ADD("maincpu", SH2,28638000) MCFG_CPU_PROGRAM_MAP(skns_map) MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", skns_state, irq, "screen", 0, 1) @@ -1883,31 +1883,31 @@ ROM_END /***** GAME DRIVERS *****/ -GAME( 1996, skns, 0, skns, skns, driver_device, 0, ROT0, "Kaneko", "Super Kaneko Nova System BIOS", MACHINE_IS_BIOS_ROOT ) +GAME( 1996, skns, 0, skns, skns, skns_state, 0, ROT0, "Kaneko", "Super Kaneko Nova System BIOS", MACHINE_IS_BIOS_ROOT ) -GAME( 1996, galpani4, skns, sknsj, cyvern, skns_state, galpani4, ROT0, "Kaneko", "Gals Panic 4 (Japan)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1996, galpani4k, galpani4, sknsk, cyvern, skns_state, galpani4, ROT0, "Kaneko", "Gals Panic 4 (Korea)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 2001, galpanidx, galpani4, sknsa, cyvern, skns_state, galpani4, ROT0, "Kaneko", "Gals Panic DX (Asia)", MACHINE_IMPERFECT_GRAPHICS ) // copyright 2001, re-release for the Asian market? +GAME( 1996, galpani4, skns, sknsj, cyvern, skns_state, galpani4, ROT0, "Kaneko", "Gals Panic 4 (Japan)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1996, galpani4k, galpani4, sknsk, cyvern, skns_state, galpani4, ROT0, "Kaneko", "Gals Panic 4 (Korea)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 2001, galpanidx, galpani4, sknsa, cyvern, skns_state, galpani4, ROT0, "Kaneko", "Gals Panic DX (Asia)", MACHINE_IMPERFECT_GRAPHICS ) // copyright 2001, re-release for the Asian market? // there is a Gals Panic 4 version with 'Gals Panic SU' title as well, seen for sale in Korea (different to the Gals Panic SU clone of galpans2) -GAME( 1996, jjparads, skns, sknsj, skns_1p, skns_state, jjparads, ROT0, "Electro Design", "Jan Jan Paradise", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1996, jjparads, skns, sknsj, skns_1p, skns_state, jjparads, ROT0, "Electro Design", "Jan Jan Paradise", MACHINE_IMPERFECT_GRAPHICS ) GAME( 1997, galpanis, skns, sknse, galpanis, skns_state, galpanis, ROT0, "Kaneko", "Gals Panic S - Extra Edition (Europe, set 1)", MACHINE_IMPERFECT_GRAPHICS ) GAME( 1997, galpanise, galpanis, sknse, galpanis, skns_state, galpanis, ROT0, "Kaneko", "Gals Panic S - Extra Edition (Europe, set 2)", MACHINE_IMPERFECT_GRAPHICS ) GAME( 1997, galpanisj, galpanis, sknsj, galpanis, skns_state, galpanis, ROT0, "Kaneko", "Gals Panic S - Extra Edition (Japan)", MACHINE_IMPERFECT_GRAPHICS ) GAME( 1997, galpanisk, galpanis, sknsk, galpanis, skns_state, galpanis, ROT0, "Kaneko", "Gals Panic S - Extra Edition (Korea)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1997, jjparad2, skns, sknsj, skns_1p, skns_state, jjparad2, ROT0, "Electro Design", "Jan Jan Paradise 2", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1997, jjparad2, skns, sknsj, skns_1p, skns_state, jjparad2, ROT0, "Electro Design", "Jan Jan Paradise 2", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1997, sengekis, skns, sknsa, skns, skns_state, sengekis, ROT90, "Kaneko / Warashi", "Sengeki Striker (Asia)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1997, sengekisj, sengekis, sknsj, skns, skns_state, sengekij, ROT90, "Kaneko / Warashi", "Sengeki Striker (Japan)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1997, sengekis, skns, sknsa, skns, skns_state, sengekis, ROT90, "Kaneko / Warashi", "Sengeki Striker (Asia)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1997, sengekisj, sengekis, sknsj, skns, skns_state, sengekij, ROT90, "Kaneko / Warashi", "Sengeki Striker (Japan)", MACHINE_IMPERFECT_GRAPHICS ) GAME( 1997, vblokbrk, skns, sknse, vblokbrk, skns_state, sarukani, ROT0, "Kaneko / Mediaworks", "VS Block Breaker (Europe)", MACHINE_IMPERFECT_GRAPHICS ) GAME( 1997, vblokbrka, vblokbrk, sknsa, vblokbrk, skns_state, sarukani, ROT0, "Kaneko / Mediaworks", "VS Block Breaker (Asia)", MACHINE_IMPERFECT_GRAPHICS ) GAME( 1997, sarukani, vblokbrk, sknsj, vblokbrk, skns_state, sarukani, ROT0, "Kaneko / Mediaworks", "Saru-Kani-Hamu-Zou (Japan)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1998, cyvern, skns, sknsu, cyvern, skns_state, cyvern, ROT90, "Kaneko", "Cyvern (US)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1998, cyvernj, cyvern, sknsj, cyvern, skns_state, cyvern, ROT90, "Kaneko", "Cyvern (Japan)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1998, cyvern, skns, sknsu, cyvern, skns_state, cyvern, ROT90, "Kaneko", "Cyvern (US)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1998, cyvernj, cyvern, sknsj, cyvern, skns_state, cyvern, ROT90, "Kaneko", "Cyvern (Japan)", MACHINE_IMPERFECT_GRAPHICS ) GAME( 1998, puzzloop, skns, sknse, puzzloop, skns_state, puzzloopu, ROT0, "Mitchell", "Puzz Loop (Europe, v0.94)", MACHINE_IMPERFECT_GRAPHICS ) // Same speed up as US version GAME( 1998, puzzloope, puzzloop, sknse, puzzloop, skns_state, puzzloope, ROT0, "Mitchell", "Puzz Loop (Europe, v0.93)", MACHINE_IMPERFECT_GRAPHICS ) @@ -1916,8 +1916,8 @@ GAME( 1998, puzzloopa, puzzloop, sknsa, puzzloop, skns_state, puzzloopa, ROT0, GAME( 1998, puzzloopk, puzzloop, sknsk, puzzloop, skns_state, puzzloopu, ROT0, "Mitchell", "Puzz Loop (Korea)", MACHINE_IMPERFECT_GRAPHICS ) // Same speed up as US version GAME( 1998, puzzloopu, puzzloop, sknsu, puzzloop, skns_state, puzzloopu, ROT0, "Mitchell", "Puzz Loop (USA)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1998, ryouran , skns, sknsj, skns_1p, skns_state, ryouran, ROT0, "Electro Design", "VS Mahjong Otome Ryouran (set 1)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1998, ryourano, ryouran, sknsj, skns_1p, skns_state, ryouran, ROT0, "Electro Design", "VS Mahjong Otome Ryouran (set 2)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1998, ryouran , skns, sknsj, skns_1p, skns_state, ryouran, ROT0, "Electro Design", "VS Mahjong Otome Ryouran (set 1)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1998, ryourano, ryouran, sknsj, skns_1p, skns_state, ryouran, ROT0, "Electro Design", "VS Mahjong Otome Ryouran (set 2)", MACHINE_IMPERFECT_GRAPHICS ) GAME( 1999, galpans2, skns, sknse, galpanis, skns_state, galpans2, ROT0, "Kaneko", "Gals Panic S2 (Europe)", MACHINE_IMPERFECT_GRAPHICS ) GAME( 1999, galpans2j, galpans2, sknsj, galpanis, skns_state, galpans2, ROT0, "Kaneko", "Gals Panic S2 (Japan)", MACHINE_IMPERFECT_GRAPHICS ) @@ -1926,10 +1926,10 @@ GAME( 1999, galpansu, galpans2, sknsk, galpanis, skns_state, galpans2, ROT0, GAME( 1999, panicstr, skns, sknsj, galpanis, skns_state, panicstr, ROT0, "Kaneko", "Panic Street (Japan)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1999, senknow , skns, sknsj, skns, skns_state, senknow, ROT0, "Kaneko / Kouyousha", "Sen-Know (Japan)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1999, senknow , skns, sknsj, skns, skns_state, senknow, ROT0, "Kaneko / Kouyousha", "Sen-Know (Japan)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1999, teljan , skns, sknsj, skns_1p, skns_state, teljan, ROT0, "Electro Design", "Tel Jan", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1999, teljan , skns, sknsj, skns_1p, skns_state, teljan, ROT0, "Electro Design", "Tel Jan", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 2000, gutsn, skns, sknsj, skns, skns_state, gutsn, ROT0, "Kaneko / Kouyousha", "Guts'n (Japan)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 2000, gutsn, skns, sknsj, skns, skns_state, gutsn, ROT0, "Kaneko / Kouyousha", "Guts'n (Japan)", MACHINE_IMPERFECT_GRAPHICS ) GAME( 2002, galpans3, skns, sknsj, galpanis, skns_state, galpans3, ROT0, "Kaneko", "Gals Panic S3 (Japan)", MACHINE_IMPERFECT_GRAPHICS ) diff --git a/src/mame/drivers/suprridr.cpp b/src/mame/drivers/suprridr.cpp index 2bda5fe3f9c..736cb3eed48 100644 --- a/src/mame/drivers/suprridr.cpp +++ b/src/mame/drivers/suprridr.cpp @@ -345,7 +345,7 @@ GFXDECODE_END * *************************************/ -static MACHINE_CONFIG_START( suprridr, suprridr_state ) +static MACHINE_CONFIG_START( suprridr ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_49_152MHz/16) /* 3 MHz */ @@ -435,4 +435,4 @@ ROM_END * *************************************/ -GAME( 1983, suprridr, 0, suprridr, suprridr, driver_device, 0, ROT90, "Taito Corporation (Venture Line license)", "Super Rider", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1983, suprridr, 0, suprridr, suprridr, suprridr_state, 0, ROT90, "Taito Corporation (Venture Line license)", "Super Rider", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/suprslam.cpp b/src/mame/drivers/suprslam.cpp index 0eee44335a8..290a510dc1a 100644 --- a/src/mame/drivers/suprslam.cpp +++ b/src/mame/drivers/suprslam.cpp @@ -289,7 +289,7 @@ void suprslam_state::machine_reset() m_pending_command = 0; } -static MACHINE_CONFIG_START( suprslam, suprslam_state ) +static MACHINE_CONFIG_START( suprslam ) MCFG_CPU_ADD("maincpu", M68000, 16000000) MCFG_CPU_PROGRAM_MAP(suprslam_map) @@ -375,4 +375,4 @@ ROM_END /*** GAME DRIVERS ************************************************************/ -GAME( 1995, suprslam, 0, suprslam, suprslam, driver_device, 0, ROT0, "Banpresto / Toei Animation", "From TV Animation Slam Dunk - Super Slams", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1995, suprslam, 0, suprslam, suprslam, suprslam_state, 0, ROT0, "Banpresto / Toei Animation", "From TV Animation Slam Dunk - Super Slams", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/supstarf.cpp b/src/mame/drivers/supstarf.cpp index 1215ba8bbd5..d84a99bddde 100644 --- a/src/mame/drivers/supstarf.cpp +++ b/src/mame/drivers/supstarf.cpp @@ -163,7 +163,7 @@ void supstarf_state::machine_start() save_item(NAME(m_port1_data)); } -static MACHINE_CONFIG_START(supstarf, supstarf_state) +static MACHINE_CONFIG_START(supstarf) MCFG_CPU_ADD("maincpu", I8085A, XTAL_5_0688MHz) MCFG_CPU_PROGRAM_MAP(main_map) MCFG_CPU_IO_MAP(main_io_map) @@ -245,4 +245,4 @@ ROM_START(supstarf) ROM_LOAD("2532.ic4", 0x0000, 0x1000, CRC(b6ef3c7a) SHA1(aabb6f8569685fc3a917a7bb5ebfcc4b20086b15) BAD_DUMP) // D6 stuck high and probably totally garbage ROM_END -GAME( 1986, supstarf, 0, supstarf, supstarf, driver_device, 0, ROT0, "Recreativos Franco", "Super Star (Recreativos Franco)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 1986, supstarf, 0, supstarf, supstarf, supstarf_state, 0, ROT0, "Recreativos Franco", "Super Star (Recreativos Franco)", MACHINE_IS_SKELETON_MECHANICAL ) diff --git a/src/mame/drivers/surpratk.cpp b/src/mame/drivers/surpratk.cpp index 2e226c1fa96..d9bbb1f316a 100644 --- a/src/mame/drivers/surpratk.cpp +++ b/src/mame/drivers/surpratk.cpp @@ -166,7 +166,7 @@ WRITE8_MEMBER( surpratk_state::banking_callback ) membank("bank1")->set_entry(data & 0x1f); } -static MACHINE_CONFIG_START( surpratk, surpratk_state ) +static MACHINE_CONFIG_START( surpratk ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", KONAMI, XTAL_24MHz/2/4) /* 053248, the clock input is 12MHz, and internal CPU divider of 4 */ @@ -271,6 +271,6 @@ ROM_END ***************************************************************************/ -GAME( 1990, suratk, 0, surpratk, surpratk, driver_device, 0, ROT0, "Konami", "Surprise Attack (World ver. K)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, suratka, suratk, surpratk, surpratk, driver_device, 0, ROT0, "Konami", "Surprise Attack (Asia ver. L)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, suratkj, suratk, surpratk, surpratk, driver_device, 0, ROT0, "Konami", "Surprise Attack (Japan ver. M)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, suratk, 0, surpratk, surpratk, surpratk_state, 0, ROT0, "Konami", "Surprise Attack (World ver. K)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, suratka, suratk, surpratk, surpratk, surpratk_state, 0, ROT0, "Konami", "Surprise Attack (Asia ver. L)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, suratkj, suratk, surpratk, surpratk, surpratk_state, 0, ROT0, "Konami", "Surprise Attack (Japan ver. M)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/sv8000.cpp b/src/mame/drivers/sv8000.cpp index e0ba58e1387..b79f28139ad 100644 --- a/src/mame/drivers/sv8000.cpp +++ b/src/mame/drivers/sv8000.cpp @@ -368,7 +368,7 @@ READ8_MEMBER( sv8000_state::mc6847_videoram_r ) return data; } -static MACHINE_CONFIG_START( sv8000, sv8000_state ) +static MACHINE_CONFIG_START( sv8000 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80, XTAL_10_738635MHz/3) /* Not verified */ MCFG_CPU_PROGRAM_MAP(sv8000_mem) @@ -415,5 +415,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -CONS( 1979, sv8000, 0, 0, sv8000, sv8000, driver_device, 0, "Bandai", "Super Vision 8000 (TV Jack 8000)", 0 ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +CONS( 1979, sv8000, 0, 0, sv8000, sv8000, sv8000_state, 0, "Bandai", "Super Vision 8000 (TV Jack 8000)", 0 ) diff --git a/src/mame/drivers/svi318.cpp b/src/mame/drivers/svi318.cpp index ddd80d54f46..bb8aec7062d 100644 --- a/src/mame/drivers/svi318.cpp +++ b/src/mame/drivers/svi318.cpp @@ -518,7 +518,7 @@ DEVICE_IMAGE_LOAD_MEMBER( svi3x8_state, cartridge ) // MACHINE DEFINTIONS //************************************************************************** -static MACHINE_CONFIG_START( svi318, svi3x8_state ) +static MACHINE_CONFIG_START( svi318 ) // basic machine hardware MCFG_CPU_ADD("maincpu", Z80, XTAL_10_738635MHz / 3) MCFG_CPU_PROGRAM_MAP(svi3x8_mem) @@ -626,8 +626,8 @@ ROM_END // SYSTEM DRIVERS //************************************************************************** -// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS -COMP( 1983, svi318, 0, 0, svi318, svi318, driver_device, 0, "Spectravideo", "SVI-318 (PAL)", MACHINE_SUPPORTS_SAVE) -COMP( 1983, svi318n, svi318, 0, svi318n, svi318, driver_device, 0, "Spectravideo", "SVI-318 (NTSC)", MACHINE_SUPPORTS_SAVE) -COMP( 1983, svi328, 0, 0, svi328, svi328, driver_device, 0, "Spectravideo", "SVI-328 (PAL)", MACHINE_SUPPORTS_SAVE) -COMP( 1983, svi328n, svi328, 0, svi328n, svi328, driver_device, 0, "Spectravideo", "SVI-328 (NTSC)", MACHINE_SUPPORTS_SAVE) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 1983, svi318, 0, 0, svi318, svi318, svi3x8_state, 0, "Spectravideo", "SVI-318 (PAL)", MACHINE_SUPPORTS_SAVE ) +COMP( 1983, svi318n, svi318, 0, svi318n, svi318, svi3x8_state, 0, "Spectravideo", "SVI-318 (NTSC)", MACHINE_SUPPORTS_SAVE ) +COMP( 1983, svi328, 0, 0, svi328, svi328, svi3x8_state, 0, "Spectravideo", "SVI-328 (PAL)", MACHINE_SUPPORTS_SAVE ) +COMP( 1983, svi328n, svi328, 0, svi328n, svi328, svi3x8_state, 0, "Spectravideo", "SVI-328 (NTSC)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/svision.cpp b/src/mame/drivers/svision.cpp index bcd5649eb4a..c24cbe4c8e8 100644 --- a/src/mame/drivers/svision.cpp +++ b/src/mame/drivers/svision.cpp @@ -512,7 +512,7 @@ MACHINE_RESET_MEMBER(svision_state,tvlink) m_tvlink.palette[3] = MAKE24_RGB32(svisionp_palette[(PALETTE_START+3)*3+0], svisionp_palette[(PALETTE_START+3)*3+1], svisionp_palette[(PALETTE_START+3)*3+2]); } -static MACHINE_CONFIG_START( svision, svision_state ) +static MACHINE_CONFIG_START( svision ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M65C02, 4000000) /* ? stz used! speed? */ MCFG_CPU_PROGRAM_MAP(svision_mem) @@ -598,14 +598,14 @@ ROM_END ***************************************************************************/ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS // marketed under a ton of firms and names -CONS(1992, svision, 0, 0, svision, svision, svision_state, svision, "Watara", "Super Vision", 0) +CONS(1992, svision, 0, 0, svision, svision, svision_state, svision, "Watara", "Super Vision", 0 ) // svdual 2 connected via communication port -CONS( 1992, svisions, svision, 0,svisions, svisions, svision_state, svisions, "Watara", "Super Vision (PeT Communication Simulation)", 0 ) +CONS( 1992, svisions, svision, 0, svisions, svisions, svision_state, svisions, "Watara", "Super Vision (PeT Communication Simulation)", 0 ) -CONS( 1993, svisionp, svision, 0,svisionp, svision, svision_state, svision, "Watara", "Super Vision (PAL TV Link Colored)", 0 ) -CONS( 1993, svisionn, svision, 0,svisionn, svision, svision_state, svision, "Watara", "Super Vision (NTSC TV Link Colored)", 0 ) +CONS( 1993, svisionp, svision, 0, svisionp, svision, svision_state, svision, "Watara", "Super Vision (PAL TV Link Colored)", 0 ) +CONS( 1993, svisionn, svision, 0, svisionn, svision, svision_state, svision, "Watara", "Super Vision (NTSC TV Link Colored)", 0 ) // svtvlink (2 supervisions) // tvlink (pad supervision simulated) -CONS( 199?, tvlinkp, svision, 0,tvlinkp, svision, svision_state, svision, "Watara", "TV Link PAL", 0 ) +CONS( 199?, tvlinkp, svision, 0, tvlinkp, svision, svision_state, svision, "Watara", "TV Link PAL", 0 ) diff --git a/src/mame/drivers/svmu.cpp b/src/mame/drivers/svmu.cpp index f67d892c818..a39703b1fca 100644 --- a/src/mame/drivers/svmu.cpp +++ b/src/mame/drivers/svmu.cpp @@ -300,7 +300,7 @@ QUICKLOAD_LOAD_MEMBER( svmu_state, svmu ) } -static MACHINE_CONFIG_START( svmu, svmu_state ) +static MACHINE_CONFIG_START( svmu ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", LC8670, XTAL_32_768kHz) MCFG_CPU_PROGRAM_MAP(svmu_mem) @@ -359,5 +359,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1998, svmu, 0, 0, svmu , svmu , driver_device, 0, "Sega", "Visual Memory Unit", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +COMP( 1998, svmu, 0, 0, svmu, svmu, svmu_state, 0, "Sega", "Visual Memory Unit", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) diff --git a/src/mame/drivers/swtpc.cpp b/src/mame/drivers/swtpc.cpp index 43a6743ea61..aa73c8fadca 100644 --- a/src/mame/drivers/swtpc.cpp +++ b/src/mame/drivers/swtpc.cpp @@ -56,14 +56,17 @@ public: { } - required_device m_maincpu; - required_device m_terminal; DECLARE_READ8_MEMBER(swtpc_status_r); DECLARE_READ8_MEMBER(swtpc_terminal_r); DECLARE_READ8_MEMBER(swtpc_tricky_r); - DECLARE_WRITE8_MEMBER(kbd_put); - uint8_t m_term_data; + void kbd_put(u8 data); + +protected: virtual void machine_reset() override; + + required_device m_maincpu; + required_device m_terminal; + uint8_t m_term_data; }; // bit 0 - ready to receive a character; bit 1 - ready to send a character to the terminal @@ -103,12 +106,12 @@ void swtpc_state::machine_reset() { } -WRITE8_MEMBER( swtpc_state::kbd_put ) +void swtpc_state::kbd_put(u8 data) { m_term_data = data; } -static MACHINE_CONFIG_START( swtpc, swtpc_state ) +static MACHINE_CONFIG_START( swtpc ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6800, XTAL_1MHz) MCFG_CPU_PROGRAM_MAP(swtpc_mem) @@ -116,7 +119,7 @@ static MACHINE_CONFIG_START( swtpc, swtpc_state ) /* video hardware */ MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0) - MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(swtpc_state, kbd_put)) + MCFG_GENERIC_TERMINAL_KEYBOARD_CB(PUT(swtpc_state, kbd_put)) MACHINE_CONFIG_END /* ROM definition */ @@ -130,5 +133,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1975, swtpc, 0, 0, swtpc, swtpc, driver_device, 0, "Southwest Technical Products Corporation", "SWTPC 6800", MACHINE_NO_SOUND) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1975, swtpc, 0, 0, swtpc, swtpc, swtpc_state, 0, "Southwest Technical Products Corporation", "SWTPC 6800", MACHINE_NO_SOUND) diff --git a/src/mame/drivers/swtpc09.cpp b/src/mame/drivers/swtpc09.cpp index 96420c5d566..256535d1497 100644 --- a/src/mame/drivers/swtpc09.cpp +++ b/src/mame/drivers/swtpc09.cpp @@ -97,7 +97,7 @@ WRITE_LINE_MEMBER(swtpc09_state::write_acia_clock) /* Machine driver */ /* MPU09, MPID, MPS2 DMF2 */ -static MACHINE_CONFIG_START( swtpc09, swtpc09_state ) +static MACHINE_CONFIG_START( swtpc09 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809, 1000000) MCFG_CPU_PROGRAM_MAP(swtpc09_mem) @@ -137,7 +137,7 @@ static MACHINE_CONFIG_START( swtpc09, swtpc09_state ) MACHINE_CONFIG_END /* MPU09, MPID, MPS2 DC4 PIAIDE*/ -static MACHINE_CONFIG_START( swtpc09i, swtpc09_state ) +static MACHINE_CONFIG_START( swtpc09i ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809, 1000000) MCFG_CPU_PROGRAM_MAP(swtpc09_mem) @@ -185,7 +185,7 @@ MACHINE_CONFIG_END /* MPU09, MPID, MPS2 DMF3 */ -static MACHINE_CONFIG_START( swtpc09d3, swtpc09_state ) +static MACHINE_CONFIG_START( swtpc09d3 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809, 2000000) MCFG_CPU_PROGRAM_MAP(swtpc09_mem) @@ -255,8 +255,8 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1980, swtpc09, 0, 0, swtpc09, swtpc09, swtpc09_state, swtpc09, "SWTPC", "swtpc S/09 Sbug", MACHINE_NO_SOUND_HW) -COMP( 1980, swtpc09i, swtpc09, 0, swtpc09i, swtpc09, swtpc09_state, swtpc09i, "SWTPC", "swtpc S/09 Sbug + piaide", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW) -COMP( 1980, swtpc09u, swtpc09, 0, swtpc09, swtpc09, swtpc09_state, swtpc09u, "SWTPC", "swtpc S/09 UNIBug + DMF2", MACHINE_NO_SOUND_HW) -COMP( 1980, swtpc09d3, swtpc09, 0, swtpc09d3, swtpc09, swtpc09_state, swtpc09d3, "SWTPC", "swtpc S/09 UNIBug + DMF3", MACHINE_NO_SOUND_HW) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1980, swtpc09, 0, 0, swtpc09, swtpc09, swtpc09_state, swtpc09, "SWTPC", "swtpc S/09 Sbug", MACHINE_NO_SOUND_HW ) +COMP( 1980, swtpc09i, swtpc09, 0, swtpc09i, swtpc09, swtpc09_state, swtpc09i, "SWTPC", "swtpc S/09 Sbug + piaide", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW ) +COMP( 1980, swtpc09u, swtpc09, 0, swtpc09, swtpc09, swtpc09_state, swtpc09u, "SWTPC", "swtpc S/09 UNIBug + DMF2", MACHINE_NO_SOUND_HW ) +COMP( 1980, swtpc09d3, swtpc09, 0, swtpc09d3, swtpc09, swtpc09_state, swtpc09d3, "SWTPC", "swtpc S/09 UNIBug + DMF3", MACHINE_NO_SOUND_HW ) diff --git a/src/mame/drivers/swyft.cpp b/src/mame/drivers/swyft.cpp index 733e921accb..385d8e98038 100644 --- a/src/mame/drivers/swyft.cpp +++ b/src/mame/drivers/swyft.cpp @@ -768,7 +768,7 @@ WRITE_LINE_MEMBER( swyft_state::write_acia_clock ) m_acia6850->write_rxc(state); } -static MACHINE_CONFIG_START( swyft, swyft_state ) +static MACHINE_CONFIG_START( swyft ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",M68008, XTAL_15_8976MHz/2) //MC68008P8, Y1=15.8976Mhz, clock GUESSED at Y1 / 2 @@ -892,5 +892,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT DEVICE INIT COMPANY FULLNAME FLAGS */ -COMP( 1985, swyft,0, 0, swyft, swyft, driver_device, 0, "Information Applicance Inc", "Swyft", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +// YEAR NAME PARENT COMPAT MACHINE INPUT DEVICE INIT COMPANY FULLNAME FLAGS +COMP( 1985, swyft, 0, 0, swyft, swyft, swyft_state, 0, "Information Applicance Inc", "Swyft", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/sym1.cpp b/src/mame/drivers/sym1.cpp index a6674507be4..de8f4920c43 100644 --- a/src/mame/drivers/sym1.cpp +++ b/src/mame/drivers/sym1.cpp @@ -293,7 +293,7 @@ static ADDRESS_MAP_START( sym1_map, AS_PROGRAM, 8, sym1_state ) AM_RANGE(0x0c00, 0x0fff) AM_RAMBANK("bank4") AM_SHARE("ram_3k") AM_RANGE(0x8000, 0x8fff) AM_ROM AM_SHARE("monitor") // U20 Monitor ROM AM_RANGE(0xa000, 0xa00f) AM_DEVREADWRITE("via6522_0", via6522_device, read, write) // U25 VIA #1 - AM_RANGE(0xa400, 0xa41f) AM_DEVICE("riot", mos6532_t, io_map) // U27 RIOT + AM_RANGE(0xa400, 0xa41f) AM_DEVICE("riot", mos6532_new_device, io_map) // U27 RIOT AM_RANGE(0xa600, 0xa67f) AM_RAMBANK("bank5") AM_SHARE("riot_ram") // U27 RIOT RAM AM_RANGE(0xa800, 0xa80f) AM_DEVREADWRITE("via6522_1", via6522_device, read, write) // U28 VIA #2 AM_RANGE(0xac00, 0xac0f) AM_DEVREADWRITE("via6522_2", via6522_device, read, write) // U29 VIA #3 @@ -305,7 +305,7 @@ ADDRESS_MAP_END // MACHINE DRIVERS //************************************************************************** -static MACHINE_CONFIG_START( sym1, sym1_state ) +static MACHINE_CONFIG_START( sym1 ) // basic machine hardware MCFG_CPU_ADD("maincpu", M6502, SYM1_CLOCK) MCFG_CPU_PROGRAM_MAP(sym1_map) @@ -318,7 +318,7 @@ static MACHINE_CONFIG_START( sym1, sym1_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) // devices - MCFG_DEVICE_ADD("riot", MOS6532n, SYM1_CLOCK) + MCFG_DEVICE_ADD("riot", MOS6532_NEW, SYM1_CLOCK) MCFG_MOS6530n_IN_PA_CB(READ8(sym1_state, sym1_riot_a_r)) MCFG_MOS6530n_OUT_PA_CB(WRITE8(sym1_state, sym1_riot_a_w)) MCFG_MOS6530n_IN_PB_CB(READ8(sym1_state, sym1_riot_b_r)) diff --git a/src/mame/drivers/symbolics.cpp b/src/mame/drivers/symbolics.cpp index a184fb8bc69..6a5ecadd603 100644 --- a/src/mame/drivers/symbolics.cpp +++ b/src/mame/drivers/symbolics.cpp @@ -314,7 +314,7 @@ void symbolics_state::machine_reset() */ } -static MACHINE_CONFIG_START( symbolics, symbolics_state ) +static MACHINE_CONFIG_START( symbolics ) /* basic machine hardware */ // per page 159 of http://bitsavers.trailing-edge.com/pdf/symbolics/3600_series/Lisp_Machine_Hardware_Memos.pdf: //XTALS: 16MHz @H11 (68k CPU clock) @@ -391,5 +391,5 @@ ROM_END Drivers ******************************************************************************/ -/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS COMP( 1984, s3670, 0, 0, symbolics, symbolics, symbolics_state, symbolics, "Symbolics", "3670", MACHINE_IS_SKELETON | MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/sys2900.cpp b/src/mame/drivers/sys2900.cpp index ecfb5e89659..1f26f87244a 100644 --- a/src/mame/drivers/sys2900.cpp +++ b/src/mame/drivers/sys2900.cpp @@ -115,7 +115,7 @@ uint32_t sys2900_state::screen_update_sys2900(screen_device &screen, bitmap_ind1 return 0; } -static MACHINE_CONFIG_START( sys2900, sys2900_state ) +static MACHINE_CONFIG_START( sys2900 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80, XTAL_4MHz) MCFG_CPU_PROGRAM_MAP(sys2900_mem) @@ -143,5 +143,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS COMP( 1981, sys2900, 0, 0, sys2900, sys2900, sys2900_state, sys2900, "Systems Group", "System 2900", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) diff --git a/src/mame/drivers/systec.cpp b/src/mame/drivers/systec.cpp index 502ad4296e7..ce953e3c230 100644 --- a/src/mame/drivers/systec.cpp +++ b/src/mame/drivers/systec.cpp @@ -53,7 +53,7 @@ public: required_device m_terminal; DECLARE_READ8_MEMBER(systec_c4_r); DECLARE_READ8_MEMBER(systec_c6_r); - DECLARE_WRITE8_MEMBER( kbd_put ); + void kbd_put(u8 data); uint8_t m_term_data; virtual void machine_reset() override; }; @@ -70,7 +70,7 @@ READ8_MEMBER( systec_state::systec_c6_r ) return 0x04 | (m_term_data ? 1 : 0); } -WRITE8_MEMBER( systec_state::kbd_put ) +void systec_state::kbd_put(u8 data) { m_term_data = data; } @@ -97,7 +97,7 @@ void systec_state::machine_reset() memcpy(m_p_maincpu, m_p_roms, 0x2000); } -static MACHINE_CONFIG_START( systec, systec_state ) +static MACHINE_CONFIG_START( systec ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_16MHz / 4) MCFG_CPU_PROGRAM_MAP(systec_mem) @@ -106,7 +106,7 @@ static MACHINE_CONFIG_START( systec, systec_state ) /* video hardware */ MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0) - MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(systec_state, kbd_put)) + MCFG_GENERIC_TERMINAL_KEYBOARD_CB(PUT(systec_state, kbd_put)) MACHINE_CONFIG_END @@ -119,5 +119,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP(19??, systec, 0, 0, systec, systec, driver_device, 0, "Systec", "Systec Z80", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP(19??, systec, 0, 0, systec, systec, systec_state, 0, "Systec", "Systec Z80", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) diff --git a/src/mame/drivers/system1.cpp b/src/mame/drivers/system1.cpp index ce5237ce850..2c53f7860f8 100644 --- a/src/mame/drivers/system1.cpp +++ b/src/mame/drivers/system1.cpp @@ -2144,7 +2144,7 @@ GFXDECODE_END *************************************/ /* original board with 64kbit ROMs and an 8255 PPI for outputs */ -static MACHINE_CONFIG_START( sys1ppi, system1_state ) +static MACHINE_CONFIG_START( sys1ppi ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, MASTER_CLOCK) /* not really, see notes above */ @@ -5412,69 +5412,69 @@ GAME( 1986, nob, 0, nobm, nob, system1_state, n GAME( 1986, nobb, nob, nob, nob, system1_state, nobb, ROT270, "bootleg (Game Electronics)", "Noboranka (Japan, bootleg)", MACHINE_SUPPORTS_SAVE ) /* PIO-based System 1 */ -GAME( 1984, flicky, 0, sys1piox_315_5051, flicky, system1_state, bank00, ROT0, "Sega", "Flicky (128k Version, 315-5051)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, flickya, flicky, sys1piox_315_5051, flicky, system1_state, bank00, ROT0, "Sega", "Flicky (128k Version, 315-5051, larger roms)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, flickys2, flicky, sys1pio, flickys2, system1_state, bank00, ROT0, "Sega", "Flicky (128k Version, not encrypted)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, thetogyu, bullfgt, sys1piox_315_5065, bullfgt, system1_state, bank00, ROT0, "Coreland / Sega", "The Togyu (315-5065, Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, spatter, 0, sys1piosx_315_spat,spatter, system1_state, bank00, ROT0, "Sega", "Spatter (315-xxxx)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, spattera, spatter, sys1piosx_315_5099,spatter, system1_state, bank00, ROT0, "Sega", "Spatter (315-5099)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, ssanchan, spatter, sys1piosx_315_spat,spatter, system1_state, bank00, ROT0, "Sega", "Sanrin San Chan (Japan, 315-xxxx)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, pitfall2, 0, sys1piox_315_5093, pitfall2, system1_state, bank00, ROT0, "Sega", "Pitfall II (315-5093)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, pitfall2a, pitfall2, sys1piox_315_5093, pitfall2, system1_state, bank00, ROT0, "Sega", "Pitfall II (315-5093, Flicky Conversion)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, pitfall2u, pitfall2, sys1pio, pitfall2u, system1_state, bank00, ROT0, "Sega", "Pitfall II (not encrypted)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, seganinj, 0, sys1piox_315_5102, seganinj, system1_state, bank00, ROT0, "Sega", "Sega Ninja (315-5102)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, seganinju, seganinj, sys1pio, seganinj, system1_state, bank00, ROT0, "Sega", "Sega Ninja (not encrypted)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, seganinja, seganinj, sys1piox_315_5133, seganinj, system1_state, bank00, ROT0, "Sega", "Sega Ninja (315-5113)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) // needs decrypting -GAME( 1985, ninja, seganinj, sys1piox_315_5102, seganinj, system1_state, bank00, ROT0, "Sega", "Ninja (315-5102)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, nprinceso, seganinj, sys1piox_315_5098, seganinj, system1_state, bank00, ROT0, "Sega", "Ninja Princess (315-5098, 128k Ver.)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, nprincesb, seganinj, sys1piox_315_5051, seganinj, system1_state, bank00, ROT0, "bootleg?", "Ninja Princess (315-5051?, 128k Ver. bootleg?)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, imsorry, 0, sys1piox_315_5110, imsorry, system1_state, bank00, ROT0, "Coreland / Sega", "I'm Sorry (315-5110, US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, imsorryj, imsorry, sys1piox_315_5110, imsorry, system1_state, bank00, ROT0, "Coreland / Sega", "Gonbee no I'm Sorry (315-5110, Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, teddybb, 0, sys1piox_315_5155, teddybb, system1_state, bank00, ROT0, "Sega", "TeddyBoy Blues (315-5115, New Ver.)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, teddybbo, teddybb, sys1piox_315_5155, teddybb, system1_state, bank00, ROT0, "Sega", "TeddyBoy Blues (315-5115, Old Ver.)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, teddybbobl, teddybb, sys1piox_315_5155, teddybb, system1_state, bank00, ROT0, "bootleg", "TeddyBoy Blues (Old Ver. bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, myhero, 0, sys1pio, myhero, system1_state, bank00, ROT0, "Coreland / Sega", "My Hero (US, not encrypted)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, sscandal, myhero, sys1piox_315_5132, myhero, system1_state, bank00, ROT0, "Coreland / Sega", "Seishun Scandal (315-5132, Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, myherobl, myhero, sys1piox_315_5132, myhero, system1_state, bank00, ROT0, "bootleg", "My Hero (bootleg, 315-5132 encryption)", MACHINE_SUPPORTS_SAVE ) // cloned 315-5132 encryption? might be a direct copy of an undumped original set -GAME( 1985, myherok, myhero, sys1piox_315_5132, myhero, system1_state, myherok, ROT0, "Coreland / Sega", "My Hero (Korea)", MACHINE_SUPPORTS_SAVE ) // possible bootleg, has extra encryption -GAME( 1985, 4dwarrio, 0, sys1piox_315_5162, 4dwarrio, system1_state, bank00, ROT0, "Coreland / Sega", "4-D Warriors (315-5162)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, raflesia, 0, sys1piox_315_5162, raflesia, system1_state, bank00, ROT270, "Coreland / Sega", "Rafflesia (315-5162)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, wboy, 0, sys1piox_315_5177, wboy, system1_state, bank00, ROT0, "Escape (Sega license)", "Wonder Boy (set 1, 315-5177)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, wboyo, wboy, sys1piox_315_5135, wboy, system1_state, bank00, ROT0, "Escape (Sega license)", "Wonder Boy (set 2, 315-5135)", MACHINE_SUPPORTS_SAVE ) // aka 317-0003 -GAME( 1986, wboy3, wboy, sys1piox_315_5135, wboy3, system1_state, bank00, ROT0, "Escape (Sega license)", "Wonder Boy (set 3, 315-5135)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, wboy4, wboy, sys1piox_315_5162, wboy, system1_state, bank00, ROT0, "Escape (Sega license)", "Wonder Boy (315-5162, 4-D Warriors Conversion)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, wboyu, wboy, sys1pio, wboyu, system1_state, bank00, ROT0, "Escape (Sega license)", "Wonder Boy (prototype?)", MACHINE_SUPPORTS_SAVE ) // appears to be a very early / unfinished version. -GAME( 1986, wboy5, wboy, sys1piox_315_5135, wboy3, system1_state, bank00, ROT0, "bootleg", "Wonder Boy (set 5, bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, wboyub, wboy, sys1piox_315_5177, wboy, system1_state, bank00, ROT0, "bootleg", "Wonder Boy (US bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, blockgal, 0, sys1pioxb, blockgal, system1_state, blockgal, ROT90, "Sega / Vic Tokai","Block Gal (MC-8123B, 317-0029)", MACHINE_SUPPORTS_SAVE) +GAME( 1984, flicky, 0, sys1piox_315_5051, flicky, system1_state, bank00, ROT0, "Sega", "Flicky (128k Version, 315-5051)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, flickya, flicky, sys1piox_315_5051, flicky, system1_state, bank00, ROT0, "Sega", "Flicky (128k Version, 315-5051, larger roms)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, flickys2, flicky, sys1pio, flickys2, system1_state, bank00, ROT0, "Sega", "Flicky (128k Version, not encrypted)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, thetogyu, bullfgt, sys1piox_315_5065, bullfgt, system1_state, bank00, ROT0, "Coreland / Sega", "The Togyu (315-5065, Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, spatter, 0, sys1piosx_315_spat,spatter, system1_state, bank00, ROT0, "Sega", "Spatter (315-xxxx)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, spattera, spatter, sys1piosx_315_5099,spatter, system1_state, bank00, ROT0, "Sega", "Spatter (315-5099)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, ssanchan, spatter, sys1piosx_315_spat,spatter, system1_state, bank00, ROT0, "Sega", "Sanrin San Chan (Japan, 315-xxxx)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, pitfall2, 0, sys1piox_315_5093, pitfall2, system1_state, bank00, ROT0, "Sega", "Pitfall II (315-5093)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, pitfall2a, pitfall2, sys1piox_315_5093, pitfall2, system1_state, bank00, ROT0, "Sega", "Pitfall II (315-5093, Flicky Conversion)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, pitfall2u, pitfall2, sys1pio, pitfall2u, system1_state, bank00, ROT0, "Sega", "Pitfall II (not encrypted)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, seganinj, 0, sys1piox_315_5102, seganinj, system1_state, bank00, ROT0, "Sega", "Sega Ninja (315-5102)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, seganinju, seganinj, sys1pio, seganinj, system1_state, bank00, ROT0, "Sega", "Sega Ninja (not encrypted)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, seganinja, seganinj, sys1piox_315_5133, seganinj, system1_state, bank00, ROT0, "Sega", "Sega Ninja (315-5113)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) // needs decrypting +GAME( 1985, ninja, seganinj, sys1piox_315_5102, seganinj, system1_state, bank00, ROT0, "Sega", "Ninja (315-5102)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, nprinceso, seganinj, sys1piox_315_5098, seganinj, system1_state, bank00, ROT0, "Sega", "Ninja Princess (315-5098, 128k Ver.)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, nprincesb, seganinj, sys1piox_315_5051, seganinj, system1_state, bank00, ROT0, "bootleg?", "Ninja Princess (315-5051?, 128k Ver. bootleg?)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, imsorry, 0, sys1piox_315_5110, imsorry, system1_state, bank00, ROT0, "Coreland / Sega", "I'm Sorry (315-5110, US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, imsorryj, imsorry, sys1piox_315_5110, imsorry, system1_state, bank00, ROT0, "Coreland / Sega", "Gonbee no I'm Sorry (315-5110, Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, teddybb, 0, sys1piox_315_5155, teddybb, system1_state, bank00, ROT0, "Sega", "TeddyBoy Blues (315-5115, New Ver.)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, teddybbo, teddybb, sys1piox_315_5155, teddybb, system1_state, bank00, ROT0, "Sega", "TeddyBoy Blues (315-5115, Old Ver.)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, teddybbobl, teddybb, sys1piox_315_5155, teddybb, system1_state, bank00, ROT0, "bootleg", "TeddyBoy Blues (Old Ver. bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, myhero, 0, sys1pio, myhero, system1_state, bank00, ROT0, "Coreland / Sega", "My Hero (US, not encrypted)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, sscandal, myhero, sys1piox_315_5132, myhero, system1_state, bank00, ROT0, "Coreland / Sega", "Seishun Scandal (315-5132, Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, myherobl, myhero, sys1piox_315_5132, myhero, system1_state, bank00, ROT0, "bootleg", "My Hero (bootleg, 315-5132 encryption)", MACHINE_SUPPORTS_SAVE ) // cloned 315-5132 encryption? might be a direct copy of an undumped original set +GAME( 1985, myherok, myhero, sys1piox_315_5132, myhero, system1_state, myherok, ROT0, "Coreland / Sega", "My Hero (Korea)", MACHINE_SUPPORTS_SAVE ) // possible bootleg, has extra encryption +GAME( 1985, 4dwarrio, 0, sys1piox_315_5162, 4dwarrio, system1_state, bank00, ROT0, "Coreland / Sega", "4-D Warriors (315-5162)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, raflesia, 0, sys1piox_315_5162, raflesia, system1_state, bank00, ROT270, "Coreland / Sega", "Rafflesia (315-5162)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, wboy, 0, sys1piox_315_5177, wboy, system1_state, bank00, ROT0, "Escape (Sega license)", "Wonder Boy (set 1, 315-5177)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, wboyo, wboy, sys1piox_315_5135, wboy, system1_state, bank00, ROT0, "Escape (Sega license)", "Wonder Boy (set 2, 315-5135)", MACHINE_SUPPORTS_SAVE ) // aka 317-0003 +GAME( 1986, wboy3, wboy, sys1piox_315_5135, wboy3, system1_state, bank00, ROT0, "Escape (Sega license)", "Wonder Boy (set 3, 315-5135)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, wboy4, wboy, sys1piox_315_5162, wboy, system1_state, bank00, ROT0, "Escape (Sega license)", "Wonder Boy (315-5162, 4-D Warriors Conversion)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, wboyu, wboy, sys1pio, wboyu, system1_state, bank00, ROT0, "Escape (Sega license)", "Wonder Boy (prototype?)", MACHINE_SUPPORTS_SAVE ) // appears to be a very early / unfinished version. +GAME( 1986, wboy5, wboy, sys1piox_315_5135, wboy3, system1_state, bank00, ROT0, "bootleg", "Wonder Boy (set 5, bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, wboyub, wboy, sys1piox_315_5177, wboy, system1_state, bank00, ROT0, "bootleg", "Wonder Boy (US bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, blockgal, 0, sys1pioxb, blockgal, system1_state, blockgal, ROT90, "Sega / Vic Tokai","Block Gal (MC-8123B, 317-0029)", MACHINE_SUPPORTS_SAVE) /* PIO-based System 1 with ROM banking */ -GAME( 1985, hvymetal, 0, sys1piox_315_5135, hvymetal, system1_state, bank44, ROT0, "Sega", "Heavy Metal (315-5135)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, gardia, 0, sys1piox_317_0006, gardia, system1_state, bank44, ROT270, "Coreland / Sega", "Gardia (317-0006)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE) -GAME( 1986, brain, 0, sys1pio, brain, system1_state, bank44, ROT0, "Coreland / Sega", "Brain", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, hvymetal, 0, sys1piox_315_5135, hvymetal, system1_state, bank44, ROT0, "Sega", "Heavy Metal (315-5135)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, gardia, 0, sys1piox_317_0006, gardia, system1_state, bank44, ROT270, "Coreland / Sega", "Gardia (317-0006)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE) +GAME( 1986, brain, 0, sys1pio, brain, system1_state, bank44, ROT0, "Coreland / Sega", "Brain", MACHINE_SUPPORTS_SAVE ) /* System 2 */ -GAME( 1985, choplift, 0, sys2rowm, choplift, system1_state, choplift, ROT0, "Sega (licensed from Dan Gorlin)", "Choplifter (8751 315-5151)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, chopliftu, choplift, sys2row, choplift, system1_state, bank0c, ROT0, "Sega (licensed from Dan Gorlin)", "Choplifter (unprotected)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, chopliftbl, choplift, sys2row, choplift, system1_state, bank0c, ROT0, "bootleg", "Choplifter (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, shtngmst, 0, sys2m, shtngmst, system1_state, shtngmst, ROT0, "Sega", "Shooting Master (8751 315-5159)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) -GAME( 1985, shtngmste, shtngmst, sys2m, shtngmst, system1_state, shtngmst, ROT0, "Sega / EVG", "Shooting Master (EVG, 8751 315-5159a)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, gardiab, gardia, sys2_317_0007, gardia, system1_state, bank44, ROT270, "bootleg", "Gardia (317-0007?, bootleg)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1986, gardiaj, gardia, sys2_317_0006, gardia, system1_state, bank44, ROT270, "Coreland / Sega", "Gardia (Japan, 317-0006)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1986, wboysys2, wboy, sys2_315_5177, wboysys2, system1_state, bank0c, ROT0, "Escape (Sega license)", "Wonder Boy (system 2, set 1, 315-5177)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, wboysys2a, wboy, sys2_315_5176, wboysys2, system1_state, bank0c, ROT0, "Escape (Sega license)", "Wonder Boy (system 2, set 2, 315-5176)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) -GAME( 1987, tokisens, 0, sys2, tokisens, system1_state, bank0c, ROT90, "Sega", "Toki no Senshi - Chrono Soldier", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, wbml, 0, sys2xb, wbml, system1_state, wbml, ROT0, "Sega / Westone", "Wonder Boy in Monster Land (Japan New Ver., MC-8123, 317-0043)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, wbmljo, wbml, sys2xb, wbml, system1_state, wbml, ROT0, "Sega / Westone", "Wonder Boy in Monster Land (Japan Old Ver., MC-8123, 317-0043)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, wbmljb, wbml, sys2xboot, wbml, system1_state, bootsys2, ROT0, "bootleg", "Wonder Boy in Monster Land (Japan bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, wbmlb, wbml, sys2xboot, wbml, system1_state, bootsys2, ROT0, "bootleg", "Wonder Boy in Monster Land (English bootleg set 1)", MACHINE_SUPPORTS_SAVE) -GAME( 1987, wbmlbg, wbml, sys2xboot, wbml, system1_state, bootsys2, ROT0, "bootleg (Galaxy Electronics)", "Wonder Boy in Monster Land (English bootleg set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, wbmlbge, wbml, sys2xboot, wbml, system1_state, bootsys2, ROT0, "bootleg (Gecas)", "Wonder Boy in Monster Land (English bootleg set 3)", MACHINE_SUPPORTS_SAVE ) -GAME( 2009, wbmlvc, wbml, sys2xboot, wbml, system1_state, bootsys2, ROT0, "Sega", "Wonder Boy in Monster Land (English, Virtual Console)", MACHINE_SUPPORTS_SAVE ) -GAME( 2009, wbmlvcd, wbml, sys2xboot, wbml, system1_state, bootsys2d, ROT0, "bootleg (mpatou)", "Wonder Boy in Monster Land (decrypted bootleg of English, Virtual Console release)", MACHINE_SUPPORTS_SAVE ) // fully decrypted version -GAME( 1987, wbmld, wbml, sys2xboot, wbml, system1_state, bootsys2d, ROT0, "bootleg (mpatou)", "Wonder Boy in Monster Land (decrypted bootleg of Japan New Ver., MC-8123, 317-0043)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, wbmljod, wbml, sys2xboot, wbml, system1_state, bootsys2d, ROT0, "bootleg (mpatou)", "Wonder Boy in Monster Land (decrypted bootleg of Japan Old Ver., MC-8123, 317-0043)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, dakkochn, 0, sys2xb, dakkochn, system1_state, dakkochn, ROT0, "White Board", "DakkoChan House (MC-8123B, 317-5014)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, blockgalb, blockgal, sys2x, blockgal, system1_state, bootleg, ROT90, "bootleg", "Block Gal (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, ufosensi, 0, sys2rowxb, ufosensi, system1_state, ufosensi, ROT0, "Sega", "Ufo Senshi Yohko Chan (MC-8123, 317-0064)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, ufosensib, ufosensi, sys2rowxboot, ufosensi, system1_state, bootsys2, ROT0, "bootleg", "Ufo Senshi Yohko Chan (bootleg, not encrypted)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, choplift, 0, sys2rowm, choplift, system1_state, choplift, ROT0, "Sega (licensed from Dan Gorlin)", "Choplifter (8751 315-5151)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, chopliftu, choplift, sys2row, choplift, system1_state, bank0c, ROT0, "Sega (licensed from Dan Gorlin)", "Choplifter (unprotected)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, chopliftbl, choplift, sys2row, choplift, system1_state, bank0c, ROT0, "bootleg", "Choplifter (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, shtngmst, 0, sys2m, shtngmst, system1_state, shtngmst, ROT0, "Sega", "Shooting Master (8751 315-5159)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) +GAME( 1985, shtngmste, shtngmst, sys2m, shtngmst, system1_state, shtngmst, ROT0, "Sega / EVG", "Shooting Master (EVG, 8751 315-5159a)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, gardiab, gardia, sys2_317_0007, gardia, system1_state, bank44, ROT270, "bootleg", "Gardia (317-0007?, bootleg)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1986, gardiaj, gardia, sys2_317_0006, gardia, system1_state, bank44, ROT270, "Coreland / Sega", "Gardia (Japan, 317-0006)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1986, wboysys2, wboy, sys2_315_5177, wboysys2, system1_state, bank0c, ROT0, "Escape (Sega license)", "Wonder Boy (system 2, set 1, 315-5177)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, wboysys2a, wboy, sys2_315_5176, wboysys2, system1_state, bank0c, ROT0, "Escape (Sega license)", "Wonder Boy (system 2, set 2, 315-5176)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +GAME( 1987, tokisens, 0, sys2, tokisens, system1_state, bank0c, ROT90, "Sega", "Toki no Senshi - Chrono Soldier", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, wbml, 0, sys2xb, wbml, system1_state, wbml, ROT0, "Sega / Westone", "Wonder Boy in Monster Land (Japan New Ver., MC-8123, 317-0043)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, wbmljo, wbml, sys2xb, wbml, system1_state, wbml, ROT0, "Sega / Westone", "Wonder Boy in Monster Land (Japan Old Ver., MC-8123, 317-0043)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, wbmljb, wbml, sys2xboot, wbml, system1_state, bootsys2, ROT0, "bootleg", "Wonder Boy in Monster Land (Japan bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, wbmlb, wbml, sys2xboot, wbml, system1_state, bootsys2, ROT0, "bootleg", "Wonder Boy in Monster Land (English bootleg set 1)", MACHINE_SUPPORTS_SAVE) +GAME( 1987, wbmlbg, wbml, sys2xboot, wbml, system1_state, bootsys2, ROT0, "bootleg (Galaxy Electronics)", "Wonder Boy in Monster Land (English bootleg set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, wbmlbge, wbml, sys2xboot, wbml, system1_state, bootsys2, ROT0, "bootleg (Gecas)", "Wonder Boy in Monster Land (English bootleg set 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 2009, wbmlvc, wbml, sys2xboot, wbml, system1_state, bootsys2, ROT0, "Sega", "Wonder Boy in Monster Land (English, Virtual Console)", MACHINE_SUPPORTS_SAVE ) +GAME( 2009, wbmlvcd, wbml, sys2xboot, wbml, system1_state, bootsys2d, ROT0, "bootleg (mpatou)", "Wonder Boy in Monster Land (decrypted bootleg of English, Virtual Console release)", MACHINE_SUPPORTS_SAVE ) // fully decrypted version +GAME( 1987, wbmld, wbml, sys2xboot, wbml, system1_state, bootsys2d, ROT0, "bootleg (mpatou)", "Wonder Boy in Monster Land (decrypted bootleg of Japan New Ver., MC-8123, 317-0043)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, wbmljod, wbml, sys2xboot, wbml, system1_state, bootsys2d, ROT0, "bootleg (mpatou)", "Wonder Boy in Monster Land (decrypted bootleg of Japan Old Ver., MC-8123, 317-0043)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, dakkochn, 0, sys2xb, dakkochn, system1_state, dakkochn, ROT0, "White Board", "DakkoChan House (MC-8123B, 317-5014)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, blockgalb, blockgal, sys2x, blockgal, system1_state, bootleg, ROT90, "bootleg", "Block Gal (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, ufosensi, 0, sys2rowxb, ufosensi, system1_state, ufosensi, ROT0, "Sega", "Ufo Senshi Yohko Chan (MC-8123, 317-0064)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, ufosensib, ufosensi, sys2rowxboot, ufosensi, system1_state, bootsys2, ROT0, "bootleg", "Ufo Senshi Yohko Chan (bootleg, not encrypted)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/system16.cpp b/src/mame/drivers/system16.cpp index 79d7e6376fc..96c85244d8e 100644 --- a/src/mame/drivers/system16.cpp +++ b/src/mame/drivers/system16.cpp @@ -2077,7 +2077,7 @@ static MACHINE_CONFIG_FRAGMENT( datsu_ym2151_msm5205 ) MCFG_SOUND_ADD("5205", MSM5205, 220000) MCFG_MSM5205_VCLK_CB(WRITELINE(segas1x_bootleg_state, tturfbl_msm5205_callback)) - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S48_4B) + MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.80) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.80) MACHINE_CONFIG_END @@ -2107,7 +2107,7 @@ static MACHINE_CONFIG_FRAGMENT( datsu_2x_ym2203_msm5205 ) MCFG_SOUND_ADD("5205", MSM5205, 384000) MCFG_MSM5205_VCLK_CB(WRITELINE(segas1x_bootleg_state, datsu_msm5205_callback)) - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S48_4B) + MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) MACHINE_CONFIG_END @@ -2118,7 +2118,7 @@ MACHINE_CONFIG_END *************************************/ /* System 16A/B Bootlegs */ -static MACHINE_CONFIG_START( system16_base, segas1x_bootleg_state ) +static MACHINE_CONFIG_START( system16_base ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 10000000) @@ -2193,7 +2193,7 @@ static MACHINE_CONFIG_DERIVED( passsht4b, system16_base ) MCFG_FRAGMENT_ADD(datsu_2x_ym2203_msm5205) MCFG_DEVICE_MODIFY("5205") - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S96_4B) + MCFG_MSM5205_PRESCALER_SELECTOR(S96_4B) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( wb3bb, system16_base ) @@ -2215,7 +2215,7 @@ static MACHINE_CONFIG_DERIVED( wb3bb, system16_base ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( goldnaxeb_base, segas1x_bootleg_state ) +static MACHINE_CONFIG_START( goldnaxeb_base ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 10000000) @@ -2342,7 +2342,7 @@ static MACHINE_CONFIG_DERIVED( altbeastbl, system16_base ) MCFG_FRAGMENT_ADD(datsu_2x_ym2203_msm5205) MCFG_DEVICE_MODIFY("5205") - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S96_4B) + MCFG_MSM5205_PRESCALER_SELECTOR(S96_4B) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( beautyb, system16_base ) @@ -2359,7 +2359,7 @@ MACHINE_CONFIG_END /* System 18 Bootlegs */ -static MACHINE_CONFIG_START( system18, segas1x_bootleg_state ) +static MACHINE_CONFIG_START( system18 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 10000000) @@ -2438,7 +2438,7 @@ static MACHINE_CONFIG_DERIVED( shdancbl, system18 ) MCFG_SOUND_ADD("5205", MSM5205, 200000) MCFG_MSM5205_VCLK_CB(WRITELINE(segas1x_bootleg_state, shdancbl_msm5205_callback)) - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S48_4B) + MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.80) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.80) MACHINE_CONFIG_END @@ -2456,7 +2456,7 @@ static MACHINE_CONFIG_DERIVED( shdancbla, system18 ) MCFG_SOUND_ADD("5205", MSM5205, 200000) MCFG_MSM5205_VCLK_CB(WRITELINE(segas1x_bootleg_state, shdancbl_msm5205_callback)) - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S48_4B) + MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.80) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.80) MACHINE_CONFIG_END @@ -2474,7 +2474,7 @@ MACHINE_RESET_MEMBER(segas1x_bootleg_state,ddcrewbl) } -static MACHINE_CONFIG_START( ddcrewbl, segas1x_bootleg_state ) +static MACHINE_CONFIG_START( ddcrewbl ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 10000000) @@ -2502,7 +2502,7 @@ static MACHINE_CONFIG_START( ddcrewbl, segas1x_bootleg_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", 10000000/10, OKIM6295_PIN7_HIGH) // clock and pin not verified + MCFG_OKIM6295_ADD("oki", 10000000/10, PIN7_HIGH) // clock and pin not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -3881,33 +3881,33 @@ DRIVER_INIT_MEMBER(segas1x_bootleg_state,astormbl) *************************************/ /* System 16A based bootlegs (less complex tilemap system) */ -GAME( 1987, shinobld, shinobi, shinobi_datsu, shinobi, segas1x_bootleg_state, shinobl, ROT0, "bootleg (Datsu)", "Shinobi (Datsu bootleg, set 1)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1987, shinoblda, shinobi, shinobi_datsu, shinobi, segas1x_bootleg_state, shinobl, ROT0, "bootleg (Datsu)", "Shinobi (Datsu bootleg, set 2)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1988, passshtb, passsht, passshtb, passsht, segas1x_bootleg_state, passsht, ROT270, "bootleg", "Passing Shot (2 Players) (bootleg)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1988, passht4b, passsht, passsht4b, passht4b, segas1x_bootleg_state, shinobl, ROT270, "bootleg", "Passing Shot (4 Players) (bootleg)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1988, wb3bbl, wb3, wb3bb, wb3b, segas1x_bootleg_state, wb3bbl, ROT0, "bootleg", "Wonder Boy III - Monster Lair (bootleg)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS) -GAME( 1988, wb3bble, wb3, wb3bb, wb3b, segas1x_bootleg_state, wb3bbl, ROT0, "bootleg", "Wonder Boy III - Monster Lair (encrypted bootleg)", MACHINE_NOT_WORKING ) +GAME( 1987, shinobld, shinobi, shinobi_datsu, shinobi, segas1x_bootleg_state, shinobl, ROT0, "bootleg (Datsu)", "Shinobi (Datsu bootleg, set 1)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1987, shinoblda, shinobi, shinobi_datsu, shinobi, segas1x_bootleg_state, shinobl, ROT0, "bootleg (Datsu)", "Shinobi (Datsu bootleg, set 2)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1988, passshtb, passsht, passshtb, passsht, segas1x_bootleg_state, passsht, ROT270, "bootleg", "Passing Shot (2 Players) (bootleg)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1988, passht4b, passsht, passsht4b, passht4b, segas1x_bootleg_state, shinobl, ROT270, "bootleg", "Passing Shot (4 Players) (bootleg)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1988, wb3bbl, wb3, wb3bb, wb3b, segas1x_bootleg_state, wb3bbl, ROT0, "bootleg", "Wonder Boy III - Monster Lair (bootleg)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS) +GAME( 1988, wb3bble, wb3, wb3bb, wb3b, segas1x_bootleg_state, wb3bbl, ROT0, "bootleg", "Wonder Boy III - Monster Lair (encrypted bootleg)", MACHINE_NOT_WORKING ) /* System 16B based bootlegs */ -GAME( 1989, bayrouteb1, bayroute, bayrouteb1, bayroute, segas1x_bootleg_state, bayrouteb1, ROT0, "bootleg (Datsu)", "Bay Route (encrypted, protected bootleg)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) // broken sprites (due to missing/wrong irq code?) -GAME( 1989, bayrouteb2, bayroute, bayrouteb2, bayroute, segas1x_bootleg_state, bayrouteb2, ROT0, "bootleg (Datsu)", "Bay Route (Datsu bootleg)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) -GAME( 1989, goldnaxeb1, goldnaxe, goldnaxeb1, goldnaxe, segas1x_bootleg_state, goldnaxeb1, ROT0, "bootleg", "Golden Axe (encrypted bootleg)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) -GAME( 1989, goldnaxeb2, goldnaxe, goldnaxeb2, goldnaxe, segas1x_bootleg_state, goldnaxeb2, ROT0, "bootleg", "Golden Axe (bootleg)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) -GAME( 1989, tturfbl, tturf, tturfbl, tturf, segas1x_bootleg_state, tturfbl, ROT0, "bootleg (Datsu)", "Tough Turf (Datsu bootleg)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1989, dduxbl, ddux, dduxbl, ddux, segas1x_bootleg_state, dduxbl, ROT0, "bootleg (Datsu)", "Dynamite Dux (Datsu bootleg)", MACHINE_NOT_WORKING ) -GAME( 1988, altbeastbl, altbeast, altbeastbl, tetris, segas1x_bootleg_state, altbeastbl, ROT0, "bootleg (Datsu)", "Altered Beast (Datsu bootleg)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1988, mutantwarr, altbeast, altbeastbl, tetris, segas1x_bootleg_state, altbeastbl, ROT0, "bootleg (Datsu)", "Mutant Warrior (Altered Beast - Datsu bootleg)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1989, eswatbl, eswat, eswatbl, eswat, segas1x_bootleg_state, eswatbl, ROT0, "bootleg", "E-Swat - Cyber Police (bootleg)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1988, tetrisbl, tetris, tetrisbl, tetris, segas1x_bootleg_state, dduxbl, ROT0, "bootleg", "Tetris (bootleg)", 0 ) +GAME( 1989, bayrouteb1, bayroute, bayrouteb1, bayroute, segas1x_bootleg_state, bayrouteb1, ROT0, "bootleg (Datsu)", "Bay Route (encrypted, protected bootleg)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) // broken sprites (due to missing/wrong irq code?) +GAME( 1989, bayrouteb2, bayroute, bayrouteb2, bayroute, segas1x_bootleg_state, bayrouteb2, ROT0, "bootleg (Datsu)", "Bay Route (Datsu bootleg)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) +GAME( 1989, goldnaxeb1, goldnaxe, goldnaxeb1, goldnaxe, segas1x_bootleg_state, goldnaxeb1, ROT0, "bootleg", "Golden Axe (encrypted bootleg)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) +GAME( 1989, goldnaxeb2, goldnaxe, goldnaxeb2, goldnaxe, segas1x_bootleg_state, goldnaxeb2, ROT0, "bootleg", "Golden Axe (bootleg)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) +GAME( 1989, tturfbl, tturf, tturfbl, tturf, segas1x_bootleg_state, tturfbl, ROT0, "bootleg (Datsu)", "Tough Turf (Datsu bootleg)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1989, dduxbl, ddux, dduxbl, ddux, segas1x_bootleg_state, dduxbl, ROT0, "bootleg (Datsu)", "Dynamite Dux (Datsu bootleg)", MACHINE_NOT_WORKING ) +GAME( 1988, altbeastbl, altbeast, altbeastbl, tetris, segas1x_bootleg_state, altbeastbl, ROT0, "bootleg (Datsu)", "Altered Beast (Datsu bootleg)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1988, mutantwarr, altbeast, altbeastbl, tetris, segas1x_bootleg_state, altbeastbl, ROT0, "bootleg (Datsu)", "Mutant Warrior (Altered Beast - Datsu bootleg)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1989, eswatbl, eswat, eswatbl, eswat, segas1x_bootleg_state, eswatbl, ROT0, "bootleg", "E-Swat - Cyber Police (bootleg)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1988, tetrisbl, tetris, tetrisbl, tetris, segas1x_bootleg_state, dduxbl, ROT0, "bootleg", "Tetris (bootleg)", 0 ) /* Tetris-based hardware */ -GAME( 1991, beautyb, 0, beautyb, tetris, segas1x_bootleg_state, beautyb, ROT0, "AMT", "Beauty Block", MACHINE_NO_SOUND | MACHINE_NOT_WORKING ) -GAME( 1991, iqpipe, 0, beautyb, tetris, segas1x_bootleg_state, beautyb, ROT0, "AMT", "IQ Pipe", MACHINE_NO_SOUND | MACHINE_NOT_WORKING ) +GAME( 1991, beautyb, 0, beautyb, tetris, segas1x_bootleg_state, beautyb, ROT0, "AMT", "Beauty Block", MACHINE_NO_SOUND | MACHINE_NOT_WORKING ) +GAME( 1991, iqpipe, 0, beautyb, tetris, segas1x_bootleg_state, beautyb, ROT0, "AMT", "IQ Pipe", MACHINE_NO_SOUND | MACHINE_NOT_WORKING ) /* System 18 bootlegs */ -GAME( 1990, astormbl, astorm, astormbl, astormbl, segas1x_bootleg_state, astormbl, ROT0, "bootleg", "Alien Storm (bootleg, set 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1990, astormb2, astorm, astormbl, astormbl, segas1x_bootleg_state, astormbl, ROT0, "bootleg", "Alien Storm (bootleg, set 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND ) -GAME( 1990, mwalkbl, mwalk, mwalkbl, mwalkbl, segas1x_bootleg_state, mwalkbl, ROT0, "bootleg", "Michael Jackson's Moonwalker (bootleg)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1989, shdancbl, shdancer, shdancbl, shdancbl, segas1x_bootleg_state, shdancbl, ROT0, "bootleg", "Shadow Dancer (bootleg, set 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1989, shdancbla, shdancer, shdancbla, shdancbl, segas1x_bootleg_state, shdancbl, ROT0, "bootleg", "Shadow Dancer (bootleg, set 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) -GAME( 1990, ddcrewbl, ddcrew, ddcrewbl, ddcrewbl, segas1x_bootleg_state, ddcrewbl, ROT0, "bootleg", "D. D. Crew (bootleg)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND ) +GAME( 1990, astormbl, astorm, astormbl, astormbl, segas1x_bootleg_state, astormbl, ROT0, "bootleg", "Alien Storm (bootleg, set 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1990, astormb2, astorm, astormbl, astormbl, segas1x_bootleg_state, astormbl, ROT0, "bootleg", "Alien Storm (bootleg, set 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND ) +GAME( 1990, mwalkbl, mwalk, mwalkbl, mwalkbl, segas1x_bootleg_state, mwalkbl, ROT0, "bootleg", "Michael Jackson's Moonwalker (bootleg)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1989, shdancbl, shdancer, shdancbl, shdancbl, segas1x_bootleg_state, shdancbl, ROT0, "bootleg", "Shadow Dancer (bootleg, set 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1989, shdancbla, shdancer, shdancbla, shdancbl, segas1x_bootleg_state, shdancbl, ROT0, "bootleg", "Shadow Dancer (bootleg, set 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) +GAME( 1990, ddcrewbl, ddcrew, ddcrewbl, ddcrewbl, segas1x_bootleg_state, ddcrewbl, ROT0, "bootleg", "D. D. Crew (bootleg)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/tagteam.cpp b/src/mame/drivers/tagteam.cpp index a8878e6c30c..f6aca28320b 100644 --- a/src/mame/drivers/tagteam.cpp +++ b/src/mame/drivers/tagteam.cpp @@ -213,7 +213,7 @@ INTERRUPT_GEN_MEMBER(tagteam_state::sound_timer_irq) } -static MACHINE_CONFIG_START( tagteam, tagteam_state ) +static MACHINE_CONFIG_START( tagteam ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, XTAL_12MHz/8) @@ -319,5 +319,5 @@ ROM_END -GAME( 1983, bigprowr, 0, tagteam, bigprowr, driver_device, 0, ROT270, "Technos Japan", "The Big Pro Wrestling!", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, tagteam, bigprowr, tagteam, tagteam, driver_device, 0, ROT270, "Technos Japan (Data East license)", "Tag Team Wrestling", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, bigprowr, 0, tagteam, bigprowr, tagteam_state, 0, ROT270, "Technos Japan", "The Big Pro Wrestling!", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, tagteam, bigprowr, tagteam, tagteam, tagteam_state, 0, ROT270, "Technos Japan (Data East license)", "Tag Team Wrestling", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/tail2nos.cpp b/src/mame/drivers/tail2nos.cpp index 5f43c53a461..30ed318b936 100644 --- a/src/mame/drivers/tail2nos.cpp +++ b/src/mame/drivers/tail2nos.cpp @@ -232,7 +232,7 @@ void tail2nos_state::machine_reset() m_video_enable = 0; } -static MACHINE_CONFIG_START( tail2nos, tail2nos_state ) +static MACHINE_CONFIG_START( tail2nos ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000,XTAL_20MHz/2) /* verified on pcb */ @@ -351,8 +351,8 @@ ROM_START( sformulaa ) ROM_REGION( 0x40000, "maincpu", 0 ) /* 68000 code */ ROM_LOAD16_BYTE( "04.bin", 0x00000, 0x10000, CRC(f40e9c3c) SHA1(2ab45f46f92bce42748692cafe601c5893de127b) ) ROM_LOAD16_BYTE( "07.bin", 0x00001, 0x10000, CRC(d1cf6dca) SHA1(18228cc98722eb5907850e2d0317d1f4bf04fb8f) ) - ROM_LOAD16_BYTE( "v3", 0x20000, 0x10000, CRC(e2e0abad) SHA1(1a1054bada9654484fe81fe4b4b32af5ab7b53f0) ) - ROM_LOAD16_BYTE( "v6", 0x20001, 0x10000, CRC(069817a7) SHA1(cca382fe2a49c8c3c84b879a1c30dffff84ef406) ) + ROM_LOAD16_BYTE( "v3", 0x20000, 0x10000, CRC(e2e0abad) SHA1(1a1054bada9654484fe81fe4b4b32af5ab7b53f0) ) + ROM_LOAD16_BYTE( "v6", 0x20001, 0x10000, CRC(069817a7) SHA1(cca382fe2a49c8c3c84b879a1c30dffff84ef406) ) ROM_REGION16_BE( 0x80000, "user1", 0 ) /* extra ROM mapped at 200000 */ @@ -370,7 +370,7 @@ ROM_START( sformulaa ) ROM_REGION( 0x100000, "gfx1", ROMREGION_ERASE00 ) ROM_LOAD( "a24", 0x00000, 0x80000, CRC(b1e9de43) SHA1(0144252dd9ed561fbebd4994cccf11f6c87e1825) ) ROM_LOAD( "o1s", 0x80000, 0x40000, CRC(e27a8eb4) SHA1(4fcadabf42a1c3deeb6d74d75cdbee802cf16db5) ) - ROM_LOAD( "9.bin", 0xc0000, 0x08000, CRC(c76edc0a) SHA1(2c6c21f8d1f3bcb0f65ba5a779fe479783271e0b) ) // present on this PCB, contains Japanese text + same font as in above roms, where does it map? is there another layer? + ROM_LOAD( "9.bin", 0xc0000, 0x08000, CRC(c76edc0a) SHA1(2c6c21f8d1f3bcb0f65ba5a779fe479783271e0b) ) // present on this PCB, contains Japanese text + same font as in above roms, where does it map? is there another layer? ROM_REGION( 0x80000, "gfx2", 0 ) ROM_LOAD( "oj1", 0x000000, 0x40000, CRC(39c36b35) SHA1(a97480696bf6d81bf415737e03cc5324d439ab84) ) @@ -380,6 +380,6 @@ ROM_START( sformulaa ) ROM_LOAD( "osb", 0x00000, 0x20000, CRC(d49ab2f5) SHA1(92f7f6c8f35ac39910879dd88d2cfb6db7c848c9) ) ROM_END -GAME( 1989, tail2nos, 0, tail2nos, tail2nos, driver_device, 0, ROT90, "V-System Co.", "Tail to Nose - Great Championship", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1989, sformula, tail2nos, tail2nos, tail2nos, driver_device, 0, ROT90, "V-System Co.", "Super Formula (Japan, set 1)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1989, sformulaa,tail2nos, tail2nos, tail2nos, driver_device, 0, ROT90, "V-System Co.", "Super Formula (Japan, set 2)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // No Japan warning, but Japanese version +GAME( 1989, tail2nos, 0, tail2nos, tail2nos, tail2nos_state, 0, ROT90, "V-System Co.", "Tail to Nose - Great Championship", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1989, sformula, tail2nos, tail2nos, tail2nos, tail2nos_state, 0, ROT90, "V-System Co.", "Super Formula (Japan, set 1)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1989, sformulaa, tail2nos, tail2nos, tail2nos, tail2nos_state, 0, ROT90, "V-System Co.", "Super Formula (Japan, set 2)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // No Japan warning, but Japanese version diff --git a/src/mame/drivers/taito.cpp b/src/mame/drivers/taito.cpp index 2bf1bb1e425..11982c96ccf 100644 --- a/src/mame/drivers/taito.cpp +++ b/src/mame/drivers/taito.cpp @@ -324,7 +324,7 @@ TIMER_DEVICE_CALLBACK_MEMBER( taito_state::timer_a ) output().set_digit_value(++digit, patterns[m_p_ram[m_out_offs++]&15]); } -static MACHINE_CONFIG_START( taito, taito_state ) +static MACHINE_CONFIG_START( taito ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8080, 19000000/9) MCFG_CPU_PROGRAM_MAP(taito_map) @@ -965,50 +965,50 @@ ROM_START(mrblkz80) ROM_END // no sound -GAME(198?, taitest, 0, taito, taito, taito_state, taito, ROT0, "Taito do Brasil", "Taito Test Fixture", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) +GAME(198?, taitest, 0, taito, taito, taito_state, taito, ROT0, "Taito do Brasil", "Taito Test Fixture", MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) // dac (sintetizador) -GAME(1979, shock, 0, shock, taito, taito_state, taito, ROT0, "Taito do Brasil", "Shock", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) -GAME(1980, obaoba, 0, taito, taito, taito_state, taito, ROT0, "Taito do Brasil", "Oba-Oba (set 1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) -GAME(1980, obaoba1, obaoba, taito, taito, taito_state, taito, ROT0, "Taito do Brasil", "Oba-Oba (set 2)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) -GAME(1980, drakor, 0, taito, taito, taito_state, taito, ROT0, "Taito do Brasil", "Drakor", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) -GAME(1980, meteort, 0, taito, taito, taito_state, taito, ROT0, "Taito do Brasil", "Meteor (Taito)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) -GAME(1981, sureshop, 0, taito, taito, taito_state, taito, ROT0, "Taito do Brasil", "Sure Shot (Pinball)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) -GAME(1981, cosmic, 0, taito, taito, taito_state, taito, ROT0, "Taito do Brasil", "Cosmic", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) -GAME(1982, gemini2k, 0, taito, taito, taito_state, taito, ROT0, "Taito do Brasil", "Gemini 2000 (set 1)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1982, gemini2k1, gemini2k, taito, taito, taito_state, taito, ROT0, "Taito do Brasil", "Gemini 2000 (set 2)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1982, vortexp, 0, taito, taito, taito_state, taito, ROT0, "Taito do Brasil", "Vortex (Pinball)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) -GAME(1982, zarza, 0, taito, taito, taito_state, taito, ROT0, "Taito do Brasil", "Zarza (set 1)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1982, zarza1, zarza, taito, taito, taito_state, taito, ROT0, "Taito do Brasil", "Zarza (set 2)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1982, sharkt, 0, taito2, taito, taito_state, taito, ROT0, "Taito do Brasil", "Shark (Taito)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1982, stest, 0, taito, taito, taito_state, taito, ROT0, "Taito do Brasil", "Speed Test", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) -GAME(1982, lunelle, 0, taito2, taito, taito_state, taito, ROT0, "Taito do Brasil", "Lunelle", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1980, rally, 0, taito, taito, taito_state, taito, ROT0, "Taito do Brasil", "Rally", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) +GAME(1979, shock, 0, shock, taito, taito_state, taito, ROT0, "Taito do Brasil", "Shock", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) +GAME(1980, obaoba, 0, taito, taito, taito_state, taito, ROT0, "Taito do Brasil", "Oba-Oba (set 1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) +GAME(1980, obaoba1, obaoba, taito, taito, taito_state, taito, ROT0, "Taito do Brasil", "Oba-Oba (set 2)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) +GAME(1980, drakor, 0, taito, taito, taito_state, taito, ROT0, "Taito do Brasil", "Drakor", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) +GAME(1980, meteort, 0, taito, taito, taito_state, taito, ROT0, "Taito do Brasil", "Meteor (Taito)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) +GAME(1981, sureshop, 0, taito, taito, taito_state, taito, ROT0, "Taito do Brasil", "Sure Shot (Pinball)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) +GAME(1981, cosmic, 0, taito, taito, taito_state, taito, ROT0, "Taito do Brasil", "Cosmic", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) +GAME(1982, gemini2k, 0, taito, taito, taito_state, taito, ROT0, "Taito do Brasil", "Gemini 2000 (set 1)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1982, gemini2k1, gemini2k, taito, taito, taito_state, taito, ROT0, "Taito do Brasil", "Gemini 2000 (set 2)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1982, vortexp, 0, taito, taito, taito_state, taito, ROT0, "Taito do Brasil", "Vortex (Pinball)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) +GAME(1982, zarza, 0, taito, taito, taito_state, taito, ROT0, "Taito do Brasil", "Zarza (set 1)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1982, zarza1, zarza, taito, taito, taito_state, taito, ROT0, "Taito do Brasil", "Zarza (set 2)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1982, sharkt, 0, taito2, taito, taito_state, taito, ROT0, "Taito do Brasil", "Shark (Taito)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1982, stest, 0, taito, taito, taito_state, taito, ROT0, "Taito do Brasil", "Speed Test", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) +GAME(1982, lunelle, 0, taito2, taito, taito_state, taito, ROT0, "Taito do Brasil", "Lunelle", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1980, rally, 0, taito, taito, taito_state, taito, ROT0, "Taito do Brasil", "Rally", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) // dac and vox (sintevox) -GAME(1981, fireact, 0, taito4, taito, taito_state, taito, ROT0, "Taito do Brasil", "Fire Action", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1981, cavnegro, 0, taito4, taito, taito_state, taito, ROT0, "Taito do Brasil", "Cavaleiro Negro (set 1)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1981, cavnegro1, cavnegro, taito4, taito, taito_state, taito, ROT0, "Taito do Brasil", "Cavaleiro Negro (set 2)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1981, cavnegro2, cavnegro, taito4, taito, taito_state, taito, ROT0, "Taito do Brasil", "Cavaleiro Negro (set 3)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1981, ladylukt, 0, taito4, taito, taito_state, taito, ROT0, "Taito do Brasil", "Lady Luck (Taito)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -GAME(198?, vegast, ladylukt, taito4, taito, taito_state, taito, ROT0, "Taito do Brasil", "Vegas (Taito)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -GAME(1982, titan, 0, taito4, taito, taito_state, taito, ROT0, "Taito do Brasil", "Titan (set 1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -GAME(1982, titan1, titan, taito4, taito, taito_state, taito, ROT0, "Taito do Brasil", "Titan (set 2)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -GAME(1982, hawkman, 0, taito4, taito, taito_state, taito, ROT0, "Taito do Brasil", "Hawkman (set 1)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1982, hawkman1, hawkman, taito4, taito, taito_state, taito, ROT0, "Taito do Brasil", "Hawkman (set 2)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1981, fireact, 0, taito4, taito, taito_state, taito, ROT0, "Taito do Brasil", "Fire Action", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1981, cavnegro, 0, taito4, taito, taito_state, taito, ROT0, "Taito do Brasil", "Cavaleiro Negro (set 1)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1981, cavnegro1, cavnegro, taito4, taito, taito_state, taito, ROT0, "Taito do Brasil", "Cavaleiro Negro (set 2)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1981, cavnegro2, cavnegro, taito4, taito, taito_state, taito, ROT0, "Taito do Brasil", "Cavaleiro Negro (set 3)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1981, ladylukt, 0, taito4, taito, taito_state, taito, ROT0, "Taito do Brasil", "Lady Luck (Taito)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +GAME(198?, vegast, ladylukt, taito4, taito, taito_state, taito, ROT0, "Taito do Brasil", "Vegas (Taito)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +GAME(1982, titan, 0, taito4, taito, taito_state, taito, ROT0, "Taito do Brasil", "Titan (set 1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +GAME(1982, titan1, titan, taito4, taito, taito_state, taito, ROT0, "Taito do Brasil", "Titan (set 2)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +GAME(1982, hawkman, 0, taito4, taito, taito_state, taito, ROT0, "Taito do Brasil", "Hawkman (set 1)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1982, hawkman1, hawkman, taito4, taito, taito_state, taito, ROT0, "Taito do Brasil", "Hawkman (set 2)", MACHINE_IS_SKELETON_MECHANICAL) // dac and ay -GAME(1982, snake, 0, taito5, taito, taito_state, taito, ROT0, "Taito do Brasil", "Snake Machine", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) -GAME(198?, voleybal, 0, taito5, taito, taito_state, taito, ROT0, "Taito do Brasil", "Volley", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1984, mrblack, 0, taito5, taito, taito_state, taito, ROT0, "Taito do Brasil", "Mr. Black (set 1)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1985, mrblack1, mrblack, taito5, taito, taito_state, taito, ROT0, "Taito do Brasil", "Mr. Black (set 2)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1982, snake, 0, taito5, taito, taito_state, taito, ROT0, "Taito do Brasil", "Snake Machine", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) +GAME(198?, voleybal, 0, taito5, taito, taito_state, taito, ROT0, "Taito do Brasil", "Volley", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1984, mrblack, 0, taito5, taito, taito_state, taito, ROT0, "Taito do Brasil", "Mr. Black (set 1)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1985, mrblack1, mrblack, taito5, taito, taito_state, taito, ROT0, "Taito do Brasil", "Mr. Black (set 2)", MACHINE_IS_SKELETON_MECHANICAL) GAME(1985, sshuttle, 0, taito5, taito, taito_state, taito, ROT0, "Taito do Brasil", "Space Shuttle (Taito) (set 1)", MACHINE_IS_SKELETON_MECHANICAL) GAME(1985, sshuttle1, sshuttle, taito5, taito, taito_state, taito, ROT0, "Taito do Brasil", "Space Shuttle (Taito) (set 2)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(198?, polar, 0, taito5, taito, taito_state, taito, ROT0, "Taito do Brasil", "Polar Explorer", MACHINE_IS_SKELETON_MECHANICAL) +GAME(198?, polar, 0, taito5, taito, taito_state, taito, ROT0, "Taito do Brasil", "Polar Explorer", MACHINE_IS_SKELETON_MECHANICAL) // dac, vox and ay -GAME(1982, gork, 0, taito6, taito, taito_state, taito, ROT0, "Taito do Brasil", "Gork", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -GAME(198?, fireactd, 0, taito6, taito, taito_state, taito, ROT0, "Taito do Brasil", "Fire Action Deluxe", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1982, gork, 0, taito6, taito, taito_state, taito, ROT0, "Taito do Brasil", "Gork", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +GAME(198?, fireactd, 0, taito6, taito, taito_state, taito, ROT0, "Taito do Brasil", "Fire Action Deluxe", MACHINE_IS_SKELETON_MECHANICAL) // different hardware -GAME(198?, mrblkz80, mrblack, taito, taito, taito_state, taito, ROT0, "Taito do Brasil", "Mr. Black (Z-80 CPU)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(198?, mrblkz80, mrblack, taito, taito, taito_state, taito, ROT0, "Taito do Brasil", "Mr. Black (Z-80 CPU)", MACHINE_IS_SKELETON_MECHANICAL) diff --git a/src/mame/drivers/taito_b.cpp b/src/mame/drivers/taito_b.cpp index 283735451c7..c2465b2504f 100644 --- a/src/mame/drivers/taito_b.cpp +++ b/src/mame/drivers/taito_b.cpp @@ -1914,7 +1914,7 @@ void taitob_state::machine_reset() } -static MACHINE_CONFIG_START( rastsag2, taitob_state ) +static MACHINE_CONFIG_START( rastsag2 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_24MHz/2) /* 12 MHz */ @@ -1970,7 +1970,7 @@ static MACHINE_CONFIG_START( rastsag2, taitob_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( masterw, taitob_state ) +static MACHINE_CONFIG_START( masterw ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_24MHz/2) /* 12 MHz */ @@ -2045,7 +2045,7 @@ static MACHINE_CONFIG_DERIVED( tetrista, masterw ) /* Master of Weapon conversio MACHINE_CONFIG_END -static MACHINE_CONFIG_START( ashura, taitob_state ) +static MACHINE_CONFIG_START( ashura ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_24MHz/2) /* 12 MHz */ @@ -2101,7 +2101,7 @@ static MACHINE_CONFIG_START( ashura, taitob_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( crimec, taitob_state ) +static MACHINE_CONFIG_START( crimec ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_24MHz/2) /* 12 MHz */ @@ -2158,7 +2158,7 @@ static MACHINE_CONFIG_START( crimec, taitob_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( hitice, taitob_state ) +static MACHINE_CONFIG_START( hitice ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_24MHz/2) /* 12 MHz */ @@ -2211,7 +2211,7 @@ static MACHINE_CONFIG_START( hitice, taitob_state ) MCFG_SOUND_ROUTE(2, "mono", 0.25) MCFG_SOUND_ROUTE(3, "mono", 0.80) - MCFG_OKIM6295_ADD("oki", 1056000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki", 1056000, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) MCFG_DEVICE_ADD("tc0140syt", TC0140SYT, 0) @@ -2220,7 +2220,7 @@ static MACHINE_CONFIG_START( hitice, taitob_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( rambo3p, taitob_state ) +static MACHINE_CONFIG_START( rambo3p ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_24MHz/2) /* verified on pcb */ @@ -2277,7 +2277,7 @@ static MACHINE_CONFIG_START( rambo3p, taitob_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( rambo3, taitob_state ) +static MACHINE_CONFIG_START( rambo3 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_24MHz/2) /* 12MHz verified on pcb */ @@ -2333,7 +2333,7 @@ static MACHINE_CONFIG_START( rambo3, taitob_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( pbobble, taitob_state ) +static MACHINE_CONFIG_START( pbobble ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_24MHz/2) /* 12 MHz */ @@ -2395,7 +2395,7 @@ static MACHINE_CONFIG_START( pbobble, taitob_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( spacedx, taitob_state ) +static MACHINE_CONFIG_START( spacedx ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_24MHz/2) /* 12 MHz */ @@ -2457,7 +2457,7 @@ static MACHINE_CONFIG_START( spacedx, taitob_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( spacedxo, taitob_state ) +static MACHINE_CONFIG_START( spacedxo ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_24MHz/2) /* 12 MHz */ @@ -2513,7 +2513,7 @@ static MACHINE_CONFIG_START( spacedxo, taitob_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( qzshowby, taitob_state ) +static MACHINE_CONFIG_START( qzshowby ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 16000000) /* 16 MHz according to the readme*/ @@ -2575,7 +2575,7 @@ static MACHINE_CONFIG_START( qzshowby, taitob_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( viofight, taitob_state ) +static MACHINE_CONFIG_START( viofight ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_24MHz/2) /* 12 MHz */ @@ -2627,7 +2627,7 @@ static MACHINE_CONFIG_START( viofight, taitob_state ) MCFG_SOUND_ROUTE(2, "mono", 0.25) MCFG_SOUND_ROUTE(3, "mono", 0.80) - MCFG_OKIM6295_ADD("oki", XTAL_4_224MHz/4, OKIM6295_PIN7_HIGH) // 1.056MHz clock frequency, but pin 7 not verified + MCFG_OKIM6295_ADD("oki", XTAL_4_224MHz/4, PIN7_HIGH) // 1.056MHz clock frequency, but pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) MCFG_DEVICE_ADD("tc0140syt", TC0140SYT, 0) @@ -2636,7 +2636,7 @@ static MACHINE_CONFIG_START( viofight, taitob_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( silentd, taitob_state ) +static MACHINE_CONFIG_START( silentd ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_24MHz/2) /* 12 MHz */ @@ -2692,7 +2692,7 @@ static MACHINE_CONFIG_START( silentd, taitob_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( selfeena, taitob_state ) +static MACHINE_CONFIG_START( selfeena ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_24MHz/2) /* 12 MHz */ @@ -2757,7 +2757,7 @@ void taitob_state::ryujin_patch(void) } #endif -static MACHINE_CONFIG_START( ryujin, taitob_state ) +static MACHINE_CONFIG_START( ryujin ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_24MHz/2) /* 12 MHz */ @@ -2820,7 +2820,7 @@ void taitob_state::sbm_patch(void) } #endif -static MACHINE_CONFIG_START( sbm, taitob_state ) +static MACHINE_CONFIG_START( sbm ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 12000000) /* 12 MHz */ @@ -2875,7 +2875,7 @@ static MACHINE_CONFIG_START( sbm, taitob_state ) MCFG_TC0140SYT_SLAVE_CPU("audiocpu") MACHINE_CONFIG_END -static MACHINE_CONFIG_START( realpunc, taitob_state ) +static MACHINE_CONFIG_START( realpunc ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 12000000) @@ -3745,43 +3745,43 @@ DRIVER_INIT_MEMBER(taitob_state,taito_b) membank("bank1")->configure_entries(0, 4, memregion("audiocpu")->base(), 0x4000); } -GAME( 1989, masterw, 0, masterw, masterw, taitob_state, taito_b, ROT270, "Taito Corporation Japan", "Master of Weapon (World)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, masterwu, masterw, masterw, masterwu, taitob_state, taito_b, ROT270, "Taito America Corporation", "Master of Weapon (US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, masterwj, masterw, masterw, masterwj, taitob_state, taito_b, ROT270, "Taito Corporation", "Master of Weapon (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, yukiwo, masterw, masterw, yukiwo, taitob_state, taito_b, ROT270, "Taito Corporation Japan", "Yukiwo (World, prototype)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, masterw, 0, masterw, masterw, taitob_state, taito_b, ROT270, "Taito Corporation Japan", "Master of Weapon (World)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, masterwu, masterw, masterw, masterwu, taitob_state, taito_b, ROT270, "Taito America Corporation", "Master of Weapon (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, masterwj, masterw, masterw, masterwj, taitob_state, taito_b, ROT270, "Taito Corporation", "Master of Weapon (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, yukiwo, masterw, masterw, yukiwo, taitob_state, taito_b, ROT270, "Taito Corporation Japan", "Yukiwo (World, prototype)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, nastar, 0, rastsag2, nastar, taitob_state, taito_b, ROT0, "Taito Corporation Japan", "Nastar (World)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, nastarw, nastar, rastsag2, nastarw, taitob_state, taito_b, ROT0, "Taito America Corporation", "Nastar Warrior (US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, rastsag2, nastar, rastsag2, rastsag2, taitob_state, taito_b, ROT0, "Taito Corporation", "Rastan Saga 2 (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, nastar, 0, rastsag2, nastar, taitob_state, taito_b, ROT0, "Taito Corporation Japan", "Nastar (World)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, nastarw, nastar, rastsag2, nastarw, taitob_state, taito_b, ROT0, "Taito America Corporation", "Nastar Warrior (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, rastsag2, nastar, rastsag2, rastsag2, taitob_state, taito_b, ROT0, "Taito Corporation", "Rastan Saga 2 (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, rambo3, 0, rambo3, rambo3, taitob_state, taito_b, ROT0, "Taito Europe Corporation", "Rambo III (Europe)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, rambo3u, rambo3, rambo3, rambo3u, taitob_state, taito_b, ROT0, "Taito America Corporation", "Rambo III (US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, rambo3p, rambo3, rambo3p, rambo3p, taitob_state, taito_b, ROT0, "Taito Europe Corporation", "Rambo III (Europe, Proto?)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, rambo3, 0, rambo3, rambo3, taitob_state, taito_b, ROT0, "Taito Europe Corporation", "Rambo III (Europe)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, rambo3u, rambo3, rambo3, rambo3u, taitob_state, taito_b, ROT0, "Taito America Corporation", "Rambo III (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, rambo3p, rambo3, rambo3p, rambo3p, taitob_state, taito_b, ROT0, "Taito Europe Corporation", "Rambo III (Europe, Proto?)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, crimec, 0, crimec, crimec, taitob_state, taito_b, ROT0, "Taito Corporation Japan", "Crime City (World)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, crimecu, crimec, crimec, crimecu, taitob_state, taito_b, ROT0, "Taito America Corporation", "Crime City (US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, crimecj, crimec, crimec, crimecj, taitob_state, taito_b, ROT0, "Taito Corporation", "Crime City (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, crimec, 0, crimec, crimec, taitob_state, taito_b, ROT0, "Taito Corporation Japan", "Crime City (World)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, crimecu, crimec, crimec, crimecu, taitob_state, taito_b, ROT0, "Taito America Corporation", "Crime City (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, crimecj, crimec, crimec, crimecj, taitob_state, taito_b, ROT0, "Taito Corporation", "Crime City (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, tetrist, tetris, tetrist, tetrist, taitob_state, taito_b, ROT0, "Sega", "Tetris (Japan, Taito B-System, Nastar Conversion Kit)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, tetrist, tetris, tetrist, tetrist, taitob_state, taito_b, ROT0, "Sega", "Tetris (Japan, Taito B-System, Nastar Conversion Kit)", MACHINE_SUPPORTS_SAVE ) GAME( 1988, tetrista, tetris, tetrista, tetrist, taitob_state, taito_b, ROT0, "Sega", "Tetris (Japan, Taito B-System, Master of Weapon Conversion Kit)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, viofight, 0, viofight, viofight, taitob_state, taito_b, ROT0, "Taito Corporation Japan", "Violence Fight (World)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, viofightu,viofight,viofight, viofightu, taitob_state, taito_b, ROT0, "Taito America Corporation", "Violence Fight (US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, viofightj,viofight,viofight, viofightj, taitob_state, taito_b, ROT0, "Taito Corporation", "Violence Fight (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, viofight, 0, viofight, viofight, taitob_state, taito_b, ROT0, "Taito Corporation Japan", "Violence Fight (World)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, viofightu,viofight,viofight, viofightu, taitob_state, taito_b, ROT0, "Taito America Corporation", "Violence Fight (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, viofightj,viofight,viofight, viofightj, taitob_state, taito_b, ROT0, "Taito Corporation", "Violence Fight (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, ashura, 0, ashura, ashura, taitob_state, taito_b, ROT270, "Taito Corporation Japan", "Ashura Blaster (World)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, ashuraj, ashura, ashura, ashuraj, taitob_state, taito_b, ROT270, "Taito Corporation", "Ashura Blaster (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, ashurau, ashura, ashura, ashurau, taitob_state, taito_b, ROT270, "Taito America Corporation", "Ashura Blaster (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, ashura, 0, ashura, ashura, taitob_state, taito_b, ROT270, "Taito Corporation Japan", "Ashura Blaster (World)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, ashuraj, ashura, ashura, ashuraj, taitob_state, taito_b, ROT270, "Taito Corporation", "Ashura Blaster (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, ashurau, ashura, ashura, ashurau, taitob_state, taito_b, ROT270, "Taito America Corporation", "Ashura Blaster (US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, hitice, 0, hitice, hitice, taitob_state, taito_b, ROT0, "Taito Corporation (Williams license)", "Hit the Ice (US)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1990, hiticerb, hitice, hitice, hitice, taitob_state, taito_b, ROT0, "Taito Corporation (Williams license)", "Hit the Ice (US, with riser board)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1990, hiticej, hitice, hitice, hiticej, taitob_state, taito_b, ROT0, "Taito Corporation (licensed from Midway)", "Hit the Ice (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1990, hitice, 0, hitice, hitice, taitob_state, taito_b, ROT0, "Taito Corporation (Williams license)", "Hit the Ice (US)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1990, hiticerb, hitice, hitice, hitice, taitob_state, taito_b, ROT0, "Taito Corporation (Williams license)", "Hit the Ice (US, with riser board)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1990, hiticej, hitice, hitice, hiticej, taitob_state, taito_b, ROT0, "Taito Corporation (licensed from Midway)", "Hit the Ice (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) GAME( 1991, selfeena, 0, selfeena, selfeena, taitob_state, taito_b, ROT0, "East Technology", "Sel Feena", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, silentd, 0, silentd, silentd, taitob_state, taito_b, ROT0, "Taito Corporation Japan", "Silent Dragon (World)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, silentdj, silentd, silentd, silentdj, taitob_state, taito_b, ROT0, "Taito Corporation", "Silent Dragon (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, silentdu, silentd, silentd, silentdu, taitob_state, taito_b, ROT0, "Taito America Corporation", "Silent Dragon (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, silentd, 0, silentd, silentd, taitob_state, taito_b, ROT0, "Taito Corporation Japan", "Silent Dragon (World)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, silentdj, silentd, silentd, silentdj, taitob_state, taito_b, ROT0, "Taito Corporation", "Silent Dragon (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, silentdu, silentd, silentd, silentdu, taitob_state, taito_b, ROT0, "Taito America Corporation", "Silent Dragon (US)", MACHINE_SUPPORTS_SAVE ) GAME( 1993, ryujin, 0, ryujin, ryujin, taitob_state, taito_b, ROT270, "Taito Corporation", "Ryu Jin (Japan)", MACHINE_SUPPORTS_SAVE ) @@ -3789,7 +3789,7 @@ GAME( 1993, qzshowby, 0, qzshowby, qzshowby, taitob_state, taito_b, ROT0, GAME( 1994, pbobble, 0, pbobble, pbobble, taitob_state, taito_b, ROT0, "Taito Corporation", "Puzzle Bobble (Japan, B-System)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, spacedx, 0, spacedx, pbobble, taitob_state, taito_b, ROT0, "Taito Corporation", "Space Invaders DX (US, v2.1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, spacedx, 0, spacedx, pbobble, taitob_state, taito_b, ROT0, "Taito Corporation", "Space Invaders DX (US, v2.1)", MACHINE_SUPPORTS_SAVE ) GAME( 1994, spacedxj, spacedx, spacedx, pbobble, taitob_state, taito_b, ROT0, "Taito Corporation", "Space Invaders DX (Japan, v2.1)", MACHINE_SUPPORTS_SAVE ) GAME( 1994, spacedxo, spacedx, spacedxo, spacedxo, taitob_state, taito_b, ROT0, "Taito Corporation", "Space Invaders DX (Japan, v2.0)", MACHINE_SUPPORTS_SAVE ) /* @@ -3799,6 +3799,6 @@ GAME( 1994, spacedxo, spacedx, spacedxo, spacedxo, taitob_state, taito_b, ROT0, in that it has a punching pad that player needs to punch to hit the enemy. */ -GAME( 1990, sbm, 0, sbm, sbm, taitob_state, taito_b, ROT0, "Taito Corporation", "Sonic Blast Man (US)", MACHINE_SUPPORTS_SAVE | MACHINE_MECHANICAL ) -GAME( 1990, sbmj, sbm, sbm, sbm, taitob_state, taito_b, ROT0, "Taito Corporation", "Sonic Blast Man (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_MECHANICAL ) -GAME( 1994, realpunc, 0, realpunc, realpunc, taitob_state, taito_b, ROT0, "Taito Corporation Japan", "Real Puncher", MACHINE_SUPPORTS_SAVE | MACHINE_MECHANICAL ) +GAME( 1990, sbm, 0, sbm, sbm, taitob_state, taito_b, ROT0, "Taito Corporation", "Sonic Blast Man (US)", MACHINE_SUPPORTS_SAVE | MACHINE_MECHANICAL ) +GAME( 1990, sbmj, sbm, sbm, sbm, taitob_state, taito_b, ROT0, "Taito Corporation", "Sonic Blast Man (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_MECHANICAL ) +GAME( 1994, realpunc, 0, realpunc, realpunc, taitob_state, taito_b, ROT0, "Taito Corporation Japan", "Real Puncher", MACHINE_SUPPORTS_SAVE | MACHINE_MECHANICAL ) diff --git a/src/mame/drivers/taito_f2.cpp b/src/mame/drivers/taito_f2.cpp index 7bda5a51d3d..a7bfe911033 100644 --- a/src/mame/drivers/taito_f2.cpp +++ b/src/mame/drivers/taito_f2.cpp @@ -2850,7 +2850,7 @@ MACHINE_START_MEMBER(taitof2_state,f2) membank("bank2")->configure_entries(0, 8, memregion("audiocpu")->base() + 0x10000, 0x4000); } -static MACHINE_CONFIG_START( taito_f2, taitof2_state ) +static MACHINE_CONFIG_START( taito_f2 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 24000000/2) /* 12 MHz */ @@ -3023,7 +3023,7 @@ static MACHINE_CONFIG_DERIVED( thundfox, taito_f2_tc0220ioc ) MCFG_TC0100SCN_OFFSETS(3, 0) MCFG_TC0100SCN_OFFSETS_FLIP(5, 0) MCFG_TC0100SCN_OFFSETS_FLIPTX(4, 1) - MCFG_TC0100SCN_MULTISCR_XOFFS(TC0100SCN_SINGLE_VDU) + MCFG_TC0100SCN_MULTISCR_XOFFS(tc0100scn_device::SINGLE_VDU) MCFG_TC0100SCN_MULTISCR_HACK(1) MCFG_TC0100SCN_GFXDECODE("gfxdecode") MCFG_TC0100SCN_PALETTE("palette") @@ -3660,7 +3660,7 @@ static MACHINE_CONFIG_DERIVED( driftout, taito_f2_tc0510nio ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( cameltrya, taitof2_state ) +static MACHINE_CONFIG_START( cameltrya ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000,24000000/2) /* verified on pcb */ @@ -3719,7 +3719,7 @@ static MACHINE_CONFIG_START( cameltrya, taitof2_state ) MCFG_SOUND_ROUTE(2, "mono", 0.20) MCFG_SOUND_ROUTE(3, "mono", 0.60) - MCFG_OKIM6295_ADD("oki", XTAL_4_224MHz/4, OKIM6295_PIN7_HIGH) /* verified on pcb */ + MCFG_OKIM6295_ADD("oki", XTAL_4_224MHz/4, PIN7_HIGH) /* verified on pcb */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10) MCFG_DEVICE_ADD("tc0140syt", TC0140SYT, 0) @@ -3728,7 +3728,7 @@ static MACHINE_CONFIG_START( cameltrya, taitof2_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( driveout, taitof2_state ) +static MACHINE_CONFIG_START( driveout ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000,24000000/2) /* 12 MHz */ @@ -3779,7 +3779,7 @@ static MACHINE_CONFIG_START( driveout, taitof2_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") /* does it ? */ - MCFG_OKIM6295_ADD("oki", 1056000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki", 1056000, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) @@ -5574,93 +5574,93 @@ DRIVER_INIT_MEMBER(taitof2_state,driveout) } -GAME( 1988, finalb, 0, finalb, finalb, taitof2_state, finalb, ROT0, "Taito Corporation Japan", "Final Blow (World)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, finalbu, finalb, finalb, finalbu, taitof2_state, finalb, ROT0, "Taito America Corporation", "Final Blow (US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, finalbj, finalb, finalb, finalbj, taitof2_state, finalb, ROT0, "Taito Corporation", "Final Blow (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, finalb, 0, finalb, finalb, taitof2_state, finalb, ROT0, "Taito Corporation Japan", "Final Blow (World)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, finalbu, finalb, finalb, finalbu, taitof2_state, finalb, ROT0, "Taito America Corporation", "Final Blow (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, finalbj, finalb, finalb, finalbj, taitof2_state, finalb, ROT0, "Taito Corporation", "Final Blow (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, dondokod, 0, dondokod, dondokod, driver_device, 0, ROT0, "Taito Corporation Japan", "Don Doko Don (World)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, dondokodu, dondokod, dondokod, dondokodu, driver_device, 0, ROT0, "Taito America Corporation", "Don Doko Don (US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, dondokodj, dondokod, dondokod, dondokodj, driver_device, 0, ROT0, "Taito Corporation", "Don Doko Don (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, dondokod, 0, dondokod, dondokod, taitof2_state, 0, ROT0, "Taito Corporation Japan", "Don Doko Don (World)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, dondokodu, dondokod, dondokod, dondokodu, taitof2_state, 0, ROT0, "Taito America Corporation", "Don Doko Don (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, dondokodj, dondokod, dondokod, dondokodj, taitof2_state, 0, ROT0, "Taito Corporation", "Don Doko Don (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, megablst, 0, megab, megab, driver_device, 0, ROT0, "Taito Corporation Japan", "Mega Blast (World)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, megablstu, megablst, megab, megabu, driver_device, 0, ROT0, "Taito America Corporation", "Mega Blast (US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, megablstj, megablst, megab, megabj, driver_device, 0, ROT0, "Taito Corporation", "Mega Blast (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, megablst, 0, megab, megab, taitof2_state, 0, ROT0, "Taito Corporation Japan", "Mega Blast (World)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, megablstu, megablst, megab, megabu, taitof2_state, 0, ROT0, "Taito America Corporation", "Mega Blast (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, megablstj, megablst, megab, megabj, taitof2_state, 0, ROT0, "Taito Corporation", "Mega Blast (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, thundfox, 0, thundfox, thundfox, driver_device, 0, ROT0, "Taito Corporation Japan", "Thunder Fox (World)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, thundfoxu, thundfox, thundfox, thundfoxu, driver_device, 0, ROT0, "Taito America Corporation", "Thunder Fox (US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, thundfoxj, thundfox, thundfox, thundfoxj, driver_device, 0, ROT0, "Taito Corporation", "Thunder Fox (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, thundfox, 0, thundfox, thundfox, taitof2_state, 0, ROT0, "Taito Corporation Japan", "Thunder Fox (World)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, thundfoxu, thundfox, thundfox, thundfoxu, taitof2_state, 0, ROT0, "Taito America Corporation", "Thunder Fox (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, thundfoxj, thundfox, thundfox, thundfoxj, taitof2_state, 0, ROT0, "Taito Corporation", "Thunder Fox (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, cameltry, 0, cameltry, cameltry, taitof2_state, cameltry, ROT0, "Taito America Corporation", "Cameltry (US, YM2610)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, cameltryj, cameltry, cameltry, cameltryj, taitof2_state, cameltry, ROT0, "Taito Corporation", "Cameltry (Japan, YM2610)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, cameltrya, cameltry, cameltrya, cameltry, taitof2_state, cameltry, ROT0, "Taito America Corporation", "Cameltry (World, YM2203 + M6295)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, cameltryau, cameltry, cameltrya, cameltry, taitof2_state, cameltry, ROT0, "Taito America Corporation", "Cameltry (US, YM2203 + M6295)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, cameltry, 0, cameltry, cameltry, taitof2_state, cameltry, ROT0, "Taito America Corporation", "Cameltry (US, YM2610)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, cameltryj, cameltry, cameltry, cameltryj, taitof2_state, cameltry, ROT0, "Taito Corporation", "Cameltry (Japan, YM2610)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, cameltrya, cameltry, cameltrya, cameltry, taitof2_state, cameltry, ROT0, "Taito America Corporation", "Cameltry (World, YM2203 + M6295)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, cameltryau, cameltry, cameltrya, cameltry, taitof2_state, cameltry, ROT0, "Taito America Corporation", "Cameltry (US, YM2203 + M6295)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, qtorimon, 0, qtorimon, qtorimon, driver_device, 0, ROT0, "Taito Corporation", "Quiz Torimonochou (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, qtorimon, 0, qtorimon, qtorimon, taitof2_state, 0, ROT0, "Taito Corporation", "Quiz Torimonochou (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, liquidk, 0, liquidk, liquidk, driver_device, 0, ROT0, "Taito Corporation Japan", "Liquid Kids (World)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, liquidku, liquidk, liquidk, liquidku, driver_device, 0, ROT0, "Taito America Corporation", "Liquid Kids (US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, mizubaku, liquidk, liquidk, mizubaku, driver_device, 0, ROT0, "Taito Corporation", "Mizubaku Daibouken (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, liquidk, 0, liquidk, liquidk, taitof2_state, 0, ROT0, "Taito Corporation Japan", "Liquid Kids (World)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, liquidku, liquidk, liquidk, liquidku, taitof2_state, 0, ROT0, "Taito America Corporation", "Liquid Kids (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, mizubaku, liquidk, liquidk, mizubaku, taitof2_state, 0, ROT0, "Taito Corporation", "Mizubaku Daibouken (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, quizhq, 0, quizhq, quizhq, driver_device, 0, ROT0, "Taito Corporation", "Quiz H.Q. (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, quizhq, 0, quizhq, quizhq, taitof2_state, 0, ROT0, "Taito Corporation", "Quiz H.Q. (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, ssi, 0, ssi, ssi, driver_device, 0, ROT270, "Taito Corporation Japan", "Super Space Invaders '91 (World, Rev 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, ssia, ssi, ssi, ssi, driver_device, 0, ROT270, "Taito Corporation Japan", "Super Space Invaders '91 (World)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, majest12u, ssi, ssi, majest12u, driver_device, 0, ROT270, "Taito America Corporation", "Majestic Twelve - The Space Invaders Part IV (US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, majest12j, ssi, ssi, majest12j, driver_device, 0, ROT270, "Taito Corporation", "Majestic Twelve - The Space Invaders Part IV (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, ssi, 0, ssi, ssi, taitof2_state, 0, ROT270, "Taito Corporation Japan", "Super Space Invaders '91 (World, Rev 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, ssia, ssi, ssi, ssi, taitof2_state, 0, ROT270, "Taito Corporation Japan", "Super Space Invaders '91 (World)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, majest12u, ssi, ssi, majest12u, taitof2_state, 0, ROT270, "Taito America Corporation", "Majestic Twelve - The Space Invaders Part IV (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, majest12j, ssi, ssi, majest12j, taitof2_state, 0, ROT270, "Taito Corporation", "Majestic Twelve - The Space Invaders Part IV (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, gunfront, 0, gunfront, gunfront, driver_device, 0, ROT270, "Taito Corporation Japan", "Gun & Frontier (World)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, gunfrontj, gunfront, gunfront, gunfrontj, driver_device, 0, ROT270, "Taito Corporation", "Gun Frontier (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, gunfront, 0, gunfront, gunfront, taitof2_state, 0, ROT270, "Taito Corporation Japan", "Gun & Frontier (World)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, gunfrontj, gunfront, gunfront, gunfrontj, taitof2_state, 0, ROT270, "Taito Corporation", "Gun Frontier (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, growl, 0, growl, growl, driver_device, 0, ROT0, "Taito Corporation Japan", "Growl (World, Rev 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, growla, growl, growl, growl, driver_device, 0, ROT0, "Taito Corporation Japan", "Growl (World)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, growlu, growl, growl, growlu, driver_device, 0, ROT0, "Taito America Corporation", "Growl (US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, runark, growl, growl, runark, driver_device, 0, ROT0, "Taito Corporation", "Runark (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, growlp, growl, growl, growl, driver_device, 0, ROT0, "Taito Corporation Japan", "Growl (World, prototype)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, growl, 0, growl, growl, taitof2_state, 0, ROT0, "Taito Corporation Japan", "Growl (World, Rev 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, growla, growl, growl, growl, taitof2_state, 0, ROT0, "Taito Corporation Japan", "Growl (World)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, growlu, growl, growl, growlu, taitof2_state, 0, ROT0, "Taito America Corporation", "Growl (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, runark, growl, growl, runark, taitof2_state, 0, ROT0, "Taito Corporation", "Runark (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, growlp, growl, growl, growl, taitof2_state, 0, ROT0, "Taito Corporation Japan", "Growl (World, prototype)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, mjnquest, 0, mjnquest, mjnquest, taitof2_state, mjnquest, ROT0, "Taito Corporation", "Mahjong Quest (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, mjnquestb, mjnquest, mjnquest, mjnquest, taitof2_state, mjnquest, ROT0, "Taito Corporation", "Mahjong Quest (No Nudity)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, mjnquest, 0, mjnquest, mjnquest, taitof2_state, mjnquest, ROT0, "Taito Corporation", "Mahjong Quest (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, mjnquestb, mjnquest, mjnquest, mjnquest, taitof2_state, mjnquest, ROT0, "Taito Corporation", "Mahjong Quest (No Nudity)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, footchmp, 0, footchmp, footchmp, driver_device, 0, ROT0, "Taito Corporation Japan", "Football Champ (World)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, hthero, footchmp, hthero, hthero, driver_device, 0, ROT0, "Taito Corporation", "Hat Trick Hero (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, euroch92, footchmp, footchmp, footchmp, driver_device, 0, ROT0, "Taito Corporation Japan", "Euro Champ '92 (World)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, footchmpbl, footchmp, footchmpbl,footchmpbl, driver_device,0, ROT0, "bootleg", "Football Champ (World) (bootleg)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) // very different hw register etc. +GAME( 1990, footchmp, 0, footchmp, footchmp, taitof2_state, 0, ROT0, "Taito Corporation Japan", "Football Champ (World)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, hthero, footchmp, hthero, hthero, taitof2_state, 0, ROT0, "Taito Corporation", "Hat Trick Hero (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, euroch92, footchmp, footchmp, footchmp, taitof2_state, 0, ROT0, "Taito Corporation Japan", "Euro Champ '92 (World)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, footchmpbl, footchmp, footchmpbl,footchmpbl, taitof2_state, 0, ROT0, "bootleg", "Football Champ (World) (bootleg)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) // very different hw register etc. -GAME( 1990, koshien, 0, koshien, koshien, driver_device, 0, ROT0, "Taito Corporation", "Ah Eikou no Koshien (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, koshien, 0, koshien, koshien, taitof2_state, 0, ROT0, "Taito Corporation", "Ah Eikou no Koshien (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, yuyugogo, 0, yuyugogo, yuyugogo, driver_device, 0, ROT0, "Taito Corporation", "Yuuyu no Quiz de GO!GO! (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, yuyugogo, 0, yuyugogo, yuyugogo, taitof2_state, 0, ROT0, "Taito Corporation", "Yuuyu no Quiz de GO!GO! (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, ninjak, 0, ninjak, ninjak, driver_device, 0, ROT0, "Taito Corporation Japan", "The Ninja Kids (World)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, ninjaku, ninjak, ninjak, ninjaku, driver_device, 0, ROT0, "Taito America Corporation", "The Ninja Kids (US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, ninjakj, ninjak, ninjak, ninjakj, driver_device, 0, ROT0, "Taito Corporation", "The Ninja Kids (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, ninjak, 0, ninjak, ninjak, taitof2_state, 0, ROT0, "Taito Corporation Japan", "The Ninja Kids (World)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, ninjaku, ninjak, ninjak, ninjaku, taitof2_state, 0, ROT0, "Taito America Corporation", "The Ninja Kids (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, ninjakj, ninjak, ninjak, ninjakj, taitof2_state, 0, ROT0, "Taito Corporation", "The Ninja Kids (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, solfigtr, 0, solfigtr, solfigtr, driver_device, 0, ROT0, "Taito Corporation Japan", "Solitary Fighter (World)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, solfigtr, 0, solfigtr, solfigtr, taitof2_state, 0, ROT0, "Taito Corporation Japan", "Solitary Fighter (World)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, qzquest, 0, qzquest , qzquest, driver_device, 0, ROT0, "Taito Corporation", "Quiz Quest - Hime to Yuusha no Monogatari (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, qzquest, 0, qzquest , qzquest, taitof2_state, 0, ROT0, "Taito Corporation", "Quiz Quest - Hime to Yuusha no Monogatari (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, pulirula, 0, pulirula, pulirula, driver_device, 0, ROT0, "Taito Corporation Japan", "PuLiRuLa (World)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, pulirulaj, pulirula, pulirula, pulirulaj, driver_device, 0, ROT0, "Taito Corporation", "PuLiRuLa (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, pulirula, 0, pulirula, pulirula, taitof2_state, 0, ROT0, "Taito Corporation Japan", "PuLiRuLa (World)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, pulirulaj, pulirula, pulirula, pulirulaj, taitof2_state, 0, ROT0, "Taito Corporation", "PuLiRuLa (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, metalb, 0, metalb, metalb, driver_device, 0, ROT0, "Taito Corporation Japan", "Metal Black (World)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, metalbj, metalb, metalb, metalbj, driver_device, 0, ROT0, "Taito Corporation", "Metal Black (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, metalb, 0, metalb, metalb, taitof2_state, 0, ROT0, "Taito Corporation Japan", "Metal Black (World)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, metalbj, metalb, metalb, metalbj, taitof2_state, 0, ROT0, "Taito Corporation", "Metal Black (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, qzchikyu, 0, qzchikyu, qzchikyu, driver_device, 0, ROT0, "Taito Corporation", "Quiz Chikyu Bouei Gun (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, qzchikyu, 0, qzchikyu, qzchikyu, taitof2_state, 0, ROT0, "Taito Corporation", "Quiz Chikyu Bouei Gun (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, yesnoj, 0, yesnoj, yesnoj, driver_device, 0, ROT0, "Taito Corporation", "Yes/No Sinri Tokimeki Chart", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, yesnoj, 0, yesnoj, yesnoj, taitof2_state, 0, ROT0, "Taito Corporation", "Yes/No Sinri Tokimeki Chart", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, deadconx, 0, deadconx, deadconx, driver_device, 0, ROT0, "Taito Corporation Japan", "Dead Connection (World)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, deadconxj, deadconx, deadconxj, deadconxj, driver_device, 0, ROT0, "Taito Corporation", "Dead Connection (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, deadconx, 0, deadconx, deadconx, taitof2_state, 0, ROT0, "Taito Corporation Japan", "Dead Connection (World)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, deadconxj, deadconx, deadconxj, deadconxj, taitof2_state, 0, ROT0, "Taito Corporation", "Dead Connection (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, dinorex, 0, dinorex, dinorex, driver_device, 0, ROT0, "Taito Corporation Japan", "Dino Rex (World)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, dinorexu, dinorex, dinorex, dinorexu, driver_device, 0, ROT0, "Taito America Corporation", "Dino Rex (US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, dinorexj, dinorex, dinorex, dinorexj, driver_device, 0, ROT0, "Taito Corporation", "Dino Rex (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, dinorex, 0, dinorex, dinorex, taitof2_state, 0, ROT0, "Taito Corporation Japan", "Dino Rex (World)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, dinorexu, dinorex, dinorex, dinorexu, taitof2_state, 0, ROT0, "Taito America Corporation", "Dino Rex (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, dinorexj, dinorex, dinorex, dinorexj, taitof2_state, 0, ROT0, "Taito Corporation", "Dino Rex (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, qjinsei, 0, qjinsei, qjinsei, driver_device, 0, ROT0, "Taito Corporation", "Quiz Jinsei Gekijoh (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, qjinsei, 0, qjinsei, qjinsei, taitof2_state, 0, ROT0, "Taito Corporation", "Quiz Jinsei Gekijoh (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, qcrayon, 0, qcrayon, qcrayon, driver_device, 0, ROT0, "Taito Corporation", "Quiz Crayon Shinchan (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, qcrayon, 0, qcrayon, qcrayon, taitof2_state, 0, ROT0, "Taito Corporation", "Quiz Crayon Shinchan (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, qcrayon2, 0, qcrayon2, qcrayon2, driver_device, 0, ROT0, "Taito Corporation", "Crayon Shinchan Orato Asobo (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, qcrayon2, 0, qcrayon2, qcrayon2, taitof2_state, 0, ROT0, "Taito Corporation", "Crayon Shinchan Orato Asobo (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, driftout, 0, driftout, driftout, driver_device, 0, ROT270, "Visco", "Drift Out (Europe)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, driftoutj, driftout, driftout, driftout, driver_device, 0, ROT270, "Visco", "Drift Out (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, driveout, driftout, driveout, driftout, taitof2_state, driveout, ROT270, "bootleg", "Drive Out (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, driftout, 0, driftout, driftout, taitof2_state, 0, ROT270, "Visco", "Drift Out (Europe)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, driftoutj, driftout, driftout, driftout, taitof2_state, 0, ROT270, "Visco", "Drift Out (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, driveout, driftout, driveout, driftout, taitof2_state, driveout, ROT270, "bootleg", "Drive Out (bootleg)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/taito_f3.cpp b/src/mame/drivers/taito_f3.cpp index 2deb9426c9b..4b5a8c1d904 100644 --- a/src/mame/drivers/taito_f3.cpp +++ b/src/mame/drivers/taito_f3.cpp @@ -438,7 +438,7 @@ MACHINE_RESET_MEMBER(taito_f3_state,f3) m_audiocpu->set_input_line(INPUT_LINE_RESET, ASSERT_LINE); } -static MACHINE_CONFIG_START( f3, taito_f3_state ) +static MACHINE_CONFIG_START( f3 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68EC020, XTAL_16MHz) @@ -534,7 +534,7 @@ static GFXDECODE_START( bubsympb ) GFXDECODE_ENTRY( nullptr, 0x000000, pivotlayout, 0, 64 ) /* Dynamically modified */ GFXDECODE_END -static MACHINE_CONFIG_START( bubsympb, taito_f3_state ) +static MACHINE_CONFIG_START( bubsympb ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68EC020, XTAL_16MHz) MCFG_CPU_PROGRAM_MAP(f3_map) @@ -561,7 +561,7 @@ static MACHINE_CONFIG_START( bubsympb, taito_f3_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", 1000000 , OKIM6295_PIN7_HIGH) // not verified + MCFG_OKIM6295_ADD("oki", 1000000 , PIN7_HIGH) // not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END diff --git a/src/mame/drivers/taito_h.cpp b/src/mame/drivers/taito_h.cpp index ad53e20112c..422705d7e47 100644 --- a/src/mame/drivers/taito_h.cpp +++ b/src/mame/drivers/taito_h.cpp @@ -628,7 +628,7 @@ void taitoh_state::machine_start() } -static MACHINE_CONFIG_START( syvalion, taitoh_state ) +static MACHINE_CONFIG_START( syvalion ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_24MHz / 2) /* 12 MHz */ @@ -683,7 +683,7 @@ static MACHINE_CONFIG_START( syvalion, taitoh_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( recordbr, taitoh_state ) +static MACHINE_CONFIG_START( recordbr ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_24MHz / 2) /* 12 MHz */ @@ -746,7 +746,7 @@ static MACHINE_CONFIG_DERIVED( tetristh, recordbr ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( dleague, taitoh_state ) +static MACHINE_CONFIG_START( dleague ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_24MHz / 2) /* 12 MHz */ @@ -1043,11 +1043,11 @@ ROM_START( dleaguej ) ROM_END -/* ( YEAR NAME PARENT MACHINE INPUT INIT MONITOR COMPANY FULLNAME */ -GAME( 1988, syvalion, 0, syvalion, syvalion, driver_device, 0, ROT0, "Taito Corporation", "Syvalion (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, syvalionp, syvalion,syvalion, syvalionp,driver_device, 0, ROT0, "Taito Corporation", "Syvalion (World, prototype)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, recordbr, 0, recordbr, recordbr, driver_device, 0, ROT0, "Taito Corporation Japan", "Recordbreaker (World)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, gogold, recordbr, recordbr, gogold, driver_device, 0, ROT0, "Taito Corporation", "Go For The Gold (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, tetristh, tetris, tetristh, tetristh, driver_device, 0, ROT0, "Sega", "Tetris (Japan, Taito H-System)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, dleague, 0, dleague, dleague, driver_device, 0, ROT0, "Taito America Corporation", "Dynamite League (US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, dleaguej, dleague, dleague, dleaguej, driver_device, 0, ROT0, "Taito Corporation", "Dynamite League (Japan)", MACHINE_SUPPORTS_SAVE ) +// YEAR NAME PARENT MACHINE INPUT STATE INIT MONITOR COMPANY FULLNAME FLAGS +GAME( 1988, syvalion, 0, syvalion, syvalion, taitoh_state, 0, ROT0, "Taito Corporation", "Syvalion (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, syvalionp, syvalion, syvalion, syvalionp, taitoh_state, 0, ROT0, "Taito Corporation", "Syvalion (World, prototype)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, recordbr, 0, recordbr, recordbr, taitoh_state, 0, ROT0, "Taito Corporation Japan", "Recordbreaker (World)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, gogold, recordbr, recordbr, gogold, taitoh_state, 0, ROT0, "Taito Corporation", "Go For The Gold (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, tetristh, tetris, tetristh, tetristh, taitoh_state, 0, ROT0, "Sega", "Tetris (Japan, Taito H-System)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, dleague, 0, dleague, dleague, taitoh_state, 0, ROT0, "Taito America Corporation", "Dynamite League (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, dleaguej, dleague, dleague, dleaguej, taitoh_state, 0, ROT0, "Taito Corporation", "Dynamite League (Japan)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/taito_l.cpp b/src/mame/drivers/taito_l.cpp index 7eaded24948..8b369f0d726 100644 --- a/src/mame/drivers/taito_l.cpp +++ b/src/mame/drivers/taito_l.cpp @@ -1695,7 +1695,7 @@ WRITE8_MEMBER(fhawk_state::portA_w) } -static MACHINE_CONFIG_START( fhawk, fhawk_state ) +static MACHINE_CONFIG_START( fhawk ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_13_33056MHz/2) /* verified freq on pin122 of TC0090LVC cpu */ @@ -1748,7 +1748,7 @@ static MACHINE_CONFIG_START( fhawk, fhawk_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_DERIVED_CLASS( champwr, fhawk, champwr_state ) +static MACHINE_CONFIG_DERIVED( champwr, fhawk ) /* basic machine hardware */ MCFG_CPU_MODIFY("maincpu") @@ -1768,13 +1768,13 @@ static MACHINE_CONFIG_DERIVED_CLASS( champwr, fhawk, champwr_state ) MCFG_SOUND_ADD("msm", MSM5205, XTAL_384kHz) MCFG_MSM5205_VCLK_CB(WRITELINE(champwr_state, msm5205_vck)) /* VCK function */ - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S48_4B) /* 8 kHz */ + MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) /* 8 kHz */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) MACHINE_CONFIG_END -static MACHINE_CONFIG_DERIVED_CLASS( raimais, fhawk, taitol_2cpu_state ) +static MACHINE_CONFIG_DERIVED( raimais, fhawk ) /* basic machine hardware */ MCFG_CPU_MODIFY("maincpu") @@ -1795,7 +1795,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( raimais, fhawk, taitol_2cpu_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( kurikint, taitol_2cpu_state ) +static MACHINE_CONFIG_START( kurikint ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_13_33056MHz/2) /* verified freq on pin122 of TC0090LVC cpu */ @@ -1839,7 +1839,7 @@ static MACHINE_CONFIG_START( kurikint, taitol_2cpu_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( plotting, taitol_1cpu_state ) +static MACHINE_CONFIG_START( plotting ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_13_33056MHz/2) /* verified freq on pin122 of TC0090LVC cpu */ @@ -1899,7 +1899,7 @@ static MACHINE_CONFIG_DERIVED( puzznici, plotting ) MACHINE_CONFIG_END -static MACHINE_CONFIG_DERIVED_CLASS( horshoes, plotting, horshoes_state ) +static MACHINE_CONFIG_DERIVED( horshoes, plotting ) /* basic machine hardware */ MCFG_CPU_MODIFY("maincpu") @@ -1928,7 +1928,7 @@ static MACHINE_CONFIG_DERIVED( cachat, plotting ) MCFG_MACHINE_RESET_OVERRIDE(taitol_1cpu_state, cachat) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( evilston, taitol_2cpu_state ) +static MACHINE_CONFIG_START( evilston ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_13_33056MHz/2) /* not verified */ @@ -2550,48 +2550,48 @@ DRIVER_INIT_MEMBER(taitol_1cpu_state, plottinga) } -GAME( 1988, raimais, 0, raimais, raimais, driver_device, 0, ROT0, "Taito Corporation Japan", "Raimais (World)", 0 ) -GAME( 1988, raimaisj, raimais, raimais, raimaisj, driver_device, 0, ROT0, "Taito Corporation", "Raimais (Japan)", 0 ) -GAME( 1988, raimaisjo, raimais, raimais, raimaisj, driver_device, 0, ROT0, "Taito Corporation", "Raimais (Japan, first revision)", 0 ) +GAME( 1988, raimais, 0, raimais, raimais, taitol_2cpu_state, 0, ROT0, "Taito Corporation Japan", "Raimais (World)", 0 ) +GAME( 1988, raimaisj, raimais, raimais, raimaisj, taitol_2cpu_state, 0, ROT0, "Taito Corporation", "Raimais (Japan)", 0 ) +GAME( 1988, raimaisjo, raimais, raimais, raimaisj, taitol_2cpu_state, 0, ROT0, "Taito Corporation", "Raimais (Japan, first revision)", 0 ) -GAME( 1988, fhawk, 0, fhawk, fhawk, driver_device, 0, ROT270, "Taito Corporation Japan", "Fighting Hawk (World)", 0 ) -GAME( 1988, fhawkj, fhawk, fhawk, fhawkj, driver_device, 0, ROT270, "Taito Corporation", "Fighting Hawk (Japan)", 0 ) +GAME( 1988, fhawk, 0, fhawk, fhawk, fhawk_state, 0, ROT270, "Taito Corporation Japan", "Fighting Hawk (World)", 0 ) +GAME( 1988, fhawkj, fhawk, fhawk, fhawkj, fhawk_state, 0, ROT270, "Taito Corporation", "Fighting Hawk (Japan)", 0 ) -GAME( 1989, champwr, 0, champwr, champwr, driver_device, 0, ROT0, "Taito Corporation Japan", "Champion Wrestler (World)", MACHINE_IMPERFECT_SOUND ) -GAME( 1989, champwru, champwr, champwr, champwru, driver_device, 0, ROT0, "Taito America Corporation", "Champion Wrestler (US)", MACHINE_IMPERFECT_SOUND ) -GAME( 1989, champwrj, champwr, champwr, champwrj, driver_device, 0, ROT0, "Taito Corporation", "Champion Wrestler (Japan)", MACHINE_IMPERFECT_SOUND ) +GAME( 1989, champwr, 0, champwr, champwr, champwr_state, 0, ROT0, "Taito Corporation Japan", "Champion Wrestler (World)", MACHINE_IMPERFECT_SOUND ) +GAME( 1989, champwru, champwr, champwr, champwru, champwr_state, 0, ROT0, "Taito America Corporation", "Champion Wrestler (US)", MACHINE_IMPERFECT_SOUND ) +GAME( 1989, champwrj, champwr, champwr, champwrj, champwr_state, 0, ROT0, "Taito Corporation", "Champion Wrestler (Japan)", MACHINE_IMPERFECT_SOUND ) -GAME( 1988, kurikint, 0, kurikint, kurikint, driver_device, 0, ROT0, "Taito Corporation Japan", "Kuri Kinton (World)", 0 ) -GAME( 1988, kurikintu, kurikint, kurikint, kurikintj, driver_device, 0, ROT0, "Taito America Corporation", "Kuri Kinton (US)", 0 ) -GAME( 1988, kurikintj, kurikint, kurikint, kurikintj, driver_device, 0, ROT0, "Taito Corporation", "Kuri Kinton (Japan)", 0 ) -GAME( 1988, kurikinta, kurikint, kurikint, kurikinta, driver_device, 0, ROT0, "Taito Corporation Japan", "Kuri Kinton (World, prototype?)", 0 ) +GAME( 1988, kurikint, 0, kurikint, kurikint, taitol_2cpu_state, 0, ROT0, "Taito Corporation Japan", "Kuri Kinton (World)", 0 ) +GAME( 1988, kurikintu, kurikint, kurikint, kurikintj, taitol_2cpu_state, 0, ROT0, "Taito America Corporation", "Kuri Kinton (US)", 0 ) +GAME( 1988, kurikintj, kurikint, kurikint, kurikintj, taitol_2cpu_state, 0, ROT0, "Taito Corporation", "Kuri Kinton (Japan)", 0 ) +GAME( 1988, kurikinta, kurikint, kurikint, kurikinta, taitol_2cpu_state, 0, ROT0, "Taito Corporation Japan", "Kuri Kinton (World, prototype?)", 0 ) -GAME( 1989, plotting, 0, plotting, plotting, driver_device, 0, ROT0, "Taito Corporation Japan", "Plotting (World set 1)", 0 ) +GAME( 1989, plotting, 0, plotting, plotting, taitol_1cpu_state, 0, ROT0, "Taito Corporation Japan", "Plotting (World set 1)", 0 ) GAME( 1989, plottinga, plotting, plotting, plotting, taitol_1cpu_state, plottinga, ROT0, "Taito Corporation Japan", "Plotting (World set 2, protected)", 0 ) -GAME( 1989, plottingb, plotting, plotting, plotting, driver_device, 0, ROT0, "Taito Corporation Japan", "Plotting (World set 3, earliest version)", 0 ) -GAME( 1989, plottingu, plotting, plotting, plottingu, driver_device, 0, ROT0, "Taito America Corporation", "Plotting (US)", 0 ) -GAME( 1989, flipull, plotting, plotting, plotting, driver_device, 0, ROT0, "Taito Corporation", "Flipull (Japan)", 0 ) +GAME( 1989, plottingb, plotting, plotting, plotting, taitol_1cpu_state, 0, ROT0, "Taito Corporation Japan", "Plotting (World set 3, earliest version)", 0 ) +GAME( 1989, plottingu, plotting, plotting, plottingu, taitol_1cpu_state, 0, ROT0, "Taito America Corporation", "Plotting (US)", 0 ) +GAME( 1989, flipull, plotting, plotting, plotting, taitol_1cpu_state, 0, ROT0, "Taito Corporation", "Flipull (Japan)", 0 ) -GAME( 1989, puzznic, 0, puzznic, puzznic, driver_device, 0, ROT0, "Taito Corporation Japan", "Puzznic (World)", 0 ) -GAME( 1989, puzznicu, puzznic, puzznic, puzznic, driver_device, 0, ROT0, "Taito America Corporation", "Puzznic (US)", 0 ) -GAME( 1989, puzznicj, puzznic, puzznic, puzznic, driver_device, 0, ROT0, "Taito Corporation", "Puzznic (Japan)", 0 ) -GAME( 1989, puzznici, puzznic, puzznici, puzznic, driver_device, 0, ROT0, "bootleg", "Puzznic (Italian bootleg)", 0 ) -GAME( 1989, puzznicb, puzznic, puzznici, puzznic, driver_device, 0, ROT0, "bootleg", "Puzznic (bootleg, set 1)", 0 ) -GAME( 1989, puzznicba, puzznic, puzznici, puzznic, driver_device, 0, ROT0, "bootleg", "Puzznic (bootleg, set 2)", 0 ) +GAME( 1989, puzznic, 0, puzznic, puzznic, taitol_1cpu_state, 0, ROT0, "Taito Corporation Japan", "Puzznic (World)", 0 ) +GAME( 1989, puzznicu, puzznic, puzznic, puzznic, taitol_1cpu_state, 0, ROT0, "Taito America Corporation", "Puzznic (US)", 0 ) +GAME( 1989, puzznicj, puzznic, puzznic, puzznic, taitol_1cpu_state, 0, ROT0, "Taito Corporation", "Puzznic (Japan)", 0 ) +GAME( 1989, puzznici, puzznic, puzznici, puzznic, taitol_1cpu_state, 0, ROT0, "bootleg", "Puzznic (Italian bootleg)", 0 ) +GAME( 1989, puzznicb, puzznic, puzznici, puzznic, taitol_1cpu_state, 0, ROT0, "bootleg", "Puzznic (bootleg, set 1)", 0 ) +GAME( 1989, puzznicba, puzznic, puzznici, puzznic, taitol_1cpu_state, 0, ROT0, "bootleg", "Puzznic (bootleg, set 2)", 0 ) -GAME( 1990, horshoes, 0, horshoes, horshoes, driver_device, 0, ROT270, "Taito America Corporation", "American Horseshoes (US)", 0 ) +GAME( 1990, horshoes, 0, horshoes, horshoes, horshoes_state, 0, ROT270, "Taito America Corporation", "American Horseshoes (US)", 0 ) -GAME( 1990, palamed, 0, palamed, palamed, driver_device, 0, ROT0, "Taito Corporation", "Palamedes (Japan)", 0 ) +GAME( 1990, palamed, 0, palamed, palamed, taitol_1cpu_state, 0, ROT0, "Taito Corporation", "Palamedes (Japan)", 0 ) -GAME( 1993, cachat, 0, cachat, cachat, driver_device, 0, ROT0, "Taito Corporation", "Cachat (Japan)", 0 ) -GAME( 1993, tubeit, cachat, cachat, tubeit, driver_device, 0, ROT0, "bootleg", "Tube-It", 0 ) // No (c) message +GAME( 1993, cachat, 0, cachat, cachat, taitol_1cpu_state, 0, ROT0, "Taito Corporation", "Cachat (Japan)", 0 ) +GAME( 1993, tubeit, cachat, cachat, tubeit, taitol_1cpu_state, 0, ROT0, "bootleg", "Tube-It", 0 ) // No (c) message -GAME( 199?, cubybop, 0, cachat, cubybop, driver_device, 0, ROT0, "Hot-B", "Cuby Bop (location test)", 0 ) // No (c) message, but Hot-B company logo in tile gfx +GAME( 199?, cubybop, 0, cachat, cubybop, taitol_1cpu_state, 0, ROT0, "Hot-B", "Cuby Bop (location test)", 0 ) // No (c) message, but Hot-B company logo in tile gfx -GAME( 1992, plgirls, 0, cachat, plgirls, driver_device, 0, ROT270, "Hot-B", "Play Girls", 0 ) -GAME( 1992, lagirl, plgirls, cachat, plgirls, driver_device, 0, ROT270, "bootleg", "LA Girl", 0 ) // bootleg hardware with changed title & backgrounds +GAME( 1992, plgirls, 0, cachat, plgirls, taitol_1cpu_state, 0, ROT270, "Hot-B", "Play Girls", 0 ) +GAME( 1992, lagirl, plgirls, cachat, plgirls, taitol_1cpu_state, 0, ROT270, "bootleg", "LA Girl", 0 ) // bootleg hardware with changed title & backgrounds -GAME( 1993, plgirls2, 0, cachat, plgirls2, driver_device, 0, ROT270, "Hot-B", "Play Girls 2", 0 ) -GAME( 1993, plgirls2b, plgirls2, cachat, plgirls2, driver_device, 0, ROT270, "bootleg", "Play Girls 2 (bootleg)", MACHINE_IMPERFECT_GRAPHICS ) // bootleg hardware (regular Z80 etc. instead of TC0090LVC, but acts almost the same - scroll offset problems) +GAME( 1993, plgirls2, 0, cachat, plgirls2, taitol_1cpu_state, 0, ROT270, "Hot-B", "Play Girls 2", 0 ) +GAME( 1993, plgirls2b, plgirls2, cachat, plgirls2, taitol_1cpu_state, 0, ROT270, "bootleg", "Play Girls 2 (bootleg)", MACHINE_IMPERFECT_GRAPHICS ) // bootleg hardware (regular Z80 etc. instead of TC0090LVC, but acts almost the same - scroll offset problems) -GAME( 1990, evilston, 0, evilston, evilston, driver_device, 0, ROT270, "Spacy Industrial, Ltd.", "Evil Stone", MACHINE_IMPERFECT_SOUND ) // not Taito PCB, just uses TC0090LVC +GAME( 1990, evilston, 0, evilston, evilston, taitol_2cpu_state, 0, ROT270, "Spacy Industrial, Ltd.", "Evil Stone", MACHINE_IMPERFECT_SOUND ) // not Taito PCB, just uses TC0090LVC diff --git a/src/mame/drivers/taito_o.cpp b/src/mame/drivers/taito_o.cpp index 4ad121ed8ef..08c9b852ba7 100644 --- a/src/mame/drivers/taito_o.cpp +++ b/src/mame/drivers/taito_o.cpp @@ -232,7 +232,7 @@ void taitoo_state::machine_start() { } -static MACHINE_CONFIG_START( parentj, taitoo_state ) +static MACHINE_CONFIG_START( parentj ) MCFG_CPU_ADD("maincpu", M68000,12000000 ) /*?? MHz */ MCFG_CPU_PROGRAM_MAP(parentj_map) @@ -289,4 +289,4 @@ ROM_START( parentj ) ROM_LOAD( "ampal22v10a-0233.c42", 0x000, 0x2dd, CRC(0c030a81) SHA1(0f8198df2cb046683d2db9ac8e609cdff53083ed) ) ROM_END -GAME( 1989, parentj, 0, parentj, parentj, driver_device, 0, ROT0, "Taito", "Parent Jack", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +GAME( 1989, parentj, 0, parentj, parentj, taitoo_state, 0, ROT0, "Taito", "Parent Jack", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/taito_x.cpp b/src/mame/drivers/taito_x.cpp index 0ebaead9075..6f930806874 100644 --- a/src/mame/drivers/taito_x.cpp +++ b/src/mame/drivers/taito_x.cpp @@ -793,7 +793,7 @@ MACHINE_START_MEMBER(taitox_state,superman) /**************************************************************************/ -static MACHINE_CONFIG_START( superman, taitox_state ) +static MACHINE_CONFIG_START( superman ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz/2) /* verified on pcb */ @@ -840,7 +840,7 @@ static MACHINE_CONFIG_START( superman, taitox_state ) MCFG_TC0140SYT_SLAVE_CPU("audiocpu") MACHINE_CONFIG_END -static MACHINE_CONFIG_START( daisenpu, taitox_state ) +static MACHINE_CONFIG_START( daisenpu ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz/2) /* verified on pcb */ @@ -885,7 +885,7 @@ static MACHINE_CONFIG_START( daisenpu, taitox_state ) MCFG_TC0140SYT_SLAVE_CPU("audiocpu") MACHINE_CONFIG_END -static MACHINE_CONFIG_START( gigandes, taitox_state ) +static MACHINE_CONFIG_START( gigandes ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 8000000) /* 8 MHz? */ @@ -932,7 +932,7 @@ static MACHINE_CONFIG_START( gigandes, taitox_state ) MCFG_TC0140SYT_SLAVE_CPU("audiocpu") MACHINE_CONFIG_END -static MACHINE_CONFIG_START( ballbros, taitox_state ) +static MACHINE_CONFIG_START( ballbros ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 8000000) /* 8 MHz? */ @@ -1251,13 +1251,13 @@ DRIVER_INIT_MEMBER(taitox_state,kyustrkr) } -GAME( 1988, superman, 0, superman, superman, driver_device, 0, ROT0, "Taito Corporation", "Superman (World)", 0 ) -GAME( 1988, supermanu, superman, superman, supermanu, driver_device, 0, ROT0, "Taito Corporation", "Superman (US)", 0 ) -GAME( 1988, supermanj, superman, superman, supermanj, driver_device, 0, ROT0, "Taito Corporation", "Superman (Japan)", 0 ) -GAME( 1989, twinhawk, 0, daisenpu, twinhawk, driver_device, 0, ROT270, "Taito Corporation Japan", "Twin Hawk (World)", 0 ) -GAME( 1989, twinhawku, twinhawk, daisenpu, twinhawku, driver_device, 0, ROT270, "Taito America Corporation", "Twin Hawk (US)", 0 ) -GAME( 1989, daisenpu, twinhawk, daisenpu, daisenpu, driver_device, 0, ROT270, "Taito Corporation", "Daisenpu (Japan)", 0 ) -GAME( 1989, gigandes, 0, gigandes, gigandes, driver_device, 0, ROT0, "East Technology", "Gigandes", 0 ) -GAME( 1989, gigandesa, gigandes, gigandes, gigandes, driver_device, 0, ROT0, "East Technology", "Gigandes (earlier)", 0 ) -GAME( 1989, kyustrkr, 0, ballbros, kyustrkr, taitox_state, kyustrkr, ROT180, "East Technology", "Last Striker / Kyuukyoku no Striker", 0 ) -GAME( 1992, ballbros, 0, ballbros, ballbros, driver_device, 0, ROT0, "East Technology", "Balloon Brothers", 0 ) +GAME( 1988, superman, 0, superman, superman, taitox_state, 0, ROT0, "Taito Corporation", "Superman (World)", 0 ) +GAME( 1988, supermanu, superman, superman, supermanu, taitox_state, 0, ROT0, "Taito Corporation", "Superman (US)", 0 ) +GAME( 1988, supermanj, superman, superman, supermanj, taitox_state, 0, ROT0, "Taito Corporation", "Superman (Japan)", 0 ) +GAME( 1989, twinhawk, 0, daisenpu, twinhawk, taitox_state, 0, ROT270, "Taito Corporation Japan", "Twin Hawk (World)", 0 ) +GAME( 1989, twinhawku, twinhawk, daisenpu, twinhawku, taitox_state, 0, ROT270, "Taito America Corporation", "Twin Hawk (US)", 0 ) +GAME( 1989, daisenpu, twinhawk, daisenpu, daisenpu, taitox_state, 0, ROT270, "Taito Corporation", "Daisenpu (Japan)", 0 ) +GAME( 1989, gigandes, 0, gigandes, gigandes, taitox_state, 0, ROT0, "East Technology", "Gigandes", 0 ) +GAME( 1989, gigandesa, gigandes, gigandes, gigandes, taitox_state, 0, ROT0, "East Technology", "Gigandes (earlier)", 0 ) +GAME( 1989, kyustrkr, 0, ballbros, kyustrkr, taitox_state, kyustrkr, ROT180, "East Technology", "Last Striker / Kyuukyoku no Striker", 0 ) +GAME( 1992, ballbros, 0, ballbros, ballbros, taitox_state, 0, ROT0, "East Technology", "Balloon Brothers", 0 ) diff --git a/src/mame/drivers/taito_z.cpp b/src/mame/drivers/taito_z.cpp index 3b60793109f..0119eff21d3 100644 --- a/src/mame/drivers/taito_z.cpp +++ b/src/mame/drivers/taito_z.cpp @@ -2959,7 +2959,7 @@ MACHINE_RESET_MEMBER(taitoz_state,taitoz) /* Contcirc vis area seems narrower than the other games... */ -static MACHINE_CONFIG_START( contcirc, taitoz_state ) +static MACHINE_CONFIG_START( contcirc ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 12000000) /* 12 MHz ??? */ @@ -3037,7 +3037,7 @@ static MACHINE_CONFIG_START( contcirc, taitoz_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( chasehq, taitoz_state ) +static MACHINE_CONFIG_START( chasehq ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 12000000) /* 12 MHz ??? */ @@ -3115,7 +3115,7 @@ static MACHINE_CONFIG_START( chasehq, taitoz_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( enforce, taitoz_state ) +static MACHINE_CONFIG_START( enforce ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 12000000) /* 12 MHz ??? */ @@ -3194,7 +3194,7 @@ static MACHINE_CONFIG_START( enforce, taitoz_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( bshark, taitoz_state ) +static MACHINE_CONFIG_START( bshark ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 12000000) /* 12 MHz ??? */ @@ -3272,7 +3272,7 @@ static MACHINE_CONFIG_DERIVED( bsharkjjs, bshark ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( sci, taitoz_state ) +static MACHINE_CONFIG_START( sci ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 12000000) /* 12 MHz ??? */ @@ -3348,7 +3348,7 @@ static MACHINE_CONFIG_START( sci, taitoz_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( nightstr, taitoz_state ) +static MACHINE_CONFIG_START( nightstr ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 12000000) /* 12 MHz ??? */ @@ -3428,7 +3428,7 @@ static MACHINE_CONFIG_START( nightstr, taitoz_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( aquajack, taitoz_state ) +static MACHINE_CONFIG_START( aquajack ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 12000000) /* 12 MHz ??? */ @@ -3507,7 +3507,7 @@ static MACHINE_CONFIG_START( aquajack, taitoz_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( spacegun, taitoz_state ) +static MACHINE_CONFIG_START( spacegun ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 16000000) /* 16 MHz ??? */ @@ -3577,7 +3577,7 @@ static MACHINE_CONFIG_START( spacegun, taitoz_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( dblaxle, taitoz_state ) +static MACHINE_CONFIG_START( dblaxle ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_32MHz/2) @@ -3653,7 +3653,7 @@ static MACHINE_CONFIG_START( dblaxle, taitoz_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( racingb, taitoz_state ) +static MACHINE_CONFIG_START( racingb ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_32MHz/2) @@ -5373,46 +5373,46 @@ DRIVER_INIT_MEMBER(taitoz_state,bshark) -GAMEL(1987, contcirc, 0, contcirc, contcirc, taitoz_state, taitoz, ROT0, "Taito Corporation Japan", "Continental Circus (World)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE, layout_contcirc ) -GAMEL(1987, contcircu, contcirc, contcirc, contcrcu, taitoz_state, taitoz, ROT0, "Taito America Corporation", "Continental Circus (US set 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE, layout_contcirc ) -GAMEL(1987, contcircua, contcirc, contcirc, contcrcj, taitoz_state, taitoz, ROT0, "Taito America Corporation", "Continental Circus (US set 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE, layout_contcirc ) -GAMEL(1987, contcircj , contcirc, contcirc, contcrcj, taitoz_state, taitoz, ROT0, "Taito Corporation", "Continental Circus (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE, layout_contcirc ) +GAMEL(1987, contcirc, 0, contcirc, contcirc, taitoz_state, taitoz, ROT0, "Taito Corporation Japan", "Continental Circus (World)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE, layout_contcirc ) +GAMEL(1987, contcircu, contcirc, contcirc, contcrcu, taitoz_state, taitoz, ROT0, "Taito America Corporation", "Continental Circus (US set 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE, layout_contcirc ) +GAMEL(1987, contcircua, contcirc, contcirc, contcrcj, taitoz_state, taitoz, ROT0, "Taito America Corporation", "Continental Circus (US set 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE, layout_contcirc ) +GAMEL(1987, contcircj , contcirc, contcirc, contcrcj, taitoz_state, taitoz, ROT0, "Taito Corporation", "Continental Circus (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE, layout_contcirc ) -GAMEL(1988, chasehq, 0, chasehq, chasehq, taitoz_state, taitoz, ROT0, "Taito Corporation Japan", "Chase H.Q. (World)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE, layout_contcirc ) -GAMEL(1988, chasehqj, chasehq, chasehq, chasehqj, taitoz_state, taitoz, ROT0, "Taito Corporation", "Chase H.Q. (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE, layout_contcirc ) -GAMEL(1988, chasehqju, chasehq, chasehq, chasehq, taitoz_state, taitoz, ROT0, "Taito Corporation", "Chase H.Q. (Japan, upright?)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE, layout_contcirc ) // same code rev as Chase H.Q. (World) -GAMEL(1988, chasehqu, chasehq, chasehq, chasehq, taitoz_state, taitoz, ROT0, "Taito America Corporation", "Chase H.Q. (US)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE, layout_contcirc ) +GAMEL(1988, chasehq, 0, chasehq, chasehq, taitoz_state, taitoz, ROT0, "Taito Corporation Japan", "Chase H.Q. (World)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE, layout_contcirc ) +GAMEL(1988, chasehqj, chasehq, chasehq, chasehqj, taitoz_state, taitoz, ROT0, "Taito Corporation", "Chase H.Q. (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE, layout_contcirc ) +GAMEL(1988, chasehqju, chasehq, chasehq, chasehq, taitoz_state, taitoz, ROT0, "Taito Corporation", "Chase H.Q. (Japan, upright?)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE, layout_contcirc ) // same code rev as Chase H.Q. (World) +GAMEL(1988, chasehqu, chasehq, chasehq, chasehq, taitoz_state, taitoz, ROT0, "Taito America Corporation", "Chase H.Q. (US)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE, layout_contcirc ) -GAME( 1988, enforce, 0, enforce, enforce, taitoz_state, taitoz, ROT0, "Taito Corporation Japan", "Enforce (World)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1988, enforcej, enforce, enforce, enforcej, taitoz_state, taitoz, ROT0, "Taito Corporation", "Enforce (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1988, enforceja, enforce, enforce, enforceja,taitoz_state, taitoz, ROT0, "Taito Corporation", "Enforce (Japan, Analog Controls)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1988, enforce, 0, enforce, enforce, taitoz_state, taitoz, ROT0, "Taito Corporation Japan", "Enforce (World)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1988, enforcej, enforce, enforce, enforcej, taitoz_state, taitoz, ROT0, "Taito Corporation", "Enforce (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1988, enforceja, enforce, enforce, enforceja, taitoz_state, taitoz, ROT0, "Taito Corporation", "Enforce (Japan, Analog Controls)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1989, bshark, 0, bshark, bshark, taitoz_state, bshark, ORIENTATION_FLIP_X, "Taito Corporation Japan", "Battle Shark (World)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1989, bsharku, bshark, bshark, bsharku, taitoz_state, bshark, ORIENTATION_FLIP_X, "Taito America Corporation", "Battle Shark (US)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1989, bsharkj, bshark, bshark, bsharkj, taitoz_state, bshark, ORIENTATION_FLIP_X, "Taito Corporation", "Battle Shark (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1989, bsharkjjs, bshark, bsharkjjs,bsharkjjs, taitoz_state,bshark, ORIENTATION_FLIP_X, "Taito Corporation", "Battle Shark (Japan, Joystick)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1989, bshark, 0, bshark, bshark, taitoz_state, bshark, ORIENTATION_FLIP_X, "Taito Corporation Japan", "Battle Shark (World)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1989, bsharku, bshark, bshark, bsharku, taitoz_state, bshark, ORIENTATION_FLIP_X, "Taito America Corporation", "Battle Shark (US)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1989, bsharkj, bshark, bshark, bsharkj, taitoz_state, bshark, ORIENTATION_FLIP_X, "Taito Corporation", "Battle Shark (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1989, bsharkjjs, bshark, bsharkjjs, bsharkjjs, taitoz_state, bshark, ORIENTATION_FLIP_X, "Taito Corporation", "Battle Shark (Japan, Joystick)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAMEL(1989, sci, 0, sci, sci, taitoz_state, taitoz, ROT0, "Taito Corporation Japan", "Special Criminal Investigation (World set 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE, layout_contcirc ) -GAMEL(1989, scia, sci, sci, sci, taitoz_state, taitoz, ROT0, "Taito Corporation Japan", "Special Criminal Investigation (World set 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE, layout_contcirc ) -GAMEL(1989, scij, sci, sci, scij, taitoz_state, taitoz, ROT0, "Taito Corporation", "Special Criminal Investigation (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE, layout_contcirc ) -GAMEL(1989, sciu, sci, sci, sciu, taitoz_state, taitoz, ROT0, "Taito America Corporation", "Special Criminal Investigation (US)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE, layout_contcirc ) -GAMEL(1991, scin, sci, sci, sci, taitoz_state, taitoz, ROT0, "hack (Negro Torino)", "Super Special Criminal Investigation (Negro Torino hack)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE, layout_contcirc ) +GAMEL(1989, sci, 0, sci, sci, taitoz_state, taitoz, ROT0, "Taito Corporation Japan", "Special Criminal Investigation (World set 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE, layout_contcirc ) +GAMEL(1989, scia, sci, sci, sci, taitoz_state, taitoz, ROT0, "Taito Corporation Japan", "Special Criminal Investigation (World set 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE, layout_contcirc ) +GAMEL(1989, scij, sci, sci, scij, taitoz_state, taitoz, ROT0, "Taito Corporation", "Special Criminal Investigation (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE, layout_contcirc ) +GAMEL(1989, sciu, sci, sci, sciu, taitoz_state, taitoz, ROT0, "Taito America Corporation", "Special Criminal Investigation (US)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE, layout_contcirc ) +GAMEL(1991, scin, sci, sci, sci, taitoz_state, taitoz, ROT0, "hack (Negro Torino)", "Super Special Criminal Investigation (Negro Torino hack)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE, layout_contcirc ) -GAME( 1989, nightstr, 0, nightstr, nightstr, taitoz_state, taitoz, ROT0, "Taito Corporation Japan", "Night Striker (World)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1989, nightstrj, nightstr, nightstr, nghtstrj, taitoz_state, taitoz, ROT0, "Taito Corporation", "Night Striker (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1989, nightstru, nightstr, nightstr, nghtstru, taitoz_state, taitoz, ROT0, "Taito America Corporation", "Night Striker (US)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1989, nightstr, 0, nightstr, nightstr, taitoz_state, taitoz, ROT0, "Taito Corporation Japan", "Night Striker (World)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1989, nightstrj, nightstr, nightstr, nghtstrj, taitoz_state, taitoz, ROT0, "Taito Corporation", "Night Striker (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1989, nightstru, nightstr, nightstr, nghtstru, taitoz_state, taitoz, ROT0, "Taito America Corporation", "Night Striker (US)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1990, aquajack, 0, aquajack, aquajack, taitoz_state, taitoz, ROT0, "Taito Corporation Japan", "Aqua Jack (World)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1990, aquajacku, aquajack, aquajack, aquajack, taitoz_state, taitoz, ROT0, "Taito America Corporation", "Aqua Jack (US)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1990, aquajackj, aquajack, aquajack, aquajckj, taitoz_state, taitoz, ROT0, "Taito Corporation", "Aqua Jack (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1990, aquajack, 0, aquajack, aquajack, taitoz_state, taitoz, ROT0, "Taito Corporation Japan", "Aqua Jack (World)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1990, aquajacku, aquajack, aquajack, aquajack, taitoz_state, taitoz, ROT0, "Taito America Corporation", "Aqua Jack (US)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1990, aquajackj, aquajack, aquajack, aquajckj, taitoz_state, taitoz, ROT0, "Taito Corporation", "Aqua Jack (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1990, spacegun, 0, spacegun, spacegun, taitoz_state, bshark, ORIENTATION_FLIP_X, "Taito Corporation Japan", "Space Gun (World)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, spacegunj, spacegun, spacegun, spacegnj, taitoz_state, bshark, ORIENTATION_FLIP_X, "Taito Corporation", "Space Gun (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, spacegunu, spacegun, spacegun, spacegnu, taitoz_state, bshark, ORIENTATION_FLIP_X, "Taito America Corporation", "Space Gun (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, spacegun, 0, spacegun, spacegun, taitoz_state, bshark, ORIENTATION_FLIP_X, "Taito Corporation Japan", "Space Gun (World)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, spacegunj, spacegun, spacegun, spacegnj, taitoz_state, bshark, ORIENTATION_FLIP_X, "Taito Corporation", "Space Gun (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, spacegunu, spacegun, spacegun, spacegnu, taitoz_state, bshark, ORIENTATION_FLIP_X, "Taito America Corporation", "Space Gun (US)", MACHINE_SUPPORTS_SAVE ) -GAMEL(1991, dblaxle, 0, dblaxle, dblaxle, taitoz_state, taitoz, ROT0, "Taito America Corporation", "Double Axle (US)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE, layout_dblaxle ) -GAMEL(1991, dblaxleu, dblaxle, dblaxle, dblaxle, taitoz_state, taitoz, ROT0, "Taito America Corporation", "Double Axle (US, earlier)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE, layout_dblaxle ) -GAMEL(1991, pwheelsj, dblaxle, dblaxle, pwheelsj, taitoz_state, taitoz, ROT0, "Taito Corporation", "Power Wheels (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE, layout_dblaxle ) +GAMEL(1991, dblaxle, 0, dblaxle, dblaxle, taitoz_state, taitoz, ROT0, "Taito America Corporation", "Double Axle (US)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE, layout_dblaxle ) +GAMEL(1991, dblaxleu, dblaxle, dblaxle, dblaxle, taitoz_state, taitoz, ROT0, "Taito America Corporation", "Double Axle (US, earlier)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE, layout_dblaxle ) +GAMEL(1991, pwheelsj, dblaxle, dblaxle, pwheelsj, taitoz_state, taitoz, ROT0, "Taito Corporation", "Power Wheels (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE, layout_dblaxle ) -GAMEL(1991, racingb, 0, racingb, racingb, taitoz_state, taitoz, ROT0, "Taito Corporation Japan", "Racing Beat (World)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE, layout_dblaxle ) -GAMEL(1991, racingbj, racingb, racingb, racingb, taitoz_state, taitoz, ROT0, "Taito Corporation", "Racing Beat (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE, layout_dblaxle ) +GAMEL(1991, racingb, 0, racingb, racingb, taitoz_state, taitoz, ROT0, "Taito Corporation Japan", "Racing Beat (World)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE, layout_dblaxle ) +GAMEL(1991, racingbj, racingb, racingb, racingb, taitoz_state, taitoz, ROT0, "Taito Corporation", "Racing Beat (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE, layout_dblaxle ) diff --git a/src/mame/drivers/taitoair.cpp b/src/mame/drivers/taitoair.cpp index 708b08ecf81..60f0ffcf0aa 100644 --- a/src/mame/drivers/taitoair.cpp +++ b/src/mame/drivers/taitoair.cpp @@ -711,7 +711,7 @@ void taitoair_state::machine_reset() } } -static MACHINE_CONFIG_START( airsys, taitoair_state ) +static MACHINE_CONFIG_START( airsys ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_12MHz) // MC68000P12 @@ -992,8 +992,8 @@ ROM_START( ainfernoj ) ROM_END -/* ( YEAR NAME PARENT MACHINE INPUT INIT MONITOR COMPANY FULLNAME */ -GAME( 1988, topland, 0, airsys, topland, driver_device, 0, ROT0, "Taito Corporation Japan", "Top Landing (World)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1988, toplandj, topland, airsys, topland, driver_device, 0, ROT0, "Taito Corporation", "Top Landing (Japan)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1990, ainferno, 0, airsys, ainferno, driver_device, 0, ROT0, "Taito America Corporation", "Air Inferno (US)", MACHINE_NOT_WORKING ) -GAME( 1990, ainfernoj,ainferno, airsys, ainferno, driver_device, 0, ROT0, "Taito Corporation Japan", "Air Inferno (Japan)", MACHINE_NOT_WORKING ) +// YEAR NAME PARENT MACHINE INPUT STATE INIT MONITOR COMPANY FULLNAME FLAGS +GAME( 1988, topland, 0, airsys, topland, taitoair_state, 0, ROT0, "Taito Corporation Japan", "Top Landing (World)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1988, toplandj, topland, airsys, topland, taitoair_state, 0, ROT0, "Taito Corporation", "Top Landing (Japan)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1990, ainferno, 0, airsys, ainferno, taitoair_state, 0, ROT0, "Taito America Corporation", "Air Inferno (US)", MACHINE_NOT_WORKING ) +GAME( 1990, ainfernoj, ainferno, airsys, ainferno, taitoair_state, 0, ROT0, "Taito Corporation Japan", "Air Inferno (Japan)", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/taitogn.cpp b/src/mame/drivers/taitogn.cpp index 12d18960d51..077264dbd7e 100644 --- a/src/mame/drivers/taitogn.cpp +++ b/src/mame/drivers/taitogn.cpp @@ -686,7 +686,7 @@ SLOT_INTERFACE_START(slot_ataflash) SLOT_INTERFACE("ataflash", ATA_FLASH_PCCARD) SLOT_INTERFACE_END -static MACHINE_CONFIG_START( coh3002t, taitogn_state ) +static MACHINE_CONFIG_START( coh3002t ) /* basic machine hardware */ MCFG_CPU_ADD( "maincpu", CXD8661R, XTAL_100MHz ) @@ -1170,41 +1170,41 @@ ROM_END /* A dummy driver, so that the bios can be debugged, and to serve as */ /* parent for the coh-3002t.353 file, so that we do not have to include */ /* it in every zip file */ -GAME( 1997, coh3002t, 0, coh3002t, coh3002t, driver_device, 0, ROT0, "Taito", "Taito GNET", MACHINE_IS_BIOS_ROOT ) +GAME( 1997, coh3002t, 0, coh3002t, coh3002t, taitogn_state, 0, ROT0, "Taito", "Taito GNET", MACHINE_IS_BIOS_ROOT ) /* Taito */ -GAME( 1998, chaoshea, coh3002t, coh3002t_t1, coh3002t, driver_device, 0, ROT0, "Taito", "Chaos Heat (V2.09O 1998/10/02 17:00)", MACHINE_IMPERFECT_SOUND ) -GAME( 1998, chaosheaj,chaoshea, coh3002t_t1, coh3002t, driver_device, 0, ROT0, "Taito", "Chaos Heat (V2.08J 1998/09/25 17:00)", MACHINE_IMPERFECT_SOUND ) -GAME( 1998, raycris, coh3002t, coh3002t_t1, coh3002t, driver_device, 0, ROT0, "Taito", "Ray Crisis (V2.03J 1998/11/15 15:43)", MACHINE_IMPERFECT_SOUND ) -GAME( 1999, spuzbobl, coh3002t, coh3002t_t2, coh3002t, driver_device, 0, ROT0, "Taito", "Super Puzzle Bobble (V2.05O 1999/2/24 18:00)", MACHINE_IMPERFECT_SOUND ) -GAME( 1999, spuzboblj,spuzbobl, coh3002t_t2, coh3002t, driver_device, 0, ROT0, "Taito", "Super Puzzle Bobble (V2.04J 1999/2/27 02:10)", MACHINE_IMPERFECT_SOUND ) -GAME( 1999, gobyrc, coh3002t, coh3002t_t2, gobyrc, driver_device, 0, ROT0, "Taito", "Go By RC (V2.03O 1999/05/25 13:31)", MACHINE_IMPERFECT_SOUND ) -GAME( 1999, rcdego, gobyrc, coh3002t_t1, gobyrc, driver_device, 0, ROT0, "Taito", "RC De Go (V2.03J 1999/05/22 19:29)", MACHINE_IMPERFECT_SOUND ) -GAME( 1999, flipmaze, coh3002t, coh3002t_t1, coh3002t, driver_device, 0, ROT0, "MOSS / Taito", "Flip Maze (V2.04J 1999/09/02 20:00)", MACHINE_IMPERFECT_SOUND ) -GAME( 2001, shikigam, coh3002t, coh3002t_t1, coh3002t, driver_device, 0, ROT270, "Alfa System / Taito", "Shikigami no Shiro (V2.03J 2001/08/07 18:11)", MACHINE_IMPERFECT_SOUND ) -GAME( 2001, shikigama,coh3002t, coh3002t_t1, coh3002t, driver_device, 0, ROT270, "Alfa System / Taito", "Shikigami no Shiro - internal build (V1.02J 2001/09/27 18:45)", MACHINE_IMPERFECT_SOUND ) -GAME( 2003, sianniv, coh3002t, coh3002t_t1, coh3002t, driver_device, 0, ROT270, "Taito", "Space Invaders Anniversary (V2.02J)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) // IRQ at the wrong time -GAME( 2003, kollon, coh3002t, coh3002t_t1, coh3002t, driver_device, 0, ROT0, "Taito", "Kollon (V2.04JA 2003/11/01 12:00)", MACHINE_IMPERFECT_SOUND ) -GAME( 2003, kollonc, kollon, coh3002t_cf, coh3002t_jp1,driver_device, 0, ROT0, "Taito", "Kollon (V2.04JC 2003/11/01 12:00)", MACHINE_IMPERFECT_SOUND ) +GAME( 1998, chaoshea, coh3002t, coh3002t_t1, coh3002t, taitogn_state, 0, ROT0, "Taito", "Chaos Heat (V2.09O 1998/10/02 17:00)", MACHINE_IMPERFECT_SOUND ) +GAME( 1998, chaosheaj, chaoshea, coh3002t_t1, coh3002t, taitogn_state, 0, ROT0, "Taito", "Chaos Heat (V2.08J 1998/09/25 17:00)", MACHINE_IMPERFECT_SOUND ) +GAME( 1998, raycris, coh3002t, coh3002t_t1, coh3002t, taitogn_state, 0, ROT0, "Taito", "Ray Crisis (V2.03J 1998/11/15 15:43)", MACHINE_IMPERFECT_SOUND ) +GAME( 1999, spuzbobl, coh3002t, coh3002t_t2, coh3002t, taitogn_state, 0, ROT0, "Taito", "Super Puzzle Bobble (V2.05O 1999/2/24 18:00)", MACHINE_IMPERFECT_SOUND ) +GAME( 1999, spuzboblj, spuzbobl, coh3002t_t2, coh3002t, taitogn_state, 0, ROT0, "Taito", "Super Puzzle Bobble (V2.04J 1999/2/27 02:10)", MACHINE_IMPERFECT_SOUND ) +GAME( 1999, gobyrc, coh3002t, coh3002t_t2, gobyrc, taitogn_state, 0, ROT0, "Taito", "Go By RC (V2.03O 1999/05/25 13:31)", MACHINE_IMPERFECT_SOUND ) +GAME( 1999, rcdego, gobyrc, coh3002t_t1, gobyrc, taitogn_state, 0, ROT0, "Taito", "RC De Go (V2.03J 1999/05/22 19:29)", MACHINE_IMPERFECT_SOUND ) +GAME( 1999, flipmaze, coh3002t, coh3002t_t1, coh3002t, taitogn_state, 0, ROT0, "MOSS / Taito", "Flip Maze (V2.04J 1999/09/02 20:00)", MACHINE_IMPERFECT_SOUND ) +GAME( 2001, shikigam, coh3002t, coh3002t_t1, coh3002t, taitogn_state, 0, ROT270, "Alfa System / Taito", "Shikigami no Shiro (V2.03J 2001/08/07 18:11)", MACHINE_IMPERFECT_SOUND ) +GAME( 2001, shikigama, coh3002t, coh3002t_t1, coh3002t, taitogn_state, 0, ROT270, "Alfa System / Taito", "Shikigami no Shiro - internal build (V1.02J 2001/09/27 18:45)", MACHINE_IMPERFECT_SOUND ) +GAME( 2003, sianniv, coh3002t, coh3002t_t1, coh3002t, taitogn_state, 0, ROT270, "Taito", "Space Invaders Anniversary (V2.02J)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) // IRQ at the wrong time +GAME( 2003, kollon, coh3002t, coh3002t_t1, coh3002t, taitogn_state, 0, ROT0, "Taito", "Kollon (V2.04JA 2003/11/01 12:00)", MACHINE_IMPERFECT_SOUND ) +GAME( 2003, kollonc, kollon, coh3002t_cf, coh3002t_jp1, taitogn_state, 0, ROT0, "Taito", "Kollon (V2.04JC 2003/11/01 12:00)", MACHINE_IMPERFECT_SOUND ) /* Success */ -GAME( 1999, otenamih, coh3002t, coh3002t_t1, coh3002t, taitogn_state, coh3002t_nz, ROT0, "Success", "Otenami Haiken (V2.04J 1999/02/01 18:00:00)", 0 ) -GAME( 2000, psyvaria, coh3002t, coh3002t_t1, coh3002t, driver_device, 0, ROT270, "Success", "Psyvariar -Medium Unit- (V2.04J 2000/02/15 11:00)", MACHINE_IMPERFECT_SOUND ) -GAME( 2000, psyvarrv, coh3002t, coh3002t_t1, coh3002t, driver_device, 0, ROT270, "Success", "Psyvariar -Revision- (V2.04J 2000/08/11 22:00)", MACHINE_IMPERFECT_SOUND ) -GAME( 2001, zokuoten, coh3002t, coh3002t_t1, coh3002t, taitogn_state, coh3002t_nz, ROT0, "Success", "Zoku Otenamihaiken (V2.03J 2001/02/16 16:00)", 0 ) // boots the soundcpu without any valid code, causing an infinite NMI loop (currently circumvented) -GAME( 2004, zooo, coh3002t, coh3002t_t1, coh3002t, taitogn_state, coh3002t_nz, ROT0, "Success", "Zooo (V2.01JA 2004/04/13 12:00)", 0 ) -GAME( 2005, otenamhf, coh3002t, coh3002t_cf, coh3002t_jp1,taitogn_state, coh3002t_nz, ROT0, "Success / Warashi", "Otenami Haiken Final (V2.07JC 2005/04/20 15:36)", 0 ) +GAME( 1999, otenamih, coh3002t, coh3002t_t1, coh3002t, taitogn_state, coh3002t_nz, ROT0, "Success", "Otenami Haiken (V2.04J 1999/02/01 18:00:00)", 0 ) +GAME( 2000, psyvaria, coh3002t, coh3002t_t1, coh3002t, taitogn_state, 0, ROT270, "Success", "Psyvariar -Medium Unit- (V2.04J 2000/02/15 11:00)", MACHINE_IMPERFECT_SOUND ) +GAME( 2000, psyvarrv, coh3002t, coh3002t_t1, coh3002t, taitogn_state, 0, ROT270, "Success", "Psyvariar -Revision- (V2.04J 2000/08/11 22:00)", MACHINE_IMPERFECT_SOUND ) +GAME( 2001, zokuoten, coh3002t, coh3002t_t1, coh3002t, taitogn_state, coh3002t_nz, ROT0, "Success", "Zoku Otenamihaiken (V2.03J 2001/02/16 16:00)", 0 ) // boots the soundcpu without any valid code, causing an infinite NMI loop (currently circumvented) +GAME( 2004, zooo, coh3002t, coh3002t_t1, coh3002t, taitogn_state, coh3002t_nz, ROT0, "Success", "Zooo (V2.01JA 2004/04/13 12:00)", 0 ) +GAME( 2005, otenamhf, coh3002t, coh3002t_cf, coh3002t_jp1, taitogn_state, coh3002t_nz, ROT0, "Success / Warashi", "Otenami Haiken Final (V2.07JC 2005/04/20 15:36)", 0 ) /* Takumi */ -GAME( 2001, nightrai, coh3002t, coh3002t_t1, coh3002t, driver_device, 0, ROT0, "Takumi", "Night Raid (V2.03J 2001/02/26 17:00)", MACHINE_IMPERFECT_SOUND ) -GAME( 2001, otenki, coh3002t, coh3002t_t1, coh3002t, driver_device, 0, ROT0, "Takumi", "Otenki Kororin (V2.01J 2001/07/02 10:00)", MACHINE_IMPERFECT_SOUND ) +GAME( 2001, nightrai, coh3002t, coh3002t_t1, coh3002t, taitogn_state, 0, ROT0, "Takumi", "Night Raid (V2.03J 2001/02/26 17:00)", MACHINE_IMPERFECT_SOUND ) +GAME( 2001, otenki, coh3002t, coh3002t_t1, coh3002t, taitogn_state, 0, ROT0, "Takumi", "Otenki Kororin (V2.01J 2001/07/02 10:00)", MACHINE_IMPERFECT_SOUND ) /* Warashi */ -GAME( 1999, mahjngoh, coh3002t, coh3002t_t1_mp,coh3002t_mp,driver_device,0, ROT0, "Warashi / Mahjong Kobo / Taito", "Mahjong Oh (V2.06J 1999/11/23 08:52:22)", MACHINE_IMPERFECT_SOUND ) -GAME( 2000, shanghss, coh3002t, coh3002t_t1, coh3002t, driver_device, 0, ROT0, "Warashi", "Shanghai Shoryu Sairin (V2.03J 2000/05/26 12:45:28)", MACHINE_IMPERFECT_SOUND ) -GAME( 2000, soutenry, coh3002t, coh3002t_t1, coh3002t, driver_device, 0, ROT0, "Warashi", "Soutenryu (V2.07J 2000/12/14 11:13:02)", MACHINE_IMPERFECT_SOUND ) -GAME( 2001, usagi, coh3002t, coh3002t_t2_mp,coh3002t_mp,driver_device,0, ROT0, "Warashi / Mahjong Kobo / Taito", "Usagi (V2.02J 2001/10/02 12:41:19)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // missing transparencies, see MT #06258 -GAME( 2002, shangtou, coh3002t, coh3002t_t1, coh3002t, driver_device, 0, ROT0, "Warashi / Sunsoft / Taito", "Shanghai Sangokuhai Tougi (Ver 2.01J 2002/01/18 18:26:58)", MACHINE_IMPERFECT_SOUND ) +GAME( 1999, mahjngoh, coh3002t, coh3002t_t1_mp, coh3002t_mp, taitogn_state, 0, ROT0, "Warashi / Mahjong Kobo / Taito", "Mahjong Oh (V2.06J 1999/11/23 08:52:22)", MACHINE_IMPERFECT_SOUND ) +GAME( 2000, shanghss, coh3002t, coh3002t_t1, coh3002t, taitogn_state, 0, ROT0, "Warashi", "Shanghai Shoryu Sairin (V2.03J 2000/05/26 12:45:28)", MACHINE_IMPERFECT_SOUND ) +GAME( 2000, soutenry, coh3002t, coh3002t_t1, coh3002t, taitogn_state, 0, ROT0, "Warashi", "Soutenryu (V2.07J 2000/12/14 11:13:02)", MACHINE_IMPERFECT_SOUND ) +GAME( 2001, usagi, coh3002t, coh3002t_t2_mp, coh3002t_mp, taitogn_state, 0, ROT0, "Warashi / Mahjong Kobo / Taito", "Usagi (V2.02J 2001/10/02 12:41:19)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // missing transparencies, see MT #06258 +GAME( 2002, shangtou, coh3002t, coh3002t_t1, coh3002t, taitogn_state, 0, ROT0, "Warashi / Sunsoft / Taito", "Shanghai Sangokuhai Tougi (Ver 2.01J 2002/01/18 18:26:58)", MACHINE_IMPERFECT_SOUND ) /* Triangle Service */ -GAME( 2002, xiistag, coh3002t, coh3002t_t1, coh3002t, driver_device, 0, ROT270, "Triangle Service", "XII Stag (V2.01J 2002/6/26 22:27)", MACHINE_IMPERFECT_SOUND ) +GAME( 2002, xiistag, coh3002t, coh3002t_t1, coh3002t, taitogn_state, 0, ROT270, "Triangle Service", "XII Stag (V2.01J 2002/6/26 22:27)", MACHINE_IMPERFECT_SOUND ) diff --git a/src/mame/drivers/taitojc.cpp b/src/mame/drivers/taitojc.cpp index 6a21eacf9dd..5075ad3f8f9 100644 --- a/src/mame/drivers/taitojc.cpp +++ b/src/mame/drivers/taitojc.cpp @@ -1086,7 +1086,7 @@ void taitojc_state::machine_start() } -static MACHINE_CONFIG_START( taitojc, taitojc_state ) +static MACHINE_CONFIG_START( taitojc ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68040, XTAL_10MHz*2) // 20MHz, clock source = CY7C991 @@ -1141,7 +1141,7 @@ static MACHINE_CONFIG_DERIVED( dendego, taitojc ) /* sound hardware */ MCFG_SPEAKER_ADD("subwoofer", 0.0, 0.0, 1.0) - MCFG_OKIM6295_ADD("oki", 1056000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki", 1056000, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "subwoofer", 0.20) MACHINE_CONFIG_END diff --git a/src/mame/drivers/taitopjc.cpp b/src/mame/drivers/taitopjc.cpp index fc14d9ddf29..2866515694d 100644 --- a/src/mame/drivers/taitopjc.cpp +++ b/src/mame/drivers/taitopjc.cpp @@ -752,7 +752,7 @@ INTERRUPT_GEN_MEMBER(taitopjc_state::taitopjc_vbi) } -static MACHINE_CONFIG_START( taitopjc, taitopjc_state ) +static MACHINE_CONFIG_START( taitopjc ) MCFG_CPU_ADD("maincpu", PPC603E, 100000000) MCFG_PPC_BUS_FREQUENCY(XTAL_66_6667MHz) /* Multiplier 1.5, Bus = 66MHz, Core = 100MHz */ MCFG_CPU_PROGRAM_MAP(ppc603e_mem) diff --git a/src/mame/drivers/taitosj.cpp b/src/mame/drivers/taitosj.cpp index 1f5e1fcf184..a826c7a9db8 100644 --- a/src/mame/drivers/taitosj.cpp +++ b/src/mame/drivers/taitosj.cpp @@ -1738,7 +1738,7 @@ WRITE8_MEMBER(taitosj_state::taitosj_dacvol_w) m_dacvol->write(space, NODE_01, data ^ 0xff); // 7416 hex inverter } -static MACHINE_CONFIG_START( nomcu, taitosj_state ) +static MACHINE_CONFIG_START( nomcu ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80,XTAL_8MHz/2) /* 8 MHz / 2, on CPU board */ @@ -2824,16 +2824,16 @@ DRIVER_INIT_MEMBER(taitosj_state,junglhbr) } GAME( 1981, spaceskr, 0, nomcu, spaceskr, taitosj_state, taitosj, ROT0, "Taito Corporation", "Space Seeker", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, spacecr, 0, nomcu, spacecr, taitosj_state, spacecr, ROT90, "Taito Corporation", "Space Cruiser", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, junglek, 0, nomcu, junglek, taitosj_state, taitosj, ROT180, "Taito Corporation", "Jungle King (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, junglekas,junglek, nomcu, junglek, taitosj_state, taitosj, ROT180, "Taito Corporation", "Jungle King (alternate sound)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, junglekj2,junglek, nomcu, junglek, taitosj_state, taitosj, ROT180, "Taito Corporation", "Jungle King (Japan, earlier)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, jungleh, junglek, nomcu, junglek, taitosj_state, taitosj, ROT180, "Taito America Corporation", "Jungle Hunt (US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, junglehbr,junglek, nomcu, junglek, taitosj_state, junglhbr,ROT180, "Taito do Brasil", "Jungle Hunt (Brazil)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, spacecr, 0, nomcu, spacecr, taitosj_state, spacecr, ROT90, "Taito Corporation", "Space Cruiser", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, junglek, 0, nomcu, junglek, taitosj_state, taitosj, ROT180, "Taito Corporation", "Jungle King (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, junglekas,junglek, nomcu, junglek, taitosj_state, taitosj, ROT180, "Taito Corporation", "Jungle King (alternate sound)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, junglekj2,junglek, nomcu, junglek, taitosj_state, taitosj, ROT180, "Taito Corporation", "Jungle King (Japan, earlier)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, jungleh, junglek, nomcu, junglek, taitosj_state, taitosj, ROT180, "Taito America Corporation", "Jungle Hunt (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, junglehbr,junglek, nomcu, junglek, taitosj_state, junglhbr,ROT180, "Taito do Brasil", "Jungle Hunt (Brazil)", MACHINE_SUPPORTS_SAVE ) GAME( 1982, piratpet, junglek, nomcu, piratpet, taitosj_state, taitosj, ROT180, "Taito America Corporation", "Pirate Pete", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, jungleby, junglek, nomcu, junglek, taitosj_state, taitosj, ROT180, "bootleg", "Jungle Boy (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, alpine, 0, nomcu, alpine, taitosj_state, alpine, ROT270, "Taito Corporation", "Alpine Ski (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, alpinea, alpine, nomcu, alpinea, taitosj_state, alpinea, ROT270, "Taito Corporation", "Alpine Ski (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, jungleby, junglek, nomcu, junglek, taitosj_state, taitosj, ROT180, "bootleg", "Jungle Boy (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, alpine, 0, nomcu, alpine, taitosj_state, alpine, ROT270, "Taito Corporation", "Alpine Ski (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, alpinea, alpine, nomcu, alpinea, taitosj_state, alpinea, ROT270, "Taito Corporation", "Alpine Ski (set 2)", MACHINE_SUPPORTS_SAVE ) GAME( 1982, timetunl, 0, nomcu, timetunl, taitosj_state, taitosj, ROT0, "Taito Corporation", "Time Tunnel", MACHINE_SUPPORTS_SAVE ) GAME( 1982, wwestern, 0, nomcu, wwestern, taitosj_state, taitosj, ROT270, "Taito Corporation", "Wild Western (set 1)", MACHINE_SUPPORTS_SAVE ) GAME( 1982, wwestern1,wwestern, nomcu, wwestern, taitosj_state, taitosj, ROT270, "Taito Corporation", "Wild Western (set 2)", MACHINE_SUPPORTS_SAVE ) @@ -2841,10 +2841,10 @@ GAME( 1982, frontlin, 0, mcu, frontlin, taitosj_state, taitosj, RO GAME( 1983, elevator, 0, mcu, elevator, taitosj_state, taitosj, ROT0, "Taito Corporation", "Elevator Action (5 pcb version, 1.1)", MACHINE_SUPPORTS_SAVE ) GAME( 1983, elevatorb,elevator, nomcu, elevator, taitosj_state, taitosj, ROT0, "bootleg", "Elevator Action (bootleg)", MACHINE_SUPPORTS_SAVE ) GAME( 1983, elevator4,elevator, mcu, elevator, taitosj_state, taitosj, ROT0, "Taito Corporation", "Elevator Action (4 pcb version, 1.1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, tinstar, 0, mcu, tinstar, taitosj_state, taitosj, ROT0, "Taito Corporation", "The Tin Star (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, tinstar2, tinstar, mcu, tinstar, taitosj_state, taitosj, ROT0, "Taito Corporation", "The Tin Star (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, tinstar, 0, mcu, tinstar, taitosj_state, taitosj, ROT0, "Taito Corporation", "The Tin Star (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, tinstar2, tinstar, mcu, tinstar, taitosj_state, taitosj, ROT0, "Taito Corporation", "The Tin Star (set 2)", MACHINE_SUPPORTS_SAVE ) GAME( 1983, waterski, 0, nomcu, waterski, taitosj_state, taitosj, ROT270, "Taito Corporation", "Water Ski", MACHINE_SUPPORTS_SAVE ) GAME( 1983, bioatack, 0, nomcu, bioatack, taitosj_state, taitosj, ROT270, "Taito Corporation (Fox Video Games license)", "Bio Attack", MACHINE_SUPPORTS_SAVE ) GAME( 1984, sfposeid, 0, mcu, sfposeid, taitosj_state, taitosj, ROT0, "Taito Corporation", "Sea Fighter Poseidon", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, hwrace, 0, nomcu, hwrace, taitosj_state, taitosj, ROT270, "Taito Corporation", "High Way Race", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, hwrace, 0, nomcu, hwrace, taitosj_state, taitosj, ROT270, "Taito Corporation", "High Way Race", MACHINE_SUPPORTS_SAVE ) GAME( 1984, kikstart, 0, kikstart, kikstart, taitosj_state, taitosj, ROT0, "Taito Corporation", "Kick Start - Wheelie King", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/taitottl.cpp b/src/mame/drivers/taitottl.cpp index c8dda24ca9f..daad9885448 100644 --- a/src/mame/drivers/taitottl.cpp +++ b/src/mame/drivers/taitottl.cpp @@ -96,7 +96,7 @@ public: } // devices - required_device m_maincpu; + required_device m_maincpu; required_device m_video; protected: @@ -139,7 +139,7 @@ void taitottl_state::video_start() { } -static MACHINE_CONFIG_START( taitottl, taitottl_state ) +static MACHINE_CONFIG_START( taitottl ) /* basic machine hardware */ MCFG_DEVICE_ADD("maincpu", NETLIST_CPU, NETLIST_CLOCK) @@ -251,7 +251,7 @@ ROM_START( zzblock ) ROM_END -GAME( 1977, gunman, 0, taitottl, 0, driver_device, 0, ROT0, "Taito", "Gunman [TTL]", MACHINE_IS_SKELETON ) -GAME( 1977, missilex, 0, taitottl, 0, driver_device, 0, ROT0, "Taito", "Missile-X [TTL]", MACHINE_IS_SKELETON ) -GAME( 1977, ttblock, 0, taitottl, 0, driver_device, 0, ROT0, "Taito", "T.T. Block [TTL]", MACHINE_IS_SKELETON ) -GAME( 1979, zzblock, 0, taitottl, 0, driver_device, 0, ROT0, "Taito", "Zun Zun Block [TTL]", MACHINE_IS_SKELETON ) +GAME( 1977, gunman, 0, taitottl, 0, taitottl_state, 0, ROT0, "Taito", "Gunman [TTL]", MACHINE_IS_SKELETON ) +GAME( 1977, missilex, 0, taitottl, 0, taitottl_state, 0, ROT0, "Taito", "Missile-X [TTL]", MACHINE_IS_SKELETON ) +GAME( 1977, ttblock, 0, taitottl, 0, taitottl_state, 0, ROT0, "Taito", "T.T. Block [TTL]", MACHINE_IS_SKELETON ) +GAME( 1979, zzblock, 0, taitottl, 0, taitottl_state, 0, ROT0, "Taito", "Zun Zun Block [TTL]", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/taitotx.cpp b/src/mame/drivers/taitotx.cpp index 1aff70a3115..adf516c1134 100644 --- a/src/mame/drivers/taitotx.cpp +++ b/src/mame/drivers/taitotx.cpp @@ -166,7 +166,7 @@ void taito_type_x_state::machine_reset() } // todo: different configs for the different machine types. -static MACHINE_CONFIG_START( taito_type_x, taito_type_x_state ) +static MACHINE_CONFIG_START( taito_type_x ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", PENTIUM3, 733333333) /* Wrong, much newer processors, much faster. */ @@ -389,6 +389,6 @@ ROM_START( kofxii ) ROM_END -GAME( 2006, chasehq2, 0, taito_type_x, taito_type_x, driver_device, 0, ROT0, "Taito Corporation", "Chase H.Q. 2 (v2.0.6.JP)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -GAME( 2008, samspsen, 0, taito_type_x, taito_type_x, driver_device, 0, ROT0, "SNK Playmore", "Samurai Spirits Sen (v1.00)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -GAME( 2009, kofxii, 0, taito_type_x, taito_type_x, driver_device, 0, ROT0, "SNK Playmore", "The King of Fighters XII (v1.00)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +GAME( 2006, chasehq2, 0, taito_type_x, taito_type_x, taito_type_x_state, 0, ROT0, "Taito Corporation", "Chase H.Q. 2 (v2.0.6.JP)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +GAME( 2008, samspsen, 0, taito_type_x, taito_type_x, taito_type_x_state, 0, ROT0, "SNK Playmore", "Samurai Spirits Sen (v1.00)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +GAME( 2009, kofxii, 0, taito_type_x, taito_type_x, taito_type_x_state, 0, ROT0, "SNK Playmore", "The King of Fighters XII (v1.00)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/taitotz.cpp b/src/mame/drivers/taitotz.cpp index 9642e856622..1b9a05fe395 100644 --- a/src/mame/drivers/taitotz.cpp +++ b/src/mame/drivers/taitotz.cpp @@ -2556,7 +2556,7 @@ WRITE_LINE_MEMBER(taitotz_state::ide_interrupt) m_iocpu->set_input_line(TLCS900_INT2, state); } -static MACHINE_CONFIG_START( taitotz, taitotz_state ) +static MACHINE_CONFIG_START( taitotz ) /* IBM EMPPC603eBG-100 */ MCFG_CPU_ADD("maincpu", PPC603E, 100000000) MCFG_PPC_BUS_FREQUENCY(XTAL_66_6667MHz) /* Multiplier 1.5, Bus = 66MHz, Core = 100MHz */ @@ -2915,13 +2915,13 @@ ROM_START( styphp ) DISK_IMAGE( "styphp", 0, SHA1(c232d3460e37523346132544b8e23a5f9b447150) ) ROM_END -GAME( 1999, taitotz, 0, taitotz, taitotz, driver_device, 0, ROT0, "Taito", "Type Zero BIOS", MACHINE_NO_SOUND|MACHINE_NOT_WORKING|MACHINE_IS_BIOS_ROOT) -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, 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 ) -GAME( 2000, batlgr2a, batlgr2, taitotz, batlgr2, taitotz_state, batlgr2a, ROT0, "Taito", "Battle Gear 2 (v2.01J)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -GAME( 2000, styphp, taitotz, taitotz, styphp, taitotz_state, styphp, ROT0, "Taito", "Stunt Typhoon Plus (Ver 2.04 J)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -GAME( 2002, raizpin, taitotz, taitotz, taitotz, taitotz_state, raizpin, ROT0, "Taito", "Raizin Ping Pong (V2.01O)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -GAME( 2002, raizpinj, raizpin, taitotz, taitotz, taitotz_state, raizpinj, ROT0, "Taito", "Raizin Ping Pong (V2.01J)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +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( 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, 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 ) +GAME( 2000, batlgr2a, batlgr2, taitotz, batlgr2, taitotz_state, batlgr2a, ROT0, "Taito", "Battle Gear 2 (v2.01J)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +GAME( 2000, styphp, taitotz, taitotz, styphp, taitotz_state, styphp, ROT0, "Taito", "Stunt Typhoon Plus (Ver 2.04 J)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +GAME( 2002, raizpin, taitotz, taitotz, taitotz, taitotz_state, raizpin, ROT0, "Taito", "Raizin Ping Pong (V2.01O)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +GAME( 2002, raizpinj, raizpin, taitotz, taitotz, taitotz_state, raizpinj, ROT0, "Taito", "Raizin Ping Pong (V2.01J)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/taitowlf.cpp b/src/mame/drivers/taitowlf.cpp index d04f99726c3..4110306b98c 100644 --- a/src/mame/drivers/taitowlf.cpp +++ b/src/mame/drivers/taitowlf.cpp @@ -365,7 +365,7 @@ PALETTE_INIT_MEMBER(taitowlf_state, taitowlf) } #endif -static MACHINE_CONFIG_START( taitowlf, taitowlf_state ) +static MACHINE_CONFIG_START( taitowlf ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", PENTIUM, 200000000) diff --git a/src/mame/drivers/tamag1.cpp b/src/mame/drivers/tamag1.cpp index ec608337a5d..14ad1cb2a1d 100644 --- a/src/mame/drivers/tamag1.cpp +++ b/src/mame/drivers/tamag1.cpp @@ -128,7 +128,7 @@ INPUT_PORTS_END ***************************************************************************/ -static MACHINE_CONFIG_START( tama, tamag1_state ) +static MACHINE_CONFIG_START( tama ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", E0C6S46, XTAL_32_768kHz) @@ -171,4 +171,4 @@ ROM_START( tama ) ROM_END -CONS( 1997, tama, 0, 0, tama, tama, driver_device, 0, "Bandai", "Tamagotchi (USA)", MACHINE_SUPPORTS_SAVE ) +CONS( 1997, tama, 0, 0, tama, tama, tamag1_state, 0, "Bandai", "Tamagotchi (USA)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/tandy1t.cpp b/src/mame/drivers/tandy1t.cpp index 737214b4e01..3fd4c678e09 100644 --- a/src/mame/drivers/tandy1t.cpp +++ b/src/mame/drivers/tandy1t.cpp @@ -46,16 +46,19 @@ Tandy 1000 (80386) variations: #include "sound/sn76496.h" #include "cpu/i86/i86.h" #include "cpu/i86/i286.h" +#include "bus/pc_joy/pc_joy.h" +#include "screen.h" #include "softlist.h" -extern const device_type T1000_MOTHERBOARD; +DECLARE_DEVICE_TYPE(T1000_MOTHERBOARD, t1000_mb_device) class t1000_mb_device : public pc_noppi_mb_device { public: // construction/destruction t1000_mb_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : pc_noppi_mb_device(mconfig, T1000_MOTHERBOARD, "T1000_MOTHERBOARD", tag, owner, clock, "t1000_mb", __FILE__) { } + : pc_noppi_mb_device(mconfig, T1000_MOTHERBOARD, tag, owner, clock) + { } protected: virtual void device_start() override; }; @@ -64,7 +67,7 @@ void t1000_mb_device::device_start() { } -const device_type T1000_MOTHERBOARD = device_creator; +DEFINE_DEVICE_TYPE(T1000_MOTHERBOARD, t1000_mb_device, "t1000_mb", "Tandy 1000 Motherboard") class tandy1000_state : public driver_device { @@ -656,7 +659,7 @@ static MACHINE_CONFIG_FRAGMENT(tandy1000_101key) MCFG_AT_KEYB_ADD("pc_keyboard", 1, DEVWRITELINE("mb:pic8259", pic8259_device, ir1_w)) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( t1000hx, tandy1000_state ) +static MACHINE_CONFIG_START( t1000hx ) MCFG_CPU_ADD("maincpu", I8088, 8000000) MCFG_CPU_PROGRAM_MAP(tandy1000_map) MCFG_CPU_IO_MAP(tandy1000_io) @@ -686,7 +689,7 @@ static MACHINE_CONFIG_DERIVED( t1000sx, t1000hx ) MCFG_RAM_EXTRA_OPTIONS("384K") MACHINE_CONFIG_END -static MACHINE_CONFIG_START( t1000rl, tandy1000_state ) +static MACHINE_CONFIG_START( t1000rl ) MCFG_CPU_ADD("maincpu", I8086, XTAL_28_63636MHz / 3) MCFG_CPU_PROGRAM_MAP(tandy1000_bank_map) MCFG_CPU_IO_MAP(tandy1000_bank_io) @@ -718,7 +721,7 @@ static MACHINE_CONFIG_DERIVED( t1000sl2, t1000rl ) MCFG_ISA8_SLOT_ADD("mb:isa", "isa4", pc_isa8_cards, nullptr, false) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( t1000tl, tandy1000_state ) +static MACHINE_CONFIG_START( t1000tl ) MCFG_CPU_ADD("maincpu", I80286, XTAL_28_63636MHz / 2) MCFG_CPU_PROGRAM_MAP(tandy1000_286_map) MCFG_CPU_IO_MAP(tandy1000_16_io) @@ -907,11 +910,11 @@ ROM_START( t1000tl2 ) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS // tandy 1000 -COMP( 1987, t1000hx, ibm5150, 0, t1000hx, t1000_90key, driver_device, 0, "Tandy Radio Shack", "Tandy 1000 HX", 0) -COMP( 1987, t1000sx, ibm5150, 0, t1000sx, t1000_90key, driver_device, 0, "Tandy Radio Shack", "Tandy 1000 SX", 0) -COMP( 1987, t1000tx, ibm5150, 0, t1000tx, t1000_90key, driver_device, 0, "Tandy Radio Shack", "Tandy 1000 TX", 0) -COMP( 1989, t1000rl, ibm5150, 0, t1000rl, t1000_101key, driver_device, 0, "Tandy Radio Shack", "Tandy 1000 RL", 0) -COMP( 1989, t1000tl2, ibm5150, 0, t1000tl, t1000_101key, driver_device, 0, "Tandy Radio Shack", "Tandy 1000 TL/2", 0) -COMP( 1988, t1000sl2, ibm5150, 0, t1000sl2, t1000_101key, driver_device, 0, "Tandy Radio Shack", "Tandy 1000 SL/2", 0) +COMP( 1987, t1000hx, ibm5150, 0, t1000hx, t1000_90key, tandy1000_state, 0, "Tandy Radio Shack", "Tandy 1000 HX", 0 ) +COMP( 1987, t1000sx, ibm5150, 0, t1000sx, t1000_90key, tandy1000_state, 0, "Tandy Radio Shack", "Tandy 1000 SX", 0 ) +COMP( 1987, t1000tx, ibm5150, 0, t1000tx, t1000_90key, tandy1000_state, 0, "Tandy Radio Shack", "Tandy 1000 TX", 0 ) +COMP( 1989, t1000rl, ibm5150, 0, t1000rl, t1000_101key, tandy1000_state, 0, "Tandy Radio Shack", "Tandy 1000 RL", 0 ) +COMP( 1989, t1000tl2, ibm5150, 0, t1000tl, t1000_101key, tandy1000_state, 0, "Tandy Radio Shack", "Tandy 1000 TL/2", 0 ) +COMP( 1988, t1000sl2, ibm5150, 0, t1000sl2, t1000_101key, tandy1000_state, 0, "Tandy Radio Shack", "Tandy 1000 SL/2", 0 ) diff --git a/src/mame/drivers/tandy2k.cpp b/src/mame/drivers/tandy2k.cpp index 5220fb7e5a9..486be20b896 100644 --- a/src/mame/drivers/tandy2k.cpp +++ b/src/mame/drivers/tandy2k.cpp @@ -764,7 +764,7 @@ void tandy2k_state::device_reset_after_children() // Machine Driver -static MACHINE_CONFIG_START( tandy2k, tandy2k_state ) +static MACHINE_CONFIG_START( tandy2k ) // basic machine hardware MCFG_CPU_ADD(I80186_TAG, I80186, XTAL_16MHz) MCFG_CPU_PROGRAM_MAP(tandy2k_mem) @@ -777,7 +777,7 @@ static MACHINE_CONFIG_START( tandy2k, tandy2k_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) // not accurate MCFG_SCREEN_SIZE(640, 400) MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 400-1) - //MCFG_SCREEN_UPDATE_DEVICE(CRT9021B_TAG, crt9021_t, screen_update) + //MCFG_SCREEN_UPDATE_DEVICE(CRT9021B_TAG, crt9021_device, screen_update) MCFG_SCREEN_UPDATE_DRIVER(tandy2k_state, screen_update) MCFG_PALETTE_ADD_MONOCHROME("palette") @@ -786,9 +786,9 @@ static MACHINE_CONFIG_START( tandy2k, tandy2k_state ) MCFG_DEVICE_ADDRESS_MAP(AS_0, vpac_mem) MCFG_CRT9007_CHARACTER_WIDTH(8) MCFG_CRT9007_INT_CALLBACK(DEVWRITELINE(I8259A_1_TAG, pic8259_device, ir1_w)) - MCFG_CRT9007_VS_CALLBACK(DEVWRITELINE(CRT9021B_TAG, crt9021_t, vsync_w)) + MCFG_CRT9007_VS_CALLBACK(DEVWRITELINE(CRT9021B_TAG, crt9021_device, vsync_w)) MCFG_CRT9007_VLT_CALLBACK(WRITELINE(tandy2k_state, vpac_vlt_w)) - MCFG_CRT9007_CURS_CALLBACK(DEVWRITELINE(CRT9021B_TAG, crt9021_t, cursor_w)) + MCFG_CRT9007_CURS_CALLBACK(DEVWRITELINE(CRT9021B_TAG, crt9021_device, cursor_w)) MCFG_CRT9007_DRB_CALLBACK(WRITELINE(tandy2k_state, vpac_drb_w)) MCFG_CRT9007_WBEN_CALLBACK(WRITELINE(tandy2k_state, vpac_wben_w)) MCFG_CRT9007_CBLANK_CALLBACK(WRITELINE(tandy2k_state, vpac_cblank_w)) @@ -912,6 +912,6 @@ ROM_END // System Drivers -// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS -COMP( 1983, tandy2k, 0, 0, tandy2k, tandy2k, driver_device, 0, "Tandy Radio Shack", "Tandy 2000", MACHINE_NOT_WORKING ) -COMP( 1983, tandy2khd, tandy2k, 0, tandy2k_hd, tandy2k, driver_device, 0, "Tandy Radio Shack", "Tandy 2000HD", MACHINE_NOT_WORKING ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1983, tandy2k, 0, 0, tandy2k, tandy2k, tandy2k_state, 0, "Tandy Radio Shack", "Tandy 2000", MACHINE_NOT_WORKING ) +COMP( 1983, tandy2khd, tandy2k, 0, tandy2k_hd, tandy2k, tandy2k_state, 0, "Tandy Radio Shack", "Tandy 2000HD", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/tank8.cpp b/src/mame/drivers/tank8.cpp index 2b9a63a9b14..ca612beadeb 100644 --- a/src/mame/drivers/tank8.cpp +++ b/src/mame/drivers/tank8.cpp @@ -326,7 +326,7 @@ static GFXDECODE_START( tank8 ) GFXDECODE_END -static MACHINE_CONFIG_START( tank8, tank8_state ) +static MACHINE_CONFIG_START( tank8 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6800, 11055000 / 10) /* ? */ @@ -481,8 +481,8 @@ DRIVER_INIT_MEMBER(tank8_state,decode) } -GAME( 1976, tank8, 0, tank8, tank8, driver_device, 0, ROT0, "Atari (Kee Games)", "Tank 8 (set 1)", MACHINE_SUPPORTS_SAVE) +GAME( 1976, tank8, 0, tank8, tank8, tank8_state, 0, ROT0, "Atari (Kee Games)", "Tank 8 (set 1)", MACHINE_SUPPORTS_SAVE) GAME( 1976, tank8a, tank8, tank8, tank8, tank8_state, decode, ROT0, "Atari (Kee Games)", "Tank 8 (set 2)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) GAME( 1976, tank8b, tank8, tank8, tank8, tank8_state, decode, ROT0, "Atari (Kee Games)", "Tank 8 (set 3)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) -GAME( 1976, tank8c, tank8, tank8, tank8, driver_device, 0, ROT0, "Atari (Kee Games)", "Tank 8 (set 4)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) -GAME( 1976, tank8d, tank8, tank8, tank8, driver_device, 0, ROT0, "Atari (Kee Games)", "Tank 8 (set 5)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +GAME( 1976, tank8c, tank8, tank8, tank8, tank8_state, 0, ROT0, "Atari (Kee Games)", "Tank 8 (set 4)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +GAME( 1976, tank8d, tank8, tank8, tank8, tank8_state, 0, ROT0, "Atari (Kee Games)", "Tank 8 (set 5)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/tankbatt.cpp b/src/mame/drivers/tankbatt.cpp index fd53ec06a7e..ba260df01cf 100644 --- a/src/mame/drivers/tankbatt.cpp +++ b/src/mame/drivers/tankbatt.cpp @@ -282,7 +282,7 @@ static const char *const tankbatt_sample_names[] = }; -static MACHINE_CONFIG_START( tankbatt, tankbatt_state ) +static MACHINE_CONFIG_START( tankbatt ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, 1000000) /* 1 MHz ???? */ @@ -348,5 +348,5 @@ ROM_START( tankbattb ) /* board with "NAMCO" removed from gfx1 rom, otherwise id ROM_LOAD( "bct1-1.l3", 0x0000, 0x0100, CRC(d17518bc) SHA1(f3b0deffa586808bc59e9a24ec1699c54ebe84cc) ) // dm74s287n.3l ROM_END -GAME( 1980, tankbatt, 0, tankbatt, tankbatt, driver_device, 0, ROT90, "Namco", "Tank Battalion", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1980, tankbattb, tankbatt, tankbatt, tankbatt, driver_device, 0, ROT90, "bootleg", "Tank Battalion (bootleg)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1980, tankbatt, 0, tankbatt, tankbatt, tankbatt_state, 0, ROT90, "Namco", "Tank Battalion", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1980, tankbattb, tankbatt, tankbatt, tankbatt, tankbatt_state, 0, ROT90, "bootleg", "Tank Battalion (bootleg)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/tankbust.cpp b/src/mame/drivers/tankbust.cpp index cefbaf8934a..f6159d67440 100644 --- a/src/mame/drivers/tankbust.cpp +++ b/src/mame/drivers/tankbust.cpp @@ -330,7 +330,7 @@ INTERRUPT_GEN_MEMBER(tankbust_state::vblank_irq) device.execute().set_input_line(0, HOLD_LINE); } -static MACHINE_CONFIG_START( tankbust, tankbust_state ) +static MACHINE_CONFIG_START( tankbust ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_14_31818MHz/2) /* Verified on PCB */ @@ -420,4 +420,4 @@ ROM_START( tankbust ) ROM_END -GAME( 1985, tankbust, 0, tankbust, tankbust, driver_device, 0, ROT90, "Valadon Automation", "Tank Busters", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, tankbust, 0, tankbust, tankbust, tankbust_state, 0, ROT90, "Valadon Automation", "Tank Busters", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/taotaido.cpp b/src/mame/drivers/taotaido.cpp index d50c86d882b..25fd91b47f9 100644 --- a/src/mame/drivers/taotaido.cpp +++ b/src/mame/drivers/taotaido.cpp @@ -356,7 +356,7 @@ GFXDECODE_END -static MACHINE_CONFIG_START( taotaido, taotaido_state ) +static MACHINE_CONFIG_START( taotaido ) MCFG_CPU_ADD("maincpu", M68000, 32000000/2) MCFG_CPU_PROGRAM_MAP(main_map) MCFG_CPU_VBLANK_INT_DRIVER("screen", taotaido_state, irq1_line_hold) @@ -482,6 +482,6 @@ ROM_START( taotaido3 ) ROM_LOAD( "u15.bin", 0x000000, 0x200000, CRC(e95823e9) SHA1(362583944ad4fdde4f9e29928cf34376c7ad931f) ) ROM_END -GAME( 1993, taotaido, 0, taotaido, taotaido, driver_device, 0, ROT0, "Video System Co.", "Tao Taido (2 button version)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1993, taotaidoa,taotaido, taotaido, taotaido6,driver_device, 0, ROT0, "Video System Co.", "Tao Taido (6 button version)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // maybe a prototype? has various debug features -GAME( 1993, taotaido3,taotaido, taotaido, taotaido3,driver_device, 0, ROT0, "Video System Co.", "Tao Taido (2/3 button version)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1993, taotaido, 0, taotaido, taotaido, taotaido_state, 0, ROT0, "Video System Co.", "Tao Taido (2 button version)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1993, taotaidoa, taotaido, taotaido, taotaido6, taotaido_state, 0, ROT0, "Video System Co.", "Tao Taido (6 button version)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // maybe a prototype? has various debug features +GAME( 1993, taotaido3, taotaido, taotaido, taotaido3, taotaido_state, 0, ROT0, "Video System Co.", "Tao Taido (2/3 button version)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/tapatune.cpp b/src/mame/drivers/tapatune.cpp index 2ded0fe499c..17038a80aa3 100644 --- a/src/mame/drivers/tapatune.cpp +++ b/src/mame/drivers/tapatune.cpp @@ -509,7 +509,7 @@ INPUT_PORTS_END * *************************************/ -static MACHINE_CONFIG_START( tapatune_base, tapatune_state ) +static MACHINE_CONFIG_START( tapatune_base ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_24MHz / 4) MCFG_CPU_PROGRAM_MAP(maincpu_map) @@ -628,8 +628,8 @@ ROM_END * *************************************/ -GAME(1994, tapatune, 0, tapatune, tapatune, driver_device, 0, ROT0, "Moloney Manufacturing Inc. / Creative Electronics and Software", "Tap a Tune", MACHINE_SUPPORTS_SAVE ) +GAME(1994, tapatune, 0, tapatune, tapatune, tapatune_state, 0, ROT0, "Moloney Manufacturing Inc. / Creative Electronics and Software", "Tap a Tune", MACHINE_SUPPORTS_SAVE ) // below appear to be mechanical games with the same Z80 board as the above -GAME(1994, srockbwl, 0, tapatune_base, tapatune, driver_device, 0, ROT0, "Bromley", "Super Rock and Bowl (V1.1)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) -GAME(199?, smartoss, 0, tapatune_base, tapatune, driver_device, 0, ROT0, "Smart Industries / Creative Electronics and Software", "Smart Toss 'em / Smartball (Ver 2.0)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) +GAME(1994, srockbwl, 0, tapatune_base, tapatune, tapatune_state, 0, ROT0, "Bromley", "Super Rock and Bowl (V1.1)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) +GAME(199?, smartoss, 0, tapatune_base, tapatune, tapatune_state, 0, ROT0, "Smart Industries / Creative Electronics and Software", "Smart Toss 'em / Smartball (Ver 2.0)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/targeth.cpp b/src/mame/drivers/targeth.cpp index 6a82c2b6c5f..85b0289eeaf 100644 --- a/src/mame/drivers/targeth.cpp +++ b/src/mame/drivers/targeth.cpp @@ -181,7 +181,7 @@ static INPUT_PORTS_START( targeth ) INPUT_PORTS_END -static MACHINE_CONFIG_START( targeth, targeth_state ) +static MACHINE_CONFIG_START( targeth ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000,24000000/2) /* 12 MHz */ @@ -204,7 +204,7 @@ static MACHINE_CONFIG_START( targeth, targeth_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", 1056000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki", 1056000, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_DEVICE_ADDRESS_MAP(AS_0, oki_map) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -249,5 +249,5 @@ ROM_START( targetha ) ROM_LOAD( "targeth.c3", 0x080000, 0x080000, CRC(d4c771df) SHA1(7cc0a86ef6aa3d26ab8f19d198f62112bf012870) ) ROM_END -GAME( 1994, targeth, 0, targeth, targeth, driver_device, 0, ROT0, "Gaelco", "Target Hits (ver 1.1)", MACHINE_UNEMULATED_PROTECTION ) -GAME( 1994, targetha, targeth, targeth, targeth, driver_device, 0, ROT0, "Gaelco", "Target Hits (ver 1.0)", MACHINE_UNEMULATED_PROTECTION ) +GAME( 1994, targeth, 0, targeth, targeth, targeth_state, 0, ROT0, "Gaelco", "Target Hits (ver 1.1)", MACHINE_UNEMULATED_PROTECTION ) +GAME( 1994, targetha, targeth, targeth, targeth, targeth_state, 0, ROT0, "Gaelco", "Target Hits (ver 1.0)", MACHINE_UNEMULATED_PROTECTION ) diff --git a/src/mame/drivers/tasman.cpp b/src/mame/drivers/tasman.cpp index c2a0e534600..4f1dc486140 100644 --- a/src/mame/drivers/tasman.cpp +++ b/src/mame/drivers/tasman.cpp @@ -633,7 +633,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(kongambl_state::kongambl_vblank) } -static MACHINE_CONFIG_START( kongambl, kongambl_state ) +static MACHINE_CONFIG_START( kongambl ) MCFG_CPU_ADD("maincpu", M68EC020, 25000000) MCFG_CPU_PROGRAM_MAP(kongambl_map) MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", kongambl_state, kongambl_vblank, "screen", 0, 1) @@ -816,8 +816,8 @@ DRIVER_INIT_MEMBER(kongambl_state,kingtut) //rom[0x55e40/4] = (rom[0x55e40/4] & 0xffff0000) | 0x4e71; // goes away from the POST } -GAME( 199?, kingtut, 0, kongambl, kongambl, kongambl_state, kingtut, ROT0, "Konami", "King Tut (NSW, Australia)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -GAME( 199?, moneybnk, 0, kongambl, kongambl, driver_device, 0, ROT0, "Konami", "Money In The Bank (NSW, Australia)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -GAME( 199?, dragsphr, 0, kongambl, kongambl, driver_device, 0, ROT0, "Konami", "Dragon Sphere", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -GAME( 199?, ivorytsk, 0, kongambl, kongambl, driver_device, 0, ROT0, "Konami", "Ivory Tusk", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -GAME( 199?, vikingt, 0, kongambl, kongambl, driver_device, 0, ROT0, "Konami", "Viking Treasure", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +GAME( 199?, kingtut, 0, kongambl, kongambl, kongambl_state, kingtut, ROT0, "Konami", "King Tut (NSW, Australia)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +GAME( 199?, moneybnk, 0, kongambl, kongambl, kongambl_state, 0, ROT0, "Konami", "Money In The Bank (NSW, Australia)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +GAME( 199?, dragsphr, 0, kongambl, kongambl, kongambl_state, 0, ROT0, "Konami", "Dragon Sphere", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +GAME( 199?, ivorytsk, 0, kongambl, kongambl, kongambl_state, 0, ROT0, "Konami", "Ivory Tusk", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +GAME( 199?, vikingt, 0, kongambl, kongambl, kongambl_state, 0, ROT0, "Konami", "Viking Treasure", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/tatsumi.cpp b/src/mame/drivers/tatsumi.cpp index 7a27cad1231..bcc9d4aad5b 100644 --- a/src/mame/drivers/tatsumi.cpp +++ b/src/mame/drivers/tatsumi.cpp @@ -842,7 +842,7 @@ MACHINE_RESET_MEMBER(tatsumi_state,apache3) } -static MACHINE_CONFIG_START( apache3, tatsumi_state ) +static MACHINE_CONFIG_START( apache3 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", V30, CLOCK_1 / 2) @@ -893,12 +893,12 @@ static MACHINE_CONFIG_START( apache3, tatsumi_state ) MCFG_SOUND_ROUTE(0, "lspeaker", 0.45) MCFG_SOUND_ROUTE(1, "rspeaker", 0.45) - MCFG_OKIM6295_ADD("oki", CLOCK_1 / 4 / 2, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", CLOCK_1 / 4 / 2, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.75) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.75) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( roundup5, tatsumi_state ) +static MACHINE_CONFIG_START( roundup5 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", V30, CLOCK_1 / 2) @@ -941,12 +941,12 @@ static MACHINE_CONFIG_START( roundup5, tatsumi_state ) MCFG_SOUND_ROUTE(0, "lspeaker", 0.45) MCFG_SOUND_ROUTE(1, "rspeaker", 0.45) - MCFG_OKIM6295_ADD("oki", CLOCK_1 / 4 / 2, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", CLOCK_1 / 4 / 2, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.75) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.75) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( cyclwarr, tatsumi_state ) +static MACHINE_CONFIG_START( cyclwarr ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, CLOCK_2 / 4) @@ -999,12 +999,12 @@ static MACHINE_CONFIG_START( cyclwarr, tatsumi_state ) MCFG_SOUND_ROUTE(0, "lspeaker", 0.45) MCFG_SOUND_ROUTE(1, "rspeaker", 0.45) - MCFG_OKIM6295_ADD("oki", CLOCK_1 / 8, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", CLOCK_1 / 8, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.75) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.75) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( bigfight, tatsumi_state ) +static MACHINE_CONFIG_START( bigfight ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, CLOCK_2 / 4) @@ -1057,7 +1057,7 @@ static MACHINE_CONFIG_START( bigfight, tatsumi_state ) MCFG_SOUND_ROUTE(0, "lspeaker", 0.45) MCFG_SOUND_ROUTE(1, "rspeaker", 0.45) - MCFG_OKIM6295_ADD("oki", CLOCK_1 / 8 / 2, OKIM6295_PIN7_HIGH) /* 2MHz was too fast. Can the clock be software controlled? */ + MCFG_OKIM6295_ADD("oki", CLOCK_1 / 8 / 2, PIN7_HIGH) /* 2MHz was too fast. Can the clock be software controlled? */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.75) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.75) MACHINE_CONFIG_END diff --git a/src/mame/drivers/tattack.cpp b/src/mame/drivers/tattack.cpp index cf981a9cdff..91d59a71f9a 100644 --- a/src/mame/drivers/tattack.cpp +++ b/src/mame/drivers/tattack.cpp @@ -226,7 +226,7 @@ PALETTE_INIT_MEMBER(tattack_state, tattack) } -static MACHINE_CONFIG_START( tattack, tattack_state ) +static MACHINE_CONFIG_START( tattack ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 8000000 / 2) /* 4 MHz ? */ diff --git a/src/mame/drivers/tavernie.cpp b/src/mame/drivers/tavernie.cpp index 2de47b6e89c..703b31c9226 100644 --- a/src/mame/drivers/tavernie.cpp +++ b/src/mame/drivers/tavernie.cpp @@ -92,7 +92,7 @@ public: DECLARE_WRITE8_MEMBER(pb_w); DECLARE_WRITE8_MEMBER(pa_ivg_w); DECLARE_READ8_MEMBER(pb_ivg_r); - DECLARE_WRITE8_MEMBER(kbd_put); + void kbd_put(u8 data); DECLARE_WRITE8_MEMBER(ds_w); DECLARE_MACHINE_RESET(cpu09); DECLARE_MACHINE_RESET(ivg09); @@ -105,7 +105,7 @@ private: optional_shared_ptr m_p_videoram; required_device m_cass; optional_device m_pia_ivg; - optional_device m_fdc; + optional_device m_fdc; optional_device m_floppy0; optional_device m_beep; required_device m_maincpu; @@ -132,7 +132,7 @@ static ADDRESS_MAP_START(ivg09_mem, AS_PROGRAM, 8, tavernie_state) AM_RANGE(0x2000, 0x2003) AM_DEVREADWRITE("pia_ivg", pia6821_device, read, write) AM_RANGE(0x2080, 0x2080) AM_DEVREADWRITE("crtc", mc6845_device, status_r, address_w) AM_RANGE(0x2081, 0x2081) AM_DEVREADWRITE("crtc", mc6845_device, register_r, register_w) - AM_RANGE(0xe000, 0xe003) AM_DEVREADWRITE("fdc", fd1795_t, read, write) + AM_RANGE(0xe000, 0xe003) AM_DEVREADWRITE("fdc", fd1795_device, read, write) AM_RANGE(0xe080, 0xe080) AM_WRITE(ds_w) AM_RANGE(0xeb00, 0xeb03) AM_DEVREADWRITE("pia", pia6821_device, read, write) AM_RANGE(0xeb04, 0xeb04) AM_DEVREADWRITE("acia", acia6850_device, status_r, control_w) @@ -284,7 +284,7 @@ WRITE8_MEMBER( tavernie_state::pa_ivg_w ) // bits 0-3 are attribute bits } -WRITE8_MEMBER( tavernie_state::kbd_put ) +void tavernie_state::kbd_put(u8 data) { m_term_data = data; m_pia_ivg->cb1_w(0); @@ -297,7 +297,7 @@ WRITE_LINE_MEMBER( tavernie_state::write_acia_clock ) m_acia->write_rxc(state); } -static MACHINE_CONFIG_START( cpu09, tavernie_state ) +static MACHINE_CONFIG_START( cpu09 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",M6809E, XTAL_4MHz) MCFG_CPU_PROGRAM_MAP(cpu09_mem) @@ -359,7 +359,7 @@ static MACHINE_CONFIG_DERIVED( ivg09, cpu09 ) /* Devices */ MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0) - MCFG_GENERIC_KEYBOARD_CB(WRITE8(tavernie_state, kbd_put)) + MCFG_GENERIC_KEYBOARD_CB(PUT(tavernie_state, kbd_put)) MCFG_MC6845_ADD("crtc", MC6845, "screen", 1008000) // unknown clock MCFG_MC6845_SHOW_BORDER_AREA(false) @@ -396,6 +396,6 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1982, cpu09, 0, 0, cpu09, cpu09, driver_device, 0, "C. Tavernier", "CPU09", MACHINE_NOT_WORKING ) -COMP( 1983, ivg09, cpu09, 0, ivg09, ivg09, driver_device, 0, "C. Tavernier", "CPU09 with IVG09 and IFD09", MACHINE_NOT_WORKING ) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 1982, cpu09, 0, 0, cpu09, cpu09, tavernie_state, 0, "C. Tavernier", "CPU09", MACHINE_NOT_WORKING ) +COMP( 1983, ivg09, cpu09, 0, ivg09, ivg09, tavernie_state, 0, "C. Tavernier", "CPU09 with IVG09 and IFD09", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/taxidriv.cpp b/src/mame/drivers/taxidriv.cpp index b36d5dcfae8..eefc733634c 100644 --- a/src/mame/drivers/taxidriv.cpp +++ b/src/mame/drivers/taxidriv.cpp @@ -330,7 +330,7 @@ PALETTE_INIT_MEMBER(taxidriv_state, taxidriv) } } -static MACHINE_CONFIG_START( taxidriv, taxidriv_state ) +static MACHINE_CONFIG_START( taxidriv ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80,4000000) /* 4 MHz ??? */ @@ -448,4 +448,4 @@ ROM_START( taxidriv ) ROM_END -GAME( 1984, taxidriv, 0, taxidriv, taxidriv, driver_device, 0, ROT90, "Graphic Techno", "Taxi Driver", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1984, taxidriv, 0, taxidriv, taxidriv, taxidriv_state, 0, ROT90, "Graphic Techno", "Taxi Driver", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/tb303.cpp b/src/mame/drivers/tb303.cpp index ceafffa8c73..27826b6288d 100644 --- a/src/mame/drivers/tb303.cpp +++ b/src/mame/drivers/tb303.cpp @@ -246,7 +246,7 @@ void tb303_state::machine_start() save_item(NAME(m_ram_we)); } -static MACHINE_CONFIG_START( tb303, tb303_state ) +static MACHINE_CONFIG_START( tb303 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", NEC_D650, TP2_HZ) @@ -286,4 +286,4 @@ ROM_START( tb303 ) ROM_END -CONS( 1982, tb303, 0, 0, tb303, tb303, driver_device, 0, "Roland", "TB-303 Bass Line", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) +CONS( 1982, tb303, 0, 0, tb303, tb303, tb303_state, 0, "Roland", "TB-303 Bass Line", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/tbowl.cpp b/src/mame/drivers/tbowl.cpp index f7ff8bbbb5c..5108bf8c9ff 100644 --- a/src/mame/drivers/tbowl.cpp +++ b/src/mame/drivers/tbowl.cpp @@ -437,7 +437,7 @@ void tbowl_state::machine_reset() m_adpcm_data[0] = m_adpcm_data[1] = -1; } -static MACHINE_CONFIG_START( tbowl, tbowl_state ) +static MACHINE_CONFIG_START( tbowl ) /* CPU on Board '6206B' */ MCFG_CPU_ADD("maincpu", Z80, 8000000) /* NEC D70008AC-8 (Z80 Clone) */ @@ -496,12 +496,12 @@ static MACHINE_CONFIG_START( tbowl, tbowl_state ) /* something for the samples? */ MCFG_SOUND_ADD("msm1", MSM5205, 384000) MCFG_MSM5205_VCLK_CB(WRITELINE(tbowl_state, adpcm_int_1)) /* interrupt function */ - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S48_4B) /* 8KHz */ + MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) /* 8KHz */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) MCFG_SOUND_ADD("msm2", MSM5205, 384000) MCFG_MSM5205_VCLK_CB(WRITELINE(tbowl_state, adpcm_int_2)) /* interrupt function */ - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S48_4B) /* 8KHz */ + MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) /* 8KHz */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) MACHINE_CONFIG_END @@ -709,6 +709,6 @@ ROM_START( tbowlj ) ROM_LOAD( "6206a.2", 0x10000, 0x10000, CRC(1e9e5936) SHA1(60370d1de28b1c5ffeff7843702aaddb19ff1f58) ) ROM_END -GAME( 1987, tbowl, 0, tbowl, tbowl, driver_device, 0, ROT0, "Tecmo", "Tecmo Bowl (World)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, tbowlp, tbowl, tbowl, tbowl, driver_device, 0, ROT0, "Tecmo", "Tecmo Bowl (World, prototype?)", MACHINE_SUPPORTS_SAVE ) // or early version, handwritten labels -GAME( 1987, tbowlj, tbowl, tbowl, tbowlj, driver_device, 0, ROT0, "Tecmo", "Tecmo Bowl (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, tbowl, 0, tbowl, tbowl, tbowl_state, 0, ROT0, "Tecmo", "Tecmo Bowl (World)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, tbowlp, tbowl, tbowl, tbowl, tbowl_state, 0, ROT0, "Tecmo", "Tecmo Bowl (World, prototype?)", MACHINE_SUPPORTS_SAVE ) // or early version, handwritten labels +GAME( 1987, tbowlj, tbowl, tbowl, tbowlj, tbowl_state, 0, ROT0, "Tecmo", "Tecmo Bowl (Japan)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/tceptor.cpp b/src/mame/drivers/tceptor.cpp index 085276498a8..946378cdabe 100644 --- a/src/mame/drivers/tceptor.cpp +++ b/src/mame/drivers/tceptor.cpp @@ -344,7 +344,7 @@ void tceptor_state::machine_reset() /*******************************************************************/ -static MACHINE_CONFIG_START( tceptor, tceptor_state ) +static MACHINE_CONFIG_START( tceptor ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809, 49152000/32) @@ -542,6 +542,6 @@ ROM_START( tceptor2 ) ROM_END -/* ( YEAR NAME PARENT MACHINE INPUT INIT MONITOR COMPANY FULLNAME ) */ -GAME ( 1986, tceptor, 0, tceptor, tceptor, driver_device, 0, ROT0, "Namco", "Thunder Ceptor", 0) -GAMEL( 1986, tceptor2, tceptor, tceptor, tceptor2, driver_device, 0, ROT0, "Namco", "Thunder Ceptor II", 0, layout_tceptor2) +// ( YEAR NAME PARENT MACHINE INPUT STATE INIT MONITOR COMPANY FULLNAME FLAGS ) +GAME ( 1986, tceptor, 0, tceptor, tceptor, tceptor_state, 0, ROT0, "Namco", "Thunder Ceptor", 0) +GAMEL( 1986, tceptor2, tceptor, tceptor, tceptor2, tceptor_state, 0, ROT0, "Namco", "Thunder Ceptor II", 0, layout_tceptor2) diff --git a/src/mame/drivers/tcl.cpp b/src/mame/drivers/tcl.cpp index 2f359f5d09d..e97a409d942 100644 --- a/src/mame/drivers/tcl.cpp +++ b/src/mame/drivers/tcl.cpp @@ -111,7 +111,7 @@ static GFXDECODE_START( tcl ) GFXDECODE_ENTRY( "gfx2", 0, charlayout2, 128, 4 ) GFXDECODE_END -static MACHINE_CONFIG_START( tcl, tcl_state ) +static MACHINE_CONFIG_START( tcl ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80,12000000/4) diff --git a/src/mame/drivers/tdv2324.cpp b/src/mame/drivers/tdv2324.cpp index 1e7d5c4f792..36be7f125da 100644 --- a/src/mame/drivers/tdv2324.cpp +++ b/src/mame/drivers/tdv2324.cpp @@ -257,7 +257,7 @@ SLOT_INTERFACE_END // MACHINE_CONFIG( tdv2324 ) //------------------------------------------------- -static MACHINE_CONFIG_START( tdv2324, tdv2324_state ) +static MACHINE_CONFIG_START( tdv2324 ) // basic system hardware MCFG_CPU_ADD(P8085AH_0_TAG, I8085A, 8700000/2) // ??? MCFG_CPU_PROGRAM_MAP(tdv2324_mem) @@ -349,5 +349,5 @@ ROM_END // SYSTEM DRIVERS //************************************************************************** -// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS -COMP( 1983, tdv2324, 0, 0, tdv2324, tdv2324, driver_device, 0, "Tandberg", "TDV 2324", MACHINE_NOT_WORKING|MACHINE_NO_SOUND) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1983, tdv2324, 0, 0, tdv2324, tdv2324, tdv2324_state, 0, "Tandberg", "TDV 2324", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/tec1.cpp b/src/mame/drivers/tec1.cpp index c305b936050..1425c2b85db 100644 --- a/src/mame/drivers/tec1.cpp +++ b/src/mame/drivers/tec1.cpp @@ -402,7 +402,7 @@ INPUT_PORTS_END ***************************************************************************/ -static MACHINE_CONFIG_START( tec1, tec1_state ) +static MACHINE_CONFIG_START( tec1 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 1000000) /* speed can be varied between 250kHz and 2MHz */ MCFG_CPU_PROGRAM_MAP(tec1_map) @@ -417,7 +417,7 @@ static MACHINE_CONFIG_START( tec1, tec1_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( tecjmon, tec1_state ) +static MACHINE_CONFIG_START( tecjmon ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_3_579545MHz / 2) MCFG_CPU_PROGRAM_MAP(tecjmon_map) @@ -460,6 +460,6 @@ ROM_START(tecjmon) ROM_LOAD("util.rom", 0x3800, 0x0800, CRC(7c19700d) SHA1(dc5b3ade66bb11c54430056966ed99cdd299d82b) ) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ -COMP( 1984, tec1, 0, 0, tec1, tec1, driver_device, 0, "Talking Electronics magazine", "TEC-1" , 0 ) -COMP( 1984, tecjmon, tec1, 0, tecjmon, tec1, driver_device, 0, "Talking Electronics magazine", "TEC-1A with JMON" , 0 ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1984, tec1, 0, 0, tec1, tec1, tec1_state, 0, "Talking Electronics magazine", "TEC-1", 0 ) +COMP( 1984, tecjmon, tec1, 0, tecjmon, tec1, tec1_state, 0, "Talking Electronics magazine", "TEC-1A with JMON", 0 ) diff --git a/src/mame/drivers/techno.cpp b/src/mame/drivers/techno.cpp index bff00d4321d..9bc7018fe1f 100644 --- a/src/mame/drivers/techno.cpp +++ b/src/mame/drivers/techno.cpp @@ -244,7 +244,7 @@ void techno_state::machine_reset() m_digit = 0; } -static MACHINE_CONFIG_START( techno, techno_state ) +static MACHINE_CONFIG_START( techno ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_8MHz) MCFG_CPU_PROGRAM_MAP(techno_map) @@ -276,5 +276,5 @@ ROM_START(spcteam) ROM_RELOAD(0, 0x8000) ROM_END -GAME(1987, xforce, 0, techno, techno, driver_device, 0, ROT0, "Tecnoplay", "X Force", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1988, spcteam, 0, techno, techno, driver_device, 0, ROT0, "Tecnoplay", "Space Team", MACHINE_IS_SKELETON_MECHANICAL) // needs correct layout +GAME(1987, xforce, 0, techno, techno, techno_state, 0, ROT0, "Tecnoplay", "X Force", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1988, spcteam, 0, techno, techno, techno_state, 0, ROT0, "Tecnoplay", "Space Team", MACHINE_IS_SKELETON_MECHANICAL) // needs correct layout diff --git a/src/mame/drivers/tecmo.cpp b/src/mame/drivers/tecmo.cpp index f06f31e2d96..6c34ab57213 100644 --- a/src/mame/drivers/tecmo.cpp +++ b/src/mame/drivers/tecmo.cpp @@ -632,7 +632,7 @@ void tecmo_state::machine_reset() m_adpcm_data = -1; } -static MACHINE_CONFIG_START( rygar, tecmo_state ) +static MACHINE_CONFIG_START( rygar ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_24MHz/4) /* verified on pcb */ @@ -668,7 +668,7 @@ static MACHINE_CONFIG_START( rygar, tecmo_state ) MCFG_SOUND_ADD("msm", MSM5205, XTAL_400kHz) /* verified on pcb, even if schematics shows a 384khz resonator */ MCFG_MSM5205_VCLK_CB(WRITELINE(tecmo_state, adpcm_int)) /* interrupt function */ - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S48_4B) /* 8KHz */ + MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) /* 8KHz */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) MACHINE_CONFIG_END @@ -1173,12 +1173,12 @@ DRIVER_INIT_MEMBER(tecmo_state,backfirt) -GAME( 1986, rygar, 0, rygar, rygar, tecmo_state, rygar, ROT0, "Tecmo", "Rygar (US set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, rygar2, rygar, rygar, rygar, tecmo_state, rygar, ROT0, "Tecmo", "Rygar (US set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, rygar3, rygar, rygar, rygar, tecmo_state, rygar, ROT0, "Tecmo", "Rygar (US set 3 Old Version)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, rygarj, rygar, rygar, rygar, tecmo_state, rygar, ROT0, "Tecmo", "Argus no Senshi (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, gemini, 0, gemini, gemini, tecmo_state, gemini, ROT90, "Tecmo", "Gemini Wing (Japan)", MACHINE_SUPPORTS_SAVE ) /* Japan regional warning screen */ -GAME( 1987, geminib, gemini, geminib, gemini, tecmo_state, gemini, ROT90, "bootleg", "Gemini Wing (bootleg)", MACHINE_SUPPORTS_SAVE ) /* Japan regional warning screen */ -GAME( 1988, silkworm, 0, silkworm, silkworm, tecmo_state, silkworm, ROT0, "Tecmo", "Silk Worm (World)", MACHINE_SUPPORTS_SAVE ) /* No regional "Warning, if you are playing ..." screen */ -GAME( 1988, silkwormj, silkworm, silkworm, silkworm, tecmo_state, silkworm, ROT0, "Tecmo", "Silk Worm (Japan)", MACHINE_SUPPORTS_SAVE ) /* Japan regional warning screen */ -GAME( 1988, backfirt, 0, backfirt, backfirt, tecmo_state, backfirt, ROT0, "Tecmo", "Back Fire (Tecmo, bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, rygar, 0, rygar, rygar, tecmo_state, rygar, ROT0, "Tecmo", "Rygar (US set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, rygar2, rygar, rygar, rygar, tecmo_state, rygar, ROT0, "Tecmo", "Rygar (US set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, rygar3, rygar, rygar, rygar, tecmo_state, rygar, ROT0, "Tecmo", "Rygar (US set 3 Old Version)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, rygarj, rygar, rygar, rygar, tecmo_state, rygar, ROT0, "Tecmo", "Argus no Senshi (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, gemini, 0, gemini, gemini, tecmo_state, gemini, ROT90, "Tecmo", "Gemini Wing (Japan)", MACHINE_SUPPORTS_SAVE ) // Japan regional warning screen +GAME( 1987, geminib, gemini, geminib, gemini, tecmo_state, gemini, ROT90, "bootleg", "Gemini Wing (bootleg)", MACHINE_SUPPORTS_SAVE ) // Japan regional warning screen +GAME( 1988, silkworm, 0, silkworm, silkworm, tecmo_state, silkworm, ROT0, "Tecmo", "Silk Worm (World)", MACHINE_SUPPORTS_SAVE ) // No regional "Warning, if you are playing ..." screen +GAME( 1988, silkwormj, silkworm, silkworm, silkworm, tecmo_state, silkworm, ROT0, "Tecmo", "Silk Worm (Japan)", MACHINE_SUPPORTS_SAVE ) // Japan regional warning screen +GAME( 1988, backfirt, 0, backfirt, backfirt, tecmo_state, backfirt, ROT0, "Tecmo", "Back Fire (Tecmo, bootleg)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/tecmo16.cpp b/src/mame/drivers/tecmo16.cpp index 86b2cb1ba9c..3899058c3cc 100644 --- a/src/mame/drivers/tecmo16.cpp +++ b/src/mame/drivers/tecmo16.cpp @@ -369,7 +369,7 @@ GFXDECODE_END #define MASTER_CLOCK XTAL_24MHz #define OKI_CLOCK XTAL_8MHz -static MACHINE_CONFIG_START( fstarfrc, tecmo16_state ) +static MACHINE_CONFIG_START( fstarfrc ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000,MASTER_CLOCK/2) /* 12MHz */ @@ -414,7 +414,7 @@ static MACHINE_CONFIG_START( fstarfrc, tecmo16_state ) MCFG_SOUND_ROUTE(0, "lspeaker", 0.60) MCFG_SOUND_ROUTE(1, "rspeaker", 0.60) - MCFG_OKIM6295_ADD("oki", OKI_CLOCK/8, OKIM6295_PIN7_HIGH) // sample rate 1 MHz / 132 + MCFG_OKIM6295_ADD("oki", OKI_CLOCK/8, PIN7_HIGH) // sample rate 1 MHz / 132 MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.40) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.40) MACHINE_CONFIG_END @@ -636,7 +636,7 @@ ROM_END /******************************************************************************/ -GAME( 1992, fstarfrc, 0, fstarfrc, fstarfrc, driver_device, 0, ROT90, "Tecmo", "Final Star Force (US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, fstarfrcj, fstarfrc, fstarfrc, fstarfrc, driver_device, 0, ROT90, "Tecmo", "Final Star Force (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, riot, 0, riot, riot, driver_device, 0, ROT0, "NMK", "Riot", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, ginkun, 0, ginkun, ginkun, driver_device, 0, ROT0, "Tecmo", "Ganbare Ginkun", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, fstarfrc, 0, fstarfrc, fstarfrc, tecmo16_state, 0, ROT90, "Tecmo", "Final Star Force (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, fstarfrcj, fstarfrc, fstarfrc, fstarfrc, tecmo16_state, 0, ROT90, "Tecmo", "Final Star Force (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, riot, 0, riot, riot, tecmo16_state, 0, ROT0, "NMK", "Riot", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, ginkun, 0, ginkun, ginkun, tecmo16_state, 0, ROT0, "Tecmo", "Ganbare Ginkun", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/tecmosys.cpp b/src/mame/drivers/tecmosys.cpp index 6c9e5a7c88d..4495702ce73 100644 --- a/src/mame/drivers/tecmosys.cpp +++ b/src/mame/drivers/tecmosys.cpp @@ -443,7 +443,7 @@ void tecmosys_state::machine_start() save_item(NAME(m_device_value)); } -static MACHINE_CONFIG_START( deroon, tecmosys_state ) +static MACHINE_CONFIG_START( deroon ) MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz) MCFG_CPU_PROGRAM_MAP(main_map) MCFG_CPU_VBLANK_INT_DRIVER("screen", tecmosys_state, irq1_line_hold) @@ -486,7 +486,7 @@ static MACHINE_CONFIG_START( deroon, tecmosys_state ) MCFG_SOUND_ROUTE(2, "lspeaker", 1.00) MCFG_SOUND_ROUTE(3, "rspeaker", 1.00) - MCFG_OKIM6295_ADD("oki", XTAL_16MHz/8, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", XTAL_16MHz/8, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.50) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.50) @@ -665,6 +665,6 @@ DRIVER_INIT_MEMBER(tecmosys_state,tkdensha) prot_init(2); } -GAME( 1995, deroon, 0, deroon, deroon, tecmosys_state, deroon, ROT0, "Tecmo", "Deroon DeroDero", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, deroon, 0, deroon, deroon, tecmosys_state, deroon, ROT0, "Tecmo", "Deroon DeroDero", MACHINE_SUPPORTS_SAVE ) GAME( 1996, tkdensho, 0, deroon, deroon, tecmosys_state, tkdensho, ROT0, "Tecmo", "Toukidenshou - Angel Eyes (VER. 960614)", MACHINE_SUPPORTS_SAVE ) GAME( 1996, tkdenshoa, tkdensho, deroon, deroon, tecmosys_state, tkdensha, ROT0, "Tecmo", "Toukidenshou - Angel Eyes (VER. 960427)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/tecnbras.cpp b/src/mame/drivers/tecnbras.cpp index 0d566901141..9a4a2f10b05 100644 --- a/src/mame/drivers/tecnbras.cpp +++ b/src/mame/drivers/tecnbras.cpp @@ -99,7 +99,7 @@ void tecnbras_state::machine_reset() { } -static MACHINE_CONFIG_START( tecnbras, tecnbras_state ) +static MACHINE_CONFIG_START( tecnbras ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I80C31, XTAL_12MHz) /* verified on pcb */ MCFG_CPU_PROGRAM_MAP(i80c31_prg) @@ -129,5 +129,5 @@ ROM_START( tecnbras ) ROM_LOAD( "tecnbras.u2", 0x0000, 0x8000, CRC(1a1e18fc) SHA1(8907e72f0356a2e2e1097dabac6d6b0b3d717f85) ) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 200?, tecnbras, 0, 0, tecnbras, 0, tecnbras_state, tecnbras, "Tecnbras", "Dot Matrix Display (70x7 pixels)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 200?, tecnbras, 0, 0, tecnbras, 0, tecnbras_state, tecnbras, "Tecnbras", "Dot Matrix Display (70x7 pixels)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND) diff --git a/src/mame/drivers/tehkanwc.cpp b/src/mame/drivers/tehkanwc.cpp index d6a168d509c..d2520dfa171 100644 --- a/src/mame/drivers/tehkanwc.cpp +++ b/src/mame/drivers/tehkanwc.cpp @@ -629,7 +629,7 @@ static GFXDECODE_START( tehkanwc ) GFXDECODE_END -static MACHINE_CONFIG_START( tehkanwc, tehkanwc_state ) +static MACHINE_CONFIG_START( tehkanwc ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 18432000/4) /* 18.432000 / 4 */ @@ -681,7 +681,7 @@ static MACHINE_CONFIG_START( tehkanwc, tehkanwc_state ) MCFG_SOUND_ADD("msm", MSM5205, 384000) MCFG_MSM5205_VCLK_CB(WRITELINE(tehkanwc_state, adpcm_int)) /* interrupt function */ - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S48_4B) /* 8KHz */ + MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) /* 8KHz */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.45) MACHINE_CONFIG_END @@ -902,8 +902,8 @@ ROM_END -GAME( 1985, tehkanwc, 0, tehkanwc, tehkanwc, driver_device, 0, ROT0, "Tehkan", "Tehkan World Cup (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, tehkanwcb, tehkanwc, tehkanwc, tehkanwc, driver_device, 0, ROT0, "Tehkan", "Tehkan World Cup (set 2, bootleg?)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, tehkanwcc, tehkanwc, tehkanwc, tehkanwc, driver_device, 0, ROT0, "bootleg", "Tehkan World Cup (set 3, bootleg)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // aka 'World Cup 85', different inputs? -GAMEL(1985, gridiron, 0, tehkanwc, gridiron, driver_device, 0, ROT0, "Tehkan", "Gridiron Fight", MACHINE_SUPPORTS_SAVE, layout_gridiron ) -GAME( 1986, teedoff, 0, tehkanwc, teedoff, tehkanwc_state, teedoff, ROT90, "Tecmo", "Tee'd Off (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, tehkanwc, 0, tehkanwc, tehkanwc, tehkanwc_state, 0, ROT0, "Tehkan", "Tehkan World Cup (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, tehkanwcb, tehkanwc, tehkanwc, tehkanwc, tehkanwc_state, 0, ROT0, "Tehkan", "Tehkan World Cup (set 2, bootleg?)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, tehkanwcc, tehkanwc, tehkanwc, tehkanwc, tehkanwc_state, 0, ROT0, "bootleg", "Tehkan World Cup (set 3, bootleg)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // aka 'World Cup 85', different inputs? +GAMEL(1985, gridiron, 0, tehkanwc, gridiron, tehkanwc_state, 0, ROT0, "Tehkan", "Gridiron Fight", MACHINE_SUPPORTS_SAVE, layout_gridiron ) +GAME( 1986, teedoff, 0, tehkanwc, teedoff, tehkanwc_state, teedoff, ROT90, "Tecmo", "Tee'd Off (Japan)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/tek405x.cpp b/src/mame/drivers/tek405x.cpp index b15cb5f7d13..f0b7cd15401 100644 --- a/src/mame/drivers/tek405x.cpp +++ b/src/mame/drivers/tek405x.cpp @@ -997,7 +997,7 @@ void tek4052_state::machine_start() // MACHINE_CONFIG( tek4051 ) //------------------------------------------------- -static MACHINE_CONFIG_START( tek4051, tek4051_state ) +static MACHINE_CONFIG_START( tek4051 ) // basic machine hardware MCFG_CPU_ADD(MC6800_TAG, M6800, XTAL_12_5MHz/15) MCFG_CPU_PROGRAM_MAP(tek4051_mem) @@ -1104,7 +1104,7 @@ MACHINE_CONFIG_END // MACHINE_CONFIG( tek4052 ) //------------------------------------------------- -static MACHINE_CONFIG_START( tek4052, tek4052_state ) +static MACHINE_CONFIG_START( tek4052 ) // basic machine hardware MCFG_CPU_ADD(AM2901A_TAG, M6800, 1000000) // should be 4x AM2901A + AM2911 MCFG_CPU_PROGRAM_MAP(tek4052_mem) @@ -1143,7 +1143,7 @@ MACHINE_CONFIG_END // MACHINE_CONFIG( tek4054 ) //------------------------------------------------- /* -static MACHINE_CONFIG_START( tek4054, tek4052_state ) +static MACHINE_CONFIG_START( tek4054 ) MCFG_SCREEN_SIZE(4096, 3125) MCFG_SCREEN_VISIBLE_AREA(0, 4096-1, 0, 3125-1) MACHINE_CONFIG_END @@ -1250,7 +1250,7 @@ ROM_END // SYSTEM DRIVERS //************************************************************************** -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1975, tek4051, 0, 0, tek4051, tek4051, driver_device, 0, "Tektronix", "Tektronix 4051", MACHINE_NOT_WORKING ) -COMP( 1978, tek4052a, tek4051, 0, tek4052, tek4051, driver_device, 0, "Tektronix", "Tektronix 4052A", MACHINE_NOT_WORKING ) -//COMP( 1979, tek4054, tek4051, 0, tek4054, tek4054, driver_device, 0, "Tektronix", "Tektronix 4054", MACHINE_NOT_WORKING ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1975, tek4051, 0, 0, tek4051, tek4051, tek4051_state, 0, "Tektronix", "Tektronix 4051", MACHINE_NOT_WORKING ) +COMP( 1978, tek4052a, tek4051, 0, tek4052, tek4051, tek4052_state, 0, "Tektronix", "Tektronix 4052A", MACHINE_NOT_WORKING ) +//COMP( 1979, tek4054, tek4051, 0, tek4054, tek4054, tek4052_state, 0, "Tektronix", "Tektronix 4054", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/tek410x.cpp b/src/mame/drivers/tek410x.cpp index 4aa5f7239c8..ce7e68ae312 100644 --- a/src/mame/drivers/tek410x.cpp +++ b/src/mame/drivers/tek410x.cpp @@ -86,7 +86,7 @@ void tek4107a_state::machine_start() /* Machine Driver */ -static MACHINE_CONFIG_START( tek4107a, tek4107a_state ) +static MACHINE_CONFIG_START( tek4107a ) /* basic machine hardware */ MCFG_CPU_ADD(I80188_TAG, I80188, 21000000) MCFG_CPU_PROGRAM_MAP(tek4107a_mem) @@ -145,6 +145,6 @@ ROM_END /* System Drivers */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1983, tek4107a, 0, 0, tek4107a, tek4107a, driver_device, 0, "Tektronix", "Tektronix 4107A", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -COMP( 1983, tek4109a, tek4107a, 0, tek4109a, tek4107a, driver_device, 0, "Tektronix", "Tektronix 4109A", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1983, tek4107a, 0, 0, tek4107a, tek4107a, tek4107a_state, 0, "Tektronix", "Tektronix 4107A", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +COMP( 1983, tek4109a, tek4107a, 0, tek4109a, tek4107a, tek4107a_state, 0, "Tektronix", "Tektronix 4109A", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/tek440x.cpp b/src/mame/drivers/tek440x.cpp index f1bb716e35e..7cbf75a87c0 100644 --- a/src/mame/drivers/tek440x.cpp +++ b/src/mame/drivers/tek440x.cpp @@ -180,7 +180,7 @@ INPUT_PORTS_END * *************************************/ -static MACHINE_CONFIG_START( tek4404, tek440x_state ) +static MACHINE_CONFIG_START( tek4404 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68010, 166666666) @@ -236,5 +236,5 @@ ROM_END * Game driver(s) * *************************************/ -/* YEAR NAME PARENT COMPAT MACHINE INPUT DEVICE INIT COMPANY FULLNAME FLAGS*/ -COMP( 1984, tek4404, 0, 0, tek4404, tek4404, driver_device, 0, "Tektronix", "4404", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +// YEAR NAME PARENT COMPAT MACHINE INPUT DEVICE INIT COMPANY FULLNAME FLAGS +COMP( 1984, tek4404, 0, 0, tek4404, tek4404, tek440x_state, 0, "Tektronix", "4404", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/tekxp33x.cpp b/src/mame/drivers/tekxp33x.cpp index facbf3e3fb7..1ee06d723c3 100644 --- a/src/mame/drivers/tekxp33x.cpp +++ b/src/mame/drivers/tekxp33x.cpp @@ -89,7 +89,7 @@ void tekxp330_state::machine_start() /* Machine Driver */ -static MACHINE_CONFIG_START( tekxp330, tekxp330_state ) +static MACHINE_CONFIG_START( tekxp330 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", R3052, XTAL_20MHz) /* IDT 79R3052E, clock unknown */ MCFG_R3000_ENDIANNESS(ENDIANNESS_BIG) @@ -119,5 +119,5 @@ ROM_END /* System Drivers */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1992, tekxp330, 0, 0, tekxp330, tekxp330, driver_device, 0, "Tektronix", "TekXpress XP330", MACHINE_IS_SKELETON ) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 1992, tekxp330, 0, 0, tekxp330, tekxp330, tekxp330_state, 0, "Tektronix", "TekXpress XP330", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/tempest.cpp b/src/mame/drivers/tempest.cpp index 23b38702f8d..2e976721b74 100644 --- a/src/mame/drivers/tempest.cpp +++ b/src/mame/drivers/tempest.cpp @@ -589,7 +589,7 @@ INPUT_PORTS_END * *************************************/ -static MACHINE_CONFIG_START( tempest, tempest_state ) +static MACHINE_CONFIG_START( tempest ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, MASTER_CLOCK / 8) @@ -863,9 +863,9 @@ ROM_END * *************************************/ -GAME( 1980, tempest, 0, tempest, tempest, driver_device, 0, ROT270, "Atari", "Tempest (rev 3, Revised Hardware)", MACHINE_SUPPORTS_SAVE ) -GAME( 1980, tempest3, tempest, tempest, tempest, driver_device, 0, ROT270, "Atari", "Tempest (rev 3)", MACHINE_SUPPORTS_SAVE ) -GAME( 1980, tempest2, tempest, tempest, tempest, driver_device, 0, ROT270, "Atari", "Tempest (rev 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1980, tempest1, tempest, tempest, tempest, driver_device, 0, ROT270, "Atari", "Tempest (rev 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1980, tempest1r, tempest, tempest, tempest, driver_device, 0, ROT270, "Atari", "Tempest (rev 1, Revised Hardware)", MACHINE_SUPPORTS_SAVE ) -GAME( 1980, temptube, tempest, tempest, tempest, driver_device, 0, ROT270, "hack (Duncan Brown)", "Tempest Tubes", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, tempest, 0, tempest, tempest, tempest_state, 0, ROT270, "Atari", "Tempest (rev 3, Revised Hardware)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, tempest3, tempest, tempest, tempest, tempest_state, 0, ROT270, "Atari", "Tempest (rev 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, tempest2, tempest, tempest, tempest, tempest_state, 0, ROT270, "Atari", "Tempest (rev 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, tempest1, tempest, tempest, tempest, tempest_state, 0, ROT270, "Atari", "Tempest (rev 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, tempest1r, tempest, tempest, tempest, tempest_state, 0, ROT270, "Atari", "Tempest (rev 1, Revised Hardware)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, temptube, tempest, tempest, tempest, tempest_state, 0, ROT270, "hack (Duncan Brown)", "Tempest Tubes", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/terak.cpp b/src/mame/drivers/terak.cpp index b97a4e95311..be2216212ef 100644 --- a/src/mame/drivers/terak.cpp +++ b/src/mame/drivers/terak.cpp @@ -90,7 +90,7 @@ uint32_t terak_state::screen_update_terak(screen_device &screen, bitmap_ind16 &b } -static MACHINE_CONFIG_START( terak, terak_state ) +static MACHINE_CONFIG_START( terak ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",T11, XTAL_4MHz) MCFG_T11_INITIAL_MODE(6 << 13) @@ -118,5 +118,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( ????, terak, 0, 0, terak, terak, driver_device, 0, "Terak", "Terak 8510A", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( ????, terak, 0, 0, terak, terak, terak_state, 0, "Terak", "Terak 8510A", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/terracre.cpp b/src/mame/drivers/terracre.cpp index 154a4db7dd3..259c0e1f49a 100644 --- a/src/mame/drivers/terracre.cpp +++ b/src/mame/drivers/terracre.cpp @@ -517,7 +517,7 @@ static GFXDECODE_START( terracre ) GFXDECODE_END -static MACHINE_CONFIG_START( ym3526, terracre_state ) +static MACHINE_CONFIG_START( ym3526 ) MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz/2) // 8mhz MCFG_CPU_PROGRAM_MAP(terracre_map) MCFG_CPU_VBLANK_INT_DRIVER("screen", terracre_state, irq1_line_hold) @@ -958,13 +958,13 @@ DRIVER_INIT_MEMBER(terracre_state,horekid) m_mpProtData = mHoreKidProtData; } -/* YEAR, NAME, PARENT, MACHINE, INPUT, INIT, MONITOR, COMPANY, FULLNAME, FLAGS */ +/* YEAR, NAME, PARENT, MACHINE, INPUT, STATE, INIT, MONITOR, COMPANY, FULLNAME, FLAGS */ GAME( 1985, terracre, 0, ym3526, terracre, driver_device, 0, ROT270, "Nichibutsu", "Terra Cresta (YM3526 set 1)", MACHINE_SUPPORTS_SAVE ) GAME( 1985, terracreo,terracre, ym3526, terracre, driver_device, 0, ROT270, "Nichibutsu", "Terra Cresta (YM3526 set 2)", MACHINE_SUPPORTS_SAVE ) GAME( 1985, terracrea,terracre, ym3526, terracre, driver_device, 0, ROT270, "Nichibutsu", "Terra Cresta (YM3526 set 3)", MACHINE_SUPPORTS_SAVE ) GAME( 1985, terracren,terracre, ym2203, terracre, driver_device, 0, ROT270, "Nichibutsu", "Terra Cresta (YM2203)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, amazon, 0, amazon, amazon, terracre_state, amazon, ROT270, "Nichibutsu", "Soldier Girl Amazon", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, amatelas, amazon, amazon, amazon, terracre_state, amatelas, ROT270, "Nichibutsu", "Sei Senshi Amatelass", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, horekid, 0, amazon, horekid, terracre_state, horekid, ROT270, "Nichibutsu", "Kid no Hore Hore Daisakusen", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, horekidb, horekid, amazon, horekid, terracre_state, horekid, ROT270, "bootleg", "Kid no Hore Hore Daisakusen (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, boobhack, horekid, amazon, horekid, terracre_state, horekid, ROT270, "bootleg", "Booby Kids (Italian manufactured graphic hack / bootleg of Kid no Hore Hore Daisakusen (bootleg))", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, amazon, 0, amazon, amazon, terracre_state, amazon, ROT270, "Nichibutsu", "Soldier Girl Amazon", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, amatelas, amazon, amazon, amazon, terracre_state, amatelas, ROT270, "Nichibutsu", "Sei Senshi Amatelass", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, horekid, 0, amazon, horekid, terracre_state, horekid, ROT270, "Nichibutsu", "Kid no Hore Hore Daisakusen", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, horekidb, horekid, amazon, horekid, terracre_state, horekid, ROT270, "bootleg", "Kid no Hore Hore Daisakusen (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, boobhack, horekid, amazon, horekid, terracre_state, horekid, ROT270, "bootleg", "Booby Kids (Italian manufactured graphic hack / bootleg of Kid no Hore Hore Daisakusen (bootleg))", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/test_t400.cpp b/src/mame/drivers/test_t400.cpp index 4f1a755ae16..b483bb9d779 100644 --- a/src/mame/drivers/test_t400.cpp +++ b/src/mame/drivers/test_t400.cpp @@ -27,13 +27,13 @@ WRITE8_MEMBER( t400_test_suite_state::port_l_w ) // printf("L: %u\n", data); } -static MACHINE_CONFIG_START( test_t410, t400_test_suite_state ) +static MACHINE_CONFIG_START( test_t410 ) MCFG_CPU_ADD("maincpu", COP410, 1000000) MCFG_COP400_CONFIG( COP400_CKI_DIVISOR_16, COP400_CKO_OSCILLATOR_OUTPUT, false ) MCFG_COP400_WRITE_L_CB(WRITE8(t400_test_suite_state, port_l_w)) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( test_t420, t400_test_suite_state ) +static MACHINE_CONFIG_START( test_t420 ) MCFG_CPU_ADD("maincpu", COP420, 1000000) MCFG_COP400_CONFIG( COP400_CKI_DIVISOR_16, COP400_CKO_OSCILLATOR_OUTPUT, true ) MCFG_COP400_WRITE_L_CB(WRITE8(t400_test_suite_state, port_l_w)) @@ -49,5 +49,5 @@ ROM_START( test420 ) ROM_LOAD( "rom_42x.bin", 0x000, 0x400, BAD_DUMP CRC(e4e80001) SHA1(8fdca9d08de1cc83387a7d141f6b254117902442) ) ROM_END -COMP( 2008, test410, 0, 0, test_t410, 0, driver_device, 0, "T400 uController project", "T410 test suite", MACHINE_NO_SOUND_HW ) -COMP( 2008, test420, test410, 0, test_t420, 0, driver_device, 0, "T400 uController project", "T420 test suite", MACHINE_NO_SOUND_HW ) +COMP( 2008, test410, 0, 0, test_t410, 0, t400_test_suite_state, 0, "T400 uController project", "T410 test suite", MACHINE_NO_SOUND_HW ) +COMP( 2008, test420, test410, 0, test_t420, 0, t400_test_suite_state, 0, "T400 uController project", "T420 test suite", MACHINE_NO_SOUND_HW ) diff --git a/src/mame/drivers/testconsole.cpp b/src/mame/drivers/testconsole.cpp index 29bcc9450ad..a9aede76b62 100644 --- a/src/mame/drivers/testconsole.cpp +++ b/src/mame/drivers/testconsole.cpp @@ -165,7 +165,7 @@ INPUT_PORTS_START(whousetc) INPUT_PORTS_END -MACHINE_CONFIG_START(whousetc, whouse_testcons_state) +MACHINE_CONFIG_START(whousetc) MCFG_CPU_ADD("maincpu", I8085A, XTAL_6_144MHz) MCFG_CPU_PROGRAM_MAP(program_map) MCFG_CPU_IO_MAP(io_map) @@ -199,4 +199,4 @@ ROM_END } // anonymous namespace // YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS -COMP( 1980?, whousetc, 0, 0, whousetc, whousetc, whouse_testcons_state, whousetc, "Westinghouse", "Test Console Serial #5", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) +COMP( 1980?, whousetc, 0, 0, whousetc, whousetc, whouse_testcons_state, whousetc, "Westinghouse", "Test Console Serial #5", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW | MACHINE_CLICKABLE_ARTWORK ) diff --git a/src/mame/drivers/tetrisp2.cpp b/src/mame/drivers/tetrisp2.cpp index 6be898f5609..2c7d5f3e112 100644 --- a/src/mame/drivers/tetrisp2.cpp +++ b/src/mame/drivers/tetrisp2.cpp @@ -1329,7 +1329,7 @@ DRIVER_INIT_MEMBER(stepstag_state,stepstag) } -static MACHINE_CONFIG_START( tetrisp2, tetrisp2_state ) +static MACHINE_CONFIG_START( tetrisp2 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 12000000) @@ -1364,7 +1364,7 @@ static MACHINE_CONFIG_START( tetrisp2, tetrisp2_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( nndmseal, tetrisp2_state ) +static MACHINE_CONFIG_START( nndmseal ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_12MHz) @@ -1392,12 +1392,12 @@ static MACHINE_CONFIG_START( nndmseal, tetrisp2_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", XTAL_2MHz, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", XTAL_2MHz, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( rockn, tetrisp2_state ) +static MACHINE_CONFIG_START( rockn ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 12000000) @@ -1431,7 +1431,7 @@ static MACHINE_CONFIG_START( rockn, tetrisp2_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( rockn2, tetrisp2_state ) +static MACHINE_CONFIG_START( rockn2 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 12000000) @@ -1465,7 +1465,7 @@ static MACHINE_CONFIG_START( rockn2, tetrisp2_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( rocknms, tetrisp2_state ) +static MACHINE_CONFIG_START( rocknms ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 12000000) @@ -1515,7 +1515,7 @@ static MACHINE_CONFIG_START( rocknms, tetrisp2_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( stepstag, stepstag_state ) +static MACHINE_CONFIG_START( stepstag ) MCFG_CPU_ADD("maincpu", M68000, 16000000 ) //?? MCFG_CPU_PROGRAM_MAP(stepstag_map) MCFG_CPU_VBLANK_INT_DRIVER("screen", tetrisp2_state, irq2_line_hold) // lev 4 triggered by system timer @@ -2291,19 +2291,19 @@ ROM_END ***************************************************************************/ -GAME( 1997, tetrisp2, 0, tetrisp2, tetrisp2, driver_device, 0, ROT0, "Jaleco / The Tetris Company", "Tetris Plus 2 (World)", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, tetrisp2j, tetrisp2, tetrisp2, tetrisp2j, driver_device,0, ROT0, "Jaleco / The Tetris Company", "Tetris Plus 2 (Japan, V2.2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, tetrisp2ja,tetrisp2, tetrisp2, tetrisp2j, driver_device,0, ROT0, "Jaleco / The Tetris Company", "Tetris Plus 2 (Japan, V2.1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, tetrisp2, 0, tetrisp2, tetrisp2, tetrisp2_state, 0, ROT0, "Jaleco / The Tetris Company", "Tetris Plus 2 (World)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, tetrisp2j, tetrisp2, tetrisp2, tetrisp2j, tetrisp2_state, 0, ROT0, "Jaleco / The Tetris Company", "Tetris Plus 2 (Japan, V2.2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, tetrisp2ja,tetrisp2, tetrisp2, tetrisp2j, tetrisp2_state, 0, ROT0, "Jaleco / The Tetris Company", "Tetris Plus 2 (Japan, V2.1)", MACHINE_SUPPORTS_SAVE ) GAME( 1997, nndmseal, 0, nndmseal, nndmseal, tetrisp2_state, rockn, ROT0 | ORIENTATION_FLIP_X, "I'Max / Jaleco", "Nandemo Seal Iinkai", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) GAME( 1997, nndmseala,nndmseal, nndmseal, nndmseal, tetrisp2_state, rockn, ROT0 | ORIENTATION_FLIP_X, "I'Max / Jaleco", "Nandemo Seal Iinkai (Astro Boy ver.)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) -GAME( 1999, rockn, 0, rockn, rockn, tetrisp2_state, rockn, ROT270, "Jaleco", "Rock'n Tread (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1999, rockna, rockn, rockn, rockn, tetrisp2_state, rockn1, ROT270, "Jaleco", "Rock'n Tread (Japan, alternate)", MACHINE_SUPPORTS_SAVE ) -GAME( 1999, rockn2, 0, rockn2, rockn, tetrisp2_state, rockn2, ROT270, "Jaleco", "Rock'n Tread 2 (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, rockn, 0, rockn, rockn, tetrisp2_state, rockn, ROT270, "Jaleco", "Rock'n Tread (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, rockna, rockn, rockn, rockn, tetrisp2_state, rockn1, ROT270, "Jaleco", "Rock'n Tread (Japan, alternate)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, rockn2, 0, rockn2, rockn, tetrisp2_state, rockn2, ROT270, "Jaleco", "Rock'n Tread 2 (Japan)", MACHINE_SUPPORTS_SAVE ) GAME( 1999, rocknms, 0, rocknms, rocknms, tetrisp2_state, rocknms, ROT0, "Jaleco", "Rock'n MegaSession (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1999, rockn3, 0, rockn2, rockn, tetrisp2_state, rockn3, ROT270, "Jaleco", "Rock'n 3 (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 2000, rockn4, 0, rockn2, rockn, tetrisp2_state, rockn3, ROT270, "Jaleco / PCCWJ", "Rock'n 4 (Japan, prototype)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, rockn3, 0, rockn2, rockn, tetrisp2_state, rockn3, ROT270, "Jaleco", "Rock'n 3 (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, rockn4, 0, rockn2, rockn, tetrisp2_state, rockn3, ROT270, "Jaleco / PCCWJ", "Rock'n 4 (Japan, prototype)", MACHINE_SUPPORTS_SAVE ) // Undumped: // - Stepping Stage <- the original Game diff --git a/src/mame/drivers/tgtpanic.cpp b/src/mame/drivers/tgtpanic.cpp index fcc5d569b8c..d019ab9418f 100644 --- a/src/mame/drivers/tgtpanic.cpp +++ b/src/mame/drivers/tgtpanic.cpp @@ -146,7 +146,7 @@ INPUT_PORTS_END * *************************************/ -static MACHINE_CONFIG_START( tgtpanic, tgtpanic_state ) +static MACHINE_CONFIG_START( tgtpanic ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_4MHz) @@ -182,4 +182,4 @@ ROM_END * *************************************/ -GAME( 1996, tgtpanic, 0, tgtpanic, tgtpanic, driver_device, 0, ROT0, "Konami", "Target Panic", MACHINE_NO_SOUND_HW | MACHINE_SUPPORTS_SAVE ) +GAME( 1996, tgtpanic, 0, tgtpanic, tgtpanic, tgtpanic_state, 0, ROT0, "Konami", "Target Panic", MACHINE_NO_SOUND_HW | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/thayers.cpp b/src/mame/drivers/thayers.cpp index 1ce7ade58b6..01e92543351 100644 --- a/src/mame/drivers/thayers.cpp +++ b/src/mame/drivers/thayers.cpp @@ -786,7 +786,7 @@ void thayers_state::machine_reset() /* Machine Driver */ -static MACHINE_CONFIG_START( thayers, thayers_state ) +static MACHINE_CONFIG_START( thayers ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_4MHz) @@ -847,6 +847,6 @@ ROM_END /* Game Drivers */ -/* YEAR NAME PARENT MACHINE INPUT INIT MONITOR COMPANY FULLNAME FLAGS LAYOUT */ -GAMEL( 1984, thayers, 0, thayers, thayers, driver_device, 0, ROT0, "RDI Video Systems", "Thayer's Quest (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND, layout_thayers) -GAMEL( 1984, thayersa, thayers, thayers, thayers, driver_device, 0, ROT0, "RDI Video Systems", "Thayer's Quest (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND, layout_thayers) +// YEAR NAME PARENT MACHINE INPUT STATE INIT MONITOR COMPANY FULLNAME FLAGS LAYOUT +GAMEL( 1984, thayers, 0, thayers, thayers, thayers_state, 0, ROT0, "RDI Video Systems", "Thayer's Quest (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND, layout_thayers) +GAMEL( 1984, thayersa, thayers, thayers, thayers, thayers_state, 0, ROT0, "RDI Video Systems", "Thayer's Quest (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND, layout_thayers) diff --git a/src/mame/drivers/thedealr.cpp b/src/mame/drivers/thedealr.cpp index ae24182814b..3010b8bf23b 100644 --- a/src/mame/drivers/thedealr.cpp +++ b/src/mame/drivers/thedealr.cpp @@ -523,7 +523,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(thedealr_state::thedealr_interrupt) m_maincpu->set_input_line(INPUT_LINE_IRQ0, ASSERT_LINE); } -static MACHINE_CONFIG_START( thedealr, thedealr_state ) +static MACHINE_CONFIG_START( thedealr ) // basic machine hardware MCFG_CPU_ADD("maincpu", R65C02, XTAL_16MHz/8) // 2 MHz? @@ -592,4 +592,4 @@ ROM_START( thedealr ) ROM_LOAD( "xb0-u68.u68", 0x200, 0x200, CRC(c0c54d43) SHA1(5ce352fb888c8e683014c73e6da00ec95f2ae572) ) ROM_END -GAME( 1988?, thedealr, 0, thedealr, thedealr, driver_device, 0, ROT0, "Visco Games", "The Dealer (Visco)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988?, thedealr, 0, thedealr, thedealr, thedealr_state, 0, ROT0, "Visco Games", "The Dealer (Visco)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/thedeep.cpp b/src/mame/drivers/thedeep.cpp index 512d4c902b8..544f70eccfb 100644 --- a/src/mame/drivers/thedeep.cpp +++ b/src/mame/drivers/thedeep.cpp @@ -411,7 +411,7 @@ INTERRUPT_GEN_MEMBER(thedeep_state::mcu_irq) m_mcu->set_input_line(MCS51_INT1_LINE, ASSERT_LINE); } -static MACHINE_CONFIG_START( thedeep, thedeep_state ) +static MACHINE_CONFIG_START( thedeep ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_12MHz/2) /* verified on pcb */ @@ -548,5 +548,5 @@ ROM_START( rundeep ) ROM_LOAD( "fi-3", 0x400, 0x200, CRC(f61a9686) SHA1(24082f60b72268d240ceca6999bdf18872625cd2) ) ROM_END -GAME( 1987, thedeep, 0, thedeep, thedeep, driver_device, 0, ROT270, "Wood Place Inc.", "The Deep (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, rundeep, thedeep,thedeep, thedeep, driver_device, 0, ROT270, "bootleg (Cream)", "Run Deep", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, thedeep, 0, thedeep, thedeep, thedeep_state, 0, ROT270, "Wood Place Inc.", "The Deep (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, rundeep, thedeep, thedeep, thedeep, thedeep_state, 0, ROT270, "bootleg (Cream)", "Run Deep", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/thepit.cpp b/src/mame/drivers/thepit.cpp index bd8fe558636..85c6f9cc543 100644 --- a/src/mame/drivers/thepit.cpp +++ b/src/mame/drivers/thepit.cpp @@ -709,7 +709,7 @@ INTERRUPT_GEN_MEMBER(thepit_state::vblank_irq) device.execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE); } -static MACHINE_CONFIG_START( thepit, thepit_state ) +static MACHINE_CONFIG_START( thepit ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, PIXEL_CLOCK/2) /* 3.072 MHz */ @@ -1268,32 +1268,32 @@ DRIVER_INIT_MEMBER(thepit_state,rtriv) } -GAME( 1981, roundup, 0, thepit, roundup, driver_device, 0, ROT90, "Taito Corporation (Amenip/Centuri license)", "Round-Up", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, fitter, roundup, thepit, fitter, driver_device, 0, ROT90, "Taito Corporation", "Fitter", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, fitterbl, roundup, thepit, fitter, driver_device, 0, ROT90, "bootleg", "Fitter (bootleg of Round-Up)", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, ttfitter, roundup, thepit, fitter, driver_device, 0, ROT90, "Taito Corporation", "T.T. Fitter (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, roundup, 0, thepit, roundup, thepit_state, 0, ROT90, "Taito Corporation (Amenip/Centuri license)", "Round-Up", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, fitter, roundup, thepit, fitter, thepit_state, 0, ROT90, "Taito Corporation", "Fitter", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, fitterbl, roundup, thepit, fitter, thepit_state, 0, ROT90, "bootleg", "Fitter (bootleg of Round-Up)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, ttfitter, roundup, thepit, fitter, thepit_state, 0, ROT90, "Taito Corporation", "T.T. Fitter (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, thepit, 0, thepit, thepit, driver_device, 0, ROT90, "Zilec Electronics", "The Pit", MACHINE_SUPPORTS_SAVE ) // AW == Andy Walker -GAME( 1982, thepitu1, thepit, thepit, thepit, driver_device, 0, ROT90, "Zilec Electronics (Centuri license)", "The Pit (US set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, thepitu2, thepit, thepit, thepit, driver_device, 0, ROT90, "Zilec Electronics (Centuri license)", "The Pit (US set 2)", MACHINE_SUPPORTS_SAVE ) // Bally PCB -GAME( 1982, thepitj, thepit, thepit, thepit, driver_device, 0, ROT90, "Zilec Electronics (Taito license)", "The Pit (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, thepit, 0, thepit, thepit, thepit_state, 0, ROT90, "Zilec Electronics", "The Pit", MACHINE_SUPPORTS_SAVE ) // AW == Andy Walker +GAME( 1982, thepitu1, thepit, thepit, thepit, thepit_state, 0, ROT90, "Zilec Electronics (Centuri license)", "The Pit (US set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, thepitu2, thepit, thepit, thepit, thepit_state, 0, ROT90, "Zilec Electronics (Centuri license)", "The Pit (US set 2)", MACHINE_SUPPORTS_SAVE ) // Bally PCB +GAME( 1982, thepitj, thepit, thepit, thepit, thepit_state, 0, ROT90, "Zilec Electronics (Taito license)", "The Pit (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, dockman, 0, intrepid, dockman, driver_device, 0, ROT90, "Taito Corporation", "Dock Man", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, portman, dockman, intrepid, dockman, driver_device, 0, ROT90, "Taito Corporation (Nova Games Ltd. license)", "Port Man", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, dockman, 0, intrepid, dockman, thepit_state, 0, ROT90, "Taito Corporation", "Dock Man", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, portman, dockman, intrepid, dockman, thepit_state, 0, ROT90, "Taito Corporation (Nova Games Ltd. license)", "Port Man", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, suprmous, 0, suprmous, suprmous, driver_device, 0, ROT90, "Taito Corporation", "Super Mouse", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, funnymou, suprmous, suprmous, suprmous, driver_device, 0, ROT90, "Taito Corporation (Chuo Co. Ltd license)", "Funny Mouse (Japan)", MACHINE_SUPPORTS_SAVE ) // Taito PCB +GAME( 1982, suprmous, 0, suprmous, suprmous, thepit_state, 0, ROT90, "Taito Corporation", "Super Mouse", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, funnymou, suprmous, suprmous, suprmous, thepit_state, 0, ROT90, "Taito Corporation (Chuo Co. Ltd license)", "Funny Mouse (Japan)", MACHINE_SUPPORTS_SAVE ) // Taito PCB -GAME( 1982, machomou, 0, suprmous, suprmous, driver_device, 0, ROT90, "Techstar", "Macho Mouse", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, machomou, 0, suprmous, suprmous, thepit_state, 0, ROT90, "Techstar", "Macho Mouse", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, desertdn, 0, desertdn, desertdn, driver_device, 0, ROT0, "Video Optics", "Desert Dan", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, desertdn, 0, desertdn, desertdn, thepit_state, 0, ROT0, "Video Optics", "Desert Dan", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, intrepid, 0, intrepid, intrepid, driver_device, 0, ROT90, "Nova Games Ltd.", "Intrepid (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, intrepid2,intrepid, intrepid, intrepid, driver_device, 0, ROT90, "Nova Games Ltd.", "Intrepid (set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, intrepidb,intrepid, intrepid, intrepid, driver_device, 0, ROT90, "bootleg (Elsys)", "Intrepid (Elsys bootleg, set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, intrepidb3,intrepid,intrepid, intrepid, driver_device, 0, ROT90, "bootleg (Elsys)", "Intrepid (Elsys bootleg, set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, intrepidb2,intrepid,intrepid, intrepid, driver_device, 0, ROT90, "bootleg (Loris)", "Intrepid (Loris bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, intrepid, 0, intrepid, intrepid, thepit_state, 0, ROT90, "Nova Games Ltd.", "Intrepid (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, intrepid2, intrepid, intrepid, intrepid, thepit_state, 0, ROT90, "Nova Games Ltd.", "Intrepid (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, intrepidb, intrepid, intrepid, intrepid, thepit_state, 0, ROT90, "bootleg (Elsys)", "Intrepid (Elsys bootleg, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, intrepidb3, intrepid, intrepid, intrepid, thepit_state, 0, ROT90, "bootleg (Elsys)", "Intrepid (Elsys bootleg, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, intrepidb2, intrepid, intrepid, intrepid, thepit_state, 0, ROT90, "bootleg (Loris)", "Intrepid (Loris bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, zaryavos, 0, intrepid, intrepid, driver_device, 0, ROT90, "Nova Games of Canada", "Zarya Vostoka", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +GAME( 1984, zaryavos, 0, intrepid, intrepid, thepit_state, 0, ROT90, "Nova Games of Canada", "Zarya Vostoka", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) -GAME( 198?, rtriv, 0, intrepid, rtriv, thepit_state, rtriv, ROT90, "Romar", "Romar Triv", MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE ) +GAME( 198?, rtriv, 0, intrepid, rtriv, thepit_state, rtriv, ROT90, "Romar", "Romar Triv", MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/thief.cpp b/src/mame/drivers/thief.cpp index 7e00ffa668c..633257fe6f1 100644 --- a/src/mame/drivers/thief.cpp +++ b/src/mame/drivers/thief.cpp @@ -387,7 +387,7 @@ static const char *const natodef_sample_names[] = }; -static MACHINE_CONFIG_START( thief, thief_state ) +static MACHINE_CONFIG_START( thief ) MCFG_CPU_ADD("maincpu", Z80, XTAL_8MHz/2) MCFG_CPU_PROGRAM_MAP(thief_main_map) MCFG_CPU_IO_MAP(io_map) @@ -549,7 +549,7 @@ DRIVER_INIT_MEMBER(thief_state,thief) } -GAME( 1980, sharkatt, 0, sharkatt, sharkatt, driver_device, 0, ROT0, "Pacific Novelty", "Shark Attack", 0 ) -GAME( 1981, thief, 0, thief, thief, thief_state, thief, ROT0, "Pacific Novelty", "Thief", 0 ) -GAME( 1982, natodef, 0, natodef, natodef, thief_state, thief, ROT0, "Pacific Novelty", "NATO Defense" , 0 ) -GAME( 1982, natodefa, natodef, natodef, natodef, thief_state, thief, ROT0, "Pacific Novelty", "NATO Defense (alternate mazes)" , 0 ) +GAME( 1980, sharkatt, 0, sharkatt, sharkatt, thief_state, 0, ROT0, "Pacific Novelty", "Shark Attack", 0 ) +GAME( 1981, thief, 0, thief, thief, thief_state, thief, ROT0, "Pacific Novelty", "Thief", 0 ) +GAME( 1982, natodef, 0, natodef, natodef, thief_state, thief, ROT0, "Pacific Novelty", "NATO Defense" , 0 ) +GAME( 1982, natodefa, natodef, natodef, natodef, thief_state, thief, ROT0, "Pacific Novelty", "NATO Defense (alternate mazes)" , 0 ) diff --git a/src/mame/drivers/thomson.cpp b/src/mame/drivers/thomson.cpp index ca513e95a57..7864b3a1d8c 100644 --- a/src/mame/drivers/thomson.cpp +++ b/src/mame/drivers/thomson.cpp @@ -617,7 +617,7 @@ SLOT_INTERFACE_END /* ------------ driver ------------ */ -static MACHINE_CONFIG_START( to7, thomson_state ) +static MACHINE_CONFIG_START( to7 ) MCFG_MACHINE_START_OVERRIDE( thomson_state, to7 ) MCFG_MACHINE_RESET_OVERRIDE( thomson_state, to7 ) @@ -759,9 +759,9 @@ static MACHINE_CONFIG_DERIVED( t9000, to7 ) MACHINE_CONFIG_END -COMP ( 1982, to7, 0, 0, to7, to7, driver_device, 0, "Thomson", "TO7", 0 ) +COMP ( 1982, to7, 0, 0, to7, to7, thomson_state, 0, "Thomson", "TO7", 0 ) -COMP ( 1980, t9000, to7, 0, t9000, t9000, driver_device, 0, "Thomson", "T9000", 0 ) +COMP ( 1980, t9000, to7, 0, t9000, t9000, thomson_state, 0, "Thomson", "T9000", 0 ) /***************************** TO7/70 ********************************* @@ -948,9 +948,9 @@ static MACHINE_CONFIG_DERIVED( to770a, to770 ) MCFG_SOFTWARE_LIST_ADD("t770a_cart_list","to770a_cart") MACHINE_CONFIG_END -COMP ( 1984, to770, 0, 0, to770, to770, driver_device, 0, "Thomson", "TO7/70", 0 ) +COMP ( 1984, to770, 0, 0, to770, to770, thomson_state, 0, "Thomson", "TO7/70", 0 ) -COMP ( 1984, to770a, to770, 0, to770a, to770a, driver_device, 0, "Thomson", "TO7/70 (Arabic)", 0 ) +COMP ( 1984, to770a, to770, 0, to770a, to770a, thomson_state, 0, "Thomson", "TO7/70 (Arabic)", 0 ) /************************* MO5 / MO5E ********************************* @@ -1156,9 +1156,9 @@ static MACHINE_CONFIG_DERIVED( mo5e, mo5 ) MACHINE_CONFIG_END -COMP ( 1984, mo5, 0, 0, mo5, mo5, driver_device, 0, "Thomson", "MO5", 0 ) +COMP ( 1984, mo5, 0, 0, mo5, mo5, thomson_state, 0, "Thomson", "MO5", 0 ) -COMP ( 1986, mo5e, mo5, 0, mo5e, mo5e, driver_device, 0, "Thomson", "MO5E", 0 ) +COMP ( 1986, mo5e, mo5, 0, mo5e, mo5e, thomson_state, 0, "Thomson", "MO5E", 0 ) /********************************* TO9 ******************************* @@ -1495,7 +1495,7 @@ static MACHINE_CONFIG_DERIVED( to9, to7 ) MACHINE_CONFIG_END -COMP ( 1985, to9, 0, 0, to9, to9, driver_device, 0, "Thomson", "TO9", MACHINE_IMPERFECT_COLORS ) +COMP ( 1985, to9, 0, 0, to9, to9, thomson_state, 0, "Thomson", "TO9", MACHINE_IMPERFECT_COLORS ) /******************************** TO8 ******************************** @@ -1730,9 +1730,9 @@ static MACHINE_CONFIG_DERIVED( to8d, to8 ) MACHINE_CONFIG_END -COMP ( 1986, to8, 0, 0, to8, to8, driver_device, 0, "Thomson", "TO8", 0 ) +COMP ( 1986, to8, 0, 0, to8, to8, thomson_state, 0, "Thomson", "TO8", 0 ) -COMP ( 1987, to8d, to8, 0, to8d, to8d, driver_device, 0, "Thomson", "TO8D", 0 ) +COMP ( 1987, to8d, to8, 0, to8d, to8d, thomson_state, 0, "Thomson", "TO8D", 0 ) /******************************** TO9+ ******************************* @@ -1889,7 +1889,7 @@ static MACHINE_CONFIG_DERIVED( to9p, to7 ) MCFG_SOFTWARE_LIST_COMPATIBLE_ADD("to7_qd_list", "to7_qd") MACHINE_CONFIG_END -COMP ( 1986, to9p, 0, 0, to9p, to9p, driver_device, 0, "Thomson", "TO9+", 0 ) +COMP ( 1986, to9p, 0, 0, to9p, to9p, thomson_state, 0, "Thomson", "TO9+", 0 ) @@ -2269,9 +2269,9 @@ static MACHINE_CONFIG_DERIVED( pro128, mo6 ) MCFG_SOFTWARE_LIST_ADD("p128_flop_list","pro128_flop") MACHINE_CONFIG_END -COMP ( 1986, mo6, 0, 0, mo6, mo6, driver_device, 0, "Thomson", "MO6", 0 ) +COMP ( 1986, mo6, 0, 0, mo6, mo6, thomson_state, 0, "Thomson", "MO6", 0 ) -COMP ( 1986, pro128, mo6, 0, pro128, pro128, driver_device, 0, "Olivetti / Thomson", "Prodest PC 128", 0 ) +COMP ( 1986, pro128, mo6, 0, pro128, pro128, thomson_state, 0, "Olivetti / Thomson", "Prodest PC 128", 0 ) @@ -2525,4 +2525,4 @@ static MACHINE_CONFIG_DERIVED( mo5nr, to7 ) MCFG_SOFTWARE_LIST_COMPATIBLE_ADD("mo5_qd_list","mo5_qd") MACHINE_CONFIG_END -COMP ( 1986, mo5nr, 0, 0, mo5nr, mo5nr, driver_device, 0, "Thomson", "MO5 NR", 0 ) +COMP ( 1986, mo5nr, 0, 0, mo5nr, mo5nr, thomson_state, 0, "Thomson", "MO5 NR", 0 ) diff --git a/src/mame/drivers/thoop2.cpp b/src/mame/drivers/thoop2.cpp index a231bc3ce3e..2bafc649745 100644 --- a/src/mame/drivers/thoop2.cpp +++ b/src/mame/drivers/thoop2.cpp @@ -202,7 +202,7 @@ static GFXDECODE_START( thoop2 ) GFXDECODE_END -static MACHINE_CONFIG_START( thoop2, thoop2_state ) +static MACHINE_CONFIG_START( thoop2 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000,24000000/2) /* 12 MHz */ @@ -227,7 +227,7 @@ static MACHINE_CONFIG_START( thoop2, thoop2_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", 1056000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki", 1056000, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_DEVICE_ADDRESS_MAP(AS_0, oki_map) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -250,4 +250,4 @@ ROM_START( thoop2 ) /* 0x00000-0x2ffff is fixed, 0x30000-0x3ffff is bank switched */ ROM_END -GAME( 1994, thoop2, 0, thoop2, thoop2, driver_device, 0, ROT0, "Gaelco", "TH Strikes Back", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +GAME( 1994, thoop2, 0, thoop2, thoop2, thoop2_state, 0, ROT0, "Gaelco", "TH Strikes Back", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/thunderj.cpp b/src/mame/drivers/thunderj.cpp index da56a785aa1..6e65c10fa94 100644 --- a/src/mame/drivers/thunderj.cpp +++ b/src/mame/drivers/thunderj.cpp @@ -247,7 +247,7 @@ GFXDECODE_END * *************************************/ -static MACHINE_CONFIG_START( thunderj, thunderj_state ) +static MACHINE_CONFIG_START( thunderj ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, ATARI_CLOCK_14MHz/2) diff --git a/src/mame/drivers/thunderx.cpp b/src/mame/drivers/thunderx.cpp index f7f4549e148..a24fafb78b0 100644 --- a/src/mame/drivers/thunderx.cpp +++ b/src/mame/drivers/thunderx.cpp @@ -630,7 +630,7 @@ void thunderx_state::machine_reset() m_priority = 0; } -static MACHINE_CONFIG_START( scontra, thunderx_state ) +static MACHINE_CONFIG_START( scontra ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", KONAMI, XTAL_24MHz/2/4) /* 052001 (verified on pcb) */ @@ -1041,12 +1041,12 @@ DRIVER_INIT_MEMBER(thunderx_state, thunderx) /***************************************************************************/ -GAME( 1988, scontra, 0, scontra, scontra, driver_device, 0, ROT90, "Konami", "Super Contra", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, scontraj, scontra, scontra, scontra, driver_device, 0, ROT90, "Konami", "Super Contra (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, scontra, 0, scontra, scontra, thunderx_state, 0, ROT90, "Konami", "Super Contra", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, scontraj, scontra, scontra, scontra, thunderx_state, 0, ROT90, "Konami", "Super Contra (Japan)", MACHINE_SUPPORTS_SAVE ) GAME( 1988, thunderx, 0, thunderx, thunderx, thunderx_state, thunderx, ROT0, "Konami", "Thunder Cross (set 1)", MACHINE_SUPPORTS_SAVE ) GAME( 1988, thunderxa, thunderx, thunderx, thunderx, thunderx_state, thunderx, ROT0, "Konami", "Thunder Cross (set 2)", MACHINE_SUPPORTS_SAVE ) GAME( 1988, thunderxb, thunderx, thunderx, thunderx, thunderx_state, thunderx, ROT0, "Konami", "Thunder Cross (set 3)", MACHINE_SUPPORTS_SAVE ) GAME( 1988, thunderxj, thunderx, thunderx, thnderxj, thunderx_state, thunderx, ROT0, "Konami", "Thunder Cross (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, gbusters, 0, gbusters, gbusters, driver_device, 0, ROT90, "Konami", "Gang Busters (set 1)", MACHINE_SUPPORTS_SAVE ) /* N02 & J03 program roms */ -GAME( 1988, gbustersa, gbusters, gbusters, gbusters, driver_device, 0, ROT90, "Konami", "Gang Busters (set 2)", MACHINE_SUPPORTS_SAVE ) /* unknown region program roms */ -GAME( 1988, crazycop, gbusters, gbusters, gbusters, driver_device, 0, ROT90, "Konami", "Crazy Cop (Japan)", MACHINE_SUPPORTS_SAVE ) /* M02 & J03 program roms */ +GAME( 1988, gbusters, 0, gbusters, gbusters, thunderx_state, 0, ROT90, "Konami", "Gang Busters (set 1)", MACHINE_SUPPORTS_SAVE ) // N02 & J03 program ROMs +GAME( 1988, gbustersa, gbusters, gbusters, gbusters, thunderx_state, 0, ROT90, "Konami", "Gang Busters (set 2)", MACHINE_SUPPORTS_SAVE ) // unknown region program ROMs +GAME( 1988, crazycop, gbusters, gbusters, gbusters, thunderx_state, 0, ROT90, "Konami", "Crazy Cop (Japan)", MACHINE_SUPPORTS_SAVE ) // M02 & J03 program ROMs diff --git a/src/mame/drivers/ti630.cpp b/src/mame/drivers/ti630.cpp index 5ebfadb696f..38b62ce822f 100644 --- a/src/mame/drivers/ti630.cpp +++ b/src/mame/drivers/ti630.cpp @@ -181,7 +181,7 @@ static GFXDECODE_START( ti630 ) GFXDECODE_ENTRY( "hd44780:cgrom", 0x0000, ti630_charlayout, 0, 1 ) GFXDECODE_END -static MACHINE_CONFIG_START( ti630, ti630_state ) +static MACHINE_CONFIG_START( ti630 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I80C31, XTAL_10MHz) MCFG_CPU_PROGRAM_MAP(i80c31_prg) @@ -210,5 +210,5 @@ ROM_START( ti630 ) ROM_LOAD( "ti630.ci11", 0x00000, 0x10000, CRC(2602cbdc) SHA1(98266bea52a5893e0af0b5872eca0a0a1e0c5f9c) ) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1999, ti630, 0, 0, ti630, 0, ti630_state, ti630, "Intelbras", "TI630 telephone", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 1999, ti630, 0, 0, ti630, 0, ti630_state, ti630, "Intelbras", "TI630 telephone", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/ti74.cpp b/src/mame/drivers/ti74.cpp index 1c0f4ae2f41..7ed036376d9 100644 --- a/src/mame/drivers/ti74.cpp +++ b/src/mame/drivers/ti74.cpp @@ -509,7 +509,7 @@ void ti74_state::machine_start() save_item(NAME(m_power)); } -static MACHINE_CONFIG_START( ti74, ti74_state ) +static MACHINE_CONFIG_START( ti74 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS70C46, XTAL_4MHz) @@ -543,7 +543,7 @@ static MACHINE_CONFIG_START( ti74, ti74_state ) MCFG_SOFTWARE_LIST_ADD("cart_list", "ti74_cart") MACHINE_CONFIG_END -static MACHINE_CONFIG_START( ti95, ti74_state ) +static MACHINE_CONFIG_START( ti95 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS70C46, XTAL_4MHz) @@ -603,5 +603,5 @@ ROM_START( ti95 ) ROM_END -COMP( 1985, ti74, 0, 0, ti74, ti74, driver_device, 0, "Texas Instruments", "TI-74 BASICALC", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) -COMP( 1986, ti95, 0, 0, ti95, ti95, driver_device, 0, "Texas Instruments", "TI-95 PROCALC", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) +COMP( 1985, ti74, 0, 0, ti74, ti74, ti74_state, 0, "Texas Instruments", "TI-74 BASICALC", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) +COMP( 1986, ti95, 0, 0, ti95, ti95, ti74_state, 0, "Texas Instruments", "TI-95 PROCALC", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) diff --git a/src/mame/drivers/ti85.cpp b/src/mame/drivers/ti85.cpp index 1cadc0ca12c..840c65baab6 100644 --- a/src/mame/drivers/ti85.cpp +++ b/src/mame/drivers/ti85.cpp @@ -564,7 +564,7 @@ static INPUT_PORTS_START (ti83) INPUT_PORTS_END /* machine definition */ -static MACHINE_CONFIG_START( ti81, ti85_state ) +static MACHINE_CONFIG_START( ti81 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 2000000) /* 2 MHz */ MCFG_CPU_PROGRAM_MAP(ti81_mem) @@ -906,15 +906,15 @@ ROM_START (ti84p) ROMX_LOAD( "ti84pb100v255mp.bin", 0x00000, 0x100000, CRC(4af31251) SHA1(8f67269346644b87e7cd0f353f5f4030e787cf57), ROM_BIOS(1) ) ROM_END -// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS -COMP( 1990, ti81, 0, 0, ti81, ti81, driver_device, 0, "Texas Instruments", "TI-81", MACHINE_NO_SOUND_HW ) -COMP( 1992, ti85, 0, 0, ti85d, ti85, driver_device, 0, "Texas Instruments", "TI-85", MACHINE_NO_SOUND_HW ) -COMP( 1993, ti82, 0, 0, ti82, ti82, driver_device, 0, "Texas Instruments", "TI-82", MACHINE_NO_SOUND_HW ) -COMP( 1994, ti81v2, ti81, 0, ti81v2, ti81, driver_device, 0, "Texas Instruments", "TI-81 v2.0", MACHINE_NO_SOUND_HW ) -COMP( 1996, ti83, 0, 0, ti83, ti83, driver_device, 0, "Texas Instruments", "TI-83", MACHINE_NO_SOUND_HW ) -COMP( 1997, ti86, 0, 0, ti86, ti85, driver_device, 0, "Texas Instruments", "TI-86", MACHINE_NO_SOUND_HW ) -COMP( 1998, ti73, 0, 0, ti73, ti82, driver_device, 0, "Texas Instruments", "TI-73", MACHINE_NO_SOUND_HW ) -COMP( 1999, ti83p, 0, 0, ti83p, ti82, driver_device, 0, "Texas Instruments", "TI-83 Plus", MACHINE_NO_SOUND_HW ) -COMP( 2001, ti83pse, 0, 0, ti83pse, ti82, driver_device, 0, "Texas Instruments", "TI-83 Plus Silver Edition", MACHINE_NO_SOUND_HW ) -COMP( 2004, ti84p, 0, 0, ti84p, ti82, driver_device, 0, "Texas Instruments", "TI-84 Plus", MACHINE_NO_SOUND_HW ) -COMP( 2004, ti84pse, 0, 0, ti84pse, ti82, driver_device, 0, "Texas Instruments", "TI-84 Plus Silver Edition", MACHINE_NO_SOUND_HW ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1990, ti81, 0, 0, ti81, ti81, ti85_state, 0, "Texas Instruments", "TI-81", MACHINE_NO_SOUND_HW ) +COMP( 1992, ti85, 0, 0, ti85d, ti85, ti85_state, 0, "Texas Instruments", "TI-85", MACHINE_NO_SOUND_HW ) +COMP( 1993, ti82, 0, 0, ti82, ti82, ti85_state, 0, "Texas Instruments", "TI-82", MACHINE_NO_SOUND_HW ) +COMP( 1994, ti81v2, ti81, 0, ti81v2, ti81, ti85_state, 0, "Texas Instruments", "TI-81 v2.0", MACHINE_NO_SOUND_HW ) +COMP( 1996, ti83, 0, 0, ti83, ti83, ti85_state, 0, "Texas Instruments", "TI-83", MACHINE_NO_SOUND_HW ) +COMP( 1997, ti86, 0, 0, ti86, ti85, ti85_state, 0, "Texas Instruments", "TI-86", MACHINE_NO_SOUND_HW ) +COMP( 1998, ti73, 0, 0, ti73, ti82, ti85_state, 0, "Texas Instruments", "TI-73", MACHINE_NO_SOUND_HW ) +COMP( 1999, ti83p, 0, 0, ti83p, ti82, ti85_state, 0, "Texas Instruments", "TI-83 Plus", MACHINE_NO_SOUND_HW ) +COMP( 2001, ti83pse, 0, 0, ti83pse, ti82, ti85_state, 0, "Texas Instruments", "TI-83 Plus Silver Edition", MACHINE_NO_SOUND_HW ) +COMP( 2004, ti84p, 0, 0, ti84p, ti82, ti85_state, 0, "Texas Instruments", "TI-84 Plus", MACHINE_NO_SOUND_HW ) +COMP( 2004, ti84pse, 0, 0, ti84pse, ti82, ti85_state, 0, "Texas Instruments", "TI-84 Plus Silver Edition", MACHINE_NO_SOUND_HW ) diff --git a/src/mame/drivers/ti89.cpp b/src/mame/drivers/ti89.cpp index 9d79267f0bc..eefc6ed205a 100644 --- a/src/mame/drivers/ti89.cpp +++ b/src/mame/drivers/ti89.cpp @@ -515,7 +515,7 @@ PALETTE_INIT_MEMBER(ti68k_state, ti68k) palette.set_pen_color(1, rgb_t(92, 83, 88)); } -static MACHINE_CONFIG_START( ti89, ti68k_state ) +static MACHINE_CONFIG_START( ti89 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_10MHz) MCFG_CPU_PROGRAM_MAP(ti89_mem) @@ -669,9 +669,9 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1998, ti89, 0, 0, ti89, ti8x, driver_device, 0, "Texas Instruments", "TI-89", MACHINE_NO_SOUND) -COMP( 1995, ti92, 0, 0, ti92, ti9x, driver_device, 0, "Texas Instruments", "TI-92", MACHINE_NO_SOUND) -COMP( 1999, ti92p, 0, 0, ti92p, ti9x, driver_device, 0, "Texas Instruments", "TI-92 Plus", MACHINE_NO_SOUND) -COMP( 2002, v200, 0, 0, v200, ti9x, driver_device, 0, "Texas Instruments", "Voyage 200 PLT",MACHINE_NO_SOUND) -COMP( 2004, ti89t, 0, 0, ti89t, ti8x, driver_device, 0, "Texas Instruments", "TI-89 Titanium",MACHINE_NO_SOUND) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1998, ti89, 0, 0, ti89, ti8x, ti68k_state, 0, "Texas Instruments", "TI-89", MACHINE_NO_SOUND ) +COMP( 1995, ti92, 0, 0, ti92, ti9x, ti68k_state, 0, "Texas Instruments", "TI-92", MACHINE_NO_SOUND ) +COMP( 1999, ti92p, 0, 0, ti92p, ti9x, ti68k_state, 0, "Texas Instruments", "TI-92 Plus", MACHINE_NO_SOUND ) +COMP( 2002, v200, 0, 0, v200, ti9x, ti68k_state, 0, "Texas Instruments", "Voyage 200 PLT", MACHINE_NO_SOUND ) +COMP( 2004, ti89t, 0, 0, ti89t, ti8x, ti68k_state, 0, "Texas Instruments", "TI-89 Titanium", MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/ti990_10.cpp b/src/mame/drivers/ti990_10.cpp index cdf3422e71e..4cd15ee8990 100644 --- a/src/mame/drivers/ti990_10.cpp +++ b/src/mame/drivers/ti990_10.cpp @@ -311,7 +311,7 @@ WRITE_LINE_MEMBER(ti990_10_state::tape_interrupt) // set_int9(state); } -static MACHINE_CONFIG_START( ti990_10, ti990_10_state ) +static MACHINE_CONFIG_START( ti990_10 ) /* basic machine hardware */ /* TI990/10 CPU @ 4.0(???) MHz */ MCFG_TMS99xx_ADD("maincpu", TI990_10, 4000000, ti990_10_memmap, ti990_10_io ) @@ -371,7 +371,7 @@ ROM_START(ti990_10) /* VDT911 character definitions */ - ROM_REGION(vdt911_chr_region_len, vdt911_chr_region, ROMREGION_ERASEFF) + ROM_REGION(vdt911_device::chr_region_len, vdt911_chr_region, ROMREGION_ERASEFF) ROM_END @@ -385,5 +385,5 @@ DRIVER_INIT_MEMBER(ti990_10_state,ti990_10) #endif } -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ -COMP( 1975, ti990_10, 0, 0, ti990_10, 0, ti990_10_state, ti990_10, "Texas Instruments", "TI Model 990/10 Minicomputer System" , MACHINE_NOT_WORKING ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1975, ti990_10, 0, 0, ti990_10, 0, ti990_10_state, ti990_10, "Texas Instruments", "TI Model 990/10 Minicomputer System", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/ti990_4.cpp b/src/mame/drivers/ti990_4.cpp index 2e60a11f674..d141795ef4f 100644 --- a/src/mame/drivers/ti990_4.cpp +++ b/src/mame/drivers/ti990_4.cpp @@ -281,7 +281,7 @@ DRIVER_INIT_MEMBER(ti990_4_state, ti990_4) m_nmi_timer = timer_alloc(NMI_TIMER_ID); } -static MACHINE_CONFIG_START( ti990_4, ti990_4_state ) +static MACHINE_CONFIG_START( ti990_4 ) /* basic machine hardware */ /* TMS9900 CPU @ 3.0(???) MHz */ MCFG_TMS99xx_ADD("maincpu", TMS9900, 3000000, memmap, cru_map) @@ -296,13 +296,13 @@ static MACHINE_CONFIG_START( ti990_4, ti990_4_state ) MCFG_ASR733_LINEINT_HANDLER(WRITELINE(ti990_4_state, line_interrupt)) // Floppy controller - MCFG_DEVICE_ADD("fd800", FD800, 0) + MCFG_DEVICE_ADD("fd800", TI99X_FD800, 0) MCFG_FD800_INT_HANDLER(WRITELINE(ti990_4_state, fd_interrupt)) // MCFG_LEGACY_FLOPPY_4_DRIVES_ADD(ti990_4_floppy_interface) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( ti990_4v, ti990_4_state ) +static MACHINE_CONFIG_START( ti990_4v ) /* basic machine hardware */ /* TMS9900 CPU @ 3.0(???) MHz */ MCFG_TMS99xx_ADD("maincpu", TMS9900, 3000000, memmap, cru_map_v) @@ -316,7 +316,7 @@ static MACHINE_CONFIG_START( ti990_4v, ti990_4_state ) MCFG_VDT911_LINEINT_HANDLER(WRITELINE(ti990_4_state, line_interrupt)) // Floppy controller - MCFG_DEVICE_ADD("fd800", FD800, 0) + MCFG_DEVICE_ADD("fd800", TI99X_FD800, 0) MCFG_FD800_INT_HANDLER(WRITELINE(ti990_4_state, fd_interrupt)) // MCFG_LEGACY_FLOPPY_4_DRIVES_ADD(ti990_4_floppy_interface) @@ -350,7 +350,7 @@ ROM_START(ti990_4) ROM_LOAD16_WORD("ti9904.rom", 0xFC00, 0x400, CRC(691e7d19) SHA1(58d9bed80490fdf71c743bfd3077c70840b7df8c)) #endif - ROM_REGION(asr733_chr_region_len, asr733_chr_region, ROMREGION_ERASEFF) + ROM_REGION(asr733_device::chr_region_len, asr733_chr_region, ROMREGION_ERASEFF) ROM_END ROM_START(ti990_4v) @@ -359,9 +359,9 @@ ROM_START(ti990_4v) ROM_LOAD16_WORD("ti9904.rom", 0xFC00, 0x400, CRC(691e7d19) SHA1(58d9bed80490fdf71c743bfd3077c70840b7df8c)) /* VDT911 character definitions */ - ROM_REGION(vdt911_chr_region_len, vdt911_chr_region, ROMREGION_ERASEFF) + ROM_REGION(vdt911_device::chr_region_len, vdt911_chr_region, ROMREGION_ERASEFF) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ -COMP( 1976, ti990_4, 0, 0, ti990_4, 0, ti990_4_state, ti990_4, "Texas Instruments", "TI Model 990/4 Microcomputer System" , MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -COMP( 1976, ti990_4v, ti990_4, 0, ti990_4v, 0, ti990_4_state, ti990_4, "Texas Instruments", "TI Model 990/4 Microcomputer System with Video Display Terminal" , MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1976, ti990_4, 0, 0, ti990_4, 0, ti990_4_state, ti990_4, "Texas Instruments", "TI Model 990/4 Microcomputer System", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +COMP( 1976, ti990_4v, ti990_4, 0, ti990_4v, 0, ti990_4_state, ti990_4, "Texas Instruments", "TI Model 990/4 Microcomputer System with Video Display Terminal", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/ti99_2.cpp b/src/mame/drivers/ti99_2.cpp index b38df29fea5..ba6dea90229 100644 --- a/src/mame/drivers/ti99_2.cpp +++ b/src/mame/drivers/ti99_2.cpp @@ -367,7 +367,7 @@ static INPUT_PORTS_START(ti99_2) INPUT_PORTS_END -static MACHINE_CONFIG_START( ti99_2, ti99_2_state ) +static MACHINE_CONFIG_START( ti99_2 ) // basic machine hardware // TMS9995, standard variant // We have no lines connected yet @@ -412,6 +412,6 @@ ROM_END /* Hex-bus disk controller: supports up to 4 floppy disk drives */ /* None of these is supported (tape should be easy to emulate) */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ -COMP( 1983, ti99_224, 0, 0, ti99_2, ti99_2, ti99_2_state, ti99_2_24, "Texas Instruments", "TI-99/2 BASIC Computer (24kb ROMs)" , MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -COMP( 1983, ti99_232, ti99_224, 0, ti99_2, ti99_2, ti99_2_state, ti99_2_32, "Texas Instruments", "TI-99/2 BASIC Computer (32kb ROMs)" , MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1983, ti99_224, 0, 0, ti99_2, ti99_2, ti99_2_state, ti99_2_24, "Texas Instruments", "TI-99/2 BASIC Computer (24kb ROMs)" , MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +COMP( 1983, ti99_232, ti99_224, 0, ti99_2, ti99_2, ti99_2_state, ti99_2_32, "Texas Instruments", "TI-99/2 BASIC Computer (32kb ROMs)" , MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/ti99_4p.cpp b/src/mame/drivers/ti99_4p.cpp index 0df5bad73e4..efa0632b5ef 100644 --- a/src/mame/drivers/ti99_4p.cpp +++ b/src/mame/drivers/ti99_4p.cpp @@ -116,8 +116,8 @@ *****************************************************************************/ #include "emu.h" -#include "bus/ti99_peb/peribox.h" -#include "bus/ti99x/joyport.h" +#include "bus/ti99/joyport/joyport.h" +#include "bus/ti99/peb/peribox.h" #include "cpu/tms9900/tms9900.h" #include "imagedev/cassette.h" #include "machine/ram.h" @@ -148,7 +148,7 @@ public: m_joyport(*this, JOYPORT_TAG), m_scratchpad(*this, PADRAM_TAG), m_amsram(*this, AMSRAM_TAG) - { } + { } DECLARE_WRITE_LINE_MEMBER( ready_line ); DECLARE_WRITE_LINE_MEMBER( extint ); @@ -192,7 +192,7 @@ private: required_device m_tms9901; required_device m_cassette; required_device m_peribox; - required_device m_joyport; + required_device m_joyport; required_device m_scratchpad; required_device m_amsram; @@ -728,7 +728,7 @@ READ8_MEMBER( ti99_4p_state::read_by_9901 ) switch (offset & 0x03) { - case TMS9901_CB_INT7: + case tms9901_device::CB_INT7: // Read pins INT3*-INT7* of TI99's 9901. // bit 1: INT1 status // bit 2: INT2 status @@ -751,7 +751,7 @@ READ8_MEMBER( ti99_4p_state::read_by_9901 ) answer = (answer << 3) | m_9901_int; break; - case TMS9901_INT8_INT15: + case tms9901_device::INT8_INT15: // Read pins int8_t*-INT15* of TI99's 9901. // bit 0-2: keyboard status bits 5 to 7 // bit 3: tape input mirror @@ -763,10 +763,10 @@ READ8_MEMBER( ti99_4p_state::read_by_9901 ) answer |= 0xf0; break; - case TMS9901_P0_P7: + case tms9901_device::P0_P7: break; - case TMS9901_P8_P15: + case tms9901_device::P8_P15: // Read pins P8-P15 of TI99's 9901. // bit 26: high // bit 27: tape input @@ -989,7 +989,7 @@ MACHINE_RESET_MEMBER(ti99_4p_state,ti99_4p) /* Machine description. */ -static MACHINE_CONFIG_START( ti99_4p_60hz, ti99_4p_state ) +static MACHINE_CONFIG_START( ti99_4p_60hz ) /* basic machine hardware */ /* TMS9900 CPU @ 3.0 MHz */ MCFG_TMS99xx_ADD("maincpu", TMS9900, 3000000, memmap, cru_map) @@ -1049,5 +1049,5 @@ ROM_START(ti99_4p) ROM_LOAD16_BYTE("sgcpu_lb.bin", 0x0001, 0x8000, CRC(2a5dc818) SHA1(dec141fe2eea0b930859cbe1ebd715ac29fa8ecb) ) /* system ROMs */ ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ -COMP( 1996, ti99_4p, 0, 0, ti99_4p_60hz, ti99_4p, driver_device, 0, "System-99 User Group", "SGCPU (aka TI-99/4P)" , MACHINE_SUPPORTS_SAVE ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1996, ti99_4p, 0, 0, ti99_4p_60hz, ti99_4p, ti99_4p_state, 0, "System-99 User Group", "SGCPU (aka TI-99/4P)" , MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/ti99_4x.cpp b/src/mame/drivers/ti99_4x.cpp index d42e0a4261f..67a4ffd6cf3 100644 --- a/src/mame/drivers/ti99_4x.cpp +++ b/src/mame/drivers/ti99_4x.cpp @@ -49,9 +49,9 @@ #include "bus/ti99x/ti99defs.h" #include "bus/ti99x/datamux.h" #include "bus/ti99x/gromport.h" -#include "bus/ti99x/joyport.h" -#include "bus/ti99_peb/peribox.h" +#include "bus/ti99/joyport/joyport.h" +#include "bus/ti99/peb/peribox.h" #include "machine/ram.h" #include "softlist.h" @@ -87,7 +87,7 @@ public: m_video(*this, VDP_TAG), m_cassette1(*this, "cassette"), m_cassette2(*this, "cassette2") - { } + { } // Machine management DECLARE_MACHINE_START(ti99_4); @@ -165,9 +165,9 @@ private: // Connected devices required_device m_cpu; required_device m_tms9901; - required_device m_gromport; + required_device m_gromport; required_device m_peribox; - required_device m_joyport; + required_device m_joyport; required_device m_datamux; optional_device m_video; required_device m_cassette1; @@ -454,7 +454,7 @@ READ8_MEMBER( ti99_4x_state::read_by_9901 ) switch (offset & 0x03) { - case TMS9901_CB_INT7: + case tms9901_device::CB_INT7: // // Read pins INT3*-INT7* of TI99's 9901. // bit 1: INT1 status @@ -490,7 +490,7 @@ READ8_MEMBER( ti99_4x_state::read_by_9901 ) break; - case TMS9901_INT8_INT15: + case tms9901_device::INT8_INT15: // |1|1|1|INT12|0|K|K|K| if (m_keyboard_column >= (m_model==MODEL_4? 5:6)) answer = 0x07; else answer = ((ioport(column[m_keyboard_column])->read())>>5) & 0x07; @@ -498,12 +498,12 @@ READ8_MEMBER( ti99_4x_state::read_by_9901 ) if (m_model != MODEL_4 || m_int12==CLEAR_LINE) answer |= 0x10; break; - case TMS9901_P0_P7: + case tms9901_device::P0_P7: // Required for the handset (only on TI-99/4) if ((m_joyport->read_port() & 0x20)!=0) answer |= 2; break; - case TMS9901_P8_P15: + case tms9901_device::P8_P15: // Preset to 1 answer = 4; @@ -830,7 +830,7 @@ MACHINE_RESET_MEMBER(ti99_4x_state,ti99_4) TI-99/4 - predecessor of the more popular TI-99/4A ***********************************************************************/ -static MACHINE_CONFIG_START( ti99_4, ti99_4x_state ) +static MACHINE_CONFIG_START( ti99_4 ) // CPU MCFG_TMS99xx_ADD("maincpu", TMS9900, 3000000, memmap, cru_map) MCFG_TMS99xx_EXTOP_HANDLER( WRITE8(ti99_4x_state, external_operation) ) @@ -854,7 +854,7 @@ static MACHINE_CONFIG_START( ti99_4, ti99_4x_state ) MCFG_TMS9901_P9_HANDLER( WRITELINE( ti99_4x_state, cassette_output) ) MCFG_TMS9901_INTLEVEL_HANDLER( WRITE8( ti99_4x_state, tms9901_interrupt) ) - MCFG_DEVICE_ADD( DATAMUX_TAG, DATAMUX, 0) + MCFG_DEVICE_ADD( DATAMUX_TAG, TI99_DATAMUX, 0) MCFG_DMUX_READY_HANDLER( WRITELINE(ti99_4x_state, console_ready_dmux) ) MCFG_GROMPORT4_ADD( GROMPORT_TAG ) @@ -950,7 +950,7 @@ MACHINE_RESET_MEMBER(ti99_4x_state,ti99_4a) m_int12 = CLEAR_LINE; } -static MACHINE_CONFIG_START( ti99_4a, ti99_4x_state ) +static MACHINE_CONFIG_START( ti99_4a ) // CPU MCFG_TMS99xx_ADD("maincpu", TMS9900, 3000000, memmap, cru_map) MCFG_TMS99xx_EXTOP_HANDLER( WRITE8(ti99_4x_state, external_operation) ) @@ -974,7 +974,7 @@ static MACHINE_CONFIG_START( ti99_4a, ti99_4x_state ) MCFG_TMS9901_P9_HANDLER( WRITELINE( ti99_4x_state, cassette_output) ) MCFG_TMS9901_INTLEVEL_HANDLER( WRITE8( ti99_4x_state, tms9901_interrupt) ) - MCFG_DEVICE_ADD( DATAMUX_TAG, DATAMUX, 0) + MCFG_DEVICE_ADD( DATAMUX_TAG, TI99_DATAMUX, 0) MCFG_DMUX_READY_HANDLER( WRITELINE(ti99_4x_state, console_ready_dmux) ) MCFG_GROMPORT4_ADD( GROMPORT_TAG ) @@ -1112,7 +1112,7 @@ MACHINE_RESET_MEMBER(ti99_4x_state, ti99_4ev) m_gromclk_timer->adjust(attotime::zero, 0, attotime::from_hz(XTAL_10_738635MHz/24)); } -static MACHINE_CONFIG_START( ti99_4ev_60hz, ti99_4x_state ) +static MACHINE_CONFIG_START( ti99_4ev_60hz ) // CPU MCFG_TMS99xx_ADD("maincpu", TMS9900, 3000000, memmap, cru_map) MCFG_TMS99xx_EXTOP_HANDLER( WRITE8(ti99_4x_state, external_operation) ) @@ -1136,7 +1136,7 @@ static MACHINE_CONFIG_START( ti99_4ev_60hz, ti99_4x_state ) MCFG_TMS9901_P9_HANDLER( WRITELINE( ti99_4x_state, cassette_output) ) MCFG_TMS9901_INTLEVEL_HANDLER( WRITE8( ti99_4x_state, tms9901_interrupt) ) - MCFG_DEVICE_ADD( DATAMUX_TAG, DATAMUX, 0) + MCFG_DEVICE_ADD( DATAMUX_TAG, TI99_DATAMUX, 0) MCFG_DMUX_READY_HANDLER( WRITELINE(ti99_4x_state, console_ready_dmux) ) MCFG_GROMPORT4_ADD( GROMPORT_TAG ) MCFG_GROMPORT_READY_HANDLER( WRITELINE(ti99_4x_state, console_ready_cart) ) @@ -1253,10 +1253,10 @@ ROM_START(ti99_4ev) ROM_LOAD("994a_grom2.u502", 0x4000, 0x1800, CRC(e0bb5341) SHA1(e255f0d65d69b927cecb8fcfac7a4c17d585ea96)) /* system GROM 2 */ ROM_END -// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS -COMP( 1979, ti99_4, 0, 0, ti99_4_60hz, ti99_4, driver_device, 0, "Texas Instruments", "TI-99/4 Home Computer (US)", MACHINE_SUPPORTS_SAVE) -COMP( 1980, ti99_4e, ti99_4, 0, ti99_4_50hz, ti99_4, driver_device, 0, "Texas Instruments", "TI-99/4 Home Computer (Europe)", MACHINE_SUPPORTS_SAVE) -COMP( 1981, ti99_4a, 0, 0, ti99_4a_60hz, ti99_4a, driver_device, 0, "Texas Instruments", "TI-99/4A Home Computer (US)", MACHINE_SUPPORTS_SAVE) -COMP( 1981, ti99_4ae, ti99_4a, 0, ti99_4a_50hz, ti99_4a, driver_device, 0, "Texas Instruments", "TI-99/4A Home Computer (Europe)", MACHINE_SUPPORTS_SAVE) -COMP( 1983, ti99_4qi, ti99_4a, 0, ti99_4qi_60hz, ti99_4a, driver_device, 0, "Texas Instruments", "TI-99/4QI Home Computer (US)", MACHINE_SUPPORTS_SAVE) -COMP( 1994, ti99_4ev, ti99_4a, 0, ti99_4ev_60hz, ti99_4a, driver_device, 0, "Texas Instruments", "TI-99/4A Home Computer with EVPC", MACHINE_SUPPORTS_SAVE) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 1979, ti99_4, 0, 0, ti99_4_60hz, ti99_4, ti99_4x_state, 0, "Texas Instruments", "TI-99/4 Home Computer (US)", MACHINE_SUPPORTS_SAVE) +COMP( 1980, ti99_4e, ti99_4, 0, ti99_4_50hz, ti99_4, ti99_4x_state, 0, "Texas Instruments", "TI-99/4 Home Computer (Europe)", MACHINE_SUPPORTS_SAVE) +COMP( 1981, ti99_4a, 0, 0, ti99_4a_60hz, ti99_4a, ti99_4x_state, 0, "Texas Instruments", "TI-99/4A Home Computer (US)", MACHINE_SUPPORTS_SAVE) +COMP( 1981, ti99_4ae, ti99_4a, 0, ti99_4a_50hz, ti99_4a, ti99_4x_state, 0, "Texas Instruments", "TI-99/4A Home Computer (Europe)", MACHINE_SUPPORTS_SAVE) +COMP( 1983, ti99_4qi, ti99_4a, 0, ti99_4qi_60hz, ti99_4a, ti99_4x_state, 0, "Texas Instruments", "TI-99/4QI Home Computer (US)", MACHINE_SUPPORTS_SAVE) +COMP( 1994, ti99_4ev, ti99_4a, 0, ti99_4ev_60hz, ti99_4a, ti99_4x_state, 0, "Texas Instruments", "TI-99/4A Home Computer with EVPC", MACHINE_SUPPORTS_SAVE) diff --git a/src/mame/drivers/ti99_8.cpp b/src/mame/drivers/ti99_8.cpp index 5d5c52888ca..a2556b4c137 100644 --- a/src/mame/drivers/ti99_8.cpp +++ b/src/mame/drivers/ti99_8.cpp @@ -183,9 +183,9 @@ Known Issues (MZ, 2010-11-07) #include "bus/ti99x/998board.h" #include "bus/ti99x/gromport.h" -#include "bus/ti99x/joyport.h" -#include "bus/ti99_peb/peribox.h" +#include "bus/ti99/joyport/joyport.h" +#include "bus/ti99/peb/peribox.h" #include "softlist.h" #include "speaker.h" @@ -221,7 +221,9 @@ public: m_peribox(*this, PERIBOX_TAG), m_mainboard(*this, MAINBOARD8_TAG), m_joyport(*this, JOYPORT_TAG), - m_cassette(*this, "cassette") { }; + m_cassette(*this, "cassette") + { + } // Machine management DECLARE_MACHINE_START(ti99_8); @@ -273,10 +275,10 @@ private: // Connected devices required_device m_cpu; required_device m_tms9901; - required_device m_gromport; + required_device m_gromport; required_device m_peribox; required_device m_mainboard; - required_device m_joyport; + required_device m_joyport; required_device m_cassette; }; @@ -449,7 +451,7 @@ READ8_MEMBER( ti99_8_state::read_by_9901 ) uint8_t joyst; switch (offset & 0x03) { - case TMS9901_CB_INT7: + case tms9901_device::CB_INT7: // Read pins INT3*-INT7* of TI99's 9901. // // bit 1: INT1 status @@ -475,7 +477,7 @@ READ8_MEMBER( ti99_8_state::read_by_9901 ) break; - case TMS9901_INT8_INT15: + case tms9901_device::INT8_INT15: // Read pins int8_t*-INT15* of TI99's 9901. // // bit 0-2: keyboard status bits 2 to 4 @@ -497,11 +499,11 @@ READ8_MEMBER( ti99_8_state::read_by_9901 ) answer = (answer >> 2) & 0x07; break; - case TMS9901_P0_P7: + case tms9901_device::P0_P7: // Read pins P0-P7 of TI99's 9901. None here. break; - case TMS9901_P8_P15: + case tms9901_device::P8_P15: // Read pins P8-P15 of TI99's 9901. (TI-99/8) // // bit 26: high @@ -712,7 +714,7 @@ MACHINE_RESET_MEMBER(ti99_8_state, ti99_8) m_int2 = CLEAR_LINE; } -static MACHINE_CONFIG_START( ti99_8, ti99_8_state ) +static MACHINE_CONFIG_START( ti99_8 ) // basic machine hardware */ // TMS9995-MP9537 CPU @ 10.7 MHz // MP9537 mask: This variant of the TMS9995 does not contain on-chip RAM @@ -740,7 +742,7 @@ static MACHINE_CONFIG_START( ti99_8, ti99_8_state ) MCFG_TMS9901_INTLEVEL_HANDLER( WRITE8( ti99_8_state, tms9901_interrupt) ) // Mainboard with custom chips - MCFG_DEVICE_ADD(MAINBOARD8_TAG, MAINBOARD8, 0) + MCFG_DEVICE_ADD(MAINBOARD8_TAG, TI99_MAINBOARD8, 0) MCFG_MAINBOARD8_READY_CALLBACK(WRITELINE(ti99_8_state, console_ready)) MCFG_MAINBOARD8_RESET_CALLBACK(WRITELINE(ti99_8_state, console_reset)) MCFG_MAINBOARD8_HOLD_CALLBACK(WRITELINE(ti99_8_state, cpu_hold)) @@ -912,6 +914,6 @@ ROM_END #define rom_ti99_8e rom_ti99_8 -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ -COMP( 1983, ti99_8, 0, 0, ti99_8_60hz,ti99_8, driver_device, 0, "Texas Instruments", "TI-99/8 Computer (US)" , MACHINE_SUPPORTS_SAVE ) -COMP( 1983, ti99_8e, ti99_8, 0, ti99_8_50hz,ti99_8, driver_device, 0, "Texas Instruments", "TI-99/8 Computer (Europe)" , MACHINE_SUPPORTS_SAVE ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1983, ti99_8, 0, 0, ti99_8_60hz, ti99_8, ti99_8_state, 0, "Texas Instruments", "TI-99/8 Computer (US)", MACHINE_SUPPORTS_SAVE ) +COMP( 1983, ti99_8e, ti99_8, 0, ti99_8_50hz, ti99_8, ti99_8_state, 0, "Texas Instruments", "TI-99/8 Computer (Europe)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/tiamc1.cpp b/src/mame/drivers/tiamc1.cpp index 69ee80cead6..b74d57f9398 100644 --- a/src/mame/drivers/tiamc1.cpp +++ b/src/mame/drivers/tiamc1.cpp @@ -119,6 +119,7 @@ #include "emu.h" #include "includes/tiamc1.h" +#include "audio/tiamc1.h" #include "cpu/i8085/i8085.h" #include "machine/i8255.h" @@ -322,7 +323,7 @@ static GFXDECODE_START( kot ) GFXDECODE_END -static MACHINE_CONFIG_START( tiamc1, tiamc1_state ) +static MACHINE_CONFIG_START( tiamc1 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8080, CPU_CLOCK) MCFG_CPU_PROGRAM_MAP(tiamc1_map) @@ -543,9 +544,9 @@ ROM_START( kot ) ROM_END -GAME( 1988, konek, 0, tiamc1, tiamc1, driver_device, 0, ROT0, "Terminal", "Konek-Gorbunok", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, sosterm, 0, tiamc1, tiamc1, driver_device, 0, ROT0, "Terminal", "S.O.S.", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, koroleva, 0, tiamc1, tiamc1, driver_device, 0, ROT0, "Terminal", "Snezhnaja Koroleva", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, bilyard, 0, tiamc1, tiamc1, driver_device, 0, ROT0, "Terminal", "Billiard", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, gorodki, 0, tiamc1, gorodki, driver_device, 0, ROT0, "Terminal", "Gorodki", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, kot, 0, kot, kot, driver_device, 0, ROT0, "Terminal", "Kot-Rybolov", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE) +GAME( 1988, konek, 0, tiamc1, tiamc1, tiamc1_state, 0, ROT0, "Terminal", "Konek-Gorbunok", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, sosterm, 0, tiamc1, tiamc1, tiamc1_state, 0, ROT0, "Terminal", "S.O.S.", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, koroleva, 0, tiamc1, tiamc1, tiamc1_state, 0, ROT0, "Terminal", "Snezhnaja Koroleva", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, bilyard, 0, tiamc1, tiamc1, tiamc1_state, 0, ROT0, "Terminal", "Billiard", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, gorodki, 0, tiamc1, gorodki, tiamc1_state, 0, ROT0, "Terminal", "Gorodki", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, kot, 0, kot, kot, tiamc1_state, 0, ROT0, "Terminal", "Kot-Rybolov", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE) diff --git a/src/mame/drivers/ticalc1x.cpp b/src/mame/drivers/ticalc1x.cpp index 1eba0fbc10b..18b27b1b9d8 100644 --- a/src/mame/drivers/ticalc1x.cpp +++ b/src/mame/drivers/ticalc1x.cpp @@ -184,7 +184,7 @@ static INPUT_PORTS_START( cmulti8 ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED ) INPUT_PORTS_END -static MACHINE_CONFIG_START( cmulti8, cmulti8_state ) +static MACHINE_CONFIG_START( cmulti8 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS1070, 250000) // approximation - RC osc. R=56K, C=68pf @@ -400,7 +400,7 @@ static INPUT_PORTS_START( tisr16ii ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_9) PORT_CODE(KEYCODE_9_PAD) PORT_NAME("9") INPUT_PORTS_END -static MACHINE_CONFIG_START( tisr16, tisr16_state ) +static MACHINE_CONFIG_START( tisr16 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS1000, 300000) // approximation - RC osc. R=43K, C=68pf (note: tisr16ii MCU RC osc. is different: R=30K, C=100pf, same freq) @@ -538,7 +538,7 @@ static INPUT_PORTS_START( ti1270 ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_MINUS) PORT_NAME("+/-") INPUT_PORTS_END -static MACHINE_CONFIG_START( ti1250, ti1250_state ) +static MACHINE_CONFIG_START( ti1250 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS0950, 200000) // approximation - RC osc. R=68K, C=68pf @@ -664,7 +664,7 @@ static INPUT_PORTS_START( ti25503 ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_X) PORT_NAME("1/x") INPUT_PORTS_END -static MACHINE_CONFIG_START( ti25503, ti25503_state ) +static MACHINE_CONFIG_START( ti25503 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS1000, 250000) // approximation @@ -764,7 +764,7 @@ static INPUT_PORTS_START( ti1000 ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD) PORT_NAME("=") INPUT_PORTS_END -static MACHINE_CONFIG_START( ti1000, ti1000_state ) +static MACHINE_CONFIG_START( ti1000 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS1990, 250000) // approximation @@ -864,7 +864,7 @@ static INPUT_PORTS_START( wizatron ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_SLASH_PAD) PORT_NAME(UTF8_DIVIDE) INPUT_PORTS_END -static MACHINE_CONFIG_START( wizatron, wizatron_state ) +static MACHINE_CONFIG_START( wizatron ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS0970, 250000) // approximation @@ -938,7 +938,7 @@ static INPUT_PORTS_START( lilprof ) PORT_CONFSETTING( 0x08, "4" ) INPUT_PORTS_END -static MACHINE_CONFIG_START( lilprof, lilprof_state ) +static MACHINE_CONFIG_START( lilprof ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS0970, 250000) // approximation @@ -1048,7 +1048,7 @@ static INPUT_PORTS_START( lilprof78 ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_PLUS_PAD) PORT_NAME("+") INPUT_PORTS_END -static MACHINE_CONFIG_START( lilprof78, lilprof78_state ) +static MACHINE_CONFIG_START( lilprof78 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS1990, 250000) // approximation @@ -1160,7 +1160,7 @@ static INPUT_PORTS_START( dataman ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_E) PORT_NAME("Electro Flash") INPUT_PORTS_END -static MACHINE_CONFIG_START( dataman, dataman_state ) +static MACHINE_CONFIG_START( dataman ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS1980, 300000) // patent says 300kHz @@ -1227,7 +1227,7 @@ static INPUT_PORTS_START( mathmarv ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_F) PORT_NAME("Flash") INPUT_PORTS_END -static MACHINE_CONFIG_START( mathmarv, mathmarv_state ) +static MACHINE_CONFIG_START( mathmarv ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS1980, 300000) // assume same as dataman @@ -1487,7 +1487,7 @@ static INPUT_PORTS_START( tibusan ) PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_PGDN) PORT_NAME("Off") PORT_CHANGED_MEMBER(DEVICE_SELF, hh_tms1k_state, power_button, (void *)false) INPUT_PORTS_END -static MACHINE_CONFIG_START( ti30, ti30_state ) +static MACHINE_CONFIG_START( ti30 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS0980, 400000) // guessed @@ -1729,27 +1729,27 @@ ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY, FULLNAME, FLAGS */ -COMP( 1977, cmulti8, 0, 0, cmulti8, cmulti8, driver_device, 0, "Canon", "Multi 8 (Canon)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1977, cmulti8, 0, 0, cmulti8, cmulti8, cmulti8_state, 0, "Canon", "Multi 8 (Canon)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) -COMP( 1974, tisr16, 0, 0, tisr16, tisr16, driver_device, 0, "Texas Instruments", "SR-16", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) -COMP( 1975, tisr16ii, 0, 0, tisr16, tisr16ii, driver_device, 0, "Texas Instruments", "SR-16 II", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) +COMP( 1974, tisr16, 0, 0, tisr16, tisr16, tisr16_state, 0, "Texas Instruments", "SR-16", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) +COMP( 1975, tisr16ii, 0, 0, tisr16, tisr16ii, tisr16_state, 0, "Texas Instruments", "SR-16 II", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) -COMP( 1975, ti1250, 0, 0, ti1250, ti1250, driver_device, 0, "Texas Instruments", "TI-1250 (1975 version)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) -COMP( 1976, ti125076, ti1250, 0, ti1270, ti1250, driver_device, 0, "Texas Instruments", "TI-1250 (1976 version)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) -COMP( 1976, ti1270, 0, 0, ti1270, ti1270, driver_device, 0, "Texas Instruments", "TI-1270", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) +COMP( 1975, ti1250, 0, 0, ti1250, ti1250, ti1250_state, 0, "Texas Instruments", "TI-1250 (1975 version)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) +COMP( 1976, ti125076, ti1250, 0, ti1270, ti1250, ti1250_state, 0, "Texas Instruments", "TI-1250 (1976 version)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) +COMP( 1976, ti1270, 0, 0, ti1270, ti1270, ti1250_state, 0, "Texas Instruments", "TI-1270", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) -COMP( 1976, ti25503, 0, 0, ti25503, ti25503, driver_device, 0, "Texas Instruments", "TI-2550 III", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) +COMP( 1976, ti25503, 0, 0, ti25503, ti25503, ti25503_state, 0, "Texas Instruments", "TI-2550 III", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) -COMP( 1977, ti1000, 0, 0, ti1000, ti1000, driver_device, 0, "Texas Instruments", "TI-1000 (1977 version)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) +COMP( 1977, ti1000, 0, 0, ti1000, ti1000, ti1000_state, 0, "Texas Instruments", "TI-1000 (1977 version)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) -COMP( 1977, wizatron, 0, 0, wizatron, wizatron, driver_device, 0, "Texas Instruments", "Wiz-A-Tron", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) -COMP( 1976, lilprof, 0, 0, lilprof, lilprof, driver_device, 0, "Texas Instruments", "Little Professor (1976 version)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) -COMP( 1978, lilprof78, lilprof, 0, lilprof78, lilprof78, driver_device, 0, "Texas Instruments", "Little Professor (1978 version)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) +COMP( 1977, wizatron, 0, 0, wizatron, wizatron, wizatron_state, 0, "Texas Instruments", "Wiz-A-Tron", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) +COMP( 1976, lilprof, 0, 0, lilprof, lilprof, lilprof_state, 0, "Texas Instruments", "Little Professor (1976 version)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) +COMP( 1978, lilprof78, lilprof, 0, lilprof78, lilprof78, lilprof78_state, 0, "Texas Instruments", "Little Professor (1978 version)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) -COMP( 1977, dataman, 0, 0, dataman, dataman, driver_device, 0, "Texas Instruments", "DataMan", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) -COMP( 1980, mathmarv, 0, 0, mathmarv, mathmarv, driver_device, 0, "Texas Instruments", "Math Marvel", MACHINE_SUPPORTS_SAVE ) +COMP( 1977, dataman, 0, 0, dataman, dataman, dataman_state, 0, "Texas Instruments", "DataMan", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) +COMP( 1980, mathmarv, 0, 0, mathmarv, mathmarv, mathmarv_state, 0, "Texas Instruments", "Math Marvel", MACHINE_SUPPORTS_SAVE ) -COMP( 1976, ti30, 0, 0, ti30, ti30, driver_device, 0, "Texas Instruments", "TI-30", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) -COMP( 1976, tibusan, 0, 0, ti30, tibusan, driver_device, 0, "Texas Instruments", "TI Business Analyst", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) -COMP( 1977, tiprog, 0, 0, ti30, tiprog, driver_device, 0, "Texas Instruments", "TI Programmer", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) +COMP( 1976, ti30, 0, 0, ti30, ti30, ti30_state, 0, "Texas Instruments", "TI-30", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) +COMP( 1976, tibusan, 0, 0, ti30, tibusan, ti30_state, 0, "Texas Instruments", "TI Business Analyst", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) +COMP( 1977, tiprog, 0, 0, ti30, tiprog, ti30_state, 0, "Texas Instruments", "TI Programmer", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) diff --git a/src/mame/drivers/tickee.cpp b/src/mame/drivers/tickee.cpp index 9cc0f2afb4a..6686a4c1457 100644 --- a/src/mame/drivers/tickee.cpp +++ b/src/mame/drivers/tickee.cpp @@ -742,7 +742,7 @@ INPUT_PORTS_END * *************************************/ -static MACHINE_CONFIG_START( tickee, tickee_state ) +static MACHINE_CONFIG_START( tickee ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS34010, XTAL_40MHz) @@ -790,7 +790,7 @@ static MACHINE_CONFIG_DERIVED( ghoshunt, tickee ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( rapidfir, tickee_state ) +static MACHINE_CONFIG_START( rapidfir ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS34010, XTAL_50MHz) @@ -819,12 +819,12 @@ static MACHINE_CONFIG_START( rapidfir, tickee_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", OKI_CLOCK, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", OKI_CLOCK, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( mouseatk, tickee_state ) +static MACHINE_CONFIG_START( mouseatk ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS34010, XTAL_40MHz) @@ -855,7 +855,7 @@ static MACHINE_CONFIG_START( mouseatk, tickee_state ) MCFG_AY8910_PORT_B_READ_CB(IOPORT("IN1")) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) - MCFG_OKIM6295_ADD("oki", OKI_CLOCK, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", OKI_CLOCK, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) MACHINE_CONFIG_END @@ -1151,11 +1151,11 @@ ROM_END * *************************************/ -GAME( 1994, tickee, 0, tickee, tickee, driver_device, 0, ROT0, "Raster Elite", "Tickee Tickats", 0 ) -GAME( 1996, ghoshunt, 0, ghoshunt, ghoshunt, driver_device, 0, ROT0, "Hanaho Games", "Ghost Hunter", 0 ) -GAME( 1996, tutstomb, 0, ghoshunt, ghoshunt, driver_device, 0, ROT0, "Island Design", "Tut's Tomb", 0 ) -GAME( 1996, mouseatk, 0, mouseatk, mouseatk, driver_device, 0, ROT0, "ICE", "Mouse Attack", 0 ) -GAME( 1998, rapidfir, 0, rapidfir, rapidfir, driver_device, 0, ROT0, "Hanaho Games", "Rapid Fire v1.1 (Build 239)", 0 ) -GAME( 1998, rapidfira, rapidfir, rapidfir, rapidfir, driver_device, 0, ROT0, "Hanaho Games", "Rapid Fire v1.1 (Build 238)", 0 ) -GAME( 1998, rapidfire, rapidfir, rapidfir, rapidfir, driver_device, 0, ROT0, "Hanaho Games", "Rapid Fire v1.0 (Build 236)", 0 ) -GAME( 1999, maletmad, 0, rapidfir, rapidfir, driver_device, 0, ROT0, "Hanaho Games", "Mallet Madness v2.1", 0 ) +GAME( 1994, tickee, 0, tickee, tickee, tickee_state, 0, ROT0, "Raster Elite", "Tickee Tickats", 0 ) +GAME( 1996, ghoshunt, 0, ghoshunt, ghoshunt, tickee_state, 0, ROT0, "Hanaho Games", "Ghost Hunter", 0 ) +GAME( 1996, tutstomb, 0, ghoshunt, ghoshunt, tickee_state, 0, ROT0, "Island Design", "Tut's Tomb", 0 ) +GAME( 1996, mouseatk, 0, mouseatk, mouseatk, tickee_state, 0, ROT0, "ICE", "Mouse Attack", 0 ) +GAME( 1998, rapidfir, 0, rapidfir, rapidfir, tickee_state, 0, ROT0, "Hanaho Games", "Rapid Fire v1.1 (Build 239)", 0 ) +GAME( 1998, rapidfira, rapidfir, rapidfir, rapidfir, tickee_state, 0, ROT0, "Hanaho Games", "Rapid Fire v1.1 (Build 238)", 0 ) +GAME( 1998, rapidfire, rapidfir, rapidfir, rapidfir, tickee_state, 0, ROT0, "Hanaho Games", "Rapid Fire v1.0 (Build 236)", 0 ) +GAME( 1999, maletmad, 0, rapidfir, rapidfir, tickee_state, 0, ROT0, "Hanaho Games", "Mallet Madness v2.1", 0 ) diff --git a/src/mame/drivers/tigeroad.cpp b/src/mame/drivers/tigeroad.cpp index 2d1eacb70ce..8fad27fe349 100644 --- a/src/mame/drivers/tigeroad.cpp +++ b/src/mame/drivers/tigeroad.cpp @@ -574,7 +574,7 @@ static GFXDECODE_START( tigeroad ) GFXDECODE_ENTRY( "sprites", 0, sprite_layout, 0x200, 16 ) GFXDECODE_END -static MACHINE_CONFIG_START( tigeroad, tigeroad_state ) +static MACHINE_CONFIG_START( tigeroad ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_10MHz) /* verified on pcb */ @@ -633,12 +633,12 @@ static MACHINE_CONFIG_DERIVED( toramich, tigeroad ) /* sound hardware */ MCFG_SOUND_ADD("msm", MSM5205, 384000) - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_SEX_4B) /* 4KHz playback ? */ + MCFG_MSM5205_PRESCALER_SELECTOR(SEX_4B) /* 4KHz playback ? */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( f1dream_comad, tigeroad_state ) +static MACHINE_CONFIG_START( f1dream_comad ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 8000000) @@ -695,7 +695,7 @@ void pushman_state::machine_start() save_item(NAME(m_mcu_latch_ctl)); } -static MACHINE_CONFIG_DERIVED_CLASS(pushman, f1dream_comad, pushman_state) +static MACHINE_CONFIG_DERIVED(pushman, f1dream_comad) MCFG_CPU_MODIFY("maincpu") MCFG_CPU_PROGRAM_MAP(pushman_map) @@ -1178,21 +1178,21 @@ DRIVER_INIT_MEMBER(tigeroad_state, f1dream) /***************************************************************************/ -GAME( 1987, tigeroad, 0, tigeroad, tigeroad, driver_device, 0, ROT0, "Capcom", "Tiger Road (US)", 0 ) -GAME( 1987, tigeroadu,tigeroad, tigeroad, tigeroad, driver_device, 0, ROT0, "Capcom (Romstar license)", "Tiger Road (US, Romstar license)", 0 ) -GAME( 1987, toramich, tigeroad, toramich, toramich, driver_device, 0, ROT0, "Capcom", "Tora e no Michi (Japan)", 0 ) -GAME( 1987, tigeroadb,tigeroad, tigeroad, tigeroad, driver_device, 0, ROT0, "bootleg", "Tiger Road (US bootleg)", 0 ) +GAME( 1987, tigeroad, 0, tigeroad, tigeroad, tigeroad_state, 0, ROT0, "Capcom", "Tiger Road (US)", 0 ) +GAME( 1987, tigeroadu,tigeroad, tigeroad, tigeroad, tigeroad_state, 0, ROT0, "Capcom (Romstar license)", "Tiger Road (US, Romstar license)", 0 ) +GAME( 1987, toramich, tigeroad, toramich, toramich, tigeroad_state, 0, ROT0, "Capcom", "Tora e no Michi (Japan)", 0 ) +GAME( 1987, tigeroadb,tigeroad, tigeroad, tigeroad, tigeroad_state, 0, ROT0, "bootleg", "Tiger Road (US bootleg)", 0 ) /* F1 Dream has an Intel 8751 microcontroller for protection */ GAME( 1988, f1dream, 0, tigeroad, f1dream, tigeroad_state, f1dream, ROT0, "Capcom (Romstar license)", "F-1 Dream", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION ) // collisions are wrong -GAME( 1988, f1dreamb, f1dream, tigeroad, f1dream, driver_device, 0, ROT0, "bootleg", "F-1 Dream (bootleg, set 1)", 0 ) -GAME( 1988, f1dreamba,f1dream, tigeroad, f1dream, driver_device, 0, ROT0, "bootleg", "F-1 Dream (bootleg, set 2)", 0 ) +GAME( 1988, f1dreamb, f1dream, tigeroad, f1dream, tigeroad_state, 0, ROT0, "bootleg", "F-1 Dream (bootleg, set 1)", 0 ) +GAME( 1988, f1dreamba,f1dream, tigeroad, f1dream, tigeroad_state, 0, ROT0, "bootleg", "F-1 Dream (bootleg, set 2)", 0 ) /* This Comad hardware is based around the F1 Dream design */ -GAME( 1990, pushman, 0, pushman, pushman, driver_device, 0, ROT0, "Comad", "Pushman (Korea, set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, pushmana, pushman, pushman, pushman, driver_device, 0, ROT0, "Comad", "Pushman (Korea, set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, pushmans, pushman, pushman, pushman, driver_device, 0, ROT0, "Comad (American Sammy license)", "Pushman (American Sammy license)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, pushmant, pushman, pushman, pushman, driver_device, 0, ROT0, "Comad (Top Tronic license)", "Pushman (Top Tronic license)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, pushman, 0, pushman, pushman, pushman_state, 0, ROT0, "Comad", "Pushman (Korea, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, pushmana, pushman, pushman, pushman, pushman_state, 0, ROT0, "Comad", "Pushman (Korea, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, pushmans, pushman, pushman, pushman, pushman_state, 0, ROT0, "Comad (American Sammy license)", "Pushman (American Sammy license)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, pushmant, pushman, pushman, pushman, pushman_state, 0, ROT0, "Comad (Top Tronic license)", "Pushman (Top Tronic license)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, bballs, 0, bballs, bballs, driver_device, 0, ROT0, "Comad", "Bouncing Balls", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, bballsa, bballs, bballs, bballs, driver_device, 0, ROT0, "Comad", "Bouncing Balls (Adult)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, bballs, 0, bballs, bballs, pushman_state, 0, ROT0, "Comad", "Bouncing Balls", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, bballsa, bballs, bballs, bballs, pushman_state, 0, ROT0, "Comad", "Bouncing Balls (Adult)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/tiki100.cpp b/src/mame/drivers/tiki100.cpp index 91149a0d020..0388d0e9aa5 100644 --- a/src/mame/drivers/tiki100.cpp +++ b/src/mame/drivers/tiki100.cpp @@ -695,7 +695,7 @@ void tiki100_state::machine_reset() /* Machine Driver */ -static MACHINE_CONFIG_START( tiki100, tiki100_state ) +static MACHINE_CONFIG_START( tiki100 ) /* basic machine hardware */ MCFG_CPU_ADD(Z80_TAG, Z80, XTAL_8MHz/2) MCFG_CPU_PROGRAM_MAP(tiki100_mem) @@ -807,6 +807,6 @@ ROM_END /* System Drivers */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1984, kontiki, 0, 0, tiki100, tiki100, driver_device, 0, "Kontiki Data A/S", "KONTIKI 100", MACHINE_SUPPORTS_SAVE ) -COMP( 1984, tiki100, kontiki, 0, tiki100, tiki100, driver_device, 0, "Tiki Data A/S", "TIKI 100", MACHINE_SUPPORTS_SAVE ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1984, kontiki, 0, 0, tiki100, tiki100, tiki100_state, 0, "Kontiki Data A/S", "KONTIKI 100", MACHINE_SUPPORTS_SAVE ) +COMP( 1984, tiki100, kontiki, 0, tiki100, tiki100, tiki100_state, 0, "Tiki Data A/S", "TIKI 100", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/tim011.cpp b/src/mame/drivers/tim011.cpp index 2e95c9de071..2d4641cc948 100644 --- a/src/mame/drivers/tim011.cpp +++ b/src/mame/drivers/tim011.cpp @@ -121,7 +121,7 @@ static const floppy_format_type tim011_floppy_formats[] = { nullptr }; -static MACHINE_CONFIG_START( tim011,tim011_state ) +static MACHINE_CONFIG_START( tim011 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z180, XTAL_12_288MHz / 2) // location U17 HD64180 MCFG_CPU_PROGRAM_MAP(tim011_mem) @@ -162,5 +162,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1987, tim011, 0, 0, tim011, tim011, driver_device, 0, "Mihajlo Pupin Institute", "TIM-011", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +COMP( 1987, tim011, 0, 0, tim011, tim011, tim011_state, 0, "Mihajlo Pupin Institute", "TIM-011", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) diff --git a/src/mame/drivers/tim100.cpp b/src/mame/drivers/tim100.cpp index 5e80ae8c2f5..c885a3a66c9 100644 --- a/src/mame/drivers/tim100.cpp +++ b/src/mame/drivers/tim100.cpp @@ -168,7 +168,7 @@ WRITE_LINE_MEMBER( tim100_state::clock_w ) } -static MACHINE_CONFIG_START( tim100, tim100_state ) +static MACHINE_CONFIG_START( tim100 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",I8085A, XTAL_4_9152MHz) // divider unknown MCFG_CPU_PROGRAM_MAP(tim100_mem) @@ -239,4 +239,4 @@ ROM_START( tim100 ) ROM_END /* Driver */ -COMP( 1985, tim100, 0, 0, tim100, tim100, driver_device, 0, "Mihajlo Pupin Institute", "TIM-100", MACHINE_IS_SKELETON) +COMP( 1985, tim100, 0, 0, tim100, tim100, tim100_state, 0, "Mihajlo Pupin Institute", "TIM-100", MACHINE_IS_SKELETON) diff --git a/src/mame/drivers/timelimt.cpp b/src/mame/drivers/timelimt.cpp index 06147a0c131..782f4daba1f 100644 --- a/src/mame/drivers/timelimt.cpp +++ b/src/mame/drivers/timelimt.cpp @@ -221,7 +221,7 @@ INTERRUPT_GEN_MEMBER(timelimt_state::irq) /***************************************************************************/ -static MACHINE_CONFIG_START( timelimt, timelimt_state ) +static MACHINE_CONFIG_START( timelimt ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 5000000) /* 5.000 MHz */ @@ -329,5 +329,5 @@ ROM_START( progress ) ROM_LOAD( "57.bin", 0x0040, 0x0020, CRC(18455a79) SHA1(e4d64368560e3116a922588129f5f91a4c520f7d) ) ROM_END -GAME( 1983, timelimt, 0, timelimt, timelimt, driver_device, 0, ROT90, "Chuo Co. Ltd", "Time Limit", MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE ) -GAME( 1984, progress, 0, timelimt, progress, driver_device, 0, ROT90, "Chuo Co. Ltd", "Progress", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, timelimt, 0, timelimt, timelimt, timelimt_state, 0, ROT90, "Chuo Co. Ltd", "Time Limit", MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE ) +GAME( 1984, progress, 0, timelimt, progress, timelimt_state, 0, ROT90, "Chuo Co. Ltd", "Progress", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/timeplt.cpp b/src/mame/drivers/timeplt.cpp index 5c782878f65..39a502f1af3 100644 --- a/src/mame/drivers/timeplt.cpp +++ b/src/mame/drivers/timeplt.cpp @@ -424,7 +424,7 @@ void timeplt_state::machine_reset() m_nmi_enable = 0; } -static MACHINE_CONFIG_START( timeplt, timeplt_state ) +static MACHINE_CONFIG_START( timeplt ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, MASTER_CLOCK/3/2) /* not confirmed, but common for Konami games of the era */ @@ -674,12 +674,12 @@ ROM_END * *************************************/ -GAME( 1982, timeplt, 0, timeplt, timeplt, driver_device, 0, ROT90, "Konami", "Time Pilot", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, timepltc, timeplt, timeplt, timeplt, driver_device, 0, ROT90, "Konami (Centuri license)", "Time Pilot (Centuri)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, timeplta, timeplt, timeplt, timeplt, driver_device, 0, ROT90, "Konami (Atari license)", "Time Pilot (Atari)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, spaceplt, timeplt, timeplt, timeplt, driver_device, 0, ROT90, "bootleg", "Space Pilot", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, timeplt, 0, timeplt, timeplt, timeplt_state, 0, ROT90, "Konami", "Time Pilot", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, timepltc, timeplt, timeplt, timeplt, timeplt_state, 0, ROT90, "Konami (Centuri license)", "Time Pilot (Centuri)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, timeplta, timeplt, timeplt, timeplt, timeplt_state, 0, ROT90, "Konami (Atari license)", "Time Pilot (Atari)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, spaceplt, timeplt, timeplt, timeplt, timeplt_state, 0, ROT90, "bootleg", "Space Pilot", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, psurge, 0, psurge, psurge, driver_device, 0, ROT270, "Vision Electronics", "Power Surge", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, psurge, 0, psurge, psurge, timeplt_state, 0, ROT270, "Vision Electronics", "Power Surge", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, chkun, 0, chkun, chkun, driver_device, 0, ROT90, "Peni", "Chance Kun (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) -GAME( 1987, bikkuric, 0, bikkuric,bikkuric, driver_device,0, ROT90, "Peni", "Bikkuri Card (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, chkun, 0, chkun, chkun, timeplt_state, 0, ROT90, "Peni", "Chance Kun (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) +GAME( 1987, bikkuric, 0, bikkuric, bikkuric, timeplt_state, 0, ROT90, "Peni", "Bikkuri Card (Japan)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/timetrv.cpp b/src/mame/drivers/timetrv.cpp index de68294d241..dfec6fecc3d 100644 --- a/src/mame/drivers/timetrv.cpp +++ b/src/mame/drivers/timetrv.cpp @@ -150,7 +150,7 @@ INTERRUPT_GEN_MEMBER(timetrv_state::ld_irq) device.execute().set_input_line_and_vector(0,HOLD_LINE,0x48/4); //ld irq } -static MACHINE_CONFIG_START( timetrv, timetrv_state ) +static MACHINE_CONFIG_START( timetrv ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",I80188,20000000) //??? @@ -194,5 +194,5 @@ ROM_START( timetrv2 ) DISK_IMAGE_READONLY( "timetrv", 0, NO_DUMP ) ROM_END -GAME( 1991, timetrv, 0, timetrv, timetrv, driver_device, 0, ROT0, "Virtual Image Productions (Sega license)", "Time Traveler (set 1)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING ) -GAME( 1991, timetrv2, timetrv, timetrv, timetrv, driver_device, 0, ROT0, "Virtual Image Productions (Sega license)", "Time Traveler (set 2)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING ) // Europe? +GAME( 1991, timetrv, 0, timetrv, timetrv, timetrv_state, 0, ROT0, "Virtual Image Productions (Sega license)", "Time Traveler (set 1)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING ) +GAME( 1991, timetrv2, timetrv, timetrv, timetrv, timetrv_state, 0, ROT0, "Virtual Image Productions (Sega license)", "Time Traveler (set 2)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING ) // Europe? diff --git a/src/mame/drivers/tispeak.cpp b/src/mame/drivers/tispeak.cpp index 5209008003c..e3b905f193c 100644 --- a/src/mame/drivers/tispeak.cpp +++ b/src/mame/drivers/tispeak.cpp @@ -1195,7 +1195,7 @@ static MACHINE_CONFIG_FRAGMENT( tms5110_route ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( snmath, tispeak_state ) +static MACHINE_CONFIG_START( snmath ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS0270, MASTER_CLOCK/2) @@ -1292,7 +1292,7 @@ static MACHINE_CONFIG_DERIVED( lantutor, snmath ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( snspellc, tispeak_state ) +static MACHINE_CONFIG_START( snspellc ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS1100, MASTER_CLOCK/2) @@ -1325,7 +1325,7 @@ static MACHINE_CONFIG_DERIVED( snspellcuk, snspellc ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( vocaid, tispeak_state ) +static MACHINE_CONFIG_START( vocaid ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS1100, MASTER_CLOCK/2) @@ -1356,7 +1356,7 @@ static MACHINE_CONFIG_DERIVED( tntell, vocaid ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( k28m2, tispeak_state ) +static MACHINE_CONFIG_START( k28m2 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS1400, MASTER_CLOCK/2) @@ -1739,34 +1739,34 @@ ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY, FULLNAME, FLAGS */ +// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME, FLAGS COMP( 1979, snspell, 0, 0, sns_tmc0281, snspell, tispeak_state, snspell, "Texas Instruments", "Speak & Spell (US, 1979 version)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) -COMP( 1978, snspellp, snspell, 0, sns_tmc0281, snspell, tispeak_state, snspell, "Texas Instruments", "Speak & Spell (US, patent)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) +COMP( 1978, snspellp, snspell, 0, sns_tmc0281, snspell, tispeak_state, snspell, "Texas Instruments", "Speak & Spell (US, patent)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) COMP( 1980, snspellub, snspell, 0, sns_tmc0281d, snspell, tispeak_state, snspell, "Texas Instruments", "Speak & Spell (US, 1980 version)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) COMP( 1978, snspellua, snspell, 0, sns_tmc0281, snspell, tispeak_state, snspell, "Texas Instruments", "Speak & Spell (US, 1978 version)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) // incomplete dump, using 1979 MCU ROM instead COMP( 1978, snspelluk, snspell, 0, sns_tmc0281, snspell, tispeak_state, snspell, "Texas Instruments", "Speak & Spell (UK, 1978 version)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) // " COMP( 1981, snspelluka, snspell, 0, sns_cd2801, snspell, tispeak_state, snspell, "Texas Instruments", "Speak & Spell (UK, 1981 version)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) -COMP( 1979, snspelljp, snspell, 0, sns_tmc0281, snspell, tispeak_state, snspell, "Texas Instruments", "Speak & Spell (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) -COMP( 1980, snspellfr, snspell, 0, sns_cd2801, snspellfr, tispeak_state, snspell, "Texas Instruments", "La Dictee Magique (France)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) -COMP( 1982, snspellit, snspell, 0, sns_cd2801_m, snspellit, tispeak_state, snspell, "Texas Instruments", "Grillo Parlante (Italy)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) +COMP( 1979, snspelljp, snspell, 0, sns_tmc0281, snspell, tispeak_state, snspell, "Texas Instruments", "Speak & Spell (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) +COMP( 1980, snspellfr, snspell, 0, sns_cd2801, snspellfr, tispeak_state, snspell, "Texas Instruments", "La Dictee Magique (France)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) +COMP( 1982, snspellit, snspell, 0, sns_cd2801_m, snspellit, tispeak_state, snspell, "Texas Instruments", "Grillo Parlante (Italy)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) COMP( 1981, snspellc, 0, 0, snspellc, snspellc, tispeak_state, snspell, "Texas Instruments", "Speak & Spell Compact (US, 1981 version)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) COMP( 1982, snspellca, snspellc, 0, snspellc, snspellc, tispeak_state, snspell, "Texas Instruments", "Speak & Spell Compact (US, 1982 version)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) -COMP( 1982, snspellcuk, snspellc, 0, snspellcuk, snspellcuk, tispeak_state, snspell, "Texas Instruments", "Speak & Write (UK)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) +COMP( 1982, snspellcuk, snspellc, 0, snspellcuk, snspellcuk, tispeak_state, snspell, "Texas Instruments", "Speak & Write (UK)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) -COMP( 1980, snmath, 0, 0, snmath, snmath, driver_device, 0, "Texas Instruments", "Speak & Math (US, 1980 version)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) -COMP( 1986, snmatha, snmath, 0, snmath, snmath, driver_device, 0, "Texas Instruments", "Speak & Math (US, 1986 version)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) -COMP( 1980, snmathp, snmath, 0, snmath, snmath, driver_device, 0, "Texas Instruments", "Speak & Math (US, patent)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND | MACHINE_IS_INCOMPLETE ) +COMP( 1980, snmath, 0, 0, snmath, snmath, tispeak_state, 0, "Texas Instruments", "Speak & Math (US, 1980 version)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) +COMP( 1986, snmatha, snmath, 0, snmath, snmath, tispeak_state, 0, "Texas Instruments", "Speak & Math (US, 1986 version)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) +COMP( 1980, snmathp, snmath, 0, snmath, snmath, tispeak_state, 0, "Texas Instruments", "Speak & Math (US, patent)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND | MACHINE_IS_INCOMPLETE ) COMP( 1980, snread, 0, 0, snread, snread, tispeak_state, snspell, "Texas Instruments", "Speak & Read (US)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) COMP( 1979, lantutor, 0, 0, lantutor, lantutor, tispeak_state, lantutor, "Texas Instruments", "Language Tutor (patent)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) -COMP( 1981, tntell, 0, 0, tntell, tntell, tispeak_state, tntell, "Texas Instruments", "Touch & Tell (US)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND | MACHINE_CLICKABLE_ARTWORK | MACHINE_REQUIRES_ARTWORK ) +COMP( 1981, tntell, 0, 0, tntell, tntell, tispeak_state, tntell, "Texas Instruments", "Touch & Tell (US)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND | MACHINE_CLICKABLE_ARTWORK | MACHINE_REQUIRES_ARTWORK ) COMP( 1980, tntellp, tntell, 0, tntell, tntell, tispeak_state, tntell, "Texas Instruments", "Touch & Tell (US, patent)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND | MACHINE_CLICKABLE_ARTWORK | MACHINE_REQUIRES_ARTWORK | MACHINE_NOT_WORKING ) -COMP( 1981, tntelluk, tntell, 0, tntell, tntell, tispeak_state, tntell, "Texas Instruments", "Touch & Tell (UK)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND | MACHINE_CLICKABLE_ARTWORK | MACHINE_REQUIRES_ARTWORK ) +COMP( 1981, tntelluk, tntell, 0, tntell, tntell, tispeak_state, tntell, "Texas Instruments", "Touch & Tell (UK)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND | MACHINE_CLICKABLE_ARTWORK | MACHINE_REQUIRES_ARTWORK ) COMP( 1981, tntellfr, tntell, 0, tntell, tntell, tispeak_state, tntell, "Texas Instruments", "Le Livre Magique (France)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND | MACHINE_CLICKABLE_ARTWORK | MACHINE_REQUIRES_ARTWORK ) -COMP( 1982, vocaid, 0, 0, vocaid, tntell, driver_device, 0, "Texas Instruments", "Vocaid", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND | MACHINE_REQUIRES_ARTWORK ) +COMP( 1982, vocaid, 0, 0, vocaid, tntell, tispeak_state, 0, "Texas Instruments", "Vocaid", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND | MACHINE_REQUIRES_ARTWORK ) COMP( 1985, k28m2, 0, 0, k28m2, k28m2, tispeak_state, snspell, "Tiger Electronics", "K28: Talking Learning Computer (model 7-232)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/tispellb.cpp b/src/mame/drivers/tispellb.cpp index f4c212e1d2e..851af4b561b 100644 --- a/src/mame/drivers/tispellb.cpp +++ b/src/mame/drivers/tispellb.cpp @@ -342,7 +342,7 @@ INPUT_PORTS_END ***************************************************************************/ -static MACHINE_CONFIG_START( rev1, tispellb_state ) +static MACHINE_CONFIG_START( rev1 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS0270, 350000) // approximation @@ -366,7 +366,7 @@ static MACHINE_CONFIG_START( rev1, tispellb_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( rev2, tispellb_state ) +static MACHINE_CONFIG_START( rev2 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", TMS0270, 350000) // approximation @@ -451,8 +451,8 @@ ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY, FULLNAME, FLAGS */ -COMP( 1978, spellb, 0, 0, rev1, spellb, driver_device, 0, "Texas Instruments", "Spelling B (1978 version)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) -COMP( 1979, spellb79, spellb, 0, rev2, spellb, driver_device, 0, "Texas Instruments", "Spelling B (1979 version)", MACHINE_SUPPORTS_SAVE ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1978, spellb, 0, 0, rev1, spellb, tispellb_state, 0, "Texas Instruments", "Spelling B (1978 version)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) +COMP( 1979, spellb79, spellb, 0, rev2, spellb, tispellb_state, 0, "Texas Instruments", "Spelling B (1979 version)", MACHINE_SUPPORTS_SAVE ) -COMP( 1979, mrchalgr, 0, 0, rev2, mrchalgr, driver_device, 0, "Texas Instruments", "Mr. Challenger", MACHINE_SUPPORTS_SAVE ) +COMP( 1979, mrchalgr, 0, 0, rev2, mrchalgr, tispellb_state, 0, "Texas Instruments", "Mr. Challenger", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/tk2000.cpp b/src/mame/drivers/tk2000.cpp index 1f8b60f8853..cdec166af41 100644 --- a/src/mame/drivers/tk2000.cpp +++ b/src/mame/drivers/tk2000.cpp @@ -561,7 +561,7 @@ static INPUT_PORTS_START( tk2000 ) PORT_CONFSETTING(0x03, "Amber") INPUT_PORTS_END -static MACHINE_CONFIG_START( tk2000, tk2000_state ) +static MACHINE_CONFIG_START( tk2000 ) /* basic machine hardware */ MCFG_CPU_ADD(A2_CPU_TAG, M6502, 1021800) /* close to actual CPU frequency of 1.020484 MHz */ MCFG_CPU_PROGRAM_MAP(apple2_map) @@ -610,5 +610,5 @@ ROM_START(tk2000) ROM_LOAD( "tk2000.rom", 0x000000, 0x004000, CRC(dfdbacc3) SHA1(bb37844c31616046630868a4399ee3d55d6df277) ) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ -COMP( 1984, tk2000, 0, 0, tk2000, tk2000, driver_device, 0, "Microdigital", "TK2000", MACHINE_NOT_WORKING ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT INIT COMPANY FULLNAME */ +COMP( 1984, tk2000, 0, 0, tk2000, tk2000, tk2000_state, 0, "Microdigital", "TK2000", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/tk80.cpp b/src/mame/drivers/tk80.cpp index ddb0ee2121e..0e9424e0c88 100644 --- a/src/mame/drivers/tk80.cpp +++ b/src/mame/drivers/tk80.cpp @@ -248,7 +248,7 @@ WRITE8_MEMBER( tk80_state::mikrolab_serial_w ) m_ppi_portc = data; } -static MACHINE_CONFIG_START( tk80, tk80_state ) +static MACHINE_CONFIG_START( tk80 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",I8080, XTAL_1MHz) // 18.432 / 9 MCFG_CPU_PROGRAM_MAP(tk80_mem) @@ -277,7 +277,7 @@ static MACHINE_CONFIG_DERIVED( mikrolab, tk80 ) MCFG_I8255_OUT_PORTC_CB(WRITE8(tk80_state, mikrolab_serial_w)) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( nd80z, tk80_state ) +static MACHINE_CONFIG_START( nd80z ) MCFG_CPU_ADD("maincpu", Z80, XTAL_1MHz) // Sharp LH0080A, can't see writing on xtal MCFG_CPU_PROGRAM_MAP(tk85_mem) MCFG_CPU_IO_MAP(nd80z_io) @@ -339,9 +339,9 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1976, tk80, 0, 0, tk80, tk80, driver_device, 0, "NEC", "TK-80", MACHINE_NO_SOUND_HW) -COMP( 1980, nectk85, tk80, 0, tk85, tk80, driver_device, 0, "NEC", "TK-85", MACHINE_NO_SOUND_HW) -COMP( 19??, nd80z, tk80, 0, nd80z, tk80, driver_device, 0, "Chunichi", "ND-80Z", MACHINE_NO_SOUND_HW) -COMP( 19??, mikrolab, tk80, 0, mikrolab, mikrolab, driver_device, 0, "", "Mikrolab KR580IK80", MACHINE_NO_SOUND_HW) -COMP( 19??, ics8080, tk80, 0, ics8080, ics8080, driver_device, 0, "", "ICS8080", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 1976, tk80, 0, 0, tk80, tk80, tk80_state, 0, "NEC", "TK-80", MACHINE_NO_SOUND_HW ) +COMP( 1980, nectk85, tk80, 0, tk85, tk80, tk80_state, 0, "NEC", "TK-85", MACHINE_NO_SOUND_HW ) +COMP( 19??, nd80z, tk80, 0, nd80z, tk80, tk80_state, 0, "Chunichi", "ND-80Z", MACHINE_NO_SOUND_HW ) +COMP( 19??, mikrolab, tk80, 0, mikrolab, mikrolab, tk80_state, 0, "", "Mikrolab KR580IK80", MACHINE_NO_SOUND_HW ) +COMP( 19??, ics8080, tk80, 0, ics8080, ics8080, tk80_state, 0, "", "ICS8080", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW ) diff --git a/src/mame/drivers/tk80bs.cpp b/src/mame/drivers/tk80bs.cpp index 0677dc63199..7176dd2f059 100644 --- a/src/mame/drivers/tk80bs.cpp +++ b/src/mame/drivers/tk80bs.cpp @@ -43,7 +43,7 @@ public: DECLARE_READ8_MEMBER(ppi_custom_r); DECLARE_WRITE8_MEMBER(ppi_custom_w); - DECLARE_WRITE8_MEMBER(kbd_put); + void kbd_put(u8 data); DECLARE_READ8_MEMBER(port_a_r); DECLARE_READ8_MEMBER(port_b_r); uint32_t screen_update_tk80bs(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); @@ -142,7 +142,7 @@ READ8_MEMBER( tk80bs_state::port_b_r ) return 0; } -WRITE8_MEMBER( tk80bs_state::kbd_put ) +void tk80bs_state::kbd_put(u8 data) { data &= 0x7f; if (data > 0x5f) data-=0x20; @@ -166,7 +166,7 @@ static GFXDECODE_START( tk80bs ) GFXDECODE_END -static MACHINE_CONFIG_START( tk80bs, tk80bs_state ) +static MACHINE_CONFIG_START( tk80bs ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",I8080, XTAL_1MHz) //unknown clock MCFG_CPU_PROGRAM_MAP(tk80bs_mem) @@ -189,7 +189,7 @@ static MACHINE_CONFIG_START( tk80bs, tk80bs_state ) MCFG_I8255_IN_PORTB_CB(READ8(tk80bs_state, port_b_r)) MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0) - MCFG_GENERIC_KEYBOARD_CB(WRITE8(tk80bs_state, kbd_put)) + MCFG_GENERIC_KEYBOARD_CB(PUT(tk80bs_state, kbd_put)) MACHINE_CONFIG_END @@ -220,5 +220,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1980, tk80bs, tk80, 0, tk80bs, tk80bs, driver_device, 0, "NEC", "TK-80BS", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 1980, tk80bs, tk80, 0, tk80bs, tk80bs, tk80bs_state, 0, "NEC", "TK-80BS", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW) diff --git a/src/mame/drivers/tm990189.cpp b/src/mame/drivers/tm990189.cpp index 574070862e0..f78c0cc26c4 100644 --- a/src/mame/drivers/tm990189.cpp +++ b/src/mame/drivers/tm990189.cpp @@ -316,7 +316,7 @@ WRITE8_MEMBER( tm990189_state::sys9901_interrupt_callback ) READ8_MEMBER( tm990189_state::sys9901_r ) { uint8_t data = 0; - if (offset == TMS9901_CB_INT7) + if (offset == tms9901_device::CB_INT7) { static const char *const keynames[] = { "LINE0", "LINE1", "LINE2", "LINE3", "LINE4", "LINE5", "LINE6", "LINE7", "LINE8" }; @@ -456,11 +456,11 @@ protected: virtual void device_start() override; }; -const device_type TM990_189_RS232 = device_creator; +DEFINE_DEVICE_TYPE(TM990_189_RS232, tm990_189_rs232_image_device, "tm990_189_rs232_image", "TM990/189 RS232 port") tm990_189_rs232_image_device::tm990_189_rs232_image_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, TM990_189_RS232, "TM990/189 RS232 port", tag, owner, clock, "tm990_189_rs232_image", __FILE__), - device_image_interface(mconfig, *this) + : device_t(mconfig, TM990_189_RS232, tag, owner, clock) + , device_image_interface(mconfig, *this) { } @@ -626,7 +626,7 @@ WRITE8_MEMBER( tm990189_state::video_joy_w ) // user tms9901 setup static const tms9901_interface usr9901reset_param = { - TMS9901_INT1 | TMS9901_INT2 | TMS9901_INT3 | TMS9901_INT4 | TMS9901_INT5 | TMS9901_INT6, // only input pins whose state is always known + tms9901_device::INT1 | tms9901_device::INT2 | tms9901_device::INT3 | tms9901_device::INT4 | tms9901_device::INT5 | tms9901_device::INT6, // only input pins whose state is always known // Read handler. Covers all input lines (see tms9901.h) DEVCB_NOOP, @@ -803,7 +803,7 @@ static ADDRESS_MAP_START( tm990_189_cru_map, AS_IO, 8, tm990189_state ) AM_RANGE(0x0400, 0x05ff) AM_DEVWRITE("tms9902", tms9902_device, cruwrite) /* optional tms9902 */ ADDRESS_MAP_END -static MACHINE_CONFIG_START( tm990_189, tm990189_state ) +static MACHINE_CONFIG_START( tm990_189 ) /* basic machine hardware */ MCFG_TMS99xx_ADD("maincpu", TMS9980A, 2000000, tm990_189_memmap, tm990_189_cru_map) MCFG_TMS99xx_EXTOP_HANDLER( WRITE8(tm990189_state, external_operation) ) @@ -860,7 +860,7 @@ static MACHINE_CONFIG_START( tm990_189, tm990189_state ) MCFG_TIMER_START_DELAY(attotime::from_msec(150)) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( tm990_189_v, tm990189_state ) +static MACHINE_CONFIG_START( tm990_189_v ) /* basic machine hardware */ MCFG_TMS99xx_ADD("maincpu", TMS9980A, 2000000, tm990_189_v_memmap, tm990_189_cru_map) MCFG_TMS99xx_EXTOP_HANDLER( WRITE8(tm990189_state, external_operation) ) @@ -1042,6 +1042,6 @@ static INPUT_PORTS_START(tm990_189) PORT_BIT( 0x3ff, 0x1aa, IPT_AD_STICK_Y) PORT_SENSITIVITY(JOYSTICK_SENSITIVITY) PORT_KEYDELTA(JOYSTICK_DELTA) PORT_MINMAX(0xd2,0x282 ) PORT_PLAYER(2) PORT_REVERSE INPUT_PORTS_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ -COMP( 1978, 990189, 0, 0, tm990_189, tm990_189, driver_device, 0, "Texas Instruments", "TM 990/189 University Board microcomputer" , 0) -COMP( 1980, 990189v, 990189, 0, tm990_189_v, tm990_189, driver_device, 0, "Texas Instruments", "TM 990/189 University Board microcomputer with Video Board Interface" , 0) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1978, 990189, 0, 0, tm990_189, tm990_189, tm990189_state, 0, "Texas Instruments", "TM 990/189 University Board microcomputer", 0 ) +COMP( 1980, 990189v, 990189, 0, tm990_189_v, tm990_189, tm990189_state, 0, "Texas Instruments", "TM 990/189 University Board microcomputer with Video Board Interface", 0 ) diff --git a/src/mame/drivers/tmaster.cpp b/src/mame/drivers/tmaster.cpp index d14f3ab8881..ec1fa4f6512 100644 --- a/src/mame/drivers/tmaster.cpp +++ b/src/mame/drivers/tmaster.cpp @@ -358,7 +358,7 @@ int tmaster_compute_addr(uint16_t reg_low, uint16_t reg_mid, uint16_t reg_high) return (reg_low & 0xff) | ((reg_mid & 0x1ff) << 8) | (reg_high << 17); } -static MACHINE_CONFIG_START( tm, tmaster_state ) +static MACHINE_CONFIG_START( tm ) MCFG_CPU_ADD("maincpu", M68000, XTAL_24MHz / 2) /* 12MHz */ MCFG_CPU_PROGRAM_MAP(tmaster_map) MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", tmaster_state, scanline_interrupt, "screen", 0, 1) @@ -390,7 +390,7 @@ static MACHINE_CONFIG_START( tm, tmaster_state ) // sound hardware MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", XTAL_24MHz / 16, OKIM6295_PIN7_HIGH) /* 1.5Mhz? clock frequency & pin 7 not verified */ + MCFG_OKIM6295_ADD("oki", XTAL_24MHz / 16, PIN7_HIGH) /* 1.5Mhz? clock frequency & pin 7 not verified */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -1135,31 +1135,31 @@ ROM_START( tm8k902 ) ROM_LOAD( "tm8k_sound.u8", 0x00000, 0x100000, CRC(c6070a60) SHA1(2dc20bf2217a36374b5a691133ad43f53dbe29ca) ) /* Mask rom labeled 5341-16513-03 U8 SOUND */ ROM_END -GAME( 1996, tm, 0, tm, tm, driver_device, 0, ROT0, "Midway Games Inc. / CES Inc.", "Touchmaster (v3.00 Euro)", 0 ) -GAME( 1996, tmdo, tm, tm, tm, driver_device, 0, ROT0, "Midway Games Inc. / CES Inc.", "Touchmaster (v2.2-01 Standard)", 0 ) -GAME( 1996, tm2k, 0, tm, tm2k, driver_device, 0, ROT0, "Midway Games Inc.", "Touchmaster 2000 Plus (v4.63 Standard)", 0 ) -GAME( 1996, tm2ka, tm2k, tm, tm2k, driver_device, 0, ROT0, "Midway Games Inc.", "Touchmaster 2000 (v4.02 Standard)", 0 ) -GAME( 1996, tm2kb, tm2k, tm, tm2k, driver_device, 0, ROT0, "Midway Games Inc.", "Touchmaster 2000 (v4.00 Standard)", 0 ) -GAME( 1996, tm2kspeval, tm2k, tm, tm2k, driver_device, 0, ROT0, "Midway Games Inc.", "Touchmaster 2000 (v4.XX3 Spanish Evaluation)", 0 ) -GAME( 1997, tm3k, 0, tm, tm2k, driver_device, 0, ROT0, "Midway Games Inc.", "Touchmaster 3000 (v5.02 Standard)", 0 ) -GAME( 1997, tm3ksp, tm3k, tm, tm2k, driver_device, 0, ROT0, "Midway Games Inc.", "Touchmaster 3000 (v5.02 Spanish)", 0 ) -GAME( 1997, tm3ka, tm3k, tm, tm2k, driver_device, 0, ROT0, "Midway Games Inc.", "Touchmaster 3000 (v5.01 Standard)", 0 ) -GAME( 1997, tm3keval, tm3k, tm, tm2k, driver_device, 0, ROT0, "Midway Games Inc.", "Touchmaster 3000 (v5.XX Standard AMOA Evaluation)", 0 ) -GAME( 1998, tm4k, 0, tmds1204, tm4k, driver_device, 0, ROT0, "Midway Games Inc.", "Touchmaster 4000 (v6.03 Standard)", 0 ) -GAME( 1998, tm4knj, tm4k, tmds1204, tm4k, driver_device, 0, ROT0, "Midway Games Inc.", "Touchmaster 4000 (v6.03 New Jersey)", 0 ) -GAME( 1998, tm4ka, tm4k, tmds1204, tm4k, driver_device, 0, ROT0, "Midway Games Inc.", "Touchmaster 4000 (v6.02 Standard)", 0 ) -GAME( 1998, tm4kca, tm4k, tmds1204, tm4k, driver_device, 0, ROT0, "Midway Games Inc.", "Touchmaster 4000 (v6.02 California)", 0 ) -GAME( 1998, tm4kb, tm4k, tmds1204, tm4k, driver_device, 0, ROT0, "Midway Games Inc.", "Touchmaster 4000 (v6.01 Standard)", 0 ) -GAME( 1998, tm4kmn, tm4k, tmds1204, tm4k, driver_device, 0, ROT0, "Midway Games Inc.", "Touchmaster 4000 (v6.01 Minnesota)", 0 ) -GAME( 1998, tm5k, 0, tmds1204, tm4k, driver_device, 0, ROT0, "Midway Games Inc.", "Touchmaster 5000 (v7.10 Standard)", 0 ) -GAME( 1998, tm5kca, tm5k, tmds1204, tm4k, driver_device, 0, ROT0, "Midway Games Inc.", "Touchmaster 5000 (v7.10 California)", 0 ) -GAME( 1998, tm5kmn, tm5k, tmds1204, tm4k, driver_device, 0, ROT0, "Midway Games Inc.", "Touchmaster 5000 (v7.10 Minnesota)", 0 ) -GAME( 1998, tm5ka, tm5k, tmds1204, tm4k, driver_device, 0, ROT0, "Midway Games Inc.", "Touchmaster 5000 (v7.01 Standard)", 0 ) -GAME( 1999, tm7k, 0, tmds1204, tm4k, driver_device, 0, ROT0, "Midway Games Inc.", "Touchmaster 7000 (v8.04 Standard)", 0 ) -GAME( 1999, tm7knj, tm7k, tmds1204, tm4k, driver_device, 0, ROT0, "Midway Games Inc.", "Touchmaster 7000 (v8.05 New Jersey)", 0 ) -GAME( 1999, tm7kmn, tm7k, tmds1204, tm4k, driver_device, 0, ROT0, "Midway Games Inc.", "Touchmaster 7000 (v8.04 Minnesota)", 0 ) -GAME( 1999, tm7ka, tm7k, tmds1204, tm4k, driver_device, 0, ROT0, "Midway Games Inc.", "Touchmaster 7000 (v8.00 Standard)", 0 ) -GAME( 1999, tm7kmna, tm7k, tmds1204, tm4k, driver_device, 0, ROT0, "Midway Games Inc.", "Touchmaster 7000 (v8.00 Minnesota)", 0 ) -GAME( 1999, tm7keval, tm7k, tmds1204, tm4k, driver_device, 0, ROT0, "Midway Games Inc.", "Touchmaster 7000 (v8.1X ASI Standard Evaluation)", 0 ) -GAME( 2000, tm8k, 0, tmds1204, tm4k, driver_device, 0, ROT0, "Midway Games Inc.", "Touchmaster 8000 (v9.04 Standard)", 0 ) -GAME( 2000, tm8k902, tm8k, tmds1204, tm4k, driver_device, 0, ROT0, "Midway Games Inc.", "Touchmaster 8000 (v9.02 Standard)", 0 ) +GAME( 1996, tm, 0, tm, tm, tmaster_state, 0, ROT0, "Midway Games Inc. / CES Inc.", "Touchmaster (v3.00 Euro)", 0 ) +GAME( 1996, tmdo, tm, tm, tm, tmaster_state, 0, ROT0, "Midway Games Inc. / CES Inc.", "Touchmaster (v2.2-01 Standard)", 0 ) +GAME( 1996, tm2k, 0, tm, tm2k, tmaster_state, 0, ROT0, "Midway Games Inc.", "Touchmaster 2000 Plus (v4.63 Standard)", 0 ) +GAME( 1996, tm2ka, tm2k, tm, tm2k, tmaster_state, 0, ROT0, "Midway Games Inc.", "Touchmaster 2000 (v4.02 Standard)", 0 ) +GAME( 1996, tm2kb, tm2k, tm, tm2k, tmaster_state, 0, ROT0, "Midway Games Inc.", "Touchmaster 2000 (v4.00 Standard)", 0 ) +GAME( 1996, tm2kspeval, tm2k, tm, tm2k, tmaster_state, 0, ROT0, "Midway Games Inc.", "Touchmaster 2000 (v4.XX3 Spanish Evaluation)", 0 ) +GAME( 1997, tm3k, 0, tm, tm2k, tmaster_state, 0, ROT0, "Midway Games Inc.", "Touchmaster 3000 (v5.02 Standard)", 0 ) +GAME( 1997, tm3ksp, tm3k, tm, tm2k, tmaster_state, 0, ROT0, "Midway Games Inc.", "Touchmaster 3000 (v5.02 Spanish)", 0 ) +GAME( 1997, tm3ka, tm3k, tm, tm2k, tmaster_state, 0, ROT0, "Midway Games Inc.", "Touchmaster 3000 (v5.01 Standard)", 0 ) +GAME( 1997, tm3keval, tm3k, tm, tm2k, tmaster_state, 0, ROT0, "Midway Games Inc.", "Touchmaster 3000 (v5.XX Standard AMOA Evaluation)", 0 ) +GAME( 1998, tm4k, 0, tmds1204, tm4k, tmaster_state, 0, ROT0, "Midway Games Inc.", "Touchmaster 4000 (v6.03 Standard)", 0 ) +GAME( 1998, tm4knj, tm4k, tmds1204, tm4k, tmaster_state, 0, ROT0, "Midway Games Inc.", "Touchmaster 4000 (v6.03 New Jersey)", 0 ) +GAME( 1998, tm4ka, tm4k, tmds1204, tm4k, tmaster_state, 0, ROT0, "Midway Games Inc.", "Touchmaster 4000 (v6.02 Standard)", 0 ) +GAME( 1998, tm4kca, tm4k, tmds1204, tm4k, tmaster_state, 0, ROT0, "Midway Games Inc.", "Touchmaster 4000 (v6.02 California)", 0 ) +GAME( 1998, tm4kb, tm4k, tmds1204, tm4k, tmaster_state, 0, ROT0, "Midway Games Inc.", "Touchmaster 4000 (v6.01 Standard)", 0 ) +GAME( 1998, tm4kmn, tm4k, tmds1204, tm4k, tmaster_state, 0, ROT0, "Midway Games Inc.", "Touchmaster 4000 (v6.01 Minnesota)", 0 ) +GAME( 1998, tm5k, 0, tmds1204, tm4k, tmaster_state, 0, ROT0, "Midway Games Inc.", "Touchmaster 5000 (v7.10 Standard)", 0 ) +GAME( 1998, tm5kca, tm5k, tmds1204, tm4k, tmaster_state, 0, ROT0, "Midway Games Inc.", "Touchmaster 5000 (v7.10 California)", 0 ) +GAME( 1998, tm5kmn, tm5k, tmds1204, tm4k, tmaster_state, 0, ROT0, "Midway Games Inc.", "Touchmaster 5000 (v7.10 Minnesota)", 0 ) +GAME( 1998, tm5ka, tm5k, tmds1204, tm4k, tmaster_state, 0, ROT0, "Midway Games Inc.", "Touchmaster 5000 (v7.01 Standard)", 0 ) +GAME( 1999, tm7k, 0, tmds1204, tm4k, tmaster_state, 0, ROT0, "Midway Games Inc.", "Touchmaster 7000 (v8.04 Standard)", 0 ) +GAME( 1999, tm7knj, tm7k, tmds1204, tm4k, tmaster_state, 0, ROT0, "Midway Games Inc.", "Touchmaster 7000 (v8.05 New Jersey)", 0 ) +GAME( 1999, tm7kmn, tm7k, tmds1204, tm4k, tmaster_state, 0, ROT0, "Midway Games Inc.", "Touchmaster 7000 (v8.04 Minnesota)", 0 ) +GAME( 1999, tm7ka, tm7k, tmds1204, tm4k, tmaster_state, 0, ROT0, "Midway Games Inc.", "Touchmaster 7000 (v8.00 Standard)", 0 ) +GAME( 1999, tm7kmna, tm7k, tmds1204, tm4k, tmaster_state, 0, ROT0, "Midway Games Inc.", "Touchmaster 7000 (v8.00 Minnesota)", 0 ) +GAME( 1999, tm7keval, tm7k, tmds1204, tm4k, tmaster_state, 0, ROT0, "Midway Games Inc.", "Touchmaster 7000 (v8.1X ASI Standard Evaluation)", 0 ) +GAME( 2000, tm8k, 0, tmds1204, tm4k, tmaster_state, 0, ROT0, "Midway Games Inc.", "Touchmaster 8000 (v9.04 Standard)", 0 ) +GAME( 2000, tm8k902, tm8k, tmds1204, tm4k, tmaster_state, 0, ROT0, "Midway Games Inc.", "Touchmaster 8000 (v9.02 Standard)", 0 ) diff --git a/src/mame/drivers/tmc1800.cpp b/src/mame/drivers/tmc1800.cpp index ccb0e237740..98055afd399 100644 --- a/src/mame/drivers/tmc1800.cpp +++ b/src/mame/drivers/tmc1800.cpp @@ -704,7 +704,7 @@ QUICKLOAD_LOAD_MEMBER( tmc1800_base_state, tmc1800 ) return image_init_result::PASS; } -static MACHINE_CONFIG_START( tmc1800, tmc1800_state ) +static MACHINE_CONFIG_START( tmc1800 ) // basic system hardware MCFG_CPU_ADD(CDP1802_TAG, CDP1802, XTAL_1_75MHz) MCFG_CPU_PROGRAM_MAP(tmc1800_map) @@ -736,7 +736,7 @@ static MACHINE_CONFIG_START( tmc1800, tmc1800_state ) MCFG_RAM_EXTRA_OPTIONS("4K") MACHINE_CONFIG_END -static MACHINE_CONFIG_START( osc1000b, osc1000b_state ) +static MACHINE_CONFIG_START( osc1000b ) // basic system hardware MCFG_CPU_ADD(CDP1802_TAG, CDP1802, XTAL_1_75MHz) MCFG_CPU_PROGRAM_MAP(osc1000b_map) @@ -767,7 +767,7 @@ static MACHINE_CONFIG_START( osc1000b, osc1000b_state ) MCFG_RAM_EXTRA_OPTIONS("4K") MACHINE_CONFIG_END -static MACHINE_CONFIG_START( tmc2000, tmc2000_state ) +static MACHINE_CONFIG_START( tmc2000 ) // basic system hardware MCFG_CPU_ADD(CDP1802_TAG, CDP1802, XTAL_1_75MHz) MCFG_CPU_PROGRAM_MAP(tmc2000_map) @@ -793,7 +793,7 @@ static MACHINE_CONFIG_START( tmc2000, tmc2000_state ) MCFG_RAM_EXTRA_OPTIONS("16K,32K") MACHINE_CONFIG_END -static MACHINE_CONFIG_START( nano, nano_state ) +static MACHINE_CONFIG_START( nano ) // basic system hardware MCFG_CPU_ADD(CDP1802_TAG, CDP1802, XTAL_1_75MHz) MCFG_CPU_PROGRAM_MAP(nano_map) @@ -871,8 +871,8 @@ DRIVER_INIT_MEMBER(tmc1800_state,tmc1800) /* System Drivers */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1977, tmc1800, 0, 0, tmc1800, tmc1800, tmc1800_state, tmc1800, "Telercas Oy", "Telmac 1800", MACHINE_NOT_WORKING ) -COMP( 1977, osc1000b, tmc1800,0, osc1000b, tmc1800, driver_device, 0, "OSCOM Oy", "OSCOM 1000B", MACHINE_NOT_WORKING ) -COMP( 1980, tmc2000, 0, 0, tmc2000, tmc2000, driver_device, 0, "Telercas Oy", "Telmac 2000", MACHINE_SUPPORTS_SAVE ) -COMP( 1980, nano, tmc2000,0, nano, nano, driver_device, 0, "OSCOM Oy", "OSCOM Nano", MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1977, tmc1800, 0, 0, tmc1800, tmc1800, tmc1800_state, tmc1800, "Telercas Oy", "Telmac 1800", MACHINE_NOT_WORKING ) +COMP( 1977, osc1000b, tmc1800, 0, osc1000b, tmc1800, osc1000b_state, 0, "OSCOM Oy", "OSCOM 1000B", MACHINE_NOT_WORKING ) +COMP( 1980, tmc2000, 0, 0, tmc2000, tmc2000, tmc2000_state, 0, "Telercas Oy", "Telmac 2000", MACHINE_SUPPORTS_SAVE ) +COMP( 1980, nano, tmc2000, 0, nano, nano, nano_state, 0, "OSCOM Oy", "OSCOM Nano", MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/tmc2000e.cpp b/src/mame/drivers/tmc2000e.cpp index d59a58bb42a..9ae0dd5b707 100644 --- a/src/mame/drivers/tmc2000e.cpp +++ b/src/mame/drivers/tmc2000e.cpp @@ -276,7 +276,7 @@ void tmc2000e_state::machine_reset() /* Machine Drivers */ -static MACHINE_CONFIG_START( tmc2000e, tmc2000e_state ) +static MACHINE_CONFIG_START( tmc2000e ) // basic system hardware MCFG_CPU_ADD(CDP1802_TAG, CDP1802, XTAL_1_75MHz) MCFG_CPU_PROGRAM_MAP(tmc2000e_map) @@ -318,5 +318,5 @@ ROM_START( tmc2000e ) ROM_LOAD( "4", 0xd800, 0x0800, NO_DUMP ) ROM_END -// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME -COMP( 1980, tmc2000e, 0, 0, tmc2000e, tmc2000e, driver_device, 0, "Telercas Oy", "Telmac 2000E", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME STATE +COMP( 1980, tmc2000e, 0, 0, tmc2000e, tmc2000e, tmc2000e_state, 0, "Telercas Oy", "Telmac 2000E", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/tmc600.cpp b/src/mame/drivers/tmc600.cpp index a0f940a1006..85d59466181 100644 --- a/src/mame/drivers/tmc600.cpp +++ b/src/mame/drivers/tmc600.cpp @@ -243,7 +243,7 @@ void tmc600_state::machine_start() /* Machine Drivers */ -static MACHINE_CONFIG_START( tmc600, tmc600_state ) +static MACHINE_CONFIG_START( tmc600 ) // basic system hardware MCFG_CPU_ADD(CDP1802_TAG, CDP1802, 3579545) // ??? MCFG_CPU_PROGRAM_MAP(tmc600_map) @@ -300,6 +300,6 @@ ROM_START( tmc600s2 ) ROM_END /* System Drivers */ -// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME -//COMP( 1982, tmc600s1, 0, 0, tmc600, tmc600, driver_device, 0, "Telercas Oy", "Telmac TMC-600 (Sarja I)", MACHINE_NOT_WORKING ) -COMP( 1982, tmc600s2, 0, 0, tmc600, tmc600, driver_device, 0, "Telercas Oy", "Telmac TMC-600 (Sarja II)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +//COMP( 1982, tmc600s1, 0, 0, tmc600, tmc600, tmc600_state, 0, "Telercas Oy", "Telmac TMC-600 (Sarja I)", MACHINE_NOT_WORKING ) +COMP( 1982, tmc600s2, 0, 0, tmc600, tmc600, tmc600_state, 0, "Telercas Oy", "Telmac TMC-600 (Sarja II)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/tmmjprd.cpp b/src/mame/drivers/tmmjprd.cpp index 76f82812c5a..103a92a22ba 100644 --- a/src/mame/drivers/tmmjprd.cpp +++ b/src/mame/drivers/tmmjprd.cpp @@ -763,7 +763,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(tmmjprd_state::scanline) } -static MACHINE_CONFIG_START( tmmjprd, tmmjprd_state ) +static MACHINE_CONFIG_START( tmmjprd ) MCFG_CPU_ADD("maincpu",M68EC020,24000000) /* 24 MHz */ MCFG_CPU_PROGRAM_MAP(tmmjprd_map) MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", tmmjprd_state, scanline, "lscreen", 0, 1) @@ -886,5 +886,5 @@ ROM_START( tmpdoki ) ROM_END -GAME( 1997, tmmjprd, 0, tmmjprd, tmmjprd, driver_device, 0, ROT0, "Media / Sonnet", "Tokimeki Mahjong Paradise - Dear My Love", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1998, tmpdoki, tmmjprd, tmpdoki, tmmjprd, driver_device, 0, ROT0, "Media / Sonnet", "Tokimeki Mahjong Paradise - Doki Doki Hen", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // missing gfx due to wrong roms? +GAME( 1997, tmmjprd, 0, tmmjprd, tmmjprd, tmmjprd_state, 0, ROT0, "Media / Sonnet", "Tokimeki Mahjong Paradise - Dear My Love", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1998, tmpdoki, tmmjprd, tmpdoki, tmmjprd, tmmjprd_state, 0, ROT0, "Media / Sonnet", "Tokimeki Mahjong Paradise - Doki Doki Hen", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // missing gfx due to wrong roms? diff --git a/src/mame/drivers/tmnt.cpp b/src/mame/drivers/tmnt.cpp index 48388318d2b..e351f646682 100644 --- a/src/mame/drivers/tmnt.cpp +++ b/src/mame/drivers/tmnt.cpp @@ -1892,7 +1892,7 @@ MACHINE_RESET_MEMBER(tmnt_state,common) } -static MACHINE_CONFIG_START( cuebrick, tmnt_state ) +static MACHINE_CONFIG_START( cuebrick ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 8000000) /* 8 MHz */ @@ -1944,7 +1944,7 @@ static MACHINE_CONFIG_START( cuebrick, tmnt_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( mia, tmnt_state ) +static MACHINE_CONFIG_START( mia ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_24MHz/3) @@ -2009,7 +2009,7 @@ MACHINE_RESET_MEMBER(tmnt_state,tmnt) m_upd7759->reset_w(1); } -static MACHINE_CONFIG_START( tmnt, tmnt_state ) +static MACHINE_CONFIG_START( tmnt ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_24MHz/3) @@ -2076,7 +2076,7 @@ static MACHINE_CONFIG_START( tmnt, tmnt_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( punkshot, tmnt_state ) +static MACHINE_CONFIG_START( punkshot ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_24MHz/2) @@ -2130,7 +2130,7 @@ static MACHINE_CONFIG_START( punkshot, tmnt_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( lgtnfght, tmnt_state ) +static MACHINE_CONFIG_START( lgtnfght ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_24MHz/2) @@ -2186,7 +2186,7 @@ static MACHINE_CONFIG_START( lgtnfght, tmnt_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( blswhstl, tmnt_state ) +static MACHINE_CONFIG_START( blswhstl ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_32MHz/2) /* Confirmed */ @@ -2264,7 +2264,7 @@ static GFXDECODE_START( glfgreat ) GFXDECODE_ENTRY( "zoom", 0, zoomlayout, 0x400, 16 ) GFXDECODE_END -static MACHINE_CONFIG_START( glfgreat, tmnt_state ) +static MACHINE_CONFIG_START( glfgreat ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_32MHz/2) /* Confirmed */ @@ -2330,7 +2330,7 @@ MACHINE_START_MEMBER(tmnt_state,prmrsocr) membank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x4000); } -static MACHINE_CONFIG_START( prmrsocr, tmnt_state ) +static MACHINE_CONFIG_START( prmrsocr ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_32MHz/2) /* Confirmed */ @@ -2395,7 +2395,7 @@ static MACHINE_CONFIG_START( prmrsocr, tmnt_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( tmnt2, tmnt_state ) +static MACHINE_CONFIG_START( tmnt2 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_32MHz/2) @@ -2458,7 +2458,7 @@ static MACHINE_CONFIG_START( tmnt2, tmnt_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( ssriders, tmnt_state ) +static MACHINE_CONFIG_START( ssriders ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_32MHz/2) @@ -2517,7 +2517,7 @@ static MACHINE_CONFIG_START( ssriders, tmnt_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( sunsetbl, tmnt_state ) +static MACHINE_CONFIG_START( sunsetbl ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 16000000) /* 16 MHz */ @@ -2558,12 +2558,12 @@ static MACHINE_CONFIG_START( sunsetbl, tmnt_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_OKIM6295_ADD("oki", 1056000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki", 1056000, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( thndrx2, tmnt_state ) +static MACHINE_CONFIG_START( thndrx2 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 12000000) /* 12 MHz */ @@ -4200,69 +4200,69 @@ DRIVER_INIT_MEMBER(tmnt_state,cuebrick) save_item(NAME(m_cuebrick_nvram)); } -// YEAR, NAME, PARENT, MACHINE, INPUT, INIT, MONITOR,COMPANY,FULLNAME,FLAGS -GAME( 1989, cuebrick, 0, cuebrick, cuebrick, tmnt_state, cuebrick, ROT0, "Konami", "Cue Brick (World, version D)", MACHINE_SUPPORTS_SAVE ) - -GAME( 1989, mia, 0, mia, mia, tmnt_state, mia, ROT0, "Konami", "M.I.A. - Missing in Action (version T)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, mia2, mia, mia, mia, tmnt_state, mia, ROT0, "Konami", "M.I.A. - Missing in Action (version S)", MACHINE_SUPPORTS_SAVE ) - -GAME( 1989, tmnt, 0, tmnt, tmnt, tmnt_state, tmnt, ROT0, "Konami", "Teenage Mutant Ninja Turtles (World 4 Players, version X)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, tmntu, tmnt, tmnt, tmnt, tmnt_state, tmnt, ROT0, "Konami", "Teenage Mutant Ninja Turtles (US 4 Players, version R)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, tmntua, tmnt, tmnt, tmnt, tmnt_state, tmnt, ROT0, "Konami", "Teenage Mutant Ninja Turtles (US 4 Players, version J)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, tmntub, tmnt, tmnt, tmnt, tmnt_state, tmnt, ROT0, "Konami", "Teenage Mutant Ninja Turtles (US 4 Players, version H)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, tmht, tmnt, tmnt, tmnt, tmnt_state, tmnt, ROT0, "Konami", "Teenage Mutant Hero Turtles (UK 4 Players, version F)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, tmhta, tmnt, tmnt, tmnt, tmnt_state, tmnt, ROT0, "Konami", "Teenage Mutant Hero Turtles (UK 4 Players, version S)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, tmhtb, tmnt, tmnt, tmnt, tmnt_state, tmnt, ROT0, "Konami", "Teenage Mutant Hero Turtles (UK 4 Players, version ?)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, tmntj, tmnt, tmnt, tmnt, tmnt_state, tmnt, ROT0, "Konami", "Teenage Mutant Ninja Turtles (Japan 4 Players, version 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, tmnta, tmnt, tmnt, tmnt, tmnt_state, tmnt, ROT0, "Konami", "Teenage Mutant Ninja Turtles (Asia 4 Players, version ?)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, tmht2p, tmnt, tmnt, tmnt2p, tmnt_state, tmnt, ROT0, "Konami", "Teenage Mutant Hero Turtles (UK 2 Players, version U)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, tmht2pa, tmnt, tmnt, tmnt2p, tmnt_state, tmnt, ROT0, "Konami", "Teenage Mutant Hero Turtles (UK 2 Players, version ?)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, tmnt2pj, tmnt, tmnt, tmnt2p, tmnt_state, tmnt, ROT0, "Konami", "Teenage Mutant Ninja Turtles (Japan 2 Players, version 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, tmnt2po, tmnt, tmnt, tmnt2p, tmnt_state, tmnt, ROT0, "Konami", "Teenage Mutant Ninja Turtles (Oceania 2 Players, version ?)", MACHINE_SUPPORTS_SAVE ) - -GAME( 1990, punkshot, 0, punkshot, punkshot, driver_device, 0, ROT0, "Konami", "Punk Shot (US 4 Players)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, punkshot2, punkshot, punkshot, punksht2, driver_device, 0, ROT0, "Konami", "Punk Shot (US 2 Players)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, punkshotj, punkshot, punkshot, punkshtj, driver_device, 0, ROT0, "Konami", "Punk Shot (Japan 2 Players)", MACHINE_SUPPORTS_SAVE ) - -GAME( 1990, lgtnfght, 0, lgtnfght, lgtnfght, driver_device, 0, ROT90, "Konami", "Lightning Fighters (World)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, lgtnfghta, lgtnfght, lgtnfght, lgtnfght, driver_device, 0, ROT90, "Konami", "Lightning Fighters (Asia)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, lgtnfghtu, lgtnfght, lgtnfght, lgtnfght, driver_device, 0, ROT90, "Konami", "Lightning Fighters (US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, trigon, lgtnfght, lgtnfght, trigon, driver_device, 0, ROT90, "Konami", "Trigon (Japan)", MACHINE_SUPPORTS_SAVE ) - -GAME( 1991, blswhstl, 0, blswhstl, blswhstl, driver_device, 0, ROT90, "Konami", "Bells & Whistles (World, version L)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, blswhstla, blswhstl, blswhstl, blswhstl, driver_device, 0, ROT90, "Konami", "Bells & Whistles (Asia, version M)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, detatwin, blswhstl, blswhstl, blswhstl, driver_device, 0, ROT90, "Konami", "Detana!! Twin Bee (Japan, version J)", MACHINE_SUPPORTS_SAVE ) - -GAME( 1991, glfgreat, 0, glfgreat, glfgreat, driver_device, 0, ROT0, "Konami", "Golfing Greats", MACHINE_UNEMULATED_PROTECTION | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1991, glfgreatj, glfgreat, glfgreat, glfgreatj, driver_device, 0, ROT0, "Konami", "Golfing Greats (Japan)", MACHINE_UNEMULATED_PROTECTION | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) - -GAME( 1991, tmnt2, 0, tmnt2, ssridr4p, driver_device, 0, ROT0, "Konami", "Teenage Mutant Ninja Turtles - Turtles in Time (4 Players ver UAA)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, tmnt2a, tmnt2, tmnt2, ssrid4ps, driver_device, 0, ROT0, "Konami", "Teenage Mutant Ninja Turtles - Turtles in Time (4 Players ver ADA)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, tmht22pe, tmnt2, tmnt2, ssriders, driver_device, 0, ROT0, "Konami", "Teenage Mutant Hero Turtles - Turtles in Time (2 Players ver EBA)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, tmht24pe, tmnt2, tmnt2, ssridr4p, driver_device, 0, ROT0, "Konami", "Teenage Mutant Hero Turtles - Turtles in Time (4 Players ver EAA)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, tmnt22pu, tmnt2, tmnt2, ssriders, driver_device, 0, ROT0, "Konami", "Teenage Mutant Ninja Turtles - Turtles in Time (2 Players ver UDA)", MACHINE_SUPPORTS_SAVE ) - -GAME( 1993, qgakumon, 0, tmnt2, qgakumon, driver_device, 0, ROT0, "Konami", "Quiz Gakumon no Susume (Japan ver. JA2 Type L)", MACHINE_SUPPORTS_SAVE ) - -GAME( 1991, ssriders, 0, ssriders, ssridr4p, driver_device, 0, ROT0, "Konami", "Sunset Riders (4 Players ver EAC)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1991, ssriderseaa, ssriders, ssriders, ssridr4p, driver_device, 0, ROT0, "Konami", "Sunset Riders (4 Players ver EAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1991, ssridersebd, ssriders, ssriders, ssriders, driver_device, 0, ROT0, "Konami", "Sunset Riders (2 Players ver EBD)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1991, ssridersebc, ssriders, ssriders, ssriders, driver_device, 0, ROT0, "Konami", "Sunset Riders (2 Players ver EBC)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1991, ssridersuda, ssriders, ssriders, ssrid4ps, driver_device, 0, ROT0, "Konami", "Sunset Riders (4 Players ver UDA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1991, ssridersuac, ssriders, ssriders, ssridr4p, driver_device, 0, ROT0, "Konami", "Sunset Riders (4 Players ver UAC)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1991, ssridersuab, ssriders, ssriders, ssridr4p, driver_device, 0, ROT0, "Konami", "Sunset Riders (4 Players ver UAB)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1991, ssridersubc, ssriders, ssriders, ssriders, driver_device, 0, ROT0, "Konami", "Sunset Riders (2 Players ver UBC)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1991, ssridersadd, ssriders, ssriders, ssrid4ps, driver_device, 0, ROT0, "Konami", "Sunset Riders (4 Players ver ADD)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1991, ssridersabd, ssriders, ssriders, ssriders, driver_device, 0, ROT0, "Konami", "Sunset Riders (2 Players ver ABD)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1991, ssridersjad, ssriders, ssriders, ssridr4p, driver_device, 0, ROT0, "Konami", "Sunset Riders (4 Players ver JAD)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1991, ssridersjac, ssriders, ssriders, ssridr4p, driver_device, 0, ROT0, "Konami", "Sunset Riders (4 Players ver JAC)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1991, ssridersjbd, ssriders, ssriders, ssriders, driver_device, 0, ROT0, "Konami", "Sunset Riders (2 Players ver JBD)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1991, ssridersb, ssriders, sunsetbl, sunsetbl, driver_device, 0, ROT0, "bootleg","Sunset Riders (bootleg 4 Players ver ADD)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1991, ssriders2, ssriders, sunsetbl, sunsetbl, driver_device, 0, ROT0, "bootleg","Sunset Riders 2 (bootleg 4 Players ver ADD)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) - -GAME( 1991, thndrx2, 0, thndrx2, thndrx2, driver_device, 0, ROT0, "Konami", "Thunder Cross II (World)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, thndrx2a, thndrx2, thndrx2, thndrx2, driver_device, 0, ROT0, "Konami", "Thunder Cross II (Asia)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, thndrx2j, thndrx2, thndrx2, thndrx2, driver_device, 0, ROT0, "Konami", "Thunder Cross II (Japan)", MACHINE_SUPPORTS_SAVE ) - -GAME( 1993, prmrsocr, 0, prmrsocr, prmrsocr, driver_device, 0, ROT0, "Konami", "Premier Soccer (ver EAB)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, prmrsocrj, prmrsocr, prmrsocr, prmrsocr, driver_device, 0, ROT0, "Konami", "Premier Soccer (ver JAB)", MACHINE_SUPPORTS_SAVE ) +// YEAR NAME PARENT MACHINE INPUT STATE INIT MONITOR COMPANY FULLNAME,FLAGS +GAME( 1989, cuebrick, 0, cuebrick, cuebrick, tmnt_state, cuebrick, ROT0, "Konami", "Cue Brick (World, version D)", MACHINE_SUPPORTS_SAVE ) + +GAME( 1989, mia, 0, mia, mia, tmnt_state, mia, ROT0, "Konami", "M.I.A. - Missing in Action (version T)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, mia2, mia, mia, mia, tmnt_state, mia, ROT0, "Konami", "M.I.A. - Missing in Action (version S)", MACHINE_SUPPORTS_SAVE ) + +GAME( 1989, tmnt, 0, tmnt, tmnt, tmnt_state, tmnt, ROT0, "Konami", "Teenage Mutant Ninja Turtles (World 4 Players, version X)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, tmntu, tmnt, tmnt, tmnt, tmnt_state, tmnt, ROT0, "Konami", "Teenage Mutant Ninja Turtles (US 4 Players, version R)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, tmntua, tmnt, tmnt, tmnt, tmnt_state, tmnt, ROT0, "Konami", "Teenage Mutant Ninja Turtles (US 4 Players, version J)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, tmntub, tmnt, tmnt, tmnt, tmnt_state, tmnt, ROT0, "Konami", "Teenage Mutant Ninja Turtles (US 4 Players, version H)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, tmht, tmnt, tmnt, tmnt, tmnt_state, tmnt, ROT0, "Konami", "Teenage Mutant Hero Turtles (UK 4 Players, version F)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, tmhta, tmnt, tmnt, tmnt, tmnt_state, tmnt, ROT0, "Konami", "Teenage Mutant Hero Turtles (UK 4 Players, version S)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, tmhtb, tmnt, tmnt, tmnt, tmnt_state, tmnt, ROT0, "Konami", "Teenage Mutant Hero Turtles (UK 4 Players, version ?)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, tmntj, tmnt, tmnt, tmnt, tmnt_state, tmnt, ROT0, "Konami", "Teenage Mutant Ninja Turtles (Japan 4 Players, version 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, tmnta, tmnt, tmnt, tmnt, tmnt_state, tmnt, ROT0, "Konami", "Teenage Mutant Ninja Turtles (Asia 4 Players, version ?)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, tmht2p, tmnt, tmnt, tmnt2p, tmnt_state, tmnt, ROT0, "Konami", "Teenage Mutant Hero Turtles (UK 2 Players, version U)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, tmht2pa, tmnt, tmnt, tmnt2p, tmnt_state, tmnt, ROT0, "Konami", "Teenage Mutant Hero Turtles (UK 2 Players, version ?)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, tmnt2pj, tmnt, tmnt, tmnt2p, tmnt_state, tmnt, ROT0, "Konami", "Teenage Mutant Ninja Turtles (Japan 2 Players, version 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, tmnt2po, tmnt, tmnt, tmnt2p, tmnt_state, tmnt, ROT0, "Konami", "Teenage Mutant Ninja Turtles (Oceania 2 Players, version ?)", MACHINE_SUPPORTS_SAVE ) + +GAME( 1990, punkshot, 0, punkshot, punkshot, tmnt_state, 0, ROT0, "Konami", "Punk Shot (US 4 Players)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, punkshot2, punkshot, punkshot, punksht2, tmnt_state, 0, ROT0, "Konami", "Punk Shot (US 2 Players)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, punkshotj, punkshot, punkshot, punkshtj, tmnt_state, 0, ROT0, "Konami", "Punk Shot (Japan 2 Players)", MACHINE_SUPPORTS_SAVE ) + +GAME( 1990, lgtnfght, 0, lgtnfght, lgtnfght, tmnt_state, 0, ROT90, "Konami", "Lightning Fighters (World)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, lgtnfghta, lgtnfght, lgtnfght, lgtnfght, tmnt_state, 0, ROT90, "Konami", "Lightning Fighters (Asia)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, lgtnfghtu, lgtnfght, lgtnfght, lgtnfght, tmnt_state, 0, ROT90, "Konami", "Lightning Fighters (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, trigon, lgtnfght, lgtnfght, trigon, tmnt_state, 0, ROT90, "Konami", "Trigon (Japan)", MACHINE_SUPPORTS_SAVE ) + +GAME( 1991, blswhstl, 0, blswhstl, blswhstl, tmnt_state, 0, ROT90, "Konami", "Bells & Whistles (World, version L)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, blswhstla, blswhstl, blswhstl, blswhstl, tmnt_state, 0, ROT90, "Konami", "Bells & Whistles (Asia, version M)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, detatwin, blswhstl, blswhstl, blswhstl, tmnt_state, 0, ROT90, "Konami", "Detana!! Twin Bee (Japan, version J)", MACHINE_SUPPORTS_SAVE ) + +GAME( 1991, glfgreat, 0, glfgreat, glfgreat, tmnt_state, 0, ROT0, "Konami", "Golfing Greats", MACHINE_UNEMULATED_PROTECTION | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1991, glfgreatj, glfgreat, glfgreat, glfgreatj, tmnt_state, 0, ROT0, "Konami", "Golfing Greats (Japan)", MACHINE_UNEMULATED_PROTECTION | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) + +GAME( 1991, tmnt2, 0, tmnt2, ssridr4p, tmnt_state, 0, ROT0, "Konami", "Teenage Mutant Ninja Turtles - Turtles in Time (4 Players ver UAA)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, tmnt2a, tmnt2, tmnt2, ssrid4ps, tmnt_state, 0, ROT0, "Konami", "Teenage Mutant Ninja Turtles - Turtles in Time (4 Players ver ADA)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, tmht22pe, tmnt2, tmnt2, ssriders, tmnt_state, 0, ROT0, "Konami", "Teenage Mutant Hero Turtles - Turtles in Time (2 Players ver EBA)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, tmht24pe, tmnt2, tmnt2, ssridr4p, tmnt_state, 0, ROT0, "Konami", "Teenage Mutant Hero Turtles - Turtles in Time (4 Players ver EAA)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, tmnt22pu, tmnt2, tmnt2, ssriders, tmnt_state, 0, ROT0, "Konami", "Teenage Mutant Ninja Turtles - Turtles in Time (2 Players ver UDA)", MACHINE_SUPPORTS_SAVE ) + +GAME( 1993, qgakumon, 0, tmnt2, qgakumon, tmnt_state, 0, ROT0, "Konami", "Quiz Gakumon no Susume (Japan ver. JA2 Type L)", MACHINE_SUPPORTS_SAVE ) + +GAME( 1991, ssriders, 0, ssriders, ssridr4p, tmnt_state, 0, ROT0, "Konami", "Sunset Riders (4 Players ver EAC)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1991, ssriderseaa, ssriders, ssriders, ssridr4p, tmnt_state, 0, ROT0, "Konami", "Sunset Riders (4 Players ver EAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1991, ssridersebd, ssriders, ssriders, ssriders, tmnt_state, 0, ROT0, "Konami", "Sunset Riders (2 Players ver EBD)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1991, ssridersebc, ssriders, ssriders, ssriders, tmnt_state, 0, ROT0, "Konami", "Sunset Riders (2 Players ver EBC)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1991, ssridersuda, ssriders, ssriders, ssrid4ps, tmnt_state, 0, ROT0, "Konami", "Sunset Riders (4 Players ver UDA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1991, ssridersuac, ssriders, ssriders, ssridr4p, tmnt_state, 0, ROT0, "Konami", "Sunset Riders (4 Players ver UAC)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1991, ssridersuab, ssriders, ssriders, ssridr4p, tmnt_state, 0, ROT0, "Konami", "Sunset Riders (4 Players ver UAB)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1991, ssridersubc, ssriders, ssriders, ssriders, tmnt_state, 0, ROT0, "Konami", "Sunset Riders (2 Players ver UBC)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1991, ssridersadd, ssriders, ssriders, ssrid4ps, tmnt_state, 0, ROT0, "Konami", "Sunset Riders (4 Players ver ADD)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1991, ssridersabd, ssriders, ssriders, ssriders, tmnt_state, 0, ROT0, "Konami", "Sunset Riders (2 Players ver ABD)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1991, ssridersjad, ssriders, ssriders, ssridr4p, tmnt_state, 0, ROT0, "Konami", "Sunset Riders (4 Players ver JAD)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1991, ssridersjac, ssriders, ssriders, ssridr4p, tmnt_state, 0, ROT0, "Konami", "Sunset Riders (4 Players ver JAC)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1991, ssridersjbd, ssriders, ssriders, ssriders, tmnt_state, 0, ROT0, "Konami", "Sunset Riders (2 Players ver JBD)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1991, ssridersb, ssriders, sunsetbl, sunsetbl, tmnt_state, 0, ROT0, "bootleg", "Sunset Riders (bootleg 4 Players ver ADD)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1991, ssriders2, ssriders, sunsetbl, sunsetbl, tmnt_state, 0, ROT0, "bootleg", "Sunset Riders 2 (bootleg 4 Players ver ADD)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) + +GAME( 1991, thndrx2, 0, thndrx2, thndrx2, tmnt_state, 0, ROT0, "Konami", "Thunder Cross II (World)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, thndrx2a, thndrx2, thndrx2, thndrx2, tmnt_state, 0, ROT0, "Konami", "Thunder Cross II (Asia)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, thndrx2j, thndrx2, thndrx2, thndrx2, tmnt_state, 0, ROT0, "Konami", "Thunder Cross II (Japan)", MACHINE_SUPPORTS_SAVE ) + +GAME( 1993, prmrsocr, 0, prmrsocr, prmrsocr, tmnt_state, 0, ROT0, "Konami", "Premier Soccer (ver EAB)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, prmrsocrj, prmrsocr, prmrsocr, prmrsocr, tmnt_state, 0, ROT0, "Konami", "Premier Soccer (ver JAB)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/tmspoker.cpp b/src/mame/drivers/tmspoker.cpp index 13beb6fadc4..e0ed52e640f 100644 --- a/src/mame/drivers/tmspoker.cpp +++ b/src/mame/drivers/tmspoker.cpp @@ -552,7 +552,7 @@ GFXDECODE_END * Machine Drivers * *************************/ -static MACHINE_CONFIG_START( tmspoker, tmspoker_state ) +static MACHINE_CONFIG_START( tmspoker ) // CPU TMS9980A; no line connections MCFG_TMS99xx_ADD("maincpu", TMS9980A, MASTER_CLOCK/4, tmspoker_map, tmspoker_cru_map) @@ -642,5 +642,5 @@ DRIVER_INIT_MEMBER(tmspoker_state,bus) * Game Drivers * *************************/ -/* YEAR NAME PARENT MACHINE INPUT INIT ROT COMPANY FULLNAME FLAGS */ +// YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS GAME( 198?, tmspoker, 0, tmspoker, tmspoker, tmspoker_state, bus, ROT0, "", "unknown TMS9980 Poker Game", MACHINE_NO_SOUND | MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/tnzs.cpp b/src/mame/drivers/tnzs.cpp index ba141dc8b6a..cdfab3f772f 100644 --- a/src/mame/drivers/tnzs.cpp +++ b/src/mame/drivers/tnzs.cpp @@ -1506,7 +1506,7 @@ static GFXDECODE_START( insectx ) GFXDECODE_ENTRY( "gfx1", 0, insectx_charlayout, 0, 32 ) GFXDECODE_END -static MACHINE_CONFIG_START( tnzs_base, tnzs_base_state ) +static MACHINE_CONFIG_START( tnzs_base ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80,XTAL_12MHz/2) /* 6.0 MHz ??? - Main board Crystal is 12MHz, verified on insectx, kageki, tnzsb */ MCFG_CPU_PROGRAM_MAP(main_map) @@ -1541,7 +1541,7 @@ static MACHINE_CONFIG_START( tnzs_base, tnzs_base_state ) MCFG_SPEAKER_STANDARD_MONO("speaker") MACHINE_CONFIG_END -static MACHINE_CONFIG_DERIVED_CLASS( tnzs, tnzs_base, tnzs_state ) +static MACHINE_CONFIG_DERIVED( tnzs, tnzs_base ) MCFG_CPU_ADD("mcu", I8742, 12000000/2) /* 400KHz ??? - Main board Crystal is 12MHz */ MCFG_MCS48_PORT_P1_IN_CB(READ8(tnzs_mcu_state, mcu_port1_r)) MCFG_MCS48_PORT_P2_IN_CB(READ8(tnzs_mcu_state, mcu_port2_r)) @@ -1564,7 +1564,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( tnzs, tnzs_base, tnzs_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.3) MACHINE_CONFIG_END -static MACHINE_CONFIG_DERIVED_CLASS( extrmatn, tnzs, extrmatn_state ) +static MACHINE_CONFIG_DERIVED( extrmatn, tnzs ) /* basic machine hardware */ MCFG_CPU_MODIFY("maincpu") MCFG_CPU_PROGRAM_MAP(prompal_main_map) @@ -1578,7 +1578,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( extrmatn, tnzs, extrmatn_state ) MCFG_PALETTE_INIT_OWNER(tnzs_base_state, prompalette) MACHINE_CONFIG_END -static MACHINE_CONFIG_DERIVED_CLASS( arknoid2, extrmatn, arknoid2_state ) +static MACHINE_CONFIG_DERIVED( arknoid2, extrmatn ) /* basic machine hardware */ MCFG_CPU_MODIFY("maincpu") MCFG_CPU_VBLANK_INT_DRIVER("screen", arknoid2_state, mcu_interrupt) @@ -1590,7 +1590,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( arknoid2, extrmatn, arknoid2_state ) MCFG_DEVICE_DISABLE() MACHINE_CONFIG_END -static MACHINE_CONFIG_DERIVED_CLASS( insectx, tnzs_base, insectx_state ) +static MACHINE_CONFIG_DERIVED( insectx, tnzs_base ) /* basic machine hardware */ MCFG_CPU_MODIFY("sub") MCFG_CPU_PROGRAM_MAP(insectx_sub_map) @@ -1606,7 +1606,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( insectx, tnzs_base, insectx_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_DERIVED_CLASS( kageki, tnzs_base, kageki_state ) +static MACHINE_CONFIG_DERIVED( kageki, tnzs_base ) /* basic machine hardware */ MCFG_CPU_MODIFY("sub") MCFG_CPU_PROGRAM_MAP(kageki_sub_map) @@ -1626,7 +1626,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( kageki, tnzs_base, kageki_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0) MACHINE_CONFIG_END -static MACHINE_CONFIG_DERIVED_CLASS( tnzsb, tnzs_base, tnzsb_state ) +static MACHINE_CONFIG_DERIVED( tnzsb, tnzs_base ) /* basic machine hardware */ MCFG_CPU_MODIFY("maincpu") MCFG_CPU_PROGRAM_MAP(tnzsb_main_map) @@ -1654,7 +1654,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( tnzsb, tnzs_base, tnzsb_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_DERIVED_CLASS( kabukiz, tnzsb, kabukiz_state ) +static MACHINE_CONFIG_DERIVED( kabukiz, tnzsb ) /* basic machine hardware */ MCFG_CPU_MODIFY("sub") @@ -1674,7 +1674,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( kabukiz, tnzsb, kabukiz_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_DERIVED_CLASS( jpopnics, tnzs_base, jpopnics_state ) +static MACHINE_CONFIG_DERIVED( jpopnics, tnzs_base ) /* basic machine hardware */ MCFG_CPU_MODIFY("maincpu") MCFG_CPU_PROGRAM_MAP(jpopnics_main_map) @@ -2774,41 +2774,41 @@ ROM_END // YEAR, NAME, PARENT, MACHINE, INPUT, INIT, MONITOR,COMPANY,FULLNAME,FLAGS -GAME( 1987, plumppop, 0, extrmatn, plumppop, driver_device, 0, ROT0, "Taito Corporation", "Plump Pop (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, jpopnics, 0, jpopnics, jpopnics, driver_device, 0, ROT0, "Nics", "Jumping Pop (Nics, Korean hack of Plump Pop)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) - -GAME( 1987, extrmatn, 0, extrmatn, extrmatn, driver_device, 0, ROT270, "Taito Corporation Japan", "Extermination (World)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, extrmatnu, extrmatn, extrmatn, extrmatn, driver_device, 0, ROT270, "Taito (World Games license)", "Extermination (US, World Games)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, extrmatnur,extrmatn, extrmatn, extrmatn, driver_device, 0, ROT270, "Taito America Corporation (Romstar license)", "Extermination (US, Romstar)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, extrmatnj, extrmatn, extrmatn, extrmatn, driver_device, 0, ROT270, "Taito Corporation", "Extermination (Japan)", MACHINE_SUPPORTS_SAVE ) - -GAME( 1987, arknoid2, 0, arknoid2, arknoid2, driver_device, 0, ROT270, "Taito Corporation Japan", "Arkanoid - Revenge of DOH (World)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, arknoid2u, arknoid2, arknoid2, arknid2u, driver_device, 0, ROT270, "Taito America Corporation (Romstar license)", "Arkanoid - Revenge of DOH (US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, arknoid2j, arknoid2, arknoid2, arknid2u, driver_device, 0, ROT270, "Taito Corporation", "Arkanoid - Revenge of DOH (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, arknoid2b, arknoid2, arknoid2, arknid2u, driver_device, 0, ROT270, "bootleg", "Arkanoid - Revenge of DOH (Japan bootleg)", MACHINE_SUPPORTS_SAVE ) - -GAME( 1987, drtoppel, 0, extrmatn, drtoppel, driver_device, 0, ROT90, "Kaneko / Taito Corporation Japan", "Dr. Toppel's Adventure (World)", MACHINE_SUPPORTS_SAVE ) /* Possible region hack */ -GAME( 1987, drtoppelu, drtoppel, extrmatn, drtopplu, driver_device, 0, ROT90, "Kaneko / Taito America Corporation", "Dr. Toppel's Adventure (US)", MACHINE_SUPPORTS_SAVE ) /* Possible region hack */ -GAME( 1987, drtoppelj, drtoppel, extrmatn, drtopplu, driver_device, 0, ROT90, "Kaneko / Taito Corporation", "Dr. Toppel's Tankentai (Japan)", MACHINE_SUPPORTS_SAVE ) - -GAME( 1988, kageki, 0, kageki, kageki, driver_device, 0, ROT90, "Kaneko / Taito America Corporation (Romstar license)", "Kageki (US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, kagekij, kageki, kageki, kagekij, driver_device, 0, ROT90, "Kaneko / Taito Corporation", "Kageki (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, kagekih, kageki, kageki, kageki, driver_device, 0, ROT90, "hack", "Kageki (hack)", MACHINE_SUPPORTS_SAVE ) // date is hacked at least, might also be a Japan set hacked to show english - -GAME( 1988, chukatai, 0, tnzs, chukatai, driver_device, 0, ROT0, "Taito Corporation Japan", "Chuka Taisen (World)", MACHINE_SUPPORTS_SAVE ) /* Possible region hack */ -GAME( 1988, chukataiu, chukatai, tnzs, chukatau, driver_device, 0, ROT0, "Taito America Corporation", "Chuka Taisen (US)", MACHINE_SUPPORTS_SAVE ) /* Possible region hack */ -GAME( 1988, chukataij, chukatai, tnzs, chukatau, driver_device, 0, ROT0, "Taito Corporation", "Chuka Taisen (Japan)", MACHINE_SUPPORTS_SAVE ) - -GAME( 1988, tnzs, 0, tnzsb, tnzs, driver_device, 0, ROT0, "Taito Corporation Japan", "The NewZealand Story (World, new version) (newer PCB)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, tnzsj, tnzs, tnzsb, tnzsj, driver_device, 0, ROT0, "Taito Corporation", "The NewZealand Story (Japan, new version) (newer PCB)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, tnzso, tnzs, tnzs, tnzsop, driver_device, 0, ROT0, "Taito Corporation Japan", "The NewZealand Story (World, old version) (older PCB)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, tnzsjo, tnzs, tnzs, tnzsjo, driver_device, 0, ROT0, "Taito Corporation", "The NewZealand Story (Japan, old version) (older PCB)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, tnzsuo, tnzs, tnzs, tnzsjo, driver_device, 0, ROT0, "Taito America Corporation", "The NewZealand Story (US, old version) (older PCB)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, tnzsoa, tnzs, tnzs, tnzsop, driver_device, 0, ROT0, "Taito Corporation Japan", "The NewZealand Story (World, unknown version) (older PCB)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, tnzsop, tnzs, tnzs, tnzsop, driver_device, 0, ROT0, "Taito Corporation Japan", "The NewZealand Story (World, prototype) (older PCB)", MACHINE_SUPPORTS_SAVE ) - -GAME( 1988, kabukiz, 0, kabukiz, kabukiz, driver_device, 0, ROT0, "Kaneko / Taito Corporation Japan", "Kabuki-Z (World)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, kabukizj, kabukiz, kabukiz, kabukizj, driver_device, 0, ROT0, "Kaneko / Taito Corporation", "Kabuki-Z (Japan)", MACHINE_SUPPORTS_SAVE ) - -GAME( 1989, insectx, 0, insectx, insectx, driver_device, 0, ROT0, "Taito Corporation Japan", "Insector X (World)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, insectxj, insectx, insectx, insectxj, driver_device, 0, ROT0, "Taito Corporation", "Insector X (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, plumppop, 0, extrmatn, plumppop, extrmatn_state, 0, ROT0, "Taito Corporation", "Plump Pop (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, jpopnics, 0, jpopnics, jpopnics, jpopnics_state, 0, ROT0, "Nics", "Jumping Pop (Nics, Korean hack of Plump Pop)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) + +GAME( 1987, extrmatn, 0, extrmatn, extrmatn, extrmatn_state, 0, ROT270, "Taito Corporation Japan", "Extermination (World)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, extrmatnu, extrmatn, extrmatn, extrmatn, extrmatn_state, 0, ROT270, "Taito (World Games license)", "Extermination (US, World Games)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, extrmatnur,extrmatn, extrmatn, extrmatn, extrmatn_state, 0, ROT270, "Taito America Corporation (Romstar license)", "Extermination (US, Romstar)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, extrmatnj, extrmatn, extrmatn, extrmatn, extrmatn_state, 0, ROT270, "Taito Corporation", "Extermination (Japan)", MACHINE_SUPPORTS_SAVE ) + +GAME( 1987, arknoid2, 0, arknoid2, arknoid2, arknoid2_state, 0, ROT270, "Taito Corporation Japan", "Arkanoid - Revenge of DOH (World)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, arknoid2u, arknoid2, arknoid2, arknid2u, arknoid2_state, 0, ROT270, "Taito America Corporation (Romstar license)", "Arkanoid - Revenge of DOH (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, arknoid2j, arknoid2, arknoid2, arknid2u, arknoid2_state, 0, ROT270, "Taito Corporation", "Arkanoid - Revenge of DOH (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, arknoid2b, arknoid2, arknoid2, arknid2u, arknoid2_state, 0, ROT270, "bootleg", "Arkanoid - Revenge of DOH (Japan bootleg)", MACHINE_SUPPORTS_SAVE ) + +GAME( 1987, drtoppel, 0, extrmatn, drtoppel, extrmatn_state, 0, ROT90, "Kaneko / Taito Corporation Japan", "Dr. Toppel's Adventure (World)", MACHINE_SUPPORTS_SAVE ) /* Possible region hack */ +GAME( 1987, drtoppelu, drtoppel, extrmatn, drtopplu, extrmatn_state, 0, ROT90, "Kaneko / Taito America Corporation", "Dr. Toppel's Adventure (US)", MACHINE_SUPPORTS_SAVE ) /* Possible region hack */ +GAME( 1987, drtoppelj, drtoppel, extrmatn, drtopplu, extrmatn_state, 0, ROT90, "Kaneko / Taito Corporation", "Dr. Toppel's Tankentai (Japan)", MACHINE_SUPPORTS_SAVE ) + +GAME( 1988, kageki, 0, kageki, kageki, kageki_state, 0, ROT90, "Kaneko / Taito America Corporation (Romstar license)", "Kageki (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, kagekij, kageki, kageki, kagekij, kageki_state, 0, ROT90, "Kaneko / Taito Corporation", "Kageki (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, kagekih, kageki, kageki, kageki, kageki_state, 0, ROT90, "hack", "Kageki (hack)", MACHINE_SUPPORTS_SAVE ) // date is hacked at least, might also be a Japan set hacked to show english + +GAME( 1988, chukatai, 0, tnzs, chukatai, tnzs_state, 0, ROT0, "Taito Corporation Japan", "Chuka Taisen (World)", MACHINE_SUPPORTS_SAVE ) /* Possible region hack */ +GAME( 1988, chukataiu, chukatai, tnzs, chukatau, tnzs_state, 0, ROT0, "Taito America Corporation", "Chuka Taisen (US)", MACHINE_SUPPORTS_SAVE ) /* Possible region hack */ +GAME( 1988, chukataij, chukatai, tnzs, chukatau, tnzs_state, 0, ROT0, "Taito Corporation", "Chuka Taisen (Japan)", MACHINE_SUPPORTS_SAVE ) + +GAME( 1988, tnzs, 0, tnzsb, tnzs, tnzsb_state, 0, ROT0, "Taito Corporation Japan", "The NewZealand Story (World, new version) (newer PCB)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, tnzsj, tnzs, tnzsb, tnzsj, tnzsb_state, 0, ROT0, "Taito Corporation", "The NewZealand Story (Japan, new version) (newer PCB)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, tnzso, tnzs, tnzs, tnzsop, tnzs_state, 0, ROT0, "Taito Corporation Japan", "The NewZealand Story (World, old version) (older PCB)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, tnzsjo, tnzs, tnzs, tnzsjo, tnzs_state, 0, ROT0, "Taito Corporation", "The NewZealand Story (Japan, old version) (older PCB)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, tnzsuo, tnzs, tnzs, tnzsjo, tnzs_state, 0, ROT0, "Taito America Corporation", "The NewZealand Story (US, old version) (older PCB)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, tnzsoa, tnzs, tnzs, tnzsop, tnzs_state, 0, ROT0, "Taito Corporation Japan", "The NewZealand Story (World, unknown version) (older PCB)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, tnzsop, tnzs, tnzs, tnzsop, tnzs_state, 0, ROT0, "Taito Corporation Japan", "The NewZealand Story (World, prototype) (older PCB)", MACHINE_SUPPORTS_SAVE ) + +GAME( 1988, kabukiz, 0, kabukiz, kabukiz, kabukiz_state, 0, ROT0, "Kaneko / Taito Corporation Japan", "Kabuki-Z (World)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, kabukizj, kabukiz, kabukiz, kabukizj, kabukiz_state, 0, ROT0, "Kaneko / Taito Corporation", "Kabuki-Z (Japan)", MACHINE_SUPPORTS_SAVE ) + +GAME( 1989, insectx, 0, insectx, insectx, insectx_state, 0, ROT0, "Taito Corporation Japan", "Insector X (World)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, insectxj, insectx, insectx, insectxj, insectx_state, 0, ROT0, "Taito Corporation", "Insector X (Japan)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/toaplan1.cpp b/src/mame/drivers/toaplan1.cpp index 81d8ee8ff8c..bf27b7a3764 100644 --- a/src/mame/drivers/toaplan1.cpp +++ b/src/mame/drivers/toaplan1.cpp @@ -1886,7 +1886,7 @@ GFXDECODE_END #define VBSTART (240) -static MACHINE_CONFIG_START( rallybik, toaplan1_rallybik_state ) +static MACHINE_CONFIG_START( rallybik ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_10MHz) @@ -1926,7 +1926,7 @@ static MACHINE_CONFIG_START( rallybik, toaplan1_rallybik_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( truxton, toaplan1_state ) +static MACHINE_CONFIG_START( truxton ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_10MHz) @@ -1964,7 +1964,7 @@ static MACHINE_CONFIG_START( truxton, toaplan1_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( hellfire, toaplan1_state ) +static MACHINE_CONFIG_START( hellfire ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_10MHz) @@ -2002,7 +2002,7 @@ static MACHINE_CONFIG_START( hellfire, toaplan1_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( zerowing, toaplan1_state ) +static MACHINE_CONFIG_START( zerowing ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_10MHz) @@ -2040,7 +2040,7 @@ static MACHINE_CONFIG_START( zerowing, toaplan1_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( demonwld, toaplan1_state ) +static MACHINE_CONFIG_START( demonwld ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_10MHz) @@ -2083,7 +2083,7 @@ static MACHINE_CONFIG_START( demonwld, toaplan1_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( samesame, toaplan1_state ) +static MACHINE_CONFIG_START( samesame ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_10MHz) @@ -2121,7 +2121,7 @@ static MACHINE_CONFIG_START( samesame, toaplan1_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( outzone, toaplan1_state ) +static MACHINE_CONFIG_START( outzone ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_10MHz) @@ -2159,7 +2159,7 @@ static MACHINE_CONFIG_START( outzone, toaplan1_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( outzonecv, toaplan1_state ) +static MACHINE_CONFIG_START( outzonecv ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_10MHz) @@ -2197,7 +2197,7 @@ static MACHINE_CONFIG_START( outzonecv, toaplan1_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( vimana, toaplan1_state ) +static MACHINE_CONFIG_START( vimana ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_10MHz) /* verified on pcb */ @@ -3112,41 +3112,41 @@ DRIVER_INIT_MEMBER(toaplan1_state,demonwld) -GAME( 1988, rallybik, 0, rallybik, rallybik, toaplan1_state, toaplan1, ROT270, "Toaplan / Taito Corporation", "Rally Bike / Dash Yarou", 0 ) +GAME( 1988, rallybik, 0, rallybik, rallybik, toaplan1_rallybik_state, toaplan1, ROT270, "Toaplan / Taito Corporation", "Rally Bike / Dash Yarou", 0 ) -GAME( 1988, truxton, 0, truxton, truxton, toaplan1_state, toaplan1, ROT270, "Toaplan / Taito Corporation", "Truxton / Tatsujin", 0 ) +GAME( 1988, truxton, 0, truxton, truxton, toaplan1_state, toaplan1, ROT270, "Toaplan / Taito Corporation", "Truxton / Tatsujin", 0 ) -GAME( 1989, hellfire, 0, hellfire, hellfire, toaplan1_state, toaplan1, ROT0, "Toaplan (Taito license)", "Hellfire (2P set)", 0 ) -GAME( 1989, hellfire1, hellfire, hellfire, hellfire1, toaplan1_state, toaplan1, ROT0, "Toaplan (Taito license)", "Hellfire (1P set)", 0 ) -GAME( 1989, hellfire2a, hellfire, hellfire, hellfire2a,toaplan1_state, toaplan1, ROT0, "Toaplan (Taito license)", "Hellfire (2P set, older)", 0 ) -GAME( 1989, hellfire1a, hellfire, hellfire, hellfire1a,toaplan1_state, toaplan1, ROT0, "Toaplan (Taito license)", "Hellfire (1P set, older)", 0 ) +GAME( 1989, hellfire, 0, hellfire, hellfire, toaplan1_state, toaplan1, ROT0, "Toaplan (Taito license)", "Hellfire (2P set)", 0 ) +GAME( 1989, hellfire1, hellfire, hellfire, hellfire1, toaplan1_state, toaplan1, ROT0, "Toaplan (Taito license)", "Hellfire (1P set)", 0 ) +GAME( 1989, hellfire2a, hellfire, hellfire, hellfire2a,toaplan1_state, toaplan1, ROT0, "Toaplan (Taito license)", "Hellfire (2P set, older)", 0 ) +GAME( 1989, hellfire1a, hellfire, hellfire, hellfire1a,toaplan1_state, toaplan1, ROT0, "Toaplan (Taito license)", "Hellfire (1P set, older)", 0 ) -GAME( 1989, zerowing, 0, zerowing, zerowing2, toaplan1_state, toaplan1, ROT0, "Toaplan", "Zero Wing (2P set)", 0 ) -GAME( 1989, zerowing1, zerowing, zerowing, zerowing, toaplan1_state, toaplan1, ROT0, "Toaplan", "Zero Wing (1P set)", 0 ) -GAME( 1989, zerowingw, zerowing, zerowing, zerowing2, toaplan1_state, toaplan1, ROT0, "Toaplan (Williams license)", "Zero Wing (2P set, Williams license)", 0 ) +GAME( 1989, zerowing, 0, zerowing, zerowing2, toaplan1_state, toaplan1, ROT0, "Toaplan", "Zero Wing (2P set)", 0 ) +GAME( 1989, zerowing1, zerowing, zerowing, zerowing, toaplan1_state, toaplan1, ROT0, "Toaplan", "Zero Wing (1P set)", 0 ) +GAME( 1989, zerowingw, zerowing, zerowing, zerowing2, toaplan1_state, toaplan1, ROT0, "Toaplan (Williams license)", "Zero Wing (2P set, Williams license)", 0 ) -GAME( 1990, demonwld, 0, demonwld, demonwld, toaplan1_state, demonwld, ROT0, "Toaplan", "Demon's World / Horror Story (set 1)", 0 ) -GAME( 1989, demonwld1, demonwld, demonwld, demonwld, toaplan1_state, demonwld, ROT0, "Toaplan", "Demon's World / Horror Story (set 2)", 0 ) -GAME( 1989, demonwld2, demonwld, demonwld, demonwld1, toaplan1_state, demonwld, ROT0, "Toaplan", "Demon's World / Horror Story (set 3)", 0 ) -GAME( 1989, demonwld3, demonwld, demonwld, demonwld1, toaplan1_state, demonwld, ROT0, "Toaplan", "Demon's World / Horror Story (set 4)", 0 ) -GAME( 1989, demonwld4, demonwld, demonwld, demonwld1, toaplan1_state, demonwld, ROT0, "Toaplan", "Demon's World / Horror Story (set 5)", 0 ) +GAME( 1990, demonwld, 0, demonwld, demonwld, toaplan1_state, demonwld, ROT0, "Toaplan", "Demon's World / Horror Story (set 1)", 0 ) +GAME( 1989, demonwld1, demonwld, demonwld, demonwld, toaplan1_state, demonwld, ROT0, "Toaplan", "Demon's World / Horror Story (set 2)", 0 ) +GAME( 1989, demonwld2, demonwld, demonwld, demonwld1, toaplan1_state, demonwld, ROT0, "Toaplan", "Demon's World / Horror Story (set 3)", 0 ) +GAME( 1989, demonwld3, demonwld, demonwld, demonwld1, toaplan1_state, demonwld, ROT0, "Toaplan", "Demon's World / Horror Story (set 4)", 0 ) +GAME( 1989, demonwld4, demonwld, demonwld, demonwld1, toaplan1_state, demonwld, ROT0, "Toaplan", "Demon's World / Horror Story (set 5)", 0 ) -GAME( 1990, fireshrk, 0, samesame, fireshrk, toaplan1_state, toaplan1, ROT270, "Toaplan", "Fire Shark", 0 ) -GAME( 1989, fireshrka, fireshrk, samesame, fireshrka, toaplan1_state, toaplan1, ROT270, "Toaplan", "Fire Shark (earlier)", 0 ) -GAME( 1990, fireshrkd, fireshrk, samesame, samesame2, toaplan1_state, toaplan1, ROT270, "Toaplan (Dooyong license)", "Fire Shark (Korea, set 1, easier)", 0 ) -GAME( 1990, fireshrkdh, fireshrk, samesame, samesame2, toaplan1_state, toaplan1, ROT270, "Toaplan (Dooyong license)", "Fire Shark (Korea, set 2, harder)", 0 ) -GAME( 1989, samesame, fireshrk, samesame, samesame, toaplan1_state, toaplan1, ROT270, "Toaplan", "Same! Same! Same! (1P set)", 0 ) -GAME( 1989, samesame2, fireshrk, samesame, samesame2, toaplan1_state, toaplan1, ROT270, "Toaplan", "Same! Same! Same! (2P set)", 0 ) -GAME( 2015, samesamenh, fireshrk, samesame, samesame, toaplan1_state, toaplan1, ROT270, "hack (trap15)", "Same! Same! Same! (1P set, NEW VER! hack)", 0 ) +GAME( 1990, fireshrk, 0, samesame, fireshrk, toaplan1_state, toaplan1, ROT270, "Toaplan", "Fire Shark", 0 ) +GAME( 1989, fireshrka, fireshrk, samesame, fireshrka, toaplan1_state, toaplan1, ROT270, "Toaplan", "Fire Shark (earlier)", 0 ) +GAME( 1990, fireshrkd, fireshrk, samesame, samesame2, toaplan1_state, toaplan1, ROT270, "Toaplan (Dooyong license)", "Fire Shark (Korea, set 1, easier)", 0 ) +GAME( 1990, fireshrkdh, fireshrk, samesame, samesame2, toaplan1_state, toaplan1, ROT270, "Toaplan (Dooyong license)", "Fire Shark (Korea, set 2, harder)", 0 ) +GAME( 1989, samesame, fireshrk, samesame, samesame, toaplan1_state, toaplan1, ROT270, "Toaplan", "Same! Same! Same! (1P set)", 0 ) +GAME( 1989, samesame2, fireshrk, samesame, samesame2, toaplan1_state, toaplan1, ROT270, "Toaplan", "Same! Same! Same! (2P set)", 0 ) +GAME( 2015, samesamenh, fireshrk, samesame, samesame, toaplan1_state, toaplan1, ROT270, "hack (trap15)", "Same! Same! Same! (1P set, NEW VER! hack)", 0 ) -GAME( 1990, outzone, 0, outzone, outzone, toaplan1_state, toaplan1, ROT270, "Toaplan", "Out Zone", 0 ) -GAME( 1990, outzoneh, outzone, outzone, outzone, toaplan1_state, toaplan1, ROT270, "Toaplan", "Out Zone (harder)", 0 ) -GAME( 1990, outzonea, outzone, outzone, outzonea, toaplan1_state, toaplan1, ROT270, "Toaplan", "Out Zone (old set)", 0 ) -GAME( 1990, outzoneb, outzone, outzone, outzonea, toaplan1_state, toaplan1, ROT270, "Toaplan", "Out Zone (older set)", 0 ) -GAME( 1990, outzonec, outzone, outzone, outzonec, toaplan1_state, toaplan1, ROT270, "Toaplan", "Out Zone (oldest set)", MACHINE_IMPERFECT_SOUND ) // prototype? -GAME( 1990, outzonecv, outzone, outzonecv,outzone, toaplan1_state, toaplan1, ROT270, "Toaplan", "Out Zone (Zero Wing TP-015 PCB conversion)", 0 ) +GAME( 1990, outzone, 0, outzone, outzone, toaplan1_state, toaplan1, ROT270, "Toaplan", "Out Zone", 0 ) +GAME( 1990, outzoneh, outzone, outzone, outzone, toaplan1_state, toaplan1, ROT270, "Toaplan", "Out Zone (harder)", 0 ) +GAME( 1990, outzonea, outzone, outzone, outzonea, toaplan1_state, toaplan1, ROT270, "Toaplan", "Out Zone (old set)", 0 ) +GAME( 1990, outzoneb, outzone, outzone, outzonea, toaplan1_state, toaplan1, ROT270, "Toaplan", "Out Zone (older set)", 0 ) +GAME( 1990, outzonec, outzone, outzone, outzonec, toaplan1_state, toaplan1, ROT270, "Toaplan", "Out Zone (oldest set)", MACHINE_IMPERFECT_SOUND ) // prototype? +GAME( 1990, outzonecv, outzone, outzonecv,outzone, toaplan1_state, toaplan1, ROT270, "Toaplan", "Out Zone (Zero Wing TP-015 PCB conversion)", 0 ) // has various licenses / regions depending on jumpers, including Tecmo -GAME( 1991, vimana, 0, vimana, vimana, toaplan1_state, toaplan1, ROT270, "Toaplan", "Vimana (World, set 1)", 0 ) -GAME( 1991, vimanan, vimana, vimana, vimanan, toaplan1_state, toaplan1, ROT270, "Toaplan", "Vimana (World, set 2)", 0 ) -GAME( 1991, vimanaj, vimana, vimana, vimanaj, toaplan1_state, toaplan1, ROT270, "Toaplan", "Vimana (Japan)", 0 ) +GAME( 1991, vimana, 0, vimana, vimana, toaplan1_state, toaplan1, ROT270, "Toaplan", "Vimana (World, set 1)", 0 ) +GAME( 1991, vimanan, vimana, vimana, vimanan, toaplan1_state, toaplan1, ROT270, "Toaplan", "Vimana (World, set 2)", 0 ) +GAME( 1991, vimanaj, vimana, vimana, vimanaj, toaplan1_state, toaplan1, ROT270, "Toaplan", "Vimana (Japan)", 0 ) diff --git a/src/mame/drivers/toaplan2.cpp b/src/mame/drivers/toaplan2.cpp index a0f49c60d44..ea3387c8da0 100644 --- a/src/mame/drivers/toaplan2.cpp +++ b/src/mame/drivers/toaplan2.cpp @@ -3317,7 +3317,7 @@ static GFXDECODE_START( fixeightbl ) GFXDECODE_END -static MACHINE_CONFIG_START( tekipaki, toaplan2_state ) +static MACHINE_CONFIG_START( tekipaki ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_10MHz) /* 10MHz Oscillator */ @@ -3369,7 +3369,7 @@ static MACHINE_CONFIG_DERIVED( tekipaki_mcu, tekipaki ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( ghox, toaplan2_state ) +static MACHINE_CONFIG_START( ghox ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_10MHz) /* verified on pcb */ @@ -3459,7 +3459,7 @@ a4849 cd */ -static MACHINE_CONFIG_START( dogyuun, toaplan2_state ) +static MACHINE_CONFIG_START( dogyuun ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_25MHz/2) /* verified on pcb */ @@ -3499,12 +3499,12 @@ static MACHINE_CONFIG_START( dogyuun, toaplan2_state ) MCFG_YM2151_ADD("ymsnd", XTAL_27MHz/8) /* verified on pcb */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) - MCFG_OKIM6295_ADD("oki", XTAL_25MHz/24, OKIM6295_PIN7_HIGH) /* verified on pcb */ + MCFG_OKIM6295_ADD("oki", XTAL_25MHz/24, PIN7_HIGH) /* verified on pcb */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( kbash, toaplan2_state ) +static MACHINE_CONFIG_START( kbash ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz) /* 16MHz Oscillator */ @@ -3545,12 +3545,12 @@ static MACHINE_CONFIG_START( kbash, toaplan2_state ) MCFG_YM2151_ADD("ymsnd", XTAL_27MHz/8) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) - MCFG_OKIM6295_ADD("oki", XTAL_32MHz/32, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", XTAL_32MHz/32, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( kbash2, toaplan2_state ) +static MACHINE_CONFIG_START( kbash2 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz) /* 16MHz Oscillator */ @@ -3579,15 +3579,15 @@ static MACHINE_CONFIG_START( kbash2, toaplan2_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki1", XTAL_16MHz/16, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki1", XTAL_16MHz/16, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MCFG_OKIM6295_ADD("oki2", XTAL_16MHz/16, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki2", XTAL_16MHz/16, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( truxton2, toaplan2_state ) +static MACHINE_CONFIG_START( truxton2 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz) /* verified on pcb */ @@ -3619,7 +3619,7 @@ static MACHINE_CONFIG_START( truxton2, toaplan2_state ) MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) - MCFG_OKIM6295_ADD("oki", XTAL_16MHz/4, OKIM6295_PIN7_LOW) + MCFG_OKIM6295_ADD("oki", XTAL_16MHz/4, PIN7_LOW) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) #else // ...but the hardware is mono @@ -3628,13 +3628,13 @@ static MACHINE_CONFIG_START( truxton2, toaplan2_state ) MCFG_YM2151_ADD("ymsnd", XTAL_27MHz/8) /* verified on pcb */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MCFG_OKIM6295_ADD("oki", XTAL_16MHz/4, OKIM6295_PIN7_LOW) /* verified on pcb */ + MCFG_OKIM6295_ADD("oki", XTAL_16MHz/4, PIN7_LOW) /* verified on pcb */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) #endif MACHINE_CONFIG_END -static MACHINE_CONFIG_START( pipibibs, toaplan2_state ) +static MACHINE_CONFIG_START( pipibibs ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_10MHz) /* verified on pcb */ @@ -3676,7 +3676,7 @@ static MACHINE_CONFIG_START( pipibibs, toaplan2_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( pipibibsbl, toaplan2_state ) +static MACHINE_CONFIG_START( pipibibsbl ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_10MHz) /* 10MHz Oscillator */ @@ -3755,7 +3755,7 @@ static const uint8_t ts001turbo_decryption_table[256] = { }; -static MACHINE_CONFIG_START( fixeight, toaplan2_state ) +static MACHINE_CONFIG_START( fixeight ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz) /* verified on pcb */ @@ -3793,12 +3793,12 @@ static MACHINE_CONFIG_START( fixeight, toaplan2_state ) MCFG_YM2151_ADD("ymsnd", XTAL_27MHz/8) /* verified on pcb */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) - MCFG_OKIM6295_ADD("oki", XTAL_16MHz/16, OKIM6295_PIN7_HIGH) /* verified on pcb */ + MCFG_OKIM6295_ADD("oki", XTAL_16MHz/16, PIN7_HIGH) /* verified on pcb */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( fixeightbl, toaplan2_state ) +static MACHINE_CONFIG_START( fixeightbl ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_10MHz) /* 10MHz Oscillator */ @@ -3828,13 +3828,13 @@ static MACHINE_CONFIG_START( fixeightbl, toaplan2_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", XTAL_14MHz/16, OKIM6295_PIN7_LOW) + MCFG_OKIM6295_ADD("oki", XTAL_14MHz/16, PIN7_LOW) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MCFG_DEVICE_ADDRESS_MAP(AS_0, fixeightbl_oki) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( vfive, toaplan2_state ) +static MACHINE_CONFIG_START( vfive ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_20MHz/2) /* verified on pcb */ @@ -3873,7 +3873,7 @@ static MACHINE_CONFIG_START( vfive, toaplan2_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( batsugun, toaplan2_state ) +static MACHINE_CONFIG_START( batsugun ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_32MHz/2) /* 16MHz , 32MHz Oscillator */ @@ -3915,11 +3915,11 @@ static MACHINE_CONFIG_START( batsugun, toaplan2_state ) MCFG_YM2151_ADD("ymsnd", XTAL_27MHz/8) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) - MCFG_OKIM6295_ADD("oki", XTAL_32MHz/8, OKIM6295_PIN7_LOW) + MCFG_OKIM6295_ADD("oki", XTAL_32MHz/8, PIN7_LOW) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( pwrkick, toaplan2_state ) +static MACHINE_CONFIG_START( pwrkick ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz) @@ -3951,11 +3951,11 @@ static MACHINE_CONFIG_START( pwrkick, toaplan2_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") /* empty YM2151 socket*/ - MCFG_OKIM6295_ADD("oki", XTAL_27MHz/8, OKIM6295_PIN7_HIGH) // not confirmed + MCFG_OKIM6295_ADD("oki", XTAL_27MHz/8, PIN7_HIGH) // not confirmed MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( othldrby, toaplan2_state ) +static MACHINE_CONFIG_START( othldrby ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz) MCFG_CPU_PROGRAM_MAP(othldrby_68k_mem) @@ -3984,12 +3984,12 @@ static MACHINE_CONFIG_START( othldrby, toaplan2_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", XTAL_27MHz/8, OKIM6295_PIN7_HIGH) // not confirmed + MCFG_OKIM6295_ADD("oki", XTAL_27MHz/8, PIN7_HIGH) // not confirmed MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( enmadaio, toaplan2_state ) +static MACHINE_CONFIG_START( enmadaio ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_20MHz/2) MCFG_CPU_PROGRAM_MAP(enmadaio_68k_mem) @@ -4017,12 +4017,12 @@ static MACHINE_CONFIG_START( enmadaio, toaplan2_state ) MCFG_YM2151_ADD("ymsnd", XTAL_27MHz/8) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) - MCFG_OKIM6295_ADD("oki", XTAL_16MHz/4, OKIM6295_PIN7_LOW) // pin7 not confirmed + MCFG_OKIM6295_ADD("oki", XTAL_16MHz/4, PIN7_LOW) // pin7 not confirmed MCFG_DEVICE_ADDRESS_MAP(AS_0, enmadaio_oki) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( snowbro2, toaplan2_state ) +static MACHINE_CONFIG_START( snowbro2 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz) @@ -4054,12 +4054,12 @@ static MACHINE_CONFIG_START( snowbro2, toaplan2_state ) MCFG_YM2151_ADD("ymsnd", XTAL_27MHz/8) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MCFG_OKIM6295_ADD("oki", XTAL_27MHz/10, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", XTAL_27MHz/10, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( mahoudai, toaplan2_state ) +static MACHINE_CONFIG_START( mahoudai ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_32MHz/2) /* 16MHz , 32MHz Oscillator */ @@ -4099,12 +4099,12 @@ static MACHINE_CONFIG_START( mahoudai, toaplan2_state ) MCFG_YM2151_ADD("ymsnd", XTAL_27MHz/8) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MCFG_OKIM6295_ADD("oki", XTAL_32MHz/32, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", XTAL_32MHz/32, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( shippumd, toaplan2_state ) +static MACHINE_CONFIG_START( shippumd ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_32MHz/2) /* 16MHz , 32MHz Oscillator */ @@ -4144,11 +4144,11 @@ static MACHINE_CONFIG_START( shippumd, toaplan2_state ) MCFG_YM2151_ADD("ymsnd", XTAL_27MHz/8) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MCFG_OKIM6295_ADD("oki", XTAL_32MHz/32, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", XTAL_32MHz/32, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( bgaregga, toaplan2_state ) +static MACHINE_CONFIG_START( bgaregga ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_32MHz/2) /* 16MHz , 32MHz Oscillator */ @@ -4190,7 +4190,7 @@ static MACHINE_CONFIG_START( bgaregga, toaplan2_state ) MCFG_YM2151_ADD("ymsnd", XTAL_32MHz/8) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MCFG_OKIM6295_ADD("oki", XTAL_32MHz/16, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", XTAL_32MHz/16, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MCFG_DEVICE_ADD("nmk112", NMK112, 0) @@ -4205,7 +4205,7 @@ static MACHINE_CONFIG_DERIVED( bgareggabl, bgaregga ) MCFG_SCREEN_UPDATE_DRIVER(toaplan2_state, screen_update_bootleg) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( batrider, toaplan2_state ) +static MACHINE_CONFIG_START( batrider ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_32MHz/2) /* 16MHz , 32MHz Oscillator */ @@ -4250,10 +4250,10 @@ static MACHINE_CONFIG_START( batrider, toaplan2_state ) MCFG_YM2151_ADD("ymsnd", XTAL_32MHz/8) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MCFG_OKIM6295_ADD("oki1", XTAL_32MHz/10, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki1", XTAL_32MHz/10, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MCFG_OKIM6295_ADD("oki2", XTAL_32MHz/10, OKIM6295_PIN7_LOW) + MCFG_OKIM6295_ADD("oki2", XTAL_32MHz/10, PIN7_LOW) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MCFG_DEVICE_ADD("nmk112", NMK112, 0) @@ -4262,7 +4262,7 @@ static MACHINE_CONFIG_START( batrider, toaplan2_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( bbakraid, toaplan2_state ) +static MACHINE_CONFIG_START( bbakraid ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_32MHz/2) /* 16MHz , 32MHz Oscillator */ @@ -5709,95 +5709,95 @@ ROM_END // The following is in order of Toaplan Board/game numbers // See list at top of file -// ( YEAR NAME PARENT MACHINE INPUT INIT MONITOR COMPANY FULLNAME FLAGS ) -GAME( 1991, tekipaki, 0, tekipaki_mcu, tekipaki, driver_device, 0, ROT0, "Toaplan", "Teki Paki", MACHINE_SUPPORTS_SAVE ) +// ( YEAR NAME PARENT MACHINE INPUT STATE INIT MONITOR COMPANY FULLNAME FLAGS ) +GAME( 1991, tekipaki, 0, tekipaki_mcu, tekipaki, toaplan2_state, 0, ROT0, "Toaplan", "Teki Paki", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, ghox, 0, ghox, ghox, driver_device, 0, ROT270, "Toaplan", "Ghox (spinner)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1991, ghoxj, ghox, ghox, ghox, driver_device, 0, ROT270, "Toaplan", "Ghox (joystick)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1991, ghox, 0, ghox, ghox, toaplan2_state, 0, ROT270, "Toaplan", "Ghox (spinner)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1991, ghoxj, ghox, ghox, ghox, toaplan2_state, 0, ROT270, "Toaplan", "Ghox (joystick)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1992, dogyuun, 0, dogyuun, dogyuun, toaplan2_state, dogyuun, ROT270, "Toaplan", "Dogyuun", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, dogyuuna, dogyuun, dogyuun, dogyuuna, toaplan2_state, dogyuun, ROT270, "Toaplan", "Dogyuun (older set)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, dogyuunt, dogyuun, dogyuun, dogyuunt, toaplan2_state, dogyuun, ROT270, "Toaplan", "Dogyuun (location test)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, dogyuun, 0, dogyuun, dogyuun, toaplan2_state, dogyuun, ROT270, "Toaplan", "Dogyuun", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, dogyuuna, dogyuun, dogyuun, dogyuuna, toaplan2_state, dogyuun, ROT270, "Toaplan", "Dogyuun (older set)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, dogyuunt, dogyuun, dogyuun, dogyuunt, toaplan2_state, dogyuun, ROT270, "Toaplan", "Dogyuun (location test)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, kbash, 0, kbash, kbash, driver_device, 0, ROT0, "Toaplan / Atari", "Knuckle Bash", MACHINE_SUPPORTS_SAVE ) // Atari license shown for some regions. -GAME( 1993, kbashk, kbash, kbash, kbashk,driver_device, 0, ROT0, "Toaplan / Taito", "Knuckle Bash (Korean PCB)", MACHINE_SUPPORTS_SAVE ) // Japan region has optional Taito license, maybe the original Japan release? +GAME( 1993, kbash, 0, kbash, kbash, toaplan2_state, 0, ROT0, "Toaplan / Atari", "Knuckle Bash", MACHINE_SUPPORTS_SAVE ) // Atari license shown for some regions. +GAME( 1993, kbashk, kbash, kbash, kbashk, toaplan2_state, 0, ROT0, "Toaplan / Taito", "Knuckle Bash (Korean PCB)", MACHINE_SUPPORTS_SAVE ) // Japan region has optional Taito license, maybe the original Japan release? -GAME( 1999, kbash2, 0, kbash2, kbash2, driver_device, 0, ROT0, "bootleg", "Knuckle Bash 2 (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kbash2, 0, kbash2, kbash2, toaplan2_state, 0, ROT0, "bootleg", "Knuckle Bash 2 (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, truxton2, 0, truxton2, truxton2, driver_device, 0, ROT270, "Toaplan", "Truxton II / Tatsujin Oh", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, truxton2, 0, truxton2, truxton2, toaplan2_state, 0, ROT270, "Toaplan", "Truxton II / Tatsujin Oh", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, pipibibs, 0, pipibibs, pipibibs, driver_device, 0, ROT0, "Toaplan", "Pipi & Bibis / Whoopee!! (Z80 sound cpu, set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, pipibibsa, pipibibs, pipibibs, pipibibs, driver_device, 0, ROT0, "Toaplan", "Pipi & Bibis / Whoopee!! (Z80 sound cpu, set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, pipibibsp, pipibibs, pipibibs, pipibibsp, driver_device,0, ROT0, "Toaplan", "Pipi & Bibis / Whoopee!! (prototype)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, whoopee, pipibibs, tekipaki, whoopee, driver_device, 0, ROT0, "Toaplan", "Pipi & Bibis / Whoopee!! (Teki Paki hardware)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) // original Whoopee!! boards have a HD647180 instead of Z80 +GAME( 1991, pipibibs, 0, pipibibs, pipibibs, toaplan2_state, 0, ROT0, "Toaplan", "Pipi & Bibis / Whoopee!! (Z80 sound cpu, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, pipibibsa, pipibibs, pipibibs, pipibibs, toaplan2_state, 0, ROT0, "Toaplan", "Pipi & Bibis / Whoopee!! (Z80 sound cpu, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, pipibibsp, pipibibs, pipibibs, pipibibsp, toaplan2_state, 0, ROT0, "Toaplan", "Pipi & Bibis / Whoopee!! (prototype)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, whoopee, pipibibs, tekipaki, whoopee, toaplan2_state, 0, ROT0, "Toaplan", "Pipi & Bibis / Whoopee!! (Teki Paki hardware)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) // original Whoopee!! boards have a HD647180 instead of Z80 -GAME( 1991, pipibibsbl, pipibibs, pipibibsbl, pipibibsbl, toaplan2_state, pipibibsbl, ROT0, "bootleg (Ryouta Kikaku)", "Pipi & Bibis / Whoopee!! (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, pipibibsbl, pipibibs, pipibibsbl, pipibibsbl, toaplan2_state, pipibibsbl, ROT0, "bootleg (Ryouta Kikaku)", "Pipi & Bibis / Whoopee!! (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, enmadaio, 0, enmadaio, enmadaio,toaplan2_state, enmadaio, ROT0, "Toaplan / Taito", "Enma Daio (Japan)", 0 ) // TP-031 +GAME( 1993, enmadaio, 0, enmadaio, enmadaio, toaplan2_state, enmadaio, ROT0, "Toaplan / Taito", "Enma Daio (Japan)", 0 ) // TP-031 // region is in eeprom (and also requires correct return value from a v25 mapped address??) -GAME( 1992, fixeight, 0, fixeight, fixeight, toaplan2_state, fixeight, ROT270, "Toaplan", "FixEight (Europe)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, fixeightk, fixeight, fixeight, fixeight, toaplan2_state, fixeight, ROT270, "Toaplan", "FixEight (Korea)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, fixeighth, fixeight, fixeight, fixeight, toaplan2_state, fixeight, ROT270, "Toaplan", "FixEight (Hong Kong)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, fixeighttw, fixeight, fixeight, fixeight, toaplan2_state, fixeight, ROT270, "Toaplan", "FixEight (Taiwan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, fixeighta, fixeight, fixeight, fixeight, toaplan2_state, fixeight, ROT270, "Toaplan", "FixEight (Southeast Asia)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, fixeightu, fixeight, fixeight, fixeight, toaplan2_state, fixeight, ROT270, "Toaplan", "FixEight (USA)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, fixeightj, fixeight, fixeight, fixeight, toaplan2_state, fixeight, ROT270, "Toaplan", "FixEight (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, fixeightt, fixeight, fixeight, fixeight, toaplan2_state, fixeight, ROT270, "Toaplan (Taito license)", "FixEight (Europe, Taito license)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, fixeightkt, fixeight, fixeight, fixeight, toaplan2_state, fixeight, ROT270, "Toaplan (Taito license)", "FixEight (Korea, Taito license)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, fixeightht, fixeight, fixeight, fixeight, toaplan2_state, fixeight, ROT270, "Toaplan (Taito license)", "FixEight (Hong Kong, Taito license)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, fixeighttwt,fixeight, fixeight, fixeight, toaplan2_state, fixeight, ROT270, "Toaplan (Taito license)", "FixEight (Taiwan, Taito license)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, fixeightat, fixeight, fixeight, fixeight, toaplan2_state, fixeight, ROT270, "Toaplan (Taito license)", "FixEight (Southeast Asia, Taito license)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, fixeightut, fixeight, fixeight, fixeight, toaplan2_state, fixeight, ROT270, "Toaplan (Taito license)", "FixEight (USA, Taito license)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, fixeightjt, fixeight, fixeight, fixeight, toaplan2_state, fixeight, ROT270, "Toaplan (Taito license)", "FixEight (Japan, Taito license)", MACHINE_SUPPORTS_SAVE ) - -GAME( 1992, fixeightbl, fixeight, fixeightbl, fixeightbl, toaplan2_state, fixeightbl, ROT270, "bootleg", "FixEight (Korea, bootleg)", MACHINE_SUPPORTS_SAVE ) - -GAME( 1992, grindstm, 0, vfive, grindstm, toaplan2_state, vfive, ROT270, "Toaplan", "Grind Stormer", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, grindstma, grindstm, vfive, grindstma, toaplan2_state, vfive, ROT270, "Toaplan", "Grind Stormer (older set)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, vfive, grindstm, vfive, vfive, toaplan2_state, vfive, ROT270, "Toaplan", "V-Five (Japan)", MACHINE_SUPPORTS_SAVE ) - -GAME( 1993, batsugun, 0, batsugun, batsugun, toaplan2_state, dogyuun, ROT270, "Toaplan", "Batsugun", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, batsuguna, batsugun, batsugun, batsugun, toaplan2_state, dogyuun, ROT270, "Toaplan", "Batsugun (older set)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, batsugunb, batsugun, batsugun, batsugun, toaplan2_state, dogyuun, ROT270, "Toaplan", "Batsugun (Korean PCB)", MACHINE_SUPPORTS_SAVE ) // cheap looking PCB (same 'TP-030' numbering as original) but without Mask ROMs. Still has original customs etc. Jumpers were set to the Korea Unite Trading license, so likely made in Korea, not a bootleg tho. -GAME( 1993, batsugunsp, batsugun, batsugun, batsugun, toaplan2_state, dogyuun, ROT270, "Toaplan", "Batsugun - Special Version", MACHINE_SUPPORTS_SAVE ) - -GAME( 1994, pwrkick, 0, pwrkick, pwrkick, driver_device, 0, ROT0, "Sunwise", "Power Kick (Japan)", 0 ) -GAME( 1995, othldrby, 0, othldrby, othldrby,driver_device, 0, ROT0, "Sunwise", "Othello Derby (Japan)", 0 ) - -GAME( 1994, snowbro2, 0, snowbro2, snowbro2, driver_device, 0, ROT0, "Hanafram", "Snow Bros. 2 - With New Elves / Otenki Paradise", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, snowbro2b, snowbro2, snowbro2, snowbro2, driver_device, 0, ROT0, "bootleg", "Snow Bros. 2 - With New Elves / Otenki Paradise (bootleg)", MACHINE_SUPPORTS_SAVE ) - -GAME( 1993, sstriker, 0, mahoudai, sstriker, driver_device, 0, ROT270, "Raizing", "Sorcer Striker (set 1)" , MACHINE_SUPPORTS_SAVE ) // verified on two different PCBs -GAME( 1993, sstrikera, sstriker, mahoudai, sstrikera, driver_device, 0, ROT270, "Raizing", "Sorcer Striker (set 2)" , MACHINE_SUPPORTS_SAVE ) // from Korean board -GAME( 1993, mahoudai, sstriker, mahoudai, mahoudai, driver_device, 0, ROT270, "Raizing (Able license)", "Mahou Daisakusen (Japan)", MACHINE_SUPPORTS_SAVE ) - -GAME( 1994, kingdmgp, 0, shippumd, kingdmgp, driver_device, 0, ROT270, "Raizing / Eighting", "Kingdom Grandprix", MACHINE_SUPPORTS_SAVE ) // from Korean board, missing letters on credits screen but this is correct -GAME( 1994, shippumd, kingdmgp, shippumd, shippumd, driver_device, 0, ROT270, "Raizing / Eighting", "Shippu Mahou Daisakusen (Japan)", MACHINE_SUPPORTS_SAVE ) - -GAME( 1996, bgaregga, 0, bgaregga, bgaregga, toaplan2_state, bgaregga, ROT270, "Raizing / Eighting", "Battle Garegga (Europe / USA / Japan / Asia) (Sat Feb 3 1996)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, bgareggahk, bgaregga, bgaregga, bgareggahk, toaplan2_state, bgaregga, ROT270, "Raizing / Eighting", "Battle Garegga (Austria / Hong Kong) (Sat Feb 3 1996)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, bgareggatw, bgaregga, bgaregga, bgareggatw, toaplan2_state, bgaregga, ROT270, "Raizing / Eighting", "Battle Garegga (Taiwan / Germany) (Thu Feb 1 1996)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, bgaregganv, bgaregga, bgaregga, bgareggahk, toaplan2_state, bgaregga, ROT270, "Raizing / Eighting", "Battle Garegga - New Version (Austria / Hong Kong) (Sat Mar 2 1996)" , MACHINE_SUPPORTS_SAVE ) // displays New Version only when set to HK -GAME( 1996, bgareggat2, bgaregga, bgaregga, bgaregga, toaplan2_state, bgaregga, ROT270, "Raizing / Eighting", "Battle Garegga - Type 2 (Europe / USA / Japan / Asia) (Sat Mar 2 1996)" , MACHINE_SUPPORTS_SAVE ) // displays Type 2 only when set to Europe -GAME( 1996, bgareggacn, bgaregga, bgaregga, bgareggacn, toaplan2_state, bgaregga, ROT270, "Raizing / Eighting", "Battle Garegga - Type 2 (Denmark / China) (Tue Apr 2 1996)", MACHINE_SUPPORTS_SAVE ) // displays Type 2 only when set to Denmark -GAME( 1996, bgareggabl, bgaregga, bgareggabl,bgareggacn, toaplan2_state,bgaregga, ROT270, "bootleg", "1945 Part-2 (Chinese hack of Battle Garegga)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, bgareggabla,bgaregga, bgareggabl,bgareggacn, toaplan2_state,bgaregga, ROT270, "bootleg", "Lei Shen Zhuan Thunder Deity Biography (Chinese hack of Battle Garegga)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, fixeight, 0, fixeight, fixeight, toaplan2_state, fixeight, ROT270, "Toaplan", "FixEight (Europe)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, fixeightk, fixeight, fixeight, fixeight, toaplan2_state, fixeight, ROT270, "Toaplan", "FixEight (Korea)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, fixeighth, fixeight, fixeight, fixeight, toaplan2_state, fixeight, ROT270, "Toaplan", "FixEight (Hong Kong)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, fixeighttw, fixeight, fixeight, fixeight, toaplan2_state, fixeight, ROT270, "Toaplan", "FixEight (Taiwan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, fixeighta, fixeight, fixeight, fixeight, toaplan2_state, fixeight, ROT270, "Toaplan", "FixEight (Southeast Asia)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, fixeightu, fixeight, fixeight, fixeight, toaplan2_state, fixeight, ROT270, "Toaplan", "FixEight (USA)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, fixeightj, fixeight, fixeight, fixeight, toaplan2_state, fixeight, ROT270, "Toaplan", "FixEight (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, fixeightt, fixeight, fixeight, fixeight, toaplan2_state, fixeight, ROT270, "Toaplan (Taito license)", "FixEight (Europe, Taito license)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, fixeightkt, fixeight, fixeight, fixeight, toaplan2_state, fixeight, ROT270, "Toaplan (Taito license)", "FixEight (Korea, Taito license)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, fixeightht, fixeight, fixeight, fixeight, toaplan2_state, fixeight, ROT270, "Toaplan (Taito license)", "FixEight (Hong Kong, Taito license)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, fixeighttwt, fixeight, fixeight, fixeight, toaplan2_state, fixeight, ROT270, "Toaplan (Taito license)", "FixEight (Taiwan, Taito license)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, fixeightat, fixeight, fixeight, fixeight, toaplan2_state, fixeight, ROT270, "Toaplan (Taito license)", "FixEight (Southeast Asia, Taito license)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, fixeightut, fixeight, fixeight, fixeight, toaplan2_state, fixeight, ROT270, "Toaplan (Taito license)", "FixEight (USA, Taito license)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, fixeightjt, fixeight, fixeight, fixeight, toaplan2_state, fixeight, ROT270, "Toaplan (Taito license)", "FixEight (Japan, Taito license)", MACHINE_SUPPORTS_SAVE ) + +GAME( 1992, fixeightbl, fixeight, fixeightbl, fixeightbl, toaplan2_state, fixeightbl, ROT270, "bootleg", "FixEight (Korea, bootleg)", MACHINE_SUPPORTS_SAVE ) + +GAME( 1992, grindstm, 0, vfive, grindstm, toaplan2_state, vfive, ROT270, "Toaplan", "Grind Stormer", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, grindstma, grindstm, vfive, grindstma, toaplan2_state, vfive, ROT270, "Toaplan", "Grind Stormer (older set)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, vfive, grindstm, vfive, vfive, toaplan2_state, vfive, ROT270, "Toaplan", "V-Five (Japan)", MACHINE_SUPPORTS_SAVE ) + +GAME( 1993, batsugun, 0, batsugun, batsugun, toaplan2_state, dogyuun, ROT270, "Toaplan", "Batsugun", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, batsuguna, batsugun, batsugun, batsugun, toaplan2_state, dogyuun, ROT270, "Toaplan", "Batsugun (older set)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, batsugunb, batsugun, batsugun, batsugun, toaplan2_state, dogyuun, ROT270, "Toaplan", "Batsugun (Korean PCB)", MACHINE_SUPPORTS_SAVE ) // cheap looking PCB (same 'TP-030' numbering as original) but without Mask ROMs. Still has original customs etc. Jumpers were set to the Korea Unite Trading license, so likely made in Korea, not a bootleg tho. +GAME( 1993, batsugunsp, batsugun, batsugun, batsugun, toaplan2_state, dogyuun, ROT270, "Toaplan", "Batsugun - Special Version", MACHINE_SUPPORTS_SAVE ) + +GAME( 1994, pwrkick, 0, pwrkick, pwrkick, toaplan2_state, 0, ROT0, "Sunwise", "Power Kick (Japan)", 0 ) +GAME( 1995, othldrby, 0, othldrby, othldrby, toaplan2_state, 0, ROT0, "Sunwise", "Othello Derby (Japan)", 0 ) + +GAME( 1994, snowbro2, 0, snowbro2, snowbro2, toaplan2_state, 0, ROT0, "Hanafram", "Snow Bros. 2 - With New Elves / Otenki Paradise", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, snowbro2b, snowbro2, snowbro2, snowbro2, toaplan2_state, 0, ROT0, "bootleg", "Snow Bros. 2 - With New Elves / Otenki Paradise (bootleg)", MACHINE_SUPPORTS_SAVE ) + +GAME( 1993, sstriker, 0, mahoudai, sstriker, toaplan2_state, 0, ROT270, "Raizing", "Sorcer Striker (set 1)" , MACHINE_SUPPORTS_SAVE ) // verified on two different PCBs +GAME( 1993, sstrikera, sstriker, mahoudai, sstrikera, toaplan2_state, 0, ROT270, "Raizing", "Sorcer Striker (set 2)" , MACHINE_SUPPORTS_SAVE ) // from Korean board +GAME( 1993, mahoudai, sstriker, mahoudai, mahoudai, toaplan2_state, 0, ROT270, "Raizing (Able license)", "Mahou Daisakusen (Japan)", MACHINE_SUPPORTS_SAVE ) + +GAME( 1994, kingdmgp, 0, shippumd, kingdmgp, toaplan2_state, 0, ROT270, "Raizing / Eighting", "Kingdom Grandprix", MACHINE_SUPPORTS_SAVE ) // from Korean board, missing letters on credits screen but this is correct +GAME( 1994, shippumd, kingdmgp, shippumd, shippumd, toaplan2_state, 0, ROT270, "Raizing / Eighting", "Shippu Mahou Daisakusen (Japan)", MACHINE_SUPPORTS_SAVE ) + +GAME( 1996, bgaregga, 0, bgaregga, bgaregga, toaplan2_state, bgaregga, ROT270, "Raizing / Eighting", "Battle Garegga (Europe / USA / Japan / Asia) (Sat Feb 3 1996)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, bgareggahk, bgaregga, bgaregga, bgareggahk, toaplan2_state, bgaregga, ROT270, "Raizing / Eighting", "Battle Garegga (Austria / Hong Kong) (Sat Feb 3 1996)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, bgareggatw, bgaregga, bgaregga, bgareggatw, toaplan2_state, bgaregga, ROT270, "Raizing / Eighting", "Battle Garegga (Taiwan / Germany) (Thu Feb 1 1996)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, bgaregganv, bgaregga, bgaregga, bgareggahk, toaplan2_state, bgaregga, ROT270, "Raizing / Eighting", "Battle Garegga - New Version (Austria / Hong Kong) (Sat Mar 2 1996)" , MACHINE_SUPPORTS_SAVE ) // displays New Version only when set to HK +GAME( 1996, bgareggat2, bgaregga, bgaregga, bgaregga, toaplan2_state, bgaregga, ROT270, "Raizing / Eighting", "Battle Garegga - Type 2 (Europe / USA / Japan / Asia) (Sat Mar 2 1996)" , MACHINE_SUPPORTS_SAVE ) // displays Type 2 only when set to Europe +GAME( 1996, bgareggacn, bgaregga, bgaregga, bgareggacn, toaplan2_state, bgaregga, ROT270, "Raizing / Eighting", "Battle Garegga - Type 2 (Denmark / China) (Tue Apr 2 1996)", MACHINE_SUPPORTS_SAVE ) // displays Type 2 only when set to Denmark +GAME( 1996, bgareggabl, bgaregga, bgareggabl, bgareggacn, toaplan2_state, bgaregga, ROT270, "bootleg", "1945 Part-2 (Chinese hack of Battle Garegga)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, bgareggabla, bgaregga, bgareggabl, bgareggacn, toaplan2_state, bgaregga, ROT270, "bootleg", "Lei Shen Zhuan Thunder Deity Biography (Chinese hack of Battle Garegga)", MACHINE_SUPPORTS_SAVE ) // these are all based on Version B, even if only the Japan version states 'version B' -GAME( 1998, batrider, 0, batrider, batrider, toaplan2_state, batrider, ROT270, "Raizing / Eighting", "Armed Police Batrider (Europe) (Fri Feb 13 1998)", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, batrideru, batrider, batrider, batrider, toaplan2_state, batrider, ROT270, "Raizing / Eighting", "Armed Police Batrider (USA) (Fri Feb 13 1998)", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, batriderc, batrider, batrider, batrider, toaplan2_state, batrider, ROT270, "Raizing / Eighting", "Armed Police Batrider (China) (Fri Feb 13 1998)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, batrider, 0, batrider, batrider, toaplan2_state, batrider, ROT270, "Raizing / Eighting", "Armed Police Batrider (Europe) (Fri Feb 13 1998)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, batrideru, batrider, batrider, batrider, toaplan2_state, batrider, ROT270, "Raizing / Eighting", "Armed Police Batrider (USA) (Fri Feb 13 1998)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, batriderc, batrider, batrider, batrider, toaplan2_state, batrider, ROT270, "Raizing / Eighting", "Armed Police Batrider (China) (Fri Feb 13 1998)", MACHINE_SUPPORTS_SAVE ) GAME( 1998, batriderj, batrider, batrider, batriderj, toaplan2_state, batrider, ROT270, "Raizing / Eighting", "Armed Police Batrider (Japan, B version) (Fri Feb 13 1998)", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, batriderk, batrider, batrider, batrider, toaplan2_state, batrider, ROT270, "Raizing / Eighting", "Armed Police Batrider (Korea) (Fri Feb 13 1998)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, batriderk, batrider, batrider, batrider, toaplan2_state, batrider, ROT270, "Raizing / Eighting", "Armed Police Batrider (Korea) (Fri Feb 13 1998)", MACHINE_SUPPORTS_SAVE ) // older revision of the code GAME( 1998, batriderja, batrider, batrider, batriderj, toaplan2_state, batrider, ROT270, "Raizing / Eighting", "Armed Police Batrider (Japan, older version) (Mon Dec 22 1997)", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, batriderhk, batrider, batrider, batrider, toaplan2_state, batrider, ROT270, "Raizing / Eighting", "Armed Police Batrider (Hong Kong) (Mon Dec 22 1997)", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, batridert, batrider, batrider, batrider, toaplan2_state, batrider, ROT270, "Raizing / Eighting", "Armed Police Batrider (Taiwan) (Mon Dec 22 1997)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, batriderhk, batrider, batrider, batrider, toaplan2_state, batrider, ROT270, "Raizing / Eighting", "Armed Police Batrider (Hong Kong) (Mon Dec 22 1997)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, batridert, batrider, batrider, batrider, toaplan2_state, batrider, ROT270, "Raizing / Eighting", "Armed Police Batrider (Taiwan) (Mon Dec 22 1997)", MACHINE_SUPPORTS_SAVE ) // Battle Bakraid // the 'unlimited' version is a newer revision of the code -GAME( 1999, bbakraid, 0, bbakraid, bbakraid, toaplan2_state, bbakraid, ROT270, "Eighting", "Battle Bakraid - Unlimited Version (USA) (Tue Jun 8 1999)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, bbakraid, 0, bbakraid, bbakraid, toaplan2_state, bbakraid, ROT270, "Eighting", "Battle Bakraid - Unlimited Version (USA) (Tue Jun 8 1999)", MACHINE_SUPPORTS_SAVE ) GAME( 1999, bbakraidc, bbakraid, bbakraid, bbakraid, toaplan2_state, bbakraid, ROT270, "Eighting", "Battle Bakraid - Unlimited Version (China) (Tue Jun 8 1999)", MACHINE_SUPPORTS_SAVE ) GAME( 1999, bbakraidj, bbakraid, bbakraid, bbakraid, toaplan2_state, bbakraid, ROT270, "Eighting", "Battle Bakraid - Unlimited Version (Japan) (Tue Jun 8 1999)", MACHINE_SUPPORTS_SAVE ) // older revision of the code diff --git a/src/mame/drivers/toki.cpp b/src/mame/drivers/toki.cpp index f2b96ce9cbb..a217d9b759a 100644 --- a/src/mame/drivers/toki.cpp +++ b/src/mame/drivers/toki.cpp @@ -485,7 +485,7 @@ GFXDECODE_END /*****************************************************************************/ -static MACHINE_CONFIG_START( toki, toki_state ) /* KOYO 20.000MHz near the cpu */ +static MACHINE_CONFIG_START( toki ) /* KOYO 20.000MHz near the cpu */ /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000,XTAL_20MHz /2) /* verified on pcb */ @@ -521,7 +521,7 @@ static MACHINE_CONFIG_START( toki, toki_state ) /* KOYO 20.000MHz near the cpu * MCFG_YM3812_IRQ_HANDLER(DEVWRITELINE("seibu_sound", seibu_sound_device, fm_irqhandler)) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MCFG_OKIM6295_ADD("oki", XTAL_12MHz/12, OKIM6295_PIN7_HIGH) // verified on pcb + MCFG_OKIM6295_ADD("oki", XTAL_12MHz/12, PIN7_HIGH) // verified on pcb MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MCFG_DEVICE_ADD("seibu_sound", SEIBU_SOUND, 0) @@ -539,7 +539,7 @@ static MACHINE_CONFIG_DERIVED( jujuba, toki ) MCFG_CPU_DECRYPTED_OPCODES_MAP(jujuba_audio_opcodes_map) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( tokib, toki_state ) +static MACHINE_CONFIG_START( tokib ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 10000000) /* 10MHz causes bad slowdowns with monkey machine rd1, but is correct, 20Mhz XTAL */ @@ -576,7 +576,7 @@ static MACHINE_CONFIG_START( tokib, toki_state ) MCFG_SOUND_ADD("msm", MSM5205, 384000) MCFG_MSM5205_VCLK_CB(WRITELINE(toki_state, tokib_adpcm_int)) /* interrupt function */ - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S96_4B) /* 4KHz */ + MCFG_MSM5205_PRESCALER_SELECTOR(S96_4B) /* 4KHz */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60) MACHINE_CONFIG_END diff --git a/src/mame/drivers/tomcat.cpp b/src/mame/drivers/tomcat.cpp index dfd9ebf8ee5..34455a5593d 100644 --- a/src/mame/drivers/tomcat.cpp +++ b/src/mame/drivers/tomcat.cpp @@ -370,7 +370,7 @@ void tomcat_state::machine_start() m_dsp_BIO = 0; } -static MACHINE_CONFIG_START( tomcat, tomcat_state ) +static MACHINE_CONFIG_START( tomcat ) MCFG_CPU_ADD("maincpu", M68010, XTAL_12MHz / 2) MCFG_CPU_PROGRAM_MAP(tomcat_map) MCFG_CPU_PERIODIC_INT_DRIVER(tomcat_state, irq1_line_assert, 5*60) @@ -444,4 +444,4 @@ ROM_START( tomcat ) ROM_LOAD( "136021-105.1l", 0x0000, 0x0100, CRC(82fc3eb2) SHA1(184231c7baef598294860a7d2b8a23798c5c7da6) ) /* AVG PROM */ ROM_END -GAME( 1985, tomcat, 0, tomcat, tomcat, driver_device, 0, ROT0, "Atari", "TomCat (prototype)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, tomcat, 0, tomcat, tomcat, tomcat_state, 0, ROT0, "Atari", "TomCat (prototype)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/tonton.cpp b/src/mame/drivers/tonton.cpp index efef89e5df8..d88b8ccbc1c 100644 --- a/src/mame/drivers/tonton.cpp +++ b/src/mame/drivers/tonton.cpp @@ -210,7 +210,7 @@ WRITE8_MEMBER(tonton_state::ay_bout_w) * Machine Driver * *************************************************/ -static MACHINE_CONFIG_START( tonton, tonton_state ) +static MACHINE_CONFIG_START( tonton ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80, CPU_CLOCK) /* Guess. According to other MSX2 based gambling games */ diff --git a/src/mame/drivers/toobin.cpp b/src/mame/drivers/toobin.cpp index e039a1d0434..cca681eaa97 100644 --- a/src/mame/drivers/toobin.cpp +++ b/src/mame/drivers/toobin.cpp @@ -195,7 +195,7 @@ GFXDECODE_END * *************************************/ -static MACHINE_CONFIG_START( toobin, toobin_state ) +static MACHINE_CONFIG_START( toobin ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68010, MASTER_CLOCK/4) @@ -578,9 +578,9 @@ ROM_END * *************************************/ -GAME( 1988, toobin, 0, toobin, toobin, driver_device, 0, ROT270, "Atari Games", "Toobin' (rev 3)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, toobine, toobin, toobin, toobin, driver_device, 0, ROT270, "Atari Games", "Toobin' (Europe, rev 3)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, toobing, toobin, toobin, toobin, driver_device, 0, ROT270, "Atari Games", "Toobin' (German, rev 3)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, toobin2, toobin, toobin, toobin, driver_device, 0, ROT270, "Atari Games", "Toobin' (rev 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, toobin2e, toobin, toobin, toobin, driver_device, 0, ROT270, "Atari Games", "Toobin' (Europe, rev 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, toobin1, toobin, toobin, toobin, driver_device, 0, ROT270, "Atari Games", "Toobin' (rev 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, toobin, 0, toobin, toobin, toobin_state, 0, ROT270, "Atari Games", "Toobin' (rev 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, toobine, toobin, toobin, toobin, toobin_state, 0, ROT270, "Atari Games", "Toobin' (Europe, rev 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, toobing, toobin, toobin, toobin, toobin_state, 0, ROT270, "Atari Games", "Toobin' (German, rev 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, toobin2, toobin, toobin, toobin, toobin_state, 0, ROT270, "Atari Games", "Toobin' (rev 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, toobin2e, toobin, toobin, toobin, toobin_state, 0, ROT270, "Atari Games", "Toobin' (Europe, rev 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, toobin1, toobin, toobin, toobin, toobin_state, 0, ROT270, "Atari Games", "Toobin' (rev 1)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/topspeed.cpp b/src/mame/drivers/topspeed.cpp index a7c1abdd37f..8da45569ca7 100644 --- a/src/mame/drivers/topspeed.cpp +++ b/src/mame/drivers/topspeed.cpp @@ -562,7 +562,7 @@ void topspeed_state::machine_reset() } -static MACHINE_CONFIG_START( topspeed, topspeed_state ) +static MACHINE_CONFIG_START( topspeed ) // basic machine hardware MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz / 2) @@ -625,11 +625,11 @@ static MACHINE_CONFIG_START( topspeed, topspeed_state ) MCFG_SOUND_ADD("msm1", MSM5205, XTAL_384kHz) MCFG_MSM5205_VCLK_CB(WRITELINE(topspeed_state, msm5205_1_vck)) // VCK function - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S48_4B) // 8 kHz, 4-bit + MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) // 8 kHz, 4-bit MCFG_SOUND_ROUTE(ALL_OUTPUTS, "filter2", 1.0) MCFG_SOUND_ADD("msm2", MSM5205, XTAL_384kHz) - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_SEX_4B) // Slave mode, 4-bit + MCFG_MSM5205_PRESCALER_SELECTOR(SEX_4B) // Slave mode, 4-bit MCFG_SOUND_ROUTE(ALL_OUTPUTS, "filter3", 1.0) MCFG_FILTER_VOLUME_ADD("filter1l", 0) @@ -778,6 +778,6 @@ ROM_START( fullthrl ) ROM_END -GAMEL( 1987, topspeed, 0, topspeed, topspeed, driver_device, 0, ROT0, "Taito Corporation Japan", "Top Speed (World)", MACHINE_SUPPORTS_SAVE, layout_topspeed ) -GAMEL( 1987, topspeedu,topspeed, topspeed, fullthrl, driver_device, 0, ROT0, "Taito America Corporation (Romstar license)", "Top Speed (US)", MACHINE_SUPPORTS_SAVE, layout_topspeed ) -GAMEL( 1987, fullthrl, topspeed, topspeed, fullthrl, driver_device, 0, ROT0, "Taito Corporation", "Full Throttle (Japan)", MACHINE_SUPPORTS_SAVE, layout_topspeed ) +GAMEL( 1987, topspeed, 0, topspeed, topspeed, topspeed_state, 0, ROT0, "Taito Corporation Japan", "Top Speed (World)", MACHINE_SUPPORTS_SAVE, layout_topspeed ) +GAMEL( 1987, topspeedu,topspeed, topspeed, fullthrl, topspeed_state, 0, ROT0, "Taito America Corporation (Romstar license)", "Top Speed (US)", MACHINE_SUPPORTS_SAVE, layout_topspeed ) +GAMEL( 1987, fullthrl, topspeed, topspeed, fullthrl, topspeed_state, 0, ROT0, "Taito Corporation", "Full Throttle (Japan)", MACHINE_SUPPORTS_SAVE, layout_topspeed ) diff --git a/src/mame/drivers/toratora.cpp b/src/mame/drivers/toratora.cpp index a60cb5ede94..893c89c82dc 100644 --- a/src/mame/drivers/toratora.cpp +++ b/src/mame/drivers/toratora.cpp @@ -256,7 +256,7 @@ WRITE8_MEMBER(toratora_state::sn1_port_b_u3_w) * However, shot audio is muted if V < 1.0, as mixer state * is set to SLF & VCO. Should SLF FF state be inverted? */ - m_sn1->slf_cap_voltage_w((data >> 5) == 0x7 ? 2.5 : SN76477_EXTERNAL_VOLTAGE_DISCONNECT); + m_sn1->slf_cap_voltage_w((data >> 5) == 0x7 ? 2.5 : sn76477_device::EXTERNAL_VOLTAGE_DISCONNECT); } @@ -292,7 +292,7 @@ WRITE8_MEMBER(toratora_state::sn2_port_b_u2_w) m_sn2->envelope_1_w ((data >> 3) & 0x01); m_sn2->envelope_2_w ((data >> 4) & 0x01); m_sn2->slf_res_w(resistances[(data >> 5)]); - m_sn2->slf_cap_voltage_w((data >> 5) == 0x7 ? 2.5 : SN76477_EXTERNAL_VOLTAGE_DISCONNECT); + m_sn2->slf_cap_voltage_w((data >> 5) == 0x7 ? 2.5 : sn76477_device::EXTERNAL_VOLTAGE_DISCONNECT); /* Seems like the output should be muted in this case, but unsure of exact mechanism */ m_sn2->amplitude_res_w((data >> 5) == 0x0 ? RES_INF : RES_K(47)); @@ -390,7 +390,7 @@ void toratora_state::machine_reset() m_clear_tv = 0; } -static MACHINE_CONFIG_START( toratora, toratora_state ) +static MACHINE_CONFIG_START( toratora ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6800, 5185000 / 8) /* 5.185 MHz XTAL divided by 8 (@ U94.12) */ @@ -522,5 +522,5 @@ ROM_END * *************************************/ -GAME( 1980, toratora, 0, toratora, toratora, driver_device, 0, ROT90, "Game Plan", "Tora Tora (prototype?)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1980, toratorab,toratora, toratora, toratora, driver_device, 0, ROT90, "Game Plan", "Tora Tora (set 2)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1980, toratora, 0, toratora, toratora, toratora_state, 0, ROT90, "Game Plan", "Tora Tora (prototype?)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1980, toratorab,toratora, toratora, toratora, toratora_state, 0, ROT90, "Game Plan", "Tora Tora (set 2)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/tosh1000.cpp b/src/mame/drivers/tosh1000.cpp index 6e58876ea4f..c322cc203fd 100644 --- a/src/mame/drivers/tosh1000.cpp +++ b/src/mame/drivers/tosh1000.cpp @@ -139,7 +139,7 @@ static MACHINE_CONFIG_FRAGMENT( cfg_fdc_35 ) MCFG_DEVICE_REMOVE("fdc:1") MACHINE_CONFIG_END -static MACHINE_CONFIG_START( tosh1000, tosh1000_state ) +static MACHINE_CONFIG_START( tosh1000 ) MCFG_CPU_ADD("maincpu", I8088, XTAL_5MHz) MCFG_CPU_PROGRAM_MAP(tosh1000_map) MCFG_CPU_IO_MAP(tosh1000_io) @@ -190,5 +190,5 @@ ROM_START( tosh1000 ) ROM_END -/* YEAR ROM NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ -COMP ( 1987, tosh1000, ibm5150, 0, tosh1000, 0, tosh1000_state, tosh1000, "Toshiba", "Toshiba T1000", MACHINE_IS_SKELETON) +// YEAR ROM NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP ( 1987, tosh1000, ibm5150, 0, tosh1000, 0, tosh1000_state, tosh1000, "Toshiba", "Toshiba T1000", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/tourtabl.cpp b/src/mame/drivers/tourtabl.cpp index 2c7d91f6c7d..f87eceb031c 100644 --- a/src/mame/drivers/tourtabl.cpp +++ b/src/mame/drivers/tourtabl.cpp @@ -146,7 +146,7 @@ static INPUT_PORTS_START( tourtabl ) INPUT_PORTS_END -static MACHINE_CONFIG_START( tourtabl, tourtabl_state ) +static MACHINE_CONFIG_START( tourtabl ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, MASTER_CLOCK / 3) /* actually M6507 */ MCFG_CPU_PROGRAM_MAP(main_map) @@ -203,5 +203,5 @@ ROM_START( tourtab2 ) ROM_END -GAME( 1978, tourtabl, 0, tourtabl, tourtabl, driver_device, 0, ROT0, "Atari", "Tournament Table (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1978, tourtab2, tourtabl, tourtabl, tourtabl, driver_device, 0, ROT0, "Atari", "Tournament Table (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1978, tourtabl, 0, tourtabl, tourtabl, tourtabl_state, 0, ROT0, "Atari", "Tournament Table (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1978, tourtab2, tourtabl, tourtabl, tourtabl, tourtabl_state, 0, ROT0, "Atari", "Tournament Table (set 2)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/tourvis.cpp b/src/mame/drivers/tourvis.cpp index 7151e8de4bf..4c596cd4e75 100644 --- a/src/mame/drivers/tourvis.cpp +++ b/src/mame/drivers/tourvis.cpp @@ -498,7 +498,7 @@ WRITE_LINE_MEMBER(tourvision_state::tourvision_timer_out) } -static MACHINE_CONFIG_START( tourvision, tourvision_state ) +static MACHINE_CONFIG_START( tourvision ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", H6280, PCE_MAIN_CLOCK/3) MCFG_CPU_PROGRAM_MAP(pce_mem) @@ -510,7 +510,7 @@ static MACHINE_CONFIG_START( tourvision, tourvision_state ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(PCE_MAIN_CLOCK, HUC6260_WPF, 64, 64 + 1024 + 64, HUC6260_LPF, 18, 18 + 242) + MCFG_SCREEN_RAW_PARAMS(PCE_MAIN_CLOCK, huc6260_device::WPF, 64, 64 + 1024 + 64, huc6260_device::LPF, 18, 18 + 242) MCFG_SCREEN_UPDATE_DRIVER( pce_common_state, screen_update ) MCFG_SCREEN_PALETTE("huc6260:palette") @@ -568,4 +568,4 @@ ROM_START(tourvis) ROM_END -GAME( 19??, tourvis, 0, tourvision, tourvision, pce_common_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 c9907dc4e3f..fe81bfec9d9 100644 --- a/src/mame/drivers/toypop.cpp +++ b/src/mame/drivers/toypop.cpp @@ -651,7 +651,7 @@ INTERRUPT_GEN_MEMBER(namcos16_state::slave_vblank_irq) device.execute().set_input_line(6,HOLD_LINE); } -static MACHINE_CONFIG_START( liblrabl, namcos16_state ) +static MACHINE_CONFIG_START( liblrabl ) 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) @@ -665,20 +665,20 @@ static MACHINE_CONFIG_START( liblrabl, namcos16_state ) MCFG_CPU_PERIODIC_INT_DRIVER(namcos16_state, irq0_line_hold, 60) - MCFG_DEVICE_ADD("58xx", NAMCO58XX, 0) + MCFG_DEVICE_ADD("58xx", NAMCO_58XX, 0) MCFG_NAMCO58XX_IN_0_CB(IOPORT("COINS")) MCFG_NAMCO58XX_IN_1_CB(IOPORT("P1_RIGHT")) MCFG_NAMCO58XX_IN_2_CB(IOPORT("P2_RIGHT")) MCFG_NAMCO58XX_IN_3_CB(IOPORT("BUTTONS")) - MCFG_DEVICE_ADD("56xx_1", NAMCO56XX, 0) + MCFG_DEVICE_ADD("56xx_1", NAMCO_56XX, 0) MCFG_NAMCO56XX_IN_0_CB(READ8(namcos16_state, dipA_h)) MCFG_NAMCO56XX_IN_1_CB(READ8(namcos16_state, dipB_l)) MCFG_NAMCO56XX_IN_2_CB(READ8(namcos16_state, dipB_h)) MCFG_NAMCO56XX_IN_3_CB(READ8(namcos16_state, dipA_l)) MCFG_NAMCO56XX_OUT_0_CB(WRITE8(namcos16_state, flip)) - MCFG_DEVICE_ADD("56xx_2", NAMCO56XX, 0) + MCFG_DEVICE_ADD("56xx_2", NAMCO_56XX, 0) MCFG_NAMCO56XX_IN_1_CB(IOPORT("P1_LEFT")) MCFG_NAMCO56XX_IN_2_CB(IOPORT("P2_LEFT")) MCFG_NAMCO56XX_IN_3_CB(IOPORT("SERVICE")) @@ -764,5 +764,5 @@ ROM_START( toypop ) ROM_LOAD( "tp1-6.3d", 0x0000, 0x0100, CRC(16a9166a) SHA1(847cbaf7c88616576c410177e066ae1d792ac0ba) ) ROM_END -GAME( 1983, liblrabl, 0, liblrabl, liblrabl, driver_device, 0, ROT0, "Namco", "Libble Rabble", MACHINE_NO_COCKTAIL ) -GAME( 1986, toypop, 0, toypop, toypop, driver_device, 0, ROT0, "Namco", "Toypop", MACHINE_NO_COCKTAIL ) +GAME( 1983, liblrabl, 0, liblrabl, liblrabl, namcos16_state, 0, ROT0, "Namco", "Libble Rabble", MACHINE_NO_COCKTAIL ) +GAME( 1986, toypop, 0, toypop, toypop, namcos16_state, 0, ROT0, "Namco", "Toypop", MACHINE_NO_COCKTAIL ) diff --git a/src/mame/drivers/tp84.cpp b/src/mame/drivers/tp84.cpp index 3cf5ee6bd08..e4d8546dbd5 100644 --- a/src/mame/drivers/tp84.cpp +++ b/src/mame/drivers/tp84.cpp @@ -100,7 +100,7 @@ WRITE8_MEMBER(tp84_state::tp84_filter_w) C = 0; if (offset & 0x008) C += 47000; /* 47000pF = 0.047uF */ if (offset & 0x010) C += 470000; /* 470000pF = 0.47uF */ - dynamic_cast(machine().device("filter1"))->filter_rc_set_RC(FLT_RC_LOWPASS,1000,2200,1000,CAP_P(C)); + downcast(machine().device("filter1"))->filter_rc_set_RC(filter_rc_device::LOWPASS,1000,2200,1000,CAP_P(C)); /* 76489 #1 (optional) */ C = 0; @@ -111,12 +111,12 @@ WRITE8_MEMBER(tp84_state::tp84_filter_w) /* 76489 #2 */ C = 0; if (offset & 0x080) C += 470000; /* 470000pF = 0.47uF */ - dynamic_cast(machine().device("filter2"))->filter_rc_set_RC(FLT_RC_LOWPASS,1000,2200,1000,CAP_P(C)); + downcast(machine().device("filter2"))->filter_rc_set_RC(filter_rc_device::LOWPASS,1000,2200,1000,CAP_P(C)); /* 76489 #3 */ C = 0; if (offset & 0x100) C += 470000; /* 470000pF = 0.47uF */ - dynamic_cast(machine().device("filter3"))->filter_rc_set_RC(FLT_RC_LOWPASS,1000,2200,1000,CAP_P(C)); + downcast(machine().device("filter3"))->filter_rc_set_RC(filter_rc_device::LOWPASS,1000,2200,1000,CAP_P(C)); } WRITE8_MEMBER(tp84_state::tp84_sh_irqtrigger_w) @@ -286,7 +286,7 @@ INTERRUPT_GEN_MEMBER(tp84_state::sub_vblank_irq) } -static MACHINE_CONFIG_START( tp84, tp84_state ) +static MACHINE_CONFIG_START( tp84 ) /* basic machine hardware */ MCFG_CPU_ADD("cpu1",M6809, XTAL_18_432MHz/12) /* verified on pcb */ @@ -442,6 +442,6 @@ ROM_START( tp84b ) ROM_END -GAME( 1984, tp84, 0, tp84, tp84, driver_device, 0, ROT90, "Konami", "Time Pilot '84 (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, tp84a, tp84, tp84, tp84a, driver_device,0, ROT90, "Konami", "Time Pilot '84 (set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, tp84b, tp84, tp84b, tp84, driver_device, 0, ROT90, "Konami", "Time Pilot '84 (set 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, tp84, 0, tp84, tp84, tp84_state, 0, ROT90, "Konami", "Time Pilot '84 (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, tp84a, tp84, tp84, tp84a, tp84_state, 0, ROT90, "Konami", "Time Pilot '84 (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, tp84b, tp84, tp84b, tp84, tp84_state, 0, ROT90, "Konami", "Time Pilot '84 (set 3)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/tr606.cpp b/src/mame/drivers/tr606.cpp index 0b99d9992a3..95a18f94525 100644 --- a/src/mame/drivers/tr606.cpp +++ b/src/mame/drivers/tr606.cpp @@ -77,7 +77,7 @@ void tr606_state::machine_start() // register for savestates } -static MACHINE_CONFIG_START( tr606, tr606_state ) +static MACHINE_CONFIG_START( tr606 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", NEC_D650, TP2_HZ) @@ -107,4 +107,4 @@ ROM_START( tr606 ) ROM_END -CONS( 1982, tr606, 0, 0, tr606, tr606, driver_device, 0, "Roland", "TR-606 Drumatix", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) +CONS( 1982, tr606, 0, 0, tr606, tr606, tr606_state, 0, "Roland", "TR-606 Drumatix", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/trackfld.cpp b/src/mame/drivers/trackfld.cpp index b749b17c225..99727a96d1a 100644 --- a/src/mame/drivers/trackfld.cpp +++ b/src/mame/drivers/trackfld.cpp @@ -900,7 +900,7 @@ INTERRUPT_GEN_MEMBER(trackfld_state::vblank_nmi) device.execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE); } -static MACHINE_CONFIG_START( trackfld, trackfld_state ) +static MACHINE_CONFIG_START( trackfld ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", KONAMI1, MASTER_CLOCK/6/2) /* a guess for now */ @@ -957,7 +957,7 @@ INTERRUPT_GEN_MEMBER(trackfld_state::yieartf_timer_irq) device.execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE); } -static MACHINE_CONFIG_START( yieartf, trackfld_state ) +static MACHINE_CONFIG_START( yieartf ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809, MASTER_CLOCK/6/2) /* a guess for now */ @@ -1620,20 +1620,20 @@ DRIVER_INIT_MEMBER(trackfld_state,wizzquiz) } -GAME( 1983, trackfld, 0, trackfld, trackfld, trackfld_state, trackfld, ROT0, "Konami", "Track & Field", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, trackfldc, trackfld, trackfld, trackfld, trackfld_state, trackfld, ROT0, "Konami (Centuri license)", "Track & Field (Centuri)", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, hyprolym, trackfld, trackfld, trackfld, trackfld_state, trackfld, ROT0, "Konami", "Hyper Olympic", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, hyprolymb, trackfld, hyprolyb, trackfld, trackfld_state, trackfld, ROT0, "bootleg", "Hyper Olympic (bootleg, set 1)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1983, hyprolymba,trackfld, hyprolyb, trackfld, trackfld_state, trackfld, ROT0, "bootleg", "Hyper Olympic (bootleg, set 2)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1983, hipoly, trackfld, hyprolyb, trackfld, trackfld_state, trackfld, ROT0, "bootleg", "Hipoly (bootleg of Hyper Olympic)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) -GAME( 1996, atlantol, trackfld, atlantol, atlantol, trackfld_state, atlantol, ROT0, "bootleg", "Atlant Olimpic", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, trackfldnz,trackfld, trackfld, trackfld, trackfld_state, trackfldnz,ROT0, "bootleg? (Goldberg Enterprizes Inc.)", "Track & Field (NZ bootleg?)", MACHINE_SUPPORTS_SAVE) // bootleg of the Centuri version +GAME( 1983, trackfld, 0, trackfld, trackfld, trackfld_state, trackfld, ROT0, "Konami", "Track & Field", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, trackfldc, trackfld, trackfld, trackfld, trackfld_state, trackfld, ROT0, "Konami (Centuri license)", "Track & Field (Centuri)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, hyprolym, trackfld, trackfld, trackfld, trackfld_state, trackfld, ROT0, "Konami", "Hyper Olympic", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, hyprolymb, trackfld, hyprolyb, trackfld, trackfld_state, trackfld, ROT0, "bootleg", "Hyper Olympic (bootleg, set 1)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1983, hyprolymba,trackfld, hyprolyb, trackfld, trackfld_state, trackfld, ROT0, "bootleg", "Hyper Olympic (bootleg, set 2)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1983, hipoly, trackfld, hyprolyb, trackfld, trackfld_state, trackfld, ROT0, "bootleg", "Hipoly (bootleg of Hyper Olympic)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +GAME( 1996, atlantol, trackfld, atlantol, atlantol, trackfld_state, atlantol, ROT0, "bootleg", "Atlant Olimpic", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, trackfldnz,trackfld, trackfld, trackfld, trackfld_state, trackfldnz,ROT0, "bootleg? (Goldberg Enterprizes Inc.)", "Track & Field (NZ bootleg?)", MACHINE_SUPPORTS_SAVE) // bootleg of the Centuri version -GAME( 1988, mastkin, 0, mastkin, mastkin, trackfld_state, mastkin, ROT0, "Du Tech", "The Masters of Kin", MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE ) +GAME( 1988, mastkin, 0, mastkin, mastkin, trackfld_state, mastkin, ROT0, "Du Tech", "The Masters of Kin", MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE ) -GAME( 1985, wizzquiz, 0, wizzquiz, wizzquiz, trackfld_state, wizzquiz, ROT0, "Zilec-Zenitone (Konami license)", "Wizz Quiz (Konami version)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, wizzquiza, wizzquiz, wizzquiz, wizzquiz, trackfld_state, wizzquiz, ROT0, "Zilec-Zenitone", "Wizz Quiz (version 4)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, wizzquiz, 0, wizzquiz, wizzquiz, trackfld_state, wizzquiz, ROT0, "Zilec-Zenitone (Konami license)", "Wizz Quiz (Konami version)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, wizzquiza, wizzquiz, wizzquiz, wizzquiz, trackfld_state, wizzquiz, ROT0, "Zilec-Zenitone", "Wizz Quiz (version 4)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, reaktor, 0, reaktor, reaktor, driver_device, 0, ROT90, "Zilec", "Reaktor (Track & Field conversion)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, reaktor, 0, reaktor, reaktor, driver_device, 0, ROT90, "Zilec", "Reaktor (Track & Field conversion)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, yieartf, yiear, yieartf, yieartf, driver_device, 0, ROT0, "Konami", "Yie Ar Kung-Fu (GX361 conversion)", MACHINE_SUPPORTS_SAVE ) // the conversion looks of bootleg quality, but the code is clearly a very different revision to either original hardware set... +GAME( 1985, yieartf, yiear, yieartf, yieartf, driver_device, 0, ROT0, "Konami", "Yie Ar Kung-Fu (GX361 conversion)", MACHINE_SUPPORTS_SAVE ) // the conversion looks of bootleg quality, but the code is clearly a very different revision to either original hardware set... diff --git a/src/mame/drivers/tranz330.cpp b/src/mame/drivers/tranz330.cpp index 97874e0b349..5ce58c01ac2 100644 --- a/src/mame/drivers/tranz330.cpp +++ b/src/mame/drivers/tranz330.cpp @@ -150,7 +150,7 @@ static const z80_daisy_config tranz330_daisy_chain[] = // * - check clocks // ? - check purported RS232 hookup, inconsistent information found at the relevant webpage vs. user-submitted errata -static MACHINE_CONFIG_START( tranz330, tranz330_state ) +static MACHINE_CONFIG_START( tranz330 ) MCFG_CPU_ADD(CPU_TAG, Z80, XTAL_7_15909MHz/2) //* MCFG_CPU_PROGRAM_MAP(tranz330_mem) MCFG_CPU_IO_MAP(tranz330_io) @@ -200,5 +200,5 @@ ROM_START( tranz330 ) ROM_END -// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS -COMP( 1985, tranz330, 0, 0, tranz330, tranz330, driver_device, 0, "VeriFone", "Tranz 330", MACHINE_CLICKABLE_ARTWORK ) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 1985, tranz330, 0, 0, tranz330, tranz330, tranz330_state, 0, "VeriFone", "Tranz 330", MACHINE_CLICKABLE_ARTWORK ) diff --git a/src/mame/drivers/travrusa.cpp b/src/mame/drivers/travrusa.cpp index 9eb1c058c42..19f2bd3e96b 100644 --- a/src/mame/drivers/travrusa.cpp +++ b/src/mame/drivers/travrusa.cpp @@ -303,7 +303,7 @@ void travrusa_state::machine_reset() m_scrollx[1] = 0; } -static MACHINE_CONFIG_START( travrusa, travrusa_state ) +static MACHINE_CONFIG_START( travrusa ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 4000000) /* 4 MHz (?) */ @@ -616,11 +616,11 @@ DRIVER_INIT_MEMBER(travrusa_state, shtridrb) } -GAME( 1983, travrusa, 0, travrusa, travrusa, driver_device, 0, ROT270, "Irem", "Traverse USA / Zippy Race", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, travrusab,travrusa, travrusa, travrusa, driver_device, 0, ROT270, "bootleg (I.P.)", "Traverse USA (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, mototour, travrusa, travrusa, travrusa, driver_device, 0, ROT270, "Irem (Tecfri license)", "MotoTour / Zippy Race (Tecfri license)", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, motorace, travrusa, travrusa, motorace, travrusa_state, motorace, ROT270, "Irem (Williams license)", "MotoRace USA", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, travrusa, 0, travrusa, travrusa, travrusa_state, 0, ROT270, "Irem", "Traverse USA / Zippy Race", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, travrusab,travrusa, travrusa, travrusa, travrusa_state, 0, ROT270, "bootleg (I.P.)", "Traverse USA (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, mototour, travrusa, travrusa, travrusa, travrusa_state, 0, ROT270, "Irem (Tecfri license)", "MotoTour / Zippy Race (Tecfri license)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, motorace, travrusa, travrusa, motorace, travrusa_state, motorace, ROT270, "Irem (Williams license)", "MotoRace USA", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, shtrider, 0, shtrider, shtrider, driver_device, 0, ROT270|ORIENTATION_FLIP_X, "Seibu Kaihatsu", "Shot Rider", MACHINE_SUPPORTS_SAVE ) // possible bootleg +GAME( 1985, shtrider, 0, shtrider, shtrider, travrusa_state, 0, ROT270|ORIENTATION_FLIP_X, "Seibu Kaihatsu", "Shot Rider", MACHINE_SUPPORTS_SAVE ) // possible bootleg GAME( 1984, shtridera,shtrider, shtrider, shtrider, travrusa_state, shtridra, ROT270|ORIENTATION_FLIP_X, "Seibu Kaihatsu (Sigma license)", "Shot Rider (Sigma license)", MACHINE_SUPPORTS_SAVE ) GAME( 1985, shtriderb,shtrider, shtriderb,shtrider, travrusa_state, shtridrb, ROT270|ORIENTATION_FLIP_X, "bootleg", "Shot Rider (bootleg)", MACHINE_SUPPORTS_SAVE ) // resets when you attempt to start a game? diff --git a/src/mame/drivers/tricep.cpp b/src/mame/drivers/tricep.cpp index a3447f5eb02..7110250a508 100644 --- a/src/mame/drivers/tricep.cpp +++ b/src/mame/drivers/tricep.cpp @@ -18,19 +18,23 @@ class tricep_state : public driver_device { public: tricep_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag), - m_maincpu(*this, "maincpu"), - m_terminal(*this, TERMINAL_TAG) - , - m_p_ram(*this, "p_ram"){ } + : driver_device(mconfig, type, tag) + , m_maincpu(*this, "maincpu") + , m_terminal(*this, TERMINAL_TAG) + , m_p_ram(*this, "p_ram") + { + } - required_device m_maincpu; - required_device m_terminal; DECLARE_READ16_MEMBER(tricep_terminal_r); DECLARE_WRITE16_MEMBER(tricep_terminal_w); - DECLARE_WRITE8_MEMBER(kbd_put); - required_shared_ptr m_p_ram; + void kbd_put(u8 data); + +protected: virtual void machine_reset() override; + + required_device m_maincpu; + required_device m_terminal; + required_shared_ptr m_p_ram; }; @@ -66,19 +70,18 @@ void tricep_state::machine_reset() m_maincpu->reset(); } -WRITE8_MEMBER( tricep_state::kbd_put ) +void tricep_state::kbd_put(u8 data) { } -static MACHINE_CONFIG_START( tricep, tricep_state ) +static MACHINE_CONFIG_START( tricep ) /* basic machine hardware */ - MCFG_CPU_ADD("maincpu",M68000, XTAL_8MHz) + MCFG_CPU_ADD("maincpu", M68000, XTAL_8MHz) MCFG_CPU_PROGRAM_MAP(tricep_mem) - /* video hardware */ MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0) - MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(tricep_state, kbd_put)) + MCFG_GENERIC_TERMINAL_KEYBOARD_CB(PUT(tricep_state, kbd_put)) MACHINE_CONFIG_END /* ROM definition */ @@ -90,5 +93,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1985, tricep, 0, 0, tricep, tricep, driver_device, 0, "Morrow Designs", "Tricep", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1985, tricep, 0, 0, tricep, tricep, tricep_state, 0, "Morrow Designs", "Tricep", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) diff --git a/src/mame/drivers/triforce.cpp b/src/mame/drivers/triforce.cpp index e395709bdeb..503ed3c2310 100644 --- a/src/mame/drivers/triforce.cpp +++ b/src/mame/drivers/triforce.cpp @@ -566,7 +566,7 @@ void triforce_state::machine_start() descrambler(&rom[0x100], 0x1afe00); } -static MACHINE_CONFIG_START( triforce_base, triforce_state ) +static MACHINE_CONFIG_START( triforce_base ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", PPC603, 64000000) /* Correct CPU is a PowerPC 750 (what Apple called "G3") with paired-single vector instructions added */ @@ -1061,77 +1061,77 @@ ROM_START( mkartag2a ) ROM_END /* Main board */ -/*Triforce*/GAME( 2002, triforce, 0, triforce_base, triforce, driver_device, 0, ROT0, "Sega", "Triforce Bios", MACHINE_IS_SKELETON|MACHINE_IS_BIOS_ROOT ) +/*Triforce*/GAME( 2002, triforce, 0, triforce_base, triforce, triforce_state, 0, ROT0, "Sega", "Triforce Bios", MACHINE_IS_SKELETON|MACHINE_IS_BIOS_ROOT ) /* GDT-xxxx (Sega GD-ROM games) */ -/* 0001 */ GAME( 2002, vs2002j, triforce, triforcegd, triforce, driver_device, 0, ROT0, "Sega / Amusement Vision", "Virtua Striker 2002 (GDT-0001)", MACHINE_IS_SKELETON ) -/* 0002 */ GAME( 2002, vs2002ex, triforce, triforcegd, triforce, driver_device, 0, ROT0, "Sega / Amusement Vision", "Virtua Striker 2002 (GDT-0002)", MACHINE_IS_SKELETON ) +/* 0001 */ GAME( 2002, vs2002j, triforce, triforcegd, triforce, triforce_state, 0, ROT0, "Sega / Amusement Vision", "Virtua Striker 2002 (GDT-0001)", MACHINE_IS_SKELETON ) +/* 0002 */ GAME( 2002, vs2002ex, triforce, triforcegd, triforce, triforce_state, 0, ROT0, "Sega / Amusement Vision", "Virtua Striker 2002 (GDT-0002)", MACHINE_IS_SKELETON ) // 0003 -// 0004 GAME( 2003, fzeroaxo, fzeroax, triforcegd, triforce, driver_device, 0, ROT0, "Sega / Amusement Vision / Nintendo", "F-Zero AX (GDT-0004)", MACHINE_IS_SKELETON ) -// 0004A GAME( 2003, fzeroaxa, fzeroax, triforcegd, triforce, driver_device, 0, ROT0, "Sega / Amusement Vision / Nintendo", "F-Zero AX (Rev A) (GDT-0004A)", MACHINE_IS_SKELETON ) -// 0004B GAME( 2003, fzeroaxb, fzeroax, triforcegd, triforce, driver_device, 0, ROT0, "Sega / Amusement Vision / Nintendo", "F-Zero AX (Rev B) (GDT-0004B)", MACHINE_IS_SKELETON ) -/* 0004C */ GAME( 2003, fzeroaxc, fzeroax, triforcegd, triforce, driver_device, 0, ROT0, "Sega / Amusement Vision / Nintendo", "F-Zero AX (Rev C) (GDT-0004C)", MACHINE_IS_SKELETON ) -// 0004D GAME( 2003, fzeroaxd, fzeroax, triforcegd, triforce, driver_device, 0, ROT0, "Sega / Amusement Vision / Nintendo", "F-Zero AX (Rev D) (GDT-0004D)", MACHINE_IS_SKELETON ) -/* 0004E */ GAME( 2003, fzeroax, triforce, triforcegd, triforce, driver_device, 0, ROT0, "Sega / Amusement Vision / Nintendo", "F-Zero AX (Rev E) (GDT-0004E)", MACHINE_IS_SKELETON ) -// 0005 GAME( 2003, avalonso, avalons, triforcegd, triforce, driver_device, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon - The Wizard Master (server) (GDT-0005)", MACHINE_IS_SKELETON ) -// 0005A GAME( 2003, avalonsa, avalons, triforcegd, triforce, driver_device, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon - The Wizard Master (server) (Rev A) (GDT-0005A)", MACHINE_IS_SKELETON ) -// 0005B GAME( 2003, avalonsb, avalons, triforcegd, triforce, driver_device, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon - The Wizard Master (server) (Rev B) (GDT-0005B)", MACHINE_IS_SKELETON ) -/* 0005C */ GAME( 2003, avalonsc, avalons, triforcegd, triforce, driver_device, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon - The Wizard Master (server) (Rev C) (GDT-0005C)", MACHINE_IS_SKELETON ) -// 0005D GAME( 2003, avalonsd, avalons, triforcegd, triforce, driver_device, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon - The Wizard Master (server) (Rev D) (GDT-0005D)", MACHINE_IS_SKELETON ) -/* 0005E */ GAME( 2003, avalonse, avalons, triforcegd, triforce, driver_device, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon - The Wizard Master (server) (Rev E) (GDT-0005E)", MACHINE_IS_SKELETON ) -/* 0005F */ GAME( 2003, avalonsf, avalons, triforcegd, triforce, driver_device, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon - The Wizard Master (server) (Rev F) (GDT-0005F)", MACHINE_IS_SKELETON ) -/* 0005G */ GAME( 2003, avalons, triforce, triforcegd, triforce, driver_device, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon - The Wizard Master (server) (Rev G) (GDT-0005G)", MACHINE_IS_SKELETON ) -// 0006 GAME( 2003, avalonco, avalonc, triforcegd, triforce, driver_device, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon - The Wizard Master (client) (GDT-0006)", MACHINE_IS_SKELETON ) -// 0006A GAME( 2003, avalonca, avalonc, triforcegd, triforce, driver_device, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon - The Wizard Master (client) (Rev A) (GDT-0006A)", MACHINE_IS_SKELETON ) -// 0006B GAME( 2003, avaloncb, avalonc, triforcegd, triforce, driver_device, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon - The Wizard Master (client) (Rev B) (GDT-0006B)", MACHINE_IS_SKELETON ) -// 0006C GAME( 2003, avaloncc, avalonc, triforcegd, triforce, driver_device, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon - The Wizard Master (client) (Rev C) (GDT-0006C)", MACHINE_IS_SKELETON ) -// 0006D GAME( 2003, avaloncd, avalonc, triforcegd, triforce, driver_device, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon - The Wizard Master (client) (Rev D) (GDT-0006D)", MACHINE_IS_SKELETON ) -/* 0006E */ GAME( 2003, avalonce, avalonc, triforcegd, triforce, driver_device, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon - The Wizard Master (client) (Rev E) (GDT-0006E)", MACHINE_IS_SKELETON ) -/* 0006F */ GAME( 2003, avaloncf, avalonc, triforcegd, triforce, driver_device, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon - The Wizard Master (client) (Rev F) (GDT-0006F)", MACHINE_IS_SKELETON ) -/* 0006G */ GAME( 2003, avalonc, triforce, triforcegd, triforce, driver_device, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon - The Wizard Master (client) (Rev G) (GDT-0006G)", MACHINE_IS_SKELETON ) +// 0004 GAME( 2003, fzeroaxo, fzeroax, triforcegd, triforce, triforce_state, 0, ROT0, "Sega / Amusement Vision / Nintendo", "F-Zero AX (GDT-0004)", MACHINE_IS_SKELETON ) +// 0004A GAME( 2003, fzeroaxa, fzeroax, triforcegd, triforce, triforce_state, 0, ROT0, "Sega / Amusement Vision / Nintendo", "F-Zero AX (Rev A) (GDT-0004A)", MACHINE_IS_SKELETON ) +// 0004B GAME( 2003, fzeroaxb, fzeroax, triforcegd, triforce, triforce_state, 0, ROT0, "Sega / Amusement Vision / Nintendo", "F-Zero AX (Rev B) (GDT-0004B)", MACHINE_IS_SKELETON ) +/* 0004C */ GAME( 2003, fzeroaxc, fzeroax, triforcegd, triforce, triforce_state, 0, ROT0, "Sega / Amusement Vision / Nintendo", "F-Zero AX (Rev C) (GDT-0004C)", MACHINE_IS_SKELETON ) +// 0004D GAME( 2003, fzeroaxd, fzeroax, triforcegd, triforce, triforce_state, 0, ROT0, "Sega / Amusement Vision / Nintendo", "F-Zero AX (Rev D) (GDT-0004D)", MACHINE_IS_SKELETON ) +/* 0004E */ GAME( 2003, fzeroax, triforce, triforcegd, triforce, triforce_state, 0, ROT0, "Sega / Amusement Vision / Nintendo", "F-Zero AX (Rev E) (GDT-0004E)", MACHINE_IS_SKELETON ) +// 0005 GAME( 2003, avalonso, avalons, triforcegd, triforce, triforce_state, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon - The Wizard Master (server) (GDT-0005)", MACHINE_IS_SKELETON ) +// 0005A GAME( 2003, avalonsa, avalons, triforcegd, triforce, triforce_state, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon - The Wizard Master (server) (Rev A) (GDT-0005A)", MACHINE_IS_SKELETON ) +// 0005B GAME( 2003, avalonsb, avalons, triforcegd, triforce, triforce_state, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon - The Wizard Master (server) (Rev B) (GDT-0005B)", MACHINE_IS_SKELETON ) +/* 0005C */ GAME( 2003, avalonsc, avalons, triforcegd, triforce, triforce_state, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon - The Wizard Master (server) (Rev C) (GDT-0005C)", MACHINE_IS_SKELETON ) +// 0005D GAME( 2003, avalonsd, avalons, triforcegd, triforce, triforce_state, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon - The Wizard Master (server) (Rev D) (GDT-0005D)", MACHINE_IS_SKELETON ) +/* 0005E */ GAME( 2003, avalonse, avalons, triforcegd, triforce, triforce_state, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon - The Wizard Master (server) (Rev E) (GDT-0005E)", MACHINE_IS_SKELETON ) +/* 0005F */ GAME( 2003, avalonsf, avalons, triforcegd, triforce, triforce_state, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon - The Wizard Master (server) (Rev F) (GDT-0005F)", MACHINE_IS_SKELETON ) +/* 0005G */ GAME( 2003, avalons, triforce, triforcegd, triforce, triforce_state, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon - The Wizard Master (server) (Rev G) (GDT-0005G)", MACHINE_IS_SKELETON ) +// 0006 GAME( 2003, avalonco, avalonc, triforcegd, triforce, triforce_state, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon - The Wizard Master (client) (GDT-0006)", MACHINE_IS_SKELETON ) +// 0006A GAME( 2003, avalonca, avalonc, triforcegd, triforce, triforce_state, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon - The Wizard Master (client) (Rev A) (GDT-0006A)", MACHINE_IS_SKELETON ) +// 0006B GAME( 2003, avaloncb, avalonc, triforcegd, triforce, triforce_state, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon - The Wizard Master (client) (Rev B) (GDT-0006B)", MACHINE_IS_SKELETON ) +// 0006C GAME( 2003, avaloncc, avalonc, triforcegd, triforce, triforce_state, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon - The Wizard Master (client) (Rev C) (GDT-0006C)", MACHINE_IS_SKELETON ) +// 0006D GAME( 2003, avaloncd, avalonc, triforcegd, triforce, triforce_state, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon - The Wizard Master (client) (Rev D) (GDT-0006D)", MACHINE_IS_SKELETON ) +/* 0006E */ GAME( 2003, avalonce, avalonc, triforcegd, triforce, triforce_state, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon - The Wizard Master (client) (Rev E) (GDT-0006E)", MACHINE_IS_SKELETON ) +/* 0006F */ GAME( 2003, avaloncf, avalonc, triforcegd, triforce, triforce_state, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon - The Wizard Master (client) (Rev F) (GDT-0006F)", MACHINE_IS_SKELETON ) +/* 0006G */ GAME( 2003, avalonc, triforce, triforcegd, triforce, triforce_state, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon - The Wizard Master (client) (Rev G) (GDT-0006G)", MACHINE_IS_SKELETON ) // 0007 -// 0008 GAME( 2003, gekpuryao,gekpurya, triforcegd, triforce, driver_device, 0, ROT0, "Sega / Wow Entertainment", "Gekitou Pro Yakyuu Mizushima Shinji All Stars vs. Pro Yakyuu (GDT-0008)", MACHINE_IS_SKELETON ) -// 0008A GAME( 2003, gekpuryaa,gekpurya, triforcegd, triforce, driver_device, 0, ROT0, "Sega / Wow Entertainment", "Gekitou Pro Yakyuu Mizushima Shinji All Stars vs. Pro Yakyuu (Rev A) (GDT-0008A)", MACHINE_IS_SKELETON ) -/* 0008B */ GAME( 2003, gekpuryb, gekpurya, triforcegd, triforce, driver_device, 0, ROT0, "Sega / Wow Entertainment", "Gekitou Pro Yakyuu Mizushima Shinji All Stars vs. Pro Yakyuu (Rev B) (GDT-0008B)", MACHINE_IS_SKELETON ) -/* 0008C */ GAME( 2003, gekpurya, triforce, triforcegd, triforce, driver_device, 0, ROT0, "Sega / Wow Entertainment", "Gekitou Pro Yakyuu Mizushima Shinji All Stars vs. Pro Yakyuu (Rev C) (GDT-0008C)", MACHINE_IS_SKELETON ) -// 0009 GAME( 2004, avalns11, avalns13, triforcegd, triforce, driver_device, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon 1.? - ??? (server) (GDT-0009)", MACHINE_IS_SKELETON ) -/* 0009A */ GAME( 2004, avalns12, avalns13, triforcegd, triforce, driver_device, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon 1.2 - Summon The New Monsters (server) (Rev A) (GDT-0009A)", MACHINE_IS_SKELETON ) -// 0009B GAME( 2004, avals13b, avalns13, triforcegd, triforce, driver_device, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon 1.? - ??? (server) (Rev B) (GDT-0009B)", MACHINE_IS_SKELETON ) -/* 0009C */ GAME( 2004, avalns13, triforce, triforcegd, triforce, driver_device, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon 1.3 - Chaotic Sabbat (server) (Rev C) (GDT-0009C)", MACHINE_IS_SKELETON ) -// 0010 GAME( 2004, avalnc11, avalnc13, triforcegd, triforce, driver_device, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon 1.? - ??? (client) (GDT-0010)", MACHINE_IS_SKELETON ) -/* 0010A */ GAME( 2004, avalnc12, avalnc13, triforcegd, triforce, driver_device, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon 1.2 - Summon The New Monsters (client) (Rev A) (GDT-0010A)", MACHINE_IS_SKELETON ) -// 0010B GAME( 2004, avalc13b, avalnc13, triforcegd, triforce, driver_device, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon 1.? - ??? (client) (Rev B) (GDT-0010B)", MACHINE_IS_SKELETON ) -/* 0010C */ GAME( 2004, avalnc13, triforce, triforcegd, triforce, driver_device, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon 1.3 - Chaotic Sabbat (client) (Rev C) (GDT-0010C)", MACHINE_IS_SKELETON ) -/* 0011 */ GAME( 2004, tfupdate, triforce, triforcegd, triforce, driver_device, 0, ROT0, "Sega", "Triforce DIMM Updater (3.17) (GDT-0011)", MACHINE_IS_SKELETON ) +// 0008 GAME( 2003, gekpuryao,gekpurya, triforcegd, triforce, triforce_state, 0, ROT0, "Sega / Wow Entertainment", "Gekitou Pro Yakyuu Mizushima Shinji All Stars vs. Pro Yakyuu (GDT-0008)", MACHINE_IS_SKELETON ) +// 0008A GAME( 2003, gekpuryaa,gekpurya, triforcegd, triforce, triforce_state, 0, ROT0, "Sega / Wow Entertainment", "Gekitou Pro Yakyuu Mizushima Shinji All Stars vs. Pro Yakyuu (Rev A) (GDT-0008A)", MACHINE_IS_SKELETON ) +/* 0008B */ GAME( 2003, gekpuryb, gekpurya, triforcegd, triforce, triforce_state, 0, ROT0, "Sega / Wow Entertainment", "Gekitou Pro Yakyuu Mizushima Shinji All Stars vs. Pro Yakyuu (Rev B) (GDT-0008B)", MACHINE_IS_SKELETON ) +/* 0008C */ GAME( 2003, gekpurya, triforce, triforcegd, triforce, triforce_state, 0, ROT0, "Sega / Wow Entertainment", "Gekitou Pro Yakyuu Mizushima Shinji All Stars vs. Pro Yakyuu (Rev C) (GDT-0008C)", MACHINE_IS_SKELETON ) +// 0009 GAME( 2004, avalns11, avalns13, triforcegd, triforce, triforce_state, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon 1.? - ??? (server) (GDT-0009)", MACHINE_IS_SKELETON ) +/* 0009A */ GAME( 2004, avalns12, avalns13, triforcegd, triforce, triforce_state, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon 1.2 - Summon The New Monsters (server) (Rev A) (GDT-0009A)", MACHINE_IS_SKELETON ) +// 0009B GAME( 2004, avals13b, avalns13, triforcegd, triforce, triforce_state, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon 1.? - ??? (server) (Rev B) (GDT-0009B)", MACHINE_IS_SKELETON ) +/* 0009C */ GAME( 2004, avalns13, triforce, triforcegd, triforce, triforce_state, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon 1.3 - Chaotic Sabbat (server) (Rev C) (GDT-0009C)", MACHINE_IS_SKELETON ) +// 0010 GAME( 2004, avalnc11, avalnc13, triforcegd, triforce, triforce_state, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon 1.? - ??? (client) (GDT-0010)", MACHINE_IS_SKELETON ) +/* 0010A */ GAME( 2004, avalnc12, avalnc13, triforcegd, triforce, triforce_state, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon 1.2 - Summon The New Monsters (client) (Rev A) (GDT-0010A)", MACHINE_IS_SKELETON ) +// 0010B GAME( 2004, avalc13b, avalnc13, triforcegd, triforce, triforce_state, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon 1.? - ??? (client) (Rev B) (GDT-0010B)", MACHINE_IS_SKELETON ) +/* 0010C */ GAME( 2004, avalnc13, triforce, triforcegd, triforce, triforce_state, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon 1.3 - Chaotic Sabbat (client) (Rev C) (GDT-0010C)", MACHINE_IS_SKELETON ) +/* 0011 */ GAME( 2004, tfupdate, triforce, triforcegd, triforce, triforce_state, 0, ROT0, "Sega", "Triforce DIMM Updater (3.17) (GDT-0011)", MACHINE_IS_SKELETON ) // 0012 -// 0013 GAME( 2005, vs4jo, vs4j, triforcegd, triforce, driver_device, 0, ROT0, "Sega", "Virtua Striker 4 (Japan) (GDT-0013)", MACHINE_IS_SKELETON ) -// 0013A GAME( 2005, vs4ja, vs4j, triforcegd, triforce, driver_device, 0, ROT0, "Sega", "Virtua Striker 4 (Japan) (Rev A) (GDT-0013A)", MACHINE_IS_SKELETON ) -// 0013B GAME( 2005, vs4jb, vs4j, triforcegd, triforce, driver_device, 0, ROT0, "Sega", "Virtua Striker 4 (Japan) (Rev B) (GDT-0013B)", MACHINE_IS_SKELETON ) -// 0013C GAME( 2005, vs4jc, vs4j, triforcegd, triforce, driver_device, 0, ROT0, "Sega", "Virtua Striker 4 (Japan) (Rev C) (GDT-0013C)", MACHINE_IS_SKELETON ) -// 0013D GAME( 2005, vs4jd, vs4j, triforcegd, triforce, driver_device, 0, ROT0, "Sega", "Virtua Striker 4 (Japan) (Rev D) (GDT-0013D)", MACHINE_IS_SKELETON ) -/* 0013E */ GAME( 2005, vs4j, triforce, triforcegd, triforce, driver_device, 0, ROT0, "Sega", "Virtua Striker 4 (Japan) (Rev E) (GDT-0013E)", MACHINE_IS_SKELETON ) +// 0013 GAME( 2005, vs4jo, vs4j, triforcegd, triforce, triforce_state, 0, ROT0, "Sega", "Virtua Striker 4 (Japan) (GDT-0013)", MACHINE_IS_SKELETON ) +// 0013A GAME( 2005, vs4ja, vs4j, triforcegd, triforce, triforce_state, 0, ROT0, "Sega", "Virtua Striker 4 (Japan) (Rev A) (GDT-0013A)", MACHINE_IS_SKELETON ) +// 0013B GAME( 2005, vs4jb, vs4j, triforcegd, triforce, triforce_state, 0, ROT0, "Sega", "Virtua Striker 4 (Japan) (Rev B) (GDT-0013B)", MACHINE_IS_SKELETON ) +// 0013C GAME( 2005, vs4jc, vs4j, triforcegd, triforce, triforce_state, 0, ROT0, "Sega", "Virtua Striker 4 (Japan) (Rev C) (GDT-0013C)", MACHINE_IS_SKELETON ) +// 0013D GAME( 2005, vs4jd, vs4j, triforcegd, triforce, triforce_state, 0, ROT0, "Sega", "Virtua Striker 4 (Japan) (Rev D) (GDT-0013D)", MACHINE_IS_SKELETON ) +/* 0013E */ GAME( 2005, vs4j, triforce, triforcegd, triforce, triforce_state, 0, ROT0, "Sega", "Virtua Striker 4 (Japan) (Rev E) (GDT-0013E)", MACHINE_IS_SKELETON ) // 0014 -/* 0015 */ GAME( 2004, vs4, triforce, triforcegd, triforce, driver_device, 0, ROT0, "Sega", "Virtua Striker 4 (Export) (GDT-0015)", MACHINE_IS_SKELETON ) -// 0016 GAME( 2004, avalons20,triforce, triforcegd, triforce, driver_device, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon 2.0 - Eutaxy and Commandment (server) (GDT-0016)", MACHINE_IS_SKELETON ) -// 0017 GAME( 2004, avalon20o,avalon20, triforcegd, triforce, driver_device, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon 2.0 - Eutaxy and Commandment (client) (GDT-0017)", MACHINE_IS_SKELETON ) -// 0017A GAME( 2004, avalon20a,avalon20, triforcegd, triforce, driver_device, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon 2.0 - Eutaxy and Commandment (client) (Rev A) (GDT-0017A)", MACHINE_IS_SKELETON ) -/* 0017B */ GAME( 2004, avalon20, triforce, triforcegd, triforce, driver_device, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon 2.0 - Eutaxy and Commandment (client) (Rev B) (GDT-0017B)", MACHINE_IS_SKELETON ) -// 0018 GAME( 2005, avalns25o,avalns25, triforcegd, triforce, driver_device, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon 2.5 - War of the Key (server) (GDT-0018)", MACHINE_IS_SKELETON ) -// 0018A GAME( 2005, avalns25a,avalns25, triforcegd, triforce, driver_device, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon 2.5 - War of the Key (server) (Rev A) (GDT-0018A)", MACHINE_IS_SKELETON ) -/* 0018B */ GAME( 2005, avalns25, triforce, triforcegd, triforce, driver_device, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon 2.5 - War of the Key (server) (Rev B) (GDT-0018B)", MACHINE_IS_SKELETON ) -// 0019 GAME( 2005, avalnc25o,avalnc25, triforcegd, triforce, driver_device, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon 2.5 - War of the Key (client) (GDT-0019)", MACHINE_IS_SKELETON ) -// 0019A GAME( 2005, avalnc25a,avalnc25, triforcegd, triforce, driver_device, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon 2.5 - War of the Key (client) (Rev A) (GDT-0019A)", MACHINE_IS_SKELETON ) -/* 0019B */ GAME( 2005, avalnc25, triforce, triforcegd, triforce, driver_device, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon 2.5 - War of the Key (client) (Rev B) (GDT-0019B)", MACHINE_IS_SKELETON ) -// 0020 GAME( 2006, vs42006o, vs42006, triforcegd, triforce, driver_device, 0, ROT0, "Sega", "Virtua Striker 4 Ver.2006 (Japan) (GDT-0020)", MACHINE_IS_SKELETON ) -// 0020A GAME( 2006, vs42006a, vs42006, triforcegd, triforce, driver_device, 0, ROT0, "Sega", "Virtua Striker 4 Ver.2006 (Japan) (Rev A) (GDT-0020A)", MACHINE_IS_SKELETON ) -// 0020B GAME( 2006, vs42006b, vs42006, triforcegd, triforce, driver_device, 0, ROT0, "Sega", "Virtua Striker 4 Ver.2006 (Japan) (Rev B) (GDT-0020B)", MACHINE_IS_SKELETON ) -// 0020C GAME( 2006, vs42006c, vs42006, triforcegd, triforce, driver_device, 0, ROT0, "Sega", "Virtua Striker 4 Ver.2006 (Japan) (Rev C) (GDT-0020C)", MACHINE_IS_SKELETON ) -/* 0020D */ GAME( 2006, vs42006, triforce, triforcegd, triforce, driver_device, 0, ROT0, "Sega", "Virtua Striker 4 Ver.2006 (Japan) (Rev D) (GDT-0020D)", MACHINE_IS_SKELETON ) -/* 0021 */ GAME( 2006, vs42k6ex, triforce, triforcegd, triforce, driver_device, 0, ROT0, "Sega", "Virtua Striker 4 Ver.2006 (Export) (GDT-0021)", MACHINE_IS_SKELETON ) -// 0022 GAME( 2006, tcfboxo, tcfboxa, triforcegd, triforce, driver_device, 0, ROT0, "Sega", "Triforce Firmware Update For Compact Flash Box (GDT-0022)", MACHINE_IS_SKELETON ) -/* 0022A */ GAME( 2006, tcfboxa, triforce, triforcegd, triforce, driver_device, 0, ROT0, "Sega", "Triforce Firmware Update For Compact Flash Box (4.01) (GDT-0022A)", MACHINE_IS_SKELETON ) +/* 0015 */ GAME( 2004, vs4, triforce, triforcegd, triforce, triforce_state, 0, ROT0, "Sega", "Virtua Striker 4 (Export) (GDT-0015)", MACHINE_IS_SKELETON ) +// 0016 GAME( 2004, avalons20,triforce, triforcegd, triforce, triforce_state, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon 2.0 - Eutaxy and Commandment (server) (GDT-0016)", MACHINE_IS_SKELETON ) +// 0017 GAME( 2004, avalon20o,avalon20, triforcegd, triforce, triforce_state, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon 2.0 - Eutaxy and Commandment (client) (GDT-0017)", MACHINE_IS_SKELETON ) +// 0017A GAME( 2004, avalon20a,avalon20, triforcegd, triforce, triforce_state, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon 2.0 - Eutaxy and Commandment (client) (Rev A) (GDT-0017A)", MACHINE_IS_SKELETON ) +/* 0017B */ GAME( 2004, avalon20, triforce, triforcegd, triforce, triforce_state, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon 2.0 - Eutaxy and Commandment (client) (Rev B) (GDT-0017B)", MACHINE_IS_SKELETON ) +// 0018 GAME( 2005, avalns25o,avalns25, triforcegd, triforce, triforce_state, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon 2.5 - War of the Key (server) (GDT-0018)", MACHINE_IS_SKELETON ) +// 0018A GAME( 2005, avalns25a,avalns25, triforcegd, triforce, triforce_state, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon 2.5 - War of the Key (server) (Rev A) (GDT-0018A)", MACHINE_IS_SKELETON ) +/* 0018B */ GAME( 2005, avalns25, triforce, triforcegd, triforce, triforce_state, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon 2.5 - War of the Key (server) (Rev B) (GDT-0018B)", MACHINE_IS_SKELETON ) +// 0019 GAME( 2005, avalnc25o,avalnc25, triforcegd, triforce, triforce_state, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon 2.5 - War of the Key (client) (GDT-0019)", MACHINE_IS_SKELETON ) +// 0019A GAME( 2005, avalnc25a,avalnc25, triforcegd, triforce, triforce_state, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon 2.5 - War of the Key (client) (Rev A) (GDT-0019A)", MACHINE_IS_SKELETON ) +/* 0019B */ GAME( 2005, avalnc25, triforce, triforcegd, triforce, triforce_state, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon 2.5 - War of the Key (client) (Rev B) (GDT-0019B)", MACHINE_IS_SKELETON ) +// 0020 GAME( 2006, vs42006o, vs42006, triforcegd, triforce, triforce_state, 0, ROT0, "Sega", "Virtua Striker 4 Ver.2006 (Japan) (GDT-0020)", MACHINE_IS_SKELETON ) +// 0020A GAME( 2006, vs42006a, vs42006, triforcegd, triforce, triforce_state, 0, ROT0, "Sega", "Virtua Striker 4 Ver.2006 (Japan) (Rev A) (GDT-0020A)", MACHINE_IS_SKELETON ) +// 0020B GAME( 2006, vs42006b, vs42006, triforcegd, triforce, triforce_state, 0, ROT0, "Sega", "Virtua Striker 4 Ver.2006 (Japan) (Rev B) (GDT-0020B)", MACHINE_IS_SKELETON ) +// 0020C GAME( 2006, vs42006c, vs42006, triforcegd, triforce, triforce_state, 0, ROT0, "Sega", "Virtua Striker 4 Ver.2006 (Japan) (Rev C) (GDT-0020C)", MACHINE_IS_SKELETON ) +/* 0020D */ GAME( 2006, vs42006, triforce, triforcegd, triforce, triforce_state, 0, ROT0, "Sega", "Virtua Striker 4 Ver.2006 (Japan) (Rev D) (GDT-0020D)", MACHINE_IS_SKELETON ) +/* 0021 */ GAME( 2006, vs42k6ex, triforce, triforcegd, triforce, triforce_state, 0, ROT0, "Sega", "Virtua Striker 4 Ver.2006 (Export) (GDT-0021)", MACHINE_IS_SKELETON ) +// 0022 GAME( 2006, tcfboxo, tcfboxa, triforcegd, triforce, triforce_state, 0, ROT0, "Sega", "Triforce Firmware Update For Compact Flash Box (GDT-0022)", MACHINE_IS_SKELETON ) +/* 0022A */ GAME( 2006, tcfboxa, triforce, triforcegd, triforce, triforce_state, 0, ROT0, "Sega", "Triforce Firmware Update For Compact Flash Box (4.01) (GDT-0022A)", MACHINE_IS_SKELETON ) // 837-xxxxx (Sega cart games) -/* 14343-4T1 */ GAME( 2005, mkartagp, triforce, triforce_base, triforce, driver_device, 0, ROT0, "Namco / Nintendo", "Mario Kart Arcade GP (Japan, MKA1 Ver.A1)", MACHINE_IS_SKELETON ) -/* 14343-R4S0 */ GAME( 2007, mkartag2, triforce, triforce_base, triforce, driver_device, 0, ROT0, "Namco / Nintendo", "Mario Kart Arcade GP 2 (Japan, MK21 Ver.A)", MACHINE_IS_SKELETON ) -/* 14343-R4S0 */ GAME( 2007, mkartag2a,mkartag2, triforce_base, triforce, driver_device, 0, ROT0, "Namco / Nintendo", "Mario Kart Arcade GP 2 (Japan, MK21 Ver.A, alt dump)", MACHINE_IS_SKELETON ) +/* 14343-4T1 */ GAME( 2005, mkartagp, triforce, triforce_base, triforce, triforce_state, 0, ROT0, "Namco / Nintendo", "Mario Kart Arcade GP (Japan, MKA1 Ver.A1)", MACHINE_IS_SKELETON ) +/* 14343-R4S0 */ GAME( 2007, mkartag2, triforce, triforce_base, triforce, triforce_state, 0, ROT0, "Namco / Nintendo", "Mario Kart Arcade GP 2 (Japan, MK21 Ver.A)", MACHINE_IS_SKELETON ) +/* 14343-R4S0 */ GAME( 2007, mkartag2a,mkartag2, triforce_base, triforce, triforce_state, 0, ROT0, "Namco / Nintendo", "Mario Kart Arcade GP 2 (Japan, MK21 Ver.A, alt dump)", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/triplhnt.cpp b/src/mame/drivers/triplhnt.cpp index e0d6e74e39d..fe020337307 100644 --- a/src/mame/drivers/triplhnt.cpp +++ b/src/mame/drivers/triplhnt.cpp @@ -301,7 +301,7 @@ PALETTE_INIT_MEMBER(triplhnt_state, triplhnt) } -static MACHINE_CONFIG_START( triplhnt, triplhnt_state ) +static MACHINE_CONFIG_START( triplhnt ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6800, 800000) diff --git a/src/mame/drivers/trs80.cpp b/src/mame/drivers/trs80.cpp index f3c3e3aa306..3e595bd4d78 100644 --- a/src/mame/drivers/trs80.cpp +++ b/src/mame/drivers/trs80.cpp @@ -166,10 +166,10 @@ static ADDRESS_MAP_START( model1_map, AS_PROGRAM, 8, trs80_state ) AM_RANGE(0x37e4, 0x37e7) AM_WRITE(trs80_cassunit_w) AM_RANGE(0x37e8, 0x37eb) AM_READWRITE(trs80_printer_r, trs80_printer_w) AM_RANGE(0x37ec, 0x37ec) AM_READ(trs80_wd179x_r) - AM_RANGE(0x37ec, 0x37ec) AM_DEVWRITE("fdc", fd1793_t, cmd_w) - AM_RANGE(0x37ed, 0x37ed) AM_DEVREADWRITE("fdc", fd1793_t, track_r, track_w) - AM_RANGE(0x37ee, 0x37ee) AM_DEVREADWRITE("fdc", fd1793_t, sector_r, sector_w) - AM_RANGE(0x37ef, 0x37ef) AM_DEVREADWRITE("fdc", fd1793_t, data_r, data_w) + AM_RANGE(0x37ec, 0x37ec) AM_DEVWRITE("fdc", fd1793_device, cmd_w) + AM_RANGE(0x37ed, 0x37ed) AM_DEVREADWRITE("fdc", fd1793_device, track_r, track_w) + AM_RANGE(0x37ee, 0x37ee) AM_DEVREADWRITE("fdc", fd1793_device, sector_r, sector_w) + AM_RANGE(0x37ef, 0x37ef) AM_DEVREADWRITE("fdc", fd1793_device, data_r, data_w) AM_RANGE(0x3800, 0x38ff) AM_MIRROR(0x300) AM_READ(trs80_keyboard_r) AM_RANGE(0x3c00, 0x3fff) AM_READWRITE(trs80_videoram_r, trs80_videoram_w) AM_SHARE("videoram") AM_RANGE(0x4000, 0xffff) AM_RAM @@ -220,10 +220,10 @@ static ADDRESS_MAP_START( model3_io, AS_IO, 8, trs80_state ) AM_RANGE(0xeb, 0xeb) AM_READWRITE(trs80m4_eb_r, trs80m4_eb_w) AM_RANGE(0xec, 0xef) AM_READWRITE(trs80m4_ec_r, trs80m4_ec_w) AM_RANGE(0xf0, 0xf0) AM_READ(trs80_wd179x_r) - AM_RANGE(0xf0, 0xf0) AM_DEVWRITE("fdc", fd1793_t, cmd_w) - AM_RANGE(0xf1, 0xf1) AM_DEVREADWRITE("fdc", fd1793_t, track_r, track_w) - AM_RANGE(0xf2, 0xf2) AM_DEVREADWRITE("fdc", fd1793_t, sector_r, sector_w) - AM_RANGE(0xf3, 0xf3) AM_DEVREADWRITE("fdc", fd1793_t, data_r, data_w) + AM_RANGE(0xf0, 0xf0) AM_DEVWRITE("fdc", fd1793_device, cmd_w) + AM_RANGE(0xf1, 0xf1) AM_DEVREADWRITE("fdc", fd1793_device, track_r, track_w) + AM_RANGE(0xf2, 0xf2) AM_DEVREADWRITE("fdc", fd1793_device, sector_r, sector_w) + AM_RANGE(0xf3, 0xf3) AM_DEVREADWRITE("fdc", fd1793_device, data_r, data_w) AM_RANGE(0xf4, 0xf4) AM_WRITE(trs80m4_f4_w) AM_RANGE(0xf8, 0xfb) AM_READWRITE(trs80_printer_r, trs80_printer_w) AM_RANGE(0xfc, 0xff) AM_READWRITE(trs80m4_ff_r, trs80m4_ff_w) @@ -243,10 +243,10 @@ static ADDRESS_MAP_START( model4_io, AS_IO, 8, trs80_state ) AM_RANGE(0xeb, 0xeb) AM_READWRITE(trs80m4_eb_r, trs80m4_eb_w) AM_RANGE(0xec, 0xef) AM_READWRITE(trs80m4_ec_r, trs80m4_ec_w) AM_RANGE(0xf0, 0xf0) AM_READ(trs80_wd179x_r) - AM_RANGE(0xf0, 0xf0) AM_DEVWRITE("fdc", fd1793_t, cmd_w) - AM_RANGE(0xf1, 0xf1) AM_DEVREADWRITE("fdc", fd1793_t, track_r, track_w) - AM_RANGE(0xf2, 0xf2) AM_DEVREADWRITE("fdc", fd1793_t, sector_r, sector_w) - AM_RANGE(0xf3, 0xf3) AM_DEVREADWRITE("fdc", fd1793_t, data_r, data_w) + AM_RANGE(0xf0, 0xf0) AM_DEVWRITE("fdc", fd1793_device, cmd_w) + AM_RANGE(0xf1, 0xf1) AM_DEVREADWRITE("fdc", fd1793_device, track_r, track_w) + AM_RANGE(0xf2, 0xf2) AM_DEVREADWRITE("fdc", fd1793_device, sector_r, sector_w) + AM_RANGE(0xf3, 0xf3) AM_DEVREADWRITE("fdc", fd1793_device, data_r, data_w) AM_RANGE(0xf4, 0xf4) AM_WRITE(trs80m4_f4_w) AM_RANGE(0xf8, 0xfb) AM_READWRITE(trs80_printer_r, trs80_printer_w) AM_RANGE(0xfc, 0xff) AM_READWRITE(trs80m4_ff_r, trs80m4_ff_w) @@ -267,10 +267,10 @@ static ADDRESS_MAP_START( model4p_io, AS_IO, 8, trs80_state ) AM_RANGE(0xeb, 0xeb) AM_READWRITE(trs80m4_eb_r, trs80m4_eb_w) AM_RANGE(0xec, 0xef) AM_READWRITE(trs80m4_ec_r, trs80m4_ec_w) AM_RANGE(0xf0, 0xf0) AM_READ(trs80_wd179x_r) - AM_RANGE(0xf0, 0xf0) AM_DEVWRITE("fdc", fd1793_t, cmd_w) - AM_RANGE(0xf1, 0xf1) AM_DEVREADWRITE("fdc", fd1793_t, track_r, track_w) - AM_RANGE(0xf2, 0xf2) AM_DEVREADWRITE("fdc", fd1793_t, sector_r, sector_w) - AM_RANGE(0xf3, 0xf3) AM_DEVREADWRITE("fdc", fd1793_t, data_r, data_w) + AM_RANGE(0xf0, 0xf0) AM_DEVWRITE("fdc", fd1793_device, cmd_w) + AM_RANGE(0xf1, 0xf1) AM_DEVREADWRITE("fdc", fd1793_device, track_r, track_w) + AM_RANGE(0xf2, 0xf2) AM_DEVREADWRITE("fdc", fd1793_device, sector_r, sector_w) + AM_RANGE(0xf3, 0xf3) AM_DEVREADWRITE("fdc", fd1793_device, data_r, data_w) AM_RANGE(0xf4, 0xf4) AM_WRITE(trs80m4_f4_w) AM_RANGE(0xf8, 0xfb) AM_READWRITE(trs80_printer_r, trs80_printer_w) AM_RANGE(0xfc, 0xff) AM_READWRITE(trs80m4_ff_r, trs80m4_ff_w) @@ -292,10 +292,10 @@ static ADDRESS_MAP_START( meritum_io, AS_IO, 8, trs80_state ) // eg. port F0 should be 5, port F2 should have bit 3 set. //AM_RANGE(0x03, 0x03) unknown AM_RANGE(0xf0, 0xf0) AM_READ(trs80_wd179x_r) - AM_RANGE(0xf0, 0xf0) AM_DEVWRITE("fdc", fd1793_t, cmd_w) - AM_RANGE(0xf1, 0xf1) AM_DEVREADWRITE("fdc", fd1793_t, track_r, track_w) - AM_RANGE(0xf2, 0xf2) AM_DEVREADWRITE("fdc", fd1793_t, sector_r, sector_w) - AM_RANGE(0xf3, 0xf3) AM_DEVREADWRITE("fdc", fd1793_t, data_r, data_w) + AM_RANGE(0xf0, 0xf0) AM_DEVWRITE("fdc", fd1793_device, cmd_w) + AM_RANGE(0xf1, 0xf1) AM_DEVREADWRITE("fdc", fd1793_device, track_r, track_w) + AM_RANGE(0xf2, 0xf2) AM_DEVREADWRITE("fdc", fd1793_device, sector_r, sector_w) + AM_RANGE(0xf3, 0xf3) AM_DEVREADWRITE("fdc", fd1793_device, data_r, data_w) AM_RANGE(0xf4, 0xf4) AM_WRITE(trs80m4_f4_w) AM_RANGE(0xf8, 0xfb) AM_READWRITE(trs80_printer_r, trs80_printer_w) //AM_RANGE(0xfc, 0xfd) unknown @@ -570,7 +570,7 @@ static SLOT_INTERFACE_START( trs80_floppies ) SLOT_INTERFACE_END -static MACHINE_CONFIG_START( trs80, trs80_state ) // the original model I, level I, with no extras +static MACHINE_CONFIG_START( trs80 ) // the original model I, level I, with no extras /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 1796000) /* 1.796 MHz */ MCFG_CPU_PROGRAM_MAP(trs80_map) @@ -924,17 +924,17 @@ DRIVER_INIT_MEMBER(trs80_state,lnw80) m_p_videoram.set_target(memregion("maincpu")->base()+0x4000,m_p_videoram.bytes()); } -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ -COMP( 1977, trs80, 0, 0, trs80, trs80, trs80_state, trs80, "Tandy Radio Shack", "TRS-80 Model I (Level I Basic)", 0 ) -COMP( 1978, trs80l2, trs80, 0, model1, trs80, trs80_state, trs80l2, "Tandy Radio Shack", "TRS-80 Model I (Level II Basic)", 0 ) -COMP( 1983, radionic, trs80, 0, radionic, trs80, trs80_state, trs80, "Komtek", "Radionic", 0 ) -COMP( 1980, sys80, trs80, 0, sys80, trs80, trs80_state, trs80l2, "EACA Computers Ltd", "System-80", 0 ) -COMP( 1981, lnw80, trs80, 0, lnw80, trs80m3, trs80_state, lnw80, "LNW Research", "LNW-80", 0 ) -COMP( 1980, trs80m3, trs80, 0, model3, trs80m3, trs80_state, trs80m4, "Tandy Radio Shack", "TRS-80 Model III", 0 ) -COMP( 1980, trs80m4, trs80, 0, model4, trs80m3, trs80_state, trs80m4, "Tandy Radio Shack", "TRS-80 Model 4", 0 ) -COMP( 1983, trs80m4p, trs80, 0, model4p, trs80m3, trs80_state, trs80m4p, "Tandy Radio Shack", "TRS-80 Model 4P", 0 ) -COMP( 1983, ht1080z, trs80, 0, ht1080z, trs80, trs80_state, trs80l2, "Hiradastechnika Szovetkezet", "HT-1080Z Series I", 0 ) -COMP( 1984, ht1080z2, trs80, 0, ht1080z, trs80, trs80_state, trs80l2, "Hiradastechnika Szovetkezet", "HT-1080Z Series II", 0 ) -COMP( 1985, ht108064, trs80, 0, ht1080z, trs80, trs80_state, trs80, "Hiradastechnika Szovetkezet", "HT-1080Z/64", 0 ) -COMP( 1985, meritum, trs80, 0, meritum, trs80, trs80_state, trs80l2, "Mera-Elzab", "Meritum I (Model 2)", 0 ) -COMP( 1985, meritum_net, trs80, 0, meritum, trs80, trs80_state, trs80l2, "Mera-Elzab", "Meritum I (Model 2) (network)", 0 ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1977, trs80, 0, 0, trs80, trs80, trs80_state, trs80, "Tandy Radio Shack", "TRS-80 Model I (Level I Basic)", 0 ) +COMP( 1978, trs80l2, trs80, 0, model1, trs80, trs80_state, trs80l2, "Tandy Radio Shack", "TRS-80 Model I (Level II Basic)", 0 ) +COMP( 1983, radionic, trs80, 0, radionic, trs80, trs80_state, trs80, "Komtek", "Radionic", 0 ) +COMP( 1980, sys80, trs80, 0, sys80, trs80, trs80_state, trs80l2, "EACA Computers Ltd", "System-80", 0 ) +COMP( 1981, lnw80, trs80, 0, lnw80, trs80m3, trs80_state, lnw80, "LNW Research", "LNW-80", 0 ) +COMP( 1980, trs80m3, trs80, 0, model3, trs80m3, trs80_state, trs80m4, "Tandy Radio Shack", "TRS-80 Model III", 0 ) +COMP( 1980, trs80m4, trs80, 0, model4, trs80m3, trs80_state, trs80m4, "Tandy Radio Shack", "TRS-80 Model 4", 0 ) +COMP( 1983, trs80m4p, trs80, 0, model4p, trs80m3, trs80_state, trs80m4p, "Tandy Radio Shack", "TRS-80 Model 4P", 0 ) +COMP( 1983, ht1080z, trs80, 0, ht1080z, trs80, trs80_state, trs80l2, "Hiradastechnika Szovetkezet", "HT-1080Z Series I", 0 ) +COMP( 1984, ht1080z2, trs80, 0, ht1080z, trs80, trs80_state, trs80l2, "Hiradastechnika Szovetkezet", "HT-1080Z Series II", 0 ) +COMP( 1985, ht108064, trs80, 0, ht1080z, trs80, trs80_state, trs80, "Hiradastechnika Szovetkezet", "HT-1080Z/64", 0 ) +COMP( 1985, meritum, trs80, 0, meritum, trs80, trs80_state, trs80l2, "Mera-Elzab", "Meritum I (Model 2)", 0 ) +COMP( 1985, meritum_net, trs80, 0, meritum, trs80, trs80_state, trs80l2, "Mera-Elzab", "Meritum I (Model 2) (network)", 0 ) diff --git a/src/mame/drivers/trs80m2.cpp b/src/mame/drivers/trs80m2.cpp index 2231afb6e36..3ee4da460dd 100644 --- a/src/mame/drivers/trs80m2.cpp +++ b/src/mame/drivers/trs80m2.cpp @@ -490,7 +490,7 @@ WRITE_LINE_MEMBER( trs80m2_state::kb_clock_w ) m_kbclk = state; } -WRITE8_MEMBER( trs80m2_state::kbd_w ) +void trs80m2_state::kbd_w(u8 data) { // latch key data m_key_data = data; @@ -702,7 +702,7 @@ void trs80m2_state::machine_reset() // MACHINE_CONFIG( trs80m2 ) //------------------------------------------------- -static MACHINE_CONFIG_START( trs80m2, trs80m2_state ) +static MACHINE_CONFIG_START( trs80m2 ) // basic machine hardware MCFG_CPU_ADD(Z80_TAG, Z80, XTAL_8MHz/2) MCFG_Z80_DAISY_CHAIN(trs80m2_daisy_chain) @@ -771,7 +771,7 @@ static MACHINE_CONFIG_START( trs80m2, trs80m2_state ) MCFG_DEVICE_ADD(TRS80M2_KEYBOARD_TAG, TRS80M2_KEYBOARD, 0) MCFG_TRS80M2_KEYBOARD_CLOCK_CALLBACK(WRITELINE(trs80m2_state, kb_clock_w)) MCFG_DEVICE_ADD(KEYBOARD_TAG, GENERIC_KEYBOARD, 0) - MCFG_GENERIC_KEYBOARD_CB(WRITE8(trs80m2_state, kbd_w)) + MCFG_GENERIC_KEYBOARD_CB(PUT(trs80m2_state, kbd_w)) // internal RAM MCFG_RAM_ADD(RAM_TAG) @@ -787,7 +787,7 @@ MACHINE_CONFIG_END // MACHINE_CONFIG( trs80m16 ) //------------------------------------------------- -static MACHINE_CONFIG_START( trs80m16, trs80m16_state ) +static MACHINE_CONFIG_START( trs80m16 ) // basic machine hardware MCFG_CPU_ADD(Z80_TAG, Z80, XTAL_8MHz/2) MCFG_Z80_DAISY_CHAIN(trs80m2_daisy_chain) @@ -863,7 +863,7 @@ static MACHINE_CONFIG_START( trs80m16, trs80m16_state ) MCFG_DEVICE_ADD(TRS80M2_KEYBOARD_TAG, TRS80M2_KEYBOARD, 0) MCFG_TRS80M2_KEYBOARD_CLOCK_CALLBACK(WRITELINE(trs80m2_state, kb_clock_w)) MCFG_DEVICE_ADD(KEYBOARD_TAG, GENERIC_KEYBOARD, 0) - MCFG_GENERIC_KEYBOARD_CB(WRITE8(trs80m2_state, kbd_w)) + MCFG_GENERIC_KEYBOARD_CB(PUT(trs80m2_state, kbd_w)) // internal RAM MCFG_RAM_ADD(RAM_TAG) @@ -950,9 +950,9 @@ ROM_END // SYSTEM DRIVERS //************************************************************************** -// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS -COMP( 1979, trs80m2, 0, 0, trs80m2, trs80m2, driver_device, 0, "Tandy Radio Shack", "TRS-80 Model II", MACHINE_NO_SOUND_HW | MACHINE_IMPERFECT_KEYBOARD ) -COMP( 1982, trs80m16, trs80m2, 0, trs80m16, trs80m2, driver_device, 0, "Tandy Radio Shack", "TRS-80 Model 16", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW | MACHINE_IMPERFECT_KEYBOARD ) -//COMP( 1983, trs80m12, trs80m2, 0, trs80m16, trs80m2, driver_device, 0, "Tandy Radio Shack", "TRS-80 Model 12", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW | MACHINE_IMPERFECT_KEYBOARD ) -//COMP( 1984, trs80m16b,trs80m2, 0, trs80m16, trs80m2, driver_device, 0, "Tandy Radio Shack", "TRS-80 Model 16B", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW | MACHINE_IMPERFECT_KEYBOARD ) -//COMP( 1985, tandy6k, trs80m2, 0, tandy6k, trs80m2, driver_device, 0, "Tandy Radio Shack", "Tandy 6000 HD", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW | MACHINE_IMPERFECT_KEYBOARD ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1979, trs80m2, 0, 0, trs80m2, trs80m2, trs80m2_state, 0, "Tandy Radio Shack", "TRS-80 Model II", MACHINE_NO_SOUND_HW | MACHINE_IMPERFECT_KEYBOARD ) +COMP( 1982, trs80m16, trs80m2, 0, trs80m16, trs80m2, trs80m16_state, 0, "Tandy Radio Shack", "TRS-80 Model 16", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW | MACHINE_IMPERFECT_KEYBOARD ) +//COMP( 1983, trs80m12, trs80m2, 0, trs80m16, trs80m2, trs80m16_state, 0, "Tandy Radio Shack", "TRS-80 Model 12", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW | MACHINE_IMPERFECT_KEYBOARD ) +//COMP( 1984, trs80m16b,trs80m2, 0, trs80m16, trs80m2, trs80m16_state, 0, "Tandy Radio Shack", "TRS-80 Model 16B", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW | MACHINE_IMPERFECT_KEYBOARD ) +//COMP( 1985, tandy6k, trs80m2, 0, tandy6k, trs80m2, tandy6k_state, 0, "Tandy Radio Shack", "Tandy 6000 HD", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW | MACHINE_IMPERFECT_KEYBOARD ) diff --git a/src/mame/drivers/truco.cpp b/src/mame/drivers/truco.cpp index 24dee6ebd60..cf2bb59b5b6 100644 --- a/src/mame/drivers/truco.cpp +++ b/src/mame/drivers/truco.cpp @@ -416,7 +416,7 @@ INTERRUPT_GEN_MEMBER(truco_state::interrupt) * Machine Driver * *******************************************/ -static MACHINE_CONFIG_START( truco, truco_state ) +static MACHINE_CONFIG_START( truco ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809, CPU_CLOCK) @@ -471,5 +471,5 @@ ROM_START( truco ) ROM_LOAD( "truco.u2", 0x0c000, 0x4000, CRC(ff355750) SHA1(1538f20b1919928ffca439e4046a104ddfbc756c) ) ROM_END -/* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS */ -GAME( 198?, truco, 0, truco, truco, driver_device, 0, ROT0, "Playtronic SRL", "Truco-Tron", MACHINE_SUPPORTS_SAVE ) +// YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS +GAME( 198?, truco, 0, truco, truco, truco_state, 0, ROT0, "Playtronic SRL", "Truco-Tron", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/trucocl.cpp b/src/mame/drivers/trucocl.cpp index 7c61b84aaf5..62eb1cd3377 100644 --- a/src/mame/drivers/trucocl.cpp +++ b/src/mame/drivers/trucocl.cpp @@ -142,7 +142,7 @@ INTERRUPT_GEN_MEMBER(trucocl_state::trucocl_interrupt) } -static MACHINE_CONFIG_START( trucocl, trucocl_state ) +static MACHINE_CONFIG_START( trucocl ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 18432000/6) MCFG_CPU_PROGRAM_MAP(main_map) @@ -207,6 +207,5 @@ DRIVER_INIT_MEMBER(trucocl_state,trucocl) /******************************************************************************/ -/* YEAR NAME PARENT MACHINE INPUT INIT MONITOR */ - +// YEAR NAME PARENT MACHINE INPUT STATE INIT MONITOR GAME( 1991, trucocl, 0, trucocl, trucocl, trucocl_state, trucocl, ROT0, "Miky SRL", "Truco Clemente", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/trvmadns.cpp b/src/mame/drivers/trvmadns.cpp index ea31e27cf16..46461a1de1e 100644 --- a/src/mame/drivers/trvmadns.cpp +++ b/src/mame/drivers/trvmadns.cpp @@ -379,7 +379,7 @@ void trvmadns_state::machine_reset() m_old_data = -1; } -static MACHINE_CONFIG_START( trvmadns, trvmadns_state ) +static MACHINE_CONFIG_START( trvmadns ) MCFG_CPU_ADD("maincpu", Z80, XTAL_10MHz/4) // Most likely 2.5MHz (less likely 5MHz (10MHz/2)) MCFG_CPU_PROGRAM_MAP(cpu_map) MCFG_CPU_IO_MAP(io_map) @@ -463,5 +463,5 @@ ROM_START( trvmadnsa ) // empty space, for 3 roms (each one max 0x8000 bytes long) ROM_END -GAME( 1985, trvmadns, 0, trvmadns, trvmadns, driver_device, 0, ROT0, "Thunderhead Inc.", "Trivia Madness - Series A Question set", MACHINE_WRONG_COLORS | MACHINE_NOT_WORKING ) -GAME( 1985, trvmadnsa, trvmadns, trvmadns, trvmadns, driver_device, 0, ROT0, "Thunderhead Inc.", "Trivia Madness - Series B Question set", MACHINE_WRONG_COLORS | MACHINE_NOT_WORKING ) +GAME( 1985, trvmadns, 0, trvmadns, trvmadns, trvmadns_state, 0, ROT0, "Thunderhead Inc.", "Trivia Madness - Series A Question set", MACHINE_WRONG_COLORS | MACHINE_NOT_WORKING ) +GAME( 1985, trvmadnsa, trvmadns, trvmadns, trvmadns, trvmadns_state, 0, ROT0, "Thunderhead Inc.", "Trivia Madness - Series B Question set", MACHINE_WRONG_COLORS | MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/trvquest.cpp b/src/mame/drivers/trvquest.cpp index 0c5eb0f4544..49c05ddde00 100644 --- a/src/mame/drivers/trvquest.cpp +++ b/src/mame/drivers/trvquest.cpp @@ -177,7 +177,7 @@ INTERRUPT_GEN_MEMBER(gameplan_state::trvquest_interrupt) m_via_2->write_ca1(0); } -static MACHINE_CONFIG_START( trvquest, gameplan_state ) +static MACHINE_CONFIG_START( trvquest ) MCFG_CPU_ADD("maincpu", M6809,XTAL_6MHz/4) MCFG_CPU_PROGRAM_MAP(cpu_map) @@ -238,4 +238,4 @@ ROM_START( trvquest ) ROM_LOAD( "roma", 0x16000, 0x2000, CRC(b4bcaf33) SHA1(c6b08fb8d55b2834d0c6c5baff9f544c795e4c15) ) ROM_END -GAME( 1984, trvquest, 0, trvquest, trvquest, driver_device, 0, ROT90, "Sunn / Techstar", "Trivia Quest", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, trvquest, 0, trvquest, trvquest, gameplan_state, 0, ROT90, "Sunn / Techstar", "Trivia Quest", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/tryout.cpp b/src/mame/drivers/tryout.cpp index 24887efe4cb..274154a2413 100644 --- a/src/mame/drivers/tryout.cpp +++ b/src/mame/drivers/tryout.cpp @@ -189,7 +189,7 @@ static GFXDECODE_START( tryout ) GFXDECODE_ENTRY( nullptr, 0, vramlayout, 0, 4 ) GFXDECODE_END -static MACHINE_CONFIG_START( tryout, tryout_state ) +static MACHINE_CONFIG_START( tryout ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, 2000000) /* ? */ MCFG_CPU_PROGRAM_MAP(main_cpu) diff --git a/src/mame/drivers/ts802.cpp b/src/mame/drivers/ts802.cpp index dd8efa0aec2..bb7ea828b83 100644 --- a/src/mame/drivers/ts802.cpp +++ b/src/mame/drivers/ts802.cpp @@ -56,7 +56,7 @@ public: DECLARE_WRITE8_MEMBER(memory_write_byte); DECLARE_READ8_MEMBER(io_read_byte); DECLARE_WRITE8_MEMBER(io_write_byte); - DECLARE_WRITE8_MEMBER( kbd_put ); + void kbd_put(u8 data); private: uint8_t m_term_data; address_space *m_mem; @@ -88,7 +88,7 @@ static ADDRESS_MAP_START(ts802_io, AS_IO, 8, ts802_state) // 10: Z80 DMA AM_RANGE(0x10, 0x13) AM_DEVREADWRITE("z80dma", z80dma_device, read, write) // 14-17: WD 1793 - AM_RANGE(0x14, 0x17) AM_DEVREADWRITE("fdc", fd1793_t, read, write) + AM_RANGE(0x14, 0x17) AM_DEVREADWRITE("fdc", fd1793_device, read, write) // 18: floppy misc. AM_RANGE(0x18, 0x1c) AM_WRITE(port18_w) // 20-23: Z80 SIO #2 @@ -153,7 +153,7 @@ READ8_MEMBER( ts802_state::port0d_r ) return ret; } -WRITE8_MEMBER( ts802_state::kbd_put ) +void ts802_state::kbd_put(u8 data) { m_term_data = data; } @@ -182,7 +182,7 @@ DRIVER_INIT_MEMBER( ts802_state, ts802 ) membank("bankw0")->configure_entry(0, &main[0x0000]); } -static MACHINE_CONFIG_START( ts802, ts802_state ) +static MACHINE_CONFIG_START( ts802 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_16MHz / 4) MCFG_CPU_PROGRAM_MAP(ts802_mem) @@ -192,7 +192,7 @@ static MACHINE_CONFIG_START( ts802, ts802_state ) /* Devices */ MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0) - MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(ts802_state, kbd_put)) + MCFG_GENERIC_TERMINAL_KEYBOARD_CB(PUT(ts802_state, kbd_put)) MCFG_DEVICE_ADD("z80dma", Z80DMA, XTAL_16MHz / 4) MCFG_Z80DMA_OUT_BUSREQ_CB(INPUTLINE("maincpu", INPUT_LINE_HALT)) @@ -237,6 +237,6 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS COMP( 1982, ts802, 0, 0, ts802, ts802, ts802_state, ts802, "Televideo", "TS802", MACHINE_IS_SKELETON ) COMP( 1982, ts802h, ts802, 0, ts802, ts802, ts802_state, ts802, "Televideo", "TS802H", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/ts803.cpp b/src/mame/drivers/ts803.cpp index 253f9f0c9dd..263fb10adb9 100644 --- a/src/mame/drivers/ts803.cpp +++ b/src/mame/drivers/ts803.cpp @@ -107,7 +107,7 @@ private: required_device m_palette; required_device m_maincpu; - required_device m_fdc; + required_device m_fdc; required_device m_floppy0; required_device m_floppy1; //required_device m_sti; @@ -151,7 +151,7 @@ static ADDRESS_MAP_START(ts803_io, AS_IO, 8, ts803_state) //AM_RANGE(0x20, 0x2f) AM_DEVREADWRITE("sti", z80sti_device, read, write) AM_RANGE(0x30, 0x33) AM_DEVREADWRITE("dart", z80dart_device, cd_ba_r, cd_ba_w) - AM_RANGE(0x80, 0x83) AM_DEVREADWRITE("fdc", fd1793_t, read, write) + AM_RANGE(0x80, 0x83) AM_DEVREADWRITE("fdc", fd1793_device, read, write) AM_RANGE(0x90, 0x90) AM_READWRITE(disk_0_control_r,disk_0_control_w) //AM_RANGE(0x91, 0xff) AM_READWRITE(ts803_porthi_r, ts803_porthi_w) @@ -491,7 +491,7 @@ static const z80_daisy_config daisy_chain[] = { nullptr } }; -static MACHINE_CONFIG_START( ts803, ts803_state ) +static MACHINE_CONFIG_START( ts803 ) MCFG_CPU_ADD("maincpu", Z80, XTAL_16MHz/4) MCFG_CPU_PROGRAM_MAP(ts803_mem) MCFG_CPU_IO_MAP(ts803_io) @@ -553,5 +553,5 @@ ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS COMP(1983, ts803h, 0, 0, ts803, ts803, ts803_state, ts803, "Televideo", "TS803H", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/ts816.cpp b/src/mame/drivers/ts816.cpp index 59ccce42735..12e7aa78b38 100644 --- a/src/mame/drivers/ts816.cpp +++ b/src/mame/drivers/ts816.cpp @@ -26,7 +26,7 @@ public: { } - DECLARE_WRITE8_MEMBER(kbd_put); + void kbd_put(u8 data); DECLARE_READ8_MEMBER(keyin_r); DECLARE_READ8_MEMBER(status_r); @@ -74,7 +74,7 @@ READ8_MEMBER( ts816_state::status_r ) return 4; } -WRITE8_MEMBER( ts816_state::kbd_put ) +void ts816_state::kbd_put(u8 data) { m_term_data = data; m_status = 3; @@ -86,7 +86,7 @@ void ts816_state::machine_reset() m_status = 1; } -static MACHINE_CONFIG_START( ts816, ts816_state ) +static MACHINE_CONFIG_START( ts816 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 4000000) MCFG_CPU_PROGRAM_MAP(ts816_mem) @@ -94,7 +94,7 @@ static MACHINE_CONFIG_START( ts816, ts816_state ) /* video hardware */ MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0) - MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(ts816_state, kbd_put)) + MCFG_GENERIC_TERMINAL_KEYBOARD_CB(PUT(ts816_state, kbd_put)) MACHINE_CONFIG_END /* ROM definition */ @@ -105,5 +105,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ -COMP( 1980, ts816, 0, 0, ts816, ts816, driver_device, 0, "Televideo", "TS816", MACHINE_IS_SKELETON ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1980, ts816, 0, 0, ts816, ts816, ts816_state, 0, "Televideo", "TS816", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/tsamurai.cpp b/src/mame/drivers/tsamurai.cpp index 391f10a70c6..757ef186d49 100644 --- a/src/mame/drivers/tsamurai.cpp +++ b/src/mame/drivers/tsamurai.cpp @@ -706,7 +706,7 @@ GFXDECODE_END /*******************************************************************************/ -static MACHINE_CONFIG_START( tsamurai, tsamurai_state ) +static MACHINE_CONFIG_START( tsamurai ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_24MHz/8) @@ -749,7 +749,7 @@ static MACHINE_CONFIG_START( tsamurai, tsamurai_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( vsgongf, tsamurai_state ) +static MACHINE_CONFIG_START( vsgongf ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_24MHz/8) @@ -790,7 +790,7 @@ static MACHINE_CONFIG_START( vsgongf, tsamurai_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( m660, tsamurai_state ) +static MACHINE_CONFIG_START( m660 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_24MHz/8) @@ -1273,20 +1273,20 @@ ROM_START( ringfgt2 ) ROM_LOAD( "clr.6p", 0x200, 0x0100, CRC(0e4fd17a) SHA1(d4e32bd9dd903177af61f77976a25c5db1467bba) ) ROM_END -GAME( 1984, vsgongf, 0, vsgongf, vsgongf, driver_device, 0, ROT90, "Kaneko", "VS Gong Fight", MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE | MACHINE_UNEMULATED_PROTECTION ) -GAME( 1984, ringfgt, vsgongf, vsgongf, vsgongf, driver_device, 0, ROT90, "Kaneko (Taito license)", "Ring Fighter (set 1)", MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE ) -GAME( 1984, ringfgt2, vsgongf, vsgongf, vsgongf, driver_device, 0, ROT90, "Kaneko (Taito license)", "Ring Fighter (set 2)", MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE ) +GAME( 1984, vsgongf, 0, vsgongf, vsgongf, tsamurai_state, 0, ROT90, "Kaneko", "VS Gong Fight", MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE | MACHINE_UNEMULATED_PROTECTION ) +GAME( 1984, ringfgt, vsgongf, vsgongf, vsgongf, tsamurai_state, 0, ROT90, "Kaneko (Taito license)", "Ring Fighter (set 1)", MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE ) +GAME( 1984, ringfgt2, vsgongf, vsgongf, vsgongf, tsamurai_state, 0, ROT90, "Kaneko (Taito license)", "Ring Fighter (set 2)", MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE ) -GAME( 1985, tsamurai, 0, tsamurai, tsamurai, driver_device, 0, ROT90, "Kaneko / Taito", "Samurai Nihon-Ichi (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, tsamurai2,tsamurai, tsamurai, tsamurai, driver_device, 0, ROT90, "Kaneko / Taito", "Samurai Nihon-Ichi (set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, tsamuraih,tsamurai, tsamurai, tsamurai, driver_device, 0, ROT90, "bootleg", "Samurai Nihon-Ichi (bootleg, harder)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, tsamurai, 0, tsamurai, tsamurai, tsamurai_state, 0, ROT90, "Kaneko / Taito", "Samurai Nihon-Ichi (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, tsamurai2, tsamurai, tsamurai, tsamurai, tsamurai_state, 0, ROT90, "Kaneko / Taito", "Samurai Nihon-Ichi (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, tsamuraih, tsamurai, tsamurai, tsamurai, tsamurai_state, 0, ROT90, "bootleg", "Samurai Nihon-Ichi (bootleg, harder)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, ladymstr, 0, tsamurai, ladymstr, driver_device, 0, ROT90, "Kaneko / Taito", "Lady Master of Kung Fu", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, nunchaku, ladymstr, tsamurai, nunchaku, driver_device, 0, ROT90, "Kaneko / Taito", "Nunchackun", MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE ) +GAME( 1985, ladymstr, 0, tsamurai, ladymstr, tsamurai_state, 0, ROT90, "Kaneko / Taito", "Lady Master of Kung Fu", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, nunchaku, ladymstr, tsamurai, nunchaku, tsamurai_state, 0, ROT90, "Kaneko / Taito", "Nunchackun", MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE ) -GAME( 1985, yamagchi, 0, tsamurai, yamagchi, driver_device, 0, ROT90, "Kaneko / Taito", "Go Go Mr. Yamaguchi / Yuke Yuke Yamaguchi-kun", MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE ) +GAME( 1985, yamagchi, 0, tsamurai, yamagchi, tsamurai_state, 0, ROT90, "Kaneko / Taito", "Go Go Mr. Yamaguchi / Yuke Yuke Yamaguchi-kun", MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE ) -GAME( 1986, m660, 0, m660, m660, driver_device, 0, ROT90, "Wood Place Inc. (Taito America Corporation license)", "Mission 660 (US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, m660j, m660, m660, m660, driver_device, 0, ROT90, "Wood Place Inc. (Taito Corporation license)", "Mission 660 (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, m660b, m660, m660, m660, driver_device, 0, ROT90, "bootleg", "Mission 660 (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, alphaxz, m660, m660, m660, driver_device, 0, ROT90, "Ed Co. Ltd. (Wood Place Inc. license)", "The Alphax Z (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, m660, 0, m660, m660, tsamurai_state, 0, ROT90, "Wood Place Inc. (Taito America Corporation license)", "Mission 660 (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, m660j, m660, m660, m660, tsamurai_state, 0, ROT90, "Wood Place Inc. (Taito Corporation license)", "Mission 660 (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, m660b, m660, m660, m660, tsamurai_state, 0, ROT90, "bootleg", "Mission 660 (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, alphaxz, m660, m660, m660, tsamurai_state, 0, ROT90, "Ed Co. Ltd. (Wood Place Inc. license)", "The Alphax Z (Japan)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/tsispch.cpp b/src/mame/drivers/tsispch.cpp index 5478f1f124b..850f6f35297 100644 --- a/src/mame/drivers/tsispch.cpp +++ b/src/mame/drivers/tsispch.cpp @@ -116,8 +116,6 @@ #include "cpu/i86/i86.h" #include "cpu/upd7725/upd7725.h" #include "machine/i8251.h" -#include "machine/pic8259.h" -#include "machine/terminal.h" #include "sound/dac.h" #include "sound/volt_reg.h" #include "speaker.h" @@ -150,11 +148,6 @@ WRITE_LINE_MEMBER(tsispch_state::i8251_txrdy_int) m_pic->ir3_w(state); } -WRITE8_MEMBER( tsispch_state::i8251_rxd ) -{ - m_uart->receive_character(data); -} - /***************************************************************************** LED/dipswitch stuff *****************************************************************************/ @@ -379,7 +372,7 @@ INPUT_PORTS_END /****************************************************************************** Machine Drivers ******************************************************************************/ -static MACHINE_CONFIG_START( prose2k, tsispch_state ) +static MACHINE_CONFIG_START( prose2k ) /* basic machine hardware */ /* There are two crystals on the board: a 24MHz xtal at Y2 and a 16MHz xtal at Y1 */ MCFG_CPU_ADD("maincpu", I8086, 8000000) /* VERIFIED clock, unknown divider */ @@ -413,7 +406,7 @@ static MACHINE_CONFIG_START( prose2k, tsispch_state ) 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_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0) - MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(tsispch_state, i8251_rxd)) + MCFG_GENERIC_TERMINAL_KEYBOARD_CB(DEVPUT("i8251a_u15", i8251_device, receive_character)) MACHINE_CONFIG_END /****************************************************************************** @@ -548,6 +541,6 @@ ROM_START( prose2ko ) Drivers ******************************************************************************/ -/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ -COMP( 1987, prose2k, 0, 0, prose2k, prose2k, tsispch_state, prose2k, "Telesensory Systems Inc/Speech Plus", "Prose 2000/2020 v3.4.1", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -COMP( 1982, prose2ko, prose2k, 0, prose2k, prose2k, tsispch_state, prose2k, "Telesensory Systems Inc/Speech Plus", "Prose 2000/2020 v1.1", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1987, prose2k, 0, 0, prose2k, prose2k, tsispch_state, prose2k, "Telesensory Systems Inc/Speech Plus", "Prose 2000/2020 v3.4.1", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +COMP( 1982, prose2ko, prose2k, 0, prose2k, prose2k, tsispch_state, prose2k, "Telesensory Systems Inc/Speech Plus", "Prose 2000/2020 v1.1", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/ttchamp.cpp b/src/mame/drivers/ttchamp.cpp index 0581ac6ddb9..00bab4887ea 100644 --- a/src/mame/drivers/ttchamp.cpp +++ b/src/mame/drivers/ttchamp.cpp @@ -638,7 +638,7 @@ INTERRUPT_GEN_MEMBER(ttchamp_state::irq)/* right? */ device.execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE); } -static MACHINE_CONFIG_START( ttchamp, ttchamp_state ) +static MACHINE_CONFIG_START( ttchamp ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", V30, 8000000) MCFG_CPU_PROGRAM_MAP(ttchamp_map) @@ -660,7 +660,7 @@ static MACHINE_CONFIG_START( ttchamp, ttchamp_state ) MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", 8000000/8, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", 8000000/8, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -695,5 +695,5 @@ ROM_END // only the graphics differ between the two sets, code section is the same -GAME( 1995, ttchamp, 0, ttchamp, ttchamp, driver_device, 0, ROT0, "Gamart", "Table Tennis Champions", MACHINE_SUPPORTS_SAVE ) // this has various advertising boards, including 'Electronic Devices' and 'Deniam' -GAME( 1995, ttchampa,ttchamp, ttchamp, ttchamp, driver_device, 0, ROT0, "Gamart (Palencia Elektronik license)", "Table Tennis Champions (Palencia Elektronik license)", MACHINE_SUPPORTS_SAVE ) // this only has Palencia Elektronik advertising boards +GAME( 1995, ttchamp, 0, ttchamp, ttchamp, ttchamp_state, 0, ROT0, "Gamart", "Table Tennis Champions", MACHINE_SUPPORTS_SAVE ) // this has various advertising boards, including 'Electronic Devices' and 'Deniam' +GAME( 1995, ttchampa,ttchamp, ttchamp, ttchamp, ttchamp_state, 0, ROT0, "Gamart (Palencia Elektronik license)", "Table Tennis Champions (Palencia Elektronik license)", MACHINE_SUPPORTS_SAVE ) // this only has Palencia Elektronik advertising boards diff --git a/src/mame/drivers/tubep.cpp b/src/mame/drivers/tubep.cpp index 610717c3d81..dd179f0fe1f 100644 --- a/src/mame/drivers/tubep.cpp +++ b/src/mame/drivers/tubep.cpp @@ -562,11 +562,9 @@ WRITE8_MEMBER(tubep_state::rjammer_voice_frequency_select_w) /* bit 0 of data selects voice frequency on MSM5205 */ // 0 -4 KHz; 1- 8KHz if (data & 1) - m_msm->playmode_w(MSM5205_S48_4B); /* 8 KHz */ + m_msm->playmode_w(msm5205_device::S48_4B); /* 8 KHz */ else - m_msm->playmode_w(MSM5205_S96_4B); /* 4 KHz */ - - return; + m_msm->playmode_w(msm5205_device::S96_4B); /* 4 KHz */ } @@ -857,7 +855,7 @@ INPUT_PORTS_END * *************************************/ -static MACHINE_CONFIG_START( tubep, tubep_state ) +static MACHINE_CONFIG_START( tubep ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80,16000000 / 4) /* 4 MHz */ @@ -920,7 +918,7 @@ static MACHINE_CONFIG_DERIVED( tubepb, tubep ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( rjammer, tubep_state ) +static MACHINE_CONFIG_START( rjammer ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80,16000000 / 4) /* 4 MHz */ @@ -974,7 +972,7 @@ static MACHINE_CONFIG_START( rjammer, tubep_state ) MCFG_SOUND_ADD("msm", MSM5205, 384000) MCFG_MSM5205_VCLK_CB(WRITELINE(tubep_state, rjammer_adpcm_vck)) /* VCK function */ - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S48_4B) /* 8 KHz (changes at run time) */ + MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) /* 8 KHz (changes at run time) */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -1174,7 +1172,7 @@ ROM_END * *************************************/ -/* year rom parent machine inp init */ -GAME( 1984, tubep, 0, tubep, tubep, driver_device, 0, ROT0, "Nichibutsu / Fujitek", "Tube Panic", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, tubepb, tubep, tubepb, tubepb, driver_device, 0, ROT0, "bootleg", "Tube Panic (bootleg)", MACHINE_SUPPORTS_SAVE ) +/* year rom parent machine inp state init */ +GAME( 1984, tubep, 0, tubep, tubep, tubep_state, 0, ROT0, "Nichibutsu / Fujitek", "Tube Panic", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, tubepb, tubep, tubepb, tubepb, tubep_state, 0, ROT0, "bootleg", "Tube Panic (bootleg)", MACHINE_SUPPORTS_SAVE ) GAME( 1984, rjammer, 0, rjammer, rjammer, driver_device, 0, ROT0, "Nichibutsu / Alice", "Roller Jammer", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/tugboat.cpp b/src/mame/drivers/tugboat.cpp index b8d88f8cc84..4ef5c6de3bd 100644 --- a/src/mame/drivers/tugboat.cpp +++ b/src/mame/drivers/tugboat.cpp @@ -358,7 +358,7 @@ static GFXDECODE_START( tugboat ) GFXDECODE_END -static MACHINE_CONFIG_START( tugboat, tugboat_state ) +static MACHINE_CONFIG_START( tugboat ) MCFG_CPU_ADD("maincpu", M6502, 2000000) /* 2 MHz ???? */ MCFG_CPU_PROGRAM_MAP(main_map) MCFG_CPU_VBLANK_INT_DRIVER("screen", tugboat_state, nmi_line_pulse) @@ -472,6 +472,6 @@ ROM_START( berenstn ) ROM_END -GAME( 1982, tugboat, 0, tugboat, tugboat, driver_device, 0, ROT90, "Enter-Tech, Ltd.", "Tugboat", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1983, noahsark, 0, tugboat, noahsark, driver_device, 0, ROT90, "Enter-Tech, Ltd.", "Noah's Ark", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1984, berenstn, 0, tugboat, noahsark, driver_device, 0, ROT90, "Enter-Tech, Ltd.", "The Berenstain Bears in Big Paw's Cave", MACHINE_IMPERFECT_GRAPHICS | MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE ) +GAME( 1982, tugboat, 0, tugboat, tugboat, tugboat_state, 0, ROT90, "Enter-Tech, Ltd.", "Tugboat", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1983, noahsark, 0, tugboat, noahsark, tugboat_state, 0, ROT90, "Enter-Tech, Ltd.", "Noah's Ark", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1984, berenstn, 0, tugboat, noahsark, tugboat_state, 0, ROT90, "Enter-Tech, Ltd.", "The Berenstain Bears in Big Paw's Cave", MACHINE_IMPERFECT_GRAPHICS | MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/tumbleb.cpp b/src/mame/drivers/tumbleb.cpp index c800a3e1f25..a0357b522f6 100644 --- a/src/mame/drivers/tumbleb.cpp +++ b/src/mame/drivers/tumbleb.cpp @@ -2041,7 +2041,7 @@ MACHINE_RESET_MEMBER(tumbleb_state,tumbleb) memset(m_control_0, 0, sizeof(m_control_0)); } -static MACHINE_CONFIG_START( tumblepb, tumbleb_state ) +static MACHINE_CONFIG_START( tumblepb ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 14000000) @@ -2074,12 +2074,12 @@ static MACHINE_CONFIG_START( tumblepb, tumbleb_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", 8000000/10, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", 8000000/10, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.70) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( tumbleb2, tumbleb_state ) +static MACHINE_CONFIG_START( tumbleb2 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 14000000) @@ -2112,11 +2112,11 @@ static MACHINE_CONFIG_START( tumbleb2, tumbleb_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", 8000000/10, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", 8000000/10, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.70) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( jumpkids, tumbleb_state ) +static MACHINE_CONFIG_START( jumpkids ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 12000000) @@ -2155,11 +2155,11 @@ static MACHINE_CONFIG_START( jumpkids, tumbleb_state ) MCFG_GENERIC_LATCH_8_ADD("soundlatch") - MCFG_OKIM6295_ADD("oki", 8000000/8, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", 8000000/8, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.70) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( fncywld, tumbleb_state ) +static MACHINE_CONFIG_START( fncywld ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 12000000) @@ -2196,7 +2196,7 @@ static MACHINE_CONFIG_START( fncywld, tumbleb_state ) MCFG_YM2151_ADD("ymsnd", 32220000/9) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) - MCFG_OKIM6295_ADD("oki", 1023924, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki", 1023924, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -2217,7 +2217,7 @@ MACHINE_RESET_MEMBER(tumbleb_state,htchctch) MACHINE_RESET_CALL_MEMBER(tumbleb); } -static MACHINE_CONFIG_START( htchctch, tumbleb_state ) +static MACHINE_CONFIG_START( htchctch ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 15000000) /* verified */ @@ -2261,7 +2261,7 @@ static MACHINE_CONFIG_START( htchctch, tumbleb_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10) /* correct for cookie & bibi and hatch catch, (4096000/4) */ - MCFG_OKIM6295_ADD("oki", 1024000, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", 1024000, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -2276,7 +2276,7 @@ static MACHINE_CONFIG_DERIVED( chokchok, htchctch ) // some PCBs have left factory with a 3.57mhz while some have a 4.096 which matches other games, assuming the former are factory errors // TODO: MAME sound cores doesn't handle on-the-fly sound frequency changes, I guess best action here is to make the sound chip a slot option, // assuming it's worth emulating a factory error in the first place. - MCFG_OKIM6295_REPLACE("oki", 4096000/4, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_REPLACE("oki", 4096000/4, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -2325,7 +2325,7 @@ MACHINE_CONFIG_END -static MACHINE_CONFIG_START( suprtrio, tumbleb_state ) +static MACHINE_CONFIG_START( suprtrio ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 14000000) /* 14mhz should be correct, but lots of sprite flicker later in game */ @@ -2363,11 +2363,11 @@ static MACHINE_CONFIG_START( suprtrio, tumbleb_state ) MCFG_GENERIC_LATCH_8_ADD("soundlatch") - MCFG_OKIM6295_ADD("oki", 875000, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", 875000, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( pangpang, tumbleb_state ) +static MACHINE_CONFIG_START( pangpang ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 14000000) @@ -2400,7 +2400,7 @@ static MACHINE_CONFIG_START( pangpang, tumbleb_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", 8000000/10, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", 8000000/10, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.70) MACHINE_CONFIG_END diff --git a/src/mame/drivers/tumblep.cpp b/src/mame/drivers/tumblep.cpp index f0d237ede43..918d5522ebb 100644 --- a/src/mame/drivers/tumblep.cpp +++ b/src/mame/drivers/tumblep.cpp @@ -280,7 +280,7 @@ void tumblep_state::machine_start() { } -static MACHINE_CONFIG_START( tumblep, tumblep_state ) +static MACHINE_CONFIG_START( tumblep ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 14000000) @@ -331,7 +331,7 @@ static MACHINE_CONFIG_START( tumblep, tumblep_state ) MCFG_SOUND_ROUTE(0, "lspeaker", 0.45) MCFG_SOUND_ROUTE(1, "rspeaker", 0.45) - MCFG_OKIM6295_ADD("oki", 1023924, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki", 1023924, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.50) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.50) MACHINE_CONFIG_END diff --git a/src/mame/drivers/tunhunt.cpp b/src/mame/drivers/tunhunt.cpp index 38430300be4..329b9661578 100644 --- a/src/mame/drivers/tunhunt.cpp +++ b/src/mame/drivers/tunhunt.cpp @@ -268,7 +268,7 @@ GFXDECODE_END * *************************************/ -static MACHINE_CONFIG_START( tunhunt, tunhunt_state ) +static MACHINE_CONFIG_START( tunhunt ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, XTAL_12_096MHz/6) /* ??? */ @@ -393,6 +393,6 @@ ROM_END * *************************************/ -/* rom parent machine inp init */ -GAME( 1979,tunhunt, 0, tunhunt, tunhunt, driver_device, 0, ORIENTATION_SWAP_XY, "Atari", "Tunnel Hunt", MACHINE_SUPPORTS_SAVE ) -GAME( 1981,tunhuntc, tunhunt, tunhunt, tunhunt, driver_device, 0, ORIENTATION_SWAP_XY, "Atari (Centuri license)", "Tunnel Hunt (Centuri)", MACHINE_SUPPORTS_SAVE ) +/* rom parent machine inp state init */ +GAME( 1979,tunhunt, 0, tunhunt, tunhunt, tunhunt_state, 0, ORIENTATION_SWAP_XY, "Atari", "Tunnel Hunt", MACHINE_SUPPORTS_SAVE ) +GAME( 1981,tunhuntc, tunhunt, tunhunt, tunhunt, tunhunt_state, 0, ORIENTATION_SWAP_XY, "Atari (Centuri license)", "Tunnel Hunt (Centuri)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/turbo.cpp b/src/mame/drivers/turbo.cpp index 567af1825b6..ff9236da7c5 100644 --- a/src/mame/drivers/turbo.cpp +++ b/src/mame/drivers/turbo.cpp @@ -835,7 +835,7 @@ GFXDECODE_END * *************************************/ -static MACHINE_CONFIG_START( turbo, turbo_state ) +static MACHINE_CONFIG_START( turbo ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, MASTER_CLOCK/4) @@ -885,7 +885,7 @@ static MACHINE_CONFIG_START( turbo, turbo_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( subroc3d, turbo_state ) +static MACHINE_CONFIG_START( subroc3d ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, MASTER_CLOCK/4) @@ -925,7 +925,7 @@ static MACHINE_CONFIG_START( subroc3d, turbo_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( buckrog, turbo_state ) +static MACHINE_CONFIG_START( buckrog ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, MASTER_CLOCK/4) @@ -1785,16 +1785,16 @@ DRIVER_INIT_MEMBER(turbo_state,turbo_noenc) * *************************************/ -GAMEL( 1981, turbo, 0, turbo, turbo, turbo_state, turbo_noenc, ROT270, "Sega", "Turbo (program 1513-1515)", MACHINE_IMPERFECT_SOUND , layout_turbo ) -GAMEL( 1981, turboa, turbo, turbo, turbo, turbo_state, turbo_enc, ROT270, "Sega", "Turbo (encrypted, program 1262-1264)", MACHINE_IMPERFECT_SOUND , layout_turbo ) -GAMEL( 1981, turbob, turbo, turbo, turbo, turbo_state, turbo_enc, ROT270, "Sega", "Turbo (encrypted, program 1363-1365 rev B)", MACHINE_IMPERFECT_SOUND , layout_turbo ) -GAMEL( 1981, turboc, turbo, turbo, turbo, turbo_state, turbo_enc, ROT270, "Sega", "Turbo (encrypted, program 1363-1365 rev A)", MACHINE_IMPERFECT_SOUND , layout_turbo ) -GAMEL( 1981, turbod, turbo, turbo, turbo, turbo_state, turbo_enc, ROT270, "Sega", "Turbo (encrypted, program 1363-1365)", MACHINE_IMPERFECT_SOUND , layout_turbo ) // but still reports 1262-1264 in the test mode? -GAMEL( 1981, turbobl, turbo, turbo, turbo, turbo_state, turbo_noenc, ROT270, "bootleg", "Indianapolis (bootleg of Turbo)", MACHINE_IMPERFECT_SOUND , layout_turbo ) // decrypted bootleg of a 1262-1264 set +GAMEL( 1981, turbo, 0, turbo, turbo, turbo_state, turbo_noenc, ROT270, "Sega", "Turbo (program 1513-1515)", MACHINE_IMPERFECT_SOUND , layout_turbo ) +GAMEL( 1981, turboa, turbo, turbo, turbo, turbo_state, turbo_enc, ROT270, "Sega", "Turbo (encrypted, program 1262-1264)", MACHINE_IMPERFECT_SOUND , layout_turbo ) +GAMEL( 1981, turbob, turbo, turbo, turbo, turbo_state, turbo_enc, ROT270, "Sega", "Turbo (encrypted, program 1363-1365 rev B)", MACHINE_IMPERFECT_SOUND , layout_turbo ) +GAMEL( 1981, turboc, turbo, turbo, turbo, turbo_state, turbo_enc, ROT270, "Sega", "Turbo (encrypted, program 1363-1365 rev A)", MACHINE_IMPERFECT_SOUND , layout_turbo ) +GAMEL( 1981, turbod, turbo, turbo, turbo, turbo_state, turbo_enc, ROT270, "Sega", "Turbo (encrypted, program 1363-1365)", MACHINE_IMPERFECT_SOUND , layout_turbo ) // but still reports 1262-1264 in the test mode? +GAMEL( 1981, turbobl, turbo, turbo, turbo, turbo_state, turbo_noenc, ROT270, "bootleg", "Indianapolis (bootleg of Turbo)", MACHINE_IMPERFECT_SOUND , layout_turbo ) // decrypted bootleg of a 1262-1264 set -GAMEL( 1982, subroc3d, 0, subroc3d, subroc3d, driver_device, 0, ORIENTATION_FLIP_X, "Sega", "Subroc-3D", MACHINE_IMPERFECT_SOUND , layout_subroc3d ) +GAMEL( 1982, subroc3d, 0, subroc3d, subroc3d, turbo_state, 0, ORIENTATION_FLIP_X, "Sega", "Subroc-3D", MACHINE_IMPERFECT_SOUND , layout_subroc3d ) -GAMEL( 1982, buckrog, 0, buckroge, buckrog, driver_device, 0, ROT0, "Sega", "Buck Rogers: Planet of Zoom", MACHINE_IMPERFECT_SOUND , layout_buckrog ) -GAMEL( 1982, buckrogn, buckrog, buckrogu, buckrog, driver_device, 0, ROT0, "Sega", "Buck Rogers: Planet of Zoom (not encrypted, set 1)", MACHINE_IMPERFECT_SOUND , layout_buckrog ) -GAMEL( 1982, buckrogn2,buckrog, buckrogu, buckrog, driver_device, 0, ROT0, "Sega", "Buck Rogers: Planet of Zoom (not encrypted, set 2)", MACHINE_IMPERFECT_SOUND , layout_buckrog ) -GAMEL( 1982, zoom909, buckrog, buckroge, buckrog, driver_device, 0, ROT0, "Sega", "Zoom 909", MACHINE_IMPERFECT_SOUND, layout_buckrog ) +GAMEL( 1982, buckrog, 0, buckroge, buckrog, turbo_state, 0, ROT0, "Sega", "Buck Rogers: Planet of Zoom", MACHINE_IMPERFECT_SOUND , layout_buckrog ) +GAMEL( 1982, buckrogn, buckrog, buckrogu, buckrog, turbo_state, 0, ROT0, "Sega", "Buck Rogers: Planet of Zoom (not encrypted, set 1)", MACHINE_IMPERFECT_SOUND , layout_buckrog ) +GAMEL( 1982, buckrogn2,buckrog, buckrogu, buckrog, turbo_state, 0, ROT0, "Sega", "Buck Rogers: Planet of Zoom (not encrypted, set 2)", MACHINE_IMPERFECT_SOUND , layout_buckrog ) +GAMEL( 1982, zoom909, buckrog, buckroge, buckrog, turbo_state, 0, ROT0, "Sega", "Zoom 909", MACHINE_IMPERFECT_SOUND, layout_buckrog ) diff --git a/src/mame/drivers/turrett.cpp b/src/mame/drivers/turrett.cpp index fa8aa2e6f49..f085dcdd5c2 100644 --- a/src/mame/drivers/turrett.cpp +++ b/src/mame/drivers/turrett.cpp @@ -13,6 +13,7 @@ #include "cpu/mips/r3000.h" #include "machine/ataintf.h" +#include "machine/idehd.h" #include "speaker.h" @@ -317,15 +318,13 @@ INTERRUPT_GEN_MEMBER( turrett_state::adc ) /// HACK: The game expects a different LBA mapping to the standard HDD. /// The reason for this is unknown. -#include "machine/idehd.h" - -extern const device_type TURRETT_HARDDISK; +DECLARE_DEVICE_TYPE(TURRETT_HARDDISK, turrett_hdd) class turrett_hdd : public ide_hdd_device { public: turrett_hdd(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : ide_hdd_device(mconfig, TURRETT_HARDDISK, "HDD Turrett Tower", tag, owner, clock, "turrett_hdd", __FILE__) + : ide_hdd_device(mconfig, TURRETT_HARDDISK, tag, owner, clock) { } @@ -338,7 +337,7 @@ public: } }; -const device_type TURRETT_HARDDISK = device_creator; +DEFINE_DEVICE_TYPE(TURRETT_HARDDISK, turrett_hdd, "turrett_hdd", "Turret Tower HDD") SLOT_INTERFACE_START(turrett_devices) SLOT_INTERFACE("hdd", TURRETT_HARDDISK) @@ -350,7 +349,7 @@ SLOT_INTERFACE_END * *************************************/ -static MACHINE_CONFIG_START( turrett, turrett_state ) +static MACHINE_CONFIG_START( turrett ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", R3041, R3041_CLOCK) @@ -413,4 +412,4 @@ ROM_END * *************************************/ -GAME( 2001, turrett, 0, turrett, turrett, driver_device, 0, ROT0, "Dell Electronics (Namco license)", "Turret Tower", 0 ) +GAME( 2001, turrett, 0, turrett, turrett, turrett_state, 0, ROT0, "Dell Electronics (Namco license)", "Turret Tower", 0 ) diff --git a/src/mame/drivers/tutankhm.cpp b/src/mame/drivers/tutankhm.cpp index b32ccde28e3..f674fce3246 100644 --- a/src/mame/drivers/tutankhm.cpp +++ b/src/mame/drivers/tutankhm.cpp @@ -223,7 +223,7 @@ MACHINE_RESET_MEMBER(tutankhm_state,tutankhm) m_flip_y = 0; } -static MACHINE_CONFIG_START( tutankhm, tutankhm_state ) +static MACHINE_CONFIG_START( tutankhm ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809, XTAL_18_432MHz/12) /* 1.5 MHz ??? */ @@ -328,5 +328,5 @@ ROM_END * *************************************/ -GAME( 1982, tutankhm, 0, tutankhm, tutankhm, driver_device, 0, ROT90, "Konami", "Tutankham", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS) -GAME( 1982, tutankhms,tutankhm, tutankhm, tutankhm, driver_device, 0, ROT90, "Konami (Stern Electronics license)", "Tutankham (Stern Electronics)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS) +GAME( 1982, tutankhm, 0, tutankhm, tutankhm, tutankhm_state, 0, ROT90, "Konami", "Tutankham", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS) +GAME( 1982, tutankhms,tutankhm, tutankhm, tutankhm, tutankhm_state, 0, ROT90, "Konami (Stern Electronics license)", "Tutankham (Stern Electronics)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS) diff --git a/src/mame/drivers/tutor.cpp b/src/mame/drivers/tutor.cpp index 838a904207d..4f3221ce142 100644 --- a/src/mame/drivers/tutor.cpp +++ b/src/mame/drivers/tutor.cpp @@ -732,7 +732,7 @@ static INPUT_PORTS_START(pyuutajr) PORT_BIT(0xff, IP_ACTIVE_HIGH, IPT_UNUSED) INPUT_PORTS_END -static MACHINE_CONFIG_START( tutor, tutor_state ) +static MACHINE_CONFIG_START( tutor ) // basic machine hardware // TMS9995 CPU @ 10.7 MHz // No lines connected yet @@ -795,7 +795,7 @@ ROM_START(pyuutajr) ROM_LOAD( "ipl.rom", 0x0000, 0x4000, CRC(2ca37e62) SHA1(eebdc5c37d3b532edd5e5ca65eb785269ebd1ac0)) /* system ROM */ ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ -COMP(1983?, tutor, 0, 0, tutor, tutor, driver_device, 0, "Tomy", "Tomy Tutor" , 0) -COMP(1982, pyuuta, tutor, 0, tutor, tutor, driver_device, 0, "Tomy", "Tomy Pyuuta" , 0) -COMP(1983, pyuutajr, tutor, 0, pyuutajr, pyuutajr, driver_device, 0, "Tomy", "Tomy Pyuuta Jr." , 0) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP(1983?, tutor, 0, 0, tutor, tutor, tutor_state, 0, "Tomy", "Tomy Tutor" , 0) +COMP(1982, pyuuta, tutor, 0, tutor, tutor, tutor_state, 0, "Tomy", "Tomy Pyuuta" , 0) +COMP(1983, pyuutajr, tutor, 0, pyuutajr, pyuutajr, tutor_state, 0, "Tomy", "Tomy Pyuuta Jr.", 0) diff --git a/src/mame/drivers/tv910.cpp b/src/mame/drivers/tv910.cpp index adc6615e63c..4d2b83249af 100644 --- a/src/mame/drivers/tv910.cpp +++ b/src/mame/drivers/tv910.cpp @@ -490,7 +490,7 @@ MC6845_UPDATE_ROW( tv910_state::crtc_update_row ) } } -static MACHINE_CONFIG_START( tv910, tv910_state ) +static MACHINE_CONFIG_START( tv910 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, MASTER_CLOCK/8) MCFG_CPU_PROGRAM_MAP(tv910_mem) @@ -549,5 +549,5 @@ ROM_START( tv910 ) ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ -COMP( 1981, tv910, 0, 0, tv910, tv910, driver_device, 0, "TeleVideo", "TV910", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1981, tv910, 0, 0, tv910, tv910, tv910_state, 0, "TeleVideo", "TV910", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/tv950.cpp b/src/mame/drivers/tv950.cpp index cec50bc958c..6922e37c3c9 100644 --- a/src/mame/drivers/tv950.cpp +++ b/src/mame/drivers/tv950.cpp @@ -266,7 +266,7 @@ MC6845_UPDATE_ROW( tv950_state::crtc_update_row ) m_row = (m_row + 1) % 250; } -static MACHINE_CONFIG_START( tv950, tv950_state ) +static MACHINE_CONFIG_START( tv950 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, MASTER_CLOCK/14) MCFG_CPU_PROGRAM_MAP(tv950_mem) @@ -318,5 +318,5 @@ ROM_START( tv950 ) ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ -COMP( 1981, tv950, 0, 0, tv950, tv950, driver_device, 0, "TeleVideo", "TV950", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1981, tv950, 0, 0, tv950, tv950, tv950_state, 0, "TeleVideo", "TV950", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/tv990.cpp b/src/mame/drivers/tv990.cpp index 35a221e2689..17887a09148 100644 --- a/src/mame/drivers/tv990.cpp +++ b/src/mame/drivers/tv990.cpp @@ -367,7 +367,7 @@ void tv990_state::device_post_load() m_screen->set_visible_area(0, m_width * 16 - 1, 0, m_height * m_rowh - 1); } -static MACHINE_CONFIG_START( tv990, tv990_state ) +static MACHINE_CONFIG_START( tv990 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 14967500) // verified (59.86992/4) MCFG_CPU_PROGRAM_MAP(tv990_mem) @@ -430,5 +430,5 @@ ROM_START( tv995 ) ROM_END /* Driver */ -COMP( 1992, tv990, 0, 0, tv990, tv990, driver_device, 0, "TeleVideo", "TeleVideo 990", MACHINE_SUPPORTS_SAVE) -COMP( 1994, tv995, 0, 0, tv990, tv990, driver_device, 0, "TeleVideo", "TeleVideo 995-65", MACHINE_SUPPORTS_SAVE) +COMP( 1992, tv990, 0, 0, tv990, tv990, tv990_state, 0, "TeleVideo", "TeleVideo 990", MACHINE_SUPPORTS_SAVE ) +COMP( 1994, tv995, 0, 0, tv990, tv990, tv990_state, 0, "TeleVideo", "TeleVideo 995-65", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/tvc.cpp b/src/mame/drivers/tvc.cpp index 1804e78dd04..8d52b8e5500 100644 --- a/src/mame/drivers/tvc.cpp +++ b/src/mame/drivers/tvc.cpp @@ -760,7 +760,7 @@ extern SLOT_INTERFACE_START(tvc_exp) SLOT_INTERFACE_END -static MACHINE_CONFIG_START( tvc, tvc_state ) +static MACHINE_CONFIG_START( tvc ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80, 3125000) MCFG_CPU_PROGRAM_MAP(tvc_mem) @@ -876,7 +876,7 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1985, tvc64, 0, 0, tvc, tvc, driver_device, 0, "Videoton", "TVC 64", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -COMP( 1985, tvc64p, tvc64, 0, tvc, tvc, driver_device, 0, "Videoton", "TVC 64+", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -COMP( 1985, tvc64pru, tvc64, 0, tvc, tvc64pru, driver_device, 0, "Videoton", "TVC 64+ (Russian)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1985, tvc64, 0, 0, tvc, tvc, tvc_state, 0, "Videoton", "TVC 64", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +COMP( 1985, tvc64p, tvc64, 0, tvc, tvc, tvc_state, 0, "Videoton", "TVC 64+", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +COMP( 1985, tvc64pru, tvc64, 0, tvc, tvc64pru, tvc_state, 0, "Videoton", "TVC 64+ (Russian)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/tvcapcom.cpp b/src/mame/drivers/tvcapcom.cpp index 293d3638621..c2d9e2278da 100644 --- a/src/mame/drivers/tvcapcom.cpp +++ b/src/mame/drivers/tvcapcom.cpp @@ -48,7 +48,7 @@ uint32_t tvcapcom_state::screen_update_tvcapcom(screen_device &screen, bitmap_rg static INPUT_PORTS_START( tvcapcom ) INPUT_PORTS_END -static MACHINE_CONFIG_START( tvcapcom, tvcapcom_state ) +static MACHINE_CONFIG_START( tvcapcom ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", PPC603, 72900000) // IBM PowerPC Broadway CPU @ 729 MHz ? @@ -82,4 +82,4 @@ ROM_START( tvcapcom ) ROM_END -GAME( 2008, tvcapcom, 0, tvcapcom, tvcapcom, driver_device, 0, ROT0, "Capcom", "Tatsunoko Vs Capcom : Cross Generation of Heroes", MACHINE_IS_SKELETON ) +GAME( 2008, tvcapcom, 0, tvcapcom, tvcapcom, tvcapcom_state, 0, ROT0, "Capcom", "Tatsunoko Vs Capcom : Cross Generation of Heroes", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/tvgame.cpp b/src/mame/drivers/tvgame.cpp index 4fee6adf61a..1ad716e471d 100644 --- a/src/mame/drivers/tvgame.cpp +++ b/src/mame/drivers/tvgame.cpp @@ -93,7 +93,7 @@ uint32_t tvgame_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap return 0; } -static MACHINE_CONFIG_START( tvgame, tvgame_state ) +static MACHINE_CONFIG_START( tvgame ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_4MHz) MCFG_CPU_PROGRAM_MAP(tvgame_mem) @@ -131,5 +131,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -CONS( 2011, tvgame, 0, 0, tvgame, tvgame, driver_device, 0, "Mr. Isizu", "Z80 TV Game System", 0 ) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +CONS( 2011, tvgame, 0, 0, tvgame, tvgame, tvgame_state, 0, "Mr. Isizu", "Z80 TV Game System", 0 ) diff --git a/src/mame/drivers/twin16.cpp b/src/mame/drivers/twin16.cpp index eadd0792c94..7b662c3a9c1 100644 --- a/src/mame/drivers/twin16.cpp +++ b/src/mame/drivers/twin16.cpp @@ -661,7 +661,7 @@ void twin16_state::machine_start() save_item(NAME(m_CPUB_register)); } -static MACHINE_CONFIG_START( twin16, twin16_state ) +static MACHINE_CONFIG_START( twin16 ) // basic machine hardware MCFG_CPU_ADD("maincpu", M68000, XTAL_18_432MHz/2) MCFG_CPU_PROGRAM_MAP(main_map) @@ -719,7 +719,7 @@ static MACHINE_CONFIG_DERIVED( devilw, twin16 ) MCFG_QUANTUM_TIME(attotime::from_hz(60000)) // watchdog reset otherwise MACHINE_CONFIG_END -static MACHINE_CONFIG_START( fround, fround_state ) +static MACHINE_CONFIG_START( fround ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_18_432MHz/2) MCFG_CPU_PROGRAM_MAP(fround_map) @@ -774,7 +774,7 @@ static MACHINE_CONFIG_DERIVED( miaj, twin16 ) MCFG_SCREEN_RAW_PARAMS(XTAL_18_432MHz/2, 576, 1*8, 39*8, 264, 2*8, 30*8) MACHINE_CONFIG_END -static MACHINE_CONFIG_DERIVED_CLASS( cuebrickj, twin16, cuebrickj_state ) +static MACHINE_CONFIG_DERIVED( cuebrickj, twin16 ) MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_RAW_PARAMS(XTAL_18_432MHz/2, 576, 1*8, 39*8, 264, 2*8, 30*8) MCFG_NVRAM_ADD_0FILL("nvram") @@ -1279,19 +1279,19 @@ DRIVER_INIT_MEMBER(cuebrickj_state,cuebrickj) /* Game Drivers */ -// YEAR, NAME, PARENT, MACHINE, INPUT, INIT, MONITOR,COMPANY,FULLNAME,FLAGS -GAME( 1987, devilw, 0, devilw, devilw, twin16_state, twin16, ROT0, "Konami", "Devil World", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, majuu, devilw, devilw, devilw, twin16_state, twin16, ROT0, "Konami", "Majuu no Ohkoku", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, darkadv, devilw, devilw, darkadv, twin16_state, twin16, ROT0, "Konami", "Dark Adventure", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, vulcan, 0, twin16, vulcan, twin16_state, twin16, ROT0, "Konami", "Vulcan Venture (New)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, vulcana, vulcan, twin16, vulcan, twin16_state, twin16, ROT0, "Konami", "Vulcan Venture (Old)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, vulcanb, vulcan, twin16, vulcan, twin16_state, twin16, ROT0, "Konami", "Vulcan Venture (Oldest)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, gradius2, vulcan, twin16, gradius2, twin16_state, twin16, ROT0, "Konami", "Gradius II - GOFER no Yabou (Japan New Ver.)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, gradius2a, vulcan, twin16, vulcan, twin16_state, twin16, ROT0, "Konami", "Gradius II - GOFER no Yabou (Japan Old Ver.)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, gradius2b, vulcan, twin16, vulcan, twin16_state, twin16, ROT0, "Konami", "Gradius II - GOFER no Yabou (Japan Older Ver.)", MACHINE_SUPPORTS_SAVE ) - -GAME( 1988, fround, 0, fround, fround, fround_state, fround, ROT0, "Konami", "The Final Round (version M)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, froundl, fround, fround, fround, fround_state, fround, ROT0, "Konami", "The Final Round (version L)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, hpuncher, fround, twin16, fround, twin16_state, twin16, ROT0, "Konami", "Hard Puncher (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, miaj, mia, miaj, miaj, twin16_state, twin16, ROT0, "Konami", "M.I.A. - Missing in Action (version R) (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, cuebrickj, cuebrick, cuebrickj, cuebrickj, cuebrickj_state, cuebrickj, ROT0, "Konami", "Cue Brick (Japan)", MACHINE_SUPPORTS_SAVE ) +// YEAR, NAME, PARENT, MACHINE, INPUT, STATE, INIT, MONITOR,COMPANY, FULLNAME,FLAGS +GAME( 1987, devilw, 0, devilw, devilw, twin16_state, twin16, ROT0, "Konami", "Devil World", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, majuu, devilw, devilw, devilw, twin16_state, twin16, ROT0, "Konami", "Majuu no Ohkoku", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, darkadv, devilw, devilw, darkadv, twin16_state, twin16, ROT0, "Konami", "Dark Adventure", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, vulcan, 0, twin16, vulcan, twin16_state, twin16, ROT0, "Konami", "Vulcan Venture (New)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, vulcana, vulcan, twin16, vulcan, twin16_state, twin16, ROT0, "Konami", "Vulcan Venture (Old)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, vulcanb, vulcan, twin16, vulcan, twin16_state, twin16, ROT0, "Konami", "Vulcan Venture (Oldest)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, gradius2, vulcan, twin16, gradius2, twin16_state, twin16, ROT0, "Konami", "Gradius II - GOFER no Yabou (Japan New Ver.)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, gradius2a, vulcan, twin16, vulcan, twin16_state, twin16, ROT0, "Konami", "Gradius II - GOFER no Yabou (Japan Old Ver.)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, gradius2b, vulcan, twin16, vulcan, twin16_state, twin16, ROT0, "Konami", "Gradius II - GOFER no Yabou (Japan Older Ver.)", MACHINE_SUPPORTS_SAVE ) + +GAME( 1988, fround, 0, fround, fround, fround_state, fround, ROT0, "Konami", "The Final Round (version M)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, froundl, fround, fround, fround, fround_state, fround, ROT0, "Konami", "The Final Round (version L)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, hpuncher, fround, twin16, fround, twin16_state, twin16, ROT0, "Konami", "Hard Puncher (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, miaj, mia, miaj, miaj, twin16_state, twin16, ROT0, "Konami", "M.I.A. - Missing in Action (version R) (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, cuebrickj, cuebrick, cuebrickj, cuebrickj, cuebrickj_state, cuebrickj, ROT0, "Konami", "Cue Brick (Japan)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/twincobr.cpp b/src/mame/drivers/twincobr.cpp index ecec5de3c76..8f684a4da56 100644 --- a/src/mame/drivers/twincobr.cpp +++ b/src/mame/drivers/twincobr.cpp @@ -654,7 +654,7 @@ static GFXDECODE_START( twincobr ) GFXDECODE_END -static MACHINE_CONFIG_START( twincobr, twincobr_state ) +static MACHINE_CONFIG_START( twincobr ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_28MHz/4) /* 7MHz - Main board Crystal is 28MHz */ diff --git a/src/mame/drivers/twinkle.cpp b/src/mame/drivers/twinkle.cpp index f15375168ea..60e32339fb0 100644 --- a/src/mame/drivers/twinkle.cpp +++ b/src/mame/drivers/twinkle.cpp @@ -933,7 +933,7 @@ static MACHINE_CONFIG_FRAGMENT( cdrom_config ) MCFG_SOUND_ROUTE( 1, "^^^^speakerright", 1.0 ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( twinkle, twinkle_state ) +static MACHINE_CONFIG_START( twinkle ) /* basic machine hardware */ MCFG_CPU_ADD( "maincpu", CXD8530CQ, XTAL_67_7376MHz ) MCFG_CPU_PROGRAM_MAP( main_map ) @@ -941,8 +941,8 @@ static MACHINE_CONFIG_START( twinkle, twinkle_state ) MCFG_RAM_MODIFY("maincpu:ram") MCFG_RAM_DEFAULT_SIZE("4M") - MCFG_PSX_DMA_CHANNEL_READ( "maincpu", 5, psx_dma_read_delegate(&scsi_dma_read, (twinkle_state *) owner ) ) - MCFG_PSX_DMA_CHANNEL_WRITE( "maincpu", 5, psx_dma_write_delegate(&scsi_dma_write, (twinkle_state *) owner ) ) + MCFG_PSX_DMA_CHANNEL_READ( "maincpu", 5, psxdma_device::read_delegate(&scsi_dma_read, (twinkle_state *) owner ) ) + MCFG_PSX_DMA_CHANNEL_WRITE( "maincpu", 5, psxdma_device::write_delegate(&scsi_dma_write, (twinkle_state *) owner ) ) MCFG_CPU_ADD("audiocpu", M68000, 32000000/2) /* 16.000 MHz */ MCFG_CPU_PROGRAM_MAP( sound_map ) @@ -1333,20 +1333,20 @@ ROM_START( bmiidxc2 ) DISK_IMAGE_READONLY( "983hdda01", 0, SHA1(bcbbf55acf8bebc5773ffc5769420a0129f4da57) ) ROM_END -GAME( 1999, gq863, 0, twinkle, twinkle, driver_device, 0, ROT0, "Konami", "Twinkle System", MACHINE_IS_BIOS_ROOT ) - -GAME( 1999, bmiidx, gq863, twinklex, twinklex, driver_device, 0, ROT0, "Konami", "beatmania IIDX (863 JAB)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) -GAME( 1999, bmiidxa, bmiidx, twinklex, twinklex, driver_device, 0, ROT0, "Konami", "beatmania IIDX (863 JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) -GAME( 1999, bmiidxc, gq863, twinklex, twinklex, driver_device, 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, driver_device, 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, driver_device, 0, ROT0, "Konami", "beatmania IIDX Substream (983 JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) -GAME( 1999, bmiidxc2, gq863, twinklex, twinklex, driver_device, 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, driver_device, 0, ROT0, "Konami", "beatmania IIDX 2nd style (GC985 JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) -GAME( 2000, bmiidx3, gq863, twinklei, twinklei, driver_device, 0, ROT0, "Konami", "beatmania IIDX 3rd style (GC992 JAC)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) -GAME( 2000, bmiidx3a, bmiidx3, twinklei, twinklei, driver_device, 0, ROT0, "Konami", "beatmania IIDX 3rd style (GC992 JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) -GAME( 2000, bmiidx4, gq863, twinklei, twinklei, driver_device, 0, ROT0, "Konami", "beatmania IIDX 4th style (GCA03 JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) -GAME( 2001, bmiidx5, gq863, twinklei, twinklei, driver_device, 0, ROT0, "Konami", "beatmania IIDX 5th style (GCA17 JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) -GAME( 2001, bmiidx6, gq863, twinklei, twinklei, driver_device, 0, ROT0, "Konami", "beatmania IIDX 6th style (GCB4U JAB)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) -GAME( 2001, bmiidx6a, bmiidx6, twinklei, twinklei, driver_device, 0, ROT0, "Konami", "beatmania IIDX 6th style (GCB4U JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) -GAME( 2002, bmiidx7, gq863, twinklei, twinklei, driver_device, 0, ROT0, "Konami", "beatmania IIDX 7th style (GCB44 JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) -GAME( 2002, bmiidx8, gq863, twinklei, twinklei, driver_device, 0, ROT0, "Konami", "beatmania IIDX 8th style (GCC44 JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) +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 fcfa4544a1a..a5be8a0b686 100644 --- a/src/mame/drivers/twins.cpp +++ b/src/mame/drivers/twins.cpp @@ -379,7 +379,7 @@ static INPUT_PORTS_START(twins) INPUT_PORTS_END -static MACHINE_CONFIG_START( twins, twins_state ) +static MACHINE_CONFIG_START( twins ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", V30, 8000000) MCFG_CPU_PROGRAM_MAP(twins_map) @@ -427,7 +427,7 @@ static ADDRESS_MAP_START( ramdac_map, AS_0, 8, twins_state ) ADDRESS_MAP_END -static MACHINE_CONFIG_START( twinsa, twins_state ) +static MACHINE_CONFIG_START( twinsa ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", V30, XTAL_16MHz/2) /* verified on pcb */ MCFG_CPU_PROGRAM_MAP(twins_map) @@ -556,7 +556,7 @@ ADDRESS_MAP_END -static MACHINE_CONFIG_START( spider, twins_state ) +static MACHINE_CONFIG_START( spider ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", V30, 8000000) MCFG_CPU_PROGRAM_MAP(twins_map) @@ -623,7 +623,7 @@ ROM_START( spider ) ROM_LOAD16_BYTE( "21.bin", 0x000000, 0x080000, CRC(ff224206) SHA1(d8d45850983542e811facc917d016841fc56a97f) ) ROM_END -GAME( 1994, twins, 0, twins, twins, driver_device, 0, ROT0, "Electronic Devices", "Twins (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, twinsa, twins, twinsa, twins, driver_device, 0, ROT0, "Electronic Devices", "Twins (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, twins, 0, twins, twins, twins_state, 0, ROT0, "Electronic Devices", "Twins (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, twinsa, twins, twinsa, twins, twins_state, 0, ROT0, "Electronic Devices", "Twins (set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, spider, 0, spider, twins, driver_device, 0, ROT0, "Buena Vision", "Spider", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1994, spider, 0, spider, twins, twins_state, 0, ROT0, "Buena Vision", "Spider", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/tx0.cpp b/src/mame/drivers/tx0.cpp index 76365bb1cd0..16e9b60fc12 100644 --- a/src/mame/drivers/tx0.cpp +++ b/src/mame/drivers/tx0.cpp @@ -378,11 +378,11 @@ protected: virtual void device_start() override { } }; -const device_type TX0_READTAPE = device_creator; +DEFINE_DEVICE_TYPE(TX0_READTAPE, tx0_readtape_image_device, "tx0_readtape_image", "TX0 Tape Reader") tx0_readtape_image_device::tx0_readtape_image_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, TX0_READTAPE, "TX0 Tape Reader", tag, owner, clock, "tx0_readtape_image", __FILE__), - device_image_interface(mconfig, *this) + : device_t(mconfig, TX0_READTAPE, tag, owner, clock) + , device_image_interface(mconfig, *this) { } @@ -410,11 +410,11 @@ protected: virtual void device_start() override { } }; -const device_type TX0_PUNCHTAPE = device_creator; +DEFINE_DEVICE_TYPE(TX0_PUNCHTAPE, tx0_punchtape_image_device, "tx0_punchtape_image", "TX0 Tape Puncher") tx0_punchtape_image_device::tx0_punchtape_image_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, TX0_PUNCHTAPE, "TX0 Tape Puncher", tag, owner, clock, "tx0_punchtape_image", __FILE__), - device_image_interface(mconfig, *this) + : device_t(mconfig, TX0_PUNCHTAPE, tag, owner, clock) + , device_image_interface(mconfig, *this) { } @@ -443,11 +443,11 @@ protected: virtual void device_start() override { } }; -const device_type TX0_PRINTER = device_creator; +DEFINE_DEVICE_TYPE(TX0_PRINTER, tx0_printer_image_device, "tx0_printer_image", "TX0 Typewriter") tx0_printer_image_device::tx0_printer_image_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, TX0_PRINTER, "TX0 Typewriter", tag, owner, clock, "tx0_printer_image", __FILE__), - device_image_interface(mconfig, *this) + : device_t(mconfig, TX0_PRINTER, tag, owner, clock) + , device_image_interface(mconfig, *this) { } @@ -475,11 +475,11 @@ protected: virtual void device_start() override; }; -const device_type TX0_MAGTAPE = device_creator; +DEFINE_DEVICE_TYPE(TX0_MAGTAPE, tx0_magtape_image_device, "tx0_magtape_image", "TX0 Magnetic Tape") tx0_magtape_image_device::tx0_magtape_image_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, TX0_MAGTAPE, "TX0 Magnetic Tape", tag, owner, clock, "tx0_magtape_image", __FILE__), - device_image_interface(mconfig, *this) + : device_t(mconfig, TX0_MAGTAPE, tag, owner, clock) + , device_image_interface(mconfig, *this) { } @@ -1530,7 +1530,7 @@ INTERRUPT_GEN_MEMBER(tx0_state::tx0_interrupt) } } -static MACHINE_CONFIG_START( tx0_64kw, tx0_state ) +static MACHINE_CONFIG_START( tx0_64kw ) /* basic machine hardware */ /* TX0 CPU @ approx. 167 kHz (no master clock, but the memory cycle time is approximately 6usec) */ MCFG_CPU_ADD("maincpu", TX0_64KW, 166667) @@ -1610,6 +1610,6 @@ ROM_END ***************************************************************************/ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ -COMP( 1956, tx0_64kw, 0, 0, tx0_64kw, tx0, tx0_state, tx0, "MIT", "TX-0 original demonstrator (64 kWords of RAM)" , MACHINE_NO_SOUND_HW | MACHINE_NOT_WORKING) -COMP( 1962, tx0_8kw, tx0_64kw, 0, tx0_8kw, tx0, tx0_state, tx0, "MIT", "TX-0 upgraded system (8 kWords of RAM)" , MACHINE_NO_SOUND_HW | MACHINE_NOT_WORKING) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1956, tx0_64kw, 0, 0, tx0_64kw, tx0, tx0_state, tx0, "MIT", "TX-0 original demonstrator (64 kWords of RAM)" , MACHINE_NO_SOUND_HW | MACHINE_NOT_WORKING) +COMP( 1962, tx0_8kw, tx0_64kw, 0, tx0_8kw, tx0, tx0_state, tx0, "MIT", "TX-0 upgraded system (8 kWords of RAM)" , MACHINE_NO_SOUND_HW | MACHINE_NOT_WORKING) diff --git a/src/mame/drivers/tx1.cpp b/src/mame/drivers/tx1.cpp index 9d25599a229..e0c716ecac2 100644 --- a/src/mame/drivers/tx1.cpp +++ b/src/mame/drivers/tx1.cpp @@ -606,7 +606,7 @@ ADDRESS_MAP_END * *************************************/ -static MACHINE_CONFIG_START( tx1, tx1_state ) +static MACHINE_CONFIG_START( tx1 ) MCFG_CPU_ADD("main_cpu", I8086, CPU_MASTER_CLOCK / 3) MCFG_CPU_PROGRAM_MAP(tx1_main) @@ -669,7 +669,7 @@ static MACHINE_CONFIG_START( tx1, tx1_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( buggyboy, tx1_state ) +static MACHINE_CONFIG_START( buggyboy ) MCFG_CPU_ADD("main_cpu", I8086, CPU_MASTER_CLOCK / 3) MCFG_CPU_PROGRAM_MAP(buggyboy_main) @@ -733,7 +733,7 @@ static MACHINE_CONFIG_START( buggyboy, tx1_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( buggybjr, tx1_state ) +static MACHINE_CONFIG_START( buggybjr ) MCFG_CPU_ADD("main_cpu", I8086, CPU_MASTER_CLOCK / 3) MCFG_CPU_PROGRAM_MAP(buggybjr_main) @@ -1243,8 +1243,8 @@ ROM_END * *************************************/ -GAMEL( 1983, tx1, 0, tx1, tx1, driver_device, 0, ROT0, "Tatsumi (Atari/Namco/Taito license)", "TX-1 (World)", MACHINE_IMPERFECT_SOUND, layout_tx1 ) -GAMEL( 1983, tx1jb, tx1, tx1, tx1j, driver_device, 0, ROT0, "Tatsumi", "TX-1 (Japan rev. B)", MACHINE_IMPERFECT_SOUND, layout_tx1 ) -GAMEL( 1983, tx1jc, tx1, tx1, tx1j, driver_device, 0, ROT0, "Tatsumi", "TX-1 (Japan rev. C)", MACHINE_IMPERFECT_SOUND, layout_tx1 ) -GAMEL( 1985, buggyboy, 0, buggyboy, buggyboy, driver_device, 0, ROT0, "Tatsumi", "Buggy Boy/Speed Buggy (cockpit)", 0, layout_buggyboy ) -GAMEL( 1986, buggyboyjr, buggyboy, buggybjr, buggybjr, driver_device, 0, ROT0, "Tatsumi", "Buggy Boy Junior/Speed Buggy (upright)", 0, layout_buggybjr ) +GAMEL( 1983, tx1, 0, tx1, tx1, tx1_state, 0, ROT0, "Tatsumi (Atari/Namco/Taito license)", "TX-1 (World)", MACHINE_IMPERFECT_SOUND, layout_tx1 ) +GAMEL( 1983, tx1jb, tx1, tx1, tx1j, tx1_state, 0, ROT0, "Tatsumi", "TX-1 (Japan rev. B)", MACHINE_IMPERFECT_SOUND, layout_tx1 ) +GAMEL( 1983, tx1jc, tx1, tx1, tx1j, tx1_state, 0, ROT0, "Tatsumi", "TX-1 (Japan rev. C)", MACHINE_IMPERFECT_SOUND, layout_tx1 ) +GAMEL( 1985, buggyboy, 0, buggyboy, buggyboy, tx1_state, 0, ROT0, "Tatsumi", "Buggy Boy/Speed Buggy (cockpit)", 0, layout_buggyboy ) +GAMEL( 1986, buggyboyjr, buggyboy, buggybjr, buggybjr, tx1_state, 0, ROT0, "Tatsumi", "Buggy Boy Junior/Speed Buggy (upright)", 0, layout_buggybjr ) diff --git a/src/mame/drivers/uapce.cpp b/src/mame/drivers/uapce.cpp index 9a205c149b2..9d4b16d8e83 100644 --- a/src/mame/drivers/uapce.cpp +++ b/src/mame/drivers/uapce.cpp @@ -306,7 +306,7 @@ static ADDRESS_MAP_START( pce_io , AS_IO, 8, uapce_state ) ADDRESS_MAP_END -static MACHINE_CONFIG_START( uapce, uapce_state ) +static MACHINE_CONFIG_START( uapce ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", H6280, PCE_MAIN_CLOCK/3) MCFG_CPU_PROGRAM_MAP(pce_mem) @@ -319,7 +319,7 @@ static MACHINE_CONFIG_START( uapce, uapce_state ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(PCE_MAIN_CLOCK, HUC6260_WPF, 64, 64 + 1024 + 64, HUC6260_LPF, 18, 18 + 242) + MCFG_SCREEN_RAW_PARAMS(PCE_MAIN_CLOCK, huc6260_device::WPF, 64, 64 + 1024 + 64, huc6260_device::LPF, 18, 18 + 242) MCFG_SCREEN_UPDATE_DRIVER( pce_common_state, screen_update ) MCFG_SCREEN_PALETTE("huc6260:palette") @@ -378,7 +378,7 @@ ROM_START(paclandp) ROM_LOAD( "u1.bin", 0x0000, 0x800, CRC(f5e538a9) SHA1(19ac9525c9ad6bea1789cc9e63cdb7fe949867d9) ) ROM_END -GAME( 1989, blazlaz, 0, uapce, uapce, pce_common_state, pce_common, ROT0, "Hudson Soft", "Blazing Lazers", MACHINE_IMPERFECT_SOUND ) -GAME( 1989, keith, 0, uapce, uapce, pce_common_state, pce_common, ROT0, "Hudson Soft", "Keith Courage In Alpha Zones", MACHINE_IMPERFECT_SOUND ) -GAME( 1989, aliencr, 0, uapce, uapce, pce_common_state, pce_common, ROT0, "Hudson Soft", "Alien Crush", MACHINE_IMPERFECT_SOUND ) -GAME( 1989, paclandp,0, uapce, uapce, pce_common_state, pce_common, ROT0, "Namco", "Pac-Land (United Amusements PC Engine)", MACHINE_IMPERFECT_SOUND ) +GAME( 1989, blazlaz, 0, uapce, uapce, uapce_state, pce_common, ROT0, "Hudson Soft", "Blazing Lazers", MACHINE_IMPERFECT_SOUND ) +GAME( 1989, keith, 0, uapce, uapce, uapce_state, pce_common, ROT0, "Hudson Soft", "Keith Courage In Alpha Zones", MACHINE_IMPERFECT_SOUND ) +GAME( 1989, aliencr, 0, uapce, uapce, uapce_state, pce_common, ROT0, "Hudson Soft", "Alien Crush", MACHINE_IMPERFECT_SOUND ) +GAME( 1989, paclandp,0, uapce, uapce, uapce_state, pce_common, ROT0, "Namco", "Pac-Land (United Amusements PC Engine)", MACHINE_IMPERFECT_SOUND ) diff --git a/src/mame/drivers/uknc.cpp b/src/mame/drivers/uknc.cpp index 8154368c50e..9bdd1be0489 100644 --- a/src/mame/drivers/uknc.cpp +++ b/src/mame/drivers/uknc.cpp @@ -57,7 +57,7 @@ uint32_t uknc_state::screen_update_uknc(screen_device &screen, bitmap_ind16 &bit return 0; } -static MACHINE_CONFIG_START( uknc, uknc_state ) +static MACHINE_CONFIG_START( uknc ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", K1801VM2, 8000000) MCFG_T11_INITIAL_MODE(0x8000) @@ -90,5 +90,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1987, uknc, 0, 0, uknc, uknc, driver_device, 0, "", "UKNC", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +COMP( 1987, uknc, 0, 0, uknc, uknc, uknc_state, 0, "", "UKNC", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) diff --git a/src/mame/drivers/ultraman.cpp b/src/mame/drivers/ultraman.cpp index c39b3815374..9dd01670230 100644 --- a/src/mame/drivers/ultraman.cpp +++ b/src/mame/drivers/ultraman.cpp @@ -176,7 +176,7 @@ void ultraman_state::machine_reset() m_bank2 = -1; } -static MACHINE_CONFIG_START( ultraman, ultraman_state ) +static MACHINE_CONFIG_START( ultraman ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000,24000000/2) /* 12 MHz? */ @@ -233,7 +233,7 @@ static MACHINE_CONFIG_START( ultraman, ultraman_state ) MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) - MCFG_OKIM6295_ADD("oki", 1056000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki", 1056000, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.50) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.50) MACHINE_CONFIG_END @@ -278,4 +278,4 @@ ROM_START( ultraman ) ROM_END -GAME( 1991, ultraman, 0, ultraman, ultraman, driver_device, 0, ROT0, "Banpresto / Bandai", "Ultraman (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, ultraman, 0, ultraman, ultraman, ultraman_state, 0, ROT0, "Banpresto / Bandai", "Ultraman (Japan)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/ultratnk.cpp b/src/mame/drivers/ultratnk.cpp index 62cc6275b88..6ab14d4c161 100644 --- a/src/mame/drivers/ultratnk.cpp +++ b/src/mame/drivers/ultratnk.cpp @@ -309,7 +309,7 @@ static GFXDECODE_START( ultratnk ) GFXDECODE_END -static MACHINE_CONFIG_START( ultratnk, ultratnk_state ) +static MACHINE_CONFIG_START( ultratnk ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, PIXEL_CLOCK / 8) @@ -365,4 +365,4 @@ ROM_START( ultratnk ) ROM_END -GAME( 1978, ultratnk, 0, ultratnk, ultratnk, driver_device, 0, 0, "Atari (Kee Games)", "Ultra Tank", MACHINE_SUPPORTS_SAVE ) +GAME( 1978, ultratnk, 0, ultratnk, ultratnk, ultratnk_state, 0, 0, "Atari (Kee Games)", "Ultra Tank", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/ultrsprt.cpp b/src/mame/drivers/ultrsprt.cpp index b60b1f91378..f0580d34fd6 100644 --- a/src/mame/drivers/ultrsprt.cpp +++ b/src/mame/drivers/ultrsprt.cpp @@ -210,7 +210,7 @@ void ultrsprt_state::machine_reset() /*****************************************************************************/ -static MACHINE_CONFIG_START( ultrsprt, ultrsprt_state ) +static MACHINE_CONFIG_START( ultrsprt ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", PPC403GA, 25000000) MCFG_CPU_PROGRAM_MAP(ultrsprt_map) @@ -266,4 +266,4 @@ ROM_START( fiveside ) ROM_END // Undumped: Ultra Hockey -GAME(1995, fiveside, 0, ultrsprt, ultrsprt, driver_device, 0, ROT90, "Konami", "Five a Side Soccer (ver UAA)", 0) +GAME(1995, fiveside, 0, ultrsprt, ultrsprt, ultrsprt_state, 0, ROT90, "Konami", "Five a Side Soccer (ver UAA)", 0) diff --git a/src/mame/drivers/umipoker.cpp b/src/mame/drivers/umipoker.cpp index 772dee4513c..63863c875f6 100644 --- a/src/mame/drivers/umipoker.cpp +++ b/src/mame/drivers/umipoker.cpp @@ -657,7 +657,7 @@ void umipoker_state::machine_reset() } // TODO: clocks -static MACHINE_CONFIG_START( umipoker, umipoker_state ) +static MACHINE_CONFIG_START( umipoker ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",M68000,16000000) // TMP68HC000-16 @@ -693,7 +693,7 @@ static MACHINE_CONFIG_START( umipoker, umipoker_state ) MCFG_SOUND_ADD("ym", YM3812, 4000000 / 2) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MCFG_OKIM6295_ADD("oki", 4000000 / 2, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki", 4000000 / 2, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -763,6 +763,6 @@ DRIVER_INIT_MEMBER(umipoker_state,saiyukip) * Game Drivers * ******************************************/ -/* YEAR NAME PARENT MACHINE INPUT INIT ROT COMPANY FULLNAME FLAGS LAYOUT */ +// YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS LAYOUT GAME( 1997, umipoker, 0, umipoker, umipoker, umipoker_state, umipoker, ROT0, "World Station Co.,LTD", "Umi de Poker / Marine Paradise (Japan)", 0 ) // title screen is toggleable thru a dsw GAMEL( 1998, saiyukip, 0, umipoker, saiyukip, umipoker_state, saiyukip, ROT0, "World Station Co.,LTD", "Slot Poker Saiyuki (Japan)", 0, layout_saiyukip ) diff --git a/src/mame/drivers/undrfire.cpp b/src/mame/drivers/undrfire.cpp index 21ba3b7481d..fa109834b19 100644 --- a/src/mame/drivers/undrfire.cpp +++ b/src/mame/drivers/undrfire.cpp @@ -676,7 +676,7 @@ INTERRUPT_GEN_MEMBER(undrfire_state::undrfire_interrupt) device.execute().set_input_line(4, HOLD_LINE); } -static MACHINE_CONFIG_START( undrfire, undrfire_state ) +static MACHINE_CONFIG_START( undrfire ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68EC020, XTAL_40MHz/2) /* 20 MHz - NOT verified */ @@ -719,7 +719,7 @@ static MACHINE_CONFIG_START( undrfire, undrfire_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( cbombers, undrfire_state ) +static MACHINE_CONFIG_START( cbombers ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68EC020, XTAL_40MHz/2) /* 20 MHz - NOT verified */ @@ -1158,9 +1158,9 @@ DRIVER_INIT_MEMBER(undrfire_state,cbombers) -GAME( 1993, undrfire, 0, undrfire, undrfire, undrfire_state, undrfire, ROT0, "Taito Corporation Japan", "Under Fire (World)", 0 ) -GAME( 1993, undrfireu, undrfire, undrfire, undrfire, undrfire_state, undrfire, ROT0, "Taito America Corporation", "Under Fire (US)", 0 ) -GAME( 1993, undrfirej, undrfire, undrfire, undrfire, undrfire_state, undrfire, ROT0, "Taito Corporation", "Under Fire (Japan)", 0 ) -GAMEL(1994, cbombers, 0, cbombers, cbombers, undrfire_state, cbombers, ROT0, "Taito Corporation Japan", "Chase Bombers (World)", MACHINE_IMPERFECT_GRAPHICS, layout_cbombers ) -GAMEL(1994, cbombersj, cbombers, cbombers, cbombers, undrfire_state, cbombers, ROT0, "Taito Corporation", "Chase Bombers (Japan)", MACHINE_IMPERFECT_GRAPHICS, layout_cbombers ) +GAME( 1993, undrfire, 0, undrfire, undrfire, undrfire_state, undrfire, ROT0, "Taito Corporation Japan", "Under Fire (World)", 0 ) +GAME( 1993, undrfireu, undrfire, undrfire, undrfire, undrfire_state, undrfire, ROT0, "Taito America Corporation", "Under Fire (US)", 0 ) +GAME( 1993, undrfirej, undrfire, undrfire, undrfire, undrfire_state, undrfire, ROT0, "Taito Corporation", "Under Fire (Japan)", 0 ) +GAMEL(1994, cbombers, 0, cbombers, cbombers, undrfire_state, cbombers, ROT0, "Taito Corporation Japan", "Chase Bombers (World)", MACHINE_IMPERFECT_GRAPHICS, layout_cbombers ) +GAMEL(1994, cbombersj, cbombers, cbombers, cbombers, undrfire_state, cbombers, ROT0, "Taito Corporation", "Chase Bombers (Japan)", MACHINE_IMPERFECT_GRAPHICS, layout_cbombers ) GAMEL(1994, cbombersp, cbombers, cbombers, cbombers, undrfire_state, cbombers, ROT0, "Taito Corporation", "Chase Bombers (Japan Prototype)", MACHINE_IMPERFECT_GRAPHICS, layout_cbombers ) diff --git a/src/mame/drivers/unichamp.cpp b/src/mame/drivers/unichamp.cpp index abb021d6cf3..c6f23d02f62 100644 --- a/src/mame/drivers/unichamp.cpp +++ b/src/mame/drivers/unichamp.cpp @@ -71,8 +71,8 @@ public: DECLARE_READ8_MEMBER(bext_r); - DECLARE_READ16_MEMBER(unichamp_gicram_r); - DECLARE_WRITE16_MEMBER(unichamp_gicram_w); + DECLARE_READ8_MEMBER(unichamp_gicram_r); + DECLARE_WRITE8_MEMBER(unichamp_gicram_w); DECLARE_READ16_MEMBER(unichamp_trapl_r); DECLARE_WRITE16_MEMBER(unichamp_trapl_w); @@ -104,7 +104,7 @@ PALETTE_INIT_MEMBER(unichamp_state, unichamp) static ADDRESS_MAP_START( unichamp_mem, AS_PROGRAM, 16, unichamp_state ) ADDRESS_MAP_GLOBAL_MASK(0x1FFF) //B13/B14/B15 are grounded! - AM_RANGE(0x0000, 0x00FF) AM_READWRITE(unichamp_gicram_r, unichamp_gicram_w) + AM_RANGE(0x0000, 0x00FF) AM_READWRITE8(unichamp_gicram_r, unichamp_gicram_w, 0x00ff) AM_RANGE(0x0100, 0x07FF) AM_READWRITE(unichamp_trapl_r, unichamp_trapl_w) AM_RANGE(0x0800, 0x17FF) AM_ROM AM_REGION("maincpu", 0x0800 << 1) // Carts and EXE ROM, 10-bits wide ADDRESS_MAP_END @@ -152,13 +152,10 @@ READ8_MEMBER(unichamp_state::bext_r) DRIVER_INIT_MEMBER(unichamp_state,unichamp) { - m_gic->set_shared_memory(m_ram); } void unichamp_state::machine_start() { - m_gic->set_shared_memory(m_ram); - if (m_cart->exists()){ //flip endians in more "this surely exists in MAME" way? //NOTE The unichamp roms have the same endianness as intv on disk and in memory @@ -195,7 +192,7 @@ void unichamp_state::machine_reset() m_maincpu->set_input_line_vector(CP1610_INT_INTR, 0x0804);//not used anyway /* Set initial PC */ - m_maincpu->set_state_int(CP1610_R7, 0x0800); + m_maincpu->set_state_int(cp1610_cpu_device::CP1610_R7, 0x0800); } @@ -204,14 +201,14 @@ uint32_t unichamp_state::screen_update_unichamp(screen_device &screen, bitmap_in return m_gic->screen_update(screen, bitmap, cliprect); } -READ16_MEMBER( unichamp_state::unichamp_gicram_r ) +READ8_MEMBER( unichamp_state::unichamp_gicram_r ) { - return (int)m_ram[offset]; + return m_ram[offset]; } -WRITE16_MEMBER( unichamp_state::unichamp_gicram_w ) +WRITE8_MEMBER( unichamp_state::unichamp_gicram_w ) { - m_ram[offset] = data&0xff; + m_ram[offset] = data; } READ16_MEMBER( unichamp_state::unichamp_trapl_r ) @@ -225,7 +222,7 @@ WRITE16_MEMBER( unichamp_state::unichamp_trapl_w ) logerror("trapl_w(%x) = %x\n",offset,data); } -static MACHINE_CONFIG_START( unichamp, unichamp_state ) +static MACHINE_CONFIG_START( unichamp ) /* basic machine hardware */ //The CPU is really clocked this way: @@ -256,7 +253,7 @@ static MACHINE_CONFIG_START( unichamp, unichamp_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_GIC_ADD( "gic", XTAL_3_579545MHz, "screen" ) + MCFG_GIC_ADD( "gic", XTAL_3_579545MHz, "screen", READ8(unichamp_state, unichamp_gicram_r) ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40) /* cartridge */ @@ -280,4 +277,4 @@ ROM_START(unichamp) ROM_END -CONS( 1977, unichamp, 0, 0, unichamp, unichamp, unichamp_state, unichamp, "Unisonic", "Champion 2711", 0/*MACHINE_IMPERFECT_GRAPHICS*/) +CONS( 1977, unichamp, 0, 0, unichamp, unichamp, unichamp_state, unichamp, "Unisonic", "Champion 2711", 0/*MACHINE_IMPERFECT_GRAPHICS*/ ) diff --git a/src/mame/drivers/unico.cpp b/src/mame/drivers/unico.cpp index 0cd5aa02ebd..9bf32b2bf31 100644 --- a/src/mame/drivers/unico.cpp +++ b/src/mame/drivers/unico.cpp @@ -570,7 +570,7 @@ MACHINE_RESET_MEMBER(unico_state,unico) Burglar X ***************************************************************************/ -static MACHINE_CONFIG_START( burglarx, unico_state ) +static MACHINE_CONFIG_START( burglarx ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_32MHz/2) /* 16MHz */ @@ -600,7 +600,7 @@ static MACHINE_CONFIG_START( burglarx, unico_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.40) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.40) - MCFG_OKIM6295_ADD("oki", XTAL_32MHz/32, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki", XTAL_32MHz/32, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.80) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.80) MACHINE_CONFIG_END @@ -616,7 +616,7 @@ MACHINE_RESET_MEMBER(unico_state,zeropt) MACHINE_RESET_CALL_MEMBER(unico); } -static MACHINE_CONFIG_START( zeropnt, unico_state ) +static MACHINE_CONFIG_START( zeropnt ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_32MHz/2) /* 16MHz */ @@ -646,7 +646,7 @@ static MACHINE_CONFIG_START( zeropnt, unico_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.40) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.40) - MCFG_OKIM6295_ADD("oki", XTAL_32MHz/32, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki", XTAL_32MHz/32, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.80) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.80) MACHINE_CONFIG_END @@ -657,7 +657,7 @@ MACHINE_CONFIG_END Zero Point 2 ***************************************************************************/ -static MACHINE_CONFIG_START( zeropnt2, unico_state ) +static MACHINE_CONFIG_START( zeropnt2 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68EC020, XTAL_32MHz/2) /* 16MHz */ @@ -689,11 +689,11 @@ static MACHINE_CONFIG_START( zeropnt2, unico_state ) MCFG_SOUND_ROUTE(0, "lspeaker", 0.70) MCFG_SOUND_ROUTE(1, "rspeaker", 0.70) - MCFG_OKIM6295_ADD("oki1", XTAL_32MHz/32, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki1", XTAL_32MHz/32, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.40) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.40) - MCFG_OKIM6295_ADD("oki2", XTAL_14_31818MHz/4, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki2", XTAL_14_31818MHz/4, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.20) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.20) MACHINE_CONFIG_END @@ -1050,8 +1050,8 @@ ROM_END ***************************************************************************/ -GAME( 1997, burglarx, 0, burglarx, burglarx, driver_device, 0, ROT0, "Unico", "Burglar X" , 0 ) -GAME( 1998, zeropnt, 0, zeropnt, zeropnt, driver_device, 0, ROT0, "Unico", "Zero Point (set 1)", 0 ) -GAME( 1998, zeropnta, zeropnt, zeropnt, zeropnt, driver_device, 0, ROT0, "Unico", "Zero Point (set 2)", 0 ) -GAME( 1998, zeropntj, zeropnt, zeropnt, zeropnt, driver_device, 0, ROT0, "Unico", "Zero Point (Japan)", 0 ) -GAME( 1999, zeropnt2, 0, zeropnt2, zeropnt2, driver_device, 0, ROT0, "Unico", "Zero Point 2", 0 ) +GAME( 1997, burglarx, 0, burglarx, burglarx, unico_state, 0, ROT0, "Unico", "Burglar X" , 0 ) +GAME( 1998, zeropnt, 0, zeropnt, zeropnt, unico_state, 0, ROT0, "Unico", "Zero Point (set 1)", 0 ) +GAME( 1998, zeropnta, zeropnt, zeropnt, zeropnt, unico_state, 0, ROT0, "Unico", "Zero Point (set 2)", 0 ) +GAME( 1998, zeropntj, zeropnt, zeropnt, zeropnt, unico_state, 0, ROT0, "Unico", "Zero Point (Japan)", 0 ) +GAME( 1999, zeropnt2, 0, zeropnt2, zeropnt2, unico_state, 0, ROT0, "Unico", "Zero Point 2", 0 ) diff --git a/src/mame/drivers/unior.cpp b/src/mame/drivers/unior.cpp index cc32d924c4a..cbeb12284ca 100644 --- a/src/mame/drivers/unior.cpp +++ b/src/mame/drivers/unior.cpp @@ -380,10 +380,10 @@ WRITE_LINE_MEMBER( unior_state::hrq_w ) void unior_state::machine_reset() { - m_maincpu->set_state_int(I8085_PC, 0xF800); + m_maincpu->set_state_int(i8080_cpu_device::I8085_PC, 0xF800); } -static MACHINE_CONFIG_START( unior, unior_state ) +static MACHINE_CONFIG_START( unior ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",I8080, XTAL_20MHz / 9) MCFG_CPU_PROGRAM_MAP(unior_mem) @@ -455,5 +455,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 19??, unior, radio86, 0, unior, unior, driver_device, 0, "", "Unior", MACHINE_NOT_WORKING ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ +COMP( 19??, unior, radio86, 0, unior, unior, unior_state, 0, "", "Unior", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/unistar.cpp b/src/mame/drivers/unistar.cpp index fc141caecb6..ffc6434301a 100644 --- a/src/mame/drivers/unistar.cpp +++ b/src/mame/drivers/unistar.cpp @@ -86,7 +86,7 @@ static GFXDECODE_START( unistar ) GFXDECODE_ENTRY( "chargen", 0x0000, unistar_charlayout, 0, 1 ) GFXDECODE_END -static MACHINE_CONFIG_START( unistar, unistar_state ) +static MACHINE_CONFIG_START( unistar ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",I8085A, XTAL_2MHz) MCFG_CPU_PROGRAM_MAP(unistar_mem) @@ -119,5 +119,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 198?, unistar, 0, 0, unistar, unistar, driver_device, 0, "Callan Data Systems", "Unistar 200 Terminal", MACHINE_IS_SKELETON ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 198?, unistar, 0, 0, unistar, unistar, unistar_state, 0, "Callan Data Systems", "Unistar 200 Terminal", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/univac.cpp b/src/mame/drivers/univac.cpp index 88a78da0e6c..5cd68b651d0 100644 --- a/src/mame/drivers/univac.cpp +++ b/src/mame/drivers/univac.cpp @@ -167,7 +167,7 @@ static const z80_daisy_config daisy_chain[] = { nullptr } }; -static MACHINE_CONFIG_START( uts20, univac_state ) +static MACHINE_CONFIG_START( uts20 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80, XTAL_4MHz) // unknown clock MCFG_CPU_PROGRAM_MAP(uts20_mem) @@ -211,5 +211,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1980, uts20, 0, 0, uts20, uts20, driver_device, 0, "Sperry Univac", "UTS-20", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 1980, uts20, 0, 0, uts20, uts20, univac_state, 0, "Sperry Univac", "UTS-20", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/unixpc.cpp b/src/mame/drivers/unixpc.cpp index 2eb0c34cca2..4f5102e862e 100644 --- a/src/mame/drivers/unixpc.cpp +++ b/src/mame/drivers/unixpc.cpp @@ -45,7 +45,7 @@ public: required_device m_maincpu; required_device m_ram; - required_device m_wd2797; + required_device m_wd2797; required_device m_floppy; required_device m_ramrombank; @@ -283,7 +283,7 @@ static ADDRESS_MAP_START( unixpc_mem, AS_PROGRAM, 16, unixpc_state ) AM_RANGE(0x4d0000, 0x4d7fff) AM_WRITE(diskdma_ptr_w) AM_RANGE(0x4e0000, 0x4e0001) AM_WRITE(disk_control_w) AM_RANGE(0x800000, 0x803fff) AM_MIRROR(0x7fc000) AM_ROM AM_REGION("bootrom", 0) - AM_RANGE(0xe10000, 0xe10007) AM_DEVREADWRITE8("wd2797", wd_fdc_t, read, write, 0x00ff) + AM_RANGE(0xe10000, 0xe10007) AM_DEVREADWRITE8("wd2797", wd_fdc_device_base, read, write, 0x00ff) AM_RANGE(0xe30000, 0xe30001) AM_READ(rtc_r) AM_RANGE(0xe40000, 0xe40001) AM_WRITE(error_enable_w) AM_RANGE(0xe41000, 0xe41001) AM_WRITE(parity_enable_w) @@ -313,7 +313,7 @@ static SLOT_INTERFACE_START( unixpc_floppies ) SLOT_INTERFACE( "525dd", FLOPPY_525_DD ) SLOT_INTERFACE_END -static MACHINE_CONFIG_START( unixpc, unixpc_state ) +static MACHINE_CONFIG_START( unixpc ) // basic machine hardware MCFG_CPU_ADD("maincpu", M68010, XTAL_10MHz) MCFG_CPU_PROGRAM_MAP(unixpc_mem) @@ -365,5 +365,5 @@ ROM_END GAME DRIVERS ***************************************************************************/ -// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS -COMP( 1985, 3b1, 0, 0, unixpc, unixpc, driver_device, 0, "AT&T", "3B1", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1985, 3b1, 0, 0, unixpc, unixpc, unixpc_state, 0, "AT&T", "3B1", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/unkhorse.cpp b/src/mame/drivers/unkhorse.cpp index 67460abb150..596f86f2418 100644 --- a/src/mame/drivers/unkhorse.cpp +++ b/src/mame/drivers/unkhorse.cpp @@ -191,7 +191,7 @@ INTERRUPT_GEN_MEMBER(horse_state::interrupt) device.execute().set_input_line(I8085_RST75_LINE, CLEAR_LINE); } -static MACHINE_CONFIG_START( horse, horse_state ) +static MACHINE_CONFIG_START( horse ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8085A, XTAL_12MHz / 2) @@ -240,4 +240,4 @@ ROM_START( unkhorse ) ROM_END -GAME( 1981?, unkhorse, 0, horse, horse, driver_device, 0, ROT270, "", "unknown Japanese horse gambling game", MACHINE_SUPPORTS_SAVE ) // copyright not shown, datecodes on pcb suggests early-1981 +GAME( 1981?, unkhorse, 0, horse, horse, horse_state, 0, ROT270, "", "unknown Japanese horse gambling game", MACHINE_SUPPORTS_SAVE ) // copyright not shown, datecodes on pcb suggests early-1981 diff --git a/src/mame/drivers/upscope.cpp b/src/mame/drivers/upscope.cpp index b59625b5eac..ac732c80370 100644 --- a/src/mame/drivers/upscope.cpp +++ b/src/mame/drivers/upscope.cpp @@ -256,7 +256,7 @@ INPUT_PORTS_END * *************************************/ -static MACHINE_CONFIG_START( upscope, upscope_state ) +static MACHINE_CONFIG_START( upscope ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, amiga_state::CLK_7M_NTSC) diff --git a/src/mame/drivers/usbilliards.cpp b/src/mame/drivers/usbilliards.cpp index 756270fcd18..535b22d4852 100644 --- a/src/mame/drivers/usbilliards.cpp +++ b/src/mame/drivers/usbilliards.cpp @@ -48,7 +48,7 @@ public: } // devices - required_device m_maincpu; + required_device m_maincpu; required_device m_video; protected: @@ -91,7 +91,7 @@ void usbilliards_state::video_start() { } -static MACHINE_CONFIG_START( usbilliards, usbilliards_state ) +static MACHINE_CONFIG_START( usbilliards ) /* basic machine hardware */ MCFG_DEVICE_ADD("maincpu", NETLIST_CPU, NETLIST_CLOCK) @@ -135,4 +135,4 @@ ROM_START( sharkusb ) ROM_LOAD( "82s123_a.6n", 0x0100, 0x0100, CRC(63f621cb) SHA1(6c6e6f22313db33afd069dae1b0180b5ccddfa56) ) // 82s123 - handwritten A - A also etched in copper next to socket ROM_END -GAME( 1975, sharkusb, 0, usbilliards, 0, driver_device, 0, ROT0, "US Billiards Inc.", "Shark [TTL]", MACHINE_IS_SKELETON ) +GAME( 1975, sharkusb, 0, usbilliards, 0, usbilliards_state, 0, ROT0, "US Billiards Inc.", "Shark [TTL]", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/usgames.cpp b/src/mame/drivers/usgames.cpp index 055c580a33e..3724fd62b56 100644 --- a/src/mame/drivers/usgames.cpp +++ b/src/mame/drivers/usgames.cpp @@ -217,7 +217,7 @@ static GFXDECODE_START( usgames ) GFXDECODE_END -static MACHINE_CONFIG_START( usg32, usgames_state ) +static MACHINE_CONFIG_START( usg32 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809, 2000000) /* ?? */ @@ -405,11 +405,11 @@ ROM_START( usg182 ) /* Version 18.2 */ ROM_END -GAME( 1987, usg32, 0, usg32, usg32, driver_device, 0, ROT0, "U.S. Games", "Super Duper Casino (California V3.2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, superten, 0, usg32, usg83, driver_device, 0, ROT0, "U.S. Games", "Super Ten V8.3", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, usg83x, superten, usg32, usg83, driver_device, 0, ROT0, "U.S. Games", "Super Ten V8.3X", MACHINE_SUPPORTS_SAVE ) /* "Experimental" version?? */ -GAME( 1988, usg82, superten, usg32, usg83, driver_device, 0, ROT0, "U.S. Games", "Super Ten V8.2" , MACHINE_SUPPORTS_SAVE ) -GAME( 1992, usgames, 0, usg185, usg83, driver_device, 0, ROT0, "U.S. Games", "Games V25.4X", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, usg187c, usgames, usg185, usg83, driver_device, 0, ROT0, "U.S. Games", "Games V18.7C", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, usg185, usgames, usg185, usg83, driver_device, 0, ROT0, "U.S. Games", "Games V18.5", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, usg182, usgames, usg185, usg83, driver_device, 0, ROT0, "U.S. Games", "Games V18.2", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, usg32, 0, usg32, usg32, usgames_state, 0, ROT0, "U.S. Games", "Super Duper Casino (California V3.2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, superten, 0, usg32, usg83, usgames_state, 0, ROT0, "U.S. Games", "Super Ten V8.3", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, usg83x, superten, usg32, usg83, usgames_state, 0, ROT0, "U.S. Games", "Super Ten V8.3X", MACHINE_SUPPORTS_SAVE ) /* "Experimental" version?? */ +GAME( 1988, usg82, superten, usg32, usg83, usgames_state, 0, ROT0, "U.S. Games", "Super Ten V8.2" , MACHINE_SUPPORTS_SAVE ) +GAME( 1992, usgames, 0, usg185, usg83, usgames_state, 0, ROT0, "U.S. Games", "Games V25.4X", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, usg187c, usgames, usg185, usg83, usgames_state, 0, ROT0, "U.S. Games", "Games V18.7C", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, usg185, usgames, usg185, usg83, usgames_state, 0, ROT0, "U.S. Games", "Games V18.5", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, usg182, usgames, usg185, usg83, usgames_state, 0, ROT0, "U.S. Games", "Games V18.2", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/ut88.cpp b/src/mame/drivers/ut88.cpp index 2a1ea0fbec1..ad8ef9be646 100644 --- a/src/mame/drivers/ut88.cpp +++ b/src/mame/drivers/ut88.cpp @@ -183,7 +183,7 @@ static INPUT_PORTS_START( ut88mini ) INPUT_PORTS_END /* Machine driver */ -static MACHINE_CONFIG_START( ut88, ut88_state ) +static MACHINE_CONFIG_START( ut88 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8080, 2000000) MCFG_CPU_PROGRAM_MAP(ut88_mem) @@ -226,7 +226,7 @@ static MACHINE_CONFIG_START( ut88, ut88_state ) MCFG_SOFTWARE_LIST_ADD("cass_list","ut88") MACHINE_CONFIG_END -static MACHINE_CONFIG_START( ut88mini, ut88_state ) +static MACHINE_CONFIG_START( ut88mini ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8080, 2000000) MCFG_CPU_PROGRAM_MAP(ut88mini_mem) @@ -268,6 +268,6 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ COMP( 1989, ut88mini, 0, 0, ut88mini, ut88mini, ut88_state, ut88mini, "", "UT-88 mini", 0) -COMP( 1989, ut88, ut88mini, 0, ut88, ut88, ut88_state, ut88, "", "UT-88", 0) +COMP( 1989, ut88, ut88mini, 0, ut88, ut88, ut88_state, ut88, "", "UT-88", 0) diff --git a/src/mame/drivers/uzebox.cpp b/src/mame/drivers/uzebox.cpp index 1f07f7a1372..394630ed8de 100644 --- a/src/mame/drivers/uzebox.cpp +++ b/src/mame/drivers/uzebox.cpp @@ -273,7 +273,7 @@ DEVICE_IMAGE_LOAD_MEMBER(uzebox_state, uzebox_cart) * Machine definition * \****************************************************/ -static MACHINE_CONFIG_START( uzebox, uzebox_state ) +static MACHINE_CONFIG_START( uzebox ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", ATMEGA644, MASTER_CLOCK) @@ -312,5 +312,5 @@ ROM_START( uzebox ) ROM_REGION( 0x800, "eeprom", ROMREGION_ERASE00 ) /* on-die eeprom */ ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ -CONS(2010, uzebox, 0, 0, uzebox, uzebox, driver_device, 0, "Belogic", "Uzebox", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME */ +CONS(2010, uzebox, 0, 0, uzebox, uzebox, uzebox_state, 0, "Belogic", "Uzebox", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING) diff --git a/src/mame/drivers/v1050.cpp b/src/mame/drivers/v1050.cpp index 899640d33d1..ce065995414 100644 --- a/src/mame/drivers/v1050.cpp +++ b/src/mame/drivers/v1050.cpp @@ -486,7 +486,7 @@ static ADDRESS_MAP_START( v1050_io, AS_IO, 8, v1050_state ) AM_RANGE(0x8c, 0x8c) AM_DEVREADWRITE(I8251A_SIO_TAG, i8251_device, data_r, data_w) AM_RANGE(0x8d, 0x8d) AM_DEVREADWRITE(I8251A_SIO_TAG, i8251_device, status_r, control_w) AM_RANGE(0x90, 0x93) AM_DEVREADWRITE(I8255A_MISC_TAG, i8255_device, read, write) - AM_RANGE(0x94, 0x97) AM_DEVREADWRITE(MB8877_TAG, mb8877_t, read, write) + AM_RANGE(0x94, 0x97) AM_DEVREADWRITE(MB8877_TAG, mb8877_device, read, write) AM_RANGE(0x9c, 0x9f) AM_DEVREADWRITE(I8255A_RTC_TAG, i8255_device, read, write) AM_RANGE(0xa0, 0xa0) AM_READWRITE(vint_clr_r, vint_clr_w) AM_RANGE(0xb0, 0xb0) AM_READWRITE(dint_clr_r, dint_clr_w) @@ -1020,7 +1020,7 @@ void v1050_state::machine_reset() // Machine Driver -static MACHINE_CONFIG_START( v1050, v1050_state ) +static MACHINE_CONFIG_START( v1050 ) // basic machine hardware MCFG_CPU_ADD(Z80_TAG, Z80, XTAL_16MHz/4) MCFG_CPU_PROGRAM_MAP(v1050_mem) @@ -1149,5 +1149,5 @@ ROM_END // System Drivers -// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS -COMP( 1983, v1050, 0, 0, v1050, v1050, driver_device, 0, "Visual Technology Inc", "Visual 1050", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND | MACHINE_IMPERFECT_KEYBOARD ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1983, v1050, 0, 0, v1050, v1050, v1050_state, 0, "Visual Technology Inc", "Visual 1050", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND | MACHINE_IMPERFECT_KEYBOARD ) diff --git a/src/mame/drivers/v6809.cpp b/src/mame/drivers/v6809.cpp index 66540576ac6..47b8037c64e 100644 --- a/src/mame/drivers/v6809.cpp +++ b/src/mame/drivers/v6809.cpp @@ -90,7 +90,7 @@ public: DECLARE_WRITE8_MEMBER(videoram_w); DECLARE_WRITE8_MEMBER(v6809_address_w); DECLARE_WRITE8_MEMBER(v6809_register_w); - DECLARE_WRITE8_MEMBER(kbd_put); + void kbd_put(u8 data); DECLARE_WRITE_LINE_MEMBER(write_acia_clock); DECLARE_MACHINE_RESET(v6809); MC6845_UPDATE_ROW(crtc_update_row); @@ -105,7 +105,7 @@ private: required_device m_pia0; required_device m_maincpu; required_device m_crtc; - required_device m_fdc; + required_device m_fdc; required_device m_floppy0; required_device m_speaker; required_device m_acia0; @@ -126,7 +126,7 @@ static ADDRESS_MAP_START(v6809_mem, AS_PROGRAM, 8, v6809_state) AM_RANGE(0xf501, 0xf501) AM_MIRROR(0x36) AM_DEVREADWRITE("acia0", acia6850_device, data_r, data_w) AM_RANGE(0xf508, 0xf508) AM_MIRROR(0x36) AM_DEVREADWRITE("acia1", acia6850_device, status_r, control_w) // printer AM_RANGE(0xf509, 0xf509) AM_MIRROR(0x36) AM_DEVREADWRITE("acia1", acia6850_device, data_r, data_w) - AM_RANGE(0xf600, 0xf603) AM_MIRROR(0x3c) AM_DEVREADWRITE("fdc", mb8876_t, read, write) + AM_RANGE(0xf600, 0xf603) AM_MIRROR(0x3c) AM_DEVREADWRITE("fdc", mb8876_device, read, write) AM_RANGE(0xf640, 0xf64f) AM_MIRROR(0x30) AM_DEVREADWRITE("rtc", mm58274c_device, read, write) AM_RANGE(0xf680, 0xf683) AM_MIRROR(0x3c) AM_DEVREADWRITE("pia0", pia6821_device, read, write) AM_RANGE(0xf6c0, 0xf6c7) AM_MIRROR(0x08) AM_DEVREADWRITE("ptm", ptm6840_device, read, write) @@ -231,7 +231,7 @@ WRITE8_MEMBER( v6809_state::v6809_register_w ) // **** Keyboard **** -WRITE8_MEMBER( v6809_state::kbd_put ) +void v6809_state::kbd_put(u8 data) { m_term_data = data; m_pia0->cb1_w(0); @@ -293,7 +293,7 @@ SLOT_INTERFACE_END // *** Machine **** -static MACHINE_CONFIG_START( v6809, v6809_state ) +static MACHINE_CONFIG_START( v6809 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809, XTAL_16MHz / 4) MCFG_CPU_PROGRAM_MAP(v6809_mem) @@ -323,7 +323,7 @@ static MACHINE_CONFIG_START( v6809, v6809_state ) MCFG_MC6845_ADDR_CHANGED_CB(v6809_state, crtc_update_addr) MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0) - MCFG_GENERIC_KEYBOARD_CB(WRITE8(v6809_state, kbd_put)) + MCFG_GENERIC_KEYBOARD_CB(PUT(v6809_state, kbd_put)) // port A = drive select and 2 control lines ; port B = keyboard // CB2 connects to the interrupt pin of the RTC (the rtc code doesn't support it) @@ -376,5 +376,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1982, v6809, 0, 0, v6809, v6809, driver_device, 0, "Microkit", "Vegas 6809", MACHINE_NOT_WORKING ) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 1982, v6809, 0, 0, v6809, v6809, v6809_state, 0, "Microkit", "Vegas 6809", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/vamphalf.cpp b/src/mame/drivers/vamphalf.cpp index 06a5b2abfde..9e83dade2a0 100644 --- a/src/mame/drivers/vamphalf.cpp +++ b/src/mame/drivers/vamphalf.cpp @@ -983,7 +983,7 @@ static GFXDECODE_START( vamphalf ) GFXDECODE_END -static MACHINE_CONFIG_START( common, vamphalf_state ) +static MACHINE_CONFIG_START( common ) MCFG_CPU_ADD("maincpu", E116T, 50000000) /* 50 MHz */ MCFG_CPU_PROGRAM_MAP(common_map) MCFG_CPU_VBLANK_INT_DRIVER("screen", vamphalf_state, irq1_line_hold) @@ -1014,7 +1014,7 @@ static MACHINE_CONFIG_FRAGMENT( sound_ym_oki ) MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) - MCFG_OKIM6295_ADD("oki", XTAL_28MHz/16 , OKIM6295_PIN7_HIGH) /* 1.75MHz */ + MCFG_OKIM6295_ADD("oki", XTAL_28MHz/16 , PIN7_HIGH) /* 1.75MHz */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) MACHINE_CONFIG_END @@ -1026,7 +1026,7 @@ static MACHINE_CONFIG_FRAGMENT( sound_suplup ) MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) - MCFG_OKIM6295_ADD("oki", XTAL_14_31818MHz/8, OKIM6295_PIN7_HIGH) /* 1.7897725 MHz */ + MCFG_OKIM6295_ADD("oki", XTAL_14_31818MHz/8, PIN7_HIGH) /* 1.7897725 MHz */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) MACHINE_CONFIG_END @@ -1123,7 +1123,7 @@ MACHINE_CONFIG_END -static MACHINE_CONFIG_START( aoh, vamphalf_state ) +static MACHINE_CONFIG_START( aoh ) MCFG_CPU_ADD("maincpu", E132XN, XTAL_20MHz*4) /* 4x internal multiplier */ MCFG_CPU_PROGRAM_MAP(aoh_map) MCFG_CPU_IO_MAP(aoh_io) @@ -1151,11 +1151,11 @@ static MACHINE_CONFIG_START( aoh, vamphalf_state ) MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) - MCFG_OKIM6295_ADD("oki_1", XTAL_32MHz/8, OKIM6295_PIN7_HIGH) /* 4MHz */ + MCFG_OKIM6295_ADD("oki_1", XTAL_32MHz/8, PIN7_HIGH) /* 4MHz */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) - MCFG_OKIM6295_ADD("oki_2", XTAL_32MHz/32, OKIM6295_PIN7_HIGH) /* 1MHz */ + MCFG_OKIM6295_ADD("oki_2", XTAL_32MHz/32, PIN7_HIGH) /* 1MHz */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) MACHINE_CONFIG_END @@ -2990,27 +2990,27 @@ DRIVER_INIT_MEMBER(vamphalf_state,boonggab) m_flip_bit = 1; } -GAME( 1999, coolmini, 0, coolmini, common, vamphalf_state, coolmini, ROT0, "SemiCom", "Cool Minigame Collection", MACHINE_SUPPORTS_SAVE ) -GAME( 1999, jmpbreak, 0, jmpbreak, common, vamphalf_state, jmpbreak, ROT0, "F2 System", "Jumping Break" , MACHINE_SUPPORTS_SAVE ) -GAME( 1999, suplup, 0, suplup, common, vamphalf_state, suplup, ROT0, "Omega System", "Super Lup Lup Puzzle / Zhuan Zhuan Puzzle (version 4.0 / 990518)" , MACHINE_SUPPORTS_SAVE ) -GAME( 1999, luplup, suplup, suplup, common, vamphalf_state, luplup, ROT0, "Omega System", "Lup Lup Puzzle / Zhuan Zhuan Puzzle (version 3.0 / 990128)", MACHINE_SUPPORTS_SAVE ) -GAME( 1999, luplup29, suplup, suplup, common, vamphalf_state, luplup29, ROT0, "Omega System", "Lup Lup Puzzle / Zhuan Zhuan Puzzle (version 2.9 / 990108)", MACHINE_SUPPORTS_SAVE ) -GAME( 1999, puzlbang, suplup, suplup, common, vamphalf_state, puzlbang, ROT0, "Omega System", "Puzzle Bang Bang (Korea, version 2.9 / 990108)", MACHINE_SUPPORTS_SAVE ) -GAME( 1999, puzlbanga, suplup, suplup, common, vamphalf_state, puzlbang, ROT0, "Omega System", "Puzzle Bang Bang (Korea, version 2.8 / 990106)", MACHINE_SUPPORTS_SAVE ) -GAME( 1999, vamphalf, 0, vamphalf, common, vamphalf_state, vamphalf, ROT0, "Danbi / F2 System", "Vamf x1/2 (Europe)", MACHINE_SUPPORTS_SAVE ) -GAME( 1999, vamphalfk, vamphalf, vamphalf, common, vamphalf_state, vamphafk, ROT0, "Danbi / F2 System", "Vamp x1/2 (Korea)", MACHINE_SUPPORTS_SAVE ) -GAME( 2000, dquizgo2, 0, coolmini, common, vamphalf_state, dquizgo2, ROT0, "SemiCom", "Date Quiz Go Go Episode 2" , MACHINE_SUPPORTS_SAVE ) -GAME( 2000, misncrft, 0, misncrft, common, vamphalf_state, misncrft, ROT90, "Sun", "Mission Craft (version 2.7)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 2000, misncrfta, misncrft, misncrft, common, vamphalf_state, misncrft, ROT90, "Sun", "Mission Craft (version 2.4)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 2000, mrdig, 0, mrdig, common, vamphalf_state, mrdig, ROT0, "Sun", "Mr. Dig", MACHINE_SUPPORTS_SAVE ) -GAME( 2001, dtfamily, 0, coolmini, common, vamphalf_state, dtfamily, ROT0, "SemiCom", "Diet Family", MACHINE_SUPPORTS_SAVE ) -GAME( 2001, finalgdr, 0, finalgdr, finalgdr, vamphalf_state, finalgdr, ROT0, "SemiCom", "Final Godori (Korea, version 2.20.5915)", MACHINE_SUPPORTS_SAVE ) -GAME( 2001, mrkicker, 0, coolmini, common, vamphalf_state, mrkicker,ROT0, "SemiCom", "Mr. Kicker (F-E1-16-010 PCB)", MACHINE_SUPPORTS_SAVE ) -GAME( 2001, mrkickera, mrkicker, mrkickera,finalgdr, vamphalf_state, mrkickera, ROT0, "SemiCom", "Mr. Kicker (SEMICOM-003b PCB)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) // if you allow eeprom saving works then this set corrupts the eeprom and then won't boot -GAME( 2001, toyland, 0, coolmini, common, vamphalf_state, toyland, ROT0, "SemiCom", "Toy Land Adventure", MACHINE_SUPPORTS_SAVE ) -GAME( 2001, wivernwg, 0, wyvernwg, common, vamphalf_state, wyvernwg, ROT270, "SemiCom", "Wivern Wings", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 2001, wyvernwg, wivernwg, wyvernwg, common, vamphalf_state, wyvernwg, ROT270, "SemiCom (Game Vision license)", "Wyvern Wings (set 1)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 2001, wyvernwga, wivernwg, wyvernwg, common, vamphalf_state, wyvernwg, ROT270, "SemiCom (Game Vision license)", "Wyvern Wings (set 2)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 2001, aoh, 0, aoh, aoh, vamphalf_state, aoh, ROT0, "Unico", "Age Of Heroes - Silkroad 2 (v0.63 - 2001/02/07)", MACHINE_SUPPORTS_SAVE ) -GAME( 2001, boonggab, 0, boonggab, boonggab, vamphalf_state, boonggab, ROT270, "Taff System", "Boong-Ga Boong-Ga (Spank'em!)", MACHINE_SUPPORTS_SAVE ) -GAME( 199?, yorijori, 0, yorijori, common, vamphalf_state, yorijori, ROT0, "Golden Bell Entertainment", "Yori Jori Kuk Kuk", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1999, coolmini, 0, coolmini, common, vamphalf_state, coolmini, ROT0, "SemiCom", "Cool Minigame Collection", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, jmpbreak, 0, jmpbreak, common, vamphalf_state, jmpbreak, ROT0, "F2 System", "Jumping Break" , MACHINE_SUPPORTS_SAVE ) +GAME( 1999, suplup, 0, suplup, common, vamphalf_state, suplup, ROT0, "Omega System", "Super Lup Lup Puzzle / Zhuan Zhuan Puzzle (version 4.0 / 990518)" , MACHINE_SUPPORTS_SAVE ) +GAME( 1999, luplup, suplup, suplup, common, vamphalf_state, luplup, ROT0, "Omega System", "Lup Lup Puzzle / Zhuan Zhuan Puzzle (version 3.0 / 990128)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, luplup29, suplup, suplup, common, vamphalf_state, luplup29, ROT0, "Omega System", "Lup Lup Puzzle / Zhuan Zhuan Puzzle (version 2.9 / 990108)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, puzlbang, suplup, suplup, common, vamphalf_state, puzlbang, ROT0, "Omega System", "Puzzle Bang Bang (Korea, version 2.9 / 990108)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, puzlbanga, suplup, suplup, common, vamphalf_state, puzlbang, ROT0, "Omega System", "Puzzle Bang Bang (Korea, version 2.8 / 990106)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, vamphalf, 0, vamphalf, common, vamphalf_state, vamphalf, ROT0, "Danbi / F2 System", "Vamf x1/2 (Europe)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, vamphalfk, vamphalf, vamphalf, common, vamphalf_state, vamphafk, ROT0, "Danbi / F2 System", "Vamp x1/2 (Korea)", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, dquizgo2, 0, coolmini, common, vamphalf_state, dquizgo2, ROT0, "SemiCom", "Date Quiz Go Go Episode 2" , MACHINE_SUPPORTS_SAVE ) +GAME( 2000, misncrft, 0, misncrft, common, vamphalf_state, misncrft, ROT90, "Sun", "Mission Craft (version 2.7)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 2000, misncrfta, misncrft, misncrft, common, vamphalf_state, misncrft, ROT90, "Sun", "Mission Craft (version 2.4)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 2000, mrdig, 0, mrdig, common, vamphalf_state, mrdig, ROT0, "Sun", "Mr. Dig", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, dtfamily, 0, coolmini, common, vamphalf_state, dtfamily, ROT0, "SemiCom", "Diet Family", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, finalgdr, 0, finalgdr, finalgdr, vamphalf_state, finalgdr, ROT0, "SemiCom", "Final Godori (Korea, version 2.20.5915)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, mrkicker, 0, coolmini, common, vamphalf_state, mrkicker, ROT0, "SemiCom", "Mr. Kicker (F-E1-16-010 PCB)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, mrkickera, mrkicker, mrkickera, finalgdr, vamphalf_state, mrkickera, ROT0, "SemiCom", "Mr. Kicker (SEMICOM-003b PCB)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) // if you allow eeprom saving works then this set corrupts the eeprom and then won't boot +GAME( 2001, toyland, 0, coolmini, common, vamphalf_state, toyland, ROT0, "SemiCom", "Toy Land Adventure", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, wivernwg, 0, wyvernwg, common, vamphalf_state, wyvernwg, ROT270, "SemiCom", "Wivern Wings", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 2001, wyvernwg, wivernwg, wyvernwg, common, vamphalf_state, wyvernwg, ROT270, "SemiCom (Game Vision license)", "Wyvern Wings (set 1)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 2001, wyvernwga, wivernwg, wyvernwg, common, vamphalf_state, wyvernwg, ROT270, "SemiCom (Game Vision license)", "Wyvern Wings (set 2)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 2001, aoh, 0, aoh, aoh, vamphalf_state, aoh, ROT0, "Unico", "Age Of Heroes - Silkroad 2 (v0.63 - 2001/02/07)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, boonggab, 0, boonggab, boonggab, vamphalf_state, boonggab, ROT270, "Taff System", "Boong-Ga Boong-Ga (Spank'em!)", MACHINE_SUPPORTS_SAVE ) +GAME( 199?, yorijori, 0, yorijori, common, vamphalf_state, yorijori, ROT0, "Golden Bell Entertainment", "Yori Jori Kuk Kuk", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/vaportra.cpp b/src/mame/drivers/vaportra.cpp index ef99c3874ee..97b54521db3 100644 --- a/src/mame/drivers/vaportra.cpp +++ b/src/mame/drivers/vaportra.cpp @@ -238,7 +238,7 @@ void vaportra_state::machine_reset() m_priority[1] = 0; } -static MACHINE_CONFIG_START( vaportra, vaportra_state ) +static MACHINE_CONFIG_START( vaportra ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000,XTAL_24MHz/2) /* Custom chip 59 */ @@ -311,10 +311,10 @@ static MACHINE_CONFIG_START( vaportra, vaportra_state ) MCFG_SOUND_ROUTE(0, "mono", 0.60) MCFG_SOUND_ROUTE(1, "mono", 0.60) - MCFG_OKIM6295_ADD("oki1", XTAL_32_22MHz/32, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki1", XTAL_32_22MHz/32, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.75) - MCFG_OKIM6295_ADD("oki2", XTAL_32_22MHz/16, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki2", XTAL_32_22MHz/16, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60) MACHINE_CONFIG_END diff --git a/src/mame/drivers/vastar.cpp b/src/mame/drivers/vastar.cpp index bc3f7c329ec..db3d13b8d97 100644 --- a/src/mame/drivers/vastar.cpp +++ b/src/mame/drivers/vastar.cpp @@ -423,7 +423,7 @@ INTERRUPT_GEN_MEMBER(vastar_state::vblank_irq) device.execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE); } -static MACHINE_CONFIG_START( vastar, vastar_state ) +static MACHINE_CONFIG_START( vastar ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_18_432MHz/6) @@ -657,8 +657,8 @@ ROM_START( pprobe ) ROM_END -GAME( 1983, vastar, 0, vastar, vastar, driver_device, 0, ROT90, "Orca (Sesame Japan license)", "Vastar (set 1)", MACHINE_SUPPORTS_SAVE ) // Sesame Japan was a brand of Fujikousan -GAME( 1983, vastar2, vastar, vastar, vastar, driver_device, 0, ROT90, "Orca (Sesame Japan license)", "Vastar (set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, vastar3, vastar, vastar, vastar, driver_device, 0, ROT90, "Orca (Sesame Japan license)", "Vastar (set 3)", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, vastar4, vastar, vastar, vastar4,driver_device, 0, ROT90, "Orca (Sesame Japan license)", "Vastar (set 4)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, pprobe, 0, vastar, pprobe, driver_device, 0, ROT90, "Crux / Kyugo?", "Planet Probe (prototype?)", MACHINE_SUPPORTS_SAVE ) // has no Copyright, probably because Crux didn't have a trading name at this point? +GAME( 1983, vastar, 0, vastar, vastar, vastar_state, 0, ROT90, "Orca (Sesame Japan license)", "Vastar (set 1)", MACHINE_SUPPORTS_SAVE ) // Sesame Japan was a brand of Fujikousan +GAME( 1983, vastar2, vastar, vastar, vastar, vastar_state, 0, ROT90, "Orca (Sesame Japan license)", "Vastar (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, vastar3, vastar, vastar, vastar, vastar_state, 0, ROT90, "Orca (Sesame Japan license)", "Vastar (set 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, vastar4, vastar, vastar, vastar4, vastar_state, 0, ROT90, "Orca (Sesame Japan license)", "Vastar (set 4)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, pprobe, 0, vastar, pprobe, vastar_state, 0, ROT90, "Crux / Kyugo?", "Planet Probe (prototype?)", MACHINE_SUPPORTS_SAVE ) // has no Copyright, probably because Crux didn't have a trading name at this point? diff --git a/src/mame/drivers/vax11.cpp b/src/mame/drivers/vax11.cpp index 6ef07148c04..99fa220c047 100644 --- a/src/mame/drivers/vax11.cpp +++ b/src/mame/drivers/vax11.cpp @@ -88,7 +88,7 @@ public: DECLARE_READ16_MEMBER( term_tx_status_r ); DECLARE_READ16_MEMBER( term_rx_status_r ); DECLARE_WRITE16_MEMBER( term_w ); - DECLARE_WRITE8_MEMBER( kbd_put ); + void kbd_put(u8 data); uint8_t m_term_data; uint16_t m_term_status; }; @@ -131,13 +131,13 @@ ADDRESS_MAP_END static INPUT_PORTS_START( vax11 ) INPUT_PORTS_END -WRITE8_MEMBER( vax11_state::kbd_put ) +void vax11_state::kbd_put(u8 data) { m_term_data = data; m_term_status = 0xffff; } -static MACHINE_CONFIG_START( vax11, vax11_state ) +static MACHINE_CONFIG_START( vax11 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",T11, XTAL_4MHz) // Need proper CPU here MCFG_T11_INITIAL_MODE(0 << 13) @@ -145,7 +145,7 @@ static MACHINE_CONFIG_START( vax11, vax11_state ) /* video hardware */ MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0) - MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(vax11_state, kbd_put)) + MCFG_GENERIC_TERMINAL_KEYBOARD_CB(PUT(vax11_state, kbd_put)) MCFG_RX01_ADD("rx01") MACHINE_CONFIG_END @@ -170,5 +170,5 @@ ROM_START( vax785 ) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1984, vax785, 0, 0, vax11, vax11, driver_device, 0, "Digital Equipment Corporation", "VAX-11/785", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +COMP( 1984, vax785, 0, 0, vax11, vax11, vax11_state, 0, "Digital Equipment Corporation", "VAX-11/785", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) diff --git a/src/mame/drivers/vball.cpp b/src/mame/drivers/vball.cpp index aa933868d46..14f52abeb28 100644 --- a/src/mame/drivers/vball.cpp +++ b/src/mame/drivers/vball.cpp @@ -401,7 +401,7 @@ static GFXDECODE_START( vb ) GFXDECODE_END -static MACHINE_CONFIG_START( vball, vball_state ) +static MACHINE_CONFIG_START( vball ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, CPU_CLOCK) /* 2 MHz - measured by guru but it makes the game far far too slow ?! */ @@ -432,7 +432,7 @@ static MACHINE_CONFIG_START( vball, vball_state ) MCFG_SOUND_ROUTE(0, "lspeaker", 0.60) MCFG_SOUND_ROUTE(1, "rspeaker", 0.60) - MCFG_OKIM6295_ADD("oki", 1056000, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", 1056000, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) MACHINE_CONFIG_END @@ -563,7 +563,7 @@ ROM_START( vball2pjb ) /* bootleg of the Japan set with unmoddified program rom ROM_END -GAME( 1988, vball, 0, vball, vball, driver_device, 0, ROT0, "Technos Japan", "U.S. Championship V'ball (US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, vball2pj, vball, vball, vball2pj, driver_device, 0, ROT0, "Technos Japan", "U.S. Championship V'ball (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, vballb, vball, vball, vball, driver_device, 0, ROT0, "bootleg", "U.S. Championship V'ball (bootleg of US set)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, vball2pjb,vball, vball, vball, driver_device, 0, ROT0, "bootleg", "U.S. Championship V'ball (bootleg of Japan set)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, vball, 0, vball, vball, vball_state, 0, ROT0, "Technos Japan", "U.S. Championship V'ball (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, vball2pj, vball, vball, vball2pj, vball_state, 0, ROT0, "Technos Japan", "U.S. Championship V'ball (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, vballb, vball, vball, vball, vball_state, 0, ROT0, "bootleg", "U.S. Championship V'ball (bootleg of US set)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, vball2pjb,vball, vball, vball, vball_state, 0, ROT0, "bootleg", "U.S. Championship V'ball (bootleg of Japan set)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/vboy.cpp b/src/mame/drivers/vboy.cpp index 18d5cc65ecb..c5b57d34e27 100644 --- a/src/mame/drivers/vboy.cpp +++ b/src/mame/drivers/vboy.cpp @@ -1345,7 +1345,7 @@ static SLOT_INTERFACE_START(vboy_cart) SLOT_INTERFACE_INTERNAL("vb_eeprom", VBOY_ROM_EEPROM) SLOT_INTERFACE_END -static MACHINE_CONFIG_START( vboy, vboy_state ) +static MACHINE_CONFIG_START( vboy ) /* basic machine hardware */ MCFG_CPU_ADD( "maincpu", V810, XTAL_20MHz ) @@ -1397,5 +1397,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -CONS( 1995, vboy, 0, 0, vboy, vboy, driver_device, 0, "Nintendo", "Virtual Boy", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +CONS( 1995, vboy, 0, 0, vboy, vboy, vboy_state, 0, "Nintendo", "Virtual Boy", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) diff --git a/src/mame/drivers/vc4000.cpp b/src/mame/drivers/vc4000.cpp index ab4b2c560f0..bbdf29ea99c 100644 --- a/src/mame/drivers/vc4000.cpp +++ b/src/mame/drivers/vc4000.cpp @@ -527,7 +527,7 @@ static SLOT_INTERFACE_START(vc4000_cart) SLOT_INTERFACE_END -static MACHINE_CONFIG_START( vc4000, vc4000_state ) +static MACHINE_CONFIG_START( vc4000 ) /* basic machine hardware */ // MCFG_CPU_ADD("maincpu", S2650, 865000) /* 3550000/4, 3580000/3, 4430000/3 */ MCFG_CPU_ADD("maincpu", S2650, 3546875/4) @@ -701,29 +701,29 @@ ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ -CONS(1978, vc4000, 0, 0, vc4000, vc4000, driver_device, 0, "Interton", "Interton Electronic VC 4000", MACHINE_IMPERFECT_GRAPHICS ) /* Germany, Austria, UK, Australia */ -CONS(1979, spc4000, vc4000, 0, vc4000, vc4000, driver_device, 0, "Grundig", "Super Play Computer 4000", MACHINE_IMPERFECT_GRAPHICS ) /* Germany, Austria */ -CONS(1979, cx3000tc, vc4000, 0, cx3000tc, vc4000, driver_device, 0, "Palson", "CX 3000 Tele Computer", MACHINE_IMPERFECT_GRAPHICS ) /* Spain */ -CONS(1979, tvc4000, vc4000, 0, vc4000, vc4000, driver_device, 0, "Koerting", "TVC-4000", MACHINE_IMPERFECT_GRAPHICS ) /* Argentina */ -CONS(1976, 1292apvs, 0, vc4000, vc4000, vc4000, driver_device, 0, "Radofin", "1292 Advanced Programmable Video System", MACHINE_IMPERFECT_GRAPHICS )/* Europe */ -CONS(1976, 1392apvs, 1292apvs, 0, vc4000, vc4000, driver_device, 0, "Radofin", "1392 Advanced Programmable Video System", MACHINE_IMPERFECT_GRAPHICS )/* Europe */ -CONS(1979, mpu1000, 1292apvs, 0, mpu1000, vc4000, driver_device, 0, "Acetronic", "MPU-1000", MACHINE_IMPERFECT_GRAPHICS ) /* Europe */ -CONS(1979, mpu2000, 1292apvs, 0, mpu1000, vc4000, driver_device, 0, "Acetronic", "MPU-2000", MACHINE_IMPERFECT_GRAPHICS ) /* Europe */ -CONS(1978, pp1292, 1292apvs, 0, vc4000, vc4000, driver_device, 0, "Audio Sonic", "PP-1292 Advanced Programmable Video System", MACHINE_IMPERFECT_GRAPHICS )/* Europe */ -CONS(1978, pp1392, 1292apvs, 0, vc4000, vc4000, driver_device, 0, "Audio Sonic", "PP-1392 Advanced Programmable Video System", MACHINE_IMPERFECT_GRAPHICS )/* Europe */ -CONS(1979, f1392, 1292apvs, 0, vc4000, vc4000, driver_device, 0, "Fountain", "Fountain 1392", MACHINE_IMPERFECT_GRAPHICS ) /* New Zealand */ -CONS(1979, fforce2, 1292apvs, 0, vc4000, vc4000, driver_device, 0, "Fountain", "Fountain Force 2", MACHINE_IMPERFECT_GRAPHICS ) /* New Zealand, Australia */ -CONS(1979, hmg1292, 1292apvs, 0, vc4000, vc4000, driver_device, 0, "Hanimex", "HMG 1292", MACHINE_IMPERFECT_GRAPHICS ) /* Europe */ -CONS(1979, hmg1392, 1292apvs, 0, vc4000, vc4000, driver_device, 0, "Hanimex", "HMG 1392", MACHINE_IMPERFECT_GRAPHICS ) /* Europe */ -CONS(1979, lnsy1392, 1292apvs, 0, vc4000, vc4000, driver_device, 0, "Lansay", "Lansay 1392", MACHINE_IMPERFECT_GRAPHICS ) /* Europe */ -CONS(1979, vc6000, 1292apvs, 0, vc4000, vc4000, driver_device, 0, "Prinztronic", "VC 6000", MACHINE_IMPERFECT_GRAPHICS ) /* UK */ -CONS(1979, database, 0, vc4000, database, vc4000, driver_device, 0, "Voltmace", "Voltmace Database", MACHINE_IMPERFECT_GRAPHICS ) /* UK */ -CONS(1979, vmdtbase, database, 0, database, vc4000, driver_device, 0, "Videomaster", "Videomaster Database Games-Computer", MACHINE_IMPERFECT_GRAPHICS )/* UK */ -CONS(1979, rwtrntcs, 0, vc4000, rwtrntcs, vc4000, driver_device, 0, "Rowtron", "Rowtron Television Computer System", MACHINE_IMPERFECT_GRAPHICS )/* UK */ -CONS(1979, telngtcs, rwtrntcs, 0, rwtrntcs, vc4000, driver_device, 0, "Teleng", "Teleng Television Computer System", MACHINE_IMPERFECT_GRAPHICS )/* UK */ -CONS(1979, krvnjvtv, 0, vc4000, vc4000, vc4000, driver_device, 0, "SOE", "OC Jeu Video TV Karvan", MACHINE_IMPERFECT_GRAPHICS ) /* France */ -CONS(1979, oc2000, krvnjvtv, 0, vc4000, vc4000, driver_device, 0, "SOE", "OC-2000", MACHINE_IMPERFECT_GRAPHICS ) /* France */ -CONS(1980, mpt05, 0, vc4000, vc4000, vc4000, driver_device, 0, "ITMC", "MPT-05", MACHINE_IMPERFECT_GRAPHICS ) /* France */ -CONS(1982, h21, 0, vc4000, h21, vc4000, driver_device, 0, "TRQ", "Video Computer H-21", MACHINE_IMPERFECT_GRAPHICS) // Spain -CONS(1979, elektor, 0, 0, elektor, elektor, driver_device, 0, "Elektor", "Elektor TV Games Computer", MACHINE_IMPERFECT_GRAPHICS ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +CONS(1978, vc4000, 0, 0, vc4000, vc4000, vc4000_state, 0, "Interton", "Interton Electronic VC 4000", MACHINE_IMPERFECT_GRAPHICS) // Germany, Austria, UK, Australia +CONS(1979, spc4000, vc4000, 0, vc4000, vc4000, vc4000_state, 0, "Grundig", "Super Play Computer 4000", MACHINE_IMPERFECT_GRAPHICS) // Germany, Austria +CONS(1979, cx3000tc, vc4000, 0, cx3000tc, vc4000, vc4000_state, 0, "Palson", "CX 3000 Tele Computer", MACHINE_IMPERFECT_GRAPHICS) // Spain +CONS(1979, tvc4000, vc4000, 0, vc4000, vc4000, vc4000_state, 0, "Koerting", "TVC-4000", MACHINE_IMPERFECT_GRAPHICS) // Argentina +CONS(1976, 1292apvs, 0, vc4000, vc4000, vc4000, vc4000_state, 0, "Radofin", "1292 Advanced Programmable Video System", MACHINE_IMPERFECT_GRAPHICS) // Europe +CONS(1976, 1392apvs, 1292apvs, 0, vc4000, vc4000, vc4000_state, 0, "Radofin", "1392 Advanced Programmable Video System", MACHINE_IMPERFECT_GRAPHICS) // Europe +CONS(1979, mpu1000, 1292apvs, 0, mpu1000, vc4000, vc4000_state, 0, "Acetronic", "MPU-1000", MACHINE_IMPERFECT_GRAPHICS) // Europe +CONS(1979, mpu2000, 1292apvs, 0, mpu1000, vc4000, vc4000_state, 0, "Acetronic", "MPU-2000", MACHINE_IMPERFECT_GRAPHICS) // Europe +CONS(1978, pp1292, 1292apvs, 0, vc4000, vc4000, vc4000_state, 0, "Audio Sonic", "PP-1292 Advanced Programmable Video System", MACHINE_IMPERFECT_GRAPHICS) // Europe +CONS(1978, pp1392, 1292apvs, 0, vc4000, vc4000, vc4000_state, 0, "Audio Sonic", "PP-1392 Advanced Programmable Video System", MACHINE_IMPERFECT_GRAPHICS) // Europe +CONS(1979, f1392, 1292apvs, 0, vc4000, vc4000, vc4000_state, 0, "Fountain", "Fountain 1392", MACHINE_IMPERFECT_GRAPHICS) // New Zealand +CONS(1979, fforce2, 1292apvs, 0, vc4000, vc4000, vc4000_state, 0, "Fountain", "Fountain Force 2", MACHINE_IMPERFECT_GRAPHICS) // New Zealand, Australia +CONS(1979, hmg1292, 1292apvs, 0, vc4000, vc4000, vc4000_state, 0, "Hanimex", "HMG 1292", MACHINE_IMPERFECT_GRAPHICS) // Europe +CONS(1979, hmg1392, 1292apvs, 0, vc4000, vc4000, vc4000_state, 0, "Hanimex", "HMG 1392", MACHINE_IMPERFECT_GRAPHICS) // Europe +CONS(1979, lnsy1392, 1292apvs, 0, vc4000, vc4000, vc4000_state, 0, "Lansay", "Lansay 1392", MACHINE_IMPERFECT_GRAPHICS) // Europe +CONS(1979, vc6000, 1292apvs, 0, vc4000, vc4000, vc4000_state, 0, "Prinztronic", "VC 6000", MACHINE_IMPERFECT_GRAPHICS) // UK +CONS(1979, database, 0, vc4000, database, vc4000, vc4000_state, 0, "Voltmace", "Voltmace Database", MACHINE_IMPERFECT_GRAPHICS) // UK +CONS(1979, vmdtbase, database, 0, database, vc4000, vc4000_state, 0, "Videomaster", "Videomaster Database Games-Computer", MACHINE_IMPERFECT_GRAPHICS) // UK +CONS(1979, rwtrntcs, 0, vc4000, rwtrntcs, vc4000, vc4000_state, 0, "Rowtron", "Rowtron Television Computer System", MACHINE_IMPERFECT_GRAPHICS) // UK +CONS(1979, telngtcs, rwtrntcs, 0, rwtrntcs, vc4000, vc4000_state, 0, "Teleng", "Teleng Television Computer System", MACHINE_IMPERFECT_GRAPHICS) // UK +CONS(1979, krvnjvtv, 0, vc4000, vc4000, vc4000, vc4000_state, 0, "SOE", "OC Jeu Video TV Karvan", MACHINE_IMPERFECT_GRAPHICS) // France +CONS(1979, oc2000, krvnjvtv, 0, vc4000, vc4000, vc4000_state, 0, "SOE", "OC-2000", MACHINE_IMPERFECT_GRAPHICS) // France +CONS(1980, mpt05, 0, vc4000, vc4000, vc4000, vc4000_state, 0, "ITMC", "MPT-05", MACHINE_IMPERFECT_GRAPHICS) // France +CONS(1982, h21, 0, vc4000, h21, vc4000, vc4000_state, 0, "TRQ", "Video Computer H-21", MACHINE_IMPERFECT_GRAPHICS) // Spain +CONS(1979, elektor, 0, 0, elektor, elektor, vc4000_state, 0, "Elektor", "Elektor TV Games Computer", MACHINE_IMPERFECT_GRAPHICS) diff --git a/src/mame/drivers/vcombat.cpp b/src/mame/drivers/vcombat.cpp index b16c1aec187..d92457c6ad8 100644 --- a/src/mame/drivers/vcombat.cpp +++ b/src/mame/drivers/vcombat.cpp @@ -543,7 +543,7 @@ WRITE_LINE_MEMBER(vcombat_state::sound_update) m_soundcpu->set_input_line(M68K_IRQ_1, state ? ASSERT_LINE : CLEAR_LINE); } -static MACHINE_CONFIG_START( vcombat, vcombat_state ) +static MACHINE_CONFIG_START( vcombat ) MCFG_CPU_ADD("maincpu", M68000, XTAL_12MHz) MCFG_CPU_PROGRAM_MAP(main_map) MCFG_CPU_VBLANK_INT_DRIVER("screen", vcombat_state, irq1_line_assert) @@ -591,7 +591,7 @@ static MACHINE_CONFIG_START( vcombat, vcombat_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( shadfgtr, vcombat_state ) +static MACHINE_CONFIG_START( shadfgtr ) MCFG_CPU_ADD("maincpu", M68000, XTAL_12MHz) MCFG_CPU_PROGRAM_MAP(main_map) MCFG_CPU_VBLANK_INT_DRIVER("screen", vcombat_state, irq1_line_assert) @@ -682,6 +682,6 @@ ROM_START( shadfgtr ) /* The second upper-board PAL couldn't be read */ ROM_END -/* YEAR NAME PARENT MACHINE INPUT INIT MONITOR COMPANY FULLNAME FLAGS */ -GAME( 1993, vcombat, 0, vcombat, vcombat, vcombat_state, vcombat, ORIENTATION_FLIP_X, "VR8 Inc.", "Virtual Combat", MACHINE_NOT_WORKING ) +// YEAR NAME PARENT MACHINE INPUT STATE INIT MONITOR COMPANY FULLNAME FLAGS +GAME( 1993, vcombat, 0, vcombat, vcombat, vcombat_state, vcombat, ORIENTATION_FLIP_X, "VR8 Inc.", "Virtual Combat", MACHINE_NOT_WORKING ) GAME( 1993, shadfgtr, 0, shadfgtr, shadfgtr, vcombat_state, shadfgtr, ROT0, "Dutech Inc.", "Shadow Fighters", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/vcs80.cpp b/src/mame/drivers/vcs80.cpp index eea5014f8bc..7cc93cef46e 100644 --- a/src/mame/drivers/vcs80.cpp +++ b/src/mame/drivers/vcs80.cpp @@ -209,7 +209,7 @@ void vcs80_state::machine_start() /* Machine Driver */ -static MACHINE_CONFIG_START( vcs80, vcs80_state ) +static MACHINE_CONFIG_START( vcs80 ) /* basic machine hardware */ MCFG_CPU_ADD(Z80_TAG, Z80, XTAL_5MHz/2) /* U880D */ MCFG_CPU_PROGRAM_MAP(vcs80_mem) @@ -249,5 +249,5 @@ ROM_END /* System Drivers */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1983, vcs80, 0, 0, vcs80, vcs80, driver_device, 0, "Eckhard Schiller", "VCS-80", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +COMP( 1983, vcs80, 0, 0, vcs80, vcs80, vcs80_state, 0, "Eckhard Schiller", "VCS-80", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND) diff --git a/src/mame/drivers/vd.cpp b/src/mame/drivers/vd.cpp index fd253aa90b6..bfb8022b92f 100644 --- a/src/mame/drivers/vd.cpp +++ b/src/mame/drivers/vd.cpp @@ -180,7 +180,7 @@ void vd_state::machine_reset() m_t_c = 0; } -static MACHINE_CONFIG_START( vd, vd_state ) +static MACHINE_CONFIG_START( vd ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 4000000) MCFG_CPU_PROGRAM_MAP(vd_map) @@ -227,5 +227,5 @@ ROM_START(papillon) ROM_END -GAME(1986, break86, 0, vd, break86, driver_device, 0, ROT0, "Video Dens", "Break '86", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1986, papillon, 0, vd, papillon, driver_device, 0, ROT0, "Video Dens", "Papillon", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1986, break86, 0, vd, break86, vd_state, 0, ROT0, "Video Dens", "Break '86", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1986, papillon, 0, vd, papillon, vd_state, 0, ROT0, "Video Dens", "Papillon", MACHINE_IS_SKELETON_MECHANICAL) diff --git a/src/mame/drivers/vector06.cpp b/src/mame/drivers/vector06.cpp index 88bbe937128..7c4dab9ff6a 100644 --- a/src/mame/drivers/vector06.cpp +++ b/src/mame/drivers/vector06.cpp @@ -46,10 +46,10 @@ static ADDRESS_MAP_START(vector06_io, AS_IO, 8, vector06_state) AM_RANGE( 0x0C, 0x0C) AM_WRITE(vector06_color_set) AM_RANGE( 0x10, 0x10) AM_WRITE(vector06_ramdisk_w) AM_RANGE( 0x14, 0x15) AM_DEVREADWRITE("aysnd", ay8910_device, data_r, data_address_w) - AM_RANGE( 0x18, 0x18) AM_DEVREADWRITE("wd1793", kr1818vg93_t, data_r, data_w) - AM_RANGE( 0x19, 0x19) AM_DEVREADWRITE("wd1793", kr1818vg93_t, sector_r, sector_w) - AM_RANGE( 0x1a, 0x1a) AM_DEVREADWRITE("wd1793", kr1818vg93_t, track_r, track_w) - AM_RANGE( 0x1b, 0x1b) AM_DEVREADWRITE("wd1793", kr1818vg93_t, status_r, cmd_w) + AM_RANGE( 0x18, 0x18) AM_DEVREADWRITE("wd1793", kr1818vg93_device, data_r, data_w) + AM_RANGE( 0x19, 0x19) AM_DEVREADWRITE("wd1793", kr1818vg93_device, sector_r, sector_w) + AM_RANGE( 0x1a, 0x1a) AM_DEVREADWRITE("wd1793", kr1818vg93_device, track_r, track_w) + AM_RANGE( 0x1b, 0x1b) AM_DEVREADWRITE("wd1793", kr1818vg93_device, status_r, cmd_w) AM_RANGE( 0x1C, 0x1C) AM_WRITE(vector06_disc_w) ADDRESS_MAP_END @@ -153,7 +153,7 @@ SLOT_INTERFACE_END /* Machine driver */ -static MACHINE_CONFIG_START( vector06, vector06_state ) +static MACHINE_CONFIG_START( vector06 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8080, 3000000) // actual speed is wrong due to unemulated latency // MCFG_CPU_ADD("maincpu", Z80, 3000000) @@ -266,8 +266,8 @@ ROM_START( krista2 ) ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1987, vector06, 0, 0, vector06, vector06, driver_device, 0, "", "Vector 06c", 0) -COMP( 1987, vec1200, vector06, 0, vector06, vector06, driver_device, 0, "", "Vector 1200", MACHINE_NOT_WORKING) -COMP( 1987, pk6128c, vector06, 0, vector06, vector06, driver_device, 0, "", "PK-6128c", MACHINE_NOT_WORKING) -COMP( 1987, krista2, vector06, 0, vector06, vector06, driver_device, 0, "", "Krista-2", MACHINE_NOT_WORKING) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +COMP( 1987, vector06, 0, 0, vector06, vector06, vector06_state, 0, "", "Vector 06c", 0) +COMP( 1987, vec1200, vector06, 0, vector06, vector06, vector06_state, 0, "", "Vector 1200", MACHINE_NOT_WORKING) +COMP( 1987, pk6128c, vector06, 0, vector06, vector06, vector06_state, 0, "", "PK-6128c", MACHINE_NOT_WORKING) +COMP( 1987, krista2, vector06, 0, vector06, vector06, vector06_state, 0, "", "Krista-2", MACHINE_NOT_WORKING) diff --git a/src/mame/drivers/vector4.cpp b/src/mame/drivers/vector4.cpp index 74b7dc3d9d7..3facf73a53c 100644 --- a/src/mame/drivers/vector4.cpp +++ b/src/mame/drivers/vector4.cpp @@ -24,14 +24,17 @@ public: { } - required_device m_maincpu; - required_device m_terminal; DECLARE_READ8_MEMBER(vector4_02_r); DECLARE_READ8_MEMBER(vector4_03_r); DECLARE_WRITE8_MEMBER(vector4_02_w); - DECLARE_WRITE8_MEMBER(kbd_put); - uint8_t m_term_data; + void kbd_put(u8 data); + +protected: virtual void machine_reset() override; + + required_device m_maincpu; + required_device m_terminal; + uint8_t m_term_data; }; @@ -81,12 +84,12 @@ void vector4_state::machine_reset() m_maincpu->set_state_int(Z80_PC, 0xe000); } -WRITE8_MEMBER( vector4_state::kbd_put ) +void vector4_state::kbd_put(u8 data) { m_term_data = data; } -static MACHINE_CONFIG_START( vector4, vector4_state ) +static MACHINE_CONFIG_START( vector4 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80, XTAL_4MHz) MCFG_CPU_PROGRAM_MAP(vector4_mem) @@ -95,7 +98,7 @@ static MACHINE_CONFIG_START( vector4, vector4_state ) /* video hardware */ MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0) - MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(vector4_state, kbd_put)) + MCFG_GENERIC_TERMINAL_KEYBOARD_CB(PUT(vector4_state, kbd_put)) MACHINE_CONFIG_END /* ROM definition */ @@ -116,5 +119,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 19??, vector4, 0, 0, vector4, vector4, driver_device, 0, "Vector Graphics", "Vector 4", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 19??, vector4, 0, 0, vector4, vector4, vector4_state, 0, "Vector Graphics", "Vector 4", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/vectrex.cpp b/src/mame/drivers/vectrex.cpp index 5759a3a6c9f..7b8adbec7a7 100644 --- a/src/mame/drivers/vectrex.cpp +++ b/src/mame/drivers/vectrex.cpp @@ -95,7 +95,7 @@ static SLOT_INTERFACE_START(vectrex_cart) SLOT_INTERFACE_INTERNAL("vec_sram", VECTREX_ROM_SRAM) SLOT_INTERFACE_END -static MACHINE_CONFIG_START( vectrex, vectrex_state ) +static MACHINE_CONFIG_START( vectrex ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809, XTAL_6MHz / 4) MCFG_CPU_PROGRAM_MAP(vectrex_map) @@ -241,7 +241,7 @@ ROM_END ***************************************************************************/ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ -CONS(1982, vectrex, 0, 0, vectrex, vectrex, vectrex_state, vectrex, "General Consumer Electronics", "Vectrex" , ROT270) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT MONITOR COMPANY FULLNAME +CONS(1982, vectrex, 0, 0, vectrex, vectrex, vectrex_state, vectrex, "General Consumer Electronics", "Vectrex" , ROT270) -GAME(1984, raaspec, 0, raaspec, raaspec, vectrex_state, vectrex, ROT270, "Roy Abel & Associates", "Spectrum I+", MACHINE_NOT_WORKING ) //TODO: button labels & timings, a mandatory artwork too? +GAME(1984, raaspec, 0, raaspec, raaspec, vectrex_state, vectrex, ROT270, "Roy Abel & Associates", "Spectrum I+", MACHINE_NOT_WORKING ) //TODO: button labels & timings, a mandatory artwork too? diff --git a/src/mame/drivers/vega.cpp b/src/mame/drivers/vega.cpp index 446d01b5bd8..5f0b3bd8991 100644 --- a/src/mame/drivers/vega.cpp +++ b/src/mame/drivers/vega.cpp @@ -789,7 +789,7 @@ void vega_state::machine_start() } -static MACHINE_CONFIG_START( vega, vega_state ) +static MACHINE_CONFIG_START( vega ) MCFG_CPU_ADD("maincpu", I8035, 4000000) MCFG_CPU_PROGRAM_MAP(vega_map) MCFG_CPU_IO_MAP(vega_io_map) diff --git a/src/mame/drivers/vegaeo.cpp b/src/mame/drivers/vegaeo.cpp index efc1b61154d..abe5e9cafc7 100644 --- a/src/mame/drivers/vegaeo.cpp +++ b/src/mame/drivers/vegaeo.cpp @@ -217,7 +217,7 @@ uint32_t vegaeo_state::screen_update_vega(screen_device &screen, bitmap_ind16 &b } -static MACHINE_CONFIG_START( vega, vegaeo_state ) +static MACHINE_CONFIG_START( vega ) MCFG_CPU_ADD("maincpu", GMS30C2132, XTAL_55MHz) MCFG_CPU_PROGRAM_MAP(vega_map) MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", vegaeo_state, eolith_speedup, "screen", 0, 1) diff --git a/src/mame/drivers/vegas.cpp b/src/mame/drivers/vegas.cpp index a79f8d26581..3020a8ac8fa 100644 --- a/src/mame/drivers/vegas.cpp +++ b/src/mame/drivers/vegas.cpp @@ -1278,13 +1278,13 @@ ADDRESS_MAP_END * *************************************/ -static MACHINE_CONFIG_START( vegascore, vegas_state ) +static MACHINE_CONFIG_START( vegascore ) /* basic machine hardware */ - MCFG_CPU_ADD("maincpu", R5000LE, SYSTEM_CLOCK*2) + MCFG_CPU_ADD("maincpu", R5000LE, vrc5074_device::SYSTEM_CLOCK*2) MCFG_MIPS3_ICACHE_SIZE(16384) MCFG_MIPS3_DCACHE_SIZE(16384) - MCFG_MIPS3_SYSTEM_CLOCK(SYSTEM_CLOCK) + MCFG_MIPS3_SYSTEM_CLOCK(vrc5074_device::SYSTEM_CLOCK) // PCI Bus Devices MCFG_PCI_ROOT_ADD(":pci") @@ -1329,7 +1329,7 @@ MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( vegas250, vegascore ) MCFG_CPU_MODIFY("maincpu") - MCFG_CPU_CLOCK(SYSTEM_CLOCK*2.5) + MCFG_CPU_CLOCK(vrc5074_device::SYSTEM_CLOCK*2.5) MACHINE_CONFIG_END @@ -1352,10 +1352,10 @@ MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( vegasv3, vegascore) - MCFG_CPU_REPLACE("maincpu", RM7000LE, SYSTEM_CLOCK*2.5) + MCFG_CPU_REPLACE("maincpu", RM7000LE, vrc5074_device::SYSTEM_CLOCK*2.5) MCFG_MIPS3_ICACHE_SIZE(16384) MCFG_MIPS3_DCACHE_SIZE(16384) - MCFG_MIPS3_SYSTEM_CLOCK(SYSTEM_CLOCK) + MCFG_MIPS3_SYSTEM_CLOCK(vrc5074_device::SYSTEM_CLOCK) MCFG_DEVICE_REMOVE(PCI_ID_VIDEO) MCFG_VOODOO_PCI_ADD(PCI_ID_VIDEO, TYPE_VOODOO_3, ":maincpu") @@ -1366,10 +1366,10 @@ MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( denver, vegascore ) - MCFG_CPU_REPLACE("maincpu", RM7000LE, SYSTEM_CLOCK*2.5) + MCFG_CPU_REPLACE("maincpu", RM7000LE, vrc5074_device::SYSTEM_CLOCK*2.5) MCFG_MIPS3_ICACHE_SIZE(16384) MCFG_MIPS3_DCACHE_SIZE(16384) - MCFG_MIPS3_SYSTEM_CLOCK(SYSTEM_CLOCK) + MCFG_MIPS3_SYSTEM_CLOCK(vrc5074_device::SYSTEM_CLOCK) MCFG_DEVICE_MODIFY(PCI_ID_NILE) MCFG_VRC5074_SET_SDRAM(0, 0x02000000) @@ -1884,32 +1884,32 @@ DRIVER_INIT_MEMBER(vegas_state,cartfury) *************************************/ /* Vegas + Vegas SIO + Voodoo 2 */ -GAME( 1998, gauntleg, 0, gauntleg, gauntleg, vegas_state, gauntleg, ROT0, "Atari Games", "Gauntlet Legends (version 1.6)", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, gauntleg12, gauntleg, gauntleg, gauntleg, vegas_state, gauntleg, ROT0, "Atari Games", "Gauntlet Legends (version 1.2)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1998, tenthdeg, 0, tenthdeg, tenthdeg, vegas_state, tenthdeg, ROT0, "Atari Games", "Tenth Degree (prototype)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, gauntleg, 0, gauntleg, gauntleg, vegas_state, gauntleg, ROT0, "Atari Games", "Gauntlet Legends (version 1.6)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, gauntleg12, gauntleg, gauntleg, gauntleg, vegas_state, gauntleg, ROT0, "Atari Games", "Gauntlet Legends (version 1.2)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1998, tenthdeg, 0, tenthdeg, tenthdeg, vegas_state, tenthdeg, ROT0, "Atari Games", "Tenth Degree (prototype)", MACHINE_SUPPORTS_SAVE ) /* Durango + Vegas SIO + Voodoo 2 */ -GAME( 1999, gauntdl, 0, gauntdl, gauntdl, vegas_state, gauntdl, ROT0, "Midway Games", "Gauntlet Dark Legacy (version DL 2.52)", MACHINE_SUPPORTS_SAVE ) -GAME( 1999, gauntdl24,gauntdl, gauntdl, gauntdl, vegas_state, gauntdl, ROT0, "Midway Games", "Gauntlet Dark Legacy (version DL 2.4)", MACHINE_SUPPORTS_SAVE ) -GAME( 1999, warfa, 0, warfa, warfa, vegas_state, warfa, ROT0, "Atari Games", "War: The Final Assault (EPROM 1.9 Mar 25 1999, GUTS 1.3 Apr 20 1999, GAME Apr 20 1999)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) -GAME( 1999, warfaa, warfa, warfa, warfa, vegas_state, warfa, ROT0, "Atari Games", "War: The Final Assault (EPROM 1.6 Jan 14 1999, GUTS 1.1 Mar 16 1999, GAME Mar 16 1999)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) -GAME( 1999, warfab, warfa, warfa, warfa, vegas_state, warfa, ROT0, "Atari Games", "War: The Final Assault (EPROM 1.3 Apr 7 1999, GUTS 1.3 Apr 7 1999, GAME Apr 7 1999)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // version numbers comes from test mode, can be unreliable +GAME( 1999, gauntdl, 0, gauntdl, gauntdl, vegas_state, gauntdl, ROT0, "Midway Games", "Gauntlet Dark Legacy (version DL 2.52)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, gauntdl24, gauntdl, gauntdl, gauntdl, vegas_state, gauntdl, ROT0, "Midway Games", "Gauntlet Dark Legacy (version DL 2.4)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, warfa, 0, warfa, warfa, vegas_state, warfa, ROT0, "Atari Games", "War: The Final Assault (EPROM 1.9 Mar 25 1999, GUTS 1.3 Apr 20 1999, GAME Apr 20 1999)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +GAME( 1999, warfaa, warfa, warfa, warfa, vegas_state, warfa, ROT0, "Atari Games", "War: The Final Assault (EPROM 1.6 Jan 14 1999, GUTS 1.1 Mar 16 1999, GAME Mar 16 1999)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +GAME( 1999, warfab, warfa, warfa, warfa, vegas_state, warfa, ROT0, "Atari Games", "War: The Final Assault (EPROM 1.3 Apr 7 1999, GUTS 1.3 Apr 7 1999, GAME Apr 7 1999)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // version numbers comes from test mode, can be unreliable /* Durango + DSIO + Voodoo 2 */ -GAME( 1999, roadburn, 0, roadburn, roadburn, vegas_state, roadburn, ROT0, "Atari Games", "Road Burners (ver 1.04)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) -GAME( 1999, roadburn1,roadburn, roadburn, roadburn, vegas_state, roadburn, ROT0, "Atari Games", "Road Burners (ver 1.0)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +GAME( 1999, roadburn, 0, roadburn, roadburn, vegas_state, roadburn, ROT0, "Atari Games", "Road Burners (ver 1.04)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +GAME( 1999, roadburn1, roadburn, roadburn, roadburn, vegas_state, roadburn, ROT0, "Atari Games", "Road Burners (ver 1.0)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) /* Durango + DSIO? + Voodoo banshee */ -GAME( 1998, nbashowt, 0, nbashowt, nbashowt, vegas_state, nbashowt, ROT0, "Midway Games", "NBA Showtime: NBA on NBC (ver 2.0)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) -GAME( 1999, nbanfl, 0, nbanfl, nbashowt, vegas_state, nbanfl, ROT0, "Midway Games", "NBA Showtime / NFL Blitz 2000 (ver 2.1)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) -GAME( 2000, nbagold , 0, nbanfl, nbashowt, vegas_state, nbanfl, ROT0, "Midway Games", "NBA Showtime Gold / NFL Blitz 2000 (ver 3.0) (Sports Station?)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +GAME( 1998, nbashowt, 0, nbashowt, nbashowt, vegas_state, nbashowt, ROT0, "Midway Games", "NBA Showtime: NBA on NBC (ver 2.0)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +GAME( 1999, nbanfl, 0, nbanfl, nbashowt, vegas_state, nbanfl, ROT0, "Midway Games", "NBA Showtime / NFL Blitz 2000 (ver 2.1)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +GAME( 2000, nbagold , 0, nbanfl, nbashowt, vegas_state, nbanfl, ROT0, "Midway Games", "NBA Showtime Gold / NFL Blitz 2000 (ver 3.0) (Sports Station?)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) /* Durango + Denver SIO + Voodoo 3 */ -GAME( 1998, sf2049, 0, sf2049, sf2049, vegas_state, sf2049, ROT0, "Atari Games", "San Francisco Rush 2049", MACHINE_NO_SOUND | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) -GAME( 1998, sf2049se, sf2049, sf2049se, sf2049se, vegas_state, sf2049se, ROT0, "Atari Games", "San Francisco Rush 2049: Special Edition", MACHINE_NO_SOUND | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) -GAME( 1998, sf2049te, sf2049, sf2049te, sf2049te, vegas_state, sf2049te, ROT0, "Atari Games", "San Francisco Rush 2049: Tournament Edition", MACHINE_NO_SOUND | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE) +GAME( 1998, sf2049, 0, sf2049, sf2049, vegas_state, sf2049, ROT0, "Atari Games", "San Francisco Rush 2049", MACHINE_NO_SOUND | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +GAME( 1998, sf2049se, sf2049, sf2049se, sf2049se, vegas_state, sf2049se, ROT0, "Atari Games", "San Francisco Rush 2049: Special Edition", MACHINE_NO_SOUND | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +GAME( 1998, sf2049te, sf2049, sf2049te, sf2049te, vegas_state, sf2049te, ROT0, "Atari Games", "San Francisco Rush 2049: Tournament Edition", MACHINE_NO_SOUND | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE) /* Durango + Vegas SIO + Voodoo 3 */ -GAME( 2000, cartfury, 0, cartfury, cartfury, vegas_state, cartfury, ROT0, "Midway Games", "Cart Fury", MACHINE_NO_SOUND | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +GAME( 2000, cartfury, 0, cartfury, cartfury, vegas_state, cartfury, ROT0, "Midway Games", "Cart Fury", MACHINE_NO_SOUND | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/vendetta.cpp b/src/mame/drivers/vendetta.cpp index 694faee3bf3..f8e05ee86f9 100644 --- a/src/mame/drivers/vendetta.cpp +++ b/src/mame/drivers/vendetta.cpp @@ -418,7 +418,7 @@ WRITE8_MEMBER( vendetta_state::banking_callback ) membank("bank1")->set_entry(data); } -static MACHINE_CONFIG_START( vendetta, vendetta_state ) +static MACHINE_CONFIG_START( vendetta ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", KONAMI, XTAL_24MHz/8) /* 052001 (verified on pcb) */ @@ -793,14 +793,14 @@ ROM_END ***************************************************************************/ -GAME( 1991, vendetta, 0, vendetta, vendet4p, driver_device, 0, ROT0, "Konami", "Vendetta (World, 4 Players, ver. T)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, vendettar, vendetta, vendetta, vendet4p, driver_device, 0, ROT0, "Konami", "Vendetta (US, 4 Players, ver. R)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, vendettaz, vendetta, vendetta, vendet4p, driver_device, 0, ROT0, "Konami", "Vendetta (Asia, 4 Players, ver. Z)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, vendetta2p, vendetta, vendetta, vendetta, driver_device, 0, ROT0, "Konami", "Vendetta (World, 2 Players, ver. W)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, vendetta2peba,vendetta,vendetta, vendetta, driver_device, 0, ROT0, "Konami", "Vendetta (World, 2 Players, ver. EB-A?)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, vendetta2pun,vendetta, vendetta, vendetta, driver_device, 0, ROT0, "Konami", "Vendetta (World, 2 Players, ver. ?)", MACHINE_SUPPORTS_SAVE ) /* program rom labeled as 1 */ -GAME( 1991, vendetta2pu, vendetta, vendetta, vendetta, driver_device, 0, ROT0, "Konami", "Vendetta (Asia, 2 Players, ver. U)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, vendetta2pd, vendetta, vendetta, vendetta, driver_device, 0, ROT0, "Konami", "Vendetta (Asia, 2 Players, ver. D)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, vendettaj, vendetta, vendetta, vendetta, driver_device, 0, ROT0, "Konami", "Crime Fighters 2 (Japan, 2 Players, ver. P)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, esckids, 0, esckids, esckids, driver_device, 0, ROT0, "Konami", "Escape Kids (Asia, 4 Players)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, esckidsj, esckids, esckids, esckidsj, driver_device, 0, ROT0, "Konami", "Escape Kids (Japan, 2 Players)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, vendetta, 0, vendetta, vendet4p, vendetta_state, 0, ROT0, "Konami", "Vendetta (World, 4 Players, ver. T)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, vendettar, vendetta, vendetta, vendet4p, vendetta_state, 0, ROT0, "Konami", "Vendetta (US, 4 Players, ver. R)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, vendettaz, vendetta, vendetta, vendet4p, vendetta_state, 0, ROT0, "Konami", "Vendetta (Asia, 4 Players, ver. Z)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, vendetta2p, vendetta, vendetta, vendetta, vendetta_state, 0, ROT0, "Konami", "Vendetta (World, 2 Players, ver. W)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, vendetta2peba,vendetta,vendetta, vendetta, vendetta_state, 0, ROT0, "Konami", "Vendetta (World, 2 Players, ver. EB-A?)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, vendetta2pun,vendetta, vendetta, vendetta, vendetta_state, 0, ROT0, "Konami", "Vendetta (World, 2 Players, ver. ?)", MACHINE_SUPPORTS_SAVE ) /* program rom labeled as 1 */ +GAME( 1991, vendetta2pu, vendetta, vendetta, vendetta, vendetta_state, 0, ROT0, "Konami", "Vendetta (Asia, 2 Players, ver. U)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, vendetta2pd, vendetta, vendetta, vendetta, vendetta_state, 0, ROT0, "Konami", "Vendetta (Asia, 2 Players, ver. D)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, vendettaj, vendetta, vendetta, vendetta, vendetta_state, 0, ROT0, "Konami", "Crime Fighters 2 (Japan, 2 Players, ver. P)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, esckids, 0, esckids, esckids, vendetta_state, 0, ROT0, "Konami", "Escape Kids (Asia, 4 Players)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, esckidsj, esckids, esckids, esckidsj, vendetta_state, 0, ROT0, "Konami", "Escape Kids (Japan, 2 Players)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/vertigo.cpp b/src/mame/drivers/vertigo.cpp index 7070aff0c52..86cd694381f 100644 --- a/src/mame/drivers/vertigo.cpp +++ b/src/mame/drivers/vertigo.cpp @@ -113,7 +113,7 @@ INPUT_PORTS_END * *************************************/ -static MACHINE_CONFIG_START( vertigo, vertigo_state ) +static MACHINE_CONFIG_START( vertigo ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 8000000) @@ -223,4 +223,4 @@ ROM_END * *************************************/ -GAME( 1986, topgunnr, 0, vertigo, vertigo, driver_device, 0, ROT0, "Exidy", "Top Gunner (Exidy)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, topgunnr, 0, vertigo, vertigo, vertigo_state, 0, ROT0, "Exidy", "Top Gunner (Exidy)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/vg5k.cpp b/src/mame/drivers/vg5k.cpp index cfb9227a5d9..c460768f086 100644 --- a/src/mame/drivers/vg5k.cpp +++ b/src/mame/drivers/vg5k.cpp @@ -358,7 +358,7 @@ DRIVER_INIT_MEMBER(vg5k_state,vg5k) } -static MACHINE_CONFIG_START( vg5k, vg5k_state ) +static MACHINE_CONFIG_START( vg5k ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80, XTAL_4MHz) @@ -425,5 +425,5 @@ ROM_START( vg5k ) ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1984, vg5k, 0, 0, vg5k, vg5k, vg5k_state, vg5k, "Philips", "VG-5000", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1984, vg5k, 0, 0, vg5k, vg5k, vg5k_state, vg5k, "Philips", "VG-5000", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/vgmplay.cpp b/src/mame/drivers/vgmplay.cpp index 7e540c62ec1..1401cda9294 100644 --- a/src/mame/drivers/vgmplay.cpp +++ b/src/mame/drivers/vgmplay.cpp @@ -128,7 +128,7 @@ private: void blocks_clear(); }; -const device_type VGMPLAY = device_creator; +DEFINE_DEVICE_TYPE(VGMPLAY, vgmplay_device, "vgmplay_core", "VGM Player engine") class vgmplay_state : public driver_device { @@ -182,7 +182,7 @@ private: }; vgmplay_device::vgmplay_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - cpu_device(mconfig, VGMPLAY, "VGM Player engine", tag, owner, clock, "vgmplay_core", __FILE__), + cpu_device(mconfig, VGMPLAY, tag, owner, clock), m_file_config("file", ENDIANNESS_LITTLE, 8, 32), m_io_config("io", ENDIANNESS_LITTLE, 8, 32), m_io16_config("io16", ENDIANNESS_LITTLE, 16, 32) @@ -1289,7 +1289,7 @@ static ADDRESS_MAP_START( h6280_io_map, AS_IO, 8, vgmplay_state ) AM_RANGE(0, 3) AM_NOP ADDRESS_MAP_END -static MACHINE_CONFIG_START( vgmplay, vgmplay_state ) +static MACHINE_CONFIG_START( vgmplay ) MCFG_CPU_ADD("vgmplay", VGMPLAY, 44100) MCFG_CPU_PROGRAM_MAP( file_map ) MCFG_CPU_IO_MAP( soundchips_map ) @@ -1396,7 +1396,7 @@ static MACHINE_CONFIG_START( vgmplay, vgmplay_state ) MCFG_SOUND_ROUTE(0, "lspeaker", 1) MCFG_SOUND_ROUTE(1, "rspeaker", 1) - MCFG_OKIM6295_ADD("okim6295", 1000000, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("okim6295", 1000000, PIN7_HIGH) MCFG_DEVICE_ADDRESS_MAP(AS_0, okim6295_map) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.25) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.25) @@ -1405,5 +1405,4 @@ MACHINE_CONFIG_END ROM_START( vgmplay ) ROM_END -CONS( 2016, vgmplay, 0, 0, vgmplay, vgmplay, driver_device, 0, "MAME", "VGM player", 0) - +CONS( 2016, vgmplay, 0, 0, vgmplay, vgmplay, vgmplay_state, 0, "MAME", "VGM player", 0 ) diff --git a/src/mame/drivers/vic10.cpp b/src/mame/drivers/vic10.cpp index b6a207cf2b7..a51946e10a7 100644 --- a/src/mame/drivers/vic10.cpp +++ b/src/mame/drivers/vic10.cpp @@ -688,7 +688,7 @@ void vic10_state::machine_reset() // MACHINE_CONFIG( vic10 ) //------------------------------------------------- -static MACHINE_CONFIG_START( vic10, vic10_state ) +static MACHINE_CONFIG_START( vic10 ) // basic hardware MCFG_CPU_ADD(M6510_TAG, M6510, XTAL_8MHz/8) MCFG_CPU_PROGRAM_MAP(vic10_mem) @@ -761,4 +761,4 @@ ROM_END // GAME DRIVERS //************************************************************************** -COMP( 1982, vic10, 0, 0, vic10, vic10, driver_device, 0, "Commodore Business Machines", "VIC-10 / Max Machine / UltiMax (NTSC)", MACHINE_SUPPORTS_SAVE ) +COMP( 1982, vic10, 0, 0, vic10, vic10, vic10_state, 0, "Commodore Business Machines", "VIC-10 / Max Machine / UltiMax (NTSC)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/vic20.cpp b/src/mame/drivers/vic20.cpp index 67a3547188a..024015cdf9e 100644 --- a/src/mame/drivers/vic20.cpp +++ b/src/mame/drivers/vic20.cpp @@ -787,7 +787,7 @@ WRITE_LINE_MEMBER(vic20_state::write_user_cassette_switch) // MACHINE_CONFIG( vic20_common ) //------------------------------------------------- -static MACHINE_CONFIG_START( vic20, vic20_state ) +static MACHINE_CONFIG_START( vic20 ) // devices MCFG_DEVICE_ADD(M6522_1_TAG, VIA6522, 0) MCFG_VIA6522_READPA_HANDLER(READ8(vic20_state, via1_pa_r)) @@ -984,8 +984,8 @@ ROM_END // GAME DRIVERS //************************************************************************** -// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS -COMP( 1980, vic1001, 0, 0, ntsc, vic1001, driver_device, 0, "Commodore Business Machines", "VIC-1001 (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -COMP( 1981, vic20, vic1001, 0, ntsc, vic20, driver_device, 0, "Commodore Business Machines", "VIC-20 (NTSC)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -COMP( 1981, vic20p, vic1001, 0, pal, vic20, driver_device, 0, "Commodore Business Machines", "VIC-20 / VC-20 (PAL)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -COMP( 1981, vic20_se, vic1001, 0, pal, vic20s, driver_device, 0, "Commodore Business Machines", "VIC-20 (Sweden/Finland)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1980, vic1001, 0, 0, ntsc, vic1001, vic20_state, 0, "Commodore Business Machines", "VIC-1001 (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +COMP( 1981, vic20, vic1001, 0, ntsc, vic20, vic20_state, 0, "Commodore Business Machines", "VIC-20 (NTSC)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +COMP( 1981, vic20p, vic1001, 0, pal, vic20, vic20_state, 0, "Commodore Business Machines", "VIC-20 / VC-20 (PAL)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +COMP( 1981, vic20_se, vic1001, 0, pal, vic20s, vic20_state, 0, "Commodore Business Machines", "VIC-20 (Sweden/Finland)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/vicdual.cpp b/src/mame/drivers/vicdual.cpp index 7b9a9f128cc..176b0f04fc5 100644 --- a/src/mame/drivers/vicdual.cpp +++ b/src/mame/drivers/vicdual.cpp @@ -255,7 +255,7 @@ void vicdual_state::machine_start() } -static MACHINE_CONFIG_START( vicdual_root, vicdual_state ) +static MACHINE_CONFIG_START( vicdual_root ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, VICDUAL_MAIN_CPU_CLOCK) @@ -2397,7 +2397,7 @@ MACHINE_RESET_MEMBER(nsub_state, nsub) machine_reset(); } -static MACHINE_CONFIG_START( nsub, nsub_state ) +static MACHINE_CONFIG_START( nsub ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, VICDUAL_MAIN_CPU_CLOCK) MCFG_CPU_PROGRAM_MAP(nsub_map) @@ -3631,47 +3631,47 @@ ROM_END * *************************************/ -GAMEL(1977, depthch, 0, depthch, depthch, driver_device, 0, ROT0, "Gremlin", "Depthcharge", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_depthch ) -GAMEL(1977, depthcho, depthch, depthch, depthch, driver_device, 0, ROT0, "Gremlin", "Depthcharge (older)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_depthch ) -GAMEL(1977, subhunt, depthch, depthch, depthch, driver_device, 0, ROT0, "Gremlin (Taito license)", "Sub Hunter (Gremlin / Taito)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_depthch ) -GAME( 1977, safari, 0, safari, safari, driver_device, 0, ROT0, "Gremlin", "Safari (set 1)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1977, safaria, safari, safari, safari, driver_device, 0, ROT0, "Gremlin", "Safari (set 2, bootleg?)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) // on a bootleg board, but seems a different code revision too -GAME( 1978, frogs, 0, frogs, frogs, driver_device, 0, ROT0, "Gremlin", "Frogs", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1979, sspaceat, 0, sspaceat, sspaceat, driver_device, 0, ROT270, "Sega", "Space Attack (upright set 1)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1979, sspaceat2, sspaceat, sspaceat, sspaceat, driver_device, 0, ROT270, "Sega", "Space Attack (upright set 2)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1979, sspaceat3, sspaceat, sspaceat, sspaceat, driver_device, 0, ROT270, "Sega", "Space Attack (upright set 3)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1979, sspaceatc, sspaceat, sspaceat, sspaceat, driver_device, 0, ROT270, "Sega", "Space Attack (cocktail)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1979, sspacaho, 0, sspacaho, sspacaho, driver_device, 0, ROT270, "Sega", "Space Attack / Head On", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1979, headon, 0, headon, headon, driver_device, 0, ROT0, "Gremlin", "Head On (2 players)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1979, headon1, headon, headon, headon, driver_device, 0, ROT0, "Gremlin", "Head On (1 player)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1979, headons, headon, headons, headons, driver_device, 0, ROT0, "bootleg (Sidam)", "Head On (Sidam bootleg, set 1)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1979, headonsa, headon, headons, headons, driver_device, 0, ROT0, "bootleg (Sidam)", "Head On (Sidam bootleg, set 2)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // won't coin up? -GAME( 1979, headonmz, headon, headon, headonmz, driver_device, 0, ROT0, "bootleg", "Head On (bootleg, alt maze)", MACHINE_SUPPORTS_SAVE ) -GAME( 1979, supcrash, headon, headons, supcrash, driver_device, 0, ROT0, "bootleg", "Super Crash (bootleg of Head On)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1979, hocrash, headon, headons, headons, driver_device, 0, ROT0, "bootleg (Fraber)", "Crash (bootleg of Head On)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1979, headon2, 0, headon2, headon2, driver_device, 0, ROT0, "Sega", "Head On 2", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1979, headon2s, headon2, headon2bw, car2, driver_device, 0, ROT0, "bootleg (Sidam)", "Head On 2 (Sidam bootleg)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // won't coin up? -GAME( 1979, car2, headon2, headon2bw, car2, driver_device, 0, ROT0, "bootleg (RZ Bologna)", "Car 2 (bootleg of Head On 2)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // title still says 'HeadOn 2' -GAME( 1979, invho2, 0, invho2, invho2, driver_device, 0, ROT270, "Sega", "Invinco / Head On 2", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1980, nsub, 0, nsub, nsub, driver_device, 0, ROT270, "Sega", "N-Sub (upright)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // this is the upright set. cocktail set still needs to be dumped -GAME( 1980, samurai, 0, samurai, samurai, driver_device, 0, ROT270, "Sega", "Samurai", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1979, invinco, 0, invinco, invinco, driver_device, 0, ROT270, "Sega", "Invinco", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1979, invds, 0, invds, invds, driver_device, 0, ROT270, "Sega", "Invinco / Deep Scan", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1979, carhntds, 0, carhntds, carhntds, driver_device, 0, ROT270, "Sega", "Car Hunt / Deep Scan (France)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1980, tranqgun, 0, tranqgun, tranqgun, driver_device, 0, ROT270, "Sega", "Tranquillizer Gun", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1980, spacetrk, 0, spacetrk, spacetrk, driver_device, 0, ROT270, "Sega", "Space Trek (upright)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1980, spacetrkc, spacetrk, spacetrk, spacetrkc, driver_device, 0, ROT270, "Sega", "Space Trek (cocktail)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1980, carnival, 0, carnival, carnival, driver_device, 0, ROT270, "Sega", "Carnival (upright)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1980, carnivalc, carnival, carnival, carnivalc, driver_device, 0, ROT270, "Sega", "Carnival (cocktail)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1980, carnivalh, carnival, carnivalh, carnivalh, driver_device, 0, ROT270, "Sega", "Carnival (Head On hardware, set 1)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1980, carnivalha, carnival, carnivalh, carnivalh, driver_device, 0, ROT270, "Sega", "Carnival (Head On hardware, set 2)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1981, brdrline, 0, brdrline, brdrline, driver_device, 0, ROT270, "Sega", "Borderline", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1981, starrkr, brdrline, brdrline, starrkr, driver_device, 0, ROT270, "Sega", "Star Raker", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1981, brdrlins, brdrline, brdrline, brdrline, driver_device, 0, ROT270, "bootleg (Sidam)", "Borderline (Sidam bootleg)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1981, brdrlinb, brdrline, brdrline, brdrline, driver_device, 0, ROT270, "bootleg (Karateco)", "Borderline (Karateco bootleg)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1981, brdrlinet, brdrline, tranqgun, tranqgun, driver_device, 0, ROT270, "Sega", "Borderline (Tranquillizer Gun conversion)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) // official factory conversion -GAME( 198?, startrks, 0, headons, headons, driver_device, 0, ROT0, "bootleg (Sidam)", "Star Trek (Head On hardware)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1980, digger, 0, digger, digger, driver_device, 0, ROT270, "Sega", "Digger", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1981, pulsar, 0, pulsar, pulsar, driver_device, 0, ROT270, "Sega", "Pulsar", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1979, heiankyo, 0, heiankyo, heiankyo, driver_device, 0, ROT270, "Denki Onkyo", "Heiankyo Alien", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 19??, alphaho, 0, alphaho, alphaho, driver_device, 0, ROT270, "Data East Corporation", "Alpha Fighter / Head On", MACHINE_WRONG_COLORS | MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) +GAMEL(1977, depthch, 0, depthch, depthch, vicdual_state, 0, ROT0, "Gremlin", "Depthcharge", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_depthch ) +GAMEL(1977, depthcho, depthch, depthch, depthch, vicdual_state, 0, ROT0, "Gremlin", "Depthcharge (older)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_depthch ) +GAMEL(1977, subhunt, depthch, depthch, depthch, vicdual_state, 0, ROT0, "Gremlin (Taito license)", "Sub Hunter (Gremlin / Taito)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_depthch ) +GAME( 1977, safari, 0, safari, safari, vicdual_state, 0, ROT0, "Gremlin", "Safari (set 1)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1977, safaria, safari, safari, safari, vicdual_state, 0, ROT0, "Gremlin", "Safari (set 2, bootleg?)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) // on a bootleg board, but seems a different code revision too +GAME( 1978, frogs, 0, frogs, frogs, vicdual_state, 0, ROT0, "Gremlin", "Frogs", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1979, sspaceat, 0, sspaceat, sspaceat, vicdual_state, 0, ROT270, "Sega", "Space Attack (upright set 1)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1979, sspaceat2, sspaceat, sspaceat, sspaceat, vicdual_state, 0, ROT270, "Sega", "Space Attack (upright set 2)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1979, sspaceat3, sspaceat, sspaceat, sspaceat, vicdual_state, 0, ROT270, "Sega", "Space Attack (upright set 3)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1979, sspaceatc, sspaceat, sspaceat, sspaceat, vicdual_state, 0, ROT270, "Sega", "Space Attack (cocktail)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1979, sspacaho, 0, sspacaho, sspacaho, vicdual_state, 0, ROT270, "Sega", "Space Attack / Head On", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1979, headon, 0, headon, headon, vicdual_state, 0, ROT0, "Gremlin", "Head On (2 players)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1979, headon1, headon, headon, headon, vicdual_state, 0, ROT0, "Gremlin", "Head On (1 player)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1979, headons, headon, headons, headons, vicdual_state, 0, ROT0, "bootleg (Sidam)", "Head On (Sidam bootleg, set 1)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1979, headonsa, headon, headons, headons, vicdual_state, 0, ROT0, "bootleg (Sidam)", "Head On (Sidam bootleg, set 2)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // won't coin up? +GAME( 1979, headonmz, headon, headon, headonmz, vicdual_state, 0, ROT0, "bootleg", "Head On (bootleg, alt maze)", MACHINE_SUPPORTS_SAVE ) +GAME( 1979, supcrash, headon, headons, supcrash, vicdual_state, 0, ROT0, "bootleg", "Super Crash (bootleg of Head On)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1979, hocrash, headon, headons, headons, vicdual_state, 0, ROT0, "bootleg (Fraber)", "Crash (bootleg of Head On)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1979, headon2, 0, headon2, headon2, vicdual_state, 0, ROT0, "Sega", "Head On 2", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1979, headon2s, headon2, headon2bw, car2, vicdual_state, 0, ROT0, "bootleg (Sidam)", "Head On 2 (Sidam bootleg)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // won't coin up? +GAME( 1979, car2, headon2, headon2bw, car2, vicdual_state, 0, ROT0, "bootleg (RZ Bologna)", "Car 2 (bootleg of Head On 2)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // title still says 'HeadOn 2' +GAME( 1979, invho2, 0, invho2, invho2, vicdual_state, 0, ROT270, "Sega", "Invinco / Head On 2", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1980, nsub, 0, nsub, nsub, nsub_state, 0, ROT270, "Sega", "N-Sub (upright)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // this is the upright set. cocktail set still needs to be dumped +GAME( 1980, samurai, 0, samurai, samurai, vicdual_state, 0, ROT270, "Sega", "Samurai", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1979, invinco, 0, invinco, invinco, vicdual_state, 0, ROT270, "Sega", "Invinco", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1979, invds, 0, invds, invds, vicdual_state, 0, ROT270, "Sega", "Invinco / Deep Scan", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1979, carhntds, 0, carhntds, carhntds, vicdual_state, 0, ROT270, "Sega", "Car Hunt / Deep Scan (France)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1980, tranqgun, 0, tranqgun, tranqgun, vicdual_state, 0, ROT270, "Sega", "Tranquillizer Gun", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1980, spacetrk, 0, spacetrk, spacetrk, vicdual_state, 0, ROT270, "Sega", "Space Trek (upright)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1980, spacetrkc, spacetrk, spacetrk, spacetrkc, vicdual_state, 0, ROT270, "Sega", "Space Trek (cocktail)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1980, carnival, 0, carnival, carnival, vicdual_state, 0, ROT270, "Sega", "Carnival (upright)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1980, carnivalc, carnival, carnival, carnivalc, vicdual_state, 0, ROT270, "Sega", "Carnival (cocktail)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1980, carnivalh, carnival, carnivalh, carnivalh, vicdual_state, 0, ROT270, "Sega", "Carnival (Head On hardware, set 1)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1980, carnivalha, carnival, carnivalh, carnivalh, vicdual_state, 0, ROT270, "Sega", "Carnival (Head On hardware, set 2)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1981, brdrline, 0, brdrline, brdrline, vicdual_state, 0, ROT270, "Sega", "Borderline", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1981, starrkr, brdrline, brdrline, starrkr, vicdual_state, 0, ROT270, "Sega", "Star Raker", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1981, brdrlins, brdrline, brdrline, brdrline, vicdual_state, 0, ROT270, "bootleg (Sidam)", "Borderline (Sidam bootleg)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1981, brdrlinb, brdrline, brdrline, brdrline, vicdual_state, 0, ROT270, "bootleg (Karateco)", "Borderline (Karateco bootleg)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1981, brdrlinet, brdrline, tranqgun, tranqgun, vicdual_state, 0, ROT270, "Sega", "Borderline (Tranquillizer Gun conversion)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) // official factory conversion +GAME( 198?, startrks, 0, headons, headons, vicdual_state, 0, ROT0, "bootleg (Sidam)", "Star Trek (Head On hardware)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1980, digger, 0, digger, digger, vicdual_state, 0, ROT270, "Sega", "Digger", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1981, pulsar, 0, pulsar, pulsar, vicdual_state, 0, ROT270, "Sega", "Pulsar", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1979, heiankyo, 0, heiankyo, heiankyo, vicdual_state, 0, ROT270, "Denki Onkyo", "Heiankyo Alien", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 19??, alphaho, 0, alphaho, alphaho, vicdual_state, 0, ROT270, "Data East Corporation", "Alpha Fighter / Head On", MACHINE_WRONG_COLORS | MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/victor9k.cpp b/src/mame/drivers/victor9k.cpp index 5b59ebbff2c..616a8129095 100644 --- a/src/mame/drivers/victor9k.cpp +++ b/src/mame/drivers/victor9k.cpp @@ -34,7 +34,7 @@ #include "machine/pit8253.h" #include "machine/pic8259.h" #include "machine/ram.h" -#include "machine/victor9kb.h" +#include "machine/victor9k_kb.h" #include "machine/victor9k_fdc.h" #include "machine/z80dart.h" #include "sound/hc55516.h" @@ -108,8 +108,8 @@ public: required_device m_cvsd; required_device m_crtc; required_device m_ram; - required_device m_kb; - required_device m_fdc; + required_device m_kb; + required_device m_fdc; required_device m_centronics; required_device m_rs232a; required_device m_rs232b; @@ -201,9 +201,9 @@ static ADDRESS_MAP_START( victor9k_mem, AS_PROGRAM, 8, victor9k_state ) AM_RANGE(0xe8040, 0xe804f) AM_MIRROR(0x7f00) AM_DEVREADWRITE(M6522_2_TAG, via6522_device, read, write) AM_RANGE(0xe8060, 0xe8061) AM_MIRROR(0x7f00) AM_DEVREADWRITE(MC6852_TAG, mc6852_device, read, write) AM_RANGE(0xe8080, 0xe808f) AM_MIRROR(0x7f00) AM_DEVREADWRITE(M6522_3_TAG, via6522_device, read, write) - AM_RANGE(0xe80a0, 0xe80af) AM_MIRROR(0x7f00) AM_DEVREADWRITE(FDC_TAG, victor_9000_fdc_t, cs5_r, cs5_w) - AM_RANGE(0xe80c0, 0xe80cf) AM_MIRROR(0x7f00) AM_DEVREADWRITE(FDC_TAG, victor_9000_fdc_t, cs6_r, cs6_w) - AM_RANGE(0xe80e0, 0xe80ef) AM_MIRROR(0x7f00) AM_DEVREADWRITE(FDC_TAG, victor_9000_fdc_t, cs7_r, cs7_w) + AM_RANGE(0xe80a0, 0xe80af) AM_MIRROR(0x7f00) AM_DEVREADWRITE(FDC_TAG, victor_9000_fdc_device, cs5_r, cs5_w) + AM_RANGE(0xe80c0, 0xe80cf) AM_MIRROR(0x7f00) AM_DEVREADWRITE(FDC_TAG, victor_9000_fdc_device, cs6_r, cs6_w) + AM_RANGE(0xe80e0, 0xe80ef) AM_MIRROR(0x7f00) AM_DEVREADWRITE(FDC_TAG, victor_9000_fdc_device, cs7_r, cs7_w) AM_RANGE(0xf0000, 0xf0fff) AM_MIRROR(0x1000) AM_RAM AM_SHARE("video_ram") AM_RANGE(0xf8000, 0xf9fff) AM_MIRROR(0x6000) AM_ROM AM_REGION(I8088_TAG, 0) ADDRESS_MAP_END @@ -674,7 +674,7 @@ void victor9k_state::machine_reset() // MACHINE_CONFIG( victor9k ) //------------------------------------------------- -static MACHINE_CONFIG_START( victor9k, victor9k_state ) +static MACHINE_CONFIG_START( victor9k ) // basic machine hardware MCFG_CPU_ADD(I8088_TAG, I8088, XTAL_30MHz/6) MCFG_CPU_PROGRAM_MAP(victor9k_mem) @@ -816,5 +816,5 @@ ROM_END // SYSTEM DRIVERS //************************************************************************** -// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS -COMP( 1982, victor9k, 0, 0, victor9k, victor9k, driver_device, 0, "Victor Business Products", "Victor 9000", MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1982, victor9k, 0, 0, victor9k, victor9k, victor9k_state, 0, "Victor Business Products", "Victor 9000", MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/victory.cpp b/src/mame/drivers/victory.cpp index 439aaf32701..8480d91c62f 100644 --- a/src/mame/drivers/victory.cpp +++ b/src/mame/drivers/victory.cpp @@ -210,7 +210,7 @@ INPUT_PORTS_END * *************************************/ -static MACHINE_CONFIG_START( victory, victory_state ) +static MACHINE_CONFIG_START( victory ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, VICTORY_MAIN_CPU_CLOCK) @@ -317,5 +317,5 @@ ROM_END * *************************************/ -GAME( 1982, victory, 0, victory, victory, driver_device, 0, ROT0, "Exidy", "Victory", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, victorba, victory, victory, victory, driver_device, 0, ROT0, "Exidy", "Victor Banana", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, victory, 0, victory, victory, victory_state, 0, ROT0, "Exidy", "Victory", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, victorba, victory, victory, victory, victory_state, 0, ROT0, "Exidy", "Victor Banana", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/vidbrain.cpp b/src/mame/drivers/vidbrain.cpp index f5a134439c1..8581750e536 100644 --- a/src/mame/drivers/vidbrain.cpp +++ b/src/mame/drivers/vidbrain.cpp @@ -500,7 +500,7 @@ void vidbrain_state::machine_reset() // MACHINE_CONFIG( vidbrain ) //------------------------------------------------- -static MACHINE_CONFIG_START( vidbrain, vidbrain_state ) +static MACHINE_CONFIG_START( vidbrain ) // basic machine hardware MCFG_CPU_ADD(F3850_TAG, F8, XTAL_4MHz/2) MCFG_CPU_PROGRAM_MAP(vidbrain_mem) @@ -563,5 +563,5 @@ ROM_END // SYSTEM DRIVERS //************************************************************************** -// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS -COMP( 1977, vidbrain, 0, 0, vidbrain, vidbrain, driver_device, 0, "VideoBrain Computer Company", "VideoBrain FamilyComputer", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1977, vidbrain, 0, 0, vidbrain, vidbrain, vidbrain_state, 0, "VideoBrain Computer Company", "VideoBrain FamilyComputer", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) diff --git a/src/mame/drivers/videopin.cpp b/src/mame/drivers/videopin.cpp index ed83948190a..1aad6842543 100644 --- a/src/mame/drivers/videopin.cpp +++ b/src/mame/drivers/videopin.cpp @@ -358,7 +358,7 @@ GFXDECODE_END * *************************************/ -static MACHINE_CONFIG_START( videopin, videopin_state ) +static MACHINE_CONFIG_START( videopin ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, 12096000 / 16) @@ -465,5 +465,5 @@ ROM_END * *************************************/ -GAMEL( 1979, videopin, 0, videopin, videopin, driver_device, 0, ROT270, "Atari", "Video Pinball", MACHINE_SUPPORTS_SAVE, layout_videopin ) -GAMEL( 1979, solarwar, 0, videopin, solarwar, driver_device, 0, ROT270, "Atari", "Solar War", MACHINE_SUPPORTS_SAVE, layout_videopin ) +GAMEL( 1979, videopin, 0, videopin, videopin, videopin_state, 0, ROT270, "Atari", "Video Pinball", MACHINE_SUPPORTS_SAVE, layout_videopin ) +GAMEL( 1979, solarwar, 0, videopin, solarwar, videopin_state, 0, ROT270, "Atari", "Solar War", MACHINE_SUPPORTS_SAVE, layout_videopin ) diff --git a/src/mame/drivers/videopkr.cpp b/src/mame/drivers/videopkr.cpp index caead2e048d..3fcb610ab73 100644 --- a/src/mame/drivers/videopkr.cpp +++ b/src/mame/drivers/videopkr.cpp @@ -1223,7 +1223,7 @@ void videopkr_state::machine_start() * Machine Drivers * ************************/ -static MACHINE_CONFIG_START( videopkr, videopkr_state ) +static MACHINE_CONFIG_START( videopkr ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8039, CPU_CLOCK) @@ -1553,12 +1553,12 @@ ROM_END /************************* * Game Drivers * *************************/ -/* YEAR NAME PARENT MACHINE INPUT INIT ROT COMPANY FULLNAME FLAGS LAYOUT */ -GAMEL( 1984, videopkr, 0, videopkr, videopkr, driver_device, 0, ROT0, "InterFlip", "Video Poker", 0, layout_videopkr ) -GAMEL( 1984, fortune1, videopkr, fortune1, videopkr, driver_device, 0, ROT0, "IGT - International Game Technology", "Fortune I (PK485-S) Draw Poker", 0, layout_videopkr ) -GAMEL( 1984, blckjack, videopkr, blckjack, blckjack, driver_device, 0, ROT0, "InterFlip", "Black Jack", 0, layout_blckjack ) -GAMEL( 1987, videodad, videopkr, videodad, videodad, driver_device, 0, ROT0, "InterFlip", "Video Dado", 0, layout_videodad ) -GAMEL( 1987, videocba, videopkr, videodad, videocba, driver_device, 0, ROT0, "InterFlip", "Video Cordoba", 0, layout_videocba ) -GAMEL( 1987, babypkr , videopkr, babypkr, babypkr, driver_device, 0, ROT0, "Recreativos Franco", "Baby Poker", 0, layout_babypkr ) -GAMEL( 1987, babydad , videopkr, babypkr, babydad, driver_device, 0, ROT0, "Recreativos Franco", "Baby Dado", 0, layout_babydad ) -GAMEL( 198?, bpoker , videopkr, babypkr, babypkr, driver_device, 0, ROT0, "Recreativos Franco", "Video Poker (v1403)", MACHINE_NOT_WORKING, layout_babypkr ) +// YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS LAYOUT +GAMEL( 1984, videopkr, 0, videopkr, videopkr, videopkr_state, 0, ROT0, "InterFlip", "Video Poker", 0, layout_videopkr ) +GAMEL( 1984, fortune1, videopkr, fortune1, videopkr, videopkr_state, 0, ROT0, "IGT - International Game Technology", "Fortune I (PK485-S) Draw Poker", 0, layout_videopkr ) +GAMEL( 1984, blckjack, videopkr, blckjack, blckjack, videopkr_state, 0, ROT0, "InterFlip", "Black Jack", 0, layout_blckjack ) +GAMEL( 1987, videodad, videopkr, videodad, videodad, videopkr_state, 0, ROT0, "InterFlip", "Video Dado", 0, layout_videodad ) +GAMEL( 1987, videocba, videopkr, videodad, videocba, videopkr_state, 0, ROT0, "InterFlip", "Video Cordoba", 0, layout_videocba ) +GAMEL( 1987, babypkr, videopkr, babypkr, babypkr, videopkr_state, 0, ROT0, "Recreativos Franco", "Baby Poker", 0, layout_babypkr ) +GAMEL( 1987, babydad, videopkr, babypkr, babydad, videopkr_state, 0, ROT0, "Recreativos Franco", "Baby Dado", 0, layout_babydad ) +GAMEL( 198?, bpoker, videopkr, babypkr, babypkr, videopkr_state, 0, ROT0, "Recreativos Franco", "Video Poker (v1403)", MACHINE_NOT_WORKING, layout_babypkr ) diff --git a/src/mame/drivers/vigilant.cpp b/src/mame/drivers/vigilant.cpp index cebf0c1a97a..0982882747f 100644 --- a/src/mame/drivers/vigilant.cpp +++ b/src/mame/drivers/vigilant.cpp @@ -471,7 +471,7 @@ static GFXDECODE_START( kikcubic ) GFXDECODE_END -static MACHINE_CONFIG_START( vigilant, vigilant_state ) +static MACHINE_CONFIG_START( vigilant ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 3579645) /* 3.579645 MHz */ @@ -502,7 +502,7 @@ static MACHINE_CONFIG_START( vigilant, vigilant_state ) MCFG_GENERIC_LATCH_8_ADD("soundlatch") - MCFG_SOUND_ADD("m72", M72, 0) + MCFG_SOUND_ADD("m72", IREM_M72_AUDIO, 0) MCFG_YM2151_ADD("ymsnd", 3579645) MCFG_YM2151_IRQ_HANDLER(DEVWRITELINE("m72", m72_audio_device, ym2151_irq_handler)) @@ -514,7 +514,7 @@ static MACHINE_CONFIG_START( vigilant, vigilant_state ) 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( buccanrs, vigilant_state ) +static MACHINE_CONFIG_START( buccanrs ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 5688800) /* 5.688800 MHz */ @@ -545,7 +545,7 @@ static MACHINE_CONFIG_START( buccanrs, vigilant_state ) MCFG_GENERIC_LATCH_8_ADD("soundlatch") - MCFG_SOUND_ADD("m72", M72, 0) + MCFG_SOUND_ADD("m72", IREM_M72_AUDIO, 0) MCFG_SOUND_ADD("ym1", YM2203, 18432000/6) MCFG_YM2203_IRQ_HANDLER(DEVWRITELINE("m72", m72_audio_device, ym2151_irq_handler)) @@ -573,7 +573,7 @@ static MACHINE_CONFIG_START( buccanrs, vigilant_state ) 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( kikcubic, vigilant_state ) +static MACHINE_CONFIG_START( kikcubic ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 3579645) /* 3.579645 MHz */ @@ -604,7 +604,7 @@ static MACHINE_CONFIG_START( kikcubic, vigilant_state ) MCFG_GENERIC_LATCH_8_ADD("soundlatch") - MCFG_SOUND_ADD("m72", M72, 0) + MCFG_SOUND_ADD("m72", IREM_M72_AUDIO, 0) MCFG_YM2151_ADD("ymsnd", 3579645) MCFG_YM2151_IRQ_HANDLER(DEVWRITELINE("m72", m72_audio_device, ym2151_irq_handler)) @@ -1121,18 +1121,18 @@ ROM_START( buccanrsb ) ROM_LOAD( "prom2.u99", 0x0300, 0x0100, CRC(e0aa8869) SHA1(ac8bdfeba69420ba56ec561bf3d0f1229d02cea2) ) ROM_END -GAME( 1988, vigilant, 0, vigilant, vigilant, driver_device, 0, ROT0, "Irem", "Vigilante (World, Rev E)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1988, vigilantg, vigilant, vigilant, vigilant, driver_device, 0, ROT0, "Irem (Data East license)", "Vigilante (US, Rev G)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1988, vigilanto, vigilant, vigilant, vigilant, driver_device, 0, ROT0, "Irem (Data East license)", "Vigilante (US)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1988, vigilanta, vigilant, vigilant, vigilant, driver_device, 0, ROT0, "Irem", "Vigilante (World, Rev A)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1988, vigilantb, vigilant, vigilant, vigilant, driver_device, 0, ROT0, "Irem (Data East license)", "Vigilante (US, Rev B)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1988, vigilantc, vigilant, vigilant, vigilant, driver_device, 0, ROT0, "Irem", "Vigilante (World, Rev C)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1988, vigilantd, vigilant, vigilant, vigilant, driver_device, 0, ROT0, "Irem", "Vigilante (Japan, Rev D)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1988, vigilantbl, vigilant, vigilant, vigilant, driver_device, 0, ROT0, "bootleg", "Vigilante (bootleg)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) - -GAME( 1988, kikcubic, 0, kikcubic, kikcubic, driver_device, 0, ROT0, "Irem", "Meikyu Jima (Japan)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) /* English title is Kickle Cubicle */ -GAME( 1988, kikcubicb, kikcubic, kikcubic, kikcubic, driver_device, 0, ROT0, "bootleg", "Kickle Cubele", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) - -GAME( 1989, buccanrs, 0, buccanrs, buccanrs, driver_device, 0, ROT0, "Duintronic", "Buccaneers (set 1)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1989, buccanrsa, buccanrs, buccanrs, buccanra, driver_device, 0, ROT0, "Duintronic", "Buccaneers (set 2)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1989, buccanrsb, buccanrs, buccanrs, buccanrs, driver_device, 0, ROT0, "Duintronic", "Buccaneers (set 3, harder)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1988, vigilant, 0, vigilant, vigilant, vigilant_state, 0, ROT0, "Irem", "Vigilante (World, Rev E)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1988, vigilantg, vigilant, vigilant, vigilant, vigilant_state, 0, ROT0, "Irem (Data East license)", "Vigilante (US, Rev G)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1988, vigilanto, vigilant, vigilant, vigilant, vigilant_state, 0, ROT0, "Irem (Data East license)", "Vigilante (US)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1988, vigilanta, vigilant, vigilant, vigilant, vigilant_state, 0, ROT0, "Irem", "Vigilante (World, Rev A)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1988, vigilantb, vigilant, vigilant, vigilant, vigilant_state, 0, ROT0, "Irem (Data East license)", "Vigilante (US, Rev B)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1988, vigilantc, vigilant, vigilant, vigilant, vigilant_state, 0, ROT0, "Irem", "Vigilante (World, Rev C)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1988, vigilantd, vigilant, vigilant, vigilant, vigilant_state, 0, ROT0, "Irem", "Vigilante (Japan, Rev D)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1988, vigilantbl, vigilant, vigilant, vigilant, vigilant_state, 0, ROT0, "bootleg", "Vigilante (bootleg)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) + +GAME( 1988, kikcubic, 0, kikcubic, kikcubic, vigilant_state, 0, ROT0, "Irem", "Meikyu Jima (Japan)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) /* English title is Kickle Cubicle */ +GAME( 1988, kikcubicb, kikcubic, kikcubic, kikcubic, vigilant_state, 0, ROT0, "bootleg", "Kickle Cubele", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) + +GAME( 1989, buccanrs, 0, buccanrs, buccanrs, vigilant_state, 0, ROT0, "Duintronic", "Buccaneers (set 1)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1989, buccanrsa, buccanrs, buccanrs, buccanra, vigilant_state, 0, ROT0, "Duintronic", "Buccaneers (set 2)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1989, buccanrsb, buccanrs, buccanrs, buccanrs, vigilant_state, 0, ROT0, "Duintronic", "Buccaneers (set 3, harder)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/vii.cpp b/src/mame/drivers/vii.cpp index 2998469d837..29192f6d8f4 100644 --- a/src/mame/drivers/vii.cpp +++ b/src/mame/drivers/vii.cpp @@ -1179,7 +1179,7 @@ INTERRUPT_GEN_MEMBER(vii_state::vii_vblank) } -static MACHINE_CONFIG_START( vii, vii_state ) +static MACHINE_CONFIG_START( vii ) MCFG_CPU_ADD( "maincpu", UNSP, XTAL_27MHz) MCFG_CPU_PROGRAM_MAP( vii_mem ) @@ -1200,7 +1200,7 @@ static MACHINE_CONFIG_START( vii, vii_state ) MCFG_SOFTWARE_LIST_ADD("vii_cart","vii") MACHINE_CONFIG_END -static MACHINE_CONFIG_START( vsmile, vii_state ) +static MACHINE_CONFIG_START( vsmile ) MCFG_CPU_ADD( "maincpu", UNSP, XTAL_27MHz) MCFG_CPU_PROGRAM_MAP( vii_mem ) @@ -1221,7 +1221,7 @@ static MACHINE_CONFIG_START( vsmile, vii_state ) MCFG_SOFTWARE_LIST_ADD("cart_list","vsmile_cart") MACHINE_CONFIG_END -static MACHINE_CONFIG_START( batman, vii_state ) +static MACHINE_CONFIG_START( batman ) MCFG_CPU_ADD( "maincpu", UNSP, XTAL_27MHz) MCFG_CPU_PROGRAM_MAP( vii_mem ) @@ -1239,7 +1239,7 @@ static MACHINE_CONFIG_START( batman, vii_state ) MCFG_PALETTE_ADD("palette", 32768) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( wirels60, vii_state ) +static MACHINE_CONFIG_START( wirels60 ) MCFG_CPU_ADD( "maincpu", UNSP, XTAL_27MHz) MCFG_CPU_PROGRAM_MAP( vii_mem ) @@ -1327,7 +1327,7 @@ ROM_START( wirels60 ) ROM_LOAD( "wirels60.bin", 0x0000, 0x4000000, CRC(b4df8b28) SHA1(00e3da542e4bc14baf4724ad436f66d4c0f65c84)) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS CONS( 2004, batmantv, vii, 0, batman, batman, vii_state, batman, "JAKKS Pacific Inc / HotGen Ltd", "The Batman", MACHINE_NO_SOUND ) CONS( 2005, vsmile, 0, 0, vsmile, vsmile, vii_state, vsmile, "V-Tech", "V-Smile (Germany)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING ) CONS( 2005, vsmilef, vsmile, 0, vsmile, vsmile, vii_state, vsmile, "V-Tech", "V-Smile (France)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/vindictr.cpp b/src/mame/drivers/vindictr.cpp index 93dbb21c466..b757fe65406 100644 --- a/src/mame/drivers/vindictr.cpp +++ b/src/mame/drivers/vindictr.cpp @@ -181,7 +181,7 @@ GFXDECODE_END * *************************************/ -static MACHINE_CONFIG_START( vindictr, vindictr_state ) +static MACHINE_CONFIG_START( vindictr ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68010, ATARI_CLOCK_14MHz/2) diff --git a/src/mame/drivers/vip.cpp b/src/mame/drivers/vip.cpp index a70675f905a..24efd928e23 100644 --- a/src/mame/drivers/vip.cpp +++ b/src/mame/drivers/vip.cpp @@ -710,7 +710,7 @@ QUICKLOAD_LOAD_MEMBER( vip_state, vip ) // MACHINE_CONFIG( vip ) //------------------------------------------------- -static MACHINE_CONFIG_START( vip, vip_state ) +static MACHINE_CONFIG_START( vip ) // basic machine hardware MCFG_CPU_ADD(CDP1802_TAG, CDP1802, XTAL_3_52128MHz/2) MCFG_CPU_PROGRAM_MAP(vip_mem) @@ -808,6 +808,6 @@ ROM_END // SYSTEM DRIVERS //************************************************************************** -// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS -COMP( 1977, vip, 0, 0, vip, vip, driver_device, 0, "RCA", "Cosmac VIP (VP-711)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_COLORS ) -COMP( 1977, vp111, vip, 0, vp111, vip, driver_device, 0, "RCA", "Cosmac VIP (VP-111)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_COLORS ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1977, vip, 0, 0, vip, vip, vip_state, 0, "RCA", "Cosmac VIP (VP-711)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_COLORS ) +COMP( 1977, vp111, vip, 0, vp111, vip, vip_state, 0, "RCA", "Cosmac VIP (VP-111)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_COLORS ) diff --git a/src/mame/drivers/viper.cpp b/src/mame/drivers/viper.cpp index b1286c9a82a..87c76d3edfe 100644 --- a/src/mame/drivers/viper.cpp +++ b/src/mame/drivers/viper.cpp @@ -2302,7 +2302,7 @@ void viper_state::machine_reset() m_ds2430_unk_status = 1; } -static MACHINE_CONFIG_START( viper, viper_state ) +static MACHINE_CONFIG_START( viper ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", MPC8240, 200000000) diff --git a/src/mame/drivers/vis.cpp b/src/mame/drivers/vis.cpp index 71a8d2912b2..3b8d1f51d48 100644 --- a/src/mame/drivers/vis.cpp +++ b/src/mame/drivers/vis.cpp @@ -41,10 +41,10 @@ private: emu_timer *m_pcm; }; -const device_type VIS_AUDIO = device_creator; +DEFINE_DEVICE_TYPE(VIS_AUDIO, vis_audio_device, "vis_pcm", "vis_pcm") vis_audio_device::vis_audio_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, VIS_AUDIO, "vis_pcm", tag, owner, clock, "vis_pcm", __FILE__), + : device_t(mconfig, VIS_AUDIO, tag, owner, clock), device_isa16_card_interface(mconfig, *this), m_rdac(*this, "rdac"), m_ldac(*this, "ldac") @@ -252,10 +252,10 @@ private: uint8_t m_crtc_regs[0x31]; }; -const device_type VIS_VGA = device_creator; +DEFINE_DEVICE_TYPE(VIS_VGA, vis_vga_device, "vis_vga", "vis_vga") vis_vga_device::vis_vga_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : svga_device(mconfig, VIS_VGA, "vis_vga", tag, owner, clock, "vis_vga", __FILE__), + : svga_device(mconfig, VIS_VGA, tag, owner, clock), device_isa16_card_interface(mconfig, *this) { m_palette.set_tag("palette"); @@ -890,7 +890,7 @@ static INPUT_PORTS_START(vis) PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_UNKNOWN ) PORT_CHANGED_MEMBER(DEVICE_SELF, vis_state, update, 0) INPUT_PORTS_END -static MACHINE_CONFIG_START( vis, vis_state ) +static MACHINE_CONFIG_START( vis ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I80286, XTAL_12MHz ) MCFG_CPU_PROGRAM_MAP(at16_map) @@ -920,5 +920,4 @@ ROM_START(vis) ROM_LOAD( "p513bk1b.bin", 0x80000, 0x80000, CRC(e18239c4) SHA1(a0262109e10a07a11eca43371be9978fff060bc5)) ROM_END -COMP ( 1992, vis, 0, 0, vis, vis, driver_device, 0, "Tandy/Memorex", "Video Information System MD-2500", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) - +COMP ( 1992, vis, 0, 0, vis, vis, vis_state, 0, "Tandy/Memorex", "Video Information System MD-2500", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) diff --git a/src/mame/drivers/vixen.cpp b/src/mame/drivers/vixen.cpp index 1249beae019..19d7037288f 100644 --- a/src/mame/drivers/vixen.cpp +++ b/src/mame/drivers/vixen.cpp @@ -281,7 +281,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( vixen_io, AS_IO, 8, vixen_state ) ADDRESS_MAP_UNMAP_HIGH ADDRESS_MAP_GLOBAL_MASK(0xff) - AM_RANGE(0x00, 0x03) AM_DEVREADWRITE(FDC1797_TAG, fd1797_t, read, write) + AM_RANGE(0x00, 0x03) AM_DEVREADWRITE(FDC1797_TAG, fd1797_device, read, write) AM_RANGE(0x04, 0x04) AM_MIRROR(0x03) AM_READWRITE(status_r, cmd_w) AM_RANGE(0x08, 0x08) AM_MIRROR(0x01) AM_DEVREADWRITE(P8155H_TAG, i8155_device, read, write) AM_RANGE(0x0c, 0x0d) AM_DEVWRITE(P8155H_TAG, i8155_device, ale_w) @@ -737,7 +737,7 @@ void vixen_state::machine_reset() // MACHINE_CONFIG( vixen ) //------------------------------------------------- -static MACHINE_CONFIG_START( vixen, vixen_state ) +static MACHINE_CONFIG_START( vixen ) // basic machine hardware MCFG_CPU_ADD(Z8400A_TAG, Z80, XTAL_23_9616MHz/6) MCFG_CPU_PROGRAM_MAP(vixen_mem) @@ -844,5 +844,5 @@ DRIVER_INIT_MEMBER(vixen_state,vixen) // SYSTEM DRIVERS //************************************************************************** -// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS COMP( 1984, vixen, 0, 0, vixen, vixen, vixen_state, vixen, "Osborne", "Vixen", 0 ) diff --git a/src/mame/drivers/vk100.cpp b/src/mame/drivers/vk100.cpp index df9b4873af7..6d53403aec5 100644 --- a/src/mame/drivers/vk100.cpp +++ b/src/mame/drivers/vk100.cpp @@ -1032,7 +1032,7 @@ MC6845_UPDATE_ROW( vk100_state::crtc_update_row ) } -static MACHINE_CONFIG_START( vk100, vk100_state ) +static MACHINE_CONFIG_START( vk100 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8085A, XTAL_5_0688MHz) MCFG_CPU_PROGRAM_MAP(vk100_mem) @@ -1266,5 +1266,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ COMP( 1980, vk100, 0, 0, vk100, vk100, vk100_state, vk100, "Digital Equipment Corporation", "VK100 'GIGI'", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) diff --git a/src/mame/drivers/vlc.cpp b/src/mame/drivers/vlc.cpp index 3b5a0a9bd87..5574256c365 100644 --- a/src/mame/drivers/vlc.cpp +++ b/src/mame/drivers/vlc.cpp @@ -589,7 +589,7 @@ MACHINE_START_MEMBER(nevada_state, nevada) * Machine Driver * *************************/ -static MACHINE_CONFIG_START( nevada, nevada_state ) +static MACHINE_CONFIG_START( nevada ) // basic machine hardware MCFG_CPU_ADD("maincpu", M68000, MASTER_CPU) MCFG_CPU_PROGRAM_MAP(nevada_map) @@ -698,6 +698,5 @@ DRIVER_INIT_MEMBER(nevada_state,nevada) * Game Drivers * *************************/ -/* YEAR NAME PARENT MACHINE INPUT INIT ROT COMPANY FULLNAME FLAGS... */ - +// YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS GAME( 1995, nevada, 0, nevada, nevada, nevada_state, nevada, ROT0, "VLC Inc.", "VLC Nevada", MACHINE_NO_SOUND | MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/volfied.cpp b/src/mame/drivers/volfied.cpp index 0f5c67c481b..7827b211ac7 100644 --- a/src/mame/drivers/volfied.cpp +++ b/src/mame/drivers/volfied.cpp @@ -219,7 +219,7 @@ void volfied_state::machine_reset() cchip_reset(); } -static MACHINE_CONFIG_START( volfied, volfied_state ) +static MACHINE_CONFIG_START( volfied ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, CPU_CLOCK) /* 8MHz */ @@ -446,9 +446,9 @@ ROM_START( volfiedjo ) ROM_END -GAME( 1989, volfied, 0, volfied, volfied, driver_device, 0, ROT270, "Taito Corporation Japan", "Volfied (World, revision 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, volfiedu, volfied, volfied, volfiedu, driver_device, 0, ROT270, "Taito America Corporation", "Volfied (US, revision 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, volfiedj, volfied, volfied, volfiedj, driver_device, 0, ROT270, "Taito Corporation", "Volfied (Japan, revision 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, volfiedo, volfied, volfied, volfiedj, driver_device, 0, ROT270, "Taito Corporation Japan", "Volfied (World)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, volfieduo, volfied, volfied, volfiedj, driver_device, 0, ROT270, "Taito America Corporation", "Volfied (US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, volfiedjo, volfied, volfied, volfiedj, driver_device, 0, ROT270, "Taito Corporation", "Volfied (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, volfied, 0, volfied, volfied, volfied_state, 0, ROT270, "Taito Corporation Japan", "Volfied (World, revision 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, volfiedu, volfied, volfied, volfiedu, volfied_state, 0, ROT270, "Taito America Corporation", "Volfied (US, revision 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, volfiedj, volfied, volfied, volfiedj, volfied_state, 0, ROT270, "Taito Corporation", "Volfied (Japan, revision 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, volfiedo, volfied, volfied, volfiedj, volfied_state, 0, ROT270, "Taito Corporation Japan", "Volfied (World)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, volfieduo, volfied, volfied, volfiedj, volfied_state, 0, ROT270, "Taito America Corporation", "Volfied (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, volfiedjo, volfied, volfied, volfiedj, volfied_state, 0, ROT270, "Taito Corporation", "Volfied (Japan)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/votrpss.cpp b/src/mame/drivers/votrpss.cpp index fc70577202a..d6f5ce0f253 100644 --- a/src/mame/drivers/votrpss.cpp +++ b/src/mame/drivers/votrpss.cpp @@ -101,7 +101,7 @@ public: { } - DECLARE_WRITE8_MEMBER(kbd_put); + void kbd_put(u8 data); DECLARE_READ8_MEMBER(ppi_pa_r); DECLARE_READ8_MEMBER(ppi_pb_r); DECLARE_READ8_MEMBER(ppi_pc_r); @@ -111,6 +111,7 @@ public: TIMER_DEVICE_CALLBACK_MEMBER(irq_timer); DECLARE_WRITE_LINE_MEMBER(write_uart_clock); IRQ_CALLBACK_MEMBER(irq_ack); + private: uint8_t m_term_data; uint8_t m_porta; @@ -239,7 +240,7 @@ WRITE8_MEMBER( votrpss_state::ppi_pc_w ) m_portc = data; } -WRITE8_MEMBER( votrpss_state::kbd_put ) +void votrpss_state::kbd_put(u8 data) { m_term_data = data; } @@ -254,7 +255,7 @@ DECLARE_WRITE_LINE_MEMBER( votrpss_state::write_uart_clock ) Machine Drivers ******************************************************************************/ -static MACHINE_CONFIG_START( votrpss, votrpss_state ) +static MACHINE_CONFIG_START( votrpss ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_8MHz/2) /* 4.000 MHz, verified */ MCFG_CPU_PROGRAM_MAP(votrpss_mem) @@ -275,7 +276,7 @@ static MACHINE_CONFIG_START( votrpss, votrpss_state ) /* Devices */ MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0) - MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(votrpss_state, kbd_put)) + MCFG_GENERIC_TERMINAL_KEYBOARD_CB(PUT(votrpss_state, kbd_put)) MCFG_DEVICE_ADD("uart", I8251, 0) MCFG_I8251_TXD_HANDLER(DEVWRITELINE("rs232", rs232_port_device, write_txd)) @@ -334,5 +335,5 @@ ROM_END Drivers ******************************************************************************/ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1982, votrpss, 0, 0, votrpss, votrpss, driver_device, 0, "Votrax", "Personal Speech System", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1982, votrpss, 0, 0, votrpss, votrpss, votrpss_state, 0, "Votrax", "Personal Speech System", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/votrtnt.cpp b/src/mame/drivers/votrtnt.cpp index fb4bf03efb8..97d93c0f20f 100644 --- a/src/mame/drivers/votrtnt.cpp +++ b/src/mame/drivers/votrtnt.cpp @@ -125,7 +125,7 @@ WRITE_LINE_MEMBER(votrtnt_state::write_acia_clock) Machine Drivers ******************************************************************************/ -static MACHINE_CONFIG_START( votrtnt, votrtnt_state ) +static MACHINE_CONFIG_START( votrtnt ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6802, XTAL_2_4576MHz) /* 2.4576MHz XTAL, verified; divided by 4 inside the m6802*/ MCFG_CPU_PROGRAM_MAP(6802_mem) @@ -168,5 +168,5 @@ ROM_END Drivers ******************************************************************************/ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1980, votrtnt, 0, 0, votrtnt, votrtnt, driver_device, 0, "Votrax", "Type 'N Talk", MACHINE_NOT_WORKING ) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 1980, votrtnt, 0, 0, votrtnt, votrtnt, votrtnt_state, 0, "Votrax", "Type 'N Talk", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/voyager.cpp b/src/mame/drivers/voyager.cpp index b4edc552795..74459d06189 100644 --- a/src/mame/drivers/voyager.cpp +++ b/src/mame/drivers/voyager.cpp @@ -484,7 +484,7 @@ void voyager_state::machine_reset() membank("bank1")->set_base(memregion("bios")->base()); } -static MACHINE_CONFIG_START( voyager, voyager_state ) +static MACHINE_CONFIG_START( voyager ) MCFG_CPU_ADD("maincpu", PENTIUM3, 133000000) // actually AMD Duron CPU of unknown clock MCFG_CPU_PROGRAM_MAP(voyager_map) MCFG_CPU_IO_MAP(voyager_io) diff --git a/src/mame/drivers/vp101.cpp b/src/mame/drivers/vp101.cpp index df8151ca0a2..eed2691184f 100644 --- a/src/mame/drivers/vp101.cpp +++ b/src/mame/drivers/vp101.cpp @@ -361,7 +361,7 @@ static INPUT_PORTS_START( vp50 ) PORT_BIT( 0xfffffff0, IP_ACTIVE_HIGH, IPT_UNKNOWN ) INPUT_PORTS_END -static MACHINE_CONFIG_START( vp101, vp10x_state ) +static MACHINE_CONFIG_START( vp101 ) MCFG_CPU_ADD("maincpu", VR5500LE, 400000000) MCFG_MIPS3_DCACHE_SIZE(32768) MCFG_MIPS3_SYSTEM_CLOCK(100000000) @@ -380,7 +380,7 @@ static MACHINE_CONFIG_START( vp101, vp10x_state ) MCFG_NVRAM_ADD_0FILL("nvram") MACHINE_CONFIG_END -static MACHINE_CONFIG_START( vp50, vp10x_state ) +static MACHINE_CONFIG_START( vp50 ) MCFG_CPU_ADD("maincpu", TX4925LE, 200000000) MCFG_MIPS3_DCACHE_SIZE(32768) MCFG_MIPS3_SYSTEM_CLOCK(100000000) @@ -453,7 +453,7 @@ ROM_START(zoofari) DISK_IMAGE_READONLY("zoofari", 0, SHA1(8fb9cfb1ab2660f40b643fcd772243903bd69a6c) ) ROM_END -GAME( 2002, specfrce, 0, vp101, vp101, driver_device, 0, ROT0, "ICE/Play Mechanix", "Special Forces Elite Training (v01.02.00)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -GAME( 2002, specfrceo, specfrce, vp101, vp101, driver_device, 0, ROT0, "ICE/Play Mechanix", "Special Forces Elite Training (v01.01.01)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -GAME( 2004, jnero, 0, vp101, vp101, driver_device, 0, ROT0, "ICE/Play Mechanix", "Johnny Nero Action Hero (v01.01.08)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -GAME( 2006, zoofari, 0, vp50, vp50, driver_device, 0, ROT0, "ICE/Play Mechanix", "Zoofari", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +GAME( 2002, specfrce, 0, vp101, vp101, vp10x_state, 0, ROT0, "ICE/Play Mechanix", "Special Forces Elite Training (v01.02.00)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +GAME( 2002, specfrceo, specfrce, vp101, vp101, vp10x_state, 0, ROT0, "ICE/Play Mechanix", "Special Forces Elite Training (v01.01.01)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +GAME( 2004, jnero, 0, vp101, vp101, vp10x_state, 0, ROT0, "ICE/Play Mechanix", "Johnny Nero Action Hero (v01.01.08)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +GAME( 2006, zoofari, 0, vp50, vp50, vp10x_state, 0, ROT0, "ICE/Play Mechanix", "Zoofari", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) diff --git a/src/mame/drivers/vpoker.cpp b/src/mame/drivers/vpoker.cpp index 5d72ebd56f9..9cfde154c45 100644 --- a/src/mame/drivers/vpoker.cpp +++ b/src/mame/drivers/vpoker.cpp @@ -627,7 +627,7 @@ WRITE_LINE_MEMBER(vpoker_state::ptm_irq) m_maincpu->set_input_line(M6809_IRQ_LINE, state ? ASSERT_LINE : CLEAR_LINE); } -static MACHINE_CONFIG_START( vpoker, vpoker_state ) +static MACHINE_CONFIG_START( vpoker ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",M6809,XTAL_4MHz) @@ -702,6 +702,6 @@ ROM_START( 5acespkr ) ROM_END -/* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS... */ -GAME( 198?, vpoker, 0, vpoker, vpoker, driver_device, 0, ROT0, "Videotronics, Inc.", "Videotronics Draw Poker", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -GAME( 198?, 5acespkr, 0, vpoker, 5acespkr, driver_device, 0, ROT0, "", "5-Aces Poker", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +// YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS +GAME( 198?, vpoker, 0, vpoker, vpoker, vpoker_state, 0, ROT0, "Videotronics, Inc.", "Videotronics Draw Poker", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +GAME( 198?, 5acespkr, 0, vpoker, 5acespkr, vpoker_state, 0, ROT0, "", "5-Aces Poker", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/vroulet.cpp b/src/mame/drivers/vroulet.cpp index 43b2449fbe2..d01f069e83a 100644 --- a/src/mame/drivers/vroulet.cpp +++ b/src/mame/drivers/vroulet.cpp @@ -271,7 +271,7 @@ WRITE8_MEMBER(vroulet_state::ppi8255_c_w){} /* Machine Driver */ -static MACHINE_CONFIG_START( vroulet, vroulet_state ) +static MACHINE_CONFIG_START( vroulet ) // basic machine hardware MCFG_CPU_ADD("maincpu", Z80, 4000000) //??? MCFG_CPU_PROGRAM_MAP(vroulet_map) @@ -326,4 +326,4 @@ ROM_END /* Game Driver */ -GAME( 1989, vroulet, 0, vroulet, vroulet, driver_device, 0, ROT90, "World Game", "Vegas Roulette", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE ) +GAME( 1989, vroulet, 0, vroulet, vroulet, vroulet_state, 0, ROT90, "World Game", "Vegas Roulette", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/vsmilepro.cpp b/src/mame/drivers/vsmilepro.cpp index a5110e4891f..c1c807de2bf 100644 --- a/src/mame/drivers/vsmilepro.cpp +++ b/src/mame/drivers/vsmilepro.cpp @@ -47,7 +47,7 @@ ADDRESS_MAP_END static INPUT_PORTS_START( vsmilpro ) INPUT_PORTS_END -static MACHINE_CONFIG_START( vsmilpro, vsmilpro_state ) +static MACHINE_CONFIG_START( vsmilpro ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", ARM9, 150000000) MCFG_CPU_PROGRAM_MAP(vsmilpro_map) @@ -66,5 +66,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 2007, vsmilpro, 0, 0, vsmilpro, vsmilpro, driver_device, 0, "V-Tech", "V-Smile Pro", MACHINE_NOT_WORKING|MACHINE_NO_SOUND) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 2007, vsmilpro, 0, 0, vsmilpro, vsmilpro, vsmilpro_state, 0, "V-Tech", "V-Smile Pro", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/vsnes.cpp b/src/mame/drivers/vsnes.cpp index d64b6989a2f..77062881873 100644 --- a/src/mame/drivers/vsnes.cpp +++ b/src/mame/drivers/vsnes.cpp @@ -1699,7 +1699,7 @@ static INPUT_PORTS_START( supxevs ) PORT_DIPSETTING( 0xc0, "RP2C04-0004" ) INPUT_PORTS_END -static MACHINE_CONFIG_START( vsnes, vsnes_state ) +static MACHINE_CONFIG_START( vsnes ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", N2A03, NTSC_APU_CLOCK) @@ -1766,7 +1766,7 @@ static MACHINE_CONFIG_DERIVED( topgun, vsnes ) MCFG_PPU2C0X_SET_NMI(vsnes_state, ppu_irq_1) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( vsdual, vsnes_state ) +static MACHINE_CONFIG_START( vsdual ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", N2A03, NTSC_APU_CLOCK) @@ -1824,7 +1824,7 @@ static MACHINE_CONFIG_DERIVED( vsdual_pi, vsdual ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( vsnes_bootleg, vsnes_state ) +static MACHINE_CONFIG_START( vsnes_bootleg ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502,XTAL_16MHz/4) // 4mhz? seems too high but flickers badly otherwise, issue elsewhere? @@ -2800,63 +2800,63 @@ ROM_END Japan (C) Nintendo Co., Ltd. */ -/* YEAR NAME PARENT MACHINE INPUT INIT MONITOR */ -GAME( 1985, btlecity, 0, vsnes, btlecity, vsnes_state, vsnormal, ROT0, "Namco", "Vs. Battle City", 0 ) -GAME( 1985, starlstr, 0, vsnes, starlstr, vsnes_state, vsnormal, ROT0, "Namco", "Vs. Star Luster", 0 ) -GAME( 1987, cstlevna, 0, vsnes, cstlevna, vsnes_state, vsvram, ROT0, "Konami", "Vs. Castlevania", 0 ) -GAME( 1984, cluclu, 0, vsnes, cluclu, vsnes_state, vsnormal, ROT0, "Nintendo", "Vs. Clu Clu Land", 0 ) -GAME( 1990, drmario, 0, vsnes, drmario, vsnes_state, drmario, ROT0, "Nintendo", "Vs. Dr. Mario", 0 ) -GAME( 1984, excitebk, 0, vsnes, excitebk, vsnes_state, vsnormal, ROT0, "Nintendo", "Vs. Excitebike (set EB4-3 E)", 0 ) -GAME( 1984, excitebko,excitebk, vsnes, excitebk, vsnes_state, vsnormal, ROT0, "Nintendo", "Vs. Excitebike (set EB4-3 ?)", 0 ) // older -GAME( 1984, excitebkj,excitebk, vsnes, excitebk, vsnes_state, vsnormal, ROT0, "Nintendo", "Vs. Excitebike (set EB4-4 A)", 0 ) // likely Japan -GAME( 1986, goonies, 0, vsnes, goonies, vsnes_state, vskonami, ROT0, "Konami", "Vs. The Goonies (set E)", 0 ) -GAME( 1984, iceclimb, 0, vsnes, iceclmbj, vsnes_state, vsnormal, ROT0, "Nintendo", "Vs. Ice Climber (set IC4-4 B-1)", 0 ) -GAME( 1984, iceclimba,iceclimb, vsnes, iceclimb, vsnes_state, vsnormal, ROT0, "Nintendo", "Vs. Ice Climber (set IC4-4 ?)", 0 ) -GAME( 1985, nvs_machrider, 0, vsnes, machridr, vsnes_state, vsnormal, ROT0, "Nintendo", "Vs. Mach Rider (Endurance Course Version)", MACHINE_IMPERFECT_GRAPHICS ) +/* YEAR NAME PARENT MACHINE INPUT STATE INIT MONITOR */ +GAME( 1985, btlecity, 0, vsnes, btlecity, vsnes_state, vsnormal, ROT0, "Namco", "Vs. Battle City", 0 ) +GAME( 1985, starlstr, 0, vsnes, starlstr, vsnes_state, vsnormal, ROT0, "Namco", "Vs. Star Luster", 0 ) +GAME( 1987, cstlevna, 0, vsnes, cstlevna, vsnes_state, vsvram, ROT0, "Konami", "Vs. Castlevania", 0 ) +GAME( 1984, cluclu, 0, vsnes, cluclu, vsnes_state, vsnormal, ROT0, "Nintendo", "Vs. Clu Clu Land", 0 ) +GAME( 1990, drmario, 0, vsnes, drmario, vsnes_state, drmario, ROT0, "Nintendo", "Vs. Dr. Mario", 0 ) +GAME( 1984, excitebk, 0, vsnes, excitebk, vsnes_state, vsnormal, ROT0, "Nintendo", "Vs. Excitebike (set EB4-3 E)", 0 ) +GAME( 1984, excitebko,excitebk, vsnes, excitebk, vsnes_state, vsnormal, ROT0, "Nintendo", "Vs. Excitebike (set EB4-3 ?)", 0 ) // older +GAME( 1984, excitebkj,excitebk, vsnes, excitebk, vsnes_state, vsnormal, ROT0, "Nintendo", "Vs. Excitebike (set EB4-4 A)", 0 ) // likely Japan +GAME( 1986, goonies, 0, vsnes, goonies, vsnes_state, vskonami, ROT0, "Konami", "Vs. The Goonies (set E)", 0 ) +GAME( 1984, iceclimb, 0, vsnes, iceclmbj, vsnes_state, vsnormal, ROT0, "Nintendo", "Vs. Ice Climber (set IC4-4 B-1)", 0 ) +GAME( 1984, iceclimba,iceclimb, vsnes, iceclimb, vsnes_state, vsnormal, ROT0, "Nintendo", "Vs. Ice Climber (set IC4-4 ?)", 0 ) +GAME( 1985, nvs_machrider, 0, vsnes, machridr, vsnes_state, vsnormal, ROT0, "Nintendo", "Vs. Mach Rider (Endurance Course Version)", MACHINE_IMPERFECT_GRAPHICS ) GAME( 1985, nvs_machridera,nvs_machrider, vsnes, machridj, vsnes_state, vsnormal, ROT0, "Nintendo", "Vs. Mach Rider (Fighting Course Version, set MR4-1 A)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1986, rbibb, 0, vsnes, rbibb, vsnes_state, rbibb, ROT0, "Namco", "Vs. Atari R.B.I. Baseball (set 1)", 0 ) -GAME( 1986, rbibba, rbibb, vsnes, rbibb, vsnes_state, rbibb, ROT0, "Namco", "Vs. Atari R.B.I. Baseball (set 2)", 0 ) -GAME( 1986, suprmrio, 0, vsnes, suprmrio, vsnes_state, vsnormal, ROT0, "Nintendo", "Vs. Super Mario Bros. (set SM4-4 E)", 0 ) -GAME( 1986, suprmrioa,suprmrio, vsnes, suprmrio, vsnes_state, vsnormal, ROT0, "Nintendo", "Vs. Super Mario Bros. (set ?, harder)", 0 ) -GAME( 1986, suprmriobl,suprmrio,vsnes_bootleg,suprmrio,vsnes_state,vsnormal, ROT0, "bootleg", "Vs. Super Mario Bros. (bootleg with Z80, set 1)", MACHINE_NOT_WORKING ) // timer starts at 200(!) -GAME( 1986, suprmriobl2,suprmrio,vsnes_bootleg,suprmrio,vsnes_state,vsnormal, ROT0, "bootleg", "Vs. Super Mario Bros. (bootleg with Z80, set 2)", MACHINE_NOT_WORKING ) // timer starts at 300 -GAME( 1988, skatekds, suprmrio, vsnes, suprmrio, vsnes_state, vsnormal, ROT0, "hack (Two-Bit Score)", "Vs. Skate Kids. (Graphic hack of Super Mario Bros.)", 0 ) -GAME( 1985, vsskykid, 0, vsnes, vsskykid, vsnes_state, MMC3, ROT0, "Namco", "Vs. Super SkyKid" , 0 ) -GAME( 1987, tkoboxng, 0, vsnes, tkoboxng, vsnes_state, tkoboxng, ROT0, "Namco / Data East USA", "Vs. T.K.O. Boxing", 0 ) -GAME( 1984, smgolf, 0, vsnes, golf4s, vsnes_state, vsnormal, ROT0, "Nintendo", "Vs. Stroke & Match Golf (Men Version, set GF4-2 F)", 0 ) -GAME( 1984, smgolfb, smgolf, vsnes, golf, vsnes_state, vsnormal, ROT0, "Nintendo", "Vs. Stroke & Match Golf (Men Version, set GF4-2 ?)", 0 ) -GAME( 1984, smgolfj, smgolf, vsnes, golf, vsnes_state, vsnormal, ROT0, "Nintendo Co., Ltd.", "Vs. Stroke & Match Golf (Men Version) (Japan, set GF3 B)", 0 ) -GAME( 1984, ladygolfe,smgolf, vsnes, golf, vsnes_state, vsnormal, ROT0, "Nintendo", "Vs. Stroke & Match Golf (Ladies Version, set LG4 E)", 0 ) -GAME( 1984, ladygolf, smgolf, vsnes, golf, vsnes_state, vsnormal, ROT0, "Nintendo", "Vs. Stroke & Match Golf (Ladies Version, set LG4 ?)", 0 ) -GAME( 1984, vspinbal, 0, vsnes, vspinbal, vsnes_state, vsnormal, ROT0, "Nintendo", "Vs. Pinball (US, set PN4 E-1)", 0 ) -GAME( 1984, vspinbalj,vspinbal, vsnes, vspinblj, vsnes_state, vsnormal, ROT0, "Nintendo Co., Ltd.", "Vs. Pinball (Japan, set PN3 B)", 0 ) -GAME( 1986, vsslalom, 0, vsnes, vsslalom, vsnes_state, vsnormal, ROT0, "Rare Coin-It Inc.", "Vs. Slalom", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1985, vssoccer, 0, vsnes, vssoccer, vsnes_state, vsnormal, ROT0, "Nintendo", "Vs. Soccer (set SC4-2 A)", 0 ) -GAME( 1985, vssoccera,vssoccer, vsnes, vssoccer, vsnes_state, bnglngby, ROT0, "Nintendo", "Vs. Soccer (set SC4-3 ?)", 0 ) -GAME( 1986, vsgradus, 0, vsnes, vsgradus, vsnes_state, vskonami, ROT0, "Konami", "Vs. Gradius (US, set GR E)", 0 ) -GAME( 1987, nvs_platoon, 0, vsnes, platoon, vsnes_state, platoon, ROT0, "Ocean Software Limited", "Vs. Platoon", 0 ) -GAME( 1987, vstetris, 0, vsnes, vstetris, vsnes_state, vsnormal, ROT0, "Academysoft-Elorg", "Vs. Tetris" , 0 ) -GAME( 1986, nvs_mightybj, 0, mightybj,mightybj, vsnes_state, vsnormal, ROT0, "Tecmo", "Vs. Mighty Bomb Jack (Japan)", 0 ) -GAME( 1985, jajamaru, 0, jajamaru,jajamaru, vsnes_state, vsnormal, ROT0, "Jaleco", "Vs. Ninja Jajamaru Kun (Japan)", 0 ) -GAME( 1987, topgun, 0, topgun, topgun, vsnes_state, vsvram, ROT0, "Konami", "Vs. Top Gun", 0) -GAME( 1985, bnglngby, 0, vsnes, bnglngby, vsnes_state, bnglngby, ROT0, "Nintendo / Broderbund Software Inc.", "Vs. Raid on Bungeling Bay (RD4-2 B)", 0 ) -GAME( 1986, supxevs, 0, vsnes, supxevs, vsnes_state, supxevs, ROT0, "Namco", "Vs. Super Xevious", 0 ) +GAME( 1986, rbibb, 0, vsnes, rbibb, vsnes_state, rbibb, ROT0, "Namco", "Vs. Atari R.B.I. Baseball (set 1)", 0 ) +GAME( 1986, rbibba, rbibb, vsnes, rbibb, vsnes_state, rbibb, ROT0, "Namco", "Vs. Atari R.B.I. Baseball (set 2)", 0 ) +GAME( 1986, suprmrio, 0, vsnes, suprmrio, vsnes_state, vsnormal, ROT0, "Nintendo", "Vs. Super Mario Bros. (set SM4-4 E)", 0 ) +GAME( 1986, suprmrioa,suprmrio, vsnes, suprmrio, vsnes_state, vsnormal, ROT0, "Nintendo", "Vs. Super Mario Bros. (set ?, harder)", 0 ) +GAME( 1986, suprmriobl,suprmrio, vsnes_bootleg, suprmrio, vsnes_state, vsnormal, ROT0, "bootleg", "Vs. Super Mario Bros. (bootleg with Z80, set 1)", MACHINE_NOT_WORKING ) // timer starts at 200(!) +GAME( 1986, suprmriobl2,suprmrio,vsnes_bootleg, suprmrio, vsnes_state, vsnormal, ROT0, "bootleg", "Vs. Super Mario Bros. (bootleg with Z80, set 2)", MACHINE_NOT_WORKING ) // timer starts at 300 +GAME( 1988, skatekds, suprmrio, vsnes, suprmrio, vsnes_state, vsnormal, ROT0, "hack (Two-Bit Score)", "Vs. Skate Kids. (Graphic hack of Super Mario Bros.)", 0 ) +GAME( 1985, vsskykid, 0, vsnes, vsskykid, vsnes_state, MMC3, ROT0, "Namco", "Vs. Super SkyKid", 0 ) +GAME( 1987, tkoboxng, 0, vsnes, tkoboxng, vsnes_state, tkoboxng, ROT0, "Namco / Data East USA", "Vs. T.K.O. Boxing", 0 ) +GAME( 1984, smgolf, 0, vsnes, golf4s, vsnes_state, vsnormal, ROT0, "Nintendo", "Vs. Stroke & Match Golf (Men Version, set GF4-2 F)", 0 ) +GAME( 1984, smgolfb, smgolf, vsnes, golf, vsnes_state, vsnormal, ROT0, "Nintendo", "Vs. Stroke & Match Golf (Men Version, set GF4-2 ?)", 0 ) +GAME( 1984, smgolfj, smgolf, vsnes, golf, vsnes_state, vsnormal, ROT0, "Nintendo Co., Ltd.", "Vs. Stroke & Match Golf (Men Version) (Japan, set GF3 B)", 0 ) +GAME( 1984, ladygolfe,smgolf, vsnes, golf, vsnes_state, vsnormal, ROT0, "Nintendo", "Vs. Stroke & Match Golf (Ladies Version, set LG4 E)", 0 ) +GAME( 1984, ladygolf, smgolf, vsnes, golf, vsnes_state, vsnormal, ROT0, "Nintendo", "Vs. Stroke & Match Golf (Ladies Version, set LG4 ?)", 0 ) +GAME( 1984, vspinbal, 0, vsnes, vspinbal, vsnes_state, vsnormal, ROT0, "Nintendo", "Vs. Pinball (US, set PN4 E-1)", 0 ) +GAME( 1984, vspinbalj,vspinbal, vsnes, vspinblj, vsnes_state, vsnormal, ROT0, "Nintendo Co., Ltd.", "Vs. Pinball (Japan, set PN3 B)", 0 ) +GAME( 1986, vsslalom, 0, vsnes, vsslalom, vsnes_state, vsnormal, ROT0, "Rare Coin-It Inc.", "Vs. Slalom", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1985, vssoccer, 0, vsnes, vssoccer, vsnes_state, vsnormal, ROT0, "Nintendo", "Vs. Soccer (set SC4-2 A)", 0 ) +GAME( 1985, vssoccera,vssoccer, vsnes, vssoccer, vsnes_state, bnglngby, ROT0, "Nintendo", "Vs. Soccer (set SC4-3 ?)", 0 ) +GAME( 1986, vsgradus, 0, vsnes, vsgradus, vsnes_state, vskonami, ROT0, "Konami", "Vs. Gradius (US, set GR E)", 0 ) +GAME( 1987, nvs_platoon, 0, vsnes, platoon, vsnes_state, platoon, ROT0, "Ocean Software Limited", "Vs. Platoon", 0 ) +GAME( 1987, vstetris, 0, vsnes, vstetris, vsnes_state, vsnormal, ROT0, "Academysoft-Elorg", "Vs. Tetris" , 0 ) +GAME( 1986, nvs_mightybj, 0, mightybj, mightybj, vsnes_state, vsnormal, ROT0, "Tecmo", "Vs. Mighty Bomb Jack (Japan)", 0 ) +GAME( 1985, jajamaru, 0, jajamaru, jajamaru, vsnes_state, vsnormal, ROT0, "Jaleco", "Vs. Ninja Jajamaru Kun (Japan)", 0 ) +GAME( 1987, topgun, 0, topgun, topgun, vsnes_state, vsvram, ROT0, "Konami", "Vs. Top Gun", 0) +GAME( 1985, bnglngby, 0, vsnes, bnglngby, vsnes_state, bnglngby, ROT0, "Nintendo / Broderbund Software Inc.", "Vs. Raid on Bungeling Bay (RD4-2 B)", 0 ) +GAME( 1986, supxevs, 0, vsnes, supxevs, vsnes_state, supxevs, ROT0, "Namco", "Vs. Super Xevious", 0 ) /* Light Gun games */ -GAME( 1985, duckhunt, 0, vsnes, duckhunt, vsnes_state, vsgun, ROT0, "Nintendo", "Vs. Duck Hunt (set DH3 E)", 0 ) -GAME( 1985, hogalley, 0, vsnes, hogalley, vsnes_state, vsgun, ROT0, "Nintendo", "Vs. Hogan's Alley (set HA4-1 E-1)", 0 ) -GAME( 1986, vsgshoe, 0, vsgshoe, vsgshoe, vsnes_state, vsgshoe, ROT0, "Nintendo", "Vs. Gumshoe (set GM5)", 0 ) -GAME( 1988, vsfdf, 0, vsnes, vsfdf, vsnes_state, vsfdf, ROT0, "Sunsoft", "Vs. Freedom Force", 0 ) +GAME( 1985, duckhunt, 0, vsnes, duckhunt, vsnes_state, vsgun, ROT0, "Nintendo", "Vs. Duck Hunt (set DH3 E)", 0 ) +GAME( 1985, hogalley, 0, vsnes, hogalley, vsnes_state, vsgun, ROT0, "Nintendo", "Vs. Hogan's Alley (set HA4-1 E-1)", 0 ) +GAME( 1986, vsgshoe, 0, vsgshoe, vsgshoe, vsnes_state, vsgshoe, ROT0, "Nintendo", "Vs. Gumshoe (set GM5)", 0 ) +GAME( 1988, vsfdf, 0, vsnes, vsfdf, vsnes_state, vsfdf, ROT0, "Sunsoft", "Vs. Freedom Force", 0 ) /* Dual games */ -GAME( 1984, vstennis, 0, vsdual_pi, vstennis, vsnes_state, vsdual, ROT0, "Nintendo Co., Ltd.", "Vs. Tennis (Japan/USA, set TE A-3)" , 0 ) -GAME( 1984, vstennisa,vstennis, vsdual_pi, vstennis, vsnes_state, vsdual, ROT0, "Nintendo Co., Ltd.", "Vs. Tennis (Japan/USA, set 2)" , 0 ) -GAME( 1984, vstennisb,vstennis, vsdual_pi, vstennis, vsnes_state, vsdual, ROT0, "Nintendo Co., Ltd.", "Vs. Tennis (Japan/USA, set 3)" , MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1984, wrecking, 0, vsdual_pi, wrecking, vsnes_state, vsdual, ROT0, "Nintendo", "Vs. Wrecking Crew", 0 ) -GAME( 1984, balonfgt, 0, vsdual_pi, balonfgt, vsnes_state, vsdual, ROT0, "Nintendo", "Vs. Balloon Fight (set BF4 A-3)", 0 ) -GAME( 1984, vsmahjng, 0, vsdual, vsmahjng, vsnes_state, vsdual, ROT0, "Nintendo Co., Ltd.", "Vs. Mahjong (Japan)" , 0 ) -GAME( 1984, vsbball, 0, vsdual_pi, vsbball, vsnes_state, vsdual, ROT0, "Nintendo of America", "Vs. BaseBall (US, set BA E-1)", 0 ) -GAME( 1984, vsbballj, vsbball, vsdual_pi, vsbballj, vsnes_state, vsdual, ROT0, "Nintendo Co., Ltd.", "Vs. BaseBall (Japan, set BA A-3)", 0 ) -GAME( 1984, vsbballja,vsbball, vsdual_pi, vsbballj, vsnes_state, vsdual, ROT0, "Nintendo Co., Ltd.", "Vs. BaseBall (Japan, set BA A-2)", 0 ) -GAME( 1984, vsbballjb,vsbball, vsdual_pi, vsbballj, vsnes_state, vsdual, ROT0, "Nintendo Co., Ltd.", "Vs. BaseBall (Japan, set BA A-1)", 0 ) -GAME( 1984, iceclmrd, 0, vsdual_pi, iceclmrj, vsnes_state, vsdual, ROT0, "Nintendo", "Vs. Ice Climber Dual (set IC4-4 A-1)" , 0 ) +GAME( 1984, vstennis, 0, vsdual_pi, vstennis, vsnes_state, vsdual, ROT0, "Nintendo Co., Ltd.", "Vs. Tennis (Japan/USA, set TE A-3)" , 0 ) +GAME( 1984, vstennisa,vstennis, vsdual_pi, vstennis, vsnes_state, vsdual, ROT0, "Nintendo Co., Ltd.", "Vs. Tennis (Japan/USA, set 2)", 0 ) +GAME( 1984, vstennisb,vstennis, vsdual_pi, vstennis, vsnes_state, vsdual, ROT0, "Nintendo Co., Ltd.", "Vs. Tennis (Japan/USA, set 3)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1984, wrecking, 0, vsdual_pi, wrecking, vsnes_state, vsdual, ROT0, "Nintendo", "Vs. Wrecking Crew", 0 ) +GAME( 1984, balonfgt, 0, vsdual_pi, balonfgt, vsnes_state, vsdual, ROT0, "Nintendo", "Vs. Balloon Fight (set BF4 A-3)", 0 ) +GAME( 1984, vsmahjng, 0, vsdual, vsmahjng, vsnes_state, vsdual, ROT0, "Nintendo Co., Ltd.", "Vs. Mahjong (Japan)", 0 ) +GAME( 1984, vsbball, 0, vsdual_pi, vsbball, vsnes_state, vsdual, ROT0, "Nintendo of America", "Vs. BaseBall (US, set BA E-1)", 0 ) +GAME( 1984, vsbballj, vsbball, vsdual_pi, vsbballj, vsnes_state, vsdual, ROT0, "Nintendo Co., Ltd.", "Vs. BaseBall (Japan, set BA A-3)", 0 ) +GAME( 1984, vsbballja,vsbball, vsdual_pi, vsbballj, vsnes_state, vsdual, ROT0, "Nintendo Co., Ltd.", "Vs. BaseBall (Japan, set BA A-2)", 0 ) +GAME( 1984, vsbballjb,vsbball, vsdual_pi, vsbballj, vsnes_state, vsdual, ROT0, "Nintendo Co., Ltd.", "Vs. BaseBall (Japan, set BA A-1)", 0 ) +GAME( 1984, iceclmrd, 0, vsdual_pi, iceclmrj, vsnes_state, vsdual, ROT0, "Nintendo", "Vs. Ice Climber Dual (set IC4-4 A-1)", 0 ) diff --git a/src/mame/drivers/vt100.cpp b/src/mame/drivers/vt100.cpp index bf2a2a09463..bc12952d55b 100644 --- a/src/mame/drivers/vt100.cpp +++ b/src/mame/drivers/vt100.cpp @@ -402,7 +402,7 @@ static GFXDECODE_START( vt100 ) GFXDECODE_ENTRY( "chargen", 0x0000, vt100_charlayout, 0, 1 ) GFXDECODE_END -static MACHINE_CONFIG_START( vt100, vt100_state ) +static MACHINE_CONFIG_START( vt100 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",I8080, XTAL_24_8832MHz / 9) MCFG_CPU_PROGRAM_MAP(vt100_mem) @@ -880,15 +880,15 @@ ROM_END /* Driver */ /* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1978, vt100, 0, 0, vt100, vt100, driver_device, 0, "Digital Equipment Corporation", "VT100",MACHINE_NOT_WORKING) -//COMP( 1978, vt100wp, vt100, 0, vt100, vt100, driver_device, 0, "Digital Equipment Corporation", "VT100-Wx", MACHINE_NOT_WORKING) -COMP( 1979, vt100ac, vt100, 0, vt100, vt100, driver_device, 0, "Digital Equipment Corporation", "VT100 w/VT1xx-AC STP", MACHINE_NOT_WORKING) -COMP( 1981, vt101, vt102, 0, vt102, vt100, driver_device, 0, "Digital Equipment Corporation", "VT101", MACHINE_NOT_WORKING) -COMP( 1981, vt102, 0, 0, vt102, vt100, driver_device, 0, "Digital Equipment Corporation", "VT102", MACHINE_NOT_WORKING) -//COMP( 1979, vt103, vt100, 0, vt100, vt100, driver_device, 0, "Digital Equipment Corporation", "VT103", MACHINE_NOT_WORKING) -COMP( 1978, vt105, vt100, 0, vt100, vt100, driver_device, 0, "Digital Equipment Corporation", "VT105", MACHINE_NOT_WORKING) -//COMP( 1978, vt110, vt100, 0, vt100, vt100, driver_device, 0, "Digital Equipment Corporation", "VT110", MACHINE_NOT_WORKING) -//COMP( 1981, vt125, vt100, 0, vt100, vt100, driver_device, 0, "Digital Equipment Corporation", "VT125", MACHINE_NOT_WORKING) -COMP( 1981, vt131, vt102, 0, vt102, vt100, driver_device, 0, "Digital Equipment Corporation", "VT131", MACHINE_NOT_WORKING) -//COMP( 1979, vt132, vt100, 0, vt100, vt100, driver_device, 0, "Digital Equipment Corporation", "VT132", MACHINE_NOT_WORKING) -COMP( 1983, vt180, vt100, 0, vt180, vt100, driver_device, 0, "Digital Equipment Corporation", "VT180", MACHINE_NOT_WORKING) +COMP( 1978, vt100, 0, 0, vt100, vt100, vt100_state, 0, "Digital Equipment Corporation", "VT100",MACHINE_NOT_WORKING) +//COMP( 1978, vt100wp, vt100, 0, vt100, vt100, vt100_state, 0, "Digital Equipment Corporation", "VT100-Wx", MACHINE_NOT_WORKING) +COMP( 1979, vt100ac, vt100, 0, vt100, vt100, vt100_state, 0, "Digital Equipment Corporation", "VT100 w/VT1xx-AC STP", MACHINE_NOT_WORKING) +COMP( 1981, vt101, vt102, 0, vt102, vt100, vt100_state, 0, "Digital Equipment Corporation", "VT101", MACHINE_NOT_WORKING) +COMP( 1981, vt102, 0, 0, vt102, vt100, vt100_state, 0, "Digital Equipment Corporation", "VT102", MACHINE_NOT_WORKING) +//COMP( 1979, vt103, vt100, 0, vt100, vt100, vt100_state, 0, "Digital Equipment Corporation", "VT103", MACHINE_NOT_WORKING) +COMP( 1978, vt105, vt100, 0, vt100, vt100, vt100_state, 0, "Digital Equipment Corporation", "VT105", MACHINE_NOT_WORKING) +//COMP( 1978, vt110, vt100, 0, vt100, vt100, vt100_state, 0, "Digital Equipment Corporation", "VT110", MACHINE_NOT_WORKING) +//COMP( 1981, vt125, vt100, 0, vt100, vt100, vt100_state, 0, "Digital Equipment Corporation", "VT125", MACHINE_NOT_WORKING) +COMP( 1981, vt131, vt102, 0, vt102, vt100, vt100_state, 0, "Digital Equipment Corporation", "VT131", MACHINE_NOT_WORKING) +//COMP( 1979, vt132, vt100, 0, vt100, vt100, vt100_state, 0, "Digital Equipment Corporation", "VT132", MACHINE_NOT_WORKING) +COMP( 1983, vt180, vt100, 0, vt180, vt100, vt100_state, 0, "Digital Equipment Corporation", "VT180", MACHINE_NOT_WORKING) diff --git a/src/mame/drivers/vt220.cpp b/src/mame/drivers/vt220.cpp index 266d9115166..abb63cfab67 100644 --- a/src/mame/drivers/vt220.cpp +++ b/src/mame/drivers/vt220.cpp @@ -59,7 +59,7 @@ uint32_t vt220_state::screen_update_vt220(screen_device &screen, bitmap_ind16 &b } -static MACHINE_CONFIG_START( vt220, vt220_state ) +static MACHINE_CONFIG_START( vt220 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8051, XTAL_11_0592MHz) // from schematic MCFG_CPU_PROGRAM_MAP(vt220_mem) @@ -110,5 +110,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1983, vt220, 0, 0, vt220, vt220, driver_device, 0, "Digital Equipment Corporation", "VT220", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +COMP( 1983, vt220, 0, 0, vt220, vt220, vt220_state, 0, "Digital Equipment Corporation", "VT220", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) diff --git a/src/mame/drivers/vt240.cpp b/src/mame/drivers/vt240.cpp index 050a9b2e77c..0ecce7b128f 100644 --- a/src/mame/drivers/vt240.cpp +++ b/src/mame/drivers/vt240.cpp @@ -638,7 +638,7 @@ static INPUT_PORTS_START( vt240 ) PORT_CONFSETTING(0x01, "Color") INPUT_PORTS_END -static MACHINE_CONFIG_START( vt240, vt240_state ) +static MACHINE_CONFIG_START( vt240 ) MCFG_CPU_ADD("maincpu", T11, XTAL_7_3728MHz) // confirm MCFG_CPU_PROGRAM_MAP(vt240_mem) MCFG_T11_INITIAL_MODE(5 << 13) @@ -774,7 +774,7 @@ ROM_START( vt240 ) ROM_END /* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1983, vt240, 0, 0, vt240, vt240, driver_device, 0, "Digital Equipment Corporation", "VT240", MACHINE_IMPERFECT_GRAPHICS ) -//COMP( 1983, vt241, 0, 0, vt220, vt220, driver_device, 0, "Digital Equipment Corporation", "VT241", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +COMP( 1983, vt240, 0, 0, vt240, vt240, vt240_state, 0, "Digital Equipment Corporation", "VT240", MACHINE_IMPERFECT_GRAPHICS ) +//COMP( 1983, vt241, 0, 0, vt220, vt220, vt240_state, 0, "Digital Equipment Corporation", "VT241", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) // NOTE: the only difference between VT240 and VT241 is the latter comes with a VR241 Color monitor, while the former comes with a mono display; the ROMs and operation are identical. -COMP( 1983, mc7105, 0, 0, mc7105, vt240, driver_device, 0, "Elektronika", "MC7105", MACHINE_IMPERFECT_GRAPHICS ) +COMP( 1983, mc7105, 0, 0, mc7105, vt240, vt240_state, 0, "Elektronika", "MC7105", MACHINE_IMPERFECT_GRAPHICS ) diff --git a/src/mame/drivers/vt320.cpp b/src/mame/drivers/vt320.cpp index 0bb658bcd1f..153080bcb44 100644 --- a/src/mame/drivers/vt320.cpp +++ b/src/mame/drivers/vt320.cpp @@ -84,7 +84,7 @@ uint32_t vt320_state::screen_update_vt320(screen_device &screen, bitmap_ind16 &b } -static MACHINE_CONFIG_START( vt320, vt320_state ) +static MACHINE_CONFIG_START( vt320 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8051, XTAL_16MHz) MCFG_CPU_PROGRAM_MAP(vt320_mem) @@ -121,8 +121,8 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1987, vt320, 0, 0, vt320, vt320, driver_device, 0, "Digital Equipment Corporation", "VT320", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -//COMP( 1989?, vt330, 0, 0, vt320, vt320, driver_device, 0, "Digital Equipment Corporation", "VT330", MACHINE_NOT_WORKING) -//COMP( 1989?, vt340, 0, 0, vt320, vt320, driver_device, 0, "Digital Equipment Corporation", "VT340", MACHINE_NOT_WORKING) -//COMP( 1990?, vt340p, 0, 0, vt320, vt320, driver_device, 0, "Digital Equipment Corporation", "VT340+", MACHINE_NOT_WORKING) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +COMP( 1987, vt320, 0, 0, vt320, vt320, vt320_state, 0, "Digital Equipment Corporation", "VT320", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +//COMP( 1989?, vt330, 0, 0, vt320, vt320, vt320_state, 0, "Digital Equipment Corporation", "VT330", MACHINE_NOT_WORKING) +//COMP( 1989?, vt340, 0, 0, vt320, vt320, vt320_state, 0, "Digital Equipment Corporation", "VT340", MACHINE_NOT_WORKING) +//COMP( 1990?, vt340p, 0, 0, vt320, vt320, vt320_state, 0, "Digital Equipment Corporation", "VT340+", MACHINE_NOT_WORKING) diff --git a/src/mame/drivers/vt520.cpp b/src/mame/drivers/vt520.cpp index ccb9d33fe23..ea306fc52e9 100644 --- a/src/mame/drivers/vt520.cpp +++ b/src/mame/drivers/vt520.cpp @@ -73,7 +73,7 @@ uint32_t vt520_state::screen_update_vt520(screen_device &screen, bitmap_ind16 &b return 0; } -static MACHINE_CONFIG_START( vt520, vt520_state ) +static MACHINE_CONFIG_START( vt520 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",I8032, XTAL_20MHz) MCFG_CPU_PROGRAM_MAP(vt520_mem) @@ -106,7 +106,7 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -//COMP( 1993, vt510, 0, 0, vt520, vt520, driver_device, 0, "Digital Equipment Corporation", "VT510", MACHINE_NOT_WORKING) -COMP( 1994, vt520, 0, 0, vt520, vt520, driver_device, 0, "Digital Equipment Corporation", "VT520", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -//COMP( 1994, vt525, 0, 0, vt520, vt520, driver_device, 0, "Digital Equipment Corporation", "VT525", MACHINE_NOT_WORKING) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +//COMP( 1993, vt510, 0, 0, vt520, vt520, vt520_state, 0, "Digital Equipment Corporation", "VT510", MACHINE_NOT_WORKING) +COMP( 1994, vt520, 0, 0, vt520, vt520, vt520_state, 0, "Digital Equipment Corporation", "VT520", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +//COMP( 1994, vt525, 0, 0, vt520, vt520, vt520_state, 0, "Digital Equipment Corporation", "VT525", MACHINE_NOT_WORKING) diff --git a/src/mame/drivers/vta2000.cpp b/src/mame/drivers/vta2000.cpp index acc2064ad6a..2655f2e0ee8 100644 --- a/src/mame/drivers/vta2000.cpp +++ b/src/mame/drivers/vta2000.cpp @@ -154,7 +154,7 @@ PALETTE_INIT_MEMBER(vta2000_state, vta2000) palette.set_pen_color(2, 0x00, 0xff, 0x00); // highlight } -static MACHINE_CONFIG_START( vta2000, vta2000_state ) +static MACHINE_CONFIG_START( vta2000 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",I8080, XTAL_4MHz / 4) MCFG_CPU_PROGRAM_MAP(vta2000_mem) @@ -188,5 +188,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 19??, vta2000, 0, 0, vta2000, vta2000, driver_device, 0, "", "VTA-2000", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +COMP( 19??, vta2000, 0, 0, vta2000, vta2000, vta2000_state, 0, "", "VTA-2000", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/vtech1.cpp b/src/mame/drivers/vtech1.cpp index d24cb5ce684..f1d23a777e8 100644 --- a/src/mame/drivers/vtech1.cpp +++ b/src/mame/drivers/vtech1.cpp @@ -99,8 +99,8 @@ private: required_device m_mc6847; required_device m_speaker; required_device m_cassette; - required_device m_ioexp; - required_device m_memexp; + required_device m_ioexp; + required_device m_memexp; }; @@ -419,7 +419,7 @@ INPUT_PORTS_END static const int16_t speaker_levels[] = {-32768, 0, 32767, 0}; -static MACHINE_CONFIG_START( laser110, vtech1_state ) +static MACHINE_CONFIG_START( laser110 ) // basic machine hardware MCFG_CPU_ADD("maincpu", Z80, VTECH1_CLK) /* 3.57950 MHz */ @@ -433,7 +433,7 @@ static MACHINE_CONFIG_START( laser110, vtech1_state ) MCFG_MC6847_FSYNC_CALLBACK(INPUTLINE("maincpu", 0)) MCFG_DEVCB_INVERT MCFG_MC6847_INPUT_CALLBACK(READ8(vtech1_state, mc6847_videoram_r)) MCFG_MC6847_BW(true) - MCFG_MC6847_FIXED_MODE(MC6847_MODE_GM1) + MCFG_MC6847_FIXED_MODE(mc6847_pal_device::MODE_GM1) // GM2 = GND, GM0 = GND, INTEXT = GND // other lines not connected @@ -465,7 +465,7 @@ static MACHINE_CONFIG_DERIVED( laser200, laser110 ) MCFG_DEVICE_ADD("mc6847", MC6847_PAL, XTAL_4_433619MHz) MCFG_MC6847_FSYNC_CALLBACK(INPUTLINE("maincpu", 0)) MCFG_DEVCB_INVERT MCFG_MC6847_INPUT_CALLBACK(READ8(vtech1_state, mc6847_videoram_r)) - MCFG_MC6847_FIXED_MODE(MC6847_MODE_GM1) + MCFG_MC6847_FIXED_MODE(mc6847_pal_device::MODE_GM1) // GM2 = GND, GM0 = GND, INTEXT = GND // other lines not connected MACHINE_CONFIG_END @@ -489,7 +489,7 @@ static MACHINE_CONFIG_DERIVED( laser310h, laser310 ) MCFG_DEVICE_ADD("mc6847", MC6847_PAL, XTAL_4_433619MHz) MCFG_MC6847_FSYNC_CALLBACK(INPUTLINE("maincpu", 0)) MCFG_DEVCB_INVERT MCFG_MC6847_INPUT_CALLBACK(READ8(vtech1_state, mc6847_videoram_r)) - MCFG_MC6847_FIXED_MODE(MC6847_MODE_GM1) + MCFG_MC6847_FIXED_MODE(mc6847_pal_device::MODE_GM1) // INTEXT = GND // other lines not connected MACHINE_CONFIG_END @@ -550,7 +550,7 @@ ROM_END GAME DRIVERS ***************************************************************************/ -// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS COMP( 1983, laser110, 0, 0, laser110, vtech1, vtech1_state, vtech1, "Video Technology", "Laser 110", 0 ) COMP( 1983, laser200, 0, 0, laser200, vtech1, vtech1_state, vtech1, "Video Technology", "Laser 200", 0 ) COMP( 1983, vz200de, laser200, 0, laser200, vtech1, vtech1_state, vtech1, "Video Technology", "VZ-200 (Germany & Netherlands)", MACHINE_NOT_WORKING ) @@ -560,4 +560,4 @@ COMP( 1984, laser210, 0, 0, laser210, vtech1, vtech1_state, vtech1 COMP( 1984, vz200, laser210, 0, laser210, vtech1, vtech1_state, vtech1, "Dick Smith Electronics", "VZ-200 (Oceania)", 0 ) COMP( 1984, laser310, 0, 0, laser310, vtech1, vtech1_state, vtech1, "Video Technology", "Laser 310", 0 ) COMP( 1984, vz300, laser310, 0, laser310, vtech1, vtech1_state, vtech1, "Dick Smith Electronics", "VZ-300 (Oceania)", 0 ) -COMP( 1984, laser310h, laser310, 0, laser310h, vtech1, vtech1_state, vtech1h, "Video Technology", "Laser 310 (SHRG)", MACHINE_UNOFFICIAL) +COMP( 1984, laser310h, laser310, 0, laser310h, vtech1, vtech1_state, vtech1h, "Video Technology", "Laser 310 (SHRG)", MACHINE_UNOFFICIAL ) diff --git a/src/mame/drivers/vtech2.cpp b/src/mame/drivers/vtech2.cpp index d87b59474ae..968bd2d2f20 100644 --- a/src/mame/drivers/vtech2.cpp +++ b/src/mame/drivers/vtech2.cpp @@ -413,7 +413,7 @@ static const floppy_interface vtech2_floppy_interface = nullptr }; -static MACHINE_CONFIG_START( laser350, vtech2_state ) +static MACHINE_CONFIG_START( laser350 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 3694700) /* 3.694700 MHz */ MCFG_CPU_PROGRAM_MAP(vtech2_mem) @@ -504,7 +504,7 @@ ROM_END ***************************************************************************/ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ -COMP( 1984?, laser350, 0, 0, laser350, laser350, vtech2_state, laser, "Video Technology", "Laser 350" , 0) -COMP( 1984?, laser500, laser350, 0, laser500, laser500, vtech2_state, laser, "Video Technology", "Laser 500" , 0) -COMP( 1984?, laser700, laser350, 0, laser700, laser500, vtech2_state, laser, "Video Technology", "Laser 700" , 0) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1984?, laser350, 0, 0, laser350, laser350, vtech2_state, laser, "Video Technology", "Laser 350" , 0) +COMP( 1984?, laser500, laser350, 0, laser500, laser500, vtech2_state, laser, "Video Technology", "Laser 500" , 0) +COMP( 1984?, laser700, laser350, 0, laser700, laser500, vtech2_state, laser, "Video Technology", "Laser 700" , 0) diff --git a/src/mame/drivers/vulgus.cpp b/src/mame/drivers/vulgus.cpp index 358dff49947..1c477546ad7 100644 --- a/src/mame/drivers/vulgus.cpp +++ b/src/mame/drivers/vulgus.cpp @@ -214,7 +214,7 @@ GFXDECODE_END -static MACHINE_CONFIG_START( vulgus, vulgus_state ) +static MACHINE_CONFIG_START( vulgus ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_12MHz/4) /* 3 MHz */ @@ -379,6 +379,6 @@ ROM_END -GAME( 1984, vulgus, 0, vulgus, vulgus, driver_device, 0, ROT270, "Capcom", "Vulgus (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, vulgusa, vulgus, vulgus, vulgus, driver_device, 0, ROT90, "Capcom", "Vulgus (set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, vulgusj, vulgus, vulgus, vulgus, driver_device, 0, ROT270, "Capcom", "Vulgus (Japan?)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, vulgus, 0, vulgus, vulgus, vulgus_state, 0, ROT270, "Capcom", "Vulgus (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, vulgusa, vulgus, vulgus, vulgus, vulgus_state, 0, ROT90, "Capcom", "Vulgus (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, vulgusj, vulgus, vulgus, vulgus, vulgus_state, 0, ROT270, "Capcom", "Vulgus (Japan?)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/wacky_gator.cpp b/src/mame/drivers/wacky_gator.cpp index 524e529d0df..ae6a9ca04cc 100644 --- a/src/mame/drivers/wacky_gator.cpp +++ b/src/mame/drivers/wacky_gator.cpp @@ -270,7 +270,7 @@ static ADDRESS_MAP_START( program_map, AS_PROGRAM, 8, wackygtr_state ) AM_RANGE(0x8000, 0xffff) AM_ROM ADDRESS_MAP_END -static MACHINE_CONFIG_START( wackygtr, wackygtr_state ) +static MACHINE_CONFIG_START( wackygtr ) MCFG_CPU_ADD("maincpu", M6809E, XTAL_3_579545MHz) // HD68B09P MCFG_CPU_PROGRAM_MAP(program_map) @@ -285,7 +285,7 @@ static MACHINE_CONFIG_START( wackygtr, wackygtr_state ) MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_ADD("msm", MSM5205, XTAL_384kHz ) MCFG_MSM5205_VCLK_CB(WRITELINE(wackygtr_state, adpcm_int)) /* IRQ handler */ - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S48_4B) /* 8 KHz, 4 Bits */ + MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) /* 8 KHz, 4 Bits */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MCFG_SOUND_ADD("ymsnd", YM2413, XTAL_3_579545MHz ) diff --git a/src/mame/drivers/wallc.cpp b/src/mame/drivers/wallc.cpp index 1afee902a0e..1200bde3e6e 100644 --- a/src/mame/drivers/wallc.cpp +++ b/src/mame/drivers/wallc.cpp @@ -308,7 +308,7 @@ DRIVER_INIT_MEMBER(wallc_state,wallca) -static MACHINE_CONFIG_START( wallc, wallc_state ) +static MACHINE_CONFIG_START( wallc ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 12288000 / 4) /* 3.072 MHz ? */ MCFG_CPU_PROGRAM_MAP(wallc_map) @@ -492,8 +492,8 @@ DRIVER_INIT_MEMBER(wallc_state,sidam) } -GAME( 1984, wallc, 0, wallc, wallc, wallc_state, wallc, ROT0, "Midcoin", "Wall Crash (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, wallca, wallc, wallc, wallc, wallc_state, wallca, ROT0, "Midcoin", "Wall Crash (set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, brkblast,wallc, wallc, wallc, wallc_state, wallca, ROT0, "bootleg (Fadesa)", "Brick Blast (bootleg of Wall Crash)", MACHINE_SUPPORTS_SAVE ) // Spanish bootleg board, Fadesa stickers / text on various components +GAME( 1984, wallc, 0, wallc, wallc, wallc_state, wallc, ROT0, "Midcoin", "Wall Crash (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, wallca, wallc, wallc, wallc, wallc_state, wallca, ROT0, "Midcoin", "Wall Crash (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, brkblast, wallc, wallc, wallc, wallc_state, wallca, ROT0, "bootleg (Fadesa)", "Brick Blast (bootleg of Wall Crash)", MACHINE_SUPPORTS_SAVE ) // Spanish bootleg board, Fadesa stickers / text on various components -GAME( 1984, sidampkr,0, wallc, wallc, wallc_state, sidam, ROT270, "Sidam", "unknown Sidam Poker", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +GAME( 1984, sidampkr, 0, wallc, wallc, wallc_state, sidam, ROT270, "Sidam", "unknown Sidam Poker", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/wangpc.cpp b/src/mame/drivers/wangpc.cpp index c6e70b61ac4..200cb8cba00 100644 --- a/src/mame/drivers/wangpc.cpp +++ b/src/mame/drivers/wangpc.cpp @@ -1265,7 +1265,7 @@ void wangpc_state::on_disk1_unload(floppy_image_device *image) // MACHINE_CONFIG( wangpc ) //------------------------------------------------- -static MACHINE_CONFIG_START( wangpc, wangpc_state ) +static MACHINE_CONFIG_START( wangpc ) MCFG_CPU_ADD(I8086_TAG, I8086, 8000000) MCFG_CPU_PROGRAM_MAP(wangpc_mem) MCFG_CPU_IO_MAP(wangpc_io) @@ -1305,7 +1305,7 @@ static MACHINE_CONFIG_START( wangpc, wangpc_state ) MCFG_PIT8253_OUT2_HANDLER(WRITELINE(wangpc_state, pit2_w)) MCFG_IM6402_ADD(IM6402_TAG, 62500*16, 62500*16) - MCFG_IM6402_TRO_CALLBACK(DEVWRITELINE(WANGPC_KEYBOARD_TAG, wangpc_keyboard_t, write_rxd)) + MCFG_IM6402_TRO_CALLBACK(DEVWRITELINE(WANGPC_KEYBOARD_TAG, wangpc_keyboard_device, write_rxd)) MCFG_IM6402_DR_CALLBACK(WRITELINE(wangpc_state, uart_dr_w)) MCFG_IM6402_TBRE_CALLBACK(WRITELINE(wangpc_state, uart_tbre_w)) @@ -1386,4 +1386,4 @@ ROM_END // GAME DRIVERS //************************************************************************** -COMP( 1985, wangpc, 0, 0, wangpc, wangpc, driver_device, 0, "Wang Laboratories", "Wang Professional Computer", MACHINE_SUPPORTS_SAVE ) +COMP( 1985, wangpc, 0, 0, wangpc, wangpc, wangpc_state, 0, "Wang Laboratories", "Wang Professional Computer", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/wardner.cpp b/src/mame/drivers/wardner.cpp index 9a281287722..0de5a882755 100644 --- a/src/mame/drivers/wardner.cpp +++ b/src/mame/drivers/wardner.cpp @@ -362,7 +362,7 @@ void wardner_state::machine_reset() m_membank->set_bank(0); } -static MACHINE_CONFIG_START( wardner, wardner_state ) +static MACHINE_CONFIG_START( wardner ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_24MHz/4) /* 6MHz */ @@ -581,6 +581,6 @@ ROM_START( wardnerj ) ROM_END -GAME( 1987, wardner, 0, wardner, wardner, driver_device, 0, ROT0, "Toaplan / Taito Corporation Japan", "Wardner (World)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, pyros, wardner, wardner, pyros, driver_device, 0, ROT0, "Toaplan / Taito America Corporation", "Pyros (US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, wardnerj, wardner, wardner, wardnerj, driver_device, 0, ROT0, "Toaplan / Taito Corporation", "Wardner no Mori (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, wardner, 0, wardner, wardner, wardner_state, 0, ROT0, "Toaplan / Taito Corporation Japan", "Wardner (World)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, pyros, wardner, wardner, pyros, wardner_state, 0, ROT0, "Toaplan / Taito America Corporation", "Pyros (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, wardnerj, wardner, wardner, wardnerj, wardner_state, 0, ROT0, "Toaplan / Taito Corporation", "Wardner no Mori (Japan)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/warpsped.cpp b/src/mame/drivers/warpsped.cpp index 1bedf832669..3e594948206 100644 --- a/src/mame/drivers/warpsped.cpp +++ b/src/mame/drivers/warpsped.cpp @@ -315,7 +315,7 @@ PALETTE_INIT_MEMBER(warpspeed_state, warpspeed) } } -static MACHINE_CONFIG_START( warpspeed, warpspeed_state ) +static MACHINE_CONFIG_START( warpspeed ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_5MHz/2) @@ -373,4 +373,4 @@ ROM_START( warpsped ) ROM_END -GAME( 1979?, warpsped, 0, warpspeed, warpspeed, driver_device, 0, ROT0, "Meadows Games, Inc.", "Warp Speed (prototype)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_COLORS | MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) // year not shown, 1979 is according to date stamps on PCB chips. +GAME( 1979?, warpsped, 0, warpspeed, warpspeed, warpspeed_state, 0, ROT0, "Meadows Games, Inc.", "Warp Speed (prototype)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_COLORS | MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) // year not shown, 1979 is according to date stamps on PCB chips. diff --git a/src/mame/drivers/warpwarp.cpp b/src/mame/drivers/warpwarp.cpp index 5d2bfdff051..39e819805a1 100644 --- a/src/mame/drivers/warpwarp.cpp +++ b/src/mame/drivers/warpwarp.cpp @@ -730,7 +730,7 @@ GFXDECODE_END -static MACHINE_CONFIG_START( geebee, warpwarp_state ) +static MACHINE_CONFIG_START( geebee ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8080, MASTER_CLOCK/9) /* verified on pcb */ @@ -768,7 +768,7 @@ static MACHINE_CONFIG_DERIVED( navarone, geebee ) MCFG_VIDEO_START_OVERRIDE(warpwarp_state,navarone) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( bombbee, warpwarp_state ) +static MACHINE_CONFIG_START( bombbee ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8080, MASTER_CLOCK/9) diff --git a/src/mame/drivers/warriorb.cpp b/src/mame/drivers/warriorb.cpp index 6ae23e97825..7569b3504b0 100644 --- a/src/mame/drivers/warriorb.cpp +++ b/src/mame/drivers/warriorb.cpp @@ -424,7 +424,7 @@ void warriorb_state::machine_reset() machine().sound().system_enable(true); /* mixer enabled */ } -static MACHINE_CONFIG_START( darius2d, warriorb_state ) +static MACHINE_CONFIG_START( darius2d ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 12000000) /* 12 MHz ??? (Might well be 16!) */ @@ -512,7 +512,7 @@ static MACHINE_CONFIG_START( darius2d, warriorb_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( warriorb, warriorb_state ) +static MACHINE_CONFIG_START( warriorb ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 16000000) /* 16 MHz ? */ @@ -780,8 +780,8 @@ ROM_END /* Working Games */ -// YEAR, NAME, PARENT, MACHINE, INPUT, INIT,MONITOR,COMPANY,FULLNAME,FLAGS -GAME( 1989, sagaia, darius2, darius2d, sagaia, driver_device, 0, ROT0, "Taito Corporation Japan", "Sagaia (dual screen) (World)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, darius2d, darius2, darius2d, darius2d, driver_device, 0, ROT0, "Taito Corporation", "Darius II (dual screen) (Japan, Rev 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, darius2do, darius2, darius2d, darius2d, driver_device, 0, ROT0, "Taito Corporation", "Darius II (dual screen) (Japan, Rev 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, warriorb, 0, warriorb, warriorb, driver_device, 0, ROT0, "Taito Corporation", "Warrior Blade - Rastan Saga Episode III (Japan)", MACHINE_SUPPORTS_SAVE ) +// YEAR, NAME, PARENT, MACHINE, INPUT, STATE, INIT,MONITOR,COMPANY,FULLNAME, FLAGS +GAME( 1989, sagaia, darius2, darius2d, sagaia, warriorb_state, 0, ROT0, "Taito Corporation Japan", "Sagaia (dual screen) (World)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, darius2d, darius2, darius2d, darius2d, warriorb_state, 0, ROT0, "Taito Corporation", "Darius II (dual screen) (Japan, Rev 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, darius2do, darius2, darius2d, darius2d, warriorb_state, 0, ROT0, "Taito Corporation", "Darius II (dual screen) (Japan, Rev 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, warriorb, 0, warriorb, warriorb, warriorb_state, 0, ROT0, "Taito Corporation", "Warrior Blade - Rastan Saga Episode III (Japan)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/wc90.cpp b/src/mame/drivers/wc90.cpp index 29efcaebcff..8d40cdeb587 100644 --- a/src/mame/drivers/wc90.cpp +++ b/src/mame/drivers/wc90.cpp @@ -349,7 +349,7 @@ void wc90_state::machine_start() } -static MACHINE_CONFIG_START( wc90, wc90_state ) +static MACHINE_CONFIG_START( wc90 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_8MHz) /* verified on pcb */ @@ -568,9 +568,9 @@ ROM_START( pac90 ) ROM_END -GAME( 1989, wc90, 0, wc90, wc90, driver_device, 0, ROT0, "Tecmo", "Tecmo World Cup '90 (World)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1989, wc90a, wc90, wc90, wc90, driver_device, 0, ROT0, "Tecmo", "Tecmo World Cup '90 (Euro set 1)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1989, wc90b, wc90, wc90, wc90, driver_device, 0, ROT0, "Tecmo", "Tecmo World Cup '90 (Euro set 2)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1989, wc90t, wc90, wc90t,wc90, driver_device, 0, ROT0, "Tecmo", "Tecmo World Cup '90 (trackball set 1)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1989, wc90, 0, wc90, wc90, wc90_state, 0, ROT0, "Tecmo", "Tecmo World Cup '90 (World)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1989, wc90a, wc90, wc90, wc90, wc90_state, 0, ROT0, "Tecmo", "Tecmo World Cup '90 (Euro set 1)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1989, wc90b, wc90, wc90, wc90, wc90_state, 0, ROT0, "Tecmo", "Tecmo World Cup '90 (Euro set 2)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1989, wc90t, wc90, wc90t, wc90, wc90_state, 0, ROT0, "Tecmo", "Tecmo World Cup '90 (trackball set 1)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 199?, pac90, puckman, pac90,pac90,driver_device, 0, ROT90, "bootleg (Macro)", "Pac-Man (bootleg on World Cup '90 hardware)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // made by Mike Coates etc. +GAME( 199?, pac90, puckman, pac90, pac90, wc90_state, 0, ROT90, "bootleg (Macro)", "Pac-Man (bootleg on World Cup '90 hardware)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // made by Mike Coates etc. diff --git a/src/mame/drivers/wc90b.cpp b/src/mame/drivers/wc90b.cpp index f7bec2930b5..0b8da2877bc 100644 --- a/src/mame/drivers/wc90b.cpp +++ b/src/mame/drivers/wc90b.cpp @@ -350,7 +350,7 @@ void wc90b_state::machine_start() } -static MACHINE_CONFIG_START( wc90b, wc90b_state ) +static MACHINE_CONFIG_START( wc90b ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, MASTER_CLOCK) @@ -392,7 +392,7 @@ static MACHINE_CONFIG_START( wc90b, wc90b_state ) MCFG_SOUND_ADD("msm", MSM5205, MSM5205_CLOCK) MCFG_MSM5205_VCLK_CB(WRITELINE(wc90b_state, adpcm_int)) /* interrupt function */ - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S96_4B) /* 4KHz 4-bit */ + MCFG_MSM5205_PRESCALER_SELECTOR(S96_4B) /* 4KHz 4-bit */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) MACHINE_CONFIG_END @@ -534,6 +534,6 @@ ROM_START( wc90ba ) ROM_END -GAME( 1989, wc90b1, wc90, wc90b, wc90b, driver_device, 0, ROT0, "bootleg", "Euro League (Italian hack of Tecmo World Cup '90)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1989, wc90b2, wc90, wc90b, wc90b, driver_device, 0, ROT0, "bootleg", "Worldcup '90", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1989, wc90ba, wc90, wc90b, wc90b, driver_device, 0, ROT0, "bootleg", "Euro League (Italian hack of Tecmo World Cup '90 - alt version)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1989, wc90b1, wc90, wc90b, wc90b, wc90b_state, 0, ROT0, "bootleg", "Euro League (Italian hack of Tecmo World Cup '90)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1989, wc90b2, wc90, wc90b, wc90b, wc90b_state, 0, ROT0, "bootleg", "Worldcup '90", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1989, wc90ba, wc90, wc90b, wc90b, wc90b_state, 0, ROT0, "bootleg", "Euro League (Italian hack of Tecmo World Cup '90 - alt version)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/wecleman.cpp b/src/mame/drivers/wecleman.cpp index b2fcacb7b70..e489f9beaae 100644 --- a/src/mame/drivers/wecleman.cpp +++ b/src/mame/drivers/wecleman.cpp @@ -1069,7 +1069,7 @@ MACHINE_RESET_MEMBER(wecleman_state,wecleman) m_k007232->set_bank( 0, 1 ); } -static MACHINE_CONFIG_START( wecleman, wecleman_state ) +static MACHINE_CONFIG_START( wecleman ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 10000000) /* Schems show 10MHz */ @@ -1140,7 +1140,7 @@ MACHINE_RESET_MEMBER(wecleman_state,hotchase) } -static MACHINE_CONFIG_START( hotchase, wecleman_state ) +static MACHINE_CONFIG_START( hotchase ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 10000000) /* 10 MHz - PCB is drawn in one set's readme */ diff --git a/src/mame/drivers/welltris.cpp b/src/mame/drivers/welltris.cpp index 558edf1dd87..80bd94bc98f 100644 --- a/src/mame/drivers/welltris.cpp +++ b/src/mame/drivers/welltris.cpp @@ -690,7 +690,7 @@ void welltris_state::machine_start() save_item(NAME(m_pending_command)); } -static MACHINE_CONFIG_START( welltris, welltris_state ) +static MACHINE_CONFIG_START( welltris ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000,20000000/2) /* 10 MHz */ @@ -828,6 +828,6 @@ ROM_END -GAME( 1991, welltris, 0, welltris, welltris, welltris_state, welltris, ROT0, "Video System Co.", "Welltris (World?, 2 players)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1991, welltrisj,welltris, welltris, welltris, welltris_state, welltris, ROT0, "Video System Co.", "Welltris (Japan, 2 players)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1992, quiz18k, 0, quiz18k, quiz18k, driver_device, 0, ROT0, "EIM", "Miyasu Nonki no Quiz 18-Kin", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1991, welltris, 0, welltris, welltris, welltris_state, welltris, ROT0, "Video System Co.", "Welltris (World?, 2 players)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1991, welltrisj, welltris, welltris, welltris, welltris_state, welltris, ROT0, "Video System Co.", "Welltris (Japan, 2 players)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1992, quiz18k, 0, quiz18k, quiz18k, welltris_state, 0, ROT0, "EIM", "Miyasu Nonki no Quiz 18-Kin", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/wgp.cpp b/src/mame/drivers/wgp.cpp index dbaa2a12778..ffc4400fa7a 100644 --- a/src/mame/drivers/wgp.cpp +++ b/src/mame/drivers/wgp.cpp @@ -910,7 +910,7 @@ void wgp_state::machine_start() machine().save().register_postload(save_prepost_delegate(FUNC(wgp_state::wgp_postload), this)); } -static MACHINE_CONFIG_START( wgp, wgp_state ) +static MACHINE_CONFIG_START( wgp ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 12000000) /* 12 MHz ??? */ @@ -1202,8 +1202,8 @@ DRIVER_INIT_MEMBER(wgp_state,wgp2) /* Working Games with some graphics problems - e.g. missing rotation */ -GAME( 1989, wgp, 0, wgp, wgp, wgp_state, wgp, ROT0, "Taito America Corporation", "World Grand Prix (US)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) -GAME( 1989, wgpj, wgp, wgp, wgpj, wgp_state, wgp, ROT0, "Taito Corporation", "World Grand Prix (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) -GAME( 1989, wgpjoy, wgp, wgp, wgpjoy, wgp_state, wgp, ROT0, "Taito Corporation", "World Grand Prix (joystick version) (Japan, set 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) -GAME( 1989, wgpjoya, wgp, wgp, wgpjoy, wgp_state, wgp, ROT0, "Taito Corporation", "World Grand Prix (joystick version) (Japan, set 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) -GAME( 1990, wgp2, wgp, wgp2, wgp2, wgp_state, wgp2, ROT0, "Taito Corporation", "World Grand Prix 2 (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) +GAME( 1989, wgp, 0, wgp, wgp, wgp_state, wgp, ROT0, "Taito America Corporation", "World Grand Prix (US)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) +GAME( 1989, wgpj, wgp, wgp, wgpj, wgp_state, wgp, ROT0, "Taito Corporation", "World Grand Prix (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) +GAME( 1989, wgpjoy, wgp, wgp, wgpjoy, wgp_state, wgp, ROT0, "Taito Corporation", "World Grand Prix (joystick version) (Japan, set 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) +GAME( 1989, wgpjoya, wgp, wgp, wgpjoy, wgp_state, wgp, ROT0, "Taito Corporation", "World Grand Prix (joystick version) (Japan, set 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) +GAME( 1990, wgp2, wgp, wgp2, wgp2, wgp_state, wgp2, ROT0, "Taito Corporation", "World Grand Prix 2 (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/wheelfir.cpp b/src/mame/drivers/wheelfir.cpp index ae5ccf73650..b7a24880081 100644 --- a/src/mame/drivers/wheelfir.cpp +++ b/src/mame/drivers/wheelfir.cpp @@ -770,7 +770,7 @@ void wheelfir_state::machine_start() } -static MACHINE_CONFIG_START( wheelfir, wheelfir_state ) +static MACHINE_CONFIG_START( wheelfir ) MCFG_CPU_ADD("maincpu", M68000, 32000000/2) MCFG_CPU_PROGRAM_MAP(wheelfir_main) @@ -830,4 +830,4 @@ ROM_START( wheelfir ) ROM_LOAD16_WORD_SWAP( "eeprom", 0x000000, 0x000080, CRC(961e4bc9) SHA1(8944504bf56a272e9aa08185e73c6b4212d52383) ) ROM_END -GAME( 199?, wheelfir, 0, wheelfir, wheelfir, driver_device, 0, ROT0, "TCH", "Wheels & Fire", MACHINE_IMPERFECT_GRAPHICS) +GAME( 199?, wheelfir, 0, wheelfir, wheelfir, wheelfir_state, 0, ROT0, "TCH", "Wheels & Fire", MACHINE_IMPERFECT_GRAPHICS) diff --git a/src/mame/drivers/white_mod.cpp b/src/mame/drivers/white_mod.cpp index 4f2c340b416..e39d9801121 100644 --- a/src/mame/drivers/white_mod.cpp +++ b/src/mame/drivers/white_mod.cpp @@ -43,7 +43,7 @@ DRIVER_INIT_MEMBER(whitestar_mod_state,whitestar_mod) { } -static MACHINE_CONFIG_START( whitestar_mod, whitestar_mod_state ) +static MACHINE_CONFIG_START( whitestar_mod ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809, 2000000) MCFG_CPU_PROGRAM_MAP(whitestar_mod_map) @@ -3590,156 +3590,156 @@ ROM_START(sopranoi_107) ROM_LOAD("sopsndi.u37", 0x300000, 0x100000, CRC(b34c0a5f) SHA1(b84979d6eef7d23e6dd5410993d83fba2121bc6a)) ROM_END -GAME(2004, elvisp, 0, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Elvis (5.00)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2004, elvisp4, elvisp, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Elvis (4.00)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2004, elvisp303, elvisp, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Elvis (3.03)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2004, elvisp302, elvisp, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Elvis (3.02)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2004, elvisl, 0, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Elvis (5.00 Spain)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2004, elvisl4, elvisl, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Elvis (4.00 Spain)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2004, elvisl303, elvisl, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Elvis (3.03 Spain)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2004, elvisl302, elvisl, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Elvis (3.02 Spain)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2004, elvisg, 0, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Elvis (5.00 Germany)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2004, elvisg4, elvisg, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Elvis (4.00 Germany)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2004, elvisg303, elvisg, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Elvis (3.03 Germany)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2004, elvisg302, elvisg, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Elvis (3.02 Germany)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2004, elvisf, 0, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Elvis (5.00 France)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2004, elvisf4, elvisf, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Elvis (4.00 France)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2004, elvisf303, elvisf, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Elvis (3.03 France)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2004, elvisf302, elvisf, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Elvis (3.02 France)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2004, elvisi, 0, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Elvis (5.00 Italy)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2004, elvisi4, elvisi, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Elvis (4.00 Italy)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2004, elvisi303, elvisi, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Elvis (3.03 Italy)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2004, elvisi302, elvisi, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Elvis (3.02 Italy)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2005, gprix, 0, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (4.50)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2005, gprix_400, gprix, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (4.00)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2005, gprix_352, gprix, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (3.52)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2005, gprix_350, gprix, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (3.50)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2005, gprix_340, gprix, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (3.40)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2005, gprix_301, gprix, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (3.01)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2005, gprixg, 0, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (4.50 Germany)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2005, gprixg_400, gprixg, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (4.00 Germany)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2005, gprixg_352, gprixg, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (3.52 Germany)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2005, gprixg_350, gprixg, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (3.50 Germany)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2005, gprixg_340, gprixg, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (3.40 Germany)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2005, gprixg_301, gprixg, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (3.01 Germany)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2005, gprixl, 0, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (4.50 Spain)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2005, gprixl_400, gprixl, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (4.00 Spain)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2005, gprixl_352, gprixl, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (3.52 Spain)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2005, gprixl_350, gprixl, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (3.50 Spain)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2005, gprixl_340, gprixl, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (3.40 Spain)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2005, gprixl_301, gprixl, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (3.01 Spain)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2005, gprixf, 0, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (4.50 France)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2005, gprixf_400, gprixf, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (4.00 France)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2005, gprixf_352, gprixf, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (3.52 France)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2005, gprixf_350, gprixf, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (3.50 France)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2005, gprixf_340, gprixf, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (3.40 France)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2005, gprixf_301, gprixf, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (3.01 France)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2005, gprixi, 0, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (4.50 Italy)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2005, gprixi_400, gprixi, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (4.00 Italy)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2005, gprixi_352, gprixi, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (3.52 Italy)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2005, gprixi_350, gprixi, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (3.50 Italy)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2005, gprixi_340, gprixi, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (3.40 Italy)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2005, gprixi_301, gprixi, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (3.01 Italy)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2005, nascar, 0, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Nascar (4.50)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2005, nascar_400, nascar, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Nascar (4.00)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2005, nascar_352, nascar, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Nascar (3.52)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2005, nascar_350, nascar, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Nascar (3.50)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2005, nascar_340, nascar, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Nascar (3.40)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2005, nascar_301, nascar, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Nascar (3.01)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2005, dalejr, nascar, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Dale Jr. (5.00)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2005, nascarl, 0, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Nascar (4.50 Spain)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2005, nascarl_400,nascarl, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Nascar (4.00 Spain)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2005, nascarl_352,nascarl, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Nascar (3.52 Spain)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2005, nascarl_350,nascarl, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Nascar (3.50 Spain)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2005, nascarl_340,nascarl, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Nascar (3.40 Spain)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2005, nascarl_301,nascarl, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Nascar (3.01 Spain)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2004, ripleys, 0, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Ripley's Believe It or Not! (3.20)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2004, rip310, ripleys, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Ripley's Believe It or Not! (3.10)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2004, rip302, ripleys, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Ripley's Believe It or Not! (3.02)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2004, rip301, ripleys, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Ripley's Believe It or Not! (3.01)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2004, rip300, ripleys, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Ripley's Believe It or Not! (3.00)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2004, ripleysf, 0, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Ripley's Believe It or Not! (3.20 France)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2004, ripf310, ripleysf, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Ripley's Believe It or Not! (3.10 France)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2004, ripf302, ripleysf, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Ripley's Believe It or Not! (3.02 France)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2004, ripf301, ripleysf, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Ripley's Believe It or Not! (3.01 France)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2004, ripf300, ripleysf, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Ripley's Believe It or Not! (3.00 France)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2004, ripleysg, 0, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Ripley's Believe It or Not! (3.20 Germany)",MACHINE_IS_SKELETON_MECHANICAL) -GAME(2004, ripg310, ripleysg, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Ripley's Believe It or Not! (3.10 Germany)",MACHINE_IS_SKELETON_MECHANICAL) -GAME(2004, ripg302, ripleysg, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Ripley's Believe It or Not! (3.02 Germany)",MACHINE_IS_SKELETON_MECHANICAL) -GAME(2004, ripg301, ripleysg, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Ripley's Believe It or Not! (3.01 Germany)",MACHINE_IS_SKELETON_MECHANICAL) -GAME(2004, ripg300, ripleysg, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Ripley's Believe It or Not! (3.00 Germany)",MACHINE_IS_SKELETON_MECHANICAL) -GAME(2004, ripleysi, 0, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Ripley's Believe It or Not! (3.20 Italy)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2004, ripi310, ripleysi, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Ripley's Believe It or Not! (3.10 Italy)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2004, ripi302, ripleysi, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Ripley's Believe It or Not! (3.02 Italy)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2004, ripi301, ripleysi, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Ripley's Believe It or Not! (3.01 Italy)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2004, ripi300, ripleysi, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Ripley's Believe It or Not! (3.00 Italy)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2004, ripleysl, 0, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Ripley's Believe It or Not! (3.20 Spain)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2004, ripl310, ripleysl, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Ripley's Believe It or Not! (3.10 Spain)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2004, ripl302, ripleysl, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Ripley's Believe It or Not! (3.02 Spain)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2004, ripl301, ripleysl, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Ripley's Believe It or Not! (3.01 Spain)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2004, ripl300, ripleysl, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Ripley's Believe It or Not! (3.00 Spain)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2003, lotr, 0, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (10.00)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2003, lotr_le, lotr, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (10.02 Limited Edition)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2003, lotr9, lotr, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (9.00)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2003, lotr8, lotr, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (8.00)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2003, lotr7, lotr, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (7.00)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2003, lotr6, lotr, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (6.00)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2003, lotr501, lotr, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (5.01)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2003, lotr5, lotr, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (5.00)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2003, lotr410, lotr, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (4.10)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2003, lotr401, lotr, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (4.01)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2003, lotr_sp, 0, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (10.00 Spain)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2003, lotr_sp9, lotr_sp, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (9.0 Spain)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2003, lotr_sp8, lotr_sp, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (8.0 Spain)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2003, lotr_sp7, lotr_sp, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (7.0 Spain)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2003, lotr_sp6, lotr_sp, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (6.0 Spain)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2003, lotr_sp501, lotr_sp, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (5.01 Spain)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2003, lotr_sp5, lotr_sp, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (5.0 Spain)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2003, lotr_sp401, lotr_sp, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (4.01 Spain)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2003, lotr_gr, 0, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (10.00 Germany)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2003, lotr_gr9, lotr_gr, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (9.0 Germany)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2003, lotr_gr8, lotr_gr, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (8.0 Germany)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2003, lotr_gr7, lotr_gr, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (7.0 Germany)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2003, lotr_gr6, lotr_gr, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (6.0 Germany)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2003, lotr_gr501, lotr_gr, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (5.01 Germany)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2003, lotr_gr5, lotr_gr, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (5.0 Germany)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2003, lotr_gr410, lotr_gr, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (4.10 Germany)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2003, lotr_gr401, lotr_gr, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (4.01 Germany)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2003, lotr_fr, 0, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (10.00 France)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2003, lotr_fr9, lotr_fr, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (9.0 France)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2003, lotr_fr8, lotr_fr, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (8.0 France)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2003, lotr_fr7, lotr_fr, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (7.0 France)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2003, lotr_fr6, lotr_fr, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (6.0 France)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2003, lotr_fr501, lotr_fr, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (5.01 France)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2003, lotr_fr5, lotr_fr, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (5.0 France)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2003, lotr_fr410, lotr_fr, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (4.10 France)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2003, lotr_fr401, lotr_fr, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (4.01 France)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2003, lotr_it, 0, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (10.00 Italy)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2003, lotr_it9, lotr_it, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (9.0 Italy)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2003, lotr_it8, lotr_it, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (8.0 Italy)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2003, lotr_it7, lotr_it, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (7.0 Italy)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2003, lotr_it6, lotr_it, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (6.0 Italy)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2003, lotr_it501, lotr_it, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (5.01 Italy)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2003, lotr_it5, lotr_it, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (5.0 Italy)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2003, lotr_it410, lotr_it, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (4.10 Italy)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2003, lotr_it401, lotr_it, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (4.01 Italy)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2005, sopranos, 0, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Sopranos (5.00)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2005, sopranos_400,sopranos, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Sopranos (4.00)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2005, sopranos_300,sopranos, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Sopranos (3.00)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2005, sopranos_204,sopranos, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Sopranos (2.04)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2005, sopranog, 0, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Sopranos (5.00 Germany)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2005, sopranog_400,sopranog, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Sopranos (4.00 Germany)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2005, sopranog_300,sopranog, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Sopranos (3.00 Germany)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2005, sopranog_107,sopranog, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Sopranos (1.07 Germany)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2005, sopranof, 0, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Sopranos (5.00 France)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2005, sopranof_400,sopranof, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Sopranos (4.00 France)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2005, sopranof_300,sopranof, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Sopranos (3.00 France)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2005, sopranof_107,sopranof, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Sopranos (1.07 France)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2005, sopranol, 0, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Sopranos (5.00 Spain)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2005, sopranol_400,sopranol, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Sopranos (4.00 Spain)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2005, sopranol_300,sopranol, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Sopranos (3.00 Spain)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2005, sopranol_107,sopranol, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Sopranos (1.07 Spain)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2005, sopranoi, 0, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Sopranos (5.00 Italy)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2005, sopranoi_400,sopranoi, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Sopranos (4.00 Italy)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2005, sopranoi_300,sopranoi, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Sopranos (3.00 Italy)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2005, sopranoi_107,sopranoi, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Sopranos (1.07 Italy)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2004, elvisp, 0, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Elvis (5.00)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2004, elvisp4, elvisp, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Elvis (4.00)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2004, elvisp303, elvisp, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Elvis (3.03)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2004, elvisp302, elvisp, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Elvis (3.02)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2004, elvisl, 0, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Elvis (5.00 Spain)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2004, elvisl4, elvisl, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Elvis (4.00 Spain)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2004, elvisl303, elvisl, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Elvis (3.03 Spain)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2004, elvisl302, elvisl, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Elvis (3.02 Spain)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2004, elvisg, 0, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Elvis (5.00 Germany)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2004, elvisg4, elvisg, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Elvis (4.00 Germany)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2004, elvisg303, elvisg, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Elvis (3.03 Germany)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2004, elvisg302, elvisg, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Elvis (3.02 Germany)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2004, elvisf, 0, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Elvis (5.00 France)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2004, elvisf4, elvisf, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Elvis (4.00 France)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2004, elvisf303, elvisf, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Elvis (3.03 France)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2004, elvisf302, elvisf, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Elvis (3.02 France)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2004, elvisi, 0, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Elvis (5.00 Italy)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2004, elvisi4, elvisi, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Elvis (4.00 Italy)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2004, elvisi303, elvisi, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Elvis (3.03 Italy)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2004, elvisi302, elvisi, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Elvis (3.02 Italy)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2005, gprix, 0, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (4.50)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2005, gprix_400, gprix, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (4.00)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2005, gprix_352, gprix, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (3.52)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2005, gprix_350, gprix, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (3.50)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2005, gprix_340, gprix, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (3.40)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2005, gprix_301, gprix, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (3.01)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2005, gprixg, 0, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (4.50 Germany)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2005, gprixg_400, gprixg, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (4.00 Germany)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2005, gprixg_352, gprixg, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (3.52 Germany)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2005, gprixg_350, gprixg, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (3.50 Germany)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2005, gprixg_340, gprixg, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (3.40 Germany)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2005, gprixg_301, gprixg, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (3.01 Germany)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2005, gprixl, 0, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (4.50 Spain)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2005, gprixl_400, gprixl, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (4.00 Spain)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2005, gprixl_352, gprixl, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (3.52 Spain)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2005, gprixl_350, gprixl, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (3.50 Spain)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2005, gprixl_340, gprixl, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (3.40 Spain)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2005, gprixl_301, gprixl, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (3.01 Spain)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2005, gprixf, 0, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (4.50 France)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2005, gprixf_400, gprixf, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (4.00 France)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2005, gprixf_352, gprixf, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (3.52 France)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2005, gprixf_350, gprixf, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (3.50 France)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2005, gprixf_340, gprixf, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (3.40 France)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2005, gprixf_301, gprixf, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (3.01 France)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2005, gprixi, 0, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (4.50 Italy)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2005, gprixi_400, gprixi, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (4.00 Italy)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2005, gprixi_352, gprixi, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (3.52 Italy)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2005, gprixi_350, gprixi, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (3.50 Italy)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2005, gprixi_340, gprixi, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (3.40 Italy)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2005, gprixi_301, gprixi, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (3.01 Italy)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2005, nascar, 0, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Nascar (4.50)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2005, nascar_400, nascar, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Nascar (4.00)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2005, nascar_352, nascar, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Nascar (3.52)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2005, nascar_350, nascar, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Nascar (3.50)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2005, nascar_340, nascar, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Nascar (3.40)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2005, nascar_301, nascar, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Nascar (3.01)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2005, dalejr, nascar, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Dale Jr. (5.00)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2005, nascarl, 0, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Nascar (4.50 Spain)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2005, nascarl_400, nascarl, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Nascar (4.00 Spain)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2005, nascarl_352, nascarl, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Nascar (3.52 Spain)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2005, nascarl_350, nascarl, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Nascar (3.50 Spain)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2005, nascarl_340, nascarl, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Nascar (3.40 Spain)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2005, nascarl_301, nascarl, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Nascar (3.01 Spain)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2004, ripleys, 0, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Ripley's Believe It or Not! (3.20)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2004, rip310, ripleys, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Ripley's Believe It or Not! (3.10)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2004, rip302, ripleys, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Ripley's Believe It or Not! (3.02)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2004, rip301, ripleys, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Ripley's Believe It or Not! (3.01)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2004, rip300, ripleys, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Ripley's Believe It or Not! (3.00)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2004, ripleysf, 0, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Ripley's Believe It or Not! (3.20 France)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2004, ripf310, ripleysf, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Ripley's Believe It or Not! (3.10 France)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2004, ripf302, ripleysf, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Ripley's Believe It or Not! (3.02 France)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2004, ripf301, ripleysf, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Ripley's Believe It or Not! (3.01 France)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2004, ripf300, ripleysf, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Ripley's Believe It or Not! (3.00 France)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2004, ripleysg, 0, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Ripley's Believe It or Not! (3.20 Germany)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2004, ripg310, ripleysg, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Ripley's Believe It or Not! (3.10 Germany)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2004, ripg302, ripleysg, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Ripley's Believe It or Not! (3.02 Germany)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2004, ripg301, ripleysg, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Ripley's Believe It or Not! (3.01 Germany)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2004, ripg300, ripleysg, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Ripley's Believe It or Not! (3.00 Germany)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2004, ripleysi, 0, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Ripley's Believe It or Not! (3.20 Italy)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2004, ripi310, ripleysi, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Ripley's Believe It or Not! (3.10 Italy)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2004, ripi302, ripleysi, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Ripley's Believe It or Not! (3.02 Italy)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2004, ripi301, ripleysi, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Ripley's Believe It or Not! (3.01 Italy)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2004, ripi300, ripleysi, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Ripley's Believe It or Not! (3.00 Italy)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2004, ripleysl, 0, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Ripley's Believe It or Not! (3.20 Spain)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2004, ripl310, ripleysl, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Ripley's Believe It or Not! (3.10 Spain)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2004, ripl302, ripleysl, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Ripley's Believe It or Not! (3.02 Spain)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2004, ripl301, ripleysl, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Ripley's Believe It or Not! (3.01 Spain)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2004, ripl300, ripleysl, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Ripley's Believe It or Not! (3.00 Spain)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2003, lotr, 0, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (10.00)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2003, lotr_le, lotr, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (10.02 Limited Edition)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2003, lotr9, lotr, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (9.00)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2003, lotr8, lotr, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (8.00)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2003, lotr7, lotr, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (7.00)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2003, lotr6, lotr, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (6.00)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2003, lotr501, lotr, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (5.01)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2003, lotr5, lotr, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (5.00)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2003, lotr410, lotr, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (4.10)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2003, lotr401, lotr, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (4.01)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2003, lotr_sp, 0, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (10.00 Spain)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2003, lotr_sp9, lotr_sp, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (9.0 Spain)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2003, lotr_sp8, lotr_sp, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (8.0 Spain)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2003, lotr_sp7, lotr_sp, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (7.0 Spain)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2003, lotr_sp6, lotr_sp, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (6.0 Spain)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2003, lotr_sp501, lotr_sp, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (5.01 Spain)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2003, lotr_sp5, lotr_sp, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (5.0 Spain)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2003, lotr_sp401, lotr_sp, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (4.01 Spain)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2003, lotr_gr, 0, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (10.00 Germany)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2003, lotr_gr9, lotr_gr, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (9.0 Germany)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2003, lotr_gr8, lotr_gr, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (8.0 Germany)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2003, lotr_gr7, lotr_gr, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (7.0 Germany)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2003, lotr_gr6, lotr_gr, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (6.0 Germany)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2003, lotr_gr501, lotr_gr, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (5.01 Germany)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2003, lotr_gr5, lotr_gr, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (5.0 Germany)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2003, lotr_gr410, lotr_gr, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (4.10 Germany)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2003, lotr_gr401, lotr_gr, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (4.01 Germany)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2003, lotr_fr, 0, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (10.00 France)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2003, lotr_fr9, lotr_fr, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (9.0 France)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2003, lotr_fr8, lotr_fr, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (8.0 France)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2003, lotr_fr7, lotr_fr, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (7.0 France)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2003, lotr_fr6, lotr_fr, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (6.0 France)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2003, lotr_fr501, lotr_fr, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (5.01 France)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2003, lotr_fr5, lotr_fr, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (5.0 France)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2003, lotr_fr410, lotr_fr, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (4.10 France)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2003, lotr_fr401, lotr_fr, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (4.01 France)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2003, lotr_it, 0, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (10.00 Italy)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2003, lotr_it9, lotr_it, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (9.0 Italy)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2003, lotr_it8, lotr_it, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (8.0 Italy)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2003, lotr_it7, lotr_it, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (7.0 Italy)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2003, lotr_it6, lotr_it, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (6.0 Italy)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2003, lotr_it501, lotr_it, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (5.01 Italy)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2003, lotr_it5, lotr_it, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (5.0 Italy)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2003, lotr_it410, lotr_it, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (4.10 Italy)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2003, lotr_it401, lotr_it, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Lord Of The Rings (4.01 Italy)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2005, sopranos, 0, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Sopranos (5.00)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2005, sopranos_400, sopranos, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Sopranos (4.00)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2005, sopranos_300, sopranos, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Sopranos (3.00)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2005, sopranos_204, sopranos, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Sopranos (2.04)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2005, sopranog, 0, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Sopranos (5.00 Germany)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2005, sopranog_400, sopranog, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Sopranos (4.00 Germany)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2005, sopranog_300, sopranog, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Sopranos (3.00 Germany)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2005, sopranog_107, sopranog, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Sopranos (1.07 Germany)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2005, sopranof, 0, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Sopranos (5.00 France)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2005, sopranof_400, sopranof, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Sopranos (4.00 France)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2005, sopranof_300, sopranof, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Sopranos (3.00 France)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2005, sopranof_107, sopranof, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Sopranos (1.07 France)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2005, sopranol, 0, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Sopranos (5.00 Spain)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2005, sopranol_400, sopranol, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Sopranos (4.00 Spain)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2005, sopranol_300, sopranol, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Sopranos (3.00 Spain)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2005, sopranol_107, sopranol, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Sopranos (1.07 Spain)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2005, sopranoi, 0, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Sopranos (5.00 Italy)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2005, sopranoi_400, sopranoi, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Sopranos (4.00 Italy)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2005, sopranoi_300, sopranoi, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Sopranos (3.00 Italy)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2005, sopranoi_107, sopranoi, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Sopranos (1.07 Italy)", MACHINE_IS_SKELETON_MECHANICAL) diff --git a/src/mame/drivers/whitestar.cpp b/src/mame/drivers/whitestar.cpp index 3580b605f57..c2ed791b947 100644 --- a/src/mame/drivers/whitestar.cpp +++ b/src/mame/drivers/whitestar.cpp @@ -113,7 +113,7 @@ INTERRUPT_GEN_MEMBER(whitestar_state::whitestar_firq_interrupt) device.execute().set_input_line(M6809_FIRQ_LINE, HOLD_LINE); } -static MACHINE_CONFIG_START( whitestar, whitestar_state ) +static MACHINE_CONFIG_START( whitestar ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809, 2000000) MCFG_CPU_PROGRAM_MAP(whitestar_map) @@ -3385,197 +3385,197 @@ ROM_END #define MACHINE_IS_PINBALL MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL -GAME(1995, apollo13, 0, whitestar, whitestar, driver_device, 0, ROT0, "Sega", "Apollo 13 (5.01)", MACHINE_IS_PINBALL) -GAME(1995, apollo13_d4,apollo13, whitestar, whitestar, driver_device, 0, ROT0, "Sega", "Apollo 13 (5.01, Display 4.01)", MACHINE_IS_PINBALL) -GAME(1995, apollo13_20,apollo13, whitestar, whitestar, driver_device, 0, ROT0, "Sega", "Apollo 13 (2.03)", MACHINE_IS_PINBALL) -GAME(1995, apollo13_10,apollo13, whitestar, whitestar, driver_device, 0, ROT0, "Sega", "Apollo 13 (1.00)", MACHINE_IS_PINBALL) -GAME(2001, austin, 0, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Austin Powers (3.02)", MACHINE_IS_PINBALL) -GAME(2001, aust301, austin, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Austin Powers (3.01)", MACHINE_IS_PINBALL) -GAME(2001, aust300, austin, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Austin Powers (3.00)", MACHINE_IS_PINBALL) -GAME(2001, aust201, austin, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Austin Powers (2.01)", MACHINE_IS_PINBALL) -GAME(2001, austnew, austin, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Austin Powers (ARM7 Sound Board)", MACHINE_IS_PINBALL) -GAME(2001, austinf, austin, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Austin Powers (France)", MACHINE_IS_PINBALL) -GAME(2001, austing, austin, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Austin Powers (Germany)", MACHINE_IS_PINBALL) -GAME(2001, austini, austin, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Austin Powers (Italy)", MACHINE_IS_PINBALL) -GAME(1998, godzillp, 0, whitestar, whitestar, driver_device, 0, ROT0, "Sega", "Godzilla (Pinball, 2.05)", MACHINE_IS_PINBALL) -GAME(1998, godzillp_100,godzillp, whitestar, whitestar, driver_device, 0, ROT0, "Sega", "Godzilla (Pinball, 1.00)", MACHINE_IS_PINBALL) -GAME(1998, godzillp_090,godzillp, whitestar, whitestar, driver_device, 0, ROT0, "Sega", "Godzilla (Pinball, 0.90)", MACHINE_IS_PINBALL) -GAME(1996, gldneye, 0, whitestar, whitestar, driver_device, 0, ROT0, "Sega", "Goldeneye", MACHINE_IS_PINBALL) -GAME(1998, goldcue, 0, whitestar, whitestar, driver_device, 0, ROT0, "Sega", "Golden Cue", MACHINE_IS_PINBALL) -GAME(1999, harl_a13, 0, whitestar, whitestar, driver_device, 0, ROT0, "Sega", "Harley Davidson (1.03)", MACHINE_IS_PINBALL) -GAME(1999, harl_u13, harl_a13, whitestar, whitestar, driver_device, 0, ROT0, "Sega", "Harley Davidson (1.03 UK)", MACHINE_IS_PINBALL) -GAME(1999, harl_a10, harl_a13, whitestar, whitestar, driver_device, 0, ROT0, "Sega", "Harley Davidson (1.03 Display rev. 1.00)", MACHINE_IS_PINBALL) -GAME(1999, harl_f13, harl_a13, whitestar, whitestar, driver_device, 0, ROT0, "Sega", "Harley Davidson (1.03 France)", MACHINE_IS_PINBALL) -GAME(1999, harl_g13, harl_a13, whitestar, whitestar, driver_device, 0, ROT0, "Sega", "Harley Davidson (1.03 Germany)", MACHINE_IS_PINBALL) -GAME(1999, harl_i13, harl_a13, whitestar, whitestar, driver_device, 0, ROT0, "Sega", "Harley Davidson (1.03 Italy)", MACHINE_IS_PINBALL) -GAME(1999, harl_l13, harl_a13, whitestar, whitestar, driver_device, 0, ROT0, "Sega", "Harley Davidson (1.03 Spain)", MACHINE_IS_PINBALL) -GAME(2004, harl_a40, 0, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Harley Davidson (4.00)", MACHINE_IS_PINBALL) -GAME(2004, harl_f40, harl_a40, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Harley Davidson (4.00 France)", MACHINE_IS_PINBALL) -GAME(2004, harl_g40, harl_a40, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Harley Davidson (4.00 Germany)", MACHINE_IS_PINBALL) -GAME(2004, harl_i40, harl_a40, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Harley Davidson (4.00 Italy)", MACHINE_IS_PINBALL) -GAME(2004, harl_l40, harl_a40, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Harley Davidson (4.00 Spain)", MACHINE_IS_PINBALL) -GAME(2004, harl_a30, harl_a40, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Harley Davidson (3.00)", MACHINE_IS_PINBALL) -GAME(2004, harl_f30, harl_a40, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Harley Davidson (3.00 France)", MACHINE_IS_PINBALL) -GAME(2004, harl_g30, harl_a40, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Harley Davidson (3.00 Germany)", MACHINE_IS_PINBALL) -GAME(2004, harl_i30, harl_a40, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Harley Davidson (3.00 Italy)", MACHINE_IS_PINBALL) -GAME(2004, harl_l30, harl_a40, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Harley Davidson (3.00 Spain)", MACHINE_IS_PINBALL) -GAME(2003, harl_a18, harl_a40, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Harley Davidson (1.08)", MACHINE_IS_PINBALL) -GAME(2003, harl_f18, harl_a40, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Harley Davidson (1.08 France)", MACHINE_IS_PINBALL) -GAME(2003, harl_g18, harl_a40, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Harley Davidson (1.08 Germany)", MACHINE_IS_PINBALL) -GAME(2003, harl_i18, harl_a40, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Harley Davidson (1.08 Italy)", MACHINE_IS_PINBALL) -GAME(2003, harl_l18, harl_a40, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Harley Davidson (1.08 Spain)", MACHINE_IS_PINBALL) -GAME(2001, hirolcas, 0, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "High Roller Casino (3.00)", MACHINE_IS_PINBALL) -GAME(2001, hironew, hirolcas, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "High Roller Casino (ARM7 Sound Board)", MACHINE_IS_PINBALL) -GAME(2001, hirolcat, hirolcas, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "High Roller Casino (3.00) TEST", MACHINE_IS_PINBALL) -GAME(2001, hirolcas_210,hirolcas, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "High Roller Casino (2.10)", MACHINE_IS_PINBALL) -GAME(2001, hirol_fr, hirolcas, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "High Roller Casino (3.00 France)", MACHINE_IS_PINBALL) -GAME(2001, hirol_gr, hirolcas, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "High Roller Casino (3.00 Germany)", MACHINE_IS_PINBALL) -GAME(2001, hirol_gr_210,hirolcas, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "High Roller Casino (2.10 Germany)", MACHINE_IS_PINBALL) -GAME(2001, hirol_it, hirolcas, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "High Roller Casino (3.00 Italy)", MACHINE_IS_PINBALL) -GAME(1996, id4, 0, whitestar, whitestar, driver_device, 0, ROT0, "Sega", "Independence Day (v2.02)", MACHINE_IS_PINBALL) -GAME(1996, id4f, id4, whitestar, whitestar, driver_device, 0, ROT0, "Sega", "Independence Day (v2.02 France)", MACHINE_IS_PINBALL) -GAME(1996, id4_201, id4, whitestar, whitestar, driver_device, 0, ROT0, "Sega", "Independence Day (v2.01)", MACHINE_IS_PINBALL) -GAME(1996, id4f_201, id4, whitestar, whitestar, driver_device, 0, ROT0, "Sega", "Independence Day (v2.01 France)", MACHINE_IS_PINBALL) -GAME(1998, lostspc, 0, whitestar, whitestar, driver_device, 0, ROT0, "Sega", "Lost in Space (1.01)", MACHINE_IS_PINBALL) -GAME(1998, lostspcf, lostspc, whitestar, whitestar, driver_device, 0, ROT0, "Sega", "Lost in Space (1.01 France)", MACHINE_IS_PINBALL) -GAME(1998, lostspcg, lostspc, whitestar, whitestar, driver_device, 0, ROT0, "Sega", "Lost in Space (1.01 Germany)", MACHINE_IS_PINBALL) -GAME(1998, lostspc_d1, lostspc, whitestar, whitestar, driver_device, 0, ROT0, "Sega", "Lost in Space (1.01, Display 1.01)", MACHINE_IS_PINBALL) -GAME(2001, monopolp, 0, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Monopoly (3.20)", MACHINE_IS_PINBALL) -GAME(2002, monop303, monopolp, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Monopoly (3.03)", MACHINE_IS_PINBALL) -GAME(2002, monop301, monopolp, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Monopoly (3.01)", MACHINE_IS_PINBALL) -GAME(2002, monop251, monopolp, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Monopoly (2.51)", MACHINE_IS_PINBALL) -GAME(2002, monop233, monopolp, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Monopoly (2.33)", MACHINE_IS_PINBALL) -GAME(2002, monopolf, monopolp, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Monopoly (France)", MACHINE_IS_PINBALL) -GAME(2002, monopolg, monopolp, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Monopoly (Germany)", MACHINE_IS_PINBALL) -GAME(2002, monopoli, monopolp, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Monopoly (Italy)", MACHINE_IS_PINBALL) -GAME(2002, monopoll, monopolp, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Monopoly (Spain)", MACHINE_IS_PINBALL) -GAME(2002, mononew, monopolp, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Monopoly (ARM7 Sound Board)", MACHINE_IS_PINBALL) -GAME(2001, nfl, 0, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "NFL", MACHINE_IS_PINBALL) -GAME(2002, playboys, 0, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Playboy (5.00)", MACHINE_IS_PINBALL) -GAME(2002, playboys_401,playboys, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Playboy (4.01)", MACHINE_IS_PINBALL) -GAME(2002, playboys_303,playboys, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Playboy (3.03)", MACHINE_IS_PINBALL) -GAME(2002, playboys_302,playboys, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Playboy (3.02)", MACHINE_IS_PINBALL) -GAME(2002, playboys_300,playboys, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Playboy (3.00)", MACHINE_IS_PINBALL) -GAME(2002, playboys_203,playboys, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Playboy (2.03)", MACHINE_IS_PINBALL) -GAME(2002, playnew, playboys, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Playboy (ARM7 Sound Board)", MACHINE_IS_PINBALL) -GAME(2002, playboyf, 0, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Playboy (5.00 France)", MACHINE_IS_PINBALL) -GAME(2002, playboyf_401,playboyf, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Playboy (4.01 France)", MACHINE_IS_PINBALL) -GAME(2002, playboyf_303,playboyf, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Playboy (3.03 France)", MACHINE_IS_PINBALL) -GAME(2002, playboyf_302,playboyf, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Playboy (3.02 France)", MACHINE_IS_PINBALL) -GAME(2002, playboyf_300,playboyf, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Playboy (3.00 France)", MACHINE_IS_PINBALL) -GAME(2002, playboyf_203,playboyf, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Playboy (2.03 France)", MACHINE_IS_PINBALL) -GAME(2002, playboyg, 0, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Playboy (5.00 Germany)", MACHINE_IS_PINBALL) -GAME(2002, playboyg_401,playboyg, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Playboy (4.01 Germany)", MACHINE_IS_PINBALL) -GAME(2002, playboyg_303,playboyg, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Playboy (3.03 Germany)", MACHINE_IS_PINBALL) -GAME(2002, playboyg_302,playboyg, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Playboy (3.02 Germany)", MACHINE_IS_PINBALL) -GAME(2002, playboyg_300,playboyg, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Playboy (3.00 Germany)", MACHINE_IS_PINBALL) -GAME(2002, playboyg_203,playboyg, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Playboy (2.03 Germany)", MACHINE_IS_PINBALL) -GAME(2002, playboyi, 0, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Playboy (5.00 Italy)", MACHINE_IS_PINBALL) -GAME(2002, playboyi_401,playboyi, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Playboy (4.01 Italy)", MACHINE_IS_PINBALL) -GAME(2002, playboyi_303,playboyi, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Playboy (3.03 Italy)", MACHINE_IS_PINBALL) -GAME(2002, playboyi_302,playboyi, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Playboy (3.02 Italy)", MACHINE_IS_PINBALL) -GAME(2002, playboyi_300,playboyi, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Playboy (3.00 Italy)", MACHINE_IS_PINBALL) -GAME(2002, playboyi_203,playboyi, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Playboy (2.03 Italy)", MACHINE_IS_PINBALL) -GAME(2002, playboyl, 0, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Playboy (5.00 Spain)", MACHINE_IS_PINBALL) -GAME(2002, playboyl_401,playboyl, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Playboy (4.01 Spain)", MACHINE_IS_PINBALL) -GAME(2002, playboyl_303,playboyl, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Playboy (3.03 Spain)", MACHINE_IS_PINBALL) -GAME(2002, playboyl_302,playboyl, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Playboy (3.02 Spain)", MACHINE_IS_PINBALL) -GAME(2002, playboyl_300,playboyl, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Playboy (3.00 Spain)", MACHINE_IS_PINBALL) -GAME(2002, playboyl_203,playboyl, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Playboy (2.03 Spain)", MACHINE_IS_PINBALL) -GAME(2002, rctycn, 0, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Roller Coaster Tycoon (7.02)", MACHINE_IS_PINBALL) -GAME(2002, rctycn_701, rctycn, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Roller Coaster Tycoon (7.01)", MACHINE_IS_PINBALL) -GAME(2002, rctycn_600, rctycn, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Roller Coaster Tycoon (6.00)", MACHINE_IS_PINBALL) -GAME(2002, rctycn_400, rctycn, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Roller Coaster Tycoon (4.00)", MACHINE_IS_PINBALL) -GAME(2002, rctnew, rctycn, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Roller Coaster Tycoon (ARM7 Sound Board)", MACHINE_IS_PINBALL) -GAME(2002, rctycng, 0, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Roller Coaster Tycoon (7.02 Germany)", MACHINE_IS_PINBALL) -GAME(2002, rctycng_701,rctycng, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Roller Coaster Tycoon (7.01 Germany)", MACHINE_IS_PINBALL) -GAME(2002, rctycng_400,rctycng, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Roller Coaster Tycoon (4.00 Germany)", MACHINE_IS_PINBALL) -GAME(2002, rctycnf, 0, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Roller Coaster Tycoon (7.02 France)", MACHINE_IS_PINBALL) -GAME(2002, rctycnf_701,rctycnf, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Roller Coaster Tycoon (7.01 France)", MACHINE_IS_PINBALL) -GAME(2002, rctycnf_600,rctycnf, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Roller Coaster Tycoon (6.00 France)", MACHINE_IS_PINBALL) -GAME(2002, rctycnf_400,rctycnf, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Roller Coaster Tycoon (4.00 France)", MACHINE_IS_PINBALL) -GAME(2002, rctycni, 0, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Roller Coaster Tycoon (7.02 Italy)", MACHINE_IS_PINBALL) -GAME(2002, rctycni_701,rctycni, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Roller Coaster Tycoon (7.01 Italy)", MACHINE_IS_PINBALL) -GAME(2002, rctycni_600,rctycni, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Roller Coaster Tycoon (6.00 Italy)", MACHINE_IS_PINBALL) -GAME(2002, rctycni_400,rctycni, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Roller Coaster Tycoon (4.00 Italy)", MACHINE_IS_PINBALL) -GAME(2002, rctycnl, 0, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Roller Coaster Tycoon (7.02 Spain)", MACHINE_IS_PINBALL) -GAME(2002, rctycnl_701,rctycnl, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Roller Coaster Tycoon (7.01 Spain)", MACHINE_IS_PINBALL) -GAME(2002, rctycnl_600,rctycnl, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Roller Coaster Tycoon (6.00 Spain)", MACHINE_IS_PINBALL) -GAME(2002, rctycnl_400,rctycnl, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Roller Coaster Tycoon (4.00 Spain)", MACHINE_IS_PINBALL) -GAME(2000, shrkysht, 0, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Sharkey's Shootout (2.11)", MACHINE_IS_PINBALL) -GAME(2000, shrky_207, shrkysht, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Sharkey's Shootout (2.07)", MACHINE_IS_PINBALL) -GAME(2001, shrknew, shrkysht, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Sharkey's Shootout (ARM7 Sound Board)", MACHINE_IS_PINBALL) -GAME(2001, shrkygr, shrkysht, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Sharkey's Shootout (2.11 Germany)", MACHINE_IS_PINBALL) -GAME(2001, shrkygr_207,shrkysht, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Sharkey's Shootout (2.07 Germany)", MACHINE_IS_PINBALL) -GAME(2001, shrkyfr, shrkysht, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Sharkey's Shootout (2.11 France)", MACHINE_IS_PINBALL) -GAME(2001, shrkyfr_207,shrkysht, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Sharkey's Shootout (2.07 France)", MACHINE_IS_PINBALL) -GAME(2001, shrkyit, shrkysht, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Sharkey's Shootout (2.11 Italy)", MACHINE_IS_PINBALL) -GAME(2001, shrkyit_207,shrkysht, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Sharkey's Shootout (2.07 Italy)", MACHINE_IS_PINBALL) -GAME(1999, sprk_103, 0, whitestar, whitestar, driver_device, 0, ROT0, "Sega", "South Park (1.03)", MACHINE_IS_PINBALL) -GAME(1999, sprk_096, sprk_103, whitestar, whitestar, driver_device, 0, ROT0, "Sega", "South Park (0.96)", MACHINE_IS_PINBALL) -GAME(1999, sprk_090, sprk_103, whitestar, whitestar, driver_device, 0, ROT0, "Sega", "South Park (0.90)", MACHINE_IS_PINBALL) -GAME(1997, spacejam, 0, whitestar, whitestar, driver_device, 0, ROT0, "Sega", "Space Jam (3.00)", MACHINE_IS_PINBALL) -GAME(1997, spacejam_200,spacejam, whitestar, whitestar, driver_device, 0, ROT0, "Sega", "Space Jam (2.00)", MACHINE_IS_PINBALL) -GAME(1997, spacejmg, spacejam, whitestar, whitestar, driver_device, 0, ROT0, "Sega", "Space Jam (3.00 Germany)", MACHINE_IS_PINBALL) -GAME(1997, spacejmf, spacejam, whitestar, whitestar, driver_device, 0, ROT0, "Sega", "Space Jam (3.00 France)", MACHINE_IS_PINBALL) -GAME(1997, spacejmi, spacejam, whitestar, whitestar, driver_device, 0, ROT0, "Sega", "Space Jam (3.00 Italy)", MACHINE_IS_PINBALL) -GAME(1997, swtril43, 0, whitestar, whitestar, driver_device, 0, ROT0, "Sega", "Star Wars Trilogy (4.03)", MACHINE_IS_PINBALL) -GAME(1997, swtril41, swtril43, whitestar, whitestar, driver_device, 0, ROT0, "Sega", "Star Wars Trilogy (4.01)", MACHINE_IS_PINBALL) -GAME(1997, startrp, 0, whitestar, whitestar, driver_device, 0, ROT0, "Sega", "Starship Troopers (2.01)", MACHINE_IS_PINBALL) -GAME(1997, startrp2, startrp, whitestar, whitestar, driver_device, 0, ROT0, "Sega", "Starship Troopers (2.00)", MACHINE_IS_PINBALL) -GAME(1999, strikext, 0, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Striker Xtreme (1.02)", MACHINE_IS_PINBALL) -GAME(1999, strknew, strikext, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Striker Xtreme (ARM7 Sound Board)", MACHINE_IS_PINBALL) -GAME(1999, strxt_uk, strikext, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Striker Xtreme (UK)", MACHINE_IS_PINBALL) -GAME(1999, strxt_gr, strikext, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Striker Xtreme (Germany)", MACHINE_IS_PINBALL) -GAME(1999, strxt_fr, strikext, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Striker Xtreme (France)", MACHINE_IS_PINBALL) -GAME(1999, strxt_it, strikext, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Striker Xtreme (Italy)", MACHINE_IS_PINBALL) -GAME(1999, strxt_sp, strikext, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Striker Xtreme (Spain)", MACHINE_IS_PINBALL) -GAME(2003, term3, 0, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Terminator 3: Rise of the Machines (4.00)", MACHINE_IS_PINBALL) -GAME(2003, term3_301, term3, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Terminator 3: Rise of the Machines (3.01)", MACHINE_IS_PINBALL) -GAME(2003, term3_205, term3, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Terminator 3: Rise of the Machines (2.05)", MACHINE_IS_PINBALL) -GAME(2003, t3new, term3, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Terminator 3: Rise of the Machines (ARM7 Sound Board)", MACHINE_IS_PINBALL) -GAME(2003, term3g, term3, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Terminator 3: Rise of the Machines (4.00 Germany)", MACHINE_IS_PINBALL) -GAME(2003, term3g_301, term3, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Terminator 3: Rise of the Machines (3.01 Germany)", MACHINE_IS_PINBALL) -GAME(2003, term3l, term3, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Terminator 3: Rise of the Machines (4.00 Spain)", MACHINE_IS_PINBALL) -GAME(2003, term3l_301, term3, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Terminator 3: Rise of the Machines (3.01 Spain)", MACHINE_IS_PINBALL) -GAME(2003, term3l_205, term3, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Terminator 3: Rise of the Machines (2.05 Spain)", MACHINE_IS_PINBALL) -GAME(2003, term3f, term3, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Terminator 3: Rise of the Machines (4.00 France)", MACHINE_IS_PINBALL) -GAME(2003, term3f_301, term3, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Terminator 3: Rise of the Machines (3.01 France)", MACHINE_IS_PINBALL) -GAME(2003, term3f_205, term3, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Terminator 3: Rise of the Machines (2.05 France)", MACHINE_IS_PINBALL) -GAME(2003, term3i, term3, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Terminator 3: Rise of the Machines (4.00 Italy)", MACHINE_IS_PINBALL) -GAME(2003, term3i_301, term3, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Terminator 3: Rise of the Machines (3.01 Italy)", MACHINE_IS_PINBALL) -GAME(2003, term3i_205, term3, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Terminator 3: Rise of the Machines (2.05 Italy)", MACHINE_IS_PINBALL) -GAME(1997, jplstw22, 0, whitestar, whitestar, driver_device, 0, ROT0, "Sega", "The Lost World: Jurassic Park (2.02)", MACHINE_IS_PINBALL) -GAME(1997, jplstw20, jplstw22, whitestar, whitestar, driver_device, 0, ROT0, "Sega", "The Lost World: Jurassic Park (2.00)", MACHINE_IS_PINBALL) -GAME(2003, simpprty, 0, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "The Simpsons Pinball Party (5.00)", MACHINE_IS_PINBALL) -GAME(2003, simpprty_400,simpprty, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "The Simpsons Pinball Party (4.00)", MACHINE_IS_PINBALL) -GAME(2003, simpprty_300,simpprty, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "The Simpsons Pinball Party (3.00)", MACHINE_IS_PINBALL) -GAME(2003, simpprty_204,simpprty, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "The Simpsons Pinball Party (2.04)", MACHINE_IS_PINBALL) -GAME(2003, simpnew, simpprty, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "The Simpsons Pinball Party (ARM7 Sound Board)", MACHINE_IS_PINBALL) -GAME(2003, simpprtg, 0, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "The Simpsons Pinball Party (5.00 Germany)", MACHINE_IS_PINBALL) -GAME(2003, simpprtg_400,simpprtg, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "The Simpsons Pinball Party (4.00 Germany)", MACHINE_IS_PINBALL) -GAME(2003, simpprtl, 0, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "The Simpsons Pinball Party (5.00 Spain)", MACHINE_IS_PINBALL) -GAME(2003, simpprtl_400,simpprtl, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "The Simpsons Pinball Party (4.00 Spain)", MACHINE_IS_PINBALL) -GAME(2003, simpprtl_300,simpprtl, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "The Simpsons Pinball Party (3.00 Spain)", MACHINE_IS_PINBALL) -GAME(2003, simpprtl_204,simpprtl, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "The Simpsons Pinball Party (2.04 Spain)", MACHINE_IS_PINBALL) -GAME(2003, simpprtf, 0, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "The Simpsons Pinball Party (5.00 France)", MACHINE_IS_PINBALL) -GAME(2003, simpprtf_400,simpprtf, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "The Simpsons Pinball Party (4.00 France)", MACHINE_IS_PINBALL) -GAME(2003, simpprtf_300,simpprtf, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "The Simpsons Pinball Party (3.00 France)", MACHINE_IS_PINBALL) -GAME(2003, simpprtf_204,simpprtf, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "The Simpsons Pinball Party (2.04 France)", MACHINE_IS_PINBALL) -GAME(2003, simpprti, 0, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "The Simpsons Pinball Party (5.00 Italy)", MACHINE_IS_PINBALL) -GAME(2003, simpprti_400,simpprti, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "The Simpsons Pinball Party (4.00 Italy)", MACHINE_IS_PINBALL) -GAME(2003, simpprti_300,simpprti, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "The Simpsons Pinball Party (3.00 Italy)", MACHINE_IS_PINBALL) -GAME(2003, simpprti_204,simpprti, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "The Simpsons Pinball Party (2.04 Italy)", MACHINE_IS_PINBALL) -GAME(1997, xfilesp, 0, whitestar, whitestar, driver_device, 0, ROT0, "Sega", "X-Files (3.03)", MACHINE_IS_PINBALL) -GAME(1997, xfilespf, xfilesp, whitestar, whitestar, driver_device, 0, ROT0, "Sega", "X-Files (3.03 France)", MACHINE_IS_PINBALL) -GAME(1997, xfiles2, xfilesp, whitestar, whitestar, driver_device, 0, ROT0, "Sega", "X-Files (2.04)", MACHINE_IS_PINBALL) -GAME(1997, xfiles20, xfilesp, whitestar, whitestar, driver_device, 0, ROT0, "Sega", "X-Files (2.00)", MACHINE_IS_PINBALL) -GAME(1996, twst_405, 0, whitestar, whitestar, driver_device, 0, ROT0, "Sega", "Twister (4.05)", MACHINE_IS_PINBALL) -GAME(1996, twst_404, twst_405, whitestar, whitestar, driver_device, 0, ROT0, "Sega", "Twister (4.04)", MACHINE_IS_PINBALL) -GAME(1996, twst_300, twst_405, whitestar, whitestar, driver_device, 0, ROT0, "Sega", "Twister (3.00)", MACHINE_IS_PINBALL) -GAME(1998, viprsega, 0, whitestar, whitestar, driver_device, 0, ROT0, "Sega", "Viper Night Drivin' (2.01)", MACHINE_IS_PINBALL) -GAME(1998, viprsega_102,viprsega, whitestar, whitestar, driver_device, 0, ROT0, "Sega", "Viper Night Drivin' (1.02)", MACHINE_IS_PINBALL) -GAME(1998, ctchzdlx, ctcheese, whitestar, whitestar, driver_device, 0, ROT0, "Sega", "Cut The Cheese Deluxe (Redemption)", MACHINE_IS_PINBALL) -GAME(1998, titanic, 0, whitestar, whitestar, driver_device, 0, ROT0, "Sega", "Titanic (Coin dropper)", MACHINE_IS_PINBALL) -GAME(2002, monopred, 0, whitestar, whitestar, driver_device, 0, ROT0, "Stern", "Monopoly (Coin dropper)", MACHINE_IS_PINBALL) -GAME(1998, wackadoo, 0, whitestar, whitestar, driver_device, 0, ROT0, "Sega", "Wack-A-Doodle-Doo (Redemption)", MACHINE_IS_PINBALL) +GAME(1995, apollo13, 0, whitestar, whitestar, whitestar_state, 0, ROT0, "Sega", "Apollo 13 (5.01)", MACHINE_IS_PINBALL) +GAME(1995, apollo13_d4, apollo13, whitestar, whitestar, whitestar_state, 0, ROT0, "Sega", "Apollo 13 (5.01, Display 4.01)", MACHINE_IS_PINBALL) +GAME(1995, apollo13_20, apollo13, whitestar, whitestar, whitestar_state, 0, ROT0, "Sega", "Apollo 13 (2.03)", MACHINE_IS_PINBALL) +GAME(1995, apollo13_10, apollo13, whitestar, whitestar, whitestar_state, 0, ROT0, "Sega", "Apollo 13 (1.00)", MACHINE_IS_PINBALL) +GAME(2001, austin, 0, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Austin Powers (3.02)", MACHINE_IS_PINBALL) +GAME(2001, aust301, austin, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Austin Powers (3.01)", MACHINE_IS_PINBALL) +GAME(2001, aust300, austin, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Austin Powers (3.00)", MACHINE_IS_PINBALL) +GAME(2001, aust201, austin, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Austin Powers (2.01)", MACHINE_IS_PINBALL) +GAME(2001, austnew, austin, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Austin Powers (ARM7 Sound Board)", MACHINE_IS_PINBALL) +GAME(2001, austinf, austin, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Austin Powers (France)", MACHINE_IS_PINBALL) +GAME(2001, austing, austin, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Austin Powers (Germany)", MACHINE_IS_PINBALL) +GAME(2001, austini, austin, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Austin Powers (Italy)", MACHINE_IS_PINBALL) +GAME(1998, godzillp, 0, whitestar, whitestar, whitestar_state, 0, ROT0, "Sega", "Godzilla (Pinball, 2.05)", MACHINE_IS_PINBALL) +GAME(1998, godzillp_100, godzillp, whitestar, whitestar, whitestar_state, 0, ROT0, "Sega", "Godzilla (Pinball, 1.00)", MACHINE_IS_PINBALL) +GAME(1998, godzillp_090, godzillp, whitestar, whitestar, whitestar_state, 0, ROT0, "Sega", "Godzilla (Pinball, 0.90)", MACHINE_IS_PINBALL) +GAME(1996, gldneye, 0, whitestar, whitestar, whitestar_state, 0, ROT0, "Sega", "Goldeneye", MACHINE_IS_PINBALL) +GAME(1998, goldcue, 0, whitestar, whitestar, whitestar_state, 0, ROT0, "Sega", "Golden Cue", MACHINE_IS_PINBALL) +GAME(1999, harl_a13, 0, whitestar, whitestar, whitestar_state, 0, ROT0, "Sega", "Harley Davidson (1.03)", MACHINE_IS_PINBALL) +GAME(1999, harl_u13, harl_a13, whitestar, whitestar, whitestar_state, 0, ROT0, "Sega", "Harley Davidson (1.03 UK)", MACHINE_IS_PINBALL) +GAME(1999, harl_a10, harl_a13, whitestar, whitestar, whitestar_state, 0, ROT0, "Sega", "Harley Davidson (1.03 Display rev. 1.00)", MACHINE_IS_PINBALL) +GAME(1999, harl_f13, harl_a13, whitestar, whitestar, whitestar_state, 0, ROT0, "Sega", "Harley Davidson (1.03 France)", MACHINE_IS_PINBALL) +GAME(1999, harl_g13, harl_a13, whitestar, whitestar, whitestar_state, 0, ROT0, "Sega", "Harley Davidson (1.03 Germany)", MACHINE_IS_PINBALL) +GAME(1999, harl_i13, harl_a13, whitestar, whitestar, whitestar_state, 0, ROT0, "Sega", "Harley Davidson (1.03 Italy)", MACHINE_IS_PINBALL) +GAME(1999, harl_l13, harl_a13, whitestar, whitestar, whitestar_state, 0, ROT0, "Sega", "Harley Davidson (1.03 Spain)", MACHINE_IS_PINBALL) +GAME(2004, harl_a40, 0, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Harley Davidson (4.00)", MACHINE_IS_PINBALL) +GAME(2004, harl_f40, harl_a40, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Harley Davidson (4.00 France)", MACHINE_IS_PINBALL) +GAME(2004, harl_g40, harl_a40, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Harley Davidson (4.00 Germany)", MACHINE_IS_PINBALL) +GAME(2004, harl_i40, harl_a40, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Harley Davidson (4.00 Italy)", MACHINE_IS_PINBALL) +GAME(2004, harl_l40, harl_a40, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Harley Davidson (4.00 Spain)", MACHINE_IS_PINBALL) +GAME(2004, harl_a30, harl_a40, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Harley Davidson (3.00)", MACHINE_IS_PINBALL) +GAME(2004, harl_f30, harl_a40, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Harley Davidson (3.00 France)", MACHINE_IS_PINBALL) +GAME(2004, harl_g30, harl_a40, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Harley Davidson (3.00 Germany)", MACHINE_IS_PINBALL) +GAME(2004, harl_i30, harl_a40, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Harley Davidson (3.00 Italy)", MACHINE_IS_PINBALL) +GAME(2004, harl_l30, harl_a40, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Harley Davidson (3.00 Spain)", MACHINE_IS_PINBALL) +GAME(2003, harl_a18, harl_a40, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Harley Davidson (1.08)", MACHINE_IS_PINBALL) +GAME(2003, harl_f18, harl_a40, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Harley Davidson (1.08 France)", MACHINE_IS_PINBALL) +GAME(2003, harl_g18, harl_a40, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Harley Davidson (1.08 Germany)", MACHINE_IS_PINBALL) +GAME(2003, harl_i18, harl_a40, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Harley Davidson (1.08 Italy)", MACHINE_IS_PINBALL) +GAME(2003, harl_l18, harl_a40, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Harley Davidson (1.08 Spain)", MACHINE_IS_PINBALL) +GAME(2001, hirolcas, 0, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "High Roller Casino (3.00)", MACHINE_IS_PINBALL) +GAME(2001, hironew, hirolcas, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "High Roller Casino (ARM7 Sound Board)", MACHINE_IS_PINBALL) +GAME(2001, hirolcat, hirolcas, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "High Roller Casino (3.00) TEST", MACHINE_IS_PINBALL) +GAME(2001, hirolcas_210, hirolcas, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "High Roller Casino (2.10)", MACHINE_IS_PINBALL) +GAME(2001, hirol_fr, hirolcas, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "High Roller Casino (3.00 France)", MACHINE_IS_PINBALL) +GAME(2001, hirol_gr, hirolcas, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "High Roller Casino (3.00 Germany)", MACHINE_IS_PINBALL) +GAME(2001, hirol_gr_210, hirolcas, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "High Roller Casino (2.10 Germany)", MACHINE_IS_PINBALL) +GAME(2001, hirol_it, hirolcas, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "High Roller Casino (3.00 Italy)", MACHINE_IS_PINBALL) +GAME(1996, id4, 0, whitestar, whitestar, whitestar_state, 0, ROT0, "Sega", "Independence Day (v2.02)", MACHINE_IS_PINBALL) +GAME(1996, id4f, id4, whitestar, whitestar, whitestar_state, 0, ROT0, "Sega", "Independence Day (v2.02 France)", MACHINE_IS_PINBALL) +GAME(1996, id4_201, id4, whitestar, whitestar, whitestar_state, 0, ROT0, "Sega", "Independence Day (v2.01)", MACHINE_IS_PINBALL) +GAME(1996, id4f_201, id4, whitestar, whitestar, whitestar_state, 0, ROT0, "Sega", "Independence Day (v2.01 France)", MACHINE_IS_PINBALL) +GAME(1998, lostspc, 0, whitestar, whitestar, whitestar_state, 0, ROT0, "Sega", "Lost in Space (1.01)", MACHINE_IS_PINBALL) +GAME(1998, lostspcf, lostspc, whitestar, whitestar, whitestar_state, 0, ROT0, "Sega", "Lost in Space (1.01 France)", MACHINE_IS_PINBALL) +GAME(1998, lostspcg, lostspc, whitestar, whitestar, whitestar_state, 0, ROT0, "Sega", "Lost in Space (1.01 Germany)", MACHINE_IS_PINBALL) +GAME(1998, lostspc_d1, lostspc, whitestar, whitestar, whitestar_state, 0, ROT0, "Sega", "Lost in Space (1.01, Display 1.01)", MACHINE_IS_PINBALL) +GAME(2001, monopolp, 0, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Monopoly (3.20)", MACHINE_IS_PINBALL) +GAME(2002, monop303, monopolp, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Monopoly (3.03)", MACHINE_IS_PINBALL) +GAME(2002, monop301, monopolp, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Monopoly (3.01)", MACHINE_IS_PINBALL) +GAME(2002, monop251, monopolp, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Monopoly (2.51)", MACHINE_IS_PINBALL) +GAME(2002, monop233, monopolp, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Monopoly (2.33)", MACHINE_IS_PINBALL) +GAME(2002, monopolf, monopolp, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Monopoly (France)", MACHINE_IS_PINBALL) +GAME(2002, monopolg, monopolp, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Monopoly (Germany)", MACHINE_IS_PINBALL) +GAME(2002, monopoli, monopolp, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Monopoly (Italy)", MACHINE_IS_PINBALL) +GAME(2002, monopoll, monopolp, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Monopoly (Spain)", MACHINE_IS_PINBALL) +GAME(2002, mononew, monopolp, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Monopoly (ARM7 Sound Board)", MACHINE_IS_PINBALL) +GAME(2001, nfl, 0, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "NFL", MACHINE_IS_PINBALL) +GAME(2002, playboys, 0, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Playboy (5.00)", MACHINE_IS_PINBALL) +GAME(2002, playboys_401, playboys, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Playboy (4.01)", MACHINE_IS_PINBALL) +GAME(2002, playboys_303, playboys, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Playboy (3.03)", MACHINE_IS_PINBALL) +GAME(2002, playboys_302, playboys, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Playboy (3.02)", MACHINE_IS_PINBALL) +GAME(2002, playboys_300, playboys, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Playboy (3.00)", MACHINE_IS_PINBALL) +GAME(2002, playboys_203, playboys, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Playboy (2.03)", MACHINE_IS_PINBALL) +GAME(2002, playnew, playboys, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Playboy (ARM7 Sound Board)", MACHINE_IS_PINBALL) +GAME(2002, playboyf, 0, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Playboy (5.00 France)", MACHINE_IS_PINBALL) +GAME(2002, playboyf_401, playboyf, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Playboy (4.01 France)", MACHINE_IS_PINBALL) +GAME(2002, playboyf_303, playboyf, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Playboy (3.03 France)", MACHINE_IS_PINBALL) +GAME(2002, playboyf_302, playboyf, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Playboy (3.02 France)", MACHINE_IS_PINBALL) +GAME(2002, playboyf_300, playboyf, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Playboy (3.00 France)", MACHINE_IS_PINBALL) +GAME(2002, playboyf_203, playboyf, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Playboy (2.03 France)", MACHINE_IS_PINBALL) +GAME(2002, playboyg, 0, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Playboy (5.00 Germany)", MACHINE_IS_PINBALL) +GAME(2002, playboyg_401, playboyg, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Playboy (4.01 Germany)", MACHINE_IS_PINBALL) +GAME(2002, playboyg_303, playboyg, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Playboy (3.03 Germany)", MACHINE_IS_PINBALL) +GAME(2002, playboyg_302, playboyg, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Playboy (3.02 Germany)", MACHINE_IS_PINBALL) +GAME(2002, playboyg_300, playboyg, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Playboy (3.00 Germany)", MACHINE_IS_PINBALL) +GAME(2002, playboyg_203, playboyg, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Playboy (2.03 Germany)", MACHINE_IS_PINBALL) +GAME(2002, playboyi, 0, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Playboy (5.00 Italy)", MACHINE_IS_PINBALL) +GAME(2002, playboyi_401, playboyi, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Playboy (4.01 Italy)", MACHINE_IS_PINBALL) +GAME(2002, playboyi_303, playboyi, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Playboy (3.03 Italy)", MACHINE_IS_PINBALL) +GAME(2002, playboyi_302, playboyi, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Playboy (3.02 Italy)", MACHINE_IS_PINBALL) +GAME(2002, playboyi_300, playboyi, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Playboy (3.00 Italy)", MACHINE_IS_PINBALL) +GAME(2002, playboyi_203, playboyi, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Playboy (2.03 Italy)", MACHINE_IS_PINBALL) +GAME(2002, playboyl, 0, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Playboy (5.00 Spain)", MACHINE_IS_PINBALL) +GAME(2002, playboyl_401, playboyl, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Playboy (4.01 Spain)", MACHINE_IS_PINBALL) +GAME(2002, playboyl_303, playboyl, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Playboy (3.03 Spain)", MACHINE_IS_PINBALL) +GAME(2002, playboyl_302, playboyl, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Playboy (3.02 Spain)", MACHINE_IS_PINBALL) +GAME(2002, playboyl_300, playboyl, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Playboy (3.00 Spain)", MACHINE_IS_PINBALL) +GAME(2002, playboyl_203, playboyl, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Playboy (2.03 Spain)", MACHINE_IS_PINBALL) +GAME(2002, rctycn, 0, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Roller Coaster Tycoon (7.02)", MACHINE_IS_PINBALL) +GAME(2002, rctycn_701, rctycn, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Roller Coaster Tycoon (7.01)", MACHINE_IS_PINBALL) +GAME(2002, rctycn_600, rctycn, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Roller Coaster Tycoon (6.00)", MACHINE_IS_PINBALL) +GAME(2002, rctycn_400, rctycn, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Roller Coaster Tycoon (4.00)", MACHINE_IS_PINBALL) +GAME(2002, rctnew, rctycn, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Roller Coaster Tycoon (ARM7 Sound Board)", MACHINE_IS_PINBALL) +GAME(2002, rctycng, 0, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Roller Coaster Tycoon (7.02 Germany)", MACHINE_IS_PINBALL) +GAME(2002, rctycng_701, rctycng, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Roller Coaster Tycoon (7.01 Germany)", MACHINE_IS_PINBALL) +GAME(2002, rctycng_400, rctycng, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Roller Coaster Tycoon (4.00 Germany)", MACHINE_IS_PINBALL) +GAME(2002, rctycnf, 0, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Roller Coaster Tycoon (7.02 France)", MACHINE_IS_PINBALL) +GAME(2002, rctycnf_701, rctycnf, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Roller Coaster Tycoon (7.01 France)", MACHINE_IS_PINBALL) +GAME(2002, rctycnf_600, rctycnf, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Roller Coaster Tycoon (6.00 France)", MACHINE_IS_PINBALL) +GAME(2002, rctycnf_400, rctycnf, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Roller Coaster Tycoon (4.00 France)", MACHINE_IS_PINBALL) +GAME(2002, rctycni, 0, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Roller Coaster Tycoon (7.02 Italy)", MACHINE_IS_PINBALL) +GAME(2002, rctycni_701, rctycni, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Roller Coaster Tycoon (7.01 Italy)", MACHINE_IS_PINBALL) +GAME(2002, rctycni_600, rctycni, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Roller Coaster Tycoon (6.00 Italy)", MACHINE_IS_PINBALL) +GAME(2002, rctycni_400, rctycni, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Roller Coaster Tycoon (4.00 Italy)", MACHINE_IS_PINBALL) +GAME(2002, rctycnl, 0, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Roller Coaster Tycoon (7.02 Spain)", MACHINE_IS_PINBALL) +GAME(2002, rctycnl_701, rctycnl, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Roller Coaster Tycoon (7.01 Spain)", MACHINE_IS_PINBALL) +GAME(2002, rctycnl_600, rctycnl, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Roller Coaster Tycoon (6.00 Spain)", MACHINE_IS_PINBALL) +GAME(2002, rctycnl_400, rctycnl, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Roller Coaster Tycoon (4.00 Spain)", MACHINE_IS_PINBALL) +GAME(2000, shrkysht, 0, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Sharkey's Shootout (2.11)", MACHINE_IS_PINBALL) +GAME(2000, shrky_207, shrkysht, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Sharkey's Shootout (2.07)", MACHINE_IS_PINBALL) +GAME(2001, shrknew, shrkysht, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Sharkey's Shootout (ARM7 Sound Board)", MACHINE_IS_PINBALL) +GAME(2001, shrkygr, shrkysht, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Sharkey's Shootout (2.11 Germany)", MACHINE_IS_PINBALL) +GAME(2001, shrkygr_207, shrkysht, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Sharkey's Shootout (2.07 Germany)", MACHINE_IS_PINBALL) +GAME(2001, shrkyfr, shrkysht, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Sharkey's Shootout (2.11 France)", MACHINE_IS_PINBALL) +GAME(2001, shrkyfr_207, shrkysht, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Sharkey's Shootout (2.07 France)", MACHINE_IS_PINBALL) +GAME(2001, shrkyit, shrkysht, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Sharkey's Shootout (2.11 Italy)", MACHINE_IS_PINBALL) +GAME(2001, shrkyit_207, shrkysht, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Sharkey's Shootout (2.07 Italy)", MACHINE_IS_PINBALL) +GAME(1999, sprk_103, 0, whitestar, whitestar, whitestar_state, 0, ROT0, "Sega", "South Park (1.03)", MACHINE_IS_PINBALL) +GAME(1999, sprk_096, sprk_103, whitestar, whitestar, whitestar_state, 0, ROT0, "Sega", "South Park (0.96)", MACHINE_IS_PINBALL) +GAME(1999, sprk_090, sprk_103, whitestar, whitestar, whitestar_state, 0, ROT0, "Sega", "South Park (0.90)", MACHINE_IS_PINBALL) +GAME(1997, spacejam, 0, whitestar, whitestar, whitestar_state, 0, ROT0, "Sega", "Space Jam (3.00)", MACHINE_IS_PINBALL) +GAME(1997, spacejam_200 ,spacejam, whitestar, whitestar, whitestar_state, 0, ROT0, "Sega", "Space Jam (2.00)", MACHINE_IS_PINBALL) +GAME(1997, spacejmg, spacejam, whitestar, whitestar, whitestar_state, 0, ROT0, "Sega", "Space Jam (3.00 Germany)", MACHINE_IS_PINBALL) +GAME(1997, spacejmf, spacejam, whitestar, whitestar, whitestar_state, 0, ROT0, "Sega", "Space Jam (3.00 France)", MACHINE_IS_PINBALL) +GAME(1997, spacejmi, spacejam, whitestar, whitestar, whitestar_state, 0, ROT0, "Sega", "Space Jam (3.00 Italy)", MACHINE_IS_PINBALL) +GAME(1997, swtril43, 0, whitestar, whitestar, whitestar_state, 0, ROT0, "Sega", "Star Wars Trilogy (4.03)", MACHINE_IS_PINBALL) +GAME(1997, swtril41, swtril43, whitestar, whitestar, whitestar_state, 0, ROT0, "Sega", "Star Wars Trilogy (4.01)", MACHINE_IS_PINBALL) +GAME(1997, startrp, 0, whitestar, whitestar, whitestar_state, 0, ROT0, "Sega", "Starship Troopers (2.01)", MACHINE_IS_PINBALL) +GAME(1997, startrp2, startrp, whitestar, whitestar, whitestar_state, 0, ROT0, "Sega", "Starship Troopers (2.00)", MACHINE_IS_PINBALL) +GAME(1999, strikext, 0, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Striker Xtreme (1.02)", MACHINE_IS_PINBALL) +GAME(1999, strknew, strikext, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Striker Xtreme (ARM7 Sound Board)", MACHINE_IS_PINBALL) +GAME(1999, strxt_uk, strikext, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Striker Xtreme (UK)", MACHINE_IS_PINBALL) +GAME(1999, strxt_gr, strikext, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Striker Xtreme (Germany)", MACHINE_IS_PINBALL) +GAME(1999, strxt_fr, strikext, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Striker Xtreme (France)", MACHINE_IS_PINBALL) +GAME(1999, strxt_it, strikext, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Striker Xtreme (Italy)", MACHINE_IS_PINBALL) +GAME(1999, strxt_sp, strikext, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Striker Xtreme (Spain)", MACHINE_IS_PINBALL) +GAME(2003, term3, 0, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Terminator 3: Rise of the Machines (4.00)", MACHINE_IS_PINBALL) +GAME(2003, term3_301, term3, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Terminator 3: Rise of the Machines (3.01)", MACHINE_IS_PINBALL) +GAME(2003, term3_205, term3, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Terminator 3: Rise of the Machines (2.05)", MACHINE_IS_PINBALL) +GAME(2003, t3new, term3, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Terminator 3: Rise of the Machines (ARM7 Sound Board)", MACHINE_IS_PINBALL) +GAME(2003, term3g, term3, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Terminator 3: Rise of the Machines (4.00 Germany)", MACHINE_IS_PINBALL) +GAME(2003, term3g_301, term3, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Terminator 3: Rise of the Machines (3.01 Germany)", MACHINE_IS_PINBALL) +GAME(2003, term3l, term3, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Terminator 3: Rise of the Machines (4.00 Spain)", MACHINE_IS_PINBALL) +GAME(2003, term3l_301, term3, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Terminator 3: Rise of the Machines (3.01 Spain)", MACHINE_IS_PINBALL) +GAME(2003, term3l_205, term3, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Terminator 3: Rise of the Machines (2.05 Spain)", MACHINE_IS_PINBALL) +GAME(2003, term3f, term3, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Terminator 3: Rise of the Machines (4.00 France)", MACHINE_IS_PINBALL) +GAME(2003, term3f_301, term3, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Terminator 3: Rise of the Machines (3.01 France)", MACHINE_IS_PINBALL) +GAME(2003, term3f_205, term3, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Terminator 3: Rise of the Machines (2.05 France)", MACHINE_IS_PINBALL) +GAME(2003, term3i, term3, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Terminator 3: Rise of the Machines (4.00 Italy)", MACHINE_IS_PINBALL) +GAME(2003, term3i_301, term3, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Terminator 3: Rise of the Machines (3.01 Italy)", MACHINE_IS_PINBALL) +GAME(2003, term3i_205, term3, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Terminator 3: Rise of the Machines (2.05 Italy)", MACHINE_IS_PINBALL) +GAME(1997, jplstw22, 0, whitestar, whitestar, whitestar_state, 0, ROT0, "Sega", "The Lost World: Jurassic Park (2.02)", MACHINE_IS_PINBALL) +GAME(1997, jplstw20, jplstw22, whitestar, whitestar, whitestar_state, 0, ROT0, "Sega", "The Lost World: Jurassic Park (2.00)", MACHINE_IS_PINBALL) +GAME(2003, simpprty, 0, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "The Simpsons Pinball Party (5.00)", MACHINE_IS_PINBALL) +GAME(2003, simpprty_400, simpprty, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "The Simpsons Pinball Party (4.00)", MACHINE_IS_PINBALL) +GAME(2003, simpprty_300, simpprty, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "The Simpsons Pinball Party (3.00)", MACHINE_IS_PINBALL) +GAME(2003, simpprty_204, simpprty, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "The Simpsons Pinball Party (2.04)", MACHINE_IS_PINBALL) +GAME(2003, simpnew, simpprty, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "The Simpsons Pinball Party (ARM7 Sound Board)", MACHINE_IS_PINBALL) +GAME(2003, simpprtg, 0, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "The Simpsons Pinball Party (5.00 Germany)", MACHINE_IS_PINBALL) +GAME(2003, simpprtg_400, simpprtg, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "The Simpsons Pinball Party (4.00 Germany)", MACHINE_IS_PINBALL) +GAME(2003, simpprtl, 0, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "The Simpsons Pinball Party (5.00 Spain)", MACHINE_IS_PINBALL) +GAME(2003, simpprtl_400, simpprtl, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "The Simpsons Pinball Party (4.00 Spain)", MACHINE_IS_PINBALL) +GAME(2003, simpprtl_300, simpprtl, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "The Simpsons Pinball Party (3.00 Spain)", MACHINE_IS_PINBALL) +GAME(2003, simpprtl_204, simpprtl, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "The Simpsons Pinball Party (2.04 Spain)", MACHINE_IS_PINBALL) +GAME(2003, simpprtf, 0, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "The Simpsons Pinball Party (5.00 France)", MACHINE_IS_PINBALL) +GAME(2003, simpprtf_400, simpprtf, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "The Simpsons Pinball Party (4.00 France)", MACHINE_IS_PINBALL) +GAME(2003, simpprtf_300, simpprtf, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "The Simpsons Pinball Party (3.00 France)", MACHINE_IS_PINBALL) +GAME(2003, simpprtf_204, simpprtf, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "The Simpsons Pinball Party (2.04 France)", MACHINE_IS_PINBALL) +GAME(2003, simpprti, 0, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "The Simpsons Pinball Party (5.00 Italy)", MACHINE_IS_PINBALL) +GAME(2003, simpprti_400, simpprti, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "The Simpsons Pinball Party (4.00 Italy)", MACHINE_IS_PINBALL) +GAME(2003, simpprti_300, simpprti, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "The Simpsons Pinball Party (3.00 Italy)", MACHINE_IS_PINBALL) +GAME(2003, simpprti_204, simpprti, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "The Simpsons Pinball Party (2.04 Italy)", MACHINE_IS_PINBALL) +GAME(1997, xfilesp, 0, whitestar, whitestar, whitestar_state, 0, ROT0, "Sega", "X-Files (3.03)", MACHINE_IS_PINBALL) +GAME(1997, xfilespf, xfilesp, whitestar, whitestar, whitestar_state, 0, ROT0, "Sega", "X-Files (3.03 France)", MACHINE_IS_PINBALL) +GAME(1997, xfiles2, xfilesp, whitestar, whitestar, whitestar_state, 0, ROT0, "Sega", "X-Files (2.04)", MACHINE_IS_PINBALL) +GAME(1997, xfiles20, xfilesp, whitestar, whitestar, whitestar_state, 0, ROT0, "Sega", "X-Files (2.00)", MACHINE_IS_PINBALL) +GAME(1996, twst_405, 0, whitestar, whitestar, whitestar_state, 0, ROT0, "Sega", "Twister (4.05)", MACHINE_IS_PINBALL) +GAME(1996, twst_404, twst_405, whitestar, whitestar, whitestar_state, 0, ROT0, "Sega", "Twister (4.04)", MACHINE_IS_PINBALL) +GAME(1996, twst_300, twst_405, whitestar, whitestar, whitestar_state, 0, ROT0, "Sega", "Twister (3.00)", MACHINE_IS_PINBALL) +GAME(1998, viprsega, 0, whitestar, whitestar, whitestar_state, 0, ROT0, "Sega", "Viper Night Drivin' (2.01)", MACHINE_IS_PINBALL) +GAME(1998, viprsega_102, viprsega, whitestar, whitestar, whitestar_state, 0, ROT0, "Sega", "Viper Night Drivin' (1.02)", MACHINE_IS_PINBALL) +GAME(1998, ctchzdlx, ctcheese, whitestar, whitestar, whitestar_state, 0, ROT0, "Sega", "Cut The Cheese Deluxe (Redemption)", MACHINE_IS_PINBALL) +GAME(1998, titanic, 0, whitestar, whitestar, whitestar_state, 0, ROT0, "Sega", "Titanic (Coin dropper)", MACHINE_IS_PINBALL) +GAME(2002, monopred, 0, whitestar, whitestar, whitestar_state, 0, ROT0, "Stern", "Monopoly (Coin dropper)", MACHINE_IS_PINBALL) +GAME(1998, wackadoo, 0, whitestar, whitestar, whitestar_state, 0, ROT0, "Sega", "Wack-A-Doodle-Doo (Redemption)", MACHINE_IS_PINBALL) diff --git a/src/mame/drivers/wicat.cpp b/src/mame/drivers/wicat.cpp index fbcc8a97a01..0eabbc0756e 100644 --- a/src/mame/drivers/wicat.cpp +++ b/src/mame/drivers/wicat.cpp @@ -121,7 +121,7 @@ public: required_device m_videosram; required_device m_palette; required_memory_region m_chargen; - required_device m_fdc; + required_device m_fdc; uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { return 0; } virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; @@ -763,7 +763,7 @@ I8275_DRAW_CHARACTER_MEMBER(wicat_state::wicat_display_pixels) } } -static MACHINE_CONFIG_START( wicat, wicat_state ) +static MACHINE_CONFIG_START( wicat ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_8MHz) MCFG_CPU_PROGRAM_MAP(wicat_mem) @@ -1001,5 +1001,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1982, wicat, 0, 0, wicat, wicat, driver_device, 0, "Millennium Systems", "Wicat System 150", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW ) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 1982, wicat, 0, 0, wicat, wicat, wicat_state, 0, "Millennium Systems", "Wicat System 150", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW ) diff --git a/src/mame/drivers/wico.cpp b/src/mame/drivers/wico.cpp index dfb546fe6ba..ad15cdbf6bf 100644 --- a/src/mame/drivers/wico.cpp +++ b/src/mame/drivers/wico.cpp @@ -427,7 +427,7 @@ void wico_state::machine_reset() } -static MACHINE_CONFIG_START( wico, wico_state ) +static MACHINE_CONFIG_START( wico ) /* basic machine hardware */ MCFG_CPU_ADD("ccpu", M6809, 10000000 / 8) MCFG_CPU_PROGRAM_MAP(ccpu_map) @@ -463,4 +463,4 @@ ROM_END / Big Top (1977) /-------------------------------------------------------------------*/ -GAME(1984, aftor, 0, wico, wico, driver_device, 0, ROT0, "Wico", "Af-Tor", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) +GAME(1984, aftor, 0, wico, wico, wico_state, 0, ROT0, "Wico", "Af-Tor", MACHINE_MECHANICAL | MACHINE_NOT_WORKING) diff --git a/src/mame/drivers/wildpkr.cpp b/src/mame/drivers/wildpkr.cpp index 5218248e5e2..8b5d2e4073a 100644 --- a/src/mame/drivers/wildpkr.cpp +++ b/src/mame/drivers/wildpkr.cpp @@ -440,7 +440,7 @@ ADDRESS_MAP_END * Machine Drivers * *************************/ -static MACHINE_CONFIG_START( wildpkr, wildpkr_state ) +static MACHINE_CONFIG_START( wildpkr ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, MAIN_CLOCK) @@ -471,7 +471,7 @@ static MACHINE_CONFIG_START( wildpkr, wildpkr_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( tabpkr, wildpkr_state ) +static MACHINE_CONFIG_START( tabpkr ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_24MHz / 2) @@ -579,6 +579,6 @@ DRIVER_INIT_MEMBER(wildpkr_state,wildpkr) * Game Drivers * *************************/ -/* YEAR NAME PARENT MACHINE INPUT INIT ROT COMPANY FULLNAME FLAGS */ +// YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS GAME( 199?, wildpkr, 0, wildpkr, wildpkr, wildpkr_state, wildpkr, ROT0, "TAB Austria", "Wild Poker (ver. D 1.01)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION ) -GAME( 1996, tabpkr, 0, tabpkr, tabpkr, wildpkr_state, wildpkr, ROT0, "TAB Austria", "Royal Poker V 1.85", MACHINE_NO_SOUND | MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION ) +GAME( 1996, tabpkr, 0, tabpkr, tabpkr, wildpkr_state, wildpkr, ROT0, "TAB Austria", "Royal Poker V 1.85", MACHINE_NO_SOUND | MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION ) diff --git a/src/mame/drivers/williams.cpp b/src/mame/drivers/williams.cpp index 894a5e52447..d2c34b85034 100644 --- a/src/mame/drivers/williams.cpp +++ b/src/mame/drivers/williams.cpp @@ -1436,7 +1436,7 @@ GFXDECODE_END * *************************************/ -static MACHINE_CONFIG_START( williams, williams_state ) +static MACHINE_CONFIG_START( williams ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809, MASTER_CLOCK/3/4) @@ -1594,7 +1594,7 @@ static MACHINE_CONFIG_DERIVED( playball, williams ) MACHINE_CONFIG_END -static MACHINE_CONFIG_DERIVED_CLASS( blastkit, williams, blaster_state ) +static MACHINE_CONFIG_DERIVED( blastkit, williams ) /* basic machine hardware */ MCFG_CPU_MODIFY("maincpu") @@ -1650,7 +1650,7 @@ static MACHINE_CONFIG_DERIVED( blaster, blastkit ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( williams2, williams2_state ) +static MACHINE_CONFIG_START( williams2 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809, MASTER_CLOCK/3/4) @@ -1752,7 +1752,7 @@ static MACHINE_CONFIG_DERIVED( tshoot, williams2 ) MACHINE_CONFIG_END -static MACHINE_CONFIG_DERIVED_CLASS( joust2, williams2, joust2_state ) +static MACHINE_CONFIG_DERIVED( joust2, williams2 ) /* basic machine hardware */ MCFG_CPU_MODIFY("maincpu") @@ -3188,15 +3188,15 @@ GAME( 1980, defcmnd, defender, defender, defender, williams_state, defe 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, 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 -GAME( 1980, maydayb, mayday, defender, mayday, williams_state, mayday, ROT0, "Hoei", "Mayday (set 3)", MACHINE_SUPPORTS_SAVE | MACHINE_UNEMULATED_PROTECTION ) // / -GAME( 1980, batlzone, mayday, defender, mayday, williams_state, mayday, ROT0, "bootleg (Video Game)", "Battle Zone (bootleg of Mayday)", MACHINE_SUPPORTS_SAVE )// the bootleg may or may not use the same protection chip, or some hack around it. +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 +GAME( 1980, maydayb, mayday, defender, mayday, williams_state, mayday, ROT0, "Hoei", "Mayday (set 3)", MACHINE_SUPPORTS_SAVE | MACHINE_UNEMULATED_PROTECTION ) // / +GAME( 1980, batlzone, mayday, defender, mayday, williams_state, mayday, ROT0, "bootleg (Video Game)", "Battle Zone (bootleg of Mayday)", MACHINE_SUPPORTS_SAVE )// the bootleg may or may not use the same protection chip, or some hack around it. -GAME( 1981, colony7, 0, defender, colony7, williams_state, defender, ROT270, "Taito", "Colony 7 (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, colony7a, colony7, defender, colony7, williams_state, defender, ROT270, "Taito", "Colony 7 (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, colony7, 0, defender, colony7, williams_state, defender, ROT270, "Taito", "Colony 7 (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, colony7a, colony7, defender, colony7, williams_state, defender, ROT270, "Taito", "Colony 7 (set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, jin, 0, jin, jin, williams_state, defender, ROT90, "Falcon", "Jin", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, jin, 0, jin, jin, williams_state, defender, ROT90, "Falcon", "Jin", MACHINE_SUPPORTS_SAVE ) @@ -3210,15 +3210,15 @@ GAME( 1987, robotron87, robotron, williams, robotron, williams_state, robo GAME( 2012, robotron12, robotron, williams, robotron, williams_state, robotron, ROT0, "hack", "Robotron: 2084 (2012 'wave 201 start' hack)", MACHINE_SUPPORTS_SAVE ) // includes sitc bug fix, used for competitive play. GAME( 2015, robotrontd, robotron, williams, robotron, williams_state, robotron, ROT0, "hack", "Robotron: 2084 (2015 'tie-die V2' hack)", MACHINE_SUPPORTS_SAVE ) // inc. sitc fix, mods by some of the original developers, see backstory here http://www.robotron2084guidebook.com/gameplay/raceto100million/robo2k14_tie-die-romset/ (I guess there's a tie-die V1 before it was released to the public?) -GAME( 1982, joust, 0, williams_muxed, joust, williams_state, joust, ROT0, "Williams", "Joust (White/Green label)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, joustr, joust, williams_muxed, joust, williams_state, joust, ROT0, "Williams", "Joust (Solid Red label)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, joustwr, joust, williams_muxed, joust, williams_state, joust, ROT0, "Williams", "Joust (White/Red label)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, joust, 0, williams_muxed, joust, williams_state, joust, ROT0, "Williams", "Joust (White/Green label)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, joustr, joust, williams_muxed, joust, williams_state, joust, ROT0, "Williams", "Joust (Solid Red label)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, joustwr, joust, williams_muxed, joust, williams_state, joust, ROT0, "Williams", "Joust (White/Red label)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, bubbles, 0, williams, bubbles, williams_state, bubbles, ROT0, "Williams", "Bubbles", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, bubblesr, bubbles, williams, bubbles, williams_state, bubbles, ROT0, "Williams", "Bubbles (Solid Red label)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, bubblesp, bubbles, williams, bubbles, williams_state, bubbles, ROT0, "Williams", "Bubbles (prototype version)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, bubbles, 0, williams, bubbles, williams_state, bubbles, ROT0, "Williams", "Bubbles", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, bubblesr, bubbles, williams, bubbles, williams_state, bubbles, ROT0, "Williams", "Bubbles (Solid Red label)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, bubblesp, bubbles, williams, bubbles, williams_state, bubbles, ROT0, "Williams", "Bubbles (prototype version)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, splat, 0, williams_muxed, splat, williams_state, splat, ROT0, "Williams", "Splat!", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, splat, 0, williams_muxed, splat, williams_state, splat, ROT0, "Williams", "Splat!", MACHINE_SUPPORTS_SAVE ) GAME( 1982, sinistar, 0, sinistar, sinistar, williams_state, sinistar, ROT270, "Williams", "Sinistar (revision 3)", MACHINE_SUPPORTS_SAVE ) GAME( 1982, sinistar1, sinistar, sinistar, sinistar, williams_state, sinistar, ROT270, "Williams", "Sinistar (prototype version)", MACHINE_SUPPORTS_SAVE ) @@ -3226,14 +3226,14 @@ GAME( 1982, sinistar2, sinistar, sinistar, sinistar, williams_state, sini GAME( 1983, playball, 0, playball, playball, williams_state, playball, ROT270, "Williams", "PlayBall! (prototype)", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, blaster, 0, blaster, blaster, blaster_state, blaster, ROT0, "Williams / Vid Kidz", "Blaster", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, blastero, blaster, blaster, blaster, blaster_state, blaster, ROT0, "Williams / Vid Kidz", "Blaster (location test)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, blaster, 0, blaster, blaster, blaster_state, blaster, ROT0, "Williams / Vid Kidz", "Blaster", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, blastero, blaster, blaster, blaster, blaster_state, blaster, ROT0, "Williams / Vid Kidz", "Blaster (location test)", MACHINE_SUPPORTS_SAVE ) GAME( 1983, blasterkit, blaster, blastkit, blastkit, blaster_state, blaster, ROT0, "Williams / Vid Kidz", "Blaster (conversion kit)", MACHINE_SUPPORTS_SAVE ) // mono sound -GAME( 1985, spdball, 0, spdball, spdball, williams_state, spdball, ROT0, "Williams", "Speed Ball - Contest at Neonworld (prototype)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, spdball, 0, spdball, spdball, williams_state, spdball, ROT0, "Williams", "Speed Ball - Contest at Neonworld (prototype)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, alienar, 0, williams_muxed, alienar, williams_state, alienar, ROT0, "Duncan Brown", "Alien Arena", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, alienaru, alienar, williams_muxed, alienar, williams_state, alienaru, ROT0, "Duncan Brown", "Alien Arena (Stargate upgrade)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, alienar, 0, williams_muxed, alienar, williams_state, alienar, ROT0, "Duncan Brown", "Alien Arena", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, alienaru, alienar, williams_muxed, alienar, williams_state, alienaru, ROT0, "Duncan Brown", "Alien Arena (Stargate upgrade)", MACHINE_SUPPORTS_SAVE ) GAME( 1987, lottofun, 0, lottofun, lottofun, williams_state, lottofun, ROT0, "H.A.R. Management", "Lotto Fun", MACHINE_SUPPORTS_SAVE ) @@ -3243,9 +3243,9 @@ GAME( 1987, lottofun, 0, lottofun, lottofun, williams_state, lott GAME( 1983, mysticm, 0, mysticm, mysticm, williams2_state, mysticm, ROT0, "Williams", "Mystic Marathon", MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE) GAME( 1983, mysticmp, mysticm, mysticm, mysticm, williams2_state, mysticm, ROT0, "Williams", "Mystic Marathon (prototype)", MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE ) // newest roms are 'proto 6' ? -GAME( 1984, tshoot, 0, tshoot, tshoot, williams2_state, tshoot, ROT0, "Williams", "Turkey Shoot (prototype)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, tshoot, 0, tshoot, tshoot, williams2_state, tshoot, ROT0, "Williams", "Turkey Shoot (prototype)", MACHINE_SUPPORTS_SAVE ) GAME( 1984, inferno, 0, williams2, inferno, williams2_state, inferno, ROT0, "Williams", "Inferno (Williams)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, joust2, 0, joust2, joust2, joust2_state, joust2, ROT270, "Williams", "Joust 2 - Survival of the Fittest (revision 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, joust2r1, joust2, joust2, joust2, joust2_state, joust2, ROT270, "Williams", "Joust 2 - Survival of the Fittest (revision 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, joust2, 0, joust2, joust2, joust2_state, joust2, ROT270, "Williams", "Joust 2 - Survival of the Fittest (revision 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, joust2r1, joust2, joust2, joust2, joust2_state, joust2, ROT270, "Williams", "Joust 2 - Survival of the Fittest (revision 1)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/wink.cpp b/src/mame/drivers/wink.cpp index 3a9340da411..6ea8c59db63 100644 --- a/src/mame/drivers/wink.cpp +++ b/src/mame/drivers/wink.cpp @@ -354,7 +354,7 @@ void wink_state::machine_reset() m_sound_flag = 0; } -static MACHINE_CONFIG_START( wink, wink_state ) +static MACHINE_CONFIG_START( wink ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 12000000 / 4) MCFG_CPU_PROGRAM_MAP(wink_map) diff --git a/src/mame/drivers/wiping.cpp b/src/mame/drivers/wiping.cpp index 3ea4b14ff93..5f79e91e739 100644 --- a/src/mame/drivers/wiping.cpp +++ b/src/mame/drivers/wiping.cpp @@ -289,7 +289,7 @@ INTERRUPT_GEN_MEMBER(wiping_state::sound_timer_irq) -static MACHINE_CONFIG_START( wiping, wiping_state ) +static MACHINE_CONFIG_START( wiping ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80,18432000/6) /* 3.072 MHz */ @@ -391,5 +391,5 @@ ROM_END -GAME( 1982, wiping, 0, wiping, wiping, driver_device, 0, ROT90, "Nichibutsu", "Wiping", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, rugrats, wiping, wiping, rugrats, driver_device, 0, ROT90, "Nichibutsu", "Rug Rats", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, wiping, 0, wiping, wiping, wiping_state, 0, ROT90, "Nichibutsu", "Wiping", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, rugrats, wiping, wiping, rugrats, wiping_state, 0, ROT90, "Nichibutsu", "Rug Rats", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/witch.cpp b/src/mame/drivers/witch.cpp index 4adc5f27bb4..c220eed5371 100644 --- a/src/mame/drivers/witch.cpp +++ b/src/mame/drivers/witch.cpp @@ -761,7 +761,7 @@ void witch_state::machine_reset() m_motor_active = (ioport("YM_PortB")->read() & 0x08) ? 0 : 1; } -static MACHINE_CONFIG_START( witch, witch_state ) +static MACHINE_CONFIG_START( witch ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, CPU_CLOCK) /* 3 MHz */ MCFG_CPU_PROGRAM_MAP(map_main) diff --git a/src/mame/drivers/wiz.cpp b/src/mame/drivers/wiz.cpp index e2892d43d29..3bfe462151d 100644 --- a/src/mame/drivers/wiz.cpp +++ b/src/mame/drivers/wiz.cpp @@ -784,7 +784,7 @@ INTERRUPT_GEN_MEMBER(wiz_state::wiz_sound_interrupt) device.execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE); } -static MACHINE_CONFIG_START( kungfut, wiz_state ) +static MACHINE_CONFIG_START( kungfut ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 18432000/6) /* 3.072 MHz ??? */ @@ -1161,12 +1161,12 @@ DRIVER_INIT_MEMBER(wiz_state,stinger) } -GAME( 1983, stinger, 0, stinger, stinger, wiz_state, stinger, ROT90, "Seibu Denshi", "Stinger", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE ) -GAME( 1983, stinger2, stinger, stinger, stinger2, wiz_state, stinger, ROT90, "Seibu Denshi", "Stinger (prototype?)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE ) -GAME( 1984, scion, 0, scion, scion, driver_device, 0, ROT0, "Seibu Denshi", "Scion", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE ) -GAME( 1984, scionc, scion, scion, scion, driver_device, 0, ROT0, "Seibu Denshi (Cinematronics license)", "Scion (Cinematronics)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE ) -GAME( 1984, kungfut, 0, kungfut, kungfut, driver_device, 0, ROT0, "Seibu Kaihatsu", "Kung-Fu Taikun (set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_MICROPHONE ) -GAME( 1984, kungfuta, kungfut, kungfut, kungfut, driver_device, 0, ROT0, "Seibu Kaihatsu", "Kung-Fu Taikun (set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_MICROPHONE ) /* board was a bootleg but set might still be original */ -GAME( 1985, wiz, 0, wiz, wiz, driver_device, 0, ROT270, "Seibu Kaihatsu", "Wiz", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, wizt, wiz, wiz, wiz, driver_device, 0, ROT270, "Seibu Kaihatsu (Taito license)", "Wiz (Taito, set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, wizta, wiz, wiz, wiz, driver_device, 0, ROT270, "Seibu Kaihatsu (Taito license)", "Wiz (Taito, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, stinger, 0, stinger, stinger, wiz_state, stinger, ROT90, "Seibu Denshi", "Stinger", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE ) +GAME( 1983, stinger2, stinger, stinger, stinger2, wiz_state, stinger, ROT90, "Seibu Denshi", "Stinger (prototype?)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE ) +GAME( 1984, scion, 0, scion, scion, wiz_state, 0, ROT0, "Seibu Denshi", "Scion", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE ) +GAME( 1984, scionc, scion, scion, scion, wiz_state, 0, ROT0, "Seibu Denshi (Cinematronics license)", "Scion (Cinematronics)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE ) +GAME( 1984, kungfut, 0, kungfut, kungfut, wiz_state, 0, ROT0, "Seibu Kaihatsu", "Kung-Fu Taikun (set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_MICROPHONE ) +GAME( 1984, kungfuta, kungfut, kungfut, kungfut, wiz_state, 0, ROT0, "Seibu Kaihatsu", "Kung-Fu Taikun (set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_MICROPHONE ) /* board was a bootleg but set might still be original */ +GAME( 1985, wiz, 0, wiz, wiz, wiz_state, 0, ROT270, "Seibu Kaihatsu", "Wiz", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, wizt, wiz, wiz, wiz, wiz_state, 0, ROT270, "Seibu Kaihatsu (Taito license)", "Wiz (Taito, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, wizta, wiz, wiz, wiz, wiz_state, 0, ROT270, "Seibu Kaihatsu (Taito license)", "Wiz (Taito, set 2)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/wmg.cpp b/src/mame/drivers/wmg.cpp index 48bc22c9521..b7ca9caa796 100644 --- a/src/mame/drivers/wmg.cpp +++ b/src/mame/drivers/wmg.cpp @@ -489,7 +489,7 @@ DRIVER_INIT_MEMBER( wmg_state, wmg ) * Machine Driver * *************************************/ -static MACHINE_CONFIG_START( wmg, wmg_state ) +static MACHINE_CONFIG_START( wmg ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809, MASTER_CLOCK/3/4) diff --git a/src/mame/drivers/wms.cpp b/src/mame/drivers/wms.cpp index 01d9d085ce3..196d8b9f392 100644 --- a/src/mame/drivers/wms.cpp +++ b/src/mame/drivers/wms.cpp @@ -165,7 +165,7 @@ static GFXDECODE_START( wms ) GFXDECODE_END -static MACHINE_CONFIG_START( wms, wms_state ) +static MACHINE_CONFIG_START( wms ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I80188, MAIN_CLOCK ) // AMD N80C188-20, ( 40 MHz. internally divided by 2) MCFG_CPU_PROGRAM_MAP(wms_map) diff --git a/src/mame/drivers/wolfpack.cpp b/src/mame/drivers/wolfpack.cpp index 12e9b1afb54..d158671c222 100644 --- a/src/mame/drivers/wolfpack.cpp +++ b/src/mame/drivers/wolfpack.cpp @@ -304,7 +304,7 @@ static GFXDECODE_START( wolfpack ) GFXDECODE_END -static MACHINE_CONFIG_START( wolfpack, wolfpack_state ) +static MACHINE_CONFIG_START( wolfpack ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, 12096000 / 16) @@ -363,4 +363,4 @@ ROM_START( wolfpack ) ROM_END -GAME( 1978, wolfpack, 0, wolfpack, wolfpack, driver_device, 0, ORIENTATION_FLIP_Y, "Atari", "Wolf Pack (prototype)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1978, wolfpack, 0, wolfpack, wolfpack, wolfpack_state, 0, ORIENTATION_FLIP_Y, "Atari", "Wolf Pack (prototype)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/wpc_95.cpp b/src/mame/drivers/wpc_95.cpp index 6bc85f01c6d..8a64afddbbb 100644 --- a/src/mame/drivers/wpc_95.cpp +++ b/src/mame/drivers/wpc_95.cpp @@ -2243,7 +2243,7 @@ static INPUT_PORTS_START( ttt ) PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("UL Flipper Button") INPUT_PORTS_END -static MACHINE_CONFIG_START( wpc_95, wpc_95_state ) +static MACHINE_CONFIG_START( wpc_95 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809, XTAL_8MHz/4) MCFG_CPU_PROGRAM_MAP(wpc_95_map) diff --git a/src/mame/drivers/wpc_an.cpp b/src/mame/drivers/wpc_an.cpp index b0cdccad78b..226f887a25e 100644 --- a/src/mame/drivers/wpc_an.cpp +++ b/src/mame/drivers/wpc_an.cpp @@ -331,7 +331,7 @@ static MACHINE_CONFIG_FRAGMENT( wpc_an_base ) MCFG_DEFAULT_LAYOUT(layout_wpc_an) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( wpc_an, wpc_an_state ) +static MACHINE_CONFIG_START( wpc_an ) MCFG_FRAGMENT_ADD(wpc_an_base) MCFG_SPEAKER_STANDARD_MONO("speaker") @@ -341,7 +341,7 @@ static MACHINE_CONFIG_START( wpc_an, wpc_an_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( wpc_an_dd, wpc_an_state ) +static MACHINE_CONFIG_START( wpc_an_dd ) MCFG_FRAGMENT_ADD(wpc_an_base) MCFG_SPEAKER_STANDARD_MONO("speaker") @@ -685,21 +685,21 @@ ROM_START(tfa_13) ROM_FILL(0x0000,0x8000,0x00) ROM_END -GAME(1990, tfa_13, 0, wpc_an, wpc_an, wpc_an_state, wpc_an, ROT0, "Bally", "WPC Test Fixture: Alphanumeric (1.3)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1990, dd_p7, dd_l2, wpc_an_dd, wpc_an, wpc_an_state, wpc_an, ROT0, "Bally", "Dr. Dude (PA-7 WPC)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1990, dd_p06, dd_l2, wpc_an_dd, wpc_an, wpc_an_state, wpc_an, ROT0, "Bally", "Dr. Dude (PA-6 WPC)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1990, fh_l9, 0, wpc_an, wpc_an, wpc_an_state, wpc_an, ROT0, "Williams", "Funhouse L-9 (SL-2m)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1990, fh_l9b, fh_l9, wpc_an, wpc_an, wpc_an_state, wpc_an, ROT0, "Williams", "Funhouse L-9 (SL-2m) Bootleg Improved German translation", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1996, fh_905h, fh_l9, wpc_an, wpc_an, wpc_an_state, wpc_an, ROT0, "Williams", "Funhouse 9.05H", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1990, fh_l3, fh_l9, wpc_an, wpc_an, wpc_an_state, wpc_an, ROT0, "Williams", "Funhouse L-3", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1990, fh_l4, fh_l9, wpc_an, wpc_an, wpc_an_state, wpc_an, ROT0, "Williams", "Funhouse L-4", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1990, fh_l5, fh_l9, wpc_an, wpc_an, wpc_an_state, wpc_an, ROT0, "Williams", "Funhouse L-5", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1991, hd_l3, 0, wpc_an, wpc_an, wpc_an_state, wpc_an, ROT0, "Bally", "Harley Davidson (L-3)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1991, hd_l2, hd_l3, wpc_an, wpc_an, wpc_an_state, wpc_an, ROT0, "Bally", "Harley Davidson (L-2)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1991, hd_l1, hd_l3, wpc_an, wpc_an, wpc_an_state, wpc_an, ROT0, "Bally", "Harley Davidson (L-1)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1992, bop_l7, 0, wpc_an, wpc_an, wpc_an_state, wpc_an, ROT0, "Williams", "The Machine: Bride of Pinbot (L-7)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1991, bop_l6, bop_l7, wpc_an, wpc_an, wpc_an_state, wpc_an, ROT0, "Williams", "The Machine: Bride of Pinbot (L-6)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1991, bop_l5, bop_l7, wpc_an, wpc_an, wpc_an_state, wpc_an, ROT0, "Williams", "The Machine: Bride of Pinbot (L-5)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1991, bop_l4, bop_l7, wpc_an, wpc_an, wpc_an_state, wpc_an, ROT0, "Williams", "The Machine: Bride of Pinbot (L-4)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1991, bop_l3, bop_l7, wpc_an, wpc_an, wpc_an_state, wpc_an, ROT0, "Williams", "The Machine: Bride of Pinbot (L-3)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1991, bop_l2, bop_l7, wpc_an, wpc_an, wpc_an_state, wpc_an, ROT0, "Williams", "The Machine: Bride of Pinbot (L-2)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1990, tfa_13, 0, wpc_an, wpc_an, wpc_an_state, wpc_an, ROT0, "Bally", "WPC Test Fixture: Alphanumeric (1.3)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1990, dd_p7, dd_l2, wpc_an_dd, wpc_an, wpc_an_state, wpc_an, ROT0, "Bally", "Dr. Dude (PA-7 WPC)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1990, dd_p06, dd_l2, wpc_an_dd, wpc_an, wpc_an_state, wpc_an, ROT0, "Bally", "Dr. Dude (PA-6 WPC)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1990, fh_l9, 0, wpc_an, wpc_an, wpc_an_state, wpc_an, ROT0, "Williams", "Funhouse L-9 (SL-2m)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1990, fh_l9b, fh_l9, wpc_an, wpc_an, wpc_an_state, wpc_an, ROT0, "Williams", "Funhouse L-9 (SL-2m) Bootleg Improved German translation", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1996, fh_905h, fh_l9, wpc_an, wpc_an, wpc_an_state, wpc_an, ROT0, "Williams", "Funhouse 9.05H", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1990, fh_l3, fh_l9, wpc_an, wpc_an, wpc_an_state, wpc_an, ROT0, "Williams", "Funhouse L-3", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1990, fh_l4, fh_l9, wpc_an, wpc_an, wpc_an_state, wpc_an, ROT0, "Williams", "Funhouse L-4", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1990, fh_l5, fh_l9, wpc_an, wpc_an, wpc_an_state, wpc_an, ROT0, "Williams", "Funhouse L-5", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1991, hd_l3, 0, wpc_an, wpc_an, wpc_an_state, wpc_an, ROT0, "Bally", "Harley Davidson (L-3)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1991, hd_l2, hd_l3, wpc_an, wpc_an, wpc_an_state, wpc_an, ROT0, "Bally", "Harley Davidson (L-2)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1991, hd_l1, hd_l3, wpc_an, wpc_an, wpc_an_state, wpc_an, ROT0, "Bally", "Harley Davidson (L-1)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1992, bop_l7, 0, wpc_an, wpc_an, wpc_an_state, wpc_an, ROT0, "Williams", "The Machine: Bride of Pinbot (L-7)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1991, bop_l6, bop_l7, wpc_an, wpc_an, wpc_an_state, wpc_an, ROT0, "Williams", "The Machine: Bride of Pinbot (L-6)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1991, bop_l5, bop_l7, wpc_an, wpc_an, wpc_an_state, wpc_an, ROT0, "Williams", "The Machine: Bride of Pinbot (L-5)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1991, bop_l4, bop_l7, wpc_an, wpc_an, wpc_an_state, wpc_an, ROT0, "Williams", "The Machine: Bride of Pinbot (L-4)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1991, bop_l3, bop_l7, wpc_an, wpc_an, wpc_an_state, wpc_an, ROT0, "Williams", "The Machine: Bride of Pinbot (L-3)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1991, bop_l2, bop_l7, wpc_an, wpc_an, wpc_an_state, wpc_an, ROT0, "Williams", "The Machine: Bride of Pinbot (L-2)", MACHINE_IS_SKELETON_MECHANICAL) diff --git a/src/mame/drivers/wpc_dcs.cpp b/src/mame/drivers/wpc_dcs.cpp index 46956e32f69..6249a9ea5ce 100644 --- a/src/mame/drivers/wpc_dcs.cpp +++ b/src/mame/drivers/wpc_dcs.cpp @@ -420,7 +420,7 @@ static INPUT_PORTS_START( wpc_dcs ) INPUT_PORTS_END -static MACHINE_CONFIG_START( wpc_dcs, wpc_dcs_state ) +static MACHINE_CONFIG_START( wpc_dcs ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809, XTAL_8MHz/4) MCFG_CPU_PROGRAM_MAP(wpc_dcs_map) diff --git a/src/mame/drivers/wpc_dot.cpp b/src/mame/drivers/wpc_dot.cpp index 4a72919ffcf..f3c57bc10ab 100644 --- a/src/mame/drivers/wpc_dot.cpp +++ b/src/mame/drivers/wpc_dot.cpp @@ -301,7 +301,7 @@ uint32_t wpc_dot_state::screen_update(screen_device &screen, bitmap_rgb32 &bitma return 0; } -static MACHINE_CONFIG_START( wpc_dot, wpc_dot_state ) +static MACHINE_CONFIG_START( wpc_dot ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809, 2000000) MCFG_CPU_PROGRAM_MAP(wpc_dot_map) diff --git a/src/mame/drivers/wpc_flip1.cpp b/src/mame/drivers/wpc_flip1.cpp index 55498d58334..143f3732ba6 100644 --- a/src/mame/drivers/wpc_flip1.cpp +++ b/src/mame/drivers/wpc_flip1.cpp @@ -157,7 +157,7 @@ DRIVER_INIT_MEMBER(wpc_flip1_state,wpc_flip1) wpc_dot_state::init_wpc_dot(); } -static MACHINE_CONFIG_START( wpc_flip1, wpc_flip1_state ) +static MACHINE_CONFIG_START( wpc_flip1 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809, 2000000) MCFG_CPU_PROGRAM_MAP(wpc_flip1_map) diff --git a/src/mame/drivers/wpc_flip2.cpp b/src/mame/drivers/wpc_flip2.cpp index 8cbdd80b8d9..73b94996e1e 100644 --- a/src/mame/drivers/wpc_flip2.cpp +++ b/src/mame/drivers/wpc_flip2.cpp @@ -186,7 +186,7 @@ DRIVER_INIT_MEMBER(wpc_flip2_state,wpc_flip2) wpc_flip1_state::init_wpc_flip1(); } -static MACHINE_CONFIG_START( wpc_flip2, wpc_flip2_state ) +static MACHINE_CONFIG_START( wpc_flip2 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809, 2000000) MCFG_CPU_PROGRAM_MAP(wpc_flip2_map) @@ -837,52 +837,52 @@ ROM_START(lc_11) ROM_END -GAME(1993, br_l4, 0, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Bally", "Black Rose (L-4)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1992, br_p17, br_l4, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Bally", "Black Rose (SP-1)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1992, br_l1, br_l4, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Bally", "Black Rose (L-1)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1993, br_l3, br_l4, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Bally", "Black Rose (L-3)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1993, drac_l1, 0, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Williams", "Bram Stoker's Dracula (L-1)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1993, drac_p11, drac_l1, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Williams", "Bram Stoker's Dracula (P-11)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1993, cftbl_l4, 0, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Bally", "Creature from the Black Lagoon (L-4)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1993, cftbl_l3, cftbl_l4, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Bally", "Creature from the Black Lagoon (L-3,SP-1)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1992, dw_l2, 0, wpc_flip2, wpc_dw, wpc_flip2_state, wpc_flip2, ROT0, "Bally", "Doctor Who (L-2)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1992, dw_l1, dw_l2, wpc_flip2, wpc_dw, wpc_flip2_state, wpc_flip2, ROT0, "Bally", "Doctor Who (L-1)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1992, dw_p5, dw_l2, wpc_flip2, wpc_dw, wpc_flip2_state, wpc_flip2, ROT0, "Bally", "Doctor Who (P-5)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1992, ft_l5, 0, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Williams", "Fish Tales (L-5)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1992, ft_l3, ft_l5, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Williams", "Fish Tales (L-3)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1992, ft_l4, ft_l5, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Williams", "Fish Tales (L-4)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1992, ft_p4, ft_l5, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Williams", "Fish Tales (P-4)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1994, tafg_lx3, 0, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Bally", "The Addams Family Special Collectors Edition Gold (LX-3)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1994, tafg_h3, tafg_lx3, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Bally", "The Addams Family Special Collectors Edition (H-3)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1994, tafg_la2, tafg_lx3, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Bally", "The Addams Family Special Collectors Edition (LA-2)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1994, tafg_la3, tafg_lx3, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Bally", "The Addams Family Special Collectors Edition (LA-3)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1992, gw_l5, 0, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Williams", "The Getaway: High Speed II (L-5)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1992, gw_pb, gw_l5, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Williams", "The Getaway: High Speed II (P-B)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1992, gw_pc, gw_l5, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Williams", "The Getaway: High Speed II (P-C)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1992, gw_l1, gw_l5, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Williams", "The Getaway: High Speed II (L-1)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1992, gw_l2, gw_l5, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Williams", "The Getaway: High Speed II (L-2)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1992, gw_l3, gw_l5, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Williams", "The Getaway: High Speed II (L-3)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1992, gw_p7, gw_l5, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Williams", "The Getaway: High Speed II (P-7)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1998, tz_92, 0, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Bally", "Twilight Zone (9.2)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1998, tz_94h, tz_92, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Bally", "Twilight Zone (9.4H)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1998, tz_94ch, tz_92, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Bally", "Twilight Zone (9.4CH)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1993, tz_pa1, tz_92, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Bally", "Twilight Zone (PA-1)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1993, tz_p3, tz_92, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Bally", "Twilight Zone (P-3)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1993, tz_p4, tz_92, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Bally", "Twilight Zone (P-4)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1993, tz_l1, tz_92, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Bally", "Twilight Zone (L-1)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1993, tz_l2, tz_92, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Bally", "Twilight Zone (L-2)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1993, tz_ifpa, tz_92, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Bally", "Twilight Zone (IFPA rules)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1993, tz_l3, tz_92, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Bally", "Twilight Zone (L-3)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1993, tz_l4, tz_92, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Bally", "Twilight Zone (L-4)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1994, tz_h7, tz_92, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Bally", "Twilight Zone (H-7)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1994, tz_h8, tz_92, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Bally", "Twilight Zone (H-8)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2000, ww_l5, 0, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Williams", "White Water (L-5)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2000, ww_lh6, ww_l5, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Williams", "White Water (LH-6)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(2000, ww_lh5, ww_l5, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Williams", "White Water (LH-5)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1993, ww_l4, ww_l5, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Williams", "White Water (L-4)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1993, ww_l3, ww_l5, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Williams", "White Water (L-3)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1992, ww_l2, ww_l5, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Williams", "White Water (L-2)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1992, ww_p8, ww_l5, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Williams", "White Water (P-8 P-2 sound)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1992, ww_p1, ww_l5, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Williams", "White Water (P-8 P-1 sound)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1992, strik_l4, 0, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Williams", "Strike Master (L-4)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1996, lc_11, 0, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Bally", "League Champ (1.1)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1993, br_l4, 0, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Bally", "Black Rose (L-4)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1992, br_p17, br_l4, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Bally", "Black Rose (SP-1)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1992, br_l1, br_l4, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Bally", "Black Rose (L-1)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1993, br_l3, br_l4, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Bally", "Black Rose (L-3)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1993, drac_l1, 0, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Williams", "Bram Stoker's Dracula (L-1)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1993, drac_p11, drac_l1, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Williams", "Bram Stoker's Dracula (P-11)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1993, cftbl_l4, 0, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Bally", "Creature from the Black Lagoon (L-4)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1993, cftbl_l3, cftbl_l4, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Bally", "Creature from the Black Lagoon (L-3,SP-1)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1992, dw_l2, 0, wpc_flip2, wpc_dw, wpc_flip2_state, wpc_flip2, ROT0, "Bally", "Doctor Who (L-2)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1992, dw_l1, dw_l2, wpc_flip2, wpc_dw, wpc_flip2_state, wpc_flip2, ROT0, "Bally", "Doctor Who (L-1)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1992, dw_p5, dw_l2, wpc_flip2, wpc_dw, wpc_flip2_state, wpc_flip2, ROT0, "Bally", "Doctor Who (P-5)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1992, ft_l5, 0, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Williams", "Fish Tales (L-5)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1992, ft_l3, ft_l5, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Williams", "Fish Tales (L-3)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1992, ft_l4, ft_l5, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Williams", "Fish Tales (L-4)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1992, ft_p4, ft_l5, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Williams", "Fish Tales (P-4)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1994, tafg_lx3, 0, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Bally", "The Addams Family Special Collectors Edition Gold (LX-3)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1994, tafg_h3, tafg_lx3, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Bally", "The Addams Family Special Collectors Edition (H-3)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1994, tafg_la2, tafg_lx3, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Bally", "The Addams Family Special Collectors Edition (LA-2)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1994, tafg_la3, tafg_lx3, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Bally", "The Addams Family Special Collectors Edition (LA-3)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1992, gw_l5, 0, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Williams", "The Getaway: High Speed II (L-5)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1992, gw_pb, gw_l5, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Williams", "The Getaway: High Speed II (P-B)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1992, gw_pc, gw_l5, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Williams", "The Getaway: High Speed II (P-C)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1992, gw_l1, gw_l5, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Williams", "The Getaway: High Speed II (L-1)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1992, gw_l2, gw_l5, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Williams", "The Getaway: High Speed II (L-2)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1992, gw_l3, gw_l5, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Williams", "The Getaway: High Speed II (L-3)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1992, gw_p7, gw_l5, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Williams", "The Getaway: High Speed II (P-7)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1998, tz_92, 0, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Bally", "Twilight Zone (9.2)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1998, tz_94h, tz_92, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Bally", "Twilight Zone (9.4H)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1998, tz_94ch, tz_92, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Bally", "Twilight Zone (9.4CH)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1993, tz_pa1, tz_92, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Bally", "Twilight Zone (PA-1)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1993, tz_p3, tz_92, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Bally", "Twilight Zone (P-3)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1993, tz_p4, tz_92, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Bally", "Twilight Zone (P-4)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1993, tz_l1, tz_92, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Bally", "Twilight Zone (L-1)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1993, tz_l2, tz_92, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Bally", "Twilight Zone (L-2)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1993, tz_ifpa, tz_92, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Bally", "Twilight Zone (IFPA rules)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1993, tz_l3, tz_92, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Bally", "Twilight Zone (L-3)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1993, tz_l4, tz_92, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Bally", "Twilight Zone (L-4)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1994, tz_h7, tz_92, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Bally", "Twilight Zone (H-7)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1994, tz_h8, tz_92, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Bally", "Twilight Zone (H-8)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2000, ww_l5, 0, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Williams", "White Water (L-5)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2000, ww_lh6, ww_l5, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Williams", "White Water (LH-6)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(2000, ww_lh5, ww_l5, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Williams", "White Water (LH-5)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1993, ww_l4, ww_l5, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Williams", "White Water (L-4)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1993, ww_l3, ww_l5, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Williams", "White Water (L-3)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1992, ww_l2, ww_l5, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Williams", "White Water (L-2)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1992, ww_p8, ww_l5, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Williams", "White Water (P-8 P-2 sound)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1992, ww_p1, ww_l5, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Williams", "White Water (P-8 P-1 sound)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1992, strik_l4, 0, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Williams", "Strike Master (L-4)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1996, lc_11, 0, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Bally", "League Champ (1.1)", MACHINE_IS_SKELETON_MECHANICAL) diff --git a/src/mame/drivers/wpc_s.cpp b/src/mame/drivers/wpc_s.cpp index 40a2c9604ce..ac70e8469db 100644 --- a/src/mame/drivers/wpc_s.cpp +++ b/src/mame/drivers/wpc_s.cpp @@ -1967,7 +1967,7 @@ static INPUT_PORTS_START( tfs ) PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("UL Flipper Button") INPUT_PORTS_END -static MACHINE_CONFIG_START( wpc_s, wpc_s_state ) +static MACHINE_CONFIG_START( wpc_s ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809, XTAL_8MHz/4) MCFG_CPU_PROGRAM_MAP(wpc_s_map) diff --git a/src/mame/drivers/wrally.cpp b/src/mame/drivers/wrally.cpp index ee94f3a410e..93691026d7b 100644 --- a/src/mame/drivers/wrally.cpp +++ b/src/mame/drivers/wrally.cpp @@ -253,7 +253,7 @@ static GFXDECODE_START( wrally ) GFXDECODE_END -static MACHINE_CONFIG_START( wrally, wrally_state ) +static MACHINE_CONFIG_START( wrally ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000,XTAL_24MHz/2) /* verified on pcb */ MCFG_CPU_PROGRAM_MAP(wrally_map) @@ -283,7 +283,7 @@ static MACHINE_CONFIG_START( wrally, wrally_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", XTAL_1MHz, OKIM6295_PIN7_HIGH) /* verified on pcb */ + MCFG_OKIM6295_ADD("oki", XTAL_1MHz, PIN7_HIGH) /* verified on pcb */ MCFG_DEVICE_ADDRESS_MAP(AS_0, oki_map) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -390,7 +390,7 @@ ROM_START( wrallyat ) /* Board Marked 930217, Atari License */ ROM_END -GAME( 1993, wrally, 0, wrally, wrally, driver_device, 0, ROT0, "Gaelco", "World Rally (Version 1.0, Checksum 0E56)", MACHINE_SUPPORTS_SAVE ) /* Dallas DS5002FP power failure shows as: "Tension baja " */ -GAME( 1993, wrallya, wrally, wrally, wrally, driver_device, 0, ROT0, "Gaelco", "World Rally (Version 1.0, Checksum 3873)", MACHINE_SUPPORTS_SAVE ) /* Dallas DS5002FP power failure shows as: "Power Failure" */ -GAME( 1993, wrallyb, wrally, wrally, wrally, driver_device, 0, ROT0, "Gaelco", "World Rally (Version 1.0, Checksum 8AA2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, wrallyat, wrally, wrally, wrally, driver_device, 0, ROT0, "Gaelco (Atari license)", "World Rally (US, 930217)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, wrally, 0, wrally, wrally, wrally_state, 0, ROT0, "Gaelco", "World Rally (Version 1.0, Checksum 0E56)", MACHINE_SUPPORTS_SAVE ) /* Dallas DS5002FP power failure shows as: "Tension baja " */ +GAME( 1993, wrallya, wrally, wrally, wrally, wrally_state, 0, ROT0, "Gaelco", "World Rally (Version 1.0, Checksum 3873)", MACHINE_SUPPORTS_SAVE ) /* Dallas DS5002FP power failure shows as: "Power Failure" */ +GAME( 1993, wrallyb, wrally, wrally, wrally, wrally_state, 0, ROT0, "Gaelco", "World Rally (Version 1.0, Checksum 8AA2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, wrallyat, wrally, wrally, wrally, wrally_state, 0, ROT0, "Gaelco (Atari license)", "World Rally (US, 930217)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/wswan.cpp b/src/mame/drivers/wswan.cpp index 5790c1de45d..40658dfeaa5 100644 --- a/src/mame/drivers/wswan.cpp +++ b/src/mame/drivers/wswan.cpp @@ -108,7 +108,7 @@ static SLOT_INTERFACE_START(wswan_cart) SLOT_INTERFACE_INTERNAL("ws_eeprom", WS_ROM_EEPROM) SLOT_INTERFACE_END -static MACHINE_CONFIG_START( wswan, wswan_state ) +static MACHINE_CONFIG_START( wswan ) /* Basic machine hardware */ MCFG_CPU_ADD("maincpu", V30MZ, 3072000) MCFG_CPU_PROGRAM_MAP(wswan_mem) @@ -191,6 +191,6 @@ ROM_START( wscolor ) // ROM_LOAD_OPTIONAL( "wsc_bios.bin", 0x0000, 0x0001, NO_DUMP ) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME*/ -CONS( 1999, wswan, 0, 0, wswan, wswan, driver_device, 0, "Bandai", "WonderSwan", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -CONS( 2000, wscolor, wswan, 0, wscolor, wswan, driver_device, 0, "Bandai", "WonderSwan Color", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME*/ +CONS( 1999, wswan, 0, 0, wswan, wswan, wswan_state, 0, "Bandai", "WonderSwan", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +CONS( 2000, wscolor, wswan, 0, wscolor, wswan, wswan_state, 0, "Bandai", "WonderSwan Color", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/wwfsstar.cpp b/src/mame/drivers/wwfsstar.cpp index d54104fdbf1..0bab6f60f4d 100644 --- a/src/mame/drivers/wwfsstar.cpp +++ b/src/mame/drivers/wwfsstar.cpp @@ -417,7 +417,7 @@ GFXDECODE_END Machine Driver(s) *******************************************************************************/ -static MACHINE_CONFIG_START( wwfsstar, wwfsstar_state ) +static MACHINE_CONFIG_START( wwfsstar ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, CPU_CLOCK) @@ -447,7 +447,7 @@ static MACHINE_CONFIG_START( wwfsstar, wwfsstar_state ) MCFG_SOUND_ROUTE(0, "lspeaker", 0.45) MCFG_SOUND_ROUTE(1, "rspeaker", 0.45) - MCFG_OKIM6295_ADD("oki", XTAL_1_056MHz, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", XTAL_1_056MHz, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.47) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.47) MACHINE_CONFIG_END @@ -635,8 +635,8 @@ ROM_END -GAME( 1989, wwfsstar, 0, wwfsstar, wwfsstar, driver_device, 0, ROT0, "Technos Japan", "WWF Superstars (Europe)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, wwfsstaru, wwfsstar, wwfsstar, wwfsstar, driver_device, 0, ROT0, "Technos Japan", "WWF Superstars (US, Newer)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, wwfsstarua, wwfsstar, wwfsstar, wwfsstar, driver_device, 0, ROT0, "Technos Japan", "WWF Superstars (US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, wwfsstarj, wwfsstar, wwfsstar, wwfsstar, driver_device, 0, ROT0, "Technos Japan", "WWF Superstars (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, wwfsstarb, wwfsstar, wwfsstar, wwfsstar, driver_device, 0, ROT0, "bootleg", "WWF Superstars (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, wwfsstar, 0, wwfsstar, wwfsstar, wwfsstar_state, 0, ROT0, "Technos Japan", "WWF Superstars (Europe)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, wwfsstaru, wwfsstar, wwfsstar, wwfsstar, wwfsstar_state, 0, ROT0, "Technos Japan", "WWF Superstars (US, Newer)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, wwfsstarua, wwfsstar, wwfsstar, wwfsstar, wwfsstar_state, 0, ROT0, "Technos Japan", "WWF Superstars (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, wwfsstarj, wwfsstar, wwfsstar, wwfsstar, wwfsstar_state, 0, ROT0, "Technos Japan", "WWF Superstars (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, wwfsstarb, wwfsstar, wwfsstar, wwfsstar, wwfsstar_state, 0, ROT0, "bootleg", "WWF Superstars (bootleg)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/wyvernf0.cpp b/src/mame/drivers/wyvernf0.cpp index 7ff061a75f3..d91747569fa 100644 --- a/src/mame/drivers/wyvernf0.cpp +++ b/src/mame/drivers/wyvernf0.cpp @@ -631,7 +631,7 @@ MACHINE_RESET_MEMBER(wyvernf0_state,wyvernf0) m_mcu_ready = 0; } -static MACHINE_CONFIG_START( wyvernf0, wyvernf0_state ) +static MACHINE_CONFIG_START( wyvernf0 ) // basic machine hardware MCFG_CPU_ADD("maincpu", Z80, 6000000) // ? @@ -731,4 +731,4 @@ ROM_START( wyvernf0 ) ROM_LOAD( "a39_12.ic74", 0x6000, 0x2000, CRC(1cc389de) SHA1(4213484d3a82688f312811e7a5c4d128e40584c3) ) ROM_END -GAME( 1985, wyvernf0, 0, wyvernf0, wyvernf0, driver_device, 0, ROT270, "Taito", "Wyvern F-0", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_SOUND) +GAME( 1985, wyvernf0, 0, wyvernf0, wyvernf0, wyvernf0_state, 0, ROT270, "Taito", "Wyvern F-0", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_SOUND) diff --git a/src/mame/drivers/x07.cpp b/src/mame/drivers/x07.cpp index 598390b32af..d8e7abcb6fc 100644 --- a/src/mame/drivers/x07.cpp +++ b/src/mame/drivers/x07.cpp @@ -1477,7 +1477,7 @@ void x07_state::machine_reset() m_maincpu->set_state_int(Z80_PC, 0xc3c3); } -static MACHINE_CONFIG_START( x07, x07_state ) +static MACHINE_CONFIG_START( x07 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", NSC800, XTAL_15_36MHz / 4) diff --git a/src/mame/drivers/x1.cpp b/src/mame/drivers/x1.cpp index ef10422cf31..995fe38bc0e 100644 --- a/src/mame/drivers/x1.cpp +++ b/src/mame/drivers/x1.cpp @@ -2526,7 +2526,7 @@ static SLOT_INTERFACE_START( x1_floppies ) SLOT_INTERFACE("dd", FLOPPY_525_DD) SLOT_INTERFACE_END -static MACHINE_CONFIG_START( x1, x1_state ) +static MACHINE_CONFIG_START( x1 ) /* basic machine hardware */ MCFG_CPU_ADD("x1_cpu", Z80, MAIN_CLOCK/4) MCFG_CPU_PROGRAM_MAP(x1_mem) @@ -2730,9 +2730,9 @@ DRIVER_INIT_MEMBER(x1_state,x1_kanji) } -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1982, x1, 0, 0, x1, x1, driver_device, 0, "Sharp", "X1 (CZ-800C)", 0 ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1982, x1, 0, 0, x1, x1, x1_state, 0, "Sharp", "X1 (CZ-800C)", 0 ) // x1twin in x1twin.c COMP( 1984, x1turbo, x1, 0, x1turbo, x1turbo, x1_state, x1_kanji, "Sharp", "X1 Turbo (CZ-850C)", MACHINE_NOT_WORKING ) //model 10 COMP( 1985, x1turbo40, x1, 0, x1turbo, x1turbo, x1_state, x1_kanji, "Sharp", "X1 Turbo (CZ-862C)", 0 ) //model 40 -//COMP( 1986, x1turboz, x1, 0, x1turbo, x1turbo, x1_state, x1_kanji, "Sharp", "X1 TurboZ", MACHINE_NOT_WORKING ) +//COMP( 1986, x1turboz, x1, 0, x1turbo, x1turbo, x1_state, x1_kanji, "Sharp", "X1 TurboZ", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/x1twin.cpp b/src/mame/drivers/x1twin.cpp index 6d16b959d83..231c96afece 100644 --- a/src/mame/drivers/x1twin.cpp +++ b/src/mame/drivers/x1twin.cpp @@ -401,7 +401,7 @@ static SLOT_INTERFACE_START( x1_floppies ) SLOT_INTERFACE("dd", FLOPPY_525_DD) SLOT_INTERFACE_END -static MACHINE_CONFIG_START( x1twin, x1twin_state ) +static MACHINE_CONFIG_START( x1twin ) /* basic machine hardware */ MCFG_CPU_ADD("x1_cpu", Z80, X1_MAIN_CLOCK/4) MCFG_CPU_PROGRAM_MAP(x1_mem) @@ -446,7 +446,7 @@ static MACHINE_CONFIG_START( x1twin, x1twin_state ) MCFG_SCREEN_ADD("pce_screen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_RAW_PARAMS(PCE_MAIN_CLOCK/2, HUC6260_WPF, 70, 70 + 512 + 32, HUC6260_LPF, 14, 14+242) + MCFG_SCREEN_RAW_PARAMS(PCE_MAIN_CLOCK/2, huc6260_device::WPF, 70, 70 + 512 + 32, huc6260_device::LPF, 14, 14+242) MCFG_SCREEN_UPDATE_DRIVER(x1twin_state, screen_update_x1pce) MCFG_MC6845_ADD("crtc", H46505, "x1_screen", (VDP_CLOCK/48)) //unknown divider @@ -540,4 +540,4 @@ ROM_START( x1twin ) ROM_LOAD("kanji1.rom", 0x18000, 0x8000, BAD_DUMP CRC(5874f70b) SHA1(dad7ada1b70c45f1e9db11db273ef7b385ef4f17) ) ROM_END -COMP( 1986, x1twin, x1, 0, x1twin, x1twin, x1_state, x1_kanji,"Sharp", "X1 Twin (CZ-830C)", MACHINE_NOT_WORKING ) +COMP( 1986, x1twin, x1, 0, x1twin, x1twin, x1twin_state, x1_kanji,"Sharp", "X1 Twin (CZ-830C)", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/x68k.cpp b/src/mame/drivers/x68k.cpp index d382ee418f5..d22d206b9a5 100644 --- a/src/mame/drivers/x68k.cpp +++ b/src/mame/drivers/x68k.cpp @@ -1071,10 +1071,10 @@ WRITE8_MEMBER(x68k_state::x68030_adpcm_w) switch(offset) { case 0x00: - m_okim6258->okim6258_ctrl_w(space,0,data); + m_okim6258->ctrl_w(space,0,data); break; case 0x01: - m_okim6258->okim6258_data_w(space,0,data); + m_okim6258->data_w(space,0,data); break; } } @@ -1150,8 +1150,8 @@ static ADDRESS_MAP_START(x68k_map, AS_PROGRAM, 16, x68k_state ) // AM_RANGE(0xe8c000, 0xe8dfff) AM_READWRITE(x68k_printer_r, x68k_printer_w) AM_RANGE(0xe8e000, 0xe8ffff) AM_READWRITE(x68k_sysport_r, x68k_sysport_w) AM_RANGE(0xe90000, 0xe91fff) AM_DEVREADWRITE8("ym2151", ym2151_device, read, write, 0x00ff) - AM_RANGE(0xe92000, 0xe92001) AM_DEVREADWRITE8("okim6258", okim6258_device, okim6258_status_r, okim6258_ctrl_w, 0x00ff) - AM_RANGE(0xe92002, 0xe92003) AM_DEVREADWRITE8("okim6258", okim6258_device, okim6258_status_r, okim6258_data_w, 0x00ff) + AM_RANGE(0xe92000, 0xe92001) AM_DEVREADWRITE8("okim6258", okim6258_device, status_r, ctrl_w, 0x00ff) + AM_RANGE(0xe92002, 0xe92003) AM_DEVREADWRITE8("okim6258", okim6258_device, status_r, data_w, 0x00ff) AM_RANGE(0xe94000, 0xe94003) AM_DEVICE8("upd72065", upd72065_device, map, 0x00ff) AM_RANGE(0xe94004, 0xe94007) AM_READWRITE(x68k_fdc_r, x68k_fdc_w) AM_RANGE(0xe96000, 0xe9601f) AM_DEVREADWRITE("x68k_hdc", x68k_hdc_image_device, hdc_r, hdc_w) @@ -1188,8 +1188,8 @@ static ADDRESS_MAP_START(x68kxvi_map, AS_PROGRAM, 16, x68k_state ) // AM_RANGE(0xe8c000, 0xe8dfff) AM_READWRITE(x68k_printer_r, x68k_printer_w) AM_RANGE(0xe8e000, 0xe8ffff) AM_READWRITE(x68k_sysport_r, x68k_sysport_w) AM_RANGE(0xe90000, 0xe91fff) AM_DEVREADWRITE8("ym2151", ym2151_device, read, write, 0x00ff) - AM_RANGE(0xe92000, 0xe92001) AM_DEVREADWRITE8("okim6258", okim6258_device, okim6258_status_r, okim6258_ctrl_w, 0x00ff) - AM_RANGE(0xe92002, 0xe92003) AM_DEVREADWRITE8("okim6258", okim6258_device, okim6258_status_r, okim6258_data_w, 0x00ff) + AM_RANGE(0xe92000, 0xe92001) AM_DEVREADWRITE8("okim6258", okim6258_device, status_r, ctrl_w, 0x00ff) + AM_RANGE(0xe92002, 0xe92003) AM_DEVREADWRITE8("okim6258", okim6258_device, status_r, data_w, 0x00ff) AM_RANGE(0xe94000, 0xe94003) AM_DEVICE8("upd72065", upd72065_device, map, 0x00ff) AM_RANGE(0xe94004, 0xe94007) AM_READWRITE(x68k_fdc_r, x68k_fdc_w) // AM_RANGE(0xe96000, 0xe9601f) AM_DEVREADWRITE("x68k_hdc", x68k_hdc_image_device, hdc_r, hdc_w) @@ -1228,7 +1228,7 @@ static ADDRESS_MAP_START(x68030_map, AS_PROGRAM, 32, x68k_state ) // AM_RANGE(0xe8c000, 0xe8dfff) AM_READWRITE(x68k_printer_r, x68k_printer_w) AM_RANGE(0xe8e000, 0xe8ffff) AM_READWRITE16(x68k_sysport_r, x68k_sysport_w,0xffffffff) AM_RANGE(0xe90000, 0xe91fff) AM_DEVREADWRITE8("ym2151", ym2151_device, read, write, 0x00ff00ff) - AM_RANGE(0xe92000, 0xe92003) AM_DEVREAD8("okim6258", okim6258_device, okim6258_status_r, 0x00ff00ff) AM_WRITE8(x68030_adpcm_w, 0x00ff00ff) + AM_RANGE(0xe92000, 0xe92003) AM_DEVREAD8("okim6258", okim6258_device, status_r, 0x00ff00ff) AM_WRITE8(x68030_adpcm_w, 0x00ff00ff) AM_RANGE(0xe94000, 0xe94003) AM_DEVICE8("upd72065", upd72065_device, map, 0x00ff00ff) AM_RANGE(0xe94004, 0xe94007) AM_READWRITE16(x68k_fdc_r, x68k_fdc_w,0xffffffff) // AM_RANGE(0xe96000, 0xe9601f) AM_DEVREADWRITE16("x68k_hdc", x68k_hdc_image_device, hdc_r, hdc_w, 0xffffffff) @@ -1636,7 +1636,7 @@ static SLOT_INTERFACE_START(keyboard) SLOT_INTERFACE("x68k", X68K_KEYBOARD) SLOT_INTERFACE_END -static MACHINE_CONFIG_START( x68000, x68k_state ) +static MACHINE_CONFIG_START( x68000 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 10000000) /* 10 MHz */ MCFG_CPU_PROGRAM_MAP(x68k_map) @@ -1861,8 +1861,8 @@ ROM_START( x68030 ) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1987, x68000, 0, 0, x68000, x68000, x68k_state, x68000, "Sharp", "X68000", MACHINE_IMPERFECT_GRAPHICS ) -COMP( 1990, x68ksupr,x68000, 0, x68ksupr,x68000, x68k_state,x68000, "Sharp", "X68000 Super", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) -COMP( 1991, x68kxvi,x68000, 0, x68kxvi,x68000, x68k_state, x68kxvi,"Sharp", "X68000 XVI", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) -COMP( 1993, x68030, x68000, 0, x68030, x68000, x68k_state, x68030, "Sharp", "X68030", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1987, x68000, 0, 0, x68000, x68000, x68k_state, x68000, "Sharp", "X68000", MACHINE_IMPERFECT_GRAPHICS ) +COMP( 1990, x68ksupr, x68000, 0, x68ksupr, x68000, x68k_state, x68000, "Sharp", "X68000 Super", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) +COMP( 1991, x68kxvi, x68000, 0, x68kxvi, x68000, x68k_state, x68kxvi,"Sharp", "X68000 XVI", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) +COMP( 1993, x68030, x68000, 0, x68030, x68000, x68k_state, x68030, "Sharp", "X68030", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/xain.cpp b/src/mame/drivers/xain.cpp index 79ef95e19b1..2b63065723d 100644 --- a/src/mame/drivers/xain.cpp +++ b/src/mame/drivers/xain.cpp @@ -454,7 +454,7 @@ void xain_state::machine_start() save_item(NAME(m_vblank)); } -static MACHINE_CONFIG_START( xsleena, xain_state ) +static MACHINE_CONFIG_START( xsleena ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809, CPU_CLOCK) @@ -780,8 +780,8 @@ ROM_START( xsleenaba ) ROM_END -GAME( 1986, xsleena, 0, xsleena, xsleena, driver_device, 0, ROT0, "Technos Japan (Taito license)", "Xain'd Sleena (World)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, xsleenaj, xsleena, xsleena, xsleena, driver_device, 0, ROT0, "Technos Japan", "Xain'd Sleena (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, solrwarr, xsleena, xsleena, xsleena, driver_device, 0, ROT0, "Technos Japan (Taito / Memetron license)", "Solar-Warrior (US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, xsleenab, xsleena, xsleenab, xsleena, driver_device, 0, ROT0, "bootleg", "Xain'd Sleena (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, xsleenaba,xsleena, xsleenab, xsleena, driver_device, 0, ROT0, "bootleg", "Xain'd Sleena (bootleg, bugfixed)", MACHINE_SUPPORTS_SAVE ) // newer bootleg, fixes some of the issues with the other one +GAME( 1986, xsleena, 0, xsleena, xsleena, xain_state, 0, ROT0, "Technos Japan (Taito license)", "Xain'd Sleena (World)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, xsleenaj, xsleena, xsleena, xsleena, xain_state, 0, ROT0, "Technos Japan", "Xain'd Sleena (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, solrwarr, xsleena, xsleena, xsleena, xain_state, 0, ROT0, "Technos Japan (Taito / Memetron license)", "Solar-Warrior (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, xsleenab, xsleena, xsleenab, xsleena, xain_state, 0, ROT0, "bootleg", "Xain'd Sleena (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, xsleenaba, xsleena, xsleenab, xsleena, xain_state, 0, ROT0, "bootleg", "Xain'd Sleena (bootleg, bugfixed)", MACHINE_SUPPORTS_SAVE ) // newer bootleg, fixes some of the issues with the other one diff --git a/src/mame/drivers/xavix.cpp b/src/mame/drivers/xavix.cpp index c08f46819a0..1f04500145d 100644 --- a/src/mame/drivers/xavix.cpp +++ b/src/mame/drivers/xavix.cpp @@ -142,7 +142,7 @@ void xavix_state::machine_reset() } -static MACHINE_CONFIG_START( xavix, xavix_state ) +static MACHINE_CONFIG_START( xavix ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",G65816,MAIN_CLOCK/4) @@ -179,4 +179,4 @@ ROM_START( taitons1 ) ROM_LOAD( "taitonostalgia1.u3", 0x000000, 0x200000, CRC(25bd8c67) SHA1(a109cd2da6aa4596e3ca3abd1afce2d0001a473f) ) ROM_END -CONS( 2006, taitons1, 0, 0, xavix, xavix, driver_device, 0, "Bandai / SSD Company LTD / Taito", "Let's! TV Play Classic - Taito Nostalgia 1", MACHINE_IS_SKELETON ) +CONS( 2006, taitons1, 0, 0, xavix, xavix, xavix_state, 0, "Bandai / SSD Company LTD / Taito", "Let's! TV Play Classic - Taito Nostalgia 1", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/xbox.cpp b/src/mame/drivers/xbox.cpp index d6de4b2d6e5..095684f6193 100644 --- a/src/mame/drivers/xbox.cpp +++ b/src/mame/drivers/xbox.cpp @@ -130,11 +130,11 @@ void xbox_state::hack_eeprom() void xbox_state::machine_start() { - ohci_game_controller *usb_device; + ohci_game_controller_device *usb_device; xbox_base_state::machine_start(); xbox_devs.ide = machine().device("ide"); - usb_device = machine().device("ohci_gamepad"); + usb_device = machine().device("ohci_gamepad"); if (usb_device != nullptr) { usb_device->initialize(machine()); machine().device(":pci:02.0")->plug_usb_device(3, usb_device); // connect to root hub port 3, chihiro needs to use 1 and 2 @@ -165,7 +165,7 @@ SLOT_INTERFACE_START(xbox_ata_devices) SLOT_INTERFACE("cdrom", ATAPI_CDROM) SLOT_INTERFACE_END -static MACHINE_CONFIG_DERIVED_CLASS(xbox, xbox_base, xbox_state) +static MACHINE_CONFIG_DERIVED(xbox, xbox_base) MCFG_CPU_MODIFY("maincpu") MCFG_CPU_PROGRAM_MAP(xbox_map) MCFG_CPU_IO_MAP(xbox_map_io) @@ -231,4 +231,4 @@ ROM_END // For a generic system: // SYST(YEAR,NAME,PARENT,COMPAT,MACHINE,INPUT,CLASS,INIT,COMPANY,FULLNAME,FLAGS) -CONS( 2001, xbox, 0, 0, xbox, xbox, driver_device, 0, "Microsoft", "XBOX", MACHINE_IS_SKELETON ) +CONS( 2001, xbox, 0, 0, xbox, xbox, xbox_state, 0, "Microsoft", "XBOX", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/xerox820.cpp b/src/mame/drivers/xerox820.cpp index ba78325ab91..6f7debdd24f 100644 --- a/src/mame/drivers/xerox820.cpp +++ b/src/mame/drivers/xerox820.cpp @@ -545,7 +545,7 @@ GFXDECODE_END /* Machine Drivers */ -static MACHINE_CONFIG_START( xerox820, xerox820_state ) +static MACHINE_CONFIG_START( xerox820 ) /* basic machine hardware */ MCFG_CPU_ADD(Z80_TAG, Z80, XTAL_20MHz/8) MCFG_CPU_PROGRAM_MAP(xerox820_mem) @@ -612,14 +612,14 @@ static MACHINE_CONFIG_START( xerox820, xerox820_state ) MCFG_SOFTWARE_LIST_ADD("flop_list", "xerox820") MACHINE_CONFIG_END -static MACHINE_CONFIG_DERIVED_CLASS( bigboard, xerox820, bigboard_state ) +static MACHINE_CONFIG_DERIVED( bigboard, xerox820 ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_ADD("beeper", BEEP, 950) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) /* bigboard only */ MACHINE_CONFIG_END -static MACHINE_CONFIG_START( xerox820ii, xerox820ii_state ) +static MACHINE_CONFIG_START( xerox820ii ) /* basic machine hardware */ MCFG_CPU_ADD(Z80_TAG, Z80, XTAL_16MHz/4) MCFG_CPU_PROGRAM_MAP(xerox820ii_mem) @@ -829,10 +829,10 @@ ROM_END /* System Drivers */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1980, bigboard, 0, 0, bigboard, xerox820, driver_device, 0, "Digital Research Computers", "Big Board", 0 ) -COMP( 1981, x820, bigboard, 0, xerox820, xerox820, driver_device, 0, "Xerox", "Xerox 820", MACHINE_NO_SOUND_HW ) -COMP( 1982, mk82, bigboard, 0, bigboard, xerox820, driver_device, 0, "Scomar", "MK-82", 0 ) -COMP( 1983, x820ii, 0, 0, xerox820ii, xerox820, driver_device, 0, "Xerox", "Xerox 820-II", MACHINE_NOT_WORKING ) -COMP( 1983, x168, x820ii, 0, xerox168, xerox820, driver_device, 0, "Xerox", "Xerox 16/8", MACHINE_NOT_WORKING ) -COMP( 1983, mk83, x820ii, 0, mk83, xerox820, driver_device, 0, "Scomar", "MK-83", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1980, bigboard, 0, 0, bigboard, xerox820, bigboard_state, 0, "Digital Research Computers", "Big Board", 0 ) +COMP( 1981, x820, bigboard, 0, xerox820, xerox820, xerox820_state, 0, "Xerox", "Xerox 820", MACHINE_NO_SOUND_HW ) +COMP( 1982, mk82, bigboard, 0, bigboard, xerox820, bigboard_state, 0, "Scomar", "MK-82", 0 ) +COMP( 1983, x820ii, 0, 0, xerox820ii, xerox820, xerox820ii_state, 0, "Xerox", "Xerox 820-II", MACHINE_NOT_WORKING ) +COMP( 1983, x168, x820ii, 0, xerox168, xerox820, xerox820ii_state, 0, "Xerox", "Xerox 16/8", MACHINE_NOT_WORKING ) +COMP( 1983, mk83, x820ii, 0, mk83, xerox820, xerox820_state, 0, "Scomar", "MK-83", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW ) diff --git a/src/mame/drivers/xexex.cpp b/src/mame/drivers/xexex.cpp index 4b6464035af..0f6284e01ca 100644 --- a/src/mame/drivers/xexex.cpp +++ b/src/mame/drivers/xexex.cpp @@ -465,7 +465,7 @@ void xexex_state::machine_reset() m_k054539->init_flags(k054539_device::REVERSE_STEREO); } -static MACHINE_CONFIG_START( xexex, xexex_state ) +static MACHINE_CONFIG_START( xexex ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_32MHz/2) // 16MHz diff --git a/src/mame/drivers/xmen.cpp b/src/mame/drivers/xmen.cpp index e9e30cb13da..212c25e53cb 100644 --- a/src/mame/drivers/xmen.cpp +++ b/src/mame/drivers/xmen.cpp @@ -294,7 +294,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(xmen_state::xmen_scanline) } -static MACHINE_CONFIG_START( xmen, xmen_state ) +static MACHINE_CONFIG_START( xmen ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz) /* verified on pcb */ @@ -346,7 +346,7 @@ static MACHINE_CONFIG_START( xmen, xmen_state ) MCFG_SOUND_ROUTE(1, "rspeaker", 1.00) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( xmen6p, xmen_state ) +static MACHINE_CONFIG_START( xmen6p ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz) @@ -821,15 +821,15 @@ ROM_END /* Second "version" letter denotes players, A=2 players, B=4 players, C=6 players ??? - For the Asia versions both D & E are 4 players */ -GAME( 1992, xmen, 0, xmen, xmen, driver_device, 0, ROT0, "Konami", "X-Men (4 Players ver UBB)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, xmenj, xmen, xmen, xmen, driver_device, 0, ROT0, "Konami", "X-Men (4 Players ver JBA)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, xmene, xmen, xmen, xmen, driver_device, 0, ROT0, "Konami", "X-Men (4 Players ver EBA)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, xmena, xmen, xmen, xmen, driver_device, 0, ROT0, "Konami", "X-Men (4 Players ver AEA)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, xmenaa, xmen, xmen, xmen, driver_device, 0, ROT0, "Konami", "X-Men (4 Players ver ADA)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, xmen2pe, xmen, xmen, xmen2p, driver_device, 0, ROT0, "Konami", "X-Men (2 Players ver EAA)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, xmen2pu, xmen, xmen, xmen2p, driver_device, 0, ROT0, "Konami", "X-Men (2 Players ver UAB)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, xmen2pa, xmen, xmen, xmen2p, driver_device, 0, ROT0, "Konami", "X-Men (2 Players ver AAA)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, xmen2pj, xmen, xmen, xmen2p, driver_device, 0, ROT0, "Konami", "X-Men (2 Players ver JAA)", MACHINE_SUPPORTS_SAVE ) - -GAME( 1992, xmen6p, xmen, xmen6p, xmen6p, driver_device, 0, ROT0, "Konami", "X-Men (6 Players ver ECB)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1992, xmen6pu, xmen, xmen6p, xmen6p, driver_device, 0, ROT0, "Konami", "X-Men (6 Players ver UCB)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1992, xmen, 0, xmen, xmen, xmen_state, 0, ROT0, "Konami", "X-Men (4 Players ver UBB)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, xmenj, xmen, xmen, xmen, xmen_state, 0, ROT0, "Konami", "X-Men (4 Players ver JBA)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, xmene, xmen, xmen, xmen, xmen_state, 0, ROT0, "Konami", "X-Men (4 Players ver EBA)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, xmena, xmen, xmen, xmen, xmen_state, 0, ROT0, "Konami", "X-Men (4 Players ver AEA)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, xmenaa, xmen, xmen, xmen, xmen_state, 0, ROT0, "Konami", "X-Men (4 Players ver ADA)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, xmen2pe, xmen, xmen, xmen2p, xmen_state, 0, ROT0, "Konami", "X-Men (2 Players ver EAA)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, xmen2pu, xmen, xmen, xmen2p, xmen_state, 0, ROT0, "Konami", "X-Men (2 Players ver UAB)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, xmen2pa, xmen, xmen, xmen2p, xmen_state, 0, ROT0, "Konami", "X-Men (2 Players ver AAA)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, xmen2pj, xmen, xmen, xmen2p, xmen_state, 0, ROT0, "Konami", "X-Men (2 Players ver JAA)", MACHINE_SUPPORTS_SAVE ) + +GAME( 1992, xmen6p, xmen, xmen6p, xmen6p, xmen_state, 0, ROT0, "Konami", "X-Men (6 Players ver ECB)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1992, xmen6pu, xmen, xmen6p, xmen6p, xmen_state, 0, ROT0, "Konami", "X-Men (6 Players ver UCB)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/xor100.cpp b/src/mame/drivers/xor100.cpp index 9da4cd3ca6b..1b7cc7dbb03 100644 --- a/src/mame/drivers/xor100.cpp +++ b/src/mame/drivers/xor100.cpp @@ -512,7 +512,7 @@ void xor100_state::post_load() /* Machine Driver */ -static MACHINE_CONFIG_START( xor100, xor100_state ) +static MACHINE_CONFIG_START( xor100 ) /* basic machine hardware */ MCFG_CPU_ADD(Z80_TAG, Z80, XTAL_8MHz/2) MCFG_CPU_PROGRAM_MAP(xor100_mem) @@ -597,5 +597,5 @@ ROM_END /* System Drivers */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1980, xor100, 0, 0, xor100, xor100, driver_device, 0, "Xor Data Science", "XOR S-100-12", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1980, xor100, 0, 0, xor100, xor100, xor100_state, 0, "Xor Data Science", "XOR S-100-12", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) diff --git a/src/mame/drivers/xorworld.cpp b/src/mame/drivers/xorworld.cpp index 332cf52e6d1..9e436c2aaab 100644 --- a/src/mame/drivers/xorworld.cpp +++ b/src/mame/drivers/xorworld.cpp @@ -171,7 +171,7 @@ static GFXDECODE_START( xorworld ) GFXDECODE_END -static MACHINE_CONFIG_START( xorworld, xorworld_state ) +static MACHINE_CONFIG_START( xorworld ) // basic machine hardware MCFG_CPU_ADD("maincpu", M68000, 10000000) // 10 MHz MCFG_CPU_PROGRAM_MAP(xorworld_map) diff --git a/src/mame/drivers/xtheball.cpp b/src/mame/drivers/xtheball.cpp index 22638d9ebed..4f2044f4461 100644 --- a/src/mame/drivers/xtheball.cpp +++ b/src/mame/drivers/xtheball.cpp @@ -337,7 +337,7 @@ INPUT_PORTS_END * *************************************/ -static MACHINE_CONFIG_START( xtheball, xtheball_state ) +static MACHINE_CONFIG_START( xtheball ) MCFG_CPU_ADD("maincpu", TMS34010, 40000000) MCFG_CPU_PROGRAM_MAP(main_map) @@ -400,4 +400,4 @@ ROM_END * *************************************/ -GAME( 1991, xtheball, 0, xtheball, xtheball, driver_device, 0, ROT0, "Rare", "X the Ball", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, xtheball, 0, xtheball, xtheball, xtheball_state, 0, ROT0, "Rare", "X the Ball", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/xtom3d.cpp b/src/mame/drivers/xtom3d.cpp index 5e725ea928f..69d3bd02433 100644 --- a/src/mame/drivers/xtom3d.cpp +++ b/src/mame/drivers/xtom3d.cpp @@ -394,7 +394,7 @@ void xtom3d_state::machine_reset() membank("video_bank2")->set_base(memregion("video_bios")->base() + 0x4000); } -static MACHINE_CONFIG_START( xtom3d, xtom3d_state ) +static MACHINE_CONFIG_START( xtom3d ) MCFG_CPU_ADD("maincpu", PENTIUM2, 450000000/16) // actually Pentium II 450 MCFG_CPU_PROGRAM_MAP(xtom3d_map) MCFG_CPU_IO_MAP(xtom3d_io) @@ -431,4 +431,4 @@ ROM_START( xtom3d ) ROM_END -GAME(1999, xtom3d, 0, xtom3d, at_keyboard, driver_device, 0, ROT0, "Jamie System Development", "X Tom 3D", MACHINE_IS_SKELETON) +GAME(1999, xtom3d, 0, xtom3d, at_keyboard, xtom3d_state, 0, ROT0, "Jamie System Development", "X Tom 3D", MACHINE_IS_SKELETON) diff --git a/src/mame/drivers/xxmissio.cpp b/src/mame/drivers/xxmissio.cpp index 79d22d91cbb..09fcf163042 100644 --- a/src/mame/drivers/xxmissio.cpp +++ b/src/mame/drivers/xxmissio.cpp @@ -260,7 +260,7 @@ GFXDECODE_END /****************************************************************************/ -static MACHINE_CONFIG_START( xxmissio, xxmissio_state ) +static MACHINE_CONFIG_START( xxmissio ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80,12000000/4) /* 3.0MHz */ @@ -331,4 +331,4 @@ ROM_START( xxmissio ) ROM_LOAD16_BYTE( "xx11.4b", 0x0001, 0x8000, CRC(d9dd827c) SHA1(aea3a5abd871adf7f75ad4d6cc57eff0833135c7) ) ROM_END -GAME( 1986, xxmissio, 0, xxmissio, xxmissio, driver_device, 0, ROT90, "UPL", "XX Mission", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, xxmissio, 0, xxmissio, xxmissio, xxmissio_state, 0, ROT90, "UPL", "XX Mission", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/xybots.cpp b/src/mame/drivers/xybots.cpp index b564c0cedb8..70b3ce57cf4 100644 --- a/src/mame/drivers/xybots.cpp +++ b/src/mame/drivers/xybots.cpp @@ -180,7 +180,7 @@ GFXDECODE_END * *************************************/ -static MACHINE_CONFIG_START( xybots, xybots_state ) +static MACHINE_CONFIG_START( xybots ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, ATARI_CLOCK_14MHz/2) diff --git a/src/mame/drivers/xyonix.cpp b/src/mame/drivers/xyonix.cpp index bc72efd1d1c..6b674a975af 100644 --- a/src/mame/drivers/xyonix.cpp +++ b/src/mame/drivers/xyonix.cpp @@ -224,7 +224,7 @@ GFXDECODE_END /* MACHINE driver *************************************************************/ -static MACHINE_CONFIG_START( xyonix, xyonix_state ) +static MACHINE_CONFIG_START( xyonix ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80,16000000 / 4) /* 4 MHz ? */ @@ -275,4 +275,4 @@ ROM_END /* GAME drivers **************************************************************/ -GAME( 1989, xyonix, 0, xyonix, xyonix, driver_device, 0, ROT0, "Philko", "Xyonix", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, xyonix, 0, xyonix, xyonix, xyonix_state, 0, ROT0, "Philko", "Xyonix", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/yiear.cpp b/src/mame/drivers/yiear.cpp index 1ef1d9a0e5b..bdd7f3053b0 100644 --- a/src/mame/drivers/yiear.cpp +++ b/src/mame/drivers/yiear.cpp @@ -278,7 +278,7 @@ void yiear_state::machine_reset() m_yiear_nmi_enable = 0; } -static MACHINE_CONFIG_START( yiear, yiear_state ) +static MACHINE_CONFIG_START( yiear ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6809,XTAL_18_432MHz/12) /* verified on pcb */ @@ -367,5 +367,5 @@ ROM_END -GAME( 1985, yiear, 0, yiear, yiear, driver_device, 0, ROT0, "Konami", "Yie Ar Kung-Fu (program code I)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, yiear2, yiear, yiear, yiear, driver_device, 0, ROT0, "Konami", "Yie Ar Kung-Fu (program code G)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, yiear, 0, yiear, yiear, yiear_state, 0, ROT0, "Konami", "Yie Ar Kung-Fu (program code I)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, yiear2, yiear, yiear, yiear, yiear_state, 0, ROT0, "Konami", "Yie Ar Kung-Fu (program code G)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/ymmu100.cpp b/src/mame/drivers/ymmu100.cpp index da11e35f9ee..389c56869ff 100644 --- a/src/mame/drivers/ymmu100.cpp +++ b/src/mame/drivers/ymmu100.cpp @@ -431,7 +431,7 @@ static ADDRESS_MAP_START( mu100_iomap, AS_IO, 16, mu100_state ) AM_RANGE(h8_device::ADC_7, h8_device::ADC_7) AM_READ(adc7_r) ADDRESS_MAP_END -static MACHINE_CONFIG_START( mu100, mu100_state ) +static MACHINE_CONFIG_START( mu100 ) MCFG_CPU_ADD( "maincpu", H8S2655, XTAL_16MHz ) MCFG_CPU_PROGRAM_MAP( mu100_map ) MCFG_CPU_IO_MAP( mu100_iomap ) @@ -457,9 +457,6 @@ static MACHINE_CONFIG_START( mu100, mu100_state ) MCFG_H8_SCI_TX_CALLBACK(DEVWRITELINE(":mdout", midi_port_device, write_txd)) MACHINE_CONFIG_END -static MACHINE_CONFIG_DERIVED_CLASS( mu100r, mu100, mu100r_state ) -MACHINE_CONFIG_END - #define ROM_LOAD16_WORD_SWAP_BIOS(bios,name,offset,length,hash) \ ROMX_LOAD(name, offset, length, hash, ROM_GROUPWORD | ROM_REVERSE | ROM_BIOS(bios+1)) /* Note '+1' */ @@ -500,5 +497,5 @@ ROM_START( mu100r ) ROM_LOAD( "mu100-font.bin", 0x0000, 0x1000, BAD_DUMP CRC(a7d6c1d6) SHA1(9f0398d678bdf607cb34d83ee535f3b7fcc97c41) ) ROM_END -CONS( 1997, mu100, 0, 0, mu100, mu100, driver_device, 0, "Yamaha", "MU100", MACHINE_NOT_WORKING ) -CONS( 1997, mu100r, mu100, 0, mu100r, mu100, driver_device, 0, "Yamaha", "MU100 Rackable version", MACHINE_NOT_WORKING ) +CONS( 1997, mu100, 0, 0, mu100, mu100, mu100_state, 0, "Yamaha", "MU100", MACHINE_NOT_WORKING ) +CONS( 1997, mu100r, mu100, 0, mu100, mu100, mu100r_state, 0, "Yamaha", "MU100 Rackable version", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/yunsun16.cpp b/src/mame/drivers/yunsun16.cpp index ceb08fa8665..cd605dcf3dd 100644 --- a/src/mame/drivers/yunsun16.cpp +++ b/src/mame/drivers/yunsun16.cpp @@ -586,7 +586,7 @@ MACHINE_RESET_MEMBER(yunsun16_state, shocking) Magic Bubble ***************************************************************************/ -static MACHINE_CONFIG_START( magicbub, yunsun16_state ) +static MACHINE_CONFIG_START( magicbub ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz) @@ -619,7 +619,7 @@ static MACHINE_CONFIG_START( magicbub, yunsun16_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.80) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.80) - MCFG_OKIM6295_ADD("oki", XTAL_16MHz/16, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", XTAL_16MHz/16, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.80) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.80) MACHINE_CONFIG_END @@ -629,7 +629,7 @@ MACHINE_CONFIG_END Shocking ***************************************************************************/ -static MACHINE_CONFIG_START( shocking, yunsun16_state ) +static MACHINE_CONFIG_START( shocking ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz) @@ -652,7 +652,7 @@ static MACHINE_CONFIG_START( shocking, yunsun16_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_OKIM6295_ADD("oki", XTAL_16MHz/16, OKIM6295_PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", XTAL_16MHz/16, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) MCFG_DEVICE_ADDRESS_MAP(AS_0, oki_map) @@ -1020,10 +1020,10 @@ ROM_END GAME( 199?, magicbub, 0, magicbub, magicbub, yunsun16_state, magicbub, ROT0, "Yun Sung", "Magic Bubble", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) GAME( 199?, magicbuba, magicbub, magicbub, magicbua, yunsun16_state, magicbub, ROT0, "Yun Sung", "Magic Bubble (Adult version, YS-1302 PCB)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 199?, magicbubb, magicbub, shocking, magicbua, driver_device, 0, ROT0, "Yun Sung", "Magic Bubble (Adult version, YS-0211 PCB)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1996, paprazzi, 0, shocking, paprazzi, driver_device, 0, ROT270, "Yun Sung", "Paparazzi", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1997, shocking, 0, shocking, shocking, driver_device, 0, ROT0, "Yun Sung", "Shocking", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1997, shockingk, shocking, shocking, shocking, driver_device, 0, ROT0, "Yun Sung", "Shocking (Korea, set 1)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1997, shockingko, shocking, shocking, shocking, driver_device, 0, ROT0, "Yun Sung", "Shocking (Korea, set 2)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1998, bombkick, 0, shocking, bombkick, driver_device, 0, ROT0, "Yun Sung", "Bomb Kick (set 1)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1998, bombkicka, bombkick, shocking, bombkick, driver_device, 0, ROT0, "Yun Sung", "Bomb Kick (set 2)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 199?, magicbubb, magicbub, shocking, magicbua, yunsun16_state, 0, ROT0, "Yun Sung", "Magic Bubble (Adult version, YS-0211 PCB)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1996, paprazzi, 0, shocking, paprazzi, yunsun16_state, 0, ROT270, "Yun Sung", "Paparazzi", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1997, shocking, 0, shocking, shocking, yunsun16_state, 0, ROT0, "Yun Sung", "Shocking", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1997, shockingk, shocking, shocking, shocking, yunsun16_state, 0, ROT0, "Yun Sung", "Shocking (Korea, set 1)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1997, shockingko, shocking, shocking, shocking, yunsun16_state, 0, ROT0, "Yun Sung", "Shocking (Korea, set 2)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1998, bombkick, 0, shocking, bombkick, yunsun16_state, 0, ROT0, "Yun Sung", "Bomb Kick (set 1)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1998, bombkicka, bombkick, shocking, bombkick, yunsun16_state, 0, ROT0, "Yun Sung", "Bomb Kick (set 2)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/yunsung8.cpp b/src/mame/drivers/yunsung8.cpp index e198e9d649d..30837a49e7e 100644 --- a/src/mame/drivers/yunsung8.cpp +++ b/src/mame/drivers/yunsung8.cpp @@ -350,7 +350,7 @@ void yunsung8_state::machine_reset() } -static MACHINE_CONFIG_START( yunsung8, yunsung8_state ) +static MACHINE_CONFIG_START( yunsung8 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_16MHz/2) /* Z80B @ 8MHz? */ @@ -385,7 +385,7 @@ static MACHINE_CONFIG_START( yunsung8, yunsung8_state ) MCFG_SOUND_ADD("msm", MSM5205, XTAL_400kHz) /* verified on pcb */ MCFG_MSM5205_VCLK_CB(WRITELINE(yunsung8_state, adpcm_int)) /* interrupt function */ - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S96_4B) /* 4KHz, 4 Bits */ + MCFG_MSM5205_PRESCALER_SELECTOR(S96_4B) /* 4KHz, 4 Bits */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.80) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.80) MACHINE_CONFIG_END @@ -608,8 +608,8 @@ ROM_END ***************************************************************************/ -GAME( 1995, cannball, 0, yunsung8, cannball, driver_device, 0, ROT0, "Yun Sung / Soft Vision", "Cannon Ball (Yun Sung, horizontal)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, cannballv, cannball, yunsung8, cannbalv, driver_device, 0, ROT270, "Yun Sung / J&K Production", "Cannon Ball (Yun Sung, vertical)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, magix, 0, yunsung8, magix, driver_device, 0, ROT0, "Yun Sung", "Magix / Rock", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, magixb, magix, yunsung8, magix, driver_device, 0, ROT0, "Yun Sung", "Magix / Rock (no copyright message)", MACHINE_SUPPORTS_SAVE ) // was marked as bootleg, but has been seen on original PCBs -GAME( 1994?, rocktris, 0, yunsung8, rocktris, driver_device, 0, ROT0, "Yun Sung", "Rock Tris", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, cannball, 0, yunsung8, cannball, yunsung8_state, 0, ROT0, "Yun Sung / Soft Vision", "Cannon Ball (Yun Sung, horizontal)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, cannballv, cannball, yunsung8, cannbalv, yunsung8_state, 0, ROT270, "Yun Sung / J&K Production", "Cannon Ball (Yun Sung, vertical)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, magix, 0, yunsung8, magix, yunsung8_state, 0, ROT0, "Yun Sung", "Magix / Rock", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, magixb, magix, yunsung8, magix, yunsung8_state, 0, ROT0, "Yun Sung", "Magix / Rock (no copyright message)", MACHINE_SUPPORTS_SAVE ) // was marked as bootleg, but has been seen on original PCBs +GAME( 1994?, rocktris, 0, yunsung8, rocktris, yunsung8_state, 0, ROT0, "Yun Sung", "Rock Tris", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/z100.cpp b/src/mame/drivers/z100.cpp index 70c3f9fec9f..bdcf92bdbfe 100644 --- a/src/mame/drivers/z100.cpp +++ b/src/mame/drivers/z100.cpp @@ -177,7 +177,7 @@ public: required_device m_pia1; required_device m_picm; required_device m_pics; - required_device m_fdc; + required_device m_fdc; required_device m_floppy0; required_device m_floppy1; required_device m_floppy2; @@ -392,7 +392,7 @@ static ADDRESS_MAP_START(z100_io, AS_IO, 8, z100_state) // AM_RANGE (0xa4, 0xa7) gateway (reserved) // AM_RANGE (0xac, 0xad) Z-217 secondary disk controller (winchester) // AM_RANGE (0xae, 0xaf) Z-217 primary disk controller (winchester) - AM_RANGE (0xb0, 0xb3) AM_DEVREADWRITE("z207_fdc", fd1797_t, read, write) + AM_RANGE (0xb0, 0xb3) AM_DEVREADWRITE("z207_fdc", fd1797_device, read, write) AM_RANGE (0xb4, 0xb4) AM_WRITE(floppy_select_w) AM_RANGE (0xb5, 0xb5) AM_WRITE(floppy_motor_w) // z-207 secondary disk controller (wd1797) @@ -664,7 +664,7 @@ static SLOT_INTERFACE_START( z100_floppies ) SLOT_INTERFACE("dd", FLOPPY_525_DD) SLOT_INTERFACE_END -static MACHINE_CONFIG_START( z100, z100_state ) +static MACHINE_CONFIG_START( z100 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",I8088, XTAL_14_31818MHz/3) MCFG_CPU_PROGRAM_MAP(z100_mem) @@ -728,5 +728,5 @@ DRIVER_INIT_MEMBER(z100_state,z100) /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1982, z100, 0, 0, z100, z100, z100_state, z100, "Zenith", "Z-100", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1982, z100, 0, 0, z100, z100, z100_state, z100, "Zenith", "Z-100", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/z1013.cpp b/src/mame/drivers/z1013.cpp index ce59dec2464..cb081f103bf 100644 --- a/src/mame/drivers/z1013.cpp +++ b/src/mame/drivers/z1013.cpp @@ -362,7 +362,7 @@ static GFXDECODE_START( z1013 ) GFXDECODE_END /* Machine driver */ -static MACHINE_CONFIG_START( z1013, z1013_state ) +static MACHINE_CONFIG_START( z1013 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_1MHz ) MCFG_CPU_PROGRAM_MAP(z1013_mem) @@ -460,9 +460,9 @@ ROM_START( z1013k69 ) ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1985, z1013, 0, 0, z1013, z1013_8x4, driver_device, 0, "VEB Robotron Electronics Riesa", "Z1013 (matrix 8x4)", 0 ) -COMP( 1985, z1013a2, z1013, 0, z1013, z1013_8x8, driver_device, 0, "VEB Robotron Electronics Riesa", "Z1013 (matrix 8x8)", 0 ) -COMP( 1985, z1013k76, z1013, 0, z1013k76, z1013, driver_device, 0, "VEB Robotron Electronics Riesa", "Z1013 (K7659)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW) -COMP( 1985, z1013s60, z1013, 0, z1013k76, z1013_8x8, driver_device, 0, "VEB Robotron Electronics Riesa", "Z1013 (K7652/S6009)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW) -COMP( 1985, z1013k69, z1013, 0, z1013k76, z1013, driver_device, 0, "VEB Robotron Electronics Riesa", "Z1013 (K7669)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1985, z1013, 0, 0, z1013, z1013_8x4, z1013_state, 0, "VEB Robotron Electronics Riesa", "Z1013 (matrix 8x4)", 0 ) +COMP( 1985, z1013a2, z1013, 0, z1013, z1013_8x8, z1013_state, 0, "VEB Robotron Electronics Riesa", "Z1013 (matrix 8x8)", 0 ) +COMP( 1985, z1013k76, z1013, 0, z1013k76, z1013, z1013_state, 0, "VEB Robotron Electronics Riesa", "Z1013 (K7659)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW) +COMP( 1985, z1013s60, z1013, 0, z1013k76, z1013_8x8, z1013_state, 0, "VEB Robotron Electronics Riesa", "Z1013 (K7652/S6009)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW) +COMP( 1985, z1013k69, z1013, 0, z1013k76, z1013, z1013_state, 0, "VEB Robotron Electronics Riesa", "Z1013 (K7669)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW) diff --git a/src/mame/drivers/z80dev.cpp b/src/mame/drivers/z80dev.cpp index ac72881f1d7..a88275e75ed 100644 --- a/src/mame/drivers/z80dev.cpp +++ b/src/mame/drivers/z80dev.cpp @@ -105,7 +105,7 @@ INPUT_PORTS_START( z80dev ) PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("LD") PORT_CODE(KEYCODE_L) INPUT_PORTS_END -static MACHINE_CONFIG_START( z80dev, z80dev_state ) +static MACHINE_CONFIG_START( z80dev ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80, XTAL_4MHz) MCFG_CPU_PROGRAM_MAP(z80dev_mem) @@ -123,5 +123,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 198?, z80dev, 0, 0, z80dev, z80dev, driver_device, 0, "", "Z80 dev board", MACHINE_NO_SOUND_HW) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +COMP( 198?, z80dev, 0, 0, z80dev, z80dev, z80dev_state, 0, "", "Z80 dev board", MACHINE_NO_SOUND_HW) diff --git a/src/mame/drivers/z80ne.cpp b/src/mame/drivers/z80ne.cpp index 1bb5233afd3..d7c326a7cbf 100644 --- a/src/mame/drivers/z80ne.cpp +++ b/src/mame/drivers/z80ne.cpp @@ -409,7 +409,7 @@ static SLOT_INTERFACE_START( z80ne_floppies ) SLOT_INTERFACE("sssd", FLOPPY_525_SSSD) SLOT_INTERFACE_END -static MACHINE_CONFIG_START( z80ne, z80ne_state ) +static MACHINE_CONFIG_START( z80ne ) /* basic machine hardware */ MCFG_CPU_ADD("z80ne", Z80, Z80NE_CPU_SPEED_HZ) MCFG_CPU_PROGRAM_MAP(z80ne_mem) @@ -462,7 +462,7 @@ static MACHINE_CONFIG_DERIVED( z80net, z80ne ) MCFG_RAM_EXTRA_OPTIONS("1K") MACHINE_CONFIG_END -static MACHINE_CONFIG_START( z80netb, z80ne_state ) +static MACHINE_CONFIG_START( z80netb ) /* basic machine hardware */ MCFG_CPU_ADD("z80ne", Z80, Z80NE_CPU_SPEED_HZ) MCFG_CPU_PROGRAM_MAP(z80netb_mem) @@ -499,7 +499,7 @@ static MACHINE_CONFIG_START( z80netb, z80ne_state ) MCFG_RAM_EXTRA_OPTIONS("1K") MACHINE_CONFIG_END -static MACHINE_CONFIG_START( z80netf, z80ne_state ) +static MACHINE_CONFIG_START( z80netf ) /* basic machine hardware */ MCFG_CPU_ADD("z80ne", Z80, Z80NE_CPU_SPEED_HZ) MCFG_CPU_PROGRAM_MAP(z80netf_mem) @@ -594,8 +594,8 @@ ROM_START( z80netf ) ROM_LOAD( "ep2390.ic6", 0x14C00, 0x0400, CRC(28d28eee) SHA1(b80f75c1ac4905ae369ecbc9b9ce120cc85502ed) ) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1980, z80ne, 0, 0, z80ne, z80ne, z80ne_state, z80ne, "Nuova Elettronica", "Z80NE", MACHINE_NO_SOUND_HW) -COMP( 1980, z80net, z80ne, 0, z80net, z80net, z80ne_state, z80net, "Nuova Elettronica", "Z80NE + LX.388", MACHINE_NO_SOUND_HW) -COMP( 1980, z80netb, z80ne, 0, z80netb, z80net, z80ne_state, z80netb, "Nuova Elettronica", "Z80NE + LX.388 + Basic 16k", MACHINE_NO_SOUND_HW) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1980, z80ne, 0, 0, z80ne, z80ne, z80ne_state, z80ne, "Nuova Elettronica", "Z80NE", MACHINE_NO_SOUND_HW) +COMP( 1980, z80net, z80ne, 0, z80net, z80net, z80ne_state, z80net, "Nuova Elettronica", "Z80NE + LX.388", MACHINE_NO_SOUND_HW) +COMP( 1980, z80netb, z80ne, 0, z80netb, z80net, z80ne_state, z80netb, "Nuova Elettronica", "Z80NE + LX.388 + Basic 16k", MACHINE_NO_SOUND_HW) COMP( 1980, z80netf, z80ne, 0, z80netf, z80netf, z80ne_state, z80netf, "Nuova Elettronica", "Z80NE + LX.388 + LX.390", MACHINE_NO_SOUND_HW) diff --git a/src/mame/drivers/z88.cpp b/src/mame/drivers/z88.cpp index 87ec399d8a0..07f616d8847 100644 --- a/src/mame/drivers/z88.cpp +++ b/src/mame/drivers/z88.cpp @@ -20,6 +20,7 @@ #include "emu.h" #include "includes/z88.h" + #include "screen.h" #include "speaker.h" @@ -620,7 +621,7 @@ static SLOT_INTERFACE_START(z88_cart) SLOT_INTERFACE("1024kflash", Z88_1024K_FLASH) // 1024KB Flash cart SLOT_INTERFACE_END -static MACHINE_CONFIG_START( z88, z88_state ) +static MACHINE_CONFIG_START( z88 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_9_8304MHz/3) // divided by 3 through the uPD65031 MCFG_CPU_PROGRAM_MAP(z88_mem) @@ -751,15 +752,15 @@ ROM_START(z88tr) ROMX_LOAD("z88v317tk.rom", 0x00000, 0x20000, CRC(9468d677) SHA1(8d76e94f43846c736bf257d15d531c2df1e20fae), ROM_BIOS(1) ) ROM_END -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1988, z88 , 0, 0, z88, z88 , driver_device, 0, "Cambridge Computers", "Z88" , MACHINE_NOT_WORKING) -COMP( 1988, z88de, z88, 0, z88, z88de, driver_device, 0, "Cambridge Computers", "Z88 (German)" , MACHINE_NOT_WORKING) -COMP( 1988, z88es, z88, 0, z88, z88es, driver_device, 0, "Cambridge Computers", "Z88 (Spanish)" , MACHINE_NOT_WORKING) -COMP( 1988, z88fr, z88, 0, z88, z88fr, driver_device, 0, "Cambridge Computers", "Z88 (French)" , MACHINE_NOT_WORKING) -COMP( 1988, z88it, z88, 0, z88, z88it, driver_device, 0, "Cambridge Computers", "Z88 (Italian)" , MACHINE_NOT_WORKING) -COMP( 1988, z88se, z88, 0, z88, z88se, driver_device, 0, "Cambridge Computers", "Z88 (Swedish)" , MACHINE_NOT_WORKING) -COMP( 1988, z88fi, z88, 0, z88, z88se, driver_device, 0, "Cambridge Computers", "Z88 (Finnish)" , MACHINE_NOT_WORKING) -COMP( 1988, z88no, z88, 0, z88, z88no, driver_device, 0, "Cambridge Computers", "Z88 (Norwegian)", MACHINE_NOT_WORKING) -COMP( 1988, z88dk, z88, 0, z88, z88no, driver_device, 0, "Cambridge Computers", "Z88 (Danish)" , MACHINE_NOT_WORKING) -COMP( 1988, z88ch, z88, 0, z88, z88ch, driver_device, 0, "Cambridge Computers", "Z88 (Swiss)" , MACHINE_NOT_WORKING) -COMP( 1988, z88tr, z88, 0, z88, z88tr, driver_device, 0, "Cambridge Computers", "Z88 (Turkish)" , MACHINE_NOT_WORKING) +/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ +COMP( 1988, z88 , 0, 0, z88, z88 , z88_state, 0, "Cambridge Computers", "Z88" , MACHINE_NOT_WORKING) +COMP( 1988, z88de, z88, 0, z88, z88de, z88_state, 0, "Cambridge Computers", "Z88 (German)" , MACHINE_NOT_WORKING) +COMP( 1988, z88es, z88, 0, z88, z88es, z88_state, 0, "Cambridge Computers", "Z88 (Spanish)" , MACHINE_NOT_WORKING) +COMP( 1988, z88fr, z88, 0, z88, z88fr, z88_state, 0, "Cambridge Computers", "Z88 (French)" , MACHINE_NOT_WORKING) +COMP( 1988, z88it, z88, 0, z88, z88it, z88_state, 0, "Cambridge Computers", "Z88 (Italian)" , MACHINE_NOT_WORKING) +COMP( 1988, z88se, z88, 0, z88, z88se, z88_state, 0, "Cambridge Computers", "Z88 (Swedish)" , MACHINE_NOT_WORKING) +COMP( 1988, z88fi, z88, 0, z88, z88se, z88_state, 0, "Cambridge Computers", "Z88 (Finnish)" , MACHINE_NOT_WORKING) +COMP( 1988, z88no, z88, 0, z88, z88no, z88_state, 0, "Cambridge Computers", "Z88 (Norwegian)", MACHINE_NOT_WORKING) +COMP( 1988, z88dk, z88, 0, z88, z88no, z88_state, 0, "Cambridge Computers", "Z88 (Danish)" , MACHINE_NOT_WORKING) +COMP( 1988, z88ch, z88, 0, z88, z88ch, z88_state, 0, "Cambridge Computers", "Z88 (Swiss)" , MACHINE_NOT_WORKING) +COMP( 1988, z88tr, z88, 0, z88, z88tr, z88_state, 0, "Cambridge Computers", "Z88 (Turkish)" , MACHINE_NOT_WORKING) diff --git a/src/mame/drivers/z9001.cpp b/src/mame/drivers/z9001.cpp index e842e268ebc..725a5b6d748 100644 --- a/src/mame/drivers/z9001.cpp +++ b/src/mame/drivers/z9001.cpp @@ -56,7 +56,7 @@ public: { } - DECLARE_WRITE8_MEMBER(kbd_put); + void kbd_put(u8 data); DECLARE_WRITE8_MEMBER(port88_w); DECLARE_WRITE_LINE_MEMBER(cass_w); TIMER_DEVICE_CALLBACK_MEMBER(timer_callback); @@ -187,7 +187,7 @@ static const gfx_layout z9001_charlayout = 8*8 /* every char takes 8 bytes */ }; -WRITE8_MEMBER( z9001_state::kbd_put ) +void z9001_state::kbd_put(u8 data) { m_maincpu->space(AS_PROGRAM).write_byte(0x0025, data); } @@ -197,7 +197,7 @@ static GFXDECODE_START( z9001 ) GFXDECODE_END -static MACHINE_CONFIG_START( z9001, z9001_state ) +static MACHINE_CONFIG_START( z9001 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80, XTAL_9_8304MHz / 4) MCFG_CPU_PROGRAM_MAP(z9001_mem) @@ -225,7 +225,7 @@ static MACHINE_CONFIG_START( z9001, z9001_state ) /* Devices */ MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0) - MCFG_GENERIC_KEYBOARD_CB(WRITE8(z9001_state, kbd_put)) + MCFG_GENERIC_KEYBOARD_CB(PUT(z9001_state, kbd_put)) MCFG_TIMER_DRIVER_ADD_PERIODIC("z9001_timer", z9001_state, timer_callback, attotime::from_msec(10)) MCFG_DEVICE_ADD("z80pio1", Z80PIO, XTAL_9_8304MHz / 4) @@ -304,10 +304,10 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1984, z9001, 0, 0, z9001, z9001, driver_device, 0, "Robotron", "Z9001 (KC 85/1.10)", MACHINE_NOT_WORKING ) -COMP( 1986, kc85_111, z9001, 0, z9001, z9001, driver_device, 0, "Robotron", "KC 85/1.11", MACHINE_NOT_WORKING ) -COMP( 1987, kc87_10, z9001, 0, z9001, z9001, driver_device, 0, "Robotron", "KC 87.10", MACHINE_NOT_WORKING ) -COMP( 1987, kc87_11, z9001, 0, z9001, z9001, driver_device, 0, "Robotron", "KC 87.11", MACHINE_NOT_WORKING ) -COMP( 1987, kc87_20, z9001, 0, z9001, z9001, driver_device, 0, "Robotron", "KC 87.20", MACHINE_NOT_WORKING ) -COMP( 1987, kc87_21, z9001, 0, z9001, z9001, driver_device, 0, "Robotron", "KC 87.21", MACHINE_NOT_WORKING ) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 1984, z9001, 0, 0, z9001, z9001, z9001_state, 0, "Robotron", "Z9001 (KC 85/1.10)", MACHINE_NOT_WORKING ) +COMP( 1986, kc85_111, z9001, 0, z9001, z9001, z9001_state, 0, "Robotron", "KC 85/1.11", MACHINE_NOT_WORKING ) +COMP( 1987, kc87_10, z9001, 0, z9001, z9001, z9001_state, 0, "Robotron", "KC 87.10", MACHINE_NOT_WORKING ) +COMP( 1987, kc87_11, z9001, 0, z9001, z9001, z9001_state, 0, "Robotron", "KC 87.11", MACHINE_NOT_WORKING ) +COMP( 1987, kc87_20, z9001, 0, z9001, z9001, z9001_state, 0, "Robotron", "KC 87.20", MACHINE_NOT_WORKING ) +COMP( 1987, kc87_21, z9001, 0, z9001, z9001, z9001_state, 0, "Robotron", "KC 87.21", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/zac2650.cpp b/src/mame/drivers/zac2650.cpp index 1bc2e0f61f5..8a401fe20cb 100644 --- a/src/mame/drivers/zac2650.cpp +++ b/src/mame/drivers/zac2650.cpp @@ -239,7 +239,7 @@ static GFXDECODE_START( tinvader ) GFXDECODE_SCALE( nullptr, 0x1F00, s2636_character, 0, 2, 8, 6 ) /* dynamic */ GFXDECODE_END -static MACHINE_CONFIG_START( tinvader, zac2650_state ) +static MACHINE_CONFIG_START( tinvader ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", S2650, 3800000/4) @@ -318,6 +318,6 @@ ROM_START( dodgem ) ROM_END -GAMEL(1979?,tinv2650, 0, tinvader, tinvader, driver_device, 0, ROT270, "Zaccaria / Zelco", "The Invaders", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_tinv2650 ) -GAME( 1979?,sia2650, tinv2650, tinvader, sinvader, driver_device, 0, ROT270, "bootleg (Sidam)", "Super Invader Attack (bootleg of The Invaders)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // 1980? -GAME( 1979, dodgem, 0, tinvader, dodgem, driver_device, 0, ROT0, "Zaccaria", "Dodgem", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAMEL(1979?,tinv2650, 0, tinvader, tinvader, zac2650_state, 0, ROT270, "Zaccaria / Zelco", "The Invaders", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_tinv2650 ) +GAME( 1979?,sia2650, tinv2650, tinvader, sinvader, zac2650_state, 0, ROT270, "bootleg (Sidam)", "Super Invader Attack (bootleg of The Invaders)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // 1980? +GAME( 1979, dodgem, 0, tinvader, dodgem, zac2650_state, 0, ROT0, "Zaccaria", "Dodgem", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/zac_1.cpp b/src/mame/drivers/zac_1.cpp index d0e9146b2ad..b8adb03a90f 100644 --- a/src/mame/drivers/zac_1.cpp +++ b/src/mame/drivers/zac_1.cpp @@ -243,7 +243,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(zac_1_state::zac_1_outtimer) } } -static MACHINE_CONFIG_START( zac_1, zac_1_state ) +static MACHINE_CONFIG_START( zac_1 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", S2650, 6000000/2) // no xtal, just 2 chips forming a random oscillator MCFG_CPU_PROGRAM_MAP(zac_1_map) @@ -448,15 +448,15 @@ ROM_START(wsports) ROM_LOAD ( "ws5.bin", 0x1000, 0x0400, CRC(5ef51ced) SHA1(390579d0482ceabf87924f7718ef33e336726d92)) ROM_END -GAME(1981, ewf, 0, zac_1, zac_1, driver_device, 0, ROT0, "Zaccaria", "Earth Wind Fire", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -GAME(1980, firemntn, 0, zac_1, zac_1, driver_device, 0, ROT0, "Zaccaria", "Fire Mountain", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -GAME(1978, futurwld, 0, zac_1, zac_1, driver_device, 0, ROT0, "Zaccaria", "Future World", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -GAME(1979, hotwheel, 0, zac_1, zac_1, driver_device, 0, ROT0, "Zaccaria", "Hot Wheels", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -GAME(1978, hod, 0, zac_1, zac_1, driver_device, 0, ROT0, "Zaccaria", "House of Diamonds", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -GAME(1981, locomotp, 0, locomotp, zac_1, driver_device, 0, ROT0, "Zaccaria", "Locomotion", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -GAME(1979, strapids, 0, zac_1, zac_1, driver_device, 0, ROT0, "Zaccaria", "Shooting the Rapids", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -GAME(1980, sshtlzac, 0, zac_1, zac_1, driver_device, 0, ROT0, "Zaccaria", "Space Shuttle (Zaccaria)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -GAME(1980, stargod, 0, zac_1, zac_1, driver_device, 0, ROT0, "Zaccaria", "Star God", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -GAME(1980, stargoda, stargod, zac_1, zac_1, driver_device, 0, ROT0, "Zaccaria", "Star God (alternate sound)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -GAME(1980, stargodb, stargod, zac_1, zac_1, driver_device, 0, ROT0, "Zaccaria", "Star God (variable replay score)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -GAME(1978, wsports, 0, zac_1, zac_1, driver_device, 0, ROT0, "Zaccaria", "Winter Sports", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +GAME(1981, ewf, 0, zac_1, zac_1, zac_1_state, 0, ROT0, "Zaccaria", "Earth Wind Fire", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +GAME(1980, firemntn, 0, zac_1, zac_1, zac_1_state, 0, ROT0, "Zaccaria", "Fire Mountain", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +GAME(1978, futurwld, 0, zac_1, zac_1, zac_1_state, 0, ROT0, "Zaccaria", "Future World", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +GAME(1979, hotwheel, 0, zac_1, zac_1, zac_1_state, 0, ROT0, "Zaccaria", "Hot Wheels", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +GAME(1978, hod, 0, zac_1, zac_1, zac_1_state, 0, ROT0, "Zaccaria", "House of Diamonds", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +GAME(1981, locomotp, 0, locomotp, zac_1, zac_1_state, 0, ROT0, "Zaccaria", "Locomotion", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +GAME(1979, strapids, 0, zac_1, zac_1, zac_1_state, 0, ROT0, "Zaccaria", "Shooting the Rapids", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +GAME(1980, sshtlzac, 0, zac_1, zac_1, zac_1_state, 0, ROT0, "Zaccaria", "Space Shuttle (Zaccaria)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +GAME(1980, stargod, 0, zac_1, zac_1, zac_1_state, 0, ROT0, "Zaccaria", "Star God", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +GAME(1980, stargoda, stargod, zac_1, zac_1, zac_1_state, 0, ROT0, "Zaccaria", "Star God (alternate sound)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +GAME(1980, stargodb, stargod, zac_1, zac_1, zac_1_state, 0, ROT0, "Zaccaria", "Star God (variable replay score)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +GAME(1978, wsports, 0, zac_1, zac_1, zac_1_state, 0, ROT0, "Zaccaria", "Winter Sports", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_NO_SOUND) diff --git a/src/mame/drivers/zac_2.cpp b/src/mame/drivers/zac_2.cpp index b8843aafc83..b0499522c15 100644 --- a/src/mame/drivers/zac_2.cpp +++ b/src/mame/drivers/zac_2.cpp @@ -201,7 +201,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(zac_2_state::zac_2_outtimer) } } -static MACHINE_CONFIG_START( zac_2, zac_2_state ) +static MACHINE_CONFIG_START( zac_2 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", S2650, 6000000/2) MCFG_CPU_PROGRAM_MAP(zac_2_map) @@ -966,44 +966,44 @@ ROM_START(zankor) ROM_LOAD("zan_ic6.128", 0x8000, 0x4000, CRC(13a5b8d4) SHA1(d8c976b3f5e9c7cded0922feefa1531c59432515)) ROM_END -GAME(1986, bbeltzac, 0, zac_2, zac_2, driver_device, 0, ROT0, "Zaccaria", "Black Belt (Zaccaria)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1985, clown, 0, zac_2, zac_2, driver_device, 0, ROT0, "Zaccaria", "Clown", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1984, dvlrider, 0, zac_2, zac_2, driver_device, 0, ROT0, "Zaccaria", "Devil Riders", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1984, dvlrideri, dvlrider, zac_2, zac_2, driver_device, 0, ROT0, "Zaccaria", "Devil Riders (Italian speech)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1984, dvlriderg, dvlrider, zac_2, zac_2, driver_device, 0, ROT0, "Zaccaria", "Devil Riders (German speech)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1984, dvlriderf, dvlrider, zac_2, zac_2, driver_device, 0, ROT0, "Zaccaria", "Devil Riders (French speech)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1983, farfalla, 0, zac_2, zac_2, driver_device, 0, ROT0, "Zaccaria", "Farfalla", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1983, farfallai, farfalla, zac_2, zac_2, driver_device, 0, ROT0, "Zaccaria", "Farfalla (Italian speech)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1983, farfallag, farfalla, zac_2, zac_2, driver_device, 0, ROT0, "Zaccaria", "Farfalla (German speech)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1984, mcastle, 0, zac_2, zac_2, driver_device, 0, ROT0, "Zaccaria", "Magic Castle", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1984, mcastlei, mcastle, zac_2, zac_2, driver_device, 0, ROT0, "Zaccaria", "Magic Castle (Italian speech)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1984, mcastleg, mcastle, zac_2, zac_2, driver_device, 0, ROT0, "Zaccaria", "Magic Castle (German speech)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1984, mcastlef, mcastle, zac_2, zac_2, driver_device, 0, ROT0, "Zaccaria", "Magic Castle (French speech)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1986, mexico, 0, zac_2, zac_2, driver_device, 0, ROT0, "Zaccaria", "Mexico 86 (German speech)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1987, nstrphnx, 0, zac_2, zac_2, driver_device, 0, ROT0, "Zaccaria", "New Star's Phoenix (Italian speech)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1983, pinchamp, 0, zac_2, zac_2, driver_device, 0, ROT0, "Zaccaria", "Pinball Champ", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1983, pinchampg, pinchamp, zac_2, zac_2, driver_device, 0, ROT0, "Zaccaria", "Pinball Champ (German speech)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1983, pinchampi, pinchamp, zac_2, zac_2, driver_device, 0, ROT0, "Zaccaria", "Pinball Champ (Italian speech)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1983, pinchamp7, pinchamp, zac_2, zac_2, driver_device, 0, ROT0, "Zaccaria", "Pinball Champ (7 digits)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1983, pinchamp7g, pinchamp, zac_2, zac_2, driver_device, 0, ROT0, "Zaccaria", "Pinball Champ (7 digits German speech)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1983, pinchamp7i, pinchamp, zac_2, zac_2, driver_device, 0, ROT0, "Zaccaria", "Pinball Champ (7 digits Italian speech)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1985, poolcham, 0, zac_2, zac_2, driver_device, 0, ROT0, "Zaccaria", "Pool Champion", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1985, poolchami, poolcham, zac_2, zac_2, driver_device, 0, ROT0, "Zaccaria", "Pool Champion (Italian speech)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1985, poolchama, poolcham, zac_2, zac_2, driver_device, 0, ROT0, "Zaccaria", "Pool Champion (alternate sound)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1985, robot, 0, zac_2, zac_2, driver_device, 0, ROT0, "Zaccaria", "Robot (Zaccaria)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1985, roboti, robot, zac_2, zac_2, driver_device, 0, ROT0, "Zaccaria", "Robot (Zaccaria, Italian speech)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1985, robotg, robot, zac_2, zac_2, driver_device, 0, ROT0, "Zaccaria", "Robot (Zaccaria, German speech)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1985, robotf, robot, zac_2, zac_2, driver_device, 0, ROT0, "Zaccaria", "Robot (Zaccaria, French speech)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1987, scram_tp, 0, zac_2, zac_2, driver_device, 0, ROT0, "Tecnoplay", "Scramble (Pinball)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1982, socrking, 0, zac_2, zac_2, driver_device, 0, ROT0, "Zaccaria", "Soccer Kings", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1982, socrkinga, socrking, zac_2, zac_2, driver_device, 0, ROT0, "Zaccaria", "Soccer Kings (alternate set)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1982, socrkingi, socrking, zac_2, zac_2, driver_device, 0, ROT0, "Zaccaria", "Soccer Kings (Italian speech)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1982, socrkingg, socrking, zac_2, zac_2, driver_device, 0, ROT0, "Zaccaria", "Soccer Kings (German speech)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1987, spookyp, 0, zac_2, zac_2, driver_device, 0, ROT0, "Zaccaria", "Spooky", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1987, spookyi, spookyp, zac_2, zac_2, driver_device, 0, ROT0, "Zaccaria", "Spooky (Italian speech)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1987, strsphnx, 0, zac_2, zac_2, driver_device, 0, ROT0, "Zaccaria", "Star's Phoenix (Italian speech)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1987, thndrman, 0, zac_2, zac_2, driver_device, 0, ROT0, "Apple Time", "Thunder Man", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1983, tmachzac, 0, zac_2, zac_2, driver_device, 0, ROT0, "Zaccaria", "Time Machine (Zaccaria)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1983, tmachzacg, tmachzac, zac_2, zac_2, driver_device, 0, ROT0, "Zaccaria", "Time Machine (Zaccaria, German speech)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1983, tmachzacf, tmachzac, zac_2, zac_2, driver_device, 0, ROT0, "Zaccaria", "Time Machine (Zaccaria, French speech)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1986, zankor, 0, zac_2, zac_2, driver_device, 0, ROT0, "Zaccaria", "Zankor (Italian speech)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1986, bbeltzac, 0, zac_2, zac_2, zac_2_state, 0, ROT0, "Zaccaria", "Black Belt (Zaccaria)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1985, clown, 0, zac_2, zac_2, zac_2_state, 0, ROT0, "Zaccaria", "Clown", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1984, dvlrider, 0, zac_2, zac_2, zac_2_state, 0, ROT0, "Zaccaria", "Devil Riders", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1984, dvlrideri, dvlrider, zac_2, zac_2, zac_2_state, 0, ROT0, "Zaccaria", "Devil Riders (Italian speech)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1984, dvlriderg, dvlrider, zac_2, zac_2, zac_2_state, 0, ROT0, "Zaccaria", "Devil Riders (German speech)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1984, dvlriderf, dvlrider, zac_2, zac_2, zac_2_state, 0, ROT0, "Zaccaria", "Devil Riders (French speech)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1983, farfalla, 0, zac_2, zac_2, zac_2_state, 0, ROT0, "Zaccaria", "Farfalla", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1983, farfallai, farfalla, zac_2, zac_2, zac_2_state, 0, ROT0, "Zaccaria", "Farfalla (Italian speech)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1983, farfallag, farfalla, zac_2, zac_2, zac_2_state, 0, ROT0, "Zaccaria", "Farfalla (German speech)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1984, mcastle, 0, zac_2, zac_2, zac_2_state, 0, ROT0, "Zaccaria", "Magic Castle", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1984, mcastlei, mcastle, zac_2, zac_2, zac_2_state, 0, ROT0, "Zaccaria", "Magic Castle (Italian speech)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1984, mcastleg, mcastle, zac_2, zac_2, zac_2_state, 0, ROT0, "Zaccaria", "Magic Castle (German speech)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1984, mcastlef, mcastle, zac_2, zac_2, zac_2_state, 0, ROT0, "Zaccaria", "Magic Castle (French speech)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1986, mexico, 0, zac_2, zac_2, zac_2_state, 0, ROT0, "Zaccaria", "Mexico 86 (German speech)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1987, nstrphnx, 0, zac_2, zac_2, zac_2_state, 0, ROT0, "Zaccaria", "New Star's Phoenix (Italian speech)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1983, pinchamp, 0, zac_2, zac_2, zac_2_state, 0, ROT0, "Zaccaria", "Pinball Champ", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1983, pinchampg, pinchamp, zac_2, zac_2, zac_2_state, 0, ROT0, "Zaccaria", "Pinball Champ (German speech)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1983, pinchampi, pinchamp, zac_2, zac_2, zac_2_state, 0, ROT0, "Zaccaria", "Pinball Champ (Italian speech)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1983, pinchamp7, pinchamp, zac_2, zac_2, zac_2_state, 0, ROT0, "Zaccaria", "Pinball Champ (7 digits)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1983, pinchamp7g, pinchamp, zac_2, zac_2, zac_2_state, 0, ROT0, "Zaccaria", "Pinball Champ (7 digits German speech)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1983, pinchamp7i, pinchamp, zac_2, zac_2, zac_2_state, 0, ROT0, "Zaccaria", "Pinball Champ (7 digits Italian speech)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1985, poolcham, 0, zac_2, zac_2, zac_2_state, 0, ROT0, "Zaccaria", "Pool Champion", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1985, poolchami, poolcham, zac_2, zac_2, zac_2_state, 0, ROT0, "Zaccaria", "Pool Champion (Italian speech)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1985, poolchama, poolcham, zac_2, zac_2, zac_2_state, 0, ROT0, "Zaccaria", "Pool Champion (alternate sound)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1985, robot, 0, zac_2, zac_2, zac_2_state, 0, ROT0, "Zaccaria", "Robot (Zaccaria)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1985, roboti, robot, zac_2, zac_2, zac_2_state, 0, ROT0, "Zaccaria", "Robot (Zaccaria, Italian speech)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1985, robotg, robot, zac_2, zac_2, zac_2_state, 0, ROT0, "Zaccaria", "Robot (Zaccaria, German speech)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1985, robotf, robot, zac_2, zac_2, zac_2_state, 0, ROT0, "Zaccaria", "Robot (Zaccaria, French speech)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1987, scram_tp, 0, zac_2, zac_2, zac_2_state, 0, ROT0, "Tecnoplay", "Scramble (Pinball)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1982, socrking, 0, zac_2, zac_2, zac_2_state, 0, ROT0, "Zaccaria", "Soccer Kings", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1982, socrkinga, socrking, zac_2, zac_2, zac_2_state, 0, ROT0, "Zaccaria", "Soccer Kings (alternate set)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1982, socrkingi, socrking, zac_2, zac_2, zac_2_state, 0, ROT0, "Zaccaria", "Soccer Kings (Italian speech)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1982, socrkingg, socrking, zac_2, zac_2, zac_2_state, 0, ROT0, "Zaccaria", "Soccer Kings (German speech)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1987, spookyp, 0, zac_2, zac_2, zac_2_state, 0, ROT0, "Zaccaria", "Spooky", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1987, spookyi, spookyp, zac_2, zac_2, zac_2_state, 0, ROT0, "Zaccaria", "Spooky (Italian speech)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1987, strsphnx, 0, zac_2, zac_2, zac_2_state, 0, ROT0, "Zaccaria", "Star's Phoenix (Italian speech)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1987, thndrman, 0, zac_2, zac_2, zac_2_state, 0, ROT0, "Apple Time", "Thunder Man", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1983, tmachzac, 0, zac_2, zac_2, zac_2_state, 0, ROT0, "Zaccaria", "Time Machine (Zaccaria)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1983, tmachzacg, tmachzac, zac_2, zac_2, zac_2_state, 0, ROT0, "Zaccaria", "Time Machine (Zaccaria, German speech)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1983, tmachzacf, tmachzac, zac_2, zac_2, zac_2_state, 0, ROT0, "Zaccaria", "Time Machine (Zaccaria, French speech)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1986, zankor, 0, zac_2, zac_2, zac_2_state, 0, ROT0, "Zaccaria", "Zankor (Italian speech)", MACHINE_IS_SKELETON_MECHANICAL) diff --git a/src/mame/drivers/zac_proto.cpp b/src/mame/drivers/zac_proto.cpp index 2a34b478a14..aa2faf52ab6 100644 --- a/src/mame/drivers/zac_proto.cpp +++ b/src/mame/drivers/zac_proto.cpp @@ -233,7 +233,7 @@ void zac_proto_state::machine_reset() output().set_digit_value(10, 0x3f); // units shows zero all the time } -static MACHINE_CONFIG_START( zac_proto, zac_proto_state ) +static MACHINE_CONFIG_START( zac_proto ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", INS8060, XTAL_4MHz / 2) // Using SC/MP II chip which has an internal /2 circuit. MCFG_CPU_PROGRAM_MAP(zac_proto_map) @@ -279,6 +279,6 @@ ROM_START(spacecty) ROM_LOAD("zsc4.dat", 0x1400, 0x0400, CRC(69e0bb95) SHA1(d9a1d0159bf49445b0ece0f9d7806ed80657c2b2)) ROM_END -GAME(1978, skijump, 0, zac_proto, zac_proto, driver_device, 0, ROT0, "Zaccaria", "Ski Jump", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) -GAME(1979, spacecty, 0, zac_proto, zac_proto, driver_device, 0, ROT0, "Zaccaria", "Space City", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) -GAME(1978, strike, 0, zac_proto, zac_proto, driver_device, 0, ROT0, "Zaccaria", "Strike", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) +GAME(1978, skijump, 0, zac_proto, zac_proto, zac_proto_state, 0, ROT0, "Zaccaria", "Ski Jump", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) +GAME(1979, spacecty, 0, zac_proto, zac_proto, zac_proto_state, 0, ROT0, "Zaccaria", "Space City", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) +GAME(1978, strike, 0, zac_proto, zac_proto, zac_proto_state, 0, ROT0, "Zaccaria", "Strike", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) diff --git a/src/mame/drivers/zaccaria.cpp b/src/mame/drivers/zaccaria.cpp index 6332f15e54c..c45538846b3 100644 --- a/src/mame/drivers/zaccaria.cpp +++ b/src/mame/drivers/zaccaria.cpp @@ -338,7 +338,7 @@ INTERRUPT_GEN_MEMBER(zaccaria_state::vblank_irq) } -static MACHINE_CONFIG_START( zaccaria, zaccaria_state ) +static MACHINE_CONFIG_START( zaccaria ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80,XTAL_18_432MHz/6) /* verified on pcb */ @@ -534,7 +534,7 @@ ROM_END -GAME( 1983, monymony, 0, zaccaria, monymony, driver_device, 0, ROT90, "Zaccaria", "Money Money", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1984, jackrabt, 0, zaccaria, jackrabt, driver_device, 0, ROT90, "Zaccaria", "Jack Rabbit (set 1)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1984, jackrabt2, jackrabt, zaccaria, jackrabt, driver_device, 0, ROT90, "Zaccaria", "Jack Rabbit (set 2)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1984, jackrabts, jackrabt, zaccaria, jackrabt, driver_device, 0, ROT90, "Zaccaria", "Jack Rabbit (special)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1983, monymony, 0, zaccaria, monymony, zaccaria_state, 0, ROT90, "Zaccaria", "Money Money", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1984, jackrabt, 0, zaccaria, jackrabt, zaccaria_state, 0, ROT90, "Zaccaria", "Jack Rabbit (set 1)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1984, jackrabt2, jackrabt, zaccaria, jackrabt, zaccaria_state, 0, ROT90, "Zaccaria", "Jack Rabbit (set 2)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1984, jackrabts, jackrabt, zaccaria, jackrabt, zaccaria_state, 0, ROT90, "Zaccaria", "Jack Rabbit (special)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/zapcomputer.cpp b/src/mame/drivers/zapcomputer.cpp index 4819ae7242a..455531b56e9 100644 --- a/src/mame/drivers/zapcomputer.cpp +++ b/src/mame/drivers/zapcomputer.cpp @@ -156,7 +156,7 @@ void zapcomp_state::machine_start() { } -static MACHINE_CONFIG_START( zapcomp, zapcomp_state ) +static MACHINE_CONFIG_START( zapcomp ) // basic machine hardware MCFG_CPU_ADD("maincpu", Z80, XTAL_2MHz) MCFG_CPU_PROGRAM_MAP(zapcomp_mem) @@ -171,5 +171,5 @@ ROM_START( zapcomp ) ROM_LOAD("zap.rom", 0x0000, 0x0400, CRC(3f4416e9) SHA1(d6493707bfba1a1e1e551f8144194afa5bda3316) ) ROM_END -// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS -COMP( 1981, zapcomp, 0, 0, zapcomp, zapcomp, driver_device, 0, "Steve Ciarcia / BYTE / McGRAW-HILL", "ZAP - Z80 Applications Processor", MACHINE_NO_SOUND_HW ) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 1981, zapcomp, 0, 0, zapcomp, zapcomp, zapcomp_state, 0, "Steve Ciarcia / BYTE / McGRAW-HILL", "ZAP - Z80 Applications Processor", MACHINE_NO_SOUND_HW ) diff --git a/src/mame/drivers/zaurus.cpp b/src/mame/drivers/zaurus.cpp index fe86bec9ec1..15920f5eddd 100644 --- a/src/mame/drivers/zaurus.cpp +++ b/src/mame/drivers/zaurus.cpp @@ -1747,7 +1747,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(zaurus_state::rtc_irq_callback) } // TODO: main CPU differs greatly between versions! -static MACHINE_CONFIG_START( zaurus, zaurus_state ) +static MACHINE_CONFIG_START( zaurus ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",PXA255,MAIN_CLOCK) @@ -1809,9 +1809,9 @@ ROM_START( zslc1000 ) ROM_LOAD( "openzaurus 3.5.3 - zimage-sharp sl-c1000-20050427214434.bin", 0x000000, 0x128980, BAD_DUMP CRC(1e1a9279) SHA1(909ac3f00385eced55822d6a155b79d9d25f43b3) ) ROM_END -COMP( 2002, zsl5500, 0, 0, zaurus, zaurus, driver_device, 0, "Sharp", "Zaurus SL-5500 \"Collie\"", MACHINE_IS_SKELETON ) -COMP( 2002, zsl5600, 0, 0, zaurus, zaurus, driver_device, 0, "Sharp", "Zaurus SL-5600 / SL-B500 \"Poodle\"", MACHINE_IS_SKELETON ) -COMP( 2003, zslc750, 0, 0, zaurus, zaurus, driver_device, 0, "Sharp", "Zaurus SL-C750 \"Shepherd\" (Japan)", MACHINE_IS_SKELETON ) -COMP( 2004, zslc760, 0, 0, zaurus, zaurus, driver_device, 0, "Sharp", "Zaurus SL-C760 \"Husky\" (Japan)", MACHINE_IS_SKELETON ) -COMP( 200?, zslc3000, 0, 0, zaurus, zaurus, driver_device, 0, "Sharp", "Zaurus SL-C3000 \"Spitz\" (Japan)", MACHINE_IS_SKELETON ) -COMP( 200?, zslc1000, 0, 0, zaurus, zaurus, driver_device, 0, "Sharp", "Zaurus SL-C3000 \"Akita\" (Japan)", MACHINE_IS_SKELETON ) +COMP( 2002, zsl5500, 0, 0, zaurus, zaurus, zaurus_state, 0, "Sharp", "Zaurus SL-5500 \"Collie\"", MACHINE_IS_SKELETON ) +COMP( 2002, zsl5600, 0, 0, zaurus, zaurus, zaurus_state, 0, "Sharp", "Zaurus SL-5600 / SL-B500 \"Poodle\"", MACHINE_IS_SKELETON ) +COMP( 2003, zslc750, 0, 0, zaurus, zaurus, zaurus_state, 0, "Sharp", "Zaurus SL-C750 \"Shepherd\" (Japan)", MACHINE_IS_SKELETON ) +COMP( 2004, zslc760, 0, 0, zaurus, zaurus, zaurus_state, 0, "Sharp", "Zaurus SL-C760 \"Husky\" (Japan)", MACHINE_IS_SKELETON ) +COMP( 200?, zslc3000, 0, 0, zaurus, zaurus, zaurus_state, 0, "Sharp", "Zaurus SL-C3000 \"Spitz\" (Japan)", MACHINE_IS_SKELETON ) +COMP( 200?, zslc1000, 0, 0, zaurus, zaurus, zaurus_state, 0, "Sharp", "Zaurus SL-C3000 \"Akita\" (Japan)", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/zaxxon.cpp b/src/mame/drivers/zaxxon.cpp index 9c3cd3f05c8..19bc5e26523 100644 --- a/src/mame/drivers/zaxxon.cpp +++ b/src/mame/drivers/zaxxon.cpp @@ -914,7 +914,7 @@ GFXDECODE_END * *************************************/ -static MACHINE_CONFIG_START( root, zaxxon_state ) +static MACHINE_CONFIG_START( root ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, MASTER_CLOCK/16) @@ -1581,25 +1581,25 @@ DRIVER_INIT_MEMBER(zaxxon_state,razmataz) *************************************/ /* these games run on standard Zaxxon hardware */ -GAME( 1982, zaxxon, 0, zaxxon, zaxxon, driver_device, 0, ROT90, "Sega", "Zaxxon (set 1, rev D)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1982, zaxxon2, zaxxon, zaxxon, zaxxon, driver_device, 0, ROT90, "Sega", "Zaxxon (set 2, unknown rev)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1982, zaxxon3, zaxxon, zaxxon, zaxxon, driver_device, 0, ROT90, "Sega", "Zaxxon (set 3, unknown rev)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1982, zaxxonj, zaxxon, szaxxon, zaxxon, zaxxon_state, zaxxonj, ROT90, "Sega", "Zaxxon (Japan)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1982, zaxxonb, zaxxon, szaxxon, zaxxon, zaxxon_state, zaxxonj, ROT90, "bootleg", "Jackson", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1982, zaxxon, 0, zaxxon, zaxxon, zaxxon_state, 0, ROT90, "Sega", "Zaxxon (set 1, rev D)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1982, zaxxon2, zaxxon, zaxxon, zaxxon, zaxxon_state, 0, ROT90, "Sega", "Zaxxon (set 2, unknown rev)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1982, zaxxon3, zaxxon, zaxxon, zaxxon, zaxxon_state, 0, ROT90, "Sega", "Zaxxon (set 3, unknown rev)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1982, zaxxonj, zaxxon, szaxxon, zaxxon, zaxxon_state, zaxxonj, ROT90, "Sega", "Zaxxon (Japan)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1982, zaxxonb, zaxxon, szaxxon, zaxxon, zaxxon_state, zaxxonj, ROT90, "bootleg", "Jackson", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) /* standard Zaxxon hardware but extra sound board plugged into 8255 PPI socket and encrypted cpu */ -GAME( 1982, szaxxon, 0, szaxxone, szaxxon, driver_device, 0, ROT90, "Sega", "Super Zaxxon (315-5013)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1982, szaxxon, 0, szaxxone, szaxxon, zaxxon_state, 0, ROT90, "Sega", "Super Zaxxon (315-5013)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) /* standard Zaxxon hardware? but encrypted cpu */ -GAME( 1984, futspy, 0, futspye, futspy, driver_device, 0, ROT90, "Sega", "Future Spy (315-5061)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1984, futspy, 0, futspye, futspy, zaxxon_state, 0, ROT90, "Sega", "Future Spy (315-5061)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) /* these games run on modified Zaxxon hardware with no skewing, extra inputs, and a */ /* G-80 Universal Sound Board */ -GAME( 1983, razmataz, 0, razmataze, razmataz, zaxxon_state, razmataz, ROT90, "Sega", "Razzmatazz", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1983, ixion, 0, ixion, ixion, driver_device, 0, ROT270, "Sega", "Ixion (prototype)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE) +GAME( 1983, razmataz, 0, razmataze, razmataz, zaxxon_state, razmataz, ROT90, "Sega", "Razzmatazz", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1983, ixion, 0, ixion, ixion, zaxxon_state, 0, ROT270, "Sega", "Ixion (prototype)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE) /* these games run on a slightly newer Zaxxon hardware with more ROM space and a */ /* custom sprite DMA chip */ -GAME( 1983, congo, 0, congo, congo, driver_device, 0, ROT90, "Sega", "Congo Bongo (Rev C, 2 board stack)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1983, congoa, congo, congo, congo, driver_device, 0, ROT90, "Sega", "Congo Bongo (Rev C, 3 board stack)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1983, tiptop, congo, congo, congo, driver_device, 0, ROT90, "Sega", "Tip Top (3 board stack)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1983, congo, 0, congo, congo, zaxxon_state, 0, ROT90, "Sega", "Congo Bongo (Rev C, 2 board stack)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1983, congoa, congo, congo, congo, zaxxon_state, 0, ROT90, "Sega", "Congo Bongo (Rev C, 3 board stack)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1983, tiptop, congo, congo, congo, zaxxon_state, 0, ROT90, "Sega", "Tip Top (3 board stack)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/zerozone.cpp b/src/mame/drivers/zerozone.cpp index 1c654bd43da..5670cc958aa 100644 --- a/src/mame/drivers/zerozone.cpp +++ b/src/mame/drivers/zerozone.cpp @@ -168,7 +168,7 @@ void zerozone_state::machine_reset() m_tilebank = 0; } -static MACHINE_CONFIG_START( zerozone, zerozone_state ) +static MACHINE_CONFIG_START( zerozone ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 10000000) /* 10 MHz */ @@ -199,7 +199,7 @@ static MACHINE_CONFIG_START( zerozone, zerozone_state ) MCFG_GENERIC_LATCH_8_ADD("soundlatch") - MCFG_OKIM6295_ADD("oki", 1056000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified + MCFG_OKIM6295_ADD("oki", 1056000, PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -245,5 +245,5 @@ ROM_START( lvgirl94 ) ROM_END -GAME( 1993, zerozone, 0, zerozone, zerozone, driver_device, 0, ROT0, "Comad", "Zero Zone", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, lvgirl94, 0, zerozone, zerozone, driver_device, 0, ROT0, "Comad", "Las Vegas Girl (Girl '94)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, zerozone, 0, zerozone, zerozone, zerozone_state, 0, ROT0, "Comad", "Zero Zone", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, lvgirl94, 0, zerozone, zerozone, zerozone_state, 0, ROT0, "Comad", "Las Vegas Girl (Girl '94)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/zexall.cpp b/src/mame/drivers/zexall.cpp index 9c25629d73a..8823cc55db8 100644 --- a/src/mame/drivers/zexall.cpp +++ b/src/mame/drivers/zexall.cpp @@ -139,7 +139,7 @@ INPUT_PORTS_END Machine Drivers ******************************************************************************/ -static MACHINE_CONFIG_START( zexall, zexall_state ) +static MACHINE_CONFIG_START( zexall ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_3_579545MHz*10) MCFG_CPU_PROGRAM_MAP(z80_mem) @@ -167,5 +167,5 @@ ROM_END Drivers ******************************************************************************/ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 2009, zexall, 0, 0, zexall, zexall, zexall_state, zexall, "Frank Cringle & MESSDEV", "ZEXALL Z80 instruction set exerciser (modified for MESS)", MACHINE_NO_SOUND_HW ) +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 2009, zexall, 0, 0, zexall, zexall, zexall_state, zexall, "Frank Cringle & MESSDEV", "ZEXALL Z80 instruction set exerciser (modified for MESS)", MACHINE_NO_SOUND_HW ) diff --git a/src/mame/drivers/zn.cpp b/src/mame/drivers/zn.cpp index 676a2082723..ea4fae00fbb 100644 --- a/src/mame/drivers/zn.cpp +++ b/src/mame/drivers/zn.cpp @@ -312,7 +312,7 @@ static ADDRESS_MAP_START( zn_map, AS_PROGRAM, 32, zn_state ) AM_RANGE(0x1fb20000, 0x1fb20007) AM_READ16(unknown_r, 0xffffffff) ADDRESS_MAP_END -static MACHINE_CONFIG_START( zn1_1mb_vram, zn_state ) +static MACHINE_CONFIG_START( zn1_1mb_vram ) /* basic machine hardware */ MCFG_CPU_ADD( "maincpu", CXD8530CQ, XTAL_67_7376MHz ) @@ -357,7 +357,7 @@ static MACHINE_CONFIG_DERIVED( zn1_2mb_vram, zn1_1mb_vram ) MCFG_PSXGPU_REPLACE( "maincpu", "gpu", CXD8561Q, 0x200000, XTAL_53_693175MHz ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( zn2, zn_state ) +static MACHINE_CONFIG_START( zn2 ) /* basic machine hardware */ MCFG_CPU_ADD( "maincpu", CXD8661R, XTAL_100MHz ) @@ -1358,8 +1358,8 @@ static MACHINE_CONFIG_DERIVED( coh1000w, zn1_2mb_vram ) MCFG_VT83C461_ADD("ide", ata_devices, "hdd", nullptr, true) MCFG_ATA_INTERFACE_IRQ_HANDLER(DEVWRITELINE("maincpu:irq", psxirq_device, intin10)) - MCFG_PSX_DMA_CHANNEL_READ( "maincpu", 5, psx_dma_read_delegate(&zn_state::atpsx_dma_read, (zn_state *) owner ) ) - MCFG_PSX_DMA_CHANNEL_WRITE( "maincpu", 5, psx_dma_write_delegate(&zn_state::atpsx_dma_write, (zn_state *) owner ) ) + MCFG_PSX_DMA_CHANNEL_READ( "maincpu", 5, psxdma_device::read_delegate(&zn_state::atpsx_dma_read, (zn_state *) owner ) ) + MCFG_PSX_DMA_CHANNEL_WRITE( "maincpu", 5, psxdma_device::write_delegate(&zn_state::atpsx_dma_write, (zn_state *) owner ) ) MACHINE_CONFIG_END /* @@ -5140,131 +5140,131 @@ ROM_START( hvnsgate ) ROM_END /* Capcom ZN1 */ -GAME( 1995, coh1000c, 0, coh1000c, zn, driver_device, 0, ROT0, "Capcom", "ZN1", MACHINE_IS_BIOS_ROOT ) -GAME( 1995, ts2, coh1000c, coh1000c, zn6b, driver_device, 0, ROT0, "Capcom / Takara", "Battle Arena Toshinden 2 (USA 951124)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1995, ts2a, ts2, coh1000c, zn6b, driver_device, 0, ROT0, "Capcom / Takara", "Battle Arena Toshinden 2 (USA 951124) Older", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1995, ts2j, ts2, coh1000c, zn6b, driver_device, 0, ROT0, "Capcom / Takara", "Battle Arena Toshinden 2 (Japan 951124)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1996, starglad, coh1000c, coh1000c, zn6b, driver_device, 0, ROT0, "Capcom", "Star Gladiator Episode I: Final Crusade (USA 960627)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1996, stargladj, starglad, coh1000c, zn6b, driver_device, 0, ROT0, "Capcom", "Star Gladiator Episode I: Final Crusade (Japan 960627)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1996, glpracr, coh1000c, glpracr, zn, driver_device, 0, ROT0, "Tecmo", "Gallop Racer (English Ver 10.17.K)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1996, glpracrj, glpracr, glpracr, zn, driver_device, 0, ROT0, "Tecmo", "Gallop Racer (Japanese Ver 9.01.12)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1996, sfex, coh1000c, coh1002c, zn6b, driver_device, 0, ROT0, "Capcom / Arika", "Street Fighter EX (Euro 961219)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1996, sfexu, sfex, coh1002c, zn6b, driver_device, 0, ROT0, "Capcom / Arika", "Street Fighter EX (USA 961219)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1996, sfexa, sfex, coh1002c, zn6b, driver_device, 0, ROT0, "Capcom / Arika", "Street Fighter EX (Asia 961219)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1996, sfexj, sfex, coh1002c, zn6b, driver_device, 0, ROT0, "Capcom / Arika", "Street Fighter EX (Japan 961130)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1997, sfexp, coh1000c, coh1002c, zn6b, driver_device, 0, ROT0, "Capcom / Arika", "Street Fighter EX Plus (USA 970407)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1997, sfexpu1, sfexp, coh1002c, zn6b, driver_device, 0, ROT0, "Capcom / Arika", "Street Fighter EX Plus (USA 970311)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1997, sfexpj, sfexp, coh1002c, zn6b, driver_device, 0, ROT0, "Capcom / Arika", "Street Fighter EX Plus (Japan 970407)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1997, sfexpj1, sfexp, coh1002c, zn6b, driver_device, 0, ROT0, "Capcom / Arika", "Street Fighter EX Plus (Japan 970311)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1995, coh1000c, 0, coh1000c, zn, zn_state, 0, ROT0, "Capcom", "ZN1", MACHINE_IS_BIOS_ROOT ) +GAME( 1995, ts2, coh1000c, coh1000c, zn6b, zn_state, 0, ROT0, "Capcom / Takara", "Battle Arena Toshinden 2 (USA 951124)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1995, ts2a, ts2, coh1000c, zn6b, zn_state, 0, ROT0, "Capcom / Takara", "Battle Arena Toshinden 2 (USA 951124) Older", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1995, ts2j, ts2, coh1000c, zn6b, zn_state, 0, ROT0, "Capcom / Takara", "Battle Arena Toshinden 2 (Japan 951124)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1996, starglad, coh1000c, coh1000c, zn6b, zn_state, 0, ROT0, "Capcom", "Star Gladiator Episode I: Final Crusade (USA 960627)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1996, stargladj, starglad, coh1000c, zn6b, zn_state, 0, ROT0, "Capcom", "Star Gladiator Episode I: Final Crusade (Japan 960627)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1996, glpracr, coh1000c, glpracr, zn, zn_state, 0, ROT0, "Tecmo", "Gallop Racer (English Ver 10.17.K)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1996, glpracrj, glpracr, glpracr, zn, zn_state, 0, ROT0, "Tecmo", "Gallop Racer (Japanese Ver 9.01.12)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1996, sfex, coh1000c, coh1002c, zn6b, zn_state, 0, ROT0, "Capcom / Arika", "Street Fighter EX (Euro 961219)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1996, sfexu, sfex, coh1002c, zn6b, zn_state, 0, ROT0, "Capcom / Arika", "Street Fighter EX (USA 961219)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1996, sfexa, sfex, coh1002c, zn6b, zn_state, 0, ROT0, "Capcom / Arika", "Street Fighter EX (Asia 961219)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1996, sfexj, sfex, coh1002c, zn6b, zn_state, 0, ROT0, "Capcom / Arika", "Street Fighter EX (Japan 961130)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1997, sfexp, coh1000c, coh1002c, zn6b, zn_state, 0, ROT0, "Capcom / Arika", "Street Fighter EX Plus (USA 970407)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1997, sfexpu1, sfexp, coh1002c, zn6b, zn_state, 0, ROT0, "Capcom / Arika", "Street Fighter EX Plus (USA 970311)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1997, sfexpj, sfexp, coh1002c, zn6b, zn_state, 0, ROT0, "Capcom / Arika", "Street Fighter EX Plus (Japan 970407)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1997, sfexpj1, sfexp, coh1002c, zn6b, zn_state, 0, ROT0, "Capcom / Arika", "Street Fighter EX Plus (Japan 970311)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) /* Capcom ZN2 */ -GAME( 1997, coh3002c, 0, coh3002c, zn, driver_device, 0, ROT0, "Capcom", "ZN2", MACHINE_IS_BIOS_ROOT ) -GAME( 1997, rvschool, coh3002c, coh3002c, zn6b, driver_device, 0, ROT0, "Capcom", "Rival Schools: United By Fate (Euro 971117)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1997, rvschoolu, rvschool, coh3002c, zn6b, driver_device, 0, ROT0, "Capcom", "Rival Schools: United By Fate (USA 971117)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1997, rvschoola, rvschool, coh3002c, zn6b, driver_device, 0, ROT0, "Capcom", "Rival Schools: United By Fate (Asia 971117)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1997, jgakuen, rvschool, coh3002c, zn6b, driver_device, 0, ROT0, "Capcom", "Shiritsu Justice Gakuen: Legion of Heroes (Japan 971216)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1997, jgakuen1, rvschool, coh3002c, zn6b, driver_device, 0, ROT0, "Capcom", "Shiritsu Justice Gakuen: Legion of Heroes (Japan 971117)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1998, sfex2, coh3002c, coh3002c, zn6b, driver_device, 0, ROT0, "Capcom / Arika", "Street Fighter EX2 (USA 980526)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1998, sfex2u1, sfex2, coh3002c, zn6b, driver_device, 0, ROT0, "Capcom / Arika", "Street Fighter EX2 (USA 980312)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1998, sfex2a, sfex2, coh3002c, zn6b, driver_device, 0, ROT0, "Capcom / Arika", "Street Fighter EX2 (Asia 980312)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1998, sfex2h, sfex2, coh3002c, zn6b, driver_device, 0, ROT0, "Capcom / Arika", "Street Fighter EX2 (Hispanic 980312)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1998, sfex2j, sfex2, coh3002c, zn6b, driver_device, 0, ROT0, "Capcom / Arika", "Street Fighter EX2 (Japan 980312)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1998, plsmaswd, coh3002c, coh3002c, zn6b, driver_device, 0, ROT0, "Capcom", "Plasma Sword: Nightmare of Bilstein (USA 980316)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1998, plsmaswda, plsmaswd, coh3002c, zn6b, driver_device, 0, ROT0, "Capcom", "Plasma Sword: Nightmare of Bilstein (Asia 980316)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1998, stargld2, plsmaswd, coh3002c, zn6b, driver_device, 0, ROT0, "Capcom", "Star Gladiator 2: Nightmare of Bilstein (Japan 980316)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1998, tgmj, coh3002c, coh3002c, zn4w, driver_device, 0, ROT0, "Arika / Capcom", "Tetris The Grand Master (Japan 980710)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1998, techromn, coh3002c, coh3002c, zn6b, driver_device, 0, ROT0, "Capcom", "Tech Romancer (Euro 980914)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1998, techromnu, techromn, coh3002c, zn6b, driver_device, 0, ROT0, "Capcom", "Tech Romancer (USA 980914)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1998, kikaioh, techromn, coh3002c, zn6b, driver_device, 0, ROT0, "Capcom", "Choukou Senki Kikaioh (Japan 980914)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1999, sfex2p, coh3002c, coh3002c, zn6b, driver_device, 0, ROT0, "Capcom / Arika", "Street Fighter EX2 Plus (USA 990611)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1999, sfex2pa, sfex2p, coh3002c, zn6b, driver_device, 0, ROT0, "Capcom / Arika", "Street Fighter EX2 Plus (Asia 990611)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1999, sfex2ph, sfex2p, coh3002c, zn6b, driver_device, 0, ROT0, "Capcom / Arika", "Street Fighter EX2 Plus (Hispanic 990611)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1999, sfex2pj, sfex2p, coh3002c, zn6b, driver_device, 0, ROT0, "Capcom / Arika", "Street Fighter EX2 Plus (Japan 990611)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1999, strider2, coh3002c, coh3002c, zn, driver_device, 0, ROT0, "Capcom", "Strider 2 (USA 991213)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) // random hangs / crashes -GAME( 1999, strider2a, strider2, coh3002c, zn, driver_device, 0, ROT0, "Capcom", "Strider 2 (Asia 991213)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) -GAME( 1999, shiryu2, strider2, coh3002c, zn, driver_device, 0, ROT0, "Capcom", "Strider Hiryu 2 (Japan 991213)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) +GAME( 1997, coh3002c, 0, coh3002c, zn, zn_state, 0, ROT0, "Capcom", "ZN2", MACHINE_IS_BIOS_ROOT ) +GAME( 1997, rvschool, coh3002c, coh3002c, zn6b, zn_state, 0, ROT0, "Capcom", "Rival Schools: United By Fate (Euro 971117)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1997, rvschoolu, rvschool, coh3002c, zn6b, zn_state, 0, ROT0, "Capcom", "Rival Schools: United By Fate (USA 971117)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1997, rvschoola, rvschool, coh3002c, zn6b, zn_state, 0, ROT0, "Capcom", "Rival Schools: United By Fate (Asia 971117)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1997, jgakuen, rvschool, coh3002c, zn6b, zn_state, 0, ROT0, "Capcom", "Shiritsu Justice Gakuen: Legion of Heroes (Japan 971216)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1997, jgakuen1, rvschool, coh3002c, zn6b, zn_state, 0, ROT0, "Capcom", "Shiritsu Justice Gakuen: Legion of Heroes (Japan 971117)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1998, sfex2, coh3002c, coh3002c, zn6b, zn_state, 0, ROT0, "Capcom / Arika", "Street Fighter EX2 (USA 980526)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1998, sfex2u1, sfex2, coh3002c, zn6b, zn_state, 0, ROT0, "Capcom / Arika", "Street Fighter EX2 (USA 980312)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1998, sfex2a, sfex2, coh3002c, zn6b, zn_state, 0, ROT0, "Capcom / Arika", "Street Fighter EX2 (Asia 980312)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1998, sfex2h, sfex2, coh3002c, zn6b, zn_state, 0, ROT0, "Capcom / Arika", "Street Fighter EX2 (Hispanic 980312)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1998, sfex2j, sfex2, coh3002c, zn6b, zn_state, 0, ROT0, "Capcom / Arika", "Street Fighter EX2 (Japan 980312)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1998, plsmaswd, coh3002c, coh3002c, zn6b, zn_state, 0, ROT0, "Capcom", "Plasma Sword: Nightmare of Bilstein (USA 980316)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1998, plsmaswda, plsmaswd, coh3002c, zn6b, zn_state, 0, ROT0, "Capcom", "Plasma Sword: Nightmare of Bilstein (Asia 980316)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1998, stargld2, plsmaswd, coh3002c, zn6b, zn_state, 0, ROT0, "Capcom", "Star Gladiator 2: Nightmare of Bilstein (Japan 980316)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1998, tgmj, coh3002c, coh3002c, zn4w, zn_state, 0, ROT0, "Arika / Capcom", "Tetris The Grand Master (Japan 980710)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1998, techromn, coh3002c, coh3002c, zn6b, zn_state, 0, ROT0, "Capcom", "Tech Romancer (Euro 980914)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1998, techromnu, techromn, coh3002c, zn6b, zn_state, 0, ROT0, "Capcom", "Tech Romancer (USA 980914)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1998, kikaioh, techromn, coh3002c, zn6b, zn_state, 0, ROT0, "Capcom", "Choukou Senki Kikaioh (Japan 980914)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1999, sfex2p, coh3002c, coh3002c, zn6b, zn_state, 0, ROT0, "Capcom / Arika", "Street Fighter EX2 Plus (USA 990611)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1999, sfex2pa, sfex2p, coh3002c, zn6b, zn_state, 0, ROT0, "Capcom / Arika", "Street Fighter EX2 Plus (Asia 990611)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1999, sfex2ph, sfex2p, coh3002c, zn6b, zn_state, 0, ROT0, "Capcom / Arika", "Street Fighter EX2 Plus (Hispanic 990611)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1999, sfex2pj, sfex2p, coh3002c, zn6b, zn_state, 0, ROT0, "Capcom / Arika", "Street Fighter EX2 Plus (Japan 990611)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1999, strider2, coh3002c, coh3002c, zn, zn_state, 0, ROT0, "Capcom", "Strider 2 (USA 991213)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) // random hangs / crashes +GAME( 1999, strider2a, strider2, coh3002c, zn, zn_state, 0, ROT0, "Capcom", "Strider 2 (Asia 991213)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) +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, driver_device, 0, ROT0, "Atari", "Atari PSX", MACHINE_IS_BIOS_ROOT ) -GAME( 1996, primrag2, coh1000w, coh1000w, primrag2, driver_device, 0, 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, driver_device, 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, driver_device, 0, ROT0, "Acclaim", "Judge Dredd (Rev C Dec. 17 1997)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1996, jdreddb, jdredd, jdredd, jdredd, driver_device, 0, ROT0, "Acclaim", "Judge Dredd (Rev B Nov. 26 1997)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +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, 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, driver_device, 0, ROT0, "Tecmo", "TPS", MACHINE_IS_BIOS_ROOT ) -GAME( 1997, glpracr2, coh1002m, coh1002m, zn, driver_device, 0, ROT0, "Tecmo", "Gallop Racer 2 (Export)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1997, glpracr2j, glpracr2, coh1002m, zn, driver_device, 0, ROT0, "Tecmo", "Gallop Racer 2 (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1997, glpracr2l, glpracr2, coh1002ml, zn, driver_device, 0, ROT0, "Tecmo", "Gallop Racer 2 Link HW (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1998, doapp, coh1002m, coh1002m, zn, driver_device, 0, ROT0, "Tecmo", "Dead Or Alive ++ (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1998, cbaj, coh1002m, coh1002msnd, zn, driver_device, 0, ROT0, "UEP Systems", "Cool Boarders Arcade Jam", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1998, shngmtkb, coh1002m, coh1002m, zn, driver_device, 0, ROT0, "Sunsoft / Activision", "Shanghai Matekibuyuu", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1999, tondemo, coh1002m, coh1002m, zn, driver_device, 0, ROT0, "Tecmo", "Tondemo Crisis (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1999, glpracr3, coh1002m, coh1002m, zn, driver_device, 0, ROT0, "Tecmo", "Gallop Racer 3 (Export)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1999, glpracr3j, glpracr3, coh1002m, zn, driver_device, 0, ROT0, "Tecmo", "Gallop Racer 3 (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1999, flamegun, coh1002m, coh1002m, zn, driver_device, 0, ROT0, "Gaps Inc.", "Flame Gunner", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1999, flamegunj, flamegun, coh1002m, zn, driver_device, 0, ROT0, "Gaps Inc.", "Flame Gunner (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1999, lpadv, coh1002m, coh1002m, zn, driver_device, 0, ROT0, "Amuse World", "Logic Pro Adventure (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 2000, tblkkuzu, coh1002m, coh1002m, zn, driver_device, 0, ROT0, "Tamsoft / D3 Publisher", "The Block Kuzushi (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 2000, 1on1gov, coh1002m, coh1002m, zn, driver_device, 0, ROT0, "Tecmo", "1 on 1 Government (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 2000, tecmowcm, coh1002m, coh1002m, zn, driver_device, 0, ROT0, "Tecmo", "Tecmo World Cup Millennium (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 2001, mfjump, coh1002m, coh1002m, zn, driver_device, 0, ROT0, "Tecmo", "Monster Farm Jump (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1997, coh1002m, 0, coh1002m, zn, zn_state, 0, ROT0, "Tecmo", "TPS", MACHINE_IS_BIOS_ROOT ) +GAME( 1997, glpracr2, coh1002m, coh1002m, zn, zn_state, 0, ROT0, "Tecmo", "Gallop Racer 2 (Export)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1997, glpracr2j, glpracr2, coh1002m, zn, zn_state, 0, ROT0, "Tecmo", "Gallop Racer 2 (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1997, glpracr2l, glpracr2, coh1002ml, zn, zn_state, 0, ROT0, "Tecmo", "Gallop Racer 2 Link HW (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1998, doapp, coh1002m, coh1002m, zn, zn_state, 0, ROT0, "Tecmo", "Dead Or Alive ++ (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1998, cbaj, coh1002m, coh1002msnd, zn, zn_state, 0, ROT0, "UEP Systems", "Cool Boarders Arcade Jam", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1998, shngmtkb, coh1002m, coh1002m, zn, zn_state, 0, ROT0, "Sunsoft / Activision", "Shanghai Matekibuyuu", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1999, tondemo, coh1002m, coh1002m, zn, zn_state, 0, ROT0, "Tecmo", "Tondemo Crisis (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1999, glpracr3, coh1002m, coh1002m, zn, zn_state, 0, ROT0, "Tecmo", "Gallop Racer 3 (Export)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1999, glpracr3j, glpracr3, coh1002m, zn, zn_state, 0, ROT0, "Tecmo", "Gallop Racer 3 (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1999, flamegun, coh1002m, coh1002m, zn, zn_state, 0, ROT0, "Gaps Inc.", "Flame Gunner", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1999, flamegunj, flamegun, coh1002m, zn, zn_state, 0, ROT0, "Gaps Inc.", "Flame Gunner (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1999, lpadv, coh1002m, coh1002m, zn, zn_state, 0, ROT0, "Amuse World", "Logic Pro Adventure (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 2000, tblkkuzu, coh1002m, coh1002m, zn, zn_state, 0, ROT0, "Tamsoft / D3 Publisher", "The Block Kuzushi (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 2000, 1on1gov, coh1002m, coh1002m, zn, zn_state, 0, ROT0, "Tecmo", "1 on 1 Government (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 2000, tecmowcm, coh1002m, coh1002m, zn, zn_state, 0, ROT0, "Tecmo", "Tecmo World Cup Millennium (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 2001, mfjump, coh1002m, coh1002m, zn, zn_state, 0, ROT0, "Tecmo", "Monster Farm Jump (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) /* Video System */ -GAME( 1996, coh1002v, 0, coh1002v, zn, driver_device, 0, ROT0, "Video System Co.", "Video System PSX", MACHINE_IS_BIOS_ROOT ) -GAME( 1996, aerofgts, coh1002v, coh1002v, aerofgts, driver_device, 0, ROT270, "Video System Co.", "Aero Fighters Special (Taiwan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1996, sncwgltd, aerofgts, coh1002v, aerofgts, driver_device, 0, ROT270, "Video System Co.", "Sonic Wings Limited (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1996, coh1002v, 0, coh1002v, zn, zn_state, 0, ROT0, "Video System Co.", "Video System PSX", MACHINE_IS_BIOS_ROOT ) +GAME( 1996, aerofgts, coh1002v, coh1002v, aerofgts, zn_state, 0, ROT270, "Video System Co.", "Aero Fighters Special (Taiwan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1996, sncwgltd, aerofgts, coh1002v, aerofgts, zn_state, 0, ROT270, "Video System Co.", "Sonic Wings Limited (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) /* Taito FX-1A */ -GAME( 1995, coh1000t, 0, coh1000ta, znt, driver_device, 0, ROT0, "Taito", "Taito FX1", MACHINE_IS_BIOS_ROOT ) -GAME( 1995, sfchamp, coh1000t, coh1000ta, znt, driver_device, 0, ROT0, "Taito", "Super Football Champ (Ver 2.5O)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1995, sfchampo, sfchamp, coh1000ta, znt, driver_device, 0, ROT0, "Taito", "Super Football Champ (Ver 2.4O)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1995, sfchampu, sfchamp, coh1000ta, znt, driver_device, 0, ROT0, "Taito", "Super Football Champ (Ver 2.4A)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1995, sfchampj, sfchamp, coh1000ta, znt, driver_device, 0, ROT0, "Taito", "Super Football Champ (Ver 2.4J)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1995, psyforce, coh1000t, coh1000ta, znt, driver_device, 0, ROT0, "Taito", "Psychic Force (Ver 2.4O)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1995, psyforcej, psyforce, coh1000ta, znt, driver_device, 0, ROT0, "Taito", "Psychic Force (Ver 2.4J)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1995, psyforcex, psyforce, coh1000ta, znt, driver_device, 0, ROT0, "Taito", "Psychic Force EX (Ver 2.0J)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) // exception in attract after reading 0xbbbbbbbb from 0x8025ed18 leads to watchdog reset -GAME( 1996, mgcldate, mgcldtex, coh1000ta, znt, driver_device, 0, ROT0, "Taito", "Magical Date / Magical Date - dokidoki kokuhaku daisakusen (Ver 2.02J)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1997, mgcldtex, coh1000t, coh1000ta, znt, driver_device, 0, ROT0, "Taito", "Magical Date EX / Magical Date - sotsugyou kokuhaku daisakusen (Ver 2.01J)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1995, coh1000t, 0, coh1000ta, znt, zn_state, 0, ROT0, "Taito", "Taito FX1", MACHINE_IS_BIOS_ROOT ) +GAME( 1995, sfchamp, coh1000t, coh1000ta, znt, zn_state, 0, ROT0, "Taito", "Super Football Champ (Ver 2.5O)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1995, sfchampo, sfchamp, coh1000ta, znt, zn_state, 0, ROT0, "Taito", "Super Football Champ (Ver 2.4O)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1995, sfchampu, sfchamp, coh1000ta, znt, zn_state, 0, ROT0, "Taito", "Super Football Champ (Ver 2.4A)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1995, sfchampj, sfchamp, coh1000ta, znt, zn_state, 0, ROT0, "Taito", "Super Football Champ (Ver 2.4J)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1995, psyforce, coh1000t, coh1000ta, znt, zn_state, 0, ROT0, "Taito", "Psychic Force (Ver 2.4O)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1995, psyforcej, psyforce, coh1000ta, znt, zn_state, 0, ROT0, "Taito", "Psychic Force (Ver 2.4J)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1995, psyforcex, psyforce, coh1000ta, znt, zn_state, 0, ROT0, "Taito", "Psychic Force EX (Ver 2.0J)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) // exception in attract after reading 0xbbbbbbbb from 0x8025ed18 leads to watchdog reset +GAME( 1996, mgcldate, mgcldtex, coh1000ta, znt, zn_state, 0, ROT0, "Taito", "Magical Date / Magical Date - dokidoki kokuhaku daisakusen (Ver 2.02J)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1997, mgcldtex, coh1000t, coh1000ta, znt, zn_state, 0, ROT0, "Taito", "Magical Date EX / Magical Date - sotsugyou kokuhaku daisakusen (Ver 2.01J)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) /* Taito FX-1B */ -GAME( 1996, raystorm, coh1000t, coh1000tb, znt, zn_state, coh1000tb, ROT0, "Taito", "Ray Storm (Ver 2.06A)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1996, raystormo, raystorm, coh1000tb, znt, zn_state, coh1000tb, ROT0, "Taito", "Ray Storm (Ver 2.05O)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1996, raystormu, raystorm, coh1000tb, znt, zn_state, coh1000tb, ROT0, "Taito", "Ray Storm (Ver 2.05A)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1996, raystormj, raystorm, coh1000tb, znt, zn_state, coh1000tb, ROT0, "Taito", "Ray Storm (Ver 2.05J)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1996, ftimpact, ftimpcta, coh1000tb, znt, zn_state, coh1000tb, ROT0, "Taito", "Fighters' Impact (Ver 2.02O)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1996, ftimpactu, ftimpcta, coh1000tb, znt, zn_state, coh1000tb, ROT0, "Taito", "Fighters' Impact (Ver 2.02A)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1996, ftimpactj, ftimpcta, coh1000tb, znt, zn_state, coh1000tb, ROT0, "Taito", "Fighters' Impact (Ver 2.02J)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1996, raystorm, coh1000t, coh1000tb, znt, zn_state, coh1000tb, ROT0, "Taito", "Ray Storm (Ver 2.06A)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1996, raystormo, raystorm, coh1000tb, znt, zn_state, coh1000tb, ROT0, "Taito", "Ray Storm (Ver 2.05O)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1996, raystormu, raystorm, coh1000tb, znt, zn_state, coh1000tb, ROT0, "Taito", "Ray Storm (Ver 2.05A)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1996, raystormj, raystorm, coh1000tb, znt, zn_state, coh1000tb, ROT0, "Taito", "Ray Storm (Ver 2.05J)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1996, ftimpact, ftimpcta, coh1000tb, znt, zn_state, coh1000tb, ROT0, "Taito", "Fighters' Impact (Ver 2.02O)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1996, ftimpactu, ftimpcta, coh1000tb, znt, zn_state, coh1000tb, ROT0, "Taito", "Fighters' Impact (Ver 2.02A)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1996, ftimpactj, ftimpcta, coh1000tb, znt, zn_state, coh1000tb, ROT0, "Taito", "Fighters' Impact (Ver 2.02J)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) GAME( 1997, ftimpcta, coh1000t, coh1000tb, znt, zn_state, coh1000tb, ROT0, "Taito", "Fighters' Impact A (Ver 2.00J)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1997, gdarius, gdarius2, coh1002tb, znt, zn_state, coh1000tb, ROT0, "Taito", "G-Darius (Ver 2.01J)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1997, gdariusb, gdarius2, coh1002tb, znt, zn_state, coh1000tb, ROT0, "Taito", "G-Darius (Ver 2.02A)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1997, gdarius2, coh1000t, coh1002tb, znt, zn_state, coh1000tb, ROT0, "Taito", "G-Darius Ver.2 (Ver 2.03J)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1997, gdarius, gdarius2, coh1002tb, znt, zn_state, coh1000tb, ROT0, "Taito", "G-Darius (Ver 2.01J)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1997, gdariusb, gdarius2, coh1002tb, znt, zn_state, coh1000tb, ROT0, "Taito", "G-Darius (Ver 2.02A)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1997, gdarius2, coh1000t, coh1002tb, znt, zn_state, coh1000tb, ROT0, "Taito", "G-Darius Ver.2 (Ver 2.03J)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) /* Eighting / Raizing */ -GAME( 1997, coh1002e, 0, coh1002e, znt, driver_device, 0, ROT0, "Eighting / Raizing", "PS Arcade 95", MACHINE_IS_BIOS_ROOT ) -GAME( 1997, beastrzr, coh1002e, coh1002e, znt, driver_device, 0, ROT0, "Eighting / Raizing", "Beastorizer (USA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1997, bldyroar, beastrzr, coh1002e, znt, driver_device, 0, ROT0, "Eighting / Raizing", "Bloody Roar (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1997, beastrzrb, beastrzr, coh1002e, znt, driver_device, 0, ROT0, "bootleg", "Beastorizer (USA bootleg)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) +GAME( 1997, coh1002e, 0, coh1002e, znt, zn_state, 0, ROT0, "Eighting / Raizing", "PS Arcade 95", MACHINE_IS_BIOS_ROOT ) +GAME( 1997, beastrzr, coh1002e, coh1002e, znt, zn_state, 0, ROT0, "Eighting / Raizing", "Beastorizer (USA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1997, bldyroar, beastrzr, coh1002e, znt, zn_state, 0, ROT0, "Eighting / Raizing", "Bloody Roar (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1997, beastrzrb, beastrzr, coh1002e, znt, zn_state, 0, ROT0, "bootleg", "Beastorizer (USA bootleg)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* The region on these is determined from the NVRAM, it can't be changed from the test menu, it's pre-programmed */ -GAME( 1998, bldyror2, coh1002e, coh1002e, bldyror2, driver_device, 0, ROT0, "Eighting / Raizing", "Bloody Roar 2 (World)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) // locks up if you coin up during the fmw with interlace enabled -GAME( 1998, bldyror2u, bldyror2, coh1002e, bldyror2, driver_device, 0, ROT0, "Eighting / Raizing", "Bloody Roar 2 (USA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1998, bldyror2a, bldyror2, coh1002e, bldyror2, driver_device, 0, ROT0, "Eighting / Raizing", "Bloody Roar 2 (Asia)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1998, bldyror2j, bldyror2, coh1002e, bldyror2, driver_device, 0, ROT0, "Eighting / Raizing", "Bloody Roar 2 (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1998, bldyror2, coh1002e, coh1002e, bldyror2, zn_state, 0, ROT0, "Eighting / Raizing", "Bloody Roar 2 (World)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) // locks up if you coin up during the fmw with interlace enabled +GAME( 1998, bldyror2u, bldyror2, coh1002e, bldyror2, zn_state, 0, ROT0, "Eighting / Raizing", "Bloody Roar 2 (USA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1998, bldyror2a, bldyror2, coh1002e, bldyror2, zn_state, 0, ROT0, "Eighting / Raizing", "Bloody Roar 2 (Asia)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1998, bldyror2j, bldyror2, coh1002e, bldyror2, zn_state, 0, ROT0, "Eighting / Raizing", "Bloody Roar 2 (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) /* The region on these is determined from the NVRAM, it can't be changed from the test menu, it's pre-programmed */ -GAME( 2000, brvblade, coh1002m, coh1002e, znt, driver_device, 0, ROT270, "Eighting / Raizing", "Brave Blade (World)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 2000, brvbladeu, brvblade, coh1002e, znt, driver_device, 0, ROT270, "Eighting / Raizing", "Brave Blade (USA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 2000, brvbladea, brvblade, coh1002e, znt, driver_device, 0, ROT270, "Eighting / Raizing", "Brave Blade (Asia)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 2000, brvbladej, brvblade, coh1002e, znt, driver_device, 0, ROT270, "Eighting / Raizing", "Brave Blade (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 2000, brvblade, coh1002m, coh1002e, znt, zn_state, 0, ROT270, "Eighting / Raizing", "Brave Blade (World)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 2000, brvbladeu, brvblade, coh1002e, znt, zn_state, 0, ROT270, "Eighting / Raizing", "Brave Blade (USA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 2000, brvbladea, brvblade, coh1002e, znt, zn_state, 0, ROT270, "Eighting / Raizing", "Brave Blade (Asia)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +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, driver_device, 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 ) +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, driver_device, 0, ROT0, "Atlus", "Atlus PSX", MACHINE_IS_BIOS_ROOT ) -GAME( 1996, hvnsgate, coh1001l, coh1001l, zn, driver_device, 0, ROT0, "Racdym / Atlus", "Heaven's Gate", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1996, coh1001l, 0, coh1001l, zn, zn_state, 0, ROT0, "Atlus", "Atlus PSX", MACHINE_IS_BIOS_ROOT ) +GAME( 1996, hvnsgate, coh1001l, coh1001l, zn, zn_state, 0, ROT0, "Racdym / Atlus", "Heaven's Gate", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) diff --git a/src/mame/drivers/zodiack.cpp b/src/mame/drivers/zodiack.cpp index 63d26577a6d..e67f66d980f 100644 --- a/src/mame/drivers/zodiack.cpp +++ b/src/mame/drivers/zodiack.cpp @@ -563,7 +563,7 @@ void zodiack_state::machine_reset() } -static MACHINE_CONFIG_START( zodiack, zodiack_state ) +static MACHINE_CONFIG_START( zodiack ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_18_432MHz/6) @@ -716,8 +716,8 @@ DRIVER_INIT_MEMBER(zodiack_state,percuss) m_percuss_hardware = true; } -GAME( 1983, zodiack, 0, zodiack, zodiack, zodiack_state, zodiack, ROT270, "Orca (Esco Trading Co., Inc. license)", "Zodiack", MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE ) /* bullet color needs to be verified */ -GAME( 1983, dogfight, 0, zodiack, dogfight, zodiack_state, zodiack, ROT270, "Orca / Thunderbolt", "Dog Fight (Thunderbolt)", MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE ) /* bullet color needs to be verified */ -GAME( 1982, moguchan, 0, zodiack, moguchan, zodiack_state, percuss, ROT270, "Orca (Eastern Commerce Inc. license)", "Mogu Chan (bootleg?)", MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE ) /* license copyright taken from ROM string at $0b5c */ -GAME( 1981, percuss, 0, zodiack, percuss, zodiack_state, percuss, ROT270, "Orca", "The Percussor", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, bounty, 0, zodiack, bounty, zodiack_state, percuss, ROT180, "Orca", "The Bounty", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, zodiack, 0, zodiack, zodiack, zodiack_state, zodiack, ROT270, "Orca (Esco Trading Co., Inc. license)", "Zodiack", MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE ) /* bullet color needs to be verified */ +GAME( 1983, dogfight, 0, zodiack, dogfight, zodiack_state, zodiack, ROT270, "Orca / Thunderbolt", "Dog Fight (Thunderbolt)", MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE ) /* bullet color needs to be verified */ +GAME( 1982, moguchan, 0, zodiack, moguchan, zodiack_state, percuss, ROT270, "Orca (Eastern Commerce Inc. license)", "Mogu Chan (bootleg?)", MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE ) /* license copyright taken from ROM string at $0b5c */ +GAME( 1981, percuss, 0, zodiack, percuss, zodiack_state, percuss, ROT270, "Orca", "The Percussor", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, bounty, 0, zodiack, bounty, zodiack_state, percuss, ROT180, "Orca", "The Bounty", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/zorba.cpp b/src/mame/drivers/zorba.cpp index 8d2e129bbd4..3a24178746c 100644 --- a/src/mame/drivers/zorba.cpp +++ b/src/mame/drivers/zorba.cpp @@ -93,7 +93,7 @@ ADDRESS_MAP_START( zorba_io, AS_IO, 8, zorba_state ) AM_RANGE(0x25, 0x25) AM_DEVREADWRITE("uart2", i8251_device, status_r, control_w) AM_RANGE(0x26, 0x26) AM_WRITE(intmask_w) AM_RANGE(0x30, 0x30) AM_DEVREADWRITE("dma", z80dma_device, read, write) - AM_RANGE(0x40, 0x43) AM_DEVREADWRITE("fdc", fd1793_t, read, write) + AM_RANGE(0x40, 0x43) AM_DEVREADWRITE("fdc", fd1793_device, read, write) AM_RANGE(0x50, 0x53) AM_DEVREADWRITE("pia0", pia6821_device, read, write) AM_RANGE(0x60, 0x63) AM_DEVREADWRITE("pia1", pia6821_device, read, write) ADDRESS_MAP_END @@ -131,7 +131,7 @@ GFXDECODE_START( zorba ) GFXDECODE_END -MACHINE_CONFIG_START( zorba, zorba_state ) +MACHINE_CONFIG_START( zorba ) // basic machine hardware MCFG_CPU_ADD("maincpu", Z80, XTAL_24MHz / 6) MCFG_CPU_PROGRAM_MAP(zorba_mem) @@ -564,5 +564,5 @@ ROM_END COMP( 1984?, zorba, 0, 0, zorba, zorba, zorba_state, zorba, "Modular Micros", "Zorba (Modular Micros)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // Undumped versions (see startup screen notes at top of file) -// COMP( 1983, zorbat, zorba, 0, zorba, zorba, zorba_state, zorba, "Telcon Industries", "Zorba (Telcon Industries)", MACHINE_NOT_WORKING ) +// COMP( 1983, zorbat, zorba, 0, zorba, zorba, zorba_state, zorba, "Telcon Industries", "Zorba (Telcon Industries)", MACHINE_NOT_WORKING ) // COMP( 1984, zorbag, zorba, 0, zorba, zorba, zorba_state, zorba, "Gemini Electronics", "Zorba (Gemini Electronics)", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/zr107.cpp b/src/mame/drivers/zr107.cpp index 2138b499618..932fcfa7a7d 100644 --- a/src/mame/drivers/zr107.cpp +++ b/src/mame/drivers/zr107.cpp @@ -756,7 +756,7 @@ void zr107_state::machine_reset() m_dsp->set_input_line(INPUT_LINE_RESET, ASSERT_LINE); } -static MACHINE_CONFIG_START( zr107, zr107_state ) +static MACHINE_CONFIG_START( zr107 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", PPC403GA, XTAL_64MHz/2) /* PowerPC 403GA 32MHz */ @@ -823,11 +823,11 @@ static MACHINE_CONFIG_START( zr107, zr107_state ) MCFG_DEVICE_ADD("konppc", KONPPC, 0) MCFG_KONPPC_CGBOARD_NUMBER(1) - MCFG_KONPPC_CGBOARD_TYPE(CGBOARD_TYPE_ZR107) + MCFG_KONPPC_CGBOARD_TYPE(ZR107) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( jetwave, zr107_state ) +static MACHINE_CONFIG_START( jetwave ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", PPC403GA, XTAL_64MHz/2) /* PowerPC 403GA 32MHz */ @@ -902,7 +902,7 @@ static MACHINE_CONFIG_START( jetwave, zr107_state ) MCFG_DEVICE_ADD("konppc", KONPPC, 0) MCFG_KONPPC_CGBOARD_NUMBER(1) - MCFG_KONPPC_CGBOARD_TYPE(CGBOARD_TYPE_GTICLUB) + MCFG_KONPPC_CGBOARD_TYPE(GTICLUB) MACHINE_CONFIG_END /*****************************************************************************/ diff --git a/src/mame/drivers/zrt80.cpp b/src/mame/drivers/zrt80.cpp index cf1b0a0fa85..2b980acc2ce 100644 --- a/src/mame/drivers/zrt80.cpp +++ b/src/mame/drivers/zrt80.cpp @@ -48,7 +48,7 @@ public: DECLARE_READ8_MEMBER(zrt80_10_r); DECLARE_WRITE8_MEMBER(zrt80_30_w); DECLARE_WRITE8_MEMBER(zrt80_38_w); - DECLARE_WRITE8_MEMBER(kbd_put); + void kbd_put(u8 data); MC6845_UPDATE_ROW(crtc_update_row); private: @@ -243,7 +243,7 @@ MC6845_UPDATE_ROW( zrt80_state::crtc_update_row ) } } -WRITE8_MEMBER( zrt80_state::kbd_put ) +void zrt80_state::kbd_put(u8 data) { m_term_data = data; m_maincpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE); @@ -267,7 +267,7 @@ static GFXDECODE_START( zrt80 ) GFXDECODE_ENTRY( "chargen", 0x0000, zrt80_charlayout, 0, 1 ) GFXDECODE_END -static MACHINE_CONFIG_START( zrt80, zrt80_state ) +static MACHINE_CONFIG_START( zrt80 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80, XTAL_2_4576MHz) MCFG_CPU_PROGRAM_MAP(zrt80_mem) @@ -297,7 +297,7 @@ static MACHINE_CONFIG_START( zrt80, zrt80_state ) MCFG_DEVICE_ADD( "ins8250", INS8250, 2457600 ) MCFG_INS8250_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0)) MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0) - MCFG_GENERIC_KEYBOARD_CB(WRITE8(zrt80_state, kbd_put)) + MCFG_GENERIC_KEYBOARD_CB(PUT(zrt80_state, kbd_put)) MACHINE_CONFIG_END /* ROM definition */ @@ -312,5 +312,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1982, zrt80, 0, 0, zrt80, zrt80, driver_device, 0, "Digital Research Computers", "ZRT-80", 0) +/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ +COMP( 1982, zrt80, 0, 0, zrt80, zrt80, zrt80_state, 0, "Digital Research Computers", "ZRT-80", 0) diff --git a/src/mame/drivers/zsbc3.cpp b/src/mame/drivers/zsbc3.cpp index caf00a0e7bb..4f2ad18238b 100644 --- a/src/mame/drivers/zsbc3.cpp +++ b/src/mame/drivers/zsbc3.cpp @@ -52,7 +52,8 @@ public: DECLARE_READ8_MEMBER(zsbc3_28_r); DECLARE_READ8_MEMBER(zsbc3_2a_r); - DECLARE_WRITE8_MEMBER(kbd_put); + void kbd_put(u8 data); + private: uint8_t m_term_data; virtual void machine_reset() override; @@ -95,13 +96,13 @@ void zsbc3_state::machine_reset() { } -WRITE8_MEMBER( zsbc3_state::kbd_put ) +void zsbc3_state::kbd_put(u8 data) { m_term_data = data; } -static MACHINE_CONFIG_START( zsbc3, zsbc3_state ) +static MACHINE_CONFIG_START( zsbc3 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80, XTAL_16MHz /4) MCFG_CPU_PROGRAM_MAP(zsbc3_mem) @@ -109,7 +110,7 @@ static MACHINE_CONFIG_START( zsbc3, zsbc3_state ) /* video hardware */ MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0) - MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(zsbc3_state, kbd_put)) + MCFG_GENERIC_TERMINAL_KEYBOARD_CB(PUT(zsbc3_state, kbd_put)) MACHINE_CONFIG_END /* ROM definition */ @@ -123,5 +124,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1980, zsbc3, 0, 0, zsbc3, zsbc3, driver_device, 0, "Digital Microsystems", "ZSBC-3", MACHINE_NO_SOUND_HW) +/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +COMP( 1980, zsbc3, 0, 0, zsbc3, zsbc3, zsbc3_state, 0, "Digital Microsystems", "ZSBC-3", MACHINE_NO_SOUND_HW) diff --git a/src/mame/drivers/zwackery.cpp b/src/mame/drivers/zwackery.cpp index 01591f36d27..327b9d69277 100644 --- a/src/mame/drivers/zwackery.cpp +++ b/src/mame/drivers/zwackery.cpp @@ -488,7 +488,7 @@ void zwackery_state::machine_start() // MACHINE DEFINTIONS //************************************************************************** -static MACHINE_CONFIG_START( zwackery, zwackery_state ) +static MACHINE_CONFIG_START( zwackery ) // basic machine hardware MCFG_CPU_ADD("maincpu", M68000, 7652400) // based on counter usage, should be XTAL_16MHz/2 MCFG_CPU_PROGRAM_MAP(zwackery_map) @@ -606,5 +606,5 @@ ROM_END // SYSTEM DRIVERS //************************************************************************** -// YEAR NAME PARENT MACHINE INPUT CLASS INIT ROTATION COMPANY FULLNAME FLAGS -GAME( 1984, zwackery, 0, zwackery, zwackery, driver_device, 0, ROT0, "Bally Midway", "Zwackery", MACHINE_SUPPORTS_SAVE ) +// YEAR NAME PARENT MACHINE INPUT CLASS INIT ROTATION COMPANY FULLNAME FLAGS +GAME( 1984, zwackery, 0, zwackery, zwackery, zwackery_state, 0, ROT0, "Bally Midway", "Zwackery", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/zx.cpp b/src/mame/drivers/zx.cpp index aa853f8c0f8..8d8063b374c 100644 --- a/src/mame/drivers/zx.cpp +++ b/src/mame/drivers/zx.cpp @@ -320,7 +320,7 @@ PALETTE_INIT_MEMBER(zx_state,ts1000) palette.set_pen_color(1, rgb_t::black()); } -static MACHINE_CONFIG_START( zx80, zx_state ) +static MACHINE_CONFIG_START( zx80 ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_6_5MHz/2) MCFG_CPU_PROGRAM_MAP(zx80_map) @@ -494,7 +494,7 @@ ROM_END /* Game Drivers */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS COMP( 1980, zx80, 0, 0, zx80, zx80, zx_state, zx, "Sinclair Research Ltd", "ZX-80", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW ) COMP( 1981, zx81, 0, 0, zx81, zx81, zx_state, zx, "Sinclair Research Ltd", "ZX-81", MACHINE_NO_SOUND_HW ) COMP( 1982, ts1000, zx81, 0, ts1000, zx81, zx_state, zx, "Timex Sinclair", "Timex Sinclair 1000", MACHINE_NO_SOUND_HW ) diff --git a/src/mame/etc/template_cpu.cpp b/src/mame/etc/template_cpu.cpp index 2989b384b2a..626e02171fb 100644 --- a/src/mame/etc/template_cpu.cpp +++ b/src/mame/etc/template_cpu.cpp @@ -7,11 +7,11 @@ *****************************************************************************/ #include "emu.h" -#include "debugger.h" #include "xxx.h" +#include "debugger.h" -const device_type XXX = &device_creator; +DEFINE_DEVICE_TYPE(XXX, xxx_cpu_device, "xxx", "XXX") /* FLAGS */ @@ -82,26 +82,26 @@ void xxx_cpu_device::execute_set_input(int irqline, int state) { switch(irqline) { - case XXX_INT_INTRM: - m_intrm_pending = (state == ASSERT_LINE); - m_intrm_state = state; + case XXX_INT_INTRM: // level-sensitive + m_intrm_pending = ((ASSERT_LINE == state) || (HOLD_LINE == state)); + m_intrm_state = (ASSERT_LINE == state); break; - case XXX_RESET: - if (state == ASSERT_LINE) + case XXX_RESET: // edge-sensitive + if (CLEAR_LINE != state) m_reset_pending = 1; - m_reset_state = state; + m_reset_state = (ASSERT_LINE == state); break; - case XXX_INT_INTR: - if (state == ASSERT_LINE) + case XXX_INT_INTR: // edge-sensitive + if (CLEAR_LINE != state) m_intr_pending = 1; - m_intr_state = state; + m_intr_state = (ASSERT_LINE == state); break; } } #endif xxx_cpu_device::xxx_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cpu_device(mconfig, XXX, "XXX", tag, owner, clock, "xxx", __FILE__) + : cpu_device(mconfig, XXX, tag, owner, clock) , m_program_config("program", ENDIANNESS_BIG, 8, 32, -1) , m_data_config("data", ENDIANNESS_BIG, 8, 32, 0) { @@ -113,11 +113,11 @@ void xxx_cpu_device::state_string_export(const device_state_entry &entry, std::s switch (entry.index()) { case STATE_GENFLAGS: - strprintf(str, "%c%c%c%c", - m_flags & 0x80 ? 'S':'.', - m_flags & 0x40 ? 'Z':'.', - m_flags & 0x20 ? 'V':'.', - m_flags & 0x10 ? 'C':'.'); + str = util::string_format("%c%c%c%c", + m_flags & 0x80 ? 'S':'.', + m_flags & 0x40 ? 'Z':'.', + m_flags & 0x20 ? 'V':'.', + m_flags & 0x10 ? 'C':'.'); break; } } @@ -125,6 +125,5 @@ void xxx_cpu_device::state_string_export(const device_state_entry &entry, std::s offs_t xxx_cpu_device::disasm_disassemble(char *buffer, offs_t pc, const uint32_t *oprom, const uint32_t *opram, uint32_t options) { - extern CPU_DISASSEMBLE( xxx ); return CPU_DISASSEMBLE_NAME(xxx)(this, buffer, pc, oprom, opram, options); } diff --git a/src/mame/etc/template_cpu.h b/src/mame/etc/template_cpu.h index 62af4185199..97467026087 100644 --- a/src/mame/etc/template_cpu.h +++ b/src/mame/etc/template_cpu.h @@ -6,10 +6,10 @@ * *****************************************************************************/ -#pragma once +#ifndef MAME_CPU_XXX_H +#define MAME_CPU_XXX_H -#ifndef __XXX_H__ -#define __XXX_H__ +#pragma once enum { @@ -24,7 +24,7 @@ class xxx_cpu_device : public cpu_device { public: // construction/destruction - xxx_cpu_device(const machine_config &mconfig, const char *_tag, device_t *_owner, uint32_t _clock); + xxx_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); protected: // device-level overrides @@ -39,7 +39,7 @@ protected: virtual void execute_set_input(int inputnum, int state) override; // device_memory_interface overrides - virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_0) const override { return (spacenum == AS_PROGRAM) ? &m_program_config : ( (spacenum == AS_DATA) ? &m_data_config : nullptr ); } + virtual const address_space_config *memory_space_config(address_spacenum spacenum) const override { return (spacenum == AS_PROGRAM) ? &m_program_config : (spacenum == AS_DATA) ? &m_data_config : nullptr; } // device_state_interface overrides virtual void state_string_export(const device_state_entry &entry, std::string &str) const override; @@ -63,9 +63,9 @@ private: }; -extern const device_type XXX; +DECLARE_DEVICE_TYPE(XXX, xxx_cpu_device) CPU_DISASSEMBLE( xxx ); -#endif /* __XXX_H__ */ +#endif // MAME_CPU_XXX_H diff --git a/src/mame/etc/template_device.cpp b/src/mame/etc/template_device.cpp index 358938a5ee0..f29b85215eb 100644 --- a/src/mame/etc/template_device.cpp +++ b/src/mame/etc/template_device.cpp @@ -2,7 +2,7 @@ // copyright-holders: /*************************************************************************** -Template for skeleton device +Template for squeleton device ***************************************************************************/ @@ -16,7 +16,7 @@ Template for skeleton device //************************************************************************** // device type definition -const device_type XXX = &device_creator; +DEFINE_DEVICE_TYPE(XXX, xxx_device, "xxx", "XXX Device") //************************************************************************** @@ -28,7 +28,7 @@ const device_type XXX = &device_creator; //------------------------------------------------- xxx_device::xxx_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, XXX, "xxx_longname", tag, owner, clock, "xxx", __FILE__) + : device_t(mconfig, XXX, tag, owner, clock) { } diff --git a/src/mame/etc/template_device.h b/src/mame/etc/template_device.h index b553f3058c6..8499fc44c39 100644 --- a/src/mame/etc/template_device.h +++ b/src/mame/etc/template_device.h @@ -2,14 +2,14 @@ // copyright-holders: /*************************************************************************** -Template for skeleton device +Template for squeleton device ***************************************************************************/ -#pragma once +#ifndef MAME_MACHINE_XXX_H +#define MAME_MACHINE_XXX_H -#ifndef __XXXDEV_H__ -#define __XXXDEV_H__ +#pragma once @@ -17,8 +17,9 @@ Template for skeleton device // INTERFACE CONFIGURATION MACROS //************************************************************************** -#define MCFG_XXX_ADD(_tag,_freq) \ - MCFG_DEVICE_ADD(_tag, XXX, _freq) +#define MCFG_XXX_ADD(tag, freq) \ + MCFG_DEVICE_ADD((tag), XXX, (freq)) + //************************************************************************** // TYPE DEFINITIONS @@ -45,7 +46,7 @@ protected: // device type definition -extern const device_type XXX; +DECLARE_DEVICE_TYPE(XXX, xxx_device) @@ -54,5 +55,4 @@ extern const device_type XXX; //************************************************************************** - -#endif +#endif // MAME_MACHINE_XXX_H diff --git a/src/mame/etc/template_driver.cpp b/src/mame/etc/template_driver.cpp index 84ad22ddf2d..56fe6ae5c29 100644 --- a/src/mame/etc/template_driver.cpp +++ b/src/mame/etc/template_driver.cpp @@ -2,7 +2,7 @@ // copyright-holders: /*************************************************************************** -Template for skeleton drivers +Template for squeleton drivers ***************************************************************************/ @@ -17,22 +17,24 @@ class xxx_state : public driver_device { public: xxx_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag), - m_maincpu(*this, "maincpu") - { } - - // devices - required_device m_maincpu; + : driver_device(mconfig, type, tag) + , m_maincpu(*this, "maincpu") + { + } // screen updates uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); DECLARE_PALETTE_INIT(xxx); + protected: // driver_device overrides virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); + + // devices + required_device m_maincpu; }; void xxx_state::video_start() @@ -137,7 +139,7 @@ PALETTE_INIT_MEMBER(xxx_state, xxx) { } -static MACHINE_CONFIG_START( xxx, xxx_state ) +static MACHINE_CONFIG_START( xxx ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80,MAIN_CLOCK/2) @@ -191,4 +193,4 @@ ROM_END // For a generic system: // SYST(YEAR,NAME,PARENT,COMPAT,MACHINE,INPUT,CLASS,INIT,COMPANY,FULLNAME,FLAGS) -GAME( 198?, xxx, 0, xxx, xxx, driver_device, 0, ROT0, "", "", MACHINE_IS_SKELETON ) +GAME( 198?, xxx, 0, xxx, xxx, xxxx_state, 0, ROT0, "", "", MACHINE_IS_SKELETON ) diff --git a/src/mame/includes/abc1600.h b/src/mame/includes/abc1600.h index de87b7dc048..2e24b965dd9 100644 --- a/src/mame/includes/abc1600.h +++ b/src/mame/includes/abc1600.h @@ -86,17 +86,17 @@ public: required_device m_dart; required_device m_scc; required_device m_cio; - required_device m_fdc; + required_device m_fdc; required_device m_rtc; required_device m_nvram; required_device m_ram; required_device m_floppy0; required_device m_floppy1; required_device m_floppy2; - required_device m_bus0i; - required_device m_bus0x; - required_device m_bus1; - required_device m_bus2; + required_device m_bus0i; + required_device m_bus0x; + required_device m_bus1; + required_device m_bus2; virtual void machine_start() override; virtual void machine_reset() override; diff --git a/src/mame/includes/abc80.h b/src/mame/includes/abc80.h index c389254e5df..0c17f01bddc 100644 --- a/src/mame/includes/abc80.h +++ b/src/mame/includes/abc80.h @@ -6,8 +6,10 @@ * ****************************************************************************/ -#ifndef __ABC80__ -#define __ABC80__ +#ifndef MAME_INCLUDES_ABC80_H +#define MAME_INCLUDES_ABC80_H + +#pragma once #include "bus/abcbus/abcbus.h" #include "bus/rs232/rs232.h" @@ -94,7 +96,7 @@ public: required_device m_pio; required_device m_csg; required_device m_cassette; - required_device m_bus; + required_device m_bus; required_device m_kb; required_device m_ram; required_device m_rs232; @@ -145,7 +147,7 @@ public: DECLARE_WRITE8_MEMBER( pio_pb_w ); DECLARE_WRITE_LINE_MEMBER( keydown_w ); - DECLARE_WRITE8_MEMBER( kbd_w ); + void kbd_w(u8 data); DECLARE_WRITE8_MEMBER( csg_w ); DECLARE_QUICKLOAD_LOAD_MEMBER( bac ); @@ -188,4 +190,4 @@ public: MACHINE_CONFIG_EXTERN( abc80_video ); -#endif +#endif // MAME_INCLUDES_ABC80_H diff --git a/src/mame/includes/alesis.h b/src/mame/includes/alesis.h index 47076f5cb0b..cdcf4723b56 100644 --- a/src/mame/includes/alesis.h +++ b/src/mame/includes/alesis.h @@ -6,10 +6,10 @@ ****************************************************************************/ -#pragma once +#ifndef MAME_INCLUDES_ALESIS_H +#define MAME_INCLUDES_ALESIS_H -#ifndef _ALESIS_H_ -#define _ALESIS_H_ +#pragma once #include "cpu/mcs51/mcs51.h" #include "machine/nvram.h" @@ -111,6 +111,6 @@ private: }; // device type definition -extern const device_type ALESIS_DM3AG; +DECLARE_DEVICE_TYPE(ALESIS_DM3AG, alesis_dm3ag_device) -#endif // _ALESIS_H_ +#endif // MAME_INCLUDES_ALESIS_H diff --git a/src/mame/includes/amiga.h b/src/mame/includes/amiga.h index a5de8bf3224..532bbe6341d 100644 --- a/src/mame/includes/amiga.h +++ b/src/mame/includes/amiga.h @@ -9,8 +9,10 @@ Ernesto Corvi & Mariusz Wojcieszek ***************************************************************************/ -#ifndef __AMIGA_H__ -#define __AMIGA_H__ +#ifndef MAME_INCLUDES_AMIGA_H +#define MAME_INCLUDES_AMIGA_H + +#pragma once #include "cpu/m68000/m68000.h" #include "machine/bankdev.h" @@ -579,7 +581,7 @@ protected: optional_device m_rs232; optional_device m_centronics; required_device m_paula; - optional_device m_fdc; + optional_device m_fdc; required_device m_screen; optional_device m_palette; required_device m_overlay; @@ -703,4 +705,4 @@ void amiga_sprite_enable_comparitor(running_machine &machine, int which, int ena MACHINE_CONFIG_EXTERN( pal_video ); MACHINE_CONFIG_EXTERN( ntsc_video ); -#endif /* __AMIGA_H__ */ +#endif // MAME_INCLUDES_AMIGA_H diff --git a/src/mame/includes/apollo.h b/src/mame/includes/apollo.h index 64072444a6b..e1006db7bee 100644 --- a/src/mame/includes/apollo.h +++ b/src/mame/includes/apollo.h @@ -8,28 +8,33 @@ * */ +#ifndef MAME_INCLUDES_APOLLO_H +#define MAME_INCLUDES_APOLLO_H + #pragma once -#ifndef APOLLO_H_ -#define APOLLO_H_ +#include "machine/apollo_dbg.h" +#include "machine/apollo_kbd.h" #include "cpu/m68000/m68000.h" -#include "bus/rs232/rs232.h" -#include "machine/terminal.h" -#include "machine/ram.h" + #include "machine/6840ptm.h" -#include "machine/mc68681.h" #include "machine/am9517a.h" -#include "machine/pic8259.h" -#include "machine/mc146818.h" -#include "machine/apollo_dbg.h" -#include "machine/apollo_kbd.h" #include "machine/clock.h" +#include "machine/mc146818.h" +#include "machine/mc68681.h" +#include "machine/pic8259.h" +#include "machine/ram.h" +#include "machine/terminal.h" + #include "bus/isa/isa.h" #include "bus/isa/isa_cards.h" #include "bus/isa/3c505.h" + +#include "bus/rs232/rs232.h" + #ifndef VERBOSE #define VERBOSE 0 #endif @@ -338,7 +343,7 @@ private: uint8_t m_ip6; }; -extern const device_type APOLLO_SIO; +DECLARE_DEVICE_TYPE(APOLLO_SIO, apollo_sio) /*----------- machine/apollo_ni.c -----------*/ @@ -387,7 +392,7 @@ private: }; // device type definition -extern const device_type APOLLO_NI; +DECLARE_DEVICE_TYPE(APOLLO_NI, apollo_ni) /*----------- video/apollo.c -----------*/ @@ -397,7 +402,6 @@ class apollo_graphics_15i : public device_t { public: apollo_graphics_15i(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - apollo_graphics_15i(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock, device_type type, const char *name, const char *shortname, const char *source); ~apollo_graphics_15i(); uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); @@ -425,6 +429,8 @@ public: int is_mono() { return m_n_planes == 1; } protected: + apollo_graphics_15i(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock, device_type type); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -624,7 +630,7 @@ private: running_machine *m_machine; }; -extern const device_type APOLLO_GRAPHICS; +DECLARE_DEVICE_TYPE(APOLLO_GRAPHICS, apollo_graphics_15i) #define MCFG_APOLLO_GRAPHICS_ADD( _tag) \ MCFG_FRAGMENT_ADD(apollo_graphics) \ @@ -645,7 +651,7 @@ private: // internal state }; -extern const device_type APOLLO_MONO19I; +DECLARE_DEVICE_TYPE(APOLLO_MONO19I, apollo_graphics_19i) #define MCFG_APOLLO_MONO19I_ADD(_tag) \ MCFG_FRAGMENT_ADD(apollo_mono19i) \ @@ -708,7 +714,7 @@ private: }; // device type definition -extern const device_type APOLLO_STDIO; +DECLARE_DEVICE_TYPE(APOLLO_STDIO, apollo_stdio_device) #endif /* APOLLO_XXL */ -#endif /* APOLLO_H_ */ +#endif // MAME_INCLUDES_APOLLO_H diff --git a/src/mame/includes/apple3.h b/src/mame/includes/apple3.h index 43446b315fa..ebb34c4d6ff 100644 --- a/src/mame/includes/apple3.h +++ b/src/mame/includes/apple3.h @@ -69,7 +69,7 @@ public: required_device m_via_0; required_device m_via_1; required_device m_acia; - required_device m_fdc; + required_device m_fdc; required_device m_ay3600; required_device m_a2bus; required_device m_rtc; diff --git a/src/mame/includes/arcadia.h b/src/mame/includes/arcadia.h index 21a1c5f3c50..f2171ce36b1 100644 --- a/src/mame/includes/arcadia.h +++ b/src/mame/includes/arcadia.h @@ -6,8 +6,8 @@ * ****************************************************************************/ -#ifndef ARCADIA_H_ -#define ARCADIA_H_ +#ifndef MAME_INCLUDES_ARCADIA_H +#define MAME_INCLUDES_ARCADIA_H #include "cpu/s2650/s2650.h" #include "audio/arcadia.h" @@ -126,4 +126,4 @@ protected: required_device m_palette; required_device m_screen; }; -#endif /* ARCADIA_H_ */ +#endif // MAME_INCLUDES_ARCADIA_H diff --git a/src/mame/includes/archimds.h b/src/mame/includes/archimds.h index 16c5782c78e..7db518ccfc6 100644 --- a/src/mame/includes/archimds.h +++ b/src/mame/includes/archimds.h @@ -100,7 +100,7 @@ public: protected: required_device m_maincpu; optional_device m_i2cmem; - optional_device m_fdc; + optional_device m_fdc; optional_device m_floppy0; optional_device m_floppy1; required_memory_region m_region_maincpu; diff --git a/src/mame/includes/atarigt.h b/src/mame/includes/atarigt.h index e958683f36e..7e632b4d544 100644 --- a/src/mame/includes/atarigt.h +++ b/src/mame/includes/atarigt.h @@ -6,8 +6,9 @@ *************************************************************************/ -#include "machine/atarigen.h" #include "audio/cage.h" +#include "machine/atarigen.h" +#include "video/atarirle.h" #define CRAM_ENTRIES 0x4000 #define TRAM_ENTRIES 0x4000 diff --git a/src/mame/includes/atarigx2.h b/src/mame/includes/atarigx2.h index 11618c9ea09..76e4199be92 100644 --- a/src/mame/includes/atarigx2.h +++ b/src/mame/includes/atarigx2.h @@ -16,14 +16,14 @@ class atarigx2_state : public atarigen_state { public: atarigx2_state(const machine_config &mconfig, device_type type, const char *tag) - : atarigen_state(mconfig, type, tag), - m_jsa(*this, "jsa"), - m_xga(*this, "xga"), - m_mo_command(*this, "mo_command"), - m_playfield_tilemap(*this, "playfield"), - m_alpha_tilemap(*this, "alpha"), - m_rle(*this, "rle") - { } + : atarigen_state(mconfig, type, tag) + , m_jsa(*this, "jsa") + , m_xga(*this, "xga") + , m_mo_command(*this, "mo_command") + , m_playfield_tilemap(*this, "playfield") + , m_alpha_tilemap(*this, "alpha") + , m_rle(*this, "rle") + { } uint16_t m_playfield_base; diff --git a/src/mame/includes/atarist.h b/src/mame/includes/atarist.h index bddb2781113..5ed1f0d373f 100644 --- a/src/mame/includes/atarist.h +++ b/src/mame/includes/atarist.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Curt Coder, Olivier Galibert -#pragma once +#ifndef MAME_INCLUDES_ATARI_ST_H +#define MAME_INCLUDES_ATARI_ST_H -#ifndef __ATARI_ST__ -#define __ATARI_ST__ +#pragma once #include "bus/rs232/rs232.h" #include "cpu/m68000/m68000.h" @@ -124,7 +124,7 @@ public: { } required_device m_maincpu; - required_device m_fdc; + required_device m_fdc; required_device m_mfp; required_device m_acia0; required_device m_acia1; @@ -465,4 +465,4 @@ public: DECLARE_READ8_MEMBER( mfp_gpio_r ); }; -#endif +#endif // MAME_INCLUDES_ATARI_ST_H diff --git a/src/mame/includes/aussiebyte.h b/src/mame/includes/aussiebyte.h index 4fe530f4ed3..7cb3a5268c6 100644 --- a/src/mame/includes/aussiebyte.h +++ b/src/mame/includes/aussiebyte.h @@ -131,7 +131,7 @@ private: required_device m_sio2; required_device m_centronics; required_device m_rs232; - required_device m_fdc; + required_device m_fdc; required_device m_floppy0; optional_device m_floppy1; required_device m_crtc; diff --git a/src/mame/includes/b2m.h b/src/mame/includes/b2m.h index 156e2c7df9a..03ab576cf62 100644 --- a/src/mame/includes/b2m.h +++ b/src/mame/includes/b2m.h @@ -9,6 +9,8 @@ #ifndef MAME_INCLUDES_B2M_H #define MAME_INCLUDES_B2M_H +#pragma once + #include "machine/i8255.h" #include "machine/pic8259.h" #include "machine/pit8253.h" @@ -21,45 +23,23 @@ class b2m_state : public driver_device { public: b2m_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag), - m_maincpu(*this, "maincpu"), - m_speaker(*this, "speaker"), - m_pit(*this, "pit8253"), - m_ram(*this, RAM_TAG), - m_palette(*this, "palette") { } - - uint8_t m_b2m_8255_porta; - uint8_t m_b2m_video_scroll; - uint8_t m_b2m_8255_portc; - - uint8_t m_b2m_video_page; - uint8_t m_b2m_drive; - uint8_t m_b2m_side; + : driver_device(mconfig, type, tag) + , m_maincpu(*this, "maincpu") + , m_speaker(*this, "speaker") + , m_pit(*this, "pit8253") + , m_ram(*this, RAM_TAG) + , m_palette(*this, "palette") + , m_fdc(*this, "fd1793") + , m_pic(*this, "pic8259") + { } - uint8_t m_b2m_romdisk_lsb; - uint8_t m_b2m_romdisk_msb; - - uint8_t m_b2m_color[4]; - uint8_t m_b2m_localmachine; - uint8_t m_vblank_state; - required_device m_maincpu; - required_device m_speaker; - required_device m_pit; - required_device m_ram; - required_device m_palette; - - /* devices */ - fd1793_t *m_fdc; - pic8259_device *m_pic; DECLARE_READ8_MEMBER(b2m_keyboard_r); DECLARE_WRITE8_MEMBER(b2m_palette_w); DECLARE_READ8_MEMBER(b2m_palette_r); DECLARE_WRITE8_MEMBER(b2m_localmachine_w); DECLARE_READ8_MEMBER(b2m_localmachine_r); DECLARE_DRIVER_INIT(b2m); - virtual void machine_start() override; - virtual void machine_reset() override; - virtual void video_start() override; + DECLARE_PALETTE_INIT(b2m); uint32_t screen_update_b2m(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(b2m_vblank_interrupt); @@ -74,8 +54,38 @@ public: DECLARE_WRITE8_MEMBER(b2m_romdisk_portc_w); DECLARE_WRITE_LINE_MEMBER(b2m_fdc_drq); DECLARE_FLOPPY_FORMATS( b2m_floppy_formats ); + +protected: + virtual void machine_start() override; + virtual void machine_reset() override; + virtual void video_start() override; + void b2m_postload(); void b2m_set_bank(int bank); + + uint8_t m_b2m_8255_porta; + uint8_t m_b2m_video_scroll; + uint8_t m_b2m_8255_portc; + + uint8_t m_b2m_video_page; + uint8_t m_b2m_drive; + uint8_t m_b2m_side; + + uint8_t m_b2m_romdisk_lsb; + uint8_t m_b2m_romdisk_msb; + + uint8_t m_b2m_color[4]; + uint8_t m_b2m_localmachine; + uint8_t m_vblank_state; + required_device m_maincpu; + required_device m_speaker; + required_device m_pit; + required_device m_ram; + required_device m_palette; + + /* devices */ + optional_device m_fdc; + optional_device m_pic; }; #endif // MAME_INCLUDES_B2M_H diff --git a/src/mame/includes/bbc.h b/src/mame/includes/bbc.h index 2899c8c88be..dacbdf4d622 100644 --- a/src/mame/includes/bbc.h +++ b/src/mame/includes/bbc.h @@ -230,8 +230,8 @@ public: // HACK FOR MC6845 optional_device m_rtc; optional_device m_fdc; optional_device m_i8271; - optional_device m_wd1770; - optional_device m_wd1772; + optional_device m_wd1770; + optional_device m_wd1772; optional_device m_exp1; optional_device m_exp2; optional_device m_exp3; diff --git a/src/mame/includes/bfm_sc4.h b/src/mame/includes/bfm_sc4.h index 1933b6cdc92..be08dd9d447 100644 --- a/src/mame/includes/bfm_sc4.h +++ b/src/mame/includes/bfm_sc4.h @@ -2,6 +2,10 @@ // copyright-holders:David Haywood /* Scorpion 4 + 5 driver related includes */ /* mainly used for stuff which is currently shared between sc4 / 5 sets to avoid duplication */ +#ifndef MAME_INCLUDES_BFP_SC4_H +#define MAME_INCLUDES_BFP_SC4_H + +#pragma once #include "machine/sec.h" #include "machine/steppers.h" // stepper motor @@ -95,8 +99,8 @@ public: public: required_device m_duart; - optional_device m_vfd0; - optional_device m_dm01; + optional_device m_vfd0; + optional_device m_dm01; required_device m_ymz; // serial vfd @@ -139,7 +143,7 @@ public: m_dochk41 = false; } - required_device m_maincpu; + required_device m_maincpu; required_memory_region m_cpuregion; // devices required_device m_nvram; @@ -638,7 +642,7 @@ public: DECLARE_MACHINE_START(adder4); // devices - required_device m_adder4cpu; + required_device m_adder4cpu; }; @@ -3373,3 +3377,5 @@ INPUT_PORTS_EXTERN( sc4_raw ); ROM_REGION( 0x400000, "ymz", ROMREGION_ERASE00 ) \ /* not for either of these games? */ \ ROM_LOAD( "casroysnd.bin", 0x00000, 0x80000, CRC(cf1d4b59) SHA1(1b2bc74c6fcc43197a6f295bc34554da01f7b517) ) + +#endif // MAME_INCLUDES_BFP_SC4_H diff --git a/src/mame/includes/bullet.h b/src/mame/includes/bullet.h index 3b9ca19b9f4..9902d4e2753 100644 --- a/src/mame/includes/bullet.h +++ b/src/mame/includes/bullet.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Curt Coder -#pragma once +#ifndef MAME_INCLUDES_BULLET_H +#define MAME_INCLUDES_BULLET_H -#ifndef __BULLET__ -#define __BULLET__ +#pragma once #include "cpu/z80/z80.h" #include "bus/centronics/ctronics.h" @@ -55,28 +55,6 @@ public: { } - required_device m_maincpu; - required_device m_ctc; - required_device m_dart; - required_device m_dmac; - required_device m_fdc; - required_device m_ram; - required_device m_floppy0; - required_device m_floppy1; - required_device m_floppy2; - required_device m_floppy3; - required_device m_floppy4; - required_device m_floppy5; - required_device m_floppy6; - required_device m_floppy7; - floppy_image_device *m_floppy; - required_device m_centronics; - required_memory_region m_rom; - required_ioport m_sw1; - - virtual void machine_start() override; - virtual void machine_reset() override; - DECLARE_READ8_MEMBER( mreq_r ); DECLARE_WRITE8_MEMBER( mreq_w ); DECLARE_READ8_MEMBER( info_r ); @@ -99,7 +77,36 @@ public: DECLARE_WRITE_LINE_MEMBER( write_centronics_fault ); DECLARE_WRITE_LINE_MEMBER( fdc_drq_w ); + TIMER_DEVICE_CALLBACK_MEMBER(ctc_tick); + DECLARE_WRITE_LINE_MEMBER(dart_rxtxca_w); + DECLARE_READ8_MEMBER(io_read_byte); + DECLARE_WRITE8_MEMBER(io_write_byte); + +protected: + virtual void machine_start() override; + virtual void machine_reset() override; + void update_dma_rdy(); + + required_device m_maincpu; + required_device m_ctc; + required_device m_dart; + required_device m_dmac; + required_device m_fdc; + required_device m_ram; + required_device m_floppy0; + required_device m_floppy1; + required_device m_floppy2; + required_device m_floppy3; + required_device m_floppy4; + required_device m_floppy5; + required_device m_floppy6; + required_device m_floppy7; + floppy_image_device *m_floppy; + required_device m_centronics; + required_memory_region m_rom; + required_ioport m_sw1; + // memory state int m_segst; int m_brom; @@ -120,11 +127,6 @@ public: int m_centronics_perror; int m_centronics_select; int m_centronics_fault; - - TIMER_DEVICE_CALLBACK_MEMBER(ctc_tick); - DECLARE_WRITE_LINE_MEMBER(dart_rxtxca_w); - DECLARE_READ8_MEMBER(io_read_byte); - DECLARE_WRITE8_MEMBER(io_write_byte); }; class bulletf_state : public bullet_state @@ -141,16 +143,6 @@ public: { } - required_device m_floppy8; - required_device m_floppy9; - required_device m_scsibus; - required_device m_scsi_data_in; - required_device m_scsi_data_out; - required_device m_scsi_ctrl_in; - - virtual void machine_start() override; - virtual void machine_reset() override; - DECLARE_READ8_MEMBER( mreq_r ); DECLARE_WRITE8_MEMBER( mreq_w ); DECLARE_WRITE8_MEMBER( xdma0_w ); @@ -166,8 +158,19 @@ public: DECLARE_WRITE_LINE_MEMBER( cstrb_w ); DECLARE_WRITE_LINE_MEMBER( req_w ); +protected: + virtual void machine_start() override; + virtual void machine_reset() override; + void update_dma_rdy(); + required_device m_floppy8; + required_device m_floppy9; + required_device m_scsibus; + required_device m_scsi_data_in; + required_device m_scsi_data_out; + required_device m_scsi_ctrl_in; + int m_rome; uint8_t m_xdma0; uint8_t m_mbank; @@ -175,4 +178,4 @@ public: int m_wrdy; }; -#endif +#endif // MAME_INCLUDES_BULLET_H diff --git a/src/mame/includes/bw2.h b/src/mame/includes/bw2.h index 067fe96a983..f9a36bc9614 100644 --- a/src/mame/includes/bw2.h +++ b/src/mame/includes/bw2.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Curt Coder -#pragma once +#ifndef MAME_INCLUDES_BW2_H +#define MAME_INCLUDES_BW2_H -#ifndef __BW2__ -#define __BW2__ +#pragma once #include "bus/bw2/exp.h" #include "cpu/z80/z80.h" @@ -50,7 +50,7 @@ public: required_device m_maincpu; required_device m_uart; - required_device m_fdc; + required_device m_fdc; required_device m_lcdc; required_device m_pit; required_device m_centronics; @@ -96,4 +96,4 @@ public: int m_centronics_busy; }; -#endif +#endif // MAME_INCLUDES_BW2_H diff --git a/src/mame/includes/capbowl.h b/src/mame/includes/capbowl.h index 2cffa30c5c7..5d856c1a27c 100644 --- a/src/mame/includes/capbowl.h +++ b/src/mame/includes/capbowl.h @@ -5,6 +5,10 @@ Coors Light Bowling/Bowl-O-Rama hardware *************************************************************************/ +#ifndef MAME_INCLUDES_CAPBOWL_H +#define MAME_INCLUDES_CAPBOWL_H + +#pragma once #include "machine/gen_latch.h" #include "machine/nvram.h" @@ -72,8 +76,10 @@ public: TIMER_CALLBACK_MEMBER(update); uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); - inline rgb_t pen_for_pixel( uint8_t *src, uint8_t pix ); + inline rgb_t pen_for_pixel( uint8_t const *src, uint8_t pix ); protected: virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; }; + +#endif // MAME_INCLUDES_CAPBOWL_H diff --git a/src/mame/includes/cidelsa.h b/src/mame/includes/cidelsa.h index 4fecb52f077..4c101366e49 100644 --- a/src/mame/includes/cidelsa.h +++ b/src/mame/includes/cidelsa.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Curt Coder -#pragma once +#ifndef MAME_INCLUDES_CIDELSA_H +#define MAME_INCLUDES_CIDELSA_H -#ifndef __CIDELSA__ -#define __CIDELSA__ +#pragma once #include "cpu/cosmac/cosmac.h" @@ -13,6 +13,7 @@ #include "machine/cdp1852.h" #include "machine/nvram.h" + #define SCREEN_TAG "screen" #define CDP1802_TAG "cdp1802" #define CDP1869_TAG "cdp1869" @@ -22,9 +23,9 @@ #define DESTRYER_CHR1 3579000.0 // unverified #define DESTRYER_CHR2 XTAL_5_7143MHz #define ALTAIR_CHR1 3579000.0 // unverified -#define ALTAIR_CHR2 CDP1869_DOT_CLK_PAL // unverified +#define ALTAIR_CHR2 cdp1869_device::DOT_CLK_PAL // unverified #define DRACO_CHR1 XTAL_4_43361MHz -#define DRACO_CHR2 CDP1869_DOT_CLK_PAL // unverified +#define DRACO_CHR2 cdp1869_device::DOT_CLK_PAL // unverified #define DRACO_SND_CHR1 XTAL_2_01216MHz #define CIDELSA_PAGERAM_SIZE 0x400 @@ -35,6 +36,7 @@ #define DRACO_PAGERAM_MASK 0x7ff #define CIDELSA_CHARRAM_MASK 0x7ff + class cidelsa_state : public driver_device { public: @@ -44,9 +46,9 @@ public: }; cidelsa_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag), - m_maincpu(*this, CDP1802_TAG), - m_vis(*this, CDP1869_TAG) + : driver_device(mconfig, type, tag) + , m_maincpu(*this, CDP1802_TAG) + , m_vis(*this, CDP1869_TAG) { } required_device m_maincpu; @@ -121,4 +123,4 @@ MACHINE_CONFIG_EXTERN( destryer_video ); MACHINE_CONFIG_EXTERN( altair_video ); MACHINE_CONFIG_EXTERN( draco_video ); -#endif +#endif // MAME_INCLUDES_CIDELSA_H diff --git a/src/mame/includes/dgn_beta.h b/src/mame/includes/dgn_beta.h index 497ed180b36..9e6d7f24c7c 100644 --- a/src/mame/includes/dgn_beta.h +++ b/src/mame/includes/dgn_beta.h @@ -108,7 +108,7 @@ public: required_device m_pia_0; required_device m_pia_1; required_device m_pia_2; - required_device m_fdc; + required_device m_fdc; required_device m_floppy0; required_device m_floppy1; required_device m_floppy2; diff --git a/src/mame/includes/dgnalpha.h b/src/mame/includes/dgnalpha.h index 9ea62d3aeef..128f5e3915b 100644 --- a/src/mame/includes/dgnalpha.h +++ b/src/mame/includes/dgnalpha.h @@ -8,10 +8,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_INCLUDES_DGNALPHA_H +#define MAME_INCLUDES_DGNALPHA_H -#ifndef __DGNALPHA__ -#define __DGNALPHA__ +#pragma once #include "includes/dragon.h" @@ -52,14 +52,6 @@ public: DECLARE_FLOPPY_FORMATS(dragon_formats); - required_device m_pia_2; - required_device m_ay8912; - required_device m_fdc; - required_device m_floppy0; - required_device m_floppy1; - required_device m_floppy2; - required_device m_floppy3; - /* pia2 */ DECLARE_WRITE8_MEMBER( pia2_pa_w ); @@ -86,6 +78,14 @@ protected: virtual DECLARE_READ8_MEMBER( ff20_read ) override; virtual DECLARE_WRITE8_MEMBER( ff20_write ) override; + required_device m_pia_2; + required_device m_ay8912; + required_device m_fdc; + required_device m_floppy0; + required_device m_floppy1; + required_device m_floppy2; + required_device m_floppy3; + private: uint8_t m_just_reset; @@ -94,4 +94,4 @@ private: void modem_w(offs_t offset, uint8_t data); }; -#endif /* __DGNALPHA__ */ +#endif // MAME_INCLUDES_DGNALPHA_H diff --git a/src/mame/includes/dm7000.h b/src/mame/includes/dm7000.h index b50ee550e78..8b2b52b588d 100644 --- a/src/mame/includes/dm7000.h +++ b/src/mame/includes/dm7000.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Lukasz Markowski -#ifndef DM7000_H_ -#define DM7000_H_ +#ifndef MAME_INCLUDES_DM7000_H +#define MAME_INCLUDES_DM7000_H + +#pragma once #include "cpu/powerpc/ppc.h" #include "machine/terminal.h" @@ -28,7 +30,7 @@ public: DECLARE_WRITE8_MEMBER ( dm7000_scc0_w ); DECLARE_READ8_MEMBER ( dm7000_scc0_r ); - DECLARE_WRITE8_MEMBER(kbd_put); + void kbd_put(u8 data); uint8_t m_scc0_lcr; uint8_t m_scc0_lsr; uint8_t m_term_data; @@ -90,4 +92,4 @@ public: #define DCRSTB045_DISP_MODE 0x154 /* Display Mode Register */ #define DCRSTB045_FRAME_BUFR_BASE 0x179 /* Frame Buffers Base Address Register */ -#endif /* DM7000_H_ */ +#endif // MAME_INCLUDES_DM7000_H diff --git a/src/mame/includes/dooyong.h b/src/mame/includes/dooyong.h deleted file mode 100644 index 44da12b5215..00000000000 --- a/src/mame/includes/dooyong.h +++ /dev/null @@ -1,297 +0,0 @@ -// license:BSD-3-Clause -// copyright-holders:Nicola Salmoria,Vas Crabb -#include "video/bufsprite.h" -#include "screen.h" - -#define MCFG_DOOYONG_ROM_TILEMAP_ADD(tag, gfx, num, rom, offset) \ - MCFG_DEVICE_ADD(tag, DOOYONG_ROM_TILEMAP, 0) \ - dooyong_rom_tilemap_device::static_set_gfxdecode_tag(*device, "^" gfx); \ - dooyong_rom_tilemap_device::static_set_tilerom_tag(*device, "^" rom); \ - dooyong_rom_tilemap_device::static_set_gfxnum(*device, (num)); \ - dooyong_rom_tilemap_device::static_set_tilerom_offset(*device, (offset)); -#define MCFG_DOOYONG_ROM_TILEMAP_TRANSPARENT_PEN(pen) \ - dooyong_rom_tilemap_device::static_set_transparent_pen(*device, (pen)); -#define MCFG_DOOYONG_ROM_TILEMAP_PRIMELLA_CODE_BITS(bits) \ - dooyong_rom_tilemap_device::static_set_primella_code_bits(*device, (bits)); - -#define MCFG_RSHARK_ROM_TILEMAP_ADD(tag, gfx, num, rom, offset, rom2, offset2) \ - MCFG_DEVICE_ADD(tag, RSHARK_ROM_TILEMAP, 0) \ - dooyong_rom_tilemap_device::static_set_gfxdecode_tag(*device, "^" gfx); \ - dooyong_rom_tilemap_device::static_set_tilerom_tag(*device, "^" rom); \ - dooyong_rom_tilemap_device::static_set_gfxnum(*device, (num)); \ - dooyong_rom_tilemap_device::static_set_tilerom_offset(*device, (offset)); \ - dooyong_rom_tilemap_device::static_set_primella_code_bits(*device, 13); \ - rshark_rom_tilemap_device::static_set_colorrom_tag(*device, "^" rom2); \ - rshark_rom_tilemap_device::static_set_colorrom_offset(*device, (offset2)); - -#define MCFG_DOOYONG_RAM_TILEMAP_ADD(tag, gfx, num) \ - MCFG_DEVICE_ADD(tag, DOOYONG_RAM_TILEMAP, 0) \ - dooyong_rom_tilemap_device::static_set_gfxdecode_tag(*device, "^" gfx); \ - dooyong_rom_tilemap_device::static_set_gfxnum(*device, (num)); - - -extern device_type const DOOYONG_ROM_TILEMAP; -extern device_type const RSHARK_ROM_TILEMAP; -extern device_type const DOOYONG_RAM_TILEMAP; - - -class dooyong_tilemap_device_base : public device_t -{ -public: - static void static_set_gfxdecode_tag(device_t &device, char const *tag); - static void static_set_gfxnum(device_t &device, int gfxnum); - - void draw(screen_device &screen, bitmap_ind16 &dest, rectangle const &cliprect, uint32_t flags, uint8_t priority); - - void set_palette_bank(uint16_t bank); - -protected: - dooyong_tilemap_device_base( - machine_config const &mconfig, - device_type type, - char const *name, - char const *tag, - device_t *owner, - uint32_t clock, - char const *shortname, - char const *source); - - gfx_element const &gfx() const { return *m_gfxdecode->gfx(m_gfxnum); } - - required_device m_gfxdecode; - int m_gfxnum; - - tilemap_t *m_tilemap; - uint16_t m_palette_bank; -}; - -class dooyong_rom_tilemap_device : public dooyong_tilemap_device_base -{ -public: - dooyong_rom_tilemap_device(machine_config const &mconfig, char const *tag, device_t *owner, uint32_t clock); - - static void static_set_tilerom_tag(device_t &device, char const *tag); - static void static_set_tilerom_offset(device_t &device, int offset); - static void static_set_transparent_pen(device_t &device, unsigned pen); - static void static_set_primella_code_bits(device_t &device, unsigned bits); - - DECLARE_WRITE8_MEMBER(ctrl_w); - -protected: - dooyong_rom_tilemap_device( - machine_config const &mconfig, - device_type type, - char const *name, - char const *tag, - device_t *owner, - uint32_t clock, - char const *shortname, - char const *source); - - virtual void device_start() override; - - virtual TILE_GET_INFO_MEMBER(tile_info); - - tilemap_memory_index adjust_tile_index(tilemap_memory_index tile_index) const - { return tile_index + ((unsigned(m_registers[1]) * 256U / gfx().width()) * m_rows); } - - int m_rows; - -private: - required_region_ptr m_tilerom; - int m_tilerom_offset; - unsigned m_transparent_pen; - unsigned m_primella_code_mask; - unsigned m_primella_color_mask; - unsigned m_primella_color_shift; - - uint8_t m_registers[0x10]; -}; - -class rshark_rom_tilemap_device : public dooyong_rom_tilemap_device -{ -public: - rshark_rom_tilemap_device(machine_config const &mconfig, char const *tag, device_t *owner, uint32_t clock); - - static void static_set_colorrom_tag(device_t &device, char const *tag); - static void static_set_colorrom_offset(device_t &device, int offset); - -protected: - virtual void device_start() override; - - virtual TILE_GET_INFO_MEMBER(tile_info) override; - -private: - required_region_ptr m_colorrom; - int m_colorrom_offset; -}; - -class dooyong_ram_tilemap_device : public dooyong_tilemap_device_base -{ -public: - dooyong_ram_tilemap_device(machine_config const &mconfig, char const *tag, device_t *owner, uint32_t clock); - - DECLARE_READ16_MEMBER(tileram_r) { return m_tileram[offset & ((64U * 32U) - 1)]; } - DECLARE_WRITE16_MEMBER(tileram_w); - void set_scrolly(int value) { m_tilemap->set_scrolly(value); } - -protected: - virtual void device_start() override; - -private: - TILE_GET_INFO_MEMBER(tile_info); - - std::unique_ptr m_tileram; -}; - - -class dooyong_state : public driver_device -{ -public: - dooyong_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) - , m_maincpu(*this, "maincpu") - , m_audiocpu(*this, "audiocpu") - , m_gfxdecode(*this, "gfxdecode") - , m_palette(*this, "palette") - , m_bg(*this, "bg") - , m_bg2(*this, "bg2") - , m_fg(*this, "fg") - , m_fg2(*this, "fg2") - { - } - - required_device m_maincpu; - required_device m_audiocpu; - required_device m_gfxdecode; - required_device m_palette; - optional_device m_bg; - optional_device m_bg2; - optional_device m_fg; - optional_device m_fg2; -}; - -class dooyong_z80_state : public dooyong_state -{ -public: - dooyong_z80_state(const machine_config &mconfig, device_type type, const char *tag) - : dooyong_state(mconfig, type, tag) - , m_tx(*this, "tx") - , m_spriteram(*this, "spriteram") - { - } - - enum - { - SPRITE_12BIT = 0x01, - SPRITE_HEIGHT = 0x02, - SPRITE_YSHIFT_BLUEHAWK = 0x04, - SPRITE_YSHIFT_FLYTIGER = 0x08 - }; - - DECLARE_WRITE8_MEMBER(flip_screen_w); - DECLARE_WRITE8_MEMBER(bankswitch_w); - DECLARE_READ8_MEMBER(lastday_tx_r); - DECLARE_WRITE8_MEMBER(lastday_tx_w); - DECLARE_READ8_MEMBER(bluehawk_tx_r); - DECLARE_WRITE8_MEMBER(bluehawk_tx_w); - DECLARE_WRITE8_MEMBER(primella_ctrl_w); - DECLARE_READ8_MEMBER(paletteram_flytiger_r); - DECLARE_WRITE8_MEMBER(paletteram_flytiger_w); - DECLARE_WRITE8_MEMBER(flytiger_ctrl_w); - TILE_GET_INFO_MEMBER(get_tx_tile_info); - void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, unsigned extensions = 0); - uint32_t screen_update_bluehawk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - uint32_t screen_update_flytiger(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - uint32_t screen_update_primella(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - DECLARE_MACHINE_START(cpu_z80); - DECLARE_VIDEO_START(bluehawk); - DECLARE_VIDEO_START(flytiger); - DECLARE_VIDEO_START(primella); - - std::unique_ptr m_paletteram_flytiger; - uint8_t m_sprites_disabled = 0; - uint8_t m_flytiger_pri = 0; - uint8_t m_tx_pri = 0; - uint8_t m_palette_bank = 0; - - required_device m_tx; - optional_device m_spriteram; -}; - -class dooyong_z80_ym2203_state : public dooyong_z80_state -{ -public: - dooyong_z80_ym2203_state(const machine_config &mconfig, device_type type, const char *tag) - : dooyong_z80_state(mconfig, type, tag) - { - } - - DECLARE_WRITE8_MEMBER(lastday_ctrl_w); - DECLARE_WRITE8_MEMBER(pollux_ctrl_w); - DECLARE_WRITE_LINE_MEMBER(irqhandler_2203_1); - DECLARE_WRITE_LINE_MEMBER(irqhandler_2203_2); - DECLARE_READ8_MEMBER(unk_r); - DECLARE_MACHINE_RESET(sound_ym2203); - uint32_t screen_update_lastday(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - uint32_t screen_update_gulfstrm(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - uint32_t screen_update_pollux(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - DECLARE_VIDEO_START(lastday); - DECLARE_VIDEO_START(gulfstrm); - DECLARE_VIDEO_START(pollux); - - int m_interrupt_line_1 = 0; - int m_interrupt_line_2 = 0; -}; - -class dooyong_68k_state : public dooyong_state -{ -public: - dooyong_68k_state(const machine_config &mconfig, device_type type, const char *tag) - : dooyong_state(mconfig, type, tag) - , m_spriteram(*this, "spriteram") - { - } - - DECLARE_WRITE16_MEMBER(ctrl_w); - TIMER_DEVICE_CALLBACK_MEMBER(scanline); - -protected: - void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - - uint16_t m_bg2_priority = 0; - required_device m_spriteram; -}; - -class rshark_state : public dooyong_68k_state -{ -public: - rshark_state(const machine_config &mconfig, device_type type, const char *tag) - : dooyong_68k_state(mconfig, type, tag) - { - } - - uint32_t screen_update_rshark(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - DECLARE_VIDEO_START(rshark); -}; - -class popbingo_state : public dooyong_68k_state -{ -public: - popbingo_state(const machine_config &mconfig, device_type type, const char *tag) - : dooyong_68k_state(mconfig, type, tag) - , m_bg_bitmap() - , m_bg2_bitmap() - , m_screen(*this, "screen") - { - } - - uint32_t screen_update_popbingo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - DECLARE_VIDEO_START(popbingo); - -protected: - bitmap_ind16 m_bg_bitmap; - bitmap_ind16 m_bg2_bitmap; - - required_device m_screen; -}; diff --git a/src/mame/includes/einstein.h b/src/mame/includes/einstein.h index 92f4d88220d..c1d47b339fb 100644 --- a/src/mame/includes/einstein.h +++ b/src/mame/includes/einstein.h @@ -6,8 +6,10 @@ ***************************************************************************/ -#ifndef EINSTEIN_H_ -#define EINSTEIN_H_ +#ifndef MAME_INCLUDES_EINSTEIN_H +#define MAME_INCLUDES_EINSTEIN_H + +#pragma once #include "video/mc6845.h" #include "cpu/z80/z80daisy.h" @@ -65,44 +67,14 @@ public: m_bank1(*this, "bank1"), m_bank2(*this, "bank2"), m_bank3(*this, "bank3"), - m_line0(*this, "LINE0"), - m_line1(*this, "LINE1"), - m_line2(*this, "LINE2"), - m_line3(*this, "LINE3"), - m_line4(*this, "LINE4"), - m_line5(*this, "LINE5"), - m_line6(*this, "LINE6"), - m_line7(*this, "LINE7"), + m_line(*this, "LINE%u", 0), m_extra(*this, "EXTRA"), m_buttons(*this, "BUTTONS"), m_config(*this, "config"), m_80column_dips(*this, "80column_dips"), - m_palette(*this, "palette") { } - - required_device m_fdc; - required_device m_color_screen; - required_device m_ctc; - required_device m_tms9929a; - optional_memory_region m_region_gfx1; - - int m_rom_enabled; - int m_interrupt; - int m_interrupt_mask; - int m_ctc_trigger; - - /* keyboard */ - uint8_t m_keyboard_line; - uint8_t m_keyboard_data; - - /* 80 column device */ - optional_device m_mc6845; - optional_device m_crtc_screen; - std::unique_ptr m_crtc_ram; - uint8_t m_de; - - int m_centronics_busy; - int m_centronics_perror; - int m_centronics_fault; + m_palette(*this, "palette") + { + } DECLARE_FLOPPY_FORMATS( floppy_formats ); DECLARE_WRITE8_MEMBER(einstein_80col_ram_w); @@ -118,8 +90,6 @@ public: DECLARE_WRITE_LINE_MEMBER(write_centronics_busy); DECLARE_WRITE_LINE_MEMBER(write_centronics_perror); DECLARE_WRITE_LINE_MEMBER(write_centronics_fault); - virtual void machine_start() override; - virtual void machine_reset() override; DECLARE_MACHINE_START(einstein2); DECLARE_MACHINE_RESET(einstein2); uint32_t screen_update_einstein2(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); @@ -131,7 +101,36 @@ public: DECLARE_WRITE_LINE_MEMBER(einstein_serial_receive_clock); MC6845_UPDATE_ROW(crtc_update_row); + int m_interrupt; + int m_interrupt_mask; + protected: + virtual void machine_start() override; + virtual void machine_reset() override; + + required_device m_fdc; + required_device m_color_screen; + required_device m_ctc; + required_device m_tms9929a; + optional_memory_region m_region_gfx1; + + int m_rom_enabled; + int m_ctc_trigger; + + /* keyboard */ + uint8_t m_keyboard_line; + uint8_t m_keyboard_data; + + /* 80 column device */ + optional_device m_mc6845; + optional_device m_crtc_screen; + std::unique_ptr m_crtc_ram; + uint8_t m_de; + + int m_centronics_busy; + int m_centronics_perror; + int m_centronics_fault; + required_device m_uart; required_device m_ram; required_device m_centronics; @@ -139,18 +138,12 @@ protected: required_memory_bank m_bank1; required_memory_bank m_bank2; required_memory_bank m_bank3; - required_ioport m_line0; - required_ioport m_line1; - required_ioport m_line2; - required_ioport m_line3; - required_ioport m_line4; - required_ioport m_line5; - required_ioport m_line6; - required_ioport m_line7; + required_ioport_array<8> m_line; required_ioport m_extra; required_ioport m_buttons; required_ioport m_config; optional_ioport m_80column_dips; + public: optional_device m_palette; @@ -161,8 +154,7 @@ public: // ======================> einstein_keyboard_daisy_device -class einstein_keyboard_daisy_device : public device_t, - public device_z80daisy_interface +class einstein_keyboard_daisy_device : public device_t, public device_z80daisy_interface { public: // construction/destruction @@ -176,13 +168,12 @@ private: virtual void z80daisy_irq_reti() override; }; -extern const device_type EINSTEIN_KEYBOARD_DAISY; +DECLARE_DEVICE_TYPE(EINSTEIN_KEYBOARD_DAISY, einstein_keyboard_daisy_device) // ======================> einstein_adc_daisy_device -class einstein_adc_daisy_device : public device_t, - public device_z80daisy_interface +class einstein_adc_daisy_device : public device_t, public device_z80daisy_interface { public: // construction/destruction @@ -197,12 +188,11 @@ private: }; -extern const device_type EINSTEIN_ADC_DAISY; +DECLARE_DEVICE_TYPE(EINSTEIN_ADC_DAISY, einstein_adc_daisy_device) // ======================> einstein_fire_daisy_device -class einstein_fire_daisy_device : public device_t, - public device_z80daisy_interface +class einstein_fire_daisy_device : public device_t, public device_z80daisy_interface { public: // construction/destruction @@ -216,6 +206,6 @@ private: virtual void z80daisy_irq_reti() override; }; -extern const device_type EINSTEIN_FIRE_DAISY; +DECLARE_DEVICE_TYPE(EINSTEIN_FIRE_DAISY, einstein_fire_daisy_device) -#endif /* EINSTEIN_H_ */ +#endif // MAME_INCLUDES_EINSTEIN_H diff --git a/src/mame/includes/fm7.h b/src/mame/includes/fm7.h index 49631341e7e..4d0a7315cdd 100644 --- a/src/mame/includes/fm7.h +++ b/src/mame/includes/fm7.h @@ -1,5 +1,16 @@ // license:BSD-3-Clause // copyright-holders:Barry Rodewald +/* + * + * FM-7 header file + * + */ +#ifndef MAME_INCLUDES_FM7_H +#define MAME_INCLUDES_FM7_H + +#pragma once + + #include "machine/buffer.h" #include "bus/centronics/ctronics.h" #include "imagedev/cassette.h" @@ -8,14 +19,6 @@ #include "machine/wd_fdc.h" #include "machine/bankdev.h" -/* - * - * FM-7 header file - * - */ - -#ifndef FM7_H_ -#define FM7_H_ // Interrupt flags #define IRQ_FLAG_KEY 0x01 @@ -342,7 +345,7 @@ protected: required_device m_centronics; required_device m_cent_data_out; - required_device m_fdc; + required_device m_fdc; required_device m_floppy0; required_device m_floppy1; floppy_image_device *m_floppy; @@ -405,4 +408,4 @@ protected: virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; }; -#endif /*FM7_H_*/ +#endif // MAME_INCLUDES_FM7_H diff --git a/src/mame/includes/fmtowns.h b/src/mame/includes/fmtowns.h index c7342c0bc86..fff7ba23a12 100644 --- a/src/mame/includes/fmtowns.h +++ b/src/mame/includes/fmtowns.h @@ -128,7 +128,7 @@ class towns_state : public driver_device required_device m_dma_2; required_device m_palette; required_device m_ram; - required_device m_fdc; + required_device m_fdc; required_device m_flop0; required_device m_flop1; required_device m_icmemcard; diff --git a/src/mame/includes/gamate.h b/src/mame/includes/gamate.h deleted file mode 100644 index 9e387f8e7f0..00000000000 --- a/src/mame/includes/gamate.h +++ /dev/null @@ -1,100 +0,0 @@ -// license:GPL-2.0+ -// copyright-holders:Peter Trauner -/***************************************************************************** - * - * includes/gamate.h - * - ****************************************************************************/ - -#ifndef GAMATE_H_ -#define GAMATE_H_ - -#include "cpu/m6502/m6502.h" -#include "bus/generic/slot.h" -#include "bus/generic/carts.h" - - -// ======================> gamate_sound_device - -class gamate_sound_device : public device_t, public device_sound_interface -{ -public: - gamate_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~gamate_sound_device() { } - - DECLARE_WRITE8_MEMBER( device_w ); - DECLARE_READ8_MEMBER( device_r ); - -protected: - // device-level overrides - virtual void device_start() override; - - // sound stream update overrides - virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; - -private: - - static const int DAConverter[]; - static int Value2Volume(int volume) { return DAConverter[volume]*1; } - - sound_stream *m_mixer_channel; - struct Tone - { - Tone() : - envelope_on(false), - level(false), - tone(false), full_cycle(false), - volume(0), - pos(0), - size(0) - {} - - bool envelope_on, level; - bool tone/*else noise*/, full_cycle/* else square signal/pulse */; - int volume; - int pos, size; - }; - - enum - { - Right, - Left, - Both - }; - - Tone m_channels[3]; - - struct Noise - { - Noise(): - state(1), - level(false), - step(0.0), - pos(0.0) - {} - - int state; - bool level; - double step, pos; - } noise; - - struct Envelope - { - Envelope(): - control(0), - index(0), - first(false) - {} - - int control; - int index; - bool first; - double step, pos; - } envelope; - - uint8_t reg[14]; -}; - -extern const device_type GAMATE_SND; - -#endif /* GAMATE_H_ */ diff --git a/src/mame/includes/gomoku.h b/src/mame/includes/gomoku.h index 45d0f80040a..e443d80d1a7 100644 --- a/src/mame/includes/gomoku.h +++ b/src/mame/includes/gomoku.h @@ -1,5 +1,8 @@ // license:BSD-3-Clause // copyright-holders:Takahiro Nogi, David Haywood +#ifndef MAME_INCLUDES_GOMOKU_H +#define MAME_INCLUDES_GOMOKU_H + #include "screen.h" class gomoku_state : public driver_device @@ -38,75 +41,4 @@ public: required_device m_screen; }; - -/*----------- defined in audio/gomoku.c -----------*/ - -/* 4 voices max */ -#define GOMOKU_MAX_VOICES 4 - -//************************************************************************** -// TYPE DEFINITIONS -//************************************************************************** - -struct gomoku_sound_channel -{ - gomoku_sound_channel(): - channel(0), - frequency(0), - counter(0), - volume(0), - oneshotplaying(0) {} - - int channel; - int frequency; - int counter; - int volume; - int oneshotplaying; -}; - - -// ======================> gomoku_sound_device - -class gomoku_sound_device : public device_t, - public device_sound_interface -{ -public: - gomoku_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~gomoku_sound_device() { } - -protected: - // device-level overrides - virtual void device_start() override; - - // sound stream update overrides - virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; - -public: - DECLARE_WRITE8_MEMBER( sound1_w ); - DECLARE_WRITE8_MEMBER( sound2_w ); - -private: - void make_mixer_table(int voices, int gain); - -private: - /* data about the sound system */ - gomoku_sound_channel m_channel_list[GOMOKU_MAX_VOICES]; - gomoku_sound_channel *m_last_channel; - - /* global sound parameters */ - const uint8_t *m_sound_rom; - int m_num_voices; - int m_sound_enable; - sound_stream *m_stream; - - /* mixer tables and internal buffers */ - std::unique_ptr m_mixer_table; - int16_t *m_mixer_lookup; - std::unique_ptr m_mixer_buffer; - short *m_mixer_buffer_2; - - uint8_t m_soundregs1[0x20]; - uint8_t m_soundregs2[0x20]; -}; - -extern const device_type GOMOKU; +#endif // MAME_INCLUDES_GOMOKU_H diff --git a/src/mame/includes/gridlee.h b/src/mame/includes/gridlee.h index c14d27b722d..45fa8aa3c05 100644 --- a/src/mame/includes/gridlee.h +++ b/src/mame/includes/gridlee.h @@ -76,8 +76,7 @@ public: /*----------- defined in audio/gridlee.c -----------*/ -class gridlee_sound_device : public device_t, - public device_sound_interface +class gridlee_sound_device : public device_t, public device_sound_interface { public: gridlee_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); @@ -106,4 +105,4 @@ private: uint8_t m_sound_data[24]; }; -extern const device_type GRIDLEE; +DECLARE_DEVICE_TYPE(GRIDLEE, gridlee_sound_device) diff --git a/src/mame/includes/harddriv.h b/src/mame/includes/harddriv.h index cff18a7e6f9..f408df654c0 100644 --- a/src/mame/includes/harddriv.h +++ b/src/mame/includes/harddriv.h @@ -5,48 +5,52 @@ Driver for Atari polygon racer games **************************************************************************/ +#ifndef MAME_INCLUDES_HARDDRIV_H +#define MAME_INCLUDES_HARDDRIV_H + +#pragma once + +#include "audio/atarijsa.h" + +#include "bus/rs232/rs232.h" -#include "cpu/m68000/m68000.h" -#include "cpu/tms34010/tms34010.h" -#include "cpu/tms32010/tms32010.h" #include "cpu/adsp2100/adsp2100.h" #include "cpu/dsp32/dsp32.h" -#include "audio/atarijsa.h" -#include "sound/dac.h" -#include "machine/mc68681.h" +#include "cpu/m68000/m68000.h" +#include "cpu/tms32010/tms32010.h" +#include "cpu/tms34010/tms34010.h" + #include "machine/asic65.h" +#include "machine/mc68681.h" #include "machine/timekpr.h" -#include "bus/rs232/rs232.h" + +#include "sound/dac.h" + #include "screen.h" #define HARDDRIV_MASTER_CLOCK XTAL_32MHz #define HARDDRIV_GSP_CLOCK XTAL_48MHz -extern const device_type HARDDRIV_BOARD_DEVICE; -extern const device_type HARDDRIVC_BOARD_DEVICE; -extern const device_type RACEDRIV_BOARD_DEVICE; -extern const device_type RACEDRIVC_BOARD_DEVICE; -extern const device_type RACEDRIVC1_BOARD_DEVICE; -extern const device_type RACEDRIVB1_BOARD_DEVICE; -extern const device_type RACEDRIVC_PANORAMA_SIDE_BOARD_DEVICE; -extern const device_type STUNRUN_BOARD_DEVICE; -extern const device_type STEELTAL_BOARD_DEVICE; -extern const device_type STEELTAL1_BOARD_DEVICE; -extern const device_type STEELTALP_BOARD_DEVICE; -extern const device_type STRTDRIV_BOARD_DEVICE; -extern const device_type HDRIVAIR_BOARD_DEVICE; -extern const device_type HDRIVAIRP_BOARD_DEVICE; -extern const device_type HARDDRIV_SOUND_BOARD_DEVICE; - - -class harddriv_sound_board_device; - -class harddriv_state : public device_t - /* public device_video_interface */ +DECLARE_DEVICE_TYPE(HARDDRIV_BOARD, harddriv_board_device_state) +DECLARE_DEVICE_TYPE(HARDDRIVC_BOARD, harddrivc_board_device_state) +DECLARE_DEVICE_TYPE(RACEDRIV_BOARD, racedrivc_board_device_state) +DECLARE_DEVICE_TYPE(RACEDRIVB1_BOARD, racedrivb1_board_device_state) +DECLARE_DEVICE_TYPE(RACEDRIVC_BOARD, racedrivc_board_device_state) +DECLARE_DEVICE_TYPE(RACEDRIVC1_BOARD, racedrivc1_board_device_state) +DECLARE_DEVICE_TYPE(RACEDRIVC_PANORAMA_SIDE_BOARD,racedrivc_panorama_side_board_device_state) +DECLARE_DEVICE_TYPE(STUNRUN_BOARD, stunrun_board_device_state) +DECLARE_DEVICE_TYPE(STEELTAL_BOARD, steeltal_board_device_state) +DECLARE_DEVICE_TYPE(STEELTAL1_BOARD, steeltal1_board_device_state) +DECLARE_DEVICE_TYPE(STEELTALP_BOARD, steeltalp_board_device_state) +DECLARE_DEVICE_TYPE(STRTDRIV_BOARD, strtdriv_board_device_state) +DECLARE_DEVICE_TYPE(HDRIVAIR_BOARD, hdrivair_board_device_state) +DECLARE_DEVICE_TYPE(HDRIVAIRP_BOARD, hdrivairp_board_device_state) +DECLARE_DEVICE_TYPE(HARDDRIV_SOUND_BOARD, harddriv_sound_board_device) + + +class harddriv_state : public device_t { public: - harddriv_state(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - void init_strtdriv(void); void init_harddriv(void); @@ -248,6 +252,8 @@ public: DECLARE_READ32_MEMBER(hdds3xdsp_serial_rx_callback); protected: + harddriv_state(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + required_device m_maincpu; required_device m_gsp; optional_device m_msp; @@ -560,9 +566,10 @@ class racedriv_board_device_state : public harddriv_state { public: racedriv_board_device_state(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - racedriv_board_device_state(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); protected: + racedriv_board_device_state(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual machine_config_constructor device_mconfig_additions() const override; virtual void device_start() override; // virtual void device_reset(); @@ -583,9 +590,10 @@ class racedrivc_board_device_state : public harddriv_state { public: racedrivc_board_device_state(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - racedrivc_board_device_state(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); protected: + racedrivc_board_device_state(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual machine_config_constructor device_mconfig_additions() const override; virtual void device_start() override; // virtual void device_reset(); @@ -630,9 +638,10 @@ class steeltal_board_device_state : public harddriv_state { public: steeltal_board_device_state(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - steeltal_board_device_state(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); protected: + steeltal_board_device_state(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual machine_config_constructor device_mconfig_additions() const override; virtual void device_start() override; // virtual void device_reset(); @@ -677,9 +686,10 @@ class hdrivair_board_device_state : public harddriv_state { public: hdrivair_board_device_state(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - hdrivair_board_device_state(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); protected: + hdrivair_board_device_state(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual machine_config_constructor device_mconfig_additions() const override; virtual void device_start() override; // virtual void device_reset(); @@ -692,3 +702,5 @@ public: protected: virtual void device_start() override; }; + +#endif // MAME_INCLUDES_HARDDRIV_H diff --git a/src/mame/includes/hec2hrp.h b/src/mame/includes/hec2hrp.h index c2d81923fa4..b12e900253f 100644 --- a/src/mame/includes/hec2hrp.h +++ b/src/mame/includes/hec2hrp.h @@ -38,6 +38,10 @@ TODO : Add the cartridge function, Adjust the one shot and A/D timing (sn76477) */ +#ifndef MAME_INCLUDES_HEC2HRP_H +#define MAME_INCLUDES_HEC2HRP_H + +#pragma once #include "machine/upd765.h" #include "machine/wd_fdc.h" @@ -99,7 +103,7 @@ public: optional_shared_ptr m_hector_videoram; required_ioport_array<9> m_keyboard; - optional_device m_minidisc_fdc; + optional_device m_minidisc_fdc; optional_device m_floppy0; uint8_t m_hector_flag_hr; @@ -197,3 +201,5 @@ public: }; MACHINE_CONFIG_EXTERN( hector_audio ); + +#endif // MAME_INCLUDES_HEC2HRP_H diff --git a/src/mame/includes/hp48.h b/src/mame/includes/hp48.h index 89ba8b8ba6f..bcc88e6f029 100644 --- a/src/mame/includes/hp48.h +++ b/src/mame/includes/hp48.h @@ -7,8 +7,13 @@ Hewlett Packard HP48 S/SX & G/GX and HP49 G **********************************************************************/ +#ifndef MAME_INCLUDES_HP84_H +#define MAME_INCLUDES_HP84_H + +#pragma once #include "sound/dac.h" + /* model */ typedef enum { HP48_S, @@ -214,8 +219,10 @@ private: }; // device type definition -extern const device_type HP48_PORT; +DECLARE_DEVICE_TYPE(HP48_PORT, hp48_port_image_device) #define MCFG_HP48_PORT_ADD(_tag, _port, _module, _max_size) \ MCFG_DEVICE_ADD(_tag, HP48_PORT, 0) \ hp48_port_image_device::set_port_config(*device, _port, _module, _max_size); + +#endif // MAME_INCLUDES_HP84_H diff --git a/src/mame/includes/jpmimpct.h b/src/mame/includes/jpmimpct.h index 39883a8afd4..b03c5037ce0 100644 --- a/src/mame/includes/jpmimpct.h +++ b/src/mame/includes/jpmimpct.h @@ -96,7 +96,7 @@ public: int m_slidesout; int m_hopper[3]; int m_motor[3]; - optional_device m_vfd; + optional_device m_vfd; optional_shared_ptr m_vram; struct bt477_t m_bt477; DECLARE_READ16_MEMBER(duart_1_r); diff --git a/src/mame/includes/jpmsys5.h b/src/mame/includes/jpmsys5.h index a02b918f972..78c323c5d29 100644 --- a/src/mame/includes/jpmsys5.h +++ b/src/mame/includes/jpmsys5.h @@ -36,7 +36,7 @@ public: required_device m_acia6850_2; required_device m_upd7759; optional_device m_tms34061; - optional_device m_vfd; + optional_device m_vfd; required_ioport m_direct_port; optional_device m_palette; optional_device m_meters; //jpmsys5v doesn't use this diff --git a/src/mame/includes/jupiter.h b/src/mame/includes/jupiter.h index 0f624613125..d85690ecc4b 100644 --- a/src/mame/includes/jupiter.h +++ b/src/mame/includes/jupiter.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Wilbert Pol, Robbbert -#pragma once +#ifndef MAME_INCLUDES_JUPITER_H +#define MAME_INCLUDES_JUPITER_H -#ifndef __JUPITER__ -#define __JUPITER__ +#pragma once #define MCM6571AP_TAG "vid125_6c" #define S6820_TAG "vid125_4a" @@ -19,12 +19,13 @@ public: jupiter2_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag) , m_maincpu(*this, MCM6571AP_TAG) - { } + { } DECLARE_DRIVER_INIT(jupiter); private: required_device m_maincpu; + virtual void machine_start() override; }; @@ -37,22 +38,23 @@ public: , m_p_videoram(*this, "videoram") , m_p_ram(*this, "ram") , m_p_chargen(*this, "chargen") - { } + { } uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); DECLARE_DRIVER_INIT(jupiter3); - DECLARE_WRITE8_MEMBER(kbd_put); + void kbd_put(u8 data); DECLARE_READ8_MEMBER(status_r); DECLARE_READ8_MEMBER(key_r); DECLARE_READ8_MEMBER(ff_r); private: - uint8_t m_term_data; virtual void machine_reset() override; + + uint8_t m_term_data; required_device m_maincpu; required_shared_ptr m_p_videoram; required_shared_ptr m_p_ram; required_region_ptr m_p_chargen; }; -#endif +#endif // MAME_INCLUDES_JUPITER_H diff --git a/src/mame/includes/kaypro.h b/src/mame/includes/kaypro.h index 2973e21a70f..ba977be1ef0 100644 --- a/src/mame/includes/kaypro.h +++ b/src/mame/includes/kaypro.h @@ -1,5 +1,10 @@ // license:BSD-3-Clause // copyright-holders:Robbbert +#ifndef MAME_INCLUDES_KAYPRO_H +#define MAME_INCLUDES_KAYPRO_H + +#pragma once + #include "cpu/z80/z80.h" #include "cpu/z80/z80daisy.h" #include "machine/z80pio.h" @@ -100,9 +105,11 @@ private: required_device m_sio; optional_device m_sio2x; required_device m_centronics; - required_device m_fdc; + required_device m_fdc; required_device m_floppy0; optional_device m_floppy1; optional_device m_crtc; required_device m_beep; }; + +#endif // MAME_INCLUDES_KAYPRO_H diff --git a/src/mame/includes/leland.h b/src/mame/includes/leland.h index 4662cda5e51..e6c6168fa6a 100644 --- a/src/mame/includes/leland.h +++ b/src/mame/includes/leland.h @@ -5,13 +5,14 @@ Cinemat/Leland driver *************************************************************************/ +#ifndef MAME_INCLUDES_LELAND_H +#define MAME_INCLUDES_LELAND_H + +#pragma once #include "machine/eepromser.h" -#include "sound/ym2151.h" #include "sound/dac.h" #include "sound/ay8910.h" -#include "machine/pit8253.h" -#include "cpu/i86/i186.h" #include "screen.h" #define LELAND_BATTERY_RAM_SIZE 0x4000 @@ -217,123 +218,9 @@ public: #define SERIAL_TYPE_ENCRYPT_XOR 4 -/*----------- defined in audio/leland.c -----------*/ - -class leland_80186_sound_device : public device_t -{ -public: - leland_80186_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - leland_80186_sound_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - virtual machine_config_constructor device_mconfig_additions() const override; - - DECLARE_WRITE16_MEMBER(peripheral_ctrl); - DECLARE_WRITE8_MEMBER(leland_80186_control_w); - DECLARE_WRITE8_MEMBER(ataxx_80186_control_w); - DECLARE_READ16_MEMBER(peripheral_r); - DECLARE_WRITE16_MEMBER(peripheral_w); - DECLARE_WRITE8_MEMBER(leland_80186_command_lo_w); - DECLARE_WRITE8_MEMBER(leland_80186_command_hi_w); - DECLARE_READ8_MEMBER(leland_80186_response_r); - DECLARE_WRITE16_MEMBER(dac_w); - DECLARE_WRITE16_MEMBER(ataxx_dac_control); - DECLARE_WRITE_LINE_MEMBER(pit0_2_w); - DECLARE_WRITE_LINE_MEMBER(pit1_0_w); - DECLARE_WRITE_LINE_MEMBER(pit1_1_w); - DECLARE_WRITE_LINE_MEMBER(pit1_2_w); - DECLARE_WRITE_LINE_MEMBER(i80186_tmr0_w); - DECLARE_WRITE_LINE_MEMBER(i80186_tmr1_w); -protected: - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - int m_type; - - enum { - TYPE_LELAND, - TYPE_REDLINE, - TYPE_ATAXX, - TYPE_WSF - }; - - required_device m_dac1; - required_device m_dac2; - required_device m_dac3; - required_device m_dac4; - optional_device m_dac5; - optional_device m_dac6; - optional_device m_dac7; - optional_device m_dac8; - optional_device m_dac9; - required_device m_dac1vol; - required_device m_dac2vol; - required_device m_dac3vol; - required_device m_dac4vol; - optional_device m_dac5vol; - optional_device m_dac6vol; - optional_device m_dac7vol; - optional_device m_dac8vol; - -private: - void command_lo_sync(void *ptr, int param); - void delayed_response_r(void *ptr, int param); - void set_clock_line(int which, int state) { m_clock_active = state ? (m_clock_active | (1< m_pit0; - optional_device m_pit1; - optional_device m_pit2; - optional_device m_ymsnd; -}; - -extern const device_type LELAND_80186; - -class redline_80186_sound_device : public leland_80186_sound_device -{ -public: - redline_80186_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - DECLARE_WRITE16_MEMBER(redline_dac_w); - virtual machine_config_constructor device_mconfig_additions() const override; -}; - -extern const device_type REDLINE_80186; - -class ataxx_80186_sound_device : public leland_80186_sound_device -{ -public: - ataxx_80186_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual machine_config_constructor device_mconfig_additions() const override; -}; - -extern const device_type ATAXX_80186; - -class wsf_80186_sound_device : public leland_80186_sound_device -{ -public: - wsf_80186_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual machine_config_constructor device_mconfig_additions() const override; -}; - -extern const device_type WSF_80186; - -ADDRESS_MAP_EXTERN(leland_80186_map_program, 16); -ADDRESS_MAP_EXTERN(leland_80186_map_io, 16); -ADDRESS_MAP_EXTERN(redline_80186_map_io, 16); -ADDRESS_MAP_EXTERN(ataxx_80186_map_io, 16); - - /*----------- defined in video/leland.c -----------*/ MACHINE_CONFIG_EXTERN( leland_video ); MACHINE_CONFIG_EXTERN( ataxx_video ); + +#endif // MAME_INCLUDES_LELAND_H diff --git a/src/mame/includes/llc.h b/src/mame/includes/llc.h index 38317d538e4..24f5cd6461d 100644 --- a/src/mame/includes/llc.h +++ b/src/mame/includes/llc.h @@ -9,6 +9,9 @@ #ifndef MAME_INCLUDES_LLC_H #define MAME_INCLUDES_LLC_H +#pragma once + + #include "cpu/z80/z80.h" #include "cpu/z80/z80daisy.h" #include "machine/k7659kb.h" @@ -31,7 +34,7 @@ public: DECLARE_WRITE8_MEMBER(llc2_rom_disable_w); DECLARE_WRITE8_MEMBER(llc2_basic_enable_w); - DECLARE_WRITE8_MEMBER(kbd_put); + void kbd_put(u8 data); DECLARE_READ8_MEMBER(llc1_port1_a_r); DECLARE_READ8_MEMBER(llc1_port2_a_r); DECLARE_READ8_MEMBER(llc1_port2_b_r); diff --git a/src/mame/includes/m5.h b/src/mame/includes/m5.h index 758020efa9d..d23f3e109a1 100644 --- a/src/mame/includes/m5.h +++ b/src/mame/includes/m5.h @@ -51,24 +51,6 @@ public: , m_DIPS(*this, "DIPS") { } - required_device m_maincpu; - required_device m_ctc; - //I've changed following devices to optional since we have to remove them in BRNO mod (I don't know better solution) - optional_device m_fd5cpu; - optional_device m_ppi; - optional_device m_fdc; - optional_device m_floppy0; - required_device m_cassette; - optional_device m_cart1; - optional_device m_cart2; - required_device m_centronics; - required_device m_ram; - required_ioport m_reset; - optional_ioport m_DIPS; - - virtual void machine_start() override; - virtual void machine_reset() override; - DECLARE_READ8_MEMBER( sts_r ); DECLARE_WRITE8_MEMBER( com_w ); DECLARE_READ8_MEMBER( ppi_pa_r ); @@ -86,10 +68,6 @@ public: DECLARE_FLOPPY_FORMATS( floppy_formats ); - // video state -// const TMS9928a_interface *m_vdp_intf; - - int m_centronics_busy; DECLARE_WRITE_LINE_MEMBER(write_centronics_busy); DECLARE_DRIVER_INIT(pal); @@ -101,6 +79,31 @@ public: DECLARE_WRITE8_MEMBER( mem64KBI_w ); DECLARE_WRITE8_MEMBER( mem64KBF_w ); DECLARE_WRITE8_MEMBER( mem64KRX_w ); + +protected: + virtual void machine_start() override; + virtual void machine_reset() override; + + required_device m_maincpu; + required_device m_ctc; + //I've changed following devices to optional since we have to remove them in BRNO mod (I don't know better solution) + optional_device m_fd5cpu; + optional_device m_ppi; + optional_device m_fdc; + optional_device m_floppy0; + required_device m_cassette; + optional_device m_cart1; + optional_device m_cart2; + required_device m_centronics; + required_device m_ram; + required_ioport m_reset; + optional_ioport m_DIPS; + + // video state +// const TMS9928a_interface *m_vdp_intf; + + int m_centronics_busy; + uint8_t m_ram_mode; uint8_t m_ram_type; memory_region *m_cart_rom; @@ -112,7 +115,6 @@ public: int m_intra; int m_ibfa; int m_obfa; - }; @@ -120,22 +122,13 @@ class brno_state : public m5_state { public: brno_state(const machine_config &mconfig, device_type type, const char *tag) - : m5_state(mconfig, type, tag), - - m_fdc(*this, WD2797_TAG), - m_floppy0(*this, WD2797_TAG":0"), - m_floppy1(*this, WD2797_TAG":1") - // m_ramdisk(*this, RAMDISK) + : m5_state(mconfig, type, tag) + , m_fdc(*this, WD2797_TAG) + , m_floppy0(*this, WD2797_TAG":0") + , m_floppy1(*this, WD2797_TAG":1") + //, m_ramdisk(*this, RAMDISK) { } - - required_device m_fdc; - required_device m_floppy0; - optional_device m_floppy1; - floppy_image_device *m_floppy; - - - DECLARE_READ8_MEMBER( mmu_r ); DECLARE_WRITE8_MEMBER( mmu_w ); DECLARE_READ8_MEMBER( ramsel_r ); @@ -157,16 +150,20 @@ public: DECLARE_SNAPSHOT_LOAD_MEMBER( brno ); // DECLARE_DEVICE_IMAGE_LOAD_MEMBER(m5_cart); - +protected: virtual void machine_start() override; virtual void machine_reset() override; + required_device m_fdc; + required_device m_floppy0; + optional_device m_floppy1; + floppy_image_device *m_floppy; + uint8_t m_rambank; // bank # uint8_t m_ramcpu; //where Ramdisk bank is mapped bool m_romen; bool m_ramen; - uint8_t m_rammap[16]; // memory map }; diff --git a/src/mame/includes/mario.h b/src/mame/includes/mario.h index 455fda8269d..29a5dcdae6d 100644 --- a/src/mame/includes/mario.h +++ b/src/mame/includes/mario.h @@ -82,10 +82,10 @@ public: #if OLD_SOUND optional_device m_discrete; #else - optional_device m_audio_snd0; - optional_device m_audio_snd1; - optional_device m_audio_snd7; - optional_device m_audio_dac; + optional_device m_audio_snd0; + optional_device m_audio_snd1; + optional_device m_audio_snd7; + optional_device m_audio_dac; #endif /* memory pointers */ diff --git a/src/mame/includes/maygay1b.h b/src/mame/includes/maygay1b.h index bc5c31ef129..d7d40c913a7 100644 --- a/src/mame/includes/maygay1b.h +++ b/src/mame/includes/maygay1b.h @@ -55,7 +55,7 @@ public: required_device m_maincpu; required_device m_mcu; - optional_device m_vfd; + optional_device m_vfd; required_device m_ay; optional_device m_msm6376; optional_device m_upd7759; diff --git a/src/mame/includes/mbc55x.h b/src/mame/includes/mbc55x.h index 0abbe9c9ffc..e463e5688f0 100644 --- a/src/mame/includes/mbc55x.h +++ b/src/mame/includes/mbc55x.h @@ -116,20 +116,6 @@ public: DECLARE_FLOPPY_FORMATS(floppy_formats); - required_device m_maincpu; - required_device m_crtc; - required_device m_kb_uart; - required_device m_pit; - required_device m_ppi; - required_device m_pic; - required_device m_fdc; - required_device m_floppy0; - required_device m_floppy1; - required_device m_floppy2; - required_device m_floppy3; - required_device m_speaker; - required_device m_ram; - required_device m_palette; //DECLARE_READ8_MEMBER(pic8259_r); //DECLARE_WRITE8_MEMBER(pic8259_w); //DECLARE_READ8_MEMBER(mbc55x_disk_r); @@ -154,12 +140,6 @@ public: DECLARE_WRITE_LINE_MEMBER(vid_vsync_changed); DECLARE_WRITE_LINE_MEMBER(pit8253_t2); - uint32_t m_debug_machine; - uint32_t m_debug_video; - uint8_t m_video_mem[VIDEO_MEM_SIZE]; - uint8_t m_vram_page; - - keyboard_t m_keyboard; DECLARE_READ8_MEMBER(mbcpic8259_r); DECLARE_WRITE8_MEMBER(mbcpic8259_w); DECLARE_READ8_MEMBER(mbcpit8253_r); @@ -169,18 +149,46 @@ public: DECLARE_READ8_MEMBER(mbc55x_kb_usart_r); DECLARE_WRITE8_MEMBER(mbc55x_kb_usart_w); DECLARE_DRIVER_INIT(mbc55x); + MC6845_UPDATE_ROW(crtc_update_row); + DECLARE_PALETTE_INIT(mbc55x); + DECLARE_WRITE_LINE_MEMBER(screen_vblank_mbc55x); + TIMER_CALLBACK_MEMBER(keyscan_callback); + + required_device m_maincpu; + + uint32_t m_debug_machine; + +protected: virtual void machine_start() override; virtual void machine_reset() override; virtual void video_start() override; virtual void video_reset() override; - DECLARE_PALETTE_INIT(mbc55x); - DECLARE_WRITE_LINE_MEMBER(screen_vblank_mbc55x); - TIMER_CALLBACK_MEMBER(keyscan_callback); + void keyboard_reset(); void scan_keyboard(); void set_ram_size(); + required_device m_crtc; + required_device m_kb_uart; + required_device m_pit; + required_device m_ppi; + required_device m_pic; + required_device m_fdc; + required_device m_floppy0; + required_device m_floppy1; + required_device m_floppy2; + required_device m_floppy3; + required_device m_speaker; + required_device m_ram; + required_device m_palette; + + uint32_t m_debug_video; + uint8_t m_video_mem[VIDEO_MEM_SIZE]; + uint8_t m_vram_page; + + keyboard_t m_keyboard; + private: void debug_command(int ref, const std::vector ¶ms); void video_debug(int ref, const std::vector ¶ms); diff --git a/src/mame/includes/mbee.h b/src/mame/includes/mbee.h index fe91bd4cbf8..771606aa25f 100644 --- a/src/mame/includes/mbee.h +++ b/src/mame/includes/mbee.h @@ -160,7 +160,7 @@ private: required_device m_centronics; required_device m_cent_data_out; required_device m_crtc; - optional_device m_fdc; + optional_device m_fdc; optional_device m_floppy0; optional_device m_floppy1; optional_device m_rtc; @@ -174,4 +174,4 @@ private: required_device m_screen; }; -#endif /* MAME_INCLUDES_MBEE_H */ +#endif // MAME_INCLUDES_MBEE_H diff --git a/src/mame/includes/micro3d.h b/src/mame/includes/micro3d.h index 87d11f4f571..eeb57b3dbcf 100644 --- a/src/mame/includes/micro3d.h +++ b/src/mame/includes/micro3d.h @@ -5,6 +5,10 @@ Microprose Games 3D hardware *************************************************************************/ +#ifndef MAME_INCLUDES_MICRO3D_H +#define MAME_INCLUDES_MICRO3D_H + +#pragma once #include "cpu/tms34010/tms34010.h" #include "cpu/mcs51/mcs51.h" @@ -32,13 +36,6 @@ enum planes CLIP_Y_MAX }; -enum dac_registers { - VCF, - VCQ, - VCA, - PAN -}; - class micro3d_sound_device; class micro3d_state : public driver_device @@ -93,7 +90,6 @@ public: /* Sound */ uint8_t m_sound_port_latch[4]; - uint8_t m_dac_data; /* TI UART */ uint8_t m_ti_uart[9]; @@ -203,66 +199,4 @@ protected: virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; }; -/*----------- defined in audio/micro3d.c -----------*/ - -struct biquad -{ - double a0, a1, a2; /* Numerator coefficients */ - double b0, b1, b2; /* Denominator coefficients */ -}; - -struct lp_filter -{ - std::unique_ptr history; - std::unique_ptr coef; - double fs; - biquad ProtoCoef[2]; -}; - -struct m3d_filter_state -{ - double capval; - double exponent; -}; - -class micro3d_sound_device : public device_t, - public device_sound_interface -{ -public: - micro3d_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~micro3d_sound_device() {} - - void noise_sh_w(uint8_t data); - -protected: - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - - // sound stream update overrides - virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; -private: - // internal state -// union -// { -// struct -// { -// uint8_t m_vcf; -// uint8_t m_vcq; -// uint8_t m_vca; -// uint8_t m_pan; -// }; - uint8_t m_dac[4]; -// }; - - float m_gain; - uint32_t m_noise_shift; - uint8_t m_noise_value; - uint8_t m_noise_subcount; - - m3d_filter_state m_noise_filters[4]; - lp_filter m_filter; - sound_stream *m_stream; -}; - -extern const device_type MICRO3D; +#endif // MAME_INCLUDES_MICRO3D_H diff --git a/src/mame/includes/model1.h b/src/mame/includes/model1.h index c78b43bb84e..0c5fa94cb12 100644 --- a/src/mame/includes/model1.h +++ b/src/mame/includes/model1.h @@ -470,7 +470,7 @@ private: optional_shared_ptr m_paletteram16; required_device m_palette; - required_device m_tiles; + required_device m_tiles; // I/O related uint16_t m_lamp_state; diff --git a/src/mame/includes/model2.h b/src/mame/includes/model2.h index 13b3007fa81..965584d8702 100644 --- a/src/mame/includes/model2.h +++ b/src/mame/includes/model2.h @@ -51,7 +51,7 @@ public: m_gears(*this, "GEARS"), m_analog_ports(*this, {"ANA0", "ANA1", "ANA2", "ANA3"}), m_lightgun_ports(*this, {"P1_Y", "P1_X", "P2_Y", "P2_X"}) - { } + { } required_shared_ptr m_workram; required_shared_ptr m_bufferram; diff --git a/src/mame/includes/mpu4.h b/src/mame/includes/mpu4.h index 0b9e55a0ef3..d0eaa5658a9 100644 --- a/src/mame/includes/mpu4.h +++ b/src/mame/includes/mpu4.h @@ -275,7 +275,7 @@ protected: void mpu4_config_common(); required_device m_maincpu; - optional_device m_vfd; + optional_device m_vfd; optional_device m_6840ptm; optional_device m_pia3; optional_device m_pia4; diff --git a/src/mame/includes/mpz80.h b/src/mame/includes/mpz80.h index 4a4f771f4d4..ca478bd0c5a 100644 --- a/src/mame/includes/mpz80.h +++ b/src/mame/includes/mpz80.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Curt Coder -#pragma once +#ifndef MAME_INCLUDES_MPZ80_H +#define MAME_INCLUDES_MPZ80_H -#ifndef __MPZ80__ -#define __MPZ80__ +#pragma once #include "bus/s100/s100.h" #include "cpu/z80/z80.h" @@ -38,7 +38,7 @@ public: required_device m_maincpu; required_device m_ram; - required_device m_s100; + required_device m_s100; required_memory_region m_rom; optional_shared_ptr m_map_ram; required_ioport m_16c; @@ -93,4 +93,4 @@ public: DECLARE_DRIVER_INIT(mpz80); }; -#endif +#endif // MAME_INCLUDES_MPZ80_H diff --git a/src/mame/includes/n64.h b/src/mame/includes/n64.h index cdc9cc52ca6..a2d8ffa8ceb 100644 --- a/src/mame/includes/n64.h +++ b/src/mame/includes/n64.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Ryan Holtz -#ifndef _INCLUDES_N64_H_ -#define _INCLUDES_N64_H_ +#ifndef MAME_INCLUDES_N64_H +#define MAME_INCLUDES_N64_H + +#pragma once #include "cpu/rsp/rsp.h" #include "cpu/mips/mips3.h" @@ -307,7 +309,7 @@ private: }; // device type definition -extern const device_type N64PERIPH; +DECLARE_DEVICE_TYPE(N64PERIPH, n64_periphs) /*----------- defined in video/n64.c -----------*/ @@ -402,4 +404,4 @@ const unsigned int ddStartOffset[16] = {0x0,0x5F15E0,0xB79D00,0x10801A0,0x1523720,0x1963D80,0x1D414C0,0x20BBCE0, 0x23196E0,0x28A1E00,0x2DF5DC0,0x3299340,0x36D99A0,0x3AB70E0,0x3E31900,0x4149200}; -#endif +#endif // MAME_INCLUDES_N64_H diff --git a/src/mame/includes/namcoic.h b/src/mame/includes/namcoic.h deleted file mode 100644 index 7a74112b3b1..00000000000 --- a/src/mame/includes/namcoic.h +++ /dev/null @@ -1,103 +0,0 @@ -// license:BSD-3-Clause -// copyright-holders:Phil Stroffolino -/* namcoic.h - -Custom Chips: Final Lap Assault LuckyWld System21 NA1/2 NB1/2 - C45 Land Generator * * - C65 I/O Controller * * - C68 * * - C70 * - C95 * * - C102 ROZ:Memory Access Control * - C106 OBJ:X-Axis Zoom Control * * - C107 Land Line Buffer * - C116 Screen Waveform Generator * * * * - C121 Yamaha YM2151 Sound Gen * * * - C123 GFX:Tile Mem Decoder * * * * - C134 OBJ:Address Generator * * - C135 OBJ:Line matching * * - C137 Clock Generator IC * * * * * - C138 * - C139 Serial I/F Controller * * * * - C140 24 Channel PCM * * * - C145 GFX:Tile Memory Access * * * * - C146 OBJ:Line Buf Steering * * - C148 CPU Bus Manager * * * * - C149 Mouse/Trackball Decoder * * * * - C156 Pixel Stream Combo * * * * - C160 Control * - C165 * - C169 ROZ(B) * * - C187 * * * - C210 * - C215 * - C218 * - C219 * - C329 CPU? * - C347 GfxObj * - C352 PCM * - C355 Motion Obj(B) * * * - C373 LAND-related * - C382 * - C383 * - C384 GFX(3) * - C385 * - C390 Key Custom * - - -General Support ---------------- -C65 - This is the I/O Microcontroller, handles all input/output devices. 63705 uC, CPU4 in Namco System2. -C137 - Takes System clock and generates all sub-system clocks, doesn't need emulation, not accessed via CPU -C139 - Serial Interface Controller -C148 - Does some Memory Decode, Interrupt Handling, 3 bit PIO port, Bus Controller -C149 - Does decoding of mouse/trackball input streams for the I/O Controller. (Offset Square wave) - - -Tile Fields Static/Scrolled ---------------------------- -Combination of these two devices and associated RAM & TileGFX produces a pixel stream that is fed -into the Pixel stream decoder. - -C145 - Tile Screen Memory Access controller -C123 - Tile Memory decoder Part 1, converts X,Y,Tile into character ROM address index - - -Pixel Stream Decode -------------------- -These two devices take the pixel streams from the tilefield generator and the associated graphics board -and combine them to form an RGB data stream that is fed to the monitor. - -C156 - Pixel stream combiner -Takes tile field & graphics board streams and generates the prioritized pixel, then does the lookup to -go from palettised to 24bit RGB pixel. - -C116 - Screen Waveform Generator -Takes RGB24 pixel stream from C156 and generates the waveform signals for the monitor, also generates -the line interrupt and controls screen blanking,shift, etc. - -Object Control --------------- -C106 - Generates memory output clocks to generate X-Axis Zoom for Line Buffer Writes -C134 - Object Memory Address Generator. Sequences the sprite memory contents to the hardware. -C135 - Checks is object is displayed on Current output line. -C146 - Steers the Decode Object Pixel data to the correct line buffer A or B - -ROZ ---- -C102 - Controls CPU access to ROZ Memory Area. -*/ - -/***********************************************************************************/ - -#pragma once - -#ifndef __NAMCOIC_H__ -#define __NAMCOIC_H__ - - - - -/***********************************************************************************/ - -#endif diff --git a/src/mame/includes/namcos2.h b/src/mame/includes/namcos2.h index 971caa9c803..05a67e643ec 100644 --- a/src/mame/includes/namcos2.h +++ b/src/mame/includes/namcos2.h @@ -8,11 +8,11 @@ ***************************************************************************/ -#include "namcoic.h" -#include "cpu/m6502/m3745x.h" -#include "video/c45.h" -#include "machine/namco_c148.h" #include "machine/namco_c139.h" +#include "machine/namco_c148.h" +#include "video/c45.h" + +#include "cpu/m6502/m3745x.h" #include "screen.h" /* CPU reference numbers */ diff --git a/src/mame/includes/nb1413m3.h b/src/mame/includes/nb1413m3.h index 6135130b5b6..5240d2f3e70 100644 --- a/src/mame/includes/nb1413m3.h +++ b/src/mame/includes/nb1413m3.h @@ -7,6 +7,10 @@ Driver by Takahiro Nogi 1999/11/05 - ******************************************************************************/ +#ifndef MAME_INCLUDES_NB1413M3_H +#define MAME_INCLUDES_NB1413M3_H + +#pragma once #define NB1413M3_VCR_NOP 0x00 #define NB1413M3_VCR_POWER 0x01 @@ -193,7 +197,10 @@ INPUT_PORTS_EXTERN( nbhf1_ctrl ); INPUT_PORTS_EXTERN( nbhf2_ctrl ); extern const device_type NB1413M3; +DECLARE_DEVICE_TYPE(NB1413M3, nb1413m3_device) #define MCFG_NB1413M3_ADD(_tag) \ MCFG_DEVICE_ADD(_tag, NB1413M3, 0) + +#endif // MAME_INCLUDES_NB1413M3_H diff --git a/src/mame/includes/nb1414m4.h b/src/mame/includes/nb1414m4.h index 4a3718baa33..bba25f89e12 100644 --- a/src/mame/includes/nb1414m4.h +++ b/src/mame/includes/nb1414m4.h @@ -1,11 +1,14 @@ // license:LGPL-2.1+ // copyright-holders:Angelo Salese -class nb1414m4_device : public device_t, - public device_video_interface +#ifndef MAME_INCLUDES_NB1414M4_H +#define MAME_INCLUDES_NB1414M4_H + +#pragma once + +class nb1414m4_device : public device_t, public device_video_interface { public: nb1414m4_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~nb1414m4_device() {} void exec(uint16_t mcu_cmd, uint8_t *vram, uint16_t &scrollx, uint16_t &scrolly, tilemap_t *tilemap); @@ -28,4 +31,6 @@ private: }; -extern const device_type NB1414M4; +DECLARE_DEVICE_TYPE(NB1414M4, nb1414m4_device) + +#endif // MAME_INCLUDES_NB1414M4_H diff --git a/src/mame/includes/nes.h b/src/mame/includes/nes.h index c9d5ec6470f..1ba3f013236 100644 --- a/src/mame/includes/nes.h +++ b/src/mame/includes/nes.h @@ -8,11 +8,14 @@ ****************************************************************************/ -#ifndef NES_H_ -#define NES_H_ +#ifndef MAME_INCLUDES_NES_H +#define MAME_INCLUDES_NES_H + +#pragma once #include "video/ppu2c0x.h" +#include "bus/nes/disksys.h" #include "bus/nes/nes_slot.h" #include "bus/nes/nes_carts.h" #include "bus/nes_ctrl/ctrl.h" @@ -49,32 +52,16 @@ class nes_state : public driver_device { public: nes_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag), - m_maincpu(*this, "maincpu"), - m_ppu(*this, "ppu"), - m_ctrl1(*this, "ctrl1"), - m_ctrl2(*this, "ctrl2"), - m_exp(*this, "exp"), - m_cartslot(*this, "nes_slot"), - m_disk(*this, "disk") - { } - - /* video-related */ - int m_last_frame_flip; - - /* misc */ - ioport_port *m_io_disksel; - - uint8_t *m_vram; - std::unique_ptr m_ciram; //PPU nametable RAM - external to PPU! - - required_device m_maincpu; - required_device m_ppu; - required_device m_ctrl1; - required_device m_ctrl2; - optional_device m_exp; - optional_device m_cartslot; - optional_device m_disk; + : driver_device(mconfig, type, tag) + , m_maincpu(*this, "maincpu") + , m_ppu(*this, "ppu") + , m_ctrl1(*this, "ctrl1") + , m_ctrl2(*this, "ctrl2") + , m_exp(*this, "exp") + , m_cartslot(*this, "nes_slot") + , m_disk(*this, "disk") + { + } int nes_ppu_vidaccess(int address, int data); void ppu_nmi(int *ppu_regs); @@ -104,7 +91,24 @@ public: void setup_disk(nes_disksys_device *slot); private: + /* video-related */ + int m_last_frame_flip; + + /* misc */ + ioport_port *m_io_disksel; + + uint8_t *m_vram; + std::unique_ptr m_ciram; //PPU nametable RAM - external to PPU! + + required_device m_maincpu; + required_device m_ppu; + required_device m_ctrl1; + required_device m_ctrl2; + optional_device m_exp; + optional_device m_cartslot; + optional_device m_disk; + memory_bank *m_prg_bank_mem[5]; }; -#endif /* NES_H_ */ +#endif // MAME_INCLUDES_NES_H diff --git a/src/mame/includes/newbrain.h b/src/mame/includes/newbrain.h index 9b97f7028aa..41f6e4958a6 100644 --- a/src/mame/includes/newbrain.h +++ b/src/mame/includes/newbrain.h @@ -97,7 +97,7 @@ protected: required_device m_maincpu; required_device m_cop; required_device m_palette; - required_device m_exp; + required_device m_exp; required_device m_cassette1; required_device m_cassette2; required_device m_rs232_v24; diff --git a/src/mame/includes/orion.h b/src/mame/includes/orion.h index b025736dadb..bc2beae935f 100644 --- a/src/mame/includes/orion.h +++ b/src/mame/includes/orion.h @@ -49,27 +49,6 @@ public: , m_bank8(*this, "bank8") { } - uint8_t m_orion128_video_mode; - uint8_t m_orion128_video_page; - uint8_t m_orion128_video_width; - uint8_t m_video_mode_mask; - uint8_t m_orionpro_pseudo_color; - uint8_t m_romdisk_lsb; - uint8_t m_romdisk_msb; - uint8_t m_orion128_memory_page; - uint8_t m_orionz80_memory_page; - uint8_t m_orionz80_dispatcher; - uint8_t m_speaker_data; - uint8_t m_orionpro_ram0_segment; - uint8_t m_orionpro_ram1_segment; - uint8_t m_orionpro_ram2_segment; - uint8_t m_orionpro_page; - uint8_t m_orionpro_128_page; - uint8_t m_orionpro_rom2_segment; - uint8_t m_orionpro_dispatcher; - - required_device m_fdc; - DECLARE_READ8_MEMBER(orion128_system_r); DECLARE_WRITE8_MEMBER(orion128_system_w); DECLARE_READ8_MEMBER(orion128_romdisk_r); @@ -106,6 +85,27 @@ public: DECLARE_FLOPPY_FORMATS( orion_floppy_formats ); protected: + uint8_t m_orion128_video_mode; + uint8_t m_orion128_video_page; + uint8_t m_orion128_video_width; + uint8_t m_video_mode_mask; + uint8_t m_orionpro_pseudo_color; + uint8_t m_romdisk_lsb; + uint8_t m_romdisk_msb; + uint8_t m_orion128_memory_page; + uint8_t m_orionz80_memory_page; + uint8_t m_orionz80_dispatcher; + uint8_t m_speaker_data; + uint8_t m_orionpro_ram0_segment; + uint8_t m_orionpro_ram1_segment; + uint8_t m_orionpro_ram2_segment; + uint8_t m_orionpro_page; + uint8_t m_orionpro_128_page; + uint8_t m_orionpro_rom2_segment; + uint8_t m_orionpro_dispatcher; + + required_device m_fdc; + required_device m_ram; required_device m_fd0; required_device m_fd1; diff --git a/src/mame/includes/osborne1.h b/src/mame/includes/osborne1.h index 33da903005a..f2cc2fea32f 100644 --- a/src/mame/includes/osborne1.h +++ b/src/mame/includes/osborne1.h @@ -102,7 +102,7 @@ public: required_device m_pia0; required_device m_pia1; required_device m_acia; - required_device m_fdc; + required_device m_fdc; required_device m_ram; required_device m_ieee; required_device m_floppy0; diff --git a/src/mame/includes/partner.h b/src/mame/includes/partner.h index ba204d4646b..7cf4e69a1ab 100644 --- a/src/mame/includes/partner.h +++ b/src/mame/includes/partner.h @@ -27,8 +27,6 @@ public: { } - uint8_t m_mem_page; - uint8_t m_win_mem_page; DECLARE_READ8_MEMBER(partner_floppy_r); DECLARE_WRITE8_MEMBER(partner_floppy_w); DECLARE_WRITE8_MEMBER(partner_win_memory_page_w); @@ -38,13 +36,19 @@ public: DECLARE_MACHINE_RESET(partner); I8275_DRAW_CHARACTER_MEMBER(display_pixels); + DECLARE_FLOPPY_FORMATS( floppy_formats ); + +protected: void partner_window_1(uint8_t bank_num, uint16_t offset,uint8_t *rom); void partner_window_2(uint8_t bank_num, uint16_t offset,uint8_t *rom); void partner_iomap_bank(uint8_t *rom); void partner_bank_switch(); + + uint8_t m_mem_page; + uint8_t m_win_mem_page; + required_device m_ram; - required_device m_fdc; - DECLARE_FLOPPY_FORMATS( floppy_formats ); + required_device m_fdc; }; diff --git a/src/mame/includes/patinhofeio.h b/src/mame/includes/patinhofeio.h index e9e5d7f586b..74d5fc91fad 100644 --- a/src/mame/includes/patinhofeio.h +++ b/src/mame/includes/patinhofeio.h @@ -1,5 +1,10 @@ // license:GPL2+ // copyright-holders:Felipe Sanches +#ifndef MAME_INCLUDES_PATINHOFEIO_H +#define MAME_INCLUDES_PATINHOFEIO_H + +#pragma once + #include "machine/teleprinter.h" class patinho_feio_state : public driver_device { @@ -12,26 +17,29 @@ public: { } DECLARE_DRIVER_INIT(patinho_feio); - DECLARE_READ16_MEMBER(rc_r); - DECLARE_READ16_MEMBER(buttons_r); DECLARE_WRITE8_MEMBER(decwriter_data_w); - DECLARE_WRITE8_MEMBER(decwriter_kbd_input); + void decwriter_kbd_input(u8 data); TIMER_CALLBACK_MEMBER(decwriter_callback); DECLARE_WRITE8_MEMBER(teletype_data_w); - DECLARE_WRITE8_MEMBER(teletype_kbd_input); + void teletype_kbd_input(u8 data); TIMER_CALLBACK_MEMBER(teletype_callback); DECLARE_DEVICE_IMAGE_LOAD_MEMBER( patinho_tape ); - void load_tape(const char* name); - void load_raw_data(const char* name, unsigned int start_address, unsigned int data_length); + void update_panel(uint8_t ACC, uint8_t opcode, uint8_t mem_data, uint16_t mem_addr, uint16_t PC, uint8_t FLAGS, uint16_t RC, uint8_t mode); + +protected: virtual void machine_start() override; + void load_tape(const char* name); + void load_raw_data(const char* name, unsigned int start_address, unsigned int data_length); + required_device m_maincpu; required_device m_decwriter; required_device m_tty; + private: uint8_t* paper_tape_data; uint32_t paper_tape_length; @@ -48,3 +56,5 @@ private: uint8_t m_prev_FLAGS; uint16_t m_prev_RC; }; + +#endif // MAME_INCLUDES_PATINHOFEIO_H diff --git a/src/mame/includes/pc1512.h b/src/mame/includes/pc1512.h index 0c36f09a66a..f44879733b5 100644 --- a/src/mame/includes/pc1512.h +++ b/src/mame/includes/pc1512.h @@ -97,7 +97,7 @@ public: required_device m_centronics; required_device m_cent_data_out; required_device m_speaker; - required_device m_kb; + required_device m_kb; required_device m_ram; required_device m_floppy0; optional_device m_floppy1; diff --git a/src/mame/includes/pes.h b/src/mame/includes/pes.h index dcd93cda9f0..de3ba6aa129 100644 --- a/src/mame/includes/pes.h +++ b/src/mame/includes/pes.h @@ -45,7 +45,7 @@ public: DECLARE_WRITE8_MEMBER(port3_w); DECLARE_READ8_MEMBER(port1_r); DECLARE_READ8_MEMBER(port3_r); - DECLARE_WRITE8_MEMBER(pes_kbd_input); + void pes_kbd_input(u8 data); DECLARE_READ8_MEMBER(data_to_i8031); DECLARE_WRITE8_MEMBER(data_from_i8031); }; diff --git a/src/mame/includes/phoenix.h b/src/mame/includes/phoenix.h index a14fbf13d85..9bfdb286e8c 100644 --- a/src/mame/includes/phoenix.h +++ b/src/mame/includes/phoenix.h @@ -1,32 +1,25 @@ // license:BSD-3-Clause // copyright-holders:Richard Davies +#ifndef MAME_INCLUDES_PHOENIX_H +#define MAME_INCLUDES_PHOENIX_H + +#pragma once + #include "audio/pleiads.h" -#include "sound/discrete.h" -#include "sound/tms36xx.h" class phoenix_state : public driver_device { public: phoenix_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) , - m_maincpu(*this, "maincpu"), - m_pleiads_custom(*this, "pleiads_custom"), - m_gfxdecode(*this, "gfxdecode") { } + : driver_device(mconfig, type, tag) + , m_maincpu(*this, "maincpu") + , m_pleiads_custom(*this, "pleiads_custom") + , m_gfxdecode(*this, "gfxdecode") + , m_fg_tilemap(nullptr) + , m_bg_tilemap(nullptr) + { + } - required_device m_maincpu; - optional_device m_pleiads_custom; - required_device m_gfxdecode; - std::unique_ptr m_videoram_pg[2]; - uint8_t m_videoram_pg_index; - uint8_t m_palette_bank; - uint8_t m_cocktail_mode; - uint8_t m_pleiads_protection_question; - uint8_t m_survival_protection_value; - int m_survival_sid_value; - tilemap_t *m_fg_tilemap; - tilemap_t *m_bg_tilemap; - uint8_t m_survival_input_latches[2]; - uint8_t m_survival_input_readc; DECLARE_WRITE8_MEMBER(phoenix_videoram_w); DECLARE_WRITE8_MEMBER(phoenix_videoreg_w); DECLARE_WRITE8_MEMBER(pleiads_videoreg_w); @@ -47,6 +40,24 @@ public: uint32_t screen_update_phoenix(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); DECLARE_READ8_MEMBER(survival_protection_r); DECLARE_READ_LINE_MEMBER(survival_sid_callback); + +protected: + required_device m_maincpu; + optional_device m_pleiads_custom; + required_device m_gfxdecode; + + tilemap_t *m_fg_tilemap; + tilemap_t *m_bg_tilemap; + + std::unique_ptr m_videoram_pg[2]; + uint8_t m_videoram_pg_index; + uint8_t m_palette_bank; + uint8_t m_cocktail_mode; + uint8_t m_pleiads_protection_question; + uint8_t m_survival_protection_value; + int m_survival_sid_value; + uint8_t m_survival_input_latches[2]; + uint8_t m_survival_input_readc; }; @@ -63,55 +74,4 @@ public: #define VBSTART (208) #define VBEND (0) -/*----------- defined in audio/phoenix.c -----------*/ - -struct c_state -{ - int32_t counter; - int32_t level; -}; - -struct n_state -{ - int32_t counter; - int32_t polyoffs; - int32_t polybit; - int32_t lowpass_counter; - int32_t lowpass_polybit; -}; - -class phoenix_sound_device : public device_t, - public device_sound_interface -{ -public: - phoenix_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~phoenix_sound_device() {} - - DECLARE_WRITE8_MEMBER( control_a_w ); - DECLARE_WRITE8_MEMBER( control_b_w ); - -protected: - // device-level overrides - virtual void device_start() override; - - // sound stream update overrides - virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; -private: - // internal state - struct c_state m_c24_state; - struct c_state m_c25_state; - struct n_state m_noise_state; - uint8_t m_sound_latch_a; - sound_stream * m_channel; - std::unique_ptr m_poly18; - discrete_device *m_discrete; - tms36xx_device *m_tms; - - int update_c24(int samplerate); - int update_c25(int samplerate); - int noise(int samplerate); -}; - -extern const device_type PHOENIX; - -DISCRETE_SOUND_EXTERN( phoenix ); +#endif // MAME_INCLUDES_PHOENIX_H diff --git a/src/mame/includes/pk8020.h b/src/mame/includes/pk8020.h index ffa47827dc8..c15a9c3bb60 100644 --- a/src/mame/includes/pk8020.h +++ b/src/mame/includes/pk8020.h @@ -88,7 +88,7 @@ protected: required_device m_rs232; required_device m_lan; required_device m_ram; - required_device m_wd1793; + required_device m_wd1793; required_device m_floppy0; required_device m_floppy1; required_device m_floppy2; diff --git a/src/mame/includes/plygonet.h b/src/mame/includes/plygonet.h index 2a741b265ea..ddcf4ab811f 100644 --- a/src/mame/includes/plygonet.h +++ b/src/mame/includes/plygonet.h @@ -1,5 +1,9 @@ // license:BSD-3-Clause // copyright-holders:R. Belmont, Andrew Gardner +#ifndef MAME_INCLUDES_PLYGONET_H +#define MAME_INCLUDES_PLYGONET_H + +#pragma once #include "machine/eepromser.h" #include "machine/gen_latch.h" @@ -31,7 +35,7 @@ public: m_shared_ram(*this, "shared_ram"), m_dsp56k_p_mirror(*this, "dsp56k_p_mirror"), m_dsp56k_p_8000(*this, "dsp56k_p_8000") - { } + { } required_device m_maincpu; required_device m_audiocpu; @@ -110,3 +114,5 @@ public: INTERRUPT_GEN_MEMBER(polygonet_interrupt); DECLARE_WRITE_LINE_MEMBER(k054539_nmi_gen); }; + +#endif // MAME_INCLUDES_PLYGONET_H diff --git a/src/mame/includes/polepos.h b/src/mame/includes/polepos.h index a2900e4ffbd..f9b08e76656 100644 --- a/src/mame/includes/polepos.h +++ b/src/mame/includes/polepos.h @@ -5,6 +5,10 @@ Pole Position hardware *************************************************************************/ +#ifndef MAME_INCLUDES_POLEPOS_H +#define MAME_INCLUDES_POLEPOS_H + +#pragma once #include "machine/gen_latch.h" #include "sound/namco.h" @@ -161,6 +165,8 @@ private: filter2_context m_filter_engine[3]; }; -extern const device_type POLEPOS; +DECLARE_DEVICE_TYPE(POLEPOS, polepos_sound_device) DISCRETE_SOUND_EXTERN( polepos ); + +#endif // MAME_INCLUDES_POLEPOS_H diff --git a/src/mame/includes/rm380z.h b/src/mame/includes/rm380z.h index c43219a3f31..b853afa34ce 100644 --- a/src/mame/includes/rm380z.h +++ b/src/mame/includes/rm380z.h @@ -7,8 +7,10 @@ Research Machines RM 380Z */ -#ifndef RM380Z_H_ -#define RM380Z_H_ +#ifndef MAME_INCLUDES_RM380Z_H +#define MAME_INCLUDES_RM380Z_H + +#pragma once #include "cpu/z80/z80.h" #include "imagedev/cassette.h" @@ -90,7 +92,7 @@ private: required_device m_maincpu; optional_device m_cassette; optional_device m_messram; - optional_device m_fdc; + optional_device m_fdc; optional_device m_floppy0; optional_device m_floppy1; @@ -125,7 +127,7 @@ public: DECLARE_WRITE8_MEMBER(disk_0_control); - DECLARE_WRITE8_MEMBER( keyboard_put ); + void keyboard_put(u8 data); DECLARE_DRIVER_INIT(rm380z); DECLARE_DRIVER_INIT(rm380z34d); @@ -140,5 +142,4 @@ public: TIMER_CALLBACK_MEMBER(static_vblank_timer); }; - -#endif +#endif // MAME_INCLUDES_RM380Z_H diff --git a/src/mame/includes/rmnimbus.h b/src/mame/includes/rmnimbus.h index 7e8b8803f8c..0a31b41fb08 100644 --- a/src/mame/includes/rmnimbus.h +++ b/src/mame/includes/rmnimbus.h @@ -7,6 +7,11 @@ Phill Harvey-Smith 2009-11-29. */ +#ifndef MAME_INCLUDES_RMNIMBUS_H +#define MAME_INCLUDES_RMNIMBUS_H + +#pragma once + #include "cpu/i86/i186.h" #include "machine/z80dart.h" #include "machine/wd_fdc.h" @@ -77,7 +82,7 @@ public: required_device m_maincpu; required_device m_msm; - required_device m_scsibus; + required_device m_scsibus; required_device m_ram; required_device m_eeprom; required_device m_via; @@ -86,7 +91,7 @@ public: required_device m_scsi_data_out; required_device m_scsi_data_in; required_device m_scsi_ctrl_out; - required_device m_fdc; + required_device m_fdc; required_device m_z80sio; required_device m_screen; required_ioport m_io_config; @@ -223,3 +228,5 @@ private: void debug_command(int ref, const std::vector ¶ms); void video_debug(int ref, const std::vector ¶ms); }; + +#endif // MAME_INCLUDES_RMNIMBUS_H diff --git a/src/mame/includes/samcoupe.h b/src/mame/includes/samcoupe.h index 76e873f194e..f1f3967a19c 100644 --- a/src/mame/includes/samcoupe.h +++ b/src/mame/includes/samcoupe.h @@ -162,7 +162,7 @@ public: required_device m_lpt2; required_device m_ram; required_device m_rtc; - required_device m_fdc; + required_device m_fdc; required_device m_wd1772_0; required_device m_wd1772_1; required_memory_region m_region_maincpu; diff --git a/src/mame/includes/segag80r.h b/src/mame/includes/segag80r.h index b36079d4330..c598f547798 100644 --- a/src/mame/includes/segag80r.h +++ b/src/mame/includes/segag80r.h @@ -5,6 +5,11 @@ Sega G-80 raster hardware *************************************************************************/ +#ifndef MAME_INCLUDES_SEGAG80R_H +#define MAME_INCLUDES_SEGAG80R_H + +#pragma once + #include "sound/samples.h" #include "machine/segag80.h" #include "sound/sn76496.h" @@ -185,7 +190,7 @@ private: TIMER_CALLBACK_MEMBER( sega005_auto_timer ); }; -extern const device_type SEGA005; +DECLARE_DEVICE_TYPE(SEGA005, sega005_sound_device) MACHINE_CONFIG_EXTERN( astrob_sound_board ); @@ -200,3 +205,5 @@ MACHINE_CONFIG_EXTERN( monsterb_sound_board ); #define G80_BACKGROUND_MONSTERB 2 #define G80_BACKGROUND_PIGNEWT 3 #define G80_BACKGROUND_SINDBADM 4 + +#endif // MAME_INCLUDES_SEGAG80R_H diff --git a/src/mame/includes/segas16b.h b/src/mame/includes/segas16b.h index c69cd5c9821..39f6006a6a3 100644 --- a/src/mame/includes/segas16b.h +++ b/src/mame/includes/segas16b.h @@ -43,7 +43,7 @@ public: m_soundlatch(*this, "soundlatch"), m_workram(*this, "workram"), m_romboard(ROM_BOARD_INVALID), - m_tilemap_type(SEGAIC16_TILEMAP_16B), + m_tilemap_type(segaic16_video_device::TILEMAP_16B), m_disable_screen_blanking(false), m_i8751_initial_config(nullptr), m_atomicp_sound_divisor(0), diff --git a/src/mame/includes/segas24.h b/src/mame/includes/segas24.h index 68e8eb27ae5..b55370912b6 100644 --- a/src/mame/includes/segas24.h +++ b/src/mame/includes/segas24.h @@ -82,9 +82,9 @@ public: uint16_t *shared_ram; - segas24_tile *vtile; - segas24_sprite *vsprite; - segas24_mixer *vmixer; + segas24_tile_device *vtile; + segas24_sprite_device *vsprite; + segas24_mixer_device *vmixer; DECLARE_WRITE_LINE_MEMBER(irq_ym); DECLARE_READ16_MEMBER( sys16_paletteram_r ); diff --git a/src/mame/includes/segas32.h b/src/mame/includes/segas32.h index f3371b6c28e..8cbb0e04222 100644 --- a/src/mame/includes/segas32.h +++ b/src/mame/includes/segas32.h @@ -5,6 +5,10 @@ Sega System 32/Multi 32 hardware ***************************************************************************/ +#ifndef MAME_INCLUDES_SEGAS32_H +#define MAME_INCLUDES_SEGAS32_H + +#pragma once #include "sound/multipcm.h" #include "machine/s32comm.h" @@ -17,7 +21,6 @@ class segas32_state : public device_t { public: segas32_state(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - segas32_state(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); required_shared_ptr m_z80_shared_ram; optional_shared_ptr m_system32_workram; @@ -239,6 +242,8 @@ public: void init_titlef(void); protected: + segas32_state(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; virtual void device_reset() override; }; @@ -373,4 +378,6 @@ protected: /*----------- defined in machine/segas32.c -----------*/ extern const uint8_t ga2_v25_opcode_table[]; -extern const device_type SEGA_S32_PCB; +DECLARE_DEVICE_TYPE(SEGA_S32_PCB, segas32_state) + +#endif // MAME_INCLUDES_SEGAS32_H diff --git a/src/mame/includes/segaxbd.h b/src/mame/includes/segaxbd.h index acfe42a5f3d..7ee29f0d974 100644 --- a/src/mame/includes/segaxbd.h +++ b/src/mame/includes/segaxbd.h @@ -5,16 +5,22 @@ Sega X-Board hardware ***************************************************************************/ +#ifndef MAME_INCLUDES_SEGAXBD_H +#define MAME_INCLUDES_SEGAXBD_H + +#pragma once + +#include "machine/segaic16.h" +#include "video/segaic16.h" +#include "video/segaic16_road.h" +#include "video/sega16sp.h" #include "cpu/m68000/m68000.h" #include "cpu/mcs51/mcs51.h" #include "cpu/z80/z80.h" #include "machine/gen_latch.h" #include "machine/mb3773.h" -#include "machine/segaic16.h" -#include "video/segaic16.h" -#include "video/segaic16_road.h" -#include "video/sega16sp.h" +#include "machine/watchdog.h" #include "video/resnet.h" #include "screen.h" @@ -26,7 +32,6 @@ class segaxbd_state : public device_t public: // construction/destruction segaxbd_state(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - segaxbd_state(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); // compare/timer chip callbacks void timer_ack_callback(); @@ -77,6 +82,8 @@ protected: TID_SOUND_WRITE }; + segaxbd_state(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device overrides // virtual void machine_reset(); virtual void video_start(); @@ -146,8 +153,6 @@ public: protected: virtual machine_config_constructor device_mconfig_additions() const override; -// virtual void device_start(); -// virtual void device_reset(); }; @@ -159,8 +164,6 @@ public: protected: virtual machine_config_constructor device_mconfig_additions() const override; -// virtual void device_start(); -// virtual void device_reset(); }; class segaxbd_aburner2_state : public segaxbd_state @@ -181,8 +184,6 @@ public: protected: virtual machine_config_constructor device_mconfig_additions() const override; -// virtual void device_start(); -// virtual void device_reset(); }; class segaxbd_lastsurv_state : public segaxbd_state @@ -192,8 +193,6 @@ public: protected: virtual machine_config_constructor device_mconfig_additions() const override; -// virtual void device_start(); -// virtual void device_reset(); }; @@ -204,8 +203,6 @@ public: protected: virtual machine_config_constructor device_mconfig_additions() const override; -// virtual void device_start(); -// virtual void device_reset(); }; @@ -216,8 +213,6 @@ public: protected: virtual machine_config_constructor device_mconfig_additions() const override; -// virtual void device_start(); -// virtual void device_reset(); }; @@ -228,6 +223,6 @@ public: protected: virtual machine_config_constructor device_mconfig_additions() const override; -// virtual void device_start(); -// virtual void device_reset(); }; + +#endif // MAME_INCLUDES_SEGAXBD_H diff --git a/src/mame/includes/slapstic.h b/src/mame/includes/slapstic.h index f3fdbb9a48c..4e57f5e8d40 100644 --- a/src/mame/includes/slapstic.h +++ b/src/mame/includes/slapstic.h @@ -11,32 +11,22 @@ *************************************************************************/ -#pragma once +#ifndef MAME_INCLUDES_SLAPSTIC_H +#define MAME_INCLUDES_SLAPSTIC_H -#ifndef __SLAPSTIC__ -#define __SLAPSTIC__ +#pragma once #include "cpu/m6800/m6800.h" #include "cpu/m68000/m68000.h" -extern const device_type SLAPSTIC; +DECLARE_DEVICE_TYPE(SLAPSTIC, atari_slapstic_device) #define MCFG_SLAPSTIC_ADD(_tag, _chip) \ MCFG_DEVICE_ADD(_tag, SLAPSTIC, 0) \ MCFG_SLAPSTIC_NUM(_chip) -/************************************* - * - * Debugging - * - *************************************/ - -#define LOG_SLAPSTIC (0) - - - /************************************* * * Structure of slapstic params @@ -179,16 +169,6 @@ protected: virtual void device_start() override; virtual void device_reset() override; virtual void device_validity_check(validity_checker &valid) const override; - - -private: - - - - }; - - - -#endif +#endif // MAME_INCLUDES_SLAPSTIC_H diff --git a/src/mame/includes/snk6502.h b/src/mame/includes/snk6502.h index 955a5b4902d..3538845b0d5 100644 --- a/src/mame/includes/snk6502.h +++ b/src/mame/includes/snk6502.h @@ -5,10 +5,11 @@ rokola hardware *************************************************************************/ +#ifndef MAME_INCLUDES_SNK6502_H +#define MAME_INCLUDES_SNK6502_H + +#pragma once -#include "sound/discrete.h" -#include "sound/samples.h" -#include "sound/sn76477.h" class snk6502_sound_device; @@ -53,6 +54,7 @@ public: DECLARE_WRITE8_MEMBER(scrollx_w); DECLARE_WRITE8_MEMBER(scrolly_w); DECLARE_WRITE8_MEMBER(flipscreen_w); + DECLARE_WRITE8_MEMBER(fantasy_flipscreen_w); DECLARE_WRITE8_MEMBER(satansat_b002_w); DECLARE_WRITE8_MEMBER(satansat_backcolor_w); @@ -86,75 +88,4 @@ public: void postload(); }; - -/*----------- defined in audio/snk6502.c -----------*/ - -#define CHANNELS 3 - -struct TONE -{ - int mute; - int offset; - int base; - int mask; - int32_t sample_rate; - int32_t sample_step; - int32_t sample_cur; - int16_t form[16]; -}; - -class snk6502_sound_device : public device_t, - public device_sound_interface -{ -public: - snk6502_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~snk6502_sound_device() {} - - DECLARE_WRITE8_MEMBER( sasuke_sound_w ); - DECLARE_WRITE8_MEMBER( satansat_sound_w ); - DECLARE_WRITE8_MEMBER( vanguard_sound_w ); - DECLARE_WRITE8_MEMBER( vanguard_speech_w ); - DECLARE_WRITE8_MEMBER( fantasy_sound_w ); - DECLARE_WRITE8_MEMBER( fantasy_speech_w ); - - void set_music_clock(double clock_time); - void set_music_freq(int freq); - int music0_playing(); - -protected: - // device-level overrides - virtual void device_start() override; - - // sound stream update overrides - virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; - -private: - // internal state - TONE m_tone_channels[CHANNELS]; - int32_t m_tone_clock_expire; - int32_t m_tone_clock; - sound_stream * m_tone_stream; - - optional_device m_samples; - uint8_t *m_ROM; - int m_Sound0StopOnRollover; - uint8_t m_LastPort1; - - int m_hd38880_cmd; - uint32_t m_hd38880_addr; - int m_hd38880_data_bytes; - double m_hd38880_speed; - - inline void validate_tone_channel(int channel); - void sasuke_build_waveform(int mask); - void satansat_build_waveform(int mask); - void build_waveform(int channel, int mask); - void speech_w(uint8_t data, const uint16_t *table, int start); -}; - -extern const device_type SNK6502; - -DISCRETE_SOUND_EXTERN( fantasy ); -extern const char *const sasuke_sample_names[]; -extern const char *const vanguard_sample_names[]; -extern const char *const fantasy_sample_names[]; +#endif // MAME_INCLUDES_SNK6502_H diff --git a/src/mame/includes/softbox.h b/src/mame/includes/softbox.h index 8bce05cfd80..606e9e9e1a1 100644 --- a/src/mame/includes/softbox.h +++ b/src/mame/includes/softbox.h @@ -36,7 +36,7 @@ public: required_device m_maincpu; required_device m_dbrg; required_device m_ieee; - required_device m_hdc; + required_device m_hdc; virtual void machine_start() override; virtual void device_reset_after_children() override; diff --git a/src/mame/includes/special.h b/src/mame/includes/special.h index 0e40d43dcdf..80ea784e24d 100644 --- a/src/mame/includes/special.h +++ b/src/mame/includes/special.h @@ -6,8 +6,10 @@ * ****************************************************************************/ -#ifndef SPECIAL_H_ -#define SPECIAL_H_ +#ifndef MAME_INCLUDES_SPECIAL_H +#define MAME_INCLUDES_SPECIAL_H + +#pragma once #include "cpu/z80/z80.h" #include "cpu/i8085/i8085.h" @@ -117,7 +119,7 @@ private: uint8_t m_RC_register; required_device m_maincpu; optional_device m_ppi; - optional_device m_fdc; + optional_device m_fdc; optional_device m_dac; optional_device m_pit; optional_device m_cassette; @@ -148,4 +150,4 @@ private: virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; }; -#endif /* SPECIAL_H_ */ +#endif // MAME_INCLUDES_SPECIAL_H diff --git a/src/mame/includes/super6.h b/src/mame/includes/super6.h index 0ec8fc2729c..5470b1567bc 100644 --- a/src/mame/includes/super6.h +++ b/src/mame/includes/super6.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Curt Coder -#pragma once +#ifndef MAME_INCLUDES_SUPER6_H +#define MAME_INCLUDES_SUPER6_H -#ifndef __SUPER6__ -#define __SUPER6__ +#pragma once #include "cpu/z80/z80.h" #include "cpu/z80/z80daisy.h" @@ -45,22 +45,6 @@ public: m_j7(*this, "J7") { } - required_device m_maincpu; - required_device m_ctc; - required_device m_dart; - required_device m_dma; - required_device m_pio; - required_device m_fdc; - required_device m_brg; - required_device m_ram; - required_device m_floppy0; - required_device m_floppy1; - required_region_ptr m_rom; - required_ioport m_j7; - - virtual void machine_start() override; - virtual void machine_reset() override; - DECLARE_READ8_MEMBER( fdc_r ); DECLARE_WRITE8_MEMBER( fdc_w ); DECLARE_WRITE8_MEMBER( s100_w ); @@ -71,17 +55,35 @@ public: DECLARE_WRITE_LINE_MEMBER( fdc_intrq_w ); DECLARE_WRITE_LINE_MEMBER( fdc_drq_w ); + TIMER_DEVICE_CALLBACK_MEMBER(ctc_tick); + DECLARE_READ8_MEMBER(memory_read_byte); + DECLARE_WRITE8_MEMBER(memory_write_byte); + DECLARE_READ8_MEMBER(io_read_byte); + DECLARE_WRITE8_MEMBER(io_write_byte); + +protected: + virtual void machine_start() override; + virtual void machine_reset() override; + void bankswitch(); + required_device m_maincpu; + required_device m_ctc; + required_device m_dart; + required_device m_dma; + required_device m_pio; + required_device m_fdc; + required_device m_brg; + required_device m_ram; + required_device m_floppy0; + required_device m_floppy1; + required_region_ptr m_rom; + required_ioport m_j7; + // memory state uint8_t m_s100; uint8_t m_bank0; uint8_t m_bank1; - TIMER_DEVICE_CALLBACK_MEMBER(ctc_tick); - DECLARE_READ8_MEMBER(memory_read_byte); - DECLARE_WRITE8_MEMBER(memory_write_byte); - DECLARE_READ8_MEMBER(io_read_byte); - DECLARE_WRITE8_MEMBER(io_write_byte); }; -#endif +#endif // MAME_INCLUDES_SUPER6_H diff --git a/src/mame/includes/super80.h b/src/mame/includes/super80.h index bc6755ca4d0..66402fae33d 100644 --- a/src/mame/includes/super80.h +++ b/src/mame/includes/super80.h @@ -126,7 +126,7 @@ private: required_ioport_array<8> m_io_keyboard; optional_device m_crtc; optional_device m_dma; - optional_device m_fdc; + optional_device m_fdc; optional_device m_floppy0; optional_device m_floppy1; }; diff --git a/src/mame/includes/swtpc09.h b/src/mame/includes/swtpc09.h index 7e43cf2ea35..af1317d7834 100644 --- a/src/mame/includes/swtpc09.h +++ b/src/mame/includes/swtpc09.h @@ -6,8 +6,10 @@ ****************************************************************************/ -#ifndef swtpc09_H_ -#define swtpc09_H_ +#ifndef MAME_INCLUDES_SWTPC09_H +#define MAME_INCLUDES_SWTPC09_H + +#pragma once #include "cpu/m6809/m6809.h" #include "video/generic.h" @@ -29,38 +31,24 @@ class swtpc09_state : public driver_device { public: swtpc09_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag), - m_maincpu(*this, "maincpu"), - m_pia(*this, "pia"), - m_ptm(*this, "ptm"), - m_acia(*this, "acia"), - m_fdc(*this, "fdc"), - m_floppy0(*this, "fdc:0"), - m_floppy1(*this, "fdc:1"), - m_floppy2(*this, "fdc:2"), - m_floppy3(*this, "fdc:3"), - m_via(*this, "via"), - m_piaide(*this, "piaide"), - m_harddisk(*this, "harddisk"), - m_ide(*this, "ide") + : driver_device(mconfig, type, tag) + , m_maincpu(*this, "maincpu") + , m_pia(*this, "pia") + , m_ptm(*this, "ptm") + , m_acia(*this, "acia") + , m_fdc(*this, "fdc") + , m_floppy0(*this, "fdc:0") + , m_floppy1(*this, "fdc:1") + , m_floppy2(*this, "fdc:2") + , m_floppy3(*this, "fdc:3") + , m_via(*this, "via") + , m_piaide(*this, "piaide") + , m_harddisk(*this, "harddisk") + , m_ide(*this, "ide") { } DECLARE_FLOPPY_FORMATS(floppy_formats); - required_device m_maincpu; - required_device m_pia; - required_device m_ptm; - required_device m_acia; - required_device m_fdc; - required_device m_floppy0; - required_device m_floppy1; - required_device m_floppy2; - required_device m_floppy3; - optional_device m_via; - optional_device m_piaide; - optional_device m_harddisk; - optional_device m_ide; - DECLARE_READ8_MEMBER(pia0_a_r); DECLARE_READ8_MEMBER(pia0_ca1_r); DECLARE_WRITE_LINE_MEMBER( pia0_irq_a ); @@ -104,9 +92,27 @@ public: DECLARE_DRIVER_INIT( swtpc09u ); DECLARE_DRIVER_INIT( swtpc09d3 ); + DECLARE_READ8_MEMBER ( m6844_r ); + DECLARE_WRITE8_MEMBER ( m6844_w ); + +protected: void swtpc09_fdc_dma_transfer(); void swtpc09_irq_handler(uint8_t peripheral, uint8_t state); + required_device m_maincpu; + required_device m_pia; + required_device m_ptm; + required_device m_acia; + required_device m_fdc; + required_device m_floppy0; + required_device m_floppy1; + required_device m_floppy2; + required_device m_floppy3; + optional_device m_via; + optional_device m_piaide; + optional_device m_harddisk; + optional_device m_ide; + uint8_t m_term_data; // terminal keyboard value uint8_t m_pia_counter; // this is the counter on pia porta uint8_t m_fdc_dma_address_reg; // dmf2 or dmf3 dma extended address reg @@ -119,11 +125,10 @@ public: uint8_t m_active_interrupt; uint8_t m_interrupt; - // TODO: move this in proper device /* channel_data structure holds info about each 6844 DMA channel */ - typedef struct m6844_channel_data + struct m6844_channel_data { int active; int address; @@ -131,16 +136,13 @@ public: uint8_t control; int start_address; int start_counter; - } m6844_channel_data; + }; /* 6844 description */ m6844_channel_data m_m6844_channel[4]; uint8_t m_m6844_priority; uint8_t m_m6844_interrupt; uint8_t m_m6844_chain; - DECLARE_READ8_MEMBER ( m6844_r ); - DECLARE_WRITE8_MEMBER ( m6844_w ); - }; -#endif /* swtpc09_H_ */ +#endif // MAME_INCLUDES_SWTPC09_H diff --git a/src/mame/includes/tandy2k.h b/src/mame/includes/tandy2k.h index a5affb130a2..573aa33a75f 100644 --- a/src/mame/includes/tandy2k.h +++ b/src/mame/includes/tandy2k.h @@ -108,10 +108,10 @@ public: required_device m_fdc; required_device m_pic0; required_device m_pic1; - required_device m_vpac; - required_device m_drb0; - required_device m_drb1; - required_device m_vac; + required_device m_vpac; + required_device m_drb0; + required_device m_drb1; + required_device m_vac; required_device m_palette; required_device m_timer_vidldsh; required_device m_centronics; diff --git a/src/mame/includes/thomson.h b/src/mame/includes/thomson.h index 92d04243f87..b8e0b4d1bfa 100644 --- a/src/mame/includes/thomson.h +++ b/src/mame/includes/thomson.h @@ -8,8 +8,10 @@ **********************************************************************/ -#ifndef _THOMSON_H_ -#define _THOMSON_H_ +#ifndef MAME_INCLUDES_THOMSON_H +#define MAME_INCLUDES_THOMSON_H + +#pragma once #include "cpu/m6809/m6809.h" #include "formats/thom_cas.h" @@ -697,9 +699,9 @@ private: int m_dsr; }; -extern const device_type TO7_IO_LINE; +DECLARE_DEVICE_TYPE(TO7_IO_LINE, to7_io_line_device) #define MCFG_TO7_IO_LINE_ADD(_tag) \ MCFG_DEVICE_ADD((_tag), TO7_IO_LINE, 0) -#endif /* _THOMSON_H_ */ +#endif // MAME_INCLUDES_THOMSON_H diff --git a/src/mame/includes/tiamc1.h b/src/mame/includes/tiamc1.h index 44ae26dafea..7586e4a5134 100644 --- a/src/mame/includes/tiamc1.h +++ b/src/mame/includes/tiamc1.h @@ -66,80 +66,4 @@ private: void update_bg_palette(); }; - -/*----------- defined in audio/tiamc1.c -----------*/ - -//************************************************************************** -// TYPE DEFINITIONS -//************************************************************************** - -struct timer8253chan -{ - timer8253chan() : - count(0), - cnval(0), - bcdMode(0), - cntMode(0), - valMode(0), - gate(0), - output(0), - loadCnt(0), - enable(0) - {} - - uint16_t count; - uint16_t cnval; - uint8_t bcdMode; - uint8_t cntMode; - uint8_t valMode; - uint8_t gate; - uint8_t output; - uint8_t loadCnt; - uint8_t enable; -}; - -struct timer8253struct -{ - struct timer8253chan channel[3]; -}; - - -// ======================> tiamc1_sound_device - -class tiamc1_sound_device : public device_t, - public device_sound_interface -{ -public: - tiamc1_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~tiamc1_sound_device() { } - -protected: - // device-level overrides - virtual void device_start() override; - - // sound stream update overrides - virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; - -public: - DECLARE_WRITE8_MEMBER( tiamc1_timer0_w ); - DECLARE_WRITE8_MEMBER( tiamc1_timer1_w ); - DECLARE_WRITE8_MEMBER( tiamc1_timer1_gate_w ); - -private: - void timer8253_reset(struct timer8253struct *t); - void timer8253_tick(struct timer8253struct *t,int chn); - void timer8253_wr(struct timer8253struct *t, int reg, uint8_t val); - char timer8253_get_output(struct timer8253struct *t, int chn); - void timer8253_set_gate(struct timer8253struct *t, int chn, uint8_t gate); - -private: - sound_stream *m_channel; - int m_timer1_divider; - - timer8253struct m_timer0; - timer8253struct m_timer1; -}; - -extern const device_type TIAMC1; - #endif // MAME_INCLUDES_TIAMC1_H diff --git a/src/mame/includes/tiki100.h b/src/mame/includes/tiki100.h index 3cd378c4140..299bd033d86 100644 --- a/src/mame/includes/tiki100.h +++ b/src/mame/includes/tiki100.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Curt Coder -#pragma once +#ifndef MAME_INCLUDES_TIKI100_H +#define MAME_INCLUDES_TIKI100_H -#ifndef __TIKI100__ -#define __TIKI100__ +#pragma once #include "bus/centronics/ctronics.h" #include "bus/rs232/rs232.h" @@ -65,28 +65,6 @@ public: m_vire(1) { } - required_device m_maincpu; - required_device m_ctc; - required_device m_fdc; - required_device m_pio; - required_device m_dart; - required_device m_psg; - required_device m_ram; - required_device m_floppy0; - required_device m_floppy1; - required_device m_cassette; - required_device m_centronics; - required_device m_exp; - required_memory_region m_rom; - required_memory_region m_prom; - optional_shared_ptr m_video_ram; - required_ioport_array<12> m_y; - required_ioport m_st_io; - required_device m_palette; - - virtual void machine_start() override; - virtual void machine_reset() override; - uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); DECLARE_READ8_MEMBER( mrq_r ); @@ -117,6 +95,29 @@ public: DECLARE_WRITE_LINE_MEMBER( busrq_w ); +protected: + virtual void machine_start() override; + virtual void machine_reset() override; + + required_device m_maincpu; + required_device m_ctc; + required_device m_fdc; + required_device m_pio; + required_device m_dart; + required_device m_psg; + required_device m_ram; + required_device m_floppy0; + required_device m_floppy1; + required_device m_cassette; + required_device m_centronics; + required_device m_exp; + required_memory_region m_rom; + required_memory_region m_prom; + optional_shared_ptr m_video_ram; + required_ioport_array<12> m_y; + required_ioport m_st_io; + required_device m_palette; + enum { ROM0 = 0x01, @@ -146,4 +147,4 @@ public: bool m_st; }; -#endif +#endif // MAME_INCLUDES_TIKI100_H diff --git a/src/mame/includes/tranz330.h b/src/mame/includes/tranz330.h index fa60cd09b85..146eb533c03 100644 --- a/src/mame/includes/tranz330.h +++ b/src/mame/includes/tranz330.h @@ -59,7 +59,7 @@ private: required_device m_dart; required_device m_pio; required_device m_rtc; - required_device m_vfd; + required_device m_vfd; required_device m_rs232; required_device m_speaker; required_ioport_array<4> m_keypad; diff --git a/src/mame/includes/trs80.h b/src/mame/includes/trs80.h index 02f3408d0f9..c65340d9003 100644 --- a/src/mame/includes/trs80.h +++ b/src/mame/includes/trs80.h @@ -162,7 +162,7 @@ private: optional_device m_cent_data_out; optional_device m_cent_status_in; optional_device m_ay31015; - optional_device m_fdc; + optional_device m_fdc; optional_device m_floppy0; optional_device m_floppy1; optional_device m_floppy2; diff --git a/src/mame/includes/trs80m2.h b/src/mame/includes/trs80m2.h index 151b57b667c..6a799948dc9 100644 --- a/src/mame/includes/trs80m2.h +++ b/src/mame/includes/trs80m2.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Curt Coder -#pragma once +#ifndef MAME_INCLUDES_TRS80M2_H +#define MAME_INCLUDES_TRS80M2_H -#ifndef __TRS80M2__ -#define __TRS80M2__ +#pragma once #include "cpu/z80/z80.h" @@ -60,29 +60,6 @@ public: { } - required_device m_maincpu; - required_device m_ctc; - required_device m_dmac; - required_device m_pio; - required_device m_crtc; - required_device m_palette; - required_device m_fdc; - required_device m_centronics; - required_device m_floppy0; - required_device m_floppy1; - required_device m_floppy2; - required_device m_floppy3; - floppy_image_device *m_floppy; - required_device m_ram; - required_device m_kb; - required_memory_region m_rom; - required_memory_region m_char_rom; - optional_shared_ptr m_video_ram; - - virtual void machine_start() override; - virtual void machine_reset() override; - - virtual void video_start() override; uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); DECLARE_READ8_MEMBER( read ); @@ -101,10 +78,43 @@ public: DECLARE_WRITE8_MEMBER( pio_pa_w ); DECLARE_WRITE_LINE_MEMBER( strobe_w ); DECLARE_WRITE_LINE_MEMBER( kb_clock_w ); - DECLARE_WRITE8_MEMBER( kbd_w ); + void kbd_w(u8 data); MC6845_UPDATE_ROW( crtc_update_row ); + TIMER_DEVICE_CALLBACK_MEMBER(ctc_tick); + DECLARE_READ8_MEMBER(io_read_byte); + DECLARE_WRITE8_MEMBER(io_write_byte); + + DECLARE_WRITE_LINE_MEMBER(write_centronics_busy); + DECLARE_WRITE_LINE_MEMBER(write_centronics_fault); + DECLARE_WRITE_LINE_MEMBER(write_centronics_perror); + +protected: + virtual void machine_start() override; + virtual void machine_reset() override; + + virtual void video_start() override; + + required_device m_maincpu; + required_device m_ctc; + required_device m_dmac; + required_device m_pio; + required_device m_crtc; + required_device m_palette; + required_device m_fdc; + required_device m_centronics; + required_device m_floppy0; + required_device m_floppy1; + required_device m_floppy2; + required_device m_floppy3; + floppy_image_device *m_floppy; + required_device m_ram; + required_device m_kb; + required_memory_region m_rom; + required_memory_region m_char_rom; + optional_shared_ptr m_video_ram; + // memory state int m_boot_rom; int m_bank; @@ -125,39 +135,33 @@ public: int m_rtc_int; int m_enable_rtc_int; - TIMER_DEVICE_CALLBACK_MEMBER(ctc_tick); - DECLARE_READ8_MEMBER(io_read_byte); - DECLARE_WRITE8_MEMBER(io_write_byte); - int m_centronics_busy; int m_centronics_fault; int m_centronics_perror; - - DECLARE_WRITE_LINE_MEMBER(write_centronics_busy); - DECLARE_WRITE_LINE_MEMBER(write_centronics_fault); - DECLARE_WRITE_LINE_MEMBER(write_centronics_perror); }; class trs80m16_state : public trs80m2_state { public: trs80m16_state(const machine_config &mconfig, device_type type, const char *tag) - : trs80m2_state(mconfig, type, tag), - m_subcpu(*this, M68000_TAG), - m_pic(*this, AM9519A_TAG) - { } + : trs80m2_state(mconfig, type, tag) + , m_subcpu(*this, M68000_TAG) + , m_pic(*this, AM9519A_TAG) + { + } - required_device m_subcpu; - required_device m_pic; + DECLARE_WRITE8_MEMBER( ual_w ); + DECLARE_WRITE8_MEMBER( tcl_w ); +protected: virtual void machine_start() override; - DECLARE_WRITE8_MEMBER( ual_w ); - DECLARE_WRITE8_MEMBER( tcl_w ); + required_device m_subcpu; + required_device m_pic; uint16_t m_ual; uint8_t m_limit[2]; uint8_t m_offset[2]; }; -#endif +#endif // MAME_INCLUDES_TRS80M2_H diff --git a/src/mame/includes/tsispch.h b/src/mame/includes/tsispch.h index 6b3db7d4f25..952d10badff 100644 --- a/src/mame/includes/tsispch.h +++ b/src/mame/includes/tsispch.h @@ -6,12 +6,11 @@ ****************************************************************************/ -#pragma once +#ifndef MAME_INCLUDES_TSISPCH_H +#define MAME_INCLUDES_TSISPCH_H -#ifndef _TSISPCH_H_ -#define _TSISPCH_H_ +#pragma once -#include "machine/i8251.h" #include "machine/pic8259.h" #include "machine/terminal.h" @@ -25,21 +24,10 @@ public: m_maincpu(*this, "maincpu"), m_dsp(*this, "dsp"), m_terminal(*this, TERMINAL_TAG), - m_uart(*this, "i8251a_u15"), m_pic(*this, "pic8259") { } - required_device m_maincpu; - required_device m_dsp; - required_device m_terminal; - required_device m_uart; - required_device m_pic; - - uint8_t m_paramReg; // status leds and resets and etc - - virtual void machine_reset() override; - DECLARE_WRITE8_MEMBER(i8251_rxd); DECLARE_READ8_MEMBER(dsw_r); DECLARE_WRITE8_MEMBER(peripheral_w); DECLARE_READ16_MEMBER(dsp_data_r); @@ -52,7 +40,16 @@ public: DECLARE_WRITE_LINE_MEMBER(i8251_txrdy_int); DECLARE_WRITE_LINE_MEMBER(dsp_to_8086_p0_w); DECLARE_WRITE_LINE_MEMBER(dsp_to_8086_p1_w); -}; +protected: + virtual void machine_reset() override; + + required_device m_maincpu; + required_device m_dsp; + required_device m_terminal; + required_device m_pic; + + uint8_t m_paramReg; // status leds and resets and etc +}; -#endif // _TSISPCH_H_ +#endif // MAME_INCLUDES_TSISPCH_H diff --git a/src/mame/includes/turrett.h b/src/mame/includes/turrett.h index cf540a6e8ef..fc9f74e4c2a 100644 --- a/src/mame/includes/turrett.h +++ b/src/mame/includes/turrett.h @@ -5,6 +5,10 @@ Turret Tower hardware ****************************************************************************/ +#ifndef MAME_INCLUDES_TURRETT_H +#define MAME_INCLUDES_TURRETT_H + +#pragma once #include "machine/ataintf.h" #include "screen.h" @@ -128,4 +132,6 @@ private: }; // device type definition -extern const device_type TURRETT; +DECLARE_DEVICE_TYPE(TURRETT, turrett_device) + +#endif // MAME_INCLUDES_TURRETT_H diff --git a/src/mame/includes/tx1.h b/src/mame/includes/tx1.h index e22cd8be080..d9fe40a979f 100644 --- a/src/mame/includes/tx1.h +++ b/src/mame/includes/tx1.h @@ -5,6 +5,10 @@ TX-1/Buggy Boy hardware *************************************************************************/ +#ifndef MAME_INCLUDES_TX1_H +#define MAME_INCLUDES_TX1_H + +#pragma once #include "screen.h" @@ -258,7 +262,6 @@ class tx1_sound_device : public device_t, { public: tx1_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - tx1_sound_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); ~tx1_sound_device() {} DECLARE_READ8_MEMBER( pit8253_r ); @@ -267,6 +270,8 @@ public: DECLARE_WRITE8_MEMBER( ay8910_b_w ); protected: + tx1_sound_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -308,7 +313,7 @@ protected: uint16_t m_eng_voltages[16]; }; -extern const device_type TX1; +DECLARE_DEVICE_TYPE(TX1, tx1_sound_device) class buggyboy_sound_device : public tx1_sound_device { @@ -331,4 +336,6 @@ private: // internal state }; -extern const device_type BUGGYBOY; +DECLARE_DEVICE_TYPE(BUGGYBOY, buggyboy_sound_device) + +#endif // MAME_INCLUDES_TX1_H diff --git a/src/mame/includes/v1050.h b/src/mame/includes/v1050.h index 2c6ea33a5b1..16056093234 100644 --- a/src/mame/includes/v1050.h +++ b/src/mame/includes/v1050.h @@ -1,9 +1,11 @@ // license:BSD-3-Clause // copyright-holders:Curt Coder +#ifndef MAME_INCLUDES_V1050_H +#define MAME_INCLUDES_V1050_H + #pragma once -#ifndef __V1050__ -#define __V1050__ +#pragma once #include "cpu/z80/z80.h" #include "cpu/m6502/m6502.h" @@ -162,7 +164,6 @@ private: void scan_keyboard(); void set_baud_sel(int sel); -public: // HACK for MC6845 required_device m_maincpu; required_device m_subcpu; required_device m_pic; @@ -171,7 +172,7 @@ public: // HACK for MC6845 required_device m_rtc; required_device m_uart_kb; required_device m_uart_sio; - required_device m_fdc; + required_device m_fdc; required_device m_crtc; required_device m_palette; required_device m_centronics; @@ -183,7 +184,7 @@ public: // HACK for MC6845 required_device m_clock_sio; required_device m_timer_ack; required_device m_timer_rst; - required_device m_sasibus; + required_device m_sasibus; required_device m_sasi_data_out; required_device m_sasi_data_in; required_device m_sasi_ctrl_in; @@ -229,4 +230,4 @@ public: // HACK for MC6845 MACHINE_CONFIG_EXTERN( v1050_video ); -#endif +#endif // MAME_INCLUDES_V1050_H diff --git a/src/mame/includes/vector06.h b/src/mame/includes/vector06.h index b9a0e9b5fce..19e17d6524c 100644 --- a/src/mame/includes/vector06.h +++ b/src/mame/includes/vector06.h @@ -90,7 +90,7 @@ private: required_device m_speaker; required_device m_cassette; required_device m_cart; - required_device m_fdc; + required_device m_fdc; required_device m_floppy0; required_device m_floppy1; required_device m_ppi; diff --git a/src/mame/includes/vixen.h b/src/mame/includes/vixen.h index 60e75070ba2..969dbd7b151 100644 --- a/src/mame/includes/vixen.h +++ b/src/mame/includes/vixen.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Curt Coder -#pragma once +#ifndef MAME_INCLUDES_VIXEN_H +#define MAME_INCLUDES_VIXEN_H -#ifndef __VIXEN__ -#define __VIXEN__ +#pragma once #include "bus/rs232/rs232.h" #include "cpu/z80/z80.h" @@ -77,7 +77,7 @@ public: private: required_device m_maincpu; - required_device m_fdc; + required_device m_fdc; required_device m_io_i8155; required_device m_usart; required_device m_discrete; @@ -129,4 +129,4 @@ private: bool m_256; }; -#endif +#endif // MAME_INCLUDES_VIXEN_H diff --git a/src/mame/includes/x1.h b/src/mame/includes/x1.h index 3329e1b883f..0abab512956 100644 --- a/src/mame/includes/x1.h +++ b/src/mame/includes/x1.h @@ -6,8 +6,10 @@ * ****************************************************************************/ -#ifndef X1_H_ -#define X1_H_ +#ifndef MAME_INCLUDES_X1_H +#define MAME_INCLUDES_X1_H + +#pragma once #include "cpu/z80/z80.h" #include "cpu/z80/z80daisy.h" @@ -44,35 +46,35 @@ private: virtual void z80daisy_irq_reti() override; }; -struct scrn_reg_t +class x1_state : public driver_device { - uint8_t gfx_bank; - uint8_t disp_bank; - uint8_t pcg_mode; - uint8_t v400_mode; - uint8_t ank_sel; +public: + struct scrn_reg_t + { + uint8_t gfx_bank; + uint8_t disp_bank; + uint8_t pcg_mode; + uint8_t v400_mode; + uint8_t ank_sel; - uint8_t pri; - uint8_t blackclip; // x1 turbo specific -}; + uint8_t pri; + uint8_t blackclip; // x1 turbo specific + }; -struct turbo_reg_t -{ - uint8_t pal; - uint8_t gfx_pal; - uint8_t txt_pal[8]; - uint8_t txt_disp; -}; + struct turbo_reg_t + { + uint8_t pal; + uint8_t gfx_pal; + uint8_t txt_pal[8]; + uint8_t txt_disp; + }; -struct x1_rtc_t -{ - uint8_t sec, min, hour, day, wday, month, year; -}; + struct x1_rtc_t + { + uint8_t sec, min, hour, day, wday, month, year; + }; -class x1_state : public driver_device -{ -public: x1_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), m_maincpu(*this,"x1_cpu"), @@ -95,7 +97,7 @@ public: required_device m_maincpu; required_device m_cassette; required_device m_cart; - required_device m_fdc; + required_device m_fdc; required_device m_floppy0; required_device m_floppy1; required_device m_floppy2; @@ -299,6 +301,6 @@ public: /*----------- defined in machine/x1.c -----------*/ -extern const device_type X1_KEYBOARD; +DECLARE_DEVICE_TYPE(X1_KEYBOARD, x1_keyboard_device) -#endif /* X1_H_ */ +#endif // MAME_INCLUDES_X1_H diff --git a/src/mame/includes/xbox_pci.h b/src/mame/includes/xbox_pci.h index 2ab41a2ea27..7c9f34b5d8d 100644 --- a/src/mame/includes/xbox_pci.h +++ b/src/mame/includes/xbox_pci.h @@ -299,7 +299,7 @@ protected: virtual void device_reset() override; }; -extern const device_type NV2A_AGP; +DECLARE_DEVICE_TYPE(NV2A_AGP, nv2a_agp_device) /* * NV2A 3D Accelerator @@ -331,7 +331,7 @@ private: DECLARE_ADDRESS_MAP(nv2a_mirror, 32); }; -extern const device_type NV2A_GPU; +DECLARE_DEVICE_TYPE(NV2A_GPU, nv2a_gpu_device) #define MCFG_MCPX_NV2A_GPU_CPU(_cpu_tag) \ downcast(device)->set_cpu_tag(_cpu_tag); diff --git a/src/mame/includes/xbox_usb.h b/src/mame/includes/xbox_usb.h index 1a483b98911..bf32b1ad2ab 100644 --- a/src/mame/includes/xbox_usb.h +++ b/src/mame/includes/xbox_usb.h @@ -1,5 +1,7 @@ // license:BSD-3-Clause // copyright-holders:Samuele Zannoli +#ifndef MAME_INCLUDES_XBOX_USB_H +#define MAME_INCLUDES_XBOX_USB_H #pragma once @@ -453,12 +455,12 @@ protected: usb_device_configuration *selected_configuration; }; -extern const device_type OHCI_GAME_CONTROLLER; +DECLARE_DEVICE_TYPE(OHCI_GAME_CONTROLLER, ohci_game_controller_device) -class ohci_game_controller : public device_t, public ohci_function +class ohci_game_controller_device : public device_t, public ohci_function { public: - ohci_game_controller(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + ohci_game_controller_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); void initialize(running_machine &machine) override; int handle_nonstandard_request(int endpoint, USBSetupPacket *setup) override; int handle_interrupt_pid(int endpoint, int pid, uint8_t *buffer, int size) override; @@ -487,3 +489,5 @@ private: required_ioport m_Black; // analog button required_ioport m_White; // analog button }; + +#endif // MAME_INCLUDES_XBOX_USB_H diff --git a/src/mame/includes/xerox820.h b/src/mame/includes/xerox820.h index 2969f58712c..b3f3fbdd8bf 100644 --- a/src/mame/includes/xerox820.h +++ b/src/mame/includes/xerox820.h @@ -66,36 +66,39 @@ public: m_400_460(0) { } + uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); + + DECLARE_READ8_MEMBER( fdc_r ); + DECLARE_WRITE8_MEMBER( fdc_w ); + DECLARE_WRITE8_MEMBER( scroll_w ); + //DECLARE_WRITE8_MEMBER( x120_system_w ); + DECLARE_READ8_MEMBER( kbpio_pa_r ); + DECLARE_WRITE8_MEMBER( kbpio_pa_w ); + DECLARE_READ8_MEMBER( kbpio_pb_r ); + DECLARE_WRITE_LINE_MEMBER( fr_w ); + DECLARE_WRITE_LINE_MEMBER( fdc_intrq_w ); + DECLARE_WRITE_LINE_MEMBER( fdc_drq_w ); + + TIMER_DEVICE_CALLBACK_MEMBER(ctc_tick); + +protected: virtual void machine_start() override; virtual void machine_reset() override; - uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); - required_device m_maincpu; required_device m_kbpio; required_device m_ctc; required_device m_sio; - required_device m_fdc; + required_device m_fdc; required_device m_ram; required_device m_palette; required_device m_floppy0; required_device m_floppy1; - required_device m_kb; + required_device m_kb; required_memory_region m_rom; required_memory_region m_char_rom; required_shared_ptr m_video_ram; - DECLARE_READ8_MEMBER( fdc_r ); - DECLARE_WRITE8_MEMBER( fdc_w ); - DECLARE_WRITE8_MEMBER( scroll_w ); - //DECLARE_WRITE8_MEMBER( x120_system_w ); - DECLARE_READ8_MEMBER( kbpio_pa_r ); - DECLARE_WRITE8_MEMBER( kbpio_pa_w ); - DECLARE_READ8_MEMBER( kbpio_pb_r ); - DECLARE_WRITE_LINE_MEMBER( fr_w ); - DECLARE_WRITE_LINE_MEMBER( fdc_intrq_w ); - DECLARE_WRITE_LINE_MEMBER( fdc_drq_w ); - virtual void bankswitch(int bank); void update_nmi(); @@ -112,27 +115,26 @@ public: bool m_fdc_drq; /* data request */ int m_8n5; /* 5.25" / 8" drive select */ int m_400_460; /* double sided disk detect */ - - TIMER_DEVICE_CALLBACK_MEMBER(ctc_tick); }; class bigboard_state : public xerox820_state { public: bigboard_state(const machine_config &mconfig, device_type type, const char *tag) - : xerox820_state(mconfig, type, tag), - m_beeper(*this, "beeper") + : xerox820_state(mconfig, type, tag) + , m_beeper(*this, "beeper") { } - required_device m_beeper; + DECLARE_WRITE8_MEMBER( kbpio_pa_w ); +protected: virtual void machine_reset() override; - DECLARE_WRITE8_MEMBER( kbpio_pa_w ); + TIMER_CALLBACK_MEMBER(bigboard_beepoff); - bool m_bit5; + required_device m_beeper; - TIMER_CALLBACK_MEMBER(bigboard_beepoff); + bool m_bit5; }; class xerox820ii_state : public xerox820_state @@ -145,11 +147,6 @@ public: { } - required_device m_speaker; - required_device m_sasibus; - - virtual void machine_reset() override; - DECLARE_WRITE8_MEMBER( bell_w ); DECLARE_WRITE8_MEMBER( slden_w ); DECLARE_WRITE8_MEMBER( chrom_w ); @@ -159,7 +156,13 @@ public: DECLARE_WRITE8_MEMBER( rdpio_pb_w ); DECLARE_WRITE_LINE_MEMBER( rdpio_pardy_w ); +protected: + virtual void machine_reset() override; + void bankswitch(int bank) override; + + required_device m_speaker; + required_device m_sasibus; }; #endif // MAME_INCLUDES_XEROX820_H diff --git a/src/mame/includes/xor100.h b/src/mame/includes/xor100.h index 63423cbf5fb..1656fd18b3f 100644 --- a/src/mame/includes/xor100.h +++ b/src/mame/includes/xor100.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Curt Coder -#pragma once +#ifndef MAME_INCLUDES_XOR100_H +#define MAME_INCLUDES_XOR100_H -#ifndef __XOR100__ -#define __XOR100__ +#pragma once #include "bus/s100/s100.h" #include "cpu/z80/z80.h" @@ -48,24 +48,6 @@ public: m_rom(*this, Z80_TAG) { } - required_device m_maincpu; - required_device m_dbrg; - required_device m_uart_a; - required_device m_uart_b; - required_device m_fdc; - required_device m_ctc; - required_device m_ram; - required_device m_centronics; - required_device m_s100; - required_device m_floppy0; - required_device m_floppy1; - required_device m_floppy2; - required_device m_floppy3; - required_memory_region m_rom; - - virtual void machine_start() override; - virtual void machine_reset() override; - DECLARE_WRITE8_MEMBER( mmu_w ); DECLARE_WRITE8_MEMBER( prom_toggle_w ); DECLARE_READ8_MEMBER( prom_disable_r ); @@ -78,9 +60,37 @@ public: void fdc_intrq_w(bool state); void fdc_drq_w(bool state); + DECLARE_WRITE_LINE_MEMBER(com5016_fr_w); + DECLARE_WRITE_LINE_MEMBER(com5016_ft_w); + DECLARE_READ8_MEMBER(i8255_pc_r); + DECLARE_WRITE_LINE_MEMBER(ctc_z0_w); + DECLARE_WRITE_LINE_MEMBER(ctc_z1_w); + DECLARE_WRITE_LINE_MEMBER(ctc_z2_w); + DECLARE_WRITE_LINE_MEMBER(write_centronics_busy); + DECLARE_WRITE_LINE_MEMBER(write_centronics_select); + +protected: + virtual void machine_start() override; + virtual void machine_reset() override; + void bankswitch(); void post_load(); + required_device m_maincpu; + required_device m_dbrg; + required_device m_uart_a; + required_device m_uart_b; + required_device m_fdc; + required_device m_ctc; + required_device m_ram; + required_device m_centronics; + required_device m_s100; + required_device m_floppy0; + required_device m_floppy1; + required_device m_floppy2; + required_device m_floppy3; + required_memory_region m_rom; + // memory state int m_mode; int m_bank; @@ -89,17 +99,9 @@ public: bool m_fdc_irq; bool m_fdc_drq; int m_fdc_dden; - DECLARE_WRITE_LINE_MEMBER(com5016_fr_w); - DECLARE_WRITE_LINE_MEMBER(com5016_ft_w); - DECLARE_READ8_MEMBER(i8255_pc_r); - DECLARE_WRITE_LINE_MEMBER(ctc_z0_w); - DECLARE_WRITE_LINE_MEMBER(ctc_z1_w); - DECLARE_WRITE_LINE_MEMBER(ctc_z2_w); int m_centronics_busy; int m_centronics_select; - DECLARE_WRITE_LINE_MEMBER(write_centronics_busy); - DECLARE_WRITE_LINE_MEMBER(write_centronics_select); }; -#endif +#endif // MAME_INCLUDES_XOR100_H diff --git a/src/mame/includes/z80ne.h b/src/mame/includes/z80ne.h index 03068d5e97e..ffe4765b7f5 100644 --- a/src/mame/includes/z80ne.h +++ b/src/mame/includes/z80ne.h @@ -10,8 +10,10 @@ * ****************************************************************************/ -#ifndef Z80NE_H_ -#define Z80NE_H_ +#ifndef MAME_INCLUDES_Z80NE_H +#define MAME_INCLUDES_Z80NE_H + +#pragma once #include "video/mc6847.h" #include "imagedev/cassette.h" @@ -158,7 +160,7 @@ protected: optional_device m_floppy3; required_device m_cassette1; required_device m_cassette2; - optional_device m_wd1771; + optional_device m_wd1771; required_memory_region m_region_z80ne; optional_memory_bank m_bank1; optional_memory_bank m_bank2; @@ -190,4 +192,4 @@ protected: void reset_lx390_banking(); }; -#endif /* Z80NE_H_ */ +#endif // MAME_INCLUDES_Z80NE_H diff --git a/src/mame/includes/zorba.h b/src/mame/includes/zorba.h index 1c14b8399b3..14fa6bb41e2 100644 --- a/src/mame/includes/zorba.h +++ b/src/mame/includes/zorba.h @@ -1,5 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Robbbert, Vas Crabb +#ifndef MAME_INCLUDES_ZORBA_H +#define MAME_INCLUDES_ZORBA_H + +#pragma once #include "sound/beep.h" @@ -95,7 +99,7 @@ private: required_device m_beep; - required_device m_fdc; + required_device m_fdc; required_device m_floppy0; required_device m_floppy1; @@ -111,3 +115,5 @@ private: uint8_t m_term_data; }; + +#endif // MAME_INCLUDES_ZORBA_H diff --git a/src/mame/machine/315-5838_317-0229_comp.cpp b/src/mame/machine/315-5838_317-0229_comp.cpp index dd03de19e1d..b54ed9a51ae 100644 --- a/src/mame/machine/315-5838_317-0229_comp.cpp +++ b/src/mame/machine/315-5838_317-0229_comp.cpp @@ -48,12 +48,12 @@ #include "emu.h" #include "machine/315-5838_317-0229_comp.h" -const device_type SEGA315_5838_COMP = device_creator; +DEFINE_DEVICE_TYPE(SEGA315_5838_COMP, sega_315_5838_comp_device, "sega315_5838", "Sega 315-4838 / 317-0029 Compression (Encryption?)") //#define DEBUG_DATA_DUMP sega_315_5838_comp_device::sega_315_5838_comp_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, SEGA315_5838_COMP, "Sega 315-5838 / 317-0029 Compression (Encryption?)", tag, owner, clock, "sega315_5838", __FILE__) + : device_t(mconfig, SEGA315_5838_COMP, tag, owner, clock) { } diff --git a/src/mame/machine/315-5838_317-0229_comp.h b/src/mame/machine/315-5838_317-0229_comp.h index 1d741c73ac3..0990472fadb 100644 --- a/src/mame/machine/315-5838_317-0229_comp.h +++ b/src/mame/machine/315-5838_317-0229_comp.h @@ -1,16 +1,13 @@ // license:BSD-3-Clause // copyright-holders:David Haywood +#ifndef MAME_MACHINE_315_5838_371_0229_COMP_H +#define MAME_MACHINE_315_5838_371_0229_COMP_H #pragma once -#ifndef __SEGA315_5838_COMP__ -#define __SEGA315_5838_COMP__ - -#define CHANNELS 2 - typedef device_delegate sega_dec_read_delegate; -extern const device_type SEGA315_5838_COMP; +DECLARE_DEVICE_TYPE(SEGA315_5838_COMP, sega_315_5838_comp_device) #define MCFG_SET_5838_READ_CALLBACK_CH1( _class, _method) \ sega_315_5838_comp_device::set_read_cb_ch1(*device, sega_m2_read_delegate(&_class::_method, #_class "::" #_method, nullptr, (_class *)nullptr)); @@ -24,8 +21,6 @@ public: // construction/destruction sega_315_5838_comp_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - sega_dec_read_delegate m_read_ch2; - static void set_read_cb_ch1(device_t &device,sega_dec_read_delegate readcb) { sega_315_5838_comp_device &dev = downcast(device); @@ -65,6 +60,10 @@ protected: virtual void device_reset() override; private: + static constexpr unsigned CHANNELS = 2; + + sega_dec_read_delegate m_read_ch2; + uint16_t m_decathlt_prottable1[24]; uint16_t m_decathlt_dictionaryy[128]; @@ -84,12 +83,10 @@ private: channel_type m_channel[2]; - - // Doa int m_protstate; int m_prot_a; uint8_t m_protram[256]; }; -#endif +#endif // MAME_MACHINE_315_5838_371_0229_COMP_H diff --git a/src/mame/machine/315-5881_crypt.cpp b/src/mame/machine/315-5881_crypt.cpp index 124f430c4e1..f7f861339e2 100644 --- a/src/mame/machine/315-5881_crypt.cpp +++ b/src/mame/machine/315-5881_crypt.cpp @@ -17,11 +17,11 @@ #include "emu.h" #include "machine/315-5881_crypt.h" -const device_type SEGA315_5881_CRYPT = device_creator; +DEFINE_DEVICE_TYPE(SEGA315_5881_CRYPT, sega_315_5881_crypt_device, "sega315_5881", "Sega 315-5881 Encryption") sega_315_5881_crypt_device::sega_315_5881_crypt_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, SEGA315_5881_CRYPT, "Sega 315-5881 Encryption", tag, owner, clock, "sega315_5881", __FILE__) + : device_t(mconfig, SEGA315_5881_CRYPT, tag, owner, clock) { } diff --git a/src/mame/machine/315-5881_crypt.h b/src/mame/machine/315-5881_crypt.h index 109ec4c23b9..62c0de16e9a 100644 --- a/src/mame/machine/315-5881_crypt.h +++ b/src/mame/machine/315-5881_crypt.h @@ -1,14 +1,14 @@ // license:BSD-3-Clause // copyright-holders:David Haywood +#ifndef MAME_MACHINE_315_5881_CRYPT_H +#define MAME_MACHINE_315_5881_CRYPT_H #pragma once -#ifndef __SEGA315_5881_CRYPT__ -#define __SEGA315_5881_CRYPT__ typedef device_delegate sega_m2_read_delegate; -extern const device_type SEGA315_5881_CRYPT; +DECLARE_DEVICE_TYPE(SEGA315_5881_CRYPT, sega_315_5881_crypt_device) #define MCFG_SET_READ_CALLBACK( _class, _method) \ sega_315_5881_crypt_device::set_read_cb(*device, sega_m2_read_delegate(&_class::_method, #_class "::" #_method, nullptr, (_class *)nullptr)); @@ -97,4 +97,4 @@ private: }; -#endif +#endif // MAME_MACHINE_315_5881_CRYPT_H diff --git a/src/mame/machine/315_5296.cpp b/src/mame/machine/315_5296.cpp index d51d0bcea77..c169671020d 100644 --- a/src/mame/machine/315_5296.cpp +++ b/src/mame/machine/315_5296.cpp @@ -26,14 +26,14 @@ #include "machine/315_5296.h" -const device_type SEGA_315_5296 = device_creator; +DEFINE_DEVICE_TYPE(SEGA_315_5296, sega_315_5296_device, "315_5296", "Sega 315-5296 I/O") //------------------------------------------------- // sega_315_5296_device - constructor //------------------------------------------------- sega_315_5296_device::sega_315_5296_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, SEGA_315_5296, "Sega 315-5296 I/O", tag, owner, clock, "315_5296", __FILE__), + : device_t(mconfig, SEGA_315_5296, tag, owner, clock), m_in_pa_cb(*this), m_in_pb_cb(*this), m_in_pc_cb(*this), diff --git a/src/mame/machine/315_5296.h b/src/mame/machine/315_5296.h index f66064895c0..f02e82f1ca5 100644 --- a/src/mame/machine/315_5296.h +++ b/src/mame/machine/315_5296.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_MACHINE_315_5296_H +#define MAME_MACHINE_315_5296_H -#ifndef _SEGA_315_5296_H -#define _SEGA_315_5296_H +#pragma once @@ -139,7 +139,7 @@ private: }; // device type definition -extern const device_type SEGA_315_5296; +DECLARE_DEVICE_TYPE(SEGA_315_5296, sega_315_5296_device) -#endif /* _SEGA_315_5296_H */ +#endif // MAME_MACHINE_315_5296_H diff --git a/src/mame/machine/6883sam.cpp b/src/mame/machine/6883sam.cpp index 597d99a510b..d5d064167dd 100644 --- a/src/mame/machine/6883sam.cpp +++ b/src/mame/machine/6883sam.cpp @@ -59,7 +59,7 @@ #define LOG_SAM 0 -const device_type SAM6883 = device_creator; +DEFINE_DEVICE_TYPE(SAM6883, sam6883_device, "sam6883", "MC6883 SAM") @@ -72,7 +72,7 @@ const device_type SAM6883 = device_creator; //------------------------------------------------- sam6883_device::sam6883_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, SAM6883, "SAM6883", tag, owner, clock, "sam6883", __FILE__), + : device_t(mconfig, SAM6883, tag, owner, clock), m_cpu_tag(nullptr), m_cpu_space_ref(AS_PROGRAM), m_read_res(*this), diff --git a/src/mame/machine/6883sam.h b/src/mame/machine/6883sam.h index 02bfd0603ae..1a2ce5bd045 100644 --- a/src/mame/machine/6883sam.h +++ b/src/mame/machine/6883sam.h @@ -8,10 +8,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_MACHINE_6883SAM_H +#define MAME_MACHINE_6883SAM_H -#ifndef __6883SAM__ -#define __6883SAM__ +#pragma once #define MCFG_SAM6883_ADD(_tag, _clock, _cputag, _cpuspace) \ @@ -88,7 +88,7 @@ class sam6883_device : public device_t, public sam6883_friend_device public: sam6883_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_res_rd_callback(device_t &device, _Object object) { return downcast(device).m_read_res.set_callback(object); } + template static devcb_base &set_res_rd_callback(device_t &device, Object &&cb) { return downcast(device).m_read_res.set_callback(std::forward(cb)); } static void configure_cpu(device_t &device, const char *tag, address_spacenum space) { @@ -151,7 +151,7 @@ private: // represents one of the memory "spaces" (e.g. - $8000-$9FFF) that // can ultimately point to a bank - template + template class sam_space { public: @@ -173,7 +173,7 @@ private: // incidentals address_space * m_cpu_space; - devcb_read8 m_read_res; + devcb_read8 m_read_res; sam_bank m_banks[8]; sam_space<0x0000, 0x7FFF> m_space_0000; sam_space<0x8000, 0x9FFF> m_space_8000; @@ -260,6 +260,6 @@ private: void update_memory(void); }; -extern const device_type SAM6883; +DECLARE_DEVICE_TYPE(SAM6883, sam6883_device) -#endif /* __6883SAM__ */ +#endif // MAME_MACHINE_6883SAM_H diff --git a/src/mame/machine/abc1600mac.cpp b/src/mame/machine/abc1600mac.cpp index 16e2338a9b2..3b3e812c53e 100644 --- a/src/mame/machine/abc1600mac.cpp +++ b/src/mame/machine/abc1600mac.cpp @@ -54,7 +54,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type ABC1600_MAC = device_creator; +DEFINE_DEVICE_TYPE(ABC1600_MAC, abc1600_mac_device, "abc1600mac", "ABC 1600 MAC") DEVICE_ADDRESS_MAP_START( map, 8, abc1600_mac_device ) @@ -110,7 +110,7 @@ const tiny_rom_entry *abc1600_mac_device::device_rom_region() const //------------------------------------------------- abc1600_mac_device::abc1600_mac_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, ABC1600_MAC, "ABC 1600 MAC", tag, owner, clock, "abc1600mac", __FILE__), + device_t(mconfig, ABC1600_MAC, tag, owner, clock), device_memory_interface(mconfig, *this), m_space_config("program", ENDIANNESS_LITTLE, 8, 22, 0, *ADDRESS_MAP_NAME(program_map)), m_rom(*this, "boot"), diff --git a/src/mame/machine/abc1600mac.h b/src/mame/machine/abc1600mac.h index a13a7bf40d0..78edac40e1a 100644 --- a/src/mame/machine/abc1600mac.h +++ b/src/mame/machine/abc1600mac.h @@ -5,11 +5,11 @@ Luxor ABC 1600 Memory Access Controller emulation **********************************************************************/ +#ifndef MAME_MACHINE_ABC1600MAC_H +#define MAME_MACHINE_ABC1600MAC_H #pragma once -#ifndef __ABC1600_MAC__ -#define __ABC1600_MAC__ #include "cpu/m68000/m68000.h" #include "machine/watchdog.h" @@ -132,8 +132,7 @@ private: // device type definition -extern const device_type ABC1600_MAC; +DECLARE_DEVICE_TYPE(ABC1600_MAC, abc1600_mac_device) - -#endif +#endif // MAME_MACHINE_ABC1600MAC_H diff --git a/src/mame/machine/abc80kb.cpp b/src/mame/machine/abc80kb.cpp index afefb8cf5d8..d689ea88c1f 100644 --- a/src/mame/machine/abc80kb.cpp +++ b/src/mame/machine/abc80kb.cpp @@ -74,6 +74,8 @@ Notes: #include "emu.h" #include "abc80kb.h" +#include "cpu/mcs48/mcs48.h" + //************************************************************************** @@ -88,7 +90,7 @@ Notes: // DEVICE DEFINITIONS //************************************************************************** -const device_type ABC80_KEYBOARD = device_creator; +DEFINE_DEVICE_TYPE(ABC80_KEYBOARD, abc80_keyboard_device, "abc80kb", "ABC-80 Keyboard") //------------------------------------------------- @@ -169,9 +171,9 @@ ioport_constructor abc80_keyboard_device::device_input_ports() const //------------------------------------------------- abc80_keyboard_device::abc80_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, ABC80_KEYBOARD, "ABC-80 Keyboard", tag, owner, clock, "abc80kb", __FILE__), - m_write_keydown(*this), - m_maincpu(*this, I8048_TAG) + : device_t(mconfig, ABC80_KEYBOARD, tag, owner, clock) + , m_write_keydown(*this) + , m_maincpu(*this, I8048_TAG) { } diff --git a/src/mame/machine/abc80kb.h b/src/mame/machine/abc80kb.h index 67beace62b3..6dfe5d9175d 100644 --- a/src/mame/machine/abc80kb.h +++ b/src/mame/machine/abc80kb.h @@ -5,14 +5,11 @@ Luxor ABC-80 keyboard emulation **********************************************************************/ +#ifndef MAME_MACHINE_ABC80KB_H +#define MAME_MACHINE_ABC80KB_H #pragma once -#ifndef __ABC80_KEYBOARD__ -#define __ABC80_KEYBOARD__ - -#include "cpu/mcs48/mcs48.h" - //************************************************************************** @@ -66,8 +63,8 @@ private: // device type definition -extern const device_type ABC80_KEYBOARD; +DECLARE_DEVICE_TYPE(ABC80_KEYBOARD, abc80_keyboard_device) -#endif +#endif // MAME_MACHINE_ABC80KB_H diff --git a/src/mame/machine/alpha8201.cpp b/src/mame/machine/alpha8201.cpp index 9aa3522329c..f277f989894 100644 --- a/src/mame/machine/alpha8201.cpp +++ b/src/mame/machine/alpha8201.cpp @@ -277,15 +277,15 @@ Notes: /**************************************************************************/ -const device_type ALPHA_8201 = device_creator; +DEFINE_DEVICE_TYPE(ALPHA_8201, alpha_8201_device, "alpha8201", "ALPHA-8201") //------------------------------------------------- // alpha_8201_device - constructor //------------------------------------------------- alpha_8201_device::alpha_8201_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : device_t(mconfig, ALPHA_8201, "ALPHA-8201", tag, owner, clock, "alpha8201", __FILE__), - m_mcu(*this, "mcu") + : device_t(mconfig, ALPHA_8201, tag, owner, clock) + , m_mcu(*this, "mcu") { } @@ -372,7 +372,7 @@ READ8_MEMBER(alpha_8201_device::mcu_data_r) else logerror("%s: MCU side invalid read\n", tag()); - if (offset == HMCS40_PORT_R0X) + if (offset == hmcs40_cpu_device::PORT_R0X) ret >>= 4; return ret & 0xf; } diff --git a/src/mame/machine/alpha8201.h b/src/mame/machine/alpha8201.h index c116d2cbf92..2a6250f7dc0 100644 --- a/src/mame/machine/alpha8201.h +++ b/src/mame/machine/alpha8201.h @@ -6,8 +6,8 @@ ***************************************************************************/ -#ifndef _ALPHA8201_H_ -#define _ALPHA8201_H_ +#ifndef MAME_MACHINE_ALPHA8201_H +#define MAME_MACHINE_ALPHA8201_H class alpha_8201_device : public device_t @@ -48,7 +48,7 @@ private: }; -extern const device_type ALPHA_8201; +DECLARE_DEVICE_TYPE(ALPHA_8201, alpha_8201_device) -#endif /* _ALPHA8201_H_ */ +#endif // MAME_MACHINE_ALPHA8201_H diff --git a/src/mame/machine/amstrad.cpp b/src/mame/machine/amstrad.cpp index 5e7ad87c902..95c5aa5c768 100644 --- a/src/mame/machine/amstrad.cpp +++ b/src/mame/machine/amstrad.cpp @@ -1168,7 +1168,7 @@ void amstrad_state::amstrad_setLowerRom() if ((m_gate_array.mrer & (1<<2)) == 0 && m_gate_array.romdis == 0) { if (m_exp) - m_exp->set_mapping(MAP_LOWER); + m_exp->set_mapping(device_cpc_expansion_card_interface::MAP_LOWER); } } else // CPC+/GX4000 @@ -1235,7 +1235,7 @@ void amstrad_state::amstrad_setLowerRom() m_bank1->set_base(m_region_cart->base()); m_bank2->set_base(m_region_cart->base() + 0x2000); if (m_exp) - m_exp->set_mapping(MAP_LOWER); + m_exp->set_mapping(device_cpc_expansion_card_interface::MAP_LOWER); } } } @@ -1270,7 +1270,7 @@ void amstrad_state::amstrad_setUpperRom() if ( ! ( m_gate_array.mrer & 0x08 ) && m_gate_array.romdis == 0) { if (m_exp) - m_exp->set_mapping(MAP_UPPER); + m_exp->set_mapping(device_cpc_expansion_card_interface::MAP_UPPER); } } @@ -2462,7 +2462,7 @@ void amstrad_state::amstrad_rethinkMemory() /* mappings for other expansion devices */ if (m_exp) - m_exp->set_mapping(MAP_OTHER); + m_exp->set_mapping(device_cpc_expansion_card_interface::MAP_OTHER); } @@ -3007,7 +3007,7 @@ void amstrad_state::enumerate_roms() { char str[20]; sprintf(str, "rom%i", i + 1); - rom_image_device* romimage = romexp->subdevice(str); + cpc_rom_image_device* romimage = romexp->subdevice(str); if(romimage != nullptr && romimage->base() != nullptr) { m_Amstrad_ROM_Table[m_rom_count] = romimage->base(); diff --git a/src/mame/machine/apollo.cpp b/src/mame/machine/apollo.cpp index 7ed02aaf7a8..db79e533abf 100644 --- a/src/mame/machine/apollo.cpp +++ b/src/mame/machine/apollo.cpp @@ -137,10 +137,10 @@ private: // internal state }; -const device_type APOLLO_CONF = device_creator; +DEFINE_DEVICE_TYPE(APOLLO_CONF, apollo_config_device, "apollo_config", "Apollo Configuration") apollo_config_device::apollo_config_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, APOLLO_CONF, "Apollo Configuration", tag, owner, clock, "apollo_config", __FILE__) + : device_t(mconfig, APOLLO_CONF, tag, owner, clock) { } @@ -712,9 +712,8 @@ TIMER_CALLBACK_MEMBER( apollo_state::apollo_rtc_timer ) #undef VERBOSE #define VERBOSE 0 -apollo_sio::apollo_sio(const machine_config &mconfig, const char *tag, - device_t *owner, uint32_t clock) : - mc68681_base_device(mconfig, APOLLO_SIO, "DN3000/DS3500 SIO", tag, owner, clock, "apollo_sio", __FILE__), +apollo_sio::apollo_sio(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + mc68681_base_device(mconfig, APOLLO_SIO, tag, owner, clock), m_csrb(0), m_ip6(0) { @@ -809,7 +808,7 @@ WRITE8_MEMBER( apollo_sio::write ) } // device type definition -const device_type APOLLO_SIO = device_creator; +DEFINE_DEVICE_TYPE(APOLLO_SIO, apollo_sio, "apollo_sio", "DN3000/DS3500 SIO") WRITE_LINE_MEMBER(apollo_state::sio_irq_handler) { @@ -862,16 +861,15 @@ WRITE_LINE_MEMBER(apollo_state::sio2_irq_handler) /*** Apollo Node ID device ***/ // device type definition -const device_type APOLLO_NI = device_creator ; +DEFINE_DEVICE_TYPE(APOLLO_NI, apollo_ni, "node_id", "Apollo Node ID") //------------------------------------------------- // apollo_ni - constructor //------------------------------------------------- -apollo_ni::apollo_ni(const machine_config &mconfig, const char *tag, - device_t *owner, uint32_t clock) : - device_t(mconfig, APOLLO_NI, "Node ID", tag, owner, clock, "node_id", - __FILE__), device_image_interface(mconfig, *this) +apollo_ni::apollo_ni(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, APOLLO_NI, tag, owner, clock), + device_image_interface(mconfig, *this) { } @@ -1263,17 +1261,16 @@ MACHINE_RESET_MEMBER(apollo_state,apollo) ***************************************************************************/ // device type definition -const device_type APOLLO_STDIO = device_creator ; +DEFINE_DEVICE_TYPE(APOLLO_STDIO, apollo_stdio_device, "apollo_stdio", "Apollo STDIO") //------------------------------------------------- // apollo_stdio_device - constructor //------------------------------------------------- -apollo_stdio_device::apollo_stdio_device(const machine_config &mconfig, - const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, APOLLO_STDIO, "Apollo STDIO", tag, owner, clock, - "apollo_stdio", __FILE__), device_serial_interface(mconfig, *this), - m_tx_w(*this) +apollo_stdio_device::apollo_stdio_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, APOLLO_STDIO, tag, owner, clock), + device_serial_interface(mconfig, *this), + m_tx_w(*this) { } diff --git a/src/mame/machine/apollo_dbg.h b/src/mame/machine/apollo_dbg.h index 3ce08a200f4..f9f77b8b8d7 100644 --- a/src/mame/machine/apollo_dbg.h +++ b/src/mame/machine/apollo_dbg.h @@ -8,12 +8,14 @@ * */ +#ifndef MAME_MACHINE_APOLLO_DBG_H +#define MAME_MACHINE_APOLLO_DBG_H + #pragma once -#ifndef __APOLLO_DBG_H__ -#define __APOLLO_DBG_H__ +#include "cpu/m68000/m68000.h" int apollo_debug_instruction_hook(m68000_base_device *device, offs_t curpc); -#endif +#endif // MAME_MACHINE_APOLLO_DBG_H diff --git a/src/mame/machine/apollo_kbd.cpp b/src/mame/machine/apollo_kbd.cpp index 67244a77f24..e8b9510fc7e 100644 --- a/src/mame/machine/apollo_kbd.cpp +++ b/src/mame/machine/apollo_kbd.cpp @@ -10,11 +10,12 @@ * */ +#include "emu.h" + #define VERBOSE 0 -#include "emu.h" #include "machine/apollo_kbd.h" -#include "sound/beep.h" + #define LOG(x) { m_device->logerror ("%s apollo_kbd: ", m_device->cpu_context()); m_device->logerror x; m_device->logerror ("\n"); } #define LOG1(x) { if (VERBOSE > 0) LOG(x)} @@ -26,8 +27,6 @@ // DEVICE DEFINITIONS //************************************************************************** -//const device_type APOLLO_KBD = apollo_kbd_device_config::static_alloc_device_config; - //************************************************************************** // CONSTANTS //************************************************************************** @@ -56,14 +55,14 @@ ***************************************************************************/ // device type definition -const device_type APOLLO_KBD = device_creator; +DEFINE_DEVICE_TYPE(APOLLO_KBD, apollo_kbd_device, "apollo_kbd", "Apollo Keyboard") //------------------------------------------------- // apollo_kbd_device - constructor //------------------------------------------------- apollo_kbd_device::apollo_kbd_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, APOLLO_KBD, "Apollo Keyboard", tag, owner, clock, "apollo_kbd", __FILE__), + : device_t(mconfig, APOLLO_KBD, tag, owner, clock), device_serial_interface(mconfig, *this), m_tx_w(*this), m_german_r(*this) diff --git a/src/mame/machine/apollo_kbd.h b/src/mame/machine/apollo_kbd.h index 369c3873095..3d4c9d7789a 100644 --- a/src/mame/machine/apollo_kbd.h +++ b/src/mame/machine/apollo_kbd.h @@ -8,10 +8,10 @@ * */ -#pragma once +#ifndef MAME_MACHINE_APOLLO_KBD_H +#define MAME_MACHINE_APOLLO_KBD_H -#ifndef __APOLLO_KBD_H__ -#define __APOLLO_KBD_H__ +#pragma once #include "sound/beep.h" @@ -42,7 +42,7 @@ INPUT_PORTS_EXTERN(apollo_kbd); // ======================> apollo_kbd_device -class apollo_kbd_device : public device_t, public device_serial_interface +class apollo_kbd_device : public device_t, public device_serial_interface { public: // construction/destruction @@ -155,6 +155,6 @@ private: }; // device type definition -extern const device_type APOLLO_KBD; +DECLARE_DEVICE_TYPE(APOLLO_KBD, apollo_kbd_device) -#endif +#endif // MAME_MACHINE_APOLLO_KBD_H diff --git a/src/mame/machine/apricotkb.cpp b/src/mame/machine/apricotkb.cpp index 558145031c7..9691e1c9941 100644 --- a/src/mame/machine/apricotkb.cpp +++ b/src/mame/machine/apricotkb.cpp @@ -23,7 +23,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type APRICOT_KEYBOARD = device_creator; +DEFINE_DEVICE_TYPE(APRICOT_KEYBOARD, apricot_keyboard_device, "aprikb", "Apricot Keyboard") //------------------------------------------------- @@ -247,7 +247,7 @@ ioport_constructor apricot_keyboard_device::device_input_ports() const //------------------------------------------------- apricot_keyboard_device::apricot_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, APRICOT_KEYBOARD, "Apricot Keyboard", tag, owner, clock, "aprikb", __FILE__), + device_t(mconfig, APRICOT_KEYBOARD, tag, owner, clock), m_write_txd(*this), m_y(*this, "Y%u", 0), m_modifiers(*this, "MODIFIERS") diff --git a/src/mame/machine/apricotkb.h b/src/mame/machine/apricotkb.h index 598155fd011..ed0bbc6a9aa 100644 --- a/src/mame/machine/apricotkb.h +++ b/src/mame/machine/apricotkb.h @@ -6,10 +6,10 @@ *********************************************************************/ -#pragma once +#ifndef MAME_MACHINE_APRICOTKB_H +#define MAME_MACHINE_APRICOTKB_H -#ifndef __APRICOT_KEYBOARD__ -#define __APRICOT_KEYBOARD__ +#pragma once @@ -77,8 +77,8 @@ private: // device type definition -extern const device_type APRICOT_KEYBOARD; +DECLARE_DEVICE_TYPE(APRICOT_KEYBOARD, apricot_keyboard_device) -#endif +#endif // MAME_MACHINE_APRICOTKB_H diff --git a/src/mame/machine/asic65.cpp b/src/mame/machine/asic65.cpp index 2336825677b..47f7331ca02 100644 --- a/src/mame/machine/asic65.cpp +++ b/src/mame/machine/asic65.cpp @@ -82,10 +82,10 @@ static const uint8_t command_map[3][MAX_COMMANDS] = } }; -const device_type ASIC65 = device_creator; +DEFINE_DEVICE_TYPE(ASIC65, asic65_device, "asic65", "Atari ASIC65") asic65_device::asic65_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, ASIC65, "Atari ASIC65", tag, owner, clock, "asic65", __FILE__), + : device_t(mconfig, ASIC65, tag, owner, clock), m_asic65_type(0), m_command(0), m_yorigin(0x1800), diff --git a/src/mame/machine/asic65.h b/src/mame/machine/asic65.h index 1900528794a..1dd9e32851c 100644 --- a/src/mame/machine/asic65.h +++ b/src/mame/machine/asic65.h @@ -5,10 +5,14 @@ * Implementation of ASIC65 * *************************************/ +#ifndef MAME_MACHINE_ASIC65_H +#define MAME_MACHINE_ASIC65_H - #include "cpu/tms32010/tms32010.h" +#pragma once - enum { +#include "cpu/tms32010/tms32010.h" + +enum { ASIC65_STANDARD, ASIC65_STEELTAL, ASIC65_GUARDIANS, @@ -68,8 +72,10 @@ private: FILE * m_log; }; -extern const device_type ASIC65; +DECLARE_DEVICE_TYPE(ASIC65, asic65_device) #define MCFG_ASIC65_ADD(_tag, _type) \ MCFG_DEVICE_ADD(_tag, ASIC65, 0) \ asic65_device::set_type(*device, _type); + +#endif // MAME_MACHINE_ASIC65_H diff --git a/src/mame/machine/at.cpp b/src/mame/machine/at.cpp index 5dcca6b3177..a4287c23ae6 100644 --- a/src/mame/machine/at.cpp +++ b/src/mame/machine/at.cpp @@ -17,10 +17,10 @@ #define LOG_PORT80 0 -const device_type AT_MB = device_creator; +DEFINE_DEVICE_TYPE(AT_MB, at_mb_device, "at_mb", "PC/AT Motherboard") at_mb_device::at_mb_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, AT_MB, "PC/AT Motherboard", tag, owner, clock, "at_mb", __FILE__), + : device_t(mconfig, AT_MB, tag, owner, clock), m_maincpu(*this, ":maincpu"), m_isabus(*this, "isabus"), m_pic8259_slave(*this, "pic8259_slave"), diff --git a/src/mame/machine/at.h b/src/mame/machine/at.h index 3eac37f4355..9a0797deaab 100644 --- a/src/mame/machine/at.h +++ b/src/mame/machine/at.h @@ -87,7 +87,7 @@ private: uint8_t m_nmi_enabled; }; -extern const device_type AT_MB; +DECLARE_DEVICE_TYPE(AT_MB, at_mb_device) MACHINE_CONFIG_EXTERN(at_softlists); diff --git a/src/mame/machine/atari_vg.cpp b/src/mame/machine/atari_vg.cpp index f9d0a999074..76281f54a23 100644 --- a/src/mame/machine/atari_vg.cpp +++ b/src/mame/machine/atari_vg.cpp @@ -35,14 +35,14 @@ // device type definition -const device_type ATARIVGEAROM = device_creator; +DEFINE_DEVICE_TYPE(ATARIVGEAROM, atari_vg_earom_device, "atari_vg_earom", "Atari VG EAROM") //------------------------------------------------- // atari_vg_earom_device - constructor //------------------------------------------------- atari_vg_earom_device::atari_vg_earom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, ATARIVGEAROM, "Atari VG EAROM", tag, owner, clock, "atari_vg_earom", __FILE__), + : device_t(mconfig, ATARIVGEAROM, tag, owner, clock), device_nvram_interface(mconfig, *this) { } diff --git a/src/mame/machine/atari_vg.h b/src/mame/machine/atari_vg.h index 49515261e4b..cc597a3b8a0 100644 --- a/src/mame/machine/atari_vg.h +++ b/src/mame/machine/atari_vg.h @@ -6,8 +6,10 @@ ***************************************************************************/ -#ifndef __ATARIVGEAROM_H__ -#define __ATARIVGEAROM_H__ +#ifndef MAME_MACHINE_ATARI_VG_H +#define MAME_MACHINE_ATARI_VG_H + +#pragma once /*************************************************************************** DEVICE CONFIGURATION MACROS @@ -27,6 +29,11 @@ class atari_vg_earom_device : public device_t, public: // construction/destruction atari_vg_earom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + + DECLARE_READ8_MEMBER( read ); + DECLARE_WRITE8_MEMBER( write ); + DECLARE_WRITE8_MEMBER( ctrl_w ); + protected: // device-level overrides virtual void device_start() override; @@ -36,10 +43,7 @@ protected: virtual void nvram_default() override; virtual void nvram_read(emu_file &file) override; virtual void nvram_write(emu_file &file) override; -public: - DECLARE_READ8_MEMBER( read ); - DECLARE_WRITE8_MEMBER( write ); - DECLARE_WRITE8_MEMBER( ctrl_w ); + private: int m_old_ctrl; int m_state; @@ -50,6 +54,6 @@ private: }; // device type definition -extern const device_type ATARIVGEAROM; +DECLARE_DEVICE_TYPE(ATARIVGEAROM, atari_vg_earom_device) -#endif +#endif // MAME_MACHINE_ATARI_VG_H diff --git a/src/mame/machine/atarifdc.cpp b/src/mame/machine/atarifdc.cpp index ef399bb11c8..a965ea9c604 100644 --- a/src/mame/machine/atarifdc.cpp +++ b/src/mame/machine/atarifdc.cpp @@ -10,16 +10,17 @@ ***************************************************************************/ -#include - #include "emu.h" -#include "cpu/m6502/m6502.h" -#include "includes/atari400.h" #include "atarifdc.h" -#include "sound/pokey.h" + #include "machine/6821pia.h" +#include "sound/pokey.h" + #include "formats/atari_dsk.h" +#include + + #define VERBOSE_SERIAL 0 #define VERBOSE_CHKSUM 0 @@ -749,10 +750,10 @@ legacy_floppy_image_device *atari_fdc_device::atari_floppy_get_device_child(int return nullptr; } -const device_type ATARI_FDC = device_creator; +DEFINE_DEVICE_TYPE(ATARI_FDC, atari_fdc_device, "atari_fdc", "Atari FDC") atari_fdc_device::atari_fdc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, ATARI_FDC, "Atari FDC", tag, owner, clock, "atari_fdc", __FILE__), + : device_t(mconfig, ATARI_FDC, tag, owner, clock), m_serout_count(0), m_serout_offs(0), m_serout_chksum(0), diff --git a/src/mame/machine/atarifdc.h b/src/mame/machine/atarifdc.h index f7d8045e207..e68612b5204 100644 --- a/src/mame/machine/atarifdc.h +++ b/src/mame/machine/atarifdc.h @@ -5,8 +5,8 @@ */ -#ifndef _ATARIFDC_H -#define _ATARIFDC_H +#ifndef MAME_MACHINE_ATARIFDC_H +#define MAME_MACHINE_ATARIFDC_H #include "imagedev/flopdrv.h" @@ -64,6 +64,6 @@ private: atari_drive m_drv[4]; }; -extern const device_type ATARI_FDC; +DECLARE_DEVICE_TYPE(ATARI_FDC, atari_fdc_device) -#endif /* _ATARIFDC_H */ +#endif // MAME_MACHINE_ATARIFDC_H diff --git a/src/mame/machine/atarigen.cpp b/src/mame/machine/atarigen.cpp index 57f851b131a..3b8aa98bc89 100644 --- a/src/mame/machine/atarigen.cpp +++ b/src/mame/machine/atarigen.cpp @@ -49,14 +49,14 @@ inline const atarigen_screen_timer *get_screen_timer(screen_device &screen) //************************************************************************** // device type definition -const device_type ATARI_SOUND_COMM = device_creator; +DEFINE_DEVICE_TYPE(ATARI_SOUND_COMM, atari_sound_comm_device, "atarscom", "Atari Sound Communications") //------------------------------------------------- // atari_sound_comm_device - constructor //------------------------------------------------- atari_sound_comm_device::atari_sound_comm_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, ATARI_SOUND_COMM, "Atari Sound Communications", tag, owner, clock, "atarscom", __FILE__), + : device_t(mconfig, ATARI_SOUND_COMM, tag, owner, clock), m_sound_cpu_tag(nullptr), m_main_int_cb(*this), m_sound_cpu(nullptr), @@ -342,14 +342,14 @@ void atari_sound_comm_device::delayed_6502_write(int data) //************************************************************************** // device type definition -const device_type ATARI_VAD = device_creator; +DEFINE_DEVICE_TYPE(ATARI_VAD, atari_vad_device, "atarivad", "Atari VAD") //------------------------------------------------- // atari_vad_device - constructor //------------------------------------------------- atari_vad_device::atari_vad_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, ATARI_VAD, "Atari VAD", tag, owner, clock, "atarivad", __FILE__), + : device_t(mconfig, ATARI_VAD, tag, owner, clock), device_video_interface(mconfig, *this), m_scanline_int_cb(*this), m_alpha_tilemap(*this, "alpha"), @@ -819,15 +819,15 @@ void atari_vad_device::eof_update(emu_timer &timer) //************************************************************************** // device type definition -const device_type ATARI_EEPROM_2804 = device_creator; -const device_type ATARI_EEPROM_2816 = device_creator; +DEFINE_DEVICE_TYPE(ATARI_EEPROM_2804, atari_eeprom_2804_device, "atari2804", "Atari EEPROM Interface (2804)") +DEFINE_DEVICE_TYPE(ATARI_EEPROM_2816, atari_eeprom_2816_device, "atari2816", "Atari EEPROM Interface (2816)") //------------------------------------------------- // atari_eeprom_device - constructor //------------------------------------------------- -atari_eeprom_device::atari_eeprom_device(const machine_config &mconfig, device_type devtype, const char *name, const char *tag, device_t *owner, const char *shortname, const char *file) - : device_t(mconfig, devtype, name, tag, owner, 0, shortname, file), +atari_eeprom_device::atari_eeprom_device(const machine_config &mconfig, device_type devtype, const char *tag, device_t *owner) + : device_t(mconfig, devtype, tag, owner, 0), m_eeprom(*this, "eeprom"), m_unlocked(false) { @@ -894,7 +894,7 @@ void atari_eeprom_device::device_reset() //------------------------------------------------- atari_eeprom_2804_device::atari_eeprom_2804_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : atari_eeprom_device(mconfig, ATARI_EEPROM_2804, "Atari EEPROM Interface (2804)", tag, owner, "atari2804", __FILE__) + : atari_eeprom_device(mconfig, ATARI_EEPROM_2804, tag, owner) { } @@ -919,7 +919,7 @@ machine_config_constructor atari_eeprom_2804_device::device_mconfig_additions() //------------------------------------------------- atari_eeprom_2816_device::atari_eeprom_2816_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : atari_eeprom_device(mconfig, ATARI_EEPROM_2816, "Atari EEPROM Interface (2816)", tag, owner, "atari2816", __FILE__) + : atari_eeprom_device(mconfig, ATARI_EEPROM_2816, tag, owner) { } diff --git a/src/mame/machine/atarigen.h b/src/mame/machine/atarigen.h index bcede09ed34..95d29226874 100644 --- a/src/mame/machine/atarigen.h +++ b/src/mame/machine/atarigen.h @@ -103,9 +103,9 @@ // ======================> atari_sound_comm_device // device type definition -extern const device_type ATARI_SOUND_COMM; +DECLARE_DEVICE_TYPE(ATARI_SOUND_COMM, atari_sound_comm_device) -class atari_sound_comm_device : public device_t +class atari_sound_comm_device : public device_t { public: // construction/destruction @@ -175,7 +175,7 @@ private: // ======================> atari_vad_device // device type definition -extern const device_type ATARI_VAD; +DECLARE_DEVICE_TYPE(ATARI_VAD, atari_vad_device) class atari_vad_device : public device_t, public device_video_interface @@ -256,14 +256,14 @@ private: // ======================> atari_eeprom_device // device type definition -extern const device_type ATARI_EEPROM_2804; -extern const device_type ATARI_EEPROM_2816; +DECLARE_DEVICE_TYPE(ATARI_EEPROM_2804, atari_eeprom_2804_device) +DECLARE_DEVICE_TYPE(ATARI_EEPROM_2816, atari_eeprom_2816_device) class atari_eeprom_device : public device_t { protected: // construction/destruction - atari_eeprom_device(const machine_config &mconfig, device_type devtype, const char *name, const char *tag, device_t *owner, const char *shortname, const char *file); + atari_eeprom_device(const machine_config &mconfig, device_type devtype, const char *tag, device_t *owner); public: // unlock controls diff --git a/src/mame/machine/atarixga.cpp b/src/mame/machine/atarixga.cpp index 6608463b266..d3858fcce86 100644 --- a/src/mame/machine/atarixga.cpp +++ b/src/mame/machine/atarixga.cpp @@ -63,10 +63,10 @@ static uint16_t parity(uint16_t x) * *************************************/ -const device_type ATARI_136094_0072 = device_creator; +DEFINE_DEVICE_TYPE(ATARI_136094_0072, atari_136094_0072_device, "136094_0072", "Atari 136094-0072 XGA") atari_136094_0072_device::atari_136094_0072_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) -: atari_xga_device(mconfig, ATARI_136094_0072, tag, owner, clock, "Atari 136094-0072 XGA", "136094_0072") + : atari_xga_device(mconfig, ATARI_136094_0072, tag, owner, clock) { } @@ -283,10 +283,10 @@ READ32_MEMBER(atari_136094_0072_device::read) * *************************************/ -const device_type ATARI_136095_0072 = device_creator; +DEFINE_DEVICE_TYPE(ATARI_136095_0072, atari_136095_0072_device, "136095_0072", "Atari 136095-0072 XGA") atari_136095_0072_device::atari_136095_0072_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) -: atari_xga_device(mconfig, ATARI_136095_0072, tag, owner, clock, "Atari 136095-0072 XGA", "136095_0072") + : atari_xga_device(mconfig, ATARI_136095_0072, tag, owner, clock) { } diff --git a/src/mame/machine/atarixga.h b/src/mame/machine/atarixga.h index 5204caa5e94..6f1ab1c52ad 100644 --- a/src/mame/machine/atarixga.h +++ b/src/mame/machine/atarixga.h @@ -8,25 +8,25 @@ *************************************************************************/ -#ifndef __MACHINE_ATARIXGA__ -#define __MACHINE_ATARIXGA__ +#ifndef MAME_MACHINE_ATARIXGA_H +#define MAME_MACHINE_ATARIXGA_H -extern const device_type ATARI_136094_0072; -extern const device_type ATARI_136095_0072; +DECLARE_DEVICE_TYPE(ATARI_136094_0072, atari_136094_0072_device) +DECLARE_DEVICE_TYPE(ATARI_136095_0072, atari_136095_0072_device) class atari_xga_device : public device_t { public: - // construction/destruction - atari_xga_device(const machine_config &mconfig, device_type type, const char *tag, - device_t *owner, uint32_t clock, const char *name, const char *shortname) - : device_t(mconfig, type, name, tag, owner, clock, shortname, __FILE__) - {} - virtual DECLARE_WRITE32_MEMBER(write) = 0; virtual DECLARE_READ32_MEMBER(read) = 0; protected: + // construction/destruction + atari_xga_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) + { + } + virtual void device_start() override = 0; virtual void device_reset() override = 0; @@ -108,4 +108,4 @@ private: }; -#endif +#endif // MAME_MACHINE_ATARIXGA_H diff --git a/src/mame/machine/awboard.cpp b/src/mame/machine/awboard.cpp index dcccc77efc1..226bd72b0bc 100644 --- a/src/mame/machine/awboard.cpp +++ b/src/mame/machine/awboard.cpp @@ -153,7 +153,7 @@ ROM board internal layouts: */ -const device_type AW_ROM_BOARD = device_creator; +DEFINE_DEVICE_TYPE(AW_ROM_BOARD, aw_rom_board, "aw_rom_board", "Sammy Atomiswave ROM Board") DEVICE_ADDRESS_MAP_START(submap, 16, aw_rom_board) AM_RANGE(0x00, 0x01) AM_WRITE(epr_offsetl_w) @@ -166,7 +166,7 @@ DEVICE_ADDRESS_MAP_START(submap, 16, aw_rom_board) ADDRESS_MAP_END aw_rom_board::aw_rom_board(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : naomi_g1_device(mconfig, AW_ROM_BOARD, "Sammy Atomiswave ROM Board", tag, owner, clock, "aw_rom_board", __FILE__) + : naomi_g1_device(mconfig, AW_ROM_BOARD, tag, owner, clock) , m_region(*this, DEVICE_SELF) , m_keyregion(*this, finder_base::DUMMY_TAG) { diff --git a/src/mame/machine/awboard.h b/src/mame/machine/awboard.h index 9f47c20b4b1..c2c8afcdd7e 100644 --- a/src/mame/machine/awboard.h +++ b/src/mame/machine/awboard.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Olivier Galibert,Andreas Naive -#ifndef _AWBOARD_H_ -#define _AWBOARD_H_ +#ifndef MAME_MACHINE_AWBOARD_H +#define MAME_MACHINE_AWBOARD_H + +#pragma once #include "naomig1.h" @@ -63,6 +65,6 @@ private: void recalc_dma_offset(int mode); }; -extern const device_type AW_ROM_BOARD; +DECLARE_DEVICE_TYPE(AW_ROM_BOARD, aw_rom_board) -#endif +#endif // MAME_MACHINE_AWBOARD_H diff --git a/src/mame/machine/b2m.cpp b/src/mame/machine/b2m.cpp index e771ffa3529..1948c3bd53a 100644 --- a/src/mame/machine/b2m.cpp +++ b/src/mame/machine/b2m.cpp @@ -269,9 +269,6 @@ void b2m_state::b2m_postload() void b2m_state::machine_start() { - m_pic = machine().device("pic8259"); - m_fdc = machine().device("fd1793"); - /* register for state saving */ save_item(NAME(m_b2m_8255_porta)); save_item(NAME(m_b2m_video_scroll)); diff --git a/src/mame/machine/balsente.cpp b/src/mame/machine/balsente.cpp index 3390a42fbe4..b6a81536e08 100644 --- a/src/mame/machine/balsente.cpp +++ b/src/mame/machine/balsente.cpp @@ -209,7 +209,7 @@ void balsente_state::poly17_init() inline void balsente_state::noise_gen_chip(int chip, int count, short *buffer) { /* noise generator runs at 100kHz */ - uint32_t step = (100000 << 14) / CEM3394_SAMPLE_RATE; + uint32_t step = (100000 << 14) / cem3394_device::SAMPLE_RATE; uint32_t noise_counter = m_noise_position[chip]; while (count--) @@ -895,17 +895,17 @@ void balsente_state::update_counter_0_timer() /* find the counter with the maximum frequency */ /* this is used to calibrate the timers at startup */ for (i = 0; i < 6; i++) - if (m_cem_device[i]->get_parameter(CEM3394_FINAL_GAIN) < 10.0) + if (m_cem_device[i]->get_parameter(cem3394_device::FINAL_GAIN) < 10.0) { double tempfreq; /* if the filter resonance is high, then they're calibrating the filter frequency */ - if (m_cem_device[i]->get_parameter(CEM3394_FILTER_RESONANCE) > 0.9) - tempfreq = m_cem_device[i]->get_parameter(CEM3394_FILTER_FREQENCY); + if (m_cem_device[i]->get_parameter(cem3394_device::FILTER_RESONANCE) > 0.9) + tempfreq = m_cem_device[i]->get_parameter(cem3394_device::FILTER_FREQENCY); /* otherwise, they're calibrating the VCO frequency */ else - tempfreq = m_cem_device[i]->get_parameter(CEM3394_VCO_FREQUENCY); + tempfreq = m_cem_device[i]->get_parameter(cem3394_device::VCO_FREQUENCY); if (tempfreq > maxfreq) maxfreq = tempfreq; } @@ -987,16 +987,16 @@ WRITE8_MEMBER(balsente_state::balsente_counter_control_w) WRITE8_MEMBER(balsente_state::balsente_chip_select_w) { - static const uint8_t register_map[8] = + static constexpr uint8_t register_map[8] = { - CEM3394_VCO_FREQUENCY, - CEM3394_FINAL_GAIN, - CEM3394_FILTER_RESONANCE, - CEM3394_FILTER_FREQENCY, - CEM3394_MIXER_BALANCE, - CEM3394_MODULATION_AMOUNT, - CEM3394_PULSE_WIDTH, - CEM3394_WAVE_SELECT + cem3394_device::VCO_FREQUENCY, + cem3394_device::FINAL_GAIN, + cem3394_device::FILTER_RESONANCE, + cem3394_device::FILTER_FREQENCY, + cem3394_device::MIXER_BALANCE, + cem3394_device::MODULATION_AMOUNT, + cem3394_device::PULSE_WIDTH, + cem3394_device::WAVE_SELECT }; double voltage = (double)m_dac_value * (8.0 / 4096.0) - 4.0; diff --git a/src/mame/machine/bebox.cpp b/src/mame/machine/bebox.cpp index 49856bdbb9c..4838fe68107 100644 --- a/src/mame/machine/bebox.cpp +++ b/src/mame/machine/bebox.cpp @@ -623,28 +623,28 @@ READ64_MEMBER(bebox_state::scsi53c810_r ) int reg = offset*8; uint64_t r = 0; if (!ACCESSING_BITS_56_63) { - r |= (uint64_t)m_lsi53c810->lsi53c810_reg_r(reg+0) << 56; + r |= (uint64_t)m_lsi53c810->reg_r(reg+0) << 56; } if (!ACCESSING_BITS_48_55) { - r |= (uint64_t)m_lsi53c810->lsi53c810_reg_r(reg+1) << 48; + r |= (uint64_t)m_lsi53c810->reg_r(reg+1) << 48; } if (!ACCESSING_BITS_40_47) { - r |= (uint64_t)m_lsi53c810->lsi53c810_reg_r(reg+2) << 40; + r |= (uint64_t)m_lsi53c810->reg_r(reg+2) << 40; } if (!ACCESSING_BITS_32_39) { - r |= (uint64_t)m_lsi53c810->lsi53c810_reg_r(reg+3) << 32; + r |= (uint64_t)m_lsi53c810->reg_r(reg+3) << 32; } if (!ACCESSING_BITS_24_31) { - r |= (uint64_t)m_lsi53c810->lsi53c810_reg_r(reg+4) << 24; + r |= (uint64_t)m_lsi53c810->reg_r(reg+4) << 24; } if (!ACCESSING_BITS_16_23) { - r |= (uint64_t)m_lsi53c810->lsi53c810_reg_r(reg+5) << 16; + r |= (uint64_t)m_lsi53c810->reg_r(reg+5) << 16; } if (!ACCESSING_BITS_8_15) { - r |= (uint64_t)m_lsi53c810->lsi53c810_reg_r(reg+6) << 8; + r |= (uint64_t)m_lsi53c810->reg_r(reg+6) << 8; } if (!ACCESSING_BITS_0_7) { - r |= (uint64_t)m_lsi53c810->lsi53c810_reg_r(reg+7) << 0; + r |= (uint64_t)m_lsi53c810->reg_r(reg+7) << 0; } return r; @@ -655,28 +655,28 @@ WRITE64_MEMBER(bebox_state::scsi53c810_w ) { int reg = offset*8; if (!ACCESSING_BITS_56_63) { - m_lsi53c810->lsi53c810_reg_w(reg+0, data >> 56); + m_lsi53c810->reg_w(reg+0, data >> 56); } if (!ACCESSING_BITS_48_55) { - m_lsi53c810->lsi53c810_reg_w(reg+1, data >> 48); + m_lsi53c810->reg_w(reg+1, data >> 48); } if (!ACCESSING_BITS_40_47) { - m_lsi53c810->lsi53c810_reg_w(reg+2, data >> 40); + m_lsi53c810->reg_w(reg+2, data >> 40); } if (!ACCESSING_BITS_32_39) { - m_lsi53c810->lsi53c810_reg_w(reg+3, data >> 32); + m_lsi53c810->reg_w(reg+3, data >> 32); } if (!ACCESSING_BITS_24_31) { - m_lsi53c810->lsi53c810_reg_w(reg+4, data >> 24); + m_lsi53c810->reg_w(reg+4, data >> 24); } if (!ACCESSING_BITS_16_23) { - m_lsi53c810->lsi53c810_reg_w(reg+5, data >> 16); + m_lsi53c810->reg_w(reg+5, data >> 16); } if (!ACCESSING_BITS_8_15) { - m_lsi53c810->lsi53c810_reg_w(reg+6, data >> 8); + m_lsi53c810->reg_w(reg+6, data >> 8); } if (!ACCESSING_BITS_0_7) { - m_lsi53c810->lsi53c810_reg_w(reg+7, data >> 0); + m_lsi53c810->reg_w(reg+7, data >> 0); } } diff --git a/src/mame/machine/beta.cpp b/src/mame/machine/beta.cpp index 83d01f23f19..693e4c29488 100644 --- a/src/mame/machine/beta.cpp +++ b/src/mame/machine/beta.cpp @@ -15,19 +15,20 @@ BUGS: */ #include "emu.h" -#include "formats/trd_dsk.h" #include "machine/beta.h" +#include "formats/trd_dsk.h" + /*************************************************************************** TYPE DEFINITIONS ***************************************************************************/ -const device_type BETA_DISK = device_creator; +DEFINE_DEVICE_TYPE(BETA_DISK, beta_disk_device, "betadisk", "Beta Disk Interface") beta_disk_device::beta_disk_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, BETA_DISK, "Beta Disk Interface", tag, owner, clock, "betadisk", __FILE__) + : device_t(mconfig, BETA_DISK, tag, owner, clock) , m_betadisk_active(0) , m_wd179x(*this, "wd179x") , m_floppy0(*this, "wd179x:0") diff --git a/src/mame/machine/beta.h b/src/mame/machine/beta.h index c1ffa85db4d..a8505977cf1 100644 --- a/src/mame/machine/beta.h +++ b/src/mame/machine/beta.h @@ -9,8 +9,10 @@ 04/05/2008 Created by Miodrag Milanovic *********************************************************************/ -#ifndef __BETA_H__ -#define __BETA_H__ +#ifndef MAME_MACHINE_BETA_H +#define MAME_MACHINE_BETA_H + +#pragma once #include "machine/wd_fdc.h" @@ -21,7 +23,6 @@ class beta_disk_device : public device_t { public: beta_disk_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~beta_disk_device() {} DECLARE_READ8_MEMBER(status_r); DECLARE_READ8_MEMBER(track_r); @@ -40,8 +41,6 @@ public: void enable(); void disable(); - uint8_t m_betadisk_active; - protected: // device-level overrides virtual void device_start() override; @@ -50,14 +49,16 @@ protected: virtual machine_config_constructor device_mconfig_additions() const override; private: - required_device m_wd179x; + uint8_t m_betadisk_active; + + required_device m_wd179x; required_device m_floppy0; required_device m_floppy1; required_device m_floppy2; required_device m_floppy3; }; -extern const device_type BETA_DISK; +DECLARE_DEVICE_TYPE(BETA_DISK, beta_disk_device) #define MCFG_BETA_DISK_ADD(_tag) \ @@ -66,4 +67,4 @@ extern const device_type BETA_DISK; #define MCFG_BETA_DISK_REMOVE(_tag) \ MCFG_DEVICE_REMOVE(_tag) -#endif /* __BETA_H__ */ +#endif // MAME_MACHINE_BETA_H diff --git a/src/mame/machine/bfm_bd1.cpp b/src/mame/machine/bfm_bd1.cpp index e16118c9424..affed8679d3 100644 --- a/src/mame/machine/bfm_bd1.cpp +++ b/src/mame/machine/bfm_bd1.cpp @@ -11,7 +11,7 @@ #include "emu.h" #include "bfm_bd1.h" -const device_type BFM_BD1 = device_creator; +DEFINE_DEVICE_TYPE(BFM_BD1, bfm_bd1_device, "bfm_bd1", "BFM BD1 VFD controller") /* @@ -101,19 +101,19 @@ static const uint16_t BD1charset[]= 0x4406, // 0100 0100 0000 0110 ? }; -bfm_bd1_t::bfm_bd1_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, BFM_BD1, "BFM BD1 VFD controller", tag, owner, clock, "bfm_bd1", __FILE__), +bfm_bd1_device::bfm_bd1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, BFM_BD1, tag, owner, clock), m_port_val(0) { } -void bfm_bd1_t::static_set_value(device_t &device, int val) +void bfm_bd1_device::static_set_value(device_t &device, int val) { - bfm_bd1_t &bd1 = downcast(device); + bfm_bd1_device &bd1 = downcast(device); bd1.m_port_val = val; } -void bfm_bd1_t::device_start() +void bfm_bd1_device::device_start() { save_item(NAME(m_cursor)); save_item(NAME(m_cursor_pos)); @@ -138,7 +138,7 @@ void bfm_bd1_t::device_start() device_reset(); } -void bfm_bd1_t::device_reset() +void bfm_bd1_device::device_reset() { m_cursor = 0; m_cursor_pos = 0; @@ -162,17 +162,17 @@ void bfm_bd1_t::device_reset() memset(m_attrs, 0, sizeof(m_attrs)); } -uint16_t bfm_bd1_t::set_display(uint16_t segin) +uint16_t bfm_bd1_device::set_display(uint16_t segin) { return BITSWAP16(segin,8,12,11,7,6,4,10,3,14,15,0,13,9,5,1,2); } -void bfm_bd1_t::device_post_load() +void bfm_bd1_device::device_post_load() { update_display(); } -void bfm_bd1_t::update_display() +void bfm_bd1_device::update_display() { for (int i =0; i<16; i++) { @@ -188,7 +188,7 @@ void bfm_bd1_t::update_display() } } /////////////////////////////////////////////////////////////////////////// -void bfm_bd1_t::blank(int data) +void bfm_bd1_device::blank(int data) { switch ( data & 0x03 ) { @@ -241,7 +241,7 @@ void bfm_bd1_t::blank(int data) } } -int bfm_bd1_t::write_char(int data) +int bfm_bd1_device::write_char(int data) { int change = 0; if ( m_user_def ) @@ -374,7 +374,7 @@ int bfm_bd1_t::write_char(int data) } /////////////////////////////////////////////////////////////////////////// -void bfm_bd1_t::setdata(int segdata, int data) +void bfm_bd1_device::setdata(int segdata, int data) { int move = 0; int change =0; @@ -538,7 +538,7 @@ void bfm_bd1_t::setdata(int segdata, int data) } } -void bfm_bd1_t::shift_clock(int state) +void bfm_bd1_device::shift_clock(int state) { if (m_sclk != state) { @@ -561,10 +561,10 @@ void bfm_bd1_t::shift_clock(int state) m_sclk = state; } -WRITE_LINE_MEMBER( bfm_bd1_t::sclk ) { shift_clock(state); } -WRITE_LINE_MEMBER( bfm_bd1_t::data ) { m_data = state; } +WRITE_LINE_MEMBER( bfm_bd1_device::sclk ) { shift_clock(state); } +WRITE_LINE_MEMBER( bfm_bd1_device::data ) { m_data = state; } -WRITE_LINE_MEMBER( bfm_bd1_t::por ) +WRITE_LINE_MEMBER( bfm_bd1_device::por ) { if (!state) { diff --git a/src/mame/machine/bfm_bd1.h b/src/mame/machine/bfm_bd1.h index 02026b586b1..f1a825dcf9d 100644 --- a/src/mame/machine/bfm_bd1.h +++ b/src/mame/machine/bfm_bd1.h @@ -1,21 +1,23 @@ // license:BSD-3-Clause // copyright-holders:David Haywood +#ifndef MAME_MACHINE_BFM_BD1_H +#define MAME_MACHINE_BFM_BD1_H + #pragma once -#ifndef BFM_BD1_H -#define BFM_BD1_H + #define MCFG_BFMBD1_ADD(_tag,_val) \ MCFG_DEVICE_ADD(_tag, BFM_BD1,60)\ MCFG_BD1_PORT(_val) #define MCFG_BD1_PORT(_val) \ - bfm_bd1_t::static_set_value(*device, _val); + bfm_bd1_device::static_set_value(*device, _val); #define MCFG_BFMBD1_REMOVE(_tag) \ MCFG_DEVICE_REMOVE(_tag) -class bfm_bd1_t : public device_t +class bfm_bd1_device : public device_t { public: - bfm_bd1_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + bfm_bd1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // inline configuration helpers static void static_set_value(device_t &device, int val); @@ -65,5 +67,6 @@ protected: }; -extern const device_type BFM_BD1; -#endif +DECLARE_DEVICE_TYPE(BFM_BD1, bfm_bd1_device) + +#endif // MAME_MACHINE_BFM_BD1_H diff --git a/src/mame/machine/bfm_bda.cpp b/src/mame/machine/bfm_bda.cpp index 9d32eb883cd..fc345c94215 100644 --- a/src/mame/machine/bfm_bda.cpp +++ b/src/mame/machine/bfm_bda.cpp @@ -10,7 +10,7 @@ #include "emu.h" #include "bfm_bda.h" -const device_type BFM_BDA = device_creator; +DEFINE_DEVICE_TYPE(BFM_BDA, bfm_bda_device, "bfm_bda", "BFM BDA VFD controller") //I currently use the BDA character set, until a suitable image can be programmed @@ -83,19 +83,19 @@ static const uint16_t BDAcharset[]= 0x4406, // 0100 0100 0000 0110 ? }; -bfm_bda_t::bfm_bda_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, BFM_BDA, "BFM BDA VFD controller", tag, owner, clock, "bfm_bda", __FILE__), +bfm_bda_device::bfm_bda_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, BFM_BDA, tag, owner, clock), m_port_val(0) { } -void bfm_bda_t::static_set_value(device_t &device, int val) +void bfm_bda_device::static_set_value(device_t &device, int val) { - bfm_bda_t &BDA = downcast(device); + bfm_bda_device &BDA = downcast(device); BDA.m_port_val = val; } -void bfm_bda_t::device_start() +void bfm_bda_device::device_start() { save_item(NAME(m_cursor)); save_item(NAME(m_cursor_pos)); @@ -120,7 +120,7 @@ void bfm_bda_t::device_start() device_reset(); } -void bfm_bda_t::device_reset() +void bfm_bda_device::device_reset() { m_cursor = 0; m_cursor_pos = 0; @@ -144,12 +144,12 @@ void bfm_bda_t::device_reset() memset(m_attrs, 0, sizeof(m_attrs)); } -uint16_t bfm_bda_t::set_display(uint16_t segin) +uint16_t bfm_bda_device::set_display(uint16_t segin) { return BITSWAP16(segin,8,12,11,7,6,4,10,3,14,15,0,13,9,5,1,2); } -void bfm_bda_t::device_post_load() +void bfm_bda_device::device_post_load() { for (int i =0; i<16; i++) { @@ -157,7 +157,7 @@ void bfm_bda_t::device_post_load() } } -void bfm_bda_t::update_display() +void bfm_bda_device::update_display() { for (int i =0; i<16; i++) { @@ -173,7 +173,7 @@ void bfm_bda_t::update_display() } } /////////////////////////////////////////////////////////////////////////// -void bfm_bda_t::blank(int data) +void bfm_bda_device::blank(int data) { switch ( data & 0x03 ) // TODO: wrong case values??? { @@ -226,7 +226,7 @@ void bfm_bda_t::blank(int data) } } -int bfm_bda_t::write_char(int data) +int bfm_bda_device::write_char(int data) { int change = 0; if ( m_user_def ) @@ -381,7 +381,7 @@ int bfm_bda_t::write_char(int data) } /////////////////////////////////////////////////////////////////////////// -void bfm_bda_t::setdata(int segdata, int data) +void bfm_bda_device::setdata(int segdata, int data) { int move = 0; int change =0; @@ -545,7 +545,7 @@ void bfm_bda_t::setdata(int segdata, int data) } } -void bfm_bda_t::shift_data(int data) +void bfm_bda_device::shift_data(int data) { m_shift_data <<= 1; diff --git a/src/mame/machine/bfm_bda.h b/src/mame/machine/bfm_bda.h index 1e5c8a664cd..04a9f058a3d 100644 --- a/src/mame/machine/bfm_bda.h +++ b/src/mame/machine/bfm_bda.h @@ -1,21 +1,23 @@ // license:BSD-3-Clause // copyright-holders:David Haywood +#ifndef MAME_MACHINE_BFM_BDA_H +#define MAME_MACHINE_BFM_BDA_H + #pragma once -#ifndef BFM_BDA_H -#define BFM_BDA_H + #define MCFG_BFMBDA_ADD(_tag,_val) \ MCFG_DEVICE_ADD(_tag, BFM_BDA,60)\ MCFG_BDA_PORT(_val) #define MCFG_BDA_PORT(_val) \ - bfm_bda_t::static_set_value(*device, _val); + bfm_bda_device::static_set_value(*device, _val); #define MCFG_BFMBDA_REMOVE(_tag) \ MCFG_DEVICE_REMOVE(_tag) -class bfm_bda_t : public device_t +class bfm_bda_device : public device_t { public: - bfm_bda_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + bfm_bda_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // inline configuration helpers static void static_set_value(device_t &device, int val); @@ -61,5 +63,6 @@ protected: }; -extern const device_type BFM_BDA; -#endif +DECLARE_DEVICE_TYPE(BFM_BDA, bfm_bda_device) + +#endif // MAME_MACHINE_BFM_BDA_H diff --git a/src/mame/machine/c117.cpp b/src/mame/machine/c117.cpp index 36e8b5e3305..ccb493c583a 100644 --- a/src/mame/machine/c117.cpp +++ b/src/mame/machine/c117.cpp @@ -31,7 +31,7 @@ static MACHINE_CONFIG_FRAGMENT( namco_c117 ) MACHINE_CONFIG_END -const device_type NAMCO_C117 = device_creator; +DEFINE_DEVICE_TYPE(NAMCO_C117, namco_c117_device, "namco_c117", "Namco C117 MMU") //------------------------------------------------- @@ -39,7 +39,7 @@ const device_type NAMCO_C117 = device_creator; //------------------------------------------------- namco_c117_device::namco_c117_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, NAMCO_C117, "Namco C117 MMU", tag, owner, clock, "namco_c117", __FILE__), + : device_t(mconfig, NAMCO_C117, tag, owner, clock), device_memory_interface(mconfig, *this), m_subres_cb(*this), m_program_config("program", ENDIANNESS_BIG, 8, 23), diff --git a/src/mame/machine/c117.h b/src/mame/machine/c117.h index 1ff70089072..4586332a56e 100644 --- a/src/mame/machine/c117.h +++ b/src/mame/machine/c117.h @@ -1,10 +1,10 @@ // license:BSD-3-Clause // copyright-holders:Alex W. Jackson +#ifndef MAME_MACHINE_C117_H +#define MAME_MACHINE_C117_H #pragma once -#ifndef __C117_H__ -#define __C117_H__ #include "machine/watchdog.h" @@ -84,6 +84,6 @@ private: }; // device type definition -extern const device_type NAMCO_C117; +DECLARE_DEVICE_TYPE(NAMCO_C117, namco_c117_device) -#endif +#endif // MAME_MACHINE_C117_H diff --git a/src/mame/machine/cammu.cpp b/src/mame/machine/cammu.cpp index 65c2a12e4f1..262b6b5ad45 100644 --- a/src/mame/machine/cammu.cpp +++ b/src/mame/machine/cammu.cpp @@ -39,21 +39,27 @@ DEVICE_ADDRESS_MAP_START(map, 32, cammu_c3_device) AM_RANGE(0x000, 0xfff) AM_READWRITE(cammu_r, cammu_w) ADDRESS_MAP_END -const device_type CAMMU_C4T = device_creator; -const device_type CAMMU_C4I = device_creator; -const device_type CAMMU_C3 = device_creator; +DEFINE_DEVICE_TYPE(CAMMU_C4T, cammu_c4t_device, "c4t", "C4E/C4T CAMMU") +DEFINE_DEVICE_TYPE(CAMMU_C4I, cammu_c4i_device, "c4i", "C4I CAMMU") +DEFINE_DEVICE_TYPE(CAMMU_C3, cammu_c3_device, "c3", "C1/C3 CAMMU") cammu_c4t_device::cammu_c4t_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cammu_device(mconfig, CAMMU_C4T, "C4E/C4T CAMMU", tag, owner, clock, "c4t", __FILE__) { } + : cammu_device(mconfig, CAMMU_C4T, tag, owner, clock) +{ +} cammu_c4i_device::cammu_c4i_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cammu_device(mconfig, CAMMU_C4I, "C4I CAMMU", tag, owner, clock, "c4i", __FILE__) { } + : cammu_device(mconfig, CAMMU_C4I, tag, owner, clock) +{ +} cammu_c3_device::cammu_c3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cammu_device(mconfig, CAMMU_C3, "C1/C3 CAMMU", tag, owner, clock, "c3", __FILE__) { } + : cammu_device(mconfig, CAMMU_C3, tag, owner, clock) +{ +} -cammu_device::cammu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source) +cammu_device::cammu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) , device_memory_interface(mconfig, *this), m_main_space_config("main", ENDIANNESS_LITTLE, 32, 32, 0), m_io_space_config("io", ENDIANNESS_LITTLE, 32, 32, 0), diff --git a/src/mame/machine/cammu.h b/src/mame/machine/cammu.h index 15d0d7a4c66..23265109486 100644 --- a/src/mame/machine/cammu.h +++ b/src/mame/machine/cammu.h @@ -1,10 +1,10 @@ // license:BSD-3-Clause // copyright-holders:Patrick Mackinlay -#pragma once +#ifndef MAME_MACHINE_CAMMU_H +#define MAME_MACHINE_CAMMU_H -#ifndef CAMMU_H_ -#define CAMMU_H_ +#pragma once // the following enables a very crude instruction cache - it has known (future) @@ -18,9 +18,7 @@ class cammu_device : public device_t, public device_memory_interface { public: - cammu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - - template static devcb_base &static_set_ssw_callback(device_t &device, _Object object) { return downcast(device).m_ssw_func.set_callback(object); } + template static devcb_base &static_set_ssw_callback(device_t &device, Object &&cb) { return downcast(device).m_ssw_func.set_callback(std::forward(cb)); } virtual DECLARE_ADDRESS_MAP(map, 32) = 0; @@ -31,6 +29,8 @@ public: DECLARE_WRITE32_MEMBER(cammu_w) { m_cammu[offset] = data; } protected: + cammu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -83,8 +83,8 @@ public: }; // device type definitions -extern const device_type CAMMU_C4T; -extern const device_type CAMMU_C4I; -extern const device_type CAMMU_C3; +DECLARE_DEVICE_TYPE(CAMMU_C4T, cammu_c4t_device) +DECLARE_DEVICE_TYPE(CAMMU_C4I, cammu_c4i_device) +DECLARE_DEVICE_TYPE(CAMMU_C3, cammu_c3_device) -#endif +#endif // MAME_MACHINE_CAMMU_H diff --git a/src/mame/machine/cat702.cpp b/src/mame/machine/cat702.cpp index 7a3dc1f0e52..1daafb75fa5 100644 --- a/src/mame/machine/cat702.cpp +++ b/src/mame/machine/cat702.cpp @@ -87,10 +87,10 @@ #include "emu.h" #include "cat702.h" -const device_type CAT702 = device_creator; +DEFINE_DEVICE_TYPE(CAT702, cat702_device, "cat702", "CAT702") cat702_device::cat702_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, CAT702, "CAT702", tag, owner, clock, "cat702", __FILE__), + device_t(mconfig, CAT702, tag, owner, clock), m_region(*this, DEVICE_SELF), m_dataout_handler(*this) { diff --git a/src/mame/machine/cat702.h b/src/mame/machine/cat702.h index e6c63dea541..550da70f991 100644 --- a/src/mame/machine/cat702.h +++ b/src/mame/machine/cat702.h @@ -2,13 +2,13 @@ // copyright-holders:smf /* CAT702 security chip */ -#pragma once +#ifndef MAME_MACHINE_CAT702_H +#define MAME_MACHINE_CAT702_H -#ifndef __CAT702_H__ -#define __CAT702_H__ +#pragma once -extern const device_type CAT702; +DECLARE_DEVICE_TYPE(CAT702, cat702_device) #define MCFG_CAT702_DATAOUT_HANDLER(_devcb) \ devcb = &cat702_device::set_dataout_handler(*device, DEVCB_##_devcb); @@ -19,7 +19,7 @@ public: cat702_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // static configuration helpers - template static devcb_base &set_dataout_handler(device_t &device, _Object object) { return downcast(device).m_dataout_handler.set_callback(object); } + template static devcb_base &set_dataout_handler(device_t &device, Object &&cb) { return downcast(device).m_dataout_handler.set_callback(std::forward(cb)); } DECLARE_WRITE_LINE_MEMBER(write_select); DECLARE_WRITE_LINE_MEMBER(write_datain); @@ -45,4 +45,4 @@ private: devcb_write_line m_dataout_handler; }; -#endif +#endif // MAME_MACHINE_CAT702_H diff --git a/src/mame/machine/cdi070.cpp b/src/mame/machine/cdi070.cpp index c3ba4d00891..c7baa63b3b0 100644 --- a/src/mame/machine/cdi070.cpp +++ b/src/mame/machine/cdi070.cpp @@ -22,12 +22,13 @@ TODO: *******************************************************************************/ #include "emu.h" -#include "cpu/m68000/m68000.h" #include "machine/cdi070.h" #include "includes/cdi.h" +#include "cpu/m68000/m68000.h" + // device type definition -const device_type MACHINE_CDI68070 = device_creator; +DEFINE_DEVICE_TYPE(MACHINE_CDI68070, cdi68070_device, "cdi68070", "CDI68070") #if ENABLE_VERBOSE_LOG static inline void ATTR_PRINTF(3,4) verboselog(device_t& device, int n_level, const char *s_fmt, ...) @@ -55,7 +56,7 @@ static inline void ATTR_PRINTF(3,4) verboselog(device_t& device, int n_level, co //------------------------------------------------- cdi68070_device::cdi68070_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MACHINE_CDI68070, "CDI68070", tag, owner, clock, "cdi68070", __FILE__) + : device_t(mconfig, MACHINE_CDI68070, tag, owner, clock) { } diff --git a/src/mame/machine/cdi070.h b/src/mame/machine/cdi070.h index 478297d27b6..0f1df7f7bad 100644 --- a/src/mame/machine/cdi070.h +++ b/src/mame/machine/cdi070.h @@ -21,8 +21,10 @@ TODO: *******************************************************************************/ -#ifndef _MACHINE_CDI68070_H_ -#define _MACHINE_CDI68070_H_ +#ifndef MAME_MACHINE_CDI070_H +#define MAME_MACHINE_CDI070_H + +#pragma once #define ISR_MST 0x80 // Master @@ -297,6 +299,6 @@ private: }; // device type definition -extern const device_type MACHINE_CDI68070; +DECLARE_DEVICE_TYPE(MACHINE_CDI68070, cdi68070_device) -#endif // _MACHINE_CDI68070_H_ +#endif // MAME_MACHINE_CDI070_H diff --git a/src/mame/machine/cdicdic.cpp b/src/mame/machine/cdicdic.cpp index 022fd1313c3..c04602721d4 100644 --- a/src/mame/machine/cdicdic.cpp +++ b/src/mame/machine/cdicdic.cpp @@ -22,15 +22,17 @@ TODO: *******************************************************************************/ #include "emu.h" -#include "cpu/m68000/m68000.h" -#include "cdrom.h" #include "machine/cdicdic.h" #include "includes/cdi.h" + +#include "cpu/m68000/m68000.h" +#include "cdrom.h" #include "sound/cdda.h" #include "imagedev/chd_cd.h" + // device type definition -const device_type MACHINE_CDICDIC = device_creator; +DEFINE_DEVICE_TYPE(MACHINE_CDICDIC, cdicdic_device, "cdicdic", "CDICDIC") #if ENABLE_VERBOSE_LOG static inline void ATTR_PRINTF(3,4) verboselog(device_t& device, int n_level, const char *s_fmt, ...) @@ -1162,7 +1164,7 @@ WRITE16_MEMBER( cdicdic_device::regs_w ) //------------------------------------------------- cdicdic_device::cdicdic_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MACHINE_CDICDIC, "CDICDIC", tag, owner, clock, "cdicdic", __FILE__) + : device_t(mconfig, MACHINE_CDICDIC, tag, owner, clock) { } diff --git a/src/mame/machine/cdicdic.h b/src/mame/machine/cdicdic.h index 881f6ab16da..e275ed5739b 100644 --- a/src/mame/machine/cdicdic.h +++ b/src/mame/machine/cdicdic.h @@ -21,10 +21,10 @@ TODO: *******************************************************************************/ -#pragma once +#ifndef MAME_MACHINE_CDICDIC_H +#define MAME_MACHINE_CDICDIC_H -#ifndef __CDICDIC_H__ -#define __CDICDIC_H__ +#pragma once #include "cdrom.h" #include "sound/cdda.h" @@ -115,6 +115,6 @@ private: }; // device type definition -extern const device_type MACHINE_CDICDIC; +DECLARE_DEVICE_TYPE(MACHINE_CDICDIC, cdicdic_device) -#endif // __CDICDIC_H__ +#endif // MAME_MACHINE_CDICDIC_H diff --git a/src/mame/machine/cdislave.cpp b/src/mame/machine/cdislave.cpp index bbf21038307..1e24587088c 100644 --- a/src/mame/machine/cdislave.cpp +++ b/src/mame/machine/cdislave.cpp @@ -22,13 +22,15 @@ TODO: *******************************************************************************/ #include "emu.h" -#include "cpu/m68000/m68000.h" #include "machine/cdislave.h" #include "machine/cdi070.h" #include "includes/cdi.h" +#include "cpu/m68000/m68000.h" + + // device type definition -const device_type MACHINE_CDISLAVE = device_creator; +DEFINE_DEVICE_TYPE(MACHINE_CDISLAVE, cdislave_device, "cdislave", "CDISLAVE") #if ENABLE_VERBOSE_LOG @@ -419,7 +421,7 @@ WRITE16_MEMBER( cdislave_device::slave_w ) //------------------------------------------------- cdislave_device::cdislave_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MACHINE_CDISLAVE, "CDISLAVE", tag, owner, clock, "cdislave", __FILE__) + : device_t(mconfig, MACHINE_CDISLAVE, tag, owner, clock) { } diff --git a/src/mame/machine/cdislave.h b/src/mame/machine/cdislave.h index 7fee3e4561b..3791a98378d 100644 --- a/src/mame/machine/cdislave.h +++ b/src/mame/machine/cdislave.h @@ -21,10 +21,10 @@ TODO: *******************************************************************************/ -#pragma once +#ifndef MAME_MACHINE_CDISLAVE_H +#define MAME_MACHINE_CDISLAVE_H -#ifndef __CDISLAVE_H__ -#define __CDISLAVE_H__ +#pragma once //************************************************************************** diff --git a/src/mame/machine/cedar_magnet_board.h b/src/mame/machine/cedar_magnet_board.h index dbdddbed103..08cc36d9a9a 100644 --- a/src/mame/machine/cedar_magnet_board.h +++ b/src/mame/machine/cedar_magnet_board.h @@ -2,11 +2,11 @@ // copyright-holders:David Haywood // device interface to hold some common functions of the EFO / Cedar Magnet System PCBs +#ifndef MAME_MACHINE_CEDAR_MAGNET_BOARD_H +#define MAME_MACHINE_CEDAR_MAGNET_BOARD_H #pragma once -#ifndef CEDAR_MAGNET_BOARD_DEF -#define CEDAR_MAGNET_BOARD_DEF #include "cpu/z80/z80.h" #include "cpu/z80/z80daisy.h" @@ -46,4 +46,4 @@ private: bool m_is_running; }; -#endif +#endif // MAME_MACHINE_CEDAR_MAGNET_BOARD_H diff --git a/src/mame/machine/cedar_magnet_flop.cpp b/src/mame/machine/cedar_magnet_flop.cpp index 1b3329b7199..a9b0d3a407a 100644 --- a/src/mame/machine/cedar_magnet_flop.cpp +++ b/src/mame/machine/cedar_magnet_flop.cpp @@ -8,10 +8,10 @@ #include "emu.h" #include "cedar_magnet_flop.h" -const device_type CEDAR_MAGNET_FLOP = device_creator; +DEFINE_DEVICE_TYPE(CEDAR_MAGNET_FLOP, cedar_magnet_flop_device, "cedmag_flop", "Cedar Floppy Simulation") cedar_magnet_flop_device::cedar_magnet_flop_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, CEDAR_MAGNET_FLOP, "Cedar Floppy Simulation", tag, owner, clock, "cedmag_flop", __FILE__) + : device_t(mconfig, CEDAR_MAGNET_FLOP, tag, owner, clock) { } diff --git a/src/mame/machine/cedar_magnet_flop.h b/src/mame/machine/cedar_magnet_flop.h index c73f8f6e031..fc82a4adb8d 100644 --- a/src/mame/machine/cedar_magnet_flop.h +++ b/src/mame/machine/cedar_magnet_flop.h @@ -1,33 +1,25 @@ // license:BSD-3-Clause // copyright-holders:David Haywood +#ifndef MAME_MACHINE_CEDAR_MAGNET_FLOP_H +#define MAME_MACHINE_CEDAR_MAGNET_FLOP_H #pragma once -#ifndef CEDAR_MAGNET_FLOP_DEF -#define CEDAR_MAGNET_FLOP_DEF extern const device_type CEDAR_MAGNET_FLOP; +DECLARE_DEVICE_TYPE(CEDAR_MAGNET_FLOP, cedar_magnet_flop_device) #define MCFG_CEDAR_MAGNET_FLOP_ADD(_tag) \ MCFG_DEVICE_ADD(_tag, CEDAR_MAGNET_FLOP, 0) #include "machine/nvram.h" -class cedar_magnet_flop_device : public device_t +class cedar_magnet_flop_device : public device_t { public: // construction/destruction cedar_magnet_flop_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - uint8_t m_flopdat; - uint8_t m_flopcmd; - uint8_t m_flopsec; - uint8_t m_flopstat; - uint8_t m_floptrk; - - uint8_t m_curtrack; - int m_secoffs; - DECLARE_READ8_MEMBER(port60_r); DECLARE_READ8_MEMBER(port61_r); DECLARE_READ8_MEMBER(port63_r); @@ -43,7 +35,17 @@ protected: virtual machine_config_constructor device_mconfig_additions() const override; virtual void device_start() override; virtual void device_reset() override; + private: + uint8_t m_flopdat; + uint8_t m_flopcmd; + uint8_t m_flopsec; + uint8_t m_flopstat; + uint8_t m_floptrk; + + uint8_t m_curtrack; + int m_secoffs; + }; -#endif +#endif // MAME_MACHINE_CEDAR_MAGNET_FLOP_H diff --git a/src/mame/machine/cedar_magnet_plane.cpp b/src/mame/machine/cedar_magnet_plane.cpp index 9646d49dbed..3d69bb43c5b 100644 --- a/src/mame/machine/cedar_magnet_plane.cpp +++ b/src/mame/machine/cedar_magnet_plane.cpp @@ -6,12 +6,12 @@ #include "cedar_magnet_plane.h" -const device_type CEDAR_MAGNET_PLANE = device_creator; +DEFINE_DEVICE_TYPE(CEDAR_MAGNET_PLANE, cedar_magnet_plane_device, "cedmag_plane", "Cedar Plane") cedar_magnet_plane_device::cedar_magnet_plane_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, CEDAR_MAGNET_PLANE, "Cedar Plane", tag, owner, clock, "cedmag_plane", __FILE__), - cedar_magnet_board_interface(mconfig, *this, "planecpu", "ram") + : device_t(mconfig, CEDAR_MAGNET_PLANE, tag, owner, clock) + , cedar_magnet_board_interface(mconfig, *this, "planecpu", "ram") { } diff --git a/src/mame/machine/cedar_magnet_plane.h b/src/mame/machine/cedar_magnet_plane.h index a1bafdc74b9..1b6cadf78b0 100644 --- a/src/mame/machine/cedar_magnet_plane.h +++ b/src/mame/machine/cedar_magnet_plane.h @@ -1,15 +1,16 @@ // license:BSD-3-Clause // copyright-holders:David Haywood +#ifndef MAME_MACHINE_CEDAR_MAGNET_PLANE_H +#define MAME_MACHINE_CEDAR_MAGNET_PLANE_H #pragma once -#ifndef CEDAR_MAGNET_PLANE_DEF -#define CEDAR_MAGNET_PLANE_DEF #include "machine/cedar_magnet_board.h" #include "machine/z80pio.h" extern const device_type CEDAR_MAGNET_PLANE; +DECLARE_DEVICE_TYPE(CEDAR_MAGNET_PLANE, cedar_magnet_plane_device) #define MCFG_CEDAR_MAGNET_PLANE_ADD(_tag) \ MCFG_DEVICE_ADD(_tag, CEDAR_MAGNET_PLANE, 0) @@ -38,6 +39,13 @@ public: INTERRUPT_GEN_MEMBER(vblank_irq); + uint32_t draw(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int palbase); + +protected: + virtual machine_config_constructor device_mconfig_additions() const override; + virtual void device_start() override; + +private: uint8_t m_framebuffer[0x10000]; int m_curline; int m_lineoffset; @@ -50,13 +58,6 @@ public: uint8_t m_cd_data; uint8_t m_cf_data; - uint32_t draw(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int palbase); -protected: - virtual machine_config_constructor device_mconfig_additions() const override; - virtual void device_start() override; -// virtual void device_reset() override; - -private: }; -#endif +#endif // MAME_MACHINE_CEDAR_MAGNET_PLANE_H diff --git a/src/mame/machine/cedar_magnet_sprite.cpp b/src/mame/machine/cedar_magnet_sprite.cpp index d84ebc08c84..ef653288022 100644 --- a/src/mame/machine/cedar_magnet_sprite.cpp +++ b/src/mame/machine/cedar_magnet_sprite.cpp @@ -10,11 +10,11 @@ #include "cedar_magnet_sprite.h" -const device_type CEDAR_MAGNET_SPRITE = device_creator; +DEFINE_DEVICE_TYPE(CEDAR_MAGNET_SPRITE, cedar_magnet_sprite_device, "cedmag_sprite", "Cedar Sprite") cedar_magnet_sprite_device::cedar_magnet_sprite_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, CEDAR_MAGNET_SPRITE, "Cedar Sprite", tag, owner, clock, "cedmag_sprite", __FILE__), + : device_t(mconfig, CEDAR_MAGNET_SPRITE, tag, owner, clock), cedar_magnet_board_interface(mconfig, *this, "spritecpu", "ram"), m_sprite_ram_bankdev(*this, "sp_sub_ram"), m_pio0(*this, "z80pio0"), diff --git a/src/mame/machine/cedar_magnet_sprite.h b/src/mame/machine/cedar_magnet_sprite.h index f6882e50923..3bdf55ed0f0 100644 --- a/src/mame/machine/cedar_magnet_sprite.h +++ b/src/mame/machine/cedar_magnet_sprite.h @@ -1,18 +1,18 @@ // license:BSD-3-Clause // copyright-holders:David Haywood +#ifndef MAME_MACHINE_CEDAR_MAGNET_SPRITE_H +#define MAME_MACHINE_CEDAR_MAGNET_SPRITE_H #pragma once -#ifndef CEDAR_MAGNET_SPRITE_DEF -#define CEDAR_MAGNET_SPRITE_DEF +#include "machine/cedar_magnet_board.h" #include "cpu/z80/z80.h" #include "cpu/z80/z80daisy.h" #include "machine/z80pio.h" #include "machine/bankdev.h" -#include "machine/cedar_magnet_board.h" -extern const device_type CEDAR_MAGNET_SPRITE; +DECLARE_DEVICE_TYPE(CEDAR_MAGNET_SPRITE, cedar_magnet_sprite_device) #define MCFG_CEDAR_MAGNET_SPRITE_ADD(_tag) \ MCFG_DEVICE_ADD(_tag, CEDAR_MAGNET_SPRITE, 0) @@ -24,11 +24,6 @@ public: // construction/destruction cedar_magnet_sprite_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - uint8_t m_framebuffer[0x10000]; - uint8_t pio2_pb_data; - - required_device m_sprite_ram_bankdev; - DECLARE_READ8_MEMBER(pio0_pa_r); DECLARE_WRITE8_MEMBER(pio0_pa_w); // DECLARE_READ8_MEMBER(pio0_pb_r); @@ -52,11 +47,26 @@ public: DECLARE_READ8_MEMBER(exzisus_hack_r); - uint8_t m_upperaddr; - uint8_t m_loweraddr; + INTERRUPT_GEN_MEMBER(irq); + + uint32_t draw(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int palbase); +protected: + virtual machine_config_constructor device_mconfig_additions() const override; + virtual void device_start() override; + virtual void device_reset() override; + +private: void do_blit(); + uint8_t m_framebuffer[0x10000]; + uint8_t pio2_pb_data; + + required_device m_sprite_ram_bankdev; + + uint8_t m_upperaddr; + uint8_t m_loweraddr; + uint8_t m_spritesize; uint8_t pio0_pb_data; uint8_t m_spritecodelow; @@ -65,19 +75,9 @@ public: int m_high_write; uint8_t m_uppersprite; - INTERRUPT_GEN_MEMBER(irq); - required_device m_pio0; required_device m_pio1; required_device m_pio2; - - uint32_t draw(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int palbase); -protected: - virtual machine_config_constructor device_mconfig_additions() const override; - virtual void device_start() override; - virtual void device_reset() override; - -private: }; -#endif +#endif // MAME_MACHINE_CEDAR_MAGNET_SPRITE_H diff --git a/src/mame/machine/coco_vhd.cpp b/src/mame/machine/coco_vhd.cpp index 2cbb0eeef90..2384127346e 100644 --- a/src/mame/machine/coco_vhd.cpp +++ b/src/mame/machine/coco_vhd.cpp @@ -65,15 +65,15 @@ CORE IMPLEMENTATION ***************************************************************************/ -const device_type COCO_VHD = device_creator; +DEFINE_DEVICE_TYPE(COCO_VHD, coco_vhd_image_device, "coco_vhd_image", "CoCo Virtual Hard Disk") //------------------------------------------------- // coco_vhd_image_device - constructor //------------------------------------------------- coco_vhd_image_device::coco_vhd_image_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, COCO_VHD, "Virtual Hard Disk", tag, owner, clock, "coco_vhd_image", __FILE__), - device_image_interface(mconfig, *this) + : device_t(mconfig, COCO_VHD, tag, owner, clock) + , device_image_interface(mconfig, *this) { } diff --git a/src/mame/machine/coco_vhd.h b/src/mame/machine/coco_vhd.h index 08e8499c56a..2d4a2c3deb8 100644 --- a/src/mame/machine/coco_vhd.h +++ b/src/mame/machine/coco_vhd.h @@ -8,9 +8,10 @@ ***************************************************************************/ -#ifndef COCOVHD_H -#define COCOVHD_H +#ifndef MAME_MACHINE_COCO_VHD_H +#define MAME_MACHINE_COCO_VHD_H +#pragma once /*************************************************************************** TYPE DEFINITIONS @@ -59,7 +60,7 @@ private: }; // device type definition -extern const device_type COCO_VHD; +DECLARE_DEVICE_TYPE(COCO_VHD, coco_vhd_image_device) /*************************************************************************** DEVICE CONFIGURATION MACROS @@ -67,4 +68,5 @@ extern const device_type COCO_VHD; #define MCFG_COCO_VHD_ADD(_tag) \ MCFG_DEVICE_ADD(_tag, COCO_VHD, 0) -#endif /* COCOVHD_H */ + +#endif // MAME_MACHINE_COCO_VHD_H diff --git a/src/mame/machine/compiskb.cpp b/src/mame/machine/compiskb.cpp index 79212d26540..ae4884da194 100644 --- a/src/mame/machine/compiskb.cpp +++ b/src/mame/machine/compiskb.cpp @@ -28,7 +28,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type COMPIS_KEYBOARD = device_creator; +DEFINE_DEVICE_TYPE(COMPIS_KEYBOARD, compis_keyboard_device, "compiskb", "Compis Keyboard") //------------------------------------------------- @@ -233,7 +233,7 @@ ioport_constructor compis_keyboard_device::device_input_ports() const //------------------------------------------------- compis_keyboard_device::compis_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, COMPIS_KEYBOARD, "Compis Keyboard", tag, owner, clock, "compiskb", __FILE__), + : device_t(mconfig, COMPIS_KEYBOARD, tag, owner, clock), m_maincpu(*this, I8748_TAG), m_speaker(*this, SPEAKER_TAG), m_y(*this, "Y%u", 1), diff --git a/src/mame/machine/compiskb.h b/src/mame/machine/compiskb.h index dfaf863bee4..a4087f1f2cf 100644 --- a/src/mame/machine/compiskb.h +++ b/src/mame/machine/compiskb.h @@ -31,13 +31,13 @@ // ======================> compis_keyboard_device -class compis_keyboard_device : public device_t +class compis_keyboard_device : public device_t { public: // construction/destruction compis_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_out_tx_handler(device_t &device, _Object object) { return downcast(device).m_out_tx_handler.set_callback(object); } + template static devcb_base &set_out_tx_handler(device_t &device, Object &&cb) { return downcast(device).m_out_tx_handler.set_callback(std::forward(cb)); } // optional information overrides virtual const tiny_rom_entry *device_rom_region() const override; @@ -65,7 +65,7 @@ private: required_device m_speaker; required_ioport_array<9> m_y; required_ioport m_special; - devcb_write_line m_out_tx_handler; + devcb_write_line m_out_tx_handler; uint8_t m_bus; uint8_t m_keylatch; @@ -74,7 +74,6 @@ private: // device type definition extern const device_type COMPIS_KEYBOARD; - - +DECLARE_DEVICE_TYPE(COMPIS_KEYBOARD, compis_keyboard_device) #endif // MAME_INCLUDES_COMPISKB_H diff --git a/src/mame/machine/cuda.cpp b/src/mame/machine/cuda.cpp index 5ce2edfbd9a..7ef3d210cd3 100644 --- a/src/mame/machine/cuda.cpp +++ b/src/mame/machine/cuda.cpp @@ -54,7 +54,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type CUDA = device_creator; +DEFINE_DEVICE_TYPE(CUDA, cuda_device, "cuda", "Apple Cuda") ROM_START( cuda ) ROM_REGION(0x4400, CUDA_CPU_TAG, 0) @@ -383,7 +383,7 @@ WRITE8_MEMBER( cuda_device::pram_w ) //------------------------------------------------- cuda_device::cuda_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, CUDA, "Apple Cuda", tag, owner, clock, "cuda", __FILE__), + : device_t(mconfig, CUDA, tag, owner, clock), device_nvram_interface(mconfig, *this), write_reset(*this), write_linechange(*this), diff --git a/src/mame/machine/cuda.h b/src/mame/machine/cuda.h index ecc77b127d2..7e5e614623d 100644 --- a/src/mame/machine/cuda.h +++ b/src/mame/machine/cuda.h @@ -135,6 +135,6 @@ private: }; // device type definition -extern const device_type CUDA; +DECLARE_DEVICE_TYPE(CUDA, cuda_device) #endif diff --git a/src/mame/machine/dc-ctrl.cpp b/src/mame/machine/dc-ctrl.cpp index 48db78e1af6..fa8f28346f5 100644 --- a/src/mame/machine/dc-ctrl.cpp +++ b/src/mame/machine/dc-ctrl.cpp @@ -3,7 +3,7 @@ #include "emu.h" #include "dc-ctrl.h" -const device_type DC_CONTROLLER = device_creator; +DEFINE_DEVICE_TYPE(DC_CONTROLLER, dc_controller_device, "dcctrl", "Dreamcast Controller") void dc_controller_device::static_set_port_tag(device_t &device, int port, const char *tag) { @@ -30,7 +30,7 @@ void dc_controller_device::static_set_versions(device_t &device, const char *ver } dc_controller_device::dc_controller_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - maple_device(mconfig, DC_CONTROLLER, "Dreamcast Controller", tag, owner, clock, "dcctrl", __FILE__) + maple_device(mconfig, DC_CONTROLLER, tag, owner, clock) { memset(port_tag, 0, sizeof(port_tag)); diff --git a/src/mame/machine/dc-ctrl.h b/src/mame/machine/dc-ctrl.h index afc935c5f75..b5b98f42dab 100644 --- a/src/mame/machine/dc-ctrl.h +++ b/src/mame/machine/dc-ctrl.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Olivier Galibert -#ifndef _DC_CTRL_H_ -#define _DC_CTRL_H_ +#ifndef MAME_MACHINE_DC_CTRL_H +#define MAME_MACHINE_DC_CTRL_H + +#pragma once #include "mapledev.h" @@ -53,6 +55,6 @@ private: ioport_port *port[8]; }; -extern const device_type DC_CONTROLLER; +DECLARE_DEVICE_TYPE(DC_CONTROLLER, dc_controller_device) -#endif // _DC_CTRL_H_ +#endif // MAME_MACHINE_DC_CTRL_H diff --git a/src/mame/machine/dec_lk201.cpp b/src/mame/machine/dec_lk201.cpp index 97b7da6829b..d1c95ed1e5c 100644 --- a/src/mame/machine/dec_lk201.cpp +++ b/src/mame/machine/dec_lk201.cpp @@ -177,7 +177,7 @@ ________|D7 |D6 |D5 |D4 |D3 |D2 |D1 |D0 // DEVICE DEFINITIONS //************************************************************************** -const device_type LK201 = device_creator; +DEFINE_DEVICE_TYPE(LK201, lk201_device, "lk201", "DEC LK201 Keyboard") ROM_START( lk201 ) ROM_REGION(0x2000, LK201_CPU_TAG, 0) @@ -512,7 +512,7 @@ ioport_constructor lk201_device::device_input_ports() const //------------------------------------------------- lk201_device::lk201_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, LK201, "DEC LK201 keyboard", tag, owner, clock, "lk201", __FILE__), + : device_t(mconfig, LK201, tag, owner, clock), device_serial_interface(mconfig, *this), m_maincpu(*this, LK201_CPU_TAG), m_speaker(*this, LK201_SPK_TAG), diff --git a/src/mame/machine/dec_lk201.h b/src/mame/machine/dec_lk201.h index 308d6a98052..d451ea8d530 100644 --- a/src/mame/machine/dec_lk201.h +++ b/src/mame/machine/dec_lk201.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:R. Belmont, M. Burke -#pragma once +#ifndef MAME_MACHINE_DEC_LK201_H +#define MAME_MACHINE_DEC_LK201_H -#ifndef __LK201_H__ -#define __LK201_H__ +#pragma once #include "sound/beep.h" @@ -139,6 +139,6 @@ private: }; // device type definition -extern const device_type LK201; +DECLARE_DEVICE_TYPE(LK201, lk201_device) -#endif +#endif // MAME_MACHINE_DEC_LK201_H diff --git a/src/mame/machine/deco104.cpp b/src/mame/machine/deco104.cpp index 42ce906f9a6..36fffd62e70 100644 --- a/src/mame/machine/deco104.cpp +++ b/src/mame/machine/deco104.cpp @@ -14,14 +14,12 @@ ***************************************************************************/ #include "emu.h" -#include "machine/eepromser.h" #include "deco104.h" +#include "machine/eepromser.h" - - -deco146port_xx port104_table[] = { +static deco146port_xx const port104_table[] = { /* 0x000 */ { 0x04, { NIB3__, NIB0__, NIB1__, NIB2__ } , 1, 1 }, /* 0x002 */ { 0x2a, { NIB1__, NIB3__, NIB0__, NIB2__ } , 0, 1 }, /* 0x004 */ { 0x5e, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 }, @@ -1051,12 +1049,12 @@ deco146port_xx port104_table[] = { -const device_type DECO104PROT = device_creator; +DEFINE_DEVICE_TYPE(DECO104PROT, deco104_device, "deco104", "DECO 104 Protection") deco104_device::deco104_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : deco_146_base_device(mconfig, DECO104PROT, "DECO 104 Protection", tag, owner, clock, "deco104", __FILE__) + : deco_146_base_device(mconfig, DECO104PROT, tag, owner, clock) { m_bankswitch_swap_read_address = 0x66; m_magic_read_address_xor = 0x2a4; diff --git a/src/mame/machine/deco104.h b/src/mame/machine/deco104.h index cae62defaf0..e9bde950888 100644 --- a/src/mame/machine/deco104.h +++ b/src/mame/machine/deco104.h @@ -1,13 +1,13 @@ // license:BSD-3-Clause // copyright-holders:David Haywood +#ifndef MAME_MACHINE_DECO104_H +#define MAME_MACHINE_DECO104_H + #pragma once -#ifndef __DECO104_H__ -#define __DECO104_H__ #include "deco146.h" - /* Data East 104 protection chip */ class deco104_device : public deco_146_base_device @@ -15,29 +15,15 @@ class deco104_device : public deco_146_base_device public: deco104_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - - - protected: virtual void device_start() override; virtual void device_reset() override; - - - - - -private: - - }; -extern const device_type DECO104PROT; +DECLARE_DEVICE_TYPE(DECO104PROT, deco104_device) #define MCFG_DECO104_ADD(_tag) \ MCFG_DEVICE_ADD(_tag, DECO104PROT, 0) - - - -#endif +#endif // MAME_MACHINE_DECO104_H diff --git a/src/mame/machine/deco146.cpp b/src/mame/machine/deco146.cpp index e5c9f35cd59..089217af218 100644 --- a/src/mame/machine/deco146.cpp +++ b/src/mame/machine/deco146.cpp @@ -92,10 +92,7 @@ #include "machine/eepromser.h" - - - -deco146port_xx port_table[] = { +static deco146port_xx const port_table[] = { /* 0x000 */ { 0x08a, { NIB1__, NIB2__, NIB3__, BLANK_ }, 0, 1 }, /* 0x002 */ { 0x0aa, { NIB3__, NIB2__, NIB0__, NIB1__ }, 0, 0 }, /* 0x004 */ { 0x018, { NIB2R2, NIB3__, BLANK_, BLANK_ }, 0, 1 }, @@ -1122,7 +1119,7 @@ deco146port_xx port_table[] = { /* 0x7fe */ { 0x04c, { NIB1__, NIB2__, NIB0__, NIB3__ }, 0, 1 } }; -uint16_t reorder(uint16_t input, uint8_t *weights) +inline uint16_t reorder(uint16_t input, uint8_t const *weights) { uint16_t temp = 0; for(int i = 0; i < 16; i++) @@ -1315,12 +1312,9 @@ uint16_t deco_146_base_device::read_data(uint16_t address, uint16_t mem_mask, ui } -//const device_type DECO146BASE = device_creator; - - -deco_146_base_device::deco_146_base_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), +deco_146_base_device::deco_146_base_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock), m_sound_latch(*this, ":soundlatch") { m_port_a_r = deco146_port_read_cb(FUNC(deco_146_base_device::port_a_default), this); @@ -1458,15 +1452,6 @@ void deco_146_base_device::device_reset() } - - - - - - -const device_type DECO146PROT = device_creator; - - uint16_t deco_146_base_device::read_data_getloc(uint16_t address, int& location) { uint16_t retdata = 0; @@ -1502,8 +1487,12 @@ uint16_t deco_146_base_device::read_data_getloc(uint16_t address, int& location) } + +DEFINE_DEVICE_TYPE(DECO146PROT, deco146_device, "deco146", "DECO 146 Protection") + + deco146_device::deco146_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : deco_146_base_device(mconfig, DECO146PROT, "DECO 146 Protection", tag, owner, clock, "deco146", __FILE__) + : deco_146_base_device(mconfig, DECO146PROT, tag, owner, clock) { m_bankswitch_swap_read_address = 0x78; m_magic_read_address_xor = 0x44a; diff --git a/src/mame/machine/deco146.h b/src/mame/machine/deco146.h index d8bf3bf5c28..1ef7ab87082 100644 --- a/src/mame/machine/deco146.h +++ b/src/mame/machine/deco146.h @@ -1,8 +1,9 @@ // license:BSD-3-Clause // copyright-holders:David Haywood, Charles MacDonald +#ifndef MAME_MACHINE_DECO146_H +#define MAME_MACHINE_DECO146_H + #pragma once -#ifndef __DECO146_H__ -#define __DECO146_H__ #include "machine/gen_latch.h" @@ -82,9 +83,6 @@ struct deco146port_xx class deco_146_base_device : public device_t { public: - //deco_146_base_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - deco_146_base_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - void write_data(address_space &space, uint16_t address, uint16_t data, uint16_t mem_mask, uint8_t &csflags); uint16_t read_data(uint16_t address, uint16_t mem_mask, uint8_t &csflags); @@ -121,18 +119,11 @@ public: uint8_t m_external_addrswap[10]; - deco146port_xx* m_lookup_table; - - - -// for older handlers -#define DECO146__PORT(p) (prot_ram[p/2]) - - - - + deco146port_xx const *m_lookup_table; protected: + deco_146_base_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; virtual void device_reset() override; @@ -161,8 +152,6 @@ private: }; -extern const device_type DECO146BASE; - class deco146_device : public deco_146_base_device { public: @@ -170,14 +159,9 @@ public: }; extern const device_type DECO146PROT; +DECLARE_DEVICE_TYPE(DECO146PROT, deco146_device) #define MCFG_DECO146_ADD(_tag) \ MCFG_DEVICE_ADD(_tag, DECO146PROT, 0) - - - - - - -#endif +#endif // MAME_MACHINE_DECO146_H diff --git a/src/mame/machine/deco156.h b/src/mame/machine/deco156.h index b73b82f4b56..f33670c459a 100644 --- a/src/mame/machine/deco156.h +++ b/src/mame/machine/deco156.h @@ -1,4 +1,10 @@ // license:BSD-3-Clause // copyright-holders:Nicola Salmoria +#ifndef MAME_MACHINE_DECO156_H +#define MAME_MACHINE_DECO156_H + +#pragma once void deco156_decrypt(running_machine &machine); + +#endif // MAME_MACHINE_DECO156_H diff --git a/src/mame/machine/deco222.cpp b/src/mame/machine/deco222.cpp index d19aefade66..50478cc48bc 100644 --- a/src/mame/machine/deco222.cpp +++ b/src/mame/machine/deco222.cpp @@ -8,12 +8,12 @@ #include "emu.h" #include "deco222.h" -const device_type DECO_222 = device_creator; -const device_type DECO_C10707 = device_creator; +DEFINE_DEVICE_TYPE(DECO_222, deco_222_device, "deco222", "DECO 222") +DEFINE_DEVICE_TYPE(DECO_C10707, deco_c10707_device, "decoc10707", "DECO C10707") deco_222_device::deco_222_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - m6502_device(mconfig, DECO_222, "DECO 222", tag, owner, clock, "deco222", __FILE__) + m6502_device(mconfig, DECO_222, tag, owner, clock) { } @@ -37,7 +37,7 @@ uint8_t deco_222_device::mi_decrypt::read_sync(uint16_t adr) deco_c10707_device::deco_c10707_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - m6502_device(mconfig, DECO_C10707, "DECO C10707", tag, owner, clock, "decoc10707", __FILE__) + m6502_device(mconfig, DECO_C10707, tag, owner, clock) { } diff --git a/src/mame/machine/deco222.h b/src/mame/machine/deco222.h index 56df49a0bad..c7bf940acac 100644 --- a/src/mame/machine/deco222.h +++ b/src/mame/machine/deco222.h @@ -1,5 +1,9 @@ // license:BSD-3-Clause // copyright-holders:David Haywood +#ifndef MAME_MACHINE_DECO222 +#define MAME_MACHINE_DECO222 + +#pragma once #include "cpu/m6502/m6502.h" @@ -42,5 +46,7 @@ protected: }; -extern const device_type DECO_222; -extern const device_type DECO_C10707; +DECLARE_DEVICE_TYPE(DECO_222, deco_222_device) +DECLARE_DEVICE_TYPE(DECO_C10707, deco_c10707_device) + +#endif // MAME_MACHINE_DECO222 diff --git a/src/mame/machine/decocass_tape.cpp b/src/mame/machine/decocass_tape.cpp index a3be6307cfc..8686be2cb06 100644 --- a/src/mame/machine/decocass_tape.cpp +++ b/src/mame/machine/decocass_tape.cpp @@ -7,9 +7,10 @@ ***********************************************************************/ #include "emu.h" +#include "machine/decocass_tape.h" + #include "cpu/m6502/m6502.h" #include "cpu/mcs48/mcs48.h" -#include "machine/decocass_tape.h" #define LOG_CASSETTE_STATE 0 @@ -56,10 +57,10 @@ static uint16_t tape_crc16_byte(uint16_t crc, uint8_t data); -const device_type DECOCASS_TAPE = device_creator; +DEFINE_DEVICE_TYPE(DECOCASS_TAPE, decocass_tape_device, "decocass_tape", "DECO Cassette Tape") decocass_tape_device::decocass_tape_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, DECOCASS_TAPE, "DECO Cassette Tape", tag, owner, clock, "decocass_tape", __FILE__), + : device_t(mconfig, DECOCASS_TAPE, tag, owner, clock), m_tape_timer(nullptr), m_speed(0), m_region(REGION_LEADER), diff --git a/src/mame/machine/decocass_tape.h b/src/mame/machine/decocass_tape.h index c8a766c101a..0b6131d5ae8 100644 --- a/src/mame/machine/decocass_tape.h +++ b/src/mame/machine/decocass_tape.h @@ -1,7 +1,9 @@ // license:GPL-2.0+ // copyright-holders:Juergen Buchmueller, David Haywood -#ifndef __DECOCASS_TAPE_H__ -#define __DECOCASS_TAPE_H__ +#ifndef MAME_MACHINE_DECOCASS_TAPE_H +#define MAME_MACHINE_DECOCASS_TAPE_H + +#pragma once class decocass_tape_device : public device_t { @@ -69,9 +71,9 @@ private: TIMER_CALLBACK_MEMBER( tape_clock_callback ); }; -extern const device_type DECOCASS_TAPE; +DECLARE_DEVICE_TYPE(DECOCASS_TAPE, decocass_tape_device) #define MCFG_DECOCASS_TAPE_ADD(_tag) \ MCFG_DEVICE_ADD(_tag, DECOCASS_TAPE, 0) -#endif +#endif // MAME_MACHINE_DECOCASS_TAPE_H diff --git a/src/mame/machine/decocpu6.cpp b/src/mame/machine/decocpu6.cpp index 2162812d3dd..3d855e2864d 100644 --- a/src/mame/machine/decocpu6.cpp +++ b/src/mame/machine/decocpu6.cpp @@ -9,11 +9,11 @@ #include "emu.h" #include "decocpu6.h" -const device_type DECO_CPU6 = device_creator; +DEFINE_DEVICE_TYPE(DECO_CPU6, deco_cpu6_device, "decocpu6", "DECO CPU-6") deco_cpu6_device::deco_cpu6_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - m6502_device(mconfig, DECO_CPU6, "DECO CPU-6", tag, owner, clock, "decocpu6", __FILE__) + m6502_device(mconfig, DECO_CPU6, tag, owner, clock) { } diff --git a/src/mame/machine/decocpu6.h b/src/mame/machine/decocpu6.h index 5db333114fc..21e649ed5ac 100644 --- a/src/mame/machine/decocpu6.h +++ b/src/mame/machine/decocpu6.h @@ -1,6 +1,9 @@ // license:BSD-3-Clause // copyright-holders:David Haywood +#ifndef MAME_MACHINE_DECOCPU6_H +#define MAME_MACHINE_DECOCPU6_H +#pragma once #include "cpu/m6502/m6502.h" @@ -20,4 +23,6 @@ protected: }; -extern const device_type DECO_CPU6; +DECLARE_DEVICE_TYPE(DECO_CPU6, deco_cpu6_device) + +#endif // MAME_MACHINE_DECOCPU6_H diff --git a/src/mame/machine/decocpu7.cpp b/src/mame/machine/decocpu7.cpp index 6c7fe9c8179..332cea3ac45 100644 --- a/src/mame/machine/decocpu7.cpp +++ b/src/mame/machine/decocpu7.cpp @@ -4,11 +4,11 @@ #include "emu.h" #include "decocpu7.h" -const device_type DECO_CPU7 = device_creator; +DEFINE_DEVICE_TYPE(DECO_CPU7, deco_cpu7_device, "decocpu7", "DECO CPU-7") deco_cpu7_device::deco_cpu7_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - m6502_device(mconfig, DECO_CPU7, "DECO CPU-7", tag, owner, clock, "decocpu7", __FILE__) + m6502_device(mconfig, DECO_CPU7, tag, owner, clock) { } diff --git a/src/mame/machine/decocpu7.h b/src/mame/machine/decocpu7.h index 18d1510bcb9..4f854816f21 100644 --- a/src/mame/machine/decocpu7.h +++ b/src/mame/machine/decocpu7.h @@ -1,5 +1,9 @@ // license:BSD-3-Clause // copyright-holders:David Haywood +#ifndef MAME_MACHINE_DECOCPU7_H +#define MAME_MACHINE_DECOCPU7_H + +#pragma once #include "cpu/m6502/m6502.h" @@ -22,4 +26,6 @@ protected: }; -extern const device_type DECO_CPU7; +DECLARE_DEVICE_TYPE(DECO_CPU7, deco_cpu7_device) + +#endif // MAME_MACHINE_DECOCPU7_H diff --git a/src/mame/machine/decopincpu.cpp b/src/mame/machine/decopincpu.cpp index 38082be8ad4..4f9424cdc84 100644 --- a/src/mame/machine/decopincpu.cpp +++ b/src/mame/machine/decopincpu.cpp @@ -16,10 +16,10 @@ #include "emu.h" #include "decopincpu.h" -const device_type DECOCPU1 = device_creator; -const device_type DECOCPU2 = device_creator; -const device_type DECOCPU3 = device_creator; -const device_type DECOCPU3B = device_creator; +DEFINE_DEVICE_TYPE(DECOCPU1, decocpu_type1_device, "decocpu1", "Data East Pinball CPU Board Type 1") +DEFINE_DEVICE_TYPE(DECOCPU2, decocpu_type2_device, "decocpu2", "Data East Pinball CPU Board Type 2") +DEFINE_DEVICE_TYPE(DECOCPU3, decocpu_type3_device, "decocpu3", "Data East Pinball CPU Board Type 3") +DEFINE_DEVICE_TYPE(DECOCPU3B, decocpu_type3b_device, "decocpu3b", "Data East Pinball CPU Board Type 3B") static ADDRESS_MAP_START( decocpu1_map, AS_PROGRAM, 8, decocpu_type1_device ) AM_RANGE(0x0000, 0x07ff) AM_RAM AM_SHARE("nvram") @@ -264,26 +264,11 @@ ioport_constructor decocpu_type1_device::device_input_ports() const } decocpu_type1_device::decocpu_type1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, DECOCPU1, "Data East Pinball CPU Board Type 1", tag, owner, clock, "decocpu1", __FILE__), - m_cpu(*this,"maincpu"), - m_pia21(*this, "pia21"), - m_pia24(*this, "pia24"), - m_pia28(*this, "pia28"), - m_pia2c(*this, "pia2c"), - m_pia30(*this, "pia30"), - m_pia34(*this, "pia34"), - m_read_display(*this), - m_write_display(*this), - m_read_dmdstatus(*this), - m_write_soundlatch(*this), - m_read_switch(*this), - m_write_switch(*this), - m_write_lamp(*this), - m_write_solenoid(*this) + : decocpu_type1_device(mconfig, DECOCPU1, tag, owner, clock) {} -decocpu_type1_device::decocpu_type1_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), +decocpu_type1_device::decocpu_type1_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock), m_cpu(*this,"maincpu"), m_pia21(*this, "pia21"), m_pia24(*this, "pia24"), @@ -329,11 +314,11 @@ void decocpu_type1_device::static_set_cpuregion(device_t &device, const char *ta } decocpu_type2_device::decocpu_type2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : decocpu_type1_device(mconfig, DECOCPU2, "Data East Pinball CPU Board Type 2", tag, owner, clock, "decocpu2", __FILE__) + : decocpu_type2_device(mconfig, DECOCPU2, tag, owner, clock) {} -decocpu_type2_device::decocpu_type2_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : decocpu_type1_device(mconfig, type, name, tag, owner, clock, shortname, source) +decocpu_type2_device::decocpu_type2_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : decocpu_type1_device(mconfig, type, tag, owner, clock) {} machine_config_constructor decocpu_type2_device::device_mconfig_additions() const @@ -347,11 +332,11 @@ void decocpu_type2_device::device_start() } decocpu_type3_device::decocpu_type3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : decocpu_type2_device(mconfig, DECOCPU3, "Data East Pinball CPU Board Type 3", tag, owner, clock, "decocpu3", __FILE__) + : decocpu_type3_device(mconfig, DECOCPU3, tag, owner, clock) {} -decocpu_type3_device::decocpu_type3_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : decocpu_type2_device(mconfig, type, name, tag, owner, clock, shortname, source) +decocpu_type3_device::decocpu_type3_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : decocpu_type2_device(mconfig, type, tag, owner, clock) {} void decocpu_type3_device::device_start() @@ -360,7 +345,7 @@ void decocpu_type3_device::device_start() } decocpu_type3b_device::decocpu_type3b_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : decocpu_type3_device(mconfig, DECOCPU3B, "Data East Pinball CPU Board Type 3B", tag, owner, clock, "decocpu3b", __FILE__) + : decocpu_type3_device(mconfig, DECOCPU3B, tag, owner, clock) {} void decocpu_type3b_device::device_start() diff --git a/src/mame/machine/decopincpu.h b/src/mame/machine/decopincpu.h index 73385b3ea99..cb40d0b26f9 100644 --- a/src/mame/machine/decopincpu.h +++ b/src/mame/machine/decopincpu.h @@ -6,8 +6,10 @@ * Created on: 10/07/2013 */ -#ifndef DECOPINCPU_H_ -#define DECOPINCPU_H_ +#ifndef MAME_MACHINE_DECOPINCPU_H +#define MAME_MACHINE_DECOPINCPU_H + +#pragma once #include "cpu/m6800/m6800.h" #include "machine/6821pia.h" @@ -64,24 +66,16 @@ class decocpu_type1_device : public device_t { public: decocpu_type1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - decocpu_type1_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - required_device m_cpu; - required_device m_pia21; - required_device m_pia24; - required_device m_pia28; - required_device m_pia2c; - required_device m_pia30; - required_device m_pia34; // callbacks - template void set_display_read_callback(_disp_r disp_r) { m_read_display.set_callback(disp_r); } - template void set_display_write_callback(_disp_w disp_w) { m_write_display.set_callback(disp_w); } - template void set_dmdstatus_read_callback(_dmdstat_r dmdstat_r) { m_read_dmdstatus.set_callback(dmdstat_r); } - template void set_soundlatch_write_callback(_soundlatch_w slatch_w) { m_write_soundlatch.set_callback(slatch_w); } - template void set_switch_read_callback(_switch_r switch_r) { m_read_switch.set_callback(switch_r); } - template void set_switch_write_callback(_switch_w switch_w) { m_write_switch.set_callback(switch_w); } - template void set_lamp_write_callback(_lamp_w lamp_w) { m_write_lamp.set_callback(lamp_w); } - template void set_solenoid_write_callback(_sol_w sol_w) { m_write_solenoid.set_callback(sol_w); } + template void set_display_read_callback(Object &&cb) { m_read_display.set_callback(std::forward(cb)); } + template void set_display_write_callback(Object &&cb) { m_write_display.set_callback(std::forward(cb)); } + template void set_dmdstatus_read_callback(Object &&cb) { m_read_dmdstatus.set_callback(std::forward(cb)); } + template void set_soundlatch_write_callback(Object &&cb) { m_write_soundlatch.set_callback(std::forward(cb)); } + template void set_switch_read_callback(Object &&cb) { m_read_switch.set_callback(std::forward(cb)); } + template void set_switch_write_callback(Object &&cb) { m_write_switch.set_callback(std::forward(cb)); } + template void set_lamp_write_callback(Object &&cb) { m_write_lamp.set_callback(std::forward(cb)); } + template void set_solenoid_write_callback(Object &&cb) { m_write_solenoid.set_callback(std::forward(cb)); } DECLARE_WRITE_LINE_MEMBER(cpu_pia_irq); DECLARE_WRITE_LINE_MEMBER(pia21_ca2_w); @@ -106,12 +100,23 @@ public: static void static_set_cpuregion(device_t &device, const char *tag); protected: + static constexpr device_timer_id TIMER_IRQ = 0; + + decocpu_type1_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // overrides virtual machine_config_constructor device_mconfig_additions() const override; virtual void device_start() override; virtual ioport_constructor device_input_ports() const override; virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; - static const device_timer_id TIMER_IRQ = 0; + + required_device m_cpu; + required_device m_pia21; + required_device m_pia24; + required_device m_pia28; + required_device m_pia2c; + required_device m_pia30; + required_device m_pia34; private: const char* m_cputag; // region for cpu board code and data @@ -134,8 +139,10 @@ class decocpu_type2_device : public decocpu_type1_device { public: decocpu_type2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - decocpu_type2_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); + protected: + decocpu_type2_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // overrides virtual machine_config_constructor device_mconfig_additions() const override; virtual void device_start() override; @@ -145,9 +152,10 @@ class decocpu_type3_device : public decocpu_type2_device { public: decocpu_type3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - decocpu_type3_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); protected: + decocpu_type3_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // overrides virtual void device_start() override; }; @@ -162,9 +170,9 @@ protected: virtual void device_start() override; }; -extern const device_type DECOCPU1; -extern const device_type DECOCPU2; -extern const device_type DECOCPU3; -extern const device_type DECOCPU3B; +DECLARE_DEVICE_TYPE(DECOCPU1, decocpu_type1_device) +DECLARE_DEVICE_TYPE(DECOCPU2, decocpu_type2_device) +DECLARE_DEVICE_TYPE(DECOCPU3, decocpu_type3_device) +DECLARE_DEVICE_TYPE(DECOCPU3B, decocpu_type3b_device) -#endif /* DECOPINCPU_H_ */ +#endif // MAME_MACHINE_DECOPINCPU_H diff --git a/src/mame/machine/dmv_keyb.cpp b/src/mame/machine/dmv_keyb.cpp index bbec3fa8def..f4fca72fc18 100644 --- a/src/mame/machine/dmv_keyb.cpp +++ b/src/mame/machine/dmv_keyb.cpp @@ -14,7 +14,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type DMV_KEYBOARD = device_creator; +DEFINE_DEVICE_TYPE(DMV_KEYBOARD, dmv_keyboard_device, "dmv_keyboard", "Decision Mate V Keyboard") //*************************************************************************** @@ -205,7 +205,7 @@ ioport_constructor dmv_keyboard_device::device_input_ports() const //------------------------------------------------- dmv_keyboard_device::dmv_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, DMV_KEYBOARD, "Decision Mate V Keyboard", tag, owner, clock, "dmv_keyboard", __FILE__) + : device_t(mconfig, DMV_KEYBOARD, tag, owner, clock) , m_maincpu(*this, "mcu") , m_keyboard(*this, "COL.%u", 0) { diff --git a/src/mame/machine/dmv_keyb.h b/src/mame/machine/dmv_keyb.h index 77317be417a..6411b39ed1b 100644 --- a/src/mame/machine/dmv_keyb.h +++ b/src/mame/machine/dmv_keyb.h @@ -6,10 +6,10 @@ *********************************************************************/ -#pragma once +#ifndef MAME_MACHINE_DMV_KEYB_H +#define MAME_MACHINE_DMV_KEYB_H -#ifndef __DMV_KEYBOARD__ -#define __DMV_KEYBOARD__ +#pragma once #include "cpu/mcs48/mcs48.h" @@ -49,7 +49,6 @@ public: protected: // device-level overrides - virtual void device_config_complete() override { m_shortname = "dmv_keyb"; } virtual void device_start() override; virtual void device_reset() override; @@ -64,7 +63,7 @@ private: // device type definition -extern const device_type DMV_KEYBOARD; +DECLARE_DEVICE_TYPE(DMV_KEYBOARD, dmv_keyboard_device) -#endif +#endif // MAME_MACHINE_DMV_KEYB_H diff --git a/src/mame/machine/docg3.cpp b/src/mame/machine/docg3.cpp index d6ef4bdca30..717a3178734 100644 --- a/src/mame/machine/docg3.cpp +++ b/src/mame/machine/docg3.cpp @@ -32,15 +32,15 @@ static inline void ATTR_PRINTF(3,4) verboselog( device_t &device, int n_level, c ***************************************************************************/ // device type definition -const device_type DISKONCHIP_G3 = device_creator; +DEFINE_DEVICE_TYPE(DISKONCHIP_G3, diskonchip_g3_device, "diskonchip_g3", "DiskOnChip G3") //------------------------------------------------- // diskonchip_g3_device - constructor //------------------------------------------------- diskonchip_g3_device::diskonchip_g3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, DISKONCHIP_G3, "DiskOnChip G3", tag, owner, clock, "diskonchip_g3", __FILE__), - device_nvram_interface(mconfig, *this) + : device_t(mconfig, DISKONCHIP_G3, tag, owner, clock) + , device_nvram_interface(mconfig, *this) { } diff --git a/src/mame/machine/docg3.h b/src/mame/machine/docg3.h index 76346933d1e..d7e328caec2 100644 --- a/src/mame/machine/docg3.h +++ b/src/mame/machine/docg3.h @@ -8,17 +8,18 @@ */ -#ifndef __DOCG3_H__ -#define __DOCG3_H__ +#ifndef MAME_MACHINE_DOCG3_H +#define MAME_MACHINE_DOCG3_H + +#pragma once #define MCFG_DISKONCHIP_G3_ADD(_tag, _size) \ MCFG_DEVICE_ADD(_tag, DISKONCHIP_G3, 0) \ - static_cast(device)->set_size(_size); + downcast(device)->set_size(_size); // ======================> diskonchip_g3_device -class diskonchip_g3_device : public device_t, - public device_nvram_interface +class diskonchip_g3_device : public device_t, public device_nvram_interface { public: // construction/destruction @@ -98,6 +99,6 @@ private: }; // device type definition -extern const device_type DISKONCHIP_G3; +DECLARE_DEVICE_TYPE(DISKONCHIP_G3, diskonchip_g3_device) -#endif /* __DOCG3_H__ */ +#endif // MAME_MACHINE_DOCG3_H diff --git a/src/mame/machine/egret.cpp b/src/mame/machine/egret.cpp index 4ca3dd6fb3e..35852a1c8ef 100644 --- a/src/mame/machine/egret.cpp +++ b/src/mame/machine/egret.cpp @@ -53,7 +53,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type EGRET = device_creator; +DEFINE_DEVICE_TYPE(EGRET, egret_device, "egret", "Apple Egret") ROM_START( egret ) ROM_REGION(0x4400, EGRET_CPU_TAG, 0) @@ -334,7 +334,7 @@ WRITE8_MEMBER( egret_device::pram_w ) //------------------------------------------------- egret_device::egret_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, EGRET, "Apple Egret", tag, owner, clock, "egret", __FILE__), + : device_t(mconfig, EGRET, tag, owner, clock), device_nvram_interface(mconfig, *this), write_reset(*this), write_linechange(*this), diff --git a/src/mame/machine/egret.h b/src/mame/machine/egret.h index 04f461fa5f3..742c3e47929 100644 --- a/src/mame/machine/egret.h +++ b/src/mame/machine/egret.h @@ -1,10 +1,9 @@ // license:BSD-3-Clause // copyright-holders:R. Belmont -#pragma once - -#ifndef __EGRET_H__ -#define __EGRET_H__ +#ifndef MAME_MACHINE_EGRET_H +#define MAME_MACHINE_EGRET_H +#pragma once @@ -134,6 +133,6 @@ private: }; // device type definition -extern const device_type EGRET; +DECLARE_DEVICE_TYPE(EGRET, egret_device) -#endif +#endif // MAME_MACHINE_EGRET_H diff --git a/src/mame/machine/einstein.cpp b/src/mame/machine/einstein.cpp index d9145ab2509..9e2c31d8074 100644 --- a/src/mame/machine/einstein.cpp +++ b/src/mame/machine/einstein.cpp @@ -15,7 +15,7 @@ ****************************************************************/ -const device_type EINSTEIN_KEYBOARD_DAISY = device_creator; +DEFINE_DEVICE_TYPE(EINSTEIN_KEYBOARD_DAISY, einstein_keyboard_daisy_device, "einstein_keyboard", "Einstein keyboard daisy chain") //************************************************************************** @@ -27,8 +27,8 @@ const device_type EINSTEIN_KEYBOARD_DAISY = device_creator; +DEFINE_DEVICE_TYPE(EINSTEIN_ADC_DAISY, einstein_adc_daisy_device, "einstein_adc", "Einstein ADC daisy chain") //************************************************************************** // LIVE DEVICE @@ -90,8 +90,8 @@ const device_type EINSTEIN_ADC_DAISY = device_creator //------------------------------------------------- einstein_adc_daisy_device::einstein_adc_daisy_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, EINSTEIN_ADC_DAISY, "Einstein ADC daisy chain", tag, owner, clock, "einstein_adc_daisy", __FILE__), - device_z80daisy_interface(mconfig, *this) + : device_t(mconfig, EINSTEIN_ADC_DAISY, tag, owner, clock) + , device_z80daisy_interface(mconfig, *this) { } @@ -143,7 +143,7 @@ void einstein_adc_daisy_device::z80daisy_irq_reti() } -const device_type EINSTEIN_FIRE_DAISY = device_creator; +DEFINE_DEVICE_TYPE(EINSTEIN_FIRE_DAISY, einstein_fire_daisy_device, "einstein_fire", "Einstein fire button daisy chain") //************************************************************************** @@ -155,8 +155,8 @@ const device_type EINSTEIN_FIRE_DAISY = device_creator; +DEFINE_DEVICE_TYPE(ESQ2X16_SQ1, esq2x16_sq1_device, "esq2x16_sq1", "Ensoniq 2x16 VFD (SQ-1 variant)") // --- SQ1 - Parduz -------------------------------------------------------------------------------------------------------------------------- static MACHINE_CONFIG_FRAGMENT(esq2x16) @@ -32,7 +32,7 @@ MACHINE_CONFIG_END //***************************************************************************** // standard ascii 5x7 font // defines ascii characters 0x20-0x7F (32-127) -static unsigned char Font5x7[][5] = { +static unsigned char const Font5x7[][5] = { {0x00, 0x00, 0x08, 0x00, 0x00}, // _Undef_ 0x00 - dots for debug purposes {0x01, 0x00, 0x00, 0x00, 0x40}, // _Undef_ 0x01 - dots for debug purposes {0x02, 0x00, 0x00, 0x00, 0x00}, // _Undef_ 0x02 @@ -163,12 +163,12 @@ static unsigned char Font5x7[][5] = { {0x08, 0x1C, 0x2A, 0x08, 0x08} // <- 0x7F }; //-------------------------------------------------------------------------------------------------------------------------------------------- -machine_config_constructor esq2x16_sq1_t::device_mconfig_additions() const +machine_config_constructor esq2x16_sq1_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( esq2x16 ); } //-------------------------------------------------------------------------------------------------------------------------------------------- -void esq2x16_sq1_t::write_char(int data) +void esq2x16_sq1_device::write_char(int data) { int DisplayCode = data; int LedState; @@ -183,7 +183,7 @@ void esq2x16_sq1_t::write_char(int data) ) data = '^'; // musical notes // Resolve here 2-Bytes commands: the command was saved previously - switch (m_LcdCommand) { + switch (m_lcd_command) { case 0: // No current command. break; @@ -191,30 +191,30 @@ void esq2x16_sq1_t::write_char(int data) case 0x87: // Go To #ifdef VERBOSE - printf("LCD %02X: Go To %02X - pos=%02X (%d)\n", m_LcdCommand, DisplayCode, m_lcdPos, m_lcdPage); + printf("LCD %02X: Go To %02X - pos=%02X (%d)\n", m_lcd_command, DisplayCode, m_lcdPos, m_lcdPage); #endif m_lcdPos = DisplayCode; - m_LcdCommand = 0; + m_lcd_command = 0; return; break; case 0x88: // Save Cursor position - What the second byte (00 or 01) means? #ifdef VERBOSE - printf("LCD %02X: Save Pos. (%02X) - pos=%02X (%d)\n", m_LcdCommand, DisplayCode, m_lcdPos, m_lcdPage); + printf("LCD %02X: Save Pos. (%02X) - pos=%02X (%d)\n", m_lcd_command, DisplayCode, m_lcdPos, m_lcdPage); #endif m_lcdSavedPos = m_lcdPos; - m_LcdCommand = 0; + m_lcd_command = 0; return; break; case 0x89: // Restore Cursor position - What the second byte (00 or 01) means? #ifdef VERBOSE - printf("LCD %02X: Restore Pos. (%02X) - pos=%02X (%d)\n", m_LcdCommand, DisplayCode, m_lcdPos, m_lcdPage); + printf("LCD %02X: Restore Pos. (%02X) - pos=%02X (%d)\n", m_lcd_command, DisplayCode, m_lcdPos, m_lcdPage); #endif m_lcdPos = m_lcdSavedPos; - m_LcdCommand = 0; + m_lcd_command = 0; return; break; @@ -222,7 +222,7 @@ void esq2x16_sq1_t::write_char(int data) case 0x8E: case 0x8F: // LED OFF, ON, BLINK - LedState = m_LcdCommand & 0x03; + LedState = m_lcd_command & 0x03; if ( DisplayCode >= 16 || // Out of bounds DisplayCode == 6 || // non-existent @@ -232,7 +232,7 @@ void esq2x16_sq1_t::write_char(int data) ) { #ifdef VERBOSE - printf("LCD %02X: Led %02d does'nt exist - pos=%02X (%d)\n", m_LcdCommand, DisplayCode, m_lcdPos, m_lcdPage); + printf("LCD %02X: Led %02d does'nt exist - pos=%02X (%d)\n", m_lcd_command, DisplayCode, m_lcdPos, m_lcdPage); #endif } else @@ -244,15 +244,15 @@ void esq2x16_sq1_t::write_char(int data) } update_display(); } - m_LcdCommand = 0; + m_lcd_command = 0; return; break; default: #ifdef VERBOSE - printf("LCD: Unknown 2-Bytes Command:%02X-%02X - pos=%02X (%d)\n", m_LcdCommand, DisplayCode, m_lcdPos, m_lcdPage); + printf("LCD: Unknown 2-Bytes Command:%02X-%02X - pos=%02X (%d)\n", m_lcd_command, DisplayCode, m_lcdPos, m_lcdPage); #endif - m_LcdCommand = 0; + m_lcd_command = 0; return; break; } @@ -277,7 +277,7 @@ void esq2x16_sq1_t::write_char(int data) case 0x88: // Save Cursor Position case 0x89: // Restore Cursor Position // Save the command for the next byte - m_LcdCommand = DisplayCode; + m_lcd_command = DisplayCode; return; break; @@ -286,7 +286,7 @@ void esq2x16_sq1_t::write_char(int data) case 0x86: case 0x95: // ??? - related to blinking chars? - 2 bytes command - m_LcdCommand = DisplayCode; + m_lcd_command = DisplayCode; return; break; @@ -294,7 +294,7 @@ void esq2x16_sq1_t::write_char(int data) case 0x8E: case 0x8F: // LEDs OFF,ON and BLINK - 2 bytes command - m_LcdCommand = DisplayCode; + m_lcd_command = DisplayCode; return; break; @@ -306,7 +306,7 @@ void esq2x16_sq1_t::write_char(int data) #ifdef VERBOSE printf("LCD %02X: Page Change ? - pos=%02X (%d)\n", DisplayCode, m_lcdPos, m_lcdPage); #endif - m_LcdCommand = 0; + m_lcd_command = 0; return; break; @@ -329,7 +329,7 @@ void esq2x16_sq1_t::write_char(int data) #ifdef VERBOSE printf("LCD %02X: Unknown Command - pos=%02X (%d)\n", DisplayCode, m_lcdPos, m_lcdPage); #endif - m_LcdCommand = 0; + m_lcd_command = 0; return; break; } @@ -342,13 +342,13 @@ void esq2x16_sq1_t::write_char(int data) #endif } //-------------------------------------------------------------------------------------------------------------------------------------------- -esq2x16_sq1_t::esq2x16_sq1_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : esqvfd_t(mconfig, ESQ2x16_SQ1, "Ensoniq 2x16 VFD (SQ-1 variant)", tag, owner, clock, "esq2x16_sq1", __FILE__) +esq2x16_sq1_device::esq2x16_sq1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : esqvfd_device(mconfig, ESQ2X16_SQ1, tag, owner, clock) { m_rows = 2; m_cols = 16; } //-------------------------------------------------------------------------------------------------------------------------------------------- -void esq2x16_sq1_t::update_display() +void esq2x16_sq1_device::update_display() { char lcdCharRow; @@ -366,35 +366,35 @@ void esq2x16_sq1_t::update_display() { // stealed from tecnbras.cpp and modified for (int rr=0; rr<7; rr++) { - lcdCharRow = RotateLcdChar(m_lcdpg[page][pos],rr); + lcdCharRow = rotate_lcd_char(m_lcdpg[page][pos],rr); machine().output().set_indexed_value("pg_", (page+1)*1000 + pos*7 + rr, 0x1F & lcdCharRow); } } } } //-------------------------------------------------------------------------------------------------------------------------------------------- -void esq2x16_sq1_t::device_reset() +void esq2x16_sq1_device::device_reset() { //lcd_reset(); - m_lcdPage = m_lcdSavedPos = m_lcdPos = m_LcdCommand = 0; + m_lcdPage = m_lcdSavedPos = m_lcdPos = m_lcd_command = 0; memset(m_leds, 0, sizeof(m_leds)); memset(m_lcdpg, 1, sizeof(m_lcdpg)); // Set to 1 for debug: to see what "pages" are set to 0 from the firmware } //-------------------------------------------------------------------------------------------------------------------------------------------- -void esq2x16_sq1_t::lcd_reset() +void esq2x16_sq1_device::lcd_reset() { - m_lcdPage = m_lcdSavedPos = m_lcdPos = m_LcdCommand = 0; + m_lcdPage = m_lcdSavedPos = m_lcdPos = m_lcd_command = 0; memset(m_leds, 0, sizeof(m_leds)); memset(m_lcdpg, 0, sizeof(m_lcdpg)); } //-------------------------------------------------------------------------------------------------------------------------------------------- -void esq2x16_sq1_t::page_reset() +void esq2x16_sq1_device::page_reset() { memset(m_lcdpg[m_lcdPage], 0, 32); - m_lcdPos = m_LcdCommand = 0; + m_lcdPos = m_lcd_command = 0; } //-------------------------------------------------------------------------------------------------------------------------------------------- -char esq2x16_sq1_t::RotateLcdChar(uint8_t lcdChar, int charRow) +char esq2x16_sq1_device::rotate_lcd_char(uint8_t lcdChar, int charRow) { char lcdCharRow = 0; for (int cc=0; cc<5; cc++){ diff --git a/src/mame/machine/esqlcd.h b/src/mame/machine/esqlcd.h index cb474cd6b8f..967c64af07f 100644 --- a/src/mame/machine/esqlcd.h +++ b/src/mame/machine/esqlcd.h @@ -1,33 +1,32 @@ // license:BSD-3-Clause // copyright-holders:R. Belmont, Parduz -#ifndef ESQLCD_H -#define ESQLCD_H +#ifndef MAME_MACHINE_ESQLCD_H +#define MAME_MACHINE_ESQLCD_H + +#pragma once #include "esqvfd.h" // --- SQ1 - Parduz -------------------------------------------------------------------------------------------------------------------------- -#define MCFG_ESQ2x16_SQ1_ADD(_tag) \ - MCFG_DEVICE_ADD(_tag, ESQ2x16_SQ1, 60) +#define MCFG_ESQ2X16_SQ1_ADD(_tag) \ + MCFG_DEVICE_ADD(_tag, ESQ2X16_SQ1, 60) -#define MCFG_ESQ2x16_SQ1_REMOVE(_tag) \ +#define MCFG_ESQ2X16_SQ1_REMOVE(_tag) \ MCFG_DEVICE_REMOVE(_tag) -class esq2x16_sq1_t : public esqvfd_t { +class esq2x16_sq1_device : public esqvfd_device { public: - esq2x16_sq1_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + esq2x16_sq1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual void write_char(int data) override; virtual void update_display() override; - virtual void device_reset() override; - - void lcd_reset(); - void page_reset(); - char RotateLcdChar(uint8_t lcdChar, int charRow); protected: virtual machine_config_constructor device_mconfig_additions() const override; + virtual void device_reset() override; + uint8_t m_lcdpg[4][32]; int m_lcdPage; int m_lcdPos,m_lcdSavedPos; @@ -36,9 +35,14 @@ protected: uint8_t m_ledsDirty[16]; private: - int m_LcdCommand; + void lcd_reset(); + void page_reset(); + + static char rotate_lcd_char(uint8_t lcdChar, int charRow); + + int m_lcd_command; }; -extern const device_type ESQ2x16_SQ1; +DECLARE_DEVICE_TYPE(ESQ2X16_SQ1, esq2x16_sq1_device) -#endif +#endif // MAME_MACHINE_ESQLCD_H diff --git a/src/mame/machine/esqpanel.cpp b/src/mame/machine/esqpanel.cpp index e0bdfc823b5..fe73622a722 100644 --- a/src/mame/machine/esqpanel.cpp +++ b/src/mame/machine/esqpanel.cpp @@ -14,9 +14,9 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type ESQPANEL1x22 = device_creator; -const device_type ESQPANEL2x40 = device_creator; -const device_type ESQPANEL2x16_SQ1 = device_creator; +DEFINE_DEVICE_TYPE(ESQPANEL1X22, esqpanel1x22_device, "esqpanel122", "Ensoniq front panel with 1x22 VFD") +DEFINE_DEVICE_TYPE(ESQPANEL2X40, esqpanel2x40_device, "esqpanel240", "Ensoniq front panel with 2x40 VFD") +DEFINE_DEVICE_TYPE(ESQPANEL2X16_SQ1, esqpanel2x16_sq1_device, "esqpanel216_sq1", "Ensoniq front panel with 2x16 LCD") //************************************************************************** // LIVE DEVICE @@ -26,8 +26,8 @@ const device_type ESQPANEL2x16_SQ1 = device_creator; // esqpanel_device - constructor //------------------------------------------------- -esqpanel_device::esqpanel_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), +esqpanel_device::esqpanel_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), device_serial_interface(mconfig, *this), m_write_tx(*this), m_write_analog(*this) @@ -201,7 +201,7 @@ void esqpanel_device::set_analog_value(offs_t offset, uint16_t value) /* panel with 1x22 VFD display used in the EPS-16 and EPS-16 Plus */ static MACHINE_CONFIG_FRAGMENT(esqpanel1x22) - MCFG_ESQ1x22_ADD("vfd") + MCFG_ESQ1X22_ADD("vfd") MACHINE_CONFIG_END machine_config_constructor esqpanel1x22_device::device_mconfig_additions() const @@ -210,7 +210,7 @@ machine_config_constructor esqpanel1x22_device::device_mconfig_additions() const } esqpanel1x22_device::esqpanel1x22_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - esqpanel_device(mconfig, ESQPANEL1x22, "Ensoniq front panel with 1x22 VFD", tag, owner, clock, "esqpanel122", __FILE__), + esqpanel_device(mconfig, ESQPANEL1X22, tag, owner, clock), m_vfd(*this, "vfd") { m_eps_mode = true; @@ -219,7 +219,7 @@ esqpanel1x22_device::esqpanel1x22_device(const machine_config &mconfig, const ch /* panel with 2x40 VFD display used in the ESQ-1, VFX-SD, SD-1, and others */ static MACHINE_CONFIG_FRAGMENT(esqpanel2x40) - MCFG_ESQ2x40_ADD("vfd") + MCFG_ESQ2X40_ADD("vfd") MACHINE_CONFIG_END machine_config_constructor esqpanel2x40_device::device_mconfig_additions() const @@ -228,7 +228,7 @@ machine_config_constructor esqpanel2x40_device::device_mconfig_additions() const } esqpanel2x40_device::esqpanel2x40_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - esqpanel_device(mconfig, ESQPANEL2x40, "Ensoniq front panel with 2x40 VFD", tag, owner, clock, "esqpanel240", __FILE__), + esqpanel_device(mconfig, ESQPANEL2X40, tag, owner, clock), m_vfd(*this, "vfd") { m_eps_mode = false; @@ -236,7 +236,7 @@ esqpanel2x40_device::esqpanel2x40_device(const machine_config &mconfig, const ch // --- SQ1 - Parduz -------------------------------------------------------------------------------------------------------------------------- static MACHINE_CONFIG_FRAGMENT(esqpanel2x16_sq1) - MCFG_ESQ2x16_SQ1_ADD("vfd") + MCFG_ESQ2X16_SQ1_ADD("vfd") MACHINE_CONFIG_END // --- SQ1 - Parduz -------------------------------------------------------------------------------------------------------------------------- machine_config_constructor esqpanel2x16_sq1_device::device_mconfig_additions() const @@ -245,7 +245,7 @@ machine_config_constructor esqpanel2x16_sq1_device::device_mconfig_additions() c } // --- SQ1 - Parduz -------------------------------------------------------------------------------------------------------------------------- esqpanel2x16_sq1_device::esqpanel2x16_sq1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - esqpanel_device(mconfig, ESQPANEL2x16_SQ1, "Ensoniq front panel with 2x16 LCD", tag, owner, clock, "esqpanel216_sq1", __FILE__), + esqpanel_device(mconfig, ESQPANEL2X16_SQ1, tag, owner, clock), m_vfd(*this, "vfd") { m_eps_mode = false; diff --git a/src/mame/machine/esqpanel.h b/src/mame/machine/esqpanel.h index f92ad91d501..2a2352507a4 100644 --- a/src/mame/machine/esqpanel.h +++ b/src/mame/machine/esqpanel.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:R. Belmont -#pragma once +#ifndef MAME_MACHINE_ESQPANEL_H +#define MAME_MACHINE_ESQPANEL_H -#ifndef __ESQPANEL_H__ -#define __ESQPANEL_H__ +#pragma once #include "machine/esqvfd.h" #include "machine/esqlcd.h" @@ -12,31 +12,31 @@ // INTERFACE CONFIGURATION MACROS //************************************************************************** -#define MCFG_ESQPANEL1x22_ADD(_tag) \ - MCFG_DEVICE_ADD(_tag, ESQPANEL1x22, 0) +#define MCFG_ESQPANEL1X22_ADD(_tag) \ + MCFG_DEVICE_ADD(_tag, ESQPANEL1X22, 0) -#define MCFG_ESQPANEL1x22_REPLACE(_tag) \ - MCFG_DEVICE_REPLACE(_tag, ESQPANEL1x22, 0) +#define MCFG_ESQPANEL1X22_REPLACE(_tag) \ + MCFG_DEVICE_REPLACE(_tag, ESQPANEL1X22, 0) -#define MCFG_ESQPANEL1x22_REMOVE(_tag) \ +#define MCFG_ESQPANEL1X22_REMOVE(_tag) \ MCFG_DEVICE_REMOVE(_tag) -#define MCFG_ESQPANEL2x40_ADD(_tag) \ - MCFG_DEVICE_ADD(_tag, ESQPANEL2x40, 0) +#define MCFG_ESQPANEL2X40_ADD(_tag) \ + MCFG_DEVICE_ADD(_tag, ESQPANEL2X40, 0) -#define MCFG_ESQPANEL2x40_REPLACE(_tag) \ - MCFG_DEVICE_REPLACE(_tag, ESQPANEL2x40, 0) +#define MCFG_ESQPANEL2X40_REPLACE(_tag) \ + MCFG_DEVICE_REPLACE(_tag, ESQPANEL2X40, 0) -#define MCFG_ESQPANEL_2x40_REMOVE(_tag) \ +#define MCFG_ESQPANEL_2X40_REMOVE(_tag) \ MCFG_DEVICE_REMOVE(_tag) -#define MCFG_ESQPANEL2x16_SQ1_ADD(_tag) \ - MCFG_DEVICE_ADD(_tag, ESQPANEL2x16_SQ1, 0) +#define MCFG_ESQPANEL2X16_SQ1_ADD(_tag) \ + MCFG_DEVICE_ADD(_tag, ESQPANEL2X16_SQ1, 0) -#define MCFG_ESQPANEL2x16_SQ1_REPLACE(_tag) \ - MCFG_DEVICE_REPLACE(_tag, ESQPANEL2x16_SQ1, 0) +#define MCFG_ESQPANEL2X16_SQ1_REPLACE(_tag) \ + MCFG_DEVICE_REPLACE(_tag, ESQPANEL2X16_SQ1, 0) -#define MCFG_ESQPANEL2x16_SQ1_REMOVE(_tag) \ +#define MCFG_ESQPANEL2X16_SQ1_REMOVE(_tag) \ MCFG_DEVICE_REMOVE(_tag) #define MCFG_ESQPANEL_TX_CALLBACK(_write) \ @@ -51,21 +51,19 @@ // ======================> esqpanel_device -class esqpanel_device : public device_t, public device_serial_interface +class esqpanel_device : public device_t, public device_serial_interface { public: - // construction/destruction - esqpanel_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - - template static devcb_base &set_tx_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_tx.set_callback(object); } - template static devcb_base &set_analog_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_analog.set_callback(object); } - - virtual void send_to_display(uint8_t data) = 0; + template static devcb_base &set_tx_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_tx.set_callback(std::forward(cb)); } + template static devcb_base &set_analog_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_analog.set_callback(std::forward(cb)); } void xmit_char(uint8_t data); void set_analog_value(offs_t offset, uint16_t value); protected: + // construction/destruction + esqpanel_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -76,6 +74,8 @@ protected: virtual void tra_complete() override; // Tx completed sending byte virtual void tra_callback() override; // Tx send bit + virtual void send_to_display(uint8_t data) = 0; + bool m_eps_mode; private: @@ -95,42 +95,36 @@ class esqpanel1x22_device : public esqpanel_device { public: esqpanel1x22_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - required_device m_vfd; - - virtual void send_to_display(uint8_t data) override { m_vfd->write_char(data); } - protected: virtual machine_config_constructor device_mconfig_additions() const override; -private: + virtual void send_to_display(uint8_t data) override { m_vfd->write_char(data); } + + required_device m_vfd; }; class esqpanel2x40_device : public esqpanel_device { public: esqpanel2x40_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - required_device m_vfd; - - virtual void send_to_display(uint8_t data) override { m_vfd->write_char(data); } - protected: virtual machine_config_constructor device_mconfig_additions() const override; -private: + virtual void send_to_display(uint8_t data) override { m_vfd->write_char(data); } + + required_device m_vfd; }; class esqpanel2x40_sq1_device : public esqpanel_device { public: esqpanel2x40_sq1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - required_device m_vfd; - - virtual void send_to_display(uint8_t data) override { m_vfd->write_char(data); } - protected: virtual machine_config_constructor device_mconfig_additions() const override; -private: + virtual void send_to_display(uint8_t data) override { m_vfd->write_char(data); } + + required_device m_vfd; }; // --- SQ1 - Parduz -------------------------------------------------------------------------------------------------------------------------- @@ -138,18 +132,17 @@ class esqpanel2x16_sq1_device : public esqpanel_device { public: esqpanel2x16_sq1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - required_device m_vfd; - - virtual void send_to_display(uint8_t data) override { m_vfd->write_char(data); } - protected: virtual machine_config_constructor device_mconfig_additions() const override; -private: + virtual void send_to_display(uint8_t data) override { m_vfd->write_char(data); } + + required_device m_vfd; }; -extern const device_type ESQPANEL1x22; -extern const device_type ESQPANEL2x40; -extern const device_type ESQPANEL2x16_SQ1; +DECLARE_DEVICE_TYPE(ESQPANEL1X22, esqpanel1x22_device) +DECLARE_DEVICE_TYPE(ESQPANEL2X40, esqpanel2x40_device) +DECLARE_DEVICE_TYPE(ESQPANEL2X40_SQ1, esqpanel2x40_sq1_device) +DECLARE_DEVICE_TYPE(ESQPANEL2X16_SQ1, esqpanel2x16_sq1_device) -#endif +#endif // MAME_MACHINE_ESQPANEL_H diff --git a/src/mame/machine/esqvfd.cpp b/src/mame/machine/esqvfd.cpp index 81a7400b223..06b8a4b3073 100644 --- a/src/mame/machine/esqvfd.cpp +++ b/src/mame/machine/esqvfd.cpp @@ -7,12 +7,13 @@ #include "emu.h" #include "esqvfd.h" + #include "esq1by22.lh" #include "esq2by40.lh" -const device_type ESQ1x22 = device_creator; -const device_type ESQ2x40 = device_creator; -const device_type ESQ2x40_SQ1 = device_creator; +DEFINE_DEVICE_TYPE(ESQ1X22, esq1x22_device, "esq1x22", "Ensoniq 1x22 VFD") +DEFINE_DEVICE_TYPE(ESQ2X40, esq2x40_device, "esq2x40", "Ensoniq 2x40 VFD") +DEFINE_DEVICE_TYPE(ESQ2X40_SQ1, esq2x40_sq1_device, "esq2x40_sq1", "Ensoniq 2x40 VFD (SQ-1 variant)") // adapted from bfm_bd1, rearranged to work with ASCII data used by the Ensoniq h/w static const uint16_t font[]= @@ -115,16 +116,16 @@ static const uint16_t font[]= 0x0000, // 0000 0000 0000 0000 (DEL) }; -esqvfd_t::esqvfd_t(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source) +esqvfd_device::esqvfd_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock) { } -void esqvfd_t::device_start() +void esqvfd_device::device_start() { } -void esqvfd_t::device_reset() +void esqvfd_device::device_reset() { m_cursx = m_cursy = 0; m_savedx = m_savedy = 0; @@ -135,12 +136,12 @@ void esqvfd_t::device_reset() memset(m_dirty, 1, sizeof(m_attrs)); } -void esqvfd_t::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) +void esqvfd_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) { } // why isn't the font just stored in this order? -uint32_t esqvfd_t::conv_segments(uint16_t segin) +uint32_t esqvfd_device::conv_segments(uint16_t segin) { uint32_t segout = 0; @@ -164,7 +165,7 @@ uint32_t esqvfd_t::conv_segments(uint16_t segin) } // generic display update; can override from child classes if not good enough -void esqvfd_t::update_display() +void esqvfd_device::update_display() { for (int row = 0; row < m_rows; row++) { @@ -194,12 +195,12 @@ static MACHINE_CONFIG_FRAGMENT(esq2x40) MCFG_DEFAULT_LAYOUT(layout_esq2by40) MACHINE_CONFIG_END -machine_config_constructor esq2x40_t::device_mconfig_additions() const +machine_config_constructor esq2x40_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( esq2x40 ); } -void esq2x40_t::write_char(int data) +void esq2x40_device::write_char(int data) { // ESQ-1 sends (cursor move) 0xfa 0xYY to mark YY characters as underlined at the current cursor location if (m_lastchar == 0xfa) @@ -282,7 +283,7 @@ void esq2x40_t::write_char(int data) update_display(); } -esq2x40_t::esq2x40_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : esqvfd_t(mconfig, ESQ2x40, "Ensoniq 2x40 VFD", tag, owner, clock, "esq2x40", __FILE__) +esq2x40_device::esq2x40_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : esqvfd_device(mconfig, ESQ2X40, tag, owner, clock) { m_rows = 2; m_cols = 40; @@ -294,12 +295,12 @@ static MACHINE_CONFIG_FRAGMENT(esq1x22) MCFG_DEFAULT_LAYOUT(layout_esq1by22) MACHINE_CONFIG_END -machine_config_constructor esq1x22_t::device_mconfig_additions() const +machine_config_constructor esq1x22_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( esq1x22 ); } -void esq1x22_t::write_char(int data) +void esq1x22_device::write_char(int data) { if (data >= 0x60) { @@ -335,34 +336,34 @@ void esq1x22_t::write_char(int data) update_display(); } -esq1x22_t::esq1x22_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : esqvfd_t(mconfig, ESQ1x22, "Ensoniq 1x22 VFD", tag, owner, clock, "esq1x22", __FILE__) +esq1x22_device::esq1x22_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : esqvfd_device(mconfig, ESQ1X22, tag, owner, clock) { m_rows = 1; m_cols = 22; } /* SQ-1 display, I think it's really an LCD but we'll deal with it for now */ -machine_config_constructor esq2x40_sq1_t::device_mconfig_additions() const +machine_config_constructor esq2x40_sq1_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( esq2x40 ); // we use the normal 2x40 layout } -void esq2x40_sq1_t::write_char(int data) +void esq2x40_sq1_device::write_char(int data) { if (data == 0x09) // musical note { data = '^'; // approximate for now } - if (m_Wait87Shift) + if (m_wait87shift) { m_cursy = (data >> 4) & 0xf; m_cursx = data & 0xf; - m_Wait87Shift = false; + m_wait87shift = false; } - else if (m_Wait88Shift) + else if (m_wait88shift) { - m_Wait88Shift = false; + m_wait88shift = false; } else if ((data >= 0x20) && (data <= 0x7f)) { @@ -387,11 +388,11 @@ void esq2x40_sq1_t::write_char(int data) } else if (data == 0x87) { - m_Wait87Shift = true; + m_wait87shift = true; } else if (data == 0x88) { - m_Wait88Shift = true; + m_wait88shift = true; } else { @@ -399,10 +400,10 @@ void esq2x40_sq1_t::write_char(int data) } } -esq2x40_sq1_t::esq2x40_sq1_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : esqvfd_t(mconfig, ESQ2x40_SQ1, "Ensoniq 2x40 VFD (SQ-1 variant)", tag, owner, clock, "esq2x40_sq1", __FILE__) +esq2x40_sq1_device::esq2x40_sq1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : esqvfd_device(mconfig, ESQ2X40_SQ1, tag, owner, clock) { m_rows = 2; m_cols = 40; - m_Wait87Shift = false; - m_Wait88Shift = false; + m_wait87shift = false; + m_wait88shift = false; } diff --git a/src/mame/machine/esqvfd.h b/src/mame/machine/esqvfd.h index f804bc698b5..ac70201defc 100644 --- a/src/mame/machine/esqvfd.h +++ b/src/mame/machine/esqvfd.h @@ -1,31 +1,29 @@ // license:BSD-3-Clause // copyright-holders:R. Belmont -#ifndef ESQVFD_H -#define ESQVFD_H +#ifndef MAME_MACHINE_ESQVFD_H +#define MAME_MACHINE_ESQVFD_H -#define MCFG_ESQ1x22_ADD(_tag) \ - MCFG_DEVICE_ADD(_tag, ESQ1x22, 60) +#define MCFG_ESQ1X22_ADD(_tag) \ + MCFG_DEVICE_ADD(_tag, ESQ1X22, 60) #define MCFG_ESQ1x22_REMOVE(_tag) \ MCFG_DEVICE_REMOVE(_tag) -#define MCFG_ESQ2x40_ADD(_tag) \ - MCFG_DEVICE_ADD(_tag, ESQ2x40, 60) +#define MCFG_ESQ2X40_ADD(_tag) \ + MCFG_DEVICE_ADD(_tag, ESQ2X40, 60) -#define MCFG_ESQ2x40_REMOVE(_tag) \ +#define MCFG_ESQ2X40_REMOVE(_tag) \ MCFG_DEVICE_REMOVE(_tag) -#define MCFG_ESQ2x40_SQ1_ADD(_tag) \ - MCFG_DEVICE_ADD(_tag, ESQ2x40_SQ1, 60) +#define MCFG_ESQ2X40_SQ1_ADD(_tag) \ + MCFG_DEVICE_ADD(_tag, ESQ2X40_SQ1, 60) -#define MCFG_ESQ2x40_SQ1_REMOVE(_tag) \ +#define MCFG_ESQ2X40_SQ1_REMOVE(_tag) \ MCFG_DEVICE_REMOVE(_tag) -class esqvfd_t : public device_t { +class esqvfd_device : public device_t { public: - esqvfd_t(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - DECLARE_WRITE8_MEMBER( write ) { write_char(data); } virtual void write_char(int data) = 0; @@ -34,11 +32,13 @@ public: uint32_t conv_segments(uint16_t segin); protected: - static const uint8_t AT_NORMAL = 0x00; - static const uint8_t AT_BOLD = 0x01; - static const uint8_t AT_UNDERLINE = 0x02; - static const uint8_t AT_BLINK = 0x04; - static const uint8_t AT_BLINKED = 0x80; // set when character should be blinked off + esqvfd_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + static constexpr uint8_t AT_NORMAL = 0x00; + static constexpr uint8_t AT_BOLD = 0x01; + static constexpr uint8_t AT_UNDERLINE = 0x02; + static constexpr uint8_t AT_BLINK = 0x04; + static constexpr uint8_t AT_BLINKED = 0x80; // set when character should be blinked off virtual void device_start() override; virtual void device_reset() override; @@ -54,9 +54,9 @@ protected: uint8_t m_dirty[2][40]; }; -class esq1x22_t : public esqvfd_t { +class esq1x22_device : public esqvfd_device { public: - esq1x22_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + esq1x22_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual void write_char(int data) override; @@ -66,21 +66,19 @@ protected: private: }; -class esq2x40_t : public esqvfd_t { +class esq2x40_device : public esqvfd_device { public: - esq2x40_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + esq2x40_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual void write_char(int data) override; protected: virtual machine_config_constructor device_mconfig_additions() const override; - -private: }; -class esq2x40_sq1_t : public esqvfd_t { +class esq2x40_sq1_device : public esqvfd_device { public: - esq2x40_sq1_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + esq2x40_sq1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual void write_char(int data) override; @@ -88,11 +86,11 @@ protected: virtual machine_config_constructor device_mconfig_additions() const override; private: - bool m_Wait87Shift, m_Wait88Shift; + bool m_wait87shift, m_wait88shift; }; -extern const device_type ESQ1x22; -extern const device_type ESQ2x40; -extern const device_type ESQ2x40_SQ1; +DECLARE_DEVICE_TYPE(ESQ1X22, esq1x22_device) +DECLARE_DEVICE_TYPE(ESQ2X40, esq2x40_device) +DECLARE_DEVICE_TYPE(ESQ2X40_SQ1, esq2x40_sq1_device) -#endif +#endif // MAME_MACHINE_ESQVFD_H diff --git a/src/mame/machine/fd1089.cpp b/src/mame/machine/fd1089.cpp index 03d4a17c476..e29fad8275c 100644 --- a/src/mame/machine/fd1089.cpp +++ b/src/mame/machine/fd1089.cpp @@ -142,8 +142,8 @@ //************************************************************************** // device type definition -const device_type FD1089A = device_creator; -const device_type FD1089B = device_creator; +DEFINE_DEVICE_TYPE(FD1089A, fd1089a_device, "fd1089a", "Hitachi FD1089A Encrypted CPU") +DEFINE_DEVICE_TYPE(FD1089B, fd1089b_device, "fd1089b", "Hitachi FD1089B Encrypted CPU") // common base lookup table, shared between A and B variants const uint8_t fd1089_base_device::s_basetable_fd1089[0x100] = @@ -221,26 +221,23 @@ ADDRESS_MAP_END // fd1089_base_device - constructor //------------------------------------------------- -fd1089_base_device::fd1089_base_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : m68000_device(mconfig, type, name, tag, owner, clock, shortname, source), +fd1089_base_device::fd1089_base_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : m68000_device(mconfig, type, tag, owner, clock), m_region(*this, DEVICE_SELF), m_key(*this, "key"), m_decrypted_opcodes(*this, ":fd1089_decrypted_opcodes") { - // override the name after the m68000 initializes - m_name.assign(name); - // add the decrypted opcodes map m_address_map[AS_DECRYPTED_OPCODES] = ADDRESS_MAP_NAME(decrypted_opcodes_map); } fd1089a_device::fd1089a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : fd1089_base_device(mconfig, FD1089A, "FD1089A", tag, owner, clock, "fd1089a", __FILE__) + : fd1089_base_device(mconfig, FD1089A, tag, owner, clock) { } fd1089b_device::fd1089b_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : fd1089_base_device(mconfig, FD1089B, "FD1089B", tag, owner, clock, "fd1089b", __FILE__) + : fd1089_base_device(mconfig, FD1089B, tag, owner, clock) { } diff --git a/src/mame/machine/fd1089.h b/src/mame/machine/fd1089.h index f77427ff3f6..4fc70bfc40f 100644 --- a/src/mame/machine/fd1089.h +++ b/src/mame/machine/fd1089.h @@ -12,8 +12,10 @@ ***************************************************************************/ -#ifndef __FD1089_H__ -#define __FD1089_H__ +#ifndef MAME_MACHINE_FD1089_H +#define MAME_MACHINE_FD1089_H + +#pragma once #include "cpu/m68000/m68000.h" @@ -23,8 +25,8 @@ //************************************************************************** // device type definition -extern const device_type FD1089A; -extern const device_type FD1089B; +DECLARE_DEVICE_TYPE(FD1089A, fd1089a_device) +DECLARE_DEVICE_TYPE(FD1089B, fd1089b_device) @@ -38,13 +40,13 @@ extern const device_type FD1089B; class fd1089_base_device : public m68000_device { public: - // construction/destruction - fd1089_base_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - // explicit decryption helpers void decrypt(offs_t baseaddr, uint32_t size, offs_t regionoffs, uint16_t *opcodesptr, uint16_t *dataptr) { decrypt(baseaddr, size, &m_plaintext[regionoffs/2], opcodesptr, dataptr); } protected: + // construction/destruction + fd1089_base_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device overrides virtual void device_start() override; @@ -102,4 +104,4 @@ protected: }; -#endif +#endif // MAME_MACHINE_FD1089_H diff --git a/src/mame/machine/fd1094.cpp b/src/mame/machine/fd1094.cpp index a9af8ba32ea..14cfdd65aeb 100644 --- a/src/mame/machine/fd1094.cpp +++ b/src/mame/machine/fd1094.cpp @@ -379,7 +379,7 @@ //************************************************************************** // device type definition -const device_type FD1094 = device_creator; +DEFINE_DEVICE_TYPE(FD1094, fd1094_device, "fd1094", "Hitachi FD1094 Encrypted CPU") /* 317-0162 CPU also needs to mask: @@ -553,7 +553,7 @@ uint16_t *fd1094_decryption_cache::decrypted_opcodes(uint8_t state) fd1094_device::fd1094_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : m68000_device(mconfig, FD1094, "FD1094", tag, owner, clock, "fd1094", __FILE__) + : m68000_device(mconfig, FD1094, tag, owner, clock) , m_decrypted_opcodes_bank(*this, "^fd1094_decrypted_opcodes") , m_state(0x00) , m_irqmode(false) @@ -562,9 +562,6 @@ fd1094_device::fd1094_device(const machine_config &mconfig, const char *tag, dev , m_rom(*this, DEVICE_SELF) , m_key(*this, "key") { - // override the name after the m68000 initializes - m_name.assign("FD1094"); - // add the decrypted opcodes map // m_address_map[AS_DECRYPTED_OPCODES] = ADDRESS_MAP_NAME(decrypted_opcodes_map); diff --git a/src/mame/machine/fd1094.h b/src/mame/machine/fd1094.h index ba04da2858a..41f4294da05 100644 --- a/src/mame/machine/fd1094.h +++ b/src/mame/machine/fd1094.h @@ -12,8 +12,10 @@ ***************************************************************************/ -#ifndef __FD1094_H__ -#define __FD1094_H__ +#ifndef MAME_MACHINE_FD1094_H +#define MAME_MACHINE_FD1094_H + +#pragma once #include "cpu/m68000/m68000.h" @@ -127,4 +129,4 @@ struct fd1094_constraint uint16_t mask; }; -#endif +#endif // MAME_MACHINE_FD1094_H diff --git a/src/mame/machine/fm_scsi.cpp b/src/mame/machine/fm_scsi.cpp index 164f26e7610..ada0ef8cb7e 100644 --- a/src/mame/machine/fm_scsi.cpp +++ b/src/mame/machine/fm_scsi.cpp @@ -28,18 +28,38 @@ #include "fm_scsi.h" #include "debugger.h" +// SCSI input lines (from target) +#define FMSCSI_LINE_REQ 0x80 +#define FMSCSI_LINE_IO 0x40 +#define FMSCSI_LINE_MSG 0x20 +#define FMSCSI_LINE_CD 0x10 +#define FMSCSI_LINE_BSY 0x08 +#define FMSCSI_LINE_EX 0x04 +#define FMSCSI_LINE_INT 0x02 +#define FMSCSI_LINE_PERR 0x01 + +// SCSI output lines (to target) +#define FMSCSI_LINE_WEN 0x80 +#define FMSCSI_LINE_IMSK 0x40 +#define FMSCSI_LINE_RMSK 0x20 +#define FMSCSI_LINE_ATN 0x10 +#define FMSCSI_LINE_WRD 0x08 +#define FMSCSI_LINE_SEL 0x04 +#define FMSCSI_LINE_DMAE 0x02 +#define FMSCSI_LINE_RST 0x01 + /* * Device config */ -const device_type FMSCSI = device_creator; +DEFINE_DEVICE_TYPE(FMSCSI, fmscsi_device, "fmscsi", "FM-SCSI") /* * Device */ fmscsi_device::fmscsi_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : legacy_scsi_host_adapter(mconfig, FMSCSI, "FM-SCSI", tag, owner, clock, "fmscsi", __FILE__), + : legacy_scsi_host_adapter(mconfig, FMSCSI, tag, owner, clock), m_irq_handler(*this), m_drq_handler(*this) { diff --git a/src/mame/machine/fm_scsi.h b/src/mame/machine/fm_scsi.h index 895d25e494c..d9d3a09d1e0 100644 --- a/src/mame/machine/fm_scsi.h +++ b/src/mame/machine/fm_scsi.h @@ -7,31 +7,11 @@ * */ -#ifndef FM_SCSI_H_ -#define FM_SCSI_H_ +#ifndef MAME_MACHINE_FM_SCSI_H +#define MAME_MACHINE_FM_SCSI_H #include "machine/legscsi.h" -// SCSI input lines (from target) -#define FMSCSI_LINE_REQ 0x80 -#define FMSCSI_LINE_IO 0x40 -#define FMSCSI_LINE_MSG 0x20 -#define FMSCSI_LINE_CD 0x10 -#define FMSCSI_LINE_BSY 0x08 -#define FMSCSI_LINE_EX 0x04 -#define FMSCSI_LINE_INT 0x02 -#define FMSCSI_LINE_PERR 0x01 - -// SCSI output lines (to target) -#define FMSCSI_LINE_WEN 0x80 -#define FMSCSI_LINE_IMSK 0x40 -#define FMSCSI_LINE_RMSK 0x20 -#define FMSCSI_LINE_ATN 0x10 -#define FMSCSI_LINE_WRD 0x08 -#define FMSCSI_LINE_SEL 0x04 -#define FMSCSI_LINE_DMAE 0x02 -#define FMSCSI_LINE_RST 0x01 - #define MCFG_FMSCSI_ADD(_tag) \ MCFG_DEVICE_ADD(_tag, FMSCSI, 0) @@ -47,8 +27,8 @@ public: fmscsi_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // static configuration helpers - template static devcb_base &set_irq_handler(device_t &device, _Object object) { return downcast(device).m_irq_handler.set_callback(object); } - template static devcb_base &set_drq_handler(device_t &device, _Object object) { return downcast(device).m_drq_handler.set_callback(object); } + template static devcb_base &set_irq_handler(device_t &device, Object &&cb) { return downcast(device).m_irq_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_drq_handler(device_t &device, Object &&cb) { return downcast(device).m_drq_handler.set_callback(std::forward(cb)); } // any publically accessible interfaces needed for runtime uint8_t fmscsi_data_r(void); @@ -98,6 +78,6 @@ private: emu_timer* m_phase_timer; }; -extern const device_type FMSCSI; +DECLARE_DEVICE_TYPE(FMSCSI, fmscsi_device) -#endif /* FM_SCSI_H_ */ +#endif // MAME_MACHINE_FM_SCSI_H diff --git a/src/mame/machine/fmt_icmem.cpp b/src/mame/machine/fmt_icmem.cpp index 2d19ca908fb..d0ab625a508 100644 --- a/src/mame/machine/fmt_icmem.cpp +++ b/src/mame/machine/fmt_icmem.cpp @@ -14,14 +14,14 @@ #include "fmt_icmem.h" // device type definition -const device_type FMT_ICMEM = device_creator; +DEFINE_DEVICE_TYPE(FMT_ICMEM, fmt_icmem_device, "fmt_icmem", "FM Towns IC Memory Card") //------------------------------------------------- // fmt_icmem_device - constructor //------------------------------------------------- fmt_icmem_device::fmt_icmem_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, FMT_ICMEM, "FM Towns IC Memory Card", tag, owner, clock, "fmt_icmem", __FILE__), + : device_t(mconfig, FMT_ICMEM, tag, owner, clock), device_image_interface(mconfig, *this), m_writeprotect(*this,"icmem"), m_change(false), diff --git a/src/mame/machine/fmt_icmem.h b/src/mame/machine/fmt_icmem.h index b9def9a8f30..6b3c8456687 100644 --- a/src/mame/machine/fmt_icmem.h +++ b/src/mame/machine/fmt_icmem.h @@ -8,10 +8,10 @@ *********************************************************************/ -#pragma once +#ifndef MAME_MACHINE_FMT_ICMEM_H +#define MAME_MACHINE_FMT_ICMEM_H -#ifndef __FMT_ICMEM_H__ -#define __FMT_ICMEM_H__ +#pragma once //************************************************************************** // INTERFACE CONFIGURATION MACROS @@ -24,8 +24,7 @@ FUNCTION PROTOTYPES ***************************************************************************/ -class fmt_icmem_device : public device_t, - public device_image_interface +class fmt_icmem_device : public device_t, public device_image_interface { public: // construction/destruction @@ -70,7 +69,7 @@ private: // device type definition -extern const device_type FMT_ICMEM; +DECLARE_DEVICE_TYPE(FMT_ICMEM, fmt_icmem_device) -#endif /* __FMT_ICMEM_H__ */ +#endif // MAME_MACHINE_FMT_ICMEM_H diff --git a/src/mame/machine/gaelco3d.cpp b/src/mame/machine/gaelco3d.cpp index f1a7c4851b7..331c0a62774 100644 --- a/src/mame/machine/gaelco3d.cpp +++ b/src/mame/machine/gaelco3d.cpp @@ -54,6 +54,18 @@ #define LOGMSG(x) do {} while (0); #endif +/* external status bits */ +#define GAELCOSER_STATUS_READY 0x01 +#define GAELCOSER_STATUS_RTS 0x02 + +/* only RTS currently understood ! */ +//#define GAELCOSER_STATUS_DTR 0x04 + +/* internal bits follow ... */ +#define GAELCOSER_STATUS_IRQ_ENABLE 0x10 +#define GAELCOSER_STATUS_RESET 0x20 +#define GAELCOSER_STATUS_SEND 0x40 + /* * 115200 seems plausible, radikalb won't work below this speed * surfplnt will not work below 460800 .... @@ -82,7 +94,7 @@ /* code below currently works on unix only */ #ifdef SHARED_MEM_DRIVER -static osd_shared_mem *osd_sharedmem_alloc(const char *path, int create, size_t size) +gaelco_serial_device::osd_shared_mem *gaelco_serial_device::osd_sharedmem_alloc(const char *path, int create, size_t size) { int fd; osd_shared_mem *os_shmem = (osd_shared_mem *)malloc(sizeof(osd_shared_mem)); @@ -117,7 +129,7 @@ static osd_shared_mem *osd_sharedmem_alloc(const char *path, int create, size_t return os_shmem; } -static void osd_sharedmem_free(osd_shared_mem *os_shmem) +void gaelco_serial_device::osd_sharedmem_free(osd_shared_mem *os_shmem) { munmap(os_shmem->ptr, os_shmem->size); if (os_shmem->creator) @@ -126,12 +138,12 @@ static void osd_sharedmem_free(osd_shared_mem *os_shmem) free(os_shmem); } -static void *osd_sharedmem_ptr(osd_shared_mem *os_shmem) +void *gaelco_serial_device::osd_sharedmem_ptr(osd_shared_mem *os_shmem) { return os_shmem->ptr; } #else -static osd_shared_mem *osd_sharedmem_alloc(const char *path, int create, size_t size) +gaelco_serial_device::osd_shared_mem *gaelco_serial_device::osd_sharedmem_alloc(const char *path, int create, size_t size) { osd_shared_mem *os_shmem = (osd_shared_mem *) malloc(sizeof(osd_shared_mem)); @@ -142,13 +154,13 @@ static osd_shared_mem *osd_sharedmem_alloc(const char *path, int create, size_t return os_shmem; } -static void osd_sharedmem_free(osd_shared_mem *os_shmem) +void gaelco_serial_device::osd_sharedmem_free(osd_shared_mem *os_shmem) { free(os_shmem->ptr); free(os_shmem); } -static void *osd_sharedmem_ptr(osd_shared_mem *os_shmem) +void *gaelco_serial_device::osd_sharedmem_ptr(osd_shared_mem *os_shmem) { return os_shmem->ptr; } @@ -160,18 +172,18 @@ static void *osd_sharedmem_ptr(osd_shared_mem *os_shmem) #define PATH_NAME "/tmp/gaelco_serial" -static void buf_reset(buf_t *buf) +void gaelco_serial_device::buf_reset(buf_t *buf) { - buf->stat = GAELCOSER_STATUS_RTS| GAELCOSER_STATUS_RESET; + buf->stat = GAELCOSER_STATUS_RTS | GAELCOSER_STATUS_RESET; buf->data = 0; buf->data_cnt = -1; buf->cnt = 0; } -const device_type GAELCO_SERIAL = device_creator; +DEFINE_DEVICE_TYPE(GAELCO_SERIAL, gaelco_serial_device, "gaelco_serial", "Gaelco 3D Serial Hardware") gaelco_serial_device::gaelco_serial_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, GAELCO_SERIAL, "Gaelco 3D Serial Hardware", tag, owner, clock, "gaelco_serial", __FILE__), + : device_t(mconfig, GAELCO_SERIAL, tag, owner, clock), m_irq_handler(*this), m_status(0), m_last_in_msg_cnt(0), diff --git a/src/mame/machine/gaelco3d.h b/src/mame/machine/gaelco3d.h index 50e9fafdaed..85ba9283a3e 100644 --- a/src/mame/machine/gaelco3d.h +++ b/src/mame/machine/gaelco3d.h @@ -5,6 +5,10 @@ Gaelco 3D serial hardware ***************************************************************************/ +#ifndef MAME_MACHINE_GAELCO3D_H +#define MAME_MACHINE_GAELCO3D_H + +#pragma once /*************************************************************************** @@ -14,20 +18,6 @@ #define MCFG_GAELCO_SERIAL_IRQ_HANDLER(_devcb) \ devcb = &gaelco_serial_device::set_irq_handler(*device, DEVCB_##_devcb); -/* external status bits */ -#define GAELCOSER_STATUS_READY 0x01 -#define GAELCOSER_STATUS_RTS 0x02 - -/* only RTS currently understood ! */ -//#define GAELCOSER_STATUS_DTR 0x04 - -#define GAELCOSER_EXT_STATUS_MASK 0x03 - -/* internal bits follow ... */ -#define GAELCOSER_STATUS_IRQ_ENABLE 0x10 -#define GAELCOSER_STATUS_RESET 0x20 -#define GAELCOSER_STATUS_SEND 0x40 - /*************************************************************************** @@ -36,34 +26,14 @@ /* ----- device interface ----- */ -struct buf_t -{ - volatile uint8_t data; - volatile uint8_t stat; - volatile int cnt; - volatile int data_cnt; -}; - -struct shmem_t -{ - buf_t buf[2]; -}; - -struct osd_shared_mem -{ - char *fn; - size_t size; - void *ptr; - int creator; -}; - class gaelco_serial_device : public device_t { public: + static constexpr unsigned EXT_STATUS_MASK = 0x03; + gaelco_serial_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~gaelco_serial_device() {} - template static devcb_base &set_irq_handler(device_t &device, _Object object) { return downcast(device).m_irq_handler.set_callback(object); } + template static devcb_base &set_irq_handler(device_t &device, Object &&cb) { return downcast(device).m_irq_handler.set_callback(std::forward(cb)); } DECLARE_READ8_MEMBER( status_r); DECLARE_WRITE8_MEMBER( data_w); @@ -91,6 +61,33 @@ protected: virtual void device_reset() override; private: + struct buf_t + { + volatile uint8_t data; + volatile uint8_t stat; + volatile int cnt; + volatile int data_cnt; + }; + + struct shmem_t + { + buf_t buf[2]; + }; + + struct osd_shared_mem + { + char *fn; + size_t size; + void *ptr; + int creator; + }; + + static osd_shared_mem *osd_sharedmem_alloc(const char *path, int create, size_t size); + static void osd_sharedmem_free(osd_shared_mem *os_shmem); + static void *osd_sharedmem_ptr(osd_shared_mem *os_shmem); + + static void buf_reset(buf_t *buf); + // internal state devcb_write_line m_irq_handler; @@ -114,3 +111,5 @@ private: }; extern const device_type GAELCO_SERIAL; + +#endif // MAME_MACHINE_GAELCO3D_H diff --git a/src/mame/machine/gdrom.cpp b/src/mame/machine/gdrom.cpp index e7420ec9383..5f6bd02fe17 100644 --- a/src/mame/machine/gdrom.cpp +++ b/src/mame/machine/gdrom.cpp @@ -434,10 +434,10 @@ void gdrom_device::WriteData( uint8_t *data, int dataLength ) } // device type definition -const device_type GDROM = device_creator; +DEFINE_DEVICE_TYPE(GDROM, gdrom_device, "gdrom", "GD-ROM") gdrom_device::gdrom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - atapi_cdrom_device(mconfig, GDROM, "GDROM", tag, owner, clock, "gdrom", __FILE__) + atapi_cdrom_device(mconfig, GDROM, tag, owner, clock) { } diff --git a/src/mame/machine/gdrom.h b/src/mame/machine/gdrom.h index 954e3b29231..eae39ce0541 100644 --- a/src/mame/machine/gdrom.h +++ b/src/mame/machine/gdrom.h @@ -6,8 +6,10 @@ ***************************************************************************/ -#ifndef _GDROM_H_ -#define _GDROM_H_ +#ifndef MAME_MACHINE_GDROM_H +#define MAME_MACHINE_GDROM_H + +#pragma once #include "machine/atapicdr.h" @@ -36,7 +38,6 @@ private: uint32_t transferOffset; }; -// device type definition -extern const device_type GDROM; +DECLARE_DEVICE_TYPE(GDROM, gdrom_device) -#endif +#endif // MAME_MACHINE_GDROM_H diff --git a/src/mame/machine/hp48.cpp b/src/mame/machine/hp48.cpp index 72aba7c92b7..1dfd2e05b56 100644 --- a/src/mame/machine/hp48.cpp +++ b/src/mame/machine/hp48.cpp @@ -914,7 +914,7 @@ void hp48_state::hp48_encode_nibble( uint8_t* dst, uint8_t* src, int size ) /* ----- card images ------ */ -const device_type HP48_PORT = device_creator; +DEFINE_DEVICE_TYPE(HP48_PORT, hp48_port_image_device, "hp48_port_image", "HP48 memory card") /* helper for load and create */ void hp48_port_image_device::hp48_fill_port() @@ -1011,8 +1011,8 @@ void hp48_port_image_device::device_start() } hp48_port_image_device::hp48_port_image_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, HP48_PORT, "HP48 memory card", tag, owner, clock, "hp48_port_image", __FILE__), - device_image_interface(mconfig, *this) + : device_t(mconfig, HP48_PORT, tag, owner, clock) + , device_image_interface(mconfig, *this) { } diff --git a/src/mame/machine/ibm6580_fdc.cpp b/src/mame/machine/ibm6580_fdc.cpp index 094bae9c931..732627f7eb1 100644 --- a/src/mame/machine/ibm6580_fdc.cpp +++ b/src/mame/machine/ibm6580_fdc.cpp @@ -3,6 +3,8 @@ #include "emu.h" #include "ibm6580_fdc.h" +#include "cpu/mcs48/mcs48.h" + #define VERBOSE_DBG 2 /* general debug messages */ @@ -17,7 +19,7 @@ } while (0) -const device_type DW_FDC = device_creator; +DEFINE_DEVICE_TYPE(DW_FDC, dw_fdc_device, "dw_fdc", "IBM Displaywriter Floppy") ROM_START( dw_fdc ) ROM_REGION(0x800, "mcu", 0) @@ -54,7 +56,7 @@ machine_config_constructor dw_fdc_device::device_mconfig_additions() const } dw_fdc_device::dw_fdc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, DW_FDC, "IBM Displaywriter Floppy", tag, owner, clock, "dw_kbd", __FILE__) + : device_t(mconfig, DW_FDC, tag, owner, clock) , m_out_data(*this) , m_out_clock(*this) , m_out_strobe(*this) diff --git a/src/mame/machine/ibm6580_fdc.h b/src/mame/machine/ibm6580_fdc.h index 88ad3253e78..b76562a9357 100644 --- a/src/mame/machine/ibm6580_fdc.h +++ b/src/mame/machine/ibm6580_fdc.h @@ -1,9 +1,10 @@ // license:BSD-3-Clause // copyright-holders:Sergey Svishchev -#ifndef DWFDC_H_ -#define DWFDC_H_ +#ifndef MAME_MACHINE_IBM6580_FDC_H +#define MAME_MACHINE_IBM6580_FDC_H + +#pragma once -#include "cpu/mcs48/mcs48.h" #include "machine/i8255.h" #include "machine/upd765.h" @@ -23,9 +24,9 @@ class dw_fdc_device : public device_t public: dw_fdc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_out_data_handler(device_t &device, _Object object) { return downcast(device).m_out_data.set_callback(object); } - template static devcb_base &set_out_clock_handler(device_t &device, _Object object) { return downcast(device).m_out_clock.set_callback(object); } - template static devcb_base &set_out_strobe_handler(device_t &device, _Object object) { return downcast(device).m_out_strobe.set_callback(object); } + template static devcb_base &set_out_data_handler(device_t &device, Object &&cb) { return downcast(device).m_out_data.set_callback(std::forward(cb)); } + template static devcb_base &set_out_clock_handler(device_t &device, Object &&cb) { return downcast(device).m_out_clock.set_callback(std::forward(cb)); } + template static devcb_base &set_out_strobe_handler(device_t &device, Object &&cb) { return downcast(device).m_out_strobe.set_callback(std::forward(cb)); } virtual const tiny_rom_entry *device_rom_region() const override; virtual machine_config_constructor device_mconfig_additions() const override; @@ -54,6 +55,6 @@ private: required_device m_mcu; }; -extern const device_type DW_FDC; +DECLARE_DEVICE_TYPE(DW_FDC, dw_fdc_device) -#endif /* DWFDC_H_ */ +#endif // MAME_MACHINE_IBM6580_FDC_H diff --git a/src/mame/machine/ibm6580_kbd.cpp b/src/mame/machine/ibm6580_kbd.cpp index e550f591389..950a7d34695 100644 --- a/src/mame/machine/ibm6580_kbd.cpp +++ b/src/mame/machine/ibm6580_kbd.cpp @@ -3,6 +3,9 @@ #include "emu.h" #include "ibm6580_kbd.h" +#include "cpu/mcs48/mcs48.h" + + #define VERBOSE_DBG 0 /* general debug messages */ #define DBG_LOG(N,M,A) \ @@ -16,7 +19,7 @@ } while (0) -const device_type DW_KEYBOARD = device_creator; +DEFINE_DEVICE_TYPE(DW_KEYBOARD, dw_keyboard_device, "dw_kbd", "IBM Displaywriter Keyboard") ROM_START( dw_keyboard ) ROM_REGION(0x800, "mcu", 0) @@ -183,7 +186,7 @@ ioport_constructor dw_keyboard_device::device_input_ports() const } dw_keyboard_device::dw_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, DW_KEYBOARD, "IBM Displaywriter Keyboard", tag, owner, clock, "dw_kbd", __FILE__) + : device_t(mconfig, DW_KEYBOARD, tag, owner, clock) , m_kbd(*this, "COL.%u", 0) , m_out_data(*this) , m_out_clock(*this) diff --git a/src/mame/machine/ibm6580_kbd.h b/src/mame/machine/ibm6580_kbd.h index a1491196ec1..b5e583ea7bc 100644 --- a/src/mame/machine/ibm6580_kbd.h +++ b/src/mame/machine/ibm6580_kbd.h @@ -1,9 +1,10 @@ // license:BSD-3-Clause // copyright-holders:Sergey Svishchev -#ifndef DWKBD_H_ -#define DWKBD_H_ +#ifndef MAME_MACHINE_IBM6580_KBD_H +#define MAME_MACHINE_IBM6580_KBD_H + +#pragma once -#include "cpu/mcs48/mcs48.h" #define MCFG_DW_KEYBOARD_OUT_DATA_HANDLER(_devcb) \ devcb = &dw_keyboard_device::set_out_data_handler(*device, DEVCB_##_devcb); @@ -19,9 +20,9 @@ class dw_keyboard_device : public device_t public: dw_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_out_data_handler(device_t &device, _Object object) { return downcast(device).m_out_data.set_callback(object); } - template static devcb_base &set_out_clock_handler(device_t &device, _Object object) { return downcast(device).m_out_clock.set_callback(object); } - template static devcb_base &set_out_strobe_handler(device_t &device, _Object object) { return downcast(device).m_out_strobe.set_callback(object); } + template static devcb_base &set_out_data_handler(device_t &device, Object &&cb) { return downcast(device).m_out_data.set_callback(std::forward(cb)); } + template static devcb_base &set_out_clock_handler(device_t &device, Object &&cb) { return downcast(device).m_out_clock.set_callback(std::forward(cb)); } + template static devcb_base &set_out_strobe_handler(device_t &device, Object &&cb) { return downcast(device).m_out_strobe.set_callback(std::forward(cb)); } virtual const tiny_rom_entry *device_rom_region() const override; virtual machine_config_constructor device_mconfig_additions() const override; @@ -54,6 +55,6 @@ private: required_device m_mcu; }; -extern const device_type DW_KEYBOARD; +DECLARE_DEVICE_TYPE(DW_KEYBOARD, dw_keyboard_device) -#endif /* DWKBD_H_ */ +#endif // MAME_MACHINE_IBM6580_KBD_H diff --git a/src/mame/machine/igs022.cpp b/src/mame/machine/igs022.cpp index afa5dda87e9..a46a6ba71b4 100644 --- a/src/mame/machine/igs022.cpp +++ b/src/mame/machine/igs022.cpp @@ -13,7 +13,7 @@ igs022_device::igs022_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, IGS022, "IGS022", tag, owner, clock, "igs022", __FILE__) + : device_t(mconfig, IGS022, tag, owner, clock) { } @@ -273,4 +273,4 @@ void igs022_device::IGS022_handle_command() } -const device_type IGS022 = device_creator; +DEFINE_DEVICE_TYPE(IGS022, igs022_device, "igs022", "IGS022") diff --git a/src/mame/machine/igs022.h b/src/mame/machine/igs022.h index 0460b1586d6..69c36bc9199 100644 --- a/src/mame/machine/igs022.h +++ b/src/mame/machine/igs022.h @@ -4,6 +4,8 @@ #ifndef MAME_MACHINE_IGS022_H #define MAME_MACHINE_IGS022_H +#pragma once + class igs022_device : public device_t { @@ -25,6 +27,6 @@ protected: }; -extern const device_type IGS022; +DECLARE_DEVICE_TYPE(IGS022, igs022_device) #endif // MAME_MACHINE_IGS022_H diff --git a/src/mame/machine/igs025.cpp b/src/mame/machine/igs025.cpp index 5bbec6fa07e..c1e1b3d83e9 100644 --- a/src/mame/machine/igs025.cpp +++ b/src/mame/machine/igs025.cpp @@ -17,7 +17,7 @@ igs025_device::igs025_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, IGS025, "IGS025", tag, owner, clock, "igs_025_022", __FILE__) + : device_t(mconfig, IGS025, tag, owner, clock) { m_execute_external = igs025_execute_external(FUNC(igs025_device::no_callback_setup), this); } @@ -352,8 +352,4 @@ void igs025_device::killbld_protection_calculate_hilo() } - - - - -const device_type IGS025 = device_creator; +DEFINE_DEVICE_TYPE(IGS025, igs025_device, "igs025", "IGS025") diff --git a/src/mame/machine/igs025.h b/src/mame/machine/igs025.h index d3dc87f0447..7d58b365b8b 100644 --- a/src/mame/machine/igs025.h +++ b/src/mame/machine/igs025.h @@ -4,6 +4,7 @@ #ifndef MAME_MACHINE_IGS025_H #define MAME_MACHINE_IGS025_H +#pragma once // used to connect the 022 typedef device_delegate igs025_execute_external; @@ -57,6 +58,6 @@ protected: }; -extern const device_type IGS025; +DECLARE_DEVICE_TYPE(IGS025, igs025_device) #endif // MAME_MACHINE_IGS025_H diff --git a/src/mame/machine/igs028.cpp b/src/mame/machine/igs028.cpp index 74205936960..7060d33395f 100644 --- a/src/mame/machine/igs028.cpp +++ b/src/mame/machine/igs028.cpp @@ -12,7 +12,7 @@ igs028_device::igs028_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, IGS028, "IGS028", tag, owner, clock, "igs028", __FILE__) + : device_t(mconfig, IGS028, tag, owner, clock) { } @@ -212,4 +212,4 @@ void igs028_device::IGS028_handle() } -const device_type IGS028 = device_creator; +DEFINE_DEVICE_TYPE(IGS028, igs028_device, "igs028", "IGS028") diff --git a/src/mame/machine/igs028.h b/src/mame/machine/igs028.h index 911781d19ca..287f5671a51 100644 --- a/src/mame/machine/igs028.h +++ b/src/mame/machine/igs028.h @@ -4,6 +4,8 @@ #ifndef MAME_MACHINE_IGS028_H #define MAME_MACHINE_IGS028_H +#pragma once + class igs028_device : public device_t { @@ -25,6 +27,6 @@ protected: }; -extern const device_type IGS028; +DECLARE_DEVICE_TYPE(IGS028, igs028_device) #endif // MAME_MACHINE_IGS028_H diff --git a/src/mame/machine/inder_sb.cpp b/src/mame/machine/inder_sb.cpp index b199717fa76..19087400189 100644 --- a/src/mame/machine/inder_sb.cpp +++ b/src/mame/machine/inder_sb.cpp @@ -10,14 +10,14 @@ #include "speaker.h" -const device_type INDER_AUDIO = device_creator; +DEFINE_DEVICE_TYPE(INDER_AUDIO, inder_sb_device, "indersb", "Inder 4xDAC Sound Board") inder_sb_device::inder_sb_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, INDER_AUDIO, "Inder 4xDAC Sound Board", tag, owner, clock, "indersb", __FILE__), - device_mixer_interface(mconfig, *this, 2), - m_audiocpu(*this, "audiocpu"), - m_ctc(*this, "ctc") + : device_t(mconfig, INDER_AUDIO, tag, owner, clock) + , device_mixer_interface(mconfig, *this, 2) + , m_audiocpu(*this, "audiocpu") + , m_ctc(*this, "ctc") { } diff --git a/src/mame/machine/inder_sb.h b/src/mame/machine/inder_sb.h index 87bed3d80ea..939e509bbe3 100644 --- a/src/mame/machine/inder_sb.h +++ b/src/mame/machine/inder_sb.h @@ -3,10 +3,10 @@ /* */ -#pragma once +#ifndef MAME_MACHINE_INDER_SB_H +#define MAME_MACHINE_INDER_SB_H -#ifndef __INDER_AUDIO__ -#define __INDER_AUDIO__ +#pragma once #include "cpu/z80/z80.h" #include "machine/z80ctc.h" @@ -14,7 +14,7 @@ #include "sound/dac.h" -extern const device_type INDER_AUDIO; +DECLARE_DEVICE_TYPE(INDER_AUDIO, inder_sb_device) #define MCFG_INDER_AUDIO_ADD(_tag) \ MCFG_DEVICE_ADD(_tag, INDER_AUDIO, 0) @@ -53,12 +53,6 @@ public: DECLARE_READ16_MEMBER(megaphx_0x050002_r); DECLARE_WRITE16_MEMBER(megaphx_0x050000_w); - uint8_t m_soundbank[4]; - - int m_soundsent; - uint8_t m_sounddata; - uint8_t m_soundback; - void install_sound_hacks(void); void update_sound_irqs(void); @@ -68,12 +62,15 @@ protected: virtual void device_reset() override; - int m_soundirq; - private: + uint8_t m_soundbank[4]; + int m_soundsent; + uint8_t m_sounddata; + uint8_t m_soundback; + int m_soundirq; }; -#endif +#endif // MAME_MACHINE_INDER_SB_H diff --git a/src/mame/machine/inder_vid.cpp b/src/mame/machine/inder_vid.cpp index 82568dec121..bc3b7d3d97f 100644 --- a/src/mame/machine/inder_vid.cpp +++ b/src/mame/machine/inder_vid.cpp @@ -11,11 +11,11 @@ #include "screen.h" -const device_type INDER_VIDEO = device_creator; +DEFINE_DEVICE_TYPE(INDER_VIDEO, inder_vid_device, "indervd", "Inder / Dinamic TMS Video") inder_vid_device::inder_vid_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, INDER_VIDEO, "Inder / Dinamic TMS Video", tag, owner, clock, "indervd", __FILE__), + : device_t(mconfig, INDER_VIDEO, tag, owner, clock), /* device_video_interface(mconfig, *this, false), */ m_vram(*this, "vram"), m_palette(*this, "palette"), diff --git a/src/mame/machine/inder_vid.h b/src/mame/machine/inder_vid.h index 581ba051228..5bb62591d15 100644 --- a/src/mame/machine/inder_vid.h +++ b/src/mame/machine/inder_vid.h @@ -6,35 +6,30 @@ /* */ -#pragma once +#ifndef MAME_MACHINE_INDER_VID_H +#define MAME_MACHINE_INDER_VID_H -#ifndef __INDER_VIDEO__ -#define __INDER_VIDEO__ +#pragma once #include "video/ramdac.h" #include "cpu/tms34010/tms34010.h" -extern const device_type INDER_VIDEO; +DECLARE_DEVICE_TYPE(INDER_VIDEO, inder_vid_device) #define MCFG_INDER_VIDEO_ADD(_tag) \ MCFG_DEVICE_ADD(_tag, INDER_VIDEO, 0) -class inder_vid_device : public device_t +class inder_vid_device : public device_t /* public device_video_interface */ { public: // construction/destruction inder_vid_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - required_shared_ptr m_vram; - required_device m_palette; - required_device m_tms; - DECLARE_WRITE_LINE_MEMBER(m68k_gen_int); - int m_shiftfull; // this might be a driver specific hack for a TMS bug. TMS340X0_TO_SHIFTREG_CB_MEMBER(to_shiftreg); TMS340X0_FROM_SHIFTREG_CB_MEMBER(from_shiftreg); TMS340X0_SCANLINE_RGB32_CB_MEMBER(scanline); @@ -45,6 +40,11 @@ protected: virtual void device_reset() override; private: + required_shared_ptr m_vram; + required_device m_palette; + required_device m_tms; + + int m_shiftfull; // this might be a driver specific hack for a TMS bug. }; -#endif +#endif // MAME_MACHINE_INDER_VID_H diff --git a/src/mame/machine/interpro_ioga.cpp b/src/mame/machine/interpro_ioga.cpp index a169013b8fb..f08c03adef6 100644 --- a/src/mame/machine/interpro_ioga.cpp +++ b/src/mame/machine/interpro_ioga.cpp @@ -56,10 +56,10 @@ DEVICE_ADDRESS_MAP_START(map, 32, interpro_ioga_device) AM_RANGE(0xb0, 0xbf) AM_READWRITE16(softint_vector_r, softint_vector_w, 0xffffffff) ADDRESS_MAP_END -const device_type INTERPRO_IOGA = device_creator; +DEFINE_DEVICE_TYPE(INTERPRO_IOGA, interpro_ioga_device, "ioga", "InterPro IOGA") interpro_ioga_device::interpro_ioga_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, INTERPRO_IOGA, "InterPro IOGA", tag, owner, clock, "ioga", __FILE__), + : device_t(mconfig, INTERPRO_IOGA, tag, owner, clock), m_out_nmi_func(*this), m_out_int_func(*this), m_memory_space(nullptr), diff --git a/src/mame/machine/interpro_ioga.h b/src/mame/machine/interpro_ioga.h index 4c5f07bb8c8..34d8ed8f7dd 100644 --- a/src/mame/machine/interpro_ioga.h +++ b/src/mame/machine/interpro_ioga.h @@ -1,10 +1,10 @@ // license:BSD-3-Clause // copyright-holders:Patrick Mackinlay -#pragma once +#ifndef MAME_MACHINE_INTERPRO_IOGA_H +#define MAME_MACHINE_INTERPRO_IOGA_H -#ifndef INTERPRO_IOGA_H_ -#define INTERPRO_IOGA_H_ +#pragma once #define MCFG_INTERPRO_IOGA_ADD(_tag) \ @@ -249,6 +249,6 @@ private: }; // device type definition -extern const device_type INTERPRO_IOGA; +DECLARE_DEVICE_TYPE(INTERPRO_IOGA, interpro_ioga_device) -#endif +#endif // MAME_MACHINE_INTERPRO_IOGA_H diff --git a/src/mame/machine/interpro_mcga.cpp b/src/mame/machine/interpro_mcga.cpp index e049a76f5ef..ac6b0546a2b 100644 --- a/src/mame/machine/interpro_mcga.cpp +++ b/src/mame/machine/interpro_mcga.cpp @@ -25,10 +25,10 @@ DEVICE_ADDRESS_MAP_START(map, 16, interpro_mcga_device) AM_RANGE(0x00, 0x3f) AM_READWRITE16(read, write, 0xffff) ADDRESS_MAP_END -const device_type INTERPRO_MCGA = device_creator; +DEFINE_DEVICE_TYPE(INTERPRO_MCGA, interpro_mcga_device, "mcga", "InterPro MCGA") interpro_mcga_device::interpro_mcga_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, INTERPRO_MCGA, "InterPro MCGA", tag, owner, clock, "mcga", __FILE__) + : device_t(mconfig, INTERPRO_MCGA, tag, owner, clock) { } diff --git a/src/mame/machine/interpro_mcga.h b/src/mame/machine/interpro_mcga.h index 3f2dd2f489d..bb48f9b1689 100644 --- a/src/mame/machine/interpro_mcga.h +++ b/src/mame/machine/interpro_mcga.h @@ -1,10 +1,10 @@ // license:BSD-3-Clause // copyright-holders:Patrick Mackinlay -#pragma once +#ifndef MAME_MACHINE_INTERPRO_MCGA_H +#define MAME_MACHINE_INTERPRO_MCGA_H -#ifndef INTERPRO_MCGA_H_ -#define INTERPRO_MCGA_H_ +#pragma once // mcga control register @@ -39,6 +39,6 @@ private: }; // device type definition -extern const device_type INTERPRO_MCGA; +DECLARE_DEVICE_TYPE(INTERPRO_MCGA, interpro_mcga_device) -#endif +#endif // MAME_MACHINE_INTERPRO_MCGA_H diff --git a/src/mame/machine/interpro_sga.cpp b/src/mame/machine/interpro_sga.cpp index 37fddebd74f..332225ffd74 100644 --- a/src/mame/machine/interpro_sga.cpp +++ b/src/mame/machine/interpro_sga.cpp @@ -35,10 +35,10 @@ DEVICE_ADDRESS_MAP_START(map, 32, interpro_sga_device) AM_RANGE(0xbc, 0xbf) AM_READWRITE(ddtc1_r, ddtc1_w) ADDRESS_MAP_END -const device_type INTERPRO_SGA = device_creator; +DEFINE_DEVICE_TYPE(INTERPRO_SGA, interpro_sga_device, "sga", "InterPro SGA") interpro_sga_device::interpro_sga_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, INTERPRO_SGA, "InterPro SGA", tag, owner, clock, "sga", __FILE__) + : device_t(mconfig, INTERPRO_SGA, tag, owner, clock) { } diff --git a/src/mame/machine/interpro_sga.h b/src/mame/machine/interpro_sga.h index b48dbe61829..ab850ea01a2 100644 --- a/src/mame/machine/interpro_sga.h +++ b/src/mame/machine/interpro_sga.h @@ -1,10 +1,10 @@ // license:BSD-3-Clause // copyright-holders:Patrick Mackinlay -#pragma once +#ifndef MAME_MACHINE_INTERPRO_SGA_H +#define MAME_MACHINE_INTERPRO_SGA_H -#ifndef INTERPRO_SGA_H_ -#define INTERPRO_SGA_H_ +#pragma once class interpro_sga_device : public device_t @@ -65,6 +65,6 @@ private: }; // device type definition -extern const device_type INTERPRO_SGA; +DECLARE_DEVICE_TYPE(INTERPRO_SGA, interpro_sga_device) -#endif +#endif // MAME_MACHINE_INTERPRO_SGA_H diff --git a/src/mame/machine/intv.cpp b/src/mame/machine/intv.cpp index 68c3d2bf78f..3604a44b1d8 100644 --- a/src/mame/machine/intv.cpp +++ b/src/mame/machine/intv.cpp @@ -557,7 +557,7 @@ void intv_state::machine_reset() m_maincpu->set_input_line_vector(CP1610_INT_INTR, 0x1004); /* Set initial PC */ - m_maincpu->set_state_int(CP1610_R7, 0x1000); + m_maincpu->set_state_int(cp1610_cpu_device::CP1610_R7, 0x1000); if (m_is_keybd) { @@ -646,8 +646,8 @@ TIMER_CALLBACK_MEMBER(intv_state::intv_btb_fill) uint8_t row = m_backtab_row; //m_maincpu->adjust_icount(-STIC_ROW_FETCH); - for (int column = 0; column < STIC_BACKTAB_WIDTH; column++) - m_stic->write_to_btb(row, column, m_ram16[column + row * STIC_BACKTAB_WIDTH]); + for (int column = 0; column < stic_device::BACKTAB_WIDTH; column++) + m_stic->write_to_btb(row, column, m_ram16[column + row * stic_device::BACKTAB_WIDTH]); m_backtab_row += 1; } @@ -660,16 +660,16 @@ INTERRUPT_GEN_MEMBER(intv_state::intv_interrupt) m_bus_copy_mode = 1; m_backtab_row = 0; - m_maincpu->adjust_icount(-(12*STIC_ROW_BUSRQ+STIC_FRAME_BUSRQ)); // Account for stic cycle stealing - timer_set(m_maincpu->cycles_to_attotime(STIC_VBLANK_END), TIMER_INTV_INTERRUPT_COMPLETE); - for (int row = 0; row < STIC_BACKTAB_HEIGHT; row++) + m_maincpu->adjust_icount(-(12*stic_device::ROW_BUSRQ+stic_device::FRAME_BUSRQ)); // Account for stic cycle stealing + timer_set(m_maincpu->cycles_to_attotime(stic_device::VBLANK_END), TIMER_INTV_INTERRUPT_COMPLETE); + for (int row = 0; row < stic_device::BACKTAB_HEIGHT; row++) { - timer_set(m_maincpu->cycles_to_attotime(STIC_FIRST_FETCH-STIC_FRAME_BUSRQ+STIC_CYCLES_PER_SCANLINE*STIC_Y_SCALE*delay + (STIC_CYCLES_PER_SCANLINE*STIC_Y_SCALE*STIC_CARD_HEIGHT - STIC_ROW_BUSRQ)*row), TIMER_INTV_BTB_FILL); + timer_set(m_maincpu->cycles_to_attotime(stic_device::FIRST_FETCH-stic_device::FRAME_BUSRQ+stic_device::CYCLES_PER_SCANLINE*stic_device::Y_SCALE*delay + (stic_device::CYCLES_PER_SCANLINE*stic_device::Y_SCALE*stic_device::CARD_HEIGHT - stic_device::ROW_BUSRQ)*row), TIMER_INTV_BTB_FILL); } if (delay == 0) { - m_maincpu->adjust_icount(-STIC_ROW_BUSRQ); // extra row fetch occurs if vertical delay == 0 + m_maincpu->adjust_icount(-stic_device::ROW_BUSRQ); // extra row fetch occurs if vertical delay == 0 } m_stic->screenrefresh(); diff --git a/src/mame/machine/isbc_208.cpp b/src/mame/machine/isbc_208.cpp index df2562bd1f3..f7f21f80c9f 100644 --- a/src/mame/machine/isbc_208.cpp +++ b/src/mame/machine/isbc_208.cpp @@ -6,10 +6,13 @@ #include "emu.h" #include "isbc_208.h" -const device_type ISBC_208 = device_creator; +#include "formats/pc_dsk.h" + + +DEFINE_DEVICE_TYPE(ISBC_208, isbc_208_device, "isbc_208", "ISBC 208 Flexible Disk Driver Controller") isbc_208_device::isbc_208_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, ISBC_208, "ISBC 208 Flexible Disk Drive Controller", tag, owner, clock, "isbc_208", __FILE__), + device_t(mconfig, ISBC_208, tag, owner, clock), m_dmac(*this, "dmac"), m_fdc(*this, "fdc"), m_out_irq_func(*this) diff --git a/src/mame/machine/isbc_208.h b/src/mame/machine/isbc_208.h index 691266e0a67..0611cbe0007 100644 --- a/src/mame/machine/isbc_208.h +++ b/src/mame/machine/isbc_208.h @@ -1,10 +1,11 @@ // license:BSD-3-Clause // copyright-holders:Carl -#ifndef ISBC_208_H_ -#define ISBC_208_H_ +#ifndef MAME_MACHINE_ISBC_208_H +#define MAME_MACHINE_ISBC_208_H + +#pragma once -#include "formats/pc_dsk.h" #include "machine/upd765.h" #include "machine/am9517a.h" @@ -24,7 +25,7 @@ public: DECLARE_WRITE_LINE_MEMBER(irq_w); DECLARE_FLOPPY_FORMATS( floppy_formats ); - template static devcb_base &static_set_irq_callback(device_t &device, _Object object) { return downcast(device).m_out_irq_func.set_callback(object); } + template static devcb_base &static_set_irq_callback(device_t &device, Object &&cb) { return downcast(device).m_out_irq_func.set_callback(std::forward(cb)); } static void static_set_maincpu_tag(device_t &device, const char *maincpu_tag) { downcast(device).m_maincpu_tag = maincpu_tag; } protected: @@ -47,6 +48,6 @@ private: #define MCFG_ISBC_208_IRQ(_irq_line) \ devcb = &isbc_208_device::static_set_irq_callback(*device, DEVCB_##_irq_line); -extern const device_type ISBC_208; +DECLARE_DEVICE_TYPE(ISBC_208, isbc_208_device) -#endif /* ISBC_208_H_ */ +#endif // MAME_MACHINE_ISBC_208_H diff --git a/src/mame/machine/isbc_215g.cpp b/src/mame/machine/isbc_215g.cpp index a142ff9819b..8d69ad6b53f 100644 --- a/src/mame/machine/isbc_215g.cpp +++ b/src/mame/machine/isbc_215g.cpp @@ -9,10 +9,10 @@ #include "emu.h" #include "isbc_215g.h" -const device_type ISBC_215G = device_creator; +DEFINE_DEVICE_TYPE(ISBC_215G, isbc_215g_device, "isbc_215g", "ISBC 215G Winchester Disk Controller") isbc_215g_device::isbc_215g_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, ISBC_215G, "ISBC 215G Winchester Disk Controller", tag, owner, clock, "isbc_215g", __FILE__), + device_t(mconfig, ISBC_215G, tag, owner, clock), m_dmac(*this, "u84"), m_hdd0(*this, "drive0"), m_hdd1(*this, "drive1"), diff --git a/src/mame/machine/isbc_215g.h b/src/mame/machine/isbc_215g.h index 3b13ee4326c..70695e91990 100644 --- a/src/mame/machine/isbc_215g.h +++ b/src/mame/machine/isbc_215g.h @@ -1,8 +1,10 @@ // license:BSD-3-Clause // copyright-holders:Carl -#ifndef ISBC_215G_H_ -#define ISBC_215G_H_ +#ifndef MAME_MACHINE_ISBC_215G_H +#define MAME_MACHINE_ISBC_215G_H + +#pragma once #include "cpu/i8089/i8089.h" #include "bus/isbx/isbx.h" @@ -71,6 +73,6 @@ private: #define MCFG_ISBC_215_IRQ(_irq_line) \ devcb = &isbc_215g_device::static_set_irq_callback(*device, DEVCB_##_irq_line); -extern const device_type ISBC_215G; +DECLARE_DEVICE_TYPE(ISBC_215G, isbc_215g_device) -#endif /* ISBC_215G_H_ */ +#endif // MAME_MACHINE_ISBC_215G_H diff --git a/src/mame/machine/iteagle_fpga.cpp b/src/mame/machine/iteagle_fpga.cpp index 78f661b5031..416ea1cfc90 100644 --- a/src/mame/machine/iteagle_fpga.cpp +++ b/src/mame/machine/iteagle_fpga.cpp @@ -15,7 +15,7 @@ #define COM1_TAG "com1" #define COM2_TAG "com2" -const device_type ITEAGLE_FPGA = device_creator; +DEFINE_DEVICE_TYPE(ITEAGLE_FPGA, iteagle_fpga_device, "iteagle_fpga", "ITEagle FPGA") MACHINE_CONFIG_FRAGMENT(iteagle_fpga) MCFG_NVRAM_ADD_0FILL("eagle2_rtc") @@ -27,14 +27,14 @@ MACHINE_CONFIG_FRAGMENT(iteagle_fpga) MCFG_Z80SCC_OUT_TXDB_CB(DEVWRITELINE(COM1_TAG, rs232_port_device, write_txd)) MCFG_RS232_PORT_ADD(COM1_TAG, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(DEVWRITELINE(AM85C30_TAG, scc85C30_device, rxb_w)) - MCFG_RS232_DCD_HANDLER(DEVWRITELINE(AM85C30_TAG, scc85C30_device, dcdb_w)) - MCFG_RS232_CTS_HANDLER(DEVWRITELINE(AM85C30_TAG, scc85C30_device, ctsb_w)) + MCFG_RS232_RXD_HANDLER(DEVWRITELINE(AM85C30_TAG, scc85c30_device, rxb_w)) + MCFG_RS232_DCD_HANDLER(DEVWRITELINE(AM85C30_TAG, scc85c30_device, dcdb_w)) + MCFG_RS232_CTS_HANDLER(DEVWRITELINE(AM85C30_TAG, scc85c30_device, ctsb_w)) MCFG_RS232_PORT_ADD(COM2_TAG, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(DEVWRITELINE(AM85C30_TAG, scc85C30_device, rxa_w)) - MCFG_RS232_DCD_HANDLER(DEVWRITELINE(AM85C30_TAG, scc85C30_device, dcda_w)) - MCFG_RS232_CTS_HANDLER(DEVWRITELINE(AM85C30_TAG, scc85C30_device, ctsa_w)) + MCFG_RS232_RXD_HANDLER(DEVWRITELINE(AM85C30_TAG, scc85c30_device, rxa_w)) + MCFG_RS232_DCD_HANDLER(DEVWRITELINE(AM85C30_TAG, scc85c30_device, dcda_w)) + MCFG_RS232_CTS_HANDLER(DEVWRITELINE(AM85C30_TAG, scc85c30_device, ctsa_w)) MACHINE_CONFIG_END DEVICE_ADDRESS_MAP_START(fpga_map, 32, iteagle_fpga_device) @@ -50,7 +50,7 @@ DEVICE_ADDRESS_MAP_START(ram_map, 32, iteagle_fpga_device) ADDRESS_MAP_END iteagle_fpga_device::iteagle_fpga_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : pci_device(mconfig, ITEAGLE_FPGA, "ITEagle FPGA", tag, owner, clock, "iteagle_fpga", __FILE__), + : pci_device(mconfig, ITEAGLE_FPGA, tag, owner, clock), m_rtc(*this, "eagle2_rtc"), m_scc1(*this, AM85C30_TAG), m_version(0), m_seq_init(0) { } @@ -609,7 +609,7 @@ WRITE32_MEMBER( iteagle_fpga_device::ram_w ) // Attached serial EEPROM //************************************ -const device_type ITEAGLE_EEPROM = device_creator; +DEFINE_DEVICE_TYPE(ITEAGLE_EEPROM, iteagle_eeprom_device, "iteagle_eeprom", "ITEagle EEPROM AT93C46") DEVICE_ADDRESS_MAP_START(eeprom_map, 32, iteagle_eeprom_device) AM_RANGE(0x0000, 0x000F) AM_READWRITE(eeprom_r, eeprom_w) @@ -625,7 +625,7 @@ machine_config_constructor iteagle_eeprom_device::device_mconfig_additions() con } iteagle_eeprom_device::iteagle_eeprom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : pci_device(mconfig, ITEAGLE_EEPROM, "ITEagle EEPROM AT93C46", tag, owner, clock, "eeprom", __FILE__), + : pci_device(mconfig, ITEAGLE_EEPROM, tag, owner, clock), m_eeprom(*this, "eeprom"), m_sw_version(0), m_hw_version(0) { // When corrupt writes 0x3=2, 0x3e=2, 0xa=0, 0x30=0 @@ -743,14 +743,14 @@ machine_config_constructor iteagle_periph_device::device_mconfig_additions() con return MACHINE_CONFIG_NAME(eagle1); } -const device_type ITEAGLE_PERIPH = device_creator; +DEFINE_DEVICE_TYPE(ITEAGLE_PERIPH, iteagle_periph_device, "iteagle_periph", "ITEagle Peripheral Controller") DEVICE_ADDRESS_MAP_START(ctrl_map, 32, iteagle_periph_device) AM_RANGE(0x000, 0x0cf) AM_READWRITE(ctrl_r, ctrl_w) ADDRESS_MAP_END iteagle_periph_device::iteagle_periph_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : pci_device(mconfig, ITEAGLE_PERIPH, "ITEagle Peripheral Controller", tag, owner, clock, "periph", __FILE__), + : pci_device(mconfig, ITEAGLE_PERIPH, tag, owner, clock), m_rtc(*this, "eagle1_rtc") { } diff --git a/src/mame/machine/iteagle_fpga.h b/src/mame/machine/iteagle_fpga.h index f0cef354373..7ed878c58ba 100644 --- a/src/mame/machine/iteagle_fpga.h +++ b/src/mame/machine/iteagle_fpga.h @@ -3,8 +3,8 @@ //************************************* // iteagle fpga device //************************************* -#ifndef ITEAGLE_FPGA_H -#define ITEAGLE_FPGA_H +#ifndef MAME_MACHINE_ITEAGLE_FPGA_H +#define MAME_MACHINE_ITEAGLE_FPGA_H #include "machine/pci.h" #include "machine/nvram.h" @@ -59,7 +59,7 @@ public: virtual machine_config_constructor device_mconfig_additions() const override; required_device m_rtc; - required_device m_scc1; + required_device m_scc1; void set_init_info(int version, int seq_init) {m_version=version; m_seq_init=seq_init;} void set_irq_info(const char *tag, const int irq_num, const int serial_num) { @@ -158,8 +158,8 @@ private: }; -extern const device_type ITEAGLE_FPGA; -extern const device_type ITEAGLE_EEPROM; -extern const device_type ITEAGLE_PERIPH; +DECLARE_DEVICE_TYPE(ITEAGLE_FPGA, iteagle_fpga_device) +DECLARE_DEVICE_TYPE(ITEAGLE_EEPROM, iteagle_eeprom_device) +DECLARE_DEVICE_TYPE(ITEAGLE_PERIPH, iteagle_periph_device) -#endif +#endif // MAME_MACHINE_ITEAGLE_FPGA_H diff --git a/src/mame/machine/jvs13551.cpp b/src/mame/machine/jvs13551.cpp index e8247d286f3..586626a0376 100644 --- a/src/mame/machine/jvs13551.cpp +++ b/src/mame/machine/jvs13551.cpp @@ -5,15 +5,15 @@ #include "cpu/tlcs90/tlcs90.h" -const device_type SEGA_837_13551 = device_creator; +DEFINE_DEVICE_TYPE(SEGA_837_13551, sega_837_13551_device, "jvs13551", "Sega 837-13551 I/O Board") -WRITE_LINE_MEMBER(sega_837_13551::jvs13551_coin_1_w) +WRITE_LINE_MEMBER(sega_837_13551_device::jvs13551_coin_1_w) { if(state) inc_coin(0); } -WRITE_LINE_MEMBER(sega_837_13551::jvs13551_coin_2_w) +WRITE_LINE_MEMBER(sega_837_13551_device::jvs13551_coin_2_w) { if(state) inc_coin(1); @@ -21,8 +21,8 @@ WRITE_LINE_MEMBER(sega_837_13551::jvs13551_coin_2_w) static INPUT_PORTS_START(sega_837_13551_coins) PORT_START("COINS") - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_COIN1) PORT_WRITE_LINE_DEVICE_MEMBER(DEVICE_SELF, sega_837_13551, jvs13551_coin_1_w) - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_COIN2) PORT_WRITE_LINE_DEVICE_MEMBER(DEVICE_SELF, sega_837_13551, jvs13551_coin_2_w) + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_COIN1) PORT_WRITE_LINE_DEVICE_MEMBER(DEVICE_SELF, sega_837_13551_device, jvs13551_coin_1_w) + PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_COIN2) PORT_WRITE_LINE_DEVICE_MEMBER(DEVICE_SELF, sega_837_13551_device, jvs13551_coin_2_w) INPUT_PORTS_END MACHINE_CONFIG_FRAGMENT(sega_837_13551) @@ -42,53 +42,53 @@ ROM_START( jvs13551 ) ROM_LOAD( "315-6215.bin", 0x0000, 0x4000, CRC(98202738) SHA1(8c4dc85438298e31e25f69542804a78ff0e20962)) ROM_END -const tiny_rom_entry *sega_837_13551::device_rom_region() const +const tiny_rom_entry *sega_837_13551_device::device_rom_region() const { return ROM_NAME(jvs13551); } -void sega_837_13551::static_set_port_tag(device_t &device, int port, const char *tag) +void sega_837_13551_device::static_set_port_tag(device_t &device, int port, const char *tag) { - sega_837_13551 &ctrl = downcast(device); + sega_837_13551_device &ctrl = downcast(device); ctrl.port_tag[port] = tag; } -machine_config_constructor sega_837_13551::device_mconfig_additions() const +machine_config_constructor sega_837_13551_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME(sega_837_13551); } -ioport_constructor sega_837_13551::device_input_ports() const +ioport_constructor sega_837_13551_device::device_input_ports() const { return INPUT_PORTS_NAME(sega_837_13551_coins); } -sega_837_13551::sega_837_13551(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : jvs_device(mconfig, SEGA_837_13551, "Sega 837-13551 I/O Board", tag, owner, clock, "jvs13551", __FILE__) +sega_837_13551_device::sega_837_13551_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : jvs_device(mconfig, SEGA_837_13551, tag, owner, clock) { memset(port_tag, 0, sizeof(port_tag)); } -const char *sega_837_13551::device_id() +const char *sega_837_13551_device::device_id() { return "SEGA ENTERPRISES,LTD.;I/O BD JVS;837-13551"; } -uint8_t sega_837_13551::command_format_version() +uint8_t sega_837_13551_device::command_format_version() { return 0x11; } -uint8_t sega_837_13551::jvs_standard_version() +uint8_t sega_837_13551_device::jvs_standard_version() { return 0x20; } -uint8_t sega_837_13551::comm_method_version() +uint8_t sega_837_13551_device::comm_method_version() { return 0x10; } -void sega_837_13551::device_start() +void sega_837_13551_device::device_start() { jvs_device::device_start(); for (int i = 0; i < ARRAY_LENGTH(port_tag); i++) @@ -98,14 +98,14 @@ void sega_837_13551::device_start() save_item(NAME(coin_counter)); } -void sega_837_13551::device_reset() +void sega_837_13551_device::device_reset() { jvs_device::device_reset(); coin_counter[0] = 0; coin_counter[1] = 0; } -void sega_837_13551::inc_coin(int coin) +void sega_837_13551_device::inc_coin(int coin) { coin_counter[coin]++; if(coin_counter[coin] == 16384) @@ -113,7 +113,7 @@ void sega_837_13551::inc_coin(int coin) } -void sega_837_13551::function_list(uint8_t *&buf) +void sega_837_13551_device::function_list(uint8_t *&buf) { // SW input - 2 players, 13 bits *buf++ = 0x01; *buf++ = 2; *buf++ = 13; *buf++ = 0; @@ -128,7 +128,7 @@ void sega_837_13551::function_list(uint8_t *&buf) *buf++ = 0x12; *buf++ = 6; *buf++ = 0; *buf++ = 0; } -bool sega_837_13551::coin_counters(uint8_t *&buf, uint8_t count) +bool sega_837_13551_device::coin_counters(uint8_t *&buf, uint8_t count) { if(count > 2) return false; @@ -142,7 +142,7 @@ bool sega_837_13551::coin_counters(uint8_t *&buf, uint8_t count) return true; } -bool sega_837_13551::coin_add(uint8_t slot, int32_t count) +bool sega_837_13551_device::coin_add(uint8_t slot, int32_t count) { if(slot < 1 || slot > 2) return false; @@ -152,7 +152,7 @@ bool sega_837_13551::coin_add(uint8_t slot, int32_t count) return true; } -bool sega_837_13551::switches(uint8_t *&buf, uint8_t count_players, uint8_t bytes_per_switch) +bool sega_837_13551_device::switches(uint8_t *&buf, uint8_t count_players, uint8_t bytes_per_switch) { if(count_players > 2 || bytes_per_switch > 2) return false; @@ -167,7 +167,7 @@ bool sega_837_13551::switches(uint8_t *&buf, uint8_t count_players, uint8_t byte } -bool sega_837_13551::analogs(uint8_t *&buf, uint8_t count) +bool sega_837_13551_device::analogs(uint8_t *&buf, uint8_t count) { if(count > 8) return false; @@ -179,7 +179,7 @@ bool sega_837_13551::analogs(uint8_t *&buf, uint8_t count) return true; } -bool sega_837_13551::swoutputs(uint8_t count, const uint8_t *vals) +bool sega_837_13551_device::swoutputs(uint8_t count, const uint8_t *vals) { // WARNING! JVS standard have reversed bits count order // so "board have 6 output bits" means 6 MSB bits is used, the same rules for input too @@ -194,7 +194,7 @@ bool sega_837_13551::swoutputs(uint8_t count, const uint8_t *vals) return true; } -bool sega_837_13551::swoutputs(uint8_t id, uint8_t val) +bool sega_837_13551_device::swoutputs(uint8_t id, uint8_t val) { if(id > 6) return false; diff --git a/src/mame/machine/jvs13551.h b/src/mame/machine/jvs13551.h index f3fc6a9647d..eccf1dd4b2f 100644 --- a/src/mame/machine/jvs13551.h +++ b/src/mame/machine/jvs13551.h @@ -1,31 +1,33 @@ // license:BSD-3-Clause // copyright-holders:Olivier Galibert -#ifndef __JVS13551_H__ -#define __JVS13551_H__ +#ifndef MAME_MACHINE_JVS13551_H +#define MAME_MACHINE_JVS13551_H + +#pragma once #include "machine/jvsdev.h" #define MCFG_SEGA_837_13551_DEVICE_ADD(_tag, _host, tilt, d0, d1, a0, a1, a2, a3, a4, a5, a6, a7, out) \ MCFG_JVS_DEVICE_ADD(_tag, SEGA_837_13551, _host) \ - sega_837_13551::static_set_port_tag(*device, 0, tilt); \ - sega_837_13551::static_set_port_tag(*device, 1, d0); \ - sega_837_13551::static_set_port_tag(*device, 2, d1); \ - sega_837_13551::static_set_port_tag(*device, 3, a0); \ - sega_837_13551::static_set_port_tag(*device, 4, a1); \ - sega_837_13551::static_set_port_tag(*device, 5, a2); \ - sega_837_13551::static_set_port_tag(*device, 6, a3); \ - sega_837_13551::static_set_port_tag(*device, 7, a4); \ - sega_837_13551::static_set_port_tag(*device, 8, a5); \ - sega_837_13551::static_set_port_tag(*device, 9, a6); \ - sega_837_13551::static_set_port_tag(*device, 10, a7); \ - sega_837_13551::static_set_port_tag(*device, 11, out); + sega_837_13551_device::static_set_port_tag(*device, 0, tilt); \ + sega_837_13551_device::static_set_port_tag(*device, 1, d0); \ + sega_837_13551_device::static_set_port_tag(*device, 2, d1); \ + sega_837_13551_device::static_set_port_tag(*device, 3, a0); \ + sega_837_13551_device::static_set_port_tag(*device, 4, a1); \ + sega_837_13551_device::static_set_port_tag(*device, 5, a2); \ + sega_837_13551_device::static_set_port_tag(*device, 6, a3); \ + sega_837_13551_device::static_set_port_tag(*device, 7, a4); \ + sega_837_13551_device::static_set_port_tag(*device, 8, a5); \ + sega_837_13551_device::static_set_port_tag(*device, 9, a6); \ + sega_837_13551_device::static_set_port_tag(*device, 10, a7); \ + sega_837_13551_device::static_set_port_tag(*device, 11, out); class jvs_host; -class sega_837_13551 : public jvs_device +class sega_837_13551_device : public jvs_device { public: - sega_837_13551(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + sega_837_13551_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); static void static_set_port_tag(device_t &device, int port, const char *tag); virtual const tiny_rom_entry *device_rom_region() const override; @@ -61,5 +63,6 @@ private: }; extern const device_type SEGA_837_13551; +DECLARE_DEVICE_TYPE(SEGA_837_13551, sega_837_13551_device) -#endif +#endif // MAME_MACHINE_JVS13551_H diff --git a/src/mame/machine/k573cass.cpp b/src/mame/machine/k573cass.cpp index e2dfa9a2edd..e0ad9e5f590 100644 --- a/src/mame/machine/k573cass.cpp +++ b/src/mame/machine/k573cass.cpp @@ -62,17 +62,15 @@ READ_LINE_MEMBER(konami573_cassette_interface::read_line_adc083x_sars) } -const device_type KONAMI573_CASSETTE_X = device_creator; +DEFINE_DEVICE_TYPE(KONAMI573_CASSETTE_X, konami573_cassette_x_device, "k573cassx", "Konami 573 Cassette X") konami573_cassette_x_device::konami573_cassette_x_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, KONAMI573_CASSETTE_X, "Konami 573 Cassette X", tag, owner, clock, "k573cassx", __FILE__), - konami573_cassette_interface(mconfig, *this), - m_x76f041(*this, "eeprom") + konami573_cassette_x_device(mconfig, KONAMI573_CASSETTE_X, tag, owner, clock) { } -konami573_cassette_x_device::konami573_cassette_x_device(const machine_config &mconfig, const device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, __FILE__), +konami573_cassette_x_device::konami573_cassette_x_device(const machine_config &mconfig, const device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), konami573_cassette_interface(mconfig, *this), m_x76f041(*this, "eeprom") { @@ -118,10 +116,10 @@ READ_LINE_MEMBER(konami573_cassette_x_device::read_line_secflash_sda) } -const device_type KONAMI573_CASSETTE_XI = device_creator; +DEFINE_DEVICE_TYPE(KONAMI573_CASSETTE_XI, konami573_cassette_xi_device, "k573cassxi", "Konami 573 Cassette XI") konami573_cassette_xi_device::konami573_cassette_xi_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - konami573_cassette_x_device(mconfig, KONAMI573_CASSETTE_XI, "Konami 573 Cassette XI", tag, owner, clock, "k573cassxi", __FILE__), + konami573_cassette_x_device(mconfig, KONAMI573_CASSETTE_XI, tag, owner, clock), m_ds2401(*this, "id"), m_adc0838(*this, "adc0838") { @@ -178,25 +176,15 @@ READ_LINE_MEMBER(konami573_cassette_xi_device::read_line_adc083x_sars) } -const device_type KONAMI573_CASSETTE_Y = device_creator; +DEFINE_DEVICE_TYPE(KONAMI573_CASSETTE_Y, konami573_cassette_y_device, "k573cassy", "Konami 573 Cassette Y") konami573_cassette_y_device::konami573_cassette_y_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, KONAMI573_CASSETTE_Y, "Konami 573 Cassette Y", tag, owner, clock, "k573cassy", __FILE__), - konami573_cassette_interface(mconfig, *this), - m_x76f100(*this, "eeprom"), - m_d0_handler(*this), - m_d1_handler(*this), - m_d2_handler(*this), - m_d3_handler(*this), - m_d4_handler(*this), - m_d5_handler(*this), - m_d6_handler(*this), - m_d7_handler(*this) + konami573_cassette_y_device(mconfig, KONAMI573_CASSETTE_Y, tag, owner, clock) { } -konami573_cassette_y_device::konami573_cassette_y_device(const machine_config &mconfig, const device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, __FILE__), +konami573_cassette_y_device::konami573_cassette_y_device(const machine_config &mconfig, const device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), konami573_cassette_interface(mconfig, *this), m_x76f100(*this, "eeprom"), m_d0_handler(*this), @@ -283,10 +271,10 @@ WRITE_LINE_MEMBER(konami573_cassette_y_device::write_line_d7) } -const device_type KONAMI573_CASSETTE_YI = device_creator; +DEFINE_DEVICE_TYPE(KONAMI573_CASSETTE_YI, konami573_cassette_yi_device, "k573cassyi", "Konami 573 Cassette YI") konami573_cassette_yi_device::konami573_cassette_yi_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - konami573_cassette_y_device(mconfig, KONAMI573_CASSETTE_YI, "Konami 573 Cassette YI", tag, owner, clock, "k573cassyi", __FILE__), + konami573_cassette_y_device(mconfig, KONAMI573_CASSETTE_YI, tag, owner, clock), m_ds2401(*this, "id") { } @@ -314,10 +302,10 @@ READ_LINE_MEMBER(konami573_cassette_yi_device::read_line_ds2401) } -const device_type KONAMI573_CASSETTE_ZI = device_creator; +DEFINE_DEVICE_TYPE(KONAMI573_CASSETTE_ZI, konami573_cassette_zi_device, "k573casszi", "Konami 573 Cassette ZI") konami573_cassette_zi_device::konami573_cassette_zi_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, KONAMI573_CASSETTE_ZI, "Konami 573 Cassette ZI", tag, owner, clock, "k573casszi", __FILE__), + device_t(mconfig, KONAMI573_CASSETTE_ZI, tag, owner, clock), konami573_cassette_interface(mconfig, *this), m_zs01(*this,"eeprom"), m_ds2401(*this, "id") @@ -376,10 +364,10 @@ READ_LINE_MEMBER(konami573_cassette_zi_device::read_line_secflash_sda) } -const device_type KONAMI573_CASSETTE_SLOT = device_creator; +DEFINE_DEVICE_TYPE(KONAMI573_CASSETTE_SLOT, konami573_cassette_slot_device, "k572cassslot", "Konami 573 Cassette Slot") konami573_cassette_slot_device::konami573_cassette_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, KONAMI573_CASSETTE_SLOT, "Konami 573 Cassette Slot", tag, owner, clock, "k573cassslot", __FILE__), + device_t(mconfig, KONAMI573_CASSETTE_SLOT, tag, owner, clock), device_slot_interface(mconfig, *this), m_dsr_handler(*this) { diff --git a/src/mame/machine/k573cass.h b/src/mame/machine/k573cass.h index ee5057746cc..442ec5d2d86 100644 --- a/src/mame/machine/k573cass.h +++ b/src/mame/machine/k573cass.h @@ -4,11 +4,11 @@ * Konami 573 Security Cassette * */ +#ifndef MAME_MACHINE_K573CASS_H +#define MAME_MACHINE_K573CASS_H #pragma once -#ifndef __K573CASS_H__ -#define __K573CASS_H__ #include "machine/adc083x.h" #include "machine/ds2401.h" @@ -20,7 +20,7 @@ devcb = &konami573_cassette_slot_device::set_dsr_handler(*device, DEVCB_##_devcb); -extern const device_type KONAMI573_CASSETTE_SLOT; +DECLARE_DEVICE_TYPE(KONAMI573_CASSETTE_SLOT, konami573_cassette_slot_device) class konami573_cassette_interface; @@ -32,7 +32,7 @@ class konami573_cassette_slot_device : public device_t, public: konami573_cassette_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_dsr_handler(device_t &device, _Object object) { return downcast(device).m_dsr_handler.set_callback(object); } + template static devcb_base &set_dsr_handler(device_t &device, Object &&cb) { return downcast(device).m_dsr_handler.set_callback(std::forward(cb)); } DECLARE_WRITE_LINE_MEMBER(write_line_d0); DECLARE_WRITE_LINE_MEMBER(write_line_d1); @@ -62,7 +62,6 @@ class konami573_cassette_interface : public device_slot_card_interface friend class konami573_cassette_slot_device; public: - konami573_cassette_interface(const machine_config &mconfig, device_t &device); virtual ~konami573_cassette_interface(); DECLARE_WRITE_LINE_MEMBER(output_dsr) { m_slot->m_dsr_handler(state); } @@ -81,18 +80,20 @@ public: virtual DECLARE_READ_LINE_MEMBER(read_line_adc083x_do); virtual DECLARE_READ_LINE_MEMBER(read_line_adc083x_sars); +protected: + konami573_cassette_interface(const machine_config &mconfig, device_t &device); + konami573_cassette_slot_device *m_slot; }; -extern const device_type KONAMI573_CASSETTE_X; +DECLARE_DEVICE_TYPE(KONAMI573_CASSETTE_X, konami573_cassette_x_device) class konami573_cassette_x_device: public device_t, public konami573_cassette_interface { public: konami573_cassette_x_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - konami573_cassette_x_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock,const char *shortname, const char *source); virtual DECLARE_READ_LINE_MEMBER(read_line_secflash_sda) override; virtual DECLARE_WRITE_LINE_MEMBER(write_line_d0) override; @@ -101,6 +102,8 @@ public: virtual DECLARE_WRITE_LINE_MEMBER(write_line_d3) override; protected: + konami573_cassette_x_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; virtual machine_config_constructor device_mconfig_additions() const override; @@ -109,7 +112,7 @@ private: }; -extern const device_type KONAMI573_CASSETTE_XI; +DECLARE_DEVICE_TYPE(KONAMI573_CASSETTE_XI, konami573_cassette_xi_device) class konami573_cassette_xi_device: public konami573_cassette_x_device { @@ -136,7 +139,7 @@ private: }; -extern const device_type KONAMI573_CASSETTE_Y; +DECLARE_DEVICE_TYPE(KONAMI573_CASSETTE_Y, konami573_cassette_y_device) #define MCFG_KONAMI573_CASSETTE_Y_D0_HANDLER(_devcb) \ @@ -168,7 +171,6 @@ class konami573_cassette_y_device: public device_t, { public: konami573_cassette_y_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - konami573_cassette_y_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock,const char *shortname, const char *source); // static configuration helpers template static devcb_base &set_d0_handler(device_t &device, _Object object) { return downcast(device).m_d0_handler.set_callback(object); } @@ -191,6 +193,8 @@ public: virtual DECLARE_WRITE_LINE_MEMBER(write_line_d7) override; protected: + konami573_cassette_y_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; virtual machine_config_constructor device_mconfig_additions() const override; @@ -207,7 +211,7 @@ private: }; -extern const device_type KONAMI573_CASSETTE_YI; +DECLARE_DEVICE_TYPE(KONAMI573_CASSETTE_YI, konami573_cassette_yi_device) class konami573_cassette_yi_device: public konami573_cassette_y_device { @@ -225,7 +229,7 @@ private: }; -extern const device_type KONAMI573_CASSETTE_ZI; +DECLARE_DEVICE_TYPE(KONAMI573_CASSETTE_ZI, konami573_cassette_zi_device) class konami573_cassette_zi_device: public device_t, public konami573_cassette_interface @@ -251,4 +255,4 @@ private: }; -#endif +#endif // MAME_MACHINE_K573CASS_H diff --git a/src/mame/machine/k573dio.cpp b/src/mame/machine/k573dio.cpp index e805f12c389..5df5bcfd84e 100644 --- a/src/mame/machine/k573dio.cpp +++ b/src/mame/machine/k573dio.cpp @@ -65,7 +65,7 @@ */ -const device_type KONAMI_573_DIGITAL_IO_BOARD = device_creator; +DEFINE_DEVICE_TYPE(KONAMI_573_DIGITAL_IO_BOARD, k573dio_device, "k573_dio", "Konami 573 digital I/O board") DEVICE_ADDRESS_MAP_START(amap, 16, k573dio_device) AM_RANGE(0x00, 0x01) AM_READ(a00_r) @@ -106,7 +106,7 @@ static MACHINE_CONFIG_FRAGMENT( k573dio ) MACHINE_CONFIG_END k573dio_device::k573dio_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, KONAMI_573_DIGITAL_IO_BOARD, "Konami 573 digital I/O board", tag, owner, clock, "k573dio", __FILE__), + : device_t(mconfig, KONAMI_573_DIGITAL_IO_BOARD, tag, owner, clock), mas3507d(*this, "mpeg"), digital_id(*this, "digital_id"), output_cb(*this) diff --git a/src/mame/machine/k573dio.h b/src/mame/machine/k573dio.h index 0fb3ee47ce5..9387238a622 100644 --- a/src/mame/machine/k573dio.h +++ b/src/mame/machine/k573dio.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:smf -#pragma once +#ifndef MAME_MACHINE_K573DIO_H +#define MAME_MACHINE_K573DIO_H -#ifndef _K573DIO_H_ -#define _K573DIO_H_ +#pragma once #include "sound/mas3507d.h" #include "machine/ds2401.h" @@ -80,6 +80,6 @@ private: void output(int offset, uint16_t data); }; -extern const device_type KONAMI_573_DIGITAL_IO_BOARD; +DECLARE_DEVICE_TYPE(KONAMI_573_DIGITAL_IO_BOARD, k573dio_device) -#endif +#endif // MAME_MACHINE_K573DIO_H diff --git a/src/mame/machine/k573mcr.cpp b/src/mame/machine/k573mcr.cpp index 43db5e70cc7..1255fa50a20 100644 --- a/src/mame/machine/k573mcr.cpp +++ b/src/mame/machine/k573mcr.cpp @@ -13,7 +13,7 @@ */ k573mcr_device::k573mcr_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, KONAMI_573_MEMORY_CARD_READER, "Konami 573 Memory Card Reader", tag, owner, clock, "k573mcr", __FILE__) + device_t(mconfig, KONAMI_573_MEMORY_CARD_READER, tag, owner, clock) { } @@ -31,4 +31,4 @@ const tiny_rom_entry *k573mcr_device::device_rom_region() const return ROM_NAME( k573mcr ); } -const device_type KONAMI_573_MEMORY_CARD_READER = device_creator; +DEFINE_DEVICE_TYPE(KONAMI_573_MEMORY_CARD_READER, k573mcr_device, "k573mcr", "Konami 573 Memory Card Reader") diff --git a/src/mame/machine/k573mcr.h b/src/mame/machine/k573mcr.h index 720f027fc9c..29e44ca098e 100644 --- a/src/mame/machine/k573mcr.h +++ b/src/mame/machine/k573mcr.h @@ -4,14 +4,14 @@ * Konami 573 Memory Card Reader * */ +#ifndef MAME_MACHINE_K573_MCR_H +#define MAME_MACHINE_K573_MCR_H #pragma once -#ifndef __K573MCR_H__ -#define __K573MCR_H__ -extern const device_type KONAMI_573_MEMORY_CARD_READER; +DECLARE_DEVICE_TYPE(KONAMI_573_MEMORY_CARD_READER, k573mcr_device) class k573mcr_device : public device_t { @@ -24,4 +24,4 @@ protected: virtual const tiny_rom_entry *device_rom_region() const override; }; -#endif +#endif // MAME_MACHINE_K573_MCR_H diff --git a/src/mame/machine/k573msu.cpp b/src/mame/machine/k573msu.cpp index 4113837a44e..2f04b9672a3 100644 --- a/src/mame/machine/k573msu.cpp +++ b/src/mame/machine/k573msu.cpp @@ -73,7 +73,7 @@ */ k573msu_device::k573msu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, KONAMI_573_MULTI_SESSION_UNIT, "Konami 573 Multi Session Unit", tag, owner, clock, "k573msu", __FILE__) + device_t(mconfig, KONAMI_573_MULTI_SESSION_UNIT, tag, owner, clock) { } @@ -94,4 +94,4 @@ const tiny_rom_entry *k573msu_device::device_rom_region() const return ROM_NAME( k573msu ); } -const device_type KONAMI_573_MULTI_SESSION_UNIT = device_creator; +DEFINE_DEVICE_TYPE(KONAMI_573_MULTI_SESSION_UNIT, k573msu_device, "k573msu", "Konami 573 Multi Session Unit") diff --git a/src/mame/machine/k573msu.h b/src/mame/machine/k573msu.h index 64623d5ca82..e32121a1c14 100644 --- a/src/mame/machine/k573msu.h +++ b/src/mame/machine/k573msu.h @@ -4,14 +4,14 @@ * Konami 573 Multi Session Unit * */ +#ifndef MAME_MACHINE_K573MSU_H +#define MAME_MACHINE_K573MSU_H #pragma once -#ifndef __K573MSU_H__ -#define __K573MSU_H__ -extern const device_type KONAMI_573_MULTI_SESSION_UNIT; +DECLARE_DEVICE_TYPE(KONAMI_573_MULTI_SESSION_UNIT, k573msu_device) class k573msu_device : public device_t { @@ -24,4 +24,4 @@ protected: virtual const tiny_rom_entry *device_rom_region() const override; }; -#endif +#endif // MAME_MACHINE_K573MSU_H diff --git a/src/mame/machine/k573npu.cpp b/src/mame/machine/k573npu.cpp index 5364b4c3001..5d06644ae29 100644 --- a/src/mame/machine/k573npu.cpp +++ b/src/mame/machine/k573npu.cpp @@ -73,7 +73,7 @@ */ k573npu_device::k573npu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, KONAMI_573_NETWORK_PCB_UNIT, "Konami 573 Network PCB Unit", tag, owner, clock, "k573npu", __FILE__) + device_t(mconfig, KONAMI_573_NETWORK_PCB_UNIT, tag, owner, clock) { } @@ -91,4 +91,4 @@ const tiny_rom_entry *k573npu_device::device_rom_region() const return ROM_NAME( k573npu ); } -const device_type KONAMI_573_NETWORK_PCB_UNIT = device_creator; +DEFINE_DEVICE_TYPE(KONAMI_573_NETWORK_PCB_UNIT, k573npu_device, "k573npu", "Konami 573 Network PCB Unit") diff --git a/src/mame/machine/k573npu.h b/src/mame/machine/k573npu.h index e1c9fa35842..c4317f2dc67 100644 --- a/src/mame/machine/k573npu.h +++ b/src/mame/machine/k573npu.h @@ -4,14 +4,14 @@ * Konami 573 Network PCB Unit * */ +#ifndef MAME_MACHINE_K573NPU_H +#define MAME_MACHINE_K573NPU_H #pragma once -#ifndef __K573NPU_H__ -#define __K573NPU_H__ -extern const device_type KONAMI_573_NETWORK_PCB_UNIT; +DECLARE_DEVICE_TYPE(KONAMI_573_NETWORK_PCB_UNIT, k573npu_device) class k573npu_device : public device_t { @@ -24,4 +24,4 @@ protected: virtual const tiny_rom_entry *device_rom_region() const override; }; -#endif +#endif // MAME_MACHINE_K573NPU_H diff --git a/src/mame/machine/k7659kb.cpp b/src/mame/machine/k7659kb.cpp index 9c9114c8d4a..a58e3c5d220 100644 --- a/src/mame/machine/k7659kb.cpp +++ b/src/mame/machine/k7659kb.cpp @@ -22,7 +22,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type K7659_KEYBOARD = device_creator; +DEFINE_DEVICE_TYPE(K7659_KEYBOARD, k7659_keyboard_device, "k7659_keyboard", "K7659 Keyboard") @@ -214,7 +214,7 @@ ioport_constructor k7659_keyboard_device::device_input_ports() const //------------------------------------------------- k7659_keyboard_device::k7659_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, K7659_KEYBOARD, "K7659 Keyboard", tag, owner, clock, "k7659kb", __FILE__) + : device_t(mconfig, K7659_KEYBOARD, tag, owner, clock) {} diff --git a/src/mame/machine/k7659kb.h b/src/mame/machine/k7659kb.h index d5ed7ab3ee4..42f1ab26dc2 100644 --- a/src/mame/machine/k7659kb.h +++ b/src/mame/machine/k7659kb.h @@ -6,11 +6,10 @@ *********************************************************************/ -#pragma once - -#ifndef __K7659_KEYBOARD__ -#define __K7659_KEYBOARD__ +#ifndef MAME_MACHINE_K7659KB_H +#define MAME_MACHINE_K7659KB_H +#pragma once @@ -68,7 +67,7 @@ private: // device type definition extern const device_type K7659_KEYBOARD; +DECLARE_DEVICE_TYPE(K7659_KEYBOARD, k7659_keyboard_device) - -#endif +#endif // MAME_MACHINE_K7659KB_H diff --git a/src/mame/machine/kaneko_calc3.cpp b/src/mame/machine/kaneko_calc3.cpp index 78ccadafb80..13ab946a72b 100644 --- a/src/mame/machine/kaneko_calc3.cpp +++ b/src/mame/machine/kaneko_calc3.cpp @@ -27,10 +27,13 @@ #include "kaneko_calc3.h" #include "machine/eepromser.h" -const device_type KANEKO_CALC3 = device_creator; +#define VERBOSE_OUTPUT 0 + + +DEFINE_DEVICE_TYPE(KANEKO_CALC3, kaneko_calc3_device, "kaneko_calc3", "Kaneko CALC3 MCU") kaneko_calc3_device::kaneko_calc3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, KANEKO_CALC3, "Kaneko CALC3 MCU", tag, owner, clock, "kaneko_calc3", __FILE__), + : device_t(mconfig, KANEKO_CALC3, tag, owner, clock), m_mcuram(*this, ":mcuram"), m_mcu_status(0), m_mcu_command_offset(0), diff --git a/src/mame/machine/kaneko_calc3.h b/src/mame/machine/kaneko_calc3.h index 51a3b52a4b4..3400883aed9 100644 --- a/src/mame/machine/kaneko_calc3.h +++ b/src/mame/machine/kaneko_calc3.h @@ -1,9 +1,10 @@ // license:BSD-3-Clause // copyright-holders:Luca Elia, David Haywood /* CALC 3 */ +#ifndef MAME_MACHINE_KANEKO_CALC3_H +#define MAME_MACHINE_KANEKO_CALC3_H -#define VERBOSE_OUTPUT 0 - +#pragma once class kaneko_calc3_device : public device_t @@ -59,4 +60,6 @@ private: }; -extern const device_type KANEKO_CALC3; +DECLARE_DEVICE_TYPE(KANEKO_CALC3, kaneko_calc3_device) + +#endif // MAME_MACHINE_KANEKO_CALC3_H diff --git a/src/mame/machine/kaneko_hit.cpp b/src/mame/machine/kaneko_hit.cpp index 47200d796b6..fdb758645a6 100644 --- a/src/mame/machine/kaneko_hit.cpp +++ b/src/mame/machine/kaneko_hit.cpp @@ -28,10 +28,10 @@ #include "emu.h" #include "kaneko_hit.h" -const device_type KANEKO_HIT = device_creator; +DEFINE_DEVICE_TYPE(KANEKO_HIT, kaneko_hit_device, "kaneko_hit", "Kaneko CALC Hitbox") kaneko_hit_device::kaneko_hit_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, KANEKO_HIT, "Kaneko CALC Hitbox", tag, owner, clock, "kaneko_hit", __FILE__), + : device_t(mconfig, KANEKO_HIT, tag, owner, clock), m_watchdog(*this, "^watchdog") { m_hittype = -1; diff --git a/src/mame/machine/kaneko_hit.h b/src/mame/machine/kaneko_hit.h index 35cbbef2c50..40f3355776a 100644 --- a/src/mame/machine/kaneko_hit.h +++ b/src/mame/machine/kaneko_hit.h @@ -1,59 +1,63 @@ // license:BSD-3-Clause // copyright-holders:Luca Elia, David Haywood,Stephane Humbert /* Kaneko Hit protection */ +#ifndef MAME_MACHINE_KANEKO_HIT_H +#define MAME_MACHINE_KANEKO_HIT_H + +#pragma once #include "machine/watchdog.h" -struct calc1_hit_t +class kaneko_hit_device : public device_t { - uint16_t x1p, y1p, x1s, y1s; - uint16_t x2p, y2p, x2s, y2s; +public: + kaneko_hit_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - int16_t x12, y12, x21, y21; + static void set_type(device_t &device, int hittype); - uint16_t mult_a, mult_b; -}; + int m_hittype; -struct calc3_hit_t -{ - int x1p, y1p, z1p, x1s, y1s, z1s; - int x2p, y2p, z2p, x2s, y2s, z2s; + DECLARE_READ16_MEMBER(kaneko_hit_r); + DECLARE_WRITE16_MEMBER(kaneko_hit_w); - int x1po, y1po, z1po, x1so, y1so, z1so; - int x2po, y2po, z2po, x2so, y2so, z2so; +protected: + virtual void device_start() override; + virtual void device_reset() override; - int x12, y12, z12, x21, y21, z21; +private: + struct calc1_hit_t + { + uint16_t x1p, y1p, x1s, y1s; + uint16_t x2p, y2p, x2s, y2s; - int x_coll, y_coll, z_coll; + int16_t x12, y12, x21, y21; - int x1tox2, y1toy2, z1toz2; + uint16_t mult_a, mult_b; + }; - uint16_t mult_a, mult_b; + struct calc3_hit_t + { + int x1p, y1p, z1p, x1s, y1s, z1s; + int x2p, y2p, z2p, x2s, y2s, z2s; - uint16_t flags; - uint16_t mode; -}; + int x1po, y1po, z1po, x1so, y1so, z1so; + int x2po, y2po, z2po, x2so, y2so, z2so; + int x12, y12, z12, x21, y21, z21; + int x_coll, y_coll, z_coll; -class kaneko_hit_device : public device_t -{ -public: - kaneko_hit_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + int x1tox2, y1toy2, z1toz2; - static void set_type(device_t &device, int hittype); + uint16_t mult_a, mult_b; - int m_hittype; + uint16_t flags; + uint16_t mode; + }; - DECLARE_READ16_MEMBER(kaneko_hit_r); - DECLARE_WRITE16_MEMBER(kaneko_hit_w); -protected: - virtual void device_start() override; - virtual void device_reset() override; -private: required_device m_watchdog; calc1_hit_t m_hit; @@ -75,4 +79,6 @@ private: }; -extern const device_type KANEKO_HIT; +DECLARE_DEVICE_TYPE(KANEKO_HIT, kaneko_hit_device) + +#endif // MAME_MACHINE_KANEKO_HIT_H diff --git a/src/mame/machine/kaneko_toybox.cpp b/src/mame/machine/kaneko_toybox.cpp index 3a1868e4e9a..930573fbb70 100644 --- a/src/mame/machine/kaneko_toybox.cpp +++ b/src/mame/machine/kaneko_toybox.cpp @@ -51,10 +51,331 @@ mcu_subcmd = kaneko16_mcu_ram[0x0014/2]; // sub-command parameter, happens o #include "kaneko_toybox.h" #include "machine/eepromser.h" -const device_type KANEKO_TOYBOX = device_creator; +/*************************************************************************** + + TOYBOX MCU data for Bonk's Adventure + +***************************************************************************/ + +// notes based on test programs results, verified on PCB: +// - bonkadv_mcu_4_30 is the only cmd that outputs an odd (655) number of bytes +// - bonkadv_mcu_4_33: the 32 'zeroed' bytes every 64 bytes are effectively written by the MCU + +// MCU executed command: 4300 0100 - factory settings +// this command is issued whenever the nvram settings are corrupted +// the MCU writes directly to NVRAM +static const uint16_t bonkadv_mcu_43[] = { + 0x8BE0,0x8E71,0x0102,0x0102,0x0300,0x010C,0x0202,0x0202, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0030,0x0020,0x4F6B,0x0305,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0082,0x6F82,0x628C,0xB490,0x6CAB +}; + +// MCU executed command: 0400 0E00 0034 - code +/* +200E00: 7071 moveq #$71, D0 +200E02: 7273 moveq #$73, D1 +200E04: 7475 moveq #$75, D2 +200E06: 7677 moveq #$77, D3 +200E08: 7879 moveq #$79, D4 +200E0A: 7A7B moveq #$7b, D5 +200E0C: 7C7D moveq #$7d, D6 +200E0E: 7E7F moveq #$7f, D7 +200E10: 4E75 rts +*/ +static const uint16_t bonkadv_mcu_4_34[] = { + 0x7071,0x7273,0x7475,0x7677,0x7879,0x7a7b,0x7c7d,0x7e7f, + 0x4e75 +}; +// MCU executed command: 0400 0180 0032 - 128 bytes at $200180 +static const uint16_t bonkadv_mcu_4_32[] = { + 0x00cc,0xcc0c,0xc0c0,0xc080,0x0484,0xb6a6,0x0404,0x80c0, + 0x80b1,0xb1a1,0xa1b2,0xa2b3,0xb3a3,0xa3b1,0xb1b1,0xb1c0, + 0xc0a1,0xa1a1,0xa1b2,0xb2a2,0xa290,0x9090,0xb9b9,0xa9a9, + 0xbaaa,0xbbbb,0xabab,0xb9b9,0xb9b9,0xc8c8,0xa9a9,0xa9a9, + 0xbaba,0xaaaa,0x9898,0x98b9,0xb9a9,0xa9ba,0xaabb,0xbbab, + 0xabb9,0xb9b9,0xb9c8,0xc8a9,0xa9a9,0xa9ba,0xbaaa,0xaa98, + 0x9898,0xb1b1,0xa1a1,0xb2a2,0xb3b3,0xa3a3,0xb1b1,0xb1b1, + 0xc0c0,0xa1a1,0xa1a1,0xb2b2,0xa2a2,0x9090,0x9000,0x0000 +}; +// MCU executed command: 0400 0280 0031 - 112 bytes at $200280 +static const uint16_t bonkadv_mcu_4_31[] = { + 0x1013,0x1411,0x1216,0x1519,0x1a17,0x1824,0x2322,0x211f, + 0x201e,0x1d1c,0x1b27,0x2825,0x2629,0x2a2b,0x2e2f,0x2c2d, + 0x3130,0x3435,0x3233,0x3f3e,0x3d3c,0x3a3b,0x3938,0x3736, + 0x4243,0x4041,0x4445,0x4649,0x4a47,0x484c,0x4b4f,0x504d, + 0x4e5a,0x5958,0x5755,0x5654,0x5352,0x515d,0x5e5b,0x5c5f, + 0x6061,0x6465,0x6263,0x6766,0x6a6b,0x6869,0x7574,0x7372, + 0x7071,0x6f6e,0x6d6c,0x7879,0x7677,0x7a7b,0x7c7d,0x7e7f +}; +// MCU executed command: 0400 0E50 0030 - 655 bytes at $200E50 (656 here) +static const uint16_t bonkadv_mcu_4_30[] = { + 0x8c00,0x9700,0xa000,0xa700,0xb200,0xb700,0xc000,0xcc00, + 0xd600,0xdf00,0xef00,0xf500,0xfd00,0x0501,0x0b01,0x1801, + 0x1e01,0x2901,0x3101,0x3701,0x4101,0x4901,0x0b01,0x5d01, + 0xa700,0xb200,0x6c01,0x8101,0xb200,0x8101,0x8101,0x8101, + 0x8101,0x8101,0x8101,0x8101,0x8101,0x8101,0x8101,0x8101, + 0x8101,0x8101,0x8101,0x8101,0x8101,0x8101,0x8101,0x8101, + 0x8101,0x8101,0x8101,0x8101,0x8101,0x8101,0x8101,0x2e02, + 0x3602,0x3d02,0x4102,0x4f02,0x5502,0x5502,0x5f02,0x6402, + 0x6d02,0x7302,0x7802,0x7d02,0x8302,0x8a02,0x0165,0x712b, + 0x57fe,0x57a2,0xff00,0x0003,0x7c3a,0x436c,0x66ff,0x0000, + 0x026c,0x6d43,0xff00,0x0000,0x74a5,0x8373,0x3599,0x9fff, + + 0x0000,0x074a,0xff00,0x0002,0x8788,0x3331,0x32ff,0x0000, + 0x0276,0x8c71,0x2d8c,0xfe12,0x8cff,0x0000,0x0171,0x0d29, + 0xfe0d,0x29ff,0x0000,0x0559,0x5a5b,0x8a8b,0xff00,0x0003, + 0x0d0e,0x576a,0x641e,0xfe0d,0x0efe,0x64a3,0xff00,0x0006, + 0x0262,0xff00,0x0007,0x3e3f,0x7a7b,0xff00,0x0007,0x7584, + 0x4c53,0xff00,0x0001,0x6645,0xff00,0x0007,0x0d18,0x2984, + 0x5384,0xfe0d,0x29ff,0x0000,0x0457,0x5cff,0x0000,0x0751, + 0x5202,0x45fe,0x4575,0xff00,0x0000,0x191a,0x1b6e,0xff00, + 0x0006,0x3472,0xff00,0x0000,0x6569,0x090f,0x8b23,0xff00, + 0x0004,0x3b3c,0x3d79,0xff00,0x0080,0x770a,0x8176,0x2a65, + 0x64fe,0x7776,0xfe2a,0x76fe,0x650a,0xff00,0x0000,0x1011, + 0x1226,0x2728,0xa655,0x940f,0x68ff,0x0000,0x8045,0x6477, + 0x0a81,0x762a,0x65fe,0x7776,0xfe2a,0x76fe,0x650a,0xff00, + 0x0000,0x166b,0xff00,0x0007,0x1e30,0x39ff,0x0000,0x0345, + 0x3a77,0x7843,0x4647,0xff00,0x0000,0x7335,0x8399,0x9fff, + 0x0000,0x0237,0x38ff,0x0000,0x0044,0x303b,0xff00,0x0000, + + 0x7d7e,0x7fa1,0x0aff,0x0000,0x0070,0xff00,0x0000,0x3e3f, + 0x7a7b,0x6180,0x89a4,0xff00,0x0006,0x86a5,0x4f42,0xff00, + 0x0000,0x1011,0x1255,0x0f68,0xff00,0x0002,0x8788,0x4033, + 0xff00,0x0005,0x650f,0xff00,0x0008,0x9596,0x9ba7,0xff00, + 0x0000,0x4849,0x82ff,0x0000,0x022e,0x2f30,0xff00,0x0001, + 0x7778,0x5826,0x2728,0xa6ff,0x0000,0x0813,0x1402,0x51ff, + 0x0000,0x072e,0x5c5d,0xff00,0x0006,0x57ff,0x0000,0x0230, + 0x391e,0x65fe,0x6530,0xff00,0x0000,0x4bff,0x0000,0x008e, + 0x8f90,0x91ff,0x0000,0x0092,0x9d17,0xff00,0x0000,0xff00, + 0x0000,0x8d9b,0xa77d,0x7e7f,0xa10a,0x9596,0xff00,0x0001, + 0x1993,0xff00,0x0000,0x67ff,0x0000,0x0067,0xff00,0x0000, + 0x27ff,0x0000,0x0390,0x8e23,0x978b,0xff00,0x0000,0x1d9e, + 0xff00,0x0007,0x3bff,0x0000,0x001d,0xff00,0x0000,0x8e90, + 0xff00,0x0005,0x2495,0x96ff,0x0000,0x009a,0xff00,0x0000 +}; +// MCU executed command: 0400 0400 0033 - 2560 bytes at $200400 +static const uint16_t bonkadv_mcu_4_33[] = { + 0x00a4,0x0001,0x00a5,0x005a,0x00a6,0x0074,0x00a7,0x009b, + 0x00a8,0x00d0,0x00a9,0x00fe,0x00aa,0x015d,0x00ab,0x01b0, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0001,0x0002,0x0019,0x005b,0x0022,0x0075,0x002d,0x009c, + 0x0041,0x00d1,0x004e,0x00ff,0x0060,0x015f,0x0072,0x01b1, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0002,0x0008,0x001a,0x0061,0x0023,0x007b,0x002e,0x00a2, + 0x0042,0x00d7,0x004f,0x0107,0x0061,0x0165,0x0073,0x01b7, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x000a,0x0000,0x0063,0x0000,0x007d,0x0000,0x00a4, + 0x0000,0x00d9,0x0000,0x0109,0x0000,0x0167,0x0000,0x01b9, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + + 0x0003,0x000b,0x001b,0x0064,0x0024,0x007e,0x002f,0x00a5, + 0x0043,0x00da,0x0050,0x010a,0x0062,0x0168,0x0074,0x01ba, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x000c,0x0000,0x0065,0x0000,0x007f,0x0000,0x00a6, + 0x0000,0x00db,0x0000,0x010b,0x0000,0x0169,0x0000,0x01bb, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0004,0x0008,0x001c,0x0061,0x0025,0x007b,0x0030,0x00a2, + 0x0044,0x00d7,0x0051,0x0107,0x0063,0x0165,0x0075,0x01b7, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0005,0x000d,0x001d,0x0066,0x0025,0x007b,0x0031,0x00a7, + 0x0045,0x00dc,0x0051,0x0107,0x0063,0x0165,0x0075,0x01b7, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + + 0x0000,0x0017,0x0000,0x0069,0x0000,0x0089,0x0000,0x00af, + 0x0000,0x00df,0x0000,0x0115,0x0000,0x0173,0x0000,0x01c5, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0009,0x0015,0x001e,0x0067,0x0029,0x0087,0x0034,0x00ad, + 0x0046,0x00dd,0x0055,0x0113,0x0067,0x0171,0x0079,0x01c3, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0006,0x000e,0x0006,0x000e,0x0026,0x0080,0x0006,0x000e, + 0x0000,0x0000,0x0052,0x010c,0x0064,0x016a,0x0076,0x01bc, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0007,0x0010,0x0007,0x0010,0x0027,0x0082,0x0032,0x00a8, + 0x0000,0x0000,0x0053,0x010e,0x0065,0x016c,0x0077,0x01be, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + + 0x0000,0x0013,0x0000,0x0013,0x0000,0x0085,0x0000,0x00ab, + 0x0000,0x0000,0x0000,0x0111,0x0000,0x016f,0x0000,0x01c1, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0008,0x0014,0x0008,0x0014,0x0028,0x0086,0x0033,0x00ac, + 0x0000,0x0000,0x0054,0x0112,0x0066,0x0170,0x0078,0x01c2, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0018,0x0000,0x006a,0x0000,0x008a,0x0000,0x00b0, + 0x0000,0x00e0,0x0000,0x0116,0x0000,0x0174,0x0000,0x01c6, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x000c,0x0000,0x0065,0x0000,0x007f,0x0000,0x00a6, + 0x0000,0x00db,0x0000,0x010b,0x0000,0x0169,0x0000,0x01bb, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + + 0x000a,0x0019,0x001f,0x006b,0x002a,0x008b,0x0035,0x00b1, + 0x0047,0x00e1,0x0056,0x0117,0x0068,0x0175,0x007a,0x01c7, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x000b,0x0019,0x0020,0x006b,0x002b,0x008b,0x0036,0x00b1, + 0x0048,0x00e1,0x0057,0x0117,0x0069,0x0175,0x007a,0x01c7, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0015,0x003e,0x0015,0x003e,0x0099,0x0095,0x0015,0x003e, + 0x0000,0x0000,0x009e,0x013a,0x006d,0x018f,0x007e,0x01dc, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x000c,0x001d,0x000c,0x001d,0x000c,0x001d,0x000c,0x001d, + 0x0049,0x00e5,0x0058,0x011b,0x006a,0x0179,0x007b,0x01c9, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + + 0x0000,0x001f,0x0000,0x001f,0x0000,0x001f,0x0000,0x001f, + 0x0000,0x00e7,0x0000,0x011d,0x0000,0x017b,0x0000,0x01cb, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x000d,0x0020,0x0021,0x006f,0x002c,0x008f,0x0037,0x00b5, + 0x004a,0x00e8,0x0059,0x011e,0x006b,0x017c,0x007c,0x01cc, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0022,0x0000,0x0071,0x0000,0x0091,0x0000,0x00b7, + 0x0000,0x00ea,0x0000,0x0120,0x0000,0x017e,0x0000,0x01ce, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0014,0x003b,0x0014,0x003b,0x005d,0x0092,0x0014,0x003b, + 0x0014,0x003b,0x009d,0x0137,0x00a0,0x018c,0x00a1,0x01d9, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + + 0x0012,0x0036,0x0012,0x0036,0x0012,0x0036,0x0012,0x0036, + 0x008a,0x00e5,0x00be,0x013c,0x006c,0x0184,0x007d,0x01d1, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0013,0x0038,0x0013,0x0038,0x0013,0x0038,0x0013,0x0038, + 0x008a,0x00e5,0x00bf,0x013d,0x006c,0x0184,0x007d,0x01d1, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0038,0x00ba,0x0038,0x00ba,0x0038,0x00ba,0x0038,0x00ba, + 0x0038,0x00ba,0x00a2,0x0128,0x006e,0x019c,0x007f,0x01e7, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x005c,0x014d,0x005c,0x014d,0x005c,0x014d,0x005c,0x014d, + 0x0000,0x0000,0x009c,0x0124,0x0071,0x01a5,0x0082,0x01f0, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + + 0x005b,0x014d,0x005b,0x014d,0x005b,0x014d,0x005b,0x014d, + 0x0000,0x0000,0x009b,0x0124,0x0070,0x01a1,0x0081,0x01ec, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0044,0x0000,0x0044,0x0000,0x0044,0x0000,0x0044, + 0x0000,0x00db,0x0000,0x010b,0x0000,0x0169,0x0000,0x01bb, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0018,0x0045,0x0018,0x0045,0x0018,0x0045,0x0018,0x0045, + 0x0044,0x00d7,0x0051,0x0107,0x0063,0x0165,0x0075,0x01b7, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x008b,0x000e,0x008b,0x000e,0x008c,0x0080,0x008b,0x000e, + 0x0000,0x0000,0x008d,0x010c,0x008e,0x016a,0x008f,0x01bc, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + + 0x0090,0x0010,0x0090,0x0010,0x0091,0x0082,0x0092,0x00a8, + 0x0000,0x0000,0x0093,0x010e,0x0094,0x016c,0x0095,0x01be, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0096,0x003e,0x0096,0x003e,0x009a,0x0095,0x0096,0x003e, + 0x0000,0x0000,0x009f,0x013a,0x0097,0x018f,0x0098,0x01dc, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0049,0x0000,0x0069,0x0000,0x0098,0x0000,0x00af, + 0x0000,0x00df,0x0000,0x0145,0x0000,0x0173,0x0000,0x01c5, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x005e,0x0048,0x005f,0x0068,0x006f,0x0097,0x0080,0x00ae, + 0x00ac,0x00de,0x00ad,0x0144,0x00ae,0x0172,0x00af,0x01c4, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + + 0x004b,0x00ed,0x004b,0x00ed,0x004b,0x00ed,0x004b,0x00ed, + 0x004b,0x00ed,0x00b0,0x012b,0x00b6,0x0186,0x00ba,0x01d3, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0087,0x00f2,0x0087,0x00f2,0x0087,0x00f2,0x0087,0x00f2, + 0x0087,0x00f2,0x00b3,0x0130,0x00b8,0x018b,0x00bc,0x01d8, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x00c1,0x0050,0x00c1,0x0050,0x00c1,0x0050,0x00c1,0x0050, + 0x00c1,0x0050,0x00c3,0x0148,0x00c5,0x019a,0x00c7,0x01e5, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x00c2,0x0050,0x00c2,0x0050,0x00c2,0x0050,0x00c2,0x0050, + 0x00c2,0x0050,0x00c4,0x0148,0x00c6,0x019a,0x00c8,0x01e5, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 +}; + +/* decryption table */ +static const uint8_t decryption_table[0x100] = { + 0x7b,0x82,0xf0,0xbc,0x7f,0x1d,0xa2,0xc5,0x2a,0xfa,0x55,0xee,0x1a,0xd0,0x59,0x76, + 0x5e,0x75,0x79,0x16,0xa5,0xf6,0x84,0xed,0x0f,0x2e,0xf2,0x36,0x61,0xac,0xcd,0xab, + 0x01,0x3b,0x01,0x87,0x73,0xab,0xce,0x5d,0xd4,0x1d,0x68,0x2a,0x35,0xea,0x13,0x27, + 0x00,0xaa,0x46,0x36,0x6e,0x65,0x80,0x7e,0x19,0xe2,0x96,0xab,0xac,0xa5,0x6c,0x63, + 0x4a,0x6f,0x87,0xf6,0x6a,0xac,0x38,0xe2,0x1f,0x87,0xf9,0xaa,0xf5,0x41,0x60,0xa6, + 0x42,0xb9,0x30,0xf2,0xc3,0x1c,0x4e,0x4b,0x08,0x10,0x42,0x32,0xbf,0xb2,0xc5,0x0f, + 0x7a,0xab,0x97,0xf6,0xe7,0xb3,0x46,0xf8,0xec,0x2b,0x7d,0x5f,0xb1,0x10,0x03,0xe4, + 0x0f,0x22,0xdf,0x8d,0x10,0x66,0xa7,0x7e,0x96,0xbd,0x5a,0xaf,0xaa,0x43,0xdf,0x10, + 0x7c,0x04,0xe2,0x9d,0x66,0xd7,0xf0,0x02,0x58,0x8a,0x55,0x17,0x16,0xe2,0xe2,0x52, + 0xaf,0xd9,0xf9,0x0d,0x59,0x70,0x86,0x3c,0x05,0xd1,0x52,0xa7,0xf0,0xbf,0x17,0xd0, + 0x23,0x15,0xfe,0x23,0xf2,0x80,0x60,0x6f,0x95,0x89,0x67,0x65,0xc9,0x0e,0xfc,0x16, + 0xd6,0x8a,0x9f,0x25,0x2c,0x0f,0x2d,0xe4,0x51,0xb2,0xa8,0x18,0x3a,0x5d,0x66,0xa0, + 0x9f,0xb0,0x58,0xea,0x78,0x72,0x08,0x6a,0x90,0xb6,0xa4,0xf5,0x08,0x19,0x60,0x4e, + 0x92,0xbd,0xf1,0x05,0x67,0x4f,0x24,0x99,0x69,0x1d,0x0c,0x6d,0xe7,0x74,0x88,0x22, + 0x2d,0x15,0x7a,0xa2,0x37,0xa9,0xa0,0xb0,0x2c,0xfb,0x27,0xe5,0x4f,0xb6,0xcd,0x75, + 0xdc,0x39,0xce,0x6f,0x1f,0xfe,0xcc,0xb5,0xe6,0xda,0xd8,0xee,0x85,0xee,0x2f,0x04, +}; + +/* alt decryption table (gtmr2) */ +static const uint8_t decryption_table_alt[0x100] = { + 0x26,0x17,0xb9,0xcf,0x1a,0xf5,0x14,0x1e,0x0c,0x35,0xb3,0x66,0xa0,0x17,0xe9,0xe4, + 0x90,0xf6,0xd5,0x35,0xac,0x95,0x49,0x43,0x64,0x0c,0x03,0x75,0x4d,0xda,0xb6,0xdf, + 0x06,0xcf,0x83,0x9e,0x35,0x2c,0x71,0x2a,0xab,0xcc,0x65,0xd4,0x1f,0xb0,0x88,0x3c, + 0xb7,0x87,0x35,0xc0,0x41,0x65,0x9f,0xa0,0xd5,0x8c,0x3e,0x06,0x53,0xdb,0x45,0x64, + 0x09,0x1e,0xc5,0x8d,0x50,0x24,0xe2,0x4a,0x9b,0x99,0x77,0x25,0x43,0xa9,0x1d,0xac, + 0x99,0x31,0x75,0xb5,0x53,0xab,0xad,0x5a,0x42,0x14,0xa1,0x52,0xac,0xec,0x5f,0xf8, + 0x8c,0x78,0x05,0x47,0xea,0xb8,0xde,0x69,0x98,0x2d,0x8f,0x9d,0xfc,0x05,0xea,0xee, + 0x77,0xbb,0xa9,0x31,0x01,0x00,0xea,0xd8,0x9c,0x43,0xb5,0x2f,0x4e,0xb5,0x1b,0xd2, + 0x01,0x4b,0xc4,0xf8,0x76,0x92,0x59,0x4f,0x20,0x52,0xd9,0x7f,0xa9,0x19,0xe9,0x7c, + 0x8d,0x3b,0xec,0xe0,0x60,0x08,0x2e,0xbd,0x27,0x8b,0xb2,0xfc,0x29,0xd8,0x39,0x8a, + 0x4f,0x2f,0x6b,0x04,0x10,0xbd,0xa1,0x04,0xde,0xc0,0xd5,0x0f,0x04,0x86,0xd6,0xd8, + 0xfd,0xb1,0x3c,0x4c,0xd1,0xc4,0xf1,0x5b,0xf5,0x8b,0xe3,0xc4,0x89,0x3c,0x39,0x86, + 0xd2,0x92,0xc9,0xe5,0x2c,0x4f,0xe2,0x2f,0x2d,0xc5,0x35,0x09,0x94,0x47,0x3c,0x04, + 0x40,0x8b,0x57,0x08,0xf6,0x74,0xe9,0xb8,0x36,0x4d,0xc5,0x26,0x13,0x3d,0x75,0xa0, + 0xa8,0x29,0x09,0x8c,0x87,0xf7,0x13,0xaf,0x4c,0x38,0x0b,0x8a,0x7f,0x2c,0x62,0x27, + 0x47,0xaa,0xda,0x07,0x92,0x8d,0xfd,0x1f,0xee,0x48,0x1a,0x53,0x3b,0x98,0x6a,0x72, +}; + + +DEFINE_DEVICE_TYPE(KANEKO_TOYBOX, kaneko_toybox_device, "kaneko_toybox", "Kaneko Toybox MCU") kaneko_toybox_device::kaneko_toybox_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, KANEKO_TOYBOX, "Kaneko Toybox MCU", tag, owner, clock, "kaneko_toybox", __FILE__), + : device_t(mconfig, KANEKO_TOYBOX, tag, owner, clock), m_mcuram(*this, ":mcuram"), m_gametype(GAME_NORMAL), m_tabletype(TABLE_NORMAL) diff --git a/src/mame/machine/kaneko_toybox.h b/src/mame/machine/kaneko_toybox.h index acabe623d6d..6d040ae1d76 100644 --- a/src/mame/machine/kaneko_toybox.h +++ b/src/mame/machine/kaneko_toybox.h @@ -1,340 +1,20 @@ // license:BSD-3-Clause // copyright-holders:David Haywood, Luca Elia, Sebastien Volpe /* Kaneko Toybox */ +#ifndef MAME_MACHINE_KANEKO_TOYBOX_H +#define MAME_MACHINE_KANEKO_TOYBOX_H - -#define GAME_NORMAL (0) -#define GAME_BONK (1) - -#define TABLE_NORMAL (0) -#define TABLE_ALT (1) - - - -/*************************************************************************** - - TOYBOX MCU data for Bonk's Adventure - -***************************************************************************/ - -// notes based on test programs results, verified on PCB: -// - bonkadv_mcu_4_30 is the only cmd that outputs an odd (655) number of bytes -// - bonkadv_mcu_4_33: the 32 'zeroed' bytes every 64 bytes are effectively written by the MCU - -// MCU executed command: 4300 0100 - factory settings -// this command is issued whenever the nvram settings are corrupted -// the MCU writes directly to NVRAM -static const uint16_t bonkadv_mcu_43[] = { - 0x8BE0,0x8E71,0x0102,0x0102,0x0300,0x010C,0x0202,0x0202, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x0030,0x0020,0x4F6B,0x0305,0x0000,0x0000,0x0000,0x0000, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x0000,0x0000,0x0000,0x0082,0x6F82,0x628C,0xB490,0x6CAB -}; - -// MCU executed command: 0400 0E00 0034 - code -/* -200E00: 7071 moveq #$71, D0 -200E02: 7273 moveq #$73, D1 -200E04: 7475 moveq #$75, D2 -200E06: 7677 moveq #$77, D3 -200E08: 7879 moveq #$79, D4 -200E0A: 7A7B moveq #$7b, D5 -200E0C: 7C7D moveq #$7d, D6 -200E0E: 7E7F moveq #$7f, D7 -200E10: 4E75 rts -*/ -static const uint16_t bonkadv_mcu_4_34[] = { - 0x7071,0x7273,0x7475,0x7677,0x7879,0x7a7b,0x7c7d,0x7e7f, - 0x4e75 -}; -// MCU executed command: 0400 0180 0032 - 128 bytes at $200180 -static const uint16_t bonkadv_mcu_4_32[] = { - 0x00cc,0xcc0c,0xc0c0,0xc080,0x0484,0xb6a6,0x0404,0x80c0, - 0x80b1,0xb1a1,0xa1b2,0xa2b3,0xb3a3,0xa3b1,0xb1b1,0xb1c0, - 0xc0a1,0xa1a1,0xa1b2,0xb2a2,0xa290,0x9090,0xb9b9,0xa9a9, - 0xbaaa,0xbbbb,0xabab,0xb9b9,0xb9b9,0xc8c8,0xa9a9,0xa9a9, - 0xbaba,0xaaaa,0x9898,0x98b9,0xb9a9,0xa9ba,0xaabb,0xbbab, - 0xabb9,0xb9b9,0xb9c8,0xc8a9,0xa9a9,0xa9ba,0xbaaa,0xaa98, - 0x9898,0xb1b1,0xa1a1,0xb2a2,0xb3b3,0xa3a3,0xb1b1,0xb1b1, - 0xc0c0,0xa1a1,0xa1a1,0xb2b2,0xa2a2,0x9090,0x9000,0x0000 -}; -// MCU executed command: 0400 0280 0031 - 112 bytes at $200280 -static const uint16_t bonkadv_mcu_4_31[] = { - 0x1013,0x1411,0x1216,0x1519,0x1a17,0x1824,0x2322,0x211f, - 0x201e,0x1d1c,0x1b27,0x2825,0x2629,0x2a2b,0x2e2f,0x2c2d, - 0x3130,0x3435,0x3233,0x3f3e,0x3d3c,0x3a3b,0x3938,0x3736, - 0x4243,0x4041,0x4445,0x4649,0x4a47,0x484c,0x4b4f,0x504d, - 0x4e5a,0x5958,0x5755,0x5654,0x5352,0x515d,0x5e5b,0x5c5f, - 0x6061,0x6465,0x6263,0x6766,0x6a6b,0x6869,0x7574,0x7372, - 0x7071,0x6f6e,0x6d6c,0x7879,0x7677,0x7a7b,0x7c7d,0x7e7f -}; -// MCU executed command: 0400 0E50 0030 - 655 bytes at $200E50 (656 here) -static const uint16_t bonkadv_mcu_4_30[] = { - 0x8c00,0x9700,0xa000,0xa700,0xb200,0xb700,0xc000,0xcc00, - 0xd600,0xdf00,0xef00,0xf500,0xfd00,0x0501,0x0b01,0x1801, - 0x1e01,0x2901,0x3101,0x3701,0x4101,0x4901,0x0b01,0x5d01, - 0xa700,0xb200,0x6c01,0x8101,0xb200,0x8101,0x8101,0x8101, - 0x8101,0x8101,0x8101,0x8101,0x8101,0x8101,0x8101,0x8101, - 0x8101,0x8101,0x8101,0x8101,0x8101,0x8101,0x8101,0x8101, - 0x8101,0x8101,0x8101,0x8101,0x8101,0x8101,0x8101,0x2e02, - 0x3602,0x3d02,0x4102,0x4f02,0x5502,0x5502,0x5f02,0x6402, - 0x6d02,0x7302,0x7802,0x7d02,0x8302,0x8a02,0x0165,0x712b, - 0x57fe,0x57a2,0xff00,0x0003,0x7c3a,0x436c,0x66ff,0x0000, - 0x026c,0x6d43,0xff00,0x0000,0x74a5,0x8373,0x3599,0x9fff, - - 0x0000,0x074a,0xff00,0x0002,0x8788,0x3331,0x32ff,0x0000, - 0x0276,0x8c71,0x2d8c,0xfe12,0x8cff,0x0000,0x0171,0x0d29, - 0xfe0d,0x29ff,0x0000,0x0559,0x5a5b,0x8a8b,0xff00,0x0003, - 0x0d0e,0x576a,0x641e,0xfe0d,0x0efe,0x64a3,0xff00,0x0006, - 0x0262,0xff00,0x0007,0x3e3f,0x7a7b,0xff00,0x0007,0x7584, - 0x4c53,0xff00,0x0001,0x6645,0xff00,0x0007,0x0d18,0x2984, - 0x5384,0xfe0d,0x29ff,0x0000,0x0457,0x5cff,0x0000,0x0751, - 0x5202,0x45fe,0x4575,0xff00,0x0000,0x191a,0x1b6e,0xff00, - 0x0006,0x3472,0xff00,0x0000,0x6569,0x090f,0x8b23,0xff00, - 0x0004,0x3b3c,0x3d79,0xff00,0x0080,0x770a,0x8176,0x2a65, - 0x64fe,0x7776,0xfe2a,0x76fe,0x650a,0xff00,0x0000,0x1011, - 0x1226,0x2728,0xa655,0x940f,0x68ff,0x0000,0x8045,0x6477, - 0x0a81,0x762a,0x65fe,0x7776,0xfe2a,0x76fe,0x650a,0xff00, - 0x0000,0x166b,0xff00,0x0007,0x1e30,0x39ff,0x0000,0x0345, - 0x3a77,0x7843,0x4647,0xff00,0x0000,0x7335,0x8399,0x9fff, - 0x0000,0x0237,0x38ff,0x0000,0x0044,0x303b,0xff00,0x0000, - - 0x7d7e,0x7fa1,0x0aff,0x0000,0x0070,0xff00,0x0000,0x3e3f, - 0x7a7b,0x6180,0x89a4,0xff00,0x0006,0x86a5,0x4f42,0xff00, - 0x0000,0x1011,0x1255,0x0f68,0xff00,0x0002,0x8788,0x4033, - 0xff00,0x0005,0x650f,0xff00,0x0008,0x9596,0x9ba7,0xff00, - 0x0000,0x4849,0x82ff,0x0000,0x022e,0x2f30,0xff00,0x0001, - 0x7778,0x5826,0x2728,0xa6ff,0x0000,0x0813,0x1402,0x51ff, - 0x0000,0x072e,0x5c5d,0xff00,0x0006,0x57ff,0x0000,0x0230, - 0x391e,0x65fe,0x6530,0xff00,0x0000,0x4bff,0x0000,0x008e, - 0x8f90,0x91ff,0x0000,0x0092,0x9d17,0xff00,0x0000,0xff00, - 0x0000,0x8d9b,0xa77d,0x7e7f,0xa10a,0x9596,0xff00,0x0001, - 0x1993,0xff00,0x0000,0x67ff,0x0000,0x0067,0xff00,0x0000, - 0x27ff,0x0000,0x0390,0x8e23,0x978b,0xff00,0x0000,0x1d9e, - 0xff00,0x0007,0x3bff,0x0000,0x001d,0xff00,0x0000,0x8e90, - 0xff00,0x0005,0x2495,0x96ff,0x0000,0x009a,0xff00,0x0000 -}; -// MCU executed command: 0400 0400 0033 - 2560 bytes at $200400 -static const uint16_t bonkadv_mcu_4_33[] = { - 0x00a4,0x0001,0x00a5,0x005a,0x00a6,0x0074,0x00a7,0x009b, - 0x00a8,0x00d0,0x00a9,0x00fe,0x00aa,0x015d,0x00ab,0x01b0, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x0001,0x0002,0x0019,0x005b,0x0022,0x0075,0x002d,0x009c, - 0x0041,0x00d1,0x004e,0x00ff,0x0060,0x015f,0x0072,0x01b1, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x0002,0x0008,0x001a,0x0061,0x0023,0x007b,0x002e,0x00a2, - 0x0042,0x00d7,0x004f,0x0107,0x0061,0x0165,0x0073,0x01b7, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x0000,0x000a,0x0000,0x0063,0x0000,0x007d,0x0000,0x00a4, - 0x0000,0x00d9,0x0000,0x0109,0x0000,0x0167,0x0000,0x01b9, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - - 0x0003,0x000b,0x001b,0x0064,0x0024,0x007e,0x002f,0x00a5, - 0x0043,0x00da,0x0050,0x010a,0x0062,0x0168,0x0074,0x01ba, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x0000,0x000c,0x0000,0x0065,0x0000,0x007f,0x0000,0x00a6, - 0x0000,0x00db,0x0000,0x010b,0x0000,0x0169,0x0000,0x01bb, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x0004,0x0008,0x001c,0x0061,0x0025,0x007b,0x0030,0x00a2, - 0x0044,0x00d7,0x0051,0x0107,0x0063,0x0165,0x0075,0x01b7, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x0005,0x000d,0x001d,0x0066,0x0025,0x007b,0x0031,0x00a7, - 0x0045,0x00dc,0x0051,0x0107,0x0063,0x0165,0x0075,0x01b7, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - - 0x0000,0x0017,0x0000,0x0069,0x0000,0x0089,0x0000,0x00af, - 0x0000,0x00df,0x0000,0x0115,0x0000,0x0173,0x0000,0x01c5, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x0009,0x0015,0x001e,0x0067,0x0029,0x0087,0x0034,0x00ad, - 0x0046,0x00dd,0x0055,0x0113,0x0067,0x0171,0x0079,0x01c3, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x0006,0x000e,0x0006,0x000e,0x0026,0x0080,0x0006,0x000e, - 0x0000,0x0000,0x0052,0x010c,0x0064,0x016a,0x0076,0x01bc, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x0007,0x0010,0x0007,0x0010,0x0027,0x0082,0x0032,0x00a8, - 0x0000,0x0000,0x0053,0x010e,0x0065,0x016c,0x0077,0x01be, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - - 0x0000,0x0013,0x0000,0x0013,0x0000,0x0085,0x0000,0x00ab, - 0x0000,0x0000,0x0000,0x0111,0x0000,0x016f,0x0000,0x01c1, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x0008,0x0014,0x0008,0x0014,0x0028,0x0086,0x0033,0x00ac, - 0x0000,0x0000,0x0054,0x0112,0x0066,0x0170,0x0078,0x01c2, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x0000,0x0018,0x0000,0x006a,0x0000,0x008a,0x0000,0x00b0, - 0x0000,0x00e0,0x0000,0x0116,0x0000,0x0174,0x0000,0x01c6, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x0000,0x000c,0x0000,0x0065,0x0000,0x007f,0x0000,0x00a6, - 0x0000,0x00db,0x0000,0x010b,0x0000,0x0169,0x0000,0x01bb, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - - 0x000a,0x0019,0x001f,0x006b,0x002a,0x008b,0x0035,0x00b1, - 0x0047,0x00e1,0x0056,0x0117,0x0068,0x0175,0x007a,0x01c7, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x000b,0x0019,0x0020,0x006b,0x002b,0x008b,0x0036,0x00b1, - 0x0048,0x00e1,0x0057,0x0117,0x0069,0x0175,0x007a,0x01c7, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x0015,0x003e,0x0015,0x003e,0x0099,0x0095,0x0015,0x003e, - 0x0000,0x0000,0x009e,0x013a,0x006d,0x018f,0x007e,0x01dc, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x000c,0x001d,0x000c,0x001d,0x000c,0x001d,0x000c,0x001d, - 0x0049,0x00e5,0x0058,0x011b,0x006a,0x0179,0x007b,0x01c9, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - - 0x0000,0x001f,0x0000,0x001f,0x0000,0x001f,0x0000,0x001f, - 0x0000,0x00e7,0x0000,0x011d,0x0000,0x017b,0x0000,0x01cb, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x000d,0x0020,0x0021,0x006f,0x002c,0x008f,0x0037,0x00b5, - 0x004a,0x00e8,0x0059,0x011e,0x006b,0x017c,0x007c,0x01cc, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x0000,0x0022,0x0000,0x0071,0x0000,0x0091,0x0000,0x00b7, - 0x0000,0x00ea,0x0000,0x0120,0x0000,0x017e,0x0000,0x01ce, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x0014,0x003b,0x0014,0x003b,0x005d,0x0092,0x0014,0x003b, - 0x0014,0x003b,0x009d,0x0137,0x00a0,0x018c,0x00a1,0x01d9, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - - 0x0012,0x0036,0x0012,0x0036,0x0012,0x0036,0x0012,0x0036, - 0x008a,0x00e5,0x00be,0x013c,0x006c,0x0184,0x007d,0x01d1, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x0013,0x0038,0x0013,0x0038,0x0013,0x0038,0x0013,0x0038, - 0x008a,0x00e5,0x00bf,0x013d,0x006c,0x0184,0x007d,0x01d1, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x0038,0x00ba,0x0038,0x00ba,0x0038,0x00ba,0x0038,0x00ba, - 0x0038,0x00ba,0x00a2,0x0128,0x006e,0x019c,0x007f,0x01e7, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x005c,0x014d,0x005c,0x014d,0x005c,0x014d,0x005c,0x014d, - 0x0000,0x0000,0x009c,0x0124,0x0071,0x01a5,0x0082,0x01f0, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - - 0x005b,0x014d,0x005b,0x014d,0x005b,0x014d,0x005b,0x014d, - 0x0000,0x0000,0x009b,0x0124,0x0070,0x01a1,0x0081,0x01ec, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x0000,0x0044,0x0000,0x0044,0x0000,0x0044,0x0000,0x0044, - 0x0000,0x00db,0x0000,0x010b,0x0000,0x0169,0x0000,0x01bb, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x0018,0x0045,0x0018,0x0045,0x0018,0x0045,0x0018,0x0045, - 0x0044,0x00d7,0x0051,0x0107,0x0063,0x0165,0x0075,0x01b7, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x008b,0x000e,0x008b,0x000e,0x008c,0x0080,0x008b,0x000e, - 0x0000,0x0000,0x008d,0x010c,0x008e,0x016a,0x008f,0x01bc, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - - 0x0090,0x0010,0x0090,0x0010,0x0091,0x0082,0x0092,0x00a8, - 0x0000,0x0000,0x0093,0x010e,0x0094,0x016c,0x0095,0x01be, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x0096,0x003e,0x0096,0x003e,0x009a,0x0095,0x0096,0x003e, - 0x0000,0x0000,0x009f,0x013a,0x0097,0x018f,0x0098,0x01dc, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x0000,0x0049,0x0000,0x0069,0x0000,0x0098,0x0000,0x00af, - 0x0000,0x00df,0x0000,0x0145,0x0000,0x0173,0x0000,0x01c5, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x005e,0x0048,0x005f,0x0068,0x006f,0x0097,0x0080,0x00ae, - 0x00ac,0x00de,0x00ad,0x0144,0x00ae,0x0172,0x00af,0x01c4, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - - 0x004b,0x00ed,0x004b,0x00ed,0x004b,0x00ed,0x004b,0x00ed, - 0x004b,0x00ed,0x00b0,0x012b,0x00b6,0x0186,0x00ba,0x01d3, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x0087,0x00f2,0x0087,0x00f2,0x0087,0x00f2,0x0087,0x00f2, - 0x0087,0x00f2,0x00b3,0x0130,0x00b8,0x018b,0x00bc,0x01d8, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x00c1,0x0050,0x00c1,0x0050,0x00c1,0x0050,0x00c1,0x0050, - 0x00c1,0x0050,0x00c3,0x0148,0x00c5,0x019a,0x00c7,0x01e5, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x00c2,0x0050,0x00c2,0x0050,0x00c2,0x0050,0x00c2,0x0050, - 0x00c2,0x0050,0x00c4,0x0148,0x00c6,0x019a,0x00c8,0x01e5, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 -}; - -/* decryption table */ -static const uint8_t decryption_table[0x100] = { -0x7b,0x82,0xf0,0xbc,0x7f,0x1d,0xa2,0xc5,0x2a,0xfa,0x55,0xee,0x1a,0xd0,0x59,0x76, -0x5e,0x75,0x79,0x16,0xa5,0xf6,0x84,0xed,0x0f,0x2e,0xf2,0x36,0x61,0xac,0xcd,0xab, -0x01,0x3b,0x01,0x87,0x73,0xab,0xce,0x5d,0xd4,0x1d,0x68,0x2a,0x35,0xea,0x13,0x27, -0x00,0xaa,0x46,0x36,0x6e,0x65,0x80,0x7e,0x19,0xe2,0x96,0xab,0xac,0xa5,0x6c,0x63, -0x4a,0x6f,0x87,0xf6,0x6a,0xac,0x38,0xe2,0x1f,0x87,0xf9,0xaa,0xf5,0x41,0x60,0xa6, -0x42,0xb9,0x30,0xf2,0xc3,0x1c,0x4e,0x4b,0x08,0x10,0x42,0x32,0xbf,0xb2,0xc5,0x0f, -0x7a,0xab,0x97,0xf6,0xe7,0xb3,0x46,0xf8,0xec,0x2b,0x7d,0x5f,0xb1,0x10,0x03,0xe4, -0x0f,0x22,0xdf,0x8d,0x10,0x66,0xa7,0x7e,0x96,0xbd,0x5a,0xaf,0xaa,0x43,0xdf,0x10, -0x7c,0x04,0xe2,0x9d,0x66,0xd7,0xf0,0x02,0x58,0x8a,0x55,0x17,0x16,0xe2,0xe2,0x52, -0xaf,0xd9,0xf9,0x0d,0x59,0x70,0x86,0x3c,0x05,0xd1,0x52,0xa7,0xf0,0xbf,0x17,0xd0, -0x23,0x15,0xfe,0x23,0xf2,0x80,0x60,0x6f,0x95,0x89,0x67,0x65,0xc9,0x0e,0xfc,0x16, -0xd6,0x8a,0x9f,0x25,0x2c,0x0f,0x2d,0xe4,0x51,0xb2,0xa8,0x18,0x3a,0x5d,0x66,0xa0, -0x9f,0xb0,0x58,0xea,0x78,0x72,0x08,0x6a,0x90,0xb6,0xa4,0xf5,0x08,0x19,0x60,0x4e, -0x92,0xbd,0xf1,0x05,0x67,0x4f,0x24,0x99,0x69,0x1d,0x0c,0x6d,0xe7,0x74,0x88,0x22, -0x2d,0x15,0x7a,0xa2,0x37,0xa9,0xa0,0xb0,0x2c,0xfb,0x27,0xe5,0x4f,0xb6,0xcd,0x75, -0xdc,0x39,0xce,0x6f,0x1f,0xfe,0xcc,0xb5,0xe6,0xda,0xd8,0xee,0x85,0xee,0x2f,0x04, -}; - -/* alt decryption table (gtmr2) */ -static const uint8_t decryption_table_alt[0x100] = { -0x26,0x17,0xb9,0xcf,0x1a,0xf5,0x14,0x1e,0x0c,0x35,0xb3,0x66,0xa0,0x17,0xe9,0xe4, -0x90,0xf6,0xd5,0x35,0xac,0x95,0x49,0x43,0x64,0x0c,0x03,0x75,0x4d,0xda,0xb6,0xdf, -0x06,0xcf,0x83,0x9e,0x35,0x2c,0x71,0x2a,0xab,0xcc,0x65,0xd4,0x1f,0xb0,0x88,0x3c, -0xb7,0x87,0x35,0xc0,0x41,0x65,0x9f,0xa0,0xd5,0x8c,0x3e,0x06,0x53,0xdb,0x45,0x64, -0x09,0x1e,0xc5,0x8d,0x50,0x24,0xe2,0x4a,0x9b,0x99,0x77,0x25,0x43,0xa9,0x1d,0xac, -0x99,0x31,0x75,0xb5,0x53,0xab,0xad,0x5a,0x42,0x14,0xa1,0x52,0xac,0xec,0x5f,0xf8, -0x8c,0x78,0x05,0x47,0xea,0xb8,0xde,0x69,0x98,0x2d,0x8f,0x9d,0xfc,0x05,0xea,0xee, -0x77,0xbb,0xa9,0x31,0x01,0x00,0xea,0xd8,0x9c,0x43,0xb5,0x2f,0x4e,0xb5,0x1b,0xd2, -0x01,0x4b,0xc4,0xf8,0x76,0x92,0x59,0x4f,0x20,0x52,0xd9,0x7f,0xa9,0x19,0xe9,0x7c, -0x8d,0x3b,0xec,0xe0,0x60,0x08,0x2e,0xbd,0x27,0x8b,0xb2,0xfc,0x29,0xd8,0x39,0x8a, -0x4f,0x2f,0x6b,0x04,0x10,0xbd,0xa1,0x04,0xde,0xc0,0xd5,0x0f,0x04,0x86,0xd6,0xd8, -0xfd,0xb1,0x3c,0x4c,0xd1,0xc4,0xf1,0x5b,0xf5,0x8b,0xe3,0xc4,0x89,0x3c,0x39,0x86, -0xd2,0x92,0xc9,0xe5,0x2c,0x4f,0xe2,0x2f,0x2d,0xc5,0x35,0x09,0x94,0x47,0x3c,0x04, -0x40,0x8b,0x57,0x08,0xf6,0x74,0xe9,0xb8,0x36,0x4d,0xc5,0x26,0x13,0x3d,0x75,0xa0, -0xa8,0x29,0x09,0x8c,0x87,0xf7,0x13,0xaf,0x4c,0x38,0x0b,0x8a,0x7f,0x2c,0x62,0x27, -0x47,0xaa,0xda,0x07,0x92,0x8d,0xfd,0x1f,0xee,0x48,0x1a,0x53,0x3b,0x98,0x6a,0x72, -}; - +#pragma once class kaneko_toybox_device : public device_t { public: + static constexpr int GAME_NORMAL = 0; + static constexpr int GAME_BONK = 1; + + static constexpr int TABLE_NORMAL = 0; + static constexpr int TABLE_ALT = 1; + kaneko_toybox_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); static void set_table(device_t &device, int tabletype); @@ -364,10 +44,12 @@ private: }; -extern const device_type KANEKO_TOYBOX; +DECLARE_DEVICE_TYPE(KANEKO_TOYBOX, kaneko_toybox_device) #define MCFG_TOYBOX_TABLE_TYPE(_type) \ - kaneko_toybox_device::set_table(*device, _type); + kaneko_toybox_device::set_table(*device, kaneko_toybox_device::TABLE_##_type); #define MCFG_TOYBOX_GAME_TYPE(_type) \ - kaneko_toybox_device::set_game_type(*device, _type); + kaneko_toybox_device::set_game_type(*device, kaneko_toybox_device::GAME_##_type); + +#endif // MAME_MACHINE_KANEKO_TOYBOX_H diff --git a/src/mame/machine/kc_keyb.cpp b/src/mame/machine/kc_keyb.cpp index 6dc9f46d0ec..37c1beb7397 100644 --- a/src/mame/machine/kc_keyb.cpp +++ b/src/mame/machine/kc_keyb.cpp @@ -322,13 +322,13 @@ triggers the time measurement by the CTC channel 3." #include "kc_keyb.h" #define VERBOSE 0 -#define LOG(x) do { if (VERBOSE) logerror x; } while (0) +#include "logmacro.h" //************************************************************************** // GLOBAL VARIABLES //************************************************************************** -const device_type KC_KEYBOARD = device_creator; +DEFINE_DEVICE_TYPE(KC_KEYBOARD, kc_keyboard_device, "kc_keyboard", "KC Keyboard") //************************************************************************** // Input Ports @@ -436,7 +436,7 @@ INPUT_PORTS_END // kc_keyboard_device - constructor //------------------------------------------------- kc_keyboard_device::kc_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, KC_KEYBOARD, "KC Keyboard", tag, owner, clock, "kc_keyboard", __FILE__), + device_t(mconfig, KC_KEYBOARD, tag, owner, clock), m_write_out(*this) { } @@ -506,7 +506,7 @@ void kc_keyboard_device::device_timer(emu_timer &timer, device_timer_id id, int // get current pulse state int pulse_state = (m_transmit_buffer.data[pulse_byte_count]>>pulse_bit_count) & 0x01; - LOG(("KC keyboard sending pulse: %02x\n", pulse_state)); + LOG("KC keyboard sending pulse: %02x\n", pulse_state); // send pulse m_write_out(pulse_state ? ASSERT_LINE : CLEAR_LINE); @@ -535,7 +535,7 @@ void kc_keyboard_device::device_timer(emu_timer &timer, device_timer_id id, int { // generate fake code uint8_t code = (i<<3) | b; - LOG(("Code: %02x\n",code)); + LOG("Code: %02x\n",code); transmit_scancode(code); } @@ -553,7 +553,7 @@ void kc_keyboard_device::device_timer(emu_timer &timer, device_timer_id id, int void kc_keyboard_device::add_pulse_to_transmit_buffer(int pulse_state, int pulse_number) { - if (m_transmit_buffer.pulse_count + 1 < KC_TRANSMIT_BUFFER_LENGTH) + if (m_transmit_buffer.pulse_count + 1 < TRANSMIT_BUFFER_LENGTH) { for (int i=0; i kc_keyboard_device class kc_keyboard_device : public device_t @@ -28,12 +27,15 @@ public: kc_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual ~kc_keyboard_device(); - template static devcb_base &set_out_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_out.set_callback(object); } + template static devcb_base &set_out_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_out.set_callback(std::forward(cb)); } // optional information overrides virtual ioport_constructor device_input_ports() const override; protected: + /* number of pulses that can be stored */ + static constexpr unsigned TRANSMIT_BUFFER_LENGTH = 256; + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -44,22 +46,22 @@ protected: void transmit_scancode(uint8_t scan_code); private: - static const device_timer_id TIMER_TRANSMIT_PULSE = 1; + static constexpr device_timer_id TIMER_TRANSMIT_PULSE = 1; // internal state - emu_timer * m_timer_transmit_pulse; + emu_timer * m_timer_transmit_pulse; devcb_write_line m_write_out; // pulses to transmit struct { - uint8_t data[KC_TRANSMIT_BUFFER_LENGTH>>3]; + uint8_t data[TRANSMIT_BUFFER_LENGTH>>3]; int pulse_sent; int pulse_count; } m_transmit_buffer; }; // device type definition -extern const device_type KC_KEYBOARD; +DECLARE_DEVICE_TYPE(KC_KEYBOARD, kc_keyboard_device) -#endif /* __KC_KEYB_H__ */ +#endif // MAME_MACHINE_KC_KEYB_H diff --git a/src/mame/machine/km035.cpp b/src/mame/machine/km035.cpp index b8ffbf956de..6b144f5b4e2 100644 --- a/src/mame/machine/km035.cpp +++ b/src/mame/machine/km035.cpp @@ -34,7 +34,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type KM035 = device_creator; +DEFINE_DEVICE_TYPE(KM035, km035_device, "km035", "KM035 Keyboard") ROM_START( km035 ) ROM_REGION (0x800, KM035_CPU_TAG, 0) @@ -269,7 +269,7 @@ ioport_constructor km035_device::device_input_ports() const //------------------------------------------------- km035_device::km035_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, KM035, "KM035 keyboard", tag, owner, clock, "km035", __FILE__), + : device_t(mconfig, KM035, tag, owner, clock), m_maincpu(*this, KM035_CPU_TAG), m_speaker(*this, KM035_SPK_TAG), m_kbd(*this, "KBD%u", 0), diff --git a/src/mame/machine/km035.h b/src/mame/machine/km035.h index b52f5105a1c..599c2cd64a2 100644 --- a/src/mame/machine/km035.h +++ b/src/mame/machine/km035.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Sergey Svishchev -#pragma once +#ifndef MAME_MACHINE_KM035_H +#define MAME_MACHINE_KM035_H -#ifndef __KM035_H__ -#define __KM035_H__ +#pragma once #include "cpu/mcs48/mcs48.h" #include "sound/beep.h" @@ -73,6 +73,6 @@ private: }; // device type definition -extern const device_type KM035; +DECLARE_DEVICE_TYPE(KM035, km035_device) -#endif +#endif // MAME_MACHINE_KM035_H diff --git a/src/mame/machine/konami1.cpp b/src/mame/machine/konami1.cpp index f3b6b920934..501b54c3018 100644 --- a/src/mame/machine/konami1.cpp +++ b/src/mame/machine/konami1.cpp @@ -9,10 +9,10 @@ #include "emu.h" #include "konami1.h" -const device_type KONAMI1 = device_creator; +DEFINE_DEVICE_TYPE(KONAMI1, konami1_device, "konami1", "KONAMI-1") konami1_device::konami1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : m6809_base_device(mconfig, "KONAMI-1", tag, owner, clock, KONAMI1, 1, "konami1", __FILE__) + : m6809_base_device(mconfig, tag, owner, clock, KONAMI1, 1) { m_boundary = 0x0000; } diff --git a/src/mame/machine/konami1.h b/src/mame/machine/konami1.h index a15ad165b36..a21542a1967 100644 --- a/src/mame/machine/konami1.h +++ b/src/mame/machine/konami1.h @@ -1,5 +1,10 @@ // license:BSD-3-Clause // copyright-holders:Olivier Galibert +#ifndef MAME_MACHINE_KONAMI1_H +#define MAME_MACHINE_KONAMI1_H + +#pragma once + #include "cpu/m6809/m6809.h" @@ -23,4 +28,6 @@ protected: virtual void device_start() override; }; -extern const device_type KONAMI1; +DECLARE_DEVICE_TYPE(KONAMI1, konami1_device) + +#endif // MAME_MACHINE_KONAMI1_H diff --git a/src/mame/machine/konppc.cpp b/src/mame/machine/konppc.cpp index 2d841620c82..b9429c8a1e6 100644 --- a/src/mame/machine/konppc.cpp +++ b/src/mame/machine/konppc.cpp @@ -14,10 +14,10 @@ /*****************************************************************************/ -const device_type KONPPC = device_creator; +DEFINE_DEVICE_TYPE(KONPPC, konppc_device, "konppc", "Konami PowerPC Common Functions") konppc_device::konppc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, KONPPC, "Konami PowerPC Common Functions", tag, owner, clock, "konppc", __FILE__), + : device_t(mconfig, KONPPC, tag, owner, clock), cgboard_type(0), num_cgboards(0)/*, cgboard_id(MAX_CG_BOARDS)*/ diff --git a/src/mame/machine/konppc.h b/src/mame/machine/konppc.h index a4657a01edc..8ec5324e1bd 100644 --- a/src/mame/machine/konppc.h +++ b/src/mame/machine/konppc.h @@ -1,25 +1,27 @@ // license:BSD-3-Clause // copyright-holders:Ville Linde -#ifndef _KONPPC_H -#define _KONPPC_H +#ifndef MAME_MACHINE_KONPPC_H +#define MAME_MACHINE_KONPPC_H -#define CGBOARD_TYPE_ZR107 0 -#define CGBOARD_TYPE_GTICLUB 1 -#define CGBOARD_TYPE_NWKTR 2 -#define CGBOARD_TYPE_HORNET 3 -#define CGBOARD_TYPE_HANGPLT 4 - -#define MAX_CG_BOARDS 2 +#pragma once #define MCFG_KONPPC_CGBOARD_NUMBER(_num) \ konppc_device::static_set_num_boards(*device, _num); #define MCFG_KONPPC_CGBOARD_TYPE(_cgtype) \ - konppc_device::static_set_cbboard_type(*device, _cgtype); + konppc_device::static_set_cbboard_type(*device, konppc_device::CGBOARD_TYPE_##_cgtype); class konppc_device : public device_t { public: + static constexpr int CGBOARD_TYPE_ZR107 = 0; + static constexpr int CGBOARD_TYPE_GTICLUB = 1; + static constexpr int CGBOARD_TYPE_NWKTR = 2; + static constexpr int CGBOARD_TYPE_HORNET = 3; + static constexpr int CGBOARD_TYPE_HANGPLT = 4; + + static constexpr int MAX_CG_BOARDS = 2; + // construction/destruction konppc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); @@ -98,9 +100,9 @@ private: // device type definition -extern const device_type KONPPC; +DECLARE_DEVICE_TYPE(KONPPC, konppc_device) void draw_7segment_led(bitmap_rgb32 &bitmap, int x, int y, uint8_t value); -#endif +#endif // MAME_MACHINE_KONPPC_H diff --git a/src/mame/machine/leland.cpp b/src/mame/machine/leland.cpp index ae9972572be..694c910383f 100644 --- a/src/mame/machine/leland.cpp +++ b/src/mame/machine/leland.cpp @@ -9,8 +9,10 @@ ***************************************************************************/ #include "emu.h" -#include "cpu/z80/z80.h" #include "includes/leland.h" +#include "audio/leland.h" + +#include "cpu/z80/z80.h" /************************************* diff --git a/src/mame/machine/lviv.cpp b/src/mame/machine/lviv.cpp index 024652e8173..24701e193d1 100644 --- a/src/mame/machine/lviv.cpp +++ b/src/mame/machine/lviv.cpp @@ -227,29 +227,29 @@ Lviv snapshot files (SAV) 1411D - 1412A: ??? (something additional) *******************************************************************************/ -void lviv_state::lviv_setup_snapshot (uint8_t * data) +void lviv_state::lviv_setup_snapshot(uint8_t * data) { unsigned char lo,hi; /* Set registers */ lo = data[0x14112] & 0x0ff; hi = data[0x14111] & 0x0ff; - m_maincpu->set_state_int(I8085_BC, (hi << 8) | lo); + m_maincpu->set_state_int(i8080_cpu_device::I8085_BC, (hi << 8) | lo); lo = data[0x14114] & 0x0ff; hi = data[0x14113] & 0x0ff; - m_maincpu->set_state_int(I8085_DE, (hi << 8) | lo); + m_maincpu->set_state_int(i8080_cpu_device::I8085_DE, (hi << 8) | lo); lo = data[0x14116] & 0x0ff; hi = data[0x14115] & 0x0ff; - m_maincpu->set_state_int(I8085_HL, (hi << 8) | lo); + m_maincpu->set_state_int(i8080_cpu_device::I8085_HL, (hi << 8) | lo); lo = data[0x14118] & 0x0ff; hi = data[0x14117] & 0x0ff; - m_maincpu->set_state_int(I8085_AF, (hi << 8) | lo); + m_maincpu->set_state_int(i8080_cpu_device::I8085_AF, (hi << 8) | lo); lo = data[0x14119] & 0x0ff; hi = data[0x1411a] & 0x0ff; - m_maincpu->set_state_int(I8085_SP, (hi << 8) | lo); + m_maincpu->set_state_int(i8080_cpu_device::I8085_SP, (hi << 8) | lo); lo = data[0x1411b] & 0x0ff; hi = data[0x1411c] & 0x0ff; - m_maincpu->set_state_int(I8085_PC, (hi << 8) | lo); + m_maincpu->set_state_int(i8080_cpu_device::I8085_PC, (hi << 8) | lo); /* Memory dump */ memcpy (m_ram->pointer(), data+0x0011, 0xc000); @@ -265,12 +265,12 @@ void lviv_state::lviv_setup_snapshot (uint8_t * data) void lviv_state::dump_registers() { - logerror("PC = %04x\n", (unsigned) m_maincpu->state_int(I8085_PC)); - logerror("SP = %04x\n", (unsigned) m_maincpu->state_int(I8085_SP)); - logerror("AF = %04x\n", (unsigned) m_maincpu->state_int(I8085_AF)); - logerror("BC = %04x\n", (unsigned) m_maincpu->state_int(I8085_BC)); - logerror("DE = %04x\n", (unsigned) m_maincpu->state_int(I8085_DE)); - logerror("HL = %04x\n", (unsigned) m_maincpu->state_int(I8085_HL)); + logerror("PC = %04x\n", (unsigned) m_maincpu->state_int(i8080_cpu_device::I8085_PC)); + logerror("SP = %04x\n", (unsigned) m_maincpu->state_int(i8080_cpu_device::I8085_SP)); + logerror("AF = %04x\n", (unsigned) m_maincpu->state_int(i8080_cpu_device::I8085_AF)); + logerror("BC = %04x\n", (unsigned) m_maincpu->state_int(i8080_cpu_device::I8085_BC)); + logerror("DE = %04x\n", (unsigned) m_maincpu->state_int(i8080_cpu_device::I8085_DE)); + logerror("HL = %04x\n", (unsigned) m_maincpu->state_int(i8080_cpu_device::I8085_HL)); } image_verify_result lviv_state::lviv_verify_snapshot(uint8_t * data, uint32_t size) diff --git a/src/mame/machine/m1comm.cpp b/src/mame/machine/m1comm.cpp index be4f81f0381..c078bac817e 100644 --- a/src/mame/machine/m1comm.cpp +++ b/src/mame/machine/m1comm.cpp @@ -57,7 +57,8 @@ Notes: #define Z80_TAG "m1commcpu" -//#define __M1COMM_VERBOSE__ +#define VERBOSE 0 +#include "logmacro.h" /************************************* * M1COMM Memory Map @@ -95,7 +96,7 @@ ROM_END // GLOBAL VARIABLES //************************************************************************** -const device_type M1COMM = device_creator; +DEFINE_DEVICE_TYPE(M1COMM, m1comm_device, "m1comm", "Model 1 Communication Board") //------------------------------------------------- // machine_config_additions - device-specific @@ -125,7 +126,7 @@ const tiny_rom_entry *m1comm_device::device_rom_region() const //------------------------------------------------- m1comm_device::m1comm_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, M1COMM, "MODEL-1 COMMUNICATION BD", tag, owner, clock, "m1comm", __FILE__), + device_t(mconfig, M1COMM, tag, owner, clock), m_commcpu(*this, Z80_TAG), m_line_rx(OPEN_FLAG_WRITE | OPEN_FLAG_CREATE ), m_line_tx(OPEN_FLAG_READ) @@ -178,43 +179,33 @@ READ8_MEMBER(m1comm_device::dlc_reg_r) // dirty hack to keep Z80 in RESET state uint8_t result = m_dlc_reg[offset]; -#ifdef __M1COMM_VERBOSE__ - osd_printf_verbose("m1comm-dlc_reg_r: read register %02x for value %02x\n", offset, result); -#endif + LOG("m1comm-dlc_reg_r: read register %02x for value %02x\n", offset, result); return result; } WRITE8_MEMBER(m1comm_device::dlc_reg_w) { m_dlc_reg[offset] = data; -#ifdef __M1COMM_VERBOSE__ - osd_printf_verbose("m1comm-dlc_reg_w: write register %02x for value %02x\n", offset, data); -#endif + LOG("m1comm-dlc_reg_w: write register %02x for value %02x\n", offset, data); } READ8_MEMBER(m1comm_device::dma_reg_r) { uint8_t result = m_dma_reg[offset]; -#ifdef __M1COMM_VERBOSE__ - osd_printf_verbose("m1comm-dma_reg_r: read register %02x for value %02x\n", offset, result); -#endif + LOG("m1comm-dma_reg_r: read register %02x for value %02x\n", offset, result); return result; } WRITE8_MEMBER(m1comm_device::dma_reg_w) { -#ifdef __M1COMM_VERBOSE__ - osd_printf_verbose("m1comm-dma_reg_w: %02x %02x\n", offset, data); -#endif + LOG("m1comm-dma_reg_w: %02x %02x\n", offset, data); m_dma_reg[offset] = data; } READ8_MEMBER(m1comm_device::syn_r) { uint8_t result = m_syn | 0xfc; -#ifdef __M1COMM_VERBOSE__ - osd_printf_verbose("m1comm-syn_r: read register %02x for value %02x\n", offset, result); -#endif + LOG("m1comm-syn_r: read register %02x for value %02x\n", offset, result); return result; } @@ -222,38 +213,32 @@ WRITE8_MEMBER(m1comm_device::syn_w) { m_syn = data & 0x03; -#ifdef __M1COMM_VERBOSE__ switch (data & 0x02) { - case 0x00: - osd_printf_verbose("m1comm-syn_w: VINT disabled\n"); - break; + case 0x00: + LOG("m1comm-syn_w: VINT disabled\n"); + break; - case 0x02: - osd_printf_verbose("m1comm-syn_w: VINT enabled\n"); - break; + case 0x02: + LOG("m1comm-syn_w: VINT enabled\n"); + break; - default: - osd_printf_verbose("m1comm-syn_w: %02x\n", data); - break; + default: + LOG("m1comm-syn_w: %02x\n", data); + break; } -#endif } READ8_MEMBER(m1comm_device::zfg_r) { uint8_t result = m_zfg | (~m_fg << 7) | 0x7e; -#ifdef __M1COMM_VERBOSE__ - osd_printf_verbose("m1comm-zfg_r: read register %02x for value %02x\n", offset, result); -#endif + LOG("m1comm-zfg_r: read register %02x for value %02x\n", offset, result); return result; } WRITE8_MEMBER(m1comm_device::zfg_w) { -#ifdef __M1COMM_VERBOSE__ - osd_printf_verbose("m1comm-zfg_w: %02x\n", data); -#endif + LOG("m1comm-zfg_w: %02x\n", data); m_zfg = data & 0x01; } @@ -276,7 +261,7 @@ WRITE8_MEMBER(m1comm_device::cn_w) { m_cn = data & 0x01; -#ifndef __M1COMM_SIMULATION__ +#ifndef M1COMM_SIMULATION if (!m_cn) device_reset(); else @@ -317,20 +302,18 @@ WRITE8_MEMBER(m1comm_device::fg_w) void m1comm_device::check_vint_irq() { -#ifndef __M1COMM_SIMULATION__ +#ifndef M1COMM_SIMULATION if (m_syn & 0x02) { m_commcpu->set_input_line_and_vector(0, HOLD_LINE, 0xef); -#ifdef __M1COMM_VERBOSE__ - osd_printf_verbose("m1comm-INT5\n"); -#endif + LOG("m1comm-INT5\n"); } #else comm_tick(); #endif } -#ifdef __M1COMM_SIMULATION__ +#ifdef M1COMM_SIMULATION void m1comm_device::comm_tick() { if (m_linkenable == 0x01) diff --git a/src/mame/machine/m1comm.h b/src/mame/machine/m1comm.h index 2321c5ebddb..064a0f04a16 100644 --- a/src/mame/machine/m1comm.h +++ b/src/mame/machine/m1comm.h @@ -1,11 +1,11 @@ // license:BSD-3-Clause // copyright-holders:Ariane Fugmann -#pragma once +#ifndef MAME_MACHINE_M1COMM_H +#define MAME_MACHINE_M1COMM_H -#ifndef __M1COMM_H__ -#define __M1COMM_H__ +#pragma once -#define __M1COMM_SIMULATION__ +#define M1COMM_SIMULATION #include "cpu/z80/z80.h" @@ -80,7 +80,7 @@ private: char m_remotehost[256]; uint8_t m_buffer[0x1000]; -#ifdef __M1COMM_SIMULATION__ +#ifdef M1COMM_SIMULATION uint8_t m_linkenable; uint16_t m_linktimer; uint8_t m_linkalive; @@ -94,4 +94,4 @@ private: // device type definition extern const device_type M1COMM; -#endif /* __M1COMM_H__ */ +#endif // MAME_MACHINE_M1COMM_H diff --git a/src/mame/machine/m20_8086.cpp b/src/mame/machine/m20_8086.cpp index fa690919fa4..891128bf1ad 100644 --- a/src/mame/machine/m20_8086.cpp +++ b/src/mame/machine/m20_8086.cpp @@ -4,10 +4,10 @@ #include "m20_8086.h" #include "machine/ram.h" -const device_type M20_8086 = device_creator; +DEFINE_DEVICE_TYPE(M20_8086, m20_8086_device, "m20_8086", "Olivetti M20 8086 Adapter") m20_8086_device::m20_8086_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, M20_8086, "Olivetti M20 8086 Adapter", tag, owner, clock, "m20_8086", __FILE__), + device_t(mconfig, M20_8086, tag, owner, clock), m_8086(*this, "8086"), m_maincpu(*this, ":maincpu"), m_pic(*this, ":i8259"), diff --git a/src/mame/machine/m20_8086.h b/src/mame/machine/m20_8086.h index 56f7a81e43a..c49fe1173cc 100644 --- a/src/mame/machine/m20_8086.h +++ b/src/mame/machine/m20_8086.h @@ -1,7 +1,7 @@ // license:BSD-3-Clause // copyright-holders:Carl -#ifndef M20_8086_H_ -#define M20_8086_H_ +#ifndef MAME_MACHINE_M20_8086_H +#define MAME_MACHINE_M20_8086_H #include "cpu/i86/i86.h" #include "machine/pic8259.h" @@ -20,20 +20,22 @@ public: DECLARE_WRITE_LINE_MEMBER(nvi_w); DECLARE_WRITE16_MEMBER(handshake_w); IRQ_CALLBACK_MEMBER(int_cb); - bool halted() { return m_8086_halt; } - required_device m_8086; + + void halt() { m_8086->set_input_line(INPUT_LINE_HALT, ASSERT_LINE); } + bool halted() const { return m_8086_halt; } protected: void device_start() override; void device_reset() override; private: + required_device m_8086; required_device m_maincpu; required_device m_pic; bool m_8086_halt; int m_nvi, m_vi; }; -extern const device_type M20_8086; +DECLARE_DEVICE_TYPE(M20_8086, m20_8086_device) -#endif /* M20_8086_H_ */ +#endif // MAME_MACHINE_M20_8086_H diff --git a/src/mame/machine/m20_kbd.cpp b/src/mame/machine/m20_kbd.cpp index 796dcae5a7b..78942ef41b4 100644 --- a/src/mame/machine/m20_kbd.cpp +++ b/src/mame/machine/m20_kbd.cpp @@ -155,7 +155,7 @@ INPUT_PORTS_END m20_keyboard_device::m20_keyboard_device(const machine_config& mconfig, const char* tag, device_t* owner, uint32_t clock) - : buffered_rs232_device(mconfig, M20_KEYBOARD, "M20 Keyboard", tag, owner, 0, "m20_keyboard", __FILE__) + : buffered_rs232_device(mconfig, M20_KEYBOARD, tag, owner, 0) , device_matrix_keyboard_interface(mconfig, *this, "LINE0", "LINE1", "LINE2", "LINE3", "LINE4", "LINE5", "LINE6", "LINE7", "LINE8") , m_modifiers(*this, "MODIFIERS") { @@ -235,4 +235,4 @@ void m20_keyboard_device::received_byte(uint8_t byte) } -const device_type M20_KEYBOARD = device_creator; +DEFINE_DEVICE_TYPE(M20_KEYBOARD, m20_keyboard_device, "m20_kbd", "Olivetti M20 Keyboard") diff --git a/src/mame/machine/m20_kbd.h b/src/mame/machine/m20_kbd.h index 2c6ac21f144..7b022f905f4 100644 --- a/src/mame/machine/m20_kbd.h +++ b/src/mame/machine/m20_kbd.h @@ -23,6 +23,6 @@ private: required_ioport m_modifiers; }; -extern const device_type M20_KEYBOARD; +DECLARE_DEVICE_TYPE(M20_KEYBOARD, m20_keyboard_device) #endif // MAME_MACHINE_M20KBD_H diff --git a/src/mame/machine/m24_kbd.cpp b/src/mame/machine/m24_kbd.cpp index 701b6cf0d8c..835d1216e2e 100644 --- a/src/mame/machine/m24_kbd.cpp +++ b/src/mame/machine/m24_kbd.cpp @@ -3,7 +3,7 @@ #include "emu.h" #include "m24_kbd.h" -const device_type M24_KEYBOARD = device_creator; +DEFINE_DEVICE_TYPE(M24_KEYBOARD, m24_keyboard_device, "m24_kbd", "Olivetti M24 Keyboard") ROM_START( m24_keyboard ) ROM_REGION(0x800, "mcu", 0) @@ -209,7 +209,7 @@ ioport_constructor m24_keyboard_device::device_input_ports() const } m24_keyboard_device::m24_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, M24_KEYBOARD, "Olivetti M24 Keyboard", tag, owner, clock, "m24_kbd", __FILE__) + : device_t(mconfig, M24_KEYBOARD, tag, owner, clock) , m_rows(*this, "ROW.%u", 0) , m_mousebtn(*this, "MOUSEBTN") , m_out_data(*this) diff --git a/src/mame/machine/m24_kbd.h b/src/mame/machine/m24_kbd.h index 6a043c8afd6..a8845809ff8 100644 --- a/src/mame/machine/m24_kbd.h +++ b/src/mame/machine/m24_kbd.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Carl -#ifndef M24KBD_H_ -#define M24KBD_H_ +#ifndef MAME_MACHINE_M24_KBD_H +#define MAME_MACHINE_M24_KBD_H + +#pragma once #include "cpu/mcs48/mcs48.h" @@ -13,16 +15,12 @@ class m24_keyboard_device : public device_t public: m24_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_out_data_handler(device_t &device, _Object object) { return downcast(device).m_out_data.set_callback(object); } + template static devcb_base &set_out_data_handler(device_t &device, Object &&cb) { return downcast(device).m_out_data.set_callback(std::forward(cb)); } virtual const tiny_rom_entry *device_rom_region() const override; virtual machine_config_constructor device_mconfig_additions() const override; virtual ioport_constructor device_input_ports() const override; - void device_start() override; - void device_reset() override; - void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; - DECLARE_WRITE8_MEMBER(bus_w); DECLARE_READ8_MEMBER(p1_r); DECLARE_WRITE8_MEMBER(p1_w); @@ -31,6 +29,12 @@ public: DECLARE_READ_LINE_MEMBER(t1_r); DECLARE_WRITE_LINE_MEMBER(clock_w); DECLARE_WRITE_LINE_MEMBER(data_w); + +protected: + void device_start() override; + void device_reset() override; + void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + private: required_ioport_array<16> m_rows; required_ioport m_mousebtn; @@ -41,6 +45,6 @@ private: emu_timer *m_reset_timer; }; -extern const device_type M24_KEYBOARD; +DECLARE_DEVICE_TYPE(M24_KEYBOARD, m24_keyboard_device) -#endif /* M24KBD_H_ */ +#endif // MAME_MACHINE_M24_KBD_H diff --git a/src/mame/machine/m24_z8000.cpp b/src/mame/machine/m24_z8000.cpp index ffdc85a89d9..2edf10fe7c0 100644 --- a/src/mame/machine/m24_z8000.cpp +++ b/src/mame/machine/m24_z8000.cpp @@ -3,10 +3,10 @@ #include "emu.h" #include "m24_z8000.h" -const device_type M24_Z8000 = device_creator; +DEFINE_DEVICE_TYPE(M24_Z8000, m24_z8000_device, "m24_z8000", "Olivetti M24 Z8000 Adapter") m24_z8000_device::m24_z8000_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, M24_Z8000, "Olivetti M24 Z8000 Adapter", tag, owner, clock, "m24_z8000", __FILE__), + device_t(mconfig, M24_Z8000, tag, owner, clock), m_z8000(*this, "z8000"), m_maincpu(*this, ":maincpu"), m_pic(*this, ":mb:pic8259"), diff --git a/src/mame/machine/m24_z8000.h b/src/mame/machine/m24_z8000.h index e0eac4ef2ca..9e2590701ef 100644 --- a/src/mame/machine/m24_z8000.h +++ b/src/mame/machine/m24_z8000.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Carl -#ifndef M24_Z8000_H_ -#define M24_Z8000_H_ +#ifndef MAME_MACHINE_M24_Z8000_H +#define MAME_MACHINE_M24_Z8000_H + +#pragma once #include "cpu/z8000/z8000.h" #include "machine/i8251.h" @@ -18,7 +20,7 @@ public: virtual const tiny_rom_entry *device_rom_region() const override; virtual machine_config_constructor device_mconfig_additions() const override; - template static devcb_base &set_halt_callback(device_t &device, _Object object) { return downcast(device).m_halt_out.set_callback(object); } + template static devcb_base &set_halt_callback(device_t &device, Object &&cb) { return downcast(device).m_halt_out.set_callback(std::forward(cb)); } DECLARE_READ16_MEMBER(pmem_r); DECLARE_WRITE16_MEMBER(pmem_w); @@ -33,14 +35,18 @@ public: DECLARE_WRITE_LINE_MEMBER(mo_w); DECLARE_WRITE_LINE_MEMBER(timer_irq_w); IRQ_CALLBACK_MEMBER(int_cb); - bool halted() { return m_z8000_halt; } - required_device m_z8000; + DECLARE_WRITE_LINE_MEMBER(halt_w) { m_z8000->set_input_line(INPUT_LINE_HALT, state); } + DECLARE_WRITE_LINE_MEMBER(int_w) { m_z8000->set_input_line(INPUT_LINE_IRQ1, state); } + + bool halted() const { return m_z8000_halt; } + protected: void device_start() override; void device_reset() override; private: + required_device m_z8000; required_device m_maincpu; required_device m_pic; devcb_write_line m_halt_out; @@ -51,5 +57,6 @@ private: }; extern const device_type M24_Z8000; +DECLARE_DEVICE_TYPE(M24_Z8000, m24_z8000_device) -#endif /* M24_Z8000_H_ */ +#endif // MAME_MACHINE_M24_Z8000_H diff --git a/src/mame/machine/m2comm.cpp b/src/mame/machine/m2comm.cpp index d7b313b8e08..3285e9a7dff 100644 --- a/src/mame/machine/m2comm.cpp +++ b/src/mame/machine/m2comm.cpp @@ -168,7 +168,8 @@ Sega PC BD MODEL2 C-CRX COMMUNICATION 837-12839 #include "emuopts.h" #include "machine/m2comm.h" -//#define __M2COMM_VERBOSE__ +#define VERBOSE 0 +#include "logmacro.h" MACHINE_CONFIG_FRAGMENT( m2comm ) MACHINE_CONFIG_END @@ -177,7 +178,7 @@ MACHINE_CONFIG_END // GLOBAL VARIABLES //************************************************************************** -const device_type M2COMM = device_creator; +DEFINE_DEVICE_TYPE(M2COMM, m2comm_device, "m2comm", "Model 2 Communication Board") //------------------------------------------------- // machine_config_additions - device-specific @@ -198,7 +199,7 @@ machine_config_constructor m2comm_device::device_mconfig_additions() const //------------------------------------------------- m2comm_device::m2comm_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, M2COMM, "MODEL2 COMMUNICATION BD", tag, owner, clock, "m2comm", __FILE__), + device_t(mconfig, M2COMM, tag, owner, clock), m_line_rx(OPEN_FLAG_WRITE | OPEN_FLAG_CREATE ), m_line_tx(OPEN_FLAG_READ) { @@ -239,34 +240,26 @@ void m2comm_device::device_reset() READ8_MEMBER(m2comm_device::zfg_r) { uint8_t result = m_zfg | (~m_fg << 7) | 0x7e; -#ifdef __M2COMM_VERBOSE__ - osd_printf_verbose("m2comm-zfg_r: read register %02x for value %02x\n", offset, result); -#endif + LOG("m2comm-zfg_r: read register %02x for value %02x\n", offset, result); return result; } WRITE8_MEMBER(m2comm_device::zfg_w) { -#ifdef __M2COMM_VERBOSE__ - osd_printf_verbose("m2comm-zfg_w: %02x\n", data); -#endif + LOG("m2comm-zfg_w: %02x\n", data); m_zfg = data & 0x01; } READ8_MEMBER(m2comm_device::share_r) { uint8_t result = m_shared[offset]; -#ifdef __M2COMM_VERBOSE__ - osd_printf_verbose("m2comm-share_r: read shared memory %02x for value %02x\n", offset, result); -#endif + LOG("m2comm-share_r: read shared memory %02x for value %02x\n", offset, result); return result; } WRITE8_MEMBER(m2comm_device::share_w) { -#ifdef __M2COMM_VERBOSE__ - osd_printf_verbose("m2comm-share_w: %02x %02x\n", offset, data); -#endif + LOG("m2comm-share_w: %02x %02x\n", offset, data); m_shared[offset] = data; } @@ -279,7 +272,7 @@ WRITE8_MEMBER(m2comm_device::cn_w) { m_cn = data & 0x01; -#ifndef __M2COMM_SIMULATION__ +#ifndef M2COMM_SIMULATION if (!m_cn) device_reset(); #else @@ -336,13 +329,13 @@ WRITE8_MEMBER(m2comm_device::fg_w) void m2comm_device::check_vint_irq() { -#ifndef __M2COMM_SIMULATION__ +#ifndef M2COMM_SIMULATION #else comm_tick(); #endif } -#ifdef __M2COMM_SIMULATION__ +#ifdef M2COMM_SIMULATION void m2comm_device::comm_tick() { if (m_linkenable == 0x01) diff --git a/src/mame/machine/m2comm.h b/src/mame/machine/m2comm.h index 5145b59d54b..2667f277340 100644 --- a/src/mame/machine/m2comm.h +++ b/src/mame/machine/m2comm.h @@ -1,11 +1,11 @@ // license:BSD-3-Clause // copyright-holders:Ariane Fugmann -#pragma once +#ifndef MAME_MACHINE_M2COMM_H +#define MAME_MACHINE_M2COMM_H -#ifndef __M2COMM_H__ -#define __M2COMM_H__ +#pragma once -#define __M2COMM_SIMULATION__ +#define M2COMM_SIMULATION #define MCFG_M2COMM_ADD(_tag ) \ @@ -64,7 +64,7 @@ private: char m_remotehost[256]; uint8_t m_buffer[0x4000]; -#ifdef __M2COMM_SIMULATION__ +#ifdef M2COMM_SIMULATION uint8_t m_linkenable; uint16_t m_linktimer; uint8_t m_linkalive; @@ -76,6 +76,6 @@ private: }; // device type definition -extern const device_type M2COMM; +DECLARE_DEVICE_TYPE(M2COMM, m2comm_device) -#endif /* __M2COMM_H__ */ +#endif // MAME_MACHINE_M2COMM_H diff --git a/src/mame/machine/m3comm.cpp b/src/mame/machine/m3comm.cpp index 0c90c8a025a..7017e16928a 100644 --- a/src/mame/machine/m3comm.cpp +++ b/src/mame/machine/m3comm.cpp @@ -116,7 +116,7 @@ MACHINE_CONFIG_END // GLOBAL VARIABLES //************************************************************************** -const device_type M3COMM = device_creator; +DEFINE_DEVICE_TYPE(M3COMM, m3comm_device, "m3comm", "Model 3 Communication Board") //------------------------------------------------- // machine_config_additions - device-specific @@ -137,7 +137,7 @@ machine_config_constructor m3comm_device::device_mconfig_additions() const //------------------------------------------------- m3comm_device::m3comm_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, M3COMM, "MODEL-3 COMMUNICATION BD", tag, owner, clock, "m3comm", __FILE__), + device_t(mconfig, M3COMM, tag, owner, clock), m68k_ram(*this, "m68k_ram"), m_commcpu(*this, M68K_TAG), m_ram(*this, RAM_TAG), diff --git a/src/mame/machine/m3comm.h b/src/mame/machine/m3comm.h index 5e1ba416664..2989bddabba 100644 --- a/src/mame/machine/m3comm.h +++ b/src/mame/machine/m3comm.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:MetalliC -#pragma once +#ifndef MAME_MACHINE_M3COMM_H +#define MAME_MACHINE_M3COMM_H -#ifndef __M3COMM_H__ -#define __M3COMM_H__ +#pragma once #include "machine/ram.h" #include "cpu/m68000/m68000.h" @@ -77,6 +77,6 @@ private: }; // device type definition -extern const device_type M3COMM; +DECLARE_DEVICE_TYPE(M3COMM, m3comm_device) -#endif /* __M3COMM_H__ */ +#endif // MAME_MACHINE_M3COMM_H diff --git a/src/mame/machine/mackbd.cpp b/src/mame/machine/mackbd.cpp index 089ddf4254f..d6f35dbc6aa 100644 --- a/src/mame/machine/mackbd.cpp +++ b/src/mame/machine/mackbd.cpp @@ -65,7 +65,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type MACKBD = device_creator; +DEFINE_DEVICE_TYPE(MACKBD, mackbd_device, "mackbd", "Macintosh Keyboard") ROM_START( mackbd ) ROM_REGION(0x800, MACKBD_CPU_TAG, 0) @@ -212,7 +212,7 @@ ioport_constructor mackbd_device::device_input_ports() const //------------------------------------------------- mackbd_device::mackbd_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MACKBD, "Macintosh keyboard", tag, owner, clock, "mackbd", __FILE__), + : device_t(mconfig, MACKBD, tag, owner, clock), m_maincpu(*this, MACKBD_CPU_TAG), m_clkout_handler(*this), m_dataout_handler(*this) diff --git a/src/mame/machine/mackbd.h b/src/mame/machine/mackbd.h index 4797b247ef8..4984f8ebc12 100644 --- a/src/mame/machine/mackbd.h +++ b/src/mame/machine/mackbd.h @@ -1,10 +1,9 @@ // license:BSD-3-Clause // copyright-holders:R. Belmont -#pragma once - -#ifndef __MACKBD_H__ -#define __MACKBD_H__ +#ifndef MAME_MACHINE_MACKBD_H +#define MAME_MACHINE_MACKBD_H +#pragma once @@ -72,6 +71,6 @@ private: }; // device type definition -extern const device_type MACKBD; +DECLARE_DEVICE_TYPE(MACKBD, mackbd_device) -#endif +#endif // MAME_MACHINE_MACKBD_H diff --git a/src/mame/machine/macrtc.cpp b/src/mame/machine/macrtc.cpp index 94a5c5435ff..b375098daf1 100644 --- a/src/mame/machine/macrtc.cpp +++ b/src/mame/machine/macrtc.cpp @@ -33,7 +33,7 @@ enum //************************************************************************** // device type definition -const device_type RTC3430042 = device_creator; +DEFINE_DEVICE_TYPE(RTC3430042, rtc3430042_device, "rtc3430042", "Apple 343-0042 clock/PRAM") //------------------------------------------------- @@ -41,7 +41,7 @@ const device_type RTC3430042 = device_creator; //------------------------------------------------- rtc3430042_device::rtc3430042_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, RTC3430042, "Apple 343-0042 clock/PRAM", tag, owner, clock, "rtc3430042", __FILE__), + : device_t(mconfig, RTC3430042, tag, owner, clock), device_rtc_interface(mconfig, *this), device_nvram_interface(mconfig, *this) { diff --git a/src/mame/machine/macrtc.h b/src/mame/machine/macrtc.h index dd96403cd99..01fba185e20 100644 --- a/src/mame/machine/macrtc.h +++ b/src/mame/machine/macrtc.h @@ -7,10 +7,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_MACHINE_MACRTC_H +#define MAME_MACHINE_MACRTC_H -#ifndef __RTC3430042_H__ -#define __RTC3430042_H__ +#pragma once #include "dirtc.h" @@ -96,6 +96,6 @@ private: // device type definition -extern const device_type RTC3430042; +DECLARE_DEVICE_TYPE(RTC3430042, rtc3430042_device) -#endif +#endif // MAME_MACHINE_MACRTC_H diff --git a/src/mame/machine/maple-dc.cpp b/src/mame/machine/maple-dc.cpp index aa51b0fcdf9..41bbdacc173 100644 --- a/src/mame/machine/maple-dc.cpp +++ b/src/mame/machine/maple-dc.cpp @@ -5,7 +5,7 @@ #include "maple-dc.h" #include "mie.h" -const device_type MAPLE_DC = device_creator; +DEFINE_DEVICE_TYPE(MAPLE_DC, maple_dc_device, "maple_dc", "Dreamcast Maple Bus") DEVICE_ADDRESS_MAP_START(amap, 32, maple_dc_device) AM_RANGE(0x04, 0x07) AM_READWRITE(sb_mdstar_r, sb_mdstar_w) @@ -29,7 +29,7 @@ void maple_dc_device::static_set_irq_cb(device_t &device, void (*irq_cb)(running } maple_dc_device::maple_dc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MAPLE_DC, "Dreamcast Maple Bus", tag, owner, clock, "maple_dc", __FILE__) + : device_t(mconfig, MAPLE_DC, tag, owner, clock) { // Do not move that in device_start or there will be a race // condition with the maple devices call to register_port. diff --git a/src/mame/machine/maple-dc.h b/src/mame/machine/maple-dc.h index 7c8e1b69c46..8752c34cbce 100644 --- a/src/mame/machine/maple-dc.h +++ b/src/mame/machine/maple-dc.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Olivier Galibert -#ifndef __MAPLE_DC_H__ -#define __MAPLE_DC_H__ +#ifndef MAME_MACHINE_MAPLE_DC_H +#define MAME_MACHINE_MAPLE_DC_H + +#pragma once #include "cpu/sh4/sh4.h" @@ -72,6 +74,6 @@ private: const char *maincpu_tag; }; -extern const device_type MAPLE_DC; +DECLARE_DEVICE_TYPE(MAPLE_DC, maple_dc_device) -#endif /* __MAPLE_DC_H__ */ +#endif // MAME_MACHINE_MAPLE_DC_H diff --git a/src/mame/machine/mapledev.cpp b/src/mame/machine/mapledev.cpp index 01ba48849a9..68144ee0f97 100644 --- a/src/mame/machine/mapledev.cpp +++ b/src/mame/machine/mapledev.cpp @@ -12,7 +12,7 @@ void maple_device::static_set_host(device_t &device, const char *_host_tag, int } -maple_device::maple_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : device_t(mconfig, type, name, tag, owner, clock, shortname, source) +maple_device::maple_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : device_t(mconfig, type, tag, owner, clock) { host_tag = nullptr; host_port = 0; diff --git a/src/mame/machine/mapledev.h b/src/mame/machine/mapledev.h index f8942d13853..6d858fbd442 100644 --- a/src/mame/machine/mapledev.h +++ b/src/mame/machine/mapledev.h @@ -1,7 +1,7 @@ // license:BSD-3-Clause // copyright-holders:Olivier Galibert -#ifndef _MAPLEDEV_H_ -#define _MAPLEDEV_H_ +#ifndef MAME_MACHINE_MAPLEDEV_H +#define MAME_MACHINE_MAPLEDEV_H #define MCFG_MAPLE_DEVICE_ADD(_tag, _type, _clock, _host_tag, _host_port) \ MCFG_DEVICE_ADD(_tag, _type, _clock) \ @@ -10,8 +10,6 @@ class maple_device : public device_t { public: - maple_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - static void static_set_host(device_t &device, const char *_host_tag, int _host_port); virtual void maple_w(const uint32_t *data, uint32_t in_size) = 0; void maple_r(uint32_t *data, uint32_t &out_size, bool &partial); @@ -20,6 +18,8 @@ public: protected: enum { TIMER_ID = 1000 }; + maple_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + uint32_t reply_size; bool reply_partial; uint32_t reply_buffer[256]; @@ -47,4 +47,4 @@ private: emu_timer *timer; }; -#endif // _MAPLEDEV_H_ +#endif // MAME_MACHINE_MAPLEDEV_H diff --git a/src/mame/machine/mathbox.cpp b/src/mame/machine/mathbox.cpp index 658881873dd..fe29aa10fca 100644 --- a/src/mame/machine/mathbox.cpp +++ b/src/mame/machine/mathbox.cpp @@ -37,10 +37,10 @@ // mathbox_device - constructor //------------------------------------------------- -const device_type MATHBOX = device_creator; +DEFINE_DEVICE_TYPE(MATHBOX, mathbox_device, "mathbox", "Atari MATHBOX") mathbox_device::mathbox_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MATHBOX, "Atari MATHBOX", tag, owner, clock, "mathbox", __FILE__) + : device_t(mconfig, MATHBOX, tag, owner, clock) { } diff --git a/src/mame/machine/mathbox.h b/src/mame/machine/mathbox.h index a4492309b5c..035093b0c4b 100644 --- a/src/mame/machine/mathbox.h +++ b/src/mame/machine/mathbox.h @@ -6,6 +6,10 @@ * Copyright Eric Smith * */ +#ifndef MAME_MACHINE_MATHBOX_H +#define MAME_MACHINE_MATHBOX_H + +#pragma once /*************************************************************************** DEVICE CONFIGURATION MACROS @@ -41,4 +45,6 @@ protected: int16_t m_result; }; -extern const device_type MATHBOX; +DECLARE_DEVICE_TYPE(MATHBOX, mathbox_device) + +#endif // MAME_MACHINE_MATHBOX_H diff --git a/src/mame/machine/mc8123.cpp b/src/mame/machine/mc8123.cpp index 10eb243cc25..8a4ff955299 100644 --- a/src/mame/machine/mc8123.cpp +++ b/src/mame/machine/mc8123.cpp @@ -80,15 +80,15 @@ CPU # Game Notes Seed Upper Limit #include "mc8123.h" -const device_type MC8123 = device_creator; +DEFINE_DEVICE_TYPE(MC8123, mc8123_device, "mc8123", "MC-8123") //------------------------------------------------- // mc8123_device - constructor //------------------------------------------------- mc8123_device::mc8123_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : z80_device(mconfig, MC8123, "MC-8123", tag, owner, clock, "mc8123", __FILE__), - m_key(*this, "key", 0x2000) + : z80_device(mconfig, MC8123, tag, owner, clock) + , m_key(*this, "key", 0x2000) { } diff --git a/src/mame/machine/mc8123.h b/src/mame/machine/mc8123.h index 0003e824a9b..8c5d322a968 100644 --- a/src/mame/machine/mc8123.h +++ b/src/mame/machine/mc8123.h @@ -6,10 +6,10 @@ ***************************************************************************/ -#pragma once - #ifndef MAME_MACHINE_MC8123 -#define MAME_MACHINE_MC8123 1 +#define MAME_MACHINE_MC8123 + +#pragma once #include "cpu/z80/z80.h" @@ -39,5 +39,6 @@ private: }; extern const device_type MC8123; +DECLARE_DEVICE_TYPE(MC8123, mc8123_device) -#endif +#endif // MAME_MACHINE_MC8123 diff --git a/src/mame/machine/mega32x.cpp b/src/mame/machine/mega32x.cpp index df371297ec3..5969e929393 100644 --- a/src/mame/machine/mega32x.cpp +++ b/src/mame/machine/mega32x.cpp @@ -202,27 +202,49 @@ GFX check (these don't explicitly fails): #include "sound/volt_reg.h" -const device_type SEGA_32X_NTSC = device_creator; -const device_type SEGA_32X_PAL = device_creator; +// Fifa96 needs the CPUs swapped for the gameplay to enter due to some race conditions +// when using the DRC core. Needs further investigation, the non-DRC core works either +// way +#define _32X_SWAP_MASTER_SLAVE_HACK +#define _32X_COMMS_PORT_SYNC 0 +#define MAX_HPOSITION 480 +/* need to make some pwm stuff part of device */ +#define PWM_FIFO_SIZE m_pwm_tm_reg // guess, Marsch calls this register as FIFO width +#define PWM_CLOCK m_32x_pal ? ((MASTER_CLOCK_PAL*3) / 7) : ((MASTER_CLOCK_NTSC*3) / 7) -sega_32x_device::sega_32x_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source) + + +#define SH2_VRES_IRQ_LEVEL 14 +#define SH2_VINT_IRQ_LEVEL 12 +#define SH2_HINT_IRQ_LEVEL 10 +#define SH2_CINT_IRQ_LEVEL 8 +#define SH2_PINT_IRQ_LEVEL 6 + +#define MASTER_CLOCK_NTSC 53693175 +#define MASTER_CLOCK_PAL 53203424 + + +DEFINE_DEVICE_TYPE(SEGA_32X_NTSC, sega_32x_ntsc_device, "sega_32x_ntsc", "Sega 32X (NTSC)") +DEFINE_DEVICE_TYPE(SEGA_32X_PAL, sega_32x_pal_device, "sega_32x_pal", "Sega 32X (PAL)") + +sega_32x_device::sega_32x_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) + , m_sh2_shared(*this, "sh2_shared") , m_master_cpu(*this, "32x_master_sh2") , m_slave_cpu(*this, "32x_slave_sh2") , m_ldac(*this, "ldac") , m_rdac(*this, "rdac") - , m_sh2_shared(*this, "sh2_shared") , m_palette(*this, finder_base::DUMMY_TAG) { } sega_32x_ntsc_device::sega_32x_ntsc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : sega_32x_device(mconfig, SEGA_32X_NTSC, "sega_32x_ntsc", tag, owner, clock, "sega_32x_ntsc", __FILE__) + : sega_32x_device(mconfig, SEGA_32X_NTSC, tag, owner, clock) { } sega_32x_pal_device::sega_32x_pal_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : sega_32x_device(mconfig, SEGA_32X_PAL, "sega_32x_pal", tag, owner, clock, "sega_32x_pal", __FILE__) + : sega_32x_device(mconfig, SEGA_32X_PAL, tag, owner, clock) { } diff --git a/src/mame/machine/mega32x.h b/src/mame/machine/mega32x.h index de465b5f7ca..4b2328100a3 100644 --- a/src/mame/machine/mega32x.h +++ b/src/mame/machine/mega32x.h @@ -1,28 +1,10 @@ // license:BSD-3-Clause // copyright-holders:David Haywood /* 32X */ +#ifndef MAME_MACHINE_MEGA32X_H +#define MAME_MACHINE_MEGA32X_H - -// Fifa96 needs the CPUs swapped for the gameplay to enter due to some race conditions -// when using the DRC core. Needs further investigation, the non-DRC core works either -// way -#define _32X_SWAP_MASTER_SLAVE_HACK -#define _32X_COMMS_PORT_SYNC 0 -#define MAX_HPOSITION 480 -/* need to make some pwm stuff part of device */ -#define PWM_FIFO_SIZE m_pwm_tm_reg // guess, Marsch calls this register as FIFO width -#define PWM_CLOCK m_32x_pal ? ((MASTER_CLOCK_PAL*3) / 7) : ((MASTER_CLOCK_NTSC*3) / 7) - - - -#define SH2_VRES_IRQ_LEVEL 14 -#define SH2_VINT_IRQ_LEVEL 12 -#define SH2_HINT_IRQ_LEVEL 10 -#define SH2_CINT_IRQ_LEVEL 8 -#define SH2_PINT_IRQ_LEVEL 6 - -#define MASTER_CLOCK_NTSC 53693175 -#define MASTER_CLOCK_PAL 53203424 +#pragma once #include "cpu/sh2/sh2.h" #include "cpu/sh2/sh2comn.h" @@ -31,22 +13,19 @@ class sega_32x_device : public device_t { public: - sega_32x_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - - required_device m_master_cpu; - required_device m_slave_cpu; - required_device m_ldac; - required_device m_rdac; - - required_shared_ptr m_sh2_shared; - void pause_cpu(); // set some variables at start, depending on region (shall be moved to a device interface?) void set_framerate(int rate) { m_framerate = rate; } void set_32x_pal(bool pal) { m_32x_pal = pal ? 1 : 0; } void set_total_scanlines(int total) { m_base_total_scanlines = total; } // this get set at start only - void update_total_scanlines(bool mode3) { m_total_scanlines = mode3 ? (m_base_total_scanlines * 2) : m_base_total_scanlines; } // this gets set at each EOF + + void screen_eof(bool mode3) + { + m_32x_vblank_flag = 0; + m_32x_hcount_compare_val = -1; + update_total_scanlines(mode3); + } // static configuration static void static_set_palette_tag(device_t &device, const char *tag); @@ -126,7 +105,25 @@ public: void _32x_check_irqs(); void _32x_interrupt_cb(int scanline, int irq6); +protected: + sega_32x_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + required_shared_ptr m_sh2_shared; + + virtual void device_start() override; + virtual void device_reset() override; + + // optional information overrides + virtual machine_config_constructor device_mconfig_additions() const override; + + void update_total_scanlines(bool mode3) { m_total_scanlines = mode3 ? (m_base_total_scanlines * 2) : m_base_total_scanlines; } // this gets set at each EOF + /* our main vblank handler resets this */ + required_device m_master_cpu; + required_device m_slave_cpu; + required_device m_ldac; + required_device m_rdac; + int m_32x_hcount_compare_val; int m_32x_vblank_flag; int m_sh2_are_running; @@ -147,14 +144,6 @@ public: emu_timer *m_32x_pwm_timer; -protected: - virtual void device_start() override; - virtual void device_reset() override; - - // optional information overrides -// virtual const rom_entry *device_rom_region() const; - virtual machine_config_constructor device_mconfig_additions() const override; - private: int m_32x_displaymode; @@ -213,22 +202,24 @@ private: class sega_32x_ntsc_device : public sega_32x_device { - public: - sega_32x_ntsc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); +public: + sega_32x_ntsc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; class sega_32x_pal_device : public sega_32x_device { - public: - sega_32x_pal_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - protected: - virtual machine_config_constructor device_mconfig_additions() const override; +public: + sega_32x_pal_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); +protected: + virtual machine_config_constructor device_mconfig_additions() const override; }; -extern const device_type SEGA_32X_NTSC; -extern const device_type SEGA_32X_PAL; +DECLARE_DEVICE_TYPE(SEGA_32X_NTSC, sega_32x_ntsc_device) +DECLARE_DEVICE_TYPE(SEGA_32X_PAL, sega_32x_pal_device) #define MCFG_SEGA_32X_PALETTE(_palette_tag) \ sega_32x_device::static_set_palette_tag(*device, "^" _palette_tag); + +#endif // MAME_MACHINE_MEGA32X_H diff --git a/src/mame/machine/megacd.cpp b/src/mame/machine/megacd.cpp index 1c75615f3d8..dbb7665468a 100644 --- a/src/mame/machine/megacd.cpp +++ b/src/mame/machine/megacd.cpp @@ -6,9 +6,41 @@ #include "megacd.lh" -const device_type SEGA_SEGACD_US = device_creator; -const device_type SEGA_SEGACD_JAPAN = device_creator; -const device_type SEGA_SEGACD_EUROPE = device_creator; +#define SEGACD_CLOCK 12500000 + +#define RAM_MODE_2MEG (0) +#define RAM_MODE_1MEG (2) + +#define DMA_PCM (0x0400) +#define DMA_PRG (0x0500) +#define DMA_WRAM (0x0700) + +// irq3 timer +#define CHECK_SCD_LV3_INTERRUPT \ + if (m_lc89510_temp->get_segacd_irq_mask() & 0x08) \ + { \ + m_scdcpu->set_input_line(3, HOLD_LINE); \ + } +// from master +#define CHECK_SCD_LV2_INTERRUPT \ + if (m_lc89510_temp->get_segacd_irq_mask() & 0x04) \ + { \ + m_scdcpu->set_input_line(2, HOLD_LINE); \ + } + +// gfx convert +#define CHECK_SCD_LV1_INTERRUPT \ + if (m_lc89510_temp->get_segacd_irq_mask() & 0x02) \ + { \ + m_scdcpu->set_input_line(1, HOLD_LINE); \ + } + +#define SEGACD_IRQ3_TIMER_SPEED (attotime::from_nsec(m_irq3_timer_reg*30720)) + + +DEFINE_DEVICE_TYPE(SEGA_SEGACD_US, sega_segacd_us_device, "segacd_us", "Sega Sega CD (US)") +DEFINE_DEVICE_TYPE(SEGA_SEGACD_JAPAN, sega_segacd_japan_device, "segacd_japan", "Sega Mega-CD (Japan)") +DEFINE_DEVICE_TYPE(SEGA_SEGACD_EUROPE, sega_segacd_europe_device, "segacd_europe", "Sega Mega-CD (PAL)") /* Callback when the genesis enters interrupt code */ @@ -289,8 +321,8 @@ machine_config_constructor sega_segacd_device::device_mconfig_additions() const } -sega_segacd_device::sega_segacd_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), +sega_segacd_device::sega_segacd_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock), device_gfx_interface(mconfig, *this, GFXDECODE_NAME( segacd )), m_scdcpu(*this, "segacd_68k"), m_rfsnd(*this, "rfsnd"), @@ -306,17 +338,17 @@ sega_segacd_device::sega_segacd_device(const machine_config &mconfig, device_typ } sega_segacd_us_device::sega_segacd_us_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : sega_segacd_device(mconfig, SEGA_SEGACD_US, "sega_segacd_us", tag, owner, clock, "sega_segacd_us", __FILE__) + : sega_segacd_device(mconfig, SEGA_SEGACD_US, tag, owner, clock) { } sega_segacd_japan_device::sega_segacd_japan_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : sega_segacd_device(mconfig, SEGA_SEGACD_JAPAN, "sega_segacd_japan", tag, owner, clock, "sega_segacd_japan", __FILE__) + : sega_segacd_device(mconfig, SEGA_SEGACD_JAPAN, tag, owner, clock) { } sega_segacd_europe_device::sega_segacd_europe_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : sega_segacd_device(mconfig, SEGA_SEGACD_EUROPE, "sega_segacd_europe", tag, owner, clock, "sega_segacd_europe", __FILE__) + : sega_segacd_device(mconfig, SEGA_SEGACD_EUROPE, tag, owner, clock) { } diff --git a/src/mame/machine/megacd.h b/src/mame/machine/megacd.h index 9d447b3d8d9..cab6d1ea258 100644 --- a/src/mame/machine/megacd.h +++ b/src/mame/machine/megacd.h @@ -1,48 +1,113 @@ // license:BSD-3-Clause // copyright-holders:David Haywood /* Sega CD / Mega CD */ +#ifndef MAME_MACHINE_MEGACD_H +#define MAME_MACHINE_MEGACD_H + +#pragma once #include "cpu/m68000/m68000.h" #include "machine/lc89510.h" #include "machine/megacdcd.h" #include "sound/rf5c68.h" -#define SEGACD_CLOCK 12500000 +class sega_segacd_device : public device_t, public device_gfx_interface +{ +public: + // set some variables at start, depending on region (shall be moved to a device interface?) + void set_framerate(int rate) { m_framerate = rate; } + void set_total_scanlines(int total) { m_base_total_scanlines = total; } // this gets set at start only + void update_total_scanlines(bool mode3) { m_total_scanlines = mode3 ? (m_base_total_scanlines * 2) : m_base_total_scanlines; } // this gets set at each EOF -#define RAM_MODE_2MEG (0) -#define RAM_MODE_1MEG (2) + DECLARE_READ16_MEMBER( segacd_dmaaddr_r ); + DECLARE_WRITE16_MEMBER( segacd_dmaaddr_w ); -#define DMA_PCM (0x0400) -#define DMA_PRG (0x0500) -#define DMA_WRAM (0x0700) + DECLARE_WRITE16_MEMBER( scd_a12000_halt_reset_w ); + DECLARE_READ16_MEMBER( scd_a12000_halt_reset_r ); + DECLARE_READ16_MEMBER( scd_a12002_memory_mode_r ); + DECLARE_WRITE8_MEMBER( scd_a12002_memory_mode_w_8_15 ); + DECLARE_WRITE8_MEMBER( scd_a12002_memory_mode_w_0_7 ); + DECLARE_WRITE16_MEMBER( scd_a12002_memory_mode_w ); + DECLARE_READ16_MEMBER( segacd_sub_memory_mode_r ); + DECLARE_WRITE8_MEMBER( segacd_sub_memory_mode_w_8_15 ); + DECLARE_WRITE8_MEMBER( segacd_sub_memory_mode_w_0_7 ); + DECLARE_WRITE16_MEMBER( segacd_sub_memory_mode_w ); + + DECLARE_READ16_MEMBER( segacd_comms_flags_r ); + DECLARE_WRITE16_MEMBER( segacd_comms_flags_subcpu_w ); + DECLARE_WRITE16_MEMBER( segacd_comms_flags_maincpu_w ); + DECLARE_READ16_MEMBER( scd_4m_prgbank_ram_r ); + DECLARE_WRITE16_MEMBER( scd_4m_prgbank_ram_w ); + DECLARE_READ16_MEMBER( segacd_comms_main_part1_r ); + DECLARE_WRITE16_MEMBER( segacd_comms_main_part1_w ); + DECLARE_READ16_MEMBER( segacd_comms_main_part2_r ); + DECLARE_WRITE16_MEMBER( segacd_comms_main_part2_w ); + DECLARE_READ16_MEMBER( segacd_comms_sub_part1_r ); + DECLARE_WRITE16_MEMBER( segacd_comms_sub_part1_w ); + DECLARE_READ16_MEMBER( segacd_comms_sub_part2_r ); + DECLARE_WRITE16_MEMBER( segacd_comms_sub_part2_w ); + + + + DECLARE_READ16_MEMBER( segacd_main_dataram_part1_r ); + DECLARE_WRITE16_MEMBER( segacd_main_dataram_part1_w ); + + DECLARE_READ16_MEMBER( scd_hint_vector_r ); + DECLARE_READ16_MEMBER( scd_a12006_hint_register_r ); + DECLARE_WRITE16_MEMBER( scd_a12006_hint_register_w ); + + + DECLARE_WRITE16_MEMBER( segacd_stopwatch_timer_w ); + DECLARE_READ16_MEMBER( segacd_stopwatch_timer_r ); + DECLARE_READ16_MEMBER( segacd_sub_led_ready_r ); + DECLARE_WRITE16_MEMBER( segacd_sub_led_ready_w ); + DECLARE_READ16_MEMBER( segacd_sub_dataram_part1_r ); + DECLARE_WRITE16_MEMBER( segacd_sub_dataram_part1_w ); + DECLARE_READ16_MEMBER( segacd_sub_dataram_part2_r ); + DECLARE_WRITE16_MEMBER( segacd_sub_dataram_part2_w ); + + + DECLARE_READ16_MEMBER( segacd_stampsize_r ); + DECLARE_WRITE16_MEMBER( segacd_stampsize_w ); -// irq3 timer -#define CHECK_SCD_LV3_INTERRUPT \ - if (m_lc89510_temp->get_segacd_irq_mask() & 0x08) \ - { \ - m_scdcpu->set_input_line(3, HOLD_LINE); \ - } -// from master -#define CHECK_SCD_LV2_INTERRUPT \ - if (m_lc89510_temp->get_segacd_irq_mask() & 0x04) \ - { \ - m_scdcpu->set_input_line(2, HOLD_LINE); \ - } + TILE_GET_INFO_MEMBER( get_stampmap_16x16_1x1_tile_info ); + TILE_GET_INFO_MEMBER( get_stampmap_32x32_1x1_tile_info ); + TILE_GET_INFO_MEMBER( get_stampmap_16x16_16x16_tile_info ); + TILE_GET_INFO_MEMBER( get_stampmap_32x32_16x16_tile_info ); -// gfx convert -#define CHECK_SCD_LV1_INTERRUPT \ - if (m_lc89510_temp->get_segacd_irq_mask() & 0x02) \ - { \ - m_scdcpu->set_input_line(1, HOLD_LINE); \ - } + WRITE16_MEMBER( segacd_trace_vector_base_address_w ); + READ16_MEMBER( segacd_imagebuffer_vdot_size_r ); + WRITE16_MEMBER( segacd_imagebuffer_vdot_size_w ); + READ16_MEMBER( segacd_stampmap_base_address_r ); + WRITE16_MEMBER( segacd_stampmap_base_address_w ); + READ16_MEMBER( segacd_imagebuffer_start_address_r ); + WRITE16_MEMBER( segacd_imagebuffer_start_address_w ); + READ16_MEMBER( segacd_imagebuffer_offset_r ); + WRITE16_MEMBER( segacd_imagebuffer_offset_w ); + READ16_MEMBER( segacd_imagebuffer_vcell_size_r ); + WRITE16_MEMBER( segacd_imagebuffer_vcell_size_w ); + READ16_MEMBER( segacd_imagebuffer_hdot_size_r ); + WRITE16_MEMBER( segacd_imagebuffer_hdot_size_w ); + READ16_MEMBER( segacd_irq3timer_r ); + WRITE16_MEMBER( segacd_irq3timer_w ); + READ8_MEMBER( backupram_r ); + WRITE8_MEMBER( backupram_w ); + READ8_MEMBER( font_color_r ); + WRITE8_MEMBER( font_color_w ); + READ16_MEMBER( font_converted_r ); + TIMER_DEVICE_CALLBACK_MEMBER( dma_timer_callback ); + IRQ_CALLBACK_MEMBER(segacd_sub_int_callback); + + TIMER_DEVICE_CALLBACK_MEMBER( irq3_timer_callback ); + TIMER_DEVICE_CALLBACK_MEMBER( stamp_timer_callback ); -#define SEGACD_IRQ3_TIMER_SPEED (attotime::from_nsec(m_irq3_timer_reg*30720)) + void SegaCD_CDC_Do_DMA( int &dmacount, uint8_t *CDC_BUFFER, uint16_t &dma_addrc, uint16_t &destination ); +protected: + sega_segacd_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); -class sega_segacd_device : public device_t, public device_gfx_interface -{ -public: - sega_segacd_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); + // optional information overrides + virtual machine_config_constructor device_mconfig_additions() const override; required_device m_scdcpu; required_device m_rfsnd; @@ -94,15 +159,10 @@ public: uint8_t m_irq3_timer_reg; - TIMER_DEVICE_CALLBACK_MEMBER( irq3_timer_callback ); - TIMER_DEVICE_CALLBACK_MEMBER( stamp_timer_callback ); - inline void write_pixel(uint8_t pix, int pixeloffset); uint16_t segacd_1meg_mode_word_read(int offset, uint16_t mem_mask); void segacd_1meg_mode_word_write(int offset, uint16_t data, uint16_t mem_mask, int use_pm); - DECLARE_READ16_MEMBER( segacd_dmaaddr_r ); - DECLARE_WRITE16_MEMBER( segacd_dmaaddr_w ); uint16_t m_dmaaddr; uint16_t m_a12000_halt_reset_reg; @@ -114,138 +174,44 @@ public: void segacd_mark_tiles_dirty(int offset); int segacd_get_active_stampmap_tilemap(void); - // set some variables at start, depending on region (shall be moved to a device interface?) - void set_framerate(int rate) { m_framerate = rate; } - void set_total_scanlines(int total) { m_base_total_scanlines = total; } // this gets set at start only - void update_total_scanlines(bool mode3) { m_total_scanlines = mode3 ? (m_base_total_scanlines * 2) : m_base_total_scanlines; } // this gets set at each EOF - void SCD_GET_TILE_INFO_16x16_1x1( int& tile_region, int& tileno, int tile_index ); void SCD_GET_TILE_INFO_32x32_1x1( int& tile_region, int& tileno, int tile_index ); void SCD_GET_TILE_INFO_16x16_16x16( int& tile_region, int& tileno, int tile_index ); void SCD_GET_TILE_INFO_32x32_16x16( int& tile_region, int& tileno, int tile_index ); - TILE_GET_INFO_MEMBER( get_stampmap_16x16_1x1_tile_info ); - TILE_GET_INFO_MEMBER( get_stampmap_32x32_1x1_tile_info ); - TILE_GET_INFO_MEMBER( get_stampmap_16x16_16x16_tile_info ); - TILE_GET_INFO_MEMBER( get_stampmap_32x32_16x16_tile_info ); - uint8_t get_stampmap_16x16_1x1_tile_info_pixel(int xpos, int ypos); uint8_t get_stampmap_32x32_1x1_tile_info_pixel(int xpos, int ypos); uint8_t get_stampmap_16x16_16x16_tile_info_pixel(int xpos, int ypos); uint8_t get_stampmap_32x32_16x16_tile_info_pixel(int xpos, int ypos); - WRITE16_MEMBER( scd_a12000_halt_reset_w ); - READ16_MEMBER( scd_a12000_halt_reset_r ); - READ16_MEMBER( scd_a12002_memory_mode_r ); - WRITE8_MEMBER( scd_a12002_memory_mode_w_8_15 ); - WRITE8_MEMBER( scd_a12002_memory_mode_w_0_7 ); - WRITE16_MEMBER( scd_a12002_memory_mode_w ); - READ16_MEMBER( segacd_sub_memory_mode_r ); - WRITE8_MEMBER( segacd_sub_memory_mode_w_8_15 ); - WRITE8_MEMBER( segacd_sub_memory_mode_w_0_7 ); - WRITE16_MEMBER( segacd_sub_memory_mode_w ); - - READ16_MEMBER( segacd_comms_flags_r ); - WRITE16_MEMBER( segacd_comms_flags_subcpu_w ); - WRITE16_MEMBER( segacd_comms_flags_maincpu_w ); - READ16_MEMBER( scd_4m_prgbank_ram_r ); - WRITE16_MEMBER( scd_4m_prgbank_ram_w ); - READ16_MEMBER( segacd_comms_main_part1_r ); - WRITE16_MEMBER( segacd_comms_main_part1_w ); - READ16_MEMBER( segacd_comms_main_part2_r ); - WRITE16_MEMBER( segacd_comms_main_part2_w ); - READ16_MEMBER( segacd_comms_sub_part1_r ); - WRITE16_MEMBER( segacd_comms_sub_part1_w ); - READ16_MEMBER( segacd_comms_sub_part2_r ); - WRITE16_MEMBER( segacd_comms_sub_part2_w ); - - - - READ16_MEMBER( segacd_main_dataram_part1_r ); - WRITE16_MEMBER( segacd_main_dataram_part1_w ); - - READ16_MEMBER( scd_hint_vector_r ); - READ16_MEMBER( scd_a12006_hint_register_r ); - WRITE16_MEMBER( scd_a12006_hint_register_w ); - - - WRITE16_MEMBER( segacd_stopwatch_timer_w ); - READ16_MEMBER( segacd_stopwatch_timer_r ); - READ16_MEMBER( segacd_sub_led_ready_r ); - WRITE16_MEMBER( segacd_sub_led_ready_w ); - READ16_MEMBER( segacd_sub_dataram_part1_r ); - WRITE16_MEMBER( segacd_sub_dataram_part1_w ); - READ16_MEMBER( segacd_sub_dataram_part2_r ); - WRITE16_MEMBER( segacd_sub_dataram_part2_w ); - - - READ16_MEMBER( segacd_stampsize_r ); - WRITE16_MEMBER( segacd_stampsize_w ); - uint8_t read_pixel_from_stampmap(bitmap_ind16* srcbitmap, int x, int y); - WRITE16_MEMBER( segacd_trace_vector_base_address_w ); - READ16_MEMBER( segacd_imagebuffer_vdot_size_r ); - WRITE16_MEMBER( segacd_imagebuffer_vdot_size_w ); - READ16_MEMBER( segacd_stampmap_base_address_r ); - WRITE16_MEMBER( segacd_stampmap_base_address_w ); - READ16_MEMBER( segacd_imagebuffer_start_address_r ); - WRITE16_MEMBER( segacd_imagebuffer_start_address_w ); - READ16_MEMBER( segacd_imagebuffer_offset_r ); - WRITE16_MEMBER( segacd_imagebuffer_offset_w ); - READ16_MEMBER( segacd_imagebuffer_vcell_size_r ); - WRITE16_MEMBER( segacd_imagebuffer_vcell_size_w ); - READ16_MEMBER( segacd_imagebuffer_hdot_size_r ); - WRITE16_MEMBER( segacd_imagebuffer_hdot_size_w ); - READ16_MEMBER( segacd_irq3timer_r ); - WRITE16_MEMBER( segacd_irq3timer_w ); - READ8_MEMBER( backupram_r ); - WRITE8_MEMBER( backupram_w ); - READ8_MEMBER( font_color_r ); - WRITE8_MEMBER( font_color_w ); - READ16_MEMBER( font_converted_r ); - TIMER_DEVICE_CALLBACK_MEMBER( dma_timer_callback ); - IRQ_CALLBACK_MEMBER(segacd_sub_int_callback); - - void SegaCD_CDC_Do_DMA( int &dmacount, uint8_t *CDC_BUFFER, uint16_t &dma_addrc, uint16_t &destination ); - -protected: virtual void device_start() override; virtual void device_reset() override; - - // optional information overrides -// virtual const rom_entry *device_rom_region() const; - virtual machine_config_constructor device_mconfig_additions() const override; -private: - }; class sega_segacd_us_device : public sega_segacd_device { - public: - sega_segacd_us_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - protected: - +public: + sega_segacd_us_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; class sega_segacd_japan_device : public sega_segacd_device { - public: - sega_segacd_japan_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - protected: -// virtual machine_config_constructor device_mconfig_additions() const; +public: + sega_segacd_japan_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; class sega_segacd_europe_device : public sega_segacd_device { - public: - sega_segacd_europe_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - protected: -// virtual machine_config_constructor device_mconfig_additions() const; +public: + sega_segacd_europe_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; -extern const device_type SEGA_SEGACD_US; -extern const device_type SEGA_SEGACD_JAPAN; -extern const device_type SEGA_SEGACD_EUROPE; +DECLARE_DEVICE_TYPE(SEGA_SEGACD_US, sega_segacd_us_device) +DECLARE_DEVICE_TYPE(SEGA_SEGACD_JAPAN, sega_segacd_japan_device) +DECLARE_DEVICE_TYPE(SEGA_SEGACD_EUROPE, sega_segacd_europe_device) + +#endif // MAME_MACHINE_MEGACD_H diff --git a/src/mame/machine/megacdcd.cpp b/src/mame/machine/megacdcd.cpp index 23b9a9b0ff4..7714e7d83ac 100644 --- a/src/mame/machine/megacdcd.cpp +++ b/src/mame/machine/megacdcd.cpp @@ -10,10 +10,131 @@ #include "emu.h" #include "machine/megacdcd.h" -const device_type LC89510_TEMP = device_creator; +#define READ_MAIN (0x0200) +#define READ_SUB (0x0300) + +#define REG_W_SBOUT (0x0) +#define REG_W_IFCTRL (0x1) +#define REG_W_DBCL (0x2) +#define REG_W_DBCH (0x3) +#define REG_W_DACL (0x4) +#define REG_W_DACH (0x5) +#define REG_W_DTTRG (0x6) +#define REG_W_DTACK (0x7) +#define REG_W_WAL (0x8) +#define REG_W_WAH (0x9) +#define REG_W_CTRL0 (0xA) +#define REG_W_CTRL1 (0xB) +#define REG_W_PTL (0xC) +#define REG_W_PTH (0xD) +#define REG_W_CTRL2 (0xE) +#define REG_W_RESET (0xF) + +#define REG_R_COMIN (0x0) +#define REG_R_IFSTAT (0x1) +#define REG_R_DBCL (0x2) +#define REG_R_DBCH (0x3) +#define REG_R_HEAD0 (0x4) +#define REG_R_HEAD1 (0x5) +#define REG_R_HEAD2 (0x6) +#define REG_R_HEAD3 (0x7) +#define REG_R_PTL (0x8) +#define REG_R_PTH (0x9) +#define REG_R_WAL (0xa) +#define REG_R_WAH (0xb) +#define REG_R_STAT0 (0xc) +#define REG_R_STAT1 (0xd) +#define REG_R_STAT2 (0xe) +#define REG_R_STAT3 (0xf) + +#define CMD_STATUS (0x0) +#define CMD_STOPALL (0x1) +#define CMD_GETTOC (0x2) +#define CMD_READ (0x3) +#define CMD_SEEK (0x4) +// (0x5) +#define CMD_STOP (0x6) +#define CMD_RESUME (0x7) +#define CMD_FF (0x8) +#define CMD_RW (0x9) +#define CMD_INIT (0xa) +// (0xb) +#define CMD_CLOSE (0xc) +#define CMD_OPEN (0xd) +// (0xe) +// (0xf) + + +#define TOCCMD_CURPOS (0x0) +#define TOCCMD_TRKPOS (0x1) +#define TOCCMD_CURTRK (0x2) +#define TOCCMD_LENGTH (0x3) +#define TOCCMD_FIRSTLAST (0x4) +#define TOCCMD_TRACKADDR (0x5) + + + + +#define SET_CDD_DATA_MODE \ + CDD_CONTROL |= 0x0100; +#define SET_CDD_AUDIO_MODE \ + CDD_CONTROL &= ~0x0100; +#define STOP_CDC_READ \ + SCD_STATUS_CDC &= ~0x01; +#define SET_CDC_READ \ + SCD_STATUS_CDC |= 0x01; +#define SET_CDC_DMA \ + SCD_STATUS_CDC |= 0x08; +#define STOP_CDC_DMA \ + SCD_STATUS_CDC &= ~0x08; +#define SCD_READ_ENABLED \ + (SCD_STATUS_CDC & 1) + +#define SCD_DMA_ENABLED \ + (SCD_STATUS_CDC & 0x08) + +#define CLEAR_CDD_RESULT \ + CDD_MIN = CDD_SEC = CDD_FRAME = CDD_EXT = 0; +#define CHECK_SCD_LV5_INTERRUPT \ + if (segacd_irq_mask & 0x20) \ + { \ + machine.device(":segacd:segacd_68k")->execute().set_input_line(5, HOLD_LINE); \ + } +#define CHECK_SCD_LV4_INTERRUPT \ + if (segacd_irq_mask & 0x10) \ + { \ + machine.device(":segacd:segacd_68k")->execute().set_input_line(4, HOLD_LINE); \ + } +#define CHECK_SCD_LV4_INTERRUPT_A \ + if (segacd_irq_mask & 0x10) \ + { \ + machine().device(":segacd:segacd_68k")->execute().set_input_line(4, HOLD_LINE); \ + } + + +#define CURRENT_TRACK_IS_DATA \ + (segacd.toc->tracks[SCD_CURTRK - 1].trktype != CD_TRACK_AUDIO) + +#define CDD_PLAYINGCDDA 0x0100 +#define CDD_READY 0x0400 +#define CDD_STOPPED 0x0900 + + +/* neocd */ + +#define CD_FRAMES_MINUTE (60 * 75) +#define CD_FRAMES_SECOND ( 75) +#define CD_FRAMES_PREGAP ( 2 * 75) + +#define SEK_IRQSTATUS_NONE (0x0000) +#define SEK_IRQSTATUS_AUTO (0x2000) +#define SEK_IRQSTATUS_ACK (0x1000) + + +DEFINE_DEVICE_TYPE(LC89510_TEMP, lc89510_temp_device, "lc89510_temp", "lc89510_temp_device") lc89510_temp_device::lc89510_temp_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, LC89510_TEMP, "lc89510_temp_device", tag, owner, clock, "lc89510_temp", __FILE__) + : device_t(mconfig, LC89510_TEMP, tag, owner, clock) { segacd_dma_callback = segacd_dma_delegate(FUNC(lc89510_temp_device::Fake_CDC_Do_DMA), this); type1_interrupt_callback = interrupt_delegate(FUNC(lc89510_temp_device::dummy_interrupt_callback), this); @@ -1163,7 +1284,7 @@ char* lc89510_temp_device::LC8915InitTransfer(int NeoCDDMACount) //bprintf(PRINT_ERROR, _T(" LC8951 DOUTEN status invalid\n")); return nullptr; } - if (((LC8951RegistersW[REG_W_DACH] << 8) | LC8951RegistersW[REG_W_DACL]) + (NeoCDDMACount << 1) > LC89510_EXTERNAL_BUFFER_SIZE) { + if (((LC8951RegistersW[REG_W_DACH] << 8) | LC8951RegistersW[REG_W_DACL]) + (NeoCDDMACount << 1) > EXTERNAL_BUFFER_SIZE) { //bprintf(PRINT_ERROR, _T(" DMA transfer exceeds current sector in LC8951 external buffer\n")); return nullptr; diff --git a/src/mame/machine/megacdcd.h b/src/mame/machine/megacdcd.h index 35f5cfc7e7f..c933a2cb887 100644 --- a/src/mame/machine/megacdcd.h +++ b/src/mame/machine/megacdcd.h @@ -1,127 +1,16 @@ // license:BSD-3-Clause // copyright-holders:David Haywood +#ifndef MAME_MACHINE_SEGACDCD_H +#define MAME_MACHINE_SEGACDCD_H -#include "sound/cdda.h" #include "imagedev/chd_cd.h" +#include "sound/cdda.h" typedef device_delegate segacd_dma_delegate; typedef device_delegate interrupt_delegate; - -#define READ_MAIN (0x0200) -#define READ_SUB (0x0300) - -#define REG_W_SBOUT (0x0) -#define REG_W_IFCTRL (0x1) -#define REG_W_DBCL (0x2) -#define REG_W_DBCH (0x3) -#define REG_W_DACL (0x4) -#define REG_W_DACH (0x5) -#define REG_W_DTTRG (0x6) -#define REG_W_DTACK (0x7) -#define REG_W_WAL (0x8) -#define REG_W_WAH (0x9) -#define REG_W_CTRL0 (0xA) -#define REG_W_CTRL1 (0xB) -#define REG_W_PTL (0xC) -#define REG_W_PTH (0xD) -#define REG_W_CTRL2 (0xE) -#define REG_W_RESET (0xF) - -#define REG_R_COMIN (0x0) -#define REG_R_IFSTAT (0x1) -#define REG_R_DBCL (0x2) -#define REG_R_DBCH (0x3) -#define REG_R_HEAD0 (0x4) -#define REG_R_HEAD1 (0x5) -#define REG_R_HEAD2 (0x6) -#define REG_R_HEAD3 (0x7) -#define REG_R_PTL (0x8) -#define REG_R_PTH (0x9) -#define REG_R_WAL (0xa) -#define REG_R_WAH (0xb) -#define REG_R_STAT0 (0xc) -#define REG_R_STAT1 (0xd) -#define REG_R_STAT2 (0xe) -#define REG_R_STAT3 (0xf) - -#define CMD_STATUS (0x0) -#define CMD_STOPALL (0x1) -#define CMD_GETTOC (0x2) -#define CMD_READ (0x3) -#define CMD_SEEK (0x4) -// (0x5) -#define CMD_STOP (0x6) -#define CMD_RESUME (0x7) -#define CMD_FF (0x8) -#define CMD_RW (0x9) -#define CMD_INIT (0xa) -// (0xb) -#define CMD_CLOSE (0xc) -#define CMD_OPEN (0xd) -// (0xe) -// (0xf) - - -#define TOCCMD_CURPOS (0x0) -#define TOCCMD_TRKPOS (0x1) -#define TOCCMD_CURTRK (0x2) -#define TOCCMD_LENGTH (0x3) -#define TOCCMD_FIRSTLAST (0x4) -#define TOCCMD_TRACKADDR (0x5) - - - - -#define SECTOR_SIZE (2352) - -#define SET_CDD_DATA_MODE \ - CDD_CONTROL |= 0x0100; -#define SET_CDD_AUDIO_MODE \ - CDD_CONTROL &= ~0x0100; -#define STOP_CDC_READ \ - SCD_STATUS_CDC &= ~0x01; -#define SET_CDC_READ \ - SCD_STATUS_CDC |= 0x01; -#define SET_CDC_DMA \ - SCD_STATUS_CDC |= 0x08; -#define STOP_CDC_DMA \ - SCD_STATUS_CDC &= ~0x08; -#define SCD_READ_ENABLED \ - (SCD_STATUS_CDC & 1) - -#define SCD_DMA_ENABLED \ - (SCD_STATUS_CDC & 0x08) - -#define CLEAR_CDD_RESULT \ - CDD_MIN = CDD_SEC = CDD_FRAME = CDD_EXT = 0; -#define CHECK_SCD_LV5_INTERRUPT \ - if (segacd_irq_mask & 0x20) \ - { \ - machine.device(":segacd:segacd_68k")->execute().set_input_line(5, HOLD_LINE); \ - } -#define CHECK_SCD_LV4_INTERRUPT \ - if (segacd_irq_mask & 0x10) \ - { \ - machine.device(":segacd:segacd_68k")->execute().set_input_line(4, HOLD_LINE); \ - } -#define CHECK_SCD_LV4_INTERRUPT_A \ - if (segacd_irq_mask & 0x10) \ - { \ - machine().device(":segacd:segacd_68k")->execute().set_input_line(4, HOLD_LINE); \ - } - - -#define CURRENT_TRACK_IS_DATA \ - (segacd.toc->tracks[SCD_CURTRK - 1].trktype != CD_TRACK_AUDIO) - -#define CDD_PLAYINGCDDA 0x0100 -#define CDD_READY 0x0400 -#define CDD_STOPPED 0x0900 - - #define MCFG_SEGACD_HACK_SET_CDC_DO_DMA( _class, _method) \ lc89510_temp_device::set_CDC_Do_DMA(*device, segacd_dma_delegate(&_class::_method, #_class "::" #_method, nullptr, (_class *)nullptr)); #define MCFG_SEGACD_HACK_SET_NEOCD \ @@ -132,23 +21,66 @@ typedef device_delegate interrupt_delegate; lc89510_temp_device::set_type2_interrupt_callback(*device, interrupt_delegate(&_class::_method, #_class "::" #_method, nullptr, (_class *)nullptr)); #define MCFG_SET_TYPE3_INTERRUPT_CALLBACK( _class, _method) \ lc89510_temp_device::set_type3_interrupt_callback(*device, interrupt_delegate(&_class::_method, #_class "::" #_method, nullptr, (_class *)nullptr)); -/* neocd */ - -#define CD_FRAMES_MINUTE (60 * 75) -#define CD_FRAMES_SECOND ( 75) -#define CD_FRAMES_PREGAP ( 2 * 75) - -#define SEK_IRQSTATUS_NONE (0x0000) -#define SEK_IRQSTATUS_AUTO (0x2000) -#define SEK_IRQSTATUS_ACK (0x1000) - -#define LC89510_EXTERNAL_BUFFER_SIZE ((32 * 1024 * 2) + SECTOR_SIZE) class lc89510_temp_device : public device_t { public: + static void set_is_neoCD(device_t &device, bool is_neoCD); + + static void set_type1_interrupt_callback(device_t &device,interrupt_delegate interrupt_callback); + static void set_type2_interrupt_callback(device_t &device,interrupt_delegate interrupt_callback); + static void set_type3_interrupt_callback(device_t &device,interrupt_delegate interrupt_callback); + + static void set_CDC_Do_DMA(device_t &device,segacd_dma_delegate new_segacd_dma_callback); + + lc89510_temp_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + uint16_t get_segacd_irq_mask() const { return segacd_irq_mask; } + + DECLARE_READ16_MEMBER( segacd_irq_mask_r ); + DECLARE_WRITE16_MEMBER( segacd_irq_mask_w ); + DECLARE_READ16_MEMBER( segacd_cdd_ctrl_r ); + DECLARE_WRITE16_MEMBER( segacd_cdd_ctrl_w ); + DECLARE_READ8_MEMBER( segacd_cdd_rx_r ); + DECLARE_WRITE8_MEMBER( segacd_cdd_tx_w ); + READ16_MEMBER( segacd_cdfader_r ); + WRITE16_MEMBER( segacd_cdfader_w ); + + WRITE16_MEMBER( segacd_cdc_mode_address_w ); + READ16_MEMBER( segacd_cdc_mode_address_r ); + WRITE16_MEMBER( segacd_cdc_data_w ); + READ16_MEMBER( segacd_cdc_data_r ); + READ16_MEMBER( cdc_data_sub_r ); + READ16_MEMBER( cdc_data_main_r ); + + void CDC_Do_DMA(running_machine& machine, int rate); + + uint8_t CDC_Reg_r(void); + void CDC_Reg_w(uint8_t data); + + void reset_cd(); + + // NeoGeo CD stuff + void neocd_cdd_tx_w(uint8_t data); + uint8_t neocd_cdd_rx_r(); + void NeoCDCommsControl(uint8_t clock, uint8_t send); + void NeoCDCommsReset(); + + uint16_t nff0016_r(); + void nff0016_set(uint16_t wordValue); + void nff0002_set(uint16_t wordValue); + + char* LC8915InitTransfer(int NeoCDDMACount); + void LC8915EndTransfer(); + + + TIMER_DEVICE_CALLBACK_MEMBER( segacd_access_timer_callback ); + +protected: + static constexpr unsigned SECTOR_SIZE = 2352; + static constexpr unsigned EXTERNAL_BUFFER_SIZE = (32 * 1024 * 2) + SECTOR_SIZE; + // HACK for DMA handling segacd_dma_delegate segacd_dma_callback; interrupt_delegate type1_interrupt_callback; @@ -156,15 +88,8 @@ public: interrupt_delegate type3_interrupt_callback; void Fake_CDC_Do_DMA(int &dmacount, uint8_t *CDC_BUFFER, uint16_t &dma_addrc, uint16_t &destination ); - static void set_CDC_Do_DMA(device_t &device,segacd_dma_delegate new_segacd_dma_callback); void dummy_interrupt_callback(void); - static void set_type1_interrupt_callback(device_t &device,interrupt_delegate interrupt_callback); - static void set_type2_interrupt_callback(device_t &device,interrupt_delegate interrupt_callback); - static void set_type3_interrupt_callback(device_t &device,interrupt_delegate interrupt_callback); - - - static void set_is_neoCD(device_t &device, bool is_neoCD); // HACK for neoCD handling @@ -193,7 +118,7 @@ public: uint16_t CDC_REG0; uint16_t CDC_REG1; - uint8_t CDC_BUFFER[LC89510_EXTERNAL_BUFFER_SIZE]; + uint8_t CDC_BUFFER[EXTERNAL_BUFFER_SIZE]; uint8_t CDD_RX[10]; @@ -241,34 +166,11 @@ public: void CDC_Reset(void); void lc89510_Reset(void); void CDC_End_Transfer(running_machine& machine); - void CDC_Do_DMA(running_machine& machine, int rate); uint16_t CDC_Host_r(running_machine& machine, uint16_t type); - uint8_t CDC_Reg_r(void); - void CDC_Reg_w(uint8_t data); void CDD_Process(running_machine& machine, int reason); void CDD_Handle_TOC_Commands(void); bool CDD_Import(running_machine& machine); - READ16_MEMBER( segacd_irq_mask_r ); - WRITE16_MEMBER( segacd_irq_mask_w ); - READ16_MEMBER( segacd_cdd_ctrl_r ); - WRITE16_MEMBER( segacd_cdd_ctrl_w ); - READ8_MEMBER( segacd_cdd_rx_r ); - WRITE8_MEMBER( segacd_cdd_tx_w ); - READ16_MEMBER( segacd_cdfader_r ); - WRITE16_MEMBER( segacd_cdfader_w ); - - void reset_cd(void); - - WRITE16_MEMBER( segacd_cdc_mode_address_w ); - READ16_MEMBER( segacd_cdc_mode_address_r ); - WRITE16_MEMBER( segacd_cdc_data_w ); - READ16_MEMBER( segacd_cdc_data_r ); - READ16_MEMBER( cdc_data_sub_r ); - READ16_MEMBER( cdc_data_main_r ); - TIMER_DEVICE_CALLBACK_MEMBER( segacd_access_timer_callback ); - - uint16_t get_segacd_irq_mask(void) { return segacd_irq_mask; } uint16_t segacd_irq_mask; cdda_device* m_cdda; @@ -288,30 +190,14 @@ public: int32_t NeoCD_StatusHack; - - - - void NeoCDCommsControl(uint8_t clock, uint8_t send); void LC8951UpdateHeader(); - char* LC8915InitTransfer(int NeoCDDMACount); - void LC8915EndTransfer(); - void neocd_cdd_tx_w(uint8_t data); - uint8_t neocd_cdd_rx_r(); - void NeoCDCommsReset(); - - uint16_t nff0016_r(void); - void nff0016_set(uint16_t wordValue); - void nff0002_set(uint16_t wordValue); - -protected: virtual void device_start() override; virtual void device_reset() override; virtual machine_config_constructor device_mconfig_additions() const override; -private: - - }; -extern const device_type LC89510_TEMP; +DECLARE_DEVICE_TYPE(LC89510_TEMP, lc89510_temp_device) + +#endif // MAME_MACHINE_SEGACDCD_H diff --git a/src/mame/machine/meters.cpp b/src/mame/machine/meters.cpp index 9a15cf9b6e0..62a1ca25092 100644 --- a/src/mame/machine/meters.cpp +++ b/src/mame/machine/meters.cpp @@ -15,11 +15,11 @@ DEVICE INTERFACE *****************************************************************************/ -const device_type METERS = device_creator; +DEFINE_DEVICE_TYPE(METERS, meters_device, "meters", "Electromechanical meters") meters_device::meters_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, METERS, "Electro mechanical meters", tag, owner, clock, "meters", __FILE__), - m_number_mtr(0) + : device_t(mconfig, METERS, tag, owner, clock) + , m_number_mtr(0) { memset(m_meter_info, 0, sizeof(m_meter_info)); } diff --git a/src/mame/machine/meters.h b/src/mame/machine/meters.h index f248d9295a9..fd69152f0b7 100644 --- a/src/mame/machine/meters.h +++ b/src/mame/machine/meters.h @@ -9,24 +9,23 @@ // // /////////////////////////////////////////////////////////////////////////// -#pragma once - -#ifndef __METERS_H__ -#define __METERS_H__ +#ifndef MAME_MACHINE_METERS_H +#define MAME_MACHINE_METERS_H +#pragma once #define MCFG_METERS_NUMBER(_number) \ meters_device::static_set_number_meters(*device, _number); -#define MAXMECHMETERS 8 - -#define METERREACTTIME 0.025 // number of seconds meter has to be active to tick class meters_device : public device_t { public: + static constexpr unsigned MAXMECHMETERS = 8; + + static constexpr double METERREACTTIME = 0.025; // number of seconds meter has to be active to tick + meters_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~meters_device() {} static void static_set_number_meters(device_t &device, int number) { downcast(device).m_number_mtr = number; } @@ -60,6 +59,6 @@ private: int m_number_mtr; }; -extern const device_type METERS; +DECLARE_DEVICE_TYPE(METERS, meters_device) -#endif +#endif // MAME_MACHINE_METERS_H diff --git a/src/mame/machine/micro3d.cpp b/src/mame/machine/micro3d.cpp index 4929e2c64ec..512a9483b53 100644 --- a/src/mame/machine/micro3d.cpp +++ b/src/mame/machine/micro3d.cpp @@ -7,11 +7,13 @@ ****************************************************************************/ #include "emu.h" +#include "includes/micro3d.h" +#include "audio/micro3d.h" + #include "cpu/m68000/m68000.h" #include "cpu/tms34010/tms34010.h" #include "cpu/am29000/am29000.h" #include "cpu/mcs51/mcs51.h" -#include "includes/micro3d.h" /************************************* @@ -579,6 +581,74 @@ WRITE32_MEMBER(micro3d_state::drmath_intr2_ack) } +/*************************************************************************** + + 8031 port mappings: + + Port 1 Port 2 + ======= ====== + 0: S/H sel A (O) 0: + 1: S/H sel B (O) 1: + 2: S/H sel C (O) 2: uPD bank select (O) + 3: S/H en (O) 3: /uPD busy (I) + 4: DS1267 data (O) 4: /uPD reset (O) + 5: DS1267 clock (O) 5: Watchdog reset (O) + 6: /DS1267 reset (O) 6: + 7: Test SW (I) 7: + +***************************************************************************/ + + +WRITE8_MEMBER(micro3d_state::micro3d_snd_dac_a) +{ + m_noise_1->dac_w(data); + m_noise_2->dac_w(data); +} + +WRITE8_MEMBER(micro3d_state::micro3d_snd_dac_b) +{ + /* TODO: This controls upd7759 volume */ +} + +WRITE8_MEMBER(micro3d_state::micro3d_sound_io_w) +{ + m_sound_port_latch[offset] = data; + + switch (offset) + { + case 0x01: + { + micro3d_sound_device *noise = (data & 4) ? m_noise_2 : m_noise_1; + noise->noise_sh_w(data); + break; + } + case 0x03: + { + m_upd7759->set_bank_base((data & 0x4) ? 0x20000 : 0); + m_upd7759->reset_w((data & 0x10) ? 0 : 1); + break; + } + } +} + +READ8_MEMBER(micro3d_state::micro3d_sound_io_r) +{ + switch (offset) + { + case 0x01: return (m_sound_port_latch[offset] & 0x7f) | m_sound_sw->read(); + case 0x03: return (m_sound_port_latch[offset] & 0xf7) | (m_upd7759->busy_r() ? 0x08 : 0); + default: return 0; + } +} + +WRITE8_MEMBER(micro3d_state::micro3d_upd7759_w) +{ + m_upd7759->port_w(space, 0, data); + m_upd7759->start_w(0); + m_upd7759->start_w(1); +} + + /************************************* * * Driver initialisation diff --git a/src/mame/machine/microdrv.cpp b/src/mame/machine/microdrv.cpp index f19d2671b25..1947d22f840 100644 --- a/src/mame/machine/microdrv.cpp +++ b/src/mame/machine/microdrv.cpp @@ -37,14 +37,14 @@ ***************************************************************************/ // device type definition -const device_type MICRODRIVE = device_creator; +DEFINE_DEVICE_TYPE(MICRODRIVE, microdrive_image_device, "microdrive_image", "Sinclair Microdrive") //------------------------------------------------- // microdrive_image_device - constructor //------------------------------------------------- microdrive_image_device::microdrive_image_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, MICRODRIVE, "Microdrive", tag, owner, clock, "microdrive_image", __FILE__), + device_t(mconfig, MICRODRIVE, tag, owner, clock), device_image_interface(mconfig, *this), m_write_comms_out(*this) { diff --git a/src/mame/machine/microdrv.h b/src/mame/machine/microdrv.h index 2b3ee762f36..069f4e37d87 100644 --- a/src/mame/machine/microdrv.h +++ b/src/mame/machine/microdrv.h @@ -8,10 +8,10 @@ *********************************************************************/ -#pragma once +#ifndef MAME_MACHINE_MICRODRV_H +#define MAME_MACHINE_MICRODRV_H -#ifndef __MICRODRV__ -#define __MICRODRV__ +#pragma once #include "softlist_dev.h" @@ -46,7 +46,7 @@ public: microdrive_image_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual ~microdrive_image_device(); - template static devcb_base &set_comms_out_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_comms_out.set_callback(object); } + template static devcb_base &set_comms_out_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_comms_out.set_callback(std::forward(cb)); } // image-level overrides virtual image_init_result call_load() override; @@ -97,8 +97,6 @@ private: // device type definition -extern const device_type MICRODRIVE; - - +DECLARE_DEVICE_TYPE(MICRODRIVE, microdrive_image_device) -#endif +#endif // MAME_MACHINE_MICRODRV_H diff --git a/src/mame/machine/micropolis.cpp b/src/mame/machine/micropolis.cpp index a747e7d2a36..e3c760dd82f 100644 --- a/src/mame/machine/micropolis.cpp +++ b/src/mame/machine/micropolis.cpp @@ -63,10 +63,10 @@ static const uint8_t track_SD[][2] = { MAME DEVICE INTERFACE ***************************************************************************/ -const device_type MICROPOLIS = device_creator; +DEFINE_DEVICE_TYPE(MICROPOLIS, micropolis_device, "micropolis", "Micropolis FDC") micropolis_device::micropolis_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MICROPOLIS, "MICROPOLIS", tag, owner, clock, "micropolis", __FILE__), + : device_t(mconfig, MICROPOLIS, tag, owner, clock), m_read_dden(*this), m_write_intrq(*this), m_write_drq(*this), @@ -82,11 +82,8 @@ micropolis_device::micropolis_device(const machine_config &mconfig, const char * m_sector_length(0), m_drive(nullptr) { - for (auto & elem : m_buffer) - elem = 0; - - for (auto & elem : m_floppy_drive_tags) - elem = nullptr; + std::fill(std::begin(m_buffer), std::end(m_buffer), 0); + std::fill(std::begin(m_floppy_drive_tags), std::end(m_floppy_drive_tags), nullptr); } //------------------------------------------------- diff --git a/src/mame/machine/micropolis.h b/src/mame/machine/micropolis.h index 12e9bea0431..9ee893c1cdd 100644 --- a/src/mame/machine/micropolis.h +++ b/src/mame/machine/micropolis.h @@ -9,8 +9,10 @@ *********************************************************************/ -#ifndef __MICROPOLIS_H__ -#define __MICROPOLIS_H__ +#ifndef MAME_MACHINE_MICROPOLIS_H +#define MAME_MACHINE_MICROPOLIS_H + +#pragma once #include "imagedev/flopdrv.h" @@ -42,11 +44,10 @@ class micropolis_device : public device_t { public: micropolis_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~micropolis_device() {} - template static devcb_base &set_dden_rd_callback(device_t &device, _Object object) { return downcast(device).m_read_dden.set_callback(object); } - template static devcb_base &set_intrq_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_intrq.set_callback(object); } - template static devcb_base &set_drq_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_drq.set_callback(object); } + template static devcb_base &set_dden_rd_callback(device_t &device, Object &&cb) { return downcast(device).m_read_dden.set_callback(std::forward(cb)); } + template static devcb_base &set_intrq_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_intrq.set_callback(std::forward(cb)); } + template static devcb_base &set_drq_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_drq.set_callback(std::forward(cb)); } static void set_drive_tags(device_t &device, const char *tag1, const char *tag2, const char *tag3, const char *tag4) { @@ -105,7 +106,7 @@ private: void write_sector(); }; -extern const device_type MICROPOLIS; +DECLARE_DEVICE_TYPE(MICROPOLIS, micropolis_device) -#endif /* __MICROPOLIS_H__ */ +#endif // MAME_MACHINE_MICROPOLIS_H diff --git a/src/mame/machine/midikbd.cpp b/src/mame/machine/midikbd.cpp index 3fdbb105cf9..35eb0dc5507 100644 --- a/src/mame/machine/midikbd.cpp +++ b/src/mame/machine/midikbd.cpp @@ -3,10 +3,10 @@ #include "emu.h" #include "machine/midikbd.h" -const device_type MIDI_KBD = device_creator; +DEFINE_DEVICE_TYPE(MIDI_KBD, midi_keyboard_device, "midi_kbd", "Generic MIDI Keyboard") midi_keyboard_device::midi_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, MIDI_KBD, "Generic MIDI Keyboard", tag, owner, clock, "midi_kbd", __FILE__), + device_t(mconfig, MIDI_KBD, tag, owner, clock), device_serial_interface(mconfig, *this), m_out_tx_func(*this), m_keyboard(*this, "KEYBOARD") diff --git a/src/mame/machine/midikbd.h b/src/mame/machine/midikbd.h index 84c811c237d..2d1e81f4dcc 100644 --- a/src/mame/machine/midikbd.h +++ b/src/mame/machine/midikbd.h @@ -1,21 +1,22 @@ // license:BSD-3-Clause // copyright-holders:Carl -#ifndef MIDIKBD_H_ -#define MIDIKBD_H_ +#ifndef MAME_MACHINE_MIDIKBD_H +#define MAME_MACHINE_MIDIKBD_H + +#pragma once #define MCFG_MIDI_KBD_ADD(_tag, _devcb, _clock) \ MCFG_DEVICE_ADD(_tag, MIDI_KBD, _clock) \ devcb = &midi_keyboard_device::static_set_tx_callback(*device, DEVCB_##_devcb); -class midi_keyboard_device : public device_t, - public device_serial_interface +class midi_keyboard_device : public device_t, public device_serial_interface { public: midi_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); ioport_constructor device_input_ports() const override; - template static devcb_base &static_set_tx_callback(device_t &device, _Object object) { return downcast(device).m_out_tx_func.set_callback(object); } + template static devcb_base &static_set_tx_callback(device_t &device, Object &&cb) { return downcast(device).m_out_tx_func.set_callback(std::forward(cb)); } protected: void device_start() override; @@ -34,6 +35,6 @@ private: uint8_t m_head, m_tail; }; -extern const device_type MIDI_KBD; +DECLARE_DEVICE_TYPE(MIDI_KBD, midi_keyboard_device) -#endif /* MIDIKBD_H_ */ +#endif // MAME_MACHINE_MIDIKBD_H diff --git a/src/mame/machine/midwayic.cpp b/src/mame/machine/midwayic.cpp index 32b4ead1cd6..49a917a065c 100644 --- a/src/mame/machine/midwayic.cpp +++ b/src/mame/machine/midwayic.cpp @@ -105,7 +105,7 @@ void midway_serial_pic_device::serial_register_state() save_item(NAME(m_ormask)); } -const device_type MIDWAY_SERIAL_PIC = device_creator; +DEFINE_DEVICE_TYPE(MIDWAY_SERIAL_PIC, midway_serial_pic_device, "midway_serial_pic_sim", "Midway Serial PIC Simulation") //------------------------------------------------- @@ -113,12 +113,12 @@ const device_type MIDWAY_SERIAL_PIC = device_creator; //------------------------------------------------- midway_serial_pic_device::midway_serial_pic_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - midway_serial_pic_device(mconfig, MIDWAY_SERIAL_PIC, "Midway Serial Pic Simulation", tag, owner, clock, "midway_serial_pic_sim", __FILE__) + midway_serial_pic_device(mconfig, MIDWAY_SERIAL_PIC, tag, owner, clock) { } -midway_serial_pic_device::midway_serial_pic_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), +midway_serial_pic_device::midway_serial_pic_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), m_upper(0), m_buff(0), m_idx(0), @@ -193,7 +193,7 @@ WRITE8_MEMBER(midway_serial_pic_device::write) *************************************/ -const device_type MIDWAY_SERIAL_PIC_EMU = device_creator; +DEFINE_DEVICE_TYPE(MIDWAY_SERIAL_PIC_EMU, midway_serial_pic_emu_device, "midway_serial_pic_emu", "Midway Serial PIC Emulation") //------------------------------------------------- @@ -201,7 +201,7 @@ const device_type MIDWAY_SERIAL_PIC_EMU = device_creator; +DEFINE_DEVICE_TYPE(MIDWAY_SERIAL_PIC2, midway_serial_pic2_device, "midway_serial_pic2", "Midway Serial PIC 2") //------------------------------------------------- @@ -286,27 +286,12 @@ const device_type MIDWAY_SERIAL_PIC2 = device_creator //------------------------------------------------- midway_serial_pic2_device::midway_serial_pic2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - midway_serial_pic_device(mconfig, MIDWAY_SERIAL_PIC2, "Midway Serial Pic 2", tag, owner, clock, "midway_serial_pic2", __FILE__), - device_nvram_interface(mconfig, *this), - m_latch(0), - m_state(0), - m_index(0), - m_total(0), - m_nvram_addr(0), - m_time_index(0), - m_time_just_written(0), - m_yearoffs(0), - m_time_write_timer(nullptr) + midway_serial_pic2_device(mconfig, MIDWAY_SERIAL_PIC2, tag, owner, clock) { - memset(m_buffer,0,sizeof(m_buffer)); - memset(m_time_buf,0,sizeof(m_time_buf)); - memset(m_nvram,0,sizeof(m_nvram)); - memset(m_default_nvram,0,sizeof(m_default_nvram)); - } -midway_serial_pic2_device::midway_serial_pic2_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - midway_serial_pic_device(mconfig, type, name, tag, owner, clock, shortname, source), +midway_serial_pic2_device::midway_serial_pic2_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + midway_serial_pic_device(mconfig, type, tag, owner, clock), device_nvram_interface(mconfig, *this), m_latch(0), m_state(0), @@ -655,7 +640,7 @@ void midway_ioasic_device::ioasic_register_state() save_item(NAME(m_fifo_force_buffer_empty_pc)); } -const device_type MIDWAY_IOASIC = device_creator; +DEFINE_DEVICE_TYPE(MIDWAY_IOASIC, midway_ioasic_device, "midway_ioasic", "Midway IOASIC") //------------------------------------------------- @@ -663,7 +648,7 @@ const device_type MIDWAY_IOASIC = device_creator; //------------------------------------------------- midway_ioasic_device::midway_ioasic_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - midway_serial_pic2_device(mconfig, MIDWAY_IOASIC, "Midway IOASIC", tag, owner, clock, "midway_ioasic", __FILE__), + midway_serial_pic2_device(mconfig, MIDWAY_IOASIC, tag, owner, clock), m_serial_tx_cb(*this), m_has_dcs(0), m_has_cage(0), @@ -1109,7 +1094,7 @@ WRITE32_MEMBER( midway_ioasic_device::packed_w ) write(space, offset*2+1, data >> 16, 0x0000ffff); } -WRITE8_MEMBER(midway_ioasic_device::serial_rx_w) +void midway_ioasic_device::serial_rx_w(u8 data) { // Break Detect 0x0100 // Frame Error 0x0200 diff --git a/src/mame/machine/midwayic.h b/src/mame/machine/midwayic.h index 28bdcd6c6ee..65a6c6cf8fb 100644 --- a/src/mame/machine/midwayic.h +++ b/src/mame/machine/midwayic.h @@ -5,9 +5,11 @@ Emulation of various Midway ICs ***************************************************************************/ +#ifndef MAME_MACHINE_MIDWAY_IC_H +#define MAME_MACHINE_MIDWAY_IC_H + +#pragma once -#ifndef __MIDWAY_IC__ -#define __MIDWAY_IC__ #include "audio/cage.h" #include "audio/dcs.h" @@ -20,7 +22,6 @@ class midway_serial_pic_device : public device_t public: // construction/destruction midway_serial_pic_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - midway_serial_pic_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); static void static_set_upper(device_t &device, int upper) { downcast(device).m_upper = upper; } @@ -30,6 +31,8 @@ public: DECLARE_WRITE_LINE_MEMBER( reset_w ); protected: + midway_serial_pic_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; @@ -48,7 +51,7 @@ private: // device type definition -extern const device_type MIDWAY_SERIAL_PIC; +DECLARE_DEVICE_TYPE(MIDWAY_SERIAL_PIC, midway_serial_pic_device) #define MCFG_MIDWAY_SERIAL_PIC_UPPER(_upper) \ midway_serial_pic_device::static_set_upper(*device, _upper); @@ -60,7 +63,6 @@ class midway_serial_pic_emu_device : public device_t public: // construction/destruction midway_serial_pic_emu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - midway_serial_pic_emu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); DECLARE_READ8_MEMBER(read_a); DECLARE_READ8_MEMBER(read_b); @@ -70,17 +72,16 @@ public: DECLARE_WRITE8_MEMBER(write_c); protected: + midway_serial_pic_emu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual machine_config_constructor device_mconfig_additions() const override; virtual void device_start() override; - -private: - }; // device type definition -extern const device_type MIDWAY_SERIAL_PIC_EMU; +DECLARE_DEVICE_TYPE(MIDWAY_SERIAL_PIC_EMU, midway_serial_pic_emu_device) @@ -88,13 +89,11 @@ extern const device_type MIDWAY_SERIAL_PIC_EMU; // ======================> midway_serial_pic2_device -class midway_serial_pic2_device : public midway_serial_pic_device, - public device_nvram_interface +class midway_serial_pic2_device : public midway_serial_pic_device, public device_nvram_interface { public: // construction/destruction midway_serial_pic2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - midway_serial_pic2_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); static void static_set_yearoffs(device_t &device, int yearoffs) { downcast(device).m_yearoffs = yearoffs; } @@ -105,6 +104,8 @@ public: void set_default_nvram(const uint8_t *nvram); protected: + midway_serial_pic2_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; @@ -136,7 +137,7 @@ private: // device type definition -extern const device_type MIDWAY_SERIAL_PIC2; +DECLARE_DEVICE_TYPE(MIDWAY_SERIAL_PIC2, midway_serial_pic2_device) #define MCFG_MIDWAY_SERIAL_PIC2_UPPER MCFG_MIDWAY_SERIAL_PIC_UPPER @@ -178,7 +179,7 @@ public: DECLARE_WRITE8_MEMBER(cage_irq_handler); - DECLARE_WRITE8_MEMBER(serial_rx_w); + void serial_rx_w(u8 data); void ioasic_reset(); @@ -218,7 +219,7 @@ private: // device type definition -extern const device_type MIDWAY_IOASIC; +DECLARE_DEVICE_TYPE(MIDWAY_IOASIC, midway_ioasic_device) #define MCFG_MIDWAY_IOASIC_UPPER MCFG_MIDWAY_SERIAL_PIC_UPPER @@ -253,4 +254,4 @@ enum MIDWAY_IOASIC_HYPRDRIV }; -#endif +#endif // MAME_MACHINE_MIDWAY_IC_H diff --git a/src/mame/machine/mie.cpp b/src/mame/machine/mie.cpp index a130493dc3a..6f020a7a2d2 100644 --- a/src/mame/machine/mie.cpp +++ b/src/mame/machine/mie.cpp @@ -23,8 +23,8 @@ // - Speed is all wrong -const device_type MIE = device_creator; -const device_type MIE_JVS = device_creator; +DEFINE_DEVICE_TYPE(MIE, mie_device, "mie", "Sega 315-6146 MIE") +DEFINE_DEVICE_TYPE(MIE_JVS, mie_jvs_device, "mie_jvs", "JVS (MIE)") static ADDRESS_MAP_START( mie_map, AS_PROGRAM, 8, mie_device) AM_RANGE(0x0000, 0x07ff) AM_ROM @@ -88,12 +88,12 @@ machine_config_constructor mie_device::device_mconfig_additions() const } mie_jvs_device::mie_jvs_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : jvs_host(mconfig, MIE_JVS, "JVS (MIE)", tag, owner, clock, "mie_jvs", __FILE__) + : jvs_host(mconfig, MIE_JVS, tag, owner, clock) { } mie_device::mie_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : maple_device(mconfig, MIE, "Sega 315-6146 MIE", tag, owner, clock, "mie", __FILE__) + : maple_device(mconfig, MIE, tag, owner, clock) { memset(gpio_name, 0, sizeof(gpio_name)); jvs_name = nullptr; diff --git a/src/mame/machine/mie.h b/src/mame/machine/mie.h index 4d3e5213354..f74def20266 100644 --- a/src/mame/machine/mie.h +++ b/src/mame/machine/mie.h @@ -1,12 +1,15 @@ // license:BSD-3-Clause // copyright-holders:Olivier Galibert -#ifndef __MIE_H__ -#define __MIE_H__ +#ifndef MAME_MACHINE_MIE_H +#define MAME_MACHINE_MIE_H + +#pragma once + +#include "machine/mapledev.h" #include "cpu/z80/z80.h" #include "machine/eepromser.h" #include "machine/jvshost.h" -#include "machine/mapledev.h" #define MCFG_MIE_ADD(_tag, _clock, _host_tag, _host_port, g0, g1, g2, g3, g4, g5, g6, g7) \ MCFG_MAPLE_DEVICE_ADD(_tag "_maple", MIE, _clock, _host_tag, _host_port) \ @@ -128,6 +131,7 @@ public: // device type definition -extern const device_type MIE, MIE_JVS; +DECLARE_DEVICE_TYPE(MIE, mie_device) +DECLARE_DEVICE_TYPE(MIE_JVS, mie_jvs_device) -#endif /* __MIE_H__ */ +#endif // MAME_MACHINE_MIE_H diff --git a/src/mame/machine/mm1kb.cpp b/src/mame/machine/mm1kb.cpp index 875076bd196..4db233d9ea3 100644 --- a/src/mame/machine/mm1kb.cpp +++ b/src/mame/machine/mm1kb.cpp @@ -17,7 +17,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type MM1_KEYBOARD = device_creator; +DEFINE_DEVICE_TYPE(MM1_KEYBOARD, mm1_keyoard_device, "mm1kb", "MikroMikko 1 keyboard") //------------------------------------------------- @@ -34,7 +34,7 @@ ROM_END // rom_region - device-specific ROM region //------------------------------------------------- -const tiny_rom_entry *mm1_keyboard_t::device_rom_region() const +const tiny_rom_entry *mm1_keyoard_device::device_rom_region() const { return ROM_NAME( mm1_keyboard ); } @@ -51,7 +51,7 @@ static const char *const mm1_kb_sample_names[] = nullptr }; -bool mm1_keyboard_t::first_time = true; +bool mm1_keyoard_device::first_time = true; //------------------------------------------------- // MACHINE_DRIVER( mm1_keyboard ) @@ -71,7 +71,7 @@ MACHINE_CONFIG_END // machine configurations //------------------------------------------------- -machine_config_constructor mm1_keyboard_t::device_mconfig_additions() const +machine_config_constructor mm1_keyoard_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( mm1_keyboard ); } @@ -193,7 +193,7 @@ INPUT_PORTS_END // input_ports - device-specific input ports //------------------------------------------------- -ioport_constructor mm1_keyboard_t::device_input_ports() const +ioport_constructor mm1_keyoard_device::device_input_ports() const { return INPUT_PORTS_NAME( mm1_keyboard ); } @@ -205,11 +205,11 @@ ioport_constructor mm1_keyboard_t::device_input_ports() const //************************************************************************** //------------------------------------------------- -// mm1_keyboard_t - constructor +// mm1_keyoard_device - constructor //------------------------------------------------- -mm1_keyboard_t::mm1_keyboard_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, MM1_KEYBOARD, "MikroMikko 1 keyboard", tag, owner, clock, "mm1kb", __FILE__), +mm1_keyoard_device::mm1_keyoard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, MM1_KEYBOARD, tag, owner, clock), m_write_kbst(*this), m_samples(*this, "keyboard_and_chassis_sounds"), m_rom(*this, "keyboard"), @@ -230,7 +230,7 @@ enum // device_start - device-specific startup //------------------------------------------------- -void mm1_keyboard_t::device_start() +void mm1_keyoard_device::device_start() { // resolve callbacks m_write_kbst.resolve_safe(); @@ -240,7 +240,7 @@ void mm1_keyboard_t::device_start() m_scan_timer->adjust(attotime::from_hz(clock()), 0, attotime::from_hz(clock())); // add notification request for system shut down (to play back the power switch sound once more) - machine().add_notifier(MACHINE_NOTIFY_EXIT, machine_notify_delegate(&mm1_keyboard_t::shut_down_mm1, this)); + machine().add_notifier(MACHINE_NOTIFY_EXIT, machine_notify_delegate(&mm1_keyoard_device::shut_down_mm1, this)); // state saving save_item(NAME(m_sense)); @@ -248,7 +248,7 @@ void mm1_keyboard_t::device_start() save_item(NAME(m_data)); } -void mm1_keyboard_t::shut_down_mm1() +void mm1_keyoard_device::shut_down_mm1() { m_samples->start(1, 1); // pretty useless this, as far as there is no way to delay the shut down process... } @@ -257,7 +257,7 @@ void mm1_keyboard_t::shut_down_mm1() // device_timer - handler timer events //------------------------------------------------- -void mm1_keyboard_t::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) +void mm1_keyoard_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) { // handle scan timer uint8_t data = 0xff; diff --git a/src/mame/machine/mm1kb.h b/src/mame/machine/mm1kb.h index f5c19f7e74c..ce5af33d784 100644 --- a/src/mame/machine/mm1kb.h +++ b/src/mame/machine/mm1kb.h @@ -5,11 +5,11 @@ Nokia MikroMikko 1 keyboard emulation *********************************************************************/ +#ifndef MAME_MACHINE_MM1KB_H +#define MAME_MACHINE_MM1KB_H #pragma once -#ifndef __MM1_KEYBOARD__ -#define __MM1_KEYBOARD__ #include "sound/samples.h" @@ -20,7 +20,7 @@ //************************************************************************** #define MCFG_MM1_KEYBOARD_KBST_CALLBACK(_write) \ - devcb = &mm1_keyboard_t::set_kbst_wr_callback(*device, DEVCB_##_write); + devcb = &mm1_keyoard_device::set_kbst_wr_callback(*device, DEVCB_##_write); @@ -28,15 +28,15 @@ // TYPE DEFINITIONS //************************************************************************** -// ======================> mm1_keyboard_t +// ======================> mm1_keyoard_device -class mm1_keyboard_t : public device_t +class mm1_keyoard_device : public device_t { public: // construction/destruction - mm1_keyboard_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + mm1_keyoard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_kbst_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_kbst.set_callback(object); } + template static devcb_base &set_kbst_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_kbst.set_callback(std::forward(cb)); } // optional information overrides virtual const tiny_rom_entry *device_rom_region() const override; @@ -83,8 +83,8 @@ private: // device type definition -extern const device_type MM1_KEYBOARD; +DECLARE_DEVICE_TYPE(MM1_KEYBOARD, mm1_keyoard_device) -#endif +#endif // MAME_MACHINE_MM1KB_H diff --git a/src/mame/machine/ms7004.cpp b/src/mame/machine/ms7004.cpp index d6fb86e964b..601643727eb 100644 --- a/src/mame/machine/ms7004.cpp +++ b/src/mame/machine/ms7004.cpp @@ -36,7 +36,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type MS7004 = device_creator; +DEFINE_DEVICE_TYPE(MS7004, ms7004_device, "ms7004", "MS7004 keyboard") ROM_START( ms7004 ) ROM_REGION (0x800, MS7004_CPU_TAG, 0) @@ -357,7 +357,7 @@ ioport_constructor ms7004_device::device_input_ports() const //------------------------------------------------- ms7004_device::ms7004_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MS7004, "MS7004 keyboard", tag, owner, clock, "ms7004", __FILE__), + : device_t(mconfig, MS7004, tag, owner, clock), m_maincpu(*this, MS7004_CPU_TAG), m_speaker(*this, MS7004_SPK_TAG), m_i8243(*this, "i8243"), diff --git a/src/mame/machine/ms7004.h b/src/mame/machine/ms7004.h index 0acc1789d4e..f8bf4b1def2 100644 --- a/src/mame/machine/ms7004.h +++ b/src/mame/machine/ms7004.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Sergey Svishchev -#pragma once +#ifndef MAME_MACHINE_MS7004_H +#define MAME_MACHINE_MS7004_H -#ifndef __MS7004_H__ -#define __MS7004_H__ +#pragma once #include "cpu/mcs48/mcs48.h" #include "machine/i8243.h" @@ -37,8 +37,8 @@ public: // construction/destruction ms7004_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_tx_handler(device_t &device, _Object wr) { return downcast(device).m_tx_handler.set_callback(wr); } - template static devcb_base &set_rts_handler(device_t &device, _Object wr) { return downcast(device).m_rts_handler.set_callback(wr); } + template static devcb_base &set_tx_handler(device_t &device, Object &&wr) { return downcast(device).m_tx_handler.set_callback(std::forward(wr)); } + template static devcb_base &set_rts_handler(device_t &device, Object &&wr) { return downcast(device).m_rts_handler.set_callback(std::forward(wr)); } DECLARE_WRITE8_MEMBER( p1_w ); DECLARE_WRITE8_MEMBER( p2_w ); @@ -71,6 +71,6 @@ private: }; // device type definition -extern const device_type MS7004; +DECLARE_DEVICE_TYPE(MS7004, ms7004_device) -#endif +#endif // MAME_MACHINE_MS7004_H diff --git a/src/mame/machine/msx_matsushita.cpp b/src/mame/machine/msx_matsushita.cpp index 563b8003162..c4fbcdfa9bb 100644 --- a/src/mame/machine/msx_matsushita.cpp +++ b/src/mame/machine/msx_matsushita.cpp @@ -5,10 +5,10 @@ const uint8_t manufacturer_id = 0x08; -const device_type MSX_MATSUSHITA = device_creator; +DEFINE_DEVICE_TYPE(MSX_MATSUSHITA, msx_matsushita_device, "msx_matsushita", "Matsushita switched device") msx_matsushita_device::msx_matsushita_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MSX_MATSUSHITA, "Matsushita switched device", tag, owner, clock, "msx_matsushita", __FILE__) + : device_t(mconfig, MSX_MATSUSHITA, tag, owner, clock) , device_nvram_interface(mconfig, *this) , m_io_config(*this, "CONFIG") , m_turbo_out_cb(*this) diff --git a/src/mame/machine/msx_matsushita.h b/src/mame/machine/msx_matsushita.h index 6fd29efee16..8daad1a006b 100644 --- a/src/mame/machine/msx_matsushita.h +++ b/src/mame/machine/msx_matsushita.h @@ -1,13 +1,13 @@ // license:BSD-3-Clause // copyright-holders:Wilbert Pol -#ifndef __MSX_MATSUSHITA_H -#define __MSX_MATSUSHITA_H +#ifndef MAME_MACHINE_MSX_MATSUSHITA_H +#define MAME_MACHINE_MSX_MATSUSHITA_H #include "msx_switched.h" -extern const device_type MSX_MATSUSHITA; +DECLARE_DEVICE_TYPE(MSX_MATSUSHITA, msx_matsushita_device) #define MCFG_MSX_MATSUSHITA_ADD(_tag) \ @@ -24,7 +24,8 @@ class msx_matsushita_device : public device_t, public: msx_matsushita_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_turbo_callback(device_t &device, _Object object) { return downcast(device).m_turbo_out_cb.set_callback(object); } + template static devcb_base &set_turbo_callback(device_t &device, Object &&cb) + { return downcast(device).m_turbo_out_cb.set_callback(std::forward(cb)); } virtual DECLARE_READ8_MEMBER(switched_read) override; virtual DECLARE_WRITE8_MEMBER(switched_write) override; @@ -50,4 +51,4 @@ private: uint8_t m_pattern; }; -#endif +#endif // MAME_MACHINE_MSX_MATSUSHITA_H diff --git a/src/mame/machine/msx_s1985.cpp b/src/mame/machine/msx_s1985.cpp index 54695ee6b54..f596600c15c 100644 --- a/src/mame/machine/msx_s1985.cpp +++ b/src/mame/machine/msx_s1985.cpp @@ -5,10 +5,10 @@ const uint8_t manufacturer_id = 0xfe; -const device_type MSX_S1985 = device_creator; +DEFINE_DEVICE_TYPE(MSX_S1985, msx_s1985_device, "msx_s1985", "MSX-Engine S1985") msx_s1985_device::msx_s1985_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MSX_S1985, "MSX-Engine S1985", tag, owner, clock, "msx_s1985", __FILE__) + : device_t(mconfig, MSX_S1985, tag, owner, clock) , device_nvram_interface(mconfig, *this) , m_selected(false) , m_backup_ram_address(0) diff --git a/src/mame/machine/msx_s1985.h b/src/mame/machine/msx_s1985.h index d1ccde5fff4..df93f2f455d 100644 --- a/src/mame/machine/msx_s1985.h +++ b/src/mame/machine/msx_s1985.h @@ -1,13 +1,13 @@ // license:BSD-3-Clause // copyright-holders:Wilbert Pol -#ifndef __MSX_S1985_H -#define __MSX_S1985_H +#ifndef MAME_MACHINE_MSX_S1985_H +#define MAME_MACHINE_MSX_S1985_H #include "msx_switched.h" -extern const device_type MSX_S1985; +DECLARE_DEVICE_TYPE(MSX_S1985, msx_s1985_device) #define MCFG_MSX_S1985_ADD(_tag) \ @@ -43,4 +43,4 @@ private: uint8_t m_pattern; }; -#endif +#endif // MAME_MACHINE_MSX_S1985_H diff --git a/src/mame/machine/msx_systemflags.cpp b/src/mame/machine/msx_systemflags.cpp index 4aa79e46fac..7857df6761a 100644 --- a/src/mame/machine/msx_systemflags.cpp +++ b/src/mame/machine/msx_systemflags.cpp @@ -4,11 +4,11 @@ #include "msx_systemflags.h" -const device_type MSX_SYSTEMFLAGS = device_creator; +DEFINE_DEVICE_TYPE(MSX_SYSTEMFLAGS, msx_systemflags_device, "msx_systemflags", "MSX System Flags") msx_systemflags_device::msx_systemflags_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MSX_SYSTEMFLAGS, "MSX System Flags", tag, owner, clock, "msx_systemflags", __FILE__) + : device_t(mconfig, MSX_SYSTEMFLAGS, tag, owner, clock) , m_initial_value(0xff) , m_system_flags(0xff) { diff --git a/src/mame/machine/msx_systemflags.h b/src/mame/machine/msx_systemflags.h index c91f8e9b364..aacb60187a0 100644 --- a/src/mame/machine/msx_systemflags.h +++ b/src/mame/machine/msx_systemflags.h @@ -1,7 +1,7 @@ // license:BSD-3-Clause // copyright-holders:Wilbert Pol -#ifndef __MSX_SYSTEMFLAGS_H -#define __MSX_SYSTEMFLAGS_H +#ifndef MAME_MACHINE_MSX_SYSTEMFLAGS_H +#define MAME_MACHINE_MSX_SYSTEMFLAGS_H /* Some MSX2+ and TurboR machines have a 'system flags' I/O port ($F4). @@ -9,7 +9,7 @@ The value in this register is cleared on power up, but it keeps it's value during a reset of the system. */ -extern const device_type MSX_SYSTEMFLAGS; +DECLARE_DEVICE_TYPE(MSX_SYSTEMFLAGS, msx_systemflags_device) #define MCFG_MSX_SYSTEMFLAGS_ADD(_tag, _initial_value) \ @@ -36,4 +36,4 @@ private: uint8_t m_system_flags; }; -#endif +#endif // MAME_MACHINE_MSX_SYSTEMFLAGS_H diff --git a/src/mame/machine/n64.cpp b/src/mame/machine/n64.cpp index dcf424d69c9..52eaa42d1c2 100644 --- a/src/mame/machine/n64.cpp +++ b/src/mame/machine/n64.cpp @@ -10,10 +10,10 @@ #include "video/n64.h" // device type definition -const device_type N64PERIPH = device_creator; +DEFINE_DEVICE_TYPE(N64PERIPH, n64_periphs, "n64_periphs", "N64 Peripheral Chips") n64_periphs::n64_periphs(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, N64PERIPH, "N64 Periphal Chips", tag, owner, clock, "n64_periphs", __FILE__) + : device_t(mconfig, N64PERIPH, tag, owner, clock) , device_video_interface(mconfig, *this) , m_nvram_image(nullptr) , dd_present(false) diff --git a/src/mame/machine/namco06.cpp b/src/mame/machine/namco06.cpp index 11d2647abed..0b3ba86d86a 100644 --- a/src/mame/machine/namco06.cpp +++ b/src/mame/machine/namco06.cpp @@ -85,18 +85,18 @@ #include "machine/namco06.h" #define VERBOSE 0 -#define LOG(x) do { if (VERBOSE) logerror x; } while (0) +#include "logmacro.h" TIMER_CALLBACK_MEMBER( namco_06xx_device::nmi_generate ) { if (!m_nmicpu->suspended(SUSPEND_REASON_HALT | SUSPEND_REASON_RESET | SUSPEND_REASON_DISABLE)) { - LOG(("NMI cpu '%s'\n",m_nmicpu->tag())); + LOG("NMI cpu '%s'\n",m_nmicpu->tag()); m_nmicpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE); } else - LOG(("NMI not generated because cpu '%s' is suspended\n",m_nmicpu->tag())); + LOG("NMI not generated because cpu '%s' is suspended\n",m_nmicpu->tag()); } @@ -104,7 +104,7 @@ READ8_MEMBER( namco_06xx_device::data_r ) { uint8_t result = 0xff; - LOG(("%s: 06XX '%s' read offset %d\n",machine().describe_context(),tag(),offset)); + LOG("%s: 06XX '%s' read offset %d\n",machine().describe_context(),tag(),offset); if (!(m_control & 0x10)) { @@ -112,10 +112,10 @@ READ8_MEMBER( namco_06xx_device::data_r ) return 0; } - if ((m_control & (1 << 0)) && !m_read_0.isnull()) result &= m_read_0(space, 0); - if ((m_control & (1 << 1)) && !m_read_1.isnull()) result &= m_read_1(space, 0); - if ((m_control & (1 << 2)) && !m_read_2.isnull()) result &= m_read_2(space, 0); - if ((m_control & (1 << 3)) && !m_read_3.isnull()) result &= m_read_3(space, 0); + if (BIT(m_control, 0)) result &= m_read[0](space, 0); + if (BIT(m_control, 1)) result &= m_read[1](space, 0); + if (BIT(m_control, 2)) result &= m_read[2](space, 0); + if (BIT(m_control, 3)) result &= m_read[3](space, 0); return result; } @@ -123,40 +123,40 @@ READ8_MEMBER( namco_06xx_device::data_r ) WRITE8_MEMBER( namco_06xx_device::data_w ) { - LOG(("%s: 06XX '%s' write offset %d = %02x\n",machine().describe_context(),tag(),offset,data)); + LOG("%s: 06XX '%s' write offset %d = %02x\n",machine().describe_context(),tag(),offset,data); if (m_control & 0x10) { logerror("%s: 06XX '%s' write in read mode %02x\n",machine().describe_context(),tag(),m_control); return; } - if ((m_control & (1 << 0)) && !m_write_0.isnull()) m_write_0(space, 0, data); - if ((m_control & (1 << 1)) && !m_write_1.isnull()) m_write_1(space, 0, data); - if ((m_control & (1 << 2)) && !m_write_2.isnull()) m_write_2(space, 0, data); - if ((m_control & (1 << 3)) && !m_write_3.isnull()) m_write_3(space, 0, data); + if (BIT(m_control, 0)) m_write[0](space, 0, data); + if (BIT(m_control, 1)) m_write[1](space, 0, data); + if (BIT(m_control, 2)) m_write[2](space, 0, data); + if (BIT(m_control, 3)) m_write[3](space, 0, data); } READ8_MEMBER( namco_06xx_device::ctrl_r ) { - LOG(("%s: 06XX '%s' ctrl_r\n",machine().describe_context(),tag())); + LOG("%s: 06XX '%s' ctrl_r\n",machine().describe_context(),tag()); return m_control; } WRITE8_MEMBER( namco_06xx_device::ctrl_w ) { - LOG(("%s: 06XX '%s' control %02x\n",space.machine().describe_context(),tag(),data)); + LOG("%s: 06XX '%s' control %02x\n",space.machine().describe_context(),tag(),data); m_control = data; if ((m_control & 0x0f) == 0) { - LOG(("disabling nmi generate timer\n")); + LOG("disabling nmi generate timer\n"); m_nmi_timer->adjust(attotime::never); } else { - LOG(("setting nmi generate timer to 200us\n")); + LOG("setting nmi generate timer to 200us\n"); // this timing is critical. Due to a bug, Bosconian will stop responding to // inputs if a transfer terminates at the wrong time. @@ -164,34 +164,26 @@ WRITE8_MEMBER( namco_06xx_device::ctrl_w ) // not have enough time to process the incoming controls. m_nmi_timer->adjust(attotime::from_usec(200), 0, attotime::from_usec(200)); - if (m_control & 0x10) { - if ((m_control & (1 << 0)) && !m_readreq_0.isnull()) m_readreq_0(space, 0); - if ((m_control & (1 << 1)) && !m_readreq_1.isnull()) m_readreq_1(space, 0); - if ((m_control & (1 << 2)) && !m_readreq_2.isnull()) m_readreq_2(space, 0); - if ((m_control & (1 << 3)) && !m_readreq_3.isnull()) m_readreq_3(space, 0); + if (m_control & 0x10) + { + if (BIT(m_control, 0)) m_readreq[0](space, 0); + if (BIT(m_control, 1)) m_readreq[1](space, 0); + if (BIT(m_control, 2)) m_readreq[2](space, 0); + if (BIT(m_control, 3)) m_readreq[3](space, 0); } } } -const device_type NAMCO_06XX = device_creator; +DEFINE_DEVICE_TYPE(NAMCO_06XX, namco_06xx_device, "namco06", "Namco 06xx") namco_06xx_device::namco_06xx_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, NAMCO_06XX, "Namco 06xx", tag, owner, clock, "namco06xx", __FILE__) + : device_t(mconfig, NAMCO_06XX, tag, owner, clock) , m_control(0) , m_nmicpu(*this, finder_base::DUMMY_TAG) - , m_read_0(*this) - , m_read_1(*this) - , m_read_2(*this) - , m_read_3(*this) - , m_readreq_0(*this) - , m_readreq_1(*this) - , m_readreq_2(*this) - , m_readreq_3(*this) - , m_write_0(*this) - , m_write_1(*this) - , m_write_2(*this) - , m_write_3(*this) + , m_read{ { *this }, { *this }, { *this }, { *this } } + , m_readreq{ { *this }, { *this }, { *this }, { *this } } + , m_write{ { *this }, { *this }, { *this }, { *this } } { } @@ -201,18 +193,15 @@ namco_06xx_device::namco_06xx_device(const machine_config &mconfig, const char * void namco_06xx_device::device_start() { - m_read_0.resolve(); - m_read_1.resolve(); - m_read_2.resolve(); - m_read_3.resolve(); - m_readreq_0.resolve(); - m_readreq_1.resolve(); - m_readreq_2.resolve(); - m_readreq_3.resolve(); - m_write_0.resolve(); - m_write_1.resolve(); - m_write_2.resolve(); - m_write_3.resolve(); + for (devcb_read8 &cb : m_read) + cb.resolve_safe(0xff); + + for (devcb_write_line &cb : m_readreq) + cb.resolve_safe(); + + for (devcb_write8 &cb : m_write) + cb.resolve_safe(); + /* allocate a timer */ m_nmi_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(namco_06xx_device::nmi_generate),this)); diff --git a/src/mame/machine/namco06.h b/src/mame/machine/namco06.h index 04f4e56af28..9b2af7522ad 100644 --- a/src/mame/machine/namco06.h +++ b/src/mame/machine/namco06.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Aaron Giles -#ifndef NAMCO06_H -#define NAMCO06_H +#ifndef MAME_MACHINE_NAMCO06_H +#define MAME_MACHINE_NAMCO06_H + +#pragma once struct namco_06xx_config @@ -21,42 +23,42 @@ struct namco_06xx_config namco_06xx_device::set_maincpu(*device, "^" _tag); #define MCFG_NAMCO_06XX_READ_0_CB(_devcb) \ - devcb = &namco_06xx_device::set_read_0_callback(*device, DEVCB_##_devcb); + devcb = &namco_06xx_device::set_read_callback<0>(*device, DEVCB_##_devcb); #define MCFG_NAMCO_06XX_READ_1_CB(_devcb) \ - devcb = &namco_06xx_device::set_read_1_callback(*device, DEVCB_##_devcb); + devcb = &namco_06xx_device::set_read_callback<1>(*device, DEVCB_##_devcb); #define MCFG_NAMCO_06XX_READ_2_CB(_devcb) \ - devcb = &namco_06xx_device::set_read_2_callback(*device, DEVCB_##_devcb); + devcb = &namco_06xx_device::set_read_callback<2>(*device, DEVCB_##_devcb); #define MCFG_NAMCO_06XX_READ_3_CB(_devcb) \ - devcb = &namco_06xx_device::set_read_3_callback(*device, DEVCB_##_devcb); + devcb = &namco_06xx_device::set_read_callback<3>(*device, DEVCB_##_devcb); #define MCFG_NAMCO_06XX_READ_REQUEST_0_CB(_devcb) \ - devcb = &namco_06xx_device::set_read_request_0_callback(*device, DEVCB_##_devcb); + devcb = &namco_06xx_device::set_read_request_callback<0>(*device, DEVCB_##_devcb); #define MCFG_NAMCO_06XX_READ_REQUEST_1_CB(_devcb) \ - devcb = &namco_06xx_device::set_read_request_1_callback(*device, DEVCB_##_devcb); + devcb = &namco_06xx_device::set_read_request_callback<1>(*device, DEVCB_##_devcb); #define MCFG_NAMCO_06XX_READ_REQUEST_2_CB(_devcb) \ - devcb = &namco_06xx_device::set_read_request_2_callback(*device, DEVCB_##_devcb); + devcb = &namco_06xx_device::set_read_request_callback<2>(*device, DEVCB_##_devcb); #define MCFG_NAMCO_06XX_READ_REQUEST_3_CB(_devcb) \ - devcb = &namco_06xx_device::set_read_request_3_callback(*device, DEVCB_##_devcb); + devcb = &namco_06xx_device::set_read_request_callback<3>(*device, DEVCB_##_devcb); #define MCFG_NAMCO_06XX_WRITE_0_CB(_devcb) \ - devcb = &namco_06xx_device::set_write_0_callback(*device, DEVCB_##_devcb); + devcb = &namco_06xx_device::set_write_callback<0>(*device, DEVCB_##_devcb); #define MCFG_NAMCO_06XX_WRITE_1_CB(_devcb) \ - devcb = &namco_06xx_device::set_write_1_callback(*device, DEVCB_##_devcb); + devcb = &namco_06xx_device::set_write_callback<1>(*device, DEVCB_##_devcb); #define MCFG_NAMCO_06XX_WRITE_2_CB(_devcb) \ - devcb = &namco_06xx_device::set_write_2_callback(*device, DEVCB_##_devcb); + devcb = &namco_06xx_device::set_write_callback<2>(*device, DEVCB_##_devcb); #define MCFG_NAMCO_06XX_WRITE_3_CB(_devcb) \ - devcb = &namco_06xx_device::set_write_3_callback(*device, DEVCB_##_devcb); + devcb = &namco_06xx_device::set_write_callback<3>(*device, DEVCB_##_devcb); /* device get info callback */ @@ -67,21 +69,11 @@ public: static void set_maincpu(device_t &device, const char *tag) { downcast(device).m_nmicpu.set_tag(tag); } - template static devcb_base &set_read_0_callback(device_t &device, _Object object) { return downcast(device).m_read_0.set_callback(object); } - template static devcb_base &set_read_1_callback(device_t &device, _Object object) { return downcast(device).m_read_1.set_callback(object); } - template static devcb_base &set_read_2_callback(device_t &device, _Object object) { return downcast(device).m_read_2.set_callback(object); } - template static devcb_base &set_read_3_callback(device_t &device, _Object object) { return downcast(device).m_read_3.set_callback(object); } - - template static devcb_base &set_read_request_0_callback(device_t &device, _Object object) { return downcast(device).m_readreq_0.set_callback(object); } - template static devcb_base &set_read_request_1_callback(device_t &device, _Object object) { return downcast(device).m_readreq_1.set_callback(object); } - template static devcb_base &set_read_request_2_callback(device_t &device, _Object object) { return downcast(device).m_readreq_2.set_callback(object); } - template static devcb_base &set_read_request_3_callback(device_t &device, _Object object) { return downcast(device).m_readreq_3.set_callback(object); } + template static devcb_base &set_read_callback(device_t &device, Object &&cb) { return downcast(device).m_read[N].set_callback(std::forward(cb)); } + template static devcb_base &set_read_request_callback(device_t &device, Object &&cb) { return downcast(device).m_readreq[N].set_callback(std::forward(cb)); } - template static devcb_base &set_write_0_callback(device_t &device, _Object object) { return downcast(device).m_write_0.set_callback(object); } - template static devcb_base &set_write_1_callback(device_t &device, _Object object) { return downcast(device).m_write_1.set_callback(object); } - template static devcb_base &set_write_2_callback(device_t &device, _Object object) { return downcast(device).m_write_2.set_callback(object); } - template static devcb_base &set_write_3_callback(device_t &device, _Object object) { return downcast(device).m_write_3.set_callback(object); } + template static devcb_base &set_write_callback(device_t &device, Object &&cb) { return downcast(device).m_write[N].set_callback(std::forward(cb)); } DECLARE_READ8_MEMBER( data_r ); DECLARE_WRITE8_MEMBER( data_w ); @@ -102,24 +94,14 @@ private: required_device m_nmicpu; - devcb_read8 m_read_0; - devcb_read8 m_read_1; - devcb_read8 m_read_2; - devcb_read8 m_read_3; + devcb_read8 m_read[4]; - devcb_write_line m_readreq_0; - devcb_write_line m_readreq_1; - devcb_write_line m_readreq_2; - devcb_write_line m_readreq_3; + devcb_write_line m_readreq[4]; - devcb_write8 m_write_0; - devcb_write8 m_write_1; - devcb_write8 m_write_2; - devcb_write8 m_write_3; + devcb_write8 m_write[4]; }; -extern const device_type NAMCO_06XX; - +DECLARE_DEVICE_TYPE(NAMCO_06XX, namco_06xx_device) -#endif +#endif // MAME_MACHINE_NAMCO06_H diff --git a/src/mame/machine/namco50.cpp b/src/mame/machine/namco50.cpp index 8b54f21e05e..ae9f97338bd 100644 --- a/src/mame/machine/namco50.cpp +++ b/src/mame/machine/namco50.cpp @@ -237,10 +237,10 @@ ROM_START( namco_50xx ) ROM_END -const device_type NAMCO_50XX = device_creator; +DEFINE_DEVICE_TYPE(NAMCO_50XX, namco_50xx_device, "namco50", "Namco 50xx") namco_50xx_device::namco_50xx_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, NAMCO_50XX, "Namco 50xx", tag, owner, clock, "namco50", __FILE__), + : device_t(mconfig, NAMCO_50XX, tag, owner, clock), m_cpu(*this, "mcu"), m_latched_cmd(0), m_latched_rw(0), diff --git a/src/mame/machine/namco50.h b/src/mame/machine/namco50.h index 565bb4320b4..ed9dfda7bd3 100644 --- a/src/mame/machine/namco50.h +++ b/src/mame/machine/namco50.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Aaron Giles -#ifndef NAMCO50_H -#define NAMCO50_H +#ifndef MAME_MACHINE_NAMCO50_H +#define MAME_MACHINE_NAMCO50_H + +#pragma once #include "cpu/mb88xx/mb88xx.h" @@ -42,6 +44,6 @@ private: uint8_t m_portO; }; -extern const device_type NAMCO_50XX; +DECLARE_DEVICE_TYPE(NAMCO_50XX, namco_50xx_device) -#endif /* NAMCO50_H */ +#endif // MAME_MACHINE_NAMCO50_H diff --git a/src/mame/machine/namco51.cpp b/src/mame/machine/namco51.cpp index a7b1257723a..9b0e0c9e285 100644 --- a/src/mame/machine/namco51.cpp +++ b/src/mame/machine/namco51.cpp @@ -62,17 +62,17 @@ #define VERBOSE 0 -#define LOG(x) do { if (VERBOSE) logerror x; } while (0) +#include "logmacro.h" -#define READ_PORT(num) m_in_##num(space, 0) -#define WRITE_PORT(num,data) m_out_##num(space, 0, data) +#define READ_PORT(num) m_in[num](space, 0) +#define WRITE_PORT(num, data) m_out[num](space, 0, data) WRITE8_MEMBER( namco_51xx_device::write ) { data &= 0x07; - LOG(("%s: custom 51XX write %02x\n",machine().describe_context(),data)); + LOG("%s: custom 51XX write %02x\n",machine().describe_context(),data); if (m_coincred_mode) { @@ -168,7 +168,7 @@ static const int joy_map[16] = READ8_MEMBER( namco_51xx_device::read ) { - LOG(("%s: custom 51XX read\n",machine().describe_context())); + LOG("%s: custom 51XX read\n",machine().describe_context()); if (m_mode == 0) /* switch mode */ { @@ -341,17 +341,13 @@ ROM_START( namco_51xx ) ROM_LOAD( "51xx.bin", 0x0000, 0x0400, CRC(c2f57ef8) SHA1(50de79e0d6a76bda95ffb02fcce369a79e6abfec) ) ROM_END -const device_type NAMCO_51XX = device_creator; +DEFINE_DEVICE_TYPE(NAMCO_51XX, namco_51xx_device, "namco51", "Namco 51xx") namco_51xx_device::namco_51xx_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, NAMCO_51XX, "Namco 51xx", tag, owner, clock, "namco51", __FILE__), + : device_t(mconfig, NAMCO_51XX, tag, owner, clock), m_cpu(*this, "mcu"), - m_in_0(*this), - m_in_1(*this), - m_in_2(*this), - m_in_3(*this), - m_out_0(*this), - m_out_1(*this), + m_in{ { *this }, { *this }, { *this }, { *this } }, + m_out{ { *this }, { *this } }, m_lastcoins(0), m_lastbuttons(0), m_mode(0), @@ -367,14 +363,12 @@ namco_51xx_device::namco_51xx_device(const machine_config &mconfig, const char * void namco_51xx_device::device_start() { /* resolve our read callbacks */ - m_in_0.resolve_safe(0); - m_in_1.resolve_safe(0); - m_in_2.resolve_safe(0); - m_in_3.resolve_safe(0); + for (devcb_read8 &cb : m_in) + cb.resolve_safe(0); /* resolve our write callbacks */ - m_out_0.resolve_safe(); - m_out_1.resolve_safe(); + for (devcb_write8 &cb : m_out) + cb.resolve_safe(); save_item(NAME(m_lastcoins)); save_item(NAME(m_lastbuttons)); diff --git a/src/mame/machine/namco51.h b/src/mame/machine/namco51.h index 56c11d3d788..bbdb17dcd04 100644 --- a/src/mame/machine/namco51.h +++ b/src/mame/machine/namco51.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Aaron Giles -#ifndef NAMCO51_H -#define NAMCO51_H +#ifndef MAME_MACHINE_NAMCO51_H +#define MAME_MACHINE_NAMCO51_H + +#pragma once #include "cpu/mb88xx/mb88xx.h" @@ -10,35 +12,31 @@ MCFG_DEVICE_ADD(_tag, NAMCO_51XX, _clock) #define MCFG_NAMCO_51XX_INPUT_0_CB(_devcb) \ - devcb = &namco_51xx_device::set_input_0_callback(*device, DEVCB_##_devcb); + devcb = &namco_51xx_device::set_input_callback<0>(*device, DEVCB_##_devcb); #define MCFG_NAMCO_51XX_INPUT_1_CB(_devcb) \ - devcb = &namco_51xx_device::set_input_1_callback(*device, DEVCB_##_devcb); + devcb = &namco_51xx_device::set_input_callback<1>(*device, DEVCB_##_devcb); #define MCFG_NAMCO_51XX_INPUT_2_CB(_devcb) \ - devcb = &namco_51xx_device::set_input_2_callback(*device, DEVCB_##_devcb); + devcb = &namco_51xx_device::set_input_callback<2>(*device, DEVCB_##_devcb); #define MCFG_NAMCO_51XX_INPUT_3_CB(_devcb) \ - devcb = &namco_51xx_device::set_input_3_callback(*device, DEVCB_##_devcb); + devcb = &namco_51xx_device::set_input_callback<3>(*device, DEVCB_##_devcb); #define MCFG_NAMCO_51XX_OUTPUT_0_CB(_devcb) \ - devcb = &namco_51xx_device::set_output_0_callback(*device, DEVCB_##_devcb); + devcb = &namco_51xx_device::set_output_callback<0>(*device, DEVCB_##_devcb); #define MCFG_NAMCO_51XX_OUTPUT_1_CB(_devcb) \ - devcb = &namco_51xx_device::set_output_1_callback(*device, DEVCB_##_devcb); + devcb = &namco_51xx_device::set_output_callback<1>(*device, DEVCB_##_devcb); class namco_51xx_device : public device_t { public: namco_51xx_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_input_0_callback(device_t &device, _Object object) { return downcast(device).m_in_0.set_callback(object); } - template static devcb_base &set_input_1_callback(device_t &device, _Object object) { return downcast(device).m_in_1.set_callback(object); } - template static devcb_base &set_input_2_callback(device_t &device, _Object object) { return downcast(device).m_in_2.set_callback(object); } - template static devcb_base &set_input_3_callback(device_t &device, _Object object) { return downcast(device).m_in_3.set_callback(object); } + template static devcb_base &set_input_callback(device_t &device, Object &&cb) { return downcast(device).m_in[N].set_callback(std::forward(cb)); } - template static devcb_base &set_output_0_callback(device_t &device, _Object object) { return downcast(device).m_out_0.set_callback(object); } - template static devcb_base &set_output_1_callback(device_t &device, _Object object) { return downcast(device).m_out_1.set_callback(object); } + template static devcb_base &set_output_callback(device_t &device, Object &&cb) { return downcast(device).m_out[N].set_callback(std::forward(cb)); } DECLARE_WRITE8_MEMBER( write ); DECLARE_READ8_MEMBER( read ); @@ -52,12 +50,8 @@ protected: private: // internal state required_device m_cpu; - devcb_read8 m_in_0; - devcb_read8 m_in_1; - devcb_read8 m_in_2; - devcb_read8 m_in_3; - devcb_write8 m_out_0; - devcb_write8 m_out_1; + devcb_read8 m_in[4]; + devcb_write8 m_out[2]; int32_t m_lastcoins; int32_t m_lastbuttons; @@ -71,8 +65,7 @@ private: int32_t m_remap_joy; }; -extern const device_type NAMCO_51XX; - +DECLARE_DEVICE_TYPE(NAMCO_51XX, namco_51xx_device) -#endif /* NAMCO51_H */ +#endif // NAMCO_51XX diff --git a/src/mame/machine/namco53.cpp b/src/mame/machine/namco53.cpp index a76388149f1..1b183a614a9 100644 --- a/src/mame/machine/namco53.cpp +++ b/src/mame/machine/namco53.cpp @@ -59,7 +59,8 @@ #define VERBOSE 0 -#define LOG(x) do { if (VERBOSE) logerror x; } while (0) +#include "logmacro.h" + READ8_MEMBER( namco_53xx_device::K_r ) { @@ -68,14 +69,7 @@ READ8_MEMBER( namco_53xx_device::K_r ) READ8_MEMBER( namco_53xx_device::Rx_r ) { - switch(offset) { - case 0 : return m_in_0(0); - case 1 : return m_in_1(0); - case 2 : return m_in_2(0); - case 3 : return m_in_3(0); - default : return 0xff; - } - + return (offset < ARRAY_LENGTH(m_in)) ? m_in[offset](0) : 0xff; } WRITE8_MEMBER( namco_53xx_device::O_w ) @@ -143,17 +137,14 @@ ROM_START( namco_53xx ) ROM_LOAD( "53xx.bin", 0x0000, 0x0400, CRC(b326fecb) SHA1(758d8583d658e4f1df93184009d86c3eb8713899) ) ROM_END -const device_type NAMCO_53XX = device_creator; +DEFINE_DEVICE_TYPE(NAMCO_53XX, namco_53xx_device, "namco53", "Namco 53xx") namco_53xx_device::namco_53xx_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, NAMCO_53XX, "Namco 53xx", tag, owner, clock, "namco53", __FILE__), + : device_t(mconfig, NAMCO_53XX, tag, owner, clock), m_cpu(*this, "mcu"), m_portO(0), m_k(*this), - m_in_0(*this), - m_in_1(*this), - m_in_2(*this), - m_in_3(*this), + m_in{ { *this }, { *this }, { *this }, { *this } }, m_p(*this) { } @@ -165,10 +156,8 @@ void namco_53xx_device::device_start() { /* resolve our read/write callbacks */ m_k.resolve_safe(0); - m_in_0.resolve_safe(0); - m_in_1.resolve_safe(0); - m_in_2.resolve_safe(0); - m_in_3.resolve_safe(0); + for (devcb_read8 &cb : m_in) + cb.resolve_safe(0); m_p.resolve_safe(); save_item(NAME(m_portO)); diff --git a/src/mame/machine/namco53.h b/src/mame/machine/namco53.h index ba23efe4123..3526fb9176a 100644 --- a/src/mame/machine/namco53.h +++ b/src/mame/machine/namco53.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Aaron Giles -#ifndef NAMCO53_H -#define NAMCO53_H +#ifndef MAME_MACHINE_NAMCO53_H +#define MAME_MACHINE_NAMCO53_H + +#pragma once #include "cpu/mb88xx/mb88xx.h" @@ -12,16 +14,16 @@ devcb = &namco_53xx_device::set_k_port_callback(*device, DEVCB_##_devcb); #define MCFG_NAMCO_53XX_INPUT_0_CB(_devcb) \ - devcb = &namco_53xx_device::set_input_0_callback(*device, DEVCB_##_devcb); + devcb = &namco_53xx_device::set_input_callback<0>(*device, DEVCB_##_devcb); #define MCFG_NAMCO_53XX_INPUT_1_CB(_devcb) \ - devcb = &namco_53xx_device::set_input_1_callback(*device, DEVCB_##_devcb); + devcb = &namco_53xx_device::set_input_callback<1>(*device, DEVCB_##_devcb); #define MCFG_NAMCO_53XX_INPUT_2_CB(_devcb) \ - devcb = &namco_53xx_device::set_input_2_callback(*device, DEVCB_##_devcb); + devcb = &namco_53xx_device::set_input_callback<2>(*device, DEVCB_##_devcb); #define MCFG_NAMCO_53XX_INPUT_3_CB(_devcb) \ - devcb = &namco_53xx_device::set_input_3_callback(*device, DEVCB_##_devcb); + devcb = &namco_53xx_device::set_input_callback<3>(*device, DEVCB_##_devcb); #define MCFG_NAMCO_53XX_P_CB(_devcb) \ devcb = &namco_53xx_device::set_p_port_callback(*device, DEVCB_##_devcb); @@ -32,13 +34,10 @@ class namco_53xx_device : public device_t public: namco_53xx_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_input_0_callback(device_t &device, _Object object) { return downcast(device).m_in_0.set_callback(object); } - template static devcb_base &set_input_1_callback(device_t &device, _Object object) { return downcast(device).m_in_1.set_callback(object); } - template static devcb_base &set_input_2_callback(device_t &device, _Object object) { return downcast(device).m_in_2.set_callback(object); } - template static devcb_base &set_input_3_callback(device_t &device, _Object object) { return downcast(device).m_in_3.set_callback(object); } + template static devcb_base &set_input_callback(device_t &device, Object &&cb) { return downcast(device).m_in[N].set_callback(std::forward(cb)); } - template static devcb_base &set_k_port_callback(device_t &device, _Object object) { return downcast(device).m_k.set_callback(object); } - template static devcb_base &set_p_port_callback(device_t &device, _Object object) { return downcast(device).m_p.set_callback(object); } + template static devcb_base &set_k_port_callback(device_t &device, Object &&cb) { return downcast(device).m_k.set_callback(std::forward(cb)); } + template static devcb_base &set_p_port_callback(device_t &device, Object &&cb) { return downcast(device).m_p.set_callback(std::forward(cb)); } DECLARE_READ8_MEMBER( K_r ); DECLARE_READ8_MEMBER( Rx_r ); @@ -60,16 +59,12 @@ private: required_device m_cpu; uint8_t m_portO; devcb_read8 m_k; - devcb_read8 m_in_0; - devcb_read8 m_in_1; - devcb_read8 m_in_2; - devcb_read8 m_in_3; + devcb_read8 m_in[4]; devcb_write8 m_p; }; -extern const device_type NAMCO_53XX; - +DECLARE_DEVICE_TYPE(NAMCO_53XX, namco_53xx_device) -#endif /* NAMCO53_H */ +#endif // MAME_MACHINE_NAMCO53_H diff --git a/src/mame/machine/namco62.cpp b/src/mame/machine/namco62.cpp index 4ef3d0e79e7..680b1223f37 100644 --- a/src/mame/machine/namco62.cpp +++ b/src/mame/machine/namco62.cpp @@ -15,7 +15,7 @@ #include "machine/namco62.h" #define VERBOSE 0 -#define LOG(x) do { if (VERBOSE) logerror x; } while (0) +#include "logmacro.h" /*************************************************************************** @@ -42,17 +42,13 @@ ROM_START( namco_62xx ) ROM_END -const device_type NAMCO_62XX = device_creator; +DEFINE_DEVICE_TYPE(NAMCO_62XX, namco_62xx_device, "namco62", "Namco 62xx") namco_62xx_device::namco_62xx_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, NAMCO_62XX, "Namco 62xx", tag, owner, clock, "namco62", __FILE__), + : device_t(mconfig, NAMCO_62XX, tag, owner, clock), m_cpu(*this, "mcu"), - m_in_0(*this), - m_in_1(*this), - m_in_2(*this), - m_in_3(*this), - m_out_0(*this), - m_out_1(*this) + m_in{ { *this }, { *this }, { *this }, { *this } }, + m_out{ { *this }, { *this } } { } @@ -63,14 +59,12 @@ namco_62xx_device::namco_62xx_device(const machine_config &mconfig, const char * void namco_62xx_device::device_start() { /* resolve our read callbacks */ - m_in_0.resolve_safe(0); - m_in_1.resolve_safe(0); - m_in_2.resolve_safe(0); - m_in_3.resolve_safe(0); + for (devcb_read8 &cb : m_in) + cb.resolve_safe(0); /* resolve our write callbacks */ - m_out_0.resolve_safe(); - m_out_1.resolve_safe(); + for (devcb_write8 &cb : m_out) + cb.resolve_safe(); } //------------------------------------------------- diff --git a/src/mame/machine/namco62.h b/src/mame/machine/namco62.h index e41af64a221..d21f186a6e5 100644 --- a/src/mame/machine/namco62.h +++ b/src/mame/machine/namco62.h @@ -1,7 +1,7 @@ // license:BSD-3-Clause // copyright-holders:Philip Bennett -#ifndef NAMCO62_H -#define NAMCO62_H +#ifndef MAME_MACHINE_NAMCO62_H +#define MAME_MACHINE_NAMCO62_H #include "cpu/mb88xx/mb88xx.h" @@ -9,22 +9,22 @@ MCFG_DEVICE_ADD(_tag, NAMCO_62XX, _clock) #define MCFG_NAMCO_62XX_INPUT_0_CB(_devcb) \ - devcb = &namco_62xx_device::set_input_0_callback(*device, DEVCB_##_devcb); + devcb = &namco_62xx_device::set_input_callback<0>(*device, DEVCB_##_devcb); #define MCFG_NAMCO_62XX_INPUT_1_CB(_devcb) \ - devcb = &namco_62xx_device::set_input_1_callback(*device, DEVCB_##_devcb); + devcb = &namco_62xx_device::set_input_callback<1>(*device, DEVCB_##_devcb); #define MCFG_NAMCO_62XX_INPUT_2_CB(_devcb) \ - devcb = &namco_62xx_device::set_input_2_callback(*device, DEVCB_##_devcb); + devcb = &namco_62xx_device::set_input_callback<2>(*device, DEVCB_##_devcb); #define MCFG_NAMCO_62XX_INPUT_3_CB(_devcb) \ - devcb = &namco_62xx_device::set_input_3_callback(*device, DEVCB_##_devcb); + devcb = &namco_62xx_device::set_input_callback<3>(*device, DEVCB_##_devcb); #define MCFG_NAMCO_62XX_OUTPUT_0_CB(_devcb) \ - devcb = &namco_62xx_device::set_output_0_callback(*device, DEVCB_##_devcb); + devcb = &namco_62xx_device::set_output_callback<0>(*device, DEVCB_##_devcb); #define MCFG_NAMCO_62XX_OUTPUT_1_CB(_devcb) \ - devcb = &namco_62xx_device::set_output_1_callback(*device, DEVCB_##_devcb); + devcb = &namco_62xx_device::set_output_callback<1>(*device, DEVCB_##_devcb); class namco_62xx_device : public device_t @@ -32,13 +32,9 @@ class namco_62xx_device : public device_t public: namco_62xx_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_input_0_callback(device_t &device, _Object object) { return downcast(device).m_in_0.set_callback(object); } - template static devcb_base &set_input_1_callback(device_t &device, _Object object) { return downcast(device).m_in_1.set_callback(object); } - template static devcb_base &set_input_2_callback(device_t &device, _Object object) { return downcast(device).m_in_2.set_callback(object); } - template static devcb_base &set_input_3_callback(device_t &device, _Object object) { return downcast(device).m_in_3.set_callback(object); } + template static devcb_base &set_input_callback(device_t &device, Object &&cb) { return downcast(device).m_in[N].set_callback(std::forward(cb)); } - template static devcb_base &set_output_0_callback(device_t &device, _Object object) { return downcast(device).m_out_0.set_callback(object); } - template static devcb_base &set_output_1_callback(device_t &device, _Object object) { return downcast(device).m_out_1.set_callback(object); } + template static devcb_base &set_output_callback(device_t &device, Object &&cb) { return downcast(device).m_out[N].set_callback(std::forward(cb)); } protected: // device-level overrides virtual void device_start() override; @@ -48,14 +44,10 @@ protected: private: // internal state required_device m_cpu; - devcb_read8 m_in_0; - devcb_read8 m_in_1; - devcb_read8 m_in_2; - devcb_read8 m_in_3; - devcb_write8 m_out_0; - devcb_write8 m_out_1; + devcb_read8 m_in[4]; + devcb_write8 m_out[2]; }; -extern const device_type NAMCO_62XX; +DECLARE_DEVICE_TYPE(NAMCO_62XX, namco_62xx_device) -#endif /* NAMCO62_H */ +#endif // MAME_MACHINE_NAMCO62_H diff --git a/src/mame/machine/namco_c139.cpp b/src/mame/machine/namco_c139.cpp index 9581a8325b0..ac8b9216a28 100644 --- a/src/mame/machine/namco_c139.cpp +++ b/src/mame/machine/namco_c139.cpp @@ -21,7 +21,7 @@ //************************************************************************** // device type definition -const device_type NAMCO_C139 = device_creator; +DEFINE_DEVICE_TYPE(NAMCO_C139, namco_c139_device, "namco_c139", "Namco C139 Serial") //************************************************************************** @@ -45,7 +45,7 @@ ADDRESS_MAP_END //------------------------------------------------- namco_c139_device::namco_c139_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, NAMCO_C139, "namco_c139_longname", tag, owner, clock, "namco_c139", __FILE__), + : device_t(mconfig, NAMCO_C139, tag, owner, clock), device_memory_interface(mconfig, *this), m_space_config("data", ENDIANNESS_BIG, 16, 14, 0, *ADDRESS_MAP_NAME(data_map)) { diff --git a/src/mame/machine/namco_c139.h b/src/mame/machine/namco_c139.h index bee3f51a6a3..7eb5f117978 100644 --- a/src/mame/machine/namco_c139.h +++ b/src/mame/machine/namco_c139.h @@ -5,11 +5,11 @@ Namco C139 - Serial I/F Controller ***************************************************************************/ +#ifndef MAME_MACHINE_NAMCO_C139_H +#define MAME_MACHINE_NAMCO_C139_H #pragma once -#ifndef __NAMCO_C139DEV_H__ -#define __NAMCO_C139DEV_H__ @@ -54,7 +54,7 @@ private: // device type definition -extern const device_type NAMCO_C139; +DECLARE_DEVICE_TYPE(NAMCO_C139, namco_c139_device) @@ -64,4 +64,4 @@ extern const device_type NAMCO_C139; -#endif +#endif // MAME_MACHINE_NAMCO_C139_H diff --git a/src/mame/machine/namco_c148.cpp b/src/mame/machine/namco_c148.cpp index ab8470b67eb..491daef7496 100644 --- a/src/mame/machine/namco_c148.cpp +++ b/src/mame/machine/namco_c148.cpp @@ -9,7 +9,7 @@ Based off implementation from K.Wilkins and Phil Stroffolino TODO: - - hookup C116 device, @see mame/includes/namcoic.h + - hookup C116 device, @see mame/machine/namcoic.h ============================================================================= Interrupt Controller C148 1C0000-1FFFFF R/W D00-D02 @@ -45,7 +45,7 @@ Interrupt Controller C148 1C0000-1FFFFF R/W D00-D02 #include "namco_c148.h" #define VERBOSE 0 -#define LOG(x) do { if (VERBOSE) printf x; } while (0) +#include "logmacro.h" @@ -54,7 +54,7 @@ Interrupt Controller C148 1C0000-1FFFFF R/W D00-D02 //************************************************************************** // device type definition -const device_type NAMCO_C148 = device_creator; +DEFINE_DEVICE_TYPE(NAMCO_C148, namco_c148_device, "namco_c148", "Namco C148 Interrupt Controller") //************************************************************************** @@ -66,7 +66,7 @@ const device_type NAMCO_C148 = device_creator; //------------------------------------------------- namco_c148_device::namco_c148_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, NAMCO_C148, "Namco C148 Interrupt Controller", tag, owner, clock, "namco_c148", __FILE__), + : device_t(mconfig, NAMCO_C148, tag, owner, clock), m_out_ext1_cb(*this), m_out_ext2_cb(*this), m_hostcpu_tag(nullptr), @@ -154,11 +154,11 @@ inline void namco_c148_device::flush_irq_acks() m_hostcpu->set_input_line(i,CLEAR_LINE); } -WRITE8_MEMBER( namco_c148_device::pos_irq_level_w ) { m_irqlevel.pos = data & 7; flush_irq_acks(); if(data != 0) { LOG(("%s: pos IRQ level = %02x\n",this->tag(),data)); } } -WRITE8_MEMBER( namco_c148_device::vblank_irq_level_w ) { m_irqlevel.vblank = data & 7; flush_irq_acks(); LOG(("%s: vblank IRQ level = %02x\n",this->tag(),data)); } -WRITE8_MEMBER( namco_c148_device::cpu_irq_level_w ) { m_irqlevel.cpu = data & 7; flush_irq_acks(); LOG(("%s: cpu IRQ level = %02x\n",this->tag(),data)); } -WRITE8_MEMBER( namco_c148_device::ex_irq_level_w ) { m_irqlevel.ex = data & 7; flush_irq_acks(); LOG(("%s: ex IRQ level = %02x\n",this->tag(),data)); } -WRITE8_MEMBER( namco_c148_device::sci_irq_level_w ) { m_irqlevel.sci = data & 7; flush_irq_acks(); LOG(("%s: sci IRQ level = %02x\n",this->tag(),data)); } +WRITE8_MEMBER( namco_c148_device::pos_irq_level_w ) { m_irqlevel.pos = data & 7; flush_irq_acks(); if(data != 0) { LOG("%s: pos IRQ level = %02x\n",data); } } +WRITE8_MEMBER( namco_c148_device::vblank_irq_level_w ) { m_irqlevel.vblank = data & 7; flush_irq_acks(); LOG("%s: vblank IRQ level = %02x\n",data); } +WRITE8_MEMBER( namco_c148_device::cpu_irq_level_w ) { m_irqlevel.cpu = data & 7; flush_irq_acks(); LOG("%s: cpu IRQ level = %02x\n",data); } +WRITE8_MEMBER( namco_c148_device::ex_irq_level_w ) { m_irqlevel.ex = data & 7; flush_irq_acks(); LOG("%s: ex IRQ level = %02x\n",data); } +WRITE8_MEMBER( namco_c148_device::sci_irq_level_w ) { m_irqlevel.sci = data & 7; flush_irq_acks(); LOG("%s: sci IRQ level = %02x\n",data); } READ16_MEMBER( namco_c148_device::vblank_irq_ack_r ) { m_hostcpu->set_input_line(m_irqlevel.vblank, CLEAR_LINE); return 0; } READ16_MEMBER( namco_c148_device::pos_irq_ack_r ) { m_hostcpu->set_input_line(m_irqlevel.pos, CLEAR_LINE); return 0; } diff --git a/src/mame/machine/namco_c148.h b/src/mame/machine/namco_c148.h index 7b920708e2b..4da06b3df38 100644 --- a/src/mame/machine/namco_c148.h +++ b/src/mame/machine/namco_c148.h @@ -5,11 +5,11 @@ Namco C148 - CPU Bus Manager ***************************************************************************/ +#ifndef MAME_MACHINE_NAMCO_C148_H +#define MAME_MACHINE_NAMCO_C148_H #pragma once -#ifndef __NAMCO_C148DEV_H__ -#define __NAMCO_C148DEV_H__ @@ -130,7 +130,7 @@ private: // device type definition -extern const device_type NAMCO_C148; +DECLARE_DEVICE_TYPE(NAMCO_C148, namco_c148_device) @@ -140,4 +140,4 @@ extern const device_type NAMCO_C148; -#endif +#endif // MAME_MACHINE_NAMCO_C148_H diff --git a/src/mame/machine/namco_settings.cpp b/src/mame/machine/namco_settings.cpp index 7d3a4c1a82b..1df580b9574 100644 --- a/src/mame/machine/namco_settings.cpp +++ b/src/mame/machine/namco_settings.cpp @@ -3,10 +3,10 @@ #include "emu.h" #include "namco_settings.h" -const device_type NAMCO_SETTINGS = device_creator; +DEFINE_DEVICE_TYPE(NAMCO_SETTINGS, namco_settings_device, "namco_settings", "Namco Settings") namco_settings_device::namco_settings_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, NAMCO_SETTINGS, "Namco Settings", tag, owner, clock, "namco_settings", __FILE__) + device_t(mconfig, NAMCO_SETTINGS, tag, owner, clock) { } diff --git a/src/mame/machine/namco_settings.h b/src/mame/machine/namco_settings.h index 7f8c8b4826b..bc25f7db48e 100644 --- a/src/mame/machine/namco_settings.h +++ b/src/mame/machine/namco_settings.h @@ -3,8 +3,10 @@ // Namco system 12/23 settings device -#ifndef __NAMCO_SETTINGS_H__ -#define __NAMCO_SETTINGS_H__ +#ifndef MAME_MACHINE_NAMCO_SETTINGS_H +#define MAME_MACHINE_NAMCO_SETTINGS_H + +#pragma once #define MCFG_NAMCO_SETTINGS_ADD(_tag) \ MCFG_DEVICE_ADD(_tag, NAMCO_SETTINGS, 0) @@ -27,6 +29,6 @@ private: uint8_t adr, value; }; -extern const device_type NAMCO_SETTINGS; +DECLARE_DEVICE_TYPE(NAMCO_SETTINGS, namco_settings_device) -#endif +#endif // MAME_MACHINE_NAMCO_SETTINGS_H diff --git a/src/mame/machine/namcoic.cpp b/src/mame/machine/namcoic.cpp index 89edb72d9bd..292e22f02de 100644 --- a/src/mame/machine/namcoic.cpp +++ b/src/mame/machine/namcoic.cpp @@ -1,8 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Phil Stroffolino #include "emu.h" +#include "machine/namcoic.h" + #include "includes/namcos2.h" /* for game-specific hacks */ -#include "includes/namcoic.h" /**************************************************************************************/ diff --git a/src/mame/machine/namcoic.h b/src/mame/machine/namcoic.h new file mode 100644 index 00000000000..8d69e541eef --- /dev/null +++ b/src/mame/machine/namcoic.h @@ -0,0 +1,102 @@ +// license:BSD-3-Clause +// copyright-holders:Phil Stroffolino +/* namcoic.h + +Custom Chips: Final Lap Assault LuckyWld System21 NA1/2 NB1/2 + C45 Land Generator * * + C65 I/O Controller * * + C68 * * + C70 * + C95 * * + C102 ROZ:Memory Access Control * + C106 OBJ:X-Axis Zoom Control * * + C107 Land Line Buffer * + C116 Screen Waveform Generator * * * * + C121 Yamaha YM2151 Sound Gen * * * + C123 GFX:Tile Mem Decoder * * * * + C134 OBJ:Address Generator * * + C135 OBJ:Line matching * * + C137 Clock Generator IC * * * * * + C138 * + C139 Serial I/F Controller * * * * + C140 24 Channel PCM * * * + C145 GFX:Tile Memory Access * * * * + C146 OBJ:Line Buf Steering * * + C148 CPU Bus Manager * * * * + C149 Mouse/Trackball Decoder * * * * + C156 Pixel Stream Combo * * * * + C160 Control * + C165 * + C169 ROZ(B) * * + C187 * * * + C210 * + C215 * + C218 * + C219 * + C329 CPU? * + C347 GfxObj * + C352 PCM * + C355 Motion Obj(B) * * * + C373 LAND-related * + C382 * + C383 * + C384 GFX(3) * + C385 * + C390 Key Custom * + + +General Support +--------------- +C65 - This is the I/O Microcontroller, handles all input/output devices. 63705 uC, CPU4 in Namco System2. +C137 - Takes System clock and generates all sub-system clocks, doesn't need emulation, not accessed via CPU +C139 - Serial Interface Controller +C148 - Does some Memory Decode, Interrupt Handling, 3 bit PIO port, Bus Controller +C149 - Does decoding of mouse/trackball input streams for the I/O Controller. (Offset Square wave) + + +Tile Fields Static/Scrolled +--------------------------- +Combination of these two devices and associated RAM & TileGFX produces a pixel stream that is fed +into the Pixel stream decoder. + +C145 - Tile Screen Memory Access controller +C123 - Tile Memory decoder Part 1, converts X,Y,Tile into character ROM address index + + +Pixel Stream Decode +------------------- +These two devices take the pixel streams from the tilefield generator and the associated graphics board +and combine them to form an RGB data stream that is fed to the monitor. + +C156 - Pixel stream combiner +Takes tile field & graphics board streams and generates the prioritized pixel, then does the lookup to +go from palettised to 24bit RGB pixel. + +C116 - Screen Waveform Generator +Takes RGB24 pixel stream from C156 and generates the waveform signals for the monitor, also generates +the line interrupt and controls screen blanking,shift, etc. + +Object Control +-------------- +C106 - Generates memory output clocks to generate X-Axis Zoom for Line Buffer Writes +C134 - Object Memory Address Generator. Sequences the sprite memory contents to the hardware. +C135 - Checks is object is displayed on Current output line. +C146 - Steers the Decode Object Pixel data to the correct line buffer A or B + +ROZ +--- +C102 - Controls CPU access to ROZ Memory Area. +*/ + +/***********************************************************************************/ + +#ifndef MAME_MACHINE_NAMCOIC_H +#define MAME_MACHINE_NAMCOIC_H + +#pragma once + + + +/***********************************************************************************/ + +#endif // MAME_MACHINE_NAMCOIC_H diff --git a/src/mame/machine/namcoio.cpp b/src/mame/machine/namcoio.cpp index b4a32041a0e..c94ec7d6dba 100644 --- a/src/mame/machine/namcoio.cpp +++ b/src/mame/machine/namcoio.cpp @@ -115,40 +115,34 @@ TODO: #define VERBOSE 0 -#define LOG(x) do { if (VERBOSE) logerror x; } while (0) +#include "logmacro.h" -const device_type NAMCO56XX = device_creator; -const device_type NAMCO58XX = device_creator; -const device_type NAMCO59XX = device_creator; +DEFINE_DEVICE_TYPE(NAMCO_56XX, namco56xx_device, "namco56", "Namco 56xx I/O") +DEFINE_DEVICE_TYPE(NAMCO_58XX, namco58xx_device, "namco58", "Namco 58xx I/O") +DEFINE_DEVICE_TYPE(NAMCO_59XX, namco59xx_device, "namco59", "Namco 59xx I/O") -namcoio_device::namcoio_device(const machine_config &mconfig, device_type type, const char* name, const char *tag, device_t *owner, uint32_t clock, const char *shortname) - : device_t(mconfig, type, name, tag, owner, clock, shortname, __FILE__), - m_in_0_cb(*this), - m_in_1_cb(*this), - m_in_2_cb(*this), - m_in_3_cb(*this), - m_out_0_cb(*this), - m_out_1_cb(*this) +namcoio_device::namcoio_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int device_type) + : device_t(mconfig, type, tag, owner, clock) + , m_in_cb{ { *this }, { *this }, { *this }, { *this } } + , m_out_cb{ { *this }, { *this } } + //, m_device_type(device_type) { } namco56xx_device::namco56xx_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : namcoio_device(mconfig, NAMCO56XX, "Namco 56xx", tag, owner, clock, "56xx") + : namcoio_device(mconfig, NAMCO_56XX, tag, owner, clock, TYPE_NAMCO56XX) { - m_device_type = TYPE_NAMCO56XX; } namco58xx_device::namco58xx_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : namcoio_device(mconfig, NAMCO58XX, "Namco 58xx", tag, owner, clock, "58xx") + : namcoio_device(mconfig, NAMCO_58XX, tag, owner, clock, TYPE_NAMCO58XX) { - m_device_type = TYPE_NAMCO58XX; } namco59xx_device::namco59xx_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : namcoio_device(mconfig, NAMCO59XX, "Namco 59xx", tag, owner, clock, "59xx") + : namcoio_device(mconfig, NAMCO_59XX, tag, owner, clock, TYPE_NAMCO59XX) { - m_device_type = TYPE_NAMCO59XX; } //------------------------------------------------- @@ -157,12 +151,10 @@ namco59xx_device::namco59xx_device(const machine_config &mconfig, const char *ta void namcoio_device::device_start() { - m_in_0_cb.resolve_safe(0); - m_in_1_cb.resolve_safe(0); - m_in_2_cb.resolve_safe(0); - m_in_3_cb.resolve_safe(0); - m_out_0_cb.resolve_safe(); - m_out_1_cb.resolve_safe(); + for (devcb_read8 &cb : m_in_cb) + cb.resolve_safe(0); + for (devcb_write8 &cb : m_out_cb) + cb.resolve_safe(); save_item(NAME(m_ram)); save_item(NAME(m_reset)); @@ -203,7 +195,7 @@ void namcoio_device::handle_coins( int swap ) //popmessage("%x %x %x %x %x %x %x %x",IORAM_READ(8),IORAM_READ(9),IORAM_READ(10),IORAM_READ(11),IORAM_READ(12),IORAM_READ(13),IORAM_READ(14),IORAM_READ(15)); - val = ~m_in_0_cb(0 & 0x0f); // pins 38-41 + val = ~m_in_cb[0](0 & 0x0f); // pins 38-41 toggled = val ^ m_lastcoins; m_lastcoins = val; @@ -235,7 +227,7 @@ void namcoio_device::handle_coins( int swap ) credit_add = 1; } - val = ~m_in_3_cb(0 & 0x0f); // pins 30-33 + val = ~m_in_cb[3](0 & 0x0f); // pins 30-33 toggled = val ^ m_lastbuttons; m_lastbuttons = val; @@ -259,10 +251,10 @@ void namcoio_device::handle_coins( int swap ) IORAM_WRITE(1 ^ swap, m_credits % 10); // BCD credits IORAM_WRITE(2 ^ swap, credit_add); // credit increment (coin inputs) IORAM_WRITE(3 ^ swap, credit_sub); // credit decrement (start buttons) - IORAM_WRITE(4, ~m_in_1_cb(0 & 0x0f)); // pins 22-25 + IORAM_WRITE(4, ~m_in_cb[1](0 & 0x0f)); // pins 22-25 button = ((val & 0x05) << 1) | (val & toggled & 0x05); IORAM_WRITE(5, button); // pins 30 & 32 normal and impulse - IORAM_WRITE(6, ~m_in_2_cb(0 & 0x0f)); // pins 26-29 + IORAM_WRITE(6, ~m_in_cb[2](0 & 0x0f)); // pins 26-29 button = (val & 0x0a) | ((val & toggled & 0x0a) >> 1); IORAM_WRITE(7, button); // pins 31 & 33 normal and impulse } @@ -270,7 +262,7 @@ void namcoio_device::handle_coins( int swap ) void namco56xx_device::customio_run() { - LOG(("execute 56XX mode %d\n", IORAM_READ(8))); + LOG("execute 56XX mode %d\n", IORAM_READ(8)); switch (IORAM_READ(8)) { @@ -278,15 +270,15 @@ void namco56xx_device::customio_run() break; case 1: // read switch inputs - IORAM_WRITE(0, ~m_in_0_cb(0 & 0x0f)); // pins 38-41 - IORAM_WRITE(1, ~m_in_1_cb(0 & 0x0f)); // pins 22-25 - IORAM_WRITE(2, ~m_in_2_cb(0 & 0x0f)); // pins 26-29 - IORAM_WRITE(3, ~m_in_3_cb(0 & 0x0f)); // pins 30-33 + IORAM_WRITE(0, ~m_in_cb[0](0 & 0x0f)); // pins 38-41 + IORAM_WRITE(1, ~m_in_cb[1](0 & 0x0f)); // pins 22-25 + IORAM_WRITE(2, ~m_in_cb[2](0 & 0x0f)); // pins 26-29 + IORAM_WRITE(3, ~m_in_cb[3](0 & 0x0f)); // pins 30-33 //popmessage("%x %x %x %x %x %x %x %x",IORAM_READ(8),IORAM_READ(9),IORAM_READ(10),IORAM_READ(11),IORAM_READ(12),IORAM_READ(13),IORAM_READ(14),IORAM_READ(15)); - m_out_0_cb((offs_t)0, IORAM_READ(9)); // output to pins 13-16 (motos, pacnpal, gaplus) - m_out_1_cb((offs_t)0, IORAM_READ(10)); // output to pins 17-20 (gaplus) + m_out_cb[0]((offs_t)0, IORAM_READ(9)); // output to pins 13-16 (motos, pacnpal, gaplus) + m_out_cb[1]((offs_t)0, IORAM_READ(10)); // output to pins 17-20 (gaplus) break; case 2: // initialize coinage settings @@ -329,16 +321,16 @@ void namco56xx_device::customio_run() break; case 9: // read dip switches and inputs - m_out_0_cb((offs_t)0, 0 & 0x0f); // set pin 13 = 0 - IORAM_WRITE(0, ~m_in_0_cb(0 & 0x0f)); // pins 38-41, pin 13 = 0 - IORAM_WRITE(2, ~m_in_1_cb(0 & 0x0f)); // pins 22-25, pin 13 = 0 - IORAM_WRITE(4, ~m_in_2_cb(0 & 0x0f)); // pins 26-29, pin 13 = 0 - IORAM_WRITE(6, ~m_in_3_cb(0 & 0x0f)); // pins 30-33, pin 13 = 0 - m_out_0_cb((offs_t)0, 1 & 0x0f); // set pin 13 = 1 - IORAM_WRITE(1, ~m_in_0_cb(0 & 0x0f)); // pins 38-41, pin 13 = 1 - IORAM_WRITE(3, ~m_in_1_cb(0 & 0x0f)); // pins 22-25, pin 13 = 1 - IORAM_WRITE(5, ~m_in_2_cb(0 & 0x0f)); // pins 26-29, pin 13 = 1 - IORAM_WRITE(7, ~m_in_3_cb(0 & 0x0f)); // pins 30-33, pin 13 = 1 + m_out_cb[0]((offs_t)0, 0 & 0x0f); // set pin 13 = 0 + IORAM_WRITE(0, ~m_in_cb[0](0 & 0x0f)); // pins 38-41, pin 13 = 0 + IORAM_WRITE(2, ~m_in_cb[1](0 & 0x0f)); // pins 22-25, pin 13 = 0 + IORAM_WRITE(4, ~m_in_cb[2](0 & 0x0f)); // pins 26-29, pin 13 = 0 + IORAM_WRITE(6, ~m_in_cb[3](0 & 0x0f)); // pins 30-33, pin 13 = 0 + m_out_cb[0]((offs_t)0, 1 & 0x0f); // set pin 13 = 1 + IORAM_WRITE(1, ~m_in_cb[0](0 & 0x0f)); // pins 38-41, pin 13 = 1 + IORAM_WRITE(3, ~m_in_cb[1](0 & 0x0f)); // pins 22-25, pin 13 = 1 + IORAM_WRITE(5, ~m_in_cb[2](0 & 0x0f)); // pins 26-29, pin 13 = 1 + IORAM_WRITE(7, ~m_in_cb[3](0 & 0x0f)); // pins 30-33, pin 13 = 1 break; default: @@ -350,7 +342,7 @@ void namco56xx_device::customio_run() void namco59xx_device::customio_run() { - LOG(("execute 59XX mode %d\n", IORAM_READ(8))); + LOG("execute 59XX mode %d\n", IORAM_READ(8)); switch (IORAM_READ(8)) { @@ -358,10 +350,10 @@ void namco59xx_device::customio_run() break; case 3: // pacnpal chip #1: read dip switches and inputs - IORAM_WRITE(4, ~m_in_0_cb(0 & 0x0f)); // pins 38-41, pin 13 = 0 ? - IORAM_WRITE(5, ~m_in_2_cb(0 & 0x0f)); // pins 26-29 ? - IORAM_WRITE(6, ~m_in_1_cb(0 & 0x0f)); // pins 22-25 ? - IORAM_WRITE(7, ~m_in_3_cb(0 & 0x0f)); // pins 30-33 + IORAM_WRITE(4, ~m_in_cb[0](0 & 0x0f)); // pins 38-41, pin 13 = 0 ? + IORAM_WRITE(5, ~m_in_cb[2](0 & 0x0f)); // pins 26-29 ? + IORAM_WRITE(6, ~m_in_cb[1](0 & 0x0f)); // pins 22-25 ? + IORAM_WRITE(7, ~m_in_cb[3](0 & 0x0f)); // pins 30-33 break; default: @@ -373,7 +365,7 @@ void namco59xx_device::customio_run() void namco58xx_device::customio_run() { - LOG(("execute 58XX mode %d\n", IORAM_READ(8))); + LOG("execute 58XX mode %d\n", IORAM_READ(8)); switch (IORAM_READ(8)) { @@ -381,15 +373,15 @@ void namco58xx_device::customio_run() break; case 1: // read switch inputs - IORAM_WRITE(4, ~m_in_0_cb(0 & 0x0f)); // pins 38-41 - IORAM_WRITE(5, ~m_in_1_cb(0 & 0x0f)); // pins 22-25 - IORAM_WRITE(6, ~m_in_2_cb(0 & 0x0f)); // pins 26-29 - IORAM_WRITE(7, ~m_in_3_cb(0 & 0x0f)); // pins 30-33 + IORAM_WRITE(4, ~m_in_cb[0](0 & 0x0f)); // pins 38-41 + IORAM_WRITE(5, ~m_in_cb[1](0 & 0x0f)); // pins 22-25 + IORAM_WRITE(6, ~m_in_cb[2](0 & 0x0f)); // pins 26-29 + IORAM_WRITE(7, ~m_in_cb[3](0 & 0x0f)); // pins 30-33 //popmessage("%x %x %x %x %x %x %x %x",IORAM_READ(8),IORAM_READ(9),IORAM_READ(10),IORAM_READ(11),IORAM_READ(12),IORAM_READ(13),IORAM_READ(14),IORAM_READ(15)); - m_out_0_cb((offs_t)0, IORAM_READ(9)); // output to pins 13-16 (toypop) - m_out_1_cb((offs_t)0, IORAM_READ(10)); // output to pins 17-20 (toypop) + m_out_cb[0]((offs_t)0, IORAM_READ(9)); // output to pins 13-16 (toypop) + m_out_cb[1]((offs_t)0, IORAM_READ(10)); // output to pins 17-20 (toypop) break; case 2: // initialize coinage settings @@ -407,16 +399,16 @@ void namco58xx_device::customio_run() break; case 4: // read dip switches and inputs - m_out_0_cb((offs_t)0, 0 & 0x0f); // set pin 13 = 0 - IORAM_WRITE(0, ~m_in_0_cb(0 & 0x0f)); // pins 38-41, pin 13 = 0 - IORAM_WRITE(2, ~m_in_1_cb(0 & 0x0f)); // pins 22-25, pin 13 = 0 - IORAM_WRITE(4, ~m_in_2_cb(0 & 0x0f)); // pins 26-29, pin 13 = 0 - IORAM_WRITE(6, ~m_in_3_cb(0 & 0x0f)); // pins 30-33, pin 13 = 0 - m_out_0_cb((offs_t)0, 1 & 0x0f); // set pin 13 = 1 - IORAM_WRITE(1, ~m_in_0_cb(0 & 0x0f)); // pins 38-41, pin 13 = 1 - IORAM_WRITE(3, ~m_in_1_cb(0 & 0x0f)); // pins 22-25, pin 13 = 1 - IORAM_WRITE(5, ~m_in_2_cb(0 & 0x0f)); // pins 26-29, pin 13 = 1 - IORAM_WRITE(7, ~m_in_3_cb(0 & 0x0f)); // pins 30-33, pin 13 = 1 + m_out_cb[0]((offs_t)0, 0 & 0x0f); // set pin 13 = 0 + IORAM_WRITE(0, ~m_in_cb[0](0 & 0x0f)); // pins 38-41, pin 13 = 0 + IORAM_WRITE(2, ~m_in_cb[1](0 & 0x0f)); // pins 22-25, pin 13 = 0 + IORAM_WRITE(4, ~m_in_cb[2](0 & 0x0f)); // pins 26-29, pin 13 = 0 + IORAM_WRITE(6, ~m_in_cb[3](0 & 0x0f)); // pins 30-33, pin 13 = 0 + m_out_cb[0]((offs_t)0, 1 & 0x0f); // set pin 13 = 1 + IORAM_WRITE(1, ~m_in_cb[0](0 & 0x0f)); // pins 38-41, pin 13 = 1 + IORAM_WRITE(3, ~m_in_cb[1](0 & 0x0f)); // pins 22-25, pin 13 = 1 + IORAM_WRITE(5, ~m_in_cb[2](0 & 0x0f)); // pins 26-29, pin 13 = 1 + IORAM_WRITE(7, ~m_in_cb[3](0 & 0x0f)); // pins 30-33, pin 13 = 1 break; case 5: // bootup check @@ -483,7 +475,7 @@ READ8_MEMBER( namcoio_device::read ) // RAM is 4-bit wide; Pac & Pal requires the | 0xf0 otherwise Easter egg doesn't work offset &= 0x3f; -// LOG(("%04x: I/O read: mode %d, offset %d = %02x\n", space.device().safe_pc(), offset / 16, namcoio_ram[(offset & 0x30) + 8], offset & 0x0f, namcoio_ram[offset]&0x0f)); +// LOG("%04x: I/O read: mode %d, offset %d = %02x\n", space.device().safe_pc(), offset / 16, namcoio_ram[(offset & 0x30) + 8], offset & 0x0f, namcoio_ram[offset]&0x0f); return 0xf0 | m_ram[offset]; } @@ -493,7 +485,7 @@ WRITE8_MEMBER( namcoio_device::write ) offset &= 0x3f; data &= 0x0f; // RAM is 4-bit wide -// LOG(("%04x: I/O write %d: offset %d = %02x\n", space.device().safe_pc(), offset / 16, offset & 0x0f, data)); +// LOG("%04x: I/O write %d: offset %d = %02x\n", space.device().safe_pc(), offset / 16, offset & 0x0f, data); m_ram[offset] = data; } diff --git a/src/mame/machine/namcoio.h b/src/mame/machine/namcoio.h index 40b8ac15b76..2dece40ec90 100644 --- a/src/mame/machine/namcoio.h +++ b/src/mame/machine/namcoio.h @@ -1,7 +1,7 @@ // license:BSD-3-Clause // copyright-holders:Nicola Salmoria -#ifndef __NAMCOIO_H__ -#define __NAMCOIO_H__ +#ifndef MAME_MACHINE_NAMCOIO_H +#define MAME_MACHINE_NAMCOIO_H /*************************************************************************** @@ -11,14 +11,8 @@ class namcoio_device : public device_t { public: - namcoio_device(const machine_config &mconfig, device_type type, const char* name, const char *tag, device_t *owner, uint32_t clock, const char *shortname); - - template static devcb_base &set_in_0_callback(device_t &device, _Object object) { return downcast(device).m_in_0_cb.set_callback(object); } - template static devcb_base &set_in_1_callback(device_t &device, _Object object) { return downcast(device).m_in_1_cb.set_callback(object); } - template static devcb_base &set_in_2_callback(device_t &device, _Object object) { return downcast(device).m_in_2_cb.set_callback(object); } - template static devcb_base &set_in_3_callback(device_t &device, _Object object) { return downcast(device).m_in_3_cb.set_callback(object); } - template static devcb_base &set_out_0_callback(device_t &device, _Object object) { return downcast(device).m_out_0_cb.set_callback(object); } - template static devcb_base &set_out_1_callback(device_t &device, _Object object) { return downcast(device).m_out_1_cb.set_callback(object); } + template static devcb_base &set_in_callback(device_t &device, Object &&cb) { return downcast(device).m_in_cb[N].set_callback(std::forward(cb)); } + template static devcb_base &set_out_callback(device_t &device, Object &&cb) { return downcast(device).m_out_cb[N].set_callback(std::forward(cb)); } DECLARE_READ8_MEMBER( read ); @@ -27,13 +21,15 @@ public: WRITE_LINE_MEMBER( set_reset_line ); READ_LINE_MEMBER( read_reset_line ); + virtual void customio_run() = 0; + protected: + namcoio_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int device_type); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; - int m_device_type; - enum { TYPE_NAMCO56XX, TYPE_NAMCO58XX, @@ -43,12 +39,8 @@ protected: // internal state uint8_t m_ram[16]; - devcb_read8 m_in_0_cb; - devcb_read8 m_in_1_cb; - devcb_read8 m_in_2_cb; - devcb_read8 m_in_3_cb; - devcb_write8 m_out_0_cb; - devcb_write8 m_out_1_cb; + devcb_read8 m_in_cb[4]; + devcb_write8 m_out_cb[2]; int m_reset; int32_t m_lastcoins, m_lastbuttons; @@ -60,10 +52,8 @@ protected: void handle_coins( int swap ); - virtual void customio_run() {} - private: - + //int m_device_type; }; class namco56xx_device : public namcoio_device @@ -90,68 +80,68 @@ public: virtual void customio_run() override; }; -extern const device_type NAMCO56XX; -extern const device_type NAMCO58XX; -extern const device_type NAMCO59XX; +DECLARE_DEVICE_TYPE(NAMCO_56XX, namco56xx_device) +DECLARE_DEVICE_TYPE(NAMCO_58XX, namco58xx_device) +DECLARE_DEVICE_TYPE(NAMCO_59XX, namco59xx_device) /*************************************************************************** DEVICE CONFIGURATION MACROS ***************************************************************************/ #define MCFG_NAMCO56XX_IN_0_CB(_devcb) \ - devcb = &namco56xx_device::set_in_0_callback(*device, DEVCB_##_devcb); + devcb = &namco56xx_device::set_in_callback<0>(*device, DEVCB_##_devcb); #define MCFG_NAMCO56XX_IN_1_CB(_devcb) \ - devcb = &namco56xx_device::set_in_1_callback(*device, DEVCB_##_devcb); + devcb = &namco56xx_device::set_in_callback<1>(*device, DEVCB_##_devcb); #define MCFG_NAMCO56XX_IN_2_CB(_devcb) \ - devcb = &namco56xx_device::set_in_2_callback(*device, DEVCB_##_devcb); + devcb = &namco56xx_device::set_in_callback<2>(*device, DEVCB_##_devcb); #define MCFG_NAMCO56XX_IN_3_CB(_devcb) \ - devcb = &namco56xx_device::set_in_3_callback(*device, DEVCB_##_devcb); + devcb = &namco56xx_device::set_in_callback<3>(*device, DEVCB_##_devcb); #define MCFG_NAMCO56XX_OUT_0_CB(_devcb) \ - devcb = &namco56xx_device::set_out_0_callback(*device, DEVCB_##_devcb); + devcb = &namco56xx_device::set_out_callback<0>(*device, DEVCB_##_devcb); #define MCFG_NAMCO56XX_OUT_1_CB(_devcb) \ - devcb = &namco56xx_device::set_out_1_callback(*device, DEVCB_##_devcb); + devcb = &namco56xx_device::set_out_callback<1>(*device, DEVCB_##_devcb); #define MCFG_NAMCO58XX_IN_0_CB(_devcb) \ - devcb = &namco58xx_device::set_in_0_callback(*device, DEVCB_##_devcb); + devcb = &namco58xx_device::set_in_callback<0>(*device, DEVCB_##_devcb); #define MCFG_NAMCO58XX_IN_1_CB(_devcb) \ - devcb = &namco58xx_device::set_in_1_callback(*device, DEVCB_##_devcb); + devcb = &namco58xx_device::set_in_callback<1>(*device, DEVCB_##_devcb); #define MCFG_NAMCO58XX_IN_2_CB(_devcb) \ - devcb = &namco58xx_device::set_in_2_callback(*device, DEVCB_##_devcb); + devcb = &namco58xx_device::set_in_callback<2>(*device, DEVCB_##_devcb); #define MCFG_NAMCO58XX_IN_3_CB(_devcb) \ - devcb = &namco58xx_device::set_in_3_callback(*device, DEVCB_##_devcb); + devcb = &namco58xx_device::set_in_callback<3>(*device, DEVCB_##_devcb); #define MCFG_NAMCO58XX_OUT_0_CB(_devcb) \ - devcb = &namco58xx_device::set_out_0_callback(*device, DEVCB_##_devcb); + devcb = &namco58xx_device::set_out_callback<0>(*device, DEVCB_##_devcb); #define MCFG_NAMCO58XX_OUT_1_CB(_devcb) \ - devcb = &namco58xx_device::set_out_1_callback(*device, DEVCB_##_devcb); + devcb = &namco58xx_device::set_out_callback<1>(*device, DEVCB_##_devcb); #define MCFG_NAMCO59XX_IN_0_CB(_devcb) \ - devcb = &namco59xx_device::set_in_0_callback(*device, DEVCB_##_devcb); + devcb = &namco59xx_device::set_in_callback<0>(*device, DEVCB_##_devcb); #define MCFG_NAMCO59XX_IN_1_CB(_devcb) \ - devcb = &namco59xx_device::set_in_1_callback(*device, DEVCB_##_devcb); + devcb = &namco59xx_device::set_in_callback<1>(*device, DEVCB_##_devcb); #define MCFG_NAMCO59XX_IN_2_CB(_devcb) \ - devcb = &namco59xx_device::set_in_2_callback(*device, DEVCB_##_devcb); + devcb = &namco59xx_device::set_in_callback<2>(*device, DEVCB_##_devcb); #define MCFG_NAMCO59XX_IN_3_CB(_devcb) \ - devcb = &namco59xx_device::set_in_3_callback(*device, DEVCB_##_devcb); + devcb = &namco59xx_device::set_in_callback<3>(*device, DEVCB_##_devcb); #define MCFG_NAMCO59XX_OUT_0_CB(_devcb) \ - devcb = &namco59xx_device::set_out_0_callback(*device, DEVCB_##_devcb); + devcb = &namco59xx_device::set_out_callback<0>(*device, DEVCB_##_devcb); #define MCFG_NAMCO59XX_OUT_1_CB(_devcb) \ - devcb = &namco59xx_device::set_out_1_callback(*device, DEVCB_##_devcb); + devcb = &namco59xx_device::set_out_callback<1>(*device, DEVCB_##_devcb); -#endif /* __NAMCOIO_H__ */ +#endif // MAME_MACHINE_NAMCOIO_H diff --git a/src/mame/machine/namcoio_gearbox.cpp b/src/mame/machine/namcoio_gearbox.cpp index 6e4d8096a7c..94855c8ab42 100644 --- a/src/mame/machine/namcoio_gearbox.cpp +++ b/src/mame/machine/namcoio_gearbox.cpp @@ -33,7 +33,7 @@ //************************************************************************** // device type definition -const device_type NAMCOIO_GEARBOX = device_creator; +DEFINE_DEVICE_TYPE(NAMCOIO_GEARBOX, namcoio_gearbox_device, "namcoio_gearbox", "Namco I/O Gearbox") //************************************************************************** @@ -45,7 +45,7 @@ const device_type NAMCOIO_GEARBOX = device_creator; //------------------------------------------------- namcoio_gearbox_device::namcoio_gearbox_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, NAMCOIO_GEARBOX, "Namco I/O Gearbox", tag, owner, clock, "namcoio_gearbox", __FILE__) + : device_t(mconfig, NAMCOIO_GEARBOX, tag, owner, clock) { } diff --git a/src/mame/machine/namcoio_gearbox.h b/src/mame/machine/namcoio_gearbox.h index 5d80d09d8e4..d276a08c7a0 100644 --- a/src/mame/machine/namcoio_gearbox.h +++ b/src/mame/machine/namcoio_gearbox.h @@ -5,11 +5,11 @@ Namco 6-speed Gearbox device ***************************************************************************/ +#ifndef MAME_MACHINE_NAMCOIO_GEARBOX_H +#define MAME_MACHINE_NAMCOIO_GEARBOX_H #pragma once -#ifndef __NAMCOIO_GEARBOXDEV_H__ -#define __NAMCOIO_GEARBOXDEV_H__ @@ -47,7 +47,7 @@ protected: // device type definition -extern const device_type NAMCOIO_GEARBOX; +DECLARE_DEVICE_TYPE(NAMCOIO_GEARBOX, namcoio_gearbox_device) @@ -57,4 +57,4 @@ extern const device_type NAMCOIO_GEARBOX; -#endif +#endif // MAME_MACHINE_NAMCOIO_GEARBOX_H diff --git a/src/mame/machine/namcomcu.cpp b/src/mame/machine/namcomcu.cpp index b49e53a1b7b..eb23789f6cb 100644 --- a/src/mame/machine/namcomcu.cpp +++ b/src/mame/machine/namcomcu.cpp @@ -16,11 +16,11 @@ C76 System 11 #include "namcomcu.h" -const device_type NAMCO_C69 = device_creator; -const device_type NAMCO_C70 = device_creator; -const device_type NAMCO_C74 = device_creator; -const device_type NAMCO_C75 = device_creator; -const device_type NAMCO_C76 = device_creator; +DEFINE_DEVICE_TYPE(NAMCO_C69, namco_c69_device, "namcoc69", "Namco C69 (M37702)") +DEFINE_DEVICE_TYPE(NAMCO_C70, namco_c70_device, "namcoc70", "Namco C70 (M37702)") +DEFINE_DEVICE_TYPE(NAMCO_C74, namco_c74_device, "namcoc74", "Namco C74 (M37702)") +DEFINE_DEVICE_TYPE(NAMCO_C75, namco_c75_device, "namcoc75", "Namco C75 (M37702)") +DEFINE_DEVICE_TYPE(NAMCO_C76, namco_c76_device, "namcoc76", "Namco C76 (M37702)") ROM_START( c69 ) @@ -54,27 +54,27 @@ ROM_END namco_c69_device::namco_c69_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : m37702m2_device(mconfig, NAMCO_C69, "C69 (M37702)", tag, owner, clock, "namcoc69", __FILE__) + : m37702m2_device(mconfig, NAMCO_C69, tag, owner, clock) { } namco_c70_device::namco_c70_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : m37702m2_device(mconfig, NAMCO_C70, "C70 (M37702)", tag, owner, clock, "namcoc70", __FILE__) + : m37702m2_device(mconfig, NAMCO_C70, tag, owner, clock) { } namco_c74_device::namco_c74_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : m37702m2_device(mconfig, NAMCO_C74, "C74 (M37702)", tag, owner, clock, "namcoc74", __FILE__) + : m37702m2_device(mconfig, NAMCO_C74, tag, owner, clock) { } namco_c75_device::namco_c75_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : m37702m2_device(mconfig, NAMCO_C75, "C75 (M37702)", tag, owner, clock, "namcoc75", __FILE__) + : m37702m2_device(mconfig, NAMCO_C75, tag, owner, clock) { } namco_c76_device::namco_c76_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : m37702m2_device(mconfig, NAMCO_C76, "C76 (M37702)", tag, owner, clock, "namcoc76", __FILE__) + : m37702m2_device(mconfig, NAMCO_C76, tag, owner, clock) { } diff --git a/src/mame/machine/namcomcu.h b/src/mame/machine/namcomcu.h index 31ae1e5dc28..c7332e2faeb 100644 --- a/src/mame/machine/namcomcu.h +++ b/src/mame/machine/namcomcu.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Alex W. Jackson -#pragma once +#ifndef MAME_MACHINE_NAMCOMCU_H +#define MAME_MACHINE_NAMCOMCU_H -#ifndef __NAMCOMCU_H__ -#define __NAMCOMCU_H__ +#pragma once #include "cpu/m37710/m37710.h" @@ -53,11 +53,11 @@ protected: }; -extern const device_type NAMCO_C69; -extern const device_type NAMCO_C70; -extern const device_type NAMCO_C74; -extern const device_type NAMCO_C75; -extern const device_type NAMCO_C76; +DECLARE_DEVICE_TYPE(NAMCO_C69, namco_c69_device) +DECLARE_DEVICE_TYPE(NAMCO_C70, namco_c70_device) +DECLARE_DEVICE_TYPE(NAMCO_C74, namco_c74_device) +DECLARE_DEVICE_TYPE(NAMCO_C75, namco_c75_device) +DECLARE_DEVICE_TYPE(NAMCO_C76, namco_c76_device) -#endif +#endif // MAME_MACHINE_NAMCOMCU_H diff --git a/src/mame/machine/naomibd.cpp b/src/mame/machine/naomibd.cpp index 559ec53c9f7..90154b7de73 100644 --- a/src/mame/machine/naomibd.cpp +++ b/src/mame/machine/naomibd.cpp @@ -73,8 +73,8 @@ DEVICE_ADDRESS_MAP_START(submap, 16, naomi_board) AM_RANGE(0x00, 0xff) AM_READ(default_r) ADDRESS_MAP_END -naomi_board::naomi_board(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : naomi_g1_device(mconfig, type, name, tag, owner, clock, shortname, source) +naomi_board::naomi_board(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : naomi_g1_device(mconfig, type, tag, owner, clock) { eeprom_tag = nullptr; } diff --git a/src/mame/machine/naomibd.h b/src/mame/machine/naomibd.h index 6b087c66798..94e767bb4b8 100644 --- a/src/mame/machine/naomibd.h +++ b/src/mame/machine/naomibd.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Olivier Galibert -#ifndef _NAOMIBD_H_ -#define _NAOMIBD_H_ +#ifndef MAME_MACHINE_NAOMIBD_H +#define MAME_MACHINE_NAOMIBD_H + +#pragma once #include "machine/naomig1.h" #include "machine/x76f100.h" @@ -13,8 +15,6 @@ class naomi_board : public naomi_g1_device { public: - naomi_board(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - static void static_set_eeprom_tag(device_t &device, const char *_eeprom_tag); // Can be patched in the underlying class @@ -34,6 +34,8 @@ public: DECLARE_READ16_MEMBER( default_r); protected: + naomi_board(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; virtual void device_reset() override; @@ -58,4 +60,4 @@ private: x76f100_device *eeprom; }; -#endif +#endif // MAME_MACHINE_NAOMIBD_H diff --git a/src/mame/machine/naomig1.cpp b/src/mame/machine/naomig1.cpp index c96a1afc6fc..1b0d197b533 100644 --- a/src/mame/machine/naomig1.cpp +++ b/src/mame/machine/naomig1.cpp @@ -25,9 +25,9 @@ DEVICE_ADDRESS_MAP_START(amap, 32, naomi_g1_device) AM_RANGE(0xf8, 0xfb) AM_READ(sb_gdlend_r) ADDRESS_MAP_END -naomi_g1_device::naomi_g1_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), - irq_cb(*this) +naomi_g1_device::naomi_g1_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) + , irq_cb(*this) { } diff --git a/src/mame/machine/naomig1.h b/src/mame/machine/naomig1.h index c833bb114d3..0a4b6d066cc 100644 --- a/src/mame/machine/naomig1.h +++ b/src/mame/machine/naomig1.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Olivier Galibert -#ifndef _NAOMIG1_H_ -#define _NAOMIG1_H_ +#ifndef MAME_MACHINE_NAOMIG1_H +#define MAME_MACHINE_NAOMIG1_H + +#pragma once #include "cpu/sh4/sh4.h" @@ -18,9 +20,8 @@ public: typedef delegate dma_cb; - naomi_g1_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - template void set_irq_cb(_cb cb) { irq_cb.set_callback(cb); } - void set_dma_cb(dma_cb _cb) { _dma_cb = _cb; } + template void set_irq_cb(Object &&cb) { irq_cb.set_callback(std::forward(cb)); } + void set_dma_cb(dma_cb cb) { _dma_cb = cb; } DECLARE_ADDRESS_MAP(amap, 32); @@ -53,6 +54,8 @@ public: protected: enum { G1_TIMER_ID = 0x42 }; + naomi_g1_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; virtual void device_reset() override; virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; @@ -70,4 +73,4 @@ private: void dma(void *dma_ptr, uint32_t main_adr, uint32_t size, bool to_mainram); }; -#endif +#endif // MAME_MACHINE_NAOMIG1_H diff --git a/src/mame/machine/naomigd.cpp b/src/mame/machine/naomigd.cpp index 0f095c33365..2327e4def75 100644 --- a/src/mame/machine/naomigd.cpp +++ b/src/mame/machine/naomigd.cpp @@ -98,7 +98,7 @@ SH4 IO port A bits */ -const device_type NAOMI_GDROM_BOARD = device_creator; +DEFINE_DEVICE_TYPE(NAOMI_GDROM_BOARD, naomi_gdrom_board, "segadimm", "Sega DIMM Board") const uint32_t naomi_gdrom_board::DES_LEFTSWAP[] = { 0x00000000, 0x00000001, 0x00000100, 0x00000101, 0x00010000, 0x00010001, 0x00010100, 0x00010101, @@ -401,7 +401,7 @@ void naomi_gdrom_board::write_from_qword(uint8_t *region, uint64_t qword) } naomi_gdrom_board::naomi_gdrom_board(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : naomi_board(mconfig, NAOMI_GDROM_BOARD, "Sega DIMM Board", tag, owner, clock, "segadimm", __FILE__) + : naomi_board(mconfig, NAOMI_GDROM_BOARD, tag, owner, clock) { image_tag = nullptr; pic_tag = nullptr; diff --git a/src/mame/machine/naomigd.h b/src/mame/machine/naomigd.h index 33d2edd3adb..fb71f919195 100644 --- a/src/mame/machine/naomigd.h +++ b/src/mame/machine/naomigd.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Olivier Galibert -#ifndef _NAOMIGD_H_ -#define _NAOMIGD_H_ +#ifndef MAME_MACHINE_NAOMIGD_H +#define MAME_MACHINE_NAOMIGD_H + +#pragma once #include "machine/naomibd.h" @@ -63,5 +65,6 @@ private: }; extern const device_type NAOMI_GDROM_BOARD; +DECLARE_DEVICE_TYPE(NAOMI_GDROM_BOARD, naomi_gdrom_board) -#endif +#endif // MAME_MACHINE_NAOMIGD_H diff --git a/src/mame/machine/naomim1.cpp b/src/mame/machine/naomim1.cpp index 84412849767..760f6e8e020 100644 --- a/src/mame/machine/naomim1.cpp +++ b/src/mame/machine/naomim1.cpp @@ -4,7 +4,7 @@ #include "emu.h" #include "naomim1.h" -const device_type NAOMI_M1_BOARD = device_creator; +DEFINE_DEVICE_TYPE(NAOMI_M1_BOARD, naomi_m1_board, "naomi_m1_board", "Sega NAOMI M1 Board") DEVICE_ADDRESS_MAP_START(submap, 16, naomi_m1_board) AM_RANGE(0x0a, 0x0b) AM_READ(actel_id_r) @@ -13,8 +13,8 @@ DEVICE_ADDRESS_MAP_START(submap, 16, naomi_m1_board) ADDRESS_MAP_END naomi_m1_board::naomi_m1_board(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : naomi_board(mconfig, NAOMI_M1_BOARD, "Sega NAOMI M1 Board", tag, owner, clock, "naomi_m1_board", __FILE__), - m_region(*this, DEVICE_SELF) + : naomi_board(mconfig, NAOMI_M1_BOARD, tag, owner, clock) + , m_region(*this, DEVICE_SELF) { } diff --git a/src/mame/machine/naomim1.h b/src/mame/machine/naomim1.h index 9ce67ce3565..341e2b40372 100644 --- a/src/mame/machine/naomim1.h +++ b/src/mame/machine/naomim1.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Olivier Galibert -#ifndef _NAOMIM1_H_ -#define _NAOMIM1_H_ +#ifndef MAME_MACHINE_NAOMIM1_H +#define MAME_MACHINE_NAOMIM1_H + +#pragma once #include "naomibd.h" @@ -51,6 +53,6 @@ private: void wb(uint8_t byte); }; -extern const device_type NAOMI_M1_BOARD; +DECLARE_DEVICE_TYPE(NAOMI_M1_BOARD, naomi_m1_board) -#endif +#endif // MAME_MACHINE_NAOMIM1_H diff --git a/src/mame/machine/naomim2.cpp b/src/mame/machine/naomim2.cpp index a2d089e6e9b..e6d1e1198f2 100644 --- a/src/mame/machine/naomim2.cpp +++ b/src/mame/machine/naomim2.cpp @@ -109,12 +109,12 @@ note: if ROM is not mounted its area readed as 0xFF ********************************************************************************************************/ -const device_type NAOMI_M2_BOARD = device_creator; +DEFINE_DEVICE_TYPE(NAOMI_M2_BOARD, naomi_m2_board, "naomi_m2_board", "Sega NAOMI M2 Board") naomi_m2_board::naomi_m2_board(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : naomi_board(mconfig, NAOMI_M2_BOARD, "Sega NAOMI M2 Board", tag, owner, clock, "naomi_m2_board", __FILE__), - m_cryptdevice(*this, "segam2crypt"), - m_region(*this, DEVICE_SELF) + : naomi_board(mconfig, NAOMI_M2_BOARD, tag, owner, clock) + , m_cryptdevice(*this, "segam2crypt") + , m_region(*this, DEVICE_SELF) { } diff --git a/src/mame/machine/naomim2.h b/src/mame/machine/naomim2.h index c51de4e90a6..3f916ad947e 100644 --- a/src/mame/machine/naomim2.h +++ b/src/mame/machine/naomim2.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Olivier Galibert -#ifndef _NAOMIM2_H_ -#define _NAOMIM2_H_ +#ifndef MAME_MACHINE_NAOMIM2_H +#define MAME_MACHINE_NAOMIM2_H + +#pragma once #include "naomibd.h" #include "315-5881_crypt.h" @@ -35,6 +37,6 @@ private: required_memory_region m_region; }; -extern const device_type NAOMI_M2_BOARD; +DECLARE_DEVICE_TYPE(NAOMI_M2_BOARD, naomi_m2_board) -#endif +#endif // MAME_MACHINE_NAOMIM2_H diff --git a/src/mame/machine/naomim4.cpp b/src/mame/machine/naomim4.cpp index 12077a6f579..bbf567b8b1b 100644 --- a/src/mame/machine/naomim4.cpp +++ b/src/mame/machine/naomim4.cpp @@ -21,7 +21,7 @@ // the algorithm is a 32-bits key stored in the PIC16C621A. The hardware auto-reset the feed value // to the cart-based IV every 16 blocks (32 bytes); that reset is not address-based, but index-based. -const device_type NAOMI_M4_BOARD = device_creator; +DEFINE_DEVICE_TYPE(NAOMI_M4_BOARD, naomi_m4_board, "naomi_m4_board", "Sega NAOMI M4 Board") const uint8_t naomi_m4_board::k_sboxes[4][16] = { {9,8,2,11,1,14,5,15,12,6,0,3,7,13,10,4}, @@ -47,7 +47,7 @@ DEVICE_ADDRESS_MAP_START(submap, 16, naomi_m4_board) ADDRESS_MAP_END naomi_m4_board::naomi_m4_board(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : naomi_board(mconfig, NAOMI_M4_BOARD, "Sega NAOMI M4 Board", tag, owner, clock, "naomi_m4_board", __FILE__) + : naomi_board(mconfig, NAOMI_M4_BOARD, tag, owner, clock) , m_region(*this, DEVICE_SELF) , m_key_data(*this, finder_base::DUMMY_TAG) { diff --git a/src/mame/machine/naomim4.h b/src/mame/machine/naomim4.h index 7fb81fa333d..4fb778fd769 100644 --- a/src/mame/machine/naomim4.h +++ b/src/mame/machine/naomim4.h @@ -1,7 +1,7 @@ // license:BSD-3-Clause // copyright-holders:Olivier Galibert,Andreas Naive -#ifndef _NAOMIM4_H_ -#define _NAOMIM4_H_ +#ifndef MAME_MACHINE_NAOMIM4_H +#define MAME_MACHINE_NAOMIM4_H #include "naomibd.h" @@ -52,6 +52,6 @@ private: uint16_t decrypt_one_round(uint16_t word, uint16_t subkey); }; -extern const device_type NAOMI_M4_BOARD; +DECLARE_DEVICE_TYPE(NAOMI_M4_BOARD, naomi_m4_board) -#endif +#endif // MAME_MACHINE_NAOMIM4_H diff --git a/src/mame/machine/naomirom.cpp b/src/mame/machine/naomirom.cpp index 62f53eb4eb7..ddb8bcc4c7f 100644 --- a/src/mame/machine/naomirom.cpp +++ b/src/mame/machine/naomirom.cpp @@ -3,11 +3,11 @@ #include "emu.h" #include "naomirom.h" -const device_type NAOMI_ROM_BOARD = device_creator; +DEFINE_DEVICE_TYPE(NAOMI_ROM_BOARD, naomi_rom_board, "naomi_rom_board", "Sega NAOMI ROM Board") naomi_rom_board::naomi_rom_board(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : naomi_board(mconfig, NAOMI_ROM_BOARD, "Sega NAOMI ROM Board", tag, owner, clock, "naomi_rom_board", __FILE__), - m_region(*this, DEVICE_SELF) + : naomi_board(mconfig, NAOMI_ROM_BOARD, tag, owner, clock) + , m_region(*this, DEVICE_SELF) { } diff --git a/src/mame/machine/naomirom.h b/src/mame/machine/naomirom.h index a1261b35717..fc23b604058 100644 --- a/src/mame/machine/naomirom.h +++ b/src/mame/machine/naomirom.h @@ -1,7 +1,7 @@ // license:BSD-3-Clause // copyright-holders:Olivier Galibert -#ifndef _NAOMIROM_H_ -#define _NAOMIROM_H_ +#ifndef MAME_MACHINE_NAOMIROM_H +#define MAME_MACHINE_NAOMIROM_H #include "naomibd.h" @@ -26,6 +26,6 @@ private: required_memory_region m_region; }; -extern const device_type NAOMI_ROM_BOARD; +DECLARE_DEVICE_TYPE(NAOMI_ROM_BOARD, naomi_rom_board) -#endif +#endif // MAME_MACHINE_NAOMIROM_H diff --git a/src/mame/machine/nb1413m3.cpp b/src/mame/machine/nb1413m3.cpp index 7ce1d1f7010..0092777d760 100644 --- a/src/mame/machine/nb1413m3.cpp +++ b/src/mame/machine/nb1413m3.cpp @@ -13,18 +13,19 @@ Memo: ******************************************************************************/ #include "emu.h" -#include "cpu/z80/z80.h" #include "includes/nb1413m3.h" +#include "cpu/z80/z80.h" + #define NB1413M3_DEBUG 0 #define NB1413M3_TIMER_BASE 20000000 -const device_type NB1413M3 = device_creator; +DEFINE_DEVICE_TYPE(NB1413M3, nb1413m3_device, "nb1413m3", "NB1413 Mahjong Custom") nb1413m3_device::nb1413m3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, NB1413M3, "NB1413M3 Mahjong Custom", tag, owner, clock, "nb1413m3", __FILE__), + : device_t(mconfig, NB1413M3, tag, owner, clock), m_sndromrgntag("voice"), m_sndrombank1(0), m_sndrombank2(0), diff --git a/src/mame/machine/nb1414m4.cpp b/src/mame/machine/nb1414m4.cpp index c7e4cfe98b2..ce48c057bba 100644 --- a/src/mame/machine/nb1414m4.cpp +++ b/src/mame/machine/nb1414m4.cpp @@ -31,10 +31,10 @@ Notes: #include "includes/nb1414m4.h" #include "screen.h" -const device_type NB1414M4 = device_creator; +DEFINE_DEVICE_TYPE(NB1414M4, nb1414m4_device, "nb1414m4", "NB1414M4 Mahjong Custom") nb1414m4_device::nb1414m4_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, NB1414M4, "NB1414M4 Mahjong Custom", tag, owner, clock, "nb1414m4", __FILE__) + : device_t(mconfig, NB1414M4, tag, owner, clock) , device_video_interface(mconfig, *this) , m_data(*this, DEVICE_SELF) { diff --git a/src/mame/machine/nes.cpp b/src/mame/machine/nes.cpp index 97f6070c020..9c3c3e5c728 100644 --- a/src/mame/machine/nes.cpp +++ b/src/mame/machine/nes.cpp @@ -67,9 +67,9 @@ void nes_state::machine_start() m_ppu->space(AS_PROGRAM).install_readwrite_handler(0, 0x1fff, read8_delegate(FUNC(device_nes_cart_interface::chr_r),m_cartslot->m_cart), write8_delegate(FUNC(device_nes_cart_interface::chr_w),m_cartslot->m_cart)); m_ppu->space(AS_PROGRAM).install_readwrite_handler(0x2000, 0x3eff, read8_delegate(FUNC(device_nes_cart_interface::nt_r),m_cartslot->m_cart), write8_delegate(FUNC(device_nes_cart_interface::nt_w),m_cartslot->m_cart)); - m_ppu->set_scanline_callback(ppu2c0x_scanline_delegate(FUNC(device_nes_cart_interface::scanline_irq),m_cartslot->m_cart)); - m_ppu->set_hblank_callback(ppu2c0x_hblank_delegate(FUNC(device_nes_cart_interface::hblank_irq),m_cartslot->m_cart)); - m_ppu->set_latch(ppu2c0x_latch_delegate(FUNC(device_nes_cart_interface::ppu_latch),m_cartslot->m_cart)); + m_ppu->set_scanline_callback(ppu2c0x_device::scanline_delegate(FUNC(device_nes_cart_interface::scanline_irq),m_cartslot->m_cart)); + m_ppu->set_hblank_callback(ppu2c0x_device::hblank_delegate(FUNC(device_nes_cart_interface::hblank_irq),m_cartslot->m_cart)); + m_ppu->set_latch(ppu2c0x_device::latch_delegate(FUNC(device_nes_cart_interface::ppu_latch),m_cartslot->m_cart)); // install additional handlers (read_h, read_ex, write_ex) if (m_cartslot->get_pcb_id() == STD_EXROM || m_cartslot->get_pcb_id() == STD_NROM368 || m_cartslot->get_pcb_id() == STD_DISKSYS diff --git a/src/mame/machine/nextkbd.cpp b/src/mame/machine/nextkbd.cpp index 2f696f58cc3..d102775d480 100644 --- a/src/mame/machine/nextkbd.cpp +++ b/src/mame/machine/nextkbd.cpp @@ -4,7 +4,7 @@ #include "emu.h" #include "nextkbd.h" -const device_type NEXTKBD = device_creator; +DEFINE_DEVICE_TYPE(NEXTKBD, nextkbd_device, "nextkbd", "NeXT Keyboard") DEVICE_ADDRESS_MAP_START(amap, 32, nextkbd_device) AM_RANGE(0x0, 0x3) AM_READWRITE8(status_snd_r, ctrl_snd_w, 0xff000000) @@ -16,7 +16,7 @@ DEVICE_ADDRESS_MAP_START(amap, 32, nextkbd_device) ADDRESS_MAP_END nextkbd_device::nextkbd_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, NEXTKBD, "NEXTKBD", tag, owner, clock, "nextkbd", __FILE__), + device_t(mconfig, NEXTKBD, tag, owner, clock), int_change_cb(*this), int_power_cb(*this), int_nmi_cb(*this), diff --git a/src/mame/machine/nextkbd.h b/src/mame/machine/nextkbd.h index 41b183a12ec..e0382354b27 100644 --- a/src/mame/machine/nextkbd.h +++ b/src/mame/machine/nextkbd.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Olivier Galibert -#ifndef __NEXTKBD_H__ -#define __NEXTKBD_H__ +#ifndef MAME_MACHINE_NEXTKBD_H +#define MAME_MACHINE_NEXTKBD_H + +#pragma once #define MCFG_NEXTKBD_INT_CHANGE_CALLBACK(_write) \ @@ -17,9 +19,9 @@ class nextkbd_device : public device_t { public: nextkbd_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_int_change_wr_callback(device_t &device, _Object object) { return downcast(device).int_change_cb.set_callback(object); } - template static devcb_base &set_int_power_wr_callback(device_t &device, _Object object) { return downcast(device).int_power_cb.set_callback(object); } - template static devcb_base &set_int_nmi_wr_callback(device_t &device, _Object object) { return downcast(device).int_nmi_cb.set_callback(object); } + template static devcb_base &set_int_change_wr_callback(device_t &device, Object &&cb) { return downcast(device).int_change_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_int_power_wr_callback(device_t &device, Object &&cb) { return downcast(device).int_power_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_int_nmi_wr_callback(device_t &device, Object &&cb) { return downcast(device).int_nmi_cb.set_callback(std::forward(cb)); } DECLARE_ADDRESS_MAP(amap, 32); @@ -113,6 +115,6 @@ private: void handle_command(); }; -extern const device_type NEXTKBD; +DECLARE_DEVICE_TYPE(NEXTKBD, nextkbd_device) -#endif +#endif // MAME_MACHINE_NEXTKBD_H diff --git a/src/mame/machine/nextmo.cpp b/src/mame/machine/nextmo.cpp index 2df3346f762..d1633f37790 100644 --- a/src/mame/machine/nextmo.cpp +++ b/src/mame/machine/nextmo.cpp @@ -4,7 +4,7 @@ #include "emu.h" #include "nextmo.h" -const device_type NEXTMO = device_creator; +DEFINE_DEVICE_TYPE(NEXTMO, nextmo_device, "nextmo", "NeXT Magneto-optical drive") DEVICE_ADDRESS_MAP_START(map, 8, nextmo_device) AM_RANGE(0x04, 0x04) AM_READWRITE(r4_r, r4_w) @@ -19,7 +19,7 @@ DEVICE_ADDRESS_MAP_START(map, 8, nextmo_device) ADDRESS_MAP_END nextmo_device::nextmo_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, NEXTMO, "NeXT Magneto-optical drive", tag, owner, clock, "nextmo", __FILE__), + device_t(mconfig, NEXTMO, tag, owner, clock), r4(0), irq_cb(*this), drq_cb(*this) diff --git a/src/mame/machine/nextmo.h b/src/mame/machine/nextmo.h index 31b4627e74e..741f9d3e16d 100644 --- a/src/mame/machine/nextmo.h +++ b/src/mame/machine/nextmo.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Olivier Galibert -#ifndef NEXTMO_H -#define NEXTMO_H +#ifndef MAME_MACHINE_NEXTMO_H +#define MAME_MACHINE_NEXTMO_H + +#pragma once #define MCFG_NEXTMO_IRQ_CALLBACK(_write) \ devcb = &nextmo_device::set_irq_wr_callback(*device, DEVCB_##_write); @@ -14,8 +16,8 @@ class nextmo_device : public device_t public: nextmo_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_irq_wr_callback(device_t &device, _Object object) { return downcast(device).irq_cb.set_callback(object); } - template static devcb_base &set_drq_wr_callback(device_t &device, _Object object) { return downcast(device).drq_cb.set_callback(object); } + template static devcb_base &set_irq_wr_callback(device_t &device, Object &&cb) { return downcast(device).irq_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_drq_wr_callback(device_t &device, Object &&cb) { return downcast(device).drq_cb.set_callback(std::forward(cb)); } DECLARE_ADDRESS_MAP(map, 32); @@ -58,4 +60,4 @@ private: extern const device_type NEXTMO; -#endif +#endif // MAME_MACHINE_NEXTMO_H diff --git a/src/mame/machine/ng_memcard.cpp b/src/mame/machine/ng_memcard.cpp index ca15f3b9d19..9c1fc7ff7e1 100644 --- a/src/mame/machine/ng_memcard.cpp +++ b/src/mame/machine/ng_memcard.cpp @@ -10,18 +10,20 @@ #include "emu.h" #include "emuopts.h" + #include "ng_memcard.h" + // device type definition -const device_type NG_MEMCARD = device_creator; +DEFINE_DEVICE_TYPE(NG_MEMCARD, ng_memcard_device, "ng_memcard", "NeoGeo Memory Card") //------------------------------------------------- // ng_memcard_device - constructor //------------------------------------------------- ng_memcard_device::ng_memcard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, NG_MEMCARD, "NeoGeo Memory Card", tag, owner, clock, "ng_memcard", __FILE__), - device_image_interface(mconfig, *this) + : device_t(mconfig, NG_MEMCARD, tag, owner, clock) + , device_image_interface(mconfig, *this) { } diff --git a/src/mame/machine/ng_memcard.h b/src/mame/machine/ng_memcard.h index 2e3af83e0a9..9fcb73ea0b4 100644 --- a/src/mame/machine/ng_memcard.h +++ b/src/mame/machine/ng_memcard.h @@ -7,11 +7,11 @@ NEOGEO Memory card functions. *********************************************************************/ +#ifndef MAME_MACHINE_NG_MEMCARD_H +#define MAME_MACHINE_NG_MEMCARD_H #pragma once -#ifndef __NG_MEMCARD_H__ -#define __NG_MEMCARD_H__ //************************************************************************** // INTERFACE CONFIGURATION MACROS @@ -60,7 +60,7 @@ private: // device type definition -extern const device_type NG_MEMCARD; +DECLARE_DEVICE_TYPE(NG_MEMCARD, ng_memcard_device) -#endif /* __NG_MEMCARD_H__ */ +#endif // MAME_MACHINE_NG_MEMCARD_H diff --git a/src/mame/machine/ngen_kb.cpp b/src/mame/machine/ngen_kb.cpp index 1fa1f79732d..7d418649fba 100644 --- a/src/mame/machine/ngen_kb.cpp +++ b/src/mame/machine/ngen_kb.cpp @@ -12,7 +12,7 @@ #include "ngen_kb.h" ngen_keyboard_device::ngen_keyboard_device(const machine_config& mconfig, const char* tag, device_t* owner, uint32_t clock) - : serial_keyboard_device(mconfig, NGEN_KEYBOARD, "NGEN Keyboard", tag, owner, 0, "ngen_keyboard", __FILE__) + : serial_keyboard_device(mconfig, NGEN_KEYBOARD, tag, owner, 0) , m_keys_down(0U) , m_last_reset(0U) { @@ -106,4 +106,4 @@ void ngen_keyboard_device::key_break(uint8_t row, uint8_t column) } } -const device_type NGEN_KEYBOARD = device_creator; +DEFINE_DEVICE_TYPE(NGEN_KEYBOARD, ngen_keyboard_device, "ngen_kb", "NGEN Keyboard") diff --git a/src/mame/machine/ngen_kb.h b/src/mame/machine/ngen_kb.h index f2a9f8923ab..37589926303 100644 --- a/src/mame/machine/ngen_kb.h +++ b/src/mame/machine/ngen_kb.h @@ -5,6 +5,8 @@ #ifndef MAME_MACHINE_NGEN_KB_H #define MAME_MACHINE_NGEN_KB_H +#pragma once + #include "bus/rs232/keyboard.h" class ngen_keyboard_device : public serial_keyboard_device @@ -27,6 +29,6 @@ private: uint8_t m_last_reset; }; -extern const device_type NGEN_KEYBOARD; +DECLARE_DEVICE_TYPE(NGEN_KEYBOARD, ngen_keyboard_device) #endif // MAME_MACHINE_NGEN_KB_H diff --git a/src/mame/machine/nmk004.cpp b/src/mame/machine/nmk004.cpp index d8e117b6f25..84199d34ef1 100644 --- a/src/mame/machine/nmk004.cpp +++ b/src/mame/machine/nmk004.cpp @@ -9,6 +9,10 @@ #include "emu.h" #include "nmk004.h" +#include "sound/2203intf.h" +#include "sound/okim6295.h" + + WRITE8_MEMBER( nmk004_device::write ) { machine().scheduler().synchronize(); @@ -26,7 +30,7 @@ WRITE8_MEMBER(nmk004_device::nmk004_port4_w) // bit 0x08 toggles frequently but is connected to nothing? // bit 0x01 is set to reset the 68k - m_systemcpu->set_input_line(INPUT_LINE_RESET, (data & 1) ? ASSERT_LINE : CLEAR_LINE); + m_reset_cb(BIT(data, 0) ? ASSERT_LINE : CLEAR_LINE); } WRITE8_MEMBER(nmk004_device::nmk004_oki0_bankswitch_w) @@ -90,12 +94,12 @@ ROM_START( nmk004 ) ROM_END -const device_type NMK004 = device_creator; +DEFINE_DEVICE_TYPE(NMK004, nmk004_device, "nmk004", "NMK004") nmk004_device::nmk004_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, NMK004, "NMK004", tag, owner, clock, "nmk004", __FILE__), + : device_t(mconfig, NMK004, tag, owner, clock), m_cpu(*this, "mcu"), - m_systemcpu(*this, ":maincpu"), + m_reset_cb(*this), to_nmk004(0xff), to_main(0xff) { @@ -107,6 +111,8 @@ nmk004_device::nmk004_device(const machine_config &mconfig, const char *tag, dev //------------------------------------------------- void nmk004_device::device_start() { + m_reset_cb.resolve_safe(); + membank(":okibank1")->configure_entries(0, 4, memregion(":oki1")->base() + 0x20000, 0x20000); membank(":okibank2")->configure_entries(0, 4, memregion(":oki2")->base() + 0x20000, 0x20000); } diff --git a/src/mame/machine/nmk004.h b/src/mame/machine/nmk004.h index 2851d4a6056..273d539447d 100644 --- a/src/mame/machine/nmk004.h +++ b/src/mame/machine/nmk004.h @@ -6,25 +6,33 @@ ***************************************************************************/ -#ifndef NMK004_H -#define NMK004_H +#ifndef MAME_MACHINE_NMK004_H +#define MAME_MACHINE_NMK004_H #include "cpu/tlcs90/tlcs90.h" -#include "sound/2203intf.h" -#include "sound/okim6295.h" -#define MCFG_NMK004_ADD(_tag, _clock) \ - MCFG_DEVICE_ADD(_tag, NMK004, _clock) +#pragma once -/* device get info callback */ +#define MCFG_NMK004_ADD(tag, clock) \ + MCFG_DEVICE_ADD(tag, NMK004, clock) + +#define MCFG_NMK004_RESET_CB(cb) \ + nmk004_device::set_reset_cb(*device, DEVCB_##cb); + class nmk004_device : public device_t { public: + template static devcb_base &set_reset_cb(device_t &device, Obj &&object) + { return downcast(device).m_reset_cb.set_callback(std::forward(object)); } + nmk004_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - WRITE8_MEMBER( write ); - READ8_MEMBER( read ); + // host interface + DECLARE_WRITE8_MEMBER( write ); + DECLARE_READ8_MEMBER( read ); + DECLARE_WRITE_LINE_MEMBER( nmi_w ) { m_cpu->set_input_line(INPUT_LINE_NMI, state); } + DECLARE_WRITE8_MEMBER(nmk004_port4_w); DECLARE_WRITE8_MEMBER(nmk004_oki0_bankswitch_w); @@ -32,7 +40,6 @@ public: DECLARE_READ8_MEMBER(nmk004_tonmk004_r); DECLARE_WRITE8_MEMBER(nmk004_tomain_w); void ym2203_irq_handler(int irq); - required_device m_cpu; protected: // device-level overrides @@ -40,15 +47,15 @@ protected: virtual const tiny_rom_entry *device_rom_region() const override; virtual machine_config_constructor device_mconfig_additions() const override; - private: // internal state - required_device m_systemcpu; + required_device m_cpu; + devcb_write_line m_reset_cb; + uint8_t to_nmk004; uint8_t to_main; - }; -extern const device_type NMK004; +DECLARE_DEVICE_TYPE(NMK004, nmk004_device) -#endif /* NMK004_H */ +#endif // MAME_MACHINE_NMK004_H diff --git a/src/mame/machine/nmk112.cpp b/src/mame/machine/nmk112.cpp index 1f1d7157af4..e4cbe57ccca 100644 --- a/src/mame/machine/nmk112.cpp +++ b/src/mame/machine/nmk112.cpp @@ -17,10 +17,10 @@ -const device_type NMK112 = device_creator; +DEFINE_DEVICE_TYPE(NMK112, nmk112_device, "nmk112", "NMK112") nmk112_device::nmk112_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, NMK112, "NMK112", tag, owner, clock, "nmk112", __FILE__), + : device_t(mconfig, NMK112, tag, owner, clock), m_page_mask(0xff), m_tag0(nullptr), m_tag1(nullptr), diff --git a/src/mame/machine/nmk112.h b/src/mame/machine/nmk112.h index 31724490a7a..ac722031c55 100644 --- a/src/mame/machine/nmk112.h +++ b/src/mame/machine/nmk112.h @@ -6,8 +6,10 @@ **************************************************************************/ -#ifndef __NMK112_H__ -#define __NMK112_H__ +#ifndef MAME_MACHINE_NMK112_H +#define MAME_MACHINE_NMK112_H + +#pragma once /*************************************************************************** TYPE DEFINITIONS @@ -17,7 +19,6 @@ class nmk112_device : public device_t { public: nmk112_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~nmk112_device() {} // static configuration static void set_rom0_tag(device_t &device, const char *tag) { downcast(device).m_tag0 = tag; } @@ -47,7 +48,7 @@ private: int m_size0, m_size1; }; -extern const device_type NMK112; +DECLARE_DEVICE_TYPE(NMK112, nmk112_device) /*************************************************************************** @@ -64,4 +65,4 @@ extern const device_type NMK112; nmk112_device::set_page_mask(*device, _mask); -#endif /* __NMK112_H__ */ +#endif // MAME_MACHINE_NMK112_H diff --git a/src/mame/machine/ns10crypt.cpp b/src/mame/machine/ns10crypt.cpp index bcfcf7847e3..f15c5044f75 100644 --- a/src/mame/machine/ns10crypt.cpp +++ b/src/mame/machine/ns10crypt.cpp @@ -118,19 +118,19 @@ really exist. #include "emu.h" #include "ns10crypt.h" -const device_type CHOCOVDR_DECRYPTER = device_creator; -const device_type GAMSHARA_DECRYPTER = device_creator; -const device_type GJSPACE_DECRYPTER = device_creator; -const device_type KNPUZZLE_DECRYPTER = device_creator; -const device_type KONOTAKO_DECRYPTER = device_creator; -const device_type MRDRILR2_DECRYPTER = device_creator; -const device_type NFLCLSFB_DECRYPTER = device_creator; -const device_type STARTRGN_DECRYPTER = device_creator; +DEFINE_DEVICE_TYPE(CHOCOVDR_DECRYPTER, chocovdr_decrypter_device, "chocovdr_decrypter", "Chocovader Contactee decrypter") +DEFINE_DEVICE_TYPE(GAMSHARA_DECRYPTER, gamshara_decrypter_device, "gamshara_decrypter", "Gamshara decrypter") +DEFINE_DEVICE_TYPE(GJSPACE_DECRYPTER, gjspace_decrypter_device, "gjspace_decrypter", "Gekitorider-Jong Space decrypter") +DEFINE_DEVICE_TYPE(KNPUZZLE_DECRYPTER, knpuzzle_decrypter_device, "knpuzzle_decrypter", "Kotoba no Puzzle Mojipittan decrypter") +DEFINE_DEVICE_TYPE(KONOTAKO_DECRYPTER, konotako_decrypter_device, "konotako_decrypter", "Kono Tako decrypter") +DEFINE_DEVICE_TYPE(MRDRILR2_DECRYPTER, mrdrilr2_decrypter_device, "mrdrilr2_decrypter", "Mr Driller 2 decrypter") +DEFINE_DEVICE_TYPE(NFLCLSFB_DECRYPTER, nflclsfb_decrypter_device, "nflclsfg_decrypter", "NFL Classic Football decrypter") +DEFINE_DEVICE_TYPE(STARTRGN_DECRYPTER, startrgn_decrypter_device, "startrgn_decrypter", "Star Trigon decrypter") // base class -ns10_decrypter_device::ns10_decrypter_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, __FILE__) +ns10_decrypter_device::ns10_decrypter_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) { _active = false; } @@ -163,8 +163,8 @@ constexpr int U {UNKNOWN}; // this could perfectly be part of the per-game logic but, with only one known type-1 game, we cannot say anything definitive const int ns10_type1_decrypter_device::initSbox[16] {U,U,U,0,4,9,U,U,U,8,U,1,U,9,U,5}; -ns10_type1_decrypter_device::ns10_type1_decrypter_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : ns10_decrypter_device(mconfig, type, name, tag, owner, clock, shortname, source) +ns10_type1_decrypter_device::ns10_type1_decrypter_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : ns10_decrypter_device(mconfig, type, tag, owner, clock) { } @@ -213,8 +213,8 @@ void ns10_type1_decrypter_device::device_start() // this could perfectly be part of the per-game logic; by now, only gamshara seems to use it, so we keep it global const int ns10_type2_decrypter_device::initSbox[16] {0,12,13,6,2,4,9,8,11,1,7,15,10,5,14,3}; -ns10_type2_decrypter_device::ns10_type2_decrypter_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source, const ns10_type2_decrypter_device::ns10_crypto_logic &logic) - : ns10_decrypter_device(mconfig, type, name, tag, owner, clock, shortname, source) +ns10_type2_decrypter_device::ns10_type2_decrypter_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, const ns10_type2_decrypter_device::ns10_crypto_logic &logic) + : ns10_decrypter_device(mconfig, type, tag, owner, clock) , _logic(logic) { } @@ -257,7 +257,7 @@ void ns10_type2_decrypter_device::device_start() } -gf2_reducer::gf2_reducer() +ns10_type2_decrypter_device::gf2_reducer::gf2_reducer() { int reduction; @@ -274,7 +274,7 @@ gf2_reducer::gf2_reducer() } } -int gf2_reducer::gf2_reduce(uint64_t num)const +int ns10_type2_decrypter_device::gf2_reducer::gf2_reduce(uint64_t num)const { return _gf2Reduction[num & 0xffff] ^ @@ -298,13 +298,13 @@ int gf2_reducer::gf2_reduce(uint64_t num)const // & (reducer.gf2_reduce(0x0000a13140090000ull & previous_cipherwords) ^ reducer.gf2_reduce(0x0000806240090000ull & previous_plainwords))) << 2; // } -static uint16_t chocovdr_nonlinear_calc(uint64_t previous_cipherwords, uint64_t previous_plainwords, const gf2_reducer& reducer) +uint16_t chocovdr_decrypter_device::nonlinear_calc(uint64_t previous_cipherwords, uint64_t previous_plainwords, const gf2_reducer& reducer) { uint64_t previous_masks = previous_cipherwords ^ previous_plainwords; return ((previous_masks >> 9) & (reducer.gf2_reduce(0x0000000010065810ull & previous_cipherwords) ^ reducer.gf2_reduce(0x0000000021005810ull & previous_plainwords)) & 1) << 10; } -static constexpr ns10_type2_decrypter_device::ns10_crypto_logic chocovdr_crypto_logic = { +const ns10_type2_decrypter_device::ns10_crypto_logic chocovdr_decrypter_device::crypto_logic = { { 0x00005239351ec1daull, 0x0000000000008090ull, 0x0000000048264808ull, 0x0000000000004820ull, 0x0000000000000500ull, 0x0000000058ff5a54ull, 0x00000000d8220208ull, 0x00005239351e91d3ull, @@ -317,16 +317,16 @@ static constexpr ns10_type2_decrypter_device::ns10_crypto_logic chocovdr_crypto_ 0x000000006800d3f5ull, 0x0000000000000058ull, 0x000000006800d2d5ull, 0x0000000000001840ull, }, 0x5b22, - chocovdr_nonlinear_calc + &nonlinear_calc }; -static uint16_t gamshara_nonlinear_calc(uint64_t previous_cipherwords, uint64_t previous_plainwords, const gf2_reducer&) +uint16_t gamshara_decrypter_device::nonlinear_calc(uint64_t previous_cipherwords, uint64_t previous_plainwords, const gf2_reducer&) { uint64_t previous_masks = previous_cipherwords ^ previous_plainwords; return ((previous_masks >> 7) & (previous_masks >> 13) & 1) << 2; } -static constexpr ns10_type2_decrypter_device::ns10_crypto_logic gamshara_crypto_logic = { +const ns10_type2_decrypter_device::ns10_crypto_logic gamshara_decrypter_device::crypto_logic = { { 0x0000000000000028ull, 0x0000cae83f389fd9ull, 0x0000000000001000ull, 0x0000000042823402ull, 0x0000cae8736a0592ull, 0x0000cae8736a8596ull, 0x000000008b4095b9ull, 0x0000000000002100ull, @@ -339,15 +339,15 @@ static constexpr ns10_type2_decrypter_device::ns10_crypto_logic gamshara_crypto_ 0x000000004400d1f1ull, 0x000000006001ce08ull, 0x00000000000000c8ull, 0x0000000054023002ull, }, 0x25ab, - gamshara_nonlinear_calc + &nonlinear_calc }; -static uint16_t gjspace_nonlinear_calc(uint64_t previous_cipherwords, uint64_t previous_plainwords, const gf2_reducer&) +uint16_t gjspace_decrypter_device::nonlinear_calc(uint64_t previous_cipherwords, uint64_t previous_plainwords, const gf2_reducer&) { return 0; } -static constexpr ns10_type2_decrypter_device::ns10_crypto_logic gjspace_crypto_logic = { +const ns10_type2_decrypter_device::ns10_crypto_logic gjspace_decrypter_device::crypto_logic = { { 0x0000000000000240ull, 0x0000d617eb0f1ab1ull, 0x00000000451111c0ull, 0x00000000013b1f44ull, 0x0000aab0b356abceull, 0x00007ca76b89602aull, 0x0000000000001800ull, 0x00000000031d1303ull, @@ -360,16 +360,16 @@ static constexpr ns10_type2_decrypter_device::ns10_crypto_logic gjspace_crypto_l 0x0000000000001101ull, 0x000000000000a002ull, 0x0000000029001740ull, 0x00000000a4309bfcull, }, 0x2e7f, - gjspace_nonlinear_calc + &nonlinear_calc }; -static uint16_t knpuzzle_nonlinear_calc(uint64_t previous_cipherwords, uint64_t previous_plainwords, const gf2_reducer& reducer) +uint16_t knpuzzle_decrypter_device::nonlinear_calc(uint64_t previous_cipherwords, uint64_t previous_plainwords, const gf2_reducer& reducer) { uint64_t previous_masks = previous_cipherwords ^ previous_plainwords; return ((previous_masks >> 0x13) & (reducer.gf2_reduce(0x0000000014001290ull & previous_cipherwords) ^ reducer.gf2_reduce(0x0000000000021290ull & previous_plainwords)) & 1) << 1; } -static constexpr ns10_type2_decrypter_device::ns10_crypto_logic knpuzzle_crypto_logic = { +const ns10_type2_decrypter_device::ns10_crypto_logic knpuzzle_decrypter_device::crypto_logic = { { 0x00000000c0a4208cull, 0x00000000204100a8ull, 0x000000000c0306a0ull, 0x000000000819e944ull, 0x0000000000001400ull, 0x0000000000000061ull, 0x000000000141401cull, 0x0000000000000020ull, @@ -382,16 +382,16 @@ static constexpr ns10_type2_decrypter_device::ns10_crypto_logic knpuzzle_crypto_ 0x00000000012a04a2ull, 0x00000000003984a4ull, 0x0000000000000700ull, 0x0000000000000882ull, }, 0x01e2, - knpuzzle_nonlinear_calc + &nonlinear_calc }; -static uint16_t konotako_nonlinear_calc(uint64_t previous_cipherwords, uint64_t previous_plainwords, const gf2_reducer&) +uint16_t konotako_decrypter_device::nonlinear_calc(uint64_t previous_cipherwords, uint64_t previous_plainwords, const gf2_reducer&) { uint64_t previous_masks = previous_cipherwords ^ previous_plainwords; return ((previous_masks >> 7) & (previous_masks >> 15) & 1) << 15; } -static constexpr ns10_type2_decrypter_device::ns10_crypto_logic konotako_crypto_logic = { +const ns10_type2_decrypter_device::ns10_crypto_logic konotako_decrypter_device::crypto_logic = { { 0x000000000000004cull, 0x00000000d39e3d3dull, 0x0000000000001110ull, 0x0000000000002200ull, 0x000000003680c008ull, 0x0000000000000281ull, 0x0000000000005002ull, 0x00002a7371895a47ull, @@ -404,16 +404,16 @@ static constexpr ns10_type2_decrypter_device::ns10_crypto_logic konotako_crypto_ 0x000000009000200bull, 0x0000000000000310ull, 0x0000000000001840ull, 0x0000000000000400ull, }, 0x0748, - konotako_nonlinear_calc + &nonlinear_calc }; -static uint16_t nflclsfb_nonlinear_calc(uint64_t previous_cipherwords, uint64_t previous_plainwords, const gf2_reducer& reducer) +uint16_t nflclsfb_decrypter_device::nonlinear_calc(uint64_t previous_cipherwords, uint64_t previous_plainwords, const gf2_reducer& reducer) { uint64_t previous_masks = previous_cipherwords ^ previous_plainwords; return ((previous_masks >> 1) & (reducer.gf2_reduce(0x0000000040de8fb3ull & previous_cipherwords) ^ reducer.gf2_reduce(0x0000000088008fb3ull & previous_plainwords)) & 1) << 2; } -static constexpr ns10_type2_decrypter_device::ns10_crypto_logic nflclsfb_crypto_logic = { +const ns10_type2_decrypter_device::ns10_crypto_logic nflclsfb_decrypter_device::crypto_logic = { { 0x000034886e281880ull, 0x0000000012c5e7baull, 0x0000000000000200ull, 0x000000002900002aull, 0x00000000000004c0ull, 0x0000000012c5e6baull, 0x00000000e0df8bbbull, 0x000000002011532aull, @@ -426,16 +426,16 @@ static constexpr ns10_type2_decrypter_device::ns10_crypto_logic nflclsfb_crypto_ 0x0000000000000404ull, 0x0000000000004201ull, 0x0000000000001100ull, 0x000000008c0057b2ull, }, 0xbe32, - nflclsfb_nonlinear_calc + &nonlinear_calc }; -static uint16_t startrgn_nonlinear_calc(uint64_t previous_cipherwords, uint64_t previous_plainwords, const gf2_reducer&) +uint16_t startrgn_decrypter_device::nonlinear_calc(uint64_t previous_cipherwords, uint64_t previous_plainwords, const gf2_reducer&) { uint64_t previous_masks = previous_cipherwords ^ previous_plainwords; return ((previous_masks >> 12) & (previous_masks >> 14) & 1) << 4; } -static constexpr ns10_type2_decrypter_device::ns10_crypto_logic startrgn_crypto_logic = { +const ns10_type2_decrypter_device::ns10_crypto_logic startrgn_decrypter_device::crypto_logic = { { 0x00003e4bfe92c6a9ull, 0x000000000000010cull, 0x00003e4b7bd6c4aaull, 0x0000b1a904b8fab8ull, 0x0000000000000080ull, 0x0000000000008c00ull, 0x0000b1a9b2f0b4cdull, 0x000000006c100828ull, @@ -448,48 +448,48 @@ static constexpr ns10_type2_decrypter_device::ns10_crypto_logic startrgn_crypto_ 0x0000000000000428ull, 0x0000000000001001ull, 0x000012020b10ceabull, 0x0000000000000144ull, }, 0x8c46, - startrgn_nonlinear_calc + &nonlinear_calc }; // game-specific devices mrdrilr2_decrypter_device::mrdrilr2_decrypter_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : ns10_type1_decrypter_device(mconfig, MRDRILR2_DECRYPTER, "Mr Driller 2 decrypter", tag, owner, clock, "mrdrilr2_decrypter", __FILE__) + : ns10_type1_decrypter_device(mconfig, MRDRILR2_DECRYPTER, tag, owner, clock) { } chocovdr_decrypter_device::chocovdr_decrypter_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : ns10_type2_decrypter_device(mconfig, CHOCOVDR_DECRYPTER, "Chocovader Contactee decrypter", tag, owner, clock, "chocovdr_decrypter", __FILE__, chocovdr_crypto_logic) + : ns10_type2_decrypter_device(mconfig, CHOCOVDR_DECRYPTER, tag, owner, clock, crypto_logic) { } gamshara_decrypter_device::gamshara_decrypter_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : ns10_type2_decrypter_device(mconfig, GAMSHARA_DECRYPTER, "Gamshara decrypter", tag, owner, clock, "gamshara_decrypter", __FILE__, gamshara_crypto_logic) + : ns10_type2_decrypter_device(mconfig, GAMSHARA_DECRYPTER, tag, owner, clock, crypto_logic) { } gjspace_decrypter_device::gjspace_decrypter_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : ns10_type2_decrypter_device(mconfig, GJSPACE_DECRYPTER, "Gekitoride-Jong Space decrypter", tag, owner, clock, "gjspace_decrypter", __FILE__, gjspace_crypto_logic) + : ns10_type2_decrypter_device(mconfig, GJSPACE_DECRYPTER, tag, owner, clock, crypto_logic) { } knpuzzle_decrypter_device::knpuzzle_decrypter_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : ns10_type2_decrypter_device(mconfig, KNPUZZLE_DECRYPTER, "Kotoba no Puzzle Mojipittan decrypter", tag, owner, clock, "knpuzzle_decrypter", __FILE__, knpuzzle_crypto_logic) + : ns10_type2_decrypter_device(mconfig, KNPUZZLE_DECRYPTER, tag, owner, clock, crypto_logic) { } konotako_decrypter_device::konotako_decrypter_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : ns10_type2_decrypter_device(mconfig, KONOTAKO_DECRYPTER, "Kono Tako decrypter", tag, owner, clock, "konotako_decrypter", __FILE__, konotako_crypto_logic) + : ns10_type2_decrypter_device(mconfig, KONOTAKO_DECRYPTER, tag, owner, clock, crypto_logic) { } nflclsfb_decrypter_device::nflclsfb_decrypter_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : ns10_type2_decrypter_device(mconfig, NFLCLSFB_DECRYPTER, "NFL Classic Football decrypter", tag, owner, clock, "nflclsfb_decrypter", __FILE__, nflclsfb_crypto_logic) + : ns10_type2_decrypter_device(mconfig, NFLCLSFB_DECRYPTER, tag, owner, clock, crypto_logic) { } startrgn_decrypter_device::startrgn_decrypter_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : ns10_type2_decrypter_device(mconfig, STARTRGN_DECRYPTER, "Star Trigon decrypter", tag, owner, clock, "startrgn_decrypter", __FILE__, startrgn_crypto_logic) + : ns10_type2_decrypter_device(mconfig, STARTRGN_DECRYPTER, tag, owner, clock, crypto_logic) { } diff --git a/src/mame/machine/ns10crypt.h b/src/mame/machine/ns10crypt.h index ac2926ae464..960342f682b 100644 --- a/src/mame/machine/ns10crypt.h +++ b/src/mame/machine/ns10crypt.h @@ -1,21 +1,11 @@ // license:BSD-3-Clause // copyright-holders:Andreas Naive -#ifndef _NS10CRYPT_H_ -#define _NS10CRYPT_H_ +#ifndef MAME_MACHINE_NS10CRYPT_H +#define MAME_MACHINE_NS10CRYPT_H #include -class gf2_reducer // helper class -{ -public: - gf2_reducer(); - int gf2_reduce(uint64_t num)const; -private: - int _gf2Reduction[0x10000]; -}; - - class ns10_decrypter_device : public device_t { public: @@ -27,7 +17,7 @@ public: virtual ~ns10_decrypter_device(); protected: - ns10_decrypter_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); + ns10_decrypter_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); virtual void init(int iv)=0; virtual void device_start()override=0; @@ -43,7 +33,7 @@ public: uint16_t decrypt(uint16_t cipherword)override; protected: - ns10_type1_decrypter_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); + ns10_type1_decrypter_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); private: uint16_t _mask; @@ -58,6 +48,18 @@ private: class ns10_type2_decrypter_device : public ns10_decrypter_device { public: + uint16_t decrypt(uint16_t cipherword)override; + +protected: + class gf2_reducer // helper class + { + public: + gf2_reducer(); + int gf2_reduce(uint64_t num)const; + private: + int _gf2Reduction[0x10000]; + }; + // this encodes the decryption logic, which varies per game // and is probably hard-coded into the CPLD struct ns10_crypto_logic @@ -68,11 +70,7 @@ public: uint16_t(*nonlinear_calculation)(uint64_t, uint64_t, const gf2_reducer&); // preliminary encoding; need research }; - uint16_t decrypt(uint16_t cipherword)override; - -protected: - ns10_type2_decrypter_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source, - const ns10_type2_decrypter_device::ns10_crypto_logic &logic); + ns10_type2_decrypter_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, const ns10_crypto_logic &logic); private: uint16_t _mask; @@ -100,52 +98,73 @@ class chocovdr_decrypter_device : public ns10_type2_decrypter_device { public: chocovdr_decrypter_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); +private: + static uint16_t nonlinear_calc(uint64_t previous_cipherwords, uint64_t previous_plainwords, const gf2_reducer &reducer); + static const ns10_crypto_logic crypto_logic; }; class gamshara_decrypter_device : public ns10_type2_decrypter_device { public: gamshara_decrypter_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); +private: + static uint16_t nonlinear_calc(uint64_t previous_cipherwords, uint64_t previous_plainwords, const gf2_reducer &reducer); + static const ns10_crypto_logic crypto_logic; }; class gjspace_decrypter_device : public ns10_type2_decrypter_device { public: gjspace_decrypter_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); +private: + static uint16_t nonlinear_calc(uint64_t previous_cipherwords, uint64_t previous_plainwords, const gf2_reducer &reducer); + static const ns10_crypto_logic crypto_logic; }; class knpuzzle_decrypter_device : public ns10_type2_decrypter_device { public: knpuzzle_decrypter_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); +private: + static uint16_t nonlinear_calc(uint64_t previous_cipherwords, uint64_t previous_plainwords, const gf2_reducer &reducer); + static const ns10_crypto_logic crypto_logic; }; class konotako_decrypter_device : public ns10_type2_decrypter_device { public: konotako_decrypter_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); +private: + static uint16_t nonlinear_calc(uint64_t previous_cipherwords, uint64_t previous_plainwords, const gf2_reducer &reducer); + static const ns10_crypto_logic crypto_logic; }; class nflclsfb_decrypter_device : public ns10_type2_decrypter_device { public: nflclsfb_decrypter_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); +private: + static uint16_t nonlinear_calc(uint64_t previous_cipherwords, uint64_t previous_plainwords, const gf2_reducer &reducer); + static const ns10_crypto_logic crypto_logic; }; class startrgn_decrypter_device : public ns10_type2_decrypter_device { public: startrgn_decrypter_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); +private: + static uint16_t nonlinear_calc(uint64_t previous_cipherwords, uint64_t previous_plainwords, const gf2_reducer &reducer); + static const ns10_crypto_logic crypto_logic; }; -extern const device_type MRDRILR2_DECRYPTER; -extern const device_type CHOCOVDR_DECRYPTER; -extern const device_type GAMSHARA_DECRYPTER; -extern const device_type GJSPACE_DECRYPTER; -extern const device_type KNPUZZLE_DECRYPTER; -extern const device_type KONOTAKO_DECRYPTER; -extern const device_type NFLCLSFB_DECRYPTER; -extern const device_type STARTRGN_DECRYPTER; +DECLARE_DEVICE_TYPE(CHOCOVDR_DECRYPTER, chocovdr_decrypter_device) +DECLARE_DEVICE_TYPE(GAMSHARA_DECRYPTER, gamshara_decrypter_device) +DECLARE_DEVICE_TYPE(GJSPACE_DECRYPTER, gjspace_decrypter_device) +DECLARE_DEVICE_TYPE(KNPUZZLE_DECRYPTER, knpuzzle_decrypter_device) +DECLARE_DEVICE_TYPE(KONOTAKO_DECRYPTER, konotako_decrypter_device) +DECLARE_DEVICE_TYPE(MRDRILR2_DECRYPTER, mrdrilr2_decrypter_device) +DECLARE_DEVICE_TYPE(NFLCLSFB_DECRYPTER, nflclsfb_decrypter_device) +DECLARE_DEVICE_TYPE(STARTRGN_DECRYPTER, startrgn_decrypter_device) -#endif +#endif // MAME_MACHINE_NS10CRYPT_H diff --git a/src/mame/machine/ns11prot.cpp b/src/mame/machine/ns11prot.cpp index bec5d68e7a4..6e0f711d795 100644 --- a/src/mame/machine/ns11prot.cpp +++ b/src/mame/machine/ns11prot.cpp @@ -8,8 +8,8 @@ #include "emu.h" #include "ns11prot.h" -ns11_keycus_device::ns11_keycus_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source) +ns11_keycus_device::ns11_keycus_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock) { } @@ -30,7 +30,7 @@ void ns11_keycus_device::device_reset() /* tekken 2 */ keycus_c406_device::keycus_c406_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - ns11_keycus_device(mconfig, KEYCUS_C406, "Namco C406 KEYCUS", tag, owner, clock, "keycus_c406", __FILE__) + ns11_keycus_device(mconfig, KEYCUS_C406, tag, owner, clock) { } @@ -65,12 +65,12 @@ WRITE16_MEMBER(keycus_c406_device::write) logerror( "keycus_c406_device::write unexpected offset=%d data=%04x\n", offset, data ); } -const device_type KEYCUS_C406 = device_creator; +DEFINE_DEVICE_TYPE(KEYCUS_C406, keycus_c406_device, "keycus_c406", "Namco C406 KEYCUS") /* soul edge */ keycus_c409_device::keycus_c409_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - ns11_keycus_device(mconfig, KEYCUS_C409, "Namco C409 KEYCUS", tag, owner, clock, "keycus_c409", __FILE__) + ns11_keycus_device(mconfig, KEYCUS_C409, tag, owner, clock) { } @@ -105,12 +105,12 @@ WRITE16_MEMBER(keycus_c409_device::write) logerror( "keycus_c409_device::write unexpected offset=%d data=%04x\n", offset, data ); } -const device_type KEYCUS_C409 = device_creator; +DEFINE_DEVICE_TYPE(KEYCUS_C409, keycus_c409_device, "keycus_c409", "Namco C409 KEYCUS") /* dunk mania */ keycus_c410_device::keycus_c410_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - ns11_keycus_device(mconfig, KEYCUS_C410, "Namco C410 KEYCUS", tag, owner, clock, "keycus_c410", __FILE__) + ns11_keycus_device(mconfig, KEYCUS_C410, tag, owner, clock) { } @@ -159,12 +159,12 @@ WRITE16_MEMBER(keycus_c410_device::write) logerror( "keycus_c410_device::write unexpected offset=%d data=%04x\n", offset, data ); } -const device_type KEYCUS_C410 = device_creator; +DEFINE_DEVICE_TYPE(KEYCUS_C410, keycus_c410_device, "keycus_c410", "Namco C410 KEYCUS") /* prime goal ex */ keycus_c411_device::keycus_c411_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - ns11_keycus_device(mconfig, KEYCUS_C411, "Namco C411 KEYCUS", tag, owner, clock, "keycus_c411", __FILE__) + ns11_keycus_device(mconfig, KEYCUS_C411, tag, owner, clock) { } @@ -215,12 +215,12 @@ WRITE16_MEMBER(keycus_c411_device::write) logerror( "keycus_c411_device::write unexpected offset=%d data=%04x\n", offset, data ); } -const device_type KEYCUS_C411 = device_creator; +DEFINE_DEVICE_TYPE(KEYCUS_C411, keycus_c411_device, "keycus_c411", "Namco C411 KEYCUS") /* xevious 3d/g */ keycus_c430_device::keycus_c430_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - ns11_keycus_device(mconfig, KEYCUS_C430, "Namco C430 KEYCUS", tag, owner, clock, "keycus_c430", __FILE__) + ns11_keycus_device(mconfig, KEYCUS_C430, tag, owner, clock) { } @@ -274,12 +274,12 @@ WRITE16_MEMBER(keycus_c430_device::write) logerror( "keycus_c430_device::write unexpected offset=%d data=%04x\n", offset, data ); } -const device_type KEYCUS_C430 = device_creator; +DEFINE_DEVICE_TYPE(KEYCUS_C430, keycus_c430_device, "keycus_c430", "Namco C430 KEYCUS") /* dancing eyes */ keycus_c431_device::keycus_c431_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - ns11_keycus_device(mconfig, KEYCUS_C431, "Namco C431 KEYCUS", tag, owner, clock, "keycus_c431", __FILE__) + ns11_keycus_device(mconfig, KEYCUS_C431, tag, owner, clock) { } @@ -332,12 +332,12 @@ WRITE16_MEMBER(keycus_c431_device::write) logerror( "keycus_c431_device::write unexpected offset=%d data=%04x\n", offset, data ); } -const device_type KEYCUS_C431 = device_creator; +DEFINE_DEVICE_TYPE(KEYCUS_C431, keycus_c431_device, "keycus_c431", "Namco C431 KEYCUS") /* pocket racer */ keycus_c432_device::keycus_c432_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - ns11_keycus_device(mconfig, KEYCUS_C432, "Namco C432 KEYCUS", tag, owner, clock, "keycus_c432", __FILE__) + ns11_keycus_device(mconfig, KEYCUS_C432, tag, owner, clock) { } @@ -392,12 +392,12 @@ WRITE16_MEMBER(keycus_c432_device::write) logerror( "keycus_c432_device::write unexpected offset=%d data=%04x\n", offset, data ); } -const device_type KEYCUS_C432 = device_creator; +DEFINE_DEVICE_TYPE(KEYCUS_C432, keycus_c432_device, "keycus_c432", "Namco C432 KEYCUS") /* star sweep */ keycus_c442_device::keycus_c442_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - ns11_keycus_device(mconfig, KEYCUS_C442, "Namco C442 KEYCUS", tag, owner, clock, "keycus_c442", __FILE__) + ns11_keycus_device(mconfig, KEYCUS_C442, tag, owner, clock) { } @@ -440,12 +440,12 @@ WRITE16_MEMBER(keycus_c442_device::write) logerror( "keycus_c442_device::write unexpected offset=%d data=%04x\n", offset, data ); } -const device_type KEYCUS_C442 = device_creator; +DEFINE_DEVICE_TYPE(KEYCUS_C442, keycus_c442_device, "keycus_c442", "Namco C442 KEYCUS") /* kosodate quiz my angel 3 / point blank 2 */ keycus_c443_device::keycus_c443_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - ns11_keycus_device(mconfig, KEYCUS_C443, "Namco C443 KEYCUS", tag, owner, clock, "keycus_c443", __FILE__) + ns11_keycus_device(mconfig, KEYCUS_C443, tag, owner, clock) { } @@ -486,4 +486,4 @@ WRITE16_MEMBER(keycus_c443_device::write) logerror( "keycus_c443_device::write unexpected offset=%d data=%04x\n", offset, data ); } -const device_type KEYCUS_C443 = device_creator; +DEFINE_DEVICE_TYPE(KEYCUS_C443, keycus_c443_device, "keycus_c443", "Namco C443 KEYCUS") diff --git a/src/mame/machine/ns11prot.h b/src/mame/machine/ns11prot.h index de9af03b7d6..f45eca27b7e 100644 --- a/src/mame/machine/ns11prot.h +++ b/src/mame/machine/ns11prot.h @@ -4,17 +4,20 @@ * Namco System 11 Protection * */ +#ifndef MAME_MACHINE_NS11PROT_H +#define MAME_MACHINE_NS11PROT_H + +#pragma once class ns11_keycus_device : public device_t { protected: - ns11_keycus_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock,const char *shortname, const char *source); + ns11_keycus_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); virtual void device_start() override; virtual void device_reset() override; -protected: uint16_t m_p1; uint16_t m_p2; uint16_t m_p3; @@ -35,7 +38,7 @@ public: virtual DECLARE_WRITE16_MEMBER( write ) override; }; -extern const device_type KEYCUS_C406; +DECLARE_DEVICE_TYPE(KEYCUS_C406, keycus_c406_device) /* soul edge */ @@ -48,7 +51,7 @@ public: virtual DECLARE_WRITE16_MEMBER( write ) override; }; -extern const device_type KEYCUS_C409; +DECLARE_DEVICE_TYPE(KEYCUS_C409, keycus_c409_device) /* dunk mania */ @@ -61,7 +64,7 @@ public: virtual DECLARE_WRITE16_MEMBER( write ) override; }; -extern const device_type KEYCUS_C410; +DECLARE_DEVICE_TYPE(KEYCUS_C410, keycus_c410_device) /* prime goal ex */ @@ -74,7 +77,7 @@ public: virtual DECLARE_WRITE16_MEMBER( write ) override; }; -extern const device_type KEYCUS_C411; +DECLARE_DEVICE_TYPE(KEYCUS_C411, keycus_c411_device) /* xevious 3d/g */ @@ -87,7 +90,7 @@ public: virtual DECLARE_WRITE16_MEMBER( write ) override; }; -extern const device_type KEYCUS_C430; +DECLARE_DEVICE_TYPE(KEYCUS_C430, keycus_c430_device) /* dancing eyes */ @@ -100,7 +103,7 @@ public: virtual DECLARE_WRITE16_MEMBER( write ) override; }; -extern const device_type KEYCUS_C431; +DECLARE_DEVICE_TYPE(KEYCUS_C431, keycus_c431_device) /* pocket racer */ @@ -113,7 +116,7 @@ public: virtual DECLARE_WRITE16_MEMBER( write ) override; }; -extern const device_type KEYCUS_C432; +DECLARE_DEVICE_TYPE(KEYCUS_C432, keycus_c432_device) /* star sweep */ @@ -126,7 +129,7 @@ public: virtual DECLARE_WRITE16_MEMBER( write ) override; }; -extern const device_type KEYCUS_C442; +DECLARE_DEVICE_TYPE(KEYCUS_C442, keycus_c442_device) /* kosodate quiz my angel 3 / point blank 2 */ @@ -139,4 +142,6 @@ public: virtual DECLARE_WRITE16_MEMBER( write ) override; }; -extern const device_type KEYCUS_C443; +DECLARE_DEVICE_TYPE(KEYCUS_C443, keycus_c443_device) + +#endif // MAME_MACHINE_NS11PROT_H diff --git a/src/mame/machine/octo_kbd.cpp b/src/mame/machine/octo_kbd.cpp index a5d7219619b..b309bea81dc 100644 --- a/src/mame/machine/octo_kbd.cpp +++ b/src/mame/machine/octo_kbd.cpp @@ -7,7 +7,7 @@ octopus_keyboard_device::octopus_keyboard_device(const machine_config& mconfig, const char* tag, device_t* owner, uint32_t clock) - : buffered_rs232_device(mconfig, OCTOPUS_KEYBOARD, "Octopus Keyboard", tag, owner, 0, "octopus_kb", __FILE__) + : buffered_rs232_device(mconfig, OCTOPUS_KEYBOARD, tag, owner, 0) , device_matrix_keyboard_interface(mconfig, *this, "LINE0", "LINE1", "LINE2", "LINE3", "LINE4", "LINE5", "LINE6", "LINE7", "LINE8", "LINE9", "LINEA", "LINEB", "LINEC", "LINED", "LINEE", "LINEF") { } @@ -260,6 +260,4 @@ void octopus_keyboard_device::device_timer(emu_timer &timer, device_timer_id id, } -const device_type OCTOPUS_KEYBOARD = device_creator; - - +DEFINE_DEVICE_TYPE(OCTOPUS_KEYBOARD, octopus_keyboard_device, "octopus_kb", "Octopus Keyboard") diff --git a/src/mame/machine/octo_kbd.h b/src/mame/machine/octo_kbd.h index c51fe7b62f2..ab04f8def30 100644 --- a/src/mame/machine/octo_kbd.h +++ b/src/mame/machine/octo_kbd.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Barry Rodewald -#ifndef OCTO_KBD_H -#define OCTO_KBD_H +#ifndef MAME_MACHINE_OCTO_KBD_H +#define MAME_MACHINE_OCTO_KBD_H + +#pragma once #include "bus/rs232/keyboard.h" @@ -27,6 +29,6 @@ private: uint8_t m_enabled; // keyboard enabled? }; -extern const device_type OCTOPUS_KEYBOARD; +DECLARE_DEVICE_TYPE(OCTOPUS_KEYBOARD, octopus_keyboard_device) -#endif // OCTO_KBD_H +#endif // MAME_MACHINE_OCTO_KBD_H diff --git a/src/mame/machine/pc1512kb.cpp b/src/mame/machine/pc1512kb.cpp index 9677219ffc1..9b806435ab9 100644 --- a/src/mame/machine/pc1512kb.cpp +++ b/src/mame/machine/pc1512kb.cpp @@ -23,7 +23,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type PC1512_KEYBOARD = device_creator; +DEFINE_DEVICE_TYPE(PC1512_KEYBOARD, pc1512_keyboard_device, "pc1512kb", "Amstrad PC1512 Keyboard") //------------------------------------------------- @@ -40,7 +40,7 @@ ROM_END // rom_region - device-specific ROM region //------------------------------------------------- -const tiny_rom_entry *pc1512_keyboard_t::device_rom_region() const +const tiny_rom_entry *pc1512_keyboard_device::device_rom_region() const { return ROM_NAME( pc1512_keyboard ); } @@ -52,12 +52,12 @@ const tiny_rom_entry *pc1512_keyboard_t::device_rom_region() const static MACHINE_CONFIG_FRAGMENT( pc1512_keyboard ) MCFG_CPU_ADD(I8048_TAG, I8048, XTAL_6MHz) - MCFG_MCS48_PORT_BUS_IN_CB(READ8(pc1512_keyboard_t, kb_bus_r)) - MCFG_MCS48_PORT_P1_OUT_CB(WRITE8(pc1512_keyboard_t, kb_p1_w)) - MCFG_MCS48_PORT_P2_IN_CB(READ8(pc1512_keyboard_t, kb_p2_r)) - MCFG_MCS48_PORT_P2_OUT_CB(WRITE8(pc1512_keyboard_t, kb_p2_w)) - MCFG_MCS48_PORT_T0_IN_CB(READLINE(pc1512_keyboard_t, kb_t0_r)) - MCFG_MCS48_PORT_T1_IN_CB(READLINE(pc1512_keyboard_t, kb_t1_r)) + MCFG_MCS48_PORT_BUS_IN_CB(READ8(pc1512_keyboard_device, kb_bus_r)) + MCFG_MCS48_PORT_P1_OUT_CB(WRITE8(pc1512_keyboard_device, kb_p1_w)) + MCFG_MCS48_PORT_P2_IN_CB(READ8(pc1512_keyboard_device, kb_p2_r)) + MCFG_MCS48_PORT_P2_OUT_CB(WRITE8(pc1512_keyboard_device, kb_p2_w)) + MCFG_MCS48_PORT_T0_IN_CB(READLINE(pc1512_keyboard_device, kb_t0_r)) + MCFG_MCS48_PORT_T1_IN_CB(READLINE(pc1512_keyboard_device, kb_t1_r)) MCFG_VCS_CONTROL_PORT_ADD("joy", vcs_control_port_devices, nullptr) MACHINE_CONFIG_END @@ -68,7 +68,7 @@ MACHINE_CONFIG_END // machine configurations //------------------------------------------------- -machine_config_constructor pc1512_keyboard_t::device_mconfig_additions() const +machine_config_constructor pc1512_keyboard_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( pc1512_keyboard ); } @@ -195,7 +195,7 @@ INPUT_PORTS_END // input_ports - device-specific input ports //------------------------------------------------- -ioport_constructor pc1512_keyboard_t::device_input_ports() const +ioport_constructor pc1512_keyboard_device::device_input_ports() const { return INPUT_PORTS_NAME( pc1512_keyboard ); } @@ -207,11 +207,11 @@ ioport_constructor pc1512_keyboard_t::device_input_ports() const //************************************************************************** //------------------------------------------------- -// pc1512_keyboard_t - constructor +// pc1512_keyboard_device - constructor //------------------------------------------------- -pc1512_keyboard_t::pc1512_keyboard_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, PC1512_KEYBOARD, "Amstrad PC1512 Keyboard", tag, owner, clock, "pc1512kb", __FILE__), +pc1512_keyboard_device::pc1512_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, PC1512_KEYBOARD, tag, owner, clock), m_maincpu(*this, I8048_TAG), m_joy(*this, "joy"), m_y(*this, "Y%u", 1), @@ -231,7 +231,7 @@ pc1512_keyboard_t::pc1512_keyboard_t(const machine_config &mconfig, const char * // device_start - device-specific startup //------------------------------------------------- -void pc1512_keyboard_t::device_start() +void pc1512_keyboard_device::device_start() { // allocate timers m_reset_timer = timer_alloc(); @@ -254,7 +254,7 @@ void pc1512_keyboard_t::device_start() // device_reset - device-specific reset //------------------------------------------------- -void pc1512_keyboard_t::device_reset() +void pc1512_keyboard_device::device_reset() { m_maincpu->set_input_line(MCS48_INPUT_EA, CLEAR_LINE); } @@ -264,7 +264,7 @@ void pc1512_keyboard_t::device_reset() // device_timer - handler timer events //------------------------------------------------- -void pc1512_keyboard_t::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) +void pc1512_keyboard_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) { if (!m_clock_in) { @@ -277,7 +277,7 @@ void pc1512_keyboard_t::device_timer(emu_timer &timer, device_timer_id id, int p // data_w - keyboard data input //------------------------------------------------- -WRITE_LINE_MEMBER( pc1512_keyboard_t::data_w ) +WRITE_LINE_MEMBER( pc1512_keyboard_device::data_w ) { m_data_in = state; } @@ -287,7 +287,7 @@ WRITE_LINE_MEMBER( pc1512_keyboard_t::data_w ) // clock_w - keyboard clock input //------------------------------------------------- -WRITE_LINE_MEMBER( pc1512_keyboard_t::clock_w ) +WRITE_LINE_MEMBER( pc1512_keyboard_device::clock_w ) { if (m_clock_in != state) { @@ -309,7 +309,7 @@ WRITE_LINE_MEMBER( pc1512_keyboard_t::clock_w ) // m1_w - mouse button 1 //------------------------------------------------- -WRITE_LINE_MEMBER( pc1512_keyboard_t::m1_w ) +WRITE_LINE_MEMBER( pc1512_keyboard_device::m1_w ) { m_m1 = state; } @@ -319,7 +319,7 @@ WRITE_LINE_MEMBER( pc1512_keyboard_t::m1_w ) // m2_w - mouse button 2 //------------------------------------------------- -WRITE_LINE_MEMBER( pc1512_keyboard_t::m2_w ) +WRITE_LINE_MEMBER( pc1512_keyboard_device::m2_w ) { m_m2 = state; } @@ -329,7 +329,7 @@ WRITE_LINE_MEMBER( pc1512_keyboard_t::m2_w ) // kb_bus_r - //------------------------------------------------- -READ8_MEMBER( pc1512_keyboard_t::kb_bus_r ) +READ8_MEMBER( pc1512_keyboard_device::kb_bus_r ) { /* @@ -372,7 +372,7 @@ READ8_MEMBER( pc1512_keyboard_t::kb_bus_r ) // kb_p1_w - //------------------------------------------------- -WRITE8_MEMBER( pc1512_keyboard_t::kb_p1_w ) +WRITE8_MEMBER( pc1512_keyboard_device::kb_p1_w ) { /* @@ -397,7 +397,7 @@ WRITE8_MEMBER( pc1512_keyboard_t::kb_p1_w ) // kb_p2_r - //------------------------------------------------- -READ8_MEMBER( pc1512_keyboard_t::kb_p2_r ) +READ8_MEMBER( pc1512_keyboard_device::kb_p2_r ) { /* @@ -427,7 +427,7 @@ READ8_MEMBER( pc1512_keyboard_t::kb_p2_r ) // kb_p2_w - //------------------------------------------------- -WRITE8_MEMBER( pc1512_keyboard_t::kb_p2_w ) +WRITE8_MEMBER( pc1512_keyboard_device::kb_p2_w ) { /* @@ -468,7 +468,7 @@ WRITE8_MEMBER( pc1512_keyboard_t::kb_p2_w ) // kb_t0_r - //------------------------------------------------- -READ_LINE_MEMBER( pc1512_keyboard_t::kb_t0_r ) +READ_LINE_MEMBER( pc1512_keyboard_device::kb_t0_r ) { return m_m1; } @@ -478,7 +478,7 @@ READ_LINE_MEMBER( pc1512_keyboard_t::kb_t0_r ) // kb_t1_r - //------------------------------------------------- -READ_LINE_MEMBER( pc1512_keyboard_t::kb_t1_r ) +READ_LINE_MEMBER( pc1512_keyboard_device::kb_t1_r ) { return m_m2; } diff --git a/src/mame/machine/pc1512kb.h b/src/mame/machine/pc1512kb.h index 8fc7f09339f..469c744d909 100644 --- a/src/mame/machine/pc1512kb.h +++ b/src/mame/machine/pc1512kb.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_MACHINE_PC1512KB_H +#define MAME_MACHINE_PC1512KB_H -#ifndef __PC1512_KEYBOARD__ -#define __PC1512_KEYBOARD__ +#pragma once #include "bus/vcs_ctrl/ctrl.h" @@ -30,10 +30,10 @@ //************************************************************************** #define MCFG_PC1512_KEYBOARD_CLOCK_CALLBACK(_write) \ - devcb = &pc1512_keyboard_t::set_clock_wr_callback(*device, DEVCB_##_write); + devcb = &pc1512_keyboard_device::set_clock_wr_callback(*device, DEVCB_##_write); #define MCFG_PC1512_KEYBOARD_DATA_CALLBACK(_write) \ - devcb = &pc1512_keyboard_t::set_data_wr_callback(*device, DEVCB_##_write); + devcb = &pc1512_keyboard_device::set_data_wr_callback(*device, DEVCB_##_write); @@ -41,16 +41,16 @@ // TYPE DEFINITIONS //************************************************************************** -// ======================> pc1512_keyboard_t +// ======================> pc1512_keyboard_device -class pc1512_keyboard_t : public device_t +class pc1512_keyboard_device : public device_t { public: // construction/destruction - pc1512_keyboard_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + pc1512_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_clock_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_clock.set_callback(object); } - template static devcb_base &set_data_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_data.set_callback(object); } + template static devcb_base &set_clock_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_clock.set_callback(std::forward(cb)); } + template static devcb_base &set_data_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_data.set_callback(std::forward(cb)); } // optional information overrides virtual const tiny_rom_entry *device_rom_region() const override; @@ -102,8 +102,7 @@ private: // device type definition -extern const device_type PC1512_KEYBOARD; - +DECLARE_DEVICE_TYPE(PC1512_KEYBOARD, pc1512_keyboard_device) -#endif +#endif // MAME_MACHINE_PC1512KB_H diff --git a/src/mame/machine/pc9801_118.cpp b/src/mame/machine/pc9801_118.cpp index 3fdd6dd0e06..2d2b9a015cd 100644 --- a/src/mame/machine/pc9801_118.cpp +++ b/src/mame/machine/pc9801_118.cpp @@ -27,7 +27,7 @@ //************************************************************************** // device type definition -const device_type PC9801_118 = device_creator; +DEFINE_DEVICE_TYPE(PC9801_118, pc9801_118_device, "pc9801_118", "pc9801_118") READ8_MEMBER(pc9801_118_device::opn_porta_r) @@ -121,7 +121,7 @@ const tiny_rom_entry *pc9801_118_device::device_rom_region() const //------------------------------------------------- pc9801_118_device::pc9801_118_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, PC9801_118, "pc9801_118", tag, owner, clock, "pc9801_118", __FILE__), + : device_t(mconfig, PC9801_118, tag, owner, clock), // m_maincpu(*this, "^maincpu"), m_opn3(*this, "opn3") { diff --git a/src/mame/machine/pc9801_118.h b/src/mame/machine/pc9801_118.h index 87bc44cb7db..ea6d0397cb0 100644 --- a/src/mame/machine/pc9801_118.h +++ b/src/mame/machine/pc9801_118.h @@ -6,11 +6,11 @@ ***************************************************************************/ +#ifndef MAME_MACHINE_PC9801_118_H +#define MAME_MACHINE_PC9801_118_H #pragma once -#ifndef __PC9801_118DEV_H__ -#define __PC9801_118DEV_H__ #include "machine/pic8259.h" #include "sound/2608intf.h" @@ -40,9 +40,8 @@ public: DECLARE_WRITE8_MEMBER(pc9801_118_ext_w); DECLARE_WRITE_LINE_MEMBER(pc9801_sound_irq); -// required_device m_maincpu; - required_device m_opn3; virtual const tiny_rom_entry *device_rom_region() const override; + protected: // device-level overrides virtual void device_validity_check(validity_checker &valid) const override; @@ -51,13 +50,16 @@ protected: void install_device(offs_t start, offs_t end, read8_delegate rhandler, write8_delegate whandler); private: +// required_device m_maincpu; + required_device m_opn3; + uint8_t m_joy_sel; uint8_t m_ext_reg; }; // device type definition -extern const device_type PC9801_118; +DECLARE_DEVICE_TYPE(PC9801_118, pc9801_118_device) @@ -67,4 +69,4 @@ extern const device_type PC9801_118; -#endif +#endif // MAME_MACHINE_PC9801_118_H diff --git a/src/mame/machine/pc9801_26.cpp b/src/mame/machine/pc9801_26.cpp index 29b65d10b96..5992a2daa7e 100644 --- a/src/mame/machine/pc9801_26.cpp +++ b/src/mame/machine/pc9801_26.cpp @@ -26,7 +26,7 @@ //************************************************************************** // device type definition -const device_type PC9801_26 = device_creator; +DEFINE_DEVICE_TYPE(PC9801_26, pc9801_26_device, "pc9801_26", "pc9801_26") @@ -113,7 +113,7 @@ ioport_constructor pc9801_26_device::device_input_ports() const //------------------------------------------------- pc9801_26_device::pc9801_26_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, PC9801_26, "pc9801_26", tag, owner, clock, "pc9801_26", __FILE__), + : device_t(mconfig, PC9801_26, tag, owner, clock), // m_maincpu(*this, "^maincpu"), m_opn(*this, "opn") { diff --git a/src/mame/machine/pc9801_26.h b/src/mame/machine/pc9801_26.h index 4239891c7f2..1aa42a013e9 100644 --- a/src/mame/machine/pc9801_26.h +++ b/src/mame/machine/pc9801_26.h @@ -6,11 +6,11 @@ Template for skeleton device ***************************************************************************/ +#ifndef MAME_MACHINE_PC9801_26_H +#define MAME_MACHINE_PC9801_26_H #pragma once -#ifndef __PC9801_26DEV_H__ -#define __PC9801_26DEV_H__ #include "machine/pic8259.h" #include "sound/2203intf.h" @@ -38,8 +38,6 @@ public: DECLARE_WRITE8_MEMBER(pc9801_26_w); DECLARE_WRITE_LINE_MEMBER(pc9801_sound_irq); -// required_device m_maincpu; - required_device m_opn; protected: // device-level overrides virtual void device_validity_check(validity_checker &valid) const override; @@ -48,13 +46,15 @@ protected: void install_device(offs_t start, offs_t end, read8_delegate rhandler, write8_delegate whandler); private: - uint8_t m_joy_sel; +// required_device m_maincpu; + required_device m_opn; + uint8_t m_joy_sel; }; // device type definition -extern const device_type PC9801_26; +DECLARE_DEVICE_TYPE(PC9801_26, pc9801_26_device) @@ -64,4 +64,4 @@ extern const device_type PC9801_26; -#endif +#endif // MAME_MACHINE_PC9801_26_H diff --git a/src/mame/machine/pc9801_86.cpp b/src/mame/machine/pc9801_86.cpp index 15899b1029d..f94b6476c4b 100644 --- a/src/mame/machine/pc9801_86.cpp +++ b/src/mame/machine/pc9801_86.cpp @@ -28,7 +28,7 @@ //************************************************************************** // device type definition -const device_type PC9801_86 = device_creator; +DEFINE_DEVICE_TYPE(PC9801_86, pc9801_86_device, "pc9801_86", "pc9801_86") READ8_MEMBER(pc9801_86_device::opn_porta_r) @@ -129,7 +129,7 @@ ioport_constructor pc9801_86_device::device_input_ports() const //------------------------------------------------- pc9801_86_device::pc9801_86_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, PC9801_86, "pc9801_86", tag, owner, clock, "pc9801_86", __FILE__), + : device_t(mconfig, PC9801_86, tag, owner, clock), m_opna(*this, "opna"), m_ldac(*this, "ldac"), m_rdac(*this, "rdac"), diff --git a/src/mame/machine/pc9801_86.h b/src/mame/machine/pc9801_86.h index 0e99f90fc10..eb022a8a92d 100644 --- a/src/mame/machine/pc9801_86.h +++ b/src/mame/machine/pc9801_86.h @@ -6,11 +6,11 @@ ***************************************************************************/ +#ifndef MAME_MACHINE_PC9801_86_H +#define MAME_MACHINE_PC9801_86_H #pragma once -#ifndef __PC9801_86DEV_H__ -#define __PC9801_86DEV_H__ #include "machine/pic8259.h" #include "sound/2608intf.h" @@ -66,7 +66,7 @@ private: // device type definition -extern const device_type PC9801_86; +DECLARE_DEVICE_TYPE(PC9801_86, pc9801_86_device) @@ -76,4 +76,4 @@ extern const device_type PC9801_86; -#endif +#endif // MAME_MACHINE_PC9801_86_H diff --git a/src/mame/machine/pc9801_cbus.cpp b/src/mame/machine/pc9801_cbus.cpp index ec3b0df3eb0..06af21561d3 100644 --- a/src/mame/machine/pc9801_cbus.cpp +++ b/src/mame/machine/pc9801_cbus.cpp @@ -15,7 +15,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type PC9801CBUS_SLOT = device_creator; +DEFINE_DEVICE_TYPE(PC9801CBUS_SLOT, pc9801_slot_device, "pc9801_slot", "PC-9801 sound cbus slot") @@ -53,8 +53,8 @@ device_pc9801cbus_card_interface::~device_pc9801cbus_card_interface() //------------------------------------------------- pc9801_slot_device::pc9801_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, PC9801CBUS_SLOT, "PC-9801 sound cbus slot", tag, owner, clock, "pc9801_slot", __FILE__), - device_slot_interface(mconfig, *this) + device_t(mconfig, PC9801CBUS_SLOT, tag, owner, clock), + device_slot_interface(mconfig, *this) { } diff --git a/src/mame/machine/pc9801_cbus.h b/src/mame/machine/pc9801_cbus.h index b3d8b85c142..1b1084d8961 100644 --- a/src/mame/machine/pc9801_cbus.h +++ b/src/mame/machine/pc9801_cbus.h @@ -4,11 +4,11 @@ **********************************************************************/ +#ifndef MAME_MACHINE_PC9801_CBUS_H +#define MAME_MACHINE_PC9801_CBUS_H #pragma once -#ifndef __PC9801_SLOTCBUS__ -#define __PC9801_SLOTCBUS__ @@ -52,13 +52,13 @@ public: // ======================> pc9801_slot_device -class pc9801_slot_device : public device_t, - public device_slot_interface +class pc9801_slot_device : public device_t, public device_slot_interface { public: // construction/destruction pc9801_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); +protected: // device-level overrides virtual void device_start() override; virtual void device_config_complete() override; @@ -69,8 +69,6 @@ public: // device type definition -extern const device_type PC9801CBUS_SLOT; +DECLARE_DEVICE_TYPE(PC9801CBUS_SLOT, pc9801_slot_device) - - -#endif +#endif // MAME_MACHINE_PC9801_CBUS_H diff --git a/src/mame/machine/pc9801_cd.cpp b/src/mame/machine/pc9801_cd.cpp index a8ec66ac672..46368ddfcc9 100644 --- a/src/mame/machine/pc9801_cd.cpp +++ b/src/mame/machine/pc9801_cd.cpp @@ -4,10 +4,10 @@ #include "pc9801_cd.h" // device type definition -const device_type PC9801_CD = device_creator; +DEFINE_DEVICE_TYPE(PC9801_CD, pc9801_cd_device, "pc9801_cd", "PC9801 CD-ROM Drive") pc9801_cd_device::pc9801_cd_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - atapi_cdrom_device(mconfig, PC9801_CD, "PC9801 CD-ROM Drive", tag, owner, clock, "pc9801_cd", __FILE__) + atapi_cdrom_device(mconfig, PC9801_CD, tag, owner, clock) { } diff --git a/src/mame/machine/pc9801_cd.h b/src/mame/machine/pc9801_cd.h index 5fdc19eaf21..9abee3a8092 100644 --- a/src/mame/machine/pc9801_cd.h +++ b/src/mame/machine/pc9801_cd.h @@ -1,8 +1,8 @@ // license:BSD-3-Clause // copyright-holders:smf -#ifndef __PC9801_CD_H__ -#define __PC9801_CD_H__ +#ifndef MAME_MACHINE_PC9801_CD_H +#define MAME_MACHINE_PC9801_CD_H #include "machine/atapicdr.h" @@ -18,6 +18,6 @@ protected: }; // device type definition -extern const device_type PC9801_CD; +DECLARE_DEVICE_TYPE(PC9801_CD, pc9801_cd_device) -#endif +#endif // MAME_MACHINE_PC9801_CD_H diff --git a/src/mame/machine/pc9801_kbd.cpp b/src/mame/machine/pc9801_kbd.cpp index d7e01fc887a..2788453358d 100644 --- a/src/mame/machine/pc9801_kbd.cpp +++ b/src/mame/machine/pc9801_kbd.cpp @@ -24,7 +24,7 @@ //************************************************************************** // device type definition -const device_type PC9801_KBD = device_creator; +DEFINE_DEVICE_TYPE(PC9801_KBD, pc9801_kbd_device, "pc9801_kbd", "PC-9801 Keyboard") //************************************************************************** @@ -36,7 +36,7 @@ const device_type PC9801_KBD = device_creator; //------------------------------------------------- pc9801_kbd_device::pc9801_kbd_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, PC9801_KBD, "pc9801_kbd", tag, owner, clock, "pc9801_kbd_", __FILE__), + device_t(mconfig, PC9801_KBD, tag, owner, clock), m_write_irq(*this) { } diff --git a/src/mame/machine/pc9801_kbd.h b/src/mame/machine/pc9801_kbd.h index 547dca96f64..a5b6912c1cc 100644 --- a/src/mame/machine/pc9801_kbd.h +++ b/src/mame/machine/pc9801_kbd.h @@ -5,11 +5,11 @@ PC-9801 Keyboard simulation ***************************************************************************/ +#ifndef MAME_MACHINE_PC9801_KBD_H +#define MAME_MACHINE_PC9801_KBD_H #pragma once -#ifndef __PC9801_KBDDEV_H__ -#define __PC9801_KBDDEV_H__ //************************************************************************** @@ -32,7 +32,7 @@ public: // construction/destruction pc9801_kbd_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_irq_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_irq.set_callback(object); } + template static devcb_base &set_irq_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_irq.set_callback(std::forward(cb)); } virtual ioport_constructor device_input_ports() const override; @@ -60,7 +60,7 @@ protected: // device type definition -extern const device_type PC9801_KBD; +DECLARE_DEVICE_TYPE(PC9801_KBD, pc9801_kbd_device) @@ -70,4 +70,4 @@ extern const device_type PC9801_KBD; -#endif +#endif // MAME_MACHINE_PC9801_KBD_H diff --git a/src/mame/machine/pcd_kbd.cpp b/src/mame/machine/pcd_kbd.cpp index d356084b042..41e1152e3e7 100644 --- a/src/mame/machine/pcd_kbd.cpp +++ b/src/mame/machine/pcd_kbd.cpp @@ -7,7 +7,7 @@ #include "sound/spkrdev.h" #include "speaker.h" -const device_type PCD_KEYBOARD = device_creator; +DEFINE_DEVICE_TYPE(PCD_KEYBOARD, pcd_keyboard_device, "pcd_kbd", "Siemens PC-D Keyboard") ROM_START( pcd_keyboard ) ROM_REGION(0x1000, "mcu", 0) @@ -224,7 +224,7 @@ ioport_constructor pcd_keyboard_device::device_input_ports() const } pcd_keyboard_device::pcd_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, PCD_KEYBOARD, "PC-D Keyboard", tag, owner, clock, "pcd_kbd", __FILE__) + : device_t(mconfig, PCD_KEYBOARD, tag, owner, clock) , m_rows(*this, "ROW.%u", 0) , m_p1(0) , m_out_tx_handler(*this) diff --git a/src/mame/machine/pcd_kbd.h b/src/mame/machine/pcd_kbd.h index 6dcf1d9a426..de373132a6b 100644 --- a/src/mame/machine/pcd_kbd.h +++ b/src/mame/machine/pcd_kbd.h @@ -3,6 +3,8 @@ #ifndef MAME_INCLUDES_PCD_KBD_H #define MAME_INCLUDES_PCD_KBD_H +#pragma once + #define MCFG_PCD_KEYBOARD_OUT_TX_HANDLER(_devcb) \ devcb = &pcd_keyboard_device::set_out_tx_handler(*device, DEVCB_##_devcb); @@ -24,6 +26,7 @@ public: DECLARE_WRITE8_MEMBER( p1_w ); DECLARE_READ_LINE_MEMBER( t0_r ); DECLARE_WRITE_LINE_MEMBER( t0_w ); + private: required_ioport_array<17> m_rows; uint8_t m_p1; @@ -32,5 +35,6 @@ private: }; extern const device_type PCD_KEYBOARD; +DECLARE_DEVICE_TYPE(PCD_KEYBOARD, pcd_keyboard_device) #endif // MAME_INCLUDES_PCD_KBD_H diff --git a/src/mame/machine/pce220_ser.cpp b/src/mame/machine/pce220_ser.cpp index 4d233fdda5b..a6459ebac6c 100644 --- a/src/mame/machine/pce220_ser.cpp +++ b/src/mame/machine/pce220_ser.cpp @@ -37,15 +37,15 @@ enum }; // device type definition -const device_type PCE220SERIAL = device_creator; +DEFINE_DEVICE_TYPE(PCE220SERIAL, pce220_serial_device, "pce220_serial", "Sharp PC-E220 serial") //------------------------------------------------- // pce220_serial_device - constructor //------------------------------------------------- pce220_serial_device::pce220_serial_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, PCE220SERIAL, "Sharp PC-E220 serial", tag, owner, clock, "pce220_serial", __FILE__), - device_image_interface(mconfig, *this) + : device_t(mconfig, PCE220SERIAL, tag, owner, clock) + , device_image_interface(mconfig, *this) { } diff --git a/src/mame/machine/pce220_ser.h b/src/mame/machine/pce220_ser.h index 73ed3babd28..f8ff2257e58 100644 --- a/src/mame/machine/pce220_ser.h +++ b/src/mame/machine/pce220_ser.h @@ -8,8 +8,10 @@ ****************************************************************************/ -#ifndef __PCE220_SER_H__ -#define __PCE220_SER_H__ +#ifndef MAME_MACHINE_PCE220_SER_H +#define MAME_MACHINE_PCE220_SER_H + +#pragma once /*************************************************************************** @@ -80,7 +82,7 @@ private: }; // device type definition -extern const device_type PCE220SERIAL; +DECLARE_DEVICE_TYPE(PCE220SERIAL, pce220_serial_device) /*************************************************************************** DEVICE CONFIGURATION MACROS @@ -89,4 +91,5 @@ extern const device_type PCE220SERIAL; #define MCFG_PCE220_SERIAL_ADD(_tag) \ MCFG_DEVICE_ADD(_tag, PCE220SERIAL, 0) -#endif /* __PCE220_SER_H__ */ + +#endif // MAME_MACHINE_PCE220_SER_H diff --git a/src/mame/machine/pce_cd.cpp b/src/mame/machine/pce_cd.cpp index a3919312903..8226802c2b3 100644 --- a/src/mame/machine/pce_cd.cpp +++ b/src/mame/machine/pce_cd.cpp @@ -75,16 +75,16 @@ CD Interface Register 0x0f - ADPCM fade in/out register #define PCE_CD_CLOCK 9216000 -const device_type PCE_CD = device_creator; +DEFINE_DEVICE_TYPE(PCE_CD, pce_cd_device, "pcecd", "PCE CD Add-on") pce_cd_device::pce_cd_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, PCE_CD, "PCE CD Add-on", tag, owner, clock, "pcecd", __FILE__), - m_maincpu(*this, ":maincpu"), - m_msm(*this, "msm5205"), - m_cdda(*this, "cdda"), - m_nvram(*this, "bram"), - m_cdrom(*this, "cdrom") + : device_t(mconfig, PCE_CD, tag, owner, clock) + , m_maincpu(*this, ":maincpu") + , m_msm(*this, "msm5205") + , m_cdda(*this, "cdda") + , m_nvram(*this, "bram") + , m_cdrom(*this, "cdrom") { } @@ -249,7 +249,7 @@ static MACHINE_CONFIG_FRAGMENT( pce_cd ) MCFG_SOUND_ADD( "msm5205", MSM5205, PCE_CD_CLOCK / 6 ) MCFG_MSM5205_VCLK_CB(WRITELINE(pce_cd_device, msm5205_int)) /* interrupt function */ - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S48_4B) /* 1/48 prescaler, 4bit data */ + MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) /* 1/48 prescaler, 4bit data */ MCFG_SOUND_ROUTE( ALL_OUTPUTS, "^:lspeaker", 0.50 ) MCFG_SOUND_ROUTE( ALL_OUTPUTS, "^:rspeaker", 0.50 ) diff --git a/src/mame/machine/pce_cd.h b/src/mame/machine/pce_cd.h index 504dacc2b36..dba5682b082 100644 --- a/src/mame/machine/pce_cd.h +++ b/src/mame/machine/pce_cd.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Wilbert Pol -#ifndef __PCE_CD_H -#define __PCE_CD_H +#ifndef MAME_MACHINE_PCE_CD_H +#define MAME_MACHINE_PCE_CD_H + +#pragma once /*************************************************************************** TYPE DEFINITIONS @@ -43,7 +45,6 @@ class pce_cd_device : public device_t public: // construction/destruction pce_cd_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual ~pce_cd_device() {} // device-level overrides virtual void device_start() override; @@ -174,7 +175,7 @@ private: // device type definition -extern const device_type PCE_CD; +DECLARE_DEVICE_TYPE(PCE_CD, pce_cd_device) /*************************************************************************** @@ -185,4 +186,4 @@ extern const device_type PCE_CD; MCFG_DEVICE_ADD(_tag, PCE_CD, 0) -#endif +#endif // MAME_MACHINE_PCE_CD_H diff --git a/src/mame/machine/pecom.cpp b/src/mame/machine/pecom.cpp index 894eed534bd..ba2bc89a032 100644 --- a/src/mame/machine/pecom.cpp +++ b/src/mame/machine/pecom.cpp @@ -108,7 +108,7 @@ READ8_MEMBER(pecom_state::pecom_keyboard_r) Address is available on address bus during reading of value from port, and that is used to determine keyboard line reading */ - uint16_t addr = m_cdp1802->state_int(COSMAC_R0 + m_cdp1802->state_int(COSMAC_X)); + uint16_t addr = m_cdp1802->state_int(cosmac_device::COSMAC_R0 + m_cdp1802->state_int(cosmac_device::COSMAC_X)); /* just in case somone is reading non existing ports */ if (addr<0x7cca || addr>0x7ce3) return 0; return m_io_ports[addr - 0x7cca]->read() & 0x03; diff --git a/src/mame/machine/pgmprot_igs025_igs012.cpp b/src/mame/machine/pgmprot_igs025_igs012.cpp index 5a410899d93..fa965163b1b 100644 --- a/src/mame/machine/pgmprot_igs025_igs012.cpp +++ b/src/mame/machine/pgmprot_igs025_igs012.cpp @@ -132,7 +132,7 @@ static ADDRESS_MAP_START( drgw2_mem, AS_PROGRAM, 16, pgm_012_025_state ) AM_RANGE(0xd00000, 0xd00fff) AM_NOP // Written, but never read back? Related to the protection device? - IGS012? ADDRESS_MAP_END -MACHINE_CONFIG_START( pgm_012_025_drgw2, pgm_012_025_state ) +MACHINE_CONFIG_START( pgm_012_025_drgw2 ) MCFG_FRAGMENT_ADD(pgmbase) MCFG_CPU_MODIFY("maincpu") diff --git a/src/mame/machine/pgmprot_igs025_igs022.cpp b/src/mame/machine/pgmprot_igs025_igs022.cpp index 403f8ee35a2..fad7d6a4c0e 100644 --- a/src/mame/machine/pgmprot_igs025_igs022.cpp +++ b/src/mame/machine/pgmprot_igs025_igs022.cpp @@ -374,7 +374,7 @@ static ADDRESS_MAP_START( killbld_mem, AS_PROGRAM, 16, pgm_022_025_state ) ADDRESS_MAP_END -MACHINE_CONFIG_START( pgm_022_025, pgm_022_025_state ) +MACHINE_CONFIG_START( pgm_022_025 ) MCFG_FRAGMENT_ADD(pgmbase) MCFG_CPU_MODIFY("maincpu") diff --git a/src/mame/machine/pgmprot_igs025_igs028.cpp b/src/mame/machine/pgmprot_igs025_igs028.cpp index 84fcfbe731e..1f679289299 100644 --- a/src/mame/machine/pgmprot_igs025_igs028.cpp +++ b/src/mame/machine/pgmprot_igs025_igs028.cpp @@ -185,7 +185,7 @@ void pgm_028_025_state::igs025_to_igs028_callback( void ) } -MACHINE_CONFIG_START( pgm_028_025_ol, pgm_028_025_state ) +MACHINE_CONFIG_START( pgm_028_025_ol ) MCFG_FRAGMENT_ADD(pgmbase) MCFG_CPU_MODIFY("maincpu") diff --git a/src/mame/machine/pgmprot_igs027a_type1.cpp b/src/mame/machine/pgmprot_igs027a_type1.cpp index 51cb33039d3..adfa59a023f 100644 --- a/src/mame/machine/pgmprot_igs027a_type1.cpp +++ b/src/mame/machine/pgmprot_igs027a_type1.cpp @@ -211,7 +211,7 @@ MACHINE_START_MEMBER(pgm_arm_type1_state,pgm_arm_type1) save_item(NAME(m_slots)); } -MACHINE_CONFIG_START( pgm_arm_type1_cave, pgm_arm_type1_state ) +MACHINE_CONFIG_START( pgm_arm_type1_cave ) MCFG_FRAGMENT_ADD(pgmbase) MCFG_CPU_MODIFY("maincpu") diff --git a/src/mame/machine/pgmprot_igs027a_type2.cpp b/src/mame/machine/pgmprot_igs027a_type2.cpp index 7f7e72565e2..b172cf07eaa 100644 --- a/src/mame/machine/pgmprot_igs027a_type2.cpp +++ b/src/mame/machine/pgmprot_igs027a_type2.cpp @@ -130,7 +130,7 @@ MACHINE_START_MEMBER(pgm_arm_type2_state,pgm_arm_type2) /******* ARM 55857F *******/ -MACHINE_CONFIG_START( pgm_arm_type2, pgm_arm_type2_state ) +MACHINE_CONFIG_START( pgm_arm_type2 ) MCFG_FRAGMENT_ADD(pgmbase) MCFG_MACHINE_START_OVERRIDE(pgm_arm_type2_state, pgm_arm_type2 ) diff --git a/src/mame/machine/pgmprot_igs027a_type3.cpp b/src/mame/machine/pgmprot_igs027a_type3.cpp index 0aab879fc9b..9bfcbded9d9 100644 --- a/src/mame/machine/pgmprot_igs027a_type3.cpp +++ b/src/mame/machine/pgmprot_igs027a_type3.cpp @@ -188,7 +188,7 @@ MACHINE_START_MEMBER(pgm_arm_type3_state,pgm_arm_type3) /******* ARM 55857G *******/ -MACHINE_CONFIG_START( pgm_arm_type3, pgm_arm_type3_state ) +MACHINE_CONFIG_START( pgm_arm_type3 ) MCFG_FRAGMENT_ADD(pgmbase) MCFG_MACHINE_START_OVERRIDE(pgm_arm_type3_state, pgm_arm_type3 ) diff --git a/src/mame/machine/pgmprot_orlegend.cpp b/src/mame/machine/pgmprot_orlegend.cpp index 13efe757335..9f6d6aa5aff 100644 --- a/src/mame/machine/pgmprot_orlegend.cpp +++ b/src/mame/machine/pgmprot_orlegend.cpp @@ -220,6 +220,6 @@ INPUT_PORTS_START( orlegendk ) INPUT_PORTS_END -MACHINE_CONFIG_START( pgm_asic3, pgm_asic3_state ) +MACHINE_CONFIG_START( pgm_asic3 ) MCFG_FRAGMENT_ADD(pgmbase) MACHINE_CONFIG_END diff --git a/src/mame/machine/playch10.cpp b/src/mame/machine/playch10.cpp index c6ef69d0149..aec05bfadb3 100644 --- a/src/mame/machine/playch10.cpp +++ b/src/mame/machine/playch10.cpp @@ -752,7 +752,7 @@ DRIVER_INIT_MEMBER(playch10_state,pceboard) machine().device("cart")->memory().space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8_delegate(FUNC(playch10_state::eboard_rom_switch_w),this)); /* ppu_latch callback */ - m_ppu->set_latch(ppu2c0x_latch_delegate(FUNC(playch10_state::mapper9_latch),this)); + m_ppu->set_latch(ppu2c0x_device::latch_delegate(FUNC(playch10_state::mapper9_latch),this)); /* nvram at $6000-$6fff */ machine().device("cart")->memory().space(AS_PROGRAM).install_ram(0x6000, 0x6fff); @@ -804,7 +804,7 @@ DRIVER_INIT_MEMBER(playch10_state,pcfboard_2) void playch10_state::gboard_scanline_cb( int scanline, int vblank, int blanked ) { - if (scanline < PPU_BOTTOM_VISIBLE_SCANLINE) + if (scanline < ppu2c0x_device::BOTTOM_VISIBLE_SCANLINE) { int priorCount = m_IRQ_count; if (m_IRQ_count == 0) @@ -979,7 +979,7 @@ DRIVER_INIT_MEMBER(playch10_state,pcgboard) /* common init */ DRIVER_INIT_CALL(playch10); - m_ppu->set_scanline_callback(ppu2c0x_scanline_delegate(FUNC(playch10_state::gboard_scanline_cb),this)); + m_ppu->set_scanline_callback(ppu2c0x_device::scanline_delegate(FUNC(playch10_state::gboard_scanline_cb),this)); } DRIVER_INIT_MEMBER(playch10_state,pcgboard_type2) @@ -1099,7 +1099,7 @@ DRIVER_INIT_MEMBER(playch10_state,pchboard) /* common init */ DRIVER_INIT_CALL(playch10); - m_ppu->set_scanline_callback(ppu2c0x_scanline_delegate(FUNC(playch10_state::gboard_scanline_cb),this)); + m_ppu->set_scanline_callback(ppu2c0x_device::scanline_delegate(FUNC(playch10_state::gboard_scanline_cb),this)); } /**********************************************************************************/ diff --git a/src/mame/machine/poly88.cpp b/src/mame/machine/poly88.cpp index 11a8ed5de3e..579f478a45a 100644 --- a/src/mame/machine/poly88.cpp +++ b/src/mame/machine/poly88.cpp @@ -302,7 +302,7 @@ SNAPSHOT_LOAD_MEMBER( poly88_state, poly88 ) break; case 3 : /* 03 Auto Start @ Address */ - m_maincpu->set_state_int(I8085_PC, address); + m_maincpu->set_state_int(i8080_cpu_device::I8085_PC, address); theend = 1; break; case 4 : diff --git a/src/mame/machine/prof80mmu.cpp b/src/mame/machine/prof80mmu.cpp index a89ed51af15..e46479cd43b 100644 --- a/src/mame/machine/prof80mmu.cpp +++ b/src/mame/machine/prof80mmu.cpp @@ -15,7 +15,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type PROF80_MMU = device_creator; +DEFINE_DEVICE_TYPE(PROF80_MMU, prof80_mmu_device, "prof80_mmu", "PROF80 MMU") DEVICE_ADDRESS_MAP_START( z80_program_map, 8, prof80_mmu_device ) @@ -36,9 +36,9 @@ ADDRESS_MAP_END //------------------------------------------------- prof80_mmu_device::prof80_mmu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, PROF80_MMU, "PROF80_MMU", tag, owner, clock, "prof80_mmu", __FILE__), - device_memory_interface(mconfig, *this), - m_program_space_config("program", ENDIANNESS_LITTLE, 8, 20, 0, *ADDRESS_MAP_NAME(program_map)) + : device_t(mconfig, PROF80_MMU, tag, owner, clock) + , device_memory_interface(mconfig, *this) + , m_program_space_config("program", ENDIANNESS_LITTLE, 8, 20, 0, *ADDRESS_MAP_NAME(program_map)) { } diff --git a/src/mame/machine/prof80mmu.h b/src/mame/machine/prof80mmu.h index f6694ac7a1f..0df2a19d553 100644 --- a/src/mame/machine/prof80mmu.h +++ b/src/mame/machine/prof80mmu.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_MACHINE_PROF80MMU_H +#define MAME_MACHINE_PROF80MMU_H -#ifndef __PROF80_MMU__ -#define __PROF80_MMU__ +#pragma once @@ -30,8 +30,7 @@ // ======================> prof80_mmu_device -class prof80_mmu_device : public device_t, - public device_memory_interface +class prof80_mmu_device : public device_t, public device_memory_interface { public: prof80_mmu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); @@ -60,8 +59,8 @@ private: // device type definition -extern const device_type PROF80_MMU; +DECLARE_DEVICE_TYPE(PROF80_MMU, prof80_mmu_device) -#endif +#endif // MAME_MACHINE_PROF80MMU_H diff --git a/src/mame/machine/psion_pack.cpp b/src/mame/machine/psion_pack.cpp index a6e91766cd4..498ceeaf85c 100644 --- a/src/mame/machine/psion_pack.cpp +++ b/src/mame/machine/psion_pack.cpp @@ -54,15 +54,15 @@ static const char *datapack_option_spec = // device type definition -const device_type PSION_DATAPACK = device_creator; +DEFINE_DEVICE_TYPE(PSION_DATAPACK, datapack_device, "datapack", "Psion Datapack") //------------------------------------------------- // datapack_device - constructor //------------------------------------------------- datapack_device::datapack_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, PSION_DATAPACK, "Psion Datapack", tag, owner, clock, "datapack", __FILE__), - device_image_interface(mconfig, *this) + : device_t(mconfig, PSION_DATAPACK, tag, owner, clock) + , device_image_interface(mconfig, *this) { } diff --git a/src/mame/machine/psion_pack.h b/src/mame/machine/psion_pack.h index 24516a93341..13584013754 100644 --- a/src/mame/machine/psion_pack.h +++ b/src/mame/machine/psion_pack.h @@ -6,8 +6,8 @@ ****************************************************************************/ -#ifndef __PSION_PACK_H__ -#define __PSION_PACK_H__ +#ifndef MAME_MACHINE_PSION_PACK_H +#define MAME_MACHINE_PSION_PACK_H #include "softlist_dev.h" @@ -69,7 +69,7 @@ private: // device type definition -extern const device_type PSION_DATAPACK; +DECLARE_DEVICE_TYPE(PSION_DATAPACK, datapack_device) /*************************************************************************** @@ -78,4 +78,5 @@ extern const device_type PSION_DATAPACK; #define MCFG_PSION_DATAPACK_ADD(_tag) \ MCFG_DEVICE_ADD(_tag, PSION_DATAPACK, 0) -#endif /* __PSION_PACK_H__ */ + +#endif // MAME_MACHINE_PSION_PACK_H diff --git a/src/mame/machine/psxcd.cpp b/src/mame/machine/psxcd.cpp index f1b4a3fd0c5..f3f1a1cb5e3 100644 --- a/src/mame/machine/psxcd.cpp +++ b/src/mame/machine/psxcd.cpp @@ -83,10 +83,10 @@ enum submode_flags // DEVICE DEFINITIONS //************************************************************************** -const device_type PSXCD = device_creator; +DEFINE_DEVICE_TYPE(PSXCD, psxcd_device, "psx_cd", "PSX CD-ROM") psxcd_device::psxcd_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - cdrom_image_device(mconfig, PSXCD, "PSX Cdrom", tag, owner, clock, "psx_cd", __FILE__), + cdrom_image_device(mconfig, PSXCD, tag, owner, clock), m_irq_handler(*this) { static_set_interface(*this, "psx_cdrom"); diff --git a/src/mame/machine/psxcd.h b/src/mame/machine/psxcd.h index 509817eab1e..b1cc0e5966a 100644 --- a/src/mame/machine/psxcd.h +++ b/src/mame/machine/psxcd.h @@ -1,13 +1,13 @@ // license:BSD-3-Clause // copyright-holders:smf,R. Belmont,pSXAuthor,Carl -#ifndef _included_psxcdrom_ -#define _included_psxcdrom_ +#ifndef MAME_MACHINE_PSXCD_H +#define MAME_MACHINE_PSXCD_H + +#pragma once #include "imagedev/chd_cd.h" #include "sound/spu.h" -#define MAX_PSXCD_TIMERS (4) - //************************************************************************** // INTERFACE CONFIGURATION MACROS //************************************************************************** @@ -24,7 +24,7 @@ public: psxcd_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // static configuration helpers - template static devcb_base &set_irq_handler(device_t &device, _Object object) { return downcast(device).m_irq_handler.set_callback(object); } + template static devcb_base &set_irq_handler(device_t &device, Object &&cb) { return downcast(device).m_irq_handler.set_callback(std::forward(cb)); } virtual image_init_result call_load() override; virtual void call_unload() override; @@ -40,6 +40,8 @@ protected: virtual const tiny_rom_entry *device_rom_region() const override; private: + static constexpr unsigned MAX_PSXCD_TIMERS = 4; + void write_command(uint8_t byte); typedef void (psxcd_device::*cdcmd)(); @@ -156,6 +158,6 @@ private: }; // device type definition -extern const device_type PSXCD; +DECLARE_DEVICE_TYPE(PSXCD, psxcd_device) -#endif +#endif // MAME_MACHINE_PSXCD_H diff --git a/src/mame/machine/qimi.cpp b/src/mame/machine/qimi.cpp index c698f3d587f..00bbc5fc209 100644 --- a/src/mame/machine/qimi.cpp +++ b/src/mame/machine/qimi.cpp @@ -15,14 +15,14 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type QIMI = device_creator; +DEFINE_DEVICE_TYPE(QIMI, qimi_device, "qimi", "QL Internal Mouse Interface") //------------------------------------------------- // INPUT_CHANGED_MEMBER( mouse_x_changed ) //------------------------------------------------- -INPUT_CHANGED_MEMBER( qimi_t::mouse_x_changed ) +INPUT_CHANGED_MEMBER( qimi_device::mouse_x_changed ) { if (newval > oldval) { @@ -46,7 +46,7 @@ INPUT_CHANGED_MEMBER( qimi_t::mouse_x_changed ) // INPUT_CHANGED_MEMBER( mouse_y_changed ) //------------------------------------------------- -INPUT_CHANGED_MEMBER( qimi_t::mouse_y_changed ) +INPUT_CHANGED_MEMBER( qimi_device::mouse_y_changed ) { if (newval < oldval) { @@ -72,10 +72,10 @@ INPUT_CHANGED_MEMBER( qimi_t::mouse_y_changed ) INPUT_PORTS_START( qimi ) PORT_START("mouse_x") - PORT_BIT( 0xff, 0x00, IPT_MOUSE_X ) PORT_SENSITIVITY(50) PORT_KEYDELTA(5) PORT_MINMAX(0, 255) PORT_CHANGED_MEMBER(DEVICE_SELF, qimi_t, mouse_x_changed, 0) + PORT_BIT( 0xff, 0x00, IPT_MOUSE_X ) PORT_SENSITIVITY(50) PORT_KEYDELTA(5) PORT_MINMAX(0, 255) PORT_CHANGED_MEMBER(DEVICE_SELF, qimi_device, mouse_x_changed, 0) PORT_START("mouse_y") - PORT_BIT( 0xff, 0x00, IPT_MOUSE_Y ) PORT_SENSITIVITY(50) PORT_KEYDELTA(5) PORT_MINMAX(0, 255) PORT_CHANGED_MEMBER(DEVICE_SELF, qimi_t, mouse_y_changed, 0) + PORT_BIT( 0xff, 0x00, IPT_MOUSE_Y ) PORT_SENSITIVITY(50) PORT_KEYDELTA(5) PORT_MINMAX(0, 255) PORT_CHANGED_MEMBER(DEVICE_SELF, qimi_device, mouse_y_changed, 0) PORT_START("mouse_buttons") PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Right Mouse Button") PORT_CODE(MOUSECODE_BUTTON2) @@ -88,7 +88,7 @@ INPUT_PORTS_END // input_ports - device-specific input ports //------------------------------------------------- -ioport_constructor qimi_t::device_input_ports() const +ioport_constructor qimi_device::device_input_ports() const { return INPUT_PORTS_NAME( qimi ); } @@ -100,11 +100,11 @@ ioport_constructor qimi_t::device_input_ports() const //************************************************************************** //------------------------------------------------- -// qimi_t - constructor +// qimi_device - constructor //------------------------------------------------- -qimi_t::qimi_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, QIMI, "QL Internal Mouse Interface", tag, owner, clock, "qimi", __FILE__), +qimi_device::qimi_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, QIMI, tag, owner, clock), m_write_extint(*this), m_buttons(*this, "mouse_buttons"), m_status(0), @@ -117,7 +117,7 @@ qimi_t::qimi_t(const machine_config &mconfig, const char *tag, device_t *owner, // device_start - device-specific startup //------------------------------------------------- -void qimi_t::device_start() +void qimi_device::device_start() { // resolve callbacks m_write_extint.resolve_safe(); @@ -128,7 +128,7 @@ void qimi_t::device_start() // device_reset - device-specific reset //------------------------------------------------- -void qimi_t::device_reset() +void qimi_device::device_reset() { m_status = 0; m_extint_en = false; @@ -139,7 +139,7 @@ void qimi_t::device_reset() // read - //------------------------------------------------- -uint8_t qimi_t::read(address_space &space, offs_t offset, uint8_t data) +uint8_t qimi_device::read(address_space &space, offs_t offset, uint8_t data) { switch (offset) { @@ -169,7 +169,7 @@ uint8_t qimi_t::read(address_space &space, offs_t offset, uint8_t data) // write - //------------------------------------------------- -WRITE8_MEMBER( qimi_t::write ) +WRITE8_MEMBER( qimi_device::write ) { // write to 0x1bfbe resets int status if (offset == 0x1bfbe) diff --git a/src/mame/machine/qimi.h b/src/mame/machine/qimi.h index f35cbf1f749..4a714ccdf16 100644 --- a/src/mame/machine/qimi.h +++ b/src/mame/machine/qimi.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_MACHINE_QIMI_H +#define MAME_MACHINE_QIMI_H -#ifndef __QIMI__ -#define __QIMI__ +#pragma once @@ -19,7 +19,7 @@ //************************************************************************** #define MCFG_QIMI_EXTINT_CALLBACK(_write) \ - devcb = &qimi_t::set_exting_wr_callback(*device, DEVCB_##_write); + devcb = &qimi_device::set_exting_wr_callback(*device, DEVCB_##_write); @@ -27,15 +27,15 @@ // TYPE DEFINITIONS //************************************************************************** -// ======================> qimi_t +// ======================> qimi_device -class qimi_t : public device_t +class qimi_device : public device_t { public: // construction/destruction - qimi_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + qimi_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_exting_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_extint.set_callback(object); } + template static devcb_base &set_exting_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_extint.set_callback(std::forward(cb)); } // optional information overrides virtual ioport_constructor device_input_ports() const override; @@ -71,7 +71,7 @@ private: // device type definition extern const device_type QIMI; +DECLARE_DEVICE_TYPE(QIMI, qimi_device) - -#endif +#endif // MAME_MACHINE_QIMI_H diff --git a/src/mame/machine/qx10kbd.cpp b/src/mame/machine/qx10kbd.cpp index a93bf7c7dd4..540ec24a2a8 100644 --- a/src/mame/machine/qx10kbd.cpp +++ b/src/mame/machine/qx10kbd.cpp @@ -9,7 +9,7 @@ qx10_keyboard_device::qx10_keyboard_device(const machine_config& mconfig, const char* tag, device_t* owner, uint32_t clock) - : buffered_rs232_device(mconfig, QX10_KEYBOARD, "QX10 Keyboard", tag, owner, 0, "qx10_keyboard", __FILE__) + : buffered_rs232_device(mconfig, QX10_KEYBOARD, tag, owner, 0) , device_matrix_keyboard_interface(mconfig, *this, "LINE0", "LINE1", "LINE2", "LINE3", "LINE4", "LINE5", "LINE6", "LINE7", "LINE8", "LINE9", "LINEA", "LINEB", "LINEC", "LINED", "LINEE", "LINEF") { } @@ -244,4 +244,4 @@ ioport_constructor qx10_keyboard_device::device_input_ports() const } -const device_type QX10_KEYBOARD = device_creator; +DEFINE_DEVICE_TYPE(QX10_KEYBOARD, qx10_keyboard_device, "qx10_keyboard", "Epson QX-10 Keyboard") diff --git a/src/mame/machine/qx10kbd.h b/src/mame/machine/qx10kbd.h index 61c0f40d7cb..11fd997875c 100644 --- a/src/mame/machine/qx10kbd.h +++ b/src/mame/machine/qx10kbd.h @@ -3,7 +3,11 @@ #ifndef MAME_MACHINE_QX10KBD_H #define MAME_MACHINE_QX10KBD_H -#include "bus/rs232/keyboard.h" +#pragma once + +#include "bus/rs232/rs232.h" +#include "machine/keyboard.h" + class qx10_keyboard_device : public buffered_rs232_device<16U>, protected device_matrix_keyboard_interface<16U> { @@ -20,6 +24,6 @@ private: virtual void received_byte(uint8_t data) override; }; -extern const device_type QX10_KEYBOARD; +DECLARE_DEVICE_TYPE(QX10_KEYBOARD, qx10_keyboard_device) #endif // MAME_MACHINE_QX10KBD_H diff --git a/src/mame/machine/radio86.cpp b/src/mame/machine/radio86.cpp index 8c083958504..c64d01fff69 100644 --- a/src/mame/machine/radio86.cpp +++ b/src/mame/machine/radio86.cpp @@ -129,7 +129,8 @@ void radio86_state::device_timer(emu_timer &timer, device_timer_id id, int param READ8_MEMBER(radio86_state::radio_cpu_state_r) { - return space.device().state().state_int(I8085_STATUS); + // FIXME: the driver should handler the status callback rather than accessing this through the state interface + return space.device().state().state_int(i8080_cpu_device::I8085_STATUS); } READ8_MEMBER(radio86_state::radio_io_r) diff --git a/src/mame/machine/rm380z.cpp b/src/mame/machine/rm380z.cpp index c3919c51c23..e811de279fa 100644 --- a/src/mame/machine/rm380z.cpp +++ b/src/mame/machine/rm380z.cpp @@ -200,7 +200,7 @@ TIMER_CALLBACK_MEMBER(rm380z_state::static_vblank_timer) } } -WRITE8_MEMBER( rm380z_state::keyboard_put ) +void rm380z_state::keyboard_put(u8 data) { if (data) { diff --git a/src/mame/machine/rmnimbus.cpp b/src/mame/machine/rmnimbus.cpp index 4f504107d90..d37fcf92e80 100644 --- a/src/mame/machine/rmnimbus.cpp +++ b/src/mame/machine/rmnimbus.cpp @@ -1487,7 +1487,7 @@ void rmnimbus_state::rmni_sound_reset() { m_msm->reset_w(1); - m_last_playmode = MSM5205_S48_4B; + m_last_playmode = msm5205_device::S48_4B; m_msm->playmode_w(m_last_playmode); m_ay8910_a=0; diff --git a/src/mame/machine/rmnkbd.cpp b/src/mame/machine/rmnkbd.cpp index b7ba96f296b..93d9aa7d508 100644 --- a/src/mame/machine/rmnkbd.cpp +++ b/src/mame/machine/rmnkbd.cpp @@ -7,6 +7,7 @@ namespace { + INPUT_PORTS_START( rmnimbus_keyboard ) PORT_START("LINE0") // Key row 0 scancodes 00..07 PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_UNUSED) @@ -119,7 +120,7 @@ INPUT_PORTS_END rmnimbus_keyboard_device::rmnimbus_keyboard_device(const machine_config& mconfig, const char* tag, device_t* owner, uint32_t clock) - : buffered_rs232_device(mconfig, RMNIMBUS_KEYBOARD, "RM Nimbus Keyboard", tag, owner, 0, "rmnimbus_keyboard", __FILE__) + : buffered_rs232_device(mconfig, RMNIMBUS_KEYBOARD, tag, owner, clock) , device_matrix_keyboard_interface(mconfig, *this, "LINE0", "LINE1", "LINE2", "LINE3", "LINE4", "LINE5", "LINE6", "LINE7", "LINE8", "LINE9", "LINEA") { } @@ -177,4 +178,4 @@ void rmnimbus_keyboard_device::received_byte(uint8_t byte) } -const device_type RMNIMBUS_KEYBOARD = device_creator; +DEFINE_DEVICE_TYPE(RMNIMBUS_KEYBOARD, rmnimbus_keyboard_device, "rmnimbus_keyboard", "RM Nimbus Keyboard") diff --git a/src/mame/machine/rmnkbd.h b/src/mame/machine/rmnkbd.h index 7398cf0d211..f7a4ed26342 100644 --- a/src/mame/machine/rmnkbd.h +++ b/src/mame/machine/rmnkbd.h @@ -23,5 +23,6 @@ private: }; extern const device_type RMNIMBUS_KEYBOARD; +DECLARE_DEVICE_TYPE(RMNIMBUS_KEYBOARD, rmnimbus_keyboard_device) #endif // MAME_MACHINE_RMNKBD_H diff --git a/src/mame/machine/rx01.cpp b/src/mame/machine/rx01.cpp index dd62af3cdc8..f202793cf12 100644 --- a/src/mame/machine/rx01.cpp +++ b/src/mame/machine/rx01.cpp @@ -42,14 +42,14 @@ MACHINE_CONFIG_END // DEVICE DEFINITIONS //************************************************************************** -const device_type RX01 = device_creator; +DEFINE_DEVICE_TYPE(RX01, rx01_device, "rx01", "RX01") //------------------------------------------------- // rx01_device - constructor //------------------------------------------------- rx01_device::rx01_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, RX01, "RX01", tag, owner, clock, "rx01", __FILE__) + : device_t(mconfig, RX01, tag, owner, clock) { } diff --git a/src/mame/machine/rx01.h b/src/mame/machine/rx01.h index 81bebf2bac9..0b9381ab3a4 100644 --- a/src/mame/machine/rx01.h +++ b/src/mame/machine/rx01.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_MACHINE_RX01_H +#define MAME_MACHINE_RX01_H -#ifndef __RX01__ -#define __RX01__ +#pragma once #include "imagedev/flopdrv.h" @@ -79,6 +79,6 @@ private: }; // device type definition -extern const device_type RX01; +DECLARE_DEVICE_TYPE(RX01, rx01_device) -#endif +#endif // MAME_MACHINE_RX01_H diff --git a/src/mame/machine/s32comm.cpp b/src/mame/machine/s32comm.cpp index d25d3bdfc32..66f55286f01 100644 --- a/src/mame/machine/s32comm.cpp +++ b/src/mame/machine/s32comm.cpp @@ -70,7 +70,8 @@ Sega System Multi32 Comm PCB 837-8792-91 #include "emuopts.h" #include "machine/s32comm.h" -//#define __S32COMM_VERBOSE__ +#define VERBOSE 0 +#include "logmacro.h" MACHINE_CONFIG_FRAGMENT( s32comm ) MACHINE_CONFIG_END @@ -79,7 +80,7 @@ MACHINE_CONFIG_END // GLOBAL VARIABLES //************************************************************************** -const device_type S32COMM = device_creator; +DEFINE_DEVICE_TYPE(S32COMM, s32comm_device, "s32comm", "System 32 Communication Board") //------------------------------------------------- // machine_config_additions - device-specific @@ -100,7 +101,7 @@ machine_config_constructor s32comm_device::device_mconfig_additions() const //------------------------------------------------- s32comm_device::s32comm_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, S32COMM, "SYSTEM32 COMMUNICATION BD", tag, owner, clock, "s32comm", __FILE__), + device_t(mconfig, S32COMM, tag, owner, clock), m_line_rx(OPEN_FLAG_WRITE | OPEN_FLAG_CREATE ), m_line_tx(OPEN_FLAG_READ) { @@ -141,34 +142,26 @@ void s32comm_device::device_reset() READ8_MEMBER(s32comm_device::zfg_r) { uint8_t result = m_zfg | 0xFE; -#ifdef __S32COMM_VERBOSE__ - osd_printf_verbose("s32comm-zfg_r: read register %02x for value %02x\n", offset, result); -#endif + LOG("s32comm-zfg_r: read register %02x for value %02x\n", offset, result); return result; } WRITE8_MEMBER(s32comm_device::zfg_w) { -#ifdef __S32COMM_VERBOSE__ - osd_printf_verbose("s32comm-zfg_w: %02x\n", data); -#endif + LOG("s32comm-zfg_w: %02x\n", data); m_zfg = data & 0x01; } READ8_MEMBER(s32comm_device::share_r) { uint8_t result = m_shared[offset]; -#ifdef __S32COMM_VERBOSE__ - osd_printf_verbose("s32comm-share_r: read shared memory %02x for value %02x\n", offset, result); -#endif + LOG("s32comm-share_r: read shared memory %02x for value %02x\n", offset, result); return result; } WRITE8_MEMBER(s32comm_device::share_w) { -#ifdef __S32COMM_VERBOSE__ - osd_printf_verbose("s32comm-share_w: %02x %02x\n", offset, data); -#endif + LOG("s32comm-share_w: %02x %02x\n", offset, data); m_shared[offset] = data; } @@ -181,7 +174,7 @@ WRITE8_MEMBER(s32comm_device::cn_w) { m_cn = data & 0x01; -#ifndef __S32COMM_SIMULATION__ +#ifndef S32COMM_SIMULATION if (!m_cn) device_reset(); #else @@ -221,13 +214,13 @@ WRITE8_MEMBER(s32comm_device::fg_w) void s32comm_device::check_vint_irq() { -#ifndef __S32COMM_SIMULATION__ +#ifndef S32COMM_SIMULATION #else comm_tick(); #endif } -#ifdef __S32COMM_SIMULATION__ +#ifdef S32COMM_SIMULATION void s32comm_device::set_linktype(uint16_t linktype) { m_linktype = linktype; diff --git a/src/mame/machine/s32comm.h b/src/mame/machine/s32comm.h index ffd82ffafa4..c88ec806f4a 100644 --- a/src/mame/machine/s32comm.h +++ b/src/mame/machine/s32comm.h @@ -1,11 +1,11 @@ // license:BSD-3-Clause // copyright-holders:Ariane Fugmann -#pragma once +#ifndef MAME_MACHINE_S32COMM_H +#define MAME_MACHINE_S32COMM_H -#ifndef __S32COMM_H__ -#define __S32COMM_H__ +#pragma once -#define __S32COMM_SIMULATION__ +#define S32COMM_SIMULATION #define MCFG_S32COMM_ADD(_tag ) \ MCFG_DEVICE_ADD(_tag, S32COMM, 0) @@ -45,7 +45,7 @@ public: // IRQ logic - 5 = VINT, 7 = DLC void check_vint_irq(); -#ifdef __S32COMM_SIMULATION__ +#ifdef S32COMM_SIMULATION void set_linktype(uint16_t linktype); #endif @@ -66,7 +66,7 @@ private: char m_remotehost[256]; uint8_t m_buffer[0x800]; -#ifdef __S32COMM_SIMULATION__ +#ifdef S32COMM_SIMULATION uint8_t m_linkenable; uint16_t m_linktimer; uint8_t m_linkalive; @@ -84,6 +84,6 @@ private: }; // device type definition -extern const device_type S32COMM; +DECLARE_DEVICE_TYPE(S32COMM, s32comm_device) -#endif /* __S32COMM_H__ */ +#endif // MAME_MACHINE_S32COMM_H diff --git a/src/mame/machine/segabb.cpp b/src/mame/machine/segabb.cpp index e930caa4f3c..63a5dd7edb2 100644 --- a/src/mame/machine/segabb.cpp +++ b/src/mame/machine/segabb.cpp @@ -3,7 +3,7 @@ #include "emu.h" #include "segabb.h" -const device_type SEGA_LINDBERGH_BASEBOARD = device_creator; +DEFINE_DEVICE_TYPE(SEGA_LINDBERGH_BASEBOARD, sega_lindbergh_baseboard_device, "lindbergh_baseboard", "Sega Lindbergh Baseboard") DEVICE_ADDRESS_MAP_START(map1, 32, sega_lindbergh_baseboard_device) ADDRESS_MAP_END @@ -15,7 +15,7 @@ DEVICE_ADDRESS_MAP_START(map3, 32, sega_lindbergh_baseboard_device) ADDRESS_MAP_END sega_lindbergh_baseboard_device::sega_lindbergh_baseboard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : pci_device(mconfig, SEGA_LINDBERGH_BASEBOARD, "Sega Lindbergh Baseboard", tag, owner, clock, "sega_lindbergh_baseboard", __FILE__) + : pci_device(mconfig, SEGA_LINDBERGH_BASEBOARD, tag, owner, clock) { } diff --git a/src/mame/machine/segabb.h b/src/mame/machine/segabb.h index 4dfc922a63a..1f1aba4b0a3 100644 --- a/src/mame/machine/segabb.h +++ b/src/mame/machine/segabb.h @@ -2,8 +2,10 @@ // copyright-holders:Olivier Galibert // Lindbergh Sega baseboard -#ifndef SEGABB_H -#define SEGABB_H +#ifndef MAME_MACHINE_SEGABB_H +#define MAME_MACHINE_SEGABB_H + +#pragma once #include "machine/pci.h" @@ -24,6 +26,6 @@ private: DECLARE_ADDRESS_MAP(map3, 32); }; -extern const device_type SEGA_LINDBERGH_BASEBOARD; +DECLARE_DEVICE_TYPE(SEGA_LINDBERGH_BASEBOARD, sega_lindbergh_baseboard_device) -#endif +#endif // MAME_MACHINE_SEGABB_H diff --git a/src/mame/machine/segacrp2_device.cpp b/src/mame/machine/segacrp2_device.cpp index 63b0dd4b8a5..2ac88287eeb 100644 --- a/src/mame/machine/segacrp2_device.cpp +++ b/src/mame/machine/segacrp2_device.cpp @@ -84,20 +84,20 @@ static void decode(uint8_t *rom, uint8_t *decrypted, } } -const device_type SEGA_315_5179 = device_creator; -const device_type SEGA_315_5178 = device_creator; -const device_type SEGA_315_5177 = device_creator; // also seen as 317-5000 -const device_type SEGA_315_5176 = device_creator; // TODO! -const device_type SEGA_315_5162 = device_creator; +DEFINE_DEVICE_TYPE(SEGA_315_5179, sega_315_5179_device, "sega_315_5179", "Sega 315-5179") +DEFINE_DEVICE_TYPE(SEGA_315_5178, sega_315_5178_device, "sega_315_5178", "Sega 315-5178") +DEFINE_DEVICE_TYPE(SEGA_315_5177, sega_315_5177_device, "sega_315_5177", "Sega 315-5177") // also seen as 317-5000 +DEFINE_DEVICE_TYPE(SEGA_315_5176, sega_315_5176_device, "sega_315_5176", "Sega 315-5176") // TODO! +DEFINE_DEVICE_TYPE(SEGA_315_5162, sega_315_5162_device, "sega_315_5162", "Sega 315-5162") -const device_type SEGA_317_0004 = device_creator; -const device_type SEGA_317_0005 = device_creator; -const device_type SEGA_317_0006 = device_creator; -const device_type SEGA_317_0007 = device_creator; +DEFINE_DEVICE_TYPE(SEGA_317_0004, sega_317_0004_device, "sega_317_0004", "Sega 317-0004") +DEFINE_DEVICE_TYPE(SEGA_317_0005, sega_317_0005_device, "sega_317_0005", "Sega 317-0005") +DEFINE_DEVICE_TYPE(SEGA_317_0006, sega_317_0006_device, "sega_317_0006", "Sega 317-0006") +DEFINE_DEVICE_TYPE(SEGA_317_0007, sega_317_0007_device, "sega_317_0007", "Sega 317-0007") -segacrp2_z80_device::segacrp2_z80_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : z80_device(mconfig, type, name, tag, owner, clock, shortname, __FILE__) {} +segacrp2_z80_device::segacrp2_z80_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : z80_device(mconfig, type, tag, owner, clock) {} void segacrp2_z80_device::device_start() { z80_device::device_start(); decrypt(); } void segacrp2_z80_device::device_reset() { z80_device::device_reset(); } void segacrp2_z80_device::decrypt() { } @@ -109,7 +109,7 @@ void segacrp2_z80_device::set_decrypted_tag(device_t &device, const char* decryp } -sega_315_5177_device::sega_315_5177_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : segacrp2_z80_device(mconfig, SEGA_315_5177, "Sega 315-5177", tag, owner, clock, "sega_315_5177", __FILE__) {} +sega_315_5177_device::sega_315_5177_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : segacrp2_z80_device(mconfig, SEGA_315_5177, tag, owner, clock) {} void sega_315_5177_device::decrypt() { @@ -167,7 +167,7 @@ void sega_315_5177_device::decrypt() } -sega_315_5176_device::sega_315_5176_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : segacrp2_z80_device(mconfig, SEGA_315_5176, "Sega 315-5176", tag, owner, clock, "sega_315_5176", __FILE__) {} +sega_315_5176_device::sega_315_5176_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : segacrp2_z80_device(mconfig, SEGA_315_5176, tag, owner, clock) {} void sega_315_5176_device::decrypt() { @@ -176,7 +176,7 @@ void sega_315_5176_device::decrypt() } -sega_315_5162_device::sega_315_5162_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : segacrp2_z80_device(mconfig, SEGA_315_5162, "Sega 315-5162", tag, owner, clock, "sega_315_5162", __FILE__) {} +sega_315_5162_device::sega_315_5162_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : segacrp2_z80_device(mconfig, SEGA_315_5162, tag, owner, clock) {} void sega_315_5162_device::decrypt() { // 315-5162 @@ -212,7 +212,7 @@ void sega_315_5162_device::decrypt() -sega_315_5178_device::sega_315_5178_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : segacrp2_z80_device(mconfig, SEGA_315_5178, "Sega 315-5178", tag, owner, clock, "sega_315_5178", __FILE__) {} +sega_315_5178_device::sega_315_5178_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : segacrp2_z80_device(mconfig, SEGA_315_5178, tag, owner, clock) {} void sega_315_5178_device::decrypt() { // 315-5178 static const uint8_t xor_table[128] = @@ -260,7 +260,7 @@ void sega_315_5178_device::decrypt() -sega_315_5179_device::sega_315_5179_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : segacrp2_z80_device(mconfig, SEGA_315_5179, "Sega 315-5179", tag, owner, clock, "sega_315_5179", __FILE__) {} +sega_315_5179_device::sega_315_5179_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : segacrp2_z80_device(mconfig, SEGA_315_5179, tag, owner, clock) {} void sega_315_5179_device::decrypt() { // 315-5179 static const uint8_t xor_table[128] = @@ -310,7 +310,7 @@ void sega_315_5179_device::decrypt() ******************************************************************************/ -void _sega_decode_317(uint8_t *rom, uint8_t *decrypted, int shift) +static void sega_decode_317(uint8_t *rom, uint8_t *decrypted, int shift) { static const uint8_t xor_table[128+3] = { @@ -342,29 +342,29 @@ void _sega_decode_317(uint8_t *rom, uint8_t *decrypted, int shift) } -sega_317_0004_device::sega_317_0004_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : segacrp2_z80_device(mconfig, SEGA_317_0004, "Sega 317-0004", tag, owner, clock, "sega_317_0004", __FILE__) {} +sega_317_0004_device::sega_317_0004_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : segacrp2_z80_device(mconfig, SEGA_317_0004, tag, owner, clock) {} void sega_317_0004_device::decrypt() { // 317-0004 - _sega_decode_317(memregion(tag())->base(), (uint8_t*)memshare(m_decrypted_tag)->ptr(), 0); + sega_decode_317(memregion(tag())->base(), (uint8_t*)memshare(m_decrypted_tag)->ptr(), 0); } -sega_317_0005_device::sega_317_0005_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : segacrp2_z80_device(mconfig, SEGA_317_0005, "Sega 317-0005", tag, owner, clock, "sega_317_0005", __FILE__) {} +sega_317_0005_device::sega_317_0005_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : segacrp2_z80_device(mconfig, SEGA_317_0005, tag, owner, clock) {} void sega_317_0005_device::decrypt() { // 317-0005 - _sega_decode_317(memregion(tag())->base(), (uint8_t*)memshare(m_decrypted_tag)->ptr(), 1); + sega_decode_317(memregion(tag())->base(), (uint8_t*)memshare(m_decrypted_tag)->ptr(), 1); } -sega_317_0006_device::sega_317_0006_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : segacrp2_z80_device(mconfig, SEGA_317_0006, "Sega 317-0006", tag, owner, clock, "sega_317_0006", __FILE__) {} +sega_317_0006_device::sega_317_0006_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : segacrp2_z80_device(mconfig, SEGA_317_0006, tag, owner, clock) {} void sega_317_0006_device::decrypt() { // 317-0006 - _sega_decode_317(memregion(tag())->base(), (uint8_t*)memshare(m_decrypted_tag)->ptr(), 2); + sega_decode_317(memregion(tag())->base(), (uint8_t*)memshare(m_decrypted_tag)->ptr(), 2); } -sega_317_0007_device::sega_317_0007_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : segacrp2_z80_device(mconfig, SEGA_317_0007, "Sega 317-0007", tag, owner, clock, "sega_317_0007", __FILE__) {} +sega_317_0007_device::sega_317_0007_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : segacrp2_z80_device(mconfig, SEGA_317_0007, tag, owner, clock) {} void sega_317_0007_device::decrypt() { // 317-0006 - _sega_decode_317(memregion(tag())->base(), (uint8_t*)memshare(m_decrypted_tag)->ptr(), 3); + sega_decode_317(memregion(tag())->base(), (uint8_t*)memshare(m_decrypted_tag)->ptr(), 3); } diff --git a/src/mame/machine/segacrp2_device.h b/src/mame/machine/segacrp2_device.h index 37fbf2fc606..8bda4564b43 100644 --- a/src/mame/machine/segacrp2_device.h +++ b/src/mame/machine/segacrp2_device.h @@ -1,26 +1,26 @@ // license:BSD-3-Clause // copyright-holders:David Haywood +#ifndef MAME_MACHINE_SEGACRP2_DEVICE_H +#define MAME_MACHINE_SEGACRP2_DEVICE_H #pragma once -#ifndef __SEGACRP2_Z80__ -#define __SEGACRP2_Z80__ + +#include "cpu/z80/z80.h" #define MCFG_SEGAZ80_SET_DECRYPTED_TAG(_tag) \ segacrp2_z80_device::set_decrypted_tag(*device, _tag); -#include "cpu/z80/z80.h" - // base class class segacrp2_z80_device : public z80_device { public: - segacrp2_z80_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - static void set_decrypted_tag(device_t &device, const char* decrypted_tag); const char* m_decrypted_tag; protected: + segacrp2_z80_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; virtual void device_reset() override; virtual void decrypt(); @@ -105,16 +105,16 @@ protected: }; -extern const device_type SEGA_315_5179; -extern const device_type SEGA_315_5178; -extern const device_type SEGA_315_5177; -extern const device_type SEGA_315_5176; -extern const device_type SEGA_315_5162; +DECLARE_DEVICE_TYPE(SEGA_315_5179, sega_315_5179_device) +DECLARE_DEVICE_TYPE(SEGA_315_5178, sega_315_5178_device) +DECLARE_DEVICE_TYPE(SEGA_315_5177, sega_315_5177_device) +DECLARE_DEVICE_TYPE(SEGA_315_5176, sega_315_5176_device) +DECLARE_DEVICE_TYPE(SEGA_315_5162, sega_315_5162_device) -extern const device_type SEGA_317_0004; -extern const device_type SEGA_317_0005; -extern const device_type SEGA_317_0006; -extern const device_type SEGA_317_0007; +DECLARE_DEVICE_TYPE(SEGA_317_0004, sega_317_0004_device) +DECLARE_DEVICE_TYPE(SEGA_317_0005, sega_317_0005_device) +DECLARE_DEVICE_TYPE(SEGA_317_0006, sega_317_0006_device) +DECLARE_DEVICE_TYPE(SEGA_317_0007, sega_317_0007_device) -#endif /// __SEGACRP2_Z80__ +#endif // MAME_MACHINE_SEGACRP2_DEVICE_H diff --git a/src/mame/machine/segacrpt_device.cpp b/src/mame/machine/segacrpt_device.cpp index ff06ff38f5d..99e772560d6 100644 --- a/src/mame/machine/segacrpt_device.cpp +++ b/src/mame/machine/segacrpt_device.cpp @@ -255,47 +255,53 @@ static void decode(uint8_t *data, uint8_t *opcodes, int size, const uint8_t conv -const device_type SEGA_315_5132 = device_creator; -const device_type SEGA_315_5155 = device_creator; -const device_type SEGA_315_5110 = device_creator; -const device_type SEGA_315_5135 = device_creator; -const device_type SEGA_315_5051 = device_creator; -const device_type SEGA_315_5098 = device_creator; // also 315-5030 ? -const device_type SEGA_315_5102 = device_creator; -const device_type SEGA_315_5065 = device_creator; -const device_type SEGA_315_5064 = device_creator; -const device_type SEGA_315_5033 = device_creator; -const device_type SEGA_315_5041 = device_creator; -const device_type SEGA_315_5048 = device_creator; -const device_type SEGA_315_5093 = device_creator; -const device_type SEGA_315_5099 = device_creator; -const device_type SEGA_315_5015 = device_creator; -const device_type SEGA_315_5133 = device_creator; // NOT DECRYPTED YET -const device_type SEGA_315_5061 = device_creator; -const device_type SEGA_315_5028 = device_creator; -const device_type SEGA_315_5084 = device_creator; -const device_type SEGA_315_5013 = device_creator; -const device_type SEGA_315_5014 = device_creator; -const device_type SEGA_315_5018 = device_creator; -const device_type SEGA_315_5010 = device_creator; +DEFINE_DEVICE_TYPE(SEGA_315_5132, sega_315_5132_device, "sega_315_5132", "Sega 315-5132") +DEFINE_DEVICE_TYPE(SEGA_315_5155, sega_315_5155_device, "sega_315_5155", "Sega 315-5155") +DEFINE_DEVICE_TYPE(SEGA_315_5110, sega_315_5110_device, "sega_315_5110", "Sega 315-5110") +DEFINE_DEVICE_TYPE(SEGA_315_5135, sega_315_5135_device, "sega_315_5135", "Sega 315-5135") +DEFINE_DEVICE_TYPE(SEGA_315_5051, sega_315_5051_device, "sega_315_5051", "Sega 315-5051") +DEFINE_DEVICE_TYPE(SEGA_315_5098, sega_315_5098_device, "sega_315_5098", "Sega 315-5098") // also 315-5030 ? +DEFINE_DEVICE_TYPE(SEGA_315_5102, sega_315_5102_device, "sega_315_5102", "Sega 315-5102") +DEFINE_DEVICE_TYPE(SEGA_315_5065, sega_315_5065_device, "sega_315_5065", "Sega 315-5065") +DEFINE_DEVICE_TYPE(SEGA_315_5064, sega_315_5064_device, "sega_315_5064", "Sega 315-5064") +DEFINE_DEVICE_TYPE(SEGA_315_5033, sega_315_5033_device, "sega_315_5033", "Sega 315-5033") +DEFINE_DEVICE_TYPE(SEGA_315_5041, sega_315_5041_device, "sega_315_5041", "Sega 315-5041") +DEFINE_DEVICE_TYPE(SEGA_315_5048, sega_315_5048_device, "sega_315_5048", "Sega 315-5048") +DEFINE_DEVICE_TYPE(SEGA_315_5093, sega_315_5093_device, "sega_315_5093", "Sega 315-5093") +DEFINE_DEVICE_TYPE(SEGA_315_5099, sega_315_5099_device, "sega_315_5099", "Sega 315-5099") +DEFINE_DEVICE_TYPE(SEGA_315_5015, sega_315_5015_device, "sega_315_5015", "Sega 315-5015") +DEFINE_DEVICE_TYPE(SEGA_315_5133, sega_315_5133_device, "sega_315_5133", "Sega 315-5133") // NOT DECRYPTED YET +DEFINE_DEVICE_TYPE(SEGA_315_5061, sega_315_5061_device, "sega_315_5061", "Sega 315-5061") +DEFINE_DEVICE_TYPE(SEGA_315_5028, sega_315_5028_device, "sega_315_5028", "Sega 315-5028") +DEFINE_DEVICE_TYPE(SEGA_315_5084, sega_315_5084_device, "sega_315_5084", "Sega 315-5084") +DEFINE_DEVICE_TYPE(SEGA_315_5013, sega_315_5013_device, "sega_315_5013", "Sega 315-5013") +DEFINE_DEVICE_TYPE(SEGA_315_5014, sega_315_5014_device, "sega_315_5014", "Sega 315-5014") +DEFINE_DEVICE_TYPE(SEGA_315_5018, sega_315_5018_device, "sega_315_5018", "Sega 315-5018") +DEFINE_DEVICE_TYPE(SEGA_315_5010, sega_315_5010_device, "sega_315_5010", "Sega 315-5010") // below are unknown part numbers -const device_type SEGA_315_SPAT = device_creator; // unknown part number -const device_type SEGA_CPU_PBACTIO4 = device_creator; +DEFINE_DEVICE_TYPE(SEGA_315_SPAT, sega_315_spat_device, "sega_315_spat", "Sega 315-???? Spat") // unknown part number +DEFINE_DEVICE_TYPE(SEGA_CPU_PBACTIO4, sega_cpu_pbactio4_device, "sega_pbactio4", "Sega pbactio4") -segacrpt_z80_device::segacrpt_z80_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - z80_device(mconfig, type, name, tag, owner, clock, shortname, source), +segacrpt_z80_device::segacrpt_z80_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + z80_device(mconfig, type, tag, owner, clock), m_decrypted_ptr(nullptr), m_region_ptr(nullptr), m_decode_size(0x8000), m_numbanks(0), m_banksize(0), m_decryption_done(false) - {} -void segacrpt_z80_device::device_start() { z80_device::device_start(); } +{ +} + +void segacrpt_z80_device::device_start() +{ + z80_device::device_start(); +} + void segacrpt_z80_device::device_reset() { // decrypt on reset, makes sure DRIVER_INIT stuff happens first (for myherok) @@ -316,9 +322,7 @@ void segacrpt_z80_device::device_reset() m_decryption_done = true; } z80_device::device_reset(); - } -void segacrpt_z80_device::decrypt() { } void segacrpt_z80_device::set_decrypted_tag(device_t &device, const char* decrypted_tag) { @@ -363,7 +367,7 @@ void segacrpt_z80_device::set_banksize(device_t &device, int banksize) -sega_315_5132_device::sega_315_5132_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : segacrpt_z80_device(mconfig, SEGA_315_5132, "Sega 315-5132", tag, owner, clock, "sega_315_5132", __FILE__) {} +sega_315_5132_device::sega_315_5132_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : segacrpt_z80_device(mconfig, SEGA_315_5132, tag, owner, clock) {} void sega_315_5132_device::decrypt() { static const uint8_t convtable[32][4] = @@ -394,7 +398,7 @@ void sega_315_5132_device::decrypt() -sega_315_5155_device::sega_315_5155_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : segacrpt_z80_device(mconfig, SEGA_315_5155, "Sega 315-5155", tag, owner, clock, "sega_315_5155", __FILE__) {} +sega_315_5155_device::sega_315_5155_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : segacrpt_z80_device(mconfig, SEGA_315_5155, tag, owner, clock) {} void sega_315_5155_device::decrypt() { static const uint8_t convtable[32][4] = @@ -425,7 +429,7 @@ void sega_315_5155_device::decrypt() -sega_315_5110_device::sega_315_5110_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : segacrpt_z80_device(mconfig, SEGA_315_5110, "Sega 315-5110", tag, owner, clock, "sega_315_5110", __FILE__) {} +sega_315_5110_device::sega_315_5110_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : segacrpt_z80_device(mconfig, SEGA_315_5110, tag, owner, clock) {} void sega_315_5110_device::decrypt() { static const uint8_t convtable[32][4] = @@ -455,7 +459,7 @@ void sega_315_5110_device::decrypt() -sega_315_5135_device::sega_315_5135_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : segacrpt_z80_device(mconfig, SEGA_315_5135, "Sega 315-5135", tag, owner, clock, "sega_315_5135", __FILE__) {} +sega_315_5135_device::sega_315_5135_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : segacrpt_z80_device(mconfig, SEGA_315_5135, tag, owner, clock) {} void sega_315_5135_device::decrypt() { static const uint8_t convtable[32][4] = @@ -486,7 +490,7 @@ void sega_315_5135_device::decrypt() -sega_315_5051_device::sega_315_5051_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : segacrpt_z80_device(mconfig, SEGA_315_5051, "Sega 315-5051", tag, owner, clock, "sega_315_5051", __FILE__) {} +sega_315_5051_device::sega_315_5051_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : segacrpt_z80_device(mconfig, SEGA_315_5051, tag, owner, clock) {} void sega_315_5051_device::decrypt() { static const uint8_t convtable[32][4] = @@ -516,7 +520,7 @@ void sega_315_5051_device::decrypt() -sega_315_5098_device::sega_315_5098_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : segacrpt_z80_device(mconfig, SEGA_315_5098, "Sega 315-5098", tag, owner, clock, "sega_315_5098", __FILE__) {} +sega_315_5098_device::sega_315_5098_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : segacrpt_z80_device(mconfig, SEGA_315_5098, tag, owner, clock) {} void sega_315_5098_device::decrypt() { // also 315-5030 ? @@ -548,7 +552,7 @@ void sega_315_5098_device::decrypt() -sega_315_5102_device::sega_315_5102_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : segacrpt_z80_device(mconfig, SEGA_315_5102, "Sega 315-5102", tag, owner, clock, "sega_315_5102", __FILE__) {} +sega_315_5102_device::sega_315_5102_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : segacrpt_z80_device(mconfig, SEGA_315_5102, tag, owner, clock) {} void sega_315_5102_device::decrypt() { static const uint8_t convtable[32][4] = @@ -577,7 +581,7 @@ void sega_315_5102_device::decrypt() } -sega_315_5065_device::sega_315_5065_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : segacrpt_z80_device(mconfig, SEGA_315_5065, "Sega 315-5065", tag, owner, clock, "sega_315_5065", __FILE__) {} +sega_315_5065_device::sega_315_5065_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : segacrpt_z80_device(mconfig, SEGA_315_5065, tag, owner, clock) {} void sega_315_5065_device::decrypt() { static const uint8_t convtable[32][4] = @@ -606,7 +610,7 @@ void sega_315_5065_device::decrypt() } -sega_315_5064_device::sega_315_5064_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : segacrpt_z80_device(mconfig, SEGA_315_5064, "Sega 315-5064", tag, owner, clock, "sega_315_5064", __FILE__) {} +sega_315_5064_device::sega_315_5064_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : segacrpt_z80_device(mconfig, SEGA_315_5064, tag, owner, clock) {} void sega_315_5064_device::decrypt() { static const uint8_t convtable[32][4] = @@ -636,7 +640,7 @@ void sega_315_5064_device::decrypt() -sega_315_5033_device::sega_315_5033_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : segacrpt_z80_device(mconfig, SEGA_315_5033, "Sega 315-5033", tag, owner, clock, "sega_315_5033", __FILE__) {} +sega_315_5033_device::sega_315_5033_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : segacrpt_z80_device(mconfig, SEGA_315_5033, tag, owner, clock) {} void sega_315_5033_device::decrypt() { static const uint8_t convtable[32][4] = @@ -665,7 +669,7 @@ void sega_315_5033_device::decrypt() } -sega_315_5041_device::sega_315_5041_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : segacrpt_z80_device(mconfig, SEGA_315_5041, "Sega 315-5041", tag, owner, clock, "sega_315_5041", __FILE__) {} +sega_315_5041_device::sega_315_5041_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : segacrpt_z80_device(mconfig, SEGA_315_5041, tag, owner, clock) {} void sega_315_5041_device::decrypt() { static const uint8_t convtable[32][4] = @@ -695,7 +699,7 @@ void sega_315_5041_device::decrypt() -sega_315_5048_device::sega_315_5048_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : segacrpt_z80_device(mconfig, SEGA_315_5048, "Sega 315-5048", tag, owner, clock, "sega_315_5048", __FILE__) {} +sega_315_5048_device::sega_315_5048_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : segacrpt_z80_device(mconfig, SEGA_315_5048, tag, owner, clock) {} void sega_315_5048_device::decrypt() { static const uint8_t convtable[32][4] = @@ -724,7 +728,7 @@ void sega_315_5048_device::decrypt() } -sega_315_5093_device::sega_315_5093_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : segacrpt_z80_device(mconfig, SEGA_315_5093, "Sega 315-5093", tag, owner, clock, "sega_315_5093", __FILE__) {} +sega_315_5093_device::sega_315_5093_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : segacrpt_z80_device(mconfig, SEGA_315_5093, tag, owner, clock) {} void sega_315_5093_device::decrypt() { static const uint8_t convtable[32][4] = @@ -754,7 +758,7 @@ void sega_315_5093_device::decrypt() -sega_315_5099_device::sega_315_5099_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : segacrpt_z80_device(mconfig, SEGA_315_5099, "Sega 315-5099", tag, owner, clock, "sega_315_5099", __FILE__) {} +sega_315_5099_device::sega_315_5099_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : segacrpt_z80_device(mconfig, SEGA_315_5099, tag, owner, clock) {} void sega_315_5099_device::decrypt() { static const uint8_t convtable[32][4] = @@ -785,7 +789,7 @@ void sega_315_5099_device::decrypt() -sega_315_spat_device::sega_315_spat_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : segacrpt_z80_device(mconfig, SEGA_315_SPAT, "Sega 315-???? Spat", tag, owner, clock, "sega_315_spat", __FILE__) {} +sega_315_spat_device::sega_315_spat_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : segacrpt_z80_device(mconfig, SEGA_315_SPAT, tag, owner, clock) {} void sega_315_spat_device::decrypt() { static const uint8_t convtable[32][4] = @@ -813,7 +817,7 @@ void sega_315_spat_device::decrypt() decode(m_region_ptr, m_decrypted_ptr, m_decode_size, convtable, m_numbanks, m_banksize); } -sega_315_5015_device::sega_315_5015_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : segacrpt_z80_device(mconfig, SEGA_315_5015, "Sega 315-5015", tag, owner, clock, "sega_315_5015", __FILE__) {} +sega_315_5015_device::sega_315_5015_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : segacrpt_z80_device(mconfig, SEGA_315_5015, tag, owner, clock) {} void sega_315_5015_device::decrypt() { static const uint8_t convtable[32][4] = @@ -843,7 +847,7 @@ void sega_315_5015_device::decrypt() } -sega_315_5133_device::sega_315_5133_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : segacrpt_z80_device(mconfig, SEGA_315_5133, "Sega 315-5133", tag, owner, clock, "sega_315_5133", __FILE__) {} +sega_315_5133_device::sega_315_5133_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : segacrpt_z80_device(mconfig, SEGA_315_5133, tag, owner, clock) {} void sega_315_5133_device::decrypt() { // TODO @@ -851,7 +855,7 @@ void sega_315_5133_device::decrypt() -sega_315_5014_device::sega_315_5014_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : segacrpt_z80_device(mconfig, SEGA_315_5014, "Sega 315-5014", tag, owner, clock, "sega_315_5014", __FILE__) {} +sega_315_5014_device::sega_315_5014_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : segacrpt_z80_device(mconfig, SEGA_315_5014, tag, owner, clock) {} void sega_315_5014_device::decrypt() { static const uint8_t convtable[32][4] = @@ -880,7 +884,7 @@ void sega_315_5014_device::decrypt() -sega_315_5013_device::sega_315_5013_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : segacrpt_z80_device(mconfig, SEGA_315_5013, "Sega 315-5013", tag, owner, clock, "sega_315_5013", __FILE__) {} +sega_315_5013_device::sega_315_5013_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : segacrpt_z80_device(mconfig, SEGA_315_5013, tag, owner, clock) {} void sega_315_5013_device::decrypt() { static const uint8_t convtable[32][4] = @@ -909,7 +913,7 @@ void sega_315_5013_device::decrypt() } -sega_315_5061_device::sega_315_5061_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : segacrpt_z80_device(mconfig, SEGA_315_5061, "Sega 315-5061", tag, owner, clock, "sega_315_5061", __FILE__) {} +sega_315_5061_device::sega_315_5061_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : segacrpt_z80_device(mconfig, SEGA_315_5061, tag, owner, clock) {} void sega_315_5061_device::decrypt() { static const uint8_t convtable[32][4] = @@ -939,7 +943,7 @@ void sega_315_5061_device::decrypt() -sega_315_5018_device::sega_315_5018_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : segacrpt_z80_device(mconfig, SEGA_315_5018, "Sega 315-5018", tag, owner, clock, "sega_315_5018", __FILE__) {} +sega_315_5018_device::sega_315_5018_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : segacrpt_z80_device(mconfig, SEGA_315_5018, tag, owner, clock) {} void sega_315_5018_device::decrypt() { static const uint8_t convtable[32][4] = @@ -969,7 +973,7 @@ void sega_315_5018_device::decrypt() } -sega_315_5010_device::sega_315_5010_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : segacrpt_z80_device(mconfig, SEGA_315_5010, "Sega 315-5010", tag, owner, clock, "sega_315_5010", __FILE__) {} +sega_315_5010_device::sega_315_5010_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : segacrpt_z80_device(mconfig, SEGA_315_5010, tag, owner, clock) {} void sega_315_5010_device::decrypt() { static const uint8_t convtable[32][4] = @@ -1000,7 +1004,7 @@ void sega_315_5010_device::decrypt() -sega_cpu_pbactio4_device::sega_cpu_pbactio4_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : segacrpt_z80_device(mconfig, SEGA_CPU_PBACTIO4, "Sega pbactio4", tag, owner, clock, "sega_pbactio4", __FILE__) {} +sega_cpu_pbactio4_device::sega_cpu_pbactio4_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : segacrpt_z80_device(mconfig, SEGA_CPU_PBACTIO4, tag, owner, clock) {} void sega_cpu_pbactio4_device::decrypt() { static const uint8_t convtable[32][4] = @@ -1029,7 +1033,7 @@ void sega_cpu_pbactio4_device::decrypt() } -sega_315_5028_device::sega_315_5028_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : segacrpt_z80_device(mconfig, SEGA_315_5028, "Sega 315-5028", tag, owner, clock, "sega_315_5028", __FILE__) {} +sega_315_5028_device::sega_315_5028_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : segacrpt_z80_device(mconfig, SEGA_315_5028, tag, owner, clock) {} void sega_315_5028_device::decrypt() { static const uint8_t convtable[32][4] = @@ -1058,7 +1062,7 @@ void sega_315_5028_device::decrypt() } -sega_315_5084_device::sega_315_5084_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : segacrpt_z80_device(mconfig, SEGA_315_5084, "Sega 315-5084", tag, owner, clock, "sega_315_5084", __FILE__) {} +sega_315_5084_device::sega_315_5084_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : segacrpt_z80_device(mconfig, SEGA_315_5084, tag, owner, clock) {} void sega_315_5084_device::decrypt() { static const uint8_t convtable[32][4] = diff --git a/src/mame/machine/segacrpt_device.h b/src/mame/machine/segacrpt_device.h index da3a8ad6ddf..50bf16e14cf 100644 --- a/src/mame/machine/segacrpt_device.h +++ b/src/mame/machine/segacrpt_device.h @@ -1,10 +1,12 @@ // license:BSD-3-Clause // copyright-holders:David Haywood +#ifndef MAME_MACHINE_SEGACRYPT_DEVICE_H +#define MAME_MACHINE_SEGACRYPT_DEVICE_H + #pragma once -#ifndef __SEGACRPT_Z80__ -#define __SEGACRPT_Z80__ +#include "cpu/z80/z80.h" #define MCFG_SEGACRPT_SET_DECRYPTED_TAG(_tag) \ @@ -23,35 +25,35 @@ segacrpt_z80_device::set_banksize(*device, _banksize); -#include "cpu/z80/z80.h" - // base class class segacrpt_z80_device : public z80_device { public: - segacrpt_z80_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - static void set_decrypted_tag(device_t &device, const char* decrypted_tag); static void set_decrypted_ptr(device_t &device, uint8_t* ptr); // toprollr static void set_size(device_t &device, int size); static void set_numbanks(device_t &device, int _numbanks); static void set_banksize(device_t &device, int _banksize); + void set_decrypted_p(uint8_t* ptr); + void set_region_p(uint8_t* ptr); + +protected: + segacrpt_z80_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + virtual void device_start() override; + virtual void device_reset() override; + virtual void decrypt() = 0; + const char* m_decrypted_tag; uint8_t* m_decrypted_ptr; uint8_t* m_region_ptr; int m_decode_size; int m_numbanks; int m_banksize; - bool m_decryption_done; - - void set_decrypted_p(uint8_t* ptr); - void set_region_p(uint8_t* ptr); -protected: - virtual void device_start() override; - virtual void device_reset() override; - virtual void decrypt(); +private: + bool m_decryption_done; }; @@ -264,31 +266,31 @@ protected: }; -extern const device_type SEGA_315_5132; -extern const device_type SEGA_315_5155; -extern const device_type SEGA_315_5110; -extern const device_type SEGA_315_5135; -extern const device_type SEGA_315_5051; -extern const device_type SEGA_315_5098; -extern const device_type SEGA_315_5102; -extern const device_type SEGA_315_5065; -extern const device_type SEGA_315_5064; -extern const device_type SEGA_315_5033; -extern const device_type SEGA_315_5041; -extern const device_type SEGA_315_5048; -extern const device_type SEGA_315_5093; -extern const device_type SEGA_315_5099; -extern const device_type SEGA_315_SPAT; -extern const device_type SEGA_315_5015; -extern const device_type SEGA_315_5133; -extern const device_type SEGA_315_5014; -extern const device_type SEGA_315_5013; -extern const device_type SEGA_315_5061; -extern const device_type SEGA_315_5018; -extern const device_type SEGA_315_5010; -extern const device_type SEGA_CPU_PBACTIO4; -extern const device_type SEGA_315_5028; -extern const device_type SEGA_315_5084; - - -#endif /// __SEGACRPT_Z80__ +DECLARE_DEVICE_TYPE(SEGA_315_5132, sega_315_5132_device) +DECLARE_DEVICE_TYPE(SEGA_315_5155, sega_315_5155_device) +DECLARE_DEVICE_TYPE(SEGA_315_5110, sega_315_5110_device) +DECLARE_DEVICE_TYPE(SEGA_315_5135, sega_315_5135_device) +DECLARE_DEVICE_TYPE(SEGA_315_5051, sega_315_5051_device) +DECLARE_DEVICE_TYPE(SEGA_315_5098, sega_315_5098_device) +DECLARE_DEVICE_TYPE(SEGA_315_5102, sega_315_5102_device) +DECLARE_DEVICE_TYPE(SEGA_315_5065, sega_315_5065_device) +DECLARE_DEVICE_TYPE(SEGA_315_5064, sega_315_5064_device) +DECLARE_DEVICE_TYPE(SEGA_315_5033, sega_315_5033_device) +DECLARE_DEVICE_TYPE(SEGA_315_5041, sega_315_5041_device) +DECLARE_DEVICE_TYPE(SEGA_315_5048, sega_315_5048_device) +DECLARE_DEVICE_TYPE(SEGA_315_5093, sega_315_5093_device) +DECLARE_DEVICE_TYPE(SEGA_315_5099, sega_315_5099_device) +DECLARE_DEVICE_TYPE(SEGA_315_SPAT, sega_315_spat_device) +DECLARE_DEVICE_TYPE(SEGA_315_5015, sega_315_5015_device) +DECLARE_DEVICE_TYPE(SEGA_315_5133, sega_315_5133_device) +DECLARE_DEVICE_TYPE(SEGA_315_5014, sega_315_5014_device) +DECLARE_DEVICE_TYPE(SEGA_315_5013, sega_315_5013_device) +DECLARE_DEVICE_TYPE(SEGA_315_5061, sega_315_5061_device) +DECLARE_DEVICE_TYPE(SEGA_315_5018, sega_315_5018_device) +DECLARE_DEVICE_TYPE(SEGA_315_5010, sega_315_5010_device) +DECLARE_DEVICE_TYPE(SEGA_CPU_PBACTIO4, sega_cpu_pbactio4_device) +DECLARE_DEVICE_TYPE(SEGA_315_5028, sega_315_5028_device) +DECLARE_DEVICE_TYPE(SEGA_315_5084, sega_315_5084_sevice) + + +#endif // MAME_MACHINE_SEGACRYPT_DEVICE_H diff --git a/src/mame/machine/segaic16.cpp b/src/mame/machine/segaic16.cpp index f1def1e17af..fd46cadf6cc 100644 --- a/src/mame/machine/segaic16.cpp +++ b/src/mame/machine/segaic16.cpp @@ -27,10 +27,10 @@ //************************************************************************** // device type definition -const device_type SEGA_315_5195_MEM_MAPPER = device_creator; -const device_type SEGA_315_5248_MULTIPLIER = device_creator; -const device_type SEGA_315_5249_DIVIDER = device_creator; -const device_type SEGA_315_5250_COMPARE_TIMER = device_creator; +DEFINE_DEVICE_TYPE(SEGA_315_5195_MEM_MAPPER, sega_315_5195_mapper_device, "sega_315_5195", "Sega 315-5195 Memory Mapper") +DEFINE_DEVICE_TYPE(SEGA_315_5248_MULTIPLIER, sega_315_5248_multiplier_device, "sega_315_5248", "Sega 315-5248 Multiplier") +DEFINE_DEVICE_TYPE(SEGA_315_5249_DIVIDER, sega_315_5249_divider_device, "sega_315_5249", "Sega 315-5249 Divider") +DEFINE_DEVICE_TYPE(SEGA_315_5250_COMPARE_TIMER, sega_315_5250_compare_timer_device, "sega_315_5250", "Sega 315-5250 Compare/Timer") @@ -199,7 +199,7 @@ WRITE16_MEMBER( sega_16bit_common_base::philko_paletteram_w ) //------------------------------------------------- sega_315_5195_mapper_device::sega_315_5195_mapper_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, SEGA_315_5195_MEM_MAPPER, "Sega 315-5195 Memory Mapper", tag, owner, clock, "sega_315_5195", __FILE__) + : device_t(mconfig, SEGA_315_5195_MEM_MAPPER, tag, owner, clock) , m_cpu(*this, finder_base::DUMMY_TAG) , m_cpuregion(*this, finder_base::DUMMY_TAG) , m_space(nullptr) @@ -739,7 +739,7 @@ void sega_315_5195_mapper_device::decrypt_bank::update() //------------------------------------------------- sega_315_5248_multiplier_device::sega_315_5248_multiplier_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, SEGA_315_5248_MULTIPLIER, "Sega 315-5248 Multiplier", tag, owner, clock, "sega_315_5248", __FILE__) + : device_t(mconfig, SEGA_315_5248_MULTIPLIER, tag, owner, clock) { } @@ -807,7 +807,7 @@ void sega_315_5248_multiplier_device::device_reset() //------------------------------------------------- sega_315_5249_divider_device::sega_315_5249_divider_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, SEGA_315_5249_DIVIDER, "Sega 315-5249 Divider", tag, owner, clock, "sega_315_5249", __FILE__) + : device_t(mconfig, SEGA_315_5249_DIVIDER, tag, owner, clock) { } @@ -952,7 +952,7 @@ void sega_315_5249_divider_device::execute(int mode) //------------------------------------------------- sega_315_5250_compare_timer_device::sega_315_5250_compare_timer_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, SEGA_315_5250_COMPARE_TIMER, "Sega 315-5250 Compare/Timer", tag, owner, clock, "sega_315_5250", __FILE__) + : device_t(mconfig, SEGA_315_5250_COMPARE_TIMER, tag, owner, clock) { } diff --git a/src/mame/machine/segaic16.h b/src/mame/machine/segaic16.h index 28c672e6583..b8e73ac6c84 100644 --- a/src/mame/machine/segaic16.h +++ b/src/mame/machine/segaic16.h @@ -51,9 +51,6 @@ class sega_16bit_common_base : public driver_device { public: - // construction/destruction - sega_16bit_common_base(const machine_config &mconfig, device_type type, const char *tag); - // open bus read helpers DECLARE_READ16_MEMBER( open_bus_r ); @@ -62,6 +59,9 @@ public: DECLARE_WRITE16_MEMBER( philko_paletteram_w ); protected: + // construction/destruction + sega_16bit_common_base(const machine_config &mconfig, device_type type, const char *tag); + // internal helpers void palette_init(); @@ -269,10 +269,10 @@ private: // device type definition -extern const device_type SEGA_315_5195_MEM_MAPPER; -extern const device_type SEGA_315_5248_MULTIPLIER; -extern const device_type SEGA_315_5249_DIVIDER; -extern const device_type SEGA_315_5250_COMPARE_TIMER; +DECLARE_DEVICE_TYPE(SEGA_315_5195_MEM_MAPPER, sega_315_5195_mapper_device) +DECLARE_DEVICE_TYPE(SEGA_315_5248_MULTIPLIER, sega_315_5248_multiplier_device) +DECLARE_DEVICE_TYPE(SEGA_315_5249_DIVIDER, sega_315_5249_divider_device) +DECLARE_DEVICE_TYPE(SEGA_315_5250_COMPARE_TIMER, sega_315_5250_compare_timer_device) #endif // MAME_MACHINE_SEGAIC16_H diff --git a/src/mame/machine/seibucop/seibucop.cpp b/src/mame/machine/seibucop/seibucop.cpp index b85675f19c8..50efbf83cac 100644 --- a/src/mame/machine/seibucop/seibucop.cpp +++ b/src/mame/machine/seibucop/seibucop.cpp @@ -110,10 +110,10 @@ if (LOG_Commands) logerror -const device_type RAIDEN2COP = device_creator; +DEFINE_DEVICE_TYPE(RAIDEN2COP, raiden2cop_device, "raiden2cop", "Seibu COP (Raiden 2)") raiden2cop_device::raiden2cop_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, RAIDEN2COP, "Seibu COP (Raiden 2)", tag, owner, clock, "raiden2cop", __FILE__), + : device_t(mconfig, RAIDEN2COP, tag, owner, clock), cop_latch_addr(0), cop_latch_trigger(0), cop_latch_value(0), diff --git a/src/mame/machine/seibucop/seibucop.h b/src/mame/machine/seibucop/seibucop.h index 9f92b9885e0..7d1a81eaec6 100644 --- a/src/mame/machine/seibucop/seibucop.h +++ b/src/mame/machine/seibucop/seibucop.h @@ -274,6 +274,6 @@ private: void dma_zsorting(uint16_t data); }; -extern const device_type RAIDEN2COP; +DECLARE_DEVICE_TYPE(RAIDEN2COP, raiden2cop_device) #endif /* RAIDEN2COP_H */ diff --git a/src/mame/machine/seicop.cpp b/src/mame/machine/seicop.cpp index 515b31282a1..55dcd642f74 100644 --- a/src/mame/machine/seicop.cpp +++ b/src/mame/machine/seicop.cpp @@ -18,7 +18,7 @@ #include "includes/legionna.h" -const device_type SEIBU_COP_BOOTLEG = device_creator; +DEFINE_DEVICE_TYPE(SEIBU_COP_BOOTLEG, seibu_cop_bootleg_device, "seibu_cop_boot", "Seibu COP (bootleg)") READ16_MEMBER(seibu_cop_bootleg_device::reg_lo_addr_r) { @@ -246,7 +246,7 @@ static ADDRESS_MAP_START( seibucopbl_map, AS_0, 16, seibu_cop_bootleg_device ) ADDRESS_MAP_END seibu_cop_bootleg_device::seibu_cop_bootleg_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, SEIBU_COP_BOOTLEG, "Seibu COP (Bootleg)", tag, owner, clock, "seibu_cop_boot", __FILE__), + : device_t(mconfig, SEIBU_COP_BOOTLEG, tag, owner, clock), device_memory_interface(mconfig, *this), m_space_config("regs", ENDIANNESS_LITTLE, 16, 9, 0, nullptr, *ADDRESS_MAP_NAME(seibucopbl_map)) { diff --git a/src/mame/machine/seicop.h b/src/mame/machine/seicop.h index a25a6d22de0..1c25a77e629 100644 --- a/src/mame/machine/seicop.h +++ b/src/mame/machine/seicop.h @@ -1,12 +1,15 @@ // license:LGPL-2.1+ // copyright-holders:Olivier Galibert, Angelo Salese, David Haywood, Tomasz Slanina +#ifndef MAME_MACHINE_SEICOP_H +#define MAME_MACHINE_SEICOP_H + +#pragma once #include "seibucop/seibucop.h" -class seibu_cop_bootleg_device : public device_t, - public device_memory_interface +class seibu_cop_bootleg_device : public device_t, public device_memory_interface { public: seibu_cop_bootleg_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); @@ -46,6 +49,9 @@ private: }; extern const device_type SEIBU_COP_BOOTLEG; +DECLARE_DEVICE_TYPE(SEIBU_COP_BOOTLEG, seibu_cop_bootleg_device) #define MCFG_DEVICE_SEIBUCOP_BOOTLEG_ADD(_tag) \ MCFG_DEVICE_ADD(_tag, SEIBU_COP_BOOTLEG, 0) + +#endif // MAME_MACHINE_SEICOP_H diff --git a/src/mame/machine/sgi.cpp b/src/mame/machine/sgi.cpp index 909d821fef0..f9dad1b0c2a 100644 --- a/src/mame/machine/sgi.cpp +++ b/src/mame/machine/sgi.cpp @@ -28,10 +28,10 @@ static inline void ATTR_PRINTF(3,4) verboselog( running_machine &machine, int n_ } #endif -const device_type SGI_MC = device_creator; +DEFINE_DEVICE_TYPE(SGI_MC, sgi_mc_device, "sgi_mc", "SGI Memory Controller") sgi_mc_device::sgi_mc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, SGI_MC, "SGI Memory Controller", tag, owner, clock, "sgi_mc", __FILE__), + : device_t(mconfig, SGI_MC, tag, owner, clock), m_tUpdateTimer(nullptr), m_nCPUControl0(0), m_nCPUControl1(0), diff --git a/src/mame/machine/sgi.h b/src/mame/machine/sgi.h index f164879d21e..428d68ef499 100644 --- a/src/mame/machine/sgi.h +++ b/src/mame/machine/sgi.h @@ -8,17 +8,18 @@ *********************************************************************/ -#ifndef _SGIMC_H -#define _SGIMC_H +#ifndef MAME_MACHINE_SGI_H +#define MAME_MACHINE_SGI_H + +#pragma once class sgi_mc_device : public device_t { public: sgi_mc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~sgi_mc_device() {} -DECLARE_READ32_MEMBER(read); -DECLARE_WRITE32_MEMBER(write); + DECLARE_READ32_MEMBER(read); + DECLARE_WRITE32_MEMBER(write); protected: // device-level overrides @@ -74,7 +75,7 @@ private: void timer_init(); }; -extern const device_type SGI_MC; +DECLARE_DEVICE_TYPE(SGI_MC, sgi_mc_device) -#endif /* _SGIMC_H */ +#endif // MAME_MACHINE_SGI_H diff --git a/src/mame/machine/slapstic.cpp b/src/mame/machine/slapstic.cpp index 38f74b9358d..45ba5f48312 100644 --- a/src/mame/machine/slapstic.cpp +++ b/src/mame/machine/slapstic.cpp @@ -185,10 +185,20 @@ #include "includes/slapstic.h" -const device_type SLAPSTIC = device_creator; +/************************************* + * + * Debugging + * + *************************************/ + +#define LOG_SLAPSTIC (0) + + + +DEFINE_DEVICE_TYPE(SLAPSTIC, atari_slapstic_device, "slapstic", "Atari Slapstic") atari_slapstic_device::atari_slapstic_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, SLAPSTIC, "Atari Slapstic", tag, owner, clock, "slapstic", __FILE__), + : device_t(mconfig, SLAPSTIC, tag, owner, clock), state(0), current_bank(0), access_68k(-1), diff --git a/src/mame/machine/sms.cpp b/src/mame/machine/sms.cpp index 993fab144d1..93f24511f7c 100644 --- a/src/mame/machine/sms.cpp +++ b/src/mame/machine/sms.cpp @@ -68,7 +68,7 @@ WRITE_LINE_MEMBER(sms_state::sms_ctrl2_th_input) WRITE_LINE_MEMBER(sms_state::gg_ext_th_input) { - if (!(m_cartslot->exists() && m_cartslot->m_cart->get_sms_mode())) + if (!(m_cartslot->exists() && m_cartslot->get_sms_mode())) return; // The EXT port act as the controller port 2 on SMS compatibility mode. @@ -128,7 +128,7 @@ WRITE8_MEMBER(sms_state::sms_io_control_w) uint8_t ctrl1_port_data = 0xff; uint8_t ctrl2_port_data = 0xff; - if (m_is_gamegear && !(m_cartslot->exists() && m_cartslot->m_cart->get_sms_mode())) + if (m_is_gamegear && !(m_cartslot->exists() && m_cartslot->get_sms_mode())) { m_io_ctrl_reg = data; return; @@ -226,7 +226,7 @@ WRITE_LINE_MEMBER(sms_state::sms_pause_callback) if (m_is_gamegear) { - if (!(m_cartslot->exists() && m_cartslot->m_cart->get_sms_mode())) + if (!(m_cartslot->exists() && m_cartslot->get_sms_mode())) return; if (!(m_port_start->read() & 0x80)) @@ -325,7 +325,7 @@ READ8_MEMBER(sms_state::sms_input_port_dc_r) { // If SMS mode is disabled, just return the data read from the // input port. Its mapped port bits match the bits of register $dc. - if (!(m_cartslot->exists() && m_cartslot->m_cart->get_sms_mode())) + if (!(m_cartslot->exists() && m_cartslot->get_sms_mode())) return m_port_gg_dc->read(); } else @@ -370,7 +370,7 @@ READ8_MEMBER(sms_state::sms_input_port_dd_r) if (m_is_gamegear) { - if (!(m_cartslot->exists() && m_cartslot->m_cart->get_sms_mode())) + if (!(m_cartslot->exists() && m_cartslot->get_sms_mode())) return 0xff; } else @@ -539,7 +539,7 @@ WRITE8_MEMBER(sms_state::gg_psg_w) WRITE8_MEMBER(sms_state::gg_psg_stereo_w) { - if (m_cartslot->exists() && m_cartslot->m_cart->get_sms_mode()) + if (m_cartslot->exists() && m_cartslot->get_sms_mode()) return; m_psg_gg->stereo_w(space, offset, data, mem_mask); @@ -548,7 +548,7 @@ WRITE8_MEMBER(sms_state::gg_psg_stereo_w) READ8_MEMBER(sms_state::gg_input_port_00_r) { - if (m_cartslot->exists() && m_cartslot->m_cart->get_sms_mode()) + if (m_cartslot->exists() && m_cartslot->get_sms_mode()) return 0xff; else { @@ -840,7 +840,7 @@ WRITE8_MEMBER(sms_state::sg1000m3_peripheral_w) WRITE8_MEMBER(sms_state::gg_sio_w) { - if (m_cartslot->exists() && m_cartslot->m_cart->get_sms_mode()) + if (m_cartslot->exists() && m_cartslot->get_sms_mode()) return; logerror("*** write %02X to SIO register #%d\n", data, offset); @@ -868,7 +868,7 @@ WRITE8_MEMBER(sms_state::gg_sio_w) READ8_MEMBER(sms_state::gg_sio_r) { - if (m_cartslot->exists() && m_cartslot->m_cart->get_sms_mode()) + if (m_cartslot->exists() && m_cartslot->get_sms_mode()) return 0xff; logerror("*** read SIO register #%d\n", offset); @@ -918,7 +918,7 @@ void sms_state::setup_enabled_slots() return; } - if (!(m_mem_ctrl_reg & IO_EXPANSION) && m_smsexpslot && m_smsexpslot->m_device) + if (!(m_mem_ctrl_reg & IO_EXPANSION) && m_smsexpslot && m_smsexpslot->device_present()) { m_mem_device_enabled |= ENABLE_EXPANSION; logerror("Expansion port enabled.\n"); @@ -976,11 +976,11 @@ void sms_state::setup_media_slots() m_lphaser_x_offs = -1; // same value returned for ROMs without custom offset. if (m_mem_device_enabled & ENABLE_CART) - m_lphaser_x_offs = m_cartslot->m_cart->get_lphaser_xoffs(); + m_lphaser_x_offs = m_cartslot->get_lphaser_xoffs(); else if (m_mem_device_enabled & ENABLE_CARD) - m_lphaser_x_offs = m_cardslot->m_cart->get_lphaser_xoffs(); + m_lphaser_x_offs = m_cardslot->get_lphaser_xoffs(); else if (m_mem_device_enabled & ENABLE_EXPANSION) - m_lphaser_x_offs = m_smsexpslot->m_device->get_lphaser_xoffs(); + m_lphaser_x_offs = m_smsexpslot->get_lphaser_xoffs(); if (m_lphaser_x_offs == -1) m_lphaser_x_offs = 36; @@ -1146,7 +1146,7 @@ MACHINE_RESET_MEMBER(sms_state,sms) if (m_is_gamegear) { - if (m_cartslot->exists() && m_cartslot->m_cart->get_sms_mode()) + if (m_cartslot->exists() && m_cartslot->get_sms_mode()) m_vdp->set_sega315_5124_compatibility_mode(true); /* Initialize SIO stuff for GG */ @@ -1491,7 +1491,7 @@ VIDEO_RESET_MEMBER(sms_state,gamegear) m_prev_bitmap.fill(rgb_t::black()); m_prev_bitmap_copied = false; } - if (m_cartslot->exists() && m_cartslot->m_cart->get_sms_mode()) + if (m_cartslot->exists() && m_cartslot->get_sms_mode()) { m_gg_sms_mode_bitmap.fill(rgb_t::black()); memset(m_line_buffer.get(), 0, 160 * 4 * sizeof(int)); @@ -1640,7 +1640,7 @@ uint32_t sms_state::screen_update_gamegear(screen_device &screen, bitmap_rgb32 & { bitmap_rgb32 *source_bitmap; - if (m_cartslot->exists() && m_cartslot->m_cart->get_sms_mode()) + if (m_cartslot->exists() && m_cartslot->get_sms_mode()) { screen_gg_sms_mode_scaling(screen, m_gg_sms_mode_bitmap, cliprect); source_bitmap = &m_gg_sms_mode_bitmap; diff --git a/src/mame/machine/snes.cpp b/src/mame/machine/snes.cpp index 3b688b45e03..56f452e2fa1 100644 --- a/src/mame/machine/snes.cpp +++ b/src/mame/machine/snes.cpp @@ -105,11 +105,11 @@ TIMER_CALLBACK_MEMBER(snes_state::snes_reset_oam_address) // make sure we're in the 65816's context since we're messing with the OAM and stuff address_space &space = m_maincpu->space(AS_PROGRAM); - if (!(m_ppu->m_screen_disabled)) //Reset OAM address, byuu says it happens at H=10 + if (!m_ppu->screen_disabled()) //Reset OAM address, byuu says it happens at H=10 { - space.write_byte(OAMADDL, m_ppu->m_oam.saved_address_low); /* Reset oam address */ - space.write_byte(OAMADDH, m_ppu->m_oam.saved_address_high); - m_ppu->m_oam.first_sprite = m_ppu->m_oam.priority_rotation ? (m_ppu->m_oam.address >> 1) & 127 : 0; + space.write_byte(OAMADDL, m_ppu->saved_oam_address_low()); /* Reset oam address */ + space.write_byte(OAMADDH, m_ppu->saved_oam_address_high()); + m_ppu->set_first_sprite(); } } @@ -130,7 +130,7 @@ TIMER_CALLBACK_MEMBER(snes_state::snes_update_io) TIMER_CALLBACK_MEMBER(snes_state::snes_scanline_tick) { /* Increase current line - we want to latch on this line during it, not after it */ - m_ppu->m_beam.current_vert = m_screen->vpos(); + m_ppu->set_current_vert(m_screen->vpos()); // not in hblank SNES_CPU_REG(HVBJOY) &= ~0x40; @@ -138,7 +138,7 @@ TIMER_CALLBACK_MEMBER(snes_state::snes_scanline_tick) /* Vertical IRQ timer - only if horizontal isn't also enabled! */ if ((SNES_CPU_REG(NMITIMEN) & 0x20) && !(SNES_CPU_REG(NMITIMEN) & 0x10)) { - if (m_ppu->m_beam.current_vert == m_vtime) + if (m_ppu->current_vert() == m_vtime) { SNES_CPU_REG(TIMEUP) = 0x80; /* Indicate that irq occurred */ // IRQ latches the counters, do it now @@ -155,7 +155,7 @@ TIMER_CALLBACK_MEMBER(snes_state::snes_scanline_tick) // is the HIRQ on a specific scanline? if (SNES_CPU_REG(NMITIMEN) & 0x20) { - if (m_ppu->m_beam.current_vert != m_vtime) + if (m_ppu->current_vert() != m_vtime) { setirq = 0; } @@ -163,22 +163,22 @@ TIMER_CALLBACK_MEMBER(snes_state::snes_scanline_tick) if (setirq) { -// printf("HIRQ @ %d, %d\n", pixel * m_ppu->m_htmult, m_ppu->m_beam.current_vert); +// printf("HIRQ @ %d, %d\n", pixel * m_ppu->htmult(), m_ppu->current_vert()); if (pixel == 0) { hirq_tick(); } else { - m_hirq_timer->adjust(m_screen->time_until_pos(m_ppu->m_beam.current_vert, pixel * m_ppu->m_htmult)); + m_hirq_timer->adjust(m_screen->time_until_pos(m_ppu->current_vert(), pixel * m_ppu->htmult())); } } } /* Start of VBlank */ - if (m_ppu->m_beam.current_vert == m_ppu->m_beam.last_visible_line) + if (m_ppu->current_vert() == m_ppu->last_visible_line()) { - timer_set(m_screen->time_until_pos(m_ppu->m_beam.current_vert, 10), TIMER_RESET_OAM_ADDRESS); + timer_set(m_screen->time_until_pos(m_ppu->current_vert(), 10), TIMER_RESET_OAM_ADDRESS); SNES_CPU_REG(HVBJOY) |= 0x81; /* Set vblank bit to on & indicate controllers being read */ SNES_CPU_REG(RDNMI) |= 0x80; /* Set NMI occurred bit */ @@ -190,30 +190,30 @@ TIMER_CALLBACK_MEMBER(snes_state::snes_scanline_tick) } /* three lines after start of vblank we update the controllers (value from snes9x) */ - m_io_timer->adjust(m_screen->time_until_pos(m_ppu->m_beam.current_vert + 2, m_hblank_offset * m_ppu->m_htmult)); + m_io_timer->adjust(m_screen->time_until_pos(m_ppu->current_vert() + 2, m_hblank_offset * m_ppu->htmult())); } // hdma reset happens at scanline 0, H=~6 - if (m_ppu->m_beam.current_vert == 0) + if (m_ppu->current_vert() == 0) { address_space &cpu0space = m_maincpu->space(AS_PROGRAM); hdma_init(cpu0space); } - if (m_ppu->m_beam.current_vert == 0) + if (m_ppu->current_vert() == 0) { /* VBlank is over, time for a new frame */ SNES_CPU_REG(HVBJOY) &= 0x7f; /* Clear vblank bit */ SNES_CPU_REG(RDNMI) &= 0x7f; /* Clear nmi occurred bit */ - m_ppu->m_stat78 ^= 0x80; /* Toggle field flag */ - m_ppu->m_stat77 &= 0x3f; /* Clear Time Over and Range Over bits */ + m_ppu->toggle_field(); + m_ppu->clear_time_range_over(); m_maincpu->set_input_line(G65816_LINE_NMI, CLEAR_LINE ); } m_scanline_timer->adjust(attotime::never); - m_hblank_timer->adjust(m_screen->time_until_pos(m_ppu->m_beam.current_vert, m_hblank_offset * m_ppu->m_htmult)); + m_hblank_timer->adjust(m_screen->time_until_pos(m_ppu->current_vert(), m_hblank_offset * m_ppu->htmult())); -// printf("%02x %d\n",SNES_CPU_REG(HVBJOY),m_ppu->m_beam.current_vert); +// printf("%02x %d\n",SNES_CPU_REG(HVBJOY),m_ppu->current_vert()); } /* This is called at the start of hblank *before* the scanline indicated in current_vert! */ @@ -222,13 +222,13 @@ TIMER_CALLBACK_MEMBER(snes_state::snes_hblank_tick) address_space &cpu0space = m_maincpu->space(AS_PROGRAM); int nextscan; - m_ppu->m_beam.current_vert = m_screen->vpos(); + m_ppu->set_current_vert(m_screen->vpos()); /* make sure we halt */ m_hblank_timer->adjust(attotime::never); /* draw a scanline */ - if (m_ppu->m_beam.current_vert <= m_ppu->m_beam.last_visible_line) + if (m_ppu->current_vert() <= m_ppu->last_visible_line()) { if (m_screen->vpos() > 0) { @@ -236,7 +236,7 @@ TIMER_CALLBACK_MEMBER(snes_state::snes_hblank_tick) if (SNES_CPU_REG(HDMAEN)) hdma(cpu0space); - m_screen->update_partial((m_ppu->m_interlace == 2) ? (m_ppu->m_beam.current_vert * m_ppu->m_interlace) : m_ppu->m_beam.current_vert - 1); + m_screen->update_partial((m_ppu->interlace() == 2) ? (m_ppu->current_vert() * m_ppu->interlace()) : m_ppu->current_vert() - 1); } } @@ -244,8 +244,8 @@ TIMER_CALLBACK_MEMBER(snes_state::snes_hblank_tick) SNES_CPU_REG(HVBJOY) |= 0x40; /* kick off the start of scanline timer */ - nextscan = m_ppu->m_beam.current_vert + 1; - if (nextscan >= (((m_ppu->m_stat78 & 0x10) == SNES_NTSC) ? SNES_VTOTAL_NTSC : SNES_VTOTAL_PAL)) + nextscan = m_ppu->current_vert() + 1; + if (nextscan >= m_ppu->vtotal()) { nextscan = 0; } @@ -561,7 +561,7 @@ WRITE8_MEMBER( snes_state::snes_w_io ) return; case HDMAEN: /* HDMA channel designation */ if (data) //if a HDMA is enabled, data is inited at the next scanline - timer_set(m_screen->time_until_pos(m_ppu->m_beam.current_vert + 1), TIMER_RESET_HDMA); + timer_set(m_screen->time_until_pos(m_ppu->current_vert() + 1), TIMER_RESET_HDMA); SNES_CPU_REG(HDMAEN) = data; return; case TIMEUP: // IRQ Flag is cleared on both read and write @@ -1038,7 +1038,7 @@ void snes_state::snes_init_timers() // SNES hcounter has a 0-339 range. hblank starts at counter 260. // clayfighter sets an HIRQ at 260, apparently it wants it to be before hdma kicks off, so we'll delay 2 pixels. m_hblank_offset = 274; - m_hblank_timer->adjust(m_screen->time_until_pos(((m_ppu->m_stat78 & 0x10) == SNES_NTSC) ? SNES_VTOTAL_NTSC - 1 : SNES_VTOTAL_PAL - 1, m_hblank_offset)); + m_hblank_timer->adjust(m_screen->time_until_pos(m_ppu->vtotal() - 1, m_hblank_offset)); } void snes_state::snes_init_ram() @@ -1065,9 +1065,9 @@ void snes_state::snes_init_ram() // init frame counter so first line is 0 if (ATTOSECONDS_TO_HZ(m_screen->frame_period().attoseconds()) >= 59) - m_ppu->m_beam.current_vert = SNES_VTOTAL_NTSC; + m_ppu->set_current_vert(SNES_VTOTAL_NTSC); else - m_ppu->m_beam.current_vert = SNES_VTOTAL_PAL; + m_ppu->set_current_vert(SNES_VTOTAL_PAL); } void snes_state::machine_start() @@ -1141,9 +1141,7 @@ void snes_state::machine_reset() m_htime = 0x1ff; m_vtime = 0x1ff; - m_ppu->m_htmult = 1; - m_ppu->m_interlace = 1; - m_ppu->m_obj_interlace = 1; + m_ppu->reset_interlace(); } diff --git a/src/mame/machine/st0016.cpp b/src/mame/machine/st0016.cpp index fc14f746b50..ef83a14aaf1 100644 --- a/src/mame/machine/st0016.cpp +++ b/src/mame/machine/st0016.cpp @@ -7,7 +7,7 @@ #include "speaker.h" -const device_type ST0016_CPU = device_creator; +DEFINE_DEVICE_TYPE(ST0016_CPU, st0016_cpu_device, "st0016_cpu", "ST0016") static ADDRESS_MAP_START(st0016_cpu_internal_map, AS_PROGRAM, 8, st0016_cpu_device) AM_RANGE(0xc000, 0xcfff) AM_READ(st0016_sprite_ram_r) AM_WRITE(st0016_sprite_ram_w) @@ -30,7 +30,7 @@ ADDRESS_MAP_END // note: a lot of bits are left uninitialized by the games, the default values are uncertain st0016_cpu_device::st0016_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : z80_device(mconfig, ST0016_CPU, "ST0016", tag, owner, clock, "st0016_cpu", __FILE__), + : z80_device(mconfig, ST0016_CPU, tag, owner, clock), device_gfx_interface(mconfig, *this, nullptr, "palette"), st0016_spr_bank(0), st0016_spr2_bank(0), @@ -148,8 +148,8 @@ WRITE8_MEMBER(st0016_cpu_device::st0016_sprite_bank_w) xxxx - spriteram bank1 xxxx - spriteram bank2 */ - st0016_spr_bank=data&ST0016_SPR_BANK_MASK; - st0016_spr2_bank=(data>>4)&ST0016_SPR_BANK_MASK; + st0016_spr_bank=data&SPR_BANK_MASK; + st0016_spr2_bank=(data>>4)&SPR_BANK_MASK; } WRITE8_MEMBER(st0016_cpu_device::st0016_palette_bank_w) @@ -159,7 +159,7 @@ WRITE8_MEMBER(st0016_cpu_device::st0016_palette_bank_w) xx - palram bank xxxxxx - unknown/unused */ - st0016_pal_bank=data&ST0016_PAL_BANK_MASK; + st0016_pal_bank=data&PAL_BANK_MASK; } WRITE8_MEMBER(st0016_cpu_device::st0016_character_bank_w) @@ -174,40 +174,40 @@ WRITE8_MEMBER(st0016_cpu_device::st0016_character_bank_w) else st0016_char_bank=(st0016_char_bank&0xff00)|data; - st0016_char_bank&=ST0016_CHAR_BANK_MASK; + st0016_char_bank&=CHAR_BANK_MASK; } READ8_MEMBER(st0016_cpu_device::st0016_sprite_ram_r) { - return st0016_spriteram[ST0016_SPR_BANK_SIZE*st0016_spr_bank+offset]; + return st0016_spriteram[SPR_BANK_SIZE*st0016_spr_bank+offset]; } WRITE8_MEMBER(st0016_cpu_device::st0016_sprite_ram_w) { - st0016_spriteram[ST0016_SPR_BANK_SIZE*st0016_spr_bank+offset]=data; + st0016_spriteram[SPR_BANK_SIZE*st0016_spr_bank+offset]=data; } READ8_MEMBER(st0016_cpu_device::st0016_sprite2_ram_r) { - return st0016_spriteram[ST0016_SPR_BANK_SIZE*st0016_spr2_bank+offset]; + return st0016_spriteram[SPR_BANK_SIZE*st0016_spr2_bank+offset]; } WRITE8_MEMBER(st0016_cpu_device::st0016_sprite2_ram_w) { - st0016_spriteram[ST0016_SPR_BANK_SIZE*st0016_spr2_bank+offset]=data; + st0016_spriteram[SPR_BANK_SIZE*st0016_spr2_bank+offset]=data; } READ8_MEMBER(st0016_cpu_device::st0016_palette_ram_r) { - return st0016_paletteram[ST0016_PAL_BANK_SIZE*st0016_pal_bank+offset]; + return st0016_paletteram[PAL_BANK_SIZE*st0016_pal_bank+offset]; } WRITE8_MEMBER(st0016_cpu_device::st0016_palette_ram_w) { - int color=(ST0016_PAL_BANK_SIZE*st0016_pal_bank+offset)/2; + int color=(PAL_BANK_SIZE*st0016_pal_bank+offset)/2; int val; - st0016_paletteram[ST0016_PAL_BANK_SIZE*st0016_pal_bank+offset]=data; + st0016_paletteram[PAL_BANK_SIZE*st0016_pal_bank+offset]=data; val=st0016_paletteram[color*2]+(st0016_paletteram[color*2+1]<<8); if(!color) palette().set_pen_color(UNUSED_PEN,pal5bit(val >> 0),pal5bit(val >> 5),pal5bit(val >> 10)); /* same as color 0 - bg ? */ @@ -216,12 +216,12 @@ WRITE8_MEMBER(st0016_cpu_device::st0016_palette_ram_w) READ8_MEMBER(st0016_cpu_device::st0016_character_ram_r) { - return m_charram[ST0016_CHAR_BANK_SIZE*st0016_char_bank+offset]; + return m_charram[CHAR_BANK_SIZE*st0016_char_bank+offset]; } WRITE8_MEMBER(st0016_cpu_device::st0016_character_ram_w) { - m_charram[ST0016_CHAR_BANK_SIZE*st0016_char_bank+offset]=data; + m_charram[CHAR_BANK_SIZE*st0016_char_bank+offset]=data; gfx(st0016_ramgfx)->mark_dirty(st0016_char_bank); } @@ -258,7 +258,7 @@ READ8_MEMBER(st0016_cpu_device::st0016_vregs_r) READ8_MEMBER(st0016_cpu_device::st0016_dma_r) { /* bits 0 and 1 = 0 -> DMA transfer complete */ - if(ISMACS) + if(ismacs()) return 0; else return 0; @@ -313,7 +313,7 @@ WRITE8_MEMBER(st0016_cpu_device::st0016_vregs_w) while(length>0) { - if( srcadr < srclen && (dstadr < ST0016_MAX_CHAR_BANK*ST0016_CHAR_BANK_SIZE)) + if( srcadr < srclen && (dstadr < MAX_CHAR_BANK*CHAR_BANK_SIZE)) { st0016_char_bank=dstadr>>5; st0016_character_ram_w(space,dstadr&0x1f,mem[srcadr]); @@ -386,7 +386,7 @@ void st0016_cpu_device::draw_sprites(bitmap_ind16 &bitmap, const rectangle &clip int i, j, lx, ly, x, y, code, offset, length, sx, sy, color, flipx, flipy, scrollx, scrolly/*,plx,ply*/; - for (i = 0; i < ST0016_SPR_BANK_SIZE*ST0016_MAX_SPR_BANK; i += 8) + for (i = 0; i < SPR_BANK_SIZE*MAX_SPR_BANK; i += 8) { x = st0016_spriteram[i + 4] + ((st0016_spriteram[i + 5] & 3) << 8); y = st0016_spriteram[i + 6] + ((st0016_spriteram[i + 7] & 3) << 8); @@ -398,7 +398,7 @@ void st0016_cpu_device::draw_sprites(bitmap_ind16 &bitmap, const rectangle &clip scrollx = (st0016_vregs[(((st0016_spriteram[i + 1] & 0x0f) >> 1) << 2) + 0x40] + 256 * st0016_vregs[(((st0016_spriteram[i + 1] & 0x0f) >> 1) << 2) + 1 + 0x40]) & 0x3ff; scrolly = (st0016_vregs[(((st0016_spriteram[i + 1] & 0x0f) >> 1) << 2) + 2 + 0x40] + 256 * st0016_vregs[(((st0016_spriteram[i + 1] & 0x0f) >> 1) << 2) + 3 + 0x40]) & 0x3ff; - if (!ISMACS) + if (!ismacs()) { if (x & 0x200) x -= 0x400; //sign if (y & 0x200) y -= 0x400; @@ -407,7 +407,7 @@ void st0016_cpu_device::draw_sprites(bitmap_ind16 &bitmap, const rectangle &clip if (scrolly & 0x200) scrolly -= 0x400; } - if (ISMACS1) + if (ismacs1()) { if (x & 0x200) x -= 0x400; //sign if (y & 0x200) y -= 0x2b0;//0x400; @@ -419,7 +419,7 @@ void st0016_cpu_device::draw_sprites(bitmap_ind16 &bitmap, const rectangle &clip x += scrollx; y += scrolly; - if (ISMACS) + if (ismacs()) { y += 0x20; } @@ -435,7 +435,7 @@ void st0016_cpu_device::draw_sprites(bitmap_ind16 &bitmap, const rectangle &clip //plx=(st0016_spriteram[i+5]>>2)&0x3; //ply=(st0016_spriteram[i+7]>>2)&0x3; - if (offset < ST0016_SPR_BANK_SIZE*ST0016_MAX_SPR_BANK) + if (offset < SPR_BANK_SIZE*MAX_SPR_BANK) { for (j = 0; j < length; j++) { @@ -443,12 +443,12 @@ void st0016_cpu_device::draw_sprites(bitmap_ind16 &bitmap, const rectangle &clip sx = st0016_spriteram[offset + 4] + ((st0016_spriteram[offset + 5] & 1) << 8); sy = st0016_spriteram[offset + 6] + ((st0016_spriteram[offset + 7] & 1) << 8); - if (ISMACS && !(ISMACS1)) + if (ismacs() && !ismacs1()) { if (sy & 0x100) sy -= 0x200; //yuka & yujan } - if (ISMACS) + if (ismacs()) { sy = 0xe0 - sy; } @@ -480,7 +480,7 @@ void st0016_cpu_device::draw_sprites(bitmap_ind16 &bitmap, const rectangle &clip flipx = st0016_spriteram[offset + 3] & 0x80; flipy = st0016_spriteram[offset + 3] & 0x40; - if (ISMACS) + if (ismacs()) sy -= (1 << ly) * 8; { @@ -497,7 +497,7 @@ void st0016_cpu_device::draw_sprites(bitmap_ind16 &bitmap, const rectangle &clip int gfxoffs; ypos = sy + y0 * 8 + spr_dy; xpos = sx + x0 * 8 + spr_dx; - tileno = (code + i0++)&ST0016_CHAR_BANK_MASK; + tileno = (code + i0++)&CHAR_BANK_MASK; gfxoffs = 0; srcgfx = gfx->get_data(tileno); @@ -530,7 +530,7 @@ void st0016_cpu_device::draw_sprites(bitmap_ind16 &bitmap, const rectangle &clip } else { - if (ISMACS2) + if (ismacs2()) { if (pixdata)//|| destline[drawxpos]==UNUSED_PEN) { @@ -553,7 +553,7 @@ void st0016_cpu_device::draw_sprites(bitmap_ind16 &bitmap, const rectangle &clip } } offset += 8; - if (offset >= ST0016_SPR_BANK_SIZE*ST0016_MAX_SPR_BANK) + if (offset >= SPR_BANK_SIZE*MAX_SPR_BANK) break; } } @@ -570,9 +570,9 @@ void st0016_cpu_device::st0016_save_init() save_item(NAME(m_dma_offset)); //save_item(NAME(st0016_rom_bank)); save_item(NAME(st0016_vregs)); - save_pointer(NAME(m_charram.get()), ST0016_MAX_CHAR_BANK*ST0016_CHAR_BANK_SIZE); - save_pointer(NAME(st0016_paletteram.get()), ST0016_MAX_PAL_BANK*ST0016_PAL_BANK_SIZE); - save_pointer(NAME(st0016_spriteram.get()), ST0016_MAX_SPR_BANK*ST0016_SPR_BANK_SIZE); + save_pointer(NAME(m_charram.get()), MAX_CHAR_BANK*CHAR_BANK_SIZE); + save_pointer(NAME(st0016_paletteram.get()), MAX_PAL_BANK*PAL_BANK_SIZE); + save_pointer(NAME(st0016_spriteram.get()), MAX_SPR_BANK*SPR_BANK_SIZE); } @@ -581,9 +581,9 @@ void st0016_cpu_device::startup() int gfx_index=0; m_dma_offset = 0; - m_charram=make_unique_clear(ST0016_MAX_CHAR_BANK*ST0016_CHAR_BANK_SIZE); - st0016_spriteram=make_unique_clear(ST0016_MAX_SPR_BANK*ST0016_SPR_BANK_SIZE); - st0016_paletteram=make_unique_clear(ST0016_MAX_PAL_BANK*ST0016_PAL_BANK_SIZE); + m_charram=make_unique_clear(MAX_CHAR_BANK*CHAR_BANK_SIZE); + st0016_spriteram=make_unique_clear(MAX_SPR_BANK*SPR_BANK_SIZE); + st0016_paletteram=make_unique_clear(MAX_PAL_BANK*PAL_BANK_SIZE); /* find first empty slot to decode gfx */ for (gfx_index = 0; gfx_index < MAX_GFX_ELEMENTS; gfx_index++) @@ -671,7 +671,7 @@ void st0016_cpu_device::draw_bgmap(bitmap_ind16 &bitmap, const rectangle &clipre destline[drawxpos] = (destline[drawxpos] | (pixdata << 4)) & 0x3ff; else { - if (ISMACS2) + if (ismacs2()) { if (pixdata)// || destline[drawxpos]==UNUSED_PEN) { @@ -716,13 +716,13 @@ uint32_t st0016_cpu_device::update(screen_device &screen, bitmap_ind16 &bitmap, { int h,j; FILE *p=fopen("vram.bin","wb"); - fwrite(st0016_spriteram.get(),1,0x1000*ST0016_MAX_SPR_BANK,p); + fwrite(st0016_spriteram.get(),1,0x1000*MAX_SPR_BANK,p); fclose(p); p=fopen("vram.txt","wt"); for(h=0;h<0xc0;h++) fprintf(p,"VREG %.4x - %.4x\n",h,st0016_vregs[h]); - for(h=0;h<0x1000*ST0016_MAX_SPR_BANK;h+=8) + for(h=0;h<0x1000*MAX_SPR_BANK;h+=8) { fprintf(p,"%.4x - %.4x - ",h,h>>3); for(j=0;j<8;j++) diff --git a/src/mame/machine/st0016.h b/src/mame/machine/st0016.h index c25b1e425e5..92c1805422b 100644 --- a/src/mame/machine/st0016.h +++ b/src/mame/machine/st0016.h @@ -2,8 +2,8 @@ // copyright-holders:Tomasz Slanina, David Haywood /* ST0016 - CPU (z80) + Sound + Video */ -#ifndef MAME_MACHINE_ST0016_CPU_H -#define MAME_MACHINE_ST0016_CPU_H +#ifndef MAME_MACHINE_ST0016_H +#define MAME_MACHINE_ST0016_H #pragma once @@ -11,26 +11,6 @@ #include "sound/st0016.h" #include "screen.h" -#define ISMACS (m_game_flag & 0x80) -#define ISMACS1 (((m_game_flag & 0x180) == 0x180)) -#define ISMACS2 (((m_game_flag & 0x180) == 0x080)) - - -#define ST0016_MAX_SPR_BANK 0x10 -#define ST0016_MAX_CHAR_BANK 0x10000 -#define ST0016_MAX_PAL_BANK 4 - -#define ST0016_SPR_BANK_SIZE 0x1000 -#define ST0016_CHAR_BANK_SIZE 0x20 -#define ST0016_PAL_BANK_SIZE 0x200 - -#define UNUSED_PEN 1024 - -#define ST0016_SPR_BANK_MASK (ST0016_MAX_SPR_BANK-1) -#define ST0016_CHAR_BANK_MASK (ST0016_MAX_CHAR_BANK-1) -#define ST0016_PAL_BANK_MASK (ST0016_MAX_PAL_BANK-1) - - typedef device_delegate st0016_dma_offs_delegate; #define ST0016_DMA_OFFS_CB(name) uint8_t name(void) @@ -83,6 +63,26 @@ public: std::unique_ptr m_charram; protected: + bool ismacs() const { return m_game_flag & 0x80; } + bool ismacs1() const { return (m_game_flag & 0x180) == 0x180; } + bool ismacs2() const { return (m_game_flag & 0x180) == 0x080; } + + + static constexpr unsigned MAX_SPR_BANK = 0x10; + static constexpr unsigned MAX_CHAR_BANK = 0x10000; + static constexpr unsigned MAX_PAL_BANK = 4; + + static constexpr unsigned SPR_BANK_SIZE = 0x1000; + static constexpr unsigned CHAR_BANK_SIZE = 0x20; + static constexpr unsigned PAL_BANK_SIZE = 0x200; + + static constexpr unsigned UNUSED_PEN = 1024; + + static constexpr unsigned SPR_BANK_MASK = MAX_SPR_BANK - 1; + static constexpr unsigned CHAR_BANK_MASK = MAX_CHAR_BANK - 1; + static constexpr unsigned PAL_BANK_MASK = MAX_PAL_BANK - 1; + + // device-level overrides virtual machine_config_constructor device_mconfig_additions() const override; virtual void device_start() override; @@ -111,7 +111,7 @@ private: // device type definition -extern const device_type ST0016_CPU; +DECLARE_DEVICE_TYPE(ST0016_CPU, st0016_cpu_device) -#endif // MAME_MACHINE_ST0016_CPU_H +#endif // MAME_MACHINE_ST0016_H diff --git a/src/mame/machine/swim.cpp b/src/mame/machine/swim.cpp index 59537173bd8..6e901d1f288 100644 --- a/src/mame/machine/swim.cpp +++ b/src/mame/machine/swim.cpp @@ -32,14 +32,14 @@ enum DEVICE ***************************************************************************/ -const device_type SWIM = device_creator; +DEFINE_DEVICE_TYPE(SWIM, swim_device, "swim", "Apple SWIM (Steve Woz Integrated Machine") //------------------------------------------------- // ctor //------------------------------------------------- swim_device::swim_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : applefdc_base_device(APPLEFDC_SWIM, mconfig, SWIM, "Apple SWIM (Steve Woz Integrated Machine)", tag, owner, clock, "swim", __FILE__) + : applefdc_base_device(APPLEFDC_SWIM, mconfig, SWIM, tag, owner, clock) { } diff --git a/src/mame/machine/swim.h b/src/mame/machine/swim.h index f15412e352e..93d326c32b4 100644 --- a/src/mame/machine/swim.h +++ b/src/mame/machine/swim.h @@ -9,8 +9,8 @@ *********************************************************************/ -#ifndef __SWIM_H__ -#define __SWIM_H__ +#ifndef MAME_MACHINE_SWIM_H +#define MAME_MACHINE_SWIM_H #include "machine/applefdc.h" @@ -19,7 +19,7 @@ DEVICE ***************************************************************************/ -extern const device_type SWIM; +DECLARE_DEVICE_TYPE(SWIM, swim_device) class swim_device : public applefdc_base_device { @@ -60,4 +60,4 @@ private: MCFG_DEVICE_MODIFY(_tag) \ MCFG_APPLEFDC_CONFIG(_intrf) -#endif // __SWIM_H__ +#endif // MAME_MACHINE_SWIM_H diff --git a/src/mame/machine/swtpc09.cpp b/src/mame/machine/swtpc09.cpp index 7f325b2a2b0..9e7773a09fb 100644 --- a/src/mame/machine/swtpc09.cpp +++ b/src/mame/machine/swtpc09.cpp @@ -461,7 +461,7 @@ WRITE8_MEMBER(swtpc09_state::dat_w) address_space &mem = m_maincpu->space(AS_PROGRAM); - fd1793_t *fdc = machine().device("fdc"); + fd1793_device *fdc = machine().device("fdc"); pia6821_device *pia = machine().device("pia"); ptm6840_device *ptm = machine().device("ptm"); acia6850_device *acia = machine().device("acia"); @@ -498,7 +498,7 @@ WRITE8_MEMBER(swtpc09_state::dat_w) mem.install_readwrite_handler(logical_address+0x004, logical_address+0x004, read8_delegate(FUNC(acia6850_device::status_r), acia), write8_delegate(FUNC(acia6850_device::control_w),acia)); mem.install_readwrite_handler(logical_address+0x005, logical_address+0x005, read8_delegate(FUNC(acia6850_device::data_r), acia), write8_delegate(FUNC(acia6850_device::data_w),acia)); mem.install_write_handler(logical_address+0x014, logical_address+0x014, write8_delegate(FUNC(swtpc09_state::dc4_control_reg_w),this)); - mem.install_readwrite_handler(logical_address+0x018, logical_address+0x01b, read8_delegate(FUNC(fd1793_t::read), fdc), write8_delegate(FUNC(fd1793_t::write),fdc)); + mem.install_readwrite_handler(logical_address+0x018, logical_address+0x01b, read8_delegate(FUNC(fd1793_device::read), fdc), write8_delegate(FUNC(fd1793_device::write),fdc)); //mem.nop_readwrite(logical_address+0x01c, logical_address+0x05f); mem.install_readwrite_handler(logical_address+0x060, logical_address+0x06f, read8_delegate(FUNC(pia6821_device::read), piaide), write8_delegate(FUNC(pia6821_device::write), piaide)); //mem.nop_readwrite(logical_address+0x070, logical_address+0x07f); @@ -522,7 +522,7 @@ WRITE8_MEMBER(swtpc09_state::dat_w) if (m_system_type == UNIFLEX_DMF2 || m_system_type == FLEX_DMF2) // if DMF2 conroller this is the map { mem.install_readwrite_handler(logical_address+0x000, logical_address+0x01f, read8_delegate(FUNC(swtpc09_state::m6844_r),this), write8_delegate(FUNC(swtpc09_state::m6844_w),this)); - mem.install_readwrite_handler(logical_address+0x020, logical_address+0x023, read8_delegate(FUNC(fd1793_t::read), fdc), write8_delegate(FUNC(fd1793_t::write),fdc)); + mem.install_readwrite_handler(logical_address+0x020, logical_address+0x023, read8_delegate(FUNC(fd1793_device::read), fdc), write8_delegate(FUNC(fd1793_device::write),fdc)); mem.install_readwrite_handler(logical_address+0x024, logical_address+0x03f, read8_delegate(FUNC(swtpc09_state::dmf2_control_reg_r),this), write8_delegate(FUNC(swtpc09_state::dmf2_control_reg_w),this)); mem.install_readwrite_handler(logical_address+0x040, logical_address+0x041, read8_delegate(FUNC(swtpc09_state::dmf2_dma_address_reg_r),this), write8_delegate(FUNC(swtpc09_state::dmf2_dma_address_reg_w),this)); //mem.nop_readwrite(logical_address+0x042, logical_address+0x7ff); @@ -532,7 +532,7 @@ WRITE8_MEMBER(swtpc09_state::dat_w) else if (m_system_type == FLEX_DC4_PIAIDE) // 2k ram for piaide on s09 board { //mem.install_readwrite_handler(logical_address+0x000, logical_address+0x01f, read8_delegate(FUNC(swtpc09_state::m6844_r),this), write8_delegate(FUNC(swtpc09_state::m6844_w),this)); - //mem.install_readwrite_handler(logical_address+0x020, logical_address+0x023, read8_delegate(FUNC(fd1793_t::read), fdc), write8_delegate(FUNC(fd1793_t::write),fdc)); + //mem.install_readwrite_handler(logical_address+0x020, logical_address+0x023, read8_delegate(FUNC(fd1793_device::read), fdc), write8_delegate(FUNC(fd1793_device::write),fdc)); //mem.install_readwrite_handler(logical_address+0x024, logical_address+0x03f, read8_delegate(FUNC(swtpc09_state::dmf2_control_reg_r),this), write8_delegate(FUNC(swtpc09_state::dmf2_control_reg_w),this)); //mem.install_readwrite_handler(logical_address+0x040, logical_address+0x041, read8_delegate(FUNC(swtpc09_state::dmf2_dma_address_reg_r),this), write8_delegate(FUNC(swtpc09_state::dmf2_dma_address_reg_w),this)); mem.install_ram(logical_address+0x000, logical_address+0x7ff, &RAM[0xf000]); @@ -542,7 +542,7 @@ WRITE8_MEMBER(swtpc09_state::dat_w) else // assume DMF3 controller { mem.install_readwrite_handler(logical_address+0x000, logical_address+0x01f, read8_delegate(FUNC(swtpc09_state::m6844_r),this), write8_delegate(FUNC(swtpc09_state::m6844_w),this)); - mem.install_readwrite_handler(logical_address+0x020, logical_address+0x023, read8_delegate(FUNC(fd1793_t::read), fdc), write8_delegate(FUNC(fd1793_t::write),fdc)); + mem.install_readwrite_handler(logical_address+0x020, logical_address+0x023, read8_delegate(FUNC(fd1793_device::read), fdc), write8_delegate(FUNC(fd1793_device::write),fdc)); mem.install_readwrite_handler(logical_address+0x024, logical_address+0x024, read8_delegate(FUNC(swtpc09_state::dmf3_control_reg_r),this), write8_delegate(FUNC(swtpc09_state::dmf3_control_reg_w),this)); mem.install_readwrite_handler(logical_address+0x025, logical_address+0x025, read8_delegate(FUNC(swtpc09_state::dmf3_dma_address_reg_r),this), write8_delegate(FUNC(swtpc09_state::dmf3_dma_address_reg_w),this)); //mem.nop_readwrite(logical_address+0x030, logical_address+0x03f); diff --git a/src/mame/machine/tait8741.cpp b/src/mame/machine/tait8741.cpp index ba5c223a025..ae9c570b689 100644 --- a/src/mame/machine/tait8741.cpp +++ b/src/mame/machine/tait8741.cpp @@ -13,7 +13,7 @@ Taito 8741 emulation #include "tait8741.h" #define VERBOSE 0 -#define LOG(x) do { if (VERBOSE) printf x; } while (0) +#include "logmacro.h" /**************************************************************************** @@ -33,10 +33,10 @@ gladiatr and Great Swordsman set. #define CMD_08 1 #define CMD_4a 2 -const device_type TAITO8741_4PACK = device_creator; +DEFINE_DEVICE_TYPE(TAITO8741_4PACK, taito8741_4pack_device, "taito8741_4pack", "I8741 MCU Simulation (Taito 4Pack)") taito8741_4pack_device::taito8741_4pack_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, TAITO8741_4PACK, "I8741 MCU Simulation (Taito 4Pack)", tag, owner, clock, "taito8741_4pack", __FILE__), + : device_t(mconfig, TAITO8741_4PACK, tag, owner, clock), m_port_handler_0_r(*this), m_port_handler_1_r(*this), m_port_handler_2_r(*this), @@ -91,7 +91,7 @@ TIMER_CALLBACK_MEMBER( taito8741_4pack_device::serial_tx ) sst = &m_taito8741[st->connect]; /* transfer data */ serial_rx(sst,st->txd); - LOG(("8741-%d Serial data TX to %d\n",num,st->connect)); + LOG("8741-%d Serial data TX to %d\n",num,st->connect); if( sst->mode==TAITO8741_SLAVE) sst->serial_out = 1; } @@ -275,7 +275,7 @@ int taito8741_4pack_device::status_r(int num) { I8741 *st = &m_taito8741[num]; update(num); - LOG(("%s:8741-%d ST Read %02x\n",machine().describe_context(),num,st->status)); + LOG("%s:8741-%d ST Read %02x\n",machine().describe_context(),num,st->status); return st->status; } @@ -285,7 +285,7 @@ int taito8741_4pack_device::data_r(int num) I8741 *st = &m_taito8741[num]; int ret = st->toData; st->status &= 0xfe; - LOG(("%s:8741-%d DATA Read %02x\n",machine().describe_context(),num,ret)); + LOG("%s:8741-%d DATA Read %02x\n",machine().describe_context(),num,ret); /* update chip */ update(num); @@ -303,7 +303,7 @@ int taito8741_4pack_device::data_r(int num) void taito8741_4pack_device::data_w(int num, int data) { I8741 *st = &m_taito8741[num]; - LOG(("%s:8741-%d DATA Write %02x\n",machine().describe_context(),num,data)); + LOG("%s:8741-%d DATA Write %02x\n",machine().describe_context(),num,data); st->fromData = data; st->status |= 0x02; /* update chip */ @@ -314,7 +314,7 @@ void taito8741_4pack_device::data_w(int num, int data) void taito8741_4pack_device::command_w(int num, int data) { I8741 *st = &m_taito8741[num]; - LOG(("%s:8741-%d CMD Write %02x\n",machine().describe_context(),num,data)); + LOG("%s:8741-%d CMD Write %02x\n",machine().describe_context(),num,data); st->fromCmd = data; st->status |= 0x04; /* update chip */ diff --git a/src/mame/machine/tait8741.h b/src/mame/machine/tait8741.h index 77e2c6338f7..ba97e80b8e3 100644 --- a/src/mame/machine/tait8741.h +++ b/src/mame/machine/tait8741.h @@ -1,8 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Jarek Parchanski -#ifndef __TAITO8741__ -#define __TAITO8741__ +#ifndef MAME_MACHINE_TAITO8741_H +#define MAME_MACHINE_TAITO8741_H +#pragma once /**************************************************************************** gladiatr and Great Swordsman set. @@ -38,32 +39,13 @@ class taito8741_4pack_device : public device_t { - struct I8741 { - int number; - uint8_t toData; /* to host data */ - uint8_t fromData; /* from host data */ - uint8_t fromCmd; /* from host command */ - uint8_t status; /* b0 = rd ready,b1 = wd full,b2 = cmd ?? */ - uint8_t mode; - uint8_t phase; - uint8_t txd[8]; - uint8_t rxd[8]; - uint8_t parallelselect; - uint8_t txpoint; - int connect; - uint8_t pending4a; - int serial_out; - int coins; - }; - public: taito8741_4pack_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~taito8741_4pack_device() {} - template static devcb_base &set_port_handler_0_callback(device_t &device, _Object object) { return downcast(device).m_port_handler_0_r.set_callback(object); } - template static devcb_base &set_port_handler_1_callback(device_t &device, _Object object) { return downcast(device).m_port_handler_1_r.set_callback(object); } - template static devcb_base &set_port_handler_2_callback(device_t &device, _Object object) { return downcast(device).m_port_handler_2_r.set_callback(object); } - template static devcb_base &set_port_handler_3_callback(device_t &device, _Object object) { return downcast(device).m_port_handler_3_r.set_callback(object); } + template static devcb_base &set_port_handler_0_callback(device_t &device, Object &&cb) { return downcast(device).m_port_handler_0_r.set_callback(std::forward(cb)); } + template static devcb_base &set_port_handler_1_callback(device_t &device, Object &&cb) { return downcast(device).m_port_handler_1_r.set_callback(std::forward(cb)); } + template static devcb_base &set_port_handler_2_callback(device_t &device, Object &&cb) { return downcast(device).m_port_handler_2_r.set_callback(std::forward(cb)); } + template static devcb_base &set_port_handler_3_callback(device_t &device, Object &&cb) { return downcast(device).m_port_handler_3_r.set_callback(std::forward(cb)); } static void static_set_mode(device_t &device, int num, uint8_t mode) { downcast(device).m_taito8741[num].mode = mode; } static void static_set_connect(device_t &device, int num, int conn) { downcast(device).m_taito8741[num].connect = conn; } @@ -92,6 +74,24 @@ protected: virtual void device_reset() override; private: + struct I8741 { + int number; + uint8_t toData; /* to host data */ + uint8_t fromData; /* from host data */ + uint8_t fromCmd; /* from host command */ + uint8_t status; /* b0 = rd ready,b1 = wd full,b2 = cmd ?? */ + uint8_t mode; + uint8_t phase; + uint8_t txd[8]; + uint8_t rxd[8]; + uint8_t parallelselect; + uint8_t txpoint; + int connect; + uint8_t pending4a; + int serial_out; + int coins; + }; + void hostdata_w(I8741 *st,int data); int hostdata_r(I8741 *st); int hostcmd_r(I8741 *st); @@ -107,6 +107,6 @@ private: }; -extern const device_type TAITO8741_4PACK; +DECLARE_DEVICE_TYPE(TAITO8741_4PACK, taito8741_4pack_device) -#endif +#endif // MAME_MACHINE_TAITO8741_H diff --git a/src/mame/machine/taito68705interface.cpp b/src/mame/machine/taito68705interface.cpp index 6d08d10468f..176dbe899b2 100644 --- a/src/mame/machine/taito68705interface.cpp +++ b/src/mame/machine/taito68705interface.cpp @@ -73,10 +73,10 @@ MACHINE_CONFIG_END } // anonymous namespace -device_type const TAITO68705_MCU = device_creator; -device_type const TAITO68705_MCU_TIGER = device_creator; -device_type const ARKANOID_68705P3 = device_creator; -device_type const ARKANOID_68705P5 = device_creator; +DEFINE_DEVICE_TYPE(TAITO68705_MCU, taito68705_mcu_device, "taito68705", "Taito MC68705 MCU Interface") +DEFINE_DEVICE_TYPE(TAITO68705_MCU_TIGER, taito68705_mcu_tiger_device, "taito68705tiger", "Taito MC68705 MCU Interface (Tiger Heli)") +DEFINE_DEVICE_TYPE(ARKANOID_68705P3, arkanoid_68705p3_device, "arkanoid68705p3", "Arkanoid MC68705P3 Interface") +DEFINE_DEVICE_TYPE(ARKANOID_68705P5, arkanoid_68705p5_device, "arkanoid68705p5", "Arkanoid MC68705P5 Interface") READ8_MEMBER(taito68705_mcu_device_base::data_r) @@ -122,13 +122,10 @@ WRITE8_MEMBER(taito68705_mcu_device_base::mcu_pa_w) taito68705_mcu_device_base::taito68705_mcu_device_base( machine_config const &mconfig, device_type type, - char const *name, char const *tag, device_t *owner, - u32 clock, - char const *shortname, - char const *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source) + u32 clock) + : device_t(mconfig, type, tag, owner, clock) , m_mcu(*this, "mcu") , m_semaphore_cb(*this) , m_latch_driven(false) @@ -209,12 +206,12 @@ void taito68705_mcu_device_base::latch_control(u8 data, u8 &value, unsigned host taito68705_mcu_device::taito68705_mcu_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : taito68705_mcu_device(mconfig, TAITO68705_MCU, "Taito MC68705 MCU Interface", tag, owner, clock, "taito68705", __FILE__) + : taito68705_mcu_device(mconfig, TAITO68705_MCU, tag, owner, clock) { } -taito68705_mcu_device::taito68705_mcu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, u32 clock, const char *shortname, const char *source) - : taito68705_mcu_device_base(mconfig, type, name, tag, owner, clock, shortname, source) +taito68705_mcu_device::taito68705_mcu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock) + : taito68705_mcu_device_base(mconfig, type, tag, owner, clock) , m_aux_strobe_cb(*this) , m_pb_output(0xff) { @@ -285,7 +282,7 @@ WRITE8_MEMBER(taito68705_mcu_device::mcu_portb_w) /* The Tiger Heli interface has some extensions, handle them here */ taito68705_mcu_tiger_device::taito68705_mcu_tiger_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : taito68705_mcu_device(mconfig, TAITO68705_MCU_TIGER, "Taito MC68705 MCU Interface (Tiger Heli)", tag, owner, clock, "taito68705tiger", __FILE__) + : taito68705_mcu_device(mconfig, TAITO68705_MCU_TIGER, tag, owner, clock) { } @@ -320,13 +317,10 @@ WRITE8_MEMBER(arkanoid_mcu_device_base::mcu_pc_w) arkanoid_mcu_device_base::arkanoid_mcu_device_base( machine_config const &mconfig, device_type type, - char const *name, char const *tag, device_t *owner, - u32 clock, - char const *shortname, - char const *source) - : taito68705_mcu_device_base(mconfig, type, name, tag, owner, clock, shortname, source) + u32 clock) + : taito68705_mcu_device_base(mconfig, type, tag, owner, clock) , m_portb_r_cb(*this) , m_pc_output(0xff) { @@ -349,7 +343,7 @@ arkanoid_68705p3_device::arkanoid_68705p3_device( char const *tag, device_t *owner, u32 clock) - : arkanoid_mcu_device_base(mconfig, ARKANOID_68705P3, "Arkanoid MC68705P3 Interface", tag, owner, clock, "arkanoid68705p3", __FILE__) + : arkanoid_mcu_device_base(mconfig, ARKANOID_68705P3, tag, owner, clock) { } @@ -364,7 +358,7 @@ arkanoid_68705p5_device::arkanoid_68705p5_device( char const *tag, device_t *owner, u32 clock) - : arkanoid_mcu_device_base(mconfig, ARKANOID_68705P5, "Arkanoid MC68705P5 Interface", tag, owner, clock, "arkanoid68705p5", __FILE__) + : arkanoid_mcu_device_base(mconfig, ARKANOID_68705P5, tag, owner, clock) { } diff --git a/src/mame/machine/taito68705interface.h b/src/mame/machine/taito68705interface.h index aa0ea8f35d3..dd718e68510 100644 --- a/src/mame/machine/taito68705interface.h +++ b/src/mame/machine/taito68705interface.h @@ -1,13 +1,17 @@ // license:BSD-3-Clause // copyright-holders:Ernesto Corvi, Nicola Salmoria, David Haywood, Vas Crabb +#ifndef MAME_MACHINE_TAITO68705INTERFACE_H +#define MAME_MACHINE_TAITO68705INTERFACE_H + +#pragma once #include "cpu/m6805/m68705.h" -extern const device_type TAITO68705_MCU; -extern const device_type TAITO68705_MCU_TIGER; -extern const device_type ARKANOID_68705P3; -extern const device_type ARKANOID_68705P5; +DECLARE_DEVICE_TYPE(TAITO68705_MCU, taito68705_mcu_device) +DECLARE_DEVICE_TYPE(TAITO68705_MCU_TIGER, taito68705_mcu_tiger_device) +DECLARE_DEVICE_TYPE(ARKANOID_68705P3, arkanoid_68705p3_device) +DECLARE_DEVICE_TYPE(ARKANOID_68705P5, arkanoid_68705p5_device) class taito68705_mcu_device_base : public device_t @@ -32,12 +36,9 @@ protected: taito68705_mcu_device_base( machine_config const &mconfig, device_type type, - char const *name, char const *tag, device_t *owner, - u32 clock, - char const *shortname, - char const *source); + u32 clock); virtual void device_start() override; virtual void device_reset() override; @@ -77,7 +78,7 @@ public: DECLARE_WRITE8_MEMBER(mcu_portb_w); protected: - taito68705_mcu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, u32 clock, const char *shortname, const char *source); + taito68705_mcu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock); virtual machine_config_constructor device_mconfig_additions() const override; virtual void device_start() override; @@ -117,12 +118,9 @@ protected: arkanoid_mcu_device_base( machine_config const &mconfig, device_type type, - char const *name, char const *tag, device_t *owner, - u32 clock, - char const *shortname, - char const *source); + u32 clock); virtual void device_start() override; @@ -150,3 +148,5 @@ public: protected: virtual machine_config_constructor device_mconfig_additions() const override; }; + +#endif // MAME_MACHINE_TAITO68705INTERFACE_H diff --git a/src/mame/machine/taitoio.cpp b/src/mame/machine/taitoio.cpp index cd38073857a..aa3b1940af7 100644 --- a/src/mame/machine/taitoio.cpp +++ b/src/mame/machine/taitoio.cpp @@ -59,10 +59,10 @@ MACHINE_CONFIG_END /* */ /***************************************************************************/ -const device_type TC0220IOC = device_creator; +DEFINE_DEVICE_TYPE(TC0220IOC, tc0220ioc_device, "tc0220ioc", "Taito TC0220IOC") tc0220ioc_device::tc0220ioc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, TC0220IOC, "Taito TC0220IOC", tag, owner, clock, "tc0220ioc", __FILE__), + : device_t(mconfig, TC0220IOC, tag, owner, clock), m_watchdog(*this, "watchdog"), m_read_0_cb(*this), m_read_1_cb(*this), @@ -196,10 +196,10 @@ WRITE8_MEMBER( tc0220ioc_device::portreg_w ) /***************************************************************************/ -const device_type TC0510NIO = device_creator; +DEFINE_DEVICE_TYPE(TC0510NIO, tc0510nio_device, "tc0510nio", "Taito TC0510NIO") tc0510nio_device::tc0510nio_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, TC0510NIO, "Taito TC0510NIO", tag, owner, clock, "tc0510nio", __FILE__), + : device_t(mconfig, TC0510NIO, tag, owner, clock), m_watchdog(*this, "watchdog"), m_read_0_cb(*this), m_read_1_cb(*this), @@ -334,10 +334,10 @@ WRITE16_MEMBER( tc0510nio_device::halfword_wordswap_w ) /***************************************************************************/ -const device_type TC0640FIO = device_creator; +DEFINE_DEVICE_TYPE(TC0640FIO, tc0640fio_device, "tc0640fio", "Taito TC0640FIO") tc0640fio_device::tc0640fio_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, TC0640FIO, "Taito TC0640FIO", tag, owner, clock, "tc0640fio", __FILE__), + : device_t(mconfig, TC0640FIO, tag, owner, clock), m_watchdog(*this, "watchdog"), m_read_0_cb(*this), m_read_1_cb(*this), diff --git a/src/mame/machine/taitoio.h b/src/mame/machine/taitoio.h index 30bef9e7eae..83919a71a26 100644 --- a/src/mame/machine/taitoio.h +++ b/src/mame/machine/taitoio.h @@ -8,8 +8,10 @@ **************************************************************************/ -#ifndef __TAITOIO_H__ -#define __TAITOIO_H__ +#ifndef MAME_MACHINE_TAITOIO_H +#define MAME_MACHINE_TAITOIO_H + +#pragma once #include "machine/watchdog.h" @@ -18,13 +20,12 @@ class tc0220ioc_device : public device_t { public: tc0220ioc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~tc0220ioc_device() {} - template static devcb_base &set_read_0_callback(device_t &device, _Object object) { return downcast(device).m_read_0_cb.set_callback(object); } - template static devcb_base &set_read_1_callback(device_t &device, _Object object) { return downcast(device).m_read_1_cb.set_callback(object); } - template static devcb_base &set_read_2_callback(device_t &device, _Object object) { return downcast(device).m_read_2_cb.set_callback(object); } - template static devcb_base &set_read_3_callback(device_t &device, _Object object) { return downcast(device).m_read_3_cb.set_callback(object); } - template static devcb_base &set_read_7_callback(device_t &device, _Object object) { return downcast(device).m_read_7_cb.set_callback(object); } + template static devcb_base &set_read_0_callback(device_t &device, Object &&cb) { return downcast(device).m_read_0_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_read_1_callback(device_t &device, Object &&cb) { return downcast(device).m_read_1_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_read_2_callback(device_t &device, Object &&cb) { return downcast(device).m_read_2_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_read_3_callback(device_t &device, Object &&cb) { return downcast(device).m_read_3_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_read_7_callback(device_t &device, Object &&cb) { return downcast(device).m_read_7_cb.set_callback(std::forward(cb)); } DECLARE_READ8_MEMBER( read ); DECLARE_WRITE8_MEMBER( write ); @@ -53,19 +54,18 @@ private: devcb_read8 m_read_7_cb; }; -extern const device_type TC0220IOC; +DECLARE_DEVICE_TYPE(TC0220IOC, tc0220ioc_device) class tc0510nio_device : public device_t { public: tc0510nio_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~tc0510nio_device() {} - template static devcb_base &set_read_0_callback(device_t &device, _Object object) { return downcast(device).m_read_0_cb.set_callback(object); } - template static devcb_base &set_read_1_callback(device_t &device, _Object object) { return downcast(device).m_read_1_cb.set_callback(object); } - template static devcb_base &set_read_2_callback(device_t &device, _Object object) { return downcast(device).m_read_2_cb.set_callback(object); } - template static devcb_base &set_read_3_callback(device_t &device, _Object object) { return downcast(device).m_read_3_cb.set_callback(object); } - template static devcb_base &set_read_7_callback(device_t &device, _Object object) { return downcast(device).m_read_7_cb.set_callback(object); } + template static devcb_base &set_read_0_callback(device_t &device, Object &&cb) { return downcast(device).m_read_0_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_read_1_callback(device_t &device, Object &&cb) { return downcast(device).m_read_1_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_read_2_callback(device_t &device, Object &&cb) { return downcast(device).m_read_2_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_read_3_callback(device_t &device, Object &&cb) { return downcast(device).m_read_3_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_read_7_callback(device_t &device, Object &&cb) { return downcast(device).m_read_7_cb.set_callback(std::forward(cb)); } DECLARE_READ8_MEMBER( read ); DECLARE_WRITE8_MEMBER( write ); @@ -93,19 +93,18 @@ private: devcb_read8 m_read_7_cb; }; -extern const device_type TC0510NIO; +DECLARE_DEVICE_TYPE(TC0510NIO, tc0510nio_device) class tc0640fio_device : public device_t { public: tc0640fio_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~tc0640fio_device() {} - template static devcb_base &set_read_0_callback(device_t &device, _Object object) { return downcast(device).m_read_0_cb.set_callback(object); } - template static devcb_base &set_read_1_callback(device_t &device, _Object object) { return downcast(device).m_read_1_cb.set_callback(object); } - template static devcb_base &set_read_2_callback(device_t &device, _Object object) { return downcast(device).m_read_2_cb.set_callback(object); } - template static devcb_base &set_read_3_callback(device_t &device, _Object object) { return downcast(device).m_read_3_cb.set_callback(object); } - template static devcb_base &set_read_7_callback(device_t &device, _Object object) { return downcast(device).m_read_7_cb.set_callback(object); } + template static devcb_base &set_read_0_callback(device_t &device, Object &&cb) { return downcast(device).m_read_0_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_read_1_callback(device_t &device, Object &&cb) { return downcast(device).m_read_1_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_read_2_callback(device_t &device, Object &&cb) { return downcast(device).m_read_2_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_read_3_callback(device_t &device, Object &&cb) { return downcast(device).m_read_3_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_read_7_callback(device_t &device, Object &&cb) { return downcast(device).m_read_7_cb.set_callback(std::forward(cb)); } DECLARE_READ8_MEMBER( read ); @@ -134,7 +133,7 @@ protected: devcb_read8 m_read_7_cb; }; -extern const device_type TC0640FIO; +DECLARE_DEVICE_TYPE(TC0640FIO, tc0640fio_device) /*************************************************************************** @@ -189,4 +188,4 @@ extern const device_type TC0640FIO; devcb = &tc0640fio_device::set_read_7_callback(*device, DEVCB_##_devcb); -#endif /* __TAITOIO_H__ */ +#endif // MAME_MACHINE_TAITOIO_H diff --git a/src/mame/machine/tandy2kb.cpp b/src/mame/machine/tandy2kb.cpp index c3ea1183832..395fd26c09b 100644 --- a/src/mame/machine/tandy2kb.cpp +++ b/src/mame/machine/tandy2kb.cpp @@ -23,7 +23,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type TANDY2K_KEYBOARD = device_creator; +DEFINE_DEVICE_TYPE(TANDY2K_KEYBOARD, tandy2k_keyboard_device, "tandy2kb", "Tandy 2000 Keyboard") @@ -218,7 +218,7 @@ ioport_constructor tandy2k_keyboard_device::device_input_ports() const //------------------------------------------------- tandy2k_keyboard_device::tandy2k_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, TANDY2K_KEYBOARD, "Tandy 2000 Keyboard", tag, owner, clock, "tandy2kb", __FILE__), + device_t(mconfig, TANDY2K_KEYBOARD, tag, owner, clock), m_maincpu(*this, I8048_TAG), m_y(*this, "Y%u", 0), m_write_clock(*this), diff --git a/src/mame/machine/tandy2kb.h b/src/mame/machine/tandy2kb.h index b2ad63a38f1..255caae6f4e 100644 --- a/src/mame/machine/tandy2kb.h +++ b/src/mame/machine/tandy2kb.h @@ -6,10 +6,10 @@ *********************************************************************/ -#pragma once +#ifndef MAME_MACHINE_TANDY2KB_H +#define MAME_MACHINE_TANDY2KB_H -#ifndef __TANDY2K_KEYBOARD__ -#define __TANDY2K_KEYBOARD__ +#pragma once #include "cpu/mcs48/mcs48.h" @@ -47,8 +47,8 @@ public: // construction/destruction tandy2k_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_clock_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_clock.set_callback(object); } - template static devcb_base &set_data_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_data.set_callback(object); } + template static devcb_base &set_clock_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_clock.set_callback(std::forward(cb)); } + template static devcb_base &set_data_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_data.set_callback(std::forward(cb)); } // optional information overrides virtual const tiny_rom_entry *device_rom_region() const override; @@ -91,8 +91,6 @@ private: // device type definition -extern const device_type TANDY2K_KEYBOARD; - - +DECLARE_DEVICE_TYPE(TANDY2K_KEYBOARD, tandy2k_keyboard_device) -#endif +#endif // MAME_MACHINE_TANDY2KB_H diff --git a/src/mame/machine/teleprinter.cpp b/src/mame/machine/teleprinter.cpp index b2b3ffdae10..0f55b706630 100644 --- a/src/mame/machine/teleprinter.cpp +++ b/src/mame/machine/teleprinter.cpp @@ -140,20 +140,20 @@ static const uint8_t teleprinter_font[128*8] = }; teleprinter_device::teleprinter_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : generic_terminal_device(mconfig, TELEPRINTER, "Teleprinter", tag, owner, clock, "teleprinter", __FILE__) + : generic_terminal_device(mconfig, TELEPRINTER, tag, owner, clock, WIDTH, HEIGHT) { } void teleprinter_device::scroll_line() { - memmove(m_buffer,m_buffer+TELEPRINTER_WIDTH,(TELEPRINTER_HEIGHT-1)*TELEPRINTER_WIDTH); - memset(m_buffer + TELEPRINTER_WIDTH*(TELEPRINTER_HEIGHT-1),0x20,TELEPRINTER_WIDTH); + memmove(m_buffer.get(), m_buffer.get() + m_width, (m_height-1) * m_width); + memset(m_buffer.get() + m_width * (m_height-1), 0x20, m_width); } void teleprinter_device::write_char(uint8_t data) { - m_buffer[(TELEPRINTER_HEIGHT-1)*TELEPRINTER_WIDTH+m_x_pos] = data; + m_buffer[(m_height-1)*m_width+m_x_pos] = data; m_x_pos++; - if (m_x_pos >= TELEPRINTER_WIDTH) + if (m_x_pos >= m_width) { m_x_pos = 0; scroll_line(); @@ -161,7 +161,7 @@ void teleprinter_device::write_char(uint8_t data) { } void teleprinter_device::clear() { - memset(m_buffer,0,TELEPRINTER_WIDTH*TELEPRINTER_HEIGHT); + memset(m_buffer.get(), 0, m_width*m_height); m_x_pos = 0; } @@ -173,8 +173,8 @@ void teleprinter_device::term_write(uint8_t data) break; case 13: m_x_pos = 0; break; case 9: m_x_pos = (m_x_pos & 0xf8) + 8; - if (m_x_pos >= TELEPRINTER_WIDTH) - m_x_pos = TELEPRINTER_WIDTH-1; + if (m_x_pos >= m_width) + m_x_pos = m_width-1; break; case 16: break; @@ -190,14 +190,14 @@ uint32_t teleprinter_device::tp_update(screen_device &device, bitmap_rgb32 &bitm uint8_t code; int y, c, x, b; - for (y = 0; y < TELEPRINTER_HEIGHT; y++) + for (y = 0; y < m_height; y++) { for (c = 0; c < 8; c++) { int horpos = 0; - for (x = 0; x < TELEPRINTER_WIDTH; x++) + for (x = 0; x < m_width; x++) { - code = teleprinter_font[(m_buffer[y*TELEPRINTER_WIDTH + x] & 0x7f) *8 + c]; + code = teleprinter_font[(m_buffer[y*m_width + x] & 0x7f) *8 + c]; for (b = 0; b < 8; b++) { bitmap.pix32(y*8 + c, horpos++) = (code >> b) & 0x01 ? 0 : 0x00ffffff; @@ -215,11 +215,11 @@ MACHINE_CONFIG_FRAGMENT( generic_teleprinter ) MCFG_SCREEN_ADD(TELEPRINTER_SCREEN_TAG, RASTER) MCFG_SCREEN_REFRESH_RATE(50) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_SIZE(TELEPRINTER_WIDTH*8, TELEPRINTER_HEIGHT*8) - MCFG_SCREEN_VISIBLE_AREA(0, TELEPRINTER_WIDTH*8-1, 0, TELEPRINTER_HEIGHT*8-1) + MCFG_SCREEN_SIZE(teleprinter_device::WIDTH*8, teleprinter_device::HEIGHT*8) + MCFG_SCREEN_VISIBLE_AREA(0, teleprinter_device::WIDTH*8-1, 0, teleprinter_device::HEIGHT*8-1) MCFG_SCREEN_UPDATE_DEVICE(DEVICE_SELF, teleprinter_device, tp_update) MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0) - MCFG_GENERIC_KEYBOARD_CB(WRITE8(generic_terminal_device, kbd_put)) + MCFG_GENERIC_KEYBOARD_CB(PUT(generic_terminal_device, kbd_put)) MCFG_SPEAKER_STANDARD_MONO("bell") MCFG_SOUND_ADD("beeper", BEEP, 2'000) @@ -241,4 +241,4 @@ void teleprinter_device::device_reset() generic_terminal_device::device_reset(); } -const device_type TELEPRINTER = device_creator; +DEFINE_DEVICE_TYPE(TELEPRINTER, teleprinter_device, "teleprinter", "Teleprinter") diff --git a/src/mame/machine/teleprinter.h b/src/mame/machine/teleprinter.h index f9f58130452..83a46e24a64 100644 --- a/src/mame/machine/teleprinter.h +++ b/src/mame/machine/teleprinter.h @@ -1,12 +1,11 @@ // license:BSD-3-Clause // copyright-holders:Miodrag Milanovic -#ifndef __TELEPRINTER_H__ -#define __TELEPRINTER_H__ +#ifndef MAME_MACHINE_TELEPRINTER_H +#define MAME_MACHINE_TELEPRINTER_H -#include "machine/terminal.h" +#pragma once -#define TELEPRINTER_WIDTH 80 -#define TELEPRINTER_HEIGHT 50 +#include "machine/terminal.h" /*************************************************************************** @@ -15,8 +14,8 @@ #define TELEPRINTER_TAG "teleprinter" #define TELEPRINTER_SCREEN_TAG "tty_screen" -#define MCFG_GENERIC_TELEPRINTER_KEYBOARD_CB(_devcb) \ - devcb = &generic_terminal_device::set_keyboard_callback(*device, DEVCB_##_devcb); +#define MCFG_GENERIC_TELEPRINTER_KEYBOARD_CB(cb) \ + generic_terminal_device::set_keyboard_callback(*device, KEYBOARDCB_##cb); /*************************************************************************** FUNCTION PROTOTYPES @@ -25,18 +24,23 @@ class teleprinter_device : public generic_terminal_device { public: + static constexpr unsigned WIDTH = 80; + static constexpr unsigned HEIGHT = 50; + teleprinter_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); uint32_t tp_update(screen_device &device, bitmap_rgb32 &bitmap, const rectangle &cliprect); + protected: virtual void term_write(uint8_t data) override; virtual void device_reset() override; virtual machine_config_constructor device_mconfig_additions() const override; + private: void scroll_line(); void write_char(uint8_t data); void clear(); }; -extern const device_type TELEPRINTER; +DECLARE_DEVICE_TYPE(TELEPRINTER, teleprinter_device) -#endif /* __TELEPRINTER_H__ */ +#endif // MAME_MACHINE_TELEPRINTER_H diff --git a/src/mame/machine/thomflop.cpp b/src/mame/machine/thomflop.cpp index 6bb7416c51f..25fa0292a7f 100644 --- a/src/mame/machine/thomflop.cpp +++ b/src/mame/machine/thomflop.cpp @@ -276,7 +276,7 @@ static uint8_t to7_5p14_select; READ8_MEMBER( thomson_state::to7_5p14_r ) { - wd2793_t *fdc = machine().device("wd2793"); + wd2793_device *fdc = machine().device("wd2793"); if ( offset < 4 ) return fdc->read(space, offset ); @@ -291,7 +291,7 @@ READ8_MEMBER( thomson_state::to7_5p14_r ) WRITE8_MEMBER( thomson_state::to7_5p14_w ) { - wd2793_t *fdc = machine().device("wd2793"); + wd2793_device *fdc = machine().device("wd2793"); if ( offset < 4 ) fdc->write(space, offset, data ); else if ( offset == 8 ) @@ -320,7 +320,7 @@ WRITE8_MEMBER( thomson_state::to7_5p14_w ) void thomson_state::to7_5p14_reset() { - wd2793_t *fdc = machine().device("wd2793"); + wd2793_device *fdc = machine().device("wd2793"); LOG(( "to7_5p14_reset: CD 90-640 controller\n" )); fdc->reset(); } diff --git a/src/mame/machine/thomson.cpp b/src/mame/machine/thomson.cpp index 36774c557a8..649a0b96789 100644 --- a/src/mame/machine/thomson.cpp +++ b/src/mame/machine/thomson.cpp @@ -9,9 +9,9 @@ **********************************************************************/ #include "emu.h" +#include "includes/thomson.h" #include "machine/thomflop.h" #include "formats/thom_dsk.h" -#include "includes/thomson.h" #include "machine/6821pia.h" #include "machine/ram.h" @@ -593,14 +593,14 @@ READ8_MEMBER( thomson_state::to7_sys_portb_in ) because the Data Transmit Ready bit is shared in an incompatible way! */ -const device_type TO7_IO_LINE = device_creator; +DEFINE_DEVICE_TYPE(TO7_IO_LINE, to7_io_line_device, "to7_io_line", "TO7 Serial source") //------------------------------------------------- // to7_io_line_device - constructor //------------------------------------------------- to7_io_line_device::to7_io_line_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, TO7_IO_LINE, "T07 Serial source", tag, owner, clock, "to7_io_line", __FILE__), + : device_t(mconfig, TO7_IO_LINE, tag, owner, clock), m_pia_io(*this, THOM_PIA_IO), m_rs232(*this, "rs232"), m_last_low(0) diff --git a/src/mame/machine/ticket.cpp b/src/mame/machine/ticket.cpp index 68cb586d32e..92265c814ae 100644 --- a/src/mame/machine/ticket.cpp +++ b/src/mame/machine/ticket.cpp @@ -26,7 +26,7 @@ //************************************************************************** // device type definition -const device_type TICKET_DISPENSER = device_creator; +DEFINE_DEVICE_TYPE(TICKET_DISPENSER, ticket_dispenser_device, "ticket_dispenser", "Ticket Dispenser") @@ -39,7 +39,7 @@ const device_type TICKET_DISPENSER = device_creator; //------------------------------------------------- ticket_dispenser_device::ticket_dispenser_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, TICKET_DISPENSER, "Ticket Dispenser", tag, owner, clock, "ticket_dispenser", __FILE__), + : device_t(mconfig, TICKET_DISPENSER, tag, owner, clock), m_motor_sense(TICKET_MOTOR_ACTIVE_LOW), m_status_sense(TICKET_STATUS_ACTIVE_LOW), m_period(attotime::from_msec(100)), diff --git a/src/mame/machine/ticket.h b/src/mame/machine/ticket.h index 18ed3901bdd..cb48cba8587 100644 --- a/src/mame/machine/ticket.h +++ b/src/mame/machine/ticket.h @@ -7,6 +7,8 @@ Generic ticket dispensing device. ***************************************************************************/ +#ifndef MAME_MACHINE_TICKET_H +#define MAME_MACHINE_TICKET_H #pragma once @@ -16,7 +18,7 @@ //************************************************************************** // device type definition -extern const device_type TICKET_DISPENSER; +DECLARE_DEVICE_TYPE(TICKET_DISPENSER, ticket_dispenser_device) @@ -87,3 +89,5 @@ protected: uint8_t m_power; emu_timer *m_timer; }; + +#endif // MAME_MACHINE_TICKET_H diff --git a/src/mame/machine/trs80.cpp b/src/mame/machine/trs80.cpp index 5cb3001ec68..6b12bb3ab26 100644 --- a/src/mame/machine/trs80.cpp +++ b/src/mame/machine/trs80.cpp @@ -567,10 +567,10 @@ WRITE8_MEMBER( trs80_state::lnw80_fe_w ) mem.install_readwrite_handler (0x37e0, 0x37e3, read8_delegate(FUNC(trs80_state::trs80_irq_status_r), this), write8_delegate(FUNC(trs80_state::trs80_motor_w), this)); mem.install_readwrite_handler (0x37e8, 0x37eb, read8_delegate(FUNC(trs80_state::trs80_printer_r), this), write8_delegate(FUNC(trs80_state::trs80_printer_w), this)); mem.install_read_handler (0x37ec, 0x37ec, read8_delegate(FUNC(trs80_state::trs80_wd179x_r), this)); - mem.install_write_handler (0x37ec, 0x37ec, write8_delegate(FUNC(fd1793_t::cmd_w),(fd1793_t*)m_fdc)); - mem.install_readwrite_handler (0x37ed, 0x37ed, read8_delegate(FUNC(fd1793_t::track_r),(fd1793_t*)m_fdc), write8_delegate(FUNC(fd1793_t::track_w),(fd1793_t*)m_fdc)); - mem.install_readwrite_handler (0x37ee, 0x37ee, read8_delegate(FUNC(fd1793_t::sector_r),(fd1793_t*)m_fdc), write8_delegate(FUNC(fd1793_t::sector_w),(fd1793_t*)m_fdc)); - mem.install_readwrite_handler (0x37ef, 0x37ef, read8_delegate(FUNC(fd1793_t::data_r),(fd1793_t*)m_fdc),write8_delegate( FUNC(fd1793_t::data_w),(fd1793_t*)m_fdc)); + mem.install_write_handler (0x37ec, 0x37ec, write8_delegate(FUNC(fd1793_device::cmd_w),(fd1793_device*)m_fdc)); + mem.install_readwrite_handler (0x37ed, 0x37ed, read8_delegate(FUNC(fd1793_device::track_r),(fd1793_device*)m_fdc), write8_delegate(FUNC(fd1793_device::track_w),(fd1793_device*)m_fdc)); + mem.install_readwrite_handler (0x37ee, 0x37ee, read8_delegate(FUNC(fd1793_device::sector_r),(fd1793_device*)m_fdc), write8_delegate(FUNC(fd1793_device::sector_w),(fd1793_device*)m_fdc)); + mem.install_readwrite_handler (0x37ef, 0x37ef, read8_delegate(FUNC(fd1793_device::data_r),(fd1793_device*)m_fdc),write8_delegate( FUNC(fd1793_device::data_w),(fd1793_device*)m_fdc)); mem.install_read_handler (0x3800, 0x38ff, 0, 0x0300, 0, read8_delegate(FUNC(trs80_state::trs80_keyboard_r), this)); mem.install_readwrite_handler (0x3c00, 0x3fff, read8_delegate(FUNC(trs80_state::trs80_videoram_r), this), write8_delegate(FUNC(trs80_state::trs80_videoram_w), this)); } diff --git a/src/mame/machine/trs80m2kb.cpp b/src/mame/machine/trs80m2kb.cpp index 9d6411d3313..40dabc57d11 100644 --- a/src/mame/machine/trs80m2kb.cpp +++ b/src/mame/machine/trs80m2kb.cpp @@ -23,7 +23,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type TRS80M2_KEYBOARD = device_creator; +DEFINE_DEVICE_TYPE(TRS80M2_KEYBOARD, trs80m2_keyboard_device, "trs80m2kb", "TRS-80 Model II Keyboard") @@ -219,7 +219,7 @@ ioport_constructor trs80m2_keyboard_device::device_input_ports() const //------------------------------------------------- trs80m2_keyboard_device::trs80m2_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, TRS80M2_KEYBOARD, "TRS-80 Model II Keyboard", tag, owner, clock, "trs80m2kb", __FILE__), + device_t(mconfig, TRS80M2_KEYBOARD, tag, owner, clock), m_maincpu(*this, I8021_TAG), m_y(*this, "Y%u", 0), m_write_clock(*this), diff --git a/src/mame/machine/trs80m2kb.h b/src/mame/machine/trs80m2kb.h index 9ce7ba94b28..4c779a35486 100644 --- a/src/mame/machine/trs80m2kb.h +++ b/src/mame/machine/trs80m2kb.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_MACHINE_TRS80M2KB_H +#define MAME_MACHINE_TRS80M2KB_H -#ifndef __TRS80M2_KEYBOARD__ -#define __TRS80M2_KEYBOARD__ +#pragma once #include "cpu/mcs48/mcs48.h" #include "sound/discrete.h" @@ -45,7 +45,7 @@ public: // construction/destruction trs80m2_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_clock_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_clock.set_callback(object); } + template static devcb_base &set_clock_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_clock.set_callback(std::forward(cb)); } // optional information overrides virtual const tiny_rom_entry *device_rom_region() const override; @@ -87,8 +87,8 @@ private: // device type definition -extern const device_type TRS80M2_KEYBOARD; +DECLARE_DEVICE_TYPE(TRS80M2_KEYBOARD, trs80m2_keyboard_device) -#endif +#endif // MAME_MACHINE_TRS80M2KB_H diff --git a/src/mame/machine/upd65031.cpp b/src/mame/machine/upd65031.cpp index 8c57602dbd6..74584e6cbba 100644 --- a/src/mame/machine/upd65031.cpp +++ b/src/mame/machine/upd65031.cpp @@ -27,7 +27,7 @@ // device type definition -const device_type UPD65031 = device_creator; +DEFINE_DEVICE_TYPE(UPD65031, upd65031_device, "upd65031", "NEC uPD65031") //************************************************************************** @@ -197,7 +197,7 @@ inline void upd65031_device::set_mode(int mode) //------------------------------------------------- upd65031_device::upd65031_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, UPD65031, "NEC uPD65031", tag, owner, clock, "upd65031", __FILE__), + : device_t(mconfig, UPD65031, tag, owner, clock), m_read_kb(*this), m_write_int(*this), m_write_nmi(*this), diff --git a/src/mame/machine/upd65031.h b/src/mame/machine/upd65031.h index aad871e80c6..4c5127727fa 100644 --- a/src/mame/machine/upd65031.h +++ b/src/mame/machine/upd65031.h @@ -6,11 +6,10 @@ **********************************************************************/ -#pragma once - -#ifndef __UPD65031__ -#define __UPD65031__ +#ifndef MAME_MACHINE_UPD65031_H +#define MAME_MACHINE_UPD65031_H +#pragma once @@ -114,7 +113,7 @@ private: // device type definition -extern const device_type UPD65031; +DECLARE_DEVICE_TYPE(UPD65031, upd65031_device) -#endif +#endif // MAME_MACHINE_UPD65031_H diff --git a/src/mame/machine/v1050kb.cpp b/src/mame/machine/v1050kb.cpp index fdb6aa8fa0a..dab6e0bf902 100644 --- a/src/mame/machine/v1050kb.cpp +++ b/src/mame/machine/v1050kb.cpp @@ -26,7 +26,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type V1050_KEYBOARD = device_creator; +DEFINE_DEVICE_TYPE(V1050_KEYBOARD, v1050_keyboard_device, "v1050kb", "Visual 1050 Keyboard") //------------------------------------------------- @@ -297,7 +297,7 @@ ioport_constructor v1050_keyboard_device::device_input_ports() const //------------------------------------------------- v1050_keyboard_device::v1050_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, V1050_KEYBOARD, "Visual 1050 Keyboard", tag, owner, clock, "v1050kb", __FILE__), + device_t(mconfig, V1050_KEYBOARD, tag, owner, clock), m_maincpu(*this, I8049_TAG), m_discrete(*this, DISCRETE_TAG), m_y(*this, "Y%u", 0), diff --git a/src/mame/machine/v1050kb.h b/src/mame/machine/v1050kb.h index 052748b394b..af66b205a1b 100644 --- a/src/mame/machine/v1050kb.h +++ b/src/mame/machine/v1050kb.h @@ -6,10 +6,10 @@ *********************************************************************/ -#pragma once +#ifndef MAME_MACHINE_V1050KB_H +#define MAME_MACHINE_V1050KB_H -#ifndef __V1050_KEYBOARD__ -#define __V1050_KEYBOARD__ +#pragma once #include "cpu/mcs48/mcs48.h" #include "sound/discrete.h" @@ -37,7 +37,7 @@ public: // construction/destruction v1050_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_out_tx_handler(device_t &device, _Object object) { return downcast(device).m_out_tx_handler.set_callback(object); } + template static devcb_base &set_out_tx_handler(device_t &device, Object &&cb) { return downcast(device).m_out_tx_handler.set_callback(std::forward(cb)); } // optional information overrides virtual const tiny_rom_entry *device_rom_region() const override; @@ -67,8 +67,6 @@ private: // device type definition -extern const device_type V1050_KEYBOARD; - - +DECLARE_DEVICE_TYPE(V1050_KEYBOARD, v1050_keyboard_device) -#endif +#endif // MAME_MACHINE_V1050KB_H diff --git a/src/mame/machine/vector06.cpp b/src/mame/machine/vector06.cpp index db91755457f..3b0d3b6be42 100644 --- a/src/mame/machine/vector06.cpp +++ b/src/mame/machine/vector06.cpp @@ -187,7 +187,7 @@ void vector06_state::update_mem() WRITE8_MEMBER(vector06_state::vector06_ramdisk_w) { - uint8_t oldbank = m_rambank; + const uint8_t oldbank = m_rambank; m_rambank = data; if (oldbank != m_rambank) update_mem(); @@ -195,8 +195,8 @@ WRITE8_MEMBER(vector06_state::vector06_ramdisk_w) WRITE8_MEMBER(vector06_state::vector06_status_callback) { - bool oldstate = m_stack_state; - m_stack_state = (data & I8085_STATUS_STACK) ? true : false; + const bool oldstate = m_stack_state; + m_stack_state = bool(data & i8080_cpu_device::STATUS_STACK); if (oldstate != m_stack_state && (m_rambank & 0x10)) update_mem(); } diff --git a/src/mame/machine/victor9k_fdc.cpp b/src/mame/machine/victor9k_fdc.cpp index 855f32fb507..53f78ad57f7 100644 --- a/src/mame/machine/victor9k_fdc.cpp +++ b/src/mame/machine/victor9k_fdc.cpp @@ -78,7 +78,7 @@ #define MOTOR_POLES 8.0 // TODO wrong values here! motor speed is controlled by an LM2917, with help from the spindle TACH and a DAC0808 whose value is set by the SCP 8048 -const int victor_9000_fdc_t::rpm[] = { 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 254, 255, 257, 259, 260, 262, 264, 266, 267, 269, 271, 273, 275, 276, 278, 280, 282, 284, 286, 288, 290, 291, 293, 295, 297, 299, 301, 303, 305, 307, 309, 311, 313, 315, 318, 320, 322, 324, 326, 328, 330, 333, 335, 337, 339, 342, 344, 346, 348, 351, 353, 355, 358, 360, 362, 365, 367, 370, 372, 375, 377, 380, 382, 385, 387, 390, 392, 395, 398, 400, 403, 406, 408, 411, 414, 416, 419, 422, 425, 428, 430, 433, 436, 439, 442, 445, 448, 451, 454, 457, 460, 463, 466, 469, 472, 475, 478, 482, 485, 488, 491, 494, 498, 501, 504, 508, 511, 514, 518, 521, 525, 528, 532, 535, 539, 542, 546, 550, 553, 557, 561, 564, 568, 572, 576, 579, 583, 587, 591, 595, 599, 603, 607, 611, 615, 619, 623, 627, 631, 636, 640, 644, 648, 653, 657, 661, 666, 670, 674, 679, 683, 688, 693, 697, 702, 706, 711, 716, 721, 725, 730, 735, 740, 745, 750, 755, 760, 765, 770, 775, 780, 785, 790, 796, 801, 806, 812, 817, 822, 828, 833, 839, 844, 850, 856, 861, 867, 873, 878, 884 }; +const int victor_9000_fdc_device::rpm[] = { 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 254, 255, 257, 259, 260, 262, 264, 266, 267, 269, 271, 273, 275, 276, 278, 280, 282, 284, 286, 288, 290, 291, 293, 295, 297, 299, 301, 303, 305, 307, 309, 311, 313, 315, 318, 320, 322, 324, 326, 328, 330, 333, 335, 337, 339, 342, 344, 346, 348, 351, 353, 355, 358, 360, 362, 365, 367, 370, 372, 375, 377, 380, 382, 385, 387, 390, 392, 395, 398, 400, 403, 406, 408, 411, 414, 416, 419, 422, 425, 428, 430, 433, 436, 439, 442, 445, 448, 451, 454, 457, 460, 463, 466, 469, 472, 475, 478, 482, 485, 488, 491, 494, 498, 501, 504, 508, 511, 514, 518, 521, 525, 528, 532, 535, 539, 542, 546, 550, 553, 557, 561, 564, 568, 572, 576, 579, 583, 587, 591, 595, 599, 603, 607, 611, 615, 619, 623, 627, 631, 636, 640, 644, 648, 653, 657, 661, 666, 670, 674, 679, 683, 688, 693, 697, 702, 706, 711, 716, 721, 725, 730, 735, 740, 745, 750, 755, 760, 765, 770, 775, 780, 785, 790, 796, 801, 806, 812, 817, 822, 828, 833, 839, 844, 850, 856, 861, 867, 873, 878, 884 }; @@ -86,7 +86,7 @@ const int victor_9000_fdc_t::rpm[] = { 252, 252, 252, 252, 252, 252, 252, 252, 2 // DEVICE DEFINITIONS //************************************************************************** -const device_type VICTOR_9000_FDC = device_creator; +DEFINE_DEVICE_TYPE(VICTOR_9000_FDC, victor_9000_fdc_device, "victor9k_fdc", "Victor 9000 FDC") //------------------------------------------------- @@ -106,7 +106,7 @@ ROM_END // rom_region - device-specific ROM region //------------------------------------------------- -const tiny_rom_entry *victor_9000_fdc_t::device_rom_region() const +const tiny_rom_entry *victor_9000_fdc_device::device_rom_region() const { return ROM_NAME( victor_9000_fdc ); } @@ -116,7 +116,7 @@ const tiny_rom_entry *victor_9000_fdc_t::device_rom_region() const // SLOT_INTERFACE( victor9k_floppies ) //------------------------------------------------- -image_init_result victor_9000_fdc_t::load0_cb(floppy_image_device *device) +image_init_result victor_9000_fdc_device::load0_cb(floppy_image_device *device) { // DOOR OPEN 0 m_via4->write_ca1(0); @@ -124,13 +124,13 @@ image_init_result victor_9000_fdc_t::load0_cb(floppy_image_device *device) return image_init_result::PASS; } -void victor_9000_fdc_t::unload0_cb(floppy_image_device *device) +void victor_9000_fdc_device::unload0_cb(floppy_image_device *device) { // DOOR OPEN 0 m_via4->write_ca1(1); } -image_init_result victor_9000_fdc_t::load1_cb(floppy_image_device *device) +image_init_result victor_9000_fdc_device::load1_cb(floppy_image_device *device) { // DOOR OPEN 1 m_via4->write_cb1(0); @@ -138,7 +138,7 @@ image_init_result victor_9000_fdc_t::load1_cb(floppy_image_device *device) return image_init_result::PASS; } -void victor_9000_fdc_t::unload1_cb(floppy_image_device *device) +void victor_9000_fdc_device::unload1_cb(floppy_image_device *device) { // DOOR OPEN 1 m_via4->write_cb1(1); @@ -149,7 +149,7 @@ static SLOT_INTERFACE_START( victor9k_floppies ) SLOT_INTERFACE( "525qd", FLOPPY_525_QD ) // Tandon TM100-4 with custom electronics SLOT_INTERFACE_END -FLOPPY_FORMATS_MEMBER( victor_9000_fdc_t::floppy_formats ) +FLOPPY_FORMATS_MEMBER( victor_9000_fdc_device::floppy_formats ) FLOPPY_VICTOR_9000_FORMAT FLOPPY_FORMATS_END @@ -160,38 +160,38 @@ FLOPPY_FORMATS_END static MACHINE_CONFIG_FRAGMENT( victor_9000_fdc ) MCFG_CPU_ADD(I8048_TAG, I8048, XTAL_30MHz/6) - MCFG_MCS48_PORT_P1_IN_CB(READ8(victor_9000_fdc_t, floppy_p1_r)) - MCFG_MCS48_PORT_P1_OUT_CB(WRITE8(victor_9000_fdc_t, floppy_p1_w)) - MCFG_MCS48_PORT_P2_IN_CB(READ8(victor_9000_fdc_t, floppy_p2_r)) - MCFG_MCS48_PORT_P2_OUT_CB(WRITE8(victor_9000_fdc_t, floppy_p2_w)) - MCFG_MCS48_PORT_T0_IN_CB(READLINE(victor_9000_fdc_t, tach0_r)) - MCFG_MCS48_PORT_T1_IN_CB(READLINE(victor_9000_fdc_t, tach1_r)) - MCFG_MCS48_PORT_BUS_OUT_CB(WRITE8(victor_9000_fdc_t, da_w)) + MCFG_MCS48_PORT_P1_IN_CB(READ8(victor_9000_fdc_device, floppy_p1_r)) + MCFG_MCS48_PORT_P1_OUT_CB(WRITE8(victor_9000_fdc_device, floppy_p1_w)) + MCFG_MCS48_PORT_P2_IN_CB(READ8(victor_9000_fdc_device, floppy_p2_r)) + MCFG_MCS48_PORT_P2_OUT_CB(WRITE8(victor_9000_fdc_device, floppy_p2_w)) + MCFG_MCS48_PORT_T0_IN_CB(READLINE(victor_9000_fdc_device, tach0_r)) + MCFG_MCS48_PORT_T1_IN_CB(READLINE(victor_9000_fdc_device, tach1_r)) + MCFG_MCS48_PORT_BUS_OUT_CB(WRITE8(victor_9000_fdc_device, da_w)) MCFG_DEVICE_ADD(M6522_4_TAG, VIA6522, XTAL_30MHz/30) - MCFG_VIA6522_READPA_HANDLER(READ8(victor_9000_fdc_t, via4_pa_r)) - MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(victor_9000_fdc_t, via4_pa_w)) - MCFG_VIA6522_READPB_HANDLER(READ8(victor_9000_fdc_t, via4_pb_r)) - MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(victor_9000_fdc_t, via4_pb_w)) - MCFG_VIA6522_CA2_HANDLER(WRITELINE(victor_9000_fdc_t, wrsync_w)) - MCFG_VIA6522_IRQ_HANDLER(WRITELINE(victor_9000_fdc_t, via4_irq_w)) + MCFG_VIA6522_READPA_HANDLER(READ8(victor_9000_fdc_device, via4_pa_r)) + MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(victor_9000_fdc_device, via4_pa_w)) + MCFG_VIA6522_READPB_HANDLER(READ8(victor_9000_fdc_device, via4_pb_r)) + MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(victor_9000_fdc_device, via4_pb_w)) + MCFG_VIA6522_CA2_HANDLER(WRITELINE(victor_9000_fdc_device, wrsync_w)) + MCFG_VIA6522_IRQ_HANDLER(WRITELINE(victor_9000_fdc_device, via4_irq_w)) MCFG_DEVICE_ADD(M6522_5_TAG, VIA6522, XTAL_30MHz/30) - MCFG_VIA6522_IRQ_HANDLER(WRITELINE(victor_9000_fdc_t, via5_irq_w)) - MCFG_VIA6522_READPA_HANDLER(READ8(victor_9000_fdc_t, via5_pa_r)) - MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(victor_9000_fdc_t, via5_pb_w)) + MCFG_VIA6522_IRQ_HANDLER(WRITELINE(victor_9000_fdc_device, via5_irq_w)) + MCFG_VIA6522_READPA_HANDLER(READ8(victor_9000_fdc_device, via5_pa_r)) + MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(victor_9000_fdc_device, via5_pb_w)) MCFG_DEVICE_ADD(M6522_6_TAG, VIA6522, XTAL_30MHz/30) - MCFG_VIA6522_READPA_HANDLER(READ8(victor_9000_fdc_t, via6_pa_r)) - MCFG_VIA6522_READPB_HANDLER(READ8(victor_9000_fdc_t, via6_pb_r)) - MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(victor_9000_fdc_t, via6_pa_w)) - MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(victor_9000_fdc_t, via6_pb_w)) - MCFG_VIA6522_CA2_HANDLER(WRITELINE(victor_9000_fdc_t, drw_w)) - MCFG_VIA6522_CB2_HANDLER(WRITELINE(victor_9000_fdc_t, erase_w)) - MCFG_VIA6522_IRQ_HANDLER(WRITELINE(victor_9000_fdc_t, via6_irq_w)) - - MCFG_FLOPPY_DRIVE_ADD(I8048_TAG":0", victor9k_floppies, "525qd", victor_9000_fdc_t::floppy_formats) - MCFG_FLOPPY_DRIVE_ADD(I8048_TAG":1", victor9k_floppies, "525qd", victor_9000_fdc_t::floppy_formats) + MCFG_VIA6522_READPA_HANDLER(READ8(victor_9000_fdc_device, via6_pa_r)) + MCFG_VIA6522_READPB_HANDLER(READ8(victor_9000_fdc_device, via6_pb_r)) + MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(victor_9000_fdc_device, via6_pa_w)) + MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(victor_9000_fdc_device, via6_pb_w)) + MCFG_VIA6522_CA2_HANDLER(WRITELINE(victor_9000_fdc_device, drw_w)) + MCFG_VIA6522_CB2_HANDLER(WRITELINE(victor_9000_fdc_device, erase_w)) + MCFG_VIA6522_IRQ_HANDLER(WRITELINE(victor_9000_fdc_device, via6_irq_w)) + + MCFG_FLOPPY_DRIVE_ADD(I8048_TAG":0", victor9k_floppies, "525qd", victor_9000_fdc_device::floppy_formats) + MCFG_FLOPPY_DRIVE_ADD(I8048_TAG":1", victor9k_floppies, "525qd", victor_9000_fdc_device::floppy_formats) MACHINE_CONFIG_END @@ -200,7 +200,7 @@ MACHINE_CONFIG_END // machine configurations //------------------------------------------------- -machine_config_constructor victor_9000_fdc_t::device_mconfig_additions() const +machine_config_constructor victor_9000_fdc_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( victor_9000_fdc ); } @@ -212,11 +212,11 @@ machine_config_constructor victor_9000_fdc_t::device_mconfig_additions() const //************************************************************************** //------------------------------------------------- -// victor_9000_fdc_t - constructor +// victor_9000_fdc_device - constructor //------------------------------------------------- -victor_9000_fdc_t::victor_9000_fdc_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, VICTOR_9000_FDC, "Victor 9000 FDC", tag, owner, clock, "victor9k_fdc", __FILE__), +victor_9000_fdc_device::victor_9000_fdc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, VICTOR_9000_FDC, tag, owner, clock), m_irq_cb(*this), m_syn_cb(*this), m_lbrdy_cb(*this), @@ -269,7 +269,7 @@ victor_9000_fdc_t::victor_9000_fdc_t(const machine_config &mconfig, const char * // device_start - device-specific startup //------------------------------------------------- -void victor_9000_fdc_t::device_start() +void victor_9000_fdc_device::device_start() { // resolve callbacks m_irq_cb.resolve_safe(); @@ -321,7 +321,7 @@ void victor_9000_fdc_t::device_start() // device_reset - device-specific reset //------------------------------------------------- -void victor_9000_fdc_t::device_reset() +void victor_9000_fdc_device::device_reset() { live_abort(); @@ -333,14 +333,14 @@ void victor_9000_fdc_t::device_reset() // set floppy callbacks if (m_floppy0->get_device()) { - m_floppy0->get_device()->setup_load_cb(floppy_image_device::load_cb(&victor_9000_fdc_t::load0_cb, this)); - m_floppy0->get_device()->setup_unload_cb(floppy_image_device::unload_cb(&victor_9000_fdc_t::unload0_cb, this)); + m_floppy0->get_device()->setup_load_cb(floppy_image_device::load_cb(&victor_9000_fdc_device::load0_cb, this)); + m_floppy0->get_device()->setup_unload_cb(floppy_image_device::unload_cb(&victor_9000_fdc_device::unload0_cb, this)); } if (m_floppy1->get_device()) { - m_floppy1->get_device()->setup_load_cb(floppy_image_device::load_cb(&victor_9000_fdc_t::load1_cb, this)); - m_floppy1->get_device()->setup_unload_cb(floppy_image_device::unload_cb(&victor_9000_fdc_t::unload1_cb, this)); + m_floppy1->get_device()->setup_load_cb(floppy_image_device::load_cb(&victor_9000_fdc_device::load1_cb, this)); + m_floppy1->get_device()->setup_unload_cb(floppy_image_device::unload_cb(&victor_9000_fdc_device::unload1_cb, this)); } } @@ -349,7 +349,7 @@ void victor_9000_fdc_t::device_reset() // device_timer - handler timer events //------------------------------------------------- -void victor_9000_fdc_t::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) +void victor_9000_fdc_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) { switch (id) { @@ -375,7 +375,7 @@ void victor_9000_fdc_t::device_timer(emu_timer &timer, device_timer_id id, int p // floppy_p1_r - //------------------------------------------------- -READ8_MEMBER( victor_9000_fdc_t::floppy_p1_r ) +READ8_MEMBER( victor_9000_fdc_device::floppy_p1_r ) { /* @@ -400,7 +400,7 @@ READ8_MEMBER( victor_9000_fdc_t::floppy_p1_r ) // floppy_p1_w - //------------------------------------------------- -WRITE8_MEMBER( victor_9000_fdc_t::floppy_p1_w ) +WRITE8_MEMBER( victor_9000_fdc_device::floppy_p1_w ) { /* @@ -426,7 +426,7 @@ WRITE8_MEMBER( victor_9000_fdc_t::floppy_p1_w ) // floppy_p2_r - //------------------------------------------------- -READ8_MEMBER( victor_9000_fdc_t::floppy_p2_r ) +READ8_MEMBER( victor_9000_fdc_device::floppy_p2_r ) { /* @@ -456,7 +456,7 @@ READ8_MEMBER( victor_9000_fdc_t::floppy_p2_r ) // floppy_p2_w - //------------------------------------------------- -WRITE8_MEMBER( victor_9000_fdc_t::floppy_p2_w ) +WRITE8_MEMBER( victor_9000_fdc_device::floppy_p2_w ) { /* @@ -536,7 +536,7 @@ WRITE8_MEMBER( victor_9000_fdc_t::floppy_p2_w ) // tach0_r - //------------------------------------------------- -READ_LINE_MEMBER( victor_9000_fdc_t::tach0_r ) +READ_LINE_MEMBER( victor_9000_fdc_device::tach0_r ) { if (LOG_SCP) logerror("%s %s Read TACH0 %u\n", machine().time().as_string(), machine().describe_context(), m_tach0); return m_tach0; @@ -547,14 +547,14 @@ READ_LINE_MEMBER( victor_9000_fdc_t::tach0_r ) // tach1_r - //------------------------------------------------- -READ_LINE_MEMBER( victor_9000_fdc_t::tach1_r ) +READ_LINE_MEMBER( victor_9000_fdc_device::tach1_r ) { if (LOG_SCP) logerror("%s %s Read TACH1 %u\n", machine().time().as_string(), machine().describe_context(), m_tach1); return m_tach1; } -void victor_9000_fdc_t::update_stepper_motor(floppy_image_device *floppy, int stp, int old_st, int st) +void victor_9000_fdc_device::update_stepper_motor(floppy_image_device *floppy, int stp, int old_st, int st) { if (stp) return; @@ -584,7 +584,7 @@ void victor_9000_fdc_t::update_stepper_motor(floppy_image_device *floppy, int st floppy->set_rpm(victor9k_format::get_rpm(m_side, floppy->get_cyl())); } -void victor_9000_fdc_t::update_spindle_motor(floppy_image_device *floppy, emu_timer *t_tach, bool start, bool stop, bool sel, uint8_t &da) +void victor_9000_fdc_device::update_spindle_motor(floppy_image_device *floppy, emu_timer *t_tach, bool start, bool stop, bool sel, uint8_t &da) { #ifdef USE_SCP if (start && !stop && floppy->mon_r()) { @@ -599,7 +599,7 @@ void victor_9000_fdc_t::update_spindle_motor(floppy_image_device *floppy, emu_ti #endif } -void victor_9000_fdc_t::update_rpm(floppy_image_device *floppy, emu_timer *t_tach, bool sel, uint8_t &da) +void victor_9000_fdc_device::update_rpm(floppy_image_device *floppy, emu_timer *t_tach, bool sel, uint8_t &da) { #ifdef USE_SCP if (sel) { @@ -618,7 +618,7 @@ void victor_9000_fdc_t::update_rpm(floppy_image_device *floppy, emu_timer *t_tac #endif } -void victor_9000_fdc_t::update_rdy() +void victor_9000_fdc_device::update_rdy() { m_via5->write_ca2((m_via_rdy0 && m_via_rdy1) ? m_rdy0 : m_scp_rdy0); m_via5->write_cb2((m_via_rdy0 && m_via_rdy1) ? m_rdy1 : m_scp_rdy1); @@ -629,7 +629,7 @@ void victor_9000_fdc_t::update_rdy() // da_w - //------------------------------------------------- -WRITE8_MEMBER( victor_9000_fdc_t::da_w ) +WRITE8_MEMBER( victor_9000_fdc_device::da_w ) { if (LOG_SCP) logerror("%s %s DA %02x SEL0 %u SEL1 %u\n", machine().time().as_string(), machine().describe_context(), data, m_sel0, m_sel1); @@ -641,7 +641,7 @@ WRITE8_MEMBER( victor_9000_fdc_t::da_w ) live_run(); } -READ8_MEMBER( victor_9000_fdc_t::via4_pa_r ) +READ8_MEMBER( victor_9000_fdc_device::via4_pa_r ) { /* @@ -661,7 +661,7 @@ READ8_MEMBER( victor_9000_fdc_t::via4_pa_r ) return m_scp_l0ms; } -WRITE8_MEMBER( victor_9000_fdc_t::via4_pa_w ) +WRITE8_MEMBER( victor_9000_fdc_device::via4_pa_w ) { /* @@ -706,7 +706,7 @@ WRITE8_MEMBER( victor_9000_fdc_t::via4_pa_w ) } } -READ8_MEMBER( victor_9000_fdc_t::via4_pb_r ) +READ8_MEMBER( victor_9000_fdc_device::via4_pb_r ) { /* @@ -726,7 +726,7 @@ READ8_MEMBER( victor_9000_fdc_t::via4_pb_r ) return m_scp_l1ms; } -WRITE8_MEMBER( victor_9000_fdc_t::via4_pb_w ) +WRITE8_MEMBER( victor_9000_fdc_device::via4_pb_w ) { /* @@ -771,7 +771,7 @@ WRITE8_MEMBER( victor_9000_fdc_t::via4_pb_w ) } } -WRITE_LINE_MEMBER( victor_9000_fdc_t::wrsync_w ) +WRITE_LINE_MEMBER( victor_9000_fdc_device::wrsync_w ) { if (m_wrsync != state) { @@ -784,14 +784,14 @@ WRITE_LINE_MEMBER( victor_9000_fdc_t::wrsync_w ) } } -WRITE_LINE_MEMBER( victor_9000_fdc_t::via4_irq_w ) +WRITE_LINE_MEMBER( victor_9000_fdc_device::via4_irq_w ) { m_via4_irq = state; m_irq_cb(m_via4_irq || m_via5_irq || m_via6_irq); } -READ8_MEMBER( victor_9000_fdc_t::via5_pa_r ) +READ8_MEMBER( victor_9000_fdc_device::via5_pa_r ) { /* @@ -811,7 +811,7 @@ READ8_MEMBER( victor_9000_fdc_t::via5_pa_r ) return GCR_DECODE(checkpoint_live.e, checkpoint_live.i); } -WRITE8_MEMBER( victor_9000_fdc_t::via5_pb_w ) +WRITE8_MEMBER( victor_9000_fdc_device::via5_pb_w ) { /* @@ -841,7 +841,7 @@ WRITE8_MEMBER( victor_9000_fdc_t::via5_pb_w ) } } -WRITE_LINE_MEMBER( victor_9000_fdc_t::via5_irq_w ) +WRITE_LINE_MEMBER( victor_9000_fdc_device::via5_irq_w ) { m_via5_irq = state; @@ -849,7 +849,7 @@ WRITE_LINE_MEMBER( victor_9000_fdc_t::via5_irq_w ) } -READ8_MEMBER( victor_9000_fdc_t::via6_pa_r ) +READ8_MEMBER( victor_9000_fdc_device::via6_pa_r ) { /* @@ -885,7 +885,7 @@ READ8_MEMBER( victor_9000_fdc_t::via6_pa_r ) return data; } -WRITE8_MEMBER( victor_9000_fdc_t::via6_pa_w ) +WRITE8_MEMBER( victor_9000_fdc_device::via6_pa_w ) { /* @@ -937,7 +937,7 @@ WRITE8_MEMBER( victor_9000_fdc_t::via6_pa_w ) } } -READ8_MEMBER( victor_9000_fdc_t::via6_pb_r ) +READ8_MEMBER( victor_9000_fdc_device::via6_pb_r ) { /* @@ -974,7 +974,7 @@ READ8_MEMBER( victor_9000_fdc_t::via6_pb_r ) return data; } -WRITE8_MEMBER( victor_9000_fdc_t::via6_pb_w ) +WRITE8_MEMBER( victor_9000_fdc_device::via6_pb_w ) { /* @@ -1027,7 +1027,7 @@ WRITE8_MEMBER( victor_9000_fdc_t::via6_pb_w ) } } -WRITE_LINE_MEMBER( victor_9000_fdc_t::drw_w ) +WRITE_LINE_MEMBER( victor_9000_fdc_device::drw_w ) { if (m_drw != state) { @@ -1044,7 +1044,7 @@ WRITE_LINE_MEMBER( victor_9000_fdc_t::drw_w ) } } -WRITE_LINE_MEMBER( victor_9000_fdc_t::erase_w ) +WRITE_LINE_MEMBER( victor_9000_fdc_device::erase_w ) { if (m_erase != state) { @@ -1056,14 +1056,14 @@ WRITE_LINE_MEMBER( victor_9000_fdc_t::erase_w ) } } -WRITE_LINE_MEMBER( victor_9000_fdc_t::via6_irq_w ) +WRITE_LINE_MEMBER( victor_9000_fdc_device::via6_irq_w ) { m_via6_irq = state; m_irq_cb(m_via4_irq || m_via5_irq || m_via6_irq); } -READ8_MEMBER( victor_9000_fdc_t::cs7_r ) +READ8_MEMBER( victor_9000_fdc_device::cs7_r ) { m_lbrdy_cb(1); @@ -1072,7 +1072,7 @@ READ8_MEMBER( victor_9000_fdc_t::cs7_r ) return m_via5->read(space, offset); } -WRITE8_MEMBER( victor_9000_fdc_t::cs7_w ) +WRITE8_MEMBER( victor_9000_fdc_device::cs7_w ) { m_lbrdy_cb(1); @@ -1081,12 +1081,12 @@ WRITE8_MEMBER( victor_9000_fdc_t::cs7_w ) m_via5->write(space, offset, data); } -floppy_image_device* victor_9000_fdc_t::get_floppy() +floppy_image_device* victor_9000_fdc_device::get_floppy() { return m_drive ? m_floppy1->get_device() : m_floppy0->get_device(); } -void victor_9000_fdc_t::live_start() +void victor_9000_fdc_device::live_start() { cur_live.tm = machine().time(); cur_live.state = RUNNING; @@ -1112,63 +1112,63 @@ void victor_9000_fdc_t::live_start() live_run(); } -void victor_9000_fdc_t::pll_reset(const attotime &when) +void victor_9000_fdc_device::pll_reset(const attotime &when) { cur_pll.reset(when); cur_pll.set_clock(attotime::from_nsec(2130)); } -void victor_9000_fdc_t::pll_start_writing(const attotime &tm) +void victor_9000_fdc_device::pll_start_writing(const attotime &tm) { cur_pll.start_writing(tm); pll_reset(cur_live.tm); } -void victor_9000_fdc_t::pll_commit(floppy_image_device *floppy, const attotime &tm) +void victor_9000_fdc_device::pll_commit(floppy_image_device *floppy, const attotime &tm) { cur_pll.commit(floppy, tm); } -void victor_9000_fdc_t::pll_stop_writing(floppy_image_device *floppy, const attotime &tm) +void victor_9000_fdc_device::pll_stop_writing(floppy_image_device *floppy, const attotime &tm) { cur_pll.stop_writing(floppy, tm); pll_reset(cur_live.tm); } -void victor_9000_fdc_t::pll_save_checkpoint() +void victor_9000_fdc_device::pll_save_checkpoint() { checkpoint_pll = cur_pll; } -void victor_9000_fdc_t::pll_retrieve_checkpoint() +void victor_9000_fdc_device::pll_retrieve_checkpoint() { cur_pll = checkpoint_pll; } -int victor_9000_fdc_t::pll_get_next_bit(attotime &tm, floppy_image_device *floppy, const attotime &limit) +int victor_9000_fdc_device::pll_get_next_bit(attotime &tm, floppy_image_device *floppy, const attotime &limit) { return cur_pll.get_next_bit(tm, floppy, limit); } -bool victor_9000_fdc_t::pll_write_next_bit(bool bit, attotime &tm, floppy_image_device *floppy, const attotime &limit) +bool victor_9000_fdc_device::pll_write_next_bit(bool bit, attotime &tm, floppy_image_device *floppy, const attotime &limit) { return cur_pll.write_next_bit(bit, tm, floppy, limit); } -void victor_9000_fdc_t::checkpoint() +void victor_9000_fdc_device::checkpoint() { pll_commit(get_floppy(), cur_live.tm); checkpoint_live = cur_live; pll_save_checkpoint(); } -void victor_9000_fdc_t::rollback() +void victor_9000_fdc_device::rollback() { cur_live = checkpoint_live; pll_retrieve_checkpoint(); } -void victor_9000_fdc_t::live_delay(int state) +void victor_9000_fdc_device::live_delay(int state) { cur_live.next_state = state; if(cur_live.tm != machine().time()) @@ -1177,7 +1177,7 @@ void victor_9000_fdc_t::live_delay(int state) live_sync(); } -void victor_9000_fdc_t::live_sync() +void victor_9000_fdc_device::live_sync() { if(!cur_live.tm.is_never()) { if(cur_live.tm > machine().time()) { @@ -1200,7 +1200,7 @@ void victor_9000_fdc_t::live_sync() } } -void victor_9000_fdc_t::live_abort() +void victor_9000_fdc_device::live_abort() { if(!cur_live.tm.is_never() && cur_live.tm > machine().time()) { rollback(); @@ -1221,7 +1221,7 @@ void victor_9000_fdc_t::live_abort() cur_live.gcr_err = 1; } -void victor_9000_fdc_t::live_run(const attotime &limit) +void victor_9000_fdc_device::live_run(const attotime &limit) { if(cur_live.state == IDLE || cur_live.next_state != -1) return; diff --git a/src/mame/machine/victor9k_fdc.h b/src/mame/machine/victor9k_fdc.h index 447604368eb..15e92f7defc 100644 --- a/src/mame/machine/victor9k_fdc.h +++ b/src/mame/machine/victor9k_fdc.h @@ -6,10 +6,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_MACHINE_VICTOR9K_FDC_H +#define MAME_MACHINE_VICTOR9K_FDC_H -#ifndef __VICTOR_9000_FDC__ -#define __VICTOR_9000_FDC__ +#pragma once #include "cpu/mcs48/mcs48.h" #include "formats/victor9k_dsk.h" @@ -24,13 +24,13 @@ //************************************************************************** #define MCFG_VICTOR_9000_FDC_IRQ_CB(_write) \ - devcb = &victor_9000_fdc_t::set_irq_wr_callback(*device, DEVCB_##_write); + devcb = &victor_9000_fdc_device::set_irq_wr_callback(*device, DEVCB_##_write); #define MCFG_VICTOR_9000_FDC_SYN_CB(_write) \ - devcb = &victor_9000_fdc_t::set_syn_wr_callback(*device, DEVCB_##_write); + devcb = &victor_9000_fdc_device::set_syn_wr_callback(*device, DEVCB_##_write); #define MCFG_VICTOR_9000_FDC_LBRDY_CB(_write) \ - devcb = &victor_9000_fdc_t::set_lbrdy_wr_callback(*device, DEVCB_##_write); + devcb = &victor_9000_fdc_device::set_lbrdy_wr_callback(*device, DEVCB_##_write); @@ -38,17 +38,17 @@ // TYPE DEFINITIONS //************************************************************************** -// ======================> victor_9000_fdc_t +// ======================> victor_9000_fdc_device -class victor_9000_fdc_t : public device_t +class victor_9000_fdc_device : public device_t { public: // construction/destruction - victor_9000_fdc_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + victor_9000_fdc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_irq_wr_callback(device_t &device, _Object object) { return downcast(device).m_irq_cb.set_callback(object); } - template static devcb_base &set_syn_wr_callback(device_t &device, _Object object) { return downcast(device).m_syn_cb.set_callback(object); } - template static devcb_base &set_lbrdy_wr_callback(device_t &device, _Object object) { return downcast(device).m_lbrdy_cb.set_callback(object); } + template static devcb_base &set_irq_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_irq_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_syn_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_syn_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_lbrdy_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_lbrdy_cb.set_callback(std::forward(cb)); } DECLARE_READ8_MEMBER( cs5_r ) { return m_via4->read(space, offset); } DECLARE_WRITE8_MEMBER( cs5_w ) { m_via4->write(space, offset, data); } @@ -239,8 +239,7 @@ private: // device type definition -extern const device_type VICTOR_9000_FDC; - +DECLARE_DEVICE_TYPE(VICTOR_9000_FDC, victor_9000_fdc_device) -#endif +#endif // MAME_MACHINE_VICTOR9K_FDC_H diff --git a/src/mame/machine/victor9k_kb.cpp b/src/mame/machine/victor9k_kb.cpp new file mode 100644 index 00000000000..291cab8d8ec --- /dev/null +++ b/src/mame/machine/victor9k_kb.cpp @@ -0,0 +1,678 @@ +// license:BSD-3-Clause +// copyright-holders:Curt Coder +/********************************************************************** + + Victor 9000 keyboard emulation + +*********************************************************************/ + +/* + +Keyboard PCB Layout +---------- + +Marking on PCB back: A65-02307-201D 007 + +|------------------------------------------------------------------------------------| +| 22-908-03 22-950-3B XTAL 8021 74LS14 [804x] [EPROM] [???] L CN1=___ +| X X X X X X X X X X X | +| X X X X X X X X X X X X X X X X X X X X X | +| X X X X X X X X X X X X X X X X X X X X X | +| X X X X X X X X X X X X X X X X X X X X X | +| X X X X X X X X X X X X X X X X X X X X | +| X X marking X X X X X X X X | +|----------------------------------------------------------------------------------------| + + +Notes: + All IC's shown. + XTAL - 3.579545Mhz Crystal, marked "48-300-010" (front of xtal) and "3.579545Mhz" (back of xtal) + 74LS14 - Z4 - 74LS14 Hex inverter with Schmitt-trigger inputs (0.8v hysteresis) + 8021 - Z3 - Intel 8021 MCU, marked: "P8021 2137 // 8227 // 20-8021-139 // (C) INTEL 77" + 22-908-03 - Z2 - Exar Semiconductor XR22-008-03 keyboard matrix capacitive readout latch + 22-950-3B - Z1 - Exar Semiconductor XR22-050-3B keyboard matrix row driver with 4 to 12 decoder/demultiplexer + CN1 or J1 - J1 - keyboard data connector (SIP, 7 pins, right angle) + L - L1 & L2 - mil-spec 22uH 10% inductors (double wide silver band(mil spec), red(2) red(2) black(x1uH) silver(10%)) + + [804x] - unpopulated space for a 40 pin 804x or 803x MCU + [EPROM] - unpopulated space for an EPROM, if a ROMless 803x MCU was used + [???] - unpopulated space for an unknown NDIP10 IC or DIP-switch array + X - capacitive sensor pad for one key + marking - PCB trace marking: "KTC // A65-02307-007 // PCB 201 D" + +74LS14 (Hex inverter with Schmitt-trigger inputs (0.8v hysteresis)) +------------------ + __ __ + 1A 1 |* \_/ | 14 VCC + /1Y 2 | | 13 6A + 2A 3 | | 12 /6Y + /2Y 4 | | 11 5A + 3A 5 | 74LS14| 10 /5Y + /3Y 6 | | 9 4A + GND 7 |_______| 8 /4Y + + +P8021 Pinout +------------------ + _____ _____ + P22 1 |* \_/ | 28 VCC + P23 2 | | 27 P21 + PROG 3 | | 26 P20 + P00 4 | | 25 P17 + P01 5 | P8021 | 24 P16 + P02 6 | | 23 P15 + P03 7 | | 22 P14 + P04 8 | | 21 P13 + P05 9 | | 20 P12 + P06 10 | | 19 P11 + P07 11 | | 18 P10 + ALE 12 | | 17 RESET + T1 13 | | 16 XTAL 2 + VSS 14 |_____________| 15 XTAL 1 + + +XR22-008-03 Pinout (AKA XR22-908-03) +------------------ + _____ _____ + D0 1 |* \_/ | 20 Vcc + D1 2 | | 19 _CLR + D2 3 | | 18 Q0 + D3 4 | | 17 Q1 + HYS 5 | 22-008-03 | 16 Q2 + D4 6 | | 15 Q3 + D5 7 | | 14 Q4 + D6 8 | | 13 Q5 + D7 9 | | 12 Q6 + GND 10 |_____________| 11 Q7 + + +XR22-050-3B Pinout (AKA XR22-950-3B) +------------------ + _____ _____ + Y8 1 |* \_/ | 20 Vcc + Y9 2 | | 19 Y7 + Y10 3 | | 18 Y6 + Y11 4 | | 17 Y5 + _STB 5 | 22-050-3B | 16 Y4 + A0 6 | | 15 Y3 + A1 7 | | 14 Y2 + A2 8 | | 13 Y1 + A3 9 | | 12 Y0 + GND 10 |_____________| 11 OE? + +i8021 to elsewhere connections +------------------------------ +8021 pin - 22-xxx pin + P22 1 - 74LS14 pin 5 (3A) AND (804x chip pin 37, P26) + P23 2 - 74LS14 pin 11 (5A) AND (804x chip pin 38, P27) + PROG 3 - (804x chip pin 25, PROG) + P00 4 - N/C + P01 5 - N/C + P02 6 - N/C + P03 7 - N/C + P04 8 - N/C + P05 9 - N/C + P06 10 - N/C + P07 11 - N/C + ALE 12 - N/C + T1 13 - 74LS14 pin 2 (/1Y) AND (804x chip pin 39, T1) + VSS 14 - GND +XTAL1 15 - XTAL +XTAL2 16 - XTAL +RESET 17 - 10uf capacitor - VCC + P10 18 - 22-908 pin 18 (Q0) AND 22-950 pin 6 (A0) AND (804x chip pin 27, P10) + P11 19 - 22-908 pin 17 (Q1) AND 22-950 pin 7 (A1) AND (804x chip pin 28, P11) + P12 20 - 22-908 pin 16 (Q2) AND 22-950 pin 8 (A2) AND (804x chip pin 29, P12) + P13 21 - 22-908 pin 15 (Q3) AND 22-950 pin 9 (A3) AND (804x chip pin 30, P13) + P14 22 - 22-908 pin 14 (Q4) AND (804x chip pin 31, P14) + P15 23 - 22-908 pin 13 (Q5) AND (804x chip pin 32, P15) + P16 24 - 22-908 pin 12 (Q6) AND (804x chip pin 33, P16) + P17 25 - 22-908 pin 11 (Q7) AND (804x chip pin 34, P17) + P20 26 - 22-908 pin 19 (/CLR) AND 22-950 pin 5 (/STB) AND (804x chip pin 35, P24) + P21 27 - 74LS14 pin 9 (4A) AND (804x chip pin 36, P25) + VCC 28 - VCC + +74LS14 to elsewhere connections +------------------------------- + 1A 1 - 100 Ohm resistor - J1 pin 4 + /1Y 2 - 8021 pin 13 (T1) + 2A 3 - 74LS14 pin 8 + /2Y 4 - 22uH 10% inductor 'L1' - J1 pin 5 + 3A 5 - 8021 pin 1 (P22) + /3Y 6 - many keyboard contact pads (!) + GND 7 - GND + /4Y 8 - 74LS14 pin 3 + 4A 9 - 8021 pin 27 (P21) + /5Y 10 - 74LS14 pin 13 + 5A 11 - 8021 pin 2 (P23) + /6Y 12 - 22uH 10% inductor 'L2' - J1 pin 6 + 6A 13 - 74LS14 pin 10 + VCC 14 - VCC + + +J1 (aka CN1) connections: +------------------------- +1 - VCC +2 - GND +3 - GND +4 - 100 Ohm 5% resistor -> 74LS14 pin 1 -> inverted 74LS14 pin 2 -> inverted 8021 pin 13 (T1) +5 - 22uH 10% inductor 'L1' <- 74LS14 pin 4 <- inverted 74LS14 pin 3 <- inverted 74LS14 pin 8 <- 74LS14 pin 9 <- 8021 pin 27 (P21) +6 - 22uH 10% inductor 'L2' <- 74LS14 pin 12 <- inverted 74LS14 pin 13 <- inverted 74LS14 pin 10 <- 74LS14 pin 11 <- 8021 pin 2 (P23) +7 - VCC + +Pins 5,and 6 also have a .0047uF capacitor to GND (forming some sort of LC filter) +There is another .0047uF capacitor to ground from the connection between 74LS14 pin 1 and the 100 Ohm 5% resistor which connects to pin 4 (forming some sort of RC filter) + +Exar Custom connections between each other: +------------------------------------------- +22-950 pin 11 (OE?) - 68KOhm 5% resistor - 22-908 pin 5 (HYS) + +Cable connecting J1/CN1 to the Victor: +-------------------------------------- +RJ45 when looking at end of plug (not socket!) +.||||||||. +|87654321| +|__----__| + |__| + +RJ45 pins Wire Color Connection +1 White J1 pin 1 (VCC) +2 Yellow J1 pin 2 (GND) +3 Green J1 pin 3 (GND) +4 Orange J1 pin 4 (?KBACK?) +5 Blue J1 pin 5 (?KBRDY?) +6 Red J1 pin 6 (?KBDATA?) +7 Black J1 pin 7 (VCC) +8 shield/bare Keyboard Frame Ground + + +Key Layout (USA Variant): (the S0x markings appear on the back of the PCB) +|------------------------------------------------------------------------------------| +| 22-908-03 22-950-3B XTAL 8021 74LS14 [804x] [EPROM] [???] L CN1=___ +| 01 02 03 04 05 06 07 08 09 10 11 | +| 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | +| 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | +| 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | +| 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 | +| 95 96 marking 97 98 99 100 101 102 103 104| +|----------------------------------------------------------------------------------------| + + key - Shifted(top)/Unshifted(bottom)/Alt(front) (if no slashes in description assume key has just one symbol on it) + S01 - [1] + S02 - [2] + S03 - [3] + S04 - [4] + S05 - [5] + S06 - [6] + S07 - [7] + S08 - [8] + S09 - UNUSED (under the [8] key, no metal contact on this part of the key) + S10 - [9] + S11 - [10] + + S12 - CLR/HOME + S13 - (Degree symbol U+00B0)/(+- symbol U+00B1)/(Pi symbol U+03C0) + S14 - !/1/| + S15 - @/2/< + S16 - #/3/> + S17 - $/4/(centered closed dot U+00B7) + S18 - %/5/(up arrow symbol U+2191) + S19 - (cent symbol U+00A2)/6/(logical not symbol U+00AC) + S20 - &/7/^ + S21 - * /8/` + S22 - (/9/{ + S23 - )/0/} + S24 - _/-/~ + S25 - +/=/\ + S26 - BACKSPACE + S27 - INS + S28 - DEL + S29 - MODE CALC/= (beige keypad key) + S30 - % (beige keypad key) + S31 - (division symbol U+00F7) (beige keypad key) + S32 - (multiplication symbol U+00D7) (beige keypad key) + + S33 - (up arrow, SCRL, down arrow)//VTAB + S34 - TAB//BACK + S35 - Q + S36 - W + S37 - E + S38 - R + S39 - T + S40 - Y + S41 - U + S42 - I + S43 - O + S44 - P + S45 - (1/4 symbol U+00BC)/(1/2 symbol U+00BD) + S46 - [/] + S47 - UNUSED (under the RETURN key, no metal contact on this part of the key) + S48 - ERASE/EOL + S49 - REQ/CAN + S50 - 7 (white keypad key) + S51 - 8 (white keypad key) + S52 - 9 (white keypad key) + S53 - - (beige keypad key) + + S54 - (OFF,RVS,ON)//ESC + S55 - LOCK//CAPS LOCK + S56 - A + S57 - S + S58 - D + S59 - F + S60 - G + S61 - H + S62 - J + S63 - K + S64 - L + S65 - :/; + S66 - "/' + S67 - UNUSED (under the RETURN key, no metal contact on this part of the key) + S68 - RETURN + S69 - WORD/(left arrow U+2190)/(volume up U+1F508 plus U+25B4) (i.e. 'Previous Word') + S70 - WORD/(right arrow U+2192)/(volume down U+1F508 plus U+25BE) (i.e. 'Next Word') + S71 - 4 (white keypad key) + S72 - 5 (white keypad key) + S73 - 6 (white keypad key) + S74 - + (beige keypad key) + + S75 - (OFF,UNDL,ON) + S76 - SHIFT (left shift) + S77 - UNUSED (under the left SHIFT key, no metal contact on this part of the key) + S78 - Z//SUB + S79 - X//SUPER + S80 - C + S81 - V + S82 - B + S83 - N + S84 - M + S85 - ,/, (yes, both are comma) + S86 - ./. (yes, both are period/fullstop) + S87 - ?// (this is the actual / key) + S88 - SHIFT (right shift) + S89 - (up arrow U+2191)//(brightness up U+263C plus U+25B4) + S90 - (down arrow U+2193)//(brightness down U+263C plus U+25BE) + S91 - 1 (white keypad key) + S92 - 2 (white keypad key) + S93 - 3 (white keypad key) + S94 - ENTER (beige keypad key) + + S95 - RPT + S96 - ALT + S97 - (spacebar) + S98 - PAUSE/CONT + S99 - (left arrow U+2190)//(contrast up U+25D0 plus U+25B4) (U+1F313 can be used in place of U+25D0) + S100 - (right arrow U+2192)//(contrast down U+25D0 plus U+25BE) '' + S101 - 0 (white keypad key) + S102 - 00 (white keypad key) ('double zero') + S103 - . (white keypad key) + S104 - UNUSED (under the ENTER (beige keypad) key, no metal contact on this part of the key) + + Note that the five unused key contacts: + S09, S47, S67, S77 and S104 + may be used on international variants of the Victor 9000/Sirius 1 Keyboard. + +Keyboard Matrix +--------------- +Row select +| Columns Sxxx by bit Columns Key by bit +| D0 D1 D2 D3 D4 D5 D6 D7 D0 D1 D2 D3 D4 D5 D6 D7 +V V V V V V V V V V V V V V V V V +Y0 12 13 33 34 54 55 75 76 CLRH DEGR SCRL TAB RVS LOCK UNDL LSHFT +Y1 14 15 35 36 56 57 77 78 1 2 Q W A S N/A Z +Y2 16 17 37 38 58 59 79 80 3 4 E R D F X C +Y3 18 19 39 40 60 61 81 82 5 6 T Y G H V B +Y4 20 21 41 42 62 63 83 84 7 8 U I J K N M +Y5 22 23 43 44 64 65 85 86 9 0 O P L ; , . +Y6 24 25 45 46 66 67 87 88 - = 1/2 [] ' N/A ? RSHFT +Y7 26 27 47 48 68 69 89 90 BKSP INS N/A ERSE RETN WRDL UP DOWN +Y8 28 29 49 50 70 71 91 92 DEL MODE REQ k7 WRDR k4 k1 k2 +Y9 30 31 51 52 72 73 93 94 k% kDIV k8 k9 k5 k6 k3 kENTR +Y10 32 11 53 10 74 09 07 06 kMUL [10] k- [9] k+ N/A [7] [6] +Y11 104 103 102 101 100 99 98 97 kN/A k. k00 k0 RGHT LEFT PAUS SPACE +/3Y 05 04 03 02 01 08 95 96 [5] [4] [3] [2] [1] [8] RPT ALT + +*/ + +#include "emu.h" +#include "victor9k_kb.h" + + + +//************************************************************************** +// MACROS / CONSTANTS +//************************************************************************** + +#define I8021_TAG "z3" + +#define LOG 0 + + + +//************************************************************************** +// DEVICE DEFINITIONS +//************************************************************************** + +DEFINE_DEVICE_TYPE(VICTOR9K_KEYBOARD, victor_9000_keyboard_device, "victor9k_kb", "Victor 9000 Keyboard") + + +//------------------------------------------------- +// ROM( victor9k_keyboard ) +//------------------------------------------------- + +ROM_START( victor9k_keyboard ) + ROM_REGION( 0x400, I8021_TAG, 0) + ROM_LOAD( "20-8021-139.z3", 0x000, 0x400, CRC(0fe9d53d) SHA1(61d92ba90f98f8978bbd9303c1ac3134cde8cdcb) ) +ROM_END + + +//------------------------------------------------- +// rom_region - device-specific ROM region +//------------------------------------------------- + +const tiny_rom_entry *victor_9000_keyboard_device::device_rom_region() const +{ + return ROM_NAME( victor9k_keyboard ); +} + + +//------------------------------------------------- +// MACHINE_DRIVER( victor9k_keyboard ) +//------------------------------------------------- + +static MACHINE_CONFIG_FRAGMENT( victor9k_keyboard ) + MCFG_CPU_ADD(I8021_TAG, I8021, XTAL_3_579545MHz) + // P0 is unconnected on pcb + MCFG_MCS48_PORT_P1_IN_CB(READ8(victor_9000_keyboard_device, kb_p1_r)) + MCFG_MCS48_PORT_P1_OUT_CB(WRITE8(victor_9000_keyboard_device, kb_p1_w)) + MCFG_MCS48_PORT_P2_OUT_CB(WRITE8(victor_9000_keyboard_device, kb_p2_w)) + MCFG_MCS48_PORT_T1_IN_CB(READLINE(victor_9000_keyboard_device, kb_t1_r)) +MACHINE_CONFIG_END + + +//------------------------------------------------- +// machine_config_additions - device-specific +// machine configurations +//------------------------------------------------- + +machine_config_constructor victor_9000_keyboard_device::device_mconfig_additions() const +{ + return MACHINE_CONFIG_NAME( victor9k_keyboard ); +} + + +//------------------------------------------------- +// INPUT_PORTS( victor9k_keyboard ) +//------------------------------------------------- + +INPUT_PORTS_START( victor9k_keyboard ) + PORT_START("Y0") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("CLR/HOME") PORT_CODE(KEYCODE_HOME) // S12 + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME(UTF8_PLUSMINUS" " UTF8_DEGREES" " UTF8_SMALL_PI) PORT_CODE(KEYCODE_TILDE) // +-, degree, pi // S13 + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME(UTF8_UP" SCRL " UTF8_DOWN) PORT_CODE(KEYCODE_SCRLOCK) // unicode arrows // S33 + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("TAB/BACK") PORT_CODE(KEYCODE_TAB) PORT_CHAR(9) // S34 + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("RVS On-Off/ESC") PORT_CODE(KEYCODE_ESC) PORT_CHAR(27) // S54 + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("LOCK/CAPSLOCK") PORT_CODE(KEYCODE_CAPSLOCK) // S55 + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("UNDL On-Off") PORT_CODE(KEYCODE_PRTSCR) // need better key code // S75 + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Left Shift") PORT_CODE(KEYCODE_LSHIFT) PORT_CHAR(UCHAR_SHIFT_1) // S76 + + PORT_START("Y1") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("1 ! |") PORT_CODE(KEYCODE_1) PORT_CHAR('1') PORT_CHAR('!') PORT_CHAR('|') // S14 + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("2 @ <") PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_CHAR('@') PORT_CHAR('<') // S15 + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Q") PORT_CODE(KEYCODE_Q) PORT_CHAR('q') PORT_CHAR('Q') // S35 + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("W") PORT_CODE(KEYCODE_W) PORT_CHAR('w') PORT_CHAR('W') // S36 + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("A") PORT_CODE(KEYCODE_A) PORT_CHAR('a') PORT_CHAR('A') // S56 + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("S") PORT_CODE(KEYCODE_S) PORT_CHAR('s') PORT_CHAR('S') // S57 + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("UNUSED S75") // unused // S75 + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Z SUB") PORT_CODE(KEYCODE_Z) PORT_CHAR('z') PORT_CHAR('Z') // S76 + + PORT_START("Y2") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("3 # >") PORT_CODE(KEYCODE_3) PORT_CHAR('3') PORT_CHAR('#') PORT_CHAR('>') // S16 + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("4 $ \xc2\xb7") PORT_CODE(KEYCODE_4) PORT_CHAR('4') PORT_CHAR('$') // centered closed dot U+00B7 // S17 + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("E") PORT_CODE(KEYCODE_E) PORT_CHAR('e') PORT_CHAR('E') // S37 + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("R") PORT_CODE(KEYCODE_R) PORT_CHAR('r') PORT_CHAR('R') // S38 + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("D") PORT_CODE(KEYCODE_D) PORT_CHAR('d') PORT_CHAR('D') // S58 + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("F") PORT_CODE(KEYCODE_F) PORT_CHAR('f') PORT_CHAR('F') // S59 + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("X SUPER") PORT_CODE(KEYCODE_X) PORT_CHAR('x') PORT_CHAR('X') // S79 + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("C") PORT_CODE(KEYCODE_C) PORT_CHAR('c') PORT_CHAR('C') // S80 + + PORT_START("Y3") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("5 % " UTF8_UP) PORT_CODE(KEYCODE_5) PORT_CHAR('5') PORT_CHAR('%') // S18 + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("6 \xc2\xa2 \xc2\xac") PORT_CODE(KEYCODE_6) PORT_CHAR('6') // cent U+00A2, logic not U+00AC // S19 + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("T") PORT_CODE(KEYCODE_T) PORT_CHAR('t') PORT_CHAR('T') // S39 + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Y") PORT_CODE(KEYCODE_Y) PORT_CHAR('y') PORT_CHAR('Y') // S40 + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("G") PORT_CODE(KEYCODE_G) PORT_CHAR('g') PORT_CHAR('G') // S60 + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("H") PORT_CODE(KEYCODE_H) PORT_CHAR('h') PORT_CHAR('H') // S61 + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("V") PORT_CODE(KEYCODE_V) PORT_CHAR('v') PORT_CHAR('V') // S81 + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("B") PORT_CODE(KEYCODE_B) PORT_CHAR('b') PORT_CHAR('B') // S82 + + PORT_START("Y4") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("7 & ^") PORT_CODE(KEYCODE_7) PORT_CHAR('7') PORT_CHAR('&') PORT_CHAR('^') // S20 + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("8 * `") PORT_CODE(KEYCODE_8) PORT_CHAR('8') PORT_CHAR('*') PORT_CHAR('`') // S21 + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("U") PORT_CODE(KEYCODE_U) PORT_CHAR('u') PORT_CHAR('U') // S41 + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("I") PORT_CODE(KEYCODE_I) PORT_CHAR('i') PORT_CHAR('I') // S42 + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("J") PORT_CODE(KEYCODE_J) PORT_CHAR('j') PORT_CHAR('J') // S62 + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("K") PORT_CODE(KEYCODE_K) PORT_CHAR('k') PORT_CHAR('K') // S63 + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("N") PORT_CODE(KEYCODE_N) PORT_CHAR('n') PORT_CHAR('N') // S83 + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("M") PORT_CODE(KEYCODE_M) PORT_CHAR('m') PORT_CHAR('M') // S84 + + PORT_START("Y5") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("9 ( {") PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_CHAR('(') PORT_CHAR('{') // S22 + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("0 ) }") PORT_CODE(KEYCODE_0) PORT_CHAR('0') PORT_CHAR(')') PORT_CHAR('}') // S23 + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("O") PORT_CODE(KEYCODE_O) PORT_CHAR('o') PORT_CHAR('O') // S43 + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("P") PORT_CODE(KEYCODE_P) PORT_CHAR('p') PORT_CHAR('P') // S44 + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("L") PORT_CODE(KEYCODE_L) PORT_CHAR('l') PORT_CHAR('L') // S64 + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("; :") PORT_CODE(KEYCODE_COLON) PORT_CHAR(';') PORT_CHAR(':') // S65 + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME(",") PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') // S85 + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME(".") PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') // S86 + + PORT_START("Y6") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("- _ ~") PORT_CODE(KEYCODE_MINUS) PORT_CHAR('-') PORT_CHAR('_') PORT_CHAR('~') // S24 + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("= + \\") PORT_CODE(KEYCODE_EQUALS) PORT_CHAR('=') PORT_CHAR('+') PORT_CHAR('\\') // S25 + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("\xc2\xbd \xc2\xbc") PORT_CODE(KEYCODE_OPENBRACE) // unicode half fraction U+00BD / quarter fraction U+00BC // S45 + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("[ ]") PORT_CODE(KEYCODE_CLOSEBRACE) PORT_CHAR('[') PORT_CHAR(']') // S46 + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("' \"") PORT_CODE(KEYCODE_QUOTE) PORT_CHAR('\'') PORT_CHAR('\"') // S66 + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("UNUSED S67") // unused // S67 + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("/ ?") PORT_CODE(KEYCODE_SLASH) PORT_CHAR('/') PORT_CHAR('?') // S87 + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Right Shift") PORT_CODE(KEYCODE_RSHIFT) PORT_CHAR(UCHAR_SHIFT_1) // S88 + + PORT_START("Y7") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("BACKSPACE") PORT_CODE(KEYCODE_BACKSPACE) PORT_CHAR(8) // S26 + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("INS") PORT_CODE(KEYCODE_INSERT) // S27 + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("UNUSED S47") // unused // S47 + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("ERASE/EOL") PORT_CODE(KEYCODE_END) // should this be mapped to end or del? // S48 + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("RETURN") PORT_CODE(KEYCODE_ENTER) PORT_CHAR(13) // S68 + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Word " UTF8_LEFT"/Volume Up \xf0\x9f\x94\x88\xe2\x96\xb4") PORT_CODE(KEYCODE_PGUP) // unicode U+2190/U+1F508 + U+25B4 // S69 + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME(UTF8_UP"/Brightness Up \xe2\x98\xbc\xe2\x96\xb4") PORT_CODE(KEYCODE_UP) PORT_CHAR(UCHAR_MAMEKEY(UP)) // U+2191/U+263C + U+25B4 // S89 + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME(UTF8_DOWN"/Brightness Down \xe2\x98\xbc\xe2\x96\xbe") PORT_CODE(KEYCODE_DOWN) PORT_CHAR(UCHAR_MAMEKEY(DOWN)) // U+2193/U+263C + U+25BE // S90 + + PORT_START("Y8") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("DEL") PORT_CODE(KEYCODE_DEL) PORT_CHAR(127) // S28 + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad MODE CALC/=") PORT_CODE(KEYCODE_NUMLOCK) // S29 + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("REQ/CAN") PORT_CODE(KEYCODE_BACKSLASH) // is this a good key for this? does sysrq make more sense? // S49 + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad 7") PORT_CODE(KEYCODE_7_PAD) // S50 + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Word " UTF8_RIGHT"/Volume Down \xf0\x9f\x94\x88\xe2\x96\xbe") PORT_CODE(KEYCODE_PGDN) // unicode U+2192/U+1F508 + U+25B4 // S70 + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad 4") PORT_CODE(KEYCODE_4_PAD) // S71 + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad 1") PORT_CODE(KEYCODE_1_PAD) // S91 + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad 2") PORT_CODE(KEYCODE_2_PAD) // S92 + + PORT_START("Y9") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad %") // find a good key for this // S30 + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad " UTF8_DIVIDE) PORT_CODE(KEYCODE_SLASH_PAD) // unicode division sign U+00F7 // S31 + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad 8") PORT_CODE(KEYCODE_8_PAD) // S51 + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad 9") PORT_CODE(KEYCODE_9_PAD) // S52 + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad 5") PORT_CODE(KEYCODE_5_PAD) // S72 + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad 6") PORT_CODE(KEYCODE_6_PAD) // S73 + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad 3") PORT_CODE(KEYCODE_3_PAD) // S93 + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad Enter") PORT_CODE(KEYCODE_ENTER_PAD) // S94 + + PORT_START("Y10") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad " UTF8_MULTIPLY) PORT_CODE(KEYCODE_ASTERISK) // unicode multiply sign U+00D7 // S32 + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("F10 [10]") PORT_CODE(KEYCODE_F10) // S11 + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad -") PORT_CODE(KEYCODE_MINUS_PAD) // S53 + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("F9 [9]") PORT_CODE(KEYCODE_F9) // S10 + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad +") PORT_CODE(KEYCODE_PLUS_PAD) // S74 + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("UNUSED S09") // unused // S09 + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("F7 [7]") PORT_CODE(KEYCODE_F7) // S07 + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("F6 [6]") PORT_CODE(KEYCODE_F6) // S06 + + PORT_START("Y11") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("UNUSED S04") // unused // S104 + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad .") PORT_CODE(KEYCODE_DEL_PAD) // S103 + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad 00") PORT_CODE(KEYCODE_00_PAD) // S102 + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad 0") PORT_CODE(KEYCODE_0_PAD) // S101 + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME(UTF8_RIGHT"/Contrast Down \xe2\x97\x90\xe2\x96\xbe") PORT_CODE(KEYCODE_RIGHT) PORT_CHAR(UCHAR_MAMEKEY(RIGHT)) // U+2190/U+25D0 + U+25BE S100 + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME(UTF8_LEFT"/Contrast Up \xe2\x97\x90\xe2\x96\xb4") PORT_CODE(KEYCODE_LEFT) PORT_CHAR(UCHAR_MAMEKEY(LEFT)) // U+2190/U+25D0 + U+25B4 S99 + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("PAUSE/CONT") PORT_CODE(KEYCODE_PAUSE) // S98 + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Spacebar") PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ') // S97 + + PORT_START("Y12") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("F5 [5]") PORT_CODE(KEYCODE_F5) // S05 + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("F4 [4]") PORT_CODE(KEYCODE_F4) // S04 + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("F3 [3]") PORT_CODE(KEYCODE_F3) // S03 + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("F2 [2]") PORT_CODE(KEYCODE_F2) // S02 + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("F1 [1]") PORT_CODE(KEYCODE_F1) // S01 + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("F8 [8]") PORT_CODE(KEYCODE_F8) // S11 + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("RPT") PORT_CODE(KEYCODE_LCONTROL) // S95 + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("ALT") PORT_CODE(KEYCODE_LALT) PORT_CODE(KEYCODE_RALT) PORT_CHAR(UCHAR_SHIFT_2) // S96 +INPUT_PORTS_END + + +//------------------------------------------------- +// input_ports - device-specific input ports +//------------------------------------------------- + +ioport_constructor victor_9000_keyboard_device::device_input_ports() const +{ + return INPUT_PORTS_NAME( victor9k_keyboard ); +} + + + +//************************************************************************** +// LIVE DEVICE +//************************************************************************** + +//------------------------------------------------- +// victor_9000_keyboard_device - constructor +//------------------------------------------------- + +victor_9000_keyboard_device::victor_9000_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, VICTOR9K_KEYBOARD, tag, owner, clock), + m_maincpu(*this, I8021_TAG), + m_y(*this, "Y%u", 0), + m_kbrdy_cb(*this), + m_kbdata_cb(*this), + m_keylatch(0), + m_kbrdy(-1), + m_kbdata(-1), + m_kback(1) +{ +} + + +//------------------------------------------------- +// device_start - device-specific startup +//------------------------------------------------- + +void victor_9000_keyboard_device::device_start() +{ + // resolve callbacks + m_kbrdy_cb.resolve_safe(); + m_kbdata_cb.resolve_safe(); + + // state saving + save_item(NAME(m_p1)); + save_item(NAME(m_keylatch)); + save_item(NAME(m_stb)); + save_item(NAME(m_y12)); + save_item(NAME(m_kbrdy)); + save_item(NAME(m_kbdata)); + save_item(NAME(m_kback)); +} + + +//------------------------------------------------- +// kback_w - +//------------------------------------------------- + +WRITE_LINE_MEMBER( victor_9000_keyboard_device::kback_w ) +{ + if (LOG) logerror("KBACK %u\n", state); + + m_kback = !state; +} + + +//------------------------------------------------- +// kb_p1_r - +//------------------------------------------------- + +READ8_MEMBER( victor_9000_keyboard_device::kb_p1_r ) +{ + uint8_t data = 0xff; + + if (m_keylatch < 12) + { + data &= m_y[m_keylatch]->read(); + } + + if (!m_y12) + { + data &= m_y[12]->read(); + } + + return data; +} + + +//------------------------------------------------- +// kb_p1_w - +//------------------------------------------------- + +WRITE8_MEMBER( victor_9000_keyboard_device::kb_p1_w ) +{ + m_p1 = data; +} + + +//------------------------------------------------- +// kb_p2_w - +//------------------------------------------------- + +WRITE8_MEMBER( victor_9000_keyboard_device::kb_p2_w ) +{ + /* + + bit description + + P20 22-908 CLR, 22-950 STB + P21 KBRDY + P22 Y12 + P23 KBDATA + + */ + + // falling (?edge or level?), latch keyboard rows 0-11 + if (!BIT(data, 0)) + { + m_keylatch = m_p1 & 0x0f; + m_y12 = BIT(data, 2); + } + + // keyboard ready + m_kbrdy_cb(BIT(data, 1)); + + // keyboard data + m_kbdata_cb(BIT(data, 3)); +} + + +//------------------------------------------------- +// kb_t1_r - +//------------------------------------------------- + +READ_LINE_MEMBER( victor_9000_keyboard_device::kb_t1_r ) +{ + return m_kback; +} diff --git a/src/mame/machine/victor9k_kb.h b/src/mame/machine/victor9k_kb.h new file mode 100644 index 00000000000..dd13aff5790 --- /dev/null +++ b/src/mame/machine/victor9k_kb.h @@ -0,0 +1,84 @@ +// license:BSD-3-Clause +// copyright-holders:Curt Coder +/********************************************************************** + + Victor 9000 keyboard emulation + +*********************************************************************/ + +#ifndef MAME_MACHINE_VICTOR9K_KB_H +#define MAME_MACHINE_VICTOR9K_KB_H + + +#pragma once + +#include "cpu/mcs48/mcs48.h" + + + +//************************************************************************** +// INTERFACE CONFIGURATION MACROS +//************************************************************************** + +#define MCFG_VICTOR9K_KBRDY_HANDLER(_devcb) \ + devcb = &victor_9000_keyboard_device::set_kbrdy_cb(*device, DEVCB_##_devcb); + +#define MCFG_VICTOR9K_KBDATA_HANDLER(_devcb) \ + devcb = &victor_9000_keyboard_device::set_kbdata_cb(*device, DEVCB_##_devcb); + + +//************************************************************************** +// TYPE DEFINITIONS +//************************************************************************** + +// ======================> victor_9000_keyboard_device + +class victor_9000_keyboard_device : public device_t +{ +public: + // construction/destruction + victor_9000_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + + template static devcb_base &set_kbrdy_cb(device_t &device, _Object object) { return downcast(device).m_kbrdy_cb.set_callback(object); } + template static devcb_base &set_kbdata_cb(device_t &device, _Object object) { return downcast(device).m_kbdata_cb.set_callback(object); } + + // optional information overrides + virtual const tiny_rom_entry *device_rom_region() const override; + virtual machine_config_constructor device_mconfig_additions() const override; + virtual ioport_constructor device_input_ports() const override; + + DECLARE_WRITE_LINE_MEMBER( kback_w ); + + // not really public + DECLARE_READ8_MEMBER( kb_p1_r ); + DECLARE_WRITE8_MEMBER( kb_p1_w ); + DECLARE_WRITE8_MEMBER( kb_p2_w ); + DECLARE_READ_LINE_MEMBER( kb_t1_r ); + +protected: + // device-level overrides + virtual void device_start() override; + +private: + required_device m_maincpu; + required_ioport_array<13> m_y; + + devcb_write_line m_kbrdy_cb; + devcb_write_line m_kbdata_cb; + + uint8_t m_p1; + uint8_t m_keylatch; + int m_stb; + int m_y12; + int m_kbrdy; + int m_kbdata; + int m_kback; +}; + + +// device type definition +DECLARE_DEVICE_TYPE(VICTOR9K_KEYBOARD, victor_9000_keyboard_device) + + + +#endif // MAME_MACHINE_VICTOR9K_KB_H diff --git a/src/mame/machine/victor9kb.cpp b/src/mame/machine/victor9kb.cpp deleted file mode 100644 index 6f2c80a2295..00000000000 --- a/src/mame/machine/victor9kb.cpp +++ /dev/null @@ -1,678 +0,0 @@ -// license:BSD-3-Clause -// copyright-holders:Curt Coder -/********************************************************************** - - Victor 9000 keyboard emulation - -*********************************************************************/ - -/* - -Keyboard PCB Layout ----------- - -Marking on PCB back: A65-02307-201D 007 - -|------------------------------------------------------------------------------------| -| 22-908-03 22-950-3B XTAL 8021 74LS14 [804x] [EPROM] [???] L CN1=___ -| X X X X X X X X X X X | -| X X X X X X X X X X X X X X X X X X X X X | -| X X X X X X X X X X X X X X X X X X X X X | -| X X X X X X X X X X X X X X X X X X X X X | -| X X X X X X X X X X X X X X X X X X X X | -| X X marking X X X X X X X X | -|----------------------------------------------------------------------------------------| - - -Notes: - All IC's shown. - XTAL - 3.579545Mhz Crystal, marked "48-300-010" (front of xtal) and "3.579545Mhz" (back of xtal) - 74LS14 - Z4 - 74LS14 Hex inverter with Schmitt-trigger inputs (0.8v hysteresis) - 8021 - Z3 - Intel 8021 MCU, marked: "P8021 2137 // 8227 // 20-8021-139 // (C) INTEL 77" - 22-908-03 - Z2 - Exar Semiconductor XR22-008-03 keyboard matrix capacitive readout latch - 22-950-3B - Z1 - Exar Semiconductor XR22-050-3B keyboard matrix row driver with 4 to 12 decoder/demultiplexer - CN1 or J1 - J1 - keyboard data connector (SIP, 7 pins, right angle) - L - L1 & L2 - mil-spec 22uH 10% inductors (double wide silver band(mil spec), red(2) red(2) black(x1uH) silver(10%)) - - [804x] - unpopulated space for a 40 pin 804x or 803x MCU - [EPROM] - unpopulated space for an EPROM, if a ROMless 803x MCU was used - [???] - unpopulated space for an unknown NDIP10 IC or DIP-switch array - X - capacitive sensor pad for one key - marking - PCB trace marking: "KTC // A65-02307-007 // PCB 201 D" - -74LS14 (Hex inverter with Schmitt-trigger inputs (0.8v hysteresis)) ------------------- - __ __ - 1A 1 |* \_/ | 14 VCC - /1Y 2 | | 13 6A - 2A 3 | | 12 /6Y - /2Y 4 | | 11 5A - 3A 5 | 74LS14| 10 /5Y - /3Y 6 | | 9 4A - GND 7 |_______| 8 /4Y - - -P8021 Pinout ------------------- - _____ _____ - P22 1 |* \_/ | 28 VCC - P23 2 | | 27 P21 - PROG 3 | | 26 P20 - P00 4 | | 25 P17 - P01 5 | P8021 | 24 P16 - P02 6 | | 23 P15 - P03 7 | | 22 P14 - P04 8 | | 21 P13 - P05 9 | | 20 P12 - P06 10 | | 19 P11 - P07 11 | | 18 P10 - ALE 12 | | 17 RESET - T1 13 | | 16 XTAL 2 - VSS 14 |_____________| 15 XTAL 1 - - -XR22-008-03 Pinout (AKA XR22-908-03) ------------------- - _____ _____ - D0 1 |* \_/ | 20 Vcc - D1 2 | | 19 _CLR - D2 3 | | 18 Q0 - D3 4 | | 17 Q1 - HYS 5 | 22-008-03 | 16 Q2 - D4 6 | | 15 Q3 - D5 7 | | 14 Q4 - D6 8 | | 13 Q5 - D7 9 | | 12 Q6 - GND 10 |_____________| 11 Q7 - - -XR22-050-3B Pinout (AKA XR22-950-3B) ------------------- - _____ _____ - Y8 1 |* \_/ | 20 Vcc - Y9 2 | | 19 Y7 - Y10 3 | | 18 Y6 - Y11 4 | | 17 Y5 - _STB 5 | 22-050-3B | 16 Y4 - A0 6 | | 15 Y3 - A1 7 | | 14 Y2 - A2 8 | | 13 Y1 - A3 9 | | 12 Y0 - GND 10 |_____________| 11 OE? - -i8021 to elsewhere connections ------------------------------- -8021 pin - 22-xxx pin - P22 1 - 74LS14 pin 5 (3A) AND (804x chip pin 37, P26) - P23 2 - 74LS14 pin 11 (5A) AND (804x chip pin 38, P27) - PROG 3 - (804x chip pin 25, PROG) - P00 4 - N/C - P01 5 - N/C - P02 6 - N/C - P03 7 - N/C - P04 8 - N/C - P05 9 - N/C - P06 10 - N/C - P07 11 - N/C - ALE 12 - N/C - T1 13 - 74LS14 pin 2 (/1Y) AND (804x chip pin 39, T1) - VSS 14 - GND -XTAL1 15 - XTAL -XTAL2 16 - XTAL -RESET 17 - 10uf capacitor - VCC - P10 18 - 22-908 pin 18 (Q0) AND 22-950 pin 6 (A0) AND (804x chip pin 27, P10) - P11 19 - 22-908 pin 17 (Q1) AND 22-950 pin 7 (A1) AND (804x chip pin 28, P11) - P12 20 - 22-908 pin 16 (Q2) AND 22-950 pin 8 (A2) AND (804x chip pin 29, P12) - P13 21 - 22-908 pin 15 (Q3) AND 22-950 pin 9 (A3) AND (804x chip pin 30, P13) - P14 22 - 22-908 pin 14 (Q4) AND (804x chip pin 31, P14) - P15 23 - 22-908 pin 13 (Q5) AND (804x chip pin 32, P15) - P16 24 - 22-908 pin 12 (Q6) AND (804x chip pin 33, P16) - P17 25 - 22-908 pin 11 (Q7) AND (804x chip pin 34, P17) - P20 26 - 22-908 pin 19 (/CLR) AND 22-950 pin 5 (/STB) AND (804x chip pin 35, P24) - P21 27 - 74LS14 pin 9 (4A) AND (804x chip pin 36, P25) - VCC 28 - VCC - -74LS14 to elsewhere connections -------------------------------- - 1A 1 - 100 Ohm resistor - J1 pin 4 - /1Y 2 - 8021 pin 13 (T1) - 2A 3 - 74LS14 pin 8 - /2Y 4 - 22uH 10% inductor 'L1' - J1 pin 5 - 3A 5 - 8021 pin 1 (P22) - /3Y 6 - many keyboard contact pads (!) - GND 7 - GND - /4Y 8 - 74LS14 pin 3 - 4A 9 - 8021 pin 27 (P21) - /5Y 10 - 74LS14 pin 13 - 5A 11 - 8021 pin 2 (P23) - /6Y 12 - 22uH 10% inductor 'L2' - J1 pin 6 - 6A 13 - 74LS14 pin 10 - VCC 14 - VCC - - -J1 (aka CN1) connections: -------------------------- -1 - VCC -2 - GND -3 - GND -4 - 100 Ohm 5% resistor -> 74LS14 pin 1 -> inverted 74LS14 pin 2 -> inverted 8021 pin 13 (T1) -5 - 22uH 10% inductor 'L1' <- 74LS14 pin 4 <- inverted 74LS14 pin 3 <- inverted 74LS14 pin 8 <- 74LS14 pin 9 <- 8021 pin 27 (P21) -6 - 22uH 10% inductor 'L2' <- 74LS14 pin 12 <- inverted 74LS14 pin 13 <- inverted 74LS14 pin 10 <- 74LS14 pin 11 <- 8021 pin 2 (P23) -7 - VCC - -Pins 5,and 6 also have a .0047uF capacitor to GND (forming some sort of LC filter) -There is another .0047uF capacitor to ground from the connection between 74LS14 pin 1 and the 100 Ohm 5% resistor which connects to pin 4 (forming some sort of RC filter) - -Exar Custom connections between each other: -------------------------------------------- -22-950 pin 11 (OE?) - 68KOhm 5% resistor - 22-908 pin 5 (HYS) - -Cable connecting J1/CN1 to the Victor: --------------------------------------- -RJ45 when looking at end of plug (not socket!) -.||||||||. -|87654321| -|__----__| - |__| - -RJ45 pins Wire Color Connection -1 White J1 pin 1 (VCC) -2 Yellow J1 pin 2 (GND) -3 Green J1 pin 3 (GND) -4 Orange J1 pin 4 (?KBACK?) -5 Blue J1 pin 5 (?KBRDY?) -6 Red J1 pin 6 (?KBDATA?) -7 Black J1 pin 7 (VCC) -8 shield/bare Keyboard Frame Ground - - -Key Layout (USA Variant): (the S0x markings appear on the back of the PCB) -|------------------------------------------------------------------------------------| -| 22-908-03 22-950-3B XTAL 8021 74LS14 [804x] [EPROM] [???] L CN1=___ -| 01 02 03 04 05 06 07 08 09 10 11 | -| 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | -| 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | -| 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | -| 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 | -| 95 96 marking 97 98 99 100 101 102 103 104| -|----------------------------------------------------------------------------------------| - - key - Shifted(top)/Unshifted(bottom)/Alt(front) (if no slashes in description assume key has just one symbol on it) - S01 - [1] - S02 - [2] - S03 - [3] - S04 - [4] - S05 - [5] - S06 - [6] - S07 - [7] - S08 - [8] - S09 - UNUSED (under the [8] key, no metal contact on this part of the key) - S10 - [9] - S11 - [10] - - S12 - CLR/HOME - S13 - (Degree symbol U+00B0)/(+- symbol U+00B1)/(Pi symbol U+03C0) - S14 - !/1/| - S15 - @/2/< - S16 - #/3/> - S17 - $/4/(centered closed dot U+00B7) - S18 - %/5/(up arrow symbol U+2191) - S19 - (cent symbol U+00A2)/6/(logical not symbol U+00AC) - S20 - &/7/^ - S21 - * /8/` - S22 - (/9/{ - S23 - )/0/} - S24 - _/-/~ - S25 - +/=/\ - S26 - BACKSPACE - S27 - INS - S28 - DEL - S29 - MODE CALC/= (beige keypad key) - S30 - % (beige keypad key) - S31 - (division symbol U+00F7) (beige keypad key) - S32 - (multiplication symbol U+00D7) (beige keypad key) - - S33 - (up arrow, SCRL, down arrow)//VTAB - S34 - TAB//BACK - S35 - Q - S36 - W - S37 - E - S38 - R - S39 - T - S40 - Y - S41 - U - S42 - I - S43 - O - S44 - P - S45 - (1/4 symbol U+00BC)/(1/2 symbol U+00BD) - S46 - [/] - S47 - UNUSED (under the RETURN key, no metal contact on this part of the key) - S48 - ERASE/EOL - S49 - REQ/CAN - S50 - 7 (white keypad key) - S51 - 8 (white keypad key) - S52 - 9 (white keypad key) - S53 - - (beige keypad key) - - S54 - (OFF,RVS,ON)//ESC - S55 - LOCK//CAPS LOCK - S56 - A - S57 - S - S58 - D - S59 - F - S60 - G - S61 - H - S62 - J - S63 - K - S64 - L - S65 - :/; - S66 - "/' - S67 - UNUSED (under the RETURN key, no metal contact on this part of the key) - S68 - RETURN - S69 - WORD/(left arrow U+2190)/(volume up U+1F508 plus U+25B4) (i.e. 'Previous Word') - S70 - WORD/(right arrow U+2192)/(volume down U+1F508 plus U+25BE) (i.e. 'Next Word') - S71 - 4 (white keypad key) - S72 - 5 (white keypad key) - S73 - 6 (white keypad key) - S74 - + (beige keypad key) - - S75 - (OFF,UNDL,ON) - S76 - SHIFT (left shift) - S77 - UNUSED (under the left SHIFT key, no metal contact on this part of the key) - S78 - Z//SUB - S79 - X//SUPER - S80 - C - S81 - V - S82 - B - S83 - N - S84 - M - S85 - ,/, (yes, both are comma) - S86 - ./. (yes, both are period/fullstop) - S87 - ?// (this is the actual / key) - S88 - SHIFT (right shift) - S89 - (up arrow U+2191)//(brightness up U+263C plus U+25B4) - S90 - (down arrow U+2193)//(brightness down U+263C plus U+25BE) - S91 - 1 (white keypad key) - S92 - 2 (white keypad key) - S93 - 3 (white keypad key) - S94 - ENTER (beige keypad key) - - S95 - RPT - S96 - ALT - S97 - (spacebar) - S98 - PAUSE/CONT - S99 - (left arrow U+2190)//(contrast up U+25D0 plus U+25B4) (U+1F313 can be used in place of U+25D0) - S100 - (right arrow U+2192)//(contrast down U+25D0 plus U+25BE) '' - S101 - 0 (white keypad key) - S102 - 00 (white keypad key) ('double zero') - S103 - . (white keypad key) - S104 - UNUSED (under the ENTER (beige keypad) key, no metal contact on this part of the key) - - Note that the five unused key contacts: - S09, S47, S67, S77 and S104 - may be used on international variants of the Victor 9000/Sirius 1 Keyboard. - -Keyboard Matrix ---------------- -Row select -| Columns Sxxx by bit Columns Key by bit -| D0 D1 D2 D3 D4 D5 D6 D7 D0 D1 D2 D3 D4 D5 D6 D7 -V V V V V V V V V V V V V V V V V -Y0 12 13 33 34 54 55 75 76 CLRH DEGR SCRL TAB RVS LOCK UNDL LSHFT -Y1 14 15 35 36 56 57 77 78 1 2 Q W A S N/A Z -Y2 16 17 37 38 58 59 79 80 3 4 E R D F X C -Y3 18 19 39 40 60 61 81 82 5 6 T Y G H V B -Y4 20 21 41 42 62 63 83 84 7 8 U I J K N M -Y5 22 23 43 44 64 65 85 86 9 0 O P L ; , . -Y6 24 25 45 46 66 67 87 88 - = 1/2 [] ' N/A ? RSHFT -Y7 26 27 47 48 68 69 89 90 BKSP INS N/A ERSE RETN WRDL UP DOWN -Y8 28 29 49 50 70 71 91 92 DEL MODE REQ k7 WRDR k4 k1 k2 -Y9 30 31 51 52 72 73 93 94 k% kDIV k8 k9 k5 k6 k3 kENTR -Y10 32 11 53 10 74 09 07 06 kMUL [10] k- [9] k+ N/A [7] [6] -Y11 104 103 102 101 100 99 98 97 kN/A k. k00 k0 RGHT LEFT PAUS SPACE -/3Y 05 04 03 02 01 08 95 96 [5] [4] [3] [2] [1] [8] RPT ALT - -*/ - -#include "emu.h" -#include "victor9kb.h" - - - -//************************************************************************** -// MACROS / CONSTANTS -//************************************************************************** - -#define I8021_TAG "z3" - -#define LOG 0 - - - -//************************************************************************** -// DEVICE DEFINITIONS -//************************************************************************** - -const device_type VICTOR9K_KEYBOARD = device_creator; - - -//------------------------------------------------- -// ROM( victor9k_keyboard ) -//------------------------------------------------- - -ROM_START( victor9k_keyboard ) - ROM_REGION( 0x400, I8021_TAG, 0) - ROM_LOAD( "20-8021-139.z3", 0x000, 0x400, CRC(0fe9d53d) SHA1(61d92ba90f98f8978bbd9303c1ac3134cde8cdcb) ) -ROM_END - - -//------------------------------------------------- -// rom_region - device-specific ROM region -//------------------------------------------------- - -const tiny_rom_entry *victor_9000_keyboard_t::device_rom_region() const -{ - return ROM_NAME( victor9k_keyboard ); -} - - -//------------------------------------------------- -// MACHINE_DRIVER( victor9k_keyboard ) -//------------------------------------------------- - -static MACHINE_CONFIG_FRAGMENT( victor9k_keyboard ) - MCFG_CPU_ADD(I8021_TAG, I8021, XTAL_3_579545MHz) - // P0 is unconnected on pcb - MCFG_MCS48_PORT_P1_IN_CB(READ8(victor_9000_keyboard_t, kb_p1_r)) - MCFG_MCS48_PORT_P1_OUT_CB(WRITE8(victor_9000_keyboard_t, kb_p1_w)) - MCFG_MCS48_PORT_P2_OUT_CB(WRITE8(victor_9000_keyboard_t, kb_p2_w)) - MCFG_MCS48_PORT_T1_IN_CB(READLINE(victor_9000_keyboard_t, kb_t1_r)) -MACHINE_CONFIG_END - - -//------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations -//------------------------------------------------- - -machine_config_constructor victor_9000_keyboard_t::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( victor9k_keyboard ); -} - - -//------------------------------------------------- -// INPUT_PORTS( victor9k_keyboard ) -//------------------------------------------------- - -INPUT_PORTS_START( victor9k_keyboard ) - PORT_START("Y0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("CLR/HOME") PORT_CODE(KEYCODE_HOME) // S12 - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME(UTF8_PLUSMINUS" " UTF8_DEGREES" " UTF8_SMALL_PI) PORT_CODE(KEYCODE_TILDE) // +-, degree, pi // S13 - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME(UTF8_UP" SCRL " UTF8_DOWN) PORT_CODE(KEYCODE_SCRLOCK) // unicode arrows // S33 - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("TAB/BACK") PORT_CODE(KEYCODE_TAB) PORT_CHAR(9) // S34 - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("RVS On-Off/ESC") PORT_CODE(KEYCODE_ESC) PORT_CHAR(27) // S54 - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("LOCK/CAPSLOCK") PORT_CODE(KEYCODE_CAPSLOCK) // S55 - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("UNDL On-Off") PORT_CODE(KEYCODE_PRTSCR) // need better key code // S75 - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Left Shift") PORT_CODE(KEYCODE_LSHIFT) PORT_CHAR(UCHAR_SHIFT_1) // S76 - - PORT_START("Y1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("1 ! |") PORT_CODE(KEYCODE_1) PORT_CHAR('1') PORT_CHAR('!') PORT_CHAR('|') // S14 - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("2 @ <") PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_CHAR('@') PORT_CHAR('<') // S15 - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Q") PORT_CODE(KEYCODE_Q) PORT_CHAR('q') PORT_CHAR('Q') // S35 - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("W") PORT_CODE(KEYCODE_W) PORT_CHAR('w') PORT_CHAR('W') // S36 - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("A") PORT_CODE(KEYCODE_A) PORT_CHAR('a') PORT_CHAR('A') // S56 - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("S") PORT_CODE(KEYCODE_S) PORT_CHAR('s') PORT_CHAR('S') // S57 - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("UNUSED S75") // unused // S75 - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Z SUB") PORT_CODE(KEYCODE_Z) PORT_CHAR('z') PORT_CHAR('Z') // S76 - - PORT_START("Y2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("3 # >") PORT_CODE(KEYCODE_3) PORT_CHAR('3') PORT_CHAR('#') PORT_CHAR('>') // S16 - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("4 $ \xc2\xb7") PORT_CODE(KEYCODE_4) PORT_CHAR('4') PORT_CHAR('$') // centered closed dot U+00B7 // S17 - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("E") PORT_CODE(KEYCODE_E) PORT_CHAR('e') PORT_CHAR('E') // S37 - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("R") PORT_CODE(KEYCODE_R) PORT_CHAR('r') PORT_CHAR('R') // S38 - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("D") PORT_CODE(KEYCODE_D) PORT_CHAR('d') PORT_CHAR('D') // S58 - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("F") PORT_CODE(KEYCODE_F) PORT_CHAR('f') PORT_CHAR('F') // S59 - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("X SUPER") PORT_CODE(KEYCODE_X) PORT_CHAR('x') PORT_CHAR('X') // S79 - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("C") PORT_CODE(KEYCODE_C) PORT_CHAR('c') PORT_CHAR('C') // S80 - - PORT_START("Y3") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("5 % " UTF8_UP) PORT_CODE(KEYCODE_5) PORT_CHAR('5') PORT_CHAR('%') // S18 - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("6 \xc2\xa2 \xc2\xac") PORT_CODE(KEYCODE_6) PORT_CHAR('6') // cent U+00A2, logic not U+00AC // S19 - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("T") PORT_CODE(KEYCODE_T) PORT_CHAR('t') PORT_CHAR('T') // S39 - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Y") PORT_CODE(KEYCODE_Y) PORT_CHAR('y') PORT_CHAR('Y') // S40 - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("G") PORT_CODE(KEYCODE_G) PORT_CHAR('g') PORT_CHAR('G') // S60 - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("H") PORT_CODE(KEYCODE_H) PORT_CHAR('h') PORT_CHAR('H') // S61 - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("V") PORT_CODE(KEYCODE_V) PORT_CHAR('v') PORT_CHAR('V') // S81 - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("B") PORT_CODE(KEYCODE_B) PORT_CHAR('b') PORT_CHAR('B') // S82 - - PORT_START("Y4") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("7 & ^") PORT_CODE(KEYCODE_7) PORT_CHAR('7') PORT_CHAR('&') PORT_CHAR('^') // S20 - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("8 * `") PORT_CODE(KEYCODE_8) PORT_CHAR('8') PORT_CHAR('*') PORT_CHAR('`') // S21 - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("U") PORT_CODE(KEYCODE_U) PORT_CHAR('u') PORT_CHAR('U') // S41 - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("I") PORT_CODE(KEYCODE_I) PORT_CHAR('i') PORT_CHAR('I') // S42 - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("J") PORT_CODE(KEYCODE_J) PORT_CHAR('j') PORT_CHAR('J') // S62 - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("K") PORT_CODE(KEYCODE_K) PORT_CHAR('k') PORT_CHAR('K') // S63 - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("N") PORT_CODE(KEYCODE_N) PORT_CHAR('n') PORT_CHAR('N') // S83 - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("M") PORT_CODE(KEYCODE_M) PORT_CHAR('m') PORT_CHAR('M') // S84 - - PORT_START("Y5") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("9 ( {") PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_CHAR('(') PORT_CHAR('{') // S22 - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("0 ) }") PORT_CODE(KEYCODE_0) PORT_CHAR('0') PORT_CHAR(')') PORT_CHAR('}') // S23 - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("O") PORT_CODE(KEYCODE_O) PORT_CHAR('o') PORT_CHAR('O') // S43 - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("P") PORT_CODE(KEYCODE_P) PORT_CHAR('p') PORT_CHAR('P') // S44 - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("L") PORT_CODE(KEYCODE_L) PORT_CHAR('l') PORT_CHAR('L') // S64 - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("; :") PORT_CODE(KEYCODE_COLON) PORT_CHAR(';') PORT_CHAR(':') // S65 - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME(",") PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') // S85 - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME(".") PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') // S86 - - PORT_START("Y6") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("- _ ~") PORT_CODE(KEYCODE_MINUS) PORT_CHAR('-') PORT_CHAR('_') PORT_CHAR('~') // S24 - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("= + \\") PORT_CODE(KEYCODE_EQUALS) PORT_CHAR('=') PORT_CHAR('+') PORT_CHAR('\\') // S25 - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("\xc2\xbd \xc2\xbc") PORT_CODE(KEYCODE_OPENBRACE) // unicode half fraction U+00BD / quarter fraction U+00BC // S45 - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("[ ]") PORT_CODE(KEYCODE_CLOSEBRACE) PORT_CHAR('[') PORT_CHAR(']') // S46 - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("' \"") PORT_CODE(KEYCODE_QUOTE) PORT_CHAR('\'') PORT_CHAR('\"') // S66 - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("UNUSED S67") // unused // S67 - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("/ ?") PORT_CODE(KEYCODE_SLASH) PORT_CHAR('/') PORT_CHAR('?') // S87 - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Right Shift") PORT_CODE(KEYCODE_RSHIFT) PORT_CHAR(UCHAR_SHIFT_1) // S88 - - PORT_START("Y7") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("BACKSPACE") PORT_CODE(KEYCODE_BACKSPACE) PORT_CHAR(8) // S26 - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("INS") PORT_CODE(KEYCODE_INSERT) // S27 - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("UNUSED S47") // unused // S47 - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("ERASE/EOL") PORT_CODE(KEYCODE_END) // should this be mapped to end or del? // S48 - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("RETURN") PORT_CODE(KEYCODE_ENTER) PORT_CHAR(13) // S68 - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Word " UTF8_LEFT"/Volume Up \xf0\x9f\x94\x88\xe2\x96\xb4") PORT_CODE(KEYCODE_PGUP) // unicode U+2190/U+1F508 + U+25B4 // S69 - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME(UTF8_UP"/Brightness Up \xe2\x98\xbc\xe2\x96\xb4") PORT_CODE(KEYCODE_UP) PORT_CHAR(UCHAR_MAMEKEY(UP)) // U+2191/U+263C + U+25B4 // S89 - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME(UTF8_DOWN"/Brightness Down \xe2\x98\xbc\xe2\x96\xbe") PORT_CODE(KEYCODE_DOWN) PORT_CHAR(UCHAR_MAMEKEY(DOWN)) // U+2193/U+263C + U+25BE // S90 - - PORT_START("Y8") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("DEL") PORT_CODE(KEYCODE_DEL) PORT_CHAR(127) // S28 - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad MODE CALC/=") PORT_CODE(KEYCODE_NUMLOCK) // S29 - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("REQ/CAN") PORT_CODE(KEYCODE_BACKSLASH) // is this a good key for this? does sysrq make more sense? // S49 - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad 7") PORT_CODE(KEYCODE_7_PAD) // S50 - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Word " UTF8_RIGHT"/Volume Down \xf0\x9f\x94\x88\xe2\x96\xbe") PORT_CODE(KEYCODE_PGDN) // unicode U+2192/U+1F508 + U+25B4 // S70 - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad 4") PORT_CODE(KEYCODE_4_PAD) // S71 - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad 1") PORT_CODE(KEYCODE_1_PAD) // S91 - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad 2") PORT_CODE(KEYCODE_2_PAD) // S92 - - PORT_START("Y9") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad %") // find a good key for this // S30 - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad " UTF8_DIVIDE) PORT_CODE(KEYCODE_SLASH_PAD) // unicode division sign U+00F7 // S31 - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad 8") PORT_CODE(KEYCODE_8_PAD) // S51 - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad 9") PORT_CODE(KEYCODE_9_PAD) // S52 - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad 5") PORT_CODE(KEYCODE_5_PAD) // S72 - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad 6") PORT_CODE(KEYCODE_6_PAD) // S73 - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad 3") PORT_CODE(KEYCODE_3_PAD) // S93 - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad Enter") PORT_CODE(KEYCODE_ENTER_PAD) // S94 - - PORT_START("Y10") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad " UTF8_MULTIPLY) PORT_CODE(KEYCODE_ASTERISK) // unicode multiply sign U+00D7 // S32 - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("F10 [10]") PORT_CODE(KEYCODE_F10) // S11 - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad -") PORT_CODE(KEYCODE_MINUS_PAD) // S53 - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("F9 [9]") PORT_CODE(KEYCODE_F9) // S10 - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad +") PORT_CODE(KEYCODE_PLUS_PAD) // S74 - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("UNUSED S09") // unused // S09 - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("F7 [7]") PORT_CODE(KEYCODE_F7) // S07 - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("F6 [6]") PORT_CODE(KEYCODE_F6) // S06 - - PORT_START("Y11") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("UNUSED S04") // unused // S104 - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad .") PORT_CODE(KEYCODE_DEL_PAD) // S103 - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad 00") PORT_CODE(KEYCODE_00_PAD) // S102 - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad 0") PORT_CODE(KEYCODE_0_PAD) // S101 - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME(UTF8_RIGHT"/Contrast Down \xe2\x97\x90\xe2\x96\xbe") PORT_CODE(KEYCODE_RIGHT) PORT_CHAR(UCHAR_MAMEKEY(RIGHT)) // U+2190/U+25D0 + U+25BE S100 - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME(UTF8_LEFT"/Contrast Up \xe2\x97\x90\xe2\x96\xb4") PORT_CODE(KEYCODE_LEFT) PORT_CHAR(UCHAR_MAMEKEY(LEFT)) // U+2190/U+25D0 + U+25B4 S99 - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("PAUSE/CONT") PORT_CODE(KEYCODE_PAUSE) // S98 - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Spacebar") PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ') // S97 - - PORT_START("Y12") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("F5 [5]") PORT_CODE(KEYCODE_F5) // S05 - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("F4 [4]") PORT_CODE(KEYCODE_F4) // S04 - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("F3 [3]") PORT_CODE(KEYCODE_F3) // S03 - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("F2 [2]") PORT_CODE(KEYCODE_F2) // S02 - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("F1 [1]") PORT_CODE(KEYCODE_F1) // S01 - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("F8 [8]") PORT_CODE(KEYCODE_F8) // S11 - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("RPT") PORT_CODE(KEYCODE_LCONTROL) // S95 - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("ALT") PORT_CODE(KEYCODE_LALT) PORT_CODE(KEYCODE_RALT) PORT_CHAR(UCHAR_SHIFT_2) // S96 -INPUT_PORTS_END - - -//------------------------------------------------- -// input_ports - device-specific input ports -//------------------------------------------------- - -ioport_constructor victor_9000_keyboard_t::device_input_ports() const -{ - return INPUT_PORTS_NAME( victor9k_keyboard ); -} - - - -//************************************************************************** -// LIVE DEVICE -//************************************************************************** - -//------------------------------------------------- -// victor_9000_keyboard_t - constructor -//------------------------------------------------- - -victor_9000_keyboard_t::victor_9000_keyboard_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, VICTOR9K_KEYBOARD, "Victor 9000 Keyboard", tag, owner, clock, "victor9kb", __FILE__), - m_maincpu(*this, I8021_TAG), - m_y(*this, "Y%u", 0), - m_kbrdy_cb(*this), - m_kbdata_cb(*this), - m_keylatch(0), - m_kbrdy(-1), - m_kbdata(-1), - m_kback(1) -{ -} - - -//------------------------------------------------- -// device_start - device-specific startup -//------------------------------------------------- - -void victor_9000_keyboard_t::device_start() -{ - // resolve callbacks - m_kbrdy_cb.resolve_safe(); - m_kbdata_cb.resolve_safe(); - - // state saving - save_item(NAME(m_p1)); - save_item(NAME(m_keylatch)); - save_item(NAME(m_stb)); - save_item(NAME(m_y12)); - save_item(NAME(m_kbrdy)); - save_item(NAME(m_kbdata)); - save_item(NAME(m_kback)); -} - - -//------------------------------------------------- -// kback_w - -//------------------------------------------------- - -WRITE_LINE_MEMBER( victor_9000_keyboard_t::kback_w ) -{ - if (LOG) logerror("KBACK %u\n", state); - - m_kback = !state; -} - - -//------------------------------------------------- -// kb_p1_r - -//------------------------------------------------- - -READ8_MEMBER( victor_9000_keyboard_t::kb_p1_r ) -{ - uint8_t data = 0xff; - - if (m_keylatch < 12) - { - data &= m_y[m_keylatch]->read(); - } - - if (!m_y12) - { - data &= m_y[12]->read(); - } - - return data; -} - - -//------------------------------------------------- -// kb_p1_w - -//------------------------------------------------- - -WRITE8_MEMBER( victor_9000_keyboard_t::kb_p1_w ) -{ - m_p1 = data; -} - - -//------------------------------------------------- -// kb_p2_w - -//------------------------------------------------- - -WRITE8_MEMBER( victor_9000_keyboard_t::kb_p2_w ) -{ - /* - - bit description - - P20 22-908 CLR, 22-950 STB - P21 KBRDY - P22 Y12 - P23 KBDATA - - */ - - // falling (?edge or level?), latch keyboard rows 0-11 - if (!BIT(data, 0)) - { - m_keylatch = m_p1 & 0x0f; - m_y12 = BIT(data, 2); - } - - // keyboard ready - m_kbrdy_cb(BIT(data, 1)); - - // keyboard data - m_kbdata_cb(BIT(data, 3)); -} - - -//------------------------------------------------- -// kb_t1_r - -//------------------------------------------------- - -READ_LINE_MEMBER( victor_9000_keyboard_t::kb_t1_r ) -{ - return m_kback; -} diff --git a/src/mame/machine/victor9kb.h b/src/mame/machine/victor9kb.h deleted file mode 100644 index 4f235437675..00000000000 --- a/src/mame/machine/victor9kb.h +++ /dev/null @@ -1,84 +0,0 @@ -// license:BSD-3-Clause -// copyright-holders:Curt Coder -/********************************************************************** - - Victor 9000 keyboard emulation - -*********************************************************************/ - -#pragma once - -#ifndef __VICTOR9K_KEYBOARD__ -#define __VICTOR9K_KEYBOARD__ - - -#include "cpu/mcs48/mcs48.h" - - - -//************************************************************************** -// INTERFACE CONFIGURATION MACROS -//************************************************************************** - -#define MCFG_VICTOR9K_KBRDY_HANDLER(_devcb) \ - devcb = &victor_9000_keyboard_t::set_kbrdy_cb(*device, DEVCB_##_devcb); - -#define MCFG_VICTOR9K_KBDATA_HANDLER(_devcb) \ - devcb = &victor_9000_keyboard_t::set_kbdata_cb(*device, DEVCB_##_devcb); - - -//************************************************************************** -// TYPE DEFINITIONS -//************************************************************************** - -// ======================> victor_9000_keyboard_t - -class victor_9000_keyboard_t : public device_t -{ -public: - // construction/destruction - victor_9000_keyboard_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - - template static devcb_base &set_kbrdy_cb(device_t &device, _Object object) { return downcast(device).m_kbrdy_cb.set_callback(object); } - template static devcb_base &set_kbdata_cb(device_t &device, _Object object) { return downcast(device).m_kbdata_cb.set_callback(object); } - - // optional information overrides - virtual const tiny_rom_entry *device_rom_region() const override; - virtual machine_config_constructor device_mconfig_additions() const override; - virtual ioport_constructor device_input_ports() const override; - - DECLARE_WRITE_LINE_MEMBER( kback_w ); - - // not really public - DECLARE_READ8_MEMBER( kb_p1_r ); - DECLARE_WRITE8_MEMBER( kb_p1_w ); - DECLARE_WRITE8_MEMBER( kb_p2_w ); - DECLARE_READ_LINE_MEMBER( kb_t1_r ); - -protected: - // device-level overrides - virtual void device_start() override; - -private: - required_device m_maincpu; - required_ioport_array<13> m_y; - - devcb_write_line m_kbrdy_cb; - devcb_write_line m_kbdata_cb; - - uint8_t m_p1; - uint8_t m_keylatch; - int m_stb; - int m_y12; - int m_kbrdy; - int m_kbdata; - int m_kback; -}; - - -// device type definition -extern const device_type VICTOR9K_KEYBOARD; - - - -#endif diff --git a/src/mame/machine/vs9209.cpp b/src/mame/machine/vs9209.cpp index 02620a286a1..849247a8ac7 100644 --- a/src/mame/machine/vs9209.cpp +++ b/src/mame/machine/vs9209.cpp @@ -30,7 +30,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type VS9209 = device_creator; +DEFINE_DEVICE_TYPE(VS9209, vs9209_device, "vs9209", "VS9209 I/O") //************************************************************************** // DEVICE DEFINITION @@ -41,9 +41,9 @@ const device_type VS9209 = device_creator; //------------------------------------------------- vs9209_device::vs9209_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : device_t(mconfig, VS9209, "VS9209 I/O", tag, owner, clock, "vs9209", __FILE__), - m_input_cb{{*this}, {*this}, {*this}, {*this}, {*this}, {*this}, {*this}, {*this}}, - m_output_cb{{*this}, {*this}, {*this}, {*this}, {*this}, {*this}, {*this}, {*this}} + : device_t(mconfig, VS9209, tag, owner, clock) + , m_input_cb{{*this}, {*this}, {*this}, {*this}, {*this}, {*this}, {*this}, {*this}} + , m_output_cb{{*this}, {*this}, {*this}, {*this}, {*this}, {*this}, {*this}, {*this}} { } diff --git a/src/mame/machine/vs9209.h b/src/mame/machine/vs9209.h index d6e1460e8ab..f4fb1cee393 100644 --- a/src/mame/machine/vs9209.h +++ b/src/mame/machine/vs9209.h @@ -6,11 +6,11 @@ **********************************************************************/ -#pragma once - #ifndef MAME_MACHINE_VS9209_H #define MAME_MACHINE_VS9209_H +#pragma once + //************************************************************************** // CONFIGURATION MACROS //************************************************************************** @@ -97,6 +97,6 @@ private: }; // device type definition -extern const device_type VS9209; +DECLARE_DEVICE_TYPE(VS9209, vs9209_device) -#endif +#endif // MAME_MACHINE_VS9209_H diff --git a/src/mame/machine/vsnes.cpp b/src/mame/machine/vsnes.cpp index 666f5319d2d..2f90695c044 100644 --- a/src/mame/machine/vsnes.cpp +++ b/src/mame/machine/vsnes.cpp @@ -678,12 +678,10 @@ void vsnes_state::mapper4_set_chr( ) v_set_videorom_bank(chr_page ^ 7, 1, m_MMC3_chr_bank[5]); } -#define BOTTOM_VISIBLE_SCANLINE 239 /* The bottommost visible scanline */ -#define NUM_SCANLINE 262 void vsnes_state::mapper4_irq( int scanline, int vblank, int blanked ) { - if (scanline < PPU_BOTTOM_VISIBLE_SCANLINE) + if (scanline < ppu2c0x_device::BOTTOM_VISIBLE_SCANLINE) { int priorCount = m_IRQ_count; if (m_IRQ_count == 0) @@ -763,12 +761,12 @@ WRITE8_MEMBER(vsnes_state::mapper4_w) case 0x6000: /* $e000 - Disable IRQs */ m_IRQ_enable = 0; m_IRQ_count = m_IRQ_count_latch; - m_ppu1->set_scanline_callback(ppu2c0x_scanline_delegate()); + m_ppu1->set_scanline_callback(ppu2c0x_device::scanline_delegate()); break; case 0x6001: /* $e001 - Enable IRQs */ m_IRQ_enable = 1; - m_ppu1->set_scanline_callback(ppu2c0x_scanline_delegate(FUNC(vsnes_state::mapper4_irq), this)); + m_ppu1->set_scanline_callback(ppu2c0x_device::scanline_delegate(FUNC(vsnes_state::mapper4_irq), this)); break; default: diff --git a/src/mame/machine/wangpckb.cpp b/src/mame/machine/wangpckb.cpp index e9332d7dc06..d5567615b7a 100644 --- a/src/mame/machine/wangpckb.cpp +++ b/src/mame/machine/wangpckb.cpp @@ -70,7 +70,7 @@ Notes: // DEVICE DEFINITIONS //************************************************************************** -const device_type WANGPC_KEYBOARD = device_creator; +DEFINE_DEVICE_TYPE(WANGPC_KEYBOARD, wangpc_keyboard_device, "wangpckb", "Wang PC Keyboard") @@ -88,7 +88,7 @@ ROM_END // rom_region - device-specific ROM region //------------------------------------------------- -const tiny_rom_entry *wangpc_keyboard_t::device_rom_region() const +const tiny_rom_entry *wangpc_keyboard_device::device_rom_region() const { return ROM_NAME( wangpc_keyboard ); } @@ -98,7 +98,7 @@ const tiny_rom_entry *wangpc_keyboard_t::device_rom_region() const // ADDRESS_MAP( wangpc_keyboard_io ) //------------------------------------------------- -static ADDRESS_MAP_START( wangpc_keyboard_io, AS_IO, 8, wangpc_keyboard_t ) +static ADDRESS_MAP_START( wangpc_keyboard_io, AS_IO, 8, wangpc_keyboard_device ) //AM_RANGE(0x0000, 0xfeff) AM_READNOP AM_RANGE(0x47, 0x58) AM_MIRROR(0xff00) AM_READNOP AM_RANGE(0x00, 0x00) AM_MIRROR(0xff00) AM_DEVWRITE(SN76496_TAG, sn76496_device, write) @@ -115,8 +115,8 @@ ADDRESS_MAP_END static MACHINE_CONFIG_FRAGMENT( wangpc_keyboard ) MCFG_CPU_ADD(I8051_TAG, I8051, XTAL_4MHz) MCFG_CPU_IO_MAP(wangpc_keyboard_io) - MCFG_MCS51_SERIAL_TX_CB(WRITE8(wangpc_keyboard_t, mcs51_tx_callback)) - MCFG_MCS51_SERIAL_RX_CB(READ8(wangpc_keyboard_t, mcs51_rx_callback)) + MCFG_MCS51_SERIAL_TX_CB(WRITE8(wangpc_keyboard_device, mcs51_tx_callback)) + MCFG_MCS51_SERIAL_RX_CB(READ8(wangpc_keyboard_device, mcs51_rx_callback)) // sound hardware MCFG_SPEAKER_STANDARD_MONO("mono") @@ -130,7 +130,7 @@ MACHINE_CONFIG_END // machine configurations //------------------------------------------------- -machine_config_constructor wangpc_keyboard_t::device_mconfig_additions() const +machine_config_constructor wangpc_keyboard_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( wangpc_keyboard ); } @@ -359,7 +359,7 @@ INPUT_PORTS_END // input_ports - device-specific input ports //------------------------------------------------- -ioport_constructor wangpc_keyboard_t::device_input_ports() const +ioport_constructor wangpc_keyboard_device::device_input_ports() const { return INPUT_PORTS_NAME( wangpc_keyboard ); } @@ -371,11 +371,11 @@ ioport_constructor wangpc_keyboard_t::device_input_ports() const //************************************************************************** //------------------------------------------------- -// wangpc_keyboard_t - constructor +// wangpc_keyboard_device - constructor //------------------------------------------------- -wangpc_keyboard_t::wangpc_keyboard_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, WANGPC_KEYBOARD, "Wang PC Keyboard", tag, owner, clock, "wangpckb", __FILE__), +wangpc_keyboard_device::wangpc_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, WANGPC_KEYBOARD, tag, owner, clock), device_serial_interface(mconfig, *this), m_maincpu(*this, I8051_TAG), m_y(*this, "Y%u", 0), @@ -390,7 +390,7 @@ wangpc_keyboard_t::wangpc_keyboard_t(const machine_config &mconfig, const char * // device_start - device-specific startup //------------------------------------------------- -void wangpc_keyboard_t::device_start() +void wangpc_keyboard_device::device_start() { m_txd_handler.resolve_safe(); @@ -408,7 +408,7 @@ void wangpc_keyboard_t::device_start() // device_reset - device-specific reset //------------------------------------------------- -void wangpc_keyboard_t::device_reset() +void wangpc_keyboard_device::device_reset() { receive_register_reset(); transmit_register_reset(); @@ -421,7 +421,7 @@ void wangpc_keyboard_t::device_reset() // device_timer - handler timer events //------------------------------------------------- -void wangpc_keyboard_t::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) +void wangpc_keyboard_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) { device_serial_interface::device_timer(timer, id, param, ptr); } @@ -431,7 +431,7 @@ void wangpc_keyboard_t::device_timer(emu_timer &timer, device_timer_id id, int p // tra_callback - //------------------------------------------------- -void wangpc_keyboard_t::tra_callback() +void wangpc_keyboard_device::tra_callback() { int bit = transmit_register_get_data_bit(); @@ -445,7 +445,7 @@ void wangpc_keyboard_t::tra_callback() // tra_complete - //------------------------------------------------- -void wangpc_keyboard_t::tra_complete() +void wangpc_keyboard_device::tra_complete() { } @@ -454,7 +454,7 @@ void wangpc_keyboard_t::tra_complete() // rcv_callback - //------------------------------------------------- -void wangpc_keyboard_t::rcv_callback() +void wangpc_keyboard_device::rcv_callback() { if (LOG) logerror("KB '%s' Receive Bit %u\n", tag(), m_rxd); @@ -466,7 +466,7 @@ void wangpc_keyboard_t::rcv_callback() // rcv_complete - //------------------------------------------------- -void wangpc_keyboard_t::rcv_complete() +void wangpc_keyboard_device::rcv_complete() { receive_register_extract(); @@ -481,7 +481,7 @@ void wangpc_keyboard_t::rcv_complete() // write_rxd - //------------------------------------------------- -WRITE_LINE_MEMBER(wangpc_keyboard_t::write_rxd) +WRITE_LINE_MEMBER(wangpc_keyboard_device::write_rxd) { m_rxd = state; @@ -493,7 +493,7 @@ WRITE_LINE_MEMBER(wangpc_keyboard_t::write_rxd) // mcs51_rx_callback - //------------------------------------------------- -READ8_MEMBER(wangpc_keyboard_t::mcs51_rx_callback) +READ8_MEMBER(wangpc_keyboard_device::mcs51_rx_callback) { if (LOG) logerror("KB '%s' CPU Receive Data %02x\n", tag(), get_received_char()); @@ -505,7 +505,7 @@ READ8_MEMBER(wangpc_keyboard_t::mcs51_rx_callback) // mcs51_tx_callback - //------------------------------------------------- -WRITE8_MEMBER(wangpc_keyboard_t::mcs51_tx_callback) +WRITE8_MEMBER(wangpc_keyboard_device::mcs51_tx_callback) { if (LOG) logerror("KB '%s' CPU Transmit Data %02x\n", tag(), data); @@ -523,7 +523,7 @@ WRITE8_MEMBER(wangpc_keyboard_t::mcs51_tx_callback) // kb_p1_r - //------------------------------------------------- -READ8_MEMBER( wangpc_keyboard_t::kb_p1_r ) +READ8_MEMBER( wangpc_keyboard_device::kb_p1_r ) { return m_y[m_keylatch]->read(); } @@ -533,7 +533,7 @@ READ8_MEMBER( wangpc_keyboard_t::kb_p1_r ) // kb_p1_w - //------------------------------------------------- -WRITE8_MEMBER( wangpc_keyboard_t::kb_p1_w ) +WRITE8_MEMBER( wangpc_keyboard_device::kb_p1_w ) { /* @@ -563,7 +563,7 @@ WRITE8_MEMBER( wangpc_keyboard_t::kb_p1_w ) // kb_p2_w - //------------------------------------------------- -WRITE8_MEMBER( wangpc_keyboard_t::kb_p2_w ) +WRITE8_MEMBER( wangpc_keyboard_device::kb_p2_w ) { /* @@ -590,7 +590,7 @@ WRITE8_MEMBER( wangpc_keyboard_t::kb_p2_w ) // kb_p3_w - //------------------------------------------------- -WRITE8_MEMBER( wangpc_keyboard_t::kb_p3_w ) +WRITE8_MEMBER( wangpc_keyboard_device::kb_p3_w ) { /* diff --git a/src/mame/machine/wangpckb.h b/src/mame/machine/wangpckb.h index a621d9e8f88..938be9bde46 100644 --- a/src/mame/machine/wangpckb.h +++ b/src/mame/machine/wangpckb.h @@ -6,10 +6,10 @@ *********************************************************************/ -#pragma once +#ifndef MAME_MACHINE_WANGPCKB_H +#define MAME_MACHINE_WANGPCKB_H -#ifndef __WANGPC_KEYBOARD__ -#define __WANGPC_KEYBOARD__ +#pragma once #include "cpu/mcs51/mcs51.h" @@ -33,23 +33,23 @@ MCFG_DEVICE_ADD(WANGPC_KEYBOARD_TAG, WANGPC_KEYBOARD, 0) #define MCFG_WANGPCKB_TXD_HANDLER(_devcb) \ - devcb = &wangpc_keyboard_t::set_txd_handler(*device, DEVCB_##_devcb); + devcb = &wangpc_keyboard_device::set_txd_handler(*device, DEVCB_##_devcb); //************************************************************************** // TYPE DEFINITIONS //************************************************************************** -// ======================> wangpc_keyboard_t +// ======================> wangpc_keyboard_device -class wangpc_keyboard_t : public device_t, +class wangpc_keyboard_device : public device_t, public device_serial_interface { public: // construction/destruction - wangpc_keyboard_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + wangpc_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_txd_handler(device_t &device, _Object object) { return downcast(device).m_txd_handler.set_callback(object); } + template static devcb_base &set_txd_handler(device_t &device, Object &&cb) { return downcast(device).m_txd_handler.set_callback(std::forward(cb)); } // optional information overrides virtual const tiny_rom_entry *device_rom_region() const override; @@ -90,8 +90,6 @@ private: // device type definition -extern const device_type WANGPC_KEYBOARD; - - +DECLARE_DEVICE_TYPE(WANGPC_KEYBOARD, wangpc_keyboard_device) -#endif +#endif // MAME_MACHINE_WANGPCKB_H diff --git a/src/mame/machine/wpc.cpp b/src/mame/machine/wpc.cpp index b959966164e..4a4dbea06a0 100644 --- a/src/mame/machine/wpc.cpp +++ b/src/mame/machine/wpc.cpp @@ -11,10 +11,10 @@ #define LOG_WPC (0) -const device_type WPCASIC = device_creator; +DEFINE_DEVICE_TYPE(WPCASIC, wpc_device, "wpc", "Williams WPC ASIC") wpc_device::wpc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig,WPCASIC,"Williams WPC ASIC",tag,owner,clock, "wpc", __FILE__), + : device_t(mconfig, WPCASIC, tag, owner, clock), m_dmd_visiblepage(0), m_irq_cb(*this), m_firq_cb(*this), diff --git a/src/mame/machine/wpc.h b/src/mame/machine/wpc.h index 146c0f74754..326e0037c75 100644 --- a/src/mame/machine/wpc.h +++ b/src/mame/machine/wpc.h @@ -6,8 +6,10 @@ * Created on: 7/10/2013 */ -#ifndef WPC_H_ -#define WPC_H_ +#ifndef MAME_MACHINE_WPC_H +#define MAME_MACHINE_WPC_H + +#pragma once /* A = Alpha-numeric @@ -101,39 +103,41 @@ class wpc_device : public device_t { public: + static constexpr device_timer_id TIMER_IRQ = 1; + static constexpr device_timer_id TIMER_ZEROCROSS = 2; + wpc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); DECLARE_READ8_MEMBER(read); DECLARE_WRITE8_MEMBER(write); uint16_t get_memprotect_mask() { return m_memprotect_mask; } - bool memprotect_active() { if(m_memprotect == 0xb4) return false; else return true; } - uint16_t get_alphanumeric(uint8_t offset) { if(offset < 40) return m_alpha_data[offset]; else return 0; } - void reset_alphanumeric() { memset(m_alpha_data,0,40*2); } + bool memprotect_active() { return m_memprotect != 0xb4; } + uint16_t get_alphanumeric(uint8_t offset) { return (offset < 40) ? m_alpha_data[offset] : 0; } + void reset_alphanumeric() { std::fill(std::begin(m_alpha_data), std::end(m_alpha_data), 0); } uint8_t get_visible_page() { return m_dmd_visiblepage; } uint8_t get_dmd_firq_line() { return m_dmd_irqline; } void set_dmd_firq() { m_dmd_irqsrc = true; } void set_snd_firq() { m_snd_irqsrc = true; } // callbacks - template void set_irq_callback(_irq irq) { m_irq_cb.set_callback(irq); } - template void set_firq_callback(_firq firq) { m_firq_cb.set_callback(firq); } - template void set_sound_data_read(_sounddata_r sounddata_r) { m_sounddata_r.set_callback(sounddata_r); } - template void set_sound_data_write(_sounddata_w sounddata_w) { m_sounddata_w.set_callback(sounddata_w); } - template void set_sound_ctrl_read(_soundctrl_r soundctrl_r) { m_soundctrl_r.set_callback(soundctrl_r); } - template void set_sound_ctrl_write(_soundctrl_w soundctrl_w) { m_soundctrl_w.set_callback(soundctrl_w); } - template void set_sound_s11_write(_sounds11 sounds11) { m_sounds11_w.set_callback(sounds11); } - template void set_bank_write(_bank_w bank_w) { m_bank_w.set_callback(bank_w); } - template void set_dmdbank_write(_dmdbank_w dmdbank_w) { m_dmdbank_w.set_callback(dmdbank_w); } + template void set_irq_callback(Object &&cb) { m_irq_cb.set_callback(std::forward(cb)); } + template void set_firq_callback(Object &&cb) { m_firq_cb.set_callback(std::forward(cb)); } + template void set_sound_data_read(Object &&cb) { m_sounddata_r.set_callback(std::forward(cb)); } + template void set_sound_data_write(Object &&cb) { m_sounddata_w.set_callback(std::forward(cb)); } + template void set_sound_ctrl_read(Object &&cb) { m_soundctrl_r.set_callback(std::forward(cb)); } + template void set_sound_ctrl_write(Object &&cb) { m_soundctrl_w.set_callback(std::forward(cb)); } + template void set_sound_s11_write(Object &&cb) { m_sounds11_w.set_callback(std::forward(cb)); } + template void set_bank_write(Object &&cb) { m_bank_w.set_callback(std::forward(cb)); } + template void set_dmdbank_write(Object &&cb) { m_dmdbank_w.set_callback(std::forward(cb)); } - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; - static const device_timer_id TIMER_IRQ = 1; - static const device_timer_id TIMER_ZEROCROSS = 2; protected: // overrides virtual void device_start() override; virtual void device_reset() override; + virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + private: uint8_t m_shift_addr_high; uint8_t m_shift_addr_low; @@ -163,6 +167,6 @@ private: devcb_write8 m_dmdbank_w; }; -extern const device_type WPCASIC; +DECLARE_DEVICE_TYPE(WPCASIC, wpc_device) -#endif /* WPC_H_ */ +#endif // MAME_MACHINE_WPC_H diff --git a/src/mame/machine/wpc_lamp.cpp b/src/mame/machine/wpc_lamp.cpp index d40bc033b03..bab67eb0299 100644 --- a/src/mame/machine/wpc_lamp.cpp +++ b/src/mame/machine/wpc_lamp.cpp @@ -4,10 +4,10 @@ #include "emu.h" #include "wpc_lamp.h" -const device_type WPC_LAMP = device_creator; +DEFINE_DEVICE_TYPE(WPC_LAMP, wpc_lamp_device, "wpc_lamp", "Williams Pinball Controller Lamp Control") wpc_lamp_device::wpc_lamp_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, WPC_LAMP, "Williams Pinball Controller Lamp Control", tag, owner, clock, "wpc_lamp", __FILE__) + device_t(mconfig, WPC_LAMP, tag, owner, clock) { names = nullptr; } diff --git a/src/mame/machine/wpc_lamp.h b/src/mame/machine/wpc_lamp.h index c1e7de09620..b4fb87ab074 100644 --- a/src/mame/machine/wpc_lamp.h +++ b/src/mame/machine/wpc_lamp.h @@ -3,8 +3,10 @@ // Williams Pinball Controller lamp control -#ifndef WPC_LAMP_H -#define WPC_LAMP_H +#ifndef MAME_MACHINE_WPC_LAMP_H +#define MAME_MACHINE_WPC_LAMP_H + +#pragma once #define MCFG_WPC_LAMP_ADD( _tag ) \ MCFG_DEVICE_ADD( _tag, WPC_LAMP, 0 ) @@ -33,6 +35,6 @@ protected: void update(); }; -extern const device_type WPC_LAMP; +DECLARE_DEVICE_TYPE(WPC_LAMP, wpc_lamp_device) -#endif +#endif // MAME_MACHINE_WPC_LAMP_H diff --git a/src/mame/machine/wpc_out.cpp b/src/mame/machine/wpc_out.cpp index 1e5cb36f084..5a8941efab9 100644 --- a/src/mame/machine/wpc_out.cpp +++ b/src/mame/machine/wpc_out.cpp @@ -4,10 +4,10 @@ #include "emu.h" #include "wpc_out.h" -const device_type WPC_OUT = device_creator; +DEFINE_DEVICE_TYPE(WPC_OUT, wpc_out_device, "wpc_out", "Williams Pinball Controller Output Control") wpc_out_device::wpc_out_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, WPC_OUT, "Williams Pinball Controller Output Control", tag, owner, clock, "wpc_out", __FILE__) + device_t(mconfig, WPC_OUT, tag, owner, clock) { names = nullptr; } diff --git a/src/mame/machine/wpc_out.h b/src/mame/machine/wpc_out.h index 5755ed90d87..eaa08c7f8db 100644 --- a/src/mame/machine/wpc_out.h +++ b/src/mame/machine/wpc_out.h @@ -3,8 +3,10 @@ // Williams Pinball Controller outputs control (solenoids, flashers, generic logic, global illumination, coin counter, cpu led) -#ifndef WPC_OUT_H -#define WPC_OUT_H +#ifndef MAME_MACHINE_WPC_OUT_H +#define MAME_MACHINE_WPC_OUT_H + +#pragma once #define MCFG_WPC_OUT_ADD( _tag, _count ) \ MCFG_DEVICE_ADD( _tag, WPC_OUT, 0 ) \ @@ -46,6 +48,6 @@ protected: void gi_update(); }; -extern const device_type WPC_OUT; +DECLARE_DEVICE_TYPE(WPC_OUT, wpc_out_device) -#endif +#endif // MAME_MACHINE_WPC_OUT_H diff --git a/src/mame/machine/wpc_pic.cpp b/src/mame/machine/wpc_pic.cpp index 64ec9fbafb5..a5a25b70bb9 100644 --- a/src/mame/machine/wpc_pic.cpp +++ b/src/mame/machine/wpc_pic.cpp @@ -4,10 +4,10 @@ #include "emu.h" #include "wpc_pic.h" -const device_type WPC_PIC = device_creator; +DEFINE_DEVICE_TYPE(WPC_PIC, wpc_pic_device, "wpc_pic", "Williams Pinball Controller PIC Security") wpc_pic_device::wpc_pic_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, WPC_PIC, "Williams Pinball Controller PIC Security", tag, owner, clock, "wpc_pic", __FILE__), + device_t(mconfig, WPC_PIC, tag, owner, clock), swarray(*this, ":SW.%u", 0) { serial = "000 000000 00000 000"; diff --git a/src/mame/machine/wpc_pic.h b/src/mame/machine/wpc_pic.h index c1f7690f039..4b1fcda7baf 100644 --- a/src/mame/machine/wpc_pic.h +++ b/src/mame/machine/wpc_pic.h @@ -3,8 +3,10 @@ // Williams Pinball Controller Pic-based protection simulation -#ifndef WPC_PIC_H -#define WPC_PIC_H +#ifndef MAME_MACHINE_WPC_PIC_H +#define MAME_MACHINE_WPC_PIC_H + +#pragma once #define MCFG_WPC_PIC_ADD( _tag ) \ MCFG_DEVICE_ADD( _tag, WPC_PIC, 0 ) @@ -33,6 +35,6 @@ protected: void check_game_id(); }; -extern const device_type WPC_PIC; +DECLARE_DEVICE_TYPE(WPC_PIC, wpc_pic_device) -#endif +#endif // MAME_MACHINE_WPC_PIC_H diff --git a/src/mame/machine/wpc_shift.cpp b/src/mame/machine/wpc_shift.cpp index a8cfa7c853c..1a51477694a 100644 --- a/src/mame/machine/wpc_shift.cpp +++ b/src/mame/machine/wpc_shift.cpp @@ -4,10 +4,10 @@ #include "emu.h" #include "wpc_shift.h" -const device_type WPC_SHIFT = device_creator; +DEFINE_DEVICE_TYPE(WPC_SHIFT, wpc_shift_device, "wpc_shift", "Windows Pinball Controller Shifter") wpc_shift_device::wpc_shift_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, WPC_SHIFT, "Williams Pinball Controller Shifter", tag, owner, clock, "wpc_shift", __FILE__) + device_t(mconfig, WPC_SHIFT, tag, owner, clock) { } diff --git a/src/mame/machine/wpc_shift.h b/src/mame/machine/wpc_shift.h index 0870588c530..661bbb4fb83 100644 --- a/src/mame/machine/wpc_shift.h +++ b/src/mame/machine/wpc_shift.h @@ -3,8 +3,8 @@ // Williams Pinball Controller Shift-based protection simulation -#ifndef WPC_SHIFT_H -#define WPC_SHIFT_H +#ifndef MAME_MACHINE_WPC_SHIFT_H +#define MAME_MACHINE_WPC_SHIFT_H #define MCFG_WPC_SHIFT_ADD( _tag ) \ MCFG_DEVICE_ADD( _tag, WPC_SHIFT, 0 ) @@ -34,6 +34,6 @@ protected: virtual void device_reset() override; }; -extern const device_type WPC_SHIFT; +DECLARE_DEVICE_TYPE(WPC_SHIFT, wpc_shift_device) -#endif +#endif // MAME_MACHINE_WPC_SHIFT_H diff --git a/src/mame/machine/x1.cpp b/src/mame/machine/x1.cpp index 71cdb6ff643..6a2ddc2f771 100644 --- a/src/mame/machine/x1.cpp +++ b/src/mame/machine/x1.cpp @@ -9,15 +9,15 @@ // LIVE DEVICE //************************************************************************** -const device_type X1_KEYBOARD = device_creator; +DEFINE_DEVICE_TYPE(X1_KEYBOARD, x1_keyboard_device, "x1_keyboard", "Sharp X1 Keyboard") //------------------------------------------------- // z80ctc_device - constructor //------------------------------------------------- x1_keyboard_device::x1_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, X1_KEYBOARD, "X1 Keyboard", tag, owner, clock, "x1_keyboard", __FILE__), - device_z80daisy_interface(mconfig, *this) + : device_t(mconfig, X1_KEYBOARD, tag, owner, clock) + , device_z80daisy_interface(mconfig, *this) { } diff --git a/src/mame/machine/x68k_hdc.cpp b/src/mame/machine/x68k_hdc.cpp index da4cebfd53d..de909abad0a 100644 --- a/src/mame/machine/x68k_hdc.cpp +++ b/src/mame/machine/x68k_hdc.cpp @@ -22,11 +22,80 @@ #include "imagedev/harddriv.h" #include "image.h" -const device_type X68KHDC = device_creator; +enum +{ + SASI_PHASE_BUSFREE = 0, + SASI_PHASE_ARBITRATION, + SASI_PHASE_SELECTION, + SASI_PHASE_RESELECTION, + SASI_PHASE_COMMAND, + SASI_PHASE_DATA, + SASI_PHASE_STATUS, + SASI_PHASE_MESSAGE, + SASI_PHASE_READ, + SASI_PHASE_WRITE +}; + +// SASI commands, based on the SASI standard +enum +{ + // Class 0 (6-byte) commands + SASI_CMD_TEST_UNIT_READY = 0, + SASI_CMD_REZERO_UNIT, + SASI_CMD_RESERVED_02, + SASI_CMD_REQUEST_SENSE, + SASI_CMD_FORMAT_UNIT, + SASI_CMD_RESERVED_05, + SASI_CMD_FORMAT_UNIT_06, // the X68000 uses command 0x06 for Format Unit, despite the SASI specs saying 0x04 + SASI_CMD_RESERVED_07, + SASI_CMD_READ, + SASI_CMD_RESERVED_09, + SASI_CMD_WRITE, + SASI_CMD_SEEK, + SASI_CMD_RESERVED_0C, + SASI_CMD_RESERVED_0D, + SASI_CMD_RESERVED_0E, + SASI_CMD_WRITE_FILE_MARK, + SASI_CMD_INVALID_10, + SASI_CMD_INVALID_11, + SASI_CMD_RESERVE_UNIT, + SASI_CMD_RELEASE_UNIT, + SASI_CMD_INVALID_14, + SASI_CMD_INVALID_15, + SASI_CMD_READ_CAPACITY, + SASI_CMD_INVALID_17, + SASI_CMD_INVALID_18, + SASI_CMD_INVALID_19, + SASI_CMD_READ_DIAGNOSTIC, + SASI_CMD_WRITE_DIAGNOSTIC, + SASI_CMD_INVALID_1C, + SASI_CMD_INVALID_1D, + SASI_CMD_INVALID_1E, + SASI_CMD_INQUIRY, + // Class 1 commands (yes, just the one) + SASI_CMD_RESERVED_20, + SASI_CMD_RESERVED_21, + SASI_CMD_RESERVED_22, + SASI_CMD_SET_BLOCK_LIMITS = 0x28, + // Class 2 commands + SASI_CMD_EXTENDED_ADDRESS_READ = 0x48, + SASI_CMD_INVALID_49, + SASI_CMD_EXTENDED_ADDRESS_WRITE, + SASI_CMD_WRITE_AND_VERIFY = 0x54, + SASI_CMD_VERIFY, + SASI_CMD_INVALID_56, + SASI_CMD_SEARCH_DATA_HIGH, + SASI_CMD_SEARCH_DATA_EQUAL, + SASI_CMD_SEARCH_DATA_LOW, + // controller-specific commands + SASI_CMD_SPECIFY = 0xc2 +}; + +DEFINE_DEVICE_TYPE(X68KHDC, x68k_hdc_image_device, "x68k_hdc_image", "SASI Hard Disk") x68k_hdc_image_device::x68k_hdc_image_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, X68KHDC, "SASI Hard Disk", tag, owner, clock, "x68k_hdc_image", __FILE__), - device_image_interface(mconfig, *this) + : device_t(mconfig, X68KHDC, tag, owner, clock) + , device_image_interface(mconfig, *this) { } diff --git a/src/mame/machine/x68k_hdc.h b/src/mame/machine/x68k_hdc.h index decc9a6ef82..20f943d46b6 100644 --- a/src/mame/machine/x68k_hdc.h +++ b/src/mame/machine/x68k_hdc.h @@ -5,76 +5,11 @@ X68000 Custom SASI HD controller */ +#ifndef MAME_MACHINE_X68K_HDC_H +#define MAME_MACHINE_X68K_HDC_H +#pragma once -enum -{ - SASI_PHASE_BUSFREE = 0, - SASI_PHASE_ARBITRATION, - SASI_PHASE_SELECTION, - SASI_PHASE_RESELECTION, - SASI_PHASE_COMMAND, - SASI_PHASE_DATA, - SASI_PHASE_STATUS, - SASI_PHASE_MESSAGE, - SASI_PHASE_READ, - SASI_PHASE_WRITE -}; - -// SASI commands, based on the SASI standard -enum -{ - // Class 0 (6-byte) commands - SASI_CMD_TEST_UNIT_READY = 0, - SASI_CMD_REZERO_UNIT, - SASI_CMD_RESERVED_02, - SASI_CMD_REQUEST_SENSE, - SASI_CMD_FORMAT_UNIT, - SASI_CMD_RESERVED_05, - SASI_CMD_FORMAT_UNIT_06, // the X68000 uses command 0x06 for Format Unit, despite the SASI specs saying 0x04 - SASI_CMD_RESERVED_07, - SASI_CMD_READ, - SASI_CMD_RESERVED_09, - SASI_CMD_WRITE, - SASI_CMD_SEEK, - SASI_CMD_RESERVED_0C, - SASI_CMD_RESERVED_0D, - SASI_CMD_RESERVED_0E, - SASI_CMD_WRITE_FILE_MARK, - SASI_CMD_INVALID_10, - SASI_CMD_INVALID_11, - SASI_CMD_RESERVE_UNIT, - SASI_CMD_RELEASE_UNIT, - SASI_CMD_INVALID_14, - SASI_CMD_INVALID_15, - SASI_CMD_READ_CAPACITY, - SASI_CMD_INVALID_17, - SASI_CMD_INVALID_18, - SASI_CMD_INVALID_19, - SASI_CMD_READ_DIAGNOSTIC, - SASI_CMD_WRITE_DIAGNOSTIC, - SASI_CMD_INVALID_1C, - SASI_CMD_INVALID_1D, - SASI_CMD_INVALID_1E, - SASI_CMD_INQUIRY, - // Class 1 commands (yes, just the one) - SASI_CMD_RESERVED_20, - SASI_CMD_RESERVED_21, - SASI_CMD_RESERVED_22, - SASI_CMD_SET_BLOCK_LIMITS = 0x28, - // Class 2 commands - SASI_CMD_EXTENDED_ADDRESS_READ = 0x48, - SASI_CMD_INVALID_49, - SASI_CMD_EXTENDED_ADDRESS_WRITE, - SASI_CMD_WRITE_AND_VERIFY = 0x54, - SASI_CMD_VERIFY, - SASI_CMD_INVALID_56, - SASI_CMD_SEARCH_DATA_HIGH, - SASI_CMD_SEARCH_DATA_EQUAL, - SASI_CMD_SEARCH_DATA_LOW, - // controller-specific commands - SASI_CMD_SPECIFY = 0xc2 -}; class x68k_hdc_image_device : public device_t, public device_image_interface @@ -86,11 +21,11 @@ public: // image-level overrides virtual iodevice_t image_type() const override { return IO_HARDDISK; } - virtual bool is_readable() const override { return 1; } - virtual bool is_writeable() const override { return 1; } - virtual bool is_creatable() const override { return 1; } - virtual bool must_be_loaded() const override { return 0; } - virtual bool is_reset_on_load() const override { return 0; } + virtual bool is_readable() const override { return true; } + virtual bool is_writeable() const override { return true; } + virtual bool is_creatable() const override { return true; } + virtual bool must_be_loaded() const override { return false; } + virtual bool is_reset_on_load() const override { return false; } virtual const char *file_extensions() const override { return "hdf"; } virtual const char *custom_instance_name() const override { return "sasihd"; } virtual const char *custom_brief_instance_name() const override { return "sasi"; } @@ -122,7 +57,9 @@ private: }; // device type definition -extern const device_type X68KHDC; +DECLARE_DEVICE_TYPE(X68KHDC, x68k_hdc_image_device) #define MCFG_X68KHDC_ADD(_tag) \ MCFG_DEVICE_ADD(_tag, X68KHDC, 0) + +#endif // MAME_MACHINE_X68K_HDC_H diff --git a/src/mame/machine/x68k_kbd.cpp b/src/mame/machine/x68k_kbd.cpp index 7aa06e76a31..ec3ed0cbe03 100644 --- a/src/mame/machine/x68k_kbd.cpp +++ b/src/mame/machine/x68k_kbd.cpp @@ -7,7 +7,7 @@ x68k_keyboard_device::x68k_keyboard_device(const machine_config& mconfig, const char* tag, device_t* owner, uint32_t clock) - : buffered_rs232_device(mconfig, X68K_KEYBOARD, "X68k Keyboard", tag, owner, 0, "x68k_keyboard", __FILE__) + : buffered_rs232_device(mconfig, X68K_KEYBOARD, tag, owner, 0) , device_matrix_keyboard_interface(mconfig, *this, "LINE0", "LINE1", "LINE2", "LINE3", "LINE4", "LINE5", "LINE6", "LINE7", "LINE8", "LINE9", "LINEA", "LINEB", "LINEC", "LINED", "LINEE") { } @@ -302,7 +302,7 @@ void x68k_keyboard_device::device_timer(emu_timer &timer, device_timer_id id, in } -const device_type X68K_KEYBOARD = device_creator; +DEFINE_DEVICE_TYPE(X68K_KEYBOARD, x68k_keyboard_device, "x68k_keyboard", "Sharp X68000 Keyboard") #if 0 diff --git a/src/mame/machine/x68k_kbd.h b/src/mame/machine/x68k_kbd.h index f856a68efb2..13fff783557 100644 --- a/src/mame/machine/x68k_kbd.h +++ b/src/mame/machine/x68k_kbd.h @@ -27,6 +27,6 @@ private: uint8_t m_enabled; // keyboard enabled? }; -extern const device_type X68K_KEYBOARD; +DECLARE_DEVICE_TYPE(X68K_KEYBOARD, x68k_keyboard_device) #endif // MAME_MACHINE_X68K_KBD_H diff --git a/src/mame/machine/x820kb.cpp b/src/mame/machine/x820kb.cpp index 6ff49b781e3..22f9f9d6823 100644 --- a/src/mame/machine/x820kb.cpp +++ b/src/mame/machine/x820kb.cpp @@ -57,7 +57,7 @@ Notes: // DEVICE DEFINITIONS //************************************************************************** -const device_type XEROX_820_KEYBOARD = device_creator; +DEFINE_DEVICE_TYPE(XEROX_820_KEYBOARD, xerox_820_keyboard_device, "x820kb", "Xerox 820 Keyboard") //------------------------------------------------- @@ -74,7 +74,7 @@ ROM_END // rom_region - device-specific ROM region //------------------------------------------------- -const tiny_rom_entry *xerox_820_keyboard_t::device_rom_region() const +const tiny_rom_entry *xerox_820_keyboard_device::device_rom_region() const { return ROM_NAME( xerox_820_keyboard ); } @@ -86,12 +86,12 @@ const tiny_rom_entry *xerox_820_keyboard_t::device_rom_region() const static MACHINE_CONFIG_FRAGMENT( xerox_820_keyboard ) MCFG_CPU_ADD(I8748_TAG, I8048, XTAL_6MHz) - MCFG_MCS48_PORT_P1_IN_CB(READ8(xerox_820_keyboard_t, kb_p1_r)) - MCFG_MCS48_PORT_P1_OUT_CB(WRITE8(xerox_820_keyboard_t, kb_p1_w)) - MCFG_MCS48_PORT_P2_IN_CB(READ8(xerox_820_keyboard_t, kb_p2_r)) - MCFG_MCS48_PORT_T0_IN_CB(READLINE(xerox_820_keyboard_t, kb_t0_r)) - MCFG_MCS48_PORT_T1_IN_CB(READLINE(xerox_820_keyboard_t, kb_t1_r)) - MCFG_MCS48_PORT_BUS_OUT_CB(WRITE8(xerox_820_keyboard_t, kb_bus_w)) + MCFG_MCS48_PORT_P1_IN_CB(READ8(xerox_820_keyboard_device, kb_p1_r)) + MCFG_MCS48_PORT_P1_OUT_CB(WRITE8(xerox_820_keyboard_device, kb_p1_w)) + MCFG_MCS48_PORT_P2_IN_CB(READ8(xerox_820_keyboard_device, kb_p2_r)) + MCFG_MCS48_PORT_T0_IN_CB(READLINE(xerox_820_keyboard_device, kb_t0_r)) + MCFG_MCS48_PORT_T1_IN_CB(READLINE(xerox_820_keyboard_device, kb_t1_r)) + MCFG_MCS48_PORT_BUS_OUT_CB(WRITE8(xerox_820_keyboard_device, kb_bus_w)) MACHINE_CONFIG_END @@ -100,7 +100,7 @@ MACHINE_CONFIG_END // machine configurations //------------------------------------------------- -machine_config_constructor xerox_820_keyboard_t::device_mconfig_additions() const +machine_config_constructor xerox_820_keyboard_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( xerox_820_keyboard ); } @@ -235,7 +235,7 @@ INPUT_PORTS_END // input_ports - device-specific input ports //------------------------------------------------- -ioport_constructor xerox_820_keyboard_t::device_input_ports() const +ioport_constructor xerox_820_keyboard_device::device_input_ports() const { return INPUT_PORTS_NAME( xerox_820_keyboard ); } @@ -247,11 +247,11 @@ ioport_constructor xerox_820_keyboard_t::device_input_ports() const //************************************************************************** //------------------------------------------------- -// xerox_820_keyboard_t - constructor +// xerox_820_keyboard_device - constructor //------------------------------------------------- -xerox_820_keyboard_t::xerox_820_keyboard_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, XEROX_820_KEYBOARD, "Xerox 820 Keyboard", tag, owner, clock, "x820kb", __FILE__), +xerox_820_keyboard_device::xerox_820_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, XEROX_820_KEYBOARD, tag, owner, clock), m_maincpu(*this, I8748_TAG), m_y(*this, "Y%u", 0), m_kbstb_cb(*this), @@ -265,7 +265,7 @@ xerox_820_keyboard_t::xerox_820_keyboard_t(const machine_config &mconfig, const // device_start - device-specific startup //------------------------------------------------- -void xerox_820_keyboard_t::device_start() +void xerox_820_keyboard_device::device_start() { // state saving save_item(NAME(m_p1)); @@ -277,12 +277,12 @@ void xerox_820_keyboard_t::device_start() // device_reset - device-specific reset //------------------------------------------------- -void xerox_820_keyboard_t::device_reset() +void xerox_820_keyboard_device::device_reset() { m_kbstb_cb.resolve_safe(); } -void xerox_820_keyboard_t::device_reset_after_children() +void xerox_820_keyboard_device::device_reset_after_children() { m_maincpu->set_input_line(MCS48_INPUT_IRQ, ASSERT_LINE); } @@ -292,7 +292,7 @@ void xerox_820_keyboard_t::device_reset_after_children() // kb_p1_r - //------------------------------------------------- -READ8_MEMBER( xerox_820_keyboard_t::kb_p1_r ) +READ8_MEMBER( xerox_820_keyboard_device::kb_p1_r ) { return m_p1; // TODO: move to mcs48.c } @@ -302,7 +302,7 @@ READ8_MEMBER( xerox_820_keyboard_t::kb_p1_r ) // kb_p1_w - //------------------------------------------------- -WRITE8_MEMBER( xerox_820_keyboard_t::kb_p1_w ) +WRITE8_MEMBER( xerox_820_keyboard_device::kb_p1_w ) { /* @@ -329,7 +329,7 @@ WRITE8_MEMBER( xerox_820_keyboard_t::kb_p1_w ) // kb_p2_r - //------------------------------------------------- -READ8_MEMBER( xerox_820_keyboard_t::kb_p2_r ) +READ8_MEMBER( xerox_820_keyboard_device::kb_p2_r ) { return m_y[m_p1 & 0x0f]->read(); } @@ -339,7 +339,7 @@ READ8_MEMBER( xerox_820_keyboard_t::kb_p2_r ) // kb_t0_r - //------------------------------------------------- -READ_LINE_MEMBER( xerox_820_keyboard_t::kb_t0_r ) +READ_LINE_MEMBER( xerox_820_keyboard_device::kb_t0_r ) { uint8_t data = 1; @@ -357,7 +357,7 @@ READ_LINE_MEMBER( xerox_820_keyboard_t::kb_t0_r ) // kb_t1_r - //------------------------------------------------- -READ_LINE_MEMBER( xerox_820_keyboard_t::kb_t1_r ) +READ_LINE_MEMBER( xerox_820_keyboard_device::kb_t1_r ) { return 1; // ??? if 0, toggle P17 } @@ -367,7 +367,7 @@ READ_LINE_MEMBER( xerox_820_keyboard_t::kb_t1_r ) // kb_bus_w - //------------------------------------------------- -WRITE8_MEMBER( xerox_820_keyboard_t::kb_bus_w ) +WRITE8_MEMBER( xerox_820_keyboard_device::kb_bus_w ) { m_bus = data; } diff --git a/src/mame/machine/x820kb.h b/src/mame/machine/x820kb.h index bca655a5faa..f7845b8c7c1 100644 --- a/src/mame/machine/x820kb.h +++ b/src/mame/machine/x820kb.h @@ -6,10 +6,10 @@ *********************************************************************/ -#pragma once +#ifndef MAME_MACHINE_X820KB_H +#define MAME_MACHINE_X820KB_H -#ifndef __XEROX_820_KEYBOARD__ -#define __XEROX_820_KEYBOARD__ +#pragma once #include "cpu/mcs48/mcs48.h" @@ -20,7 +20,7 @@ //************************************************************************** #define MCFG_XEROX_820_KEYBOARD_KBSTB_CALLBACK(_devcb) \ - devcb = &xerox_820_keyboard_t::set_kbstb_wr_callback(*device, DEVCB_##_devcb); + devcb = &xerox_820_keyboard_device::set_kbstb_wr_callback(*device, DEVCB_##_devcb); @@ -28,15 +28,15 @@ // TYPE DEFINITIONS //************************************************************************** -// ======================> xerox_820_keyboard_t +// ======================> xerox_820_keyboard_device -class xerox_820_keyboard_t : public device_t +class xerox_820_keyboard_device : public device_t { public: // construction/destruction - xerox_820_keyboard_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + xerox_820_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_kbstb_wr_callback(device_t &device, _Object object) { return downcast(device).m_kbstb_cb.set_callback(object); } + template static devcb_base &set_kbstb_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_kbstb_cb.set_callback(std::forward(cb)); } // optional information overrides virtual const tiny_rom_entry *device_rom_region() const override; @@ -70,8 +70,7 @@ private: // device type definition -extern const device_type XEROX_820_KEYBOARD; - +DECLARE_DEVICE_TYPE(XEROX_820_KEYBOARD, xerox_820_keyboard_device) -#endif +#endif // MAME_MACHINE_X820KB_H diff --git a/src/mame/machine/xbox.cpp b/src/mame/machine/xbox.cpp index dc4432e5b35..301620b112c 100644 --- a/src/mame/machine/xbox.cpp +++ b/src/mame/machine/xbox.cpp @@ -858,7 +858,7 @@ ADDRESS_MAP_START(xbox_base_map_io, AS_IO, 32, xbox_base_state) #endif ADDRESS_MAP_END -MACHINE_CONFIG_START(xbox_base, xbox_base_state) +MACHINE_CONFIG_START(xbox_base) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", PENTIUM3, 733333333) /* Wrong! family 6 model 8 stepping 10 */ MCFG_CPU_PROGRAM_MAP(xbox_base_map) diff --git a/src/mame/machine/xbox_pci.cpp b/src/mame/machine/xbox_pci.cpp index 46892b4484f..33b86730cfc 100644 --- a/src/mame/machine/xbox_pci.cpp +++ b/src/mame/machine/xbox_pci.cpp @@ -13,10 +13,10 @@ * Host */ -const device_type NV2A_HOST = device_creator; +DEFINE_DEVICE_TYPE(NV2A_HOST, nv2a_host_device, "nv2a_host", "NV2A PCI Bridge Device - Host Bridge") nv2a_host_device::nv2a_host_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : pci_host_device(mconfig, NV2A_HOST, "PCI Bridge Device - Host Bridge", tag, owner, clock, "nv2a_host", __FILE__), + : pci_host_device(mconfig, NV2A_HOST, tag, owner, clock), cpu_tag(nullptr), cpu(nullptr) { @@ -59,7 +59,7 @@ void nv2a_host_device::device_reset() * Ram */ -const device_type NV2A_RAM = device_creator; +DEFINE_DEVICE_TYPE(NV2A_RAM, nv2a_ram_device, "nv2a_ram", "NV2A Memory Controller - SDRAM") DEVICE_ADDRESS_MAP_START(config_map, 32, nv2a_ram_device) AM_RANGE(0x6c, 0x6f) AM_READWRITE(config_register_r, config_register_w) @@ -67,7 +67,7 @@ DEVICE_ADDRESS_MAP_START(config_map, 32, nv2a_ram_device) ADDRESS_MAP_END nv2a_ram_device::nv2a_ram_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : pci_device(mconfig, NV2A_RAM, "Memory Controller - SDRAM", tag, owner, clock, "nv2a_ram", __FILE__) + : pci_device(mconfig, NV2A_RAM, tag, owner, clock) { } @@ -84,14 +84,14 @@ WRITE32_MEMBER(nv2a_ram_device::config_register_w) * LPC Bus */ -const device_type MCPX_LPC = device_creator; +DEFINE_DEVICE_TYPE(MCPX_LPC, mcpx_lpc_device, "mcpx_lpc", "MCPX HUB Interface - ISA Bridge") DEVICE_ADDRESS_MAP_START(lpc_io, 32, mcpx_lpc_device) AM_RANGE(0x00000000, 0x000000ff) AM_READWRITE(lpc_r, lpc_w) ADDRESS_MAP_END mcpx_lpc_device::mcpx_lpc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : pci_device(mconfig, MCPX_LPC, "HUB Interface - ISA Bridge", tag, owner, clock, "mcpx_lpc", __FILE__) + : pci_device(mconfig, MCPX_LPC, tag, owner, clock) { } @@ -120,7 +120,7 @@ WRITE32_MEMBER(mcpx_lpc_device::lpc_w) * SMBus */ -const device_type MCPX_SMBUS = device_creator; +DEFINE_DEVICE_TYPE(MCPX_SMBUS, mcpx_smbus_device, "mcpx_smbus", "MCPX SMBus Controller") DEVICE_ADDRESS_MAP_START(smbus_io0, 32, mcpx_smbus_device) AM_RANGE(0x00000000, 0x0000000f) AM_NOP @@ -135,7 +135,7 @@ DEVICE_ADDRESS_MAP_START(smbus_io2, 32, mcpx_smbus_device) ADDRESS_MAP_END mcpx_smbus_device::mcpx_smbus_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : pci_device(mconfig, MCPX_SMBUS, "SMBus Controller", tag, owner, clock, "mcpx_smbus", __FILE__), + : pci_device(mconfig, MCPX_SMBUS, tag, owner, clock), m_interrupt_handler(*this) { } @@ -219,14 +219,14 @@ WRITE32_MEMBER(mcpx_smbus_device::smbus_w) * OHCI USB Controller */ -const device_type MCPX_OHCI = device_creator; +DEFINE_DEVICE_TYPE(MCPX_OHCI, mcpx_ohci_device, "mcpx_ohci", "MCPX OHCI USB Controller") DEVICE_ADDRESS_MAP_START(ohci_mmio, 32, mcpx_ohci_device) AM_RANGE(0x00000000, 0x00000fff) AM_READWRITE(ohci_r, ohci_w) ADDRESS_MAP_END mcpx_ohci_device::mcpx_ohci_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : pci_device(mconfig, MCPX_OHCI, "MCPX OHCI USB Controller", tag, owner, clock, "mcpx_ohci", __FILE__), + : pci_device(mconfig, MCPX_OHCI, tag, owner, clock), ohci_usb(nullptr), m_interrupt_handler(*this), timer(nullptr) @@ -292,7 +292,7 @@ WRITE32_MEMBER(mcpx_ohci_device::ohci_w) * Ethernet */ -const device_type MCPX_ETH = device_creator; +DEFINE_DEVICE_TYPE(MCPX_ETH, mcpx_eth_device, "mcpx_eth", "MCP Networking Adapter") DEVICE_ADDRESS_MAP_START(eth_mmio, 32, mcpx_eth_device) AM_RANGE(0x00000000, 0x0000003ff) AM_READWRITE(eth_r, eth_w) @@ -303,7 +303,7 @@ DEVICE_ADDRESS_MAP_START(eth_io, 32, mcpx_eth_device) ADDRESS_MAP_END mcpx_eth_device::mcpx_eth_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : pci_device(mconfig, MCPX_ETH, "MCP Networking Adapter", tag, owner, clock, "mcpx_eth", __FILE__) + : pci_device(mconfig, MCPX_ETH, tag, owner, clock) { } @@ -343,14 +343,14 @@ WRITE32_MEMBER(mcpx_eth_device::eth_io_w) * Audio Processing Unit */ -const device_type MCPX_APU = device_creator; +DEFINE_DEVICE_TYPE(MCPX_APU, mcpx_apu_device, "mcpx_apu", "MCP APU") DEVICE_ADDRESS_MAP_START(apu_mmio, 32, mcpx_apu_device) AM_RANGE(0x00000000, 0x00007ffff) AM_READWRITE(apu_r, apu_w) ADDRESS_MAP_END mcpx_apu_device::mcpx_apu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : pci_device(mconfig, MCPX_APU, "MCP APU", tag, owner, clock, "mcpx_apu", __FILE__), + : pci_device(mconfig, MCPX_APU, tag, owner, clock), cpu_tag(nullptr), cpu(nullptr) { @@ -536,7 +536,7 @@ WRITE32_MEMBER(mcpx_apu_device::apu_w) * AC97 Audio Controller */ -const device_type MCPX_AC97_AUDIO = device_creator; +DEFINE_DEVICE_TYPE(MCPX_AC97_AUDIO, mcpx_ac97_audio_device, "mcpx_ac97_audio", "MCPX AC'97 Audio Codec Interface") DEVICE_ADDRESS_MAP_START(ac97_mmio, 32, mcpx_ac97_audio_device) AM_RANGE(0x00000000, 0x000000fff) AM_READWRITE(ac97_audio_r, ac97_audio_w) @@ -551,7 +551,7 @@ DEVICE_ADDRESS_MAP_START(ac97_io1, 32, mcpx_ac97_audio_device) ADDRESS_MAP_END mcpx_ac97_audio_device::mcpx_ac97_audio_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : pci_device(mconfig, MCPX_AC97_AUDIO, "AC`97 Audio Codec Interface", tag, owner, clock, "mcpx_av97_audio", __FILE__) + : pci_device(mconfig, MCPX_AC97_AUDIO, tag, owner, clock) { } @@ -641,10 +641,10 @@ WRITE32_MEMBER(mcpx_ac97_audio_device::ac97_audio_io1_w) * AC97 Modem Controller */ -const device_type MCPX_AC97_MODEM = device_creator; +DEFINE_DEVICE_TYPE(MCPX_AC97_MODEM, mcpx_ac97_modem_device, "mcpx_ac97_modem", "MCPX AC'97 Modem Controller") mcpx_ac97_modem_device::mcpx_ac97_modem_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : pci_device(mconfig, MCPX_AC97_MODEM, "AC`97 Modem Controller", tag, owner, clock, "mcpx_ac97_modem", __FILE__) + : pci_device(mconfig, MCPX_AC97_MODEM, tag, owner, clock) { } @@ -652,7 +652,7 @@ mcpx_ac97_modem_device::mcpx_ac97_modem_device(const machine_config &mconfig, co * IDE Controller */ -const device_type MCPX_IDE = device_creator; +DEFINE_DEVICE_TYPE(MCPX_IDE, mcpx_ide_device, "mcpx_ide", "MCPX IDE Controller") DEVICE_ADDRESS_MAP_START(mcpx_ide_io, 32, mcpx_ide_device) AM_RANGE(0x0000, 0x000f) AM_DEVREADWRITE("ide", bus_master_ide_controller_device, bmdma_r, bmdma_w) @@ -665,7 +665,7 @@ static MACHINE_CONFIG_FRAGMENT(mcpx_ide) MACHINE_CONFIG_END mcpx_ide_device::mcpx_ide_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : pci_device(mconfig, MCPX_IDE, "MCPX IDE Controller", tag, owner, clock, "mcpx_ide", __FILE__), + : pci_device(mconfig, MCPX_IDE, tag, owner, clock), m_interrupt_handler(*this) { } @@ -697,10 +697,10 @@ WRITE_LINE_MEMBER(mcpx_ide_device::ide_interrupt) * AGP Bridge */ -const device_type NV2A_AGP = device_creator; +DEFINE_DEVICE_TYPE(NV2A_AGP, nv2a_agp_device, "nv2a_agp", "NV2A AGP Host to PCI Bridge") nv2a_agp_device::nv2a_agp_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : agp_bridge_device(mconfig, NV2A_AGP, "AGP Host to PCI Bridge", tag, owner, clock, "nv2a_agp", __FILE__) + : agp_bridge_device(mconfig, NV2A_AGP, tag, owner, clock) { } @@ -718,7 +718,7 @@ void nv2a_agp_device::device_reset() * NV2A 3D Accelerator */ -const device_type NV2A_GPU = device_creator; +DEFINE_DEVICE_TYPE(NV2A_GPU, nv2a_gpu_device, "nv2a_gpu", "NVIDIA NV2A GPU") DEVICE_ADDRESS_MAP_START(nv2a_mmio, 32, nv2a_gpu_device) AM_RANGE(0x00000000, 0x00ffffff) AM_RAM AM_READWRITE(geforce_r, geforce_w) @@ -729,7 +729,7 @@ DEVICE_ADDRESS_MAP_START(nv2a_mirror, 32, nv2a_gpu_device) ADDRESS_MAP_END nv2a_gpu_device::nv2a_gpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : pci_device(mconfig, NV2A_GPU, "Nvidia NV2A GPU", tag, owner, clock, "nv2a_gpu", __FILE__), + : pci_device(mconfig, NV2A_GPU, tag, owner, clock), nvidia_nv2a(nullptr), cpu_tag(nullptr), m_interrupt_handler(*this), diff --git a/src/mame/machine/xbox_usb.cpp b/src/mame/machine/xbox_usb.cpp index 54e79008087..e8776dce19b 100644 --- a/src/mame/machine/xbox_usb.cpp +++ b/src/mame/machine/xbox_usb.cpp @@ -1380,16 +1380,16 @@ INPUT_PORTS_START(xbox_controller) PORT_CODE_DEC(KEYCODE_H) PORT_CODE_INC(KEYCODE_Y) INPUT_PORTS_END -const USBStandardDeviceDescriptor ohci_game_controller::devdesc = { 18,1,0x110,0x00,0x00,0x00,64,0x45e,0x202,0x100,0,0,0,1 }; -const USBStandardConfigurationDescriptor ohci_game_controller::condesc = { 9,2,0x20,1,1,0,0x80,50 }; -const USBStandardInterfaceDescriptor ohci_game_controller::intdesc = { 9,4,0,0,2,0x58,0x42,0,0 }; -const USBStandardEndpointDescriptor ohci_game_controller::enddesc82 = { 7,5,0x82,3,0x20,4 }; -const USBStandardEndpointDescriptor ohci_game_controller::enddesc02 = { 7,5,0x02,3,0x20,4 }; +const USBStandardDeviceDescriptor ohci_game_controller_device::devdesc = { 18,1,0x110,0x00,0x00,0x00,64,0x45e,0x202,0x100,0,0,0,1 }; +const USBStandardConfigurationDescriptor ohci_game_controller_device::condesc = { 9,2,0x20,1,1,0,0x80,50 }; +const USBStandardInterfaceDescriptor ohci_game_controller_device::intdesc = { 9,4,0,0,2,0x58,0x42,0,0 }; +const USBStandardEndpointDescriptor ohci_game_controller_device::enddesc82 = { 7,5,0x82,3,0x20,4 }; +const USBStandardEndpointDescriptor ohci_game_controller_device::enddesc02 = { 7,5,0x02,3,0x20,4 }; -const device_type OHCI_GAME_CONTROLLER = device_creator; +DEFINE_DEVICE_TYPE(OHCI_GAME_CONTROLLER, ohci_game_controller_device, "ohci_gc", "OHCI Game Controller") -ohci_game_controller::ohci_game_controller(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, OHCI_GAME_CONTROLLER, "OHCI Game Controller", tag, owner, clock, "ohci_gc", __FILE__), +ohci_game_controller_device::ohci_game_controller_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, OHCI_GAME_CONTROLLER, tag, owner, clock), ohci_function(), m_ThumbstickLh(*this, "ThumbstickLh"), m_ThumbstickLv(*this, "ThumbstickLv"), @@ -1408,7 +1408,7 @@ ohci_game_controller::ohci_game_controller(const machine_config &mconfig, const { } -void ohci_game_controller::initialize(running_machine &machine) +void ohci_game_controller_device::initialize(running_machine &machine) { ohci_function::initialize(machine); add_device_descriptor(devdesc); @@ -1418,7 +1418,7 @@ void ohci_game_controller::initialize(running_machine &machine) add_endpoint_descriptor(enddesc02); } -int ohci_game_controller::handle_nonstandard_request(int endpoint, USBSetupPacket *setup) +int ohci_game_controller_device::handle_nonstandard_request(int endpoint, USBSetupPacket *setup) { // >=8 ==42 !=0 !=0 1,3 2<20 <=20 static const uint8_t reportinfo[16] = { 0x10,0x42 ,0x32,0x43,1 ,0x65,0x14,0x20,0x98,0xa9,0xba,0xcb,0xdc,0xed,0xfe }; @@ -1471,7 +1471,7 @@ int ohci_game_controller::handle_nonstandard_request(int endpoint, USBSetupPacke return -1; } -int ohci_game_controller::handle_interrupt_pid(int endpoint, int pid, uint8_t *buffer, int size) +int ohci_game_controller_device::handle_interrupt_pid(int endpoint, int pid, uint8_t *buffer, int size) { if ((endpoint == 2) && (pid == InPid)) { int v; @@ -1511,11 +1511,11 @@ int ohci_game_controller::handle_interrupt_pid(int endpoint, int pid, uint8_t *b return -1; } -void ohci_game_controller::device_start() +void ohci_game_controller_device::device_start() { } -ioport_constructor ohci_game_controller::device_input_ports() const +ioport_constructor ohci_game_controller_device::device_input_ports() const { return INPUT_PORTS_NAME(xbox_controller); } diff --git a/src/mame/machine/z80bin.cpp b/src/mame/machine/z80bin.cpp index 5a683273881..6fcf9998a36 100644 --- a/src/mame/machine/z80bin.cpp +++ b/src/mame/machine/z80bin.cpp @@ -8,7 +8,7 @@ memory -------------------------------------------------*/ -image_init_result z80bin_load_file(device_image_interface *image, address_space &space, const char *file_type, uint16_t *exec_addr, uint16_t *start_addr, uint16_t *end_addr ) +image_init_result z80bin_load_file(device_image_interface *image, address_space &space, const char *file_type, uint16_t *exec_addr, uint16_t *start_addr, uint16_t *end_addr) { int ch; uint16_t args[3]; diff --git a/src/mame/machine/z80bin.h b/src/mame/machine/z80bin.h index b47aa9fa76c..904b89c9325 100644 --- a/src/mame/machine/z80bin.h +++ b/src/mame/machine/z80bin.h @@ -8,11 +8,11 @@ *********************************************************************/ -#pragma once +#ifndef MAME_MACHINE_Z80BIN_H +#define MAME_MACHINE_Z80BIN_H -#ifndef __Z80_BIN__ -#define __Z80_BIN__ +#pragma once -image_init_result z80bin_load_file(device_image_interface *image, address_space &space, const char *file_type, uint16_t *exec_addr, uint16_t *start_addr, uint16_t *end_addr ); +image_init_result z80bin_load_file(device_image_interface *image, address_space &space, const char *file_type, uint16_t *exec_addr, uint16_t *start_addr, uint16_t *end_addr); -#endif +#endif // MAME_MACHINE_Z80BIN_H diff --git a/src/mame/machine/z80ne.cpp b/src/mame/machine/z80ne.cpp index 5b80e5b1ed4..2f1f2c9bd79 100644 --- a/src/mame/machine/z80ne.cpp +++ b/src/mame/machine/z80ne.cpp @@ -19,8 +19,8 @@ /* Devices */ #include "imagedev/flopdrv.h" -#define VERBOSE 0 -#define LOG(x) do { if (VERBOSE) logerror x; } while (0) +//#define VERBOSE 1 +#include "logmacro.h" @@ -170,8 +170,8 @@ void z80ne_state::device_timer(emu_timer &timer, device_timer_id id, int param, void z80ne_state::reset_lx388() { - m_lx388_kr2376->set_input_pin( KR2376_DSII, 0); - m_lx388_kr2376->set_input_pin( KR2376_PII, 0); + m_lx388_kr2376->set_input_pin( kr2376_device::KR2376_DSII, 0); + m_lx388_kr2376->set_input_pin( kr2376_device::KR2376_PII, 0); } void z80ne_state::reset_lx382_banking() @@ -241,7 +241,7 @@ MACHINE_RESET_MEMBER(z80ne_state,z80ne_base) { int i; - LOG(("In machine_reset z80ne_base\n")); + LOG("In machine_reset z80ne_base\n"); for ( i=0; idata_r(space, 0) & 0x7f; - data |= m_lx388_kr2376->get_output_pin(KR2376_SO) << 7; + data |= m_lx388_kr2376->get_output_pin(kr2376_device::KR2376_SO) << 7; return data; } @@ -651,12 +651,12 @@ READ8_MEMBER(z80ne_state::lx390_reset_bank) pc = m_maincpu->pc(); if((pc >= 0xf000) && (pc <=0xffff)) { - LOG(("lx390_reset_bank, reset memory bank 1\n")); + LOG("lx390_reset_bank, reset memory bank 1\n"); m_bank1->set_entry(0); /* RAM at 0x0000 (bank 1) */ } else { - LOG(("lx390_reset_bank, bypass because in debugger\n")); + LOG("lx390_reset_bank, bypass because in debugger\n"); } return 0xff; } @@ -669,19 +669,19 @@ READ8_MEMBER(z80ne_state::lx390_fdc_r) { case 0: d = m_wd1771->status_r(space, 0) ^ 0xff; - LOG(("lx390_fdc_r, WD17xx status: %02x\n", d)); + LOG("lx390_fdc_r, WD17xx status: %02x\n", d); break; case 1: d = m_wd1771->track_r(space, 0) ^ 0xff; - LOG(("lx390_fdc_r, WD17xx track: %02x\n", d)); + LOG("lx390_fdc_r, WD17xx track: %02x\n", d); break; case 2: d = m_wd1771->sector_r(space, 0) ^ 0xff; - LOG(("lx390_fdc_r, WD17xx sector: %02x\n", d)); + LOG("lx390_fdc_r, WD17xx sector: %02x\n", d); break; case 3: d = m_wd1771->data_r(space, 0) ^ 0xff; - LOG(("lx390_fdc_r, WD17xx data3: %02x\n", d)); + LOG("lx390_fdc_r, WD17xx data3: %02x\n", d); break; case 6: d = 0xff; @@ -689,7 +689,7 @@ READ8_MEMBER(z80ne_state::lx390_fdc_r) break; case 7: d = m_wd1771->data_r(space, 3) ^ 0xff; - LOG(("lx390_fdc_r, WD17xx data7, force: %02x\n", d)); + LOG("lx390_fdc_r, WD17xx data7, force: %02x\n", d); break; default: d = 0x00; @@ -705,7 +705,7 @@ WRITE8_MEMBER(z80ne_state::lx390_fdc_w) switch(offset) { case 0: - LOG(("lx390_fdc_w, WD17xx command: %02x\n", d)); + LOG("lx390_fdc_w, WD17xx command: %02x\n", d); m_wd1771->cmd_w(space, offset, d ^ 0xff); if (m_wd17xx_state.drive & 1) output().set_value("drv0", 2); @@ -713,23 +713,23 @@ WRITE8_MEMBER(z80ne_state::lx390_fdc_w) output().set_value("drv1", 2); break; case 1: - LOG(("lx390_fdc_w, WD17xx track: %02x\n", d)); + LOG("lx390_fdc_w, WD17xx track: %02x\n", d); m_wd1771->track_w(space, offset, d ^ 0xff); break; case 2: - LOG(("lx390_fdc_w, WD17xx sector: %02x\n", d)); + LOG("lx390_fdc_w, WD17xx sector: %02x\n", d); m_wd1771->sector_w(space, offset, d ^ 0xff); break; case 3: m_wd1771->data_w(space, 0, d ^ 0xff); - LOG(("lx390_fdc_w, WD17xx data3: %02x\n", d)); + LOG("lx390_fdc_w, WD17xx data3: %02x\n", d); break; case 6: - LOG(("lx390_fdc_w, motor_w: %02x\n", d)); + LOG("lx390_fdc_w, motor_w: %02x\n", d); lx390_motor_w(space, 0, d); break; case 7: - LOG(("lx390_fdc_w, WD17xx data7, force: %02x\n", d)); + LOG("lx390_fdc_w, WD17xx data7, force: %02x\n", d); m_wd1771->data_w(space, 3, d ^ 0xff); break; } diff --git a/src/mame/machine/znmcu.cpp b/src/mame/machine/znmcu.cpp index 8e4d1d8ba2c..1b21d956e1b 100644 --- a/src/mame/machine/znmcu.cpp +++ b/src/mame/machine/znmcu.cpp @@ -3,10 +3,10 @@ #include "emu.h" #include "znmcu.h" -const device_type ZNMCU = device_creator; +DEFINE_DEVICE_TYPE(ZNMCU, znmcu_device, "znmcu", "Sony ZN MCU") znmcu_device::znmcu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, ZNMCU, "Sony ZN MCU", tag, owner, clock, "znmcu", __FILE__), + device_t(mconfig, ZNMCU, tag, owner, clock), m_dsw_handler(*this), m_analog1_handler(*this), m_analog2_handler(*this), diff --git a/src/mame/machine/znmcu.h b/src/mame/machine/znmcu.h index b7c19c89331..2c97e21a128 100644 --- a/src/mame/machine/znmcu.h +++ b/src/mame/machine/znmcu.h @@ -1,12 +1,12 @@ // license:BSD-3-Clause // copyright-holders:smf -#pragma once +#ifndef MAME_MACHINE_ZNMCU_H +#define MAME_MACHINE_ZNMCU_H -#ifndef __ZNMCU_H__ -#define __ZNMCU_H__ +#pragma once -extern const device_type ZNMCU; +DECLARE_DEVICE_TYPE(ZNMCU, znmcu_device) #define MCFG_ZNMCU_DATAOUT_HANDLER(_devcb) \ devcb = &znmcu_device::set_dataout_handler(*device, DEVCB_##_devcb); @@ -29,11 +29,11 @@ public: znmcu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // static configuration helpers - template static devcb_base &set_dsw_handler(device_t &device, _Object object) { return downcast(device).m_dsw_handler.set_callback(object); } - template static devcb_base &set_analog1_handler(device_t &device, _Object object) { return downcast(device).m_analog1_handler.set_callback(object); } - template static devcb_base &set_analog2_handler(device_t &device, _Object object) { return downcast(device).m_analog2_handler.set_callback(object); } - template static devcb_base &set_dataout_handler(device_t &device, _Object object) { return downcast(device).m_dataout_handler.set_callback(object); } - template static devcb_base &set_dsr_handler(device_t &device, _Object object) { return downcast(device).m_dsr_handler.set_callback(object); } + template static devcb_base &set_dsw_handler(device_t &device, Object &&cb) { return downcast(device).m_dsw_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_analog1_handler(device_t &device, Object &&cb) { return downcast(device).m_analog1_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_analog2_handler(device_t &device, Object &&cb) { return downcast(device).m_analog2_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_dataout_handler(device_t &device, Object &&cb) { return downcast(device).m_dataout_handler.set_callback(std::forward(cb)); } + template static devcb_base &set_dsr_handler(device_t &device, Object &&cb) { return downcast(device).m_dsr_handler.set_callback(std::forward(cb)); } WRITE_LINE_MEMBER(write_select); WRITE_LINE_MEMBER(write_clock); @@ -60,4 +60,4 @@ private: emu_timer *m_mcu_timer; }; -#endif +#endif // MAME_MACHINE_ZNMCU_H diff --git a/src/mame/machine/zorbakbd.cpp b/src/mame/machine/zorbakbd.cpp index b0aa346a688..f552c3014e7 100644 --- a/src/mame/machine/zorbakbd.cpp +++ b/src/mame/machine/zorbakbd.cpp @@ -260,7 +260,7 @@ ROM_END } // anonymous namespace -device_type const ZORBA_KEYBOARD = device_creator; +DEFINE_DEVICE_TYPE(ZORBA_KEYBOARD, zorba_keyboard_device, "zorba_kbd", "Zorba Keyboard") zorba_keyboard_device::zorba_keyboard_device( @@ -268,15 +268,7 @@ zorba_keyboard_device::zorba_keyboard_device( char const *tag, device_t *owner, uint32_t clock) - : device_t( - mconfig, - ZORBA_KEYBOARD, - "Zorba Keyboard", - tag, - owner, - clock, - "zorba_kbd", - __FILE__) + : device_t(mconfig, ZORBA_KEYBOARD, tag, owner, clock) , m_rows(*this, "ROW%u", 0) , m_beeper(*this, "beeper") , m_rxd_cb(*this) diff --git a/src/mame/machine/zorbakbd.h b/src/mame/machine/zorbakbd.h index 6d03fc5a9c5..451e4102d8d 100644 --- a/src/mame/machine/zorbakbd.h +++ b/src/mame/machine/zorbakbd.h @@ -3,10 +3,12 @@ #ifndef MAME_MACHINE_ZORBAKBD_H #define MAME_MACHINE_ZORBAKBD_H +#pragma once + #include "sound/beep.h" -extern device_type const ZORBA_KEYBOARD; +DECLARE_DEVICE_TYPE(ZORBA_KEYBOARD, zorba_keyboard_device) #define MCFG_ZORBA_KEYBOARD_RXD_CB(cb) \ zorba_keyboard_device::set_rxd_cb(*device, DEVCB_##cb); @@ -14,8 +16,8 @@ extern device_type const ZORBA_KEYBOARD; class zorba_keyboard_device : public device_t { public: - template static devcb_base &set_rxd_cb(device_t &device, Obj &&object) - { return downcast(device).m_rxd_cb.set_callback(std::forward(object)); } + template static devcb_base &set_rxd_cb(device_t &device, Obj &&cb) + { return downcast(device).m_rxd_cb.set_callback(std::forward(cb)); } zorba_keyboard_device(machine_config const &mconfig, char const *tag, device_t *owner, uint32_t clock); diff --git a/src/mame/machine/zs01.cpp b/src/mame/machine/zs01.cpp index 57d938939d3..75a552745b6 100644 --- a/src/mame/machine/zs01.cpp +++ b/src/mame/machine/zs01.cpp @@ -28,10 +28,10 @@ inline void ATTR_PRINTF( 3, 4 ) zs01_device::verboselog( int n_level, const char } // device type definition -const device_type ZS01 = device_creator; +DEFINE_DEVICE_TYPE(ZS01, zs01_device, "zs01", "Konami ZS01 PIC") zs01_device::zs01_device( const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock ) - : device_t( mconfig, ZS01, "Konami ZS01 PIC", tag, owner, clock, "zs01", __FILE__ ), + : device_t(mconfig, ZS01, tag, owner, clock), device_nvram_interface(mconfig, *this), m_region(*this, DEVICE_SELF), m_cs( 0 ), diff --git a/src/mame/machine/zs01.h b/src/mame/machine/zs01.h index 2eb0dca8049..60611ade967 100644 --- a/src/mame/machine/zs01.h +++ b/src/mame/machine/zs01.h @@ -6,11 +6,11 @@ * Secure SerialFlash * */ +#ifndef MAME_MACHINE_ZS01_H +#define MAME_MACHINE_ZS01_H #pragma once -#ifndef __ZS01_H__ -#define __ZS01_H__ #include "machine/ds2401.h" @@ -97,6 +97,6 @@ private: // device type definition -extern const device_type ZS01; +DECLARE_DEVICE_TYPE(ZS01, zs01_device) -#endif +#endif // MAME_MACHINE_ZS01_H diff --git a/src/mame/machine/zx8302.cpp b/src/mame/machine/zx8302.cpp index e4680ef865f..5d17d2c1e19 100644 --- a/src/mame/machine/zx8302.cpp +++ b/src/mame/machine/zx8302.cpp @@ -19,10 +19,12 @@ */ #include "emu.h" -#include -#include "machine/microdrv.h" #include "zx8302.h" +#include "machine/microdrv.h" + +#include + //************************************************************************** @@ -41,7 +43,7 @@ static const int RTC_BASE_ADJUST = 283996800; // DEVICE DEFINITIONS //************************************************************************** -const device_type ZX8302 = device_creator; +DEFINE_DEVICE_TYPE(ZX8302, zx8302_device, "zx8302", "Sinclair ZX8302") //************************************************************************** // INLINE HELPERS @@ -128,7 +130,7 @@ inline void zx8302_device::transmit_ipc_data() //------------------------------------------------- zx8302_device::zx8302_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, ZX8302, "Sinclair ZX8302", tag, owner, clock, "zx8302", __FILE__), + : device_t(mconfig, ZX8302, tag, owner, clock), device_serial_interface(mconfig, *this), m_rtc_clock(0), m_out_ipl1l_cb(*this), diff --git a/src/mame/machine/zx8302.h b/src/mame/machine/zx8302.h index 679438cfa0e..4ada67efb8c 100644 --- a/src/mame/machine/zx8302.h +++ b/src/mame/machine/zx8302.h @@ -29,10 +29,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_MACHINE_ZX8302_H +#define MAME_MACHINE_ZX8302_H -#ifndef __ZX8302__ -#define __ZX8302__ +#pragma once @@ -100,20 +100,20 @@ public: zx8302_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); static void set_rtc_clock(device_t &device, int rtc_clock) { downcast(device).m_rtc_clock = rtc_clock; } - template static devcb_base &set_out_ipl1l_callback(device_t &device, _Object object) { return downcast(device).m_out_ipl1l_cb.set_callback(object); } - template static devcb_base &set_out_baudx4_callback(device_t &device, _Object object) { return downcast(device).m_out_baudx4_cb.set_callback(object); } - template static devcb_base &set_out_comdata_callback(device_t &device, _Object object) { return downcast(device).m_out_comdata_cb.set_callback(object); } - template static devcb_base &set_out_txd1_callback(device_t &device, _Object object) { return downcast(device).m_out_txd1_cb.set_callback(object); } - template static devcb_base &set_out_txd2_callback(device_t &device, _Object object) { return downcast(device).m_out_txd2_cb.set_callback(object); } - template static devcb_base &set_out_netout_callback(device_t &device, _Object object) { return downcast(device).m_out_netout_cb.set_callback(object); } - template static devcb_base &set_out_mdselck_callback(device_t &device, _Object object) { return downcast(device).m_out_mdselck_cb.set_callback(object); } - template static devcb_base &set_out_mdseld_callback(device_t &device, _Object object) { return downcast(device).m_out_mdseld_cb.set_callback(object); } - template static devcb_base &set_out_mdrdw_callback(device_t &device, _Object object) { return downcast(device).m_out_mdrdw_cb.set_callback(object); } - template static devcb_base &set_out_erase_callback(device_t &device, _Object object) { return downcast(device).m_out_erase_cb.set_callback(object); } - template static devcb_base &set_out_raw1_callback(device_t &device, _Object object) { return downcast(device).m_out_raw1_cb.set_callback(object); } - template static devcb_base &set_in_raw1_callback(device_t &device, _Object object) { return downcast(device).m_in_raw1_cb.set_callback(object); } - template static devcb_base &set_out_raw2_callback(device_t &device, _Object object) { return downcast(device).m_out_raw2_cb.set_callback(object); } - template static devcb_base &set_in_raw2_callback(device_t &device, _Object object) { return downcast(device).m_in_raw2_cb.set_callback(object); } + template static devcb_base &set_out_ipl1l_callback(device_t &device, Object &&cb) { return downcast(device).m_out_ipl1l_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_baudx4_callback(device_t &device, Object &&cb) { return downcast(device).m_out_baudx4_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_comdata_callback(device_t &device, Object &&cb) { return downcast(device).m_out_comdata_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_txd1_callback(device_t &device, Object &&cb) { return downcast(device).m_out_txd1_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_txd2_callback(device_t &device, Object &&cb) { return downcast(device).m_out_txd2_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_netout_callback(device_t &device, Object &&cb) { return downcast(device).m_out_netout_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_mdselck_callback(device_t &device, Object &&cb) { return downcast(device).m_out_mdselck_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_mdseld_callback(device_t &device, Object &&cb) { return downcast(device).m_out_mdseld_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_mdrdw_callback(device_t &device, Object &&cb) { return downcast(device).m_out_mdrdw_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_erase_callback(device_t &device, Object &&cb) { return downcast(device).m_out_erase_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_raw1_callback(device_t &device, Object &&cb) { return downcast(device).m_out_raw1_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_in_raw1_callback(device_t &device, Object &&cb) { return downcast(device).m_in_raw1_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_out_raw2_callback(device_t &device, Object &&cb) { return downcast(device).m_out_raw2_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_in_raw2_callback(device_t &device, Object &&cb) { return downcast(device).m_in_raw2_cb.set_callback(std::forward(cb)); } DECLARE_READ8_MEMBER( rtc_r ); DECLARE_WRITE8_MEMBER( rtc_w ); @@ -259,4 +259,4 @@ extern const device_type ZX8302; -#endif +#endif // MAME_MACHINE_ZX8302_H diff --git a/src/mame/video/733_asr.cpp b/src/mame/video/733_asr.cpp index f5fc7277af5..eb87ffe6acb 100644 --- a/src/mame/video/733_asr.cpp +++ b/src/mame/video/733_asr.cpp @@ -79,10 +79,10 @@ PALETTE_INIT_MEMBER(asr733_device, asr733) } -const device_type ASR733 = device_creator; +DEFINE_DEVICE_TYPE(ASR733, asr733_device, "asr733", "733 ASR") asr733_device::asr733_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, ASR733, "733 ASR", tag, owner, clock, "asr733", __FILE__), + : device_t(mconfig, ASR733, tag, owner, clock), device_gfx_interface(mconfig, *this, GFXDECODE_NAME(asr733), "palette"), m_keyint_line(*this), m_lineint_line(*this) diff --git a/src/mame/video/733_asr.h b/src/mame/video/733_asr.h index 4f14ededda4..567eaebe1bf 100644 --- a/src/mame/video/733_asr.h +++ b/src/mame/video/733_asr.h @@ -1,18 +1,22 @@ // license:GPL-2.0+ // copyright-holders:Raphael Nabet +#ifndef MAME_VIDEO_733_ASR +#define MAME_VIDEO_733_ASR -#define asr733_chr_region ":gfx1" +#pragma once -enum -{ - /* 8 bytes per character definition */ - asr733_single_char_len = 8, - asr733_chr_region_len = 128*asr733_single_char_len -}; +#define asr733_chr_region ":gfx1" class asr733_device : public device_t, public device_gfx_interface { public: + enum + { + /* 8 bytes per character definition */ + single_char_len = 8, + chr_region_len = 128*single_char_len + }; + asr733_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); DECLARE_PALETTE_INIT(asr733); @@ -20,13 +24,13 @@ public: DECLARE_READ8_MEMBER(cru_r); DECLARE_WRITE8_MEMBER(cru_w); - template static devcb_base &static_set_keyint_callback(device_t &device, _Object object) + template static devcb_base &static_set_keyint_callback(device_t &device, Object &&cb) { - return downcast(device).m_keyint_line.set_callback(object); + return downcast(device).m_keyint_line.set_callback(std::forward(cb)); } - template static devcb_base &static_set_lineint_callback(device_t &device, _Object object) + template static devcb_base &static_set_lineint_callback(device_t &device, Object &&cb) { - return downcast(device).m_lineint_line.set_callback(object); + return downcast(device).m_lineint_line.set_callback(std::forward(cb)); } uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); @@ -76,10 +80,12 @@ private: devcb_write_line m_lineint_line; }; -extern const device_type ASR733; +DECLARE_DEVICE_TYPE(ASR733, asr733_device) #define MCFG_ASR733_KEYINT_HANDLER( _intcallb ) \ devcb = &asr733_device::static_set_keyint_callback( *device, DEVCB_##_intcallb ); #define MCFG_ASR733_LINEINT_HANDLER( _intcallb ) \ devcb = &asr733_device::static_set_lineint_callback( *device, DEVCB_##_intcallb ); + +#endif // MAME_VIDEO_733_ASR diff --git a/src/mame/video/911_vdt.cpp b/src/mame/video/911_vdt.cpp index 96a6236c262..ed17d6a32a6 100644 --- a/src/mame/video/911_vdt.cpp +++ b/src/mame/video/911_vdt.cpp @@ -48,31 +48,31 @@ static const gfx_layout fontlayout_8bit = static GFXDECODE_START( vdt911 ) // Caution: Array must use same order as vdt911_model_t // US - GFXDECODE_ENTRY( vdt911_chr_region, vdt911_US_chr_offset, fontlayout_7bit, 0, 4 ) + GFXDECODE_ENTRY( vdt911_chr_region, vdt911_device::US_chr_offset, fontlayout_7bit, 0, 4 ) // UK - GFXDECODE_ENTRY( vdt911_chr_region, vdt911_UK_chr_offset, fontlayout_7bit, 0, 4 ) + GFXDECODE_ENTRY( vdt911_chr_region, vdt911_device::UK_chr_offset, fontlayout_7bit, 0, 4 ) // French (without accented characters) - GFXDECODE_ENTRY( vdt911_chr_region, vdt911_US_chr_offset, fontlayout_7bit, 0, 4 ) + GFXDECODE_ENTRY( vdt911_chr_region, vdt911_device::US_chr_offset, fontlayout_7bit, 0, 4 ) // German - GFXDECODE_ENTRY( vdt911_chr_region, vdt911_german_chr_offset, fontlayout_7bit, 0, 4 ) + GFXDECODE_ENTRY( vdt911_chr_region, vdt911_device::german_chr_offset, fontlayout_7bit, 0, 4 ) // Swedish - GFXDECODE_ENTRY( vdt911_chr_region, vdt911_swedish_chr_offset, fontlayout_7bit, 0, 4 ) + GFXDECODE_ENTRY( vdt911_chr_region, vdt911_device::swedish_chr_offset, fontlayout_7bit, 0, 4 ) // Norwegian - GFXDECODE_ENTRY( vdt911_chr_region, vdt911_norwegian_chr_offset, fontlayout_7bit, 0, 4 ) + GFXDECODE_ENTRY( vdt911_chr_region, vdt911_device::norwegian_chr_offset, fontlayout_7bit, 0, 4 ) // Japanese - GFXDECODE_ENTRY( vdt911_chr_region, vdt911_japanese_chr_offset, fontlayout_8bit, 0, 4 ) + GFXDECODE_ENTRY( vdt911_chr_region, vdt911_device::japanese_chr_offset, fontlayout_8bit, 0, 4 ) // Arabic - // GFXDECODE_ENTRY( vdt911_chr_region, vdt911_arabic_chr_offset, fontlayout_8bit, 0, 4 ) + // GFXDECODE_ENTRY( vdt911_chr_region, vdt911_device::arabic_chr_offset, fontlayout_8bit, 0, 4 ) // FrenchWP (contains accented characters) - GFXDECODE_ENTRY( vdt911_chr_region, vdt911_frenchWP_chr_offset, fontlayout_7bit, 0, 4 ) + GFXDECODE_ENTRY( vdt911_chr_region, vdt911_device::frenchWP_chr_offset, fontlayout_7bit, 0, 4 ) GFXDECODE_END static const unsigned char vdt911_colors[] = @@ -94,13 +94,13 @@ static const unsigned short vdt911_palette[] = Macros for model features */ /* TRUE for Japanese and Arabic terminals, which use 8-bit charcodes and keyboard shift modes */ -#define USES_8BIT_CHARCODES() ((m_model == vdt911_model_Japanese) /*|| (m_model == vdt911_model_Arabic)*/) +#define USES_8BIT_CHARCODES() ((m_model == model::Japanese) /*|| (m_model == model::Arabic)*/) /* TRUE for keyboards which have this extra key (on the left of TAB/SKIP) (Most localized keyboards have it) */ -#define HAS_EXTRA_KEY_67() (! ((m_model == vdt911_model_US) || (m_model == vdt911_model_UK) || (m_model == vdt911_model_French))) +#define HAS_EXTRA_KEY_67() (! ((m_model == model::US) || (m_model == model::UK) || (m_model == model::French))) /* TRUE for keyboards which have this extra key (on the right of space), AND do not use it as a modifier */ -#define HAS_EXTRA_KEY_91() ((m_model == vdt911_model_German) || (m_model == vdt911_model_Swedish) || (m_model == vdt911_model_Norwegian)) +#define HAS_EXTRA_KEY_91() ((m_model == model::German) || (m_model == model::Swedish) || (m_model == model::Norwegian)) /* Initialize vdt911 palette @@ -145,10 +145,10 @@ static void apply_char_overrides(int nb_char_overrides, const char_override_t ch } } -const device_type VDT911 = device_creator; +DEFINE_DEVICE_TYPE(VDT911, vdt911_device, "vdt911", "911 VDT") vdt911_device::vdt911_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, VDT911, "911 VDT", tag, owner, clock, "vdt911", __FILE__), + : device_t(mconfig, VDT911, tag, owner, clock), device_gfx_interface(mconfig, *this, GFXDECODE_NAME(vdt911), "palette"), m_beeper(*this, "beeper"), m_keyint_line(*this), @@ -191,49 +191,49 @@ void vdt911_device::device_start() uint8_t *chr = machine().root_device().memregion(vdt911_chr_region)->base(); /* set up US character definitions */ - base = chr+vdt911_US_chr_offset; + base = chr+US_chr_offset; copy_character_matrix_array(char_defs+char_defs_US_base, base); /* set up UK character definitions */ - base = chr+vdt911_UK_chr_offset; + base = chr+UK_chr_offset; copy_character_matrix_array(char_defs+char_defs_US_base, base); apply_char_overrides(sizeof(UK_overrides)/sizeof(char_override_t), UK_overrides, base); /* French character set is identical to US character set */ /* set up German character definitions */ - base = chr+vdt911_german_chr_offset; + base = chr+german_chr_offset; copy_character_matrix_array(char_defs+char_defs_US_base, base); apply_char_overrides(sizeof(german_overrides)/sizeof(char_override_t), german_overrides, base); /* set up Swedish/Finnish character definitions */ - base = chr+vdt911_swedish_chr_offset; + base = chr+swedish_chr_offset; copy_character_matrix_array(char_defs+char_defs_US_base, base); apply_char_overrides(sizeof(swedish_overrides)/sizeof(char_override_t), swedish_overrides, base); /* set up Norwegian/Danish character definitions */ - base = chr+vdt911_norwegian_chr_offset; + base = chr+norwegian_chr_offset; copy_character_matrix_array(char_defs+char_defs_US_base, base); apply_char_overrides(sizeof(norwegian_overrides)/sizeof(char_override_t), norwegian_overrides, base); /* set up French word processing character definitions */ - base = chr+vdt911_frenchWP_chr_offset; + base = chr+frenchWP_chr_offset; copy_character_matrix_array(char_defs+char_defs_US_base, base); apply_char_overrides(sizeof(frenchWP_overrides)/sizeof(char_override_t), frenchWP_overrides, base); /* set up Katakana Japanese character definitions */ - base = chr+vdt911_japanese_chr_offset; + base = chr+japanese_chr_offset; copy_character_matrix_array(char_defs+char_defs_US_base, base); apply_char_overrides(sizeof(japanese_overrides)/sizeof(char_override_t), japanese_overrides, base); - base = chr+vdt911_japanese_chr_offset+128*vdt911_single_char_len; + base = chr+japanese_chr_offset+128*single_char_len; copy_character_matrix_array(char_defs+char_defs_katakana_base, base); #if 0 /* set up Arabic character definitions */ - base = chr+vdt911_arabic_chr_offset; + base = chr+arabic_chr_offset; copy_character_matrix_array(char_defs+char_defs_US_base, base); apply_char_overrides(sizeof(arabic_overrides)/sizeof(char_override_t), arabic_overrides, base); - base = chr+vdt911_arabic_chr_offset+128*vdt911_single_char_len; + base = chr+arabic_chr_offset+128*single_char_len; copy_character_matrix_array(char_defs+char_defs_arabic_base, base); #endif } @@ -241,10 +241,10 @@ void vdt911_device::device_start() void vdt911_device::device_reset() { - m_model = (vdt911_model_t)ioport("LOCALE")->read(); - m_screen_size = (vdt911_screen_size_t)ioport("SCREEN")->read(); + m_model = model(ioport("LOCALE")->read()); + m_screen_size = screen_size(ioport("SCREEN")->read()); - if (m_screen_size == char_960) + if (m_screen_size == screen_size::char_960) m_cursor_address_mask = 0x3ff; /* 1kb of RAM */ else m_cursor_address_mask = 0x7ff; /* 2 kb of RAM */ @@ -460,8 +460,8 @@ WRITE8_MEMBER( vdt911_device::cru_w ) */ void vdt911_device::refresh(bitmap_ind16 &bitmap, const rectangle &cliprect, int x, int y) { - gfx_element *gfx = this->gfx(m_model); - int height = (m_screen_size == char_960) ? 12 : /*25*/24; + gfx_element *gfx = this->gfx(unsigned(m_model)); + int height = (m_screen_size == screen_size::char_960) ? 12 : /*25*/24; int use_8bit_charcodes = USES_8BIT_CHARCODES(); int address = 0; @@ -652,7 +652,7 @@ void vdt911_device::check_keyboard() m_last_key_pressed = (i << 4) | j; m_last_modifier_state = modifier_state; - m_keyboard_data = (int)key_translate[m_model][modifier_state][m_last_key_pressed]; + m_keyboard_data = (int)key_translate[unsigned(m_model)][modifier_state][m_last_key_pressed]; m_keyboard_data_ready = 1; if (m_keyboard_interrupt_enable) m_keyint_line(ASSERT_LINE); @@ -667,7 +667,7 @@ void vdt911_device::check_keyboard() int vdt911_device::get_refresh_rate() { // European models have 50 Hz - return ((m_model == vdt911_model_US) || (m_model == vdt911_model_Japanese))? 60 : 50; + return ((m_model == model::US) || (m_model == model::Japanese))? 60 : 50; } uint32_t vdt911_device::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) @@ -679,20 +679,20 @@ uint32_t vdt911_device::screen_update(screen_device &screen, bitmap_ind16 &bitma INPUT_PORTS_START( vdt911 ) PORT_START( "LOCALE" ) PORT_CONFNAME( 0x0f, 0x00, "Terminal language" ) - PORT_CONFSETTING( vdt911_model_US, "English US" ) - PORT_CONFSETTING( vdt911_model_UK, "English UK" ) - PORT_CONFSETTING( vdt911_model_French, "French" ) - PORT_CONFSETTING( vdt911_model_German, "German" ) - PORT_CONFSETTING( vdt911_model_Swedish, "Swedish" ) - PORT_CONFSETTING( vdt911_model_Norwegian, "Norwegian" ) - PORT_CONFSETTING( vdt911_model_Japanese, "Japanese" ) - // PORT_CONFSETTING( vdt911_model_Arabic, "Arabic" ) - PORT_CONFSETTING( vdt911_model_FrenchWP, "French Word Processing" ) + PORT_CONFSETTING( ioport_value(vdt911_device::model::US), "English US" ) + PORT_CONFSETTING( ioport_value(vdt911_device::model::UK), "English UK" ) + PORT_CONFSETTING( ioport_value(vdt911_device::model::French), "French" ) + PORT_CONFSETTING( ioport_value(vdt911_device::model::German), "German" ) + PORT_CONFSETTING( ioport_value(vdt911_device::model::Swedish), "Swedish" ) + PORT_CONFSETTING( ioport_value(vdt911_device::model::Norwegian), "Norwegian" ) + PORT_CONFSETTING( ioport_value(vdt911_device::model::Japanese), "Japanese" ) + // PORT_CONFSETTING( ioport_value(vdt911_device::model::Arabic), "Arabic" ) + PORT_CONFSETTING( ioport_value(vdt911_device::model::FrenchWP), "French Word Processing" ) PORT_START( "SCREEN" ) - PORT_CONFNAME( 0x01, char_960, "Terminal screen size" ) - PORT_CONFSETTING( char_960, "960 chars (12 lines)") - PORT_CONFSETTING( char_1920, "1920 chars (24 lines)") + PORT_CONFNAME( 0x01, ioport_value(vdt911_device::screen_size::char_960), "Terminal screen size" ) + PORT_CONFSETTING( ioport_value(vdt911_device::screen_size::char_960), "960 chars (12 lines)") + PORT_CONFSETTING( ioport_value(vdt911_device::screen_size::char_1920), "1920 chars (24 lines)") PORT_START("KEY0") /* keys 1-16 */ \ PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("F1") PORT_CODE(KEYCODE_F1) \ diff --git a/src/mame/video/911_vdt.h b/src/mame/video/911_vdt.h index ea495f12d1e..12134c330f2 100644 --- a/src/mame/video/911_vdt.h +++ b/src/mame/video/911_vdt.h @@ -1,42 +1,48 @@ // license:GPL-2.0+ // copyright-holders:Raphael Nabet +#ifndef MAME_VIDEO_911_VDT_H +#define MAME_VIDEO_911_VDT_H + +#pragma once #include "sound/beep.h" #define vdt911_chr_region ":gfx1" -enum -{ - /* 10 bytes per character definition */ - vdt911_single_char_len = 10, - - vdt911_US_chr_offset = 0, - vdt911_UK_chr_offset = vdt911_US_chr_offset+128*vdt911_single_char_len, - vdt911_german_chr_offset = vdt911_UK_chr_offset+128*vdt911_single_char_len, - vdt911_swedish_chr_offset = vdt911_german_chr_offset+128*vdt911_single_char_len, - vdt911_norwegian_chr_offset = vdt911_swedish_chr_offset+128*vdt911_single_char_len, - vdt911_frenchWP_chr_offset = vdt911_norwegian_chr_offset+128*vdt911_single_char_len, - vdt911_japanese_chr_offset = vdt911_frenchWP_chr_offset+128*vdt911_single_char_len, - - vdt911_chr_region_len = vdt911_japanese_chr_offset+256*vdt911_single_char_len -}; - -enum vdt911_screen_size_t { char_960 = 0, char_1920 }; -enum vdt911_model_t -{ - vdt911_model_US = 0, - vdt911_model_UK, - vdt911_model_French, - vdt911_model_German, - vdt911_model_Swedish, // Swedish/Finnish - vdt911_model_Norwegian, // Norwegian/Danish - vdt911_model_Japanese, // Katakana Japanese - /*vdt911_model_Arabic,*/ // Arabic - vdt911_model_FrenchWP // French word processing -}; class vdt911_device : public device_t, public device_gfx_interface { public: + enum + { + /* 10 bytes per character definition */ + single_char_len = 10, + + US_chr_offset = 0, + UK_chr_offset = US_chr_offset+128*single_char_len, + german_chr_offset = UK_chr_offset+128*single_char_len, + swedish_chr_offset = german_chr_offset+128*single_char_len, + norwegian_chr_offset = swedish_chr_offset+128*single_char_len, + frenchWP_chr_offset = norwegian_chr_offset+128*single_char_len, + japanese_chr_offset = frenchWP_chr_offset+128*single_char_len, + + chr_region_len = japanese_chr_offset+256*single_char_len + }; + + enum class screen_size { char_960 = 0, char_1920 }; + + enum class model + { + US = 0, + UK, + French, + German, + Swedish, // Swedish/Finnish + Norwegian, // Norwegian/Danish + Japanese, // Katakana Japanese + /*Arabic,*/ // Arabic + FrenchWP // French word processing + }; + vdt911_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); DECLARE_READ8_MEMBER(cru_r); @@ -44,14 +50,14 @@ public: DECLARE_PALETTE_INIT(vdt911); - template static devcb_base &static_set_keyint_callback(device_t &device, _Object object) + template static devcb_base &static_set_keyint_callback(device_t &device, Object &&cb) { - return downcast(device).m_keyint_line.set_callback(object); + return downcast(device).m_keyint_line.set_callback(std::forward(cb)); } - template static devcb_base &static_set_lineint_callback(device_t &device, _Object object) + template static devcb_base &static_set_lineint_callback(device_t &device, Object &&cb) { - return downcast(device).m_lineint_line.set_callback(object); + return downcast(device).m_lineint_line.set_callback(std::forward(cb)); } uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); @@ -71,8 +77,8 @@ private: int get_refresh_rate(); void check_keyboard(); - vdt911_screen_size_t m_screen_size; // char_960 for 960-char, 12-line model; char_1920 for 1920-char, 24-line model - vdt911_model_t m_model; // country code + screen_size m_screen_size; // char_960 for 960-char, 12-line model; char_1920 for 1920-char, 24-line model + model m_model; // country code uint8_t m_data_reg; // dt911 write buffer uint8_t m_display_RAM[2048]; // vdt911 char buffer (1kbyte for 960-char model, 2kbytes for 1920-char model) @@ -106,10 +112,12 @@ private: devcb_write_line m_lineint_line; }; -extern const device_type VDT911; +DECLARE_DEVICE_TYPE(VDT911, vdt911_device) #define MCFG_VDT911_KEYINT_HANDLER( _intcallb ) \ devcb = &vdt911_device::static_set_keyint_callback( *device, DEVCB_##_intcallb ); #define MCFG_VDT911_LINEINT_HANDLER( _intcallb ) \ devcb = &vdt911_device::static_set_lineint_callback( *device, DEVCB_##_intcallb ); + +#endif // MAME_VIDEO_911_VDT_H diff --git a/src/mame/video/abc1600.cpp b/src/mame/video/abc1600.cpp index 559590ec1cc..93f37116251 100644 --- a/src/mame/video/abc1600.cpp +++ b/src/mame/video/abc1600.cpp @@ -44,7 +44,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type ABC1600_MOVER = device_creator; +DEFINE_DEVICE_TYPE(ABC1600_MOVER, abc1600_mover_device, "abc1600mover", "ABC 1600 Mover") DEVICE_ADDRESS_MAP_START( vram_map, 8, abc1600_mover_device ) @@ -229,7 +229,7 @@ machine_config_constructor abc1600_mover_device::device_mconfig_additions() cons //------------------------------------------------- abc1600_mover_device::abc1600_mover_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, ABC1600_MOVER, "ABC 1600 Mover", tag, owner, clock, "abc1600mover", __FILE__), + device_t(mconfig, ABC1600_MOVER, tag, owner, clock), device_memory_interface(mconfig, *this), m_space_config("vram", ENDIANNESS_BIG, 16, 18, -1, *ADDRESS_MAP_NAME(mover_map)), m_crtc(*this, SY6845E_TAG), diff --git a/src/mame/video/abc1600.h b/src/mame/video/abc1600.h index eae56c6e1ab..3d3b0059eca 100644 --- a/src/mame/video/abc1600.h +++ b/src/mame/video/abc1600.h @@ -5,11 +5,11 @@ Luxor ABC 1600 Mover emulation **********************************************************************/ +#ifndef MAME_VIDEO_ABC1600_H +#define MAME_VIDEO_ABC1600_H #pragma once -#ifndef __ABC1600_MOVER__ -#define __ABC1600_MOVER__ #include "video/mc6845.h" @@ -145,8 +145,8 @@ private: // device type definition -extern const device_type ABC1600_MOVER; +DECLARE_DEVICE_TYPE(ABC1600_MOVER, abc1600_mover_device) -#endif +#endif // MAME_VIDEO_ABC1600_H diff --git a/src/mame/video/agat7.cpp b/src/mame/video/agat7.cpp index 679dea10edd..76d5c8e04b6 100644 --- a/src/mame/video/agat7.cpp +++ b/src/mame/video/agat7.cpp @@ -19,6 +19,7 @@ *********************************************************************/ +#include "emu.h" #include "video/agat7.h" #include "screen.h" @@ -32,7 +33,7 @@ // GLOBAL VARIABLES //************************************************************************** -const device_type AGAT7VIDEO = device_creator; +DEFINE_DEVICE_TYPE(AGAT7VIDEO, agat7video_device, "agat7video", "Agat-7 Video") MACHINE_CONFIG_FRAGMENT(agat7video) MCFG_SCREEN_ADD("a7screen", RASTER) @@ -63,7 +64,7 @@ machine_config_constructor agat7video_device::device_mconfig_additions() const //************************************************************************** agat7video_device::agat7video_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, AGAT7VIDEO, "Agat-7 video", tag, owner, clock, "agat7video", __FILE__), + device_t(mconfig, AGAT7VIDEO, tag, owner, clock), m_palette(*this, "a7palette") { } diff --git a/src/mame/video/agat7.h b/src/mame/video/agat7.h index 510e55e23c5..728b68e8626 100644 --- a/src/mame/video/agat7.h +++ b/src/mame/video/agat7.h @@ -8,10 +8,10 @@ *********************************************************************/ -#ifndef __AGAT7VIDEO__ -#define __AGAT7VIDEO__ +#ifndef MAME_VIDEO_AGAT7_H +#define MAME_VIDEO_AGAT7_H -#include "emu.h" +#pragma once #include "machine/ram.h" @@ -20,8 +20,7 @@ // TYPE DEFINITIONS //************************************************************************** -class agat7video_device: - public device_t +class agat7video_device : public device_t { public: // construction/destruction @@ -70,6 +69,6 @@ public: }; // device type definition -extern const device_type AGAT7VIDEO; +DECLARE_DEVICE_TYPE(AGAT7VIDEO, agat7video_device) -#endif /* __AGAT7VIDEO__ */ +#endif // MAME_VIDEO_AGAT7_H diff --git a/src/mame/video/airraid_dev.cpp b/src/mame/video/airraid_dev.cpp index 1b3d1b768e3..3750b5e296d 100644 --- a/src/mame/video/airraid_dev.cpp +++ b/src/mame/video/airraid_dev.cpp @@ -9,10 +9,10 @@ #include "emu.h" #include "airraid_dev.h" -const device_type AIRRAID_VIDEO = device_creator; +DEFINE_DEVICE_TYPE(AIRRAID_VIDEO, airraid_video_device, "airraid_vid", "Seibu Air Raid Video") airraid_video_device::airraid_video_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, AIRRAID_VIDEO, "Seibu Air Raid Video", tag, owner, clock, "airraid_vid", __FILE__), + : device_t(mconfig, AIRRAID_VIDEO, tag, owner, clock), m_gfxdecode(*this, "gfxdecode"), m_palette(*this, "^palette"), m_screen(*this, "screen"), diff --git a/src/mame/video/airraid_dev.h b/src/mame/video/airraid_dev.h index fb91af5e28c..c00a6f011bd 100644 --- a/src/mame/video/airraid_dev.h +++ b/src/mame/video/airraid_dev.h @@ -9,7 +9,7 @@ #include "screen.h" -extern const device_type AIRRAID_VIDEO; +DECLARE_DEVICE_TYPE(AIRRAID_VIDEO, airraid_video_device) #define MCFG_AIRRAID_VIDEO_ADD(_tag) \ MCFG_DEVICE_ADD(_tag, AIRRAID_VIDEO, 0) diff --git a/src/mame/video/antic.cpp b/src/mame/video/antic.cpp index 247173d40fd..c5f4a51e819 100644 --- a/src/mame/video/antic.cpp +++ b/src/mame/video/antic.cpp @@ -20,40 +20,321 @@ #define LOG(x) do { if (VERBOSE) logerror x; } while (0) +#define CYCLES_PER_LINE 114 /* total number of cpu cycles per scanline (incl. hblank) */ +#define CYCLES_REFRESH 9 /* number of cycles lost for ANTICs RAM refresh using DMA */ +#define CYCLES_HSTART 32 /* where does the ANTIC DMA fetch start */ +#define CYCLES_DLI_NMI 7 /* number of cycles until the CPU recognizes a DLI */ +#define CYCLES_HSYNC 104 /* where does the HSYNC position of a scanline start */ + +#define PMOFFSET 32 /* # of pixels to adjust p/m hpos */ + +#define VPAGE 0xf000 /* 4K page mask for video data src */ +#define VOFFS 0x0fff /* 4K offset mask for video data src */ +#define DPAGE 0xfc00 /* 1K page mask for display list */ +#define DOFFS 0x03ff /* 1K offset mask for display list */ + +#define DLI_NMI 0x80 /* 10000000b bit mask for display list interrupt */ +#define VBL_NMI 0x40 /* 01000000b bit mask for vertical blank interrupt */ + +#define ANTIC_DLI 0x80 /* 10000000b cmds with display list intr */ +#define ANTIC_LMS 0x40 /* 01000000b cmds with load memory scan */ +#define ANTIC_VSCR 0x20 /* 00100000b cmds with vertical scroll */ +#define ANTIC_HSCR 0x10 /* 00010000b cmds with horizontal scroll */ +#define ANTIC_MODE 0x0f /* 00001111b cmd mode mask */ + +#define DMA_ANTIC 0x20 /* 00100000b ANTIC DMA enable */ +#define DMA_PM_DBLLINE 0x10 /* 00010000b double line player/missile */ +#define DMA_PLAYER 0x08 /* 00001000b player DMA enable */ +#define DMA_MISSILE 0x04 /* 00000100b missile DMA enable */ + +#define OFS_MIS_SINGLE 3*256 /* offset missiles single line DMA */ +#define OFS_PL0_SINGLE 4*256 /* offset player 0 single line DMA */ +#define OFS_PL1_SINGLE 5*256 /* offset player 1 single line DMA */ +#define OFS_PL2_SINGLE 6*256 /* offset player 2 single line DMA */ +#define OFS_PL3_SINGLE 7*256 /* offset player 3 single line DMA */ + +#define OFS_MIS_DOUBLE 3*128 /* offset missiles double line DMA */ +#define OFS_PL0_DOUBLE 4*128 /* offset player 0 double line DMA */ +#define OFS_PL1_DOUBLE 5*128 /* offset player 1 double line DMA */ +#define OFS_PL2_DOUBLE 6*128 /* offset player 2 double line DMA */ +#define OFS_PL3_DOUBLE 7*128 /* offset player 3 double line DMA */ + +#define PFD 0x00 /* 00000000b playfield default color */ + +#define PBK 0x00 /* 00000000b playfield background */ +#define PF0 0x01 /* 00000001b playfield color #0 */ +#define PF1 0x02 /* 00000010b playfield color #1 */ +#define PF2 0x04 /* 00000100b playfield color #2 */ +#define PF3 0x08 /* 00001000b playfield color #3 */ +#define PL0 0x11 /* 00010001b player #0 */ +#define PL1 0x12 /* 00010010b player #1 */ +#define PL2 0x14 /* 00010100b player #2 */ +#define PL3 0x18 /* 00011000b player #3 */ +#define MI0 0x21 /* 00100001b missile #0 */ +#define MI1 0x22 /* 00100010b missile #1 */ +#define MI2 0x24 /* 00100100b missile #2 */ +#define MI3 0x28 /* 00101000b missile #3 */ +#define T00 0x40 /* 01000000b text mode pixels 00 */ +#define P000 0x48 /* 01001000b player #0 pixels 00 */ +#define P100 0x4a /* 01001010b player #1 pixels 00 */ +#define P200 0x4c /* 01001100b player #2 pixels 00 */ +#define P300 0x4e /* 01001110b player #3 pixels 00 */ +#define P400 0x4f /* 01001111b missiles pixels 00 */ +#define T01 0x50 /* 01010000b text mode pixels 01 */ +#define P001 0x58 /* 01011000b player #0 pixels 01 */ +#define P101 0x5a /* 01011010b player #1 pixels 01 */ +#define P201 0x5c /* 01011100b player #2 pixels 01 */ +#define P301 0x5e /* 01011110b player #3 pixels 01 */ +#define P401 0x5f /* 01011111b missiles pixels 01 */ +#define T10 0x60 /* 01100000b text mode pixels 10 */ +#define P010 0x68 /* 01101000b player #0 pixels 10 */ +#define P110 0x6a /* 01101010b player #1 pixels 10 */ +#define P210 0x6c /* 01101100b player #2 pixels 10 */ +#define P310 0x6e /* 01101110b player #3 pixels 10 */ +#define P410 0x6f /* 01101111b missiles pixels 10 */ +#define T11 0x70 /* 01110000b text mode pixels 11 */ +#define P011 0x78 /* 01111000b player #0 pixels 11 */ +#define P111 0x7a /* 01111010b player #1 pixels 11 */ +#define P211 0x7c /* 01111100b player #2 pixels 11 */ +#define P311 0x7e /* 01111110b player #3 pixels 11 */ +#define P411 0x7f /* 01111111b missiles pixels 11 */ +#define G00 0x80 /* 10000000b hires gfx pixels 00 */ +#define G01 0x90 /* 10010000b hires gfx pixels 01 */ +#define G10 0xa0 /* 10100000b hires gfx pixels 10 */ +#define G11 0xb0 /* 10110000b hires gfx pixels 11 */ +#define GT1 0xc0 /* 11000000b gtia mode 1 */ +#define GT2 0xd0 /* 11010000b gtia mode 2 */ +#define GT3 0xe0 /* 11100000b gtia mode 3 */ +#define ILL 0xfe /* 11111110b illegal priority */ +#define EOR 0xff /* 11111111b EOR mode color */ + +#define LUM 0x0f /* 00001111b luminance bits */ +#define HUE 0xf0 /* 11110000b hue bits */ + +#define TRIGGER_VBLANK 64715 +#define TRIGGER_STEAL 64716 +#define TRIGGER_HSYNC 64717 + + +/***************************************************************************** + * If your memcpy does not expand too well if you use it with constant + * size_t field, you might want to define these macros somehow different. + * NOTE: dst is not necessarily uint32_t aligned (because of horz scrolling)! + *****************************************************************************/ +#define COPY4(dst,s1) *dst++ = s1 +#define COPY8(dst,s1,s2) *dst++ = s1; *dst++ = s2 +#define COPY16(dst,s1,s2,s3,s4) *dst++ = s1; *dst++ = s2; *dst++ = s3; *dst++ = s4 + +#define RDANTIC(space) space.read_byte(m_dpage+m_doffs) +#define RDVIDEO(space,o) space.read_byte(m_vpage+((m_voffs+(o))&VOFFS)) +#define RDCHGEN(space,o) space.read_byte(m_chbase+(o)) +#define RDPMGFXS(space,o) space.read_byte(m_pmbase_s+(o)+(m_scanline>>1)) +#define RDPMGFXD(space,o) space.read_byte(m_pmbase_d+(o)+m_scanline) + +#define PREPARE() \ + uint32_t *dst = (uint32_t *)&m_cclock[PMOFFSET] + +#define PREPARE_TXT2(space,width) \ + uint32_t *dst = (uint32_t *)&m_cclock[PMOFFSET]; \ + for (int i = 0; i < width; i++) \ + { \ + uint16_t ch = RDVIDEO(space,i) << 3; \ + if (ch & 0x400) \ + { \ + ch = RDCHGEN(space,(ch & 0x3f8) + m_w.chbasl); \ + ch = (ch ^ m_chxor) & m_chand; \ + } \ + else \ + { \ + ch = RDCHGEN(space,ch + m_w.chbasl); \ + } \ + video->data[i] = ch; \ + } + +#define PREPARE_TXT3(space,width) \ + uint32_t *dst = (uint32_t *)&m_cclock[PMOFFSET]; \ + for (int i = 0; i < width; i++) \ + { \ + uint16_t ch = RDVIDEO(space,i) << 3; \ + if (ch & 0x400) \ + { \ + ch &= 0x3f8; \ + if ((ch & 0x300) == 0x300) \ + { \ + if (m_w.chbasl < 2) /* first two lines empty */ \ + ch = 0x00; \ + else /* lines 2..7 are standard, 8&9 are 0&1 */ \ + ch = RDCHGEN(space,ch + (m_w.chbasl & 7));\ + } \ + else \ + { \ + if (m_w.chbasl > 7) /* last two lines empty */ \ + ch = 0x00; \ + else /* lines 0..7 are standard */ \ + ch = RDCHGEN(space,ch + m_w.chbasl); \ + } \ + ch = (ch ^ m_chxor) & m_chand; \ + } \ + else \ + { \ + if ((ch & 0x300) == 0x300) \ + { \ + if (m_w.chbasl < 2) /* first two lines empty */ \ + ch = 0x00; \ + else /* lines 2..7 are standard, 8&9 are 0&1 */ \ + ch = RDCHGEN(space,ch + (m_w.chbasl & 7));\ + } \ + else \ + { \ + if (m_w.chbasl > 7) /* last two lines empty */ \ + ch = 0x00; \ + else /* lines 0..7 are standard */ \ + ch = RDCHGEN(space,ch + m_w.chbasl); \ + } \ + } \ + video->data[i] = ch; \ + } + +#define PREPARE_TXT45(space,width,shift) \ + uint32_t *dst = (uint32_t *)&m_cclock[PMOFFSET]; \ + for (int i = 0; i < width; i++) \ + { \ + uint16_t ch = RDVIDEO(space,i) << 3; \ + ch = ((ch>>2)&0x100)|RDCHGEN(space,(ch&0x3f8)+(m_w.chbasl>>shift)); \ + video->data[i] = ch; \ + } + + +#define PREPARE_TXT67(space,width,shift) \ + uint32_t *dst = (uint32_t *)&m_cclock[PMOFFSET]; \ + for (int i = 0; i < width; i++) \ + { \ + uint16_t ch = RDVIDEO(space,i) << 3; \ + ch = (ch&0x600)|(RDCHGEN(space,(ch&0x1f8)+(m_w.chbasl>>shift))<<1); \ + video->data[i] = ch; \ + } + +#define PREPARE_GFX8(space,width) \ + uint32_t *dst = (uint32_t *)&m_cclock[PMOFFSET]; \ + for (int i = 0; i < width; i++) \ + video->data[i] = RDVIDEO(space,i) << 2 + +#define PREPARE_GFX9BC(space,width) \ + uint32_t *dst = (uint32_t *)&m_cclock[PMOFFSET]; \ + for (int i = 0; i < width; i++) \ + video->data[i] = RDVIDEO(space,i) << 1 + +#define PREPARE_GFXA(space,width) \ + uint32_t *dst = (uint32_t *)&m_cclock[PMOFFSET]; \ + for (int i = 0; i < width; i++) \ + video->data[i] = RDVIDEO(space,i) << 1 + +#define PREPARE_GFXDE(space,width) \ + uint32_t *dst = (uint32_t *)&m_cclock[PMOFFSET]; \ + for (int i = 0; i < width; i++) \ + video->data[i] = RDVIDEO(space,i) + +#define PREPARE_GFXF(space,width) \ + uint32_t *dst = (uint32_t *)&m_cclock[PMOFFSET]; \ + for (int i = 0; i < width; i++) \ + video->data[i] = RDVIDEO(space,i) + +#define PREPARE_GFXG1(space,width) \ + uint32_t *dst = (uint32_t *)&m_cclock[PMOFFSET]; \ + for (int i = 0; i < width; i++) \ + video->data[i] = RDVIDEO(space,i) + +#define PREPARE_GFXG2(space,width) \ + uint32_t *dst = (uint32_t *)&m_cclock[PMOFFSET]; \ + for (int i = 0; i < width; i++) \ + video->data[i] = RDVIDEO(space,i) + +#define PREPARE_GFXG3(space,width) \ + uint32_t *dst = (uint32_t *)&m_cclock[PMOFFSET]; \ + for (int i = 0; i < width; i++) \ + video->data[i] = RDVIDEO(space,i) + +/****************************************************************** + * common end of a single antic/gtia mode emulation function + ******************************************************************/ +#define POST() \ + --m_modelines + +#define POST_GFX(width) \ + m_steal_cycles += width; \ + if (--m_modelines == 0) \ + m_voffs = (m_voffs + width) & VOFFS + +#define POST_TXT(width) \ + m_steal_cycles += width; \ + if (--m_modelines == 0) \ + m_voffs = (m_voffs + width) & VOFFS; \ + else if (m_w.chactl & 4) \ + m_w.chbasl--; \ + else \ + m_w.chbasl++ + +/* erase a number of color clocks to background color PBK */ +#define ERASE(size) \ + for (int i = 0; i < size; i++) \ + { \ + *dst++ = (PBK << 24) | (PBK << 16) | (PBK << 8) | PBK; \ + } +#define ZAP48() \ + dst = (uint32_t *)&antic.cclock[PMOFFSET]; \ + dst[ 0] = (PBK << 24) | (PBK << 16) | (PBK << 8) | PBK; \ + dst[ 1] = (PBK << 24) | (PBK << 16) | (PBK << 8) | PBK; \ + dst[ 2] = (PBK << 24) | (PBK << 16) | (PBK << 8) | PBK; \ + dst[45] = (PBK << 24) | (PBK << 16) | (PBK << 8) | PBK; \ + dst[46] = (PBK << 24) | (PBK << 16) | (PBK << 8) | PBK; \ + dst[47] = (PBK << 24) | (PBK << 16) | (PBK << 8) | PBK + +#define REP(FUNC, size) \ + for (int i = 0; i < size; i++) \ + { \ + FUNC(i); \ + } + + +constexpr unsigned antic_device::TOTAL_LINES_60HZ; +constexpr unsigned antic_device::TOTAL_LINES_50HZ; +constexpr double antic_device::FRAME_RATE_50HZ; +constexpr double antic_device::FRAME_RATE_60HZ; + // devices -const device_type ATARI_ANTIC = device_creator; +DEFINE_DEVICE_TYPE(ATARI_ANTIC, antic_device, "antic", "Atari ANTIC") //------------------------------------------------- // antic_device - constructor //------------------------------------------------- antic_device::antic_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, ATARI_ANTIC, "Atari ANTIC", tag, owner, clock, "antic", __FILE__), - device_video_interface(mconfig, *this), - m_gtia_tag(nullptr), - m_maincpu(*this, ":maincpu"), - m_djoy_b(*this, ":djoy_b"), - m_artifacts(*this, ":artifacts"), - m_tv_artifacts(0), - m_render1(0), - m_render2(0), - m_render3(0), - m_cmd(0), - m_steal_cycles(0), - m_vscrol_old(0), - m_hscrol_old(0), - m_modelines(0), - m_chbase(0), - m_chand(0), - m_chxor(0), - m_scanline(0), - m_pfwidth(0), - m_dpage(0), - m_doffs(0), - m_vpage(0), - m_voffs(0), - m_pmbase_s(0), - m_pmbase_d(0) + device_t(mconfig, ATARI_ANTIC, tag, owner, clock), + device_video_interface(mconfig, *this), + m_gtia_tag(nullptr), + m_maincpu(*this, ":maincpu"), + m_djoy_b(*this, ":djoy_b"), + m_artifacts(*this, ":artifacts"), + m_tv_artifacts(0), + m_render1(0), + m_render2(0), + m_render3(0), + m_cmd(0), + m_steal_cycles(0), + m_vscrol_old(0), + m_hscrol_old(0), + m_modelines(0), + m_chbase(0), + m_chand(0), + m_chxor(0), + m_scanline(0), + m_pfwidth(0), + m_dpage(0), + m_doffs(0), + m_vpage(0), + m_voffs(0), + m_pmbase_s(0), + m_pmbase_d(0) { } diff --git a/src/mame/video/antic.h b/src/mame/video/antic.h index 68915e19f55..9aa7053ab03 100644 --- a/src/mame/video/antic.h +++ b/src/mame/video/antic.h @@ -10,360 +10,38 @@ ***************************************************************************/ -#ifndef __ANTIC_H__ -#define __ANTIC_H__ - -#include "video/gtia.h" +#ifndef MAME_VIDEO_ANTIC_H +#define MAME_VIDEO_ANTIC_H +#pragma once -#define CYCLES_PER_LINE 114 /* total number of cpu cycles per scanline (incl. hblank) */ -#define CYCLES_REFRESH 9 /* number of cycles lost for ANTICs RAM refresh using DMA */ -#define CYCLES_HSTART 32 /* where does the ANTIC DMA fetch start */ -#define CYCLES_DLI_NMI 7 /* number of cycles until the CPU recognizes a DLI */ -#define CYCLES_HSYNC 104 /* where does the HSYNC position of a scanline start */ - -#define VBL_END 8 /* vblank ends in this scanline */ -#define VDATA_START 11 /* video display begins in this scanline */ -#define VDATA_END 244 /* video display ends in this scanline */ -#define VBL_START 248 /* vblank starts in this scanline */ - -/* total number of lines per frame (incl. vblank) */ -#define TOTAL_LINES_60HZ 262 -#define TOTAL_LINES_50HZ 312 - -/* frame rates */ -#define FRAME_RATE_50HZ (double)1789790/114/TOTAL_LINES_50HZ -#define FRAME_RATE_60HZ (double)1789790/114/TOTAL_LINES_60HZ - -#define HWIDTH 48 /* total characters per line */ -#define HCHARS 44 /* visible characters per line */ -#define VHEIGHT 32 -#define VCHARS (VDATA_END-VDATA_START+7)/8 -#define BUF_OFFS0 (HWIDTH-HCHARS)/2 -#define MIN_X ((HWIDTH-42)/2)*8 -#define MAX_X MIN_X+42*8-1 -#define MIN_Y VDATA_START -#define MAX_Y VDATA_END-8-1 - -#define PMOFFSET 32 /* # of pixels to adjust p/m hpos */ - -#define VPAGE 0xf000 /* 4K page mask for video data src */ -#define VOFFS 0x0fff /* 4K offset mask for video data src */ -#define DPAGE 0xfc00 /* 1K page mask for display list */ -#define DOFFS 0x03ff /* 1K offset mask for display list */ - -#define DLI_NMI 0x80 /* 10000000b bit mask for display list interrupt */ -#define VBL_NMI 0x40 /* 01000000b bit mask for vertical blank interrupt */ - -#define ANTIC_DLI 0x80 /* 10000000b cmds with display list intr */ -#define ANTIC_LMS 0x40 /* 01000000b cmds with load memory scan */ -#define ANTIC_VSCR 0x20 /* 00100000b cmds with vertical scroll */ -#define ANTIC_HSCR 0x10 /* 00010000b cmds with horizontal scroll */ -#define ANTIC_MODE 0x0f /* 00001111b cmd mode mask */ - -#define DMA_ANTIC 0x20 /* 00100000b ANTIC DMA enable */ -#define DMA_PM_DBLLINE 0x10 /* 00010000b double line player/missile */ -#define DMA_PLAYER 0x08 /* 00001000b player DMA enable */ -#define DMA_MISSILE 0x04 /* 00000100b missile DMA enable */ - -#define OFS_MIS_SINGLE 3*256 /* offset missiles single line DMA */ -#define OFS_PL0_SINGLE 4*256 /* offset player 0 single line DMA */ -#define OFS_PL1_SINGLE 5*256 /* offset player 1 single line DMA */ -#define OFS_PL2_SINGLE 6*256 /* offset player 2 single line DMA */ -#define OFS_PL3_SINGLE 7*256 /* offset player 3 single line DMA */ - -#define OFS_MIS_DOUBLE 3*128 /* offset missiles double line DMA */ -#define OFS_PL0_DOUBLE 4*128 /* offset player 0 double line DMA */ -#define OFS_PL1_DOUBLE 5*128 /* offset player 1 double line DMA */ -#define OFS_PL2_DOUBLE 6*128 /* offset player 2 double line DMA */ -#define OFS_PL3_DOUBLE 7*128 /* offset player 3 double line DMA */ - -#define PFD 0x00 /* 00000000b playfield default color */ - -#define PBK 0x00 /* 00000000b playfield background */ -#define PF0 0x01 /* 00000001b playfield color #0 */ -#define PF1 0x02 /* 00000010b playfield color #1 */ -#define PF2 0x04 /* 00000100b playfield color #2 */ -#define PF3 0x08 /* 00001000b playfield color #3 */ -#define PL0 0x11 /* 00010001b player #0 */ -#define PL1 0x12 /* 00010010b player #1 */ -#define PL2 0x14 /* 00010100b player #2 */ -#define PL3 0x18 /* 00011000b player #3 */ -#define MI0 0x21 /* 00100001b missile #0 */ -#define MI1 0x22 /* 00100010b missile #1 */ -#define MI2 0x24 /* 00100100b missile #2 */ -#define MI3 0x28 /* 00101000b missile #3 */ -#define T00 0x40 /* 01000000b text mode pixels 00 */ -#define P000 0x48 /* 01001000b player #0 pixels 00 */ -#define P100 0x4a /* 01001010b player #1 pixels 00 */ -#define P200 0x4c /* 01001100b player #2 pixels 00 */ -#define P300 0x4e /* 01001110b player #3 pixels 00 */ -#define P400 0x4f /* 01001111b missiles pixels 00 */ -#define T01 0x50 /* 01010000b text mode pixels 01 */ -#define P001 0x58 /* 01011000b player #0 pixels 01 */ -#define P101 0x5a /* 01011010b player #1 pixels 01 */ -#define P201 0x5c /* 01011100b player #2 pixels 01 */ -#define P301 0x5e /* 01011110b player #3 pixels 01 */ -#define P401 0x5f /* 01011111b missiles pixels 01 */ -#define T10 0x60 /* 01100000b text mode pixels 10 */ -#define P010 0x68 /* 01101000b player #0 pixels 10 */ -#define P110 0x6a /* 01101010b player #1 pixels 10 */ -#define P210 0x6c /* 01101100b player #2 pixels 10 */ -#define P310 0x6e /* 01101110b player #3 pixels 10 */ -#define P410 0x6f /* 01101111b missiles pixels 10 */ -#define T11 0x70 /* 01110000b text mode pixels 11 */ -#define P011 0x78 /* 01111000b player #0 pixels 11 */ -#define P111 0x7a /* 01111010b player #1 pixels 11 */ -#define P211 0x7c /* 01111100b player #2 pixels 11 */ -#define P311 0x7e /* 01111110b player #3 pixels 11 */ -#define P411 0x7f /* 01111111b missiles pixels 11 */ -#define G00 0x80 /* 10000000b hires gfx pixels 00 */ -#define G01 0x90 /* 10010000b hires gfx pixels 01 */ -#define G10 0xa0 /* 10100000b hires gfx pixels 10 */ -#define G11 0xb0 /* 10110000b hires gfx pixels 11 */ -#define GT1 0xc0 /* 11000000b gtia mode 1 */ -#define GT2 0xd0 /* 11010000b gtia mode 2 */ -#define GT3 0xe0 /* 11100000b gtia mode 3 */ -#define ILL 0xfe /* 11111110b illegal priority */ -#define EOR 0xff /* 11111111b EOR mode color */ - -#define LUM 0x0f /* 00001111b luminance bits */ -#define HUE 0xf0 /* 11110000b hue bits */ - -#define TRIGGER_VBLANK 64715 -#define TRIGGER_STEAL 64716 -#define TRIGGER_HSYNC 64717 - - -/***************************************************************************** - * If your memcpy does not expand too well if you use it with constant - * size_t field, you might want to define these macros somehow different. - * NOTE: dst is not necessarily uint32_t aligned (because of horz scrolling)! - *****************************************************************************/ -#define COPY4(dst,s1) *dst++ = s1 -#define COPY8(dst,s1,s2) *dst++ = s1; *dst++ = s2 -#define COPY16(dst,s1,s2,s3,s4) *dst++ = s1; *dst++ = s2; *dst++ = s3; *dst++ = s4 - -#define RDANTIC(space) space.read_byte(m_dpage+m_doffs) -#define RDVIDEO(space,o) space.read_byte(m_vpage+((m_voffs+(o))&VOFFS)) -#define RDCHGEN(space,o) space.read_byte(m_chbase+(o)) -#define RDPMGFXS(space,o) space.read_byte(m_pmbase_s+(o)+(m_scanline>>1)) -#define RDPMGFXD(space,o) space.read_byte(m_pmbase_d+(o)+m_scanline) - -#define PREPARE() \ - uint32_t *dst = (uint32_t *)&m_cclock[PMOFFSET] - -#define PREPARE_TXT2(space,width) \ - uint32_t *dst = (uint32_t *)&m_cclock[PMOFFSET]; \ - for (int i = 0; i < width; i++) \ - { \ - uint16_t ch = RDVIDEO(space,i) << 3; \ - if (ch & 0x400) \ - { \ - ch = RDCHGEN(space,(ch & 0x3f8) + m_w.chbasl); \ - ch = (ch ^ m_chxor) & m_chand; \ - } \ - else \ - { \ - ch = RDCHGEN(space,ch + m_w.chbasl); \ - } \ - video->data[i] = ch; \ - } - -#define PREPARE_TXT3(space,width) \ - uint32_t *dst = (uint32_t *)&m_cclock[PMOFFSET]; \ - for (int i = 0; i < width; i++) \ - { \ - uint16_t ch = RDVIDEO(space,i) << 3; \ - if (ch & 0x400) \ - { \ - ch &= 0x3f8; \ - if ((ch & 0x300) == 0x300) \ - { \ - if (m_w.chbasl < 2) /* first two lines empty */ \ - ch = 0x00; \ - else /* lines 2..7 are standard, 8&9 are 0&1 */ \ - ch = RDCHGEN(space,ch + (m_w.chbasl & 7));\ - } \ - else \ - { \ - if (m_w.chbasl > 7) /* last two lines empty */ \ - ch = 0x00; \ - else /* lines 0..7 are standard */ \ - ch = RDCHGEN(space,ch + m_w.chbasl); \ - } \ - ch = (ch ^ m_chxor) & m_chand; \ - } \ - else \ - { \ - if ((ch & 0x300) == 0x300) \ - { \ - if (m_w.chbasl < 2) /* first two lines empty */ \ - ch = 0x00; \ - else /* lines 2..7 are standard, 8&9 are 0&1 */ \ - ch = RDCHGEN(space,ch + (m_w.chbasl & 7));\ - } \ - else \ - { \ - if (m_w.chbasl > 7) /* last two lines empty */ \ - ch = 0x00; \ - else /* lines 0..7 are standard */ \ - ch = RDCHGEN(space,ch + m_w.chbasl); \ - } \ - } \ - video->data[i] = ch; \ - } - -#define PREPARE_TXT45(space,width,shift) \ - uint32_t *dst = (uint32_t *)&m_cclock[PMOFFSET]; \ - for (int i = 0; i < width; i++) \ - { \ - uint16_t ch = RDVIDEO(space,i) << 3; \ - ch = ((ch>>2)&0x100)|RDCHGEN(space,(ch&0x3f8)+(m_w.chbasl>>shift)); \ - video->data[i] = ch; \ - } - - -#define PREPARE_TXT67(space,width,shift) \ - uint32_t *dst = (uint32_t *)&m_cclock[PMOFFSET]; \ - for (int i = 0; i < width; i++) \ - { \ - uint16_t ch = RDVIDEO(space,i) << 3; \ - ch = (ch&0x600)|(RDCHGEN(space,(ch&0x1f8)+(m_w.chbasl>>shift))<<1); \ - video->data[i] = ch; \ - } - -#define PREPARE_GFX8(space,width) \ - uint32_t *dst = (uint32_t *)&m_cclock[PMOFFSET]; \ - for (int i = 0; i < width; i++) \ - video->data[i] = RDVIDEO(space,i) << 2 - -#define PREPARE_GFX9BC(space,width) \ - uint32_t *dst = (uint32_t *)&m_cclock[PMOFFSET]; \ - for (int i = 0; i < width; i++) \ - video->data[i] = RDVIDEO(space,i) << 1 - -#define PREPARE_GFXA(space,width) \ - uint32_t *dst = (uint32_t *)&m_cclock[PMOFFSET]; \ - for (int i = 0; i < width; i++) \ - video->data[i] = RDVIDEO(space,i) << 1 - -#define PREPARE_GFXDE(space,width) \ - uint32_t *dst = (uint32_t *)&m_cclock[PMOFFSET]; \ - for (int i = 0; i < width; i++) \ - video->data[i] = RDVIDEO(space,i) - -#define PREPARE_GFXF(space,width) \ - uint32_t *dst = (uint32_t *)&m_cclock[PMOFFSET]; \ - for (int i = 0; i < width; i++) \ - video->data[i] = RDVIDEO(space,i) - -#define PREPARE_GFXG1(space,width) \ - uint32_t *dst = (uint32_t *)&m_cclock[PMOFFSET]; \ - for (int i = 0; i < width; i++) \ - video->data[i] = RDVIDEO(space,i) - -#define PREPARE_GFXG2(space,width) \ - uint32_t *dst = (uint32_t *)&m_cclock[PMOFFSET]; \ - for (int i = 0; i < width; i++) \ - video->data[i] = RDVIDEO(space,i) - -#define PREPARE_GFXG3(space,width) \ - uint32_t *dst = (uint32_t *)&m_cclock[PMOFFSET]; \ - for (int i = 0; i < width; i++) \ - video->data[i] = RDVIDEO(space,i) - -/****************************************************************** - * common end of a single antic/gtia mode emulation function - ******************************************************************/ -#define POST() \ - --m_modelines - -#define POST_GFX(width) \ - m_steal_cycles += width; \ - if (--m_modelines == 0) \ - m_voffs = (m_voffs + width) & VOFFS - -#define POST_TXT(width) \ - m_steal_cycles += width; \ - if (--m_modelines == 0) \ - m_voffs = (m_voffs + width) & VOFFS; \ - else if (m_w.chactl & 4) \ - m_w.chbasl--; \ - else \ - m_w.chbasl++ - -/* erase a number of color clocks to background color PBK */ -#define ERASE(size) \ - for (int i = 0; i < size; i++) \ - { \ - *dst++ = (PBK << 24) | (PBK << 16) | (PBK << 8) | PBK; \ - } -#define ZAP48() \ - dst = (uint32_t *)&antic.cclock[PMOFFSET]; \ - dst[ 0] = (PBK << 24) | (PBK << 16) | (PBK << 8) | PBK; \ - dst[ 1] = (PBK << 24) | (PBK << 16) | (PBK << 8) | PBK; \ - dst[ 2] = (PBK << 24) | (PBK << 16) | (PBK << 8) | PBK; \ - dst[45] = (PBK << 24) | (PBK << 16) | (PBK << 8) | PBK; \ - dst[46] = (PBK << 24) | (PBK << 16) | (PBK << 8) | PBK; \ - dst[47] = (PBK << 24) | (PBK << 16) | (PBK << 8) | PBK - -#define REP(FUNC, size) \ - for (int i = 0; i < size; i++) \ - { \ - FUNC(i); \ - } - - -struct ANTIC_R { - uint8_t antic00; /* 00 nothing */ - uint8_t antic01; /* 01 nothing */ - uint8_t antic02; /* 02 nothing */ - uint8_t antic03; /* 03 nothing */ - uint8_t antic04; /* 04 nothing */ - uint8_t antic05; /* 05 nothing */ - uint8_t antic06; /* 06 nothing */ - uint8_t antic07; /* 07 nothing */ - uint8_t antic08; /* 08 nothing */ - uint8_t antic09; /* 09 nothing */ - uint8_t antic0a; /* 0a nothing */ - uint8_t vcount; /* 0b vertical (scanline) counter */ - uint8_t penh; /* 0c light pen horizontal pos */ - uint8_t penv; /* 0d light pen vertical pos */ - uint8_t antic0e; /* 0e nothing */ - uint8_t nmist; /* 0f NMI status */ -}; /* read registers */ - -struct ANTIC_W { - uint8_t dmactl; /* 00 write DMA control */ - uint8_t chactl; /* 01 write character control */ - uint8_t dlistl; /* 02 display list low */ - uint8_t dlisth; /* 03 display list high */ - uint8_t hscrol; /* 04 horz scroll */ - uint8_t vscrol; /* 05 vert scroll */ - uint8_t pmbasl; /* 06 player/missile base addr low */ - uint8_t pmbash; /* 07 player/missile base addr high */ - uint8_t chbasl; /* 08 character generator base addr low */ - uint8_t chbash; /* 09 character generator base addr high */ - uint8_t wsync; /* 0a wait for hsync */ - uint8_t antic0b; /* 0b nothing */ - uint8_t antic0c; /* 0c nothing */ - uint8_t antic0d; /* 0d nothing */ - uint8_t nmien; /* 0e NMI enable */ - uint8_t nmires; /* 0f NMI reset */ -}; /* write registers */ - -/* per scanline buffer for video data (and optimization variables) */ -struct VIDEO { - uint32_t cmd; /* antic command for this scanline */ - uint16_t data[HWIDTH]; /* graphics data buffer (text through chargen) */ -}; +#include "video/gtia.h" -class antic_device : public device_t, - public device_video_interface +class antic_device : public device_t, public device_video_interface { +private: + static constexpr unsigned VBL_END = 8; // vblank ends in this scanline + static constexpr unsigned VDATA_START = 11; // video display begins in this scanline + static constexpr unsigned VDATA_END = 244; // video display ends in this scanline + static constexpr unsigned VBL_START = 248; // vblank starts in this scanline + public: + // total number of lines per frame (incl. vblank) + static constexpr unsigned TOTAL_LINES_60HZ = 262; + static constexpr unsigned TOTAL_LINES_50HZ = 312; + + // frame rates + static constexpr double FRAME_RATE_50HZ = 1789790.0 / 114 / TOTAL_LINES_50HZ; + static constexpr double FRAME_RATE_60HZ = 1789790.0 / 114 / TOTAL_LINES_60HZ; + + static constexpr unsigned HWIDTH = 48; // total characters per line + static constexpr unsigned VHEIGHT = 32; + static constexpr unsigned MIN_X = ((HWIDTH - 42) / 2) * 8; + static constexpr unsigned MAX_X = MIN_X + (42 * 8) - 1; + static constexpr unsigned MIN_Y = VDATA_START; + static constexpr unsigned MAX_Y = VDATA_END - 8 - 1; + // construction/destruction antic_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); @@ -381,10 +59,59 @@ public: void generic_interrupt(int button_count); private: - static const device_timer_id TIMER_CYCLE_STEAL = 0; - static const device_timer_id TIMER_ISSUE_DLI = 1; - static const device_timer_id TIMER_LINE_REND = 2; - static const device_timer_id TIMER_LINE_DONE = 3; + static constexpr device_timer_id TIMER_CYCLE_STEAL = 0; + static constexpr device_timer_id TIMER_ISSUE_DLI = 1; + static constexpr device_timer_id TIMER_LINE_REND = 2; + static constexpr device_timer_id TIMER_LINE_DONE = 3; + + static constexpr unsigned HCHARS = 44; // visible characters per line + static constexpr unsigned VCHARS = (VDATA_END - VDATA_START + 7) / 8; + static constexpr unsigned BUF_OFFS0 = (HWIDTH - HCHARS) / 2; + + struct ANTIC_R { + uint8_t antic00; /* 00 nothing */ + uint8_t antic01; /* 01 nothing */ + uint8_t antic02; /* 02 nothing */ + uint8_t antic03; /* 03 nothing */ + uint8_t antic04; /* 04 nothing */ + uint8_t antic05; /* 05 nothing */ + uint8_t antic06; /* 06 nothing */ + uint8_t antic07; /* 07 nothing */ + uint8_t antic08; /* 08 nothing */ + uint8_t antic09; /* 09 nothing */ + uint8_t antic0a; /* 0a nothing */ + uint8_t vcount; /* 0b vertical (scanline) counter */ + uint8_t penh; /* 0c light pen horizontal pos */ + uint8_t penv; /* 0d light pen vertical pos */ + uint8_t antic0e; /* 0e nothing */ + uint8_t nmist; /* 0f NMI status */ + }; /* read registers */ + + struct ANTIC_W { + uint8_t dmactl; /* 00 write DMA control */ + uint8_t chactl; /* 01 write character control */ + uint8_t dlistl; /* 02 display list low */ + uint8_t dlisth; /* 03 display list high */ + uint8_t hscrol; /* 04 horz scroll */ + uint8_t vscrol; /* 05 vert scroll */ + uint8_t pmbasl; /* 06 player/missile base addr low */ + uint8_t pmbash; /* 07 player/missile base addr high */ + uint8_t chbasl; /* 08 character generator base addr low */ + uint8_t chbash; /* 09 character generator base addr high */ + uint8_t wsync; /* 0a wait for hsync */ + uint8_t antic0b; /* 0b nothing */ + uint8_t antic0c; /* 0c nothing */ + uint8_t antic0d; /* 0d nothing */ + uint8_t nmien; /* 0e NMI enable */ + uint8_t nmires; /* 0f NMI reset */ + }; /* write registers */ + + /* per scanline buffer for video data (and optimization variables) */ + struct VIDEO { + uint32_t cmd; /* antic command for this scanline */ + uint16_t data[HWIDTH]; /* graphics data buffer (text through chargen) */ + }; + const char *m_gtia_tag; gtia_device *m_gtia; @@ -480,12 +207,27 @@ private: // device type definition -extern const device_type ATARI_ANTIC; +DECLARE_DEVICE_TYPE(ATARI_ANTIC, antic_device) #define MCFG_ANTIC_GTIA(_tag) \ - antic_device::set_gtia_tag(*device, _tag); + antic_device::set_gtia_tag(*device, _tag); + +#define MCFG_SCREEN_VISIBLE_AREA_ANTIC() \ + MCFG_SCREEN_VISIBLE_AREA(antic_device::MIN_X, antic_device::MAX_X, antic_device::MIN_Y, antic_device::MAX_Y) + +#define MCFG_SCREEN_REFRESH_RATE_ANTIC_50HZ() \ + MCFG_SCREEN_REFRESH_RATE(antic_device::FRAME_RATE_50HZ) + +#define MCFG_SCREEN_REFRESH_RATE_ANTIC_60HZ() \ + MCFG_SCREEN_REFRESH_RATE(antic_device::FRAME_RATE_60HZ) + +#define MCFG_SCREEN_SIZE_ANTIC_50HZ() \ + MCFG_SCREEN_SIZE(antic_device::HWIDTH * 8, antic_device::TOTAL_LINES_50HZ) + +#define MCFG_SCREEN_SIZE_ANTIC_60HZ() \ + MCFG_SCREEN_SIZE(antic_device::HWIDTH * 8, antic_device::TOTAL_LINES_60HZ) -#endif /* __GTIA_H__ */ +#endif // MAME_VIDEO_ANTIC_H diff --git a/src/mame/video/apollo.cpp b/src/mame/video/apollo.cpp index 9f1e9f9d59b..a87c625530d 100644 --- a/src/mame/video/apollo.cpp +++ b/src/mame/video/apollo.cpp @@ -1720,17 +1720,17 @@ MACHINE_CONFIG_FRAGMENT( apollo_graphics ) MCFG_SCREEN_UPDATE_DEVICE(APOLLO_SCREEN_TAG, apollo_graphics_15i, screen_update) MACHINE_CONFIG_END -const device_type APOLLO_GRAPHICS = device_creator ; +DEFINE_DEVICE_TYPE(APOLLO_GRAPHICS, apollo_graphics_15i, "apollo_graphics_15i", "Apollo Screen") apollo_graphics_15i::apollo_graphics_15i(const machine_config &mconfig,const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, APOLLO_GRAPHICS, "Apollo Screen", tag, owner, clock,"apollo_graphics_15i", __FILE__), + device_t(mconfig, APOLLO_GRAPHICS, tag, owner, clock), m_lut_fifo(nullptr), m_bt458(nullptr) { } -apollo_graphics_15i::apollo_graphics_15i(const machine_config &mconfig,const char *tag, device_t *owner, uint32_t clock, device_type type,const char *name, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), +apollo_graphics_15i::apollo_graphics_15i(const machine_config &mconfig,const char *tag, device_t *owner, uint32_t clock, device_type type) : + device_t(mconfig, type, tag, owner, clock), m_lut_fifo(nullptr), m_bt458(nullptr) { @@ -1891,12 +1891,10 @@ MACHINE_CONFIG_FRAGMENT( apollo_mono19i ) MCFG_SCREEN_UPDATE_DEVICE(APOLLO_SCREEN_TAG, apollo_graphics_19i, screen_update) MACHINE_CONFIG_END -const device_type APOLLO_MONO19I = device_creator ; +DEFINE_DEVICE_TYPE(APOLLO_MONO19I, apollo_graphics_19i, "apollo_graphics_19i", "Apollo 19\" Monochrome Screen") -apollo_graphics_19i::apollo_graphics_19i(const machine_config &mconfig, - const char *tag, device_t *owner, uint32_t clock) : - apollo_graphics_15i(mconfig, tag, owner, clock, APOLLO_MONO19I, - "Apollo 19\" Monochrome Screen", "apollo_graphics_19i", __FILE__) +apollo_graphics_19i::apollo_graphics_19i(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + apollo_graphics_15i(mconfig, tag, owner, clock, APOLLO_MONO19I) { } diff --git a/src/mame/video/apple2.cpp b/src/mame/video/apple2.cpp index 9747cee634e..19d07343d00 100644 --- a/src/mame/video/apple2.cpp +++ b/src/mame/video/apple2.cpp @@ -668,14 +668,14 @@ uint32_t apple2_state::screen_update_apple2(screen_device &screen, bitmap_ind16 New implementation */ -const device_type APPLE2_VIDEO = device_creator; +DEFINE_DEVICE_TYPE(APPLE2_VIDEO, a2_video_device, "a2video", "Apple II video") //------------------------------------------------- // a2_video_device - constructor //------------------------------------------------- a2_video_device::a2_video_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, APPLE2_VIDEO, "Apple II video", tag, owner, clock, "a2video", __FILE__) + : device_t(mconfig, APPLE2_VIDEO, tag, owner, clock) { } diff --git a/src/mame/video/apple2.h b/src/mame/video/apple2.h index e3daa888210..b9bc4b5f44f 100644 --- a/src/mame/video/apple2.h +++ b/src/mame/video/apple2.h @@ -58,6 +58,6 @@ private: }; // device type definition -extern const device_type APPLE2_VIDEO; +DECLARE_DEVICE_TYPE(APPLE2_VIDEO, a2_video_device) #endif // MAME_VIDEO_APPLE2_H diff --git a/src/mame/video/asterix.cpp b/src/mame/video/asterix.cpp index 50726b4dd8a..77f904e3853 100644 --- a/src/mame/video/asterix.cpp +++ b/src/mame/video/asterix.cpp @@ -45,7 +45,7 @@ K056832_CB_MEMBER(asterix_state::tile_callback) uint32_t asterix_state::screen_update_asterix(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - static const int K053251_CI[4] = { K053251_CI0, K053251_CI2, K053251_CI3, K053251_CI4 }; + static const int K053251_CI[4] = { k053251_device::CI0, k053251_device::CI2, k053251_device::CI3, k053251_device::CI4 }; int layer[3], plane, new_colorbase; /* Layer offsets are different if horizontally flipped */ @@ -71,7 +71,7 @@ uint32_t asterix_state::screen_update_asterix(screen_device &screen, bitmap_ind1 m_tilebanks[3] = (m_k056832->get_lookup(3) << 10); // update color info and refresh tilemaps - m_sprite_colorbase = m_k053251->get_palette_index(K053251_CI1); + m_sprite_colorbase = m_k053251->get_palette_index(k053251_device::CI1); for (plane = 0; plane < 4; plane++) { @@ -84,11 +84,11 @@ uint32_t asterix_state::screen_update_asterix(screen_device &screen, bitmap_ind1 } layer[0] = 0; - m_layerpri[0] = m_k053251->get_priority(K053251_CI0); + m_layerpri[0] = m_k053251->get_priority(k053251_device::CI0); layer[1] = 1; - m_layerpri[1] = m_k053251->get_priority(K053251_CI2); + m_layerpri[1] = m_k053251->get_priority(k053251_device::CI2); layer[2] = 3; - m_layerpri[2] = m_k053251->get_priority(K053251_CI4); + m_layerpri[2] = m_k053251->get_priority(k053251_device::CI4); konami_sortlayers3(layer, m_layerpri); diff --git a/src/mame/video/atarimo.cpp b/src/mame/video/atarimo.cpp index e16b5499567..1100d646b82 100644 --- a/src/mame/video/atarimo.cpp +++ b/src/mame/video/atarimo.cpp @@ -118,14 +118,14 @@ inline int atari_motion_objects_device::round_to_powerof2(int value) //************************************************************************** // device type definition -const device_type ATARI_MOTION_OBJECTS = device_creator; +DEFINE_DEVICE_TYPE(ATARI_MOTION_OBJECTS, atari_motion_objects_device, "atarimo", "Atari Motion Objects") //------------------------------------------------- // atari_motion_objects_device - constructor //------------------------------------------------- atari_motion_objects_device::atari_motion_objects_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : sprite16_device_ind16(mconfig, ATARI_MOTION_OBJECTS, "Atari Motion Objects", tag, owner, "atarimo", __FILE__) + : sprite16_device_ind16(mconfig, ATARI_MOTION_OBJECTS, tag, owner) , device_video_interface(mconfig, *this) , m_tilewidth(0) , m_tileheight(0) diff --git a/src/mame/video/atarimo.h b/src/mame/video/atarimo.h index 618646fb852..0631b7a69fa 100644 --- a/src/mame/video/atarimo.h +++ b/src/mame/video/atarimo.h @@ -8,8 +8,8 @@ ***************************************************************************/ -#ifndef __ATARIMO__ -#define __ATARIMO__ +#ifndef MAME_VIDEO_ATARIMO_H +#define MAME_VIDEO_ATARIMO_H #include "video/sprite.h" @@ -73,7 +73,7 @@ struct atari_motion_objects_config // ======================> atari_motion_objects_device // device type definition -extern const device_type ATARI_MOTION_OBJECTS; +DECLARE_DEVICE_TYPE(ATARI_MOTION_OBJECTS, atari_motion_objects_device) class atari_motion_objects_device : public sprite16_device_ind16, public device_video_interface, @@ -225,4 +225,4 @@ private: }; -#endif +#endif // MAME_VIDEO_ATARIMO_H diff --git a/src/mame/video/atarirle.cpp b/src/mame/video/atarirle.cpp index d3e41edff56..c006f2ad814 100644 --- a/src/mame/video/atarirle.cpp +++ b/src/mame/video/atarirle.cpp @@ -29,7 +29,7 @@ // CONSTANTS //************************************************************************** -const device_type ATARI_RLE_OBJECTS = device_creator; +DEFINE_DEVICE_TYPE(ATARI_RLE_OBJECTS, atari_rle_objects_device, "atari_rle", "Atari RLE Motion Objects") enum { atarirle_hilite_index = -1 }; @@ -68,7 +68,7 @@ inline int atari_rle_objects_device::round_to_powerof2(int value) //------------------------------------------------- atari_rle_objects_device::atari_rle_objects_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, ATARI_RLE_OBJECTS, "Atari RLE Motion Objects", tag, owner, clock, "atari_rle", __FILE__), + : device_t(mconfig, ATARI_RLE_OBJECTS, tag, owner, clock), device_video_interface(mconfig, *this), m_rombase(*this, DEVICE_SELF) { diff --git a/src/mame/video/atarirle.h b/src/mame/video/atarirle.h index ce59c841862..3bd70986705 100644 --- a/src/mame/video/atarirle.h +++ b/src/mame/video/atarirle.h @@ -9,8 +9,8 @@ ***************************************************************************/ -#ifndef __ATARIRLE__ -#define __ATARIRLE__ +#ifndef MAME_VIDEO_ATARIRLE_H +#define MAME_VIDEO_ATARIRLE_H //************************************************************************** @@ -70,7 +70,7 @@ struct atari_rle_objects_config // ======================> atari_rle_objects_device // device type definition -extern const device_type ATARI_RLE_OBJECTS; +DECLARE_DEVICE_TYPE(ATARI_RLE_OBJECTS, atari_rle_objects_device) class atari_rle_objects_device : public device_t, public device_video_interface, @@ -179,6 +179,4 @@ private: uint16_t m_rle_table_data[0x500]; }; - - -#endif +#endif // MAME_VIDEO_ATARIRLE_H diff --git a/src/mame/video/avgdvg.cpp b/src/mame/video/avgdvg.cpp index 99ef35ae8a5..0786b1d61ff 100644 --- a/src/mame/video/avgdvg.cpp +++ b/src/mame/video/avgdvg.cpp @@ -233,7 +233,7 @@ void dvg_device::dvg_draw_to(int x, int y, int intensity) if (((x | y) & 0x400) == 0) vg_add_point_buf((xmin + x - 512) << 16, (ymin + 512 - y) << 16, - VECTOR_COLOR111(7), intensity << 4); + vector_device::color111(7), intensity << 4); } int dvg_device::handler_2() //dvg_gostrobe @@ -674,7 +674,7 @@ int avg_device::handler_7() // avg_strobe3 if ((m_op & 5) == 0) { - vg_add_point_buf(m_xpos, m_ypos, VECTOR_COLOR111(m_color), + vg_add_point_buf(m_xpos, m_ypos, vector_device::color111(m_color), (((m_int_latch >> 1) == 1)? m_intensity: m_int_latch & 0xe) << 4); } @@ -947,7 +947,7 @@ int avg_starwars_device::handler_7() // starwars_strobe3 if ((m_op & 5) == 0) { - vg_add_point_buf(m_xpos, m_ypos, VECTOR_COLOR111(m_color), + vg_add_point_buf(m_xpos, m_ypos, vector_device::color111(m_color), ((m_int_latch >> 1) * m_intensity) >> 3); } @@ -1187,7 +1187,7 @@ int avg_bzone_device::handler_7() // bzone_strobe3 if ((m_op & 5) == 0) { - vg_add_point_buf(m_xpos, m_ypos, VECTOR_COLOR111(7), + vg_add_point_buf(m_xpos, m_ypos, vector_device::color111(7), (((m_int_latch >> 1) == 1)? m_intensity: m_int_latch & 0xe) << 4); } @@ -1219,7 +1219,7 @@ int avg_tomcat_device::handler_7() // starwars_strobe3 if ((m_op & 5) == 0) { - vg_add_point_buf(m_xpos, m_ypos, VECTOR_COLOR111(m_color), + vg_add_point_buf(m_xpos, m_ypos, vector_device::color111(m_color), ((m_int_latch >> 1) * m_intensity) >> 3); } @@ -1467,8 +1467,8 @@ void avgdvg_device::static_set_vector_tag(device_t &device, const char *tag) downcast(device).m_vector.set_tag(tag); } -avgdvg_device::avgdvg_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source) +avgdvg_device::avgdvg_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) , m_vector(*this, finder_base::DUMMY_TAG) { m_pc = 0; @@ -1524,55 +1524,55 @@ avgdvg_device::avgdvg_device(const machine_config &mconfig, device_type type, co } dvg_device::dvg_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - avgdvg_device(mconfig, DVG, "Atari DVG", tag, owner, clock, "dvg", __FILE__) + avgdvg_device(mconfig, DVG, tag, owner, clock) { } avg_device::avg_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - avgdvg_device(mconfig, AVG, "Atari AVG", tag, owner, clock, "avg", __FILE__) + avg_device(mconfig, AVG, tag, owner, clock) { } -avg_device::avg_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - avgdvg_device(mconfig, type, name, tag, owner, clock, shortname, source) +avg_device::avg_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + avgdvg_device(mconfig, type, tag, owner, clock) { } avg_tempest_device::avg_tempest_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - avg_device(mconfig, AVG_TEMPEST, "Atari AVG (Tempest)", tag, owner, clock, "avg_tempest", __FILE__) + avg_device(mconfig, AVG_TEMPEST, tag, owner, clock) { } avg_mhavoc_device::avg_mhavoc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - avg_device(mconfig, AVG_MHAVOC, "Atari AVG (Major Havoc)", tag, owner, clock, "avg_mhavoc", __FILE__) + avg_device(mconfig, AVG_MHAVOC, tag, owner, clock) { } avg_starwars_device::avg_starwars_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - avg_device(mconfig, AVG_STARWARS, "Atari AVG (Star Wars)", tag, owner, clock, "avg_starwars", __FILE__) + avg_device(mconfig, AVG_STARWARS, tag, owner, clock) { } avg_quantum_device::avg_quantum_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - avg_device(mconfig, AVG_QUANTUM, "Atari AVG (Quantum)", tag, owner, clock, "avg_quantum", __FILE__) + avg_device(mconfig, AVG_QUANTUM, tag, owner, clock) { } avg_bzone_device::avg_bzone_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - avg_device(mconfig, AVG_BZONE, "Atari AVG (Battle Zone)", tag, owner, clock, "avg_bzone", __FILE__) + avg_device(mconfig, AVG_BZONE, tag, owner, clock) { } avg_tomcat_device::avg_tomcat_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - avg_device(mconfig, AVG_TOMCAT, "Atari AVG (TomCat)", tag, owner, clock, "avg_tomcat", __FILE__) + avg_device(mconfig, AVG_TOMCAT, tag, owner, clock) { } -const device_type DVG = device_creator; -const device_type AVG = device_creator; -const device_type AVG_TEMPEST = device_creator; -const device_type AVG_MHAVOC = device_creator; -const device_type AVG_STARWARS = device_creator; -const device_type AVG_QUANTUM = device_creator; -const device_type AVG_BZONE = device_creator; -const device_type AVG_TOMCAT = device_creator; +DEFINE_DEVICE_TYPE(DVG, dvg_device, "dvg", "Atari DVG") +DEFINE_DEVICE_TYPE(AVG, avg_device, "avg", "Atari AVG") +DEFINE_DEVICE_TYPE(AVG_TEMPEST, avg_tempest_device, "avg_tempest", "Atari AVG (Tempest)") +DEFINE_DEVICE_TYPE(AVG_MHAVOC, avg_mhavoc_device, "avg_mhavoc", "Atari AVG (Major Havoc)") +DEFINE_DEVICE_TYPE(AVG_STARWARS, avg_starwars_device, "avg_starwars", "Atari AVG (Star Wars)") +DEFINE_DEVICE_TYPE(AVG_QUANTUM, avg_quantum_device, "avg_quantum", "Atari AVG (Quantum)") +DEFINE_DEVICE_TYPE(AVG_BZONE, avg_bzone_device, "avg_bzone", "Atari AVG (Battle Zone)") +DEFINE_DEVICE_TYPE(AVG_TOMCAT, avg_tomcat_device, "avg_tomcat", "Atari AVG (TomCat)") diff --git a/src/mame/video/avgdvg.h b/src/mame/video/avgdvg.h index 157c8c69fd4..113d7633032 100644 --- a/src/mame/video/avgdvg.h +++ b/src/mame/video/avgdvg.h @@ -1,33 +1,21 @@ // license:BSD-3-Clause // copyright-holders:Mathis Rosenhauer // thanks-to:Eric Smith, Brad Oliver, Bernd Wiebelt, Aaron Giles, Andrew Caldwell -#ifndef __AVGDVG__ -#define __AVGDVG__ +#ifndef MAME_VIDEO_AVGDVG_H +#define MAME_VIDEO_AVGDVG_H -#define MAXVECT (10000) +#pragma once #include "video/vector.h" #define MCFG_AVGDVG_VECTOR(_tag) \ avgdvg_device::static_set_vector_tag(*device, "^" _tag); -struct vgvector -{ - int x; int y; - rgb_t color; - int intensity; - int arg1; int arg2; - int status; -}; - // ======================> avgdvg_device class avgdvg_device : public device_t { public: - // construction/destruction - avgdvg_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - static void static_set_vector_tag(device_t &device, const char *tag); DECLARE_CUSTOM_INPUT_MEMBER(done_r); @@ -44,6 +32,20 @@ public: TIMER_CALLBACK_MEMBER(vg_set_halt_callback); TIMER_CALLBACK_MEMBER(run_state_machine); protected: + static constexpr unsigned MAXVECT = 10000; + + struct vgvector + { + int x; int y; + rgb_t color; + int intensity; + int arg1; int arg2; + int status; + }; + + // construction/destruction + avgdvg_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + void apply_flipping(int *x, int *y); void vg_set_halt(int dummy); @@ -132,6 +134,7 @@ public: void dvg_draw_to(int x, int y, int intensity); +protected: virtual int handler_0() override; virtual int handler_1() override; virtual int handler_2() override; @@ -149,19 +152,21 @@ public: }; // device type definition -extern const device_type DVG; +DECLARE_DEVICE_TYPE(DVG, dvg_device) class avg_device : public avgdvg_device { public: // construction/destruction avg_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - avg_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); int avg_common_strobe1(); int avg_common_strobe2(); int avg_common_strobe3(); +protected: + avg_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual int handler_0() override; virtual int handler_1() override; virtual int handler_2() override; @@ -179,7 +184,7 @@ public: }; // device type definition -extern const device_type AVG; +DECLARE_DEVICE_TYPE(AVG, avg_device) class avg_tempest_device : public avg_device { @@ -187,13 +192,14 @@ public: // construction/destruction avg_tempest_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); +protected: virtual int handler_6() override; virtual int handler_7() override; //virtual void vggo(); }; // device type definition -extern const device_type AVG_TEMPEST; +DECLARE_DEVICE_TYPE(AVG_TEMPEST, avg_tempest_device) class avg_mhavoc_device : public avg_device { @@ -201,6 +207,7 @@ public: // construction/destruction avg_mhavoc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); +protected: virtual int handler_1() override; virtual int handler_6() override; virtual int handler_7() override; @@ -209,26 +216,30 @@ public: }; // device type definition -extern const device_type AVG_MHAVOC; +DECLARE_DEVICE_TYPE(AVG_MHAVOC, avg_mhavoc_device) class avg_starwars_device : public avg_device { public: // construction/destruction avg_starwars_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + +protected: virtual int handler_6() override; virtual int handler_7() override; virtual void update_databus() override; }; // device type definition -extern const device_type AVG_STARWARS; +DECLARE_DEVICE_TYPE(AVG_STARWARS, avg_starwars_device) class avg_quantum_device : public avg_device { public: // construction/destruction avg_quantum_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + +protected: virtual int handler_0() override; virtual int handler_1() override; virtual int handler_2() override; @@ -242,20 +253,22 @@ public: }; // device type definition -extern const device_type AVG_QUANTUM; +DECLARE_DEVICE_TYPE(AVG_QUANTUM, avg_quantum_device) class avg_bzone_device : public avg_device { public: // construction/destruction avg_bzone_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + +protected: virtual int handler_1() override; virtual int handler_6() override; virtual int handler_7() override; }; // device type definition -extern const device_type AVG_BZONE; +DECLARE_DEVICE_TYPE(AVG_BZONE, avg_bzone_device) class avg_tomcat_device : public avg_device { @@ -263,12 +276,13 @@ public: // construction/destruction avg_tomcat_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); +protected: virtual int handler_6() override; virtual int handler_7() override; }; // device type definition -extern const device_type AVG_TOMCAT; +DECLARE_DEVICE_TYPE(AVG_TOMCAT, avg_tomcat_device) -#endif +#endif // MAME_VIDEO_AVGDVG_H diff --git a/src/mame/video/aztarac.cpp b/src/mame/video/aztarac.cpp index 95a6899f241..f6c1558d71a 100644 --- a/src/mame/video/aztarac.cpp +++ b/src/mame/video/aztarac.cpp @@ -52,7 +52,7 @@ WRITE16_MEMBER(aztarac_state::ubr_w) { /* latch color only once */ intensity = (c >> 8); - color = VECTOR_COLOR222(c & 0x3f); + color = vector_device::color222(c & 0x3f); while (ndefs--) { defaddr++; @@ -70,7 +70,7 @@ WRITE16_MEMBER(aztarac_state::ubr_w) { defaddr++; read_vectorram(m_vectorram, defaddr, &x, &y, &c); - color = VECTOR_COLOR222(c & 0x3f); + color = vector_device::color222(c & 0x3f); AVECTOR (x + xoffset, y + yoffset, color, c >> 8); } } diff --git a/src/mame/video/bfm_adr2.cpp b/src/mame/video/bfm_adr2.cpp index ca941ef9781..092aadd0c18 100644 --- a/src/mame/video/bfm_adr2.cpp +++ b/src/mame/video/bfm_adr2.cpp @@ -137,12 +137,12 @@ static GFXDECODE_START( adder2 ) GFXDECODE_ENTRY( ":gfx1", 0, charlayout, 0, 16 ) GFXDECODE_END -const device_type BFM_ADDER2 = device_creator; +DEFINE_DEVICE_TYPE(BFM_ADDER2, bfm_adder2_device, "bfm_adder2", "BFM ADDER2") bfm_adder2_device::bfm_adder2_device( const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock ) - : device_t(mconfig, BFM_ADDER2, "BFM ADDER2", tag, owner, clock, "bfm_adder2", __FILE__), - device_gfx_interface(mconfig, *this, GFXDECODE_NAME(adder2), "palette"), - m_cpu(*this, "adder2") + : device_t(mconfig, BFM_ADDER2, tag, owner, clock) + , device_gfx_interface(mconfig, *this, GFXDECODE_NAME(adder2), "palette") + , m_cpu(*this, "adder2") { } diff --git a/src/mame/video/bfm_adr2.h b/src/mame/video/bfm_adr2.h index c459231b241..02f95e69772 100644 --- a/src/mame/video/bfm_adr2.h +++ b/src/mame/video/bfm_adr2.h @@ -1,7 +1,10 @@ // license:BSD-3-Clause // copyright-holders:David Haywood -#ifndef INC_BFMADDER2 -#define INC_BFMADDER2 +#ifndef MAME_INCLUDES_BFM_ADR2_H +#define MAME_INCLUDES_BFM_ADR2_H + +#pragma once + class bfm_adder2_device : public device_t, public device_gfx_interface { @@ -64,7 +67,7 @@ private: }; // device type definition -extern const device_type BFM_ADDER2; +DECLARE_DEVICE_TYPE(BFM_ADDER2, bfm_adder2_device) //************************************************************************** @@ -74,4 +77,4 @@ extern const device_type BFM_ADDER2; #define MCFG_BFM_ADDER2_ADD(_tag) \ MCFG_DEVICE_ADD(_tag, BFM_ADDER2, 0) -#endif +#endif // MAME_INCLUDES_BFM_ADR2_H diff --git a/src/mame/video/bfm_dm01.cpp b/src/mame/video/bfm_dm01.cpp index 3077451f046..c82a3b59cb1 100644 --- a/src/mame/video/bfm_dm01.cpp +++ b/src/mame/video/bfm_dm01.cpp @@ -51,11 +51,11 @@ Standard dm01 memorymap #define LOG(x) do { if (VERBOSE) logerror x; } while (0) -const device_type BF_DM01 = device_creator; +DEFINE_DEVICE_TYPE(BFM_DM01, bfm_dm01_device, "bfm_dm01", "BFM Dotmatrix 01") -bfmdm01_device::bfmdm01_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, BF_DM01, "BFM Dotmatrix 01", tag, owner, clock, "bfm_dm01", __FILE__), +bfm_dm01_device::bfm_dm01_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, BFM_DM01, tag, owner, clock), m_matrixcpu(*this, "matrix"), m_screen(*this, "dmd"), m_palette(*this, "palette_lcd"), @@ -77,7 +77,7 @@ bfmdm01_device::bfmdm01_device(const machine_config &mconfig, const char *tag, d // device_start - device-specific startup //------------------------------------------------- -void bfmdm01_device::device_start() +void bfm_dm01_device::device_start() { if(!m_screen->started()) throw device_missing_dependencies(); @@ -96,7 +96,7 @@ void bfmdm01_device::device_start() for (int i = 0; i < 65; i++) save_item(NAME(m_segbuffer), i); - for (int i = 0; i < DM_BYTESPERROW; i++) + for (int i = 0; i < BYTES_PER_ROW; i++) save_item(NAME(m_scanline), i); m_screen->register_screen_bitmap(m_tmpbitmap); @@ -111,7 +111,7 @@ void bfmdm01_device::device_start() // device_reset - device-specific reset //------------------------------------------------- -void bfmdm01_device::device_reset() +void bfm_dm01_device::device_reset() { m_busy = 0; m_control = 0; @@ -123,7 +123,7 @@ void bfmdm01_device::device_reset() /////////////////////////////////////////////////////////////////////////// -int bfmdm01_device::read_data(void) +int bfm_dm01_device::read_data(void) { int data = m_comdata; @@ -134,14 +134,14 @@ int bfmdm01_device::read_data(void) /////////////////////////////////////////////////////////////////////////// -READ8_MEMBER( bfmdm01_device::control_r ) +READ8_MEMBER( bfm_dm01_device::control_r ) { return 0; } /////////////////////////////////////////////////////////////////////////// -WRITE8_MEMBER( bfmdm01_device::control_w ) +WRITE8_MEMBER( bfm_dm01_device::control_w ) { int changed = m_control ^ data; @@ -168,18 +168,18 @@ WRITE8_MEMBER( bfmdm01_device::control_w ) /////////////////////////////////////////////////////////////////////////// -READ8_MEMBER( bfmdm01_device::mux_r ) +READ8_MEMBER( bfm_dm01_device::mux_r ) { return 0; } /////////////////////////////////////////////////////////////////////////// -WRITE8_MEMBER( bfmdm01_device::mux_w ) +WRITE8_MEMBER( bfm_dm01_device::mux_w ) { g_profiler.start(PROFILER_USER2); - if ( m_xcounter < DM_BYTESPERROW ) + if ( m_xcounter < BYTES_PER_ROW ) { m_scanline[m_xcounter] = data; m_xcounter++; @@ -192,7 +192,7 @@ WRITE8_MEMBER( bfmdm01_device::mux_w ) { int p = 0; - while ( p < (DM_BYTESPERROW) ) + while ( p < (BYTES_PER_ROW) ) { uint8_t d = m_scanline[p]; @@ -224,7 +224,7 @@ WRITE8_MEMBER( bfmdm01_device::mux_w ) /////////////////////////////////////////////////////////////////////////// -READ8_MEMBER( bfmdm01_device::comm_r ) +READ8_MEMBER( bfm_dm01_device::comm_r ) { int result = 0; @@ -245,26 +245,26 @@ READ8_MEMBER( bfmdm01_device::comm_r ) /////////////////////////////////////////////////////////////////////////// -WRITE8_MEMBER( bfmdm01_device::comm_w ) +WRITE8_MEMBER( bfm_dm01_device::comm_w ) { } /////////////////////////////////////////////////////////////////////////// -READ8_MEMBER( bfmdm01_device::unknown_r ) +READ8_MEMBER( bfm_dm01_device::unknown_r ) { return 0; } /////////////////////////////////////////////////////////////////////////// -WRITE8_MEMBER( bfmdm01_device::unknown_w ) +WRITE8_MEMBER( bfm_dm01_device::unknown_w ) { m_matrixcpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE ); //? } /////////////////////////////////////////////////////////////////////////// -ADDRESS_MAP_START( bfm_dm01_memmap, AS_PROGRAM, 8, bfmdm01_device ) +ADDRESS_MAP_START( bfm_dm01_memmap, AS_PROGRAM, 8, bfm_dm01_device ) AM_RANGE(0x0000, 0x1fff) AM_RAM // 8k RAM AM_RANGE(0x2000, 0x2000) AM_READWRITE(control_r, control_w) // control reg AM_RANGE(0x2800, 0x2800) AM_READWRITE(mux_r, mux_w) // mux @@ -274,7 +274,7 @@ ADDRESS_MAP_START( bfm_dm01_memmap, AS_PROGRAM, 8, bfmdm01_device ) ADDRESS_MAP_END -uint32_t bfmdm01_device::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) +uint32_t bfm_dm01_device::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { copybitmap(bitmap, m_tmpbitmap, 0, 0, 0, 0, cliprect); return 0; @@ -282,7 +282,7 @@ uint32_t bfmdm01_device::screen_update(screen_device &screen, bitmap_ind16 &bitm -INTERRUPT_GEN_MEMBER( bfmdm01_device::nmi_line_assert ) +INTERRUPT_GEN_MEMBER( bfm_dm01_device::nmi_line_assert ) { m_matrixcpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE); } @@ -290,7 +290,7 @@ INTERRUPT_GEN_MEMBER( bfmdm01_device::nmi_line_assert ) static MACHINE_CONFIG_FRAGMENT( bdmdm01 ) MCFG_CPU_ADD("matrix", M6809, 2000000 ) /* matrix board 6809 CPU at 2 Mhz ?? I don't know the exact freq.*/ MCFG_CPU_PROGRAM_MAP(bfm_dm01_memmap) - MCFG_CPU_PERIODIC_INT_DRIVER(bfmdm01_device, nmi_line_assert, 1500 ) /* generate 1500 NMI's per second ?? what is the exact freq?? */ + MCFG_CPU_PERIODIC_INT_DRIVER(bfm_dm01_device, nmi_line_assert, 1500 ) /* generate 1500 NMI's per second ?? what is the exact freq?? */ MCFG_PALETTE_ADD("palette_lcd", 3) @@ -299,12 +299,12 @@ static MACHINE_CONFIG_FRAGMENT( bdmdm01 ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(65*2, 21*2) MCFG_SCREEN_VISIBLE_AREA(0, 65*2-1, 0, 21*2-1) - MCFG_SCREEN_UPDATE_DRIVER(bfmdm01_device, screen_update) + MCFG_SCREEN_UPDATE_DRIVER(bfm_dm01_device, screen_update) MCFG_SCREEN_PALETTE("palette_lcd") MACHINE_CONFIG_END -machine_config_constructor bfmdm01_device::device_mconfig_additions() const +machine_config_constructor bfm_dm01_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( bdmdm01 ); } @@ -312,7 +312,7 @@ machine_config_constructor bfmdm01_device::device_mconfig_additions() const /////////////////////////////////////////////////////////////////////////// -void bfmdm01_device::writedata(uint8_t data) +void bfm_dm01_device::writedata(uint8_t data) { m_comdata = data; m_data_avail = 1; @@ -322,7 +322,7 @@ void bfmdm01_device::writedata(uint8_t data) } /////////////////////////////////////////////////////////////////////////// -int bfmdm01_device::busy(void) +int bfm_dm01_device::busy(void) { return m_data_avail; } diff --git a/src/mame/video/bfm_dm01.h b/src/mame/video/bfm_dm01.h index 47755cd2582..458d0f2e9d0 100644 --- a/src/mame/video/bfm_dm01.h +++ b/src/mame/video/bfm_dm01.h @@ -5,23 +5,23 @@ Bellfruit dotmatrix driver, (under heavy construction !!!) *************************************************************************************/ -#include "screen.h" +#ifndef MAME_VIDEO_BFM_DM01 +#define MAME_VIDEO_BFM_DM01 -#ifndef BFM_DM01 -#define BFM_DM01 +#pragma once -#define DM_BYTESPERROW 9 +#include "screen.h" -#define MCFG_BF_DM01_BUSY_CB(_devcb) \ - devcb = &bfmdm01_device::set_busy_callback(*device, DEVCB_##_devcb); +#define MCFG_BFM_DM01_BUSY_CB(_devcb) \ + devcb = &bfm_dm01_device::set_busy_callback(*device, DEVCB_##_devcb); -class bfmdm01_device : public device_t +class bfm_dm01_device : public device_t { public: - bfmdm01_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~bfmdm01_device() {} + bfm_dm01_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + ~bfm_dm01_device() {} - template static devcb_base &set_busy_callback(device_t &device, _Object object) { return downcast(device).m_busy_cb.set_callback(object); } + template static devcb_base &set_busy_callback(device_t &device, Object &&cb) { return downcast(device).m_busy_cb.set_callback(std::forward(cb)); } DECLARE_READ8_MEMBER( control_r ); DECLARE_WRITE8_MEMBER( control_w ); @@ -46,6 +46,8 @@ protected: virtual void device_reset() override; private: + static constexpr unsigned BYTES_PER_ROW = 9; + required_device m_matrixcpu; required_device m_screen; required_device m_palette; @@ -57,7 +59,7 @@ private: int m_segbuffer[65]; int m_busy; - uint8_t m_scanline[DM_BYTESPERROW]; + uint8_t m_scanline[BYTES_PER_ROW]; uint8_t m_comdata; devcb_write_line m_busy_cb; @@ -68,7 +70,6 @@ private: }; -extern const device_type BF_DM01; - +DECLARE_DEVICE_TYPE(BFM_DM01, bfm_dm01_device) -#endif +#endif // MAME_VIDEO_BFM_DM01 diff --git a/src/mame/video/c45.cpp b/src/mame/video/c45.cpp index 960c1fc23c0..b2c72aacc8b 100644 --- a/src/mame/video/c45.cpp +++ b/src/mame/video/c45.cpp @@ -45,7 +45,7 @@ //**************************************************************************** // device type definition -const device_type NAMCO_C45_ROAD = device_creator; +DEFINE_DEVICE_TYPE(NAMCO_C45_ROAD, namco_c45_road_device, "namco_c45_road", "Namco C45 Road") const gfx_layout namco_c45_road_device::tilelayout = @@ -77,7 +77,7 @@ ADDRESS_MAP_END //------------------------------------------------- namco_c45_road_device::namco_c45_road_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, NAMCO_C45_ROAD, "Namco C45 Road", tag, owner, clock, "namco_c45_road", __FILE__), + : device_t(mconfig, NAMCO_C45_ROAD, tag, owner, clock), device_gfx_interface(mconfig, *this, gfxinfo), device_memory_interface(mconfig, *this), m_space_config("c45", ENDIANNESS_BIG, 16, 17, 0, address_map_delegate(FUNC(namco_c45_road_device::map), this)), diff --git a/src/mame/video/c45.h b/src/mame/video/c45.h index 621308e493a..bc9172d1b5e 100644 --- a/src/mame/video/c45.h +++ b/src/mame/video/c45.h @@ -1,9 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Phil Stroffolino, Aaron Giles, Alex W. Jackson -#pragma once +#ifndef MAME_VIDEO_C45_H +#define MAME_VIDEO_C45_H -#ifndef __C45_H__ -#define __C45_H__ +#pragma once //************************************************************************** @@ -23,15 +23,6 @@ class namco_c45_road_device : public device_t, public device_gfx_interface, public device_memory_interface { - // constants - static const int ROAD_COLS = 64; - static const int ROAD_ROWS = 512; - static const int ROAD_TILE_SIZE = 16; - static const int ROAD_TILEMAP_WIDTH = ROAD_TILE_SIZE * ROAD_COLS; - static const int ROAD_TILEMAP_HEIGHT = ROAD_TILE_SIZE * ROAD_ROWS; - static const int WORDS_PER_ROAD_TILE = 0x40/2; - static const gfx_layout tilelayout; - public: // construction/destruction namco_c45_road_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); @@ -52,6 +43,15 @@ protected: virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_0) const override; private: + // constants + static constexpr int ROAD_COLS = 64; + static constexpr int ROAD_ROWS = 512; + static constexpr int ROAD_TILE_SIZE = 16; + static constexpr int ROAD_TILEMAP_WIDTH = ROAD_TILE_SIZE * ROAD_COLS; + static constexpr int ROAD_TILEMAP_HEIGHT = ROAD_TILE_SIZE * ROAD_ROWS; + static constexpr int WORDS_PER_ROAD_TILE = 0x40/2; + static const gfx_layout tilelayout; + // internal helpers DECLARE_GFXDECODE_MEMBER(gfxinfo); DECLARE_WRITE16_MEMBER( tilemap_w ); @@ -70,6 +70,6 @@ private: // device type definition -extern const device_type NAMCO_C45_ROAD; +DECLARE_DEVICE_TYPE(NAMCO_C45_ROAD, namco_c45_road_device) -#endif +#endif // MAME_VIDEO_C45_H diff --git a/src/mame/video/capbowl.cpp b/src/mame/video/capbowl.cpp index fc5d0a625f6..66b3a599676 100644 --- a/src/mame/video/capbowl.cpp +++ b/src/mame/video/capbowl.cpp @@ -117,7 +117,7 @@ READ8_MEMBER(capbowl_state::bowlrama_blitter_r) * *************************************/ -inline rgb_t capbowl_state::pen_for_pixel( uint8_t *src, uint8_t pix ) +inline rgb_t capbowl_state::pen_for_pixel( uint8_t const *src, uint8_t pix ) { return rgb_t(pal4bit(src[(pix << 1) + 0] >> 0), pal4bit(src[(pix << 1) + 1] >> 4), @@ -131,7 +131,7 @@ uint32_t capbowl_state::screen_update(screen_device &screen, bitmap_rgb32 &bitma m_tms34061->get_display_state(); /* if we're blanked, just fill with black */ - if (m_tms34061->m_display.blanked) + if (m_tms34061->blanked()) { bitmap.fill(rgb_t::black(), cliprect); return 0; @@ -140,7 +140,7 @@ uint32_t capbowl_state::screen_update(screen_device &screen, bitmap_rgb32 &bitma /* now regenerate the bitmap */ for (int y = cliprect.min_y; y <= cliprect.max_y; y++) { - uint8_t *src = &m_tms34061->m_display.vram[256 * y]; + uint8_t const *src = &m_tms34061->vram(y); uint32_t *dest = &bitmap.pix32(y); for (int x = cliprect.min_x & ~1; x <= cliprect.max_x; x += 2) diff --git a/src/mame/video/cchasm.cpp b/src/mame/video/cchasm.cpp index e97437241ef..9aa48af8bca 100644 --- a/src/mame/video/cchasm.cpp +++ b/src/mame/video/cchasm.cpp @@ -65,7 +65,7 @@ void cchasm_state::refresh () logerror("JUMP to %x\n", data); break; case COLOR: - color = VECTOR_COLOR444(data ^ 0xfff); + color = vector_device::color444(data ^ 0xfff); break; case SCALEY: scaley = data << 5; diff --git a/src/mame/video/cinemat.cpp b/src/mame/video/cinemat.cpp index 09e5d235b2a..fb90344d2ea 100644 --- a/src/mame/video/cinemat.cpp +++ b/src/mame/video/cinemat.cpp @@ -86,7 +86,7 @@ WRITE8_MEMBER(cinemat_state::cinemat_vector_control_w) /* X register as the intensity */ if (data != m_last_control && data) { - int xval = cpu->state_int(CCPU_X) & 0x0f; + int xval = cpu->state_int(ccpu_cpu_device::CCPU_X) & 0x0f; i = (xval + 1) * 255 / 16; m_vector_color = rgb_t(i,i,i); } @@ -97,7 +97,7 @@ WRITE8_MEMBER(cinemat_state::cinemat_vector_control_w) /* X register as the intensity */ if (data != m_last_control && data) { - int xval = cpu->state_int(CCPU_X); + int xval = cpu->state_int(ccpu_cpu_device::CCPU_X); xval = (~xval >> 2) & 0x3f; i = (xval + 1) * 255 / 64; m_vector_color = rgb_t(i,i,i); @@ -109,7 +109,7 @@ WRITE8_MEMBER(cinemat_state::cinemat_vector_control_w) /* as 4-4-4 BGR values */ if (data != m_last_control && data) { - int xval = cpu->state_int(CCPU_X); + int xval = cpu->state_int(ccpu_cpu_device::CCPU_X); r = (~xval >> 0) & 0x0f; r = r * 255 / 15; g = (~xval >> 4) & 0x0f; @@ -128,15 +128,15 @@ WRITE8_MEMBER(cinemat_state::cinemat_vector_control_w) /* on an IV instruction if data == 0 here */ if (data != m_last_control && !data) { - m_qb3_lastx = cpu->state_int(CCPU_X); - m_qb3_lasty = cpu->state_int(CCPU_Y); + m_qb3_lastx = cpu->state_int(ccpu_cpu_device::CCPU_X); + m_qb3_lasty = cpu->state_int(ccpu_cpu_device::CCPU_Y); } /* on the rising edge of the data value, latch the Y register */ /* as 2-3-3 BGR values */ if (data != m_last_control && data) { - int yval = cpu->state_int(CCPU_Y); + int yval = cpu->state_int(ccpu_cpu_device::CCPU_Y); r = (~yval >> 0) & 0x07; r = r * 255 / 7; g = (~yval >> 3) & 0x07; @@ -146,8 +146,8 @@ WRITE8_MEMBER(cinemat_state::cinemat_vector_control_w) m_vector_color = rgb_t(r,g,b); /* restore the original X,Y values */ - cpu->set_state_int(CCPU_X, m_qb3_lastx); - cpu->set_state_int(CCPU_Y, m_qb3_lasty); + cpu->set_state_int(ccpu_cpu_device::CCPU_X, m_qb3_lastx); + cpu->set_state_int(ccpu_cpu_device::CCPU_Y, m_qb3_lasty); } } break; diff --git a/src/mame/video/comx35.cpp b/src/mame/video/comx35.cpp index 32da4703c94..013809140f5 100644 --- a/src/mame/video/comx35.cpp +++ b/src/mame/video/comx35.cpp @@ -89,13 +89,13 @@ void comx35_state::video_start() /* Machine Drivers */ MACHINE_CONFIG_FRAGMENT( comx35_pal_video ) - MCFG_CDP1869_SCREEN_PAL_ADD(CDP1869_TAG, SCREEN_TAG, CDP1869_DOT_CLK_PAL) + MCFG_CDP1869_SCREEN_PAL_ADD(CDP1869_TAG, SCREEN_TAG, cdp1869_device::DOT_CLK_PAL) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_CDP1869_ADD(CDP1869_TAG, CDP1869_DOT_CLK_PAL, cdp1869_page_ram) - MCFG_CDP1869_COLOR_CLOCK(CDP1869_COLOR_CLK_PAL) + MCFG_CDP1869_ADD(CDP1869_TAG, cdp1869_device::DOT_CLK_PAL, cdp1869_page_ram) + MCFG_CDP1869_COLOR_CLOCK(cdp1869_device::COLOR_CLK_PAL) MCFG_CDP1869_CHAR_PCB_READ_OWNER(comx35_state, comx35_pcb_r) MCFG_CDP1869_CHAR_RAM_READ_OWNER(comx35_state, comx35_charram_r) MCFG_CDP1869_CHAR_RAM_WRITE_OWNER(comx35_state, comx35_charram_w) @@ -109,13 +109,13 @@ MACHINE_CONFIG_FRAGMENT( comx35_pal_video ) MACHINE_CONFIG_END MACHINE_CONFIG_FRAGMENT( comx35_ntsc_video ) - MCFG_CDP1869_SCREEN_NTSC_ADD(CDP1869_TAG, SCREEN_TAG, CDP1869_DOT_CLK_NTSC) + MCFG_CDP1869_SCREEN_NTSC_ADD(CDP1869_TAG, SCREEN_TAG, cdp1869_device::DOT_CLK_NTSC) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_CDP1869_ADD(CDP1869_TAG, CDP1869_DOT_CLK_NTSC, cdp1869_page_ram) - MCFG_CDP1869_COLOR_CLOCK(CDP1869_COLOR_CLK_NTSC) + MCFG_CDP1869_ADD(CDP1869_TAG, cdp1869_device::DOT_CLK_NTSC, cdp1869_page_ram) + MCFG_CDP1869_COLOR_CLOCK(cdp1869_device::COLOR_CLK_NTSC) MCFG_CDP1869_CHAR_PCB_READ_OWNER(comx35_state, comx35_pcb_r) MCFG_CDP1869_CHAR_RAM_READ_OWNER(comx35_state, comx35_charram_r) MCFG_CDP1869_CHAR_RAM_WRITE_OWNER(comx35_state, comx35_charram_w) diff --git a/src/mame/video/crt.cpp b/src/mame/video/crt.cpp index a29fce66706..c4a13af52a0 100644 --- a/src/mame/video/crt.cpp +++ b/src/mame/video/crt.cpp @@ -39,7 +39,7 @@ enum // device type definition -const device_type CRT = device_creator; +DEFINE_DEVICE_TYPE(CRT, crt_device, "crt", "CRT Video") //************************************************************************** // LIVE DEVICE @@ -50,7 +50,7 @@ const device_type CRT = device_creator; //------------------------------------------------- crt_device::crt_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, CRT, "CRT Video", tag, owner, clock, "crt", __FILE__), + : device_t(mconfig, CRT, tag, owner, clock), m_list(nullptr), m_list_head(nullptr), m_decay_counter(0), diff --git a/src/mame/video/crt.h b/src/mame/video/crt.h index 9f4376c911e..34c546107f3 100644 --- a/src/mame/video/crt.h +++ b/src/mame/video/crt.h @@ -8,8 +8,10 @@ *************************************************************************/ -#ifndef __CRT_H__ -#define __CRT_H__ +#ifndef MAME_VIDEO_CRT_H +#define MAME_VIDEO_CRT_H + +#pragma once //************************************************************************** @@ -30,24 +32,12 @@ // TYPE DEFINITIONS //************************************************************************** -struct crt_point -{ - crt_point() : - intensity(0), - next(0) {} - - int intensity; /* current intensity of the pixel */ - /* a node is not in the list when (intensity == -1) */ - int next; /* index of next pixel in list */ -}; - // ======================> crt_device class crt_device : public device_t { public: crt_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~crt_device() { } static void set_num_levels(device_t &device, int levels) { downcast(device).m_num_intensity_levels = levels; } static void set_offsets(device_t &device, int x_offset, int y_offset) @@ -72,6 +62,15 @@ protected: virtual void device_start() override; private: + struct crt_point + { + crt_point() { } + + int intensity = 0; /* current intensity of the pixel */ + /* a node is not in the list when (intensity == -1) */ + int next = 0; /* index of next pixel in list */ + }; + crt_point *m_list; /* array of (crt_window_width*crt_window_height) point */ std::unique_ptr m_list_head; /* head of the list of lit pixels (index in the array) */ /* keep a separate list for each display line (makes the video code slightly faster) */ @@ -86,8 +85,8 @@ private: int m_window_height; }; -extern const device_type CRT; +DECLARE_DEVICE_TYPE(CRT, crt_device) -#endif /* CRT_H_ */ +#endif // MAME_VIDEO_CRT_H diff --git a/src/mame/video/dbz.cpp b/src/mame/video/dbz.cpp index ee91f5d1b2e..dae60f3e7ea 100644 --- a/src/mame/video/dbz.cpp +++ b/src/mame/video/dbz.cpp @@ -90,10 +90,10 @@ void dbz_state::video_start() uint32_t dbz_state::screen_update_dbz(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - static const int K053251_CI[6] = { K053251_CI3, K053251_CI4, K053251_CI4, K053251_CI4, K053251_CI2, K053251_CI1 }; + static const int K053251_CI[6] = { k053251_device::CI3, k053251_device::CI4, k053251_device::CI4, k053251_device::CI4, k053251_device::CI2, k053251_device::CI1 }; int layer[5], plane, new_colorbase; - m_sprite_colorbase = m_k053251->get_palette_index(K053251_CI0); + m_sprite_colorbase = m_k053251->get_palette_index(k053251_device::CI0); for (plane = 0; plane < 6; plane++) { @@ -113,15 +113,15 @@ uint32_t dbz_state::screen_update_dbz(screen_device &screen, bitmap_ind16 &bitma //layers priority layer[0] = 0; - m_layerpri[0] = m_k053251->get_priority(K053251_CI3); + m_layerpri[0] = m_k053251->get_priority(k053251_device::CI3); layer[1] = 1; - m_layerpri[1] = m_k053251->get_priority(K053251_CI4); + m_layerpri[1] = m_k053251->get_priority(k053251_device::CI4); layer[2] = 3; - m_layerpri[2] = m_k053251->get_priority(K053251_CI0); + m_layerpri[2] = m_k053251->get_priority(k053251_device::CI0); layer[3] = 4; - m_layerpri[3] = m_k053251->get_priority(K053251_CI2); + m_layerpri[3] = m_k053251->get_priority(k053251_device::CI2); layer[4] = 5; - m_layerpri[4] = m_k053251->get_priority(K053251_CI1); + m_layerpri[4] = m_k053251->get_priority(k053251_device::CI1); konami_sortlayers5(layer, m_layerpri); diff --git a/src/mame/video/decbac06.cpp b/src/mame/video/decbac06.cpp index 7f140cf2365..9ae938168e6 100644 --- a/src/mame/video/decbac06.cpp +++ b/src/mame/video/decbac06.cpp @@ -65,10 +65,10 @@ Priority word (Midres): #include "emu.h" #include "decbac06.h" -const device_type DECO_BAC06 = device_creator; +DEFINE_DEVICE_TYPE(DECO_BAC06, deco_bac06_device, "deco_back06", "DECO BAC06 Tilemap") deco_bac06_device::deco_bac06_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, DECO_BAC06, "DECO BAC06 Tilemap", tag, owner, clock, "deco_bac06", __FILE__), + : device_t(mconfig, DECO_BAC06, tag, owner, clock), m_pf_data(nullptr), m_pf_rowscroll(nullptr), m_pf_colscroll(nullptr), diff --git a/src/mame/video/decbac06.h b/src/mame/video/decbac06.h index 882f8ef3d23..bf639b7bda7 100644 --- a/src/mame/video/decbac06.h +++ b/src/mame/video/decbac06.h @@ -1,6 +1,11 @@ // license:BSD-3-Clause // copyright-holders:Bryan McPhail, David Haywood -/* BAC06 */ +#ifndef MAME_VIDEO_DECOBAC06_H +#define MAME_VIDEO_DECOBAC06_H + +#pragma once + +#include #define MCFG_BAC06_BOOTLEG_DISABLE_8x8 \ deco_bac06_device::disable_8x8(*device); @@ -148,10 +153,12 @@ private: required_device m_gfxdecode; }; -extern const device_type DECO_BAC06; +DECLARE_DEVICE_TYPE(DECO_BAC06, deco_bac06_device) #define MCFG_DECO_BAC06_GFXDECODE(_gfxtag) \ deco_bac06_device::static_set_gfxdecode_tag(*device, "^" _gfxtag); #define MCFG_DECO_BAC06_GFX_REGION_WIDE(_8x8, _16x16, _wide) \ deco_bac06_device::set_gfx_region_wide(*device, _8x8, _16x16, _wide); + +#endif // MAME_VIDEO_DECOBAC06_H diff --git a/src/mame/video/deckarn.cpp b/src/mame/video/deckarn.cpp index 78f4f38f49b..e0437548660 100644 --- a/src/mame/video/deckarn.cpp +++ b/src/mame/video/deckarn.cpp @@ -12,10 +12,10 @@ void deco_karnovsprites_device::set_gfx_region(device_t &device, int region) dev.m_gfxregion = region; } -const device_type DECO_KARNOVSPRITES = device_creator; +DEFINE_DEVICE_TYPE(DECO_KARNOVSPRITES, deco_karnovsprites_device, "deco_karnovsprites", "DECO Karnov Sprites") deco_karnovsprites_device::deco_karnovsprites_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, DECO_KARNOVSPRITES, "DECO Karnov Sprites", tag, owner, clock, "deco_karnovsprites", __FILE__) + : device_t(mconfig, DECO_KARNOVSPRITES, tag, owner, clock) , m_gfxregion(0) , m_gfxdecode(*this, finder_base::DUMMY_TAG) { diff --git a/src/mame/video/deckarn.h b/src/mame/video/deckarn.h index 1250d559a87..137ea8a5403 100644 --- a/src/mame/video/deckarn.h +++ b/src/mame/video/deckarn.h @@ -1,5 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Bryan McPhail,David Haywood +#ifndef MAME_VIDEO_DECKARN_H +#define MAME_VIDEO_DECKARN_H + +#pragma once class deco_karnovsprites_device : public device_t @@ -22,10 +26,12 @@ private: required_device m_gfxdecode; }; -extern const device_type DECO_KARNOVSPRITES; +DECLARE_DEVICE_TYPE(DECO_KARNOVSPRITES, deco_karnovsprites_device) #define MCFG_DECO_KARNOVSPRITES_GFXDECODE(_gfxtag) \ deco_karnovsprites_device::static_set_gfxdecode_tag(*device, "^" _gfxtag); #define MCFG_DECO_KARNOVSPRITES_GFX_REGION(_region) \ deco_karnovsprites_device::set_gfx_region(*device, _region); + +#endif // MAME_VIDEO_DECKARN_H diff --git a/src/mame/video/decmxc06.cpp b/src/mame/video/decmxc06.cpp index 46966a99a2e..220cd81127d 100644 --- a/src/mame/video/decmxc06.cpp +++ b/src/mame/video/decmxc06.cpp @@ -48,10 +48,10 @@ void deco_mxc06_device::set_gfx_region(device_t &device, int region) } -const device_type DECO_MXC06 = device_creator; +DEFINE_DEVICE_TYPE(DECO_MXC06, deco_mxc06_device, "deco_mxc06", "DECO MXC06 Sprite") deco_mxc06_device::deco_mxc06_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, DECO_MXC06, "DECO MXC06 Sprite", tag, owner, clock, "deco_mxc06", __FILE__) + : device_t(mconfig, DECO_MXC06, tag, owner, clock) , device_video_interface(mconfig, *this) , m_gfxregion(0) , m_ramsize(0x800) diff --git a/src/mame/video/decmxc06.h b/src/mame/video/decmxc06.h index 45036eb8a41..1d31aaa93e3 100644 --- a/src/mame/video/decmxc06.h +++ b/src/mame/video/decmxc06.h @@ -1,10 +1,12 @@ // license:BSD-3-Clause // copyright-holders:Bryan McPhail, David Haywood -/* MXC06 */ +#ifndef MAME_VIDEO_DECMXC06_H +#define MAME_VIDEO_DECMXC06_H +#pragma once -class deco_mxc06_device : public device_t, - public device_video_interface + +class deco_mxc06_device : public device_t, public device_video_interface { public: deco_mxc06_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); @@ -36,7 +38,7 @@ private: required_device m_gfxdecode; }; -extern const device_type DECO_MXC06; +DECLARE_DEVICE_TYPE(DECO_MXC06, deco_mxc06_device) #define MCFG_DECO_MXC06_GFXDECODE(_gfxtag) \ deco_mxc06_device::static_set_gfxdecode_tag(*device, "^" _gfxtag); @@ -46,3 +48,5 @@ extern const device_type DECO_MXC06; #define MCFG_DECO_MXC06_RAMSIZE(_size) \ deco_mxc06_device::set_ram_size(*device, _size); + +#endif // MAME_VIDEO_DECMXC06_H diff --git a/src/mame/video/deco16ic.cpp b/src/mame/video/deco16ic.cpp index aa5e5cf99e0..55daf66fa2a 100644 --- a/src/mame/video/deco16ic.cpp +++ b/src/mame/video/deco16ic.cpp @@ -174,10 +174,10 @@ Rowscroll style: #include "video/deco16ic.h" #include "render.h" -const device_type DECO16IC = device_creator; +DEFINE_DEVICE_TYPE(DECO16IC, deco16ic_device, "deco16ic", "DECO 55 / 56 / 74 / 141 IC") deco16ic_device::deco16ic_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, DECO16IC, "DECO 55 / 56 / 74 / 141 IC", tag, owner, clock, "deco16ic", __FILE__), + : device_t(mconfig, DECO16IC, tag, owner, clock), device_video_interface(mconfig, *this), m_pf1_data(nullptr), m_pf2_data(nullptr), diff --git a/src/mame/video/deco16ic.h b/src/mame/video/deco16ic.h index 1483c62c24c..b1e6794410a 100644 --- a/src/mame/video/deco16ic.h +++ b/src/mame/video/deco16ic.h @@ -8,10 +8,10 @@ Data East IC 55 / 56 / 74 / 141 **************************************************************************/ +#ifndef MAME_VIDEO_DECO16IC_H +#define MAME_VIDEO_DECO16IC_H #pragma once -#ifndef __DECO16IC_H__ -#define __DECO16IC_H__ @@ -156,7 +156,7 @@ private: required_device m_gfxdecode; }; -extern const device_type DECO16IC; +DECLARE_DEVICE_TYPE(DECO16IC, deco16ic_device) @@ -208,4 +208,4 @@ extern const device_type DECO16IC; // function definition for a callback #define DECO16IC_BANK_CB_MEMBER(_name) int _name(int bank) -#endif +#endif // MAME_VIDEO_DECO16IC_H diff --git a/src/mame/video/deco_zoomspr.cpp b/src/mame/video/deco_zoomspr.cpp index 1933b0797eb..4a613bf5e78 100644 --- a/src/mame/video/deco_zoomspr.cpp +++ b/src/mame/video/deco_zoomspr.cpp @@ -13,10 +13,10 @@ #include "emu.h" #include "deco_zoomspr.h" -const device_type DECO_ZOOMSPR = device_creator; +DEFINE_DEVICE_TYPE(DECO_ZOOMSPR, deco_zoomspr_device, "deco_zoomspr", "DECO Zooming Sprites") deco_zoomspr_device::deco_zoomspr_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, DECO_ZOOMSPR, "DECO Zooming Sprites", tag, owner, clock, "deco_zoomspr", __FILE__) + : device_t(mconfig, DECO_ZOOMSPR, tag, owner, clock) , m_gfxdecode(*this, finder_base::DUMMY_TAG) { } diff --git a/src/mame/video/deco_zoomspr.h b/src/mame/video/deco_zoomspr.h index 5f4236e510d..83236eb4ff6 100644 --- a/src/mame/video/deco_zoomspr.h +++ b/src/mame/video/deco_zoomspr.h @@ -1,5 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Bryan McPhail,David Haywood +#ifndef MAME_VIDEO_DECO_ZOOMSPR_H +#define MAME_VIDEO_DECO_ZOOMSPR_H + +#pragma once class deco_zoomspr_device : public device_t @@ -29,7 +33,9 @@ private: }; -extern const device_type DECO_ZOOMSPR; +DECLARE_DEVICE_TYPE(DECO_ZOOMSPR, deco_zoomspr_device) #define MCFG_DECO_ZOOMSPR_GFXDECODE(_gfxtag) \ deco_zoomspr_device::static_set_gfxdecode_tag(*device, "^" _gfxtag); + +#endif // MAME_VIDEO_DECO_ZOOMSPR_H diff --git a/src/mame/video/decocomn.cpp b/src/mame/video/decocomn.cpp index b9612e2ea4f..61a5226b21d 100644 --- a/src/mame/video/decocomn.cpp +++ b/src/mame/video/decocomn.cpp @@ -10,10 +10,10 @@ #include "video/decocomn.h" -const device_type DECOCOMN = device_creator; +DEFINE_DEVICE_TYPE(DECOCOMN, decocomn_device, "decocomn", "DECO Common Video Functions") decocomn_device::decocomn_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, DECOCOMN, "DECO Common Video Functions", tag, owner, clock, "decocomn", __FILE__), + : device_t(mconfig, DECOCOMN, tag, owner, clock), device_video_interface(mconfig, *this), m_dirty_palette(nullptr), m_priority(0), diff --git a/src/mame/video/decocomn.h b/src/mame/video/decocomn.h index ff70be8ef23..80879d3810d 100644 --- a/src/mame/video/decocomn.h +++ b/src/mame/video/decocomn.h @@ -5,10 +5,10 @@ decocomn.h **************************************************************************/ +#ifndef MAME_VIDEO_DECOCOMN_H +#define MAME_VIDEO_DECOCOMN_H #pragma once -#ifndef __DECOCOMN_H__ -#define __DECOCOMN_H__ /*************************************************************************** @@ -21,7 +21,6 @@ class decocomn_device : public device_t, { public: decocomn_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~decocomn_device() {} // static configuration static void static_set_palette_tag(device_t &device, const char *tag); @@ -46,7 +45,7 @@ private: required_shared_ptr m_generic_paletteram_16; }; -extern const device_type DECOCOMN; +DECLARE_DEVICE_TYPE(DECOCOMN, decocomn_device) @@ -60,4 +59,4 @@ extern const device_type DECOCOMN; #define MCFG_DECOCOMN_PALETTE(_palette_tag) \ decocomn_device::static_set_palette_tag(*device, "^" _palette_tag); -#endif +#endif // MAME_VIDEO_DECOCOMN_H diff --git a/src/mame/video/decodmd1.cpp b/src/mame/video/decodmd1.cpp index 810d9562208..409c7f92018 100644 --- a/src/mame/video/decodmd1.cpp +++ b/src/mame/video/decodmd1.cpp @@ -12,7 +12,7 @@ #include "rendlay.h" #include "screen.h" -const device_type DECODMD1 = device_creator; +DEFINE_DEVICE_TYPE(DECODMD1, decodmd_type1_device, "decodmd1", "Data East Pinball Dot Matrix Display Type 1") READ8_MEMBER( decodmd_type1_device::latch_r ) { @@ -233,7 +233,7 @@ machine_config_constructor decodmd_type1_device::device_mconfig_additions() cons } decodmd_type1_device::decodmd_type1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, DECODMD1, "Data East Pinball Dot Matrix Display Type 1", tag, owner, clock, "decodmd1", __FILE__), + : device_t(mconfig, DECODMD1, tag, owner, clock), m_cpu(*this,"dmdcpu"), m_rombank1(*this,"dmdbank1"), m_rombank2(*this,"dmdbank2"), diff --git a/src/mame/video/decodmd1.h b/src/mame/video/decodmd1.h index 3a5e605d58a..6e44c91cf62 100644 --- a/src/mame/video/decodmd1.h +++ b/src/mame/video/decodmd1.h @@ -4,8 +4,10 @@ * Data East Pinball DMD Type 1 display */ -#ifndef DECODMD1_H_ -#define DECODMD1_H_ +#ifndef MAME_VIDEO_DECODMD1_H +#define MAME_VIDEO_DECODMD1_H + +#pragma once #include "cpu/z80/z80.h" #include "machine/ram.h" @@ -14,10 +16,6 @@ MCFG_DEVICE_ADD(_tag, DECODMD1, 0) \ decodmd_type1_device::static_set_gfxregion(*device, _region); -#define B_CLR 0x01 -#define B_SET 0x02 -#define B_CLK 0x04 - class decodmd_type1_device : public device_t { public: @@ -49,6 +47,10 @@ protected: virtual void device_reset() override; private: + static constexpr unsigned B_CLR = 0x01; + static constexpr unsigned B_SET = 0x02; + static constexpr unsigned B_CLK = 0x04; + uint8_t m_latch; uint8_t m_status; uint8_t m_ctrl; @@ -73,7 +75,7 @@ private: void set_busy(uint8_t input, uint8_t val); }; -extern const device_type DECODMD1; +DECLARE_DEVICE_TYPE(DECODMD1, decodmd_type1_device) -#endif /* DECODMD1_H_ */ +#endif // MAME_VIDEO_DECODMD1_H diff --git a/src/mame/video/decodmd2.cpp b/src/mame/video/decodmd2.cpp index d801afe3025..3e0d94137b0 100644 --- a/src/mame/video/decodmd2.cpp +++ b/src/mame/video/decodmd2.cpp @@ -13,7 +13,7 @@ #include "rendlay.h" #include "screen.h" -const device_type DECODMD2 = device_creator; +DEFINE_DEVICE_TYPE(DECODMD2, decodmd_type2_device, "decodmd2", "Data East Pinball Dot Matrix Display Type 2") WRITE8_MEMBER( decodmd_type2_device::bank_w ) { @@ -161,7 +161,7 @@ machine_config_constructor decodmd_type2_device::device_mconfig_additions() cons } decodmd_type2_device::decodmd_type2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, DECODMD2, "Data East Pinball Dot Matrix Display Type 2", tag, owner, clock, "decodmd2", __FILE__), + : device_t(mconfig, DECODMD2, tag, owner, clock), m_cpu(*this,"dmdcpu"), m_mc6845(*this,"dmd6845"), m_rombank1(*this,"dmdbank1"), diff --git a/src/mame/video/decodmd2.h b/src/mame/video/decodmd2.h index 413653ea170..73dbe10ca33 100644 --- a/src/mame/video/decodmd2.h +++ b/src/mame/video/decodmd2.h @@ -4,30 +4,23 @@ * Data East Pinball DMD Type 2 Display */ -#ifndef DECODMD_H_ -#define DECODMD_H_ +#ifndef MAME_VIDEO_DECODMD2_H +#define MAME_VIDEO_DECODMD2_H + +#pragma once #include "cpu/m6809/m6809.h" -#include "video/mc6845.h" #include "machine/ram.h" +#include "video/mc6845.h" #define MCFG_DECODMD_TYPE2_ADD(_tag, _region) \ MCFG_DEVICE_ADD(_tag, DECODMD2, 0) \ decodmd_type2_device::static_set_gfxregion(*device, _region); -#define START_ADDRESS (((m_crtc_reg[0x0c]<<8) & 0x3f00) | (m_crtc_reg[0x0d] & 0xff)) - class decodmd_type2_device : public device_t { public: decodmd_type2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - required_device m_cpu; - required_device m_mc6845; - required_memory_bank m_rombank1; - required_memory_bank m_rombank2; - required_memory_bank m_rambank; - required_device m_ram; - memory_region* m_rom; DECLARE_WRITE8_MEMBER(bank_w); DECLARE_WRITE8_MEMBER(crtc_address_w); @@ -50,7 +43,17 @@ protected: virtual void device_start() override; virtual void device_reset() override; + uint16_t start_address() const { return ((m_crtc_reg[0x0c] << 8) & 0x3f00) | (m_crtc_reg[0x0d] & 0xff); } + private: + required_device m_cpu; + required_device m_mc6845; + required_memory_bank m_rombank1; + required_memory_bank m_rombank2; + required_memory_bank m_rambank; + required_device m_ram; + memory_region* m_rom; + uint8_t m_crtc_index; uint8_t m_crtc_reg[0x100]; uint8_t m_latch; @@ -61,6 +64,6 @@ private: const char* m_gfxtag; }; -extern const device_type DECODMD2; +DECLARE_DEVICE_TYPE(DECODMD2, decodmd_type2_device) -#endif /* DECODMD_H_ */ +#endif // MAME_VIDEO_DECODMD2_H diff --git a/src/mame/video/decodmd3.cpp b/src/mame/video/decodmd3.cpp index a5702d4c97d..72f6e068cc3 100644 --- a/src/mame/video/decodmd3.cpp +++ b/src/mame/video/decodmd3.cpp @@ -13,7 +13,7 @@ #include "rendlay.h" #include "screen.h" -const device_type DECODMD3 = device_creator; +DEFINE_DEVICE_TYPE(DECODMD3, decodmd_type3_device, "decodmd3", "Data East Pinball Dot Matrix Display Type 3") WRITE8_MEMBER( decodmd_type3_device::data_w ) { @@ -162,7 +162,7 @@ machine_config_constructor decodmd_type3_device::device_mconfig_additions() cons } decodmd_type3_device::decodmd_type3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, DECODMD3, "Data East Pinball Dot Matrix Display Type 3", tag, owner, clock, "decodmd3", __FILE__), + : device_t(mconfig, DECODMD3, tag, owner, clock), m_cpu(*this,"dmdcpu"), m_mc6845(*this,"dmd6845"), m_ram(*this,RAM_TAG), diff --git a/src/mame/video/decodmd3.h b/src/mame/video/decodmd3.h index 7bcc898017c..c53504ac373 100644 --- a/src/mame/video/decodmd3.h +++ b/src/mame/video/decodmd3.h @@ -4,12 +4,14 @@ * Data East Pinball DMD Type 3 Display */ -#ifndef DECODMD3_H_ -#define DECODMD3_H_ +#ifndef MAME_VIDEO_DECODMD3_H +#define MAME_VIDEO_DECODMD3_H + +#pragma once #include "cpu/m68000/m68000.h" -#include "video/mc6845.h" #include "machine/ram.h" +#include "video/mc6845.h" #define MCFG_DECODMD_TYPE3_ADD(_tag, _region) \ MCFG_DEVICE_ADD(_tag, DECODMD3, 0) \ @@ -19,11 +21,6 @@ class decodmd_type3_device : public device_t { public: decodmd_type3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - required_device m_cpu; - required_device m_mc6845; - required_device m_ram; - required_memory_bank m_rambank; - required_memory_bank m_rombank; DECLARE_WRITE8_MEMBER(data_w); DECLARE_READ8_MEMBER(busy_r); @@ -39,14 +36,20 @@ public: static void static_set_gfxregion(device_t &device, const char *tag); - memory_region* m_rom; - protected: virtual machine_config_constructor device_mconfig_additions() const override; virtual void device_start() override; virtual void device_reset() override; private: + required_device m_cpu; + required_device m_mc6845; + required_device m_ram; + required_memory_bank m_rambank; + required_memory_bank m_rombank; + + memory_region* m_rom; + uint8_t m_status; uint8_t m_crtc_index; uint8_t m_crtc_reg[0x100]; @@ -58,7 +61,6 @@ private: const char* m_gfxtag; }; -extern const device_type DECODMD3; - +DECLARE_DEVICE_TYPE(DECODMD3, decodmd_type3_device) -#endif /* DECODMD3_H_ */ +#endif // MAME_VIDEO_DECODMD3_H diff --git a/src/mame/video/decospr.cpp b/src/mame/video/decospr.cpp index f98e5e61f9c..f332a201074 100644 --- a/src/mame/video/decospr.cpp +++ b/src/mame/video/decospr.cpp @@ -146,10 +146,10 @@ void decospr_device::set_gfx_region(device_t &device, int gfxregion) // printf("decospr_device::set_gfx_region()\n"); } -const device_type DECO_SPRITE = device_creator; +DEFINE_DEVICE_TYPE(DECO_SPRITE, decospr_device, "decospr", "DECO 52 Sprite") decospr_device::decospr_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, DECO_SPRITE, "DECO 52 Sprite", tag, owner, clock, "decospr", __FILE__), + : device_t(mconfig, DECO_SPRITE, tag, owner, clock), device_video_interface(mconfig, *this), m_gfxregion(0), m_is_bootleg(false), diff --git a/src/mame/video/decospr.h b/src/mame/video/decospr.h index c420c6f04b1..883ad675b55 100644 --- a/src/mame/video/decospr.h +++ b/src/mame/video/decospr.h @@ -1,5 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Bryan McPhail, David Haywood +#ifndef MAME_VIDEO_DECOSPR_H +#define MAME_VIDEO_DECOSPR_H + +#pragma once typedef device_delegate decospr_pri_cb_delegate; typedef device_delegate decospr_col_cb_delegate; @@ -10,8 +14,7 @@ typedef device_delegate decospr_col_cb_delegate; #define DECOSPR_COLOUR_CB_MEMBER(_name) uint16_t _name(uint16_t col) -class decospr_device : public device_t, - public device_video_interface +class decospr_device : public device_t, public device_video_interface { public: decospr_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); @@ -68,7 +71,7 @@ private: required_device m_gfxdecode; }; -extern const device_type DECO_SPRITE; +DECLARE_DEVICE_TYPE(DECO_SPRITE, decospr_device) #define MCFG_DECO_SPRITE_GFX_REGION(_region) \ decospr_device::set_gfx_region(*device, _region); @@ -96,3 +99,5 @@ extern const device_type DECO_SPRITE; #define MCFG_DECO_SPRITE_GFXDECODE(_gfxtag) \ decospr_device::static_set_gfxdecode_tag(*device, "^" _gfxtag); + +#endif // MAME_VIDEO_DECOSPR_H diff --git a/src/mame/video/dooyong.cpp b/src/mame/video/dooyong.cpp index cd3999440d5..baae9402616 100644 --- a/src/mame/video/dooyong.cpp +++ b/src/mame/video/dooyong.cpp @@ -1,7 +1,9 @@ // license:BSD-3-Clause -// copyright-holders:Nicola Salmoria,Vas Crabb +// copyright-holders:Vas Crabb #include "emu.h" -#include "includes/dooyong.h" +#include "video/dooyong.h" + +#include "screen.h" /* These games all have ROM-based tilemaps for the backgrounds, title @@ -14,21 +16,18 @@ when the x scroll moves out of range (trying to decode the whole lot at once uses hundreds of megabytes of RAM). */ -device_type const DOOYONG_ROM_TILEMAP = device_creator; -device_type const RSHARK_ROM_TILEMAP = device_creator; -device_type const DOOYONG_RAM_TILEMAP = device_creator; +DEFINE_DEVICE_TYPE(DOOYONG_ROM_TILEMAP, dooyong_rom_tilemap_device, "dooyong_rom_tilemap", "Dooyong ROM Tilemap") +DEFINE_DEVICE_TYPE(RSHARK_ROM_TILEMAP, rshark_rom_tilemap_device, "rshark_rom_tilemap", "R-Shark ROM Tilemap") +DEFINE_DEVICE_TYPE(DOOYONG_RAM_TILEMAP, dooyong_ram_tilemap_device, "dooyong_ram_tilemap", "Dooyong RAM Tilemap") dooyong_tilemap_device_base::dooyong_tilemap_device_base( - machine_config const &mconfig, - device_type type, - char const *name, - char const *tag, - device_t *owner, - uint32_t clock, - char const *shortname, - char const *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source) + machine_config const &mconfig, + device_type type, + char const *tag, + device_t *owner, + uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) , m_gfxdecode(*this, finder_base::DUMMY_TAG) , m_gfxnum(0) , m_tilemap(nullptr) @@ -62,20 +61,17 @@ void dooyong_tilemap_device_base::set_palette_bank(uint16_t bank) dooyong_rom_tilemap_device::dooyong_rom_tilemap_device(machine_config const &mconfig, char const *tag, device_t *owner, uint32_t clock) - : dooyong_rom_tilemap_device(mconfig, DOOYONG_ROM_TILEMAP, "Dooyong ROM Tilemap", tag, owner, clock, "dooyong_rom_tilemap", __FILE__) + : dooyong_rom_tilemap_device(mconfig, DOOYONG_ROM_TILEMAP, tag, owner, clock) { } dooyong_rom_tilemap_device::dooyong_rom_tilemap_device( - machine_config const &mconfig, - device_type type, - char const *name, - char const *tag, - device_t *owner, - uint32_t clock, - char const *shortname, - char const *source) - : dooyong_tilemap_device_base(mconfig, type, name, tag, owner, clock, shortname, source) + machine_config const &mconfig, + device_type type, + char const *tag, + device_t *owner, + uint32_t clock) + : dooyong_tilemap_device_base(mconfig, type, tag, owner, clock) , m_rows(8) , m_tilerom(*this, finder_base::DUMMY_TAG) , m_tilerom_offset(0) @@ -208,7 +204,7 @@ TILE_GET_INFO_MEMBER(dooyong_rom_tilemap_device::tile_info) rshark_rom_tilemap_device::rshark_rom_tilemap_device(machine_config const &mconfig, char const *tag, device_t *owner, uint32_t clock) - : dooyong_rom_tilemap_device(mconfig, RSHARK_ROM_TILEMAP, "R-Shark ROM Tilemap", tag, owner, clock, "rshark_rom_tilemap", __FILE__) + : dooyong_rom_tilemap_device(mconfig, RSHARK_ROM_TILEMAP, tag, owner, clock) , m_colorrom(*this, finder_base::DUMMY_TAG) , m_colorrom_offset(0) { @@ -243,7 +239,7 @@ TILE_GET_INFO_MEMBER(rshark_rom_tilemap_device::tile_info) dooyong_ram_tilemap_device::dooyong_ram_tilemap_device(machine_config const &mconfig, char const *tag, device_t *owner, uint32_t clock) - : dooyong_tilemap_device_base(mconfig, DOOYONG_RAM_TILEMAP, "Dooyong RAM Tilemap", tag, owner, clock, "dooyong_ram_tilemap", __FILE__) + : dooyong_tilemap_device_base(mconfig, DOOYONG_RAM_TILEMAP, tag, owner, clock) , m_tileram() { } @@ -293,507 +289,3 @@ TILE_GET_INFO_MEMBER(dooyong_ram_tilemap_device::tile_info) unsigned const attr(m_tileram[tile_index]); tileinfo.set(m_gfxnum, attr & 0x0fffU, m_palette_bank | ((attr >> 12) & 0x0fU), 0); } - - -READ8_MEMBER(dooyong_z80_state::lastday_tx_r) -{ - bool const lane(BIT(offset, 11)); - return m_tx->tileram_r(space, offset & 0x07ffU) >> (lane ? 8 : 0); -} - -WRITE8_MEMBER(dooyong_z80_state::lastday_tx_w) -{ - bool const lane(BIT(offset, 11)); - m_tx->tileram_w(space, offset & 0x07ffU, uint16_t(data) << (lane ? 8 : 0), lane ? 0xff00U : 0x00ffU); -} - -READ8_MEMBER(dooyong_z80_state::bluehawk_tx_r) -{ - bool const lane(BIT(offset, 0)); - return m_tx->tileram_r(space, offset >> 1) >> (lane ? 8 : 0); -} - -WRITE8_MEMBER(dooyong_z80_state::bluehawk_tx_w) -{ - bool const lane(BIT(offset, 0)); - m_tx->tileram_w(space, offset >> 1, uint16_t(data) << (lane ? 8 : 0), lane ? 0xff00U : 0x00ffU); -} - - -/* Control registers seem to be different on every game */ - -WRITE8_MEMBER(dooyong_z80_ym2203_state::lastday_ctrl_w) -{ - /* bits 0 and 1 are coin counters */ - machine().bookkeeping().coin_counter_w(0, data & 0x01); - machine().bookkeeping().coin_counter_w(1, data & 0x02); - - /* bit 3 is used but unknown */ - - /* bit 4 disables sprites */ - m_sprites_disabled = data & 0x10; - - /* bit 6 is flip screen */ - flip_screen_set(data & 0x40); -} - -WRITE8_MEMBER(dooyong_z80_ym2203_state::pollux_ctrl_w) -{ -// printf("pollux_ctrl_w %02x\n", data); - - /* bit 0 is flip screen */ - flip_screen_set(data & 0x01); - - /* bits 6 and 7 are coin counters */ - machine().bookkeeping().coin_counter_w(0, data & 0x80); - machine().bookkeeping().coin_counter_w(1, data & 0x40); - - /* bit 1 is used but unknown - palette banking (both write and display based on pollux bombs) */ - uint8_t const last_palbank = m_palette_bank; - if (m_paletteram_flytiger) m_palette_bank = BIT(data, 1); - if (last_palbank != m_palette_bank) - { - m_bg->set_palette_bank(m_palette_bank << 6); - m_fg->set_palette_bank(m_palette_bank << 6); - m_tx->set_palette_bank(m_palette_bank << 6); - } - - /* bit 2 is continuously toggled (unknown) */ - - /* bit 4 is used but unknown - display disable? */ -} - - - -WRITE8_MEMBER(dooyong_z80_state::primella_ctrl_w) -{ - /* bits 0-2 select ROM bank */ - membank("bank1")->set_entry(data & 0x07); - - /* bit 3 disables tx layer */ - m_tx_pri = data & 0x08; - - /* bit 4 flips screen */ - flip_screen_set(data & 0x10); - - /* bit 5 used but unknown */ - -// logerror("%04x: bankswitch = %02x\n",space.device().safe_pc(),data&0xe0); -} - -READ8_MEMBER(dooyong_z80_state::paletteram_flytiger_r) -{ - if (m_palette_bank) offset |= 0x800; - - return m_paletteram_flytiger[offset]; -} - - -WRITE8_MEMBER(dooyong_z80_state::paletteram_flytiger_w) -{ - if (m_palette_bank) offset |= 0x800; - - m_paletteram_flytiger[offset] = data; - uint16_t const value = m_paletteram_flytiger[offset & ~1] | (m_paletteram_flytiger[offset | 1] << 8); - m_palette->set_pen_color(offset/2, pal5bit(value >> 10), pal5bit(value >> 5), pal5bit(value >> 0)); - -} - -WRITE8_MEMBER(dooyong_z80_state::flytiger_ctrl_w) -{ - /* bit 0 is flip screen */ - flip_screen_set(data & 0x01); - - /* bits 1, 2 used but unknown */ - - /* bit 3 palette banking */ - uint8_t const last_palbank = m_palette_bank; - m_palette_bank = BIT(data, 3); - if (last_palbank != m_palette_bank) - { - m_bg->set_palette_bank(m_palette_bank << 6); - m_fg->set_palette_bank(m_palette_bank << 6); - m_tx->set_palette_bank(m_palette_bank << 6); - } - - /* bit 4 changes tilemaps priority */ - m_flytiger_pri = data & 0x10; -} - - -void dooyong_z80_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, unsigned extensions) -{ - /* Sprites take 32 bytes each in memory: - MSB LSB - [offs + 0x00] cccc cccc (bits 7-0 of gfx code) - [offs + 0x01] cccx CCCC (bits 10-8 of gfx code, bit 8 of x position, bits 3-0 of color code) - [offs + 0x02] yyyy yyyy - [offs + 0x03] xxxx xxxx (bits 7-0 of x offset) - ... - [offs + 0x1c] ?hhh XY*c (bits 2-0 of height, x flip, y flip, * see note, bit 11 of gfx code) - ... - ? = unused/unknown - E = enable - c = gfx code - x = x position - y = y position - C = color code - w = width - X = x flip - Y = y flip - * = alters y position in bluehawk and flytiger - see code below - bit 11 of gfx code only used by gulfstrm, pollux, bluehawk and flytiger - height only used by pollux, bluehawk and flytiger - x flip and y flip only used by pollux and flytiger */ - - uint8_t const *const buffered_spriteram = m_spriteram->buffer(); - for (int offs = 0; offs < m_spriteram->bytes(); offs += 32) - { - int sx = buffered_spriteram[offs+3] | ((buffered_spriteram[offs+1] & 0x10) << 4); - int sy = buffered_spriteram[offs+2]; - int code = buffered_spriteram[offs] | ((buffered_spriteram[offs+1] & 0xe0) << 3); - int color = buffered_spriteram[offs+1] & 0x0f; - - //TODO: This priority mechanism works for known games, but seems a bit strange. - //Are we missing something? (The obvious spare palette bit isn't it.) - int const pri = (((color == 0x00) || (color == 0x0f)) ? 0xfc : 0xf0); - - bool flipx = false, flipy = false; - int height = 0; - if (extensions) - { - uint8_t const ext = buffered_spriteram[offs+0x1c]; - - if (extensions & SPRITE_12BIT) - code |= ((ext & 0x01) << 11); - - if (extensions & SPRITE_HEIGHT) - { - height = (ext & 0x70) >> 4; - code &= ~height; - - flipx = ext & 0x08; - flipy = ext & 0x04; - } - - if (extensions & SPRITE_YSHIFT_BLUEHAWK) - sy += 6 - ((~ext & 0x02) << 7); - - if (extensions & SPRITE_YSHIFT_FLYTIGER) - sy -=(ext & 0x02) << 7; - } - - if (flip_screen()) - { - sx = 498 - sx; - sy = 240 - (16 * height) - sy; - flipx = !flipx; - flipy = !flipy; - } - - color |= m_palette_bank << 6; - - for (int y = 0; y <= height; y++) - { - m_gfxdecode->gfx(1)->prio_transpen(bitmap,cliprect, - code + y, - color, - flipx, flipy, - sx, sy + (16 * (flipy ? (height - y) : y)), - screen.priority(), - pri, 15); - } - } -} - - -uint32_t dooyong_z80_ym2203_state::screen_update_lastday(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) -{ - bitmap.fill(m_palette->black_pen(), cliprect); - screen.priority().fill(0, cliprect); - - /* Text layer is offset on this machine */ - m_tx->set_scrolly(flip_screen() ? -8 : 8); - - m_bg->draw(screen, bitmap, cliprect, 0, 1); - m_fg->draw(screen, bitmap, cliprect, 0, 2); - m_tx->draw(screen, bitmap, cliprect, 0, 4); - - if (!m_sprites_disabled) - draw_sprites(screen, bitmap, cliprect); - - return 0; -} - -uint32_t dooyong_z80_ym2203_state::screen_update_gulfstrm(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) -{ - bitmap.fill(m_palette->black_pen(), cliprect); - screen.priority().fill(0, cliprect); - - /* Text layer is offset on this machine */ - m_tx->set_scrolly(flip_screen() ? -8 : 8); - - m_bg->draw(screen, bitmap, cliprect, 0, 1); - m_fg->draw(screen, bitmap, cliprect, 0, 2); - m_tx->draw(screen, bitmap, cliprect, 0, 4); - - draw_sprites(screen, bitmap, cliprect, SPRITE_12BIT); - - return 0; -} - -uint32_t dooyong_z80_ym2203_state::screen_update_pollux(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) -{ - bitmap.fill(m_palette->black_pen(), cliprect); - screen.priority().fill(0, cliprect); - - m_bg->draw(screen, bitmap, cliprect, 0, 1); - m_fg->draw(screen, bitmap, cliprect, 0, 2); - m_tx->draw(screen, bitmap, cliprect, 0, 4); - - draw_sprites(screen, bitmap, cliprect, SPRITE_12BIT | SPRITE_HEIGHT); - - return 0; -} - -uint32_t dooyong_z80_state::screen_update_flytiger(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) -{ - bitmap.fill(m_palette->black_pen(), cliprect); - screen.priority().fill(0, cliprect); - - if (m_flytiger_pri) - { - m_fg->draw(screen, bitmap, cliprect, 0, 1); - m_bg->draw(screen, bitmap, cliprect, 0, 2); - } - else - { - m_bg->draw(screen, bitmap, cliprect, 0, 1); - m_fg->draw(screen, bitmap, cliprect, 0, 2); - } - m_tx->draw(screen, bitmap, cliprect, 0, 4); - - draw_sprites(screen, bitmap, cliprect, SPRITE_12BIT | SPRITE_HEIGHT | SPRITE_YSHIFT_FLYTIGER); - - return 0; -} - - -uint32_t dooyong_z80_state::screen_update_bluehawk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) -{ - bitmap.fill(m_palette->black_pen(), cliprect); - screen.priority().fill(0, cliprect); - - m_bg->draw(screen, bitmap, cliprect, 0, 1); - m_fg->draw(screen, bitmap, cliprect, 0, 2); - m_fg2->draw(screen, bitmap, cliprect, 0, 4); - m_tx->draw(screen, bitmap, cliprect, 0, 4); - - draw_sprites(screen, bitmap, cliprect, SPRITE_12BIT | SPRITE_HEIGHT | SPRITE_YSHIFT_BLUEHAWK); - - return 0; -} - -uint32_t dooyong_z80_state::screen_update_primella(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) -{ - bitmap.fill(m_palette->black_pen(), cliprect); - - m_bg->draw(screen, bitmap, cliprect, 0, 0); - if (m_tx_pri) m_tx->draw(screen, bitmap, cliprect, 0, 0); - m_fg->draw(screen, bitmap, cliprect, 0, 0); - if (!m_tx_pri) m_tx->draw(screen, bitmap, cliprect, 0, 0); - - return 0; -} - - - -VIDEO_START_MEMBER(dooyong_z80_ym2203_state, lastday) -{ - /* Register for save/restore */ - save_item(NAME(m_sprites_disabled)); - save_item(NAME(m_interrupt_line_1)); - save_item(NAME(m_interrupt_line_2)); -} - -VIDEO_START_MEMBER(dooyong_z80_ym2203_state, gulfstrm) -{ - m_palette_bank = 0; - - /* Register for save/restore */ - save_item(NAME(m_palette_bank)); - save_item(NAME(m_interrupt_line_1)); - save_item(NAME(m_interrupt_line_2)); -} - -VIDEO_START_MEMBER(dooyong_z80_ym2203_state, pollux) -{ - m_paletteram_flytiger = make_unique_clear(0x1000); - save_pointer(NAME(m_paletteram_flytiger.get()), 0x1000); - - m_palette_bank = 0; - - /* Register for save/restore */ - save_item(NAME(m_palette_bank)); - save_item(NAME(m_interrupt_line_1)); - save_item(NAME(m_interrupt_line_2)); -} - -VIDEO_START_MEMBER(dooyong_z80_state, bluehawk) -{ -} - -VIDEO_START_MEMBER(dooyong_z80_state, flytiger) -{ - m_paletteram_flytiger = make_unique_clear(0x1000); - save_pointer(NAME(m_paletteram_flytiger.get()), 0x1000); - - m_palette_bank = 0; - - /* Register for save/restore */ - save_item(NAME(m_palette_bank)); - save_item(NAME(m_flytiger_pri)); -} - -VIDEO_START_MEMBER(dooyong_z80_state, primella) -{ - /* Register for save/restore */ - save_item(NAME(m_tx_pri)); -} - - -WRITE16_MEMBER(dooyong_68k_state::ctrl_w) -{ - if (ACCESSING_BITS_0_7) - { - /* bit 0 flips screen */ - flip_screen_set(data & 0x0001); - - /* bit 4 changes tilemaps priority */ - m_bg2_priority = data & 0x0010; - - /* bit 5 used but unknown */ - } -} - - -void dooyong_68k_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) -{ - /* Sprites take 8 16-bit words each in memory: - MSB LSB - [offs + 0] ???? ???? ???? ???E - [offs + 1] ???? ???? hhhh wwww - [offs + 2] ???? ???? ???? ???? - [offs + 3] cccc cccc cccc cccc - [offs + 4] ???? ???x xxxx xxxx - [offs + 5] ???? ???? ???? ???? - [offs + 6] ???? ???y yyyy yyyy - [offs + 7] ???? ???? ???? CCCC - ? = unused/unknown - E = enable - c = gfx code - x = x offset - y = y offset (signed) - C = color code - w = width - h = height */ - - uint16_t const *const buffered_spriteram = m_spriteram->buffer(); - for (int offs = (m_spriteram->bytes() / 2) - 8; offs >= 0; offs -= 8) - { - if (buffered_spriteram[offs] & 0x0001) /* enable */ - { - int code = buffered_spriteram[offs+3]; - int const color = buffered_spriteram[offs+7] & 0x000f; - //TODO: This priority mechanism works for known games, but seems a bit strange. - //Are we missing something? (The obvious spare palette bit isn't it.) - int const pri = (((color == 0x00) || (color == 0x0f)) ? 0xfc : 0xf0); - int const width = buffered_spriteram[offs+1] & 0x000f; - int const height = (buffered_spriteram[offs+1] & 0x00f0) >> 4; - - bool const flip = flip_screen(); - int sx = buffered_spriteram[offs+4] & 0x01ff; - int sy = (int16_t)buffered_spriteram[offs+6] & 0x01ff; - if (sy & 0x0100) sy |= ~(int)0x01ff; // Correctly sign-extend 9-bit number - if (flip) - { - sx = 498 - (16 * width) - sx; - sy = 240 - (16 * height) - sy; - } - - for (int y = 0; y <= height; y++) - { - int const _y = sy + (16 * (flip ? (height - y) : y)); - for (int x = 0; x <= width; x++) - { - int const _x = sx + (16 * (flip ? (width - x) : x)); - m_gfxdecode->gfx(0)->prio_transpen(bitmap,cliprect, - code, - color, - flip, flip, - _x, _y, - screen.priority(), - pri, 15); - code++; - } - } - } - } -} - - -uint32_t rshark_state::screen_update_rshark(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) -{ - bitmap.fill(m_palette->black_pen(), cliprect); - screen.priority().fill(0, cliprect); - - m_bg->draw(screen, bitmap, cliprect, 0, 1); - m_bg2->draw(screen, bitmap, cliprect, 0, (m_bg2_priority ? 2 : 1)); - m_fg->draw(screen, bitmap, cliprect, 0, 2); - m_fg2->draw(screen, bitmap, cliprect, 0, 2); - - draw_sprites(screen, bitmap, cliprect); - - return 0; -} - -VIDEO_START_MEMBER(rshark_state, rshark) -{ - /* Register for save/restore */ - save_item(NAME(m_bg2_priority)); -} - - -uint32_t popbingo_state::screen_update_popbingo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) -{ - bitmap.fill(m_palette->black_pen(), cliprect); - screen.priority().fill(0, cliprect); - - m_bg_bitmap.fill(m_palette->black_pen(), cliprect); - m_bg->draw(screen, m_bg_bitmap, cliprect, 0, 1); - - m_bg2_bitmap.fill(m_palette->black_pen(), cliprect); - m_bg2->draw(screen, m_bg2_bitmap, cliprect, 0, 1); - - for (int y = cliprect.min_y; cliprect.max_y >= y; y++) - { - uint16_t const *const bg_src(&m_bg_bitmap.pix16(y, 0)); - uint16_t const *const bg2_src(&m_bg2_bitmap.pix16(y, 0)); - uint16_t *const dst(&bitmap.pix16(y, 0)); - for (int x = cliprect.min_x; cliprect.max_x >= x; x++) - dst[x] = 0x100U | (bg_src[x] << 4) | bg2_src[x]; - } - - draw_sprites(screen, bitmap, cliprect); - - return 0; -} - -VIDEO_START_MEMBER(popbingo_state, popbingo) -{ - m_screen->register_screen_bitmap(m_bg_bitmap); - m_screen->register_screen_bitmap(m_bg2_bitmap); - - /* Register for save/restore */ - save_item(NAME(m_bg2_priority)); // Not used atm -} diff --git a/src/mame/video/dooyong.h b/src/mame/video/dooyong.h new file mode 100644 index 00000000000..03f9bbde16c --- /dev/null +++ b/src/mame/video/dooyong.h @@ -0,0 +1,145 @@ +// license:BSD-3-Clause +// copyright-holders:Vas Crabb +#ifndef MAME_VIDEO_DOOYONG_H +#define MAME_VIDEO_DOOYONG_H + +#pragma once + +#include "video/bufsprite.h" + +#define MCFG_DOOYONG_ROM_TILEMAP_ADD(tag, gfx, num, rom, offset) \ + MCFG_DEVICE_ADD(tag, DOOYONG_ROM_TILEMAP, 0) \ + dooyong_rom_tilemap_device::static_set_gfxdecode_tag(*device, "^" gfx); \ + dooyong_rom_tilemap_device::static_set_tilerom_tag(*device, "^" rom); \ + dooyong_rom_tilemap_device::static_set_gfxnum(*device, (num)); \ + dooyong_rom_tilemap_device::static_set_tilerom_offset(*device, (offset)); +#define MCFG_DOOYONG_ROM_TILEMAP_TRANSPARENT_PEN(pen) \ + dooyong_rom_tilemap_device::static_set_transparent_pen(*device, (pen)); +#define MCFG_DOOYONG_ROM_TILEMAP_PRIMELLA_CODE_BITS(bits) \ + dooyong_rom_tilemap_device::static_set_primella_code_bits(*device, (bits)); + +#define MCFG_RSHARK_ROM_TILEMAP_ADD(tag, gfx, num, rom, offset, rom2, offset2) \ + MCFG_DEVICE_ADD(tag, RSHARK_ROM_TILEMAP, 0) \ + dooyong_rom_tilemap_device::static_set_gfxdecode_tag(*device, "^" gfx); \ + dooyong_rom_tilemap_device::static_set_tilerom_tag(*device, "^" rom); \ + dooyong_rom_tilemap_device::static_set_gfxnum(*device, (num)); \ + dooyong_rom_tilemap_device::static_set_tilerom_offset(*device, (offset)); \ + dooyong_rom_tilemap_device::static_set_primella_code_bits(*device, 13); \ + rshark_rom_tilemap_device::static_set_colorrom_tag(*device, "^" rom2); \ + rshark_rom_tilemap_device::static_set_colorrom_offset(*device, (offset2)); + +#define MCFG_DOOYONG_RAM_TILEMAP_ADD(tag, gfx, num) \ + MCFG_DEVICE_ADD(tag, DOOYONG_RAM_TILEMAP, 0) \ + dooyong_rom_tilemap_device::static_set_gfxdecode_tag(*device, "^" gfx); \ + dooyong_rom_tilemap_device::static_set_gfxnum(*device, (num)); + + +DECLARE_DEVICE_TYPE(DOOYONG_ROM_TILEMAP, dooyong_rom_tilemap_device) +DECLARE_DEVICE_TYPE(RSHARK_ROM_TILEMAP, rshark_rom_tilemap_device) +DECLARE_DEVICE_TYPE(DOOYONG_RAM_TILEMAP, dooyong_ram_tilemap_device) + + +class dooyong_tilemap_device_base : public device_t +{ +public: + static void static_set_gfxdecode_tag(device_t &device, char const *tag); + static void static_set_gfxnum(device_t &device, int gfxnum); + + void draw(screen_device &screen, bitmap_ind16 &dest, rectangle const &cliprect, uint32_t flags, uint8_t priority); + + void set_palette_bank(uint16_t bank); + +protected: + dooyong_tilemap_device_base( + machine_config const &mconfig, + device_type type, + char const *tag, + device_t *owner, + uint32_t clock); + + gfx_element const &gfx() const { return *m_gfxdecode->gfx(m_gfxnum); } + + required_device m_gfxdecode; + int m_gfxnum; + + tilemap_t *m_tilemap; + uint16_t m_palette_bank; +}; + +class dooyong_rom_tilemap_device : public dooyong_tilemap_device_base +{ +public: + dooyong_rom_tilemap_device(machine_config const &mconfig, char const *tag, device_t *owner, uint32_t clock); + + static void static_set_tilerom_tag(device_t &device, char const *tag); + static void static_set_tilerom_offset(device_t &device, int offset); + static void static_set_transparent_pen(device_t &device, unsigned pen); + static void static_set_primella_code_bits(device_t &device, unsigned bits); + + DECLARE_WRITE8_MEMBER(ctrl_w); + +protected: + dooyong_rom_tilemap_device( + machine_config const &mconfig, + device_type type, + char const *tag, + device_t *owner, + uint32_t clock); + + virtual void device_start() override; + + virtual TILE_GET_INFO_MEMBER(tile_info); + + tilemap_memory_index adjust_tile_index(tilemap_memory_index tile_index) const + { return tile_index + ((unsigned(m_registers[1]) * 256U / gfx().width()) * m_rows); } + + int m_rows; + +private: + required_region_ptr m_tilerom; + int m_tilerom_offset; + unsigned m_transparent_pen; + unsigned m_primella_code_mask; + unsigned m_primella_color_mask; + unsigned m_primella_color_shift; + + uint8_t m_registers[0x10]; +}; + +class rshark_rom_tilemap_device : public dooyong_rom_tilemap_device +{ +public: + rshark_rom_tilemap_device(machine_config const &mconfig, char const *tag, device_t *owner, uint32_t clock); + + static void static_set_colorrom_tag(device_t &device, char const *tag); + static void static_set_colorrom_offset(device_t &device, int offset); + +protected: + virtual void device_start() override; + + virtual TILE_GET_INFO_MEMBER(tile_info) override; + +private: + required_region_ptr m_colorrom; + int m_colorrom_offset; +}; + +class dooyong_ram_tilemap_device : public dooyong_tilemap_device_base +{ +public: + dooyong_ram_tilemap_device(machine_config const &mconfig, char const *tag, device_t *owner, uint32_t clock); + + DECLARE_READ16_MEMBER(tileram_r) { return m_tileram[offset & ((64U * 32U) - 1)]; } + DECLARE_WRITE16_MEMBER(tileram_w); + void set_scrolly(int value) { m_tilemap->set_scrolly(value); } + +protected: + virtual void device_start() override; + +private: + TILE_GET_INFO_MEMBER(tile_info); + + std::unique_ptr m_tileram; +}; + +#endif // MAME_VIDEO_DOOYONG_H diff --git a/src/mame/video/excellent_spr.cpp b/src/mame/video/excellent_spr.cpp index 2b77f721cbd..7b5168563d0 100644 --- a/src/mame/video/excellent_spr.cpp +++ b/src/mame/video/excellent_spr.cpp @@ -20,11 +20,11 @@ #include "screen.h" -const device_type EXCELLENT_SPRITE = device_creator; +DEFINE_DEVICE_TYPE(EXCELLENT_SPRITE, excellent_spr_device, "excellent_spr", "Excellent 8-bit Sprite") excellent_spr_device::excellent_spr_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, EXCELLENT_SPRITE, "Excellent 8-bit Sprite", tag, owner, clock, "excellent_spr", __FILE__), - device_video_interface(mconfig, *this) + : device_t(mconfig, EXCELLENT_SPRITE, tag, owner, clock) + , device_video_interface(mconfig, *this) { } diff --git a/src/mame/video/excellent_spr.h b/src/mame/video/excellent_spr.h index bad423784b5..36c3d002a29 100644 --- a/src/mame/video/excellent_spr.h +++ b/src/mame/video/excellent_spr.h @@ -1,8 +1,12 @@ // license:BSD-3-Clause // copyright-holders:David Haywood +#ifndef MAME_VIDEO_EXCELLENT_SPR_H +#define MAME_VIDEO_EXCELLENT_SPR_H -class excellent_spr_device : public device_t, - public device_video_interface +#pragma once + + +class excellent_spr_device : public device_t, public device_video_interface { public: excellent_spr_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); @@ -21,4 +25,6 @@ protected: private: }; -extern const device_type EXCELLENT_SPRITE; +DECLARE_DEVICE_TYPE(EXCELLENT_SPRITE, excellent_spr_device) + +#endif // MAME_VIDEO_EXCELLENT_SPR_H diff --git a/src/mame/video/exterm.cpp b/src/mame/video/exterm.cpp index aa5be9cd190..5327fcbd1db 100644 --- a/src/mame/video/exterm.cpp +++ b/src/mame/video/exterm.cpp @@ -69,7 +69,7 @@ TMS340X0_SCANLINE_IND16_CB_MEMBER(exterm_state::scanline_update) uint16_t *bgsrc = &m_master_videoram[(params->rowaddr << 8) & 0xff00]; uint16_t *fgsrc = nullptr; uint16_t *dest = &bitmap.pix16(scanline); - tms34010_display_params fgparams; + tms340x0_device::display_params fgparams; int coladdr = params->coladdr; int fgcoladdr = 0; int x; diff --git a/src/mame/video/fuukifg.cpp b/src/mame/video/fuukifg.cpp index 1e43d668911..5fb1012ce60 100644 --- a/src/mame/video/fuukifg.cpp +++ b/src/mame/video/fuukifg.cpp @@ -7,10 +7,10 @@ #include "fuukifg.h" #include "screen.h" -const device_type FUUKI_VIDEO = device_creator; +DEFINE_DEVICE_TYPE(FUUKI_VIDEO, fuukivid_device, "fuukivid", "Fuuki Video") fuukivid_device::fuukivid_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, FUUKI_VIDEO, "Fuuki Video", tag, owner, clock, "fuukivid", __FILE__) + : device_t(mconfig, FUUKI_VIDEO, tag, owner, clock) , device_video_interface(mconfig, *this) , m_gfxdecode(*this, finder_base::DUMMY_TAG) { diff --git a/src/mame/video/fuukifg.h b/src/mame/video/fuukifg.h index e93b3865d65..5e57722f2cc 100644 --- a/src/mame/video/fuukifg.h +++ b/src/mame/video/fuukifg.h @@ -1,6 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Luca Elia, David Haywood +#ifndef MAME_VIDEO_FUUKIFH_H +#define MAME_VIDEO_FUUKIFH_H +#pragma once class fuukivid_device : public device_t, @@ -38,7 +41,9 @@ private: required_device m_gfxdecode; }; -extern const device_type FUUKI_VIDEO; +DECLARE_DEVICE_TYPE(FUUKI_VIDEO, fuukivid_device) #define MCFG_FUUKI_VIDEO_GFXDECODE(_gfxtag) \ fuukivid_device::static_set_gfxdecode_tag(*device, "^" _gfxtag); + +#endif // MAME_VIDEO_FUUKIFH_H diff --git a/src/mame/video/gic.cpp b/src/mame/video/gic.cpp index 03d9f27b4b4..03c9e1c5692 100644 --- a/src/mame/video/gic.cpp +++ b/src/mame/video/gic.cpp @@ -65,7 +65,7 @@ #include "screen.h" // device type definition -const device_type GIC = device_creator; +DEFINE_DEVICE_TYPE(GIC, gic_device, "gic", "AY-3-8800-1 GIC") //Font data taken from Paul Robson's simulator @@ -82,27 +82,20 @@ ROM_END //------------------------------------------------- gic_device::gic_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, GIC, "GIC", tag, owner, clock, "gic", __FILE__) - , device_sound_interface(mconfig, *this) - , device_video_interface(mconfig, *this) - , m_cgrom(nullptr) - , m_audiocnt(0) - , m_audioval(0) - , m_audioreset(0) - , m_ram(nullptr) + : gic_device(mconfig, GIC, tag, owner, clock) { } -gic_device::gic_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, int lines, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source) +gic_device::gic_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) , device_sound_interface(mconfig, *this) , device_video_interface(mconfig, *this) - , m_cgrom(nullptr) + , m_cgrom(*this, "cgrom") , m_audiocnt(0) , m_audioval(0) , m_audioreset(0) - , m_ram(nullptr) + , m_ram(*this) { } @@ -118,8 +111,6 @@ const tiny_rom_entry *gic_device::device_rom_region() const void gic_device::device_start() { - m_cgrom = memregion("cgrom")->base(); - // Let the screen create our temporary bitmap with the screen's dimensions m_screen->register_screen_bitmap(m_bitmap); @@ -128,6 +119,8 @@ void gic_device::device_start() // allocate the audio stream m_stream = stream_alloc( 0, 1, clock()/(2*228) ); + + m_ram.resolve_safe(0xff); } @@ -193,7 +186,7 @@ uint32_t gic_device::screen_update(screen_device &screen, bitmap_ind16 &bitmap, for(uint8_t cx=0;cx(device).m_screen_tag = screen_tag; } + template static void set_ram(device_t &device, Obj &&cb) { downcast(device).m_ram.set_callback(std::forward(cb)); } DECLARE_PALETTE_INIT(gic); @@ -65,19 +66,18 @@ public: inline bitmap_ind16 *get_bitmap() { return &m_bitmap; } - //plgDavid please change this to a MESS friendly handshake - void set_shared_memory(const uint8_t*m){ m_ram = m;}; - // Global constants (non measured figures) - static const int START_ACTIVE_SCAN = 10; - static const int BORDER_SIZE = GIC_CHAR_W*3; - static const int END_ACTIVE_SCAN = 10 + GIC_CHAR_W*2 + 150 + GIC_CHAR_W*2; - static const int START_Y = 1; - static const int SCREEN_HEIGHT = GIC_CHAR_H*(GIC_LEFT_H+2); - static const int LINE_CLOCKS = 455; - static const int LINES = 262; + static constexpr int START_ACTIVE_SCAN = 10; + static constexpr int BORDER_SIZE = GIC_CHAR_W*3; + static constexpr int END_ACTIVE_SCAN = 10 + GIC_CHAR_W*2 + 150 + GIC_CHAR_W*2; + static constexpr int START_Y = 1; + static constexpr int SCREEN_HEIGHT = GIC_CHAR_H*(GIC_LEFT_H+2); + static constexpr int LINE_CLOCKS = 455; + static constexpr int LINES = 262; protected: + gic_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -96,7 +96,7 @@ protected: void draw_char_right(int x, int y, uint8_t code, bitmap_ind16 &bitmap,int bg_col); bitmap_ind16 m_bitmap; - uint8_t * m_cgrom; // internal chargen ROM + required_region_ptr m_cgrom; // internal chargen ROM emu_timer *m_vblank_timer; sound_stream *m_stream; @@ -104,10 +104,10 @@ protected: int m_audiocnt; int m_audioval; int m_audioreset; - const uint8_t* m_ram; + devcb_read8 m_ram; }; // device type definition -extern const device_type GIC; +DECLARE_DEVICE_TYPE(GIC, gic_device) -#endif /* __GIC_H__ */ +#endif // MAME_VIDEO_GIC_H diff --git a/src/mame/video/gijoe.cpp b/src/mame/video/gijoe.cpp index b8969055690..13bec02c520 100644 --- a/src/mame/video/gijoe.cpp +++ b/src/mame/video/gijoe.cpp @@ -75,7 +75,7 @@ void gijoe_state::video_start() uint32_t gijoe_state::screen_update_gijoe(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - static const int K053251_CI[4] = { K053251_CI1, K053251_CI2, K053251_CI3, K053251_CI4 }; + static const int K053251_CI[4] = { k053251_device::CI1, k053251_device::CI2, k053251_device::CI3, k053251_device::CI4 }; int layer[4]; int vrc_mode, vrc_new, colorbase_new, /*primode,*/ dirty, i; int mask = 0; @@ -99,7 +99,7 @@ uint32_t gijoe_state::screen_update_gijoe(screen_device &screen, bitmap_ind16 &b m_avac_bits[3] = m_avac_bits[2] = m_avac_bits[1] = m_avac_bits[0] = 0xf000; // update color info and refresh tilemaps - m_sprite_colorbase = m_k053251->get_palette_index(K053251_CI0); + m_sprite_colorbase = m_k053251->get_palette_index(k053251_device::CI0); for (i = 0; i < 4; i++) { @@ -142,16 +142,16 @@ uint32_t gijoe_state::screen_update_gijoe(screen_device &screen, bitmap_ind16 &b } // seems to switch the K053251 between different priority modes, detail unknown - // primode = m_k053251->get_priority(K053251_CI1); + // primode = m_k053251->get_priority(k053251_device::CI1); layer[0] = 0; m_layer_pri[0] = 0; // not sure layer[1] = 1; - m_layer_pri[1] = m_k053251->get_priority(K053251_CI2); + m_layer_pri[1] = m_k053251->get_priority(k053251_device::CI2); layer[2] = 2; - m_layer_pri[2] = m_k053251->get_priority(K053251_CI3); + m_layer_pri[2] = m_k053251->get_priority(k053251_device::CI3); layer[3] = 3; - m_layer_pri[3] = m_k053251->get_priority(K053251_CI4); + m_layer_pri[3] = m_k053251->get_priority(k053251_device::CI4); konami_sortlayers4(layer, m_layer_pri); diff --git a/src/mame/video/gime.cpp b/src/mame/video/gime.cpp index 97ee4fb5515..0009b950ea8 100644 --- a/src/mame/video/gime.cpp +++ b/src/mame/video/gime.cpp @@ -108,8 +108,8 @@ // ctor //------------------------------------------------- -gime_base_device::gime_base_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const uint8_t *fontdata, const char *shortname, const char *source) - : mc6847_friend_device(mconfig, type, name, tag, owner, clock, fontdata, true, 263, 25+192+26+3, false, shortname, source), +gime_base_device::gime_base_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, const uint8_t *fontdata) + : mc6847_friend_device(mconfig, type, tag, owner, clock, fontdata, true, 263, 25+192+26+3, false), m_write_irq(*this), m_write_firq(*this), m_read_floating_bus(*this), @@ -2023,8 +2023,8 @@ const uint8_t gime_base_device::hires_font[128][12] = // VARIATIONS //************************************************************************** -const device_type GIME_NTSC = device_creator; -const device_type GIME_PAL = device_creator; +DEFINE_DEVICE_TYPE(GIME_NTSC, gime_ntsc_device, "gime_ntsc", "CoCo GIME (NTSC)") +DEFINE_DEVICE_TYPE(GIME_PAL, gime_pal_device, "gime_pal", "CoCo GIME (PAL)") @@ -2033,7 +2033,7 @@ const device_type GIME_PAL = device_creator; //------------------------------------------------- gime_ntsc_device::gime_ntsc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : gime_base_device(mconfig, GIME_NTSC, "GIME_NTSC", tag, owner, clock, ntsc_round_fontdata8x12, "gime_ntsc", __FILE__) + : gime_base_device(mconfig, GIME_NTSC, tag, owner, clock, ntsc_round_fontdata8x12) { } @@ -2044,6 +2044,6 @@ gime_ntsc_device::gime_ntsc_device(const machine_config &mconfig, const char *ta //------------------------------------------------- gime_pal_device::gime_pal_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : gime_base_device(mconfig, GIME_PAL, "GIME_PAL", tag, owner, clock, pal_round_fontdata8x12, "gime_pal", __FILE__) + : gime_base_device(mconfig, GIME_PAL, tag, owner, clock, pal_round_fontdata8x12) { } diff --git a/src/mame/video/gime.h b/src/mame/video/gime.h index 52e4aeca021..e2b3ec96354 100644 --- a/src/mame/video/gime.h +++ b/src/mame/video/gime.h @@ -9,10 +9,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_VIDEO_GIME_H +#define MAME_VIDEO_GIME_H -#ifndef __GIME__ -#define __GIME__ +#pragma once #include "video/mc6847.h" #include "machine/6883sam.h" @@ -55,9 +55,9 @@ class cococart_slot_device; class gime_base_device : public mc6847_friend_device, public sam6883_friend_device { public: - template static devcb_base &set_irq_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_irq.set_callback(object); } - template static devcb_base &set_firq_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_firq.set_callback(object); } - template static devcb_base &set_floating_bus_rd_callback(device_t &device, _Object object) { return downcast(device).m_read_floating_bus.set_callback(object); } + template static devcb_base &set_irq_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_irq.set_callback(std::forward(cb)); } + template static devcb_base &set_firq_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_firq.set_callback(std::forward(cb)); } + template static devcb_base &set_floating_bus_rd_callback(device_t &device, Object &&cb) { return downcast(device).m_read_floating_bus.set_callback(std::forward(cb)); } static void set_maincpu_tag(device_t &device, const char *tag) { downcast(device).m_maincpu_tag = tag; } static void set_ram_tag(device_t &device, const char *tag) { downcast(device).m_ram_tag = tag; } static void set_ext_tag(device_t &device, const char *tag) { downcast(device).m_ext_tag = tag; } @@ -91,7 +91,7 @@ public: void set_il2(bool value) { set_interrupt_value(INTERRUPT_EI2, value); } protected: - gime_base_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const uint8_t *fontdata, const char *shortname, const char *source); + gime_base_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, const uint8_t *fontdata); // device-level overrides virtual void device_start(void) override; @@ -307,7 +307,7 @@ public: gime_pal_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; -extern const device_type GIME_NTSC; -extern const device_type GIME_PAL; +DECLARE_DEVICE_TYPE(GIME_NTSC, gime_ntsc_device) +DECLARE_DEVICE_TYPE(GIME_PAL, gime_pal_device) -#endif /* __GIME__ */ +#endif //MAME_VIDEO_GIME_H diff --git a/src/mame/video/gp9001.cpp b/src/mame/video/gp9001.cpp index 3469e84b95a..6fcf7e3bf44 100644 --- a/src/mame/video/gp9001.cpp +++ b/src/mame/video/gp9001.cpp @@ -212,10 +212,10 @@ GFXDECODE_MEMBER( gp9001vdp_device::gfxinfo ) GFXDECODE_END -const device_type GP9001_VDP = device_creator; +DEFINE_DEVICE_TYPE(GP9001_VDP, gp9001vdp_device, "gp9001vdp", "GP9001 VDP") gp9001vdp_device::gp9001vdp_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, GP9001_VDP, "GP9001 VDP", tag, owner, clock, "gp9001vdp", __FILE__), + : device_t(mconfig, GP9001_VDP, tag, owner, clock), device_gfx_interface(mconfig, *this, gfxinfo), device_video_interface(mconfig, *this), device_memory_interface(mconfig, *this), @@ -238,12 +238,7 @@ TILE_GET_INFO_MEMBER(gp9001vdp_device::get_top0_tile_info) attrib = m_vram_top[2*tile_index]; - tile_number = m_vram_top[2*tile_index+1]; - - if (gp9001_gfxrom_is_banked) - { - tile_number = ( gp9001_gfxrom_bank[(tile_number >> 13) & 7] << 13 ) | ( tile_number & 0x1fff ); - } + tile_number = get_tile_number(m_vram_top, tile_index); color = attrib & 0x0fff; // 0x0f00 priority, 0x007f colour SET_TILE_INFO_MEMBER(0, @@ -259,13 +254,7 @@ TILE_GET_INFO_MEMBER(gp9001vdp_device::get_fg0_tile_info) attrib = m_vram_fg[2*tile_index]; - tile_number = m_vram_fg[2*tile_index+1]; - - - if (gp9001_gfxrom_is_banked) - { - tile_number = ( gp9001_gfxrom_bank[(tile_number >> 13) & 7] << 13 ) | ( tile_number & 0x1fff ); - } + tile_number = get_tile_number(m_vram_fg, tile_index); color = attrib & 0x0fff; // 0x0f00 priority, 0x007f colour SET_TILE_INFO_MEMBER(0, @@ -280,12 +269,7 @@ TILE_GET_INFO_MEMBER(gp9001vdp_device::get_bg0_tile_info) int color, tile_number, attrib; attrib = m_vram_bg[2*tile_index]; - tile_number = m_vram_bg[2*tile_index+1]; - - if (gp9001_gfxrom_is_banked) - { - tile_number = ( gp9001_gfxrom_bank[(tile_number >> 13) & 7] << 13 ) | ( tile_number & 0x1fff ); - } + tile_number = get_tile_number(m_vram_bg, tile_index); color = attrib & 0x0fff; // 0x0f00 priority, 0x007f colour SET_TILE_INFO_MEMBER(0, @@ -309,11 +293,11 @@ void gp9001vdp_device::create_tilemaps() void gp9001vdp_device::device_start() { - sp.vram16_buffer = make_unique_clear(GP9001_SPRITERAM_SIZE/2); + sp.vram16_buffer = make_unique_clear(SPRITERAM_SIZE/2); create_tilemaps(); - save_pointer(NAME(sp.vram16_buffer.get()), GP9001_SPRITERAM_SIZE/2); + save_pointer(NAME(sp.vram16_buffer.get()), SPRITERAM_SIZE/2); save_item(NAME(gp9001_scroll_reg)); save_item(NAME(gp9001_voffs)); @@ -330,9 +314,9 @@ void gp9001vdp_device::device_start() save_item(NAME(top.flip)); save_item(NAME(sp.flip)); - gp9001_gfxrom_is_banked = 0; - gp9001_gfxrom_bank_dirty = 0; - save_item(NAME(gp9001_gfxrom_bank)); + gfxrom_is_banked = false; + gfxrom_bank_dirty = false; + save_item(NAME(gfxrom_bank)); // default layer offsets used by all original games bg.extra_xoffset.normal = -0x1d6; @@ -416,80 +400,80 @@ void gp9001vdp_device::gp9001_scroll_reg_select_w(uint16_t data, uint16_t mem_ma } } -static void gp9001_set_scrollx_and_flip_reg(gp9001tilemaplayer* layer, uint16_t data, uint16_t mem_mask, int flip) +void gp9001vdp_device::tilemaplayer::set_scrollx_and_flip_reg(uint16_t data, uint16_t mem_mask, bool f) { - COMBINE_DATA(&layer->scrollx); + COMBINE_DATA(&scrollx); - if (flip) + if (f) { - layer->flip |= TILEMAP_FLIPX; - layer->tmap->set_scrollx(0,-(layer->scrollx+layer->extra_xoffset.flipped)); + flip |= TILEMAP_FLIPX; + tmap->set_scrollx(0, -(scrollx + extra_xoffset.flipped)); } else { - layer->flip &= (~TILEMAP_FLIPX); - layer->tmap->set_scrollx(0,layer->scrollx+layer->extra_xoffset.normal); + flip &= ~TILEMAP_FLIPX; + tmap->set_scrollx(0, scrollx + extra_xoffset.normal); } - layer->tmap->set_flip(layer->flip); + tmap->set_flip(flip); } -static void gp9001_set_scrolly_and_flip_reg(gp9001tilemaplayer* layer, uint16_t data, uint16_t mem_mask, int flip) +void gp9001vdp_device::tilemaplayer::set_scrolly_and_flip_reg(uint16_t data, uint16_t mem_mask, bool f) { - COMBINE_DATA(&layer->scrolly); + COMBINE_DATA(&scrolly); - if (flip) + if (f) { - layer->flip |= TILEMAP_FLIPY; - layer->tmap->set_scrolly(0,-(layer->scrolly+layer->extra_yoffset.flipped)); + flip |= TILEMAP_FLIPY; + tmap->set_scrolly(0, -(scrolly + extra_yoffset.flipped)); } else { - layer->flip &= (~TILEMAP_FLIPY); - layer->tmap->set_scrolly(0,layer->scrolly+layer->extra_yoffset.normal); + flip &= ~TILEMAP_FLIPY; + tmap->set_scrolly(0, scrolly + extra_yoffset.normal); } - layer->tmap->set_flip(layer->flip); + tmap->set_flip(flip); } -static void gp9001_set_sprite_scrollx_and_flip_reg(gp9001spritelayer* layer, uint16_t data, uint16_t mem_mask, int flip) +void gp9001vdp_device::spritelayer::set_scrollx_and_flip_reg(uint16_t data, uint16_t mem_mask, bool f) { - if (flip) + if (f) { - data += layer->extra_xoffset.flipped; - COMBINE_DATA(&layer->scrollx); - if (layer->scrollx & 0x8000) layer->scrollx |= 0xfe00; - else layer->scrollx &= 0x1ff; - layer->flip |= GP9001_SPRITE_FLIPX; + data += extra_xoffset.flipped; + COMBINE_DATA(&scrollx); + if (scrollx & 0x8000) scrollx |= 0xfe00; + else scrollx &= 0x1ff; + flip |= SPRITE_FLIPX; } else { - data += layer->extra_xoffset.normal; - COMBINE_DATA(&layer->scrollx); + data += extra_xoffset.normal; + COMBINE_DATA(&scrollx); - if (layer->scrollx & 0x8000) layer->scrollx |= 0xfe00; - else layer->scrollx &= 0x1ff; - layer->flip &= (~GP9001_SPRITE_FLIPX); + if (scrollx & 0x8000) scrollx |= 0xfe00; + else scrollx &= 0x1ff; + flip &= ~SPRITE_FLIPX; } } -static void gp9001_set_sprite_scrolly_and_flip_reg(gp9001spritelayer* layer, uint16_t data, uint16_t mem_mask, int flip) +void gp9001vdp_device::spritelayer::set_scrolly_and_flip_reg(uint16_t data, uint16_t mem_mask, bool f) { - if (flip) + if (f) { - data += layer->extra_yoffset.flipped; - COMBINE_DATA(&layer->scrolly); - if (layer->scrolly & 0x8000) layer->scrolly |= 0xfe00; - else layer->scrolly &= 0x1ff; - layer->flip |= GP9001_SPRITE_FLIPY; + data += extra_yoffset.flipped; + COMBINE_DATA(&scrolly); + if (scrolly & 0x8000) scrolly |= 0xfe00; + else scrolly &= 0x1ff; + flip |= SPRITE_FLIPY; } else { - data += layer->extra_yoffset.normal; - COMBINE_DATA(&layer->scrolly); - if (layer->scrolly & 0x8000) layer->scrolly |= 0xfe00; - else layer->scrolly &= 0x1ff; - layer->flip &= (~GP9001_SPRITE_FLIPY); + data += extra_yoffset.normal; + COMBINE_DATA(&scrolly); + if (scrolly & 0x8000) scrolly |= 0xfe00; + else scrolly &= 0x1ff; + flip &= ~SPRITE_FLIPY; } } @@ -502,19 +486,19 @@ void gp9001vdp_device::gp9001_scroll_reg_data_w(uint16_t data, uint16_t mem_mask // writes with 8x set turn on flip for the specified layer / axis int flip = gp9001_scroll_reg & 0x80; - switch(gp9001_scroll_reg&0x7f) + switch (gp9001_scroll_reg&0x7f) { - case 0x00: gp9001_set_scrollx_and_flip_reg(&bg, data, mem_mask, flip); break; - case 0x01: gp9001_set_scrolly_and_flip_reg(&bg, data, mem_mask, flip); break; + case 0x00: bg.set_scrollx_and_flip_reg(data, mem_mask, flip); break; + case 0x01: bg.set_scrolly_and_flip_reg(data, mem_mask, flip); break; - case 0x02: gp9001_set_scrollx_and_flip_reg(&fg, data, mem_mask, flip); break; - case 0x03: gp9001_set_scrolly_and_flip_reg(&fg, data, mem_mask, flip); break; + case 0x02: fg.set_scrollx_and_flip_reg(data, mem_mask, flip); break; + case 0x03: fg.set_scrolly_and_flip_reg(data, mem_mask, flip); break; - case 0x04: gp9001_set_scrollx_and_flip_reg(&top,data, mem_mask, flip); break; - case 0x05: gp9001_set_scrolly_and_flip_reg(&top,data, mem_mask, flip); break; + case 0x04: top.set_scrollx_and_flip_reg(data, mem_mask, flip); break; + case 0x05: top.set_scrolly_and_flip_reg(data, mem_mask, flip); break; - case 0x06: gp9001_set_sprite_scrollx_and_flip_reg(&sp, data,mem_mask,flip); break; - case 0x07: gp9001_set_sprite_scrolly_and_flip_reg(&sp, data,mem_mask,flip); break; + case 0x06: sp.set_scrollx_and_flip_reg(data, mem_mask, flip); break; + case 0x07: sp.set_scrolly_and_flip_reg(data, mem_mask, flip); break; case 0x0e: /******* Initialise video controller register ? *******/ @@ -529,14 +513,14 @@ void gp9001vdp_device::gp9001_scroll_reg_data_w(uint16_t data, uint16_t mem_mask void gp9001vdp_device::init_scroll_regs() { - gp9001_set_scrollx_and_flip_reg(&bg, 0, 0xffff, 0); - gp9001_set_scrolly_and_flip_reg(&bg, 0, 0xffff, 0); - gp9001_set_scrollx_and_flip_reg(&fg, 0, 0xffff, 0); - gp9001_set_scrolly_and_flip_reg(&fg, 0, 0xffff, 0); - gp9001_set_scrollx_and_flip_reg(&top,0, 0xffff, 0); - gp9001_set_scrolly_and_flip_reg(&top,0, 0xffff, 0); - gp9001_set_sprite_scrollx_and_flip_reg(&sp, 0,0xffff,0); - gp9001_set_sprite_scrolly_and_flip_reg(&sp, 0,0xffff,0); + bg.set_scrollx_and_flip_reg(0, 0xffff, 0); + bg.set_scrolly_and_flip_reg(0, 0xffff, 0); + fg.set_scrollx_and_flip_reg(0, 0xffff, 0); + fg.set_scrolly_and_flip_reg(0, 0xffff, 0); + top.set_scrollx_and_flip_reg(0, 0xffff, 0); + top.set_scrolly_and_flip_reg(0, 0xffff, 0); + sp.set_scrollx_and_flip_reg(0, 0xffff, 0); + sp.set_scrolly_and_flip_reg(0, 0xffff, 0); } @@ -689,7 +673,7 @@ void gp9001vdp_device::draw_sprites( bitmap_ind16 &bitmap, const rectangle &clip int old_x = (-(sp.scrollx)) & 0x1ff; int old_y = (-(sp.scrolly)) & 0x1ff; - for (int offs = 0; offs < (GP9001_SPRITERAM_SIZE/2); offs += 4) + for (int offs = 0; offs < (SPRITERAM_SIZE/2); offs += 4) { int attrib, sprite, color, priority, flipx, flipy, sx, sy; int sprite_sizex, sprite_sizey, dim_x, dim_y, sx_base, sy_base; @@ -700,7 +684,7 @@ void gp9001vdp_device::draw_sprites( bitmap_ind16 &bitmap, const rectangle &clip if ((attrib & 0x8000)) { - if (!gp9001_gfxrom_is_banked) /* No Sprite select bank switching needed */ + if (!gfxrom_is_banked) /* No Sprite select bank switching needed */ { sprite = ((attrib & 3) << 16) | source[offs + 1]; /* 18 bit */ } @@ -708,7 +692,7 @@ void gp9001vdp_device::draw_sprites( bitmap_ind16 &bitmap, const rectangle &clip { sprite_num = source[offs + 1] & 0x7fff; bank = ((attrib & 3) << 1) | (source[offs + 1] >> 15); - sprite = (gp9001_gfxrom_bank[bank] << 15 ) | sprite_num; + sprite = (gfxrom_bank[bank] << 15 ) | sprite_num; } color = (attrib >> 2) & 0x3f; @@ -730,8 +714,8 @@ void gp9001vdp_device::draw_sprites( bitmap_ind16 &bitmap, const rectangle &clip old_x = sx_base; old_y = sy_base; - flipx = attrib & GP9001_SPRITE_FLIPX; - flipy = attrib & GP9001_SPRITE_FLIPY; + flipx = attrib & SPRITE_FLIPX; + flipy = attrib & SPRITE_FLIPY; if (flipx) { @@ -757,15 +741,15 @@ void gp9001vdp_device::draw_sprites( bitmap_ind16 &bitmap, const rectangle &clip /***** Flip the sprite layer in any active X or Y flip *****/ if (sp.flip) { - if (sp.flip & GP9001_SPRITE_FLIPX) + if (sp.flip & SPRITE_FLIPX) sx_base = 320 - sx_base; - if (sp.flip & GP9001_SPRITE_FLIPY) + if (sp.flip & SPRITE_FLIPY) sy_base = 240 - sy_base; } /***** Cancel flip, if it, and sprite layer flip are active *****/ - flipx = (flipx ^ (sp.flip & GP9001_SPRITE_FLIPX)); - flipy = (flipy ^ (sp.flip & GP9001_SPRITE_FLIPY)); + flipx = (flipx ^ (sp.flip & SPRITE_FLIPX)); + flipy = (flipy ^ (sp.flip & SPRITE_FLIPY)); /***** Draw the complete sprites using the dimension info *****/ for (dim_y = 0; dim_y < sprite_sizey; dim_y += 8) @@ -920,11 +904,11 @@ static const uint8_t batsugun_prienable0[16]={ 1, 1, 1, 1, 1, 1, void gp9001vdp_device::gp9001_render_vdp(bitmap_ind16 &bitmap, const rectangle &cliprect) { - if (gp9001_gfxrom_is_banked && gp9001_gfxrom_bank_dirty) + if (gfxrom_is_banked && gfxrom_bank_dirty) { bg.tmap->mark_all_dirty(); fg.tmap->mark_all_dirty(); - gp9001_gfxrom_bank_dirty = 0; + gfxrom_bank_dirty = false; } gp9001_draw_custom_tilemap(bitmap, bg.tmap, gp9001_primap1, batsugun_prienable0); @@ -937,5 +921,5 @@ void gp9001vdp_device::gp9001_render_vdp(bitmap_ind16 &bitmap, const rectangle & void gp9001vdp_device::gp9001_screen_eof(void) { /** Shift sprite RAM buffers *** Used to fix sprite lag **/ - if (sp.use_sprite_buffer) memcpy(sp.vram16_buffer.get(),m_spriteram,GP9001_SPRITERAM_SIZE); + if (sp.use_sprite_buffer) memcpy(sp.vram16_buffer.get(),m_spriteram,SPRITERAM_SIZE); } diff --git a/src/mame/video/gp9001.h b/src/mame/video/gp9001.h index c788f1788d0..703d4e08ee5 100644 --- a/src/mame/video/gp9001.h +++ b/src/mame/video/gp9001.h @@ -1,59 +1,19 @@ // license:BSD-3-Clause // copyright-holders:Quench, David Haywood /* GP9001 Video Controller */ +#ifndef MAME_VIDEO_GP9001_H +#define MAME_VIDEO_GP9001_H -struct gp9001layeroffsets -{ - int normal; - int flipped; -}; - -struct gp9001layer -{ - uint16_t flip; - uint16_t scrollx; - uint16_t scrolly; - - gp9001layeroffsets extra_xoffset; - gp9001layeroffsets extra_yoffset; -}; - -struct gp9001tilemaplayer : gp9001layer -{ - tilemap_t *tmap; -}; - -struct gp9001spritelayer : gp9001layer -{ - bool use_sprite_buffer; - std::unique_ptr vram16_buffer; // vram buffer for this layer -}; - +#pragma once class gp9001vdp_device : public device_t, public device_gfx_interface, public device_video_interface, public device_memory_interface { - static const gfx_layout tilelayout, spritelayout; - DECLARE_GFXDECODE_MEMBER(gfxinfo); - public: gp9001vdp_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - uint16_t gp9001_voffs; - uint16_t gp9001_scroll_reg; - - gp9001tilemaplayer bg, top, fg; - gp9001spritelayer sp; - - // technically this is just rom banking, allowing the chip to see more graphic ROM, however it's easier to handle it - // in the chip implementation than externally for now (which would require dynamic decoding of the entire charsets every - // time the bank was changed) - int gp9001_gfxrom_is_banked; - int gp9001_gfxrom_bank_dirty; /* dirty flag of object bank (for Batrider) */ - uint16_t gp9001_gfxrom_bank[8]; /* Batrider object bank */ - void draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect, const uint8_t* primap ); void gp9001_draw_custom_tilemap( bitmap_ind16 &bitmap, tilemap_t* tilemap, const uint8_t* priremap, const uint8_t* pri_enable ); @@ -66,6 +26,24 @@ public: DECLARE_ADDRESS_MAP(map, 16); + // game-specific hack stuff + void disable_sprite_buffer() { sp.use_sprite_buffer = 0; } + void set_bg_extra_offsets(int xn, int yn, int xf, int yf) { bg.set_extra_offsets(xn, yn, xf, yf); } + void set_fg_extra_offsets(int xn, int yn, int xf, int yf) { fg.set_extra_offsets(xn, yn, xf, yf); } + void set_top_extra_offsets(int xn, int yn, int xf, int yf) { top.set_extra_offsets(xn, yn, xf, yf); } + void set_sp_extra_offsets(int xn, int yn, int xf, int yf) { sp.set_extra_offsets(xn, yn, xf, yf); } + + // ROM banking control + void set_gfxrom_banked() { gfxrom_is_banked = true; } + void set_gfxrom_bank(unsigned index, uint16_t value) + { + if (gfxrom_bank[index] != value) + { + gfxrom_bank[index] = value; + gfxrom_bank_dirty = true; + } + } + // access to VDP DECLARE_READ16_MEMBER( gp9001_vdp_r ); DECLARE_WRITE16_MEMBER( gp9001_vdp_w ); @@ -97,10 +75,65 @@ protected: TILE_GET_INFO_MEMBER(get_bg0_tile_info); private: - required_shared_ptr m_vram_bg; - required_shared_ptr m_vram_fg; - required_shared_ptr m_vram_top; - required_shared_ptr m_spriteram; + static constexpr unsigned BG_VRAM_SIZE = 0x1000; /* Background RAM size */ + static constexpr unsigned FG_VRAM_SIZE = 0x1000; /* Foreground RAM size */ + static constexpr unsigned TOP_VRAM_SIZE = 0x1000; /* Top Layer RAM size */ + static constexpr unsigned SPRITERAM_SIZE = 0x0800; /* Sprite RAM size */ + static constexpr unsigned SPRITE_FLIPX = 0x1000; /* Sprite flip flags */ + static constexpr unsigned SPRITE_FLIPY = 0x2000; + + struct gp9001layeroffsets + { + int normal; + int flipped; + }; + + struct gp9001layer + { + void set_extra_offsets(int xn, int yn, int xf, int yf) + { + extra_xoffset.normal = xn; + extra_yoffset.normal = yn; + extra_xoffset.flipped = xf; + extra_yoffset.flipped = yf; + } + + uint16_t flip; + uint16_t scrollx; + uint16_t scrolly; + + gp9001layeroffsets extra_xoffset; + gp9001layeroffsets extra_yoffset; + }; + + struct tilemaplayer : gp9001layer + { + void set_scrollx_and_flip_reg(uint16_t data, uint16_t mem_mask, bool f); + void set_scrolly_and_flip_reg(uint16_t data, uint16_t mem_mask, bool f); + + tilemap_t *tmap; + }; + + struct spritelayer : gp9001layer + { + void set_scrollx_and_flip_reg(uint16_t data, uint16_t mem_mask, bool f); + void set_scrolly_and_flip_reg(uint16_t data, uint16_t mem_mask, bool f); + + bool use_sprite_buffer; + std::unique_ptr vram16_buffer; // vram buffer for this layer + }; + + int get_tile_number(uint16_t const *vram, int index) + { + uint16_t const value = vram[(index << 1) | 1]; + if (gfxrom_is_banked) + return (gfxrom_bank[(value >> 13) & 7] << 13) | (value & 0x1fff); + else + return value; + } + + static const gfx_layout tilelayout, spritelayout; + DECLARE_GFXDECODE_MEMBER(gfxinfo); void gp9001_voffs_w(uint16_t data, uint16_t mem_mask); int gp9001_videoram16_r(void); @@ -108,13 +141,26 @@ private: uint16_t gp9001_vdpstatus_r(void); void gp9001_scroll_reg_select_w(uint16_t data, uint16_t mem_mask); void gp9001_scroll_reg_data_w(uint16_t data, uint16_t mem_mask); + + uint16_t gp9001_voffs; + uint16_t gp9001_scroll_reg; + + tilemaplayer bg, top, fg; + spritelayer sp; + + // technically this is just rom banking, allowing the chip to see more graphic ROM, however it's easier to handle it + // in the chip implementation than externally for now (which would require dynamic decoding of the entire charsets every + // time the bank was changed) + bool gfxrom_is_banked; + bool gfxrom_bank_dirty; /* dirty flag of object bank (for Batrider) */ + uint16_t gfxrom_bank[8]; /* Batrider object bank */ + + required_shared_ptr m_vram_bg; + required_shared_ptr m_vram_fg; + required_shared_ptr m_vram_top; + required_shared_ptr m_spriteram; }; -extern const device_type GP9001_VDP; +DECLARE_DEVICE_TYPE(GP9001_VDP, gp9001vdp_device) -#define GP9001_BG_VRAM_SIZE 0x1000 /* Background RAM size */ -#define GP9001_FG_VRAM_SIZE 0x1000 /* Foreground RAM size */ -#define GP9001_TOP_VRAM_SIZE 0x1000 /* Top Layer RAM size */ -#define GP9001_SPRITERAM_SIZE 0x800 /* Sprite RAM size */ -#define GP9001_SPRITE_FLIPX 0x1000 /* Sprite flip flags */ -#define GP9001_SPRITE_FLIPY 0x2000 +#endif // MAME_VIDEO_GP9001_H diff --git a/src/mame/video/gstriker.cpp b/src/mame/video/gstriker.cpp index 72e1ee4c1bc..4b6bab05a61 100644 --- a/src/mame/video/gstriker.cpp +++ b/src/mame/video/gstriker.cpp @@ -27,7 +27,7 @@ uint32_t gstriker_state::screen_update(screen_device &screen, bitmap_ind16 &bitm m_spr->draw_sprites(m_CG10103_m_vram, 0x2000, screen, bitmap, cliprect, 0x2, 0x0); - m_tx->draw( screen, bitmap, cliprect, 0); + m_tx->draw(screen, bitmap, cliprect, 0); m_spr->draw_sprites(m_CG10103_m_vram, 0x2000, screen, bitmap, cliprect, 0x2, 0x2); @@ -37,8 +37,8 @@ uint32_t gstriker_state::screen_update(screen_device &screen, bitmap_ind16 &bitm void gstriker_state::video_start() { // Initialize the chip for the score plane - m_tx->get_tilemap()->set_transparent_pen(0xf); + m_tx->set_transparent_pen(0xf); // Initialize the chip for the screen plane - m_bg->get_tilemap()->set_transparent_pen(0xf); + m_bg->set_transparent_pen(0xf); } diff --git a/src/mame/video/gtia.cpp b/src/mame/video/gtia.cpp index 3010dad1121..cacd7d84c97 100644 --- a/src/mame/video/gtia.cpp +++ b/src/mame/video/gtia.cpp @@ -112,16 +112,16 @@ // devices -const device_type ATARI_GTIA = device_creator; +DEFINE_DEVICE_TYPE(ATARI_GTIA, gtia_device, "gtia", "Atari GTIA") //------------------------------------------------- // upd7220_device - constructor //------------------------------------------------- gtia_device::gtia_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, ATARI_GTIA, "Atari GTIA", tag, owner, clock, "gtia", __FILE__), - m_read_cb(*this), - m_write_cb(*this) + device_t(mconfig, ATARI_GTIA, tag, owner, clock), + m_read_cb(*this), + m_write_cb(*this) { } diff --git a/src/mame/video/gtia.h b/src/mame/video/gtia.h index 6bb78f407ed..68f911fde35 100644 --- a/src/mame/video/gtia.h +++ b/src/mame/video/gtia.h @@ -10,110 +10,12 @@ ***************************************************************************/ -#ifndef __GTIA_H__ -#define __GTIA_H__ +#ifndef MAME_VIDEO_GTIA_H +#define MAME_VIDEO_GTIA_H +#pragma once -/* reading registers */ -struct gtia_readregs -{ - uint8_t m0pf; /* d000 missile 0 playfield collisions */ - uint8_t m1pf; /* d001 missile 1 playfield collisions */ - uint8_t m2pf; /* d002 missile 2 playfield collisions */ - uint8_t m3pf; /* d003 missile 3 playfield collisions */ - uint8_t p0pf; /* d004 player 0 playfield collisions */ - uint8_t p1pf; /* d005 player 1 playfield collisions */ - uint8_t p2pf; /* d006 player 2 playfield collisions */ - uint8_t p3pf; /* d007 player 3 playfield collisions */ - uint8_t m0pl; /* d008 missile 0 player collisions */ - uint8_t m1pl; /* d009 missile 1 player collisions */ - uint8_t m2pl; /* d00a missile 2 player collisions */ - uint8_t m3pl; /* d00b missile 3 player collisions */ - uint8_t p0pl; /* d00c player 0 player collisions */ - uint8_t p1pl; /* d00d player 1 player collisions */ - uint8_t p2pl; /* d00e player 2 player collisions */ - uint8_t p3pl; /* d00f player 3 player collisions */ - uint8_t but[4]; /* d010-d013 button stick 0-3 */ - uint8_t pal; /* d014 PAL/NTSC config (D3,2,1 0=PAL, 1=NTSC */ - uint8_t gtia15; /* d015 nothing */ - uint8_t gtia16; /* d016 nothing */ - uint8_t gtia17; /* d017 nothing */ - uint8_t gtia18; /* d018 nothing */ - uint8_t gtia19; /* d019 nothing */ - uint8_t gtia1a; /* d01a nothing */ - uint8_t gtia1b; /* d01b nothing */ - uint8_t gtia1c; /* d01c nothing */ - uint8_t gtia1d; /* d01d nothing */ - uint8_t gtia1e; /* d01e nothing */ - uint8_t cons; /* d01f console keys */ -}; - -/* writing registers */ -struct gtia_writeregs -{ - uint8_t hposp0; /* d000 player 0 horz position */ - uint8_t hposp1; /* d001 player 1 horz position */ - uint8_t hposp2; /* d002 player 2 horz position */ - uint8_t hposp3; /* d003 player 3 horz position */ - uint8_t hposm0; /* d004 missile 0 horz position */ - uint8_t hposm1; /* d005 missile 1 horz position */ - uint8_t hposm2; /* d006 missile 2 horz position */ - uint8_t hposm3; /* d007 missile 3 horz position */ - uint8_t sizep0; /* d008 size player 0 */ - uint8_t sizep1; /* d009 size player 1 */ - uint8_t sizep2; /* d00a size player 2 */ - uint8_t sizep3; /* d00b size player 3 */ - uint8_t sizem; /* d00c size missiles */ - uint8_t grafp0[2]; /* d00d graphics data for player 0 */ - uint8_t grafp1[2]; /* d00e graphics data for player 1 */ - uint8_t grafp2[2]; /* d00f graphics data for player 2 */ - uint8_t grafp3[2]; /* d010 graphics data for player 3 */ - uint8_t grafm[2]; /* d011 graphics data for missiles */ - uint8_t colpm0; /* d012 color for player/missile 0 */ - uint8_t colpm1; /* d013 color for player/missile 1 */ - uint8_t colpm2; /* d014 color for player/missile 2 */ - uint8_t colpm3; /* d015 color for player/missile 3 */ - uint8_t colpf0; /* d016 playfield color 0 */ - uint8_t colpf1; /* d017 playfield color 1 */ - uint8_t colpf2; /* d018 playfield color 2 */ - uint8_t colpf3; /* d019 playfield color 3 */ - uint8_t colbk; /* d01a background playfield */ - uint8_t prior; /* d01b priority select */ - uint8_t vdelay; /* d01c delay until vertical retrace */ - uint8_t gractl; /* d01d graphics control */ - uint8_t hitclr; /* d01e clear collisions */ - uint8_t cons; /* d01f write console (speaker) */ -}; - -/* helpers */ -struct gtia_helpervars -{ - uint8_t grafp0; /* optimized graphics data player 0 */ - uint8_t grafp1; /* optimized graphics data player 1 */ - uint8_t grafp2; /* optimized graphics data player 2 */ - uint8_t grafp3; /* optimized graphics data player 3 */ - uint8_t grafm0; /* optimized graphics data missile 0 */ - uint8_t grafm1; /* optimized graphics data missile 1 */ - uint8_t grafm2; /* optimized graphics data missile 2 */ - uint8_t grafm3; /* optimized graphics data missile 3 */ - uint32_t hitclr_frames;/* frames gone since last hitclr */ - uint8_t sizem; /* optimized size missiles */ - uint8_t usedp; /* mask for used player colors */ - uint8_t usedm0; /* mask for used missile 0 color */ - uint8_t usedm1; /* mask for used missile 1 color */ - uint8_t usedm2; /* mask for used missile 2 color */ - uint8_t usedm3; /* mask for used missile 3 color */ - uint8_t vdelay_m0; /* vertical delay for missile 0 */ - uint8_t vdelay_m1; /* vertical delay for missile 1 */ - uint8_t vdelay_m2; /* vertical delay for missile 2 */ - uint8_t vdelay_m3; /* vertical delay for missile 3 */ - uint8_t vdelay_p0; /* vertical delay for player 0 */ - uint8_t vdelay_p1; /* vertical delay for player 1 */ - uint8_t vdelay_p2; /* vertical delay for player 2 */ - uint8_t vdelay_p3; /* vertical delay for player 3 */ -}; - #define MCFG_GTIA_READ_CB(_devcb) \ devcb = >ia_device::set_read_callback(*device, DEVCB_##_devcb); @@ -129,8 +31,8 @@ public: // construction/destruction gtia_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_read_callback(device_t &device, _Object object) { return downcast(device).m_read_cb.set_callback(object); } - template static devcb_base &set_write_callback(device_t &device, _Object object) { return downcast(device).m_write_cb.set_callback(object); } + template static devcb_base &set_read_callback(device_t &device, Object &&cb) { return downcast(device).m_read_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_write_callback(device_t &device, Object &&cb) { return downcast(device).m_write_cb.set_callback(std::forward(cb)); } DECLARE_READ8_MEMBER( read ); DECLARE_WRITE8_MEMBER( write ); @@ -168,6 +70,105 @@ protected: inline void missile_render(uint8_t gfx, int size, uint8_t color, uint8_t *dst); private: + /* reading registers */ + struct gtia_readregs + { + uint8_t m0pf; /* d000 missile 0 playfield collisions */ + uint8_t m1pf; /* d001 missile 1 playfield collisions */ + uint8_t m2pf; /* d002 missile 2 playfield collisions */ + uint8_t m3pf; /* d003 missile 3 playfield collisions */ + uint8_t p0pf; /* d004 player 0 playfield collisions */ + uint8_t p1pf; /* d005 player 1 playfield collisions */ + uint8_t p2pf; /* d006 player 2 playfield collisions */ + uint8_t p3pf; /* d007 player 3 playfield collisions */ + uint8_t m0pl; /* d008 missile 0 player collisions */ + uint8_t m1pl; /* d009 missile 1 player collisions */ + uint8_t m2pl; /* d00a missile 2 player collisions */ + uint8_t m3pl; /* d00b missile 3 player collisions */ + uint8_t p0pl; /* d00c player 0 player collisions */ + uint8_t p1pl; /* d00d player 1 player collisions */ + uint8_t p2pl; /* d00e player 2 player collisions */ + uint8_t p3pl; /* d00f player 3 player collisions */ + uint8_t but[4]; /* d010-d013 button stick 0-3 */ + uint8_t pal; /* d014 PAL/NTSC config (D3,2,1 0=PAL, 1=NTSC */ + uint8_t gtia15; /* d015 nothing */ + uint8_t gtia16; /* d016 nothing */ + uint8_t gtia17; /* d017 nothing */ + uint8_t gtia18; /* d018 nothing */ + uint8_t gtia19; /* d019 nothing */ + uint8_t gtia1a; /* d01a nothing */ + uint8_t gtia1b; /* d01b nothing */ + uint8_t gtia1c; /* d01c nothing */ + uint8_t gtia1d; /* d01d nothing */ + uint8_t gtia1e; /* d01e nothing */ + uint8_t cons; /* d01f console keys */ + }; + + /* writing registers */ + struct gtia_writeregs + { + uint8_t hposp0; /* d000 player 0 horz position */ + uint8_t hposp1; /* d001 player 1 horz position */ + uint8_t hposp2; /* d002 player 2 horz position */ + uint8_t hposp3; /* d003 player 3 horz position */ + uint8_t hposm0; /* d004 missile 0 horz position */ + uint8_t hposm1; /* d005 missile 1 horz position */ + uint8_t hposm2; /* d006 missile 2 horz position */ + uint8_t hposm3; /* d007 missile 3 horz position */ + uint8_t sizep0; /* d008 size player 0 */ + uint8_t sizep1; /* d009 size player 1 */ + uint8_t sizep2; /* d00a size player 2 */ + uint8_t sizep3; /* d00b size player 3 */ + uint8_t sizem; /* d00c size missiles */ + uint8_t grafp0[2]; /* d00d graphics data for player 0 */ + uint8_t grafp1[2]; /* d00e graphics data for player 1 */ + uint8_t grafp2[2]; /* d00f graphics data for player 2 */ + uint8_t grafp3[2]; /* d010 graphics data for player 3 */ + uint8_t grafm[2]; /* d011 graphics data for missiles */ + uint8_t colpm0; /* d012 color for player/missile 0 */ + uint8_t colpm1; /* d013 color for player/missile 1 */ + uint8_t colpm2; /* d014 color for player/missile 2 */ + uint8_t colpm3; /* d015 color for player/missile 3 */ + uint8_t colpf0; /* d016 playfield color 0 */ + uint8_t colpf1; /* d017 playfield color 1 */ + uint8_t colpf2; /* d018 playfield color 2 */ + uint8_t colpf3; /* d019 playfield color 3 */ + uint8_t colbk; /* d01a background playfield */ + uint8_t prior; /* d01b priority select */ + uint8_t vdelay; /* d01c delay until vertical retrace */ + uint8_t gractl; /* d01d graphics control */ + uint8_t hitclr; /* d01e clear collisions */ + uint8_t cons; /* d01f write console (speaker) */ + }; + + /* helpers */ + struct gtia_helpervars + { + uint8_t grafp0; /* optimized graphics data player 0 */ + uint8_t grafp1; /* optimized graphics data player 1 */ + uint8_t grafp2; /* optimized graphics data player 2 */ + uint8_t grafp3; /* optimized graphics data player 3 */ + uint8_t grafm0; /* optimized graphics data missile 0 */ + uint8_t grafm1; /* optimized graphics data missile 1 */ + uint8_t grafm2; /* optimized graphics data missile 2 */ + uint8_t grafm3; /* optimized graphics data missile 3 */ + uint32_t hitclr_frames;/* frames gone since last hitclr */ + uint8_t sizem; /* optimized size missiles */ + uint8_t usedp; /* mask for used player colors */ + uint8_t usedm0; /* mask for used missile 0 color */ + uint8_t usedm1; /* mask for used missile 1 color */ + uint8_t usedm2; /* mask for used missile 2 color */ + uint8_t usedm3; /* mask for used missile 3 color */ + uint8_t vdelay_m0; /* vertical delay for missile 0 */ + uint8_t vdelay_m1; /* vertical delay for missile 1 */ + uint8_t vdelay_m2; /* vertical delay for missile 2 */ + uint8_t vdelay_m3; /* vertical delay for missile 3 */ + uint8_t vdelay_p0; /* vertical delay for player 0 */ + uint8_t vdelay_p1; /* vertical delay for player 1 */ + uint8_t vdelay_p2; /* vertical delay for player 2 */ + uint8_t vdelay_p3; /* vertical delay for player 3 */ + }; + gtia_readregs m_r; /* read registers */ gtia_writeregs m_w; /* write registers */ gtia_helpervars m_h; /* helper variables */ @@ -184,6 +185,6 @@ private: // device type definition -extern const device_type ATARI_GTIA; +DECLARE_DEVICE_TYPE(ATARI_GTIA, gtia_device) -#endif /* __GTIA_H__ */ +#endif // MAME_VIDEO_GTIA_H diff --git a/src/mame/video/igs017_igs031.cpp b/src/mame/video/igs017_igs031.cpp index 9c6e46c010d..91dabdf1771 100644 --- a/src/mame/video/igs017_igs031.cpp +++ b/src/mame/video/igs017_igs031.cpp @@ -73,10 +73,10 @@ GFXDECODE_MEMBER( igs017_igs031_device::gfxinfo ) GFXDECODE_END -const device_type IGS017_IGS031 = device_creator; +DEFINE_DEVICE_TYPE(IGS017_IGS031, igs017_igs031_device, "igs017_031", "IGS017_IGS031") igs017_igs031_device::igs017_igs031_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, IGS017_IGS031, "IGS017_IGS031", tag, owner, clock, "igs017_igs031", __FILE__), + : device_t(mconfig, IGS017_IGS031, tag, owner, clock), device_gfx_interface(mconfig, *this, gfxinfo), device_video_interface(mconfig, *this), device_memory_interface(mconfig, *this), diff --git a/src/mame/video/igs017_igs031.h b/src/mame/video/igs017_igs031.h index 39b6290b5b2..6285b7391d1 100644 --- a/src/mame/video/igs017_igs031.h +++ b/src/mame/video/igs017_igs031.h @@ -1,5 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Pierpaolo Prazzoli, Luca Elia +#ifndef MAME_VIDEO_IGS017_IGS031_H +#define MAME_VIDEO_IGS017_IGS031_H + +#pragma once #include "machine/i8255.h" @@ -16,9 +20,6 @@ class igs017_igs031_device : public device_t, public device_video_interface, public device_memory_interface { - //static const gfx_layout tilelayout, spritelayout; - DECLARE_GFXDECODE_MEMBER(gfxinfo); - public: igs017_igs031_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); @@ -40,26 +41,10 @@ public: DECLARE_READ8_MEMBER(read); DECLARE_WRITE8_MEMBER(write); - // the gfx roms were often hooked up with the bits backwards, allow us to handle it here to save doing it in every driver. - int m_revbits; - - int m_toggle; - int m_debug_addr; - int m_debug_width; - uint8_t m_video_disable; - tilemap_t *m_fg_tilemap; - tilemap_t *m_bg_tilemap; - std::unique_ptr m_sprites_gfx; - int m_sprites_gfx_size; - int get_nmi_enable() { return m_nmi_enable; } int get_irq_enable() { return m_irq_enable; } - int m_nmi_enable; - int m_irq_enable; - - DECLARE_WRITE8_MEMBER(palram_w); DECLARE_READ8_MEMBER(i8255_r); @@ -90,9 +75,11 @@ protected: virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_0) const override; + DECLARE_GFXDECODE_MEMBER(gfxinfo); + +private: address_space_config m_space_config; -public: required_shared_ptr m_spriteram; required_shared_ptr m_fg_videoram; required_shared_ptr m_bg_videoram; @@ -100,7 +87,22 @@ public: optional_device m_i8255; required_device m_palette; -private: + // the gfx roms were often hooked up with the bits backwards, allow us to handle it here to save doing it in every driver. + int m_revbits; + + int m_toggle; + int m_debug_addr; + int m_debug_width; + uint8_t m_video_disable; + tilemap_t *m_fg_tilemap; + tilemap_t *m_bg_tilemap; + std::unique_ptr m_sprites_gfx; + int m_sprites_gfx_size; + + int m_nmi_enable; + int m_irq_enable; }; -extern const device_type IGS017_IGS031; +DECLARE_DEVICE_TYPE(IGS017_IGS031, igs017_igs031_device) + +#endif // MAME_VIDEO_IGS017_IGS031_H diff --git a/src/mame/video/intv.cpp b/src/mame/video/intv.cpp index 678c820765b..cf1bf324777 100644 --- a/src/mame/video/intv.cpp +++ b/src/mame/video/intv.cpp @@ -23,8 +23,8 @@ uint32_t intv_state::screen_update_intvkbd(screen_device &screen, bitmap_ind16 & if (!m_intvkbd_text_blanked) { uint8_t *videoram = m_videoram; - int xoffset = STIC_OVERSCAN_LEFT_WIDTH*STIC_X_SCALE*INTVKBD_X_SCALE; - int yoffset = STIC_OVERSCAN_TOP_HEIGHT*STIC_Y_SCALE*INTVKBD_Y_SCALE; + int xoffset = stic_device::OVERSCAN_LEFT_WIDTH*stic_device::X_SCALE*INTVKBD_X_SCALE; + int yoffset = stic_device::OVERSCAN_TOP_HEIGHT*stic_device::Y_SCALE*INTVKBD_Y_SCALE; rectangle cursor_rect; m_crtc->cursor_bounds(cursor_rect); diff --git a/src/mame/video/itech8.cpp b/src/mame/video/itech8.cpp index b96353a17ca..48ff06ed009 100644 --- a/src/mame/video/itech8.cpp +++ b/src/mame/video/itech8.cpp @@ -263,7 +263,7 @@ inline void itech8_state::consume_rle(int count) void itech8_state::perform_blit(address_space &space) { - offs_t addr = m_tms34061->m_display.regs[TMS34061_XYADDRESS] | ((m_tms34061->m_display.regs[TMS34061_XYOFFSET] & 0x300) << 8); + offs_t addr = m_tms34061->xyaddress() | ((m_tms34061->xyoffset() & 0x300) << 8); uint8_t shift = (BLITTER_FLAGS & BLITFLAG_SHIFT) ? 4 : 0; int transparent = (BLITTER_FLAGS & BLITFLAG_TRANSPARENT); int ydir = (BLITTER_FLAGS & BLITFLAG_YFLIP) ? -1 : 1; @@ -283,7 +283,7 @@ void itech8_state::perform_blit(address_space &space) logerror("Blit: scan=%d src=%06x @ (%05x) for %dx%d ... flags=%02x\n", m_screen->vpos(), (m_grom_bank << 16) | (BLITTER_ADDRHI << 8) | BLITTER_ADDRLO, - m_tms34061->m_display.regs[TMS34061_XYADDRESS] | ((m_tms34061->m_display.regs[TMS34061_XYOFFSET] & 0x300) << 8), + m_tms34061->xyaddress() | ((m_tms34061->xyoffset() & 0x300) << 8), BLITTER_WIDTH, BLITTER_HEIGHT, BLITTER_FLAGS); /* initialize the fetcher */ @@ -455,7 +455,7 @@ WRITE8_MEMBER(itech8_state::blitter_w) if (BLIT_LOGGING) { logerror("Blit: XY=%1X%04X SRC=%02X%02X%02X SIZE=%3dx%3d FLAGS=%02x", - (m_tms34061->m_display.regs[TMS34061_XYOFFSET] >> 8) & 0x0f, m_tms34061->m_display.regs[TMS34061_XYADDRESS], + (m_tms34061->xyoffset() >> 8) & 0x0f, m_tms34061->xyaddress(), m_grom_bank, m_blitter_data[0], m_blitter_data[1], m_blitter_data[4], m_blitter_data[5], m_blitter_data[2]); @@ -584,7 +584,7 @@ uint32_t itech8_state::screen_update_2layer(screen_device &screen, bitmap_rgb32 m_tms34061->get_display_state(); /* if we're blanked, just fill with black */ - if (m_tms34061->m_display.blanked) + if (m_tms34061->blanked()) { bitmap.fill(rgb_t::black(), cliprect); return 0; @@ -619,7 +619,7 @@ uint32_t itech8_state::screen_update_grmatch(screen_device &screen, bitmap_rgb32 m_tms34061->get_display_state(); /* if we're blanked, just fill with black */ - if (m_tms34061->m_display.blanked) + if (m_tms34061->blanked()) { bitmap.fill(rgb_t::black(), cliprect); return 0; @@ -667,7 +667,7 @@ uint32_t itech8_state::screen_update_2page(screen_device &screen, bitmap_rgb32 & m_tms34061->get_display_state(); /* if we're blanked, just fill with black */ - if (m_tms34061->m_display.blanked) + if (m_tms34061->blanked()) { bitmap.fill(rgb_t::black(), cliprect); return 0; @@ -698,7 +698,7 @@ uint32_t itech8_state::screen_update_2page_large(screen_device &screen, bitmap_r m_tms34061->get_display_state(); /* if we're blanked, just fill with black */ - if (m_tms34061->m_display.blanked) + if (m_tms34061->blanked()) { bitmap.fill(rgb_t::black(), cliprect); return 0; diff --git a/src/mame/video/jalblend.cpp b/src/mame/video/jalblend.cpp index 3f0faeab5f6..650bd99a8f2 100644 --- a/src/mame/video/jalblend.cpp +++ b/src/mame/video/jalblend.cpp @@ -22,11 +22,11 @@ -const device_type JALECO_BLEND = device_creator; +DEFINE_DEVICE_TYPE(JALECO_BLEND, jaleco_blend_device, "jaleco_blend", "Jaleco Blending Device") jaleco_blend_device::jaleco_blend_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, JALECO_BLEND, "Jaleco Blending Device", tag, owner, clock, "jaleco_blend", __FILE__), - m_table(nullptr) + : device_t(mconfig, JALECO_BLEND, tag, owner, clock) + , m_table(nullptr) { } diff --git a/src/mame/video/jalblend.h b/src/mame/video/jalblend.h index 7eb21f82ba8..825f2ab18f1 100644 --- a/src/mame/video/jalblend.h +++ b/src/mame/video/jalblend.h @@ -1,5 +1,10 @@ // license:BSD-3-Clause // copyright-holders:David Haywood, Luca Elia +#ifndef MAME_VIDEO_JALBLEND_H +#define MAME_VIDEO_JALBLEND_H + +#pragma once + class jaleco_blend_device : public device_t { public: @@ -30,4 +35,6 @@ private: int transparent_color); }; -extern const device_type JALECO_BLEND; +DECLARE_DEVICE_TYPE(JALECO_BLEND, jaleco_blend_device) + +#endif // MAME_VIDEO_JALBLEND_H diff --git a/src/mame/video/k001005.cpp b/src/mame/video/k001005.cpp index f677a03d15d..8e44865eb47 100644 --- a/src/mame/video/k001005.cpp +++ b/src/mame/video/k001005.cpp @@ -3,6 +3,8 @@ #include "emu.h" #include "k001005.h" +#include "video/k001006.h" + /*****************************************************************************/ /* Konami K001005 Polygon Renderer (KS10071) */ @@ -1181,10 +1183,10 @@ void k001005_renderer::draw(bitmap_rgb32 &bitmap, const rectangle &cliprect) -const device_type K001005 = device_creator; +DEFINE_DEVICE_TYPE(K001005, k001005_device, "k001005", "K001005 Polygon Renderer") k001005_device::k001005_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, K001005, "K001005 Polygon Renderer", tag, owner, clock, "k001005", __FILE__), + : device_t(mconfig, K001005, tag, owner, clock), device_video_interface(mconfig, *this), m_k001006(nullptr), m_fifo(nullptr), diff --git a/src/mame/video/k001005.h b/src/mame/video/k001005.h index e36c3c5a0ee..4a459295d24 100644 --- a/src/mame/video/k001005.h +++ b/src/mame/video/k001005.h @@ -1,14 +1,15 @@ // license:BSD-3-Clause // copyright-holders:David Haywood +#ifndef MAME_VIDEO_K001005_H +#define MAME_VIDEO_K001005_H + #pragma once -#ifndef __K001005_H__ -#define __K001005_H__ -#include #include "video/poly.h" -#include "video/k001006.h" #include "cpu/sharc/sharc.h" +#include + struct k001005_polydata { @@ -44,7 +45,6 @@ class k001005_renderer : public poly_manager { public: k001005_renderer(device_t &parent, screen_device &screen, device_t *k001006); - ~k001005_renderer() {} void reset(); void push_data(uint32_t data); @@ -60,16 +60,16 @@ public: void draw_scanline_tex(int32_t scanline, const extent_t &extent, const k001005_polydata &extradata, int threadid); void draw_scanline_gouraud_blend(int32_t scanline, const extent_t &extent, const k001005_polydata &extradata, int threadid); - static const int POLY_Z = 0; - static const int POLY_FOG = 1; - static const int POLY_BRI = 2; - static const int POLY_U = 3; - static const int POLY_V = 4; - static const int POLY_W = 5; - static const int POLY_A = 2; - static const int POLY_R = 3; - static const int POLY_G = 4; - static const int POLY_B = 5; + static constexpr int POLY_Z = 0; + static constexpr int POLY_FOG = 1; + static constexpr int POLY_BRI = 2; + static constexpr int POLY_U = 3; + static constexpr int POLY_V = 4; + static constexpr int POLY_W = 5; + static constexpr int POLY_A = 2; + static constexpr int POLY_R = 3; + static constexpr int POLY_G = 4; + static constexpr int POLY_B = 5; private: std::unique_ptr m_fb[2]; @@ -99,12 +99,10 @@ private: }; -class k001005_device : public device_t, - public device_video_interface +class k001005_device : public device_t, public device_video_interface { public: k001005_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~k001005_device() {} static void set_texel_chip(device_t &device, const char *tag); @@ -138,10 +136,10 @@ private: k001005_renderer *m_renderer; }; -extern const device_type K001005; +DECLARE_DEVICE_TYPE(K001005, k001005_device) #define MCFG_K001005_TEXEL_CHIP(_tag) \ k001005_device::set_texel_chip(*device, _tag); -#endif +#endif // MAME_VIDEO_K001005_H diff --git a/src/mame/video/k001006.cpp b/src/mame/video/k001006.cpp index 9d4b1f62516..54aa9d088cf 100644 --- a/src/mame/video/k001006.cpp +++ b/src/mame/video/k001006.cpp @@ -12,10 +12,10 @@ /* */ /***************************************************************************/ -const device_type K001006 = device_creator; +DEFINE_DEVICE_TYPE(K001006, k001006_device, "k001006", "K001006 Texel Unit") k001006_device::k001006_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, K001006, "K001006 Texel Unit", tag, owner, clock, "k001006", __FILE__), + : device_t(mconfig, K001006, tag, owner, clock), m_pal_ram(nullptr), m_unknown_ram(nullptr), m_addr(0), diff --git a/src/mame/video/k001006.h b/src/mame/video/k001006.h index b41696a6b52..8a49eb1c891 100644 --- a/src/mame/video/k001006.h +++ b/src/mame/video/k001006.h @@ -1,8 +1,9 @@ // license:BSD-3-Clause // copyright-holders:David Haywood +#ifndef MAME_VIDEO_K001006_H +#define MAME_VIDEO_K001006_H + #pragma once -#ifndef __K001006_H__ -#define __K001006_H__ @@ -49,6 +50,7 @@ private: extern const device_type K001006; +DECLARE_DEVICE_TYPE(K001006, k001006_device) #define MCFG_K001006_GFX_REGION(_tag) \ @@ -57,4 +59,4 @@ extern const device_type K001006; #define MCFG_K001006_TEX_LAYOUT(x) \ k001006_device::set_tex_layout(*device, x); -#endif +#endif // MAME_VIDEO_K001006_H diff --git a/src/mame/video/k001604.cpp b/src/mame/video/k001604.cpp index 1ad9bf82123..39955b2a803 100644 --- a/src/mame/video/k001604.cpp +++ b/src/mame/video/k001604.cpp @@ -15,10 +15,10 @@ #define K001604_NUM_TILES_LAYER0 16384 #define K001604_NUM_TILES_LAYER1 4096 -const device_type K001604 = device_creator; +DEFINE_DEVICE_TYPE(K001604, k001604_device, "k001604_device", "K001604 2D tilemaps + 2x ROZ") k001604_device::k001604_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, K001604, "K001604 2D tilemaps + 2x ROZ", tag, owner, clock, "k001604", __FILE__), + : device_t(mconfig, K001604, tag, owner, clock), device_gfx_interface(mconfig, *this, nullptr), m_layer_size(0), m_roz_size(0), diff --git a/src/mame/video/k001604.h b/src/mame/video/k001604.h index d149b9460a8..1bbe1278ae2 100644 --- a/src/mame/video/k001604.h +++ b/src/mame/video/k001604.h @@ -1,15 +1,15 @@ // license:BSD-3-Clause // copyright-holders:David Haywood +#ifndef MAME_VIDEO_K001604_H +#define MAME_VIDEO_K001604_H + #pragma once -#ifndef __K001604_H__ -#define __K001604_H__ class k001604_device : public device_t, public device_gfx_interface { public: k001604_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~k001604_device() {} // static configuration static void set_layer_size(device_t &device, int size) { downcast(device).m_layer_size = size; } @@ -54,7 +54,7 @@ private: TILE_GET_INFO_MEMBER(tile_info_layer_roz); }; -extern const device_type K001604; +DECLARE_DEVICE_TYPE(K001604, k001604_device) #define MCFG_K001604_LAYER_SIZE(_size) \ @@ -72,4 +72,4 @@ extern const device_type K001604; #define MCFG_K001604_PALETTE(_palette_tag) \ MCFG_GFX_PALETTE(_palette_tag) -#endif +#endif // MAME_VIDEO_K001604_H diff --git a/src/mame/video/k007121.cpp b/src/mame/video/k007121.cpp index c8dcb08cb15..04a367572e5 100644 --- a/src/mame/video/k007121.cpp +++ b/src/mame/video/k007121.cpp @@ -1,5 +1,5 @@ // license:BSD-3-Clause -// copyright-holders:Fabio Priuli,Acho A. Tang, R. Belmont +// copyright-holders:Fabio Priuli, Acho A. Tang, R. Belmont /* Konami 007121 ------ @@ -119,10 +119,10 @@ control registers #define LOG(x) do { if (VERBOSE) logerror x; } while (0) -const device_type K007121 = device_creator; +DEFINE_DEVICE_TYPE(K007121, k007121_device, "k007121", "K007121 Sprite/Tilemap Controller") k007121_device::k007121_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, K007121, "K007121 Sprite/Tilemap Controller", tag, owner, clock, "k007121", __FILE__) + : device_t(mconfig, K007121, tag, owner, clock) , m_flipscreen(0) , m_palette(*this, finder_base::DUMMY_TAG) { diff --git a/src/mame/video/k007121.h b/src/mame/video/k007121.h index e972362a12d..74aeaf5b7d4 100644 --- a/src/mame/video/k007121.h +++ b/src/mame/video/k007121.h @@ -1,14 +1,15 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli,Acho A. Tang, R. Belmont +#ifndef MAME_VIDEO_K007121_H +#define MAME_VIDEO_K007121_H + #pragma once -#ifndef __K007121_H__ -#define __K007121_H__ + class k007121_device : public device_t { public: k007121_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~k007121_device() {} static void static_set_palette_tag(device_t &device, const char *tag); @@ -31,7 +32,7 @@ private: required_device m_palette; }; -extern const device_type K007121; +DECLARE_DEVICE_TYPE(K007121, k007121_device) #define MCFG_K007121_ADD(_tag) \ MCFG_DEVICE_ADD(_tag, K007121, 0) @@ -39,4 +40,4 @@ extern const device_type K007121; #define MCFG_K007121_PALETTE(_palette_tag) \ k007121_device::static_set_palette_tag(*device, "^" _palette_tag); -#endif +#endif // MAME_VIDEO_K007121_H diff --git a/src/mame/video/k007342.cpp b/src/mame/video/k007342.cpp index 65fa0dc9ae1..5290b1636e6 100644 --- a/src/mame/video/k007342.cpp +++ b/src/mame/video/k007342.cpp @@ -35,10 +35,10 @@ control registers #define VERBOSE 0 #define LOG(x) do { if (VERBOSE) logerror x; } while (0) -const device_type K007342 = device_creator; +DEFINE_DEVICE_TYPE(K007342, k007342_device, "k007342", "K007342 Video Controller") k007342_device::k007342_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, K007342, "K007342 Video Controller", tag, owner, clock, "k007342", __FILE__), + : device_t(mconfig, K007342, tag, owner, clock), m_ram(nullptr), m_scroll_ram(nullptr), m_videoram_0(nullptr), diff --git a/src/mame/video/k007342.h b/src/mame/video/k007342.h index f3bc0439398..a25e16f244d 100644 --- a/src/mame/video/k007342.h +++ b/src/mame/video/k007342.h @@ -1,8 +1,10 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli,Acho A. Tang, R. Belmont +#ifndef MAME_VIDEO_K007342_H +#define MAME_VIDEO_K007342_H + #pragma once -#ifndef __K007342_H__ -#define __K007342_H__ + typedef device_delegate k007342_delegate; @@ -10,7 +12,6 @@ class k007342_device : public device_t { public: k007342_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~k007342_device() {} // static configuration static void static_set_gfxdecode_tag(device_t &device, const char *tag); @@ -55,7 +56,7 @@ private: void get_tile_info( tile_data &tileinfo, int tile_index, int layer, uint8_t *cram, uint8_t *vram ); }; -extern const device_type K007342; +DECLARE_DEVICE_TYPE(K007342, k007342_device) #define MCFG_K007342_ADD(_tag) \ MCFG_DEVICE_ADD(_tag, K007342, 0) @@ -74,4 +75,4 @@ extern const device_type K007342; // function definition for a callback #define K007342_CALLBACK_MEMBER(_name) void _name(int layer, int bank, int *code, int *color, int *flags) -#endif +#endif // MAME_VIDEO_K007342_H diff --git a/src/mame/video/k007420.cpp b/src/mame/video/k007420.cpp index 30c735f7248..235ee5c222c 100644 --- a/src/mame/video/k007420.cpp +++ b/src/mame/video/k007420.cpp @@ -16,10 +16,10 @@ and a variable amount of ROM. Nothing is known about its external interface. #define K007420_SPRITERAM_SIZE 0x200 -const device_type K007420 = device_creator; +DEFINE_DEVICE_TYPE(K007420, k007420_device, "k007420", "K007420 Sprite Generator") k007420_device::k007420_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, K007420, "K007420 Sprite Generator", tag, owner, clock, "k007420", __FILE__) + : device_t(mconfig, K007420, tag, owner, clock) , m_ram(nullptr) , m_flipscreen(0) , m_palette(*this, finder_base::DUMMY_TAG) diff --git a/src/mame/video/k007420.h b/src/mame/video/k007420.h index 637adf200ab..c4bb9a318c6 100644 --- a/src/mame/video/k007420.h +++ b/src/mame/video/k007420.h @@ -1,8 +1,10 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli,Acho A. Tang, R. Belmont +#ifndef MAME_VIDEO_K007420_H +#define MAME_VIDEO_K007420_H + #pragma once -#ifndef __K007420_H__ -#define __K007420_H__ + typedef device_delegate k007420_delegate; @@ -10,7 +12,6 @@ class k007420_device : public device_t { public: k007420_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~k007420_device() {} static void static_set_palette_tag(device_t &device, const char *tag); static void static_set_bank_limit(device_t &device, int limit) { downcast(device).m_banklimit = limit; } @@ -35,7 +36,7 @@ private: k007420_delegate m_callback; }; -extern const device_type K007420; +DECLARE_DEVICE_TYPE(K007420, k007420_device) #define MCFG_K007420_ADD(_tag) \ MCFG_DEVICE_ADD(_tag, K007420, 0) @@ -53,4 +54,4 @@ extern const device_type K007420; #define K007420_CALLBACK_MEMBER(_name) void _name(int *code, int *color) -#endif +#endif // MAME_VIDEO_K007420_H diff --git a/src/mame/video/k037122.cpp b/src/mame/video/k037122.cpp index 4885c080e63..9939cdaa24f 100644 --- a/src/mame/video/k037122.cpp +++ b/src/mame/video/k037122.cpp @@ -14,10 +14,10 @@ Konami 037122 #define K037122_NUM_TILES 16384 -const device_type K037122 = device_creator; +DEFINE_DEVICE_TYPE(K037122, k037122_device, "k037122", "K037122 2D Tilemap") k037122_device::k037122_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, K037122, "K037122 2D Tilemap", tag, owner, clock, "k037122", __FILE__), + : device_t(mconfig, K037122, tag, owner, clock), device_video_interface(mconfig, *this), device_gfx_interface(mconfig, *this, nullptr), m_tile_ram(nullptr), diff --git a/src/mame/video/k037122.h b/src/mame/video/k037122.h index 317627d8783..dd0dff6f216 100644 --- a/src/mame/video/k037122.h +++ b/src/mame/video/k037122.h @@ -1,8 +1,8 @@ // license:BSD-3-Clause -// copyright-holders:Fabio Priuli,Acho A. Tang, R. Belmont +// copyright-holders:Fabio Priuli, Acho A. Tang, R. Belmont +#ifndef MAME_VIDEO_K037122_H +#define MAME_VIDEO_K037122_H #pragma once -#ifndef __K037122_H__ -#define __K037122_H__ class k037122_device : public device_t, public device_video_interface, @@ -10,7 +10,6 @@ class k037122_device : public device_t, { public: k037122_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~k037122_device() {} // static configuration static void static_set_gfx_index(device_t &device, int index) { downcast(device).m_gfx_index = index; } @@ -43,7 +42,7 @@ private: void update_palette_color( uint32_t palette_base, int color ); }; -extern const device_type K037122; +DECLARE_DEVICE_TYPE(K037122, k037122_device) #define MCFG_K037122_ADD(_tag, _screen) \ MCFG_DEVICE_ADD(_tag, K037122, 0) \ @@ -52,4 +51,4 @@ extern const device_type K037122; #define MCFG_K037122_PALETTE(_palette_tag) \ MCFG_GFX_PALETTE(_palette_tag) -#endif +#endif // MAME_VIDEO_K037122_H diff --git a/src/mame/video/k051316.cpp b/src/mame/video/k051316.cpp index e60bcc06bac..18fecde3e1e 100644 --- a/src/mame/video/k051316.cpp +++ b/src/mame/video/k051316.cpp @@ -41,9 +41,10 @@ control registers #define VERBOSE 0 -#define LOG(x) do { if (VERBOSE) logerror x; } while (0) +#include "logmacro.h" -const device_type K051316 = device_creator; + +DEFINE_DEVICE_TYPE(K051316, k051316_device, "k051316", "K051316 PSAC") const gfx_layout k051316_device::charlayout4 = @@ -104,7 +105,7 @@ GFXDECODE_END k051316_device::k051316_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, K051316, "K051316 PSAC", tag, owner, clock, "k051316", __FILE__), + : device_t(mconfig, K051316, tag, owner, clock), device_gfx_interface(mconfig, *this, gfxinfo), m_zoom_rom(*this, DEVICE_SELF), m_dx(0), diff --git a/src/mame/video/k051316.h b/src/mame/video/k051316.h index 0c3670a1fa2..dcf0a380973 100644 --- a/src/mame/video/k051316.h +++ b/src/mame/video/k051316.h @@ -1,8 +1,10 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli,Acho A. Tang, R. Belmont +#ifndef MAME_VIDEO_K051316_H +#define MAME_VIDEO_K051316_H + #pragma once -#ifndef __K051316_H__ -#define __K051316_H__ + typedef device_delegate k051316_cb_delegate; #define K051316_CB_MEMBER(_name) void _name(int *code, int *color, int *flags) @@ -24,12 +26,10 @@ typedef device_delegate k051316_cb_del k051316_device::set_wrap(*device, _wrap); -class k051316_device : public device_t, - public device_gfx_interface +class k051316_device : public device_t, public device_gfx_interface { public: k051316_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~k051316_device() {} static const gfx_layout charlayout4; static const gfx_layout charlayout7; @@ -95,6 +95,6 @@ private: TILE_GET_INFO_MEMBER(get_tile_info); }; -extern const device_type K051316; +DECLARE_DEVICE_TYPE(K051316, k051316_device) -#endif +#endif // MAME_VIDEO_K051316_H diff --git a/src/mame/video/k051733.cpp b/src/mame/video/k051733.cpp index 6bd7f99d412..25feef68b02 100644 --- a/src/mame/video/k051733.cpp +++ b/src/mame/video/k051733.cpp @@ -60,12 +60,13 @@ reads from 0x0006, and only uses bit 1. #include "konami_helper.h" #define VERBOSE 0 -#define LOG(x) do { if (VERBOSE) logerror x; } while (0) +#include "logmacro.h" -const device_type K051733 = device_creator; + +DEFINE_DEVICE_TYPE(K051733, k051733_device, "k051733", "K051733 Protection") k051733_device::k051733_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, K051733, "K051733 Protection", tag, owner, clock, "k051733", __FILE__), + : device_t(mconfig, K051733, tag, owner, clock), //m_ram[0x20], m_rng(0) { diff --git a/src/mame/video/k051733.h b/src/mame/video/k051733.h index f24106dedd1..e743409cb53 100644 --- a/src/mame/video/k051733.h +++ b/src/mame/video/k051733.h @@ -1,14 +1,15 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli,Acho A. Tang, R. Belmont +#ifndef MAME_VIDEO_K051733_H +#define MAME_VIDEO_K051733_H + #pragma once -#ifndef __K051733_H__ -#define __K051733_H__ + class k051733_device : public device_t { public: k051733_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~k051733_device() {} DECLARE_WRITE8_MEMBER( write ); DECLARE_READ8_MEMBER( read ); @@ -23,9 +24,9 @@ private: uint8_t m_rng; }; -extern const device_type K051733; +DECLARE_DEVICE_TYPE(K051733, k051733_device) #define MCFG_K051733_ADD(_tag) \ MCFG_DEVICE_ADD(_tag, K051733, 0) -#endif +#endif // MAME_VIDEO_K051733_H diff --git a/src/mame/video/k051960.cpp b/src/mame/video/k051960.cpp index 93299644cd3..cc90a4d4619 100644 --- a/src/mame/video/k051960.cpp +++ b/src/mame/video/k051960.cpp @@ -61,9 +61,10 @@ memory map: #include "k051960.h" #define VERBOSE 0 -#define LOG(x) do { if (VERBOSE) logerror x; } while (0) +#include "logmacro.h" -const device_type K051960 = device_creator; + +DEFINE_DEVICE_TYPE(K051960, k051960_device, "k051960", "K051960 Sprite Generator") const gfx_layout k051960_device::spritelayout = { @@ -126,7 +127,7 @@ GFXDECODE_END k051960_device::k051960_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, K051960, "K051960 Sprite Generator", tag, owner, clock, "k051960", __FILE__) + : device_t(mconfig, K051960, tag, owner, clock) , device_gfx_interface(mconfig, *this, gfxinfo) , m_ram(nullptr) , m_sprite_rom(*this, DEVICE_SELF) diff --git a/src/mame/video/k051960.h b/src/mame/video/k051960.h index caab61d3975..c9b83843311 100644 --- a/src/mame/video/k051960.h +++ b/src/mame/video/k051960.h @@ -34,8 +34,7 @@ typedef device_delegate static devcb_base &set_irq_handler(device_t &device, _Object object) - { return downcast(device).m_irq_handler.set_callback(object); } + template static devcb_base &set_irq_handler(device_t &device, Object &&cb) + { return downcast(device).m_irq_handler.set_callback(std::forward(cb)); } - template static devcb_base &set_nmi_handler(device_t &device, _Object object) - { return downcast(device).m_nmi_handler.set_callback(object); } + template static devcb_base &set_nmi_handler(device_t &device, Object &&cb) + { return downcast(device).m_nmi_handler.set_callback(std::forward(cb)); } // static configuration static void set_k051960_callback(device_t &device, k051960_cb_delegate callback) { downcast(device).m_k051960_cb = callback; } @@ -111,6 +109,6 @@ private: int k051960_fetchromdata( int byte ); }; -extern const device_type K051960; +DECLARE_DEVICE_TYPE(K051960, k051960_device) #endif // MAME_VIDEO_K051960_H diff --git a/src/mame/video/k052109.cpp b/src/mame/video/k052109.cpp index 3dbab67b8c7..a8fc8c2223e 100644 --- a/src/mame/video/k052109.cpp +++ b/src/mame/video/k052109.cpp @@ -124,9 +124,10 @@ to through the chip. #include "k052109.h" #define VERBOSE 0 -#define LOG(x) do { if (VERBOSE) logerror x; } while (0) +#include "logmacro.h" -const device_type K052109 = device_creator; + +DEFINE_DEVICE_TYPE(K052109, k052109_device, "k052109", "K052109 Tilemap Generator") const gfx_layout k052109_device::charlayout = { @@ -160,7 +161,7 @@ GFXDECODE_END k052109_device::k052109_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, K052109, "K052109 Tilemap Generator", tag, owner, clock, "k052109", __FILE__), + : device_t(mconfig, K052109, tag, owner, clock), device_gfx_interface(mconfig, *this, gfxinfo), m_ram(nullptr), m_videoram_F(nullptr), diff --git a/src/mame/video/k052109.h b/src/mame/video/k052109.h index e31adc250a0..0deacf9b467 100644 --- a/src/mame/video/k052109.h +++ b/src/mame/video/k052109.h @@ -2,6 +2,7 @@ // copyright-holders:Fabio Priuli,Acho A. Tang, R. Belmont #ifndef MAME_VIDEO_K052109_H #define MAME_VIDEO_K052109_H + #pragma once #include "screen.h" @@ -33,8 +34,8 @@ public: k052109_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); ~k052109_device() {} - template static devcb_base &set_irq_handler(device_t &device, _Object object) - { return downcast(device).m_irq_handler.set_callback(object); } + template static devcb_base &set_irq_handler(device_t &device, Object &&cb) + { return downcast(device).m_irq_handler.set_callback(std::forward(cb)); } static void set_k052109_callback(device_t &device, k052109_cb_delegate callback) { downcast(device).m_k052109_cb = callback; } static void set_ram(device_t &device, bool ram); @@ -116,6 +117,6 @@ private: void tileflip_reset(); }; -extern const device_type K052109; +DECLARE_DEVICE_TYPE(K052109, k052109_device) #endif // MAME_VIDEO_K052109_H diff --git a/src/mame/video/k053244_k053245.cpp b/src/mame/video/k053244_k053245.cpp index 2d9e0e1b4c4..9e96492e276 100644 --- a/src/mame/video/k053244_k053245.cpp +++ b/src/mame/video/k053244_k053245.cpp @@ -33,7 +33,7 @@ main ram and the buffer. #include "konami_helper.h" #define VERBOSE 0 -#define LOG(x) do { if (VERBOSE) logerror x; } while (0) +#include "logmacro.h" @@ -41,7 +41,8 @@ main ram and the buffer. DEVICE INTERFACE *****************************************************************************/ -const device_type K053244 = device_creator; +DEFINE_DEVICE_TYPE(K053244, k05324x_device, "k05324x", "K053244/053245 Sprite Generator") +device_type const K053245 = K053244; const gfx_layout k05324x_device::spritelayout = { @@ -82,7 +83,7 @@ GFXDECODE_END k05324x_device::k05324x_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, K053244, "K053244 & 053245 Sprite Generator", tag, owner, clock, "k05324x", __FILE__), + : device_t(mconfig, K053244, tag, owner, clock), device_gfx_interface(mconfig, *this, gfxinfo), m_ram(nullptr), m_buffer(nullptr), diff --git a/src/mame/video/k053244_k053245.h b/src/mame/video/k053244_k053245.h index f677e0b6653..e0176b39079 100644 --- a/src/mame/video/k053244_k053245.h +++ b/src/mame/video/k053244_k053245.h @@ -1,8 +1,9 @@ // license:BSD-3-Clause // copyright-holders:David Haywood +#ifndef MAME_VIDEO_K053244_K053245_H +#define MAME_VIDEO_K053244_K053245_H + #pragma once -#ifndef __K053244_K053245_H__ -#define __K053244_K053245_H__ typedef device_delegate k05324x_cb_delegate; @@ -19,8 +20,7 @@ typedef device_delegate k05324x_cb_ k05324x_device::set_offsets(*device, _xoffs, _yoffs); -class k05324x_device : public device_t, - public device_gfx_interface +class k05324x_device : public device_t, public device_gfx_interface { static const gfx_layout spritelayout; static const gfx_layout spritelayout_6bpp; @@ -29,7 +29,6 @@ class k05324x_device : public device_t, public: k05324x_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~k05324x_device() {} // static configuration static void set_bpp(device_t &device, int bpp); @@ -78,7 +77,7 @@ private: }; -extern const device_type K053244; -#define K053245 K053244 +DECLARE_DEVICE_TYPE(K053244, k05324x_device) +extern device_type const K053245; -#endif +#endif // MAME_VIDEO_K053244_K053245_H diff --git a/src/mame/video/k053246_k053247_k055673.cpp b/src/mame/video/k053246_k053247_k055673.cpp index 1ffa4dc6acd..4948c7b8f60 100644 --- a/src/mame/video/k053246_k053247_k055673.cpp +++ b/src/mame/video/k053246_k053247_k055673.cpp @@ -39,7 +39,7 @@ The sprite RAM format is very similar to the 053245. #include "konami_helper.h" #define VERBOSE 0 -#define LOG(x) do { if (VERBOSE) logerror x; } while (0) +#include "logmacro.h" /***************************************************************************** @@ -162,7 +162,7 @@ READ16_MEMBER( k053247_device::k055673_5bpp_rom_word_r ) // 5bpp romofs /= 2; return ROM8[romofs]; default: - LOG(("55673_rom_word_r: Unknown read offset %x\n", offset)); + LOG("55673_rom_word_r: Unknown read offset %x\n", offset); break; } @@ -214,7 +214,7 @@ READ8_MEMBER( k053247_device::k053246_r ) } else { -// LOG(("%04x: read from unknown 053246 address %x\n", space.device().safe_pc(), offset)); +// LOG("%04x: read from unknown 053246 address %x\n", space.device().safe_pc(), offset); return 0; } } @@ -914,10 +914,10 @@ void k053247_device::zdrawgfxzoom32GP( -const device_type K055673 = device_creator; +DEFINE_DEVICE_TYPE(K055673, k055673_device, "k055673", "K055673 Sprite Generator") k055673_device::k055673_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : k053247_device(mconfig, K055673, "K053246 & K055673 Sprite Generator", tag, owner, clock, "k055673", __FILE__) + : k053247_device(mconfig, K055673, tag, owner, clock) { } @@ -1067,19 +1067,16 @@ void k055673_device::device_start() -const device_type K053246 = device_creator; +DEFINE_DEVICE_TYPE(K053247, k053247_device, "k053247", "K053246/K053247 Sprite Generator") +device_type const K053246 = K053247; k053247_device::k053247_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, K053246, "K053246 & K053247 Sprite Generator", tag, owner, clock, "k053247", __FILE__), - device_video_interface(mconfig, *this), - device_gfx_interface(mconfig, *this), - m_gfx_num(0) + : k053247_device(mconfig, K053247, tag, owner, clock) { - clear_all(); } -k053247_device::k053247_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), +k053247_device::k053247_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock), device_video_interface(mconfig, *this), device_gfx_interface(mconfig, *this, nullptr), m_gfx_num(0) diff --git a/src/mame/video/k053246_k053247_k055673.h b/src/mame/video/k053246_k053247_k055673.h index 9083662b249..4782ca54a35 100644 --- a/src/mame/video/k053246_k053247_k055673.h +++ b/src/mame/video/k053246_k053247_k055673.h @@ -65,9 +65,6 @@ class k053247_device : public device_t, { public: k053247_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - k053247_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - - ~k053247_device() { } // static configuration static void set_k053247_callback(device_t &device, k053247_cb_delegate callback) { downcast(device).m_k053247_cb = callback; } @@ -463,23 +460,18 @@ public: } - - - - template - void k053247_sprites_draw_common( _BitmapClass &bitmap, const rectangle &cliprect ); - - protected: + k053247_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; -private: - + template void k053247_sprites_draw_common( _BitmapClass &bitmap, const rectangle &cliprect ); }; -extern const device_type K053246; +DECLARE_DEVICE_TYPE(K053247, k053247_device) +extern device_type const K053246; class k055673_device : public k053247_device { @@ -495,7 +487,7 @@ private: }; -extern const device_type K055673; +DECLARE_DEVICE_TYPE(K055673, k055673_device) #define MCFG_K053246_SET_SCREEN MCFG_VIDEO_SET_SCREEN diff --git a/src/mame/video/k053250.cpp b/src/mame/video/k053250.cpp index 09ad0464add..f3c393cecf6 100644 --- a/src/mame/video/k053250.cpp +++ b/src/mame/video/k053250.cpp @@ -5,10 +5,10 @@ #include "screen.h" -const device_type K053250 = device_creator; +DEFINE_DEVICE_TYPE(K053250, k053250_device, "k053250", "K053250 LVC") k053250_device::k053250_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, K053250, "K053250 LVC", tag, owner, clock, "k053250", __FILE__), + : device_t(mconfig, K053250, tag, owner, clock), device_gfx_interface(mconfig, *this), device_video_interface(mconfig, *this), m_rom(*this, DEVICE_SELF) diff --git a/src/mame/video/k053250.h b/src/mame/video/k053250.h index c4980bc058e..3365c7f4dbe 100644 --- a/src/mame/video/k053250.h +++ b/src/mame/video/k053250.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Olivier Galibert -#ifndef __K053250_H__ -#define __K053250_H__ +#ifndef MAME_VIDEO_K053250_H +#define MAME_VIDEO_K053250_H + +#pragma once // // Konami 053250 road generator @@ -57,6 +59,6 @@ private: uint32_t clipmask, uint32_t wrapmask, uint32_t orientation, bitmap_ind8 &priority, uint8_t pri); }; -extern const device_type K053250; +DECLARE_DEVICE_TYPE(K053250, k053250_device) -#endif +#endif // MAME_VIDEO_K053250_H diff --git a/src/mame/video/k053250_ps.cpp b/src/mame/video/k053250_ps.cpp index 72e841b55f2..9d607f5cba6 100644 --- a/src/mame/video/k053250_ps.cpp +++ b/src/mame/video/k053250_ps.cpp @@ -38,10 +38,10 @@ xxxx xxxx ROM access address [15:8] */ -const device_type K053250PS = device_creator; +DEFINE_DEVICE_TYPE(K053250PS, k053250ps_device, "k053250ps", "K053250PS LVC") k053250ps_device::k053250ps_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, K053250PS, "K053250PS LVC", tag, owner, clock, "k053250ps", __FILE__), + : device_t(mconfig, K053250PS, tag, owner, clock), device_gfx_interface(mconfig, *this), device_video_interface(mconfig, *this), m_dmairq_cb(*this), diff --git a/src/mame/video/k053250_ps.h b/src/mame/video/k053250_ps.h index f0835e37568..99479e5a9a2 100644 --- a/src/mame/video/k053250_ps.h +++ b/src/mame/video/k053250_ps.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Olivier Galibert -#ifndef __K053250PS_H__ -#define __K053250PS_H__ +#ifndef MAME_VIDEO_K053250PS_H +#define MAME_VIDEO_K053250PS_H + +#pragma once // // Konami 053250 road generator (Pirate Ship version) @@ -75,6 +77,6 @@ private: uint32_t clipmask, uint32_t wrapmask, uint32_t orientation, bitmap_ind8 &priority, uint8_t pri); }; -extern const device_type K053250PS; +DECLARE_DEVICE_TYPE(K053250PS, k053250ps_device) -#endif +#endif // MAME_VIDEO_K053250PS_H diff --git a/src/mame/video/k053251.cpp b/src/mame/video/k053251.cpp index 876a1497666..21eece746f6 100644 --- a/src/mame/video/k053251.cpp +++ b/src/mame/video/k053251.cpp @@ -122,12 +122,13 @@ actually used, since the priority is taken from the external ports. #include "konami_helper.h" #define VERBOSE 0 -#define LOG(x) do { if (VERBOSE) logerror x; } while (0) +#include "logmacro.h" -const device_type K053251 = device_creator; + +DEFINE_DEVICE_TYPE(K053251, k053251_device, "k053251", "K053251 Priority Encoder") k053251_device::k053251_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, K053251, "K053251 Priority Encoder", tag, owner, clock, "k053251", __FILE__), + : device_t(mconfig, K053251, tag, owner, clock), //m_dirty_tmap[5], //m_ram[16], m_tilemaps_set(0) diff --git a/src/mame/video/k053251.h b/src/mame/video/k053251.h index 6c1baed9636..b2736f71d4c 100644 --- a/src/mame/video/k053251.h +++ b/src/mame/video/k053251.h @@ -1,22 +1,21 @@ // license:BSD-3-Clause -// copyright-holders:Fabio Priuli,Acho A. Tang, R. Belmont -#ifndef __K053251_H__ -#define __K053251_H__ +// copyright-holders:Fabio Priuli, Acho A. Tang, R. Belmont +#ifndef MAME_VIDEO_K053251_H +#define MAME_VIDEO_K053251_H +class k053251_device : public device_t +{ +public: enum { - K053251_CI0 = 0, - K053251_CI1, - K053251_CI2, - K053251_CI3, - K053251_CI4 + CI0 = 0, + CI1, + CI2, + CI3, + CI4 }; -class k053251_device : public device_t -{ -public: k053251_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~k053251_device() {} /* Note: k053251_w() automatically does a ALL_TILEMAPS->mark_all_dirty() @@ -52,8 +51,9 @@ private: }; extern const device_type K053251; +DECLARE_DEVICE_TYPE(K053251, k053251_device) #define MCFG_K053251_ADD(_tag) \ MCFG_DEVICE_ADD(_tag, K053251, 0) -#endif +#endif // MAME_VIDEO_K053251_H diff --git a/src/mame/video/k053936.cpp b/src/mame/video/k053936.cpp index 54269a89a32..429d033084d 100644 --- a/src/mame/video/k053936.cpp +++ b/src/mame/video/k053936.cpp @@ -6,7 +6,7 @@ #include "k053936.h" #define VERBOSE 0 -#define LOG(x) do { if (VERBOSE) logerror x; } while (0) +#include "logmacro.h" // Localized K053936/ROZ+ @@ -227,10 +227,10 @@ void K053936_set_offset(int chip, int xoffs, int yoffs) /* */ /***************************************************************************/ -const device_type K053936 = device_creator; +DEFINE_DEVICE_TYPE(K053936, k053936_device, "k053936", "K053936 Video Controller") k053936_device::k053936_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, K053936, "K053936 Video Controller", tag, owner, clock, "k053936", __FILE__), + : device_t(mconfig, K053936, tag, owner, clock), m_ctrl(nullptr), m_linectrl(nullptr), m_wrap(0), diff --git a/src/mame/video/k053936.h b/src/mame/video/k053936.h index cae0e8a7394..f1546e8482b 100644 --- a/src/mame/video/k053936.h +++ b/src/mame/video/k053936.h @@ -1,8 +1,9 @@ // license:BSD-3-Clause // copyright-holders:David Haywood +#ifndef MAME_VIDEO_K053936_H +#define MAME_VIDEO_K053936_H + #pragma once -#ifndef __K053936_H__ -#define __K053936_H__ void K053936_0_zoom_draw(screen_device &screen, bitmap_ind16 &bitmap,const rectangle &cliprect,tilemap_t *tmap,int flags,uint32_t priority, int glfgreat_hack); @@ -51,7 +52,7 @@ private: int m_wrap, m_xoff, m_yoff; }; -extern const device_type K053936; +DECLARE_DEVICE_TYPE(K053936, k053936_device) #define MCFG_K053936_WRAP(_wrap) \ k053936_device::set_wrap(*device, _wrap); @@ -59,4 +60,4 @@ extern const device_type K053936; #define MCFG_K053936_OFFSETS(_xoffs, _yoffs) \ k053936_device::set_offsets(*device, _xoffs, _yoffs); -#endif +#endif // MAME_VIDEO_K053936_H diff --git a/src/mame/video/k054000.cpp b/src/mame/video/k054000.cpp index f34f8c84155..2b96bdcdce9 100644 --- a/src/mame/video/k054000.cpp +++ b/src/mame/video/k054000.cpp @@ -6,7 +6,8 @@ #define VERBOSE 0 -#define LOG(x) do { if (VERBOSE) logerror x; } while (0) +#include "logmacro.h" + /***************************************************************************/ /* */ @@ -52,10 +53,10 @@ Memory map: /* */ /***************************************************************************/ -const device_type K054000 = device_creator; +DEFINE_DEVICE_TYPE(K054000, k054000_device, "k054000", "K054000 Protection") k054000_device::k054000_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, K054000, "K054000 Protection", tag, owner, clock, "k054000", __FILE__) + : device_t(mconfig, K054000, tag, owner, clock) { } diff --git a/src/mame/video/k054000.h b/src/mame/video/k054000.h index f8ebe242dc8..9e951822456 100644 --- a/src/mame/video/k054000.h +++ b/src/mame/video/k054000.h @@ -1,9 +1,10 @@ // license:BSD-3-Clause // copyright-holders:David Haywood +#ifndef MAME_VIDEO_K054000_H +#define MAME_VIDEO_K054000_H #pragma once -#ifndef __K054000_H__ -#define __K054000_H__ + #define MCFG_K054000_ADD(_tag) \ MCFG_DEVICE_ADD(_tag, K054000, 0) @@ -29,9 +30,6 @@ private: uint8_t m_regs[0x20]; }; -extern const device_type K054000; - - - +DECLARE_DEVICE_TYPE(K054000, k054000_device) -#endif +#endif // MAME_VIDEO_K054000_H diff --git a/src/mame/video/k054156_k054157_k056832.cpp b/src/mame/video/k054156_k054157_k056832.cpp index 2fb5942aabe..0348da64ce8 100644 --- a/src/mame/video/k054156_k054157_k056832.cpp +++ b/src/mame/video/k054156_k054157_k056832.cpp @@ -168,6 +168,11 @@ ones. The other 7 words are ignored. Global scrollx is ignored. #include "k054156_k054157_k056832.h" #include "konami_helper.h" +#include "video/k055555.h" // still needs k055555_get_palette_index + +#define VERBOSE 0 +#include "logmacro.h" + /* end common functions */ @@ -179,10 +184,10 @@ ones. The other 7 words are ignored. Global scrollx is ignored. -const device_type K056832 = device_creator; +DEFINE_DEVICE_TYPE(K056832, k056832_device, "k056832", "K056832 Tilemap Generator") k056832_device::k056832_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, K056832, "K056832 Tilemap Generator", tag, owner, clock, "k056832", __FILE__), + : device_t(mconfig, K056832, tag, owner, clock), device_gfx_interface(mconfig, *this), //m_tilemap[K056832_PAGE_COUNT], //*m_pixmap[K056832_PAGE_COUNT], @@ -643,9 +648,7 @@ READ16_MEMBER( k056832_device::k_5bpp_rom_word_r ) else if (mem_mask == 0x00ff) return rom_read_b(offset * 2 + 1, 4, 5, 0)<<16; else - { - //LOG(("Non-byte read of tilemap ROM, PC=%x (mask=%x)\n", space.device().safe_pc(), mem_mask)); - } + LOG("Non-byte read of tilemap ROM, PC=%x (mask=%x)\n", space.device().safe_pc(), mem_mask); return 0; } @@ -660,9 +663,7 @@ READ32_MEMBER( k056832_device::k_5bpp_rom_long_r ) else if (mem_mask == 0x000000ff) return rom_read_b(offset * 4 + 3, 4, 5, 1); else - { - //LOG(("Non-byte read of tilemap ROM, PC=%x (mask=%x)\n", space.device().safe_pc(), mem_mask)); - } + LOG("Non-byte read of tilemap ROM, PC=%x (mask=%x)\n", space.device().safe_pc(), mem_mask); return 0; } @@ -677,9 +678,7 @@ READ32_MEMBER( k056832_device::k_6bpp_rom_long_r ) else if (mem_mask == 0x000000ff) return rom_read_b(offset * 4 + 3, 4, 6, 0); else - { - //LOG(("Non-byte read of tilemap ROM, PC=%x (mask=%x)\n", space.device().safe_pc(), mem_mask)); - } + LOG("Non-byte read of tilemap ROM, PC=%x (mask=%x)\n", space.device().safe_pc(), mem_mask); return 0; } diff --git a/src/mame/video/k054156_k054157_k056832.h b/src/mame/video/k054156_k054157_k056832.h index 8854645b752..410306b070a 100644 --- a/src/mame/video/k054156_k054157_k056832.h +++ b/src/mame/video/k054156_k054157_k056832.h @@ -1,13 +1,9 @@ // license:BSD-3-Clause // copyright-holders:David Haywood -#pragma once -#ifndef __K056832_H__ -#define __K056832_H__ - -#define VERBOSE 0 -#define LOG(x) do { if (VERBOSE) logerror x; } while (0) +#ifndef MAME_VIDEO_K054156_K054157_K056832_H +#define MAME_VIDEO_K054156_K054157_K056832_H -#include "video/k055555.h"// still needs k055555_get_palette_index +#pragma once typedef device_delegate k056832_cb_delegate; @@ -36,14 +32,12 @@ typedef device_delegate k05 #define K056382_DRAW_FLAG_FORCE_XYSCROLL 0x00800000 +class k055555_device; + class k056832_device : public device_t, public device_gfx_interface { public: k056832_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~k056832_device() - { - m_k055555 = nullptr; - } static void set_k056832_callback(device_t &device, k056832_cb_delegate callback) { downcast(device).m_k056832_cb = callback; } static void set_config(device_t &device, const char *gfx_reg, int bpp, int big, int djmain_hack, const char *k055555) @@ -222,13 +216,12 @@ private: int altK056832_update_linemap(screen_device &screen, bitmap_rgb32 &bitmap, int page, int flags); }; -extern const device_type K056832; - - +DECLARE_DEVICE_TYPE(K056832, k056832_device) #define MCFG_K056832_PALETTE(_palette_tag) \ MCFG_GFX_PALETTE(_palette_tag) -#endif +#endif // MAME_VIDEO_K054156_K054157_K056832_H + diff --git a/src/mame/video/k054338.cpp b/src/mame/video/k054338.cpp index 1ca97eea33b..a8d97bcda4d 100644 --- a/src/mame/video/k054338.cpp +++ b/src/mame/video/k054338.cpp @@ -4,9 +4,9 @@ #include "emu.h" #include "k054338.h" - #define VERBOSE 0 -#define LOG(x) do { if (VERBOSE) logerror x; } while (0) +#include "logmacro.h" + /***************************************************************************/ /* */ @@ -18,10 +18,10 @@ // because the implementation is video dependant, this is just a // register-handling shell. -const device_type K054338 = device_creator; +DEFINE_DEVICE_TYPE(K054338, k054338_device, "k054338", "K054338 Mixer") k054338_device::k054338_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, K054338, "K054338 Mixer", tag, owner, clock, "k054338", __FILE__), + : device_t(mconfig, K054338, tag, owner, clock), device_video_interface(mconfig, *this), m_alpha_inv(0), m_k055555_tag(nullptr) diff --git a/src/mame/video/k054338.h b/src/mame/video/k054338.h index 93022f66c45..8385fe10c2d 100644 --- a/src/mame/video/k054338.h +++ b/src/mame/video/k054338.h @@ -1,8 +1,9 @@ // license:BSD-3-Clause // copyright-holders:David Haywood +#ifndef MAME_VIDEO_K054338_H +#define MAME_VIDEO_K054338_H + #pragma once -#ifndef __K054338_H__ -#define __K054338_H__ #include "k055555.h" @@ -26,7 +27,6 @@ class k054338_device : public device_t, { public: k054338_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~k054338_device() {} // static configuration static void set_mixer_tag(device_t &device, const char *tag) { downcast(device).m_k055555_tag = tag; } @@ -60,7 +60,7 @@ private: k055555_device *m_k055555; /* used to fill BG color */ }; -extern const device_type K054338; +DECLARE_DEVICE_TYPE(K054338, k054338_device) #define MCFG_K054338_MIXER(_tag) \ @@ -71,4 +71,4 @@ extern const device_type K054338; #define MCFG_K054338_SET_SCREEN MCFG_VIDEO_SET_SCREEN -#endif +#endif // MAME_VIDEO_K054338_H diff --git a/src/mame/video/k055555.cpp b/src/mame/video/k055555.cpp index 5be5657e5ce..68abbbdfb09 100644 --- a/src/mame/video/k055555.cpp +++ b/src/mame/video/k055555.cpp @@ -64,7 +64,8 @@ Lots of byte-wise registers. A partial map: #define VERBOSE 0 -#define LOG(x) do { if (VERBOSE) logerror x; } while (0) +#include "logmacro.h" + /* K055555 5-bit-per-pixel priority encoder */ /* This device has 48 8-bit-wide registers */ @@ -83,7 +84,7 @@ void k055555_device::K055555_write_reg(uint8_t regnum, uint8_t regdat) if (regdat != m_regs[regnum]) { - LOG(("5^5: %x to reg %x (%s)\n", regdat, regnum, rnames[regnum])); + LOG("5^5: %x to reg %x (%s)\n", regdat, regnum, rnames[regnum]); } m_regs[regnum] = regdat; @@ -140,10 +141,10 @@ int k055555_device::K055555_get_palette_index(int idx) -const device_type K055555 = device_creator; +DEFINE_DEVICE_TYPE(K055555, k055555_device, "k055555", "K055555 Priority Encoder") k055555_device::k055555_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, K055555, "K055555 Priority Encoder", tag, owner, clock, "k055555", __FILE__) + : device_t(mconfig, K055555, tag, owner, clock) { } @@ -163,5 +164,5 @@ void k055555_device::device_start() void k055555_device::device_reset() { - memset(m_regs, 0, 64 * sizeof(uint8_t)); + std::fill(std::begin(m_regs), std::end(m_regs), 0); } diff --git a/src/mame/video/k055555.h b/src/mame/video/k055555.h index 01c615cac03..ea0cc05dbd6 100644 --- a/src/mame/video/k055555.h +++ b/src/mame/video/k055555.h @@ -1,10 +1,11 @@ // license:BSD-3-Clause // copyright-holders:David Haywood /* */ +#ifndef MAME_MACHINE_K055555_H +#define MAME_MACHINE_K055555_H #pragma once -#ifndef __K055555_H__ -#define __K055555_H__ + #define MCFG_K055555_ADD(_tag) \ MCFG_DEVICE_ADD(_tag, K055555, 0) @@ -100,7 +101,7 @@ private: uint8_t m_regs[128]; }; -extern const device_type K055555; +DECLARE_DEVICE_TYPE(K055555, k055555_device) -#endif +#endif // MAME_MACHINE_K055555_H diff --git a/src/mame/video/k057714.cpp b/src/mame/video/k057714.cpp index ddbad471cfe..eafecfa74c8 100644 --- a/src/mame/video/k057714.cpp +++ b/src/mame/video/k057714.cpp @@ -12,11 +12,11 @@ #define PRINT_GCU 0 -const device_type K057714 = device_creator; +DEFINE_DEVICE_TYPE(K057714, k057714_device, "k057714", "k057714_device GCU") k057714_device::k057714_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, K057714, "K057714 GCU", tag, owner, clock, "k057714", __FILE__), - m_irq(*this) + : device_t(mconfig, K057714, tag, owner, clock) + , m_irq(*this) { } diff --git a/src/mame/video/k057714.h b/src/mame/video/k057714.h index 6290464459b..c5bf4b0bf40 100644 --- a/src/mame/video/k057714.h +++ b/src/mame/video/k057714.h @@ -1,15 +1,16 @@ // license:BSD-3-Clause // copyright-holders:Ville Linde +#ifndef MAME_MACHINE_K057714_H +#define MAME_MACHINE_K057714_H #pragma once -#ifndef __K057714_H__ -#define __K057714_H__ + class k057714_device : public device_t { public: k057714_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &static_set_irq_callback(device_t &device, _Object object) { return downcast(device).m_irq.set_callback(object); } + template static devcb_base &static_set_irq_callback(device_t &device, Object &&cb) { return downcast(device).m_irq.set_callback(std::forward(cb)); } int draw(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); @@ -60,10 +61,10 @@ private: devcb_write_line m_irq; }; -extern const device_type K057714; +DECLARE_DEVICE_TYPE(K057714, k057714_device) #define MCFG_K057714_IRQ_CALLBACK(_devcb) \ devcb = &k057714_device::static_set_irq_callback(*device, DEVCB_##_devcb); -#endif +#endif // MAME_MACHINE_K057714_H diff --git a/src/mame/video/k1ge.cpp b/src/mame/video/k1ge.cpp index 402345f1060..15baa56265b 100644 --- a/src/mame/video/k1ge.cpp +++ b/src/mame/video/k1ge.cpp @@ -862,18 +862,15 @@ void k1ge_device::device_reset() } -const device_type K1GE = device_creator; +DEFINE_DEVICE_TYPE(K1GE, k1ge_device, "k1ge", "K1GE Monochrome Graphics + LCD") k1ge_device::k1ge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, K1GE, "K1GE Monochrome Graphics + LCD", tag, owner, clock, "k1ge", __FILE__) - , device_video_interface(mconfig, *this) - , m_vblank_pin_w(*this) - , m_hblank_pin_w(*this) + : k1ge_device(mconfig, K1GE, tag, owner, clock) { } -k1ge_device::k1ge_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source) +k1ge_device::k1ge_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) , device_video_interface(mconfig, *this) , m_vblank_pin_w(*this) , m_hblank_pin_w(*this) @@ -896,10 +893,10 @@ machine_config_constructor k1ge_device::device_mconfig_additions() const } -const device_type K2GE = device_creator; +DEFINE_DEVICE_TYPE(K2GE, k2ge_device, "k2ge", "K2GE Color Graphics + LCD") k2ge_device::k2ge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : k1ge_device(mconfig, K2GE, "K2GE Color Graphics + LCD", tag, owner, clock, "k2ge", __FILE__) + : k1ge_device(mconfig, K2GE, tag, owner, clock) { } diff --git a/src/mame/video/k1ge.h b/src/mame/video/k1ge.h index 4c73467d03f..0761f0d03c1 100644 --- a/src/mame/video/k1ge.h +++ b/src/mame/video/k1ge.h @@ -6,8 +6,10 @@ ******************************************************************************/ -#ifndef __K2GE_H_ -#define __K2GE_H_ +#ifndef MAME_VIDEO_K1GE_H +#define MAME_VIDEO_K1GE_H + +#pragma once #define MCFG_K1GE_ADD(_tag, _clock, _screen, _vblank, _hblank ) \ @@ -23,12 +25,10 @@ devcb = &k1ge_device::static_set_hblank_callback( *device, DEVCB_##_hblank ); -class k1ge_device : public device_t, - public device_video_interface +class k1ge_device : public device_t, public device_video_interface { public: k1ge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - k1ge_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); DECLARE_READ8_MEMBER( read ); DECLARE_WRITE8_MEMBER( write ); @@ -38,11 +38,14 @@ public: void update( bitmap_ind16 &bitmap, const rectangle &cliprect ); // Static methods - template static devcb_base &static_set_vblank_callback(device_t &device, _Object object) { return downcast(device).m_vblank_pin_w.set_callback(object); } - template static devcb_base &static_set_hblank_callback(device_t &device, _Object object) { return downcast(device).m_hblank_pin_w.set_callback(object); } + template static devcb_base &static_set_vblank_callback(device_t &device, Object &&cb) { return downcast(device).m_vblank_pin_w.set_callback(std::forward(cb)); } + template static devcb_base &static_set_hblank_callback(device_t &device, Object &&cb) { return downcast(device).m_hblank_pin_w.set_callback(std::forward(cb)); } static const int K1GE_SCREEN_HEIGHT = 199; + protected: + k1ge_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -73,6 +76,7 @@ public: k2ge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); DECLARE_PALETTE_INIT(k2ge); + protected: virtual machine_config_constructor device_mconfig_additions() const override; @@ -85,8 +89,7 @@ protected: }; -extern const device_type K1GE; -extern const device_type K2GE; - +DECLARE_DEVICE_TYPE(K1GE, k1ge_device) +DECLARE_DEVICE_TYPE(K2GE, k2ge_device) -#endif +#endif // MAME_VIDEO_K1GE_H diff --git a/src/mame/video/kan_pand.cpp b/src/mame/video/kan_pand.cpp index c8639ebfc57..6c30e9b04a4 100644 --- a/src/mame/video/kan_pand.cpp +++ b/src/mame/video/kan_pand.cpp @@ -53,10 +53,10 @@ #include "video/kan_pand.h" #include "screen.h" -const device_type KANEKO_PANDORA = device_creator; +DEFINE_DEVICE_TYPE(KANEKO_PANDORA, kaneko_pandora_device, "kaneko_pandora", "Kaneko PANDORA GFX") kaneko_pandora_device::kaneko_pandora_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, KANEKO_PANDORA, "Kaneko PANDORA GFX", tag, owner, clock, "kaneko_pandora", __FILE__) + : device_t(mconfig, KANEKO_PANDORA, tag, owner, clock) , device_video_interface(mconfig, *this) , m_gfx_region(0) , m_xoffset(0) diff --git a/src/mame/video/kan_pand.h b/src/mame/video/kan_pand.h index d0e25faed36..175debb9dbf 100644 --- a/src/mame/video/kan_pand.h +++ b/src/mame/video/kan_pand.h @@ -8,8 +8,10 @@ **************************************************************************/ -#ifndef __KAN_PAND_H__ -#define __KAN_PAND_H__ +#ifndef MAME_VIDEO_KAN_PAND_H +#define MAME_VIDEO_KAN_PAND_H + +#pragma once /*************************************************************************** TYPE DEFINITIONS @@ -20,7 +22,6 @@ class kaneko_pandora_device : public device_t, { public: kaneko_pandora_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~kaneko_pandora_device() {} // static configuration static void static_set_gfxdecode_tag(device_t &device, const char *tag); @@ -60,7 +61,7 @@ private: required_device m_gfxdecode; }; -extern const device_type KANEKO_PANDORA; +DECLARE_DEVICE_TYPE(KANEKO_PANDORA, kaneko_pandora_device) /*************************************************************************** @@ -76,4 +77,4 @@ extern const device_type KANEKO_PANDORA; #define MCFG_KANEKO_PANDORA_GFXDECODE(_gfxtag) \ kaneko_pandora_device::static_set_gfxdecode_tag(*device, "^" _gfxtag); -#endif /* __KAN_PAND_H__ */ +#endif // MAME_VIDEO_KAN_PAND_H diff --git a/src/mame/video/kaneko_grap2.cpp b/src/mame/video/kaneko_grap2.cpp index bcc09283668..07b0e08c8cd 100644 --- a/src/mame/video/kaneko_grap2.cpp +++ b/src/mame/video/kaneko_grap2.cpp @@ -14,10 +14,10 @@ #include "emu.h" #include "kaneko_grap2.h" -const device_type KANEKO_GRAP2 = device_creator; +DEFINE_DEVICE_TYPE(KANEKO_GRAP2, kaneko_grap2_device, "kaneko_grap2", "Kaneko GRAP2") kaneko_grap2_device::kaneko_grap2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, KANEKO_GRAP2, "Kaneko GRAP2", tag, owner, clock, "kaneko_grap2", __FILE__) + : device_t(mconfig, KANEKO_GRAP2, tag, owner, clock) , m_palette(*this, finder_base::DUMMY_TAG) { m_chipnum = 0; diff --git a/src/mame/video/kaneko_grap2.h b/src/mame/video/kaneko_grap2.h index 921b94df347..65380accf6d 100644 --- a/src/mame/video/kaneko_grap2.h +++ b/src/mame/video/kaneko_grap2.h @@ -1,6 +1,9 @@ // license:BSD-3-Clause // copyright-holders:David Haywood +#ifndef MAME_VIDEO_KANEKO_GRAP2_H +#define MAME_VIDEO_KANEKO_GRAP2_H +#pragma once #define GRAP2_AREA( _BASE, name ) \ @@ -91,7 +94,10 @@ private: }; -extern const device_type KANEKO_GRAP2; +DECLARE_DEVICE_TYPE(KANEKO_GRAP2, kaneko_grap2_device) #define MCFG_KANEKO_GRAP2_PALETTE(_palette_tag) \ kaneko_grap2_device::static_set_palette_tag(*device, "^" _palette_tag); + + +#endif // MAME_VIDEO_KANEKO_GRAP2_H diff --git a/src/mame/video/kaneko_spr.cpp b/src/mame/video/kaneko_spr.cpp index 106e74a7b63..6a738e11a92 100644 --- a/src/mame/video/kaneko_spr.cpp +++ b/src/mame/video/kaneko_spr.cpp @@ -28,19 +28,16 @@ #include "kaneko_spr.h" #include "screen.h" -const device_type KANEKO_VU002_SPRITE = device_creator; -const device_type KANEKO_KC002_SPRITE = device_creator; +DEFINE_DEVICE_TYPE(KANEKO_VU002_SPRITE, kaneko_vu002_sprite_device, "kaneko_vu002", "Kaneko VU002 Sprites") +DEFINE_DEVICE_TYPE(KANEKO_KC002_SPRITE, kaneko_kc002_sprite_device, "kaneko_kc002", "Kaneko KC002 Sprites") kaneko16_sprite_device::kaneko16_sprite_device( const machine_config &mconfig, device_type type, - const char *name, const char *tag, device_t *owner, - uint32_t clock, - const char *shortname, - const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source) + uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) , device_video_interface(mconfig, *this) , m_gfxdecode(*this, finder_base::DUMMY_TAG) { @@ -619,12 +616,12 @@ void kaneko16_sprite_device::kaneko16_render_sprites_common(_BitmapClass &bitmap } kaneko_vu002_sprite_device::kaneko_vu002_sprite_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : kaneko16_sprite_device(mconfig, KANEKO_VU002_SPRITE, "Kaneko VU002 Sprites", tag, owner, clock, "kaneko_vu002", __FILE__) + : kaneko16_sprite_device(mconfig, KANEKO_VU002_SPRITE, tag, owner, clock) { } kaneko_kc002_sprite_device::kaneko_kc002_sprite_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : kaneko16_sprite_device(mconfig, KANEKO_KC002_SPRITE, "Kaneko KC002 Sprites", tag, owner, clock, "kaneko_kc002", __FILE__) + : kaneko16_sprite_device(mconfig, KANEKO_KC002_SPRITE, tag, owner, clock) { } diff --git a/src/mame/video/kaneko_spr.h b/src/mame/video/kaneko_spr.h index 88dff484812..8a27bb8013e 100644 --- a/src/mame/video/kaneko_spr.h +++ b/src/mame/video/kaneko_spr.h @@ -1,5 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Luca Elia, David Haywood +#ifndef MAME_VIDEO_KANEKO_SPR_H +#define MAME_VIDEO_KANEKO_SPR_H + +#pragma once /* Kaneko Sprites */ @@ -56,12 +60,9 @@ protected: kaneko16_sprite_device( const machine_config &mconfig, device_type type, - const char *name, const char *tag, device_t *owner, - uint32_t clock, - const char *shortname, - const char *source); + uint32_t clock); virtual void device_start() override; virtual void device_reset() override; @@ -125,7 +126,7 @@ public: int get_sprite_type(void) override{ return 0; }; }; -extern const device_type KANEKO_VU002_SPRITE; +DECLARE_DEVICE_TYPE(KANEKO_VU002_SPRITE, kaneko_vu002_sprite_device) class kaneko_kc002_sprite_device : public kaneko16_sprite_device { @@ -135,4 +136,6 @@ public: int get_sprite_type(void) override{ return 1; }; }; -extern const device_type KANEKO_KC002_SPRITE; +DECLARE_DEVICE_TYPE(KANEKO_KC002_SPRITE, kaneko_kc002_sprite_device) + +#endif // MAME_VIDEO_KANEKO_SPR_H diff --git a/src/mame/video/kaneko_tmap.cpp b/src/mame/video/kaneko_tmap.cpp index 77e1046d49a..d9770bc8478 100644 --- a/src/mame/video/kaneko_tmap.cpp +++ b/src/mame/video/kaneko_tmap.cpp @@ -94,10 +94,10 @@ There are more! #include "emu.h" #include "kaneko_tmap.h" -const device_type KANEKO_TMAP = device_creator; +DEFINE_DEVICE_TYPE(KANEKO_TMAP, kaneko_view2_tilemap_device, "kaneko_view2", "Kaneko VIEW2 Tilemaps") kaneko_view2_tilemap_device::kaneko_view2_tilemap_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, KANEKO_TMAP, "Kaneko VIEW2 Tilemaps", tag, owner, clock, "kaneko_view2_tilemap", __FILE__) + : device_t(mconfig, KANEKO_TMAP, tag, owner, clock) , m_gfxdecode(*this, finder_base::DUMMY_TAG) { m_invert_flip = 0; diff --git a/src/mame/video/kaneko_tmap.h b/src/mame/video/kaneko_tmap.h index a504b3a23c6..23daae62f50 100644 --- a/src/mame/video/kaneko_tmap.h +++ b/src/mame/video/kaneko_tmap.h @@ -1,5 +1,10 @@ // license:BSD-3-Clause // copyright-holders:Luca Elia, David Haywood +#ifndef MAME_VIDEO_KANEKO_TMAP_H +#define MAME_VIDEO_KANEKO_TMAP_H + +#pragma once + class kaneko_view2_tilemap_device : public device_t @@ -13,17 +18,6 @@ public: static void set_offset(device_t &device, int dx, int dy, int xdim, int ydim); static void set_invert_flip(device_t &device, int invert_flip); // for fantasia (bootleg) - // set when creating device - int m_tilebase; - int m_dx, m_dy, m_xdim, m_ydim; - int m_invert_flip; - - std::unique_ptr m_vram[2]; - std::unique_ptr m_vscroll[2]; - std::unique_ptr m_regs; - tilemap_t* m_tmap[2]; - uint16_t m_vram_tile_addition[2]; // galsnew - void get_tile_info(tile_data &tileinfo, tilemap_memory_index tile_index, int _N_); void kaneko16_vram_w(offs_t offset, uint16_t data, uint16_t mem_mask, int _N_); @@ -75,10 +69,23 @@ private: TILE_GET_INFO_MEMBER(get_tile_info_0); TILE_GET_INFO_MEMBER(get_tile_info_1); required_device m_gfxdecode; + + // set when creating device + int m_tilebase; + int m_dx, m_dy, m_xdim, m_ydim; + int m_invert_flip; + + std::unique_ptr m_vram[2]; + std::unique_ptr m_vscroll[2]; + std::unique_ptr m_regs; + tilemap_t* m_tmap[2]; + uint16_t m_vram_tile_addition[2]; // galsnew }; -extern const device_type KANEKO_TMAP; +DECLARE_DEVICE_TYPE(KANEKO_TMAP, kaneko_view2_tilemap_device) #define MCFG_KANEKO_TMAP_GFXDECODE(_gfxtag) \ kaneko_view2_tilemap_device::static_set_gfxdecode_tag(*device, "^" _gfxtag); + +#endif // MAME_VIDEO_KANEKO_TMAP_H diff --git a/src/mame/video/leland.cpp b/src/mame/video/leland.cpp index 7f51b56b7c7..4683e7f9361 100644 --- a/src/mame/video/leland.cpp +++ b/src/mame/video/leland.cpp @@ -10,6 +10,7 @@ #include "emu.h" #include "includes/leland.h" +#include "audio/leland.h" /* constants */ diff --git a/src/mame/video/maria.cpp b/src/mame/video/maria.cpp index d76cced296a..f4632c478f4 100644 --- a/src/mame/video/maria.cpp +++ b/src/mame/video/maria.cpp @@ -55,12 +55,12 @@ #define READ_MEM(x) space.read_byte(x) -const device_type ATARI_MARIA = device_creator; +DEFINE_DEVICE_TYPE(ATARI_MARIA, atari_maria_device, "atari_maria", "Atari MARIA") atari_maria_device::atari_maria_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, ATARI_MARIA, "Atari MARIA", tag, owner, clock, "atari_maria", __FILE__) + : device_t(mconfig, ATARI_MARIA, tag, owner, clock) { } diff --git a/src/mame/video/maria.h b/src/mame/video/maria.h index 346414dfae3..48145b4062d 100644 --- a/src/mame/video/maria.h +++ b/src/mame/video/maria.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Dan Boris -#ifndef __ATARI_MARIA__ -#define __ATARI_MARIA__ +#ifndef MAME_VIDEO_MARIA_H +#define MAME_VIDEO_MARIA_H + +#pragma once // ======================> atari_maria_device @@ -61,11 +63,11 @@ private: // device type definition -extern const device_type ATARI_MARIA; +DECLARE_DEVICE_TYPE(ATARI_MARIA, atari_maria_device) #define MCFG_MARIA_DMACPU(_tag) \ atari_maria_device::set_cpu_tag(*device, _tag); -#endif +#endif // MAME_VIDEO_MARIA_H diff --git a/src/mame/video/mb60553.cpp b/src/mame/video/mb60553.cpp index 9f34417a83c..9178227b0e4 100644 --- a/src/mame/video/mb60553.cpp +++ b/src/mame/video/mb60553.cpp @@ -13,27 +13,25 @@ #include "screen.h" -const device_type MB60553 = device_creator; +DEFINE_DEVICE_TYPE(MB60553, mb60553_zooming_tilemap_device, "mb60553", "MB60553 Zooming Tilemap") mb60553_zooming_tilemap_device::mb60553_zooming_tilemap_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MB60553, "MB60553 Zooming Tilemap", tag, owner, clock, "mb60553", __FILE__), - m_vram(nullptr), - m_pal_base(0), - m_lineram(nullptr), - m_gfx_region(0), - m_gfxdecode(*this, finder_base::DUMMY_TAG) + : device_t(mconfig, MB60553, tag, owner, clock) + , m_tmap(nullptr) + , m_vram() + , m_regs{ 0, 0, 0, 0, 0, 0, 0, 0 } + , m_bank{ 0, 0, 0, 0, 0, 0, 0, 0, } + , m_pal_base(0) + , m_lineram() + , m_gfx_region(0) + , m_gfxdecode(*this, finder_base::DUMMY_TAG) { - for (int i = 0; i < 8; i++) - { - m_regs[i] = 0; - m_bank[i] = 0; - } } void mb60553_zooming_tilemap_device::device_start() { - if(!m_gfxdecode->started()) + if (!m_gfxdecode->started()) throw device_missing_dependencies(); m_lineram = make_unique_clear(0x1000/2); @@ -179,15 +177,9 @@ void mb60553_zooming_tilemap_device::reg_written( int num_reg) TILEMAP_MAPPER_MEMBER(mb60553_zooming_tilemap_device::twc94_scan) { /* logical (col,row) -> memory offset */ - return (row*64) + (col&63) + ((col&64)<<6); -} - -void mb60553_zooming_tilemap_device::set_pal_base( int pal_base) -{ - m_pal_base = pal_base; + return (row << 6) + (col & 0x003f) + (BIT(col, 6) << 12); } - void mb60553_zooming_tilemap_device::draw_roz_core(screen_device &screen, bitmap_ind16 &destbitmap, const rectangle &cliprect, uint32_t startx, uint32_t starty, int incxx, int incxy, int incyx, int incyy, bool wraparound) { @@ -298,12 +290,6 @@ void mb60553_zooming_tilemap_device::draw( screen_device &screen, bitmap_ind16& } } -tilemap_t* mb60553_zooming_tilemap_device::get_tilemap() -{ - return m_tmap; -} - - WRITE16_MEMBER(mb60553_zooming_tilemap_device::regs_w) { uint16_t oldreg = m_regs[offset]; diff --git a/src/mame/video/mb60553.h b/src/mame/video/mb60553.h index b23df749314..71d387227c2 100644 --- a/src/mame/video/mb60553.h +++ b/src/mame/video/mb60553.h @@ -2,27 +2,23 @@ // copyright-holders:David Haywood /*** MB60553 **********************************************/ +#ifndef MAME_VIDEO_MB60533_H +#define MAME_VIDEO_MB60533_H + +#pragma once class mb60553_zooming_tilemap_device : public device_t { public: - mb60553_zooming_tilemap_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); static void static_set_gfxdecode_tag(device_t &device, const char *tag); static void set_gfx_region(device_t &device, int gfxregion); - tilemap_t* m_tmap; - std::unique_ptr m_vram; - uint16_t m_regs[8]; - uint8_t m_bank[8]; - uint16_t m_pal_base; - void reg_written( int num_reg); - TILE_GET_INFO_MEMBER(get_tile_info); - void set_pal_base( int m_pal_base); - void draw( screen_device &screen, bitmap_ind16& bitmap, const rectangle &cliprect, int priority); - tilemap_t* get_tilemap(); + mb60553_zooming_tilemap_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - std::unique_ptr m_lineram; + void set_pal_base(int pal_base) { m_pal_base = pal_base; } + void set_transparent_pen(pen_t pen) { m_tmap->set_transparent_pen(pen); } + void draw(screen_device &screen, bitmap_ind16& bitmap, const rectangle &cliprect, int priority); TILEMAP_MAPPER_MEMBER(twc94_scan); @@ -34,22 +30,33 @@ public: DECLARE_READ16_MEMBER(vram_r); DECLARE_READ16_MEMBER(line_r); - void draw_roz_core(screen_device &screen, bitmap_ind16 &destbitmap, const rectangle &cliprect, - uint32_t startx, uint32_t starty, int incxx, int incxy, int incyx, int incyy, bool wraparound); - protected: virtual void device_start() override; virtual void device_reset() override; - private: + + void draw_roz_core(screen_device &screen, bitmap_ind16 &destbitmap, const rectangle &cliprect, + uint32_t startx, uint32_t starty, int incxx, int incxy, int incyx, int incyy, bool wraparound); + + void reg_written(int num_reg); + TILE_GET_INFO_MEMBER(get_tile_info); + + tilemap_t* m_tmap; + std::unique_ptr m_vram; + uint16_t m_regs[8]; + uint8_t m_bank[8]; + uint16_t m_pal_base; + + std::unique_ptr m_lineram; + uint8_t m_gfx_region; required_device m_gfxdecode; }; -extern const device_type MB60553; +DECLARE_DEVICE_TYPE(MB60553, mb60553_zooming_tilemap_device) #define MCFG_MB60553_GFX_REGION(_region) \ @@ -57,3 +64,5 @@ extern const device_type MB60553; #define MCFG_MB60553_GFXDECODE(_gfxtag) \ mb60553_zooming_tilemap_device::static_set_gfxdecode_tag(*device, "^" _gfxtag); + +#endif // MAME_VIDEO_MB60533_H diff --git a/src/mame/video/mcd212.cpp b/src/mame/video/mcd212.cpp index a87dc288561..b4460062bd9 100644 --- a/src/mame/video/mcd212.cpp +++ b/src/mame/video/mcd212.cpp @@ -30,7 +30,7 @@ TODO: // device type definition -const device_type MACHINE_MCD212 = device_creator; +DEFINE_DEVICE_TYPE(MACHINE_MCD212, mcd212_device, "mcd212", "MCD212 Video") #if ENABLE_VERBOSE_LOG static inline void ATTR_PRINTF(3,4) verboselog(device_t& device, int n_level, const char *s_fmt, ...) @@ -1518,8 +1518,8 @@ void mcd212_device::device_reset() //------------------------------------------------- mcd212_device::mcd212_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MACHINE_MCD212, "MCD212 Video", tag, owner, clock, "mcd212", __FILE__), - device_video_interface(mconfig, *this) + : device_t(mconfig, MACHINE_MCD212, tag, owner, clock) + , device_video_interface(mconfig, *this) { } diff --git a/src/mame/video/mcd212.h b/src/mame/video/mcd212.h index e902697c6cd..05088b8f0bb 100644 --- a/src/mame/video/mcd212.h +++ b/src/mame/video/mcd212.h @@ -21,8 +21,10 @@ TODO: *******************************************************************************/ -#ifndef _VIDEO_MCD212_H_ -#define _VIDEO_MCD212_H_ +#ifndef MAME_VIDEO_MCD212_H +#define MAME_VIDEO_MCD212_H + +#pragma once #define MCD212_CURCNT_COLOR 0x00000f // Cursor color @@ -247,6 +249,6 @@ private: }; // device type definition -extern const device_type MACHINE_MCD212; +DECLARE_DEVICE_TYPE(MACHINE_MCD212, mcd212_device) -#endif // _VIDEO_MCD212_H_ +#endif // MAME_VIDEO_MCD212_H diff --git a/src/mame/video/micro3d.cpp b/src/mame/video/micro3d.cpp index fa15bf259f3..8a8a177e68f 100644 --- a/src/mame/video/micro3d.cpp +++ b/src/mame/video/micro3d.cpp @@ -11,8 +11,10 @@ ****************************************************************************/ #include "emu.h" -#include "cpu/am29000/am29000.h" #include "includes/micro3d.h" +#include "audio/micro3d.h" + +#include "cpu/am29000/am29000.h" /************************************* diff --git a/src/mame/video/model2.cpp b/src/mame/video/model2.cpp index a98f05199df..dca574e56b4 100644 --- a/src/mame/video/model2.cpp +++ b/src/mame/video/model2.cpp @@ -2607,7 +2607,7 @@ uint32_t model2_state::screen_update_model2(screen_device &screen, bitmap_rgb32 bitmap.fill(m_palette->pen(0), cliprect); m_sys24_bitmap.fill(0, cliprect); - segas24_tile *tile = machine().device("tile"); + segas24_tile_device *tile = machine().device("tile"); tile->draw(screen, m_sys24_bitmap, cliprect, 7, 0, 0); tile->draw(screen, m_sys24_bitmap, cliprect, 6, 0, 0); tile->draw(screen, m_sys24_bitmap, cliprect, 5, 0, 0); diff --git a/src/mame/video/moo.cpp b/src/mame/video/moo.cpp index 5d5fcfb3d1e..9d9327a2c1b 100644 --- a/src/mame/video/moo.cpp +++ b/src/mame/video/moo.cpp @@ -66,11 +66,11 @@ VIDEO_START_MEMBER(moo_state,bucky) uint32_t moo_state::screen_update_moo(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - static const int K053251_CI[4] = { K053251_CI1, K053251_CI2, K053251_CI3, K053251_CI4 }; + static const int K053251_CI[4] = { k053251_device::CI1, k053251_device::CI2, k053251_device::CI3, k053251_device::CI4 }; int layers[3]; int new_colorbase, plane, dirty, alpha; - m_sprite_colorbase = m_k053251->get_palette_index(K053251_CI0); + m_sprite_colorbase = m_k053251->get_palette_index(k053251_device::CI0); m_layer_colorbase[0] = 0x70; if (m_k056832->get_layer_association()) @@ -101,11 +101,11 @@ uint32_t moo_state::screen_update_moo(screen_device &screen, bitmap_rgb32 &bitma } layers[0] = 1; - m_layerpri[0] = m_k053251->get_priority(K053251_CI2); + m_layerpri[0] = m_k053251->get_priority(k053251_device::CI2); layers[1] = 2; - m_layerpri[1] = m_k053251->get_priority(K053251_CI3); + m_layerpri[1] = m_k053251->get_priority(k053251_device::CI3); layers[2] = 3; - m_layerpri[2] = m_k053251->get_priority(K053251_CI4); + m_layerpri[2] = m_k053251->get_priority(k053251_device::CI4); konami_sortlayers3(layers, m_layerpri); @@ -114,7 +114,7 @@ uint32_t moo_state::screen_update_moo(screen_device &screen, bitmap_rgb32 &bitma screen.priority().fill(0, cliprect); - if (m_layerpri[0] < m_k053251->get_priority(K053251_CI1)) /* bucky hides back layer behind background */ + if (m_layerpri[0] < m_k053251->get_priority(k053251_device::CI1)) /* bucky hides back layer behind background */ m_k056832->tilemap_draw(screen, bitmap, cliprect, layers[0], 0, 1); m_k056832->tilemap_draw(screen, bitmap, cliprect, layers[1], 0, 2); diff --git a/src/mame/video/ms1_tmap.cpp b/src/mame/video/ms1_tmap.cpp index baf05535713..babccf4fafe 100644 --- a/src/mame/video/ms1_tmap.cpp +++ b/src/mame/video/ms1_tmap.cpp @@ -36,10 +36,10 @@ static constexpr int TILES_PER_PAGE = TILES_PER_PAGE_X * TILES_PER_PAGE_Y; */ -const device_type MEGASYS1_TILEMAP = device_creator; +DEFINE_DEVICE_TYPE(MEGASYS1_TILEMAP, megasys1_tilemap_device, "ms1_tmap", "Mega System 1 Tilemap") megasys1_tilemap_device::megasys1_tilemap_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MEGASYS1_TILEMAP, "Mega System 1 Tilemap", tag, owner, clock, "ms1_tmap", __FILE__), + : device_t(mconfig, MEGASYS1_TILEMAP, tag, owner, clock), device_gfx_interface(mconfig, *this), m_scrollram(*this, DEVICE_SELF), m_8x8_scroll_factor(1), diff --git a/src/mame/video/ms1_tmap.h b/src/mame/video/ms1_tmap.h index f0607b9a4be..4bf19756931 100644 --- a/src/mame/video/ms1_tmap.h +++ b/src/mame/video/ms1_tmap.h @@ -8,11 +8,11 @@ and mahjong games from the same period. ***************************************************************************/ +#ifndef MAME_VIDEO_MS1_TMAP_H +#define MAME_VIDEO_MS1_TMAP_H #pragma once -#ifndef MAME_VIDEO_MEGASYS1_TILEMAP_DEVICE -#define MAME_VIDEO_MEGASYS1_TILEMAP_DEVICE //************************************************************************** // DEVICE CONFIGURATION MACROS @@ -96,6 +96,6 @@ private: }; // device type definition -extern const device_type MEGASYS1_TILEMAP; +DECLARE_DEVICE_TYPE(MEGASYS1_TILEMAP, megasys1_tilemap_device) -#endif /* MAME_VIDEO_MEGASYS1_TILEMAP_DEVICE */ +#endif // MAME_VIDEO_MS1_TMAP_H diff --git a/src/mame/video/namco_c116.cpp b/src/mame/video/namco_c116.cpp index c62831ba901..4ccd853693f 100644 --- a/src/mame/video/namco_c116.cpp +++ b/src/mame/video/namco_c116.cpp @@ -68,14 +68,14 @@ i960 CPU, needs to write its clip and raster values byteswapped. #include "emu.h" #include "video/namco_c116.h" -const device_type NAMCO_C116 = device_creator; +DEFINE_DEVICE_TYPE(NAMCO_C116, namco_c116_device, "namco_c116", "Namco C116 Video Controller") //------------------------------------------------- // namco_c116_device -- constructor //------------------------------------------------- namco_c116_device::namco_c116_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, NAMCO_C116, "Namco C116 Video Controller", tag, owner, clock, "namco_c116", __FILE__), + : device_t(mconfig, NAMCO_C116, tag, owner, clock), device_gfx_interface(mconfig, *this), device_video_interface(mconfig, *this) { diff --git a/src/mame/video/namco_c116.h b/src/mame/video/namco_c116.h index 48d5c46f932..e24d61119c0 100644 --- a/src/mame/video/namco_c116.h +++ b/src/mame/video/namco_c116.h @@ -1,10 +1,10 @@ // license:BSD-3-Clause // copyright-holders:Alex W. Jackson +#ifndef MAME_VIDEO_NAMCO_C116_H +#define MAME_VIDEO_NAMCO_C116_H #pragma once -#ifndef __C116_H__ -#define __C116_H__ //*************************************************************************** @@ -39,6 +39,6 @@ private: uint16_t m_regs[8]; }; -extern const device_type NAMCO_C116; +DECLARE_DEVICE_TYPE(NAMCO_C116, namco_c116_device) -#endif +#endif // MAME_VIDEO_NAMCO_C116_H diff --git a/src/mame/video/namcofl.cpp b/src/mame/video/namcofl.cpp index 8aebd020598..f23c3648f33 100644 --- a/src/mame/video/namcofl.cpp +++ b/src/mame/video/namcofl.cpp @@ -3,9 +3,10 @@ /* video/namcofl.cpp */ #include "emu.h" -#include "includes/namcoic.h" #include "includes/namcofl.h" +#include "machine/namcoic.h" + /* nth_word32 is a general-purpose utility function, which allows us to * read from 32-bit aligned memory as if it were an array of 16 bit words. diff --git a/src/mame/video/namconb1.cpp b/src/mame/video/namconb1.cpp index 6c52af6bb61..ae13ed4e4b5 100644 --- a/src/mame/video/namconb1.cpp +++ b/src/mame/video/namconb1.cpp @@ -4,7 +4,8 @@ #include "emu.h" #include "includes/namconb1.h" -#include "includes/namcoic.h" + +#include "machine/namcoic.h" /* nth_word32 is a general-purpose utility function, which allows us to diff --git a/src/mame/video/namcos2.cpp b/src/mame/video/namcos2.cpp index 409c4e43dc4..55f6f07a109 100644 --- a/src/mame/video/namcos2.cpp +++ b/src/mame/video/namcos2.cpp @@ -3,9 +3,7 @@ /* video hardware for Namco System II */ #include "emu.h" - #include "includes/namcos2.h" -#include "includes/namcoic.h" void namcos2_state::TilemapCB(uint16_t code, int *tile, int *mask) { diff --git a/src/mame/video/namcos21.cpp b/src/mame/video/namcos21.cpp index d7f5cb7ad14..5fdb1deda54 100644 --- a/src/mame/video/namcos21.cpp +++ b/src/mame/video/namcos21.cpp @@ -25,9 +25,11 @@ Namco System 21 Video Hardware */ #include "emu.h" -#include "includes/namcoic.h" #include "includes/namcos21.h" +#include "machine/namcoic.h" + + #define FRAMEBUFFER_SIZE_IN_BYTES (sizeof(uint16_t)*NAMCOS21_POLY_FRAME_WIDTH*NAMCOS21_POLY_FRAME_HEIGHT) READ16_MEMBER(namcos21_state::winrun_gpu_color_r) diff --git a/src/mame/video/neogeo.cpp b/src/mame/video/neogeo.cpp index d71f196748f..ad0481ac655 100644 --- a/src/mame/video/neogeo.cpp +++ b/src/mame/video/neogeo.cpp @@ -11,6 +11,9 @@ #include "includes/neogeo.h" #include "video/resnet.h" +#define VERBOSE (0) + + #define NUM_PENS (0x1000) /************************************* diff --git a/src/mame/video/neogeo_spr.cpp b/src/mame/video/neogeo_spr.cpp index 91c3348d93c..069015f632f 100644 --- a/src/mame/video/neogeo_spr.cpp +++ b/src/mame/video/neogeo_spr.cpp @@ -14,13 +14,10 @@ neosprite_base_device::neosprite_base_device( const machine_config &mconfig, device_type type, - const char *name, const char *tag, device_t *owner, - uint32_t clock, - const char *shortname, - const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source) + uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) , m_bppshift(4) { } @@ -649,10 +646,10 @@ void neosprite_base_device::set_pens(const pen_t* pens) /* regions (alternatively I could add an additional size check in the draw routine, but that would be slower) */ /*********************************************************************************************************************************/ -const device_type NEOGEO_SPRITE_REGULAR = device_creator; +DEFINE_DEVICE_TYPE(NEOGEO_SPRITE_REGULAR, neosprite_regular_device, "neosprite_reg", "Neo-Geo Sprites (regular)") neosprite_regular_device::neosprite_regular_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : neosprite_base_device(mconfig, NEOGEO_SPRITE_REGULAR, "Neo-Geo Sprites (regular)", tag, owner, clock, "neosprite_reg", __FILE__) + : neosprite_base_device(mconfig, NEOGEO_SPRITE_REGULAR, tag, owner, clock) { } @@ -697,10 +694,10 @@ inline void neosprite_regular_device::draw_pixel(int romaddr, uint32_t* dst, con /* for additional speed */ /*********************************************************************************************************************************/ -const device_type NEOGEO_SPRITE_OPTIMZIED = device_creator; +DEFINE_DEVICE_TYPE(NEOGEO_SPRITE_OPTIMZIED, neosprite_optimized_device, "neosprite_opt", "Neo-Geo Sprites (optimized)") neosprite_optimized_device::neosprite_optimized_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : neosprite_base_device(mconfig, NEOGEO_SPRITE_OPTIMZIED, "Neo-Geo Sprites (optimized)", tag, owner, clock, "neosprite_opt", __FILE__) + : neosprite_base_device(mconfig, NEOGEO_SPRITE_OPTIMZIED, tag, owner, clock) , m_spritegfx8(nullptr) { } @@ -773,11 +770,11 @@ inline void neosprite_optimized_device::draw_pixel(int romaddr, uint32_t* dst, c /* and uploads the zoom table. The additional videoram buffering is a guess because 'hammer' is very glitchy without it */ /*********************************************************************************************************************************/ -const device_type NEOGEO_SPRITE_MIDAS = device_creator; +DEFINE_DEVICE_TYPE(NEOGEO_SPRITE_MIDAS, neosprite_midas_device, "midassprite", "MIDAS Sprites") neosprite_midas_device::neosprite_midas_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : neosprite_base_device(mconfig, NEOGEO_SPRITE_MIDAS, "MIDAS Sprites", tag, owner, clock, "midassprite", __FILE__) + : neosprite_base_device(mconfig, NEOGEO_SPRITE_MIDAS, tag, owner, clock) { m_bppshift = 8; } diff --git a/src/mame/video/neogeo_spr.h b/src/mame/video/neogeo_spr.h index 8c040c4f903..0c4cc9ce5d6 100644 --- a/src/mame/video/neogeo_spr.h +++ b/src/mame/video/neogeo_spr.h @@ -1,7 +1,10 @@ // license:BSD-3-Clause // copyright-holders:Bryan McPhail,Ernesto Corvi,Andrew Prime,Zsolt Vasvari // thanks-to:Fuzz -#define VERBOSE (0) +#ifndef MAME_VIDEO_NEOGEO_SPR_H +#define MAME_VIDEO_NEOGEO_SPR_H + +#pragma once // todo, move these back, currently the sprite code needs some of the values tho #define NEOGEO_MASTER_CLOCK (24000000) @@ -80,12 +83,9 @@ protected: neosprite_base_device( const machine_config &mconfig, device_type type, - const char *name, const char *tag, device_t *owner, - uint32_t clock, - const char *shortname, - const char *source); + uint32_t clock); virtual void device_start() override; virtual void device_reset() override; @@ -97,8 +97,6 @@ protected: const pen_t *m_pens; }; -//extern const device_type NEOGEO_SPRITE_BASE; - class neosprite_regular_device : public neosprite_base_device { @@ -109,7 +107,7 @@ public: }; -extern const device_type NEOGEO_SPRITE_REGULAR; +DECLARE_DEVICE_TYPE(NEOGEO_SPRITE_REGULAR, neosprite_regular_device) class neosprite_optimized_device : public neosprite_base_device @@ -126,10 +124,7 @@ private: uint32_t optimize_helper(std::vector &spritegfx, uint8_t* region_sprites, uint32_t region_sprites_size); }; -extern const device_type NEOGEO_SPRITE_OPTIMZIED; - - - +DECLARE_DEVICE_TYPE(NEOGEO_SPRITE_OPTIMZIED, neosprite_optimized_device) class neosprite_midas_device : public neosprite_base_device @@ -149,4 +144,6 @@ public: }; -extern const device_type NEOGEO_SPRITE_MIDAS; +DECLARE_DEVICE_TYPE(NEOGEO_SPRITE_MIDAS, neosprite_midas_device) + +#endif // MAME_VIDEO_NEOGEO_SPR_H diff --git a/src/mame/video/nes.cpp b/src/mame/video/nes.cpp index 5443911540c..a4306ca4ed5 100644 --- a/src/mame/video/nes.cpp +++ b/src/mame/video/nes.cpp @@ -13,7 +13,7 @@ void nes_state::video_reset() { - m_ppu->set_vidaccess_callback(ppu2c0x_vidaccess_delegate(FUNC(nes_state::nes_ppu_vidaccess),this)); + m_ppu->set_vidaccess_callback(ppu2c0x_device::vidaccess_delegate(FUNC(nes_state::nes_ppu_vidaccess),this)); } void nes_state::video_start() diff --git a/src/mame/video/newport.cpp b/src/mame/video/newport.cpp index 21a03eef2db..8691d996dd1 100644 --- a/src/mame/video/newport.cpp +++ b/src/mame/video/newport.cpp @@ -80,11 +80,11 @@ static inline void ATTR_PRINTF(3,4) verboselog(running_machine &machine, int n_l #define XMAP1_MODETBLIDX m_XMAP1.nRegister[0x07] -const device_type NEWPORT_VIDEO = device_creator; +DEFINE_DEVICE_TYPE(NEWPORT_VIDEO, newport_video_device, "newport_video", "SGI Newport graphics board") newport_video_device::newport_video_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, NEWPORT_VIDEO, "SGI Newport graphics board", tag, owner, clock, "newport_video", __FILE__) + : device_t(mconfig, NEWPORT_VIDEO, tag, owner, clock) { } diff --git a/src/mame/video/newport.h b/src/mame/video/newport.h index 4c210b2176f..46774652a0b 100644 --- a/src/mame/video/newport.h +++ b/src/mame/video/newport.h @@ -5,116 +5,15 @@ */ -#ifndef __VIDHRDW_NEWPORT__ -#define __VIDHRDW_NEWPORT__ - -struct VC2_t -{ - uint16_t nRegister[0x21]; - uint16_t nRAM[0x8000]; - uint8_t nRegIdx; - uint16_t nRegData; -}; - - -struct XMAP_t -{ - uint32_t nRegister[0x08]; - uint32_t nModeTable[0x20]; -}; - -struct REX3_t -{ - uint32_t nDrawMode1; - uint32_t nDrawMode0; - uint32_t nLSMode; - uint32_t nLSPattern; - uint32_t nLSPatSave; - uint32_t nZPattern; - uint32_t nColorBack; - uint32_t nColorVRAM; - uint32_t nAlphaRef; - //uint32_t nStall0; - uint32_t nSMask0X; - uint32_t nSMask0Y; - uint32_t nSetup; - uint32_t nStepZ; - uint32_t nXStart; - uint32_t nYStart; - uint32_t nXEnd; - uint32_t nYEnd; - uint32_t nXSave; - uint32_t nXYMove; - uint32_t nBresD; - uint32_t nBresS1; - uint32_t nBresOctInc1; - uint32_t nBresRndInc2; - uint32_t nBresE1; - uint32_t nBresS2; - uint32_t nAWeight0; - uint32_t nAWeight1; - uint32_t nXStartF; - uint32_t nYStartF; - uint32_t nXEndF; - uint32_t nYEndF; - uint32_t nXStartI; - //uint32_t nYEndF1; - uint32_t nXYStartI; - uint32_t nXYEndI; - uint32_t nXStartEndI; - uint32_t nColorRed; - uint32_t nColorAlpha; - uint32_t nColorGreen; - uint32_t nColorBlue; - uint32_t nSlopeRed; - uint32_t nSlopeAlpha; - uint32_t nSlopeGreen; - uint32_t nSlopeBlue; - uint32_t nWriteMask; - uint32_t nZeroFract; - uint32_t nZeroOverflow; - //uint32_t nColorIndex; - uint32_t nHostDataPortMSW; - uint32_t nHostDataPortLSW; - uint32_t nDCBMode; - uint32_t nDCBRegSelect; - uint32_t nDCBSlvSelect; - uint32_t nDCBDataMSW; - uint32_t nDCBDataLSW; - uint32_t nSMask1X; - uint32_t nSMask1Y; - uint32_t nSMask2X; - uint32_t nSMask2Y; - uint32_t nSMask3X; - uint32_t nSMask3Y; - uint32_t nSMask4X; - uint32_t nSMask4Y; - uint32_t nTopScanline; - uint32_t nXYWin; - uint32_t nClipMode; - uint32_t nConfig; - uint32_t nStatus; - uint8_t nXFerWidth; -#if 0 - uint32_t nCurrentX; - uint32_t nCurrentY; -#endif - uint32_t nKludge_SkipLine; -}; - - -struct CMAP_t -{ - uint16_t nPaletteIndex; - uint32_t nPalette[0x10000]; -}; +#ifndef MAME_VIDEO_NEWPORT_H +#define MAME_VIDEO_NEWPORT_H +#pragma once class newport_video_device : public device_t { public: newport_video_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~newport_video_device() {} DECLARE_READ32_MEMBER( rex3_r ); @@ -128,6 +27,108 @@ protected: virtual void device_reset() override; private: + struct VC2_t + { + uint16_t nRegister[0x21]; + uint16_t nRAM[0x8000]; + uint8_t nRegIdx; + uint16_t nRegData; + }; + + + struct XMAP_t + { + uint32_t nRegister[0x08]; + uint32_t nModeTable[0x20]; + }; + + struct REX3_t + { + uint32_t nDrawMode1; + uint32_t nDrawMode0; + uint32_t nLSMode; + uint32_t nLSPattern; + uint32_t nLSPatSave; + uint32_t nZPattern; + uint32_t nColorBack; + uint32_t nColorVRAM; + uint32_t nAlphaRef; + //uint32_t nStall0; + uint32_t nSMask0X; + uint32_t nSMask0Y; + uint32_t nSetup; + uint32_t nStepZ; + uint32_t nXStart; + uint32_t nYStart; + uint32_t nXEnd; + uint32_t nYEnd; + uint32_t nXSave; + uint32_t nXYMove; + uint32_t nBresD; + uint32_t nBresS1; + uint32_t nBresOctInc1; + uint32_t nBresRndInc2; + uint32_t nBresE1; + uint32_t nBresS2; + uint32_t nAWeight0; + uint32_t nAWeight1; + uint32_t nXStartF; + uint32_t nYStartF; + uint32_t nXEndF; + uint32_t nYEndF; + uint32_t nXStartI; + //uint32_t nYEndF1; + uint32_t nXYStartI; + uint32_t nXYEndI; + uint32_t nXStartEndI; + uint32_t nColorRed; + uint32_t nColorAlpha; + uint32_t nColorGreen; + uint32_t nColorBlue; + uint32_t nSlopeRed; + uint32_t nSlopeAlpha; + uint32_t nSlopeGreen; + uint32_t nSlopeBlue; + uint32_t nWriteMask; + uint32_t nZeroFract; + uint32_t nZeroOverflow; + //uint32_t nColorIndex; + uint32_t nHostDataPortMSW; + uint32_t nHostDataPortLSW; + uint32_t nDCBMode; + uint32_t nDCBRegSelect; + uint32_t nDCBSlvSelect; + uint32_t nDCBDataMSW; + uint32_t nDCBDataLSW; + uint32_t nSMask1X; + uint32_t nSMask1Y; + uint32_t nSMask2X; + uint32_t nSMask2Y; + uint32_t nSMask3X; + uint32_t nSMask3Y; + uint32_t nSMask4X; + uint32_t nSMask4Y; + uint32_t nTopScanline; + uint32_t nXYWin; + uint32_t nClipMode; + uint32_t nConfig; + uint32_t nStatus; + uint8_t nXFerWidth; +#if 0 + uint32_t nCurrentX; + uint32_t nCurrentY; +#endif + uint32_t nKludge_SkipLine; + }; + + + struct CMAP_t + { + uint16_t nPaletteIndex; + uint32_t nPalette[0x10000]; + }; + + // internal state DECLARE_READ32_MEMBER( cmap0_r ); @@ -156,7 +157,7 @@ private: MCFG_DEVICE_ADD(_tag, NEWPORT_VIDEO, 0) -extern const device_type NEWPORT_VIDEO; +DECLARE_DEVICE_TYPE(NEWPORT_VIDEO, newport_video_device) -#endif +#endif // MAME_VIDEO_NEWPORT_H diff --git a/src/mame/video/nick.cpp b/src/mame/video/nick.cpp index d8191174fdf..906d715ec6f 100644 --- a/src/mame/video/nick.cpp +++ b/src/mame/video/nick.cpp @@ -73,7 +73,7 @@ // DEVICE DEFINITIONS //************************************************************************** -const device_type NICK = device_creator; +DEFINE_DEVICE_TYPE(NICK, nick_device, "nick", "NICK") DEVICE_ADDRESS_MAP_START( vram_map, 8, nick_device ) @@ -103,7 +103,7 @@ ADDRESS_MAP_END //------------------------------------------------- nick_device::nick_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, NICK, "NICK", tag, owner, clock, "nick", __FILE__), + : device_t(mconfig, NICK, tag, owner, clock), device_memory_interface(mconfig, *this), device_video_interface(mconfig, *this), m_space_config("vram", ENDIANNESS_LITTLE, 8, 16, 0, *ADDRESS_MAP_NAME(nick_map)), diff --git a/src/mame/video/nick.h b/src/mame/video/nick.h index 4a8ccb6357e..c769928e911 100644 --- a/src/mame/video/nick.h +++ b/src/mame/video/nick.h @@ -168,6 +168,6 @@ private: // device type definition -extern const device_type NICK; +DECLARE_DEVICE_TYPE(NICK, nick_device) #endif // MAME_VIDEO_NICK_H diff --git a/src/mame/video/overdriv.cpp b/src/mame/video/overdriv.cpp index c140ce6a37d..826d4067d37 100644 --- a/src/mame/video/overdriv.cpp +++ b/src/mame/video/overdriv.cpp @@ -50,11 +50,11 @@ K051316_CB_MEMBER(overdriv_state::zoom_callback_2) uint32_t overdriv_state::screen_update_overdriv(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_sprite_colorbase = m_k053251->get_palette_index(K053251_CI0); - m_road_colorbase[1] = m_k053251->get_palette_index(K053251_CI1); - m_road_colorbase[0] = m_k053251->get_palette_index(K053251_CI2); - m_zoom_colorbase[1] = m_k053251->get_palette_index(K053251_CI3); - m_zoom_colorbase[0] = m_k053251->get_palette_index(K053251_CI4); + m_sprite_colorbase = m_k053251->get_palette_index(k053251_device::CI0); + m_road_colorbase[1] = m_k053251->get_palette_index(k053251_device::CI1); + m_road_colorbase[0] = m_k053251->get_palette_index(k053251_device::CI2); + m_zoom_colorbase[1] = m_k053251->get_palette_index(k053251_device::CI3); + m_zoom_colorbase[0] = m_k053251->get_palette_index(k053251_device::CI4); screen.priority().fill(0, cliprect); diff --git a/src/mame/video/parodius.cpp b/src/mame/video/parodius.cpp index 96826b1050a..d830ec7c562 100644 --- a/src/mame/video/parodius.cpp +++ b/src/mame/video/parodius.cpp @@ -48,20 +48,20 @@ uint32_t parodius_state::screen_update_parodius(screen_device &screen, bitmap_in { int layer[3], bg_colorbase; - bg_colorbase = m_k053251->get_palette_index(K053251_CI0); - m_sprite_colorbase = m_k053251->get_palette_index(K053251_CI1); - m_layer_colorbase[0] = m_k053251->get_palette_index(K053251_CI2); - m_layer_colorbase[1] = m_k053251->get_palette_index(K053251_CI4); - m_layer_colorbase[2] = m_k053251->get_palette_index(K053251_CI3); + bg_colorbase = m_k053251->get_palette_index(k053251_device::CI0); + m_sprite_colorbase = m_k053251->get_palette_index(k053251_device::CI1); + m_layer_colorbase[0] = m_k053251->get_palette_index(k053251_device::CI2); + m_layer_colorbase[1] = m_k053251->get_palette_index(k053251_device::CI4); + m_layer_colorbase[2] = m_k053251->get_palette_index(k053251_device::CI3); m_k052109->tilemap_update(); layer[0] = 0; - m_layerpri[0] = m_k053251->get_priority(K053251_CI2); + m_layerpri[0] = m_k053251->get_priority(k053251_device::CI2); layer[1] = 1; - m_layerpri[1] = m_k053251->get_priority(K053251_CI4); + m_layerpri[1] = m_k053251->get_priority(k053251_device::CI4); layer[2] = 2; - m_layerpri[2] = m_k053251->get_priority(K053251_CI3); + m_layerpri[2] = m_k053251->get_priority(k053251_device::CI3); konami_sortlayers3(layer, m_layerpri); diff --git a/src/mame/video/pc080sn.cpp b/src/mame/video/pc080sn.cpp index 40022810636..f277554f771 100644 --- a/src/mame/video/pc080sn.cpp +++ b/src/mame/video/pc080sn.cpp @@ -49,10 +49,10 @@ Control registers #define PC080SN_RAM_SIZE 0x10000 #define TOPSPEED_ROAD_COLORS -const device_type PC080SN = device_creator; +DEFINE_DEVICE_TYPE(PC080SN, pc080sn_device, "pc080sn", "Taito PC080SN") pc080sn_device::pc080sn_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, PC080SN, "Taito PC080SN", tag, owner, clock, "pc080sn", __FILE__), + : device_t(mconfig, PC080SN, tag, owner, clock), m_ram(nullptr), m_gfxnum(0), m_x_offset(0), diff --git a/src/mame/video/pc080sn.h b/src/mame/video/pc080sn.h index 62cb583d93e..a108b45ffbb 100644 --- a/src/mame/video/pc080sn.h +++ b/src/mame/video/pc080sn.h @@ -1,13 +1,14 @@ // license:BSD-3-Clause // copyright-holders:Nicola Salmoria -#ifndef __PC080SN_H__ -#define __PC080SN_H__ +#ifndef MAME_VIDEO_PC080SN_H +#define MAME_VIDEO_PC080SN_H + +#pragma once class pc080sn_device : public device_t { public: pc080sn_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~pc080sn_device() {} // static configuration static void static_set_gfxdecode_tag(device_t &device, const char *tag); @@ -69,7 +70,7 @@ public: required_device m_gfxdecode; }; -extern const device_type PC080SN; +DECLARE_DEVICE_TYPE(PC080SN, pc080sn_device) #define MCFG_PC080SN_GFX_REGION(_region) \ @@ -87,4 +88,4 @@ extern const device_type PC080SN; #define MCFG_PC080SN_GFXDECODE(_gfxtag) \ pc080sn_device::static_set_gfxdecode_tag(*device, "^" _gfxtag); -#endif +#endif // MAME_VIDEO_PC080SN_H diff --git a/src/mame/video/pc090oj.cpp b/src/mame/video/pc090oj.cpp index 21c9373e7ab..59988bdd08a 100644 --- a/src/mame/video/pc090oj.cpp +++ b/src/mame/video/pc090oj.cpp @@ -72,10 +72,10 @@ Taito pc090oj *****************************************************************************/ -const device_type PC090OJ = device_creator; +DEFINE_DEVICE_TYPE(PC090OJ, pc090oj_device, "pc090oj", "Taito PC090OJ") pc090oj_device::pc090oj_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, PC090OJ, "Taito PC090OJ", tag, owner, clock, "pc090oj", __FILE__), + : device_t(mconfig, PC090OJ, tag, owner, clock), m_ctrl(0), m_sprite_ctrl(0), m_ram(nullptr), diff --git a/src/mame/video/pc090oj.h b/src/mame/video/pc090oj.h index 312dd336efb..85a1ee7e904 100644 --- a/src/mame/video/pc090oj.h +++ b/src/mame/video/pc090oj.h @@ -1,13 +1,14 @@ // license:BSD-3-Clause // copyright-holders:Nicola Salmoria -#ifndef __PC090OJ_H__ -#define __PC090OJ_H__ +#ifndef MAME_VIDEO_PC090OJ_H +#define MAME_VIDEO_PC090OJ_H + +#pragma once class pc090oj_device : public device_t { public: pc090oj_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~pc090oj_device() {} // static configuration static void static_set_gfxdecode_tag(device_t &device, const char *tag); @@ -58,7 +59,7 @@ private: required_device m_palette; }; -extern const device_type PC090OJ; +DECLARE_DEVICE_TYPE(PC090OJ, pc090oj_device) #define MCFG_PC090OJ_GFX_REGION(_region) \ @@ -76,4 +77,4 @@ extern const device_type PC090OJ; #define MCFG_PC090OJ_PALETTE(_palette_tag) \ pc090oj_device::static_set_palette_tag(*device, "^" _palette_tag); -#endif +#endif // MAME_VIDEO_PC090)J_H diff --git a/src/mame/video/pc_t1t.cpp b/src/mame/video/pc_t1t.cpp index a4a91c8c61b..69d026a5ce8 100644 --- a/src/mame/video/pc_t1t.cpp +++ b/src/mame/video/pc_t1t.cpp @@ -31,11 +31,11 @@ enum }; -const device_type PCVIDEO_T1000 = device_creator; -const device_type PCVIDEO_PCJR = device_creator; +DEFINE_DEVICE_TYPE(PCVIDEO_T1000, pcvideo_t1000_device, "tandy_1000_graphics", "Tandy 1000 Graphics Adapter") +DEFINE_DEVICE_TYPE(PCVIDEO_PCJR, pcvideo_pcjr_device, "pcjr_graphics", "PC Jr Graphics Adapter") -pc_t1t_device::pc_t1t_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source), +pc_t1t_device::pc_t1t_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock), device_video_interface(mconfig, *this), m_mc6845(*this, T1000_MC6845_NAME), m_mode_control(0), @@ -59,12 +59,12 @@ pc_t1t_device::pc_t1t_device(const machine_config &mconfig, device_type type, co } pcvideo_t1000_device::pcvideo_t1000_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : pc_t1t_device(mconfig, PCVIDEO_T1000, "Tandy 1000 Graphics Adapter", tag, owner, clock, "tandy_1000_graphics_adapter", __FILE__) + : pc_t1t_device(mconfig, PCVIDEO_T1000, tag, owner, clock) { } pcvideo_pcjr_device::pcvideo_pcjr_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : pc_t1t_device(mconfig, PCVIDEO_PCJR, "PC Jr Graphics Adapter", tag, owner, clock, "pcjr_graphics_adapter", __FILE__), + : pc_t1t_device(mconfig, PCVIDEO_PCJR, tag, owner, clock), m_jxkanji(nullptr) { } diff --git a/src/mame/video/pc_t1t.h b/src/mame/video/pc_t1t.h index c3c5b345046..fb622d72087 100644 --- a/src/mame/video/pc_t1t.h +++ b/src/mame/video/pc_t1t.h @@ -1,7 +1,7 @@ // license:BSD-3-Clause // copyright-holders:Wilbert Pol -#ifndef PC_T1T_H -#define PC_T1T_H +#ifndef MAME_VIDEO_PC_T1T_H +#define MAME_VIDEO_PC_T1T_H #include "video/mc6845.h" #include "machine/ram.h" @@ -10,34 +10,9 @@ #define T1000_SCREEN_NAME "screen" #define T1000_MC6845_NAME "mc6845_t1000" -// used in tandy1000hx; used in pcjr??? -struct reg -{ - reg() - { - index = 0; - memset(&data, 0, sizeof(data)); - } - - uint8_t index; - uint8_t data[0x20]; - /* see vgadoc - 0 mode control 1 - 1 palette mask - 2 border color - 3 mode control 2 - 4 reset - 0x10-0x1f palette registers - */ -}; - -class pc_t1t_device : public device_t, - public device_video_interface +class pc_t1t_device : public device_t, public device_video_interface { public: - // construction/destruction - pc_t1t_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - DECLARE_PALETTE_INIT( pcjr ); DECLARE_WRITE_LINE_MEMBER( t1000_de_changed ); @@ -52,6 +27,30 @@ public: MC6845_UPDATE_ROW( t1000_gfx_1bpp_update_row ); protected: + // used in tandy1000hx; used in pcjr??? + struct reg + { + reg() + { + index = 0; + memset(&data, 0, sizeof(data)); + } + + uint8_t index; + uint8_t data[0x20]; + /* see vgadoc + 0 mode control 1 + 1 palette mask + 2 border color + 3 mode control 2 + 4 reset + 0x10-0x1f palette registers + */ + }; + + // construction/destruction + pc_t1t_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + required_device m_mc6845; uint8_t m_mode_control, m_color_select; uint8_t m_status; @@ -111,7 +110,7 @@ private: bool m_disable; }; -extern const device_type PCVIDEO_T1000; +DECLARE_DEVICE_TYPE(PCVIDEO_T1000, pcvideo_t1000_device) #define MCFG_PCVIDEO_T1000_ADD(_tag) \ MCFG_DEVICE_ADD(_tag, PCVIDEO_T1000, 0) @@ -125,8 +124,6 @@ public: DECLARE_WRITE8_MEMBER( write ); DECLARE_WRITE_LINE_MEMBER( pcjr_vsync_changed ); - uint8_t *m_jxkanji; - virtual MC6845_UPDATE_ROW( crtc_update_row ) override; MC6845_UPDATE_ROW( pcjx_text_update_row ); MC6845_UPDATE_ROW( pcjr_gfx_2bpp_high_update_row ); @@ -135,6 +132,8 @@ protected: virtual machine_config_constructor device_mconfig_additions() const override; virtual void device_start() override; + uint8_t *m_jxkanji; + private: void pc_pcjr_mode_switch(); void pc_pcjr_vga_data_w(int data); @@ -142,10 +141,10 @@ private: void pc_pcjx_bank_w(int data); }; -extern const device_type PCVIDEO_PCJR; +DECLARE_DEVICE_TYPE(PCVIDEO_PCJR, pcvideo_pcjr_device) #define MCFG_PCVIDEO_PCJR_ADD(_tag) \ MCFG_DEVICE_ADD(_tag, PCVIDEO_PCJR, 0) -#endif /* PC_T1T_H */ +#endif // MAME_VIDEO_PC_T1T_H diff --git a/src/mame/video/pcd.cpp b/src/mame/video/pcd.cpp index 99040971f32..1b6f5ae318f 100644 --- a/src/mame/video/pcd.cpp +++ b/src/mame/video/pcd.cpp @@ -9,11 +9,11 @@ #include "screen.h" -const device_type PCD_VIDEO = device_creator; -const device_type PCX_VIDEO = device_creator; +DEFINE_DEVICE_TYPE(PCD_VIDEO, pcd_video_device, "pcd_video", "Siemens PC-D Video") +DEFINE_DEVICE_TYPE(PCX_VIDEO, pcx_video_device, "pcx_video", "Siemens PC-X Video") -pcdx_video_device::pcdx_video_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source), +pcdx_video_device::pcdx_video_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), device_gfx_interface(mconfig, *this, nullptr, "palette"), m_maincpu(*this, ":maincpu"), m_mcu(*this, "graphics"), @@ -23,7 +23,7 @@ pcdx_video_device::pcdx_video_device(const machine_config &mconfig, device_type } pcd_video_device::pcd_video_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - pcdx_video_device(mconfig, PCD_VIDEO, "Siemens PC-D Video", tag, owner, clock, "pcd_video", __FILE__), + pcdx_video_device(mconfig, PCD_VIDEO, tag, owner, clock), m_mouse_btn(*this, "MOUSE"), m_mouse_x(*this, "MOUSEX"), m_mouse_y(*this, "MOUSEY"), @@ -33,7 +33,7 @@ pcd_video_device::pcd_video_device(const machine_config &mconfig, const char *ta } pcx_video_device::pcx_video_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - pcdx_video_device(mconfig, PCX_VIDEO, "Siemens PC-X Video", tag, owner, clock, "pcx_video", __FILE__), + pcdx_video_device(mconfig, PCX_VIDEO, tag, owner, clock), device_serial_interface(mconfig, *this), m_vram(4*1024), m_charrom(*this, "char"), diff --git a/src/mame/video/pcd.h b/src/mame/video/pcd.h index 5617f4b2027..ad1802e0676 100644 --- a/src/mame/video/pcd.h +++ b/src/mame/video/pcd.h @@ -1,8 +1,10 @@ // license:BSD-3-Clause // copyright-holders:Carl -#ifndef _PCD_H_ -#define _PCD_H_ +#ifndef MAME_VIDEO_PCD_H +#define MAME_VIDEO_PCD_H + +#pragma once #include "machine/pic8259.h" #include "video/scn2674.h" @@ -13,14 +15,14 @@ class pcdx_video_device : public device_t, public device_gfx_interface { public: - pcdx_video_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - virtual DECLARE_ADDRESS_MAP(map, 16) = 0; DECLARE_READ8_MEMBER(detect_r); DECLARE_WRITE8_MEMBER(detect_w); DECLARE_PALETTE_INIT(pcdx); protected: + pcdx_video_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + required_device m_maincpu; required_device m_mcu; required_device m_crtc; @@ -76,7 +78,7 @@ class pcx_video_device : public pcdx_video_device, { public: pcx_video_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_txd_handler(device_t &device, _Object object) { return downcast(device).m_txd_handler.set_callback(object); } + template static devcb_base &set_txd_handler(device_t &device, Object &&cb) { return downcast(device).m_txd_handler.set_callback(std::forward(cb)); } virtual DECLARE_ADDRESS_MAP(map, 16) override; DECLARE_READ8_MEMBER(term_r); @@ -108,7 +110,7 @@ private: uint8_t m_term_key, m_term_char, m_term_stat, m_vram_latch_r[2], m_vram_latch_w[2], m_p1; }; -extern const device_type PCD_VIDEO; -extern const device_type PCX_VIDEO; +DECLARE_DEVICE_TYPE(PCD_VIDEO, pcd_video_device) +DECLARE_DEVICE_TYPE(PCX_VIDEO, pcx_video_device) -#endif +#endif // MAME_VIDEO_PCD_H diff --git a/src/mame/video/pecom.cpp b/src/mame/video/pecom.cpp index cb79b8ea4cd..434dca9c60a 100644 --- a/src/mame/video/pecom.cpp +++ b/src/mame/video/pecom.cpp @@ -91,14 +91,14 @@ VIDEO_START_MEMBER(pecom_state,pecom) } MACHINE_CONFIG_FRAGMENT( pecom_video ) - MCFG_CDP1869_SCREEN_PAL_ADD(CDP1869_TAG, SCREEN_TAG, CDP1869_DOT_CLK_PAL) + MCFG_CDP1869_SCREEN_PAL_ADD(CDP1869_TAG, SCREEN_TAG, cdp1869_device::DOT_CLK_PAL) MCFG_VIDEO_START_OVERRIDE(pecom_state,pecom) MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_CDP1869_ADD(CDP1869_TAG, CDP1869_DOT_CLK_PAL, cdp1869_page_ram) - MCFG_CDP1869_COLOR_CLOCK(CDP1869_COLOR_CLK_PAL) + MCFG_CDP1869_ADD(CDP1869_TAG, cdp1869_device::DOT_CLK_PAL, cdp1869_page_ram) + MCFG_CDP1869_COLOR_CLOCK(cdp1869_device::COLOR_CLK_PAL) MCFG_CDP1869_CHAR_PCB_READ_OWNER(pecom_state, pecom_pcb_r) MCFG_CDP1869_CHAR_RAM_READ_OWNER(pecom_state, pecom_char_ram_r) MCFG_CDP1869_CHAR_RAM_WRITE_OWNER(pecom_state, pecom_char_ram_w) diff --git a/src/mame/video/powervr2.cpp b/src/mame/video/powervr2.cpp index e49bc6f845c..10e3abd67d3 100644 --- a/src/mame/video/powervr2.cpp +++ b/src/mame/video/powervr2.cpp @@ -7,11 +7,13 @@ #include "emu.h" #include "powervr2.h" #include "includes/dc.h" + #include "cpu/sh4/sh4.h" -#include "rendutil.h" #include "video/rgbutil.h" +#include "rendutil.h" + -const device_type POWERVR2 = device_creator; +DEFINE_DEVICE_TYPE(POWERVR2, powervr2_device, "powervr2", "PowerVR 2") DEVICE_ADDRESS_MAP_START(ta_map, 32, powervr2_device) AM_RANGE(0x0000, 0x0003) AM_READ( id_r) @@ -3607,7 +3609,7 @@ void powervr2_device::pvr_dma_execute(address_space &space) } powervr2_device::powervr2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, POWERVR2, "PowerVR 2", tag, owner, clock, "powervr2", __FILE__), + : device_t(mconfig, POWERVR2, tag, owner, clock), device_video_interface(mconfig, *this), irq_cb(*this), m_mamedebug(*this, ":MAMEDEBUG") diff --git a/src/mame/video/powervr2.h b/src/mame/video/powervr2.h index 7ef55f553c3..afdf4b23458 100644 --- a/src/mame/video/powervr2.h +++ b/src/mame/video/powervr2.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Olivier Galibert -#ifndef __POWERVR2_H__ -#define __POWERVR2_H__ +#ifndef MAME_VIDEO_POWERVR2_H +#define MAME_VIDEO_POWERVR2_H + +#pragma once #define MCFG_POWERVR2_ADD(_tag, _irq_cb) \ MCFG_DEVICE_ADD(_tag, POWERVR2, 0) \ @@ -483,6 +485,6 @@ private: }; -extern const device_type POWERVR2; +DECLARE_DEVICE_TYPE(POWERVR2, powervr2_device) -#endif +#endif // MAME_VIDEO_POWERVR2_H diff --git a/src/mame/video/sega16sp.cpp b/src/mame/video/sega16sp.cpp index 7f17e58d3d6..e5609298baf 100644 --- a/src/mame/video/sega16sp.cpp +++ b/src/mame/video/sega16sp.cpp @@ -17,14 +17,14 @@ //**************************************************************************** // device type definition -const device_type SEGA_HANGON_SPRITES = device_creator; -const device_type SEGA_SHARRIER_SPRITES = device_creator; -const device_type SEGA_OUTRUN_SPRITES = device_creator; -const device_type SEGA_SYS16A_SPRITES = device_creator; -const device_type BOOTLEG_SYS16A_SPRITES = device_creator; -const device_type SEGA_SYS16B_SPRITES = device_creator; -const device_type SEGA_XBOARD_SPRITES = device_creator; -const device_type SEGA_YBOARD_SPRITES = device_creator; +DEFINE_DEVICE_TYPE(SEGA_HANGON_SPRITES, sega_hangon_sprite_device, "sega_hangon_sprite", "Sega Custom Sprites (Hang On)") +DEFINE_DEVICE_TYPE(SEGA_SHARRIER_SPRITES, sega_sharrier_sprite_device, "sega_sharrier_sprite", "Sega Custom Sprites (Space Harrier)") +DEFINE_DEVICE_TYPE(SEGA_OUTRUN_SPRITES, sega_outrun_sprite_device, "sega_outrun_sprite", "Sega Custom Sprites (Out Run)") +DEFINE_DEVICE_TYPE(SEGA_SYS16A_SPRITES, sega_sys16a_sprite_device, "sega_sys16a_sprite", "Sega System 16A Sprites") +DEFINE_DEVICE_TYPE(BOOTLEG_SYS16A_SPRITES, bootleg_sys16a_sprite_device, "bootleg_sys16a_sprite", "Sega System 16A Sprites (bootleg)") +DEFINE_DEVICE_TYPE(SEGA_SYS16B_SPRITES, sega_sys16b_sprite_device, "sega_sys16b_sprite", "Sega System 16B Sprites") +DEFINE_DEVICE_TYPE(SEGA_XBOARD_SPRITES, sega_xboard_sprite_device, "sega_xboard_sprite", "Sega X-Board Sprites") +DEFINE_DEVICE_TYPE(SEGA_YBOARD_SPRITES, sega_yboard_sprite_device, "sega_yboard_sprite", "Sega Y-Board Sprites") @@ -36,9 +36,9 @@ const device_type SEGA_YBOARD_SPRITES = device_creator> 1) & 0x3f); + color = vector_device::color222((attrib >> 1) & 0x3f); if ((attrib & 1) && color) intensity = 0xff; else diff --git a/src/mame/video/segahang.cpp b/src/mame/video/segahang.cpp index 0aa4a5efa50..b875aa47fd5 100644 --- a/src/mame/video/segahang.cpp +++ b/src/mame/video/segahang.cpp @@ -18,10 +18,10 @@ void segahang_state::video_start() { // initialize the tile/text layers - m_segaic16vid->tilemap_init( 0, SEGAIC16_TILEMAP_HANGON, 0x000, 0, 2); + m_segaic16vid->tilemap_init( 0, segaic16_video_device::TILEMAP_HANGON, 0x000, 0, 2); // initialize the road - m_segaic16road->segaic16_road_init(machine(), 0, m_sharrier_video ? SEGAIC16_ROAD_SHARRIER : SEGAIC16_ROAD_HANGON, 0x038, 0x7c0, 0x7c0, 0); + m_segaic16road->segaic16_road_init(machine(), 0, m_sharrier_video ? segaic16_road_device::ROAD_SHARRIER : segaic16_road_device::ROAD_HANGON, 0x038, 0x7c0, 0x7c0, 0); } @@ -45,24 +45,24 @@ uint32_t segahang_state::screen_update(screen_device &screen, bitmap_ind16 &bitm screen.priority().fill(0, cliprect); // draw the low priority road layer - m_segaic16road->segaic16_road_draw(0, bitmap, cliprect, SEGAIC16_ROAD_BACKGROUND); + m_segaic16road->segaic16_road_draw(0, bitmap, cliprect, segaic16_road_device::ROAD_BACKGROUND); // draw background - m_segaic16vid->tilemap_draw( screen, bitmap, cliprect, 0, SEGAIC16_TILEMAP_BACKGROUND, 0, 0x01); - m_segaic16vid->tilemap_draw( screen, bitmap, cliprect, 0, SEGAIC16_TILEMAP_BACKGROUND, 1, 0x02); + m_segaic16vid->tilemap_draw( screen, bitmap, cliprect, 0, segaic16_video_device::TILEMAP_BACKGROUND, 0, 0x01); + m_segaic16vid->tilemap_draw( screen, bitmap, cliprect, 0, segaic16_video_device::TILEMAP_BACKGROUND, 1, 0x02); // draw foreground - m_segaic16vid->tilemap_draw( screen, bitmap, cliprect, 0, SEGAIC16_TILEMAP_FOREGROUND, 0, 0x02); - m_segaic16vid->tilemap_draw( screen, bitmap, cliprect, 0, SEGAIC16_TILEMAP_FOREGROUND, 1, 0x04); + m_segaic16vid->tilemap_draw( screen, bitmap, cliprect, 0, segaic16_video_device::TILEMAP_FOREGROUND, 0, 0x02); + m_segaic16vid->tilemap_draw( screen, bitmap, cliprect, 0, segaic16_video_device::TILEMAP_FOREGROUND, 1, 0x04); // draw the high priority road - m_segaic16road->segaic16_road_draw(0, bitmap, cliprect, SEGAIC16_ROAD_FOREGROUND); + m_segaic16road->segaic16_road_draw(0, bitmap, cliprect, segaic16_road_device::ROAD_FOREGROUND); // text layer // note that we inflate the priority of the text layer to prevent sprites // from drawing over the high scores - m_segaic16vid->tilemap_draw( screen, bitmap, cliprect, 0, SEGAIC16_TILEMAP_TEXT, 0, 0x08); - m_segaic16vid->tilemap_draw( screen, bitmap, cliprect, 0, SEGAIC16_TILEMAP_TEXT, 1, 0x08); + m_segaic16vid->tilemap_draw( screen, bitmap, cliprect, 0, segaic16_video_device::TILEMAP_TEXT, 0, 0x08); + m_segaic16vid->tilemap_draw( screen, bitmap, cliprect, 0, segaic16_video_device::TILEMAP_TEXT, 1, 0x08); // mix in sprites bitmap_ind16 &sprites = m_sprites->bitmap(); diff --git a/src/mame/video/segaic16.cpp b/src/mame/video/segaic16.cpp index d3b7a6767d6..061ce37988a 100644 --- a/src/mame/video/segaic16.cpp +++ b/src/mame/video/segaic16.cpp @@ -373,11 +373,11 @@ Quick review of the system16 hardware: -const device_type SEGAIC16VID = device_creator; +DEFINE_DEVICE_TYPE(SEGAIC16VID, segaic16_video_device, "segaic16_video", "Sega 16-bit Video") segaic16_video_device::segaic16_video_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, SEGAIC16VID, "Sega 16-bit Video", tag, owner, clock, "segaic16_video", __FILE__), - device_video_interface(mconfig, *this) + : device_t(mconfig, SEGAIC16VID, tag, owner, clock) + , device_video_interface(mconfig, *this) , m_display_enable(0) , m_tileram(*this, "^tileram") , m_textram(*this, "^textram") @@ -447,7 +447,7 @@ void segaic16_video_device::set_display_enable(int enable) * *************************************/ -void draw_virtual_tilemap(screen_device &screen, struct tilemap_info *info, bitmap_ind16 &bitmap, const rectangle &cliprect, uint16_t pages, uint16_t xscroll, uint16_t yscroll, uint32_t flags, uint32_t priority) +void draw_virtual_tilemap(screen_device &screen, segaic16_video_device::tilemap_info *info, bitmap_ind16 &bitmap, const rectangle &cliprect, uint16_t pages, uint16_t xscroll, uint16_t yscroll, uint32_t flags, uint32_t priority) { int leftmin = -1, leftmax = -1, rightmin = -1, rightmax = -1; int topmin = -1, topmax = -1, bottommin = -1, bottommax = -1; @@ -688,7 +688,7 @@ TILE_GET_INFO_MEMBER( segaic16_video_device::tilemap_16a_text_info ) } -void tilemap_16a_draw_layer(screen_device &screen, struct tilemap_info *info, bitmap_ind16 &bitmap, const rectangle &cliprect, int which, int flags, int priority) +static void tilemap_16a_draw_layer(screen_device &screen, segaic16_video_device::tilemap_info *info, bitmap_ind16 &bitmap, const rectangle &cliprect, int which, int flags, int priority) { uint16_t *textram = info->textram; @@ -930,7 +930,7 @@ TILE_GET_INFO_MEMBER( segaic16_video_device::tilemap_16b_alt_text_info ) } -void tilemap_16b_draw_layer(screen_device &screen, struct tilemap_info *info, bitmap_ind16 &bitmap, const rectangle &cliprect, int which, int flags, int priority) +static void tilemap_16b_draw_layer(screen_device &screen, segaic16_video_device::tilemap_info *info, bitmap_ind16 &bitmap, const rectangle &cliprect, int which, int flags, int priority) { uint16_t *textram = info->textram; uint16_t xscroll, yscroll, pages; @@ -1051,7 +1051,7 @@ TIMER_CALLBACK_MEMBER( segaic16_video_device::tilemap_16b_latch_values ) } -void tilemap_16b_reset(screen_device &screen, struct tilemap_info *info) +static void tilemap_16b_reset(screen_device &screen, segaic16_video_device::tilemap_info *info) { /* set a timer to latch values on scanline 261 */ info->latch_timer->adjust(screen.time_until_pos(261), info->index); @@ -1097,7 +1097,7 @@ void segaic16_video_device::tilemap_init(int which, int type, int colorbase, int /* determine the parameters of the tilemaps */ switch (type) { - case SEGAIC16_TILEMAP_HANGON: + case TILEMAP_HANGON: get_text_info = tilemap_get_info_delegate(FUNC(segaic16_video_device::tilemap_16a_text_info),this); get_tile_info = tilemap_get_info_delegate(FUNC(segaic16_video_device::tilemap_16a_tile_info),this); info->numpages = 4; @@ -1106,7 +1106,7 @@ void segaic16_video_device::tilemap_init(int which, int type, int colorbase, int info->latch_timer = nullptr; break; - case SEGAIC16_TILEMAP_16A: + case TILEMAP_16A: get_text_info = tilemap_get_info_delegate(FUNC(segaic16_video_device::tilemap_16a_text_info),this); get_tile_info = tilemap_get_info_delegate(FUNC(segaic16_video_device::tilemap_16a_tile_info),this); info->numpages = 8; @@ -1115,7 +1115,7 @@ void segaic16_video_device::tilemap_init(int which, int type, int colorbase, int info->latch_timer = nullptr; break; - case SEGAIC16_TILEMAP_16B: + case TILEMAP_16B: get_text_info = tilemap_get_info_delegate(FUNC(segaic16_video_device::tilemap_16b_text_info),this); get_tile_info = tilemap_get_info_delegate(FUNC(segaic16_video_device::tilemap_16b_tile_info),this); info->numpages = 16; @@ -1124,7 +1124,7 @@ void segaic16_video_device::tilemap_init(int which, int type, int colorbase, int info->latch_timer = machine().scheduler().timer_alloc( timer_expired_delegate(FUNC(segaic16_video_device::tilemap_16b_latch_values),this) ); break; - case SEGAIC16_TILEMAP_16B_ALT: + case TILEMAP_16B_ALT: get_text_info = tilemap_get_info_delegate(FUNC(segaic16_video_device::tilemap_16b_alt_text_info),this); get_tile_info = tilemap_get_info_delegate(FUNC(segaic16_video_device::tilemap_16b_alt_tile_info),this); info->numpages = 16; @@ -1189,7 +1189,7 @@ void segaic16_video_device::tilemap_draw(screen_device &screen, bitmap_ind16 &bi struct tilemap_info *info = &m_bg_tilemap[which]; /* text layer is a special common case */ - if (map == SEGAIC16_TILEMAP_TEXT) + if (map == TILEMAP_TEXT) info->textmap->draw(screen, bitmap, cliprect, priority, priority_mark); /* other layers are handled differently per-system */ @@ -1370,7 +1370,7 @@ void segaic16_video_device::rotate_init(int which, int type, int colorbase) /* determine the parameters of the rotate */ switch (type) { - case SEGAIC16_ROTATE_YBOARD: + case ROTATE_YBOARD: info->ramsize = 0x800; break; diff --git a/src/mame/video/segaic16.h b/src/mame/video/segaic16.h index 873f5107d24..15554d3f3b5 100644 --- a/src/mame/video/segaic16.h +++ b/src/mame/video/segaic16.h @@ -5,10 +5,10 @@ Sega 16-bit common hardware ***************************************************************************/ +#ifndef MAME_VIDEO_SEGAIC16_H +#define MAME_VIDEO_SEGAIC16_H #pragma once -#ifndef __SEGAIC16VID_H__ -#define __SEGAIC16VID_H__ typedef device_delegate segaic16_video_pagelatch_delegate; @@ -16,27 +16,6 @@ typedef device_delegate segaic16_video_device::set_pagelatch_cb(*device, segaic16_video_pagelatch_delegate(&_class::_method, #_class "::" #_method, nullptr, (_class *)nullptr)); -/* tilemap systems */ -#define SEGAIC16_MAX_TILEMAPS 1 - -#define SEGAIC16_TILEMAP_HANGON 0 -#define SEGAIC16_TILEMAP_16A 1 -#define SEGAIC16_TILEMAP_16B 2 -#define SEGAIC16_TILEMAP_16B_ALT 3 - -#define SEGAIC16_TILEMAP_FOREGROUND 0 -#define SEGAIC16_TILEMAP_BACKGROUND 1 -#define SEGAIC16_TILEMAP_TEXT 2 - - - -/* rotation systems */ -#define SEGAIC16_MAX_ROTATE 1 - -#define SEGAIC16_ROTATE_YBOARD 0 - - - /************************************* * * Type definitions @@ -45,50 +24,6 @@ typedef device_delegate -struct tilemap_callback_info -{ - uint16_t * rambase; /* base of RAM for this tilemap page */ - const uint8_t * bank; /* pointer to bank array */ - uint16_t banksize; /* size of banks */ -}; - - -struct tilemap_info -{ - uint8_t index; /* index of this structure */ - uint8_t type; /* type of tilemap (see segaic16.h for details) */ - uint8_t numpages; /* number of allocated pages */ - uint8_t flip; /* screen flip? */ - uint8_t rowscroll, colscroll; /* are rowscroll/colscroll enabled (if external enables are used) */ - uint8_t bank[8]; /* indexes of the tile banks */ - uint16_t banksize; /* number of tiles per bank */ - uint16_t latched_xscroll[4]; /* latched X scroll values */ - uint16_t latched_yscroll[4]; /* latched Y scroll values */ - uint16_t latched_pageselect[4]; /* latched page select values */ - int32_t xoffs; /* X scroll offset */ - tilemap_t * tilemaps[16]; /* up to 16 tilemap pages */ - tilemap_t * textmap; /* a single text tilemap */ - struct tilemap_callback_info tmap_info[16]; /* callback info for 16 tilemap pages */ - struct tilemap_callback_info textmap_info; /* callback info for a single textmap page */ - void (*reset)(screen_device &screen, struct tilemap_info *info);/* reset callback */ - void (*draw_layer)(screen_device &screen, struct tilemap_info *info, bitmap_ind16 &bitmap, const rectangle &cliprect, int which, int flags, int priority); - uint16_t * textram; /* pointer to textram pointer */ - uint16_t * tileram; /* pointer to tileram pointer */ - emu_timer * latch_timer; /* timer for latching 16b tilemap scroll values */ -}; - - -struct rotate_info -{ - uint8_t index; /* index of this structure */ - uint8_t type; /* type of rotate system (see segaic16.h for details) */ - uint16_t colorbase; /* base color index */ - int32_t ramsize; /* size of rotate RAM */ - uint16_t * rotateram; /* pointer to rotateram pointer */ - std::unique_ptr buffer; /* buffered data */ -}; - - /*************************************************************************** FUNCTION PROTOTYPES ***************************************************************************/ @@ -99,8 +34,72 @@ class segaic16_video_device : public device_t, public device_video_interface { public: + /* tilemap systems */ + static constexpr unsigned MAX_TILEMAPS = 1; + + static constexpr unsigned TILEMAP_HANGON = 0; + static constexpr unsigned TILEMAP_16A = 1; + static constexpr unsigned TILEMAP_16B = 2; + static constexpr unsigned TILEMAP_16B_ALT = 3; + + static constexpr unsigned TILEMAP_FOREGROUND = 0; + static constexpr unsigned TILEMAP_BACKGROUND = 1; + static constexpr unsigned TILEMAP_TEXT = 2; + + + + /* rotation systems */ + static constexpr unsigned MAX_ROTATE = 1; + + static constexpr unsigned ROTATE_YBOARD = 0; + + + + struct tilemap_callback_info + { + uint16_t * rambase; /* base of RAM for this tilemap page */ + const uint8_t * bank; /* pointer to bank array */ + uint16_t banksize; /* size of banks */ + }; + + + struct tilemap_info + { + uint8_t index; /* index of this structure */ + uint8_t type; /* type of tilemap (see segaic16.h for details) */ + uint8_t numpages; /* number of allocated pages */ + uint8_t flip; /* screen flip? */ + uint8_t rowscroll, colscroll; /* are rowscroll/colscroll enabled (if external enables are used) */ + uint8_t bank[8]; /* indexes of the tile banks */ + uint16_t banksize; /* number of tiles per bank */ + uint16_t latched_xscroll[4]; /* latched X scroll values */ + uint16_t latched_yscroll[4]; /* latched Y scroll values */ + uint16_t latched_pageselect[4]; /* latched page select values */ + int32_t xoffs; /* X scroll offset */ + tilemap_t * tilemaps[16]; /* up to 16 tilemap pages */ + tilemap_t * textmap; /* a single text tilemap */ + struct tilemap_callback_info tmap_info[16]; /* callback info for 16 tilemap pages */ + struct tilemap_callback_info textmap_info; /* callback info for a single textmap page */ + void (*reset)(screen_device &screen, struct tilemap_info *info);/* reset callback */ + void (*draw_layer)(screen_device &screen, struct tilemap_info *info, bitmap_ind16 &bitmap, const rectangle &cliprect, int which, int flags, int priority); + uint16_t * textram; /* pointer to textram pointer */ + uint16_t * tileram; /* pointer to tileram pointer */ + emu_timer * latch_timer; /* timer for latching 16b tilemap scroll values */ + }; + + + struct rotate_info + { + uint8_t index; /* index of this structure */ + uint8_t type; /* type of rotate system (see segaic16.h for details) */ + uint16_t colorbase; /* base color index */ + int32_t ramsize; /* size of rotate RAM */ + uint16_t * rotateram; /* pointer to rotateram pointer */ + std::unique_ptr buffer; /* buffered data */ + }; + + segaic16_video_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~segaic16_video_device() {} // static configuration static void static_set_gfxdecode_tag(device_t &device, const char *tag); @@ -126,8 +125,8 @@ public: void tilemap_16b_fill_latch(int i, uint16_t* latched_pageselect, uint16_t* latched_yscroll, uint16_t* latched_xscroll, uint16_t* textram); TIMER_CALLBACK_MEMBER( tilemap_16b_latch_values ); - struct rotate_info m_rotate[SEGAIC16_MAX_ROTATE]; - struct tilemap_info m_bg_tilemap[SEGAIC16_MAX_TILEMAPS]; + struct rotate_info m_rotate[MAX_ROTATE]; + struct tilemap_info m_bg_tilemap[MAX_TILEMAPS]; void set_display_enable(int enable); void tilemap_init(int which, int type, int colorbase, int xoffs, int numbanks); @@ -160,7 +159,7 @@ private: required_device m_gfxdecode; }; -extern const device_type SEGAIC16VID; +DECLARE_DEVICE_TYPE(SEGAIC16VID, segaic16_video_device) #define MCFG_SEGAIC16VID_ADD(_tag) \ MCFG_DEVICE_ADD(_tag, SEGAIC16VID, 0) @@ -168,4 +167,4 @@ extern const device_type SEGAIC16VID; #define MCFG_SEGAIC16VID_GFXDECODE(_gfxtag) \ segaic16_video_device::static_set_gfxdecode_tag(*device, "^" _gfxtag); -#endif +#endif // MAME_VIDEO_SEGAIC16_H diff --git a/src/mame/video/segaic16_road.cpp b/src/mame/video/segaic16_road.cpp index d20ceb9aba4..107ad71ef4d 100644 --- a/src/mame/video/segaic16_road.cpp +++ b/src/mame/video/segaic16_road.cpp @@ -6,10 +6,10 @@ #include "segaic16_road.h" #include "video/resnet.h" -const device_type SEGAIC16_ROAD = device_creator; +DEFINE_DEVICE_TYPE(SEGAIC16_ROAD, segaic16_road_device, "segaic16_road", "Sega 16-bit Road Generator") segaic16_road_device::segaic16_road_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, SEGAIC16_ROAD, "Sega 16-bit Road Generator", tag, owner, clock, "segaic16_road", __FILE__) + : device_t(mconfig, SEGAIC16_ROAD, tag, owner, clock) { } @@ -69,7 +69,7 @@ void segaic16_road_device::device_reset() -void segaic16_road_device::segaic16_road_hangon_decode(running_machine &machine, struct road_info *info) +void segaic16_road_device::segaic16_road_hangon_decode(running_machine &machine, road_info *info) { int x, y; const uint8_t *gfx = memregion("^gfx3")->base(); @@ -91,7 +91,7 @@ void segaic16_road_device::segaic16_road_hangon_decode(running_machine &machine, } -static void segaic16_road_hangon_draw(struct road_info *info, bitmap_ind16 &bitmap, const rectangle &cliprect, int priority) +static void segaic16_road_hangon_draw(segaic16_road_device::road_info *info, bitmap_ind16 &bitmap, const rectangle &cliprect, int priority) { uint16_t *roadram = info->roadram; int x, y; @@ -111,8 +111,8 @@ static void segaic16_road_hangon_draw(struct road_info *info, bitmap_ind16 &bitm plycont = (control >> 10) & 3; /* skip layers we aren't supposed to be drawing */ - if ((plycont == 0 && priority != SEGAIC16_ROAD_BACKGROUND) || - (plycont != 0 && priority != SEGAIC16_ROAD_FOREGROUND)) + if ((plycont == 0 && priority != segaic16_road_device::ROAD_BACKGROUND) || + (plycont != 0 && priority != segaic16_road_device::ROAD_FOREGROUND)) continue; /* compute the offset of the road graphics for this line */ @@ -153,7 +153,7 @@ static void segaic16_road_hangon_draw(struct road_info *info, bitmap_ind16 &bitm /* for the Hang On/Super Hang On case only: if the control word bit 9 is clear, we will forcibly */ /* set the flip-flip at 9J (upper half) */ - if (info->type == SEGAIC16_ROAD_HANGON && !(control & 0x200)) + if (info->type == segaic16_road_device::ROAD_HANGON && !(control & 0x200)) ff9j2 = 1; /* ---- now process the pixel ---- */ @@ -161,7 +161,7 @@ static void segaic16_road_hangon_draw(struct road_info *info, bitmap_ind16 &bitm /* the Space Harrier/Enduro Racer hardware has a tweak that maps the control word bit 9 to the */ /* /CE line on the road ROM; use this to effectively disable the road data */ - if (info->type != SEGAIC16_ROAD_SHARRIER || !(control & 0x200)) + if (info->type != segaic16_road_device::ROAD_SHARRIER || !(control & 0x200)) /* the /OE line on the road ROM is linked to the AND of bits 2 & 3 of the counter at 9N */ if ((ctr9n9p & 0xc0) == 0xc0) @@ -330,7 +330,7 @@ static void segaic16_road_hangon_draw(struct road_info *info, bitmap_ind16 &bitm * *******************************************************************************************/ -void segaic16_road_device::segaic16_road_outrun_decode(running_machine &machine, struct road_info *info) +void segaic16_road_device::segaic16_road_outrun_decode(running_machine &machine, road_info *info) { int x, y; const uint8_t *gfx = memregion("^gfx3")->base(); @@ -361,7 +361,7 @@ void segaic16_road_device::segaic16_road_outrun_decode(running_machine &machine, } -static void segaic16_road_outrun_draw(struct road_info *info, bitmap_ind16 &bitmap, const rectangle &cliprect, int priority) +static void segaic16_road_outrun_draw(segaic16_road_device::road_info *info, bitmap_ind16 &bitmap, const rectangle &cliprect, int priority) { uint16_t *roadram = info->buffer.get(); int x, y; @@ -383,7 +383,7 @@ static void segaic16_road_outrun_draw(struct road_info *info, bitmap_ind16 &bitm int data1 = roadram[0x100 + y]; /* background case: look for solid fill scanlines */ - if (priority == SEGAIC16_ROAD_BACKGROUND) + if (priority == segaic16_road_device::ROAD_BACKGROUND) { int color = -1; @@ -536,7 +536,7 @@ static void segaic16_road_outrun_draw(struct road_info *info, bitmap_ind16 &bitm void segaic16_road_device::segaic16_road_init(running_machine &machine, int which, int type, int colorbase1, int colorbase2, int colorbase3, int xoffs) { - struct road_info *info = &segaic16_road[which]; + road_info *info = &segaic16_road[which]; /* reset the tilemap info */ memset(info, 0, sizeof(*info)); @@ -561,14 +561,14 @@ void segaic16_road_device::segaic16_road_init(running_machine &machine, int whic /* determine the parameters of the road */ switch (type) { - case SEGAIC16_ROAD_HANGON: - case SEGAIC16_ROAD_SHARRIER: + case ROAD_HANGON: + case ROAD_SHARRIER: info->draw = segaic16_road_hangon_draw; segaic16_road_hangon_decode(machine, info); break; - case SEGAIC16_ROAD_OUTRUN: - case SEGAIC16_ROAD_XBOARD: + case ROAD_OUTRUN: + case ROAD_XBOARD: info->buffer = std::make_unique(0x1000/2); info->draw = segaic16_road_outrun_draw; segaic16_road_outrun_decode(machine, info); @@ -589,7 +589,7 @@ void segaic16_road_device::segaic16_road_init(running_machine &machine, int whic void segaic16_road_device::segaic16_road_draw(int which, bitmap_ind16 &bitmap, const rectangle &cliprect, int priority) { - struct road_info *info = &segaic16_road[which]; + road_info *info = &segaic16_road[which]; (*info->draw)(info, bitmap, cliprect, priority); } @@ -603,7 +603,7 @@ void segaic16_road_device::segaic16_road_draw(int which, bitmap_ind16 &bitmap, c READ16_MEMBER( segaic16_road_device::segaic16_road_control_0_r ) { - struct road_info *info = &segaic16_road[0]; + road_info *info = &segaic16_road[0]; if (info->buffer) { @@ -626,10 +626,10 @@ READ16_MEMBER( segaic16_road_device::segaic16_road_control_0_r ) WRITE16_MEMBER( segaic16_road_device::segaic16_road_control_0_w ) { - struct road_info *info = &segaic16_road[0]; + road_info *info = &segaic16_road[0]; if (ACCESSING_BITS_0_7) { - info->control = data & ((info->type == SEGAIC16_ROAD_OUTRUN) ? 3 : 7); + info->control = data & ((info->type == ROAD_OUTRUN) ? 3 : 7); } } diff --git a/src/mame/video/segaic16_road.h b/src/mame/video/segaic16_road.h index 9d835582c86..f95e40b0cba 100644 --- a/src/mame/video/segaic16_road.h +++ b/src/mame/video/segaic16_road.h @@ -1,54 +1,53 @@ // license:BSD-3-Clause // copyright-holders:Aaron Giles /* Sega Road Generators */ - +#ifndef MAME_VIDEO_SEGAIC16_ROAD_H +#define MAME_VIDEO_SEGAIC16_ROAD_H #pragma once -#ifndef __SEGAIC16_ROAD_H__ -#define __SEGAIC16_ROAD_H__ -/* road systems */ -#define SEGAIC16_MAX_ROADS 1 -#define SEGAIC16_ROAD_HANGON 0 -#define SEGAIC16_ROAD_SHARRIER 1 -#define SEGAIC16_ROAD_OUTRUN 2 -#define SEGAIC16_ROAD_XBOARD 3 +class segaic16_road_device : public device_t +{ +public: + /* road systems */ + static constexpr unsigned MAX_ROADS = 1; -#define SEGAIC16_ROAD_BACKGROUND 0 -#define SEGAIC16_ROAD_FOREGROUND 1 + static constexpr unsigned ROAD_HANGON = 0; + static constexpr unsigned ROAD_SHARRIER = 1; + static constexpr unsigned ROAD_OUTRUN = 2; + static constexpr unsigned ROAD_XBOARD = 3; + static constexpr unsigned ROAD_BACKGROUND = 0; + static constexpr unsigned ROAD_FOREGROUND = 1; -struct road_info -{ - uint8_t index; /* index of this structure */ - uint8_t type; /* type of road system (see segaic16.h for details) */ - uint8_t control; /* control register value */ - uint16_t colorbase1; /* color base for road ROM data */ - uint16_t colorbase2; /* color base for road background data */ - uint16_t colorbase3; /* color base for sky data */ - int32_t xoffs; /* X scroll offset */ - void (*draw)(struct road_info *info, bitmap_ind16 &bitmap, const rectangle &cliprect, int priority); - uint16_t * roadram; /* pointer to roadram pointer */ - std::unique_ptr buffer; /* buffered roadram pointer */ - std::unique_ptr gfx; /* expanded road graphics */ -}; + + struct road_info + { + uint8_t index; /* index of this structure */ + uint8_t type; /* type of road system (see segaic16.h for details) */ + uint8_t control; /* control register value */ + uint16_t colorbase1; /* color base for road ROM data */ + uint16_t colorbase2; /* color base for road background data */ + uint16_t colorbase3; /* color base for sky data */ + int32_t xoffs; /* X scroll offset */ + void (*draw)(struct road_info *info, bitmap_ind16 &bitmap, const rectangle &cliprect, int priority); + uint16_t * roadram; /* pointer to roadram pointer */ + std::unique_ptr buffer; /* buffered roadram pointer */ + std::unique_ptr gfx; /* expanded road graphics */ + }; -class segaic16_road_device : public device_t -{ -public: segaic16_road_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~segaic16_road_device() {} uint16_t *segaic16_roadram_0; void segaic16_road_hangon_decode(running_machine &machine, struct road_info *info); void segaic16_road_outrun_decode(running_machine &machine, struct road_info *info); - struct road_info segaic16_road[SEGAIC16_MAX_ROADS]; + struct road_info segaic16_road[MAX_ROADS]; void segaic16_road_init(running_machine &machine, int which, int type, int colorbase1, int colorbase2, int colorbase3, int xoffs); void segaic16_road_draw(int which, bitmap_ind16 &bitmap, const rectangle &cliprect, int priority); @@ -66,9 +65,9 @@ private: // internal state }; -extern const device_type SEGAIC16_ROAD; +DECLARE_DEVICE_TYPE(SEGAIC16_ROAD, segaic16_road_device) #define MCFG_SEGAIC16_ROAD_ADD(_tag) \ MCFG_DEVICE_ADD(_tag, SEGAIC16_ROAD, 0) -#endif +#endif // MAME_VIDEO_SEGAIC16_ROAD_H diff --git a/src/mame/video/segaic24.cpp b/src/mame/video/segaic24.cpp index 6747046de0b..0cd954ca3d7 100644 --- a/src/mame/video/segaic24.cpp +++ b/src/mame/video/segaic24.cpp @@ -19,26 +19,26 @@ System 24 68000x2 315-5292 315-5293 315-5294 315-5242 ym2151 da #include "screen.h" -const device_type S24TILE = device_creator; -const device_type S24SPRITE = device_creator; -const device_type S24MIXER = device_creator; +DEFINE_DEVICE_TYPE(S24TILE, segas24_tile_device, "segas24_tile", "Sega System 24 Tilemap") +DEFINE_DEVICE_TYPE(S24SPRITE, segas24_sprite_device, "segas24_sprite", "Sega System 24 Sprites") +DEFINE_DEVICE_TYPE(S24MIXER, segas24_mixer_device, "segas24_mixer", "Sega System 24 Mixer") -segas24_tile::segas24_tile(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, S24TILE, "Sega System 24 Tilemap", tag, owner, clock, "segas24_tile", __FILE__), - device_gfx_interface(mconfig, *this), - char_gfx_index(0) +segas24_tile_device::segas24_tile_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, S24TILE, tag, owner, clock) + , device_gfx_interface(mconfig, *this) + , char_gfx_index(0) { } -void segas24_tile::static_set_tile_mask(device_t &device, uint16_t _tile_mask) +void segas24_tile_device::static_set_tile_mask(device_t &device, uint16_t _tile_mask) { - segas24_tile &dev = downcast(device); + segas24_tile_device &dev = downcast(device); dev.tile_mask = _tile_mask; } -const gfx_layout segas24_tile::char_layout = { +const gfx_layout segas24_tile_device::char_layout = { 8, 8, SYS24_TILES, 4, @@ -48,34 +48,34 @@ const gfx_layout segas24_tile::char_layout = { 8*32 }; -void segas24_tile::tile_info(int offset, tile_data &tileinfo, tilemap_memory_index tile_index) +void segas24_tile_device::tile_info(int offset, tile_data &tileinfo, tilemap_memory_index tile_index) { uint16_t val = tile_ram[tile_index|offset]; SET_TILE_INFO_MEMBER(char_gfx_index, val & tile_mask, (val >> 7) & 0xff, 0); tileinfo.category = (val & 0x8000) != 0; } -TILE_GET_INFO_MEMBER(segas24_tile::tile_info_0s) +TILE_GET_INFO_MEMBER(segas24_tile_device::tile_info_0s) { tile_info(0x0000, tileinfo, tile_index); } -TILE_GET_INFO_MEMBER( segas24_tile::tile_info_0w) +TILE_GET_INFO_MEMBER( segas24_tile_device::tile_info_0w) { tile_info(0x1000, tileinfo, tile_index); } -TILE_GET_INFO_MEMBER(segas24_tile::tile_info_1s) +TILE_GET_INFO_MEMBER(segas24_tile_device::tile_info_1s) { tile_info(0x2000, tileinfo, tile_index); } -TILE_GET_INFO_MEMBER(segas24_tile::tile_info_1w) +TILE_GET_INFO_MEMBER(segas24_tile_device::tile_info_1w) { tile_info(0x3000, tileinfo, tile_index); } -void segas24_tile::device_start() +void segas24_tile_device::device_start() { if (!palette().device().started()) throw device_missing_dependencies(); @@ -83,10 +83,10 @@ void segas24_tile::device_start() char_ram = std::make_unique(0x80000/2); tile_ram = std::make_unique(0x10000/2); - tile_layer[0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(segas24_tile::tile_info_0s),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); - tile_layer[1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(segas24_tile::tile_info_0w),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); - tile_layer[2] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(segas24_tile::tile_info_1s),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); - tile_layer[3] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(segas24_tile::tile_info_1w),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); + tile_layer[0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(segas24_tile_device::tile_info_0s),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); + tile_layer[1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(segas24_tile_device::tile_info_0w),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); + tile_layer[2] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(segas24_tile_device::tile_info_1s),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); + tile_layer[3] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(segas24_tile_device::tile_info_1w),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); tile_layer[0]->set_transparent_pen(0); tile_layer[1]->set_transparent_pen(0); @@ -102,7 +102,7 @@ void segas24_tile::device_start() save_pointer(NAME(char_ram.get()), 0x80000/2); } -void segas24_tile::draw_rect(screen_device &screen, bitmap_ind16 &bm, bitmap_ind8 &tm, bitmap_ind16 &dm, const uint16_t *mask, +void segas24_tile_device::draw_rect(screen_device &screen, bitmap_ind16 &bm, bitmap_ind8 &tm, bitmap_ind16 &dm, const uint16_t *mask, uint16_t tpri, uint8_t lpri, int win, int sx, int sy, int xx1, int yy1, int xx2, int yy2) { int y; @@ -236,7 +236,7 @@ void segas24_tile::draw_rect(screen_device &screen, bitmap_ind16 &bm, bitmap_ind // about sprite priority hence the lack of support for the // priority_bitmap -void segas24_tile::draw_rect(screen_device &screen, bitmap_ind16 &bm, bitmap_ind8 &tm, bitmap_rgb32 &dm, const uint16_t *mask, +void segas24_tile_device::draw_rect(screen_device &screen, bitmap_ind16 &bm, bitmap_ind8 &tm, bitmap_rgb32 &dm, const uint16_t *mask, uint16_t tpri, uint8_t lpri, int win, int sx, int sy, int xx1, int yy1, int xx2, int yy2) { int y; @@ -349,7 +349,7 @@ void segas24_tile::draw_rect(screen_device &screen, bitmap_ind16 &bm, bitmap_ind } template -void segas24_tile::draw_common(screen_device &screen, _BitmapClass &bitmap, const rectangle &cliprect, int layer, int lpri, int flags) +void segas24_tile_device::draw_common(screen_device &screen, _BitmapClass &bitmap, const rectangle &cliprect, int layer, int lpri, int flags) { uint16_t hscr = tile_ram[0x5000+(layer >> 1)]; uint16_t vscr = tile_ram[0x5004+(layer >> 1)]; @@ -524,30 +524,30 @@ void segas24_tile::draw_common(screen_device &screen, _BitmapClass &bitmap, cons } } -void segas24_tile::draw(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int layer, int lpri, int flags) +void segas24_tile_device::draw(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int layer, int lpri, int flags) { draw_common(screen, bitmap, cliprect, layer, lpri, flags); } -void segas24_tile::draw(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect, int layer, int lpri, int flags) +void segas24_tile_device::draw(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect, int layer, int lpri, int flags) { draw_common(screen, bitmap, cliprect, layer, lpri, flags); } -READ16_MEMBER(segas24_tile::tile_r) +READ16_MEMBER(segas24_tile_device::tile_r) { return tile_ram[offset]; } -READ16_MEMBER(segas24_tile::char_r) +READ16_MEMBER(segas24_tile_device::char_r) { return char_ram[offset]; } -WRITE16_MEMBER(segas24_tile::tile_w) +WRITE16_MEMBER(segas24_tile_device::tile_w) { COMBINE_DATA(tile_ram.get() + offset); if(offset < 0x4000) tile_layer[offset >> 12]->mark_tile_dirty(offset & 0xfff); } -WRITE16_MEMBER(segas24_tile::char_w) +WRITE16_MEMBER(segas24_tile_device::char_w) { uint16_t old = char_ram[offset]; COMBINE_DATA(char_ram.get() + offset); @@ -555,35 +555,35 @@ WRITE16_MEMBER(segas24_tile::char_w) gfx(char_gfx_index)->mark_dirty(offset / 16); } -READ32_MEMBER(segas24_tile::tile32_r) +READ32_MEMBER(segas24_tile_device::tile32_r) { return tile_r(space, offset*2, mem_mask&0xffff) | tile_r(space, (offset*2)+1, mem_mask>>16)<<16; } -READ32_MEMBER(segas24_tile::char32_r) +READ32_MEMBER(segas24_tile_device::char32_r) { return char_r(space, offset*2, mem_mask&0xffff) | char_r(space, (offset*2)+1, mem_mask>>16)<<16; } -WRITE32_MEMBER(segas24_tile::tile32_w) +WRITE32_MEMBER(segas24_tile_device::tile32_w) { tile_w(space, offset*2, data&0xffff, mem_mask&0xffff); tile_w(space, (offset*2)+1, data>>16, mem_mask>>16); } -WRITE32_MEMBER(segas24_tile::char32_w) +WRITE32_MEMBER(segas24_tile_device::char32_w) { char_w(space, offset*2, data&0xffff, mem_mask&0xffff); char_w(space, (offset*2)+1, data>>16, mem_mask>>16); } -segas24_sprite::segas24_sprite(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, S24SPRITE, "Sega System 24 Sprites", tag, owner, clock, "segas24_sprite", __FILE__) +segas24_sprite_device::segas24_sprite_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, S24SPRITE, tag, owner, clock) { } -void segas24_sprite::device_start() +void segas24_sprite_device::device_start() { sprite_ram = std::make_unique(0x40000/2); @@ -614,7 +614,7 @@ void segas24_sprite::device_start() 0 11------ -------- */ -void segas24_sprite::draw(bitmap_ind16 &bitmap, const rectangle &cliprect, bitmap_ind8 &priority_bitmap, const int *spri) +void segas24_sprite_device::draw(bitmap_ind16 &bitmap, const rectangle &cliprect, bitmap_ind8 &priority_bitmap, const int *spri) { uint16_t curspr = 0; int countspr = 0; @@ -812,39 +812,39 @@ void segas24_sprite::draw(bitmap_ind16 &bitmap, const rectangle &cliprect, bitma } -WRITE16_MEMBER(segas24_sprite::write) +WRITE16_MEMBER(segas24_sprite_device::write) { COMBINE_DATA(sprite_ram.get() + offset); } -READ16_MEMBER(segas24_sprite::read) +READ16_MEMBER(segas24_sprite_device::read) { return sprite_ram[offset]; } -segas24_mixer::segas24_mixer(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, S24MIXER, "Sega System 24 Mixer", tag, owner, clock, "segas24_mixer", __FILE__) +segas24_mixer_device::segas24_mixer_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, S24MIXER, tag, owner, clock) { } -void segas24_mixer::device_start() +void segas24_mixer_device::device_start() { memset(mixer_reg, 0, sizeof(mixer_reg)); save_item(NAME(mixer_reg)); } -WRITE16_MEMBER(segas24_mixer::write) +WRITE16_MEMBER(segas24_mixer_device::write) { COMBINE_DATA(mixer_reg + offset); } -READ16_MEMBER(segas24_mixer::read) +READ16_MEMBER(segas24_mixer_device::read) { return mixer_reg[offset]; } -uint16_t segas24_mixer::get_reg(int reg) +uint16_t segas24_mixer_device::get_reg(int reg) { return mixer_reg[reg]; } diff --git a/src/mame/video/segaic24.h b/src/mame/video/segaic24.h index 5c95f172285..abcf5c6a4ee 100644 --- a/src/mame/video/segaic24.h +++ b/src/mame/video/segaic24.h @@ -5,12 +5,14 @@ */ -#ifndef __SEGAIC24_H -#define __SEGAIC24_H +#ifndef MAME_VIDEO_SEGAIC24_H +#define MAME_VIDEO_SEGAIC24_H + +#pragma once #define MCFG_S24TILE_DEVICE_ADD(_tag, tile_mask) \ MCFG_DEVICE_ADD(_tag, S24TILE, 0) \ - segas24_tile::static_set_tile_mask(*device, tile_mask); + segas24_tile_device::static_set_tile_mask(*device, tile_mask); #define MCFG_S24SPRITE_DEVICE_ADD(_tag) \ MCFG_DEVICE_ADD(_tag, S24SPRITE, 0) @@ -22,12 +24,12 @@ #define MCFG_S24TILE_DEVICE_PALETTE(_palette_tag) \ MCFG_GFX_PALETTE(_palette_tag) -class segas24_tile : public device_t, public device_gfx_interface +class segas24_tile_device : public device_t, public device_gfx_interface { friend class segas24_tile_config; public: - segas24_tile(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + segas24_tile_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // static configuration static void static_set_tile_mask(device_t &device, uint16_t tile_mask); @@ -76,12 +78,12 @@ private: void draw_common(screen_device &screen, _BitmapClass &bitmap, const rectangle &cliprect, int layer, int pri, int flags); }; -class segas24_sprite : public device_t +class segas24_sprite_device : public device_t { friend class segas24_sprite_config; public: - segas24_sprite(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + segas24_sprite_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); DECLARE_READ16_MEMBER(read); DECLARE_WRITE16_MEMBER(write); @@ -96,12 +98,12 @@ private: }; -class segas24_mixer : public device_t +class segas24_mixer_device : public device_t { friend class segas24_mixer_config; public: - segas24_mixer(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + segas24_mixer_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); DECLARE_READ16_MEMBER(read); DECLARE_WRITE16_MEMBER(write); @@ -115,8 +117,8 @@ private: uint16_t mixer_reg[16]; }; -extern const device_type S24TILE; -extern const device_type S24SPRITE; -extern const device_type S24MIXER; +DECLARE_DEVICE_TYPE(S24TILE, segas24_tile_device) +DECLARE_DEVICE_TYPE(S24SPRITE, segas24_sprite_device) +DECLARE_DEVICE_TYPE(S24MIXER, segas24_mixer_device) -#endif +#endif // MAME_VIDEO_SEGAIC24_H diff --git a/src/mame/video/segaorun.cpp b/src/mame/video/segaorun.cpp index 3e77259dc88..469f574a9b2 100644 --- a/src/mame/video/segaorun.cpp +++ b/src/mame/video/segaorun.cpp @@ -20,18 +20,18 @@ void segaorun_state::video_start() if (m_shangon_video) { // initialize the tile/text layers - m_segaic16vid->tilemap_init(0, SEGAIC16_TILEMAP_16B_ALT, 0x000, 0, 2); + m_segaic16vid->tilemap_init(0, segaic16_video_device::TILEMAP_16B_ALT, 0x000, 0, 2); // initialize the road - m_segaic16road->segaic16_road_init(machine(), 0, SEGAIC16_ROAD_OUTRUN, 0x7f6, 0x7c0, 0x7c0, 0); + m_segaic16road->segaic16_road_init(machine(), 0, segaic16_road_device::ROAD_OUTRUN, 0x7f6, 0x7c0, 0x7c0, 0); } else { // initialize the tile/text layers - m_segaic16vid->tilemap_init(0, SEGAIC16_TILEMAP_16B, 0x000, 0, 2); + m_segaic16vid->tilemap_init(0, segaic16_video_device::TILEMAP_16B, 0x000, 0, 2); // initialize the road - m_segaic16road->segaic16_road_init(machine(), 0, SEGAIC16_ROAD_OUTRUN, 0x400, 0x420, 0x780, 0); + m_segaic16road->segaic16_road_init(machine(), 0, segaic16_road_device::ROAD_OUTRUN, 0x400, 0x420, 0x780, 0); } } @@ -50,24 +50,24 @@ uint32_t segaorun_state::screen_update_shangon(screen_device &screen, bitmap_ind screen.priority().fill(0, cliprect); // draw the low priority road layer - m_segaic16road->segaic16_road_draw(0, bitmap, cliprect, SEGAIC16_ROAD_BACKGROUND); + m_segaic16road->segaic16_road_draw(0, bitmap, cliprect, segaic16_road_device::ROAD_BACKGROUND); // draw background - m_segaic16vid->tilemap_draw(screen, bitmap, cliprect, 0, SEGAIC16_TILEMAP_BACKGROUND, 0, 0x01); - m_segaic16vid->tilemap_draw(screen, bitmap, cliprect, 0, SEGAIC16_TILEMAP_BACKGROUND, 1, 0x02); + m_segaic16vid->tilemap_draw(screen, bitmap, cliprect, 0, segaic16_video_device::TILEMAP_BACKGROUND, 0, 0x01); + m_segaic16vid->tilemap_draw(screen, bitmap, cliprect, 0, segaic16_video_device::TILEMAP_BACKGROUND, 1, 0x02); // draw foreground - m_segaic16vid->tilemap_draw(screen, bitmap, cliprect, 0, SEGAIC16_TILEMAP_FOREGROUND, 0, 0x02); - m_segaic16vid->tilemap_draw(screen, bitmap, cliprect, 0, SEGAIC16_TILEMAP_FOREGROUND, 1, 0x04); + m_segaic16vid->tilemap_draw(screen, bitmap, cliprect, 0, segaic16_video_device::TILEMAP_FOREGROUND, 0, 0x02); + m_segaic16vid->tilemap_draw(screen, bitmap, cliprect, 0, segaic16_video_device::TILEMAP_FOREGROUND, 1, 0x04); // draw the high priority road - m_segaic16road->segaic16_road_draw(0, bitmap, cliprect, SEGAIC16_ROAD_FOREGROUND); + m_segaic16road->segaic16_road_draw(0, bitmap, cliprect, segaic16_road_device::ROAD_FOREGROUND); // text layer // note that we inflate the priority of the text layer to prevent sprites // from drawing over the high scores - m_segaic16vid->tilemap_draw(screen, bitmap, cliprect, 0, SEGAIC16_TILEMAP_TEXT, 0, 0x08); - m_segaic16vid->tilemap_draw(screen, bitmap, cliprect, 0, SEGAIC16_TILEMAP_TEXT, 1, 0x08); + m_segaic16vid->tilemap_draw(screen, bitmap, cliprect, 0, segaic16_video_device::TILEMAP_TEXT, 0, 0x08); + m_segaic16vid->tilemap_draw(screen, bitmap, cliprect, 0, segaic16_video_device::TILEMAP_TEXT, 1, 0x08); // mix in sprites bitmap_ind16 &sprites = m_sprites->bitmap(); @@ -119,22 +119,22 @@ uint32_t segaorun_state::screen_update_outrun(screen_device &screen, bitmap_ind1 screen.priority().fill(0, cliprect); // draw the low priority road layer - m_segaic16road->segaic16_road_draw(0, bitmap, cliprect, SEGAIC16_ROAD_BACKGROUND); + m_segaic16road->segaic16_road_draw(0, bitmap, cliprect, segaic16_road_device::ROAD_BACKGROUND); // draw background - m_segaic16vid->tilemap_draw(screen, bitmap, cliprect, 0, SEGAIC16_TILEMAP_BACKGROUND, 0, 0x01); - m_segaic16vid->tilemap_draw(screen, bitmap, cliprect, 0, SEGAIC16_TILEMAP_BACKGROUND, 1, 0x02); + m_segaic16vid->tilemap_draw(screen, bitmap, cliprect, 0, segaic16_video_device::TILEMAP_BACKGROUND, 0, 0x01); + m_segaic16vid->tilemap_draw(screen, bitmap, cliprect, 0, segaic16_video_device::TILEMAP_BACKGROUND, 1, 0x02); // draw foreground - m_segaic16vid->tilemap_draw(screen, bitmap, cliprect, 0, SEGAIC16_TILEMAP_FOREGROUND, 0, 0x02); - m_segaic16vid->tilemap_draw(screen, bitmap, cliprect, 0, SEGAIC16_TILEMAP_FOREGROUND, 1, 0x04); + m_segaic16vid->tilemap_draw(screen, bitmap, cliprect, 0, segaic16_video_device::TILEMAP_FOREGROUND, 0, 0x02); + m_segaic16vid->tilemap_draw(screen, bitmap, cliprect, 0, segaic16_video_device::TILEMAP_FOREGROUND, 1, 0x04); // draw the high priority road - m_segaic16road->segaic16_road_draw(0, bitmap, cliprect, SEGAIC16_ROAD_FOREGROUND); + m_segaic16road->segaic16_road_draw(0, bitmap, cliprect, segaic16_road_device::ROAD_FOREGROUND); // text layer - m_segaic16vid->tilemap_draw(screen, bitmap, cliprect, 0, SEGAIC16_TILEMAP_TEXT, 0, 0x04); - m_segaic16vid->tilemap_draw(screen, bitmap, cliprect, 0, SEGAIC16_TILEMAP_TEXT, 1, 0x08); + m_segaic16vid->tilemap_draw(screen, bitmap, cliprect, 0, segaic16_video_device::TILEMAP_TEXT, 0, 0x04); + m_segaic16vid->tilemap_draw(screen, bitmap, cliprect, 0, segaic16_video_device::TILEMAP_TEXT, 1, 0x08); // mix in sprites bitmap_ind16 &sprites = m_sprites->bitmap(); diff --git a/src/mame/video/segas16a.cpp b/src/mame/video/segas16a.cpp index 88346c30ec1..809263dd606 100644 --- a/src/mame/video/segas16a.cpp +++ b/src/mame/video/segas16a.cpp @@ -18,7 +18,7 @@ void segas16a_state::video_start() { // initialize the tile/text layers - m_segaic16vid->tilemap_init( 0, SEGAIC16_TILEMAP_16A, 0x000, 0, 1); + m_segaic16vid->tilemap_init( 0, segaic16_video_device::TILEMAP_16A, 0x000, 0, 1); } @@ -42,21 +42,21 @@ uint32_t segas16a_state::screen_update(screen_device &screen, bitmap_ind16 &bitm screen.priority().fill(0, cliprect); // draw background opaquely first, not setting any priorities - m_segaic16vid->tilemap_draw( screen, bitmap, cliprect, 0, SEGAIC16_TILEMAP_BACKGROUND, 0 | TILEMAP_DRAW_OPAQUE, 0x00); - m_segaic16vid->tilemap_draw( screen, bitmap, cliprect, 0, SEGAIC16_TILEMAP_BACKGROUND, 1 | TILEMAP_DRAW_OPAQUE, 0x00); + m_segaic16vid->tilemap_draw( screen, bitmap, cliprect, 0, segaic16_video_device::TILEMAP_BACKGROUND, 0 | TILEMAP_DRAW_OPAQUE, 0x00); + m_segaic16vid->tilemap_draw( screen, bitmap, cliprect, 0, segaic16_video_device::TILEMAP_BACKGROUND, 1 | TILEMAP_DRAW_OPAQUE, 0x00); // draw background again, just to set the priorities on non-transparent pixels bitmap_ind16 dummy_bitmap; - m_segaic16vid->tilemap_draw( screen, dummy_bitmap, cliprect, 0, SEGAIC16_TILEMAP_BACKGROUND, 0, 0x01); - m_segaic16vid->tilemap_draw( screen, dummy_bitmap, cliprect, 0, SEGAIC16_TILEMAP_BACKGROUND, 1, 0x02); + m_segaic16vid->tilemap_draw( screen, dummy_bitmap, cliprect, 0, segaic16_video_device::TILEMAP_BACKGROUND, 0, 0x01); + m_segaic16vid->tilemap_draw( screen, dummy_bitmap, cliprect, 0, segaic16_video_device::TILEMAP_BACKGROUND, 1, 0x02); // draw foreground - m_segaic16vid->tilemap_draw( screen, bitmap, cliprect, 0, SEGAIC16_TILEMAP_FOREGROUND, 0, 0x02); - m_segaic16vid->tilemap_draw( screen, bitmap, cliprect, 0, SEGAIC16_TILEMAP_FOREGROUND, 1, 0x04); + m_segaic16vid->tilemap_draw( screen, bitmap, cliprect, 0, segaic16_video_device::TILEMAP_FOREGROUND, 0, 0x02); + m_segaic16vid->tilemap_draw( screen, bitmap, cliprect, 0, segaic16_video_device::TILEMAP_FOREGROUND, 1, 0x04); // text layer - m_segaic16vid->tilemap_draw( screen, bitmap, cliprect, 0, SEGAIC16_TILEMAP_TEXT, 0, 0x04); - m_segaic16vid->tilemap_draw( screen, bitmap, cliprect, 0, SEGAIC16_TILEMAP_TEXT, 1, 0x08); + m_segaic16vid->tilemap_draw( screen, bitmap, cliprect, 0, segaic16_video_device::TILEMAP_TEXT, 0, 0x04); + m_segaic16vid->tilemap_draw( screen, bitmap, cliprect, 0, segaic16_video_device::TILEMAP_TEXT, 1, 0x08); // mix in sprites bitmap_ind16 &sprites = m_sprites->bitmap(); diff --git a/src/mame/video/segas16b.cpp b/src/mame/video/segas16b.cpp index 2302db46d81..026456a1ec7 100644 --- a/src/mame/video/segas16b.cpp +++ b/src/mame/video/segas16b.cpp @@ -43,21 +43,21 @@ uint32_t segas16b_state::screen_update(screen_device &screen, bitmap_ind16 &bitm screen.priority().fill(0, cliprect); // draw background opaquely first, not setting any priorities - m_segaic16vid->tilemap_draw( screen, bitmap, cliprect, 0, SEGAIC16_TILEMAP_BACKGROUND, 0 | TILEMAP_DRAW_OPAQUE, 0x00); - m_segaic16vid->tilemap_draw( screen, bitmap, cliprect, 0, SEGAIC16_TILEMAP_BACKGROUND, 1 | TILEMAP_DRAW_OPAQUE, 0x00); + m_segaic16vid->tilemap_draw( screen, bitmap, cliprect, 0, segaic16_video_device::TILEMAP_BACKGROUND, 0 | TILEMAP_DRAW_OPAQUE, 0x00); + m_segaic16vid->tilemap_draw( screen, bitmap, cliprect, 0, segaic16_video_device::TILEMAP_BACKGROUND, 1 | TILEMAP_DRAW_OPAQUE, 0x00); // draw background again, just to set the priorities on non-transparent pixels bitmap_ind16 dummy_bitmap; - m_segaic16vid->tilemap_draw( screen, dummy_bitmap, cliprect, 0, SEGAIC16_TILEMAP_BACKGROUND, 0, 0x01); - m_segaic16vid->tilemap_draw( screen, dummy_bitmap, cliprect, 0, SEGAIC16_TILEMAP_BACKGROUND, 1, 0x02); + m_segaic16vid->tilemap_draw( screen, dummy_bitmap, cliprect, 0, segaic16_video_device::TILEMAP_BACKGROUND, 0, 0x01); + m_segaic16vid->tilemap_draw( screen, dummy_bitmap, cliprect, 0, segaic16_video_device::TILEMAP_BACKGROUND, 1, 0x02); // draw foreground - m_segaic16vid->tilemap_draw( screen, bitmap, cliprect, 0, SEGAIC16_TILEMAP_FOREGROUND, 0, 0x02); - m_segaic16vid->tilemap_draw( screen, bitmap, cliprect, 0, SEGAIC16_TILEMAP_FOREGROUND, 1, 0x04); + m_segaic16vid->tilemap_draw( screen, bitmap, cliprect, 0, segaic16_video_device::TILEMAP_FOREGROUND, 0, 0x02); + m_segaic16vid->tilemap_draw( screen, bitmap, cliprect, 0, segaic16_video_device::TILEMAP_FOREGROUND, 1, 0x04); // text layer - m_segaic16vid->tilemap_draw( screen, bitmap, cliprect, 0, SEGAIC16_TILEMAP_TEXT, 0, 0x04); - m_segaic16vid->tilemap_draw( screen, bitmap, cliprect, 0, SEGAIC16_TILEMAP_TEXT, 1, 0x08); + m_segaic16vid->tilemap_draw( screen, bitmap, cliprect, 0, segaic16_video_device::TILEMAP_TEXT, 0, 0x04); + m_segaic16vid->tilemap_draw( screen, bitmap, cliprect, 0, segaic16_video_device::TILEMAP_TEXT, 1, 0x08); // mix in sprites if (!m_sprites.found()) return 0; diff --git a/src/mame/video/segas18.cpp b/src/mame/video/segas18.cpp index a7c6229f40e..f6033172e24 100644 --- a/src/mame/video/segas18.cpp +++ b/src/mame/video/segas18.cpp @@ -34,7 +34,7 @@ void segas18_state::video_start() m_vdp_mixing = 0; // initialize the tile/text layers - m_segaic16vid->tilemap_init( 0, SEGAIC16_TILEMAP_16B, 0x000, 0, 8); + m_segaic16vid->tilemap_init( 0, segaic16_video_device::TILEMAP_16B, 0x000, 0, 8); save_item(NAME(m_grayscale_enable)); save_item(NAME(m_vdp_enable)); @@ -200,23 +200,23 @@ uint32_t segas18_state::screen_update(screen_device &screen, bitmap_ind16 &bitma screen.priority().fill(0, cliprect); // draw background opaquely first, not setting any priorities - m_segaic16vid->tilemap_draw( screen, bitmap, cliprect, 0, SEGAIC16_TILEMAP_BACKGROUND, 0 | TILEMAP_DRAW_OPAQUE, 0x00); - m_segaic16vid->tilemap_draw( screen, bitmap, cliprect, 0, SEGAIC16_TILEMAP_BACKGROUND, 1 | TILEMAP_DRAW_OPAQUE, 0x00); + m_segaic16vid->tilemap_draw( screen, bitmap, cliprect, 0, segaic16_video_device::TILEMAP_BACKGROUND, 0 | TILEMAP_DRAW_OPAQUE, 0x00); + m_segaic16vid->tilemap_draw( screen, bitmap, cliprect, 0, segaic16_video_device::TILEMAP_BACKGROUND, 1 | TILEMAP_DRAW_OPAQUE, 0x00); if (m_vdp_enable && vdplayer == 0) draw_vdp(screen, bitmap, cliprect, vdppri); // draw background again to draw non-transparent pixels over the VDP and set the priority - m_segaic16vid->tilemap_draw( screen, bitmap, cliprect, 0, SEGAIC16_TILEMAP_BACKGROUND, 0, 0x01); - m_segaic16vid->tilemap_draw( screen, bitmap, cliprect, 0, SEGAIC16_TILEMAP_BACKGROUND, 1, 0x02); + m_segaic16vid->tilemap_draw( screen, bitmap, cliprect, 0, segaic16_video_device::TILEMAP_BACKGROUND, 0, 0x01); + m_segaic16vid->tilemap_draw( screen, bitmap, cliprect, 0, segaic16_video_device::TILEMAP_BACKGROUND, 1, 0x02); if (m_vdp_enable && vdplayer == 1) draw_vdp(screen, bitmap, cliprect, vdppri); // draw foreground - m_segaic16vid->tilemap_draw( screen, bitmap, cliprect, 0, SEGAIC16_TILEMAP_FOREGROUND, 0, 0x02); - m_segaic16vid->tilemap_draw( screen, bitmap, cliprect, 0, SEGAIC16_TILEMAP_FOREGROUND, 1, 0x04); + m_segaic16vid->tilemap_draw( screen, bitmap, cliprect, 0, segaic16_video_device::TILEMAP_FOREGROUND, 0, 0x02); + m_segaic16vid->tilemap_draw( screen, bitmap, cliprect, 0, segaic16_video_device::TILEMAP_FOREGROUND, 1, 0x04); if (m_vdp_enable && vdplayer == 2) draw_vdp(screen, bitmap, cliprect, vdppri); // text layer - m_segaic16vid->tilemap_draw( screen, bitmap, cliprect, 0, SEGAIC16_TILEMAP_TEXT, 0, 0x04); - m_segaic16vid->tilemap_draw( screen, bitmap, cliprect, 0, SEGAIC16_TILEMAP_TEXT, 1, 0x08); + m_segaic16vid->tilemap_draw( screen, bitmap, cliprect, 0, segaic16_video_device::TILEMAP_TEXT, 0, 0x04); + m_segaic16vid->tilemap_draw( screen, bitmap, cliprect, 0, segaic16_video_device::TILEMAP_TEXT, 1, 0x08); if (m_vdp_enable && vdplayer == 3) draw_vdp(screen, bitmap, cliprect, vdppri); // mix in sprites diff --git a/src/mame/video/segas24.cpp b/src/mame/video/segas24.cpp index 056c9a7732e..74dac813a55 100644 --- a/src/mame/video/segas24.cpp +++ b/src/mame/video/segas24.cpp @@ -15,7 +15,7 @@ namespace { struct layer_sort { - layer_sort(segas24_mixer *_mixer) { mixer = _mixer; } + layer_sort(segas24_mixer_device *_mixer) { mixer = _mixer; } bool operator()(int l1, int l2) { static const int default_pri[12] = { 0, 1, 2, 3, 4, 5, 6, 7, -4, -3, -2, -1 }; @@ -26,7 +26,7 @@ namespace { return default_pri[l2] - default_pri[l1] < 0; } - segas24_mixer *mixer; + segas24_mixer_device *mixer; }; } diff --git a/src/mame/video/segaxbd.cpp b/src/mame/video/segaxbd.cpp index 12de6fcaab2..b7e06d0e311 100644 --- a/src/mame/video/segaxbd.cpp +++ b/src/mame/video/segaxbd.cpp @@ -23,10 +23,10 @@ void segaxbd_state::video_start() throw device_missing_dependencies(); // initialize the tile/text layers - m_segaic16vid->tilemap_init( 0, SEGAIC16_TILEMAP_16B, 0x1c00, 0, 2); + m_segaic16vid->tilemap_init( 0, segaic16_video_device::TILEMAP_16B, 0x1c00, 0, 2); // initialize the road - m_segaic16road->segaic16_road_init(machine(), 0, SEGAIC16_ROAD_XBOARD, 0x1700, 0x1720, 0x1780, -166); + m_segaic16road->segaic16_road_init(machine(), 0, segaic16_road_device::ROAD_XBOARD, 0x1700, 0x1720, 0x1780, -166); } @@ -51,25 +51,25 @@ uint32_t segaxbd_state::screen_update(screen_device &screen, bitmap_ind16 &bitma screen.priority().fill(0, cliprect); // draw the low priority road layer - m_segaic16road->segaic16_road_draw(0, bitmap, cliprect, SEGAIC16_ROAD_BACKGROUND); + m_segaic16road->segaic16_road_draw(0, bitmap, cliprect, segaic16_road_device::ROAD_BACKGROUND); if (m_road_priority == 0) - m_segaic16road->segaic16_road_draw(0, bitmap, cliprect, SEGAIC16_ROAD_FOREGROUND); + m_segaic16road->segaic16_road_draw(0, bitmap, cliprect, segaic16_road_device::ROAD_FOREGROUND); // draw background - m_segaic16vid->tilemap_draw( screen, bitmap, cliprect, 0, SEGAIC16_TILEMAP_BACKGROUND, 0, 0x01); - m_segaic16vid->tilemap_draw( screen, bitmap, cliprect, 0, SEGAIC16_TILEMAP_BACKGROUND, 1, 0x02); + m_segaic16vid->tilemap_draw( screen, bitmap, cliprect, 0, segaic16_video_device::TILEMAP_BACKGROUND, 0, 0x01); + m_segaic16vid->tilemap_draw( screen, bitmap, cliprect, 0, segaic16_video_device::TILEMAP_BACKGROUND, 1, 0x02); // draw foreground - m_segaic16vid->tilemap_draw( screen, bitmap, cliprect, 0, SEGAIC16_TILEMAP_FOREGROUND, 0, 0x02); - m_segaic16vid->tilemap_draw( screen, bitmap, cliprect, 0, SEGAIC16_TILEMAP_FOREGROUND, 1, 0x04); + m_segaic16vid->tilemap_draw( screen, bitmap, cliprect, 0, segaic16_video_device::TILEMAP_FOREGROUND, 0, 0x02); + m_segaic16vid->tilemap_draw( screen, bitmap, cliprect, 0, segaic16_video_device::TILEMAP_FOREGROUND, 1, 0x04); // draw the high priority road if (m_road_priority == 1) - m_segaic16road->segaic16_road_draw(0, bitmap, cliprect, SEGAIC16_ROAD_FOREGROUND); + m_segaic16road->segaic16_road_draw(0, bitmap, cliprect, segaic16_road_device::ROAD_FOREGROUND); // text layer - m_segaic16vid->tilemap_draw( screen, bitmap, cliprect, 0, SEGAIC16_TILEMAP_TEXT, 0, 0x04); - m_segaic16vid->tilemap_draw( screen, bitmap, cliprect, 0, SEGAIC16_TILEMAP_TEXT, 1, 0x08); + m_segaic16vid->tilemap_draw( screen, bitmap, cliprect, 0, segaic16_video_device::TILEMAP_TEXT, 0, 0x04); + m_segaic16vid->tilemap_draw( screen, bitmap, cliprect, 0, segaic16_video_device::TILEMAP_TEXT, 1, 0x08); // mix in sprites bitmap_ind16 &sprites = m_sprites->bitmap(); diff --git a/src/mame/video/segaybd.cpp b/src/mame/video/segaybd.cpp index e5e40484ef5..fb93042f19e 100644 --- a/src/mame/video/segaybd.cpp +++ b/src/mame/video/segaybd.cpp @@ -17,7 +17,7 @@ void segaybd_state::video_start() { // initialize the rotation layer - m_segaic16vid->rotate_init(0, SEGAIC16_ROTATE_YBOARD, 0x000); + m_segaic16vid->rotate_init(0, segaic16_video_device::ROTATE_YBOARD, 0x000); m_ysprites->set_rotate_ptr(m_segaic16vid->m_rotate); } diff --git a/src/mame/video/seibu_crtc.cpp b/src/mame/video/seibu_crtc.cpp index 774507e970e..fb2ee4b2321 100644 --- a/src/mame/video/seibu_crtc.cpp +++ b/src/mame/video/seibu_crtc.cpp @@ -213,7 +213,7 @@ List of default vregs (title screen): //************************************************************************** // device type definition -const device_type SEIBU_CRTC = device_creator; +DEFINE_DEVICE_TYPE(SEIBU_CRTC, seibu_crtc_device, "seibu_crtc", "Seibu CRT Controller") static ADDRESS_MAP_START( seibu_crtc_vregs, AS_0, 16, seibu_crtc_device ) AM_RANGE(0x0014, 0x0015) AM_WRITE(decrypt_key_w) @@ -270,7 +270,7 @@ WRITE16_MEMBER( seibu_crtc_device::layer_scroll_base_w) //------------------------------------------------- seibu_crtc_device::seibu_crtc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, SEIBU_CRTC, "Seibu CRT Controller", tag, owner, clock, "seibu_crtc", __FILE__), + : device_t(mconfig, SEIBU_CRTC, tag, owner, clock), device_memory_interface(mconfig, *this), device_video_interface(mconfig, *this), m_decrypt_key_cb(*this), diff --git a/src/mame/video/seibu_crtc.h b/src/mame/video/seibu_crtc.h index 96c1789d175..fe58abbf1cf 100644 --- a/src/mame/video/seibu_crtc.h +++ b/src/mame/video/seibu_crtc.h @@ -6,10 +6,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_VIDEO_SEIBU_CRTC_H +#define MAME_VIDEO_SEIBU_CRTC_H -#ifndef __SEIBU_CRTCDEV_H__ -#define __SEIBU_CRTCDEV_H__ +#pragma once //************************************************************************** @@ -46,11 +46,11 @@ public: // construction/destruction seibu_crtc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_decrypt_key_callback(device_t &device, _Object object) { return downcast(device).m_decrypt_key_cb.set_callback(object); } - template static devcb_base &set_layer_en_callback(device_t &device, _Object object) { return downcast(device).m_layer_en_cb.set_callback(object); } - template static devcb_base &set_layer_scroll_callback(device_t &device, _Object object) { return downcast(device).m_layer_scroll_cb.set_callback(object); } - template static devcb_base &set_reg_1a_callback(device_t &device, _Object object) { return downcast(device).m_reg_1a_cb.set_callback(object); } - template static devcb_base &set_layer_scroll_base_callback(device_t &device, _Object object) { return downcast(device).m_layer_scroll_base_cb.set_callback(object); } + template static devcb_base &set_decrypt_key_callback(device_t &device, Object &&cb) { return downcast(device).m_decrypt_key_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_layer_en_callback(device_t &device, Object &&cb) { return downcast(device).m_layer_en_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_layer_scroll_callback(device_t &device, Object &&cb) { return downcast(device).m_layer_scroll_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_reg_1a_callback(device_t &device, Object &&cb) { return downcast(device).m_reg_1a_cb.set_callback(std::forward(cb)); } + template static devcb_base &set_layer_scroll_base_callback(device_t &device, Object &&cb) { return downcast(device).m_layer_scroll_base_cb.set_callback(std::forward(cb)); } // I/O operations DECLARE_WRITE16_MEMBER( write ); @@ -88,6 +88,6 @@ private: // device type definition -extern const device_type SEIBU_CRTC; +DECLARE_DEVICE_TYPE(SEIBU_CRTC, seibu_crtc_device) -#endif +#endif // MAME_VIDEO_SEIBU_CRTC_H diff --git a/src/mame/video/seta001.cpp b/src/mame/video/seta001.cpp index 25adb5ce2ba..67ead040f9b 100644 --- a/src/mame/video/seta001.cpp +++ b/src/mame/video/seta001.cpp @@ -30,10 +30,10 @@ #include "screen.h" -const device_type SETA001_SPRITE = device_creator; +DEFINE_DEVICE_TYPE(SETA001_SPRITE, seta001_device, "seta001", "Seta SETA001 Sprites") seta001_device::seta001_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, SETA001_SPRITE, "Seta SETA001 Sprite", tag, owner, clock, "seta001", __FILE__) + : device_t(mconfig, SETA001_SPRITE, tag, owner, clock) , m_gfxdecode(*this, finder_base::DUMMY_TAG) { } diff --git a/src/mame/video/seta001.h b/src/mame/video/seta001.h index 23e1e4fa17b..2deab65033c 100644 --- a/src/mame/video/seta001.h +++ b/src/mame/video/seta001.h @@ -1,5 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Luca Elia, David Haywood +#ifndef MAME_VIDEO_SETA001_H +#define MAME_VIDEO_SETA001_H + +#pragma once typedef device_delegate gfxbank_cb_delegate; @@ -82,7 +86,9 @@ private: uint8_t m_spritecodehigh[0x2000]; // ^ }; -extern const device_type SETA001_SPRITE; +DECLARE_DEVICE_TYPE(SETA001_SPRITE, seta001_device) #define MCFG_SETA001_SPRITE_GFXDECODE(_gfxtag) \ seta001_device::static_set_gfxdecode_tag(*device, "^" _gfxtag); + +#endif // MAME_VIDEO_SETA001_H diff --git a/src/mame/video/simpsons.cpp b/src/mame/video/simpsons.cpp index 5fc201ab186..a25ed485e43 100644 --- a/src/mame/video/simpsons.cpp +++ b/src/mame/video/simpsons.cpp @@ -93,20 +93,20 @@ uint32_t simpsons_state::screen_update_simpsons(screen_device &screen, bitmap_in { int layer[3], bg_colorbase; - bg_colorbase = m_k053251->get_palette_index(K053251_CI0); - m_sprite_colorbase = m_k053251->get_palette_index(K053251_CI1); - m_layer_colorbase[0] = m_k053251->get_palette_index(K053251_CI2); - m_layer_colorbase[1] = m_k053251->get_palette_index(K053251_CI3); - m_layer_colorbase[2] = m_k053251->get_palette_index(K053251_CI4); + bg_colorbase = m_k053251->get_palette_index(k053251_device::CI0); + m_sprite_colorbase = m_k053251->get_palette_index(k053251_device::CI1); + m_layer_colorbase[0] = m_k053251->get_palette_index(k053251_device::CI2); + m_layer_colorbase[1] = m_k053251->get_palette_index(k053251_device::CI3); + m_layer_colorbase[2] = m_k053251->get_palette_index(k053251_device::CI4); m_k052109->tilemap_update(); layer[0] = 0; - m_layerpri[0] = m_k053251->get_priority(K053251_CI2); + m_layerpri[0] = m_k053251->get_priority(k053251_device::CI2); layer[1] = 1; - m_layerpri[1] = m_k053251->get_priority(K053251_CI3); + m_layerpri[1] = m_k053251->get_priority(k053251_device::CI3); layer[2] = 2; - m_layerpri[2] = m_k053251->get_priority(K053251_CI4); + m_layerpri[2] = m_k053251->get_priority(k053251_device::CI4); konami_sortlayers3(layer, m_layerpri); diff --git a/src/mame/video/sknsspr.cpp b/src/mame/video/sknsspr.cpp index 8efcd50503a..6e1aed35ec5 100644 --- a/src/mame/video/sknsspr.cpp +++ b/src/mame/video/sknsspr.cpp @@ -19,12 +19,12 @@ #include "sknsspr.h" #include "screen.h" -const device_type SKNS_SPRITE = device_creator; +DEFINE_DEVICE_TYPE(SKNS_SPRITE, sknsspr_device, "sknsspr", "SKNS Sprite") sknsspr_device::sknsspr_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, SKNS_SPRITE, "SKNS Sprite", tag, owner, clock, "sknsspr", __FILE__), - device_video_interface(mconfig, *this) + : device_t(mconfig, SKNS_SPRITE, tag, owner, clock) + , device_video_interface(mconfig, *this) { } diff --git a/src/mame/video/sknsspr.h b/src/mame/video/sknsspr.h index ca9548c1e98..251387a16e3 100644 --- a/src/mame/video/sknsspr.h +++ b/src/mame/video/sknsspr.h @@ -3,8 +3,9 @@ #ifndef MAME_VIDEO_SKNSSPR_H #define MAME_VIDEO_SKNSSPR_H -class sknsspr_device : public device_t, - public device_video_interface +#pragma once + +class sknsspr_device : public device_t, public device_video_interface { public: sknsspr_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); @@ -16,12 +17,12 @@ protected: virtual void device_start() override; virtual void device_reset() override; private: + static constexpr unsigned SUPRNOVA_DECODE_BUFFER_SIZE = 0x2000; int sprite_kludge_x, sprite_kludge_y; - #define SUPRNOVA_DECODE_BUFFER_SIZE 0x2000 uint8_t decodebuffer[SUPRNOVA_DECODE_BUFFER_SIZE]; int skns_rle_decode ( int romoffset, int size, uint8_t*gfx_source, size_t gfx_length ); }; -extern const device_type SKNS_SPRITE; +DECLARE_DEVICE_TYPE(SKNS_SPRITE, sknsspr_device) #endif // MAME_VIDEO_SKNSSPR_H diff --git a/src/mame/video/snk6502.cpp b/src/mame/video/snk6502.cpp index fb8be98cea7..46f6a8107a8 100644 --- a/src/mame/video/snk6502.cpp +++ b/src/mame/video/snk6502.cpp @@ -10,6 +10,7 @@ #include "emu.h" #include "includes/snk6502.h" +#include "audio/snk6502.h" #define TOTAL_COLORS(gfxn) (m_gfxdecode->gfx(gfxn)->colors() * m_gfxdecode->gfx(gfxn)->granularity()) @@ -136,6 +137,12 @@ WRITE8_MEMBER(snk6502_state::flipscreen_w) } } +WRITE8_MEMBER(snk6502_state::fantasy_flipscreen_w) +{ + m_sound->fantasy_sound_w(space, offset | 0x03, data, mem_mask); + flipscreen_w(space, offset, data, mem_mask); +} + WRITE8_MEMBER(snk6502_state::scrollx_w) { m_bg_tilemap->set_scrollx(0, data); diff --git a/src/mame/video/snk68_spr.cpp b/src/mame/video/snk68_spr.cpp index a11d9900d47..6ce6e8c5761 100644 --- a/src/mame/video/snk68_spr.cpp +++ b/src/mame/video/snk68_spr.cpp @@ -5,10 +5,10 @@ #include "emu.h" #include "snk68_spr.h" -const device_type SNK68_SPR = device_creator; +DEFINE_DEVICE_TYPE(SNK68_SPR, snk68_spr_device, "snk68_spr", "SNK68 Sprites") snk68_spr_device::snk68_spr_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, SNK68_SPR, "SNK68 Sprites", tag, owner, clock, "snk68_spr", __FILE__) + : device_t(mconfig, SNK68_SPR, tag, owner, clock) , m_gfxdecode(*this, finder_base::DUMMY_TAG) , m_spriteram(*this, "^spriteram") , m_screen(*this, "^screen") diff --git a/src/mame/video/snk68_spr.h b/src/mame/video/snk68_spr.h index bbcc05c8b98..d7c9433b811 100644 --- a/src/mame/video/snk68_spr.h +++ b/src/mame/video/snk68_spr.h @@ -1,5 +1,10 @@ // license:BSD-3-Clause // copyright-holders:Bryan McPhail, Acho A. Tang, Nicola Salmoria +#ifndef MAME_VIDEO_SNK68_SPR_H +#define MAME_VIDEO_SNK68_SPR_H + +#pragma once + #include "screen.h" typedef device_delegate snk68_tile_indirection_delegate; @@ -45,4 +50,6 @@ private: }; -extern const device_type SNK68_SPR; +DECLARE_DEVICE_TYPE(SNK68_SPR, snk68_spr_device) + +#endif // MAME_VIDEO_SNK68_SPR_H diff --git a/src/mame/video/st0020.cpp b/src/mame/video/st0020.cpp index 37900c18bb3..158fc331085 100644 --- a/src/mame/video/st0020.cpp +++ b/src/mame/video/st0020.cpp @@ -18,7 +18,7 @@ #include "st0020.h" #include "render.h" -const device_type ST0020_SPRITES = device_creator; +DEFINE_DEVICE_TYPE(ST0020_SPRITES, st0020_device, "st0020", "Seta ST0020 Sprites") #define ST0020_ST0032_BYTESWAP_DATA \ @@ -28,7 +28,7 @@ const device_type ST0020_SPRITES = device_creator; st0020_device::st0020_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, ST0020_SPRITES, "Seta ST0020 Sprites", tag, owner, clock, "st0020", __FILE__), + device_t(mconfig, ST0020_SPRITES, tag, owner, clock), device_gfx_interface(mconfig, *this) { m_is_st0032 = 0; diff --git a/src/mame/video/st0020.h b/src/mame/video/st0020.h index 8f423ef2538..4f3a84722b4 100644 --- a/src/mame/video/st0020.h +++ b/src/mame/video/st0020.h @@ -1,5 +1,10 @@ // license:BSD-3-Clause // copyright-holders:Luca Elia,David Haywood +#ifndef MAME_VIDEO_ST0020_H +#define MAME_VIDEO_ST0020_H + +#pragma once + class st0020_device : public device_t, public device_gfx_interface { @@ -67,7 +72,9 @@ private: void draw_zooming_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, int priority); }; -extern const device_type ST0020_SPRITES; +DECLARE_DEVICE_TYPE(ST0020_SPRITES, st0020_device) #define MCFG_ST0020_SPRITES_PALETTE(_palette_tag) \ MCFG_GFX_PALETTE(_palette_tag) + +#endif // MAME_VIDEO_ST0020_H diff --git a/src/mame/video/stfight_dev.cpp b/src/mame/video/stfight_dev.cpp index d434b61fea6..5a89418055f 100644 --- a/src/mame/video/stfight_dev.cpp +++ b/src/mame/video/stfight_dev.cpp @@ -9,11 +9,11 @@ #include "screen.h" -const device_type STFIGHT_VIDEO = device_creator; +DEFINE_DEVICE_TYPE(STFIGHT_VIDEO, stfight_video_device, "stfight_vid", "Seibu Street Fight Video") stfight_video_device::stfight_video_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, STFIGHT_VIDEO, "Seibu Street Fight Video", tag, owner, clock, "stfight_vid", __FILE__), + : device_t(mconfig, STFIGHT_VIDEO, tag, owner, clock), m_gfxdecode(*this, "gfxdecode"), m_palette(*this,"^palette"), m_screen(*this, "screen"), diff --git a/src/mame/video/stfight_dev.h b/src/mame/video/stfight_dev.h index 24b5a0227a0..e399726116e 100644 --- a/src/mame/video/stfight_dev.h +++ b/src/mame/video/stfight_dev.h @@ -1,14 +1,14 @@ // license:BSD-3-Clause // copyright-holders:Mark McDougall, David Haywood -#ifndef MAME_VIDEO_STFIGHT_VIDEO_H -#define MAME_VIDEO_STFIGHT_VIDEO_H +#ifndef MAME_VIDEO_STFIGHT_DEV_H +#define MAME_VIDEO_STFIGHT_DEV_H #pragma once -extern const device_type STFIGHT_VIDEO; +DECLARE_DEVICE_TYPE(STFIGHT_VIDEO, stfight_video_device) #define MCFG_STFIGHT_VIDEO_ADD(_tag) \ MCFG_DEVICE_ADD(_tag, STFIGHT_VIDEO, 0) @@ -73,4 +73,4 @@ private: void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; -#endif // MAME_VIDEO_STFIGHT_VIDEO_H +#endif // MAME_VIDEO_STFIGHT_DEV_H diff --git a/src/mame/video/stic.cpp b/src/mame/video/stic.cpp index 85a38be4580..bd48a7978eb 100644 --- a/src/mame/video/stic.cpp +++ b/src/mame/video/stic.cpp @@ -12,17 +12,384 @@ #include "screen.h" -const device_type STIC = device_creator; +/**************************************************************************** + * * + * MXR 0000[..0007] MOB X REGISTER RW * + * * + * (MSB) (LSB) * + * +-+-+-+-+-+-----+---+---+--+--+--+--+--+--+--+--+ * + * | | | | | |XSIZE|VIS|COL|X7|X6|X5|X4|X3|X2|X1|X0| * + * +-+-+-+-+-+-----+---+---+--+--+--+--+--+--+--+--+ * + * * + * Xn x-position [0..255] * + * COL collision detection [1=enable] * + * VIS visibility [1=visible] * + * XSIZE double width [1=double] * + * * + **************************************************************************** + * * + * NOTES * + * * + * 1. If X=0, the sprite is not visible and does not register collisions. * + * 2. The horizontal handle is 8 pixels from the left of the sprite, * + * regardless of width. * + * * + ****************************************************************************/ +#define STIC_MXR 0x0000 + +#define STIC_MXR_XSIZE 0x0400 +#define STIC_MXR_VIS 0x0200 +#define STIC_MXR_COL 0x0100 +#define STIC_MXR_X 0x00FF + +/**************************************************************************** + * * + * MYR 0008[..000F] MOB Y REGISTER RW * + * * + * (MSB) (LSB) * + * +-+-+-+-+-----+-----+-----+-----+----+--+--+--+--+--+--+--+ * + * | | | | |YFLIP|XFLIP|YSIZE|YFULL|YRES|Y6|Y5|Y4|Y3|Y2|Y1|Y0| * + * +-+-+-+-+-----+-----+-----+-----+----+--+--+--+--+--+--+--+ * + * * + * Yn y-position [0..127] * + * YRES y-resolution [0=8 scanlines,1=16 scanlines] * + * YFULL double scanline height [1=double] * + * YSIZE quadruple scanline height [1=quadruple] * + * XFLIP horizontally flip image [1=flip] * + * YFLIP vertically flip image [1=flip] * + * * + **************************************************************************** + * * + * NOTES * + * * + * 1. A sprite with YRES=1 will display two cards. * + * 2. A sprite with YFULL=0 and YSIZE=0 will have scanlines half the * + * height of a background card. * + * 3, The minimum size of a sprite is 8x8 (XSIZE=YRES=YSIZE=YFULL=0). * + * 4. The maximum size of a sprite is 16x128 (XSIZE=YRES=YSIZE=YFULL=1). * + * 5. The Y-position is measured in double height scanlines. * + * 6. The vertical handle is 8 double height scanlines from the top of the * + * sprite, regardless of height. * + * * + ****************************************************************************/ +#define STIC_MYR 0x0008 + +#define STIC_MYR_YFLIP 0x0800 +#define STIC_MYR_XFLIP 0x0400 +#define STIC_MYR_YSIZE 0x0200 +#define STIC_MYR_YFULL 0x0100 +#define STIC_MYR_YRES 0x0080 +#define STIC_MYR_Y 0x007F + +/**************************************************************************** + * * + * SAR 0010[..0017] MOB ATTRIBUTE REGISTER RW * + * * + * (MSB) (LSB) * + * +-+-+---+---+---+-+-+--+--+--+--+--+--+---+---+---+ * + * | | |PRI|FG3|SEL| | |C5|C4|C3|C2|C1|C0|FG2|FG1|FG0| * + * +-+-+---+---+---+-+-+--+--+--+--+--+--+---+---+---+ * + * * + * FGn foreground color [0..15] * + * Cn card # [0..63] * + * SEL card memory select [0=GROM, 1=GRAM] * + * PRI sprite priority [1=behind set background bit] * + * * + ****************************************************************************/ +#define STIC_MAR 0x0010 + +#define STIC_MAR_PRI 0x2000 +#define STIC_MAR_FG3 0x1000 +#define STIC_MAR_SEL 0x0800 +#define STIC_MAR_C 0x07F8 +#define STIC_MAR_FG20 0x0007 + +/**************************************************************************** + * * + * SCR 0018[..001F] MOB COLLISION REGISTER RW * + * * + * (MSB) (LSB) * + * +-+-+-+-+-+-+----+----+----+----+----+----+----+----+----+----+ * + * | | | | | | |BRDR|BKGD|SPR7|SPR6|SPR5|SPR4|SPR3|SPR2|SPR1|SPR0| * + * +-+-+-+-+-+-+----+----+----+----+----+----+----+----+----+----+ * + * * + * SPRn 1=collision with sprite #n * + * BKGD 1=collision with set background bit * + * BRDR 1=collision with screen border * + * * + **************************************************************************** + * * + * NOTES * + * * + * 1. All collisions are latched. Successive reads read from the latch. * + * A write will reset the latch. * + * 2. Sprites with VIS=0 register collisions. * + * 3. Sprites with X=0 do not register collisions. * + * 4. Two overlapping sprites with different priorities, one completely * + * hidden behind the background, still register a collision. * + * * + ****************************************************************************/ +#define STIC_MCR 0x0018 + +#define STIC_MCR_BRDR 0x0200 +#define STIC_MCR_BKGD 0x0100 +#define STIC_MCR_SPR7 0x0080 +#define STIC_MCR_SPR6 0x0040 +#define STIC_MCR_SPR5 0x0020 +#define STIC_MCR_SPR4 0x0010 +#define STIC_MCR_SPR3 0x0008 +#define STIC_MCR_SPR2 0x0004 +#define STIC_MCR_SPR1 0x0002 +#define STIC_MCR_SPR0 0x0001 + +/**************************************************************************** + * * + * DER 0021 DISPLAY ENABLE REGISTER W * + * * + * (MSB) (LSB) * + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ * + * | | | | | | | | | | | | | | | | | * + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ * + * * + **************************************************************************** + * * + * NOTES * + * * + * 1. Any write during VBLANK enables STIC output. * + * * + ****************************************************************************/ +#define STIC_DER 0x0020 + +/**************************************************************************** + * * + * GMR 0021 GRAPHICS MODE REGISTER RW * + * * + * (MSB) (LSB) * + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ * + * | | | | | | | | | | | | | | | | | * + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ * + * * + **************************************************************************** + * * + * NOTES * + * * + * 1. Any write during VBLANK enables FOREGROUND/BACKGROUND mode. * + * 2. Any read during VBLANK enables COLOR STACK/COLORED SQUARES mode. * + * * + ****************************************************************************/ +#define STIC_GMR 0x0021 + +/**************************************************************************** + * * + * CSR 0028 COLOR STACK REGISTER RW * + * * + * (MSB) (LSB) * + * +-+-+-+-+-+-+-+-+-+-+-+-+---+---+---+---+ * + * | | | | | | | | | | | | |BG3|BG2|BG1|BG0| * + * +-+-+-+-+-+-+-+-+-+-+-+-+---+---+---+---+ * + * * + * BGn background color [0..15] * + * * + ****************************************************************************/ +#define STIC_CSR 0x0028 + +#define STIC_CSR_BG 0x000F + +/**************************************************************************** + * * + * BCR 002C BORDER COLOR REGISTER RW * + * * + * (MSB) (LSB) * + * +-+-+-+-+-+-+-+-+-+-+-+-+---+---+---+---+ * + * | | | | | | | | | | | | |BC3|BC2|BC1|BC0| * + * +-+-+-+-+-+-+-+-+-+-+-+-+---+---+---+---+ * + * * + * BCn border color [0..15] * + * * + **************************************************************************** + * * + * NOTES * + * * + * 1. Affects overscan, and column and row blockouts. * + * * + ****************************************************************************/ +#define STIC_BCR 0x002C + +#define STIC_BCR_BC 0x000F + +/**************************************************************************** + * * + * HDR 0030 HORIZONTAL DELAY REGISTER RW * + * * + * (MSB) (LSB) * + * +-+-+-+-+-+-+-+-+-+-+-+-+-+----+----+----+ * + * | | | | | | | | | | | | | |DEL2|DEL1|DEL0| * + * +-+-+-+-+-+-+-+-+-+-+-+-+-+----+----+----+ * + * * + * DELn horizontal delay [0..7] * + * * + **************************************************************************** + * * + * NOTES * + * * + * 1. Affects both BACKTAB and MOBs. * + * * + ****************************************************************************/ +#define STIC_HDR 0x0030 + +#define STIC_HDR_DEL 0x0007 + +/**************************************************************************** + * * + * STIC_VDR 0030 VERTICAL DELAY REGISTER RW * + * * + * (MSB) (LSB) * + * +-+-+-+-+-+-+-+-+-+-+-+-+-+----+----+----+ * + * | | | | | | | | | | | | | |DEL2|DEL1|DEL0| * + * +-+-+-+-+-+-+-+-+-+-+-+-+-+----+----+----+ * + * * + * DELn vertical delay [0..7] * + * * + **************************************************************************** + * * + * NOTES * + * * + * 1. Affects both BACKTAB and MOBs. * + * * + ****************************************************************************/ +#define STIC_VDR 0x0031 + +#define STIC_VDR_DEL 0x0007 + +/**************************************************************************** + * * + * STIC_CBR 0032 CARD BLOCKOUT REGISTER RW * + * * + * (MSB) (LSB) * + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+---+---+ * + * | | | | | | | | | | | | | | |ROW|COL| * + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+---+---+ * + * * + * COL blockout first card column [1=blockout] * + * ROW blockout first card row [1=blockout] * + * * + **************************************************************************** + * * + * NOTES * + * * + * 1. Generally used in conjunction with HDR and VDR registers, to achieve * + * smooth scrolling. * + * * + ****************************************************************************/ +#define STIC_CBR 0x0032 + +#define STIC_CBR_ROW 0x0002 +#define STIC_CBR_COL 0x0001 + +/**************************************************************************** + * * + * FOREGROUND/BACKGROUND MODE * + * * + * (MSB) (LSB) * + * +-+-+---+---+---+---+---+--+--+--+--+--+--+---+---+---+ * + * | | |BG2|BG3|SEL|BG1|BG0|C5|C4|C3|C2|C1|C0|FG2|FG1|FG0| * + * +-+-+---+---+---+---+---+--+--+--+--+--+--+---+---+---+ * + * * + * FGn foreground color [0..7] * + * Cn card # [0..63] * + * SEL card memory select [0=GROM, 1=GRAM] * + * BGn background color [0..15] * + * * + ****************************************************************************/ +#define STIC_FBM_BG2 0x2000 +#define STIC_FBM_BG310 0x1600 +#define STIC_FBM_SEL 0x0800 +#define STIC_FBM_C 0x01F8 +#define STIC_FBM_FG 0x0007 + +/**************************************************************************** + * * + * COLOR STACK MODE * + * * + * (MSB) (LSB) * + * +-+-+---+---+---+--+--+--+--+--+--+--+--+---+---+---+ * + * | | |ADV|FG3|SEL|C7|C6|C5|C4|C3|C2|C1|C0|FG2|FG1|FG0| * + * +-+-+---+---+---+--+--+--+--+--+--+--+--+---+---+---+ * + * * + * FGn foreground color [0..15] * + * Cn card # [GROM=0..212, GRAM=0..63] * + * SEL card memory select [0=GROM, 1=GRAM] * + * ADV advance color stack index [1=advance] * + * * + **************************************************************************** + * * + * NOTES: * + * * + * 1. When FG3=1 and SEL=0, COLORED SQUARES MODE is enabled. * + * 2. When SEL=1, C7 and C6 can be used as user-defined flags. * + * * + ****************************************************************************/ +#define STIC_CSTM_ADV 0x2000 +#define STIC_CSTM_FG3 0x1000 +#define STIC_CSTM_SEL 0x0800 +#define STIC_CSTM_C7 0x0400 +#define STIC_CSTM_C6 0x0200 +#define STIC_CSTM_C50 0x01F8 +#define STIC_CSTM_FG20 0x0007 + +#define STIC_CSTM_C (STIC_CSTM_C7|STIC_CSTM_C6|STIC_CSTM_C50) + +/**************************************************************************** + * * + * COLORED SQUARES MODE * + * * + * (MSB) (LSB) * + * +-+-+--+-+-+--+--+--+--+--+--+--+--+--+--+--+ * + * | | |D2|1|0|D1|D0|C2|C1|C0|B2|B1|B0|A2|A1|A0| * + * +-+-+--+-+-+--+--+--+--+--+--+--+--+--+--+--+ * + * * + * An color a [0..7] * + * Bn color b [0..7] * + * Cn color c [0..7] * + * Dn color d [0..7] * + * * + **************************************************************************** + * * + * NOTES: * + * * + * 1. Each color corresponds to one of the following 4 x 4 squares: * + * * + * +---+---+ * + * | a | b | * + * +---+---+ * + * | c | d | * + * +---+---+ * + * * + * 2. When color 7 is specified, the color is taken from the color stack. * + * * + ****************************************************************************/ +#define STIC_CSQM_D2 0x2000 +#define STIC_CSQM_D10 0x0600 +#define STIC_CSQM_C 0x01C0 +#define STIC_CSQM_B 0x0038 +#define STIC_CSQM_A 0x0007 + +#define STIC_CSQM_WIDTH (CARD_WIDTH / 2) +#define STIC_CSQM_HEIGHT (CARD_HEIGHT / 2) + + + +DEFINE_DEVICE_TYPE(STIC, stic_device, "stic", "STIC (Standard Television Interface Chip) Video Chip"); //------------------------------------------------- // stic_device - constructor //------------------------------------------------- stic_device::stic_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, STIC, "STIC (Standard Television Interface Chip) Video Chip", tag, owner, clock, "stic", __FILE__), - m_grom(*this, "grom"), - m_x_scale(1), - m_y_scale(1) + device_t(mconfig, STIC, tag, owner, clock), + m_grom(*this, "grom"), + m_x_scale(1), + m_y_scale(1) { } @@ -56,7 +423,7 @@ void stic_device::device_start() save_item(NAME(m_left_edge_inhibit)); save_item(NAME(m_top_edge_inhibit)); save_item(NAME(m_backtab_buffer)); - for (int sp = 0; sp < STIC_MOBS; sp++) + for (int sp = 0; sp < MOBS; sp++) { save_item(m_sprite[sp].visible, "STIC sprite/m_sprite[sp].visible", sp); save_item(m_sprite[sp].xpos, "STIC sprite/m_sprite[sp].xpos", sp); @@ -80,7 +447,7 @@ void stic_device::device_start() void stic_device::device_reset() { - for (int i = 0; i < STIC_MOBS; i++) + for (int i = 0; i < MOBS; i++) { intv_sprite_type* s = &m_sprite[i]; s->visible = 0; @@ -178,14 +545,14 @@ bool stic_device::sprites_collide(int spriteNum1, int spriteNum2) intv_sprite_type* s1 = &m_sprite[spriteNum1]; intv_sprite_type* s2 = &m_sprite[spriteNum2]; - x0 = STIC_OVERSCAN_LEFT_WIDTH + m_col_delay - STIC_CARD_WIDTH; - y0 = STIC_OVERSCAN_TOP_HEIGHT + m_row_delay - STIC_CARD_HEIGHT; - x1 = (s1->xpos + x0) * STIC_X_SCALE; y1 = (s1->ypos + y0) * STIC_Y_SCALE; - x2 = (s2->xpos + x0) * STIC_X_SCALE; y2 = (s2->ypos + y0) * STIC_Y_SCALE; - w1 = (s1->doublex ? 2 : 1) * STIC_CARD_WIDTH; - w2 = (s2->doublex ? 2 : 1) * STIC_CARD_WIDTH; - h1 = (s1->quady ? 4 : 1) * (s1->doubley ? 2 : 1) * (s1->doubleyres ? 2 : 1) * STIC_CARD_HEIGHT; - h2 = (s2->quady ? 4 : 1) * (s2->doubley ? 2 : 1) * (s2->doubleyres ? 2 : 1) * STIC_CARD_HEIGHT; + x0 = OVERSCAN_LEFT_WIDTH + m_col_delay - CARD_WIDTH; + y0 = OVERSCAN_TOP_HEIGHT + m_row_delay - CARD_HEIGHT; + x1 = (s1->xpos + x0) * X_SCALE; y1 = (s1->ypos + y0) * Y_SCALE; + x2 = (s2->xpos + x0) * X_SCALE; y2 = (s2->ypos + y0) * Y_SCALE; + w1 = (s1->doublex ? 2 : 1) * CARD_WIDTH; + w2 = (s2->doublex ? 2 : 1) * CARD_WIDTH; + h1 = (s1->quady ? 4 : 1) * (s1->doubley ? 2 : 1) * (s1->doubleyres ? 2 : 1) * CARD_HEIGHT; + h2 = (s2->quady ? 4 : 1) * (s2->doubley ? 2 : 1) * (s2->doubleyres ? 2 : 1) * CARD_HEIGHT; if ((x1 >= x2 + w2) || (y1 >= y2 + h2) || (x2 >= x1 + w1) || (y2 >= y1 + h1)) @@ -216,13 +583,13 @@ bool stic_device::sprites_collide(int spriteNum1, int spriteNum2) void stic_device::determine_sprite_collisions() { // check sprite to sprite collisions - for (int i = 0; i < STIC_MOBS - 1; i++) + for (int i = 0; i < MOBS - 1; i++) { intv_sprite_type* s1 = &m_sprite[i]; if (s1->xpos == 0 || !s1->coll) continue; - for (int j = i + 1; j < STIC_MOBS; j++) + for (int j = i + 1; j < MOBS; j++) { intv_sprite_type* s2 = &m_sprite[j]; if (s2->xpos == 0 || !s2->coll) @@ -247,17 +614,17 @@ void stic_device::render_sprites() int32_t nextY; int32_t xInc; - for (int i = 0; i < STIC_MOBS; i++) + for (int i = 0; i < MOBS; i++) { intv_sprite_type* s = &m_sprite[i]; if (s->grom) - cardMemoryLocation = (s->card * STIC_CARD_HEIGHT); + cardMemoryLocation = (s->card * CARD_HEIGHT); else - cardMemoryLocation = ((s->card & 0x003F) * STIC_CARD_HEIGHT); + cardMemoryLocation = ((s->card & 0x003F) * CARD_HEIGHT); pixelSize = (s->quady ? 4 : 1) * (s->doubley ? 2 : 1); - spritePixelHeight = pixelSize * (s->doubleyres ? 2 : 1) * STIC_CARD_HEIGHT; + spritePixelHeight = pixelSize * (s->doubleyres ? 2 : 1) * CARD_HEIGHT; for (int j = 0; j < spritePixelHeight; j++) { @@ -268,13 +635,13 @@ void stic_device::render_sprites() nextData = m_gram[nextMemoryLocation]; else nextData = 0xFFFF; - nextX = (s->xflip ? ((s->doublex ? 2 : 1) * STIC_CARD_WIDTH - 1) : 0); + nextX = (s->xflip ? ((s->doublex ? 2 : 1) * CARD_WIDTH - 1) : 0); nextY = (s->yflip ? (spritePixelHeight - j - 1) : j); xInc = (s->xflip ? -1: 1); - for (int k = 0; k < STIC_CARD_WIDTH * (1 + s->doublex); k++) + for (int k = 0; k < CARD_WIDTH * (1 + s->doublex); k++) { - m_sprite_buffers[i][nextX + k * xInc][nextY] = (nextData & (1 << ((STIC_CARD_WIDTH - 1) - k / (1 + s->doublex)))) != 0; + m_sprite_buffers[i][nextX + k * xInc][nextY] = (nextData & (1 << ((CARD_WIDTH - 1) - k / (1 + s->doublex)))) != 0; } } } @@ -284,9 +651,9 @@ void stic_device::render_line(bitmap_ind16 &bitmap, uint8_t nextByte, uint16_t x { uint32_t color; - for (int i = 0; i < STIC_CARD_WIDTH; i++) + for (int i = 0; i < CARD_WIDTH; i++) { - color = (nextByte & (1 << ((STIC_CARD_WIDTH - 1) - i)) ? fgcolor : bgcolor); + color = (nextByte & (1 << ((CARD_WIDTH - 1) - i)) ? fgcolor : bgcolor); intv_set_pixel(bitmap, x+i, y, color); intv_set_pixel(bitmap, x+i, y+1, color); } @@ -294,10 +661,10 @@ void stic_device::render_line(bitmap_ind16 &bitmap, uint8_t nextByte, uint16_t x void stic_device::render_colored_squares(bitmap_ind16 &bitmap, uint16_t x, uint16_t y, uint8_t color0, uint8_t color1, uint8_t color2, uint8_t color3) { - intv_plot_box(bitmap, x, y, STIC_CSQM_WIDTH * STIC_X_SCALE, STIC_CSQM_HEIGHT * STIC_Y_SCALE, color0); - intv_plot_box(bitmap, x + STIC_CSQM_WIDTH * STIC_X_SCALE, y, STIC_CSQM_WIDTH * STIC_X_SCALE, STIC_CSQM_HEIGHT * STIC_Y_SCALE, color1); - intv_plot_box(bitmap, x, y + STIC_CSQM_HEIGHT * STIC_Y_SCALE, STIC_CSQM_WIDTH * STIC_X_SCALE, STIC_CSQM_HEIGHT * STIC_Y_SCALE, color2); - intv_plot_box(bitmap, x + STIC_CSQM_WIDTH * STIC_X_SCALE, y + STIC_CSQM_HEIGHT * STIC_Y_SCALE, STIC_CSQM_WIDTH * STIC_X_SCALE, STIC_CSQM_HEIGHT * STIC_Y_SCALE, color3); + intv_plot_box(bitmap, x, y, STIC_CSQM_WIDTH * X_SCALE, STIC_CSQM_HEIGHT * Y_SCALE, color0); + intv_plot_box(bitmap, x + STIC_CSQM_WIDTH * X_SCALE, y, STIC_CSQM_WIDTH * X_SCALE, STIC_CSQM_HEIGHT * Y_SCALE, color1); + intv_plot_box(bitmap, x, y + STIC_CSQM_HEIGHT * Y_SCALE, STIC_CSQM_WIDTH * X_SCALE, STIC_CSQM_HEIGHT * Y_SCALE, color2); + intv_plot_box(bitmap, x + STIC_CSQM_WIDTH * X_SCALE, y + STIC_CSQM_HEIGHT * Y_SCALE, STIC_CSQM_WIDTH * X_SCALE, STIC_CSQM_HEIGHT * Y_SCALE, color3); } void stic_device::render_color_stack_mode(bitmap_ind16 &bitmap) @@ -306,13 +673,13 @@ void stic_device::render_color_stack_mode(bitmap_ind16 &bitmap) uint8_t csPtr = 0; uint16_t nextCard; - for (h = 0, nexty = (STIC_OVERSCAN_TOP_HEIGHT + m_row_delay) * STIC_Y_SCALE; - h < STIC_BACKTAB_HEIGHT; - h++, nexty += STIC_CARD_HEIGHT * STIC_Y_SCALE) + for (h = 0, nexty = (OVERSCAN_TOP_HEIGHT + m_row_delay) * Y_SCALE; + h < BACKTAB_HEIGHT; + h++, nexty += CARD_HEIGHT * Y_SCALE) { - for (w = 0, nextx = (STIC_OVERSCAN_LEFT_WIDTH + m_col_delay) * STIC_X_SCALE; - w < STIC_BACKTAB_WIDTH; - w++, nextx += STIC_CARD_WIDTH * STIC_X_SCALE) + for (w = 0, nextx = (OVERSCAN_LEFT_WIDTH + m_col_delay) * X_SCALE; + w < BACKTAB_WIDTH; + w++, nextx += CARD_WIDTH * X_SCALE) { nextCard = m_backtab_buffer[h][w]; @@ -340,7 +707,7 @@ void stic_device::render_color_stack_mode(bitmap_ind16 &bitmap) //advance the color pointer, if necessary if (nextCard & STIC_CSTM_ADV) - csPtr = (csPtr+1) & (STIC_CSRS - 1); + csPtr = (csPtr+1) & (CSRS - 1); fgcolor = ((nextCard & STIC_CSTM_FG3) >> 9) | (nextCard & (STIC_CSTM_FG20)) | FOREGROUND_BIT; @@ -351,17 +718,17 @@ void stic_device::render_color_stack_mode(bitmap_ind16 &bitmap) { memoryLocation = nextCard & STIC_CSTM_C; memory = m_grom; - for (int j = 0; j < STIC_CARD_HEIGHT; j++) + for (int j = 0; j < CARD_HEIGHT; j++) render_line(bitmap, memory[memoryLocation + j], - nextx, nexty + j * STIC_Y_SCALE, fgcolor, bgcolor); + nextx, nexty + j * Y_SCALE, fgcolor, bgcolor); } else { memoryLocation = nextCard & STIC_CSTM_C50; memory = m_gram; - for (int j = 0; j < STIC_CARD_HEIGHT; j++) + for (int j = 0; j < CARD_HEIGHT; j++) render_line(bitmap, memory[memoryLocation + j], - nextx, nexty + j * STIC_Y_SCALE, fgcolor, bgcolor); + nextx, nexty + j * Y_SCALE, fgcolor, bgcolor); } } } @@ -375,13 +742,13 @@ void stic_device::render_fg_bg_mode(bitmap_ind16 &bitmap) uint16_t nextCard, memoryLocation; uint8_t* memory; - for (h = 0, nexty = (STIC_OVERSCAN_TOP_HEIGHT + m_row_delay) * STIC_Y_SCALE; - h < STIC_BACKTAB_HEIGHT; - h++, nexty += STIC_CARD_HEIGHT * STIC_Y_SCALE) + for (h = 0, nexty = (OVERSCAN_TOP_HEIGHT + m_row_delay) * Y_SCALE; + h < BACKTAB_HEIGHT; + h++, nexty += CARD_HEIGHT * Y_SCALE) { - for (w = 0, nextx = (STIC_OVERSCAN_LEFT_WIDTH + m_col_delay) * STIC_X_SCALE; - w < STIC_BACKTAB_WIDTH; - w++, nextx += STIC_CARD_WIDTH * STIC_X_SCALE) + for (w = 0, nextx = (OVERSCAN_LEFT_WIDTH + m_col_delay) * X_SCALE; + w < BACKTAB_WIDTH; + w++, nextx += CARD_WIDTH * X_SCALE) { nextCard = m_backtab_buffer[h][w]; fgcolor = (nextCard & STIC_FBM_FG) | FOREGROUND_BIT; @@ -393,17 +760,17 @@ void stic_device::render_fg_bg_mode(bitmap_ind16 &bitmap) { memoryLocation = nextCard & STIC_FBM_C; memory = m_grom; - for (int j = 0; j < STIC_CARD_HEIGHT; j++) + for (int j = 0; j < CARD_HEIGHT; j++) render_line(bitmap, memory[memoryLocation + j], - nextx, nexty + j * STIC_Y_SCALE, fgcolor, bgcolor); + nextx, nexty + j * Y_SCALE, fgcolor, bgcolor); } else { memoryLocation = nextCard & STIC_FBM_C; memory = m_gram; - for (int j = 0; j < STIC_CARD_HEIGHT; j++) + for (int j = 0; j < CARD_HEIGHT; j++) render_line(bitmap, memory[memoryLocation + j], - nextx, nexty + j * STIC_Y_SCALE, fgcolor, bgcolor); + nextx, nexty + j * Y_SCALE, fgcolor, bgcolor); } } } @@ -418,7 +785,7 @@ void stic_device::copy_sprites_to_background(bitmap_ind16 &bitmap) int16_t leftBorder, rightBorder, topBorder, bottomBorder; int32_t nextX; - for (int i = STIC_MOBS - 1; i >= 0; i--) + for (int i = MOBS - 1; i >= 0; i--) { intv_sprite_type *s = &m_sprite[i]; if (s->xpos == 0 || (!s->coll && !s->visible)) @@ -427,16 +794,16 @@ void stic_device::copy_sprites_to_background(bitmap_ind16 &bitmap) borderCollision = false; foregroundCollision = false; - spritePixelHeight = (s->quady ? 4 : 1) * (s->doubley ? 2 : 1) * (s->doubleyres ? 2 : 1) * STIC_CARD_HEIGHT; - width = (s->doublex ? 2 : 1) * STIC_CARD_WIDTH; + spritePixelHeight = (s->quady ? 4 : 1) * (s->doubley ? 2 : 1) * (s->doubleyres ? 2 : 1) * CARD_HEIGHT; + width = (s->doublex ? 2 : 1) * CARD_WIDTH; - leftX = (s->xpos - STIC_CARD_WIDTH + STIC_OVERSCAN_LEFT_WIDTH + m_col_delay) * STIC_X_SCALE; - nextY = (s->ypos - STIC_CARD_HEIGHT + STIC_OVERSCAN_TOP_HEIGHT + m_row_delay) * STIC_Y_SCALE; + leftX = (s->xpos - CARD_WIDTH + OVERSCAN_LEFT_WIDTH + m_col_delay) * X_SCALE; + nextY = (s->ypos - CARD_HEIGHT + OVERSCAN_TOP_HEIGHT + m_row_delay) * Y_SCALE; - leftBorder = (STIC_OVERSCAN_LEFT_WIDTH + (m_left_edge_inhibit ? STIC_CARD_WIDTH : 0)) * STIC_X_SCALE; - rightBorder = (STIC_OVERSCAN_LEFT_WIDTH + STIC_BACKTAB_WIDTH * STIC_CARD_WIDTH - 1 - 1) * STIC_X_SCALE; - topBorder = (STIC_OVERSCAN_TOP_HEIGHT + (m_top_edge_inhibit ? STIC_CARD_HEIGHT : 0)) * STIC_Y_SCALE; - bottomBorder = (STIC_OVERSCAN_TOP_HEIGHT + STIC_BACKTAB_HEIGHT * STIC_CARD_HEIGHT) * STIC_Y_SCALE - 1; + leftBorder = (OVERSCAN_LEFT_WIDTH + (m_left_edge_inhibit ? CARD_WIDTH : 0)) * X_SCALE; + rightBorder = (OVERSCAN_LEFT_WIDTH + BACKTAB_WIDTH * CARD_WIDTH - 1 - 1) * X_SCALE; + topBorder = (OVERSCAN_TOP_HEIGHT + (m_top_edge_inhibit ? CARD_HEIGHT : 0)) * Y_SCALE; + bottomBorder = (OVERSCAN_TOP_HEIGHT + BACKTAB_HEIGHT * CARD_HEIGHT) * Y_SCALE - 1; for (y = 0; y < spritePixelHeight; y++) { @@ -511,15 +878,15 @@ void stic_device::draw_background(bitmap_ind16 &bitmap, int transparency) int j; - int x0 = STIC_OVERSCAN_LEFT_WIDTH + m_col_delay; - int y0 = STIC_OVERSCAN_TOP_HEIGHT + m_row_delay; + int x0 = OVERSCAN_LEFT_WIDTH + m_col_delay; + int y0 = OVERSCAN_TOP_HEIGHT + m_row_delay; if (m_color_stack_mode == 1) { m_color_stack_offset = 0; - for(row = 0; row < STIC_BACKTAB_HEIGHT; row++) + for(row = 0; row < BACKTAB_HEIGHT; row++) { - for(col = 0; col < STIC_BACKTAB_WIDTH; col++) + for(col = 0; col < BACKTAB_WIDTH; col++) { value = m_ram16[offs]; @@ -534,21 +901,21 @@ void stic_device::draw_background(bitmap_ind16 &bitmap, int transparency) colorc = (value & STIC_CSQM_C) >> 6; colord = ((n_bit & STIC_CSQM_D2) >> 11) + ((value & STIC_CSQM_D10) >> 9); // color 7 if the top of the color stack in this mode - if (colora == 7) colora = m_stic_registers[STIC_CSR + STIC_CSR3]; - if (colorb == 7) colorb = m_stic_registers[STIC_CSR + STIC_CSR3]; - if (colorc == 7) colorc = m_stic_registers[STIC_CSR + STIC_CSR3]; - if (colord == 7) colord = m_stic_registers[STIC_CSR + STIC_CSR3]; - intv_plot_box(bitmap, (x0 + col * STIC_CARD_WIDTH) * STIC_X_SCALE, (y0 + row * STIC_CARD_HEIGHT) * STIC_Y_SCALE, STIC_CSQM_WIDTH * STIC_X_SCALE, STIC_CSQM_HEIGHT * STIC_Y_SCALE, colora); - intv_plot_box(bitmap, (x0 + col * STIC_CARD_WIDTH + STIC_CSQM_WIDTH)) * STIC_X_SCALE, (y0 + row * STIC_CARD_HEIGHT) * STIC_Y_SCALE, STIC_CSQM_WIDTH * STIC_X_SCALE, STIC_CSQM_HEIGHT * STIC_Y_SCALE, colorb); - intv_plot_box(bitmap, (x0 + col * STIC_CARD_WIDTH) * STIC_X_SCALE, (y0 + row * STIC_CARD_HEIGHT + STIC_CSQM_HEIGHT) * STIC_Y_SCALE, STIC_CSQM_WIDTH * STIC_X_SCALE, STIC_CSQM_HEIGHT * STIC_Y_SCALE, colorc); - intv_plot_box(bitmap, (x0 + col * STIC_CARD_WIDTH + STIC_CSQM_WIDTH) * STIC_X_SCALE, (y0 + row * STIC_CARD_HEIGHT + STIC_CSQM_HEIGHT) * STIC_Y_SCALE, STIC_CSQM_WIDTH * STIC_X_SCALE, STIC_CSQM_HEIGHT * STIC_Y_SCALE, colord); + if (colora == 7) colora = m_stic_registers[STIC_CSR + CSR3]; + if (colorb == 7) colorb = m_stic_registers[STIC_CSR + CSR3]; + if (colorc == 7) colorc = m_stic_registers[STIC_CSR + CSR3]; + if (colord == 7) colord = m_stic_registers[STIC_CSR + CSR3]; + intv_plot_box(bitmap, (x0 + col * CARD_WIDTH) * X_SCALE, (y0 + row * CARD_HEIGHT) * Y_SCALE, STIC_CSQM_WIDTH * X_SCALE, STIC_CSQM_HEIGHT * Y_SCALE, colora); + intv_plot_box(bitmap, (x0 + col * CARD_WIDTH + STIC_CSQM_WIDTH)) * X_SCALE, (y0 + row * CARD_HEIGHT) * Y_SCALE, STIC_CSQM_WIDTH * X_SCALE, STIC_CSQM_HEIGHT * Y_SCALE, colorb); + intv_plot_box(bitmap, (x0 + col * CARD_WIDTH) * X_SCALE, (y0 + row * CARD_HEIGHT + STIC_CSQM_HEIGHT) * Y_SCALE, STIC_CSQM_WIDTH * X_SCALE, STIC_CSQM_HEIGHT * Y_SCALE, colorc); + intv_plot_box(bitmap, (x0 + col * CARD_WIDTH + STIC_CSQM_WIDTH) * X_SCALE, (y0 + row * CARD_HEIGHT + STIC_CSQM_HEIGHT) * Y_SCALE, STIC_CSQM_WIDTH * X_SCALE, STIC_CSQM_HEIGHT * Y_SCALE, colord); } else // normal color stack mode { if (n_bit) // next color { m_color_stack_offset += 1; - m_color_stack_offset &= (STIC_CSRS - 1); + m_color_stack_offset &= (CSRS - 1); } if (p_bit) // pastel color set @@ -574,12 +941,12 @@ void stic_device::draw_background(bitmap_ind16 &bitmap, int transparency) drawgfx(bitmap,m_gfxdecode->gfx(1), code, bgcolor*16+fgcolor, - 0,0, (x0 + col * STIC_CARD_WIDTH) * STIC_X_SCALE, (y0 + row * STIC_CARD_HEIGHT) * STIC_Y_SCALE, + 0,0, (x0 + col * CARD_WIDTH) * X_SCALE, (y0 + row * CARD_HEIGHT) * Y_SCALE, 0,transparency,bgcolor); for(j=0;j<8;j++) { - //intv_set_pixel(bitmap, (x0 + col * STIC_CARD_WIDTH + j) * STIC_X_SCALE, (y0 + row * STIC_CARD_HEIGHT + 7) * STIC_Y_SCALE + 1, 1); + //intv_set_pixel(bitmap, (x0 + col * CARD_WIDTH + j) * X_SCALE, (y0 + row * CARD_HEIGHT + 7) * Y_SCALE + 1, 1); } } @@ -588,12 +955,12 @@ void stic_device::draw_background(bitmap_ind16 &bitmap, int transparency) drawgfx(bitmap,m_gfxdecode->gfx(0), code, bgcolor*16+fgcolor, - 0,0, (x0 + col * STIC_CARD_WIDTH) * STIC_X_SCALE, (y0 + row * STIC_CARD_HEIGHT) * STIC_Y_SCALE, + 0,0, (x0 + col * CARD_WIDTH) * X_SCALE, (y0 + row * CARD_HEIGHT) * Y_SCALE, 0,transparency,bgcolor); for(j=0;j<8;j++) { - //intv_set_pixel(bitmap, (x0 + col * STIC_CARD_WIDTH + j) * STIC_X_SCALE, (y0 + row * STIC_CARD_HEIGHT + 7) * STIC_Y_SCALE + 1, 2); + //intv_set_pixel(bitmap, (x0 + col * CARD_WIDTH + j) * X_SCALE, (y0 + row * CARD_HEIGHT + 7) * Y_SCALE + 1, 2); } } } @@ -604,9 +971,9 @@ void stic_device::draw_background(bitmap_ind16 &bitmap, int transparency) else { // fg/bg mode goes here - for(row = 0; row < STIC_BACKTAB_HEIGHT; row++) + for(row = 0; row < BACKTAB_HEIGHT; row++) { - for(col = 0; col < STIC_BACKTAB_WIDTH; col++) + for(col = 0; col < BACKTAB_WIDTH; col++) { value = m_ram16[offs]; fgcolor = value & STIC_FBM_FG; @@ -627,7 +994,7 @@ void stic_device::draw_background(bitmap_ind16 &bitmap, int transparency) drawgfx(bitmap,m_gfxdecode->gfx(1), code, bgcolor*16+fgcolor, - 0,0, (x0 + col * STIC_CARD_WIDTH) * STIC_X_SCALE, (y0 + row * STIC_CARD_HEIGHT) * STIC_Y_SCALE, + 0,0, (x0 + col * CARD_WIDTH) * X_SCALE, (y0 + row * CARD_HEIGHT) * Y_SCALE, 0,transparency,bgcolor); } else // read from GROM @@ -635,7 +1002,7 @@ void stic_device::draw_background(bitmap_ind16 &bitmap, int transparency) drawgfx(bitmap,m_gfxdecode->gfx(0), code, bgcolor*16+fgcolor, - 0,0, (x0 + col * STIC_CARD_WIDTH) * STIC_X_SCALE, (y0 + row * STIC_CARD_HEIGHT) * STIC_Y_SCALE, + 0,0, (x0 + col * CARD_WIDTH) * X_SCALE, (y0 + row * CARD_HEIGHT) * Y_SCALE, 0,transparency,bgcolor); } offs++; @@ -650,10 +1017,10 @@ void stic_device::draw_background(bitmap_ind16 &bitmap, int transparency) void stic_device::draw_sprites(bitmap_ind16 &bitmap, int behind_foreground) { int code; - int x0 = STIC_OVERSCAN_LEFT_WIDTH + m_col_delay - STIC_CARD_WIDTH; - int y0 = STIC_OVERSCAN_TOP_HEIGHT + m_row_delay - STIC_CARD_HEIGHT; + int x0 = OVERSCAN_LEFT_WIDTH + m_col_delay - CARD_WIDTH; + int y0 = OVERSCAN_TOP_HEIGHT + m_row_delay - CARD_HEIGHT; - for (int i = STIC_MOBS - 1; i >= 0; --i) + for (int i = MOBS - 1; i >= 0; --i) { intv_sprite_type *s = &m_sprite[i]; if (s->visible && (s->behind_foreground == behind_foreground)) @@ -677,7 +1044,7 @@ void stic_device::draw_sprites(bitmap_ind16 &bitmap, int behind_foreground) code, s->color, s->xflip,s->yflip, - (s->xpos + x0) * STIC_X_SCALE, (s->ypos + y0) * STIC_Y_SCALE, + (s->xpos + x0) * X_SCALE, (s->ypos + y0) * Y_SCALE, 0x8000 * s->xsize, 0x8000 * s->ysize,0); } else @@ -700,13 +1067,13 @@ void stic_device::draw_sprites(bitmap_ind16 &bitmap, int behind_foreground) code, s->color, s->xflip,s->yflip, - (s->xpos + x0) * STIC_X_SCALE, (s->ypos + y0) * STIC_Y_SCALE + s->yflip * s->ysize * STIC_CARD_HEIGHT, + (s->xpos + x0) * X_SCALE, (s->ypos + y0) * Y_SCALE + s->yflip * s->ysize * CARD_HEIGHT, 0x8000*s->xsize, 0x8000*s->ysize,0); m_gfxdecode->gfx(1)->zoom_transpen(bitmap,&machine().screen[0].visarea, code+1, s->color, s->xflip,s->yflip, - (s->xpos + x0) * STIC_X_SCALE, (s->ypos + y0) * STIC_Y_SCALE + (1 - s->yflip) * s->ysize * STIC_CARD_HEIGHT, + (s->xpos + x0) * X_SCALE, (s->ypos + y0) * Y_SCALE + (1 - s->yflip) * s->ysize * CARD_HEIGHT, 0x8000*s->xsize, 0x8000*s->ysize,0); } } @@ -719,7 +1086,7 @@ void stic_device::draw_sprites(bitmap_ind16 &bitmap, int behind_foreground) code, s->color, s->xflip,s->yflip, - (s->xpos + x0) * STIC_X_SCALE, (s->ypos + y0) * STIC_Y_SCALE, + (s->xpos + x0) * X_SCALE, (s->ypos + y0) * Y_SCALE, 0x8000*s->xsize, 0x8000*s->ysize,0); } else @@ -728,13 +1095,13 @@ void stic_device::draw_sprites(bitmap_ind16 &bitmap, int behind_foreground) code, s->color, s->xflip,s->yflip, - (s->xpos + x0) * STIC_X_SCALE, (s->ypos + y0) * STIC_Y_SCALE + s->yflip * s->ysize * STIC_CARD_HEIGHT, + (s->xpos + x0) * X_SCALE, (s->ypos + y0) * Y_SCALE + s->yflip * s->ysize * CARD_HEIGHT, 0x8000*s->xsize, 0x8000*s->ysize,0); m_gfxdecode->gfx(0)->zoom_transpen(bitmap,&machine().screen[0].visarea, code+1, s->color, s->xflip,s->yflip, - (s->xpos + x0) * STIC_X_SCALE, (s->ypos + y0) * STIC_Y_SCALE + (1 - s->yflip) * s->ysize * STIC_CARD_HEIGHT, + (s->xpos + x0) * X_SCALE, (s->ypos + y0) * Y_SCALE + (1 - s->yflip) * s->ysize * CARD_HEIGHT, 0x8000*s->xsize, 0x8000*s->ysize,0); } } @@ -745,11 +1112,11 @@ void stic_device::draw_sprites(bitmap_ind16 &bitmap, int behind_foreground) void stic_device::draw_borders(bitmap_ind16 &bitmap) { - intv_plot_box(bitmap, 0, 0, (STIC_OVERSCAN_LEFT_WIDTH + (m_left_edge_inhibit ? STIC_CARD_WIDTH : m_col_delay)) * STIC_X_SCALE, (STIC_OVERSCAN_TOP_HEIGHT + STIC_BACKTAB_HEIGHT * STIC_CARD_HEIGHT + STIC_OVERSCAN_BOTTOM_HEIGHT) * STIC_Y_SCALE, m_border_color); - intv_plot_box(bitmap, (STIC_OVERSCAN_LEFT_WIDTH + STIC_BACKTAB_WIDTH * STIC_CARD_WIDTH - 1) * STIC_X_SCALE, 0, STIC_OVERSCAN_RIGHT_WIDTH, (STIC_OVERSCAN_TOP_HEIGHT + STIC_BACKTAB_HEIGHT * STIC_CARD_HEIGHT + STIC_OVERSCAN_BOTTOM_HEIGHT) * STIC_Y_SCALE, m_border_color); + intv_plot_box(bitmap, 0, 0, (OVERSCAN_LEFT_WIDTH + (m_left_edge_inhibit ? CARD_WIDTH : m_col_delay)) * X_SCALE, (OVERSCAN_TOP_HEIGHT + BACKTAB_HEIGHT * CARD_HEIGHT + OVERSCAN_BOTTOM_HEIGHT) * Y_SCALE, m_border_color); + intv_plot_box(bitmap, (OVERSCAN_LEFT_WIDTH + BACKTAB_WIDTH * CARD_WIDTH - 1) * X_SCALE, 0, OVERSCAN_RIGHT_WIDTH, (OVERSCAN_TOP_HEIGHT + BACKTAB_HEIGHT * CARD_HEIGHT + OVERSCAN_BOTTOM_HEIGHT) * Y_SCALE, m_border_color); - intv_plot_box(bitmap, 0, 0, (STIC_OVERSCAN_LEFT_WIDTH + STIC_BACKTAB_WIDTH * STIC_CARD_WIDTH - 1 + STIC_OVERSCAN_RIGHT_WIDTH) * STIC_X_SCALE, (STIC_OVERSCAN_TOP_HEIGHT + (m_top_edge_inhibit ? STIC_CARD_HEIGHT : m_row_delay)) * STIC_Y_SCALE, m_border_color); - intv_plot_box(bitmap, 0, (STIC_OVERSCAN_TOP_HEIGHT + STIC_BACKTAB_HEIGHT * STIC_CARD_HEIGHT) * STIC_Y_SCALE, (STIC_OVERSCAN_LEFT_WIDTH + STIC_BACKTAB_WIDTH * STIC_CARD_WIDTH - 1 + STIC_OVERSCAN_RIGHT_WIDTH) * STIC_X_SCALE, STIC_OVERSCAN_BOTTOM_HEIGHT * STIC_Y_SCALE, m_border_color); + intv_plot_box(bitmap, 0, 0, (OVERSCAN_LEFT_WIDTH + BACKTAB_WIDTH * CARD_WIDTH - 1 + OVERSCAN_RIGHT_WIDTH) * X_SCALE, (OVERSCAN_TOP_HEIGHT + (m_top_edge_inhibit ? CARD_HEIGHT : m_row_delay)) * Y_SCALE, m_border_color); + intv_plot_box(bitmap, 0, (OVERSCAN_TOP_HEIGHT + BACKTAB_HEIGHT * CARD_HEIGHT) * Y_SCALE, (OVERSCAN_LEFT_WIDTH + BACKTAB_WIDTH * CARD_WIDTH - 1 + OVERSCAN_RIGHT_WIDTH) * X_SCALE, OVERSCAN_BOTTOM_HEIGHT * Y_SCALE, m_border_color); } void stic_device::screenrefresh() @@ -766,7 +1133,7 @@ void stic_device::screenrefresh() // Copy the sprites to the background copy_sprites_to_background(m_bitmap); determine_sprite_collisions(); - for (int i = 0; i < STIC_MOBS; i++) + for (int i = 0; i < MOBS; i++) m_stic_registers[STIC_MCR + i] |= m_sprite[i].collision; /* draw the screen borders if enabled */ draw_borders(m_bitmap); @@ -785,41 +1152,41 @@ READ16_MEMBER( stic_device::read ) //logerror("%x = stic_r(%x)\n",0,offset); switch (offset) { - case STIC_MXR + STIC_MOB0: - case STIC_MXR + STIC_MOB1: - case STIC_MXR + STIC_MOB2: - case STIC_MXR + STIC_MOB3: - case STIC_MXR + STIC_MOB4: - case STIC_MXR + STIC_MOB5: - case STIC_MXR + STIC_MOB6: - case STIC_MXR + STIC_MOB7: + case STIC_MXR + MOB0: + case STIC_MXR + MOB1: + case STIC_MXR + MOB2: + case STIC_MXR + MOB3: + case STIC_MXR + MOB4: + case STIC_MXR + MOB5: + case STIC_MXR + MOB6: + case STIC_MXR + MOB7: return 0x3800 | (m_stic_registers[offset] & 0x07FF); - case STIC_MYR + STIC_MOB0: - case STIC_MYR + STIC_MOB1: - case STIC_MYR + STIC_MOB2: - case STIC_MYR + STIC_MOB3: - case STIC_MYR + STIC_MOB4: - case STIC_MYR + STIC_MOB5: - case STIC_MYR + STIC_MOB6: - case STIC_MYR + STIC_MOB7: + case STIC_MYR + MOB0: + case STIC_MYR + MOB1: + case STIC_MYR + MOB2: + case STIC_MYR + MOB3: + case STIC_MYR + MOB4: + case STIC_MYR + MOB5: + case STIC_MYR + MOB6: + case STIC_MYR + MOB7: return 0x3000 | (m_stic_registers[offset] & 0x0FFF); - case STIC_MAR + STIC_MOB0: - case STIC_MAR + STIC_MOB1: - case STIC_MAR + STIC_MOB2: - case STIC_MAR + STIC_MOB3: - case STIC_MAR + STIC_MOB4: - case STIC_MAR + STIC_MOB5: - case STIC_MAR + STIC_MOB6: - case STIC_MAR + STIC_MOB7: + case STIC_MAR + MOB0: + case STIC_MAR + MOB1: + case STIC_MAR + MOB2: + case STIC_MAR + MOB3: + case STIC_MAR + MOB4: + case STIC_MAR + MOB5: + case STIC_MAR + MOB6: + case STIC_MAR + MOB7: return m_stic_registers[offset] & 0x3FFF; - case STIC_MCR + STIC_MOB0: - case STIC_MCR + STIC_MOB1: - case STIC_MCR + STIC_MOB2: - case STIC_MCR + STIC_MOB3: - case STIC_MCR + STIC_MOB4: - case STIC_MCR + STIC_MOB5: - case STIC_MCR + STIC_MOB6: - case STIC_MCR + STIC_MOB7: + case STIC_MCR + MOB0: + case STIC_MCR + MOB1: + case STIC_MCR + MOB2: + case STIC_MCR + MOB3: + case STIC_MCR + MOB4: + case STIC_MCR + MOB5: + case STIC_MCR + MOB6: + case STIC_MCR + MOB7: return 0x3C00 | (m_stic_registers[offset] & 0x03FF); case STIC_GMR: m_color_stack_mode = 1; @@ -827,10 +1194,10 @@ READ16_MEMBER( stic_device::read ) /*** fall through ***/ case STIC_DER: return 0x3FFF; - case STIC_CSR + STIC_CSR0: - case STIC_CSR + STIC_CSR1: - case STIC_CSR + STIC_CSR2: - case STIC_CSR + STIC_CSR3: + case STIC_CSR + CSR0: + case STIC_CSR + CSR1: + case STIC_CSR + CSR2: + case STIC_CSR + CSR3: case STIC_BCR: return 0x3FF0 | (m_stic_registers[offset] & 0x000F); case STIC_HDR: @@ -852,30 +1219,30 @@ WRITE16_MEMBER( stic_device::write ) switch (offset) { // X Positions - case STIC_MXR + STIC_MOB0: - case STIC_MXR + STIC_MOB1: - case STIC_MXR + STIC_MOB2: - case STIC_MXR + STIC_MOB3: - case STIC_MXR + STIC_MOB4: - case STIC_MXR + STIC_MOB5: - case STIC_MXR + STIC_MOB6: - case STIC_MXR + STIC_MOB7: - s = &m_sprite[offset & (STIC_MOBS - 1)]; + case STIC_MXR + MOB0: + case STIC_MXR + MOB1: + case STIC_MXR + MOB2: + case STIC_MXR + MOB3: + case STIC_MXR + MOB4: + case STIC_MXR + MOB5: + case STIC_MXR + MOB6: + case STIC_MXR + MOB7: + s = &m_sprite[offset & (MOBS - 1)]; s->doublex = !!(data & STIC_MXR_XSIZE); s->visible = !!(data & STIC_MXR_VIS); s->coll = !!(data & STIC_MXR_COL); s->xpos = (data & STIC_MXR_X); break; // Y Positions - case STIC_MYR + STIC_MOB0: - case STIC_MYR + STIC_MOB1: - case STIC_MYR + STIC_MOB2: - case STIC_MYR + STIC_MOB3: - case STIC_MYR + STIC_MOB4: - case STIC_MYR + STIC_MOB5: - case STIC_MYR + STIC_MOB6: - case STIC_MYR + STIC_MOB7: - s = &m_sprite[offset & (STIC_MOBS - 1)]; + case STIC_MYR + MOB0: + case STIC_MYR + MOB1: + case STIC_MYR + MOB2: + case STIC_MYR + MOB3: + case STIC_MYR + MOB4: + case STIC_MYR + MOB5: + case STIC_MYR + MOB6: + case STIC_MYR + MOB7: + s = &m_sprite[offset & (MOBS - 1)]; s->yflip = !!(data & STIC_MYR_YFLIP); s->xflip = !!(data & STIC_MYR_XFLIP); s->quady = !!(data & STIC_MYR_YSIZE); @@ -884,32 +1251,32 @@ WRITE16_MEMBER( stic_device::write ) s->ypos = (data & STIC_MYR_Y); break; // Attributes - case STIC_MAR + STIC_MOB0: - case STIC_MAR + STIC_MOB1: - case STIC_MAR + STIC_MOB2: - case STIC_MAR + STIC_MOB3: - case STIC_MAR + STIC_MOB4: - case STIC_MAR + STIC_MOB5: - case STIC_MAR + STIC_MOB6: - case STIC_MAR + STIC_MOB7: - s = &m_sprite[offset & (STIC_MOBS - 1)]; + case STIC_MAR + MOB0: + case STIC_MAR + MOB1: + case STIC_MAR + MOB2: + case STIC_MAR + MOB3: + case STIC_MAR + MOB4: + case STIC_MAR + MOB5: + case STIC_MAR + MOB6: + case STIC_MAR + MOB7: + s = &m_sprite[offset & (MOBS - 1)]; s->behind_foreground = !!(data & STIC_MAR_PRI); s->grom = !(data & STIC_MAR_SEL); s->card = ((data & STIC_MAR_C) >> 3); s->color = ((data & STIC_MAR_FG3) >> 9) | (data & STIC_MAR_FG20); break; // Collision Detection - TBD - case STIC_MCR + STIC_MOB0: - case STIC_MCR + STIC_MOB1: - case STIC_MCR + STIC_MOB2: - case STIC_MCR + STIC_MOB3: - case STIC_MCR + STIC_MOB4: - case STIC_MCR + STIC_MOB5: - case STIC_MCR + STIC_MOB6: - case STIC_MCR + STIC_MOB7: + case STIC_MCR + MOB0: + case STIC_MCR + MOB1: + case STIC_MCR + MOB2: + case STIC_MCR + MOB3: + case STIC_MCR + MOB4: + case STIC_MCR + MOB5: + case STIC_MCR + MOB6: + case STIC_MCR + MOB7: // a MOB's own collision bit is *always* zero, even if a // one is poked into it - data &= ~(1 << (offset & (STIC_MOBS - 1))); + data &= ~(1 << (offset & (MOBS - 1))); break; // Display enable case STIC_DER: @@ -921,11 +1288,11 @@ WRITE16_MEMBER( stic_device::write ) m_color_stack_mode = 0; break; // Color Stack - case STIC_CSR + STIC_CSR0: - case STIC_CSR + STIC_CSR1: - case STIC_CSR + STIC_CSR2: - case STIC_CSR + STIC_CSR3: - //logerror("Setting color_stack[%x] = %x (%x)\n", offset & (STIC_CSRS - 1),data & STIC_CSR_BG, space.device().safe_pc()); + case STIC_CSR + CSR0: + case STIC_CSR + CSR1: + case STIC_CSR + CSR2: + case STIC_CSR + CSR3: + //logerror("Setting color_stack[%x] = %x (%x)\n", offset & (CSRS - 1),data & STIC_CSR_BG, space.device().safe_pc()); break; // Border Color case STIC_BCR: diff --git a/src/mame/video/stic.h b/src/mame/video/stic.h index 14b1bf1999e..b09422591c1 100644 --- a/src/mame/video/stic.h +++ b/src/mame/video/stic.h @@ -6,20 +6,8 @@ * ****************************************************************************/ -#ifndef STIC_H_ -#define STIC_H_ - -// GROM/GRAM cards are 8x8 -#define STIC_CARD_WIDTH 8 -#define STIC_CARD_HEIGHT 8 - -// Intellivision resolution is 20x12 BACKTAB CARDs, minus the rightmost column, -// for an effective resolution of (19 * 8 + 1 * 7) x (12 * 8) == 159x96. -// -// MOB scanline height can be half of a card scanline height, so y-coordinates -// are scaled by 2. -#define STIC_X_SCALE 1 -#define STIC_Y_SCALE 2 +#ifndef MAME_VIDEO_STIC_H +#define MAME_VIDEO_STIC_H // the Intellivision emulation scales to match the output format at the last // step. The Intellivision keyboard component appears to be 320x96, but can @@ -30,425 +18,6 @@ #define INTVKBD_X_SCALE 2 #define INTVKBD_Y_SCALE INTV_Y_SCALE -// overscan sizes in intv pixels -// these values are approximate. -#define STIC_OVERSCAN_LEFT_WIDTH 13 -#define STIC_OVERSCAN_RIGHT_WIDTH 17 -#define STIC_OVERSCAN_TOP_HEIGHT 12 -#define STIC_OVERSCAN_BOTTOM_HEIGHT 12 - -//Timing constants based on Joe Zbiciak's documentation -#define STIC_CYCLES_PER_SCANLINE 57 -#define STIC_ROW_BUSRQ 110 // CPU paused during backtab row buffering -#define STIC_FRAME_BUSRQ 42 // CPU paused just after end of vblank and before first row fetch (approximate) -#define STIC_VBLANK_END 3790 -#define STIC_FIRST_FETCH 3933 - -/*** STIC registers *********************************************************/ - -// number of STIC registers -#define STIC_REGISTERS 0x33 - -// STIC MOBs (Moveable OBjects) -enum -{ - STIC_MOB0, - STIC_MOB1, - STIC_MOB2, - STIC_MOB3, - STIC_MOB4, - STIC_MOB5, - STIC_MOB6, - STIC_MOB7, - - STIC_MOBS -}; - -// STIC Color Stack -enum -{ - STIC_CSR0, - STIC_CSR1, - STIC_CSR2, - STIC_CSR3, - - STIC_CSRS -}; - -/**************************************************************************** - * * - * MXR 0000[..0007] MOB X REGISTER RW * - * * - * (MSB) (LSB) * - * +-+-+-+-+-+-----+---+---+--+--+--+--+--+--+--+--+ * - * | | | | | |XSIZE|VIS|COL|X7|X6|X5|X4|X3|X2|X1|X0| * - * +-+-+-+-+-+-----+---+---+--+--+--+--+--+--+--+--+ * - * * - * Xn x-position [0..255] * - * COL collision detection [1=enable] * - * VIS visibility [1=visible] * - * XSIZE double width [1=double] * - * * - **************************************************************************** - * * - * NOTES * - * * - * 1. If X=0, the sprite is not visible and does not register collisions. * - * 2. The horizontal handle is 8 pixels from the left of the sprite, * - * regardless of width. * - * * - ****************************************************************************/ -#define STIC_MXR 0x0000 - -#define STIC_MXR_XSIZE 0x0400 -#define STIC_MXR_VIS 0x0200 -#define STIC_MXR_COL 0x0100 -#define STIC_MXR_X 0x00FF - -/**************************************************************************** - * * - * MYR 0008[..000F] MOB Y REGISTER RW * - * * - * (MSB) (LSB) * - * +-+-+-+-+-----+-----+-----+-----+----+--+--+--+--+--+--+--+ * - * | | | | |YFLIP|XFLIP|YSIZE|YFULL|YRES|Y6|Y5|Y4|Y3|Y2|Y1|Y0| * - * +-+-+-+-+-----+-----+-----+-----+----+--+--+--+--+--+--+--+ * - * * - * Yn y-position [0..127] * - * YRES y-resolution [0=8 scanlines,1=16 scanlines] * - * YFULL double scanline height [1=double] * - * YSIZE quadruple scanline height [1=quadruple] * - * XFLIP horizontally flip image [1=flip] * - * YFLIP vertically flip image [1=flip] * - * * - **************************************************************************** - * * - * NOTES * - * * - * 1. A sprite with YRES=1 will display two cards. * - * 2. A sprite with YFULL=0 and YSIZE=0 will have scanlines half the * - * height of a background card. * - * 3, The minimum size of a sprite is 8x8 (XSIZE=YRES=YSIZE=YFULL=0). * - * 4. The maximum size of a sprite is 16x128 (XSIZE=YRES=YSIZE=YFULL=1). * - * 5. The Y-position is measured in double height scanlines. * - * 6. The vertical handle is 8 double height scanlines from the top of the * - * sprite, regardless of height. * - * * - ****************************************************************************/ -#define STIC_MYR 0x0008 - -#define STIC_MYR_YFLIP 0x0800 -#define STIC_MYR_XFLIP 0x0400 -#define STIC_MYR_YSIZE 0x0200 -#define STIC_MYR_YFULL 0x0100 -#define STIC_MYR_YRES 0x0080 -#define STIC_MYR_Y 0x007F - -/**************************************************************************** - * * - * SAR 0010[..0017] MOB ATTRIBUTE REGISTER RW * - * * - * (MSB) (LSB) * - * +-+-+---+---+---+-+-+--+--+--+--+--+--+---+---+---+ * - * | | |PRI|FG3|SEL| | |C5|C4|C3|C2|C1|C0|FG2|FG1|FG0| * - * +-+-+---+---+---+-+-+--+--+--+--+--+--+---+---+---+ * - * * - * FGn foreground color [0..15] * - * Cn card # [0..63] * - * SEL card memory select [0=GROM, 1=GRAM] * - * PRI sprite priority [1=behind set background bit] * - * * - ****************************************************************************/ -#define STIC_MAR 0x0010 - -#define STIC_MAR_PRI 0x2000 -#define STIC_MAR_FG3 0x1000 -#define STIC_MAR_SEL 0x0800 -#define STIC_MAR_C 0x07F8 -#define STIC_MAR_FG20 0x0007 - -/**************************************************************************** - * * - * SCR 0018[..001F] MOB COLLISION REGISTER RW * - * * - * (MSB) (LSB) * - * +-+-+-+-+-+-+----+----+----+----+----+----+----+----+----+----+ * - * | | | | | | |BRDR|BKGD|SPR7|SPR6|SPR5|SPR4|SPR3|SPR2|SPR1|SPR0| * - * +-+-+-+-+-+-+----+----+----+----+----+----+----+----+----+----+ * - * * - * SPRn 1=collision with sprite #n * - * BKGD 1=collision with set background bit * - * BRDR 1=collision with screen border * - * * - **************************************************************************** - * * - * NOTES * - * * - * 1. All collisions are latched. Successive reads read from the latch. * - * A write will reset the latch. * - * 2. Sprites with VIS=0 register collisions. * - * 3. Sprites with X=0 do not register collisions. * - * 4. Two overlapping sprites with different priorities, one completely * - * hidden behind the background, still register a collision. * - * * - ****************************************************************************/ -#define STIC_MCR 0x0018 - -#define STIC_MCR_BRDR 0x0200 -#define STIC_MCR_BKGD 0x0100 -#define STIC_MCR_SPR7 0x0080 -#define STIC_MCR_SPR6 0x0040 -#define STIC_MCR_SPR5 0x0020 -#define STIC_MCR_SPR4 0x0010 -#define STIC_MCR_SPR3 0x0008 -#define STIC_MCR_SPR2 0x0004 -#define STIC_MCR_SPR1 0x0002 -#define STIC_MCR_SPR0 0x0001 - -/**************************************************************************** - * * - * DER 0021 DISPLAY ENABLE REGISTER W * - * * - * (MSB) (LSB) * - * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ * - * | | | | | | | | | | | | | | | | | * - * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ * - * * - **************************************************************************** - * * - * NOTES * - * * - * 1. Any write during VBLANK enables STIC output. * - * * - ****************************************************************************/ -#define STIC_DER 0x0020 - -/**************************************************************************** - * * - * GMR 0021 GRAPHICS MODE REGISTER RW * - * * - * (MSB) (LSB) * - * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ * - * | | | | | | | | | | | | | | | | | * - * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ * - * * - **************************************************************************** - * * - * NOTES * - * * - * 1. Any write during VBLANK enables FOREGROUND/BACKGROUND mode. * - * 2. Any read during VBLANK enables COLOR STACK/COLORED SQUARES mode. * - * * - ****************************************************************************/ -#define STIC_GMR 0x0021 - -/**************************************************************************** - * * - * CSR 0028 COLOR STACK REGISTER RW * - * * - * (MSB) (LSB) * - * +-+-+-+-+-+-+-+-+-+-+-+-+---+---+---+---+ * - * | | | | | | | | | | | | |BG3|BG2|BG1|BG0| * - * +-+-+-+-+-+-+-+-+-+-+-+-+---+---+---+---+ * - * * - * BGn background color [0..15] * - * * - ****************************************************************************/ -#define STIC_CSR 0x0028 - -#define STIC_CSR_BG 0x000F - -/**************************************************************************** - * * - * BCR 002C BORDER COLOR REGISTER RW * - * * - * (MSB) (LSB) * - * +-+-+-+-+-+-+-+-+-+-+-+-+---+---+---+---+ * - * | | | | | | | | | | | | |BC3|BC2|BC1|BC0| * - * +-+-+-+-+-+-+-+-+-+-+-+-+---+---+---+---+ * - * * - * BCn border color [0..15] * - * * - **************************************************************************** - * * - * NOTES * - * * - * 1. Affects overscan, and column and row blockouts. * - * * - ****************************************************************************/ -#define STIC_BCR 0x002C - -#define STIC_BCR_BC 0x000F - -/**************************************************************************** - * * - * HDR 0030 HORIZONTAL DELAY REGISTER RW * - * * - * (MSB) (LSB) * - * +-+-+-+-+-+-+-+-+-+-+-+-+-+----+----+----+ * - * | | | | | | | | | | | | | |DEL2|DEL1|DEL0| * - * +-+-+-+-+-+-+-+-+-+-+-+-+-+----+----+----+ * - * * - * DELn horizontal delay [0..7] * - * * - **************************************************************************** - * * - * NOTES * - * * - * 1. Affects both BACKTAB and MOBs. * - * * - ****************************************************************************/ -#define STIC_HDR 0x0030 - -#define STIC_HDR_DEL 0x0007 - -/**************************************************************************** - * * - * STIC_VDR 0030 VERTICAL DELAY REGISTER RW * - * * - * (MSB) (LSB) * - * +-+-+-+-+-+-+-+-+-+-+-+-+-+----+----+----+ * - * | | | | | | | | | | | | | |DEL2|DEL1|DEL0| * - * +-+-+-+-+-+-+-+-+-+-+-+-+-+----+----+----+ * - * * - * DELn vertical delay [0..7] * - * * - **************************************************************************** - * * - * NOTES * - * * - * 1. Affects both BACKTAB and MOBs. * - * * - ****************************************************************************/ -#define STIC_VDR 0x0031 - -#define STIC_VDR_DEL 0x0007 - -/**************************************************************************** - * * - * STIC_CBR 0032 CARD BLOCKOUT REGISTER RW * - * * - * (MSB) (LSB) * - * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+---+---+ * - * | | | | | | | | | | | | | | |ROW|COL| * - * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+---+---+ * - * * - * COL blockout first card column [1=blockout] * - * ROW blockout first card row [1=blockout] * - * * - **************************************************************************** - * * - * NOTES * - * * - * 1. Generally used in conjunction with HDR and VDR registers, to achieve * - * smooth scrolling. * - * * - ****************************************************************************/ -#define STIC_CBR 0x0032 - -#define STIC_CBR_ROW 0x0002 -#define STIC_CBR_COL 0x0001 - -/*** BACKTAB ****************************************************************/ - -// BACKTAB is made up of 20x12 cards -// (the first 19 columns are 8x8, the 20th column is 7x8) -#define STIC_BACKTAB_WIDTH 20 -#define STIC_BACKTAB_HEIGHT 12 - -/**************************************************************************** - * * - * FOREGROUND/BACKGROUND MODE * - * * - * (MSB) (LSB) * - * +-+-+---+---+---+---+---+--+--+--+--+--+--+---+---+---+ * - * | | |BG2|BG3|SEL|BG1|BG0|C5|C4|C3|C2|C1|C0|FG2|FG1|FG0| * - * +-+-+---+---+---+---+---+--+--+--+--+--+--+---+---+---+ * - * * - * FGn foreground color [0..7] * - * Cn card # [0..63] * - * SEL card memory select [0=GROM, 1=GRAM] * - * BGn background color [0..15] * - * * - ****************************************************************************/ -#define STIC_FBM_BG2 0x2000 -#define STIC_FBM_BG310 0x1600 -#define STIC_FBM_SEL 0x0800 -#define STIC_FBM_C 0x01F8 -#define STIC_FBM_FG 0x0007 - -/**************************************************************************** - * * - * COLOR STACK MODE * - * * - * (MSB) (LSB) * - * +-+-+---+---+---+--+--+--+--+--+--+--+--+---+---+---+ * - * | | |ADV|FG3|SEL|C7|C6|C5|C4|C3|C2|C1|C0|FG2|FG1|FG0| * - * +-+-+---+---+---+--+--+--+--+--+--+--+--+---+---+---+ * - * * - * FGn foreground color [0..15] * - * Cn card # [GROM=0..212, GRAM=0..63] * - * SEL card memory select [0=GROM, 1=GRAM] * - * ADV advance color stack index [1=advance] * - * * - **************************************************************************** - * * - * NOTES: * - * * - * 1. When FG3=1 and SEL=0, COLORED SQUARES MODE is enabled. * - * 2. When SEL=1, C7 and C6 can be used as user-defined flags. * - * * - ****************************************************************************/ -#define STIC_CSTM_ADV 0x2000 -#define STIC_CSTM_FG3 0x1000 -#define STIC_CSTM_SEL 0x0800 -#define STIC_CSTM_C7 0x0400 -#define STIC_CSTM_C6 0x0200 -#define STIC_CSTM_C50 0x01F8 -#define STIC_CSTM_FG20 0x0007 - -#define STIC_CSTM_C (STIC_CSTM_C7|STIC_CSTM_C6|STIC_CSTM_C50) - -/**************************************************************************** - * * - * COLORED SQUARES MODE * - * * - * (MSB) (LSB) * - * +-+-+--+-+-+--+--+--+--+--+--+--+--+--+--+--+ * - * | | |D2|1|0|D1|D0|C2|C1|C0|B2|B1|B0|A2|A1|A0| * - * +-+-+--+-+-+--+--+--+--+--+--+--+--+--+--+--+ * - * * - * An color a [0..7] * - * Bn color b [0..7] * - * Cn color c [0..7] * - * Dn color d [0..7] * - * * - **************************************************************************** - * * - * NOTES: * - * * - * 1. Each color corresponds to one of the following 4 x 4 squares: * - * * - * +---+---+ * - * | a | b | * - * +---+---+ * - * | c | d | * - * +---+---+ * - * * - * 2. When color 7 is specified, the color is taken from the color stack. * - * * - ****************************************************************************/ -#define STIC_CSQM_D2 0x2000 -#define STIC_CSQM_D10 0x0600 -#define STIC_CSQM_C 0x01C0 -#define STIC_CSQM_B 0x0038 -#define STIC_CSQM_A 0x0007 - -#define STIC_CSQM_WIDTH (STIC_CARD_WIDTH / 2) -#define STIC_CSQM_HEIGHT (STIC_CARD_HEIGHT / 2) - - - struct intv_sprite_type { int visible; @@ -475,6 +44,42 @@ struct intv_sprite_type class stic_device : public device_t { public: + // GROM/GRAM cards are 8x8 + static constexpr unsigned CARD_WIDTH = 8; + static constexpr unsigned CARD_HEIGHT = 8; + + // Intellivision resolution is 20x12 BACKTAB CARDs, minus the rightmost column, + // for an effective resolution of (19 * 8 + 1 * 7) x (12 * 8) == 159x96. + // + // MOB scanline height can be half of a card scanline height, so y-coordinates + // are scaled by 2. + static constexpr unsigned X_SCALE = 1; + static constexpr unsigned Y_SCALE = 2; + + // overscan sizes in intv pixels + // these values are approximate. + static constexpr unsigned OVERSCAN_LEFT_WIDTH = 13; + static constexpr unsigned OVERSCAN_RIGHT_WIDTH = 17; + static constexpr unsigned OVERSCAN_TOP_HEIGHT = 12; + static constexpr unsigned OVERSCAN_BOTTOM_HEIGHT = 12; + + //Timing constants based on Joe Zbiciak's documentation + static constexpr int CYCLES_PER_SCANLINE = 57; + static constexpr int ROW_BUSRQ = 110; // CPU paused during backtab row buffering + static constexpr int FRAME_BUSRQ = 42; // CPU paused just after end of vblank and before first row fetch (approximate) + static constexpr int VBLANK_END = 3790; + static constexpr int FIRST_FETCH = 3933; + + /*** BACKTAB ****************************************************************/ + + // BACKTAB is made up of 20x12 cards + // (the first 19 columns are 8x8, the 20th column is 7x8) + static constexpr unsigned BACKTAB_WIDTH = 20; + static constexpr unsigned BACKTAB_HEIGHT = 12; + + static constexpr unsigned SCREEN_WIDTH = (OVERSCAN_LEFT_WIDTH + (BACKTAB_WIDTH * CARD_WIDTH) - 1 + OVERSCAN_RIGHT_WIDTH) * X_SCALE; + static constexpr unsigned SCREEN_HEIGHT = (OVERSCAN_TOP_HEIGHT + (BACKTAB_HEIGHT * CARD_HEIGHT) + OVERSCAN_BOTTOM_HEIGHT) * Y_SCALE; + // construction/destruction stic_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual ~stic_device(); @@ -500,6 +105,37 @@ public: uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); private: + /*** STIC registers *********************************************************/ + + // number of STIC registers + static constexpr unsigned STIC_REGISTERS = 0x33; + + // STIC MOBs (Moveable OBjects) + enum + { + MOB0, + MOB1, + MOB2, + MOB3, + MOB4, + MOB5, + MOB6, + MOB7, + + MOBS + }; + + // STIC Color Stack + enum + { + CSR0, + CSR1, + CSR2, + CSR3, + + CSRS + }; + required_region_ptr m_grom; @@ -524,9 +160,9 @@ private: bitmap_ind16 m_bitmap; - intv_sprite_type m_sprite[STIC_MOBS]; - uint8_t m_sprite_buffers[STIC_MOBS][STIC_CARD_WIDTH * 2][STIC_CARD_HEIGHT * 4 * 2 * 2]; - uint16_t m_backtab_buffer[STIC_BACKTAB_HEIGHT][STIC_BACKTAB_WIDTH]; + intv_sprite_type m_sprite[MOBS]; + uint8_t m_sprite_buffers[MOBS][CARD_WIDTH * 2][CARD_HEIGHT * 4 * 2 * 2]; + uint16_t m_backtab_buffer[BACKTAB_HEIGHT][BACKTAB_WIDTH]; int m_color_stack_mode; int m_stic_registers[STIC_REGISTERS]; int m_color_stack_offset; @@ -545,7 +181,7 @@ private: }; // device type definition -extern const device_type STIC; +DECLARE_DEVICE_TYPE(STIC, stic_device) /*************************************************************************** @@ -556,4 +192,4 @@ extern const device_type STIC; MCFG_DEVICE_ADD(_tag, STIC, 0) -#endif /* STIC_H_ */ +#endif // MAME_VIDEO_STIC_H diff --git a/src/mame/video/surpratk.cpp b/src/mame/video/surpratk.cpp index 5484d1030d0..a88c327d468 100644 --- a/src/mame/video/surpratk.cpp +++ b/src/mame/video/surpratk.cpp @@ -49,20 +49,20 @@ uint32_t surpratk_state::screen_update_surpratk(screen_device &screen, bitmap_in { int layer[3], bg_colorbase; - bg_colorbase = m_k053251->get_palette_index(K053251_CI0); - m_sprite_colorbase = m_k053251->get_palette_index(K053251_CI1); - m_layer_colorbase[0] = m_k053251->get_palette_index(K053251_CI2); - m_layer_colorbase[1] = m_k053251->get_palette_index(K053251_CI4); - m_layer_colorbase[2] = m_k053251->get_palette_index(K053251_CI3); + bg_colorbase = m_k053251->get_palette_index(k053251_device::CI0); + m_sprite_colorbase = m_k053251->get_palette_index(k053251_device::CI1); + m_layer_colorbase[0] = m_k053251->get_palette_index(k053251_device::CI2); + m_layer_colorbase[1] = m_k053251->get_palette_index(k053251_device::CI4); + m_layer_colorbase[2] = m_k053251->get_palette_index(k053251_device::CI3); m_k052109->tilemap_update(); layer[0] = 0; - m_layerpri[0] = m_k053251->get_priority(K053251_CI2); + m_layerpri[0] = m_k053251->get_priority(k053251_device::CI2); layer[1] = 1; - m_layerpri[1] = m_k053251->get_priority(K053251_CI4); + m_layerpri[1] = m_k053251->get_priority(k053251_device::CI4); layer[2] = 2; - m_layerpri[2] = m_k053251->get_priority(K053251_CI3); + m_layerpri[2] = m_k053251->get_priority(k053251_device::CI3); konami_sortlayers3(layer, m_layerpri); diff --git a/src/mame/video/tc0080vco.cpp b/src/mame/video/tc0080vco.cpp index 774ae2a44fb..a0e4a622081 100644 --- a/src/mame/video/tc0080vco.cpp +++ b/src/mame/video/tc0080vco.cpp @@ -78,10 +78,10 @@ this seems to be the only zoom feature actually used in the games. *****************************************************************************/ -const device_type TC0080VCO = device_creator; +DEFINE_DEVICE_TYPE(TC0080VCO, tc0080vco_device, "tc0080vco", "Taito TC0080VCO") tc0080vco_device::tc0080vco_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, TC0080VCO, "Taito TC0080VCO", tag, owner, clock, "tc0080vco", __FILE__), + : device_t(mconfig, TC0080VCO, tag, owner, clock), m_ram(nullptr), m_bg0_ram_0(nullptr), m_bg0_ram_1(nullptr), diff --git a/src/mame/video/tc0080vco.h b/src/mame/video/tc0080vco.h index 62007085527..52670b67efc 100644 --- a/src/mame/video/tc0080vco.h +++ b/src/mame/video/tc0080vco.h @@ -1,13 +1,14 @@ // license:BSD-3-Clause // copyright-holders:Nicola Salmoria -#ifndef __TC0080VCO_H__ -#define __TC0080VCO_H__ +#ifndef MAME_VIDEO_TC0080VCO_H +#define MAME_VIDEO_TC0080VCO_H + +#pragma once class tc0080vco_device : public device_t { public: tc0080vco_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~tc0080vco_device() {} // static configuration static void static_set_gfxdecode_tag(device_t &device, const char *tag); @@ -82,7 +83,7 @@ private: void bg1_tilemap_draw( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int flags, uint32_t priority ); }; -extern const device_type TC0080VCO; +DECLARE_DEVICE_TYPE(TC0080VCO, tc0080vco_device) #define MCFG_TC0080VCO_GFX_REGION(_region) \ tc0080vco_device::set_gfx_region(*device, _region); @@ -99,4 +100,4 @@ extern const device_type TC0080VCO; #define MCFG_TC0080VCO_GFXDECODE(_gfxtag) \ tc0080vco_device::static_set_gfxdecode_tag(*device, "^" _gfxtag); -#endif +#endif // MAME_VIDEO_TC0080VCO_H diff --git a/src/mame/video/tc0100scn.cpp b/src/mame/video/tc0100scn.cpp index 7489bee5b9a..a919f4379bf 100644 --- a/src/mame/video/tc0100scn.cpp +++ b/src/mame/video/tc0100scn.cpp @@ -147,10 +147,10 @@ the wide tilemap mode) #define TC0100SCN_RAM_SIZE 0x14000 /* enough for double-width tilemaps */ #define TC0100SCN_TOTAL_CHARS 256 -const device_type TC0100SCN = device_creator; +DEFINE_DEVICE_TYPE(TC0100SCN, tc0100scn_device, "tc0100scn", "Taito TC0100SCN") tc0100scn_device::tc0100scn_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, TC0100SCN, "Taito TC0100SCN", tag, owner, clock, "tc0100scn", __FILE__), + : device_t(mconfig, TC0100SCN, tag, owner, clock), m_ram(nullptr), m_bg_ram(nullptr), m_fg_ram(nullptr), diff --git a/src/mame/video/tc0100scn.h b/src/mame/video/tc0100scn.h index 62cac593657..0b98a5b1b1d 100644 --- a/src/mame/video/tc0100scn.h +++ b/src/mame/video/tc0100scn.h @@ -1,13 +1,14 @@ // license:BSD-3-Clause // copyright-holders:Nicola Salmoria -#ifndef __TC0100SCN_H__ -#define __TC0100SCN_H__ +#ifndef MAME_VIDEO_TC0100SCN_H +#define MAME_VIDEO_TC0100SCN_H + +#pragma once class tc0100scn_device : public device_t { public: tc0100scn_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~tc0100scn_device() {} // static configuration static void static_set_gfxdecode_tag(device_t &device, const char *tag); @@ -35,7 +36,7 @@ public: dev.m_flip_text_yoffs = y_offset; } - #define TC0100SCN_SINGLE_VDU 1024 + static constexpr unsigned SINGLE_VDU = 1024; // for set_multiscr_xoffs /* Function to set separate color banks for the three tilemapped layers. To change from the default (0,0,0) use after calling TC0100SCN_vh_start */ @@ -118,7 +119,7 @@ private: void restore_scroll(); }; -extern const device_type TC0100SCN; +DECLARE_DEVICE_TYPE(TC0100SCN, tc0100scn_device) #define MCFG_TC0100SCN_GFX_REGION(_region) \ @@ -148,4 +149,4 @@ extern const device_type TC0100SCN; #define MCFG_TC0100SCN_PALETTE(_palette_tag) \ tc0100scn_device::static_set_palette_tag(*device, "^" _palette_tag); -#endif +#endif // MAME_VIDEO_TC0100SCN_H diff --git a/src/mame/video/tc0110pcr.cpp b/src/mame/video/tc0110pcr.cpp index f1e1dab12c4..a4ddb188236 100644 --- a/src/mame/video/tc0110pcr.cpp +++ b/src/mame/video/tc0110pcr.cpp @@ -18,10 +18,10 @@ The data bus is 16 bits wide. #define TC0110PCR_RAM_SIZE 0x2000 -const device_type TC0110PCR = device_creator; +DEFINE_DEVICE_TYPE(TC0110PCR, tc0110pcr_device, "tc0110pcr", "Taito TC0110PCR") tc0110pcr_device::tc0110pcr_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, TC0110PCR, "Taito TC0110PCR", tag, owner, clock, "tc0110pcr", __FILE__) + : device_t(mconfig, TC0110PCR, tag, owner, clock) , m_ram(nullptr) , m_type(0) , m_addr(0) diff --git a/src/mame/video/tc0110pcr.h b/src/mame/video/tc0110pcr.h index 3f650d0a72b..dae0f99626c 100644 --- a/src/mame/video/tc0110pcr.h +++ b/src/mame/video/tc0110pcr.h @@ -1,14 +1,15 @@ // license:BSD-3-Clause // copyright-holders:Nicola Salmoria -#ifndef _TC0110PCR_H_ -#define _TC0110PCR_H_ +#ifndef MAME_VIDEO_TC0110PCR_H +#define MAME_VIDEO_TC0110PCR_H + +#pragma once class tc0110pcr_device : public device_t { public: tc0110pcr_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~tc0110pcr_device() {} DECLARE_READ16_MEMBER( word_r ); DECLARE_WRITE16_MEMBER( word_w ); /* color index goes up in step of 2 */ @@ -32,11 +33,11 @@ private: required_device m_palette; }; -extern const device_type TC0110PCR; +DECLARE_DEVICE_TYPE(TC0110PCR, tc0110pcr_device) #define MCFG_TC0110PCR_ADD(_tag) \ MCFG_DEVICE_ADD(_tag, TC0110PCR, 0) #define MCFG_TC0110PCR_PALETTE(_palette_tag) \ tc0110pcr_device::static_set_palette_tag(*device, "^" _palette_tag); -#endif +#endif // MAME_VIDEO_TC0110PCR_H diff --git a/src/mame/video/tc0150rod.cpp b/src/mame/video/tc0150rod.cpp index c85d6cf8ede..5e9fc0fca9b 100644 --- a/src/mame/video/tc0150rod.cpp +++ b/src/mame/video/tc0150rod.cpp @@ -12,11 +12,11 @@ Road generator. Two roads allow for forking. Gfx data fetched from ROM. Refer to #define TC0150ROD_RAM_SIZE 0x2000 -const device_type TC0150ROD = device_creator; +DEFINE_DEVICE_TYPE(TC0150ROD, tc0150rod_device, "tc0150rod", "Taito TC0150ROD") tc0150rod_device::tc0150rod_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, TC0150ROD, "Taito TC0150ROD", tag, owner, clock, "tc0150rod", __FILE__), - m_roadgfx(*this, DEVICE_SELF, 0x40000) + : device_t(mconfig, TC0150ROD, tag, owner, clock) + , m_roadgfx(*this, DEVICE_SELF, 0x40000) { } diff --git a/src/mame/video/tc0150rod.h b/src/mame/video/tc0150rod.h index 82677caf929..403bdb0a626 100644 --- a/src/mame/video/tc0150rod.h +++ b/src/mame/video/tc0150rod.h @@ -1,13 +1,14 @@ // license:BSD-3-Clause // copyright-holders:Nicola Salmoria -#ifndef __TC0150ROD_H__ -#define __TC0150ROD_H__ +#ifndef MAME_VIDEO_TC0150ROD_H +#define MAME_VIDEO_TC0150ROD_H + +#pragma once class tc0150rod_device : public device_t { public: tc0150rod_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~tc0150rod_device() {} DECLARE_READ16_MEMBER( word_r ); DECLARE_WRITE16_MEMBER( word_w ); @@ -23,7 +24,7 @@ private: required_region_ptr m_roadgfx; }; -extern const device_type TC0150ROD; +DECLARE_DEVICE_TYPE(TC0150ROD, tc0150rod_device) -#endif +#endif // MAME_VIDEO_TC0150ROD_H diff --git a/src/mame/video/tc0180vcu.cpp b/src/mame/video/tc0180vcu.cpp index 19cf6694bee..e3a8aacac71 100644 --- a/src/mame/video/tc0180vcu.cpp +++ b/src/mame/video/tc0180vcu.cpp @@ -9,10 +9,10 @@ #define TC0180VCU_SCROLLRAM_SIZE 0x0800 -const device_type TC0180VCU = device_creator; +DEFINE_DEVICE_TYPE(TC0180VCU, tc0180vcu_device, "tc0180vcu", "Taito TC0180VCU") tc0180vcu_device::tc0180vcu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, TC0180VCU, "Taito TC0180VCU", tag, owner, clock, "tc0180vcu", __FILE__), + : device_t(mconfig, TC0180VCU, tag, owner, clock), m_ram(nullptr), //m_scrollram(nullptr), //m_bg_rambank(0), diff --git a/src/mame/video/tc0180vcu.h b/src/mame/video/tc0180vcu.h index ae1b25dc51f..7d2a6800f19 100644 --- a/src/mame/video/tc0180vcu.h +++ b/src/mame/video/tc0180vcu.h @@ -1,13 +1,14 @@ // license:BSD-3-Clause // copyright-holders:Nicola Salmoria -#ifndef __TC0180VCU_H__ -#define __TC0180VCU_H__ +#ifndef MAME_VIDEO_TC0180VCU_H +#define MAME_VIDEO_TC0180VCU_H + +#pragma once class tc0180vcu_device : public device_t { public: tc0180vcu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~tc0180vcu_device() {} // static configuration static void static_set_gfxdecode_tag(device_t &device, const char *tag); @@ -57,7 +58,7 @@ private: void video_control( uint8_t data ); }; -extern const device_type TC0180VCU; +DECLARE_DEVICE_TYPE(TC0180VCU, tc0180vcu_device) #define MCFG_TC0180VCU_BG_COLORBASE(_color) \ tc0180vcu_device::set_bg_colorbase(*device, _color); @@ -71,4 +72,4 @@ extern const device_type TC0180VCU; #define MCFG_TC0180VCU_GFXDECODE(_gfxtag) \ tc0180vcu_device::static_set_gfxdecode_tag(*device, "^" _gfxtag); -#endif +#endif // MAME_VIDEO_TC0180VCU_H diff --git a/src/mame/video/tc0280grd.cpp b/src/mame/video/tc0280grd.cpp index 86504d584b2..35f1920c4c5 100644 --- a/src/mame/video/tc0280grd.cpp +++ b/src/mame/video/tc0280grd.cpp @@ -25,10 +25,10 @@ control registers: #define TC0280GRD_RAM_SIZE 0x2000 -const device_type TC0280GRD = device_creator; +DEFINE_DEVICE_TYPE(TC0280GRD, tc0280grd_device, "tc0280grd", "Taito TC0280GRD / TC0430GRW") tc0280grd_device::tc0280grd_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, TC0280GRD, "Taito TC0280GRD & TC0430GRW", tag, owner, clock, "tc0280grd", __FILE__), + : device_t(mconfig, TC0280GRD, tag, owner, clock), m_ram(nullptr), //m_ctrl[8](0), m_base_color(0), diff --git a/src/mame/video/tc0280grd.h b/src/mame/video/tc0280grd.h index 912919726a2..93bd12eea06 100644 --- a/src/mame/video/tc0280grd.h +++ b/src/mame/video/tc0280grd.h @@ -1,13 +1,14 @@ // license:BSD-3-Clause // copyright-holders:Nicola Salmoria -#ifndef __TC0280GRD_H__ -#define __TC0280GRD_H__ +#ifndef MAME_VIDEO_TC0280GRD_H +#define MAME_VIDEO_TC0280GRD_H + +#pragma once class tc0280grd_device : public device_t { public: tc0280grd_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~tc0280grd_device() {} // static configuration static void static_set_gfxdecode_tag(device_t &device, const char *tag); @@ -45,7 +46,7 @@ private: void zoom_draw( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int xoffset, int yoffset, uint32_t priority, int xmultiply ); }; -extern const device_type TC0280GRD; +DECLARE_DEVICE_TYPE(TC0280GRD, tc0280grd_device) #define TC0430GRW TC0280GRD @@ -60,4 +61,5 @@ extern const device_type TC0280GRD; #define MCFG_TC0430GRW_GFXDECODE(_gfxtag) \ tc0280grd_device::static_set_gfxdecode_tag(*device, "^" _gfxtag); -#endif + +#endif // MAME_VIDEO_TC0280GRD_H diff --git a/src/mame/video/tc0360pri.cpp b/src/mame/video/tc0360pri.cpp index beba1fc556a..71ca816aedc 100644 --- a/src/mame/video/tc0360pri.cpp +++ b/src/mame/video/tc0360pri.cpp @@ -43,10 +43,10 @@ each one of them can declare to have four different priority levels. #include "tc0360pri.h" -const device_type TC0360PRI = device_creator; +DEFINE_DEVICE_TYPE(TC0360PRI, tc0360pri_device, "tc0360pri", "Taito TC0360PRI") tc0360pri_device::tc0360pri_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, TC0360PRI, "Taito TC0360PRI", tag, owner, clock, "tc0360pri", __FILE__) + : device_t(mconfig, TC0360PRI, tag, owner, clock) { } diff --git a/src/mame/video/tc0360pri.h b/src/mame/video/tc0360pri.h index d64eafb96b2..65fe0c7820c 100644 --- a/src/mame/video/tc0360pri.h +++ b/src/mame/video/tc0360pri.h @@ -1,13 +1,14 @@ // license:BSD-3-Clause // copyright-holders:Nicola Salmoria -#ifndef _TC0360PRI_H_ -#define _TC0360PRI_H_ +#ifndef MAME_VIDEO_TC0360PRI_H +#define MAME_VIDEO_TC0360PRI_H + +#pragma once class tc0360pri_device : public device_t { public: tc0360pri_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~tc0360pri_device() {} DECLARE_WRITE8_MEMBER( write ); DECLARE_READ8_MEMBER( read ); @@ -22,9 +23,9 @@ private: uint8_t m_regs[16]; }; -extern const device_type TC0360PRI; +DECLARE_DEVICE_TYPE(TC0360PRI, tc0360pri_device) #define MCFG_TC0360PRI_ADD(_tag) \ MCFG_DEVICE_ADD(_tag, TC0360PRI, 0) -#endif +#endif // MAME_VIDEO_TC0360PRI_H diff --git a/src/mame/video/tc0480scp.cpp b/src/mame/video/tc0480scp.cpp index 8a1aed0fae1..1ca4156d1b3 100644 --- a/src/mame/video/tc0480scp.cpp +++ b/src/mame/video/tc0480scp.cpp @@ -150,10 +150,10 @@ Control registers #define TC0480SCP_TOTAL_CHARS 256 -const device_type TC0480SCP = device_creator; +DEFINE_DEVICE_TYPE(TC0480SCP, tc0480scp_device, "tc0480scp", "Taito TC0480SCP") tc0480scp_device::tc0480scp_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, TC0480SCP, "Taito TC0480SCP", tag, owner, clock, "tc0480scp", __FILE__), + : device_t(mconfig, TC0480SCP, tag, owner, clock), m_tx_ram(nullptr), m_char_ram(nullptr), m_pri_reg(0), diff --git a/src/mame/video/tc0480scp.h b/src/mame/video/tc0480scp.h index 46ed5fdf63a..b63fd3442df 100644 --- a/src/mame/video/tc0480scp.h +++ b/src/mame/video/tc0480scp.h @@ -1,13 +1,14 @@ // license:BSD-3-Clause // copyright-holders:Nicola Salmoria -#ifndef __TC0480SCP_H__ -#define __TC0480SCP_H__ +#ifndef MAME_VIDEO_TC0480SCP_H +#define MAME_VIDEO_TC0480SCP_H + +#pragma once class tc0480scp_device : public device_t { public: tc0480scp_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~tc0480scp_device() {} // static configuration static void static_set_gfxdecode_tag(device_t &device, const char *tag); @@ -110,7 +111,7 @@ private: void bg23_draw( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int layer, int flags, uint32_t priority ); }; -extern const device_type TC0480SCP; +DECLARE_DEVICE_TYPE(TC0480SCP, tc0480scp_device) #define MCFG_TC0480SCP_GFX_REGION(_region) \ @@ -134,4 +135,4 @@ extern const device_type TC0480SCP; #define MCFG_TC0480SCP_GFXDECODE(_gfxtag) \ tc0480scp_device::static_set_gfxdecode_tag(*device, "^" _gfxtag); -#endif +#endif // MAME_VIDEO_TC0480SCP_H diff --git a/src/mame/video/tc0780fpa.cpp b/src/mame/video/tc0780fpa.cpp index 590a657ff15..32a34796395 100644 --- a/src/mame/video/tc0780fpa.cpp +++ b/src/mame/video/tc0780fpa.cpp @@ -390,11 +390,11 @@ void tc0780fpa_renderer::render(uint16_t *polygon_fifo, int length) } } -const device_type TC0780FPA = device_creator; +DEFINE_DEVICE_TYPE(TC0780FPA, tc0780fpa_device, "tc0780fpa", "TC0780FPA Polygon Renderer") tc0780fpa_device::tc0780fpa_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, TC0780FPA, "TC0780FPA Polygon Renderer", tag, owner, clock, "tc0780fpa", __FILE__), - device_video_interface(mconfig, *this) + : device_t(mconfig, TC0780FPA, tag, owner, clock) + , device_video_interface(mconfig, *this) { } diff --git a/src/mame/video/tc0780fpa.h b/src/mame/video/tc0780fpa.h index 7c947365571..a7d383434db 100644 --- a/src/mame/video/tc0780fpa.h +++ b/src/mame/video/tc0780fpa.h @@ -1,9 +1,10 @@ // license:LGPL-2.1+ // copyright-holders:Ville Linde, Angelo Salese, hap +#ifndef MAME_VIDEO_TC0780FPA_H +#define MAME_VIDEO_TC0780FPA_H + #pragma once -#ifndef __TC0780FPA_H__ -#define __TC0780FPA_H__ #include "video/poly.h" @@ -21,7 +22,6 @@ class tc0780fpa_renderer : public poly_manager; +DEFINE_DEVICE_TYPE(TECMO_MIXER, tecmo_mix_device, "tecmo_mix", "Tecmo 16-bit Mixer") tecmo_mix_device::tecmo_mix_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, TECMO_MIXER, "Tecmo 16-bit Mixer", tag, owner, clock, "tecmo_mix", __FILE__), + : device_t(mconfig, TECMO_MIXER, tag, owner, clock), device_video_interface(mconfig, *this), m_sprpri_shift(0), m_sprbln_shift(0), diff --git a/src/mame/video/tecmo_mix.h b/src/mame/video/tecmo_mix.h index b305b63d754..cc2616b2dc3 100644 --- a/src/mame/video/tecmo_mix.h +++ b/src/mame/video/tecmo_mix.h @@ -1,11 +1,13 @@ // license:BSD-3-Clause // copyright-holders:David Haywood /* Tecmo Mixer */ +#ifndef MAME_VIDEO_TECMO_MIX_H +#define MAME_VIDEO_TECMO_MIX_H +#pragma once -class tecmo_mix_device : public device_t, - public device_video_interface +class tecmo_mix_device : public device_t, public device_video_interface { public: tecmo_mix_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); @@ -49,7 +51,7 @@ private: uint32_t sum_colors(const pen_t *pal, int c1_idx, int c2_idx); }; -extern const device_type TECMO_MIXER; +DECLARE_DEVICE_TYPE(TECMO_MIXER, tecmo_mix_device) @@ -70,3 +72,5 @@ extern const device_type TECMO_MIXER; #define MCFG_TECMO_MIXER_BGPEN(_bgpen) \ tecmo_mix_device::set_bgpen(*device, _bgpen); + +#endif // MAME_VIDEO_TECMO_MIX_H diff --git a/src/mame/video/tecmo_spr.cpp b/src/mame/video/tecmo_spr.cpp index c52c3bc0f43..6bc94adb2a0 100644 --- a/src/mame/video/tecmo_spr.cpp +++ b/src/mame/video/tecmo_spr.cpp @@ -15,13 +15,13 @@ #include "screen.h" -const device_type TECMO_SPRITE = device_creator; +DEFINE_DEVICE_TYPE(TECMO_SPRITE, tecmo_spr_device, "tecmo_spr", "Tecmo Chained Sprites") tecmo_spr_device::tecmo_spr_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, TECMO_SPRITE, "Tecmo Chained Sprites", tag, owner, clock, "tecmo_spr", __FILE__), -m_gfxregion(0), -m_bootleg(0), -m_yoffset(0) + : device_t(mconfig, TECMO_SPRITE, tag, owner, clock) + , m_gfxregion(0) + , m_bootleg(0) + , m_yoffset(0) { } diff --git a/src/mame/video/tecmo_spr.h b/src/mame/video/tecmo_spr.h index b9c879d25b4..b8b3d8075ff 100644 --- a/src/mame/video/tecmo_spr.h +++ b/src/mame/video/tecmo_spr.h @@ -1,7 +1,10 @@ // license:BSD-3-Clause // copyright-holders:David Haywood /* Tecmo Sprites */ +#ifndef MAME_VIDEO_TECMO_SPR_H +#define MAME_VIDEO_TECMO_SPR_H +#pragma once class tecmo_spr_device : public device_t @@ -31,11 +34,9 @@ protected: uint8_t m_gfxregion; int m_bootleg; // for Gals Pinball / Hot Pinball int m_yoffset; - -private: }; -extern const device_type TECMO_SPRITE; +DECLARE_DEVICE_TYPE(TECMO_SPRITE, tecmo_spr_device) #define MCFG_TECMO_SPRITE_GFX_REGION(_region) \ @@ -46,3 +47,5 @@ extern const device_type TECMO_SPRITE; #define MCFG_TECMO_SPRITE_YOFFSET(_yoffset) \ tecmo_spr_device::set_yoffset(*device, _yoffset); + +#endif // MAME_VIDEO_TECMO_SPR_H diff --git a/src/mame/video/tia.cpp b/src/mame/video/tia.cpp index a4d3729b636..601bdb7b1f1 100644 --- a/src/mame/video/tia.cpp +++ b/src/mame/video/tia.cpp @@ -352,24 +352,24 @@ PALETTE_INIT_MEMBER(tia_pal_video_device, tia_pal) extend_palette( palette ); } -tia_video_device::tia_video_device(const machine_config &mconfig, device_type type, const char *name, const char *shortname, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, type, name, tag, owner, clock, shortname, __FILE__), - device_video_interface(mconfig, *this), - m_read_input_port_cb(*this), - m_databus_contents_cb(*this), - m_vsync_cb(*this) +tia_video_device::tia_video_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) + , device_video_interface(mconfig, *this) + , m_read_input_port_cb(*this) + , m_databus_contents_cb(*this) + , m_vsync_cb(*this) { } // device type definition -const device_type TIA_PAL_VIDEO = device_creator; +DEFINE_DEVICE_TYPE(TIA_PAL_VIDEO, tia_pal_video_device, "tia_pal_video", "TIA Video (PAL)") //------------------------------------------------- // tia_pal_video_device - constructor //------------------------------------------------- tia_pal_video_device::tia_pal_video_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : tia_video_device(mconfig, TIA_PAL_VIDEO, "TIA Video (PAL)", "tia_pal_video", tag, owner, clock) + : tia_video_device(mconfig, TIA_PAL_VIDEO, tag, owner, clock) { } @@ -389,14 +389,14 @@ machine_config_constructor tia_pal_video_device::device_mconfig_additions() cons } // device type definition -const device_type TIA_NTSC_VIDEO = device_creator; +DEFINE_DEVICE_TYPE(TIA_NTSC_VIDEO, tia_ntsc_video_device, "tia_ntsc_video", "TIA Video (NTSC)") //------------------------------------------------- // tia_ntsc_video_device - constructor //------------------------------------------------- tia_ntsc_video_device::tia_ntsc_video_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : tia_video_device(mconfig, TIA_NTSC_VIDEO, "TIA Video (NTSC)", "tia_ntsc_video", tag, owner, clock) + : tia_video_device(mconfig, TIA_NTSC_VIDEO, tag, owner, clock) { } diff --git a/src/mame/video/tia.h b/src/mame/video/tia.h index a73a1103287..e05789cf623 100644 --- a/src/mame/video/tia.h +++ b/src/mame/video/tia.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Wilbert Pol,Stefan Jokisch -#ifndef _VIDEO_TIA_H_ -#define _VIDEO_TIA_H_ +#ifndef MAME_VIDEO_VIDEO_TIA_H +#define MAME_VIDEO_VIDEO_TIA_H + +#pragma once //************************************************************************** // MACROS / CONSTANTS @@ -61,7 +63,7 @@ public: protected: // construction/destruction - tia_video_device(const machine_config &mconfig, device_type type, const char *name, const char *shortname, const char *tag, device_t *owner, uint32_t clock); + tia_video_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); // device-level overrides virtual void device_start() override; @@ -229,7 +231,7 @@ protected: // device type definition -extern const device_type TIA_PAL_VIDEO; -extern const device_type TIA_NTSC_VIDEO; +DECLARE_DEVICE_TYPE(TIA_PAL_VIDEO, tia_pal_video_device) +DECLARE_DEVICE_TYPE(TIA_NTSC_VIDEO, tia_ntsc_video_device) -#endif /* _VIDEO_TIA_H_ */ +#endif // MAME_VIDEO_TIA_H diff --git a/src/mame/video/tigeroad_spr.cpp b/src/mame/video/tigeroad_spr.cpp index 40c8383e0ed..f26fb04158a 100644 --- a/src/mame/video/tigeroad_spr.cpp +++ b/src/mame/video/tigeroad_spr.cpp @@ -19,10 +19,10 @@ #include "tigeroad_spr.h" -const device_type TIGEROAD_SPRITE = device_creator; +DEFINE_DEVICE_TYPE(TIGEROAD_SPRITE, tigeroad_spr_device, "tigeroad_spr", "Simple Capcom (Tiger Road) Sprite") tigeroad_spr_device::tigeroad_spr_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, TIGEROAD_SPRITE, "Simple Capcom (Tiger Road) Sprite", tag, owner, clock, "tigeroad_spr", __FILE__) + : device_t(mconfig, TIGEROAD_SPRITE, tag, owner, clock) { } diff --git a/src/mame/video/tigeroad_spr.h b/src/mame/video/tigeroad_spr.h index 21ff8afdd79..11b1c1b98aa 100644 --- a/src/mame/video/tigeroad_spr.h +++ b/src/mame/video/tigeroad_spr.h @@ -1,5 +1,9 @@ // license:BSD-3-Clause // copyright-holders:David Haywood +#ifndef MAME_VIDEO_TIGEROAD_SPR_H +#define MAME_VIDEO_TIGEROAD_SPR_H + +#pragma once class tigeroad_spr_device : public device_t { @@ -15,4 +19,6 @@ protected: private: }; -extern const device_type TIGEROAD_SPRITE; +DECLARE_DEVICE_TYPE(TIGEROAD_SPRITE, tigeroad_spr_device) + +#endif // MAME_VIDEO_TIGEROAD_SPR_H diff --git a/src/mame/video/tmc600.cpp b/src/mame/video/tmc600.cpp index 65c403e64ed..1c7d1fd2642 100644 --- a/src/mame/video/tmc600.cpp +++ b/src/mame/video/tmc600.cpp @@ -128,15 +128,15 @@ GFXDECODE_END MACHINE_CONFIG_FRAGMENT( tmc600_video ) // video hardware - MCFG_CDP1869_SCREEN_PAL_ADD(CDP1869_TAG, SCREEN_TAG, CDP1869_DOT_CLK_PAL) + MCFG_CDP1869_SCREEN_PAL_ADD(CDP1869_TAG, SCREEN_TAG, cdp1869_device::DOT_CLK_PAL) MCFG_TIMER_DRIVER_ADD_PERIODIC("blink", tmc600_state, blink_tick, attotime::from_hz(2)) MCFG_GFXDECODE_ADD("gfxdecode", CDP1869_TAG":palette", tmc600) // sound hardware MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_CDP1869_ADD(CDP1869_TAG, CDP1869_DOT_CLK_PAL, cdp1869_page_ram) - MCFG_CDP1869_COLOR_CLOCK(CDP1869_COLOR_CLK_PAL) + MCFG_CDP1869_ADD(CDP1869_TAG, cdp1869_device::DOT_CLK_PAL, cdp1869_page_ram) + MCFG_CDP1869_COLOR_CLOCK(cdp1869_device::COLOR_CLK_PAL) MCFG_CDP1869_CHAR_PCB_READ_OWNER(tmc600_state, tmc600_pcb_r) MCFG_CDP1869_CHAR_RAM_READ_OWNER(tmc600_state, tmc600_char_ram_r) MCFG_CDP1869_PAL_NTSC_CALLBACK(VCC) diff --git a/src/mame/video/tmnt.cpp b/src/mame/video/tmnt.cpp index 6853335fc96..7da27c28eee 100644 --- a/src/mame/video/tmnt.cpp +++ b/src/mame/video/tmnt.cpp @@ -546,19 +546,19 @@ uint32_t tmnt_state::screen_update_tmnt(screen_device &screen, bitmap_ind16 &bit uint32_t tmnt_state::screen_update_punkshot(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_sprite_colorbase = m_k053251->get_palette_index(K053251_CI1); - m_layer_colorbase[0] = m_k053251->get_palette_index(K053251_CI2); - m_layer_colorbase[1] = m_k053251->get_palette_index(K053251_CI4); - m_layer_colorbase[2] = m_k053251->get_palette_index(K053251_CI3); + m_sprite_colorbase = m_k053251->get_palette_index(k053251_device::CI1); + m_layer_colorbase[0] = m_k053251->get_palette_index(k053251_device::CI2); + m_layer_colorbase[1] = m_k053251->get_palette_index(k053251_device::CI4); + m_layer_colorbase[2] = m_k053251->get_palette_index(k053251_device::CI3); m_k052109->tilemap_update(); m_sorted_layer[0] = 0; - m_layerpri[0] = m_k053251->get_priority(K053251_CI2); + m_layerpri[0] = m_k053251->get_priority(k053251_device::CI2); m_sorted_layer[1] = 1; - m_layerpri[1] = m_k053251->get_priority(K053251_CI4); + m_layerpri[1] = m_k053251->get_priority(k053251_device::CI4); m_sorted_layer[2] = 2; - m_layerpri[2] = m_k053251->get_priority(K053251_CI3); + m_layerpri[2] = m_k053251->get_priority(k053251_device::CI3); konami_sortlayers3(m_sorted_layer, m_layerpri); @@ -576,20 +576,20 @@ uint32_t tmnt_state::screen_update_lgtnfght(screen_device &screen, bitmap_ind16 { int bg_colorbase; - bg_colorbase = m_k053251->get_palette_index(K053251_CI0); - m_sprite_colorbase = m_k053251->get_palette_index(K053251_CI1); - m_layer_colorbase[0] = m_k053251->get_palette_index(K053251_CI2); - m_layer_colorbase[1] = m_k053251->get_palette_index(K053251_CI4); - m_layer_colorbase[2] = m_k053251->get_palette_index(K053251_CI3); + bg_colorbase = m_k053251->get_palette_index(k053251_device::CI0); + m_sprite_colorbase = m_k053251->get_palette_index(k053251_device::CI1); + m_layer_colorbase[0] = m_k053251->get_palette_index(k053251_device::CI2); + m_layer_colorbase[1] = m_k053251->get_palette_index(k053251_device::CI4); + m_layer_colorbase[2] = m_k053251->get_palette_index(k053251_device::CI3); m_k052109->tilemap_update(); m_sorted_layer[0] = 0; - m_layerpri[0] = m_k053251->get_priority(K053251_CI2); + m_layerpri[0] = m_k053251->get_priority(k053251_device::CI2); m_sorted_layer[1] = 1; - m_layerpri[1] = m_k053251->get_priority(K053251_CI4); + m_layerpri[1] = m_k053251->get_priority(k053251_device::CI4); m_sorted_layer[2] = 2; - m_layerpri[2] = m_k053251->get_priority(K053251_CI3); + m_layerpri[2] = m_k053251->get_priority(k053251_device::CI3); konami_sortlayers3(m_sorted_layer, m_layerpri); @@ -620,20 +620,20 @@ uint32_t tmnt_state::screen_update_glfgreat(screen_device &screen, bitmap_ind16 { int bg_colorbase; - bg_colorbase = m_k053251->get_palette_index(K053251_CI0); - m_sprite_colorbase = m_k053251->get_palette_index(K053251_CI1); - m_layer_colorbase[0] = m_k053251->get_palette_index(K053251_CI2); - m_layer_colorbase[1] = m_k053251->get_palette_index(K053251_CI3) + 8; /* weird... */ - m_layer_colorbase[2] = m_k053251->get_palette_index(K053251_CI4); + bg_colorbase = m_k053251->get_palette_index(k053251_device::CI0); + m_sprite_colorbase = m_k053251->get_palette_index(k053251_device::CI1); + m_layer_colorbase[0] = m_k053251->get_palette_index(k053251_device::CI2); + m_layer_colorbase[1] = m_k053251->get_palette_index(k053251_device::CI3) + 8; /* weird... */ + m_layer_colorbase[2] = m_k053251->get_palette_index(k053251_device::CI4); m_k052109->tilemap_update(); m_sorted_layer[0] = 0; - m_layerpri[0] = m_k053251->get_priority(K053251_CI2); + m_layerpri[0] = m_k053251->get_priority(k053251_device::CI2); m_sorted_layer[1] = 1; - m_layerpri[1] = m_k053251->get_priority(K053251_CI3); + m_layerpri[1] = m_k053251->get_priority(k053251_device::CI3); m_sorted_layer[2] = 2; - m_layerpri[2] = m_k053251->get_priority(K053251_CI4); + m_layerpri[2] = m_k053251->get_priority(k053251_device::CI4); konami_sortlayers3(m_sorted_layer, m_layerpri); @@ -725,20 +725,20 @@ uint32_t tmnt_state::screen_update_thndrx2(screen_device &screen, bitmap_ind16 & { int bg_colorbase; - bg_colorbase = m_k053251->get_palette_index(K053251_CI0); - m_sprite_colorbase = m_k053251->get_palette_index(K053251_CI1); - m_layer_colorbase[0] = m_k053251->get_palette_index(K053251_CI2); - m_layer_colorbase[1] = m_k053251->get_palette_index(K053251_CI4); - m_layer_colorbase[2] = m_k053251->get_palette_index(K053251_CI3); + bg_colorbase = m_k053251->get_palette_index(k053251_device::CI0); + m_sprite_colorbase = m_k053251->get_palette_index(k053251_device::CI1); + m_layer_colorbase[0] = m_k053251->get_palette_index(k053251_device::CI2); + m_layer_colorbase[1] = m_k053251->get_palette_index(k053251_device::CI4); + m_layer_colorbase[2] = m_k053251->get_palette_index(k053251_device::CI3); m_k052109->tilemap_update(); m_sorted_layer[0] = 0; - m_layerpri[0] = m_k053251->get_priority(K053251_CI2); + m_layerpri[0] = m_k053251->get_priority(k053251_device::CI2); m_sorted_layer[1] = 1; - m_layerpri[1] = m_k053251->get_priority(K053251_CI4); + m_layerpri[1] = m_k053251->get_priority(k053251_device::CI4); m_sorted_layer[2] = 2; - m_layerpri[2] = m_k053251->get_priority(K053251_CI3); + m_layerpri[2] = m_k053251->get_priority(k053251_device::CI3); konami_sortlayers3(m_sorted_layer, m_layerpri); diff --git a/src/mame/video/toaplan2.cpp b/src/mame/video/toaplan2.cpp index d68b8e39ab2..86bddaec96f 100644 --- a/src/mame/video/toaplan2.cpp +++ b/src/mame/video/toaplan2.cpp @@ -108,17 +108,10 @@ VIDEO_START_MEMBER(toaplan2_state,fixeightbl) create_tx_tilemap(); /* This bootleg has additional layer offsets on the VDP */ - m_vdp0->bg.extra_xoffset.normal = -0x1d6 -26; - m_vdp0->bg.extra_yoffset.normal = -0x1ef -15; - - m_vdp0->fg.extra_xoffset.normal = -0x1d8 -22; - m_vdp0->fg.extra_yoffset.normal = -0x1ef -15; - - m_vdp0->top.extra_xoffset.normal = -0x1da -18; - m_vdp0->top.extra_yoffset.normal = -0x1ef -15; - - m_vdp0->sp.extra_xoffset.normal = 8;//-0x1cc -64; - m_vdp0->sp.extra_yoffset.normal = 8;//-0x1ef -128; + m_vdp0->set_bg_extra_offsets( -0x1d6 - 26, -0x1ef - 15, 0, 0 ); + m_vdp0->set_fg_extra_offsets( -0x1d8 - 22, -0x1ef - 15, 0, 0 ); + m_vdp0->set_top_extra_offsets( -0x1da - 18, -0x1ef - 15, 0, 0 ); + m_vdp0->set_sp_extra_offsets(8/*-0x1cc - 64*/, 8/*-0x1ef - 128*/, 0, 0); m_vdp0->init_scroll_regs(); } @@ -143,7 +136,7 @@ VIDEO_START_MEMBER(toaplan2_state,batrider) { VIDEO_START_CALL_MEMBER( toaplan2 ); - m_vdp0->sp.use_sprite_buffer = 0; // disable buffering on this game + m_vdp0->disable_sprite_buffer(); // disable buffering on this game /* Create the Text tilemap for this game */ m_tx_gfxram16.allocate(RAIZING_TX_GFXRAM_SIZE/2); @@ -153,7 +146,7 @@ VIDEO_START_MEMBER(toaplan2_state,batrider) create_tx_tilemap(0x1d4, 0x16b); /* Has special banking */ - m_vdp0->gp9001_gfxrom_is_banked = 1; + m_vdp0->set_gfxrom_banked(); } WRITE16_MEMBER(toaplan2_state::toaplan2_tx_videoram_w) @@ -214,14 +207,7 @@ WRITE16_MEMBER(toaplan2_state::batrider_unknown_dma_w) WRITE16_MEMBER(toaplan2_state::batrider_objectbank_w) { if (ACCESSING_BITS_0_7) - { - data &= 0xf; - if (m_vdp0->gp9001_gfxrom_bank[offset] != data) - { - m_vdp0->gp9001_gfxrom_bank[offset] = data; - m_vdp0->gp9001_gfxrom_bank_dirty = 1; - } - } + m_vdp0->set_gfxrom_bank(offset, data & 0x0f); } diff --git a/src/mame/video/toaplan_scu.cpp b/src/mame/video/toaplan_scu.cpp index 2402e1df285..a6d02b4df4e 100644 --- a/src/mame/video/toaplan_scu.cpp +++ b/src/mame/video/toaplan_scu.cpp @@ -11,7 +11,7 @@ #include "screen.h" -const device_type TOAPLAN_SCU = device_creator; +DEFINE_DEVICE_TYPE(TOAPLAN_SCU, toaplan_scu_device, "toaplan_scu", "Toaplan SCU") const gfx_layout toaplan_scu_device::spritelayout = { @@ -30,8 +30,8 @@ GFXDECODE_END toaplan_scu_device::toaplan_scu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, TOAPLAN_SCU, "Toaplan SCU", tag, owner, clock, "toaplan_scu", __FILE__), - device_gfx_interface(mconfig, *this, gfxinfo ) + : device_t(mconfig, TOAPLAN_SCU, tag, owner, clock) + , device_gfx_interface(mconfig, *this, gfxinfo) { } diff --git a/src/mame/video/toaplan_scu.h b/src/mame/video/toaplan_scu.h index 89b6d90fb6a..3466380c102 100644 --- a/src/mame/video/toaplan_scu.h +++ b/src/mame/video/toaplan_scu.h @@ -1,14 +1,14 @@ // license:BSD-3-Clause // copyright-holders:Quench /* toaplan SCU */ +#ifndef MAME_VIDEO_TOAPLAN_SCU_H +#define MAME_VIDEO_TOAPLAN_SCU_H +#pragma once class toaplan_scu_device : public device_t, public device_gfx_interface { - static const gfx_layout spritelayout; - DECLARE_GFXDECODE_MEMBER(gfxinfo); - public: toaplan_scu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); @@ -24,14 +24,19 @@ protected: virtual void device_reset() override; private: + static const gfx_layout spritelayout; + DECLARE_GFXDECODE_MEMBER(gfxinfo); + bitmap_ind16 m_temp_spritebitmap; int m_xoffs; int m_xoffs_flipped; }; -extern const device_type TOAPLAN_SCU; +DECLARE_DEVICE_TYPE(TOAPLAN_SCU, toaplan_scu_device) #define MCFG_TOAPLAN_SCU_ADD(_tag, _palette_tag, _xoffs, _xoffs_flipped ) \ MCFG_DEVICE_ADD(_tag, TOAPLAN_SCU, 0) \ MCFG_GFX_PALETTE(_palette_tag) \ toaplan_scu_device::static_set_xoffsets(*device, _xoffs, _xoffs_flipped); + +#endif // MAME_VIDEO_TOAPLAN_SCU_H diff --git a/src/mame/video/uv201.cpp b/src/mame/video/uv201.cpp index fdbd98ab2af..d6485b2c556 100644 --- a/src/mame/video/uv201.cpp +++ b/src/mame/video/uv201.cpp @@ -90,7 +90,7 @@ //************************************************************************** // device type definition -const device_type UV201 = device_creator; +DEFINE_DEVICE_TYPE(UV201, uv201_device, "uv201", "UV201") //------------------------------------------------- @@ -98,7 +98,7 @@ const device_type UV201 = device_creator; //------------------------------------------------- uv201_device::uv201_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, UV201, "UV201", tag, owner, clock, "uv201", __FILE__), + device_t(mconfig, UV201, tag, owner, clock), device_video_interface(mconfig, *this), m_write_ext_int(*this), m_write_hblank(*this), diff --git a/src/mame/video/uv201.h b/src/mame/video/uv201.h index 48f34921cb3..97363c4b118 100644 --- a/src/mame/video/uv201.h +++ b/src/mame/video/uv201.h @@ -96,9 +96,9 @@ public: // construction/destruction uv201_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_ext_int_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_ext_int.set_callback(object); } - template static devcb_base &set_hblank_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_hblank.set_callback(object); } - template static devcb_base &set_db_rd_callback(device_t &device, _Object object) { return downcast(device).m_read_db.set_callback(object); } + template static devcb_base &set_ext_int_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_ext_int.set_callback(std::forward(cb)); } + template static devcb_base &set_hblank_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_hblank.set_callback(std::forward(cb)); } + template static devcb_base &set_db_rd_callback(device_t &device, Object &&cb) { return downcast(device).m_read_db.set_callback(std::forward(cb)); } DECLARE_READ8_MEMBER( read ); DECLARE_WRITE8_MEMBER( write ); @@ -153,5 +153,6 @@ private: // device type definition extern const device_type UV201; +DECLARE_DEVICE_TYPE(UV201, uv201_device) #endif // MAME_VIDEO_UV201_H diff --git a/src/mame/video/vendetta.cpp b/src/mame/video/vendetta.cpp index 21d2cdae864..66686c97b00 100644 --- a/src/mame/video/vendetta.cpp +++ b/src/mame/video/vendetta.cpp @@ -54,19 +54,19 @@ uint32_t vendetta_state::screen_update(screen_device &screen, bitmap_ind16 &bitm { int layer[3]; - m_sprite_colorbase = m_k053251->get_palette_index(K053251_CI1); - m_layer_colorbase[0] = m_k053251->get_palette_index(K053251_CI2); - m_layer_colorbase[1] = m_k053251->get_palette_index(K053251_CI3); - m_layer_colorbase[2] = m_k053251->get_palette_index(K053251_CI4); + m_sprite_colorbase = m_k053251->get_palette_index(k053251_device::CI1); + m_layer_colorbase[0] = m_k053251->get_palette_index(k053251_device::CI2); + m_layer_colorbase[1] = m_k053251->get_palette_index(k053251_device::CI3); + m_layer_colorbase[2] = m_k053251->get_palette_index(k053251_device::CI4); m_k052109->tilemap_update(); layer[0] = 0; - m_layerpri[0] = m_k053251->get_priority(K053251_CI2); + m_layerpri[0] = m_k053251->get_priority(k053251_device::CI2); layer[1] = 1; - m_layerpri[1] = m_k053251->get_priority(K053251_CI3); + m_layerpri[1] = m_k053251->get_priority(k053251_device::CI3); layer[2] = 2; - m_layerpri[2] = m_k053251->get_priority(K053251_CI4); + m_layerpri[2] = m_k053251->get_priority(k053251_device::CI4); konami_sortlayers3(layer, m_layerpri); diff --git a/src/mame/video/vertigo.cpp b/src/mame/video/vertigo.cpp index 8903dcc2223..a51b34f15c4 100644 --- a/src/mame/video/vertigo.cpp +++ b/src/mame/video/vertigo.cpp @@ -56,7 +56,7 @@ *************************************/ #define V_ADDPOINT(h,v,c,i) \ - m_vector->add_point (((h) & 0x7ff) << 14, (0x6ff - ((v) & 0x7ff)) << 14, VECTOR_COLOR444(c), (i)) + m_vector->add_point (((h) & 0x7ff) << 14, (0x6ff - ((v) & 0x7ff)) << 14, vector_device::color444(c), (i)) #define ADD(r,s,c) (((r) + (s) + (c)) & 0xffff) #define SUBR(r,s,c) ((~(r) + (s) + (c)) & 0xffff) diff --git a/src/mame/video/vicdual-97269pb.cpp b/src/mame/video/vicdual-97269pb.cpp index 5e993516b29..2ae3c31c4d0 100644 --- a/src/mame/video/vicdual-97269pb.cpp +++ b/src/mame/video/vicdual-97269pb.cpp @@ -72,7 +72,7 @@ ROM_END // GLOBAL VARIABLES //************************************************************************** -const device_type S97269PB = device_creator; +DEFINE_DEVICE_TYPE(S97269PB, s97269pb_device, "s97269pb", "N-Sub Daughterboard 97269-P-B") //------------------------------------------------- // rom_region - device-specific ROM region @@ -92,7 +92,7 @@ const tiny_rom_entry *s97269pb_device::device_rom_region() const //------------------------------------------------- s97269pb_device::s97269pb_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, S97269PB, "N-Sub Daughterboard 97269-P-B", tag, owner, clock, "s97269pb", __FILE__), + device_t(mconfig, S97269PB, tag, owner, clock), m_prom_ptr(*this, "s97269pb") { } diff --git a/src/mame/video/vicdual-97269pb.h b/src/mame/video/vicdual-97269pb.h index 3897efac93a..c2d239233b7 100644 --- a/src/mame/video/vicdual-97269pb.h +++ b/src/mame/video/vicdual-97269pb.h @@ -1,10 +1,10 @@ // license:BSD-3-Clause // copyright-holders:Ariane Fugmann -#pragma once - #ifndef MAME_VIDEO_VICDUAL_97269PB_H #define MAME_VIDEO_VICDUAL_97269PB_H +#pragma once + #define MCFG_S97269PB_ADD(_tag ) \ MCFG_DEVICE_ADD(_tag, S97269PB, 0) @@ -37,6 +37,6 @@ private: }; // device type definition -extern const device_type S97269PB; +DECLARE_DEVICE_TYPE(S97269PB, s97269pb_device) -#endif /* MAME_VIDEO_VICDUAL_97269PB_H */ +#endif // MAME_VIDEO_VICDUAL_97269PB_H diff --git a/src/mame/video/vrender0.cpp b/src/mame/video/vrender0.cpp index 22b514d1840..772a41fd679 100644 --- a/src/mame/video/vrender0.cpp +++ b/src/mame/video/vrender0.cpp @@ -23,10 +23,10 @@ DEVICE INTERFACE *****************************************************************************/ -const device_type VIDEO_VRENDER0 = device_creator; +DEFINE_DEVICE_TYPE(VIDEO_VRENDER0, vr0video_device, "vr0video", "VRender0 Video") vr0video_device::vr0video_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, VIDEO_VRENDER0, "VRender0 Video", tag, owner, clock, "vr0video", __FILE__) + : device_t(mconfig, VIDEO_VRENDER0, tag, owner, clock) , m_cpu(*this, finder_base::DUMMY_TAG) { } diff --git a/src/mame/video/vrender0.h b/src/mame/video/vrender0.h index 913c5de66b3..607e24a2905 100644 --- a/src/mame/video/vrender0.h +++ b/src/mame/video/vrender0.h @@ -1,37 +1,15 @@ // license:BSD-3-Clause // copyright-holders:ElSemi -#ifndef __VR0VIDEO_H__ -#define __VR0VIDEO_H__ +#ifndef MAME_VIDEO_VRENDER0_H +#define MAME_VIDEO_VRENDER0_H + +#pragma once /*************************************************************************** TYPE DEFINITIONS ***************************************************************************/ -struct RenderStateInfo -{ - uint32_t Tx; - uint32_t Ty; - uint32_t Txdx; - uint32_t Tydx; - uint32_t Txdy; - uint32_t Tydy; - uint32_t SrcAlphaColor; - uint32_t SrcBlend; - uint32_t DstAlphaColor; - uint32_t DstBlend; - uint32_t ShadeColor; - uint32_t TransColor; - uint32_t TileOffset; - uint32_t FontOffset; - uint32_t PalOffset; - uint32_t PaletteBank; - uint32_t TextureMode; - uint32_t PixelFormat; - uint32_t Width; - uint32_t Height; -}; - class vr0video_device : public device_t { public: @@ -48,6 +26,30 @@ protected: virtual void device_reset() override; private: + struct RenderStateInfo + { + uint32_t Tx; + uint32_t Ty; + uint32_t Txdx; + uint32_t Tydx; + uint32_t Txdy; + uint32_t Tydy; + uint32_t SrcAlphaColor; + uint32_t SrcBlend; + uint32_t DstAlphaColor; + uint32_t DstBlend; + uint32_t ShadeColor; + uint32_t TransColor; + uint32_t TileOffset; + uint32_t FontOffset; + uint32_t PalOffset; + uint32_t PaletteBank; + uint32_t TextureMode; + uint32_t PixelFormat; + uint32_t Width; + uint32_t Height; + }; + // internal state required_device m_cpu; @@ -57,10 +59,10 @@ private: RenderStateInfo m_RenderState; }; -extern const device_type VIDEO_VRENDER0; +DECLARE_DEVICE_TYPE(VIDEO_VRENDER0, vr0video_device) #define MCFG_VIDEO_VRENDER0_CPU(_tag) \ vr0video_device::set_cpu_tag(*device, "^" _tag); -#endif /* __VR0VIDEO_H__ */ +#endif // MAME_VIDEO_VRENDER0_H diff --git a/src/mame/video/vs920a.cpp b/src/mame/video/vs920a.cpp index da5811f9fd8..a6c0cf10a32 100644 --- a/src/mame/video/vs920a.cpp +++ b/src/mame/video/vs920a.cpp @@ -30,22 +30,22 @@ t=tile, p=palette #include "vs920a.h" -const device_type VS920A = device_creator; +DEFINE_DEVICE_TYPE(VS920A, vs920a_text_tilemap_device, "vs920a", "VS920A Text Tilemap") vs920a_text_tilemap_device::vs920a_text_tilemap_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, VS920A, "VS920A Text Tilemap", tag, owner, clock, "vs920a", __FILE__), - m_vram(nullptr), - m_pal_base(0), - m_gfx_region(0), - m_gfxdecode(*this, finder_base::DUMMY_TAG) - + : device_t(mconfig, VS920A, tag, owner, clock) + , m_tmap(nullptr) + , m_vram() + , m_pal_base(0) + , m_gfx_region(0) + , m_gfxdecode(*this, finder_base::DUMMY_TAG) { } void vs920a_text_tilemap_device::device_start() { - if(!m_gfxdecode->started()) + if (!m_gfxdecode->started()) throw device_missing_dependencies(); m_vram = make_unique_clear(0x1000/2); @@ -101,16 +101,6 @@ READ16_MEMBER(vs920a_text_tilemap_device::vram_r) } -tilemap_t* vs920a_text_tilemap_device::get_tilemap() -{ - return m_tmap; -} - -void vs920a_text_tilemap_device::set_pal_base(int pal_base) -{ - m_pal_base = pal_base; -} - void vs920a_text_tilemap_device::draw(screen_device &screen, bitmap_ind16& bitmap, const rectangle &cliprect, int priority) { m_tmap->draw(screen, bitmap, cliprect, 0, priority); diff --git a/src/mame/video/vs920a.h b/src/mame/video/vs920a.h index c05e3bf5508..5d53191630f 100644 --- a/src/mame/video/vs920a.h +++ b/src/mame/video/vs920a.h @@ -1,39 +1,43 @@ // license:BSD-3-Clause // copyright-holders:David Haywood +#ifndef MAME_VIDEO_VS920A_H +#define MAME_VIDEO_VS920A_H + +#pragma once class vs920a_text_tilemap_device : public device_t { public: - vs920a_text_tilemap_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); static void static_set_gfxdecode_tag(device_t &device, const char *tag); static void set_gfx_region(device_t &device, int gfxregion); - tilemap_t* m_tmap; - std::unique_ptr m_vram; - uint16_t m_pal_base; + vs920a_text_tilemap_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - TILE_GET_INFO_MEMBER(get_tile_info); - tilemap_t* get_tilemap(); - void set_pal_base(int m_pal_base); + void set_pal_base(int pal_base) { m_pal_base = pal_base; } + void set_transparent_pen(pen_t pen) { m_tmap->set_transparent_pen(pen); } void draw(screen_device &screen, bitmap_ind16& bitmap, const rectangle &cliprect, int priority); DECLARE_WRITE16_MEMBER(vram_w); DECLARE_READ16_MEMBER(vram_r); - protected: virtual void device_start() override; virtual void device_reset() override; - private: + TILE_GET_INFO_MEMBER(get_tile_info); + + tilemap_t* m_tmap; + std::unique_ptr m_vram; + uint16_t m_pal_base; + uint8_t m_gfx_region; required_device m_gfxdecode; }; -extern const device_type VS920A; +DECLARE_DEVICE_TYPE(VS920A, vs920a_text_tilemap_device) #define MCFG_VS920A_GFX_REGION(_region) \ @@ -41,3 +45,5 @@ extern const device_type VS920A; #define MCFG_VS920A_GFXDECODE(_gfxtag) \ vs920a_text_tilemap_device::static_set_gfxdecode_tag(*device, "^" _gfxtag); + +#endif // MAME_VIDEO_VS920A_H diff --git a/src/mame/video/vsystem_gga.cpp b/src/mame/video/vsystem_gga.cpp index 2d57fcdec59..b320f3b6828 100644 --- a/src/mame/video/vsystem_gga.cpp +++ b/src/mame/video/vsystem_gga.cpp @@ -17,14 +17,14 @@ //************************************************************************** // device type definition -const device_type VSYSTEM_GGA = device_creator; +DEFINE_DEVICE_TYPE(VSYSTEM_GGA, vsystem_gga_device, "vsystem_gga", "Video System C7-01 GGA") //------------------------------------------------- // vsystem_gga_device - constructor //------------------------------------------------- vsystem_gga_device::vsystem_gga_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : device_t(mconfig, VSYSTEM_GGA, "Video System C7-01 GGA", tag, owner, clock, "vsystem_gga", __FILE__), + : device_t(mconfig, VSYSTEM_GGA, tag, owner, clock), device_video_interface(mconfig, *this, false), m_write_cb(*this) { diff --git a/src/mame/video/vsystem_gga.h b/src/mame/video/vsystem_gga.h index 25bdafb3f39..e8804972e85 100644 --- a/src/mame/video/vsystem_gga.h +++ b/src/mame/video/vsystem_gga.h @@ -6,11 +6,11 @@ ******************************************************************************/ -#pragma once - #ifndef MAME_VIDEO_VSYSTEM_GGA_H #define MAME_VIDEO_VSYSTEM_GGA_H +#pragma once + //************************************************************************** // CONFIGURATION MACROS //************************************************************************** @@ -52,6 +52,6 @@ private: }; // device type definition -extern const device_type VSYSTEM_GGA; +DECLARE_DEVICE_TYPE(VSYSTEM_GGA, vsystem_gga_device) -#endif +#endif // MAME_VIDEO_VSYSTEM_GGA_H diff --git a/src/mame/video/vsystem_spr.cpp b/src/mame/video/vsystem_spr.cpp index d7ffb4ce830..e271b648fb2 100644 --- a/src/mame/video/vsystem_spr.cpp +++ b/src/mame/video/vsystem_spr.cpp @@ -64,23 +64,21 @@ Abstracts the VS9210 #include "screen.h" -const device_type VSYSTEM_SPR = device_creator; +DEFINE_DEVICE_TYPE(VSYSTEM_SPR, vsystem_spr_device, "vsystem_spr", "Video System Sprites") vsystem_spr_device::vsystem_spr_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, VSYSTEM_SPR, "Video System Sprites", tag, owner, clock, "vsystem_spr", __FILE__) + : device_t(mconfig, VSYSTEM_SPR, tag, owner, clock) + , m_newtilecb(FUNC(vsystem_spr_device::tile_callback_noindirect), this) + , m_xoffs(0) + , m_yoffs(0) + , m_pdraw(false) + , m_pal_mask(0x3f) + , m_gfx_region(-1) + , m_transpen(15) + , m_pal_base(0) + , m_curr_sprite() , m_gfxdecode(*this, finder_base::DUMMY_TAG) { - m_transpen = 15; - m_pal_base = 0; - m_xoffs = 0; - m_yoffs = 0; - m_pdraw = false; - m_gfx_region = -1; - m_pal_mask = 0x3f; - - m_newtilecb = vsystem_tile_indirection_delegate(FUNC(vsystem_spr_device::tile_callback_noindirect), this); - - memset(&m_curr_sprite, 0, sizeof(m_curr_sprite)); } //------------------------------------------------- @@ -137,11 +135,6 @@ void vsystem_spr_device::CG10103_set_pal_base(device_t &device, int pal_base) } -void vsystem_spr_device::set_pal_base(int pal_base) -{ - m_pal_base = pal_base; -} - // static void vsystem_spr_device::set_pal_mask(device_t &device, int pal_mask) { @@ -181,7 +174,7 @@ void vsystem_spr_device::device_reset() { } -void vsystem_spr_device::get_sprite_attributes(uint16_t* ram) +void vsystem_spr_device::sprite_attributes::get(uint16_t const *ram) { /* attr_start + 0x0000 @@ -205,21 +198,21 @@ void vsystem_spr_device::get_sprite_attributes(uint16_t* ram) xxxx xxxx xxxx xxxx map start (lsb) */ - m_curr_sprite.oy = (ram[0] & 0x01ff); - m_curr_sprite.ysize = (ram[0] & 0x0e00) >> 9; - m_curr_sprite.zoomy = (ram[0] & 0xf000) >> 12; + oy = (ram[0] & 0x01ff); + ysize = (ram[0] & 0x0e00) >> 9; + zoomy = (ram[0] & 0xf000) >> 12; - m_curr_sprite.ox = (ram[1] & 0x01ff); - m_curr_sprite.xsize = (ram[1] & 0x0e00) >> 9; - m_curr_sprite.zoomx = (ram[1] & 0xf000) >> 12; + ox = (ram[1] & 0x01ff); + xsize = (ram[1] & 0x0e00) >> 9; + zoomx = (ram[1] & 0xf000) >> 12; - m_curr_sprite.flipx = (ram[2] & 0x4000); - m_curr_sprite.flipy = (ram[2] & 0x8000); - m_curr_sprite.color = (ram[2] & 0x3f00) >> 8; - m_curr_sprite.pri = (ram[2] & 0x3000) >> 12; - m_curr_sprite.map = (ram[2] & 0x0001) << 16; + flipx = (ram[2] & 0x4000); + flipy = (ram[2] & 0x8000); + color = (ram[2] & 0x3f00) >> 8; + pri = (ram[2] & 0x3000) >> 12; + map = (ram[2] & 0x0001) << 16; - m_curr_sprite.map |= (ram[3] & 0xffff); + map |= (ram[3] & 0xffff); } @@ -286,7 +279,7 @@ void vsystem_spr_device::common_sprite_drawgfx(bitmap_ind16 &bitmap, const recta -void vsystem_spr_device::draw_sprites( uint16_t* spriteram, int spriteram_bytes, screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int prihack_mask, int prihack_val ) +void vsystem_spr_device::draw_sprites(uint16_t const *spriteram, int spriteram_bytes, screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int prihack_mask, int prihack_val ) { int offs; int end = 0; @@ -323,7 +316,7 @@ void vsystem_spr_device::draw_sprites( uint16_t* spriteram, int spriteram_bytes, attr_start = 4 * (spriteram[offs] & 0x03ff); - get_sprite_attributes(&spriteram[attr_start]); + m_curr_sprite.get(&spriteram[attr_start]); m_curr_sprite.color &= m_pal_mask; diff --git a/src/mame/video/vsystem_spr.h b/src/mame/video/vsystem_spr.h index 8167cb5a31c..c033b0d6903 100644 --- a/src/mame/video/vsystem_spr.h +++ b/src/mame/video/vsystem_spr.h @@ -4,6 +4,8 @@ #ifndef MAME_VIDEO_VSYSTEM_SPR_H #define MAME_VIDEO_VSYSTEM_SPR_H +#pragma once + typedef device_delegate vsystem_tile_indirection_delegate; @@ -25,19 +27,47 @@ typedef device_delegate vsystem_tile_indirection_delegate; class vsystem_spr_device : public device_t { public: - vsystem_spr_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // static configuration static void static_set_gfxdecode_tag(device_t &device, const char *tag); static void set_offsets(device_t &device, int xoffs, int yoffs); static void set_pdraw(device_t &device, bool pdraw); - static void set_tile_indirect_cb(device_t &device,vsystem_tile_indirection_delegate newtilecb); + static void set_tile_indirect_cb(device_t &device, vsystem_tile_indirection_delegate newtilecb); static void set_gfx_region(device_t &device, int gfx_region); static void CG10103_set_pal_base(device_t &device, int pal_base); static void set_pal_mask(device_t &device, int pal_mask); static void CG10103_set_transpen(device_t &device, int transpen); + vsystem_spr_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + + void draw_sprites(uint16_t const *spriteram, int spriteram_bytes, screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int prihack_mask = -1, int prihack_val = -1 ); + void set_pal_base(int pal_base) { m_pal_base = pal_base; } + +protected: + virtual void device_start() override; + virtual void device_reset() override; + +private: + struct sprite_attributes + { + sprite_attributes() { } + void get(uint16_t const *ram); + + int ox = 0; + int xsize = 0; + int zoomx = 0; + int oy = 0; + int ysize = 0; + int zoomy = 0; + int flipx = 0; + int flipy = 0; + int color = 0; + int pri = 0; + uint32_t map = 0; + }; + uint32_t tile_callback_noindirect(uint32_t tile); + void common_sprite_drawgfx(bitmap_ind16 &bitmap, const rectangle &cliprect, bitmap_ind8 &priority_bitmap); + vsystem_tile_indirection_delegate m_newtilecb; // inline config @@ -49,37 +79,12 @@ public: uint16_t m_pal_base; - struct vsystem_sprite_attributes - { - int ox; - int xsize; - int zoomx; - int oy; - int ysize; - int zoomy; - int flipx; - int flipy; - int color; - int pri; - uint32_t map; - } m_curr_sprite; - - void get_sprite_attributes(uint16_t* ram); - void common_sprite_drawgfx(bitmap_ind16 &bitmap, const rectangle &cliprect, bitmap_ind8 &priority_bitmap); - - void draw_sprites( uint16_t* spriteram, int spriteram_bytes, screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int prihack_mask = -1, int prihack_val = -1 ); - void set_pal_base(int pal_base); + sprite_attributes m_curr_sprite; - -protected: - virtual void device_start() override; - virtual void device_reset() override; - -private: required_device m_gfxdecode; }; -extern const device_type VSYSTEM_SPR; +DECLARE_DEVICE_TYPE(VSYSTEM_SPR, vsystem_spr_device) #endif // MAME_VIDEO_VSYSTEM_SPR_H diff --git a/src/mame/video/vsystem_spr2.cpp b/src/mame/video/vsystem_spr2.cpp index 74712e37021..19e6df502f9 100644 --- a/src/mame/video/vsystem_spr2.cpp +++ b/src/mame/video/vsystem_spr2.cpp @@ -27,17 +27,18 @@ #include "vsystem_spr2.h" -const device_type VSYSTEM_SPR2 = device_creator; +DEFINE_DEVICE_TYPE(VSYSTEM_SPR2, vsystem_spr2_device, "vsystem2_spr", "Video System Sprites Type 2") vsystem_spr2_device::vsystem_spr2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, VSYSTEM_SPR2, "Video System Sprites Type 2", tag, owner, clock, "vsystem_spr2", __FILE__) + : device_t(mconfig, VSYSTEM_SPR2, tag, owner, clock) + , m_newtilecb(vsystem_tile2_indirection_delegate(FUNC(vsystem_spr2_device::tile_callback_noindirect), this)) + , m_pritype(0) // hack until we have better handling + , m_gfx_region(0) + , m_xoffs(0) + , m_yoffs(0) + , m_curr_sprite() , m_gfxdecode(*this, finder_base::DUMMY_TAG) { - m_newtilecb = vsystem_tile2_indirection_delegate(FUNC(vsystem_spr2_device::tile_callback_noindirect), this); - m_pritype = 0; // hack until we have better handling - m_gfx_region = 0; - m_xoffs = 0; - m_yoffs = 0; } //------------------------------------------------- @@ -93,42 +94,42 @@ void vsystem_spr2_device::device_reset() } -int vsystem_spr2_device::get_sprite_attributes(uint16_t* ram) +bool vsystem_spr2_device::sprite_attributes::get(uint16_t const *ram) { // sprite is disabled if (!(ram[2] & 0x0080)) - return 0; + return false; - curr_sprite.oy = (ram[0] & 0x01ff); - curr_sprite.zoomy = (ram[0] & 0xf000) >> 12; + oy = (ram[0] & 0x01ff); + zoomy = (ram[0] & 0xf000) >> 12; - curr_sprite.ox = (ram[1] & 0x01ff); - curr_sprite.zoomx = (ram[1] & 0xf000) >> 12; + ox = (ram[1] & 0x01ff); + zoomx = (ram[1] & 0xf000) >> 12; - curr_sprite.xsize = (ram[2] & 0x0700) >> 8; - curr_sprite.flipx = (ram[2] & 0x0800); + xsize = (ram[2] & 0x0700) >> 8; + flipx = (ram[2] & 0x0800); - curr_sprite.ysize = (ram[2] & 0x7000) >> 12; - curr_sprite.flipy = (ram[2] & 0x8000); + ysize = (ram[2] & 0x7000) >> 12; + flipy = (ram[2] & 0x8000); - curr_sprite.color = (ram[2] & 0x000f); - curr_sprite.pri = (ram[2] & 0x0010); + color = (ram[2] & 0x000f); + pri = (ram[2] & 0x0010); - curr_sprite.map = (ram[3]); + map = (ram[3]); - return 1; + return true; } -void vsystem_spr2_device::handle_xsize_map_inc(void) +void vsystem_spr2_device::sprite_attributes::handle_xsize_map_inc() { - if (curr_sprite.xsize == 2) curr_sprite.map += 1; - if (curr_sprite.xsize == 4) curr_sprite.map += 3; - if (curr_sprite.xsize == 5) curr_sprite.map += 2; - if (curr_sprite.xsize == 6) curr_sprite.map += 1; + if (xsize == 2) map += 1; + if (xsize == 4) map += 3; + if (xsize == 5) map += 2; + if (xsize == 6) map += 1; } -template -void vsystem_spr2_device::turbofrc_draw_sprites_common( uint16_t* spriteram3, int spriteram3_bytes, int spritepalettebank, _BitmapClass &bitmap, const rectangle &cliprect, bitmap_ind8 &priority_bitmap, int pri_param ) +template +void vsystem_spr2_device::turbofrc_draw_sprites_common(uint16_t const *spriteram3, int spriteram3_bytes, int spritepalettebank, BitmapClass &bitmap, const rectangle &cliprect, bitmap_ind8 &priority_bitmap, int pri_param ) { int attr_start, first; first = 4 * spriteram3[0x1fe]; @@ -156,30 +157,30 @@ void vsystem_spr2_device::turbofrc_draw_sprites_common( uint16_t* spriteram3, i { int x, y; - if (!get_sprite_attributes(&spriteram3[attr_start])) + if (!m_curr_sprite.get(&spriteram3[attr_start])) continue; // pipedrm - curr_sprite.ox += m_xoffs; - curr_sprite.oy += m_yoffs; + m_curr_sprite.ox += m_xoffs; + m_curr_sprite.oy += m_yoffs; int usepri = 0; // these are still calling the function multiple times to filter out priorities, even if some are also using pdrawgfx(!) if (m_pritype == 0 || m_pritype == 1 || m_pritype == 3) // turbo force, spinlbrk, pipedrm etc. { - if ((curr_sprite.pri>>4) != pri_param) + if ((m_curr_sprite.pri>>4) != pri_param) continue; } if (m_pritype == 0) // turbo force etc. { - usepri = curr_sprite.pri ? 0 : 2; + usepri = m_curr_sprite.pri ? 0 : 2; } else if (m_pritype == 1) // spinlbrk { - usepri = curr_sprite.pri ? 2 : 0; + usepri = m_curr_sprite.pri ? 2 : 0; } else if (m_pritype == 2) // f1gp { @@ -188,55 +189,59 @@ void vsystem_spr2_device::turbofrc_draw_sprites_common( uint16_t* spriteram3, i - curr_sprite.color += 16 * spritepalettebank; + m_curr_sprite.color += 16 * spritepalettebank; - curr_sprite.zoomx = 32 - curr_sprite.zoomx; - curr_sprite.zoomy = 32 - curr_sprite.zoomy; + m_curr_sprite.zoomx = 32 - m_curr_sprite.zoomx; + m_curr_sprite.zoomy = 32 - m_curr_sprite.zoomy; - for (y = 0; y <= curr_sprite.ysize; y++) + for (y = 0; y <= m_curr_sprite.ysize; y++) { int sx, sy; - if (curr_sprite.flipy) - sy = ((curr_sprite.oy + curr_sprite.zoomy * (curr_sprite.ysize - y)/2 + 16) & 0x1ff) - 16; + if (m_curr_sprite.flipy) + sy = ((m_curr_sprite.oy + m_curr_sprite.zoomy * (m_curr_sprite.ysize - y)/2 + 16) & 0x1ff) - 16; else - sy = ((curr_sprite.oy + curr_sprite.zoomy * y / 2 + 16) & 0x1ff) - 16; + sy = ((m_curr_sprite.oy + m_curr_sprite.zoomy * y / 2 + 16) & 0x1ff) - 16; - for (x = 0; x <= curr_sprite.xsize; x++) + for (x = 0; x <= m_curr_sprite.xsize; x++) { int curr; - if (curr_sprite.flipx) - sx = ((curr_sprite.ox + curr_sprite.zoomx * (curr_sprite.xsize - x) / 2 + 16) & 0x1ff) - 16; + if (m_curr_sprite.flipx) + sx = ((m_curr_sprite.ox + m_curr_sprite.zoomx * (m_curr_sprite.xsize - x) / 2 + 16) & 0x1ff) - 16; else - sx = ((curr_sprite.ox + curr_sprite.zoomx * x / 2 + 16) & 0x1ff) - 16; + sx = ((m_curr_sprite.ox + m_curr_sprite.zoomx * x / 2 + 16) & 0x1ff) - 16; - curr = m_newtilecb(curr_sprite.map++); + curr = m_newtilecb(m_curr_sprite.map++); if (m_pritype == 0 || m_pritype == 1 || m_pritype == 2) // pdrawgfx cases { - m_gfxdecode->gfx(m_gfx_region)->prio_zoom_transpen(bitmap,cliprect, curr, curr_sprite.color, curr_sprite.flipx,curr_sprite.flipy, sx-0x000,sy-0x000, curr_sprite.zoomx << 11, curr_sprite.zoomy << 11, priority_bitmap,usepri,15); - m_gfxdecode->gfx(m_gfx_region)->prio_zoom_transpen(bitmap,cliprect, curr, curr_sprite.color, curr_sprite.flipx,curr_sprite.flipy, sx-0x200,sy-0x000, curr_sprite.zoomx << 11, curr_sprite.zoomy << 11, priority_bitmap,usepri,15); - m_gfxdecode->gfx(m_gfx_region)->prio_zoom_transpen(bitmap,cliprect, curr, curr_sprite.color, curr_sprite.flipx,curr_sprite.flipy, sx-0x000,sy-0x200, curr_sprite.zoomx << 11, curr_sprite.zoomy << 11, priority_bitmap,usepri,15); - m_gfxdecode->gfx(m_gfx_region)->prio_zoom_transpen(bitmap,cliprect, curr, curr_sprite.color, curr_sprite.flipx,curr_sprite.flipy, sx-0x200,sy-0x200, curr_sprite.zoomx << 11, curr_sprite.zoomy << 11, priority_bitmap,usepri,15); + m_gfxdecode->gfx(m_gfx_region)->prio_zoom_transpen(bitmap,cliprect, curr, m_curr_sprite.color, m_curr_sprite.flipx,m_curr_sprite.flipy, sx-0x000,sy-0x000, m_curr_sprite.zoomx << 11, m_curr_sprite.zoomy << 11, priority_bitmap,usepri,15); + m_gfxdecode->gfx(m_gfx_region)->prio_zoom_transpen(bitmap,cliprect, curr, m_curr_sprite.color, m_curr_sprite.flipx,m_curr_sprite.flipy, sx-0x200,sy-0x000, m_curr_sprite.zoomx << 11, m_curr_sprite.zoomy << 11, priority_bitmap,usepri,15); + m_gfxdecode->gfx(m_gfx_region)->prio_zoom_transpen(bitmap,cliprect, curr, m_curr_sprite.color, m_curr_sprite.flipx,m_curr_sprite.flipy, sx-0x000,sy-0x200, m_curr_sprite.zoomx << 11, m_curr_sprite.zoomy << 11, priority_bitmap,usepri,15); + m_gfxdecode->gfx(m_gfx_region)->prio_zoom_transpen(bitmap,cliprect, curr, m_curr_sprite.color, m_curr_sprite.flipx,m_curr_sprite.flipy, sx-0x200,sy-0x200, m_curr_sprite.zoomx << 11, m_curr_sprite.zoomy << 11, priority_bitmap,usepri,15); } else // drawgfx cases (welltris, pipedrm) { - m_gfxdecode->gfx(m_gfx_region)->zoom_transpen(bitmap,cliprect, curr, curr_sprite.color, curr_sprite.flipx,curr_sprite.flipy, sx-0x000,sy-0x000, curr_sprite.zoomx << 11, curr_sprite.zoomy << 11,15); - m_gfxdecode->gfx(m_gfx_region)->zoom_transpen(bitmap,cliprect, curr, curr_sprite.color, curr_sprite.flipx,curr_sprite.flipy, sx-0x200,sy-0x000, curr_sprite.zoomx << 11, curr_sprite.zoomy << 11,15); - m_gfxdecode->gfx(m_gfx_region)->zoom_transpen(bitmap,cliprect, curr, curr_sprite.color, curr_sprite.flipx,curr_sprite.flipy, sx-0x000,sy-0x200, curr_sprite.zoomx << 11, curr_sprite.zoomy << 11,15); - m_gfxdecode->gfx(m_gfx_region)->zoom_transpen(bitmap,cliprect, curr, curr_sprite.color, curr_sprite.flipx,curr_sprite.flipy, sx-0x200,sy-0x200, curr_sprite.zoomx << 11, curr_sprite.zoomy << 11,15); + m_gfxdecode->gfx(m_gfx_region)->zoom_transpen(bitmap,cliprect, curr, m_curr_sprite.color, m_curr_sprite.flipx,m_curr_sprite.flipy, sx-0x000,sy-0x000, m_curr_sprite.zoomx << 11, m_curr_sprite.zoomy << 11,15); + m_gfxdecode->gfx(m_gfx_region)->zoom_transpen(bitmap,cliprect, curr, m_curr_sprite.color, m_curr_sprite.flipx,m_curr_sprite.flipy, sx-0x200,sy-0x000, m_curr_sprite.zoomx << 11, m_curr_sprite.zoomy << 11,15); + m_gfxdecode->gfx(m_gfx_region)->zoom_transpen(bitmap,cliprect, curr, m_curr_sprite.color, m_curr_sprite.flipx,m_curr_sprite.flipy, sx-0x000,sy-0x200, m_curr_sprite.zoomx << 11, m_curr_sprite.zoomy << 11,15); + m_gfxdecode->gfx(m_gfx_region)->zoom_transpen(bitmap,cliprect, curr, m_curr_sprite.color, m_curr_sprite.flipx,m_curr_sprite.flipy, sx-0x200,sy-0x200, m_curr_sprite.zoomx << 11, m_curr_sprite.zoomy << 11,15); } } - handle_xsize_map_inc(); + m_curr_sprite.handle_xsize_map_inc(); } } } -void vsystem_spr2_device::turbofrc_draw_sprites( uint16_t* spriteram3, int spriteram3_bytes, int spritepalettebank, bitmap_ind16 &bitmap, const rectangle &cliprect, bitmap_ind8 &priority_bitmap, int pri_param ) -{ turbofrc_draw_sprites_common( spriteram3, spriteram3_bytes, spritepalettebank, bitmap, cliprect, priority_bitmap, pri_param ); } +void vsystem_spr2_device::turbofrc_draw_sprites(uint16_t const *spriteram3, int spriteram3_bytes, int spritepalettebank, bitmap_ind16 &bitmap, const rectangle &cliprect, bitmap_ind8 &priority_bitmap, int pri_param ) +{ + turbofrc_draw_sprites_common( spriteram3, spriteram3_bytes, spritepalettebank, bitmap, cliprect, priority_bitmap, pri_param ); +} -void vsystem_spr2_device::turbofrc_draw_sprites( uint16_t* spriteram3, int spriteram3_bytes, int spritepalettebank, bitmap_rgb32 &bitmap, const rectangle &cliprect, bitmap_ind8 &priority_bitmap, int pri_param ) -{ turbofrc_draw_sprites_common( spriteram3, spriteram3_bytes, spritepalettebank, bitmap, cliprect, priority_bitmap, pri_param ); } +void vsystem_spr2_device::turbofrc_draw_sprites(uint16_t const *spriteram3, int spriteram3_bytes, int spritepalettebank, bitmap_rgb32 &bitmap, const rectangle &cliprect, bitmap_ind8 &priority_bitmap, int pri_param ) +{ + turbofrc_draw_sprites_common( spriteram3, spriteram3_bytes, spritepalettebank, bitmap, cliprect, priority_bitmap, pri_param ); +} diff --git a/src/mame/video/vsystem_spr2.h b/src/mame/video/vsystem_spr2.h index 646abf8d0c7..2ab7b87fffa 100644 --- a/src/mame/video/vsystem_spr2.h +++ b/src/mame/video/vsystem_spr2.h @@ -1,6 +1,8 @@ // license:BSD-3-Clause // copyright-holders:Nicola Salmoria, David Haywood // Video System Sprites +#ifndef MAME_VIDEO_VSYSTEM_SPR2_H +#define MAME_VIDEO_VSYSTEM_SPR2_H typedef device_delegate vsystem_tile2_indirection_delegate; @@ -18,54 +20,58 @@ typedef device_delegate vsystem_tile2_indirection_delegate; class vsystem_spr2_device : public device_t { public: - vsystem_spr2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - - // static configuration + // static configuration static void static_set_gfxdecode_tag(device_t &device, const char *tag); - static void set_tile_indirect_cb(device_t &device,vsystem_tile2_indirection_delegate newtilecb); + static void set_tile_indirect_cb(device_t &device, vsystem_tile2_indirection_delegate newtilecb); static void set_pritype(device_t &device, int pritype); static void set_gfx_region(device_t &device, int gfx_region); static void set_offsets(device_t &device, int xoffs, int yoffs); - struct vsystem_sprite_attributes - { - int ox; - int xsize; - int zoomx; - int oy; - int ysize; - int zoomy; - int flipx; - int flipy; - int color; - int pri; - uint32_t map; - } curr_sprite; - - int get_sprite_attributes(uint16_t* ram); - void handle_xsize_map_inc(void); - vsystem_tile2_indirection_delegate m_newtilecb; - uint32_t tile_callback_noindirect(uint32_t tile); - int m_pritype; - int m_gfx_region; - int m_xoffs, m_yoffs; - - template - void turbofrc_draw_sprites_common( uint16_t* spriteram3, int spriteram3_bytes, int spritepalettebank, _BitmapClass &bitmap, const rectangle &cliprect, bitmap_ind8 &priority_bitmap, int pri_param ); - - void turbofrc_draw_sprites( uint16_t* spriteram3, int spriteram3_bytes, int spritepalettebank, bitmap_ind16 &bitmap, const rectangle &cliprect, bitmap_ind8 &priority_bitmap, int pri_param ); - void turbofrc_draw_sprites( uint16_t* spriteram3, int spriteram3_bytes, int spritepalettebank, bitmap_rgb32 &bitmap, const rectangle &cliprect, bitmap_ind8 &priority_bitmap, int pri_param ); - + vsystem_spr2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + void turbofrc_draw_sprites(uint16_t const *spriteram3, int spriteram3_bytes, int spritepalettebank, bitmap_ind16 &bitmap, const rectangle &cliprect, bitmap_ind8 &priority_bitmap, int pri_param ); + void turbofrc_draw_sprites(uint16_t const *spriteram3, int spriteram3_bytes, int spritepalettebank, bitmap_rgb32 &bitmap, const rectangle &cliprect, bitmap_ind8 &priority_bitmap, int pri_param ); protected: virtual void device_start() override; virtual void device_reset() override; - private: + struct sprite_attributes + { + sprite_attributes() { } + bool get(uint16_t const *ram); + void handle_xsize_map_inc(); + + int ox = 0; + int xsize = 0; + int zoomx = 0; + int oy = 0; + int ysize = 0; + int zoomy = 0; + int flipx = 0; + int flipy = 0; + int color = 0; + int pri = 0; + uint32_t map = 0; + }; + + uint32_t tile_callback_noindirect(uint32_t tile); + + template + void turbofrc_draw_sprites_common(uint16_t const *spriteram3, int spriteram3_bytes, int spritepalettebank, BitmapClass &bitmap, const rectangle &cliprect, bitmap_ind8 &priority_bitmap, int pri_param ); + + vsystem_tile2_indirection_delegate m_newtilecb; + int m_pritype; + int m_gfx_region; + int m_xoffs, m_yoffs; + + sprite_attributes m_curr_sprite; + required_device m_gfxdecode; }; -extern const device_type VSYSTEM_SPR2; +DECLARE_DEVICE_TYPE(VSYSTEM_SPR2, vsystem_spr2_device) + +#endif // MAME_VIDEO_VSYSTEM_SPR2_H diff --git a/src/mame/video/vtvideo.cpp b/src/mame/video/vtvideo.cpp index 4e3114a5a02..79b9019987c 100644 --- a/src/mame/video/vtvideo.cpp +++ b/src/mame/video/vtvideo.cpp @@ -70,12 +70,12 @@ PARAMETERS #define LOG(x) do { if (VERBOSE) logerror x; } while (0) -const device_type VT100_VIDEO = device_creator; -const device_type RAINBOW_VIDEO = device_creator; +DEFINE_DEVICE_TYPE(VT100_VIDEO, vt100_video_device, "vt100_video", "VT100 Video") +DEFINE_DEVICE_TYPE(RAINBOW_VIDEO, rainbow_video_device, "rainbow_video", "Rainbow Video") -vt100_video_device::vt100_video_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) - : device_t(mconfig, type, name, tag, owner, clock, shortname, source) +vt100_video_device::vt100_video_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) , device_video_interface(mconfig, *this) , m_read_ram(*this) , m_write_clear_video_interrupt(*this) @@ -86,13 +86,13 @@ vt100_video_device::vt100_video_device(const machine_config &mconfig, device_typ vt100_video_device::vt100_video_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : vt100_video_device(mconfig, VT100_VIDEO, "VT100 Video", tag, owner, clock, "vt100_video", __FILE__) + : vt100_video_device(mconfig, VT100_VIDEO, tag, owner, clock) { } rainbow_video_device::rainbow_video_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : vt100_video_device(mconfig, RAINBOW_VIDEO, "Rainbow Video", tag, owner, clock, "rainbow_video", __FILE__) + : vt100_video_device(mconfig, RAINBOW_VIDEO, tag, owner, clock) { } diff --git a/src/mame/video/vtvideo.h b/src/mame/video/vtvideo.h index 9a2e7e4c6ad..f753e2cb4fc 100644 --- a/src/mame/video/vtvideo.h +++ b/src/mame/video/vtvideo.h @@ -9,20 +9,20 @@ DEC VT Terminal video emulation **********************************************************************/ -#ifndef __VT_VIDEO__ -#define __VT_VIDEO__ +#ifndef MAME_VIDEO_VTVIDEO_H +#define MAME_VIDEO_VTVIDEO_H + +#pragma once class vt100_video_device : public device_t, public device_video_interface { public: - vt100_video_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); vt100_video_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - ~vt100_video_device() {} - template static devcb_base &set_ram_rd_callback(device_t &device, _Object object) { return downcast(device).m_read_ram.set_callback(object); } - template static devcb_base &set_clear_video_irq_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_clear_video_interrupt.set_callback(object); } + template static devcb_base &set_ram_rd_callback(device_t &device, Object &&cb) { return downcast(device).m_read_ram.set_callback(std::forward(cb)); } + template static devcb_base &set_clear_video_irq_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_clear_video_interrupt.set_callback(std::forward(cb)); } static void set_chargen_tag(device_t &device, const char *tag) { downcast(device).m_char_rom.set_tag(tag); } @@ -33,6 +33,8 @@ public: virtual void video_update(bitmap_ind16 &bitmap, const rectangle &cliprect); protected: + vt100_video_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -93,8 +95,8 @@ protected: virtual machine_config_constructor device_mconfig_additions() const override; }; -extern const device_type VT100_VIDEO; -extern const device_type RAINBOW_VIDEO; +DECLARE_DEVICE_TYPE(VT100_VIDEO, vt100_video_device) +DECLARE_DEVICE_TYPE(RAINBOW_VIDEO, rainbow_video_device) #define MCFG_VT_SET_SCREEN MCFG_VIDEO_SET_SCREEN @@ -108,4 +110,4 @@ extern const device_type RAINBOW_VIDEO; #define MCFG_VT_VIDEO_CLEAR_VIDEO_INTERRUPT_CALLBACK(_write) \ devcb = &vt100_video_device::set_clear_video_irq_wr_callback(*device, DEVCB_##_write); -#endif +#endif // MAME_VIDEO_VTVIDEO_H diff --git a/src/mame/video/wpc_dmd.cpp b/src/mame/video/wpc_dmd.cpp index fc6338f3301..755c4b7fbc4 100644 --- a/src/mame/video/wpc_dmd.cpp +++ b/src/mame/video/wpc_dmd.cpp @@ -5,7 +5,7 @@ #include "rendlay.h" #include "screen.h" -const device_type WPC_DMD = device_creator; +DEFINE_DEVICE_TYPE(WPC_DMD, wpc_dmd_device, "wpc_dmd", "Williams Pinball Controller Dot Matrix Display") DEVICE_ADDRESS_MAP_START( registers, 8, wpc_dmd_device ) AM_RANGE(0, 0) AM_WRITE(bank2_w) @@ -32,7 +32,7 @@ MACHINE_CONFIG_END wpc_dmd_device::wpc_dmd_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, WPC_DMD, "Williams Pinball Controller Dot Matrix Display", tag, owner, clock, "wpc_dmd", __FILE__), + device_t(mconfig, WPC_DMD, tag, owner, clock), scanline_cb(*this), dmd0(*this, ":dmd0"), dmd2(*this, ":dmd2"), diff --git a/src/mame/video/wpc_dmd.h b/src/mame/video/wpc_dmd.h index e5c51fd04af..6fc3f1b57e7 100644 --- a/src/mame/video/wpc_dmd.h +++ b/src/mame/video/wpc_dmd.h @@ -5,8 +5,8 @@ // A 128x32 plasma display with 16 pages and refreshed at 240Hz (for PWM luminosity control) -#ifndef WPC_DMD_H -#define WPC_DMD_H +#ifndef MAME_VIDEO_WPC_DMD_H +#define MAME_VIDEO_WPC_DMD_H #define MCFG_WPC_DMD_ADD( _tag, _scanline_cb ) \ MCFG_DEVICE_ADD( _tag, WPC_DMD, 0 ) \ @@ -32,7 +32,7 @@ public: TIMER_DEVICE_CALLBACK_MEMBER(scanline_timer); uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); - template static devcb_base &set_scanline_cb(device_t &device, _Object object) { return downcast(device).scanline_cb.set_callback(object); } + template static devcb_base &set_scanline_cb(device_t &device, Object &&cb) { return downcast(device).scanline_cb.set_callback(std::forward(cb)); } protected: devcb_write_line scanline_cb; @@ -46,6 +46,6 @@ protected: virtual machine_config_constructor device_mconfig_additions() const override; }; -extern const device_type WPC_DMD; +DECLARE_DEVICE_TYPE(WPC_DMD, wpc_dmd_device) -#endif +#endif // MAME_VIDEO_WPC_DMD_H diff --git a/src/mame/video/wswan.cpp b/src/mame/video/wswan.cpp index 4ac72c2e596..cbfe7219f2f 100644 --- a/src/mame/video/wswan.cpp +++ b/src/mame/video/wswan.cpp @@ -17,12 +17,12 @@ #include "wswan.h" #include "screen.h" -const device_type WSWAN_VIDEO = device_creator; +DEFINE_DEVICE_TYPE(WSWAN_VIDEO, wswan_video_device, "wswan_video", "Bandai WonderSwam VDP") wswan_video_device::wswan_video_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, WSWAN_VIDEO, "Bandai WonderSwan VDP", tag, owner, clock, "wswan_video", __FILE__), - m_vdp_type(VDP_TYPE_WSWAN) + : device_t(mconfig, WSWAN_VIDEO, tag, owner, clock) + , m_vdp_type(VDP_TYPE_WSWAN) { } diff --git a/src/mame/video/wswan.h b/src/mame/video/wswan.h index 8a6b550b3ca..e6735ba768f 100644 --- a/src/mame/video/wswan.h +++ b/src/mame/video/wswan.h @@ -11,8 +11,10 @@ **********************************************************************/ -#ifndef __WSWAN_VIDEO__ -#define __WSWAN_VIDEO__ +#ifndef MAME_VIDEO_WSWAN_H +#define MAME_VIDEO_WSWAN_H + +#pragma once enum @@ -142,7 +144,7 @@ protected: static const uint8_t WSWAN_VIDEO_IFLAG_HBLTMR = 0x80; }; -extern const device_type WSWAN_VIDEO; +DECLARE_DEVICE_TYPE(WSWAN_VIDEO, wswan_video_device) -#endif +#endif // MAME_VIDEO_WSWAN_H diff --git a/src/mame/video/xexex.cpp b/src/mame/video/xexex.cpp index 57d154484d2..3ce65d86128 100644 --- a/src/mame/video/xexex.cpp +++ b/src/mame/video/xexex.cpp @@ -43,12 +43,12 @@ void xexex_state::video_start() uint32_t xexex_state::screen_update_xexex(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - static const int K053251_CI[4] = { K053251_CI1, K053251_CI2, K053251_CI3, K053251_CI4 }; + static const int K053251_CI[4] = { k053251_device::CI1, k053251_device::CI2, k053251_device::CI3, k053251_device::CI4 }; int layer[4]; int bg_colorbase, new_colorbase, plane, alpha; - m_sprite_colorbase = m_k053251->get_palette_index(K053251_CI0); - bg_colorbase = m_k053251->get_palette_index(K053251_CI1); + m_sprite_colorbase = m_k053251->get_palette_index(k053251_device::CI0); + bg_colorbase = m_k053251->get_palette_index(k053251_device::CI1); m_layer_colorbase[0] = 0x70; for (plane = 1; plane < 4; plane++) @@ -62,13 +62,13 @@ uint32_t xexex_state::screen_update_xexex(screen_device &screen, bitmap_rgb32 &b } layer[0] = 1; - m_layerpri[0] = m_k053251->get_priority(K053251_CI2); + m_layerpri[0] = m_k053251->get_priority(k053251_device::CI2); layer[1] = 2; - m_layerpri[1] = m_k053251->get_priority(K053251_CI3); + m_layerpri[1] = m_k053251->get_priority(k053251_device::CI3); layer[2] = 3; - m_layerpri[2] = m_k053251->get_priority(K053251_CI4); + m_layerpri[2] = m_k053251->get_priority(k053251_device::CI4); layer[3] = -1; - m_layerpri[3] = m_k053251->get_priority(K053251_CI1); + m_layerpri[3] = m_k053251->get_priority(k053251_device::CI1); konami_sortlayers4(layer, m_layerpri); diff --git a/src/mame/video/xmen.cpp b/src/mame/video/xmen.cpp index fed6ed11011..e3592f4f678 100644 --- a/src/mame/video/xmen.cpp +++ b/src/mame/video/xmen.cpp @@ -71,20 +71,20 @@ uint32_t xmen_state::screen_update_xmen(screen_device &screen, bitmap_ind16 &bit { int layer[3], bg_colorbase; - bg_colorbase = m_k053251->get_palette_index(K053251_CI4); - m_sprite_colorbase = m_k053251->get_palette_index(K053251_CI1); - m_layer_colorbase[0] = m_k053251->get_palette_index(K053251_CI3); - m_layer_colorbase[1] = m_k053251->get_palette_index(K053251_CI0); - m_layer_colorbase[2] = m_k053251->get_palette_index(K053251_CI2); + bg_colorbase = m_k053251->get_palette_index(k053251_device::CI4); + m_sprite_colorbase = m_k053251->get_palette_index(k053251_device::CI1); + m_layer_colorbase[0] = m_k053251->get_palette_index(k053251_device::CI3); + m_layer_colorbase[1] = m_k053251->get_palette_index(k053251_device::CI0); + m_layer_colorbase[2] = m_k053251->get_palette_index(k053251_device::CI2); m_k052109->tilemap_update(); layer[0] = 0; - m_layerpri[0] = m_k053251->get_priority(K053251_CI3); + m_layerpri[0] = m_k053251->get_priority(k053251_device::CI3); layer[1] = 1; - m_layerpri[1] = m_k053251->get_priority(K053251_CI0); + m_layerpri[1] = m_k053251->get_priority(k053251_device::CI0); layer[2] = 2; - m_layerpri[2] = m_k053251->get_priority(K053251_CI2); + m_layerpri[2] = m_k053251->get_priority(k053251_device::CI2); konami_sortlayers3(layer, m_layerpri); @@ -191,20 +191,20 @@ WRITE_LINE_MEMBER(xmen_state::screen_vblank_xmen6p) } - bg_colorbase = m_k053251->get_palette_index(K053251_CI4); - m_sprite_colorbase = m_k053251->get_palette_index(K053251_CI1); - m_layer_colorbase[0] = m_k053251->get_palette_index(K053251_CI3); - m_layer_colorbase[1] = m_k053251->get_palette_index(K053251_CI0); - m_layer_colorbase[2] = m_k053251->get_palette_index(K053251_CI2); + bg_colorbase = m_k053251->get_palette_index(k053251_device::CI4); + m_sprite_colorbase = m_k053251->get_palette_index(k053251_device::CI1); + m_layer_colorbase[0] = m_k053251->get_palette_index(k053251_device::CI3); + m_layer_colorbase[1] = m_k053251->get_palette_index(k053251_device::CI0); + m_layer_colorbase[2] = m_k053251->get_palette_index(k053251_device::CI2); m_k052109->tilemap_update(); layer[0] = 0; - m_layerpri[0] = m_k053251->get_priority(K053251_CI3); + m_layerpri[0] = m_k053251->get_priority(k053251_device::CI3); layer[1] = 1; - m_layerpri[1] = m_k053251->get_priority(K053251_CI0); + m_layerpri[1] = m_k053251->get_priority(k053251_device::CI0); layer[2] = 2; - m_layerpri[2] = m_k053251->get_priority(K053251_CI2); + m_layerpri[2] = m_k053251->get_priority(k053251_device::CI2); konami_sortlayers3(layer, m_layerpri); diff --git a/src/mame/video/ygv608.cpp b/src/mame/video/ygv608.cpp index 0366048e3c6..2b622eaf786 100644 --- a/src/mame/video/ygv608.cpp +++ b/src/mame/video/ygv608.cpp @@ -36,6 +36,187 @@ #include "screen.h" +// Fundamental constants +enum { + p5_rwai = 0x80, // increment register select on reads + p5_rrai = 0x40, // increment register select on writes + p5_rn = 0x3f, // register select + +// p6_res6 = 0xe0, + p6_fp = 0x10, // position detection flag + p6_fv = 0x08, // vertical border interval flag + p6_fc = 0x04, + p6_hb = 0x02, // horizontal blanking flag? + p6_vb = 0x01, // vertical blanking flag? + +// p7_res7 = 0xc0, + p7_tr = 0x20, + p7_tc = 0x10, + p7_tl = 0x08, + p7_ts = 0x04, + p7_tn = 0x02, + p7_sr = 0x01, + + r0_pnya = 0x80, // if set, increment name table address after reads + r0_b_a = 0x40, // if set, we're reading from the second plane of tile data + r0_pny = 0x3f, // y-coordinate of current name table address + + r1_pnxa = 0x80, // if set, increment name table address after read + r1_res1 = 0x40, + r1_pnx = 0x3f, // x-coordinate of current name table address + + r2_cpaw = 0x80, // if set, increment color palette address after writes + r2_cpar = 0x40, // if set, increment color palette address after reads +// r2_res2 = 0x20, + r2_b_a = 0x10, + r2_scaw = 0x08, // if set, increment scroll address after writes + r2_scar = 0x04, // if set, increment scroll address after reads + r2_saaw = 0x02, // if set, increment sprite address after writes + r2_saar = 0x01, // if set, increment sprite address after reads + + r7_dckm = 0x80, + r7_flip = 0x40, +// r7_res7 = 0x30, + r7_zron = 0x08, // if set, roz plane is active + r7_md = 0x06, // determines 1 of 4 possible video modes + r7_dspe = 0x01, // if set, display is enabled + + r8_hds = 0xc0, + r8_vds = 0x30, + r8_rlrt = 0x08, + r8_rlsc = 0x04, +// r8_res8 = 0x02, + r8_pgs = 0x01, + + r9_pts = 0xc0, + r9_slh = 0x38, + r9_slv = 0x07, + + r10_spa = 0xc0, // misc global sprite attributes (x/y flip or sprite size) + r10_spas = 0x20, // if set, spa controls sprite flip, if clear, controls sprite size + r10_sprd = 0x10, // if set, sprites are disabled + r10_mcb = 0x0c, + r10_mca = 0x03, + + r11_scm = 0xc0, + r11_yse = 0x20, + r11_cbdr = 0x10, + r11_prm = 0x0c, // determines one of 4 priority settings + r11_ctpb = 0x02, + r11_ctpa = 0x01, + + r12_spf = 0xc0, + r12_bpf = 0x38, + r12_apf = 0x07, + +// r14_res14 = 0xfc, + r14_iep = 0x02, // if set, generate IRQ on position detection (?) + r14_iev = 0x01, // if set, generate IRQ on vertical border interval draw + + // these 4 are currently unimplemented by us + r16_fpm = 0x80, + r16_il8 = 0x40, + r16_res16 = 0x20, + r16_ih = 0x1f, + + r17_ba1 = 0x70, + r17_ba0 = 0x07, + r18_ba3 = 0x70, + r18_ba2 = 0x07, + r19_ba5 = 0x70, + r19_ba4 = 0x07, + r20_ba7 = 0x70, + r20_ba6 = 0x07, + r21_bb1 = 0x70, + r21_bb0 = 0x07, + r22_bb3 = 0x70, + r22_bb2 = 0x07, + r23_bb5 = 0x70, + r23_bb4 = 0x07, + r24_bb7 = 0x70, + r24_bb6 = 0x07, + + r39_hsw = 0xe0, + r39_hbw = 0x1f, + + r40_htl89 = 0xc0, + r40_hdw = 0x3f, + + r43_vsw = 0xe0, + r43_vbw = 0x1f, + + r44_vsls = 0x40, + r44_vdw = 0x1f, + + r45_vtl8 = 0x80, + r45_tres = 0x40, + r45_vdp = 0x1f +}; + + +// R#7(md) +#define MD_2PLANE_8BIT 0x00 +#define MD_2PLANE_16BIT 0x02 +#define MD_1PLANE_16COLOUR 0x04 +#define MD_1PLANE_256COLOUR 0x06 +#define MD_1PLANE (MD_1PLANE_16COLOUR & MD_1PLANE_256COLOUR) +#define MD_SHIFT 0 +#define MD_MASK 0x06 + +// R#8 +#define PGS_64X32 0x0 +#define PGS_32X64 0x1 +#define PGS_SHIFT 0 +#define PGS_MASK 0x01 + +// R#9 +#define SLV_SCREEN 0x00 +#define SLV_8 0x04 +#define SLV_16 0x05 +#define SLV_32 0x06 +#define SLV_64 0x07 +#define SLH_SCREEN 0x00 +#define SLH_8 0x04 +#define SLH_16 0x05 +#define SLH_32 0x06 +#define SLH_64 0x07 +#define PTS_8X8 0x00 +#define PTS_16X16 0x40 +#define PTS_32X32 0x80 +#define PTS_64X64 0xc0 +#define PTS_SHIFT 0 +#define PTS_MASK 0xc0 + +// R#10 +#define SPAS_SPRITESIZE 0 +#define SPAS_SPRITEREVERSE 1 + +// R#10(spas)=1 +#define SZ_8X8 0x00 +#define SZ_16X16 0x01 +#define SZ_32X32 0x02 +#define SZ_64X64 0x03 + +// R#10(spas)=0 +#define SZ_NOREVERSE 0x00 +#define SZ_VERTREVERSE 0x01 +#define SZ_HORIZREVERSE 0x02 +#define SZ_BOTHREVERSE 0x03 + +// R#11(prm) +#define PRM_SABDEX 0x00 +#define PRM_ASBDEX 0x04 +#define PRM_SEABDX 0x08 +#define PRM_ASEBDX 0x0c + +// R#40 +#define HDW_SHIFT 0 +#define HDW_MASK 0x3f + +// R#44 +#define VDW_SHIFT 0 +#define VDW_MASK 0x3f + #define _ENABLE_SPRITES #define _ENABLE_SCROLLX #define _ENABLE_SCROLLY @@ -149,11 +330,11 @@ static GFXDECODE_START( ygv608 ) GFXDECODE_END -const device_type YGV608 = device_creator; +DEFINE_DEVICE_TYPE(YGV608, ygv608_device, "ygv608", "YGV608 VDP") ygv608_device::ygv608_device( const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock ) - : device_t(mconfig, YGV608, "YGV608 VDP", tag, owner, clock, "ygv608", __FILE__), - device_gfx_interface(mconfig, *this, GFXDECODE_NAME(ygv608)) + : device_t(mconfig, YGV608, tag, owner, clock) + , device_gfx_interface(mconfig, *this, GFXDECODE_NAME(ygv608)) { } @@ -667,8 +848,8 @@ void ygv608_device::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect /* draw sprites */ spriteClip &= cliprect; - sa = &m_sprite_attribute_table.s[YGV608_MAX_SPRITES-1]; - for( i=0; i>2) - -// R#7(md) -#define MD_2PLANE_8BIT 0x00 -#define MD_2PLANE_16BIT 0x02 -#define MD_1PLANE_16COLOUR 0x04 -#define MD_1PLANE_256COLOUR 0x06 -#define MD_1PLANE (MD_1PLANE_16COLOUR & MD_1PLANE_256COLOUR) -#define MD_SHIFT 0 -#define MD_MASK 0x06 - -// R#8 -#define PGS_64X32 0x0 -#define PGS_32X64 0x1 -#define PGS_SHIFT 0 -#define PGS_MASK 0x01 - -// R#9 -#define SLV_SCREEN 0x00 -#define SLV_8 0x04 -#define SLV_16 0x05 -#define SLV_32 0x06 -#define SLV_64 0x07 -#define SLH_SCREEN 0x00 -#define SLH_8 0x04 -#define SLH_16 0x05 -#define SLH_32 0x06 -#define SLH_64 0x07 -#define PTS_8X8 0x00 -#define PTS_16X16 0x40 -#define PTS_32X32 0x80 -#define PTS_64X64 0xc0 -#define PTS_SHIFT 0 -#define PTS_MASK 0xc0 - -// R#10 -#define SPAS_SPRITESIZE 0 -#define SPAS_SPRITEREVERSE 1 - -// R#10(spas)=1 -#define SZ_8X8 0x00 -#define SZ_16X16 0x01 -#define SZ_32X32 0x02 -#define SZ_64X64 0x03 - -// R#10(spas)=0 -#define SZ_NOREVERSE 0x00 -#define SZ_VERTREVERSE 0x01 -#define SZ_HORIZREVERSE 0x02 -#define SZ_BOTHREVERSE 0x03 - -// R#11(prm) -#define PRM_SABDEX 0x00 -#define PRM_ASBDEX 0x04 -#define PRM_SEABDX 0x08 -#define PRM_ASEBDX 0x0c - -// R#40 -#define HDW_SHIFT 0 -#define HDW_MASK 0x3f - -// R#44 -#define VDW_SHIFT 0 -#define VDW_MASK 0x3f - -struct SPRITE_ATTR { - uint8_t sy; // y dot position 7:0 - uint8_t sx; // x dot position 7:0 - uint8_t attr; // 0xf0 = color, 0x0c = size, reverse, 0x02 = x hi bit, 0x01 = y hi bit - uint8_t sn; // pattern name (0-255) -}; - class ygv608_device : public device_t, public device_gfx_interface { public: @@ -303,7 +32,100 @@ public: protected: // device-level overrides virtual void device_start() override; + private: + static constexpr unsigned SPRITE_ATTR_TABLE_SIZE = 256; + + struct YGV_PORTS { + uint8_t na; // P#0 - pattern name table data port (read/write) + uint8_t p1; // P#1 - sprite data port (read/write) + uint8_t p2; // P#2 - scroll data port (read/write) + uint8_t p3; // P#3 - colour palette data port (read/write) + uint8_t p4; // P#4 - register data port (read/write) + uint8_t p5; // P#5 - register select port (write only) + uint8_t p6; // P#6 - status port (read/write) + uint8_t p7; // P#7 - system control port (read/write) + }; + + struct YGV_REGS { + uint8_t r0; // R#0 - pattern name table access ptr (r/w) + uint8_t r1; // R#1 - pattern name table access ptr (r/w) + uint8_t r2; // R#2 - built in ram access control + uint8_t saa; // R#3 - sprite attribute table access ptr (r/w) + uint8_t sca; // R#4 - scroll table access ptr (r/w) + uint8_t cc; // R#5 - color palette access ptr (r/w) + uint8_t sba; // R#6 - sprite generator base address (r/w) + + // R#7 - R#11 - screen control (r/w) + uint8_t r7; // misc screen control (r/w) + uint8_t r8; // misc screen control (r/w) + uint8_t r9; // misc screen control (r/w) + uint8_t r10; // misc screen control (r/w) + uint8_t r11; // misc screen control (r/w) + + uint8_t r12; // R#12 - color palette selection (r/w) + uint8_t bdc; // R#13 - border colour (wo) + + // R#14 - R#16 - interrupt control + uint8_t r14; + uint8_t il; + uint8_t r16; + + // R#17 - R#24 - base address (wo) + uint8_t r17; + uint8_t r18; + uint8_t r19; + uint8_t r20; + uint8_t r21; + uint8_t r22; + uint8_t r23; + uint8_t r24; + + // R#25 - R#38 - enlargement, contraction and rotation parameters (wo) + uint8_t ax0; + uint8_t ax8; + uint8_t ax16; + + uint8_t dx0; + uint8_t dx8; + uint8_t dxy0; + uint8_t dxy8; + + uint8_t ay0; + uint8_t ay8; + uint8_t ay16; + + uint8_t dy0; + uint8_t dy8; + uint8_t dyx0; + uint8_t dyx8; + + // R#39 - R#46 - display scan control (wo) + uint8_t r39; + uint8_t r40; + uint8_t hdsp; + uint8_t htl; + uint8_t r43; + uint8_t r44; + uint8_t r45; + uint8_t vtl; + + // R#47 - R#49 - rom transfer control (wo) + uint8_t tb5; + uint8_t tb13; + uint8_t tn4; + + }; + + static constexpr unsigned MAX_SPRITES = SPRITE_ATTR_TABLE_SIZE >> 2; + + struct SPRITE_ATTR { + uint8_t sy; // y dot position 7:0 + uint8_t sx; // x dot position 7:0 + uint8_t attr; // 0xf0 = color, 0x0c = size, reverse, 0x02 = x hi bit, 0x01 = y hi bit + uint8_t sn; // pattern name (0-255) + }; + TILEMAP_MAPPER_MEMBER(get_tile_offset); TILE_GET_INFO_MEMBER(get_tile_info_A_8); TILE_GET_INFO_MEMBER(get_tile_info_B_8); @@ -347,8 +169,8 @@ private: uint8_t m_pattern_name_table[4096]; union { - uint8_t b[YGV608_SPRITE_ATTR_TABLE_SIZE]; - SPRITE_ATTR s[YGV608_MAX_SPRITES]; + uint8_t b[SPRITE_ATTR_TABLE_SIZE]; + SPRITE_ATTR s[MAX_SPRITES]; } m_sprite_attribute_table; uint8_t m_scroll_data_table[2][256]; @@ -376,7 +198,7 @@ private: }; // device type definition -extern const device_type YGV608; +DECLARE_DEVICE_TYPE(YGV608, ygv608_device) //************************************************************************** diff --git a/src/mame/video/zx8301.cpp b/src/mame/video/zx8301.cpp index bac4b89729b..6e2184f9f42 100644 --- a/src/mame/video/zx8301.cpp +++ b/src/mame/video/zx8301.cpp @@ -52,7 +52,7 @@ static const rgb_t PALETTE_ZX8301[] = //************************************************************************** // devices -const device_type ZX8301 = device_creator; +DEFINE_DEVICE_TYPE(ZX8301, zx8301_device, "zx8301", "Sinclair ZX8301") // default address map @@ -107,7 +107,7 @@ inline void zx8301_device::writebyte(offs_t address, uint8_t data) //------------------------------------------------- zx8301_device::zx8301_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, ZX8301, "Sinclair ZX8301", tag, owner, clock, "zx8301", __FILE__) + : device_t(mconfig, ZX8301, tag, owner, clock) , device_memory_interface(mconfig, *this) , device_video_interface(mconfig, *this) , m_space_config("videoram", ENDIANNESS_LITTLE, 8, 17, 0, nullptr, *ADDRESS_MAP_NAME(zx8301)) diff --git a/src/mame/video/zx8301.h b/src/mame/video/zx8301.h index f3e1b8b252d..d2729eed02e 100644 --- a/src/mame/video/zx8301.h +++ b/src/mame/video/zx8301.h @@ -29,10 +29,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_VIDEO_ZX8301_H +#define MAME_VIDEO_ZX8301_H -#ifndef __ZX8301__ -#define __ZX8301__ +#pragma once @@ -63,7 +63,7 @@ public: // construction/destruction zx8301_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template static devcb_base &set_vsync_wr_callback(device_t &device, _Object object) { return downcast(device).m_write_vsync.set_callback(object); } + template static devcb_base &set_vsync_wr_callback(device_t &device, Object &&cb) { return downcast(device).m_write_vsync.set_callback(std::forward(cb)); } static void static_set_cpu_tag(device_t &device, const char *tag) { downcast(device).m_cpu.set_tag(tag); } DECLARE_WRITE8_MEMBER( control_w ); @@ -115,8 +115,8 @@ private: // device type definition -extern const device_type ZX8301; +DECLARE_DEVICE_TYPE(ZX8301, zx8301_device) -#endif +#endif // MAME_VIDEO_ZX8301_H diff --git a/src/osd/modules/debugger/osx/errorlogviewer.mm b/src/osd/modules/debugger/osx/errorlogviewer.mm index fcb7e4ffc3a..98ea30fc98a 100644 --- a/src/osd/modules/debugger/osx/errorlogviewer.mm +++ b/src/osd/modules/debugger/osx/errorlogviewer.mm @@ -19,7 +19,7 @@ NSString *title; title = [NSString stringWithFormat:@"Error Log: %@ [%@]", - [NSString stringWithUTF8String:m.system().description], + [NSString stringWithUTF8String:m.system().type.fullname()], [NSString stringWithUTF8String:m.system().name]]; if (!(self = [super initWithMachine:m title:title console:c])) return nil; diff --git a/src/osd/modules/debugger/win/logwininfo.cpp b/src/osd/modules/debugger/win/logwininfo.cpp index 3ca2bee6eb4..1df89b73256 100644 --- a/src/osd/modules/debugger/win/logwininfo.cpp +++ b/src/osd/modules/debugger/win/logwininfo.cpp @@ -13,7 +13,7 @@ logwin_info::logwin_info(debugger_windows_interface &debugger) : - debugwin_info(debugger, false, std::string("Errorlog: ").append(debugger.machine().system().description).append(" [").append(debugger.machine().system().name).append("]").c_str(), nullptr) + debugwin_info(debugger, false, std::string("Errorlog: ").append(debugger.machine().system().type.fullname()).append(" [").append(debugger.machine().system().name).append("]").c_str(), nullptr) { if (!window()) return; diff --git a/src/osd/modules/render/d3d/d3dhlsl.cpp b/src/osd/modules/render/d3d/d3dhlsl.cpp index 78a435e1501..72fdb1f27a0 100644 --- a/src/osd/modules/render/d3d/d3dhlsl.cpp +++ b/src/osd/modules/render/d3d/d3dhlsl.cpp @@ -323,7 +323,7 @@ void shaders::render_snapshot(IDirect3DSurface9 *surface) // add two text entries describing the image std::string text1 = std::string(emulator_info::get_appname()).append(" ").append(emulator_info::get_build_version()); - std::string text2 = std::string(machine->system().manufacturer).append(" ").append(machine->system().description); + std::string text2 = std::string(machine->system().manufacturer).append(" ").append(machine->system().type.fullname()); png_info pnginfo = { nullptr }; png_add_text(&pnginfo, "Software", text1.c_str()); png_add_text(&pnginfo, "System", text2.c_str()); diff --git a/src/osd/sdl/window.cpp b/src/osd/sdl/window.cpp index fa9fe2989e9..ea86d851bdd 100644 --- a/src/osd/sdl/window.cpp +++ b/src/osd/sdl/window.cpp @@ -420,9 +420,9 @@ int sdl_window_info::window_init() // make the window title if (video_config.numscreens == 1) - sprintf(m_title, "%s: %s [%s]", emulator_info::get_appname(), m_machine.system().description, m_machine.system().name); + sprintf(m_title, "%s: %s [%s]", emulator_info::get_appname(), m_machine.system().type.fullname(), m_machine.system().name); else - sprintf(m_title, "%s: %s [%s] - Screen %d", emulator_info::get_appname(), m_machine.system().description, m_machine.system().name, m_index); + sprintf(m_title, "%s: %s [%s] - Screen %d", emulator_info::get_appname(), m_machine.system().type.fullname(), m_machine.system().name, m_index); result = complete_create(); diff --git a/src/osd/windows/window.cpp b/src/osd/windows/window.cpp index eec0e496d66..0fcb9ccceac 100644 --- a/src/osd/windows/window.cpp +++ b/src/osd/windows/window.cpp @@ -770,9 +770,9 @@ void win_window_info::create(running_machine &machine, int index, std::shared_pt // make the window title if (video_config.numscreens == 1) - sprintf(window->m_title, "%s: %s [%s]", emulator_info::get_appname(), machine.system().description, machine.system().name); + sprintf(window->m_title, "%s: %s [%s]", emulator_info::get_appname(), machine.system().type.fullname(), machine.system().name); else - sprintf(window->m_title, "%s: %s [%s] - Screen %d", emulator_info::get_appname(), machine.system().description, machine.system().name, index); + sprintf(window->m_title, "%s: %s [%s] - Screen %d", emulator_info::get_appname(), machine.system().type.fullname(), machine.system().name, index); // set the initial maximized state window->m_startmaximized = options.maximize(); -- cgit v1.2.3